Repository: yanfengwu-syser/syserdebugger Branch: main Commit: deb5ec44d071 Files: 1290 Total size: 63.8 MB Directory structure: gitextract_w4w2p1op/ ├── .gitignore ├── Addition/ │ ├── BootVid/ │ │ └── bootvid.lib │ ├── DIASDK/ │ │ ├── idl/ │ │ │ └── dia2.idl │ │ ├── include/ │ │ │ ├── cvconst.h │ │ │ ├── dia2.h │ │ │ └── diacreate.h │ │ └── lib/ │ │ ├── diaguids.lib │ │ └── diaguidsd.lib │ ├── DIASDK2005/ │ │ ├── idl/ │ │ │ └── dia2.idl │ │ ├── include/ │ │ │ ├── cvconst.h │ │ │ ├── dia2.h │ │ │ └── diacreate.h │ │ └── lib/ │ │ └── diaguids.lib │ ├── DiaSDK.NET2003/ │ │ ├── idl/ │ │ │ └── dia2.idl │ │ ├── include/ │ │ │ ├── cvconst.h │ │ │ ├── dia2.h │ │ │ └── diacreate.h │ │ └── lib/ │ │ ├── diaguids.lib │ │ └── diaguidsd.lib │ ├── SyserDebugger/ │ │ ├── SDSymbol.h │ │ ├── SyserBuildNumber.h │ │ ├── SyserDebugger.h │ │ └── SyserVersion.h │ └── WindowKernel/ │ ├── ntkrnlmp_5.1.2600.2180.h │ ├── ntkrnlmp_5.1.2600.5755.h │ ├── ntkrnlmp_6.0.6000.16386.h │ ├── ntkrnlmp_6.0.6001.18000.h │ ├── ntkrnlmp_6.0.6002.18005.h │ ├── ntkrnlmp_6.1.7000.0.h │ ├── ntkrnlmp_6.1.7100.0.h │ ├── ntkrnlmp_6.1.7601.0.h │ ├── ntkrpamp_5.1.2600.2180.h │ ├── ntkrpamp_5.1.2600.5755.h │ ├── ntkrpamp_6.0.6000.16386.h │ ├── ntkrpamp_6.0.6001.18000.h │ ├── ntkrpamp_6.0.6002.18005.h │ ├── ntkrpamp_6.1.7000.0.h │ ├── ntkrpamp_6.1.7100.0.h │ └── ntkrpamp_6.1.7601.0.h ├── Bin/ │ └── i386/ │ ├── APIDef.lib │ ├── APILib/ │ │ ├── MMSystem.h │ │ ├── WinBase.h │ │ ├── WinGDI.h │ │ ├── WinNT.h │ │ ├── WinReg.h │ │ ├── WinSock.h │ │ ├── WinSock2.h │ │ ├── WinSpool.h │ │ ├── WinUser.h │ │ ├── ntddk.h │ │ ├── wdm.h │ │ └── winternl.h │ ├── DebuggerHelp.chm │ ├── Syser.cfg │ ├── Syser.cmd │ ├── Syser.exp │ ├── Syser.idb │ ├── Syser.lib │ ├── Syser.pdb │ ├── Syser.sys │ ├── SyserApp.cmd │ ├── SyserColor.cfg │ ├── SyserCommand.chm │ ├── SyserHotKey.cfg │ ├── TestSample.sys │ ├── mfc_sym/ │ │ ├── mfc42.def │ │ ├── mfc42.def.sym │ │ ├── mfc42d.def │ │ ├── mfc42d.def.sym │ │ ├── mfc42u.def │ │ ├── mfc42u.def.sym │ │ ├── mfc42ud.def │ │ ├── mfc42ud.def.sym │ │ ├── mfc70.def │ │ ├── mfc70.def.sym │ │ ├── mfc70d.def │ │ ├── mfc70d.def.sym │ │ ├── mfc70u.def │ │ ├── mfc70u.def.sym │ │ ├── mfc70ud.def │ │ ├── mfc70ud.def.sym │ │ ├── mfc71.def │ │ ├── mfc71.def.sym │ │ ├── mfc71d.def │ │ ├── mfc71d.def.sym │ │ ├── mfc71u.def │ │ ├── mfc71u.def.sym │ │ ├── mfc71ud.def │ │ ├── mfc71ud.def.sym │ │ ├── mfc80.def │ │ ├── mfc80.def.sym │ │ ├── mfc80d.def │ │ ├── mfc80d.def.sym │ │ ├── mfc80u.def │ │ ├── mfc80u.def.sym │ │ ├── mfc80ud.def │ │ ├── mfc80ud.def.sym │ │ ├── mfc90.def │ │ ├── mfc90.def.sym │ │ ├── mfc90d.def │ │ ├── mfc90d.def.sym │ │ ├── mfc90u.def │ │ ├── mfc90u.def.sym │ │ ├── mfc90ud.def │ │ ├── mfc90ud.def.sym │ │ └── mfcsym.txt │ └── symsrv.yes ├── Doc/ │ └── build.md ├── LICENSE ├── Project/ │ ├── BootVid/ │ │ ├── Source/ │ │ │ ├── bootvid.cpp │ │ │ ├── bootvid.def │ │ │ ├── bootvid.h │ │ │ ├── bootvid.rc │ │ │ ├── bootvid.rc2 │ │ │ ├── makefile │ │ │ ├── resource.h │ │ │ └── sources │ │ └── WinXPDrv32/ │ │ ├── DDKBuild.bat │ │ ├── bootvid.sln │ │ ├── bootvid.vcproj │ │ └── ddkbuild.cmd │ ├── Code/ │ │ ├── Source/ │ │ │ ├── CmdParser.cpp │ │ │ ├── CmdParser.h │ │ │ ├── Code.h │ │ │ ├── CodeConfig.h │ │ │ ├── CodeDepInc.h │ │ │ ├── CodeTest.cpp │ │ │ ├── Compress.cpp │ │ │ ├── Compress.h │ │ │ ├── Crc.cpp │ │ │ ├── Crc.h │ │ │ ├── DebugNewAlloc.cpp │ │ │ ├── DebugNewAlloc.h │ │ │ ├── DebugNewAllocNTDrv.cpp │ │ │ ├── DebugNewAllocUnix.cpp │ │ │ ├── DebugNewAllocWin32.cpp │ │ │ ├── Define.h │ │ │ ├── FileIO.cpp │ │ │ ├── FileIO.h │ │ │ ├── FileIONTDrv.cpp │ │ │ ├── FileIONTDrv.h │ │ │ ├── FileIOUnix.cpp │ │ │ ├── FileIOUnix.h │ │ │ ├── FileIOWin32.cpp │ │ │ ├── FileIOWin32.h │ │ │ ├── Float2String.cpp │ │ │ ├── Float2String.h │ │ │ ├── Handle.cpp │ │ │ ├── Handle.h │ │ │ ├── Heap.cpp │ │ │ ├── Heap.h │ │ │ ├── HttpDownload.cpp │ │ │ ├── HttpDownload.h │ │ │ ├── HttpUpload.cpp │ │ │ ├── HttpUpload.h │ │ │ ├── INIFile.cpp │ │ │ ├── INIFile.h │ │ │ ├── ImageFile.cpp │ │ │ ├── ImageFile.h │ │ │ ├── LDasm.c │ │ │ ├── LDasm.h │ │ │ ├── LangLib.cpp │ │ │ ├── LangLib.h │ │ │ ├── LogFile.cpp │ │ │ ├── LogFile.h │ │ │ ├── Makefile │ │ │ ├── Maths.cpp │ │ │ ├── Maths.h │ │ │ ├── NTDrvRuntime.cpp │ │ │ ├── NTDrvRuntime.h │ │ │ ├── NewAlloc.cpp │ │ │ ├── NewAlloc.h │ │ │ ├── NewAllocNTDrv.cpp │ │ │ ├── NewAllocUnix.cpp │ │ │ ├── NewAllocWin32.cpp │ │ │ ├── OptionValue.cpp │ │ │ ├── OptionValue.h │ │ │ ├── PageMem.cpp │ │ │ ├── PageMem.h │ │ │ ├── PolyFS.cpp │ │ │ ├── PolyFS.h │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── StrMem.cpp │ │ │ ├── StrMem.h │ │ │ ├── SysDep.cpp │ │ │ ├── SysDep.h │ │ │ ├── TStrMem.h │ │ │ ├── TXTFile.cpp │ │ │ ├── TXTFile.h │ │ │ ├── WinReg.cpp │ │ │ ├── WinReg.h │ │ │ ├── alt/ │ │ │ │ ├── ALTArray.hpp │ │ │ │ ├── ALTBTree.hpp │ │ │ │ ├── ALTBase.hpp │ │ │ │ ├── ALTConfig.hpp │ │ │ │ ├── ALTExpCalc.hpp │ │ │ │ ├── ALTFileStream.hpp │ │ │ │ ├── ALTList.hpp │ │ │ │ ├── ALTMap.hpp │ │ │ │ ├── ALTQueue.hpp │ │ │ │ ├── ALTRangeMap.hpp │ │ │ │ ├── ALTSet.hpp │ │ │ │ ├── ALTStack.hpp │ │ │ │ ├── ALTString.hpp │ │ │ │ ├── ALTVector.hpp │ │ │ │ └── alt.hpp │ │ │ ├── buildchk_win7_x86.log │ │ │ ├── buildchk_wnet_x86.log │ │ │ ├── buildchk_wxp_x86.log │ │ │ └── obj/ │ │ │ └── i386/ │ │ │ └── Code.lib │ │ ├── Win32/ │ │ │ ├── Code.sln │ │ │ ├── Code.vcproj │ │ │ ├── Code.vcxproj │ │ │ ├── CodeTest.sln │ │ │ └── CodeTest.vcproj │ │ ├── WinDrv32/ │ │ │ ├── Code.sln │ │ │ └── Code.vcproj │ │ ├── WinXPDrv32/ │ │ │ ├── Code.sln │ │ │ ├── Code.vcproj │ │ │ ├── DDKBuild.bat │ │ │ ├── WinXPDrv32Clean.bat │ │ │ └── ddkbuild.cmd │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ ├── rarex.bat │ │ └── vc8/ │ │ ├── Code.sln │ │ ├── Code.vcproj │ │ ├── CodeMD.vcproj │ │ ├── CodeTest.sln │ │ └── CodeTest.vcproj │ ├── EXEAnalyzer/ │ │ ├── Source/ │ │ │ ├── CodeDoc.cpp │ │ │ ├── CodeDoc.h │ │ │ ├── DbgModule.cpp │ │ │ ├── DbgModule.h │ │ │ ├── Debugger.cpp │ │ │ ├── Debugger.h │ │ │ ├── ELFFile.cpp │ │ │ ├── ELFFile.h │ │ │ ├── EXEAnalyzer.h │ │ │ ├── EXEAnalyzerTest.cpp │ │ │ ├── FileType.cpp │ │ │ ├── FileType.h │ │ │ ├── InstrSym.cpp │ │ │ ├── InstrSym.h │ │ │ ├── IntelDef.h │ │ │ ├── IntelDis.cpp │ │ │ ├── IntelDis.h │ │ │ ├── MZFile.cpp │ │ │ ├── MZFile.h │ │ │ ├── Makefile │ │ │ ├── ObjFile.cpp │ │ │ ├── ObjFile.h │ │ │ ├── PEFile.cpp │ │ │ ├── PEFile.h │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── X86Debugger.cpp │ │ │ ├── X86Debugger.h │ │ │ ├── buildchk_win7_x86.log │ │ │ ├── buildchk_wnet_x86.log │ │ │ ├── buildchk_wxp_x86.log │ │ │ └── obj/ │ │ │ └── i386/ │ │ │ └── EXEAnalyzer.lib │ │ ├── Win32/ │ │ │ ├── EXEAnalyzer.sln │ │ │ ├── EXEAnalyzer.vcproj │ │ │ ├── EXEAnalyzer.vcxproj │ │ │ ├── EXEAnalyzerTest.sln │ │ │ └── EXEAnalyzerTest.vcproj │ │ ├── WinDrv32/ │ │ │ ├── EXEAnalyzer.sln │ │ │ └── EXEAnalyzer.vcproj │ │ ├── WinXPDrv32/ │ │ │ ├── DDKBuild.bat │ │ │ ├── EXEAnalyzer.sln │ │ │ ├── EXEAnalyzer.sln.old │ │ │ ├── EXEAnalyzer.vcproj │ │ │ ├── UpgradeLog.XML │ │ │ ├── WinXPDrv32Clean.bat │ │ │ ├── _UpgradeReport_Files/ │ │ │ │ ├── UpgradeReport.css │ │ │ │ └── UpgradeReport.xslt │ │ │ └── ddkbuild.cmd │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── IntelCPU/ │ │ ├── Source/ │ │ │ ├── access.cpp │ │ │ ├── arith.cpp │ │ │ ├── bcd.cpp │ │ │ ├── bit.cpp │ │ │ ├── cpu.cpp │ │ │ ├── cpu.h │ │ │ ├── ctrl.cpp │ │ │ ├── ctrl_pro.cpp │ │ │ ├── data.cpp │ │ │ ├── debugstu.cpp │ │ │ ├── except.cpp │ │ │ ├── fetch.cpp │ │ │ ├── fetch_pr.cpp │ │ │ ├── flag.cpp │ │ │ ├── flag_pro.cpp │ │ │ ├── i387.h │ │ │ ├── iconfig.h │ │ │ ├── icpu_dos.cpp │ │ │ ├── icpu_dos.h │ │ │ ├── icpu_pc.h │ │ │ ├── icpu_win.cpp │ │ │ ├── icpu_win.h │ │ │ ├── init.cpp │ │ │ ├── instrume.h │ │ │ ├── io.cpp │ │ │ ├── io_pro.cpp │ │ │ ├── jcc.cpp │ │ │ ├── lazy_flg.cpp │ │ │ ├── lazy_flg.h │ │ │ ├── mult.cpp │ │ │ ├── mult_pro.cpp │ │ │ ├── paging.cpp │ │ │ ├── proc.cpp │ │ │ ├── prot.cpp │ │ │ ├── prot_pro.cpp │ │ │ ├── resol16.cpp │ │ │ ├── resol32.cpp │ │ │ ├── seg.cpp │ │ │ ├── seg_pro.cpp │ │ │ ├── shift.cpp │ │ │ ├── shift_pr.cpp │ │ │ ├── soft_int.cpp │ │ │ ├── stack16.cpp │ │ │ ├── stack32.cpp │ │ │ ├── stack_pr.cpp │ │ │ ├── stdafx.cpp │ │ │ ├── stdafx.h │ │ │ ├── string.cpp │ │ │ ├── tasking.cpp │ │ │ ├── vm8086.cpp │ │ │ ├── x86cpu.cpp │ │ │ └── x86cpu.h │ │ └── Win32/ │ │ ├── IntelCPU.sln │ │ └── IntelCPU.vcproj │ ├── MFCSymbols/ │ │ ├── Source/ │ │ │ ├── MFCSymbols.cpp │ │ │ ├── MFCSymbols.rc │ │ │ ├── MFCSymbols.rc2 │ │ │ ├── resource.h │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ └── vc8/ │ │ ├── MFCSymbols.sln │ │ └── MFCSymbols.vcproj │ ├── ObjectView/ │ │ ├── Source/ │ │ │ ├── MainFrame.cpp │ │ │ ├── MainFrame.h │ │ │ ├── NTDLLDefine.h │ │ │ ├── ObjectDirectoryWnd.cpp │ │ │ ├── ObjectDirectoryWnd.h │ │ │ ├── ObjectView.rc │ │ │ ├── ObjectView.rc2 │ │ │ ├── ObjectViewApp.cpp │ │ │ ├── ObjectViewApp.h │ │ │ ├── Ring3Object.cpp │ │ │ ├── Ring3Object.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ └── resource.h │ │ ├── Win32/ │ │ │ ├── ObjectView.sln │ │ │ └── ObjectView.vcproj │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── Pcre/ │ │ ├── Source/ │ │ │ ├── AUTHORS │ │ │ ├── COPYING │ │ │ ├── ChangeLog │ │ │ ├── LICENCE │ │ │ ├── Makefile │ │ │ ├── NEWS │ │ │ ├── NON-UNIX-USE │ │ │ ├── README │ │ │ ├── ReadMe.txt │ │ │ ├── Sources │ │ │ ├── Stdafx.c │ │ │ ├── Stdafx.h │ │ │ ├── chartables.c │ │ │ ├── config.h │ │ │ ├── dftables.c │ │ │ ├── libpcre.def │ │ │ ├── libpcreposix.def │ │ │ ├── list.txt │ │ │ ├── pcre.def │ │ │ ├── pcre.h │ │ │ ├── pcre.ver │ │ │ ├── pcre_compile.c │ │ │ ├── pcre_config.c │ │ │ ├── pcre_dfa_exec.c │ │ │ ├── pcre_exec.c │ │ │ ├── pcre_fullinfo.c │ │ │ ├── pcre_get.c │ │ │ ├── pcre_globals.c │ │ │ ├── pcre_info.c │ │ │ ├── pcre_internal.h │ │ │ ├── pcre_maketables.c │ │ │ ├── pcre_memory.c │ │ │ ├── pcre_memory.h │ │ │ ├── pcre_ord2utf8.c │ │ │ ├── pcre_printint.c │ │ │ ├── pcre_refcount.c │ │ │ ├── pcre_study.c │ │ │ ├── pcre_tables.c │ │ │ ├── pcre_try_flipped.c │ │ │ ├── pcre_ucp_findchar.c │ │ │ ├── pcre_valid_utf8.c │ │ │ ├── pcre_version.c │ │ │ ├── pcre_xclass.c │ │ │ ├── ucp.h │ │ │ ├── ucp_findchar.c │ │ │ ├── ucpinternal.h │ │ │ └── ucptable.c │ │ ├── Win32/ │ │ │ ├── pcre.sln │ │ │ └── pcre.vcproj │ │ └── WinXPDrv32/ │ │ ├── DDKBuild.bat │ │ ├── Pcre.sln │ │ ├── Pcre.vcproj │ │ ├── WinXPDrv32Clean.bat │ │ └── ddkbuild.cmd │ ├── SDRemote/ │ │ ├── Source/ │ │ │ ├── Resource.h │ │ │ ├── SDClient.cpp │ │ │ ├── SDClient.h │ │ │ ├── SDRemote.cpp │ │ │ ├── SDRemote.h │ │ │ ├── SDRemote.rc │ │ │ ├── SDRemote.rc2 │ │ │ ├── StdAfx.cpp │ │ │ └── StdAfx.h │ │ ├── Win32/ │ │ │ ├── SDRemote.def │ │ │ ├── SDRemote.sln │ │ │ └── SDRemote.vcproj │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── SDWin32/ │ │ ├── Source/ │ │ │ ├── Resource.h │ │ │ ├── SDWin32.cpp │ │ │ ├── SDWin32.h │ │ │ ├── SDWin32.rc │ │ │ ├── SDWin32.rc2 │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ └── SyserVersion.h │ │ ├── Win32/ │ │ │ ├── SDWin32.def │ │ │ ├── SDWin32.sln │ │ │ ├── SDWin32.vcproj │ │ │ └── SDWin32.vcxproj │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── SPCommand/ │ │ ├── Source/ │ │ │ ├── MakeFile │ │ │ ├── SPCommand.cpp │ │ │ ├── SPCommand.def │ │ │ ├── SPCommand.h │ │ │ ├── SPCommand.rc │ │ │ ├── SPCommand.rc2 │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ └── resource.h │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ ├── rarex.bat │ │ ├── readme.txt │ │ ├── vc2002/ │ │ │ ├── SyserPluginDemo.sln │ │ │ ├── SyserPluginDemo.vcproj │ │ │ ├── clean.cmd │ │ │ └── ddkbuild.cmd │ │ ├── vc2003/ │ │ │ ├── SPCommand.sln │ │ │ ├── SPCommand.vcproj │ │ │ ├── clean.cmd │ │ │ └── ddkbuild.cmd │ │ ├── vc2005/ │ │ │ ├── SyserPluginDemo.sln │ │ │ ├── SyserPluginDemo.vcproj │ │ │ ├── clean.cmd │ │ │ └── ddkbuild.cmd │ │ ├── vc2008/ │ │ │ ├── SyserPluginDemo.sln │ │ │ ├── SyserPluginDemo.vcproj │ │ │ ├── clean.cmd │ │ │ └── ddkbuild.cmd │ │ └── vc6/ │ │ ├── SyserPluginDemo.dsp │ │ ├── SyserPluginDemo.dsw │ │ ├── clean.cmd │ │ └── ddkbuild.cmd │ ├── SdsCMD/ │ │ ├── Source/ │ │ │ ├── Resource.h │ │ │ ├── SdsCMD.cpp │ │ │ ├── SdsCMD.h │ │ │ ├── SdsCMD.rc │ │ │ ├── SdsCMD.rc2 │ │ │ ├── StdAfx.cpp │ │ │ └── StdAfx.h │ │ └── Win32/ │ │ ├── SdsCMD.sln │ │ └── SdsCMD.vcproj │ ├── SymRecv/ │ │ ├── Source/ │ │ │ ├── SymRecv.cpp │ │ │ ├── SymRecv.h │ │ │ ├── SymRecv.rc │ │ │ ├── SymRecvDlg.cpp │ │ │ ├── SymRecvDlg.h │ │ │ ├── res/ │ │ │ │ ├── SymRecv.manifest │ │ │ │ └── SymRecv.rc2 │ │ │ ├── resource.h │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ └── Win32/ │ │ ├── SymRecv.sln │ │ └── SymRecv.vcproj │ ├── SysBoot/ │ │ ├── Source/ │ │ │ ├── MakeFile │ │ │ ├── PromptQuit.cpp │ │ │ ├── PromptQuit.h │ │ │ ├── ScrOutput.cpp │ │ │ ├── ScrOutput.h │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── SysBoot.cpp │ │ │ ├── SysBoot.h │ │ │ ├── SyserBoot.rc │ │ │ ├── SyserBoot.rc2 │ │ │ ├── VideoHook.cpp │ │ │ ├── VideoHook.h │ │ │ ├── VistaVideoHook.cpp │ │ │ ├── VistaVideoHook.h │ │ │ └── resource.h │ │ ├── WinXPDrv32/ │ │ │ ├── DDKBuild.bat │ │ │ ├── SysBoot.sln │ │ │ ├── SysBoot.vcproj │ │ │ ├── WinXPDrv32Clean.bat │ │ │ └── ddkbuild.cmd │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── SysLang/ │ │ ├── Source/ │ │ │ ├── MakeFile │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── SysLang.cpp │ │ │ ├── SysLang.h │ │ │ ├── SyserLanguage.rc │ │ │ ├── SyserLanguage.rc2 │ │ │ └── resource.h │ │ ├── WinXPDrv32/ │ │ │ ├── DDKBuild.bat │ │ │ ├── SysLang.sln │ │ │ ├── SysLang.vcproj │ │ │ ├── WinXPDrv32Clean.bat │ │ │ └── ddkbuild.cmd │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── Syser/ │ │ ├── Source/ │ │ │ ├── AddTypeViewerDlg.cpp │ │ │ ├── AddTypeViewerDlg.h │ │ │ ├── Analyzer.cpp │ │ │ ├── Analyzer.h │ │ │ ├── BpintCmd.cpp │ │ │ ├── BpintCmd.h │ │ │ ├── BreakPointForm.cpp │ │ │ ├── BreakPointForm.h │ │ │ ├── BugCheckCode.cpp │ │ │ ├── BugCheckCode.h │ │ │ ├── CallStack.cpp │ │ │ ├── CallStack.h │ │ │ ├── CallStackWnd.cpp │ │ │ ├── CallStackWnd.h │ │ │ ├── CodeBPEdit.cpp │ │ │ ├── CodeBPEdit.h │ │ │ ├── CodeView.cpp │ │ │ ├── CodeView.h │ │ │ ├── ColorOption.cpp │ │ │ ├── ColorOption.h │ │ │ ├── CommentList.cpp │ │ │ ├── CommentList.h │ │ │ ├── ConsoleWnd.cpp │ │ │ ├── ConsoleWnd.h │ │ │ ├── CopyOnWritePatch.cpp │ │ │ ├── CopyOnWritePatch.h │ │ │ ├── CrossReferenceForm.cpp │ │ │ ├── CrossReferenceForm.h │ │ │ ├── DataBPEdit.cpp │ │ │ ├── DataBPEdit.h │ │ │ ├── DataOperatorDlg.cpp │ │ │ ├── DataOperatorDlg.h │ │ │ ├── DataView.cpp │ │ │ ├── DataView.h │ │ │ ├── DataViewFindDlg.cpp │ │ │ ├── DataViewFindDlg.h │ │ │ ├── DataViewForm.cpp │ │ │ ├── DataViewForm.h │ │ │ ├── DbgProcess.cpp │ │ │ ├── DbgProcess.h │ │ │ ├── DebugCmd.cpp │ │ │ ├── DebugCmd.h │ │ │ ├── DebuggerSelectForm.cpp │ │ │ ├── DebuggerSelectForm.h │ │ │ ├── Dump.cpp │ │ │ ├── Dump.h │ │ │ ├── EHCIMouse.cpp │ │ │ ├── EHCIMouse.h │ │ │ ├── ErrorCodeTable.cpp │ │ │ ├── ErrorCodeTable.h │ │ │ ├── ErrorCodeWnd.cpp │ │ │ ├── ErrorCodeWnd.h │ │ │ ├── FpuRegisterList.cpp │ │ │ ├── FpuRegisterList.h │ │ │ ├── FunctionListWnd.cpp │ │ │ ├── FunctionListWnd.h │ │ │ ├── GDTWnd.cpp │ │ │ ├── GDTWnd.h │ │ │ ├── GameSpy.cpp │ │ │ ├── GameSpy.h │ │ │ ├── GeneRegList.cpp │ │ │ ├── GeneRegList.h │ │ │ ├── GlobalVariable.cpp │ │ │ ├── GlobalVariable.h │ │ │ ├── HardWareInterruptCtrl.cpp │ │ │ ├── HardWareInterruptCtrl.h │ │ │ ├── HwndCmd.cpp │ │ │ ├── HwndCmd.h │ │ │ ├── HwndWnd.cpp │ │ │ ├── HwndWnd.h │ │ │ ├── IBMAsciiWnd.cpp │ │ │ ├── IBMAsciiWnd.h │ │ │ ├── IDTWnd.cpp │ │ │ ├── IDTWnd.h │ │ │ ├── IOAPIC.cpp │ │ │ ├── IOAPIC.h │ │ │ ├── Initialize.cpp │ │ │ ├── Initialize.h │ │ │ ├── InputDriver.cpp │ │ │ ├── InputDriver.h │ │ │ ├── Int0x6.cpp │ │ │ ├── Int0x6.h │ │ │ ├── Int0xb.cpp │ │ │ ├── Int0xb.h │ │ │ ├── Int0xc.cpp │ │ │ ├── Int0xc.h │ │ │ ├── Int0xd.cpp │ │ │ ├── Int0xd.h │ │ │ ├── Int0xe.cpp │ │ │ ├── Int0xe.h │ │ │ ├── Int1.cpp │ │ │ ├── Int1.h │ │ │ ├── Int3.cpp │ │ │ ├── Int3.h │ │ │ ├── Interrupt2D.cpp │ │ │ ├── Interrupt2D.h │ │ │ ├── InterruptPatch.cpp │ │ │ ├── InterruptPatch.h │ │ │ ├── IntraPatch.cpp │ │ │ ├── IntraPatch.h │ │ │ ├── KernelObjectCmd.cpp │ │ │ ├── KernelObjectCmd.h │ │ │ ├── KeyMappingPage.cpp │ │ │ ├── KeyMappingPage.h │ │ │ ├── Keyboard.cpp │ │ │ ├── Keyboard.h │ │ │ ├── LastBranch.cpp │ │ │ ├── LastBranch.h │ │ │ ├── Lex2.cpp │ │ │ ├── Lex2.h │ │ │ ├── LocalAPIC.cpp │ │ │ ├── LocalAPIC.h │ │ │ ├── LogicStateCAD.cpp │ │ │ ├── LogicStateCAD.h │ │ │ ├── MainFrame.cpp │ │ │ ├── MainFrame.h │ │ │ ├── MakeFile │ │ │ ├── ModuleListWnd.cpp │ │ │ ├── ModuleListWnd.h │ │ │ ├── Mouse.cpp │ │ │ ├── Mouse.h │ │ │ ├── MultiCPU.cpp │ │ │ ├── MultiCPU.h │ │ │ ├── MultiCodeView.cpp │ │ │ ├── MultiCodeView.h │ │ │ ├── MultiDataView.cpp │ │ │ ├── MultiDataView.h │ │ │ ├── MultiSourceCodeView.cpp │ │ │ ├── MultiSourceCodeView.h │ │ │ ├── NMIInterruptHandle.cpp │ │ │ ├── NMIInterruptHandle.h │ │ │ ├── NTDLLDefine.h │ │ │ ├── NTUtility.cpp │ │ │ ├── NTUtility.h │ │ │ ├── NotCompatible.cpp │ │ │ ├── NotCompatible.h │ │ │ ├── NtstatStr.cpp │ │ │ ├── NtstatStr.h │ │ │ ├── OHCIDevice.cpp │ │ │ ├── OHCIDevice.h │ │ │ ├── OHCIMouse.cpp │ │ │ ├── OHCIMouse.h │ │ │ ├── OSData.cpp │ │ │ ├── OSData.h │ │ │ ├── OSProcessThread.cpp │ │ │ ├── OSProcessThread.h │ │ │ ├── ObjFileView.cpp │ │ │ ├── ObjFileView.h │ │ │ ├── ObjectDirectory.cpp │ │ │ ├── ObjectDirectory.h │ │ │ ├── ObjectDirectoryWnd.cpp │ │ │ ├── ObjectDirectoryWnd.h │ │ │ ├── OtherCmd.cpp │ │ │ ├── OtherCmd.h │ │ │ ├── PCSystem.cpp │ │ │ ├── PCSystem.h │ │ │ ├── PEExplorer.cpp │ │ │ ├── PEExplorer.h │ │ │ ├── PIC_8259.cpp │ │ │ ├── PIC_8259.h │ │ │ ├── PS2Mouse.cpp │ │ │ ├── PS2Mouse.h │ │ │ ├── PageMapWnd.cpp │ │ │ ├── PageMapWnd.h │ │ │ ├── PatchKeBugCheckEx.cpp │ │ │ ├── PatchKeBugCheckEx.h │ │ │ ├── PluginListForm.cpp │ │ │ ├── PluginListForm.h │ │ │ ├── ProcessList.cpp │ │ │ ├── ProcessList.h │ │ │ ├── PromptQuit.cpp │ │ │ ├── PromptQuit.h │ │ │ ├── RegHelpWnd.cpp │ │ │ ├── RegHelpWnd.h │ │ │ ├── Res/ │ │ │ │ └── CurEIP.cur │ │ │ ├── Resource.cpp │ │ │ ├── Resource.h │ │ │ ├── Ring3Object.cpp │ │ │ ├── Ring3Object.h │ │ │ ├── RunTrace.cpp │ │ │ ├── RunTrace.h │ │ │ ├── RunTraceWnd.cpp │ │ │ ├── RunTraceWnd.h │ │ │ ├── SDDefine.h │ │ │ ├── SDSModuleList.cpp │ │ │ ├── SDSModuleList.h │ │ │ ├── SDServer.cpp │ │ │ ├── SDServer.h │ │ │ ├── SEHChainWnd.cpp │ │ │ ├── SEHChainWnd.h │ │ │ ├── SSERegisterList.cpp │ │ │ ├── SSERegisterList.h │ │ │ ├── SearchDialog.cpp │ │ │ ├── SearchDialog.h │ │ │ ├── SerialMouse.cpp │ │ │ ├── SerialMouse.h │ │ │ ├── SerialPort.cpp │ │ │ ├── SerialPort.h │ │ │ ├── Services.cpp │ │ │ ├── Services.h │ │ │ ├── ShareCmd.cpp │ │ │ ├── ShareCmd.h │ │ │ ├── SourceCodeWatchList.cpp │ │ │ ├── SourceCodeWatchList.h │ │ │ ├── SourceCodeWnd.cpp │ │ │ ├── SourceCodeWnd.h │ │ │ ├── SourceDebugClassView.cpp │ │ │ ├── SourceDebugClassView.h │ │ │ ├── SourceDebugFrameWnd.cpp │ │ │ ├── SourceDebugFrameWnd.h │ │ │ ├── SourceDebugStartPage.cpp │ │ │ ├── SourceDebugStartPage.h │ │ │ ├── SourceExplorer.cpp │ │ │ ├── SourceExplorer.h │ │ │ ├── Sources │ │ │ ├── StackWatchList.cpp │ │ │ ├── StackWatchList.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── StringReference.cpp │ │ │ ├── StringReference.h │ │ │ ├── SymbolDownloader.cpp │ │ │ ├── SymbolDownloader.h │ │ │ ├── SysInfo.cpp │ │ │ ├── SysInfo.h │ │ │ ├── Syser.cpp │ │ │ ├── Syser.def │ │ │ ├── Syser.h │ │ │ ├── Syser.rc │ │ │ ├── SyserAboutForm.cpp │ │ │ ├── SyserAboutForm.h │ │ │ ├── SyserApp.cpp │ │ │ ├── SyserApp.h │ │ │ ├── SyserCAbi.cpp │ │ │ ├── SyserCAbi.h │ │ │ ├── SyserCmd.cpp │ │ │ ├── SyserCmd.h │ │ │ ├── SyserConfig.cpp │ │ │ ├── SyserConfig.h │ │ │ ├── SyserConnect.cpp │ │ │ ├── SyserConnect.h │ │ │ ├── SyserDefine.h │ │ │ ├── SyserDriver.rc │ │ │ ├── SyserDriver.rc2 │ │ │ ├── SyserDriverMC.mc │ │ │ ├── SyserKDM.def │ │ │ ├── SyserMemoryReadWrite.cpp │ │ │ ├── SyserMemoryReadWrite.h │ │ │ ├── SyserNTDrvApp.cpp │ │ │ ├── SyserNTDrvApp.h │ │ │ ├── SyserOption.cpp │ │ │ ├── SyserOption.h │ │ │ ├── SyserRegistryConfig.h │ │ │ ├── SyserResource.h │ │ │ ├── SyserSymAnalyzer.cpp │ │ │ ├── SyserSymAnalyzer.h │ │ │ ├── SyserUI.cpp │ │ │ ├── SyserUI.h │ │ │ ├── SyserVer.rc2 │ │ │ ├── SystemExplorer.cpp │ │ │ ├── SystemExplorer.h │ │ │ ├── SystemIoctl.cpp │ │ │ ├── SystemIoctl.h │ │ │ ├── ThreadListWnd.cpp │ │ │ ├── ThreadListWnd.h │ │ │ ├── TimerInterrupt.cpp │ │ │ ├── TimerInterrupt.h │ │ │ ├── TouchPad.cpp │ │ │ ├── TouchPad.h │ │ │ ├── TrackPoint.cpp │ │ │ ├── TrackPoint.h │ │ │ ├── TypeViewerWnd.cpp │ │ │ ├── TypeViewerWnd.h │ │ │ ├── UHCIDevice.cpp │ │ │ ├── UHCIDevice.h │ │ │ ├── UHCIMouse.cpp │ │ │ ├── UHCIMouse.h │ │ │ ├── USBCmd.cpp │ │ │ ├── USBCmd.h │ │ │ ├── Undoc.h │ │ │ ├── VMWareSupport.cpp │ │ │ ├── VMWareSupport.h │ │ │ ├── VideoDriver.cpp │ │ │ ├── VideoDriver.h │ │ │ ├── VirtualPCSupport.cpp │ │ │ ├── VirtualPCSupport.h │ │ │ ├── WatchList.cpp │ │ │ ├── WatchList.h │ │ │ ├── WndStringReference.cpp │ │ │ ├── WndStringReference.h │ │ │ ├── X86Define.h │ │ │ ├── X86Optr.cpp │ │ │ ├── X86Optr.h │ │ │ ├── X86RegHelpTabWnd.cpp │ │ │ ├── X86RegHelpTabWnd.h │ │ │ ├── buildchk_win7_x86.log │ │ │ ├── cmd_cpu.cpp │ │ │ ├── cmd_cpu.h │ │ │ ├── cmd_cpuid.cpp │ │ │ ├── cmd_cpuid.h │ │ │ ├── cmd_msr.cpp │ │ │ ├── cmd_msr.h │ │ │ ├── pci.cpp │ │ │ ├── pci.h │ │ │ ├── pci_ids.h │ │ │ ├── pcidef.h │ │ │ ├── pcreplus.cpp │ │ │ ├── pcreplus.h │ │ │ └── syntax_color.l │ │ ├── Win32/ │ │ │ ├── Syser.sln │ │ │ ├── Syser.vcproj │ │ │ ├── Syser.vcxproj │ │ │ ├── SyserUDM.def │ │ │ └── Syser_VS2019.sln │ │ ├── WinXPDrv32/ │ │ │ ├── DDKBuild.bat │ │ │ ├── Syser.sln │ │ │ ├── Syser.vcproj │ │ │ ├── WinXPDrv32Clean.bat │ │ │ ├── ddkbuild.cmd │ │ │ └── ddkbuild_demo.cmd │ │ ├── amd64/ │ │ │ └── common-amd64.asm │ │ ├── excfile.txt │ │ ├── i386/ │ │ │ ├── Function.asm │ │ │ ├── Function.inc │ │ │ ├── common-x86.asm │ │ │ ├── common-x86.inc │ │ │ ├── compatibility-x86.asm │ │ │ ├── compatibility-x86.inc │ │ │ ├── interrupt-x86.asm │ │ │ └── interrupt-x86.inc │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── SyserApp/ │ │ ├── Source/ │ │ │ ├── AnalyseCom.cpp │ │ │ ├── AnalyseCom.h │ │ │ ├── DXTest.cpp │ │ │ ├── DXTest.h │ │ │ ├── DbgMsgFilter.cpp │ │ │ ├── DbgMsgFilter.h │ │ │ ├── LoadIDAMapFile.cpp │ │ │ ├── LoadIDAMapFile.h │ │ │ ├── LoadSourceFile.cpp │ │ │ ├── LoadSourceFile.h │ │ │ ├── MainFrame.cpp │ │ │ ├── MainFrame.h │ │ │ ├── ModifyBoot.cpp │ │ │ ├── ModifyBoot.h │ │ │ ├── NTDriver.cpp │ │ │ ├── NTDriver.h │ │ │ ├── NoPDBSymbol.cpp │ │ │ ├── NoPDBSymbol.h │ │ │ ├── OpenFileForm.cpp │ │ │ ├── OpenFileForm.h │ │ │ ├── OptionPage.cpp │ │ │ ├── OptionPage.h │ │ │ ├── Process.cpp │ │ │ ├── Process.h │ │ │ ├── ProcessList.cpp │ │ │ ├── ProcessList.h │ │ │ ├── RegisterForm.cpp │ │ │ ├── RegisterForm.h │ │ │ ├── Resource.cpp │ │ │ ├── Resource.h │ │ │ ├── SNCheck.cpp │ │ │ ├── SNCheck.h │ │ │ ├── SourceDebug.cpp │ │ │ ├── SourceDebug.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── SymbolDownloader.cpp │ │ │ ├── SymbolDownloader.h │ │ │ ├── SymbolModuleList.cpp │ │ │ ├── SymbolModuleList.h │ │ │ ├── SyserApp.cpp │ │ │ ├── SyserApp.h │ │ │ ├── SyserApp.rc │ │ │ ├── SyserApp.rc2 │ │ │ ├── SyserAppCmd.cpp │ │ │ ├── SyserAppCmd.h │ │ │ ├── SyserAppOption.cpp │ │ │ ├── SyserAppOption.h │ │ │ ├── SyserInterface.cpp │ │ │ ├── SyserInterface.h │ │ │ ├── SyserResource.h │ │ │ └── ddraw.h │ │ ├── Win32/ │ │ │ ├── SyserApp.sln │ │ │ ├── SyserApp.vcproj │ │ │ ├── ddraw.lib │ │ │ └── dxguid.lib │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── SyserOption/ │ │ ├── Source/ │ │ │ ├── BootOptionForm.cpp │ │ │ ├── BootOptionForm.h │ │ │ ├── BootTypePage.cpp │ │ │ ├── BootTypePage.h │ │ │ ├── CmdEditPage.cpp │ │ │ ├── CmdEditPage.h │ │ │ ├── ExportModulePage.cpp │ │ │ ├── ExportModulePage.h │ │ │ ├── GUIColorPage.cpp │ │ │ ├── GUIColorPage.h │ │ │ ├── MainFrame.cpp │ │ │ ├── MainFrame.h │ │ │ ├── OptionPage.cpp │ │ │ ├── OptionPage.h │ │ │ ├── SDSFilePage.cpp │ │ │ ├── SDSFilePage.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── SyserOption.rc │ │ │ ├── SyserOption.rc2 │ │ │ ├── SyserOptionApp.cpp │ │ │ ├── SyserOptionApp.h │ │ │ ├── VideoModeForm.cpp │ │ │ ├── VideoModeForm.h │ │ │ └── resource.h │ │ ├── Win32/ │ │ │ ├── SyserOption.sln │ │ │ └── SyserOption.vcproj │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── SyserTools/ │ │ ├── SyserTools.cpp │ │ ├── SyserTools.rc2 │ │ ├── SyserTools.sln │ │ ├── SyserTools.vcproj │ │ ├── stdafx.cpp │ │ └── stdafx.h │ ├── Unicode/ │ │ ├── Source/ │ │ │ ├── Makefile │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── c_037.cpp │ │ │ ├── c_042.cpp │ │ │ ├── c_10000.cpp │ │ │ ├── c_10006.cpp │ │ │ ├── c_10007.cpp │ │ │ ├── c_10029.cpp │ │ │ ├── c_1006.cpp │ │ │ ├── c_10079.cpp │ │ │ ├── c_10081.cpp │ │ │ ├── c_1026.cpp │ │ │ ├── c_1250.cpp │ │ │ ├── c_1251.cpp │ │ │ ├── c_1252.cpp │ │ │ ├── c_1253.cpp │ │ │ ├── c_1254.cpp │ │ │ ├── c_1255.cpp │ │ │ ├── c_1256.cpp │ │ │ ├── c_1257.cpp │ │ │ ├── c_1258.cpp │ │ │ ├── c_20866.cpp │ │ │ ├── c_20932.cpp │ │ │ ├── c_28591.cpp │ │ │ ├── c_28592.cpp │ │ │ ├── c_28593.cpp │ │ │ ├── c_28594.cpp │ │ │ ├── c_28595.cpp │ │ │ ├── c_28596.cpp │ │ │ ├── c_28597.cpp │ │ │ ├── c_28598.cpp │ │ │ ├── c_28599.cpp │ │ │ ├── c_28600.cpp │ │ │ ├── c_28603.cpp │ │ │ ├── c_28604.cpp │ │ │ ├── c_28605.cpp │ │ │ ├── c_28606.cpp │ │ │ ├── c_424.cpp │ │ │ ├── c_437.cpp │ │ │ ├── c_500.cpp │ │ │ ├── c_737.cpp │ │ │ ├── c_775.cpp │ │ │ ├── c_850.cpp │ │ │ ├── c_852.cpp │ │ │ ├── c_855.cpp │ │ │ ├── c_856.cpp │ │ │ ├── c_857.cpp │ │ │ ├── c_860.cpp │ │ │ ├── c_861.cpp │ │ │ ├── c_862.cpp │ │ │ ├── c_863.cpp │ │ │ ├── c_864.cpp │ │ │ ├── c_865.cpp │ │ │ ├── c_866.cpp │ │ │ ├── c_869.cpp │ │ │ ├── c_874.cpp │ │ │ ├── c_875.cpp │ │ │ ├── c_878.cpp │ │ │ ├── c_932.cpp │ │ │ ├── c_936.cpp │ │ │ ├── c_949.cpp │ │ │ ├── c_950.cpp │ │ │ ├── casemap.cpp │ │ │ ├── compose.cpp │ │ │ ├── cptable.cpp │ │ │ ├── mbtowc.cpp │ │ │ ├── string.cpp │ │ │ ├── test.cpp │ │ │ ├── testfile/ │ │ │ │ ├── demo.ansi.txt │ │ │ │ ├── demo.unicode.txt │ │ │ │ ├── demo.unicode_big_endian.txt │ │ │ │ └── demo.utf8.txt │ │ │ ├── unicode.h │ │ │ ├── utf8.cpp │ │ │ ├── wctomb.cpp │ │ │ └── wctype.cpp │ │ ├── Win32/ │ │ │ ├── Unicode.sln │ │ │ ├── Unicode.vcproj │ │ │ └── Unicodetest.vcproj │ │ ├── WinDrv32/ │ │ │ ├── Unicode.sln │ │ │ └── Unicode.vcproj │ │ ├── WinXPDrv32/ │ │ │ ├── DDKBuild.bat │ │ │ ├── Unicode.sln │ │ │ ├── Unicode.vcproj │ │ │ ├── WinXPDrv32Clean.bat │ │ │ └── ddkbuild.cmd │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── VersionInfo/ │ │ ├── Source/ │ │ │ ├── VersionInfo.cpp │ │ │ ├── VersionInfo.h │ │ │ ├── stdafx.cpp │ │ │ └── stdafx.h │ │ └── Win32/ │ │ ├── VersionInfo.sln │ │ └── VersionInfo.vcproj │ ├── WinWisp/ │ │ ├── Source/ │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── WinWisp.cpp │ │ │ ├── WinWisp.h │ │ │ ├── WispApp.cpp │ │ │ └── WispApp.h │ │ ├── Win32/ │ │ │ ├── WinWisp.sln │ │ │ ├── WinWisp.vcproj │ │ │ └── WinWisp.vcxproj │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── Wisp/ │ │ ├── Source/ │ │ │ ├── DIBData.cpp │ │ │ ├── DIBData.h │ │ │ ├── MakeFile │ │ │ ├── Ripple.cpp │ │ │ ├── Ripple.h │ │ │ ├── Sources │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── Utility.cpp │ │ │ ├── Utility.h │ │ │ ├── Wisp.h │ │ │ ├── Wisp3D.cpp │ │ │ ├── Wisp3D.h │ │ │ ├── WispBase.cpp │ │ │ ├── WispBase.h │ │ │ ├── WispBaseWnd.cpp │ │ │ ├── WispBaseWnd.h │ │ │ ├── WispButton.cpp │ │ │ ├── WispButton.h │ │ │ ├── WispCalcWnd.cpp │ │ │ ├── WispCalcWnd.h │ │ │ ├── WispCheckBox.cpp │ │ │ ├── WispCheckBox.h │ │ │ ├── WispColorStrWnd.cpp │ │ │ ├── WispColorStrWnd.h │ │ │ ├── WispComboBox.cpp │ │ │ ├── WispComboBox.h │ │ │ ├── WispConfig.h │ │ │ ├── WispConsoleWnd.cpp │ │ │ ├── WispConsoleWnd.h │ │ │ ├── WispDC.cpp │ │ │ ├── WispDC.h │ │ │ ├── WispDIB.cpp │ │ │ ├── WispDIB.h │ │ │ ├── WispDIBLib.cpp │ │ │ ├── WispDIBLib.h │ │ │ ├── WispDefine.h │ │ │ ├── WispDrawHAL.cpp │ │ │ ├── WispDrawHAL.h │ │ │ ├── WispDrawObj.cpp │ │ │ ├── WispDrawObj.h │ │ │ ├── WispEdit.cpp │ │ │ ├── WispEdit.h │ │ │ ├── WispFileWnd.cpp │ │ │ ├── WispFileWnd.h │ │ │ ├── WispFont.cpp │ │ │ ├── WispFont.h │ │ │ ├── WispForm.cpp │ │ │ ├── WispForm.h │ │ │ ├── WispHeader.cpp │ │ │ ├── WispHeader.h │ │ │ ├── WispHexWnd.cpp │ │ │ ├── WispHexWnd.h │ │ │ ├── WispInfoWnd.cpp │ │ │ ├── WispInfoWnd.h │ │ │ ├── WispList.cpp │ │ │ ├── WispList.h │ │ │ ├── WispMenu.cpp │ │ │ ├── WispMenu.h │ │ │ ├── WispMisc.cpp │ │ │ ├── WispMisc.h │ │ │ ├── WispMsgBox.cpp │ │ │ ├── WispMsgBox.h │ │ │ ├── WispMsgDefine.h │ │ │ ├── WispMultiTabView.cpp │ │ │ ├── WispMultiTabView.h │ │ │ ├── WispOptionForm.cpp │ │ │ ├── WispOptionForm.h │ │ │ ├── WispProgress.cpp │ │ │ ├── WispProgress.h │ │ │ ├── WispRGBSelect.cpp │ │ │ ├── WispRGBSelect.h │ │ │ ├── WispRadioBox.cpp │ │ │ ├── WispRadioBox.h │ │ │ ├── WispRichEdit.cpp │ │ │ ├── WispRichEdit.h │ │ │ ├── WispSoftKeyboard.cpp │ │ │ ├── WispSoftKeyboard.h │ │ │ ├── WispSplitWnd.cpp │ │ │ ├── WispSplitWnd.h │ │ │ ├── WispStatic.cpp │ │ │ ├── WispStatic.h │ │ │ ├── WispTabWnd.cpp │ │ │ ├── WispTabWnd.h │ │ │ ├── WispTaskPanel.cpp │ │ │ ├── WispTaskPanel.h │ │ │ ├── WispTipWnd.cpp │ │ │ ├── WispTipWnd.h │ │ │ ├── WispToolbar.cpp │ │ │ ├── WispToolbar.h │ │ │ ├── WispWnd.cpp │ │ │ ├── WispWnd.h │ │ │ ├── buildchk_win7_x86.log │ │ │ ├── buildchk_wnet_x86.log │ │ │ ├── buildchk_wxp_x86.log │ │ │ └── obj/ │ │ │ └── i386/ │ │ │ └── Wisp.lib │ │ ├── Win32/ │ │ │ ├── Wisp.sln │ │ │ ├── Wisp.vcproj │ │ │ └── Wisp.vcxproj │ │ ├── WinDrv32/ │ │ │ ├── Wisp.sln │ │ │ └── Wisp.vcproj │ │ ├── WinXPDrv32/ │ │ │ ├── DDKBuild.bat │ │ │ ├── UpgradeLog.XML │ │ │ ├── WinXPDrv32Clean.bat │ │ │ ├── Wisp.sln │ │ │ ├── Wisp.sln.old │ │ │ ├── Wisp.vcproj │ │ │ ├── _UpgradeReport_Files/ │ │ │ │ ├── UpgradeReport.css │ │ │ │ └── UpgradeReport.xslt │ │ │ └── ddkbuild.cmd │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ ├── WispDemo/ │ │ ├── Source/ │ │ │ ├── ControlWnd.cpp │ │ │ ├── ControlWnd.h │ │ │ ├── CtrlPage1.cpp │ │ │ ├── CtrlPage1.h │ │ │ ├── LocalApp.cpp │ │ │ ├── LocalApp.h │ │ │ ├── M3DView.cpp │ │ │ ├── M3DView.h │ │ │ ├── MainFrame.cpp │ │ │ ├── MainFrame.h │ │ │ ├── MainTabWnd.cpp │ │ │ ├── MainTabWnd.h │ │ │ ├── RippleWnd.cpp │ │ │ ├── RippleWnd.h │ │ │ ├── SdlBase.cpp │ │ │ ├── SdlBase.h │ │ │ ├── StdAfx.cpp │ │ │ ├── StdAfx.h │ │ │ ├── WispDemo.rc │ │ │ ├── WispDemo.rc2 │ │ │ └── resource.h │ │ ├── Win32/ │ │ │ ├── WispDemo.sln │ │ │ └── WispDemo.vcproj │ │ ├── excfile.txt │ │ ├── incfile.txt │ │ └── rarex.bat │ └── fpu/ │ ├── Source/ │ │ ├── control_w.h │ │ ├── div_Xsig.cpp │ │ ├── div_small.cpp │ │ ├── errors.cpp │ │ ├── exception.h │ │ ├── fpu.cpp │ │ ├── fpu_arith.cpp │ │ ├── fpu_asm.h │ │ ├── fpu_aux.cpp │ │ ├── fpu_emu.h │ │ ├── fpu_entry.cpp │ │ ├── fpu_etc.cpp │ │ ├── fpu_i387.h │ │ ├── fpu_proto.h │ │ ├── fpu_stubs/ │ │ │ ├── asm/ │ │ │ │ ├── desc.h │ │ │ │ ├── math_emu.h │ │ │ │ ├── sigcontext.h │ │ │ │ ├── types.h │ │ │ │ └── uaccess.h │ │ │ └── linux/ │ │ │ ├── kernel.h │ │ │ ├── linkage.h │ │ │ ├── mm.h │ │ │ ├── sched.h │ │ │ ├── signal.h │ │ │ ├── stddef.h │ │ │ └── types.h │ │ ├── fpu_system.h │ │ ├── fpu_tags.cpp │ │ ├── fpu_trig.cpp │ │ ├── load_store.cpp │ │ ├── mul_Xsig.cpp │ │ ├── poly.h │ │ ├── poly_2xm1.cpp │ │ ├── poly_atan.cpp │ │ ├── poly_l2.cpp │ │ ├── poly_sin.cpp │ │ ├── poly_tan.cpp │ │ ├── polynom_Xsig.cpp │ │ ├── reg_add_sub.cpp │ │ ├── reg_compare.cpp │ │ ├── reg_constant.cpp │ │ ├── reg_constant.h │ │ ├── reg_convert.cpp │ │ ├── reg_divide.cpp │ │ ├── reg_ld_str.cpp │ │ ├── reg_mul.cpp │ │ ├── reg_norm.cpp │ │ ├── reg_round.cpp │ │ ├── reg_u_add.cpp │ │ ├── reg_u_div.cpp │ │ ├── reg_u_mul.cpp │ │ ├── reg_u_sub.cpp │ │ ├── round_Xsig.cpp │ │ ├── shr_Xsig.cpp │ │ ├── status_w.h │ │ ├── version.h │ │ ├── wmFPUemu_glue.cpp │ │ ├── wm_shrx.cpp │ │ └── wm_sqrt.cpp │ └── Win32/ │ ├── UpgradeLog.XML │ ├── _UpgradeReport_Files/ │ │ ├── UpgradeReport.css │ │ └── UpgradeReport.xslt │ ├── fpu.sln │ ├── fpu.sln.old │ └── fpu.vcproj ├── README.md ├── excfile.txt ├── incfile.txt └── ori_author.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ .vs/ bin/** tmp/** *.suo /ipch *.user *.aps *.tmp Debug/ ================================================ FILE: Addition/DIASDK/idl/dia2.idl ================================================ // dia2.idl - Debug Information Access (DIA) interface description //----------------------------------------------------------------- // // Copyright 1999-2000 Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- import "objidl.idl"; import "oaidl.idl"; import "cvconst.h"; enum NameSearchOptions { nsNone = 0, nsfCaseSensitive = 0x1, // apply a case sensitive match nsfCaseInsensitive = 0x2, // apply a case insensitive match nsfFNameExt = 0x4, // treat names as paths and apply a filename.ext match nsfRegularExpression = 0x8, // regular expression nsfUndecoratedName = 0x10, // applies only to symbols that have both undecorated and decorated names // predefined names for backward source compatibility nsCaseSensitive = nsfCaseSensitive, // apply a case sensitive match nsCaseInsensitive = nsfCaseInsensitive, // apply a case insensitive match nsFNameExt = nsfCaseInsensitive | nsfFNameExt, // treat names as paths and apply a filename.ext match nsRegularExpression = nsfRegularExpression | nsfCaseSensitive, // regular expression (using only '*' and '?') nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive, // case insensitive regular expression }; // the following are error HRESULTS returned by an IDiaDataSource they // are based on the FACILITY_VISUALCPP (0x6d) defined in delayimp.h enum { E_PDB_OK=((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(1))) ), E_PDB_USAGE , E_PDB_OUT_OF_MEMORY , // not used, use E_OUTOFMEMORY E_PDB_FILE_SYSTEM , E_PDB_NOT_FOUND , E_PDB_INVALID_SIG , E_PDB_INVALID_AGE , E_PDB_PRECOMP_REQUIRED , E_PDB_OUT_OF_TI , E_PDB_NOT_IMPLEMENTED , // use E_NOTIMPL E_PDB_V1_PDB , E_PDB_FORMAT , E_PDB_LIMIT , E_PDB_CORRUPT , E_PDB_TI16 , E_PDB_ACCESS_DENIED , // use E_ACCESSDENIED E_PDB_ILLEGAL_TYPE_EDIT , E_PDB_INVALID_EXECUTABLE , E_PDB_DBG_NOT_FOUND , E_PDB_NO_DEBUG_INFO , E_PDB_INVALID_EXE_TIMESTAMP , E_PDB_RESERVED , E_PDB_DEBUG_INFO_NOT_IN_PDB , E_PDB_MAX }; // // Errors in finding dynamically loaded dlls or functions. // enum { DIA_E_MODNOTFOUND = E_PDB_MAX+1, DIA_E_PROCNOTFOUND, }; #define PROPERTY_RW(type, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([out, retval] type * pRetVal); \ \ [propput, helpstring(help), id(prid)] \ HRESULT name([in] type NewVal) #define PROPERTY_ARRAY_RW(type, itype, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [out, retval] type * pRetVal); \ \ [propput, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [in] type NewVal) #define PROPERTY_RO(type, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([out, retval] type * pRetVal) // type of callback arg to IDiaDataSource::loadDataForExe typedef void (__cdecl *PfnPDBDebugDirV)(BOOL, /*const struct _IMAGE_DEBUG_DIRECTORY * */ void*); interface IDiaSession; interface IDiaEnumTables; interface IDiaSymbol; interface IDiaSourceFile; interface IDiaLineNumber; interface IDiaInjectedSource; interface IDiaSegment; interface IDiaSectionContrib; interface IDiaFrameData; [ object, uuid(C32ADB82-73F4-421b-95D5-A4706EDF5DBE), local, helpstring("IDiaLoadCallback interface."), pointer_default(unique) ] interface IDiaLoadCallback: IUnknown { HRESULT NotifyDebugDir( [in] BOOL fExecutable, [in] DWORD cbData, [in, size_is(cbData)] BYTE data[]); // really a const struct _IMAGE_DEBUG_DIRECTORY * HRESULT NotifyOpenDBG( [in] LPCOLESTR dbgPath, [in] HRESULT resultCode); HRESULT NotifyOpenPDB( [in] LPCOLESTR pdbPath, [in] HRESULT resultCode); HRESULT RestrictRegistryAccess(); // return hr != S_OK to prevent querying the registry for symbol search paths HRESULT RestrictSymbolServerAccess(); // return hr != S_OK to prevent accessing a symbol server } [ object, uuid(587A461C-B80B-4f54-9194-5032589A6319), local, helpstring("IDiaReadExeAtOffsetCallback interface."), pointer_default(unique) ] interface IDiaReadExeAtOffsetCallback: IUnknown { HRESULT ReadExecutableAt( [in] DWORDLONG fileOffset, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[]); } [ object, uuid(8E3F80CA-7517-432a-BA07-285134AAEA8E), local, helpstring("IDiaReadExeAtRVACallback interface."), pointer_default(unique) ] interface IDiaReadExeAtRVACallback: IUnknown { HRESULT ReadExecutableAtRVA( [in] DWORD relativeVirtualAddress, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[]); } [ object, uuid(79F1BB5F-B66E-48e5-B6A9-1545C323CA3D), local, helpstring("IDiaDataSource Interface"), pointer_default(unique) ] interface IDiaDataSource: IUnknown { PROPERTY_RO( BSTR, lastError, 1, "Text for last load error." ); // // loadDataFromPdb // HRESULT loadDataFromPdb( [in] LPCOLESTR pdbPath ); // // loadAndValidateDataFromPdb // HRESULT loadAndValidateDataFromPdb( [in] LPCOLESTR pdbPath, [in] GUID* pcsig70, [in] DWORD sig, [in] DWORD age ); // // loadDataForExe // HRESULT loadDataForExe( [in] LPCOLESTR executable, [in] LPCOLESTR searchPath, [in] IUnknown* pCallback ); // // loadDataFromIStream // HRESULT loadDataFromIStream( [in] IStream *pIStream ); HRESULT openSession( [out] IDiaSession** ppSession ); } [ object, uuid(CAB72C48-443B-48f5-9B0B-42F0820AB29A), local, helpstring("IDiaEnumSymbols Interface"), pointer_default(unique) ] interface IDiaEnumSymbols: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSymbols." ); PROPERTY_RO( LONG, Count, 1, "Number of symbols." ); [id(0), helpstring("Return the symbol for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSymbol **symbol); HRESULT Next( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSymbols **ppenum); } [ object, uuid(624B7D9C-24EA-4421-9D06-3B577471C1FA), local, helpstring("IDiaEnumSymbolsByAddr Interface"), pointer_default(unique) ] interface IDiaEnumSymbolsByAddr: IUnknown { // // Item(ByXxx) re-positions the enumerator to the item found // [helpstring("Return the symbol for the given address.")] HRESULT symbolByAddr( [in] DWORD isect, [in] DWORD offset, [out, retval]IDiaSymbol** ppSymbol); [helpstring("Return the symbol for the given relative virtual address.")] HRESULT symbolByRVA( [in] DWORD relativeVirtualAddress, [out, retval]IDiaSymbol** ppSymbol); [helpstring("Return the symbol for the given virtual address.")] HRESULT symbolByVA( [in] ULONGLONG virtualAddress, [out, retval]IDiaSymbol** ppSymbol); HRESULT Next( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Prev( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Clone( [out] IDiaEnumSymbolsByAddr **ppenum); } [ object, uuid(10F3DBD9-664F-4469-B808-9471C7A50538), local, helpstring("IDiaEnumSourceFiles Interface"), pointer_default(unique) ] interface IDiaEnumSourceFiles: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSourceFiles." ); PROPERTY_RO( LONG, Count, 1, "Number of source files." ); [id(0), helpstring("Return the source file for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSourceFile **sourceFile); HRESULT Next( [in] ULONG celt, [out] IDiaSourceFile ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSourceFiles **ppenum); } [ object, uuid(FE30E878-54AC-44f1-81BA-39DE940F6052), local, helpstring("IDiaEnumLineNumbers Interface"), pointer_default(unique) ] interface IDiaEnumLineNumbers: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumLineNumbers." ); PROPERTY_RO( LONG, Count, 1, "Number of line numbers." ); [id(0), helpstring("Return the line number for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaLineNumber **lineNumber); HRESULT Next( [in] ULONG celt, [out] IDiaLineNumber ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumLineNumbers **ppenum); } [ object, uuid(D5612573-6925-4468-8883-98CDEC8C384A), local, helpstring("IDiaEnumInjectedSources Interface"), pointer_default(unique) ] interface IDiaEnumInjectedSources: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumInjectedSources." ); PROPERTY_RO( LONG, Count, 1, "Number of injected source files." ); [id(0), helpstring("Return the injected source for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaInjectedSource **injectedSource); HRESULT Next( [in] ULONG celt, [out] IDiaInjectedSource ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumInjectedSources **ppenum); } [ object, uuid(E8368CA9-01D1-419d-AC0C-E31235DBDA9F), local, helpstring("IDiaEnumSegments Interface"), pointer_default(unique) ] interface IDiaEnumSegments: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSegments." ); PROPERTY_RO( LONG, Count, 1, "Number of segments." ); [id(0), helpstring("Return the segment for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSegment **segment); HRESULT Next( [in] ULONG celt, [out] IDiaSegment ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSegments **ppenum); } [ object, uuid(1994DEB2-2C82-4b1d-A57F-AFF424D54A68), local, helpstring("IDiaEnumSectionContribs Interface"), pointer_default(unique) ] interface IDiaEnumSectionContribs: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSectionContribs." ); PROPERTY_RO( LONG, Count, 1, "Number of section contributions." ); [id(0), helpstring("Return the section contribution for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSectionContrib **section); HRESULT Next( [in] ULONG celt, [out] IDiaSectionContrib ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSectionContribs **ppenum); } [ object, uuid(9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F), local, helpstring("IDiaEnumFrameData Interface"), pointer_default(unique) ] interface IDiaEnumFrameData: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumFrameData." ); PROPERTY_RO( LONG, Count, 1, "Number of frames." ); [id(0), helpstring("Return the frame for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaFrameData **frame); HRESULT Next( [in] ULONG celt, [out] IDiaFrameData ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumFrameData **ppenum); // // The following two by-address lookups do not reposition the enumeration // [helpstring("Return the frame for the given relative virtual address.")] HRESULT frameByRVA( [in] DWORD relativeVirtualAddress, [out, retval]IDiaFrameData **frame); [helpstring("Return the frame for the given virtual address.")] HRESULT frameByVA( [in] ULONGLONG virtualAddress, [out, retval]IDiaFrameData **frame); } [ object, uuid(486943E8-D187-4a6b-A3C4-291259FFF60D), local, helpstring("IDiaEnumDebugStreamData Interface"), pointer_default(unique) ] interface IDiaEnumDebugStreamData: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumDebugStreamData." ); PROPERTY_RO( LONG, Count, 1, "Number of elements in the stream." ); PROPERTY_RO( BSTR, name, 2, "Stream name." ); [id(0), helpstring("Return the element for the given index.")] HRESULT Item( [in] DWORD index, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT Next( [in] ULONG celt, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[], [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumDebugStreamData **ppenum); } [ object, uuid(08CBB41E-47A6-4f87-92F1-1C9C87CED044), local, helpstring("IDiaEnumDebugStreams Interface"), pointer_default(unique) ] interface IDiaEnumDebugStreams: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumDebugStreams." ); PROPERTY_RO( LONG, Count, 1, "Number of streams." ); [id(0), helpstring("Return the stream for the given index.")] HRESULT Item([in] VARIANT index, [out, retval]IDiaEnumDebugStreamData **stream); HRESULT Next( [in] ULONG celt, [out] IDiaEnumDebugStreamData ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumDebugStreams **ppenum); } struct DiaAddressMapEntry { DWORD rva; DWORD rvaTo; }; [ object, uuid(B62A2E7A-067A-4ea3-B598-04C09717502C), local, helpstring("IDiaAddressMap Interface"), pointer_default(unique) ] interface IDiaAddressMap: IUnknown { PROPERTY_RW( BOOL, addressMapEnabled, 3, "Enable address translations." ); PROPERTY_RW( BOOL, relativeVirtualAddressEnabled, 4, "Enable relative virtual address computations."); PROPERTY_RW( DWORD, imageAlign, 5, "Original image alignment." ); HRESULT set_imageHeaders( [in] DWORD cbData, [in, size_is(cbData)] BYTE data[], // actual type is IMAGE_SECTION_HEADER[] [in] BOOL originalHeaders ); // true: headers are original, that is, they match the debug symbols // false: headers are current, that is, they match the image HRESULT set_addressMap( [in] DWORD cData, // number of entries in rva map [in, size_is(cData)] struct DiaAddressMapEntry data[], // rva map [in] BOOL imageToSymbols ); // true: map from image to symbols (omapt) // false: map from symbols to image (omapf) }; [ object, uuid(67138B34-79CD-4b42-B74A-A18ADBB799DF), local, helpstring("IDiaSession Interface"), pointer_default(unique) ] interface IDiaSession: IUnknown { PROPERTY_RW( ULONGLONG, loadAddress, 1, "Dll/Exe load address." ); PROPERTY_RO( IDiaSymbol*, globalScope, 2, "Global scope (exe) symbol." ); HRESULT getEnumTables( [out] IDiaEnumTables** ppEnumTables ); HRESULT getSymbolsByAddr( [out] IDiaEnumSymbolsByAddr** ppEnumbyAddr ); // // Queries that return sets of symbols // HRESULT findChildren( [in] IDiaSymbol* parent, [in] enum SymTagEnum symtag, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSymbols** ppResult ); HRESULT findSymbolByAddr ( [in] DWORD isect, [in] DWORD offset, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByRVA ( [in] DWORD rva, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByVA ( [in] ULONGLONG va, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByToken ( [in] ULONG token, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT symsAreEquiv( [in] IDiaSymbol* symbolA, [in] IDiaSymbol* symbolB ); HRESULT symbolById( [in] DWORD id, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByRVAEx ( [in] DWORD rva, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol, [out] long* displacement ); HRESULT findSymbolByVAEx ( [in] ULONGLONG va, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol, [out] long* displacement ); // // Queries that return source file results // HRESULT findFile( [in] IDiaSymbol* pCompiland, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSourceFiles** ppResult ); HRESULT findFileById( [in] DWORD uniqueId, [out] IDiaSourceFile** ppResult ); // // Queries that return line number results // HRESULT findLines( [in] IDiaSymbol* compiland, [in] IDiaSourceFile* file, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByAddr( [in] DWORD seg, [in] DWORD offset, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByRVA( [in] DWORD rva, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByVA( [in] ULONGLONG va, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByLinenum( [in] IDiaSymbol* compiland, [in] IDiaSourceFile* file, [in] DWORD linenum, [in] DWORD column, [out] IDiaEnumLineNumbers** ppResult ); // // Queries that return injected source // HRESULT findInjectedSource( [in] LPCOLESTR srcFile, [out] IDiaEnumInjectedSources** ppResult ); HRESULT getEnumDebugStreams( [out] IDiaEnumDebugStreams** ppEnumDebugStreams ); }; /* * Table Columns * * Symbols - a symbol will have values in some subset of the fields */ [ object, uuid(72827A48-D320-4eaf-8436-548ADE47D5E5), local, helpstring("IDiaSymbol Interface"), pointer_default(unique) ] interface IDiaSymbol: IUnknown { PROPERTY_RO( DWORD, symIndexId, 0, "Unique symbol identifier." ); PROPERTY_RO( DWORD, symTag, 1, "Symbol kind tag." ); PROPERTY_RO( BSTR, name, 2, "Name" ); PROPERTY_RO( IDiaSymbol*, lexicalParent, 3, "Lexical parent symbol."); PROPERTY_RO( IDiaSymbol*, classParent, 4, "."); PROPERTY_RO( IDiaSymbol*, type, 5, "."); PROPERTY_RO( DWORD, dataKind, 6, "."); PROPERTY_RO( DWORD, locationType, 7, "."); PROPERTY_RO( DWORD, addressSection, 8, "."); PROPERTY_RO( DWORD, addressOffset, 9, "."); PROPERTY_RO( DWORD, relativeVirtualAddress, 10, "."); PROPERTY_RO( ULONGLONG, virtualAddress, 11, "."); PROPERTY_RO( DWORD, registerId, 12, "."); PROPERTY_RO( LONG, offset, 13, "."); PROPERTY_RO( ULONGLONG, length, 14, "."); PROPERTY_RO( DWORD, slot, 15, "."); PROPERTY_RO( BOOL, volatileType, 16, "."); PROPERTY_RO( BOOL, constType, 17, "."); PROPERTY_RO( BOOL, unalignedType, 18, "."); PROPERTY_RO( DWORD, access, 19, "."); PROPERTY_RO( BSTR, libraryName, 20, "."); PROPERTY_RO( DWORD, platform, 21, "."); PROPERTY_RO( DWORD, language, 22, "."); PROPERTY_RO( BOOL, editAndContinueEnabled, 23, "."); PROPERTY_RO( DWORD, frontEndMajor, 24, "."); PROPERTY_RO( DWORD, frontEndMinor, 25, "."); PROPERTY_RO( DWORD, frontEndBuild, 26, "."); PROPERTY_RO( DWORD, backEndMajor, 27, "."); PROPERTY_RO( DWORD, backEndMinor, 28, "."); PROPERTY_RO( DWORD, backEndBuild, 29, "."); PROPERTY_RO( BSTR, sourceFileName, 30, "."); PROPERTY_RO( BSTR, objectFileName, 31, "."); PROPERTY_RO( DWORD, thunkOrdinal, 32, "."); PROPERTY_RO( LONG, thisAdjust, 33, "."); PROPERTY_RO( DWORD, virtualBaseOffset, 34, "."); PROPERTY_RO( BOOL, virtual, 35, "."); PROPERTY_RO( BOOL, intro, 36, "."); PROPERTY_RO( BOOL, pure, 37, "."); PROPERTY_RO( DWORD, callingConvention, 38, "."); PROPERTY_RO( VARIANT, value, 39, "."); PROPERTY_RO( DWORD, baseType, 40, "."); PROPERTY_RO( DWORD, token, 41, "."); PROPERTY_RO( DWORD, timeStamp, 42, "."); PROPERTY_RO( GUID, guid, 43, "."); PROPERTY_RO( BSTR, symbolsFileName, 44, "."); PROPERTY_RO( BOOL, reference, 46, "."); PROPERTY_RO( DWORD, count, 47, "."); PROPERTY_RO( DWORD, bitPosition, 49, "."); PROPERTY_RO( IDiaSymbol*, arrayIndexType, 50, "."); PROPERTY_RO( BOOL, packed, 51, "."); PROPERTY_RO( BOOL, constructor, 52, "."); PROPERTY_RO( BOOL, overloadedOperator, 53, "."); PROPERTY_RO( BOOL, nested, 54, "."); PROPERTY_RO( BOOL, hasNestedTypes, 55, "."); PROPERTY_RO( BOOL, hasAssignmentOperator, 56, "."); PROPERTY_RO( BOOL, hasCastOperator, 57, "."); PROPERTY_RO( BOOL, scoped, 58, "."); PROPERTY_RO( BOOL, virtualBaseClass, 59, "."); PROPERTY_RO( BOOL, indirectVirtualBaseClass, 60, "."); PROPERTY_RO( LONG, virtualBasePointerOffset, 61, "."); PROPERTY_RO( IDiaSymbol*, virtualTableShape, 62, "."); PROPERTY_RO( DWORD, lexicalParentId, 64, "Lexical parent symbol."); PROPERTY_RO( DWORD, classParentId, 65, "."); PROPERTY_RO( DWORD, typeId, 66, "."); PROPERTY_RO( DWORD, arrayIndexTypeId, 67, "."); PROPERTY_RO( DWORD, virtualTableShapeId, 68, "."); PROPERTY_RO( BOOL, code, 69, "Symbol refers to a code address." ); PROPERTY_RO( BOOL, function, 70, "Symbol refers to a function." ); PROPERTY_RO( BOOL, managed, 71, "Symbol refers to managed code." ); PROPERTY_RO( BOOL, msil, 72, "Symbol refers to MSIL code." ); PROPERTY_RO( DWORD, virtualBaseDispIndex, 73, "."); PROPERTY_RO( BSTR, undecoratedName, 74, "."); PROPERTY_RO( DWORD, age, 75, "PDB file age." ); PROPERTY_RO( DWORD, signature, 76, "Signature." ); PROPERTY_RO( BOOL, compilerGenerated, 77, "Symbol is compiler generated." ); PROPERTY_RO( BOOL, addressTaken, 78, "Symbol is address taken." ); PROPERTY_RO( DWORD, rank, 79, "Rank of FORTRAN multi-dimension array." ); PROPERTY_RO( IDiaSymbol*, lowerBound, 80, "Lower bound of a FORTRAN array dimension."); PROPERTY_RO( IDiaSymbol*, upperBound, 81, "Upper bound of a FORTRAN array dimension."); PROPERTY_RO( DWORD, lowerBoundId, 82, "Symbol Id of the lower bound of a FORTRAN array dimension."); PROPERTY_RO( DWORD, upperBoundId, 83, "Symbol Id of the upper bound of a FORTRAN array dimension."); HRESULT get_dataBytes( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT findChildren( [in] enum SymTagEnum symtag, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSymbols** ppResult ); PROPERTY_RO( DWORD, targetSection, 84, "Thunk target address section."); PROPERTY_RO( DWORD, targetOffset, 85, "Thunk target address offset."); PROPERTY_RO( DWORD, targetRelativeVirtualAddress, 86, "Thunk target RVA."); PROPERTY_RO( ULONGLONG, targetVirtualAddress, 87, "Thunk target virtual address."); PROPERTY_RO( DWORD, machineType, 88, "Target machine type." ); PROPERTY_RO( DWORD, oemId, 89, "Identifier of manufacturer."); PROPERTY_RO( DWORD, oemSymbolId, 90, "Manufacturer defined custom symbol identifier." ); HRESULT get_types( [in] DWORD cTypes, [out] DWORD *pcTypes, [out, size_is(cTypes), length_is(*pcTypes)] IDiaSymbol* types[] ); HRESULT get_typeIds( [in] DWORD cTypeIds, [out] DWORD *pcTypeIds, [out, size_is(cTypeIds), length_is(*pcTypeIds)] DWORD typeIds[] ); PROPERTY_RO( IDiaSymbol*, objectPointerType, 91, "Type of method's object pointer." ); PROPERTY_RO( DWORD, udtKind, 92, "Struct, union or class."); }; // // SourceFiles // [ object, uuid(A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD), local, helpstring("IDiaSourceFile Interface"), pointer_default(unique) ] interface IDiaSourceFile: IUnknown { PROPERTY_RO( DWORD, uniqueId, 2, "Unique id for the source file (in this data store)." ); PROPERTY_RO( BSTR, fileName, 3, "." ); PROPERTY_RO( DWORD, checksumType, 4, "." ); PROPERTY_RO( IDiaEnumSymbols*, compilands, 5, "." ); HRESULT get_checksum( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); }; // // LineNumbers // [ object, uuid(B388EB14-BE4D-421d-A8A1-6CF7AB057086), local, helpstring("IDiaLineNumber Interface"), pointer_default(unique) ] interface IDiaLineNumber: IUnknown { PROPERTY_RO( IDiaSymbol*, compiland, 1, "." ); PROPERTY_RO( IDiaSourceFile*, sourceFile, 2, "." ); PROPERTY_RO( DWORD, lineNumber, 3, "." ); PROPERTY_RO( DWORD, lineNumberEnd, 4, "." ); PROPERTY_RO( DWORD, columnNumber, 5, "." ); PROPERTY_RO( DWORD, columnNumberEnd, 6, "." ); PROPERTY_RO( DWORD, addressSection, 7, "." ); PROPERTY_RO( DWORD, addressOffset, 8, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 9, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 10, "." ); PROPERTY_RO( DWORD, length, 11, "." ); PROPERTY_RO( DWORD, sourceFileId, 12, "." ); PROPERTY_RO( BOOL, statement, 13, "." ); PROPERTY_RO( DWORD, compilandId, 14, "." ); }; // // SectionContributions // [ object, uuid(0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857), local, helpstring("IDiaSectionContrib Interface"), pointer_default(unique) ] interface IDiaSectionContrib: IUnknown { PROPERTY_RO( IDiaSymbol*, compiland, 1, "." ); PROPERTY_RO( DWORD, addressSection, 2, "." ); PROPERTY_RO( DWORD, addressOffset, 3, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 4, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 5, "." ); PROPERTY_RO( DWORD, length, 6, "." ); // 7 PROPERTY_RO( BOOL, notPaged, 8, "."); PROPERTY_RO( BOOL, code, 9, "."); PROPERTY_RO( BOOL, initializedData, 10, "."); PROPERTY_RO( BOOL, uninitializedData, 11, "."); PROPERTY_RO( BOOL, remove, 12, "."); PROPERTY_RO( BOOL, comdat, 13, "."); PROPERTY_RO( BOOL, discardable, 14, "."); PROPERTY_RO( BOOL, notCached, 15, "."); PROPERTY_RO( BOOL, share, 16, "."); PROPERTY_RO( BOOL, execute, 17, "."); PROPERTY_RO( BOOL, read, 18, "."); PROPERTY_RO( BOOL, write, 19, "."); PROPERTY_RO( DWORD, dataCrc, 20, "." ); PROPERTY_RO( DWORD, relocationsCrc, 21, "." ); PROPERTY_RO( DWORD, compilandId, 22, "." ); }; // // SegmentMap // [ object, uuid(0775B784-C75B-4449-848B-B7BD3159545B), local, helpstring("IDiaSegment Interface"), pointer_default(unique) ] interface IDiaSegment: IUnknown { PROPERTY_RO( DWORD, frame, 1, "Frame." ); PROPERTY_RO( DWORD, offset, 2, "Offset in physical section." ); PROPERTY_RO( DWORD, length, 3, "Length in bytes of segment." ); PROPERTY_RO( BOOL, read, 4, "Read allowed." ); PROPERTY_RO( BOOL, write, 5, "Write allowed." ); PROPERTY_RO( BOOL, execute, 6, "Execute allowed." ); PROPERTY_RO( DWORD, addressSection, 7, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 8, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 9, "." ); }; // // InjectedSource // [ object, uuid(AE605CDC-8105-4a23-B710-3259F1E26112), local, helpstring("IDiaInjectedSource Interface"), pointer_default(unique) ] interface IDiaInjectedSource: IUnknown { PROPERTY_RO( DWORD, crc, 1, "CRC of source bytes." ); PROPERTY_RO( ULONGLONG, length, 2, "Length of source in bytes." ); PROPERTY_RO( BSTR, filename, 3, "Source filename." ); PROPERTY_RO( BSTR, objectFilename, 4, "Object filename." ); PROPERTY_RO( BSTR, virtualFilename, 5, "Virtual filename." ); PROPERTY_RO( DWORD, sourceCompression, 6, "Source compression algorithm." ); HRESULT get_source( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); }; // // Errors returned by IDiaFrameData::execute // enum { E_DIA_INPROLOG // cannot execute stack frame when in prolog =((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(100))) ), E_DIA_SYNTAX, // error parsing frame program E_DIA_FRAME_ACCESS, // error accessing registers or memory E_DIA_VALUE, // error in computer a value (e.g., divide by zero) }; [ object, uuid(97F0F1A6-E04E-4ea4-B4F9-B0D0E8D90F5D), local, helpstring("IDiaStackWalkFrame Interface"), pointer_default(unique) ] interface IDiaStackWalkFrame: IUnknown { PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, "Register value." ); HRESULT readMemory( [in] ULONGLONG va, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT searchForReturnAddress( [in] IDiaFrameData* frame, [out] ULONGLONG* returnAddress ); HRESULT searchForReturnAddressStart( [in] IDiaFrameData* frame, [in] ULONGLONG startAddress, [out] ULONGLONG* returnAddress ); }; [ object, uuid(A39184B7-6A36-42de-8EEC-7DF9F3F59F33), local, helpstring("IDiaFrameData Interface"), pointer_default(unique) ] interface IDiaFrameData: IUnknown { PROPERTY_RO( DWORD, addressSection, 2, "." ); PROPERTY_RO( DWORD, addressOffset, 3, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 4, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 5, "." ); PROPERTY_RO( DWORD, lengthBlock, 6, "." ); PROPERTY_RO( DWORD, lengthLocals, 7, "." ); PROPERTY_RO( DWORD, lengthParams, 8, "." ); PROPERTY_RO( DWORD, maxStack, 9, "." ); PROPERTY_RO( DWORD, lengthProlog, 10, "." ); PROPERTY_RO( DWORD, lengthSavedRegisters, 11, "." ); PROPERTY_RO( BSTR, program, 12, "." ); PROPERTY_RO( BOOL, systemExceptionHandling, 13, "." ); PROPERTY_RO( BOOL, cplusplusExceptionHandling, 14, "." ); PROPERTY_RO( BOOL, functionStart, 15, "." ); PROPERTY_RO( BOOL, allocatesBasePointer, 16, "." ); PROPERTY_RO( DWORD, type, 17, "." ); PROPERTY_RO( IDiaFrameData*, functionParent, 18, "Frame data for enclosing function."); HRESULT execute( IDiaStackWalkFrame* frame ); } // // IDiaImageData // // Some debug streams (XDATA, PDATA) contain copies of data also stored in the image. The // stream data objects (IDiaEnumDebugStreamData) can be QI'ed for their IDiaImageData. [ object, uuid(C8E40ED2-A1D9-4221-8692-3CE661184B44), local, helpstring("IDiaImageData Interface"), pointer_default(unique) ] interface IDiaImageData: IUnknown { PROPERTY_RO( DWORD, relativeVirtualAddress, 2, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 3, "." ); PROPERTY_RO( ULONGLONG, imageBase, 4, "." ); } // // IDiaTable // Supports enumerating the members of the table // [ object, uuid(4A59FB77-ABAC-469b-A30B-9ECC85BFEF14), local, helpstring("IDiaTable Interface"), pointer_default(unique) ] interface IDiaTable: IEnumUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaTable." ); PROPERTY_RO( BSTR, name, 1, "Table name." ); PROPERTY_RO( LONG, Count, 2, "Number of table entries." ); [id(0), helpstring("Return the table element for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IUnknown **element); // ### IDispatch? }; [ object, uuid(C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E), local, helpstring("IDiaEnumTables Interface"), pointer_default(unique) ] interface IDiaEnumTables: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumTables." ); PROPERTY_RO( LONG, Count, 1, "Number of tables." ); [id(0), helpstring("Return the table for the given index or name.")] HRESULT Item([in] VARIANT index, [out, retval]IDiaTable **table); HRESULT Next( ULONG celt, IDiaTable ** rgelt, ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumTables **ppenum); }; [ uuid(106173A0-0173-4e5c-84E7-E915422BE997), version(2.0), helpstring("dia 2.0 Type Library") ] library Dia2Lib { importlib("stdole2.tlb"); [ uuid(151CE278-3CCB-4161-8658-679F8BCF29ED), helpstring("DiaSource Class") ] coclass DiaSource { [default] interface IDiaDataSource; }; // // DiaSourceAlt - a DiaDataSource object that does not use the system heap. // // A process may either make DiaSourceAlt objects or DiaSource objects, but not both. // When using DiaSourceAlt all returned BSTR's are really LPCOLESTR and should not be // used with other BSTR management routines, in particular they must be released using // LocalFree( bstr ) [ uuid(AF74D59B-5AF2-4f36-9E86-87B754DC8A4E), helpstring("Local Heap DiaSource Class") ] coclass DiaSourceAlt { [default] interface IDiaDataSource; }; }; // // DebugInfoTable // // Each id identifies an underlying table of debug information // const LPOLESTR DiaTable_Symbols = L"Symbols"; const LPOLESTR DiaTable_Sections = L"Sections"; const LPOLESTR DiaTable_SrcFiles = L"SourceFiles"; const LPOLESTR DiaTable_LineNums = L"LineNumbers"; const LPOLESTR DiaTable_SegMap = L"SegmentMap"; const LPOLESTR DiaTable_Dbg = L"Dbg"; const LPOLESTR DiaTable_InjSrc = L"InjectedSource"; const LPOLESTR DiaTable_FrameData = L"FrameData"; ================================================ FILE: Addition/DIASDK/include/cvconst.h ================================================ // cvconst.h - codeview constant definitions //----------------------------------------------------------------- // // Copyright Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- #ifndef _CVCONST_H_ #define _CVCONST_H_ // Enumeration for function call type typedef enum CV_call_e { CV_CALL_NEAR_C = 0x00, // near right to left push, caller pops stack CV_CALL_FAR_C = 0x01, // far right to left push, caller pops stack CV_CALL_NEAR_PASCAL = 0x02, // near left to right push, callee pops stack CV_CALL_FAR_PASCAL = 0x03, // far left to right push, callee pops stack CV_CALL_NEAR_FAST = 0x04, // near left to right push with regs, callee pops stack CV_CALL_FAR_FAST = 0x05, // far left to right push with regs, callee pops stack CV_CALL_SKIPPED = 0x06, // skipped (unused) call index CV_CALL_NEAR_STD = 0x07, // near standard call CV_CALL_FAR_STD = 0x08, // far standard call CV_CALL_NEAR_SYS = 0x09, // near sys call CV_CALL_FAR_SYS = 0x0a, // far sys call CV_CALL_THISCALL = 0x0b, // this call (this passed in register) CV_CALL_MIPSCALL = 0x0c, // Mips call CV_CALL_GENERIC = 0x0d, // Generic call sequence CV_CALL_ALPHACALL = 0x0e, // Alpha call CV_CALL_PPCCALL = 0x0f, // PPC call CV_CALL_SHCALL = 0x10, // Hitachi SuperH call CV_CALL_ARMCALL = 0x11, // ARM call CV_CALL_AM33CALL = 0x12, // AM33 call CV_CALL_TRICALL = 0x13, // TriCore Call CV_CALL_SH5CALL = 0x14, // Hitachi SuperH-5 call CV_CALL_M32RCALL = 0x15, // M32R Call CV_CALL_RESERVED = 0x16 // first unused call enumeration } CV_call_e; // Values for the access protection of class attributes typedef enum CV_access_e { CV_private = 1, CV_protected = 2, CV_public = 3 } CV_access_e; typedef enum THUNK_ORDINAL { THUNK_ORDINAL_NOTYPE, // standard thunk THUNK_ORDINAL_ADJUSTOR, // "this" adjustor thunk THUNK_ORDINAL_VCALL, // virtual call thunk THUNK_ORDINAL_PCODE, // pcode thunk THUNK_ORDINAL_LOAD, // thunk which loads the address to jump to // via unknown means... // trampoline thunk ordinals - only for use in Trampoline thunk symbols THUNK_ORDINAL_TRAMP_INCREMENTAL, THUNK_ORDINAL_TRAMP_BRANCHISLAND, } THUNK_ORDINAL; enum CV_SourceChksum_t { CHKSUM_TYPE_NONE = 0, // indicates no checksum is available CHKSUM_TYPE_MD5 }; // // DIA enums // enum SymTagEnum { SymTagNull, SymTagExe, SymTagCompiland, SymTagCompilandDetails, SymTagCompilandEnv, SymTagFunction, SymTagBlock, SymTagData, SymTagAnnotation, SymTagLabel, SymTagPublicSymbol, SymTagUDT, SymTagEnum, SymTagFunctionType, SymTagPointerType, SymTagArrayType, SymTagBaseType, SymTagTypedef, SymTagBaseClass, SymTagFriend, SymTagFunctionArgType, SymTagFuncDebugStart, SymTagFuncDebugEnd, SymTagUsingNamespace, SymTagVTableShape, SymTagVTable, SymTagCustom, SymTagThunk, SymTagCustomType, SymTagManagedType, SymTagDimension, SymTagMax }; enum LocationType { LocIsNull, LocIsStatic, LocIsTLS, LocIsRegRel, LocIsThisRel, LocIsEnregistered, LocIsBitField, LocIsSlot, LocIsIlRel, LocInMetaData, LocIsConstant, LocTypeMax }; enum DataKind { DataIsUnknown, DataIsLocal, DataIsStaticLocal, DataIsParam, DataIsObjectPtr, DataIsFileStatic, DataIsGlobal, DataIsMember, DataIsStaticMember, DataIsConstant }; enum UdtKind { UdtStruct, UdtClass, UdtUnion }; enum BasicType { btNoType = 0, btVoid = 1, btChar = 2, btWChar = 3, btInt = 6, btUInt = 7, btFloat = 8, btBCD = 9, btBool = 10, btLong = 13, btULong = 14, btCurrency = 25, btDate = 26, btVariant = 27, btComplex = 28, btBit = 29, btBSTR = 30, btHresult = 31 }; // enum describing the compile flag source language typedef enum CV_CFL_LANG { CV_CFL_C = 0x00, CV_CFL_CXX = 0x01, CV_CFL_FORTRAN = 0x02, CV_CFL_MASM = 0x03, CV_CFL_PASCAL = 0x04, CV_CFL_BASIC = 0x05, CV_CFL_COBOL = 0x06, CV_CFL_LINK = 0x07, CV_CFL_CVTRES = 0x08, CV_CFL_CVTPGD = 0x09, } CV_CFL_LANG; // enum describing target processor typedef enum CV_CPU_TYPE_e { CV_CFL_8080 = 0x00, CV_CFL_8086 = 0x01, CV_CFL_80286 = 0x02, CV_CFL_80386 = 0x03, CV_CFL_80486 = 0x04, CV_CFL_PENTIUM = 0x05, CV_CFL_PENTIUMII = 0x06, CV_CFL_PENTIUMPRO = CV_CFL_PENTIUMII, CV_CFL_PENTIUMIII = 0x07, CV_CFL_MIPS = 0x10, CV_CFL_MIPSR4000 = CV_CFL_MIPS, // don't break current code CV_CFL_MIPS16 = 0x11, CV_CFL_MIPS32 = 0x12, CV_CFL_MIPS64 = 0x13, CV_CFL_MIPSI = 0x14, CV_CFL_MIPSII = 0x15, CV_CFL_MIPSIII = 0x16, CV_CFL_MIPSIV = 0x17, CV_CFL_MIPSV = 0x18, CV_CFL_M68000 = 0x20, CV_CFL_M68010 = 0x21, CV_CFL_M68020 = 0x22, CV_CFL_M68030 = 0x23, CV_CFL_M68040 = 0x24, CV_CFL_ALPHA = 0x30, CV_CFL_ALPHA_21064 = 0x30, CV_CFL_ALPHA_21164 = 0x31, CV_CFL_ALPHA_21164A = 0x32, CV_CFL_ALPHA_21264 = 0x33, CV_CFL_ALPHA_21364 = 0x34, CV_CFL_PPC601 = 0x40, CV_CFL_PPC603 = 0x41, CV_CFL_PPC604 = 0x42, CV_CFL_PPC620 = 0x43, CV_CFL_PPCFP = 0x44, CV_CFL_SH3 = 0x50, CV_CFL_SH3E = 0x51, CV_CFL_SH3DSP = 0x52, CV_CFL_SH4 = 0x53, CV_CFL_SHMEDIA = 0x54, CV_CFL_ARM3 = 0x60, CV_CFL_ARM4 = 0x61, CV_CFL_ARM4T = 0x62, CV_CFL_ARM5 = 0x63, CV_CFL_ARM5T = 0x64, CV_CFL_OMNI = 0x70, CV_CFL_IA64 = 0x80, CV_CFL_IA64_1 = 0x80, CV_CFL_IA64_2 = 0x81, CV_CFL_CEE = 0x90, CV_CFL_AM33 = 0xA0, CV_CFL_M32R = 0xB0, CV_CFL_TRICORE = 0xC0, CV_CFL_RESERVED1 = 0xD0, CV_CFL_EBC = 0xE0, CV_CFL_THUMB = 0xF0, } CV_CPU_TYPE_e; typedef enum CV_HREG_e { // Register subset shared by all processor types, // must not overlap with any of the ranges below, hence the high values CV_ALLREG_ERR = 30000, CV_ALLREG_TEB = 30001, CV_ALLREG_TIMER = 30002, CV_ALLREG_EFAD1 = 30003, CV_ALLREG_EFAD2 = 30004, CV_ALLREG_EFAD3 = 30005, CV_ALLREG_VFRAME= 30006, CV_ALLREG_HANDLE= 30007, CV_ALLREG_PARAMS= 30008, CV_ALLREG_LOCALS= 30009, // Register set for the Intel 80x86 and ix86 processor series // (plus PCODE registers) CV_REG_NONE = 0, CV_REG_AL = 1, CV_REG_CL = 2, CV_REG_DL = 3, CV_REG_BL = 4, CV_REG_AH = 5, CV_REG_CH = 6, CV_REG_DH = 7, CV_REG_BH = 8, CV_REG_AX = 9, CV_REG_CX = 10, CV_REG_DX = 11, CV_REG_BX = 12, CV_REG_SP = 13, CV_REG_BP = 14, CV_REG_SI = 15, CV_REG_DI = 16, CV_REG_EAX = 17, CV_REG_ECX = 18, CV_REG_EDX = 19, CV_REG_EBX = 20, CV_REG_ESP = 21, CV_REG_EBP = 22, CV_REG_ESI = 23, CV_REG_EDI = 24, CV_REG_ES = 25, CV_REG_CS = 26, CV_REG_SS = 27, CV_REG_DS = 28, CV_REG_FS = 29, CV_REG_GS = 30, CV_REG_IP = 31, CV_REG_FLAGS = 32, CV_REG_EIP = 33, CV_REG_EFLAGS = 34, CV_REG_TEMP = 40, // PCODE Temp CV_REG_TEMPH = 41, // PCODE TempH CV_REG_QUOTE = 42, // PCODE Quote CV_REG_PCDR3 = 43, // PCODE reserved CV_REG_PCDR4 = 44, // PCODE reserved CV_REG_PCDR5 = 45, // PCODE reserved CV_REG_PCDR6 = 46, // PCODE reserved CV_REG_PCDR7 = 47, // PCODE reserved CV_REG_CR0 = 80, // CR0 -- control registers CV_REG_CR1 = 81, CV_REG_CR2 = 82, CV_REG_CR3 = 83, CV_REG_CR4 = 84, // Pentium CV_REG_DR0 = 90, // Debug register CV_REG_DR1 = 91, CV_REG_DR2 = 92, CV_REG_DR3 = 93, CV_REG_DR4 = 94, CV_REG_DR5 = 95, CV_REG_DR6 = 96, CV_REG_DR7 = 97, CV_REG_GDTR = 110, CV_REG_GDTL = 111, CV_REG_IDTR = 112, CV_REG_IDTL = 113, CV_REG_LDTR = 114, CV_REG_TR = 115, CV_REG_PSEUDO1 = 116, CV_REG_PSEUDO2 = 117, CV_REG_PSEUDO3 = 118, CV_REG_PSEUDO4 = 119, CV_REG_PSEUDO5 = 120, CV_REG_PSEUDO6 = 121, CV_REG_PSEUDO7 = 122, CV_REG_PSEUDO8 = 123, CV_REG_PSEUDO9 = 124, CV_REG_ST0 = 128, CV_REG_ST1 = 129, CV_REG_ST2 = 130, CV_REG_ST3 = 131, CV_REG_ST4 = 132, CV_REG_ST5 = 133, CV_REG_ST6 = 134, CV_REG_ST7 = 135, CV_REG_CTRL = 136, CV_REG_STAT = 137, CV_REG_TAG = 138, CV_REG_FPIP = 139, CV_REG_FPCS = 140, CV_REG_FPDO = 141, CV_REG_FPDS = 142, CV_REG_ISEM = 143, CV_REG_FPEIP = 144, CV_REG_FPEDO = 145, CV_REG_MM0 = 146, CV_REG_MM1 = 147, CV_REG_MM2 = 148, CV_REG_MM3 = 149, CV_REG_MM4 = 150, CV_REG_MM5 = 151, CV_REG_MM6 = 152, CV_REG_MM7 = 153, CV_REG_XMM0 = 154, // KATMAI registers CV_REG_XMM1 = 155, CV_REG_XMM2 = 156, CV_REG_XMM3 = 157, CV_REG_XMM4 = 158, CV_REG_XMM5 = 159, CV_REG_XMM6 = 160, CV_REG_XMM7 = 161, CV_REG_XMM00 = 162, // KATMAI sub-registers CV_REG_XMM01 = 163, CV_REG_XMM02 = 164, CV_REG_XMM03 = 165, CV_REG_XMM10 = 166, CV_REG_XMM11 = 167, CV_REG_XMM12 = 168, CV_REG_XMM13 = 169, CV_REG_XMM20 = 170, CV_REG_XMM21 = 171, CV_REG_XMM22 = 172, CV_REG_XMM23 = 173, CV_REG_XMM30 = 174, CV_REG_XMM31 = 175, CV_REG_XMM32 = 176, CV_REG_XMM33 = 177, CV_REG_XMM40 = 178, CV_REG_XMM41 = 179, CV_REG_XMM42 = 180, CV_REG_XMM43 = 181, CV_REG_XMM50 = 182, CV_REG_XMM51 = 183, CV_REG_XMM52 = 184, CV_REG_XMM53 = 185, CV_REG_XMM60 = 186, CV_REG_XMM61 = 187, CV_REG_XMM62 = 188, CV_REG_XMM63 = 189, CV_REG_XMM70 = 190, CV_REG_XMM71 = 191, CV_REG_XMM72 = 192, CV_REG_XMM73 = 193, CV_REG_XMM0L = 194, CV_REG_XMM1L = 195, CV_REG_XMM2L = 196, CV_REG_XMM3L = 197, CV_REG_XMM4L = 198, CV_REG_XMM5L = 199, CV_REG_XMM6L = 200, CV_REG_XMM7L = 201, CV_REG_XMM0H = 202, CV_REG_XMM1H = 203, CV_REG_XMM2H = 204, CV_REG_XMM3H = 205, CV_REG_XMM4H = 206, CV_REG_XMM5H = 207, CV_REG_XMM6H = 208, CV_REG_XMM7H = 209, CV_REG_MXCSR = 211, // XMM status register CV_REG_EDXEAX = 212, // EDX:EAX pair CV_REG_EMM0L = 220, // XMM sub-registers (WNI integer) CV_REG_EMM1L = 221, CV_REG_EMM2L = 222, CV_REG_EMM3L = 223, CV_REG_EMM4L = 224, CV_REG_EMM5L = 225, CV_REG_EMM6L = 226, CV_REG_EMM7L = 227, CV_REG_EMM0H = 228, CV_REG_EMM1H = 229, CV_REG_EMM2H = 230, CV_REG_EMM3H = 231, CV_REG_EMM4H = 232, CV_REG_EMM5H = 233, CV_REG_EMM6H = 234, CV_REG_EMM7H = 235, // do not change the order of these regs, first one must be even too CV_REG_MM00 = 236, CV_REG_MM01 = 237, CV_REG_MM10 = 238, CV_REG_MM11 = 239, CV_REG_MM20 = 240, CV_REG_MM21 = 241, CV_REG_MM30 = 242, CV_REG_MM31 = 243, CV_REG_MM40 = 244, CV_REG_MM41 = 245, CV_REG_MM50 = 246, CV_REG_MM51 = 247, CV_REG_MM60 = 248, CV_REG_MM61 = 249, CV_REG_MM70 = 250, CV_REG_MM71 = 251, // registers for the 68K processors CV_R68_D0 = 0, CV_R68_D1 = 1, CV_R68_D2 = 2, CV_R68_D3 = 3, CV_R68_D4 = 4, CV_R68_D5 = 5, CV_R68_D6 = 6, CV_R68_D7 = 7, CV_R68_A0 = 8, CV_R68_A1 = 9, CV_R68_A2 = 10, CV_R68_A3 = 11, CV_R68_A4 = 12, CV_R68_A5 = 13, CV_R68_A6 = 14, CV_R68_A7 = 15, CV_R68_CCR = 16, CV_R68_SR = 17, CV_R68_USP = 18, CV_R68_MSP = 19, CV_R68_SFC = 20, CV_R68_DFC = 21, CV_R68_CACR = 22, CV_R68_VBR = 23, CV_R68_CAAR = 24, CV_R68_ISP = 25, CV_R68_PC = 26, //reserved 27 CV_R68_FPCR = 28, CV_R68_FPSR = 29, CV_R68_FPIAR = 30, //reserved 31 CV_R68_FP0 = 32, CV_R68_FP1 = 33, CV_R68_FP2 = 34, CV_R68_FP3 = 35, CV_R68_FP4 = 36, CV_R68_FP5 = 37, CV_R68_FP6 = 38, CV_R68_FP7 = 39, //reserved 40 CV_R68_MMUSR030 = 41, CV_R68_MMUSR = 42, CV_R68_URP = 43, CV_R68_DTT0 = 44, CV_R68_DTT1 = 45, CV_R68_ITT0 = 46, CV_R68_ITT1 = 47, //reserved 50 CV_R68_PSR = 51, CV_R68_PCSR = 52, CV_R68_VAL = 53, CV_R68_CRP = 54, CV_R68_SRP = 55, CV_R68_DRP = 56, CV_R68_TC = 57, CV_R68_AC = 58, CV_R68_SCC = 59, CV_R68_CAL = 60, CV_R68_TT0 = 61, CV_R68_TT1 = 62, //reserved 63 CV_R68_BAD0 = 64, CV_R68_BAD1 = 65, CV_R68_BAD2 = 66, CV_R68_BAD3 = 67, CV_R68_BAD4 = 68, CV_R68_BAD5 = 69, CV_R68_BAD6 = 70, CV_R68_BAD7 = 71, CV_R68_BAC0 = 72, CV_R68_BAC1 = 73, CV_R68_BAC2 = 74, CV_R68_BAC3 = 75, CV_R68_BAC4 = 76, CV_R68_BAC5 = 77, CV_R68_BAC6 = 78, CV_R68_BAC7 = 79, // Register set for the MIPS 4000 CV_M4_NOREG = CV_REG_NONE, CV_M4_IntZERO = 10, /* CPU REGISTER */ CV_M4_IntAT = 11, CV_M4_IntV0 = 12, CV_M4_IntV1 = 13, CV_M4_IntA0 = 14, CV_M4_IntA1 = 15, CV_M4_IntA2 = 16, CV_M4_IntA3 = 17, CV_M4_IntT0 = 18, CV_M4_IntT1 = 19, CV_M4_IntT2 = 20, CV_M4_IntT3 = 21, CV_M4_IntT4 = 22, CV_M4_IntT5 = 23, CV_M4_IntT6 = 24, CV_M4_IntT7 = 25, CV_M4_IntS0 = 26, CV_M4_IntS1 = 27, CV_M4_IntS2 = 28, CV_M4_IntS3 = 29, CV_M4_IntS4 = 30, CV_M4_IntS5 = 31, CV_M4_IntS6 = 32, CV_M4_IntS7 = 33, CV_M4_IntT8 = 34, CV_M4_IntT9 = 35, CV_M4_IntKT0 = 36, CV_M4_IntKT1 = 37, CV_M4_IntGP = 38, CV_M4_IntSP = 39, CV_M4_IntS8 = 40, CV_M4_IntRA = 41, CV_M4_IntLO = 42, CV_M4_IntHI = 43, CV_M4_Fir = 50, CV_M4_Psr = 51, CV_M4_FltF0 = 60, /* Floating point registers */ CV_M4_FltF1 = 61, CV_M4_FltF2 = 62, CV_M4_FltF3 = 63, CV_M4_FltF4 = 64, CV_M4_FltF5 = 65, CV_M4_FltF6 = 66, CV_M4_FltF7 = 67, CV_M4_FltF8 = 68, CV_M4_FltF9 = 69, CV_M4_FltF10 = 70, CV_M4_FltF11 = 71, CV_M4_FltF12 = 72, CV_M4_FltF13 = 73, CV_M4_FltF14 = 74, CV_M4_FltF15 = 75, CV_M4_FltF16 = 76, CV_M4_FltF17 = 77, CV_M4_FltF18 = 78, CV_M4_FltF19 = 79, CV_M4_FltF20 = 80, CV_M4_FltF21 = 81, CV_M4_FltF22 = 82, CV_M4_FltF23 = 83, CV_M4_FltF24 = 84, CV_M4_FltF25 = 85, CV_M4_FltF26 = 86, CV_M4_FltF27 = 87, CV_M4_FltF28 = 88, CV_M4_FltF29 = 89, CV_M4_FltF30 = 90, CV_M4_FltF31 = 91, CV_M4_FltFsr = 92, // Register set for the ALPHA AXP CV_ALPHA_NOREG = CV_REG_NONE, CV_ALPHA_FltF0 = 10, // Floating point registers CV_ALPHA_FltF1 = 11, CV_ALPHA_FltF2 = 12, CV_ALPHA_FltF3 = 13, CV_ALPHA_FltF4 = 14, CV_ALPHA_FltF5 = 15, CV_ALPHA_FltF6 = 16, CV_ALPHA_FltF7 = 17, CV_ALPHA_FltF8 = 18, CV_ALPHA_FltF9 = 19, CV_ALPHA_FltF10 = 20, CV_ALPHA_FltF11 = 21, CV_ALPHA_FltF12 = 22, CV_ALPHA_FltF13 = 23, CV_ALPHA_FltF14 = 24, CV_ALPHA_FltF15 = 25, CV_ALPHA_FltF16 = 26, CV_ALPHA_FltF17 = 27, CV_ALPHA_FltF18 = 28, CV_ALPHA_FltF19 = 29, CV_ALPHA_FltF20 = 30, CV_ALPHA_FltF21 = 31, CV_ALPHA_FltF22 = 32, CV_ALPHA_FltF23 = 33, CV_ALPHA_FltF24 = 34, CV_ALPHA_FltF25 = 35, CV_ALPHA_FltF26 = 36, CV_ALPHA_FltF27 = 37, CV_ALPHA_FltF28 = 38, CV_ALPHA_FltF29 = 39, CV_ALPHA_FltF30 = 40, CV_ALPHA_FltF31 = 41, CV_ALPHA_IntV0 = 42, // Integer registers CV_ALPHA_IntT0 = 43, CV_ALPHA_IntT1 = 44, CV_ALPHA_IntT2 = 45, CV_ALPHA_IntT3 = 46, CV_ALPHA_IntT4 = 47, CV_ALPHA_IntT5 = 48, CV_ALPHA_IntT6 = 49, CV_ALPHA_IntT7 = 50, CV_ALPHA_IntS0 = 51, CV_ALPHA_IntS1 = 52, CV_ALPHA_IntS2 = 53, CV_ALPHA_IntS3 = 54, CV_ALPHA_IntS4 = 55, CV_ALPHA_IntS5 = 56, CV_ALPHA_IntFP = 57, CV_ALPHA_IntA0 = 58, CV_ALPHA_IntA1 = 59, CV_ALPHA_IntA2 = 60, CV_ALPHA_IntA3 = 61, CV_ALPHA_IntA4 = 62, CV_ALPHA_IntA5 = 63, CV_ALPHA_IntT8 = 64, CV_ALPHA_IntT9 = 65, CV_ALPHA_IntT10 = 66, CV_ALPHA_IntT11 = 67, CV_ALPHA_IntRA = 68, CV_ALPHA_IntT12 = 69, CV_ALPHA_IntAT = 70, CV_ALPHA_IntGP = 71, CV_ALPHA_IntSP = 72, CV_ALPHA_IntZERO = 73, CV_ALPHA_Fpcr = 74, // Control registers CV_ALPHA_Fir = 75, CV_ALPHA_Psr = 76, CV_ALPHA_FltFsr = 77, CV_ALPHA_SoftFpcr = 78, // Register Set for Motorola/IBM PowerPC /* ** PowerPC General Registers ( User Level ) */ CV_PPC_GPR0 = 1, CV_PPC_GPR1 = 2, CV_PPC_GPR2 = 3, CV_PPC_GPR3 = 4, CV_PPC_GPR4 = 5, CV_PPC_GPR5 = 6, CV_PPC_GPR6 = 7, CV_PPC_GPR7 = 8, CV_PPC_GPR8 = 9, CV_PPC_GPR9 = 10, CV_PPC_GPR10 = 11, CV_PPC_GPR11 = 12, CV_PPC_GPR12 = 13, CV_PPC_GPR13 = 14, CV_PPC_GPR14 = 15, CV_PPC_GPR15 = 16, CV_PPC_GPR16 = 17, CV_PPC_GPR17 = 18, CV_PPC_GPR18 = 19, CV_PPC_GPR19 = 20, CV_PPC_GPR20 = 21, CV_PPC_GPR21 = 22, CV_PPC_GPR22 = 23, CV_PPC_GPR23 = 24, CV_PPC_GPR24 = 25, CV_PPC_GPR25 = 26, CV_PPC_GPR26 = 27, CV_PPC_GPR27 = 28, CV_PPC_GPR28 = 29, CV_PPC_GPR29 = 30, CV_PPC_GPR30 = 31, CV_PPC_GPR31 = 32, /* ** PowerPC Condition Register ( User Level ) */ CV_PPC_CR = 33, CV_PPC_CR0 = 34, CV_PPC_CR1 = 35, CV_PPC_CR2 = 36, CV_PPC_CR3 = 37, CV_PPC_CR4 = 38, CV_PPC_CR5 = 39, CV_PPC_CR6 = 40, CV_PPC_CR7 = 41, /* ** PowerPC Floating Point Registers ( User Level ) */ CV_PPC_FPR0 = 42, CV_PPC_FPR1 = 43, CV_PPC_FPR2 = 44, CV_PPC_FPR3 = 45, CV_PPC_FPR4 = 46, CV_PPC_FPR5 = 47, CV_PPC_FPR6 = 48, CV_PPC_FPR7 = 49, CV_PPC_FPR8 = 50, CV_PPC_FPR9 = 51, CV_PPC_FPR10 = 52, CV_PPC_FPR11 = 53, CV_PPC_FPR12 = 54, CV_PPC_FPR13 = 55, CV_PPC_FPR14 = 56, CV_PPC_FPR15 = 57, CV_PPC_FPR16 = 58, CV_PPC_FPR17 = 59, CV_PPC_FPR18 = 60, CV_PPC_FPR19 = 61, CV_PPC_FPR20 = 62, CV_PPC_FPR21 = 63, CV_PPC_FPR22 = 64, CV_PPC_FPR23 = 65, CV_PPC_FPR24 = 66, CV_PPC_FPR25 = 67, CV_PPC_FPR26 = 68, CV_PPC_FPR27 = 69, CV_PPC_FPR28 = 70, CV_PPC_FPR29 = 71, CV_PPC_FPR30 = 72, CV_PPC_FPR31 = 73, /* ** PowerPC Floating Point Status and Control Register ( User Level ) */ CV_PPC_FPSCR = 74, /* ** PowerPC Machine State Register ( Supervisor Level ) */ CV_PPC_MSR = 75, /* ** PowerPC Segment Registers ( Supervisor Level ) */ CV_PPC_SR0 = 76, CV_PPC_SR1 = 77, CV_PPC_SR2 = 78, CV_PPC_SR3 = 79, CV_PPC_SR4 = 80, CV_PPC_SR5 = 81, CV_PPC_SR6 = 82, CV_PPC_SR7 = 83, CV_PPC_SR8 = 84, CV_PPC_SR9 = 85, CV_PPC_SR10 = 86, CV_PPC_SR11 = 87, CV_PPC_SR12 = 88, CV_PPC_SR13 = 89, CV_PPC_SR14 = 90, CV_PPC_SR15 = 91, /* ** For all of the special purpose registers add 100 to the SPR# that the ** Motorola/IBM documentation gives with the exception of any imaginary ** registers. */ /* ** PowerPC Special Purpose Registers ( User Level ) */ CV_PPC_PC = 99, // PC (imaginary register) CV_PPC_MQ = 100, // MPC601 CV_PPC_XER = 101, CV_PPC_RTCU = 104, // MPC601 CV_PPC_RTCL = 105, // MPC601 CV_PPC_LR = 108, CV_PPC_CTR = 109, CV_PPC_COMPARE = 110, // part of XER (internal to the debugger only) CV_PPC_COUNT = 111, // part of XER (internal to the debugger only) /* ** PowerPC Special Purpose Registers ( Supervisor Level ) */ CV_PPC_DSISR = 118, CV_PPC_DAR = 119, CV_PPC_DEC = 122, CV_PPC_SDR1 = 125, CV_PPC_SRR0 = 126, CV_PPC_SRR1 = 127, CV_PPC_SPRG0 = 372, CV_PPC_SPRG1 = 373, CV_PPC_SPRG2 = 374, CV_PPC_SPRG3 = 375, CV_PPC_ASR = 280, // 64-bit implementations only CV_PPC_EAR = 382, CV_PPC_PVR = 287, CV_PPC_BAT0U = 628, CV_PPC_BAT0L = 629, CV_PPC_BAT1U = 630, CV_PPC_BAT1L = 631, CV_PPC_BAT2U = 632, CV_PPC_BAT2L = 633, CV_PPC_BAT3U = 634, CV_PPC_BAT3L = 635, CV_PPC_DBAT0U = 636, CV_PPC_DBAT0L = 637, CV_PPC_DBAT1U = 638, CV_PPC_DBAT1L = 639, CV_PPC_DBAT2U = 640, CV_PPC_DBAT2L = 641, CV_PPC_DBAT3U = 642, CV_PPC_DBAT3L = 643, /* ** PowerPC Special Purpose Registers Implementation Dependent ( Supervisor Level ) */ /* ** Doesn't appear that IBM/Motorola has finished defining these. */ CV_PPC_PMR0 = 1044, // MPC620, CV_PPC_PMR1 = 1045, // MPC620, CV_PPC_PMR2 = 1046, // MPC620, CV_PPC_PMR3 = 1047, // MPC620, CV_PPC_PMR4 = 1048, // MPC620, CV_PPC_PMR5 = 1049, // MPC620, CV_PPC_PMR6 = 1050, // MPC620, CV_PPC_PMR7 = 1051, // MPC620, CV_PPC_PMR8 = 1052, // MPC620, CV_PPC_PMR9 = 1053, // MPC620, CV_PPC_PMR10 = 1054, // MPC620, CV_PPC_PMR11 = 1055, // MPC620, CV_PPC_PMR12 = 1056, // MPC620, CV_PPC_PMR13 = 1057, // MPC620, CV_PPC_PMR14 = 1058, // MPC620, CV_PPC_PMR15 = 1059, // MPC620, CV_PPC_DMISS = 1076, // MPC603 CV_PPC_DCMP = 1077, // MPC603 CV_PPC_HASH1 = 1078, // MPC603 CV_PPC_HASH2 = 1079, // MPC603 CV_PPC_IMISS = 1080, // MPC603 CV_PPC_ICMP = 1081, // MPC603 CV_PPC_RPA = 1082, // MPC603 CV_PPC_HID0 = 1108, // MPC601, MPC603, MPC620 CV_PPC_HID1 = 1109, // MPC601 CV_PPC_HID2 = 1110, // MPC601, MPC603, MPC620 ( IABR ) CV_PPC_HID3 = 1111, // Not Defined CV_PPC_HID4 = 1112, // Not Defined CV_PPC_HID5 = 1113, // MPC601, MPC604, MPC620 ( DABR ) CV_PPC_HID6 = 1114, // Not Defined CV_PPC_HID7 = 1115, // Not Defined CV_PPC_HID8 = 1116, // MPC620 ( BUSCSR ) CV_PPC_HID9 = 1117, // MPC620 ( L2CSR ) CV_PPC_HID10 = 1118, // Not Defined CV_PPC_HID11 = 1119, // Not Defined CV_PPC_HID12 = 1120, // Not Defined CV_PPC_HID13 = 1121, // MPC604 ( HCR ) CV_PPC_HID14 = 1122, // Not Defined CV_PPC_HID15 = 1123, // MPC601, MPC604, MPC620 ( PIR ) // // JAVA VM registers // CV_JAVA_PC = 1, // // Register set for the Hitachi SH3 // CV_SH3_NOREG = CV_REG_NONE, CV_SH3_IntR0 = 10, // CPU REGISTER CV_SH3_IntR1 = 11, CV_SH3_IntR2 = 12, CV_SH3_IntR3 = 13, CV_SH3_IntR4 = 14, CV_SH3_IntR5 = 15, CV_SH3_IntR6 = 16, CV_SH3_IntR7 = 17, CV_SH3_IntR8 = 18, CV_SH3_IntR9 = 19, CV_SH3_IntR10 = 20, CV_SH3_IntR11 = 21, CV_SH3_IntR12 = 22, CV_SH3_IntR13 = 23, CV_SH3_IntFp = 24, CV_SH3_IntSp = 25, CV_SH3_Gbr = 38, CV_SH3_Pr = 39, CV_SH3_Mach = 40, CV_SH3_Macl = 41, CV_SH3_Pc = 50, CV_SH3_Sr = 51, CV_SH3_BarA = 60, CV_SH3_BasrA = 61, CV_SH3_BamrA = 62, CV_SH3_BbrA = 63, CV_SH3_BarB = 64, CV_SH3_BasrB = 65, CV_SH3_BamrB = 66, CV_SH3_BbrB = 67, CV_SH3_BdrB = 68, CV_SH3_BdmrB = 69, CV_SH3_Brcr = 70, // // Additional registers for Hitachi SH processors // CV_SH_Fpscr = 75, // floating point status/control register CV_SH_Fpul = 76, // floating point communication register CV_SH_FpR0 = 80, // Floating point registers CV_SH_FpR1 = 81, CV_SH_FpR2 = 82, CV_SH_FpR3 = 83, CV_SH_FpR4 = 84, CV_SH_FpR5 = 85, CV_SH_FpR6 = 86, CV_SH_FpR7 = 87, CV_SH_FpR8 = 88, CV_SH_FpR9 = 89, CV_SH_FpR10 = 90, CV_SH_FpR11 = 91, CV_SH_FpR12 = 92, CV_SH_FpR13 = 93, CV_SH_FpR14 = 94, CV_SH_FpR15 = 95, CV_SH_XFpR0 = 96, CV_SH_XFpR1 = 97, CV_SH_XFpR2 = 98, CV_SH_XFpR3 = 99, CV_SH_XFpR4 = 100, CV_SH_XFpR5 = 101, CV_SH_XFpR6 = 102, CV_SH_XFpR7 = 103, CV_SH_XFpR8 = 104, CV_SH_XFpR9 = 105, CV_SH_XFpR10 = 106, CV_SH_XFpR11 = 107, CV_SH_XFpR12 = 108, CV_SH_XFpR13 = 109, CV_SH_XFpR14 = 110, CV_SH_XFpR15 = 111, // // Register set for the ARM processor. // CV_ARM_NOREG = CV_REG_NONE, CV_ARM_R0 = 10, CV_ARM_R1 = 11, CV_ARM_R2 = 12, CV_ARM_R3 = 13, CV_ARM_R4 = 14, CV_ARM_R5 = 15, CV_ARM_R6 = 16, CV_ARM_R7 = 17, CV_ARM_R8 = 18, CV_ARM_R9 = 19, CV_ARM_R10 = 20, CV_ARM_R11 = 21, // Frame pointer, if allocated CV_ARM_R12 = 22, CV_ARM_SP = 23, // Stack pointer CV_ARM_LR = 24, // Link Register CV_ARM_PC = 25, // Program counter CV_ARM_CPSR = 26, // Current program status register // // Register set for Intel IA64 // CV_IA64_NOREG = CV_REG_NONE, // Branch Registers CV_IA64_Br0 = 512, CV_IA64_Br1 = 513, CV_IA64_Br2 = 514, CV_IA64_Br3 = 515, CV_IA64_Br4 = 516, CV_IA64_Br5 = 517, CV_IA64_Br6 = 518, CV_IA64_Br7 = 519, // Predicate Registers CV_IA64_P0 = 704, CV_IA64_P1 = 705, CV_IA64_P2 = 706, CV_IA64_P3 = 707, CV_IA64_P4 = 708, CV_IA64_P5 = 709, CV_IA64_P6 = 710, CV_IA64_P7 = 711, CV_IA64_P8 = 712, CV_IA64_P9 = 713, CV_IA64_P10 = 714, CV_IA64_P11 = 715, CV_IA64_P12 = 716, CV_IA64_P13 = 717, CV_IA64_P14 = 718, CV_IA64_P15 = 719, CV_IA64_P16 = 720, CV_IA64_P17 = 721, CV_IA64_P18 = 722, CV_IA64_P19 = 723, CV_IA64_P20 = 724, CV_IA64_P21 = 725, CV_IA64_P22 = 726, CV_IA64_P23 = 727, CV_IA64_P24 = 728, CV_IA64_P25 = 729, CV_IA64_P26 = 730, CV_IA64_P27 = 731, CV_IA64_P28 = 732, CV_IA64_P29 = 733, CV_IA64_P30 = 734, CV_IA64_P31 = 735, CV_IA64_P32 = 736, CV_IA64_P33 = 737, CV_IA64_P34 = 738, CV_IA64_P35 = 739, CV_IA64_P36 = 740, CV_IA64_P37 = 741, CV_IA64_P38 = 742, CV_IA64_P39 = 743, CV_IA64_P40 = 744, CV_IA64_P41 = 745, CV_IA64_P42 = 746, CV_IA64_P43 = 747, CV_IA64_P44 = 748, CV_IA64_P45 = 749, CV_IA64_P46 = 750, CV_IA64_P47 = 751, CV_IA64_P48 = 752, CV_IA64_P49 = 753, CV_IA64_P50 = 754, CV_IA64_P51 = 755, CV_IA64_P52 = 756, CV_IA64_P53 = 757, CV_IA64_P54 = 758, CV_IA64_P55 = 759, CV_IA64_P56 = 760, CV_IA64_P57 = 761, CV_IA64_P58 = 762, CV_IA64_P59 = 763, CV_IA64_P60 = 764, CV_IA64_P61 = 765, CV_IA64_P62 = 766, CV_IA64_P63 = 767, CV_IA64_Preds = 768, // Banked General Registers CV_IA64_IntH0 = 832, CV_IA64_IntH1 = 833, CV_IA64_IntH2 = 834, CV_IA64_IntH3 = 835, CV_IA64_IntH4 = 836, CV_IA64_IntH5 = 837, CV_IA64_IntH6 = 838, CV_IA64_IntH7 = 839, CV_IA64_IntH8 = 840, CV_IA64_IntH9 = 841, CV_IA64_IntH10 = 842, CV_IA64_IntH11 = 843, CV_IA64_IntH12 = 844, CV_IA64_IntH13 = 845, CV_IA64_IntH14 = 846, CV_IA64_IntH15 = 847, // Special Registers CV_IA64_Ip = 1016, CV_IA64_Umask = 1017, CV_IA64_Cfm = 1018, CV_IA64_Psr = 1019, // Banked General Registers CV_IA64_Nats = 1020, CV_IA64_Nats2 = 1021, CV_IA64_Nats3 = 1022, // General-Purpose Registers // Integer registers CV_IA64_IntR0 = 1024, CV_IA64_IntR1 = 1025, CV_IA64_IntR2 = 1026, CV_IA64_IntR3 = 1027, CV_IA64_IntR4 = 1028, CV_IA64_IntR5 = 1029, CV_IA64_IntR6 = 1030, CV_IA64_IntR7 = 1031, CV_IA64_IntR8 = 1032, CV_IA64_IntR9 = 1033, CV_IA64_IntR10 = 1034, CV_IA64_IntR11 = 1035, CV_IA64_IntR12 = 1036, CV_IA64_IntR13 = 1037, CV_IA64_IntR14 = 1038, CV_IA64_IntR15 = 1039, CV_IA64_IntR16 = 1040, CV_IA64_IntR17 = 1041, CV_IA64_IntR18 = 1042, CV_IA64_IntR19 = 1043, CV_IA64_IntR20 = 1044, CV_IA64_IntR21 = 1045, CV_IA64_IntR22 = 1046, CV_IA64_IntR23 = 1047, CV_IA64_IntR24 = 1048, CV_IA64_IntR25 = 1049, CV_IA64_IntR26 = 1050, CV_IA64_IntR27 = 1051, CV_IA64_IntR28 = 1052, CV_IA64_IntR29 = 1053, CV_IA64_IntR30 = 1054, CV_IA64_IntR31 = 1055, // Register Stack CV_IA64_IntR32 = 1056, CV_IA64_IntR33 = 1057, CV_IA64_IntR34 = 1058, CV_IA64_IntR35 = 1059, CV_IA64_IntR36 = 1060, CV_IA64_IntR37 = 1061, CV_IA64_IntR38 = 1062, CV_IA64_IntR39 = 1063, CV_IA64_IntR40 = 1064, CV_IA64_IntR41 = 1065, CV_IA64_IntR42 = 1066, CV_IA64_IntR43 = 1067, CV_IA64_IntR44 = 1068, CV_IA64_IntR45 = 1069, CV_IA64_IntR46 = 1070, CV_IA64_IntR47 = 1071, CV_IA64_IntR48 = 1072, CV_IA64_IntR49 = 1073, CV_IA64_IntR50 = 1074, CV_IA64_IntR51 = 1075, CV_IA64_IntR52 = 1076, CV_IA64_IntR53 = 1077, CV_IA64_IntR54 = 1078, CV_IA64_IntR55 = 1079, CV_IA64_IntR56 = 1080, CV_IA64_IntR57 = 1081, CV_IA64_IntR58 = 1082, CV_IA64_IntR59 = 1083, CV_IA64_IntR60 = 1084, CV_IA64_IntR61 = 1085, CV_IA64_IntR62 = 1086, CV_IA64_IntR63 = 1087, CV_IA64_IntR64 = 1088, CV_IA64_IntR65 = 1089, CV_IA64_IntR66 = 1090, CV_IA64_IntR67 = 1091, CV_IA64_IntR68 = 1092, CV_IA64_IntR69 = 1093, CV_IA64_IntR70 = 1094, CV_IA64_IntR71 = 1095, CV_IA64_IntR72 = 1096, CV_IA64_IntR73 = 1097, CV_IA64_IntR74 = 1098, CV_IA64_IntR75 = 1099, CV_IA64_IntR76 = 1100, CV_IA64_IntR77 = 1101, CV_IA64_IntR78 = 1102, CV_IA64_IntR79 = 1103, CV_IA64_IntR80 = 1104, CV_IA64_IntR81 = 1105, CV_IA64_IntR82 = 1106, CV_IA64_IntR83 = 1107, CV_IA64_IntR84 = 1108, CV_IA64_IntR85 = 1109, CV_IA64_IntR86 = 1110, CV_IA64_IntR87 = 1111, CV_IA64_IntR88 = 1112, CV_IA64_IntR89 = 1113, CV_IA64_IntR90 = 1114, CV_IA64_IntR91 = 1115, CV_IA64_IntR92 = 1116, CV_IA64_IntR93 = 1117, CV_IA64_IntR94 = 1118, CV_IA64_IntR95 = 1119, CV_IA64_IntR96 = 1120, CV_IA64_IntR97 = 1121, CV_IA64_IntR98 = 1122, CV_IA64_IntR99 = 1123, CV_IA64_IntR100 = 1124, CV_IA64_IntR101 = 1125, CV_IA64_IntR102 = 1126, CV_IA64_IntR103 = 1127, CV_IA64_IntR104 = 1128, CV_IA64_IntR105 = 1129, CV_IA64_IntR106 = 1130, CV_IA64_IntR107 = 1131, CV_IA64_IntR108 = 1132, CV_IA64_IntR109 = 1133, CV_IA64_IntR110 = 1134, CV_IA64_IntR111 = 1135, CV_IA64_IntR112 = 1136, CV_IA64_IntR113 = 1137, CV_IA64_IntR114 = 1138, CV_IA64_IntR115 = 1139, CV_IA64_IntR116 = 1140, CV_IA64_IntR117 = 1141, CV_IA64_IntR118 = 1142, CV_IA64_IntR119 = 1143, CV_IA64_IntR120 = 1144, CV_IA64_IntR121 = 1145, CV_IA64_IntR122 = 1146, CV_IA64_IntR123 = 1147, CV_IA64_IntR124 = 1148, CV_IA64_IntR125 = 1149, CV_IA64_IntR126 = 1150, CV_IA64_IntR127 = 1151, // Floating-Point Registers // Low Floating Point Registers CV_IA64_FltF0 = 2048, CV_IA64_FltF1 = 2049, CV_IA64_FltF2 = 2050, CV_IA64_FltF3 = 2051, CV_IA64_FltF4 = 2052, CV_IA64_FltF5 = 2053, CV_IA64_FltF6 = 2054, CV_IA64_FltF7 = 2055, CV_IA64_FltF8 = 2056, CV_IA64_FltF9 = 2057, CV_IA64_FltF10 = 2058, CV_IA64_FltF11 = 2059, CV_IA64_FltF12 = 2060, CV_IA64_FltF13 = 2061, CV_IA64_FltF14 = 2062, CV_IA64_FltF15 = 2063, CV_IA64_FltF16 = 2064, CV_IA64_FltF17 = 2065, CV_IA64_FltF18 = 2066, CV_IA64_FltF19 = 2067, CV_IA64_FltF20 = 2068, CV_IA64_FltF21 = 2069, CV_IA64_FltF22 = 2070, CV_IA64_FltF23 = 2071, CV_IA64_FltF24 = 2072, CV_IA64_FltF25 = 2073, CV_IA64_FltF26 = 2074, CV_IA64_FltF27 = 2075, CV_IA64_FltF28 = 2076, CV_IA64_FltF29 = 2077, CV_IA64_FltF30 = 2078, CV_IA64_FltF31 = 2079, // High Floating Point Registers CV_IA64_FltF32 = 2080, CV_IA64_FltF33 = 2081, CV_IA64_FltF34 = 2082, CV_IA64_FltF35 = 2083, CV_IA64_FltF36 = 2084, CV_IA64_FltF37 = 2085, CV_IA64_FltF38 = 2086, CV_IA64_FltF39 = 2087, CV_IA64_FltF40 = 2088, CV_IA64_FltF41 = 2089, CV_IA64_FltF42 = 2090, CV_IA64_FltF43 = 2091, CV_IA64_FltF44 = 2092, CV_IA64_FltF45 = 2093, CV_IA64_FltF46 = 2094, CV_IA64_FltF47 = 2095, CV_IA64_FltF48 = 2096, CV_IA64_FltF49 = 2097, CV_IA64_FltF50 = 2098, CV_IA64_FltF51 = 2099, CV_IA64_FltF52 = 2100, CV_IA64_FltF53 = 2101, CV_IA64_FltF54 = 2102, CV_IA64_FltF55 = 2103, CV_IA64_FltF56 = 2104, CV_IA64_FltF57 = 2105, CV_IA64_FltF58 = 2106, CV_IA64_FltF59 = 2107, CV_IA64_FltF60 = 2108, CV_IA64_FltF61 = 2109, CV_IA64_FltF62 = 2110, CV_IA64_FltF63 = 2111, CV_IA64_FltF64 = 2112, CV_IA64_FltF65 = 2113, CV_IA64_FltF66 = 2114, CV_IA64_FltF67 = 2115, CV_IA64_FltF68 = 2116, CV_IA64_FltF69 = 2117, CV_IA64_FltF70 = 2118, CV_IA64_FltF71 = 2119, CV_IA64_FltF72 = 2120, CV_IA64_FltF73 = 2121, CV_IA64_FltF74 = 2122, CV_IA64_FltF75 = 2123, CV_IA64_FltF76 = 2124, CV_IA64_FltF77 = 2125, CV_IA64_FltF78 = 2126, CV_IA64_FltF79 = 2127, CV_IA64_FltF80 = 2128, CV_IA64_FltF81 = 2129, CV_IA64_FltF82 = 2130, CV_IA64_FltF83 = 2131, CV_IA64_FltF84 = 2132, CV_IA64_FltF85 = 2133, CV_IA64_FltF86 = 2134, CV_IA64_FltF87 = 2135, CV_IA64_FltF88 = 2136, CV_IA64_FltF89 = 2137, CV_IA64_FltF90 = 2138, CV_IA64_FltF91 = 2139, CV_IA64_FltF92 = 2140, CV_IA64_FltF93 = 2141, CV_IA64_FltF94 = 2142, CV_IA64_FltF95 = 2143, CV_IA64_FltF96 = 2144, CV_IA64_FltF97 = 2145, CV_IA64_FltF98 = 2146, CV_IA64_FltF99 = 2147, CV_IA64_FltF100 = 2148, CV_IA64_FltF101 = 2149, CV_IA64_FltF102 = 2150, CV_IA64_FltF103 = 2151, CV_IA64_FltF104 = 2152, CV_IA64_FltF105 = 2153, CV_IA64_FltF106 = 2154, CV_IA64_FltF107 = 2155, CV_IA64_FltF108 = 2156, CV_IA64_FltF109 = 2157, CV_IA64_FltF110 = 2158, CV_IA64_FltF111 = 2159, CV_IA64_FltF112 = 2160, CV_IA64_FltF113 = 2161, CV_IA64_FltF114 = 2162, CV_IA64_FltF115 = 2163, CV_IA64_FltF116 = 2164, CV_IA64_FltF117 = 2165, CV_IA64_FltF118 = 2166, CV_IA64_FltF119 = 2167, CV_IA64_FltF120 = 2168, CV_IA64_FltF121 = 2169, CV_IA64_FltF122 = 2170, CV_IA64_FltF123 = 2171, CV_IA64_FltF124 = 2172, CV_IA64_FltF125 = 2173, CV_IA64_FltF126 = 2174, CV_IA64_FltF127 = 2175, // Application Registers CV_IA64_ApKR0 = 3072, CV_IA64_ApKR1 = 3073, CV_IA64_ApKR2 = 3074, CV_IA64_ApKR3 = 3075, CV_IA64_ApKR4 = 3076, CV_IA64_ApKR5 = 3077, CV_IA64_ApKR6 = 3078, CV_IA64_ApKR7 = 3079, CV_IA64_AR8 = 3080, CV_IA64_AR9 = 3081, CV_IA64_AR10 = 3082, CV_IA64_AR11 = 3083, CV_IA64_AR12 = 3084, CV_IA64_AR13 = 3085, CV_IA64_AR14 = 3086, CV_IA64_AR15 = 3087, CV_IA64_RsRSC = 3088, CV_IA64_RsBSP = 3089, CV_IA64_RsBSPSTORE = 3090, CV_IA64_RsRNAT = 3091, CV_IA64_AR20 = 3092, CV_IA64_StFCR = 3093, CV_IA64_AR22 = 3094, CV_IA64_AR23 = 3095, CV_IA64_EFLAG = 3096, CV_IA64_CSD = 3097, CV_IA64_SSD = 3098, CV_IA64_CFLG = 3099, CV_IA64_StFSR = 3100, CV_IA64_StFIR = 3101, CV_IA64_StFDR = 3102, CV_IA64_AR31 = 3103, CV_IA64_ApCCV = 3104, CV_IA64_AR33 = 3105, CV_IA64_AR34 = 3106, CV_IA64_AR35 = 3107, CV_IA64_ApUNAT = 3108, CV_IA64_AR37 = 3109, CV_IA64_AR38 = 3110, CV_IA64_AR39 = 3111, CV_IA64_StFPSR = 3112, CV_IA64_AR41 = 3113, CV_IA64_AR42 = 3114, CV_IA64_AR43 = 3115, CV_IA64_ApITC = 3116, CV_IA64_AR45 = 3117, CV_IA64_AR46 = 3118, CV_IA64_AR47 = 3119, CV_IA64_AR48 = 3120, CV_IA64_AR49 = 3121, CV_IA64_AR50 = 3122, CV_IA64_AR51 = 3123, CV_IA64_AR52 = 3124, CV_IA64_AR53 = 3125, CV_IA64_AR54 = 3126, CV_IA64_AR55 = 3127, CV_IA64_AR56 = 3128, CV_IA64_AR57 = 3129, CV_IA64_AR58 = 3130, CV_IA64_AR59 = 3131, CV_IA64_AR60 = 3132, CV_IA64_AR61 = 3133, CV_IA64_AR62 = 3134, CV_IA64_AR63 = 3135, CV_IA64_RsPFS = 3136, CV_IA64_ApLC = 3137, CV_IA64_ApEC = 3138, CV_IA64_AR67 = 3139, CV_IA64_AR68 = 3140, CV_IA64_AR69 = 3141, CV_IA64_AR70 = 3142, CV_IA64_AR71 = 3143, CV_IA64_AR72 = 3144, CV_IA64_AR73 = 3145, CV_IA64_AR74 = 3146, CV_IA64_AR75 = 3147, CV_IA64_AR76 = 3148, CV_IA64_AR77 = 3149, CV_IA64_AR78 = 3150, CV_IA64_AR79 = 3151, CV_IA64_AR80 = 3152, CV_IA64_AR81 = 3153, CV_IA64_AR82 = 3154, CV_IA64_AR83 = 3155, CV_IA64_AR84 = 3156, CV_IA64_AR85 = 3157, CV_IA64_AR86 = 3158, CV_IA64_AR87 = 3159, CV_IA64_AR88 = 3160, CV_IA64_AR89 = 3161, CV_IA64_AR90 = 3162, CV_IA64_AR91 = 3163, CV_IA64_AR92 = 3164, CV_IA64_AR93 = 3165, CV_IA64_AR94 = 3166, CV_IA64_AR95 = 3167, CV_IA64_AR96 = 3168, CV_IA64_AR97 = 3169, CV_IA64_AR98 = 3170, CV_IA64_AR99 = 3171, CV_IA64_AR100 = 3172, CV_IA64_AR101 = 3173, CV_IA64_AR102 = 3174, CV_IA64_AR103 = 3175, CV_IA64_AR104 = 3176, CV_IA64_AR105 = 3177, CV_IA64_AR106 = 3178, CV_IA64_AR107 = 3179, CV_IA64_AR108 = 3180, CV_IA64_AR109 = 3181, CV_IA64_AR110 = 3182, CV_IA64_AR111 = 3183, CV_IA64_AR112 = 3184, CV_IA64_AR113 = 3185, CV_IA64_AR114 = 3186, CV_IA64_AR115 = 3187, CV_IA64_AR116 = 3188, CV_IA64_AR117 = 3189, CV_IA64_AR118 = 3190, CV_IA64_AR119 = 3191, CV_IA64_AR120 = 3192, CV_IA64_AR121 = 3193, CV_IA64_AR122 = 3194, CV_IA64_AR123 = 3195, CV_IA64_AR124 = 3196, CV_IA64_AR125 = 3197, CV_IA64_AR126 = 3198, CV_IA64_AR127 = 3199, // CPUID Registers CV_IA64_CPUID0 = 3328, CV_IA64_CPUID1 = 3329, CV_IA64_CPUID2 = 3330, CV_IA64_CPUID3 = 3331, CV_IA64_CPUID4 = 3332, // Control Registers CV_IA64_ApDCR = 4096, CV_IA64_ApITM = 4097, CV_IA64_ApIVA = 4098, CV_IA64_CR3 = 4099, CV_IA64_CR4 = 4100, CV_IA64_CR5 = 4101, CV_IA64_CR6 = 4102, CV_IA64_CR7 = 4103, CV_IA64_ApPTA = 4104, CV_IA64_ApGPTA = 4105, CV_IA64_CR10 = 4106, CV_IA64_CR11 = 4107, CV_IA64_CR12 = 4108, CV_IA64_CR13 = 4109, CV_IA64_CR14 = 4110, CV_IA64_CR15 = 4111, CV_IA64_StIPSR = 4112, CV_IA64_StISR = 4113, CV_IA64_CR18 = 4114, CV_IA64_StIIP = 4115, CV_IA64_StIFA = 4116, CV_IA64_StITIR = 4117, CV_IA64_StIIPA = 4118, CV_IA64_StIFS = 4119, CV_IA64_StIIM = 4120, CV_IA64_StIHA = 4121, CV_IA64_CR26 = 4122, CV_IA64_CR27 = 4123, CV_IA64_CR28 = 4124, CV_IA64_CR29 = 4125, CV_IA64_CR30 = 4126, CV_IA64_CR31 = 4127, CV_IA64_CR32 = 4128, CV_IA64_CR33 = 4129, CV_IA64_CR34 = 4130, CV_IA64_CR35 = 4131, CV_IA64_CR36 = 4132, CV_IA64_CR37 = 4133, CV_IA64_CR38 = 4134, CV_IA64_CR39 = 4135, CV_IA64_CR40 = 4136, CV_IA64_CR41 = 4137, CV_IA64_CR42 = 4138, CV_IA64_CR43 = 4139, CV_IA64_CR44 = 4140, CV_IA64_CR45 = 4141, CV_IA64_CR46 = 4142, CV_IA64_CR47 = 4143, CV_IA64_CR48 = 4144, CV_IA64_CR49 = 4145, CV_IA64_CR50 = 4146, CV_IA64_CR51 = 4147, CV_IA64_CR52 = 4148, CV_IA64_CR53 = 4149, CV_IA64_CR54 = 4150, CV_IA64_CR55 = 4151, CV_IA64_CR56 = 4152, CV_IA64_CR57 = 4153, CV_IA64_CR58 = 4154, CV_IA64_CR59 = 4155, CV_IA64_CR60 = 4156, CV_IA64_CR61 = 4157, CV_IA64_CR62 = 4158, CV_IA64_CR63 = 4159, CV_IA64_SaLID = 4160, CV_IA64_SaIVR = 4161, CV_IA64_SaTPR = 4162, CV_IA64_SaEOI = 4163, CV_IA64_SaIRR0 = 4164, CV_IA64_SaIRR1 = 4165, CV_IA64_SaIRR2 = 4166, CV_IA64_SaIRR3 = 4167, CV_IA64_SaITV = 4168, CV_IA64_SaPMV = 4169, CV_IA64_SaCMCV = 4170, CV_IA64_CR75 = 4171, CV_IA64_CR76 = 4172, CV_IA64_CR77 = 4173, CV_IA64_CR78 = 4174, CV_IA64_CR79 = 4175, CV_IA64_SaLRR0 = 4176, CV_IA64_SaLRR1 = 4177, CV_IA64_CR82 = 4178, CV_IA64_CR83 = 4179, CV_IA64_CR84 = 4180, CV_IA64_CR85 = 4181, CV_IA64_CR86 = 4182, CV_IA64_CR87 = 4183, CV_IA64_CR88 = 4184, CV_IA64_CR89 = 4185, CV_IA64_CR90 = 4186, CV_IA64_CR91 = 4187, CV_IA64_CR92 = 4188, CV_IA64_CR93 = 4189, CV_IA64_CR94 = 4190, CV_IA64_CR95 = 4191, CV_IA64_CR96 = 4192, CV_IA64_CR97 = 4193, CV_IA64_CR98 = 4194, CV_IA64_CR99 = 4195, CV_IA64_CR100 = 4196, CV_IA64_CR101 = 4197, CV_IA64_CR102 = 4198, CV_IA64_CR103 = 4199, CV_IA64_CR104 = 4200, CV_IA64_CR105 = 4201, CV_IA64_CR106 = 4202, CV_IA64_CR107 = 4203, CV_IA64_CR108 = 4204, CV_IA64_CR109 = 4205, CV_IA64_CR110 = 4206, CV_IA64_CR111 = 4207, CV_IA64_CR112 = 4208, CV_IA64_CR113 = 4209, CV_IA64_CR114 = 4210, CV_IA64_CR115 = 4211, CV_IA64_CR116 = 4212, CV_IA64_CR117 = 4213, CV_IA64_CR118 = 4214, CV_IA64_CR119 = 4215, CV_IA64_CR120 = 4216, CV_IA64_CR121 = 4217, CV_IA64_CR122 = 4218, CV_IA64_CR123 = 4219, CV_IA64_CR124 = 4220, CV_IA64_CR125 = 4221, CV_IA64_CR126 = 4222, CV_IA64_CR127 = 4223, // Protection Key Registers CV_IA64_Pkr0 = 5120, CV_IA64_Pkr1 = 5121, CV_IA64_Pkr2 = 5122, CV_IA64_Pkr3 = 5123, CV_IA64_Pkr4 = 5124, CV_IA64_Pkr5 = 5125, CV_IA64_Pkr6 = 5126, CV_IA64_Pkr7 = 5127, CV_IA64_Pkr8 = 5128, CV_IA64_Pkr9 = 5129, CV_IA64_Pkr10 = 5130, CV_IA64_Pkr11 = 5131, CV_IA64_Pkr12 = 5132, CV_IA64_Pkr13 = 5133, CV_IA64_Pkr14 = 5134, CV_IA64_Pkr15 = 5135, // Region Registers CV_IA64_Rr0 = 6144, CV_IA64_Rr1 = 6145, CV_IA64_Rr2 = 6146, CV_IA64_Rr3 = 6147, CV_IA64_Rr4 = 6148, CV_IA64_Rr5 = 6149, CV_IA64_Rr6 = 6150, CV_IA64_Rr7 = 6151, // Performance Monitor Data Registers CV_IA64_PFD0 = 7168, CV_IA64_PFD1 = 7169, CV_IA64_PFD2 = 7170, CV_IA64_PFD3 = 7171, CV_IA64_PFD4 = 7172, CV_IA64_PFD5 = 7173, CV_IA64_PFD6 = 7174, CV_IA64_PFD7 = 7175, // Performance Monitor Config Registers CV_IA64_PFC0 = 7424, CV_IA64_PFC1 = 7425, CV_IA64_PFC2 = 7426, CV_IA64_PFC3 = 7427, CV_IA64_PFC4 = 7428, CV_IA64_PFC5 = 7429, CV_IA64_PFC6 = 7430, CV_IA64_PFC7 = 7431, // Instruction Translation Registers CV_IA64_TrI0 = 8192, CV_IA64_TrI1 = 8193, CV_IA64_TrI2 = 8194, CV_IA64_TrI3 = 8195, CV_IA64_TrI4 = 8196, CV_IA64_TrI5 = 8197, CV_IA64_TrI6 = 8198, CV_IA64_TrI7 = 8199, // Data Translation Registers CV_IA64_TrD0 = 8320, CV_IA64_TrD1 = 8321, CV_IA64_TrD2 = 8322, CV_IA64_TrD3 = 8323, CV_IA64_TrD4 = 8324, CV_IA64_TrD5 = 8325, CV_IA64_TrD6 = 8326, CV_IA64_TrD7 = 8327, // Instruction Breakpoint Registers CV_IA64_DbI0 = 8448, CV_IA64_DbI1 = 8449, CV_IA64_DbI2 = 8450, CV_IA64_DbI3 = 8451, CV_IA64_DbI4 = 8452, CV_IA64_DbI5 = 8453, CV_IA64_DbI6 = 8454, CV_IA64_DbI7 = 8455, // Data Breakpoint Registers CV_IA64_DbD0 = 8576, CV_IA64_DbD1 = 8577, CV_IA64_DbD2 = 8578, CV_IA64_DbD3 = 8579, CV_IA64_DbD4 = 8580, CV_IA64_DbD5 = 8581, CV_IA64_DbD6 = 8582, CV_IA64_DbD7 = 8583, // // Register set for the TriCore processor. // CV_TRI_NOREG = CV_REG_NONE, // General Purpose Data Registers CV_TRI_D0 = 10, CV_TRI_D1 = 11, CV_TRI_D2 = 12, CV_TRI_D3 = 13, CV_TRI_D4 = 14, CV_TRI_D5 = 15, CV_TRI_D6 = 16, CV_TRI_D7 = 17, CV_TRI_D8 = 18, CV_TRI_D9 = 19, CV_TRI_D10 = 20, CV_TRI_D11 = 21, CV_TRI_D12 = 22, CV_TRI_D13 = 23, CV_TRI_D14 = 24, CV_TRI_D15 = 25, // General Purpose Address Registers CV_TRI_A0 = 26, CV_TRI_A1 = 27, CV_TRI_A2 = 28, CV_TRI_A3 = 29, CV_TRI_A4 = 30, CV_TRI_A5 = 31, CV_TRI_A6 = 32, CV_TRI_A7 = 33, CV_TRI_A8 = 34, CV_TRI_A9 = 35, CV_TRI_A10 = 36, CV_TRI_A11 = 37, CV_TRI_A12 = 38, CV_TRI_A13 = 39, CV_TRI_A14 = 40, CV_TRI_A15 = 41, // Extended (64-bit) data registers CV_TRI_E0 = 42, CV_TRI_E2 = 43, CV_TRI_E4 = 44, CV_TRI_E6 = 45, CV_TRI_E8 = 46, CV_TRI_E10 = 47, CV_TRI_E12 = 48, CV_TRI_E14 = 49, // Extended (64-bit) address registers CV_TRI_EA0 = 50, CV_TRI_EA2 = 51, CV_TRI_EA4 = 52, CV_TRI_EA6 = 53, CV_TRI_EA8 = 54, CV_TRI_EA10 = 55, CV_TRI_EA12 = 56, CV_TRI_EA14 = 57, CV_TRI_PSW = 58, CV_TRI_PCXI = 59, CV_TRI_PC = 60, CV_TRI_FCX = 61, CV_TRI_LCX = 62, CV_TRI_ISP = 63, CV_TRI_ICR = 64, CV_TRI_BIV = 65, CV_TRI_BTV = 66, CV_TRI_SYSCON = 67, CV_TRI_DPRx_0 = 68, CV_TRI_DPRx_1 = 69, CV_TRI_DPRx_2 = 70, CV_TRI_DPRx_3 = 71, CV_TRI_CPRx_0 = 68, CV_TRI_CPRx_1 = 69, CV_TRI_CPRx_2 = 70, CV_TRI_CPRx_3 = 71, CV_TRI_DPMx_0 = 68, CV_TRI_DPMx_1 = 69, CV_TRI_DPMx_2 = 70, CV_TRI_DPMx_3 = 71, CV_TRI_CPMx_0 = 68, CV_TRI_CPMx_1 = 69, CV_TRI_CPMx_2 = 70, CV_TRI_CPMx_3 = 71, CV_TRI_DBGSSR = 72, CV_TRI_EXEVT = 73, CV_TRI_SWEVT = 74, CV_TRI_CREVT = 75, CV_TRI_TRnEVT = 76, CV_TRI_MMUCON = 77, CV_TRI_ASI = 78, CV_TRI_TVA = 79, CV_TRI_TPA = 80, CV_TRI_TPX = 81, CV_TRI_TFA = 82, // // Register set for the AM33 and related processors. // CV_AM33_NOREG = CV_REG_NONE, // "Extended" (general purpose integer) registers CV_AM33_E0 = 10, CV_AM33_E1 = 11, CV_AM33_E2 = 12, CV_AM33_E3 = 13, CV_AM33_E4 = 14, CV_AM33_E5 = 15, CV_AM33_E6 = 16, CV_AM33_E7 = 17, // Address registers CV_AM33_A0 = 20, CV_AM33_A1 = 21, CV_AM33_A2 = 22, CV_AM33_A3 = 23, // Integer data registers CV_AM33_D0 = 30, CV_AM33_D1 = 31, CV_AM33_D2 = 32, CV_AM33_D3 = 33, // (Single-precision) floating-point registers CV_AM33_FS0 = 40, CV_AM33_FS1 = 41, CV_AM33_FS2 = 42, CV_AM33_FS3 = 43, CV_AM33_FS4 = 44, CV_AM33_FS5 = 45, CV_AM33_FS6 = 46, CV_AM33_FS7 = 47, CV_AM33_FS8 = 48, CV_AM33_FS9 = 49, CV_AM33_FS10 = 50, CV_AM33_FS11 = 51, CV_AM33_FS12 = 52, CV_AM33_FS13 = 53, CV_AM33_FS14 = 54, CV_AM33_FS15 = 55, CV_AM33_FS16 = 56, CV_AM33_FS17 = 57, CV_AM33_FS18 = 58, CV_AM33_FS19 = 59, CV_AM33_FS20 = 60, CV_AM33_FS21 = 61, CV_AM33_FS22 = 62, CV_AM33_FS23 = 63, CV_AM33_FS24 = 64, CV_AM33_FS25 = 65, CV_AM33_FS26 = 66, CV_AM33_FS27 = 67, CV_AM33_FS28 = 68, CV_AM33_FS29 = 69, CV_AM33_FS30 = 70, CV_AM33_FS31 = 71, // Special purpose registers // Stack pointer CV_AM33_SP = 80, // Program counter CV_AM33_PC = 81, // Multiply-divide/accumulate registers CV_AM33_MDR = 82, CV_AM33_MDRQ = 83, CV_AM33_MCRH = 84, CV_AM33_MCRL = 85, CV_AM33_MCVF = 86, // CPU status words CV_AM33_EPSW = 87, CV_AM33_FPCR = 88, // Loop buffer registers CV_AM33_LIR = 89, CV_AM33_LAR = 90, // // Register set for the Mitsubishi M32R // CV_M32R_NOREG = CV_REG_NONE, CV_M32R_R0 = 10, CV_M32R_R1 = 11, CV_M32R_R2 = 12, CV_M32R_R3 = 13, CV_M32R_R4 = 14, CV_M32R_R5 = 15, CV_M32R_R6 = 16, CV_M32R_R7 = 17, CV_M32R_R8 = 18, CV_M32R_R9 = 19, CV_M32R_R10 = 20, CV_M32R_R11 = 21, CV_M32R_R12 = 22, // Gloabal Pointer, if used CV_M32R_R13 = 23, // Frame Pointer, if allocated CV_M32R_R14 = 24, // Link Register CV_M32R_R15 = 25, // Stack Pointer CV_M32R_PSW = 26, // Preocessor Status Register CV_M32R_CBR = 27, // Condition Bit Register CV_M32R_SPI = 28, // Interrupt Stack Pointer CV_M32R_SPU = 29, // User Stack Pointer CV_M32R_SPO = 30, // OS Stack Pointer CV_M32R_BPC = 31, // Backup Program Counter CV_M32R_ACHI = 32, // Accumulator High CV_M32R_ACLO = 33, // Accumulator Low CV_M32R_PC = 34, // Program Counter } CV_HREG_e; #endif ================================================ FILE: Addition/DIASDK/include/dia2.h ================================================ #pragma warning( disable: 4049 ) /* more than 64k source lines */ /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 6.00.0347 */ /* at Sat Jan 05 04:21:23 2002 */ /* Compiler settings for f:\vs70builds\9466\vc\langapi\idl\dia2.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) /* verify that the version is high enough to compile this file*/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 440 #endif #include "rpc.h" #include "rpcndr.h" #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of #endif // __RPCNDR_H_VERSION__ #ifndef COM_NO_WINDOWS_H #include "windows.h" #include "ole2.h" #endif /*COM_NO_WINDOWS_H*/ #ifndef __dia2_h__ #define __dia2_h__ #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /* Forward Declarations */ #ifndef __IDiaLoadCallback_FWD_DEFINED__ #define __IDiaLoadCallback_FWD_DEFINED__ typedef interface IDiaLoadCallback IDiaLoadCallback; #endif /* __IDiaLoadCallback_FWD_DEFINED__ */ #ifndef __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ #define __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ typedef interface IDiaReadExeAtOffsetCallback IDiaReadExeAtOffsetCallback; #endif /* __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ */ #ifndef __IDiaReadExeAtRVACallback_FWD_DEFINED__ #define __IDiaReadExeAtRVACallback_FWD_DEFINED__ typedef interface IDiaReadExeAtRVACallback IDiaReadExeAtRVACallback; #endif /* __IDiaReadExeAtRVACallback_FWD_DEFINED__ */ #ifndef __IDiaDataSource_FWD_DEFINED__ #define __IDiaDataSource_FWD_DEFINED__ typedef interface IDiaDataSource IDiaDataSource; #endif /* __IDiaDataSource_FWD_DEFINED__ */ #ifndef __IDiaEnumSymbols_FWD_DEFINED__ #define __IDiaEnumSymbols_FWD_DEFINED__ typedef interface IDiaEnumSymbols IDiaEnumSymbols; #endif /* __IDiaEnumSymbols_FWD_DEFINED__ */ #ifndef __IDiaEnumSymbolsByAddr_FWD_DEFINED__ #define __IDiaEnumSymbolsByAddr_FWD_DEFINED__ typedef interface IDiaEnumSymbolsByAddr IDiaEnumSymbolsByAddr; #endif /* __IDiaEnumSymbolsByAddr_FWD_DEFINED__ */ #ifndef __IDiaEnumSourceFiles_FWD_DEFINED__ #define __IDiaEnumSourceFiles_FWD_DEFINED__ typedef interface IDiaEnumSourceFiles IDiaEnumSourceFiles; #endif /* __IDiaEnumSourceFiles_FWD_DEFINED__ */ #ifndef __IDiaEnumLineNumbers_FWD_DEFINED__ #define __IDiaEnumLineNumbers_FWD_DEFINED__ typedef interface IDiaEnumLineNumbers IDiaEnumLineNumbers; #endif /* __IDiaEnumLineNumbers_FWD_DEFINED__ */ #ifndef __IDiaEnumInjectedSources_FWD_DEFINED__ #define __IDiaEnumInjectedSources_FWD_DEFINED__ typedef interface IDiaEnumInjectedSources IDiaEnumInjectedSources; #endif /* __IDiaEnumInjectedSources_FWD_DEFINED__ */ #ifndef __IDiaEnumSegments_FWD_DEFINED__ #define __IDiaEnumSegments_FWD_DEFINED__ typedef interface IDiaEnumSegments IDiaEnumSegments; #endif /* __IDiaEnumSegments_FWD_DEFINED__ */ #ifndef __IDiaEnumSectionContribs_FWD_DEFINED__ #define __IDiaEnumSectionContribs_FWD_DEFINED__ typedef interface IDiaEnumSectionContribs IDiaEnumSectionContribs; #endif /* __IDiaEnumSectionContribs_FWD_DEFINED__ */ #ifndef __IDiaEnumFrameData_FWD_DEFINED__ #define __IDiaEnumFrameData_FWD_DEFINED__ typedef interface IDiaEnumFrameData IDiaEnumFrameData; #endif /* __IDiaEnumFrameData_FWD_DEFINED__ */ #ifndef __IDiaEnumDebugStreamData_FWD_DEFINED__ #define __IDiaEnumDebugStreamData_FWD_DEFINED__ typedef interface IDiaEnumDebugStreamData IDiaEnumDebugStreamData; #endif /* __IDiaEnumDebugStreamData_FWD_DEFINED__ */ #ifndef __IDiaEnumDebugStreams_FWD_DEFINED__ #define __IDiaEnumDebugStreams_FWD_DEFINED__ typedef interface IDiaEnumDebugStreams IDiaEnumDebugStreams; #endif /* __IDiaEnumDebugStreams_FWD_DEFINED__ */ #ifndef __IDiaAddressMap_FWD_DEFINED__ #define __IDiaAddressMap_FWD_DEFINED__ typedef interface IDiaAddressMap IDiaAddressMap; #endif /* __IDiaAddressMap_FWD_DEFINED__ */ #ifndef __IDiaSession_FWD_DEFINED__ #define __IDiaSession_FWD_DEFINED__ typedef interface IDiaSession IDiaSession; #endif /* __IDiaSession_FWD_DEFINED__ */ #ifndef __IDiaSymbol_FWD_DEFINED__ #define __IDiaSymbol_FWD_DEFINED__ typedef interface IDiaSymbol IDiaSymbol; #endif /* __IDiaSymbol_FWD_DEFINED__ */ #ifndef __IDiaSourceFile_FWD_DEFINED__ #define __IDiaSourceFile_FWD_DEFINED__ typedef interface IDiaSourceFile IDiaSourceFile; #endif /* __IDiaSourceFile_FWD_DEFINED__ */ #ifndef __IDiaLineNumber_FWD_DEFINED__ #define __IDiaLineNumber_FWD_DEFINED__ typedef interface IDiaLineNumber IDiaLineNumber; #endif /* __IDiaLineNumber_FWD_DEFINED__ */ #ifndef __IDiaSectionContrib_FWD_DEFINED__ #define __IDiaSectionContrib_FWD_DEFINED__ typedef interface IDiaSectionContrib IDiaSectionContrib; #endif /* __IDiaSectionContrib_FWD_DEFINED__ */ #ifndef __IDiaSegment_FWD_DEFINED__ #define __IDiaSegment_FWD_DEFINED__ typedef interface IDiaSegment IDiaSegment; #endif /* __IDiaSegment_FWD_DEFINED__ */ #ifndef __IDiaInjectedSource_FWD_DEFINED__ #define __IDiaInjectedSource_FWD_DEFINED__ typedef interface IDiaInjectedSource IDiaInjectedSource; #endif /* __IDiaInjectedSource_FWD_DEFINED__ */ #ifndef __IDiaStackWalkFrame_FWD_DEFINED__ #define __IDiaStackWalkFrame_FWD_DEFINED__ typedef interface IDiaStackWalkFrame IDiaStackWalkFrame; #endif /* __IDiaStackWalkFrame_FWD_DEFINED__ */ #ifndef __IDiaFrameData_FWD_DEFINED__ #define __IDiaFrameData_FWD_DEFINED__ typedef interface IDiaFrameData IDiaFrameData; #endif /* __IDiaFrameData_FWD_DEFINED__ */ #ifndef __IDiaImageData_FWD_DEFINED__ #define __IDiaImageData_FWD_DEFINED__ typedef interface IDiaImageData IDiaImageData; #endif /* __IDiaImageData_FWD_DEFINED__ */ #ifndef __IDiaTable_FWD_DEFINED__ #define __IDiaTable_FWD_DEFINED__ typedef interface IDiaTable IDiaTable; #endif /* __IDiaTable_FWD_DEFINED__ */ #ifndef __IDiaEnumTables_FWD_DEFINED__ #define __IDiaEnumTables_FWD_DEFINED__ typedef interface IDiaEnumTables IDiaEnumTables; #endif /* __IDiaEnumTables_FWD_DEFINED__ */ #ifndef __DiaSource_FWD_DEFINED__ #define __DiaSource_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaSource DiaSource; #else typedef struct DiaSource DiaSource; #endif /* __cplusplus */ #endif /* __DiaSource_FWD_DEFINED__ */ #ifndef __DiaSourceAlt_FWD_DEFINED__ #define __DiaSourceAlt_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaSourceAlt DiaSourceAlt; #else typedef struct DiaSourceAlt DiaSourceAlt; #endif /* __cplusplus */ #endif /* __DiaSourceAlt_FWD_DEFINED__ */ /* header files for imported files */ #include "objidl.h" #include "oaidl.h" #include "cvconst.h" #ifdef __cplusplus extern "C"{ #endif void * __RPC_USER MIDL_user_allocate(size_t); void __RPC_USER MIDL_user_free( void * ); /* interface __MIDL_itf_dia2_0000 */ /* [local] */ enum NameSearchOptions { nsNone = 0, nsfCaseSensitive = 0x1, nsfCaseInsensitive = 0x2, nsfFNameExt = 0x4, nsfRegularExpression = 0x8, nsfUndecoratedName = 0x10, nsCaseSensitive = nsfCaseSensitive, nsCaseInsensitive = nsfCaseInsensitive, nsFNameExt = nsfCaseInsensitive | nsfFNameExt, nsRegularExpression = nsfRegularExpression | nsfCaseSensitive, nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive } ; enum __MIDL___MIDL_itf_dia2_0000_0001 { E_PDB_OK = ( HRESULT )(( unsigned long )1 << 31 | ( unsigned long )( LONG )0x6d << 16 | ( unsigned long )1), E_PDB_USAGE = E_PDB_OK + 1, E_PDB_OUT_OF_MEMORY = E_PDB_USAGE + 1, E_PDB_FILE_SYSTEM = E_PDB_OUT_OF_MEMORY + 1, E_PDB_NOT_FOUND = E_PDB_FILE_SYSTEM + 1, E_PDB_INVALID_SIG = E_PDB_NOT_FOUND + 1, E_PDB_INVALID_AGE = E_PDB_INVALID_SIG + 1, E_PDB_PRECOMP_REQUIRED = E_PDB_INVALID_AGE + 1, E_PDB_OUT_OF_TI = E_PDB_PRECOMP_REQUIRED + 1, E_PDB_NOT_IMPLEMENTED = E_PDB_OUT_OF_TI + 1, E_PDB_V1_PDB = E_PDB_NOT_IMPLEMENTED + 1, E_PDB_FORMAT = E_PDB_V1_PDB + 1, E_PDB_LIMIT = E_PDB_FORMAT + 1, E_PDB_CORRUPT = E_PDB_LIMIT + 1, E_PDB_TI16 = E_PDB_CORRUPT + 1, E_PDB_ACCESS_DENIED = E_PDB_TI16 + 1, E_PDB_ILLEGAL_TYPE_EDIT = E_PDB_ACCESS_DENIED + 1, E_PDB_INVALID_EXECUTABLE = E_PDB_ILLEGAL_TYPE_EDIT + 1, E_PDB_DBG_NOT_FOUND = E_PDB_INVALID_EXECUTABLE + 1, E_PDB_NO_DEBUG_INFO = E_PDB_DBG_NOT_FOUND + 1, E_PDB_INVALID_EXE_TIMESTAMP = E_PDB_NO_DEBUG_INFO + 1, E_PDB_RESERVED = E_PDB_INVALID_EXE_TIMESTAMP + 1, E_PDB_DEBUG_INFO_NOT_IN_PDB = E_PDB_RESERVED + 1, E_PDB_MAX = E_PDB_DEBUG_INFO_NOT_IN_PDB + 1 } ; enum __MIDL___MIDL_itf_dia2_0000_0002 { DIA_E_MODNOTFOUND = E_PDB_MAX + 1, DIA_E_PROCNOTFOUND = DIA_E_MODNOTFOUND + 1 } ; typedef void ( __cdecl *PfnPDBDebugDirV )( BOOL __MIDL_0010, void *__MIDL_0011); extern RPC_IF_HANDLE __MIDL_itf_dia2_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0000_v0_0_s_ifspec; #ifndef __IDiaLoadCallback_INTERFACE_DEFINED__ #define __IDiaLoadCallback_INTERFACE_DEFINED__ /* interface IDiaLoadCallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLoadCallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C32ADB82-73F4-421b-95D5-A4706EDF5DBE") IDiaLoadCallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE NotifyDebugDir( /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyOpenDBG( /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyOpenPDB( /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictRegistryAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictSymbolServerAccess( void) = 0; }; #else /* C style interface */ typedef struct IDiaLoadCallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLoadCallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLoadCallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLoadCallback * This); HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( IDiaLoadCallback * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( IDiaLoadCallback * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( IDiaLoadCallback * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( IDiaLoadCallback * This); HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( IDiaLoadCallback * This); END_INTERFACE } IDiaLoadCallbackVtbl; interface IDiaLoadCallback { CONST_VTBL struct IDiaLoadCallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLoadCallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLoadCallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLoadCallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLoadCallback_NotifyDebugDir(This,fExecutable,cbData,data) \ (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,data) #define IDiaLoadCallback_NotifyOpenDBG(This,dbgPath,resultCode) \ (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) #define IDiaLoadCallback_NotifyOpenPDB(This,pdbPath,resultCode) \ (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) #define IDiaLoadCallback_RestrictRegistryAccess(This) \ (This)->lpVtbl -> RestrictRegistryAccess(This) #define IDiaLoadCallback_RestrictSymbolServerAccess(This) \ (This)->lpVtbl -> RestrictSymbolServerAccess(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyDebugDir_Proxy( IDiaLoadCallback * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]); void __RPC_STUB IDiaLoadCallback_NotifyDebugDir_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyOpenDBG_Proxy( IDiaLoadCallback * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); void __RPC_STUB IDiaLoadCallback_NotifyOpenDBG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyOpenPDB_Proxy( IDiaLoadCallback * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); void __RPC_STUB IDiaLoadCallback_NotifyOpenPDB_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_RestrictRegistryAccess_Proxy( IDiaLoadCallback * This); void __RPC_STUB IDiaLoadCallback_RestrictRegistryAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_RestrictSymbolServerAccess_Proxy( IDiaLoadCallback * This); void __RPC_STUB IDiaLoadCallback_RestrictSymbolServerAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLoadCallback_INTERFACE_DEFINED__ */ #ifndef __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ #define __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ /* interface IDiaReadExeAtOffsetCallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaReadExeAtOffsetCallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("587A461C-B80B-4f54-9194-5032589A6319") IDiaReadExeAtOffsetCallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadExecutableAt( /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaReadExeAtOffsetCallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaReadExeAtOffsetCallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaReadExeAtOffsetCallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaReadExeAtOffsetCallback * This); HRESULT ( STDMETHODCALLTYPE *ReadExecutableAt )( IDiaReadExeAtOffsetCallback * This, /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaReadExeAtOffsetCallbackVtbl; interface IDiaReadExeAtOffsetCallback { CONST_VTBL struct IDiaReadExeAtOffsetCallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaReadExeAtOffsetCallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaReadExeAtOffsetCallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaReadExeAtOffsetCallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaReadExeAtOffsetCallback_ReadExecutableAt(This,fileOffset,cbData,pcbData,data) \ (This)->lpVtbl -> ReadExecutableAt(This,fileOffset,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaReadExeAtOffsetCallback_ReadExecutableAt_Proxy( IDiaReadExeAtOffsetCallback * This, /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaReadExeAtOffsetCallback_ReadExecutableAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ */ #ifndef __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ #define __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ /* interface IDiaReadExeAtRVACallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaReadExeAtRVACallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8E3F80CA-7517-432a-BA07-285134AAEA8E") IDiaReadExeAtRVACallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadExecutableAtRVA( /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaReadExeAtRVACallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaReadExeAtRVACallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaReadExeAtRVACallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaReadExeAtRVACallback * This); HRESULT ( STDMETHODCALLTYPE *ReadExecutableAtRVA )( IDiaReadExeAtRVACallback * This, /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaReadExeAtRVACallbackVtbl; interface IDiaReadExeAtRVACallback { CONST_VTBL struct IDiaReadExeAtRVACallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaReadExeAtRVACallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaReadExeAtRVACallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaReadExeAtRVACallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaReadExeAtRVACallback_ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,data) \ (This)->lpVtbl -> ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaReadExeAtRVACallback_ReadExecutableAtRVA_Proxy( IDiaReadExeAtRVACallback * This, /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaReadExeAtRVACallback_ReadExecutableAtRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ */ #ifndef __IDiaDataSource_INTERFACE_DEFINED__ #define __IDiaDataSource_INTERFACE_DEFINED__ /* interface IDiaDataSource */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaDataSource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("79F1BB5F-B66E-48e5-B6A9-1545C323CA3D") IDiaDataSource : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lastError( /* [retval][out] */ BSTR *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataFromPdb( /* [in] */ LPCOLESTR pdbPath) = 0; virtual HRESULT STDMETHODCALLTYPE loadAndValidateDataFromPdb( /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataForExe( /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataFromIStream( /* [in] */ IStream *pIStream) = 0; virtual HRESULT STDMETHODCALLTYPE openSession( /* [out] */ IDiaSession **ppSession) = 0; }; #else /* C style interface */ typedef struct IDiaDataSourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaDataSource * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaDataSource * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaDataSource * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastError )( IDiaDataSource * This, /* [retval][out] */ BSTR *pRetVal); HRESULT ( STDMETHODCALLTYPE *loadDataFromPdb )( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath); HRESULT ( STDMETHODCALLTYPE *loadAndValidateDataFromPdb )( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age); HRESULT ( STDMETHODCALLTYPE *loadDataForExe )( IDiaDataSource * This, /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback); HRESULT ( STDMETHODCALLTYPE *loadDataFromIStream )( IDiaDataSource * This, /* [in] */ IStream *pIStream); HRESULT ( STDMETHODCALLTYPE *openSession )( IDiaDataSource * This, /* [out] */ IDiaSession **ppSession); END_INTERFACE } IDiaDataSourceVtbl; interface IDiaDataSource { CONST_VTBL struct IDiaDataSourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaDataSource_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaDataSource_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaDataSource_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaDataSource_get_lastError(This,pRetVal) \ (This)->lpVtbl -> get_lastError(This,pRetVal) #define IDiaDataSource_loadDataFromPdb(This,pdbPath) \ (This)->lpVtbl -> loadDataFromPdb(This,pdbPath) #define IDiaDataSource_loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) \ (This)->lpVtbl -> loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) #define IDiaDataSource_loadDataForExe(This,executable,searchPath,pCallback) \ (This)->lpVtbl -> loadDataForExe(This,executable,searchPath,pCallback) #define IDiaDataSource_loadDataFromIStream(This,pIStream) \ (This)->lpVtbl -> loadDataFromIStream(This,pIStream) #define IDiaDataSource_openSession(This,ppSession) \ (This)->lpVtbl -> openSession(This,ppSession) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaDataSource_get_lastError_Proxy( IDiaDataSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaDataSource_get_lastError_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataFromPdb_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath); void __RPC_STUB IDiaDataSource_loadDataFromPdb_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadAndValidateDataFromPdb_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age); void __RPC_STUB IDiaDataSource_loadAndValidateDataFromPdb_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataForExe_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback); void __RPC_STUB IDiaDataSource_loadDataForExe_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataFromIStream_Proxy( IDiaDataSource * This, /* [in] */ IStream *pIStream); void __RPC_STUB IDiaDataSource_loadDataFromIStream_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_openSession_Proxy( IDiaDataSource * This, /* [out] */ IDiaSession **ppSession); void __RPC_STUB IDiaDataSource_openSession_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaDataSource_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSymbols_INTERFACE_DEFINED__ #define __IDiaEnumSymbols_INTERFACE_DEFINED__ /* interface IDiaEnumSymbols */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSymbols; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("CAB72C48-443B-48f5-9B0B-42F0820AB29A") IDiaEnumSymbols : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSymbols **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSymbolsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSymbols * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSymbols * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSymbols * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSymbols * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSymbols * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSymbols * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSymbols * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSymbols * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSymbols * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSymbols * This, /* [out] */ IDiaEnumSymbols **ppenum); END_INTERFACE } IDiaEnumSymbolsVtbl; interface IDiaEnumSymbols { CONST_VTBL struct IDiaEnumSymbolsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSymbols_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSymbols_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSymbols_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSymbols_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSymbols_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSymbols_Item(This,index,symbol) \ (This)->lpVtbl -> Item(This,index,symbol) #define IDiaEnumSymbols_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbols_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSymbols_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSymbols_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_get__NewEnum_Proxy( IDiaEnumSymbols * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSymbols_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_get_Count_Proxy( IDiaEnumSymbols * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSymbols_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Item_Proxy( IDiaEnumSymbols * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol); void __RPC_STUB IDiaEnumSymbols_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Next_Proxy( IDiaEnumSymbols * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbols_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Skip_Proxy( IDiaEnumSymbols * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSymbols_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Reset_Proxy( IDiaEnumSymbols * This); void __RPC_STUB IDiaEnumSymbols_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Clone_Proxy( IDiaEnumSymbols * This, /* [out] */ IDiaEnumSymbols **ppenum); void __RPC_STUB IDiaEnumSymbols_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSymbols_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ #define __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ /* interface IDiaEnumSymbolsByAddr */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSymbolsByAddr; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("624B7D9C-24EA-4421-9D06-3B577471C1FA") IDiaEnumSymbolsByAddr : public IUnknown { public: virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByAddr( /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByRVA( /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByVA( /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Prev( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSymbolsByAddr **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSymbolsByAddrVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSymbolsByAddr * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSymbolsByAddr * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSymbolsByAddr * This); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByAddr )( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByRVA )( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByVA )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Prev )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSymbolsByAddr * This, /* [out] */ IDiaEnumSymbolsByAddr **ppenum); END_INTERFACE } IDiaEnumSymbolsByAddrVtbl; interface IDiaEnumSymbolsByAddr { CONST_VTBL struct IDiaEnumSymbolsByAddrVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSymbolsByAddr_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSymbolsByAddr_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSymbolsByAddr_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSymbolsByAddr_symbolByAddr(This,isect,offset,ppSymbol) \ (This)->lpVtbl -> symbolByAddr(This,isect,offset,ppSymbol) #define IDiaEnumSymbolsByAddr_symbolByRVA(This,relativeVirtualAddress,ppSymbol) \ (This)->lpVtbl -> symbolByRVA(This,relativeVirtualAddress,ppSymbol) #define IDiaEnumSymbolsByAddr_symbolByVA(This,virtualAddress,ppSymbol) \ (This)->lpVtbl -> symbolByVA(This,virtualAddress,ppSymbol) #define IDiaEnumSymbolsByAddr_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbolsByAddr_Prev(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Prev(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbolsByAddr_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByAddr_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByRVA_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByVA_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Next_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbolsByAddr_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Prev_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbolsByAddr_Prev_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Clone_Proxy( IDiaEnumSymbolsByAddr * This, /* [out] */ IDiaEnumSymbolsByAddr **ppenum); void __RPC_STUB IDiaEnumSymbolsByAddr_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSourceFiles_INTERFACE_DEFINED__ #define __IDiaEnumSourceFiles_INTERFACE_DEFINED__ /* interface IDiaEnumSourceFiles */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSourceFiles; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("10F3DBD9-664F-4469-B808-9471C7A50538") IDiaEnumSourceFiles : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSourceFiles **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSourceFilesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSourceFiles * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSourceFiles * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSourceFiles * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSourceFiles * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSourceFiles * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSourceFiles * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSourceFiles * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSourceFiles * This, /* [out] */ IDiaEnumSourceFiles **ppenum); END_INTERFACE } IDiaEnumSourceFilesVtbl; interface IDiaEnumSourceFiles { CONST_VTBL struct IDiaEnumSourceFilesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSourceFiles_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSourceFiles_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSourceFiles_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSourceFiles_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSourceFiles_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSourceFiles_Item(This,index,sourceFile) \ (This)->lpVtbl -> Item(This,index,sourceFile) #define IDiaEnumSourceFiles_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSourceFiles_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSourceFiles_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSourceFiles_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_get__NewEnum_Proxy( IDiaEnumSourceFiles * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSourceFiles_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_get_Count_Proxy( IDiaEnumSourceFiles * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSourceFiles_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Item_Proxy( IDiaEnumSourceFiles * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile); void __RPC_STUB IDiaEnumSourceFiles_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Next_Proxy( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSourceFiles_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Skip_Proxy( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSourceFiles_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Reset_Proxy( IDiaEnumSourceFiles * This); void __RPC_STUB IDiaEnumSourceFiles_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Clone_Proxy( IDiaEnumSourceFiles * This, /* [out] */ IDiaEnumSourceFiles **ppenum); void __RPC_STUB IDiaEnumSourceFiles_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSourceFiles_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumLineNumbers_INTERFACE_DEFINED__ #define __IDiaEnumLineNumbers_INTERFACE_DEFINED__ /* interface IDiaEnumLineNumbers */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumLineNumbers; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("FE30E878-54AC-44f1-81BA-39DE940F6052") IDiaEnumLineNumbers : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumLineNumbers **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumLineNumbersVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumLineNumbers * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumLineNumbers * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumLineNumbers * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumLineNumbers * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumLineNumbers * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumLineNumbers * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumLineNumbers * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumLineNumbers * This, /* [out] */ IDiaEnumLineNumbers **ppenum); END_INTERFACE } IDiaEnumLineNumbersVtbl; interface IDiaEnumLineNumbers { CONST_VTBL struct IDiaEnumLineNumbersVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumLineNumbers_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumLineNumbers_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumLineNumbers_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumLineNumbers_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumLineNumbers_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumLineNumbers_Item(This,index,lineNumber) \ (This)->lpVtbl -> Item(This,index,lineNumber) #define IDiaEnumLineNumbers_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumLineNumbers_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumLineNumbers_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumLineNumbers_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_get__NewEnum_Proxy( IDiaEnumLineNumbers * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumLineNumbers_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_get_Count_Proxy( IDiaEnumLineNumbers * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumLineNumbers_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Item_Proxy( IDiaEnumLineNumbers * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber); void __RPC_STUB IDiaEnumLineNumbers_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Next_Proxy( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumLineNumbers_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Skip_Proxy( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumLineNumbers_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Reset_Proxy( IDiaEnumLineNumbers * This); void __RPC_STUB IDiaEnumLineNumbers_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Clone_Proxy( IDiaEnumLineNumbers * This, /* [out] */ IDiaEnumLineNumbers **ppenum); void __RPC_STUB IDiaEnumLineNumbers_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumLineNumbers_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumInjectedSources_INTERFACE_DEFINED__ #define __IDiaEnumInjectedSources_INTERFACE_DEFINED__ /* interface IDiaEnumInjectedSources */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumInjectedSources; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("D5612573-6925-4468-8883-98CDEC8C384A") IDiaEnumInjectedSources : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumInjectedSources **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumInjectedSourcesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumInjectedSources * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumInjectedSources * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumInjectedSources * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumInjectedSources * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumInjectedSources * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumInjectedSources * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumInjectedSources * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumInjectedSources * This, /* [out] */ IDiaEnumInjectedSources **ppenum); END_INTERFACE } IDiaEnumInjectedSourcesVtbl; interface IDiaEnumInjectedSources { CONST_VTBL struct IDiaEnumInjectedSourcesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumInjectedSources_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumInjectedSources_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumInjectedSources_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumInjectedSources_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumInjectedSources_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumInjectedSources_Item(This,index,injectedSource) \ (This)->lpVtbl -> Item(This,index,injectedSource) #define IDiaEnumInjectedSources_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumInjectedSources_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumInjectedSources_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumInjectedSources_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_get__NewEnum_Proxy( IDiaEnumInjectedSources * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumInjectedSources_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_get_Count_Proxy( IDiaEnumInjectedSources * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumInjectedSources_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Item_Proxy( IDiaEnumInjectedSources * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource); void __RPC_STUB IDiaEnumInjectedSources_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Next_Proxy( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumInjectedSources_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Skip_Proxy( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumInjectedSources_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Reset_Proxy( IDiaEnumInjectedSources * This); void __RPC_STUB IDiaEnumInjectedSources_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Clone_Proxy( IDiaEnumInjectedSources * This, /* [out] */ IDiaEnumInjectedSources **ppenum); void __RPC_STUB IDiaEnumInjectedSources_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumInjectedSources_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSegments_INTERFACE_DEFINED__ #define __IDiaEnumSegments_INTERFACE_DEFINED__ /* interface IDiaEnumSegments */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSegments; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("E8368CA9-01D1-419d-AC0C-E31235DBDA9F") IDiaEnumSegments : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSegments **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSegmentsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSegments * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSegments * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSegments * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSegments * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSegments * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSegments * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSegments * This, /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSegments * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSegments * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSegments * This, /* [out] */ IDiaEnumSegments **ppenum); END_INTERFACE } IDiaEnumSegmentsVtbl; interface IDiaEnumSegments { CONST_VTBL struct IDiaEnumSegmentsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSegments_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSegments_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSegments_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSegments_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSegments_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSegments_Item(This,index,segment) \ (This)->lpVtbl -> Item(This,index,segment) #define IDiaEnumSegments_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSegments_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSegments_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSegments_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_get__NewEnum_Proxy( IDiaEnumSegments * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSegments_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_get_Count_Proxy( IDiaEnumSegments * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSegments_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Item_Proxy( IDiaEnumSegments * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment); void __RPC_STUB IDiaEnumSegments_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Next_Proxy( IDiaEnumSegments * This, /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSegments_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Skip_Proxy( IDiaEnumSegments * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSegments_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Reset_Proxy( IDiaEnumSegments * This); void __RPC_STUB IDiaEnumSegments_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Clone_Proxy( IDiaEnumSegments * This, /* [out] */ IDiaEnumSegments **ppenum); void __RPC_STUB IDiaEnumSegments_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSegments_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSectionContribs_INTERFACE_DEFINED__ #define __IDiaEnumSectionContribs_INTERFACE_DEFINED__ /* interface IDiaEnumSectionContribs */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSectionContribs; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1994DEB2-2C82-4b1d-A57F-AFF424D54A68") IDiaEnumSectionContribs : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSectionContribs **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSectionContribsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSectionContribs * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSectionContribs * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSectionContribs * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSectionContribs * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSectionContribs * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSectionContribs * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSectionContribs * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSectionContribs * This, /* [out] */ IDiaEnumSectionContribs **ppenum); END_INTERFACE } IDiaEnumSectionContribsVtbl; interface IDiaEnumSectionContribs { CONST_VTBL struct IDiaEnumSectionContribsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSectionContribs_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSectionContribs_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSectionContribs_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSectionContribs_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSectionContribs_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSectionContribs_Item(This,index,section) \ (This)->lpVtbl -> Item(This,index,section) #define IDiaEnumSectionContribs_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSectionContribs_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSectionContribs_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSectionContribs_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_get__NewEnum_Proxy( IDiaEnumSectionContribs * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSectionContribs_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_get_Count_Proxy( IDiaEnumSectionContribs * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSectionContribs_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Item_Proxy( IDiaEnumSectionContribs * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section); void __RPC_STUB IDiaEnumSectionContribs_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Next_Proxy( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSectionContribs_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Skip_Proxy( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSectionContribs_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Reset_Proxy( IDiaEnumSectionContribs * This); void __RPC_STUB IDiaEnumSectionContribs_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Clone_Proxy( IDiaEnumSectionContribs * This, /* [out] */ IDiaEnumSectionContribs **ppenum); void __RPC_STUB IDiaEnumSectionContribs_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSectionContribs_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumFrameData_INTERFACE_DEFINED__ #define __IDiaEnumFrameData_INTERFACE_DEFINED__ /* interface IDiaEnumFrameData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumFrameData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F") IDiaEnumFrameData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumFrameData **ppenum) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByRVA( /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByVA( /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame) = 0; }; #else /* C style interface */ typedef struct IDiaEnumFrameDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumFrameData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumFrameData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumFrameData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumFrameData * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumFrameData * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumFrameData * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumFrameData * This, /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumFrameData * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumFrameData * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumFrameData * This, /* [out] */ IDiaEnumFrameData **ppenum); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByRVA )( IDiaEnumFrameData * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByVA )( IDiaEnumFrameData * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame); END_INTERFACE } IDiaEnumFrameDataVtbl; interface IDiaEnumFrameData { CONST_VTBL struct IDiaEnumFrameDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumFrameData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumFrameData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumFrameData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumFrameData_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumFrameData_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumFrameData_Item(This,index,frame) \ (This)->lpVtbl -> Item(This,index,frame) #define IDiaEnumFrameData_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumFrameData_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumFrameData_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumFrameData_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #define IDiaEnumFrameData_frameByRVA(This,relativeVirtualAddress,frame) \ (This)->lpVtbl -> frameByRVA(This,relativeVirtualAddress,frame) #define IDiaEnumFrameData_frameByVA(This,virtualAddress,frame) \ (This)->lpVtbl -> frameByVA(This,virtualAddress,frame) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_get__NewEnum_Proxy( IDiaEnumFrameData * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumFrameData_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_get_Count_Proxy( IDiaEnumFrameData * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumFrameData_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Item_Proxy( IDiaEnumFrameData * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Next_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumFrameData_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Skip_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumFrameData_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Reset_Proxy( IDiaEnumFrameData * This); void __RPC_STUB IDiaEnumFrameData_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Clone_Proxy( IDiaEnumFrameData * This, /* [out] */ IDiaEnumFrameData **ppenum); void __RPC_STUB IDiaEnumFrameData_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_frameByRVA_Proxy( IDiaEnumFrameData * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_frameByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_frameByVA_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_frameByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumFrameData_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ #define __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ /* interface IDiaEnumDebugStreamData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumDebugStreamData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("486943E8-D187-4a6b-A3C4-291259FFF60D") IDiaEnumDebugStreamData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ], /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumDebugStreamData **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumDebugStreamDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumDebugStreamData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumDebugStreamData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumDebugStreamData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumDebugStreamData * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumDebugStreamData * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaEnumDebugStreamData * This, /* [retval][out] */ BSTR *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumDebugStreamData * This, /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ], /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumDebugStreamData * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumDebugStreamData * This, /* [out] */ IDiaEnumDebugStreamData **ppenum); END_INTERFACE } IDiaEnumDebugStreamDataVtbl; interface IDiaEnumDebugStreamData { CONST_VTBL struct IDiaEnumDebugStreamDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumDebugStreamData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumDebugStreamData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumDebugStreamData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumDebugStreamData_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumDebugStreamData_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumDebugStreamData_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaEnumDebugStreamData_Item(This,index,cbData,pcbData,data) \ (This)->lpVtbl -> Item(This,index,cbData,pcbData,data) #define IDiaEnumDebugStreamData_Next(This,celt,cbData,pcbData,data,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,cbData,pcbData,data,pceltFetched) #define IDiaEnumDebugStreamData_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumDebugStreamData_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumDebugStreamData_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get__NewEnum_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get_Count_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get_name_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Item_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaEnumDebugStreamData_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Next_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ], /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumDebugStreamData_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Skip_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumDebugStreamData_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Reset_Proxy( IDiaEnumDebugStreamData * This); void __RPC_STUB IDiaEnumDebugStreamData_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Clone_Proxy( IDiaEnumDebugStreamData * This, /* [out] */ IDiaEnumDebugStreamData **ppenum); void __RPC_STUB IDiaEnumDebugStreamData_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumDebugStreams_INTERFACE_DEFINED__ #define __IDiaEnumDebugStreams_INTERFACE_DEFINED__ /* interface IDiaEnumDebugStreams */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumDebugStreams; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("08CBB41E-47A6-4f87-92F1-1C9C87CED044") IDiaEnumDebugStreams : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumDebugStreams **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumDebugStreamsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumDebugStreams * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumDebugStreams * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumDebugStreams * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumDebugStreams * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumDebugStreams * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumDebugStreams * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumDebugStreams * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumDebugStreams * This, /* [out] */ IDiaEnumDebugStreams **ppenum); END_INTERFACE } IDiaEnumDebugStreamsVtbl; interface IDiaEnumDebugStreams { CONST_VTBL struct IDiaEnumDebugStreamsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumDebugStreams_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumDebugStreams_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumDebugStreams_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumDebugStreams_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumDebugStreams_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumDebugStreams_Item(This,index,stream) \ (This)->lpVtbl -> Item(This,index,stream) #define IDiaEnumDebugStreams_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumDebugStreams_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumDebugStreams_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumDebugStreams_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_get__NewEnum_Proxy( IDiaEnumDebugStreams * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumDebugStreams_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_get_Count_Proxy( IDiaEnumDebugStreams * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumDebugStreams_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Item_Proxy( IDiaEnumDebugStreams * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream); void __RPC_STUB IDiaEnumDebugStreams_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Next_Proxy( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumDebugStreams_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Skip_Proxy( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumDebugStreams_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Reset_Proxy( IDiaEnumDebugStreams * This); void __RPC_STUB IDiaEnumDebugStreams_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Clone_Proxy( IDiaEnumDebugStreams * This, /* [out] */ IDiaEnumDebugStreams **ppenum); void __RPC_STUB IDiaEnumDebugStreams_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumDebugStreams_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0125 */ /* [local] */ struct DiaAddressMapEntry { DWORD rva; DWORD rvaTo; } ; extern RPC_IF_HANDLE __MIDL_itf_dia2_0125_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0125_v0_0_s_ifspec; #ifndef __IDiaAddressMap_INTERFACE_DEFINED__ #define __IDiaAddressMap_INTERFACE_DEFINED__ /* interface IDiaAddressMap */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaAddressMap; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("B62A2E7A-067A-4ea3-B598-04C09717502C") IDiaAddressMap : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressMapEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_addressMapEnabled( /* [in] */ BOOL NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddressEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_relativeVirtualAddressEnabled( /* [in] */ BOOL NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageAlign( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_imageAlign( /* [in] */ DWORD NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE set_imageHeaders( /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ], /* [in] */ BOOL originalHeaders) = 0; virtual HRESULT STDMETHODCALLTYPE set_addressMap( /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry data[ ], /* [in] */ BOOL imageToSymbols) = 0; }; #else /* C style interface */ typedef struct IDiaAddressMapVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaAddressMap * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaAddressMap * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaAddressMap * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressMapEnabled )( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_addressMapEnabled )( IDiaAddressMap * This, /* [in] */ BOOL NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddressEnabled )( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_relativeVirtualAddressEnabled )( IDiaAddressMap * This, /* [in] */ BOOL NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageAlign )( IDiaAddressMap * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_imageAlign )( IDiaAddressMap * This, /* [in] */ DWORD NewVal); HRESULT ( STDMETHODCALLTYPE *set_imageHeaders )( IDiaAddressMap * This, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ], /* [in] */ BOOL originalHeaders); HRESULT ( STDMETHODCALLTYPE *set_addressMap )( IDiaAddressMap * This, /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry data[ ], /* [in] */ BOOL imageToSymbols); END_INTERFACE } IDiaAddressMapVtbl; interface IDiaAddressMap { CONST_VTBL struct IDiaAddressMapVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaAddressMap_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaAddressMap_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaAddressMap_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaAddressMap_get_addressMapEnabled(This,pRetVal) \ (This)->lpVtbl -> get_addressMapEnabled(This,pRetVal) #define IDiaAddressMap_put_addressMapEnabled(This,NewVal) \ (This)->lpVtbl -> put_addressMapEnabled(This,NewVal) #define IDiaAddressMap_get_relativeVirtualAddressEnabled(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddressEnabled(This,pRetVal) #define IDiaAddressMap_put_relativeVirtualAddressEnabled(This,NewVal) \ (This)->lpVtbl -> put_relativeVirtualAddressEnabled(This,NewVal) #define IDiaAddressMap_get_imageAlign(This,pRetVal) \ (This)->lpVtbl -> get_imageAlign(This,pRetVal) #define IDiaAddressMap_put_imageAlign(This,NewVal) \ (This)->lpVtbl -> put_imageAlign(This,NewVal) #define IDiaAddressMap_set_imageHeaders(This,cbData,data,originalHeaders) \ (This)->lpVtbl -> set_imageHeaders(This,cbData,data,originalHeaders) #define IDiaAddressMap_set_addressMap(This,cData,data,imageToSymbols) \ (This)->lpVtbl -> set_addressMap(This,cData,data,imageToSymbols) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_addressMapEnabled_Proxy( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaAddressMap_get_addressMapEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_addressMapEnabled_Proxy( IDiaAddressMap * This, /* [in] */ BOOL NewVal); void __RPC_STUB IDiaAddressMap_put_addressMapEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_relativeVirtualAddressEnabled_Proxy( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaAddressMap_get_relativeVirtualAddressEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_relativeVirtualAddressEnabled_Proxy( IDiaAddressMap * This, /* [in] */ BOOL NewVal); void __RPC_STUB IDiaAddressMap_put_relativeVirtualAddressEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_imageAlign_Proxy( IDiaAddressMap * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaAddressMap_get_imageAlign_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_imageAlign_Proxy( IDiaAddressMap * This, /* [in] */ DWORD NewVal); void __RPC_STUB IDiaAddressMap_put_imageAlign_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaAddressMap_set_imageHeaders_Proxy( IDiaAddressMap * This, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ], /* [in] */ BOOL originalHeaders); void __RPC_STUB IDiaAddressMap_set_imageHeaders_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaAddressMap_set_addressMap_Proxy( IDiaAddressMap * This, /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry data[ ], /* [in] */ BOOL imageToSymbols); void __RPC_STUB IDiaAddressMap_set_addressMap_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaAddressMap_INTERFACE_DEFINED__ */ #ifndef __IDiaSession_INTERFACE_DEFINED__ #define __IDiaSession_INTERFACE_DEFINED__ /* interface IDiaSession */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSession; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("67138B34-79CD-4b42-B74A-A18ADBB799DF") IDiaSession : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_loadAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_loadAddress( /* [in] */ ULONGLONG NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_globalScope( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumTables( /* [out] */ IDiaEnumTables **ppEnumTables) = 0; virtual HRESULT STDMETHODCALLTYPE getSymbolsByAddr( /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr) = 0; virtual HRESULT STDMETHODCALLTYPE findChildren( /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByAddr( /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByRVA( /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByVA( /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByToken( /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE symsAreEquiv( /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB) = 0; virtual HRESULT STDMETHODCALLTYPE symbolById( /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByRVAEx( /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByVAEx( /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement) = 0; virtual HRESULT STDMETHODCALLTYPE findFile( /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findFileById( /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLines( /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByAddr( /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByRVA( /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByVA( /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByLinenum( /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findInjectedSource( /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumDebugStreams( /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams) = 0; }; #else /* C style interface */ typedef struct IDiaSessionVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSession * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSession * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSession * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_loadAddress )( IDiaSession * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_loadAddress )( IDiaSession * This, /* [in] */ ULONGLONG NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_globalScope )( IDiaSession * This, /* [retval][out] */ IDiaSymbol **pRetVal); HRESULT ( STDMETHODCALLTYPE *getEnumTables )( IDiaSession * This, /* [out] */ IDiaEnumTables **ppEnumTables); HRESULT ( STDMETHODCALLTYPE *getSymbolsByAddr )( IDiaSession * This, /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr); HRESULT ( STDMETHODCALLTYPE *findChildren )( IDiaSession * This, /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); HRESULT ( STDMETHODCALLTYPE *findSymbolByAddr )( IDiaSession * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByRVA )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByVA )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByToken )( IDiaSession * This, /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *symsAreEquiv )( IDiaSession * This, /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB); HRESULT ( STDMETHODCALLTYPE *symbolById )( IDiaSession * This, /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByRVAEx )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); HRESULT ( STDMETHODCALLTYPE *findSymbolByVAEx )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); HRESULT ( STDMETHODCALLTYPE *findFile )( IDiaSession * This, /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult); HRESULT ( STDMETHODCALLTYPE *findFileById )( IDiaSession * This, /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult); HRESULT ( STDMETHODCALLTYPE *findLines )( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByAddr )( IDiaSession * This, /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByRVA )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByVA )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByLinenum )( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findInjectedSource )( IDiaSession * This, /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult); HRESULT ( STDMETHODCALLTYPE *getEnumDebugStreams )( IDiaSession * This, /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams); END_INTERFACE } IDiaSessionVtbl; interface IDiaSession { CONST_VTBL struct IDiaSessionVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSession_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSession_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSession_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSession_get_loadAddress(This,pRetVal) \ (This)->lpVtbl -> get_loadAddress(This,pRetVal) #define IDiaSession_put_loadAddress(This,NewVal) \ (This)->lpVtbl -> put_loadAddress(This,NewVal) #define IDiaSession_get_globalScope(This,pRetVal) \ (This)->lpVtbl -> get_globalScope(This,pRetVal) #define IDiaSession_getEnumTables(This,ppEnumTables) \ (This)->lpVtbl -> getEnumTables(This,ppEnumTables) #define IDiaSession_getSymbolsByAddr(This,ppEnumbyAddr) \ (This)->lpVtbl -> getSymbolsByAddr(This,ppEnumbyAddr) #define IDiaSession_findChildren(This,parent,symtag,name,compareFlags,ppResult) \ (This)->lpVtbl -> findChildren(This,parent,symtag,name,compareFlags,ppResult) #define IDiaSession_findSymbolByAddr(This,isect,offset,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByAddr(This,isect,offset,symtag,ppSymbol) #define IDiaSession_findSymbolByRVA(This,rva,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByRVA(This,rva,symtag,ppSymbol) #define IDiaSession_findSymbolByVA(This,va,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByVA(This,va,symtag,ppSymbol) #define IDiaSession_findSymbolByToken(This,token,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByToken(This,token,symtag,ppSymbol) #define IDiaSession_symsAreEquiv(This,symbolA,symbolB) \ (This)->lpVtbl -> symsAreEquiv(This,symbolA,symbolB) #define IDiaSession_symbolById(This,id,ppSymbol) \ (This)->lpVtbl -> symbolById(This,id,ppSymbol) #define IDiaSession_findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) \ (This)->lpVtbl -> findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) #define IDiaSession_findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) \ (This)->lpVtbl -> findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) #define IDiaSession_findFile(This,pCompiland,name,compareFlags,ppResult) \ (This)->lpVtbl -> findFile(This,pCompiland,name,compareFlags,ppResult) #define IDiaSession_findFileById(This,uniqueId,ppResult) \ (This)->lpVtbl -> findFileById(This,uniqueId,ppResult) #define IDiaSession_findLines(This,compiland,file,ppResult) \ (This)->lpVtbl -> findLines(This,compiland,file,ppResult) #define IDiaSession_findLinesByAddr(This,seg,offset,length,ppResult) \ (This)->lpVtbl -> findLinesByAddr(This,seg,offset,length,ppResult) #define IDiaSession_findLinesByRVA(This,rva,length,ppResult) \ (This)->lpVtbl -> findLinesByRVA(This,rva,length,ppResult) #define IDiaSession_findLinesByVA(This,va,length,ppResult) \ (This)->lpVtbl -> findLinesByVA(This,va,length,ppResult) #define IDiaSession_findLinesByLinenum(This,compiland,file,linenum,column,ppResult) \ (This)->lpVtbl -> findLinesByLinenum(This,compiland,file,linenum,column,ppResult) #define IDiaSession_findInjectedSource(This,srcFile,ppResult) \ (This)->lpVtbl -> findInjectedSource(This,srcFile,ppResult) #define IDiaSession_getEnumDebugStreams(This,ppEnumDebugStreams) \ (This)->lpVtbl -> getEnumDebugStreams(This,ppEnumDebugStreams) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSession_get_loadAddress_Proxy( IDiaSession * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSession_get_loadAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaSession_put_loadAddress_Proxy( IDiaSession * This, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaSession_put_loadAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSession_get_globalScope_Proxy( IDiaSession * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSession_get_globalScope_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getEnumTables_Proxy( IDiaSession * This, /* [out] */ IDiaEnumTables **ppEnumTables); void __RPC_STUB IDiaSession_getEnumTables_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getSymbolsByAddr_Proxy( IDiaSession * This, /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr); void __RPC_STUB IDiaSession_getSymbolsByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findChildren_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); void __RPC_STUB IDiaSession_findChildren_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByAddr_Proxy( IDiaSession * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByRVA_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByVA_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByToken_Proxy( IDiaSession * This, /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByToken_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_symsAreEquiv_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB); void __RPC_STUB IDiaSession_symsAreEquiv_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_symbolById_Proxy( IDiaSession * This, /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_symbolById_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByRVAEx_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); void __RPC_STUB IDiaSession_findSymbolByRVAEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByVAEx_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); void __RPC_STUB IDiaSession_findSymbolByVAEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findFile_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult); void __RPC_STUB IDiaSession_findFile_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findFileById_Proxy( IDiaSession * This, /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult); void __RPC_STUB IDiaSession_findFileById_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLines_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLines_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByAddr_Proxy( IDiaSession * This, /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByRVA_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByVA_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByLinenum_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByLinenum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findInjectedSource_Proxy( IDiaSession * This, /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult); void __RPC_STUB IDiaSession_findInjectedSource_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getEnumDebugStreams_Proxy( IDiaSession * This, /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams); void __RPC_STUB IDiaSession_getEnumDebugStreams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSession_INTERFACE_DEFINED__ */ #ifndef __IDiaSymbol_INTERFACE_DEFINED__ #define __IDiaSymbol_INTERFACE_DEFINED__ /* interface IDiaSymbol */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("72827A48-D320-4eaf-8436-548ADE47D5E5") IDiaSymbol : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symIndexId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symTag( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParent( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParent( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataKind( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_locationType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_slot( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_volatileType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unalignedType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_access( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_libraryName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_platform( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_language( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_editAndContinueEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMajor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMinor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndBuild( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMajor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMinor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndBuild( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thunkOrdinal( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thisAdjust( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtual( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_intro( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_pure( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_callingConvention( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_value( /* [retval][out] */ VARIANT *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_token( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_timeStamp( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_guid( /* [retval][out] */ GUID *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symbolsFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_reference( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_count( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bitPosition( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_packed( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constructor( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_overloadedOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_nested( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasNestedTypes( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAssignmentOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasCastOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_scoped( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseClass( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_indirectVirtualBaseClass( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBasePointerOffset( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShape( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParentId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParentId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_typeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexTypeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShapeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_function( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_managed( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_msil( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseDispIndex( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_undecoratedName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_age( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_signature( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilerGenerated( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressTaken( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rank( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBound( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBound( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBoundId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBoundId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_dataBytes( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE findChildren( /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetRelativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetVirtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_machineType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemSymbolId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_types( /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [length_is][size_is][out] */ IDiaSymbol *types[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE get_typeIds( /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [length_is][size_is][out] */ DWORD typeIds[ ]) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectPointerType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_udtKind( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSymbolVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSymbol * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSymbol * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSymbol * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( IDiaSymbol * This, /* [retval][out] */ VARIANT *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( IDiaSymbol * This, /* [retval][out] */ GUID *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( IDiaSymbol * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *findChildren )( IDiaSymbol * This, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_types )( IDiaSymbol * This, /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [length_is][size_is][out] */ IDiaSymbol *types[ ]); HRESULT ( STDMETHODCALLTYPE *get_typeIds )( IDiaSymbol * This, /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [length_is][size_is][out] */ DWORD typeIds[ ]); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaSymbolVtbl; interface IDiaSymbol { CONST_VTBL struct IDiaSymbolVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSymbol_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSymbol_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSymbol_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSymbol_get_symIndexId(This,pRetVal) \ (This)->lpVtbl -> get_symIndexId(This,pRetVal) #define IDiaSymbol_get_symTag(This,pRetVal) \ (This)->lpVtbl -> get_symTag(This,pRetVal) #define IDiaSymbol_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaSymbol_get_lexicalParent(This,pRetVal) \ (This)->lpVtbl -> get_lexicalParent(This,pRetVal) #define IDiaSymbol_get_classParent(This,pRetVal) \ (This)->lpVtbl -> get_classParent(This,pRetVal) #define IDiaSymbol_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaSymbol_get_dataKind(This,pRetVal) \ (This)->lpVtbl -> get_dataKind(This,pRetVal) #define IDiaSymbol_get_locationType(This,pRetVal) \ (This)->lpVtbl -> get_locationType(This,pRetVal) #define IDiaSymbol_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSymbol_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaSymbol_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSymbol_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaSymbol_get_registerId(This,pRetVal) \ (This)->lpVtbl -> get_registerId(This,pRetVal) #define IDiaSymbol_get_offset(This,pRetVal) \ (This)->lpVtbl -> get_offset(This,pRetVal) #define IDiaSymbol_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSymbol_get_slot(This,pRetVal) \ (This)->lpVtbl -> get_slot(This,pRetVal) #define IDiaSymbol_get_volatileType(This,pRetVal) \ (This)->lpVtbl -> get_volatileType(This,pRetVal) #define IDiaSymbol_get_constType(This,pRetVal) \ (This)->lpVtbl -> get_constType(This,pRetVal) #define IDiaSymbol_get_unalignedType(This,pRetVal) \ (This)->lpVtbl -> get_unalignedType(This,pRetVal) #define IDiaSymbol_get_access(This,pRetVal) \ (This)->lpVtbl -> get_access(This,pRetVal) #define IDiaSymbol_get_libraryName(This,pRetVal) \ (This)->lpVtbl -> get_libraryName(This,pRetVal) #define IDiaSymbol_get_platform(This,pRetVal) \ (This)->lpVtbl -> get_platform(This,pRetVal) #define IDiaSymbol_get_language(This,pRetVal) \ (This)->lpVtbl -> get_language(This,pRetVal) #define IDiaSymbol_get_editAndContinueEnabled(This,pRetVal) \ (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) #define IDiaSymbol_get_frontEndMajor(This,pRetVal) \ (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) #define IDiaSymbol_get_frontEndMinor(This,pRetVal) \ (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) #define IDiaSymbol_get_frontEndBuild(This,pRetVal) \ (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) #define IDiaSymbol_get_backEndMajor(This,pRetVal) \ (This)->lpVtbl -> get_backEndMajor(This,pRetVal) #define IDiaSymbol_get_backEndMinor(This,pRetVal) \ (This)->lpVtbl -> get_backEndMinor(This,pRetVal) #define IDiaSymbol_get_backEndBuild(This,pRetVal) \ (This)->lpVtbl -> get_backEndBuild(This,pRetVal) #define IDiaSymbol_get_sourceFileName(This,pRetVal) \ (This)->lpVtbl -> get_sourceFileName(This,pRetVal) #define IDiaSymbol_get_objectFileName(This,pRetVal) \ (This)->lpVtbl -> get_objectFileName(This,pRetVal) #define IDiaSymbol_get_thunkOrdinal(This,pRetVal) \ (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) #define IDiaSymbol_get_thisAdjust(This,pRetVal) \ (This)->lpVtbl -> get_thisAdjust(This,pRetVal) #define IDiaSymbol_get_virtualBaseOffset(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) #define IDiaSymbol_get_virtual(This,pRetVal) \ (This)->lpVtbl -> get_virtual(This,pRetVal) #define IDiaSymbol_get_intro(This,pRetVal) \ (This)->lpVtbl -> get_intro(This,pRetVal) #define IDiaSymbol_get_pure(This,pRetVal) \ (This)->lpVtbl -> get_pure(This,pRetVal) #define IDiaSymbol_get_callingConvention(This,pRetVal) \ (This)->lpVtbl -> get_callingConvention(This,pRetVal) #define IDiaSymbol_get_value(This,pRetVal) \ (This)->lpVtbl -> get_value(This,pRetVal) #define IDiaSymbol_get_baseType(This,pRetVal) \ (This)->lpVtbl -> get_baseType(This,pRetVal) #define IDiaSymbol_get_token(This,pRetVal) \ (This)->lpVtbl -> get_token(This,pRetVal) #define IDiaSymbol_get_timeStamp(This,pRetVal) \ (This)->lpVtbl -> get_timeStamp(This,pRetVal) #define IDiaSymbol_get_guid(This,pRetVal) \ (This)->lpVtbl -> get_guid(This,pRetVal) #define IDiaSymbol_get_symbolsFileName(This,pRetVal) \ (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) #define IDiaSymbol_get_reference(This,pRetVal) \ (This)->lpVtbl -> get_reference(This,pRetVal) #define IDiaSymbol_get_count(This,pRetVal) \ (This)->lpVtbl -> get_count(This,pRetVal) #define IDiaSymbol_get_bitPosition(This,pRetVal) \ (This)->lpVtbl -> get_bitPosition(This,pRetVal) #define IDiaSymbol_get_arrayIndexType(This,pRetVal) \ (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) #define IDiaSymbol_get_packed(This,pRetVal) \ (This)->lpVtbl -> get_packed(This,pRetVal) #define IDiaSymbol_get_constructor(This,pRetVal) \ (This)->lpVtbl -> get_constructor(This,pRetVal) #define IDiaSymbol_get_overloadedOperator(This,pRetVal) \ (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) #define IDiaSymbol_get_nested(This,pRetVal) \ (This)->lpVtbl -> get_nested(This,pRetVal) #define IDiaSymbol_get_hasNestedTypes(This,pRetVal) \ (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) #define IDiaSymbol_get_hasAssignmentOperator(This,pRetVal) \ (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) #define IDiaSymbol_get_hasCastOperator(This,pRetVal) \ (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) #define IDiaSymbol_get_scoped(This,pRetVal) \ (This)->lpVtbl -> get_scoped(This,pRetVal) #define IDiaSymbol_get_virtualBaseClass(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) #define IDiaSymbol_get_indirectVirtualBaseClass(This,pRetVal) \ (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) #define IDiaSymbol_get_virtualBasePointerOffset(This,pRetVal) \ (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) #define IDiaSymbol_get_virtualTableShape(This,pRetVal) \ (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) #define IDiaSymbol_get_lexicalParentId(This,pRetVal) \ (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) #define IDiaSymbol_get_classParentId(This,pRetVal) \ (This)->lpVtbl -> get_classParentId(This,pRetVal) #define IDiaSymbol_get_typeId(This,pRetVal) \ (This)->lpVtbl -> get_typeId(This,pRetVal) #define IDiaSymbol_get_arrayIndexTypeId(This,pRetVal) \ (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) #define IDiaSymbol_get_virtualTableShapeId(This,pRetVal) \ (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) #define IDiaSymbol_get_code(This,pRetVal) \ (This)->lpVtbl -> get_code(This,pRetVal) #define IDiaSymbol_get_function(This,pRetVal) \ (This)->lpVtbl -> get_function(This,pRetVal) #define IDiaSymbol_get_managed(This,pRetVal) \ (This)->lpVtbl -> get_managed(This,pRetVal) #define IDiaSymbol_get_msil(This,pRetVal) \ (This)->lpVtbl -> get_msil(This,pRetVal) #define IDiaSymbol_get_virtualBaseDispIndex(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) #define IDiaSymbol_get_undecoratedName(This,pRetVal) \ (This)->lpVtbl -> get_undecoratedName(This,pRetVal) #define IDiaSymbol_get_age(This,pRetVal) \ (This)->lpVtbl -> get_age(This,pRetVal) #define IDiaSymbol_get_signature(This,pRetVal) \ (This)->lpVtbl -> get_signature(This,pRetVal) #define IDiaSymbol_get_compilerGenerated(This,pRetVal) \ (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) #define IDiaSymbol_get_addressTaken(This,pRetVal) \ (This)->lpVtbl -> get_addressTaken(This,pRetVal) #define IDiaSymbol_get_rank(This,pRetVal) \ (This)->lpVtbl -> get_rank(This,pRetVal) #define IDiaSymbol_get_lowerBound(This,pRetVal) \ (This)->lpVtbl -> get_lowerBound(This,pRetVal) #define IDiaSymbol_get_upperBound(This,pRetVal) \ (This)->lpVtbl -> get_upperBound(This,pRetVal) #define IDiaSymbol_get_lowerBoundId(This,pRetVal) \ (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) #define IDiaSymbol_get_upperBoundId(This,pRetVal) \ (This)->lpVtbl -> get_upperBoundId(This,pRetVal) #define IDiaSymbol_get_dataBytes(This,cbData,pcbData,data) \ (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,data) #define IDiaSymbol_findChildren(This,symtag,name,compareFlags,ppResult) \ (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) #define IDiaSymbol_get_targetSection(This,pRetVal) \ (This)->lpVtbl -> get_targetSection(This,pRetVal) #define IDiaSymbol_get_targetOffset(This,pRetVal) \ (This)->lpVtbl -> get_targetOffset(This,pRetVal) #define IDiaSymbol_get_targetRelativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) #define IDiaSymbol_get_targetVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) #define IDiaSymbol_get_machineType(This,pRetVal) \ (This)->lpVtbl -> get_machineType(This,pRetVal) #define IDiaSymbol_get_oemId(This,pRetVal) \ (This)->lpVtbl -> get_oemId(This,pRetVal) #define IDiaSymbol_get_oemSymbolId(This,pRetVal) \ (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) #define IDiaSymbol_get_types(This,cTypes,pcTypes,types) \ (This)->lpVtbl -> get_types(This,cTypes,pcTypes,types) #define IDiaSymbol_get_typeIds(This,cTypeIds,pcTypeIds,typeIds) \ (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,typeIds) #define IDiaSymbol_get_objectPointerType(This,pRetVal) \ (This)->lpVtbl -> get_objectPointerType(This,pRetVal) #define IDiaSymbol_get_udtKind(This,pRetVal) \ (This)->lpVtbl -> get_udtKind(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symIndexId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_symIndexId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symTag_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_symTag_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_name_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lexicalParent_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_lexicalParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_classParent_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_classParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_type_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataKind_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_dataKind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_locationType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_locationType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressSection_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_relativeVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_registerId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_registerId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_offset_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_offset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_length_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_slot_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_slot_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_volatileType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_volatileType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_constType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unalignedType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_unalignedType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_access_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_access_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_libraryName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_libraryName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_platform_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_platform_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_language_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_language_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_editAndContinueEnabled_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_editAndContinueEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndMajor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndMajor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndMinor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndMinor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndBuild_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndBuild_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndMajor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndMajor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndMinor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndMinor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndBuild_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndBuild_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_sourceFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_sourceFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_objectFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_objectFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_thunkOrdinal_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_thunkOrdinal_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_thisAdjust_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_thisAdjust_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtual_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_virtual_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_intro_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_intro_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_pure_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_pure_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_callingConvention_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_callingConvention_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_value_Proxy( IDiaSymbol * This, /* [retval][out] */ VARIANT *pRetVal); void __RPC_STUB IDiaSymbol_get_value_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_baseType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_token_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_token_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_timeStamp_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_timeStamp_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_guid_Proxy( IDiaSymbol * This, /* [retval][out] */ GUID *pRetVal); void __RPC_STUB IDiaSymbol_get_guid_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symbolsFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_symbolsFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_reference_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_reference_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_count_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_bitPosition_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_bitPosition_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_arrayIndexType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_arrayIndexType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_packed_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_packed_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constructor_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_constructor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_overloadedOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_overloadedOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_nested_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_nested_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasNestedTypes_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasNestedTypes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasAssignmentOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasAssignmentOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasCastOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasCastOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_scoped_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_scoped_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseClass_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseClass_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_indirectVirtualBaseClass_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_indirectVirtualBaseClass_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBasePointerOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBasePointerOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualTableShape_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_virtualTableShape_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lexicalParentId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_lexicalParentId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_classParentId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_classParentId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_typeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_typeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_arrayIndexTypeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_arrayIndexTypeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualTableShapeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualTableShapeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_code_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_code_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_function_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_function_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_managed_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_managed_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_msil_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_msil_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseDispIndex_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseDispIndex_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_undecoratedName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_undecoratedName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_age_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_age_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_signature_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_signature_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_compilerGenerated_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_compilerGenerated_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressTaken_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_addressTaken_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_rank_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_rank_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lowerBound_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_lowerBound_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_upperBound_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_upperBound_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lowerBoundId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_lowerBoundId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_upperBoundId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_upperBoundId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataBytes_Proxy( IDiaSymbol * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaSymbol_get_dataBytes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_findChildren_Proxy( IDiaSymbol * This, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); void __RPC_STUB IDiaSymbol_findChildren_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetSection_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetRelativeVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetRelativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_targetVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_machineType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_machineType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_oemId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_oemId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_oemSymbolId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_oemSymbolId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_types_Proxy( IDiaSymbol * This, /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [length_is][size_is][out] */ IDiaSymbol *types[ ]); void __RPC_STUB IDiaSymbol_get_types_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_typeIds_Proxy( IDiaSymbol * This, /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [length_is][size_is][out] */ DWORD typeIds[ ]); void __RPC_STUB IDiaSymbol_get_typeIds_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_objectPointerType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_objectPointerType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_udtKind_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_udtKind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSymbol_INTERFACE_DEFINED__ */ #ifndef __IDiaSourceFile_INTERFACE_DEFINED__ #define __IDiaSourceFile_INTERFACE_DEFINED__ /* interface IDiaSourceFile */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSourceFile; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD") IDiaSourceFile : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uniqueId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_checksumType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilands( /* [retval][out] */ IDiaEnumSymbols **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_checksum( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaSourceFileVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSourceFile * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSourceFile * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSourceFile * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueId )( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileName )( IDiaSourceFile * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_checksumType )( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilands )( IDiaSourceFile * This, /* [retval][out] */ IDiaEnumSymbols **pRetVal); HRESULT ( STDMETHODCALLTYPE *get_checksum )( IDiaSourceFile * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaSourceFileVtbl; interface IDiaSourceFile { CONST_VTBL struct IDiaSourceFileVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSourceFile_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSourceFile_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSourceFile_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSourceFile_get_uniqueId(This,pRetVal) \ (This)->lpVtbl -> get_uniqueId(This,pRetVal) #define IDiaSourceFile_get_fileName(This,pRetVal) \ (This)->lpVtbl -> get_fileName(This,pRetVal) #define IDiaSourceFile_get_checksumType(This,pRetVal) \ (This)->lpVtbl -> get_checksumType(This,pRetVal) #define IDiaSourceFile_get_compilands(This,pRetVal) \ (This)->lpVtbl -> get_compilands(This,pRetVal) #define IDiaSourceFile_get_checksum(This,cbData,pcbData,data) \ (This)->lpVtbl -> get_checksum(This,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_uniqueId_Proxy( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSourceFile_get_uniqueId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_fileName_Proxy( IDiaSourceFile * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSourceFile_get_fileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_checksumType_Proxy( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSourceFile_get_checksumType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_compilands_Proxy( IDiaSourceFile * This, /* [retval][out] */ IDiaEnumSymbols **pRetVal); void __RPC_STUB IDiaSourceFile_get_compilands_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_checksum_Proxy( IDiaSourceFile * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaSourceFile_get_checksum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSourceFile_INTERFACE_DEFINED__ */ #ifndef __IDiaLineNumber_INTERFACE_DEFINED__ #define __IDiaLineNumber_INTERFACE_DEFINED__ /* interface IDiaLineNumber */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLineNumber; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("B388EB14-BE4D-421d-A8A1-6CF7AB057086") IDiaLineNumber : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFile( /* [retval][out] */ IDiaSourceFile **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumber( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumberEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumber( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumberEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_statement( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaLineNumberVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLineNumber * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLineNumber * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLineNumber * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( IDiaLineNumber * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFile )( IDiaLineNumber * This, /* [retval][out] */ IDiaSourceFile **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumber )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumberEnd )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumber )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumberEnd )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaLineNumber * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileId )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statement )( IDiaLineNumber * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaLineNumberVtbl; interface IDiaLineNumber { CONST_VTBL struct IDiaLineNumberVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLineNumber_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLineNumber_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLineNumber_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLineNumber_get_compiland(This,pRetVal) \ (This)->lpVtbl -> get_compiland(This,pRetVal) #define IDiaLineNumber_get_sourceFile(This,pRetVal) \ (This)->lpVtbl -> get_sourceFile(This,pRetVal) #define IDiaLineNumber_get_lineNumber(This,pRetVal) \ (This)->lpVtbl -> get_lineNumber(This,pRetVal) #define IDiaLineNumber_get_lineNumberEnd(This,pRetVal) \ (This)->lpVtbl -> get_lineNumberEnd(This,pRetVal) #define IDiaLineNumber_get_columnNumber(This,pRetVal) \ (This)->lpVtbl -> get_columnNumber(This,pRetVal) #define IDiaLineNumber_get_columnNumberEnd(This,pRetVal) \ (This)->lpVtbl -> get_columnNumberEnd(This,pRetVal) #define IDiaLineNumber_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaLineNumber_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaLineNumber_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaLineNumber_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaLineNumber_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaLineNumber_get_sourceFileId(This,pRetVal) \ (This)->lpVtbl -> get_sourceFileId(This,pRetVal) #define IDiaLineNumber_get_statement(This,pRetVal) \ (This)->lpVtbl -> get_statement(This,pRetVal) #define IDiaLineNumber_get_compilandId(This,pRetVal) \ (This)->lpVtbl -> get_compilandId(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_compiland_Proxy( IDiaLineNumber * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaLineNumber_get_compiland_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_sourceFile_Proxy( IDiaLineNumber * This, /* [retval][out] */ IDiaSourceFile **pRetVal); void __RPC_STUB IDiaLineNumber_get_sourceFile_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_lineNumber_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_lineNumber_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_lineNumberEnd_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_lineNumberEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_columnNumber_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_columnNumber_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_columnNumberEnd_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_columnNumberEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_addressSection_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_addressOffset_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_relativeVirtualAddress_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_virtualAddress_Proxy( IDiaLineNumber * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaLineNumber_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_length_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_sourceFileId_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_sourceFileId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_statement_Proxy( IDiaLineNumber * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaLineNumber_get_statement_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_compilandId_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_compilandId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLineNumber_INTERFACE_DEFINED__ */ #ifndef __IDiaSectionContrib_INTERFACE_DEFINED__ #define __IDiaSectionContrib_INTERFACE_DEFINED__ /* interface IDiaSectionContrib */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSectionContrib; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857") IDiaSectionContrib : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notPaged( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_initializedData( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uninitializedData( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_remove( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_comdat( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_discardable( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notCached( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_share( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataCrc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relocationsCrc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSectionContribVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSectionContrib * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSectionContrib * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSectionContrib * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( IDiaSectionContrib * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSectionContrib * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notPaged )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_initializedData )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uninitializedData )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_remove )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_comdat )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_discardable )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notCached )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_share )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataCrc )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relocationsCrc )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaSectionContribVtbl; interface IDiaSectionContrib { CONST_VTBL struct IDiaSectionContribVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSectionContrib_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSectionContrib_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSectionContrib_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSectionContrib_get_compiland(This,pRetVal) \ (This)->lpVtbl -> get_compiland(This,pRetVal) #define IDiaSectionContrib_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSectionContrib_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaSectionContrib_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSectionContrib_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaSectionContrib_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSectionContrib_get_notPaged(This,pRetVal) \ (This)->lpVtbl -> get_notPaged(This,pRetVal) #define IDiaSectionContrib_get_code(This,pRetVal) \ (This)->lpVtbl -> get_code(This,pRetVal) #define IDiaSectionContrib_get_initializedData(This,pRetVal) \ (This)->lpVtbl -> get_initializedData(This,pRetVal) #define IDiaSectionContrib_get_uninitializedData(This,pRetVal) \ (This)->lpVtbl -> get_uninitializedData(This,pRetVal) #define IDiaSectionContrib_get_remove(This,pRetVal) \ (This)->lpVtbl -> get_remove(This,pRetVal) #define IDiaSectionContrib_get_comdat(This,pRetVal) \ (This)->lpVtbl -> get_comdat(This,pRetVal) #define IDiaSectionContrib_get_discardable(This,pRetVal) \ (This)->lpVtbl -> get_discardable(This,pRetVal) #define IDiaSectionContrib_get_notCached(This,pRetVal) \ (This)->lpVtbl -> get_notCached(This,pRetVal) #define IDiaSectionContrib_get_share(This,pRetVal) \ (This)->lpVtbl -> get_share(This,pRetVal) #define IDiaSectionContrib_get_execute(This,pRetVal) \ (This)->lpVtbl -> get_execute(This,pRetVal) #define IDiaSectionContrib_get_read(This,pRetVal) \ (This)->lpVtbl -> get_read(This,pRetVal) #define IDiaSectionContrib_get_write(This,pRetVal) \ (This)->lpVtbl -> get_write(This,pRetVal) #define IDiaSectionContrib_get_dataCrc(This,pRetVal) \ (This)->lpVtbl -> get_dataCrc(This,pRetVal) #define IDiaSectionContrib_get_relocationsCrc(This,pRetVal) \ (This)->lpVtbl -> get_relocationsCrc(This,pRetVal) #define IDiaSectionContrib_get_compilandId(This,pRetVal) \ (This)->lpVtbl -> get_compilandId(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_compiland_Proxy( IDiaSectionContrib * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSectionContrib_get_compiland_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_addressSection_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_addressOffset_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_relativeVirtualAddress_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_virtualAddress_Proxy( IDiaSectionContrib * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSectionContrib_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_length_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_notPaged_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_notPaged_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_code_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_code_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_initializedData_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_initializedData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_uninitializedData_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_uninitializedData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_remove_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_remove_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_comdat_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_comdat_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_discardable_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_discardable_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_notCached_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_notCached_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_share_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_share_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_execute_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_read_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_read_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_write_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_write_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_dataCrc_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_dataCrc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_relocationsCrc_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_relocationsCrc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_compilandId_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_compilandId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSectionContrib_INTERFACE_DEFINED__ */ #ifndef __IDiaSegment_INTERFACE_DEFINED__ #define __IDiaSegment_INTERFACE_DEFINED__ /* interface IDiaSegment */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSegment; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0775B784-C75B-4449-848B-B7BD3159545B") IDiaSegment : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frame( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSegmentVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSegment * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSegment * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSegment * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frame )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSegment * This, /* [retval][out] */ ULONGLONG *pRetVal); END_INTERFACE } IDiaSegmentVtbl; interface IDiaSegment { CONST_VTBL struct IDiaSegmentVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSegment_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSegment_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSegment_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSegment_get_frame(This,pRetVal) \ (This)->lpVtbl -> get_frame(This,pRetVal) #define IDiaSegment_get_offset(This,pRetVal) \ (This)->lpVtbl -> get_offset(This,pRetVal) #define IDiaSegment_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSegment_get_read(This,pRetVal) \ (This)->lpVtbl -> get_read(This,pRetVal) #define IDiaSegment_get_write(This,pRetVal) \ (This)->lpVtbl -> get_write(This,pRetVal) #define IDiaSegment_get_execute(This,pRetVal) \ (This)->lpVtbl -> get_execute(This,pRetVal) #define IDiaSegment_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSegment_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSegment_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_frame_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_frame_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_offset_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_offset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_length_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_read_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_read_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_write_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_write_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_execute_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_addressSection_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_relativeVirtualAddress_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_virtualAddress_Proxy( IDiaSegment * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSegment_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSegment_INTERFACE_DEFINED__ */ #ifndef __IDiaInjectedSource_INTERFACE_DEFINED__ #define __IDiaInjectedSource_INTERFACE_DEFINED__ /* interface IDiaInjectedSource */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaInjectedSource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("AE605CDC-8105-4a23-B710-3259F1E26112") IDiaInjectedSource : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_crc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_filename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectFilename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualFilename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceCompression( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_source( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaInjectedSourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaInjectedSource * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaInjectedSource * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaInjectedSource * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_crc )( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaInjectedSource * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFilename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualFilename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceCompression )( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_source )( IDiaInjectedSource * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaInjectedSourceVtbl; interface IDiaInjectedSource { CONST_VTBL struct IDiaInjectedSourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaInjectedSource_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaInjectedSource_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaInjectedSource_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaInjectedSource_get_crc(This,pRetVal) \ (This)->lpVtbl -> get_crc(This,pRetVal) #define IDiaInjectedSource_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaInjectedSource_get_filename(This,pRetVal) \ (This)->lpVtbl -> get_filename(This,pRetVal) #define IDiaInjectedSource_get_objectFilename(This,pRetVal) \ (This)->lpVtbl -> get_objectFilename(This,pRetVal) #define IDiaInjectedSource_get_virtualFilename(This,pRetVal) \ (This)->lpVtbl -> get_virtualFilename(This,pRetVal) #define IDiaInjectedSource_get_sourceCompression(This,pRetVal) \ (This)->lpVtbl -> get_sourceCompression(This,pRetVal) #define IDiaInjectedSource_get_source(This,cbData,pcbData,data) \ (This)->lpVtbl -> get_source(This,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_crc_Proxy( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaInjectedSource_get_crc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_length_Proxy( IDiaInjectedSource * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaInjectedSource_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_filename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_filename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_objectFilename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_objectFilename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_virtualFilename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_virtualFilename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_sourceCompression_Proxy( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaInjectedSource_get_sourceCompression_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_source_Proxy( IDiaInjectedSource * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaInjectedSource_get_source_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaInjectedSource_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0133 */ /* [local] */ enum __MIDL___MIDL_itf_dia2_0133_0001 { E_DIA_INPROLOG = ( HRESULT )(( unsigned long )1 << 31 | ( unsigned long )( LONG )0x6d << 16 | ( unsigned long )100), E_DIA_SYNTAX = E_DIA_INPROLOG + 1, E_DIA_FRAME_ACCESS = E_DIA_SYNTAX + 1, E_DIA_VALUE = E_DIA_FRAME_ACCESS + 1 } ; extern RPC_IF_HANDLE __MIDL_itf_dia2_0133_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0133_v0_0_s_ifspec; #ifndef __IDiaStackWalkFrame_INTERFACE_DEFINED__ #define __IDiaStackWalkFrame_INTERFACE_DEFINED__ /* interface IDiaStackWalkFrame */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalkFrame; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("97F0F1A6-E04E-4ea4-B4F9-B0D0E8D90F5D") IDiaStackWalkFrame : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE readMemory( /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkFrameVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalkFrame * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalkFrame * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalkFrame * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); HRESULT ( STDMETHODCALLTYPE *readMemory )( IDiaStackWalkFrame * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); END_INTERFACE } IDiaStackWalkFrameVtbl; interface IDiaStackWalkFrame { CONST_VTBL struct IDiaStackWalkFrameVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalkFrame_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalkFrame_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalkFrame_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalkFrame_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackWalkFrame_put_registerValue(This,index,NewVal) \ (This)->lpVtbl -> put_registerValue(This,index,NewVal) #define IDiaStackWalkFrame_readMemory(This,va,cbData,pcbData,data) \ (This)->lpVtbl -> readMemory(This,va,cbData,pcbData,data) #define IDiaStackWalkFrame_searchForReturnAddress(This,frame,returnAddress) \ (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) #define IDiaStackWalkFrame_searchForReturnAddressStart(This,frame,startAddress,returnAddress) \ (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_get_registerValue_Proxy( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackWalkFrame_get_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_put_registerValue_Proxy( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaStackWalkFrame_put_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_readMemory_Proxy( IDiaStackWalkFrame * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaStackWalkFrame_readMemory_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_searchForReturnAddress_Proxy( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkFrame_searchForReturnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_searchForReturnAddressStart_Proxy( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkFrame_searchForReturnAddressStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalkFrame_INTERFACE_DEFINED__ */ #ifndef __IDiaFrameData_INTERFACE_DEFINED__ #define __IDiaFrameData_INTERFACE_DEFINED__ /* interface IDiaFrameData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaFrameData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("A39184B7-6A36-42de-8EEC-7DF9F3F59F33") IDiaFrameData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthBlock( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_program( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionParent( /* [retval][out] */ IDiaFrameData **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE execute( IDiaStackWalkFrame *frame) = 0; }; #else /* C style interface */ typedef struct IDiaFrameDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaFrameData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaFrameData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaFrameData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaFrameData * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthBlock )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_program )( IDiaFrameData * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionParent )( IDiaFrameData * This, /* [retval][out] */ IDiaFrameData **pRetVal); HRESULT ( STDMETHODCALLTYPE *execute )( IDiaFrameData * This, IDiaStackWalkFrame *frame); END_INTERFACE } IDiaFrameDataVtbl; interface IDiaFrameData { CONST_VTBL struct IDiaFrameDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaFrameData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaFrameData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaFrameData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaFrameData_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaFrameData_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaFrameData_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaFrameData_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaFrameData_get_lengthBlock(This,pRetVal) \ (This)->lpVtbl -> get_lengthBlock(This,pRetVal) #define IDiaFrameData_get_lengthLocals(This,pRetVal) \ (This)->lpVtbl -> get_lengthLocals(This,pRetVal) #define IDiaFrameData_get_lengthParams(This,pRetVal) \ (This)->lpVtbl -> get_lengthParams(This,pRetVal) #define IDiaFrameData_get_maxStack(This,pRetVal) \ (This)->lpVtbl -> get_maxStack(This,pRetVal) #define IDiaFrameData_get_lengthProlog(This,pRetVal) \ (This)->lpVtbl -> get_lengthProlog(This,pRetVal) #define IDiaFrameData_get_lengthSavedRegisters(This,pRetVal) \ (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) #define IDiaFrameData_get_program(This,pRetVal) \ (This)->lpVtbl -> get_program(This,pRetVal) #define IDiaFrameData_get_systemExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) #define IDiaFrameData_get_cplusplusExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) #define IDiaFrameData_get_functionStart(This,pRetVal) \ (This)->lpVtbl -> get_functionStart(This,pRetVal) #define IDiaFrameData_get_allocatesBasePointer(This,pRetVal) \ (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) #define IDiaFrameData_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaFrameData_get_functionParent(This,pRetVal) \ (This)->lpVtbl -> get_functionParent(This,pRetVal) #define IDiaFrameData_execute(This,frame) \ (This)->lpVtbl -> execute(This,frame) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_addressSection_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_addressOffset_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_relativeVirtualAddress_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_virtualAddress_Proxy( IDiaFrameData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaFrameData_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthBlock_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthBlock_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthLocals_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthLocals_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthParams_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthParams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_maxStack_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_maxStack_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthProlog_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthProlog_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthSavedRegisters_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthSavedRegisters_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_program_Proxy( IDiaFrameData * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaFrameData_get_program_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_systemExceptionHandling_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_systemExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_cplusplusExceptionHandling_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_cplusplusExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_functionStart_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_functionStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_allocatesBasePointer_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_allocatesBasePointer_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_type_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_functionParent_Proxy( IDiaFrameData * This, /* [retval][out] */ IDiaFrameData **pRetVal); void __RPC_STUB IDiaFrameData_get_functionParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaFrameData_execute_Proxy( IDiaFrameData * This, IDiaStackWalkFrame *frame); void __RPC_STUB IDiaFrameData_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaFrameData_INTERFACE_DEFINED__ */ #ifndef __IDiaImageData_INTERFACE_DEFINED__ #define __IDiaImageData_INTERFACE_DEFINED__ /* interface IDiaImageData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaImageData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C8E40ED2-A1D9-4221-8692-3CE661184B44") IDiaImageData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageBase( /* [retval][out] */ ULONGLONG *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaImageDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaImageData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaImageData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaImageData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaImageData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageBase )( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); END_INTERFACE } IDiaImageDataVtbl; interface IDiaImageData { CONST_VTBL struct IDiaImageDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaImageData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaImageData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaImageData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaImageData_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaImageData_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaImageData_get_imageBase(This,pRetVal) \ (This)->lpVtbl -> get_imageBase(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_relativeVirtualAddress_Proxy( IDiaImageData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaImageData_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_virtualAddress_Proxy( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaImageData_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_imageBase_Proxy( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaImageData_get_imageBase_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaImageData_INTERFACE_DEFINED__ */ #ifndef __IDiaTable_INTERFACE_DEFINED__ #define __IDiaTable_INTERFACE_DEFINED__ /* interface IDiaTable */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaTable; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4A59FB77-ABAC-469b-A30B-9ECC85BFEF14") IDiaTable : public IEnumUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element) = 0; }; #else /* C style interface */ typedef struct IDiaTableVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaTable * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaTable * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaTable * This); /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( IDiaTable * This, /* [in] */ ULONG celt, /* [out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaTable * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaTable * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaTable * This, /* [out] */ IEnumUnknown **ppenum); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaTable * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaTable * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaTable * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaTable * This, /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element); END_INTERFACE } IDiaTableVtbl; interface IDiaTable { CONST_VTBL struct IDiaTableVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaTable_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaTable_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaTable_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaTable_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaTable_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaTable_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaTable_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #define IDiaTable_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaTable_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaTable_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaTable_Item(This,index,element) \ (This)->lpVtbl -> Item(This,index,element) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get__NewEnum_Proxy( IDiaTable * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaTable_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get_name_Proxy( IDiaTable * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaTable_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get_Count_Proxy( IDiaTable * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaTable_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaTable_Item_Proxy( IDiaTable * This, /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element); void __RPC_STUB IDiaTable_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaTable_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumTables_INTERFACE_DEFINED__ #define __IDiaEnumTables_INTERFACE_DEFINED__ /* interface IDiaEnumTables */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumTables; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E") IDiaEnumTables : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table) = 0; virtual HRESULT STDMETHODCALLTYPE Next( ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumTables **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumTablesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumTables * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumTables * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumTables * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumTables * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumTables * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumTables * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumTables * This, ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumTables * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumTables * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumTables * This, /* [out] */ IDiaEnumTables **ppenum); END_INTERFACE } IDiaEnumTablesVtbl; interface IDiaEnumTables { CONST_VTBL struct IDiaEnumTablesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumTables_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumTables_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumTables_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumTables_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumTables_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumTables_Item(This,index,table) \ (This)->lpVtbl -> Item(This,index,table) #define IDiaEnumTables_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumTables_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumTables_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumTables_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_get__NewEnum_Proxy( IDiaEnumTables * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumTables_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_get_Count_Proxy( IDiaEnumTables * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumTables_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_Item_Proxy( IDiaEnumTables * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table); void __RPC_STUB IDiaEnumTables_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Next_Proxy( IDiaEnumTables * This, ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched); void __RPC_STUB IDiaEnumTables_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Skip_Proxy( IDiaEnumTables * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumTables_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Reset_Proxy( IDiaEnumTables * This); void __RPC_STUB IDiaEnumTables_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Clone_Proxy( IDiaEnumTables * This, /* [out] */ IDiaEnumTables **ppenum); void __RPC_STUB IDiaEnumTables_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumTables_INTERFACE_DEFINED__ */ #ifndef __Dia2Lib_LIBRARY_DEFINED__ #define __Dia2Lib_LIBRARY_DEFINED__ /* library Dia2Lib */ /* [helpstring][version][uuid] */ EXTERN_C const IID LIBID_Dia2Lib; EXTERN_C const CLSID CLSID_DiaSource; #ifdef __cplusplus class DECLSPEC_UUID("151CE278-3CCB-4161-8658-679F8BCF29ED") DiaSource; #endif EXTERN_C const CLSID CLSID_DiaSourceAlt; #ifdef __cplusplus class DECLSPEC_UUID("AF74D59B-5AF2-4f36-9E86-87B754DC8A4E") DiaSourceAlt; #endif #endif /* __Dia2Lib_LIBRARY_DEFINED__ */ /* interface __MIDL_itf_dia2_0138 */ /* [local] */ #define DiaTable_Symbols ( L"Symbols" ) #define DiaTable_Sections ( L"Sections" ) #define DiaTable_SrcFiles ( L"SourceFiles" ) #define DiaTable_LineNums ( L"LineNumbers" ) #define DiaTable_SegMap ( L"SegmentMap" ) #define DiaTable_Dbg ( L"Dbg" ) #define DiaTable_InjSrc ( L"InjectedSource" ) #define DiaTable_FrameData ( L"FrameData" ) extern RPC_IF_HANDLE __MIDL_itf_dia2_0138_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0138_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ #ifdef __cplusplus } #endif #endif ================================================ FILE: Addition/DIASDK/include/diacreate.h ================================================ // diacreate.h - creation helper functions for DIA initialization //----------------------------------------------------------------- // // Copyright Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- #ifndef _DIACREATE_H_ #define _DIACREATE_H_ // // Create a dia data source object from the dia dll (by dll name - does not access the registry). // HRESULT STDMETHODCALLTYPE NoRegCoCreate( const char*dllName, REFCLSID rclsid, REFIID riid, void **ppv); // // Create a dia data source object from the dia dll (looks up the class id in the registry). // HRESULT STDMETHODCALLTYPE NoOleCoCreate( REFCLSID rclsid, REFIID riid, void **ppv); #endif ================================================ FILE: Addition/DIASDK2005/idl/dia2.idl ================================================ // dia2.idl - Debug Information Access (DIA) interface description //----------------------------------------------------------------- // // Copyright 1999-2000 Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- import "objidl.idl"; import "oaidl.idl"; import "propidl.idl"; import "cvconst.h"; enum NameSearchOptions { nsNone = 0, nsfCaseSensitive = 0x1, // apply a case sensitive match nsfCaseInsensitive = 0x2, // apply a case insensitive match nsfFNameExt = 0x4, // treat names as paths and apply a filename.ext match nsfRegularExpression = 0x8, // regular expression nsfUndecoratedName = 0x10, // applies only to symbols that have both undecorated and decorated names // predefined names for backward source compatibility nsCaseSensitive = nsfCaseSensitive, // apply a case sensitive match nsCaseInsensitive = nsfCaseInsensitive, // apply a case insensitive match nsFNameExt = nsfCaseInsensitive | nsfFNameExt, // treat names as paths and apply a filename.ext match nsRegularExpression = nsfRegularExpression | nsfCaseSensitive, // regular expression (using only '*' and '?') nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive, // case insensitive regular expression }; // the following are error HRESULTS returned by an IDiaDataSource they // are based on the FACILITY_VISUALCPP (0x6d) defined in delayimp.h enum { E_PDB_OK=((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(1))) ), E_PDB_USAGE , E_PDB_OUT_OF_MEMORY , // not used, use E_OUTOFMEMORY E_PDB_FILE_SYSTEM , E_PDB_NOT_FOUND , E_PDB_INVALID_SIG , E_PDB_INVALID_AGE , E_PDB_PRECOMP_REQUIRED , E_PDB_OUT_OF_TI , E_PDB_NOT_IMPLEMENTED , // use E_NOTIMPL E_PDB_V1_PDB , E_PDB_FORMAT , E_PDB_LIMIT , E_PDB_CORRUPT , E_PDB_TI16 , E_PDB_ACCESS_DENIED , // use E_ACCESSDENIED E_PDB_ILLEGAL_TYPE_EDIT , E_PDB_INVALID_EXECUTABLE , E_PDB_DBG_NOT_FOUND , E_PDB_NO_DEBUG_INFO , E_PDB_INVALID_EXE_TIMESTAMP , E_PDB_RESERVED , E_PDB_DEBUG_INFO_NOT_IN_PDB , E_PDB_SYMSRV_BAD_CACHE_PATH , E_PDB_SYMSRV_CACHE_FULL , E_PDB_MAX }; // // Errors in finding dynamically loaded dlls or functions. // enum { DIA_E_MODNOTFOUND = E_PDB_MAX+1, DIA_E_PROCNOTFOUND, }; #define PROPERTY_RW(type, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([out, retval] type * pRetVal); \ \ [propput, helpstring(help), id(prid)] \ HRESULT name([in] type NewVal) #define PROPERTY_ARRAY_RW(type, itype, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [out, retval] type * pRetVal); \ \ [propput, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [in] type NewVal) #define PROPERTY_RO(type, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([out, retval] type * pRetVal) #define PROPERTY_ARRAY_RO(type, itype, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [out, retval] type * pRetVal) // type of callback arg to IDiaDataSource::loadDataForExe typedef void (__cdecl *PfnPDBDebugDirV)(BOOL, /*const struct _IMAGE_DEBUG_DIRECTORY * */ void*); interface IDiaSession; interface IDiaEnumTables; interface IDiaSymbol; interface IDiaSourceFile; interface IDiaLineNumber; interface IDiaInjectedSource; interface IDiaSegment; interface IDiaSectionContrib; interface IDiaFrameData; interface IDiaLVarInstance; interface IDiaStackWalkHelper; interface IDiaStackFrame; [ object, uuid(C32ADB82-73F4-421b-95D5-A4706EDF5DBE), local, helpstring("IDiaLoadCallback interface."), pointer_default(unique) ] interface IDiaLoadCallback: IUnknown { HRESULT NotifyDebugDir( [in] BOOL fExecutable, [in] DWORD cbData, [in, size_is(cbData)] BYTE *pbData); // really a const struct _IMAGE_DEBUG_DIRECTORY * HRESULT NotifyOpenDBG( [in] LPCOLESTR dbgPath, [in] HRESULT resultCode); HRESULT NotifyOpenPDB( [in] LPCOLESTR pdbPath, [in] HRESULT resultCode); HRESULT RestrictRegistryAccess(); // return hr != S_OK to prevent querying the registry for symbol search paths HRESULT RestrictSymbolServerAccess(); // return hr != S_OK to prevent accessing a symbol server } [ object, uuid(4688a074-5a4d-4486-aea8-7b90711d9f7c), local, helpstring("IDiaLoadCallback interface."), pointer_default(unique) ] interface IDiaLoadCallback2: IDiaLoadCallback { HRESULT RestrictOriginalPathAccess(); // return hr != S_OK to prevent looking up PDB specified in the debug directory HRESULT RestrictReferencePathAccess(); // return hr != S_OK to prevent looking up for PDB where the EXE is located. HRESULT RestrictDBGAccess(); // return hr != S_OK to prevent looking up debug information from DBG files. HRESULT RestrictSystemRootAccess(); // return hr != S_OK to prevent looking up PDBs in system root } [ object, uuid(587A461C-B80B-4f54-9194-5032589A6319), local, helpstring("IDiaReadExeAtOffsetCallback interface."), pointer_default(unique) ] interface IDiaReadExeAtOffsetCallback: IUnknown { HRESULT ReadExecutableAt( [in] DWORDLONG fileOffset, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData); } [ object, uuid(8E3F80CA-7517-432a-BA07-285134AAEA8E), local, helpstring("IDiaReadExeAtRVACallback interface."), pointer_default(unique) ] interface IDiaReadExeAtRVACallback: IUnknown { HRESULT ReadExecutableAtRVA( [in] DWORD relativeVirtualAddress, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData); } [ object, uuid(79F1BB5F-B66E-48e5-B6A9-1545C323CA3D), local, helpstring("IDiaDataSource Interface"), pointer_default(unique) ] interface IDiaDataSource: IUnknown { PROPERTY_RO( BSTR, lastError, 1, "Text for last load error." ); // // loadDataFromPdb // HRESULT loadDataFromPdb( [in] LPCOLESTR pdbPath ); // // loadAndValidateDataFromPdb // HRESULT loadAndValidateDataFromPdb( [in] LPCOLESTR pdbPath, [in] GUID* pcsig70, [in] DWORD sig, [in] DWORD age ); // // loadDataForExe // HRESULT loadDataForExe( [in] LPCOLESTR executable, [in] LPCOLESTR searchPath, [in] IUnknown* pCallback ); // // loadDataFromIStream // HRESULT loadDataFromIStream( [in] IStream *pIStream ); HRESULT openSession( [out] IDiaSession** ppSession ); } [ object, uuid(CAB72C48-443B-48f5-9B0B-42F0820AB29A), local, helpstring("IDiaEnumSymbols Interface"), pointer_default(unique) ] interface IDiaEnumSymbols: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSymbols." ); PROPERTY_RO( LONG, Count, 1, "Number of symbols." ); [id(0), helpstring("Return the symbol for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSymbol **symbol); HRESULT Next( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSymbols **ppenum); } [ object, uuid(624B7D9C-24EA-4421-9D06-3B577471C1FA), local, helpstring("IDiaEnumSymbolsByAddr Interface"), pointer_default(unique) ] interface IDiaEnumSymbolsByAddr: IUnknown { // // Item(ByXxx) re-positions the enumerator to the item found // [helpstring("Return the symbol for the given address.")] HRESULT symbolByAddr( [in] DWORD isect, [in] DWORD offset, [out, retval]IDiaSymbol** ppSymbol); [helpstring("Return the symbol for the given relative virtual address.")] HRESULT symbolByRVA( [in] DWORD relativeVirtualAddress, [out, retval]IDiaSymbol** ppSymbol); [helpstring("Return the symbol for the given virtual address.")] HRESULT symbolByVA( [in] ULONGLONG virtualAddress, [out, retval]IDiaSymbol** ppSymbol); HRESULT Next( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Prev( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Clone( [out] IDiaEnumSymbolsByAddr **ppenum); } [ object, uuid(10F3DBD9-664F-4469-B808-9471C7A50538), local, helpstring("IDiaEnumSourceFiles Interface"), pointer_default(unique) ] interface IDiaEnumSourceFiles: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSourceFiles." ); PROPERTY_RO( LONG, Count, 1, "Number of source files." ); [id(0), helpstring("Return the source file for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSourceFile **sourceFile); HRESULT Next( [in] ULONG celt, [out] IDiaSourceFile ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSourceFiles **ppenum); } [ object, uuid(FE30E878-54AC-44f1-81BA-39DE940F6052), local, helpstring("IDiaEnumLineNumbers Interface"), pointer_default(unique) ] interface IDiaEnumLineNumbers: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumLineNumbers." ); PROPERTY_RO( LONG, Count, 1, "Number of line numbers." ); [id(0), helpstring("Return the line number for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaLineNumber **lineNumber); HRESULT Next( [in] ULONG celt, [out] IDiaLineNumber ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumLineNumbers **ppenum); } [ object, uuid(D5612573-6925-4468-8883-98CDEC8C384A), local, helpstring("IDiaEnumInjectedSources Interface"), pointer_default(unique) ] interface IDiaEnumInjectedSources: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumInjectedSources." ); PROPERTY_RO( LONG, Count, 1, "Number of injected source files." ); [id(0), helpstring("Return the injected source for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaInjectedSource **injectedSource); HRESULT Next( [in] ULONG celt, [out] IDiaInjectedSource ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumInjectedSources **ppenum); } [ object, uuid(E8368CA9-01D1-419d-AC0C-E31235DBDA9F), local, helpstring("IDiaEnumSegments Interface"), pointer_default(unique) ] interface IDiaEnumSegments: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSegments." ); PROPERTY_RO( LONG, Count, 1, "Number of segments." ); [id(0), helpstring("Return the segment for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSegment **segment); HRESULT Next( [in] ULONG celt, [out] IDiaSegment ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSegments **ppenum); } [ object, uuid(1994DEB2-2C82-4b1d-A57F-AFF424D54A68), local, helpstring("IDiaEnumSectionContribs Interface"), pointer_default(unique) ] interface IDiaEnumSectionContribs: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSectionContribs." ); PROPERTY_RO( LONG, Count, 1, "Number of section contributions." ); [id(0), helpstring("Return the section contribution for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSectionContrib **section); HRESULT Next( [in] ULONG celt, [out] IDiaSectionContrib ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSectionContribs **ppenum); } [ object, uuid(9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F), local, helpstring("IDiaEnumFrameData Interface"), pointer_default(unique) ] interface IDiaEnumFrameData: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumFrameData." ); PROPERTY_RO( LONG, Count, 1, "Number of frames." ); [id(0), helpstring("Return the frame for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaFrameData **frame); HRESULT Next( [in] ULONG celt, [out] IDiaFrameData ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumFrameData **ppenum); // // The following two by-address lookups do not reposition the enumeration // [helpstring("Return the frame for the given relative virtual address.")] HRESULT frameByRVA( [in] DWORD relativeVirtualAddress, [out, retval]IDiaFrameData **frame); [helpstring("Return the frame for the given virtual address.")] HRESULT frameByVA( [in] ULONGLONG virtualAddress, [out, retval]IDiaFrameData **frame); } [ object, uuid(486943E8-D187-4a6b-A3C4-291259FFF60D), local, helpstring("IDiaEnumDebugStreamData Interface"), pointer_default(unique) ] interface IDiaEnumDebugStreamData: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumDebugStreamData." ); PROPERTY_RO( LONG, Count, 1, "Number of elements in the stream." ); PROPERTY_RO( BSTR, name, 2, "Stream name." ); [id(0), helpstring("Return the element for the given index.")] HRESULT Item( [in] DWORD index, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); HRESULT Next( [in] ULONG celt, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumDebugStreamData **ppenum); } [ object, uuid(08CBB41E-47A6-4f87-92F1-1C9C87CED044), local, helpstring("IDiaEnumDebugStreams Interface"), pointer_default(unique) ] interface IDiaEnumDebugStreams: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumDebugStreams." ); PROPERTY_RO( LONG, Count, 1, "Number of streams." ); [id(0), helpstring("Return the stream for the given index.")] HRESULT Item([in] VARIANT index, [out, retval]IDiaEnumDebugStreamData **stream); HRESULT Next( [in] ULONG celt, [out] IDiaEnumDebugStreamData ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumDebugStreams **ppenum); } struct DiaAddressMapEntry { DWORD rva; DWORD rvaTo; }; [ object, uuid(B62A2E7A-067A-4ea3-B598-04C09717502C), local, helpstring("IDiaAddressMap Interface"), pointer_default(unique) ] interface IDiaAddressMap: IUnknown { PROPERTY_RW( BOOL, addressMapEnabled, 3, "Enable address translations." ); PROPERTY_RW( BOOL, relativeVirtualAddressEnabled, 4, "Enable relative virtual address computations."); PROPERTY_RW( DWORD, imageAlign, 5, "Original image alignment." ); HRESULT set_imageHeaders( [in] DWORD cbData, [in, size_is(cbData)] BYTE *pbData, // actual type is IMAGE_SECTION_HEADER[] [in] BOOL originalHeaders ); // true: headers are original, that is, they match the debug symbols // false: headers are current, that is, they match the image HRESULT set_addressMap( [in] DWORD cData, // number of entries in rva map [in, size_is(cData)] struct DiaAddressMapEntry *pData, // rva map [in] BOOL imageToSymbols ); // true: map from image to symbols (omapt) // false: map from symbols to image (omapf) }; [ object, uuid(67138B34-79CD-4b42-B74A-A18ADBB799DF), local, helpstring("IDiaSession Interface"), pointer_default(unique) ] interface IDiaSession: IUnknown { PROPERTY_RW( ULONGLONG, loadAddress, 1, "Dll/Exe load address." ); PROPERTY_RO( IDiaSymbol*, globalScope, 2, "Global scope (exe) symbol." ); HRESULT getEnumTables( [out] IDiaEnumTables** ppEnumTables ); HRESULT getSymbolsByAddr( [out] IDiaEnumSymbolsByAddr** ppEnumbyAddr ); // // Queries that return sets of symbols // HRESULT findChildren( [in] IDiaSymbol* parent, [in] enum SymTagEnum symtag, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSymbols** ppResult ); HRESULT findSymbolByAddr ( [in] DWORD isect, [in] DWORD offset, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByRVA ( [in] DWORD rva, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByVA ( [in] ULONGLONG va, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByToken ( [in] ULONG token, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT symsAreEquiv( [in] IDiaSymbol* symbolA, [in] IDiaSymbol* symbolB ); HRESULT symbolById( [in] DWORD id, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByRVAEx ( [in] DWORD rva, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol, [out] long* displacement ); HRESULT findSymbolByVAEx ( [in] ULONGLONG va, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol, [out] long* displacement ); // // Queries that return source file results // HRESULT findFile( [in] IDiaSymbol* pCompiland, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSourceFiles** ppResult ); HRESULT findFileById( [in] DWORD uniqueId, [out] IDiaSourceFile** ppResult ); // // Queries that return line number results // HRESULT findLines( [in] IDiaSymbol* compiland, [in] IDiaSourceFile* file, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByAddr( [in] DWORD seg, [in] DWORD offset, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByRVA( [in] DWORD rva, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByVA( [in] ULONGLONG va, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByLinenum( [in] IDiaSymbol* compiland, [in] IDiaSourceFile* file, [in] DWORD linenum, [in] DWORD column, [out] IDiaEnumLineNumbers** ppResult ); // // Queries that return injected source // HRESULT findInjectedSource( [in] LPCOLESTR srcFile, [out] IDiaEnumInjectedSources** ppResult ); HRESULT getEnumDebugStreams( [out] IDiaEnumDebugStreams** ppEnumDebugStreams ); }; /* * Table Columns * * Symbols - a symbol will have values in some subset of the fields */ [ object, uuid(cb787b2f-bd6c-4635-ba52-933126bd2dcd), local, helpstring("IDiaSymbol Interface"), pointer_default(unique) ] interface IDiaSymbol: IUnknown { PROPERTY_RO( DWORD, symIndexId, 0, "Unique symbol identifier." ); PROPERTY_RO( DWORD, symTag, 1, "Symbol kind tag." ); PROPERTY_RO( BSTR, name, 2, "Name" ); PROPERTY_RO( IDiaSymbol*, lexicalParent, 3, "Lexical parent symbol."); PROPERTY_RO( IDiaSymbol*, classParent, 4, "."); PROPERTY_RO( IDiaSymbol*, type, 5, "."); PROPERTY_RO( DWORD, dataKind, 6, "."); PROPERTY_RO( DWORD, locationType, 7, "."); PROPERTY_RO( DWORD, addressSection, 8, "."); PROPERTY_RO( DWORD, addressOffset, 9, "."); PROPERTY_RO( DWORD, relativeVirtualAddress, 10, "."); PROPERTY_RO( ULONGLONG, virtualAddress, 11, "."); PROPERTY_RO( DWORD, registerId, 12, "."); PROPERTY_RO( LONG, offset, 13, "."); PROPERTY_RO( ULONGLONG, length, 14, "."); PROPERTY_RO( DWORD, slot, 15, "."); PROPERTY_RO( BOOL, volatileType, 16, "."); PROPERTY_RO( BOOL, constType, 17, "."); PROPERTY_RO( BOOL, unalignedType, 18, "."); PROPERTY_RO( DWORD, access, 19, "."); PROPERTY_RO( BSTR, libraryName, 20, "."); PROPERTY_RO( DWORD, platform, 21, "."); PROPERTY_RO( DWORD, language, 22, "."); PROPERTY_RO( BOOL, editAndContinueEnabled, 23, "."); PROPERTY_RO( DWORD, frontEndMajor, 24, "."); PROPERTY_RO( DWORD, frontEndMinor, 25, "."); PROPERTY_RO( DWORD, frontEndBuild, 26, "."); PROPERTY_RO( DWORD, backEndMajor, 27, "."); PROPERTY_RO( DWORD, backEndMinor, 28, "."); PROPERTY_RO( DWORD, backEndBuild, 29, "."); PROPERTY_RO( BSTR, sourceFileName, 30, "."); PROPERTY_RO( BSTR, unused, 31, "."); PROPERTY_RO( DWORD, thunkOrdinal, 32, "."); PROPERTY_RO( LONG, thisAdjust, 33, "."); PROPERTY_RO( DWORD, virtualBaseOffset, 34, "."); PROPERTY_RO( BOOL, virtual, 35, "."); PROPERTY_RO( BOOL, intro, 36, "."); PROPERTY_RO( BOOL, pure, 37, "."); PROPERTY_RO( DWORD, callingConvention, 38, "."); PROPERTY_RO( VARIANT, value, 39, "."); PROPERTY_RO( DWORD, baseType, 40, "."); PROPERTY_RO( DWORD, token, 41, "."); PROPERTY_RO( DWORD, timeStamp, 42, "."); PROPERTY_RO( GUID, guid, 43, "."); PROPERTY_RO( BSTR, symbolsFileName, 44, "."); PROPERTY_RO( BOOL, reference, 46, "."); PROPERTY_RO( DWORD, count, 47, "."); PROPERTY_RO( DWORD, bitPosition, 49, "."); PROPERTY_RO( IDiaSymbol*, arrayIndexType, 50, "."); PROPERTY_RO( BOOL, packed, 51, "."); PROPERTY_RO( BOOL, constructor, 52, "."); PROPERTY_RO( BOOL, overloadedOperator, 53, "."); PROPERTY_RO( BOOL, nested, 54, "."); PROPERTY_RO( BOOL, hasNestedTypes, 55, "."); PROPERTY_RO( BOOL, hasAssignmentOperator, 56, "."); PROPERTY_RO( BOOL, hasCastOperator, 57, "."); PROPERTY_RO( BOOL, scoped, 58, "."); PROPERTY_RO( BOOL, virtualBaseClass, 59, "."); PROPERTY_RO( BOOL, indirectVirtualBaseClass, 60, "."); PROPERTY_RO( LONG, virtualBasePointerOffset, 61, "."); PROPERTY_RO( IDiaSymbol*, virtualTableShape, 62, "."); PROPERTY_RO( DWORD, lexicalParentId, 64, "Lexical parent symbol."); PROPERTY_RO( DWORD, classParentId, 65, "."); PROPERTY_RO( DWORD, typeId, 66, "."); PROPERTY_RO( DWORD, arrayIndexTypeId, 67, "."); PROPERTY_RO( DWORD, virtualTableShapeId, 68, "."); PROPERTY_RO( BOOL, code, 69, "Symbol refers to a code address." ); PROPERTY_RO( BOOL, function, 70, "Symbol refers to a function." ); PROPERTY_RO( BOOL, managed, 71, "Symbol refers to managed code." ); PROPERTY_RO( BOOL, msil, 72, "Symbol refers to MSIL code." ); PROPERTY_RO( DWORD, virtualBaseDispIndex, 73, "."); PROPERTY_RO( BSTR, undecoratedName, 74, "."); PROPERTY_RO( DWORD, age, 75, "PDB file age." ); PROPERTY_RO( DWORD, signature, 76, "Signature." ); PROPERTY_RO( BOOL, compilerGenerated, 77, "Symbol is compiler generated." ); PROPERTY_RO( BOOL, addressTaken, 78, "Symbol is address taken." ); PROPERTY_RO( DWORD, rank, 79, "Rank of FORTRAN multi-dimension array." ); PROPERTY_RO( IDiaSymbol*, lowerBound, 80, "Lower bound of a FORTRAN array dimension."); PROPERTY_RO( IDiaSymbol*, upperBound, 81, "Upper bound of a FORTRAN array dimension."); PROPERTY_RO( DWORD, lowerBoundId, 82, "Symbol Id of the lower bound of a FORTRAN array dimension."); PROPERTY_RO( DWORD, upperBoundId, 83, "Symbol Id of the upper bound of a FORTRAN array dimension."); HRESULT get_dataBytes( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); HRESULT findChildren( [in] enum SymTagEnum symtag, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSymbols** ppResult ); PROPERTY_RO( DWORD, targetSection, 84, "Thunk target address section."); PROPERTY_RO( DWORD, targetOffset, 85, "Thunk target address offset."); PROPERTY_RO( DWORD, targetRelativeVirtualAddress, 86, "Thunk target RVA."); PROPERTY_RO( ULONGLONG, targetVirtualAddress, 87, "Thunk target virtual address."); PROPERTY_RO( DWORD, machineType, 88, "Target machine type." ); PROPERTY_RO( DWORD, oemId, 89, "Identifier of manufacturer."); PROPERTY_RO( DWORD, oemSymbolId, 90, "Manufacturer defined custom symbol identifier." ); HRESULT get_types( [in] DWORD cTypes, [out] DWORD *pcTypes, [out, size_is(cTypes, )] IDiaSymbol**pTypes ); HRESULT get_typeIds( [in] DWORD cTypeIds, [out] DWORD *pcTypeIds, [out, size_is(cTypeIds)] DWORD *pdwTypeIds ); PROPERTY_RO( IDiaSymbol*, objectPointerType, 91, "Type of method's object pointer." ); PROPERTY_RO( DWORD, udtKind, 92, "Struct, union or class."); HRESULT get_undecoratedNameEx( [in] DWORD undecorateOptions, [out] BSTR* name ); HRESULT get_liveLVarInstances( // Return instances of live locals at va [in] ULONGLONG va, // pass 0 to get all possible instances [in] DWORD cInstances, [out] DWORD *pcInstances, [out] [size_is(cInstances)] IDiaLVarInstance** instances ); PROPERTY_RO( BOOL, noReturn, 93, "NoReturn" ); PROPERTY_RO( BOOL, customCallingConvention, 94, "uses custom calling convention" ); PROPERTY_RO( BOOL, noInline, 95, "NoInline" ); PROPERTY_RO( BOOL, optimizedCodeDebugInfo, 96, "has debugging Info for optimized code" ); PROPERTY_RO( BOOL, notReached, 97, "Unreachable" ); PROPERTY_RO( BOOL, interruptReturn, 98, "return from interrupt" ); PROPERTY_RO( BOOL, farReturn, 99, "far return" ); PROPERTY_RO( BOOL, isStatic, 100, "static function" ); PROPERTY_RO( BOOL, hasDebugInfo, 101, "hasDebugInfo" ); PROPERTY_RO( BOOL, isLTCG, 102, "Compiled With LTCG" ); PROPERTY_RO( BOOL, isDataAligned, 103, "Is it compiled with -Bzalign" ); PROPERTY_RO( BOOL, hasSecurityChecks, 104, "hasSecurityChecks" ); PROPERTY_RO( BSTR, compilerName, 105, "compiler name" ); PROPERTY_RO( BOOL, hasAlloca, 106, "hasAlloca" ); PROPERTY_RO( BOOL, hasSetJump, 107, "hasSetJump" ); PROPERTY_RO( BOOL, hasLongJump, 108, "hasLongJump" ); PROPERTY_RO( BOOL, hasInlAsm, 109, "hasInlineAssembly" ); PROPERTY_RO( BOOL, hasEH, 110, "hasC++EH" ); PROPERTY_RO( BOOL, hasSEH, 111, "hasStructuredEH" ); PROPERTY_RO( BOOL, hasEHa, 112, "hasAsynchronousEH" ); PROPERTY_RO( BOOL, isNaked, 113, "IsNaked" ); PROPERTY_RO( BOOL, isAggregated, 114, "isAggregated" ); PROPERTY_RO( BOOL, isSplitted, 115, "isSplitted" ); PROPERTY_RO( IDiaSymbol *, container, 116, "container" ); PROPERTY_RO( BOOL, inlSpec, 117, "WasSpecifiedAsInline" ); PROPERTY_RO( BOOL, noStackOrdering, 118, "BufferChecksWithoutOrdering" ); PROPERTY_RO( IDiaSymbol *, virtualBaseTableType, 119, "Type of Virtual Base Offset Table" ); PROPERTY_RO( BOOL, hasManagedCode, 120, "hasManagedCode" ); PROPERTY_RO( BOOL, isHotpatchable, 121, "isHotpatchable" ); PROPERTY_RO( BOOL, isCVTCIL, 122, "isCVTCIL" ); PROPERTY_RO( BOOL, isMSILNetmodule, 123, "isMSILNetmodule" ); PROPERTY_RO( BOOL, isCTypes, 124, "isCTypes" ); PROPERTY_RO( BOOL, isStripped, 125, "isStripped" ); }; // // SourceFiles // [ object, uuid(A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD), local, helpstring("IDiaSourceFile Interface"), pointer_default(unique) ] interface IDiaSourceFile: IUnknown { PROPERTY_RO( DWORD, uniqueId, 2, "Unique id for the source file (in this data store)." ); PROPERTY_RO( BSTR, fileName, 3, "." ); PROPERTY_RO( DWORD, checksumType, 4, "." ); PROPERTY_RO( IDiaEnumSymbols*, compilands, 5, "." ); HRESULT get_checksum( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); }; // // LineNumbers // [ object, uuid(B388EB14-BE4D-421d-A8A1-6CF7AB057086), local, helpstring("IDiaLineNumber Interface"), pointer_default(unique) ] interface IDiaLineNumber: IUnknown { PROPERTY_RO( IDiaSymbol*, compiland, 1, "." ); PROPERTY_RO( IDiaSourceFile*, sourceFile, 2, "." ); PROPERTY_RO( DWORD, lineNumber, 3, "." ); PROPERTY_RO( DWORD, lineNumberEnd, 4, "." ); PROPERTY_RO( DWORD, columnNumber, 5, "." ); PROPERTY_RO( DWORD, columnNumberEnd, 6, "." ); PROPERTY_RO( DWORD, addressSection, 7, "." ); PROPERTY_RO( DWORD, addressOffset, 8, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 9, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 10, "." ); PROPERTY_RO( DWORD, length, 11, "." ); PROPERTY_RO( DWORD, sourceFileId, 12, "." ); PROPERTY_RO( BOOL, statement, 13, "." ); PROPERTY_RO( DWORD, compilandId, 14, "." ); }; // // SectionContributions // [ object, uuid(0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857), local, helpstring("IDiaSectionContrib Interface"), pointer_default(unique) ] interface IDiaSectionContrib: IUnknown { PROPERTY_RO( IDiaSymbol*, compiland, 1, "." ); PROPERTY_RO( DWORD, addressSection, 2, "." ); PROPERTY_RO( DWORD, addressOffset, 3, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 4, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 5, "." ); PROPERTY_RO( DWORD, length, 6, "." ); // 7 PROPERTY_RO( BOOL, notPaged, 8, "."); PROPERTY_RO( BOOL, code, 9, "."); PROPERTY_RO( BOOL, initializedData, 10, "."); PROPERTY_RO( BOOL, uninitializedData, 11, "."); PROPERTY_RO( BOOL, remove, 12, "."); PROPERTY_RO( BOOL, comdat, 13, "."); PROPERTY_RO( BOOL, discardable, 14, "."); PROPERTY_RO( BOOL, notCached, 15, "."); PROPERTY_RO( BOOL, share, 16, "."); PROPERTY_RO( BOOL, execute, 17, "."); PROPERTY_RO( BOOL, read, 18, "."); PROPERTY_RO( BOOL, write, 19, "."); PROPERTY_RO( DWORD, dataCrc, 20, "." ); PROPERTY_RO( DWORD, relocationsCrc, 21, "." ); PROPERTY_RO( DWORD, compilandId, 22, "." ); PROPERTY_RO( BOOL, code16bit, 23, "."); }; // // SegmentMap // [ object, uuid(0775B784-C75B-4449-848B-B7BD3159545B), local, helpstring("IDiaSegment Interface"), pointer_default(unique) ] interface IDiaSegment: IUnknown { PROPERTY_RO( DWORD, frame, 1, "Frame." ); PROPERTY_RO( DWORD, offset, 2, "Offset in physical section." ); PROPERTY_RO( DWORD, length, 3, "Length in bytes of segment." ); PROPERTY_RO( BOOL, read, 4, "Read allowed." ); PROPERTY_RO( BOOL, write, 5, "Write allowed." ); PROPERTY_RO( BOOL, execute, 6, "Execute allowed." ); PROPERTY_RO( DWORD, addressSection, 7, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 8, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 9, "." ); }; // // InjectedSource // [ object, uuid(AE605CDC-8105-4a23-B710-3259F1E26112), local, helpstring("IDiaInjectedSource Interface"), pointer_default(unique) ] interface IDiaInjectedSource: IUnknown { PROPERTY_RO( DWORD, crc, 1, "CRC of source bytes." ); PROPERTY_RO( ULONGLONG, length, 2, "Length of source in bytes." ); PROPERTY_RO( BSTR, filename, 3, "Source filename." ); PROPERTY_RO( BSTR, objectFilename, 4, "Object filename." ); PROPERTY_RO( BSTR, virtualFilename, 5, "Virtual filename." ); PROPERTY_RO( DWORD, sourceCompression, 6, "Source compression algorithm." ); HRESULT get_source( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); }; [ object, uuid(0e425a73-3ced-4964-8cf0-a6caf11bd818), local, helpstring("IDiaLVarInstance Interface"), pointer_default(unique) ] interface IDiaLVarInstance : IUnknown { PROPERTY_RO( IDiaSymbol *, symbol, 1, "Symbols whose instance is defined" ); PROPERTY_RO( DWORD, sectionStart, 2, "Section addrStart" ); PROPERTY_RO( DWORD, offsetStart, 3, "Offset addrStart" ); PROPERTY_RO( DWORD, rvaStart, 4, "RVA addrStart" ); PROPERTY_RO( ULONGLONG, vaStart, 5, "VA addrStart" ); PROPERTY_RO( DWORD, rvaEnd, 6, "RVA addrEnd" ); PROPERTY_RO( DWORD, sectionEnd, 7, "Section addrEnd" ); PROPERTY_RO( DWORD, offsetEnd, 8, "Offset addrEnd" ); PROPERTY_RO( ULONGLONG, vaEnd, 9, "VA addrEnd" ); PROPERTY_RO( BSTR, program, 10, "Program to evaluate the symbol" ); HRESULT get_livenessAt( // Tells you if the instance is live at va [in] ULONGLONG va, [out] BOOL *pfLive ); HRESULT get_location( [in] IDiaStackFrame *pFrame, [out] BOOL *pfLocInRegister, [out] DWORD *pdwRegId, [out] ULONGLONG *pva ); }; // // Errors returned by IDiaFrameData::execute // enum { E_DIA_INPROLOG // cannot execute stack frame when in prolog =((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(100))) ), E_DIA_SYNTAX, // error parsing frame program E_DIA_FRAME_ACCESS, // error accessing registers or memory E_DIA_VALUE, // error in computer a value (e.g., divide by zero) }; [ object, uuid(97F0F1A6-E04E-4ea4-B4F9-B0D0E8D90F5D), local, helpstring("IDiaStackWalkFrame Interface"), pointer_default(unique) ] interface IDiaStackWalkFrame: IUnknown { PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, "Register value." ); HRESULT readMemory( [in] ULONGLONG va, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); HRESULT searchForReturnAddress( [in] IDiaFrameData* frame, [out] ULONGLONG* returnAddress ); HRESULT searchForReturnAddressStart( [in] IDiaFrameData* frame, [in] ULONGLONG startAddress, [out] ULONGLONG* returnAddress ); }; [ object, uuid(A39184B7-6A36-42de-8EEC-7DF9F3F59F33), local, helpstring("IDiaFrameData Interface"), pointer_default(unique) ] interface IDiaFrameData: IUnknown { PROPERTY_RO( DWORD, addressSection, 2, "." ); PROPERTY_RO( DWORD, addressOffset, 3, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 4, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 5, "." ); PROPERTY_RO( DWORD, lengthBlock, 6, "." ); PROPERTY_RO( DWORD, lengthLocals, 7, "." ); PROPERTY_RO( DWORD, lengthParams, 8, "." ); PROPERTY_RO( DWORD, maxStack, 9, "." ); PROPERTY_RO( DWORD, lengthProlog, 10, "." ); PROPERTY_RO( DWORD, lengthSavedRegisters, 11, "." ); PROPERTY_RO( BSTR, program, 12, "." ); PROPERTY_RO( BOOL, systemExceptionHandling, 13, "." ); PROPERTY_RO( BOOL, cplusplusExceptionHandling, 14, "." ); PROPERTY_RO( BOOL, functionStart, 15, "." ); PROPERTY_RO( BOOL, allocatesBasePointer, 16, "." ); PROPERTY_RO( DWORD, type, 17, "." ); PROPERTY_RO( IDiaFrameData*, functionParent, 18, "Frame data for enclosing function."); HRESULT execute( IDiaStackWalkFrame* frame ); } // // IDiaImageData // // Some debug streams (XDATA, PDATA) contain copies of data also stored in the image. The // stream data objects (IDiaEnumDebugStreamData) can be QI'ed for their IDiaImageData. [ object, uuid(C8E40ED2-A1D9-4221-8692-3CE661184B44), local, helpstring("IDiaImageData Interface"), pointer_default(unique) ] interface IDiaImageData: IUnknown { PROPERTY_RO( DWORD, relativeVirtualAddress, 2, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 3, "." ); PROPERTY_RO( ULONGLONG, imageBase, 4, "." ); } // // IDiaTable // Supports enumerating the members of the table // [ object, uuid(4A59FB77-ABAC-469b-A30B-9ECC85BFEF14), local, helpstring("IDiaTable Interface"), pointer_default(unique) ] interface IDiaTable: IEnumUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaTable." ); PROPERTY_RO( BSTR, name, 1, "Table name." ); PROPERTY_RO( LONG, Count, 2, "Number of table entries." ); [id(0), helpstring("Return the table element for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IUnknown **element); // ### IDispatch? }; [ object, uuid(C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E), local, helpstring("IDiaEnumTables Interface"), pointer_default(unique) ] interface IDiaEnumTables: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumTables." ); PROPERTY_RO( LONG, Count, 1, "Number of tables." ); [id(0), helpstring("Return the table for the given index or name.")] HRESULT Item([in] VARIANT index, [out, retval]IDiaTable **table); HRESULT Next( ULONG celt, IDiaTable ** rgelt, ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumTables **ppenum); }; #ifndef MSAGNOSTIC [ uuid(106173A0-0173-4e5c-84E7-E915422BE997), version(2.0), helpstring("dia 2.0 Type Library") ] #else [ uuid(7e49f738-1f41-46fd-87c2-badce1ce096c), version(2.0), helpstring("intdia 2.0 Type Library") ] #endif library Dia2Lib { importlib("stdole2.tlb"); [ #ifndef MSAGNOSTIC uuid(bce36434-2c24-499e-bf49-8bd99b0eeb68), #else uuid(a287f295-608c-485a-942e-b91ec87991fe), #endif helpstring("DiaSource Class") ] coclass DiaSource { [default] interface IDiaDataSource; }; // // DiaSourceAlt - a DiaDataSource object that does not use the system heap. // // A process may either make DiaSourceAlt objects or DiaSource objects, but not both. // When using DiaSourceAlt all returned BSTR's are really LPCOLESTR and should not be // used with other BSTR management routines, in particular they must be released using // LocalFree( bstr ) [ #ifndef MSAGNOSTIC uuid(1fbd5ec4-b8e4-4d94-9efe-7ccaf9132c98), #else uuid(0676f7d4-abc2-4eef-869e-58f1378c86f1), #endif helpstring("Local Heap DiaSource Class") ] coclass DiaSourceAlt { [default] interface IDiaDataSource; }; // General stack walking API [ #ifndef MSAGNOSTIC uuid(37dfdbcc-40a5-4f4a-8523-123c746d38f0), #else uuid(08db23f4-7aa8-4748-a623-858a6d872c2b), #endif helpstring("General Stackwalk Class") ] coclass DiaStackWalker { [default] interface IDiaStackWalker; }; }; // // DebugInfoTable // // Each id identifies an underlying table of debug information // const LPOLESTR DiaTable_Symbols = L"Symbols"; const LPOLESTR DiaTable_Sections = L"Sections"; const LPOLESTR DiaTable_SrcFiles = L"SourceFiles"; const LPOLESTR DiaTable_LineNums = L"LineNumbers"; const LPOLESTR DiaTable_SegMap = L"SegmentMap"; const LPOLESTR DiaTable_Dbg = L"Dbg"; const LPOLESTR DiaTable_InjSrc = L"InjectedSource"; const LPOLESTR DiaTable_FrameData = L"FrameData"; // Generic property broweser interface. [ object, uuid(9d416f9c-e184-45b2-a4f0-ce517f719e9b), local, helpstring("IDiaPropertyStorage Interface"), pointer_default(unique) ] interface IDiaPropertyStorage: IUnknown { HRESULT ReadMultiple( [in] ULONG cpspec, // Count of properties being read [in, size_is(cpspec)] PROPSPEC const *rgpspec, // Array of the properties to be read [out, size_is(cpspec)]PROPVARIANT *rgvar // Array of PVARIANTs containing // the property values on return ); HRESULT ReadPropertyNames( [in] ULONG cpropid, // Number of elements in rgpropid [in, size_is( cpropid )] PROPID const *rgpropid, // Property identifiers for // which names are to be retrieved [in,out, size_is( cpropid )] BSTR *rglpwstrName // Array of returned string names ); HRESULT Enum( [out] IEnumSTATPROPSTG **ppenum //Pointer to output variable // that receives the IEnumPROPSPEC // interface pointer ); HRESULT ReadDWORD( [in] PROPID id, // property to be read [out] DWORD* pValue // the property value on return ); HRESULT ReadLONG( [in] PROPID id, // property to be read [out] LONG* pValue // the property value on return ); HRESULT ReadBOOL( [in] PROPID id, // property to be read [out] BOOL* pValue // the property value on return ); HRESULT ReadULONGLONG( [in] PROPID id, // property to be read [out] ULONGLONG* pValue // the property value on return ); HRESULT ReadBSTR( [in] PROPID id, // property to be read [out] BSTR* pValue // the property value on return ); } [ object, uuid(5edbc96d-cdd6-4792-afbe-cc89007d9610), local, helpstring("IDiaStackFrame Interface"), pointer_default(unique) ] interface IDiaStackFrame: IUnknown { PROPERTY_RO( DWORD, type, 1, "type" ); PROPERTY_RO( ULONGLONG, base, 2, "Base of the stack frame" ); PROPERTY_RO( DWORD, size, 3, "size of frame in bytes" ); PROPERTY_RO( ULONGLONG, returnAddress, 4, "return address of the frame" ); PROPERTY_RO( ULONGLONG, localsBase, 5, "base of locals" ); PROPERTY_RO( DWORD, lengthLocals, 6, "cbLocals" ); PROPERTY_RO( DWORD, lengthParams, 7, "cbParams" ); PROPERTY_RO( DWORD, lengthProlog, 8, "cbProlog" ); PROPERTY_RO( DWORD, lengthSavedRegisters, 9, "cbSavedRegs" ); PROPERTY_RO( BOOL, systemExceptionHandling, 10, "fHasSEH" ); PROPERTY_RO( BOOL, cplusplusExceptionHandling, 11, "fHasEH" ); PROPERTY_RO( BOOL, functionStart, 12, "funcStart" ); PROPERTY_RO( BOOL, allocatesBasePointer, 13, "fUsesBP" ); PROPERTY_RO( DWORD, maxStack, 14, "maxStack" ); PROPERTY_ARRAY_RO( ULONGLONG, DWORD, registerValue, 15, "Register value." ); HRESULT get_rawLVarInstanceValue( [in] IDiaLVarInstance *pInstance, [in] DWORD cbDataMax, [out] DWORD *pcbData, [out] [size_is(cbDataMax)] BYTE *pbData ); HRESULT get_lVarInstanceLocation( [in] IDiaLVarInstance *pInstance, [out] BOOL *pfLocInRegister, [out] DWORD *pdwRegId, [out] ULONGLONG *pva ); } [ object, uuid(ec9d461d-ce74-4711-a020-7d8f9a1dd255), local, helpstring("IDiaEnumStackFrames Interface"), pointer_default(unique) ] interface IDiaEnumStackFrames: IUnknown { HRESULT Next( [in] ULONG celt, [out] IDiaStackFrame ** rgelt, [out] ULONG * pceltFetched ); HRESULT Reset(); } typedef struct { DWORD ulOffStart; // offset 1st byte of function code DWORD cbProcSize; // # bytes in function DWORD cdwLocals; // # bytes in locals/4 WORD cdwParams; // # bytes in params/4 WORD cdwFlags; // Following stuff ... /* WORD cbProlog : 8; // # bytes in prolog WORD cbRegs : 3; // # regs saved WORD fHasSEH : 1; // TRUE if SEH in func WORD fUseBP : 1; // TRUE if EBP has been allocated WORD reserved : 1; // reserved for future use WORD cbFrame : 2; // frame type */ } FPODATA; [ object, uuid(feb0155d-35a8-42d4-8328-bf458f429a3a), local, helpstring("IDiaStackWalkHelper Interface"), pointer_default(unique) ] interface IDiaStackWalkHelper: IUnknown { PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, "Register value." ); HRESULT readMemory( // Read memory for DIA [in] enum MemoryTypeEnum type, [in] ULONGLONG va, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); HRESULT searchForReturnAddress( // search return address for DIA, return E_NOTIMPL to use DIA default [in] IDiaFrameData* frame, [out] ULONGLONG* returnAddress ); HRESULT searchForReturnAddressStart( // search return address for DIA, return E_NOTIMPL to use DIA default [in] IDiaFrameData* frame, [in] ULONGLONG startAddress, [out] ULONGLONG* returnAddress ); HRESULT frameForVA( // Get frame data for this address [in] ULONGLONG va, [out] IDiaFrameData **ppFrame ); HRESULT symbolForVA( // Get symbol at this address, must be a SymTagFunctionType! [in] ULONGLONG va, [out] IDiaSymbol **ppSymbol ); HRESULT pdataForVA( // Get PDATA for this address [in] ULONGLONG va, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData)] BYTE *pbData ); HRESULT imageForVA( // Get information about an image [in] ULONGLONG vaContext, // An address in the image [out] ULONGLONG *pvaImageStart // Beginning of the image ); } [ object, uuid(5485216b-a54c-469f-9670-52b24d5229bb), local, helpstring("IDiaStackWalker Interface"), pointer_default(unique) ] interface IDiaStackWalker: IUnknown { HRESULT getEnumFrames( // Gives you frame enumerator for x86 [in] IDiaStackWalkHelper *pHelper, [out] IDiaEnumStackFrames **ppEnum ); HRESULT getEnumFrames2( // Gives frame enumerator for processor specified by dwMachineId [in] enum CV_CPU_TYPE_e cpuid, [in] IDiaStackWalkHelper *pHelper, [out] IDiaEnumStackFrames **ppEnum ); } [ object, uuid(8222c490-507b-4bef-b3bd-41dca7b5934c), local, helpstring("IDiaStackWalkHelper Interface"), pointer_default(unique) ] interface IDiaStackWalkHelper2 : IDiaStackWalkHelper { } [ object, uuid(7c185885-a015-4cac-9411-0f4fb39b1f3a), local, helpstring("IDiaStackWalker2 Interface"), pointer_default(unique) ] interface IDiaStackWalker2 : IDiaStackWalker { } ================================================ FILE: Addition/DIASDK2005/include/cvconst.h ================================================ // cvconst.h - codeview constant definitions //----------------------------------------------------------------- // // Copyright Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- #ifndef _CVCONST_H_ #define _CVCONST_H_ // Enumeration for function call type typedef enum CV_call_e { CV_CALL_NEAR_C = 0x00, // near right to left push, caller pops stack CV_CALL_FAR_C = 0x01, // far right to left push, caller pops stack CV_CALL_NEAR_PASCAL = 0x02, // near left to right push, callee pops stack CV_CALL_FAR_PASCAL = 0x03, // far left to right push, callee pops stack CV_CALL_NEAR_FAST = 0x04, // near left to right push with regs, callee pops stack CV_CALL_FAR_FAST = 0x05, // far left to right push with regs, callee pops stack CV_CALL_SKIPPED = 0x06, // skipped (unused) call index CV_CALL_NEAR_STD = 0x07, // near standard call CV_CALL_FAR_STD = 0x08, // far standard call CV_CALL_NEAR_SYS = 0x09, // near sys call CV_CALL_FAR_SYS = 0x0a, // far sys call CV_CALL_THISCALL = 0x0b, // this call (this passed in register) CV_CALL_MIPSCALL = 0x0c, // Mips call CV_CALL_GENERIC = 0x0d, // Generic call sequence CV_CALL_ALPHACALL = 0x0e, // Alpha call CV_CALL_PPCCALL = 0x0f, // PPC call CV_CALL_SHCALL = 0x10, // Hitachi SuperH call CV_CALL_ARMCALL = 0x11, // ARM call CV_CALL_AM33CALL = 0x12, // AM33 call CV_CALL_TRICALL = 0x13, // TriCore Call CV_CALL_SH5CALL = 0x14, // Hitachi SuperH-5 call CV_CALL_M32RCALL = 0x15, // M32R Call CV_CALL_CLRCALL = 0x16, // clr call CV_CALL_RESERVED = 0x17 // first unused call enumeration // Do NOT add any more machine specific conventions. This is to be used for // calling conventions in the source only (e.g. __cdecl, __stdcall). } CV_call_e; // Values for the access protection of class attributes typedef enum CV_access_e { CV_private = 1, CV_protected = 2, CV_public = 3 } CV_access_e; typedef enum THUNK_ORDINAL { THUNK_ORDINAL_NOTYPE, // standard thunk THUNK_ORDINAL_ADJUSTOR, // "this" adjustor thunk THUNK_ORDINAL_VCALL, // virtual call thunk THUNK_ORDINAL_PCODE, // pcode thunk THUNK_ORDINAL_LOAD, // thunk which loads the address to jump to // via unknown means... // trampoline thunk ordinals - only for use in Trampoline thunk symbols THUNK_ORDINAL_TRAMP_INCREMENTAL, THUNK_ORDINAL_TRAMP_BRANCHISLAND, } THUNK_ORDINAL; enum CV_SourceChksum_t { CHKSUM_TYPE_NONE = 0, // indicates no checksum is available CHKSUM_TYPE_MD5, CHKSUM_TYPE_SHA1 }; // // DIA enums // enum SymTagEnum { SymTagNull, SymTagExe, SymTagCompiland, SymTagCompilandDetails, SymTagCompilandEnv, SymTagFunction, SymTagBlock, SymTagData, SymTagAnnotation, SymTagLabel, SymTagPublicSymbol, SymTagUDT, SymTagEnum, SymTagFunctionType, SymTagPointerType, SymTagArrayType, SymTagBaseType, SymTagTypedef, SymTagBaseClass, SymTagFriend, SymTagFunctionArgType, SymTagFuncDebugStart, SymTagFuncDebugEnd, SymTagUsingNamespace, SymTagVTableShape, SymTagVTable, SymTagCustom, SymTagThunk, SymTagCustomType, SymTagManagedType, SymTagDimension, SymTagMax }; enum LocationType { LocIsNull, LocIsStatic, LocIsTLS, LocIsRegRel, LocIsThisRel, LocIsEnregistered, LocIsBitField, LocIsSlot, LocIsIlRel, LocInMetaData, LocIsConstant, LocTypeMax }; enum DataKind { DataIsUnknown, DataIsLocal, DataIsStaticLocal, DataIsParam, DataIsObjectPtr, DataIsFileStatic, DataIsGlobal, DataIsMember, DataIsStaticMember, DataIsConstant }; enum UdtKind { UdtStruct, UdtClass, UdtUnion }; enum BasicType { btNoType = 0, btVoid = 1, btChar = 2, btWChar = 3, btInt = 6, btUInt = 7, btFloat = 8, btBCD = 9, btBool = 10, btLong = 13, btULong = 14, btCurrency = 25, btDate = 26, btVariant = 27, btComplex = 28, btBit = 29, btBSTR = 30, btHresult = 31 }; // enum describing the compile flag source language typedef enum CV_CFL_LANG { CV_CFL_C = 0x00, CV_CFL_CXX = 0x01, CV_CFL_FORTRAN = 0x02, CV_CFL_MASM = 0x03, CV_CFL_PASCAL = 0x04, CV_CFL_BASIC = 0x05, CV_CFL_COBOL = 0x06, CV_CFL_LINK = 0x07, CV_CFL_CVTRES = 0x08, CV_CFL_CVTPGD = 0x09, CV_CFL_CSHARP = 0x0A, // C# CV_CFL_VB = 0x0B, // Visual Basic CV_CFL_ILASM = 0x0C, // IL (as in CLR) ASM CV_CFL_JAVA = 0x0D, CV_CFL_JSCRIPT = 0x0E, CV_CFL_MSIL = 0x0F, // Unknown MSIL (LTCG of .NETMODULE) } CV_CFL_LANG; // enum describing target processor typedef enum CV_CPU_TYPE_e { CV_CFL_8080 = 0x00, CV_CFL_8086 = 0x01, CV_CFL_80286 = 0x02, CV_CFL_80386 = 0x03, CV_CFL_80486 = 0x04, CV_CFL_PENTIUM = 0x05, CV_CFL_PENTIUMII = 0x06, CV_CFL_PENTIUMPRO = CV_CFL_PENTIUMII, CV_CFL_PENTIUMIII = 0x07, CV_CFL_MIPS = 0x10, CV_CFL_MIPSR4000 = CV_CFL_MIPS, // don't break current code CV_CFL_MIPS16 = 0x11, CV_CFL_MIPS32 = 0x12, CV_CFL_MIPS64 = 0x13, CV_CFL_MIPSI = 0x14, CV_CFL_MIPSII = 0x15, CV_CFL_MIPSIII = 0x16, CV_CFL_MIPSIV = 0x17, CV_CFL_MIPSV = 0x18, CV_CFL_M68000 = 0x20, CV_CFL_M68010 = 0x21, CV_CFL_M68020 = 0x22, CV_CFL_M68030 = 0x23, CV_CFL_M68040 = 0x24, CV_CFL_ALPHA = 0x30, CV_CFL_ALPHA_21064 = 0x30, CV_CFL_ALPHA_21164 = 0x31, CV_CFL_ALPHA_21164A = 0x32, CV_CFL_ALPHA_21264 = 0x33, CV_CFL_ALPHA_21364 = 0x34, CV_CFL_PPC601 = 0x40, CV_CFL_PPC603 = 0x41, CV_CFL_PPC604 = 0x42, CV_CFL_PPC620 = 0x43, CV_CFL_PPCFP = 0x44, CV_CFL_PPCBE = 0x45, CV_CFL_SH3 = 0x50, CV_CFL_SH3E = 0x51, CV_CFL_SH3DSP = 0x52, CV_CFL_SH4 = 0x53, CV_CFL_SHMEDIA = 0x54, CV_CFL_ARM3 = 0x60, CV_CFL_ARM4 = 0x61, CV_CFL_ARM4T = 0x62, CV_CFL_ARM5 = 0x63, CV_CFL_ARM5T = 0x64, CV_CFL_ARM6 = 0x65, CV_CFL_ARM_XMAC = 0x66, CV_CFL_ARM_WMMX = 0x67, CV_CFL_OMNI = 0x70, CV_CFL_IA64 = 0x80, CV_CFL_IA64_1 = 0x80, CV_CFL_IA64_2 = 0x81, CV_CFL_CEE = 0x90, CV_CFL_AM33 = 0xA0, CV_CFL_M32R = 0xB0, CV_CFL_TRICORE = 0xC0, CV_CFL_X64 = 0xD0, CV_CFL_AMD64 = CV_CFL_X64, CV_CFL_EBC = 0xE0, CV_CFL_THUMB = 0xF0, } CV_CPU_TYPE_e; typedef enum CV_HREG_e { // Register subset shared by all processor types, // must not overlap with any of the ranges below, hence the high values CV_ALLREG_ERR = 30000, CV_ALLREG_TEB = 30001, CV_ALLREG_TIMER = 30002, CV_ALLREG_EFAD1 = 30003, CV_ALLREG_EFAD2 = 30004, CV_ALLREG_EFAD3 = 30005, CV_ALLREG_VFRAME= 30006, CV_ALLREG_HANDLE= 30007, CV_ALLREG_PARAMS= 30008, CV_ALLREG_LOCALS= 30009, CV_ALLREG_TID = 30010, CV_ALLREG_ENV = 30011, CV_ALLREG_CMDLN = 30012, // Register set for the Intel 80x86 and ix86 processor series // (plus PCODE registers) CV_REG_NONE = 0, CV_REG_AL = 1, CV_REG_CL = 2, CV_REG_DL = 3, CV_REG_BL = 4, CV_REG_AH = 5, CV_REG_CH = 6, CV_REG_DH = 7, CV_REG_BH = 8, CV_REG_AX = 9, CV_REG_CX = 10, CV_REG_DX = 11, CV_REG_BX = 12, CV_REG_SP = 13, CV_REG_BP = 14, CV_REG_SI = 15, CV_REG_DI = 16, CV_REG_EAX = 17, CV_REG_ECX = 18, CV_REG_EDX = 19, CV_REG_EBX = 20, CV_REG_ESP = 21, CV_REG_EBP = 22, CV_REG_ESI = 23, CV_REG_EDI = 24, CV_REG_ES = 25, CV_REG_CS = 26, CV_REG_SS = 27, CV_REG_DS = 28, CV_REG_FS = 29, CV_REG_GS = 30, CV_REG_IP = 31, CV_REG_FLAGS = 32, CV_REG_EIP = 33, CV_REG_EFLAGS = 34, CV_REG_TEMP = 40, // PCODE Temp CV_REG_TEMPH = 41, // PCODE TempH CV_REG_QUOTE = 42, // PCODE Quote CV_REG_PCDR3 = 43, // PCODE reserved CV_REG_PCDR4 = 44, // PCODE reserved CV_REG_PCDR5 = 45, // PCODE reserved CV_REG_PCDR6 = 46, // PCODE reserved CV_REG_PCDR7 = 47, // PCODE reserved CV_REG_CR0 = 80, // CR0 -- control registers CV_REG_CR1 = 81, CV_REG_CR2 = 82, CV_REG_CR3 = 83, CV_REG_CR4 = 84, // Pentium CV_REG_DR0 = 90, // Debug register CV_REG_DR1 = 91, CV_REG_DR2 = 92, CV_REG_DR3 = 93, CV_REG_DR4 = 94, CV_REG_DR5 = 95, CV_REG_DR6 = 96, CV_REG_DR7 = 97, CV_REG_GDTR = 110, CV_REG_GDTL = 111, CV_REG_IDTR = 112, CV_REG_IDTL = 113, CV_REG_LDTR = 114, CV_REG_TR = 115, CV_REG_PSEUDO1 = 116, CV_REG_PSEUDO2 = 117, CV_REG_PSEUDO3 = 118, CV_REG_PSEUDO4 = 119, CV_REG_PSEUDO5 = 120, CV_REG_PSEUDO6 = 121, CV_REG_PSEUDO7 = 122, CV_REG_PSEUDO8 = 123, CV_REG_PSEUDO9 = 124, CV_REG_ST0 = 128, CV_REG_ST1 = 129, CV_REG_ST2 = 130, CV_REG_ST3 = 131, CV_REG_ST4 = 132, CV_REG_ST5 = 133, CV_REG_ST6 = 134, CV_REG_ST7 = 135, CV_REG_CTRL = 136, CV_REG_STAT = 137, CV_REG_TAG = 138, CV_REG_FPIP = 139, CV_REG_FPCS = 140, CV_REG_FPDO = 141, CV_REG_FPDS = 142, CV_REG_ISEM = 143, CV_REG_FPEIP = 144, CV_REG_FPEDO = 145, CV_REG_MM0 = 146, CV_REG_MM1 = 147, CV_REG_MM2 = 148, CV_REG_MM3 = 149, CV_REG_MM4 = 150, CV_REG_MM5 = 151, CV_REG_MM6 = 152, CV_REG_MM7 = 153, CV_REG_XMM0 = 154, // KATMAI registers CV_REG_XMM1 = 155, CV_REG_XMM2 = 156, CV_REG_XMM3 = 157, CV_REG_XMM4 = 158, CV_REG_XMM5 = 159, CV_REG_XMM6 = 160, CV_REG_XMM7 = 161, CV_REG_XMM00 = 162, // KATMAI sub-registers CV_REG_XMM01 = 163, CV_REG_XMM02 = 164, CV_REG_XMM03 = 165, CV_REG_XMM10 = 166, CV_REG_XMM11 = 167, CV_REG_XMM12 = 168, CV_REG_XMM13 = 169, CV_REG_XMM20 = 170, CV_REG_XMM21 = 171, CV_REG_XMM22 = 172, CV_REG_XMM23 = 173, CV_REG_XMM30 = 174, CV_REG_XMM31 = 175, CV_REG_XMM32 = 176, CV_REG_XMM33 = 177, CV_REG_XMM40 = 178, CV_REG_XMM41 = 179, CV_REG_XMM42 = 180, CV_REG_XMM43 = 181, CV_REG_XMM50 = 182, CV_REG_XMM51 = 183, CV_REG_XMM52 = 184, CV_REG_XMM53 = 185, CV_REG_XMM60 = 186, CV_REG_XMM61 = 187, CV_REG_XMM62 = 188, CV_REG_XMM63 = 189, CV_REG_XMM70 = 190, CV_REG_XMM71 = 191, CV_REG_XMM72 = 192, CV_REG_XMM73 = 193, CV_REG_XMM0L = 194, CV_REG_XMM1L = 195, CV_REG_XMM2L = 196, CV_REG_XMM3L = 197, CV_REG_XMM4L = 198, CV_REG_XMM5L = 199, CV_REG_XMM6L = 200, CV_REG_XMM7L = 201, CV_REG_XMM0H = 202, CV_REG_XMM1H = 203, CV_REG_XMM2H = 204, CV_REG_XMM3H = 205, CV_REG_XMM4H = 206, CV_REG_XMM5H = 207, CV_REG_XMM6H = 208, CV_REG_XMM7H = 209, CV_REG_MXCSR = 211, // XMM status register CV_REG_EDXEAX = 212, // EDX:EAX pair CV_REG_EMM0L = 220, // XMM sub-registers (WNI integer) CV_REG_EMM1L = 221, CV_REG_EMM2L = 222, CV_REG_EMM3L = 223, CV_REG_EMM4L = 224, CV_REG_EMM5L = 225, CV_REG_EMM6L = 226, CV_REG_EMM7L = 227, CV_REG_EMM0H = 228, CV_REG_EMM1H = 229, CV_REG_EMM2H = 230, CV_REG_EMM3H = 231, CV_REG_EMM4H = 232, CV_REG_EMM5H = 233, CV_REG_EMM6H = 234, CV_REG_EMM7H = 235, // do not change the order of these regs, first one must be even too CV_REG_MM00 = 236, CV_REG_MM01 = 237, CV_REG_MM10 = 238, CV_REG_MM11 = 239, CV_REG_MM20 = 240, CV_REG_MM21 = 241, CV_REG_MM30 = 242, CV_REG_MM31 = 243, CV_REG_MM40 = 244, CV_REG_MM41 = 245, CV_REG_MM50 = 246, CV_REG_MM51 = 247, CV_REG_MM60 = 248, CV_REG_MM61 = 249, CV_REG_MM70 = 250, CV_REG_MM71 = 251, // registers for the 68K processors CV_R68_D0 = 0, CV_R68_D1 = 1, CV_R68_D2 = 2, CV_R68_D3 = 3, CV_R68_D4 = 4, CV_R68_D5 = 5, CV_R68_D6 = 6, CV_R68_D7 = 7, CV_R68_A0 = 8, CV_R68_A1 = 9, CV_R68_A2 = 10, CV_R68_A3 = 11, CV_R68_A4 = 12, CV_R68_A5 = 13, CV_R68_A6 = 14, CV_R68_A7 = 15, CV_R68_CCR = 16, CV_R68_SR = 17, CV_R68_USP = 18, CV_R68_MSP = 19, CV_R68_SFC = 20, CV_R68_DFC = 21, CV_R68_CACR = 22, CV_R68_VBR = 23, CV_R68_CAAR = 24, CV_R68_ISP = 25, CV_R68_PC = 26, //reserved 27 CV_R68_FPCR = 28, CV_R68_FPSR = 29, CV_R68_FPIAR = 30, //reserved 31 CV_R68_FP0 = 32, CV_R68_FP1 = 33, CV_R68_FP2 = 34, CV_R68_FP3 = 35, CV_R68_FP4 = 36, CV_R68_FP5 = 37, CV_R68_FP6 = 38, CV_R68_FP7 = 39, //reserved 40 CV_R68_MMUSR030 = 41, CV_R68_MMUSR = 42, CV_R68_URP = 43, CV_R68_DTT0 = 44, CV_R68_DTT1 = 45, CV_R68_ITT0 = 46, CV_R68_ITT1 = 47, //reserved 50 CV_R68_PSR = 51, CV_R68_PCSR = 52, CV_R68_VAL = 53, CV_R68_CRP = 54, CV_R68_SRP = 55, CV_R68_DRP = 56, CV_R68_TC = 57, CV_R68_AC = 58, CV_R68_SCC = 59, CV_R68_CAL = 60, CV_R68_TT0 = 61, CV_R68_TT1 = 62, //reserved 63 CV_R68_BAD0 = 64, CV_R68_BAD1 = 65, CV_R68_BAD2 = 66, CV_R68_BAD3 = 67, CV_R68_BAD4 = 68, CV_R68_BAD5 = 69, CV_R68_BAD6 = 70, CV_R68_BAD7 = 71, CV_R68_BAC0 = 72, CV_R68_BAC1 = 73, CV_R68_BAC2 = 74, CV_R68_BAC3 = 75, CV_R68_BAC4 = 76, CV_R68_BAC5 = 77, CV_R68_BAC6 = 78, CV_R68_BAC7 = 79, // Register set for the MIPS 4000 CV_M4_NOREG = CV_REG_NONE, CV_M4_IntZERO = 10, /* CPU REGISTER */ CV_M4_IntAT = 11, CV_M4_IntV0 = 12, CV_M4_IntV1 = 13, CV_M4_IntA0 = 14, CV_M4_IntA1 = 15, CV_M4_IntA2 = 16, CV_M4_IntA3 = 17, CV_M4_IntT0 = 18, CV_M4_IntT1 = 19, CV_M4_IntT2 = 20, CV_M4_IntT3 = 21, CV_M4_IntT4 = 22, CV_M4_IntT5 = 23, CV_M4_IntT6 = 24, CV_M4_IntT7 = 25, CV_M4_IntS0 = 26, CV_M4_IntS1 = 27, CV_M4_IntS2 = 28, CV_M4_IntS3 = 29, CV_M4_IntS4 = 30, CV_M4_IntS5 = 31, CV_M4_IntS6 = 32, CV_M4_IntS7 = 33, CV_M4_IntT8 = 34, CV_M4_IntT9 = 35, CV_M4_IntKT0 = 36, CV_M4_IntKT1 = 37, CV_M4_IntGP = 38, CV_M4_IntSP = 39, CV_M4_IntS8 = 40, CV_M4_IntRA = 41, CV_M4_IntLO = 42, CV_M4_IntHI = 43, CV_M4_Fir = 50, CV_M4_Psr = 51, CV_M4_FltF0 = 60, /* Floating point registers */ CV_M4_FltF1 = 61, CV_M4_FltF2 = 62, CV_M4_FltF3 = 63, CV_M4_FltF4 = 64, CV_M4_FltF5 = 65, CV_M4_FltF6 = 66, CV_M4_FltF7 = 67, CV_M4_FltF8 = 68, CV_M4_FltF9 = 69, CV_M4_FltF10 = 70, CV_M4_FltF11 = 71, CV_M4_FltF12 = 72, CV_M4_FltF13 = 73, CV_M4_FltF14 = 74, CV_M4_FltF15 = 75, CV_M4_FltF16 = 76, CV_M4_FltF17 = 77, CV_M4_FltF18 = 78, CV_M4_FltF19 = 79, CV_M4_FltF20 = 80, CV_M4_FltF21 = 81, CV_M4_FltF22 = 82, CV_M4_FltF23 = 83, CV_M4_FltF24 = 84, CV_M4_FltF25 = 85, CV_M4_FltF26 = 86, CV_M4_FltF27 = 87, CV_M4_FltF28 = 88, CV_M4_FltF29 = 89, CV_M4_FltF30 = 90, CV_M4_FltF31 = 91, CV_M4_FltFsr = 92, // Register set for the ALPHA AXP CV_ALPHA_NOREG = CV_REG_NONE, CV_ALPHA_FltF0 = 10, // Floating point registers CV_ALPHA_FltF1 = 11, CV_ALPHA_FltF2 = 12, CV_ALPHA_FltF3 = 13, CV_ALPHA_FltF4 = 14, CV_ALPHA_FltF5 = 15, CV_ALPHA_FltF6 = 16, CV_ALPHA_FltF7 = 17, CV_ALPHA_FltF8 = 18, CV_ALPHA_FltF9 = 19, CV_ALPHA_FltF10 = 20, CV_ALPHA_FltF11 = 21, CV_ALPHA_FltF12 = 22, CV_ALPHA_FltF13 = 23, CV_ALPHA_FltF14 = 24, CV_ALPHA_FltF15 = 25, CV_ALPHA_FltF16 = 26, CV_ALPHA_FltF17 = 27, CV_ALPHA_FltF18 = 28, CV_ALPHA_FltF19 = 29, CV_ALPHA_FltF20 = 30, CV_ALPHA_FltF21 = 31, CV_ALPHA_FltF22 = 32, CV_ALPHA_FltF23 = 33, CV_ALPHA_FltF24 = 34, CV_ALPHA_FltF25 = 35, CV_ALPHA_FltF26 = 36, CV_ALPHA_FltF27 = 37, CV_ALPHA_FltF28 = 38, CV_ALPHA_FltF29 = 39, CV_ALPHA_FltF30 = 40, CV_ALPHA_FltF31 = 41, CV_ALPHA_IntV0 = 42, // Integer registers CV_ALPHA_IntT0 = 43, CV_ALPHA_IntT1 = 44, CV_ALPHA_IntT2 = 45, CV_ALPHA_IntT3 = 46, CV_ALPHA_IntT4 = 47, CV_ALPHA_IntT5 = 48, CV_ALPHA_IntT6 = 49, CV_ALPHA_IntT7 = 50, CV_ALPHA_IntS0 = 51, CV_ALPHA_IntS1 = 52, CV_ALPHA_IntS2 = 53, CV_ALPHA_IntS3 = 54, CV_ALPHA_IntS4 = 55, CV_ALPHA_IntS5 = 56, CV_ALPHA_IntFP = 57, CV_ALPHA_IntA0 = 58, CV_ALPHA_IntA1 = 59, CV_ALPHA_IntA2 = 60, CV_ALPHA_IntA3 = 61, CV_ALPHA_IntA4 = 62, CV_ALPHA_IntA5 = 63, CV_ALPHA_IntT8 = 64, CV_ALPHA_IntT9 = 65, CV_ALPHA_IntT10 = 66, CV_ALPHA_IntT11 = 67, CV_ALPHA_IntRA = 68, CV_ALPHA_IntT12 = 69, CV_ALPHA_IntAT = 70, CV_ALPHA_IntGP = 71, CV_ALPHA_IntSP = 72, CV_ALPHA_IntZERO = 73, CV_ALPHA_Fpcr = 74, // Control registers CV_ALPHA_Fir = 75, CV_ALPHA_Psr = 76, CV_ALPHA_FltFsr = 77, CV_ALPHA_SoftFpcr = 78, // Register Set for Motorola/IBM PowerPC /* ** PowerPC General Registers ( User Level ) */ CV_PPC_GPR0 = 1, CV_PPC_GPR1 = 2, CV_PPC_GPR2 = 3, CV_PPC_GPR3 = 4, CV_PPC_GPR4 = 5, CV_PPC_GPR5 = 6, CV_PPC_GPR6 = 7, CV_PPC_GPR7 = 8, CV_PPC_GPR8 = 9, CV_PPC_GPR9 = 10, CV_PPC_GPR10 = 11, CV_PPC_GPR11 = 12, CV_PPC_GPR12 = 13, CV_PPC_GPR13 = 14, CV_PPC_GPR14 = 15, CV_PPC_GPR15 = 16, CV_PPC_GPR16 = 17, CV_PPC_GPR17 = 18, CV_PPC_GPR18 = 19, CV_PPC_GPR19 = 20, CV_PPC_GPR20 = 21, CV_PPC_GPR21 = 22, CV_PPC_GPR22 = 23, CV_PPC_GPR23 = 24, CV_PPC_GPR24 = 25, CV_PPC_GPR25 = 26, CV_PPC_GPR26 = 27, CV_PPC_GPR27 = 28, CV_PPC_GPR28 = 29, CV_PPC_GPR29 = 30, CV_PPC_GPR30 = 31, CV_PPC_GPR31 = 32, /* ** PowerPC Condition Register ( User Level ) */ CV_PPC_CR = 33, CV_PPC_CR0 = 34, CV_PPC_CR1 = 35, CV_PPC_CR2 = 36, CV_PPC_CR3 = 37, CV_PPC_CR4 = 38, CV_PPC_CR5 = 39, CV_PPC_CR6 = 40, CV_PPC_CR7 = 41, /* ** PowerPC Floating Point Registers ( User Level ) */ CV_PPC_FPR0 = 42, CV_PPC_FPR1 = 43, CV_PPC_FPR2 = 44, CV_PPC_FPR3 = 45, CV_PPC_FPR4 = 46, CV_PPC_FPR5 = 47, CV_PPC_FPR6 = 48, CV_PPC_FPR7 = 49, CV_PPC_FPR8 = 50, CV_PPC_FPR9 = 51, CV_PPC_FPR10 = 52, CV_PPC_FPR11 = 53, CV_PPC_FPR12 = 54, CV_PPC_FPR13 = 55, CV_PPC_FPR14 = 56, CV_PPC_FPR15 = 57, CV_PPC_FPR16 = 58, CV_PPC_FPR17 = 59, CV_PPC_FPR18 = 60, CV_PPC_FPR19 = 61, CV_PPC_FPR20 = 62, CV_PPC_FPR21 = 63, CV_PPC_FPR22 = 64, CV_PPC_FPR23 = 65, CV_PPC_FPR24 = 66, CV_PPC_FPR25 = 67, CV_PPC_FPR26 = 68, CV_PPC_FPR27 = 69, CV_PPC_FPR28 = 70, CV_PPC_FPR29 = 71, CV_PPC_FPR30 = 72, CV_PPC_FPR31 = 73, /* ** PowerPC Floating Point Status and Control Register ( User Level ) */ CV_PPC_FPSCR = 74, /* ** PowerPC Machine State Register ( Supervisor Level ) */ CV_PPC_MSR = 75, /* ** PowerPC Segment Registers ( Supervisor Level ) */ CV_PPC_SR0 = 76, CV_PPC_SR1 = 77, CV_PPC_SR2 = 78, CV_PPC_SR3 = 79, CV_PPC_SR4 = 80, CV_PPC_SR5 = 81, CV_PPC_SR6 = 82, CV_PPC_SR7 = 83, CV_PPC_SR8 = 84, CV_PPC_SR9 = 85, CV_PPC_SR10 = 86, CV_PPC_SR11 = 87, CV_PPC_SR12 = 88, CV_PPC_SR13 = 89, CV_PPC_SR14 = 90, CV_PPC_SR15 = 91, /* ** For all of the special purpose registers add 100 to the SPR# that the ** Motorola/IBM documentation gives with the exception of any imaginary ** registers. */ /* ** PowerPC Special Purpose Registers ( User Level ) */ CV_PPC_PC = 99, // PC (imaginary register) CV_PPC_MQ = 100, // MPC601 CV_PPC_XER = 101, CV_PPC_RTCU = 104, // MPC601 CV_PPC_RTCL = 105, // MPC601 CV_PPC_LR = 108, CV_PPC_CTR = 109, CV_PPC_COMPARE = 110, // part of XER (internal to the debugger only) CV_PPC_COUNT = 111, // part of XER (internal to the debugger only) /* ** PowerPC Special Purpose Registers ( Supervisor Level ) */ CV_PPC_DSISR = 118, CV_PPC_DAR = 119, CV_PPC_DEC = 122, CV_PPC_SDR1 = 125, CV_PPC_SRR0 = 126, CV_PPC_SRR1 = 127, CV_PPC_SPRG0 = 372, CV_PPC_SPRG1 = 373, CV_PPC_SPRG2 = 374, CV_PPC_SPRG3 = 375, CV_PPC_ASR = 280, // 64-bit implementations only CV_PPC_EAR = 382, CV_PPC_PVR = 287, CV_PPC_BAT0U = 628, CV_PPC_BAT0L = 629, CV_PPC_BAT1U = 630, CV_PPC_BAT1L = 631, CV_PPC_BAT2U = 632, CV_PPC_BAT2L = 633, CV_PPC_BAT3U = 634, CV_PPC_BAT3L = 635, CV_PPC_DBAT0U = 636, CV_PPC_DBAT0L = 637, CV_PPC_DBAT1U = 638, CV_PPC_DBAT1L = 639, CV_PPC_DBAT2U = 640, CV_PPC_DBAT2L = 641, CV_PPC_DBAT3U = 642, CV_PPC_DBAT3L = 643, /* ** PowerPC Special Purpose Registers Implementation Dependent ( Supervisor Level ) */ /* ** Doesn't appear that IBM/Motorola has finished defining these. */ CV_PPC_PMR0 = 1044, // MPC620, CV_PPC_PMR1 = 1045, // MPC620, CV_PPC_PMR2 = 1046, // MPC620, CV_PPC_PMR3 = 1047, // MPC620, CV_PPC_PMR4 = 1048, // MPC620, CV_PPC_PMR5 = 1049, // MPC620, CV_PPC_PMR6 = 1050, // MPC620, CV_PPC_PMR7 = 1051, // MPC620, CV_PPC_PMR8 = 1052, // MPC620, CV_PPC_PMR9 = 1053, // MPC620, CV_PPC_PMR10 = 1054, // MPC620, CV_PPC_PMR11 = 1055, // MPC620, CV_PPC_PMR12 = 1056, // MPC620, CV_PPC_PMR13 = 1057, // MPC620, CV_PPC_PMR14 = 1058, // MPC620, CV_PPC_PMR15 = 1059, // MPC620, CV_PPC_DMISS = 1076, // MPC603 CV_PPC_DCMP = 1077, // MPC603 CV_PPC_HASH1 = 1078, // MPC603 CV_PPC_HASH2 = 1079, // MPC603 CV_PPC_IMISS = 1080, // MPC603 CV_PPC_ICMP = 1081, // MPC603 CV_PPC_RPA = 1082, // MPC603 CV_PPC_HID0 = 1108, // MPC601, MPC603, MPC620 CV_PPC_HID1 = 1109, // MPC601 CV_PPC_HID2 = 1110, // MPC601, MPC603, MPC620 ( IABR ) CV_PPC_HID3 = 1111, // Not Defined CV_PPC_HID4 = 1112, // Not Defined CV_PPC_HID5 = 1113, // MPC601, MPC604, MPC620 ( DABR ) CV_PPC_HID6 = 1114, // Not Defined CV_PPC_HID7 = 1115, // Not Defined CV_PPC_HID8 = 1116, // MPC620 ( BUSCSR ) CV_PPC_HID9 = 1117, // MPC620 ( L2CSR ) CV_PPC_HID10 = 1118, // Not Defined CV_PPC_HID11 = 1119, // Not Defined CV_PPC_HID12 = 1120, // Not Defined CV_PPC_HID13 = 1121, // MPC604 ( HCR ) CV_PPC_HID14 = 1122, // Not Defined CV_PPC_HID15 = 1123, // MPC601, MPC604, MPC620 ( PIR ) // // JAVA VM registers // CV_JAVA_PC = 1, // // Register set for the Hitachi SH3 // CV_SH3_NOREG = CV_REG_NONE, CV_SH3_IntR0 = 10, // CPU REGISTER CV_SH3_IntR1 = 11, CV_SH3_IntR2 = 12, CV_SH3_IntR3 = 13, CV_SH3_IntR4 = 14, CV_SH3_IntR5 = 15, CV_SH3_IntR6 = 16, CV_SH3_IntR7 = 17, CV_SH3_IntR8 = 18, CV_SH3_IntR9 = 19, CV_SH3_IntR10 = 20, CV_SH3_IntR11 = 21, CV_SH3_IntR12 = 22, CV_SH3_IntR13 = 23, CV_SH3_IntFp = 24, CV_SH3_IntSp = 25, CV_SH3_Gbr = 38, CV_SH3_Pr = 39, CV_SH3_Mach = 40, CV_SH3_Macl = 41, CV_SH3_Pc = 50, CV_SH3_Sr = 51, CV_SH3_BarA = 60, CV_SH3_BasrA = 61, CV_SH3_BamrA = 62, CV_SH3_BbrA = 63, CV_SH3_BarB = 64, CV_SH3_BasrB = 65, CV_SH3_BamrB = 66, CV_SH3_BbrB = 67, CV_SH3_BdrB = 68, CV_SH3_BdmrB = 69, CV_SH3_Brcr = 70, // // Additional registers for Hitachi SH processors // CV_SH_Fpscr = 75, // floating point status/control register CV_SH_Fpul = 76, // floating point communication register CV_SH_FpR0 = 80, // Floating point registers CV_SH_FpR1 = 81, CV_SH_FpR2 = 82, CV_SH_FpR3 = 83, CV_SH_FpR4 = 84, CV_SH_FpR5 = 85, CV_SH_FpR6 = 86, CV_SH_FpR7 = 87, CV_SH_FpR8 = 88, CV_SH_FpR9 = 89, CV_SH_FpR10 = 90, CV_SH_FpR11 = 91, CV_SH_FpR12 = 92, CV_SH_FpR13 = 93, CV_SH_FpR14 = 94, CV_SH_FpR15 = 95, CV_SH_XFpR0 = 96, CV_SH_XFpR1 = 97, CV_SH_XFpR2 = 98, CV_SH_XFpR3 = 99, CV_SH_XFpR4 = 100, CV_SH_XFpR5 = 101, CV_SH_XFpR6 = 102, CV_SH_XFpR7 = 103, CV_SH_XFpR8 = 104, CV_SH_XFpR9 = 105, CV_SH_XFpR10 = 106, CV_SH_XFpR11 = 107, CV_SH_XFpR12 = 108, CV_SH_XFpR13 = 109, CV_SH_XFpR14 = 110, CV_SH_XFpR15 = 111, // // Register set for the ARM processor. // CV_ARM_NOREG = CV_REG_NONE, CV_ARM_R0 = 10, CV_ARM_R1 = 11, CV_ARM_R2 = 12, CV_ARM_R3 = 13, CV_ARM_R4 = 14, CV_ARM_R5 = 15, CV_ARM_R6 = 16, CV_ARM_R7 = 17, CV_ARM_R8 = 18, CV_ARM_R9 = 19, CV_ARM_R10 = 20, CV_ARM_R11 = 21, // Frame pointer, if allocated CV_ARM_R12 = 22, CV_ARM_SP = 23, // Stack pointer CV_ARM_LR = 24, // Link Register CV_ARM_PC = 25, // Program counter CV_ARM_CPSR = 26, // Current program status register // // Register set for Intel IA64 // CV_IA64_NOREG = CV_REG_NONE, // Branch Registers CV_IA64_Br0 = 512, CV_IA64_Br1 = 513, CV_IA64_Br2 = 514, CV_IA64_Br3 = 515, CV_IA64_Br4 = 516, CV_IA64_Br5 = 517, CV_IA64_Br6 = 518, CV_IA64_Br7 = 519, // Predicate Registers CV_IA64_P0 = 704, CV_IA64_P1 = 705, CV_IA64_P2 = 706, CV_IA64_P3 = 707, CV_IA64_P4 = 708, CV_IA64_P5 = 709, CV_IA64_P6 = 710, CV_IA64_P7 = 711, CV_IA64_P8 = 712, CV_IA64_P9 = 713, CV_IA64_P10 = 714, CV_IA64_P11 = 715, CV_IA64_P12 = 716, CV_IA64_P13 = 717, CV_IA64_P14 = 718, CV_IA64_P15 = 719, CV_IA64_P16 = 720, CV_IA64_P17 = 721, CV_IA64_P18 = 722, CV_IA64_P19 = 723, CV_IA64_P20 = 724, CV_IA64_P21 = 725, CV_IA64_P22 = 726, CV_IA64_P23 = 727, CV_IA64_P24 = 728, CV_IA64_P25 = 729, CV_IA64_P26 = 730, CV_IA64_P27 = 731, CV_IA64_P28 = 732, CV_IA64_P29 = 733, CV_IA64_P30 = 734, CV_IA64_P31 = 735, CV_IA64_P32 = 736, CV_IA64_P33 = 737, CV_IA64_P34 = 738, CV_IA64_P35 = 739, CV_IA64_P36 = 740, CV_IA64_P37 = 741, CV_IA64_P38 = 742, CV_IA64_P39 = 743, CV_IA64_P40 = 744, CV_IA64_P41 = 745, CV_IA64_P42 = 746, CV_IA64_P43 = 747, CV_IA64_P44 = 748, CV_IA64_P45 = 749, CV_IA64_P46 = 750, CV_IA64_P47 = 751, CV_IA64_P48 = 752, CV_IA64_P49 = 753, CV_IA64_P50 = 754, CV_IA64_P51 = 755, CV_IA64_P52 = 756, CV_IA64_P53 = 757, CV_IA64_P54 = 758, CV_IA64_P55 = 759, CV_IA64_P56 = 760, CV_IA64_P57 = 761, CV_IA64_P58 = 762, CV_IA64_P59 = 763, CV_IA64_P60 = 764, CV_IA64_P61 = 765, CV_IA64_P62 = 766, CV_IA64_P63 = 767, CV_IA64_Preds = 768, // Banked General Registers CV_IA64_IntH0 = 832, CV_IA64_IntH1 = 833, CV_IA64_IntH2 = 834, CV_IA64_IntH3 = 835, CV_IA64_IntH4 = 836, CV_IA64_IntH5 = 837, CV_IA64_IntH6 = 838, CV_IA64_IntH7 = 839, CV_IA64_IntH8 = 840, CV_IA64_IntH9 = 841, CV_IA64_IntH10 = 842, CV_IA64_IntH11 = 843, CV_IA64_IntH12 = 844, CV_IA64_IntH13 = 845, CV_IA64_IntH14 = 846, CV_IA64_IntH15 = 847, // Special Registers CV_IA64_Ip = 1016, CV_IA64_Umask = 1017, CV_IA64_Cfm = 1018, CV_IA64_Psr = 1019, // Banked General Registers CV_IA64_Nats = 1020, CV_IA64_Nats2 = 1021, CV_IA64_Nats3 = 1022, // General-Purpose Registers // Integer registers CV_IA64_IntR0 = 1024, CV_IA64_IntR1 = 1025, CV_IA64_IntR2 = 1026, CV_IA64_IntR3 = 1027, CV_IA64_IntR4 = 1028, CV_IA64_IntR5 = 1029, CV_IA64_IntR6 = 1030, CV_IA64_IntR7 = 1031, CV_IA64_IntR8 = 1032, CV_IA64_IntR9 = 1033, CV_IA64_IntR10 = 1034, CV_IA64_IntR11 = 1035, CV_IA64_IntR12 = 1036, CV_IA64_IntR13 = 1037, CV_IA64_IntR14 = 1038, CV_IA64_IntR15 = 1039, CV_IA64_IntR16 = 1040, CV_IA64_IntR17 = 1041, CV_IA64_IntR18 = 1042, CV_IA64_IntR19 = 1043, CV_IA64_IntR20 = 1044, CV_IA64_IntR21 = 1045, CV_IA64_IntR22 = 1046, CV_IA64_IntR23 = 1047, CV_IA64_IntR24 = 1048, CV_IA64_IntR25 = 1049, CV_IA64_IntR26 = 1050, CV_IA64_IntR27 = 1051, CV_IA64_IntR28 = 1052, CV_IA64_IntR29 = 1053, CV_IA64_IntR30 = 1054, CV_IA64_IntR31 = 1055, // Register Stack CV_IA64_IntR32 = 1056, CV_IA64_IntR33 = 1057, CV_IA64_IntR34 = 1058, CV_IA64_IntR35 = 1059, CV_IA64_IntR36 = 1060, CV_IA64_IntR37 = 1061, CV_IA64_IntR38 = 1062, CV_IA64_IntR39 = 1063, CV_IA64_IntR40 = 1064, CV_IA64_IntR41 = 1065, CV_IA64_IntR42 = 1066, CV_IA64_IntR43 = 1067, CV_IA64_IntR44 = 1068, CV_IA64_IntR45 = 1069, CV_IA64_IntR46 = 1070, CV_IA64_IntR47 = 1071, CV_IA64_IntR48 = 1072, CV_IA64_IntR49 = 1073, CV_IA64_IntR50 = 1074, CV_IA64_IntR51 = 1075, CV_IA64_IntR52 = 1076, CV_IA64_IntR53 = 1077, CV_IA64_IntR54 = 1078, CV_IA64_IntR55 = 1079, CV_IA64_IntR56 = 1080, CV_IA64_IntR57 = 1081, CV_IA64_IntR58 = 1082, CV_IA64_IntR59 = 1083, CV_IA64_IntR60 = 1084, CV_IA64_IntR61 = 1085, CV_IA64_IntR62 = 1086, CV_IA64_IntR63 = 1087, CV_IA64_IntR64 = 1088, CV_IA64_IntR65 = 1089, CV_IA64_IntR66 = 1090, CV_IA64_IntR67 = 1091, CV_IA64_IntR68 = 1092, CV_IA64_IntR69 = 1093, CV_IA64_IntR70 = 1094, CV_IA64_IntR71 = 1095, CV_IA64_IntR72 = 1096, CV_IA64_IntR73 = 1097, CV_IA64_IntR74 = 1098, CV_IA64_IntR75 = 1099, CV_IA64_IntR76 = 1100, CV_IA64_IntR77 = 1101, CV_IA64_IntR78 = 1102, CV_IA64_IntR79 = 1103, CV_IA64_IntR80 = 1104, CV_IA64_IntR81 = 1105, CV_IA64_IntR82 = 1106, CV_IA64_IntR83 = 1107, CV_IA64_IntR84 = 1108, CV_IA64_IntR85 = 1109, CV_IA64_IntR86 = 1110, CV_IA64_IntR87 = 1111, CV_IA64_IntR88 = 1112, CV_IA64_IntR89 = 1113, CV_IA64_IntR90 = 1114, CV_IA64_IntR91 = 1115, CV_IA64_IntR92 = 1116, CV_IA64_IntR93 = 1117, CV_IA64_IntR94 = 1118, CV_IA64_IntR95 = 1119, CV_IA64_IntR96 = 1120, CV_IA64_IntR97 = 1121, CV_IA64_IntR98 = 1122, CV_IA64_IntR99 = 1123, CV_IA64_IntR100 = 1124, CV_IA64_IntR101 = 1125, CV_IA64_IntR102 = 1126, CV_IA64_IntR103 = 1127, CV_IA64_IntR104 = 1128, CV_IA64_IntR105 = 1129, CV_IA64_IntR106 = 1130, CV_IA64_IntR107 = 1131, CV_IA64_IntR108 = 1132, CV_IA64_IntR109 = 1133, CV_IA64_IntR110 = 1134, CV_IA64_IntR111 = 1135, CV_IA64_IntR112 = 1136, CV_IA64_IntR113 = 1137, CV_IA64_IntR114 = 1138, CV_IA64_IntR115 = 1139, CV_IA64_IntR116 = 1140, CV_IA64_IntR117 = 1141, CV_IA64_IntR118 = 1142, CV_IA64_IntR119 = 1143, CV_IA64_IntR120 = 1144, CV_IA64_IntR121 = 1145, CV_IA64_IntR122 = 1146, CV_IA64_IntR123 = 1147, CV_IA64_IntR124 = 1148, CV_IA64_IntR125 = 1149, CV_IA64_IntR126 = 1150, CV_IA64_IntR127 = 1151, // Floating-Point Registers // Low Floating Point Registers CV_IA64_FltF0 = 2048, CV_IA64_FltF1 = 2049, CV_IA64_FltF2 = 2050, CV_IA64_FltF3 = 2051, CV_IA64_FltF4 = 2052, CV_IA64_FltF5 = 2053, CV_IA64_FltF6 = 2054, CV_IA64_FltF7 = 2055, CV_IA64_FltF8 = 2056, CV_IA64_FltF9 = 2057, CV_IA64_FltF10 = 2058, CV_IA64_FltF11 = 2059, CV_IA64_FltF12 = 2060, CV_IA64_FltF13 = 2061, CV_IA64_FltF14 = 2062, CV_IA64_FltF15 = 2063, CV_IA64_FltF16 = 2064, CV_IA64_FltF17 = 2065, CV_IA64_FltF18 = 2066, CV_IA64_FltF19 = 2067, CV_IA64_FltF20 = 2068, CV_IA64_FltF21 = 2069, CV_IA64_FltF22 = 2070, CV_IA64_FltF23 = 2071, CV_IA64_FltF24 = 2072, CV_IA64_FltF25 = 2073, CV_IA64_FltF26 = 2074, CV_IA64_FltF27 = 2075, CV_IA64_FltF28 = 2076, CV_IA64_FltF29 = 2077, CV_IA64_FltF30 = 2078, CV_IA64_FltF31 = 2079, // High Floating Point Registers CV_IA64_FltF32 = 2080, CV_IA64_FltF33 = 2081, CV_IA64_FltF34 = 2082, CV_IA64_FltF35 = 2083, CV_IA64_FltF36 = 2084, CV_IA64_FltF37 = 2085, CV_IA64_FltF38 = 2086, CV_IA64_FltF39 = 2087, CV_IA64_FltF40 = 2088, CV_IA64_FltF41 = 2089, CV_IA64_FltF42 = 2090, CV_IA64_FltF43 = 2091, CV_IA64_FltF44 = 2092, CV_IA64_FltF45 = 2093, CV_IA64_FltF46 = 2094, CV_IA64_FltF47 = 2095, CV_IA64_FltF48 = 2096, CV_IA64_FltF49 = 2097, CV_IA64_FltF50 = 2098, CV_IA64_FltF51 = 2099, CV_IA64_FltF52 = 2100, CV_IA64_FltF53 = 2101, CV_IA64_FltF54 = 2102, CV_IA64_FltF55 = 2103, CV_IA64_FltF56 = 2104, CV_IA64_FltF57 = 2105, CV_IA64_FltF58 = 2106, CV_IA64_FltF59 = 2107, CV_IA64_FltF60 = 2108, CV_IA64_FltF61 = 2109, CV_IA64_FltF62 = 2110, CV_IA64_FltF63 = 2111, CV_IA64_FltF64 = 2112, CV_IA64_FltF65 = 2113, CV_IA64_FltF66 = 2114, CV_IA64_FltF67 = 2115, CV_IA64_FltF68 = 2116, CV_IA64_FltF69 = 2117, CV_IA64_FltF70 = 2118, CV_IA64_FltF71 = 2119, CV_IA64_FltF72 = 2120, CV_IA64_FltF73 = 2121, CV_IA64_FltF74 = 2122, CV_IA64_FltF75 = 2123, CV_IA64_FltF76 = 2124, CV_IA64_FltF77 = 2125, CV_IA64_FltF78 = 2126, CV_IA64_FltF79 = 2127, CV_IA64_FltF80 = 2128, CV_IA64_FltF81 = 2129, CV_IA64_FltF82 = 2130, CV_IA64_FltF83 = 2131, CV_IA64_FltF84 = 2132, CV_IA64_FltF85 = 2133, CV_IA64_FltF86 = 2134, CV_IA64_FltF87 = 2135, CV_IA64_FltF88 = 2136, CV_IA64_FltF89 = 2137, CV_IA64_FltF90 = 2138, CV_IA64_FltF91 = 2139, CV_IA64_FltF92 = 2140, CV_IA64_FltF93 = 2141, CV_IA64_FltF94 = 2142, CV_IA64_FltF95 = 2143, CV_IA64_FltF96 = 2144, CV_IA64_FltF97 = 2145, CV_IA64_FltF98 = 2146, CV_IA64_FltF99 = 2147, CV_IA64_FltF100 = 2148, CV_IA64_FltF101 = 2149, CV_IA64_FltF102 = 2150, CV_IA64_FltF103 = 2151, CV_IA64_FltF104 = 2152, CV_IA64_FltF105 = 2153, CV_IA64_FltF106 = 2154, CV_IA64_FltF107 = 2155, CV_IA64_FltF108 = 2156, CV_IA64_FltF109 = 2157, CV_IA64_FltF110 = 2158, CV_IA64_FltF111 = 2159, CV_IA64_FltF112 = 2160, CV_IA64_FltF113 = 2161, CV_IA64_FltF114 = 2162, CV_IA64_FltF115 = 2163, CV_IA64_FltF116 = 2164, CV_IA64_FltF117 = 2165, CV_IA64_FltF118 = 2166, CV_IA64_FltF119 = 2167, CV_IA64_FltF120 = 2168, CV_IA64_FltF121 = 2169, CV_IA64_FltF122 = 2170, CV_IA64_FltF123 = 2171, CV_IA64_FltF124 = 2172, CV_IA64_FltF125 = 2173, CV_IA64_FltF126 = 2174, CV_IA64_FltF127 = 2175, // Application Registers CV_IA64_ApKR0 = 3072, CV_IA64_ApKR1 = 3073, CV_IA64_ApKR2 = 3074, CV_IA64_ApKR3 = 3075, CV_IA64_ApKR4 = 3076, CV_IA64_ApKR5 = 3077, CV_IA64_ApKR6 = 3078, CV_IA64_ApKR7 = 3079, CV_IA64_AR8 = 3080, CV_IA64_AR9 = 3081, CV_IA64_AR10 = 3082, CV_IA64_AR11 = 3083, CV_IA64_AR12 = 3084, CV_IA64_AR13 = 3085, CV_IA64_AR14 = 3086, CV_IA64_AR15 = 3087, CV_IA64_RsRSC = 3088, CV_IA64_RsBSP = 3089, CV_IA64_RsBSPSTORE = 3090, CV_IA64_RsRNAT = 3091, CV_IA64_AR20 = 3092, CV_IA64_StFCR = 3093, CV_IA64_AR22 = 3094, CV_IA64_AR23 = 3095, CV_IA64_EFLAG = 3096, CV_IA64_CSD = 3097, CV_IA64_SSD = 3098, CV_IA64_CFLG = 3099, CV_IA64_StFSR = 3100, CV_IA64_StFIR = 3101, CV_IA64_StFDR = 3102, CV_IA64_AR31 = 3103, CV_IA64_ApCCV = 3104, CV_IA64_AR33 = 3105, CV_IA64_AR34 = 3106, CV_IA64_AR35 = 3107, CV_IA64_ApUNAT = 3108, CV_IA64_AR37 = 3109, CV_IA64_AR38 = 3110, CV_IA64_AR39 = 3111, CV_IA64_StFPSR = 3112, CV_IA64_AR41 = 3113, CV_IA64_AR42 = 3114, CV_IA64_AR43 = 3115, CV_IA64_ApITC = 3116, CV_IA64_AR45 = 3117, CV_IA64_AR46 = 3118, CV_IA64_AR47 = 3119, CV_IA64_AR48 = 3120, CV_IA64_AR49 = 3121, CV_IA64_AR50 = 3122, CV_IA64_AR51 = 3123, CV_IA64_AR52 = 3124, CV_IA64_AR53 = 3125, CV_IA64_AR54 = 3126, CV_IA64_AR55 = 3127, CV_IA64_AR56 = 3128, CV_IA64_AR57 = 3129, CV_IA64_AR58 = 3130, CV_IA64_AR59 = 3131, CV_IA64_AR60 = 3132, CV_IA64_AR61 = 3133, CV_IA64_AR62 = 3134, CV_IA64_AR63 = 3135, CV_IA64_RsPFS = 3136, CV_IA64_ApLC = 3137, CV_IA64_ApEC = 3138, CV_IA64_AR67 = 3139, CV_IA64_AR68 = 3140, CV_IA64_AR69 = 3141, CV_IA64_AR70 = 3142, CV_IA64_AR71 = 3143, CV_IA64_AR72 = 3144, CV_IA64_AR73 = 3145, CV_IA64_AR74 = 3146, CV_IA64_AR75 = 3147, CV_IA64_AR76 = 3148, CV_IA64_AR77 = 3149, CV_IA64_AR78 = 3150, CV_IA64_AR79 = 3151, CV_IA64_AR80 = 3152, CV_IA64_AR81 = 3153, CV_IA64_AR82 = 3154, CV_IA64_AR83 = 3155, CV_IA64_AR84 = 3156, CV_IA64_AR85 = 3157, CV_IA64_AR86 = 3158, CV_IA64_AR87 = 3159, CV_IA64_AR88 = 3160, CV_IA64_AR89 = 3161, CV_IA64_AR90 = 3162, CV_IA64_AR91 = 3163, CV_IA64_AR92 = 3164, CV_IA64_AR93 = 3165, CV_IA64_AR94 = 3166, CV_IA64_AR95 = 3167, CV_IA64_AR96 = 3168, CV_IA64_AR97 = 3169, CV_IA64_AR98 = 3170, CV_IA64_AR99 = 3171, CV_IA64_AR100 = 3172, CV_IA64_AR101 = 3173, CV_IA64_AR102 = 3174, CV_IA64_AR103 = 3175, CV_IA64_AR104 = 3176, CV_IA64_AR105 = 3177, CV_IA64_AR106 = 3178, CV_IA64_AR107 = 3179, CV_IA64_AR108 = 3180, CV_IA64_AR109 = 3181, CV_IA64_AR110 = 3182, CV_IA64_AR111 = 3183, CV_IA64_AR112 = 3184, CV_IA64_AR113 = 3185, CV_IA64_AR114 = 3186, CV_IA64_AR115 = 3187, CV_IA64_AR116 = 3188, CV_IA64_AR117 = 3189, CV_IA64_AR118 = 3190, CV_IA64_AR119 = 3191, CV_IA64_AR120 = 3192, CV_IA64_AR121 = 3193, CV_IA64_AR122 = 3194, CV_IA64_AR123 = 3195, CV_IA64_AR124 = 3196, CV_IA64_AR125 = 3197, CV_IA64_AR126 = 3198, CV_IA64_AR127 = 3199, // CPUID Registers CV_IA64_CPUID0 = 3328, CV_IA64_CPUID1 = 3329, CV_IA64_CPUID2 = 3330, CV_IA64_CPUID3 = 3331, CV_IA64_CPUID4 = 3332, // Control Registers CV_IA64_ApDCR = 4096, CV_IA64_ApITM = 4097, CV_IA64_ApIVA = 4098, CV_IA64_CR3 = 4099, CV_IA64_CR4 = 4100, CV_IA64_CR5 = 4101, CV_IA64_CR6 = 4102, CV_IA64_CR7 = 4103, CV_IA64_ApPTA = 4104, CV_IA64_ApGPTA = 4105, CV_IA64_CR10 = 4106, CV_IA64_CR11 = 4107, CV_IA64_CR12 = 4108, CV_IA64_CR13 = 4109, CV_IA64_CR14 = 4110, CV_IA64_CR15 = 4111, CV_IA64_StIPSR = 4112, CV_IA64_StISR = 4113, CV_IA64_CR18 = 4114, CV_IA64_StIIP = 4115, CV_IA64_StIFA = 4116, CV_IA64_StITIR = 4117, CV_IA64_StIIPA = 4118, CV_IA64_StIFS = 4119, CV_IA64_StIIM = 4120, CV_IA64_StIHA = 4121, CV_IA64_CR26 = 4122, CV_IA64_CR27 = 4123, CV_IA64_CR28 = 4124, CV_IA64_CR29 = 4125, CV_IA64_CR30 = 4126, CV_IA64_CR31 = 4127, CV_IA64_CR32 = 4128, CV_IA64_CR33 = 4129, CV_IA64_CR34 = 4130, CV_IA64_CR35 = 4131, CV_IA64_CR36 = 4132, CV_IA64_CR37 = 4133, CV_IA64_CR38 = 4134, CV_IA64_CR39 = 4135, CV_IA64_CR40 = 4136, CV_IA64_CR41 = 4137, CV_IA64_CR42 = 4138, CV_IA64_CR43 = 4139, CV_IA64_CR44 = 4140, CV_IA64_CR45 = 4141, CV_IA64_CR46 = 4142, CV_IA64_CR47 = 4143, CV_IA64_CR48 = 4144, CV_IA64_CR49 = 4145, CV_IA64_CR50 = 4146, CV_IA64_CR51 = 4147, CV_IA64_CR52 = 4148, CV_IA64_CR53 = 4149, CV_IA64_CR54 = 4150, CV_IA64_CR55 = 4151, CV_IA64_CR56 = 4152, CV_IA64_CR57 = 4153, CV_IA64_CR58 = 4154, CV_IA64_CR59 = 4155, CV_IA64_CR60 = 4156, CV_IA64_CR61 = 4157, CV_IA64_CR62 = 4158, CV_IA64_CR63 = 4159, CV_IA64_SaLID = 4160, CV_IA64_SaIVR = 4161, CV_IA64_SaTPR = 4162, CV_IA64_SaEOI = 4163, CV_IA64_SaIRR0 = 4164, CV_IA64_SaIRR1 = 4165, CV_IA64_SaIRR2 = 4166, CV_IA64_SaIRR3 = 4167, CV_IA64_SaITV = 4168, CV_IA64_SaPMV = 4169, CV_IA64_SaCMCV = 4170, CV_IA64_CR75 = 4171, CV_IA64_CR76 = 4172, CV_IA64_CR77 = 4173, CV_IA64_CR78 = 4174, CV_IA64_CR79 = 4175, CV_IA64_SaLRR0 = 4176, CV_IA64_SaLRR1 = 4177, CV_IA64_CR82 = 4178, CV_IA64_CR83 = 4179, CV_IA64_CR84 = 4180, CV_IA64_CR85 = 4181, CV_IA64_CR86 = 4182, CV_IA64_CR87 = 4183, CV_IA64_CR88 = 4184, CV_IA64_CR89 = 4185, CV_IA64_CR90 = 4186, CV_IA64_CR91 = 4187, CV_IA64_CR92 = 4188, CV_IA64_CR93 = 4189, CV_IA64_CR94 = 4190, CV_IA64_CR95 = 4191, CV_IA64_CR96 = 4192, CV_IA64_CR97 = 4193, CV_IA64_CR98 = 4194, CV_IA64_CR99 = 4195, CV_IA64_CR100 = 4196, CV_IA64_CR101 = 4197, CV_IA64_CR102 = 4198, CV_IA64_CR103 = 4199, CV_IA64_CR104 = 4200, CV_IA64_CR105 = 4201, CV_IA64_CR106 = 4202, CV_IA64_CR107 = 4203, CV_IA64_CR108 = 4204, CV_IA64_CR109 = 4205, CV_IA64_CR110 = 4206, CV_IA64_CR111 = 4207, CV_IA64_CR112 = 4208, CV_IA64_CR113 = 4209, CV_IA64_CR114 = 4210, CV_IA64_CR115 = 4211, CV_IA64_CR116 = 4212, CV_IA64_CR117 = 4213, CV_IA64_CR118 = 4214, CV_IA64_CR119 = 4215, CV_IA64_CR120 = 4216, CV_IA64_CR121 = 4217, CV_IA64_CR122 = 4218, CV_IA64_CR123 = 4219, CV_IA64_CR124 = 4220, CV_IA64_CR125 = 4221, CV_IA64_CR126 = 4222, CV_IA64_CR127 = 4223, // Protection Key Registers CV_IA64_Pkr0 = 5120, CV_IA64_Pkr1 = 5121, CV_IA64_Pkr2 = 5122, CV_IA64_Pkr3 = 5123, CV_IA64_Pkr4 = 5124, CV_IA64_Pkr5 = 5125, CV_IA64_Pkr6 = 5126, CV_IA64_Pkr7 = 5127, CV_IA64_Pkr8 = 5128, CV_IA64_Pkr9 = 5129, CV_IA64_Pkr10 = 5130, CV_IA64_Pkr11 = 5131, CV_IA64_Pkr12 = 5132, CV_IA64_Pkr13 = 5133, CV_IA64_Pkr14 = 5134, CV_IA64_Pkr15 = 5135, // Region Registers CV_IA64_Rr0 = 6144, CV_IA64_Rr1 = 6145, CV_IA64_Rr2 = 6146, CV_IA64_Rr3 = 6147, CV_IA64_Rr4 = 6148, CV_IA64_Rr5 = 6149, CV_IA64_Rr6 = 6150, CV_IA64_Rr7 = 6151, // Performance Monitor Data Registers CV_IA64_PFD0 = 7168, CV_IA64_PFD1 = 7169, CV_IA64_PFD2 = 7170, CV_IA64_PFD3 = 7171, CV_IA64_PFD4 = 7172, CV_IA64_PFD5 = 7173, CV_IA64_PFD6 = 7174, CV_IA64_PFD7 = 7175, CV_IA64_PFD8 = 7176, CV_IA64_PFD9 = 7177, CV_IA64_PFD10 = 7178, CV_IA64_PFD11 = 7179, CV_IA64_PFD12 = 7180, CV_IA64_PFD13 = 7181, CV_IA64_PFD14 = 7182, CV_IA64_PFD15 = 7183, CV_IA64_PFD16 = 7184, CV_IA64_PFD17 = 7185, // Performance Monitor Config Registers CV_IA64_PFC0 = 7424, CV_IA64_PFC1 = 7425, CV_IA64_PFC2 = 7426, CV_IA64_PFC3 = 7427, CV_IA64_PFC4 = 7428, CV_IA64_PFC5 = 7429, CV_IA64_PFC6 = 7430, CV_IA64_PFC7 = 7431, CV_IA64_PFC8 = 7432, CV_IA64_PFC9 = 7433, CV_IA64_PFC10 = 7434, CV_IA64_PFC11 = 7435, CV_IA64_PFC12 = 7436, CV_IA64_PFC13 = 7437, CV_IA64_PFC14 = 7438, CV_IA64_PFC15 = 7439, // Instruction Translation Registers CV_IA64_TrI0 = 8192, CV_IA64_TrI1 = 8193, CV_IA64_TrI2 = 8194, CV_IA64_TrI3 = 8195, CV_IA64_TrI4 = 8196, CV_IA64_TrI5 = 8197, CV_IA64_TrI6 = 8198, CV_IA64_TrI7 = 8199, // Data Translation Registers CV_IA64_TrD0 = 8320, CV_IA64_TrD1 = 8321, CV_IA64_TrD2 = 8322, CV_IA64_TrD3 = 8323, CV_IA64_TrD4 = 8324, CV_IA64_TrD5 = 8325, CV_IA64_TrD6 = 8326, CV_IA64_TrD7 = 8327, // Instruction Breakpoint Registers CV_IA64_DbI0 = 8448, CV_IA64_DbI1 = 8449, CV_IA64_DbI2 = 8450, CV_IA64_DbI3 = 8451, CV_IA64_DbI4 = 8452, CV_IA64_DbI5 = 8453, CV_IA64_DbI6 = 8454, CV_IA64_DbI7 = 8455, // Data Breakpoint Registers CV_IA64_DbD0 = 8576, CV_IA64_DbD1 = 8577, CV_IA64_DbD2 = 8578, CV_IA64_DbD3 = 8579, CV_IA64_DbD4 = 8580, CV_IA64_DbD5 = 8581, CV_IA64_DbD6 = 8582, CV_IA64_DbD7 = 8583, // // Register set for the TriCore processor. // CV_TRI_NOREG = CV_REG_NONE, // General Purpose Data Registers CV_TRI_D0 = 10, CV_TRI_D1 = 11, CV_TRI_D2 = 12, CV_TRI_D3 = 13, CV_TRI_D4 = 14, CV_TRI_D5 = 15, CV_TRI_D6 = 16, CV_TRI_D7 = 17, CV_TRI_D8 = 18, CV_TRI_D9 = 19, CV_TRI_D10 = 20, CV_TRI_D11 = 21, CV_TRI_D12 = 22, CV_TRI_D13 = 23, CV_TRI_D14 = 24, CV_TRI_D15 = 25, // General Purpose Address Registers CV_TRI_A0 = 26, CV_TRI_A1 = 27, CV_TRI_A2 = 28, CV_TRI_A3 = 29, CV_TRI_A4 = 30, CV_TRI_A5 = 31, CV_TRI_A6 = 32, CV_TRI_A7 = 33, CV_TRI_A8 = 34, CV_TRI_A9 = 35, CV_TRI_A10 = 36, CV_TRI_A11 = 37, CV_TRI_A12 = 38, CV_TRI_A13 = 39, CV_TRI_A14 = 40, CV_TRI_A15 = 41, // Extended (64-bit) data registers CV_TRI_E0 = 42, CV_TRI_E2 = 43, CV_TRI_E4 = 44, CV_TRI_E6 = 45, CV_TRI_E8 = 46, CV_TRI_E10 = 47, CV_TRI_E12 = 48, CV_TRI_E14 = 49, // Extended (64-bit) address registers CV_TRI_EA0 = 50, CV_TRI_EA2 = 51, CV_TRI_EA4 = 52, CV_TRI_EA6 = 53, CV_TRI_EA8 = 54, CV_TRI_EA10 = 55, CV_TRI_EA12 = 56, CV_TRI_EA14 = 57, CV_TRI_PSW = 58, CV_TRI_PCXI = 59, CV_TRI_PC = 60, CV_TRI_FCX = 61, CV_TRI_LCX = 62, CV_TRI_ISP = 63, CV_TRI_ICR = 64, CV_TRI_BIV = 65, CV_TRI_BTV = 66, CV_TRI_SYSCON = 67, CV_TRI_DPRx_0 = 68, CV_TRI_DPRx_1 = 69, CV_TRI_DPRx_2 = 70, CV_TRI_DPRx_3 = 71, CV_TRI_CPRx_0 = 68, CV_TRI_CPRx_1 = 69, CV_TRI_CPRx_2 = 70, CV_TRI_CPRx_3 = 71, CV_TRI_DPMx_0 = 68, CV_TRI_DPMx_1 = 69, CV_TRI_DPMx_2 = 70, CV_TRI_DPMx_3 = 71, CV_TRI_CPMx_0 = 68, CV_TRI_CPMx_1 = 69, CV_TRI_CPMx_2 = 70, CV_TRI_CPMx_3 = 71, CV_TRI_DBGSSR = 72, CV_TRI_EXEVT = 73, CV_TRI_SWEVT = 74, CV_TRI_CREVT = 75, CV_TRI_TRnEVT = 76, CV_TRI_MMUCON = 77, CV_TRI_ASI = 78, CV_TRI_TVA = 79, CV_TRI_TPA = 80, CV_TRI_TPX = 81, CV_TRI_TFA = 82, // // Register set for the AM33 and related processors. // CV_AM33_NOREG = CV_REG_NONE, // "Extended" (general purpose integer) registers CV_AM33_E0 = 10, CV_AM33_E1 = 11, CV_AM33_E2 = 12, CV_AM33_E3 = 13, CV_AM33_E4 = 14, CV_AM33_E5 = 15, CV_AM33_E6 = 16, CV_AM33_E7 = 17, // Address registers CV_AM33_A0 = 20, CV_AM33_A1 = 21, CV_AM33_A2 = 22, CV_AM33_A3 = 23, // Integer data registers CV_AM33_D0 = 30, CV_AM33_D1 = 31, CV_AM33_D2 = 32, CV_AM33_D3 = 33, // (Single-precision) floating-point registers CV_AM33_FS0 = 40, CV_AM33_FS1 = 41, CV_AM33_FS2 = 42, CV_AM33_FS3 = 43, CV_AM33_FS4 = 44, CV_AM33_FS5 = 45, CV_AM33_FS6 = 46, CV_AM33_FS7 = 47, CV_AM33_FS8 = 48, CV_AM33_FS9 = 49, CV_AM33_FS10 = 50, CV_AM33_FS11 = 51, CV_AM33_FS12 = 52, CV_AM33_FS13 = 53, CV_AM33_FS14 = 54, CV_AM33_FS15 = 55, CV_AM33_FS16 = 56, CV_AM33_FS17 = 57, CV_AM33_FS18 = 58, CV_AM33_FS19 = 59, CV_AM33_FS20 = 60, CV_AM33_FS21 = 61, CV_AM33_FS22 = 62, CV_AM33_FS23 = 63, CV_AM33_FS24 = 64, CV_AM33_FS25 = 65, CV_AM33_FS26 = 66, CV_AM33_FS27 = 67, CV_AM33_FS28 = 68, CV_AM33_FS29 = 69, CV_AM33_FS30 = 70, CV_AM33_FS31 = 71, // Special purpose registers // Stack pointer CV_AM33_SP = 80, // Program counter CV_AM33_PC = 81, // Multiply-divide/accumulate registers CV_AM33_MDR = 82, CV_AM33_MDRQ = 83, CV_AM33_MCRH = 84, CV_AM33_MCRL = 85, CV_AM33_MCVF = 86, // CPU status words CV_AM33_EPSW = 87, CV_AM33_FPCR = 88, // Loop buffer registers CV_AM33_LIR = 89, CV_AM33_LAR = 90, // // Register set for the Mitsubishi M32R // CV_M32R_NOREG = CV_REG_NONE, CV_M32R_R0 = 10, CV_M32R_R1 = 11, CV_M32R_R2 = 12, CV_M32R_R3 = 13, CV_M32R_R4 = 14, CV_M32R_R5 = 15, CV_M32R_R6 = 16, CV_M32R_R7 = 17, CV_M32R_R8 = 18, CV_M32R_R9 = 19, CV_M32R_R10 = 20, CV_M32R_R11 = 21, CV_M32R_R12 = 22, // Gloabal Pointer, if used CV_M32R_R13 = 23, // Frame Pointer, if allocated CV_M32R_R14 = 24, // Link Register CV_M32R_R15 = 25, // Stack Pointer CV_M32R_PSW = 26, // Preocessor Status Register CV_M32R_CBR = 27, // Condition Bit Register CV_M32R_SPI = 28, // Interrupt Stack Pointer CV_M32R_SPU = 29, // User Stack Pointer CV_M32R_SPO = 30, // OS Stack Pointer CV_M32R_BPC = 31, // Backup Program Counter CV_M32R_ACHI = 32, // Accumulator High CV_M32R_ACLO = 33, // Accumulator Low CV_M32R_PC = 34, // Program Counter // // Register set for the SuperH SHMedia processor including compact // mode // // Integer - 64 bit general registers CV_SHMEDIA_NOREG = CV_REG_NONE, CV_SHMEDIA_R0 = 10, CV_SHMEDIA_R1 = 11, CV_SHMEDIA_R2 = 12, CV_SHMEDIA_R3 = 13, CV_SHMEDIA_R4 = 14, CV_SHMEDIA_R5 = 15, CV_SHMEDIA_R6 = 16, CV_SHMEDIA_R7 = 17, CV_SHMEDIA_R8 = 18, CV_SHMEDIA_R9 = 19, CV_SHMEDIA_R10 = 20, CV_SHMEDIA_R11 = 21, CV_SHMEDIA_R12 = 22, CV_SHMEDIA_R13 = 23, CV_SHMEDIA_R14 = 24, CV_SHMEDIA_R15 = 25, CV_SHMEDIA_R16 = 26, CV_SHMEDIA_R17 = 27, CV_SHMEDIA_R18 = 28, CV_SHMEDIA_R19 = 29, CV_SHMEDIA_R20 = 30, CV_SHMEDIA_R21 = 31, CV_SHMEDIA_R22 = 32, CV_SHMEDIA_R23 = 33, CV_SHMEDIA_R24 = 34, CV_SHMEDIA_R25 = 35, CV_SHMEDIA_R26 = 36, CV_SHMEDIA_R27 = 37, CV_SHMEDIA_R28 = 38, CV_SHMEDIA_R29 = 39, CV_SHMEDIA_R30 = 40, CV_SHMEDIA_R31 = 41, CV_SHMEDIA_R32 = 42, CV_SHMEDIA_R33 = 43, CV_SHMEDIA_R34 = 44, CV_SHMEDIA_R35 = 45, CV_SHMEDIA_R36 = 46, CV_SHMEDIA_R37 = 47, CV_SHMEDIA_R38 = 48, CV_SHMEDIA_R39 = 49, CV_SHMEDIA_R40 = 50, CV_SHMEDIA_R41 = 51, CV_SHMEDIA_R42 = 52, CV_SHMEDIA_R43 = 53, CV_SHMEDIA_R44 = 54, CV_SHMEDIA_R45 = 55, CV_SHMEDIA_R46 = 56, CV_SHMEDIA_R47 = 57, CV_SHMEDIA_R48 = 58, CV_SHMEDIA_R49 = 59, CV_SHMEDIA_R50 = 60, CV_SHMEDIA_R51 = 61, CV_SHMEDIA_R52 = 62, CV_SHMEDIA_R53 = 63, CV_SHMEDIA_R54 = 64, CV_SHMEDIA_R55 = 65, CV_SHMEDIA_R56 = 66, CV_SHMEDIA_R57 = 67, CV_SHMEDIA_R58 = 68, CV_SHMEDIA_R59 = 69, CV_SHMEDIA_R60 = 70, CV_SHMEDIA_R61 = 71, CV_SHMEDIA_R62 = 72, CV_SHMEDIA_R63 = 73, // Target Registers - 32 bit CV_SHMEDIA_TR0 = 74, CV_SHMEDIA_TR1 = 75, CV_SHMEDIA_TR2 = 76, CV_SHMEDIA_TR3 = 77, CV_SHMEDIA_TR4 = 78, CV_SHMEDIA_TR5 = 79, CV_SHMEDIA_TR6 = 80, CV_SHMEDIA_TR7 = 81, CV_SHMEDIA_TR8 = 82, // future-proof CV_SHMEDIA_TR9 = 83, // future-proof CV_SHMEDIA_TR10 = 84, // future-proof CV_SHMEDIA_TR11 = 85, // future-proof CV_SHMEDIA_TR12 = 86, // future-proof CV_SHMEDIA_TR13 = 87, // future-proof CV_SHMEDIA_TR14 = 88, // future-proof CV_SHMEDIA_TR15 = 89, // future-proof // Single - 32 bit fp registers CV_SHMEDIA_FR0 = 128, CV_SHMEDIA_FR1 = 129, CV_SHMEDIA_FR2 = 130, CV_SHMEDIA_FR3 = 131, CV_SHMEDIA_FR4 = 132, CV_SHMEDIA_FR5 = 133, CV_SHMEDIA_FR6 = 134, CV_SHMEDIA_FR7 = 135, CV_SHMEDIA_FR8 = 136, CV_SHMEDIA_FR9 = 137, CV_SHMEDIA_FR10 = 138, CV_SHMEDIA_FR11 = 139, CV_SHMEDIA_FR12 = 140, CV_SHMEDIA_FR13 = 141, CV_SHMEDIA_FR14 = 142, CV_SHMEDIA_FR15 = 143, CV_SHMEDIA_FR16 = 144, CV_SHMEDIA_FR17 = 145, CV_SHMEDIA_FR18 = 146, CV_SHMEDIA_FR19 = 147, CV_SHMEDIA_FR20 = 148, CV_SHMEDIA_FR21 = 149, CV_SHMEDIA_FR22 = 150, CV_SHMEDIA_FR23 = 151, CV_SHMEDIA_FR24 = 152, CV_SHMEDIA_FR25 = 153, CV_SHMEDIA_FR26 = 154, CV_SHMEDIA_FR27 = 155, CV_SHMEDIA_FR28 = 156, CV_SHMEDIA_FR29 = 157, CV_SHMEDIA_FR30 = 158, CV_SHMEDIA_FR31 = 159, CV_SHMEDIA_FR32 = 160, CV_SHMEDIA_FR33 = 161, CV_SHMEDIA_FR34 = 162, CV_SHMEDIA_FR35 = 163, CV_SHMEDIA_FR36 = 164, CV_SHMEDIA_FR37 = 165, CV_SHMEDIA_FR38 = 166, CV_SHMEDIA_FR39 = 167, CV_SHMEDIA_FR40 = 168, CV_SHMEDIA_FR41 = 169, CV_SHMEDIA_FR42 = 170, CV_SHMEDIA_FR43 = 171, CV_SHMEDIA_FR44 = 172, CV_SHMEDIA_FR45 = 173, CV_SHMEDIA_FR46 = 174, CV_SHMEDIA_FR47 = 175, CV_SHMEDIA_FR48 = 176, CV_SHMEDIA_FR49 = 177, CV_SHMEDIA_FR50 = 178, CV_SHMEDIA_FR51 = 179, CV_SHMEDIA_FR52 = 180, CV_SHMEDIA_FR53 = 181, CV_SHMEDIA_FR54 = 182, CV_SHMEDIA_FR55 = 183, CV_SHMEDIA_FR56 = 184, CV_SHMEDIA_FR57 = 185, CV_SHMEDIA_FR58 = 186, CV_SHMEDIA_FR59 = 187, CV_SHMEDIA_FR60 = 188, CV_SHMEDIA_FR61 = 189, CV_SHMEDIA_FR62 = 190, CV_SHMEDIA_FR63 = 191, // Double - 64 bit synonyms for 32bit fp register pairs // subtract 128 to find first base single register CV_SHMEDIA_DR0 = 256, CV_SHMEDIA_DR2 = 258, CV_SHMEDIA_DR4 = 260, CV_SHMEDIA_DR6 = 262, CV_SHMEDIA_DR8 = 264, CV_SHMEDIA_DR10 = 266, CV_SHMEDIA_DR12 = 268, CV_SHMEDIA_DR14 = 270, CV_SHMEDIA_DR16 = 272, CV_SHMEDIA_DR18 = 274, CV_SHMEDIA_DR20 = 276, CV_SHMEDIA_DR22 = 278, CV_SHMEDIA_DR24 = 280, CV_SHMEDIA_DR26 = 282, CV_SHMEDIA_DR28 = 284, CV_SHMEDIA_DR30 = 286, CV_SHMEDIA_DR32 = 288, CV_SHMEDIA_DR34 = 290, CV_SHMEDIA_DR36 = 292, CV_SHMEDIA_DR38 = 294, CV_SHMEDIA_DR40 = 296, CV_SHMEDIA_DR42 = 298, CV_SHMEDIA_DR44 = 300, CV_SHMEDIA_DR46 = 302, CV_SHMEDIA_DR48 = 304, CV_SHMEDIA_DR50 = 306, CV_SHMEDIA_DR52 = 308, CV_SHMEDIA_DR54 = 310, CV_SHMEDIA_DR56 = 312, CV_SHMEDIA_DR58 = 314, CV_SHMEDIA_DR60 = 316, CV_SHMEDIA_DR62 = 318, // Vector - 128 bit synonyms for 32bit fp register quads // subtract 384 to find first base single register CV_SHMEDIA_FV0 = 512, CV_SHMEDIA_FV4 = 516, CV_SHMEDIA_FV8 = 520, CV_SHMEDIA_FV12 = 524, CV_SHMEDIA_FV16 = 528, CV_SHMEDIA_FV20 = 532, CV_SHMEDIA_FV24 = 536, CV_SHMEDIA_FV28 = 540, CV_SHMEDIA_FV32 = 544, CV_SHMEDIA_FV36 = 548, CV_SHMEDIA_FV40 = 552, CV_SHMEDIA_FV44 = 556, CV_SHMEDIA_FV48 = 560, CV_SHMEDIA_FV52 = 564, CV_SHMEDIA_FV56 = 568, CV_SHMEDIA_FV60 = 572, // Matrix - 512 bit synonyms for 16 adjacent 32bit fp registers // subtract 896 to find first base single register CV_SHMEDIA_MTRX0 = 1024, CV_SHMEDIA_MTRX16 = 1040, CV_SHMEDIA_MTRX32 = 1056, CV_SHMEDIA_MTRX48 = 1072, // Control - Implementation defined 64bit control registers CV_SHMEDIA_CR0 = 2000, CV_SHMEDIA_CR1 = 2001, CV_SHMEDIA_CR2 = 2002, CV_SHMEDIA_CR3 = 2003, CV_SHMEDIA_CR4 = 2004, CV_SHMEDIA_CR5 = 2005, CV_SHMEDIA_CR6 = 2006, CV_SHMEDIA_CR7 = 2007, CV_SHMEDIA_CR8 = 2008, CV_SHMEDIA_CR9 = 2009, CV_SHMEDIA_CR10 = 2010, CV_SHMEDIA_CR11 = 2011, CV_SHMEDIA_CR12 = 2012, CV_SHMEDIA_CR13 = 2013, CV_SHMEDIA_CR14 = 2014, CV_SHMEDIA_CR15 = 2015, CV_SHMEDIA_CR16 = 2016, CV_SHMEDIA_CR17 = 2017, CV_SHMEDIA_CR18 = 2018, CV_SHMEDIA_CR19 = 2019, CV_SHMEDIA_CR20 = 2020, CV_SHMEDIA_CR21 = 2021, CV_SHMEDIA_CR22 = 2022, CV_SHMEDIA_CR23 = 2023, CV_SHMEDIA_CR24 = 2024, CV_SHMEDIA_CR25 = 2025, CV_SHMEDIA_CR26 = 2026, CV_SHMEDIA_CR27 = 2027, CV_SHMEDIA_CR28 = 2028, CV_SHMEDIA_CR29 = 2029, CV_SHMEDIA_CR30 = 2030, CV_SHMEDIA_CR31 = 2031, CV_SHMEDIA_CR32 = 2032, CV_SHMEDIA_CR33 = 2033, CV_SHMEDIA_CR34 = 2034, CV_SHMEDIA_CR35 = 2035, CV_SHMEDIA_CR36 = 2036, CV_SHMEDIA_CR37 = 2037, CV_SHMEDIA_CR38 = 2038, CV_SHMEDIA_CR39 = 2039, CV_SHMEDIA_CR40 = 2040, CV_SHMEDIA_CR41 = 2041, CV_SHMEDIA_CR42 = 2042, CV_SHMEDIA_CR43 = 2043, CV_SHMEDIA_CR44 = 2044, CV_SHMEDIA_CR45 = 2045, CV_SHMEDIA_CR46 = 2046, CV_SHMEDIA_CR47 = 2047, CV_SHMEDIA_CR48 = 2048, CV_SHMEDIA_CR49 = 2049, CV_SHMEDIA_CR50 = 2050, CV_SHMEDIA_CR51 = 2051, CV_SHMEDIA_CR52 = 2052, CV_SHMEDIA_CR53 = 2053, CV_SHMEDIA_CR54 = 2054, CV_SHMEDIA_CR55 = 2055, CV_SHMEDIA_CR56 = 2056, CV_SHMEDIA_CR57 = 2057, CV_SHMEDIA_CR58 = 2058, CV_SHMEDIA_CR59 = 2059, CV_SHMEDIA_CR60 = 2060, CV_SHMEDIA_CR61 = 2061, CV_SHMEDIA_CR62 = 2062, CV_SHMEDIA_CR63 = 2063, CV_SHMEDIA_FPSCR = 2064, // Compact mode synonyms CV_SHMEDIA_GBR = CV_SHMEDIA_R16, CV_SHMEDIA_MACL = 90, // synonym for lower 32bits of media R17 CV_SHMEDIA_MACH = 91, // synonym for upper 32bits of media R17 CV_SHMEDIA_PR = CV_SHMEDIA_R18, CV_SHMEDIA_T = 92, // synonym for lowest bit of media R19 CV_SHMEDIA_FPUL = CV_SHMEDIA_FR32, CV_SHMEDIA_PC = 93, CV_SHMEDIA_SR = CV_SHMEDIA_CR0, // // AMD64 registers // CV_AMD64_AL = 1, CV_AMD64_CL = 2, CV_AMD64_DL = 3, CV_AMD64_BL = 4, CV_AMD64_AH = 5, CV_AMD64_CH = 6, CV_AMD64_DH = 7, CV_AMD64_BH = 8, CV_AMD64_AX = 9, CV_AMD64_CX = 10, CV_AMD64_DX = 11, CV_AMD64_BX = 12, CV_AMD64_SP = 13, CV_AMD64_BP = 14, CV_AMD64_SI = 15, CV_AMD64_DI = 16, CV_AMD64_EAX = 17, CV_AMD64_ECX = 18, CV_AMD64_EDX = 19, CV_AMD64_EBX = 20, CV_AMD64_ESP = 21, CV_AMD64_EBP = 22, CV_AMD64_ESI = 23, CV_AMD64_EDI = 24, CV_AMD64_ES = 25, CV_AMD64_CS = 26, CV_AMD64_SS = 27, CV_AMD64_DS = 28, CV_AMD64_FS = 29, CV_AMD64_GS = 30, CV_AMD64_FLAGS = 32, CV_AMD64_RIP = 33, CV_AMD64_EFLAGS = 34, // Control registers CV_AMD64_CR0 = 80, CV_AMD64_CR1 = 81, CV_AMD64_CR2 = 82, CV_AMD64_CR3 = 83, CV_AMD64_CR4 = 84, CV_AMD64_CR8 = 88, // Debug registers CV_AMD64_DR0 = 90, CV_AMD64_DR1 = 91, CV_AMD64_DR2 = 92, CV_AMD64_DR3 = 93, CV_AMD64_DR4 = 94, CV_AMD64_DR5 = 95, CV_AMD64_DR6 = 96, CV_AMD64_DR7 = 97, CV_AMD64_DR8 = 98, CV_AMD64_DR9 = 99, CV_AMD64_DR10 = 100, CV_AMD64_DR11 = 101, CV_AMD64_DR12 = 102, CV_AMD64_DR13 = 103, CV_AMD64_DR14 = 104, CV_AMD64_DR15 = 105, CV_AMD64_GDTR = 110, CV_AMD64_GDTL = 111, CV_AMD64_IDTR = 112, CV_AMD64_IDTL = 113, CV_AMD64_LDTR = 114, CV_AMD64_TR = 115, CV_AMD64_ST0 = 128, CV_AMD64_ST1 = 129, CV_AMD64_ST2 = 130, CV_AMD64_ST3 = 131, CV_AMD64_ST4 = 132, CV_AMD64_ST5 = 133, CV_AMD64_ST6 = 134, CV_AMD64_ST7 = 135, CV_AMD64_CTRL = 136, CV_AMD64_STAT = 137, CV_AMD64_TAG = 138, CV_AMD64_FPIP = 139, CV_AMD64_FPCS = 140, CV_AMD64_FPDO = 141, CV_AMD64_FPDS = 142, CV_AMD64_ISEM = 143, CV_AMD64_FPEIP = 144, CV_AMD64_FPEDO = 145, CV_AMD64_MM0 = 146, CV_AMD64_MM1 = 147, CV_AMD64_MM2 = 148, CV_AMD64_MM3 = 149, CV_AMD64_MM4 = 150, CV_AMD64_MM5 = 151, CV_AMD64_MM6 = 152, CV_AMD64_MM7 = 153, CV_AMD64_XMM0 = 154, // KATMAI registers CV_AMD64_XMM1 = 155, CV_AMD64_XMM2 = 156, CV_AMD64_XMM3 = 157, CV_AMD64_XMM4 = 158, CV_AMD64_XMM5 = 159, CV_AMD64_XMM6 = 160, CV_AMD64_XMM7 = 161, CV_AMD64_XMM0_0 = 162, // KATMAI sub-registers CV_AMD64_XMM0_1 = 163, CV_AMD64_XMM0_2 = 164, CV_AMD64_XMM0_3 = 165, CV_AMD64_XMM1_0 = 166, CV_AMD64_XMM1_1 = 167, CV_AMD64_XMM1_2 = 168, CV_AMD64_XMM1_3 = 169, CV_AMD64_XMM2_0 = 170, CV_AMD64_XMM2_1 = 171, CV_AMD64_XMM2_2 = 172, CV_AMD64_XMM2_3 = 173, CV_AMD64_XMM3_0 = 174, CV_AMD64_XMM3_1 = 175, CV_AMD64_XMM3_2 = 176, CV_AMD64_XMM3_3 = 177, CV_AMD64_XMM4_0 = 178, CV_AMD64_XMM4_1 = 179, CV_AMD64_XMM4_2 = 180, CV_AMD64_XMM4_3 = 181, CV_AMD64_XMM5_0 = 182, CV_AMD64_XMM5_1 = 183, CV_AMD64_XMM5_2 = 184, CV_AMD64_XMM5_3 = 185, CV_AMD64_XMM6_0 = 186, CV_AMD64_XMM6_1 = 187, CV_AMD64_XMM6_2 = 188, CV_AMD64_XMM6_3 = 189, CV_AMD64_XMM7_0 = 190, CV_AMD64_XMM7_1 = 191, CV_AMD64_XMM7_2 = 192, CV_AMD64_XMM7_3 = 193, CV_AMD64_XMM0L = 194, CV_AMD64_XMM1L = 195, CV_AMD64_XMM2L = 196, CV_AMD64_XMM3L = 197, CV_AMD64_XMM4L = 198, CV_AMD64_XMM5L = 199, CV_AMD64_XMM6L = 200, CV_AMD64_XMM7L = 201, CV_AMD64_XMM0H = 202, CV_AMD64_XMM1H = 203, CV_AMD64_XMM2H = 204, CV_AMD64_XMM3H = 205, CV_AMD64_XMM4H = 206, CV_AMD64_XMM5H = 207, CV_AMD64_XMM6H = 208, CV_AMD64_XMM7H = 209, CV_AMD64_MXCSR = 211, // XMM status register CV_AMD64_EMM0L = 220, // XMM sub-registers (WNI integer) CV_AMD64_EMM1L = 221, CV_AMD64_EMM2L = 222, CV_AMD64_EMM3L = 223, CV_AMD64_EMM4L = 224, CV_AMD64_EMM5L = 225, CV_AMD64_EMM6L = 226, CV_AMD64_EMM7L = 227, CV_AMD64_EMM0H = 228, CV_AMD64_EMM1H = 229, CV_AMD64_EMM2H = 230, CV_AMD64_EMM3H = 231, CV_AMD64_EMM4H = 232, CV_AMD64_EMM5H = 233, CV_AMD64_EMM6H = 234, CV_AMD64_EMM7H = 235, // do not change the order of these regs, first one must be even too CV_AMD64_MM00 = 236, CV_AMD64_MM01 = 237, CV_AMD64_MM10 = 238, CV_AMD64_MM11 = 239, CV_AMD64_MM20 = 240, CV_AMD64_MM21 = 241, CV_AMD64_MM30 = 242, CV_AMD64_MM31 = 243, CV_AMD64_MM40 = 244, CV_AMD64_MM41 = 245, CV_AMD64_MM50 = 246, CV_AMD64_MM51 = 247, CV_AMD64_MM60 = 248, CV_AMD64_MM61 = 249, CV_AMD64_MM70 = 250, CV_AMD64_MM71 = 251, // Extended KATMAI registers CV_AMD64_XMM8 = 252, // KATMAI registers CV_AMD64_XMM9 = 253, CV_AMD64_XMM10 = 254, CV_AMD64_XMM11 = 255, CV_AMD64_XMM12 = 256, CV_AMD64_XMM13 = 257, CV_AMD64_XMM14 = 258, CV_AMD64_XMM15 = 259, CV_AMD64_XMM8_0 = 260, // KATMAI sub-registers CV_AMD64_XMM8_1 = 261, CV_AMD64_XMM8_2 = 262, CV_AMD64_XMM8_3 = 263, CV_AMD64_XMM9_0 = 264, CV_AMD64_XMM9_1 = 265, CV_AMD64_XMM9_2 = 266, CV_AMD64_XMM9_3 = 267, CV_AMD64_XMM10_0 = 268, CV_AMD64_XMM10_1 = 269, CV_AMD64_XMM10_2 = 270, CV_AMD64_XMM10_3 = 271, CV_AMD64_XMM11_0 = 272, CV_AMD64_XMM11_1 = 273, CV_AMD64_XMM11_2 = 274, CV_AMD64_XMM11_3 = 275, CV_AMD64_XMM12_0 = 276, CV_AMD64_XMM12_1 = 277, CV_AMD64_XMM12_2 = 278, CV_AMD64_XMM12_3 = 279, CV_AMD64_XMM13_0 = 280, CV_AMD64_XMM13_1 = 281, CV_AMD64_XMM13_2 = 282, CV_AMD64_XMM13_3 = 283, CV_AMD64_XMM14_0 = 284, CV_AMD64_XMM14_1 = 285, CV_AMD64_XMM14_2 = 286, CV_AMD64_XMM14_3 = 287, CV_AMD64_XMM15_0 = 288, CV_AMD64_XMM15_1 = 289, CV_AMD64_XMM15_2 = 290, CV_AMD64_XMM15_3 = 291, CV_AMD64_XMM8L = 292, CV_AMD64_XMM9L = 293, CV_AMD64_XMM10L = 294, CV_AMD64_XMM11L = 295, CV_AMD64_XMM12L = 296, CV_AMD64_XMM13L = 297, CV_AMD64_XMM14L = 298, CV_AMD64_XMM15L = 299, CV_AMD64_XMM8H = 300, CV_AMD64_XMM9H = 301, CV_AMD64_XMM10H = 302, CV_AMD64_XMM11H = 303, CV_AMD64_XMM12H = 304, CV_AMD64_XMM13H = 305, CV_AMD64_XMM14H = 306, CV_AMD64_XMM15H = 307, CV_AMD64_EMM8L = 308, // XMM sub-registers (WNI integer) CV_AMD64_EMM9L = 309, CV_AMD64_EMM10L = 310, CV_AMD64_EMM11L = 311, CV_AMD64_EMM12L = 312, CV_AMD64_EMM13L = 313, CV_AMD64_EMM14L = 314, CV_AMD64_EMM15L = 315, CV_AMD64_EMM8H = 316, CV_AMD64_EMM9H = 317, CV_AMD64_EMM10H = 318, CV_AMD64_EMM11H = 319, CV_AMD64_EMM12H = 320, CV_AMD64_EMM13H = 321, CV_AMD64_EMM14H = 322, CV_AMD64_EMM15H = 323, // Low byte forms of some standard registers CV_AMD64_SIL = 324, CV_AMD64_DIL = 325, CV_AMD64_BPL = 326, CV_AMD64_SPL = 327, // 64-bit regular registers CV_AMD64_RAX = 328, CV_AMD64_RBX = 329, CV_AMD64_RCX = 330, CV_AMD64_RDX = 331, CV_AMD64_RSI = 332, CV_AMD64_RDI = 333, CV_AMD64_RBP = 334, CV_AMD64_RSP = 335, // 64-bit integer registers with 8-, 16-, and 32-bit forms (B, W, and D) CV_AMD64_R8 = 336, CV_AMD64_R9 = 337, CV_AMD64_R10 = 338, CV_AMD64_R11 = 339, CV_AMD64_R12 = 340, CV_AMD64_R13 = 341, CV_AMD64_R14 = 342, CV_AMD64_R15 = 343, CV_AMD64_R8B = 344, CV_AMD64_R9B = 345, CV_AMD64_R10B = 346, CV_AMD64_R11B = 347, CV_AMD64_R12B = 348, CV_AMD64_R13B = 349, CV_AMD64_R14B = 350, CV_AMD64_R15B = 351, CV_AMD64_R8W = 352, CV_AMD64_R9W = 353, CV_AMD64_R10W = 354, CV_AMD64_R11W = 355, CV_AMD64_R12W = 356, CV_AMD64_R13W = 357, CV_AMD64_R14W = 358, CV_AMD64_R15W = 359, CV_AMD64_R8D = 360, CV_AMD64_R9D = 361, CV_AMD64_R10D = 362, CV_AMD64_R11D = 363, CV_AMD64_R12D = 364, CV_AMD64_R13D = 365, CV_AMD64_R14D = 366, CV_AMD64_R15D = 367, // Note: Next set of platform registers need to go into a new enum... // this one is above 44K now. } CV_HREG_e; enum StackFrameTypeEnum { FrameTypeFPO, // Frame pointer omitted, FPO info available FrameTypeTrap, // Kernel Trap frame FrameTypeTSS, // Kernel Trap frame FrameTypeStandard, // Standard EBP stackframe FrameTypeFrameData, // Frame pointer omitted, FrameData info available FrameTypeUnknown = -1, // Frame which does not have any debug info }; enum MemoryTypeEnum { MemTypeCode, // Read only code memory MemTypeData, // Read only data/stack memory MemTypeStack, // Read only stack memory MemTypeAny = -1, }; #endif ================================================ FILE: Addition/DIASDK2005/include/dia2.h ================================================ /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 6.00.0366 */ /* Compiler settings for dia2.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* more than 64k source lines */ /* verify that the version is high enough to compile this file*/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif #include "rpc.h" #include "rpcndr.h" #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of #endif // __RPCNDR_H_VERSION__ #ifndef COM_NO_WINDOWS_H #include "windows.h" #include "ole2.h" #endif /*COM_NO_WINDOWS_H*/ #ifndef __dia2_h__ #define __dia2_h__ #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /* Forward Declarations */ #ifndef __IDiaLoadCallback_FWD_DEFINED__ #define __IDiaLoadCallback_FWD_DEFINED__ typedef interface IDiaLoadCallback IDiaLoadCallback; #endif /* __IDiaLoadCallback_FWD_DEFINED__ */ #ifndef __IDiaLoadCallback2_FWD_DEFINED__ #define __IDiaLoadCallback2_FWD_DEFINED__ typedef interface IDiaLoadCallback2 IDiaLoadCallback2; #endif /* __IDiaLoadCallback2_FWD_DEFINED__ */ #ifndef __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ #define __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ typedef interface IDiaReadExeAtOffsetCallback IDiaReadExeAtOffsetCallback; #endif /* __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ */ #ifndef __IDiaReadExeAtRVACallback_FWD_DEFINED__ #define __IDiaReadExeAtRVACallback_FWD_DEFINED__ typedef interface IDiaReadExeAtRVACallback IDiaReadExeAtRVACallback; #endif /* __IDiaReadExeAtRVACallback_FWD_DEFINED__ */ #ifndef __IDiaDataSource_FWD_DEFINED__ #define __IDiaDataSource_FWD_DEFINED__ typedef interface IDiaDataSource IDiaDataSource; #endif /* __IDiaDataSource_FWD_DEFINED__ */ #ifndef __IDiaEnumSymbols_FWD_DEFINED__ #define __IDiaEnumSymbols_FWD_DEFINED__ typedef interface IDiaEnumSymbols IDiaEnumSymbols; #endif /* __IDiaEnumSymbols_FWD_DEFINED__ */ #ifndef __IDiaEnumSymbolsByAddr_FWD_DEFINED__ #define __IDiaEnumSymbolsByAddr_FWD_DEFINED__ typedef interface IDiaEnumSymbolsByAddr IDiaEnumSymbolsByAddr; #endif /* __IDiaEnumSymbolsByAddr_FWD_DEFINED__ */ #ifndef __IDiaEnumSourceFiles_FWD_DEFINED__ #define __IDiaEnumSourceFiles_FWD_DEFINED__ typedef interface IDiaEnumSourceFiles IDiaEnumSourceFiles; #endif /* __IDiaEnumSourceFiles_FWD_DEFINED__ */ #ifndef __IDiaEnumLineNumbers_FWD_DEFINED__ #define __IDiaEnumLineNumbers_FWD_DEFINED__ typedef interface IDiaEnumLineNumbers IDiaEnumLineNumbers; #endif /* __IDiaEnumLineNumbers_FWD_DEFINED__ */ #ifndef __IDiaEnumInjectedSources_FWD_DEFINED__ #define __IDiaEnumInjectedSources_FWD_DEFINED__ typedef interface IDiaEnumInjectedSources IDiaEnumInjectedSources; #endif /* __IDiaEnumInjectedSources_FWD_DEFINED__ */ #ifndef __IDiaEnumSegments_FWD_DEFINED__ #define __IDiaEnumSegments_FWD_DEFINED__ typedef interface IDiaEnumSegments IDiaEnumSegments; #endif /* __IDiaEnumSegments_FWD_DEFINED__ */ #ifndef __IDiaEnumSectionContribs_FWD_DEFINED__ #define __IDiaEnumSectionContribs_FWD_DEFINED__ typedef interface IDiaEnumSectionContribs IDiaEnumSectionContribs; #endif /* __IDiaEnumSectionContribs_FWD_DEFINED__ */ #ifndef __IDiaEnumFrameData_FWD_DEFINED__ #define __IDiaEnumFrameData_FWD_DEFINED__ typedef interface IDiaEnumFrameData IDiaEnumFrameData; #endif /* __IDiaEnumFrameData_FWD_DEFINED__ */ #ifndef __IDiaEnumDebugStreamData_FWD_DEFINED__ #define __IDiaEnumDebugStreamData_FWD_DEFINED__ typedef interface IDiaEnumDebugStreamData IDiaEnumDebugStreamData; #endif /* __IDiaEnumDebugStreamData_FWD_DEFINED__ */ #ifndef __IDiaEnumDebugStreams_FWD_DEFINED__ #define __IDiaEnumDebugStreams_FWD_DEFINED__ typedef interface IDiaEnumDebugStreams IDiaEnumDebugStreams; #endif /* __IDiaEnumDebugStreams_FWD_DEFINED__ */ #ifndef __IDiaAddressMap_FWD_DEFINED__ #define __IDiaAddressMap_FWD_DEFINED__ typedef interface IDiaAddressMap IDiaAddressMap; #endif /* __IDiaAddressMap_FWD_DEFINED__ */ #ifndef __IDiaSession_FWD_DEFINED__ #define __IDiaSession_FWD_DEFINED__ typedef interface IDiaSession IDiaSession; #endif /* __IDiaSession_FWD_DEFINED__ */ #ifndef __IDiaSymbol_FWD_DEFINED__ #define __IDiaSymbol_FWD_DEFINED__ typedef interface IDiaSymbol IDiaSymbol; #endif /* __IDiaSymbol_FWD_DEFINED__ */ #ifndef __IDiaSourceFile_FWD_DEFINED__ #define __IDiaSourceFile_FWD_DEFINED__ typedef interface IDiaSourceFile IDiaSourceFile; #endif /* __IDiaSourceFile_FWD_DEFINED__ */ #ifndef __IDiaLineNumber_FWD_DEFINED__ #define __IDiaLineNumber_FWD_DEFINED__ typedef interface IDiaLineNumber IDiaLineNumber; #endif /* __IDiaLineNumber_FWD_DEFINED__ */ #ifndef __IDiaSectionContrib_FWD_DEFINED__ #define __IDiaSectionContrib_FWD_DEFINED__ typedef interface IDiaSectionContrib IDiaSectionContrib; #endif /* __IDiaSectionContrib_FWD_DEFINED__ */ #ifndef __IDiaSegment_FWD_DEFINED__ #define __IDiaSegment_FWD_DEFINED__ typedef interface IDiaSegment IDiaSegment; #endif /* __IDiaSegment_FWD_DEFINED__ */ #ifndef __IDiaInjectedSource_FWD_DEFINED__ #define __IDiaInjectedSource_FWD_DEFINED__ typedef interface IDiaInjectedSource IDiaInjectedSource; #endif /* __IDiaInjectedSource_FWD_DEFINED__ */ #ifndef __IDiaLVarInstance_FWD_DEFINED__ #define __IDiaLVarInstance_FWD_DEFINED__ typedef interface IDiaLVarInstance IDiaLVarInstance; #endif /* __IDiaLVarInstance_FWD_DEFINED__ */ #ifndef __IDiaStackWalkFrame_FWD_DEFINED__ #define __IDiaStackWalkFrame_FWD_DEFINED__ typedef interface IDiaStackWalkFrame IDiaStackWalkFrame; #endif /* __IDiaStackWalkFrame_FWD_DEFINED__ */ #ifndef __IDiaFrameData_FWD_DEFINED__ #define __IDiaFrameData_FWD_DEFINED__ typedef interface IDiaFrameData IDiaFrameData; #endif /* __IDiaFrameData_FWD_DEFINED__ */ #ifndef __IDiaImageData_FWD_DEFINED__ #define __IDiaImageData_FWD_DEFINED__ typedef interface IDiaImageData IDiaImageData; #endif /* __IDiaImageData_FWD_DEFINED__ */ #ifndef __IDiaTable_FWD_DEFINED__ #define __IDiaTable_FWD_DEFINED__ typedef interface IDiaTable IDiaTable; #endif /* __IDiaTable_FWD_DEFINED__ */ #ifndef __IDiaEnumTables_FWD_DEFINED__ #define __IDiaEnumTables_FWD_DEFINED__ typedef interface IDiaEnumTables IDiaEnumTables; #endif /* __IDiaEnumTables_FWD_DEFINED__ */ #ifndef __DiaSource_FWD_DEFINED__ #define __DiaSource_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaSource DiaSource; #else typedef struct DiaSource DiaSource; #endif /* __cplusplus */ #endif /* __DiaSource_FWD_DEFINED__ */ #ifndef __DiaSourceAlt_FWD_DEFINED__ #define __DiaSourceAlt_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaSourceAlt DiaSourceAlt; #else typedef struct DiaSourceAlt DiaSourceAlt; #endif /* __cplusplus */ #endif /* __DiaSourceAlt_FWD_DEFINED__ */ #ifndef __DiaStackWalker_FWD_DEFINED__ #define __DiaStackWalker_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaStackWalker DiaStackWalker; #else typedef struct DiaStackWalker DiaStackWalker; #endif /* __cplusplus */ #endif /* __DiaStackWalker_FWD_DEFINED__ */ #ifndef __IDiaPropertyStorage_FWD_DEFINED__ #define __IDiaPropertyStorage_FWD_DEFINED__ typedef interface IDiaPropertyStorage IDiaPropertyStorage; #endif /* __IDiaPropertyStorage_FWD_DEFINED__ */ #ifndef __IDiaStackFrame_FWD_DEFINED__ #define __IDiaStackFrame_FWD_DEFINED__ typedef interface IDiaStackFrame IDiaStackFrame; #endif /* __IDiaStackFrame_FWD_DEFINED__ */ #ifndef __IDiaEnumStackFrames_FWD_DEFINED__ #define __IDiaEnumStackFrames_FWD_DEFINED__ typedef interface IDiaEnumStackFrames IDiaEnumStackFrames; #endif /* __IDiaEnumStackFrames_FWD_DEFINED__ */ #ifndef __IDiaStackWalkHelper_FWD_DEFINED__ #define __IDiaStackWalkHelper_FWD_DEFINED__ typedef interface IDiaStackWalkHelper IDiaStackWalkHelper; #endif /* __IDiaStackWalkHelper_FWD_DEFINED__ */ #ifndef __IDiaStackWalker_FWD_DEFINED__ #define __IDiaStackWalker_FWD_DEFINED__ typedef interface IDiaStackWalker IDiaStackWalker; #endif /* __IDiaStackWalker_FWD_DEFINED__ */ #ifndef __IDiaStackWalkHelper2_FWD_DEFINED__ #define __IDiaStackWalkHelper2_FWD_DEFINED__ typedef interface IDiaStackWalkHelper2 IDiaStackWalkHelper2; #endif /* __IDiaStackWalkHelper2_FWD_DEFINED__ */ #ifndef __IDiaStackWalker2_FWD_DEFINED__ #define __IDiaStackWalker2_FWD_DEFINED__ typedef interface IDiaStackWalker2 IDiaStackWalker2; #endif /* __IDiaStackWalker2_FWD_DEFINED__ */ /* header files for imported files */ #include "objidl.h" #include "oaidl.h" #include "propidl.h" #include "cvconst.h" #ifdef __cplusplus extern "C"{ #endif void * __RPC_USER MIDL_user_allocate(size_t); void __RPC_USER MIDL_user_free( void * ); /* interface __MIDL_itf_dia2_0000 */ /* [local] */ enum NameSearchOptions { nsNone = 0, nsfCaseSensitive = 0x1, nsfCaseInsensitive = 0x2, nsfFNameExt = 0x4, nsfRegularExpression = 0x8, nsfUndecoratedName = 0x10, nsCaseSensitive = nsfCaseSensitive, nsCaseInsensitive = nsfCaseInsensitive, nsFNameExt = nsfCaseInsensitive | nsfFNameExt, nsRegularExpression = nsfRegularExpression | nsfCaseSensitive, nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive } ; enum __MIDL___MIDL_itf_dia2_0000_0001 { E_PDB_OK = ( HRESULT )(( unsigned long )1 << 31 | ( unsigned long )( LONG )0x6d << 16 | ( unsigned long )1), E_PDB_USAGE = E_PDB_OK + 1, E_PDB_OUT_OF_MEMORY = E_PDB_USAGE + 1, E_PDB_FILE_SYSTEM = E_PDB_OUT_OF_MEMORY + 1, E_PDB_NOT_FOUND = E_PDB_FILE_SYSTEM + 1, E_PDB_INVALID_SIG = E_PDB_NOT_FOUND + 1, E_PDB_INVALID_AGE = E_PDB_INVALID_SIG + 1, E_PDB_PRECOMP_REQUIRED = E_PDB_INVALID_AGE + 1, E_PDB_OUT_OF_TI = E_PDB_PRECOMP_REQUIRED + 1, E_PDB_NOT_IMPLEMENTED = E_PDB_OUT_OF_TI + 1, E_PDB_V1_PDB = E_PDB_NOT_IMPLEMENTED + 1, E_PDB_FORMAT = E_PDB_V1_PDB + 1, E_PDB_LIMIT = E_PDB_FORMAT + 1, E_PDB_CORRUPT = E_PDB_LIMIT + 1, E_PDB_TI16 = E_PDB_CORRUPT + 1, E_PDB_ACCESS_DENIED = E_PDB_TI16 + 1, E_PDB_ILLEGAL_TYPE_EDIT = E_PDB_ACCESS_DENIED + 1, E_PDB_INVALID_EXECUTABLE = E_PDB_ILLEGAL_TYPE_EDIT + 1, E_PDB_DBG_NOT_FOUND = E_PDB_INVALID_EXECUTABLE + 1, E_PDB_NO_DEBUG_INFO = E_PDB_DBG_NOT_FOUND + 1, E_PDB_INVALID_EXE_TIMESTAMP = E_PDB_NO_DEBUG_INFO + 1, E_PDB_RESERVED = E_PDB_INVALID_EXE_TIMESTAMP + 1, E_PDB_DEBUG_INFO_NOT_IN_PDB = E_PDB_RESERVED + 1, E_PDB_SYMSRV_BAD_CACHE_PATH = E_PDB_DEBUG_INFO_NOT_IN_PDB + 1, E_PDB_SYMSRV_CACHE_FULL = E_PDB_SYMSRV_BAD_CACHE_PATH + 1, E_PDB_MAX = E_PDB_SYMSRV_CACHE_FULL + 1 } ; enum __MIDL___MIDL_itf_dia2_0000_0002 { DIA_E_MODNOTFOUND = E_PDB_MAX + 1, DIA_E_PROCNOTFOUND = DIA_E_MODNOTFOUND + 1 } ; typedef void ( __cdecl *PfnPDBDebugDirV )( BOOL __MIDL_0014, void *__MIDL_0015); extern RPC_IF_HANDLE __MIDL_itf_dia2_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0000_v0_0_s_ifspec; #ifndef __IDiaLoadCallback_INTERFACE_DEFINED__ #define __IDiaLoadCallback_INTERFACE_DEFINED__ /* interface IDiaLoadCallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLoadCallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C32ADB82-73F4-421b-95D5-A4706EDF5DBE") IDiaLoadCallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE NotifyDebugDir( /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyOpenDBG( /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyOpenPDB( /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictRegistryAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictSymbolServerAccess( void) = 0; }; #else /* C style interface */ typedef struct IDiaLoadCallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLoadCallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLoadCallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLoadCallback * This); HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( IDiaLoadCallback * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( IDiaLoadCallback * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( IDiaLoadCallback * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( IDiaLoadCallback * This); HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( IDiaLoadCallback * This); END_INTERFACE } IDiaLoadCallbackVtbl; interface IDiaLoadCallback { CONST_VTBL struct IDiaLoadCallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLoadCallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLoadCallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLoadCallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLoadCallback_NotifyDebugDir(This,fExecutable,cbData,pbData) \ (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,pbData) #define IDiaLoadCallback_NotifyOpenDBG(This,dbgPath,resultCode) \ (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) #define IDiaLoadCallback_NotifyOpenPDB(This,pdbPath,resultCode) \ (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) #define IDiaLoadCallback_RestrictRegistryAccess(This) \ (This)->lpVtbl -> RestrictRegistryAccess(This) #define IDiaLoadCallback_RestrictSymbolServerAccess(This) \ (This)->lpVtbl -> RestrictSymbolServerAccess(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyDebugDir_Proxy( IDiaLoadCallback * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData); void __RPC_STUB IDiaLoadCallback_NotifyDebugDir_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyOpenDBG_Proxy( IDiaLoadCallback * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); void __RPC_STUB IDiaLoadCallback_NotifyOpenDBG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyOpenPDB_Proxy( IDiaLoadCallback * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); void __RPC_STUB IDiaLoadCallback_NotifyOpenPDB_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_RestrictRegistryAccess_Proxy( IDiaLoadCallback * This); void __RPC_STUB IDiaLoadCallback_RestrictRegistryAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_RestrictSymbolServerAccess_Proxy( IDiaLoadCallback * This); void __RPC_STUB IDiaLoadCallback_RestrictSymbolServerAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLoadCallback_INTERFACE_DEFINED__ */ #ifndef __IDiaLoadCallback2_INTERFACE_DEFINED__ #define __IDiaLoadCallback2_INTERFACE_DEFINED__ /* interface IDiaLoadCallback2 */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLoadCallback2; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4688a074-5a4d-4486-aea8-7b90711d9f7c") IDiaLoadCallback2 : public IDiaLoadCallback { public: virtual HRESULT STDMETHODCALLTYPE RestrictOriginalPathAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictReferencePathAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictDBGAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictSystemRootAccess( void) = 0; }; #else /* C style interface */ typedef struct IDiaLoadCallback2Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLoadCallback2 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLoadCallback2 * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( IDiaLoadCallback2 * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( IDiaLoadCallback2 * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( IDiaLoadCallback2 * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictOriginalPathAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictReferencePathAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictDBGAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictSystemRootAccess )( IDiaLoadCallback2 * This); END_INTERFACE } IDiaLoadCallback2Vtbl; interface IDiaLoadCallback2 { CONST_VTBL struct IDiaLoadCallback2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLoadCallback2_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLoadCallback2_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLoadCallback2_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLoadCallback2_NotifyDebugDir(This,fExecutable,cbData,pbData) \ (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,pbData) #define IDiaLoadCallback2_NotifyOpenDBG(This,dbgPath,resultCode) \ (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) #define IDiaLoadCallback2_NotifyOpenPDB(This,pdbPath,resultCode) \ (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) #define IDiaLoadCallback2_RestrictRegistryAccess(This) \ (This)->lpVtbl -> RestrictRegistryAccess(This) #define IDiaLoadCallback2_RestrictSymbolServerAccess(This) \ (This)->lpVtbl -> RestrictSymbolServerAccess(This) #define IDiaLoadCallback2_RestrictOriginalPathAccess(This) \ (This)->lpVtbl -> RestrictOriginalPathAccess(This) #define IDiaLoadCallback2_RestrictReferencePathAccess(This) \ (This)->lpVtbl -> RestrictReferencePathAccess(This) #define IDiaLoadCallback2_RestrictDBGAccess(This) \ (This)->lpVtbl -> RestrictDBGAccess(This) #define IDiaLoadCallback2_RestrictSystemRootAccess(This) \ (This)->lpVtbl -> RestrictSystemRootAccess(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictOriginalPathAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictOriginalPathAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictReferencePathAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictReferencePathAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictDBGAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictDBGAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictSystemRootAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictSystemRootAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLoadCallback2_INTERFACE_DEFINED__ */ #ifndef __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ #define __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ /* interface IDiaReadExeAtOffsetCallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaReadExeAtOffsetCallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("587A461C-B80B-4f54-9194-5032589A6319") IDiaReadExeAtOffsetCallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadExecutableAt( /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; }; #else /* C style interface */ typedef struct IDiaReadExeAtOffsetCallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaReadExeAtOffsetCallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaReadExeAtOffsetCallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaReadExeAtOffsetCallback * This); HRESULT ( STDMETHODCALLTYPE *ReadExecutableAt )( IDiaReadExeAtOffsetCallback * This, /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); END_INTERFACE } IDiaReadExeAtOffsetCallbackVtbl; interface IDiaReadExeAtOffsetCallback { CONST_VTBL struct IDiaReadExeAtOffsetCallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaReadExeAtOffsetCallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaReadExeAtOffsetCallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaReadExeAtOffsetCallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaReadExeAtOffsetCallback_ReadExecutableAt(This,fileOffset,cbData,pcbData,pbData) \ (This)->lpVtbl -> ReadExecutableAt(This,fileOffset,cbData,pcbData,pbData) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaReadExeAtOffsetCallback_ReadExecutableAt_Proxy( IDiaReadExeAtOffsetCallback * This, /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaReadExeAtOffsetCallback_ReadExecutableAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ */ #ifndef __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ #define __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ /* interface IDiaReadExeAtRVACallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaReadExeAtRVACallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8E3F80CA-7517-432a-BA07-285134AAEA8E") IDiaReadExeAtRVACallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadExecutableAtRVA( /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; }; #else /* C style interface */ typedef struct IDiaReadExeAtRVACallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaReadExeAtRVACallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaReadExeAtRVACallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaReadExeAtRVACallback * This); HRESULT ( STDMETHODCALLTYPE *ReadExecutableAtRVA )( IDiaReadExeAtRVACallback * This, /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); END_INTERFACE } IDiaReadExeAtRVACallbackVtbl; interface IDiaReadExeAtRVACallback { CONST_VTBL struct IDiaReadExeAtRVACallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaReadExeAtRVACallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaReadExeAtRVACallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaReadExeAtRVACallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaReadExeAtRVACallback_ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,pbData) \ (This)->lpVtbl -> ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,pbData) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaReadExeAtRVACallback_ReadExecutableAtRVA_Proxy( IDiaReadExeAtRVACallback * This, /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaReadExeAtRVACallback_ReadExecutableAtRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ */ #ifndef __IDiaDataSource_INTERFACE_DEFINED__ #define __IDiaDataSource_INTERFACE_DEFINED__ /* interface IDiaDataSource */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaDataSource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("79F1BB5F-B66E-48e5-B6A9-1545C323CA3D") IDiaDataSource : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lastError( /* [retval][out] */ BSTR *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataFromPdb( /* [in] */ LPCOLESTR pdbPath) = 0; virtual HRESULT STDMETHODCALLTYPE loadAndValidateDataFromPdb( /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataForExe( /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataFromIStream( /* [in] */ IStream *pIStream) = 0; virtual HRESULT STDMETHODCALLTYPE openSession( /* [out] */ IDiaSession **ppSession) = 0; }; #else /* C style interface */ typedef struct IDiaDataSourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaDataSource * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaDataSource * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaDataSource * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastError )( IDiaDataSource * This, /* [retval][out] */ BSTR *pRetVal); HRESULT ( STDMETHODCALLTYPE *loadDataFromPdb )( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath); HRESULT ( STDMETHODCALLTYPE *loadAndValidateDataFromPdb )( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age); HRESULT ( STDMETHODCALLTYPE *loadDataForExe )( IDiaDataSource * This, /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback); HRESULT ( STDMETHODCALLTYPE *loadDataFromIStream )( IDiaDataSource * This, /* [in] */ IStream *pIStream); HRESULT ( STDMETHODCALLTYPE *openSession )( IDiaDataSource * This, /* [out] */ IDiaSession **ppSession); END_INTERFACE } IDiaDataSourceVtbl; interface IDiaDataSource { CONST_VTBL struct IDiaDataSourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaDataSource_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaDataSource_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaDataSource_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaDataSource_get_lastError(This,pRetVal) \ (This)->lpVtbl -> get_lastError(This,pRetVal) #define IDiaDataSource_loadDataFromPdb(This,pdbPath) \ (This)->lpVtbl -> loadDataFromPdb(This,pdbPath) #define IDiaDataSource_loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) \ (This)->lpVtbl -> loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) #define IDiaDataSource_loadDataForExe(This,executable,searchPath,pCallback) \ (This)->lpVtbl -> loadDataForExe(This,executable,searchPath,pCallback) #define IDiaDataSource_loadDataFromIStream(This,pIStream) \ (This)->lpVtbl -> loadDataFromIStream(This,pIStream) #define IDiaDataSource_openSession(This,ppSession) \ (This)->lpVtbl -> openSession(This,ppSession) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaDataSource_get_lastError_Proxy( IDiaDataSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaDataSource_get_lastError_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataFromPdb_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath); void __RPC_STUB IDiaDataSource_loadDataFromPdb_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadAndValidateDataFromPdb_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age); void __RPC_STUB IDiaDataSource_loadAndValidateDataFromPdb_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataForExe_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback); void __RPC_STUB IDiaDataSource_loadDataForExe_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataFromIStream_Proxy( IDiaDataSource * This, /* [in] */ IStream *pIStream); void __RPC_STUB IDiaDataSource_loadDataFromIStream_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_openSession_Proxy( IDiaDataSource * This, /* [out] */ IDiaSession **ppSession); void __RPC_STUB IDiaDataSource_openSession_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaDataSource_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSymbols_INTERFACE_DEFINED__ #define __IDiaEnumSymbols_INTERFACE_DEFINED__ /* interface IDiaEnumSymbols */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSymbols; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("CAB72C48-443B-48f5-9B0B-42F0820AB29A") IDiaEnumSymbols : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSymbols **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSymbolsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSymbols * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSymbols * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSymbols * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSymbols * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSymbols * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSymbols * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSymbols * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSymbols * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSymbols * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSymbols * This, /* [out] */ IDiaEnumSymbols **ppenum); END_INTERFACE } IDiaEnumSymbolsVtbl; interface IDiaEnumSymbols { CONST_VTBL struct IDiaEnumSymbolsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSymbols_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSymbols_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSymbols_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSymbols_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSymbols_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSymbols_Item(This,index,symbol) \ (This)->lpVtbl -> Item(This,index,symbol) #define IDiaEnumSymbols_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbols_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSymbols_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSymbols_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_get__NewEnum_Proxy( IDiaEnumSymbols * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSymbols_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_get_Count_Proxy( IDiaEnumSymbols * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSymbols_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Item_Proxy( IDiaEnumSymbols * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol); void __RPC_STUB IDiaEnumSymbols_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Next_Proxy( IDiaEnumSymbols * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbols_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Skip_Proxy( IDiaEnumSymbols * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSymbols_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Reset_Proxy( IDiaEnumSymbols * This); void __RPC_STUB IDiaEnumSymbols_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Clone_Proxy( IDiaEnumSymbols * This, /* [out] */ IDiaEnumSymbols **ppenum); void __RPC_STUB IDiaEnumSymbols_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSymbols_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ #define __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ /* interface IDiaEnumSymbolsByAddr */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSymbolsByAddr; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("624B7D9C-24EA-4421-9D06-3B577471C1FA") IDiaEnumSymbolsByAddr : public IUnknown { public: virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByAddr( /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByRVA( /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByVA( /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Prev( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSymbolsByAddr **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSymbolsByAddrVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSymbolsByAddr * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSymbolsByAddr * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSymbolsByAddr * This); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByAddr )( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByRVA )( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByVA )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Prev )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSymbolsByAddr * This, /* [out] */ IDiaEnumSymbolsByAddr **ppenum); END_INTERFACE } IDiaEnumSymbolsByAddrVtbl; interface IDiaEnumSymbolsByAddr { CONST_VTBL struct IDiaEnumSymbolsByAddrVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSymbolsByAddr_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSymbolsByAddr_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSymbolsByAddr_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSymbolsByAddr_symbolByAddr(This,isect,offset,ppSymbol) \ (This)->lpVtbl -> symbolByAddr(This,isect,offset,ppSymbol) #define IDiaEnumSymbolsByAddr_symbolByRVA(This,relativeVirtualAddress,ppSymbol) \ (This)->lpVtbl -> symbolByRVA(This,relativeVirtualAddress,ppSymbol) #define IDiaEnumSymbolsByAddr_symbolByVA(This,virtualAddress,ppSymbol) \ (This)->lpVtbl -> symbolByVA(This,virtualAddress,ppSymbol) #define IDiaEnumSymbolsByAddr_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbolsByAddr_Prev(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Prev(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbolsByAddr_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByAddr_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByRVA_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByVA_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Next_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbolsByAddr_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Prev_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbolsByAddr_Prev_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Clone_Proxy( IDiaEnumSymbolsByAddr * This, /* [out] */ IDiaEnumSymbolsByAddr **ppenum); void __RPC_STUB IDiaEnumSymbolsByAddr_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSourceFiles_INTERFACE_DEFINED__ #define __IDiaEnumSourceFiles_INTERFACE_DEFINED__ /* interface IDiaEnumSourceFiles */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSourceFiles; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("10F3DBD9-664F-4469-B808-9471C7A50538") IDiaEnumSourceFiles : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSourceFiles **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSourceFilesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSourceFiles * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSourceFiles * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSourceFiles * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSourceFiles * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSourceFiles * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSourceFiles * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSourceFiles * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSourceFiles * This, /* [out] */ IDiaEnumSourceFiles **ppenum); END_INTERFACE } IDiaEnumSourceFilesVtbl; interface IDiaEnumSourceFiles { CONST_VTBL struct IDiaEnumSourceFilesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSourceFiles_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSourceFiles_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSourceFiles_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSourceFiles_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSourceFiles_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSourceFiles_Item(This,index,sourceFile) \ (This)->lpVtbl -> Item(This,index,sourceFile) #define IDiaEnumSourceFiles_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSourceFiles_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSourceFiles_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSourceFiles_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_get__NewEnum_Proxy( IDiaEnumSourceFiles * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSourceFiles_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_get_Count_Proxy( IDiaEnumSourceFiles * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSourceFiles_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Item_Proxy( IDiaEnumSourceFiles * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile); void __RPC_STUB IDiaEnumSourceFiles_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Next_Proxy( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSourceFiles_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Skip_Proxy( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSourceFiles_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Reset_Proxy( IDiaEnumSourceFiles * This); void __RPC_STUB IDiaEnumSourceFiles_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Clone_Proxy( IDiaEnumSourceFiles * This, /* [out] */ IDiaEnumSourceFiles **ppenum); void __RPC_STUB IDiaEnumSourceFiles_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSourceFiles_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumLineNumbers_INTERFACE_DEFINED__ #define __IDiaEnumLineNumbers_INTERFACE_DEFINED__ /* interface IDiaEnumLineNumbers */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumLineNumbers; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("FE30E878-54AC-44f1-81BA-39DE940F6052") IDiaEnumLineNumbers : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumLineNumbers **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumLineNumbersVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumLineNumbers * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumLineNumbers * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumLineNumbers * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumLineNumbers * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumLineNumbers * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumLineNumbers * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumLineNumbers * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumLineNumbers * This, /* [out] */ IDiaEnumLineNumbers **ppenum); END_INTERFACE } IDiaEnumLineNumbersVtbl; interface IDiaEnumLineNumbers { CONST_VTBL struct IDiaEnumLineNumbersVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumLineNumbers_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumLineNumbers_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumLineNumbers_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumLineNumbers_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumLineNumbers_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumLineNumbers_Item(This,index,lineNumber) \ (This)->lpVtbl -> Item(This,index,lineNumber) #define IDiaEnumLineNumbers_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumLineNumbers_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumLineNumbers_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumLineNumbers_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_get__NewEnum_Proxy( IDiaEnumLineNumbers * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumLineNumbers_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_get_Count_Proxy( IDiaEnumLineNumbers * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumLineNumbers_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Item_Proxy( IDiaEnumLineNumbers * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber); void __RPC_STUB IDiaEnumLineNumbers_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Next_Proxy( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumLineNumbers_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Skip_Proxy( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumLineNumbers_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Reset_Proxy( IDiaEnumLineNumbers * This); void __RPC_STUB IDiaEnumLineNumbers_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Clone_Proxy( IDiaEnumLineNumbers * This, /* [out] */ IDiaEnumLineNumbers **ppenum); void __RPC_STUB IDiaEnumLineNumbers_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumLineNumbers_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumInjectedSources_INTERFACE_DEFINED__ #define __IDiaEnumInjectedSources_INTERFACE_DEFINED__ /* interface IDiaEnumInjectedSources */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumInjectedSources; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("D5612573-6925-4468-8883-98CDEC8C384A") IDiaEnumInjectedSources : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumInjectedSources **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumInjectedSourcesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumInjectedSources * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumInjectedSources * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumInjectedSources * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumInjectedSources * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumInjectedSources * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumInjectedSources * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumInjectedSources * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumInjectedSources * This, /* [out] */ IDiaEnumInjectedSources **ppenum); END_INTERFACE } IDiaEnumInjectedSourcesVtbl; interface IDiaEnumInjectedSources { CONST_VTBL struct IDiaEnumInjectedSourcesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumInjectedSources_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumInjectedSources_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumInjectedSources_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumInjectedSources_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumInjectedSources_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumInjectedSources_Item(This,index,injectedSource) \ (This)->lpVtbl -> Item(This,index,injectedSource) #define IDiaEnumInjectedSources_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumInjectedSources_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumInjectedSources_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumInjectedSources_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_get__NewEnum_Proxy( IDiaEnumInjectedSources * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumInjectedSources_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_get_Count_Proxy( IDiaEnumInjectedSources * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumInjectedSources_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Item_Proxy( IDiaEnumInjectedSources * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource); void __RPC_STUB IDiaEnumInjectedSources_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Next_Proxy( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumInjectedSources_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Skip_Proxy( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumInjectedSources_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Reset_Proxy( IDiaEnumInjectedSources * This); void __RPC_STUB IDiaEnumInjectedSources_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Clone_Proxy( IDiaEnumInjectedSources * This, /* [out] */ IDiaEnumInjectedSources **ppenum); void __RPC_STUB IDiaEnumInjectedSources_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumInjectedSources_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSegments_INTERFACE_DEFINED__ #define __IDiaEnumSegments_INTERFACE_DEFINED__ /* interface IDiaEnumSegments */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSegments; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("E8368CA9-01D1-419d-AC0C-E31235DBDA9F") IDiaEnumSegments : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSegments **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSegmentsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSegments * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSegments * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSegments * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSegments * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSegments * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSegments * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSegments * This, /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSegments * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSegments * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSegments * This, /* [out] */ IDiaEnumSegments **ppenum); END_INTERFACE } IDiaEnumSegmentsVtbl; interface IDiaEnumSegments { CONST_VTBL struct IDiaEnumSegmentsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSegments_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSegments_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSegments_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSegments_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSegments_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSegments_Item(This,index,segment) \ (This)->lpVtbl -> Item(This,index,segment) #define IDiaEnumSegments_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSegments_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSegments_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSegments_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_get__NewEnum_Proxy( IDiaEnumSegments * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSegments_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_get_Count_Proxy( IDiaEnumSegments * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSegments_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Item_Proxy( IDiaEnumSegments * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment); void __RPC_STUB IDiaEnumSegments_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Next_Proxy( IDiaEnumSegments * This, /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSegments_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Skip_Proxy( IDiaEnumSegments * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSegments_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Reset_Proxy( IDiaEnumSegments * This); void __RPC_STUB IDiaEnumSegments_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Clone_Proxy( IDiaEnumSegments * This, /* [out] */ IDiaEnumSegments **ppenum); void __RPC_STUB IDiaEnumSegments_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSegments_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSectionContribs_INTERFACE_DEFINED__ #define __IDiaEnumSectionContribs_INTERFACE_DEFINED__ /* interface IDiaEnumSectionContribs */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSectionContribs; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1994DEB2-2C82-4b1d-A57F-AFF424D54A68") IDiaEnumSectionContribs : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSectionContribs **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSectionContribsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSectionContribs * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSectionContribs * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSectionContribs * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSectionContribs * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSectionContribs * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSectionContribs * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSectionContribs * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSectionContribs * This, /* [out] */ IDiaEnumSectionContribs **ppenum); END_INTERFACE } IDiaEnumSectionContribsVtbl; interface IDiaEnumSectionContribs { CONST_VTBL struct IDiaEnumSectionContribsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSectionContribs_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSectionContribs_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSectionContribs_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSectionContribs_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSectionContribs_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSectionContribs_Item(This,index,section) \ (This)->lpVtbl -> Item(This,index,section) #define IDiaEnumSectionContribs_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSectionContribs_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSectionContribs_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSectionContribs_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_get__NewEnum_Proxy( IDiaEnumSectionContribs * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSectionContribs_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_get_Count_Proxy( IDiaEnumSectionContribs * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSectionContribs_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Item_Proxy( IDiaEnumSectionContribs * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section); void __RPC_STUB IDiaEnumSectionContribs_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Next_Proxy( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSectionContribs_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Skip_Proxy( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSectionContribs_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Reset_Proxy( IDiaEnumSectionContribs * This); void __RPC_STUB IDiaEnumSectionContribs_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Clone_Proxy( IDiaEnumSectionContribs * This, /* [out] */ IDiaEnumSectionContribs **ppenum); void __RPC_STUB IDiaEnumSectionContribs_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSectionContribs_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumFrameData_INTERFACE_DEFINED__ #define __IDiaEnumFrameData_INTERFACE_DEFINED__ /* interface IDiaEnumFrameData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumFrameData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F") IDiaEnumFrameData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumFrameData **ppenum) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByRVA( /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByVA( /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame) = 0; }; #else /* C style interface */ typedef struct IDiaEnumFrameDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumFrameData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumFrameData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumFrameData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumFrameData * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumFrameData * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumFrameData * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumFrameData * This, /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumFrameData * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumFrameData * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumFrameData * This, /* [out] */ IDiaEnumFrameData **ppenum); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByRVA )( IDiaEnumFrameData * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByVA )( IDiaEnumFrameData * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame); END_INTERFACE } IDiaEnumFrameDataVtbl; interface IDiaEnumFrameData { CONST_VTBL struct IDiaEnumFrameDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumFrameData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumFrameData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumFrameData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumFrameData_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumFrameData_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumFrameData_Item(This,index,frame) \ (This)->lpVtbl -> Item(This,index,frame) #define IDiaEnumFrameData_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumFrameData_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumFrameData_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumFrameData_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #define IDiaEnumFrameData_frameByRVA(This,relativeVirtualAddress,frame) \ (This)->lpVtbl -> frameByRVA(This,relativeVirtualAddress,frame) #define IDiaEnumFrameData_frameByVA(This,virtualAddress,frame) \ (This)->lpVtbl -> frameByVA(This,virtualAddress,frame) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_get__NewEnum_Proxy( IDiaEnumFrameData * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumFrameData_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_get_Count_Proxy( IDiaEnumFrameData * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumFrameData_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Item_Proxy( IDiaEnumFrameData * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Next_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumFrameData_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Skip_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumFrameData_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Reset_Proxy( IDiaEnumFrameData * This); void __RPC_STUB IDiaEnumFrameData_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Clone_Proxy( IDiaEnumFrameData * This, /* [out] */ IDiaEnumFrameData **ppenum); void __RPC_STUB IDiaEnumFrameData_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_frameByRVA_Proxy( IDiaEnumFrameData * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_frameByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_frameByVA_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_frameByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumFrameData_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ #define __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ /* interface IDiaEnumDebugStreamData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumDebugStreamData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("486943E8-D187-4a6b-A3C4-291259FFF60D") IDiaEnumDebugStreamData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumDebugStreamData **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumDebugStreamDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumDebugStreamData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumDebugStreamData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumDebugStreamData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumDebugStreamData * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumDebugStreamData * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaEnumDebugStreamData * This, /* [retval][out] */ BSTR *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumDebugStreamData * This, /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumDebugStreamData * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumDebugStreamData * This, /* [out] */ IDiaEnumDebugStreamData **ppenum); END_INTERFACE } IDiaEnumDebugStreamDataVtbl; interface IDiaEnumDebugStreamData { CONST_VTBL struct IDiaEnumDebugStreamDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumDebugStreamData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumDebugStreamData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumDebugStreamData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumDebugStreamData_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumDebugStreamData_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumDebugStreamData_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaEnumDebugStreamData_Item(This,index,cbData,pcbData,pbData) \ (This)->lpVtbl -> Item(This,index,cbData,pcbData,pbData) #define IDiaEnumDebugStreamData_Next(This,celt,cbData,pcbData,pbData,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,cbData,pcbData,pbData,pceltFetched) #define IDiaEnumDebugStreamData_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumDebugStreamData_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumDebugStreamData_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get__NewEnum_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get_Count_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get_name_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Item_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaEnumDebugStreamData_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Next_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumDebugStreamData_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Skip_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumDebugStreamData_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Reset_Proxy( IDiaEnumDebugStreamData * This); void __RPC_STUB IDiaEnumDebugStreamData_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Clone_Proxy( IDiaEnumDebugStreamData * This, /* [out] */ IDiaEnumDebugStreamData **ppenum); void __RPC_STUB IDiaEnumDebugStreamData_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumDebugStreams_INTERFACE_DEFINED__ #define __IDiaEnumDebugStreams_INTERFACE_DEFINED__ /* interface IDiaEnumDebugStreams */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumDebugStreams; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("08CBB41E-47A6-4f87-92F1-1C9C87CED044") IDiaEnumDebugStreams : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumDebugStreams **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumDebugStreamsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumDebugStreams * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumDebugStreams * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumDebugStreams * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumDebugStreams * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumDebugStreams * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumDebugStreams * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumDebugStreams * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumDebugStreams * This, /* [out] */ IDiaEnumDebugStreams **ppenum); END_INTERFACE } IDiaEnumDebugStreamsVtbl; interface IDiaEnumDebugStreams { CONST_VTBL struct IDiaEnumDebugStreamsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumDebugStreams_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumDebugStreams_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumDebugStreams_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumDebugStreams_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumDebugStreams_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumDebugStreams_Item(This,index,stream) \ (This)->lpVtbl -> Item(This,index,stream) #define IDiaEnumDebugStreams_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumDebugStreams_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumDebugStreams_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumDebugStreams_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_get__NewEnum_Proxy( IDiaEnumDebugStreams * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumDebugStreams_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_get_Count_Proxy( IDiaEnumDebugStreams * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumDebugStreams_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Item_Proxy( IDiaEnumDebugStreams * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream); void __RPC_STUB IDiaEnumDebugStreams_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Next_Proxy( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumDebugStreams_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Skip_Proxy( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumDebugStreams_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Reset_Proxy( IDiaEnumDebugStreams * This); void __RPC_STUB IDiaEnumDebugStreams_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Clone_Proxy( IDiaEnumDebugStreams * This, /* [out] */ IDiaEnumDebugStreams **ppenum); void __RPC_STUB IDiaEnumDebugStreams_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumDebugStreams_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0138 */ /* [local] */ struct DiaAddressMapEntry { DWORD rva; DWORD rvaTo; } ; extern RPC_IF_HANDLE __MIDL_itf_dia2_0138_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0138_v0_0_s_ifspec; #ifndef __IDiaAddressMap_INTERFACE_DEFINED__ #define __IDiaAddressMap_INTERFACE_DEFINED__ /* interface IDiaAddressMap */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaAddressMap; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("B62A2E7A-067A-4ea3-B598-04C09717502C") IDiaAddressMap : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressMapEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_addressMapEnabled( /* [in] */ BOOL NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddressEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_relativeVirtualAddressEnabled( /* [in] */ BOOL NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageAlign( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_imageAlign( /* [in] */ DWORD NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE set_imageHeaders( /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData, /* [in] */ BOOL originalHeaders) = 0; virtual HRESULT STDMETHODCALLTYPE set_addressMap( /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry *pData, /* [in] */ BOOL imageToSymbols) = 0; }; #else /* C style interface */ typedef struct IDiaAddressMapVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaAddressMap * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaAddressMap * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaAddressMap * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressMapEnabled )( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_addressMapEnabled )( IDiaAddressMap * This, /* [in] */ BOOL NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddressEnabled )( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_relativeVirtualAddressEnabled )( IDiaAddressMap * This, /* [in] */ BOOL NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageAlign )( IDiaAddressMap * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_imageAlign )( IDiaAddressMap * This, /* [in] */ DWORD NewVal); HRESULT ( STDMETHODCALLTYPE *set_imageHeaders )( IDiaAddressMap * This, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData, /* [in] */ BOOL originalHeaders); HRESULT ( STDMETHODCALLTYPE *set_addressMap )( IDiaAddressMap * This, /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry *pData, /* [in] */ BOOL imageToSymbols); END_INTERFACE } IDiaAddressMapVtbl; interface IDiaAddressMap { CONST_VTBL struct IDiaAddressMapVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaAddressMap_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaAddressMap_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaAddressMap_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaAddressMap_get_addressMapEnabled(This,pRetVal) \ (This)->lpVtbl -> get_addressMapEnabled(This,pRetVal) #define IDiaAddressMap_put_addressMapEnabled(This,NewVal) \ (This)->lpVtbl -> put_addressMapEnabled(This,NewVal) #define IDiaAddressMap_get_relativeVirtualAddressEnabled(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddressEnabled(This,pRetVal) #define IDiaAddressMap_put_relativeVirtualAddressEnabled(This,NewVal) \ (This)->lpVtbl -> put_relativeVirtualAddressEnabled(This,NewVal) #define IDiaAddressMap_get_imageAlign(This,pRetVal) \ (This)->lpVtbl -> get_imageAlign(This,pRetVal) #define IDiaAddressMap_put_imageAlign(This,NewVal) \ (This)->lpVtbl -> put_imageAlign(This,NewVal) #define IDiaAddressMap_set_imageHeaders(This,cbData,pbData,originalHeaders) \ (This)->lpVtbl -> set_imageHeaders(This,cbData,pbData,originalHeaders) #define IDiaAddressMap_set_addressMap(This,cData,pData,imageToSymbols) \ (This)->lpVtbl -> set_addressMap(This,cData,pData,imageToSymbols) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_addressMapEnabled_Proxy( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaAddressMap_get_addressMapEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_addressMapEnabled_Proxy( IDiaAddressMap * This, /* [in] */ BOOL NewVal); void __RPC_STUB IDiaAddressMap_put_addressMapEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_relativeVirtualAddressEnabled_Proxy( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaAddressMap_get_relativeVirtualAddressEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_relativeVirtualAddressEnabled_Proxy( IDiaAddressMap * This, /* [in] */ BOOL NewVal); void __RPC_STUB IDiaAddressMap_put_relativeVirtualAddressEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_imageAlign_Proxy( IDiaAddressMap * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaAddressMap_get_imageAlign_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_imageAlign_Proxy( IDiaAddressMap * This, /* [in] */ DWORD NewVal); void __RPC_STUB IDiaAddressMap_put_imageAlign_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaAddressMap_set_imageHeaders_Proxy( IDiaAddressMap * This, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE *pbData, /* [in] */ BOOL originalHeaders); void __RPC_STUB IDiaAddressMap_set_imageHeaders_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaAddressMap_set_addressMap_Proxy( IDiaAddressMap * This, /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry *pData, /* [in] */ BOOL imageToSymbols); void __RPC_STUB IDiaAddressMap_set_addressMap_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaAddressMap_INTERFACE_DEFINED__ */ #ifndef __IDiaSession_INTERFACE_DEFINED__ #define __IDiaSession_INTERFACE_DEFINED__ /* interface IDiaSession */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSession; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("67138B34-79CD-4b42-B74A-A18ADBB799DF") IDiaSession : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_loadAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_loadAddress( /* [in] */ ULONGLONG NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_globalScope( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumTables( /* [out] */ IDiaEnumTables **ppEnumTables) = 0; virtual HRESULT STDMETHODCALLTYPE getSymbolsByAddr( /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr) = 0; virtual HRESULT STDMETHODCALLTYPE findChildren( /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByAddr( /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByRVA( /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByVA( /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByToken( /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE symsAreEquiv( /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB) = 0; virtual HRESULT STDMETHODCALLTYPE symbolById( /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByRVAEx( /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByVAEx( /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement) = 0; virtual HRESULT STDMETHODCALLTYPE findFile( /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findFileById( /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLines( /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByAddr( /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByRVA( /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByVA( /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByLinenum( /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findInjectedSource( /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumDebugStreams( /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams) = 0; }; #else /* C style interface */ typedef struct IDiaSessionVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSession * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSession * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSession * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_loadAddress )( IDiaSession * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_loadAddress )( IDiaSession * This, /* [in] */ ULONGLONG NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_globalScope )( IDiaSession * This, /* [retval][out] */ IDiaSymbol **pRetVal); HRESULT ( STDMETHODCALLTYPE *getEnumTables )( IDiaSession * This, /* [out] */ IDiaEnumTables **ppEnumTables); HRESULT ( STDMETHODCALLTYPE *getSymbolsByAddr )( IDiaSession * This, /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr); HRESULT ( STDMETHODCALLTYPE *findChildren )( IDiaSession * This, /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); HRESULT ( STDMETHODCALLTYPE *findSymbolByAddr )( IDiaSession * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByRVA )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByVA )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByToken )( IDiaSession * This, /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *symsAreEquiv )( IDiaSession * This, /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB); HRESULT ( STDMETHODCALLTYPE *symbolById )( IDiaSession * This, /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByRVAEx )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); HRESULT ( STDMETHODCALLTYPE *findSymbolByVAEx )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); HRESULT ( STDMETHODCALLTYPE *findFile )( IDiaSession * This, /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult); HRESULT ( STDMETHODCALLTYPE *findFileById )( IDiaSession * This, /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult); HRESULT ( STDMETHODCALLTYPE *findLines )( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByAddr )( IDiaSession * This, /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByRVA )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByVA )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByLinenum )( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findInjectedSource )( IDiaSession * This, /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult); HRESULT ( STDMETHODCALLTYPE *getEnumDebugStreams )( IDiaSession * This, /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams); END_INTERFACE } IDiaSessionVtbl; interface IDiaSession { CONST_VTBL struct IDiaSessionVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSession_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSession_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSession_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSession_get_loadAddress(This,pRetVal) \ (This)->lpVtbl -> get_loadAddress(This,pRetVal) #define IDiaSession_put_loadAddress(This,NewVal) \ (This)->lpVtbl -> put_loadAddress(This,NewVal) #define IDiaSession_get_globalScope(This,pRetVal) \ (This)->lpVtbl -> get_globalScope(This,pRetVal) #define IDiaSession_getEnumTables(This,ppEnumTables) \ (This)->lpVtbl -> getEnumTables(This,ppEnumTables) #define IDiaSession_getSymbolsByAddr(This,ppEnumbyAddr) \ (This)->lpVtbl -> getSymbolsByAddr(This,ppEnumbyAddr) #define IDiaSession_findChildren(This,parent,symtag,name,compareFlags,ppResult) \ (This)->lpVtbl -> findChildren(This,parent,symtag,name,compareFlags,ppResult) #define IDiaSession_findSymbolByAddr(This,isect,offset,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByAddr(This,isect,offset,symtag,ppSymbol) #define IDiaSession_findSymbolByRVA(This,rva,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByRVA(This,rva,symtag,ppSymbol) #define IDiaSession_findSymbolByVA(This,va,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByVA(This,va,symtag,ppSymbol) #define IDiaSession_findSymbolByToken(This,token,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByToken(This,token,symtag,ppSymbol) #define IDiaSession_symsAreEquiv(This,symbolA,symbolB) \ (This)->lpVtbl -> symsAreEquiv(This,symbolA,symbolB) #define IDiaSession_symbolById(This,id,ppSymbol) \ (This)->lpVtbl -> symbolById(This,id,ppSymbol) #define IDiaSession_findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) \ (This)->lpVtbl -> findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) #define IDiaSession_findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) \ (This)->lpVtbl -> findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) #define IDiaSession_findFile(This,pCompiland,name,compareFlags,ppResult) \ (This)->lpVtbl -> findFile(This,pCompiland,name,compareFlags,ppResult) #define IDiaSession_findFileById(This,uniqueId,ppResult) \ (This)->lpVtbl -> findFileById(This,uniqueId,ppResult) #define IDiaSession_findLines(This,compiland,file,ppResult) \ (This)->lpVtbl -> findLines(This,compiland,file,ppResult) #define IDiaSession_findLinesByAddr(This,seg,offset,length,ppResult) \ (This)->lpVtbl -> findLinesByAddr(This,seg,offset,length,ppResult) #define IDiaSession_findLinesByRVA(This,rva,length,ppResult) \ (This)->lpVtbl -> findLinesByRVA(This,rva,length,ppResult) #define IDiaSession_findLinesByVA(This,va,length,ppResult) \ (This)->lpVtbl -> findLinesByVA(This,va,length,ppResult) #define IDiaSession_findLinesByLinenum(This,compiland,file,linenum,column,ppResult) \ (This)->lpVtbl -> findLinesByLinenum(This,compiland,file,linenum,column,ppResult) #define IDiaSession_findInjectedSource(This,srcFile,ppResult) \ (This)->lpVtbl -> findInjectedSource(This,srcFile,ppResult) #define IDiaSession_getEnumDebugStreams(This,ppEnumDebugStreams) \ (This)->lpVtbl -> getEnumDebugStreams(This,ppEnumDebugStreams) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSession_get_loadAddress_Proxy( IDiaSession * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSession_get_loadAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaSession_put_loadAddress_Proxy( IDiaSession * This, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaSession_put_loadAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSession_get_globalScope_Proxy( IDiaSession * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSession_get_globalScope_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getEnumTables_Proxy( IDiaSession * This, /* [out] */ IDiaEnumTables **ppEnumTables); void __RPC_STUB IDiaSession_getEnumTables_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getSymbolsByAddr_Proxy( IDiaSession * This, /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr); void __RPC_STUB IDiaSession_getSymbolsByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findChildren_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); void __RPC_STUB IDiaSession_findChildren_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByAddr_Proxy( IDiaSession * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByRVA_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByVA_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByToken_Proxy( IDiaSession * This, /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByToken_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_symsAreEquiv_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB); void __RPC_STUB IDiaSession_symsAreEquiv_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_symbolById_Proxy( IDiaSession * This, /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_symbolById_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByRVAEx_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); void __RPC_STUB IDiaSession_findSymbolByRVAEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByVAEx_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); void __RPC_STUB IDiaSession_findSymbolByVAEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findFile_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult); void __RPC_STUB IDiaSession_findFile_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findFileById_Proxy( IDiaSession * This, /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult); void __RPC_STUB IDiaSession_findFileById_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLines_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLines_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByAddr_Proxy( IDiaSession * This, /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByRVA_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByVA_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByLinenum_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByLinenum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findInjectedSource_Proxy( IDiaSession * This, /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult); void __RPC_STUB IDiaSession_findInjectedSource_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getEnumDebugStreams_Proxy( IDiaSession * This, /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams); void __RPC_STUB IDiaSession_getEnumDebugStreams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSession_INTERFACE_DEFINED__ */ #ifndef __IDiaSymbol_INTERFACE_DEFINED__ #define __IDiaSymbol_INTERFACE_DEFINED__ /* interface IDiaSymbol */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("cb787b2f-bd6c-4635-ba52-933126bd2dcd") IDiaSymbol : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symIndexId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symTag( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParent( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParent( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataKind( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_locationType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_slot( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_volatileType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unalignedType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_access( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_libraryName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_platform( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_language( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_editAndContinueEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMajor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMinor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndBuild( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMajor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMinor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndBuild( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unused( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thunkOrdinal( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thisAdjust( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtual( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_intro( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_pure( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_callingConvention( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_value( /* [retval][out] */ VARIANT *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_token( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_timeStamp( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_guid( /* [retval][out] */ GUID *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symbolsFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_reference( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_count( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bitPosition( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_packed( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constructor( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_overloadedOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_nested( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasNestedTypes( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAssignmentOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasCastOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_scoped( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseClass( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_indirectVirtualBaseClass( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBasePointerOffset( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShape( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParentId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParentId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_typeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexTypeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShapeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_function( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_managed( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_msil( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseDispIndex( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_undecoratedName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_age( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_signature( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilerGenerated( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressTaken( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rank( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBound( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBound( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBoundId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBoundId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_dataBytes( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE findChildren( /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetRelativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetVirtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_machineType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemSymbolId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_types( /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [size_is][size_is][out] */ IDiaSymbol **pTypes) = 0; virtual HRESULT STDMETHODCALLTYPE get_typeIds( /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [size_is][out] */ DWORD *pdwTypeIds) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectPointerType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_udtKind( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_undecoratedNameEx( /* [in] */ DWORD undecorateOptions, /* [out] */ BSTR *name) = 0; virtual HRESULT STDMETHODCALLTYPE get_liveLVarInstances( /* [in] */ ULONGLONG va, /* [in] */ DWORD cInstances, /* [out] */ DWORD *pcInstances, /* [size_is][out] */ IDiaLVarInstance **instances) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noReturn( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_customCallingConvention( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noInline( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_optimizedCodeDebugInfo( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notReached( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_interruptReturn( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_farReturn( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isStatic( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasDebugInfo( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isLTCG( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isDataAligned( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasSecurityChecks( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilerName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAlloca( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasSetJump( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasLongJump( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasInlAsm( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasEH( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasSEH( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasEHa( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isNaked( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isAggregated( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isSplitted( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_container( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_inlSpec( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_noStackOrdering( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseTableType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasManagedCode( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isHotpatchable( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isCVTCIL( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isMSILNetmodule( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isCTypes( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_isStripped( /* [retval][out] */ BOOL *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSymbolVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSymbol * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSymbol * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSymbol * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( IDiaSymbol * This, /* [retval][out] */ VARIANT *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( IDiaSymbol * This, /* [retval][out] */ GUID *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( IDiaSymbol * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *findChildren )( IDiaSymbol * This, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_types )( IDiaSymbol * This, /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [size_is][size_is][out] */ IDiaSymbol **pTypes); HRESULT ( STDMETHODCALLTYPE *get_typeIds )( IDiaSymbol * This, /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [size_is][out] */ DWORD *pdwTypeIds); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( IDiaSymbol * This, /* [in] */ DWORD undecorateOptions, /* [out] */ BSTR *name); HRESULT ( STDMETHODCALLTYPE *get_liveLVarInstances )( IDiaSymbol * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cInstances, /* [out] */ DWORD *pcInstances, /* [size_is][out] */ IDiaLVarInstance **instances); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noReturn )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_customCallingConvention )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noInline )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_optimizedCodeDebugInfo )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notReached )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_interruptReturn )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_farReturn )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStatic )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasDebugInfo )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isLTCG )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDataAligned )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSecurityChecks )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAlloca )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSetJump )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasLongJump )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasInlAsm )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEH )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasSEH )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasEHa )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isNaked )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAggregated )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSplitted )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_container )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_inlSpec )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_noStackOrdering )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseTableType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasManagedCode )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isHotpatchable )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCVTCIL )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isMSILNetmodule )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCTypes )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isStripped )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); END_INTERFACE } IDiaSymbolVtbl; interface IDiaSymbol { CONST_VTBL struct IDiaSymbolVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSymbol_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSymbol_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSymbol_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSymbol_get_symIndexId(This,pRetVal) \ (This)->lpVtbl -> get_symIndexId(This,pRetVal) #define IDiaSymbol_get_symTag(This,pRetVal) \ (This)->lpVtbl -> get_symTag(This,pRetVal) #define IDiaSymbol_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaSymbol_get_lexicalParent(This,pRetVal) \ (This)->lpVtbl -> get_lexicalParent(This,pRetVal) #define IDiaSymbol_get_classParent(This,pRetVal) \ (This)->lpVtbl -> get_classParent(This,pRetVal) #define IDiaSymbol_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaSymbol_get_dataKind(This,pRetVal) \ (This)->lpVtbl -> get_dataKind(This,pRetVal) #define IDiaSymbol_get_locationType(This,pRetVal) \ (This)->lpVtbl -> get_locationType(This,pRetVal) #define IDiaSymbol_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSymbol_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaSymbol_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSymbol_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaSymbol_get_registerId(This,pRetVal) \ (This)->lpVtbl -> get_registerId(This,pRetVal) #define IDiaSymbol_get_offset(This,pRetVal) \ (This)->lpVtbl -> get_offset(This,pRetVal) #define IDiaSymbol_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSymbol_get_slot(This,pRetVal) \ (This)->lpVtbl -> get_slot(This,pRetVal) #define IDiaSymbol_get_volatileType(This,pRetVal) \ (This)->lpVtbl -> get_volatileType(This,pRetVal) #define IDiaSymbol_get_constType(This,pRetVal) \ (This)->lpVtbl -> get_constType(This,pRetVal) #define IDiaSymbol_get_unalignedType(This,pRetVal) \ (This)->lpVtbl -> get_unalignedType(This,pRetVal) #define IDiaSymbol_get_access(This,pRetVal) \ (This)->lpVtbl -> get_access(This,pRetVal) #define IDiaSymbol_get_libraryName(This,pRetVal) \ (This)->lpVtbl -> get_libraryName(This,pRetVal) #define IDiaSymbol_get_platform(This,pRetVal) \ (This)->lpVtbl -> get_platform(This,pRetVal) #define IDiaSymbol_get_language(This,pRetVal) \ (This)->lpVtbl -> get_language(This,pRetVal) #define IDiaSymbol_get_editAndContinueEnabled(This,pRetVal) \ (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) #define IDiaSymbol_get_frontEndMajor(This,pRetVal) \ (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) #define IDiaSymbol_get_frontEndMinor(This,pRetVal) \ (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) #define IDiaSymbol_get_frontEndBuild(This,pRetVal) \ (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) #define IDiaSymbol_get_backEndMajor(This,pRetVal) \ (This)->lpVtbl -> get_backEndMajor(This,pRetVal) #define IDiaSymbol_get_backEndMinor(This,pRetVal) \ (This)->lpVtbl -> get_backEndMinor(This,pRetVal) #define IDiaSymbol_get_backEndBuild(This,pRetVal) \ (This)->lpVtbl -> get_backEndBuild(This,pRetVal) #define IDiaSymbol_get_sourceFileName(This,pRetVal) \ (This)->lpVtbl -> get_sourceFileName(This,pRetVal) #define IDiaSymbol_get_unused(This,pRetVal) \ (This)->lpVtbl -> get_unused(This,pRetVal) #define IDiaSymbol_get_thunkOrdinal(This,pRetVal) \ (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) #define IDiaSymbol_get_thisAdjust(This,pRetVal) \ (This)->lpVtbl -> get_thisAdjust(This,pRetVal) #define IDiaSymbol_get_virtualBaseOffset(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) #define IDiaSymbol_get_virtual(This,pRetVal) \ (This)->lpVtbl -> get_virtual(This,pRetVal) #define IDiaSymbol_get_intro(This,pRetVal) \ (This)->lpVtbl -> get_intro(This,pRetVal) #define IDiaSymbol_get_pure(This,pRetVal) \ (This)->lpVtbl -> get_pure(This,pRetVal) #define IDiaSymbol_get_callingConvention(This,pRetVal) \ (This)->lpVtbl -> get_callingConvention(This,pRetVal) #define IDiaSymbol_get_value(This,pRetVal) \ (This)->lpVtbl -> get_value(This,pRetVal) #define IDiaSymbol_get_baseType(This,pRetVal) \ (This)->lpVtbl -> get_baseType(This,pRetVal) #define IDiaSymbol_get_token(This,pRetVal) \ (This)->lpVtbl -> get_token(This,pRetVal) #define IDiaSymbol_get_timeStamp(This,pRetVal) \ (This)->lpVtbl -> get_timeStamp(This,pRetVal) #define IDiaSymbol_get_guid(This,pRetVal) \ (This)->lpVtbl -> get_guid(This,pRetVal) #define IDiaSymbol_get_symbolsFileName(This,pRetVal) \ (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) #define IDiaSymbol_get_reference(This,pRetVal) \ (This)->lpVtbl -> get_reference(This,pRetVal) #define IDiaSymbol_get_count(This,pRetVal) \ (This)->lpVtbl -> get_count(This,pRetVal) #define IDiaSymbol_get_bitPosition(This,pRetVal) \ (This)->lpVtbl -> get_bitPosition(This,pRetVal) #define IDiaSymbol_get_arrayIndexType(This,pRetVal) \ (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) #define IDiaSymbol_get_packed(This,pRetVal) \ (This)->lpVtbl -> get_packed(This,pRetVal) #define IDiaSymbol_get_constructor(This,pRetVal) \ (This)->lpVtbl -> get_constructor(This,pRetVal) #define IDiaSymbol_get_overloadedOperator(This,pRetVal) \ (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) #define IDiaSymbol_get_nested(This,pRetVal) \ (This)->lpVtbl -> get_nested(This,pRetVal) #define IDiaSymbol_get_hasNestedTypes(This,pRetVal) \ (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) #define IDiaSymbol_get_hasAssignmentOperator(This,pRetVal) \ (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) #define IDiaSymbol_get_hasCastOperator(This,pRetVal) \ (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) #define IDiaSymbol_get_scoped(This,pRetVal) \ (This)->lpVtbl -> get_scoped(This,pRetVal) #define IDiaSymbol_get_virtualBaseClass(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) #define IDiaSymbol_get_indirectVirtualBaseClass(This,pRetVal) \ (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) #define IDiaSymbol_get_virtualBasePointerOffset(This,pRetVal) \ (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) #define IDiaSymbol_get_virtualTableShape(This,pRetVal) \ (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) #define IDiaSymbol_get_lexicalParentId(This,pRetVal) \ (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) #define IDiaSymbol_get_classParentId(This,pRetVal) \ (This)->lpVtbl -> get_classParentId(This,pRetVal) #define IDiaSymbol_get_typeId(This,pRetVal) \ (This)->lpVtbl -> get_typeId(This,pRetVal) #define IDiaSymbol_get_arrayIndexTypeId(This,pRetVal) \ (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) #define IDiaSymbol_get_virtualTableShapeId(This,pRetVal) \ (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) #define IDiaSymbol_get_code(This,pRetVal) \ (This)->lpVtbl -> get_code(This,pRetVal) #define IDiaSymbol_get_function(This,pRetVal) \ (This)->lpVtbl -> get_function(This,pRetVal) #define IDiaSymbol_get_managed(This,pRetVal) \ (This)->lpVtbl -> get_managed(This,pRetVal) #define IDiaSymbol_get_msil(This,pRetVal) \ (This)->lpVtbl -> get_msil(This,pRetVal) #define IDiaSymbol_get_virtualBaseDispIndex(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) #define IDiaSymbol_get_undecoratedName(This,pRetVal) \ (This)->lpVtbl -> get_undecoratedName(This,pRetVal) #define IDiaSymbol_get_age(This,pRetVal) \ (This)->lpVtbl -> get_age(This,pRetVal) #define IDiaSymbol_get_signature(This,pRetVal) \ (This)->lpVtbl -> get_signature(This,pRetVal) #define IDiaSymbol_get_compilerGenerated(This,pRetVal) \ (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) #define IDiaSymbol_get_addressTaken(This,pRetVal) \ (This)->lpVtbl -> get_addressTaken(This,pRetVal) #define IDiaSymbol_get_rank(This,pRetVal) \ (This)->lpVtbl -> get_rank(This,pRetVal) #define IDiaSymbol_get_lowerBound(This,pRetVal) \ (This)->lpVtbl -> get_lowerBound(This,pRetVal) #define IDiaSymbol_get_upperBound(This,pRetVal) \ (This)->lpVtbl -> get_upperBound(This,pRetVal) #define IDiaSymbol_get_lowerBoundId(This,pRetVal) \ (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) #define IDiaSymbol_get_upperBoundId(This,pRetVal) \ (This)->lpVtbl -> get_upperBoundId(This,pRetVal) #define IDiaSymbol_get_dataBytes(This,cbData,pcbData,pbData) \ (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,pbData) #define IDiaSymbol_findChildren(This,symtag,name,compareFlags,ppResult) \ (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) #define IDiaSymbol_get_targetSection(This,pRetVal) \ (This)->lpVtbl -> get_targetSection(This,pRetVal) #define IDiaSymbol_get_targetOffset(This,pRetVal) \ (This)->lpVtbl -> get_targetOffset(This,pRetVal) #define IDiaSymbol_get_targetRelativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) #define IDiaSymbol_get_targetVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) #define IDiaSymbol_get_machineType(This,pRetVal) \ (This)->lpVtbl -> get_machineType(This,pRetVal) #define IDiaSymbol_get_oemId(This,pRetVal) \ (This)->lpVtbl -> get_oemId(This,pRetVal) #define IDiaSymbol_get_oemSymbolId(This,pRetVal) \ (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) #define IDiaSymbol_get_types(This,cTypes,pcTypes,pTypes) \ (This)->lpVtbl -> get_types(This,cTypes,pcTypes,pTypes) #define IDiaSymbol_get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) \ (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,pdwTypeIds) #define IDiaSymbol_get_objectPointerType(This,pRetVal) \ (This)->lpVtbl -> get_objectPointerType(This,pRetVal) #define IDiaSymbol_get_udtKind(This,pRetVal) \ (This)->lpVtbl -> get_udtKind(This,pRetVal) #define IDiaSymbol_get_undecoratedNameEx(This,undecorateOptions,name) \ (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) #define IDiaSymbol_get_liveLVarInstances(This,va,cInstances,pcInstances,instances) \ (This)->lpVtbl -> get_liveLVarInstances(This,va,cInstances,pcInstances,instances) #define IDiaSymbol_get_noReturn(This,pRetVal) \ (This)->lpVtbl -> get_noReturn(This,pRetVal) #define IDiaSymbol_get_customCallingConvention(This,pRetVal) \ (This)->lpVtbl -> get_customCallingConvention(This,pRetVal) #define IDiaSymbol_get_noInline(This,pRetVal) \ (This)->lpVtbl -> get_noInline(This,pRetVal) #define IDiaSymbol_get_optimizedCodeDebugInfo(This,pRetVal) \ (This)->lpVtbl -> get_optimizedCodeDebugInfo(This,pRetVal) #define IDiaSymbol_get_notReached(This,pRetVal) \ (This)->lpVtbl -> get_notReached(This,pRetVal) #define IDiaSymbol_get_interruptReturn(This,pRetVal) \ (This)->lpVtbl -> get_interruptReturn(This,pRetVal) #define IDiaSymbol_get_farReturn(This,pRetVal) \ (This)->lpVtbl -> get_farReturn(This,pRetVal) #define IDiaSymbol_get_isStatic(This,pRetVal) \ (This)->lpVtbl -> get_isStatic(This,pRetVal) #define IDiaSymbol_get_hasDebugInfo(This,pRetVal) \ (This)->lpVtbl -> get_hasDebugInfo(This,pRetVal) #define IDiaSymbol_get_isLTCG(This,pRetVal) \ (This)->lpVtbl -> get_isLTCG(This,pRetVal) #define IDiaSymbol_get_isDataAligned(This,pRetVal) \ (This)->lpVtbl -> get_isDataAligned(This,pRetVal) #define IDiaSymbol_get_hasSecurityChecks(This,pRetVal) \ (This)->lpVtbl -> get_hasSecurityChecks(This,pRetVal) #define IDiaSymbol_get_compilerName(This,pRetVal) \ (This)->lpVtbl -> get_compilerName(This,pRetVal) #define IDiaSymbol_get_hasAlloca(This,pRetVal) \ (This)->lpVtbl -> get_hasAlloca(This,pRetVal) #define IDiaSymbol_get_hasSetJump(This,pRetVal) \ (This)->lpVtbl -> get_hasSetJump(This,pRetVal) #define IDiaSymbol_get_hasLongJump(This,pRetVal) \ (This)->lpVtbl -> get_hasLongJump(This,pRetVal) #define IDiaSymbol_get_hasInlAsm(This,pRetVal) \ (This)->lpVtbl -> get_hasInlAsm(This,pRetVal) #define IDiaSymbol_get_hasEH(This,pRetVal) \ (This)->lpVtbl -> get_hasEH(This,pRetVal) #define IDiaSymbol_get_hasSEH(This,pRetVal) \ (This)->lpVtbl -> get_hasSEH(This,pRetVal) #define IDiaSymbol_get_hasEHa(This,pRetVal) \ (This)->lpVtbl -> get_hasEHa(This,pRetVal) #define IDiaSymbol_get_isNaked(This,pRetVal) \ (This)->lpVtbl -> get_isNaked(This,pRetVal) #define IDiaSymbol_get_isAggregated(This,pRetVal) \ (This)->lpVtbl -> get_isAggregated(This,pRetVal) #define IDiaSymbol_get_isSplitted(This,pRetVal) \ (This)->lpVtbl -> get_isSplitted(This,pRetVal) #define IDiaSymbol_get_container(This,pRetVal) \ (This)->lpVtbl -> get_container(This,pRetVal) #define IDiaSymbol_get_inlSpec(This,pRetVal) \ (This)->lpVtbl -> get_inlSpec(This,pRetVal) #define IDiaSymbol_get_noStackOrdering(This,pRetVal) \ (This)->lpVtbl -> get_noStackOrdering(This,pRetVal) #define IDiaSymbol_get_virtualBaseTableType(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseTableType(This,pRetVal) #define IDiaSymbol_get_hasManagedCode(This,pRetVal) \ (This)->lpVtbl -> get_hasManagedCode(This,pRetVal) #define IDiaSymbol_get_isHotpatchable(This,pRetVal) \ (This)->lpVtbl -> get_isHotpatchable(This,pRetVal) #define IDiaSymbol_get_isCVTCIL(This,pRetVal) \ (This)->lpVtbl -> get_isCVTCIL(This,pRetVal) #define IDiaSymbol_get_isMSILNetmodule(This,pRetVal) \ (This)->lpVtbl -> get_isMSILNetmodule(This,pRetVal) #define IDiaSymbol_get_isCTypes(This,pRetVal) \ (This)->lpVtbl -> get_isCTypes(This,pRetVal) #define IDiaSymbol_get_isStripped(This,pRetVal) \ (This)->lpVtbl -> get_isStripped(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symIndexId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_symIndexId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symTag_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_symTag_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_name_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lexicalParent_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_lexicalParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_classParent_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_classParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_type_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataKind_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_dataKind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_locationType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_locationType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressSection_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_relativeVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_registerId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_registerId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_offset_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_offset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_length_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_slot_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_slot_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_volatileType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_volatileType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_constType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unalignedType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_unalignedType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_access_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_access_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_libraryName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_libraryName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_platform_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_platform_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_language_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_language_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_editAndContinueEnabled_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_editAndContinueEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndMajor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndMajor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndMinor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndMinor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndBuild_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndBuild_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndMajor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndMajor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndMinor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndMinor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndBuild_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndBuild_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_sourceFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_sourceFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unused_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_unused_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_thunkOrdinal_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_thunkOrdinal_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_thisAdjust_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_thisAdjust_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtual_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_virtual_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_intro_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_intro_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_pure_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_pure_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_callingConvention_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_callingConvention_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_value_Proxy( IDiaSymbol * This, /* [retval][out] */ VARIANT *pRetVal); void __RPC_STUB IDiaSymbol_get_value_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_baseType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_token_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_token_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_timeStamp_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_timeStamp_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_guid_Proxy( IDiaSymbol * This, /* [retval][out] */ GUID *pRetVal); void __RPC_STUB IDiaSymbol_get_guid_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symbolsFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_symbolsFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_reference_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_reference_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_count_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_bitPosition_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_bitPosition_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_arrayIndexType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_arrayIndexType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_packed_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_packed_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constructor_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_constructor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_overloadedOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_overloadedOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_nested_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_nested_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasNestedTypes_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasNestedTypes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasAssignmentOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasAssignmentOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasCastOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasCastOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_scoped_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_scoped_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseClass_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseClass_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_indirectVirtualBaseClass_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_indirectVirtualBaseClass_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBasePointerOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBasePointerOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualTableShape_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_virtualTableShape_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lexicalParentId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_lexicalParentId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_classParentId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_classParentId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_typeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_typeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_arrayIndexTypeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_arrayIndexTypeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualTableShapeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualTableShapeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_code_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_code_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_function_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_function_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_managed_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_managed_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_msil_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_msil_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseDispIndex_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseDispIndex_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_undecoratedName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_undecoratedName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_age_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_age_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_signature_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_signature_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_compilerGenerated_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_compilerGenerated_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressTaken_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_addressTaken_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_rank_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_rank_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lowerBound_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_lowerBound_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_upperBound_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_upperBound_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lowerBoundId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_lowerBoundId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_upperBoundId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_upperBoundId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataBytes_Proxy( IDiaSymbol * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaSymbol_get_dataBytes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_findChildren_Proxy( IDiaSymbol * This, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); void __RPC_STUB IDiaSymbol_findChildren_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetSection_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetRelativeVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetRelativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_targetVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_machineType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_machineType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_oemId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_oemId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_oemSymbolId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_oemSymbolId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_types_Proxy( IDiaSymbol * This, /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [size_is][size_is][out] */ IDiaSymbol **pTypes); void __RPC_STUB IDiaSymbol_get_types_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_typeIds_Proxy( IDiaSymbol * This, /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [size_is][out] */ DWORD *pdwTypeIds); void __RPC_STUB IDiaSymbol_get_typeIds_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_objectPointerType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_objectPointerType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_udtKind_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_udtKind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_undecoratedNameEx_Proxy( IDiaSymbol * This, /* [in] */ DWORD undecorateOptions, /* [out] */ BSTR *name); void __RPC_STUB IDiaSymbol_get_undecoratedNameEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_liveLVarInstances_Proxy( IDiaSymbol * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cInstances, /* [out] */ DWORD *pcInstances, /* [size_is][out] */ IDiaLVarInstance **instances); void __RPC_STUB IDiaSymbol_get_liveLVarInstances_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_noReturn_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_noReturn_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_customCallingConvention_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_customCallingConvention_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_noInline_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_noInline_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_optimizedCodeDebugInfo_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_optimizedCodeDebugInfo_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_notReached_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_notReached_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_interruptReturn_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_interruptReturn_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_farReturn_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_farReturn_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isStatic_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isStatic_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasDebugInfo_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasDebugInfo_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isLTCG_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isLTCG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isDataAligned_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isDataAligned_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasSecurityChecks_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasSecurityChecks_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_compilerName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_compilerName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasAlloca_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasAlloca_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasSetJump_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasSetJump_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasLongJump_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasLongJump_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasInlAsm_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasInlAsm_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasEH_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasEH_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasSEH_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasSEH_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasEHa_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasEHa_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isNaked_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isNaked_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isAggregated_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isAggregated_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isSplitted_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isSplitted_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_container_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_container_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_inlSpec_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_inlSpec_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_noStackOrdering_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_noStackOrdering_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseTableType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseTableType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasManagedCode_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasManagedCode_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isHotpatchable_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isHotpatchable_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isCVTCIL_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isCVTCIL_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isMSILNetmodule_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isMSILNetmodule_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isCTypes_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isCTypes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_isStripped_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_isStripped_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSymbol_INTERFACE_DEFINED__ */ #ifndef __IDiaSourceFile_INTERFACE_DEFINED__ #define __IDiaSourceFile_INTERFACE_DEFINED__ /* interface IDiaSourceFile */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSourceFile; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD") IDiaSourceFile : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uniqueId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_checksumType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilands( /* [retval][out] */ IDiaEnumSymbols **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_checksum( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; }; #else /* C style interface */ typedef struct IDiaSourceFileVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSourceFile * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSourceFile * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSourceFile * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueId )( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileName )( IDiaSourceFile * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_checksumType )( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilands )( IDiaSourceFile * This, /* [retval][out] */ IDiaEnumSymbols **pRetVal); HRESULT ( STDMETHODCALLTYPE *get_checksum )( IDiaSourceFile * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); END_INTERFACE } IDiaSourceFileVtbl; interface IDiaSourceFile { CONST_VTBL struct IDiaSourceFileVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSourceFile_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSourceFile_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSourceFile_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSourceFile_get_uniqueId(This,pRetVal) \ (This)->lpVtbl -> get_uniqueId(This,pRetVal) #define IDiaSourceFile_get_fileName(This,pRetVal) \ (This)->lpVtbl -> get_fileName(This,pRetVal) #define IDiaSourceFile_get_checksumType(This,pRetVal) \ (This)->lpVtbl -> get_checksumType(This,pRetVal) #define IDiaSourceFile_get_compilands(This,pRetVal) \ (This)->lpVtbl -> get_compilands(This,pRetVal) #define IDiaSourceFile_get_checksum(This,cbData,pcbData,pbData) \ (This)->lpVtbl -> get_checksum(This,cbData,pcbData,pbData) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_uniqueId_Proxy( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSourceFile_get_uniqueId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_fileName_Proxy( IDiaSourceFile * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSourceFile_get_fileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_checksumType_Proxy( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSourceFile_get_checksumType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_compilands_Proxy( IDiaSourceFile * This, /* [retval][out] */ IDiaEnumSymbols **pRetVal); void __RPC_STUB IDiaSourceFile_get_compilands_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_checksum_Proxy( IDiaSourceFile * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaSourceFile_get_checksum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSourceFile_INTERFACE_DEFINED__ */ #ifndef __IDiaLineNumber_INTERFACE_DEFINED__ #define __IDiaLineNumber_INTERFACE_DEFINED__ /* interface IDiaLineNumber */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLineNumber; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("B388EB14-BE4D-421d-A8A1-6CF7AB057086") IDiaLineNumber : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFile( /* [retval][out] */ IDiaSourceFile **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumber( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumberEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumber( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumberEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_statement( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaLineNumberVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLineNumber * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLineNumber * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLineNumber * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( IDiaLineNumber * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFile )( IDiaLineNumber * This, /* [retval][out] */ IDiaSourceFile **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumber )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumberEnd )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumber )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumberEnd )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaLineNumber * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileId )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statement )( IDiaLineNumber * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaLineNumberVtbl; interface IDiaLineNumber { CONST_VTBL struct IDiaLineNumberVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLineNumber_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLineNumber_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLineNumber_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLineNumber_get_compiland(This,pRetVal) \ (This)->lpVtbl -> get_compiland(This,pRetVal) #define IDiaLineNumber_get_sourceFile(This,pRetVal) \ (This)->lpVtbl -> get_sourceFile(This,pRetVal) #define IDiaLineNumber_get_lineNumber(This,pRetVal) \ (This)->lpVtbl -> get_lineNumber(This,pRetVal) #define IDiaLineNumber_get_lineNumberEnd(This,pRetVal) \ (This)->lpVtbl -> get_lineNumberEnd(This,pRetVal) #define IDiaLineNumber_get_columnNumber(This,pRetVal) \ (This)->lpVtbl -> get_columnNumber(This,pRetVal) #define IDiaLineNumber_get_columnNumberEnd(This,pRetVal) \ (This)->lpVtbl -> get_columnNumberEnd(This,pRetVal) #define IDiaLineNumber_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaLineNumber_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaLineNumber_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaLineNumber_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaLineNumber_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaLineNumber_get_sourceFileId(This,pRetVal) \ (This)->lpVtbl -> get_sourceFileId(This,pRetVal) #define IDiaLineNumber_get_statement(This,pRetVal) \ (This)->lpVtbl -> get_statement(This,pRetVal) #define IDiaLineNumber_get_compilandId(This,pRetVal) \ (This)->lpVtbl -> get_compilandId(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_compiland_Proxy( IDiaLineNumber * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaLineNumber_get_compiland_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_sourceFile_Proxy( IDiaLineNumber * This, /* [retval][out] */ IDiaSourceFile **pRetVal); void __RPC_STUB IDiaLineNumber_get_sourceFile_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_lineNumber_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_lineNumber_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_lineNumberEnd_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_lineNumberEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_columnNumber_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_columnNumber_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_columnNumberEnd_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_columnNumberEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_addressSection_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_addressOffset_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_relativeVirtualAddress_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_virtualAddress_Proxy( IDiaLineNumber * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaLineNumber_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_length_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_sourceFileId_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_sourceFileId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_statement_Proxy( IDiaLineNumber * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaLineNumber_get_statement_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_compilandId_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_compilandId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLineNumber_INTERFACE_DEFINED__ */ #ifndef __IDiaSectionContrib_INTERFACE_DEFINED__ #define __IDiaSectionContrib_INTERFACE_DEFINED__ /* interface IDiaSectionContrib */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSectionContrib; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857") IDiaSectionContrib : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notPaged( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_initializedData( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uninitializedData( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_remove( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_comdat( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_discardable( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notCached( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_share( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataCrc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relocationsCrc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code16bit( /* [retval][out] */ BOOL *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSectionContribVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSectionContrib * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSectionContrib * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSectionContrib * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( IDiaSectionContrib * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSectionContrib * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notPaged )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_initializedData )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uninitializedData )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_remove )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_comdat )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_discardable )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notCached )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_share )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataCrc )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relocationsCrc )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code16bit )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); END_INTERFACE } IDiaSectionContribVtbl; interface IDiaSectionContrib { CONST_VTBL struct IDiaSectionContribVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSectionContrib_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSectionContrib_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSectionContrib_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSectionContrib_get_compiland(This,pRetVal) \ (This)->lpVtbl -> get_compiland(This,pRetVal) #define IDiaSectionContrib_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSectionContrib_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaSectionContrib_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSectionContrib_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaSectionContrib_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSectionContrib_get_notPaged(This,pRetVal) \ (This)->lpVtbl -> get_notPaged(This,pRetVal) #define IDiaSectionContrib_get_code(This,pRetVal) \ (This)->lpVtbl -> get_code(This,pRetVal) #define IDiaSectionContrib_get_initializedData(This,pRetVal) \ (This)->lpVtbl -> get_initializedData(This,pRetVal) #define IDiaSectionContrib_get_uninitializedData(This,pRetVal) \ (This)->lpVtbl -> get_uninitializedData(This,pRetVal) #define IDiaSectionContrib_get_remove(This,pRetVal) \ (This)->lpVtbl -> get_remove(This,pRetVal) #define IDiaSectionContrib_get_comdat(This,pRetVal) \ (This)->lpVtbl -> get_comdat(This,pRetVal) #define IDiaSectionContrib_get_discardable(This,pRetVal) \ (This)->lpVtbl -> get_discardable(This,pRetVal) #define IDiaSectionContrib_get_notCached(This,pRetVal) \ (This)->lpVtbl -> get_notCached(This,pRetVal) #define IDiaSectionContrib_get_share(This,pRetVal) \ (This)->lpVtbl -> get_share(This,pRetVal) #define IDiaSectionContrib_get_execute(This,pRetVal) \ (This)->lpVtbl -> get_execute(This,pRetVal) #define IDiaSectionContrib_get_read(This,pRetVal) \ (This)->lpVtbl -> get_read(This,pRetVal) #define IDiaSectionContrib_get_write(This,pRetVal) \ (This)->lpVtbl -> get_write(This,pRetVal) #define IDiaSectionContrib_get_dataCrc(This,pRetVal) \ (This)->lpVtbl -> get_dataCrc(This,pRetVal) #define IDiaSectionContrib_get_relocationsCrc(This,pRetVal) \ (This)->lpVtbl -> get_relocationsCrc(This,pRetVal) #define IDiaSectionContrib_get_compilandId(This,pRetVal) \ (This)->lpVtbl -> get_compilandId(This,pRetVal) #define IDiaSectionContrib_get_code16bit(This,pRetVal) \ (This)->lpVtbl -> get_code16bit(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_compiland_Proxy( IDiaSectionContrib * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSectionContrib_get_compiland_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_addressSection_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_addressOffset_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_relativeVirtualAddress_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_virtualAddress_Proxy( IDiaSectionContrib * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSectionContrib_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_length_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_notPaged_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_notPaged_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_code_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_code_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_initializedData_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_initializedData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_uninitializedData_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_uninitializedData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_remove_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_remove_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_comdat_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_comdat_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_discardable_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_discardable_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_notCached_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_notCached_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_share_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_share_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_execute_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_read_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_read_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_write_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_write_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_dataCrc_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_dataCrc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_relocationsCrc_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_relocationsCrc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_compilandId_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_compilandId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_code16bit_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_code16bit_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSectionContrib_INTERFACE_DEFINED__ */ #ifndef __IDiaSegment_INTERFACE_DEFINED__ #define __IDiaSegment_INTERFACE_DEFINED__ /* interface IDiaSegment */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSegment; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0775B784-C75B-4449-848B-B7BD3159545B") IDiaSegment : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frame( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSegmentVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSegment * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSegment * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSegment * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frame )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSegment * This, /* [retval][out] */ ULONGLONG *pRetVal); END_INTERFACE } IDiaSegmentVtbl; interface IDiaSegment { CONST_VTBL struct IDiaSegmentVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSegment_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSegment_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSegment_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSegment_get_frame(This,pRetVal) \ (This)->lpVtbl -> get_frame(This,pRetVal) #define IDiaSegment_get_offset(This,pRetVal) \ (This)->lpVtbl -> get_offset(This,pRetVal) #define IDiaSegment_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSegment_get_read(This,pRetVal) \ (This)->lpVtbl -> get_read(This,pRetVal) #define IDiaSegment_get_write(This,pRetVal) \ (This)->lpVtbl -> get_write(This,pRetVal) #define IDiaSegment_get_execute(This,pRetVal) \ (This)->lpVtbl -> get_execute(This,pRetVal) #define IDiaSegment_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSegment_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSegment_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_frame_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_frame_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_offset_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_offset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_length_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_read_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_read_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_write_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_write_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_execute_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_addressSection_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_relativeVirtualAddress_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_virtualAddress_Proxy( IDiaSegment * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSegment_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSegment_INTERFACE_DEFINED__ */ #ifndef __IDiaInjectedSource_INTERFACE_DEFINED__ #define __IDiaInjectedSource_INTERFACE_DEFINED__ /* interface IDiaInjectedSource */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaInjectedSource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("AE605CDC-8105-4a23-B710-3259F1E26112") IDiaInjectedSource : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_crc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_filename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectFilename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualFilename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceCompression( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_source( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; }; #else /* C style interface */ typedef struct IDiaInjectedSourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaInjectedSource * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaInjectedSource * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaInjectedSource * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_crc )( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaInjectedSource * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFilename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualFilename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceCompression )( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_source )( IDiaInjectedSource * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); END_INTERFACE } IDiaInjectedSourceVtbl; interface IDiaInjectedSource { CONST_VTBL struct IDiaInjectedSourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaInjectedSource_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaInjectedSource_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaInjectedSource_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaInjectedSource_get_crc(This,pRetVal) \ (This)->lpVtbl -> get_crc(This,pRetVal) #define IDiaInjectedSource_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaInjectedSource_get_filename(This,pRetVal) \ (This)->lpVtbl -> get_filename(This,pRetVal) #define IDiaInjectedSource_get_objectFilename(This,pRetVal) \ (This)->lpVtbl -> get_objectFilename(This,pRetVal) #define IDiaInjectedSource_get_virtualFilename(This,pRetVal) \ (This)->lpVtbl -> get_virtualFilename(This,pRetVal) #define IDiaInjectedSource_get_sourceCompression(This,pRetVal) \ (This)->lpVtbl -> get_sourceCompression(This,pRetVal) #define IDiaInjectedSource_get_source(This,cbData,pcbData,pbData) \ (This)->lpVtbl -> get_source(This,cbData,pcbData,pbData) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_crc_Proxy( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaInjectedSource_get_crc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_length_Proxy( IDiaInjectedSource * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaInjectedSource_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_filename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_filename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_objectFilename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_objectFilename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_virtualFilename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_virtualFilename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_sourceCompression_Proxy( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaInjectedSource_get_sourceCompression_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_source_Proxy( IDiaInjectedSource * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaInjectedSource_get_source_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaInjectedSource_INTERFACE_DEFINED__ */ #ifndef __IDiaLVarInstance_INTERFACE_DEFINED__ #define __IDiaLVarInstance_INTERFACE_DEFINED__ /* interface IDiaLVarInstance */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLVarInstance; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0e425a73-3ced-4964-8cf0-a6caf11bd818") IDiaLVarInstance : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symbol( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sectionStart( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offsetStart( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rvaStart( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_vaStart( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rvaEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sectionEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offsetEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_vaEnd( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_program( /* [retval][out] */ BSTR *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_livenessAt( /* [in] */ ULONGLONG va, /* [out] */ BOOL *pfLive) = 0; virtual HRESULT STDMETHODCALLTYPE get_location( /* [in] */ IDiaStackFrame *pFrame, /* [out] */ BOOL *pfLocInRegister, /* [out] */ DWORD *pdwRegId, /* [out] */ ULONGLONG *pva) = 0; }; #else /* C style interface */ typedef struct IDiaLVarInstanceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLVarInstance * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLVarInstance * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLVarInstance * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbol )( IDiaLVarInstance * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sectionStart )( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetStart )( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rvaStart )( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_vaStart )( IDiaLVarInstance * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rvaEnd )( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sectionEnd )( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetEnd )( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_vaEnd )( IDiaLVarInstance * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_program )( IDiaLVarInstance * This, /* [retval][out] */ BSTR *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_livenessAt )( IDiaLVarInstance * This, /* [in] */ ULONGLONG va, /* [out] */ BOOL *pfLive); HRESULT ( STDMETHODCALLTYPE *get_location )( IDiaLVarInstance * This, /* [in] */ IDiaStackFrame *pFrame, /* [out] */ BOOL *pfLocInRegister, /* [out] */ DWORD *pdwRegId, /* [out] */ ULONGLONG *pva); END_INTERFACE } IDiaLVarInstanceVtbl; interface IDiaLVarInstance { CONST_VTBL struct IDiaLVarInstanceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLVarInstance_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLVarInstance_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLVarInstance_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLVarInstance_get_symbol(This,pRetVal) \ (This)->lpVtbl -> get_symbol(This,pRetVal) #define IDiaLVarInstance_get_sectionStart(This,pRetVal) \ (This)->lpVtbl -> get_sectionStart(This,pRetVal) #define IDiaLVarInstance_get_offsetStart(This,pRetVal) \ (This)->lpVtbl -> get_offsetStart(This,pRetVal) #define IDiaLVarInstance_get_rvaStart(This,pRetVal) \ (This)->lpVtbl -> get_rvaStart(This,pRetVal) #define IDiaLVarInstance_get_vaStart(This,pRetVal) \ (This)->lpVtbl -> get_vaStart(This,pRetVal) #define IDiaLVarInstance_get_rvaEnd(This,pRetVal) \ (This)->lpVtbl -> get_rvaEnd(This,pRetVal) #define IDiaLVarInstance_get_sectionEnd(This,pRetVal) \ (This)->lpVtbl -> get_sectionEnd(This,pRetVal) #define IDiaLVarInstance_get_offsetEnd(This,pRetVal) \ (This)->lpVtbl -> get_offsetEnd(This,pRetVal) #define IDiaLVarInstance_get_vaEnd(This,pRetVal) \ (This)->lpVtbl -> get_vaEnd(This,pRetVal) #define IDiaLVarInstance_get_program(This,pRetVal) \ (This)->lpVtbl -> get_program(This,pRetVal) #define IDiaLVarInstance_get_livenessAt(This,va,pfLive) \ (This)->lpVtbl -> get_livenessAt(This,va,pfLive) #define IDiaLVarInstance_get_location(This,pFrame,pfLocInRegister,pdwRegId,pva) \ (This)->lpVtbl -> get_location(This,pFrame,pfLocInRegister,pdwRegId,pva) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_symbol_Proxy( IDiaLVarInstance * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaLVarInstance_get_symbol_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_sectionStart_Proxy( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLVarInstance_get_sectionStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_offsetStart_Proxy( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLVarInstance_get_offsetStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_rvaStart_Proxy( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLVarInstance_get_rvaStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_vaStart_Proxy( IDiaLVarInstance * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaLVarInstance_get_vaStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_rvaEnd_Proxy( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLVarInstance_get_rvaEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_sectionEnd_Proxy( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLVarInstance_get_sectionEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_offsetEnd_Proxy( IDiaLVarInstance * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLVarInstance_get_offsetEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_vaEnd_Proxy( IDiaLVarInstance * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaLVarInstance_get_vaEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_program_Proxy( IDiaLVarInstance * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaLVarInstance_get_program_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_livenessAt_Proxy( IDiaLVarInstance * This, /* [in] */ ULONGLONG va, /* [out] */ BOOL *pfLive); void __RPC_STUB IDiaLVarInstance_get_livenessAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLVarInstance_get_location_Proxy( IDiaLVarInstance * This, /* [in] */ IDiaStackFrame *pFrame, /* [out] */ BOOL *pfLocInRegister, /* [out] */ DWORD *pdwRegId, /* [out] */ ULONGLONG *pva); void __RPC_STUB IDiaLVarInstance_get_location_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLVarInstance_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0147 */ /* [local] */ enum __MIDL___MIDL_itf_dia2_0147_0001 { E_DIA_INPROLOG = ( HRESULT )(( unsigned long )1 << 31 | ( unsigned long )( LONG )0x6d << 16 | ( unsigned long )100), E_DIA_SYNTAX = E_DIA_INPROLOG + 1, E_DIA_FRAME_ACCESS = E_DIA_SYNTAX + 1, E_DIA_VALUE = E_DIA_FRAME_ACCESS + 1 } ; extern RPC_IF_HANDLE __MIDL_itf_dia2_0147_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0147_v0_0_s_ifspec; #ifndef __IDiaStackWalkFrame_INTERFACE_DEFINED__ #define __IDiaStackWalkFrame_INTERFACE_DEFINED__ /* interface IDiaStackWalkFrame */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalkFrame; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("97F0F1A6-E04E-4ea4-B4F9-B0D0E8D90F5D") IDiaStackWalkFrame : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE readMemory( /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkFrameVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalkFrame * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalkFrame * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalkFrame * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); HRESULT ( STDMETHODCALLTYPE *readMemory )( IDiaStackWalkFrame * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); END_INTERFACE } IDiaStackWalkFrameVtbl; interface IDiaStackWalkFrame { CONST_VTBL struct IDiaStackWalkFrameVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalkFrame_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalkFrame_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalkFrame_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalkFrame_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackWalkFrame_put_registerValue(This,index,NewVal) \ (This)->lpVtbl -> put_registerValue(This,index,NewVal) #define IDiaStackWalkFrame_readMemory(This,va,cbData,pcbData,pbData) \ (This)->lpVtbl -> readMemory(This,va,cbData,pcbData,pbData) #define IDiaStackWalkFrame_searchForReturnAddress(This,frame,returnAddress) \ (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) #define IDiaStackWalkFrame_searchForReturnAddressStart(This,frame,startAddress,returnAddress) \ (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_get_registerValue_Proxy( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackWalkFrame_get_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_put_registerValue_Proxy( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaStackWalkFrame_put_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_readMemory_Proxy( IDiaStackWalkFrame * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaStackWalkFrame_readMemory_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_searchForReturnAddress_Proxy( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkFrame_searchForReturnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_searchForReturnAddressStart_Proxy( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkFrame_searchForReturnAddressStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalkFrame_INTERFACE_DEFINED__ */ #ifndef __IDiaFrameData_INTERFACE_DEFINED__ #define __IDiaFrameData_INTERFACE_DEFINED__ /* interface IDiaFrameData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaFrameData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("A39184B7-6A36-42de-8EEC-7DF9F3F59F33") IDiaFrameData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthBlock( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_program( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionParent( /* [retval][out] */ IDiaFrameData **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE execute( IDiaStackWalkFrame *frame) = 0; }; #else /* C style interface */ typedef struct IDiaFrameDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaFrameData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaFrameData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaFrameData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaFrameData * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthBlock )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_program )( IDiaFrameData * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionParent )( IDiaFrameData * This, /* [retval][out] */ IDiaFrameData **pRetVal); HRESULT ( STDMETHODCALLTYPE *execute )( IDiaFrameData * This, IDiaStackWalkFrame *frame); END_INTERFACE } IDiaFrameDataVtbl; interface IDiaFrameData { CONST_VTBL struct IDiaFrameDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaFrameData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaFrameData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaFrameData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaFrameData_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaFrameData_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaFrameData_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaFrameData_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaFrameData_get_lengthBlock(This,pRetVal) \ (This)->lpVtbl -> get_lengthBlock(This,pRetVal) #define IDiaFrameData_get_lengthLocals(This,pRetVal) \ (This)->lpVtbl -> get_lengthLocals(This,pRetVal) #define IDiaFrameData_get_lengthParams(This,pRetVal) \ (This)->lpVtbl -> get_lengthParams(This,pRetVal) #define IDiaFrameData_get_maxStack(This,pRetVal) \ (This)->lpVtbl -> get_maxStack(This,pRetVal) #define IDiaFrameData_get_lengthProlog(This,pRetVal) \ (This)->lpVtbl -> get_lengthProlog(This,pRetVal) #define IDiaFrameData_get_lengthSavedRegisters(This,pRetVal) \ (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) #define IDiaFrameData_get_program(This,pRetVal) \ (This)->lpVtbl -> get_program(This,pRetVal) #define IDiaFrameData_get_systemExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) #define IDiaFrameData_get_cplusplusExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) #define IDiaFrameData_get_functionStart(This,pRetVal) \ (This)->lpVtbl -> get_functionStart(This,pRetVal) #define IDiaFrameData_get_allocatesBasePointer(This,pRetVal) \ (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) #define IDiaFrameData_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaFrameData_get_functionParent(This,pRetVal) \ (This)->lpVtbl -> get_functionParent(This,pRetVal) #define IDiaFrameData_execute(This,frame) \ (This)->lpVtbl -> execute(This,frame) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_addressSection_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_addressOffset_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_relativeVirtualAddress_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_virtualAddress_Proxy( IDiaFrameData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaFrameData_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthBlock_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthBlock_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthLocals_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthLocals_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthParams_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthParams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_maxStack_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_maxStack_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthProlog_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthProlog_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthSavedRegisters_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthSavedRegisters_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_program_Proxy( IDiaFrameData * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaFrameData_get_program_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_systemExceptionHandling_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_systemExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_cplusplusExceptionHandling_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_cplusplusExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_functionStart_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_functionStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_allocatesBasePointer_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_allocatesBasePointer_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_type_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_functionParent_Proxy( IDiaFrameData * This, /* [retval][out] */ IDiaFrameData **pRetVal); void __RPC_STUB IDiaFrameData_get_functionParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaFrameData_execute_Proxy( IDiaFrameData * This, IDiaStackWalkFrame *frame); void __RPC_STUB IDiaFrameData_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaFrameData_INTERFACE_DEFINED__ */ #ifndef __IDiaImageData_INTERFACE_DEFINED__ #define __IDiaImageData_INTERFACE_DEFINED__ /* interface IDiaImageData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaImageData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C8E40ED2-A1D9-4221-8692-3CE661184B44") IDiaImageData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageBase( /* [retval][out] */ ULONGLONG *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaImageDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaImageData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaImageData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaImageData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaImageData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageBase )( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); END_INTERFACE } IDiaImageDataVtbl; interface IDiaImageData { CONST_VTBL struct IDiaImageDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaImageData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaImageData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaImageData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaImageData_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaImageData_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaImageData_get_imageBase(This,pRetVal) \ (This)->lpVtbl -> get_imageBase(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_relativeVirtualAddress_Proxy( IDiaImageData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaImageData_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_virtualAddress_Proxy( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaImageData_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_imageBase_Proxy( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaImageData_get_imageBase_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaImageData_INTERFACE_DEFINED__ */ #ifndef __IDiaTable_INTERFACE_DEFINED__ #define __IDiaTable_INTERFACE_DEFINED__ /* interface IDiaTable */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaTable; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4A59FB77-ABAC-469b-A30B-9ECC85BFEF14") IDiaTable : public IEnumUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element) = 0; }; #else /* C style interface */ typedef struct IDiaTableVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaTable * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaTable * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaTable * This); /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( IDiaTable * This, /* [in] */ ULONG celt, /* [out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaTable * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaTable * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaTable * This, /* [out] */ IEnumUnknown **ppenum); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaTable * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaTable * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaTable * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaTable * This, /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element); END_INTERFACE } IDiaTableVtbl; interface IDiaTable { CONST_VTBL struct IDiaTableVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaTable_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaTable_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaTable_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaTable_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaTable_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaTable_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaTable_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #define IDiaTable_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaTable_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaTable_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaTable_Item(This,index,element) \ (This)->lpVtbl -> Item(This,index,element) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get__NewEnum_Proxy( IDiaTable * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaTable_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get_name_Proxy( IDiaTable * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaTable_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get_Count_Proxy( IDiaTable * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaTable_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaTable_Item_Proxy( IDiaTable * This, /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element); void __RPC_STUB IDiaTable_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaTable_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumTables_INTERFACE_DEFINED__ #define __IDiaEnumTables_INTERFACE_DEFINED__ /* interface IDiaEnumTables */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumTables; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E") IDiaEnumTables : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table) = 0; virtual HRESULT STDMETHODCALLTYPE Next( ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumTables **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumTablesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumTables * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumTables * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumTables * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumTables * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumTables * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumTables * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumTables * This, ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumTables * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumTables * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumTables * This, /* [out] */ IDiaEnumTables **ppenum); END_INTERFACE } IDiaEnumTablesVtbl; interface IDiaEnumTables { CONST_VTBL struct IDiaEnumTablesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumTables_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumTables_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumTables_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumTables_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumTables_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumTables_Item(This,index,table) \ (This)->lpVtbl -> Item(This,index,table) #define IDiaEnumTables_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumTables_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumTables_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumTables_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_get__NewEnum_Proxy( IDiaEnumTables * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumTables_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_get_Count_Proxy( IDiaEnumTables * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumTables_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_Item_Proxy( IDiaEnumTables * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table); void __RPC_STUB IDiaEnumTables_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Next_Proxy( IDiaEnumTables * This, ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched); void __RPC_STUB IDiaEnumTables_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Skip_Proxy( IDiaEnumTables * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumTables_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Reset_Proxy( IDiaEnumTables * This); void __RPC_STUB IDiaEnumTables_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Clone_Proxy( IDiaEnumTables * This, /* [out] */ IDiaEnumTables **ppenum); void __RPC_STUB IDiaEnumTables_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumTables_INTERFACE_DEFINED__ */ #ifndef __Dia2Lib_LIBRARY_DEFINED__ #define __Dia2Lib_LIBRARY_DEFINED__ /* library Dia2Lib */ /* [helpstring][version][uuid] */ EXTERN_C const IID LIBID_Dia2Lib; EXTERN_C const CLSID CLSID_DiaSource; #ifdef __cplusplus class DECLSPEC_UUID("bce36434-2c24-499e-bf49-8bd99b0eeb68") DiaSource; #endif EXTERN_C const CLSID CLSID_DiaSourceAlt; #ifdef __cplusplus class DECLSPEC_UUID("1fbd5ec4-b8e4-4d94-9efe-7ccaf9132c98") DiaSourceAlt; #endif EXTERN_C const CLSID CLSID_DiaStackWalker; #ifdef __cplusplus class DECLSPEC_UUID("37dfdbcc-40a5-4f4a-8523-123c746d38f0") DiaStackWalker; #endif #endif /* __Dia2Lib_LIBRARY_DEFINED__ */ /* interface __MIDL_itf_dia2_0152 */ /* [local] */ #define DiaTable_Symbols ( L"Symbols" ) #define DiaTable_Sections ( L"Sections" ) #define DiaTable_SrcFiles ( L"SourceFiles" ) #define DiaTable_LineNums ( L"LineNumbers" ) #define DiaTable_SegMap ( L"SegmentMap" ) #define DiaTable_Dbg ( L"Dbg" ) #define DiaTable_InjSrc ( L"InjectedSource" ) #define DiaTable_FrameData ( L"FrameData" ) extern RPC_IF_HANDLE __MIDL_itf_dia2_0152_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0152_v0_0_s_ifspec; #ifndef __IDiaPropertyStorage_INTERFACE_DEFINED__ #define __IDiaPropertyStorage_INTERFACE_DEFINED__ /* interface IDiaPropertyStorage */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaPropertyStorage; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9d416f9c-e184-45b2-a4f0-ce517f719e9b") IDiaPropertyStorage : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadMultiple( /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC *rgpspec, /* [size_is][out] */ PROPVARIANT *rgvar) = 0; virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames( /* [in] */ ULONG cpropid, /* [size_is][in] */ const PROPID *rgpropid, /* [size_is][out][in] */ BSTR *rglpwstrName) = 0; virtual HRESULT STDMETHODCALLTYPE Enum( /* [out] */ IEnumSTATPROPSTG **ppenum) = 0; virtual HRESULT STDMETHODCALLTYPE ReadDWORD( /* [in] */ PROPID id, /* [out] */ DWORD *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadLONG( /* [in] */ PROPID id, /* [out] */ LONG *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadBOOL( /* [in] */ PROPID id, /* [out] */ BOOL *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadULONGLONG( /* [in] */ PROPID id, /* [out] */ ULONGLONG *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadBSTR( /* [in] */ PROPID id, /* [out] */ BSTR *pValue) = 0; }; #else /* C style interface */ typedef struct IDiaPropertyStorageVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaPropertyStorage * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaPropertyStorage * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaPropertyStorage * This); HRESULT ( STDMETHODCALLTYPE *ReadMultiple )( IDiaPropertyStorage * This, /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC *rgpspec, /* [size_is][out] */ PROPVARIANT *rgvar); HRESULT ( STDMETHODCALLTYPE *ReadPropertyNames )( IDiaPropertyStorage * This, /* [in] */ ULONG cpropid, /* [size_is][in] */ const PROPID *rgpropid, /* [size_is][out][in] */ BSTR *rglpwstrName); HRESULT ( STDMETHODCALLTYPE *Enum )( IDiaPropertyStorage * This, /* [out] */ IEnumSTATPROPSTG **ppenum); HRESULT ( STDMETHODCALLTYPE *ReadDWORD )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ DWORD *pValue); HRESULT ( STDMETHODCALLTYPE *ReadLONG )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ LONG *pValue); HRESULT ( STDMETHODCALLTYPE *ReadBOOL )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BOOL *pValue); HRESULT ( STDMETHODCALLTYPE *ReadULONGLONG )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ ULONGLONG *pValue); HRESULT ( STDMETHODCALLTYPE *ReadBSTR )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BSTR *pValue); END_INTERFACE } IDiaPropertyStorageVtbl; interface IDiaPropertyStorage { CONST_VTBL struct IDiaPropertyStorageVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaPropertyStorage_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaPropertyStorage_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaPropertyStorage_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgvar) \ (This)->lpVtbl -> ReadMultiple(This,cpspec,rgpspec,rgvar) #define IDiaPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) \ (This)->lpVtbl -> ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) #define IDiaPropertyStorage_Enum(This,ppenum) \ (This)->lpVtbl -> Enum(This,ppenum) #define IDiaPropertyStorage_ReadDWORD(This,id,pValue) \ (This)->lpVtbl -> ReadDWORD(This,id,pValue) #define IDiaPropertyStorage_ReadLONG(This,id,pValue) \ (This)->lpVtbl -> ReadLONG(This,id,pValue) #define IDiaPropertyStorage_ReadBOOL(This,id,pValue) \ (This)->lpVtbl -> ReadBOOL(This,id,pValue) #define IDiaPropertyStorage_ReadULONGLONG(This,id,pValue) \ (This)->lpVtbl -> ReadULONGLONG(This,id,pValue) #define IDiaPropertyStorage_ReadBSTR(This,id,pValue) \ (This)->lpVtbl -> ReadBSTR(This,id,pValue) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadMultiple_Proxy( IDiaPropertyStorage * This, /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC *rgpspec, /* [size_is][out] */ PROPVARIANT *rgvar); void __RPC_STUB IDiaPropertyStorage_ReadMultiple_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadPropertyNames_Proxy( IDiaPropertyStorage * This, /* [in] */ ULONG cpropid, /* [size_is][in] */ const PROPID *rgpropid, /* [size_is][out][in] */ BSTR *rglpwstrName); void __RPC_STUB IDiaPropertyStorage_ReadPropertyNames_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_Enum_Proxy( IDiaPropertyStorage * This, /* [out] */ IEnumSTATPROPSTG **ppenum); void __RPC_STUB IDiaPropertyStorage_Enum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadDWORD_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ DWORD *pValue); void __RPC_STUB IDiaPropertyStorage_ReadDWORD_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadLONG_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ LONG *pValue); void __RPC_STUB IDiaPropertyStorage_ReadLONG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadBOOL_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BOOL *pValue); void __RPC_STUB IDiaPropertyStorage_ReadBOOL_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadULONGLONG_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ ULONGLONG *pValue); void __RPC_STUB IDiaPropertyStorage_ReadULONGLONG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadBSTR_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BSTR *pValue); void __RPC_STUB IDiaPropertyStorage_ReadBSTR_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaPropertyStorage_INTERFACE_DEFINED__ */ #ifndef __IDiaStackFrame_INTERFACE_DEFINED__ #define __IDiaStackFrame_INTERFACE_DEFINED__ /* interface IDiaStackFrame */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackFrame; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5edbc96d-cdd6-4792-afbe-cc89007d9610") IDiaStackFrame : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_base( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_size( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_returnAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_localsBase( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_rawLVarInstanceValue( /* [in] */ IDiaLVarInstance *pInstance, /* [in] */ DWORD cbDataMax, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE get_lVarInstanceLocation( /* [in] */ IDiaLVarInstance *pInstance, /* [out] */ BOOL *pfLocInRegister, /* [out] */ DWORD *pdwRegId, /* [out] */ ULONGLONG *pva) = 0; }; #else /* C style interface */ typedef struct IDiaStackFrameVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackFrame * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackFrame * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackFrame * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_base )( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_size )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_returnAddress )( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localsBase )( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_rawLVarInstanceValue )( IDiaStackFrame * This, /* [in] */ IDiaLVarInstance *pInstance, /* [in] */ DWORD cbDataMax, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *get_lVarInstanceLocation )( IDiaStackFrame * This, /* [in] */ IDiaLVarInstance *pInstance, /* [out] */ BOOL *pfLocInRegister, /* [out] */ DWORD *pdwRegId, /* [out] */ ULONGLONG *pva); END_INTERFACE } IDiaStackFrameVtbl; interface IDiaStackFrame { CONST_VTBL struct IDiaStackFrameVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackFrame_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackFrame_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackFrame_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackFrame_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaStackFrame_get_base(This,pRetVal) \ (This)->lpVtbl -> get_base(This,pRetVal) #define IDiaStackFrame_get_size(This,pRetVal) \ (This)->lpVtbl -> get_size(This,pRetVal) #define IDiaStackFrame_get_returnAddress(This,pRetVal) \ (This)->lpVtbl -> get_returnAddress(This,pRetVal) #define IDiaStackFrame_get_localsBase(This,pRetVal) \ (This)->lpVtbl -> get_localsBase(This,pRetVal) #define IDiaStackFrame_get_lengthLocals(This,pRetVal) \ (This)->lpVtbl -> get_lengthLocals(This,pRetVal) #define IDiaStackFrame_get_lengthParams(This,pRetVal) \ (This)->lpVtbl -> get_lengthParams(This,pRetVal) #define IDiaStackFrame_get_lengthProlog(This,pRetVal) \ (This)->lpVtbl -> get_lengthProlog(This,pRetVal) #define IDiaStackFrame_get_lengthSavedRegisters(This,pRetVal) \ (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) #define IDiaStackFrame_get_systemExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) #define IDiaStackFrame_get_cplusplusExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) #define IDiaStackFrame_get_functionStart(This,pRetVal) \ (This)->lpVtbl -> get_functionStart(This,pRetVal) #define IDiaStackFrame_get_allocatesBasePointer(This,pRetVal) \ (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) #define IDiaStackFrame_get_maxStack(This,pRetVal) \ (This)->lpVtbl -> get_maxStack(This,pRetVal) #define IDiaStackFrame_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackFrame_get_rawLVarInstanceValue(This,pInstance,cbDataMax,pcbData,pbData) \ (This)->lpVtbl -> get_rawLVarInstanceValue(This,pInstance,cbDataMax,pcbData,pbData) #define IDiaStackFrame_get_lVarInstanceLocation(This,pInstance,pfLocInRegister,pdwRegId,pva) \ (This)->lpVtbl -> get_lVarInstanceLocation(This,pInstance,pfLocInRegister,pdwRegId,pva) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_type_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_base_Proxy( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_base_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_size_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_size_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_returnAddress_Proxy( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_returnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_localsBase_Proxy( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_localsBase_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthLocals_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthLocals_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthParams_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthParams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthProlog_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthProlog_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthSavedRegisters_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthSavedRegisters_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_systemExceptionHandling_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_systemExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_cplusplusExceptionHandling_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_cplusplusExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_functionStart_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_functionStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_allocatesBasePointer_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_allocatesBasePointer_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_maxStack_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_maxStack_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_registerValue_Proxy( IDiaStackFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_rawLVarInstanceValue_Proxy( IDiaStackFrame * This, /* [in] */ IDiaLVarInstance *pInstance, /* [in] */ DWORD cbDataMax, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaStackFrame_get_rawLVarInstanceValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lVarInstanceLocation_Proxy( IDiaStackFrame * This, /* [in] */ IDiaLVarInstance *pInstance, /* [out] */ BOOL *pfLocInRegister, /* [out] */ DWORD *pdwRegId, /* [out] */ ULONGLONG *pva); void __RPC_STUB IDiaStackFrame_get_lVarInstanceLocation_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackFrame_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumStackFrames_INTERFACE_DEFINED__ #define __IDiaEnumStackFrames_INTERFACE_DEFINED__ /* interface IDiaEnumStackFrames */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumStackFrames; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ec9d461d-ce74-4711-a020-7d8f9a1dd255") IDiaEnumStackFrames : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaStackFrame **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; }; #else /* C style interface */ typedef struct IDiaEnumStackFramesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumStackFrames * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumStackFrames * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumStackFrames * This); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumStackFrames * This, /* [in] */ ULONG celt, /* [out] */ IDiaStackFrame **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumStackFrames * This); END_INTERFACE } IDiaEnumStackFramesVtbl; interface IDiaEnumStackFrames { CONST_VTBL struct IDiaEnumStackFramesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumStackFrames_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumStackFrames_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumStackFrames_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumStackFrames_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumStackFrames_Reset(This) \ (This)->lpVtbl -> Reset(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaEnumStackFrames_Next_Proxy( IDiaEnumStackFrames * This, /* [in] */ ULONG celt, /* [out] */ IDiaStackFrame **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumStackFrames_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumStackFrames_Reset_Proxy( IDiaEnumStackFrames * This); void __RPC_STUB IDiaEnumStackFrames_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumStackFrames_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0156 */ /* [local] */ typedef /* [public] */ struct __MIDL___MIDL_itf_dia2_0156_0001 { DWORD ulOffStart; DWORD cbProcSize; DWORD cdwLocals; WORD cdwParams; WORD cdwFlags; } FPODATA; extern RPC_IF_HANDLE __MIDL_itf_dia2_0156_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0156_v0_0_s_ifspec; #ifndef __IDiaStackWalkHelper_INTERFACE_DEFINED__ #define __IDiaStackWalkHelper_INTERFACE_DEFINED__ /* interface IDiaStackWalkHelper */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalkHelper; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("feb0155d-35a8-42d4-8328-bf458f429a3a") IDiaStackWalkHelper : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE readMemory( /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE frameForVA( /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame) = 0; virtual HRESULT STDMETHODCALLTYPE symbolForVA( /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE pdataForVA( /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData) = 0; virtual HRESULT STDMETHODCALLTYPE imageForVA( /* [in] */ ULONGLONG vaContext, /* [out] */ ULONGLONG *pvaImageStart) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkHelperVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalkHelper * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalkHelper * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalkHelper * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); HRESULT ( STDMETHODCALLTYPE *readMemory )( IDiaStackWalkHelper * This, /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *frameForVA )( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame); HRESULT ( STDMETHODCALLTYPE *symbolForVA )( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *pdataForVA )( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *imageForVA )( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG vaContext, /* [out] */ ULONGLONG *pvaImageStart); END_INTERFACE } IDiaStackWalkHelperVtbl; interface IDiaStackWalkHelper { CONST_VTBL struct IDiaStackWalkHelperVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalkHelper_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalkHelper_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalkHelper_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalkHelper_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackWalkHelper_put_registerValue(This,index,NewVal) \ (This)->lpVtbl -> put_registerValue(This,index,NewVal) #define IDiaStackWalkHelper_readMemory(This,type,va,cbData,pcbData,pbData) \ (This)->lpVtbl -> readMemory(This,type,va,cbData,pcbData,pbData) #define IDiaStackWalkHelper_searchForReturnAddress(This,frame,returnAddress) \ (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) #define IDiaStackWalkHelper_searchForReturnAddressStart(This,frame,startAddress,returnAddress) \ (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) #define IDiaStackWalkHelper_frameForVA(This,va,ppFrame) \ (This)->lpVtbl -> frameForVA(This,va,ppFrame) #define IDiaStackWalkHelper_symbolForVA(This,va,ppSymbol) \ (This)->lpVtbl -> symbolForVA(This,va,ppSymbol) #define IDiaStackWalkHelper_pdataForVA(This,va,cbData,pcbData,pbData) \ (This)->lpVtbl -> pdataForVA(This,va,cbData,pcbData,pbData) #define IDiaStackWalkHelper_imageForVA(This,vaContext,pvaImageStart) \ (This)->lpVtbl -> imageForVA(This,vaContext,pvaImageStart) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_get_registerValue_Proxy( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackWalkHelper_get_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_put_registerValue_Proxy( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaStackWalkHelper_put_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_readMemory_Proxy( IDiaStackWalkHelper * This, /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaStackWalkHelper_readMemory_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_searchForReturnAddress_Proxy( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkHelper_searchForReturnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_searchForReturnAddressStart_Proxy( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkHelper_searchForReturnAddressStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_frameForVA_Proxy( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame); void __RPC_STUB IDiaStackWalkHelper_frameForVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_symbolForVA_Proxy( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaStackWalkHelper_symbolForVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_pdataForVA_Proxy( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); void __RPC_STUB IDiaStackWalkHelper_pdataForVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_imageForVA_Proxy( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG vaContext, /* [out] */ ULONGLONG *pvaImageStart); void __RPC_STUB IDiaStackWalkHelper_imageForVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalkHelper_INTERFACE_DEFINED__ */ #ifndef __IDiaStackWalker_INTERFACE_DEFINED__ #define __IDiaStackWalker_INTERFACE_DEFINED__ /* interface IDiaStackWalker */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalker; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("5485216b-a54c-469f-9670-52b24d5229bb") IDiaStackWalker : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE getEnumFrames( /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumFrames2( /* [in] */ enum CV_CPU_TYPE_e cpuid, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkerVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalker * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalker * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalker * This); HRESULT ( STDMETHODCALLTYPE *getEnumFrames )( IDiaStackWalker * This, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); HRESULT ( STDMETHODCALLTYPE *getEnumFrames2 )( IDiaStackWalker * This, /* [in] */ enum CV_CPU_TYPE_e cpuid, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); END_INTERFACE } IDiaStackWalkerVtbl; interface IDiaStackWalker { CONST_VTBL struct IDiaStackWalkerVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalker_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalker_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalker_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalker_getEnumFrames(This,pHelper,ppEnum) \ (This)->lpVtbl -> getEnumFrames(This,pHelper,ppEnum) #define IDiaStackWalker_getEnumFrames2(This,cpuid,pHelper,ppEnum) \ (This)->lpVtbl -> getEnumFrames2(This,cpuid,pHelper,ppEnum) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaStackWalker_getEnumFrames_Proxy( IDiaStackWalker * This, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); void __RPC_STUB IDiaStackWalker_getEnumFrames_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalker_getEnumFrames2_Proxy( IDiaStackWalker * This, /* [in] */ enum CV_CPU_TYPE_e cpuid, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); void __RPC_STUB IDiaStackWalker_getEnumFrames2_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalker_INTERFACE_DEFINED__ */ #ifndef __IDiaStackWalkHelper2_INTERFACE_DEFINED__ #define __IDiaStackWalkHelper2_INTERFACE_DEFINED__ /* interface IDiaStackWalkHelper2 */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalkHelper2; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8222c490-507b-4bef-b3bd-41dca7b5934c") IDiaStackWalkHelper2 : public IDiaStackWalkHelper { public: }; #else /* C style interface */ typedef struct IDiaStackWalkHelper2Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalkHelper2 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalkHelper2 * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalkHelper2 * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackWalkHelper2 * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( IDiaStackWalkHelper2 * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); HRESULT ( STDMETHODCALLTYPE *readMemory )( IDiaStackWalkHelper2 * This, /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( IDiaStackWalkHelper2 * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( IDiaStackWalkHelper2 * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *frameForVA )( IDiaStackWalkHelper2 * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame); HRESULT ( STDMETHODCALLTYPE *symbolForVA )( IDiaStackWalkHelper2 * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *pdataForVA )( IDiaStackWalkHelper2 * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [size_is][out] */ BYTE *pbData); HRESULT ( STDMETHODCALLTYPE *imageForVA )( IDiaStackWalkHelper2 * This, /* [in] */ ULONGLONG vaContext, /* [out] */ ULONGLONG *pvaImageStart); END_INTERFACE } IDiaStackWalkHelper2Vtbl; interface IDiaStackWalkHelper2 { CONST_VTBL struct IDiaStackWalkHelper2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalkHelper2_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalkHelper2_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalkHelper2_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalkHelper2_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackWalkHelper2_put_registerValue(This,index,NewVal) \ (This)->lpVtbl -> put_registerValue(This,index,NewVal) #define IDiaStackWalkHelper2_readMemory(This,type,va,cbData,pcbData,pbData) \ (This)->lpVtbl -> readMemory(This,type,va,cbData,pcbData,pbData) #define IDiaStackWalkHelper2_searchForReturnAddress(This,frame,returnAddress) \ (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) #define IDiaStackWalkHelper2_searchForReturnAddressStart(This,frame,startAddress,returnAddress) \ (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) #define IDiaStackWalkHelper2_frameForVA(This,va,ppFrame) \ (This)->lpVtbl -> frameForVA(This,va,ppFrame) #define IDiaStackWalkHelper2_symbolForVA(This,va,ppSymbol) \ (This)->lpVtbl -> symbolForVA(This,va,ppSymbol) #define IDiaStackWalkHelper2_pdataForVA(This,va,cbData,pcbData,pbData) \ (This)->lpVtbl -> pdataForVA(This,va,cbData,pcbData,pbData) #define IDiaStackWalkHelper2_imageForVA(This,vaContext,pvaImageStart) \ (This)->lpVtbl -> imageForVA(This,vaContext,pvaImageStart) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __IDiaStackWalkHelper2_INTERFACE_DEFINED__ */ #ifndef __IDiaStackWalker2_INTERFACE_DEFINED__ #define __IDiaStackWalker2_INTERFACE_DEFINED__ /* interface IDiaStackWalker2 */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalker2; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("7c185885-a015-4cac-9411-0f4fb39b1f3a") IDiaStackWalker2 : public IDiaStackWalker { public: }; #else /* C style interface */ typedef struct IDiaStackWalker2Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalker2 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalker2 * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalker2 * This); HRESULT ( STDMETHODCALLTYPE *getEnumFrames )( IDiaStackWalker2 * This, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); HRESULT ( STDMETHODCALLTYPE *getEnumFrames2 )( IDiaStackWalker2 * This, /* [in] */ enum CV_CPU_TYPE_e cpuid, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); END_INTERFACE } IDiaStackWalker2Vtbl; interface IDiaStackWalker2 { CONST_VTBL struct IDiaStackWalker2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalker2_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalker2_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalker2_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalker2_getEnumFrames(This,pHelper,ppEnum) \ (This)->lpVtbl -> getEnumFrames(This,pHelper,ppEnum) #define IDiaStackWalker2_getEnumFrames2(This,cpuid,pHelper,ppEnum) \ (This)->lpVtbl -> getEnumFrames2(This,cpuid,pHelper,ppEnum) #endif /* COBJMACROS */ #endif /* C style interface */ #endif /* __IDiaStackWalker2_INTERFACE_DEFINED__ */ /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ #ifdef __cplusplus } #endif #endif ================================================ FILE: Addition/DIASDK2005/include/diacreate.h ================================================ // diacreate.h - creation helper functions for DIA initialization //----------------------------------------------------------------- // // Copyright Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- #ifndef _DIACREATE_H_ #define _DIACREATE_H_ // // Create a dia data source object from the dia dll (by dll name - does not access the registry). // HRESULT STDMETHODCALLTYPE NoRegCoCreate( const __wchar_t *dllName, REFCLSID rclsid, REFIID riid, void **ppv); #ifndef _NATIVE_WCHAR_T_DEFINED #ifdef __cplusplus HRESULT STDMETHODCALLTYPE NoRegCoCreate( const wchar_t *dllName, REFCLSID rclsid, REFIID riid, void **ppv) { return NoRegCoCreate( (const __wchar_t *)dllName, rclsid, riid, ppv ); } #endif #endif // // Create a dia data source object from the dia dll (looks up the class id in the registry). // HRESULT STDMETHODCALLTYPE NoOleCoCreate( REFCLSID rclsid, REFIID riid, void **ppv); #endif ================================================ FILE: Addition/DiaSDK.NET2003/idl/dia2.idl ================================================ // dia2.idl - Debug Information Access (DIA) interface description //----------------------------------------------------------------- // // Copyright 1999-2000 Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- import "objidl.idl"; import "oaidl.idl"; import "propidl.idl"; import "cvconst.h"; enum NameSearchOptions { nsNone = 0, nsfCaseSensitive = 0x1, // apply a case sensitive match nsfCaseInsensitive = 0x2, // apply a case insensitive match nsfFNameExt = 0x4, // treat names as paths and apply a filename.ext match nsfRegularExpression = 0x8, // regular expression nsfUndecoratedName = 0x10, // applies only to symbols that have both undecorated and decorated names // predefined names for backward source compatibility nsCaseSensitive = nsfCaseSensitive, // apply a case sensitive match nsCaseInsensitive = nsfCaseInsensitive, // apply a case insensitive match nsFNameExt = nsfCaseInsensitive | nsfFNameExt, // treat names as paths and apply a filename.ext match nsRegularExpression = nsfRegularExpression | nsfCaseSensitive, // regular expression (using only '*' and '?') nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive, // case insensitive regular expression }; // the following are error HRESULTS returned by an IDiaDataSource they // are based on the FACILITY_VISUALCPP (0x6d) defined in delayimp.h enum { E_PDB_OK=((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(1))) ), E_PDB_USAGE , E_PDB_OUT_OF_MEMORY , // not used, use E_OUTOFMEMORY E_PDB_FILE_SYSTEM , E_PDB_NOT_FOUND , E_PDB_INVALID_SIG , E_PDB_INVALID_AGE , E_PDB_PRECOMP_REQUIRED , E_PDB_OUT_OF_TI , E_PDB_NOT_IMPLEMENTED , // use E_NOTIMPL E_PDB_V1_PDB , E_PDB_FORMAT , E_PDB_LIMIT , E_PDB_CORRUPT , E_PDB_TI16 , E_PDB_ACCESS_DENIED , // use E_ACCESSDENIED E_PDB_ILLEGAL_TYPE_EDIT , E_PDB_INVALID_EXECUTABLE , E_PDB_DBG_NOT_FOUND , E_PDB_NO_DEBUG_INFO , E_PDB_INVALID_EXE_TIMESTAMP , E_PDB_RESERVED , E_PDB_DEBUG_INFO_NOT_IN_PDB , E_PDB_MAX }; // // Errors in finding dynamically loaded dlls or functions. // enum { DIA_E_MODNOTFOUND = E_PDB_MAX+1, DIA_E_PROCNOTFOUND, }; #define PROPERTY_RW(type, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([out, retval] type * pRetVal); \ \ [propput, helpstring(help), id(prid)] \ HRESULT name([in] type NewVal) #define PROPERTY_ARRAY_RW(type, itype, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [out, retval] type * pRetVal); \ \ [propput, helpstring(help), id(prid)] \ HRESULT name([in] itype index, [in] type NewVal) #define PROPERTY_RO(type, name, prid, help) \ [propget, helpstring(help), id(prid)] \ HRESULT name([out, retval] type * pRetVal) // type of callback arg to IDiaDataSource::loadDataForExe typedef void (__cdecl *PfnPDBDebugDirV)(BOOL, /*const struct _IMAGE_DEBUG_DIRECTORY * */ void*); interface IDiaSession; interface IDiaEnumTables; interface IDiaSymbol; interface IDiaSourceFile; interface IDiaLineNumber; interface IDiaInjectedSource; interface IDiaSegment; interface IDiaSectionContrib; interface IDiaFrameData; [ object, uuid(C32ADB82-73F4-421b-95D5-A4706EDF5DBE), local, helpstring("IDiaLoadCallback interface."), pointer_default(unique) ] interface IDiaLoadCallback: IUnknown { HRESULT NotifyDebugDir( [in] BOOL fExecutable, [in] DWORD cbData, [in, size_is(cbData)] BYTE data[]); // really a const struct _IMAGE_DEBUG_DIRECTORY * HRESULT NotifyOpenDBG( [in] LPCOLESTR dbgPath, [in] HRESULT resultCode); HRESULT NotifyOpenPDB( [in] LPCOLESTR pdbPath, [in] HRESULT resultCode); HRESULT RestrictRegistryAccess(); // return hr != S_OK to prevent querying the registry for symbol search paths HRESULT RestrictSymbolServerAccess(); // return hr != S_OK to prevent accessing a symbol server } [ object, uuid(4688a074-5a4d-4486-aea8-7b90711d9f7c), local, helpstring("IDiaLoadCallback interface."), pointer_default(unique) ] interface IDiaLoadCallback2: IDiaLoadCallback { HRESULT RestrictOriginalPathAccess(); // return hr != S_OK to prevent looking up PDB specified in the debug directory HRESULT RestrictReferencePathAccess(); // return hr != S_OK to prevent looking up for PDB where the EXE is located. HRESULT RestrictDBGAccess(); // return hr != S_OK to prevent looking up debug information from DBG files. } [ object, uuid(587A461C-B80B-4f54-9194-5032589A6319), local, helpstring("IDiaReadExeAtOffsetCallback interface."), pointer_default(unique) ] interface IDiaReadExeAtOffsetCallback: IUnknown { HRESULT ReadExecutableAt( [in] DWORDLONG fileOffset, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[]); } [ object, uuid(8E3F80CA-7517-432a-BA07-285134AAEA8E), local, helpstring("IDiaReadExeAtRVACallback interface."), pointer_default(unique) ] interface IDiaReadExeAtRVACallback: IUnknown { HRESULT ReadExecutableAtRVA( [in] DWORD relativeVirtualAddress, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[]); } [ object, uuid(79F1BB5F-B66E-48e5-B6A9-1545C323CA3D), local, helpstring("IDiaDataSource Interface"), pointer_default(unique) ] interface IDiaDataSource: IUnknown { PROPERTY_RO( BSTR, lastError, 1, "Text for last load error." ); // // loadDataFromPdb // HRESULT loadDataFromPdb( [in] LPCOLESTR pdbPath ); // // loadAndValidateDataFromPdb // HRESULT loadAndValidateDataFromPdb( [in] LPCOLESTR pdbPath, [in] GUID* pcsig70, [in] DWORD sig, [in] DWORD age ); // // loadDataForExe // HRESULT loadDataForExe( [in] LPCOLESTR executable, [in] LPCOLESTR searchPath, [in] IUnknown* pCallback ); // // loadDataFromIStream // HRESULT loadDataFromIStream( [in] IStream *pIStream ); HRESULT openSession( [out] IDiaSession** ppSession ); } [ object, uuid(CAB72C48-443B-48f5-9B0B-42F0820AB29A), local, helpstring("IDiaEnumSymbols Interface"), pointer_default(unique) ] interface IDiaEnumSymbols: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSymbols." ); PROPERTY_RO( LONG, Count, 1, "Number of symbols." ); [id(0), helpstring("Return the symbol for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSymbol **symbol); HRESULT Next( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSymbols **ppenum); } [ object, uuid(624B7D9C-24EA-4421-9D06-3B577471C1FA), local, helpstring("IDiaEnumSymbolsByAddr Interface"), pointer_default(unique) ] interface IDiaEnumSymbolsByAddr: IUnknown { // // Item(ByXxx) re-positions the enumerator to the item found // [helpstring("Return the symbol for the given address.")] HRESULT symbolByAddr( [in] DWORD isect, [in] DWORD offset, [out, retval]IDiaSymbol** ppSymbol); [helpstring("Return the symbol for the given relative virtual address.")] HRESULT symbolByRVA( [in] DWORD relativeVirtualAddress, [out, retval]IDiaSymbol** ppSymbol); [helpstring("Return the symbol for the given virtual address.")] HRESULT symbolByVA( [in] ULONGLONG virtualAddress, [out, retval]IDiaSymbol** ppSymbol); HRESULT Next( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Prev( [in] ULONG celt, [out] IDiaSymbol ** rgelt, [out] ULONG * pceltFetched ); HRESULT Clone( [out] IDiaEnumSymbolsByAddr **ppenum); } [ object, uuid(10F3DBD9-664F-4469-B808-9471C7A50538), local, helpstring("IDiaEnumSourceFiles Interface"), pointer_default(unique) ] interface IDiaEnumSourceFiles: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSourceFiles." ); PROPERTY_RO( LONG, Count, 1, "Number of source files." ); [id(0), helpstring("Return the source file for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSourceFile **sourceFile); HRESULT Next( [in] ULONG celt, [out] IDiaSourceFile ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSourceFiles **ppenum); } [ object, uuid(FE30E878-54AC-44f1-81BA-39DE940F6052), local, helpstring("IDiaEnumLineNumbers Interface"), pointer_default(unique) ] interface IDiaEnumLineNumbers: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumLineNumbers." ); PROPERTY_RO( LONG, Count, 1, "Number of line numbers." ); [id(0), helpstring("Return the line number for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaLineNumber **lineNumber); HRESULT Next( [in] ULONG celt, [out] IDiaLineNumber ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumLineNumbers **ppenum); } [ object, uuid(D5612573-6925-4468-8883-98CDEC8C384A), local, helpstring("IDiaEnumInjectedSources Interface"), pointer_default(unique) ] interface IDiaEnumInjectedSources: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumInjectedSources." ); PROPERTY_RO( LONG, Count, 1, "Number of injected source files." ); [id(0), helpstring("Return the injected source for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaInjectedSource **injectedSource); HRESULT Next( [in] ULONG celt, [out] IDiaInjectedSource ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumInjectedSources **ppenum); } [ object, uuid(E8368CA9-01D1-419d-AC0C-E31235DBDA9F), local, helpstring("IDiaEnumSegments Interface"), pointer_default(unique) ] interface IDiaEnumSegments: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSegments." ); PROPERTY_RO( LONG, Count, 1, "Number of segments." ); [id(0), helpstring("Return the segment for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSegment **segment); HRESULT Next( [in] ULONG celt, [out] IDiaSegment ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSegments **ppenum); } [ object, uuid(1994DEB2-2C82-4b1d-A57F-AFF424D54A68), local, helpstring("IDiaEnumSectionContribs Interface"), pointer_default(unique) ] interface IDiaEnumSectionContribs: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumSectionContribs." ); PROPERTY_RO( LONG, Count, 1, "Number of section contributions." ); [id(0), helpstring("Return the section contribution for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaSectionContrib **section); HRESULT Next( [in] ULONG celt, [out] IDiaSectionContrib ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumSectionContribs **ppenum); } [ object, uuid(9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F), local, helpstring("IDiaEnumFrameData Interface"), pointer_default(unique) ] interface IDiaEnumFrameData: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumFrameData." ); PROPERTY_RO( LONG, Count, 1, "Number of frames." ); [id(0), helpstring("Return the frame for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IDiaFrameData **frame); HRESULT Next( [in] ULONG celt, [out] IDiaFrameData ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumFrameData **ppenum); // // The following two by-address lookups do not reposition the enumeration // [helpstring("Return the frame for the given relative virtual address.")] HRESULT frameByRVA( [in] DWORD relativeVirtualAddress, [out, retval]IDiaFrameData **frame); [helpstring("Return the frame for the given virtual address.")] HRESULT frameByVA( [in] ULONGLONG virtualAddress, [out, retval]IDiaFrameData **frame); } [ object, uuid(486943E8-D187-4a6b-A3C4-291259FFF60D), local, helpstring("IDiaEnumDebugStreamData Interface"), pointer_default(unique) ] interface IDiaEnumDebugStreamData: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumDebugStreamData." ); PROPERTY_RO( LONG, Count, 1, "Number of elements in the stream." ); PROPERTY_RO( BSTR, name, 2, "Stream name." ); [id(0), helpstring("Return the element for the given index.")] HRESULT Item( [in] DWORD index, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT Next( [in] ULONG celt, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[], [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumDebugStreamData **ppenum); } [ object, uuid(08CBB41E-47A6-4f87-92F1-1C9C87CED044), local, helpstring("IDiaEnumDebugStreams Interface"), pointer_default(unique) ] interface IDiaEnumDebugStreams: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumDebugStreams." ); PROPERTY_RO( LONG, Count, 1, "Number of streams." ); [id(0), helpstring("Return the stream for the given index.")] HRESULT Item([in] VARIANT index, [out, retval]IDiaEnumDebugStreamData **stream); HRESULT Next( [in] ULONG celt, [out] IDiaEnumDebugStreamData ** rgelt, [out] ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumDebugStreams **ppenum); } struct DiaAddressMapEntry { DWORD rva; DWORD rvaTo; }; [ object, uuid(B62A2E7A-067A-4ea3-B598-04C09717502C), local, helpstring("IDiaAddressMap Interface"), pointer_default(unique) ] interface IDiaAddressMap: IUnknown { PROPERTY_RW( BOOL, addressMapEnabled, 3, "Enable address translations." ); PROPERTY_RW( BOOL, relativeVirtualAddressEnabled, 4, "Enable relative virtual address computations."); PROPERTY_RW( DWORD, imageAlign, 5, "Original image alignment." ); HRESULT set_imageHeaders( [in] DWORD cbData, [in, size_is(cbData)] BYTE data[], // actual type is IMAGE_SECTION_HEADER[] [in] BOOL originalHeaders ); // true: headers are original, that is, they match the debug symbols // false: headers are current, that is, they match the image HRESULT set_addressMap( [in] DWORD cData, // number of entries in rva map [in, size_is(cData)] struct DiaAddressMapEntry data[], // rva map [in] BOOL imageToSymbols ); // true: map from image to symbols (omapt) // false: map from symbols to image (omapf) }; [ object, uuid(67138B34-79CD-4b42-B74A-A18ADBB799DF), local, helpstring("IDiaSession Interface"), pointer_default(unique) ] interface IDiaSession: IUnknown { PROPERTY_RW( ULONGLONG, loadAddress, 1, "Dll/Exe load address." ); PROPERTY_RO( IDiaSymbol*, globalScope, 2, "Global scope (exe) symbol." ); HRESULT getEnumTables( [out] IDiaEnumTables** ppEnumTables ); HRESULT getSymbolsByAddr( [out] IDiaEnumSymbolsByAddr** ppEnumbyAddr ); // // Queries that return sets of symbols // HRESULT findChildren( [in] IDiaSymbol* parent, [in] enum SymTagEnum symtag, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSymbols** ppResult ); HRESULT findSymbolByAddr ( [in] DWORD isect, [in] DWORD offset, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByRVA ( [in] DWORD rva, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByVA ( [in] ULONGLONG va, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByToken ( [in] ULONG token, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol ); HRESULT symsAreEquiv( [in] IDiaSymbol* symbolA, [in] IDiaSymbol* symbolB ); HRESULT symbolById( [in] DWORD id, [out] IDiaSymbol** ppSymbol ); HRESULT findSymbolByRVAEx ( [in] DWORD rva, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol, [out] long* displacement ); HRESULT findSymbolByVAEx ( [in] ULONGLONG va, [in] enum SymTagEnum symtag, [out] IDiaSymbol** ppSymbol, [out] long* displacement ); // // Queries that return source file results // HRESULT findFile( [in] IDiaSymbol* pCompiland, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSourceFiles** ppResult ); HRESULT findFileById( [in] DWORD uniqueId, [out] IDiaSourceFile** ppResult ); // // Queries that return line number results // HRESULT findLines( [in] IDiaSymbol* compiland, [in] IDiaSourceFile* file, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByAddr( [in] DWORD seg, [in] DWORD offset, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByRVA( [in] DWORD rva, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByVA( [in] ULONGLONG va, [in] DWORD length, [out] IDiaEnumLineNumbers** ppResult ); HRESULT findLinesByLinenum( [in] IDiaSymbol* compiland, [in] IDiaSourceFile* file, [in] DWORD linenum, [in] DWORD column, [out] IDiaEnumLineNumbers** ppResult ); // // Queries that return injected source // HRESULT findInjectedSource( [in] LPCOLESTR srcFile, [out] IDiaEnumInjectedSources** ppResult ); HRESULT getEnumDebugStreams( [out] IDiaEnumDebugStreams** ppEnumDebugStreams ); }; /* * Table Columns * * Symbols - a symbol will have values in some subset of the fields */ [ object, uuid(72827A48-D320-4eaf-8436-548ADE47D5E5), local, helpstring("IDiaSymbol Interface"), pointer_default(unique) ] interface IDiaSymbol: IUnknown { PROPERTY_RO( DWORD, symIndexId, 0, "Unique symbol identifier." ); PROPERTY_RO( DWORD, symTag, 1, "Symbol kind tag." ); PROPERTY_RO( BSTR, name, 2, "Name" ); PROPERTY_RO( IDiaSymbol*, lexicalParent, 3, "Lexical parent symbol."); PROPERTY_RO( IDiaSymbol*, classParent, 4, "."); PROPERTY_RO( IDiaSymbol*, type, 5, "."); PROPERTY_RO( DWORD, dataKind, 6, "."); PROPERTY_RO( DWORD, locationType, 7, "."); PROPERTY_RO( DWORD, addressSection, 8, "."); PROPERTY_RO( DWORD, addressOffset, 9, "."); PROPERTY_RO( DWORD, relativeVirtualAddress, 10, "."); PROPERTY_RO( ULONGLONG, virtualAddress, 11, "."); PROPERTY_RO( DWORD, registerId, 12, "."); PROPERTY_RO( LONG, offset, 13, "."); PROPERTY_RO( ULONGLONG, length, 14, "."); PROPERTY_RO( DWORD, slot, 15, "."); PROPERTY_RO( BOOL, volatileType, 16, "."); PROPERTY_RO( BOOL, constType, 17, "."); PROPERTY_RO( BOOL, unalignedType, 18, "."); PROPERTY_RO( DWORD, access, 19, "."); PROPERTY_RO( BSTR, libraryName, 20, "."); PROPERTY_RO( DWORD, platform, 21, "."); PROPERTY_RO( DWORD, language, 22, "."); PROPERTY_RO( BOOL, editAndContinueEnabled, 23, "."); PROPERTY_RO( DWORD, frontEndMajor, 24, "."); PROPERTY_RO( DWORD, frontEndMinor, 25, "."); PROPERTY_RO( DWORD, frontEndBuild, 26, "."); PROPERTY_RO( DWORD, backEndMajor, 27, "."); PROPERTY_RO( DWORD, backEndMinor, 28, "."); PROPERTY_RO( DWORD, backEndBuild, 29, "."); PROPERTY_RO( BSTR, sourceFileName, 30, "."); PROPERTY_RO( BSTR, unused, 31, "."); PROPERTY_RO( DWORD, thunkOrdinal, 32, "."); PROPERTY_RO( LONG, thisAdjust, 33, "."); PROPERTY_RO( DWORD, virtualBaseOffset, 34, "."); PROPERTY_RO( BOOL, virtual, 35, "."); PROPERTY_RO( BOOL, intro, 36, "."); PROPERTY_RO( BOOL, pure, 37, "."); PROPERTY_RO( DWORD, callingConvention, 38, "."); PROPERTY_RO( VARIANT, value, 39, "."); PROPERTY_RO( DWORD, baseType, 40, "."); PROPERTY_RO( DWORD, token, 41, "."); PROPERTY_RO( DWORD, timeStamp, 42, "."); PROPERTY_RO( GUID, guid, 43, "."); PROPERTY_RO( BSTR, symbolsFileName, 44, "."); PROPERTY_RO( BOOL, reference, 46, "."); PROPERTY_RO( DWORD, count, 47, "."); PROPERTY_RO( DWORD, bitPosition, 49, "."); PROPERTY_RO( IDiaSymbol*, arrayIndexType, 50, "."); PROPERTY_RO( BOOL, packed, 51, "."); PROPERTY_RO( BOOL, constructor, 52, "."); PROPERTY_RO( BOOL, overloadedOperator, 53, "."); PROPERTY_RO( BOOL, nested, 54, "."); PROPERTY_RO( BOOL, hasNestedTypes, 55, "."); PROPERTY_RO( BOOL, hasAssignmentOperator, 56, "."); PROPERTY_RO( BOOL, hasCastOperator, 57, "."); PROPERTY_RO( BOOL, scoped, 58, "."); PROPERTY_RO( BOOL, virtualBaseClass, 59, "."); PROPERTY_RO( BOOL, indirectVirtualBaseClass, 60, "."); PROPERTY_RO( LONG, virtualBasePointerOffset, 61, "."); PROPERTY_RO( IDiaSymbol*, virtualTableShape, 62, "."); PROPERTY_RO( DWORD, lexicalParentId, 64, "Lexical parent symbol."); PROPERTY_RO( DWORD, classParentId, 65, "."); PROPERTY_RO( DWORD, typeId, 66, "."); PROPERTY_RO( DWORD, arrayIndexTypeId, 67, "."); PROPERTY_RO( DWORD, virtualTableShapeId, 68, "."); PROPERTY_RO( BOOL, code, 69, "Symbol refers to a code address." ); PROPERTY_RO( BOOL, function, 70, "Symbol refers to a function." ); PROPERTY_RO( BOOL, managed, 71, "Symbol refers to managed code." ); PROPERTY_RO( BOOL, msil, 72, "Symbol refers to MSIL code." ); PROPERTY_RO( DWORD, virtualBaseDispIndex, 73, "."); PROPERTY_RO( BSTR, undecoratedName, 74, "."); PROPERTY_RO( DWORD, age, 75, "PDB file age." ); PROPERTY_RO( DWORD, signature, 76, "Signature." ); PROPERTY_RO( BOOL, compilerGenerated, 77, "Symbol is compiler generated." ); PROPERTY_RO( BOOL, addressTaken, 78, "Symbol is address taken." ); PROPERTY_RO( DWORD, rank, 79, "Rank of FORTRAN multi-dimension array." ); PROPERTY_RO( IDiaSymbol*, lowerBound, 80, "Lower bound of a FORTRAN array dimension."); PROPERTY_RO( IDiaSymbol*, upperBound, 81, "Upper bound of a FORTRAN array dimension."); PROPERTY_RO( DWORD, lowerBoundId, 82, "Symbol Id of the lower bound of a FORTRAN array dimension."); PROPERTY_RO( DWORD, upperBoundId, 83, "Symbol Id of the upper bound of a FORTRAN array dimension."); HRESULT get_dataBytes( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT findChildren( [in] enum SymTagEnum symtag, [in] LPCOLESTR name, [in] DWORD compareFlags, [out] IDiaEnumSymbols** ppResult ); PROPERTY_RO( DWORD, targetSection, 84, "Thunk target address section."); PROPERTY_RO( DWORD, targetOffset, 85, "Thunk target address offset."); PROPERTY_RO( DWORD, targetRelativeVirtualAddress, 86, "Thunk target RVA."); PROPERTY_RO( ULONGLONG, targetVirtualAddress, 87, "Thunk target virtual address."); PROPERTY_RO( DWORD, machineType, 88, "Target machine type." ); PROPERTY_RO( DWORD, oemId, 89, "Identifier of manufacturer."); PROPERTY_RO( DWORD, oemSymbolId, 90, "Manufacturer defined custom symbol identifier." ); HRESULT get_types( [in] DWORD cTypes, [out] DWORD *pcTypes, [out, size_is(cTypes), length_is(*pcTypes)] IDiaSymbol* types[] ); HRESULT get_typeIds( [in] DWORD cTypeIds, [out] DWORD *pcTypeIds, [out, size_is(cTypeIds), length_is(*pcTypeIds)] DWORD typeIds[] ); PROPERTY_RO( IDiaSymbol*, objectPointerType, 91, "Type of method's object pointer." ); PROPERTY_RO( DWORD, udtKind, 92, "Struct, union or class."); HRESULT get_undecoratedNameEx( [in] DWORD undecorateOptions, [out] BSTR* name ); }; // // SourceFiles // [ object, uuid(A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD), local, helpstring("IDiaSourceFile Interface"), pointer_default(unique) ] interface IDiaSourceFile: IUnknown { PROPERTY_RO( DWORD, uniqueId, 2, "Unique id for the source file (in this data store)." ); PROPERTY_RO( BSTR, fileName, 3, "." ); PROPERTY_RO( DWORD, checksumType, 4, "." ); PROPERTY_RO( IDiaEnumSymbols*, compilands, 5, "." ); HRESULT get_checksum( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); }; // // LineNumbers // [ object, uuid(B388EB14-BE4D-421d-A8A1-6CF7AB057086), local, helpstring("IDiaLineNumber Interface"), pointer_default(unique) ] interface IDiaLineNumber: IUnknown { PROPERTY_RO( IDiaSymbol*, compiland, 1, "." ); PROPERTY_RO( IDiaSourceFile*, sourceFile, 2, "." ); PROPERTY_RO( DWORD, lineNumber, 3, "." ); PROPERTY_RO( DWORD, lineNumberEnd, 4, "." ); PROPERTY_RO( DWORD, columnNumber, 5, "." ); PROPERTY_RO( DWORD, columnNumberEnd, 6, "." ); PROPERTY_RO( DWORD, addressSection, 7, "." ); PROPERTY_RO( DWORD, addressOffset, 8, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 9, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 10, "." ); PROPERTY_RO( DWORD, length, 11, "." ); PROPERTY_RO( DWORD, sourceFileId, 12, "." ); PROPERTY_RO( BOOL, statement, 13, "." ); PROPERTY_RO( DWORD, compilandId, 14, "." ); }; // // SectionContributions // [ object, uuid(0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857), local, helpstring("IDiaSectionContrib Interface"), pointer_default(unique) ] interface IDiaSectionContrib: IUnknown { PROPERTY_RO( IDiaSymbol*, compiland, 1, "." ); PROPERTY_RO( DWORD, addressSection, 2, "." ); PROPERTY_RO( DWORD, addressOffset, 3, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 4, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 5, "." ); PROPERTY_RO( DWORD, length, 6, "." ); // 7 PROPERTY_RO( BOOL, notPaged, 8, "."); PROPERTY_RO( BOOL, code, 9, "."); PROPERTY_RO( BOOL, initializedData, 10, "."); PROPERTY_RO( BOOL, uninitializedData, 11, "."); PROPERTY_RO( BOOL, remove, 12, "."); PROPERTY_RO( BOOL, comdat, 13, "."); PROPERTY_RO( BOOL, discardable, 14, "."); PROPERTY_RO( BOOL, notCached, 15, "."); PROPERTY_RO( BOOL, share, 16, "."); PROPERTY_RO( BOOL, execute, 17, "."); PROPERTY_RO( BOOL, read, 18, "."); PROPERTY_RO( BOOL, write, 19, "."); PROPERTY_RO( DWORD, dataCrc, 20, "." ); PROPERTY_RO( DWORD, relocationsCrc, 21, "." ); PROPERTY_RO( DWORD, compilandId, 22, "." ); }; // // SegmentMap // [ object, uuid(0775B784-C75B-4449-848B-B7BD3159545B), local, helpstring("IDiaSegment Interface"), pointer_default(unique) ] interface IDiaSegment: IUnknown { PROPERTY_RO( DWORD, frame, 1, "Frame." ); PROPERTY_RO( DWORD, offset, 2, "Offset in physical section." ); PROPERTY_RO( DWORD, length, 3, "Length in bytes of segment." ); PROPERTY_RO( BOOL, read, 4, "Read allowed." ); PROPERTY_RO( BOOL, write, 5, "Write allowed." ); PROPERTY_RO( BOOL, execute, 6, "Execute allowed." ); PROPERTY_RO( DWORD, addressSection, 7, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 8, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 9, "." ); }; // // InjectedSource // [ object, uuid(AE605CDC-8105-4a23-B710-3259F1E26112), local, helpstring("IDiaInjectedSource Interface"), pointer_default(unique) ] interface IDiaInjectedSource: IUnknown { PROPERTY_RO( DWORD, crc, 1, "CRC of source bytes." ); PROPERTY_RO( ULONGLONG, length, 2, "Length of source in bytes." ); PROPERTY_RO( BSTR, filename, 3, "Source filename." ); PROPERTY_RO( BSTR, objectFilename, 4, "Object filename." ); PROPERTY_RO( BSTR, virtualFilename, 5, "Virtual filename." ); PROPERTY_RO( DWORD, sourceCompression, 6, "Source compression algorithm." ); HRESULT get_source( [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); }; // // Errors returned by IDiaFrameData::execute // enum { E_DIA_INPROLOG // cannot execute stack frame when in prolog =((HRESULT) (((unsigned long)(1)<<31) | ((unsigned long)(((LONG)0x6d))<<16) | ((unsigned long)(100))) ), E_DIA_SYNTAX, // error parsing frame program E_DIA_FRAME_ACCESS, // error accessing registers or memory E_DIA_VALUE, // error in computer a value (e.g., divide by zero) }; [ object, uuid(97F0F1A6-E04E-4ea4-B4F9-B0D0E8D90F5D), local, helpstring("IDiaStackWalkFrame Interface"), pointer_default(unique) ] interface IDiaStackWalkFrame: IUnknown { PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, "Register value." ); HRESULT readMemory( [in] ULONGLONG va, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT searchForReturnAddress( [in] IDiaFrameData* frame, [out] ULONGLONG* returnAddress ); HRESULT searchForReturnAddressStart( [in] IDiaFrameData* frame, [in] ULONGLONG startAddress, [out] ULONGLONG* returnAddress ); }; [ object, uuid(A39184B7-6A36-42de-8EEC-7DF9F3F59F33), local, helpstring("IDiaFrameData Interface"), pointer_default(unique) ] interface IDiaFrameData: IUnknown { PROPERTY_RO( DWORD, addressSection, 2, "." ); PROPERTY_RO( DWORD, addressOffset, 3, "." ); PROPERTY_RO( DWORD, relativeVirtualAddress, 4, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 5, "." ); PROPERTY_RO( DWORD, lengthBlock, 6, "." ); PROPERTY_RO( DWORD, lengthLocals, 7, "." ); PROPERTY_RO( DWORD, lengthParams, 8, "." ); PROPERTY_RO( DWORD, maxStack, 9, "." ); PROPERTY_RO( DWORD, lengthProlog, 10, "." ); PROPERTY_RO( DWORD, lengthSavedRegisters, 11, "." ); PROPERTY_RO( BSTR, program, 12, "." ); PROPERTY_RO( BOOL, systemExceptionHandling, 13, "." ); PROPERTY_RO( BOOL, cplusplusExceptionHandling, 14, "." ); PROPERTY_RO( BOOL, functionStart, 15, "." ); PROPERTY_RO( BOOL, allocatesBasePointer, 16, "." ); PROPERTY_RO( DWORD, type, 17, "." ); PROPERTY_RO( IDiaFrameData*, functionParent, 18, "Frame data for enclosing function."); HRESULT execute( IDiaStackWalkFrame* frame ); } // // IDiaImageData // // Some debug streams (XDATA, PDATA) contain copies of data also stored in the image. The // stream data objects (IDiaEnumDebugStreamData) can be QI'ed for their IDiaImageData. [ object, uuid(C8E40ED2-A1D9-4221-8692-3CE661184B44), local, helpstring("IDiaImageData Interface"), pointer_default(unique) ] interface IDiaImageData: IUnknown { PROPERTY_RO( DWORD, relativeVirtualAddress, 2, "." ); PROPERTY_RO( ULONGLONG, virtualAddress, 3, "." ); PROPERTY_RO( ULONGLONG, imageBase, 4, "." ); } // // IDiaTable // Supports enumerating the members of the table // [ object, uuid(4A59FB77-ABAC-469b-A30B-9ECC85BFEF14), local, helpstring("IDiaTable Interface"), pointer_default(unique) ] interface IDiaTable: IEnumUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaTable." ); PROPERTY_RO( BSTR, name, 1, "Table name." ); PROPERTY_RO( LONG, Count, 2, "Number of table entries." ); [id(0), helpstring("Return the table element for the given index.")] HRESULT Item([in] DWORD index, [out, retval]IUnknown **element); // ### IDispatch? }; [ object, uuid(C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E), local, helpstring("IDiaEnumTables Interface"), pointer_default(unique) ] interface IDiaEnumTables: IUnknown { PROPERTY_RO( IUnknown*, _NewEnum, DISPID_NEWENUM, "IEnumVARIANT version of IDiaEnumTables." ); PROPERTY_RO( LONG, Count, 1, "Number of tables." ); [id(0), helpstring("Return the table for the given index or name.")] HRESULT Item([in] VARIANT index, [out, retval]IDiaTable **table); HRESULT Next( ULONG celt, IDiaTable ** rgelt, ULONG * pceltFetched ); HRESULT Skip( [in] ULONG celt); HRESULT Reset(); HRESULT Clone( [out] IDiaEnumTables **ppenum); }; [ uuid(106173A0-0173-4e5c-84E7-E915422BE997), version(2.0), helpstring("dia 2.0 Type Library") ] library Dia2Lib { importlib("stdole2.tlb"); [ uuid(e60afbee-502d-46ae-858f-8272a09bd707), helpstring("DiaSource Class") ] coclass DiaSource { [default] interface IDiaDataSource; }; // // DiaSourceAlt - a DiaDataSource object that does not use the system heap. // // A process may either make DiaSourceAlt objects or DiaSource objects, but not both. // When using DiaSourceAlt all returned BSTR's are really LPCOLESTR and should not be // used with other BSTR management routines, in particular they must be released using // LocalFree( bstr ) [ uuid(9c1c335f-d27d-4857-bda0-2c7364544706), helpstring("Local Heap DiaSource Class") ] coclass DiaSourceAlt { [default] interface IDiaDataSource; }; // General stack walking API [ uuid(31495af6-0897-4f1e-8dac-1447f10174a1), helpstring("General Stackwalk Class") ] coclass DiaStackWalker { [default] interface IDiaStackWalker; }; }; // // DebugInfoTable // // Each id identifies an underlying table of debug information // const LPOLESTR DiaTable_Symbols = L"Symbols"; const LPOLESTR DiaTable_Sections = L"Sections"; const LPOLESTR DiaTable_SrcFiles = L"SourceFiles"; const LPOLESTR DiaTable_LineNums = L"LineNumbers"; const LPOLESTR DiaTable_SegMap = L"SegmentMap"; const LPOLESTR DiaTable_Dbg = L"Dbg"; const LPOLESTR DiaTable_InjSrc = L"InjectedSource"; const LPOLESTR DiaTable_FrameData = L"FrameData"; // Generic property broweser interface. [ object, uuid(9d416f9c-e184-45b2-a4f0-ce517f719e9b), local, helpstring("IDiaPropertyStorage Interface"), pointer_default(unique) ] interface IDiaPropertyStorage: IUnknown { HRESULT ReadMultiple( [in] ULONG cpspec, //Count of properties being read [in, size_is(cpspec * sizeof( PROPSPEC ))] PROPSPEC const rgpspec[], //Array of the properties to be read [in,out, size_is(cpspec * sizeof( PROPVARIANT )), length_is(cpspec)] PROPVARIANT rgvar[] //Array of PVARIANTs containing // the property values on return ); HRESULT ReadPropertyNames( [in] ULONG cpropid, //Number of elements in rgpropid [in, length_is( cpropid ), size_is( cpropid * sizeof( PROPID ) )] PROPID const rgpropid[], //Property identifiers for // which names are to be retrieved [in,out, length_is( cpropid ), size_is( cpropid * sizeof( BSTR ) )] BSTR rglpwstrName[] //Array of returned string names ); HRESULT Enum( [out] IEnumSTATPROPSTG **ppenum //Pointer to output variable // that receives the IEnumPROPSPEC // interface pointer ); HRESULT ReadDWORD( [in] PROPID id, // property to be read [out] DWORD* pValue // the property value on return ); HRESULT ReadLONG( [in] PROPID id, // property to be read [out] LONG* pValue // the property value on return ); HRESULT ReadBOOL( [in] PROPID id, // property to be read [out] BOOL* pValue // the property value on return ); HRESULT ReadULONGLONG( [in] PROPID id, // property to be read [out] ULONGLONG* pValue // the property value on return ); HRESULT ReadBSTR( [in] PROPID id, // property to be read [out] BSTR* pValue // the property value on return ); } [ object, uuid(fcea0205-66eb-4794-b38f-13852095c785), local, helpstring("IDiaStackFrame Interface"), pointer_default(unique) ] interface IDiaStackFrame: IUnknown { PROPERTY_RO( DWORD, type, 1, "type" ); PROPERTY_RO( ULONGLONG, base, 2, "Base of the stack frame" ); PROPERTY_RO( DWORD, size, 3, "size of frame in bytes" ); PROPERTY_RO( ULONGLONG, returnAddress, 4, "return address of the frame" ); PROPERTY_RO( ULONGLONG, localsBase, 5, "base of locals" ); PROPERTY_RO( DWORD, lengthLocals, 6, "cbLocals" ); PROPERTY_RO( DWORD, lengthParams, 7, "cbParams" ); PROPERTY_RO( DWORD, lengthProlog, 8, "cbProlog" ); PROPERTY_RO( DWORD, lengthSavedRegisters, 9, "cbSavedRegs" ); PROPERTY_RO( BOOL, systemExceptionHandling, 10, "fHasSEH" ); PROPERTY_RO( BOOL, cplusplusExceptionHandling, 11, "fHasEH" ); PROPERTY_RO( BOOL, functionStart, 12, "funcStart" ); PROPERTY_RO( BOOL, allocatesBasePointer, 13, "fUsesBP" ); PROPERTY_RO( DWORD, maxStack, 14, "maxStack" ); } [ object, uuid(ec9d461d-ce74-4711-a020-7d8f9a1dd255), local, helpstring("IDiaEnumStackFrames Interface"), pointer_default(unique) ] interface IDiaEnumStackFrames: IUnknown { HRESULT Next( [in] ULONG celt, [out] IDiaStackFrame ** rgelt, [out] ULONG * pceltFetched ); HRESULT Reset(); } typedef struct { DWORD ulOffStart; // offset 1st byte of function code DWORD cbProcSize; // # bytes in function DWORD cdwLocals; // # bytes in locals/4 WORD cdwParams; // # bytes in params/4 WORD cdwFlags; // Following stuff ... /* WORD cbProlog : 8; // # bytes in prolog WORD cbRegs : 3; // # regs saved WORD fHasSEH : 1; // TRUE if SEH in func WORD fUseBP : 1; // TRUE if EBP has been allocated WORD reserved : 1; // reserved for future use WORD cbFrame : 2; // frame type */ } FPODATA; [ object, uuid(43dbf56f-7f7f-4a09-9c83-5bab344f1c12), local, helpstring("IDiaStackWalkHelper Interface"), pointer_default(unique) ] interface IDiaStackWalkHelper: IUnknown { PROPERTY_ARRAY_RW( ULONGLONG, DWORD, registerValue, 1, "Register value." ); HRESULT readMemory( // Read memory for DIA [in] enum MemoryTypeEnum type, [in] ULONGLONG va, [in] DWORD cbData, [out] DWORD *pcbData, [out, size_is(cbData), length_is(*pcbData)] BYTE data[] ); HRESULT searchForReturnAddress( // search return address for DIA, return E_NOTIMPL to use DIA default [in] IDiaFrameData* frame, [out] ULONGLONG* returnAddress ); HRESULT searchForReturnAddressStart( // search return address for DIA, return E_NOTIMPL to use DIA default [in] IDiaFrameData* frame, [in] ULONGLONG startAddress, [out] ULONGLONG* returnAddress ); HRESULT frameForVA( // Get frame data for this address [in] ULONGLONG va, [out] IDiaFrameData **ppFrame ); HRESULT symbolForVA( // Get symbol at this address, must be a SymTagFunctionType! [in] ULONGLONG va, [out] IDiaSymbol **ppSymbol ); } [ object, uuid(14341190-eff2-46af-9290-14fa980277b0), local, helpstring("IDiaStackWalker Interface"), pointer_default(unique) ] interface IDiaStackWalker: IUnknown { HRESULT getEnumFrames( [in] IDiaStackWalkHelper *pHelper, [out] IDiaEnumStackFrames **ppEnum ); } ================================================ FILE: Addition/DiaSDK.NET2003/include/cvconst.h ================================================ // cvconst.h - codeview constant definitions //----------------------------------------------------------------- // // Copyright Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- #ifndef _CVCONST_H_ #define _CVCONST_H_ // Enumeration for function call type typedef enum CV_call_e { CV_CALL_NEAR_C = 0x00, // near right to left push, caller pops stack CV_CALL_FAR_C = 0x01, // far right to left push, caller pops stack CV_CALL_NEAR_PASCAL = 0x02, // near left to right push, callee pops stack CV_CALL_FAR_PASCAL = 0x03, // far left to right push, callee pops stack CV_CALL_NEAR_FAST = 0x04, // near left to right push with regs, callee pops stack CV_CALL_FAR_FAST = 0x05, // far left to right push with regs, callee pops stack CV_CALL_SKIPPED = 0x06, // skipped (unused) call index CV_CALL_NEAR_STD = 0x07, // near standard call CV_CALL_FAR_STD = 0x08, // far standard call CV_CALL_NEAR_SYS = 0x09, // near sys call CV_CALL_FAR_SYS = 0x0a, // far sys call CV_CALL_THISCALL = 0x0b, // this call (this passed in register) CV_CALL_MIPSCALL = 0x0c, // Mips call CV_CALL_GENERIC = 0x0d, // Generic call sequence CV_CALL_ALPHACALL = 0x0e, // Alpha call CV_CALL_PPCCALL = 0x0f, // PPC call CV_CALL_SHCALL = 0x10, // Hitachi SuperH call CV_CALL_ARMCALL = 0x11, // ARM call CV_CALL_AM33CALL = 0x12, // AM33 call CV_CALL_TRICALL = 0x13, // TriCore Call CV_CALL_SH5CALL = 0x14, // Hitachi SuperH-5 call CV_CALL_M32RCALL = 0x15, // M32R Call CV_CALL_RESERVED = 0x16 // first unused call enumeration } CV_call_e; // Values for the access protection of class attributes typedef enum CV_access_e { CV_private = 1, CV_protected = 2, CV_public = 3 } CV_access_e; typedef enum THUNK_ORDINAL { THUNK_ORDINAL_NOTYPE, // standard thunk THUNK_ORDINAL_ADJUSTOR, // "this" adjustor thunk THUNK_ORDINAL_VCALL, // virtual call thunk THUNK_ORDINAL_PCODE, // pcode thunk THUNK_ORDINAL_LOAD, // thunk which loads the address to jump to // via unknown means... // trampoline thunk ordinals - only for use in Trampoline thunk symbols THUNK_ORDINAL_TRAMP_INCREMENTAL, THUNK_ORDINAL_TRAMP_BRANCHISLAND, } THUNK_ORDINAL; enum CV_SourceChksum_t { CHKSUM_TYPE_NONE = 0, // indicates no checksum is available CHKSUM_TYPE_MD5 }; // // DIA enums // enum SymTagEnum { SymTagNull, SymTagExe, SymTagCompiland, SymTagCompilandDetails, SymTagCompilandEnv, SymTagFunction, SymTagBlock, SymTagData, SymTagAnnotation, SymTagLabel, SymTagPublicSymbol, SymTagUDT, SymTagEnum, SymTagFunctionType, SymTagPointerType, SymTagArrayType, SymTagBaseType, SymTagTypedef, SymTagBaseClass, SymTagFriend, SymTagFunctionArgType, SymTagFuncDebugStart, SymTagFuncDebugEnd, SymTagUsingNamespace, SymTagVTableShape, SymTagVTable, SymTagCustom, SymTagThunk, SymTagCustomType, SymTagManagedType, SymTagDimension, SymTagMax }; enum LocationType { LocIsNull, LocIsStatic, LocIsTLS, LocIsRegRel, LocIsThisRel, LocIsEnregistered, LocIsBitField, LocIsSlot, LocIsIlRel, LocInMetaData, LocIsConstant, LocTypeMax }; enum DataKind { DataIsUnknown, DataIsLocal, DataIsStaticLocal, DataIsParam, DataIsObjectPtr, DataIsFileStatic, DataIsGlobal, DataIsMember, DataIsStaticMember, DataIsConstant }; enum UdtKind { UdtStruct, UdtClass, UdtUnion }; enum BasicType { btNoType = 0, btVoid = 1, btChar = 2, btWChar = 3, btInt = 6, btUInt = 7, btFloat = 8, btBCD = 9, btBool = 10, btLong = 13, btULong = 14, btCurrency = 25, btDate = 26, btVariant = 27, btComplex = 28, btBit = 29, btBSTR = 30, btHresult = 31 }; // enum describing the compile flag source language typedef enum CV_CFL_LANG { CV_CFL_C = 0x00, CV_CFL_CXX = 0x01, CV_CFL_FORTRAN = 0x02, CV_CFL_MASM = 0x03, CV_CFL_PASCAL = 0x04, CV_CFL_BASIC = 0x05, CV_CFL_COBOL = 0x06, CV_CFL_LINK = 0x07, CV_CFL_CVTRES = 0x08, CV_CFL_CVTPGD = 0x09, } CV_CFL_LANG; // enum describing target processor typedef enum CV_CPU_TYPE_e { CV_CFL_8080 = 0x00, CV_CFL_8086 = 0x01, CV_CFL_80286 = 0x02, CV_CFL_80386 = 0x03, CV_CFL_80486 = 0x04, CV_CFL_PENTIUM = 0x05, CV_CFL_PENTIUMII = 0x06, CV_CFL_PENTIUMPRO = CV_CFL_PENTIUMII, CV_CFL_PENTIUMIII = 0x07, CV_CFL_MIPS = 0x10, CV_CFL_MIPSR4000 = CV_CFL_MIPS, // don't break current code CV_CFL_MIPS16 = 0x11, CV_CFL_MIPS32 = 0x12, CV_CFL_MIPS64 = 0x13, CV_CFL_MIPSI = 0x14, CV_CFL_MIPSII = 0x15, CV_CFL_MIPSIII = 0x16, CV_CFL_MIPSIV = 0x17, CV_CFL_MIPSV = 0x18, CV_CFL_M68000 = 0x20, CV_CFL_M68010 = 0x21, CV_CFL_M68020 = 0x22, CV_CFL_M68030 = 0x23, CV_CFL_M68040 = 0x24, CV_CFL_ALPHA = 0x30, CV_CFL_ALPHA_21064 = 0x30, CV_CFL_ALPHA_21164 = 0x31, CV_CFL_ALPHA_21164A = 0x32, CV_CFL_ALPHA_21264 = 0x33, CV_CFL_ALPHA_21364 = 0x34, CV_CFL_PPC601 = 0x40, CV_CFL_PPC603 = 0x41, CV_CFL_PPC604 = 0x42, CV_CFL_PPC620 = 0x43, CV_CFL_PPCFP = 0x44, CV_CFL_SH3 = 0x50, CV_CFL_SH3E = 0x51, CV_CFL_SH3DSP = 0x52, CV_CFL_SH4 = 0x53, CV_CFL_SHMEDIA = 0x54, CV_CFL_ARM3 = 0x60, CV_CFL_ARM4 = 0x61, CV_CFL_ARM4T = 0x62, CV_CFL_ARM5 = 0x63, CV_CFL_ARM5T = 0x64, CV_CFL_OMNI = 0x70, CV_CFL_IA64 = 0x80, CV_CFL_IA64_1 = 0x80, CV_CFL_IA64_2 = 0x81, CV_CFL_CEE = 0x90, CV_CFL_AM33 = 0xA0, CV_CFL_M32R = 0xB0, CV_CFL_TRICORE = 0xC0, CV_CFL_X8664 = 0xD0, CV_CFL_AMD64 = CV_CFL_X8664, CV_CFL_EBC = 0xE0, CV_CFL_THUMB = 0xF0, } CV_CPU_TYPE_e; typedef enum CV_HREG_e { // Register subset shared by all processor types, // must not overlap with any of the ranges below, hence the high values CV_ALLREG_ERR = 30000, CV_ALLREG_TEB = 30001, CV_ALLREG_TIMER = 30002, CV_ALLREG_EFAD1 = 30003, CV_ALLREG_EFAD2 = 30004, CV_ALLREG_EFAD3 = 30005, CV_ALLREG_VFRAME= 30006, CV_ALLREG_HANDLE= 30007, CV_ALLREG_PARAMS= 30008, CV_ALLREG_LOCALS= 30009, CV_ALLREG_TID = 30010, CV_ALLREG_ENV = 30011, CV_ALLREG_CMDLN = 30012, // Register set for the Intel 80x86 and ix86 processor series // (plus PCODE registers) CV_REG_NONE = 0, CV_REG_AL = 1, CV_REG_CL = 2, CV_REG_DL = 3, CV_REG_BL = 4, CV_REG_AH = 5, CV_REG_CH = 6, CV_REG_DH = 7, CV_REG_BH = 8, CV_REG_AX = 9, CV_REG_CX = 10, CV_REG_DX = 11, CV_REG_BX = 12, CV_REG_SP = 13, CV_REG_BP = 14, CV_REG_SI = 15, CV_REG_DI = 16, CV_REG_EAX = 17, CV_REG_ECX = 18, CV_REG_EDX = 19, CV_REG_EBX = 20, CV_REG_ESP = 21, CV_REG_EBP = 22, CV_REG_ESI = 23, CV_REG_EDI = 24, CV_REG_ES = 25, CV_REG_CS = 26, CV_REG_SS = 27, CV_REG_DS = 28, CV_REG_FS = 29, CV_REG_GS = 30, CV_REG_IP = 31, CV_REG_FLAGS = 32, CV_REG_EIP = 33, CV_REG_EFLAGS = 34, CV_REG_TEMP = 40, // PCODE Temp CV_REG_TEMPH = 41, // PCODE TempH CV_REG_QUOTE = 42, // PCODE Quote CV_REG_PCDR3 = 43, // PCODE reserved CV_REG_PCDR4 = 44, // PCODE reserved CV_REG_PCDR5 = 45, // PCODE reserved CV_REG_PCDR6 = 46, // PCODE reserved CV_REG_PCDR7 = 47, // PCODE reserved CV_REG_CR0 = 80, // CR0 -- control registers CV_REG_CR1 = 81, CV_REG_CR2 = 82, CV_REG_CR3 = 83, CV_REG_CR4 = 84, // Pentium CV_REG_DR0 = 90, // Debug register CV_REG_DR1 = 91, CV_REG_DR2 = 92, CV_REG_DR3 = 93, CV_REG_DR4 = 94, CV_REG_DR5 = 95, CV_REG_DR6 = 96, CV_REG_DR7 = 97, CV_REG_GDTR = 110, CV_REG_GDTL = 111, CV_REG_IDTR = 112, CV_REG_IDTL = 113, CV_REG_LDTR = 114, CV_REG_TR = 115, CV_REG_PSEUDO1 = 116, CV_REG_PSEUDO2 = 117, CV_REG_PSEUDO3 = 118, CV_REG_PSEUDO4 = 119, CV_REG_PSEUDO5 = 120, CV_REG_PSEUDO6 = 121, CV_REG_PSEUDO7 = 122, CV_REG_PSEUDO8 = 123, CV_REG_PSEUDO9 = 124, CV_REG_ST0 = 128, CV_REG_ST1 = 129, CV_REG_ST2 = 130, CV_REG_ST3 = 131, CV_REG_ST4 = 132, CV_REG_ST5 = 133, CV_REG_ST6 = 134, CV_REG_ST7 = 135, CV_REG_CTRL = 136, CV_REG_STAT = 137, CV_REG_TAG = 138, CV_REG_FPIP = 139, CV_REG_FPCS = 140, CV_REG_FPDO = 141, CV_REG_FPDS = 142, CV_REG_ISEM = 143, CV_REG_FPEIP = 144, CV_REG_FPEDO = 145, CV_REG_MM0 = 146, CV_REG_MM1 = 147, CV_REG_MM2 = 148, CV_REG_MM3 = 149, CV_REG_MM4 = 150, CV_REG_MM5 = 151, CV_REG_MM6 = 152, CV_REG_MM7 = 153, CV_REG_XMM0 = 154, // KATMAI registers CV_REG_XMM1 = 155, CV_REG_XMM2 = 156, CV_REG_XMM3 = 157, CV_REG_XMM4 = 158, CV_REG_XMM5 = 159, CV_REG_XMM6 = 160, CV_REG_XMM7 = 161, CV_REG_XMM00 = 162, // KATMAI sub-registers CV_REG_XMM01 = 163, CV_REG_XMM02 = 164, CV_REG_XMM03 = 165, CV_REG_XMM10 = 166, CV_REG_XMM11 = 167, CV_REG_XMM12 = 168, CV_REG_XMM13 = 169, CV_REG_XMM20 = 170, CV_REG_XMM21 = 171, CV_REG_XMM22 = 172, CV_REG_XMM23 = 173, CV_REG_XMM30 = 174, CV_REG_XMM31 = 175, CV_REG_XMM32 = 176, CV_REG_XMM33 = 177, CV_REG_XMM40 = 178, CV_REG_XMM41 = 179, CV_REG_XMM42 = 180, CV_REG_XMM43 = 181, CV_REG_XMM50 = 182, CV_REG_XMM51 = 183, CV_REG_XMM52 = 184, CV_REG_XMM53 = 185, CV_REG_XMM60 = 186, CV_REG_XMM61 = 187, CV_REG_XMM62 = 188, CV_REG_XMM63 = 189, CV_REG_XMM70 = 190, CV_REG_XMM71 = 191, CV_REG_XMM72 = 192, CV_REG_XMM73 = 193, CV_REG_XMM0L = 194, CV_REG_XMM1L = 195, CV_REG_XMM2L = 196, CV_REG_XMM3L = 197, CV_REG_XMM4L = 198, CV_REG_XMM5L = 199, CV_REG_XMM6L = 200, CV_REG_XMM7L = 201, CV_REG_XMM0H = 202, CV_REG_XMM1H = 203, CV_REG_XMM2H = 204, CV_REG_XMM3H = 205, CV_REG_XMM4H = 206, CV_REG_XMM5H = 207, CV_REG_XMM6H = 208, CV_REG_XMM7H = 209, CV_REG_MXCSR = 211, // XMM status register CV_REG_EDXEAX = 212, // EDX:EAX pair CV_REG_EMM0L = 220, // XMM sub-registers (WNI integer) CV_REG_EMM1L = 221, CV_REG_EMM2L = 222, CV_REG_EMM3L = 223, CV_REG_EMM4L = 224, CV_REG_EMM5L = 225, CV_REG_EMM6L = 226, CV_REG_EMM7L = 227, CV_REG_EMM0H = 228, CV_REG_EMM1H = 229, CV_REG_EMM2H = 230, CV_REG_EMM3H = 231, CV_REG_EMM4H = 232, CV_REG_EMM5H = 233, CV_REG_EMM6H = 234, CV_REG_EMM7H = 235, // do not change the order of these regs, first one must be even too CV_REG_MM00 = 236, CV_REG_MM01 = 237, CV_REG_MM10 = 238, CV_REG_MM11 = 239, CV_REG_MM20 = 240, CV_REG_MM21 = 241, CV_REG_MM30 = 242, CV_REG_MM31 = 243, CV_REG_MM40 = 244, CV_REG_MM41 = 245, CV_REG_MM50 = 246, CV_REG_MM51 = 247, CV_REG_MM60 = 248, CV_REG_MM61 = 249, CV_REG_MM70 = 250, CV_REG_MM71 = 251, // registers for the 68K processors CV_R68_D0 = 0, CV_R68_D1 = 1, CV_R68_D2 = 2, CV_R68_D3 = 3, CV_R68_D4 = 4, CV_R68_D5 = 5, CV_R68_D6 = 6, CV_R68_D7 = 7, CV_R68_A0 = 8, CV_R68_A1 = 9, CV_R68_A2 = 10, CV_R68_A3 = 11, CV_R68_A4 = 12, CV_R68_A5 = 13, CV_R68_A6 = 14, CV_R68_A7 = 15, CV_R68_CCR = 16, CV_R68_SR = 17, CV_R68_USP = 18, CV_R68_MSP = 19, CV_R68_SFC = 20, CV_R68_DFC = 21, CV_R68_CACR = 22, CV_R68_VBR = 23, CV_R68_CAAR = 24, CV_R68_ISP = 25, CV_R68_PC = 26, //reserved 27 CV_R68_FPCR = 28, CV_R68_FPSR = 29, CV_R68_FPIAR = 30, //reserved 31 CV_R68_FP0 = 32, CV_R68_FP1 = 33, CV_R68_FP2 = 34, CV_R68_FP3 = 35, CV_R68_FP4 = 36, CV_R68_FP5 = 37, CV_R68_FP6 = 38, CV_R68_FP7 = 39, //reserved 40 CV_R68_MMUSR030 = 41, CV_R68_MMUSR = 42, CV_R68_URP = 43, CV_R68_DTT0 = 44, CV_R68_DTT1 = 45, CV_R68_ITT0 = 46, CV_R68_ITT1 = 47, //reserved 50 CV_R68_PSR = 51, CV_R68_PCSR = 52, CV_R68_VAL = 53, CV_R68_CRP = 54, CV_R68_SRP = 55, CV_R68_DRP = 56, CV_R68_TC = 57, CV_R68_AC = 58, CV_R68_SCC = 59, CV_R68_CAL = 60, CV_R68_TT0 = 61, CV_R68_TT1 = 62, //reserved 63 CV_R68_BAD0 = 64, CV_R68_BAD1 = 65, CV_R68_BAD2 = 66, CV_R68_BAD3 = 67, CV_R68_BAD4 = 68, CV_R68_BAD5 = 69, CV_R68_BAD6 = 70, CV_R68_BAD7 = 71, CV_R68_BAC0 = 72, CV_R68_BAC1 = 73, CV_R68_BAC2 = 74, CV_R68_BAC3 = 75, CV_R68_BAC4 = 76, CV_R68_BAC5 = 77, CV_R68_BAC6 = 78, CV_R68_BAC7 = 79, // Register set for the MIPS 4000 CV_M4_NOREG = CV_REG_NONE, CV_M4_IntZERO = 10, /* CPU REGISTER */ CV_M4_IntAT = 11, CV_M4_IntV0 = 12, CV_M4_IntV1 = 13, CV_M4_IntA0 = 14, CV_M4_IntA1 = 15, CV_M4_IntA2 = 16, CV_M4_IntA3 = 17, CV_M4_IntT0 = 18, CV_M4_IntT1 = 19, CV_M4_IntT2 = 20, CV_M4_IntT3 = 21, CV_M4_IntT4 = 22, CV_M4_IntT5 = 23, CV_M4_IntT6 = 24, CV_M4_IntT7 = 25, CV_M4_IntS0 = 26, CV_M4_IntS1 = 27, CV_M4_IntS2 = 28, CV_M4_IntS3 = 29, CV_M4_IntS4 = 30, CV_M4_IntS5 = 31, CV_M4_IntS6 = 32, CV_M4_IntS7 = 33, CV_M4_IntT8 = 34, CV_M4_IntT9 = 35, CV_M4_IntKT0 = 36, CV_M4_IntKT1 = 37, CV_M4_IntGP = 38, CV_M4_IntSP = 39, CV_M4_IntS8 = 40, CV_M4_IntRA = 41, CV_M4_IntLO = 42, CV_M4_IntHI = 43, CV_M4_Fir = 50, CV_M4_Psr = 51, CV_M4_FltF0 = 60, /* Floating point registers */ CV_M4_FltF1 = 61, CV_M4_FltF2 = 62, CV_M4_FltF3 = 63, CV_M4_FltF4 = 64, CV_M4_FltF5 = 65, CV_M4_FltF6 = 66, CV_M4_FltF7 = 67, CV_M4_FltF8 = 68, CV_M4_FltF9 = 69, CV_M4_FltF10 = 70, CV_M4_FltF11 = 71, CV_M4_FltF12 = 72, CV_M4_FltF13 = 73, CV_M4_FltF14 = 74, CV_M4_FltF15 = 75, CV_M4_FltF16 = 76, CV_M4_FltF17 = 77, CV_M4_FltF18 = 78, CV_M4_FltF19 = 79, CV_M4_FltF20 = 80, CV_M4_FltF21 = 81, CV_M4_FltF22 = 82, CV_M4_FltF23 = 83, CV_M4_FltF24 = 84, CV_M4_FltF25 = 85, CV_M4_FltF26 = 86, CV_M4_FltF27 = 87, CV_M4_FltF28 = 88, CV_M4_FltF29 = 89, CV_M4_FltF30 = 90, CV_M4_FltF31 = 91, CV_M4_FltFsr = 92, // Register set for the ALPHA AXP CV_ALPHA_NOREG = CV_REG_NONE, CV_ALPHA_FltF0 = 10, // Floating point registers CV_ALPHA_FltF1 = 11, CV_ALPHA_FltF2 = 12, CV_ALPHA_FltF3 = 13, CV_ALPHA_FltF4 = 14, CV_ALPHA_FltF5 = 15, CV_ALPHA_FltF6 = 16, CV_ALPHA_FltF7 = 17, CV_ALPHA_FltF8 = 18, CV_ALPHA_FltF9 = 19, CV_ALPHA_FltF10 = 20, CV_ALPHA_FltF11 = 21, CV_ALPHA_FltF12 = 22, CV_ALPHA_FltF13 = 23, CV_ALPHA_FltF14 = 24, CV_ALPHA_FltF15 = 25, CV_ALPHA_FltF16 = 26, CV_ALPHA_FltF17 = 27, CV_ALPHA_FltF18 = 28, CV_ALPHA_FltF19 = 29, CV_ALPHA_FltF20 = 30, CV_ALPHA_FltF21 = 31, CV_ALPHA_FltF22 = 32, CV_ALPHA_FltF23 = 33, CV_ALPHA_FltF24 = 34, CV_ALPHA_FltF25 = 35, CV_ALPHA_FltF26 = 36, CV_ALPHA_FltF27 = 37, CV_ALPHA_FltF28 = 38, CV_ALPHA_FltF29 = 39, CV_ALPHA_FltF30 = 40, CV_ALPHA_FltF31 = 41, CV_ALPHA_IntV0 = 42, // Integer registers CV_ALPHA_IntT0 = 43, CV_ALPHA_IntT1 = 44, CV_ALPHA_IntT2 = 45, CV_ALPHA_IntT3 = 46, CV_ALPHA_IntT4 = 47, CV_ALPHA_IntT5 = 48, CV_ALPHA_IntT6 = 49, CV_ALPHA_IntT7 = 50, CV_ALPHA_IntS0 = 51, CV_ALPHA_IntS1 = 52, CV_ALPHA_IntS2 = 53, CV_ALPHA_IntS3 = 54, CV_ALPHA_IntS4 = 55, CV_ALPHA_IntS5 = 56, CV_ALPHA_IntFP = 57, CV_ALPHA_IntA0 = 58, CV_ALPHA_IntA1 = 59, CV_ALPHA_IntA2 = 60, CV_ALPHA_IntA3 = 61, CV_ALPHA_IntA4 = 62, CV_ALPHA_IntA5 = 63, CV_ALPHA_IntT8 = 64, CV_ALPHA_IntT9 = 65, CV_ALPHA_IntT10 = 66, CV_ALPHA_IntT11 = 67, CV_ALPHA_IntRA = 68, CV_ALPHA_IntT12 = 69, CV_ALPHA_IntAT = 70, CV_ALPHA_IntGP = 71, CV_ALPHA_IntSP = 72, CV_ALPHA_IntZERO = 73, CV_ALPHA_Fpcr = 74, // Control registers CV_ALPHA_Fir = 75, CV_ALPHA_Psr = 76, CV_ALPHA_FltFsr = 77, CV_ALPHA_SoftFpcr = 78, // Register Set for Motorola/IBM PowerPC /* ** PowerPC General Registers ( User Level ) */ CV_PPC_GPR0 = 1, CV_PPC_GPR1 = 2, CV_PPC_GPR2 = 3, CV_PPC_GPR3 = 4, CV_PPC_GPR4 = 5, CV_PPC_GPR5 = 6, CV_PPC_GPR6 = 7, CV_PPC_GPR7 = 8, CV_PPC_GPR8 = 9, CV_PPC_GPR9 = 10, CV_PPC_GPR10 = 11, CV_PPC_GPR11 = 12, CV_PPC_GPR12 = 13, CV_PPC_GPR13 = 14, CV_PPC_GPR14 = 15, CV_PPC_GPR15 = 16, CV_PPC_GPR16 = 17, CV_PPC_GPR17 = 18, CV_PPC_GPR18 = 19, CV_PPC_GPR19 = 20, CV_PPC_GPR20 = 21, CV_PPC_GPR21 = 22, CV_PPC_GPR22 = 23, CV_PPC_GPR23 = 24, CV_PPC_GPR24 = 25, CV_PPC_GPR25 = 26, CV_PPC_GPR26 = 27, CV_PPC_GPR27 = 28, CV_PPC_GPR28 = 29, CV_PPC_GPR29 = 30, CV_PPC_GPR30 = 31, CV_PPC_GPR31 = 32, /* ** PowerPC Condition Register ( User Level ) */ CV_PPC_CR = 33, CV_PPC_CR0 = 34, CV_PPC_CR1 = 35, CV_PPC_CR2 = 36, CV_PPC_CR3 = 37, CV_PPC_CR4 = 38, CV_PPC_CR5 = 39, CV_PPC_CR6 = 40, CV_PPC_CR7 = 41, /* ** PowerPC Floating Point Registers ( User Level ) */ CV_PPC_FPR0 = 42, CV_PPC_FPR1 = 43, CV_PPC_FPR2 = 44, CV_PPC_FPR3 = 45, CV_PPC_FPR4 = 46, CV_PPC_FPR5 = 47, CV_PPC_FPR6 = 48, CV_PPC_FPR7 = 49, CV_PPC_FPR8 = 50, CV_PPC_FPR9 = 51, CV_PPC_FPR10 = 52, CV_PPC_FPR11 = 53, CV_PPC_FPR12 = 54, CV_PPC_FPR13 = 55, CV_PPC_FPR14 = 56, CV_PPC_FPR15 = 57, CV_PPC_FPR16 = 58, CV_PPC_FPR17 = 59, CV_PPC_FPR18 = 60, CV_PPC_FPR19 = 61, CV_PPC_FPR20 = 62, CV_PPC_FPR21 = 63, CV_PPC_FPR22 = 64, CV_PPC_FPR23 = 65, CV_PPC_FPR24 = 66, CV_PPC_FPR25 = 67, CV_PPC_FPR26 = 68, CV_PPC_FPR27 = 69, CV_PPC_FPR28 = 70, CV_PPC_FPR29 = 71, CV_PPC_FPR30 = 72, CV_PPC_FPR31 = 73, /* ** PowerPC Floating Point Status and Control Register ( User Level ) */ CV_PPC_FPSCR = 74, /* ** PowerPC Machine State Register ( Supervisor Level ) */ CV_PPC_MSR = 75, /* ** PowerPC Segment Registers ( Supervisor Level ) */ CV_PPC_SR0 = 76, CV_PPC_SR1 = 77, CV_PPC_SR2 = 78, CV_PPC_SR3 = 79, CV_PPC_SR4 = 80, CV_PPC_SR5 = 81, CV_PPC_SR6 = 82, CV_PPC_SR7 = 83, CV_PPC_SR8 = 84, CV_PPC_SR9 = 85, CV_PPC_SR10 = 86, CV_PPC_SR11 = 87, CV_PPC_SR12 = 88, CV_PPC_SR13 = 89, CV_PPC_SR14 = 90, CV_PPC_SR15 = 91, /* ** For all of the special purpose registers add 100 to the SPR# that the ** Motorola/IBM documentation gives with the exception of any imaginary ** registers. */ /* ** PowerPC Special Purpose Registers ( User Level ) */ CV_PPC_PC = 99, // PC (imaginary register) CV_PPC_MQ = 100, // MPC601 CV_PPC_XER = 101, CV_PPC_RTCU = 104, // MPC601 CV_PPC_RTCL = 105, // MPC601 CV_PPC_LR = 108, CV_PPC_CTR = 109, CV_PPC_COMPARE = 110, // part of XER (internal to the debugger only) CV_PPC_COUNT = 111, // part of XER (internal to the debugger only) /* ** PowerPC Special Purpose Registers ( Supervisor Level ) */ CV_PPC_DSISR = 118, CV_PPC_DAR = 119, CV_PPC_DEC = 122, CV_PPC_SDR1 = 125, CV_PPC_SRR0 = 126, CV_PPC_SRR1 = 127, CV_PPC_SPRG0 = 372, CV_PPC_SPRG1 = 373, CV_PPC_SPRG2 = 374, CV_PPC_SPRG3 = 375, CV_PPC_ASR = 280, // 64-bit implementations only CV_PPC_EAR = 382, CV_PPC_PVR = 287, CV_PPC_BAT0U = 628, CV_PPC_BAT0L = 629, CV_PPC_BAT1U = 630, CV_PPC_BAT1L = 631, CV_PPC_BAT2U = 632, CV_PPC_BAT2L = 633, CV_PPC_BAT3U = 634, CV_PPC_BAT3L = 635, CV_PPC_DBAT0U = 636, CV_PPC_DBAT0L = 637, CV_PPC_DBAT1U = 638, CV_PPC_DBAT1L = 639, CV_PPC_DBAT2U = 640, CV_PPC_DBAT2L = 641, CV_PPC_DBAT3U = 642, CV_PPC_DBAT3L = 643, /* ** PowerPC Special Purpose Registers Implementation Dependent ( Supervisor Level ) */ /* ** Doesn't appear that IBM/Motorola has finished defining these. */ CV_PPC_PMR0 = 1044, // MPC620, CV_PPC_PMR1 = 1045, // MPC620, CV_PPC_PMR2 = 1046, // MPC620, CV_PPC_PMR3 = 1047, // MPC620, CV_PPC_PMR4 = 1048, // MPC620, CV_PPC_PMR5 = 1049, // MPC620, CV_PPC_PMR6 = 1050, // MPC620, CV_PPC_PMR7 = 1051, // MPC620, CV_PPC_PMR8 = 1052, // MPC620, CV_PPC_PMR9 = 1053, // MPC620, CV_PPC_PMR10 = 1054, // MPC620, CV_PPC_PMR11 = 1055, // MPC620, CV_PPC_PMR12 = 1056, // MPC620, CV_PPC_PMR13 = 1057, // MPC620, CV_PPC_PMR14 = 1058, // MPC620, CV_PPC_PMR15 = 1059, // MPC620, CV_PPC_DMISS = 1076, // MPC603 CV_PPC_DCMP = 1077, // MPC603 CV_PPC_HASH1 = 1078, // MPC603 CV_PPC_HASH2 = 1079, // MPC603 CV_PPC_IMISS = 1080, // MPC603 CV_PPC_ICMP = 1081, // MPC603 CV_PPC_RPA = 1082, // MPC603 CV_PPC_HID0 = 1108, // MPC601, MPC603, MPC620 CV_PPC_HID1 = 1109, // MPC601 CV_PPC_HID2 = 1110, // MPC601, MPC603, MPC620 ( IABR ) CV_PPC_HID3 = 1111, // Not Defined CV_PPC_HID4 = 1112, // Not Defined CV_PPC_HID5 = 1113, // MPC601, MPC604, MPC620 ( DABR ) CV_PPC_HID6 = 1114, // Not Defined CV_PPC_HID7 = 1115, // Not Defined CV_PPC_HID8 = 1116, // MPC620 ( BUSCSR ) CV_PPC_HID9 = 1117, // MPC620 ( L2CSR ) CV_PPC_HID10 = 1118, // Not Defined CV_PPC_HID11 = 1119, // Not Defined CV_PPC_HID12 = 1120, // Not Defined CV_PPC_HID13 = 1121, // MPC604 ( HCR ) CV_PPC_HID14 = 1122, // Not Defined CV_PPC_HID15 = 1123, // MPC601, MPC604, MPC620 ( PIR ) // // JAVA VM registers // CV_JAVA_PC = 1, // // Register set for the Hitachi SH3 // CV_SH3_NOREG = CV_REG_NONE, CV_SH3_IntR0 = 10, // CPU REGISTER CV_SH3_IntR1 = 11, CV_SH3_IntR2 = 12, CV_SH3_IntR3 = 13, CV_SH3_IntR4 = 14, CV_SH3_IntR5 = 15, CV_SH3_IntR6 = 16, CV_SH3_IntR7 = 17, CV_SH3_IntR8 = 18, CV_SH3_IntR9 = 19, CV_SH3_IntR10 = 20, CV_SH3_IntR11 = 21, CV_SH3_IntR12 = 22, CV_SH3_IntR13 = 23, CV_SH3_IntFp = 24, CV_SH3_IntSp = 25, CV_SH3_Gbr = 38, CV_SH3_Pr = 39, CV_SH3_Mach = 40, CV_SH3_Macl = 41, CV_SH3_Pc = 50, CV_SH3_Sr = 51, CV_SH3_BarA = 60, CV_SH3_BasrA = 61, CV_SH3_BamrA = 62, CV_SH3_BbrA = 63, CV_SH3_BarB = 64, CV_SH3_BasrB = 65, CV_SH3_BamrB = 66, CV_SH3_BbrB = 67, CV_SH3_BdrB = 68, CV_SH3_BdmrB = 69, CV_SH3_Brcr = 70, // // Additional registers for Hitachi SH processors // CV_SH_Fpscr = 75, // floating point status/control register CV_SH_Fpul = 76, // floating point communication register CV_SH_FpR0 = 80, // Floating point registers CV_SH_FpR1 = 81, CV_SH_FpR2 = 82, CV_SH_FpR3 = 83, CV_SH_FpR4 = 84, CV_SH_FpR5 = 85, CV_SH_FpR6 = 86, CV_SH_FpR7 = 87, CV_SH_FpR8 = 88, CV_SH_FpR9 = 89, CV_SH_FpR10 = 90, CV_SH_FpR11 = 91, CV_SH_FpR12 = 92, CV_SH_FpR13 = 93, CV_SH_FpR14 = 94, CV_SH_FpR15 = 95, CV_SH_XFpR0 = 96, CV_SH_XFpR1 = 97, CV_SH_XFpR2 = 98, CV_SH_XFpR3 = 99, CV_SH_XFpR4 = 100, CV_SH_XFpR5 = 101, CV_SH_XFpR6 = 102, CV_SH_XFpR7 = 103, CV_SH_XFpR8 = 104, CV_SH_XFpR9 = 105, CV_SH_XFpR10 = 106, CV_SH_XFpR11 = 107, CV_SH_XFpR12 = 108, CV_SH_XFpR13 = 109, CV_SH_XFpR14 = 110, CV_SH_XFpR15 = 111, // // Register set for the ARM processor. // CV_ARM_NOREG = CV_REG_NONE, CV_ARM_R0 = 10, CV_ARM_R1 = 11, CV_ARM_R2 = 12, CV_ARM_R3 = 13, CV_ARM_R4 = 14, CV_ARM_R5 = 15, CV_ARM_R6 = 16, CV_ARM_R7 = 17, CV_ARM_R8 = 18, CV_ARM_R9 = 19, CV_ARM_R10 = 20, CV_ARM_R11 = 21, // Frame pointer, if allocated CV_ARM_R12 = 22, CV_ARM_SP = 23, // Stack pointer CV_ARM_LR = 24, // Link Register CV_ARM_PC = 25, // Program counter CV_ARM_CPSR = 26, // Current program status register // // Register set for Intel IA64 // CV_IA64_NOREG = CV_REG_NONE, // Branch Registers CV_IA64_Br0 = 512, CV_IA64_Br1 = 513, CV_IA64_Br2 = 514, CV_IA64_Br3 = 515, CV_IA64_Br4 = 516, CV_IA64_Br5 = 517, CV_IA64_Br6 = 518, CV_IA64_Br7 = 519, // Predicate Registers CV_IA64_P0 = 704, CV_IA64_P1 = 705, CV_IA64_P2 = 706, CV_IA64_P3 = 707, CV_IA64_P4 = 708, CV_IA64_P5 = 709, CV_IA64_P6 = 710, CV_IA64_P7 = 711, CV_IA64_P8 = 712, CV_IA64_P9 = 713, CV_IA64_P10 = 714, CV_IA64_P11 = 715, CV_IA64_P12 = 716, CV_IA64_P13 = 717, CV_IA64_P14 = 718, CV_IA64_P15 = 719, CV_IA64_P16 = 720, CV_IA64_P17 = 721, CV_IA64_P18 = 722, CV_IA64_P19 = 723, CV_IA64_P20 = 724, CV_IA64_P21 = 725, CV_IA64_P22 = 726, CV_IA64_P23 = 727, CV_IA64_P24 = 728, CV_IA64_P25 = 729, CV_IA64_P26 = 730, CV_IA64_P27 = 731, CV_IA64_P28 = 732, CV_IA64_P29 = 733, CV_IA64_P30 = 734, CV_IA64_P31 = 735, CV_IA64_P32 = 736, CV_IA64_P33 = 737, CV_IA64_P34 = 738, CV_IA64_P35 = 739, CV_IA64_P36 = 740, CV_IA64_P37 = 741, CV_IA64_P38 = 742, CV_IA64_P39 = 743, CV_IA64_P40 = 744, CV_IA64_P41 = 745, CV_IA64_P42 = 746, CV_IA64_P43 = 747, CV_IA64_P44 = 748, CV_IA64_P45 = 749, CV_IA64_P46 = 750, CV_IA64_P47 = 751, CV_IA64_P48 = 752, CV_IA64_P49 = 753, CV_IA64_P50 = 754, CV_IA64_P51 = 755, CV_IA64_P52 = 756, CV_IA64_P53 = 757, CV_IA64_P54 = 758, CV_IA64_P55 = 759, CV_IA64_P56 = 760, CV_IA64_P57 = 761, CV_IA64_P58 = 762, CV_IA64_P59 = 763, CV_IA64_P60 = 764, CV_IA64_P61 = 765, CV_IA64_P62 = 766, CV_IA64_P63 = 767, CV_IA64_Preds = 768, // Banked General Registers CV_IA64_IntH0 = 832, CV_IA64_IntH1 = 833, CV_IA64_IntH2 = 834, CV_IA64_IntH3 = 835, CV_IA64_IntH4 = 836, CV_IA64_IntH5 = 837, CV_IA64_IntH6 = 838, CV_IA64_IntH7 = 839, CV_IA64_IntH8 = 840, CV_IA64_IntH9 = 841, CV_IA64_IntH10 = 842, CV_IA64_IntH11 = 843, CV_IA64_IntH12 = 844, CV_IA64_IntH13 = 845, CV_IA64_IntH14 = 846, CV_IA64_IntH15 = 847, // Special Registers CV_IA64_Ip = 1016, CV_IA64_Umask = 1017, CV_IA64_Cfm = 1018, CV_IA64_Psr = 1019, // Banked General Registers CV_IA64_Nats = 1020, CV_IA64_Nats2 = 1021, CV_IA64_Nats3 = 1022, // General-Purpose Registers // Integer registers CV_IA64_IntR0 = 1024, CV_IA64_IntR1 = 1025, CV_IA64_IntR2 = 1026, CV_IA64_IntR3 = 1027, CV_IA64_IntR4 = 1028, CV_IA64_IntR5 = 1029, CV_IA64_IntR6 = 1030, CV_IA64_IntR7 = 1031, CV_IA64_IntR8 = 1032, CV_IA64_IntR9 = 1033, CV_IA64_IntR10 = 1034, CV_IA64_IntR11 = 1035, CV_IA64_IntR12 = 1036, CV_IA64_IntR13 = 1037, CV_IA64_IntR14 = 1038, CV_IA64_IntR15 = 1039, CV_IA64_IntR16 = 1040, CV_IA64_IntR17 = 1041, CV_IA64_IntR18 = 1042, CV_IA64_IntR19 = 1043, CV_IA64_IntR20 = 1044, CV_IA64_IntR21 = 1045, CV_IA64_IntR22 = 1046, CV_IA64_IntR23 = 1047, CV_IA64_IntR24 = 1048, CV_IA64_IntR25 = 1049, CV_IA64_IntR26 = 1050, CV_IA64_IntR27 = 1051, CV_IA64_IntR28 = 1052, CV_IA64_IntR29 = 1053, CV_IA64_IntR30 = 1054, CV_IA64_IntR31 = 1055, // Register Stack CV_IA64_IntR32 = 1056, CV_IA64_IntR33 = 1057, CV_IA64_IntR34 = 1058, CV_IA64_IntR35 = 1059, CV_IA64_IntR36 = 1060, CV_IA64_IntR37 = 1061, CV_IA64_IntR38 = 1062, CV_IA64_IntR39 = 1063, CV_IA64_IntR40 = 1064, CV_IA64_IntR41 = 1065, CV_IA64_IntR42 = 1066, CV_IA64_IntR43 = 1067, CV_IA64_IntR44 = 1068, CV_IA64_IntR45 = 1069, CV_IA64_IntR46 = 1070, CV_IA64_IntR47 = 1071, CV_IA64_IntR48 = 1072, CV_IA64_IntR49 = 1073, CV_IA64_IntR50 = 1074, CV_IA64_IntR51 = 1075, CV_IA64_IntR52 = 1076, CV_IA64_IntR53 = 1077, CV_IA64_IntR54 = 1078, CV_IA64_IntR55 = 1079, CV_IA64_IntR56 = 1080, CV_IA64_IntR57 = 1081, CV_IA64_IntR58 = 1082, CV_IA64_IntR59 = 1083, CV_IA64_IntR60 = 1084, CV_IA64_IntR61 = 1085, CV_IA64_IntR62 = 1086, CV_IA64_IntR63 = 1087, CV_IA64_IntR64 = 1088, CV_IA64_IntR65 = 1089, CV_IA64_IntR66 = 1090, CV_IA64_IntR67 = 1091, CV_IA64_IntR68 = 1092, CV_IA64_IntR69 = 1093, CV_IA64_IntR70 = 1094, CV_IA64_IntR71 = 1095, CV_IA64_IntR72 = 1096, CV_IA64_IntR73 = 1097, CV_IA64_IntR74 = 1098, CV_IA64_IntR75 = 1099, CV_IA64_IntR76 = 1100, CV_IA64_IntR77 = 1101, CV_IA64_IntR78 = 1102, CV_IA64_IntR79 = 1103, CV_IA64_IntR80 = 1104, CV_IA64_IntR81 = 1105, CV_IA64_IntR82 = 1106, CV_IA64_IntR83 = 1107, CV_IA64_IntR84 = 1108, CV_IA64_IntR85 = 1109, CV_IA64_IntR86 = 1110, CV_IA64_IntR87 = 1111, CV_IA64_IntR88 = 1112, CV_IA64_IntR89 = 1113, CV_IA64_IntR90 = 1114, CV_IA64_IntR91 = 1115, CV_IA64_IntR92 = 1116, CV_IA64_IntR93 = 1117, CV_IA64_IntR94 = 1118, CV_IA64_IntR95 = 1119, CV_IA64_IntR96 = 1120, CV_IA64_IntR97 = 1121, CV_IA64_IntR98 = 1122, CV_IA64_IntR99 = 1123, CV_IA64_IntR100 = 1124, CV_IA64_IntR101 = 1125, CV_IA64_IntR102 = 1126, CV_IA64_IntR103 = 1127, CV_IA64_IntR104 = 1128, CV_IA64_IntR105 = 1129, CV_IA64_IntR106 = 1130, CV_IA64_IntR107 = 1131, CV_IA64_IntR108 = 1132, CV_IA64_IntR109 = 1133, CV_IA64_IntR110 = 1134, CV_IA64_IntR111 = 1135, CV_IA64_IntR112 = 1136, CV_IA64_IntR113 = 1137, CV_IA64_IntR114 = 1138, CV_IA64_IntR115 = 1139, CV_IA64_IntR116 = 1140, CV_IA64_IntR117 = 1141, CV_IA64_IntR118 = 1142, CV_IA64_IntR119 = 1143, CV_IA64_IntR120 = 1144, CV_IA64_IntR121 = 1145, CV_IA64_IntR122 = 1146, CV_IA64_IntR123 = 1147, CV_IA64_IntR124 = 1148, CV_IA64_IntR125 = 1149, CV_IA64_IntR126 = 1150, CV_IA64_IntR127 = 1151, // Floating-Point Registers // Low Floating Point Registers CV_IA64_FltF0 = 2048, CV_IA64_FltF1 = 2049, CV_IA64_FltF2 = 2050, CV_IA64_FltF3 = 2051, CV_IA64_FltF4 = 2052, CV_IA64_FltF5 = 2053, CV_IA64_FltF6 = 2054, CV_IA64_FltF7 = 2055, CV_IA64_FltF8 = 2056, CV_IA64_FltF9 = 2057, CV_IA64_FltF10 = 2058, CV_IA64_FltF11 = 2059, CV_IA64_FltF12 = 2060, CV_IA64_FltF13 = 2061, CV_IA64_FltF14 = 2062, CV_IA64_FltF15 = 2063, CV_IA64_FltF16 = 2064, CV_IA64_FltF17 = 2065, CV_IA64_FltF18 = 2066, CV_IA64_FltF19 = 2067, CV_IA64_FltF20 = 2068, CV_IA64_FltF21 = 2069, CV_IA64_FltF22 = 2070, CV_IA64_FltF23 = 2071, CV_IA64_FltF24 = 2072, CV_IA64_FltF25 = 2073, CV_IA64_FltF26 = 2074, CV_IA64_FltF27 = 2075, CV_IA64_FltF28 = 2076, CV_IA64_FltF29 = 2077, CV_IA64_FltF30 = 2078, CV_IA64_FltF31 = 2079, // High Floating Point Registers CV_IA64_FltF32 = 2080, CV_IA64_FltF33 = 2081, CV_IA64_FltF34 = 2082, CV_IA64_FltF35 = 2083, CV_IA64_FltF36 = 2084, CV_IA64_FltF37 = 2085, CV_IA64_FltF38 = 2086, CV_IA64_FltF39 = 2087, CV_IA64_FltF40 = 2088, CV_IA64_FltF41 = 2089, CV_IA64_FltF42 = 2090, CV_IA64_FltF43 = 2091, CV_IA64_FltF44 = 2092, CV_IA64_FltF45 = 2093, CV_IA64_FltF46 = 2094, CV_IA64_FltF47 = 2095, CV_IA64_FltF48 = 2096, CV_IA64_FltF49 = 2097, CV_IA64_FltF50 = 2098, CV_IA64_FltF51 = 2099, CV_IA64_FltF52 = 2100, CV_IA64_FltF53 = 2101, CV_IA64_FltF54 = 2102, CV_IA64_FltF55 = 2103, CV_IA64_FltF56 = 2104, CV_IA64_FltF57 = 2105, CV_IA64_FltF58 = 2106, CV_IA64_FltF59 = 2107, CV_IA64_FltF60 = 2108, CV_IA64_FltF61 = 2109, CV_IA64_FltF62 = 2110, CV_IA64_FltF63 = 2111, CV_IA64_FltF64 = 2112, CV_IA64_FltF65 = 2113, CV_IA64_FltF66 = 2114, CV_IA64_FltF67 = 2115, CV_IA64_FltF68 = 2116, CV_IA64_FltF69 = 2117, CV_IA64_FltF70 = 2118, CV_IA64_FltF71 = 2119, CV_IA64_FltF72 = 2120, CV_IA64_FltF73 = 2121, CV_IA64_FltF74 = 2122, CV_IA64_FltF75 = 2123, CV_IA64_FltF76 = 2124, CV_IA64_FltF77 = 2125, CV_IA64_FltF78 = 2126, CV_IA64_FltF79 = 2127, CV_IA64_FltF80 = 2128, CV_IA64_FltF81 = 2129, CV_IA64_FltF82 = 2130, CV_IA64_FltF83 = 2131, CV_IA64_FltF84 = 2132, CV_IA64_FltF85 = 2133, CV_IA64_FltF86 = 2134, CV_IA64_FltF87 = 2135, CV_IA64_FltF88 = 2136, CV_IA64_FltF89 = 2137, CV_IA64_FltF90 = 2138, CV_IA64_FltF91 = 2139, CV_IA64_FltF92 = 2140, CV_IA64_FltF93 = 2141, CV_IA64_FltF94 = 2142, CV_IA64_FltF95 = 2143, CV_IA64_FltF96 = 2144, CV_IA64_FltF97 = 2145, CV_IA64_FltF98 = 2146, CV_IA64_FltF99 = 2147, CV_IA64_FltF100 = 2148, CV_IA64_FltF101 = 2149, CV_IA64_FltF102 = 2150, CV_IA64_FltF103 = 2151, CV_IA64_FltF104 = 2152, CV_IA64_FltF105 = 2153, CV_IA64_FltF106 = 2154, CV_IA64_FltF107 = 2155, CV_IA64_FltF108 = 2156, CV_IA64_FltF109 = 2157, CV_IA64_FltF110 = 2158, CV_IA64_FltF111 = 2159, CV_IA64_FltF112 = 2160, CV_IA64_FltF113 = 2161, CV_IA64_FltF114 = 2162, CV_IA64_FltF115 = 2163, CV_IA64_FltF116 = 2164, CV_IA64_FltF117 = 2165, CV_IA64_FltF118 = 2166, CV_IA64_FltF119 = 2167, CV_IA64_FltF120 = 2168, CV_IA64_FltF121 = 2169, CV_IA64_FltF122 = 2170, CV_IA64_FltF123 = 2171, CV_IA64_FltF124 = 2172, CV_IA64_FltF125 = 2173, CV_IA64_FltF126 = 2174, CV_IA64_FltF127 = 2175, // Application Registers CV_IA64_ApKR0 = 3072, CV_IA64_ApKR1 = 3073, CV_IA64_ApKR2 = 3074, CV_IA64_ApKR3 = 3075, CV_IA64_ApKR4 = 3076, CV_IA64_ApKR5 = 3077, CV_IA64_ApKR6 = 3078, CV_IA64_ApKR7 = 3079, CV_IA64_AR8 = 3080, CV_IA64_AR9 = 3081, CV_IA64_AR10 = 3082, CV_IA64_AR11 = 3083, CV_IA64_AR12 = 3084, CV_IA64_AR13 = 3085, CV_IA64_AR14 = 3086, CV_IA64_AR15 = 3087, CV_IA64_RsRSC = 3088, CV_IA64_RsBSP = 3089, CV_IA64_RsBSPSTORE = 3090, CV_IA64_RsRNAT = 3091, CV_IA64_AR20 = 3092, CV_IA64_StFCR = 3093, CV_IA64_AR22 = 3094, CV_IA64_AR23 = 3095, CV_IA64_EFLAG = 3096, CV_IA64_CSD = 3097, CV_IA64_SSD = 3098, CV_IA64_CFLG = 3099, CV_IA64_StFSR = 3100, CV_IA64_StFIR = 3101, CV_IA64_StFDR = 3102, CV_IA64_AR31 = 3103, CV_IA64_ApCCV = 3104, CV_IA64_AR33 = 3105, CV_IA64_AR34 = 3106, CV_IA64_AR35 = 3107, CV_IA64_ApUNAT = 3108, CV_IA64_AR37 = 3109, CV_IA64_AR38 = 3110, CV_IA64_AR39 = 3111, CV_IA64_StFPSR = 3112, CV_IA64_AR41 = 3113, CV_IA64_AR42 = 3114, CV_IA64_AR43 = 3115, CV_IA64_ApITC = 3116, CV_IA64_AR45 = 3117, CV_IA64_AR46 = 3118, CV_IA64_AR47 = 3119, CV_IA64_AR48 = 3120, CV_IA64_AR49 = 3121, CV_IA64_AR50 = 3122, CV_IA64_AR51 = 3123, CV_IA64_AR52 = 3124, CV_IA64_AR53 = 3125, CV_IA64_AR54 = 3126, CV_IA64_AR55 = 3127, CV_IA64_AR56 = 3128, CV_IA64_AR57 = 3129, CV_IA64_AR58 = 3130, CV_IA64_AR59 = 3131, CV_IA64_AR60 = 3132, CV_IA64_AR61 = 3133, CV_IA64_AR62 = 3134, CV_IA64_AR63 = 3135, CV_IA64_RsPFS = 3136, CV_IA64_ApLC = 3137, CV_IA64_ApEC = 3138, CV_IA64_AR67 = 3139, CV_IA64_AR68 = 3140, CV_IA64_AR69 = 3141, CV_IA64_AR70 = 3142, CV_IA64_AR71 = 3143, CV_IA64_AR72 = 3144, CV_IA64_AR73 = 3145, CV_IA64_AR74 = 3146, CV_IA64_AR75 = 3147, CV_IA64_AR76 = 3148, CV_IA64_AR77 = 3149, CV_IA64_AR78 = 3150, CV_IA64_AR79 = 3151, CV_IA64_AR80 = 3152, CV_IA64_AR81 = 3153, CV_IA64_AR82 = 3154, CV_IA64_AR83 = 3155, CV_IA64_AR84 = 3156, CV_IA64_AR85 = 3157, CV_IA64_AR86 = 3158, CV_IA64_AR87 = 3159, CV_IA64_AR88 = 3160, CV_IA64_AR89 = 3161, CV_IA64_AR90 = 3162, CV_IA64_AR91 = 3163, CV_IA64_AR92 = 3164, CV_IA64_AR93 = 3165, CV_IA64_AR94 = 3166, CV_IA64_AR95 = 3167, CV_IA64_AR96 = 3168, CV_IA64_AR97 = 3169, CV_IA64_AR98 = 3170, CV_IA64_AR99 = 3171, CV_IA64_AR100 = 3172, CV_IA64_AR101 = 3173, CV_IA64_AR102 = 3174, CV_IA64_AR103 = 3175, CV_IA64_AR104 = 3176, CV_IA64_AR105 = 3177, CV_IA64_AR106 = 3178, CV_IA64_AR107 = 3179, CV_IA64_AR108 = 3180, CV_IA64_AR109 = 3181, CV_IA64_AR110 = 3182, CV_IA64_AR111 = 3183, CV_IA64_AR112 = 3184, CV_IA64_AR113 = 3185, CV_IA64_AR114 = 3186, CV_IA64_AR115 = 3187, CV_IA64_AR116 = 3188, CV_IA64_AR117 = 3189, CV_IA64_AR118 = 3190, CV_IA64_AR119 = 3191, CV_IA64_AR120 = 3192, CV_IA64_AR121 = 3193, CV_IA64_AR122 = 3194, CV_IA64_AR123 = 3195, CV_IA64_AR124 = 3196, CV_IA64_AR125 = 3197, CV_IA64_AR126 = 3198, CV_IA64_AR127 = 3199, // CPUID Registers CV_IA64_CPUID0 = 3328, CV_IA64_CPUID1 = 3329, CV_IA64_CPUID2 = 3330, CV_IA64_CPUID3 = 3331, CV_IA64_CPUID4 = 3332, // Control Registers CV_IA64_ApDCR = 4096, CV_IA64_ApITM = 4097, CV_IA64_ApIVA = 4098, CV_IA64_CR3 = 4099, CV_IA64_CR4 = 4100, CV_IA64_CR5 = 4101, CV_IA64_CR6 = 4102, CV_IA64_CR7 = 4103, CV_IA64_ApPTA = 4104, CV_IA64_ApGPTA = 4105, CV_IA64_CR10 = 4106, CV_IA64_CR11 = 4107, CV_IA64_CR12 = 4108, CV_IA64_CR13 = 4109, CV_IA64_CR14 = 4110, CV_IA64_CR15 = 4111, CV_IA64_StIPSR = 4112, CV_IA64_StISR = 4113, CV_IA64_CR18 = 4114, CV_IA64_StIIP = 4115, CV_IA64_StIFA = 4116, CV_IA64_StITIR = 4117, CV_IA64_StIIPA = 4118, CV_IA64_StIFS = 4119, CV_IA64_StIIM = 4120, CV_IA64_StIHA = 4121, CV_IA64_CR26 = 4122, CV_IA64_CR27 = 4123, CV_IA64_CR28 = 4124, CV_IA64_CR29 = 4125, CV_IA64_CR30 = 4126, CV_IA64_CR31 = 4127, CV_IA64_CR32 = 4128, CV_IA64_CR33 = 4129, CV_IA64_CR34 = 4130, CV_IA64_CR35 = 4131, CV_IA64_CR36 = 4132, CV_IA64_CR37 = 4133, CV_IA64_CR38 = 4134, CV_IA64_CR39 = 4135, CV_IA64_CR40 = 4136, CV_IA64_CR41 = 4137, CV_IA64_CR42 = 4138, CV_IA64_CR43 = 4139, CV_IA64_CR44 = 4140, CV_IA64_CR45 = 4141, CV_IA64_CR46 = 4142, CV_IA64_CR47 = 4143, CV_IA64_CR48 = 4144, CV_IA64_CR49 = 4145, CV_IA64_CR50 = 4146, CV_IA64_CR51 = 4147, CV_IA64_CR52 = 4148, CV_IA64_CR53 = 4149, CV_IA64_CR54 = 4150, CV_IA64_CR55 = 4151, CV_IA64_CR56 = 4152, CV_IA64_CR57 = 4153, CV_IA64_CR58 = 4154, CV_IA64_CR59 = 4155, CV_IA64_CR60 = 4156, CV_IA64_CR61 = 4157, CV_IA64_CR62 = 4158, CV_IA64_CR63 = 4159, CV_IA64_SaLID = 4160, CV_IA64_SaIVR = 4161, CV_IA64_SaTPR = 4162, CV_IA64_SaEOI = 4163, CV_IA64_SaIRR0 = 4164, CV_IA64_SaIRR1 = 4165, CV_IA64_SaIRR2 = 4166, CV_IA64_SaIRR3 = 4167, CV_IA64_SaITV = 4168, CV_IA64_SaPMV = 4169, CV_IA64_SaCMCV = 4170, CV_IA64_CR75 = 4171, CV_IA64_CR76 = 4172, CV_IA64_CR77 = 4173, CV_IA64_CR78 = 4174, CV_IA64_CR79 = 4175, CV_IA64_SaLRR0 = 4176, CV_IA64_SaLRR1 = 4177, CV_IA64_CR82 = 4178, CV_IA64_CR83 = 4179, CV_IA64_CR84 = 4180, CV_IA64_CR85 = 4181, CV_IA64_CR86 = 4182, CV_IA64_CR87 = 4183, CV_IA64_CR88 = 4184, CV_IA64_CR89 = 4185, CV_IA64_CR90 = 4186, CV_IA64_CR91 = 4187, CV_IA64_CR92 = 4188, CV_IA64_CR93 = 4189, CV_IA64_CR94 = 4190, CV_IA64_CR95 = 4191, CV_IA64_CR96 = 4192, CV_IA64_CR97 = 4193, CV_IA64_CR98 = 4194, CV_IA64_CR99 = 4195, CV_IA64_CR100 = 4196, CV_IA64_CR101 = 4197, CV_IA64_CR102 = 4198, CV_IA64_CR103 = 4199, CV_IA64_CR104 = 4200, CV_IA64_CR105 = 4201, CV_IA64_CR106 = 4202, CV_IA64_CR107 = 4203, CV_IA64_CR108 = 4204, CV_IA64_CR109 = 4205, CV_IA64_CR110 = 4206, CV_IA64_CR111 = 4207, CV_IA64_CR112 = 4208, CV_IA64_CR113 = 4209, CV_IA64_CR114 = 4210, CV_IA64_CR115 = 4211, CV_IA64_CR116 = 4212, CV_IA64_CR117 = 4213, CV_IA64_CR118 = 4214, CV_IA64_CR119 = 4215, CV_IA64_CR120 = 4216, CV_IA64_CR121 = 4217, CV_IA64_CR122 = 4218, CV_IA64_CR123 = 4219, CV_IA64_CR124 = 4220, CV_IA64_CR125 = 4221, CV_IA64_CR126 = 4222, CV_IA64_CR127 = 4223, // Protection Key Registers CV_IA64_Pkr0 = 5120, CV_IA64_Pkr1 = 5121, CV_IA64_Pkr2 = 5122, CV_IA64_Pkr3 = 5123, CV_IA64_Pkr4 = 5124, CV_IA64_Pkr5 = 5125, CV_IA64_Pkr6 = 5126, CV_IA64_Pkr7 = 5127, CV_IA64_Pkr8 = 5128, CV_IA64_Pkr9 = 5129, CV_IA64_Pkr10 = 5130, CV_IA64_Pkr11 = 5131, CV_IA64_Pkr12 = 5132, CV_IA64_Pkr13 = 5133, CV_IA64_Pkr14 = 5134, CV_IA64_Pkr15 = 5135, // Region Registers CV_IA64_Rr0 = 6144, CV_IA64_Rr1 = 6145, CV_IA64_Rr2 = 6146, CV_IA64_Rr3 = 6147, CV_IA64_Rr4 = 6148, CV_IA64_Rr5 = 6149, CV_IA64_Rr6 = 6150, CV_IA64_Rr7 = 6151, // Performance Monitor Data Registers CV_IA64_PFD0 = 7168, CV_IA64_PFD1 = 7169, CV_IA64_PFD2 = 7170, CV_IA64_PFD3 = 7171, CV_IA64_PFD4 = 7172, CV_IA64_PFD5 = 7173, CV_IA64_PFD6 = 7174, CV_IA64_PFD7 = 7175, // Performance Monitor Config Registers CV_IA64_PFC0 = 7424, CV_IA64_PFC1 = 7425, CV_IA64_PFC2 = 7426, CV_IA64_PFC3 = 7427, CV_IA64_PFC4 = 7428, CV_IA64_PFC5 = 7429, CV_IA64_PFC6 = 7430, CV_IA64_PFC7 = 7431, // Instruction Translation Registers CV_IA64_TrI0 = 8192, CV_IA64_TrI1 = 8193, CV_IA64_TrI2 = 8194, CV_IA64_TrI3 = 8195, CV_IA64_TrI4 = 8196, CV_IA64_TrI5 = 8197, CV_IA64_TrI6 = 8198, CV_IA64_TrI7 = 8199, // Data Translation Registers CV_IA64_TrD0 = 8320, CV_IA64_TrD1 = 8321, CV_IA64_TrD2 = 8322, CV_IA64_TrD3 = 8323, CV_IA64_TrD4 = 8324, CV_IA64_TrD5 = 8325, CV_IA64_TrD6 = 8326, CV_IA64_TrD7 = 8327, // Instruction Breakpoint Registers CV_IA64_DbI0 = 8448, CV_IA64_DbI1 = 8449, CV_IA64_DbI2 = 8450, CV_IA64_DbI3 = 8451, CV_IA64_DbI4 = 8452, CV_IA64_DbI5 = 8453, CV_IA64_DbI6 = 8454, CV_IA64_DbI7 = 8455, // Data Breakpoint Registers CV_IA64_DbD0 = 8576, CV_IA64_DbD1 = 8577, CV_IA64_DbD2 = 8578, CV_IA64_DbD3 = 8579, CV_IA64_DbD4 = 8580, CV_IA64_DbD5 = 8581, CV_IA64_DbD6 = 8582, CV_IA64_DbD7 = 8583, // // Register set for the TriCore processor. // CV_TRI_NOREG = CV_REG_NONE, // General Purpose Data Registers CV_TRI_D0 = 10, CV_TRI_D1 = 11, CV_TRI_D2 = 12, CV_TRI_D3 = 13, CV_TRI_D4 = 14, CV_TRI_D5 = 15, CV_TRI_D6 = 16, CV_TRI_D7 = 17, CV_TRI_D8 = 18, CV_TRI_D9 = 19, CV_TRI_D10 = 20, CV_TRI_D11 = 21, CV_TRI_D12 = 22, CV_TRI_D13 = 23, CV_TRI_D14 = 24, CV_TRI_D15 = 25, // General Purpose Address Registers CV_TRI_A0 = 26, CV_TRI_A1 = 27, CV_TRI_A2 = 28, CV_TRI_A3 = 29, CV_TRI_A4 = 30, CV_TRI_A5 = 31, CV_TRI_A6 = 32, CV_TRI_A7 = 33, CV_TRI_A8 = 34, CV_TRI_A9 = 35, CV_TRI_A10 = 36, CV_TRI_A11 = 37, CV_TRI_A12 = 38, CV_TRI_A13 = 39, CV_TRI_A14 = 40, CV_TRI_A15 = 41, // Extended (64-bit) data registers CV_TRI_E0 = 42, CV_TRI_E2 = 43, CV_TRI_E4 = 44, CV_TRI_E6 = 45, CV_TRI_E8 = 46, CV_TRI_E10 = 47, CV_TRI_E12 = 48, CV_TRI_E14 = 49, // Extended (64-bit) address registers CV_TRI_EA0 = 50, CV_TRI_EA2 = 51, CV_TRI_EA4 = 52, CV_TRI_EA6 = 53, CV_TRI_EA8 = 54, CV_TRI_EA10 = 55, CV_TRI_EA12 = 56, CV_TRI_EA14 = 57, CV_TRI_PSW = 58, CV_TRI_PCXI = 59, CV_TRI_PC = 60, CV_TRI_FCX = 61, CV_TRI_LCX = 62, CV_TRI_ISP = 63, CV_TRI_ICR = 64, CV_TRI_BIV = 65, CV_TRI_BTV = 66, CV_TRI_SYSCON = 67, CV_TRI_DPRx_0 = 68, CV_TRI_DPRx_1 = 69, CV_TRI_DPRx_2 = 70, CV_TRI_DPRx_3 = 71, CV_TRI_CPRx_0 = 68, CV_TRI_CPRx_1 = 69, CV_TRI_CPRx_2 = 70, CV_TRI_CPRx_3 = 71, CV_TRI_DPMx_0 = 68, CV_TRI_DPMx_1 = 69, CV_TRI_DPMx_2 = 70, CV_TRI_DPMx_3 = 71, CV_TRI_CPMx_0 = 68, CV_TRI_CPMx_1 = 69, CV_TRI_CPMx_2 = 70, CV_TRI_CPMx_3 = 71, CV_TRI_DBGSSR = 72, CV_TRI_EXEVT = 73, CV_TRI_SWEVT = 74, CV_TRI_CREVT = 75, CV_TRI_TRnEVT = 76, CV_TRI_MMUCON = 77, CV_TRI_ASI = 78, CV_TRI_TVA = 79, CV_TRI_TPA = 80, CV_TRI_TPX = 81, CV_TRI_TFA = 82, // // Register set for the AM33 and related processors. // CV_AM33_NOREG = CV_REG_NONE, // "Extended" (general purpose integer) registers CV_AM33_E0 = 10, CV_AM33_E1 = 11, CV_AM33_E2 = 12, CV_AM33_E3 = 13, CV_AM33_E4 = 14, CV_AM33_E5 = 15, CV_AM33_E6 = 16, CV_AM33_E7 = 17, // Address registers CV_AM33_A0 = 20, CV_AM33_A1 = 21, CV_AM33_A2 = 22, CV_AM33_A3 = 23, // Integer data registers CV_AM33_D0 = 30, CV_AM33_D1 = 31, CV_AM33_D2 = 32, CV_AM33_D3 = 33, // (Single-precision) floating-point registers CV_AM33_FS0 = 40, CV_AM33_FS1 = 41, CV_AM33_FS2 = 42, CV_AM33_FS3 = 43, CV_AM33_FS4 = 44, CV_AM33_FS5 = 45, CV_AM33_FS6 = 46, CV_AM33_FS7 = 47, CV_AM33_FS8 = 48, CV_AM33_FS9 = 49, CV_AM33_FS10 = 50, CV_AM33_FS11 = 51, CV_AM33_FS12 = 52, CV_AM33_FS13 = 53, CV_AM33_FS14 = 54, CV_AM33_FS15 = 55, CV_AM33_FS16 = 56, CV_AM33_FS17 = 57, CV_AM33_FS18 = 58, CV_AM33_FS19 = 59, CV_AM33_FS20 = 60, CV_AM33_FS21 = 61, CV_AM33_FS22 = 62, CV_AM33_FS23 = 63, CV_AM33_FS24 = 64, CV_AM33_FS25 = 65, CV_AM33_FS26 = 66, CV_AM33_FS27 = 67, CV_AM33_FS28 = 68, CV_AM33_FS29 = 69, CV_AM33_FS30 = 70, CV_AM33_FS31 = 71, // Special purpose registers // Stack pointer CV_AM33_SP = 80, // Program counter CV_AM33_PC = 81, // Multiply-divide/accumulate registers CV_AM33_MDR = 82, CV_AM33_MDRQ = 83, CV_AM33_MCRH = 84, CV_AM33_MCRL = 85, CV_AM33_MCVF = 86, // CPU status words CV_AM33_EPSW = 87, CV_AM33_FPCR = 88, // Loop buffer registers CV_AM33_LIR = 89, CV_AM33_LAR = 90, // // Register set for the Mitsubishi M32R // CV_M32R_NOREG = CV_REG_NONE, CV_M32R_R0 = 10, CV_M32R_R1 = 11, CV_M32R_R2 = 12, CV_M32R_R3 = 13, CV_M32R_R4 = 14, CV_M32R_R5 = 15, CV_M32R_R6 = 16, CV_M32R_R7 = 17, CV_M32R_R8 = 18, CV_M32R_R9 = 19, CV_M32R_R10 = 20, CV_M32R_R11 = 21, CV_M32R_R12 = 22, // Gloabal Pointer, if used CV_M32R_R13 = 23, // Frame Pointer, if allocated CV_M32R_R14 = 24, // Link Register CV_M32R_R15 = 25, // Stack Pointer CV_M32R_PSW = 26, // Preocessor Status Register CV_M32R_CBR = 27, // Condition Bit Register CV_M32R_SPI = 28, // Interrupt Stack Pointer CV_M32R_SPU = 29, // User Stack Pointer CV_M32R_SPO = 30, // OS Stack Pointer CV_M32R_BPC = 31, // Backup Program Counter CV_M32R_ACHI = 32, // Accumulator High CV_M32R_ACLO = 33, // Accumulator Low CV_M32R_PC = 34, // Program Counter // // Register set for the SuperH SHMedia processor including compact // mode // // Integer - 64 bit general registers CV_SHMEDIA_NOREG = CV_REG_NONE, CV_SHMEDIA_R0 = 10, CV_SHMEDIA_R1 = 11, CV_SHMEDIA_R2 = 12, CV_SHMEDIA_R3 = 13, CV_SHMEDIA_R4 = 14, CV_SHMEDIA_R5 = 15, CV_SHMEDIA_R6 = 16, CV_SHMEDIA_R7 = 17, CV_SHMEDIA_R8 = 18, CV_SHMEDIA_R9 = 19, CV_SHMEDIA_R10 = 20, CV_SHMEDIA_R11 = 21, CV_SHMEDIA_R12 = 22, CV_SHMEDIA_R13 = 23, CV_SHMEDIA_R14 = 24, CV_SHMEDIA_R15 = 25, CV_SHMEDIA_R16 = 26, CV_SHMEDIA_R17 = 27, CV_SHMEDIA_R18 = 28, CV_SHMEDIA_R19 = 29, CV_SHMEDIA_R20 = 30, CV_SHMEDIA_R21 = 31, CV_SHMEDIA_R22 = 32, CV_SHMEDIA_R23 = 33, CV_SHMEDIA_R24 = 34, CV_SHMEDIA_R25 = 35, CV_SHMEDIA_R26 = 36, CV_SHMEDIA_R27 = 37, CV_SHMEDIA_R28 = 38, CV_SHMEDIA_R29 = 39, CV_SHMEDIA_R30 = 40, CV_SHMEDIA_R31 = 41, CV_SHMEDIA_R32 = 42, CV_SHMEDIA_R33 = 43, CV_SHMEDIA_R34 = 44, CV_SHMEDIA_R35 = 45, CV_SHMEDIA_R36 = 46, CV_SHMEDIA_R37 = 47, CV_SHMEDIA_R38 = 48, CV_SHMEDIA_R39 = 49, CV_SHMEDIA_R40 = 50, CV_SHMEDIA_R41 = 51, CV_SHMEDIA_R42 = 52, CV_SHMEDIA_R43 = 53, CV_SHMEDIA_R44 = 54, CV_SHMEDIA_R45 = 55, CV_SHMEDIA_R46 = 56, CV_SHMEDIA_R47 = 57, CV_SHMEDIA_R48 = 58, CV_SHMEDIA_R49 = 59, CV_SHMEDIA_R50 = 60, CV_SHMEDIA_R51 = 61, CV_SHMEDIA_R52 = 62, CV_SHMEDIA_R53 = 63, CV_SHMEDIA_R54 = 64, CV_SHMEDIA_R55 = 65, CV_SHMEDIA_R56 = 66, CV_SHMEDIA_R57 = 67, CV_SHMEDIA_R58 = 68, CV_SHMEDIA_R59 = 69, CV_SHMEDIA_R60 = 70, CV_SHMEDIA_R61 = 71, CV_SHMEDIA_R62 = 72, CV_SHMEDIA_R63 = 73, // Target Registers - 32 bit CV_SHMEDIA_TR0 = 74, CV_SHMEDIA_TR1 = 75, CV_SHMEDIA_TR2 = 76, CV_SHMEDIA_TR3 = 77, CV_SHMEDIA_TR4 = 78, CV_SHMEDIA_TR5 = 79, CV_SHMEDIA_TR6 = 80, CV_SHMEDIA_TR7 = 81, CV_SHMEDIA_TR8 = 82, // future-proof CV_SHMEDIA_TR9 = 83, // future-proof CV_SHMEDIA_TR10 = 84, // future-proof CV_SHMEDIA_TR11 = 85, // future-proof CV_SHMEDIA_TR12 = 86, // future-proof CV_SHMEDIA_TR13 = 87, // future-proof CV_SHMEDIA_TR14 = 88, // future-proof CV_SHMEDIA_TR15 = 89, // future-proof // Single - 32 bit fp registers CV_SHMEDIA_FR0 = 128, CV_SHMEDIA_FR1 = 129, CV_SHMEDIA_FR2 = 130, CV_SHMEDIA_FR3 = 131, CV_SHMEDIA_FR4 = 132, CV_SHMEDIA_FR5 = 133, CV_SHMEDIA_FR6 = 134, CV_SHMEDIA_FR7 = 135, CV_SHMEDIA_FR8 = 136, CV_SHMEDIA_FR9 = 137, CV_SHMEDIA_FR10 = 138, CV_SHMEDIA_FR11 = 139, CV_SHMEDIA_FR12 = 140, CV_SHMEDIA_FR13 = 141, CV_SHMEDIA_FR14 = 142, CV_SHMEDIA_FR15 = 143, CV_SHMEDIA_FR16 = 144, CV_SHMEDIA_FR17 = 145, CV_SHMEDIA_FR18 = 146, CV_SHMEDIA_FR19 = 147, CV_SHMEDIA_FR20 = 148, CV_SHMEDIA_FR21 = 149, CV_SHMEDIA_FR22 = 150, CV_SHMEDIA_FR23 = 151, CV_SHMEDIA_FR24 = 152, CV_SHMEDIA_FR25 = 153, CV_SHMEDIA_FR26 = 154, CV_SHMEDIA_FR27 = 155, CV_SHMEDIA_FR28 = 156, CV_SHMEDIA_FR29 = 157, CV_SHMEDIA_FR30 = 158, CV_SHMEDIA_FR31 = 159, CV_SHMEDIA_FR32 = 160, CV_SHMEDIA_FR33 = 161, CV_SHMEDIA_FR34 = 162, CV_SHMEDIA_FR35 = 163, CV_SHMEDIA_FR36 = 164, CV_SHMEDIA_FR37 = 165, CV_SHMEDIA_FR38 = 166, CV_SHMEDIA_FR39 = 167, CV_SHMEDIA_FR40 = 168, CV_SHMEDIA_FR41 = 169, CV_SHMEDIA_FR42 = 170, CV_SHMEDIA_FR43 = 171, CV_SHMEDIA_FR44 = 172, CV_SHMEDIA_FR45 = 173, CV_SHMEDIA_FR46 = 174, CV_SHMEDIA_FR47 = 175, CV_SHMEDIA_FR48 = 176, CV_SHMEDIA_FR49 = 177, CV_SHMEDIA_FR50 = 178, CV_SHMEDIA_FR51 = 179, CV_SHMEDIA_FR52 = 180, CV_SHMEDIA_FR53 = 181, CV_SHMEDIA_FR54 = 182, CV_SHMEDIA_FR55 = 183, CV_SHMEDIA_FR56 = 184, CV_SHMEDIA_FR57 = 185, CV_SHMEDIA_FR58 = 186, CV_SHMEDIA_FR59 = 187, CV_SHMEDIA_FR60 = 188, CV_SHMEDIA_FR61 = 189, CV_SHMEDIA_FR62 = 190, CV_SHMEDIA_FR63 = 191, // Double - 64 bit synonyms for 32bit fp register pairs // subtract 128 to find first base single register CV_SHMEDIA_DR0 = 256, CV_SHMEDIA_DR2 = 258, CV_SHMEDIA_DR4 = 260, CV_SHMEDIA_DR6 = 262, CV_SHMEDIA_DR8 = 264, CV_SHMEDIA_DR10 = 266, CV_SHMEDIA_DR12 = 268, CV_SHMEDIA_DR14 = 270, CV_SHMEDIA_DR16 = 272, CV_SHMEDIA_DR18 = 274, CV_SHMEDIA_DR20 = 276, CV_SHMEDIA_DR22 = 278, CV_SHMEDIA_DR24 = 280, CV_SHMEDIA_DR26 = 282, CV_SHMEDIA_DR28 = 284, CV_SHMEDIA_DR30 = 286, CV_SHMEDIA_DR32 = 288, CV_SHMEDIA_DR34 = 290, CV_SHMEDIA_DR36 = 292, CV_SHMEDIA_DR38 = 294, CV_SHMEDIA_DR40 = 296, CV_SHMEDIA_DR42 = 298, CV_SHMEDIA_DR44 = 300, CV_SHMEDIA_DR46 = 302, CV_SHMEDIA_DR48 = 304, CV_SHMEDIA_DR50 = 306, CV_SHMEDIA_DR52 = 308, CV_SHMEDIA_DR54 = 310, CV_SHMEDIA_DR56 = 312, CV_SHMEDIA_DR58 = 314, CV_SHMEDIA_DR60 = 316, CV_SHMEDIA_DR62 = 318, // Vector - 128 bit synonyms for 32bit fp register quads // subtract 384 to find first base single register CV_SHMEDIA_FV0 = 512, CV_SHMEDIA_FV4 = 516, CV_SHMEDIA_FV8 = 520, CV_SHMEDIA_FV12 = 524, CV_SHMEDIA_FV16 = 528, CV_SHMEDIA_FV20 = 532, CV_SHMEDIA_FV24 = 536, CV_SHMEDIA_FV28 = 540, CV_SHMEDIA_FV32 = 544, CV_SHMEDIA_FV36 = 548, CV_SHMEDIA_FV40 = 552, CV_SHMEDIA_FV44 = 556, CV_SHMEDIA_FV48 = 560, CV_SHMEDIA_FV52 = 564, CV_SHMEDIA_FV56 = 568, CV_SHMEDIA_FV60 = 572, // Matrix - 512 bit synonyms for 16 adjacent 32bit fp registers // subtract 896 to find first base single register CV_SHMEDIA_MTRX0 = 1024, CV_SHMEDIA_MTRX16 = 1040, CV_SHMEDIA_MTRX32 = 1056, CV_SHMEDIA_MTRX48 = 1072, // Control - Implementation defined 64bit control registers CV_SHMEDIA_CR0 = 2000, CV_SHMEDIA_CR1 = 2001, CV_SHMEDIA_CR2 = 2002, CV_SHMEDIA_CR3 = 2003, CV_SHMEDIA_CR4 = 2004, CV_SHMEDIA_CR5 = 2005, CV_SHMEDIA_CR6 = 2006, CV_SHMEDIA_CR7 = 2007, CV_SHMEDIA_CR8 = 2008, CV_SHMEDIA_CR9 = 2009, CV_SHMEDIA_CR10 = 2010, CV_SHMEDIA_CR11 = 2011, CV_SHMEDIA_CR12 = 2012, CV_SHMEDIA_CR13 = 2013, CV_SHMEDIA_CR14 = 2014, CV_SHMEDIA_CR15 = 2015, CV_SHMEDIA_CR16 = 2016, CV_SHMEDIA_CR17 = 2017, CV_SHMEDIA_CR18 = 2018, CV_SHMEDIA_CR19 = 2019, CV_SHMEDIA_CR20 = 2020, CV_SHMEDIA_CR21 = 2021, CV_SHMEDIA_CR22 = 2022, CV_SHMEDIA_CR23 = 2023, CV_SHMEDIA_CR24 = 2024, CV_SHMEDIA_CR25 = 2025, CV_SHMEDIA_CR26 = 2026, CV_SHMEDIA_CR27 = 2027, CV_SHMEDIA_CR28 = 2028, CV_SHMEDIA_CR29 = 2029, CV_SHMEDIA_CR30 = 2030, CV_SHMEDIA_CR31 = 2031, CV_SHMEDIA_CR32 = 2032, CV_SHMEDIA_CR33 = 2033, CV_SHMEDIA_CR34 = 2034, CV_SHMEDIA_CR35 = 2035, CV_SHMEDIA_CR36 = 2036, CV_SHMEDIA_CR37 = 2037, CV_SHMEDIA_CR38 = 2038, CV_SHMEDIA_CR39 = 2039, CV_SHMEDIA_CR40 = 2040, CV_SHMEDIA_CR41 = 2041, CV_SHMEDIA_CR42 = 2042, CV_SHMEDIA_CR43 = 2043, CV_SHMEDIA_CR44 = 2044, CV_SHMEDIA_CR45 = 2045, CV_SHMEDIA_CR46 = 2046, CV_SHMEDIA_CR47 = 2047, CV_SHMEDIA_CR48 = 2048, CV_SHMEDIA_CR49 = 2049, CV_SHMEDIA_CR50 = 2050, CV_SHMEDIA_CR51 = 2051, CV_SHMEDIA_CR52 = 2052, CV_SHMEDIA_CR53 = 2053, CV_SHMEDIA_CR54 = 2054, CV_SHMEDIA_CR55 = 2055, CV_SHMEDIA_CR56 = 2056, CV_SHMEDIA_CR57 = 2057, CV_SHMEDIA_CR58 = 2058, CV_SHMEDIA_CR59 = 2059, CV_SHMEDIA_CR60 = 2060, CV_SHMEDIA_CR61 = 2061, CV_SHMEDIA_CR62 = 2062, CV_SHMEDIA_CR63 = 2063, CV_SHMEDIA_FPSCR = 2064, // Compact mode synonyms CV_SHMEDIA_GBR = CV_SHMEDIA_R16, CV_SHMEDIA_MACL = 90, // synonym for lower 32bits of media R17 CV_SHMEDIA_MACH = 91, // synonym for upper 32bits of media R17 CV_SHMEDIA_PR = CV_SHMEDIA_R18, CV_SHMEDIA_T = 92, // synonym for lowest bit of media R19 CV_SHMEDIA_FPUL = CV_SHMEDIA_FR32, CV_SHMEDIA_PC = 93, CV_SHMEDIA_SR = CV_SHMEDIA_CR0, // // AMD64/X8664 registers // CV_AMD64_AL = 1, CV_AMD64_CL = 2, CV_AMD64_DL = 3, CV_AMD64_BL = 4, CV_AMD64_AH = 5, CV_AMD64_CH = 6, CV_AMD64_DH = 7, CV_AMD64_BH = 8, CV_AMD64_AX = 9, CV_AMD64_CX = 10, CV_AMD64_DX = 11, CV_AMD64_BX = 12, CV_AMD64_SP = 13, CV_AMD64_BP = 14, CV_AMD64_SI = 15, CV_AMD64_DI = 16, CV_AMD64_EAX = 17, CV_AMD64_ECX = 18, CV_AMD64_EDX = 19, CV_AMD64_EBX = 20, CV_AMD64_ESP = 21, CV_AMD64_EBP = 22, CV_AMD64_ESI = 23, CV_AMD64_EDI = 24, CV_AMD64_ES = 25, CV_AMD64_CS = 26, CV_AMD64_SS = 27, CV_AMD64_DS = 28, CV_AMD64_FS = 29, CV_AMD64_GS = 30, CV_AMD64_IP = 31, CV_AMD64_FLAGS = 32, CV_AMD64_EIP = 33, CV_AMD64_EFLAGS = 34, // Control registers CV_AMD64_CR0 = 80, CV_AMD64_CR1 = 81, CV_AMD64_CR2 = 82, CV_AMD64_CR3 = 83, CV_AMD64_CR4 = 84, CV_AMD64_CR8 = 88, // Debug registers CV_AMD64_DR0 = 90, CV_AMD64_DR1 = 91, CV_AMD64_DR2 = 92, CV_AMD64_DR3 = 93, CV_AMD64_DR4 = 94, CV_AMD64_DR5 = 95, CV_AMD64_DR6 = 96, CV_AMD64_DR7 = 97, CV_AMD64_DR8 = 98, CV_AMD64_DR9 = 99, CV_AMD64_DR10 = 100, CV_AMD64_DR11 = 101, CV_AMD64_DR12 = 102, CV_AMD64_DR13 = 103, CV_AMD64_DR14 = 104, CV_AMD64_DR15 = 105, CV_AMD64_GDTR = 110, CV_AMD64_GDTL = 111, CV_AMD64_IDTR = 112, CV_AMD64_IDTL = 113, CV_AMD64_LDTR = 114, CV_AMD64_TR = 115, CV_AMD64_ST0 = 128, CV_AMD64_ST1 = 129, CV_AMD64_ST2 = 130, CV_AMD64_ST3 = 131, CV_AMD64_ST4 = 132, CV_AMD64_ST5 = 133, CV_AMD64_ST6 = 134, CV_AMD64_ST7 = 135, CV_AMD64_CTRL = 136, CV_AMD64_STAT = 137, CV_AMD64_TAG = 138, CV_AMD64_FPIP = 139, CV_AMD64_FPCS = 140, CV_AMD64_FPDO = 141, CV_AMD64_FPDS = 142, CV_AMD64_ISEM = 143, CV_AMD64_FPEIP = 144, CV_AMD64_FPEDO = 145, CV_AMD64_MM0 = 146, CV_AMD64_MM1 = 147, CV_AMD64_MM2 = 148, CV_AMD64_MM3 = 149, CV_AMD64_MM4 = 150, CV_AMD64_MM5 = 151, CV_AMD64_MM6 = 152, CV_AMD64_MM7 = 153, CV_AMD64_XMM0 = 154, // KATMAI registers CV_AMD64_XMM1 = 155, CV_AMD64_XMM2 = 156, CV_AMD64_XMM3 = 157, CV_AMD64_XMM4 = 158, CV_AMD64_XMM5 = 159, CV_AMD64_XMM6 = 160, CV_AMD64_XMM7 = 161, CV_AMD64_XMM0_0 = 162, // KATMAI sub-registers CV_AMD64_XMM0_1 = 163, CV_AMD64_XMM0_2 = 164, CV_AMD64_XMM0_3 = 165, CV_AMD64_XMM1_0 = 166, CV_AMD64_XMM1_1 = 167, CV_AMD64_XMM1_2 = 168, CV_AMD64_XMM1_3 = 169, CV_AMD64_XMM2_0 = 170, CV_AMD64_XMM2_1 = 171, CV_AMD64_XMM2_2 = 172, CV_AMD64_XMM2_3 = 173, CV_AMD64_XMM3_0 = 174, CV_AMD64_XMM3_1 = 175, CV_AMD64_XMM3_2 = 176, CV_AMD64_XMM3_3 = 177, CV_AMD64_XMM4_0 = 178, CV_AMD64_XMM4_1 = 179, CV_AMD64_XMM4_2 = 180, CV_AMD64_XMM4_3 = 181, CV_AMD64_XMM5_0 = 182, CV_AMD64_XMM5_1 = 183, CV_AMD64_XMM5_2 = 184, CV_AMD64_XMM5_3 = 185, CV_AMD64_XMM6_0 = 186, CV_AMD64_XMM6_1 = 187, CV_AMD64_XMM6_2 = 188, CV_AMD64_XMM6_3 = 189, CV_AMD64_XMM7_0 = 190, CV_AMD64_XMM7_1 = 191, CV_AMD64_XMM7_2 = 192, CV_AMD64_XMM7_3 = 193, CV_AMD64_XMM0L = 194, CV_AMD64_XMM1L = 195, CV_AMD64_XMM2L = 196, CV_AMD64_XMM3L = 197, CV_AMD64_XMM4L = 198, CV_AMD64_XMM5L = 199, CV_AMD64_XMM6L = 200, CV_AMD64_XMM7L = 201, CV_AMD64_XMM0H = 202, CV_AMD64_XMM1H = 203, CV_AMD64_XMM2H = 204, CV_AMD64_XMM3H = 205, CV_AMD64_XMM4H = 206, CV_AMD64_XMM5H = 207, CV_AMD64_XMM6H = 208, CV_AMD64_XMM7H = 209, CV_AMD64_MXCSR = 211, // XMM status register CV_AMD64_EMM0L = 220, // XMM sub-registers (WNI integer) CV_AMD64_EMM1L = 221, CV_AMD64_EMM2L = 222, CV_AMD64_EMM3L = 223, CV_AMD64_EMM4L = 224, CV_AMD64_EMM5L = 225, CV_AMD64_EMM6L = 226, CV_AMD64_EMM7L = 227, CV_AMD64_EMM0H = 228, CV_AMD64_EMM1H = 229, CV_AMD64_EMM2H = 230, CV_AMD64_EMM3H = 231, CV_AMD64_EMM4H = 232, CV_AMD64_EMM5H = 233, CV_AMD64_EMM6H = 234, CV_AMD64_EMM7H = 235, // do not change the order of these regs, first one must be even too CV_AMD64_MM00 = 236, CV_AMD64_MM01 = 237, CV_AMD64_MM10 = 238, CV_AMD64_MM11 = 239, CV_AMD64_MM20 = 240, CV_AMD64_MM21 = 241, CV_AMD64_MM30 = 242, CV_AMD64_MM31 = 243, CV_AMD64_MM40 = 244, CV_AMD64_MM41 = 245, CV_AMD64_MM50 = 246, CV_AMD64_MM51 = 247, CV_AMD64_MM60 = 248, CV_AMD64_MM61 = 249, CV_AMD64_MM70 = 250, CV_AMD64_MM71 = 251, // Extended KATMAI registers CV_AMD64_XMM8 = 252, // KATMAI registers CV_AMD64_XMM9 = 253, CV_AMD64_XMM10 = 254, CV_AMD64_XMM11 = 255, CV_AMD64_XMM12 = 256, CV_AMD64_XMM13 = 257, CV_AMD64_XMM14 = 258, CV_AMD64_XMM15 = 259, CV_AMD64_XMM8_0 = 260, // KATMAI sub-registers CV_AMD64_XMM8_1 = 261, CV_AMD64_XMM8_2 = 262, CV_AMD64_XMM8_3 = 263, CV_AMD64_XMM9_0 = 264, CV_AMD64_XMM9_1 = 265, CV_AMD64_XMM9_2 = 266, CV_AMD64_XMM9_3 = 267, CV_AMD64_XMM10_0 = 268, CV_AMD64_XMM10_1 = 269, CV_AMD64_XMM10_2 = 270, CV_AMD64_XMM10_3 = 271, CV_AMD64_XMM11_0 = 272, CV_AMD64_XMM11_1 = 273, CV_AMD64_XMM11_2 = 274, CV_AMD64_XMM11_3 = 275, CV_AMD64_XMM12_0 = 276, CV_AMD64_XMM12_1 = 277, CV_AMD64_XMM12_2 = 278, CV_AMD64_XMM12_3 = 279, CV_AMD64_XMM13_0 = 280, CV_AMD64_XMM13_1 = 281, CV_AMD64_XMM13_2 = 282, CV_AMD64_XMM13_3 = 283, CV_AMD64_XMM14_0 = 284, CV_AMD64_XMM14_1 = 285, CV_AMD64_XMM14_2 = 286, CV_AMD64_XMM14_3 = 287, CV_AMD64_XMM15_0 = 288, CV_AMD64_XMM15_1 = 289, CV_AMD64_XMM15_2 = 290, CV_AMD64_XMM15_3 = 291, CV_AMD64_XMM8L = 292, CV_AMD64_XMM9L = 293, CV_AMD64_XMM10L = 294, CV_AMD64_XMM11L = 295, CV_AMD64_XMM12L = 296, CV_AMD64_XMM13L = 297, CV_AMD64_XMM14L = 298, CV_AMD64_XMM15L = 299, CV_AMD64_XMM8H = 300, CV_AMD64_XMM9H = 301, CV_AMD64_XMM10H = 301, CV_AMD64_XMM11H = 302, CV_AMD64_XMM12H = 303, CV_AMD64_XMM13H = 304, CV_AMD64_XMM14H = 305, CV_AMD64_XMM15H = 306, CV_AMD64_EMM8L = 307, // XMM sub-registers (WNI integer) CV_AMD64_EMM9L = 308, CV_AMD64_EMM10L = 309, CV_AMD64_EMM11L = 310, CV_AMD64_EMM12L = 311, CV_AMD64_EMM13L = 312, CV_AMD64_EMM14L = 313, CV_AMD64_EMM15L = 314, CV_AMD64_EMM8H = 315, CV_AMD64_EMM9H = 316, CV_AMD64_EMM10H = 317, CV_AMD64_EMM11H = 318, CV_AMD64_EMM12H = 319, CV_AMD64_EMM13H = 320, CV_AMD64_EMM14H = 321, CV_AMD64_EMM15H = 322, // Low byte forms of some standard registers CV_AMD64_SIL = 323, CV_AMD64_DIL = 324, CV_AMD64_BPL = 325, CV_AMD64_SPL = 326, // 64-bit regular registers CV_AMD64_RAX = 327, CV_AMD64_RBX = 328, CV_AMD64_RCX = 329, CV_AMD64_RDX = 330, CV_AMD64_RSI = 331, CV_AMD64_RDI = 332, CV_AMD64_RBP = 333, CV_AMD64_RSP = 334, // 64-bit integer registers with 8-, 16-, and 32-bit forms (B, W, and D) CV_AMD64_R8 = 335, CV_AMD64_R9 = 336, CV_AMD64_R10 = 337, CV_AMD64_R11 = 338, CV_AMD64_R12 = 339, CV_AMD64_R13 = 340, CV_AMD64_R14 = 341, CV_AMD64_R15 = 342, CV_AMD64_R8B = 343, CV_AMD64_R9B = 344, CV_AMD64_R10B = 345, CV_AMD64_R11B = 346, CV_AMD64_R12B = 347, CV_AMD64_R13B = 348, CV_AMD64_R14B = 349, CV_AMD64_R15B = 350, CV_AMD64_R8W = 351, CV_AMD64_R9W = 352, CV_AMD64_R10W = 353, CV_AMD64_R11W = 354, CV_AMD64_R12W = 355, CV_AMD64_R13W = 356, CV_AMD64_R14W = 357, CV_AMD64_R15W = 358, CV_AMD64_R8D = 359, CV_AMD64_R9D = 360, CV_AMD64_R10D = 361, CV_AMD64_R11D = 362, CV_AMD64_R12D = 363, CV_AMD64_R13D = 364, CV_AMD64_R14D = 365, CV_AMD64_R15D = 366, // Note: Next set of platform registers need to go into a new enum... // this one is above 44K now. } CV_HREG_e; enum StackFrameTypeEnum { FrameTypeFPO, // Frame pointer omitted, FPO info available FrameTypeTrap, // Kernel Trap frame FrameTypeTSS, // Kernel Trap frame FrameTypeStandard, // Standard EBP stackframe FrameTypeFrameData, // Frame pointer omitted, FrameData info available FrameTypeUnknown = -1, // Frame which does not have any debug info }; enum MemoryTypeEnum { MemTypeCode, // Read only code memory MemTypeData, // Read only data/stack memory MemTypeStack, // Read only stack memory MemTypeAny = -1, }; #endif ================================================ FILE: Addition/DiaSDK.NET2003/include/dia2.h ================================================ /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 6.00.0361 */ /* at Tue Mar 18 20:55:35 2003 */ /* Compiler settings for f:\vs70builds\3077\vc\langapi\idl\dia2.idl: Oicf, W1, Zp8, env=Win32 (32b run) protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ //@@MIDL_FILE_HEADING( ) #pragma warning( disable: 4049 ) /* more than 64k source lines */ /* verify that the version is high enough to compile this file*/ #ifndef __REQUIRED_RPCNDR_H_VERSION__ #define __REQUIRED_RPCNDR_H_VERSION__ 475 #endif #include "rpc.h" #include "rpcndr.h" #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of #endif // __RPCNDR_H_VERSION__ #ifndef COM_NO_WINDOWS_H #include "windows.h" #include "ole2.h" #endif /*COM_NO_WINDOWS_H*/ #ifndef __dia2_h__ #define __dia2_h__ #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif /* Forward Declarations */ #ifndef __IDiaLoadCallback_FWD_DEFINED__ #define __IDiaLoadCallback_FWD_DEFINED__ typedef interface IDiaLoadCallback IDiaLoadCallback; #endif /* __IDiaLoadCallback_FWD_DEFINED__ */ #ifndef __IDiaLoadCallback2_FWD_DEFINED__ #define __IDiaLoadCallback2_FWD_DEFINED__ typedef interface IDiaLoadCallback2 IDiaLoadCallback2; #endif /* __IDiaLoadCallback2_FWD_DEFINED__ */ #ifndef __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ #define __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ typedef interface IDiaReadExeAtOffsetCallback IDiaReadExeAtOffsetCallback; #endif /* __IDiaReadExeAtOffsetCallback_FWD_DEFINED__ */ #ifndef __IDiaReadExeAtRVACallback_FWD_DEFINED__ #define __IDiaReadExeAtRVACallback_FWD_DEFINED__ typedef interface IDiaReadExeAtRVACallback IDiaReadExeAtRVACallback; #endif /* __IDiaReadExeAtRVACallback_FWD_DEFINED__ */ #ifndef __IDiaDataSource_FWD_DEFINED__ #define __IDiaDataSource_FWD_DEFINED__ typedef interface IDiaDataSource IDiaDataSource; #endif /* __IDiaDataSource_FWD_DEFINED__ */ #ifndef __IDiaEnumSymbols_FWD_DEFINED__ #define __IDiaEnumSymbols_FWD_DEFINED__ typedef interface IDiaEnumSymbols IDiaEnumSymbols; #endif /* __IDiaEnumSymbols_FWD_DEFINED__ */ #ifndef __IDiaEnumSymbolsByAddr_FWD_DEFINED__ #define __IDiaEnumSymbolsByAddr_FWD_DEFINED__ typedef interface IDiaEnumSymbolsByAddr IDiaEnumSymbolsByAddr; #endif /* __IDiaEnumSymbolsByAddr_FWD_DEFINED__ */ #ifndef __IDiaEnumSourceFiles_FWD_DEFINED__ #define __IDiaEnumSourceFiles_FWD_DEFINED__ typedef interface IDiaEnumSourceFiles IDiaEnumSourceFiles; #endif /* __IDiaEnumSourceFiles_FWD_DEFINED__ */ #ifndef __IDiaEnumLineNumbers_FWD_DEFINED__ #define __IDiaEnumLineNumbers_FWD_DEFINED__ typedef interface IDiaEnumLineNumbers IDiaEnumLineNumbers; #endif /* __IDiaEnumLineNumbers_FWD_DEFINED__ */ #ifndef __IDiaEnumInjectedSources_FWD_DEFINED__ #define __IDiaEnumInjectedSources_FWD_DEFINED__ typedef interface IDiaEnumInjectedSources IDiaEnumInjectedSources; #endif /* __IDiaEnumInjectedSources_FWD_DEFINED__ */ #ifndef __IDiaEnumSegments_FWD_DEFINED__ #define __IDiaEnumSegments_FWD_DEFINED__ typedef interface IDiaEnumSegments IDiaEnumSegments; #endif /* __IDiaEnumSegments_FWD_DEFINED__ */ #ifndef __IDiaEnumSectionContribs_FWD_DEFINED__ #define __IDiaEnumSectionContribs_FWD_DEFINED__ typedef interface IDiaEnumSectionContribs IDiaEnumSectionContribs; #endif /* __IDiaEnumSectionContribs_FWD_DEFINED__ */ #ifndef __IDiaEnumFrameData_FWD_DEFINED__ #define __IDiaEnumFrameData_FWD_DEFINED__ typedef interface IDiaEnumFrameData IDiaEnumFrameData; #endif /* __IDiaEnumFrameData_FWD_DEFINED__ */ #ifndef __IDiaEnumDebugStreamData_FWD_DEFINED__ #define __IDiaEnumDebugStreamData_FWD_DEFINED__ typedef interface IDiaEnumDebugStreamData IDiaEnumDebugStreamData; #endif /* __IDiaEnumDebugStreamData_FWD_DEFINED__ */ #ifndef __IDiaEnumDebugStreams_FWD_DEFINED__ #define __IDiaEnumDebugStreams_FWD_DEFINED__ typedef interface IDiaEnumDebugStreams IDiaEnumDebugStreams; #endif /* __IDiaEnumDebugStreams_FWD_DEFINED__ */ #ifndef __IDiaAddressMap_FWD_DEFINED__ #define __IDiaAddressMap_FWD_DEFINED__ typedef interface IDiaAddressMap IDiaAddressMap; #endif /* __IDiaAddressMap_FWD_DEFINED__ */ #ifndef __IDiaSession_FWD_DEFINED__ #define __IDiaSession_FWD_DEFINED__ typedef interface IDiaSession IDiaSession; #endif /* __IDiaSession_FWD_DEFINED__ */ #ifndef __IDiaSymbol_FWD_DEFINED__ #define __IDiaSymbol_FWD_DEFINED__ typedef interface IDiaSymbol IDiaSymbol; #endif /* __IDiaSymbol_FWD_DEFINED__ */ #ifndef __IDiaSourceFile_FWD_DEFINED__ #define __IDiaSourceFile_FWD_DEFINED__ typedef interface IDiaSourceFile IDiaSourceFile; #endif /* __IDiaSourceFile_FWD_DEFINED__ */ #ifndef __IDiaLineNumber_FWD_DEFINED__ #define __IDiaLineNumber_FWD_DEFINED__ typedef interface IDiaLineNumber IDiaLineNumber; #endif /* __IDiaLineNumber_FWD_DEFINED__ */ #ifndef __IDiaSectionContrib_FWD_DEFINED__ #define __IDiaSectionContrib_FWD_DEFINED__ typedef interface IDiaSectionContrib IDiaSectionContrib; #endif /* __IDiaSectionContrib_FWD_DEFINED__ */ #ifndef __IDiaSegment_FWD_DEFINED__ #define __IDiaSegment_FWD_DEFINED__ typedef interface IDiaSegment IDiaSegment; #endif /* __IDiaSegment_FWD_DEFINED__ */ #ifndef __IDiaInjectedSource_FWD_DEFINED__ #define __IDiaInjectedSource_FWD_DEFINED__ typedef interface IDiaInjectedSource IDiaInjectedSource; #endif /* __IDiaInjectedSource_FWD_DEFINED__ */ #ifndef __IDiaStackWalkFrame_FWD_DEFINED__ #define __IDiaStackWalkFrame_FWD_DEFINED__ typedef interface IDiaStackWalkFrame IDiaStackWalkFrame; #endif /* __IDiaStackWalkFrame_FWD_DEFINED__ */ #ifndef __IDiaFrameData_FWD_DEFINED__ #define __IDiaFrameData_FWD_DEFINED__ typedef interface IDiaFrameData IDiaFrameData; #endif /* __IDiaFrameData_FWD_DEFINED__ */ #ifndef __IDiaImageData_FWD_DEFINED__ #define __IDiaImageData_FWD_DEFINED__ typedef interface IDiaImageData IDiaImageData; #endif /* __IDiaImageData_FWD_DEFINED__ */ #ifndef __IDiaTable_FWD_DEFINED__ #define __IDiaTable_FWD_DEFINED__ typedef interface IDiaTable IDiaTable; #endif /* __IDiaTable_FWD_DEFINED__ */ #ifndef __IDiaEnumTables_FWD_DEFINED__ #define __IDiaEnumTables_FWD_DEFINED__ typedef interface IDiaEnumTables IDiaEnumTables; #endif /* __IDiaEnumTables_FWD_DEFINED__ */ #ifndef __DiaSource_FWD_DEFINED__ #define __DiaSource_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaSource DiaSource; #else typedef struct DiaSource DiaSource; #endif /* __cplusplus */ #endif /* __DiaSource_FWD_DEFINED__ */ #ifndef __DiaSourceAlt_FWD_DEFINED__ #define __DiaSourceAlt_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaSourceAlt DiaSourceAlt; #else typedef struct DiaSourceAlt DiaSourceAlt; #endif /* __cplusplus */ #endif /* __DiaSourceAlt_FWD_DEFINED__ */ #ifndef __DiaStackWalker_FWD_DEFINED__ #define __DiaStackWalker_FWD_DEFINED__ #ifdef __cplusplus typedef class DiaStackWalker DiaStackWalker; #else typedef struct DiaStackWalker DiaStackWalker; #endif /* __cplusplus */ #endif /* __DiaStackWalker_FWD_DEFINED__ */ #ifndef __IDiaPropertyStorage_FWD_DEFINED__ #define __IDiaPropertyStorage_FWD_DEFINED__ typedef interface IDiaPropertyStorage IDiaPropertyStorage; #endif /* __IDiaPropertyStorage_FWD_DEFINED__ */ #ifndef __IDiaStackFrame_FWD_DEFINED__ #define __IDiaStackFrame_FWD_DEFINED__ typedef interface IDiaStackFrame IDiaStackFrame; #endif /* __IDiaStackFrame_FWD_DEFINED__ */ #ifndef __IDiaEnumStackFrames_FWD_DEFINED__ #define __IDiaEnumStackFrames_FWD_DEFINED__ typedef interface IDiaEnumStackFrames IDiaEnumStackFrames; #endif /* __IDiaEnumStackFrames_FWD_DEFINED__ */ #ifndef __IDiaStackWalkHelper_FWD_DEFINED__ #define __IDiaStackWalkHelper_FWD_DEFINED__ typedef interface IDiaStackWalkHelper IDiaStackWalkHelper; #endif /* __IDiaStackWalkHelper_FWD_DEFINED__ */ #ifndef __IDiaStackWalker_FWD_DEFINED__ #define __IDiaStackWalker_FWD_DEFINED__ typedef interface IDiaStackWalker IDiaStackWalker; #endif /* __IDiaStackWalker_FWD_DEFINED__ */ /* header files for imported files */ #include "objidl.h" #include "oaidl.h" #include "propidl.h" #include "cvconst.h" #ifdef __cplusplus extern "C"{ #endif void * __RPC_USER MIDL_user_allocate(size_t); void __RPC_USER MIDL_user_free( void * ); /* interface __MIDL_itf_dia2_0000 */ /* [local] */ enum NameSearchOptions { nsNone = 0, nsfCaseSensitive = 0x1, nsfCaseInsensitive = 0x2, nsfFNameExt = 0x4, nsfRegularExpression = 0x8, nsfUndecoratedName = 0x10, nsCaseSensitive = nsfCaseSensitive, nsCaseInsensitive = nsfCaseInsensitive, nsFNameExt = nsfCaseInsensitive | nsfFNameExt, nsRegularExpression = nsfRegularExpression | nsfCaseSensitive, nsCaseInRegularExpression = nsfRegularExpression | nsfCaseInsensitive } ; enum __MIDL___MIDL_itf_dia2_0000_0001 { E_PDB_OK = ( HRESULT )(( unsigned long )1 << 31 | ( unsigned long )( LONG )0x6d << 16 | ( unsigned long )1), E_PDB_USAGE = E_PDB_OK + 1, E_PDB_OUT_OF_MEMORY = E_PDB_USAGE + 1, E_PDB_FILE_SYSTEM = E_PDB_OUT_OF_MEMORY + 1, E_PDB_NOT_FOUND = E_PDB_FILE_SYSTEM + 1, E_PDB_INVALID_SIG = E_PDB_NOT_FOUND + 1, E_PDB_INVALID_AGE = E_PDB_INVALID_SIG + 1, E_PDB_PRECOMP_REQUIRED = E_PDB_INVALID_AGE + 1, E_PDB_OUT_OF_TI = E_PDB_PRECOMP_REQUIRED + 1, E_PDB_NOT_IMPLEMENTED = E_PDB_OUT_OF_TI + 1, E_PDB_V1_PDB = E_PDB_NOT_IMPLEMENTED + 1, E_PDB_FORMAT = E_PDB_V1_PDB + 1, E_PDB_LIMIT = E_PDB_FORMAT + 1, E_PDB_CORRUPT = E_PDB_LIMIT + 1, E_PDB_TI16 = E_PDB_CORRUPT + 1, E_PDB_ACCESS_DENIED = E_PDB_TI16 + 1, E_PDB_ILLEGAL_TYPE_EDIT = E_PDB_ACCESS_DENIED + 1, E_PDB_INVALID_EXECUTABLE = E_PDB_ILLEGAL_TYPE_EDIT + 1, E_PDB_DBG_NOT_FOUND = E_PDB_INVALID_EXECUTABLE + 1, E_PDB_NO_DEBUG_INFO = E_PDB_DBG_NOT_FOUND + 1, E_PDB_INVALID_EXE_TIMESTAMP = E_PDB_NO_DEBUG_INFO + 1, E_PDB_RESERVED = E_PDB_INVALID_EXE_TIMESTAMP + 1, E_PDB_DEBUG_INFO_NOT_IN_PDB = E_PDB_RESERVED + 1, E_PDB_MAX = E_PDB_DEBUG_INFO_NOT_IN_PDB + 1 } ; enum __MIDL___MIDL_itf_dia2_0000_0002 { DIA_E_MODNOTFOUND = E_PDB_MAX + 1, DIA_E_PROCNOTFOUND = DIA_E_MODNOTFOUND + 1 } ; typedef void ( __cdecl *PfnPDBDebugDirV )( BOOL __MIDL_0014, void *__MIDL_0015); extern RPC_IF_HANDLE __MIDL_itf_dia2_0000_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0000_v0_0_s_ifspec; #ifndef __IDiaLoadCallback_INTERFACE_DEFINED__ #define __IDiaLoadCallback_INTERFACE_DEFINED__ /* interface IDiaLoadCallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLoadCallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C32ADB82-73F4-421b-95D5-A4706EDF5DBE") IDiaLoadCallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE NotifyDebugDir( /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyOpenDBG( /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode) = 0; virtual HRESULT STDMETHODCALLTYPE NotifyOpenPDB( /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictRegistryAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictSymbolServerAccess( void) = 0; }; #else /* C style interface */ typedef struct IDiaLoadCallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLoadCallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLoadCallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLoadCallback * This); HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( IDiaLoadCallback * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( IDiaLoadCallback * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( IDiaLoadCallback * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( IDiaLoadCallback * This); HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( IDiaLoadCallback * This); END_INTERFACE } IDiaLoadCallbackVtbl; interface IDiaLoadCallback { CONST_VTBL struct IDiaLoadCallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLoadCallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLoadCallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLoadCallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLoadCallback_NotifyDebugDir(This,fExecutable,cbData,data) \ (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,data) #define IDiaLoadCallback_NotifyOpenDBG(This,dbgPath,resultCode) \ (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) #define IDiaLoadCallback_NotifyOpenPDB(This,pdbPath,resultCode) \ (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) #define IDiaLoadCallback_RestrictRegistryAccess(This) \ (This)->lpVtbl -> RestrictRegistryAccess(This) #define IDiaLoadCallback_RestrictSymbolServerAccess(This) \ (This)->lpVtbl -> RestrictSymbolServerAccess(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyDebugDir_Proxy( IDiaLoadCallback * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]); void __RPC_STUB IDiaLoadCallback_NotifyDebugDir_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyOpenDBG_Proxy( IDiaLoadCallback * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); void __RPC_STUB IDiaLoadCallback_NotifyOpenDBG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_NotifyOpenPDB_Proxy( IDiaLoadCallback * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); void __RPC_STUB IDiaLoadCallback_NotifyOpenPDB_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_RestrictRegistryAccess_Proxy( IDiaLoadCallback * This); void __RPC_STUB IDiaLoadCallback_RestrictRegistryAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback_RestrictSymbolServerAccess_Proxy( IDiaLoadCallback * This); void __RPC_STUB IDiaLoadCallback_RestrictSymbolServerAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLoadCallback_INTERFACE_DEFINED__ */ #ifndef __IDiaLoadCallback2_INTERFACE_DEFINED__ #define __IDiaLoadCallback2_INTERFACE_DEFINED__ /* interface IDiaLoadCallback2 */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLoadCallback2; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4688a074-5a4d-4486-aea8-7b90711d9f7c") IDiaLoadCallback2 : public IDiaLoadCallback { public: virtual HRESULT STDMETHODCALLTYPE RestrictOriginalPathAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictReferencePathAccess( void) = 0; virtual HRESULT STDMETHODCALLTYPE RestrictDBGAccess( void) = 0; }; #else /* C style interface */ typedef struct IDiaLoadCallback2Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLoadCallback2 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLoadCallback2 * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *NotifyDebugDir )( IDiaLoadCallback2 * This, /* [in] */ BOOL fExecutable, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *NotifyOpenDBG )( IDiaLoadCallback2 * This, /* [in] */ LPCOLESTR dbgPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *NotifyOpenPDB )( IDiaLoadCallback2 * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ HRESULT resultCode); HRESULT ( STDMETHODCALLTYPE *RestrictRegistryAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictSymbolServerAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictOriginalPathAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictReferencePathAccess )( IDiaLoadCallback2 * This); HRESULT ( STDMETHODCALLTYPE *RestrictDBGAccess )( IDiaLoadCallback2 * This); END_INTERFACE } IDiaLoadCallback2Vtbl; interface IDiaLoadCallback2 { CONST_VTBL struct IDiaLoadCallback2Vtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLoadCallback2_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLoadCallback2_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLoadCallback2_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLoadCallback2_NotifyDebugDir(This,fExecutable,cbData,data) \ (This)->lpVtbl -> NotifyDebugDir(This,fExecutable,cbData,data) #define IDiaLoadCallback2_NotifyOpenDBG(This,dbgPath,resultCode) \ (This)->lpVtbl -> NotifyOpenDBG(This,dbgPath,resultCode) #define IDiaLoadCallback2_NotifyOpenPDB(This,pdbPath,resultCode) \ (This)->lpVtbl -> NotifyOpenPDB(This,pdbPath,resultCode) #define IDiaLoadCallback2_RestrictRegistryAccess(This) \ (This)->lpVtbl -> RestrictRegistryAccess(This) #define IDiaLoadCallback2_RestrictSymbolServerAccess(This) \ (This)->lpVtbl -> RestrictSymbolServerAccess(This) #define IDiaLoadCallback2_RestrictOriginalPathAccess(This) \ (This)->lpVtbl -> RestrictOriginalPathAccess(This) #define IDiaLoadCallback2_RestrictReferencePathAccess(This) \ (This)->lpVtbl -> RestrictReferencePathAccess(This) #define IDiaLoadCallback2_RestrictDBGAccess(This) \ (This)->lpVtbl -> RestrictDBGAccess(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictOriginalPathAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictOriginalPathAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictReferencePathAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictReferencePathAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaLoadCallback2_RestrictDBGAccess_Proxy( IDiaLoadCallback2 * This); void __RPC_STUB IDiaLoadCallback2_RestrictDBGAccess_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLoadCallback2_INTERFACE_DEFINED__ */ #ifndef __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ #define __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ /* interface IDiaReadExeAtOffsetCallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaReadExeAtOffsetCallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("587A461C-B80B-4f54-9194-5032589A6319") IDiaReadExeAtOffsetCallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadExecutableAt( /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaReadExeAtOffsetCallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaReadExeAtOffsetCallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaReadExeAtOffsetCallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaReadExeAtOffsetCallback * This); HRESULT ( STDMETHODCALLTYPE *ReadExecutableAt )( IDiaReadExeAtOffsetCallback * This, /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaReadExeAtOffsetCallbackVtbl; interface IDiaReadExeAtOffsetCallback { CONST_VTBL struct IDiaReadExeAtOffsetCallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaReadExeAtOffsetCallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaReadExeAtOffsetCallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaReadExeAtOffsetCallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaReadExeAtOffsetCallback_ReadExecutableAt(This,fileOffset,cbData,pcbData,data) \ (This)->lpVtbl -> ReadExecutableAt(This,fileOffset,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaReadExeAtOffsetCallback_ReadExecutableAt_Proxy( IDiaReadExeAtOffsetCallback * This, /* [in] */ DWORDLONG fileOffset, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaReadExeAtOffsetCallback_ReadExecutableAt_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaReadExeAtOffsetCallback_INTERFACE_DEFINED__ */ #ifndef __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ #define __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ /* interface IDiaReadExeAtRVACallback */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaReadExeAtRVACallback; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("8E3F80CA-7517-432a-BA07-285134AAEA8E") IDiaReadExeAtRVACallback : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadExecutableAtRVA( /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaReadExeAtRVACallbackVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaReadExeAtRVACallback * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaReadExeAtRVACallback * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaReadExeAtRVACallback * This); HRESULT ( STDMETHODCALLTYPE *ReadExecutableAtRVA )( IDiaReadExeAtRVACallback * This, /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaReadExeAtRVACallbackVtbl; interface IDiaReadExeAtRVACallback { CONST_VTBL struct IDiaReadExeAtRVACallbackVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaReadExeAtRVACallback_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaReadExeAtRVACallback_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaReadExeAtRVACallback_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaReadExeAtRVACallback_ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,data) \ (This)->lpVtbl -> ReadExecutableAtRVA(This,relativeVirtualAddress,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaReadExeAtRVACallback_ReadExecutableAtRVA_Proxy( IDiaReadExeAtRVACallback * This, /* [in] */ DWORD relativeVirtualAddress, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaReadExeAtRVACallback_ReadExecutableAtRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaReadExeAtRVACallback_INTERFACE_DEFINED__ */ #ifndef __IDiaDataSource_INTERFACE_DEFINED__ #define __IDiaDataSource_INTERFACE_DEFINED__ /* interface IDiaDataSource */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaDataSource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("79F1BB5F-B66E-48e5-B6A9-1545C323CA3D") IDiaDataSource : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lastError( /* [retval][out] */ BSTR *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataFromPdb( /* [in] */ LPCOLESTR pdbPath) = 0; virtual HRESULT STDMETHODCALLTYPE loadAndValidateDataFromPdb( /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataForExe( /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback) = 0; virtual HRESULT STDMETHODCALLTYPE loadDataFromIStream( /* [in] */ IStream *pIStream) = 0; virtual HRESULT STDMETHODCALLTYPE openSession( /* [out] */ IDiaSession **ppSession) = 0; }; #else /* C style interface */ typedef struct IDiaDataSourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaDataSource * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaDataSource * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaDataSource * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastError )( IDiaDataSource * This, /* [retval][out] */ BSTR *pRetVal); HRESULT ( STDMETHODCALLTYPE *loadDataFromPdb )( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath); HRESULT ( STDMETHODCALLTYPE *loadAndValidateDataFromPdb )( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age); HRESULT ( STDMETHODCALLTYPE *loadDataForExe )( IDiaDataSource * This, /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback); HRESULT ( STDMETHODCALLTYPE *loadDataFromIStream )( IDiaDataSource * This, /* [in] */ IStream *pIStream); HRESULT ( STDMETHODCALLTYPE *openSession )( IDiaDataSource * This, /* [out] */ IDiaSession **ppSession); END_INTERFACE } IDiaDataSourceVtbl; interface IDiaDataSource { CONST_VTBL struct IDiaDataSourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaDataSource_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaDataSource_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaDataSource_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaDataSource_get_lastError(This,pRetVal) \ (This)->lpVtbl -> get_lastError(This,pRetVal) #define IDiaDataSource_loadDataFromPdb(This,pdbPath) \ (This)->lpVtbl -> loadDataFromPdb(This,pdbPath) #define IDiaDataSource_loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) \ (This)->lpVtbl -> loadAndValidateDataFromPdb(This,pdbPath,pcsig70,sig,age) #define IDiaDataSource_loadDataForExe(This,executable,searchPath,pCallback) \ (This)->lpVtbl -> loadDataForExe(This,executable,searchPath,pCallback) #define IDiaDataSource_loadDataFromIStream(This,pIStream) \ (This)->lpVtbl -> loadDataFromIStream(This,pIStream) #define IDiaDataSource_openSession(This,ppSession) \ (This)->lpVtbl -> openSession(This,ppSession) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaDataSource_get_lastError_Proxy( IDiaDataSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaDataSource_get_lastError_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataFromPdb_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath); void __RPC_STUB IDiaDataSource_loadDataFromPdb_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadAndValidateDataFromPdb_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR pdbPath, /* [in] */ GUID *pcsig70, /* [in] */ DWORD sig, /* [in] */ DWORD age); void __RPC_STUB IDiaDataSource_loadAndValidateDataFromPdb_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataForExe_Proxy( IDiaDataSource * This, /* [in] */ LPCOLESTR executable, /* [in] */ LPCOLESTR searchPath, /* [in] */ IUnknown *pCallback); void __RPC_STUB IDiaDataSource_loadDataForExe_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_loadDataFromIStream_Proxy( IDiaDataSource * This, /* [in] */ IStream *pIStream); void __RPC_STUB IDiaDataSource_loadDataFromIStream_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaDataSource_openSession_Proxy( IDiaDataSource * This, /* [out] */ IDiaSession **ppSession); void __RPC_STUB IDiaDataSource_openSession_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaDataSource_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSymbols_INTERFACE_DEFINED__ #define __IDiaEnumSymbols_INTERFACE_DEFINED__ /* interface IDiaEnumSymbols */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSymbols; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("CAB72C48-443B-48f5-9B0B-42F0820AB29A") IDiaEnumSymbols : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSymbols **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSymbolsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSymbols * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSymbols * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSymbols * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSymbols * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSymbols * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSymbols * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSymbols * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSymbols * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSymbols * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSymbols * This, /* [out] */ IDiaEnumSymbols **ppenum); END_INTERFACE } IDiaEnumSymbolsVtbl; interface IDiaEnumSymbols { CONST_VTBL struct IDiaEnumSymbolsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSymbols_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSymbols_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSymbols_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSymbols_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSymbols_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSymbols_Item(This,index,symbol) \ (This)->lpVtbl -> Item(This,index,symbol) #define IDiaEnumSymbols_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbols_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSymbols_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSymbols_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_get__NewEnum_Proxy( IDiaEnumSymbols * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSymbols_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_get_Count_Proxy( IDiaEnumSymbols * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSymbols_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Item_Proxy( IDiaEnumSymbols * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSymbol **symbol); void __RPC_STUB IDiaEnumSymbols_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Next_Proxy( IDiaEnumSymbols * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbols_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Skip_Proxy( IDiaEnumSymbols * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSymbols_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Reset_Proxy( IDiaEnumSymbols * This); void __RPC_STUB IDiaEnumSymbols_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbols_Clone_Proxy( IDiaEnumSymbols * This, /* [out] */ IDiaEnumSymbols **ppenum); void __RPC_STUB IDiaEnumSymbols_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSymbols_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ #define __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ /* interface IDiaEnumSymbolsByAddr */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSymbolsByAddr; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("624B7D9C-24EA-4421-9D06-3B577471C1FA") IDiaEnumSymbolsByAddr : public IUnknown { public: virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByAddr( /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByRVA( /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE symbolByVA( /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Prev( /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSymbolsByAddr **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSymbolsByAddrVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSymbolsByAddr * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSymbolsByAddr * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSymbolsByAddr * This); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByAddr )( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByRVA )( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *symbolByVA )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Prev )( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSymbolsByAddr * This, /* [out] */ IDiaEnumSymbolsByAddr **ppenum); END_INTERFACE } IDiaEnumSymbolsByAddrVtbl; interface IDiaEnumSymbolsByAddr { CONST_VTBL struct IDiaEnumSymbolsByAddrVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSymbolsByAddr_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSymbolsByAddr_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSymbolsByAddr_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSymbolsByAddr_symbolByAddr(This,isect,offset,ppSymbol) \ (This)->lpVtbl -> symbolByAddr(This,isect,offset,ppSymbol) #define IDiaEnumSymbolsByAddr_symbolByRVA(This,relativeVirtualAddress,ppSymbol) \ (This)->lpVtbl -> symbolByRVA(This,relativeVirtualAddress,ppSymbol) #define IDiaEnumSymbolsByAddr_symbolByVA(This,virtualAddress,ppSymbol) \ (This)->lpVtbl -> symbolByVA(This,virtualAddress,ppSymbol) #define IDiaEnumSymbolsByAddr_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbolsByAddr_Prev(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Prev(This,celt,rgelt,pceltFetched) #define IDiaEnumSymbolsByAddr_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByAddr_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByRVA_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_symbolByVA_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaEnumSymbolsByAddr_symbolByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Next_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbolsByAddr_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Prev_Proxy( IDiaEnumSymbolsByAddr * This, /* [in] */ ULONG celt, /* [out] */ IDiaSymbol **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSymbolsByAddr_Prev_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSymbolsByAddr_Clone_Proxy( IDiaEnumSymbolsByAddr * This, /* [out] */ IDiaEnumSymbolsByAddr **ppenum); void __RPC_STUB IDiaEnumSymbolsByAddr_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSymbolsByAddr_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSourceFiles_INTERFACE_DEFINED__ #define __IDiaEnumSourceFiles_INTERFACE_DEFINED__ /* interface IDiaEnumSourceFiles */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSourceFiles; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("10F3DBD9-664F-4469-B808-9471C7A50538") IDiaEnumSourceFiles : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSourceFiles **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSourceFilesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSourceFiles * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSourceFiles * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSourceFiles * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSourceFiles * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSourceFiles * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSourceFiles * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSourceFiles * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSourceFiles * This, /* [out] */ IDiaEnumSourceFiles **ppenum); END_INTERFACE } IDiaEnumSourceFilesVtbl; interface IDiaEnumSourceFiles { CONST_VTBL struct IDiaEnumSourceFilesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSourceFiles_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSourceFiles_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSourceFiles_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSourceFiles_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSourceFiles_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSourceFiles_Item(This,index,sourceFile) \ (This)->lpVtbl -> Item(This,index,sourceFile) #define IDiaEnumSourceFiles_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSourceFiles_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSourceFiles_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSourceFiles_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_get__NewEnum_Proxy( IDiaEnumSourceFiles * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSourceFiles_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_get_Count_Proxy( IDiaEnumSourceFiles * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSourceFiles_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Item_Proxy( IDiaEnumSourceFiles * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSourceFile **sourceFile); void __RPC_STUB IDiaEnumSourceFiles_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Next_Proxy( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt, /* [out] */ IDiaSourceFile **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSourceFiles_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Skip_Proxy( IDiaEnumSourceFiles * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSourceFiles_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Reset_Proxy( IDiaEnumSourceFiles * This); void __RPC_STUB IDiaEnumSourceFiles_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSourceFiles_Clone_Proxy( IDiaEnumSourceFiles * This, /* [out] */ IDiaEnumSourceFiles **ppenum); void __RPC_STUB IDiaEnumSourceFiles_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSourceFiles_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumLineNumbers_INTERFACE_DEFINED__ #define __IDiaEnumLineNumbers_INTERFACE_DEFINED__ /* interface IDiaEnumLineNumbers */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumLineNumbers; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("FE30E878-54AC-44f1-81BA-39DE940F6052") IDiaEnumLineNumbers : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumLineNumbers **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumLineNumbersVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumLineNumbers * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumLineNumbers * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumLineNumbers * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumLineNumbers * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumLineNumbers * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumLineNumbers * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumLineNumbers * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumLineNumbers * This, /* [out] */ IDiaEnumLineNumbers **ppenum); END_INTERFACE } IDiaEnumLineNumbersVtbl; interface IDiaEnumLineNumbers { CONST_VTBL struct IDiaEnumLineNumbersVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumLineNumbers_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumLineNumbers_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumLineNumbers_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumLineNumbers_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumLineNumbers_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumLineNumbers_Item(This,index,lineNumber) \ (This)->lpVtbl -> Item(This,index,lineNumber) #define IDiaEnumLineNumbers_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumLineNumbers_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumLineNumbers_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumLineNumbers_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_get__NewEnum_Proxy( IDiaEnumLineNumbers * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumLineNumbers_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_get_Count_Proxy( IDiaEnumLineNumbers * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumLineNumbers_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Item_Proxy( IDiaEnumLineNumbers * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaLineNumber **lineNumber); void __RPC_STUB IDiaEnumLineNumbers_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Next_Proxy( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt, /* [out] */ IDiaLineNumber **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumLineNumbers_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Skip_Proxy( IDiaEnumLineNumbers * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumLineNumbers_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Reset_Proxy( IDiaEnumLineNumbers * This); void __RPC_STUB IDiaEnumLineNumbers_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumLineNumbers_Clone_Proxy( IDiaEnumLineNumbers * This, /* [out] */ IDiaEnumLineNumbers **ppenum); void __RPC_STUB IDiaEnumLineNumbers_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumLineNumbers_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumInjectedSources_INTERFACE_DEFINED__ #define __IDiaEnumInjectedSources_INTERFACE_DEFINED__ /* interface IDiaEnumInjectedSources */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumInjectedSources; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("D5612573-6925-4468-8883-98CDEC8C384A") IDiaEnumInjectedSources : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumInjectedSources **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumInjectedSourcesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumInjectedSources * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumInjectedSources * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumInjectedSources * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumInjectedSources * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumInjectedSources * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumInjectedSources * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumInjectedSources * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumInjectedSources * This, /* [out] */ IDiaEnumInjectedSources **ppenum); END_INTERFACE } IDiaEnumInjectedSourcesVtbl; interface IDiaEnumInjectedSources { CONST_VTBL struct IDiaEnumInjectedSourcesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumInjectedSources_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumInjectedSources_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumInjectedSources_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumInjectedSources_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumInjectedSources_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumInjectedSources_Item(This,index,injectedSource) \ (This)->lpVtbl -> Item(This,index,injectedSource) #define IDiaEnumInjectedSources_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumInjectedSources_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumInjectedSources_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumInjectedSources_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_get__NewEnum_Proxy( IDiaEnumInjectedSources * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumInjectedSources_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_get_Count_Proxy( IDiaEnumInjectedSources * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumInjectedSources_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Item_Proxy( IDiaEnumInjectedSources * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaInjectedSource **injectedSource); void __RPC_STUB IDiaEnumInjectedSources_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Next_Proxy( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt, /* [out] */ IDiaInjectedSource **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumInjectedSources_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Skip_Proxy( IDiaEnumInjectedSources * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumInjectedSources_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Reset_Proxy( IDiaEnumInjectedSources * This); void __RPC_STUB IDiaEnumInjectedSources_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumInjectedSources_Clone_Proxy( IDiaEnumInjectedSources * This, /* [out] */ IDiaEnumInjectedSources **ppenum); void __RPC_STUB IDiaEnumInjectedSources_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumInjectedSources_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSegments_INTERFACE_DEFINED__ #define __IDiaEnumSegments_INTERFACE_DEFINED__ /* interface IDiaEnumSegments */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSegments; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("E8368CA9-01D1-419d-AC0C-E31235DBDA9F") IDiaEnumSegments : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSegments **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSegmentsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSegments * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSegments * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSegments * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSegments * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSegments * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSegments * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSegments * This, /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSegments * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSegments * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSegments * This, /* [out] */ IDiaEnumSegments **ppenum); END_INTERFACE } IDiaEnumSegmentsVtbl; interface IDiaEnumSegments { CONST_VTBL struct IDiaEnumSegmentsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSegments_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSegments_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSegments_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSegments_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSegments_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSegments_Item(This,index,segment) \ (This)->lpVtbl -> Item(This,index,segment) #define IDiaEnumSegments_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSegments_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSegments_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSegments_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_get__NewEnum_Proxy( IDiaEnumSegments * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSegments_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_get_Count_Proxy( IDiaEnumSegments * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSegments_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Item_Proxy( IDiaEnumSegments * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSegment **segment); void __RPC_STUB IDiaEnumSegments_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Next_Proxy( IDiaEnumSegments * This, /* [in] */ ULONG celt, /* [out] */ IDiaSegment **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSegments_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Skip_Proxy( IDiaEnumSegments * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSegments_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Reset_Proxy( IDiaEnumSegments * This); void __RPC_STUB IDiaEnumSegments_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSegments_Clone_Proxy( IDiaEnumSegments * This, /* [out] */ IDiaEnumSegments **ppenum); void __RPC_STUB IDiaEnumSegments_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSegments_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumSectionContribs_INTERFACE_DEFINED__ #define __IDiaEnumSectionContribs_INTERFACE_DEFINED__ /* interface IDiaEnumSectionContribs */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumSectionContribs; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("1994DEB2-2C82-4b1d-A57F-AFF424D54A68") IDiaEnumSectionContribs : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumSectionContribs **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumSectionContribsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumSectionContribs * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumSectionContribs * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumSectionContribs * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumSectionContribs * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumSectionContribs * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumSectionContribs * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumSectionContribs * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumSectionContribs * This, /* [out] */ IDiaEnumSectionContribs **ppenum); END_INTERFACE } IDiaEnumSectionContribsVtbl; interface IDiaEnumSectionContribs { CONST_VTBL struct IDiaEnumSectionContribsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumSectionContribs_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumSectionContribs_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumSectionContribs_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumSectionContribs_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumSectionContribs_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumSectionContribs_Item(This,index,section) \ (This)->lpVtbl -> Item(This,index,section) #define IDiaEnumSectionContribs_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumSectionContribs_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumSectionContribs_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumSectionContribs_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_get__NewEnum_Proxy( IDiaEnumSectionContribs * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumSectionContribs_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_get_Count_Proxy( IDiaEnumSectionContribs * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumSectionContribs_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Item_Proxy( IDiaEnumSectionContribs * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaSectionContrib **section); void __RPC_STUB IDiaEnumSectionContribs_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Next_Proxy( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt, /* [out] */ IDiaSectionContrib **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumSectionContribs_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Skip_Proxy( IDiaEnumSectionContribs * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumSectionContribs_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Reset_Proxy( IDiaEnumSectionContribs * This); void __RPC_STUB IDiaEnumSectionContribs_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumSectionContribs_Clone_Proxy( IDiaEnumSectionContribs * This, /* [out] */ IDiaEnumSectionContribs **ppenum); void __RPC_STUB IDiaEnumSectionContribs_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumSectionContribs_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumFrameData_INTERFACE_DEFINED__ #define __IDiaEnumFrameData_INTERFACE_DEFINED__ /* interface IDiaEnumFrameData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumFrameData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9FC77A4B-3C1C-44ed-A798-6C1DEEA53E1F") IDiaEnumFrameData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumFrameData **ppenum) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByRVA( /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame) = 0; virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE frameByVA( /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame) = 0; }; #else /* C style interface */ typedef struct IDiaEnumFrameDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumFrameData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumFrameData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumFrameData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumFrameData * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumFrameData * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumFrameData * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumFrameData * This, /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumFrameData * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumFrameData * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumFrameData * This, /* [out] */ IDiaEnumFrameData **ppenum); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByRVA )( IDiaEnumFrameData * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame); /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *frameByVA )( IDiaEnumFrameData * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame); END_INTERFACE } IDiaEnumFrameDataVtbl; interface IDiaEnumFrameData { CONST_VTBL struct IDiaEnumFrameDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumFrameData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumFrameData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumFrameData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumFrameData_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumFrameData_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumFrameData_Item(This,index,frame) \ (This)->lpVtbl -> Item(This,index,frame) #define IDiaEnumFrameData_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumFrameData_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumFrameData_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumFrameData_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #define IDiaEnumFrameData_frameByRVA(This,relativeVirtualAddress,frame) \ (This)->lpVtbl -> frameByRVA(This,relativeVirtualAddress,frame) #define IDiaEnumFrameData_frameByVA(This,virtualAddress,frame) \ (This)->lpVtbl -> frameByVA(This,virtualAddress,frame) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_get__NewEnum_Proxy( IDiaEnumFrameData * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumFrameData_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_get_Count_Proxy( IDiaEnumFrameData * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumFrameData_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Item_Proxy( IDiaEnumFrameData * This, /* [in] */ DWORD index, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Next_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONG celt, /* [out] */ IDiaFrameData **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumFrameData_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Skip_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumFrameData_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Reset_Proxy( IDiaEnumFrameData * This); void __RPC_STUB IDiaEnumFrameData_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_Clone_Proxy( IDiaEnumFrameData * This, /* [out] */ IDiaEnumFrameData **ppenum); void __RPC_STUB IDiaEnumFrameData_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_frameByRVA_Proxy( IDiaEnumFrameData * This, /* [in] */ DWORD relativeVirtualAddress, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_frameByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring] */ HRESULT STDMETHODCALLTYPE IDiaEnumFrameData_frameByVA_Proxy( IDiaEnumFrameData * This, /* [in] */ ULONGLONG virtualAddress, /* [retval][out] */ IDiaFrameData **frame); void __RPC_STUB IDiaEnumFrameData_frameByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumFrameData_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ #define __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ /* interface IDiaEnumDebugStreamData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumDebugStreamData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("486943E8-D187-4a6b-A3C4-291259FFF60D") IDiaEnumDebugStreamData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ], /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumDebugStreamData **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumDebugStreamDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumDebugStreamData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumDebugStreamData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumDebugStreamData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumDebugStreamData * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumDebugStreamData * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaEnumDebugStreamData * This, /* [retval][out] */ BSTR *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumDebugStreamData * This, /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ], /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumDebugStreamData * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumDebugStreamData * This, /* [out] */ IDiaEnumDebugStreamData **ppenum); END_INTERFACE } IDiaEnumDebugStreamDataVtbl; interface IDiaEnumDebugStreamData { CONST_VTBL struct IDiaEnumDebugStreamDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumDebugStreamData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumDebugStreamData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumDebugStreamData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumDebugStreamData_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumDebugStreamData_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumDebugStreamData_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaEnumDebugStreamData_Item(This,index,cbData,pcbData,data) \ (This)->lpVtbl -> Item(This,index,cbData,pcbData,data) #define IDiaEnumDebugStreamData_Next(This,celt,cbData,pcbData,data,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,cbData,pcbData,data,pceltFetched) #define IDiaEnumDebugStreamData_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumDebugStreamData_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumDebugStreamData_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get__NewEnum_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get_Count_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_get_name_Proxy( IDiaEnumDebugStreamData * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaEnumDebugStreamData_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Item_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ DWORD index, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaEnumDebugStreamData_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Next_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ], /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumDebugStreamData_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Skip_Proxy( IDiaEnumDebugStreamData * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumDebugStreamData_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Reset_Proxy( IDiaEnumDebugStreamData * This); void __RPC_STUB IDiaEnumDebugStreamData_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreamData_Clone_Proxy( IDiaEnumDebugStreamData * This, /* [out] */ IDiaEnumDebugStreamData **ppenum); void __RPC_STUB IDiaEnumDebugStreamData_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumDebugStreamData_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumDebugStreams_INTERFACE_DEFINED__ #define __IDiaEnumDebugStreams_INTERFACE_DEFINED__ /* interface IDiaEnumDebugStreams */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumDebugStreams; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("08CBB41E-47A6-4f87-92F1-1C9C87CED044") IDiaEnumDebugStreams : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream) = 0; virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumDebugStreams **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumDebugStreamsVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumDebugStreams * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumDebugStreams * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumDebugStreams * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumDebugStreams * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumDebugStreams * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumDebugStreams * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumDebugStreams * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumDebugStreams * This, /* [out] */ IDiaEnumDebugStreams **ppenum); END_INTERFACE } IDiaEnumDebugStreamsVtbl; interface IDiaEnumDebugStreams { CONST_VTBL struct IDiaEnumDebugStreamsVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumDebugStreams_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumDebugStreams_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumDebugStreams_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumDebugStreams_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumDebugStreams_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumDebugStreams_Item(This,index,stream) \ (This)->lpVtbl -> Item(This,index,stream) #define IDiaEnumDebugStreams_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumDebugStreams_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumDebugStreams_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumDebugStreams_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_get__NewEnum_Proxy( IDiaEnumDebugStreams * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumDebugStreams_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_get_Count_Proxy( IDiaEnumDebugStreams * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumDebugStreams_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Item_Proxy( IDiaEnumDebugStreams * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaEnumDebugStreamData **stream); void __RPC_STUB IDiaEnumDebugStreams_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Next_Proxy( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt, /* [out] */ IDiaEnumDebugStreamData **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumDebugStreams_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Skip_Proxy( IDiaEnumDebugStreams * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumDebugStreams_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Reset_Proxy( IDiaEnumDebugStreams * This); void __RPC_STUB IDiaEnumDebugStreams_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumDebugStreams_Clone_Proxy( IDiaEnumDebugStreams * This, /* [out] */ IDiaEnumDebugStreams **ppenum); void __RPC_STUB IDiaEnumDebugStreams_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumDebugStreams_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0138 */ /* [local] */ struct DiaAddressMapEntry { DWORD rva; DWORD rvaTo; } ; extern RPC_IF_HANDLE __MIDL_itf_dia2_0138_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0138_v0_0_s_ifspec; #ifndef __IDiaAddressMap_INTERFACE_DEFINED__ #define __IDiaAddressMap_INTERFACE_DEFINED__ /* interface IDiaAddressMap */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaAddressMap; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("B62A2E7A-067A-4ea3-B598-04C09717502C") IDiaAddressMap : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressMapEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_addressMapEnabled( /* [in] */ BOOL NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddressEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_relativeVirtualAddressEnabled( /* [in] */ BOOL NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageAlign( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_imageAlign( /* [in] */ DWORD NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE set_imageHeaders( /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ], /* [in] */ BOOL originalHeaders) = 0; virtual HRESULT STDMETHODCALLTYPE set_addressMap( /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry data[ ], /* [in] */ BOOL imageToSymbols) = 0; }; #else /* C style interface */ typedef struct IDiaAddressMapVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaAddressMap * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaAddressMap * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaAddressMap * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressMapEnabled )( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_addressMapEnabled )( IDiaAddressMap * This, /* [in] */ BOOL NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddressEnabled )( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_relativeVirtualAddressEnabled )( IDiaAddressMap * This, /* [in] */ BOOL NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageAlign )( IDiaAddressMap * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_imageAlign )( IDiaAddressMap * This, /* [in] */ DWORD NewVal); HRESULT ( STDMETHODCALLTYPE *set_imageHeaders )( IDiaAddressMap * This, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ], /* [in] */ BOOL originalHeaders); HRESULT ( STDMETHODCALLTYPE *set_addressMap )( IDiaAddressMap * This, /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry data[ ], /* [in] */ BOOL imageToSymbols); END_INTERFACE } IDiaAddressMapVtbl; interface IDiaAddressMap { CONST_VTBL struct IDiaAddressMapVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaAddressMap_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaAddressMap_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaAddressMap_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaAddressMap_get_addressMapEnabled(This,pRetVal) \ (This)->lpVtbl -> get_addressMapEnabled(This,pRetVal) #define IDiaAddressMap_put_addressMapEnabled(This,NewVal) \ (This)->lpVtbl -> put_addressMapEnabled(This,NewVal) #define IDiaAddressMap_get_relativeVirtualAddressEnabled(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddressEnabled(This,pRetVal) #define IDiaAddressMap_put_relativeVirtualAddressEnabled(This,NewVal) \ (This)->lpVtbl -> put_relativeVirtualAddressEnabled(This,NewVal) #define IDiaAddressMap_get_imageAlign(This,pRetVal) \ (This)->lpVtbl -> get_imageAlign(This,pRetVal) #define IDiaAddressMap_put_imageAlign(This,NewVal) \ (This)->lpVtbl -> put_imageAlign(This,NewVal) #define IDiaAddressMap_set_imageHeaders(This,cbData,data,originalHeaders) \ (This)->lpVtbl -> set_imageHeaders(This,cbData,data,originalHeaders) #define IDiaAddressMap_set_addressMap(This,cData,data,imageToSymbols) \ (This)->lpVtbl -> set_addressMap(This,cData,data,imageToSymbols) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_addressMapEnabled_Proxy( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaAddressMap_get_addressMapEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_addressMapEnabled_Proxy( IDiaAddressMap * This, /* [in] */ BOOL NewVal); void __RPC_STUB IDiaAddressMap_put_addressMapEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_relativeVirtualAddressEnabled_Proxy( IDiaAddressMap * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaAddressMap_get_relativeVirtualAddressEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_relativeVirtualAddressEnabled_Proxy( IDiaAddressMap * This, /* [in] */ BOOL NewVal); void __RPC_STUB IDiaAddressMap_put_relativeVirtualAddressEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_get_imageAlign_Proxy( IDiaAddressMap * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaAddressMap_get_imageAlign_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaAddressMap_put_imageAlign_Proxy( IDiaAddressMap * This, /* [in] */ DWORD NewVal); void __RPC_STUB IDiaAddressMap_put_imageAlign_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaAddressMap_set_imageHeaders_Proxy( IDiaAddressMap * This, /* [in] */ DWORD cbData, /* [size_is][in] */ BYTE data[ ], /* [in] */ BOOL originalHeaders); void __RPC_STUB IDiaAddressMap_set_imageHeaders_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaAddressMap_set_addressMap_Proxy( IDiaAddressMap * This, /* [in] */ DWORD cData, /* [size_is][in] */ struct DiaAddressMapEntry data[ ], /* [in] */ BOOL imageToSymbols); void __RPC_STUB IDiaAddressMap_set_addressMap_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaAddressMap_INTERFACE_DEFINED__ */ #ifndef __IDiaSession_INTERFACE_DEFINED__ #define __IDiaSession_INTERFACE_DEFINED__ /* interface IDiaSession */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSession; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("67138B34-79CD-4b42-B74A-A18ADBB799DF") IDiaSession : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_loadAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_loadAddress( /* [in] */ ULONGLONG NewVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_globalScope( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumTables( /* [out] */ IDiaEnumTables **ppEnumTables) = 0; virtual HRESULT STDMETHODCALLTYPE getSymbolsByAddr( /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr) = 0; virtual HRESULT STDMETHODCALLTYPE findChildren( /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByAddr( /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByRVA( /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByVA( /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByToken( /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE symsAreEquiv( /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB) = 0; virtual HRESULT STDMETHODCALLTYPE symbolById( /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByRVAEx( /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement) = 0; virtual HRESULT STDMETHODCALLTYPE findSymbolByVAEx( /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement) = 0; virtual HRESULT STDMETHODCALLTYPE findFile( /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findFileById( /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLines( /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByAddr( /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByRVA( /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByVA( /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findLinesByLinenum( /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE findInjectedSource( /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult) = 0; virtual HRESULT STDMETHODCALLTYPE getEnumDebugStreams( /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams) = 0; }; #else /* C style interface */ typedef struct IDiaSessionVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSession * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSession * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSession * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_loadAddress )( IDiaSession * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_loadAddress )( IDiaSession * This, /* [in] */ ULONGLONG NewVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_globalScope )( IDiaSession * This, /* [retval][out] */ IDiaSymbol **pRetVal); HRESULT ( STDMETHODCALLTYPE *getEnumTables )( IDiaSession * This, /* [out] */ IDiaEnumTables **ppEnumTables); HRESULT ( STDMETHODCALLTYPE *getSymbolsByAddr )( IDiaSession * This, /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr); HRESULT ( STDMETHODCALLTYPE *findChildren )( IDiaSession * This, /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); HRESULT ( STDMETHODCALLTYPE *findSymbolByAddr )( IDiaSession * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByRVA )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByVA )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByToken )( IDiaSession * This, /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *symsAreEquiv )( IDiaSession * This, /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB); HRESULT ( STDMETHODCALLTYPE *symbolById )( IDiaSession * This, /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol); HRESULT ( STDMETHODCALLTYPE *findSymbolByRVAEx )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); HRESULT ( STDMETHODCALLTYPE *findSymbolByVAEx )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); HRESULT ( STDMETHODCALLTYPE *findFile )( IDiaSession * This, /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult); HRESULT ( STDMETHODCALLTYPE *findFileById )( IDiaSession * This, /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult); HRESULT ( STDMETHODCALLTYPE *findLines )( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByAddr )( IDiaSession * This, /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByRVA )( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByVA )( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findLinesByLinenum )( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult); HRESULT ( STDMETHODCALLTYPE *findInjectedSource )( IDiaSession * This, /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult); HRESULT ( STDMETHODCALLTYPE *getEnumDebugStreams )( IDiaSession * This, /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams); END_INTERFACE } IDiaSessionVtbl; interface IDiaSession { CONST_VTBL struct IDiaSessionVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSession_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSession_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSession_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSession_get_loadAddress(This,pRetVal) \ (This)->lpVtbl -> get_loadAddress(This,pRetVal) #define IDiaSession_put_loadAddress(This,NewVal) \ (This)->lpVtbl -> put_loadAddress(This,NewVal) #define IDiaSession_get_globalScope(This,pRetVal) \ (This)->lpVtbl -> get_globalScope(This,pRetVal) #define IDiaSession_getEnumTables(This,ppEnumTables) \ (This)->lpVtbl -> getEnumTables(This,ppEnumTables) #define IDiaSession_getSymbolsByAddr(This,ppEnumbyAddr) \ (This)->lpVtbl -> getSymbolsByAddr(This,ppEnumbyAddr) #define IDiaSession_findChildren(This,parent,symtag,name,compareFlags,ppResult) \ (This)->lpVtbl -> findChildren(This,parent,symtag,name,compareFlags,ppResult) #define IDiaSession_findSymbolByAddr(This,isect,offset,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByAddr(This,isect,offset,symtag,ppSymbol) #define IDiaSession_findSymbolByRVA(This,rva,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByRVA(This,rva,symtag,ppSymbol) #define IDiaSession_findSymbolByVA(This,va,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByVA(This,va,symtag,ppSymbol) #define IDiaSession_findSymbolByToken(This,token,symtag,ppSymbol) \ (This)->lpVtbl -> findSymbolByToken(This,token,symtag,ppSymbol) #define IDiaSession_symsAreEquiv(This,symbolA,symbolB) \ (This)->lpVtbl -> symsAreEquiv(This,symbolA,symbolB) #define IDiaSession_symbolById(This,id,ppSymbol) \ (This)->lpVtbl -> symbolById(This,id,ppSymbol) #define IDiaSession_findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) \ (This)->lpVtbl -> findSymbolByRVAEx(This,rva,symtag,ppSymbol,displacement) #define IDiaSession_findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) \ (This)->lpVtbl -> findSymbolByVAEx(This,va,symtag,ppSymbol,displacement) #define IDiaSession_findFile(This,pCompiland,name,compareFlags,ppResult) \ (This)->lpVtbl -> findFile(This,pCompiland,name,compareFlags,ppResult) #define IDiaSession_findFileById(This,uniqueId,ppResult) \ (This)->lpVtbl -> findFileById(This,uniqueId,ppResult) #define IDiaSession_findLines(This,compiland,file,ppResult) \ (This)->lpVtbl -> findLines(This,compiland,file,ppResult) #define IDiaSession_findLinesByAddr(This,seg,offset,length,ppResult) \ (This)->lpVtbl -> findLinesByAddr(This,seg,offset,length,ppResult) #define IDiaSession_findLinesByRVA(This,rva,length,ppResult) \ (This)->lpVtbl -> findLinesByRVA(This,rva,length,ppResult) #define IDiaSession_findLinesByVA(This,va,length,ppResult) \ (This)->lpVtbl -> findLinesByVA(This,va,length,ppResult) #define IDiaSession_findLinesByLinenum(This,compiland,file,linenum,column,ppResult) \ (This)->lpVtbl -> findLinesByLinenum(This,compiland,file,linenum,column,ppResult) #define IDiaSession_findInjectedSource(This,srcFile,ppResult) \ (This)->lpVtbl -> findInjectedSource(This,srcFile,ppResult) #define IDiaSession_getEnumDebugStreams(This,ppEnumDebugStreams) \ (This)->lpVtbl -> getEnumDebugStreams(This,ppEnumDebugStreams) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSession_get_loadAddress_Proxy( IDiaSession * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSession_get_loadAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaSession_put_loadAddress_Proxy( IDiaSession * This, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaSession_put_loadAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSession_get_globalScope_Proxy( IDiaSession * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSession_get_globalScope_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getEnumTables_Proxy( IDiaSession * This, /* [out] */ IDiaEnumTables **ppEnumTables); void __RPC_STUB IDiaSession_getEnumTables_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getSymbolsByAddr_Proxy( IDiaSession * This, /* [out] */ IDiaEnumSymbolsByAddr **ppEnumbyAddr); void __RPC_STUB IDiaSession_getSymbolsByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findChildren_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *parent, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); void __RPC_STUB IDiaSession_findChildren_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByAddr_Proxy( IDiaSession * This, /* [in] */ DWORD isect, /* [in] */ DWORD offset, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByRVA_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByVA_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByToken_Proxy( IDiaSession * This, /* [in] */ ULONG token, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_findSymbolByToken_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_symsAreEquiv_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *symbolA, /* [in] */ IDiaSymbol *symbolB); void __RPC_STUB IDiaSession_symsAreEquiv_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_symbolById_Proxy( IDiaSession * This, /* [in] */ DWORD id, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaSession_symbolById_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByRVAEx_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); void __RPC_STUB IDiaSession_findSymbolByRVAEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findSymbolByVAEx_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ enum SymTagEnum symtag, /* [out] */ IDiaSymbol **ppSymbol, /* [out] */ long *displacement); void __RPC_STUB IDiaSession_findSymbolByVAEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findFile_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *pCompiland, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSourceFiles **ppResult); void __RPC_STUB IDiaSession_findFile_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findFileById_Proxy( IDiaSession * This, /* [in] */ DWORD uniqueId, /* [out] */ IDiaSourceFile **ppResult); void __RPC_STUB IDiaSession_findFileById_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLines_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLines_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByAddr_Proxy( IDiaSession * This, /* [in] */ DWORD seg, /* [in] */ DWORD offset, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByAddr_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByRVA_Proxy( IDiaSession * This, /* [in] */ DWORD rva, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByRVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByVA_Proxy( IDiaSession * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD length, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findLinesByLinenum_Proxy( IDiaSession * This, /* [in] */ IDiaSymbol *compiland, /* [in] */ IDiaSourceFile *file, /* [in] */ DWORD linenum, /* [in] */ DWORD column, /* [out] */ IDiaEnumLineNumbers **ppResult); void __RPC_STUB IDiaSession_findLinesByLinenum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_findInjectedSource_Proxy( IDiaSession * This, /* [in] */ LPCOLESTR srcFile, /* [out] */ IDiaEnumInjectedSources **ppResult); void __RPC_STUB IDiaSession_findInjectedSource_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSession_getEnumDebugStreams_Proxy( IDiaSession * This, /* [out] */ IDiaEnumDebugStreams **ppEnumDebugStreams); void __RPC_STUB IDiaSession_getEnumDebugStreams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSession_INTERFACE_DEFINED__ */ #ifndef __IDiaSymbol_INTERFACE_DEFINED__ #define __IDiaSymbol_INTERFACE_DEFINED__ /* interface IDiaSymbol */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("72827A48-D320-4eaf-8436-548ADE47D5E5") IDiaSymbol : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symIndexId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symTag( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParent( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParent( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataKind( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_locationType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_slot( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_volatileType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unalignedType( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_access( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_libraryName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_platform( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_language( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_editAndContinueEnabled( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMajor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndMinor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frontEndBuild( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMajor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndMinor( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_backEndBuild( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_unused( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thunkOrdinal( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_thisAdjust( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtual( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_intro( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_pure( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_callingConvention( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_value( /* [retval][out] */ VARIANT *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_baseType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_token( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_timeStamp( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_guid( /* [retval][out] */ GUID *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_symbolsFileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_reference( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_count( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_bitPosition( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_packed( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_constructor( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_overloadedOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_nested( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasNestedTypes( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasAssignmentOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_hasCastOperator( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_scoped( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseClass( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_indirectVirtualBaseClass( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBasePointerOffset( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShape( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lexicalParentId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_classParentId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_typeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_arrayIndexTypeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualTableShapeId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_function( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_managed( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_msil( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualBaseDispIndex( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_undecoratedName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_age( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_signature( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilerGenerated( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressTaken( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_rank( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBound( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBound( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lowerBoundId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_upperBoundId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_dataBytes( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE findChildren( /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetRelativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_targetVirtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_machineType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_oemSymbolId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_types( /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [length_is][size_is][out] */ IDiaSymbol *types[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE get_typeIds( /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [length_is][size_is][out] */ DWORD typeIds[ ]) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectPointerType( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_udtKind( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_undecoratedNameEx( /* [in] */ DWORD undecorateOptions, /* [out] */ BSTR *name) = 0; }; #else /* C style interface */ typedef struct IDiaSymbolVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSymbol * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSymbol * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSymbol * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symIndexId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symTag )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParent )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParent )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataKind )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_slot )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_volatileType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unalignedType )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_access )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_libraryName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_platform )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_editAndContinueEnabled )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMajor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndMinor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frontEndBuild )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMajor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndMinor )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_backEndBuild )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_unused )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thunkOrdinal )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_thisAdjust )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtual )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_intro )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pure )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_callingConvention )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( IDiaSymbol * This, /* [retval][out] */ VARIANT *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_baseType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_token )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_timeStamp )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_guid )( IDiaSymbol * This, /* [retval][out] */ GUID *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_symbolsFileName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_reference )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bitPosition )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_packed )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_constructor )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_overloadedOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nested )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasNestedTypes )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasAssignmentOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasCastOperator )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_scoped )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseClass )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_indirectVirtualBaseClass )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBasePointerOffset )( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShape )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lexicalParentId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_classParentId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_typeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_arrayIndexTypeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualTableShapeId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_function )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_managed )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_msil )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualBaseDispIndex )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_undecoratedName )( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_age )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_signature )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilerGenerated )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressTaken )( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_rank )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBound )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBound )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lowerBoundId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_upperBoundId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_dataBytes )( IDiaSymbol * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *findChildren )( IDiaSymbol * This, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetSection )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetOffset )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetRelativeVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVirtualAddress )( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_machineType )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_oemSymbolId )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_types )( IDiaSymbol * This, /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [length_is][size_is][out] */ IDiaSymbol *types[ ]); HRESULT ( STDMETHODCALLTYPE *get_typeIds )( IDiaSymbol * This, /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [length_is][size_is][out] */ DWORD typeIds[ ]); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectPointerType )( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_udtKind )( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_undecoratedNameEx )( IDiaSymbol * This, /* [in] */ DWORD undecorateOptions, /* [out] */ BSTR *name); END_INTERFACE } IDiaSymbolVtbl; interface IDiaSymbol { CONST_VTBL struct IDiaSymbolVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSymbol_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSymbol_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSymbol_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSymbol_get_symIndexId(This,pRetVal) \ (This)->lpVtbl -> get_symIndexId(This,pRetVal) #define IDiaSymbol_get_symTag(This,pRetVal) \ (This)->lpVtbl -> get_symTag(This,pRetVal) #define IDiaSymbol_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaSymbol_get_lexicalParent(This,pRetVal) \ (This)->lpVtbl -> get_lexicalParent(This,pRetVal) #define IDiaSymbol_get_classParent(This,pRetVal) \ (This)->lpVtbl -> get_classParent(This,pRetVal) #define IDiaSymbol_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaSymbol_get_dataKind(This,pRetVal) \ (This)->lpVtbl -> get_dataKind(This,pRetVal) #define IDiaSymbol_get_locationType(This,pRetVal) \ (This)->lpVtbl -> get_locationType(This,pRetVal) #define IDiaSymbol_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSymbol_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaSymbol_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSymbol_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaSymbol_get_registerId(This,pRetVal) \ (This)->lpVtbl -> get_registerId(This,pRetVal) #define IDiaSymbol_get_offset(This,pRetVal) \ (This)->lpVtbl -> get_offset(This,pRetVal) #define IDiaSymbol_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSymbol_get_slot(This,pRetVal) \ (This)->lpVtbl -> get_slot(This,pRetVal) #define IDiaSymbol_get_volatileType(This,pRetVal) \ (This)->lpVtbl -> get_volatileType(This,pRetVal) #define IDiaSymbol_get_constType(This,pRetVal) \ (This)->lpVtbl -> get_constType(This,pRetVal) #define IDiaSymbol_get_unalignedType(This,pRetVal) \ (This)->lpVtbl -> get_unalignedType(This,pRetVal) #define IDiaSymbol_get_access(This,pRetVal) \ (This)->lpVtbl -> get_access(This,pRetVal) #define IDiaSymbol_get_libraryName(This,pRetVal) \ (This)->lpVtbl -> get_libraryName(This,pRetVal) #define IDiaSymbol_get_platform(This,pRetVal) \ (This)->lpVtbl -> get_platform(This,pRetVal) #define IDiaSymbol_get_language(This,pRetVal) \ (This)->lpVtbl -> get_language(This,pRetVal) #define IDiaSymbol_get_editAndContinueEnabled(This,pRetVal) \ (This)->lpVtbl -> get_editAndContinueEnabled(This,pRetVal) #define IDiaSymbol_get_frontEndMajor(This,pRetVal) \ (This)->lpVtbl -> get_frontEndMajor(This,pRetVal) #define IDiaSymbol_get_frontEndMinor(This,pRetVal) \ (This)->lpVtbl -> get_frontEndMinor(This,pRetVal) #define IDiaSymbol_get_frontEndBuild(This,pRetVal) \ (This)->lpVtbl -> get_frontEndBuild(This,pRetVal) #define IDiaSymbol_get_backEndMajor(This,pRetVal) \ (This)->lpVtbl -> get_backEndMajor(This,pRetVal) #define IDiaSymbol_get_backEndMinor(This,pRetVal) \ (This)->lpVtbl -> get_backEndMinor(This,pRetVal) #define IDiaSymbol_get_backEndBuild(This,pRetVal) \ (This)->lpVtbl -> get_backEndBuild(This,pRetVal) #define IDiaSymbol_get_sourceFileName(This,pRetVal) \ (This)->lpVtbl -> get_sourceFileName(This,pRetVal) #define IDiaSymbol_get_unused(This,pRetVal) \ (This)->lpVtbl -> get_unused(This,pRetVal) #define IDiaSymbol_get_thunkOrdinal(This,pRetVal) \ (This)->lpVtbl -> get_thunkOrdinal(This,pRetVal) #define IDiaSymbol_get_thisAdjust(This,pRetVal) \ (This)->lpVtbl -> get_thisAdjust(This,pRetVal) #define IDiaSymbol_get_virtualBaseOffset(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseOffset(This,pRetVal) #define IDiaSymbol_get_virtual(This,pRetVal) \ (This)->lpVtbl -> get_virtual(This,pRetVal) #define IDiaSymbol_get_intro(This,pRetVal) \ (This)->lpVtbl -> get_intro(This,pRetVal) #define IDiaSymbol_get_pure(This,pRetVal) \ (This)->lpVtbl -> get_pure(This,pRetVal) #define IDiaSymbol_get_callingConvention(This,pRetVal) \ (This)->lpVtbl -> get_callingConvention(This,pRetVal) #define IDiaSymbol_get_value(This,pRetVal) \ (This)->lpVtbl -> get_value(This,pRetVal) #define IDiaSymbol_get_baseType(This,pRetVal) \ (This)->lpVtbl -> get_baseType(This,pRetVal) #define IDiaSymbol_get_token(This,pRetVal) \ (This)->lpVtbl -> get_token(This,pRetVal) #define IDiaSymbol_get_timeStamp(This,pRetVal) \ (This)->lpVtbl -> get_timeStamp(This,pRetVal) #define IDiaSymbol_get_guid(This,pRetVal) \ (This)->lpVtbl -> get_guid(This,pRetVal) #define IDiaSymbol_get_symbolsFileName(This,pRetVal) \ (This)->lpVtbl -> get_symbolsFileName(This,pRetVal) #define IDiaSymbol_get_reference(This,pRetVal) \ (This)->lpVtbl -> get_reference(This,pRetVal) #define IDiaSymbol_get_count(This,pRetVal) \ (This)->lpVtbl -> get_count(This,pRetVal) #define IDiaSymbol_get_bitPosition(This,pRetVal) \ (This)->lpVtbl -> get_bitPosition(This,pRetVal) #define IDiaSymbol_get_arrayIndexType(This,pRetVal) \ (This)->lpVtbl -> get_arrayIndexType(This,pRetVal) #define IDiaSymbol_get_packed(This,pRetVal) \ (This)->lpVtbl -> get_packed(This,pRetVal) #define IDiaSymbol_get_constructor(This,pRetVal) \ (This)->lpVtbl -> get_constructor(This,pRetVal) #define IDiaSymbol_get_overloadedOperator(This,pRetVal) \ (This)->lpVtbl -> get_overloadedOperator(This,pRetVal) #define IDiaSymbol_get_nested(This,pRetVal) \ (This)->lpVtbl -> get_nested(This,pRetVal) #define IDiaSymbol_get_hasNestedTypes(This,pRetVal) \ (This)->lpVtbl -> get_hasNestedTypes(This,pRetVal) #define IDiaSymbol_get_hasAssignmentOperator(This,pRetVal) \ (This)->lpVtbl -> get_hasAssignmentOperator(This,pRetVal) #define IDiaSymbol_get_hasCastOperator(This,pRetVal) \ (This)->lpVtbl -> get_hasCastOperator(This,pRetVal) #define IDiaSymbol_get_scoped(This,pRetVal) \ (This)->lpVtbl -> get_scoped(This,pRetVal) #define IDiaSymbol_get_virtualBaseClass(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseClass(This,pRetVal) #define IDiaSymbol_get_indirectVirtualBaseClass(This,pRetVal) \ (This)->lpVtbl -> get_indirectVirtualBaseClass(This,pRetVal) #define IDiaSymbol_get_virtualBasePointerOffset(This,pRetVal) \ (This)->lpVtbl -> get_virtualBasePointerOffset(This,pRetVal) #define IDiaSymbol_get_virtualTableShape(This,pRetVal) \ (This)->lpVtbl -> get_virtualTableShape(This,pRetVal) #define IDiaSymbol_get_lexicalParentId(This,pRetVal) \ (This)->lpVtbl -> get_lexicalParentId(This,pRetVal) #define IDiaSymbol_get_classParentId(This,pRetVal) \ (This)->lpVtbl -> get_classParentId(This,pRetVal) #define IDiaSymbol_get_typeId(This,pRetVal) \ (This)->lpVtbl -> get_typeId(This,pRetVal) #define IDiaSymbol_get_arrayIndexTypeId(This,pRetVal) \ (This)->lpVtbl -> get_arrayIndexTypeId(This,pRetVal) #define IDiaSymbol_get_virtualTableShapeId(This,pRetVal) \ (This)->lpVtbl -> get_virtualTableShapeId(This,pRetVal) #define IDiaSymbol_get_code(This,pRetVal) \ (This)->lpVtbl -> get_code(This,pRetVal) #define IDiaSymbol_get_function(This,pRetVal) \ (This)->lpVtbl -> get_function(This,pRetVal) #define IDiaSymbol_get_managed(This,pRetVal) \ (This)->lpVtbl -> get_managed(This,pRetVal) #define IDiaSymbol_get_msil(This,pRetVal) \ (This)->lpVtbl -> get_msil(This,pRetVal) #define IDiaSymbol_get_virtualBaseDispIndex(This,pRetVal) \ (This)->lpVtbl -> get_virtualBaseDispIndex(This,pRetVal) #define IDiaSymbol_get_undecoratedName(This,pRetVal) \ (This)->lpVtbl -> get_undecoratedName(This,pRetVal) #define IDiaSymbol_get_age(This,pRetVal) \ (This)->lpVtbl -> get_age(This,pRetVal) #define IDiaSymbol_get_signature(This,pRetVal) \ (This)->lpVtbl -> get_signature(This,pRetVal) #define IDiaSymbol_get_compilerGenerated(This,pRetVal) \ (This)->lpVtbl -> get_compilerGenerated(This,pRetVal) #define IDiaSymbol_get_addressTaken(This,pRetVal) \ (This)->lpVtbl -> get_addressTaken(This,pRetVal) #define IDiaSymbol_get_rank(This,pRetVal) \ (This)->lpVtbl -> get_rank(This,pRetVal) #define IDiaSymbol_get_lowerBound(This,pRetVal) \ (This)->lpVtbl -> get_lowerBound(This,pRetVal) #define IDiaSymbol_get_upperBound(This,pRetVal) \ (This)->lpVtbl -> get_upperBound(This,pRetVal) #define IDiaSymbol_get_lowerBoundId(This,pRetVal) \ (This)->lpVtbl -> get_lowerBoundId(This,pRetVal) #define IDiaSymbol_get_upperBoundId(This,pRetVal) \ (This)->lpVtbl -> get_upperBoundId(This,pRetVal) #define IDiaSymbol_get_dataBytes(This,cbData,pcbData,data) \ (This)->lpVtbl -> get_dataBytes(This,cbData,pcbData,data) #define IDiaSymbol_findChildren(This,symtag,name,compareFlags,ppResult) \ (This)->lpVtbl -> findChildren(This,symtag,name,compareFlags,ppResult) #define IDiaSymbol_get_targetSection(This,pRetVal) \ (This)->lpVtbl -> get_targetSection(This,pRetVal) #define IDiaSymbol_get_targetOffset(This,pRetVal) \ (This)->lpVtbl -> get_targetOffset(This,pRetVal) #define IDiaSymbol_get_targetRelativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_targetRelativeVirtualAddress(This,pRetVal) #define IDiaSymbol_get_targetVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_targetVirtualAddress(This,pRetVal) #define IDiaSymbol_get_machineType(This,pRetVal) \ (This)->lpVtbl -> get_machineType(This,pRetVal) #define IDiaSymbol_get_oemId(This,pRetVal) \ (This)->lpVtbl -> get_oemId(This,pRetVal) #define IDiaSymbol_get_oemSymbolId(This,pRetVal) \ (This)->lpVtbl -> get_oemSymbolId(This,pRetVal) #define IDiaSymbol_get_types(This,cTypes,pcTypes,types) \ (This)->lpVtbl -> get_types(This,cTypes,pcTypes,types) #define IDiaSymbol_get_typeIds(This,cTypeIds,pcTypeIds,typeIds) \ (This)->lpVtbl -> get_typeIds(This,cTypeIds,pcTypeIds,typeIds) #define IDiaSymbol_get_objectPointerType(This,pRetVal) \ (This)->lpVtbl -> get_objectPointerType(This,pRetVal) #define IDiaSymbol_get_udtKind(This,pRetVal) \ (This)->lpVtbl -> get_udtKind(This,pRetVal) #define IDiaSymbol_get_undecoratedNameEx(This,undecorateOptions,name) \ (This)->lpVtbl -> get_undecoratedNameEx(This,undecorateOptions,name) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symIndexId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_symIndexId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symTag_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_symTag_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_name_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lexicalParent_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_lexicalParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_classParent_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_classParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_type_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataKind_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_dataKind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_locationType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_locationType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressSection_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_relativeVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_registerId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_registerId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_offset_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_offset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_length_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_slot_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_slot_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_volatileType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_volatileType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_constType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unalignedType_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_unalignedType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_access_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_access_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_libraryName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_libraryName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_platform_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_platform_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_language_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_language_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_editAndContinueEnabled_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_editAndContinueEnabled_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndMajor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndMajor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndMinor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndMinor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_frontEndBuild_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_frontEndBuild_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndMajor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndMajor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndMinor_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndMinor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_backEndBuild_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_backEndBuild_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_sourceFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_sourceFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_unused_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_unused_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_thunkOrdinal_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_thunkOrdinal_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_thisAdjust_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_thisAdjust_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtual_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_virtual_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_intro_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_intro_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_pure_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_pure_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_callingConvention_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_callingConvention_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_value_Proxy( IDiaSymbol * This, /* [retval][out] */ VARIANT *pRetVal); void __RPC_STUB IDiaSymbol_get_value_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_baseType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_baseType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_token_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_token_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_timeStamp_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_timeStamp_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_guid_Proxy( IDiaSymbol * This, /* [retval][out] */ GUID *pRetVal); void __RPC_STUB IDiaSymbol_get_guid_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_symbolsFileName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_symbolsFileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_reference_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_reference_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_count_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_bitPosition_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_bitPosition_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_arrayIndexType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_arrayIndexType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_packed_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_packed_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_constructor_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_constructor_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_overloadedOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_overloadedOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_nested_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_nested_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasNestedTypes_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasNestedTypes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasAssignmentOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasAssignmentOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_hasCastOperator_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_hasCastOperator_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_scoped_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_scoped_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseClass_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseClass_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_indirectVirtualBaseClass_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_indirectVirtualBaseClass_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBasePointerOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBasePointerOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualTableShape_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_virtualTableShape_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lexicalParentId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_lexicalParentId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_classParentId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_classParentId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_typeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_typeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_arrayIndexTypeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_arrayIndexTypeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualTableShapeId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualTableShapeId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_code_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_code_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_function_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_function_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_managed_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_managed_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_msil_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_msil_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_virtualBaseDispIndex_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_virtualBaseDispIndex_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_undecoratedName_Proxy( IDiaSymbol * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSymbol_get_undecoratedName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_age_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_age_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_signature_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_signature_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_compilerGenerated_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_compilerGenerated_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_addressTaken_Proxy( IDiaSymbol * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSymbol_get_addressTaken_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_rank_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_rank_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lowerBound_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_lowerBound_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_upperBound_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_upperBound_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_lowerBoundId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_lowerBoundId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_upperBoundId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_upperBoundId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_dataBytes_Proxy( IDiaSymbol * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaSymbol_get_dataBytes_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_findChildren_Proxy( IDiaSymbol * This, /* [in] */ enum SymTagEnum symtag, /* [in] */ LPCOLESTR name, /* [in] */ DWORD compareFlags, /* [out] */ IDiaEnumSymbols **ppResult); void __RPC_STUB IDiaSymbol_findChildren_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetSection_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetOffset_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetRelativeVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_targetRelativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_targetVirtualAddress_Proxy( IDiaSymbol * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSymbol_get_targetVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_machineType_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_machineType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_oemId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_oemId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_oemSymbolId_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_oemSymbolId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_types_Proxy( IDiaSymbol * This, /* [in] */ DWORD cTypes, /* [out] */ DWORD *pcTypes, /* [length_is][size_is][out] */ IDiaSymbol *types[ ]); void __RPC_STUB IDiaSymbol_get_types_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_typeIds_Proxy( IDiaSymbol * This, /* [in] */ DWORD cTypeIds, /* [out] */ DWORD *pcTypeIds, /* [length_is][size_is][out] */ DWORD typeIds[ ]); void __RPC_STUB IDiaSymbol_get_typeIds_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_objectPointerType_Proxy( IDiaSymbol * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSymbol_get_objectPointerType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSymbol_get_udtKind_Proxy( IDiaSymbol * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSymbol_get_udtKind_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSymbol_get_undecoratedNameEx_Proxy( IDiaSymbol * This, /* [in] */ DWORD undecorateOptions, /* [out] */ BSTR *name); void __RPC_STUB IDiaSymbol_get_undecoratedNameEx_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSymbol_INTERFACE_DEFINED__ */ #ifndef __IDiaSourceFile_INTERFACE_DEFINED__ #define __IDiaSourceFile_INTERFACE_DEFINED__ /* interface IDiaSourceFile */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSourceFile; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("A2EF5353-F5A8-4eb3-90D2-CB526ACB3CDD") IDiaSourceFile : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uniqueId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_fileName( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_checksumType( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilands( /* [retval][out] */ IDiaEnumSymbols **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_checksum( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaSourceFileVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSourceFile * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSourceFile * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSourceFile * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueId )( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_fileName )( IDiaSourceFile * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_checksumType )( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilands )( IDiaSourceFile * This, /* [retval][out] */ IDiaEnumSymbols **pRetVal); HRESULT ( STDMETHODCALLTYPE *get_checksum )( IDiaSourceFile * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaSourceFileVtbl; interface IDiaSourceFile { CONST_VTBL struct IDiaSourceFileVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSourceFile_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSourceFile_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSourceFile_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSourceFile_get_uniqueId(This,pRetVal) \ (This)->lpVtbl -> get_uniqueId(This,pRetVal) #define IDiaSourceFile_get_fileName(This,pRetVal) \ (This)->lpVtbl -> get_fileName(This,pRetVal) #define IDiaSourceFile_get_checksumType(This,pRetVal) \ (This)->lpVtbl -> get_checksumType(This,pRetVal) #define IDiaSourceFile_get_compilands(This,pRetVal) \ (This)->lpVtbl -> get_compilands(This,pRetVal) #define IDiaSourceFile_get_checksum(This,cbData,pcbData,data) \ (This)->lpVtbl -> get_checksum(This,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_uniqueId_Proxy( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSourceFile_get_uniqueId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_fileName_Proxy( IDiaSourceFile * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaSourceFile_get_fileName_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_checksumType_Proxy( IDiaSourceFile * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSourceFile_get_checksumType_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_compilands_Proxy( IDiaSourceFile * This, /* [retval][out] */ IDiaEnumSymbols **pRetVal); void __RPC_STUB IDiaSourceFile_get_compilands_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaSourceFile_get_checksum_Proxy( IDiaSourceFile * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaSourceFile_get_checksum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSourceFile_INTERFACE_DEFINED__ */ #ifndef __IDiaLineNumber_INTERFACE_DEFINED__ #define __IDiaLineNumber_INTERFACE_DEFINED__ /* interface IDiaLineNumber */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaLineNumber; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("B388EB14-BE4D-421d-A8A1-6CF7AB057086") IDiaLineNumber : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFile( /* [retval][out] */ IDiaSourceFile **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumber( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lineNumberEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumber( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_columnNumberEnd( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceFileId( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_statement( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaLineNumberVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaLineNumber * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaLineNumber * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaLineNumber * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( IDiaLineNumber * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFile )( IDiaLineNumber * This, /* [retval][out] */ IDiaSourceFile **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumber )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lineNumberEnd )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumber )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnNumberEnd )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaLineNumber * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceFileId )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_statement )( IDiaLineNumber * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaLineNumberVtbl; interface IDiaLineNumber { CONST_VTBL struct IDiaLineNumberVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaLineNumber_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaLineNumber_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaLineNumber_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaLineNumber_get_compiland(This,pRetVal) \ (This)->lpVtbl -> get_compiland(This,pRetVal) #define IDiaLineNumber_get_sourceFile(This,pRetVal) \ (This)->lpVtbl -> get_sourceFile(This,pRetVal) #define IDiaLineNumber_get_lineNumber(This,pRetVal) \ (This)->lpVtbl -> get_lineNumber(This,pRetVal) #define IDiaLineNumber_get_lineNumberEnd(This,pRetVal) \ (This)->lpVtbl -> get_lineNumberEnd(This,pRetVal) #define IDiaLineNumber_get_columnNumber(This,pRetVal) \ (This)->lpVtbl -> get_columnNumber(This,pRetVal) #define IDiaLineNumber_get_columnNumberEnd(This,pRetVal) \ (This)->lpVtbl -> get_columnNumberEnd(This,pRetVal) #define IDiaLineNumber_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaLineNumber_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaLineNumber_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaLineNumber_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaLineNumber_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaLineNumber_get_sourceFileId(This,pRetVal) \ (This)->lpVtbl -> get_sourceFileId(This,pRetVal) #define IDiaLineNumber_get_statement(This,pRetVal) \ (This)->lpVtbl -> get_statement(This,pRetVal) #define IDiaLineNumber_get_compilandId(This,pRetVal) \ (This)->lpVtbl -> get_compilandId(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_compiland_Proxy( IDiaLineNumber * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaLineNumber_get_compiland_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_sourceFile_Proxy( IDiaLineNumber * This, /* [retval][out] */ IDiaSourceFile **pRetVal); void __RPC_STUB IDiaLineNumber_get_sourceFile_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_lineNumber_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_lineNumber_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_lineNumberEnd_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_lineNumberEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_columnNumber_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_columnNumber_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_columnNumberEnd_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_columnNumberEnd_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_addressSection_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_addressOffset_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_relativeVirtualAddress_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_virtualAddress_Proxy( IDiaLineNumber * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaLineNumber_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_length_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_sourceFileId_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_sourceFileId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_statement_Proxy( IDiaLineNumber * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaLineNumber_get_statement_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaLineNumber_get_compilandId_Proxy( IDiaLineNumber * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaLineNumber_get_compilandId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaLineNumber_INTERFACE_DEFINED__ */ #ifndef __IDiaSectionContrib_INTERFACE_DEFINED__ #define __IDiaSectionContrib_INTERFACE_DEFINED__ /* interface IDiaSectionContrib */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSectionContrib; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0CF4B60E-35B1-4c6c-BDD8-854B9C8E3857") IDiaSectionContrib : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compiland( /* [retval][out] */ IDiaSymbol **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notPaged( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_code( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_initializedData( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_uninitializedData( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_remove( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_comdat( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_discardable( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_notCached( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_share( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_dataCrc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relocationsCrc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_compilandId( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSectionContribVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSectionContrib * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSectionContrib * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSectionContrib * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compiland )( IDiaSectionContrib * This, /* [retval][out] */ IDiaSymbol **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSectionContrib * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notPaged )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_code )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_initializedData )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uninitializedData )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_remove )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_comdat )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_discardable )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_notCached )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_share )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_dataCrc )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relocationsCrc )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_compilandId )( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaSectionContribVtbl; interface IDiaSectionContrib { CONST_VTBL struct IDiaSectionContribVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSectionContrib_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSectionContrib_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSectionContrib_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSectionContrib_get_compiland(This,pRetVal) \ (This)->lpVtbl -> get_compiland(This,pRetVal) #define IDiaSectionContrib_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSectionContrib_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaSectionContrib_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSectionContrib_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaSectionContrib_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSectionContrib_get_notPaged(This,pRetVal) \ (This)->lpVtbl -> get_notPaged(This,pRetVal) #define IDiaSectionContrib_get_code(This,pRetVal) \ (This)->lpVtbl -> get_code(This,pRetVal) #define IDiaSectionContrib_get_initializedData(This,pRetVal) \ (This)->lpVtbl -> get_initializedData(This,pRetVal) #define IDiaSectionContrib_get_uninitializedData(This,pRetVal) \ (This)->lpVtbl -> get_uninitializedData(This,pRetVal) #define IDiaSectionContrib_get_remove(This,pRetVal) \ (This)->lpVtbl -> get_remove(This,pRetVal) #define IDiaSectionContrib_get_comdat(This,pRetVal) \ (This)->lpVtbl -> get_comdat(This,pRetVal) #define IDiaSectionContrib_get_discardable(This,pRetVal) \ (This)->lpVtbl -> get_discardable(This,pRetVal) #define IDiaSectionContrib_get_notCached(This,pRetVal) \ (This)->lpVtbl -> get_notCached(This,pRetVal) #define IDiaSectionContrib_get_share(This,pRetVal) \ (This)->lpVtbl -> get_share(This,pRetVal) #define IDiaSectionContrib_get_execute(This,pRetVal) \ (This)->lpVtbl -> get_execute(This,pRetVal) #define IDiaSectionContrib_get_read(This,pRetVal) \ (This)->lpVtbl -> get_read(This,pRetVal) #define IDiaSectionContrib_get_write(This,pRetVal) \ (This)->lpVtbl -> get_write(This,pRetVal) #define IDiaSectionContrib_get_dataCrc(This,pRetVal) \ (This)->lpVtbl -> get_dataCrc(This,pRetVal) #define IDiaSectionContrib_get_relocationsCrc(This,pRetVal) \ (This)->lpVtbl -> get_relocationsCrc(This,pRetVal) #define IDiaSectionContrib_get_compilandId(This,pRetVal) \ (This)->lpVtbl -> get_compilandId(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_compiland_Proxy( IDiaSectionContrib * This, /* [retval][out] */ IDiaSymbol **pRetVal); void __RPC_STUB IDiaSectionContrib_get_compiland_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_addressSection_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_addressOffset_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_relativeVirtualAddress_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_virtualAddress_Proxy( IDiaSectionContrib * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSectionContrib_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_length_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_notPaged_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_notPaged_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_code_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_code_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_initializedData_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_initializedData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_uninitializedData_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_uninitializedData_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_remove_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_remove_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_comdat_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_comdat_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_discardable_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_discardable_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_notCached_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_notCached_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_share_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_share_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_execute_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_read_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_read_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_write_Proxy( IDiaSectionContrib * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSectionContrib_get_write_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_dataCrc_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_dataCrc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_relocationsCrc_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_relocationsCrc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSectionContrib_get_compilandId_Proxy( IDiaSectionContrib * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSectionContrib_get_compilandId_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSectionContrib_INTERFACE_DEFINED__ */ #ifndef __IDiaSegment_INTERFACE_DEFINED__ #define __IDiaSegment_INTERFACE_DEFINED__ /* interface IDiaSegment */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaSegment; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("0775B784-C75B-4449-848B-B7BD3159545B") IDiaSegment : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_frame( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_offset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_read( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_write( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_execute( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaSegmentVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaSegment * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaSegment * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaSegment * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_frame )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_offset )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_read )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_write )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_execute )( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaSegment * This, /* [retval][out] */ ULONGLONG *pRetVal); END_INTERFACE } IDiaSegmentVtbl; interface IDiaSegment { CONST_VTBL struct IDiaSegmentVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaSegment_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaSegment_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaSegment_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaSegment_get_frame(This,pRetVal) \ (This)->lpVtbl -> get_frame(This,pRetVal) #define IDiaSegment_get_offset(This,pRetVal) \ (This)->lpVtbl -> get_offset(This,pRetVal) #define IDiaSegment_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaSegment_get_read(This,pRetVal) \ (This)->lpVtbl -> get_read(This,pRetVal) #define IDiaSegment_get_write(This,pRetVal) \ (This)->lpVtbl -> get_write(This,pRetVal) #define IDiaSegment_get_execute(This,pRetVal) \ (This)->lpVtbl -> get_execute(This,pRetVal) #define IDiaSegment_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaSegment_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaSegment_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_frame_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_frame_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_offset_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_offset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_length_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_read_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_read_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_write_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_write_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_execute_Proxy( IDiaSegment * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaSegment_get_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_addressSection_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_relativeVirtualAddress_Proxy( IDiaSegment * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaSegment_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaSegment_get_virtualAddress_Proxy( IDiaSegment * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaSegment_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaSegment_INTERFACE_DEFINED__ */ #ifndef __IDiaInjectedSource_INTERFACE_DEFINED__ #define __IDiaInjectedSource_INTERFACE_DEFINED__ /* interface IDiaInjectedSource */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaInjectedSource; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("AE605CDC-8105-4a23-B710-3259F1E26112") IDiaInjectedSource : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_crc( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_length( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_filename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_objectFilename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualFilename( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_sourceCompression( /* [retval][out] */ DWORD *pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE get_source( /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; }; #else /* C style interface */ typedef struct IDiaInjectedSourceVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaInjectedSource * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaInjectedSource * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaInjectedSource * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_crc )( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IDiaInjectedSource * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_objectFilename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualFilename )( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sourceCompression )( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); HRESULT ( STDMETHODCALLTYPE *get_source )( IDiaInjectedSource * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); END_INTERFACE } IDiaInjectedSourceVtbl; interface IDiaInjectedSource { CONST_VTBL struct IDiaInjectedSourceVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaInjectedSource_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaInjectedSource_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaInjectedSource_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaInjectedSource_get_crc(This,pRetVal) \ (This)->lpVtbl -> get_crc(This,pRetVal) #define IDiaInjectedSource_get_length(This,pRetVal) \ (This)->lpVtbl -> get_length(This,pRetVal) #define IDiaInjectedSource_get_filename(This,pRetVal) \ (This)->lpVtbl -> get_filename(This,pRetVal) #define IDiaInjectedSource_get_objectFilename(This,pRetVal) \ (This)->lpVtbl -> get_objectFilename(This,pRetVal) #define IDiaInjectedSource_get_virtualFilename(This,pRetVal) \ (This)->lpVtbl -> get_virtualFilename(This,pRetVal) #define IDiaInjectedSource_get_sourceCompression(This,pRetVal) \ (This)->lpVtbl -> get_sourceCompression(This,pRetVal) #define IDiaInjectedSource_get_source(This,cbData,pcbData,data) \ (This)->lpVtbl -> get_source(This,cbData,pcbData,data) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_crc_Proxy( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaInjectedSource_get_crc_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_length_Proxy( IDiaInjectedSource * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaInjectedSource_get_length_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_filename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_filename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_objectFilename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_objectFilename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_virtualFilename_Proxy( IDiaInjectedSource * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaInjectedSource_get_virtualFilename_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_sourceCompression_Proxy( IDiaInjectedSource * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaInjectedSource_get_sourceCompression_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaInjectedSource_get_source_Proxy( IDiaInjectedSource * This, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaInjectedSource_get_source_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaInjectedSource_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0146 */ /* [local] */ enum __MIDL___MIDL_itf_dia2_0146_0001 { E_DIA_INPROLOG = ( HRESULT )(( unsigned long )1 << 31 | ( unsigned long )( LONG )0x6d << 16 | ( unsigned long )100), E_DIA_SYNTAX = E_DIA_INPROLOG + 1, E_DIA_FRAME_ACCESS = E_DIA_SYNTAX + 1, E_DIA_VALUE = E_DIA_FRAME_ACCESS + 1 } ; extern RPC_IF_HANDLE __MIDL_itf_dia2_0146_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0146_v0_0_s_ifspec; #ifndef __IDiaStackWalkFrame_INTERFACE_DEFINED__ #define __IDiaStackWalkFrame_INTERFACE_DEFINED__ /* interface IDiaStackWalkFrame */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalkFrame; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("97F0F1A6-E04E-4ea4-B4F9-B0D0E8D90F5D") IDiaStackWalkFrame : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE readMemory( /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkFrameVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalkFrame * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalkFrame * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalkFrame * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); HRESULT ( STDMETHODCALLTYPE *readMemory )( IDiaStackWalkFrame * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); END_INTERFACE } IDiaStackWalkFrameVtbl; interface IDiaStackWalkFrame { CONST_VTBL struct IDiaStackWalkFrameVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalkFrame_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalkFrame_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalkFrame_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalkFrame_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackWalkFrame_put_registerValue(This,index,NewVal) \ (This)->lpVtbl -> put_registerValue(This,index,NewVal) #define IDiaStackWalkFrame_readMemory(This,va,cbData,pcbData,data) \ (This)->lpVtbl -> readMemory(This,va,cbData,pcbData,data) #define IDiaStackWalkFrame_searchForReturnAddress(This,frame,returnAddress) \ (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) #define IDiaStackWalkFrame_searchForReturnAddressStart(This,frame,startAddress,returnAddress) \ (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_get_registerValue_Proxy( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackWalkFrame_get_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_put_registerValue_Proxy( IDiaStackWalkFrame * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaStackWalkFrame_put_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_readMemory_Proxy( IDiaStackWalkFrame * This, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaStackWalkFrame_readMemory_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_searchForReturnAddress_Proxy( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkFrame_searchForReturnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkFrame_searchForReturnAddressStart_Proxy( IDiaStackWalkFrame * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkFrame_searchForReturnAddressStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalkFrame_INTERFACE_DEFINED__ */ #ifndef __IDiaFrameData_INTERFACE_DEFINED__ #define __IDiaFrameData_INTERFACE_DEFINED__ /* interface IDiaFrameData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaFrameData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("A39184B7-6A36-42de-8EEC-7DF9F3F59F33") IDiaFrameData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressSection( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_addressOffset( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthBlock( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_program( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionParent( /* [retval][out] */ IDiaFrameData **pRetVal) = 0; virtual HRESULT STDMETHODCALLTYPE execute( IDiaStackWalkFrame *frame) = 0; }; #else /* C style interface */ typedef struct IDiaFrameDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaFrameData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaFrameData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaFrameData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressSection )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_addressOffset )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaFrameData * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthBlock )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_program )( IDiaFrameData * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionParent )( IDiaFrameData * This, /* [retval][out] */ IDiaFrameData **pRetVal); HRESULT ( STDMETHODCALLTYPE *execute )( IDiaFrameData * This, IDiaStackWalkFrame *frame); END_INTERFACE } IDiaFrameDataVtbl; interface IDiaFrameData { CONST_VTBL struct IDiaFrameDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaFrameData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaFrameData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaFrameData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaFrameData_get_addressSection(This,pRetVal) \ (This)->lpVtbl -> get_addressSection(This,pRetVal) #define IDiaFrameData_get_addressOffset(This,pRetVal) \ (This)->lpVtbl -> get_addressOffset(This,pRetVal) #define IDiaFrameData_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaFrameData_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaFrameData_get_lengthBlock(This,pRetVal) \ (This)->lpVtbl -> get_lengthBlock(This,pRetVal) #define IDiaFrameData_get_lengthLocals(This,pRetVal) \ (This)->lpVtbl -> get_lengthLocals(This,pRetVal) #define IDiaFrameData_get_lengthParams(This,pRetVal) \ (This)->lpVtbl -> get_lengthParams(This,pRetVal) #define IDiaFrameData_get_maxStack(This,pRetVal) \ (This)->lpVtbl -> get_maxStack(This,pRetVal) #define IDiaFrameData_get_lengthProlog(This,pRetVal) \ (This)->lpVtbl -> get_lengthProlog(This,pRetVal) #define IDiaFrameData_get_lengthSavedRegisters(This,pRetVal) \ (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) #define IDiaFrameData_get_program(This,pRetVal) \ (This)->lpVtbl -> get_program(This,pRetVal) #define IDiaFrameData_get_systemExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) #define IDiaFrameData_get_cplusplusExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) #define IDiaFrameData_get_functionStart(This,pRetVal) \ (This)->lpVtbl -> get_functionStart(This,pRetVal) #define IDiaFrameData_get_allocatesBasePointer(This,pRetVal) \ (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) #define IDiaFrameData_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaFrameData_get_functionParent(This,pRetVal) \ (This)->lpVtbl -> get_functionParent(This,pRetVal) #define IDiaFrameData_execute(This,frame) \ (This)->lpVtbl -> execute(This,frame) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_addressSection_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_addressSection_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_addressOffset_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_addressOffset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_relativeVirtualAddress_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_virtualAddress_Proxy( IDiaFrameData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaFrameData_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthBlock_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthBlock_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthLocals_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthLocals_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthParams_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthParams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_maxStack_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_maxStack_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthProlog_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthProlog_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_lengthSavedRegisters_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_lengthSavedRegisters_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_program_Proxy( IDiaFrameData * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaFrameData_get_program_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_systemExceptionHandling_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_systemExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_cplusplusExceptionHandling_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_cplusplusExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_functionStart_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_functionStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_allocatesBasePointer_Proxy( IDiaFrameData * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaFrameData_get_allocatesBasePointer_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_type_Proxy( IDiaFrameData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaFrameData_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaFrameData_get_functionParent_Proxy( IDiaFrameData * This, /* [retval][out] */ IDiaFrameData **pRetVal); void __RPC_STUB IDiaFrameData_get_functionParent_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaFrameData_execute_Proxy( IDiaFrameData * This, IDiaStackWalkFrame *frame); void __RPC_STUB IDiaFrameData_execute_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaFrameData_INTERFACE_DEFINED__ */ #ifndef __IDiaImageData_INTERFACE_DEFINED__ #define __IDiaImageData_INTERFACE_DEFINED__ /* interface IDiaImageData */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaImageData; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C8E40ED2-A1D9-4221-8692-3CE661184B44") IDiaImageData : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_relativeVirtualAddress( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_virtualAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_imageBase( /* [retval][out] */ ULONGLONG *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaImageDataVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaImageData * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaImageData * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaImageData * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_relativeVirtualAddress )( IDiaImageData * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_virtualAddress )( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageBase )( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); END_INTERFACE } IDiaImageDataVtbl; interface IDiaImageData { CONST_VTBL struct IDiaImageDataVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaImageData_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaImageData_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaImageData_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaImageData_get_relativeVirtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_relativeVirtualAddress(This,pRetVal) #define IDiaImageData_get_virtualAddress(This,pRetVal) \ (This)->lpVtbl -> get_virtualAddress(This,pRetVal) #define IDiaImageData_get_imageBase(This,pRetVal) \ (This)->lpVtbl -> get_imageBase(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_relativeVirtualAddress_Proxy( IDiaImageData * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaImageData_get_relativeVirtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_virtualAddress_Proxy( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaImageData_get_virtualAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaImageData_get_imageBase_Proxy( IDiaImageData * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaImageData_get_imageBase_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaImageData_INTERFACE_DEFINED__ */ #ifndef __IDiaTable_INTERFACE_DEFINED__ #define __IDiaTable_INTERFACE_DEFINED__ /* interface IDiaTable */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaTable; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("4A59FB77-ABAC-469b-A30B-9ECC85BFEF14") IDiaTable : public IEnumUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_name( /* [retval][out] */ BSTR *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element) = 0; }; #else /* C style interface */ typedef struct IDiaTableVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaTable * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaTable * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaTable * This); /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( IDiaTable * This, /* [in] */ ULONG celt, /* [out] */ IUnknown **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaTable * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaTable * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaTable * This, /* [out] */ IEnumUnknown **ppenum); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaTable * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IDiaTable * This, /* [retval][out] */ BSTR *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaTable * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaTable * This, /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element); END_INTERFACE } IDiaTableVtbl; interface IDiaTable { CONST_VTBL struct IDiaTableVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaTable_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaTable_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaTable_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaTable_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaTable_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaTable_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaTable_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #define IDiaTable_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaTable_get_name(This,pRetVal) \ (This)->lpVtbl -> get_name(This,pRetVal) #define IDiaTable_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaTable_Item(This,index,element) \ (This)->lpVtbl -> Item(This,index,element) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get__NewEnum_Proxy( IDiaTable * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaTable_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get_name_Proxy( IDiaTable * This, /* [retval][out] */ BSTR *pRetVal); void __RPC_STUB IDiaTable_get_name_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaTable_get_Count_Proxy( IDiaTable * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaTable_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaTable_Item_Proxy( IDiaTable * This, /* [in] */ DWORD index, /* [retval][out] */ IUnknown **element); void __RPC_STUB IDiaTable_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaTable_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumTables_INTERFACE_DEFINED__ #define __IDiaEnumTables_INTERFACE_DEFINED__ /* interface IDiaEnumTables */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumTables; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("C65C2B0A-1150-4d7a-AFCC-E05BF3DEE81E") IDiaEnumTables : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( /* [retval][out] */ IUnknown **pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Count( /* [retval][out] */ LONG *pRetVal) = 0; virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Item( /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table) = 0; virtual HRESULT STDMETHODCALLTYPE Next( ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ IDiaEnumTables **ppenum) = 0; }; #else /* C style interface */ typedef struct IDiaEnumTablesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumTables * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumTables * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumTables * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( IDiaEnumTables * This, /* [retval][out] */ IUnknown **pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IDiaEnumTables * This, /* [retval][out] */ LONG *pRetVal); /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Item )( IDiaEnumTables * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumTables * This, ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Skip )( IDiaEnumTables * This, /* [in] */ ULONG celt); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumTables * This); HRESULT ( STDMETHODCALLTYPE *Clone )( IDiaEnumTables * This, /* [out] */ IDiaEnumTables **ppenum); END_INTERFACE } IDiaEnumTablesVtbl; interface IDiaEnumTables { CONST_VTBL struct IDiaEnumTablesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumTables_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumTables_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumTables_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumTables_get__NewEnum(This,pRetVal) \ (This)->lpVtbl -> get__NewEnum(This,pRetVal) #define IDiaEnumTables_get_Count(This,pRetVal) \ (This)->lpVtbl -> get_Count(This,pRetVal) #define IDiaEnumTables_Item(This,index,table) \ (This)->lpVtbl -> Item(This,index,table) #define IDiaEnumTables_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumTables_Skip(This,celt) \ (This)->lpVtbl -> Skip(This,celt) #define IDiaEnumTables_Reset(This) \ (This)->lpVtbl -> Reset(This) #define IDiaEnumTables_Clone(This,ppenum) \ (This)->lpVtbl -> Clone(This,ppenum) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_get__NewEnum_Proxy( IDiaEnumTables * This, /* [retval][out] */ IUnknown **pRetVal); void __RPC_STUB IDiaEnumTables_get__NewEnum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_get_Count_Proxy( IDiaEnumTables * This, /* [retval][out] */ LONG *pRetVal); void __RPC_STUB IDiaEnumTables_get_Count_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IDiaEnumTables_Item_Proxy( IDiaEnumTables * This, /* [in] */ VARIANT index, /* [retval][out] */ IDiaTable **table); void __RPC_STUB IDiaEnumTables_Item_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Next_Proxy( IDiaEnumTables * This, ULONG celt, IDiaTable **rgelt, ULONG *pceltFetched); void __RPC_STUB IDiaEnumTables_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Skip_Proxy( IDiaEnumTables * This, /* [in] */ ULONG celt); void __RPC_STUB IDiaEnumTables_Skip_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Reset_Proxy( IDiaEnumTables * This); void __RPC_STUB IDiaEnumTables_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumTables_Clone_Proxy( IDiaEnumTables * This, /* [out] */ IDiaEnumTables **ppenum); void __RPC_STUB IDiaEnumTables_Clone_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumTables_INTERFACE_DEFINED__ */ #ifndef __Dia2Lib_LIBRARY_DEFINED__ #define __Dia2Lib_LIBRARY_DEFINED__ /* library Dia2Lib */ /* [helpstring][version][uuid] */ EXTERN_C const IID LIBID_Dia2Lib; EXTERN_C const CLSID CLSID_DiaSource; #ifdef __cplusplus class DECLSPEC_UUID("e60afbee-502d-46ae-858f-8272a09bd707") DiaSource; #endif EXTERN_C const CLSID CLSID_DiaSourceAlt; #ifdef __cplusplus class DECLSPEC_UUID("9c1c335f-d27d-4857-bda0-2c7364544706") DiaSourceAlt; #endif EXTERN_C const CLSID CLSID_DiaStackWalker; #ifdef __cplusplus class DECLSPEC_UUID("31495af6-0897-4f1e-8dac-1447f10174a1") DiaStackWalker; #endif #endif /* __Dia2Lib_LIBRARY_DEFINED__ */ /* interface __MIDL_itf_dia2_0151 */ /* [local] */ #define DiaTable_Symbols ( L"Symbols" ) #define DiaTable_Sections ( L"Sections" ) #define DiaTable_SrcFiles ( L"SourceFiles" ) #define DiaTable_LineNums ( L"LineNumbers" ) #define DiaTable_SegMap ( L"SegmentMap" ) #define DiaTable_Dbg ( L"Dbg" ) #define DiaTable_InjSrc ( L"InjectedSource" ) #define DiaTable_FrameData ( L"FrameData" ) extern RPC_IF_HANDLE __MIDL_itf_dia2_0151_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0151_v0_0_s_ifspec; #ifndef __IDiaPropertyStorage_INTERFACE_DEFINED__ #define __IDiaPropertyStorage_INTERFACE_DEFINED__ /* interface IDiaPropertyStorage */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaPropertyStorage; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("9d416f9c-e184-45b2-a4f0-ce517f719e9b") IDiaPropertyStorage : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE ReadMultiple( /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC rgpspec[ ], /* [length_is][size_is][out][in] */ PROPVARIANT rgvar[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames( /* [in] */ ULONG cpropid, /* [size_is][length_is][in] */ const PROPID rgpropid[ ], /* [size_is][length_is][out][in] */ BSTR rglpwstrName[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE Enum( /* [out] */ IEnumSTATPROPSTG **ppenum) = 0; virtual HRESULT STDMETHODCALLTYPE ReadDWORD( /* [in] */ PROPID id, /* [out] */ DWORD *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadLONG( /* [in] */ PROPID id, /* [out] */ LONG *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadBOOL( /* [in] */ PROPID id, /* [out] */ BOOL *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadULONGLONG( /* [in] */ PROPID id, /* [out] */ ULONGLONG *pValue) = 0; virtual HRESULT STDMETHODCALLTYPE ReadBSTR( /* [in] */ PROPID id, /* [out] */ BSTR *pValue) = 0; }; #else /* C style interface */ typedef struct IDiaPropertyStorageVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaPropertyStorage * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaPropertyStorage * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaPropertyStorage * This); HRESULT ( STDMETHODCALLTYPE *ReadMultiple )( IDiaPropertyStorage * This, /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC rgpspec[ ], /* [length_is][size_is][out][in] */ PROPVARIANT rgvar[ ]); HRESULT ( STDMETHODCALLTYPE *ReadPropertyNames )( IDiaPropertyStorage * This, /* [in] */ ULONG cpropid, /* [size_is][length_is][in] */ const PROPID rgpropid[ ], /* [size_is][length_is][out][in] */ BSTR rglpwstrName[ ]); HRESULT ( STDMETHODCALLTYPE *Enum )( IDiaPropertyStorage * This, /* [out] */ IEnumSTATPROPSTG **ppenum); HRESULT ( STDMETHODCALLTYPE *ReadDWORD )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ DWORD *pValue); HRESULT ( STDMETHODCALLTYPE *ReadLONG )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ LONG *pValue); HRESULT ( STDMETHODCALLTYPE *ReadBOOL )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BOOL *pValue); HRESULT ( STDMETHODCALLTYPE *ReadULONGLONG )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ ULONGLONG *pValue); HRESULT ( STDMETHODCALLTYPE *ReadBSTR )( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BSTR *pValue); END_INTERFACE } IDiaPropertyStorageVtbl; interface IDiaPropertyStorage { CONST_VTBL struct IDiaPropertyStorageVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaPropertyStorage_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaPropertyStorage_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaPropertyStorage_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgvar) \ (This)->lpVtbl -> ReadMultiple(This,cpspec,rgpspec,rgvar) #define IDiaPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) \ (This)->lpVtbl -> ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) #define IDiaPropertyStorage_Enum(This,ppenum) \ (This)->lpVtbl -> Enum(This,ppenum) #define IDiaPropertyStorage_ReadDWORD(This,id,pValue) \ (This)->lpVtbl -> ReadDWORD(This,id,pValue) #define IDiaPropertyStorage_ReadLONG(This,id,pValue) \ (This)->lpVtbl -> ReadLONG(This,id,pValue) #define IDiaPropertyStorage_ReadBOOL(This,id,pValue) \ (This)->lpVtbl -> ReadBOOL(This,id,pValue) #define IDiaPropertyStorage_ReadULONGLONG(This,id,pValue) \ (This)->lpVtbl -> ReadULONGLONG(This,id,pValue) #define IDiaPropertyStorage_ReadBSTR(This,id,pValue) \ (This)->lpVtbl -> ReadBSTR(This,id,pValue) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadMultiple_Proxy( IDiaPropertyStorage * This, /* [in] */ ULONG cpspec, /* [size_is][in] */ const PROPSPEC rgpspec[ ], /* [length_is][size_is][out][in] */ PROPVARIANT rgvar[ ]); void __RPC_STUB IDiaPropertyStorage_ReadMultiple_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadPropertyNames_Proxy( IDiaPropertyStorage * This, /* [in] */ ULONG cpropid, /* [size_is][length_is][in] */ const PROPID rgpropid[ ], /* [size_is][length_is][out][in] */ BSTR rglpwstrName[ ]); void __RPC_STUB IDiaPropertyStorage_ReadPropertyNames_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_Enum_Proxy( IDiaPropertyStorage * This, /* [out] */ IEnumSTATPROPSTG **ppenum); void __RPC_STUB IDiaPropertyStorage_Enum_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadDWORD_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ DWORD *pValue); void __RPC_STUB IDiaPropertyStorage_ReadDWORD_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadLONG_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ LONG *pValue); void __RPC_STUB IDiaPropertyStorage_ReadLONG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadBOOL_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BOOL *pValue); void __RPC_STUB IDiaPropertyStorage_ReadBOOL_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadULONGLONG_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ ULONGLONG *pValue); void __RPC_STUB IDiaPropertyStorage_ReadULONGLONG_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaPropertyStorage_ReadBSTR_Proxy( IDiaPropertyStorage * This, /* [in] */ PROPID id, /* [out] */ BSTR *pValue); void __RPC_STUB IDiaPropertyStorage_ReadBSTR_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaPropertyStorage_INTERFACE_DEFINED__ */ #ifndef __IDiaStackFrame_INTERFACE_DEFINED__ #define __IDiaStackFrame_INTERFACE_DEFINED__ /* interface IDiaStackFrame */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackFrame; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("fcea0205-66eb-4794-b38f-13852095c785") IDiaStackFrame : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_type( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_base( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_size( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_returnAddress( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_localsBase( /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthLocals( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthParams( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthProlog( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_lengthSavedRegisters( /* [retval][out] */ DWORD *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_systemExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_cplusplusExceptionHandling( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_functionStart( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_allocatesBasePointer( /* [retval][out] */ BOOL *pRetVal) = 0; virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_maxStack( /* [retval][out] */ DWORD *pRetVal) = 0; }; #else /* C style interface */ typedef struct IDiaStackFrameVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackFrame * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackFrame * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackFrame * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_base )( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_size )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_returnAddress )( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localsBase )( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthLocals )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthParams )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthProlog )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_lengthSavedRegisters )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_systemExceptionHandling )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cplusplusExceptionHandling )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_functionStart )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_allocatesBasePointer )( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_maxStack )( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); END_INTERFACE } IDiaStackFrameVtbl; interface IDiaStackFrame { CONST_VTBL struct IDiaStackFrameVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackFrame_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackFrame_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackFrame_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackFrame_get_type(This,pRetVal) \ (This)->lpVtbl -> get_type(This,pRetVal) #define IDiaStackFrame_get_base(This,pRetVal) \ (This)->lpVtbl -> get_base(This,pRetVal) #define IDiaStackFrame_get_size(This,pRetVal) \ (This)->lpVtbl -> get_size(This,pRetVal) #define IDiaStackFrame_get_returnAddress(This,pRetVal) \ (This)->lpVtbl -> get_returnAddress(This,pRetVal) #define IDiaStackFrame_get_localsBase(This,pRetVal) \ (This)->lpVtbl -> get_localsBase(This,pRetVal) #define IDiaStackFrame_get_lengthLocals(This,pRetVal) \ (This)->lpVtbl -> get_lengthLocals(This,pRetVal) #define IDiaStackFrame_get_lengthParams(This,pRetVal) \ (This)->lpVtbl -> get_lengthParams(This,pRetVal) #define IDiaStackFrame_get_lengthProlog(This,pRetVal) \ (This)->lpVtbl -> get_lengthProlog(This,pRetVal) #define IDiaStackFrame_get_lengthSavedRegisters(This,pRetVal) \ (This)->lpVtbl -> get_lengthSavedRegisters(This,pRetVal) #define IDiaStackFrame_get_systemExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_systemExceptionHandling(This,pRetVal) #define IDiaStackFrame_get_cplusplusExceptionHandling(This,pRetVal) \ (This)->lpVtbl -> get_cplusplusExceptionHandling(This,pRetVal) #define IDiaStackFrame_get_functionStart(This,pRetVal) \ (This)->lpVtbl -> get_functionStart(This,pRetVal) #define IDiaStackFrame_get_allocatesBasePointer(This,pRetVal) \ (This)->lpVtbl -> get_allocatesBasePointer(This,pRetVal) #define IDiaStackFrame_get_maxStack(This,pRetVal) \ (This)->lpVtbl -> get_maxStack(This,pRetVal) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_type_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_type_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_base_Proxy( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_base_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_size_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_size_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_returnAddress_Proxy( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_returnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_localsBase_Proxy( IDiaStackFrame * This, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackFrame_get_localsBase_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthLocals_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthLocals_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthParams_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthParams_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthProlog_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthProlog_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_lengthSavedRegisters_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_lengthSavedRegisters_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_systemExceptionHandling_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_systemExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_cplusplusExceptionHandling_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_cplusplusExceptionHandling_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_functionStart_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_functionStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_allocatesBasePointer_Proxy( IDiaStackFrame * This, /* [retval][out] */ BOOL *pRetVal); void __RPC_STUB IDiaStackFrame_get_allocatesBasePointer_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackFrame_get_maxStack_Proxy( IDiaStackFrame * This, /* [retval][out] */ DWORD *pRetVal); void __RPC_STUB IDiaStackFrame_get_maxStack_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackFrame_INTERFACE_DEFINED__ */ #ifndef __IDiaEnumStackFrames_INTERFACE_DEFINED__ #define __IDiaEnumStackFrames_INTERFACE_DEFINED__ /* interface IDiaEnumStackFrames */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaEnumStackFrames; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("ec9d461d-ce74-4711-a020-7d8f9a1dd255") IDiaEnumStackFrames : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [out] */ IDiaStackFrame **rgelt, /* [out] */ ULONG *pceltFetched) = 0; virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; }; #else /* C style interface */ typedef struct IDiaEnumStackFramesVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaEnumStackFrames * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaEnumStackFrames * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaEnumStackFrames * This); HRESULT ( STDMETHODCALLTYPE *Next )( IDiaEnumStackFrames * This, /* [in] */ ULONG celt, /* [out] */ IDiaStackFrame **rgelt, /* [out] */ ULONG *pceltFetched); HRESULT ( STDMETHODCALLTYPE *Reset )( IDiaEnumStackFrames * This); END_INTERFACE } IDiaEnumStackFramesVtbl; interface IDiaEnumStackFrames { CONST_VTBL struct IDiaEnumStackFramesVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaEnumStackFrames_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaEnumStackFrames_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaEnumStackFrames_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaEnumStackFrames_Next(This,celt,rgelt,pceltFetched) \ (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched) #define IDiaEnumStackFrames_Reset(This) \ (This)->lpVtbl -> Reset(This) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaEnumStackFrames_Next_Proxy( IDiaEnumStackFrames * This, /* [in] */ ULONG celt, /* [out] */ IDiaStackFrame **rgelt, /* [out] */ ULONG *pceltFetched); void __RPC_STUB IDiaEnumStackFrames_Next_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaEnumStackFrames_Reset_Proxy( IDiaEnumStackFrames * This); void __RPC_STUB IDiaEnumStackFrames_Reset_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaEnumStackFrames_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_dia2_0155 */ /* [local] */ typedef /* [public] */ struct __MIDL___MIDL_itf_dia2_0155_0001 { DWORD ulOffStart; DWORD cbProcSize; DWORD cdwLocals; WORD cdwParams; WORD cdwFlags; } FPODATA; extern RPC_IF_HANDLE __MIDL_itf_dia2_0155_v0_0_c_ifspec; extern RPC_IF_HANDLE __MIDL_itf_dia2_0155_v0_0_s_ifspec; #ifndef __IDiaStackWalkHelper_INTERFACE_DEFINED__ #define __IDiaStackWalkHelper_INTERFACE_DEFINED__ /* interface IDiaStackWalkHelper */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalkHelper; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("43dbf56f-7f7f-4a09-9c83-5bab344f1c12") IDiaStackWalkHelper : public IUnknown { public: virtual /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_registerValue( /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal) = 0; virtual /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_registerValue( /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal) = 0; virtual HRESULT STDMETHODCALLTYPE readMemory( /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddress( /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE searchForReturnAddressStart( /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress) = 0; virtual HRESULT STDMETHODCALLTYPE frameForVA( /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame) = 0; virtual HRESULT STDMETHODCALLTYPE symbolForVA( /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkHelperVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalkHelper * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalkHelper * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalkHelper * This); /* [id][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_registerValue )( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); /* [id][helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_registerValue )( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); HRESULT ( STDMETHODCALLTYPE *readMemory )( IDiaStackWalkHelper * This, /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddress )( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *searchForReturnAddressStart )( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); HRESULT ( STDMETHODCALLTYPE *frameForVA )( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame); HRESULT ( STDMETHODCALLTYPE *symbolForVA )( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol); END_INTERFACE } IDiaStackWalkHelperVtbl; interface IDiaStackWalkHelper { CONST_VTBL struct IDiaStackWalkHelperVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalkHelper_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalkHelper_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalkHelper_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalkHelper_get_registerValue(This,index,pRetVal) \ (This)->lpVtbl -> get_registerValue(This,index,pRetVal) #define IDiaStackWalkHelper_put_registerValue(This,index,NewVal) \ (This)->lpVtbl -> put_registerValue(This,index,NewVal) #define IDiaStackWalkHelper_readMemory(This,type,va,cbData,pcbData,data) \ (This)->lpVtbl -> readMemory(This,type,va,cbData,pcbData,data) #define IDiaStackWalkHelper_searchForReturnAddress(This,frame,returnAddress) \ (This)->lpVtbl -> searchForReturnAddress(This,frame,returnAddress) #define IDiaStackWalkHelper_searchForReturnAddressStart(This,frame,startAddress,returnAddress) \ (This)->lpVtbl -> searchForReturnAddressStart(This,frame,startAddress,returnAddress) #define IDiaStackWalkHelper_frameForVA(This,va,ppFrame) \ (This)->lpVtbl -> frameForVA(This,va,ppFrame) #define IDiaStackWalkHelper_symbolForVA(This,va,ppSymbol) \ (This)->lpVtbl -> symbolForVA(This,va,ppSymbol) #endif /* COBJMACROS */ #endif /* C style interface */ /* [id][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_get_registerValue_Proxy( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [retval][out] */ ULONGLONG *pRetVal); void __RPC_STUB IDiaStackWalkHelper_get_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); /* [id][helpstring][propput] */ HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_put_registerValue_Proxy( IDiaStackWalkHelper * This, /* [in] */ DWORD index, /* [in] */ ULONGLONG NewVal); void __RPC_STUB IDiaStackWalkHelper_put_registerValue_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_readMemory_Proxy( IDiaStackWalkHelper * This, /* [in] */ enum MemoryTypeEnum type, /* [in] */ ULONGLONG va, /* [in] */ DWORD cbData, /* [out] */ DWORD *pcbData, /* [length_is][size_is][out] */ BYTE data[ ]); void __RPC_STUB IDiaStackWalkHelper_readMemory_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_searchForReturnAddress_Proxy( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkHelper_searchForReturnAddress_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_searchForReturnAddressStart_Proxy( IDiaStackWalkHelper * This, /* [in] */ IDiaFrameData *frame, /* [in] */ ULONGLONG startAddress, /* [out] */ ULONGLONG *returnAddress); void __RPC_STUB IDiaStackWalkHelper_searchForReturnAddressStart_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_frameForVA_Proxy( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaFrameData **ppFrame); void __RPC_STUB IDiaStackWalkHelper_frameForVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); HRESULT STDMETHODCALLTYPE IDiaStackWalkHelper_symbolForVA_Proxy( IDiaStackWalkHelper * This, /* [in] */ ULONGLONG va, /* [out] */ IDiaSymbol **ppSymbol); void __RPC_STUB IDiaStackWalkHelper_symbolForVA_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalkHelper_INTERFACE_DEFINED__ */ #ifndef __IDiaStackWalker_INTERFACE_DEFINED__ #define __IDiaStackWalker_INTERFACE_DEFINED__ /* interface IDiaStackWalker */ /* [unique][helpstring][local][uuid][object] */ EXTERN_C const IID IID_IDiaStackWalker; #if defined(__cplusplus) && !defined(CINTERFACE) MIDL_INTERFACE("14341190-eff2-46af-9290-14fa980277b0") IDiaStackWalker : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE getEnumFrames( /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum) = 0; }; #else /* C style interface */ typedef struct IDiaStackWalkerVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IDiaStackWalker * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( IDiaStackWalker * This); ULONG ( STDMETHODCALLTYPE *Release )( IDiaStackWalker * This); HRESULT ( STDMETHODCALLTYPE *getEnumFrames )( IDiaStackWalker * This, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); END_INTERFACE } IDiaStackWalkerVtbl; interface IDiaStackWalker { CONST_VTBL struct IDiaStackWalkerVtbl *lpVtbl; }; #ifdef COBJMACROS #define IDiaStackWalker_QueryInterface(This,riid,ppvObject) \ (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) #define IDiaStackWalker_AddRef(This) \ (This)->lpVtbl -> AddRef(This) #define IDiaStackWalker_Release(This) \ (This)->lpVtbl -> Release(This) #define IDiaStackWalker_getEnumFrames(This,pHelper,ppEnum) \ (This)->lpVtbl -> getEnumFrames(This,pHelper,ppEnum) #endif /* COBJMACROS */ #endif /* C style interface */ HRESULT STDMETHODCALLTYPE IDiaStackWalker_getEnumFrames_Proxy( IDiaStackWalker * This, /* [in] */ IDiaStackWalkHelper *pHelper, /* [out] */ IDiaEnumStackFrames **ppEnum); void __RPC_STUB IDiaStackWalker_getEnumFrames_Stub( IRpcStubBuffer *This, IRpcChannelBuffer *_pRpcChannelBuffer, PRPC_MESSAGE _pRpcMessage, DWORD *_pdwStubPhase); #endif /* __IDiaStackWalker_INTERFACE_DEFINED__ */ /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ #ifdef __cplusplus } #endif #endif ================================================ FILE: Addition/DiaSDK.NET2003/include/diacreate.h ================================================ // diacreate.h - creation helper functions for DIA initialization //----------------------------------------------------------------- // // Copyright Microsoft Corporation. All Rights Reserved. // //--------------------------------------------------------------- #ifndef _DIACREATE_H_ #define _DIACREATE_H_ // // Create a dia data source object from the dia dll (by dll name - does not access the registry). // HRESULT STDMETHODCALLTYPE NoRegCoCreate( const char*dllName, REFCLSID rclsid, REFIID riid, void **ppv); // // Create a dia data source object from the dia dll (looks up the class id in the registry). // HRESULT STDMETHODCALLTYPE NoOleCoCreate( REFCLSID rclsid, REFIID riid, void **ppv); #endif ================================================ FILE: Addition/SyserDebugger/SDSymbol.h ================================================ #ifndef _SYSER_DEBUG_SYMBOLS_H_ #define _SYSER_DEBUG_SYMBOLS_H_ #define SECTION_ALIGN_SIZE (16) typedef struct _SDBaseTypeName { DWORD Type; char *Name; }SDBASETYPENAME; extern SDBASETYPENAME BaseTypeNameStruct[27]; enum SDTYPEIDS { SD_BASIC = 0, SD_POINTER, SD_REFERENCE, SD_ARRAY, SD_MANAGED, SD_CUSTOM, SD_ENUMERATION, SD_STRUCT, SD_CLASS, SD_UNION, SD_TYPEDEF, SD_FUNCTIONTYPE, SD_UDT, SD_BASECLASS, SD_FRIEND, SD_VTABLE, SD_THUNK, SD_FUNCTIONDATA, SD_DATA, SD_BLOCK, SD_MAX_TYPEIDS, }; typedef struct stSDThunk { union { char *Name; DWORD StringTableIndex; }uName; DWORD thunkOrdinal; DWORD Rva; }SDTHUNK,*PSDTHUNK; typedef struct _SDCallConventionPair { DWORD Type; char* Name; }SDCALLCONVENTIONPAIR,*PSDCALLCONVENTIONPAIR; typedef struct stSDPublicSymbol { union { char *Name; DWORD StringTableIndex; }uName; union { char *Name; DWORD StringTableIndex; }UndecoratedName; DWORD Rva; DWORD Length; DWORD LocationType:16; DWORD IsString:1; DWORD IsUnicodeString:1; DWORD IsExportEntry:1; DWORD IsImportEntry:1; DWORD IsMangedCode:1; DWORD IsMsil:1; DWORD IsFunction:1; DWORD IsInCode:1; DWORD IsVftable:1; DWORD IsComVftable:1; bool operator ==(const struct stSDPublicSymbol dest)const { return Rva==dest.Rva; } bool operator <(const struct stSDPublicSymbol dest)const { return Rva RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001a8 424 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ unsigned long NextSavepoint; /* off 0x0140 */ struct _KTM* Tm; /* off 0x0148 */ __int64 CommitReservation; /* off 0x0150 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x01a0 */ unsigned long TransactionHistoryCount; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionSavepointing =0x0000000b ,//0 KTransactionPrePrepared =0x0000000c ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentSavepointing =0x0000010d ,//0 KEnlistmentAborting =0x0000010e ,//0 KEnlistmentReadOnly =0x0000010f ,//0 KEnlistmentOutcomeUnavailable =0x00000110 ,//0 KEnlistmentOffline =0x00000111 ,//0 KEnlistmentPrePrepared =0x00000112 ,//0 KEnlistmentInitialized =0x00000113 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_WORKITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _TEB /* sizeof 00000ff8 4088 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char SpareBool0; /* off 0x0f75 */ unsigned char SpareBool1; /* off 0x0f76 */ unsigned char SpareBool2; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short DbgSafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short DbgInDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short DbgHasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short DbgSkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short DbgWerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short DbgRanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short DbgClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short DbgSuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short SpareSameTebBits:8 /* start bit 8 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long ProcessRundown; /* off 0x0fe0 */ unsigned __int64 LastSwitchTime; /* off 0x0fe8 */ unsigned __int64 TotalSwitchOutTime; /* off 0x0ff0 */ union _LARGE_INTEGER WaitReasonBitMap; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ union _ULARGE_INTEGER Time; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ unsigned short* DeviceName; /* off 0x0018 */ unsigned short* DriverName; /* off 0x001c */ unsigned long ChildCount; /* off 0x0020 */ unsigned long ActiveChild; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0038 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0048 */ enum _PNP_DEVNODE_STATE State; /* off 0x004c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0050 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00a0 */ unsigned long StateHistoryEntry; /* off 0x00a4 */ long CompletionStatus; /* off 0x00a8 */ struct _IRP* PendingIrp; /* off 0x00ac */ unsigned long Flags; /* off 0x00b0 */ unsigned long UserFlags; /* off 0x00b4 */ unsigned long Problem; /* off 0x00b8 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00bc */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00c0 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00c4 */ struct _UNICODE_STRING InstancePath; /* off 0x00cc */ struct _UNICODE_STRING ServiceName; /* off 0x00d4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00d8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00dc */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00e0 */ unsigned long BusNumber; /* off 0x00e4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00e8 */ unsigned long ChildBusNumber; /* off 0x00ec */ unsigned short ChildBusTypeIndex; /* off 0x00ee */ unsigned char RemovalPolicy; /* off 0x00ef */ unsigned char HardwareRemovalPolicy; /* off 0x00f0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00f8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0100 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0108 */ unsigned short NoTranslatorMask; /* off 0x010a */ unsigned short QueryTranslatorMask; /* off 0x010c */ unsigned short NoArbiterMask; /* off 0x010e */ unsigned short QueryArbiterMask; /* off 0x0110 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x0114 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0118 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x011c */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0120 */ unsigned long CapabilityFlags; /* off 0x0124 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x0134 */ unsigned long DisableableDepends; /* off 0x0138 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0140 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0148 */ unsigned long DriverUnloadRetryCount; /* off 0x014c */ struct _DEVICE_NODE* PreviousParent; /* off 0x0150 */ unsigned long DeletedChildren; /* off 0x0154 */ unsigned long NumaNodeIndex; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _VOLUME_CACHE_MAP /* sizeof 00000018 24 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; }; struct _SHARED_CACHE_MAP /* sizeof 00000140 320 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0130 */ void* WriteBehindWorkQueueEntry; /* off 0x0134 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0138 */ unsigned long ProcImagePathHash; /* off 0x013c */ unsigned long MappedWritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long MappingCount; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ struct _LIST_ENTRY CoalescedWorkQueueLinks; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x0014 */ unsigned char Function; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long InBlockDeccommits; /* off 0x0044 */ unsigned long InBlockDeccomitSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0124 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; /* off 0x0020 */ unsigned long Spare0; /* off 0x0024 */ unsigned long Spare1; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; union { /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY Entry; /* off 0x0038 */ struct _SINGLE_LIST_ENTRY SlistEntry; struct { /* off 0x0038 */ struct _WMI_BUFFER_HEADER* NextBuffer; /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000270 624 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ void* LogFileHandle; /* off 0x000c */ struct _ETHREAD* LoggerThread; /* off 0x0010 */ long LoggerStatus; /* off 0x0014 */ unsigned long LoggerId; /* off 0x0018 */ void* NBQHead; /* off 0x001c */ void* OverflowNBQHead; /* off 0x0020 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0028 */ union _SLIST_HEADER GlobalList; /* off 0x0030 */ struct _UNICODE_STRING LoggerName; /* off 0x0038 */ struct _UNICODE_STRING LogFileName; /* off 0x0040 */ struct _UNICODE_STRING LogFilePattern; /* off 0x0048 */ struct _UNICODE_STRING NewLogFileName; /* off 0x0050 */ unsigned long ClockType; /* off 0x0054 */ long CollectionOn; /* off 0x0058 */ unsigned long MaximumFileSize; /* off 0x005c */ unsigned long LoggerMode; /* off 0x0060 */ unsigned long LastFlushedBuffer; /* off 0x0064 */ unsigned long FlushTimer; /* off 0x0068 */ union _LARGE_INTEGER ByteOffset; /* off 0x0070 */ union _LARGE_INTEGER FlushTimeStamp; /* off 0x0078 */ unsigned long MinimumBuffers; /* off 0x007c */ long BuffersAvailable; /* off 0x0080 */ long NumberOfBuffers; /* off 0x0084 */ unsigned long MaximumBuffers; /* off 0x0088 */ unsigned long EventsLost; /* off 0x008c */ unsigned long BuffersWritten; /* off 0x0090 */ unsigned long LogBuffersLost; /* off 0x0094 */ unsigned long RealTimeBuffersDelivered; /* off 0x0098 */ unsigned long RealTimeBuffersLost; /* off 0x009c */ unsigned long BufferSize; /* off 0x00a0 */ unsigned long MaximumEventSize; /* off 0x00a4 */ long* SequencePtr; /* off 0x00a8 */ unsigned long LocalSequence; /* off 0x00ac */ struct _GUID InstanceGuid; /* off 0x00bc */ __int64( __stdcall *GetCpuClock)(); /* off 0x00c0 */ long FileCounter; /* off 0x00c4 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00c8 */ enum _POOL_TYPE PoolType; /* off 0x00d0 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e0 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00e4 */ struct _LIST_ENTRY Consumers; /* off 0x00ec */ unsigned long NumConsumers; /* off 0x00f0 */ struct _LIST_ENTRY Connecting; /* off 0x00f8 */ unsigned char NewConsumer; /* off 0x00fc */ void* RealtimeLogfileHandle; /* off 0x0100 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0108 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0110 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0120 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0128 */ unsigned long RealtimeBuffersSaved; /* off 0x0130 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0140 */ unsigned long RealtimeDisconnectProcessId; /* off 0x0144 */ unsigned long RealtimeDisconnectConsumerId; /* off 0x0148 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x014c */ struct _KEVENT LoggerEvent; /* off 0x015c */ struct _KEVENT FlushEvent; /* off 0x016c */ struct _KDPC FlushDpc; /* off 0x018c */ struct _KMUTANT LoggerMutex; /* off 0x01ac */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01e8 */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x01f0 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0238 */ __int64 BufferSequenceNumber; /* off 0x0240 */ long AcceptNewEvents; union { /* off 0x0244 */ unsigned long Flags; struct { /* off 0x0244 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0244 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0244 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0244 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0244 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0244 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0244 */ unsigned long NoMoreEnable:1 /* start bit 6 */; }; }; union { /* off 0x0248 */ unsigned long RequestFlag; struct { /* off 0x0248 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0248 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0248 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0248 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0248 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; }; }; /* off 0x024c */ unsigned short StackTraceFilterHookCount; /* off 0x024e */ unsigned short StackTraceFilter[16]; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; /* off 0x0028 */ struct _TRACE_ENABLE_CONTEXT LegacyEnableContext; /* off 0x0030 */ unsigned long LegacyProviderEnabled; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001a 26 */ { /* off 0x0000 */ unsigned char PerUserPolicy[26]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001a */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e8 488 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x00c0 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x00c4 */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c8 */ struct _LUID OriginatingLogonSession; /* off 0x00d0 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0158 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01e0 */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; enum _WAIT_TYPE { WaitAll =0x00000000 ,//0 WaitAny =0x00000001 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; /* off 0x004c */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0038 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x001c */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000270 624 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ char Number; /* off 0x0035 */ unsigned char ShareVector; /* off 0x0038 */ enum _KINTERRUPT_MODE Mode; /* off 0x003c */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0040 */ unsigned long ServiceCount; /* off 0x0044 */ unsigned long DispatchCount; /* off 0x0048 */ unsigned __int64 Rsvd1; /* off 0x0050 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ struct _CMHIVE* CmHive2; /* off 0x001c */ unsigned char ThreadFinished; /* off 0x001d */ unsigned char ThreadStarted; /* off 0x001e */ unsigned char Allocate; /* off 0x001f */ unsigned char WinPERequired; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000088 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned char Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderMaximum =0x0000001c ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ unsigned long NonExtendedPtes; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x0024 */ struct _MSUBSECTION* LastSubsectionHint; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005e8 1512 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ void* Extension; /* off 0x0098 */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x009c */ void* ConflictCallbackContext; /* off 0x00a0 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a4 */ wchar PdoDescriptionString[336]; /* off 0x0344 */ char PdoSymbolicNameString[672]; /* off 0x05e4 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d8 216 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPool =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaMaximumType =0x0000000c ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _PCI_HOTPLUG_SLOT_INTERRUPT { SlotInterruptPresenceDetect =0x00000000 ,//0 SlotInterruptLatchChange =0x00000001 ,//0 SlotInterruptAttentionButton =0x00000002 ,//0 SlotInterruptPowerFault =0x00000003 ,//0 SlotInterruptMaximum =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _KUSER_SHARED_DATA /* sizeof 000003b8 952 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long SystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long SpareBits:27 /* start bit 5 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[8]; /* off 0x0390 */ unsigned long HeapTracingPid[2]; /* off 0x0398 */ unsigned long CritSecTracingPid[2]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; union { /* off 0x03a8 */ unsigned __int64 AffinityPad; /* off 0x03a8 */ unsigned long ActiveProcessorAffinity; }; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POP_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_DISPLAY_RESUME_CONTEXT* DisplayResumeContext; /* off 0x003c */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemContext; /* off 0x0054 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Code; /* off 0x0004 */ unsigned long Parameter1; /* off 0x0008 */ unsigned long Parameter2; /* off 0x000c */ unsigned long Parameter3; /* off 0x0010 */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000148 328 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000188 392 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0168 */ long NotifyGdiLevelForPowerOn; /* off 0x016c */ long NotifyGdiLevelForResumeUI; /* off 0x0170 */ struct _LIST_ENTRY Pending; /* off 0x0178 */ long Status; /* off 0x017c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0180 */ unsigned char Waking; /* off 0x0181 */ unsigned char Cancelled; /* off 0x0182 */ unsigned char IgnoreErrors; /* off 0x0183 */ unsigned char IgnoreNotImplemented; /* off 0x0184 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_DISPLAY_RESUME_CONTEXT /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ struct _ETHREAD* WorkerThread; /* off 0x0014 */ struct _KEVENT PrepareUIEvent; /* off 0x0024 */ struct _KEVENT PowerOnEvent; /* off 0x0034 */ struct _KEVENT DoneEvent; /* off 0x0044 */ unsigned long WorkerQueued; /* off 0x0048 */ unsigned long WorkerAbort; /* off 0x004c */ unsigned long NoResumeUI; }; struct _PO_HIBER_PERF /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; /* off 0x0048 */ unsigned __int64 ResumeAppStartTime; /* off 0x0050 */ unsigned __int64 ResumeAppEndTime; /* off 0x0058 */ unsigned __int64 HiberFileResumeTime; }; struct _POP_HIBER_CONTEXT /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ void* CurrentMcb; /* off 0x0050 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0054 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0058 */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ struct _PO_MEMORY_RANGE_ARRAY* TableHead; /* off 0x0074 */ unsigned char* CompressionWorkspace; /* off 0x0078 */ unsigned char* CompressedWriteBuffer; /* off 0x007c */ unsigned long* PerformanceStats; /* off 0x0080 */ void* CompressionBlock; /* off 0x0084 */ void* DmaIO; /* off 0x0088 */ void* TemporaryHeap; /* off 0x0090 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00f0 */ struct _MDL* BootLoaderLogMdl; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long TotalPages; /* off 0x0050 */ unsigned long FirstTablePage; /* off 0x0054 */ unsigned long LastFilePage; /* off 0x0058 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00b8 */ unsigned long NoBootLoaderLogPages; /* off 0x00bc */ unsigned long BootLoaderLogPages[8]; /* off 0x00dc */ unsigned long TotalPhysicalMemoryCount; }; struct _PO_MEMORY_RANGE_ARRAY_RANGE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PageNo; /* off 0x0004 */ unsigned long StartPage; /* off 0x0008 */ unsigned long EndPage; /* off 0x000c */ unsigned long CheckSum; }; struct _PO_MEMORY_RANGE_ARRAY_LINK /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY* Next; /* off 0x0004 */ unsigned long NextTable; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long EntryCount; }; struct _PO_MEMORY_RANGE_ARRAY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_RANGE Range; /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_LINK Link; }; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0030 */ union _SLIST_HEADER PoolTrackers; /* off 0x0038 */ unsigned long CurrentPagedPoolAllocations; /* off 0x003c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0040 */ unsigned long PeakPagedPoolAllocations; /* off 0x0044 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PagedBytes; /* off 0x004c */ unsigned long NonPagedBytes; /* off 0x0050 */ unsigned long PeakPagedBytes; /* off 0x0054 */ unsigned long PeakNonPagedBytes; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ struct _MMPTE FreePteHead; /* off 0x0008 */ struct _MMPTE FreePteTail; /* off 0x000c */ long PagesInUse; /* off 0x0010 */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _MMPTE* FirstFreePte; /* off 0x0004 */ unsigned long* FailureCount; /* off 0x0008 */ struct _KGUARDED_MUTEX* GlobalMutex; /* off 0x000c */ unsigned long TbFlushTimeStamp; }; struct _MM_SESSION_SPACE /* sizeof 00001e80 7808 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KEVENT AttachEvent; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0db8 */ struct _MMWSLE* Wsle; /* off 0x0dbc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0dc0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1df4 */ struct _MMPTE* PageTables; /* off 0x1df8 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e10 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e30 */ long PoolBigEntriesInUse; /* off 0x1e34 */ unsigned long PagedPoolPdeCount; /* off 0x1e38 */ unsigned long SpecialPoolPdeCount; /* off 0x1e3c */ unsigned long DynamicSessionPdeCount; /* off 0x1e40 */ struct _MMPTE SessionPteFreeHead; /* off 0x1e44 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e54 */ void* PoolTrackTableExpansion; /* off 0x1e58 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1e5c */ void* PoolTrackBigPages; /* off 0x1e60 */ unsigned long PoolTrackBigPagesSize; /* off 0x1e64 */ struct _RTL_BITMAP SessionPoolPdes; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; struct _VI_DEADLOCK_NODE /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ void* StackTrace[8]; /* off 0x0048 */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; enum _KTHREAD_STATE { Initialized =0x00000000 ,//0 Ready =0x00000001 ,//0 Running =0x00000002 ,//0 Standby =0x00000003 ,//0 Terminated =0x00000004 ,//0 Waiting =0x00000005 ,//0 Transition =0x00000006 ,//0 DeferredReady =0x00000007 ,//0 GateWait =0x00000008 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _VI_DEADLOCK_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ unsigned long CacheReductionInProgress; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned char PowerSettingChanged; /* off 0x0014 */ unsigned long DataLength; /* off 0x0018 */ unsigned char Data[1]; } PowerSettingNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 InvalidIDEvent =0x00000009 ,//0 PowerSettingChange =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 MaxRegNtNotifyClass =0x00000029 ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; ================================================ FILE: Addition/WindowKernel/ntkrnlmp_6.0.6001.18000.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Private:31 /* start bit 1 */; } s; } u; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_TASK /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; }; struct _TP_DIRECT /* sizeof 00000004 4 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Absolute; /* off 0x0001 */ unsigned char NpxIrql; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char Size; /* off 0x0002 */ unsigned char Hand; }; union { /* off 0x0003 */ unsigned char Inserted; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 00000208 520 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 LastTimeCheck; /* off 0x0010 */ unsigned __int64 IdleTimeAccumulated; union { /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 IdleTransitionTime; } Native; /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 LastIdleCheck; } Hv; }; /* off 0x0020 */ struct PPM_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ struct _PPM_PERF_STATES* PerfStates; /* off 0x0028 */ unsigned long LastKernelUserTime; /* off 0x002c */ unsigned long LastIdleThreadKTime; /* off 0x0030 */ unsigned __int64 LastGlobalTimeHv; /* off 0x0038 */ unsigned __int64 LastProcessorTimeHv; /* off 0x0040 */ unsigned char ThermalConstraint; /* off 0x0041 */ unsigned char LastBusyPercentage; /* off 0x0042 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short PStateDomainIdleAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0048 */ struct _KTIMER PerfTimer; /* off 0x0070 */ struct _KDPC PerfDpc; /* off 0x0090 */ unsigned long LastSysTime; /* off 0x0094 */ struct _KPRCB* PStateMaster; /* off 0x0098 */ unsigned long PStateSet; /* off 0x009c */ unsigned long CurrentPState; /* off 0x00a0 */ unsigned long DesiredPState; /* off 0x00a4 */ unsigned long PStateIdleStartTime; /* off 0x00a8 */ unsigned long PStateIdleTime; /* off 0x00ac */ unsigned long LastPStateIdleTime; /* off 0x00b0 */ unsigned long PStateStartTime; /* off 0x00b4 */ unsigned long DiaIndex; /* off 0x00b8 */ unsigned long Reserved0; /* off 0x00bc */ unsigned long WmiDispatchPtr; /* off 0x00c0 */ long WmiInterfaceEnabled; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00002008 8200 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char Number; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; union { /* off 0x001a */ unsigned short CpuStep; struct { /* off 0x001a */ unsigned char CpuStepping; /* off 0x001b */ unsigned char CpuModel; }; }; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned long CFlushSize; /* off 0x03c0 */ unsigned char CoresPerPhysicalProcessor; /* off 0x03c1 */ unsigned char LogicalProcessorsPerCore; /* off 0x03c2 */ unsigned char PrcbPad0[2]; /* off 0x03c4 */ unsigned long MHz; /* off 0x03c8 */ unsigned char PrcbPad1[80]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[49]; /* off 0x05a0 */ struct _KTHREAD* NpxThread; /* off 0x05a4 */ unsigned long InterruptCount; /* off 0x05a8 */ unsigned long KernelTime; /* off 0x05ac */ unsigned long UserTime; /* off 0x05b0 */ unsigned long DpcTime; /* off 0x05b4 */ unsigned long DpcTimeCount; /* off 0x05b8 */ unsigned long InterruptTime; /* off 0x05bc */ unsigned long AdjustDpcThreshold; /* off 0x05c0 */ unsigned long PageColor; /* off 0x05c4 */ unsigned char SkipTick; /* off 0x05c5 */ unsigned char DebuggerSavedIRQL; /* off 0x05c6 */ unsigned char NodeColor; /* off 0x05c7 */ unsigned char PollSlot; /* off 0x05c8 */ unsigned long NodeShiftedColor; /* off 0x05cc */ struct _KNODE* ParentNode; /* off 0x05d0 */ unsigned long MultiThreadProcessorSet; /* off 0x05d4 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x05d8 */ unsigned long SecondaryColorMask; /* off 0x05dc */ unsigned long DpcTimeLimit; /* off 0x05e0 */ unsigned long CcFastReadNoWait; /* off 0x05e4 */ unsigned long CcFastReadWait; /* off 0x05e8 */ unsigned long CcFastReadNotPossible; /* off 0x05ec */ unsigned long CcCopyReadNoWait; /* off 0x05f0 */ unsigned long CcCopyReadWait; /* off 0x05f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x05f8 */ long MmSpinLockOrdering; /* off 0x05fc */ long IoReadOperationCount; /* off 0x0600 */ long IoWriteOperationCount; /* off 0x0604 */ long IoOtherOperationCount; /* off 0x0608 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0610 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0618 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0620 */ unsigned long CcFastMdlReadNoWait; /* off 0x0624 */ unsigned long CcFastMdlReadWait; /* off 0x0628 */ unsigned long CcFastMdlReadNotPossible; /* off 0x062c */ unsigned long CcMapDataNoWait; /* off 0x0630 */ unsigned long CcMapDataWait; /* off 0x0634 */ unsigned long CcPinMappedDataCount; /* off 0x0638 */ unsigned long CcPinReadNoWait; /* off 0x063c */ unsigned long CcPinReadWait; /* off 0x0640 */ unsigned long CcMdlReadNoWait; /* off 0x0644 */ unsigned long CcMdlReadWait; /* off 0x0648 */ unsigned long CcLazyWriteHotSpots; /* off 0x064c */ unsigned long CcLazyWriteIos; /* off 0x0650 */ unsigned long CcLazyWritePages; /* off 0x0654 */ unsigned long CcDataFlushes; /* off 0x0658 */ unsigned long CcDataPages; /* off 0x065c */ unsigned long CcLostDelayedWrites; /* off 0x0660 */ unsigned long CcFastReadResourceMiss; /* off 0x0664 */ unsigned long CcCopyReadWaitMiss; /* off 0x0668 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x066c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0670 */ unsigned long CcMapDataWaitMiss; /* off 0x0674 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0678 */ unsigned long CcPinReadWaitMiss; /* off 0x067c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0680 */ unsigned long CcMdlReadWaitMiss; /* off 0x0684 */ unsigned long CcReadAheadIos; /* off 0x0688 */ unsigned long KeAlignmentFixupCount; /* off 0x068c */ unsigned long KeExceptionDispatchCount; /* off 0x0690 */ unsigned long KeSystemCalls; /* off 0x0694 */ unsigned long PrcbPad2[3]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0720 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x1020 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1920 */ unsigned long PacketBarrier; /* off 0x1924 */ long ReverseStall; /* off 0x1928 */ void* IpiFrame; /* off 0x192c */ unsigned char PrcbPad3[52]; /* off 0x1960 */ void* CurrentPacket[3]; /* off 0x196c */ unsigned long TargetSet; /* off 0x1970 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1974 */ unsigned long IpiFrozen; /* off 0x1978 */ unsigned char PrcbPad4[40]; /* off 0x19a0 */ unsigned long RequestSummary; /* off 0x19a4 */ struct _KPRCB* SignalDone; /* off 0x19a8 */ unsigned char PrcbPad5[56]; /* off 0x19e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1a08 */ void* DpcStack; /* off 0x1a0c */ long MaximumDpcQueueDepth; /* off 0x1a10 */ unsigned long DpcRequestRate; /* off 0x1a14 */ unsigned long MinimumDpcRate; /* off 0x1a18 */ unsigned char DpcInterruptRequested; /* off 0x1a19 */ unsigned char DpcThreadRequested; /* off 0x1a1a */ unsigned char DpcRoutineActive; /* off 0x1a1b */ unsigned char DpcThreadActive; /* off 0x1a1c */ unsigned long PrcbLock; /* off 0x1a20 */ unsigned long DpcLastCount; /* off 0x1a24 */ unsigned long TimerHand; /* off 0x1a28 */ unsigned long TimerRequest; /* off 0x1a2c */ void* PrcbPad41; /* off 0x1a30 */ struct _KEVENT DpcEvent; /* off 0x1a40 */ unsigned char ThreadDpcEnable; /* off 0x1a41 */ unsigned char QuantumEnd; /* off 0x1a42 */ unsigned char PrcbPad50; /* off 0x1a43 */ unsigned char IdleSchedule; /* off 0x1a44 */ long DpcSetEventRequest; /* off 0x1a48 */ long Sleeping; /* off 0x1a4c */ unsigned long PeriodicCount; /* off 0x1a50 */ unsigned long PeriodicBias; /* off 0x1a54 */ unsigned char PrcbPad51[6]; /* off 0x1a5c */ long TickOffset; /* off 0x1a60 */ struct _KDPC CallDpc; /* off 0x1a80 */ long ClockKeepAlive; /* off 0x1a84 */ unsigned char ClockCheckSlot; /* off 0x1a85 */ unsigned char ClockPollCycle; /* off 0x1a86 */ unsigned char PrcbPad6[2]; /* off 0x1a88 */ long DpcWatchdogPeriod; /* off 0x1a8c */ long DpcWatchdogCount; /* off 0x1a90 */ long ThreadWatchdogPeriod; /* off 0x1a94 */ long ThreadWatchdogCount; /* off 0x1a98 */ unsigned long PrcbPad70[2]; /* off 0x1aa0 */ struct _LIST_ENTRY WaitListHead; /* off 0x1aa8 */ unsigned long WaitLock; /* off 0x1aac */ unsigned long ReadySummary; /* off 0x1ab0 */ unsigned long QueueIndex; /* off 0x1ab4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1ab8 */ unsigned __int64 StartCycles; /* off 0x1ac0 */ unsigned __int64 CycleTime; /* off 0x1ac8 */ unsigned __int64 PrcbPad71[3]; /* off 0x1ae0 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1be0 */ void* ChainedInterruptList; /* off 0x1be4 */ long LookasideIrpFloat; /* off 0x1be8 */ long MmPageFaultCount; /* off 0x1bec */ long MmCopyOnWriteCount; /* off 0x1bf0 */ long MmTransitionCount; /* off 0x1bf4 */ long MmCacheTransitionCount; /* off 0x1bf8 */ long MmDemandZeroCount; /* off 0x1bfc */ long MmPageReadCount; /* off 0x1c00 */ long MmPageReadIoCount; /* off 0x1c04 */ long MmCacheReadCount; /* off 0x1c08 */ long MmCacheIoCount; /* off 0x1c0c */ long MmDirtyPagesWriteCount; /* off 0x1c10 */ long MmDirtyWriteIoCount; /* off 0x1c14 */ long MmMappedPagesWriteCount; /* off 0x1c18 */ long MmMappedWriteIoCount; /* off 0x1c1c */ unsigned long CachedCommit; /* off 0x1c20 */ unsigned long CachedResidentAvailable; /* off 0x1c24 */ void* HyperPte; /* off 0x1c28 */ unsigned char CpuVendor; /* off 0x1c29 */ unsigned char PrcbPad8[3]; /* off 0x1c2c */ unsigned char VendorString[13]; /* off 0x1c39 */ unsigned char InitialApicId; /* off 0x1c3a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1c3b */ unsigned char PrcbPad9[5]; /* off 0x1c40 */ unsigned long FeatureBits; /* off 0x1c48 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1c50 */ unsigned __int64 IsrTime; /* off 0x1c58 */ unsigned __int64 SpareField1; /* off 0x1c60 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x1e70 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1f38 */ struct _KDPC DpcWatchdogDpc; /* off 0x1f58 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1f80 */ void* WheaInfo; /* off 0x1f84 */ void* EtwSupport; /* off 0x1f88 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1f90 */ union _SLIST_HEADER HypercallPageList; /* off 0x1f98 */ void* HypercallPageVirtual; /* off 0x1f9c */ void* VirtualApicAssist; /* off 0x1fa0 */ unsigned __int64* StatisticsPage; /* off 0x1fa4 */ void* RateControl; /* off 0x1fa8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1fe4 */ unsigned long CacheCount; /* off 0x1fe8 */ unsigned long CacheProcessorMask[5]; /* off 0x1ffc */ unsigned long PackageProcessorSet; /* off 0x2000 */ unsigned long CoreProcessorSet; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char SpareByte; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; union { /* off 0x0038 */ struct _KAPC_STATE ApcState; struct { /* off 0x0038 */ unsigned char ApcStateFill[23]; /* off 0x004f */ char Priority; }; }; /* off 0x0050 */ unsigned short NextProcessor; /* off 0x0052 */ unsigned short DeferredProcessor; /* off 0x0054 */ unsigned long ApcQueueLock; /* off 0x0058 */ unsigned long ContextSwitches; /* off 0x005c */ unsigned char State; /* off 0x005d */ unsigned char NpxState; /* off 0x005e */ unsigned char WaitIrql; /* off 0x005f */ char WaitMode; /* off 0x0060 */ long WaitStatus; union { /* off 0x0064 */ struct _KWAIT_BLOCK* WaitBlockList; /* off 0x0064 */ struct _KGATE* GateObject; }; union { struct { /* off 0x0068 */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x0068 */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x0068 */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x0068 */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x0068 */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x0068 */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x0068 */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x0068 */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x0068 */ unsigned long Reserved:24 /* start bit 8 */; }; /* off 0x0068 */ long MiscFlags; }; /* off 0x006c */ unsigned char WaitReason; /* off 0x006d */ unsigned char SwapBusy; /* off 0x006e */ unsigned char Alerted[2]; union { /* off 0x0070 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0070 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0078 */ struct _KQUEUE* Queue; /* off 0x007c */ unsigned long WaitTime; union { struct { /* off 0x0080 */ short KernelApcDisable; /* off 0x0082 */ short SpecialApcDisable; }; struct { /* off 0x0080 */ unsigned long CombinedApcDisable; }; }; /* off 0x0084 */ void* Teb; union { /* off 0x0088 */ struct _KTIMER Timer; /* off 0x0088 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b0 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b0 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b0 */ unsigned long CycleChargePending:1 /* start bit 4 */; /* off 0x00b0 */ unsigned long CalloutActive:1 /* start bit 5 */; /* off 0x00b0 */ unsigned long ApcQueueable:1 /* start bit 6 */; /* off 0x00b0 */ unsigned long EnableStackSwap:1 /* start bit 7 */; /* off 0x00b0 */ unsigned long GuiThread:1 /* start bit 8 */; /* off 0x00b0 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b0 */ long ThreadFlags; }; union { /* off 0x00b8 */ struct _KWAIT_BLOCK WaitBlock[4]; struct { /* off 0x00b8 */ unsigned char WaitBlockFill0[23]; /* off 0x00cf */ unsigned char IdealProcessor; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill1[47]; /* off 0x00e7 */ char PreviousMode; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill2[71]; /* off 0x00ff */ unsigned char ResourceIndex; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill3[95]; /* off 0x0117 */ unsigned char LargeStack; }; }; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0124 */ void* FirstArgument; union { /* off 0x0128 */ void* CallbackStack; /* off 0x0128 */ unsigned long CallbackDepth; }; /* off 0x012c */ void* ServiceTable; /* off 0x0130 */ unsigned char ApcStateIndex; /* off 0x0131 */ char BasePriority; /* off 0x0132 */ char PriorityDecrement; /* off 0x0133 */ unsigned char Preempted; /* off 0x0134 */ unsigned char AdjustReason; /* off 0x0135 */ char AdjustIncrement; /* off 0x0136 */ unsigned char Spare01; /* off 0x0137 */ char Saturation; /* off 0x0138 */ unsigned long SystemCallNumber; /* off 0x013c */ unsigned long FreezeCount; /* off 0x0140 */ unsigned long UserAffinity; /* off 0x0144 */ struct _KPROCESS* Process; /* off 0x0148 */ unsigned long Affinity; /* off 0x014c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0154 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0154 */ unsigned char SavedApcStateFill[23]; /* off 0x016b */ unsigned char Spare02; }; }; /* off 0x016c */ char SuspendCount; /* off 0x016d */ unsigned char UserIdealProcessor; /* off 0x016e */ unsigned char Spare03; /* off 0x016f */ unsigned char OtherPlatformFill; /* off 0x0170 */ void* Win32Thread; /* off 0x0174 */ void* StackBase; union { /* off 0x0178 */ struct _KAPC SuspendApc; struct { /* off 0x0178 */ unsigned char SuspendApcFill0[1]; /* off 0x0179 */ char Spare04; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill1[3]; /* off 0x017b */ unsigned char QuantumReset; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill2[4]; /* off 0x017c */ unsigned long KernelTime; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill3[36]; /* off 0x019c */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill4[40]; /* off 0x01a0 */ void* LegoData; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill5[47]; /* off 0x01a7 */ unsigned char PowerState; }; }; /* off 0x01a8 */ unsigned long UserTime; union { /* off 0x01ac */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01ac */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01c0 */ unsigned long SListFaultCount; /* off 0x01c4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01cc */ struct _LIST_ENTRY MutantListHead; /* off 0x01d4 */ void* SListFaultAddress; /* off 0x01d8 */ void* MdlForLockedTeb; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; struct _KPROCESS /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ unsigned long Unused0; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Unused1; /* off 0x0033 */ unsigned char Unused2; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; union { struct { /* off 0x0060 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0060 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0060 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0060 */ long ReservedFlags:29 /* start bit 3 */; }; /* off 0x0060 */ long ProcessFlags; }; /* off 0x0064 */ char BasePriority; /* off 0x0065 */ char QuantumReset; /* off 0x0066 */ unsigned char State; /* off 0x0067 */ unsigned char ThreadSeed; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char IdealNode; /* off 0x006a */ unsigned char Visited; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; /* off 0x006c */ unsigned long StackCount; /* off 0x0070 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0078 */ unsigned __int64 CycleTime; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Fill:7 /* start bit 1 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ unsigned long ProcessorMask; /* off 0x002c */ unsigned char Color; /* off 0x002d */ unsigned char Seed; /* off 0x002e */ unsigned char NodeNumber; /* off 0x002f */ struct _flags Flags; /* off 0x0030 */ unsigned long MmShiftedColor; /* off 0x0034 */ unsigned long FreeCount[2]; /* off 0x003c */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x0040 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ long( __fastcall *IdleHandler)(void*,unsigned long); /* off 0x0004 */ void* Context; /* off 0x0008 */ unsigned long Latency; /* off 0x000c */ unsigned long Power; /* off 0x0010 */ unsigned long TimeCheck; /* off 0x0014 */ unsigned long StateFlags; /* off 0x0018 */ unsigned char PromotePercent; /* off 0x0019 */ unsigned char DemotePercent; /* off 0x001a */ unsigned char PromotePercentBase; /* off 0x001b */ unsigned char DemotePercentBase; /* off 0x001c */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hypervisor:2 /* start bit 2 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:24 /* start bit 8 */; }; } Flags; /* off 0x000c */ unsigned long TargetState; /* off 0x0010 */ unsigned long ActualState; /* off 0x0014 */ unsigned long OldState; /* off 0x0018 */ unsigned long TargetProcessors; /* off 0x001c */ struct _PPM_IDLE_STATE State[1]; }; struct PPM_IDLE_STATE_ACCOUNTING /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long IdleTransitions; /* off 0x0004 */ unsigned long FailedTransitions; /* off 0x0008 */ unsigned long InvalidBucketIndex; /* off 0x0010 */ unsigned __int64 TotalTime; /* off 0x0018 */ unsigned long IdleTimeBuckets[6]; }; struct PPM_IDLE_ACCOUNTING /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ struct PPM_IDLE_STATE_ACCOUNTING State[1]; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long UsingHypervisor:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoDomainAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0030 */ unsigned long TargetProcessors; /* off 0x0034 */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0038 */ unsigned long PStateContext; /* off 0x003c */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long TStateContext; /* off 0x0044 */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0048 */ struct _PPM_DIA_STATS* DiaStats; /* off 0x004c */ unsigned long DiaStatsCount; /* off 0x0050 */ struct _PPM_PERF_STATE State[1]; }; struct _PPM_DIA_STATS /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long PerfLevel; /* off 0x0004 */ unsigned long IdleTime; /* off 0x0008 */ unsigned long TimeInterval; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 00002128 8488 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000031 ,//0 }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 00000288 648 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x01e0 */ union _LARGE_INTEGER CreateTime; union { /* off 0x01e8 */ union _LARGE_INTEGER ExitTime; /* off 0x01e8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01f0 */ long ExitStatus; /* off 0x01f0 */ void* OfsChain; }; union { /* off 0x01f4 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x01f4 */ void* ForwardLinkShadow; /* off 0x01f8 */ void* StartAddress; }; }; union { /* off 0x01fc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01fc */ struct _ETHREAD* ReaperLink; /* off 0x01fc */ void* KeyedWaitValue; /* off 0x01fc */ void* Win32StartParameter; }; /* off 0x0200 */ unsigned long ActiveTimerListLock; /* off 0x0204 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x020c */ struct _CLIENT_ID Cid; union { /* off 0x0214 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0214 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0228 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x022c */ struct _LIST_ENTRY IrpList; /* off 0x0234 */ unsigned long TopLevelIrp; /* off 0x0238 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x023c */ union _PSP_RATE_APC* RateControlApc; /* off 0x0240 */ void* Win32StartAddress; /* off 0x0244 */ void* SparePtr0; /* off 0x0248 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0250 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0254 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0258 */ unsigned long ReadClusterSize; /* off 0x025c */ long MmLockOrdering; union { /* off 0x0260 */ unsigned long CrossThreadFlags; struct { /* off 0x0260 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0260 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0260 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0260 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0260 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0260 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0260 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0260 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0260 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0260 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0260 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0264 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0264 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0264 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0264 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0264 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0264 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0264 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0264 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0268 */ unsigned long SameThreadApcFlags; struct { /* off 0x0268 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0268 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0268 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0268 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0269 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0269 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0269 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0269 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x026a */ unsigned char Spare1:8 /* start bit 0 */; /* off 0x026b */ unsigned char PriorityRegionActive; }; }; /* off 0x026c */ unsigned char CacheManagerActive; /* off 0x026d */ unsigned char DisablePageFaultClustering; /* off 0x026e */ unsigned char ActiveFaultCount; /* off 0x0270 */ unsigned long AlpcMessageId; union { /* off 0x0274 */ void* AlpcMessage; /* off 0x0274 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0278 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x0280 */ unsigned long CacheManagerCount; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long reserved:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 1 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 2 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char SessionMaster:1 /* start bit 6 */; /* off 0x0000 */ unsigned char TrimmerAttached:1 /* start bit 7 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Reserved:3 /* start bit 1 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long PeakWorkingSetSize; /* off 0x0018 */ unsigned long ChargedWslePages; /* off 0x001c */ unsigned long MinimumWorkingSetSize; /* off 0x0020 */ unsigned long MaximumWorkingSetSize; /* off 0x0024 */ struct _MMWSL* VmWorkingSetList; /* off 0x0028 */ unsigned long Claim; /* off 0x002c */ unsigned long ActualWslePages; /* off 0x0030 */ unsigned long WorkingSetPrivateSize; /* off 0x0034 */ unsigned long WorkingSetSizeOverhead; /* off 0x0038 */ unsigned long WorkingSetSize; /* off 0x003c */ struct _KGATE* ExitGate; /* off 0x0040 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0044 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 00000270 624 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0080 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0088 */ union _LARGE_INTEGER CreateTime; /* off 0x0090 */ union _LARGE_INTEGER ExitTime; /* off 0x0098 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x009c */ void* UniqueProcessId; /* off 0x00a0 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00a8 */ unsigned long QuotaUsage[3]; /* off 0x00b4 */ unsigned long QuotaPeak[3]; /* off 0x00c0 */ unsigned long CommitCharge; /* off 0x00c4 */ unsigned long PeakVirtualSize; /* off 0x00c8 */ unsigned long VirtualSize; /* off 0x00cc */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00d4 */ void* DebugPort; union { /* off 0x00d8 */ void* ExceptionPortData; /* off 0x00d8 */ unsigned long ExceptionPortValue; /* off 0x00d8 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00dc */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00e0 */ struct _EX_FAST_REF Token; /* off 0x00e4 */ unsigned long WorkingSetPage; /* off 0x00e8 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x00ec */ struct _ETHREAD* RotateInProgress; /* off 0x00f0 */ struct _ETHREAD* ForkInProgress; /* off 0x00f4 */ unsigned long HardwareTrigger; /* off 0x00f8 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x00fc */ void* CloneRoot; /* off 0x0100 */ unsigned long NumberOfPrivatePages; /* off 0x0104 */ unsigned long NumberOfLockedPages; /* off 0x0108 */ void* Win32Process; /* off 0x010c */ struct _EJOB* Job; /* off 0x0110 */ void* SectionObject; /* off 0x0114 */ void* SectionBaseAddress; /* off 0x0118 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x011c */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0120 */ void* Win32WindowStation; /* off 0x0124 */ void* InheritedFromUniqueProcessId; /* off 0x0128 */ void* LdtInformation; /* off 0x012c */ void* Spare; /* off 0x0130 */ void* VdmObjects; /* off 0x0134 */ void* DeviceMap; /* off 0x0138 */ void* EtwDataSource; /* off 0x013c */ void* FreeTebHint; union { /* off 0x0140 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0140 */ unsigned __int64 Filler; }; /* off 0x0148 */ void* Session; /* off 0x014c */ unsigned char ImageFileName[16]; /* off 0x015c */ struct _LIST_ENTRY JobLinks; /* off 0x0164 */ void* LockedPagesList; /* off 0x0168 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0170 */ void* SecurityPort; /* off 0x0174 */ void* PaeTop; /* off 0x0178 */ unsigned long ActiveThreads; /* off 0x017c */ unsigned long ImagePathHash; /* off 0x0180 */ unsigned long DefaultHardErrorProcessing; /* off 0x0184 */ long LastThreadExitStatus; /* off 0x0188 */ struct _PEB* Peb; /* off 0x018c */ struct _EX_FAST_REF PrefetchTrace; /* off 0x0190 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x0198 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01a0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01a8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01c0 */ unsigned long CommitChargeLimit; /* off 0x01c4 */ unsigned long CommitChargePeak; /* off 0x01c8 */ void* AweInfo; /* off 0x01cc */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01d0 */ struct _MMSUPPORT Vm; /* off 0x0218 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0220 */ unsigned long ModifiedPageCount; union { /* off 0x0224 */ unsigned long Flags2; struct { /* off 0x0224 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0224 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0224 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0224 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0224 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0224 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0224 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0224 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0224 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0224 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0224 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0224 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0224 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0224 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0224 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0224 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x0224 */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x0224 */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x0224 */ unsigned long CrossSessionCreate:1 /* start bit 20 */; }; }; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0228 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0228 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0228 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0228 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0228 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0228 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0228 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0228 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0228 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0228 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0228 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0228 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0228 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0228 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0228 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0228 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0228 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0228 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0228 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0228 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0228 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0228 */ unsigned long SmapAllowed:1 /* start bit 25 */; /* off 0x0228 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0228 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0228 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0228 */ unsigned long SpareProcessFlags:1 /* start bit 31 */; }; }; /* off 0x022c */ long ExitStatus; /* off 0x0230 */ unsigned short Spare7; union { struct { /* off 0x0232 */ unsigned char SubSystemMinorVersion; /* off 0x0233 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0232 */ unsigned short SubSystemVersion; }; }; /* off 0x0234 */ unsigned char PriorityClass; /* off 0x0238 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0258 */ unsigned long Cookie; /* off 0x025c */ struct _ALPC_PROCESS_CONTEXT AlpcContext; }; struct _HANDLE_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000128 296 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00b4 */ unsigned long UIRestrictionsClass; /* off 0x00b8 */ unsigned long EndOfJobTimeAction; /* off 0x00bc */ void* CompletionPort; /* off 0x00c0 */ void* CompletionKey; /* off 0x00c4 */ unsigned long SessionId; /* off 0x00c8 */ unsigned long SchedulingClass; /* off 0x00d0 */ unsigned __int64 ReadOperationCount; /* off 0x00d8 */ unsigned __int64 WriteOperationCount; /* off 0x00e0 */ unsigned __int64 OtherOperationCount; /* off 0x00e8 */ unsigned __int64 ReadTransferCount; /* off 0x00f0 */ unsigned __int64 WriteTransferCount; /* off 0x00f8 */ unsigned __int64 OtherTransferCount; /* off 0x0100 */ unsigned long ProcessMemoryLimit; /* off 0x0104 */ unsigned long JobMemoryLimit; /* off 0x0108 */ unsigned long PeakProcessMemoryUsed; /* off 0x010c */ unsigned long PeakJobMemoryUsed; /* off 0x0110 */ unsigned long CurrentJobMemoryUsed; /* off 0x0114 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0118 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0120 */ unsigned long MemberLevel; /* off 0x0124 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _PEB /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ReservedBits0:28 /* start bit 4 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long SpareUlong; /* off 0x0038 */ unsigned long SparePebPtr0; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000294 660 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 000006b8 1720 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextEstimationSlot; /* off 0x0020 */ unsigned long NextAgingSlot; /* off 0x0024 */ unsigned long EstimatedAvailable; /* off 0x0028 */ unsigned long GrowthSinceLastEstimate; /* off 0x002c */ unsigned long NumberOfCommittedPageTables; /* off 0x0030 */ unsigned long VadBitMapHint; /* off 0x0034 */ unsigned long NonDirectCount; /* off 0x0038 */ unsigned long LastVadBit; /* off 0x003c */ unsigned long MaximumLastVadBit; /* off 0x0040 */ unsigned long LastAllocationSizeHint; /* off 0x0044 */ unsigned long LastAllocationSize; /* off 0x0048 */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x004c */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0050 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0054 */ void* HighestUserAddress; /* off 0x0058 */ unsigned short UsedPageTableEntries[768]; /* off 0x0658 */ unsigned long CommittedPageTables[24]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileMaximumInformation =0x00000033 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ enum _IRQ_DEVICE_POLICY AffinityPolicy; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault =0x00000000 ,//0 IrqPolicyAllCloseProcessors =0x00000001 ,//0 IrqPolicyOneCloseProcessor =0x00000002 ,//0 IrqPolicyAllProcessorsInMachine =0x00000003 ,//0 IrqPolicySpecifiedProcessors =0x00000004 ,//0 IrqPolicySpreadMessagesAcrossAllProcessors =0x00000005 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Reserved; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long TotalBusyCount; /* off 0x000c */ unsigned long ConservationIdleTime; /* off 0x0010 */ unsigned long PerformanceIdleTime; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _LIST_ENTRY IdleList; /* off 0x0020 */ unsigned char DeviceType; /* off 0x0024 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x0028 */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x002c */ struct _LIST_ENTRY NotifySourceList; /* off 0x0034 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x003c */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0050 */ struct _LIST_ENTRY Volume; /* off 0x0058 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; union _PSP_RATE_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000000 0 */ { }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000140 320 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned long Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _ERESOURCE Mutex; /* off 0x00b0 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x00b4 */ unsigned long Key; /* off 0x00b8 */ struct _EX_PUSH_LOCK ObjectLocks[32]; /* off 0x0138 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ struct _EPROCESS* ExclusiveProcess; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _DEVICE_MAP /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ unsigned long ReferenceCount; /* off 0x000c */ unsigned long DriveMap; /* off 0x0010 */ unsigned char DriveType[32]; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; struct _ETW_KERNEL_TRACE_TIMESTAMP /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER KernelTraceTimeStamp[2]; }; struct _PERFINFO_HARDPAGEFAULT_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER ReadOffset; /* off 0x0008 */ void* VirtualAddress; /* off 0x000c */ void* FileObject; /* off 0x0010 */ unsigned long ThreadId; /* off 0x0014 */ unsigned long ByteCount; }; struct _PF_HARD_FAULT_INFO /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _ETW_KERNEL_TRACE_TIMESTAMP KernelTimeStamp; /* off 0x0010 */ struct _PERFINFO_HARDPAGEFAULT_INFORMATION HardFaultEvent; /* off 0x0028 */ union _LARGE_INTEGER IoTimeInTicks; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Reserved:8 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevNone =0x00000003 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long CpuValid:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ProcessorType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 InstructionSet:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Operation:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Flags:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Level:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 CPUVersion:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CPUBrandString:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 ProcessorId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 TargetAddress:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InstructionPointer:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Reserved:51 /* start bit 13 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_GENERIC_PROCESSOR_ERROR /* sizeof 000000c0 192 */ { /* off 0x0000 */ union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ unsigned char ProcessorType; /* off 0x0009 */ unsigned char InstructionSet; /* off 0x000a */ unsigned char ErrorType; /* off 0x000b */ unsigned char Operation; /* off 0x000c */ unsigned char Flags; /* off 0x000d */ unsigned char Level; /* off 0x000e */ unsigned short Reserved; /* off 0x0010 */ unsigned __int64 CPUVersion; /* off 0x0018 */ unsigned char CPUBrandString[128]; /* off 0x0098 */ unsigned __int64 ProcessorId; /* off 0x00a0 */ unsigned __int64 TargetAddress; /* off 0x00a8 */ unsigned __int64 RequesterId; /* off 0x00b0 */ unsigned __int64 ResponderId; /* off 0x00b8 */ unsigned __int64 InstructionPointer; }; union _WHEA_MEMORY_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; union _WHEA_NMI_ERROR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_NMI_ERROR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Data[8]; /* off 0x0008 */ union _WHEA_NMI_ERROR_FLAGS Flags; }; union _WHEA_PCIEXPRESS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 PortType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Version:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 CommandStatus:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 DeviceId:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 DeviceSerialNumber:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BridgeControlStatus:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 ExpressCapability:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 AerInfo:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Reserved:56 /* start bit 8 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIEXPRESS_VERSION /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned char MinorVersion; /* off 0x0001 */ unsigned char MajorVersion; /* off 0x0002 */ unsigned short Reserved; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PCIEXPRESS_COMMAND_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short Command; /* off 0x0002 */ unsigned short Status; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_DEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long Segment:16 /* start bit 8 */; /* off 0x0008 */ unsigned long PrimaryBusNumber:8 /* start bit 24 */; /* off 0x000c */ unsigned long SecondaryBusNumber:8 /* start bit 0 */; /* off 0x000c */ unsigned long Reserved1:2 /* start bit 8 */; /* off 0x000c */ unsigned long SlotNumber:14 /* start bit 10 */; /* off 0x000c */ unsigned long Reserved2:8 /* start bit 24 */; }; union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short BridgeSecondaryStatus; /* off 0x0002 */ unsigned short BridgeControl; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_ERROR /* sizeof 000000d0 208 */ { /* off 0x0000 */ union _WHEA_PCIEXPRESS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ enum WHEA_PCIEXPRESS_DEVICE_TYPE PortType; /* off 0x000c */ union _WHEA_PCIEXPRESS_VERSION Version; /* off 0x0010 */ union _WHEA_PCIEXPRESS_COMMAND_STATUS CommandStatus; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ struct _WHEA_PCIEXPRESS_DEVICE_ID DeviceId; /* off 0x0028 */ unsigned __int64 DeviceSerialNumber; /* off 0x0030 */ union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS BridgeControlStatus; /* off 0x0034 */ unsigned char ExpressCapability[60]; /* off 0x0070 */ unsigned char AerInfo[96]; }; union _WHEA_PCIXBUS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 BusId:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 BusAddress:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 BusData:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BusCommand:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CompleterId:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Reserved:55 /* start bit 9 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIXBUS_ID /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char BusNumber; /* off 0x0001 */ unsigned char BusSegment; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_PCIXBUS_COMMAND /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Command:56 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PCIXCommand:1 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 57 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_PCIXBUS_ERROR /* sizeof 00000048 72 */ { /* off 0x0000 */ union _WHEA_PCIXBUS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned short ErrorType; /* off 0x0012 */ union _WHEA_PCIXBUS_ID BusId; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 BusAddress; /* off 0x0020 */ unsigned __int64 BusData; /* off 0x0028 */ union _WHEA_PCIXBUS_COMMAND BusCommand; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 CompleterId; /* off 0x0040 */ unsigned __int64 TargetId; }; union _WHEA_PCIXDEVICE_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 IdInfo:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 MemoryNumber:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 IoNumber:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 RegisterDataPairs:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Reserved:59 /* start bit 5 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_PCIXDEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorId; /* off 0x0002 */ unsigned short DeviceId; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long BusNumber:8 /* start bit 8 */; /* off 0x0008 */ unsigned long SegmentNumber:8 /* start bit 16 */; /* off 0x0008 */ unsigned long Reserved1:8 /* start bit 24 */; /* off 0x000c */ unsigned long Reserved2; }; struct WHEA_PCIXDEVICE_REGISTER_PAIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Register; /* off 0x0008 */ unsigned __int64 Data; }; struct _WHEA_PCIXDEVICE_ERROR /* sizeof 00000068 104 */ { /* off 0x0000 */ union _WHEA_PCIXDEVICE_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ struct _WHEA_PCIXDEVICE_ID IdInfo; /* off 0x0020 */ unsigned long MemoryNumber; /* off 0x0024 */ unsigned long IoNumber; /* off 0x0028 */ struct WHEA_PCIXDEVICE_REGISTER_PAIR RegisterDataPairs[4]; }; struct _WHEA_ERROR_PACKET /* sizeof 00000119 281 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long RawDataLength; /* off 0x0010 */ unsigned __int64 Reserved1; /* off 0x0018 */ unsigned __int64 Context; /* off 0x0020 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0024 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0028 */ unsigned long ErrorSourceId; /* off 0x002c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0030 */ unsigned long Reserved2; /* off 0x0034 */ unsigned long Version; /* off 0x0038 */ unsigned __int64 Cpu; /* off 0x0040 */ union /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _WHEA_GENERIC_PROCESSOR_ERROR ProcessorError; /* off 0x0000 */ struct _WHEA_MEMORY_ERROR MemoryError; /* off 0x0000 */ struct _WHEA_NMI_ERROR NmiError; /* off 0x0000 */ struct _WHEA_PCIEXPRESS_ERROR PciExpressError; /* off 0x0000 */ struct _WHEA_PCIXBUS_ERROR PciXBusError; /* off 0x0000 */ struct _WHEA_PCIXDEVICE_ERROR PciXDeviceError; } u; /* off 0x0110 */ enum _WHEA_RAW_DATA_FORMAT RawDataFormat; /* off 0x0114 */ unsigned long RawDataOffset; /* off 0x0118 */ unsigned char RawData[1]; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum WHEA_PCIEXPRESS_DEVICE_TYPE { WheaPciExpressEndpoint =0x00000000 ,//0 WheaPciExpressLegacyEndpoint =0x00000001 ,//0 WheaPciExpressRootPort =0x00000004 ,//0 WheaPciExpressUpstreamSwitchPort =0x00000005 ,//0 WheaPciExpressDownstreamSwitchPort =0x00000006 ,//0 WheaPciExpressToPciXBridge =0x00000007 ,//0 WheaPciXToExpressBridge =0x00000008 ,//0 WheaPciExpressRootComplexIntegratedEndpoint =0x00000009 ,//0 WheaPciExpressRootComplexEventCollector =0x0000000a ,//0 }; enum _WHEA_RAW_DATA_FORMAT { WheaRawDataFormatIPFSalRecord =0x00000000 ,//0 WheaRawDataFormatIA32MCA =0x00000001 ,//0 WheaRawDataFormatIntel64MCA =0x00000002 ,//0 WheaRawDataFormatAMD64MCA =0x00000003 ,//0 WheaRawDataFormatMemory =0x00000004 ,//0 WheaRawDataFormatPCIExpress =0x00000005 ,//0 WheaRawDataFormatNMIPort =0x00000006 ,//0 WheaRawDataFormatPCIXBus =0x00000007 ,//0 WheaRawDataFormatPCIXDevice =0x00000008 ,//0 WheaRawDataFormatGeneric =0x00000009 ,//0 WheaRawDataFormatMax =0x0000000a ,//0 }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HARDWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ProtoAddressLow:8 /* start bit 1 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long ProtoAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFileHigh:20 /* start bit 12 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long GlobalTimeStamp:20 /* start bit 12 */; }; struct _MMPTE_TRANSITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SubsectionAddressLow:9 /* start bit 1 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long SubsectionAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_LIST /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned long filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long filler1:1 /* start bit 11 */; /* off 0x0000 */ unsigned long NextEntry:20 /* start bit 12 */; }; struct _MMPTE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ unsigned long VolatileLong; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _ALPHA_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 0000007c 124 */ { /* off 0x0000 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0008 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0010 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0018 */ unsigned long KernelStack; /* off 0x001c */ unsigned long Prcb; /* off 0x0020 */ unsigned long Process; /* off 0x0024 */ unsigned long Thread; /* off 0x0028 */ unsigned long RegistryLength; /* off 0x002c */ void* RegistryBase; /* off 0x0030 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0034 */ char* ArcBootDeviceName; /* off 0x0038 */ char* ArcHalDeviceName; /* off 0x003c */ char* NtBootPathName; /* off 0x0040 */ char* NtHalPathName; /* off 0x0044 */ char* LoadOptions; /* off 0x0048 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x004c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0050 */ void* OemFontFile; /* off 0x0054 */ struct _SETUP_LOADER_BLOCK* SetupLoaderBlock; /* off 0x0058 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x005c */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _ALPHA_LOADER_BLOCK Alpha; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0068 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; /* off 0x0014 */ unsigned long AffinityMask; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _SETUP_LOADER_BLOCK /* sizeof 00000000 0 */ { }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ unsigned long MajorVersion; /* off 0x0018 */ unsigned long MinorVersion; /* off 0x001c */ void* EmInfFileImage; /* off 0x0020 */ unsigned long EmInfFileSize; /* off 0x0024 */ void* TriageDumpBlock; /* off 0x0028 */ unsigned long LoaderPagesSpanned; /* off 0x002c */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0030 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x0034 */ void* DrvDBImage; /* off 0x0038 */ unsigned long DrvDBSize; /* off 0x003c */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0040 */ unsigned char* HalpIRQLToTPR; /* off 0x0044 */ unsigned char* HalpVectorToIRQL; /* off 0x0048 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0050 */ void* AcpiTable; /* off 0x0054 */ unsigned long AcpiTableSize; /* off 0x0058 */ unsigned long BootViaWinload:1 /* start bit 0 */; /* off 0x0058 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x005c */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0060 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0068 */ void* WmdTestResult; /* off 0x006c */ struct _GUID BootIdentifier; /* off 0x007c */ unsigned long ResumePages; /* off 0x0080 */ void* DumpHeader; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPTE_FLUSH_LIST /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaximumCount; /* off 0x0008 */ void* FlushVa[33]; }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ unsigned char ByteFlags; /* off 0x0003 */ unsigned char InterlockedByteFlags; } e3; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long ContainsPxeSubsection:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x002c */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ void* ImageMerge; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ unsigned long BitmapHint; /* off 0x0034 */ unsigned long LastAllocationSize; /* off 0x0038 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0038 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0038 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x003a */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x003a */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x003c */ void* FileHandle; /* off 0x0040 */ union _SLIST_HEADER AvailableList; /* off 0x0048 */ union _SLIST_HEADER NeedProcessingList; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMPAGING_FILE_FREE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long FreeBit; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CMHIVE /* sizeof 000005e0 1504 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _FAST_MUTEX* HiveLock; /* off 0x0314 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x0318 */ struct _KTHREAD* ViewLockOwner; /* off 0x031c */ unsigned long ViewLockLast; /* off 0x0320 */ unsigned long ViewUnLockLast; /* off 0x0324 */ struct _FAST_MUTEX* WriterLock; /* off 0x0328 */ struct _EX_PUSH_LOCK FlusherLock; /* off 0x032c */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0330 */ struct _LIST_ENTRY MappedViewList; /* off 0x0338 */ struct _LIST_ENTRY PinnedViewList; /* off 0x0340 */ struct _LIST_ENTRY FlushedViewList; /* off 0x0348 */ unsigned short MappedViewCount; /* off 0x034a */ unsigned short PinnedViewCount; /* off 0x034c */ unsigned long UseCount; /* off 0x0350 */ unsigned long ViewsPerHive; /* off 0x0354 */ struct _FILE_OBJECT* FileObject; /* off 0x0358 */ unsigned long LastShrinkHiveSize; /* off 0x0360 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0368 */ struct _UNICODE_STRING FileFullPath; /* off 0x0370 */ struct _UNICODE_STRING FileUserName; /* off 0x0378 */ struct _UNICODE_STRING HiveRootPath; /* off 0x0380 */ unsigned long SecurityCount; /* off 0x0384 */ unsigned long SecurityCacheSize; /* off 0x0388 */ long SecurityHitHint; /* off 0x038c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0390 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0590 */ unsigned long UnloadEventCount; /* off 0x0594 */ struct _KEVENT** UnloadEventArray; /* off 0x0598 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x059c */ unsigned char Frozen; /* off 0x05a0 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05a4 */ unsigned char GrowOnlyMode; /* off 0x05a8 */ unsigned long GrowOffset; /* off 0x05ac */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05b4 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x05bc */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x05c0 */ unsigned long Flags; /* off 0x05c4 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x05cc */ unsigned long FlushCount; /* off 0x05d0 */ struct _CM_RM* CmRm; /* off 0x05d4 */ unsigned long CmRmInitFailPoint; /* off 0x05d8 */ long CmRmInitFailStatus; /* off 0x05dc */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000090 144 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:9 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 9 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 10 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:11 /* start bit 11 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0048 */ void* DelayCloseEntry; /* off 0x0050 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0058 */ unsigned short KcbMaxNameLen; /* off 0x005a */ unsigned short KcbMaxValueNameLen; /* off 0x005c */ unsigned long KcbMaxValueDataLen; /* off 0x0060 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0060 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0060 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0060 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x0064 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x006c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0070 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0078 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0080 */ struct _CHILD_LIST TransValueCache; /* off 0x0088 */ struct _CM_TRANS* TransValueListOwner; /* off 0x008c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[8]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_WORKITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _TEB /* sizeof 00000ff8 4088 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char SpareBool0; /* off 0x0f75 */ unsigned char SpareBool1; /* off 0x0f76 */ unsigned char SpareBool2; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short DbgSafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short DbgInDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short DbgHasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short DbgSkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short DbgWerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short DbgRanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short DbgClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short DbgSuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short RtlDisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long ProcessRundown; /* off 0x0fe0 */ unsigned __int64 LastSwitchTime; /* off 0x0fe8 */ unsigned __int64 TotalSwitchOutTime; /* off 0x0ff0 */ union _LARGE_INTEGER WaitReasonBitMap; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ union _ULARGE_INTEGER Time; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ unsigned short* DeviceName; /* off 0x0018 */ unsigned short* DriverName; /* off 0x001c */ unsigned long ChildCount; /* off 0x0020 */ unsigned long ActiveChild; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0038 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0048 */ enum _PNP_DEVNODE_STATE State; /* off 0x004c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0050 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00a0 */ unsigned long StateHistoryEntry; /* off 0x00a4 */ long CompletionStatus; /* off 0x00a8 */ struct _IRP* PendingIrp; /* off 0x00ac */ unsigned long Flags; /* off 0x00b0 */ unsigned long UserFlags; /* off 0x00b4 */ unsigned long Problem; /* off 0x00b8 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00bc */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00c0 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00c4 */ struct _UNICODE_STRING InstancePath; /* off 0x00cc */ struct _UNICODE_STRING ServiceName; /* off 0x00d4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00d8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00dc */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00e0 */ unsigned long BusNumber; /* off 0x00e4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00e8 */ unsigned long ChildBusNumber; /* off 0x00ec */ unsigned short ChildBusTypeIndex; /* off 0x00ee */ unsigned char RemovalPolicy; /* off 0x00ef */ unsigned char HardwareRemovalPolicy; /* off 0x00f0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00f8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0100 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0108 */ unsigned short NoTranslatorMask; /* off 0x010a */ unsigned short QueryTranslatorMask; /* off 0x010c */ unsigned short NoArbiterMask; /* off 0x010e */ unsigned short QueryArbiterMask; /* off 0x0110 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x0114 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0118 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x011c */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0120 */ unsigned long CapabilityFlags; /* off 0x0124 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x0134 */ unsigned long DisableableDepends; /* off 0x0138 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0140 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0148 */ unsigned long DriverUnloadRetryCount; /* off 0x014c */ struct _DEVICE_NODE* PreviousParent; /* off 0x0150 */ unsigned long DeletedChildren; /* off 0x0154 */ unsigned long NumaNodeIndex; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000018 24 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000140 320 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0130 */ void* WriteBehindWorkQueueEntry; /* off 0x0134 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0138 */ unsigned long ProcImagePathHash; /* off 0x013c */ unsigned long MappedWritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long MappingCount; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ struct _LIST_ENTRY CoalescedWorkQueueLinks; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x0014 */ unsigned char Function; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long InBlockDeccommits; /* off 0x0044 */ unsigned long InBlockDeccomitSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0124 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; union { /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY Entry; struct { /* off 0x0038 */ void* Padding2; union { struct { /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; struct { /* off 0x0038 */ void* Pointer0; }; /* off 0x003c */ void* Pointer1; }; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000280 640 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ void* LogFileHandle; /* off 0x000c */ struct _ETHREAD* LoggerThread; /* off 0x0010 */ long LoggerStatus; /* off 0x0014 */ unsigned long LoggerId; /* off 0x0018 */ void* NBQHead; /* off 0x001c */ void* OverflowNBQHead; /* off 0x0020 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0028 */ union _SLIST_HEADER GlobalList; /* off 0x0030 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0034 */ struct _UNICODE_STRING LoggerName; /* off 0x003c */ struct _UNICODE_STRING LogFileName; /* off 0x0044 */ struct _UNICODE_STRING LogFilePattern; /* off 0x004c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0054 */ unsigned long ClockType; /* off 0x0058 */ long CollectionOn; /* off 0x005c */ unsigned long MaximumFileSize; /* off 0x0060 */ unsigned long LoggerMode; /* off 0x0064 */ unsigned long LastFlushedBuffer; /* off 0x0068 */ unsigned long FlushTimer; /* off 0x006c */ unsigned long FlushThreshold; /* off 0x0070 */ union _LARGE_INTEGER ByteOffset; /* off 0x0078 */ union _LARGE_INTEGER FlushTimeStamp; /* off 0x0080 */ unsigned long MinimumBuffers; /* off 0x0084 */ long BuffersAvailable; /* off 0x0088 */ long NumberOfBuffers; /* off 0x008c */ unsigned long MaximumBuffers; /* off 0x0090 */ unsigned long EventsLost; /* off 0x0094 */ unsigned long BuffersWritten; /* off 0x0098 */ unsigned long LogBuffersLost; /* off 0x009c */ unsigned long RealTimeBuffersDelivered; /* off 0x00a0 */ unsigned long RealTimeBuffersLost; /* off 0x00a4 */ unsigned long BufferSize; /* off 0x00a8 */ unsigned long MaximumEventSize; /* off 0x00ac */ long* SequencePtr; /* off 0x00b0 */ unsigned long LocalSequence; /* off 0x00b4 */ struct _GUID InstanceGuid; /* off 0x00c4 */ __int64( __stdcall *GetCpuClock)(); /* off 0x00c8 */ long FileCounter; /* off 0x00cc */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d0 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00ec */ struct _LIST_ENTRY Consumers; /* off 0x00f4 */ unsigned long NumConsumers; /* off 0x00f8 */ struct _LIST_ENTRY Connecting; /* off 0x0100 */ unsigned char NewConsumer; /* off 0x0104 */ void* RealtimeLogfileHandle; /* off 0x0108 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0110 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0120 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0128 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0130 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0138 */ unsigned long RealtimeBuffersSaved; /* off 0x0140 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0150 */ unsigned long RealtimeDisconnectProcessId; /* off 0x0154 */ unsigned long RealtimeDisconnectConsumerId; /* off 0x0158 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x015c */ struct _KEVENT LoggerEvent; /* off 0x016c */ struct _KEVENT FlushEvent; /* off 0x017c */ struct _KDPC FlushDpc; /* off 0x019c */ struct _KMUTANT LoggerMutex; /* off 0x01bc */ struct _EX_PUSH_LOCK LoggerLock; /* off 0x01c0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01fc */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0200 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0248 */ __int64 BufferSequenceNumber; /* off 0x0250 */ long AcceptNewEvents; union { /* off 0x0254 */ unsigned long Flags; struct { /* off 0x0254 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0254 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0254 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0254 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0254 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0254 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0254 */ unsigned long NoMoreEnable:1 /* start bit 6 */; }; }; union { /* off 0x0258 */ unsigned long RequestFlag; struct { /* off 0x0258 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0258 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0258 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0258 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0258 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; }; }; /* off 0x025c */ unsigned short StackTraceFilterHookCount; /* off 0x025e */ unsigned short StackTraceFilter[16]; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x0004 */ void* SectionObject; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0010 */ void* SectionHandle; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ struct _ALPC_PORT* OwnerPort; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0008 */ unsigned long TotalHandles; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000f4 244 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ unsigned long SequenceNo; /* off 0x0014 */ void* CompletionPort; /* off 0x0018 */ void* CompletionKey; /* off 0x001c */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x0020 */ void* PortContext; /* off 0x0024 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0060 */ struct _LIST_ENTRY MainQueue; /* off 0x0068 */ struct _LIST_ENTRY PendingQueue; /* off 0x0070 */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0078 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x0080 */ struct _KSEMAPHORE* Semaphore; /* off 0x0080 */ struct _KEVENT* DummyEvent; }; /* off 0x0084 */ struct _EX_PUSH_LOCK Lock; /* off 0x0088 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00b4 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b8 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00c0 */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c4 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c8 */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d0 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00d4 */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00d8 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00dc */ struct _KALPC_MESSAGE* Message; /* off 0x00e0 */ unsigned long MainQueueLength; /* off 0x00e4 */ unsigned long PendingQueueLength; /* off 0x00e8 */ unsigned long LargeMessageQueueLength; /* off 0x00ec */ unsigned long CanceledQueueLength; /* off 0x00f0 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ void* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[0]; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _HANDLE_TABLE_ENTRY* UniqueTableEntry; /* off 0x0044 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x0060 */ void* DataUserVa; /* off 0x0064 */ void* DataSystemVa; /* off 0x0068 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x006c */ struct _ALPC_PORT* ConnectionPort; /* off 0x0070 */ struct _ETHREAD* ServerThread; /* off 0x0078 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x000c */ struct _KALPC_REGION* Region; /* off 0x0010 */ struct _ALPC_PORT* OwnerPort; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ void* Address; /* off 0x001c */ unsigned long Size; /* off 0x0020 */ void* SecureViewHandle; /* off 0x0024 */ void* WriteAccessHandle; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x0004 */ struct _LIST_ENTRY RegionListEntry; /* off 0x000c */ struct _KALPC_SECTION* Section; /* off 0x0010 */ unsigned long Offset; /* off 0x0014 */ unsigned long Size; /* off 0x0018 */ unsigned long ViewSize; /* off 0x001c */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x0020 */ struct _KALPC_VIEW* ReadWriteView; /* off 0x0024 */ unsigned long NumberOfViews; /* off 0x0028 */ struct _LIST_ENTRY ViewListHead; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ struct _OBJECT_TYPE* ObjectType; /* off 0x0010 */ unsigned long TargetAccess; /* off 0x0014 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0018 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _ETHREAD* TargetThread; /* off 0x0014 */ struct _ALPC_PORT* TargetPort; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e8 488 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x00c0 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x00c4 */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c8 */ struct _LUID OriginatingLogonSession; /* off 0x00d0 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0158 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01e0 */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _DEVPROPKEY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID fmtid; /* off 0x0010 */ unsigned long pid; }; enum _WAIT_TYPE { WaitAll =0x00000000 ,//0 WaitAny =0x00000001 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; /* off 0x004c */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0038 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x001c */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000270 624 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ char Number; /* off 0x0035 */ unsigned char ShareVector; /* off 0x0038 */ enum _KINTERRUPT_MODE Mode; /* off 0x003c */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0040 */ unsigned long ServiceCount; /* off 0x0044 */ unsigned long DispatchCount; /* off 0x0048 */ unsigned __int64 Rsvd1; /* off 0x0050 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ struct _CMHIVE* CmHive2; /* off 0x001c */ unsigned char ThreadFinished; /* off 0x001d */ unsigned char ThreadStarted; /* off 0x001e */ unsigned char Allocate; /* off 0x001f */ unsigned char WinPERequired; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; struct _LAZY_WRITER /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueue; /* off 0x0008 */ struct _KDPC ScanDpc; /* off 0x0028 */ struct _KTIMER ScanTimer; /* off 0x0050 */ unsigned char ScanActive; /* off 0x0051 */ unsigned char OtherWork; /* off 0x0052 */ unsigned char PendingTeardown; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_EXFAT_ID =0x0000008a ,//0 DPFLTR_ENDOFTABLE_ID =0x0000008b ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned char Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _MSUBSECTION* LastSubsectionHint; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d8 216 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPool =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaMaximumType =0x0000000d ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _PCI_HOTPLUG_SLOT_INTERRUPT { SlotInterruptPresenceDetect =0x00000000 ,//0 SlotInterruptLatchChange =0x00000001 ,//0 SlotInterruptAttentionButton =0x00000002 ,//0 SlotInterruptLinkStateChange =0x00000003 ,//0 SlotInterruptPowerFault =0x00000004 ,//0 SlotInterruptMaximum =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _KUSER_SHARED_DATA /* sizeof 000003b8 952 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[8]; /* off 0x0390 */ unsigned long HeapTracingPid[2]; /* off 0x0398 */ unsigned long CritSecTracingPid[2]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; union { /* off 0x03a8 */ unsigned __int64 AffinityPad; /* off 0x03a8 */ unsigned long ActiveProcessorAffinity; }; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POP_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_DISPLAY_RESUME_CONTEXT* DisplayResumeContext; /* off 0x003c */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000148 328 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000188 392 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0168 */ long NotifyGdiLevelForPowerOn; /* off 0x016c */ long NotifyGdiLevelForResumeUI; /* off 0x0170 */ struct _LIST_ENTRY Pending; /* off 0x0178 */ long Status; /* off 0x017c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0180 */ unsigned char Waking; /* off 0x0181 */ unsigned char Cancelled; /* off 0x0182 */ unsigned char IgnoreErrors; /* off 0x0183 */ unsigned char IgnoreNotImplemented; /* off 0x0184 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_DISPLAY_RESUME_CONTEXT /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ struct _ETHREAD* WorkerThread; /* off 0x0014 */ struct _KEVENT PrepareUIEvent; /* off 0x0024 */ struct _KEVENT PowerOnEvent; /* off 0x0034 */ struct _KEVENT DoneEvent; /* off 0x0044 */ unsigned long WorkerQueued; /* off 0x0048 */ unsigned long WorkerAbort; /* off 0x004c */ unsigned long NoResumeUI; }; struct _PO_HIBER_PERF /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; /* off 0x0048 */ unsigned __int64 ResumeAppStartTime; /* off 0x0050 */ unsigned __int64 ResumeAppEndTime; /* off 0x0058 */ unsigned __int64 HiberFileResumeTime; }; struct _POP_HIBER_CONTEXT /* sizeof 00000100 256 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ unsigned long IoPagesCount; /* off 0x0050 */ void* CurrentMcb; /* off 0x0054 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0058 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ struct _PO_MEMORY_RANGE_ARRAY* TableHead; /* off 0x0074 */ unsigned char* CompressionWorkspace; /* off 0x0078 */ unsigned char* CompressedWriteBuffer; /* off 0x007c */ unsigned long* PerformanceStats; /* off 0x0080 */ void* CompressionBlock; /* off 0x0084 */ void* DmaIO; /* off 0x0088 */ void* TemporaryHeap; /* off 0x0090 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00f0 */ struct _MDL* BootLoaderLogMdl; /* off 0x00f4 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x00f8 */ void* ResumeContext; /* off 0x00fc */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct PO_MEMORY_IMAGE /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long TotalPages; /* off 0x0050 */ unsigned long FirstTablePage; /* off 0x0054 */ unsigned long LastFilePage; /* off 0x0058 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00b8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00bc */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00c0 */ unsigned long NoBootLoaderLogPages; /* off 0x00c4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00e4 */ unsigned long NotUsed; /* off 0x00e8 */ unsigned long ResumeContextCheck; /* off 0x00ec */ unsigned long ResumeContextPages; }; struct _PO_MEMORY_RANGE_ARRAY_RANGE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PageNo; /* off 0x0004 */ unsigned long StartPage; /* off 0x0008 */ unsigned long EndPage; /* off 0x000c */ unsigned long CheckSum; }; struct _PO_MEMORY_RANGE_ARRAY_LINK /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY* Next; /* off 0x0004 */ unsigned long NextTable; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long EntryCount; }; struct _PO_MEMORY_RANGE_ARRAY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_RANGE Range; /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_LINK Link; }; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0030 */ union _SLIST_HEADER PoolTrackers; /* off 0x0038 */ unsigned long CurrentPagedPoolAllocations; /* off 0x003c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0040 */ unsigned long PeakPagedPoolAllocations; /* off 0x0044 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PagedBytes; /* off 0x004c */ unsigned long NonPagedBytes; /* off 0x0050 */ unsigned long PeakPagedBytes; /* off 0x0054 */ unsigned long PeakNonPagedBytes; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ struct _MMPTE FreePteHead; /* off 0x0008 */ struct _MMPTE FreePteTail; /* off 0x000c */ long PagesInUse; /* off 0x0010 */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Hint; /* off 0x000c */ struct _MMPTE* BasePte; /* off 0x0010 */ unsigned long* FailureCount; /* off 0x0014 */ struct _MMSUPPORT* Vm; /* off 0x0018 */ long TotalSystemPtes; /* off 0x001c */ long TotalFreeSystemPtes; /* off 0x0020 */ long CachedPteCount; /* off 0x0024 */ unsigned long PteFailures; /* off 0x0028 */ struct _KGUARDED_MUTEX* GlobalMutex; }; struct _MM_SESSION_SPACE /* sizeof 00001ec0 7872 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KGATE AttachGate; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0db8 */ struct _MMWSLE* Wsle; /* off 0x0dbc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0dc0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1df4 */ struct _MMPTE* PageTables; /* off 0x1df8 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e10 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e30 */ long PoolBigEntriesInUse; /* off 0x1e34 */ unsigned long PagedPoolPdeCount; /* off 0x1e38 */ unsigned long SpecialPoolPdeCount; /* off 0x1e3c */ unsigned long DynamicSessionPdeCount; /* off 0x1e40 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e6c */ void* PoolTrackTableExpansion; /* off 0x1e70 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1e74 */ void* PoolTrackBigPages; /* off 0x1e78 */ unsigned long PoolTrackBigPagesSize; /* off 0x1e7c */ struct _RTL_BITMAP SessionPoolPdes; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; enum _KTHREAD_STATE { Initialized =0x00000000 ,//0 Ready =0x00000001 ,//0 Running =0x00000002 ,//0 Standby =0x00000003 ,//0 Terminated =0x00000004 ,//0 Waiting =0x00000005 ,//0 Transition =0x00000006 ,//0 DeferredReady =0x00000007 ,//0 GateWait =0x00000008 ,//0 }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _VI_DEADLOCK_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned char PowerSettingChanged; /* off 0x0014 */ unsigned long DataLength; /* off 0x0018 */ unsigned char Data[1]; } PowerSettingNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 InvalidIDEvent =0x00000009 ,//0 PowerSettingChange =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 MaxRegNtNotifyClass =0x00000029 ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; ================================================ FILE: Addition/WindowKernel/ntkrnlmp_6.0.6002.18005.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Private:31 /* start bit 1 */; } s; } u; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_TASK /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; }; struct _TP_DIRECT /* sizeof 00000004 4 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Absolute; /* off 0x0001 */ unsigned char NpxIrql; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char Size; /* off 0x0002 */ unsigned char Hand; }; union { /* off 0x0003 */ unsigned char Inserted; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 00000208 520 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 LastTimeCheck; /* off 0x0010 */ unsigned __int64 IdleTimeAccumulated; union { /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 IdleTransitionTime; } Native; /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 LastIdleCheck; } Hv; }; /* off 0x0020 */ struct PPM_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ struct _PPM_PERF_STATES* PerfStates; /* off 0x0028 */ unsigned long LastKernelUserTime; /* off 0x002c */ unsigned long LastIdleThreadKTime; /* off 0x0030 */ unsigned __int64 LastGlobalTimeHv; /* off 0x0038 */ unsigned __int64 LastProcessorTimeHv; /* off 0x0040 */ unsigned char ThermalConstraint; /* off 0x0041 */ unsigned char LastBusyPercentage; /* off 0x0042 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short PStateDomainIdleAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0048 */ struct _KTIMER PerfTimer; /* off 0x0070 */ struct _KDPC PerfDpc; /* off 0x0090 */ unsigned long LastSysTime; /* off 0x0094 */ struct _KPRCB* PStateMaster; /* off 0x0098 */ unsigned long PStateSet; /* off 0x009c */ unsigned long CurrentPState; /* off 0x00a0 */ unsigned long DesiredPState; /* off 0x00a4 */ unsigned long PStateIdleStartTime; /* off 0x00a8 */ unsigned long PStateIdleTime; /* off 0x00ac */ unsigned long LastPStateIdleTime; /* off 0x00b0 */ unsigned long PStateStartTime; /* off 0x00b4 */ unsigned long DiaIndex; /* off 0x00b8 */ unsigned long Reserved0; /* off 0x00bc */ unsigned long WmiDispatchPtr; /* off 0x00c0 */ long WmiInterfaceEnabled; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00002008 8200 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char Number; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; union { /* off 0x001a */ unsigned short CpuStep; struct { /* off 0x001a */ unsigned char CpuStepping; /* off 0x001b */ unsigned char CpuModel; }; }; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned long CFlushSize; /* off 0x03c0 */ unsigned char CoresPerPhysicalProcessor; /* off 0x03c1 */ unsigned char LogicalProcessorsPerCore; /* off 0x03c2 */ unsigned char PrcbPad0[2]; /* off 0x03c4 */ unsigned long MHz; /* off 0x03c8 */ unsigned char PrcbPad1[80]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[49]; /* off 0x05a0 */ struct _KTHREAD* NpxThread; /* off 0x05a4 */ unsigned long InterruptCount; /* off 0x05a8 */ unsigned long KernelTime; /* off 0x05ac */ unsigned long UserTime; /* off 0x05b0 */ unsigned long DpcTime; /* off 0x05b4 */ unsigned long DpcTimeCount; /* off 0x05b8 */ unsigned long InterruptTime; /* off 0x05bc */ unsigned long AdjustDpcThreshold; /* off 0x05c0 */ unsigned long PageColor; /* off 0x05c4 */ unsigned char SkipTick; /* off 0x05c5 */ unsigned char DebuggerSavedIRQL; /* off 0x05c6 */ unsigned char NodeColor; /* off 0x05c7 */ unsigned char PollSlot; /* off 0x05c8 */ unsigned long NodeShiftedColor; /* off 0x05cc */ struct _KNODE* ParentNode; /* off 0x05d0 */ unsigned long MultiThreadProcessorSet; /* off 0x05d4 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x05d8 */ unsigned long SecondaryColorMask; /* off 0x05dc */ unsigned long DpcTimeLimit; /* off 0x05e0 */ unsigned long CcFastReadNoWait; /* off 0x05e4 */ unsigned long CcFastReadWait; /* off 0x05e8 */ unsigned long CcFastReadNotPossible; /* off 0x05ec */ unsigned long CcCopyReadNoWait; /* off 0x05f0 */ unsigned long CcCopyReadWait; /* off 0x05f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x05f8 */ long MmSpinLockOrdering; /* off 0x05fc */ long IoReadOperationCount; /* off 0x0600 */ long IoWriteOperationCount; /* off 0x0604 */ long IoOtherOperationCount; /* off 0x0608 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0610 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0618 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0620 */ unsigned long CcFastMdlReadNoWait; /* off 0x0624 */ unsigned long CcFastMdlReadWait; /* off 0x0628 */ unsigned long CcFastMdlReadNotPossible; /* off 0x062c */ unsigned long CcMapDataNoWait; /* off 0x0630 */ unsigned long CcMapDataWait; /* off 0x0634 */ unsigned long CcPinMappedDataCount; /* off 0x0638 */ unsigned long CcPinReadNoWait; /* off 0x063c */ unsigned long CcPinReadWait; /* off 0x0640 */ unsigned long CcMdlReadNoWait; /* off 0x0644 */ unsigned long CcMdlReadWait; /* off 0x0648 */ unsigned long CcLazyWriteHotSpots; /* off 0x064c */ unsigned long CcLazyWriteIos; /* off 0x0650 */ unsigned long CcLazyWritePages; /* off 0x0654 */ unsigned long CcDataFlushes; /* off 0x0658 */ unsigned long CcDataPages; /* off 0x065c */ unsigned long CcLostDelayedWrites; /* off 0x0660 */ unsigned long CcFastReadResourceMiss; /* off 0x0664 */ unsigned long CcCopyReadWaitMiss; /* off 0x0668 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x066c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0670 */ unsigned long CcMapDataWaitMiss; /* off 0x0674 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0678 */ unsigned long CcPinReadWaitMiss; /* off 0x067c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0680 */ unsigned long CcMdlReadWaitMiss; /* off 0x0684 */ unsigned long CcReadAheadIos; /* off 0x0688 */ unsigned long KeAlignmentFixupCount; /* off 0x068c */ unsigned long KeExceptionDispatchCount; /* off 0x0690 */ unsigned long KeSystemCalls; /* off 0x0694 */ unsigned long PrcbPad2[3]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0720 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x1020 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1920 */ unsigned long PacketBarrier; /* off 0x1924 */ long ReverseStall; /* off 0x1928 */ void* IpiFrame; /* off 0x192c */ unsigned char PrcbPad3[52]; /* off 0x1960 */ void* CurrentPacket[3]; /* off 0x196c */ unsigned long TargetSet; /* off 0x1970 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1974 */ unsigned long IpiFrozen; /* off 0x1978 */ unsigned char PrcbPad4[40]; /* off 0x19a0 */ unsigned long RequestSummary; /* off 0x19a4 */ struct _KPRCB* SignalDone; /* off 0x19a8 */ unsigned char PrcbPad5[56]; /* off 0x19e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1a08 */ void* DpcStack; /* off 0x1a0c */ long MaximumDpcQueueDepth; /* off 0x1a10 */ unsigned long DpcRequestRate; /* off 0x1a14 */ unsigned long MinimumDpcRate; /* off 0x1a18 */ unsigned char DpcInterruptRequested; /* off 0x1a19 */ unsigned char DpcThreadRequested; /* off 0x1a1a */ unsigned char DpcRoutineActive; /* off 0x1a1b */ unsigned char DpcThreadActive; /* off 0x1a1c */ unsigned long PrcbLock; /* off 0x1a20 */ unsigned long DpcLastCount; /* off 0x1a24 */ unsigned long TimerHand; /* off 0x1a28 */ unsigned long TimerRequest; /* off 0x1a2c */ void* PrcbPad41; /* off 0x1a30 */ struct _KEVENT DpcEvent; /* off 0x1a40 */ unsigned char ThreadDpcEnable; /* off 0x1a41 */ unsigned char QuantumEnd; /* off 0x1a42 */ unsigned char PrcbPad50; /* off 0x1a43 */ unsigned char IdleSchedule; /* off 0x1a44 */ long DpcSetEventRequest; /* off 0x1a48 */ long Sleeping; /* off 0x1a4c */ unsigned long PeriodicCount; /* off 0x1a50 */ unsigned long PeriodicBias; /* off 0x1a54 */ unsigned char PrcbPad51[6]; /* off 0x1a5c */ long TickOffset; /* off 0x1a60 */ struct _KDPC CallDpc; /* off 0x1a80 */ long ClockKeepAlive; /* off 0x1a84 */ unsigned char ClockCheckSlot; /* off 0x1a85 */ unsigned char ClockPollCycle; /* off 0x1a86 */ unsigned char PrcbPad6[2]; /* off 0x1a88 */ long DpcWatchdogPeriod; /* off 0x1a8c */ long DpcWatchdogCount; /* off 0x1a90 */ long ThreadWatchdogPeriod; /* off 0x1a94 */ long ThreadWatchdogCount; /* off 0x1a98 */ unsigned long PrcbPad70[2]; /* off 0x1aa0 */ struct _LIST_ENTRY WaitListHead; /* off 0x1aa8 */ unsigned long WaitLock; /* off 0x1aac */ unsigned long ReadySummary; /* off 0x1ab0 */ unsigned long QueueIndex; /* off 0x1ab4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1ab8 */ unsigned __int64 StartCycles; /* off 0x1ac0 */ unsigned __int64 CycleTime; /* off 0x1ac8 */ unsigned __int64 PrcbPad71[3]; /* off 0x1ae0 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1be0 */ void* ChainedInterruptList; /* off 0x1be4 */ long LookasideIrpFloat; /* off 0x1be8 */ long MmPageFaultCount; /* off 0x1bec */ long MmCopyOnWriteCount; /* off 0x1bf0 */ long MmTransitionCount; /* off 0x1bf4 */ long MmCacheTransitionCount; /* off 0x1bf8 */ long MmDemandZeroCount; /* off 0x1bfc */ long MmPageReadCount; /* off 0x1c00 */ long MmPageReadIoCount; /* off 0x1c04 */ long MmCacheReadCount; /* off 0x1c08 */ long MmCacheIoCount; /* off 0x1c0c */ long MmDirtyPagesWriteCount; /* off 0x1c10 */ long MmDirtyWriteIoCount; /* off 0x1c14 */ long MmMappedPagesWriteCount; /* off 0x1c18 */ long MmMappedWriteIoCount; /* off 0x1c1c */ unsigned long CachedCommit; /* off 0x1c20 */ unsigned long CachedResidentAvailable; /* off 0x1c24 */ void* HyperPte; /* off 0x1c28 */ unsigned char CpuVendor; /* off 0x1c29 */ unsigned char PrcbPad8[3]; /* off 0x1c2c */ unsigned char VendorString[13]; /* off 0x1c39 */ unsigned char InitialApicId; /* off 0x1c3a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1c3b */ unsigned char PrcbPad9[5]; /* off 0x1c40 */ unsigned long FeatureBits; /* off 0x1c48 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1c50 */ unsigned __int64 IsrTime; /* off 0x1c58 */ unsigned __int64 SpareField1; /* off 0x1c60 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x1e70 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1f38 */ struct _KDPC DpcWatchdogDpc; /* off 0x1f58 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1f80 */ void* WheaInfo; /* off 0x1f84 */ void* EtwSupport; /* off 0x1f88 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1f90 */ union _SLIST_HEADER HypercallPageList; /* off 0x1f98 */ void* HypercallPageVirtual; /* off 0x1f9c */ void* VirtualApicAssist; /* off 0x1fa0 */ unsigned __int64* StatisticsPage; /* off 0x1fa4 */ void* RateControl; /* off 0x1fa8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1fe4 */ unsigned long CacheCount; /* off 0x1fe8 */ unsigned long CacheProcessorMask[5]; /* off 0x1ffc */ unsigned long PackageProcessorSet; /* off 0x2000 */ unsigned long CoreProcessorSet; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char SpareByte; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; union { /* off 0x0038 */ struct _KAPC_STATE ApcState; struct { /* off 0x0038 */ unsigned char ApcStateFill[23]; /* off 0x004f */ char Priority; }; }; /* off 0x0050 */ unsigned short NextProcessor; /* off 0x0052 */ unsigned short DeferredProcessor; /* off 0x0054 */ unsigned long ApcQueueLock; /* off 0x0058 */ unsigned long ContextSwitches; /* off 0x005c */ unsigned char State; /* off 0x005d */ unsigned char NpxState; /* off 0x005e */ unsigned char WaitIrql; /* off 0x005f */ char WaitMode; /* off 0x0060 */ long WaitStatus; union { /* off 0x0064 */ struct _KWAIT_BLOCK* WaitBlockList; /* off 0x0064 */ struct _KGATE* GateObject; }; union { struct { /* off 0x0068 */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x0068 */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x0068 */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x0068 */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x0068 */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x0068 */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x0068 */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x0068 */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x0068 */ unsigned long Reserved:24 /* start bit 8 */; }; /* off 0x0068 */ long MiscFlags; }; /* off 0x006c */ unsigned char WaitReason; /* off 0x006d */ unsigned char SwapBusy; /* off 0x006e */ unsigned char Alerted[2]; union { /* off 0x0070 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0070 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0078 */ struct _KQUEUE* Queue; /* off 0x007c */ unsigned long WaitTime; union { struct { /* off 0x0080 */ short KernelApcDisable; /* off 0x0082 */ short SpecialApcDisable; }; struct { /* off 0x0080 */ unsigned long CombinedApcDisable; }; }; /* off 0x0084 */ void* Teb; union { /* off 0x0088 */ struct _KTIMER Timer; /* off 0x0088 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b0 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b0 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b0 */ unsigned long CycleChargePending:1 /* start bit 4 */; /* off 0x00b0 */ unsigned long CalloutActive:1 /* start bit 5 */; /* off 0x00b0 */ unsigned long ApcQueueable:1 /* start bit 6 */; /* off 0x00b0 */ unsigned long EnableStackSwap:1 /* start bit 7 */; /* off 0x00b0 */ unsigned long GuiThread:1 /* start bit 8 */; /* off 0x00b0 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b0 */ long ThreadFlags; }; union { /* off 0x00b8 */ struct _KWAIT_BLOCK WaitBlock[4]; struct { /* off 0x00b8 */ unsigned char WaitBlockFill0[23]; /* off 0x00cf */ unsigned char IdealProcessor; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill1[47]; /* off 0x00e7 */ char PreviousMode; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill2[71]; /* off 0x00ff */ unsigned char ResourceIndex; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill3[95]; /* off 0x0117 */ unsigned char LargeStack; }; }; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0124 */ void* FirstArgument; union { /* off 0x0128 */ void* CallbackStack; /* off 0x0128 */ unsigned long CallbackDepth; }; /* off 0x012c */ void* ServiceTable; /* off 0x0130 */ unsigned char ApcStateIndex; /* off 0x0131 */ char BasePriority; /* off 0x0132 */ char PriorityDecrement; /* off 0x0133 */ unsigned char Preempted; /* off 0x0134 */ unsigned char AdjustReason; /* off 0x0135 */ char AdjustIncrement; /* off 0x0136 */ unsigned char Spare01; /* off 0x0137 */ char Saturation; /* off 0x0138 */ unsigned long SystemCallNumber; /* off 0x013c */ unsigned long FreezeCount; /* off 0x0140 */ unsigned long UserAffinity; /* off 0x0144 */ struct _KPROCESS* Process; /* off 0x0148 */ unsigned long Affinity; /* off 0x014c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0154 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0154 */ unsigned char SavedApcStateFill[23]; /* off 0x016b */ unsigned char Spare02; }; }; /* off 0x016c */ char SuspendCount; /* off 0x016d */ unsigned char UserIdealProcessor; /* off 0x016e */ unsigned char Spare03; /* off 0x016f */ unsigned char OtherPlatformFill; /* off 0x0170 */ void* Win32Thread; /* off 0x0174 */ void* StackBase; union { /* off 0x0178 */ struct _KAPC SuspendApc; struct { /* off 0x0178 */ unsigned char SuspendApcFill0[1]; /* off 0x0179 */ char Spare04; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill1[3]; /* off 0x017b */ unsigned char QuantumReset; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill2[4]; /* off 0x017c */ unsigned long KernelTime; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill3[36]; /* off 0x019c */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill4[40]; /* off 0x01a0 */ void* LegoData; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill5[47]; /* off 0x01a7 */ unsigned char PowerState; }; }; /* off 0x01a8 */ unsigned long UserTime; union { /* off 0x01ac */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01ac */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01c0 */ unsigned long SListFaultCount; /* off 0x01c4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01cc */ struct _LIST_ENTRY MutantListHead; /* off 0x01d4 */ void* SListFaultAddress; /* off 0x01d8 */ void* MdlForLockedTeb; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; struct _KPROCESS /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ unsigned long Unused0; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Unused1; /* off 0x0033 */ unsigned char Unused2; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; union { struct { /* off 0x0060 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0060 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0060 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0060 */ long ReservedFlags:29 /* start bit 3 */; }; /* off 0x0060 */ long ProcessFlags; }; /* off 0x0064 */ char BasePriority; /* off 0x0065 */ char QuantumReset; /* off 0x0066 */ unsigned char State; /* off 0x0067 */ unsigned char ThreadSeed; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char IdealNode; /* off 0x006a */ unsigned char Visited; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; /* off 0x006c */ unsigned long StackCount; /* off 0x0070 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0078 */ unsigned __int64 CycleTime; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Fill:7 /* start bit 1 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ unsigned long ProcessorMask; /* off 0x002c */ unsigned char Color; /* off 0x002d */ unsigned char Seed; /* off 0x002e */ unsigned char NodeNumber; /* off 0x002f */ struct _flags Flags; /* off 0x0030 */ unsigned long MmShiftedColor; /* off 0x0034 */ unsigned long FreeCount[2]; /* off 0x003c */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x0040 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ long( __fastcall *IdleHandler)(void*,unsigned long); /* off 0x0004 */ void* Context; /* off 0x0008 */ unsigned long Latency; /* off 0x000c */ unsigned long Power; /* off 0x0010 */ unsigned long TimeCheck; /* off 0x0014 */ unsigned long StateFlags; /* off 0x0018 */ unsigned char PromotePercent; /* off 0x0019 */ unsigned char DemotePercent; /* off 0x001a */ unsigned char PromotePercentBase; /* off 0x001b */ unsigned char DemotePercentBase; /* off 0x001c */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hypervisor:2 /* start bit 2 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:24 /* start bit 8 */; }; } Flags; /* off 0x000c */ unsigned long TargetState; /* off 0x0010 */ unsigned long ActualState; /* off 0x0014 */ unsigned long OldState; /* off 0x0018 */ unsigned long TargetProcessors; /* off 0x001c */ struct _PPM_IDLE_STATE State[1]; }; struct PPM_IDLE_STATE_ACCOUNTING /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long IdleTransitions; /* off 0x0004 */ unsigned long FailedTransitions; /* off 0x0008 */ unsigned long InvalidBucketIndex; /* off 0x0010 */ unsigned __int64 TotalTime; /* off 0x0018 */ unsigned long IdleTimeBuckets[6]; }; struct PPM_IDLE_ACCOUNTING /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ struct PPM_IDLE_STATE_ACCOUNTING State[1]; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long UsingHypervisor:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoDomainAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0030 */ unsigned long TargetProcessors; /* off 0x0034 */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0038 */ unsigned long PStateContext; /* off 0x003c */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long TStateContext; /* off 0x0044 */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0048 */ struct _PPM_DIA_STATS* DiaStats; /* off 0x004c */ unsigned long DiaStatsCount; /* off 0x0050 */ struct _PPM_PERF_STATE State[1]; }; struct _PPM_DIA_STATS /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long PerfLevel; /* off 0x0004 */ unsigned long IdleTime; /* off 0x0008 */ unsigned long TimeInterval; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 00002128 8488 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000031 ,//0 }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 00000288 648 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x01e0 */ union _LARGE_INTEGER CreateTime; union { /* off 0x01e8 */ union _LARGE_INTEGER ExitTime; /* off 0x01e8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01f0 */ long ExitStatus; /* off 0x01f0 */ void* OfsChain; }; union { /* off 0x01f4 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x01f4 */ void* ForwardLinkShadow; /* off 0x01f8 */ void* StartAddress; }; }; union { /* off 0x01fc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01fc */ struct _ETHREAD* ReaperLink; /* off 0x01fc */ void* KeyedWaitValue; /* off 0x01fc */ void* Win32StartParameter; }; /* off 0x0200 */ unsigned long ActiveTimerListLock; /* off 0x0204 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x020c */ struct _CLIENT_ID Cid; union { /* off 0x0214 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0214 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0228 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x022c */ struct _LIST_ENTRY IrpList; /* off 0x0234 */ unsigned long TopLevelIrp; /* off 0x0238 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x023c */ union _PSP_RATE_APC* RateControlApc; /* off 0x0240 */ void* Win32StartAddress; /* off 0x0244 */ void* SparePtr0; /* off 0x0248 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0250 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0254 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0258 */ unsigned long ReadClusterSize; /* off 0x025c */ long MmLockOrdering; union { /* off 0x0260 */ unsigned long CrossThreadFlags; struct { /* off 0x0260 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0260 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0260 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0260 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0260 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0260 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0260 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0260 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0260 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0260 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0260 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0264 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0264 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0264 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0264 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0264 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0264 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0264 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0264 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0268 */ unsigned long SameThreadApcFlags; struct { /* off 0x0268 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0268 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0268 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0268 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0269 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0269 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0269 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0269 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x026a */ unsigned char Spare1:8 /* start bit 0 */; /* off 0x026b */ unsigned char PriorityRegionActive; }; }; /* off 0x026c */ unsigned char CacheManagerActive; /* off 0x026d */ unsigned char DisablePageFaultClustering; /* off 0x026e */ unsigned char ActiveFaultCount; /* off 0x0270 */ unsigned long AlpcMessageId; union { /* off 0x0274 */ void* AlpcMessage; /* off 0x0274 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0278 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x0280 */ unsigned long CacheManagerCount; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long reserved:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 1 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 2 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char SessionMaster:1 /* start bit 6 */; /* off 0x0000 */ unsigned char TrimmerAttached:1 /* start bit 7 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Reserved:3 /* start bit 1 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long PeakWorkingSetSize; /* off 0x0018 */ unsigned long ChargedWslePages; /* off 0x001c */ unsigned long MinimumWorkingSetSize; /* off 0x0020 */ unsigned long MaximumWorkingSetSize; /* off 0x0024 */ struct _MMWSL* VmWorkingSetList; /* off 0x0028 */ unsigned long Claim; /* off 0x002c */ unsigned long ActualWslePages; /* off 0x0030 */ unsigned long WorkingSetPrivateSize; /* off 0x0034 */ unsigned long WorkingSetSizeOverhead; /* off 0x0038 */ unsigned long WorkingSetSize; /* off 0x003c */ struct _KGATE* ExitGate; /* off 0x0040 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0044 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 00000270 624 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0080 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0088 */ union _LARGE_INTEGER CreateTime; /* off 0x0090 */ union _LARGE_INTEGER ExitTime; /* off 0x0098 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x009c */ void* UniqueProcessId; /* off 0x00a0 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00a8 */ unsigned long QuotaUsage[3]; /* off 0x00b4 */ unsigned long QuotaPeak[3]; /* off 0x00c0 */ unsigned long CommitCharge; /* off 0x00c4 */ unsigned long PeakVirtualSize; /* off 0x00c8 */ unsigned long VirtualSize; /* off 0x00cc */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00d4 */ void* DebugPort; union { /* off 0x00d8 */ void* ExceptionPortData; /* off 0x00d8 */ unsigned long ExceptionPortValue; /* off 0x00d8 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00dc */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00e0 */ struct _EX_FAST_REF Token; /* off 0x00e4 */ unsigned long WorkingSetPage; /* off 0x00e8 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x00ec */ struct _ETHREAD* RotateInProgress; /* off 0x00f0 */ struct _ETHREAD* ForkInProgress; /* off 0x00f4 */ unsigned long HardwareTrigger; /* off 0x00f8 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x00fc */ void* CloneRoot; /* off 0x0100 */ unsigned long NumberOfPrivatePages; /* off 0x0104 */ unsigned long NumberOfLockedPages; /* off 0x0108 */ void* Win32Process; /* off 0x010c */ struct _EJOB* Job; /* off 0x0110 */ void* SectionObject; /* off 0x0114 */ void* SectionBaseAddress; /* off 0x0118 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x011c */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0120 */ void* Win32WindowStation; /* off 0x0124 */ void* InheritedFromUniqueProcessId; /* off 0x0128 */ void* LdtInformation; /* off 0x012c */ void* Spare; /* off 0x0130 */ void* VdmObjects; /* off 0x0134 */ void* DeviceMap; /* off 0x0138 */ void* EtwDataSource; /* off 0x013c */ void* FreeTebHint; union { /* off 0x0140 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0140 */ unsigned __int64 Filler; }; /* off 0x0148 */ void* Session; /* off 0x014c */ unsigned char ImageFileName[16]; /* off 0x015c */ struct _LIST_ENTRY JobLinks; /* off 0x0164 */ void* LockedPagesList; /* off 0x0168 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0170 */ void* SecurityPort; /* off 0x0174 */ void* PaeTop; /* off 0x0178 */ unsigned long ActiveThreads; /* off 0x017c */ unsigned long ImagePathHash; /* off 0x0180 */ unsigned long DefaultHardErrorProcessing; /* off 0x0184 */ long LastThreadExitStatus; /* off 0x0188 */ struct _PEB* Peb; /* off 0x018c */ struct _EX_FAST_REF PrefetchTrace; /* off 0x0190 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x0198 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01a0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01a8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01c0 */ unsigned long CommitChargeLimit; /* off 0x01c4 */ unsigned long CommitChargePeak; /* off 0x01c8 */ void* AweInfo; /* off 0x01cc */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01d0 */ struct _MMSUPPORT Vm; /* off 0x0218 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0220 */ unsigned long ModifiedPageCount; union { /* off 0x0224 */ unsigned long Flags2; struct { /* off 0x0224 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0224 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0224 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0224 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0224 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0224 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0224 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0224 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0224 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0224 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0224 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0224 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0224 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0224 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0224 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0224 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x0224 */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x0224 */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x0224 */ unsigned long CrossSessionCreate:1 /* start bit 20 */; }; }; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0228 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0228 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0228 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0228 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0228 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0228 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0228 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0228 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0228 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0228 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0228 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0228 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0228 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0228 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0228 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0228 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0228 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0228 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0228 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0228 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0228 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0228 */ unsigned long SmapAllowed:1 /* start bit 25 */; /* off 0x0228 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0228 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0228 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0228 */ unsigned long SpareProcessFlags:1 /* start bit 31 */; }; }; /* off 0x022c */ long ExitStatus; /* off 0x0230 */ unsigned short Spare7; union { struct { /* off 0x0232 */ unsigned char SubSystemMinorVersion; /* off 0x0233 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0232 */ unsigned short SubSystemVersion; }; }; /* off 0x0234 */ unsigned char PriorityClass; /* off 0x0238 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0258 */ unsigned long Cookie; /* off 0x025c */ struct _ALPC_PROCESS_CONTEXT AlpcContext; }; struct _HANDLE_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000128 296 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00b4 */ unsigned long UIRestrictionsClass; /* off 0x00b8 */ unsigned long EndOfJobTimeAction; /* off 0x00bc */ void* CompletionPort; /* off 0x00c0 */ void* CompletionKey; /* off 0x00c4 */ unsigned long SessionId; /* off 0x00c8 */ unsigned long SchedulingClass; /* off 0x00d0 */ unsigned __int64 ReadOperationCount; /* off 0x00d8 */ unsigned __int64 WriteOperationCount; /* off 0x00e0 */ unsigned __int64 OtherOperationCount; /* off 0x00e8 */ unsigned __int64 ReadTransferCount; /* off 0x00f0 */ unsigned __int64 WriteTransferCount; /* off 0x00f8 */ unsigned __int64 OtherTransferCount; /* off 0x0100 */ unsigned long ProcessMemoryLimit; /* off 0x0104 */ unsigned long JobMemoryLimit; /* off 0x0108 */ unsigned long PeakProcessMemoryUsed; /* off 0x010c */ unsigned long PeakJobMemoryUsed; /* off 0x0110 */ unsigned long CurrentJobMemoryUsed; /* off 0x0114 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0118 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0120 */ unsigned long MemberLevel; /* off 0x0124 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _PEB /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ReservedBits0:28 /* start bit 4 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long SpareUlong; /* off 0x0038 */ unsigned long SparePebPtr0; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000294 660 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 000006b8 1720 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextEstimationSlot; /* off 0x0020 */ unsigned long NextAgingSlot; /* off 0x0024 */ unsigned long EstimatedAvailable; /* off 0x0028 */ unsigned long GrowthSinceLastEstimate; /* off 0x002c */ unsigned long NumberOfCommittedPageTables; /* off 0x0030 */ unsigned long VadBitMapHint; /* off 0x0034 */ unsigned long NonDirectCount; /* off 0x0038 */ unsigned long LastVadBit; /* off 0x003c */ unsigned long MaximumLastVadBit; /* off 0x0040 */ unsigned long LastAllocationSizeHint; /* off 0x0044 */ unsigned long LastAllocationSize; /* off 0x0048 */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x004c */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0050 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0054 */ void* HighestUserAddress; /* off 0x0058 */ unsigned short UsedPageTableEntries[768]; /* off 0x0658 */ unsigned long CommittedPageTables[24]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileMaximumInformation =0x00000033 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ enum _IRQ_DEVICE_POLICY AffinityPolicy; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault =0x00000000 ,//0 IrqPolicyAllCloseProcessors =0x00000001 ,//0 IrqPolicyOneCloseProcessor =0x00000002 ,//0 IrqPolicyAllProcessorsInMachine =0x00000003 ,//0 IrqPolicySpecifiedProcessors =0x00000004 ,//0 IrqPolicySpreadMessagesAcrossAllProcessors =0x00000005 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Reserved; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long TotalBusyCount; /* off 0x000c */ unsigned long ConservationIdleTime; /* off 0x0010 */ unsigned long PerformanceIdleTime; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _LIST_ENTRY IdleList; /* off 0x0020 */ unsigned char DeviceType; /* off 0x0024 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x0028 */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x002c */ struct _LIST_ENTRY NotifySourceList; /* off 0x0034 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x003c */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0050 */ struct _LIST_ENTRY Volume; /* off 0x0058 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; union _PSP_RATE_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000000 0 */ { }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000140 320 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned long Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _ERESOURCE Mutex; /* off 0x00b0 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x00b4 */ unsigned long Key; /* off 0x00b8 */ struct _EX_PUSH_LOCK ObjectLocks[32]; /* off 0x0138 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ struct _EPROCESS* ExclusiveProcess; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; struct _ETW_KERNEL_TRACE_TIMESTAMP /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER KernelTraceTimeStamp[2]; }; struct _PERFINFO_HARDPAGEFAULT_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER ReadOffset; /* off 0x0008 */ void* VirtualAddress; /* off 0x000c */ void* FileObject; /* off 0x0010 */ unsigned long ThreadId; /* off 0x0014 */ unsigned long ByteCount; }; struct _PF_HARD_FAULT_INFO /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _ETW_KERNEL_TRACE_TIMESTAMP KernelTimeStamp; /* off 0x0010 */ struct _PERFINFO_HARDPAGEFAULT_INFORMATION HardFaultEvent; /* off 0x0028 */ union _LARGE_INTEGER IoTimeInTicks; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Reserved:8 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevNone =0x00000003 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long CpuValid:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ProcessorType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 InstructionSet:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Operation:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Flags:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Level:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 CPUVersion:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CPUBrandString:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 ProcessorId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 TargetAddress:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InstructionPointer:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Reserved:51 /* start bit 13 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_GENERIC_PROCESSOR_ERROR /* sizeof 000000c0 192 */ { /* off 0x0000 */ union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ unsigned char ProcessorType; /* off 0x0009 */ unsigned char InstructionSet; /* off 0x000a */ unsigned char ErrorType; /* off 0x000b */ unsigned char Operation; /* off 0x000c */ unsigned char Flags; /* off 0x000d */ unsigned char Level; /* off 0x000e */ unsigned short Reserved; /* off 0x0010 */ unsigned __int64 CPUVersion; /* off 0x0018 */ unsigned char CPUBrandString[128]; /* off 0x0098 */ unsigned __int64 ProcessorId; /* off 0x00a0 */ unsigned __int64 TargetAddress; /* off 0x00a8 */ unsigned __int64 RequesterId; /* off 0x00b0 */ unsigned __int64 ResponderId; /* off 0x00b8 */ unsigned __int64 InstructionPointer; }; union _WHEA_MEMORY_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; union _WHEA_NMI_ERROR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_NMI_ERROR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Data[8]; /* off 0x0008 */ union _WHEA_NMI_ERROR_FLAGS Flags; }; union _WHEA_PCIEXPRESS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 PortType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Version:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 CommandStatus:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 DeviceId:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 DeviceSerialNumber:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BridgeControlStatus:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 ExpressCapability:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 AerInfo:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Reserved:56 /* start bit 8 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIEXPRESS_VERSION /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned char MinorVersion; /* off 0x0001 */ unsigned char MajorVersion; /* off 0x0002 */ unsigned short Reserved; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PCIEXPRESS_COMMAND_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short Command; /* off 0x0002 */ unsigned short Status; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_DEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long Segment:16 /* start bit 8 */; /* off 0x0008 */ unsigned long PrimaryBusNumber:8 /* start bit 24 */; /* off 0x000c */ unsigned long SecondaryBusNumber:8 /* start bit 0 */; /* off 0x000c */ unsigned long Reserved1:2 /* start bit 8 */; /* off 0x000c */ unsigned long SlotNumber:14 /* start bit 10 */; /* off 0x000c */ unsigned long Reserved2:8 /* start bit 24 */; }; union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short BridgeSecondaryStatus; /* off 0x0002 */ unsigned short BridgeControl; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_ERROR /* sizeof 000000d0 208 */ { /* off 0x0000 */ union _WHEA_PCIEXPRESS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ enum WHEA_PCIEXPRESS_DEVICE_TYPE PortType; /* off 0x000c */ union _WHEA_PCIEXPRESS_VERSION Version; /* off 0x0010 */ union _WHEA_PCIEXPRESS_COMMAND_STATUS CommandStatus; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ struct _WHEA_PCIEXPRESS_DEVICE_ID DeviceId; /* off 0x0028 */ unsigned __int64 DeviceSerialNumber; /* off 0x0030 */ union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS BridgeControlStatus; /* off 0x0034 */ unsigned char ExpressCapability[60]; /* off 0x0070 */ unsigned char AerInfo[96]; }; union _WHEA_PCIXBUS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 BusId:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 BusAddress:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 BusData:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BusCommand:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CompleterId:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Reserved:55 /* start bit 9 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIXBUS_ID /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char BusNumber; /* off 0x0001 */ unsigned char BusSegment; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_PCIXBUS_COMMAND /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Command:56 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PCIXCommand:1 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 57 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_PCIXBUS_ERROR /* sizeof 00000048 72 */ { /* off 0x0000 */ union _WHEA_PCIXBUS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned short ErrorType; /* off 0x0012 */ union _WHEA_PCIXBUS_ID BusId; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 BusAddress; /* off 0x0020 */ unsigned __int64 BusData; /* off 0x0028 */ union _WHEA_PCIXBUS_COMMAND BusCommand; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 CompleterId; /* off 0x0040 */ unsigned __int64 TargetId; }; union _WHEA_PCIXDEVICE_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 IdInfo:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 MemoryNumber:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 IoNumber:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 RegisterDataPairs:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Reserved:59 /* start bit 5 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_PCIXDEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorId; /* off 0x0002 */ unsigned short DeviceId; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long BusNumber:8 /* start bit 8 */; /* off 0x0008 */ unsigned long SegmentNumber:8 /* start bit 16 */; /* off 0x0008 */ unsigned long Reserved1:8 /* start bit 24 */; /* off 0x000c */ unsigned long Reserved2; }; struct WHEA_PCIXDEVICE_REGISTER_PAIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Register; /* off 0x0008 */ unsigned __int64 Data; }; struct _WHEA_PCIXDEVICE_ERROR /* sizeof 00000068 104 */ { /* off 0x0000 */ union _WHEA_PCIXDEVICE_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ struct _WHEA_PCIXDEVICE_ID IdInfo; /* off 0x0020 */ unsigned long MemoryNumber; /* off 0x0024 */ unsigned long IoNumber; /* off 0x0028 */ struct WHEA_PCIXDEVICE_REGISTER_PAIR RegisterDataPairs[4]; }; struct _WHEA_ERROR_PACKET /* sizeof 00000119 281 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long RawDataLength; /* off 0x0010 */ unsigned __int64 Reserved1; /* off 0x0018 */ unsigned __int64 Context; /* off 0x0020 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0024 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0028 */ unsigned long ErrorSourceId; /* off 0x002c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0030 */ unsigned long Reserved2; /* off 0x0034 */ unsigned long Version; /* off 0x0038 */ unsigned __int64 Cpu; /* off 0x0040 */ union /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _WHEA_GENERIC_PROCESSOR_ERROR ProcessorError; /* off 0x0000 */ struct _WHEA_MEMORY_ERROR MemoryError; /* off 0x0000 */ struct _WHEA_NMI_ERROR NmiError; /* off 0x0000 */ struct _WHEA_PCIEXPRESS_ERROR PciExpressError; /* off 0x0000 */ struct _WHEA_PCIXBUS_ERROR PciXBusError; /* off 0x0000 */ struct _WHEA_PCIXDEVICE_ERROR PciXDeviceError; } u; /* off 0x0110 */ enum _WHEA_RAW_DATA_FORMAT RawDataFormat; /* off 0x0114 */ unsigned long RawDataOffset; /* off 0x0118 */ unsigned char RawData[1]; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum WHEA_PCIEXPRESS_DEVICE_TYPE { WheaPciExpressEndpoint =0x00000000 ,//0 WheaPciExpressLegacyEndpoint =0x00000001 ,//0 WheaPciExpressRootPort =0x00000004 ,//0 WheaPciExpressUpstreamSwitchPort =0x00000005 ,//0 WheaPciExpressDownstreamSwitchPort =0x00000006 ,//0 WheaPciExpressToPciXBridge =0x00000007 ,//0 WheaPciXToExpressBridge =0x00000008 ,//0 WheaPciExpressRootComplexIntegratedEndpoint =0x00000009 ,//0 WheaPciExpressRootComplexEventCollector =0x0000000a ,//0 }; enum _WHEA_RAW_DATA_FORMAT { WheaRawDataFormatIPFSalRecord =0x00000000 ,//0 WheaRawDataFormatIA32MCA =0x00000001 ,//0 WheaRawDataFormatIntel64MCA =0x00000002 ,//0 WheaRawDataFormatAMD64MCA =0x00000003 ,//0 WheaRawDataFormatMemory =0x00000004 ,//0 WheaRawDataFormatPCIExpress =0x00000005 ,//0 WheaRawDataFormatNMIPort =0x00000006 ,//0 WheaRawDataFormatPCIXBus =0x00000007 ,//0 WheaRawDataFormatPCIXDevice =0x00000008 ,//0 WheaRawDataFormatGeneric =0x00000009 ,//0 WheaRawDataFormatMax =0x0000000a ,//0 }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HARDWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ProtoAddressLow:8 /* start bit 1 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long ProtoAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFileHigh:20 /* start bit 12 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long GlobalTimeStamp:20 /* start bit 12 */; }; struct _MMPTE_TRANSITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SubsectionAddressLow:9 /* start bit 1 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long SubsectionAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_LIST /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned long filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long filler1:1 /* start bit 11 */; /* off 0x0000 */ unsigned long NextEntry:20 /* start bit 12 */; }; struct _MMPTE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ unsigned long VolatileLong; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _ALPHA_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 0000007c 124 */ { /* off 0x0000 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0008 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0010 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0018 */ unsigned long KernelStack; /* off 0x001c */ unsigned long Prcb; /* off 0x0020 */ unsigned long Process; /* off 0x0024 */ unsigned long Thread; /* off 0x0028 */ unsigned long RegistryLength; /* off 0x002c */ void* RegistryBase; /* off 0x0030 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0034 */ char* ArcBootDeviceName; /* off 0x0038 */ char* ArcHalDeviceName; /* off 0x003c */ char* NtBootPathName; /* off 0x0040 */ char* NtHalPathName; /* off 0x0044 */ char* LoadOptions; /* off 0x0048 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x004c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0050 */ void* OemFontFile; /* off 0x0054 */ struct _SETUP_LOADER_BLOCK* SetupLoaderBlock; /* off 0x0058 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x005c */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _ALPHA_LOADER_BLOCK Alpha; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0068 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; /* off 0x0014 */ unsigned long AffinityMask; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _SETUP_LOADER_BLOCK /* sizeof 00000000 0 */ { }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ unsigned long MajorVersion; /* off 0x0018 */ unsigned long MinorVersion; /* off 0x001c */ void* EmInfFileImage; /* off 0x0020 */ unsigned long EmInfFileSize; /* off 0x0024 */ void* TriageDumpBlock; /* off 0x0028 */ unsigned long LoaderPagesSpanned; /* off 0x002c */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0030 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x0034 */ void* DrvDBImage; /* off 0x0038 */ unsigned long DrvDBSize; /* off 0x003c */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0040 */ unsigned char* HalpIRQLToTPR; /* off 0x0044 */ unsigned char* HalpVectorToIRQL; /* off 0x0048 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0050 */ void* AcpiTable; /* off 0x0054 */ unsigned long AcpiTableSize; /* off 0x0058 */ unsigned long BootViaWinload:1 /* start bit 0 */; /* off 0x0058 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x005c */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0060 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0068 */ void* WmdTestResult; /* off 0x006c */ struct _GUID BootIdentifier; /* off 0x007c */ unsigned long ResumePages; /* off 0x0080 */ void* DumpHeader; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPTE_FLUSH_LIST /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaximumCount; /* off 0x0008 */ void* FlushVa[33]; }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ unsigned char ByteFlags; /* off 0x0003 */ unsigned char InterlockedByteFlags; } e3; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long ContainsPxeSubsection:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x002c */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ void* ImageMerge; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ unsigned long BitmapHint; /* off 0x0034 */ unsigned long LastAllocationSize; /* off 0x0038 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0038 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0038 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x003a */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x003a */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x003c */ void* FileHandle; /* off 0x0040 */ union _SLIST_HEADER AvailableList; /* off 0x0048 */ union _SLIST_HEADER NeedProcessingList; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMPAGING_FILE_FREE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long FreeBit; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CMHIVE /* sizeof 000005e0 1504 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _FAST_MUTEX* HiveLock; /* off 0x0314 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x0318 */ struct _KTHREAD* ViewLockOwner; /* off 0x031c */ unsigned long ViewLockLast; /* off 0x0320 */ unsigned long ViewUnLockLast; /* off 0x0324 */ struct _FAST_MUTEX* WriterLock; /* off 0x0328 */ struct _EX_PUSH_LOCK FlusherLock; /* off 0x032c */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0330 */ struct _LIST_ENTRY MappedViewList; /* off 0x0338 */ struct _LIST_ENTRY PinnedViewList; /* off 0x0340 */ struct _LIST_ENTRY FlushedViewList; /* off 0x0348 */ unsigned short MappedViewCount; /* off 0x034a */ unsigned short PinnedViewCount; /* off 0x034c */ unsigned long UseCount; /* off 0x0350 */ unsigned long ViewsPerHive; /* off 0x0354 */ struct _FILE_OBJECT* FileObject; /* off 0x0358 */ unsigned long LastShrinkHiveSize; /* off 0x0360 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0368 */ struct _UNICODE_STRING FileFullPath; /* off 0x0370 */ struct _UNICODE_STRING FileUserName; /* off 0x0378 */ struct _UNICODE_STRING HiveRootPath; /* off 0x0380 */ unsigned long SecurityCount; /* off 0x0384 */ unsigned long SecurityCacheSize; /* off 0x0388 */ long SecurityHitHint; /* off 0x038c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0390 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0590 */ unsigned long UnloadEventCount; /* off 0x0594 */ struct _KEVENT** UnloadEventArray; /* off 0x0598 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x059c */ unsigned char Frozen; /* off 0x05a0 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05a4 */ unsigned char GrowOnlyMode; /* off 0x05a8 */ unsigned long GrowOffset; /* off 0x05ac */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05b4 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x05bc */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x05c0 */ unsigned long Flags; /* off 0x05c4 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x05cc */ unsigned long FlushCount; /* off 0x05d0 */ struct _CM_RM* CmRm; /* off 0x05d4 */ unsigned long CmRmInitFailPoint; /* off 0x05d8 */ long CmRmInitFailStatus; /* off 0x05dc */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000090 144 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:9 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 9 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 10 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:11 /* start bit 11 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0048 */ void* DelayCloseEntry; /* off 0x0050 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0058 */ unsigned short KcbMaxNameLen; /* off 0x005a */ unsigned short KcbMaxValueNameLen; /* off 0x005c */ unsigned long KcbMaxValueDataLen; /* off 0x0060 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0060 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0060 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0060 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x0064 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x006c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0070 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0078 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0080 */ struct _CHILD_LIST TransValueCache; /* off 0x0088 */ struct _CM_TRANS* TransValueListOwner; /* off 0x008c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[8]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_WORKITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _TEB /* sizeof 00000ff8 4088 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char SpareBool0; /* off 0x0f75 */ unsigned char SpareBool1; /* off 0x0f76 */ unsigned char SpareBool2; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short DbgSafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short DbgInDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short DbgHasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short DbgSkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short DbgWerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short DbgRanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short DbgClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short DbgSuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short RtlDisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long ProcessRundown; /* off 0x0fe0 */ unsigned __int64 LastSwitchTime; /* off 0x0fe8 */ unsigned __int64 TotalSwitchOutTime; /* off 0x0ff0 */ union _LARGE_INTEGER WaitReasonBitMap; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ union _ULARGE_INTEGER Time; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ unsigned short* DeviceName; /* off 0x0018 */ unsigned short* DriverName; /* off 0x001c */ unsigned long ChildCount; /* off 0x0020 */ unsigned long ActiveChild; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0038 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0048 */ enum _PNP_DEVNODE_STATE State; /* off 0x004c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0050 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00a0 */ unsigned long StateHistoryEntry; /* off 0x00a4 */ long CompletionStatus; /* off 0x00a8 */ struct _IRP* PendingIrp; /* off 0x00ac */ unsigned long Flags; /* off 0x00b0 */ unsigned long UserFlags; /* off 0x00b4 */ unsigned long Problem; /* off 0x00b8 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00bc */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00c0 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00c4 */ struct _UNICODE_STRING InstancePath; /* off 0x00cc */ struct _UNICODE_STRING ServiceName; /* off 0x00d4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00d8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00dc */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00e0 */ unsigned long BusNumber; /* off 0x00e4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00e8 */ unsigned long ChildBusNumber; /* off 0x00ec */ unsigned short ChildBusTypeIndex; /* off 0x00ee */ unsigned char RemovalPolicy; /* off 0x00ef */ unsigned char HardwareRemovalPolicy; /* off 0x00f0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00f8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0100 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0108 */ unsigned short NoTranslatorMask; /* off 0x010a */ unsigned short QueryTranslatorMask; /* off 0x010c */ unsigned short NoArbiterMask; /* off 0x010e */ unsigned short QueryArbiterMask; /* off 0x0110 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x0114 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0118 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x011c */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0120 */ unsigned long CapabilityFlags; /* off 0x0124 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x0134 */ unsigned long DisableableDepends; /* off 0x0138 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0140 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0148 */ unsigned long DriverUnloadRetryCount; /* off 0x014c */ struct _DEVICE_NODE* PreviousParent; /* off 0x0150 */ unsigned long DeletedChildren; /* off 0x0154 */ unsigned long NumaNodeIndex; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000018 24 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000140 320 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0130 */ void* WriteBehindWorkQueueEntry; /* off 0x0134 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0138 */ unsigned long ProcImagePathHash; /* off 0x013c */ unsigned long MappedWritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long MappingCount; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ struct _LIST_ENTRY CoalescedWorkQueueLinks; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x0014 */ unsigned char Function; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long InBlockDeccommits; /* off 0x0044 */ unsigned long InBlockDeccomitSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0124 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; union { /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY Entry; struct { /* off 0x0038 */ void* Padding2; union { struct { /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; struct { /* off 0x0038 */ void* Pointer0; }; /* off 0x003c */ void* Pointer1; }; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000280 640 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ void* LogFileHandle; /* off 0x000c */ struct _ETHREAD* LoggerThread; /* off 0x0010 */ long LoggerStatus; /* off 0x0014 */ unsigned long LoggerId; /* off 0x0018 */ void* NBQHead; /* off 0x001c */ void* OverflowNBQHead; /* off 0x0020 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0028 */ union _SLIST_HEADER GlobalList; /* off 0x0030 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0034 */ struct _UNICODE_STRING LoggerName; /* off 0x003c */ struct _UNICODE_STRING LogFileName; /* off 0x0044 */ struct _UNICODE_STRING LogFilePattern; /* off 0x004c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0054 */ unsigned long ClockType; /* off 0x0058 */ long CollectionOn; /* off 0x005c */ unsigned long MaximumFileSize; /* off 0x0060 */ unsigned long LoggerMode; /* off 0x0064 */ unsigned long LastFlushedBuffer; /* off 0x0068 */ unsigned long FlushTimer; /* off 0x006c */ unsigned long FlushThreshold; /* off 0x0070 */ union _LARGE_INTEGER ByteOffset; /* off 0x0078 */ union _LARGE_INTEGER FlushTimeStamp; /* off 0x0080 */ unsigned long MinimumBuffers; /* off 0x0084 */ long BuffersAvailable; /* off 0x0088 */ long NumberOfBuffers; /* off 0x008c */ unsigned long MaximumBuffers; /* off 0x0090 */ unsigned long EventsLost; /* off 0x0094 */ unsigned long BuffersWritten; /* off 0x0098 */ unsigned long LogBuffersLost; /* off 0x009c */ unsigned long RealTimeBuffersDelivered; /* off 0x00a0 */ unsigned long RealTimeBuffersLost; /* off 0x00a4 */ unsigned long BufferSize; /* off 0x00a8 */ unsigned long MaximumEventSize; /* off 0x00ac */ long* SequencePtr; /* off 0x00b0 */ unsigned long LocalSequence; /* off 0x00b4 */ struct _GUID InstanceGuid; /* off 0x00c4 */ __int64( __stdcall *GetCpuClock)(); /* off 0x00c8 */ long FileCounter; /* off 0x00cc */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d0 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00ec */ struct _LIST_ENTRY Consumers; /* off 0x00f4 */ unsigned long NumConsumers; /* off 0x00f8 */ struct _LIST_ENTRY Connecting; /* off 0x0100 */ unsigned char NewConsumer; /* off 0x0104 */ void* RealtimeLogfileHandle; /* off 0x0108 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0110 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0120 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0128 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0130 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0138 */ unsigned long RealtimeBuffersSaved; /* off 0x0140 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0150 */ unsigned long RealtimeDisconnectProcessId; /* off 0x0154 */ unsigned long RealtimeDisconnectConsumerId; /* off 0x0158 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x015c */ struct _KEVENT LoggerEvent; /* off 0x016c */ struct _KEVENT FlushEvent; /* off 0x017c */ struct _KDPC FlushDpc; /* off 0x019c */ struct _KMUTANT LoggerMutex; /* off 0x01bc */ struct _EX_PUSH_LOCK LoggerLock; /* off 0x01c0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01fc */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0200 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0248 */ __int64 BufferSequenceNumber; /* off 0x0250 */ long AcceptNewEvents; union { /* off 0x0254 */ unsigned long Flags; struct { /* off 0x0254 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0254 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0254 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0254 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0254 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0254 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0254 */ unsigned long NoMoreEnable:1 /* start bit 6 */; }; }; union { /* off 0x0258 */ unsigned long RequestFlag; struct { /* off 0x0258 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0258 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0258 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0258 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0258 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; }; }; /* off 0x025c */ unsigned short StackTraceFilterHookCount; /* off 0x025e */ unsigned short StackTraceFilter[16]; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x0004 */ void* SectionObject; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0010 */ void* SectionHandle; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ struct _ALPC_PORT* OwnerPort; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0008 */ unsigned long TotalHandles; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000f4 244 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ unsigned long SequenceNo; /* off 0x0014 */ void* CompletionPort; /* off 0x0018 */ void* CompletionKey; /* off 0x001c */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x0020 */ void* PortContext; /* off 0x0024 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0060 */ struct _LIST_ENTRY MainQueue; /* off 0x0068 */ struct _LIST_ENTRY PendingQueue; /* off 0x0070 */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0078 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x0080 */ struct _KSEMAPHORE* Semaphore; /* off 0x0080 */ struct _KEVENT* DummyEvent; }; /* off 0x0084 */ struct _EX_PUSH_LOCK Lock; /* off 0x0088 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00b4 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b8 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00c0 */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c4 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c8 */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d0 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00d4 */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00d8 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00dc */ struct _KALPC_MESSAGE* Message; /* off 0x00e0 */ unsigned long MainQueueLength; /* off 0x00e4 */ unsigned long PendingQueueLength; /* off 0x00e8 */ unsigned long LargeMessageQueueLength; /* off 0x00ec */ unsigned long CanceledQueueLength; /* off 0x00f0 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ void* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[0]; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _HANDLE_TABLE_ENTRY* UniqueTableEntry; /* off 0x0044 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x0060 */ void* DataUserVa; /* off 0x0064 */ void* DataSystemVa; /* off 0x0068 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x006c */ struct _ALPC_PORT* ConnectionPort; /* off 0x0070 */ struct _ETHREAD* ServerThread; /* off 0x0078 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x000c */ struct _KALPC_REGION* Region; /* off 0x0010 */ struct _ALPC_PORT* OwnerPort; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ void* Address; /* off 0x001c */ unsigned long Size; /* off 0x0020 */ void* SecureViewHandle; /* off 0x0024 */ void* WriteAccessHandle; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x0004 */ struct _LIST_ENTRY RegionListEntry; /* off 0x000c */ struct _KALPC_SECTION* Section; /* off 0x0010 */ unsigned long Offset; /* off 0x0014 */ unsigned long Size; /* off 0x0018 */ unsigned long ViewSize; /* off 0x001c */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x0020 */ struct _KALPC_VIEW* ReadWriteView; /* off 0x0024 */ unsigned long NumberOfViews; /* off 0x0028 */ struct _LIST_ENTRY ViewListHead; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ struct _OBJECT_TYPE* ObjectType; /* off 0x0010 */ unsigned long TargetAccess; /* off 0x0014 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0018 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _ETHREAD* TargetThread; /* off 0x0014 */ struct _ALPC_PORT* TargetPort; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e8 488 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x00c0 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x00c4 */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c8 */ struct _LUID OriginatingLogonSession; /* off 0x00d0 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0158 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01e0 */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _DEVPROPKEY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID fmtid; /* off 0x0010 */ unsigned long pid; }; enum _WAIT_TYPE { WaitAll =0x00000000 ,//0 WaitAny =0x00000001 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; /* off 0x004c */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0038 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x001c */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000270 624 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ char Number; /* off 0x0035 */ unsigned char ShareVector; /* off 0x0038 */ enum _KINTERRUPT_MODE Mode; /* off 0x003c */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0040 */ unsigned long ServiceCount; /* off 0x0044 */ unsigned long DispatchCount; /* off 0x0048 */ unsigned __int64 Rsvd1; /* off 0x0050 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ struct _CMHIVE* CmHive2; /* off 0x001c */ unsigned char ThreadFinished; /* off 0x001d */ unsigned char ThreadStarted; /* off 0x001e */ unsigned char Allocate; /* off 0x001f */ unsigned char WinPERequired; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; struct _LAZY_WRITER /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueue; /* off 0x0008 */ struct _KDPC ScanDpc; /* off 0x0028 */ struct _KTIMER ScanTimer; /* off 0x0050 */ unsigned char ScanActive; /* off 0x0051 */ unsigned char OtherWork; /* off 0x0052 */ unsigned char PendingTeardown; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_EXFAT_ID =0x0000008a ,//0 DPFLTR_ENDOFTABLE_ID =0x0000008b ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned char Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _MSUBSECTION* LastSubsectionHint; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d8 216 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPool =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaMaximumType =0x0000000d ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _PCI_HOTPLUG_SLOT_INTERRUPT { SlotInterruptPresenceDetect =0x00000000 ,//0 SlotInterruptLatchChange =0x00000001 ,//0 SlotInterruptAttentionButton =0x00000002 ,//0 SlotInterruptLinkStateChange =0x00000003 ,//0 SlotInterruptPowerFault =0x00000004 ,//0 SlotInterruptMaximum =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _KUSER_SHARED_DATA /* sizeof 000003b8 952 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[8]; /* off 0x0390 */ unsigned long HeapTracingPid[2]; /* off 0x0398 */ unsigned long CritSecTracingPid[2]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; union { /* off 0x03a8 */ unsigned __int64 AffinityPad; /* off 0x03a8 */ unsigned long ActiveProcessorAffinity; }; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POP_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_DISPLAY_RESUME_CONTEXT* DisplayResumeContext; /* off 0x003c */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000148 328 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000188 392 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0168 */ long NotifyGdiLevelForPowerOn; /* off 0x016c */ long NotifyGdiLevelForResumeUI; /* off 0x0170 */ struct _LIST_ENTRY Pending; /* off 0x0178 */ long Status; /* off 0x017c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0180 */ unsigned char Waking; /* off 0x0181 */ unsigned char Cancelled; /* off 0x0182 */ unsigned char IgnoreErrors; /* off 0x0183 */ unsigned char IgnoreNotImplemented; /* off 0x0184 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_DISPLAY_RESUME_CONTEXT /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ struct _ETHREAD* WorkerThread; /* off 0x0014 */ struct _KEVENT PrepareUIEvent; /* off 0x0024 */ struct _KEVENT PowerOnEvent; /* off 0x0034 */ struct _KEVENT DoneEvent; /* off 0x0044 */ unsigned long WorkerQueued; /* off 0x0048 */ unsigned long WorkerAbort; /* off 0x004c */ unsigned long NoResumeUI; }; struct _PO_HIBER_PERF /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; /* off 0x0048 */ unsigned __int64 ResumeAppStartTime; /* off 0x0050 */ unsigned __int64 ResumeAppEndTime; /* off 0x0058 */ unsigned __int64 HiberFileResumeTime; }; struct _POP_HIBER_CONTEXT /* sizeof 00000100 256 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ unsigned long IoPagesCount; /* off 0x0050 */ void* CurrentMcb; /* off 0x0054 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0058 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ struct _PO_MEMORY_RANGE_TABLE* TableHead; /* off 0x0074 */ unsigned char* CompressionWorkspace; /* off 0x0078 */ unsigned char* CompressedWriteBuffer; /* off 0x007c */ unsigned long* PerformanceStats; /* off 0x0080 */ void* CompressionBlock; /* off 0x0084 */ void* DmaIO; /* off 0x0088 */ void* TemporaryHeap; /* off 0x0090 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00f0 */ struct _MDL* BootLoaderLogMdl; /* off 0x00f4 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x00f8 */ void* ResumeContext; /* off 0x00fc */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct PO_MEMORY_IMAGE /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long TotalPages; /* off 0x0050 */ unsigned long FirstTablePage; /* off 0x0058 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00b8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00bc */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00c0 */ unsigned long NoBootLoaderLogPages; /* off 0x00c4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00e4 */ unsigned long NotUsed; /* off 0x00e8 */ unsigned long ResumeContextCheck; /* off 0x00ec */ unsigned long ResumeContextPages; }; struct _PO_MEMORY_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StartPage; /* off 0x0004 */ unsigned long EndPage; }; struct _PO_MEMORY_RANGE_TABLE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _PO_MEMORY_RANGE_TABLE* Next; /* off 0x0004 */ unsigned long NextTable; /* off 0x0008 */ unsigned long EntryCount; /* off 0x000c */ struct _PO_MEMORY_RANGE Range[1]; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0030 */ union _SLIST_HEADER PoolTrackers; /* off 0x0038 */ unsigned long CurrentPagedPoolAllocations; /* off 0x003c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0040 */ unsigned long PeakPagedPoolAllocations; /* off 0x0044 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PagedBytes; /* off 0x004c */ unsigned long NonPagedBytes; /* off 0x0050 */ unsigned long PeakPagedBytes; /* off 0x0054 */ unsigned long PeakNonPagedBytes; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ struct _MMPTE FreePteHead; /* off 0x0008 */ struct _MMPTE FreePteTail; /* off 0x000c */ long PagesInUse; /* off 0x0010 */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Hint; /* off 0x000c */ struct _MMPTE* BasePte; /* off 0x0010 */ unsigned long* FailureCount; /* off 0x0014 */ struct _MMSUPPORT* Vm; /* off 0x0018 */ long TotalSystemPtes; /* off 0x001c */ long TotalFreeSystemPtes; /* off 0x0020 */ long CachedPteCount; /* off 0x0024 */ unsigned long PteFailures; /* off 0x0028 */ struct _KGUARDED_MUTEX* GlobalMutex; }; struct _MM_SESSION_SPACE /* sizeof 00001ec0 7872 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KGATE AttachGate; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0db8 */ struct _MMWSLE* Wsle; /* off 0x0dbc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0dc0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1df4 */ struct _MMPTE* PageTables; /* off 0x1df8 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e10 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e30 */ long PoolBigEntriesInUse; /* off 0x1e34 */ unsigned long PagedPoolPdeCount; /* off 0x1e38 */ unsigned long SpecialPoolPdeCount; /* off 0x1e3c */ unsigned long DynamicSessionPdeCount; /* off 0x1e40 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e6c */ void* PoolTrackTableExpansion; /* off 0x1e70 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1e74 */ void* PoolTrackBigPages; /* off 0x1e78 */ unsigned long PoolTrackBigPagesSize; /* off 0x1e7c */ struct _RTL_BITMAP SessionPoolPdes; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; enum _KTHREAD_STATE { Initialized =0x00000000 ,//0 Ready =0x00000001 ,//0 Running =0x00000002 ,//0 Standby =0x00000003 ,//0 Terminated =0x00000004 ,//0 Waiting =0x00000005 ,//0 Transition =0x00000006 ,//0 DeferredReady =0x00000007 ,//0 GateWait =0x00000008 ,//0 }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _VI_DEADLOCK_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned char PowerSettingChanged; /* off 0x0014 */ unsigned long DataLength; /* off 0x0018 */ unsigned char Data[1]; } PowerSettingNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 InvalidIDEvent =0x00000009 ,//0 PowerSettingChange =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; ================================================ FILE: Addition/WindowKernel/ntkrnlmp_6.1.7000.0.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _XSTATE_FEATURE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long Size; }; struct _XSTATE_CONFIGURATION /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned __int64 EnabledFeatures; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long OptimizedSave:1 /* start bit 0 */; /* off 0x0010 */ struct _XSTATE_FEATURE Features[64]; }; struct _KUSER_SHARED_DATA /* sizeof 000005f0 1520 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02ed */ unsigned char TscQpcData; struct { /* off 0x02ed */ unsigned char TscQpcEnabled:1 /* start bit 0 */; /* off 0x02ed */ unsigned char TscQpcSpareFlag:1 /* start bit 1 */; /* off 0x02ed */ unsigned char TscQpcShift:6 /* start bit 2 */; }; }; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[16]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; /* off 0x03a8 */ unsigned __int64 Reserved5; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; /* off 0x03b8 */ unsigned __int64 TscQpcBias; /* off 0x03c0 */ unsigned long ActiveProcessorCount; /* off 0x03c4 */ unsigned short ActiveGroupCount; /* off 0x03c6 */ unsigned short Reserved4; /* off 0x03c8 */ unsigned long AitSamplingValue; /* off 0x03cc */ unsigned long AppCompatFlag; /* off 0x03d0 */ unsigned __int64 SystemDllNativeRelocation; /* off 0x03d8 */ unsigned long SystemDllWowRelocation; /* off 0x03e0 */ struct _XSTATE_CONFIGURATION XState; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON_V3 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Persistent:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Private:30 /* start bit 2 */; } s; } u; /* off 0x0020 */ enum _TP_CALLBACK_PRIORITY CallbackPriority; /* off 0x0024 */ unsigned long Size; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; enum _TP_CALLBACK_PRIORITY { TP_CALLBACK_PRIORITY_HIGH =0x00000000 ,//0 TP_CALLBACK_PRIORITY_NORMAL =0x00000001 ,//0 TP_CALLBACK_PRIORITY_LOW =0x00000002 ,//0 TP_CALLBACK_PRIORITY_INVALID =0x00000003 ,//0 }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _TP_NBQ_GUARD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY GuardLinks; /* off 0x0008 */ void* Guards[2]; }; struct _TP_TASK /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; /* off 0x000c */ struct _TP_NBQ_GUARD PostGuard; /* off 0x001c */ void* NBQNode; }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_DIRECT /* sizeof 0000000c 12 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _PROCESSOR_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Reserved; }; struct _TEB /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[2]; /* off 0x01ae */ unsigned char SpareBytes2[34]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ void* ResourceRetValue; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _PEB /* sizeof 00000240 576 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ProcessUsingFTH:1 /* start bit 4 */; /* off 0x0028 */ unsigned long ReservedBits0:27 /* start bit 5 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; union { /* off 0x0034 */ unsigned long TracingFlags; struct { /* off 0x0034 */ unsigned long HeapTracingEnabled:1 /* start bit 0 */; /* off 0x0034 */ unsigned long CritSecTracingEnabled:1 /* start bit 1 */; /* off 0x0034 */ unsigned long SpareTracingBits:30 /* start bit 2 */; }; }; /* off 0x0038 */ void* ApiSetMap; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; /* off 0x0238 */ void* pContextData; /* off 0x023c */ void* pImageHeaderHash; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000298 664 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; /* off 0x0294 */ unsigned long EnvironmentVersion; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ChainHead; /* off 0x0004 */ struct _LIST_ENTRY* PrevLinkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY Linkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry; /* off 0x000c */ struct _LIST_ENTRY* ChainHead; /* off 0x0010 */ unsigned long BucketIndex; }; struct _RTL_DYNAMIC_HASH_TABLE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long Shift; /* off 0x0008 */ unsigned long TableSize; /* off 0x000c */ unsigned long Pivot; /* off 0x0010 */ unsigned long DivisorMask; /* off 0x0014 */ unsigned long NumEntries; /* off 0x0018 */ unsigned long NonEmptyBuckets; /* off 0x001c */ unsigned long NumEnumerators; /* off 0x0020 */ void* Directory; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char ControlFlags; struct { /* off 0x0001 */ unsigned char Absolute:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Coalescable:1 /* start bit 1 */; /* off 0x0001 */ unsigned char KeepShifting:1 /* start bit 2 */; /* off 0x0001 */ unsigned char EncodedTolerableDelay:5 /* start bit 3 */; }; /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char ThreadControlFlags; struct { /* off 0x0002 */ unsigned char CpuThrottled:1 /* start bit 0 */; /* off 0x0002 */ unsigned char CycleProfiling:1 /* start bit 1 */; /* off 0x0002 */ unsigned char CounterProfiling:1 /* start bit 2 */; /* off 0x0002 */ unsigned char Reserved:5 /* start bit 3 */; }; /* off 0x0002 */ unsigned char Hand; /* off 0x0002 */ unsigned char Size; }; union { /* off 0x0003 */ unsigned char TimerControlFlags; struct { /* off 0x0003 */ unsigned char Index:6 /* start bit 0 */; /* off 0x0003 */ unsigned char Inserted:1 /* start bit 6 */; /* off 0x0003 */ unsigned char Expired:1 /* start bit 7 */; }; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _PPM_FFH_THROTTLE_STATE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char EnableLogging; /* off 0x0004 */ unsigned long MismatchCount; /* off 0x0008 */ unsigned char Initialized; /* off 0x0010 */ unsigned __int64 LastValue; /* off 0x0018 */ union _LARGE_INTEGER LastLogTickCount; }; struct _PROC_IDLE_SNAP /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Time; /* off 0x0008 */ unsigned __int64 Idle; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 IdleTimeLast; /* off 0x0010 */ unsigned __int64 IdleTimeTotal; /* off 0x0018 */ unsigned __int64 IdleTimeEntry; /* off 0x0020 */ struct _PROC_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ enum _PROC_HYPERVISOR_STATE Hypervisor; /* off 0x0028 */ unsigned long LastIdleThreadKTime; /* off 0x0030 */ unsigned __int64 TempUtilitySkipCount; /* off 0x0038 */ unsigned char ThermalConstraint; /* off 0x0039 */ unsigned char LastBusyPercentage; /* off 0x003a */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Reserved:15 /* start bit 1 */; }; } Flags; /* off 0x003c */ unsigned long LastSysTime; /* off 0x0040 */ unsigned long WmiDispatchPtr; /* off 0x0044 */ long WmiInterfaceEnabled; /* off 0x0048 */ struct _PPM_FFH_THROTTLE_STATE_INFO FFHThrottleStateInfo; /* off 0x0068 */ struct _KDPC PerfActionDpc; /* off 0x0088 */ long PerfActionMask; /* off 0x0090 */ struct _PROC_IDLE_SNAP IdleCheck; /* off 0x00a0 */ struct _PROC_IDLE_SNAP PerfCheck; /* off 0x00b0 */ struct _PROC_PERF_DOMAIN* Domain; /* off 0x00b4 */ struct _PROC_PERF_CONSTRAINT* PerfConstraint; /* off 0x00b8 */ struct _PROC_PERF_LOAD* Load; /* off 0x00bc */ unsigned long Utility; /* off 0x00c0 */ unsigned long OverUtilizedHistory; /* off 0x00c4 */ unsigned long AffinityCount; /* off 0x00c8 */ unsigned long AffinityHistory; /* off 0x00cc */ unsigned short PreviousReadyTime; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ unsigned long Period; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00001ee8 7912 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char LegacyNumber; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ char CpuType; /* off 0x0015 */ char CpuID; union { /* off 0x0016 */ unsigned short CpuStep; struct { /* off 0x0016 */ unsigned char CpuStepping; /* off 0x0017 */ unsigned char CpuModel; }; }; /* off 0x0018 */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x0338 */ unsigned long KernelReserved[16]; /* off 0x0378 */ unsigned long HalReserved[16]; /* off 0x03b8 */ unsigned long CFlushSize; /* off 0x03bc */ unsigned char CoresPerPhysicalProcessor; /* off 0x03bd */ unsigned char LogicalProcessorsPerCore; /* off 0x03be */ unsigned char PrcbPad0[2]; /* off 0x03c0 */ unsigned long MHz; /* off 0x03c4 */ unsigned char CpuVendor; /* off 0x03c5 */ unsigned char GroupIndex; /* off 0x03c6 */ unsigned short Group; /* off 0x03c8 */ unsigned long GroupSetMember; /* off 0x03cc */ unsigned long Number; /* off 0x03d0 */ unsigned char PrcbPad1[72]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[49]; /* off 0x05a0 */ struct _KTHREAD* NpxThread; /* off 0x05a4 */ unsigned long InterruptCount; /* off 0x05a8 */ unsigned long KernelTime; /* off 0x05ac */ unsigned long UserTime; /* off 0x05b0 */ unsigned long DpcTime; /* off 0x05b4 */ unsigned long DpcTimeCount; /* off 0x05b8 */ unsigned long InterruptTime; /* off 0x05bc */ unsigned long AdjustDpcThreshold; /* off 0x05c0 */ unsigned long PageColor; /* off 0x05c4 */ unsigned char DebuggerSavedIRQL; /* off 0x05c5 */ unsigned char NodeColor; /* off 0x05c6 */ unsigned char PrcbPad20[2]; /* off 0x05c8 */ unsigned long NodeShiftedColor; /* off 0x05cc */ struct _KNODE* ParentNode; /* off 0x05d0 */ unsigned long SecondaryColorMask; /* off 0x05d4 */ unsigned long DpcTimeLimit; /* off 0x05d8 */ unsigned long PrcbPad21[2]; /* off 0x05e0 */ unsigned long CcFastReadNoWait; /* off 0x05e4 */ unsigned long CcFastReadWait; /* off 0x05e8 */ unsigned long CcFastReadNotPossible; /* off 0x05ec */ unsigned long CcCopyReadNoWait; /* off 0x05f0 */ unsigned long CcCopyReadWait; /* off 0x05f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x05f8 */ long MmSpinLockOrdering; /* off 0x05fc */ long IoReadOperationCount; /* off 0x0600 */ long IoWriteOperationCount; /* off 0x0604 */ long IoOtherOperationCount; /* off 0x0608 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0610 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0618 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0620 */ unsigned long CcFastMdlReadNoWait; /* off 0x0624 */ unsigned long CcFastMdlReadWait; /* off 0x0628 */ unsigned long CcFastMdlReadNotPossible; /* off 0x062c */ unsigned long CcMapDataNoWait; /* off 0x0630 */ unsigned long CcMapDataWait; /* off 0x0634 */ unsigned long CcPinMappedDataCount; /* off 0x0638 */ unsigned long CcPinReadNoWait; /* off 0x063c */ unsigned long CcPinReadWait; /* off 0x0640 */ unsigned long CcMdlReadNoWait; /* off 0x0644 */ unsigned long CcMdlReadWait; /* off 0x0648 */ unsigned long CcLazyWriteHotSpots; /* off 0x064c */ unsigned long CcLazyWriteIos; /* off 0x0650 */ unsigned long CcLazyWritePages; /* off 0x0654 */ unsigned long CcDataFlushes; /* off 0x0658 */ unsigned long CcDataPages; /* off 0x065c */ unsigned long CcLostDelayedWrites; /* off 0x0660 */ unsigned long CcFastReadResourceMiss; /* off 0x0664 */ unsigned long CcCopyReadWaitMiss; /* off 0x0668 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x066c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0670 */ unsigned long CcMapDataWaitMiss; /* off 0x0674 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0678 */ unsigned long CcPinReadWaitMiss; /* off 0x067c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0680 */ unsigned long CcMdlReadWaitMiss; /* off 0x0684 */ unsigned long CcReadAheadIos; /* off 0x0688 */ unsigned long KeAlignmentFixupCount; /* off 0x068c */ unsigned long KeExceptionDispatchCount; /* off 0x0690 */ unsigned long KeSystemCalls; /* off 0x0694 */ unsigned long AvailableTime; /* off 0x0698 */ unsigned long PrcbPad22[2]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0720 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x1020 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1920 */ unsigned long PacketBarrier; /* off 0x1924 */ long ReverseStall; /* off 0x1928 */ void* IpiFrame; /* off 0x192c */ unsigned char PrcbPad3[52]; /* off 0x1960 */ void* CurrentPacket[3]; /* off 0x196c */ unsigned long TargetSet; /* off 0x1970 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1974 */ unsigned long IpiFrozen; /* off 0x1978 */ unsigned char PrcbPad4[40]; /* off 0x19a0 */ unsigned long RequestSummary; /* off 0x19a4 */ struct _KPRCB* SignalDone; /* off 0x19a8 */ unsigned char PrcbPad50[56]; /* off 0x19e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1a08 */ void* DpcStack; /* off 0x1a0c */ long MaximumDpcQueueDepth; /* off 0x1a10 */ unsigned long DpcRequestRate; /* off 0x1a14 */ unsigned long MinimumDpcRate; /* off 0x1a18 */ unsigned long PrcbPad41; /* off 0x1a1c */ unsigned long PrcbLock; /* off 0x1a20 */ unsigned long DpcLastCount; /* off 0x1a24 */ unsigned long TimerHand; /* off 0x1a28 */ unsigned long TimerRequest; /* off 0x1a2c */ struct _KTIMER** TimerExpiry; /* off 0x1a30 */ struct _KGATE DpcGate; /* off 0x1a40 */ unsigned char ThreadDpcEnable; /* off 0x1a41 */ unsigned char QuantumEnd; /* off 0x1a42 */ unsigned char DpcRoutineActive; /* off 0x1a43 */ unsigned char IdleSchedule; union { /* off 0x1a44 */ long DpcRequestSummary; /* off 0x1a44 */ short DpcRequestSlot[2]; struct { /* off 0x1a44 */ short NormalDpcState; union { /* off 0x1a46 */ unsigned short DpcThreadActive:1 /* start bit 0 */; /* off 0x1a46 */ short ThreadDpcState; }; }; }; /* off 0x1a48 */ unsigned long PrcbPad42; /* off 0x1a4c */ unsigned long PeriodicCount; /* off 0x1a50 */ unsigned long PeriodicBias; /* off 0x1a58 */ unsigned __int64 TickOffset; /* off 0x1a60 */ struct _KDPC CallDpc; /* off 0x1a80 */ long ClockKeepAlive; /* off 0x1a84 */ unsigned char ClockCheckSlot; /* off 0x1a85 */ unsigned char ClockPollCycle; /* off 0x1a86 */ unsigned char PrcbPad6[2]; /* off 0x1a88 */ long DpcWatchdogPeriod; /* off 0x1a8c */ long DpcWatchdogCount; /* off 0x1a90 */ long ThreadWatchdogPeriod; /* off 0x1a94 */ long ThreadWatchdogCount; /* off 0x1a98 */ long KeSpinLockOrdering; /* off 0x1a9c */ unsigned long PrcbPad70[1]; /* off 0x1aa0 */ struct _LIST_ENTRY WaitListHead; /* off 0x1aa8 */ unsigned long WaitLock; /* off 0x1aac */ unsigned long ReadySummary; /* off 0x1ab0 */ unsigned long QueueIndex; /* off 0x1ab4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1ab8 */ unsigned __int64 StartCycles; /* off 0x1ac0 */ unsigned __int64 CycleTime; /* off 0x1ac8 */ unsigned long HighCycleTime; /* off 0x1acc */ unsigned long PrcbPad71; /* off 0x1ad0 */ unsigned __int64 PrcbPad72[2]; /* off 0x1ae0 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1be0 */ void* ChainedInterruptList; /* off 0x1be4 */ long LookasideIrpFloat; /* off 0x1be8 */ long MmPageFaultCount; /* off 0x1bec */ long MmCopyOnWriteCount; /* off 0x1bf0 */ long MmTransitionCount; /* off 0x1bf4 */ long MmCacheTransitionCount; /* off 0x1bf8 */ long MmDemandZeroCount; /* off 0x1bfc */ long MmPageReadCount; /* off 0x1c00 */ long MmPageReadIoCount; /* off 0x1c04 */ long MmCacheReadCount; /* off 0x1c08 */ long MmCacheIoCount; /* off 0x1c0c */ long MmDirtyPagesWriteCount; /* off 0x1c10 */ long MmDirtyWriteIoCount; /* off 0x1c14 */ long MmMappedPagesWriteCount; /* off 0x1c18 */ long MmMappedWriteIoCount; /* off 0x1c1c */ unsigned long CachedCommit; /* off 0x1c20 */ unsigned long CachedResidentAvailable; /* off 0x1c24 */ void* HyperPte; /* off 0x1c28 */ unsigned char PrcbPad8[4]; /* off 0x1c2c */ unsigned char VendorString[13]; /* off 0x1c39 */ unsigned char InitialApicId; /* off 0x1c3a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1c3b */ unsigned char PrcbPad9[5]; /* off 0x1c40 */ unsigned long FeatureBits; /* off 0x1c48 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1c50 */ unsigned __int64 IsrTime; /* off 0x1c58 */ unsigned __int64 RuntimeAccumulation; /* off 0x1c60 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1d30 */ struct _KDPC DpcWatchdogDpc; /* off 0x1d50 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1d78 */ void* WheaInfo; /* off 0x1d7c */ void* EtwSupport; /* off 0x1d80 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1d88 */ union _SLIST_HEADER HypercallPageList; /* off 0x1d90 */ void* HypercallPageVirtual; /* off 0x1d94 */ void* VirtualApicAssist; /* off 0x1d98 */ unsigned __int64* StatisticsPage; /* off 0x1d9c */ void* RateControl; /* off 0x1da0 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1ddc */ unsigned long CacheCount; /* off 0x1de0 */ unsigned long CacheProcessorMask[5]; /* off 0x1df4 */ unsigned long PackageProcessorSet; /* off 0x1df8 */ unsigned long CoreProcessorSet; /* off 0x1dfc */ unsigned char PrcbPad10[36]; /* off 0x1e20 */ unsigned long SpinLockAcquireCount; /* off 0x1e24 */ unsigned long SpinLockContentionCount; /* off 0x1e28 */ unsigned long SpinLockSpinCount; /* off 0x1e2c */ unsigned long IpiSendRequestBroadcastCount; /* off 0x1e30 */ unsigned long IpiSendRequestRoutineCount; /* off 0x1e34 */ unsigned long IpiSendSoftwareInterruptCount; /* off 0x1e38 */ unsigned long ExInitializeResourceCount; /* off 0x1e3c */ unsigned long ExReInitializeResourceCount; /* off 0x1e40 */ unsigned long ExDeleteResourceCount; /* off 0x1e44 */ unsigned long ExecutiveResourceAcquiresCount; /* off 0x1e48 */ unsigned long ExecutiveResourceContentionsCount; /* off 0x1e4c */ unsigned long ExecutiveResourceReleaseExclusiveCount; /* off 0x1e50 */ unsigned long ExecutiveResourceReleaseSharedCount; /* off 0x1e54 */ unsigned long ExecutiveResourceConvertsCount; /* off 0x1e58 */ unsigned long ExAcqResExclusiveAttempts; /* off 0x1e5c */ unsigned long ExAcqResExclusiveAcquiresExclusive; /* off 0x1e60 */ unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; /* off 0x1e64 */ unsigned long ExAcqResExclusiveWaits; /* off 0x1e68 */ unsigned long ExAcqResExclusiveNotAcquires; /* off 0x1e6c */ unsigned long ExAcqResSharedAttempts; /* off 0x1e70 */ unsigned long ExAcqResSharedAcquiresExclusive; /* off 0x1e74 */ unsigned long ExAcqResSharedAcquiresShared; /* off 0x1e78 */ unsigned long ExAcqResSharedAcquiresSharedRecursive; /* off 0x1e7c */ unsigned long ExAcqResSharedWaits; /* off 0x1e80 */ unsigned long ExAcqResSharedNotAcquires; /* off 0x1e84 */ unsigned long ExAcqResSharedStarveExclusiveAttempts; /* off 0x1e88 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; /* off 0x1e8c */ unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; /* off 0x1e90 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; /* off 0x1e94 */ unsigned long ExAcqResSharedStarveExclusiveWaits; /* off 0x1e98 */ unsigned long ExAcqResSharedStarveExclusiveNotAcquires; /* off 0x1e9c */ unsigned long ExAcqResSharedWaitForExclusiveAttempts; /* off 0x1ea0 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; /* off 0x1ea4 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; /* off 0x1ea8 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; /* off 0x1eac */ unsigned long ExAcqResSharedWaitForExclusiveWaits; /* off 0x1eb0 */ unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; /* off 0x1eb4 */ unsigned long ExSetResOwnerPointerExclusive; /* off 0x1eb8 */ unsigned long ExSetResOwnerPointerSharedNew; /* off 0x1ebc */ unsigned long ExSetResOwnerPointerSharedOld; /* off 0x1ec0 */ unsigned long ExTryToAcqExclusiveAttempts; /* off 0x1ec4 */ unsigned long ExTryToAcqExclusiveAcquires; /* off 0x1ec8 */ unsigned long ExBoostExclusiveOwner; /* off 0x1ecc */ unsigned long ExBoostSharedOwners; /* off 0x1ed0 */ unsigned long ExEtwSynchTrackingNotificationsCount; /* off 0x1ed4 */ unsigned long ExEtwSynchTrackingNotificationsAccountedCount; /* off 0x1ed8 */ struct _CONTEXT* Context; /* off 0x1edc */ unsigned long ContextFlags; /* off 0x1ee0 */ struct _XSAVE_AREA* ExtendedState; }; struct _KPCR /* sizeof 00002008 8200 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; union _KWAIT_STATUS_REGISTER /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Flags; struct { /* off 0x0000 */ unsigned char State:2 /* start bit 0 */; /* off 0x0000 */ unsigned char Affinity:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Priority:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Apc:1 /* start bit 4 */; /* off 0x0000 */ unsigned char UserApc:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Alert:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Timer:1 /* start bit 7 */; }; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char BlockState; }; struct _GROUP_AFFINITY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Mask; /* off 0x0004 */ unsigned short Group; /* off 0x0006 */ unsigned short Reserved[3]; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 00000200 512 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; /* off 0x0038 */ union _KWAIT_STATUS_REGISTER WaitRegister; /* off 0x0039 */ unsigned char Running; /* off 0x003a */ unsigned char Alerted[2]; union { struct { /* off 0x003c */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x003c */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x003c */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x003c */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x003c */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x003c */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x003c */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x003c */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x003c */ unsigned long ApcInterruptRequest:1 /* start bit 8 */; /* off 0x003c */ unsigned long ForceDeferSchedule:1 /* start bit 9 */; /* off 0x003c */ unsigned long QuantumEndMigrate:1 /* start bit 10 */; /* off 0x003c */ unsigned long Reserved1:1 /* start bit 11 */; /* off 0x003c */ unsigned long Reserved2:20 /* start bit 12 */; }; /* off 0x003c */ long MiscFlags; }; union { /* off 0x0040 */ struct _KAPC_STATE ApcState; struct { /* off 0x0040 */ unsigned char ApcStateFill[23]; /* off 0x0057 */ char Priority; }; }; /* off 0x0058 */ unsigned long NextProcessor; /* off 0x005c */ unsigned long DeferredProcessor; /* off 0x0060 */ unsigned long ApcQueueLock; /* off 0x0064 */ unsigned long ContextSwitches; /* off 0x0068 */ unsigned char State; /* off 0x0069 */ char NpxState; /* off 0x006a */ unsigned char WaitIrql; /* off 0x006b */ char WaitMode; /* off 0x006c */ long WaitStatus; /* off 0x0070 */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0074 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0074 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x007c */ struct _KQUEUE* Queue; /* off 0x0080 */ unsigned long WaitTime; union { struct { /* off 0x0084 */ short KernelApcDisable; /* off 0x0086 */ short SpecialApcDisable; }; struct { /* off 0x0084 */ unsigned long CombinedApcDisable; }; }; /* off 0x0088 */ void* Teb; union { /* off 0x0090 */ struct _KTIMER Timer; /* off 0x0090 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b8 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b8 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b8 */ unsigned long CalloutActive:1 /* start bit 4 */; /* off 0x00b8 */ unsigned long ApcQueueable:1 /* start bit 5 */; /* off 0x00b8 */ unsigned long EnableStackSwap:1 /* start bit 6 */; /* off 0x00b8 */ unsigned long GuiThread:1 /* start bit 7 */; /* off 0x00b8 */ unsigned long ReservedFlags:24 /* start bit 8 */; }; /* off 0x00b8 */ long ThreadFlags; }; /* off 0x00c0 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x0120 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0128 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x012c */ void* FirstArgument; union { /* off 0x0130 */ void* CallbackStack; /* off 0x0130 */ unsigned long CallbackDepth; }; /* off 0x0134 */ void* ServiceTable; /* off 0x0138 */ unsigned char ApcStateIndex; /* off 0x0139 */ char BasePriority; union { /* off 0x013a */ char PriorityDecrement; struct { /* off 0x013a */ unsigned char ForegroundBoost:4 /* start bit 0 */; /* off 0x013a */ unsigned char UnusualBoost:4 /* start bit 4 */; }; }; /* off 0x013b */ unsigned char Preempted; /* off 0x013c */ unsigned char AdjustReason; /* off 0x013d */ char AdjustIncrement; /* off 0x013e */ char PreviousMode; /* off 0x013f */ char Saturation; /* off 0x0140 */ unsigned long SystemCallNumber; /* off 0x0144 */ unsigned long FreezeCount; /* off 0x0148 */ struct _GROUP_AFFINITY UserAffinity; /* off 0x0154 */ struct _KPROCESS* Process; /* off 0x0158 */ struct _GROUP_AFFINITY Affinity; /* off 0x0164 */ unsigned long IdealProcessor; /* off 0x0168 */ unsigned long UserIdealProcessor; /* off 0x016c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0174 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0174 */ unsigned char SavedApcStateFill[23]; /* off 0x018b */ unsigned char WaitReason; }; }; /* off 0x018c */ char SuspendCount; /* off 0x018d */ char Spare1; /* off 0x018e */ unsigned char OtherPlatformFill; /* off 0x0190 */ void* Win32Thread; /* off 0x0194 */ void* StackBase; union { /* off 0x0198 */ struct _KAPC SuspendApc; struct { /* off 0x0198 */ unsigned char SuspendApcFill0[1]; /* off 0x0199 */ unsigned char ResourceIndex; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill1[3]; /* off 0x019b */ unsigned char QuantumReset; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill2[4]; /* off 0x019c */ unsigned long KernelTime; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill3[36]; /* off 0x01bc */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill4[40]; /* off 0x01c0 */ void* LegoData; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill5[47]; /* off 0x01c7 */ unsigned char LargeStack; }; }; /* off 0x01c8 */ unsigned long UserTime; union { /* off 0x01cc */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01cc */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01e0 */ unsigned long SListFaultCount; /* off 0x01e4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01ec */ struct _LIST_ENTRY MutantListHead; /* off 0x01f4 */ void* SListFaultAddress; /* off 0x01f8 */ struct _KTHREAD_COUNTERS* ThreadCounters; /* off 0x01fc */ struct _XSTATE_SAVE* XStateSave; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KAFFINITY_EX /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ unsigned long Bitmap[1]; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; union _KSTACK_COUNT /* sizeof 00000004 4 */ { /* off 0x0000 */ long Value; struct { /* off 0x0000 */ unsigned long State:3 /* start bit 0 */; /* off 0x0000 */ unsigned long StackCount:29 /* start bit 3 */; }; }; struct _KPROCESS /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ struct _KGDTENTRY LdtDescriptor; /* off 0x0024 */ struct _KIDTENTRY Int21Descriptor; /* off 0x002c */ struct _KAFFINITY_EX ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ struct _KAFFINITY_EX Affinity; union { struct { /* off 0x0068 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0068 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0068 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0068 */ unsigned long ActiveGroupsMask:1 /* start bit 3 */; /* off 0x0068 */ long ReservedFlags:28 /* start bit 4 */; }; /* off 0x0068 */ long ProcessFlags; }; /* off 0x006c */ char BasePriority; /* off 0x006d */ char QuantumReset; /* off 0x006e */ unsigned char Visited; /* off 0x006f */ unsigned char Unused3; /* off 0x0070 */ unsigned long ThreadSeed[1]; /* off 0x0074 */ unsigned short IdealNode[1]; /* off 0x0076 */ unsigned short IdealGlobalNode; union { /* off 0x0078 */ struct _KEXECUTE_OPTIONS Flags; /* off 0x0078 */ unsigned char ExecuteOptions; }; /* off 0x0079 */ unsigned char Unused1; /* off 0x007a */ unsigned short IopmOffset; /* off 0x007c */ unsigned long Unused4; /* off 0x0080 */ union _KSTACK_COUNT StackCount; /* off 0x0084 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0090 */ unsigned __int64 CycleTime; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _COUNTER_READING /* sizeof 00000018 24 */ { /* off 0x0000 */ enum _HARDWARE_COUNTER_TYPE Type; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 Total; }; struct _KTHREAD_COUNTERS /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned __int64 WaitReasonBitMap; /* off 0x0008 */ struct _THREAD_PERFORMANCE_DATA* UserData; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 UpdateCount; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING HwCounter[16]; }; struct _THREAD_PERFORMANCE_DATA /* sizeof 000001c0 448 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ struct _PROCESSOR_NUMBER ProcessorNumber; /* off 0x0008 */ unsigned long ContextSwitches; /* off 0x000c */ unsigned long HwCountersCount; /* off 0x0010 */ unsigned __int64 UpdateCount; /* off 0x0018 */ unsigned __int64 WaitReasonBitMap; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING CycleTime; /* off 0x0040 */ struct _COUNTER_READING HwCounters[16]; }; enum _HARDWARE_COUNTER_TYPE { PMCCounter =0x00000000 ,//0 MaxHardwareCounterType =0x00000001 ,//0 }; struct _XSTATE_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned long Reserved1; /* off 0x0010 */ struct _XSAVE_AREA* Area; /* off 0x0014 */ unsigned long Reserved2; /* off 0x0018 */ void* Buffer; /* off 0x001c */ unsigned long Reserved3; }; struct _XSTATE_SAVE /* sizeof 00000020 32 */ { union { struct { /* off 0x0000 */ __int64 Reserved1; /* off 0x0008 */ unsigned long Reserved2; /* off 0x000c */ struct _XSTATE_SAVE* Prev; /* off 0x0010 */ struct _XSAVE_AREA* Reserved3; /* off 0x0014 */ struct _KTHREAD* Thread; /* off 0x0018 */ void* Reserved4; /* off 0x001c */ unsigned char Level; }; /* off 0x0000 */ struct _XSTATE_CONTEXT XStateContext; }; }; struct _M128A /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Low; /* off 0x0008 */ __int64 High; }; struct _XSAVE_FORMAT /* sizeof 00000200 512 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned char TagWord; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned short ErrorSelector; /* off 0x000e */ unsigned short Reserved2; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned short DataSelector; /* off 0x0016 */ unsigned short Reserved3; /* off 0x0018 */ unsigned long MxCsr; /* off 0x001c */ unsigned long MxCsr_Mask; /* off 0x0020 */ struct _M128A FloatRegisters[8]; /* off 0x00a0 */ struct _M128A XmmRegisters[8]; /* off 0x0120 */ unsigned char Reserved4[192]; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; }; struct _XSAVE_AREA_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned __int64 Reserved[7]; }; struct _XSAVE_AREA /* sizeof 00000240 576 */ { /* off 0x0000 */ struct _XSAVE_FORMAT LegacyState; /* off 0x0200 */ struct _XSAVE_AREA_HEADER Header; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char GroupAssigned:1 /* start bit 1 */; /* off 0x0000 */ unsigned char GroupCommitted:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Fill:5 /* start bit 3 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; /* off 0x0014 */ unsigned long Pad0; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ struct _GROUP_AFFINITY Affinity; /* off 0x002c */ unsigned long ProximityId; /* off 0x0030 */ unsigned short NodeNumber; /* off 0x0032 */ unsigned short PrimaryNodeNumber; /* off 0x0034 */ unsigned char MaximumProcessors; /* off 0x0035 */ unsigned char Color; /* off 0x0036 */ struct _flags Flags; /* off 0x0037 */ unsigned char NodePad0; /* off 0x0038 */ unsigned long Seed; /* off 0x003c */ unsigned long MmShiftedColor; /* off 0x0040 */ unsigned long FreeCount[2]; /* off 0x0048 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; /* off 0x0060 */ long ParkLock; /* off 0x0064 */ unsigned long NodePad1; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _KAFFINITY_EX DomainMembers; /* off 0x000c */ long( __fastcall *IdleCheck)(void*); /* off 0x0010 */ void( __fastcall *IdleHandler)(void*,unsigned long); /* off 0x0014 */ void* Context; /* off 0x0018 */ unsigned long Latency; /* off 0x001c */ unsigned long Power; /* off 0x0020 */ unsigned long TimeCheck; /* off 0x0024 */ unsigned long StateFlags; /* off 0x0028 */ unsigned char PromotePercent; /* off 0x0029 */ unsigned char DemotePercent; /* off 0x002a */ unsigned char PromotePercentBase; /* off 0x002b */ unsigned char DemotePercentBase; /* off 0x002c */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0008 */ unsigned long TargetState; /* off 0x000c */ unsigned long ActualState; /* off 0x0010 */ unsigned long OldState; /* off 0x0014 */ unsigned char NewlyUnparked; /* off 0x0018 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x0024 */ struct _PPM_IDLE_STATE State[1]; }; struct _PROC_IDLE_STATE_BUCKET /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned __int64 MinTime; /* off 0x0010 */ unsigned __int64 MaxTime; /* off 0x0018 */ unsigned long Count; }; struct _PROC_IDLE_STATE_ACCOUNTING /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned long IdleTransitions; /* off 0x000c */ unsigned long FailedTransitions; /* off 0x0010 */ unsigned long InvalidBucketIndex; /* off 0x0018 */ unsigned __int64 MinTime; /* off 0x0020 */ unsigned __int64 MaxTime; /* off 0x0028 */ struct _PROC_IDLE_STATE_BUCKET IdleTimeBuckets[16]; }; struct _PROC_IDLE_ACCOUNTING /* sizeof 000002c0 704 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ unsigned __int64 BucketLimits[16]; /* off 0x0098 */ struct _PROC_IDLE_STATE_ACCOUNTING State[1]; }; enum _PROC_HYPERVISOR_STATE { ProcHypervisorNone =0x00000000 ,//0 ProcHypervisorPresent =0x00000001 ,//0 ProcHypervisorPower =0x00000002 ,//0 }; struct _PROC_PERF_DOMAIN /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _KPRCB* Master; /* off 0x000c */ struct _KAFFINITY_EX Members; /* off 0x0018 */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x001c */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0020 */ void( __fastcall *BoostPolicyHandler)(unsigned long); /* off 0x0024 */ unsigned long( __fastcall *PerfSelectionHandler)(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long*,unsigned long*); /* off 0x0028 */ void( __fastcall *PerfHandler)(unsigned long,unsigned long); /* off 0x002c */ struct _PROC_PERF_CONSTRAINT* Processors; /* off 0x0030 */ unsigned __int64 PerfChangeTime; /* off 0x0038 */ unsigned long ProcessorCount; /* off 0x003c */ unsigned long PreviousFrequencyMhz; /* off 0x0040 */ unsigned long CurrentFrequencyMhz; /* off 0x0044 */ unsigned long PreviousFrequency; /* off 0x0048 */ unsigned long CurrentFrequency; /* off 0x004c */ unsigned long CurrentPerfContext; /* off 0x0050 */ unsigned long DesiredFrequency; /* off 0x0054 */ unsigned long MaxFrequency; /* off 0x0058 */ unsigned long MinPerfPercent; /* off 0x005c */ unsigned long MinThrottlePercent; /* off 0x0060 */ unsigned long MaxPercent; /* off 0x0064 */ unsigned long MinPercent; /* off 0x0068 */ unsigned long ConstrainedMaxPercent; /* off 0x006c */ unsigned long ConstrainedMinPercent; /* off 0x0070 */ unsigned char Coordination; /* off 0x0074 */ long PerfChangeIntervalCount; }; struct _PROC_PERF_CONSTRAINT /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KPRCB* Prcb; /* off 0x0004 */ unsigned long PerfContext; /* off 0x0008 */ unsigned long PercentageCap; /* off 0x000c */ unsigned long ThermalCap; /* off 0x0010 */ unsigned long TargetFrequency; /* off 0x0014 */ unsigned long AcumulatedFullFrequency; /* off 0x0018 */ unsigned long AcumulatedZeroFrequency; }; struct _PROC_PERF_LOAD /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char BusyPercentage; /* off 0x0001 */ unsigned char FrequencyPercentage; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueUnusedSpare0 =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000031 ,//0 }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 000002b8 696 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x0200 */ union _LARGE_INTEGER CreateTime; union { /* off 0x0208 */ union _LARGE_INTEGER ExitTime; /* off 0x0208 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x0210 */ long ExitStatus; /* off 0x0210 */ void* OfsChain; }; union { /* off 0x0214 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x0214 */ void* ForwardLinkShadow; /* off 0x0218 */ void* StartAddress; }; }; union { /* off 0x021c */ struct _TERMINATION_PORT* TerminationPort; /* off 0x021c */ struct _ETHREAD* ReaperLink; /* off 0x021c */ void* KeyedWaitValue; }; /* off 0x0220 */ unsigned long ActiveTimerListLock; /* off 0x0224 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x022c */ struct _CLIENT_ID Cid; union { /* off 0x0234 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0234 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0248 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x024c */ struct _LIST_ENTRY IrpList; /* off 0x0254 */ unsigned long TopLevelIrp; /* off 0x0258 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x025c */ union _PSP_CPU_QUOTA_APC* CpuQuotaApc; /* off 0x0260 */ void* Win32StartAddress; /* off 0x0264 */ void* LegacyPowerObject; /* off 0x0268 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0270 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0274 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0278 */ unsigned long ReadClusterSize; /* off 0x027c */ long MmLockOrdering; union { /* off 0x0280 */ unsigned long CrossThreadFlags; struct { /* off 0x0280 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0280 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0280 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0280 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0280 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0280 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0280 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0280 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0280 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0280 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0280 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0280 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0280 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0284 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0284 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0284 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0284 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0284 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0284 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0284 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0284 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0288 */ unsigned long SameThreadApcFlags; struct { /* off 0x0288 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0288 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0288 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0288 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0289 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0289 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0289 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0289 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetExclusive:1 /* start bit 0 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetShared:1 /* start bit 1 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetExclusive:1 /* start bit 2 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetShared:1 /* start bit 3 */; /* off 0x028a */ unsigned char Spare1:4 /* start bit 4 */; /* off 0x028b */ unsigned char PriorityRegionActive; }; }; /* off 0x028c */ unsigned char CacheManagerActive; /* off 0x028d */ unsigned char DisablePageFaultClustering; /* off 0x028e */ unsigned char ActiveFaultCount; /* off 0x028f */ unsigned char LockOrderState; /* off 0x0290 */ unsigned long AlpcMessageId; union { /* off 0x0294 */ void* AlpcMessage; /* off 0x0294 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0298 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x02a0 */ unsigned long CacheManagerCount; /* off 0x02a4 */ unsigned long CmCallbackCount; /* off 0x02a8 */ unsigned long IrpListLock; /* off 0x02ac */ unsigned long IoBoostCount; /* off 0x02b0 */ void* ReservedForSynchTracking; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { struct { /* off 0x0004 */ unsigned long IoPriorityBoosted:1 /* start bit 0 */; /* off 0x0004 */ unsigned long OwnerCount:31 /* start bit 1 */; }; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long reserved:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char WorkingSetType:3 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 3 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 6 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 7 */; /* off 0x0001 */ unsigned char SessionMaster:1 /* start bit 0 */; /* off 0x0001 */ unsigned char TrimmerAttached:1 /* start bit 1 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 2 */; /* off 0x0001 */ unsigned char Reserved:1 /* start bit 3 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long HardFaultCount; /* off 0x0018 */ unsigned long PeakWorkingSetSize; /* off 0x001c */ unsigned long ChargedWslePages; /* off 0x0020 */ unsigned long MinimumWorkingSetSize; /* off 0x0024 */ unsigned long MaximumWorkingSetSize; /* off 0x0028 */ struct _MMWSL* VmWorkingSetList; /* off 0x002c */ unsigned long AgeDistribution[7]; /* off 0x0048 */ unsigned long ActualWslePages; /* off 0x004c */ unsigned long WorkingSetPrivateSize; /* off 0x0050 */ unsigned long WorkingSetSizeOverhead; /* off 0x0054 */ unsigned long WorkingSetSize; /* off 0x0058 */ unsigned long RepurposeCount; /* off 0x005c */ struct _KGATE* ExitGate; /* off 0x0060 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0064 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 000002c0 704 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0098 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x00a0 */ union _LARGE_INTEGER CreateTime; /* off 0x00a8 */ union _LARGE_INTEGER ExitTime; /* off 0x00b0 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x00b4 */ void* UniqueProcessId; /* off 0x00b8 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00c0 */ unsigned long ProcessQuotaUsage[2]; /* off 0x00c8 */ unsigned long ProcessQuotaPeak[2]; /* off 0x00d0 */ unsigned long CommitCharge; /* off 0x00d4 */ unsigned long SpareUlongPtr[2]; /* off 0x00dc */ unsigned long PeakVirtualSize; /* off 0x00e0 */ unsigned long VirtualSize; /* off 0x00e4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00ec */ void* DebugPort; union { /* off 0x00f0 */ void* ExceptionPortData; /* off 0x00f0 */ unsigned long ExceptionPortValue; /* off 0x00f0 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00f4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00f8 */ struct _EX_FAST_REF Token; /* off 0x00fc */ unsigned long WorkingSetPage; /* off 0x0100 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x0104 */ struct _ETHREAD* RotateInProgress; /* off 0x0108 */ struct _ETHREAD* ForkInProgress; /* off 0x010c */ unsigned long HardwareTrigger; /* off 0x0110 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x0114 */ void* CloneRoot; /* off 0x0118 */ unsigned long NumberOfPrivatePages; /* off 0x011c */ unsigned long NumberOfLockedPages; /* off 0x0120 */ void* Win32Process; /* off 0x0124 */ struct _EJOB* Job; /* off 0x0128 */ void* SectionObject; /* off 0x012c */ void* SectionBaseAddress; /* off 0x0130 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x0134 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0138 */ void* Win32WindowStation; /* off 0x013c */ void* InheritedFromUniqueProcessId; /* off 0x0140 */ void* LdtInformation; /* off 0x0144 */ void* Spare; /* off 0x0148 */ void* VdmObjects; /* off 0x014c */ void* DeviceMap; /* off 0x0150 */ void* EtwDataSource; /* off 0x0154 */ void* FreeTebHint; union { /* off 0x0158 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0158 */ unsigned __int64 Filler; }; /* off 0x0160 */ void* Session; /* off 0x0164 */ unsigned char ImageFileName[16]; /* off 0x0174 */ struct _LIST_ENTRY JobLinks; /* off 0x017c */ void* LockedPagesList; /* off 0x0180 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0188 */ void* SecurityPort; /* off 0x018c */ void* PaeTop; /* off 0x0190 */ unsigned long ActiveThreads; /* off 0x0194 */ unsigned long ImagePathHash; /* off 0x0198 */ unsigned long DefaultHardErrorProcessing; /* off 0x019c */ long LastThreadExitStatus; /* off 0x01a0 */ struct _PEB* Peb; /* off 0x01a4 */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01a8 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01c8 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01d0 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01d8 */ unsigned long CommitChargeLimit; /* off 0x01dc */ unsigned long CommitChargePeak; /* off 0x01e0 */ void* AweInfo; /* off 0x01e4 */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01e8 */ struct _MMSUPPORT Vm; /* off 0x0250 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0258 */ unsigned long ModifiedPageCount; union { /* off 0x025c */ unsigned long Flags2; struct { /* off 0x025c */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x025c */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x025c */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x025c */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x025c */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x025c */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x025c */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x025c */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x025c */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x025c */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x025c */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x025c */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x025c */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x025c */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x025c */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x025c */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x025c */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x025c */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x025c */ unsigned long CrossSessionCreate:1 /* start bit 20 */; }; }; union { /* off 0x0260 */ unsigned long Flags; struct { /* off 0x0260 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0260 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0260 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0260 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0260 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0260 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0260 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0260 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0260 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0260 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0260 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0260 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0260 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0260 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0260 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0260 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0260 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0260 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0260 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0260 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0260 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0260 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0260 */ unsigned long PropagateNode:1 /* start bit 25 */; /* off 0x0260 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0260 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0260 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0260 */ unsigned long SpareProcessFlags:1 /* start bit 31 */; }; }; /* off 0x0264 */ long ExitStatus; /* off 0x0268 */ unsigned short Spare7; union { struct { /* off 0x026a */ unsigned char SubSystemMinorVersion; /* off 0x026b */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x026a */ unsigned short SubSystemVersion; }; }; /* off 0x026c */ unsigned char PriorityClass; /* off 0x0270 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0290 */ unsigned long Cookie; /* off 0x0294 */ unsigned long Spare8; /* off 0x0298 */ struct _ALPC_PROCESS_CONTEXT AlpcContext; /* off 0x02a8 */ struct _LIST_ENTRY TimerResolutionLink; /* off 0x02b0 */ unsigned long RequestedTimerResolution; /* off 0x02b4 */ unsigned long ActiveThreadsHighWatermark; /* off 0x02b8 */ unsigned long ConsoleHostProcess; /* off 0x02bc */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _HANDLE_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ unsigned long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ unsigned long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; /* off 0x0038 */ unsigned long HandleCountHighWatermark; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ unsigned long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ struct _KAFFINITY_EX Affinity; /* off 0x00b4 */ unsigned char PriorityClass; /* off 0x00b8 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00bc */ unsigned long UIRestrictionsClass; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ unsigned long ProcessMemoryLimit; /* off 0x010c */ unsigned long JobMemoryLimit; /* off 0x0110 */ unsigned long PeakProcessMemoryUsed; /* off 0x0114 */ unsigned long PeakJobMemoryUsed; /* off 0x0118 */ unsigned long CurrentJobMemoryUsed; /* off 0x011c */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0120 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0128 */ unsigned long MemberLevel; /* off 0x012c */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 000006ac 1708 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextAgingSlot; /* off 0x0020 */ unsigned long NumberOfCommittedPageTables; /* off 0x0024 */ unsigned long VadBitMapHint; /* off 0x0028 */ unsigned long NonDirectCount; /* off 0x002c */ unsigned long LastVadBit; /* off 0x0030 */ unsigned long MaximumLastVadBit; /* off 0x0034 */ unsigned long LastAllocationSizeHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x0040 */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0044 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0048 */ void* HighestUserAddress; /* off 0x004c */ unsigned short UsedPageTableEntries[768]; /* off 0x064c */ unsigned long CommittedPageTables[24]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned long Age:3 /* start bit 9 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long CapturedCpuShareWeight; /* off 0x0004 */ unsigned long CapturedTotalWeight; }; /* off 0x0000 */ __int64 CombinedData; }; struct _PS_PER_CPU_QUOTA_CACHE_AWARE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _LIST_ENTRY SortedListEntry; /* off 0x0008 */ struct _LIST_ENTRY IdleOnlyListHead; /* off 0x0010 */ unsigned __int64 CycleBaseAllowance; /* off 0x0018 */ __int64 CyclesRemaining; /* off 0x0020 */ unsigned long CurrentGeneration; }; struct _PS_CPU_QUOTA_BLOCK /* sizeof 00000880 2176 */ { union { struct { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; union { struct { /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long CpuShareWeight; /* off 0x0010 */ union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA CapturedWeightData; union { struct { /* off 0x0018 */ unsigned long DuplicateInputMarker:1 /* start bit 0 */; /* off 0x0018 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0018 */ long MiscFlags; }; struct { }; /* off 0x0000 */ unsigned long BlockCurrentGenerationLock; }; struct { /* off 0x0008 */ unsigned __int64 CyclesAccumulated; }; }; /* off 0x0040 */ unsigned __int64 CycleCredit; /* off 0x0048 */ unsigned long BlockCurrentGeneration; /* off 0x004c */ unsigned long CpuCyclePercent; /* off 0x0050 */ unsigned char CyclesFinishedForCurrentGeneration; /* off 0x0080 */ struct _PS_PER_CPU_QUOTA_CACHE_AWARE Cpu[32]; }; }; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileIsRemoteDeviceInformation =0x00000033 ,//0 FileAttributeCacheInformation =0x00000034 ,//0 FileNumaNodeInformation =0x00000035 ,//0 FileStandardLinkInformation =0x00000036 ,//0 FileMaximumInformation =0x00000037 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 TransportRelations =0x00000006 ,//0 }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ unsigned short AffinityPolicy; /* off 0x000a */ unsigned short Group; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 BusQueryContainerID =0x00000005 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long BusyReference; /* off 0x000c */ unsigned long TotalBusyCount; /* off 0x0010 */ unsigned long ConservationIdleTime; /* off 0x0014 */ unsigned long PerformanceIdleTime; /* off 0x0018 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x001c */ struct _LIST_ENTRY IdleList; /* off 0x0024 */ enum _POP_DEVICE_IDLE_TYPE IdleType; /* off 0x0028 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x002c */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x0030 */ struct _LIST_ENTRY Volume; /* off 0x0038 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; enum _POP_DEVICE_IDLE_TYPE { DeviceIdleNormal =0x00000000 ,//0 DeviceIdleDisk =0x00000001 ,//0 }; union _PSP_CPU_QUOTA_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _ACCESS_REASONS /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Data[32]; }; struct _AUX_ACCESS_DATA /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _PRIVILEGE_SET* PrivilegesUsed; /* off 0x0004 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0014 */ unsigned long AccessesToAudit; /* off 0x0018 */ unsigned long MaximumAuditMask; /* off 0x001c */ struct _GUID TransactionId; /* off 0x002c */ void* NewSecurityDescriptor; /* off 0x0030 */ void* ExistingSecurityDescriptor; /* off 0x0034 */ void* ParentSecurityDescriptor; /* off 0x0038 */ void( __stdcall *DeRefSecurityDescriptor)(void*,void*); /* off 0x003c */ void* SDLock; /* off 0x0040 */ struct _ACCESS_REASONS AccessReasons; }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _LIST_ENTRY EcpList; }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned char Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x007c */ unsigned long Key; /* off 0x0080 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PlatformPfaControl:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PlatformDirectedOffline:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved2:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_PACKET_V2 /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0010 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0014 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0018 */ unsigned long ErrorSourceId; /* off 0x001c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0020 */ struct _GUID NotifyType; /* off 0x0030 */ unsigned __int64 Context; /* off 0x0038 */ enum _WHEA_ERROR_PACKET_DATA_FORMAT DataFormat; /* off 0x003c */ unsigned long Reserved1; /* off 0x0040 */ unsigned long DataOffset; /* off 0x0044 */ unsigned long DataLength; /* off 0x0048 */ unsigned long PshedDataOffset; /* off 0x004c */ unsigned long PshedDataLength; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevInformational =0x00000003 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord =0x00000000 ,//0 WheaDataFormatXPFMCA =0x00000001 ,//0 WheaDataFormatMemory =0x00000002 ,//0 WheaDataFormatPCIExpress =0x00000003 ,//0 WheaDataFormatNMIPort =0x00000004 ,//0 WheaDataFormatPCIXBus =0x00000005 ,//0 WheaDataFormatPCIXDevice =0x00000006 ,//0 WheaDataFormatGeneric =0x00000007 ,//0 WheaDataFormatMax =0x00000008 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Precise:1 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 25 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; struct _FSRTL_ADVANCED_FCB_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char IsFastIoPossible; /* off 0x0006 */ unsigned char Flags2; /* off 0x0007 */ unsigned char Reserved:4 /* start bit 0 */; /* off 0x0007 */ unsigned char Version:4 /* start bit 4 */; /* off 0x0008 */ struct _ERESOURCE* Resource; /* off 0x000c */ struct _ERESOURCE* PagingIoResource; /* off 0x0010 */ union _LARGE_INTEGER AllocationSize; /* off 0x0018 */ union _LARGE_INTEGER FileSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ struct _FAST_MUTEX* FastMutex; /* off 0x002c */ struct _LIST_ENTRY FilterContexts; /* off 0x0034 */ struct _EX_PUSH_LOCK PushLock; /* off 0x0038 */ void** FileContextSupportPointer; }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HARDWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ProtoAddressLow:8 /* start bit 1 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long ProtoAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFileHigh:20 /* start bit 12 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long GlobalTimeStamp:20 /* start bit 12 */; }; struct _MMPTE_TRANSITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SubsectionAddressLow:9 /* start bit 1 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long SubsectionAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_LIST /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned long filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long filler1:1 /* start bit 11 */; /* off 0x0000 */ unsigned long NextEntry:20 /* start bit 12 */; }; struct _MMPTE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ unsigned long VolatileLong; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long OsMajorVersion; /* off 0x0004 */ unsigned long OsMinorVersion; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0018 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0020 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0028 */ unsigned long KernelStack; /* off 0x002c */ unsigned long Prcb; /* off 0x0030 */ unsigned long Process; /* off 0x0034 */ unsigned long Thread; /* off 0x0038 */ unsigned long RegistryLength; /* off 0x003c */ void* RegistryBase; /* off 0x0040 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0044 */ char* ArcBootDeviceName; /* off 0x0048 */ char* ArcHalDeviceName; /* off 0x004c */ char* NtBootPathName; /* off 0x0050 */ char* NtHalPathName; /* off 0x0054 */ char* LoadOptions; /* off 0x0058 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x005c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0060 */ void* OemFontFile; /* off 0x0064 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x0068 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0074 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; union { /* off 0x0014 */ unsigned long AffinityMask; struct { /* off 0x0014 */ unsigned short Group; /* off 0x0016 */ unsigned short GroupIndex; }; }; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _TPM_BOOT_ENTROPY_LDR_RESULT /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 Policy; /* off 0x0008 */ enum _TPM_BOOT_ENTROPY_RESULT_CODE ResultCode; /* off 0x000c */ long ResultStatus; /* off 0x0010 */ unsigned __int64 Time; /* off 0x0018 */ unsigned long EntropyLength; /* off 0x001c */ unsigned char EntropyData[40]; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ void* EmInfFileImage; /* off 0x0018 */ unsigned long EmInfFileSize; /* off 0x001c */ void* TriageDumpBlock; /* off 0x0020 */ unsigned long LoaderPagesSpanned; /* off 0x0024 */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0028 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x002c */ void* DrvDBImage; /* off 0x0030 */ unsigned long DrvDBSize; /* off 0x0034 */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0038 */ unsigned char* HalpIRQLToTPR; /* off 0x003c */ unsigned char* HalpVectorToIRQL; /* off 0x0040 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0048 */ void* AcpiTable; /* off 0x004c */ unsigned long AcpiTableSize; /* off 0x0050 */ unsigned long LastBootSucceeded:1 /* start bit 0 */; /* off 0x0050 */ unsigned long LastBootShutdown:1 /* start bit 1 */; /* off 0x0050 */ unsigned long Reserved:30 /* start bit 2 */; /* off 0x0054 */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0058 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0060 */ void* WmdTestResult; /* off 0x0064 */ struct _GUID BootIdentifier; /* off 0x0074 */ unsigned long ResumePages; /* off 0x0078 */ void* DumpHeader; /* off 0x007c */ void* BgContext; /* off 0x0080 */ void* NumaLocalityInfo; /* off 0x0084 */ struct _LIST_ENTRY AttachedHives; /* off 0x008c */ unsigned long MemoryCachingRequirementsCount; /* off 0x0090 */ void* MemoryCachingRequirements; /* off 0x0098 */ struct _TPM_BOOT_ENTROPY_LDR_RESULT TpmBootEntropyResult; /* off 0x00e0 */ unsigned __int64 ProcessorCounterFrequency; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; /* off 0x0010 */ unsigned __int64 Frequency; }; enum _TPM_BOOT_ENTROPY_RESULT_CODE { TpmBootEntropyStructureUninitialized =0x00000000 ,//0 TpmBootEntropyDisabledByPolicy =0x00000001 ,//0 TpmBootEntropyNoTpmFound =0x00000002 ,//0 TpmBootEntropyTpmError =0x00000003 ,//0 TpmBootEntropySuccess =0x00000004 ,//0 }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _MMPFNLIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; /* off 0x0010 */ unsigned long Lock; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; /* off 0x0008 */ long Lock; /* off 0x0008 */ unsigned long PteLong; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; /* off 0x0048 */ struct _LIST_ENTRY ViewList; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Spare:9 /* start bit 23 */; }; struct _SEGMENT /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x002c */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ void* ImageMerge; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; union _MM_STORE_KEY /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long KeyLow:28 /* start bit 0 */; /* off 0x0000 */ unsigned long KeyHigh:4 /* start bit 28 */; }; /* off 0x0000 */ unsigned long EntireKey; }; enum _MI_STORE_BIT_TYPE { MiStoreBitTypeInStore =0x00000000 ,//0 MiStoreBitTypeEvicted =0x00000001 ,//0 MiStoreBitTypeMax =0x00000002 ,//0 }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ struct _RTL_BITMAP* EvictStoreBitmap; /* off 0x0034 */ unsigned long BitmapHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ unsigned long ToBeEvictedCount; /* off 0x0040 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0040 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0040 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x0042 */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x0042 */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x0044 */ void* FileHandle; /* off 0x0048 */ unsigned long Lock; /* off 0x004c */ struct _ETHREAD* LockOwner; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CM_WORKITEM /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Private; /* off 0x000c */ void( __stdcall *WorkerRoutine)(void*); /* off 0x0010 */ void* Parameter; }; struct _CMHIVE /* sizeof 00000628 1576 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _LIST_ENTRY PreloadedHiveList; /* off 0x0318 */ struct _LIST_ENTRY ParseCacheEntries; /* off 0x0320 */ struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable; /* off 0x0324 */ unsigned long KcbCacheTableSize; /* off 0x0328 */ unsigned long Identity; /* off 0x032c */ struct _FAST_MUTEX* HiveLock; /* off 0x0330 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x0334 */ struct _KTHREAD* ViewLockOwner; /* off 0x0338 */ unsigned long ViewLockLast; /* off 0x033c */ unsigned long ViewUnLockLast; /* off 0x0340 */ struct _FAST_MUTEX* WriterLock; /* off 0x0344 */ struct _ERESOURCE* FlusherLock; /* off 0x0348 */ struct _RTL_BITMAP FlushDirtyVector; /* off 0x0350 */ struct CMP_OFFSET_ARRAY* FlushOffsetArray; /* off 0x0354 */ unsigned long FlushOffsetArrayCount; /* off 0x0358 */ unsigned long FlushHiveTruncated; /* off 0x035c */ struct _FAST_MUTEX* FlushLock2; /* off 0x0360 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0364 */ struct _LIST_ENTRY MappedViewList; /* off 0x036c */ struct _LIST_ENTRY PinnedViewList; /* off 0x0374 */ struct _LIST_ENTRY FlushedViewList; /* off 0x037c */ unsigned short MappedViewCount; /* off 0x037e */ unsigned short PinnedViewCount; /* off 0x0380 */ unsigned long UseCount; /* off 0x0384 */ unsigned long ViewsPerHive; /* off 0x0388 */ struct _FILE_OBJECT* FileObject; /* off 0x038c */ unsigned long LastShrinkHiveSize; /* off 0x0390 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0398 */ struct _UNICODE_STRING FileFullPath; /* off 0x03a0 */ struct _UNICODE_STRING FileUserName; /* off 0x03a8 */ struct _UNICODE_STRING HiveRootPath; /* off 0x03b0 */ unsigned long SecurityCount; /* off 0x03b4 */ unsigned long SecurityCacheSize; /* off 0x03b8 */ long SecurityHitHint; /* off 0x03bc */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x03c0 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x05c0 */ unsigned long UnloadEventCount; /* off 0x05c4 */ struct _KEVENT** UnloadEventArray; /* off 0x05c8 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x05cc */ unsigned char Frozen; /* off 0x05d0 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05d4 */ struct _CM_WORKITEM UnloadWorkItemHolder; /* off 0x05e8 */ unsigned char GrowOnlyMode; /* off 0x05ec */ unsigned long GrowOffset; /* off 0x05f0 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05f8 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0600 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x0604 */ unsigned long Flags; /* off 0x0608 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x0610 */ unsigned long FlushCount; /* off 0x0614 */ struct _CM_RM* CmRm; /* off 0x0618 */ unsigned long CmRmInitFailPoint; /* off 0x061c */ long CmRmInitFailStatus; /* off 0x0620 */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ struct _CM_KEY_HASH* Entry; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:16 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 16 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 17 */; /* off 0x0004 */ unsigned long HiveUnloaded:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Decommissioned:1 /* start bit 19 */; /* off 0x0004 */ unsigned long LockTablePresent:1 /* start bit 20 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 21 */; /* off 0x0008 */ unsigned long DelayedDeref:1 /* start bit 0 */; /* off 0x0008 */ unsigned long DelayedClose:1 /* start bit 1 */; /* off 0x0008 */ unsigned long Parking:1 /* start bit 2 */; union { /* off 0x000c */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x000c */ unsigned long ConvKey; /* off 0x0010 */ struct _CM_KEY_HASH* NextHash; /* off 0x0014 */ struct _HHIVE* KeyHive; /* off 0x0018 */ unsigned long KeyCell; }; }; /* off 0x001c */ struct _EX_PUSH_LOCK KcbPushlock; union { /* off 0x0020 */ struct _KTHREAD* Owner; /* off 0x0020 */ long SharedCount; }; /* off 0x0024 */ unsigned long SlotHint; /* off 0x0028 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x002c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0030 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0034 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x003c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x003c */ unsigned long HashKey; /* off 0x003c */ unsigned long SubKeyCount; }; union { /* off 0x0040 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0040 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0048 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0058 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0060 */ unsigned short KcbMaxNameLen; /* off 0x0062 */ unsigned short KcbMaxValueNameLen; /* off 0x0064 */ unsigned long KcbMaxValueDataLen; /* off 0x0068 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0068 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0068 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0068 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x006c */ struct _LIST_ENTRY KCBUoWListHead; union { /* off 0x0074 */ struct _LIST_ENTRY DelayQueueEntry; /* off 0x0074 */ unsigned char* Stolen; }; /* off 0x007c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0080 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0088 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0090 */ struct _CHILD_LIST TransValueCache; /* off 0x0098 */ struct _CM_TRANS* TransValueListOwner; /* off 0x009c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags:16 /* start bit 0 */; /* off 0x0018 */ unsigned long HandleTags:16 /* start bit 16 */; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[7]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; /* off 0x0228 */ struct _WORK_QUEUE_ITEM OfflineWorkItem; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _PCW_COUNTER_DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned short StructIndex; /* off 0x0004 */ unsigned short Offset; /* off 0x0006 */ unsigned short Size; }; enum _PCW_CALLBACK_TYPE { PcwCallbackAddCounter =0x00000000 ,//0 PcwCallbackRemoveCounter =0x00000001 ,//0 PcwCallbackEnumerateInstances =0x00000002 ,//0 PcwCallbackCollectData =0x00000003 ,//0 }; struct _PCW_COUNTER_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; }; struct _PCW_MASK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; /* off 0x000c */ unsigned long InstanceId; /* off 0x0010 */ unsigned char CollectMultiple; /* off 0x0014 */ struct _PCW_BUFFER* Buffer; /* off 0x0018 */ struct _KEVENT* CancelEvent; }; union _PCW_CALLBACK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION AddCounter; /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION RemoveCounter; /* off 0x0000 */ struct _PCW_MASK_INFORMATION EnumerateInstances; /* off 0x0000 */ struct _PCW_MASK_INFORMATION CollectData; }; struct _PCW_BUFFER /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _UNICODE_STRING* Name; /* off 0x0008 */ unsigned long CounterCount; /* off 0x000c */ struct _PCW_COUNTER_DESCRIPTOR* Counters; /* off 0x0010 */ long( __stdcall *Callback)(enum _PCW_CALLBACK_TYPE,union _PCW_CALLBACK_INFORMATION*,void*); /* off 0x0014 */ void* CallbackContext; }; struct _PCW_PROCESSOR_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned __int64 IdleTime; /* off 0x0008 */ unsigned __int64 AvailableTime; /* off 0x0010 */ unsigned __int64 UserTime; /* off 0x0018 */ unsigned __int64 KernelTime; /* off 0x0020 */ unsigned long Interrupts; /* off 0x0028 */ unsigned __int64 DpcTime; /* off 0x0030 */ unsigned __int64 InterruptTime; /* off 0x0038 */ unsigned __int64 DpcCount; /* off 0x0040 */ unsigned __int64 DpcRate; /* off 0x0048 */ unsigned __int64 C1Time; /* off 0x0050 */ unsigned __int64 C2Time; /* off 0x0058 */ unsigned __int64 C3Time; /* off 0x0060 */ unsigned long C1Transitions; /* off 0x0064 */ unsigned long C2Transitions; /* off 0x0068 */ unsigned long C3Transitions; /* off 0x006c */ unsigned long ParkingStatus; /* off 0x0070 */ unsigned long CurrentFrequency; /* off 0x0074 */ unsigned long PercentMaxFrequency; /* off 0x0078 */ unsigned long StateFlags; }; struct _PCW_INSTANCE /* sizeof 00000000 0 */ { }; struct _PCW_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Data; /* off 0x0004 */ unsigned long Size; }; struct _ETW_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long TotalActiveSessions; /* off 0x0004 */ long TotalBufferMemoryNonPagedPool; /* off 0x0008 */ long TotalBufferMemoryPagedPool; /* off 0x000c */ long TotalGuidsEnabled; /* off 0x0010 */ long TotalGuidsNotEnabled; /* off 0x0014 */ long TotalGuidsPreEnabled; }; struct _ETW_SESSION_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long BufferMemoryPagedPool; /* off 0x0004 */ long BufferMemoryNonPagedPool; /* off 0x0008 */ unsigned __int64 EventsLoggedCount; /* off 0x0010 */ long EventsLost; /* off 0x0014 */ long NumConsumers; }; struct _NT_TIB32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long ExceptionList; /* off 0x0004 */ unsigned long StackBase; /* off 0x0008 */ unsigned long StackLimit; /* off 0x000c */ unsigned long SubSystemTib; union { /* off 0x0010 */ unsigned long FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ unsigned long ArbitraryUserPointer; /* off 0x0018 */ unsigned long Self; }; struct _CLIENT_ID32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long UniqueProcess; /* off 0x0004 */ unsigned long UniqueThread; }; struct _GDI_TEB_BATCH32 /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _STRING32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned long Buffer; }; struct _TEB32 /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB32 NtTib; /* off 0x001c */ unsigned long EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID32 ClientId; /* off 0x0028 */ unsigned long ActiveRpcHandle; /* off 0x002c */ unsigned long ThreadLocalStoragePointer; /* off 0x0030 */ unsigned long ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ unsigned long CsrClientThread; /* off 0x0040 */ unsigned long Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ unsigned long WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ unsigned long SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ unsigned long ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[2]; /* off 0x01ae */ unsigned char SpareBytes2[34]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH32 GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID32 RealClientId; /* off 0x06bc */ unsigned long GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ unsigned long GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ unsigned long glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ unsigned long glReserved2; /* off 0x0be0 */ unsigned long glSectionInfo; /* off 0x0be4 */ unsigned long glSection; /* off 0x0be8 */ unsigned long glTable; /* off 0x0bec */ unsigned long glCurrentRC; /* off 0x0bf0 */ unsigned long glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _STRING32 StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ unsigned long DeallocationStack; /* off 0x0e10 */ unsigned long TlsSlots[64]; /* off 0x0f10 */ struct LIST_ENTRY32 TlsLinks; /* off 0x0f18 */ unsigned long Vdm; /* off 0x0f1c */ unsigned long ReservedForNtRpc; /* off 0x0f20 */ unsigned long DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ unsigned long Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ unsigned long SubProcessTag; /* off 0x0f64 */ unsigned long EtwLocalData; /* off 0x0f68 */ unsigned long EtwTraceData; /* off 0x0f6c */ unsigned long WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ unsigned long ReservedForPerf; /* off 0x0f80 */ unsigned long ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ unsigned long SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ unsigned long ThreadPoolData; /* off 0x0f94 */ unsigned long TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ unsigned long NlsCache; /* off 0x0fa4 */ unsigned long pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ unsigned long CurrentTransactionHandle; /* off 0x0fb0 */ unsigned long ActiveFrame; /* off 0x0fb4 */ unsigned long FlsData; /* off 0x0fb8 */ unsigned long PreferredLanguages; /* off 0x0fbc */ unsigned long UserPrefLanguages; /* off 0x0fc0 */ unsigned long MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ unsigned long TxnScopeEnterCallback; /* off 0x0fd0 */ unsigned long TxnScopeExitCallback; /* off 0x0fd4 */ unsigned long TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ unsigned long ResourceRetValue; }; struct _NT_TIB64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 ExceptionList; /* off 0x0008 */ unsigned __int64 StackBase; /* off 0x0010 */ unsigned __int64 StackLimit; /* off 0x0018 */ unsigned __int64 SubSystemTib; union { /* off 0x0020 */ unsigned __int64 FiberData; /* off 0x0020 */ unsigned long Version; }; /* off 0x0028 */ unsigned __int64 ArbitraryUserPointer; /* off 0x0030 */ unsigned __int64 Self; }; struct _CLIENT_ID64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 UniqueProcess; /* off 0x0008 */ unsigned __int64 UniqueThread; }; struct _GDI_TEB_BATCH64 /* sizeof 000004e8 1256 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0008 */ unsigned __int64 HDC; /* off 0x0010 */ unsigned long Buffer[310]; }; struct _STRING64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0008 */ unsigned __int64 Buffer; }; struct _TEB64 /* sizeof 00001818 6168 */ { /* off 0x0000 */ struct _NT_TIB64 NtTib; /* off 0x0038 */ unsigned __int64 EnvironmentPointer; /* off 0x0040 */ struct _CLIENT_ID64 ClientId; /* off 0x0050 */ unsigned __int64 ActiveRpcHandle; /* off 0x0058 */ unsigned __int64 ThreadLocalStoragePointer; /* off 0x0060 */ unsigned __int64 ProcessEnvironmentBlock; /* off 0x0068 */ unsigned long LastErrorValue; /* off 0x006c */ unsigned long CountOfOwnedCriticalSections; /* off 0x0070 */ unsigned __int64 CsrClientThread; /* off 0x0078 */ unsigned __int64 Win32ThreadInfo; /* off 0x0080 */ unsigned long User32Reserved[26]; /* off 0x00e8 */ unsigned long UserReserved[5]; /* off 0x0100 */ unsigned __int64 WOW32Reserved; /* off 0x0108 */ unsigned long CurrentLocale; /* off 0x010c */ unsigned long FpSoftwareStatusRegister; /* off 0x0110 */ unsigned __int64 SystemReserved1[54]; /* off 0x02c0 */ long ExceptionCode; /* off 0x02c8 */ unsigned __int64 ActivationContextStackPointer; /* off 0x02d0 */ unsigned char SpareBytes1[2]; /* off 0x02d2 */ unsigned char SpareBytes2[22]; /* off 0x02e8 */ unsigned long TxFsContext; /* off 0x02f0 */ struct _GDI_TEB_BATCH64 GdiTebBatch; /* off 0x07d8 */ struct _CLIENT_ID64 RealClientId; /* off 0x07e8 */ unsigned __int64 GdiCachedProcessHandle; /* off 0x07f0 */ unsigned long GdiClientPID; /* off 0x07f4 */ unsigned long GdiClientTID; /* off 0x07f8 */ unsigned __int64 GdiThreadLocalInfo; /* off 0x0800 */ unsigned __int64 Win32ClientInfo[62]; /* off 0x09f0 */ unsigned __int64 glDispatchTable[233]; /* off 0x1138 */ unsigned __int64 glReserved1[29]; /* off 0x1220 */ unsigned __int64 glReserved2; /* off 0x1228 */ unsigned __int64 glSectionInfo; /* off 0x1230 */ unsigned __int64 glSection; /* off 0x1238 */ unsigned __int64 glTable; /* off 0x1240 */ unsigned __int64 glCurrentRC; /* off 0x1248 */ unsigned __int64 glContext; /* off 0x1250 */ unsigned long LastStatusValue; /* off 0x1258 */ struct _STRING64 StaticUnicodeString; /* off 0x1268 */ wchar StaticUnicodeBuffer[261]; /* off 0x1478 */ unsigned __int64 DeallocationStack; /* off 0x1480 */ unsigned __int64 TlsSlots[64]; /* off 0x1680 */ struct LIST_ENTRY64 TlsLinks; /* off 0x1690 */ unsigned __int64 Vdm; /* off 0x1698 */ unsigned __int64 ReservedForNtRpc; /* off 0x16a0 */ unsigned __int64 DbgSsReserved[2]; /* off 0x16b0 */ unsigned long HardErrorMode; /* off 0x16b8 */ unsigned __int64 Instrumentation[11]; /* off 0x1710 */ struct _GUID ActivityId; /* off 0x1720 */ unsigned __int64 SubProcessTag; /* off 0x1728 */ unsigned __int64 EtwLocalData; /* off 0x1730 */ unsigned __int64 EtwTraceData; /* off 0x1738 */ unsigned __int64 WinSockData; /* off 0x1740 */ unsigned long GdiBatchCount; union { /* off 0x1744 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x1744 */ unsigned long IdealProcessorValue; struct { /* off 0x1744 */ unsigned char ReservedPad0; /* off 0x1745 */ unsigned char ReservedPad1; /* off 0x1746 */ unsigned char ReservedPad2; /* off 0x1747 */ unsigned char IdealProcessor; }; }; /* off 0x1748 */ unsigned long GuaranteedStackBytes; /* off 0x1750 */ unsigned __int64 ReservedForPerf; /* off 0x1758 */ unsigned __int64 ReservedForOle; /* off 0x1760 */ unsigned long WaitingOnLoaderLock; /* off 0x1768 */ unsigned __int64 SavedPriorityState; /* off 0x1770 */ unsigned __int64 SoftPatchPtr1; /* off 0x1778 */ unsigned __int64 ThreadPoolData; /* off 0x1780 */ unsigned __int64 TlsExpansionSlots; /* off 0x1788 */ unsigned __int64 DeallocationBStore; /* off 0x1790 */ unsigned __int64 BStoreLimit; /* off 0x1798 */ unsigned long MuiGeneration; /* off 0x179c */ unsigned long IsImpersonating; /* off 0x17a0 */ unsigned __int64 NlsCache; /* off 0x17a8 */ unsigned __int64 pShimData; /* off 0x17b0 */ unsigned long HeapVirtualAffinity; /* off 0x17b8 */ unsigned __int64 CurrentTransactionHandle; /* off 0x17c0 */ unsigned __int64 ActiveFrame; /* off 0x17c8 */ unsigned __int64 FlsData; /* off 0x17d0 */ unsigned __int64 PreferredLanguages; /* off 0x17d8 */ unsigned __int64 UserPrefLanguages; /* off 0x17e0 */ unsigned __int64 MergedPrefLanguages; /* off 0x17e8 */ unsigned long MuiImpersonation; union { /* off 0x17ec */ unsigned short CrossTebFlags; /* off 0x17ec */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x17ee */ unsigned short SameTebFlags; struct { /* off 0x17ee */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x17ee */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x17ee */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x17ee */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x17ee */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x17ee */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x17ee */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x17ee */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x17ee */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x17ee */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x17ee */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x17f0 */ unsigned __int64 TxnScopeEnterCallback; /* off 0x17f8 */ unsigned __int64 TxnScopeExitCallback; /* off 0x1800 */ unsigned __int64 TxnScopeContext; /* off 0x1808 */ unsigned long LockCount; /* off 0x180c */ unsigned long SpareUlong0; /* off 0x1810 */ unsigned __int64 ResourceRetValue; }; struct _KAFFINITY_ENUMERATION_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KAFFINITY_EX* Affinity; /* off 0x0004 */ unsigned long CurrentMask; /* off 0x0008 */ unsigned short CurrentIndex; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 000001e0 480 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[192]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _KSTACK_AREA /* sizeof 00000210 528 */ { union { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT NpxFrame; }; /* off 0x01e0 */ struct _KERNEL_STACK_CONTROL StackControl; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _LIST_ENTRY PowerChildren; /* off 0x0010 */ struct _LIST_ENTRY PowerParents; /* off 0x0018 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x001c */ unsigned char OrderLevel; /* off 0x0020 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0024 */ unsigned short* DeviceName; /* off 0x0028 */ unsigned short* DriverName; /* off 0x002c */ unsigned long ChildCount; /* off 0x0030 */ unsigned long ActiveChild; /* off 0x0034 */ unsigned long ParentCount; /* off 0x0038 */ unsigned long ActiveParent; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000174 372 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0050 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0060 */ enum _PNP_DEVNODE_STATE State; /* off 0x0064 */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0068 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00b8 */ unsigned long StateHistoryEntry; /* off 0x00bc */ long CompletionStatus; /* off 0x00c0 */ struct _IRP* PendingIrp; /* off 0x00c4 */ unsigned long Flags; /* off 0x00c8 */ unsigned long UserFlags; /* off 0x00cc */ unsigned long Problem; /* off 0x00d0 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00d4 */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00d8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00dc */ struct _UNICODE_STRING InstancePath; /* off 0x00e4 */ struct _UNICODE_STRING ServiceName; /* off 0x00ec */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00f0 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00f4 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00f8 */ unsigned long BusNumber; /* off 0x00fc */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x0100 */ unsigned long ChildBusNumber; /* off 0x0104 */ unsigned short ChildBusTypeIndex; /* off 0x0106 */ unsigned char RemovalPolicy; /* off 0x0107 */ unsigned char HardwareRemovalPolicy; /* off 0x0108 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x0110 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0118 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0120 */ unsigned short NoTranslatorMask; /* off 0x0122 */ unsigned short QueryTranslatorMask; /* off 0x0124 */ unsigned short NoArbiterMask; /* off 0x0126 */ unsigned short QueryArbiterMask; /* off 0x0128 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x012c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0130 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x0134 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0138 */ unsigned long CapabilityFlags; /* off 0x013c */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x014c */ unsigned long DisableableDepends; /* off 0x0150 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0158 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0160 */ unsigned long DriverUnloadRetryCount; /* off 0x0164 */ struct _DEVICE_NODE* PreviousParent; /* off 0x0168 */ unsigned long DeletedChildren; /* off 0x016c */ unsigned long NumaNodeIndex; /* off 0x0170 */ unsigned char OverrideFlags; /* off 0x0171 */ unsigned char RequiresUnloadedDriver; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _PPC_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; /* off 0x0000 */ struct _PPC_DBGKD_CONTROL_SET PpcControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000020 32 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long PagesQueuedToDisk; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ unsigned long SequentialReadCount; /* off 0x0034 */ unsigned long ReadAheadLength; /* off 0x0038 */ union _LARGE_INTEGER ReadAheadOffset; /* off 0x0040 */ union _LARGE_INTEGER ReadAheadBeyondLastByte; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000150 336 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _EX_PUSH_LOCK VacbLock; /* off 0x004c */ unsigned long DirtyPages; /* off 0x0050 */ struct _LIST_ENTRY LoggedStreamLinks; /* off 0x0058 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0060 */ unsigned long Flags; /* off 0x0064 */ long Status; /* off 0x0068 */ struct _MBCB* Mbcb; /* off 0x006c */ void* Section; /* off 0x0070 */ struct _KEVENT* CreateEvent; /* off 0x0074 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0078 */ unsigned long PagesToWrite; /* off 0x0080 */ __int64 BeyondLastFlush; /* off 0x0088 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x008c */ void* LazyWriteContext; /* off 0x0090 */ struct _LIST_ENTRY PrivateList; /* off 0x0098 */ void* LogHandle; /* off 0x009c */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a0 */ unsigned long DirtyPageThreshold; /* off 0x00a4 */ unsigned long LazyWritePassCount; /* off 0x00a8 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00ac */ struct _KGUARDED_MUTEX BcbLock; /* off 0x00cc */ void* Reserved; /* off 0x00d0 */ struct _KEVENT Event; /* off 0x00e0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00e8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0140 */ void* WriteBehindWorkQueueEntry; /* off 0x0144 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0148 */ unsigned long ProcImagePathHash; /* off 0x014c */ unsigned long WritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY Links; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long VacbArrayIndex; /* off 0x0004 */ unsigned long MappingCount; /* off 0x0008 */ unsigned long HighestMappedIndex; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000088 136 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ __int64 MostRecentlyDirtiedPage; /* off 0x0028 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0048 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0068 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x000c */ unsigned char Function; }; struct VACB_LEVEL_ALLOCATION_LIST /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY VacbLevelList; /* off 0x0008 */ void* VacbLevelWithBcbListHeads; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long AllocAndFreeOps; /* off 0x0044 */ unsigned long InBlockDeccommits; /* off 0x0048 */ unsigned long InBlockDeccomitSize; /* off 0x004c */ unsigned long HighWatermarkSize; /* off 0x0050 */ unsigned long LastPolledSize; /* off 0x0054 */ unsigned long LoggedAllocationSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000140 320 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0134 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; /* off 0x0068 */ void* ContextInformation; /* off 0x006c */ unsigned long OriginalBase; /* off 0x0070 */ union _LARGE_INTEGER LoadTime; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ void* SectionObject; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x000c */ void* SectionHandle; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ struct _ALPC_PORT* OwnerPort; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0004 */ unsigned long TotalHandles; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000fc 252 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ void* CompletionPort; /* off 0x0014 */ void* CompletionKey; /* off 0x0018 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x001c */ void* PortContext; /* off 0x0020 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x005c */ struct _LIST_ENTRY MainQueue; /* off 0x0064 */ struct _LIST_ENTRY PendingQueue; /* off 0x006c */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0074 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x007c */ struct _KSEMAPHORE* Semaphore; /* off 0x007c */ struct _KEVENT* DummyEvent; }; /* off 0x0080 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00ac */ struct _EX_PUSH_LOCK Lock; /* off 0x00b0 */ long SequenceNo; /* off 0x00b4 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b8 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00c0 */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c4 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c8 */ struct _CALLBACK_OBJECT* CallbackObject; /* off 0x00cc */ void* CallbackContext; /* off 0x00d0 */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d8 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; /* off 0x0000 */ unsigned long EnableCompletionList:1 /* start bit 16 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00dc */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00e0 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00e4 */ struct _KALPC_MESSAGE* CachedMessage; /* off 0x00e8 */ unsigned long MainQueueLength; /* off 0x00ec */ unsigned long PendingQueueLength; /* off 0x00f0 */ unsigned long LargeMessageQueueLength; /* off 0x00f4 */ unsigned long CanceledQueueLength; /* off 0x00f8 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ struct _IO_MINI_COMPLETION_PACKET_USER* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[1]; }; struct _IO_MINI_COMPLETION_PACKET_USER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long PacketType; /* off 0x000c */ void* KeyContext; /* off 0x0010 */ void* ApcContext; /* off 0x0014 */ long IoStatus; /* off 0x0018 */ unsigned long IoStatusInformation; /* off 0x001c */ void( __stdcall *MiniPacketCallback)(struct _IO_MINI_COMPLETION_PACKET_USER*,void*); /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned char Allocated; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _CALLBACK_OBJECT /* sizeof 00000000 0 */ { }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; /* off 0x0000 */ unsigned long ViewAttributeRetrieved:1 /* start bit 14 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x005c */ void* DataUserVa; /* off 0x0060 */ void* DataSystemVa; /* off 0x0064 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x0068 */ struct _ALPC_PORT* ConnectionPort; /* off 0x006c */ struct _ETHREAD* ServerThread; /* off 0x0070 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ struct _KALPC_REGION* Region; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ void* Address; /* off 0x0018 */ unsigned long Size; /* off 0x001c */ void* SecureViewHandle; /* off 0x0020 */ void* WriteAccessHandle; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY RegionListEntry; /* off 0x0008 */ struct _KALPC_SECTION* Section; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long ViewSize; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfViews; /* off 0x0020 */ struct _LIST_ENTRY ViewListHead; /* off 0x0028 */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x002c */ struct _KALPC_VIEW* ReadWriteView; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ unsigned long TargetAccess; /* off 0x0010 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0014 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 WrProcessInSwap =0x00000017 ,//0 WrCpuRateControl =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _ETHREAD* TargetThread; /* off 0x0010 */ struct _ALPC_PORT* TargetPort; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; enum _EX_POOL_PRIORITY { LowPoolPriority =0x00000000 ,//0 LowPoolPrioritySpecialPoolOverrun =0x00000008 ,//0 LowPoolPrioritySpecialPoolUnderrun =0x00000009 ,//0 NormalPoolPriority =0x00000010 ,//0 NormalPoolPrioritySpecialPoolOverrun =0x00000018 ,//0 NormalPoolPrioritySpecialPoolUnderrun =0x00000019 ,//0 HighPoolPriority =0x00000020 ,//0 HighPoolPrioritySpecialPoolOverrun =0x00000028 ,//0 HighPoolPrioritySpecialPoolUnderrun =0x00000029 ,//0 }; enum _LOCK_OPERATION { IoReadAccess =0x00000000 ,//0 IoWriteAccess =0x00000001 ,//0 IoModifyAccess =0x00000002 ,//0 }; union _FILE_SEGMENT_ELEMENT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Buffer; /* off 0x0000 */ unsigned __int64 Alignment; }; struct _RELATIVE_SYMLINK_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short ExposedNamespaceLength; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned short DeviceNameLength; /* off 0x0006 */ unsigned short Reserved; /* off 0x0008 */ struct _RELATIVE_SYMLINK_INFO* InteriorMountPoint; /* off 0x000c */ struct _UNICODE_STRING OpenedName; }; enum _IOP_PRIORITY_HINT { IopIoPriorityNotSet =0x00000000 ,//0 IopIoPriorityVeryLow =0x00000001 ,//0 IopIoPriorityLow =0x00000002 ,//0 IopIoPriorityNormal =0x00000003 ,//0 IopIoPriorityHigh =0x00000004 ,//0 IopIoPriorityCritical =0x00000005 ,//0 MaxIopIoPriorityTypes =0x00000006 ,//0 }; struct _IOP_FILE_OBJECT_EXTENSION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long FoExtFlags; /* off 0x0004 */ void* FoExtPerTypeExtension[7]; /* off 0x0020 */ enum _IOP_PRIORITY_HINT FoIoPriorityHint; }; enum _TRANSFER_TYPE { ReadTransfer =0x00000000 ,//0 WriteTransfer =0x00000001 ,//0 OtherTransfer =0x00000002 ,//0 }; struct _OPEN_PACKET /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ long FinalStatus; /* off 0x000c */ unsigned long Information; /* off 0x0010 */ unsigned long ParseCheck; /* off 0x0014 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0018 */ struct _OBJECT_ATTRIBUTES* OriginalAttributes; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ unsigned long CreateOptions; /* off 0x002c */ unsigned short FileAttributes; /* off 0x002e */ unsigned short ShareAccess; /* off 0x0030 */ void* EaBuffer; /* off 0x0034 */ unsigned long EaLength; /* off 0x0038 */ unsigned long Options; /* off 0x003c */ unsigned long Disposition; /* off 0x0040 */ struct _FILE_BASIC_INFORMATION* BasicInformation; /* off 0x0044 */ struct _FILE_NETWORK_OPEN_INFORMATION* NetworkInformation; /* off 0x0048 */ enum _CREATE_FILE_TYPE CreateFileType; /* off 0x004c */ void* MailslotOrPipeParameters; /* off 0x0050 */ unsigned char Override; /* off 0x0051 */ unsigned char QueryOnly; /* off 0x0052 */ unsigned char DeleteOnly; /* off 0x0053 */ unsigned char FullAttributes; /* off 0x0054 */ struct _DUMMY_FILE_OBJECT* LocalFileObject; /* off 0x0058 */ unsigned long InternalFlags; /* off 0x005c */ struct _IO_DRIVER_CREATE_CONTEXT DriverCreateContext; }; enum _CREATE_FILE_TYPE { CreateFileTypeNone =0x00000000 ,//0 CreateFileTypeNamedPipe =0x00000001 ,//0 CreateFileTypeMailslot =0x00000002 ,//0 }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _EX_PUSH_LOCK Lock; /* off 0x000c */ unsigned char TypeIndex; /* off 0x000d */ unsigned char TraceFlags; /* off 0x000e */ unsigned char InfoMask; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _DUMMY_FILE_OBJECT /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _OBJECT_HEADER ObjectHeader; /* off 0x0020 */ char FileObjectBody[128]; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ char ProbeMode; /* off 0x000c */ unsigned long PagedPoolCharge; /* off 0x0010 */ unsigned long NonPagedPoolCharge; /* off 0x0014 */ unsigned long SecurityDescriptorCharge; /* off 0x0018 */ void* SecurityDescriptor; /* off 0x001c */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY GlobalEntry; struct { /* off 0x0038 */ void* Pointer0; /* off 0x003c */ void* Pointer1; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000260 608 */ { /* off 0x0000 */ unsigned long LoggerId; /* off 0x0004 */ unsigned long BufferSize; /* off 0x0008 */ unsigned long MaximumEventSize; /* off 0x000c */ long CollectionOn; /* off 0x0010 */ unsigned long LoggerMode; /* off 0x0014 */ long AcceptNewEvents; /* off 0x0018 */ __int64( __stdcall *GetCpuClock)(); /* off 0x001c */ struct _LIST_ENTRY LoggerListEntry; /* off 0x0028 */ union _LARGE_INTEGER StartTime; /* off 0x0030 */ void* LogFileHandle; /* off 0x0034 */ struct _ETHREAD* LoggerThread; /* off 0x0038 */ long LoggerStatus; /* off 0x003c */ void* NBQHead; /* off 0x0040 */ void* OverflowNBQHead; /* off 0x0048 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0050 */ struct _LIST_ENTRY GlobalList; union { /* off 0x0058 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0058 */ struct _EX_FAST_REF CurrentBuffer; }; /* off 0x005c */ struct _UNICODE_STRING LoggerName; /* off 0x0064 */ struct _UNICODE_STRING LogFileName; /* off 0x006c */ struct _UNICODE_STRING LogFilePattern; /* off 0x0074 */ struct _UNICODE_STRING NewLogFileName; /* off 0x007c */ unsigned long ClockType; /* off 0x0080 */ unsigned long MaximumFileSize; /* off 0x0084 */ unsigned long LastFlushedBuffer; /* off 0x0088 */ unsigned long FlushTimer; /* off 0x008c */ unsigned long FlushThreshold; /* off 0x0090 */ union _LARGE_INTEGER ByteOffset; /* off 0x0098 */ unsigned long MinimumBuffers; /* off 0x009c */ long BuffersAvailable; /* off 0x00a0 */ long NumberOfBuffers; /* off 0x00a4 */ unsigned long MaximumBuffers; /* off 0x00a8 */ unsigned long EventsLost; /* off 0x00ac */ unsigned long BuffersWritten; /* off 0x00b0 */ unsigned long LogBuffersLost; /* off 0x00b4 */ unsigned long RealTimeBuffersDelivered; /* off 0x00b8 */ unsigned long RealTimeBuffersLost; /* off 0x00bc */ long* SequencePtr; /* off 0x00c0 */ unsigned long LocalSequence; /* off 0x00c4 */ struct _GUID InstanceGuid; /* off 0x00d4 */ long FileCounter; /* off 0x00d8 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00dc */ enum _POOL_TYPE PoolType; /* off 0x00e0 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00f0 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00f4 */ struct _LIST_ENTRY Consumers; /* off 0x00fc */ unsigned long NumConsumers; /* off 0x0100 */ struct _ETW_REALTIME_CONSUMER* TransitionConsumer; /* off 0x0104 */ void* RealtimeLogfileHandle; /* off 0x0108 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0110 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0120 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0128 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0130 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0138 */ unsigned long RealtimeBuffersSaved; /* off 0x0140 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0150 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x0154 */ struct _KEVENT LoggerEvent; /* off 0x0164 */ struct _KEVENT FlushEvent; /* off 0x0174 */ struct _KDPC FlushDpc; /* off 0x0194 */ struct _KMUTANT LoggerMutex; /* off 0x01b4 */ struct _EX_PUSH_LOCK LoggerLock; union { /* off 0x01b8 */ unsigned long BufferListSpinLock; /* off 0x01b8 */ struct _EX_PUSH_LOCK BufferListPushLock; }; /* off 0x01bc */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01f8 */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0200 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0248 */ __int64 BufferSequenceNumber; union { /* off 0x0250 */ unsigned long Flags; struct { /* off 0x0250 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0250 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0250 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0250 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0250 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0250 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0250 */ unsigned long NoMoreEnable:1 /* start bit 6 */; /* off 0x0250 */ unsigned long StackTracing:1 /* start bit 7 */; /* off 0x0250 */ unsigned long ErrorLogged:1 /* start bit 8 */; }; }; union { /* off 0x0254 */ unsigned long RequestFlag; struct { /* off 0x0254 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0254 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0254 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0254 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0254 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; /* off 0x0254 */ unsigned long RequestConnectConsumer:1 /* start bit 5 */; }; }; /* off 0x0258 */ struct _RTL_BITMAP HookIdMap; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; struct _ETW_REALTIME_CONSUMER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ void* ProcessHandle; /* off 0x000c */ struct _EPROCESS* ProcessObject; /* off 0x0010 */ void* NextNotDelivered; /* off 0x0014 */ void* RealtimeConnectContext; /* off 0x0018 */ struct _KEVENT* DisconnectEvent; /* off 0x001c */ struct _KEVENT* DataAvailableEvent; /* off 0x0020 */ unsigned long* UserBufferCount; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY* UserBufferListHead; /* off 0x0028 */ unsigned long BuffersLost; /* off 0x002c */ unsigned long EmptyBuffersCount; /* off 0x0030 */ unsigned long LoggerId; /* off 0x0034 */ unsigned char ShutDownRequested; /* off 0x0035 */ unsigned char NewBuffersLost; /* off 0x0036 */ unsigned char Disconnected; /* off 0x0038 */ struct _RTL_BITMAP ReservedBufferSpaceBitMap; /* off 0x0040 */ unsigned char* ReservedBufferSpace; /* off 0x0044 */ unsigned long ReservedBufferSpaceSize; /* off 0x0048 */ unsigned long UserPagesAllocated; /* off 0x004c */ unsigned long UserPagesReused; }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _ETW_LOGGER_HANDLE /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char DereferenceAndLeave; }; struct _ETW_BUFFER_HANDLE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _WMI_BUFFER_HEADER* TraceBuffer; /* off 0x0004 */ struct _EX_FAST_REF* BufferFastRef; }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; struct _NBQUEUE_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SListEntry; /* off 0x0008 */ unsigned __int64 Next; /* off 0x0010 */ unsigned __int64 Data; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000178 376 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; union { /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0028 */ unsigned __int64 MatchId; }; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; /* off 0x0158 */ struct _EVENT_FILTER_HEADER* FilterData[8]; }; struct _EVENT_FILTER_HEADER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Reserved[5]; /* off 0x0008 */ unsigned __int64 InstanceId; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long NextOffset; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c0 */ struct _LUID OriginatingLogonSession; /* off 0x00c8 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0150 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01d8 */ struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION* pSecurityAttributes; /* off 0x01dc */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long SecurityAttributeCount; /* off 0x0004 */ struct _LIST_ENTRY SecurityAttributesList; /* off 0x000c */ unsigned long WorkingSecurityAttributeCount; /* off 0x0010 */ struct _LIST_ENTRY WorkingSecurityAttributesList; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ void* SecurityDescriptorQuotaBlock; }; struct _OBJECT_HEADER_PROCESS_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* ExclusiveProcess; /* off 0x0004 */ unsigned long Reserved; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ long ReferenceCount; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x000f */ unsigned char LockedExclusive; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ struct _KAFFINITY_EX Processors; /* off 0x0018 */ unsigned long SamplingPeriod; /* off 0x001c */ unsigned long CurrentTemperature; /* off 0x0020 */ unsigned long PassiveTripPoint; /* off 0x0024 */ unsigned long CriticalTripPoint; /* off 0x0028 */ unsigned char ActiveTripPointCount; /* off 0x002c */ unsigned long ActiveTripPoint[10]; /* off 0x0054 */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; /* off 0x0008 */ unsigned long Tag; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 00000048 72 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; /* off 0x003c */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0044 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x001c */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000278 632 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ unsigned long Number; /* off 0x0038 */ unsigned char ShareVector; /* off 0x0039 */ char Pad[3]; /* off 0x003c */ enum _KINTERRUPT_MODE Mode; /* off 0x0040 */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0044 */ unsigned long ServiceCount; /* off 0x0048 */ unsigned long DispatchCount; /* off 0x0050 */ unsigned __int64 Rsvd1; /* off 0x0058 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ unsigned long CmKcbCacheSize; /* off 0x001c */ struct _CMHIVE* CmHive2; /* off 0x0020 */ unsigned char HiveMounted; /* off 0x0021 */ unsigned char ThreadFinished; /* off 0x0022 */ unsigned char ThreadStarted; /* off 0x0023 */ unsigned char Allocate; /* off 0x0024 */ unsigned char WinPERequired; /* off 0x0028 */ struct _KEVENT StartEvent; /* off 0x0038 */ struct _KEVENT FinishedEvent; /* off 0x0048 */ struct _KEVENT MountLock; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; struct _LAZY_WRITER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _KDPC ScanDpc; /* off 0x0020 */ struct _KTIMER ScanTimer; /* off 0x0048 */ unsigned char ScanActive; /* off 0x0049 */ unsigned char OtherWork; /* off 0x004a */ unsigned char PendingTeardown; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; struct _IO_WORKITEM /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ void( __stdcall *Routine)(void*,void*,struct _IO_WORKITEM*); /* off 0x0014 */ void* IoObject; /* off 0x0018 */ void* Context; /* off 0x001c */ unsigned long Type; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_LSASS_ID =0x0000008a ,//0 DPFLTR_SSPICLI_ID =0x0000008b ,//0 DPFLTR_CNG_ID =0x0000008c ,//0 DPFLTR_EXFAT_ID =0x0000008d ,//0 DPFLTR_FILETRACE_ID =0x0000008e ,//0 DPFLTR_XSAVE_ID =0x0000008f ,//0 DPFLTR_SE_ID =0x00000090 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000091 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; /* off 0x0078 */ unsigned long ActivityCounter; /* off 0x007c */ unsigned long PreviousActivityCounter; /* off 0x0080 */ unsigned long WorkerTrimRequests; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POWER_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE_METRICS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _ERESOURCE MetricsResource; /* off 0x0038 */ unsigned long ActiveCount; /* off 0x003c */ unsigned long PassiveCount; /* off 0x0040 */ union _LARGE_INTEGER LastActiveStartTick; /* off 0x0048 */ union _LARGE_INTEGER AverageActiveTime; /* off 0x0050 */ union _LARGE_INTEGER LastPassiveStartTick; /* off 0x0058 */ union _LARGE_INTEGER AveragePassiveTime; /* off 0x0060 */ union _LARGE_INTEGER StartTickSinceLastReset; }; struct _POP_THERMAL_ZONE /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; /* off 0x00e0 */ union _LARGE_INTEGER InfoLastUpdateTime; /* off 0x00e8 */ struct _POP_THERMAL_ZONE_METRICS Metrics; }; enum POWER_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPoolPaged =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaSpecialPoolNonPaged =0x0000000d ,//0 MiVaMaximumType =0x0000000e ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct _VF_AVL_TREE_NODE /* sizeof 00000008 8 */ { /* off 0x0000 */ void* p; /* off 0x0004 */ unsigned long RangeSize; }; struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VERIFIER_SHARED_EXPORT_THUNK* SharedExportThunks; /* off 0x0004 */ struct _VERIFIER_SHARED_EXPORT_THUNK* PoolSharedExportThunks; /* off 0x0008 */ struct _VERIFIER_SHARED_EXPORT_THUNK* OrderDependentSharedExportThunks; }; struct _VF_TARGET_DRIVER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _VF_AVL_TREE_NODE TreeNode; /* off 0x0008 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SnapSharedExportsFailed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; } u1; /* off 0x0014 */ struct _VF_TARGET_VERIFIED_DRIVER_DATA* VerifiedData; }; struct _VERIFIER_SHARED_EXPORT_THUNK /* sizeof 00000000 0 */ { }; struct _VF_TARGET_VERIFIED_DRIVER_DATA /* sizeof 00000090 144 */ { /* off 0x0000 */ void* WMICallback; /* off 0x0004 */ struct _LIST_ENTRY EtwHandlesListHead; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MissedEtwRegistration:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0010 */ unsigned long Signature; /* off 0x0018 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0020 */ union _SLIST_HEADER PoolTrackers; /* off 0x0028 */ unsigned long CurrentPagedPoolAllocations; /* off 0x002c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0030 */ unsigned long PeakPagedPoolAllocations; /* off 0x0034 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0038 */ unsigned long PagedBytes; /* off 0x003c */ unsigned long NonPagedBytes; /* off 0x0040 */ unsigned long PeakPagedBytes; /* off 0x0044 */ unsigned long PeakNonPagedBytes; /* off 0x0048 */ unsigned long RaiseIrqls; /* off 0x004c */ unsigned long AcquireSpinLocks; /* off 0x0050 */ unsigned long SynchronizeExecutions; /* off 0x0054 */ unsigned long AllocationsWithNoTag; /* off 0x0058 */ unsigned long AllocationsFailed; /* off 0x005c */ unsigned long AllocationsFailedDeliberately; /* off 0x0060 */ unsigned long LockedBytes; /* off 0x0064 */ unsigned long PeakLockedBytes; /* off 0x0068 */ unsigned long MappedLockedBytes; /* off 0x006c */ unsigned long PeakMappedLockedBytes; /* off 0x0070 */ unsigned long MappedIoSpaceBytes; /* off 0x0074 */ unsigned long PeakMappedIoSpaceBytes; /* off 0x0078 */ unsigned long PagesForMdlBytes; /* off 0x007c */ unsigned long PeakPagesForMdlBytes; /* off 0x0080 */ unsigned long ContiguousMemoryBytes; /* off 0x0084 */ unsigned long PeakContiguousMemoryBytes; /* off 0x0088 */ struct _LIST_ENTRY ContiguousMemoryListHead; }; struct _VF_SUSPECT_DRIVER_ENTRY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ void* BaseAddress; /* off 0x0014 */ struct _UNICODE_STRING BaseName; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _KWAIT_STATE { WaitInProgress =0x00000000 ,//0 WaitCommitted =0x00000001 ,//0 WaitAborted =0x00000002 ,//0 MaximumWaitState =0x00000003 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct _POP_SYSTEM_IDLE /* sizeof 00000038 56 */ { /* off 0x0000 */ long AverageIdleness; /* off 0x0004 */ long LowestIdleness; /* off 0x0008 */ unsigned long Time; /* off 0x000c */ unsigned long Timeout; /* off 0x0010 */ unsigned long LastUserInput; /* off 0x0014 */ struct POWER_ACTION_POLICY Action; /* off 0x0020 */ enum _SYSTEM_POWER_STATE MinState; /* off 0x0024 */ unsigned char SystemRequired; /* off 0x0025 */ unsigned char IdleWorker; /* off 0x0026 */ unsigned char Sampling; /* off 0x0028 */ unsigned __int64 LastTick; /* off 0x0030 */ unsigned long LastSystemRequiredTime; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 0 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; } Flags; /* off 0x0030 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x003c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long PStateContext; /* off 0x0044 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0048 */ unsigned long TStateContext; /* off 0x004c */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0050 */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0058 */ struct _PPM_PERF_STATE State[1]; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000b0 176 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POWER_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ unsigned __int64 ProgrammedRTCTime; /* off 0x0058 */ unsigned char WakeOnRTC; /* off 0x005c */ struct _DIAGNOSTIC_BUFFER* WakeTimerInfo; /* off 0x0060 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000170 368 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[9]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0190 */ struct _LIST_ENTRY Pending; /* off 0x0198 */ long Status; /* off 0x019c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x01a0 */ unsigned char Waking; /* off 0x01a1 */ unsigned char Cancelled; /* off 0x01a2 */ unsigned char IgnoreErrors; /* off 0x01a3 */ unsigned char IgnoreNotImplemented; /* off 0x01a4 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_HIBER_CONTEXT /* sizeof 000000a8 168 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ unsigned long IoPagesCount; /* off 0x0050 */ void* CurrentMcb; /* off 0x0054 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0058 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x005c */ unsigned long PreferredIoWriteSize; /* off 0x0060 */ unsigned long IoProgress; /* off 0x0064 */ unsigned long HiberVa; /* off 0x0068 */ union _LARGE_INTEGER HiberPte; /* off 0x0070 */ long Status; /* off 0x0074 */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0078 */ unsigned char* CompressionWorkspace; /* off 0x007c */ unsigned char* CompressedWriteBuffer; /* off 0x0080 */ unsigned long CompressedWriteBufferSize; /* off 0x0084 */ unsigned long MaxCompressedOutputSize; /* off 0x0088 */ unsigned long* PerformanceStats; /* off 0x008c */ void* CompressionBlock; /* off 0x0090 */ void* DmaIO; /* off 0x0094 */ void* TemporaryHeap; /* off 0x0098 */ struct _MDL* BootLoaderLogMdl; /* off 0x009c */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x00a0 */ void* ResumeContext; /* off 0x00a4 */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct _PO_HIBER_PERF /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 ElapsedTicks; /* off 0x0020 */ unsigned __int64 CompressTicks; /* off 0x0028 */ unsigned __int64 ResumeAppTime; /* off 0x0030 */ unsigned __int64 HiberFileResumeTime; /* off 0x0038 */ unsigned __int64 BytesCopied; /* off 0x0040 */ unsigned __int64 PagesProcessed; /* off 0x0048 */ unsigned long PagesWritten; /* off 0x004c */ unsigned long DumpCount; /* off 0x0050 */ unsigned long FileRuns; }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long FirstTablePage; /* off 0x0050 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00a8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00ac */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00b0 */ unsigned long NoBootLoaderLogPages; /* off 0x00b4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00d4 */ unsigned long NotUsed; /* off 0x00d8 */ unsigned long ResumeContextCheck; /* off 0x00dc */ unsigned long ResumeContextPages; }; struct _DIAGNOSTIC_BUFFER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0008 */ unsigned long ProcessImageNameOffset; union { struct { /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ unsigned long ServiceTag; }; struct { /* off 0x0008 */ unsigned long DeviceDescriptionOffset; }; struct { /* off 0x000c */ unsigned long DevicePathOffset; }; }; }; }; /* off 0x0014 */ unsigned long ReasonOffset; }; enum _REQUESTER_TYPE { KernelRequester =0x00000000 ,//0 UserProcessRequester =0x00000001 ,//0 UserSharedServiceRequester =0x00000002 ,//0 }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ unsigned long SessionId; /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL_PTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _MMPTE FreePteHead; /* off 0x0004 */ struct _MMPTE FreePteTail; }; struct _MI_SPECIAL_POOL /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ unsigned long Lock; /* off 0x0008 */ struct _MI_SPECIAL_POOL_PTE_LIST Paged; /* off 0x0010 */ struct _MI_SPECIAL_POOL_PTE_LIST NonPaged; /* off 0x0018 */ long PagesInUse; /* off 0x001c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Hint; /* off 0x000c */ struct _MMPTE* BasePte; /* off 0x0010 */ unsigned long* FailureCount; /* off 0x0014 */ struct _MMSUPPORT* Vm; /* off 0x0018 */ long TotalSystemPtes; /* off 0x001c */ long TotalFreeSystemPtes; /* off 0x0020 */ long CachedPteCount; /* off 0x0024 */ unsigned long PteFailures; /* off 0x0028 */ struct _KGUARDED_MUTEX* GlobalMutex; }; struct _MM_SESSION_SPACE /* sizeof 00001f00 7936 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KGATE AttachGate; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0dd8 */ struct _MMWSLE* Wsle; /* off 0x0ddc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0de0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1e14 */ struct _MMPTE* PageTables; /* off 0x1e18 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e3c */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e5c */ long PoolBigEntriesInUse; /* off 0x1e60 */ unsigned long PagedPoolPdeCount; /* off 0x1e64 */ unsigned long SpecialPoolPdeCount; /* off 0x1e68 */ unsigned long DynamicSessionPdeCount; /* off 0x1e6c */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e98 */ void* PoolTrackTableExpansion; /* off 0x1e9c */ unsigned long PoolTrackTableExpansionSize; /* off 0x1ea0 */ void* PoolTrackBigPages; /* off 0x1ea4 */ unsigned long PoolTrackBigPagesSize; /* off 0x1ea8 */ enum _IO_SESSION_STATE IoState; /* off 0x1eac */ struct _KEVENT IoNotificationEvent; /* off 0x1ebc */ struct _RTL_BITMAP SessionPoolPdes; /* off 0x1ec4 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _MMVIEW /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; /* off 0x0008 */ struct _LIST_ENTRY ViewLinks; /* off 0x0010 */ void* SessionViewVa; /* off 0x0014 */ unsigned long SessionId; }; enum _IO_SESSION_STATE { IoSessionStateCreated =0x00000001 ,//0 IoSessionStateInitialized =0x00000002 ,//0 IoSessionStateConnected =0x00000003 ,//0 IoSessionStateDisconnected =0x00000004 ,//0 IoSessionStateDisconnectedLoggedOn =0x00000005 ,//0 IoSessionStateLoggedOn =0x00000006 ,//0 IoSessionStateLoggedOff =0x00000007 ,//0 IoSessionStateTerminated =0x00000008 ,//0 IoSessionStateMax =0x00000009 ,//0 }; union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR_SECTION /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockInStackQueuedSpinLock =0x00000006 ,//0 VfDeadlockUnusedSpinLock =0x00000007 ,//0 VfDeadlockEresource =0x00000008 ,//0 VfDeadlockTypeMaximum =0x00000009 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; /* off 0x001c */ unsigned char ThreadUsesEresources; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _VF_KE_CRITICAL_REGION_TRACE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[7]; }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; enum _KWAIT_BLOCK_STATE { WaitBlockBypassStart =0x00000000 ,//0 WaitBlockBypassComplete =0x00000001 ,//0 WaitBlockActive =0x00000002 ,//0 WaitBlockInactive =0x00000003 ,//0 WaitBlockAllStates =0x00000004 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _VF_AVL_TREE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _VF_AVL_TABLE* Tables; /* off 0x0004 */ unsigned long TablesNo; /* off 0x0008 */ struct _LIST_ENTRY ListEntry; /* off 0x0010 */ unsigned long NodeRangeSize; /* off 0x0014 */ unsigned long Lock; /* off 0x0018 */ struct _KTHREAD* LockOwnerThread; /* off 0x001c */ unsigned long NodeCount; }; struct _VF_AVL_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE RtlTable; /* off 0x0038 */ struct _VF_AVL_TREE_NODE* ReservedNode; }; enum _KPROCESS_STATE { ProcessInMemory =0x00000000 ,//0 ProcessOutOfMemory =0x00000001 ,//0 ProcessInTransition =0x00000002 ,//0 ProcessOutTransition =0x00000003 ,//0 ProcessInSwap =0x00000004 ,//0 ProcessOutSwap =0x00000005 ,//0 ProcessAllSwapStates =0x00000006 ,//0 }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; enum _WORKING_SET_TYPE { WorkingSetTypeUser =0x00000000 ,//0 WorkingSetTypeSession =0x00000001 ,//0 WorkingSetTypeSystemTypes =0x00000002 ,//0 WorkingSetTypeSystemCache =0x00000002 ,//0 WorkingSetTypePagedPool =0x00000003 ,//0 WorkingSetTypeSystemPtes =0x00000004 ,//0 WorkingSetTypeMaximum =0x00000005 ,//0 }; struct _VF_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VF_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VF_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000044 68 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 00000020 32 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned long Flags; /* off 0x0014 */ unsigned long SessionId; /* off 0x0018 */ unsigned long DataLength; /* off 0x001c */ unsigned char Data[1]; } PowerSettingNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } PropertyChangeNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000064 100 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 VetoEvent =0x00000006 ,//0 BlockedDriverEvent =0x00000007 ,//0 InvalidIDEvent =0x00000008 ,//0 DevicePropertyChangeEvent =0x00000009 ,//0 DeviceInstanceRemovalEvent =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _FILE_OBJECT_EXTENSION_TYPE { FoExtTypeTransactionParams =0x00000000 ,//0 FoExtTypeDeviceObjectHint =0x00000001 ,//0 FoExtTypeIosbRange =0x00000002 ,//0 FoExtTypeGeneric =0x00000003 ,//0 FoExtTypeSfio =0x00000004 ,//0 FoExtTypeSymlink =0x00000005 ,//0 FoExtTypeOplockKey =0x00000006 ,//0 MaxFoExtTypes =0x00000007 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000024 36 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; }; ================================================ FILE: Addition/WindowKernel/ntkrnlmp_6.1.7100.0.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _XSTATE_FEATURE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long Size; }; struct _XSTATE_CONFIGURATION /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned __int64 EnabledFeatures; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long OptimizedSave:1 /* start bit 0 */; /* off 0x0010 */ struct _XSTATE_FEATURE Features[64]; }; struct _KUSER_SHARED_DATA /* sizeof 000005f0 1520 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c4 */ unsigned long AltArchitecturePad[1]; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02ed */ unsigned char TscQpcData; struct { /* off 0x02ed */ unsigned char TscQpcEnabled:1 /* start bit 0 */; /* off 0x02ed */ unsigned char TscQpcSpareFlag:1 /* start bit 1 */; /* off 0x02ed */ unsigned char TscQpcShift:6 /* start bit 2 */; }; }; /* off 0x02ee */ unsigned char TscQpcPad[2]; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f4 */ unsigned long DataFlagsPad[1]; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; /* off 0x0320 */ unsigned long ReservedTickCountOverlay[3]; }; /* off 0x032c */ unsigned long TickCountPad[1]; /* off 0x0330 */ unsigned long Cookie; /* off 0x0334 */ unsigned long CookiePad[1]; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[16]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; /* off 0x03a8 */ unsigned __int64 Reserved5; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; /* off 0x03b8 */ unsigned __int64 TscQpcBias; /* off 0x03c0 */ unsigned long ActiveProcessorCount; /* off 0x03c4 */ unsigned short ActiveGroupCount; /* off 0x03c6 */ unsigned short Reserved4; /* off 0x03c8 */ unsigned long AitSamplingValue; /* off 0x03cc */ unsigned long AppCompatFlag; /* off 0x03d0 */ unsigned __int64 SystemDllNativeRelocation; /* off 0x03d8 */ unsigned long SystemDllWowRelocation; /* off 0x03dc */ unsigned long XStatePad[1]; /* off 0x03e0 */ struct _XSTATE_CONFIGURATION XState; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON_V3 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Persistent:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Private:30 /* start bit 2 */; } s; } u; /* off 0x0020 */ enum _TP_CALLBACK_PRIORITY CallbackPriority; /* off 0x0024 */ unsigned long Size; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; enum _TP_CALLBACK_PRIORITY { TP_CALLBACK_PRIORITY_HIGH =0x00000000 ,//0 TP_CALLBACK_PRIORITY_NORMAL =0x00000001 ,//0 TP_CALLBACK_PRIORITY_LOW =0x00000002 ,//0 TP_CALLBACK_PRIORITY_INVALID =0x00000003 ,//0 }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _TP_NBQ_GUARD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY GuardLinks; /* off 0x0008 */ void* Guards[2]; }; struct _TP_TASK /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; /* off 0x000c */ struct _TP_NBQ_GUARD PostGuard; /* off 0x001c */ void* NBQNode; }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_DIRECT /* sizeof 0000000c 12 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _PROCESSOR_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Reserved; }; struct _TEB /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ void* ResourceRetValue; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _PEB /* sizeof 00000248 584 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ProcessUsingFTH:1 /* start bit 4 */; /* off 0x0028 */ unsigned long ReservedBits0:27 /* start bit 5 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long AtlThunkSListPtr32; /* off 0x0038 */ void* ApiSetMap; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; /* off 0x0238 */ void* pContextData; /* off 0x023c */ void* pImageHeaderHash; union { /* off 0x0240 */ unsigned long TracingFlags; struct { /* off 0x0240 */ unsigned long HeapTracingEnabled:1 /* start bit 0 */; /* off 0x0240 */ unsigned long CritSecTracingEnabled:1 /* start bit 1 */; /* off 0x0240 */ unsigned long SpareTracingBits:30 /* start bit 2 */; }; }; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000298 664 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; /* off 0x0294 */ unsigned long EnvironmentVersion; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ChainHead; /* off 0x0004 */ struct _LIST_ENTRY* PrevLinkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY Linkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry; /* off 0x000c */ struct _LIST_ENTRY* ChainHead; /* off 0x0010 */ unsigned long BucketIndex; }; struct _RTL_DYNAMIC_HASH_TABLE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long Shift; /* off 0x0008 */ unsigned long TableSize; /* off 0x000c */ unsigned long Pivot; /* off 0x0010 */ unsigned long DivisorMask; /* off 0x0014 */ unsigned long NumEntries; /* off 0x0018 */ unsigned long NonEmptyBuckets; /* off 0x001c */ unsigned long NumEnumerators; /* off 0x0020 */ void* Directory; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char TimerControlFlags; struct { /* off 0x0001 */ unsigned char Absolute:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Coalescable:1 /* start bit 1 */; /* off 0x0001 */ unsigned char KeepShifting:1 /* start bit 2 */; /* off 0x0001 */ unsigned char EncodedTolerableDelay:5 /* start bit 3 */; }; /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char ThreadControlFlags; struct { /* off 0x0002 */ unsigned char CpuThrottled:1 /* start bit 0 */; /* off 0x0002 */ unsigned char CycleProfiling:1 /* start bit 1 */; /* off 0x0002 */ unsigned char CounterProfiling:1 /* start bit 2 */; /* off 0x0002 */ unsigned char Reserved:5 /* start bit 3 */; }; /* off 0x0002 */ unsigned char Hand; /* off 0x0002 */ unsigned char Size; }; union { /* off 0x0003 */ unsigned char TimerMiscFlags; struct { /* off 0x0003 */ unsigned char Index:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Processor:5 /* start bit 1 */; /* off 0x0003 */ unsigned char Inserted:1 /* start bit 6 */; /* off 0x0003 */ unsigned char Expired:1 /* start bit 7 */; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char ActiveDR7:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Instrumented:1 /* start bit 1 */; /* off 0x0003 */ unsigned char Reserved2:4 /* start bit 2 */; /* off 0x0003 */ unsigned char UmsScheduled:1 /* start bit 6 */; /* off 0x0003 */ unsigned char UmsPrimary:1 /* start bit 7 */; }; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ struct _LIST_ENTRY Entry; /* off 0x0010 */ union _ULARGE_INTEGER Time; }; struct _KTIMER_TABLE /* sizeof 00001840 6208 */ { /* off 0x0000 */ struct _KTIMER* TimerExpiry[16]; /* off 0x0040 */ struct _KTIMER_TABLE_ENTRY TimerEntries[256]; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _PPM_FFH_THROTTLE_STATE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char EnableLogging; /* off 0x0004 */ unsigned long MismatchCount; /* off 0x0008 */ unsigned char Initialized; /* off 0x0010 */ unsigned __int64 LastValue; /* off 0x0018 */ union _LARGE_INTEGER LastLogTickCount; }; struct _PROC_IDLE_SNAP /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Time; /* off 0x0008 */ unsigned __int64 Idle; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 IdleTimeLast; /* off 0x0010 */ unsigned __int64 IdleTimeTotal; /* off 0x0018 */ unsigned __int64 IdleTimeEntry; /* off 0x0020 */ struct _PROC_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ enum _PROC_HYPERVISOR_STATE Hypervisor; /* off 0x0028 */ unsigned long PerfHistoryTotal; /* off 0x002c */ unsigned char ThermalConstraint; /* off 0x002d */ unsigned char PerfHistoryCount; /* off 0x002e */ unsigned char PerfHistorySlot; /* off 0x002f */ unsigned char Reserved; /* off 0x0030 */ unsigned long LastSysTime; /* off 0x0034 */ unsigned long WmiDispatchPtr; /* off 0x0038 */ long WmiInterfaceEnabled; /* off 0x0040 */ struct _PPM_FFH_THROTTLE_STATE_INFO FFHThrottleStateInfo; /* off 0x0060 */ struct _KDPC PerfActionDpc; /* off 0x0080 */ long PerfActionMask; /* off 0x0088 */ struct _PROC_IDLE_SNAP IdleCheck; /* off 0x0098 */ struct _PROC_IDLE_SNAP PerfCheck; /* off 0x00a8 */ struct _PROC_PERF_DOMAIN* Domain; /* off 0x00ac */ struct _PROC_PERF_CONSTRAINT* PerfConstraint; /* off 0x00b0 */ struct _PROC_PERF_LOAD* Load; /* off 0x00b4 */ struct _PROC_HISTORY_ENTRY* PerfHistory; /* off 0x00b8 */ unsigned long Utility; /* off 0x00bc */ unsigned long OverUtilizedHistory; /* off 0x00c0 */ unsigned long AffinityCount; /* off 0x00c4 */ unsigned long AffinityHistory; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ unsigned long Period; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KAFFINITY_EX /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ unsigned long Bitmap[1]; }; struct _KPRCB /* sizeof 00003628 13864 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char LegacyNumber; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ char CpuType; /* off 0x0015 */ char CpuID; union { /* off 0x0016 */ unsigned short CpuStep; struct { /* off 0x0016 */ unsigned char CpuStepping; /* off 0x0017 */ unsigned char CpuModel; }; }; /* off 0x0018 */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x0338 */ unsigned long KernelReserved[16]; /* off 0x0378 */ unsigned long HalReserved[16]; /* off 0x03b8 */ unsigned long CFlushSize; /* off 0x03bc */ unsigned char CoresPerPhysicalProcessor; /* off 0x03bd */ unsigned char LogicalProcessorsPerCore; /* off 0x03be */ unsigned char PrcbPad0[2]; /* off 0x03c0 */ unsigned long MHz; /* off 0x03c4 */ unsigned char CpuVendor; /* off 0x03c5 */ unsigned char GroupIndex; /* off 0x03c6 */ unsigned short Group; /* off 0x03c8 */ unsigned long GroupSetMember; /* off 0x03cc */ unsigned long Number; /* off 0x03d0 */ unsigned char PrcbPad1[72]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[17]; /* off 0x04a0 */ struct _KTHREAD* NpxThread; /* off 0x04a4 */ unsigned long InterruptCount; /* off 0x04a8 */ unsigned long KernelTime; /* off 0x04ac */ unsigned long UserTime; /* off 0x04b0 */ unsigned long DpcTime; /* off 0x04b4 */ unsigned long DpcTimeCount; /* off 0x04b8 */ unsigned long InterruptTime; /* off 0x04bc */ unsigned long AdjustDpcThreshold; /* off 0x04c0 */ unsigned long PageColor; /* off 0x04c4 */ unsigned char DebuggerSavedIRQL; /* off 0x04c5 */ unsigned char NodeColor; /* off 0x04c6 */ unsigned char PrcbPad20[2]; /* off 0x04c8 */ unsigned long NodeShiftedColor; /* off 0x04cc */ struct _KNODE* ParentNode; /* off 0x04d0 */ unsigned long SecondaryColorMask; /* off 0x04d4 */ unsigned long DpcTimeLimit; /* off 0x04d8 */ unsigned long PrcbPad21[2]; /* off 0x04e0 */ unsigned long CcFastReadNoWait; /* off 0x04e4 */ unsigned long CcFastReadWait; /* off 0x04e8 */ unsigned long CcFastReadNotPossible; /* off 0x04ec */ unsigned long CcCopyReadNoWait; /* off 0x04f0 */ unsigned long CcCopyReadWait; /* off 0x04f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x04f8 */ long MmSpinLockOrdering; /* off 0x04fc */ long IoReadOperationCount; /* off 0x0500 */ long IoWriteOperationCount; /* off 0x0504 */ long IoOtherOperationCount; /* off 0x0508 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0510 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0518 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0520 */ unsigned long CcFastMdlReadNoWait; /* off 0x0524 */ unsigned long CcFastMdlReadWait; /* off 0x0528 */ unsigned long CcFastMdlReadNotPossible; /* off 0x052c */ unsigned long CcMapDataNoWait; /* off 0x0530 */ unsigned long CcMapDataWait; /* off 0x0534 */ unsigned long CcPinMappedDataCount; /* off 0x0538 */ unsigned long CcPinReadNoWait; /* off 0x053c */ unsigned long CcPinReadWait; /* off 0x0540 */ unsigned long CcMdlReadNoWait; /* off 0x0544 */ unsigned long CcMdlReadWait; /* off 0x0548 */ unsigned long CcLazyWriteHotSpots; /* off 0x054c */ unsigned long CcLazyWriteIos; /* off 0x0550 */ unsigned long CcLazyWritePages; /* off 0x0554 */ unsigned long CcDataFlushes; /* off 0x0558 */ unsigned long CcDataPages; /* off 0x055c */ unsigned long CcLostDelayedWrites; /* off 0x0560 */ unsigned long CcFastReadResourceMiss; /* off 0x0564 */ unsigned long CcCopyReadWaitMiss; /* off 0x0568 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x056c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0570 */ unsigned long CcMapDataWaitMiss; /* off 0x0574 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0578 */ unsigned long CcPinReadWaitMiss; /* off 0x057c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0580 */ unsigned long CcMdlReadWaitMiss; /* off 0x0584 */ unsigned long CcReadAheadIos; /* off 0x0588 */ unsigned long KeAlignmentFixupCount; /* off 0x058c */ unsigned long KeExceptionDispatchCount; /* off 0x0590 */ unsigned long KeSystemCalls; /* off 0x0594 */ unsigned long AvailableTime; /* off 0x0598 */ unsigned long PrcbPad22[2]; /* off 0x05a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0620 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x0f20 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1820 */ unsigned long PacketBarrier; /* off 0x1824 */ long ReverseStall; /* off 0x1828 */ void* IpiFrame; /* off 0x182c */ unsigned char PrcbPad3[52]; /* off 0x1860 */ void* CurrentPacket[3]; /* off 0x186c */ unsigned long TargetSet; /* off 0x1870 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1874 */ unsigned long IpiFrozen; /* off 0x1878 */ unsigned char PrcbPad4[40]; /* off 0x18a0 */ unsigned long RequestSummary; /* off 0x18a4 */ struct _KPRCB* SignalDone; /* off 0x18a8 */ unsigned char PrcbPad50[56]; /* off 0x18e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1908 */ void* DpcStack; /* off 0x190c */ long MaximumDpcQueueDepth; /* off 0x1910 */ unsigned long DpcRequestRate; /* off 0x1914 */ unsigned long MinimumDpcRate; /* off 0x1918 */ unsigned long DpcLastCount; /* off 0x191c */ unsigned long PrcbLock; /* off 0x1920 */ struct _KGATE DpcGate; /* off 0x1930 */ unsigned char ThreadDpcEnable; /* off 0x1931 */ unsigned char QuantumEnd; /* off 0x1932 */ unsigned char DpcRoutineActive; /* off 0x1933 */ unsigned char IdleSchedule; union { /* off 0x1934 */ long DpcRequestSummary; /* off 0x1934 */ short DpcRequestSlot[2]; struct { /* off 0x1934 */ short NormalDpcState; union { /* off 0x1936 */ unsigned short DpcThreadActive:1 /* start bit 0 */; /* off 0x1936 */ short ThreadDpcState; }; }; }; /* off 0x1938 */ unsigned long TimerHand; /* off 0x193c */ unsigned long LastTick; /* off 0x1940 */ long MasterOffset; /* off 0x1944 */ unsigned long PrcbPad41[2]; /* off 0x194c */ unsigned long PeriodicCount; /* off 0x1950 */ unsigned long PeriodicBias; /* off 0x1958 */ unsigned __int64 TickOffset; /* off 0x1960 */ struct _KTIMER_TABLE TimerTable; /* off 0x31a0 */ struct _KDPC CallDpc; /* off 0x31c0 */ long ClockKeepAlive; /* off 0x31c4 */ unsigned char ClockCheckSlot; /* off 0x31c5 */ unsigned char ClockPollCycle; /* off 0x31c6 */ unsigned char PrcbPad6[2]; /* off 0x31c8 */ long DpcWatchdogPeriod; /* off 0x31cc */ long DpcWatchdogCount; /* off 0x31d0 */ long ThreadWatchdogPeriod; /* off 0x31d4 */ long ThreadWatchdogCount; /* off 0x31d8 */ long KeSpinLockOrdering; /* off 0x31dc */ unsigned long PrcbPad70[1]; /* off 0x31e0 */ struct _LIST_ENTRY WaitListHead; /* off 0x31e8 */ unsigned long WaitLock; /* off 0x31ec */ unsigned long ReadySummary; /* off 0x31f0 */ unsigned long QueueIndex; /* off 0x31f4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x31f8 */ unsigned __int64 StartCycles; /* off 0x3200 */ unsigned __int64 CycleTime; /* off 0x3208 */ unsigned long HighCycleTime; /* off 0x320c */ unsigned long PrcbPad71; /* off 0x3210 */ unsigned __int64 PrcbPad72[2]; /* off 0x3220 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x3320 */ void* ChainedInterruptList; /* off 0x3324 */ long LookasideIrpFloat; /* off 0x3328 */ long MmPageFaultCount; /* off 0x332c */ long MmCopyOnWriteCount; /* off 0x3330 */ long MmTransitionCount; /* off 0x3334 */ long MmCacheTransitionCount; /* off 0x3338 */ long MmDemandZeroCount; /* off 0x333c */ long MmPageReadCount; /* off 0x3340 */ long MmPageReadIoCount; /* off 0x3344 */ long MmCacheReadCount; /* off 0x3348 */ long MmCacheIoCount; /* off 0x334c */ long MmDirtyPagesWriteCount; /* off 0x3350 */ long MmDirtyWriteIoCount; /* off 0x3354 */ long MmMappedPagesWriteCount; /* off 0x3358 */ long MmMappedWriteIoCount; /* off 0x335c */ unsigned long CachedCommit; /* off 0x3360 */ unsigned long CachedResidentAvailable; /* off 0x3364 */ void* HyperPte; /* off 0x3368 */ unsigned char PrcbPad8[4]; /* off 0x336c */ unsigned char VendorString[13]; /* off 0x3379 */ unsigned char InitialApicId; /* off 0x337a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x337b */ unsigned char PrcbPad9[5]; /* off 0x3380 */ unsigned long FeatureBits; /* off 0x3388 */ union _LARGE_INTEGER UpdateSignature; /* off 0x3390 */ unsigned __int64 IsrTime; /* off 0x3398 */ unsigned __int64 RuntimeAccumulation; /* off 0x33a0 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x3468 */ struct _KDPC DpcWatchdogDpc; /* off 0x3488 */ struct _KTIMER DpcWatchdogTimer; /* off 0x34b0 */ void* WheaInfo; /* off 0x34b4 */ void* EtwSupport; /* off 0x34b8 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x34c0 */ union _SLIST_HEADER HypercallPageList; /* off 0x34c8 */ void* HypercallPageVirtual; /* off 0x34cc */ void* VirtualApicAssist; /* off 0x34d0 */ unsigned __int64* StatisticsPage; /* off 0x34d4 */ void* RateControl; /* off 0x34d8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x3514 */ unsigned long CacheCount; /* off 0x3518 */ unsigned long CacheProcessorMask[5]; /* off 0x352c */ struct _KAFFINITY_EX PackageProcessorSet; /* off 0x3538 */ unsigned long PrcbPad91[1]; /* off 0x353c */ unsigned long CoreProcessorSet; /* off 0x3540 */ struct _KDPC TimerExpirationDpc; /* off 0x3560 */ unsigned long SpinLockAcquireCount; /* off 0x3564 */ unsigned long SpinLockContentionCount; /* off 0x3568 */ unsigned long SpinLockSpinCount; /* off 0x356c */ unsigned long IpiSendRequestBroadcastCount; /* off 0x3570 */ unsigned long IpiSendRequestRoutineCount; /* off 0x3574 */ unsigned long IpiSendSoftwareInterruptCount; /* off 0x3578 */ unsigned long ExInitializeResourceCount; /* off 0x357c */ unsigned long ExReInitializeResourceCount; /* off 0x3580 */ unsigned long ExDeleteResourceCount; /* off 0x3584 */ unsigned long ExecutiveResourceAcquiresCount; /* off 0x3588 */ unsigned long ExecutiveResourceContentionsCount; /* off 0x358c */ unsigned long ExecutiveResourceReleaseExclusiveCount; /* off 0x3590 */ unsigned long ExecutiveResourceReleaseSharedCount; /* off 0x3594 */ unsigned long ExecutiveResourceConvertsCount; /* off 0x3598 */ unsigned long ExAcqResExclusiveAttempts; /* off 0x359c */ unsigned long ExAcqResExclusiveAcquiresExclusive; /* off 0x35a0 */ unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; /* off 0x35a4 */ unsigned long ExAcqResExclusiveWaits; /* off 0x35a8 */ unsigned long ExAcqResExclusiveNotAcquires; /* off 0x35ac */ unsigned long ExAcqResSharedAttempts; /* off 0x35b0 */ unsigned long ExAcqResSharedAcquiresExclusive; /* off 0x35b4 */ unsigned long ExAcqResSharedAcquiresShared; /* off 0x35b8 */ unsigned long ExAcqResSharedAcquiresSharedRecursive; /* off 0x35bc */ unsigned long ExAcqResSharedWaits; /* off 0x35c0 */ unsigned long ExAcqResSharedNotAcquires; /* off 0x35c4 */ unsigned long ExAcqResSharedStarveExclusiveAttempts; /* off 0x35c8 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; /* off 0x35cc */ unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; /* off 0x35d0 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; /* off 0x35d4 */ unsigned long ExAcqResSharedStarveExclusiveWaits; /* off 0x35d8 */ unsigned long ExAcqResSharedStarveExclusiveNotAcquires; /* off 0x35dc */ unsigned long ExAcqResSharedWaitForExclusiveAttempts; /* off 0x35e0 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; /* off 0x35e4 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; /* off 0x35e8 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; /* off 0x35ec */ unsigned long ExAcqResSharedWaitForExclusiveWaits; /* off 0x35f0 */ unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; /* off 0x35f4 */ unsigned long ExSetResOwnerPointerExclusive; /* off 0x35f8 */ unsigned long ExSetResOwnerPointerSharedNew; /* off 0x35fc */ unsigned long ExSetResOwnerPointerSharedOld; /* off 0x3600 */ unsigned long ExTryToAcqExclusiveAttempts; /* off 0x3604 */ unsigned long ExTryToAcqExclusiveAcquires; /* off 0x3608 */ unsigned long ExBoostExclusiveOwner; /* off 0x360c */ unsigned long ExBoostSharedOwners; /* off 0x3610 */ unsigned long ExEtwSynchTrackingNotificationsCount; /* off 0x3614 */ unsigned long ExEtwSynchTrackingNotificationsAccountedCount; /* off 0x3618 */ struct _CONTEXT* Context; /* off 0x361c */ unsigned long ContextFlags; /* off 0x3620 */ struct _XSAVE_AREA* ExtendedState; }; struct _KPCR /* sizeof 00003748 14152 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; union _KWAIT_STATUS_REGISTER /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Flags; struct { /* off 0x0000 */ unsigned char State:2 /* start bit 0 */; /* off 0x0000 */ unsigned char Affinity:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Priority:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Apc:1 /* start bit 4 */; /* off 0x0000 */ unsigned char UserApc:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Alert:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Unused:1 /* start bit 7 */; }; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char BlockState; }; struct _GROUP_AFFINITY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Mask; /* off 0x0004 */ unsigned short Group; /* off 0x0006 */ unsigned short Reserved[3]; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 00000200 512 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; /* off 0x0038 */ union _KWAIT_STATUS_REGISTER WaitRegister; /* off 0x0039 */ unsigned char Running; /* off 0x003a */ unsigned char Alerted[2]; union { struct { /* off 0x003c */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x003c */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x003c */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x003c */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x003c */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x003c */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x003c */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x003c */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x003c */ unsigned long ApcInterruptRequest:1 /* start bit 8 */; /* off 0x003c */ unsigned long ForceDeferSchedule:1 /* start bit 9 */; /* off 0x003c */ unsigned long QuantumEndMigrate:1 /* start bit 10 */; /* off 0x003c */ unsigned long UmsDirectedSwitchEnable:1 /* start bit 11 */; /* off 0x003c */ unsigned long TimerActive:1 /* start bit 12 */; /* off 0x003c */ unsigned long Reserved:19 /* start bit 13 */; }; /* off 0x003c */ long MiscFlags; }; union { /* off 0x0040 */ struct _KAPC_STATE ApcState; struct { /* off 0x0040 */ unsigned char ApcStateFill[23]; /* off 0x0057 */ char Priority; }; }; /* off 0x0058 */ unsigned long NextProcessor; /* off 0x005c */ unsigned long DeferredProcessor; /* off 0x0060 */ unsigned long ApcQueueLock; /* off 0x0064 */ unsigned long ContextSwitches; /* off 0x0068 */ unsigned char State; /* off 0x0069 */ char NpxState; /* off 0x006a */ unsigned char WaitIrql; /* off 0x006b */ char WaitMode; /* off 0x006c */ long WaitStatus; /* off 0x0070 */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0074 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0074 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x007c */ struct _KQUEUE* Queue; /* off 0x0080 */ unsigned long WaitTime; union { struct { /* off 0x0084 */ short KernelApcDisable; /* off 0x0086 */ short SpecialApcDisable; }; struct { /* off 0x0084 */ unsigned long CombinedApcDisable; }; }; /* off 0x0088 */ void* Teb; /* off 0x0090 */ struct _KTIMER Timer; union { struct { /* off 0x00b8 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b8 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b8 */ unsigned long CalloutActive:1 /* start bit 4 */; /* off 0x00b8 */ unsigned long ApcQueueable:1 /* start bit 5 */; /* off 0x00b8 */ unsigned long EnableStackSwap:1 /* start bit 6 */; /* off 0x00b8 */ unsigned long GuiThread:1 /* start bit 7 */; /* off 0x00b8 */ unsigned long UmsPerformingSyscall:1 /* start bit 8 */; /* off 0x00b8 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b8 */ long ThreadFlags; }; /* off 0x00bc */ void* ServiceTable; /* off 0x00c0 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x0120 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0128 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x012c */ void* FirstArgument; union { /* off 0x0130 */ void* CallbackStack; /* off 0x0130 */ unsigned long CallbackDepth; }; /* off 0x0134 */ unsigned char ApcStateIndex; /* off 0x0135 */ char BasePriority; union { /* off 0x0136 */ char PriorityDecrement; struct { /* off 0x0136 */ unsigned char ForegroundBoost:4 /* start bit 0 */; /* off 0x0136 */ unsigned char UnusualBoost:4 /* start bit 4 */; }; }; /* off 0x0137 */ unsigned char Preempted; /* off 0x0138 */ unsigned char AdjustReason; /* off 0x0139 */ char AdjustIncrement; /* off 0x013a */ char PreviousMode; /* off 0x013b */ char Saturation; /* off 0x013c */ unsigned long SystemCallNumber; /* off 0x0140 */ unsigned long FreezeCount; /* off 0x0144 */ struct _GROUP_AFFINITY UserAffinity; /* off 0x0150 */ struct _KPROCESS* Process; /* off 0x0154 */ struct _GROUP_AFFINITY Affinity; /* off 0x0160 */ unsigned long IdealProcessor; /* off 0x0164 */ unsigned long UserIdealProcessor; /* off 0x0168 */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0170 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0170 */ unsigned char SavedApcStateFill[23]; /* off 0x0187 */ unsigned char WaitReason; }; }; /* off 0x0188 */ char SuspendCount; /* off 0x0189 */ char Spare1; /* off 0x018a */ unsigned char OtherPlatformFill; /* off 0x018c */ void* Win32Thread; /* off 0x0190 */ void* StackBase; union { /* off 0x0194 */ struct _KAPC SuspendApc; struct { /* off 0x0194 */ unsigned char SuspendApcFill0[1]; /* off 0x0195 */ unsigned char ResourceIndex; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill1[3]; /* off 0x0197 */ unsigned char QuantumReset; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill2[4]; /* off 0x0198 */ unsigned long KernelTime; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill3[36]; /* off 0x01b8 */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill4[40]; /* off 0x01bc */ void* LegoData; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill5[47]; /* off 0x01c3 */ unsigned char LargeStack; }; }; /* off 0x01c4 */ unsigned long UserTime; union { /* off 0x01c8 */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01c8 */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01dc */ unsigned long SListFaultCount; /* off 0x01e0 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01e8 */ struct _LIST_ENTRY MutantListHead; /* off 0x01f0 */ void* SListFaultAddress; /* off 0x01f4 */ struct _KTHREAD_COUNTERS* ThreadCounters; /* off 0x01f8 */ struct _XSTATE_SAVE* XStateSave; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; union _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; /* off 0x0000 */ unsigned char ExecuteOptions; }; union _KSTACK_COUNT /* sizeof 00000004 4 */ { /* off 0x0000 */ long Value; struct { /* off 0x0000 */ unsigned long State:3 /* start bit 0 */; /* off 0x0000 */ unsigned long StackCount:29 /* start bit 3 */; }; }; struct _KPROCESS /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ struct _KGDTENTRY LdtDescriptor; /* off 0x0024 */ struct _KIDTENTRY Int21Descriptor; /* off 0x002c */ struct _LIST_ENTRY ThreadListHead; /* off 0x0034 */ unsigned long ProcessLock; /* off 0x0038 */ struct _KAFFINITY_EX Affinity; /* off 0x0044 */ struct _LIST_ENTRY ReadyListHead; /* off 0x004c */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x0050 */ struct _KAFFINITY_EX ActiveProcessors; union { struct { /* off 0x005c */ long AutoAlignment:1 /* start bit 0 */; /* off 0x005c */ long DisableBoost:1 /* start bit 1 */; /* off 0x005c */ long DisableQuantum:1 /* start bit 2 */; /* off 0x005c */ unsigned long ActiveGroupsMask:1 /* start bit 3 */; /* off 0x005c */ long ReservedFlags:28 /* start bit 4 */; }; /* off 0x005c */ long ProcessFlags; }; /* off 0x0060 */ char BasePriority; /* off 0x0061 */ char QuantumReset; /* off 0x0062 */ unsigned char Visited; /* off 0x0063 */ unsigned char Unused3; /* off 0x0064 */ unsigned long ThreadSeed[1]; /* off 0x0068 */ unsigned short IdealNode[1]; /* off 0x006a */ unsigned short IdealGlobalNode; /* off 0x006c */ union _KEXECUTE_OPTIONS Flags; /* off 0x006d */ unsigned char Unused1; /* off 0x006e */ unsigned short IopmOffset; /* off 0x0070 */ unsigned long Unused4; /* off 0x0074 */ union _KSTACK_COUNT StackCount; /* off 0x0078 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0080 */ unsigned __int64 CycleTime; /* off 0x0088 */ unsigned long KernelTime; /* off 0x008c */ unsigned long UserTime; /* off 0x0090 */ void* VdmTrapcHandler; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _COUNTER_READING /* sizeof 00000018 24 */ { /* off 0x0000 */ enum _HARDWARE_COUNTER_TYPE Type; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 Total; }; struct _KTHREAD_COUNTERS /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned __int64 WaitReasonBitMap; /* off 0x0008 */ struct _THREAD_PERFORMANCE_DATA* UserData; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0018 */ unsigned __int64 CycleTimeBias; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING HwCounter[16]; }; struct _THREAD_PERFORMANCE_DATA /* sizeof 000001c0 448 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ struct _PROCESSOR_NUMBER ProcessorNumber; /* off 0x0008 */ unsigned long ContextSwitches; /* off 0x000c */ unsigned long HwCountersCount; /* off 0x0010 */ unsigned __int64 UpdateCount; /* off 0x0018 */ unsigned __int64 WaitReasonBitMap; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING CycleTime; /* off 0x0040 */ struct _COUNTER_READING HwCounters[16]; }; enum _HARDWARE_COUNTER_TYPE { PMCCounter =0x00000000 ,//0 MaxHardwareCounterType =0x00000001 ,//0 }; struct _XSTATE_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned long Reserved1; /* off 0x0010 */ struct _XSAVE_AREA* Area; /* off 0x0014 */ unsigned long Reserved2; /* off 0x0018 */ void* Buffer; /* off 0x001c */ unsigned long Reserved3; }; struct _XSTATE_SAVE /* sizeof 00000020 32 */ { union { struct { /* off 0x0000 */ __int64 Reserved1; /* off 0x0008 */ unsigned long Reserved2; /* off 0x000c */ struct _XSTATE_SAVE* Prev; /* off 0x0010 */ struct _XSAVE_AREA* Reserved3; /* off 0x0014 */ struct _KTHREAD* Thread; /* off 0x0018 */ void* Reserved4; /* off 0x001c */ unsigned char Level; }; /* off 0x0000 */ struct _XSTATE_CONTEXT XStateContext; }; }; struct _M128A /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Low; /* off 0x0008 */ __int64 High; }; struct _XSAVE_FORMAT /* sizeof 00000200 512 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned char TagWord; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned short ErrorSelector; /* off 0x000e */ unsigned short Reserved2; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned short DataSelector; /* off 0x0016 */ unsigned short Reserved3; /* off 0x0018 */ unsigned long MxCsr; /* off 0x001c */ unsigned long MxCsr_Mask; /* off 0x0020 */ struct _M128A FloatRegisters[8]; /* off 0x00a0 */ struct _M128A XmmRegisters[8]; /* off 0x0120 */ unsigned char Reserved4[192]; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; }; struct _XSAVE_AREA_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned __int64 Reserved[7]; }; struct _XSAVE_AREA /* sizeof 00000240 576 */ { /* off 0x0000 */ struct _XSAVE_FORMAT LegacyState; /* off 0x0200 */ struct _XSAVE_AREA_HEADER Header; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char GroupAssigned:1 /* start bit 1 */; /* off 0x0000 */ unsigned char GroupCommitted:1 /* start bit 2 */; /* off 0x0000 */ unsigned char GroupAssignmentFixed:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Fill:4 /* start bit 4 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; /* off 0x0014 */ unsigned long Pad0; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ struct _GROUP_AFFINITY Affinity; /* off 0x002c */ unsigned long ProximityId; /* off 0x0030 */ unsigned short NodeNumber; /* off 0x0032 */ unsigned short PrimaryNodeNumber; /* off 0x0034 */ unsigned char MaximumProcessors; /* off 0x0035 */ unsigned char Color; /* off 0x0036 */ struct _flags Flags; /* off 0x0037 */ unsigned char NodePad0; /* off 0x0038 */ unsigned long Seed; /* off 0x003c */ unsigned long MmShiftedColor; /* off 0x0040 */ unsigned long FreeCount[2]; /* off 0x0048 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; /* off 0x0060 */ long ParkLock; /* off 0x0064 */ unsigned long NodePad1; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX DomainMembers; /* off 0x000c */ long( __fastcall *IdleCheck)(void*); /* off 0x0010 */ void( __fastcall *IdleHandler)(void*); /* off 0x0018 */ unsigned __int64 HvConfig; /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned long Latency; /* off 0x0028 */ unsigned long Power; /* off 0x002c */ unsigned long TimeCheck; /* off 0x0030 */ unsigned long StateFlags; /* off 0x0034 */ unsigned char PromotePercent; /* off 0x0035 */ unsigned char DemotePercent; /* off 0x0036 */ unsigned char PromotePercentBase; /* off 0x0037 */ unsigned char DemotePercentBase; /* off 0x0038 */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 00000068 104 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0008 */ unsigned long TargetState; /* off 0x000c */ unsigned long ActualState; /* off 0x0010 */ unsigned long OldState; /* off 0x0014 */ unsigned char NewlyUnparked; /* off 0x0018 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x0028 */ struct _PPM_IDLE_STATE State[1]; }; struct _PROC_IDLE_STATE_BUCKET /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned __int64 MinTime; /* off 0x0010 */ unsigned __int64 MaxTime; /* off 0x0018 */ unsigned long Count; }; struct _PROC_IDLE_STATE_ACCOUNTING /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned long IdleTransitions; /* off 0x000c */ unsigned long FailedTransitions; /* off 0x0010 */ unsigned long InvalidBucketIndex; /* off 0x0018 */ unsigned __int64 MinTime; /* off 0x0020 */ unsigned __int64 MaxTime; /* off 0x0028 */ struct _PROC_IDLE_STATE_BUCKET IdleTimeBuckets[16]; }; struct _PROC_IDLE_ACCOUNTING /* sizeof 000002c0 704 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ unsigned __int64 BucketLimits[16]; /* off 0x0098 */ struct _PROC_IDLE_STATE_ACCOUNTING State[1]; }; enum _PROC_HYPERVISOR_STATE { ProcHypervisorNone =0x00000000 ,//0 ProcHypervisorPresent =0x00000001 ,//0 ProcHypervisorPower =0x00000002 ,//0 }; struct _PROC_PERF_DOMAIN /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _KPRCB* Master; /* off 0x000c */ struct _KAFFINITY_EX Members; /* off 0x0018 */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x001c */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0020 */ void( __fastcall *BoostPolicyHandler)(unsigned long); /* off 0x0024 */ unsigned long( __fastcall *PerfSelectionHandler)(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long*,unsigned long*); /* off 0x0028 */ void( __fastcall *PerfHandler)(unsigned long,unsigned long); /* off 0x002c */ struct _PROC_PERF_CONSTRAINT* Processors; /* off 0x0030 */ unsigned __int64 PerfChangeTime; /* off 0x0038 */ unsigned long ProcessorCount; /* off 0x003c */ unsigned long PreviousFrequencyMhz; /* off 0x0040 */ unsigned long CurrentFrequencyMhz; /* off 0x0044 */ unsigned long PreviousFrequency; /* off 0x0048 */ unsigned long CurrentFrequency; /* off 0x004c */ unsigned long CurrentPerfContext; /* off 0x0050 */ unsigned long DesiredFrequency; /* off 0x0054 */ unsigned long MaxFrequency; /* off 0x0058 */ unsigned long MinPerfPercent; /* off 0x005c */ unsigned long MinThrottlePercent; /* off 0x0060 */ unsigned long MaxPercent; /* off 0x0064 */ unsigned long MinPercent; /* off 0x0068 */ unsigned long ConstrainedMaxPercent; /* off 0x006c */ unsigned long ConstrainedMinPercent; /* off 0x0070 */ unsigned char Coordination; /* off 0x0074 */ long PerfChangeIntervalCount; }; struct _PROC_PERF_CONSTRAINT /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _KPRCB* Prcb; /* off 0x0004 */ unsigned long PerfContext; /* off 0x0008 */ unsigned long PercentageCap; /* off 0x000c */ unsigned long ThermalCap; /* off 0x0010 */ unsigned long TargetFrequency; /* off 0x0014 */ unsigned long AcumulatedFullFrequency; /* off 0x0018 */ unsigned long AcumulatedZeroFrequency; /* off 0x001c */ unsigned long FrequencyHistoryTotal; /* off 0x0020 */ unsigned long AverageFrequency; }; struct _PROC_PERF_LOAD /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char BusyPercentage; /* off 0x0001 */ unsigned char FrequencyPercentage; }; struct _PROC_HISTORY_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Utility; /* off 0x0002 */ unsigned char Frequency; /* off 0x0003 */ unsigned char Reserved; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueUnusedSpare0 =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueueUnusedSpare2 =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueMaximumLock =0x00000011 ,//0 }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Event; /* off 0x001c */ unsigned long OldIrql; }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideMediumIrpList =0x00000001 ,//0 LookasideLargeIrpList =0x00000002 ,//0 LookasideMdlList =0x00000003 ,//0 LookasideCreateInfoList =0x00000004 ,//0 LookasideNameBufferList =0x00000005 ,//0 LookasideTwilightList =0x00000006 ,//0 LookasideCompletionList =0x00000007 ,//0 LookasideScratchBufferList =0x00000008 ,//0 LookasideMaximumList =0x00000009 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _KEVENT WakeEvent; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 000002b8 696 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x0200 */ union _LARGE_INTEGER CreateTime; union { /* off 0x0208 */ union _LARGE_INTEGER ExitTime; /* off 0x0208 */ struct _LIST_ENTRY KeyedWaitChain; }; /* off 0x0210 */ long ExitStatus; union { /* off 0x0214 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x0214 */ void* ForwardLinkShadow; /* off 0x0218 */ void* StartAddress; }; }; union { /* off 0x021c */ struct _TERMINATION_PORT* TerminationPort; /* off 0x021c */ struct _ETHREAD* ReaperLink; /* off 0x021c */ void* KeyedWaitValue; }; /* off 0x0220 */ unsigned long ActiveTimerListLock; /* off 0x0224 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x022c */ struct _CLIENT_ID Cid; union { /* off 0x0234 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0234 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0248 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x024c */ struct _LIST_ENTRY IrpList; /* off 0x0254 */ unsigned long TopLevelIrp; /* off 0x0258 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x025c */ union _PSP_CPU_QUOTA_APC* CpuQuotaApc; /* off 0x0260 */ void* Win32StartAddress; /* off 0x0264 */ void* LegacyPowerObject; /* off 0x0268 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0270 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0274 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0278 */ unsigned long ReadClusterSize; /* off 0x027c */ long MmLockOrdering; union { /* off 0x0280 */ unsigned long CrossThreadFlags; struct { /* off 0x0280 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0280 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0280 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0280 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0280 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0280 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0280 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0280 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0280 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0280 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0280 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0280 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0280 */ unsigned long RundownFail:1 /* start bit 16 */; /* off 0x0280 */ unsigned long NeedsWorkingSetAging:1 /* start bit 17 */; }; }; union { /* off 0x0284 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0284 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0284 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0284 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0284 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0284 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0284 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0284 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0288 */ unsigned long SameThreadApcFlags; struct { /* off 0x0288 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0288 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0288 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0288 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0289 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0289 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0289 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0289 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetExclusive:1 /* start bit 0 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetShared:1 /* start bit 1 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetExclusive:1 /* start bit 2 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetShared:1 /* start bit 3 */; /* off 0x028a */ unsigned char TrimTrigger:2 /* start bit 4 */; /* off 0x028a */ unsigned char Spare1:2 /* start bit 6 */; /* off 0x028b */ unsigned char PriorityRegionActive; }; }; /* off 0x028c */ unsigned char CacheManagerActive; /* off 0x028d */ unsigned char DisablePageFaultClustering; /* off 0x028e */ unsigned char ActiveFaultCount; /* off 0x028f */ unsigned char LockOrderState; /* off 0x0290 */ unsigned long AlpcMessageId; union { /* off 0x0294 */ void* AlpcMessage; /* off 0x0294 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0298 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x02a0 */ unsigned long CacheManagerCount; /* off 0x02a4 */ unsigned long IoBoostCount; /* off 0x02a8 */ unsigned long IrpListLock; /* off 0x02ac */ void* ReservedForSynchTracking; /* off 0x02b0 */ struct _SINGLE_LIST_ENTRY CmCallbackListHead; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { struct { /* off 0x0004 */ unsigned long IoPriorityBoosted:1 /* start bit 0 */; /* off 0x0004 */ unsigned long OwnerReferenced:1 /* start bit 1 */; /* off 0x0004 */ unsigned long OwnerCount:30 /* start bit 2 */; }; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long reserved:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char WorkingSetType:3 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 3 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 6 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 7 */; /* off 0x0001 */ unsigned char SessionMaster:1 /* start bit 0 */; /* off 0x0001 */ unsigned char TrimmerState:2 /* start bit 1 */; /* off 0x0001 */ unsigned char Reserved:1 /* start bit 3 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0004 */ struct _KGATE* ExitGate; /* off 0x0008 */ void* AccessLog; /* off 0x000c */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0014 */ unsigned long AgeDistribution[7]; /* off 0x0030 */ unsigned long MinimumWorkingSetSize; /* off 0x0034 */ unsigned long WorkingSetSize; /* off 0x0038 */ unsigned long WorkingSetPrivateSize; /* off 0x003c */ unsigned long MaximumWorkingSetSize; /* off 0x0040 */ unsigned long ChargedWslePages; /* off 0x0044 */ unsigned long ActualWslePages; /* off 0x0048 */ unsigned long WorkingSetSizeOverhead; /* off 0x004c */ unsigned long PeakWorkingSetSize; /* off 0x0050 */ unsigned long HardFaultCount; /* off 0x0054 */ struct _MMWSL* VmWorkingSetList; /* off 0x0058 */ unsigned short NextPageColor; /* off 0x005a */ unsigned short LastTrimStamp; /* off 0x005c */ unsigned long PageFaultCount; /* off 0x0060 */ unsigned long RepurposeCount; /* off 0x0064 */ unsigned long Spare[1]; /* off 0x0068 */ struct _MMSUPPORT_FLAGS Flags; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 000002c0 704 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0098 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x00a0 */ union _LARGE_INTEGER CreateTime; /* off 0x00a8 */ union _LARGE_INTEGER ExitTime; /* off 0x00b0 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x00b4 */ void* UniqueProcessId; /* off 0x00b8 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00c0 */ unsigned long ProcessQuotaUsage[2]; /* off 0x00c8 */ unsigned long ProcessQuotaPeak[2]; /* off 0x00d0 */ unsigned long CommitCharge; /* off 0x00d4 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x00d8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; /* off 0x00dc */ unsigned long PeakVirtualSize; /* off 0x00e0 */ unsigned long VirtualSize; /* off 0x00e4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00ec */ void* DebugPort; union { /* off 0x00f0 */ void* ExceptionPortData; /* off 0x00f0 */ unsigned long ExceptionPortValue; /* off 0x00f0 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00f4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00f8 */ struct _EX_FAST_REF Token; /* off 0x00fc */ unsigned long WorkingSetPage; /* off 0x0100 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x0104 */ struct _ETHREAD* RotateInProgress; /* off 0x0108 */ struct _ETHREAD* ForkInProgress; /* off 0x010c */ unsigned long HardwareTrigger; /* off 0x0110 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x0114 */ void* CloneRoot; /* off 0x0118 */ unsigned long NumberOfPrivatePages; /* off 0x011c */ unsigned long NumberOfLockedPages; /* off 0x0120 */ void* Win32Process; /* off 0x0124 */ struct _EJOB* Job; /* off 0x0128 */ void* SectionObject; /* off 0x012c */ void* SectionBaseAddress; /* off 0x0130 */ unsigned long Cookie; /* off 0x0134 */ unsigned long Spare8; /* off 0x0138 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x013c */ void* Win32WindowStation; /* off 0x0140 */ void* InheritedFromUniqueProcessId; /* off 0x0144 */ void* LdtInformation; /* off 0x0148 */ void* VdmObjects; /* off 0x014c */ unsigned long ConsoleHostProcess; /* off 0x0150 */ void* DeviceMap; /* off 0x0154 */ void* EtwDataSource; /* off 0x0158 */ void* FreeTebHint; union { /* off 0x0160 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0160 */ unsigned __int64 Filler; }; /* off 0x0168 */ void* Session; /* off 0x016c */ unsigned char ImageFileName[15]; /* off 0x017b */ unsigned char PriorityClass; /* off 0x017c */ struct _LIST_ENTRY JobLinks; /* off 0x0184 */ void* LockedPagesList; /* off 0x0188 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0190 */ void* SecurityPort; /* off 0x0194 */ void* PaeTop; /* off 0x0198 */ unsigned long ActiveThreads; /* off 0x019c */ unsigned long ImagePathHash; /* off 0x01a0 */ unsigned long DefaultHardErrorProcessing; /* off 0x01a4 */ long LastThreadExitStatus; /* off 0x01a8 */ struct _PEB* Peb; /* off 0x01ac */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01b0 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01b8 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01c8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01d0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01d8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01e0 */ unsigned long CommitChargeLimit; /* off 0x01e4 */ unsigned long CommitChargePeak; /* off 0x01e8 */ void* AweInfo; /* off 0x01ec */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01f0 */ struct _MMSUPPORT Vm; /* off 0x025c */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0264 */ unsigned long ModifiedPageCount; union { /* off 0x0268 */ unsigned long Flags2; struct { /* off 0x0268 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0268 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0268 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0268 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0268 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0268 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0268 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0268 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0268 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0268 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0268 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0268 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0268 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0268 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0268 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0268 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x0268 */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x0268 */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x0268 */ unsigned long PropagateNode:1 /* start bit 20 */; /* off 0x0268 */ unsigned long ExplicitAffinity:1 /* start bit 21 */; }; }; union { /* off 0x026c */ unsigned long Flags; struct { /* off 0x026c */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x026c */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x026c */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x026c */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x026c */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x026c */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x026c */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x026c */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x026c */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x026c */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x026c */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x026c */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x026c */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x026c */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x026c */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x026c */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x026c */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x026c */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x026c */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x026c */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x026c */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x026c */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x026c */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x026c */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x026c */ unsigned long CrossSessionCreate:1 /* start bit 25 */; /* off 0x026c */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x026c */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x026c */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x026c */ unsigned long SetTimerResolutionLink:1 /* start bit 31 */; }; }; /* off 0x0270 */ long ExitStatus; /* off 0x0274 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0294 */ struct _ALPC_PROCESS_CONTEXT AlpcContext; /* off 0x02a4 */ struct _LIST_ENTRY TimerResolutionLink; /* off 0x02ac */ unsigned long RequestedTimerResolution; /* off 0x02b0 */ unsigned long ActiveThreadsHighWatermark; /* off 0x02b4 */ unsigned long SmallestTimerResolution; /* off 0x02b8 */ struct _PO_DIAG_STACK_RECORD* TimerResolutionStackRecord; }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long CapturedCpuShareWeight; /* off 0x0004 */ unsigned long CapturedTotalWeight; }; /* off 0x0000 */ __int64 CombinedData; }; struct _PS_PER_CPU_QUOTA_CACHE_AWARE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _LIST_ENTRY SortedListEntry; /* off 0x0008 */ struct _LIST_ENTRY IdleOnlyListHead; /* off 0x0010 */ unsigned __int64 CycleBaseAllowance; /* off 0x0018 */ __int64 CyclesRemaining; /* off 0x0020 */ unsigned long CurrentGeneration; }; struct _PS_CPU_QUOTA_BLOCK /* sizeof 00000880 2176 */ { union { struct { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; union { struct { /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long CpuShareWeight; /* off 0x0010 */ union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA CapturedWeightData; union { struct { /* off 0x0018 */ unsigned long DuplicateInputMarker:1 /* start bit 0 */; /* off 0x0018 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0018 */ long MiscFlags; }; struct { }; /* off 0x0000 */ unsigned long BlockCurrentGenerationLock; }; struct { /* off 0x0008 */ unsigned __int64 CyclesAccumulated; }; }; /* off 0x0040 */ unsigned __int64 CycleCredit; /* off 0x0048 */ unsigned long BlockCurrentGeneration; /* off 0x004c */ unsigned long CpuCyclePercent; /* off 0x0050 */ unsigned char CyclesFinishedForCurrentGeneration; /* off 0x0080 */ struct _PS_PER_CPU_QUOTA_CACHE_AWARE Cpu[32]; }; }; }; struct _HANDLE_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ unsigned long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ unsigned long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; /* off 0x0038 */ unsigned long HandleCountHighWatermark; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ unsigned long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long MinimumWorkingSetSize; /* off 0x009c */ unsigned long MaximumWorkingSetSize; /* off 0x00a0 */ unsigned long LimitFlags; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ struct _KAFFINITY_EX Affinity; /* off 0x00b4 */ unsigned char PriorityClass; /* off 0x00b8 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00bc */ unsigned long UIRestrictionsClass; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ unsigned long ProcessMemoryLimit; /* off 0x010c */ unsigned long JobMemoryLimit; /* off 0x0110 */ unsigned long PeakProcessMemoryUsed; /* off 0x0114 */ unsigned long PeakJobMemoryUsed; /* off 0x0118 */ unsigned __int64 CurrentJobMemoryUsed; /* off 0x0120 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0124 */ struct _LIST_ENTRY JobSetLinks; /* off 0x012c */ unsigned long MemberLevel; /* off 0x0130 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 000006ac 1708 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextAgingSlot; /* off 0x0020 */ unsigned long NumberOfCommittedPageTables; /* off 0x0024 */ unsigned long VadBitMapHint; /* off 0x0028 */ unsigned long NonDirectCount; /* off 0x002c */ unsigned long LastVadBit; /* off 0x0030 */ unsigned long MaximumLastVadBit; /* off 0x0034 */ unsigned long LastAllocationSizeHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x0040 */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0044 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0048 */ void* HighestUserAddress; /* off 0x004c */ unsigned short UsedPageTableEntries[768]; /* off 0x064c */ unsigned long CommittedPageTables[24]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned long Age:3 /* start bit 9 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _PO_DIAG_STACK_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StackDepth; /* off 0x0004 */ void* Stack[1]; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileIsRemoteDeviceInformation =0x00000033 ,//0 FileAttributeCacheInformation =0x00000034 ,//0 FileNumaNodeInformation =0x00000035 ,//0 FileStandardLinkInformation =0x00000036 ,//0 FileRemoteProtocolInformation =0x00000037 ,//0 FileMaximumInformation =0x00000038 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 TransportRelations =0x00000006 ,//0 }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved1:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Reserved:13 /* start bit 19 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ unsigned short AffinityPolicy; /* off 0x000a */ unsigned short Group; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 BusQueryContainerID =0x00000005 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long BusyReference; /* off 0x000c */ unsigned long TotalBusyCount; /* off 0x0010 */ unsigned long ConservationIdleTime; /* off 0x0014 */ unsigned long PerformanceIdleTime; /* off 0x0018 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x001c */ struct _LIST_ENTRY IdleList; /* off 0x0024 */ enum _POP_DEVICE_IDLE_TYPE IdleType; /* off 0x0028 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x002c */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x0030 */ struct _LIST_ENTRY Volume; /* off 0x0038 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; enum _POP_DEVICE_IDLE_TYPE { DeviceIdleNormal =0x00000000 ,//0 DeviceIdleDisk =0x00000001 ,//0 }; union _PSP_CPU_QUOTA_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _ACCESS_REASONS /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Data[32]; }; struct _AUX_ACCESS_DATA /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _PRIVILEGE_SET* PrivilegesUsed; /* off 0x0004 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0014 */ unsigned long AccessesToAudit; /* off 0x0018 */ unsigned long MaximumAuditMask; /* off 0x001c */ struct _GUID TransactionId; /* off 0x002c */ void* NewSecurityDescriptor; /* off 0x0030 */ void* ExistingSecurityDescriptor; /* off 0x0034 */ void* ParentSecurityDescriptor; /* off 0x0038 */ void( __stdcall *DeRefSecurityDescriptor)(void*,void*); /* off 0x003c */ void* SDLock; /* off 0x0040 */ struct _ACCESS_REASONS AccessReasons; }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _LIST_ENTRY EcpList; }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned char Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x007c */ unsigned long Key; /* off 0x0080 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PlatformPfaControl:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PlatformDirectedOffline:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved2:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_PACKET_V2 /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0010 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0014 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0018 */ unsigned long ErrorSourceId; /* off 0x001c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0020 */ struct _GUID NotifyType; /* off 0x0030 */ unsigned __int64 Context; /* off 0x0038 */ enum _WHEA_ERROR_PACKET_DATA_FORMAT DataFormat; /* off 0x003c */ unsigned long Reserved1; /* off 0x0040 */ unsigned long DataOffset; /* off 0x0044 */ unsigned long DataLength; /* off 0x0048 */ unsigned long PshedDataOffset; /* off 0x004c */ unsigned long PshedDataLength; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevInformational =0x00000003 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord =0x00000000 ,//0 WheaDataFormatXPFMCA =0x00000001 ,//0 WheaDataFormatMemory =0x00000002 ,//0 WheaDataFormatPCIExpress =0x00000003 ,//0 WheaDataFormatNMIPort =0x00000004 ,//0 WheaDataFormatPCIXBus =0x00000005 ,//0 WheaDataFormatPCIXDevice =0x00000006 ,//0 WheaDataFormatGeneric =0x00000007 ,//0 WheaDataFormatMax =0x00000008 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Precise:1 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 25 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; struct _FSRTL_ADVANCED_FCB_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char IsFastIoPossible; /* off 0x0006 */ unsigned char Flags2; /* off 0x0007 */ unsigned char Reserved:4 /* start bit 0 */; /* off 0x0007 */ unsigned char Version:4 /* start bit 4 */; /* off 0x0008 */ struct _ERESOURCE* Resource; /* off 0x000c */ struct _ERESOURCE* PagingIoResource; /* off 0x0010 */ union _LARGE_INTEGER AllocationSize; /* off 0x0018 */ union _LARGE_INTEGER FileSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ struct _FAST_MUTEX* FastMutex; /* off 0x002c */ struct _LIST_ENTRY FilterContexts; /* off 0x0034 */ struct _EX_PUSH_LOCK PushLock; /* off 0x0038 */ void** FileContextSupportPointer; }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HARDWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ProtoAddressLow:8 /* start bit 1 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long ProtoAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFileHigh:20 /* start bit 12 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long GlobalTimeStamp:20 /* start bit 12 */; }; struct _MMPTE_TRANSITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SubsectionAddressLow:9 /* start bit 1 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long SubsectionAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_LIST /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned long filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long filler1:1 /* start bit 11 */; /* off 0x0000 */ unsigned long NextEntry:20 /* start bit 12 */; }; struct _MMPTE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ unsigned long VolatileLong; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long OsMajorVersion; /* off 0x0004 */ unsigned long OsMinorVersion; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0018 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0020 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0028 */ unsigned long KernelStack; /* off 0x002c */ unsigned long Prcb; /* off 0x0030 */ unsigned long Process; /* off 0x0034 */ unsigned long Thread; /* off 0x0038 */ unsigned long RegistryLength; /* off 0x003c */ void* RegistryBase; /* off 0x0040 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0044 */ char* ArcBootDeviceName; /* off 0x0048 */ char* ArcHalDeviceName; /* off 0x004c */ char* NtBootPathName; /* off 0x0050 */ char* NtHalPathName; /* off 0x0054 */ char* LoadOptions; /* off 0x0058 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x005c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0060 */ void* OemFontFile; /* off 0x0064 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x0068 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0074 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; union { /* off 0x0014 */ unsigned long AffinityMask; struct { /* off 0x0014 */ unsigned short Group; /* off 0x0016 */ unsigned short GroupIndex; }; }; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _TPM_BOOT_ENTROPY_LDR_RESULT /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 Policy; /* off 0x0008 */ enum _TPM_BOOT_ENTROPY_RESULT_CODE ResultCode; /* off 0x000c */ long ResultStatus; /* off 0x0010 */ unsigned __int64 Time; /* off 0x0018 */ unsigned long EntropyLength; /* off 0x001c */ unsigned char EntropyData[40]; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ void* EmInfFileImage; /* off 0x0018 */ unsigned long EmInfFileSize; /* off 0x001c */ void* TriageDumpBlock; /* off 0x0020 */ unsigned long LoaderPagesSpanned; /* off 0x0024 */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0028 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x002c */ void* DrvDBImage; /* off 0x0030 */ unsigned long DrvDBSize; /* off 0x0034 */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0038 */ unsigned char* HalpIRQLToTPR; /* off 0x003c */ unsigned char* HalpVectorToIRQL; /* off 0x0040 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0048 */ void* AcpiTable; /* off 0x004c */ unsigned long AcpiTableSize; /* off 0x0050 */ unsigned long LastBootSucceeded:1 /* start bit 0 */; /* off 0x0050 */ unsigned long LastBootShutdown:1 /* start bit 1 */; /* off 0x0050 */ unsigned long IoPortAccessSupported:1 /* start bit 2 */; /* off 0x0050 */ unsigned long Reserved:29 /* start bit 3 */; /* off 0x0054 */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0058 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0060 */ void* WmdTestResult; /* off 0x0064 */ struct _GUID BootIdentifier; /* off 0x0074 */ unsigned long ResumePages; /* off 0x0078 */ void* DumpHeader; /* off 0x007c */ void* BgContext; /* off 0x0080 */ void* NumaLocalityInfo; /* off 0x0084 */ void* NumaGroupAssignment; /* off 0x0088 */ struct _LIST_ENTRY AttachedHives; /* off 0x0090 */ unsigned long MemoryCachingRequirementsCount; /* off 0x0094 */ void* MemoryCachingRequirements; /* off 0x0098 */ struct _TPM_BOOT_ENTROPY_LDR_RESULT TpmBootEntropyResult; /* off 0x00e0 */ unsigned __int64 ProcessorCounterFrequency; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; enum _TPM_BOOT_ENTROPY_RESULT_CODE { TpmBootEntropyStructureUninitialized =0x00000000 ,//0 TpmBootEntropyDisabledByPolicy =0x00000001 ,//0 TpmBootEntropyNoTpmFound =0x00000002 ,//0 TpmBootEntropyTpmError =0x00000003 ,//0 TpmBootEntropySuccess =0x00000004 ,//0 }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _MMPFNLIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; /* off 0x0010 */ unsigned long Lock; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; /* off 0x0008 */ long Lock; /* off 0x0008 */ unsigned long PteLong; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ unsigned long FlushInProgressCount; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; union { /* off 0x002c */ unsigned long ModifiedWriteCount; /* off 0x002c */ unsigned long StartingFrame; }; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; /* off 0x0048 */ struct _LIST_ENTRY ViewList; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 22 */; /* off 0x0000 */ unsigned long ContainsDebug:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x002c */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ unsigned long SizeOfImage; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; union _MM_STORE_KEY /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long KeyLow:28 /* start bit 0 */; /* off 0x0000 */ unsigned long KeyHigh:4 /* start bit 28 */; }; /* off 0x0000 */ unsigned long EntireKey; }; enum _MI_STORE_BIT_TYPE { MiStoreBitTypeInStore =0x00000000 ,//0 MiStoreBitTypeEvicted =0x00000001 ,//0 MiStoreBitTypeMax =0x00000002 ,//0 }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ struct _RTL_BITMAP* EvictStoreBitmap; /* off 0x0034 */ unsigned long BitmapHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ unsigned long ToBeEvictedCount; /* off 0x0040 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0040 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0040 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x0042 */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x0042 */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x0044 */ void* FileHandle; /* off 0x0048 */ unsigned long Lock; /* off 0x004c */ struct _ETHREAD* LockOwner; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002ec 748 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ void* HiveLoadFailure; /* off 0x0028 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x002c */ struct _RTL_BITMAP DirtyVector; /* off 0x0034 */ unsigned long DirtyCount; /* off 0x0038 */ unsigned long DirtyAlloc; /* off 0x003c */ unsigned long BaseBlockAlloc; /* off 0x0040 */ unsigned long Cluster; /* off 0x0044 */ unsigned char Flat; /* off 0x0045 */ unsigned char ReadOnly; /* off 0x0046 */ unsigned char DirtyFlag; /* off 0x0048 */ unsigned long HvBinHeadersUse; /* off 0x004c */ unsigned long HvFreeCellsUse; /* off 0x0050 */ unsigned long HvUsedCellsUse; /* off 0x0054 */ unsigned long CmUsedCellsUse; /* off 0x0058 */ unsigned long HiveFlags; /* off 0x005c */ unsigned long CurrentLog; /* off 0x0060 */ unsigned long LogSize[2]; /* off 0x0068 */ unsigned long RefreshCount; /* off 0x006c */ unsigned long StorageTypeCount; /* off 0x0070 */ unsigned long Version; /* off 0x0074 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CM_WORKITEM /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Private; /* off 0x000c */ void( __stdcall *WorkerRoutine)(void*); /* off 0x0010 */ void* Parameter; }; struct _CMHIVE /* sizeof 00000630 1584 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02ec */ void* FileHandles[6]; /* off 0x0304 */ struct _LIST_ENTRY NotifyList; /* off 0x030c */ struct _LIST_ENTRY HiveList; /* off 0x0314 */ struct _LIST_ENTRY PreloadedHiveList; /* off 0x031c */ struct _EX_RUNDOWN_REF HiveRundown; /* off 0x0320 */ struct _LIST_ENTRY ParseCacheEntries; /* off 0x0328 */ struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable; /* off 0x032c */ unsigned long KcbCacheTableSize; /* off 0x0330 */ unsigned long Identity; /* off 0x0334 */ struct _FAST_MUTEX* HiveLock; /* off 0x0338 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x033c */ struct _KTHREAD* ViewLockOwner; /* off 0x0340 */ unsigned long ViewLockLast; /* off 0x0344 */ unsigned long ViewUnLockLast; /* off 0x0348 */ struct _FAST_MUTEX* WriterLock; /* off 0x034c */ struct _ERESOURCE* FlusherLock; /* off 0x0350 */ struct _RTL_BITMAP FlushDirtyVector; /* off 0x0358 */ struct CMP_OFFSET_ARRAY* FlushOffsetArray; /* off 0x035c */ unsigned long FlushOffsetArrayCount; /* off 0x0360 */ unsigned long FlushHiveTruncated; /* off 0x0364 */ struct _FAST_MUTEX* FlushLock2; /* off 0x0368 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x036c */ struct _LIST_ENTRY MappedViewList; /* off 0x0374 */ struct _LIST_ENTRY PinnedViewList; /* off 0x037c */ struct _LIST_ENTRY FlushedViewList; /* off 0x0384 */ unsigned short MappedViewCount; /* off 0x0386 */ unsigned short PinnedViewCount; /* off 0x0388 */ unsigned long UseCount; /* off 0x038c */ unsigned long ViewsPerHive; /* off 0x0390 */ struct _FILE_OBJECT* FileObject; /* off 0x0394 */ unsigned long LastShrinkHiveSize; /* off 0x0398 */ union _LARGE_INTEGER ActualFileSize; /* off 0x03a0 */ struct _UNICODE_STRING FileFullPath; /* off 0x03a8 */ struct _UNICODE_STRING FileUserName; /* off 0x03b0 */ struct _UNICODE_STRING HiveRootPath; /* off 0x03b8 */ unsigned long SecurityCount; /* off 0x03bc */ unsigned long SecurityCacheSize; /* off 0x03c0 */ long SecurityHitHint; /* off 0x03c4 */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x03c8 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x05c8 */ unsigned long UnloadEventCount; /* off 0x05cc */ struct _KEVENT** UnloadEventArray; /* off 0x05d0 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x05d4 */ unsigned char Frozen; /* off 0x05d8 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05dc */ struct _CM_WORKITEM UnloadWorkItemHolder; /* off 0x05f0 */ unsigned char GrowOnlyMode; /* off 0x05f4 */ unsigned long GrowOffset; /* off 0x05f8 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x0600 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0608 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x060c */ unsigned long Flags; /* off 0x0610 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x0618 */ unsigned long FlushCount; /* off 0x061c */ struct _CM_RM* CmRm; /* off 0x0620 */ unsigned long CmRmInitFailPoint; /* off 0x0624 */ long CmRmInitFailStatus; /* off 0x0628 */ struct _KTHREAD* CreatorOwner; /* off 0x062c */ struct _KTHREAD* RundownThread; }; struct _CM_KEY_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ struct _CM_KEY_HASH* Entry; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:16 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 16 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 17 */; /* off 0x0004 */ unsigned long HiveUnloaded:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Decommissioned:1 /* start bit 19 */; /* off 0x0004 */ unsigned long LockTablePresent:1 /* start bit 20 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 21 */; /* off 0x0008 */ unsigned long DelayedDeref:1 /* start bit 0 */; /* off 0x0008 */ unsigned long DelayedClose:1 /* start bit 1 */; /* off 0x0008 */ unsigned long Parking:1 /* start bit 2 */; union { /* off 0x000c */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x000c */ unsigned long ConvKey; /* off 0x0010 */ struct _CM_KEY_HASH* NextHash; /* off 0x0014 */ struct _HHIVE* KeyHive; /* off 0x0018 */ unsigned long KeyCell; }; }; /* off 0x001c */ struct _EX_PUSH_LOCK KcbPushlock; union { /* off 0x0020 */ struct _KTHREAD* Owner; /* off 0x0020 */ long SharedCount; }; /* off 0x0024 */ unsigned long SlotHint; /* off 0x0028 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x002c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0030 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0034 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x003c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x003c */ unsigned long HashKey; /* off 0x003c */ unsigned long SubKeyCount; }; union { /* off 0x0040 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0040 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0048 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0058 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0060 */ unsigned short KcbMaxNameLen; /* off 0x0062 */ unsigned short KcbMaxValueNameLen; /* off 0x0064 */ unsigned long KcbMaxValueDataLen; /* off 0x0068 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0068 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0068 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0068 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x006c */ struct _LIST_ENTRY KCBUoWListHead; union { /* off 0x0074 */ struct _LIST_ENTRY DelayQueueEntry; /* off 0x0074 */ unsigned char* Stolen; }; /* off 0x007c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0080 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0088 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0090 */ struct _CHILD_LIST TransValueCache; /* off 0x0098 */ struct _CM_TRANS* TransValueListOwner; /* off 0x009c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags:16 /* start bit 0 */; /* off 0x0018 */ unsigned long HandleTags:16 /* start bit 16 */; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[7]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; /* off 0x0228 */ struct _WORK_QUEUE_ITEM OfflineWorkItem; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; struct _HIVE_LOAD_FAILURE /* sizeof 00000120 288 */ { /* off 0x0000 */ struct _HHIVE* Hive; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long RecoverableIndex; /* off 0x000c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } Locations[8]; /* off 0x006c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } RecoverableLocations[8]; /* off 0x00cc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Action; /* off 0x0004 */ void* Handle; /* off 0x0008 */ long Status; } RegistryIO; /* off 0x00d8 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* CheckStack; } CheckRegistry2; /* off 0x00dc */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CELL_DATA* CellPoint; /* off 0x0008 */ void* RootPoint; /* off 0x000c */ unsigned long Index; } CheckKey; /* off 0x00ec */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _CELL_DATA* List; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long Cell; /* off 0x000c */ struct _CELL_DATA* CellPoint; } CheckValueList; /* off 0x00fc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive; /* off 0x0108 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive1; /* off 0x0114 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _HBIN* Bin; /* off 0x0004 */ struct _HCELL* CellPoint; } CheckBin; /* off 0x011c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FileOffset; } RecoverData; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; enum _CM_LOAD_FAILURE_TYPE { _None =0x00000000 ,//0 _CmInitializeHive =0x00000001 ,//0 _HvInitializeHive =0x00000002 ,//0 _HvpBuildMap =0x00000003 ,//0 _HvpBuildMapAndCopy =0x00000004 ,//0 _HvpInitMap =0x00000005 ,//0 _HvLoadHive =0x00000006 ,//0 _HvpReadFileImageAndBuildMap =0x00000007 ,//0 _HvpRecoverData =0x00000008 ,//0 _HvpRecoverWholeHive =0x00000009 ,//0 _HvpMapFileImageAndBuildMap =0x0000000a ,//0 _CmpValidateHiveSecurityDescriptors =0x0000000b ,//0 _HvpEnlistBinInMap =0x0000000c ,//0 _CmCheckRegistry =0x0000000d ,//0 _CmRegistryIO =0x0000000e ,//0 _CmCheckRegistry2 =0x0000000f ,//0 _CmpCheckKey =0x00000010 ,//0 _CmpCheckValueList =0x00000011 ,//0 _HvCheckHive =0x00000012 ,//0 _HvCheckBin =0x00000013 ,//0 }; struct _HBIN /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long FileOffset; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved1[2]; /* off 0x0014 */ union _LARGE_INTEGER TimeStamp; /* off 0x001c */ unsigned long Spare; }; struct _HCELL /* sizeof 0000000c 12 */ { /* off 0x0000 */ long Size; /* off 0x0004 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Last; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } OldCell; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } NewCell; } u; }; struct _PCW_COUNTER_DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned short StructIndex; /* off 0x0004 */ unsigned short Offset; /* off 0x0006 */ unsigned short Size; }; enum _PCW_CALLBACK_TYPE { PcwCallbackAddCounter =0x00000000 ,//0 PcwCallbackRemoveCounter =0x00000001 ,//0 PcwCallbackEnumerateInstances =0x00000002 ,//0 PcwCallbackCollectData =0x00000003 ,//0 }; struct _PCW_COUNTER_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; }; struct _PCW_MASK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; /* off 0x000c */ unsigned long InstanceId; /* off 0x0010 */ unsigned char CollectMultiple; /* off 0x0014 */ struct _PCW_BUFFER* Buffer; /* off 0x0018 */ struct _KEVENT* CancelEvent; }; union _PCW_CALLBACK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION AddCounter; /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION RemoveCounter; /* off 0x0000 */ struct _PCW_MASK_INFORMATION EnumerateInstances; /* off 0x0000 */ struct _PCW_MASK_INFORMATION CollectData; }; struct _PCW_BUFFER /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _UNICODE_STRING* Name; /* off 0x0008 */ unsigned long CounterCount; /* off 0x000c */ struct _PCW_COUNTER_DESCRIPTOR* Counters; /* off 0x0010 */ long( __stdcall *Callback)(enum _PCW_CALLBACK_TYPE,union _PCW_CALLBACK_INFORMATION*,void*); /* off 0x0014 */ void* CallbackContext; }; struct _PCW_PROCESSOR_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned __int64 IdleTime; /* off 0x0008 */ unsigned __int64 AvailableTime; /* off 0x0010 */ unsigned __int64 UserTime; /* off 0x0018 */ unsigned __int64 KernelTime; /* off 0x0020 */ unsigned long Interrupts; /* off 0x0028 */ unsigned __int64 DpcTime; /* off 0x0030 */ unsigned __int64 InterruptTime; /* off 0x0038 */ unsigned long DpcCount; /* off 0x003c */ unsigned long DpcRate; /* off 0x0040 */ unsigned __int64 C1Time; /* off 0x0048 */ unsigned __int64 C2Time; /* off 0x0050 */ unsigned __int64 C3Time; /* off 0x0058 */ unsigned __int64 C1Transitions; /* off 0x0060 */ unsigned __int64 C2Transitions; /* off 0x0068 */ unsigned __int64 C3Transitions; /* off 0x0070 */ unsigned long ParkingStatus; /* off 0x0074 */ unsigned long CurrentFrequency; /* off 0x0078 */ unsigned long PercentMaxFrequency; /* off 0x007c */ unsigned long StateFlags; }; struct _PCW_INSTANCE /* sizeof 00000000 0 */ { }; struct _PCW_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Data; /* off 0x0004 */ unsigned long Size; }; struct _ETW_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long TotalActiveSessions; /* off 0x0004 */ long TotalBufferMemoryNonPagedPool; /* off 0x0008 */ long TotalBufferMemoryPagedPool; /* off 0x000c */ long TotalGuidsEnabled; /* off 0x0010 */ long TotalGuidsNotEnabled; /* off 0x0014 */ long TotalGuidsPreEnabled; }; struct _ETW_SESSION_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long BufferMemoryPagedPool; /* off 0x0004 */ long BufferMemoryNonPagedPool; /* off 0x0008 */ unsigned __int64 EventsLoggedCount; /* off 0x0010 */ long EventsLost; /* off 0x0014 */ long NumConsumers; }; struct _NT_TIB32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long ExceptionList; /* off 0x0004 */ unsigned long StackBase; /* off 0x0008 */ unsigned long StackLimit; /* off 0x000c */ unsigned long SubSystemTib; union { /* off 0x0010 */ unsigned long FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ unsigned long ArbitraryUserPointer; /* off 0x0018 */ unsigned long Self; }; struct _CLIENT_ID32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long UniqueProcess; /* off 0x0004 */ unsigned long UniqueThread; }; struct _GDI_TEB_BATCH32 /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _STRING32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned long Buffer; }; struct _TEB32 /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB32 NtTib; /* off 0x001c */ unsigned long EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID32 ClientId; /* off 0x0028 */ unsigned long ActiveRpcHandle; /* off 0x002c */ unsigned long ThreadLocalStoragePointer; /* off 0x0030 */ unsigned long ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ unsigned long CsrClientThread; /* off 0x0040 */ unsigned long Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ unsigned long WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ unsigned long SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ unsigned long ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH32 GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID32 RealClientId; /* off 0x06bc */ unsigned long GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ unsigned long GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ unsigned long glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ unsigned long glReserved2; /* off 0x0be0 */ unsigned long glSectionInfo; /* off 0x0be4 */ unsigned long glSection; /* off 0x0be8 */ unsigned long glTable; /* off 0x0bec */ unsigned long glCurrentRC; /* off 0x0bf0 */ unsigned long glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _STRING32 StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ unsigned long DeallocationStack; /* off 0x0e10 */ unsigned long TlsSlots[64]; /* off 0x0f10 */ struct LIST_ENTRY32 TlsLinks; /* off 0x0f18 */ unsigned long Vdm; /* off 0x0f1c */ unsigned long ReservedForNtRpc; /* off 0x0f20 */ unsigned long DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ unsigned long Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ unsigned long SubProcessTag; /* off 0x0f64 */ unsigned long EtwLocalData; /* off 0x0f68 */ unsigned long EtwTraceData; /* off 0x0f6c */ unsigned long WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ unsigned long ReservedForPerf; /* off 0x0f80 */ unsigned long ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ unsigned long SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ unsigned long ThreadPoolData; /* off 0x0f94 */ unsigned long TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ unsigned long NlsCache; /* off 0x0fa4 */ unsigned long pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ unsigned long CurrentTransactionHandle; /* off 0x0fb0 */ unsigned long ActiveFrame; /* off 0x0fb4 */ unsigned long FlsData; /* off 0x0fb8 */ unsigned long PreferredLanguages; /* off 0x0fbc */ unsigned long UserPrefLanguages; /* off 0x0fc0 */ unsigned long MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ unsigned long TxnScopeEnterCallback; /* off 0x0fd0 */ unsigned long TxnScopeExitCallback; /* off 0x0fd4 */ unsigned long TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ unsigned long ResourceRetValue; }; struct _NT_TIB64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 ExceptionList; /* off 0x0008 */ unsigned __int64 StackBase; /* off 0x0010 */ unsigned __int64 StackLimit; /* off 0x0018 */ unsigned __int64 SubSystemTib; union { /* off 0x0020 */ unsigned __int64 FiberData; /* off 0x0020 */ unsigned long Version; }; /* off 0x0028 */ unsigned __int64 ArbitraryUserPointer; /* off 0x0030 */ unsigned __int64 Self; }; struct _CLIENT_ID64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 UniqueProcess; /* off 0x0008 */ unsigned __int64 UniqueThread; }; struct _GDI_TEB_BATCH64 /* sizeof 000004e8 1256 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0008 */ unsigned __int64 HDC; /* off 0x0010 */ unsigned long Buffer[310]; }; struct _STRING64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0008 */ unsigned __int64 Buffer; }; struct _TEB64 /* sizeof 00001818 6168 */ { /* off 0x0000 */ struct _NT_TIB64 NtTib; /* off 0x0038 */ unsigned __int64 EnvironmentPointer; /* off 0x0040 */ struct _CLIENT_ID64 ClientId; /* off 0x0050 */ unsigned __int64 ActiveRpcHandle; /* off 0x0058 */ unsigned __int64 ThreadLocalStoragePointer; /* off 0x0060 */ unsigned __int64 ProcessEnvironmentBlock; /* off 0x0068 */ unsigned long LastErrorValue; /* off 0x006c */ unsigned long CountOfOwnedCriticalSections; /* off 0x0070 */ unsigned __int64 CsrClientThread; /* off 0x0078 */ unsigned __int64 Win32ThreadInfo; /* off 0x0080 */ unsigned long User32Reserved[26]; /* off 0x00e8 */ unsigned long UserReserved[5]; /* off 0x0100 */ unsigned __int64 WOW32Reserved; /* off 0x0108 */ unsigned long CurrentLocale; /* off 0x010c */ unsigned long FpSoftwareStatusRegister; /* off 0x0110 */ unsigned __int64 SystemReserved1[54]; /* off 0x02c0 */ long ExceptionCode; /* off 0x02c8 */ unsigned __int64 ActivationContextStackPointer; /* off 0x02d0 */ unsigned char SpareBytes[24]; /* off 0x02e8 */ unsigned long TxFsContext; /* off 0x02f0 */ struct _GDI_TEB_BATCH64 GdiTebBatch; /* off 0x07d8 */ struct _CLIENT_ID64 RealClientId; /* off 0x07e8 */ unsigned __int64 GdiCachedProcessHandle; /* off 0x07f0 */ unsigned long GdiClientPID; /* off 0x07f4 */ unsigned long GdiClientTID; /* off 0x07f8 */ unsigned __int64 GdiThreadLocalInfo; /* off 0x0800 */ unsigned __int64 Win32ClientInfo[62]; /* off 0x09f0 */ unsigned __int64 glDispatchTable[233]; /* off 0x1138 */ unsigned __int64 glReserved1[29]; /* off 0x1220 */ unsigned __int64 glReserved2; /* off 0x1228 */ unsigned __int64 glSectionInfo; /* off 0x1230 */ unsigned __int64 glSection; /* off 0x1238 */ unsigned __int64 glTable; /* off 0x1240 */ unsigned __int64 glCurrentRC; /* off 0x1248 */ unsigned __int64 glContext; /* off 0x1250 */ unsigned long LastStatusValue; /* off 0x1258 */ struct _STRING64 StaticUnicodeString; /* off 0x1268 */ wchar StaticUnicodeBuffer[261]; /* off 0x1478 */ unsigned __int64 DeallocationStack; /* off 0x1480 */ unsigned __int64 TlsSlots[64]; /* off 0x1680 */ struct LIST_ENTRY64 TlsLinks; /* off 0x1690 */ unsigned __int64 Vdm; /* off 0x1698 */ unsigned __int64 ReservedForNtRpc; /* off 0x16a0 */ unsigned __int64 DbgSsReserved[2]; /* off 0x16b0 */ unsigned long HardErrorMode; /* off 0x16b8 */ unsigned __int64 Instrumentation[11]; /* off 0x1710 */ struct _GUID ActivityId; /* off 0x1720 */ unsigned __int64 SubProcessTag; /* off 0x1728 */ unsigned __int64 EtwLocalData; /* off 0x1730 */ unsigned __int64 EtwTraceData; /* off 0x1738 */ unsigned __int64 WinSockData; /* off 0x1740 */ unsigned long GdiBatchCount; union { /* off 0x1744 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x1744 */ unsigned long IdealProcessorValue; struct { /* off 0x1744 */ unsigned char ReservedPad0; /* off 0x1745 */ unsigned char ReservedPad1; /* off 0x1746 */ unsigned char ReservedPad2; /* off 0x1747 */ unsigned char IdealProcessor; }; }; /* off 0x1748 */ unsigned long GuaranteedStackBytes; /* off 0x1750 */ unsigned __int64 ReservedForPerf; /* off 0x1758 */ unsigned __int64 ReservedForOle; /* off 0x1760 */ unsigned long WaitingOnLoaderLock; /* off 0x1768 */ unsigned __int64 SavedPriorityState; /* off 0x1770 */ unsigned __int64 SoftPatchPtr1; /* off 0x1778 */ unsigned __int64 ThreadPoolData; /* off 0x1780 */ unsigned __int64 TlsExpansionSlots; /* off 0x1788 */ unsigned __int64 DeallocationBStore; /* off 0x1790 */ unsigned __int64 BStoreLimit; /* off 0x1798 */ unsigned long MuiGeneration; /* off 0x179c */ unsigned long IsImpersonating; /* off 0x17a0 */ unsigned __int64 NlsCache; /* off 0x17a8 */ unsigned __int64 pShimData; /* off 0x17b0 */ unsigned long HeapVirtualAffinity; /* off 0x17b8 */ unsigned __int64 CurrentTransactionHandle; /* off 0x17c0 */ unsigned __int64 ActiveFrame; /* off 0x17c8 */ unsigned __int64 FlsData; /* off 0x17d0 */ unsigned __int64 PreferredLanguages; /* off 0x17d8 */ unsigned __int64 UserPrefLanguages; /* off 0x17e0 */ unsigned __int64 MergedPrefLanguages; /* off 0x17e8 */ unsigned long MuiImpersonation; union { /* off 0x17ec */ unsigned short CrossTebFlags; /* off 0x17ec */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x17ee */ unsigned short SameTebFlags; struct { /* off 0x17ee */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x17ee */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x17ee */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x17ee */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x17ee */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x17ee */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x17ee */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x17ee */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x17ee */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x17ee */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x17ee */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x17ee */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x17f0 */ unsigned __int64 TxnScopeEnterCallback; /* off 0x17f8 */ unsigned __int64 TxnScopeExitCallback; /* off 0x1800 */ unsigned __int64 TxnScopeContext; /* off 0x1808 */ unsigned long LockCount; /* off 0x180c */ unsigned long SpareUlong0; /* off 0x1810 */ unsigned __int64 ResourceRetValue; }; struct _KAFFINITY_ENUMERATION_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KAFFINITY_EX* Affinity; /* off 0x0004 */ unsigned long CurrentMask; /* off 0x0008 */ unsigned short CurrentIndex; }; struct _FXSAVE_FORMAT /* sizeof 000001e0 480 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[192]; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _KSTACK_AREA /* sizeof 00000210 528 */ { union { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT NpxFrame; }; /* off 0x01e0 */ struct _KERNEL_STACK_CONTROL StackControl; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY DispatchedList; /* off 0x0008 */ unsigned long DispatchedCount; /* off 0x000c */ struct _LIST_ENTRY CompletedList; /* off 0x0014 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0028 */ unsigned long SpinLock; }; struct _PO_DEVICE_NOTIFY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _LIST_ENTRY PowerChildren; /* off 0x0010 */ struct _LIST_ENTRY PowerParents; /* off 0x0018 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x001c */ unsigned char OrderLevel; /* off 0x0020 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0024 */ unsigned short* DeviceName; /* off 0x0028 */ unsigned short* DriverName; /* off 0x002c */ unsigned long ChildCount; /* off 0x0030 */ unsigned long ActiveChild; /* off 0x0034 */ unsigned long ParentCount; /* off 0x0038 */ unsigned long ActiveParent; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000188 392 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ struct _UNICODE_STRING InstancePath; /* off 0x001c */ struct _UNICODE_STRING ServiceName; /* off 0x0024 */ struct _IRP* PendingIrp; /* off 0x0028 */ unsigned long Level; /* off 0x002c */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0068 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0078 */ enum _PNP_DEVNODE_STATE State; /* off 0x007c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0080 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00d0 */ unsigned long StateHistoryEntry; /* off 0x00d4 */ long CompletionStatus; /* off 0x00d8 */ unsigned long Flags; /* off 0x00dc */ unsigned long UserFlags; /* off 0x00e0 */ unsigned long Problem; /* off 0x00e4 */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00e8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00ec */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00f0 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00f4 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00f8 */ unsigned long BusNumber; /* off 0x00fc */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x0100 */ unsigned long ChildBusNumber; /* off 0x0104 */ unsigned short ChildBusTypeIndex; /* off 0x0106 */ unsigned char RemovalPolicy; /* off 0x0107 */ unsigned char HardwareRemovalPolicy; /* off 0x0108 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x0110 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0118 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0120 */ unsigned short NoTranslatorMask; /* off 0x0122 */ unsigned short QueryTranslatorMask; /* off 0x0124 */ unsigned short NoArbiterMask; /* off 0x0126 */ unsigned short QueryArbiterMask; /* off 0x0128 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x012c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0130 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x0134 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0138 */ unsigned long CapabilityFlags; /* off 0x013c */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x014c */ unsigned long DisableableDepends; /* off 0x0150 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0158 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0160 */ unsigned long DriverUnloadRetryCount; /* off 0x0164 */ struct _DEVICE_NODE* PreviousParent; /* off 0x0168 */ unsigned long DeletedChildren; /* off 0x016c */ unsigned long NumaNodeIndex; /* off 0x0170 */ struct _GUID ContainerID; /* off 0x0180 */ unsigned char OverrideFlags; /* off 0x0181 */ unsigned char RequiresUnloadedDriver; /* off 0x0184 */ struct _PENDING_RELATIONS_LIST_ENTRY* PendingEjectRelations; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PENDING_RELATIONS_LIST_ENTRY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0018 */ struct _PNP_DEVICE_EVENT_ENTRY* DeviceEvent; /* off 0x001c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0020 */ struct _RELATION_LIST* RelationsList; /* off 0x0024 */ struct _IRP* EjectIrp; /* off 0x0028 */ enum IRPLOCK Lock; /* off 0x002c */ unsigned long Problem; /* off 0x0030 */ unsigned char ProfileChangingEject; /* off 0x0031 */ unsigned char DisplaySafeRemovalDialog; /* off 0x0034 */ enum _SYSTEM_POWER_STATE LightestSleepState; /* off 0x0038 */ struct DOCK_INTERFACE* DockInterface; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000044 68 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 00000020 32 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned long Flags; /* off 0x0014 */ unsigned long SessionId; /* off 0x0018 */ unsigned long DataLength; /* off 0x001c */ unsigned char Data[1]; } PowerSettingNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } PropertyChangeNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000064 100 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 VetoEvent =0x00000006 ,//0 BlockedDriverEvent =0x00000007 ,//0 InvalidIDEvent =0x00000008 ,//0 DevicePropertyChangeEvent =0x00000009 ,//0 DeviceInstanceRemovalEvent =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _RELATION_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long TagCount; /* off 0x0008 */ unsigned long FirstLevel; /* off 0x000c */ unsigned long MaxLevel; /* off 0x0010 */ struct _RELATION_LIST_ENTRY* Entries[1]; }; struct _RELATION_LIST_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxCount; /* off 0x0008 */ struct _DEVICE_OBJECT* Devices[1]; }; enum IRPLOCK { IRPLOCK_CANCELABLE =0x00000000 ,//0 IRPLOCK_CANCEL_STARTED =0x00000001 ,//0 IRPLOCK_CANCEL_COMPLETE =0x00000002 ,//0 IRPLOCK_COMPLETED =0x00000003 ,//0 }; struct DOCK_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ unsigned long( __stdcall *ProfileDepartureSetMode)(void*,enum PROFILE_DEPARTURE_STYLE); /* off 0x0014 */ unsigned long( __stdcall *ProfileDepartureUpdate)(void*); }; enum PROFILE_DEPARTURE_STYLE { PDS_UPDATE_DEFAULT =0x00000001 ,//0 PDS_UPDATE_ON_REMOVE =0x00000002 ,//0 PDS_UPDATE_ON_INTERFACE =0x00000003 ,//0 PDS_UPDATE_ON_EJECT =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _PPC_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; /* off 0x0000 */ struct _PPC_DBGKD_CONTROL_SET PpcControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000020 32 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long PagesQueuedToDisk; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ unsigned long SequentialReadCount; /* off 0x0034 */ unsigned long ReadAheadLength; /* off 0x0038 */ union _LARGE_INTEGER ReadAheadOffset; /* off 0x0040 */ union _LARGE_INTEGER ReadAheadBeyondLastByte; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000158 344 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _EX_PUSH_LOCK VacbLock; /* off 0x004c */ unsigned long DirtyPages; /* off 0x0050 */ struct _LIST_ENTRY LoggedStreamLinks; /* off 0x0058 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0060 */ unsigned long Flags; /* off 0x0064 */ long Status; /* off 0x0068 */ struct _MBCB* Mbcb; /* off 0x006c */ void* Section; /* off 0x0070 */ struct _KEVENT* CreateEvent; /* off 0x0074 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0078 */ unsigned long PagesToWrite; /* off 0x0080 */ __int64 BeyondLastFlush; /* off 0x0088 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x008c */ void* LazyWriteContext; /* off 0x0090 */ struct _LIST_ENTRY PrivateList; /* off 0x0098 */ void* LogHandle; /* off 0x009c */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a0 */ unsigned long DirtyPageThreshold; /* off 0x00a4 */ unsigned long LazyWritePassCount; /* off 0x00a8 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00ac */ struct _KGUARDED_MUTEX BcbLock; /* off 0x00d0 */ union _LARGE_INTEGER LastUnmapBehindOffset; /* off 0x00d8 */ struct _KEVENT Event; /* off 0x00e8 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00f0 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0148 */ void* WriteBehindWorkQueueEntry; /* off 0x014c */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0150 */ unsigned long ProcImagePathHash; /* off 0x0154 */ unsigned long WritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY Links; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long VacbArrayIndex; /* off 0x0004 */ unsigned long MappingCount; /* off 0x0008 */ unsigned long HighestMappedIndex; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000088 136 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ __int64 MostRecentlyDirtiedPage; /* off 0x0028 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0048 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0068 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x000c */ unsigned char Function; }; struct VACB_LEVEL_ALLOCATION_LIST /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY VacbLevelList; /* off 0x0008 */ void* VacbLevelWithBcbListHeads; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long AllocAndFreeOps; /* off 0x0044 */ unsigned long InBlockDeccommits; /* off 0x0048 */ unsigned long InBlockDeccomitSize; /* off 0x004c */ unsigned long HighWatermarkSize; /* off 0x0050 */ unsigned long LastPolledSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0130 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; /* off 0x0068 */ void* ContextInformation; /* off 0x006c */ unsigned long OriginalBase; /* off 0x0070 */ union _LARGE_INTEGER LoadTime; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ void* SectionObject; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x000c */ void* SectionHandle; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ struct _ALPC_PORT* OwnerPort; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0004 */ unsigned long TotalHandles; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000fc 252 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ void* CompletionPort; /* off 0x0014 */ void* CompletionKey; /* off 0x0018 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x001c */ void* PortContext; /* off 0x0020 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x005c */ struct _LIST_ENTRY MainQueue; /* off 0x0064 */ struct _LIST_ENTRY PendingQueue; /* off 0x006c */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0074 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x007c */ struct _KSEMAPHORE* Semaphore; /* off 0x007c */ struct _KEVENT* DummyEvent; }; /* off 0x0080 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00ac */ struct _EX_PUSH_LOCK Lock; /* off 0x00b0 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b4 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00bc */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c0 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c4 */ struct _CALLBACK_OBJECT* CallbackObject; /* off 0x00c8 */ void* CallbackContext; /* off 0x00cc */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d4 */ long SequenceNo; /* off 0x00d8 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; /* off 0x0000 */ unsigned long EnableCompletionList:1 /* start bit 16 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00dc */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00e0 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00e4 */ struct _KALPC_MESSAGE* CachedMessage; /* off 0x00e8 */ unsigned long MainQueueLength; /* off 0x00ec */ unsigned long PendingQueueLength; /* off 0x00f0 */ unsigned long LargeMessageQueueLength; /* off 0x00f4 */ unsigned long CanceledQueueLength; /* off 0x00f8 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ struct _IO_MINI_COMPLETION_PACKET_USER* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[1]; }; struct _IO_MINI_COMPLETION_PACKET_USER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long PacketType; /* off 0x000c */ void* KeyContext; /* off 0x0010 */ void* ApcContext; /* off 0x0014 */ long IoStatus; /* off 0x0018 */ unsigned long IoStatusInformation; /* off 0x001c */ void( __stdcall *MiniPacketCallback)(struct _IO_MINI_COMPLETION_PACKET_USER*,void*); /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned char Allocated; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _CALLBACK_OBJECT /* sizeof 00000000 0 */ { }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; /* off 0x0000 */ unsigned long ViewAttributeRetrieved:1 /* start bit 14 */; /* off 0x0000 */ unsigned long InDispatch:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x005c */ void* DataUserVa; /* off 0x0060 */ void* DataSystemVa; /* off 0x0064 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x0068 */ struct _ALPC_PORT* ConnectionPort; /* off 0x006c */ struct _ETHREAD* ServerThread; /* off 0x0070 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ struct _KALPC_REGION* Region; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ void* Address; /* off 0x0018 */ unsigned long Size; /* off 0x001c */ void* SecureViewHandle; /* off 0x0020 */ void* WriteAccessHandle; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY RegionListEntry; /* off 0x0008 */ struct _KALPC_SECTION* Section; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long ViewSize; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfViews; /* off 0x0020 */ struct _LIST_ENTRY ViewListHead; /* off 0x0028 */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x002c */ struct _KALPC_VIEW* ReadWriteView; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ unsigned long TargetAccess; /* off 0x0010 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0014 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 WrKeyedEvent =0x00000015 ,//0 WrTerminated =0x00000016 ,//0 WrProcessInSwap =0x00000017 ,//0 WrCpuRateControl =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _ETHREAD* TargetThread; /* off 0x0010 */ struct _ALPC_PORT* TargetPort; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; enum _EX_POOL_PRIORITY { LowPoolPriority =0x00000000 ,//0 LowPoolPrioritySpecialPoolOverrun =0x00000008 ,//0 LowPoolPrioritySpecialPoolUnderrun =0x00000009 ,//0 NormalPoolPriority =0x00000010 ,//0 NormalPoolPrioritySpecialPoolOverrun =0x00000018 ,//0 NormalPoolPrioritySpecialPoolUnderrun =0x00000019 ,//0 HighPoolPriority =0x00000020 ,//0 HighPoolPrioritySpecialPoolOverrun =0x00000028 ,//0 HighPoolPrioritySpecialPoolUnderrun =0x00000029 ,//0 }; enum _LOCK_OPERATION { IoReadAccess =0x00000000 ,//0 IoWriteAccess =0x00000001 ,//0 IoModifyAccess =0x00000002 ,//0 }; union _FILE_SEGMENT_ELEMENT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Buffer; /* off 0x0000 */ unsigned __int64 Alignment; }; struct _RELATIVE_SYMLINK_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short ExposedNamespaceLength; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned short DeviceNameLength; /* off 0x0006 */ unsigned short Reserved; /* off 0x0008 */ struct _RELATIVE_SYMLINK_INFO* InteriorMountPoint; /* off 0x000c */ struct _UNICODE_STRING OpenedName; }; enum _IOP_PRIORITY_HINT { IopIoPriorityNotSet =0x00000000 ,//0 IopIoPriorityVeryLow =0x00000001 ,//0 IopIoPriorityLow =0x00000002 ,//0 IopIoPriorityNormal =0x00000003 ,//0 IopIoPriorityHigh =0x00000004 ,//0 IopIoPriorityCritical =0x00000005 ,//0 MaxIopIoPriorityTypes =0x00000006 ,//0 }; struct _IOP_FILE_OBJECT_EXTENSION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long FoExtFlags; /* off 0x0004 */ void* FoExtPerTypeExtension[7]; /* off 0x0020 */ enum _IOP_PRIORITY_HINT FoIoPriorityHint; }; enum _TRANSFER_TYPE { ReadTransfer =0x00000000 ,//0 WriteTransfer =0x00000001 ,//0 OtherTransfer =0x00000002 ,//0 }; struct _OPEN_PACKET /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ long FinalStatus; /* off 0x000c */ unsigned long Information; /* off 0x0010 */ unsigned long ParseCheck; /* off 0x0014 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0018 */ struct _OBJECT_ATTRIBUTES* OriginalAttributes; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ unsigned long CreateOptions; /* off 0x002c */ unsigned short FileAttributes; /* off 0x002e */ unsigned short ShareAccess; /* off 0x0030 */ void* EaBuffer; /* off 0x0034 */ unsigned long EaLength; /* off 0x0038 */ unsigned long Options; /* off 0x003c */ unsigned long Disposition; /* off 0x0040 */ struct _FILE_BASIC_INFORMATION* BasicInformation; /* off 0x0044 */ struct _FILE_NETWORK_OPEN_INFORMATION* NetworkInformation; /* off 0x0048 */ enum _CREATE_FILE_TYPE CreateFileType; /* off 0x004c */ void* MailslotOrPipeParameters; /* off 0x0050 */ unsigned char Override; /* off 0x0051 */ unsigned char QueryOnly; /* off 0x0052 */ unsigned char DeleteOnly; /* off 0x0053 */ unsigned char FullAttributes; /* off 0x0054 */ struct _DUMMY_FILE_OBJECT* LocalFileObject; /* off 0x0058 */ unsigned long InternalFlags; /* off 0x005c */ struct _IO_DRIVER_CREATE_CONTEXT DriverCreateContext; }; enum _CREATE_FILE_TYPE { CreateFileTypeNone =0x00000000 ,//0 CreateFileTypeNamedPipe =0x00000001 ,//0 CreateFileTypeMailslot =0x00000002 ,//0 }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _EX_PUSH_LOCK Lock; /* off 0x000c */ unsigned char TypeIndex; /* off 0x000d */ unsigned char TraceFlags; /* off 0x000e */ unsigned char InfoMask; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _DUMMY_FILE_OBJECT /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _OBJECT_HEADER ObjectHeader; /* off 0x0020 */ char FileObjectBody[128]; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ char ProbeMode; /* off 0x000c */ unsigned long PagedPoolCharge; /* off 0x0010 */ unsigned long NonPagedPoolCharge; /* off 0x0014 */ unsigned long SecurityDescriptorCharge; /* off 0x0018 */ void* SecurityDescriptor; /* off 0x001c */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long LoggerId; /* off 0x0004 */ unsigned long BufferSize; /* off 0x0008 */ unsigned long MaximumEventSize; /* off 0x000c */ long CollectionOn; /* off 0x0010 */ unsigned long LoggerMode; /* off 0x0014 */ long AcceptNewEvents; /* off 0x0018 */ __int64( __stdcall *GetCpuClock)(); /* off 0x0020 */ union _LARGE_INTEGER StartTime; /* off 0x0028 */ void* LogFileHandle; /* off 0x002c */ struct _ETHREAD* LoggerThread; /* off 0x0030 */ long LoggerStatus; /* off 0x0034 */ void* NBQHead; /* off 0x0038 */ void* OverflowNBQHead; /* off 0x0040 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0048 */ struct _LIST_ENTRY GlobalList; union { /* off 0x0050 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0050 */ struct _EX_FAST_REF CurrentBuffer; }; /* off 0x0054 */ struct _UNICODE_STRING LoggerName; /* off 0x005c */ struct _UNICODE_STRING LogFileName; /* off 0x0064 */ struct _UNICODE_STRING LogFilePattern; /* off 0x006c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0074 */ unsigned long ClockType; /* off 0x0078 */ unsigned long MaximumFileSize; /* off 0x007c */ unsigned long LastFlushedBuffer; /* off 0x0080 */ unsigned long FlushTimer; /* off 0x0084 */ unsigned long FlushThreshold; /* off 0x0088 */ union _LARGE_INTEGER ByteOffset; /* off 0x0090 */ unsigned long MinimumBuffers; /* off 0x0094 */ long BuffersAvailable; /* off 0x0098 */ long NumberOfBuffers; /* off 0x009c */ unsigned long MaximumBuffers; /* off 0x00a0 */ unsigned long EventsLost; /* off 0x00a4 */ unsigned long BuffersWritten; /* off 0x00a8 */ unsigned long LogBuffersLost; /* off 0x00ac */ unsigned long RealTimeBuffersDelivered; /* off 0x00b0 */ unsigned long RealTimeBuffersLost; /* off 0x00b4 */ long* SequencePtr; /* off 0x00b8 */ unsigned long LocalSequence; /* off 0x00bc */ struct _GUID InstanceGuid; /* off 0x00cc */ long FileCounter; /* off 0x00d0 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d4 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ struct _LIST_ENTRY Consumers; /* off 0x00f0 */ unsigned long NumConsumers; /* off 0x00f4 */ struct _ETW_REALTIME_CONSUMER* TransitionConsumer; /* off 0x00f8 */ void* RealtimeLogfileHandle; /* off 0x00fc */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0108 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0110 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0120 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0128 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0130 */ unsigned long RealtimeBuffersSaved; /* off 0x0138 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0148 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x014c */ struct _KEVENT LoggerEvent; /* off 0x015c */ struct _KEVENT FlushEvent; /* off 0x0170 */ struct _KTIMER FlushTimeOutTimer; /* off 0x0198 */ struct _KDPC FlushDpc; /* off 0x01b8 */ struct _KMUTANT LoggerMutex; /* off 0x01d8 */ struct _EX_PUSH_LOCK LoggerLock; union { /* off 0x01dc */ unsigned long BufferListSpinLock; /* off 0x01dc */ struct _EX_PUSH_LOCK BufferListPushLock; }; /* off 0x01e0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x021c */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0220 */ __int64 BufferSequenceNumber; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0228 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0228 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0228 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0228 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0228 */ unsigned long NoMoreEnable:1 /* start bit 6 */; /* off 0x0228 */ unsigned long StackTracing:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ErrorLogged:1 /* start bit 8 */; /* off 0x0228 */ unsigned long RealtimeLoggerContextFreed:1 /* start bit 9 */; }; }; union { /* off 0x022c */ unsigned long RequestFlag; struct { /* off 0x022c */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x022c */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x022c */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x022c */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x022c */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; /* off 0x022c */ unsigned long RequestConnectConsumer:1 /* start bit 5 */; }; }; /* off 0x0230 */ struct _RTL_BITMAP HookIdMap; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x0038 */ struct _LIST_ENTRY GlobalEntry; struct { /* off 0x0038 */ void* Pointer0; /* off 0x003c */ void* Pointer1; }; }; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; struct _ETW_REALTIME_CONSUMER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ void* ProcessHandle; /* off 0x000c */ struct _EPROCESS* ProcessObject; /* off 0x0010 */ void* NextNotDelivered; /* off 0x0014 */ void* RealtimeConnectContext; /* off 0x0018 */ struct _KEVENT* DisconnectEvent; /* off 0x001c */ struct _KEVENT* DataAvailableEvent; /* off 0x0020 */ unsigned long* UserBufferCount; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY* UserBufferListHead; /* off 0x0028 */ unsigned long BuffersLost; /* off 0x002c */ unsigned long EmptyBuffersCount; /* off 0x0030 */ unsigned long LoggerId; /* off 0x0034 */ unsigned char ShutDownRequested; /* off 0x0035 */ unsigned char NewBuffersLost; /* off 0x0036 */ unsigned char Disconnected; /* off 0x0038 */ struct _RTL_BITMAP ReservedBufferSpaceBitMap; /* off 0x0040 */ unsigned char* ReservedBufferSpace; /* off 0x0044 */ unsigned long ReservedBufferSpaceSize; /* off 0x0048 */ unsigned long UserPagesAllocated; /* off 0x004c */ unsigned long UserPagesReused; }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _ETW_LOGGER_HANDLE /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char DereferenceAndLeave; }; struct _ETW_BUFFER_HANDLE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _WMI_BUFFER_HEADER* TraceBuffer; /* off 0x0004 */ struct _EX_FAST_REF* BufferFastRef; }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; struct _NBQUEUE_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SListEntry; /* off 0x0008 */ unsigned __int64 Next; /* off 0x0010 */ unsigned __int64 Data; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000178 376 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; union { /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0028 */ unsigned __int64 MatchId; }; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; /* off 0x0158 */ struct _EVENT_FILTER_HEADER* FilterData[8]; }; struct _EVENT_FILTER_HEADER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Reserved[5]; /* off 0x0008 */ unsigned __int64 InstanceId; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long NextOffset; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c0 */ struct _LUID OriginatingLogonSession; /* off 0x00c8 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0150 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01d8 */ struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION* pSecurityAttributes; /* off 0x01dc */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long SecurityAttributeCount; /* off 0x0004 */ struct _LIST_ENTRY SecurityAttributesList; /* off 0x000c */ unsigned long WorkingSecurityAttributeCount; /* off 0x0010 */ struct _LIST_ENTRY WorkingSecurityAttributesList; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ void* SecurityDescriptorQuotaBlock; }; struct _OBJECT_HEADER_PROCESS_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* ExclusiveProcess; /* off 0x0004 */ unsigned long Reserved; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ long ReferenceCount; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x000f */ unsigned char LockedExclusive; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ struct _KAFFINITY_EX Processors; /* off 0x0018 */ unsigned long SamplingPeriod; /* off 0x001c */ unsigned long CurrentTemperature; /* off 0x0020 */ unsigned long PassiveTripPoint; /* off 0x0024 */ unsigned long CriticalTripPoint; /* off 0x0028 */ unsigned char ActiveTripPointCount; /* off 0x002c */ unsigned long ActiveTripPoint[10]; /* off 0x0054 */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; /* off 0x0008 */ unsigned long Tag; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 00000048 72 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; /* off 0x003c */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0044 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x001c */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001140 4416 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; union { /* off 0x0004 */ struct _KGUARDED_MUTEX PagedLock; /* off 0x0004 */ unsigned long NonPagedLock; }; /* off 0x0040 */ long RunningAllocs; /* off 0x0044 */ long RunningDeAllocs; /* off 0x0048 */ long TotalBigPages; /* off 0x004c */ long ThreadsProcessingDeferrals; /* off 0x0050 */ unsigned long TotalBytes; /* off 0x0080 */ unsigned long PoolIndex; /* off 0x00c0 */ long TotalPages; /* off 0x0100 */ void** PendingFrees; /* off 0x0104 */ long PendingFreeDepth; /* off 0x0140 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000278 632 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ unsigned long Number; /* off 0x0038 */ unsigned char ShareVector; /* off 0x0039 */ char Pad[3]; /* off 0x003c */ enum _KINTERRUPT_MODE Mode; /* off 0x0040 */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0044 */ unsigned long ServiceCount; /* off 0x0048 */ unsigned long DispatchCount; /* off 0x0050 */ unsigned __int64 Rsvd1; /* off 0x0058 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ unsigned long CmKcbCacheSize; /* off 0x001c */ struct _CMHIVE* CmHive2; /* off 0x0020 */ unsigned char HiveMounted; /* off 0x0021 */ unsigned char ThreadFinished; /* off 0x0022 */ unsigned char ThreadStarted; /* off 0x0023 */ unsigned char Allocate; /* off 0x0024 */ unsigned char WinPERequired; /* off 0x0028 */ struct _KEVENT StartEvent; /* off 0x0038 */ struct _KEVENT FinishedEvent; /* off 0x0048 */ struct _KEVENT MountLock; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ struct _ETHREAD* Thread; /* off 0x0008 */ void* StackTrace[62]; }; struct _LAZY_WRITER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _KDPC ScanDpc; /* off 0x0020 */ struct _KTIMER ScanTimer; /* off 0x0048 */ unsigned char ScanActive; /* off 0x0049 */ unsigned char OtherWork; /* off 0x004a */ unsigned char PendingTeardownScan; /* off 0x004b */ unsigned char PendingPeriodicScan; /* off 0x004c */ unsigned char PendingLowMemoryScan; /* off 0x004d */ unsigned char PendingPowerScan; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; struct _IO_WORKITEM /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ void( __stdcall *Routine)(void*,void*,struct _IO_WORKITEM*); /* off 0x0014 */ void* IoObject; /* off 0x0018 */ void* Context; /* off 0x001c */ unsigned long Type; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_LSASS_ID =0x0000008a ,//0 DPFLTR_SSPICLI_ID =0x0000008b ,//0 DPFLTR_CNG_ID =0x0000008c ,//0 DPFLTR_EXFAT_ID =0x0000008d ,//0 DPFLTR_FILETRACE_ID =0x0000008e ,//0 DPFLTR_XSAVE_ID =0x0000008f ,//0 DPFLTR_SE_ID =0x00000090 ,//0 DPFLTR_DRIVEEXTENDER_ID =0x00000091 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000092 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; struct _ALIGNED_AFFINITY_SUMMARY /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX CpuSet; /* off 0x000c */ struct _KAFFINITY_EX SMTSet; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; /* off 0x0078 */ unsigned long ActivityCounter; /* off 0x007c */ unsigned long PreviousActivityCounter; /* off 0x0080 */ unsigned long WorkerTrimRequests; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POWER_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE_METRICS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _ERESOURCE MetricsResource; /* off 0x0038 */ unsigned long ActiveCount; /* off 0x003c */ unsigned long PassiveCount; /* off 0x0040 */ union _LARGE_INTEGER LastActiveStartTick; /* off 0x0048 */ union _LARGE_INTEGER AverageActiveTime; /* off 0x0050 */ union _LARGE_INTEGER LastPassiveStartTick; /* off 0x0058 */ union _LARGE_INTEGER AveragePassiveTime; /* off 0x0060 */ union _LARGE_INTEGER StartTickSinceLastReset; }; struct _POP_THERMAL_ZONE /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; /* off 0x00e0 */ union _LARGE_INTEGER InfoLastUpdateTime; /* off 0x00e8 */ struct _POP_THERMAL_ZONE_METRICS Metrics; }; enum POWER_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPoolPaged =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaSpecialPoolNonPaged =0x0000000d ,//0 MiVaMaximumType =0x0000000e ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct _VF_AVL_TREE_NODE /* sizeof 00000008 8 */ { /* off 0x0000 */ void* p; /* off 0x0004 */ unsigned long RangeSize; }; struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VERIFIER_SHARED_EXPORT_THUNK* SharedExportThunks; /* off 0x0004 */ struct _VERIFIER_SHARED_EXPORT_THUNK* PoolSharedExportThunks; /* off 0x0008 */ struct _VERIFIER_SHARED_EXPORT_THUNK* OrderDependentSharedExportThunks; }; struct _VF_TARGET_DRIVER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _VF_AVL_TREE_NODE TreeNode; /* off 0x0008 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SnapSharedExportsFailed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; } u1; /* off 0x0014 */ struct _VF_TARGET_VERIFIED_DRIVER_DATA* VerifiedData; }; struct _VERIFIER_SHARED_EXPORT_THUNK /* sizeof 00000000 0 */ { }; struct _VF_TARGET_VERIFIED_DRIVER_DATA /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _VF_SUSPECT_DRIVER_ENTRY* SuspectDriverEntry; /* off 0x0004 */ void* WMICallback; /* off 0x0008 */ struct _LIST_ENTRY EtwHandlesListHead; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MissedEtwRegistration:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0014 */ unsigned long Signature; /* off 0x0018 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0020 */ union _SLIST_HEADER PoolTrackers; /* off 0x0028 */ unsigned long CurrentPagedPoolAllocations; /* off 0x002c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0030 */ unsigned long PeakPagedPoolAllocations; /* off 0x0034 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0038 */ unsigned long PagedBytes; /* off 0x003c */ unsigned long NonPagedBytes; /* off 0x0040 */ unsigned long PeakPagedBytes; /* off 0x0044 */ unsigned long PeakNonPagedBytes; /* off 0x0048 */ unsigned long RaiseIrqls; /* off 0x004c */ unsigned long AcquireSpinLocks; /* off 0x0050 */ unsigned long SynchronizeExecutions; /* off 0x0054 */ unsigned long AllocationsWithNoTag; /* off 0x0058 */ unsigned long AllocationsFailed; /* off 0x005c */ unsigned long AllocationsFailedDeliberately; /* off 0x0060 */ unsigned long LockedBytes; /* off 0x0064 */ unsigned long PeakLockedBytes; /* off 0x0068 */ unsigned long MappedLockedBytes; /* off 0x006c */ unsigned long PeakMappedLockedBytes; /* off 0x0070 */ unsigned long MappedIoSpaceBytes; /* off 0x0074 */ unsigned long PeakMappedIoSpaceBytes; /* off 0x0078 */ unsigned long PagesForMdlBytes; /* off 0x007c */ unsigned long PeakPagesForMdlBytes; /* off 0x0080 */ unsigned long ContiguousMemoryBytes; /* off 0x0084 */ unsigned long PeakContiguousMemoryBytes; /* off 0x0088 */ struct _LIST_ENTRY ContiguousMemoryListHead; }; struct _VF_SUSPECT_DRIVER_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _KWAIT_STATE { WaitInProgress =0x00000000 ,//0 WaitCommitted =0x00000001 ,//0 WaitAborted =0x00000002 ,//0 MaximumWaitState =0x00000003 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct _POP_SYSTEM_IDLE /* sizeof 00000038 56 */ { /* off 0x0000 */ long AverageIdleness; /* off 0x0004 */ long LowestIdleness; /* off 0x0008 */ unsigned long Time; /* off 0x000c */ unsigned long Timeout; /* off 0x0010 */ unsigned long LastUserInput; /* off 0x0014 */ struct POWER_ACTION_POLICY Action; /* off 0x0020 */ enum _SYSTEM_POWER_STATE MinState; /* off 0x0024 */ unsigned char SystemRequired; /* off 0x0025 */ unsigned char IdleWorker; /* off 0x0026 */ unsigned char Sampling; /* off 0x0028 */ unsigned __int64 LastTick; /* off 0x0030 */ unsigned long LastSystemRequiredTime; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _ETW_WMITRACE_WORK /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long LoggerId; union { struct { /* off 0x0008 */ char LoggerName[65]; /* off 0x0049 */ char FileName[129]; /* off 0x00cc */ unsigned long MaximumFileSize; /* off 0x00d0 */ unsigned long MinBuffers; /* off 0x00d4 */ unsigned long MaxBuffers; /* off 0x00d8 */ unsigned long BufferSize; /* off 0x00dc */ unsigned long Mode; /* off 0x00e0 */ unsigned long FlushTimer; }; struct { /* off 0x0008 */ unsigned __int64 MatchAny; /* off 0x0010 */ unsigned __int64 MatchAll; /* off 0x0018 */ unsigned long EnableProperty; /* off 0x001c */ struct _GUID Guid; /* off 0x002c */ unsigned char Level; }; }; /* off 0x00e8 */ long Status; }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _PNP_DEVICE_COMPLETION_REQUEST /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_NODE* DeviceNode; /* off 0x000c */ void* Context; /* off 0x0010 */ enum _PNP_DEVNODE_STATE CompletionState; /* off 0x0014 */ unsigned long IrpPended; /* off 0x0018 */ long Status; /* off 0x001c */ void* Information; /* off 0x0020 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0030 */ struct _DRIVER_OBJECT* FailingDriver; /* off 0x0034 */ long ReferenceCount; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 0 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; } Flags; /* off 0x0030 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x003c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long PStateContext; /* off 0x0044 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0048 */ unsigned long TStateContext; /* off 0x004c */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x0050 */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0058 */ struct _PPM_PERF_STATE State[1]; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000b0 176 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POWER_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ unsigned __int64 ProgrammedRTCTime; /* off 0x0058 */ unsigned char WakeOnRTC; /* off 0x005c */ struct _DIAGNOSTIC_BUFFER* WakeTimerInfo; /* off 0x0060 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000170 368 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[9]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0190 */ struct _LIST_ENTRY Pending; /* off 0x0198 */ long Status; /* off 0x019c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x01a0 */ unsigned char Waking; /* off 0x01a1 */ unsigned char Cancelled; /* off 0x01a2 */ unsigned char IgnoreErrors; /* off 0x01a3 */ unsigned char IgnoreNotImplemented; /* off 0x01a4 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_HIBER_CONTEXT /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char Reset; /* off 0x0004 */ unsigned char HiberFlags; /* off 0x0005 */ unsigned char WroteHiberFile; /* off 0x0006 */ unsigned char MapFrozen; /* off 0x0008 */ struct _RTL_BITMAP MemoryMap; /* off 0x0010 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0018 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0020 */ unsigned long ClonedRangeCount; /* off 0x0024 */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0028 */ unsigned long NextPreserve; /* off 0x002c */ struct _MDL* LoaderMdl; /* off 0x0030 */ struct _MDL* AllocatedMdl; /* off 0x0038 */ unsigned __int64 PagesOut; /* off 0x0040 */ void* IoPages; /* off 0x0044 */ unsigned long IoPagesCount; /* off 0x0048 */ void* CurrentMcb; /* off 0x004c */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0050 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0054 */ unsigned long PreferredIoWriteSize; /* off 0x0058 */ unsigned long IoProgress; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ void* CompressionWorkspace; /* off 0x0074 */ unsigned char* CompressedWriteBuffer; /* off 0x0078 */ unsigned long CompressedWriteBufferSize; /* off 0x007c */ unsigned long MaxCompressedOutputSize; /* off 0x0080 */ unsigned long* PerformanceStats; /* off 0x0084 */ void* CompressionBlock; /* off 0x0088 */ void* DmaIO; /* off 0x008c */ void* TemporaryHeap; /* off 0x0090 */ struct _MDL* BootLoaderLogMdl; /* off 0x0094 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x0098 */ void* ResumeContext; /* off 0x009c */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct _PO_HIBER_PERF /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 ElapsedTicks; /* off 0x0020 */ unsigned __int64 CompressTicks; /* off 0x0028 */ unsigned __int64 ResumeAppTime; /* off 0x0030 */ unsigned __int64 HiberFileResumeTime; /* off 0x0038 */ unsigned __int64 BytesCopied; /* off 0x0040 */ unsigned __int64 PagesProcessed; /* off 0x0048 */ unsigned long PagesWritten; /* off 0x004c */ unsigned long DumpCount; /* off 0x0050 */ unsigned long FileRuns; }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long FirstTablePage; /* off 0x0050 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00a8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00ac */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00b0 */ unsigned long NoBootLoaderLogPages; /* off 0x00b4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00d4 */ unsigned long NotUsed; /* off 0x00d8 */ unsigned long ResumeContextCheck; /* off 0x00dc */ unsigned long ResumeContextPages; }; struct _DIAGNOSTIC_BUFFER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0008 */ unsigned long ProcessImageNameOffset; union { struct { /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ unsigned long ServiceTag; }; struct { /* off 0x0008 */ unsigned long DeviceDescriptionOffset; }; struct { /* off 0x000c */ unsigned long DevicePathOffset; }; }; }; }; /* off 0x0014 */ unsigned long ReasonOffset; }; enum _REQUESTER_TYPE { KernelRequester =0x00000000 ,//0 UserProcessRequester =0x00000001 ,//0 UserSharedServiceRequester =0x00000002 ,//0 }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ unsigned long SessionId; /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL_PTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _MMPTE FreePteHead; /* off 0x0004 */ struct _MMPTE FreePteTail; }; struct _MI_SPECIAL_POOL /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ unsigned long Lock; /* off 0x0008 */ struct _MI_SPECIAL_POOL_PTE_LIST Paged; /* off 0x0010 */ struct _MI_SPECIAL_POOL_PTE_LIST NonPaged; /* off 0x0018 */ long PagesInUse; /* off 0x001c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Hint; /* off 0x0010 */ struct _MMPTE* BasePte; /* off 0x0014 */ unsigned long* FailureCount; /* off 0x0018 */ struct _MMSUPPORT* Vm; /* off 0x001c */ long TotalSystemPtes; /* off 0x0020 */ long TotalFreeSystemPtes; /* off 0x0024 */ long CachedPteCount; /* off 0x0028 */ unsigned long PteFailures; union { /* off 0x002c */ unsigned long SpinLock; /* off 0x002c */ struct _KGUARDED_MUTEX* GlobalMutex; }; }; struct _MM_SESSION_SPACE /* sizeof 00002000 8192 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0050 */ struct _LIST_ENTRY ImageList; /* off 0x0058 */ unsigned long LocaleId; /* off 0x005c */ unsigned long AttachCount; /* off 0x0060 */ struct _KGATE AttachGate; /* off 0x0070 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0ddc */ struct _MMWSLE* Wsle; /* off 0x0de0 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0e00 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1f40 */ struct _MMPTE* PageTables; /* off 0x1f44 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1f68 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1f88 */ long PoolBigEntriesInUse; /* off 0x1f8c */ unsigned long PagedPoolPdeCount; /* off 0x1f90 */ unsigned long SpecialPoolPdeCount; /* off 0x1f94 */ unsigned long DynamicSessionPdeCount; /* off 0x1f98 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1fc8 */ void* PoolTrackTableExpansion; /* off 0x1fcc */ unsigned long PoolTrackTableExpansionSize; /* off 0x1fd0 */ void* PoolTrackBigPages; /* off 0x1fd4 */ unsigned long PoolTrackBigPagesSize; /* off 0x1fd8 */ enum _IO_SESSION_STATE IoState; /* off 0x1fdc */ unsigned long IoStateSequence; /* off 0x1fe0 */ struct _KEVENT IoNotificationEvent; /* off 0x1ff0 */ struct _RTL_BITMAP SessionPoolPdes; /* off 0x1ff8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _MMVIEW /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; /* off 0x0008 */ struct _LIST_ENTRY ViewLinks; /* off 0x0010 */ void* SessionViewVa; /* off 0x0014 */ unsigned long SessionId; }; enum _IO_SESSION_STATE { IoSessionStateCreated =0x00000001 ,//0 IoSessionStateInitialized =0x00000002 ,//0 IoSessionStateConnected =0x00000003 ,//0 IoSessionStateDisconnected =0x00000004 ,//0 IoSessionStateDisconnectedLoggedOn =0x00000005 ,//0 IoSessionStateLoggedOn =0x00000006 ,//0 IoSessionStateLoggedOff =0x00000007 ,//0 IoSessionStateTerminated =0x00000008 ,//0 IoSessionStateMax =0x00000009 ,//0 }; union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR_SECTION /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockInStackQueuedSpinLock =0x00000006 ,//0 VfDeadlockUnusedSpinLock =0x00000007 ,//0 VfDeadlockEresource =0x00000008 ,//0 VfDeadlockTypeMaximum =0x00000009 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; /* off 0x001c */ unsigned char ThreadUsesEresources; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; struct _PNP_DEVICE_ACTION_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ enum _PNP_DEVICE_ACTION_REQUEST RequestType; /* off 0x0010 */ unsigned char ReorderingBarrier; /* off 0x0014 */ unsigned long RequestArgument; /* off 0x0018 */ struct _KEVENT* CompletionEvent; /* off 0x001c */ long* CompletionStatus; }; enum _PNP_DEVICE_ACTION_REQUEST { AssignResources =0x00000000 ,//0 ClearDeviceProblem =0x00000001 ,//0 ClearProblem =0x00000002 ,//0 ClearEjectProblem =0x00000003 ,//0 HaltDevice =0x00000004 ,//0 QueryPowerRelations =0x00000005 ,//0 Rebalance =0x00000006 ,//0 ReenumerateBootDevices =0x00000007 ,//0 ReenumerateDeviceOnly =0x00000008 ,//0 ReenumerateDeviceTree =0x00000009 ,//0 ReenumerateRootDevices =0x0000000a ,//0 RequeryDeviceState =0x0000000b ,//0 ResetDevice =0x0000000c ,//0 ResourceRequirementsChanged =0x0000000d ,//0 RestartEnumeration =0x0000000e ,//0 SetDeviceProblem =0x0000000f ,//0 StartDevice =0x00000010 ,//0 StartSystemDevicesPass0 =0x00000011 ,//0 StartSystemDevicesPass1 =0x00000012 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _VF_KE_CRITICAL_REGION_TRACE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[7]; }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; enum _KWAIT_BLOCK_STATE { WaitBlockBypassStart =0x00000000 ,//0 WaitBlockBypassComplete =0x00000001 ,//0 WaitBlockActive =0x00000002 ,//0 WaitBlockInactive =0x00000003 ,//0 WaitBlockAllStates =0x00000004 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _VF_AVL_TREE /* sizeof 00000040 64 */ { /* off 0x0000 */ long Lock; /* off 0x0004 */ void* NodeToFree; /* off 0x0008 */ unsigned long NodeRangeSize; /* off 0x000c */ unsigned long NodeCount; /* off 0x0010 */ struct _VF_AVL_TABLE* Tables; /* off 0x0014 */ unsigned long TablesNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NodeSize; /* off 0x0000 */ unsigned long UseLookaside; } u1; }; struct _VF_AVL_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE RtlTable; /* off 0x0038 */ struct _VF_AVL_TREE_NODE* ReservedNode; }; enum _KPROCESS_STATE { ProcessInMemory =0x00000000 ,//0 ProcessOutOfMemory =0x00000001 ,//0 ProcessInTransition =0x00000002 ,//0 ProcessOutTransition =0x00000003 ,//0 ProcessInSwap =0x00000004 ,//0 ProcessOutSwap =0x00000005 ,//0 ProcessAllSwapStates =0x00000006 ,//0 }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; enum _WORKING_SET_TYPE { WorkingSetTypeUser =0x00000000 ,//0 WorkingSetTypeSession =0x00000001 ,//0 WorkingSetTypeSystemTypes =0x00000002 ,//0 WorkingSetTypeSystemCache =0x00000002 ,//0 WorkingSetTypePagedPool =0x00000003 ,//0 WorkingSetTypeSystemPtes =0x00000004 ,//0 WorkingSetTypeMaximum =0x00000005 ,//0 }; struct _VF_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VF_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VF_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _FILE_OBJECT_EXTENSION_TYPE { FoExtTypeTransactionParams =0x00000000 ,//0 FoExtTypeDeviceObjectHint =0x00000001 ,//0 FoExtTypeIosbRange =0x00000002 ,//0 FoExtTypeGeneric =0x00000003 ,//0 FoExtTypeSfio =0x00000004 ,//0 FoExtTypeSymlink =0x00000005 ,//0 FoExtTypeOplockKey =0x00000006 ,//0 MaxFoExtTypes =0x00000007 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000024 36 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; }; ================================================ FILE: Addition/WindowKernel/ntkrnlmp_6.1.7601.0.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _XSTATE_FEATURE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long Size; }; struct _XSTATE_CONFIGURATION /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned __int64 EnabledFeatures; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long OptimizedSave:1 /* start bit 0 */; /* off 0x0010 */ struct _XSTATE_FEATURE Features[64]; }; struct _KUSER_SHARED_DATA /* sizeof 000005f0 1520 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c4 */ unsigned long AltArchitecturePad[1]; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02ed */ unsigned char TscQpcData; struct { /* off 0x02ed */ unsigned char TscQpcEnabled:1 /* start bit 0 */; /* off 0x02ed */ unsigned char TscQpcSpareFlag:1 /* start bit 1 */; /* off 0x02ed */ unsigned char TscQpcShift:6 /* start bit 2 */; }; }; /* off 0x02ee */ unsigned char TscQpcPad[2]; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f4 */ unsigned long DataFlagsPad[1]; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; /* off 0x0320 */ unsigned long ReservedTickCountOverlay[3]; }; /* off 0x032c */ unsigned long TickCountPad[1]; /* off 0x0330 */ unsigned long Cookie; /* off 0x0334 */ unsigned long CookiePad[1]; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[16]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; /* off 0x03a8 */ unsigned __int64 Reserved5; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; /* off 0x03b8 */ unsigned __int64 TscQpcBias; /* off 0x03c0 */ unsigned long ActiveProcessorCount; /* off 0x03c4 */ unsigned short ActiveGroupCount; /* off 0x03c6 */ unsigned short Reserved4; /* off 0x03c8 */ unsigned long AitSamplingValue; /* off 0x03cc */ unsigned long AppCompatFlag; /* off 0x03d0 */ unsigned __int64 SystemDllNativeRelocation; /* off 0x03d8 */ unsigned long SystemDllWowRelocation; /* off 0x03dc */ unsigned long XStatePad[1]; /* off 0x03e0 */ struct _XSTATE_CONFIGURATION XState; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON_V3 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Persistent:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Private:30 /* start bit 2 */; } s; } u; /* off 0x0020 */ enum _TP_CALLBACK_PRIORITY CallbackPriority; /* off 0x0024 */ unsigned long Size; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; enum _TP_CALLBACK_PRIORITY { TP_CALLBACK_PRIORITY_HIGH =0x00000000 ,//0 TP_CALLBACK_PRIORITY_NORMAL =0x00000001 ,//0 TP_CALLBACK_PRIORITY_LOW =0x00000002 ,//0 TP_CALLBACK_PRIORITY_INVALID =0x00000003 ,//0 }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _TP_NBQ_GUARD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY GuardLinks; /* off 0x0008 */ void* Guards[2]; }; struct _TP_TASK /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; /* off 0x000c */ struct _TP_NBQ_GUARD PostGuard; /* off 0x001c */ void* NBQNode; }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_DIRECT /* sizeof 0000000c 12 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _PROCESSOR_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Reserved; }; struct _TEB /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ void* ResourceRetValue; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _PEB /* sizeof 00000248 584 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ProcessUsingFTH:1 /* start bit 4 */; /* off 0x0028 */ unsigned long ReservedBits0:27 /* start bit 5 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long AtlThunkSListPtr32; /* off 0x0038 */ void* ApiSetMap; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; /* off 0x0238 */ void* pContextData; /* off 0x023c */ void* pImageHeaderHash; union { /* off 0x0240 */ unsigned long TracingFlags; struct { /* off 0x0240 */ unsigned long HeapTracingEnabled:1 /* start bit 0 */; /* off 0x0240 */ unsigned long CritSecTracingEnabled:1 /* start bit 1 */; /* off 0x0240 */ unsigned long SpareTracingBits:30 /* start bit 2 */; }; }; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000298 664 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; /* off 0x0294 */ unsigned long EnvironmentVersion; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ChainHead; /* off 0x0004 */ struct _LIST_ENTRY* PrevLinkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY Linkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry; /* off 0x000c */ struct _LIST_ENTRY* ChainHead; /* off 0x0010 */ unsigned long BucketIndex; }; struct _RTL_DYNAMIC_HASH_TABLE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long Shift; /* off 0x0008 */ unsigned long TableSize; /* off 0x000c */ unsigned long Pivot; /* off 0x0010 */ unsigned long DivisorMask; /* off 0x0014 */ unsigned long NumEntries; /* off 0x0018 */ unsigned long NonEmptyBuckets; /* off 0x001c */ unsigned long NumEnumerators; /* off 0x0020 */ void* Directory; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char TimerControlFlags; struct { /* off 0x0001 */ unsigned char Absolute:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Coalescable:1 /* start bit 1 */; /* off 0x0001 */ unsigned char KeepShifting:1 /* start bit 2 */; /* off 0x0001 */ unsigned char EncodedTolerableDelay:5 /* start bit 3 */; }; /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char ThreadControlFlags; struct { /* off 0x0002 */ unsigned char CpuThrottled:1 /* start bit 0 */; /* off 0x0002 */ unsigned char CycleProfiling:1 /* start bit 1 */; /* off 0x0002 */ unsigned char CounterProfiling:1 /* start bit 2 */; /* off 0x0002 */ unsigned char Reserved:5 /* start bit 3 */; }; /* off 0x0002 */ unsigned char Hand; /* off 0x0002 */ unsigned char Size; }; union { /* off 0x0003 */ unsigned char TimerMiscFlags; struct { /* off 0x0003 */ unsigned char Index:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Processor:5 /* start bit 1 */; /* off 0x0003 */ unsigned char Inserted:1 /* start bit 6 */; /* off 0x0003 */ unsigned char Expired:1 /* start bit 7 */; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char ActiveDR7:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Instrumented:1 /* start bit 1 */; /* off 0x0003 */ unsigned char Reserved2:4 /* start bit 2 */; /* off 0x0003 */ unsigned char UmsScheduled:1 /* start bit 6 */; /* off 0x0003 */ unsigned char UmsPrimary:1 /* start bit 7 */; }; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ struct _LIST_ENTRY Entry; /* off 0x0010 */ union _ULARGE_INTEGER Time; }; struct _KTIMER_TABLE /* sizeof 00001840 6208 */ { /* off 0x0000 */ struct _KTIMER* TimerExpiry[16]; /* off 0x0040 */ struct _KTIMER_TABLE_ENTRY TimerEntries[256]; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _PPM_FFH_THROTTLE_STATE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char EnableLogging; /* off 0x0004 */ unsigned long MismatchCount; /* off 0x0008 */ unsigned char Initialized; /* off 0x0010 */ unsigned __int64 LastValue; /* off 0x0018 */ union _LARGE_INTEGER LastLogTickCount; }; struct _PROC_IDLE_SNAP /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Time; /* off 0x0008 */ unsigned __int64 Idle; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 IdleTimeLast; /* off 0x0010 */ unsigned __int64 IdleTimeTotal; /* off 0x0018 */ unsigned __int64 IdleTimeEntry; /* off 0x0020 */ struct _PROC_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ enum _PROC_HYPERVISOR_STATE Hypervisor; /* off 0x0028 */ unsigned long PerfHistoryTotal; /* off 0x002c */ unsigned char ThermalConstraint; /* off 0x002d */ unsigned char PerfHistoryCount; /* off 0x002e */ unsigned char PerfHistorySlot; /* off 0x002f */ unsigned char Reserved; /* off 0x0030 */ unsigned long LastSysTime; /* off 0x0034 */ unsigned long WmiDispatchPtr; /* off 0x0038 */ long WmiInterfaceEnabled; /* off 0x0040 */ struct _PPM_FFH_THROTTLE_STATE_INFO FFHThrottleStateInfo; /* off 0x0060 */ struct _KDPC PerfActionDpc; /* off 0x0080 */ long PerfActionMask; /* off 0x0088 */ struct _PROC_IDLE_SNAP IdleCheck; /* off 0x0098 */ struct _PROC_IDLE_SNAP PerfCheck; /* off 0x00a8 */ struct _PROC_PERF_DOMAIN* Domain; /* off 0x00ac */ struct _PROC_PERF_CONSTRAINT* PerfConstraint; /* off 0x00b0 */ struct _PROC_PERF_LOAD* Load; /* off 0x00b4 */ struct _PROC_HISTORY_ENTRY* PerfHistory; /* off 0x00b8 */ unsigned long Utility; /* off 0x00bc */ unsigned long OverUtilizedHistory; /* off 0x00c0 */ unsigned long AffinityCount; /* off 0x00c4 */ unsigned long AffinityHistory; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ unsigned long Period; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KAFFINITY_EX /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ unsigned long Bitmap[1]; }; struct _KPRCB /* sizeof 00003628 13864 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char LegacyNumber; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ char CpuType; /* off 0x0015 */ char CpuID; union { /* off 0x0016 */ unsigned short CpuStep; struct { /* off 0x0016 */ unsigned char CpuStepping; /* off 0x0017 */ unsigned char CpuModel; }; }; /* off 0x0018 */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x0338 */ unsigned long KernelReserved[16]; /* off 0x0378 */ unsigned long HalReserved[16]; /* off 0x03b8 */ unsigned long CFlushSize; /* off 0x03bc */ unsigned char CoresPerPhysicalProcessor; /* off 0x03bd */ unsigned char LogicalProcessorsPerCore; /* off 0x03be */ unsigned char PrcbPad0[2]; /* off 0x03c0 */ unsigned long MHz; /* off 0x03c4 */ unsigned char CpuVendor; /* off 0x03c5 */ unsigned char GroupIndex; /* off 0x03c6 */ unsigned short Group; /* off 0x03c8 */ unsigned long GroupSetMember; /* off 0x03cc */ unsigned long Number; /* off 0x03d0 */ unsigned char PrcbPad1[72]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[17]; /* off 0x04a0 */ struct _KTHREAD* NpxThread; /* off 0x04a4 */ unsigned long InterruptCount; /* off 0x04a8 */ unsigned long KernelTime; /* off 0x04ac */ unsigned long UserTime; /* off 0x04b0 */ unsigned long DpcTime; /* off 0x04b4 */ unsigned long DpcTimeCount; /* off 0x04b8 */ unsigned long InterruptTime; /* off 0x04bc */ unsigned long AdjustDpcThreshold; /* off 0x04c0 */ unsigned long PageColor; /* off 0x04c4 */ unsigned char DebuggerSavedIRQL; /* off 0x04c5 */ unsigned char NodeColor; /* off 0x04c6 */ unsigned char PrcbPad20[2]; /* off 0x04c8 */ unsigned long NodeShiftedColor; /* off 0x04cc */ struct _KNODE* ParentNode; /* off 0x04d0 */ unsigned long SecondaryColorMask; /* off 0x04d4 */ unsigned long DpcTimeLimit; /* off 0x04d8 */ unsigned long PrcbPad21[2]; /* off 0x04e0 */ unsigned long CcFastReadNoWait; /* off 0x04e4 */ unsigned long CcFastReadWait; /* off 0x04e8 */ unsigned long CcFastReadNotPossible; /* off 0x04ec */ unsigned long CcCopyReadNoWait; /* off 0x04f0 */ unsigned long CcCopyReadWait; /* off 0x04f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x04f8 */ long MmSpinLockOrdering; /* off 0x04fc */ long IoReadOperationCount; /* off 0x0500 */ long IoWriteOperationCount; /* off 0x0504 */ long IoOtherOperationCount; /* off 0x0508 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0510 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0518 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0520 */ unsigned long CcFastMdlReadNoWait; /* off 0x0524 */ unsigned long CcFastMdlReadWait; /* off 0x0528 */ unsigned long CcFastMdlReadNotPossible; /* off 0x052c */ unsigned long CcMapDataNoWait; /* off 0x0530 */ unsigned long CcMapDataWait; /* off 0x0534 */ unsigned long CcPinMappedDataCount; /* off 0x0538 */ unsigned long CcPinReadNoWait; /* off 0x053c */ unsigned long CcPinReadWait; /* off 0x0540 */ unsigned long CcMdlReadNoWait; /* off 0x0544 */ unsigned long CcMdlReadWait; /* off 0x0548 */ unsigned long CcLazyWriteHotSpots; /* off 0x054c */ unsigned long CcLazyWriteIos; /* off 0x0550 */ unsigned long CcLazyWritePages; /* off 0x0554 */ unsigned long CcDataFlushes; /* off 0x0558 */ unsigned long CcDataPages; /* off 0x055c */ unsigned long CcLostDelayedWrites; /* off 0x0560 */ unsigned long CcFastReadResourceMiss; /* off 0x0564 */ unsigned long CcCopyReadWaitMiss; /* off 0x0568 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x056c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0570 */ unsigned long CcMapDataWaitMiss; /* off 0x0574 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0578 */ unsigned long CcPinReadWaitMiss; /* off 0x057c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0580 */ unsigned long CcMdlReadWaitMiss; /* off 0x0584 */ unsigned long CcReadAheadIos; /* off 0x0588 */ unsigned long KeAlignmentFixupCount; /* off 0x058c */ unsigned long KeExceptionDispatchCount; /* off 0x0590 */ unsigned long KeSystemCalls; /* off 0x0594 */ unsigned long AvailableTime; /* off 0x0598 */ unsigned long PrcbPad22[2]; /* off 0x05a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0620 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x0f20 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1820 */ unsigned long PacketBarrier; /* off 0x1824 */ long ReverseStall; /* off 0x1828 */ void* IpiFrame; /* off 0x182c */ unsigned char PrcbPad3[52]; /* off 0x1860 */ void* CurrentPacket[3]; /* off 0x186c */ unsigned long TargetSet; /* off 0x1870 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1874 */ unsigned long IpiFrozen; /* off 0x1878 */ unsigned char PrcbPad4[40]; /* off 0x18a0 */ unsigned long RequestSummary; /* off 0x18a4 */ struct _KPRCB* SignalDone; /* off 0x18a8 */ unsigned char PrcbPad50[56]; /* off 0x18e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1908 */ void* DpcStack; /* off 0x190c */ long MaximumDpcQueueDepth; /* off 0x1910 */ unsigned long DpcRequestRate; /* off 0x1914 */ unsigned long MinimumDpcRate; /* off 0x1918 */ unsigned long DpcLastCount; /* off 0x191c */ unsigned long PrcbLock; /* off 0x1920 */ struct _KGATE DpcGate; /* off 0x1930 */ unsigned char ThreadDpcEnable; /* off 0x1931 */ unsigned char QuantumEnd; /* off 0x1932 */ unsigned char DpcRoutineActive; /* off 0x1933 */ unsigned char IdleSchedule; union { /* off 0x1934 */ long DpcRequestSummary; /* off 0x1934 */ short DpcRequestSlot[2]; struct { /* off 0x1934 */ short NormalDpcState; union { /* off 0x1936 */ unsigned short DpcThreadActive:1 /* start bit 0 */; /* off 0x1936 */ short ThreadDpcState; }; }; }; /* off 0x1938 */ unsigned long TimerHand; /* off 0x193c */ unsigned long LastTick; /* off 0x1940 */ long MasterOffset; /* off 0x1944 */ unsigned long PrcbPad41[2]; /* off 0x194c */ unsigned long PeriodicCount; /* off 0x1950 */ unsigned long PeriodicBias; /* off 0x1958 */ unsigned __int64 TickOffset; /* off 0x1960 */ struct _KTIMER_TABLE TimerTable; /* off 0x31a0 */ struct _KDPC CallDpc; /* off 0x31c0 */ long ClockKeepAlive; /* off 0x31c4 */ unsigned char ClockCheckSlot; /* off 0x31c5 */ unsigned char ClockPollCycle; /* off 0x31c6 */ unsigned char PrcbPad6[2]; /* off 0x31c8 */ long DpcWatchdogPeriod; /* off 0x31cc */ long DpcWatchdogCount; /* off 0x31d0 */ long ThreadWatchdogPeriod; /* off 0x31d4 */ long ThreadWatchdogCount; /* off 0x31d8 */ long KeSpinLockOrdering; /* off 0x31dc */ unsigned long PrcbPad70[1]; /* off 0x31e0 */ struct _LIST_ENTRY WaitListHead; /* off 0x31e8 */ unsigned long WaitLock; /* off 0x31ec */ unsigned long ReadySummary; /* off 0x31f0 */ unsigned long QueueIndex; /* off 0x31f4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x31f8 */ unsigned __int64 StartCycles; /* off 0x3200 */ unsigned __int64 CycleTime; /* off 0x3208 */ unsigned long HighCycleTime; /* off 0x320c */ unsigned long PrcbPad71; /* off 0x3210 */ unsigned __int64 PrcbPad72[2]; /* off 0x3220 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x3320 */ void* ChainedInterruptList; /* off 0x3324 */ long LookasideIrpFloat; /* off 0x3328 */ long MmPageFaultCount; /* off 0x332c */ long MmCopyOnWriteCount; /* off 0x3330 */ long MmTransitionCount; /* off 0x3334 */ long MmCacheTransitionCount; /* off 0x3338 */ long MmDemandZeroCount; /* off 0x333c */ long MmPageReadCount; /* off 0x3340 */ long MmPageReadIoCount; /* off 0x3344 */ long MmCacheReadCount; /* off 0x3348 */ long MmCacheIoCount; /* off 0x334c */ long MmDirtyPagesWriteCount; /* off 0x3350 */ long MmDirtyWriteIoCount; /* off 0x3354 */ long MmMappedPagesWriteCount; /* off 0x3358 */ long MmMappedWriteIoCount; /* off 0x335c */ unsigned long CachedCommit; /* off 0x3360 */ unsigned long CachedResidentAvailable; /* off 0x3364 */ void* HyperPte; /* off 0x3368 */ unsigned char PrcbPad8[4]; /* off 0x336c */ unsigned char VendorString[13]; /* off 0x3379 */ unsigned char InitialApicId; /* off 0x337a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x337b */ unsigned char PrcbPad9[5]; /* off 0x3380 */ unsigned long FeatureBits; /* off 0x3388 */ union _LARGE_INTEGER UpdateSignature; /* off 0x3390 */ unsigned __int64 IsrTime; /* off 0x3398 */ unsigned __int64 RuntimeAccumulation; /* off 0x33a0 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x3468 */ struct _KDPC DpcWatchdogDpc; /* off 0x3488 */ struct _KTIMER DpcWatchdogTimer; /* off 0x34b0 */ void* WheaInfo; /* off 0x34b4 */ void* EtwSupport; /* off 0x34b8 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x34c0 */ union _SLIST_HEADER HypercallPageList; /* off 0x34c8 */ void* HypercallPageVirtual; /* off 0x34cc */ void* VirtualApicAssist; /* off 0x34d0 */ unsigned __int64* StatisticsPage; /* off 0x34d4 */ void* RateControl; /* off 0x34d8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x3514 */ unsigned long CacheCount; /* off 0x3518 */ unsigned long CacheProcessorMask[5]; /* off 0x352c */ struct _KAFFINITY_EX PackageProcessorSet; /* off 0x3538 */ unsigned long PrcbPad91[1]; /* off 0x353c */ unsigned long CoreProcessorSet; /* off 0x3540 */ struct _KDPC TimerExpirationDpc; /* off 0x3560 */ unsigned long SpinLockAcquireCount; /* off 0x3564 */ unsigned long SpinLockContentionCount; /* off 0x3568 */ unsigned long SpinLockSpinCount; /* off 0x356c */ unsigned long IpiSendRequestBroadcastCount; /* off 0x3570 */ unsigned long IpiSendRequestRoutineCount; /* off 0x3574 */ unsigned long IpiSendSoftwareInterruptCount; /* off 0x3578 */ unsigned long ExInitializeResourceCount; /* off 0x357c */ unsigned long ExReInitializeResourceCount; /* off 0x3580 */ unsigned long ExDeleteResourceCount; /* off 0x3584 */ unsigned long ExecutiveResourceAcquiresCount; /* off 0x3588 */ unsigned long ExecutiveResourceContentionsCount; /* off 0x358c */ unsigned long ExecutiveResourceReleaseExclusiveCount; /* off 0x3590 */ unsigned long ExecutiveResourceReleaseSharedCount; /* off 0x3594 */ unsigned long ExecutiveResourceConvertsCount; /* off 0x3598 */ unsigned long ExAcqResExclusiveAttempts; /* off 0x359c */ unsigned long ExAcqResExclusiveAcquiresExclusive; /* off 0x35a0 */ unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; /* off 0x35a4 */ unsigned long ExAcqResExclusiveWaits; /* off 0x35a8 */ unsigned long ExAcqResExclusiveNotAcquires; /* off 0x35ac */ unsigned long ExAcqResSharedAttempts; /* off 0x35b0 */ unsigned long ExAcqResSharedAcquiresExclusive; /* off 0x35b4 */ unsigned long ExAcqResSharedAcquiresShared; /* off 0x35b8 */ unsigned long ExAcqResSharedAcquiresSharedRecursive; /* off 0x35bc */ unsigned long ExAcqResSharedWaits; /* off 0x35c0 */ unsigned long ExAcqResSharedNotAcquires; /* off 0x35c4 */ unsigned long ExAcqResSharedStarveExclusiveAttempts; /* off 0x35c8 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; /* off 0x35cc */ unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; /* off 0x35d0 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; /* off 0x35d4 */ unsigned long ExAcqResSharedStarveExclusiveWaits; /* off 0x35d8 */ unsigned long ExAcqResSharedStarveExclusiveNotAcquires; /* off 0x35dc */ unsigned long ExAcqResSharedWaitForExclusiveAttempts; /* off 0x35e0 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; /* off 0x35e4 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; /* off 0x35e8 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; /* off 0x35ec */ unsigned long ExAcqResSharedWaitForExclusiveWaits; /* off 0x35f0 */ unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; /* off 0x35f4 */ unsigned long ExSetResOwnerPointerExclusive; /* off 0x35f8 */ unsigned long ExSetResOwnerPointerSharedNew; /* off 0x35fc */ unsigned long ExSetResOwnerPointerSharedOld; /* off 0x3600 */ unsigned long ExTryToAcqExclusiveAttempts; /* off 0x3604 */ unsigned long ExTryToAcqExclusiveAcquires; /* off 0x3608 */ unsigned long ExBoostExclusiveOwner; /* off 0x360c */ unsigned long ExBoostSharedOwners; /* off 0x3610 */ unsigned long ExEtwSynchTrackingNotificationsCount; /* off 0x3614 */ unsigned long ExEtwSynchTrackingNotificationsAccountedCount; /* off 0x3618 */ struct _CONTEXT* Context; /* off 0x361c */ unsigned long ContextFlags; /* off 0x3620 */ struct _XSAVE_AREA* ExtendedState; }; struct _KPCR /* sizeof 00003748 14152 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; union _KWAIT_STATUS_REGISTER /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Flags; struct { /* off 0x0000 */ unsigned char State:2 /* start bit 0 */; /* off 0x0000 */ unsigned char Affinity:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Priority:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Apc:1 /* start bit 4 */; /* off 0x0000 */ unsigned char UserApc:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Alert:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Unused:1 /* start bit 7 */; }; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char BlockState; }; struct _GROUP_AFFINITY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Mask; /* off 0x0004 */ unsigned short Group; /* off 0x0006 */ unsigned short Reserved[3]; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 00000200 512 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; /* off 0x0038 */ union _KWAIT_STATUS_REGISTER WaitRegister; /* off 0x0039 */ unsigned char Running; /* off 0x003a */ unsigned char Alerted[2]; union { struct { /* off 0x003c */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x003c */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x003c */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x003c */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x003c */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x003c */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x003c */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x003c */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x003c */ unsigned long ApcInterruptRequest:1 /* start bit 8 */; /* off 0x003c */ unsigned long ForceDeferSchedule:1 /* start bit 9 */; /* off 0x003c */ unsigned long QuantumEndMigrate:1 /* start bit 10 */; /* off 0x003c */ unsigned long UmsDirectedSwitchEnable:1 /* start bit 11 */; /* off 0x003c */ unsigned long TimerActive:1 /* start bit 12 */; /* off 0x003c */ unsigned long SystemThread:1 /* start bit 13 */; /* off 0x003c */ unsigned long Reserved:18 /* start bit 14 */; }; /* off 0x003c */ long MiscFlags; }; union { /* off 0x0040 */ struct _KAPC_STATE ApcState; struct { /* off 0x0040 */ unsigned char ApcStateFill[23]; /* off 0x0057 */ char Priority; }; }; /* off 0x0058 */ unsigned long NextProcessor; /* off 0x005c */ unsigned long DeferredProcessor; /* off 0x0060 */ unsigned long ApcQueueLock; /* off 0x0064 */ unsigned long ContextSwitches; /* off 0x0068 */ unsigned char State; /* off 0x0069 */ char NpxState; /* off 0x006a */ unsigned char WaitIrql; /* off 0x006b */ char WaitMode; /* off 0x006c */ long WaitStatus; /* off 0x0070 */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0074 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0074 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x007c */ struct _KQUEUE* Queue; /* off 0x0080 */ unsigned long WaitTime; union { struct { /* off 0x0084 */ short KernelApcDisable; /* off 0x0086 */ short SpecialApcDisable; }; struct { /* off 0x0084 */ unsigned long CombinedApcDisable; }; }; /* off 0x0088 */ void* Teb; /* off 0x0090 */ struct _KTIMER Timer; union { struct { /* off 0x00b8 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b8 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b8 */ unsigned long CalloutActive:1 /* start bit 4 */; /* off 0x00b8 */ unsigned long ApcQueueable:1 /* start bit 5 */; /* off 0x00b8 */ unsigned long EnableStackSwap:1 /* start bit 6 */; /* off 0x00b8 */ unsigned long GuiThread:1 /* start bit 7 */; /* off 0x00b8 */ unsigned long UmsPerformingSyscall:1 /* start bit 8 */; /* off 0x00b8 */ unsigned long VdmSafe:1 /* start bit 9 */; /* off 0x00b8 */ unsigned long UmsDispatched:1 /* start bit 10 */; /* off 0x00b8 */ unsigned long ReservedFlags:21 /* start bit 11 */; }; /* off 0x00b8 */ long ThreadFlags; }; /* off 0x00bc */ void* ServiceTable; /* off 0x00c0 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x0120 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0128 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x012c */ void* FirstArgument; union { /* off 0x0130 */ void* CallbackStack; /* off 0x0130 */ unsigned long CallbackDepth; }; /* off 0x0134 */ unsigned char ApcStateIndex; /* off 0x0135 */ char BasePriority; union { /* off 0x0136 */ char PriorityDecrement; struct { /* off 0x0136 */ unsigned char ForegroundBoost:4 /* start bit 0 */; /* off 0x0136 */ unsigned char UnusualBoost:4 /* start bit 4 */; }; }; /* off 0x0137 */ unsigned char Preempted; /* off 0x0138 */ unsigned char AdjustReason; /* off 0x0139 */ char AdjustIncrement; /* off 0x013a */ char PreviousMode; /* off 0x013b */ char Saturation; /* off 0x013c */ unsigned long SystemCallNumber; /* off 0x0140 */ unsigned long FreezeCount; /* off 0x0144 */ struct _GROUP_AFFINITY UserAffinity; /* off 0x0150 */ struct _KPROCESS* Process; /* off 0x0154 */ struct _GROUP_AFFINITY Affinity; /* off 0x0160 */ unsigned long IdealProcessor; /* off 0x0164 */ unsigned long UserIdealProcessor; /* off 0x0168 */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0170 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0170 */ unsigned char SavedApcStateFill[23]; /* off 0x0187 */ unsigned char WaitReason; }; }; /* off 0x0188 */ char SuspendCount; /* off 0x0189 */ char Spare1; /* off 0x018a */ unsigned char OtherPlatformFill; /* off 0x018c */ void* Win32Thread; /* off 0x0190 */ void* StackBase; union { /* off 0x0194 */ struct _KAPC SuspendApc; struct { /* off 0x0194 */ unsigned char SuspendApcFill0[1]; /* off 0x0195 */ unsigned char ResourceIndex; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill1[3]; /* off 0x0197 */ unsigned char QuantumReset; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill2[4]; /* off 0x0198 */ unsigned long KernelTime; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill3[36]; /* off 0x01b8 */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill4[40]; /* off 0x01bc */ void* LegoData; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill5[47]; /* off 0x01c3 */ unsigned char LargeStack; }; }; /* off 0x01c4 */ unsigned long UserTime; union { /* off 0x01c8 */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01c8 */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01dc */ unsigned long SListFaultCount; /* off 0x01e0 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01e8 */ struct _LIST_ENTRY MutantListHead; /* off 0x01f0 */ void* SListFaultAddress; /* off 0x01f4 */ struct _KTHREAD_COUNTERS* ThreadCounters; /* off 0x01f8 */ struct _XSTATE_SAVE* XStateSave; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; union _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; /* off 0x0000 */ unsigned char ExecuteOptions; }; union _KSTACK_COUNT /* sizeof 00000004 4 */ { /* off 0x0000 */ long Value; struct { /* off 0x0000 */ unsigned long State:3 /* start bit 0 */; /* off 0x0000 */ unsigned long StackCount:29 /* start bit 3 */; }; }; struct _KPROCESS /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ struct _KGDTENTRY LdtDescriptor; /* off 0x0024 */ struct _KIDTENTRY Int21Descriptor; /* off 0x002c */ struct _LIST_ENTRY ThreadListHead; /* off 0x0034 */ unsigned long ProcessLock; /* off 0x0038 */ struct _KAFFINITY_EX Affinity; /* off 0x0044 */ struct _LIST_ENTRY ReadyListHead; /* off 0x004c */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x0050 */ struct _KAFFINITY_EX ActiveProcessors; union { struct { /* off 0x005c */ long AutoAlignment:1 /* start bit 0 */; /* off 0x005c */ long DisableBoost:1 /* start bit 1 */; /* off 0x005c */ long DisableQuantum:1 /* start bit 2 */; /* off 0x005c */ unsigned long ActiveGroupsMask:1 /* start bit 3 */; /* off 0x005c */ long ReservedFlags:28 /* start bit 4 */; }; /* off 0x005c */ long ProcessFlags; }; /* off 0x0060 */ char BasePriority; /* off 0x0061 */ char QuantumReset; /* off 0x0062 */ unsigned char Visited; /* off 0x0063 */ unsigned char Unused3; /* off 0x0064 */ unsigned long ThreadSeed[1]; /* off 0x0068 */ unsigned short IdealNode[1]; /* off 0x006a */ unsigned short IdealGlobalNode; /* off 0x006c */ union _KEXECUTE_OPTIONS Flags; /* off 0x006d */ unsigned char Unused1; /* off 0x006e */ unsigned short IopmOffset; /* off 0x0070 */ unsigned long Unused4; /* off 0x0074 */ union _KSTACK_COUNT StackCount; /* off 0x0078 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0080 */ unsigned __int64 CycleTime; /* off 0x0088 */ unsigned long KernelTime; /* off 0x008c */ unsigned long UserTime; /* off 0x0090 */ void* VdmTrapcHandler; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _COUNTER_READING /* sizeof 00000018 24 */ { /* off 0x0000 */ enum _HARDWARE_COUNTER_TYPE Type; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 Total; }; struct _KTHREAD_COUNTERS /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned __int64 WaitReasonBitMap; /* off 0x0008 */ struct _THREAD_PERFORMANCE_DATA* UserData; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0018 */ unsigned __int64 CycleTimeBias; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING HwCounter[16]; }; struct _THREAD_PERFORMANCE_DATA /* sizeof 000001c0 448 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ struct _PROCESSOR_NUMBER ProcessorNumber; /* off 0x0008 */ unsigned long ContextSwitches; /* off 0x000c */ unsigned long HwCountersCount; /* off 0x0010 */ unsigned __int64 UpdateCount; /* off 0x0018 */ unsigned __int64 WaitReasonBitMap; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING CycleTime; /* off 0x0040 */ struct _COUNTER_READING HwCounters[16]; }; enum _HARDWARE_COUNTER_TYPE { PMCCounter =0x00000000 ,//0 MaxHardwareCounterType =0x00000001 ,//0 }; struct _XSTATE_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned long Reserved1; /* off 0x0010 */ struct _XSAVE_AREA* Area; /* off 0x0014 */ unsigned long Reserved2; /* off 0x0018 */ void* Buffer; /* off 0x001c */ unsigned long Reserved3; }; struct _XSTATE_SAVE /* sizeof 00000020 32 */ { union { struct { /* off 0x0000 */ __int64 Reserved1; /* off 0x0008 */ unsigned long Reserved2; /* off 0x000c */ struct _XSTATE_SAVE* Prev; /* off 0x0010 */ struct _XSAVE_AREA* Reserved3; /* off 0x0014 */ struct _KTHREAD* Thread; /* off 0x0018 */ void* Reserved4; /* off 0x001c */ unsigned char Level; }; /* off 0x0000 */ struct _XSTATE_CONTEXT XStateContext; }; }; struct _M128A /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Low; /* off 0x0008 */ __int64 High; }; struct _XSAVE_FORMAT /* sizeof 00000200 512 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned char TagWord; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned short ErrorSelector; /* off 0x000e */ unsigned short Reserved2; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned short DataSelector; /* off 0x0016 */ unsigned short Reserved3; /* off 0x0018 */ unsigned long MxCsr; /* off 0x001c */ unsigned long MxCsr_Mask; /* off 0x0020 */ struct _M128A FloatRegisters[8]; /* off 0x00a0 */ struct _M128A XmmRegisters[8]; /* off 0x0120 */ unsigned char Reserved4[192]; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; }; struct _XSAVE_AREA_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned __int64 Reserved[7]; }; struct _XSAVE_AREA /* sizeof 00000240 576 */ { /* off 0x0000 */ struct _XSAVE_FORMAT LegacyState; /* off 0x0200 */ struct _XSAVE_AREA_HEADER Header; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char GroupAssigned:1 /* start bit 1 */; /* off 0x0000 */ unsigned char GroupCommitted:1 /* start bit 2 */; /* off 0x0000 */ unsigned char GroupAssignmentFixed:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Fill:4 /* start bit 4 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; /* off 0x0014 */ unsigned long Pad0; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ struct _GROUP_AFFINITY Affinity; /* off 0x002c */ unsigned long ProximityId; /* off 0x0030 */ unsigned short NodeNumber; /* off 0x0032 */ unsigned short PrimaryNodeNumber; /* off 0x0034 */ unsigned char MaximumProcessors; /* off 0x0035 */ unsigned char Color; /* off 0x0036 */ struct _flags Flags; /* off 0x0037 */ unsigned char NodePad0; /* off 0x0038 */ unsigned long Seed; /* off 0x003c */ unsigned long MmShiftedColor; /* off 0x0040 */ unsigned long FreeCount[2]; /* off 0x0048 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; /* off 0x0060 */ long ParkLock; /* off 0x0064 */ unsigned long NodePad1; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX DomainMembers; /* off 0x000c */ long( __fastcall *IdleCheck)(void*); /* off 0x0010 */ void( __fastcall *IdleHandler)(void*); /* off 0x0018 */ unsigned __int64 HvConfig; /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned long Latency; /* off 0x0028 */ unsigned long Power; /* off 0x002c */ unsigned long TimeCheck; /* off 0x0030 */ unsigned long StateFlags; /* off 0x0034 */ unsigned char PromotePercent; /* off 0x0035 */ unsigned char DemotePercent; /* off 0x0036 */ unsigned char PromotePercentBase; /* off 0x0037 */ unsigned char DemotePercentBase; /* off 0x0038 */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0008 */ unsigned long TargetState; /* off 0x000c */ unsigned long ActualState; /* off 0x0010 */ unsigned long OldState; /* off 0x0014 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x0020 */ struct _PPM_IDLE_STATE State[1]; }; struct _PROC_IDLE_STATE_BUCKET /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned __int64 MinTime; /* off 0x0010 */ unsigned __int64 MaxTime; /* off 0x0018 */ unsigned long Count; }; struct _PROC_IDLE_STATE_ACCOUNTING /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned long IdleTransitions; /* off 0x000c */ unsigned long FailedTransitions; /* off 0x0010 */ unsigned long InvalidBucketIndex; /* off 0x0018 */ unsigned __int64 MinTime; /* off 0x0020 */ unsigned __int64 MaxTime; /* off 0x0028 */ struct _PROC_IDLE_STATE_BUCKET IdleTimeBuckets[16]; }; struct _PROC_IDLE_ACCOUNTING /* sizeof 000002c0 704 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ unsigned __int64 BucketLimits[16]; /* off 0x0098 */ struct _PROC_IDLE_STATE_ACCOUNTING State[1]; }; enum _PROC_HYPERVISOR_STATE { ProcHypervisorNone =0x00000000 ,//0 ProcHypervisorPresent =0x00000001 ,//0 ProcHypervisorPower =0x00000002 ,//0 }; struct _PROC_PERF_DOMAIN /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _KPRCB* Master; /* off 0x000c */ struct _KAFFINITY_EX Members; /* off 0x0018 */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x001c */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0020 */ void( __fastcall *BoostPolicyHandler)(unsigned long); /* off 0x0024 */ unsigned long( __fastcall *PerfSelectionHandler)(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long*,unsigned long*); /* off 0x0028 */ void( __fastcall *PerfHandler)(unsigned long,unsigned long); /* off 0x002c */ struct _PROC_PERF_CONSTRAINT* Processors; /* off 0x0030 */ unsigned __int64 PerfChangeTime; /* off 0x0038 */ unsigned long ProcessorCount; /* off 0x003c */ unsigned long PreviousFrequencyMhz; /* off 0x0040 */ unsigned long CurrentFrequencyMhz; /* off 0x0044 */ unsigned long PreviousFrequency; /* off 0x0048 */ unsigned long CurrentFrequency; /* off 0x004c */ unsigned long CurrentPerfContext; /* off 0x0050 */ unsigned long DesiredFrequency; /* off 0x0054 */ unsigned long MaxFrequency; /* off 0x0058 */ unsigned long MinPerfPercent; /* off 0x005c */ unsigned long MinThrottlePercent; /* off 0x0060 */ unsigned long MaxPercent; /* off 0x0064 */ unsigned long MinPercent; /* off 0x0068 */ unsigned long ConstrainedMaxPercent; /* off 0x006c */ unsigned long ConstrainedMinPercent; /* off 0x0070 */ unsigned char Coordination; /* off 0x0074 */ long PerfChangeIntervalCount; }; struct _PROC_PERF_CONSTRAINT /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _KPRCB* Prcb; /* off 0x0004 */ unsigned long PerfContext; /* off 0x0008 */ unsigned long PercentageCap; /* off 0x000c */ unsigned long ThermalCap; /* off 0x0010 */ unsigned long TargetFrequency; /* off 0x0014 */ unsigned long AcumulatedFullFrequency; /* off 0x0018 */ unsigned long AcumulatedZeroFrequency; /* off 0x001c */ unsigned long FrequencyHistoryTotal; /* off 0x0020 */ unsigned long AverageFrequency; }; struct _PROC_PERF_LOAD /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char BusyPercentage; /* off 0x0001 */ unsigned char FrequencyPercentage; }; struct _PROC_HISTORY_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Utility; /* off 0x0002 */ unsigned char Frequency; /* off 0x0003 */ unsigned char Reserved; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueUnusedSpare0 =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueueUnusedSpare2 =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueMaximumLock =0x00000011 ,//0 }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Event; /* off 0x001c */ unsigned long OldIrql; }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideMediumIrpList =0x00000001 ,//0 LookasideLargeIrpList =0x00000002 ,//0 LookasideMdlList =0x00000003 ,//0 LookasideCreateInfoList =0x00000004 ,//0 LookasideNameBufferList =0x00000005 ,//0 LookasideTwilightList =0x00000006 ,//0 LookasideCompletionList =0x00000007 ,//0 LookasideScratchBufferList =0x00000008 ,//0 LookasideMaximumList =0x00000009 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _KEVENT WakeEvent; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 000002b8 696 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x0200 */ union _LARGE_INTEGER CreateTime; union { /* off 0x0208 */ union _LARGE_INTEGER ExitTime; /* off 0x0208 */ struct _LIST_ENTRY KeyedWaitChain; }; /* off 0x0210 */ long ExitStatus; union { /* off 0x0214 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x0214 */ void* ForwardLinkShadow; /* off 0x0218 */ void* StartAddress; }; }; union { /* off 0x021c */ struct _TERMINATION_PORT* TerminationPort; /* off 0x021c */ struct _ETHREAD* ReaperLink; /* off 0x021c */ void* KeyedWaitValue; }; /* off 0x0220 */ unsigned long ActiveTimerListLock; /* off 0x0224 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x022c */ struct _CLIENT_ID Cid; union { /* off 0x0234 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0234 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0248 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x024c */ struct _LIST_ENTRY IrpList; /* off 0x0254 */ unsigned long TopLevelIrp; /* off 0x0258 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x025c */ union _PSP_CPU_QUOTA_APC* CpuQuotaApc; /* off 0x0260 */ void* Win32StartAddress; /* off 0x0264 */ void* LegacyPowerObject; /* off 0x0268 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0270 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0274 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0278 */ unsigned long ReadClusterSize; /* off 0x027c */ long MmLockOrdering; union { /* off 0x0280 */ unsigned long CrossThreadFlags; struct { /* off 0x0280 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0280 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0280 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0280 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0280 */ unsigned long Reserved:1 /* start bit 4 */; /* off 0x0280 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0280 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0280 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0280 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0280 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0280 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0280 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0280 */ unsigned long RundownFail:1 /* start bit 16 */; /* off 0x0280 */ unsigned long NeedsWorkingSetAging:1 /* start bit 17 */; }; }; union { /* off 0x0284 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0284 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0284 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0284 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0284 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0284 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0284 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0284 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0288 */ unsigned long SameThreadApcFlags; struct { /* off 0x0288 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0288 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0288 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0288 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0289 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0289 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0289 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0289 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetExclusive:1 /* start bit 0 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetShared:1 /* start bit 1 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetExclusive:1 /* start bit 2 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetShared:1 /* start bit 3 */; /* off 0x028a */ unsigned char TrimTrigger:2 /* start bit 4 */; /* off 0x028a */ unsigned char Spare1:2 /* start bit 6 */; /* off 0x028b */ unsigned char PriorityRegionActive; }; }; /* off 0x028c */ unsigned char CacheManagerActive; /* off 0x028d */ unsigned char DisablePageFaultClustering; /* off 0x028e */ unsigned char ActiveFaultCount; /* off 0x028f */ unsigned char LockOrderState; /* off 0x0290 */ unsigned long AlpcMessageId; union { /* off 0x0294 */ void* AlpcMessage; /* off 0x0294 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0298 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x02a0 */ unsigned long CacheManagerCount; /* off 0x02a4 */ unsigned long IoBoostCount; /* off 0x02a8 */ unsigned long IrpListLock; /* off 0x02ac */ void* ReservedForSynchTracking; /* off 0x02b0 */ struct _SINGLE_LIST_ENTRY CmCallbackListHead; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { struct { /* off 0x0004 */ unsigned long IoPriorityBoosted:1 /* start bit 0 */; /* off 0x0004 */ unsigned long OwnerReferenced:1 /* start bit 1 */; /* off 0x0004 */ unsigned long OwnerCount:30 /* start bit 2 */; }; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long reserved:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char WorkingSetType:3 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 3 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 6 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 7 */; /* off 0x0001 */ unsigned char SessionMaster:1 /* start bit 0 */; /* off 0x0001 */ unsigned char TrimmerState:2 /* start bit 1 */; /* off 0x0001 */ unsigned char Reserved:1 /* start bit 3 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0004 */ struct _KGATE* ExitGate; /* off 0x0008 */ void* AccessLog; /* off 0x000c */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0014 */ unsigned long AgeDistribution[7]; /* off 0x0030 */ unsigned long MinimumWorkingSetSize; /* off 0x0034 */ unsigned long WorkingSetSize; /* off 0x0038 */ unsigned long WorkingSetPrivateSize; /* off 0x003c */ unsigned long MaximumWorkingSetSize; /* off 0x0040 */ unsigned long ChargedWslePages; /* off 0x0044 */ unsigned long ActualWslePages; /* off 0x0048 */ unsigned long WorkingSetSizeOverhead; /* off 0x004c */ unsigned long PeakWorkingSetSize; /* off 0x0050 */ unsigned long HardFaultCount; /* off 0x0054 */ struct _MMWSL* VmWorkingSetList; /* off 0x0058 */ unsigned short NextPageColor; /* off 0x005a */ unsigned short LastTrimStamp; /* off 0x005c */ unsigned long PageFaultCount; /* off 0x0060 */ unsigned long RepurposeCount; /* off 0x0064 */ unsigned long Spare[1]; /* off 0x0068 */ struct _MMSUPPORT_FLAGS Flags; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 000002c0 704 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0098 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x00a0 */ union _LARGE_INTEGER CreateTime; /* off 0x00a8 */ union _LARGE_INTEGER ExitTime; /* off 0x00b0 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x00b4 */ void* UniqueProcessId; /* off 0x00b8 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00c0 */ unsigned long ProcessQuotaUsage[2]; /* off 0x00c8 */ unsigned long ProcessQuotaPeak[2]; /* off 0x00d0 */ unsigned long CommitCharge; /* off 0x00d4 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x00d8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; /* off 0x00dc */ unsigned long PeakVirtualSize; /* off 0x00e0 */ unsigned long VirtualSize; /* off 0x00e4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00ec */ void* DebugPort; union { /* off 0x00f0 */ void* ExceptionPortData; /* off 0x00f0 */ unsigned long ExceptionPortValue; /* off 0x00f0 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00f4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00f8 */ struct _EX_FAST_REF Token; /* off 0x00fc */ unsigned long WorkingSetPage; /* off 0x0100 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x0104 */ struct _ETHREAD* RotateInProgress; /* off 0x0108 */ struct _ETHREAD* ForkInProgress; /* off 0x010c */ unsigned long HardwareTrigger; /* off 0x0110 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x0114 */ void* CloneRoot; /* off 0x0118 */ unsigned long NumberOfPrivatePages; /* off 0x011c */ unsigned long NumberOfLockedPages; /* off 0x0120 */ void* Win32Process; /* off 0x0124 */ struct _EJOB* Job; /* off 0x0128 */ void* SectionObject; /* off 0x012c */ void* SectionBaseAddress; /* off 0x0130 */ unsigned long Cookie; /* off 0x0134 */ unsigned long Spare8; /* off 0x0138 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x013c */ void* Win32WindowStation; /* off 0x0140 */ void* InheritedFromUniqueProcessId; /* off 0x0144 */ void* LdtInformation; /* off 0x0148 */ void* VdmObjects; /* off 0x014c */ unsigned long ConsoleHostProcess; /* off 0x0150 */ void* DeviceMap; /* off 0x0154 */ void* EtwDataSource; /* off 0x0158 */ void* FreeTebHint; union { /* off 0x0160 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0160 */ unsigned __int64 Filler; }; /* off 0x0168 */ void* Session; /* off 0x016c */ unsigned char ImageFileName[15]; /* off 0x017b */ unsigned char PriorityClass; /* off 0x017c */ struct _LIST_ENTRY JobLinks; /* off 0x0184 */ void* LockedPagesList; /* off 0x0188 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0190 */ void* SecurityPort; /* off 0x0194 */ void* PaeTop; /* off 0x0198 */ unsigned long ActiveThreads; /* off 0x019c */ unsigned long ImagePathHash; /* off 0x01a0 */ unsigned long DefaultHardErrorProcessing; /* off 0x01a4 */ long LastThreadExitStatus; /* off 0x01a8 */ struct _PEB* Peb; /* off 0x01ac */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01b0 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01b8 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01c8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01d0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01d8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01e0 */ unsigned long CommitChargeLimit; /* off 0x01e4 */ unsigned long CommitChargePeak; /* off 0x01e8 */ void* AweInfo; /* off 0x01ec */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01f0 */ struct _MMSUPPORT Vm; /* off 0x025c */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0264 */ void* HighestUserAddress; /* off 0x0268 */ unsigned long ModifiedPageCount; union { /* off 0x026c */ unsigned long Flags2; struct { /* off 0x026c */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x026c */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x026c */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x026c */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x026c */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x026c */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x026c */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x026c */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x026c */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x026c */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x026c */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x026c */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x026c */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x026c */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x026c */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x026c */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x026c */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x026c */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x026c */ unsigned long PropagateNode:1 /* start bit 20 */; /* off 0x026c */ unsigned long ExplicitAffinity:1 /* start bit 21 */; }; }; union { /* off 0x0270 */ unsigned long Flags; struct { /* off 0x0270 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0270 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0270 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0270 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0270 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0270 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0270 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0270 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0270 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0270 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0270 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0270 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0270 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0270 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0270 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0270 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0270 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0270 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0270 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0270 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0270 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0270 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0270 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0270 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0270 */ unsigned long CrossSessionCreate:1 /* start bit 25 */; /* off 0x0270 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0270 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0270 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0270 */ unsigned long SetTimerResolutionLink:1 /* start bit 31 */; }; }; /* off 0x0274 */ long ExitStatus; /* off 0x0278 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0298 */ struct _ALPC_PROCESS_CONTEXT AlpcContext; /* off 0x02a8 */ struct _LIST_ENTRY TimerResolutionLink; /* off 0x02b0 */ unsigned long RequestedTimerResolution; /* off 0x02b4 */ unsigned long ActiveThreadsHighWatermark; /* off 0x02b8 */ unsigned long SmallestTimerResolution; /* off 0x02bc */ struct _PO_DIAG_STACK_RECORD* TimerResolutionStackRecord; }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long CapturedCpuShareWeight; /* off 0x0004 */ unsigned long CapturedTotalWeight; }; /* off 0x0000 */ __int64 CombinedData; }; struct _PS_PER_CPU_QUOTA_CACHE_AWARE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _LIST_ENTRY SortedListEntry; /* off 0x0008 */ struct _LIST_ENTRY IdleOnlyListHead; /* off 0x0010 */ unsigned __int64 CycleBaseAllowance; /* off 0x0018 */ __int64 CyclesRemaining; /* off 0x0020 */ unsigned long CurrentGeneration; }; struct _PS_CPU_QUOTA_BLOCK /* sizeof 00000880 2176 */ { union { struct { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; union { struct { /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long CpuShareWeight; /* off 0x0010 */ union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA CapturedWeightData; union { struct { /* off 0x0018 */ unsigned long DuplicateInputMarker:1 /* start bit 0 */; /* off 0x0018 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0018 */ long MiscFlags; }; struct { }; /* off 0x0000 */ unsigned long BlockCurrentGenerationLock; }; struct { /* off 0x0008 */ unsigned __int64 CyclesAccumulated; }; }; /* off 0x0040 */ unsigned __int64 CycleCredit; /* off 0x0048 */ unsigned long BlockCurrentGeneration; /* off 0x004c */ unsigned long CpuCyclePercent; /* off 0x0050 */ unsigned char CyclesFinishedForCurrentGeneration; /* off 0x0080 */ struct _PS_PER_CPU_QUOTA_CACHE_AWARE Cpu[32]; }; }; }; struct _HANDLE_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ unsigned long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ unsigned long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; /* off 0x0038 */ unsigned long HandleCountHighWatermark; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ unsigned long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long MinimumWorkingSetSize; /* off 0x009c */ unsigned long MaximumWorkingSetSize; /* off 0x00a0 */ unsigned long LimitFlags; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ struct _KAFFINITY_EX Affinity; /* off 0x00b4 */ unsigned char PriorityClass; /* off 0x00b8 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00bc */ unsigned long UIRestrictionsClass; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ unsigned long ProcessMemoryLimit; /* off 0x010c */ unsigned long JobMemoryLimit; /* off 0x0110 */ unsigned long PeakProcessMemoryUsed; /* off 0x0114 */ unsigned long PeakJobMemoryUsed; /* off 0x0118 */ unsigned __int64 CurrentJobMemoryUsed; /* off 0x0120 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0124 */ struct _LIST_ENTRY JobSetLinks; /* off 0x012c */ unsigned long MemberLevel; /* off 0x0130 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 000006a8 1704 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextAgingSlot; /* off 0x0020 */ unsigned long NumberOfCommittedPageTables; /* off 0x0024 */ unsigned long VadBitMapHint; /* off 0x0028 */ unsigned long NonDirectCount; /* off 0x002c */ unsigned long LastVadBit; /* off 0x0030 */ unsigned long MaximumLastVadBit; /* off 0x0034 */ unsigned long LastAllocationSizeHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x0040 */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0044 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0048 */ unsigned short UsedPageTableEntries[768]; /* off 0x0648 */ unsigned long CommittedPageTables[24]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned long Age:3 /* start bit 9 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _PO_DIAG_STACK_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StackDepth; /* off 0x0004 */ void* Stack[1]; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileIsRemoteDeviceInformation =0x00000033 ,//0 FileAttributeCacheInformation =0x00000034 ,//0 FileNumaNodeInformation =0x00000035 ,//0 FileStandardLinkInformation =0x00000036 ,//0 FileRemoteProtocolInformation =0x00000037 ,//0 FileMaximumInformation =0x00000038 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 TransportRelations =0x00000006 ,//0 }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved1:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Reserved:13 /* start bit 19 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ unsigned short AffinityPolicy; /* off 0x000a */ unsigned short Group; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 BusQueryContainerID =0x00000005 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long BusyReference; /* off 0x000c */ unsigned long TotalBusyCount; /* off 0x0010 */ unsigned long ConservationIdleTime; /* off 0x0014 */ unsigned long PerformanceIdleTime; /* off 0x0018 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x001c */ struct _LIST_ENTRY IdleList; /* off 0x0024 */ enum _POP_DEVICE_IDLE_TYPE IdleType; /* off 0x0028 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x002c */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x0030 */ struct _LIST_ENTRY Volume; /* off 0x0038 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; enum _POP_DEVICE_IDLE_TYPE { DeviceIdleNormal =0x00000000 ,//0 DeviceIdleDisk =0x00000001 ,//0 }; union _PSP_CPU_QUOTA_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _ACCESS_REASONS /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Data[32]; }; struct _AUX_ACCESS_DATA /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _PRIVILEGE_SET* PrivilegesUsed; /* off 0x0004 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0014 */ unsigned long AccessesToAudit; /* off 0x0018 */ unsigned long MaximumAuditMask; /* off 0x001c */ struct _GUID TransactionId; /* off 0x002c */ void* NewSecurityDescriptor; /* off 0x0030 */ void* ExistingSecurityDescriptor; /* off 0x0034 */ void* ParentSecurityDescriptor; /* off 0x0038 */ void( __stdcall *DeRefSecurityDescriptor)(void*,void*); /* off 0x003c */ void* SDLock; /* off 0x0040 */ struct _ACCESS_REASONS AccessReasons; }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _LIST_ENTRY EcpList; }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned char Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x007c */ unsigned long Key; /* off 0x0080 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PlatformPfaControl:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PlatformDirectedOffline:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved2:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_PACKET_V2 /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0010 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0014 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0018 */ unsigned long ErrorSourceId; /* off 0x001c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0020 */ struct _GUID NotifyType; /* off 0x0030 */ unsigned __int64 Context; /* off 0x0038 */ enum _WHEA_ERROR_PACKET_DATA_FORMAT DataFormat; /* off 0x003c */ unsigned long Reserved1; /* off 0x0040 */ unsigned long DataOffset; /* off 0x0044 */ unsigned long DataLength; /* off 0x0048 */ unsigned long PshedDataOffset; /* off 0x004c */ unsigned long PshedDataLength; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevInformational =0x00000003 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord =0x00000000 ,//0 WheaDataFormatXPFMCA =0x00000001 ,//0 WheaDataFormatMemory =0x00000002 ,//0 WheaDataFormatPCIExpress =0x00000003 ,//0 WheaDataFormatNMIPort =0x00000004 ,//0 WheaDataFormatPCIXBus =0x00000005 ,//0 WheaDataFormatPCIXDevice =0x00000006 ,//0 WheaDataFormatGeneric =0x00000007 ,//0 WheaDataFormatMax =0x00000008 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Precise:1 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 25 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; struct _FSRTL_ADVANCED_FCB_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char IsFastIoPossible; /* off 0x0006 */ unsigned char Flags2; /* off 0x0007 */ unsigned char Reserved:4 /* start bit 0 */; /* off 0x0007 */ unsigned char Version:4 /* start bit 4 */; /* off 0x0008 */ struct _ERESOURCE* Resource; /* off 0x000c */ struct _ERESOURCE* PagingIoResource; /* off 0x0010 */ union _LARGE_INTEGER AllocationSize; /* off 0x0018 */ union _LARGE_INTEGER FileSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ struct _FAST_MUTEX* FastMutex; /* off 0x002c */ struct _LIST_ENTRY FilterContexts; /* off 0x0034 */ struct _EX_PUSH_LOCK PushLock; /* off 0x0038 */ void** FileContextSupportPointer; }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HARDWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned long LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned long Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned long CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ProtoAddressLow:8 /* start bit 1 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long ProtoAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFileHigh:20 /* start bit 12 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long GlobalTimeStamp:20 /* start bit 12 */; }; struct _MMPTE_TRANSITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned long CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned long PageFrameNumber:20 /* start bit 12 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SubsectionAddressLow:9 /* start bit 1 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long SubsectionAddressHigh:21 /* start bit 11 */; }; struct _MMPTE_LIST /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned long filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned long Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned long filler1:1 /* start bit 11 */; /* off 0x0000 */ unsigned long NextEntry:20 /* start bit 12 */; }; struct _MMPTE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ unsigned long VolatileLong; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long OsMajorVersion; /* off 0x0004 */ unsigned long OsMinorVersion; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0018 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0020 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0028 */ unsigned long KernelStack; /* off 0x002c */ unsigned long Prcb; /* off 0x0030 */ unsigned long Process; /* off 0x0034 */ unsigned long Thread; /* off 0x0038 */ unsigned long RegistryLength; /* off 0x003c */ void* RegistryBase; /* off 0x0040 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0044 */ char* ArcBootDeviceName; /* off 0x0048 */ char* ArcHalDeviceName; /* off 0x004c */ char* NtBootPathName; /* off 0x0050 */ char* NtHalPathName; /* off 0x0054 */ char* LoadOptions; /* off 0x0058 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x005c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0060 */ void* OemFontFile; /* off 0x0064 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x0068 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0074 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; union { /* off 0x0014 */ unsigned long AffinityMask; struct { /* off 0x0014 */ unsigned short Group; /* off 0x0016 */ unsigned short GroupIndex; }; }; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _TPM_BOOT_ENTROPY_LDR_RESULT /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 Policy; /* off 0x0008 */ enum _TPM_BOOT_ENTROPY_RESULT_CODE ResultCode; /* off 0x000c */ long ResultStatus; /* off 0x0010 */ unsigned __int64 Time; /* off 0x0018 */ unsigned long EntropyLength; /* off 0x001c */ unsigned char EntropyData[40]; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ void* EmInfFileImage; /* off 0x0018 */ unsigned long EmInfFileSize; /* off 0x001c */ void* TriageDumpBlock; /* off 0x0020 */ unsigned long LoaderPagesSpanned; /* off 0x0024 */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0028 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x002c */ void* DrvDBImage; /* off 0x0030 */ unsigned long DrvDBSize; /* off 0x0034 */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0038 */ unsigned char* HalpIRQLToTPR; /* off 0x003c */ unsigned char* HalpVectorToIRQL; /* off 0x0040 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0048 */ void* AcpiTable; /* off 0x004c */ unsigned long AcpiTableSize; /* off 0x0050 */ unsigned long LastBootSucceeded:1 /* start bit 0 */; /* off 0x0050 */ unsigned long LastBootShutdown:1 /* start bit 1 */; /* off 0x0050 */ unsigned long IoPortAccessSupported:1 /* start bit 2 */; /* off 0x0050 */ unsigned long Reserved:29 /* start bit 3 */; /* off 0x0054 */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0058 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0060 */ void* WmdTestResult; /* off 0x0064 */ struct _GUID BootIdentifier; /* off 0x0074 */ unsigned long ResumePages; /* off 0x0078 */ void* DumpHeader; /* off 0x007c */ void* BgContext; /* off 0x0080 */ void* NumaLocalityInfo; /* off 0x0084 */ void* NumaGroupAssignment; /* off 0x0088 */ struct _LIST_ENTRY AttachedHives; /* off 0x0090 */ unsigned long MemoryCachingRequirementsCount; /* off 0x0094 */ void* MemoryCachingRequirements; /* off 0x0098 */ struct _TPM_BOOT_ENTROPY_LDR_RESULT TpmBootEntropyResult; /* off 0x00e0 */ unsigned __int64 ProcessorCounterFrequency; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; enum _TPM_BOOT_ENTROPY_RESULT_CODE { TpmBootEntropyStructureUninitialized =0x00000000 ,//0 TpmBootEntropyDisabledByPolicy =0x00000001 ,//0 TpmBootEntropyNoTpmFound =0x00000002 ,//0 TpmBootEntropyTpmError =0x00000003 ,//0 TpmBootEntropySuccess =0x00000004 ,//0 }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _MMPFNLIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; /* off 0x0010 */ unsigned long Lock; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; /* off 0x0008 */ long Lock; /* off 0x0008 */ unsigned long PteLong; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ unsigned long FlushInProgressCount; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; union { /* off 0x002c */ unsigned long ModifiedWriteCount; /* off 0x002c */ unsigned long StartingFrame; }; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; /* off 0x0048 */ struct _LIST_ENTRY ViewList; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 22 */; /* off 0x0000 */ unsigned long ContainsDebug:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x002c */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ unsigned long SizeOfImage; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; union _MM_STORE_KEY /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long KeyLow:28 /* start bit 0 */; /* off 0x0000 */ unsigned long KeyHigh:4 /* start bit 28 */; }; /* off 0x0000 */ unsigned long EntireKey; }; enum _MI_STORE_BIT_TYPE { MiStoreBitTypeInStore =0x00000000 ,//0 MiStoreBitTypeEvicted =0x00000001 ,//0 MiStoreBitTypeMax =0x00000002 ,//0 }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ struct _RTL_BITMAP* EvictStoreBitmap; /* off 0x0034 */ unsigned long BitmapHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ unsigned long ToBeEvictedCount; /* off 0x0040 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0040 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0040 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x0042 */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x0042 */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x0044 */ void* FileHandle; /* off 0x0048 */ unsigned long Lock; /* off 0x004c */ struct _ETHREAD* LockOwner; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002ec 748 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ void* HiveLoadFailure; /* off 0x0028 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x002c */ struct _RTL_BITMAP DirtyVector; /* off 0x0034 */ unsigned long DirtyCount; /* off 0x0038 */ unsigned long DirtyAlloc; /* off 0x003c */ unsigned long BaseBlockAlloc; /* off 0x0040 */ unsigned long Cluster; /* off 0x0044 */ unsigned char Flat; /* off 0x0045 */ unsigned char ReadOnly; /* off 0x0046 */ unsigned char DirtyFlag; /* off 0x0048 */ unsigned long HvBinHeadersUse; /* off 0x004c */ unsigned long HvFreeCellsUse; /* off 0x0050 */ unsigned long HvUsedCellsUse; /* off 0x0054 */ unsigned long CmUsedCellsUse; /* off 0x0058 */ unsigned long HiveFlags; /* off 0x005c */ unsigned long CurrentLog; /* off 0x0060 */ unsigned long LogSize[2]; /* off 0x0068 */ unsigned long RefreshCount; /* off 0x006c */ unsigned long StorageTypeCount; /* off 0x0070 */ unsigned long Version; /* off 0x0074 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CM_WORKITEM /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Private; /* off 0x000c */ void( __stdcall *WorkerRoutine)(void*); /* off 0x0010 */ void* Parameter; }; struct _CMHIVE /* sizeof 00000638 1592 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02ec */ void* FileHandles[6]; /* off 0x0304 */ struct _LIST_ENTRY NotifyList; /* off 0x030c */ struct _LIST_ENTRY HiveList; /* off 0x0314 */ struct _LIST_ENTRY PreloadedHiveList; /* off 0x031c */ struct _EX_RUNDOWN_REF HiveRundown; /* off 0x0320 */ struct _LIST_ENTRY ParseCacheEntries; /* off 0x0328 */ struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable; /* off 0x032c */ unsigned long KcbCacheTableSize; /* off 0x0330 */ unsigned long Identity; /* off 0x0334 */ struct _FAST_MUTEX* HiveLock; /* off 0x0338 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x033c */ struct _KTHREAD* ViewLockOwner; /* off 0x0340 */ unsigned long ViewLockLast; /* off 0x0344 */ unsigned long ViewUnLockLast; /* off 0x0348 */ struct _FAST_MUTEX* WriterLock; /* off 0x034c */ struct _ERESOURCE* FlusherLock; /* off 0x0350 */ struct _RTL_BITMAP FlushDirtyVector; /* off 0x0358 */ struct CMP_OFFSET_ARRAY* FlushOffsetArray; /* off 0x035c */ unsigned long FlushOffsetArrayCount; /* off 0x0360 */ unsigned long FlushHiveTruncated; /* off 0x0364 */ struct _FAST_MUTEX* FlushLock2; /* off 0x0368 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x036c */ struct _LIST_ENTRY MappedViewList; /* off 0x0374 */ struct _LIST_ENTRY PinnedViewList; /* off 0x037c */ struct _LIST_ENTRY FlushedViewList; /* off 0x0384 */ unsigned short MappedViewCount; /* off 0x0386 */ unsigned short PinnedViewCount; /* off 0x0388 */ unsigned long UseCount; /* off 0x038c */ unsigned long ViewsPerHive; /* off 0x0390 */ struct _FILE_OBJECT* FileObject; /* off 0x0394 */ unsigned long LastShrinkHiveSize; /* off 0x0398 */ union _LARGE_INTEGER ActualFileSize; /* off 0x03a0 */ struct _UNICODE_STRING FileFullPath; /* off 0x03a8 */ struct _UNICODE_STRING FileUserName; /* off 0x03b0 */ struct _UNICODE_STRING HiveRootPath; /* off 0x03b8 */ unsigned long SecurityCount; /* off 0x03bc */ unsigned long SecurityCacheSize; /* off 0x03c0 */ long SecurityHitHint; /* off 0x03c4 */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x03c8 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x05c8 */ unsigned long UnloadEventCount; /* off 0x05cc */ struct _KEVENT** UnloadEventArray; /* off 0x05d0 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x05d4 */ unsigned char Frozen; /* off 0x05d8 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05dc */ struct _CM_WORKITEM UnloadWorkItemHolder; /* off 0x05f0 */ unsigned char GrowOnlyMode; /* off 0x05f4 */ unsigned long GrowOffset; /* off 0x05f8 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x0600 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0608 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x060c */ unsigned long Flags; /* off 0x0610 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x0618 */ unsigned long FlushCount; /* off 0x061c */ struct _CM_RM* CmRm; /* off 0x0620 */ unsigned long CmRmInitFailPoint; /* off 0x0624 */ long CmRmInitFailStatus; /* off 0x0628 */ struct _KTHREAD* CreatorOwner; /* off 0x062c */ struct _KTHREAD* RundownThread; /* off 0x0630 */ union _LARGE_INTEGER LastWriteTime; }; struct _CM_KEY_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ struct _CM_KEY_HASH* Entry; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:16 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 16 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 17 */; /* off 0x0004 */ unsigned long HiveUnloaded:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Decommissioned:1 /* start bit 19 */; /* off 0x0004 */ unsigned long LockTablePresent:1 /* start bit 20 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 21 */; /* off 0x0008 */ unsigned long DelayedDeref:1 /* start bit 0 */; /* off 0x0008 */ unsigned long DelayedClose:1 /* start bit 1 */; /* off 0x0008 */ unsigned long Parking:1 /* start bit 2 */; union { /* off 0x000c */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x000c */ unsigned long ConvKey; /* off 0x0010 */ struct _CM_KEY_HASH* NextHash; /* off 0x0014 */ struct _HHIVE* KeyHive; /* off 0x0018 */ unsigned long KeyCell; }; }; /* off 0x001c */ struct _EX_PUSH_LOCK KcbPushlock; union { /* off 0x0020 */ struct _KTHREAD* Owner; /* off 0x0020 */ long SharedCount; }; /* off 0x0024 */ unsigned long SlotHint; /* off 0x0028 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x002c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0030 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0034 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x003c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x003c */ unsigned long HashKey; /* off 0x003c */ unsigned long SubKeyCount; }; union { /* off 0x0040 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0040 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0048 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0058 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0060 */ unsigned short KcbMaxNameLen; /* off 0x0062 */ unsigned short KcbMaxValueNameLen; /* off 0x0064 */ unsigned long KcbMaxValueDataLen; /* off 0x0068 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0068 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0068 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0068 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x006c */ struct _LIST_ENTRY KCBUoWListHead; union { /* off 0x0074 */ struct _LIST_ENTRY DelayQueueEntry; /* off 0x0074 */ unsigned char* Stolen; }; /* off 0x007c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0080 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0088 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0090 */ struct _CHILD_LIST TransValueCache; /* off 0x0098 */ struct _CM_TRANS* TransValueListOwner; /* off 0x009c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags:16 /* start bit 0 */; /* off 0x0018 */ unsigned long HandleTags:16 /* start bit 16 */; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[7]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; /* off 0x0228 */ struct _WORK_QUEUE_ITEM OfflineWorkItem; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; struct _HIVE_LOAD_FAILURE /* sizeof 00000120 288 */ { /* off 0x0000 */ struct _HHIVE* Hive; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long RecoverableIndex; /* off 0x000c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } Locations[8]; /* off 0x006c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } RecoverableLocations[8]; /* off 0x00cc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Action; /* off 0x0004 */ void* Handle; /* off 0x0008 */ long Status; } RegistryIO; /* off 0x00d8 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* CheckStack; } CheckRegistry2; /* off 0x00dc */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CELL_DATA* CellPoint; /* off 0x0008 */ void* RootPoint; /* off 0x000c */ unsigned long Index; } CheckKey; /* off 0x00ec */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _CELL_DATA* List; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long Cell; /* off 0x000c */ struct _CELL_DATA* CellPoint; } CheckValueList; /* off 0x00fc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive; /* off 0x0108 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive1; /* off 0x0114 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _HBIN* Bin; /* off 0x0004 */ struct _HCELL* CellPoint; } CheckBin; /* off 0x011c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FileOffset; } RecoverData; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; enum _CM_LOAD_FAILURE_TYPE { _None =0x00000000 ,//0 _CmInitializeHive =0x00000001 ,//0 _HvInitializeHive =0x00000002 ,//0 _HvpBuildMap =0x00000003 ,//0 _HvpBuildMapAndCopy =0x00000004 ,//0 _HvpInitMap =0x00000005 ,//0 _HvLoadHive =0x00000006 ,//0 _HvpReadFileImageAndBuildMap =0x00000007 ,//0 _HvpRecoverData =0x00000008 ,//0 _HvpRecoverWholeHive =0x00000009 ,//0 _HvpMapFileImageAndBuildMap =0x0000000a ,//0 _CmpValidateHiveSecurityDescriptors =0x0000000b ,//0 _HvpEnlistBinInMap =0x0000000c ,//0 _CmCheckRegistry =0x0000000d ,//0 _CmRegistryIO =0x0000000e ,//0 _CmCheckRegistry2 =0x0000000f ,//0 _CmpCheckKey =0x00000010 ,//0 _CmpCheckValueList =0x00000011 ,//0 _HvCheckHive =0x00000012 ,//0 _HvCheckBin =0x00000013 ,//0 }; struct _HBIN /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long FileOffset; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved1[2]; /* off 0x0014 */ union _LARGE_INTEGER TimeStamp; /* off 0x001c */ unsigned long Spare; }; struct _HCELL /* sizeof 0000000c 12 */ { /* off 0x0000 */ long Size; /* off 0x0004 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Last; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } OldCell; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } NewCell; } u; }; struct _PCW_COUNTER_DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned short StructIndex; /* off 0x0004 */ unsigned short Offset; /* off 0x0006 */ unsigned short Size; }; enum _PCW_CALLBACK_TYPE { PcwCallbackAddCounter =0x00000000 ,//0 PcwCallbackRemoveCounter =0x00000001 ,//0 PcwCallbackEnumerateInstances =0x00000002 ,//0 PcwCallbackCollectData =0x00000003 ,//0 }; struct _PCW_COUNTER_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; }; struct _PCW_MASK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; /* off 0x000c */ unsigned long InstanceId; /* off 0x0010 */ unsigned char CollectMultiple; /* off 0x0014 */ struct _PCW_BUFFER* Buffer; /* off 0x0018 */ struct _KEVENT* CancelEvent; }; union _PCW_CALLBACK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION AddCounter; /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION RemoveCounter; /* off 0x0000 */ struct _PCW_MASK_INFORMATION EnumerateInstances; /* off 0x0000 */ struct _PCW_MASK_INFORMATION CollectData; }; struct _PCW_BUFFER /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _UNICODE_STRING* Name; /* off 0x0008 */ unsigned long CounterCount; /* off 0x000c */ struct _PCW_COUNTER_DESCRIPTOR* Counters; /* off 0x0010 */ long( __stdcall *Callback)(enum _PCW_CALLBACK_TYPE,union _PCW_CALLBACK_INFORMATION*,void*); /* off 0x0014 */ void* CallbackContext; }; struct _PCW_PROCESSOR_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned __int64 IdleTime; /* off 0x0008 */ unsigned __int64 AvailableTime; /* off 0x0010 */ unsigned __int64 UserTime; /* off 0x0018 */ unsigned __int64 KernelTime; /* off 0x0020 */ unsigned long Interrupts; /* off 0x0028 */ unsigned __int64 DpcTime; /* off 0x0030 */ unsigned __int64 InterruptTime; /* off 0x0038 */ unsigned long DpcCount; /* off 0x003c */ unsigned long DpcRate; /* off 0x0040 */ unsigned __int64 C1Time; /* off 0x0048 */ unsigned __int64 C2Time; /* off 0x0050 */ unsigned __int64 C3Time; /* off 0x0058 */ unsigned __int64 C1Transitions; /* off 0x0060 */ unsigned __int64 C2Transitions; /* off 0x0068 */ unsigned __int64 C3Transitions; /* off 0x0070 */ unsigned long ParkingStatus; /* off 0x0074 */ unsigned long CurrentFrequency; /* off 0x0078 */ unsigned long PercentMaxFrequency; /* off 0x007c */ unsigned long StateFlags; }; struct _PCW_INSTANCE /* sizeof 00000000 0 */ { }; struct _PCW_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Data; /* off 0x0004 */ unsigned long Size; }; struct _ETW_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long TotalActiveSessions; /* off 0x0004 */ long TotalBufferMemoryNonPagedPool; /* off 0x0008 */ long TotalBufferMemoryPagedPool; /* off 0x000c */ long TotalGuidsEnabled; /* off 0x0010 */ long TotalGuidsNotEnabled; /* off 0x0014 */ long TotalGuidsPreEnabled; }; struct _ETW_SESSION_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long BufferMemoryPagedPool; /* off 0x0004 */ long BufferMemoryNonPagedPool; /* off 0x0008 */ unsigned __int64 EventsLoggedCount; /* off 0x0010 */ long EventsLost; /* off 0x0014 */ long NumConsumers; }; struct _NT_TIB32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long ExceptionList; /* off 0x0004 */ unsigned long StackBase; /* off 0x0008 */ unsigned long StackLimit; /* off 0x000c */ unsigned long SubSystemTib; union { /* off 0x0010 */ unsigned long FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ unsigned long ArbitraryUserPointer; /* off 0x0018 */ unsigned long Self; }; struct _CLIENT_ID32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long UniqueProcess; /* off 0x0004 */ unsigned long UniqueThread; }; struct _GDI_TEB_BATCH32 /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _STRING32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned long Buffer; }; struct _TEB32 /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB32 NtTib; /* off 0x001c */ unsigned long EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID32 ClientId; /* off 0x0028 */ unsigned long ActiveRpcHandle; /* off 0x002c */ unsigned long ThreadLocalStoragePointer; /* off 0x0030 */ unsigned long ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ unsigned long CsrClientThread; /* off 0x0040 */ unsigned long Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ unsigned long WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ unsigned long SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ unsigned long ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH32 GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID32 RealClientId; /* off 0x06bc */ unsigned long GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ unsigned long GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ unsigned long glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ unsigned long glReserved2; /* off 0x0be0 */ unsigned long glSectionInfo; /* off 0x0be4 */ unsigned long glSection; /* off 0x0be8 */ unsigned long glTable; /* off 0x0bec */ unsigned long glCurrentRC; /* off 0x0bf0 */ unsigned long glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _STRING32 StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ unsigned long DeallocationStack; /* off 0x0e10 */ unsigned long TlsSlots[64]; /* off 0x0f10 */ struct LIST_ENTRY32 TlsLinks; /* off 0x0f18 */ unsigned long Vdm; /* off 0x0f1c */ unsigned long ReservedForNtRpc; /* off 0x0f20 */ unsigned long DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ unsigned long Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ unsigned long SubProcessTag; /* off 0x0f64 */ unsigned long EtwLocalData; /* off 0x0f68 */ unsigned long EtwTraceData; /* off 0x0f6c */ unsigned long WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ unsigned long ReservedForPerf; /* off 0x0f80 */ unsigned long ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ unsigned long SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ unsigned long ThreadPoolData; /* off 0x0f94 */ unsigned long TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ unsigned long NlsCache; /* off 0x0fa4 */ unsigned long pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ unsigned long CurrentTransactionHandle; /* off 0x0fb0 */ unsigned long ActiveFrame; /* off 0x0fb4 */ unsigned long FlsData; /* off 0x0fb8 */ unsigned long PreferredLanguages; /* off 0x0fbc */ unsigned long UserPrefLanguages; /* off 0x0fc0 */ unsigned long MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ unsigned long TxnScopeEnterCallback; /* off 0x0fd0 */ unsigned long TxnScopeExitCallback; /* off 0x0fd4 */ unsigned long TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ unsigned long ResourceRetValue; }; struct _NT_TIB64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 ExceptionList; /* off 0x0008 */ unsigned __int64 StackBase; /* off 0x0010 */ unsigned __int64 StackLimit; /* off 0x0018 */ unsigned __int64 SubSystemTib; union { /* off 0x0020 */ unsigned __int64 FiberData; /* off 0x0020 */ unsigned long Version; }; /* off 0x0028 */ unsigned __int64 ArbitraryUserPointer; /* off 0x0030 */ unsigned __int64 Self; }; struct _CLIENT_ID64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 UniqueProcess; /* off 0x0008 */ unsigned __int64 UniqueThread; }; struct _GDI_TEB_BATCH64 /* sizeof 000004e8 1256 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0008 */ unsigned __int64 HDC; /* off 0x0010 */ unsigned long Buffer[310]; }; struct _STRING64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0008 */ unsigned __int64 Buffer; }; struct _TEB64 /* sizeof 00001818 6168 */ { /* off 0x0000 */ struct _NT_TIB64 NtTib; /* off 0x0038 */ unsigned __int64 EnvironmentPointer; /* off 0x0040 */ struct _CLIENT_ID64 ClientId; /* off 0x0050 */ unsigned __int64 ActiveRpcHandle; /* off 0x0058 */ unsigned __int64 ThreadLocalStoragePointer; /* off 0x0060 */ unsigned __int64 ProcessEnvironmentBlock; /* off 0x0068 */ unsigned long LastErrorValue; /* off 0x006c */ unsigned long CountOfOwnedCriticalSections; /* off 0x0070 */ unsigned __int64 CsrClientThread; /* off 0x0078 */ unsigned __int64 Win32ThreadInfo; /* off 0x0080 */ unsigned long User32Reserved[26]; /* off 0x00e8 */ unsigned long UserReserved[5]; /* off 0x0100 */ unsigned __int64 WOW32Reserved; /* off 0x0108 */ unsigned long CurrentLocale; /* off 0x010c */ unsigned long FpSoftwareStatusRegister; /* off 0x0110 */ unsigned __int64 SystemReserved1[54]; /* off 0x02c0 */ long ExceptionCode; /* off 0x02c8 */ unsigned __int64 ActivationContextStackPointer; /* off 0x02d0 */ unsigned char SpareBytes[24]; /* off 0x02e8 */ unsigned long TxFsContext; /* off 0x02f0 */ struct _GDI_TEB_BATCH64 GdiTebBatch; /* off 0x07d8 */ struct _CLIENT_ID64 RealClientId; /* off 0x07e8 */ unsigned __int64 GdiCachedProcessHandle; /* off 0x07f0 */ unsigned long GdiClientPID; /* off 0x07f4 */ unsigned long GdiClientTID; /* off 0x07f8 */ unsigned __int64 GdiThreadLocalInfo; /* off 0x0800 */ unsigned __int64 Win32ClientInfo[62]; /* off 0x09f0 */ unsigned __int64 glDispatchTable[233]; /* off 0x1138 */ unsigned __int64 glReserved1[29]; /* off 0x1220 */ unsigned __int64 glReserved2; /* off 0x1228 */ unsigned __int64 glSectionInfo; /* off 0x1230 */ unsigned __int64 glSection; /* off 0x1238 */ unsigned __int64 glTable; /* off 0x1240 */ unsigned __int64 glCurrentRC; /* off 0x1248 */ unsigned __int64 glContext; /* off 0x1250 */ unsigned long LastStatusValue; /* off 0x1258 */ struct _STRING64 StaticUnicodeString; /* off 0x1268 */ wchar StaticUnicodeBuffer[261]; /* off 0x1478 */ unsigned __int64 DeallocationStack; /* off 0x1480 */ unsigned __int64 TlsSlots[64]; /* off 0x1680 */ struct LIST_ENTRY64 TlsLinks; /* off 0x1690 */ unsigned __int64 Vdm; /* off 0x1698 */ unsigned __int64 ReservedForNtRpc; /* off 0x16a0 */ unsigned __int64 DbgSsReserved[2]; /* off 0x16b0 */ unsigned long HardErrorMode; /* off 0x16b8 */ unsigned __int64 Instrumentation[11]; /* off 0x1710 */ struct _GUID ActivityId; /* off 0x1720 */ unsigned __int64 SubProcessTag; /* off 0x1728 */ unsigned __int64 EtwLocalData; /* off 0x1730 */ unsigned __int64 EtwTraceData; /* off 0x1738 */ unsigned __int64 WinSockData; /* off 0x1740 */ unsigned long GdiBatchCount; union { /* off 0x1744 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x1744 */ unsigned long IdealProcessorValue; struct { /* off 0x1744 */ unsigned char ReservedPad0; /* off 0x1745 */ unsigned char ReservedPad1; /* off 0x1746 */ unsigned char ReservedPad2; /* off 0x1747 */ unsigned char IdealProcessor; }; }; /* off 0x1748 */ unsigned long GuaranteedStackBytes; /* off 0x1750 */ unsigned __int64 ReservedForPerf; /* off 0x1758 */ unsigned __int64 ReservedForOle; /* off 0x1760 */ unsigned long WaitingOnLoaderLock; /* off 0x1768 */ unsigned __int64 SavedPriorityState; /* off 0x1770 */ unsigned __int64 SoftPatchPtr1; /* off 0x1778 */ unsigned __int64 ThreadPoolData; /* off 0x1780 */ unsigned __int64 TlsExpansionSlots; /* off 0x1788 */ unsigned __int64 DeallocationBStore; /* off 0x1790 */ unsigned __int64 BStoreLimit; /* off 0x1798 */ unsigned long MuiGeneration; /* off 0x179c */ unsigned long IsImpersonating; /* off 0x17a0 */ unsigned __int64 NlsCache; /* off 0x17a8 */ unsigned __int64 pShimData; /* off 0x17b0 */ unsigned long HeapVirtualAffinity; /* off 0x17b8 */ unsigned __int64 CurrentTransactionHandle; /* off 0x17c0 */ unsigned __int64 ActiveFrame; /* off 0x17c8 */ unsigned __int64 FlsData; /* off 0x17d0 */ unsigned __int64 PreferredLanguages; /* off 0x17d8 */ unsigned __int64 UserPrefLanguages; /* off 0x17e0 */ unsigned __int64 MergedPrefLanguages; /* off 0x17e8 */ unsigned long MuiImpersonation; union { /* off 0x17ec */ unsigned short CrossTebFlags; /* off 0x17ec */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x17ee */ unsigned short SameTebFlags; struct { /* off 0x17ee */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x17ee */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x17ee */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x17ee */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x17ee */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x17ee */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x17ee */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x17ee */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x17ee */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x17ee */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x17ee */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x17ee */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x17f0 */ unsigned __int64 TxnScopeEnterCallback; /* off 0x17f8 */ unsigned __int64 TxnScopeExitCallback; /* off 0x1800 */ unsigned __int64 TxnScopeContext; /* off 0x1808 */ unsigned long LockCount; /* off 0x180c */ unsigned long SpareUlong0; /* off 0x1810 */ unsigned __int64 ResourceRetValue; }; struct _KAFFINITY_ENUMERATION_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KAFFINITY_EX* Affinity; /* off 0x0004 */ unsigned long CurrentMask; /* off 0x0008 */ unsigned short CurrentIndex; }; struct _FXSAVE_FORMAT /* sizeof 000001e0 480 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[192]; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _KSTACK_AREA /* sizeof 00000210 528 */ { union { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT NpxFrame; }; /* off 0x01e0 */ struct _KERNEL_STACK_CONTROL StackControl; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY DispatchedList; /* off 0x0008 */ unsigned long DispatchedCount; /* off 0x000c */ struct _LIST_ENTRY CompletedList; /* off 0x0014 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0028 */ unsigned long SpinLock; }; struct _PO_DEVICE_NOTIFY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _LIST_ENTRY PowerChildren; /* off 0x0010 */ struct _LIST_ENTRY PowerParents; /* off 0x0018 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x001c */ unsigned char OrderLevel; /* off 0x0020 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0024 */ unsigned short* DeviceName; /* off 0x0028 */ unsigned short* DriverName; /* off 0x002c */ unsigned long ChildCount; /* off 0x0030 */ unsigned long ActiveChild; /* off 0x0034 */ unsigned long ParentCount; /* off 0x0038 */ unsigned long ActiveParent; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000188 392 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ struct _UNICODE_STRING InstancePath; /* off 0x001c */ struct _UNICODE_STRING ServiceName; /* off 0x0024 */ struct _IRP* PendingIrp; /* off 0x0028 */ unsigned long Level; /* off 0x002c */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0068 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0078 */ enum _PNP_DEVNODE_STATE State; /* off 0x007c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0080 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00d0 */ unsigned long StateHistoryEntry; /* off 0x00d4 */ long CompletionStatus; /* off 0x00d8 */ unsigned long Flags; /* off 0x00dc */ unsigned long UserFlags; /* off 0x00e0 */ unsigned long Problem; /* off 0x00e4 */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00e8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00ec */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00f0 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00f4 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00f8 */ unsigned long BusNumber; /* off 0x00fc */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x0100 */ unsigned long ChildBusNumber; /* off 0x0104 */ unsigned short ChildBusTypeIndex; /* off 0x0106 */ unsigned char RemovalPolicy; /* off 0x0107 */ unsigned char HardwareRemovalPolicy; /* off 0x0108 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x0110 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0118 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0120 */ unsigned short NoTranslatorMask; /* off 0x0122 */ unsigned short QueryTranslatorMask; /* off 0x0124 */ unsigned short NoArbiterMask; /* off 0x0126 */ unsigned short QueryArbiterMask; /* off 0x0128 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x012c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0130 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x0134 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0138 */ unsigned long CapabilityFlags; /* off 0x013c */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x014c */ unsigned long DisableableDepends; /* off 0x0150 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0158 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0160 */ unsigned long DriverUnloadRetryCount; /* off 0x0164 */ struct _DEVICE_NODE* PreviousParent; /* off 0x0168 */ unsigned long DeletedChildren; /* off 0x016c */ unsigned long NumaNodeIndex; /* off 0x0170 */ struct _GUID ContainerID; /* off 0x0180 */ unsigned char OverrideFlags; /* off 0x0181 */ unsigned char RequiresUnloadedDriver; /* off 0x0184 */ struct _PENDING_RELATIONS_LIST_ENTRY* PendingEjectRelations; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PENDING_RELATIONS_LIST_ENTRY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0018 */ struct _PNP_DEVICE_EVENT_ENTRY* DeviceEvent; /* off 0x001c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0020 */ struct _RELATION_LIST* RelationsList; /* off 0x0024 */ struct _IRP* EjectIrp; /* off 0x0028 */ enum IRPLOCK Lock; /* off 0x002c */ unsigned long Problem; /* off 0x0030 */ unsigned char ProfileChangingEject; /* off 0x0031 */ unsigned char DisplaySafeRemovalDialog; /* off 0x0034 */ enum _SYSTEM_POWER_STATE LightestSleepState; /* off 0x0038 */ struct DOCK_INTERFACE* DockInterface; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000044 68 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 00000020 32 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned long Flags; /* off 0x0014 */ unsigned long SessionId; /* off 0x0018 */ unsigned long DataLength; /* off 0x001c */ unsigned char Data[1]; } PowerSettingNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } PropertyChangeNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000064 100 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 VetoEvent =0x00000006 ,//0 BlockedDriverEvent =0x00000007 ,//0 InvalidIDEvent =0x00000008 ,//0 DevicePropertyChangeEvent =0x00000009 ,//0 DeviceInstanceRemovalEvent =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _RELATION_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long TagCount; /* off 0x0008 */ unsigned long FirstLevel; /* off 0x000c */ unsigned long MaxLevel; /* off 0x0010 */ struct _RELATION_LIST_ENTRY* Entries[1]; }; struct _RELATION_LIST_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxCount; /* off 0x0008 */ struct _DEVICE_OBJECT* Devices[1]; }; enum IRPLOCK { IRPLOCK_CANCELABLE =0x00000000 ,//0 IRPLOCK_CANCEL_STARTED =0x00000001 ,//0 IRPLOCK_CANCEL_COMPLETE =0x00000002 ,//0 IRPLOCK_COMPLETED =0x00000003 ,//0 }; struct DOCK_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ unsigned long( __stdcall *ProfileDepartureSetMode)(void*,enum PROFILE_DEPARTURE_STYLE); /* off 0x0014 */ unsigned long( __stdcall *ProfileDepartureUpdate)(void*); }; enum PROFILE_DEPARTURE_STYLE { PDS_UPDATE_DEFAULT =0x00000001 ,//0 PDS_UPDATE_ON_REMOVE =0x00000002 ,//0 PDS_UPDATE_ON_INTERFACE =0x00000003 ,//0 PDS_UPDATE_ON_EJECT =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _PPC_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; /* off 0x0000 */ struct _PPC_DBGKD_CONTROL_SET PpcControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000020 32 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long PagesQueuedToDisk; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ unsigned long SequentialReadCount; /* off 0x0034 */ unsigned long ReadAheadLength; /* off 0x0038 */ union _LARGE_INTEGER ReadAheadOffset; /* off 0x0040 */ union _LARGE_INTEGER ReadAheadBeyondLastByte; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000160 352 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _EX_PUSH_LOCK VacbLock; /* off 0x004c */ unsigned long DirtyPages; /* off 0x0050 */ struct _LIST_ENTRY LoggedStreamLinks; /* off 0x0058 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0060 */ unsigned long Flags; /* off 0x0064 */ long Status; /* off 0x0068 */ struct _MBCB* Mbcb; /* off 0x006c */ void* Section; /* off 0x0070 */ struct _KEVENT* CreateEvent; /* off 0x0074 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0078 */ unsigned long PagesToWrite; /* off 0x0080 */ __int64 BeyondLastFlush; /* off 0x0088 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x008c */ void* LazyWriteContext; /* off 0x0090 */ struct _LIST_ENTRY PrivateList; /* off 0x0098 */ void* LogHandle; /* off 0x009c */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a0 */ unsigned long DirtyPageThreshold; /* off 0x00a4 */ unsigned long LazyWritePassCount; /* off 0x00a8 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00ac */ struct _KGUARDED_MUTEX BcbLock; /* off 0x00d0 */ union _LARGE_INTEGER LastUnmapBehindOffset; /* off 0x00d8 */ struct _KEVENT Event; /* off 0x00e8 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00f0 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0148 */ void* WriteBehindWorkQueueEntry; /* off 0x014c */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0150 */ unsigned long ProcImagePathHash; /* off 0x0154 */ unsigned long WritesInProgress; /* off 0x0158 */ unsigned long PipelinedReadAheadSize; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY Links; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long VacbArrayIndex; /* off 0x0004 */ unsigned long MappingCount; /* off 0x0008 */ unsigned long HighestMappedIndex; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000088 136 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ __int64 MostRecentlyDirtiedPage; /* off 0x0028 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0048 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0068 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x000c */ unsigned char Function; }; struct VACB_LEVEL_ALLOCATION_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY VacbLevelList; /* off 0x0008 */ void* VacbLevelWithBcbListHeads; /* off 0x000c */ unsigned long VacbLevelsAllocated; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long AllocAndFreeOps; /* off 0x0044 */ unsigned long InBlockDeccommits; /* off 0x0048 */ unsigned long InBlockDeccomitSize; /* off 0x004c */ unsigned long HighWatermarkSize; /* off 0x0050 */ unsigned long LastPolledSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0130 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; /* off 0x0068 */ void* ContextInformation; /* off 0x006c */ unsigned long OriginalBase; /* off 0x0070 */ union _LARGE_INTEGER LoadTime; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ void* SectionObject; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x000c */ void* SectionHandle; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ struct _ALPC_PORT* OwnerPort; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0004 */ unsigned long TotalHandles; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000fc 252 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ void* CompletionPort; /* off 0x0014 */ void* CompletionKey; /* off 0x0018 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x001c */ void* PortContext; /* off 0x0020 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x005c */ struct _LIST_ENTRY MainQueue; /* off 0x0064 */ struct _LIST_ENTRY PendingQueue; /* off 0x006c */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0074 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x007c */ struct _KSEMAPHORE* Semaphore; /* off 0x007c */ struct _KEVENT* DummyEvent; }; /* off 0x0080 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00ac */ struct _EX_PUSH_LOCK Lock; /* off 0x00b0 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b4 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00bc */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c0 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c4 */ struct _CALLBACK_OBJECT* CallbackObject; /* off 0x00c8 */ void* CallbackContext; /* off 0x00cc */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d4 */ long SequenceNo; /* off 0x00d8 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; /* off 0x0000 */ unsigned long EnableCompletionList:1 /* start bit 16 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00dc */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00e0 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00e4 */ struct _KALPC_MESSAGE* CachedMessage; /* off 0x00e8 */ unsigned long MainQueueLength; /* off 0x00ec */ unsigned long PendingQueueLength; /* off 0x00f0 */ unsigned long LargeMessageQueueLength; /* off 0x00f4 */ unsigned long CanceledQueueLength; /* off 0x00f8 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ struct _IO_MINI_COMPLETION_PACKET_USER* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[1]; }; struct _IO_MINI_COMPLETION_PACKET_USER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long PacketType; /* off 0x000c */ void* KeyContext; /* off 0x0010 */ void* ApcContext; /* off 0x0014 */ long IoStatus; /* off 0x0018 */ unsigned long IoStatusInformation; /* off 0x001c */ void( __stdcall *MiniPacketCallback)(struct _IO_MINI_COMPLETION_PACKET_USER*,void*); /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned char Allocated; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _CALLBACK_OBJECT /* sizeof 00000000 0 */ { }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; /* off 0x0000 */ unsigned long ViewAttributeRetrieved:1 /* start bit 14 */; /* off 0x0000 */ unsigned long InDispatch:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x005c */ void* DataUserVa; /* off 0x0060 */ void* DataSystemVa; /* off 0x0064 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x0068 */ struct _ALPC_PORT* ConnectionPort; /* off 0x006c */ struct _ETHREAD* ServerThread; /* off 0x0070 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ struct _KALPC_REGION* Region; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ void* Address; /* off 0x0018 */ unsigned long Size; /* off 0x001c */ void* SecureViewHandle; /* off 0x0020 */ void* WriteAccessHandle; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY RegionListEntry; /* off 0x0008 */ struct _KALPC_SECTION* Section; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long ViewSize; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfViews; /* off 0x0020 */ struct _LIST_ENTRY ViewListHead; /* off 0x0028 */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x002c */ struct _KALPC_VIEW* ReadWriteView; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ unsigned long TargetAccess; /* off 0x0010 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0014 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 WrKeyedEvent =0x00000015 ,//0 WrTerminated =0x00000016 ,//0 WrProcessInSwap =0x00000017 ,//0 WrCpuRateControl =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _ETHREAD* TargetThread; /* off 0x0010 */ struct _ALPC_PORT* TargetPort; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; enum _EX_POOL_PRIORITY { LowPoolPriority =0x00000000 ,//0 LowPoolPrioritySpecialPoolOverrun =0x00000008 ,//0 LowPoolPrioritySpecialPoolUnderrun =0x00000009 ,//0 NormalPoolPriority =0x00000010 ,//0 NormalPoolPrioritySpecialPoolOverrun =0x00000018 ,//0 NormalPoolPrioritySpecialPoolUnderrun =0x00000019 ,//0 HighPoolPriority =0x00000020 ,//0 HighPoolPrioritySpecialPoolOverrun =0x00000028 ,//0 HighPoolPrioritySpecialPoolUnderrun =0x00000029 ,//0 }; enum _LOCK_OPERATION { IoReadAccess =0x00000000 ,//0 IoWriteAccess =0x00000001 ,//0 IoModifyAccess =0x00000002 ,//0 }; union _FILE_SEGMENT_ELEMENT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Buffer; /* off 0x0000 */ unsigned __int64 Alignment; }; struct _RELATIVE_SYMLINK_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short ExposedNamespaceLength; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned short DeviceNameLength; /* off 0x0006 */ unsigned short Reserved; /* off 0x0008 */ struct _RELATIVE_SYMLINK_INFO* InteriorMountPoint; /* off 0x000c */ struct _UNICODE_STRING OpenedName; }; enum _IOP_PRIORITY_HINT { IopIoPriorityNotSet =0x00000000 ,//0 IopIoPriorityVeryLow =0x00000001 ,//0 IopIoPriorityLow =0x00000002 ,//0 IopIoPriorityNormal =0x00000003 ,//0 IopIoPriorityHigh =0x00000004 ,//0 IopIoPriorityCritical =0x00000005 ,//0 MaxIopIoPriorityTypes =0x00000006 ,//0 }; struct _IOP_FILE_OBJECT_EXTENSION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long FoExtFlags; /* off 0x0004 */ void* FoExtPerTypeExtension[7]; /* off 0x0020 */ enum _IOP_PRIORITY_HINT FoIoPriorityHint; }; enum _TRANSFER_TYPE { ReadTransfer =0x00000000 ,//0 WriteTransfer =0x00000001 ,//0 OtherTransfer =0x00000002 ,//0 }; struct _OPEN_PACKET /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ long FinalStatus; /* off 0x000c */ unsigned long Information; /* off 0x0010 */ unsigned long ParseCheck; /* off 0x0014 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0018 */ struct _OBJECT_ATTRIBUTES* OriginalAttributes; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ unsigned long CreateOptions; /* off 0x002c */ unsigned short FileAttributes; /* off 0x002e */ unsigned short ShareAccess; /* off 0x0030 */ void* EaBuffer; /* off 0x0034 */ unsigned long EaLength; /* off 0x0038 */ unsigned long Options; /* off 0x003c */ unsigned long Disposition; /* off 0x0040 */ struct _FILE_BASIC_INFORMATION* BasicInformation; /* off 0x0044 */ struct _FILE_NETWORK_OPEN_INFORMATION* NetworkInformation; /* off 0x0048 */ enum _CREATE_FILE_TYPE CreateFileType; /* off 0x004c */ void* MailslotOrPipeParameters; /* off 0x0050 */ unsigned char Override; /* off 0x0051 */ unsigned char QueryOnly; /* off 0x0052 */ unsigned char DeleteOnly; /* off 0x0053 */ unsigned char FullAttributes; /* off 0x0054 */ struct _DUMMY_FILE_OBJECT* LocalFileObject; /* off 0x0058 */ unsigned long InternalFlags; /* off 0x005c */ struct _IO_DRIVER_CREATE_CONTEXT DriverCreateContext; }; enum _CREATE_FILE_TYPE { CreateFileTypeNone =0x00000000 ,//0 CreateFileTypeNamedPipe =0x00000001 ,//0 CreateFileTypeMailslot =0x00000002 ,//0 }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _EX_PUSH_LOCK Lock; /* off 0x000c */ unsigned char TypeIndex; /* off 0x000d */ unsigned char TraceFlags; /* off 0x000e */ unsigned char InfoMask; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _DUMMY_FILE_OBJECT /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _OBJECT_HEADER ObjectHeader; /* off 0x0020 */ char FileObjectBody[128]; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ char ProbeMode; /* off 0x000c */ unsigned long PagedPoolCharge; /* off 0x0010 */ unsigned long NonPagedPoolCharge; /* off 0x0014 */ unsigned long SecurityDescriptorCharge; /* off 0x0018 */ void* SecurityDescriptor; /* off 0x001c */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long LoggerId; /* off 0x0004 */ unsigned long BufferSize; /* off 0x0008 */ unsigned long MaximumEventSize; /* off 0x000c */ long CollectionOn; /* off 0x0010 */ unsigned long LoggerMode; /* off 0x0014 */ long AcceptNewEvents; /* off 0x0018 */ __int64( __stdcall *GetCpuClock)(); /* off 0x0020 */ union _LARGE_INTEGER StartTime; /* off 0x0028 */ void* LogFileHandle; /* off 0x002c */ struct _ETHREAD* LoggerThread; /* off 0x0030 */ long LoggerStatus; /* off 0x0034 */ void* NBQHead; /* off 0x0038 */ void* OverflowNBQHead; /* off 0x0040 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0048 */ struct _LIST_ENTRY GlobalList; union { /* off 0x0050 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0050 */ struct _EX_FAST_REF CurrentBuffer; }; /* off 0x0054 */ struct _UNICODE_STRING LoggerName; /* off 0x005c */ struct _UNICODE_STRING LogFileName; /* off 0x0064 */ struct _UNICODE_STRING LogFilePattern; /* off 0x006c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0074 */ unsigned long ClockType; /* off 0x0078 */ unsigned long MaximumFileSize; /* off 0x007c */ unsigned long LastFlushedBuffer; /* off 0x0080 */ unsigned long FlushTimer; /* off 0x0084 */ unsigned long FlushThreshold; /* off 0x0088 */ union _LARGE_INTEGER ByteOffset; /* off 0x0090 */ unsigned long MinimumBuffers; /* off 0x0094 */ long BuffersAvailable; /* off 0x0098 */ long NumberOfBuffers; /* off 0x009c */ unsigned long MaximumBuffers; /* off 0x00a0 */ unsigned long EventsLost; /* off 0x00a4 */ unsigned long BuffersWritten; /* off 0x00a8 */ unsigned long LogBuffersLost; /* off 0x00ac */ unsigned long RealTimeBuffersDelivered; /* off 0x00b0 */ unsigned long RealTimeBuffersLost; /* off 0x00b4 */ long* SequencePtr; /* off 0x00b8 */ unsigned long LocalSequence; /* off 0x00bc */ struct _GUID InstanceGuid; /* off 0x00cc */ long FileCounter; /* off 0x00d0 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d4 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ struct _LIST_ENTRY Consumers; /* off 0x00f0 */ unsigned long NumConsumers; /* off 0x00f4 */ struct _ETW_REALTIME_CONSUMER* TransitionConsumer; /* off 0x00f8 */ void* RealtimeLogfileHandle; /* off 0x00fc */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0108 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0110 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0120 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0128 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0130 */ unsigned long RealtimeBuffersSaved; /* off 0x0138 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0148 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x014c */ struct _KEVENT LoggerEvent; /* off 0x015c */ struct _KEVENT FlushEvent; /* off 0x0170 */ struct _KTIMER FlushTimeOutTimer; /* off 0x0198 */ struct _KDPC FlushDpc; /* off 0x01b8 */ struct _KMUTANT LoggerMutex; /* off 0x01d8 */ struct _EX_PUSH_LOCK LoggerLock; union { /* off 0x01dc */ unsigned long BufferListSpinLock; /* off 0x01dc */ struct _EX_PUSH_LOCK BufferListPushLock; }; /* off 0x01e0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x021c */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0220 */ __int64 BufferSequenceNumber; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0228 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0228 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0228 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0228 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0228 */ unsigned long NoMoreEnable:1 /* start bit 6 */; /* off 0x0228 */ unsigned long StackTracing:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ErrorLogged:1 /* start bit 8 */; /* off 0x0228 */ unsigned long RealtimeLoggerContextFreed:1 /* start bit 9 */; }; }; union { /* off 0x022c */ unsigned long RequestFlag; struct { /* off 0x022c */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x022c */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x022c */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x022c */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x022c */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; /* off 0x022c */ unsigned long RequestConnectConsumer:1 /* start bit 5 */; }; }; /* off 0x0230 */ struct _RTL_BITMAP HookIdMap; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x0038 */ struct _LIST_ENTRY GlobalEntry; struct { /* off 0x0038 */ void* Pointer0; /* off 0x003c */ void* Pointer1; }; }; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; struct _ETW_REALTIME_CONSUMER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ void* ProcessHandle; /* off 0x000c */ struct _EPROCESS* ProcessObject; /* off 0x0010 */ void* NextNotDelivered; /* off 0x0014 */ void* RealtimeConnectContext; /* off 0x0018 */ struct _KEVENT* DisconnectEvent; /* off 0x001c */ struct _KEVENT* DataAvailableEvent; /* off 0x0020 */ unsigned long* UserBufferCount; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY* UserBufferListHead; /* off 0x0028 */ unsigned long BuffersLost; /* off 0x002c */ unsigned long EmptyBuffersCount; /* off 0x0030 */ unsigned long LoggerId; /* off 0x0034 */ unsigned char ShutDownRequested; /* off 0x0035 */ unsigned char NewBuffersLost; /* off 0x0036 */ unsigned char Disconnected; /* off 0x0038 */ struct _RTL_BITMAP ReservedBufferSpaceBitMap; /* off 0x0040 */ unsigned char* ReservedBufferSpace; /* off 0x0044 */ unsigned long ReservedBufferSpaceSize; /* off 0x0048 */ unsigned long UserPagesAllocated; /* off 0x004c */ unsigned long UserPagesReused; }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _ETW_LOGGER_HANDLE /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char DereferenceAndLeave; }; struct _ETW_BUFFER_HANDLE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _WMI_BUFFER_HEADER* TraceBuffer; /* off 0x0004 */ struct _EX_FAST_REF* BufferFastRef; }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; struct _NBQUEUE_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SListEntry; /* off 0x0008 */ unsigned __int64 Next; /* off 0x0010 */ unsigned __int64 Data; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000178 376 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; union { /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0028 */ unsigned __int64 MatchId; }; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; /* off 0x0158 */ struct _EVENT_FILTER_HEADER* FilterData[8]; }; struct _EVENT_FILTER_HEADER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Reserved[5]; /* off 0x0008 */ unsigned __int64 InstanceId; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long NextOffset; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c0 */ struct _LUID OriginatingLogonSession; /* off 0x00c8 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0150 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01d8 */ struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION* pSecurityAttributes; /* off 0x01dc */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long SecurityAttributeCount; /* off 0x0004 */ struct _LIST_ENTRY SecurityAttributesList; /* off 0x000c */ unsigned long WorkingSecurityAttributeCount; /* off 0x0010 */ struct _LIST_ENTRY WorkingSecurityAttributesList; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ void* SecurityDescriptorQuotaBlock; }; struct _OBJECT_HEADER_PROCESS_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* ExclusiveProcess; /* off 0x0004 */ unsigned long Reserved; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ long ReferenceCount; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x000f */ unsigned char LockedExclusive; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ struct _KAFFINITY_EX Processors; /* off 0x0018 */ unsigned long SamplingPeriod; /* off 0x001c */ unsigned long CurrentTemperature; /* off 0x0020 */ unsigned long PassiveTripPoint; /* off 0x0024 */ unsigned long CriticalTripPoint; /* off 0x0028 */ unsigned char ActiveTripPointCount; /* off 0x002c */ unsigned long ActiveTripPoint[10]; /* off 0x0054 */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; /* off 0x0008 */ unsigned long Tag; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 00000048 72 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; /* off 0x003c */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0044 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x001c */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001140 4416 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; union { /* off 0x0004 */ struct _KGUARDED_MUTEX PagedLock; /* off 0x0004 */ unsigned long NonPagedLock; }; /* off 0x0040 */ long RunningAllocs; /* off 0x0044 */ long RunningDeAllocs; /* off 0x0048 */ long TotalBigPages; /* off 0x004c */ long ThreadsProcessingDeferrals; /* off 0x0050 */ unsigned long TotalBytes; /* off 0x0080 */ unsigned long PoolIndex; /* off 0x00c0 */ long TotalPages; /* off 0x0100 */ void** PendingFrees; /* off 0x0104 */ long PendingFreeDepth; /* off 0x0140 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000278 632 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ unsigned long Number; /* off 0x0038 */ unsigned char ShareVector; /* off 0x0039 */ char Pad[3]; /* off 0x003c */ enum _KINTERRUPT_MODE Mode; /* off 0x0040 */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0044 */ unsigned long ServiceCount; /* off 0x0048 */ unsigned long DispatchCount; /* off 0x0050 */ unsigned __int64 Rsvd1; /* off 0x0058 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ unsigned long CmKcbCacheSize; /* off 0x001c */ struct _CMHIVE* CmHive2; /* off 0x0020 */ unsigned char HiveMounted; /* off 0x0021 */ unsigned char ThreadFinished; /* off 0x0022 */ unsigned char ThreadStarted; /* off 0x0023 */ unsigned char Allocate; /* off 0x0024 */ unsigned char WinPERequired; /* off 0x0028 */ struct _KEVENT StartEvent; /* off 0x0038 */ struct _KEVENT FinishedEvent; /* off 0x0048 */ struct _KEVENT MountLock; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ struct _ETHREAD* Thread; /* off 0x0008 */ void* StackTrace[62]; }; struct _LAZY_WRITER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _KDPC ScanDpc; /* off 0x0020 */ struct _KTIMER ScanTimer; /* off 0x0048 */ unsigned char ScanActive; /* off 0x0049 */ unsigned char OtherWork; /* off 0x004a */ unsigned char PendingTeardownScan; /* off 0x004b */ unsigned char PendingPeriodicScan; /* off 0x004c */ unsigned char PendingLowMemoryScan; /* off 0x004d */ unsigned char PendingPowerScan; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; struct _IO_WORKITEM /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ void( __stdcall *Routine)(void*,void*,struct _IO_WORKITEM*); /* off 0x0014 */ void* IoObject; /* off 0x0018 */ void* Context; /* off 0x001c */ unsigned long Type; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_LSASS_ID =0x0000008a ,//0 DPFLTR_SSPICLI_ID =0x0000008b ,//0 DPFLTR_CNG_ID =0x0000008c ,//0 DPFLTR_EXFAT_ID =0x0000008d ,//0 DPFLTR_FILETRACE_ID =0x0000008e ,//0 DPFLTR_XSAVE_ID =0x0000008f ,//0 DPFLTR_SE_ID =0x00000090 ,//0 DPFLTR_DRIVEEXTENDER_ID =0x00000091 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000092 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined =0x00000000 ,//0 CmResourceShareDeviceExclusive =0x00000001 ,//0 CmResourceShareDriverExclusive =0x00000002 ,//0 CmResourceShareShared =0x00000003 ,//0 }; struct _ALIGNED_AFFINITY_SUMMARY /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX CpuSet; /* off 0x000c */ struct _KAFFINITY_EX SMTSet; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; /* off 0x0078 */ unsigned long ActivityCounter; /* off 0x007c */ unsigned long PreviousActivityCounter; /* off 0x0080 */ unsigned long WorkerTrimRequests; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x008c */ struct _DIAGNOSTIC_CONTEXT* WakeReason; /* off 0x0090 */ struct _LIST_ENTRY WakeTimerListEntry; }; struct _DIAGNOSTIC_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0004 */ struct _EPROCESS* Process; /* off 0x0008 */ unsigned long ServiceTag; }; struct { /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; }; }; /* off 0x000c */ unsigned long ReasonSize; }; enum _REQUESTER_TYPE { KernelRequester =0x00000000 ,//0 UserProcessRequester =0x00000001 ,//0 UserSharedServiceRequester =0x00000002 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POWER_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE_METRICS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _ERESOURCE MetricsResource; /* off 0x0038 */ unsigned long ActiveCount; /* off 0x003c */ unsigned long PassiveCount; /* off 0x0040 */ union _LARGE_INTEGER LastActiveStartTick; /* off 0x0048 */ union _LARGE_INTEGER AverageActiveTime; /* off 0x0050 */ union _LARGE_INTEGER LastPassiveStartTick; /* off 0x0058 */ union _LARGE_INTEGER AveragePassiveTime; /* off 0x0060 */ union _LARGE_INTEGER StartTickSinceLastReset; }; struct _POP_THERMAL_ZONE /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; /* off 0x00e0 */ union _LARGE_INTEGER InfoLastUpdateTime; /* off 0x00e8 */ struct _POP_THERMAL_ZONE_METRICS Metrics; }; enum POWER_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPoolPaged =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaSpecialPoolNonPaged =0x0000000d ,//0 MiVaMaximumType =0x0000000e ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct _VF_AVL_TREE_NODE /* sizeof 00000008 8 */ { /* off 0x0000 */ void* p; /* off 0x0004 */ unsigned long RangeSize; }; struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VERIFIER_SHARED_EXPORT_THUNK* SharedExportThunks; /* off 0x0004 */ struct _VERIFIER_SHARED_EXPORT_THUNK* PoolSharedExportThunks; /* off 0x0008 */ struct _VERIFIER_SHARED_EXPORT_THUNK* OrderDependentSharedExportThunks; }; struct _VF_TARGET_DRIVER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _VF_AVL_TREE_NODE TreeNode; /* off 0x0008 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SnapSharedExportsFailed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; } u1; /* off 0x0014 */ struct _VF_TARGET_VERIFIED_DRIVER_DATA* VerifiedData; }; struct _VERIFIER_SHARED_EXPORT_THUNK /* sizeof 00000000 0 */ { }; struct _VF_TARGET_VERIFIED_DRIVER_DATA /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _VF_SUSPECT_DRIVER_ENTRY* SuspectDriverEntry; /* off 0x0004 */ void* WMICallback; /* off 0x0008 */ struct _LIST_ENTRY EtwHandlesListHead; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MissedEtwRegistration:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0014 */ unsigned long Signature; /* off 0x0018 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0020 */ union _SLIST_HEADER PoolTrackers; /* off 0x0028 */ unsigned long CurrentPagedPoolAllocations; /* off 0x002c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0030 */ unsigned long PeakPagedPoolAllocations; /* off 0x0034 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0038 */ unsigned long PagedBytes; /* off 0x003c */ unsigned long NonPagedBytes; /* off 0x0040 */ unsigned long PeakPagedBytes; /* off 0x0044 */ unsigned long PeakNonPagedBytes; /* off 0x0048 */ unsigned long RaiseIrqls; /* off 0x004c */ unsigned long AcquireSpinLocks; /* off 0x0050 */ unsigned long SynchronizeExecutions; /* off 0x0054 */ unsigned long AllocationsWithNoTag; /* off 0x0058 */ unsigned long AllocationsFailed; /* off 0x005c */ unsigned long AllocationsFailedDeliberately; /* off 0x0060 */ unsigned long LockedBytes; /* off 0x0064 */ unsigned long PeakLockedBytes; /* off 0x0068 */ unsigned long MappedLockedBytes; /* off 0x006c */ unsigned long PeakMappedLockedBytes; /* off 0x0070 */ unsigned long MappedIoSpaceBytes; /* off 0x0074 */ unsigned long PeakMappedIoSpaceBytes; /* off 0x0078 */ unsigned long PagesForMdlBytes; /* off 0x007c */ unsigned long PeakPagesForMdlBytes; /* off 0x0080 */ unsigned long ContiguousMemoryBytes; /* off 0x0084 */ unsigned long PeakContiguousMemoryBytes; /* off 0x0088 */ struct _LIST_ENTRY ContiguousMemoryListHead; }; struct _VF_SUSPECT_DRIVER_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _KWAIT_STATE { WaitInProgress =0x00000000 ,//0 WaitCommitted =0x00000001 ,//0 WaitAborted =0x00000002 ,//0 MaximumWaitState =0x00000003 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct _POP_SYSTEM_IDLE /* sizeof 00000038 56 */ { /* off 0x0000 */ long AverageIdleness; /* off 0x0004 */ long LowestIdleness; /* off 0x0008 */ unsigned long Time; /* off 0x000c */ unsigned long Timeout; /* off 0x0010 */ unsigned long LastUserInput; /* off 0x0014 */ struct POWER_ACTION_POLICY Action; /* off 0x0020 */ enum _SYSTEM_POWER_STATE MinState; /* off 0x0024 */ unsigned char SystemRequired; /* off 0x0025 */ unsigned char IdleWorker; /* off 0x0026 */ unsigned char Sampling; /* off 0x0028 */ unsigned __int64 LastTick; /* off 0x0030 */ unsigned long LastSystemRequiredTime; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _ETW_WMITRACE_WORK /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long LoggerId; union { struct { /* off 0x0008 */ char LoggerName[65]; /* off 0x0049 */ char FileName[129]; /* off 0x00cc */ unsigned long MaximumFileSize; /* off 0x00d0 */ unsigned long MinBuffers; /* off 0x00d4 */ unsigned long MaxBuffers; /* off 0x00d8 */ unsigned long BufferSize; /* off 0x00dc */ unsigned long Mode; /* off 0x00e0 */ unsigned long FlushTimer; }; struct { /* off 0x0008 */ unsigned __int64 MatchAny; /* off 0x0010 */ unsigned __int64 MatchAll; /* off 0x0018 */ unsigned long EnableProperty; /* off 0x001c */ struct _GUID Guid; /* off 0x002c */ unsigned char Level; }; }; /* off 0x00e8 */ long Status; }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _PNP_DEVICE_COMPLETION_REQUEST /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_NODE* DeviceNode; /* off 0x000c */ void* Context; /* off 0x0010 */ enum _PNP_DEVNODE_STATE CompletionState; /* off 0x0014 */ unsigned long IrpPended; /* off 0x0018 */ long Status; /* off 0x001c */ void* Information; /* off 0x0020 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0030 */ struct _DRIVER_OBJECT* FailingDriver; /* off 0x0034 */ long ReferenceCount; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 0 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; } Flags; /* off 0x0030 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x003c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long PStateContext; /* off 0x0044 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0048 */ unsigned long TStateContext; /* off 0x004c */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x0050 */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0058 */ struct _PPM_PERF_STATE State[1]; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000b0 176 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POWER_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ unsigned __int64 ProgrammedRTCTime; /* off 0x0058 */ unsigned char WakeOnRTC; /* off 0x005c */ struct _DIAGNOSTIC_BUFFER* WakeTimerInfo; /* off 0x0060 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000170 368 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[9]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0190 */ struct _LIST_ENTRY Pending; /* off 0x0198 */ long Status; /* off 0x019c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x01a0 */ unsigned char Waking; /* off 0x01a1 */ unsigned char Cancelled; /* off 0x01a2 */ unsigned char IgnoreErrors; /* off 0x01a3 */ unsigned char IgnoreNotImplemented; /* off 0x01a4 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_HIBER_CONTEXT /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char Reset; /* off 0x0004 */ unsigned char HiberFlags; /* off 0x0005 */ unsigned char WroteHiberFile; /* off 0x0006 */ unsigned char MapFrozen; /* off 0x0008 */ struct _RTL_BITMAP MemoryMap; /* off 0x0010 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0018 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0020 */ unsigned long ClonedRangeCount; /* off 0x0024 */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0028 */ unsigned long NextPreserve; /* off 0x002c */ struct _MDL* LoaderMdl; /* off 0x0030 */ struct _MDL* AllocatedMdl; /* off 0x0038 */ unsigned __int64 PagesOut; /* off 0x0040 */ void* IoPages; /* off 0x0044 */ unsigned long IoPagesCount; /* off 0x0048 */ void* CurrentMcb; /* off 0x004c */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0050 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0054 */ unsigned long PreferredIoWriteSize; /* off 0x0058 */ unsigned long IoProgress; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ void* CompressionWorkspace; /* off 0x0074 */ unsigned char* CompressedWriteBuffer; /* off 0x0078 */ unsigned long CompressedWriteBufferSize; /* off 0x007c */ unsigned long MaxCompressedOutputSize; /* off 0x0080 */ unsigned long* PerformanceStats; /* off 0x0084 */ void* CompressionBlock; /* off 0x0088 */ void* DmaIO; /* off 0x008c */ void* TemporaryHeap; /* off 0x0090 */ struct _MDL* BootLoaderLogMdl; /* off 0x0094 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x0098 */ void* ResumeContext; /* off 0x009c */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct _PO_HIBER_PERF /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 ElapsedTicks; /* off 0x0020 */ unsigned __int64 CompressTicks; /* off 0x0028 */ unsigned __int64 ResumeAppTime; /* off 0x0030 */ unsigned __int64 HiberFileResumeTime; /* off 0x0038 */ unsigned __int64 BytesCopied; /* off 0x0040 */ unsigned __int64 PagesProcessed; /* off 0x0048 */ unsigned long PagesWritten; /* off 0x004c */ unsigned long DumpCount; /* off 0x0050 */ unsigned long FileRuns; }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long FirstTablePage; /* off 0x0050 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00a8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00ac */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00b0 */ unsigned long NoBootLoaderLogPages; /* off 0x00b4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00d4 */ unsigned long NotUsed; /* off 0x00d8 */ unsigned long ResumeContextCheck; /* off 0x00dc */ unsigned long ResumeContextPages; }; struct _DIAGNOSTIC_BUFFER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0008 */ unsigned long ProcessImageNameOffset; union { struct { /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ unsigned long ServiceTag; }; struct { /* off 0x0008 */ unsigned long DeviceDescriptionOffset; }; struct { /* off 0x000c */ unsigned long DevicePathOffset; }; }; }; }; /* off 0x0014 */ unsigned long ReasonOffset; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ unsigned long SessionId; /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL_PTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _MMPTE FreePteHead; /* off 0x0004 */ struct _MMPTE FreePteTail; }; struct _MI_SPECIAL_POOL /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ unsigned long Lock; /* off 0x0008 */ struct _MI_SPECIAL_POOL_PTE_LIST Paged; /* off 0x0010 */ struct _MI_SPECIAL_POOL_PTE_LIST NonPaged; /* off 0x0018 */ long PagesInUse; /* off 0x001c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Hint; /* off 0x0010 */ struct _MMPTE* BasePte; /* off 0x0014 */ unsigned long* FailureCount; /* off 0x0018 */ struct _MMSUPPORT* Vm; /* off 0x001c */ long TotalSystemPtes; /* off 0x0020 */ long TotalFreeSystemPtes; /* off 0x0024 */ long CachedPteCount; /* off 0x0028 */ unsigned long PteFailures; union { /* off 0x002c */ unsigned long SpinLock; /* off 0x002c */ struct _KGUARDED_MUTEX* GlobalMutex; }; }; struct _MM_SESSION_SPACE /* sizeof 00002000 8192 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0050 */ struct _LIST_ENTRY ImageList; /* off 0x0058 */ unsigned long LocaleId; /* off 0x005c */ unsigned long AttachCount; /* off 0x0060 */ struct _KGATE AttachGate; /* off 0x0070 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0ddc */ struct _MMWSLE* Wsle; /* off 0x0de0 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0e00 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1f40 */ struct _MMPTE* PageTables; /* off 0x1f44 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1f68 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1f88 */ long PoolBigEntriesInUse; /* off 0x1f8c */ unsigned long PagedPoolPdeCount; /* off 0x1f90 */ unsigned long SpecialPoolPdeCount; /* off 0x1f94 */ unsigned long DynamicSessionPdeCount; /* off 0x1f98 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1fc8 */ void* PoolTrackTableExpansion; /* off 0x1fcc */ unsigned long PoolTrackTableExpansionSize; /* off 0x1fd0 */ void* PoolTrackBigPages; /* off 0x1fd4 */ unsigned long PoolTrackBigPagesSize; /* off 0x1fd8 */ enum _IO_SESSION_STATE IoState; /* off 0x1fdc */ unsigned long IoStateSequence; /* off 0x1fe0 */ struct _KEVENT IoNotificationEvent; /* off 0x1ff0 */ struct _RTL_BITMAP SessionPoolPdes; /* off 0x1ff8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _MMVIEW /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; /* off 0x0008 */ struct _LIST_ENTRY ViewLinks; /* off 0x0010 */ void* SessionViewVa; /* off 0x0014 */ unsigned long SessionId; }; enum _IO_SESSION_STATE { IoSessionStateCreated =0x00000001 ,//0 IoSessionStateInitialized =0x00000002 ,//0 IoSessionStateConnected =0x00000003 ,//0 IoSessionStateDisconnected =0x00000004 ,//0 IoSessionStateDisconnectedLoggedOn =0x00000005 ,//0 IoSessionStateLoggedOn =0x00000006 ,//0 IoSessionStateLoggedOff =0x00000007 ,//0 IoSessionStateTerminated =0x00000008 ,//0 IoSessionStateMax =0x00000009 ,//0 }; union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR_SECTION /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockInStackQueuedSpinLock =0x00000006 ,//0 VfDeadlockUnusedSpinLock =0x00000007 ,//0 VfDeadlockEresource =0x00000008 ,//0 VfDeadlockTypeMaximum =0x00000009 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; /* off 0x001c */ unsigned char ThreadUsesEresources; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; struct _PNP_DEVICE_ACTION_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ enum _PNP_DEVICE_ACTION_REQUEST RequestType; /* off 0x0010 */ unsigned char ReorderingBarrier; /* off 0x0014 */ unsigned long RequestArgument; /* off 0x0018 */ struct _KEVENT* CompletionEvent; /* off 0x001c */ long* CompletionStatus; }; enum _PNP_DEVICE_ACTION_REQUEST { AssignResources =0x00000000 ,//0 ClearDeviceProblem =0x00000001 ,//0 ClearProblem =0x00000002 ,//0 ClearEjectProblem =0x00000003 ,//0 HaltDevice =0x00000004 ,//0 QueryPowerRelations =0x00000005 ,//0 Rebalance =0x00000006 ,//0 ReenumerateBootDevices =0x00000007 ,//0 ReenumerateDeviceOnly =0x00000008 ,//0 ReenumerateDeviceTree =0x00000009 ,//0 ReenumerateRootDevices =0x0000000a ,//0 RequeryDeviceState =0x0000000b ,//0 ResetDevice =0x0000000c ,//0 ResourceRequirementsChanged =0x0000000d ,//0 RestartEnumeration =0x0000000e ,//0 SetDeviceProblem =0x0000000f ,//0 StartDevice =0x00000010 ,//0 StartSystemDevicesPass0 =0x00000011 ,//0 StartSystemDevicesPass1 =0x00000012 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _VF_KE_CRITICAL_REGION_TRACE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[7]; }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; enum _KWAIT_BLOCK_STATE { WaitBlockBypassStart =0x00000000 ,//0 WaitBlockBypassComplete =0x00000001 ,//0 WaitBlockActive =0x00000002 ,//0 WaitBlockInactive =0x00000003 ,//0 WaitBlockAllStates =0x00000004 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _VF_AVL_TREE /* sizeof 00000040 64 */ { /* off 0x0000 */ long Lock; /* off 0x0004 */ void* NodeToFree; /* off 0x0008 */ unsigned long NodeRangeSize; /* off 0x000c */ unsigned long NodeCount; /* off 0x0010 */ struct _VF_AVL_TABLE* Tables; /* off 0x0014 */ unsigned long TablesNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NodeSize; /* off 0x0000 */ unsigned long UseLookaside; } u1; }; struct _VF_AVL_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE RtlTable; /* off 0x0038 */ struct _VF_AVL_TREE_NODE* ReservedNode; }; enum _KPROCESS_STATE { ProcessInMemory =0x00000000 ,//0 ProcessOutOfMemory =0x00000001 ,//0 ProcessInTransition =0x00000002 ,//0 ProcessOutTransition =0x00000003 ,//0 ProcessInSwap =0x00000004 ,//0 ProcessOutSwap =0x00000005 ,//0 ProcessAllSwapStates =0x00000006 ,//0 }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; enum _WORKING_SET_TYPE { WorkingSetTypeUser =0x00000000 ,//0 WorkingSetTypeSession =0x00000001 ,//0 WorkingSetTypeSystemTypes =0x00000002 ,//0 WorkingSetTypeSystemCache =0x00000002 ,//0 WorkingSetTypePagedPool =0x00000003 ,//0 WorkingSetTypeSystemPtes =0x00000004 ,//0 WorkingSetTypeMaximum =0x00000005 ,//0 }; struct _VF_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VF_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VF_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; struct _VF_WATCHDOG_IRP /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _IRP* Irp; /* off 0x000c */ unsigned long DueTickCount; /* off 0x0010 */ unsigned char Inserted; /* off 0x0011 */ char TrackedStackLocation; /* off 0x0012 */ unsigned short CancelTimeoutTicks; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _FILE_OBJECT_EXTENSION_TYPE { FoExtTypeTransactionParams =0x00000000 ,//0 FoExtTypeDeviceObjectHint =0x00000001 ,//0 FoExtTypeIosbRange =0x00000002 ,//0 FoExtTypeGeneric =0x00000003 ,//0 FoExtTypeSfio =0x00000004 ,//0 FoExtTypeSymlink =0x00000005 ,//0 FoExtTypeOplockKey =0x00000006 ,//0 MaxFoExtTypes =0x00000007 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000024 36 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_5.1.2600.2180.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct __unnamed /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct __unnamed u; /* off 0x0000 */ __int64 QuadPart; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct __unnamed u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned long Spare0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __cdecl *KernelRoutine)(struct _KAPC*,void( __cdecl **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __cdecl *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __cdecl *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Absolute; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char Inserted; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned short WaitType; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001c0 448 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListHead; /* off 0x0018 */ void* InitialStack; /* off 0x001c */ void* StackLimit; /* off 0x0020 */ void* Teb; /* off 0x0024 */ void* TlsArray; /* off 0x0028 */ void* KernelStack; /* off 0x002c */ unsigned char DebugActive; /* off 0x002d */ unsigned char State; /* off 0x002e */ unsigned char Alerted[2]; /* off 0x0030 */ unsigned char Iopl; /* off 0x0031 */ unsigned char NpxState; /* off 0x0032 */ char Saturation; /* off 0x0033 */ char Priority; /* off 0x0034 */ struct _KAPC_STATE ApcState; /* off 0x004c */ unsigned long ContextSwitches; /* off 0x0050 */ unsigned char IdleSwapBlock; /* off 0x0051 */ unsigned char Spare0[3]; /* off 0x0054 */ long WaitStatus; /* off 0x0058 */ unsigned char WaitIrql; /* off 0x0059 */ char WaitMode; /* off 0x005a */ unsigned char WaitNext; /* off 0x005b */ unsigned char WaitReason; /* off 0x005c */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0060 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0060 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0068 */ unsigned long WaitTime; /* off 0x006c */ char BasePriority; /* off 0x006d */ unsigned char DecrementCount; /* off 0x006e */ char PriorityDecrement; /* off 0x006f */ char Quantum; /* off 0x0070 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x00d0 */ void* LegoData; /* off 0x00d4 */ unsigned long KernelApcDisable; /* off 0x00d8 */ unsigned long UserAffinity; /* off 0x00dc */ unsigned char SystemAffinityActive; /* off 0x00dd */ unsigned char PowerState; /* off 0x00de */ unsigned char NpxIrql; /* off 0x00df */ unsigned char InitialNode; /* off 0x00e0 */ void* ServiceTable; /* off 0x00e4 */ struct _KQUEUE* Queue; /* off 0x00e8 */ unsigned long ApcQueueLock; /* off 0x00f0 */ struct _KTIMER Timer; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ unsigned long SoftAffinity; /* off 0x0124 */ unsigned long Affinity; /* off 0x0128 */ unsigned char Preempted; /* off 0x0129 */ unsigned char ProcessReadyQueue; /* off 0x012a */ unsigned char KernelStackResident; /* off 0x012b */ unsigned char NextProcessor; /* off 0x012c */ void* CallbackStack; /* off 0x0130 */ void* Win32Thread; /* off 0x0134 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0138 */ struct _KAPC_STATE* ApcStatePointer[2]; /* off 0x0140 */ char PreviousMode; /* off 0x0141 */ unsigned char EnableStackSwap; /* off 0x0142 */ unsigned char LargeStack; /* off 0x0143 */ unsigned char ResourceIndex; /* off 0x0144 */ unsigned long KernelTime; /* off 0x0148 */ unsigned long UserTime; /* off 0x014c */ struct _KAPC_STATE SavedApcState; /* off 0x0164 */ unsigned char Alertable; /* off 0x0165 */ unsigned char ApcStateIndex; /* off 0x0166 */ unsigned char ApcQueueable; /* off 0x0167 */ unsigned char AutoAlignment; /* off 0x0168 */ void* StackBase; /* off 0x016c */ struct _KAPC SuspendApc; /* off 0x019c */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01b0 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01b8 */ char FreezeCount; /* off 0x01b9 */ char SuspendCount; /* off 0x01ba */ unsigned char IdealProcessor; /* off 0x01bb */ unsigned char DisableBoost; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ struct __unnamed HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Spare:2 /* start bit 6 */; }; struct _KPROCESS /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase[2]; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Iopl; /* off 0x0033 */ unsigned char Unused; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; /* off 0x0060 */ unsigned short StackCount; /* off 0x0062 */ char BasePriority; /* off 0x0063 */ char ThreadQuantum; /* off 0x0064 */ unsigned char AutoAlignment; /* off 0x0065 */ unsigned char State; /* off 0x0066 */ unsigned char ThreadSeed; /* off 0x0067 */ unsigned char DisableBoost; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char DisableQuantum; /* off 0x006a */ unsigned char IdealNode; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Importance; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __cdecl *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ unsigned long* Lock; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned long TempSegCs; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __cdecl *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueContextSwapLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMaximumLock =0x0000000f ,//0 }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ struct __unnamed U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct PROCESSOR_IDLE_TIMES /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; /* off 0x0010 */ unsigned long IdleHandlerReserved[4]; }; struct _PROCESSOR_POWER_STATE /* sizeof 00000120 288 */ { /* off 0x0000 */ void( __fastcall *IdleFunction)(struct _PROCESSOR_POWER_STATE*); /* off 0x0004 */ unsigned long Idle0KernelTimeLimit; /* off 0x0008 */ unsigned long Idle0LastTime; /* off 0x000c */ void* IdleHandlers; /* off 0x0010 */ void* IdleState; /* off 0x0014 */ unsigned long IdleHandlersCount; /* off 0x0018 */ unsigned __int64 LastCheck; /* off 0x0020 */ struct PROCESSOR_IDLE_TIMES IdleTimes; /* off 0x0040 */ unsigned long IdleTime1; /* off 0x0044 */ unsigned long PromotionCheck; /* off 0x0048 */ unsigned long IdleTime2; /* off 0x004c */ unsigned char CurrentThrottle; /* off 0x004d */ unsigned char ThermalThrottleLimit; /* off 0x004e */ unsigned char CurrentThrottleIndex; /* off 0x004f */ unsigned char ThermalThrottleIndex; /* off 0x0050 */ unsigned long LastKernelUserTime; /* off 0x0054 */ unsigned long LastIdleThreadKernelTime; /* off 0x0058 */ unsigned long PackageIdleStartTime; /* off 0x005c */ unsigned long PackageIdleTime; /* off 0x0060 */ unsigned long DebugCount; /* off 0x0064 */ unsigned long LastSysTime; /* off 0x0068 */ unsigned __int64 TotalIdleStateTime[3]; /* off 0x0080 */ unsigned long TotalIdleTransitions[3]; /* off 0x0090 */ unsigned __int64 PreviousC3StateTime; /* off 0x0098 */ unsigned char KneeThrottleIndex; /* off 0x0099 */ unsigned char ThrottleLimitIndex; /* off 0x009a */ unsigned char PerfStatesCount; /* off 0x009b */ unsigned char ProcessorMinThrottle; /* off 0x009c */ unsigned char ProcessorMaxThrottle; /* off 0x009d */ unsigned char EnableIdleAccounting; /* off 0x009e */ unsigned char LastC3Percentage; /* off 0x009f */ unsigned char LastAdjustedBusyPercentage; /* off 0x00a0 */ unsigned long PromotionCount; /* off 0x00a4 */ unsigned long DemotionCount; /* off 0x00a8 */ unsigned long ErrorCount; /* off 0x00ac */ unsigned long RetryCount; /* off 0x00b0 */ unsigned long Flags; /* off 0x00b8 */ union _LARGE_INTEGER PerfCounterFrequency; /* off 0x00c0 */ unsigned long PerfTickCount; /* off 0x00c8 */ struct _KTIMER PerfTimer; /* off 0x00f0 */ struct _KDPC PerfDpc; /* off 0x0110 */ struct PROCESSOR_PERF_STATE* PerfStates; /* off 0x0114 */ long( __fastcall *PerfSetThrottle)(unsigned char); /* off 0x0118 */ unsigned long LastC3KernelUserTime; /* off 0x011c */ unsigned long LastPackageIdleTime; }; struct _KPRCB /* sizeof 00000c50 3152 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ char Number; /* off 0x0011 */ char Reserved; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; /* off 0x001a */ unsigned short CpuStep; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned char PrcbPad0[92]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[16]; /* off 0x0498 */ unsigned char PrcbPad1[8]; /* off 0x04a0 */ struct _KTHREAD* NpxThread; /* off 0x04a4 */ unsigned long InterruptCount; /* off 0x04a8 */ unsigned long KernelTime; /* off 0x04ac */ unsigned long UserTime; /* off 0x04b0 */ unsigned long DpcTime; /* off 0x04b4 */ unsigned long DebugDpcTime; /* off 0x04b8 */ unsigned long InterruptTime; /* off 0x04bc */ unsigned long AdjustDpcThreshold; /* off 0x04c0 */ unsigned long PageColor; /* off 0x04c4 */ unsigned long SkipTick; /* off 0x04c8 */ unsigned char MultiThreadSetBusy; /* off 0x04c9 */ unsigned char Spare2[3]; /* off 0x04cc */ struct _KNODE* ParentNode; /* off 0x04d0 */ unsigned long MultiThreadProcessorSet; /* off 0x04d4 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x04d8 */ unsigned long ThreadStartCount[2]; /* off 0x04e0 */ unsigned long CcFastReadNoWait; /* off 0x04e4 */ unsigned long CcFastReadWait; /* off 0x04e8 */ unsigned long CcFastReadNotPossible; /* off 0x04ec */ unsigned long CcCopyReadNoWait; /* off 0x04f0 */ unsigned long CcCopyReadWait; /* off 0x04f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x04f8 */ unsigned long KeAlignmentFixupCount; /* off 0x04fc */ unsigned long KeContextSwitches; /* off 0x0500 */ unsigned long KeDcacheFlushCount; /* off 0x0504 */ unsigned long KeExceptionDispatchCount; /* off 0x0508 */ unsigned long KeFirstLevelTbFills; /* off 0x050c */ unsigned long KeFloatingEmulationCount; /* off 0x0510 */ unsigned long KeIcacheFlushCount; /* off 0x0514 */ unsigned long KeSecondLevelTbFills; /* off 0x0518 */ unsigned long KeSystemCalls; /* off 0x051c */ unsigned long SpareCounter0[1]; /* off 0x0520 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x05a0 */ struct _PP_LOOKASIDE_LIST PPNPagedLookasideList[32]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPPagedLookasideList[32]; /* off 0x07a0 */ unsigned long PacketBarrier; /* off 0x07a4 */ unsigned long ReverseStall; /* off 0x07a8 */ void* IpiFrame; /* off 0x07ac */ unsigned char PrcbPad2[52]; /* off 0x07e0 */ void* CurrentPacket[3]; /* off 0x07ec */ unsigned long TargetSet; /* off 0x07f0 */ void( __cdecl *WorkerRoutine)(void*,void*,void*,void*); /* off 0x07f4 */ unsigned long IpiFrozen; /* off 0x07f8 */ unsigned char PrcbPad3[40]; /* off 0x0820 */ unsigned long RequestSummary; /* off 0x0824 */ struct _KPRCB* SignalDone; /* off 0x0828 */ unsigned char PrcbPad4[56]; /* off 0x0860 */ struct _LIST_ENTRY DpcListHead; /* off 0x0868 */ void* DpcStack; /* off 0x086c */ unsigned long DpcCount; /* off 0x0870 */ unsigned long DpcQueueDepth; /* off 0x0874 */ unsigned long DpcRoutineActive; /* off 0x0878 */ unsigned long DpcInterruptRequested; /* off 0x087c */ unsigned long DpcLastCount; /* off 0x0880 */ unsigned long DpcRequestRate; /* off 0x0884 */ unsigned long MaximumDpcQueueDepth; /* off 0x0888 */ unsigned long MinimumDpcRate; /* off 0x088c */ unsigned long QuantumEnd; /* off 0x0890 */ unsigned char PrcbPad5[16]; /* off 0x08a0 */ unsigned long DpcLock; /* off 0x08a4 */ unsigned char PrcbPad6[28]; /* off 0x08c0 */ struct _KDPC CallDpc; /* off 0x08e0 */ void* ChainedInterruptList; /* off 0x08e4 */ long LookasideIrpFloat; /* off 0x08e8 */ unsigned long SpareFields0[6]; /* off 0x0900 */ unsigned char VendorString[13]; /* off 0x090d */ unsigned char InitialApicId; /* off 0x090e */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x0910 */ unsigned long MHz; /* off 0x0914 */ unsigned long FeatureBits; /* off 0x0918 */ union _LARGE_INTEGER UpdateSignature; /* off 0x0920 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x0b30 */ struct _PROCESSOR_POWER_STATE PowerState; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable; }; struct _KNODE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long ProcessorMask; /* off 0x0004 */ unsigned long Color; /* off 0x0008 */ unsigned long MmShiftedColor; /* off 0x000c */ unsigned long FreeCount[2]; /* off 0x0018 */ union _SLIST_HEADER DeadStackList; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x002c */ unsigned char Seed; /* off 0x002d */ struct _flags Flags; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; /* off 0x0028 */ void*( __cdecl *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); /* off 0x002c */ void( __cdecl *Free)(void*); /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct PROCESSOR_PERF_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char PercentFrequency; /* off 0x0001 */ unsigned char MinCapacity; /* off 0x0002 */ unsigned short Power; /* off 0x0004 */ unsigned char IncreaseLevel; /* off 0x0005 */ unsigned char DecreaseLevel; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long IncreaseTime; /* off 0x000c */ unsigned long DecreaseTime; /* off 0x0010 */ unsigned long IncreaseCount; /* off 0x0014 */ unsigned long DecreaseCount; /* off 0x0018 */ unsigned __int64 PerformanceTime; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Event; /* off 0x001c */ unsigned long OldIrql; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideMaximumList =0x00000007 ,//0 }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Waiting:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Exclusive:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Shared:30 /* start bit 2 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KEVENT WakeEvent; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ unsigned long ShareCount; /* off 0x0018 */ unsigned char Exclusive; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _ETHREAD /* sizeof 00000258 600 */ { /* off 0x0000 */ struct _KTHREAD Tcb; union { /* off 0x01c0 */ union _LARGE_INTEGER CreateTime; struct { /* off 0x01c0 */ unsigned int NestedFaultCount:2 /* start bit 0 */; /* off 0x01c0 */ unsigned int ApcNeeded:1 /* start bit 2 */; }; }; union { /* off 0x01c8 */ union _LARGE_INTEGER ExitTime; /* off 0x01c8 */ struct _LIST_ENTRY LpcReplyChain; /* off 0x01c8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01d0 */ long ExitStatus; /* off 0x01d0 */ void* OfsChain; }; /* off 0x01d4 */ struct _LIST_ENTRY PostBlockList; union { /* off 0x01dc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01dc */ struct _ETHREAD* ReaperLink; /* off 0x01dc */ void* KeyedWaitValue; }; /* off 0x01e0 */ unsigned long ActiveTimerListLock; /* off 0x01e4 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x01ec */ struct _CLIENT_ID Cid; union { /* off 0x01f4 */ struct _KSEMAPHORE LpcReplySemaphore; /* off 0x01f4 */ struct _KSEMAPHORE KeyedWaitSemaphore; }; union { /* off 0x0208 */ void* LpcReplyMessage; /* off 0x0208 */ void* LpcWaitingOnPort; }; /* off 0x020c */ struct _PS_IMPERSONATION_INFORMATION* ImpersonationInfo; /* off 0x0210 */ struct _LIST_ENTRY IrpList; /* off 0x0218 */ unsigned long TopLevelIrp; /* off 0x021c */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x0220 */ struct _EPROCESS* ThreadsProcess; /* off 0x0224 */ void* StartAddress; union { /* off 0x0228 */ void* Win32StartAddress; /* off 0x0228 */ unsigned long LpcReceivedMessageId; }; /* off 0x022c */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0234 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0238 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x023c */ unsigned long LpcReplyMessageId; /* off 0x0240 */ unsigned long ReadClusterSize; /* off 0x0244 */ unsigned long GrantedAccess; union { /* off 0x0248 */ unsigned long CrossThreadFlags; struct { /* off 0x0248 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0248 */ unsigned long DeadThread:1 /* start bit 1 */; /* off 0x0248 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0248 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0248 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0248 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0248 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0248 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0248 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; }; }; union { /* off 0x024c */ unsigned long SameThreadPassiveFlags; struct { /* off 0x024c */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x024c */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x024c */ unsigned long MemoryMaker:1 /* start bit 2 */; }; }; union { /* off 0x0250 */ unsigned long SameThreadApcFlags; struct { /* off 0x0250 */ unsigned char LpcReceivedMsgIdValid:1 /* start bit 0 */; /* off 0x0250 */ unsigned char LpcExitThreadCalled:1 /* start bit 1 */; /* off 0x0250 */ unsigned char AddressSpaceOwner:1 /* start bit 2 */; }; }; /* off 0x0254 */ unsigned char ForwardClusterOnly; /* off 0x0255 */ unsigned char DisablePageFaultClustering; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _PS_IMPERSONATION_INFORMATION /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* Token; /* off 0x0004 */ unsigned char CopyOnOpen; /* off 0x0005 */ unsigned char EffectiveOnly; /* off 0x0008 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ struct __unnamed Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __cdecl *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __cdecl *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __cdecl *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __cdecl * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __cdecl *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __cdecl *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __cdecl *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __cdecl *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __cdecl *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __cdecl *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __cdecl *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __cdecl *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __cdecl *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __cdecl *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __cdecl *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __cdecl *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __cdecl *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct __unnamed AcquireForModifiedPageWriter; /* off 0x0000 */ struct __unnamed ReleaseForModifiedPageWriter; /* off 0x0000 */ struct __unnamed AcquireForSectionSynchronization; /* off 0x0000 */ struct __unnamed Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned short VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __cdecl *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __cdecl *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __cdecl *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __cdecl *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __cdecl *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __cdecl *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __cdecl *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __cdecl *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __cdecl *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __cdecl *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __cdecl *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __cdecl *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __cdecl *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __cdecl *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __cdecl *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __cdecl *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __cdecl *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __cdecl *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __cdecl *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __cdecl *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __cdecl *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __cdecl *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __cdecl *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __cdecl *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __cdecl *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __cdecl *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __cdecl *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingTrimmed:1 /* start bit 1 */; /* off 0x0000 */ unsigned int SessionLeader:1 /* start bit 2 */; /* off 0x0000 */ unsigned int TrimHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned int WorkingSetHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned int AddressSpaceBeingDeleted:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Available:10 /* start bit 6 */; /* off 0x0000 */ unsigned int AllowWorkingSetAdjustment:8 /* start bit 16 */; /* off 0x0000 */ unsigned int MemoryPriority:8 /* start bit 24 */; }; struct _MMSUPPORT /* sizeof 00000040 64 */ { /* off 0x0000 */ union _LARGE_INTEGER LastTrimTime; /* off 0x0008 */ struct _MMSUPPORT_FLAGS Flags; /* off 0x000c */ unsigned long PageFaultCount; /* off 0x0010 */ unsigned long PeakWorkingSetSize; /* off 0x0014 */ unsigned long WorkingSetSize; /* off 0x0018 */ unsigned long MinimumWorkingSetSize; /* off 0x001c */ unsigned long MaximumWorkingSetSize; /* off 0x0020 */ struct _MMWSL* VmWorkingSetList; /* off 0x0024 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x002c */ unsigned long Claim; /* off 0x0030 */ unsigned long NextEstimationSlot; /* off 0x0034 */ unsigned long NextAgingSlot; /* off 0x0038 */ unsigned long EstimatedAvailable; /* off 0x003c */ unsigned long GrowthSinceLastEstimate; }; struct _EPROCESS /* sizeof 00000260 608 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x006c */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0070 */ union _LARGE_INTEGER CreateTime; /* off 0x0078 */ union _LARGE_INTEGER ExitTime; /* off 0x0080 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0084 */ void* UniqueProcessId; /* off 0x0088 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x0090 */ unsigned long QuotaUsage[3]; /* off 0x009c */ unsigned long QuotaPeak[3]; /* off 0x00a8 */ unsigned long CommitCharge; /* off 0x00ac */ unsigned long PeakVirtualSize; /* off 0x00b0 */ unsigned long VirtualSize; /* off 0x00b4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00bc */ void* DebugPort; /* off 0x00c0 */ void* ExceptionPort; /* off 0x00c4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00c8 */ struct _EX_FAST_REF Token; /* off 0x00cc */ struct _FAST_MUTEX WorkingSetLock; /* off 0x00ec */ unsigned long WorkingSetPage; /* off 0x00f0 */ struct _FAST_MUTEX AddressCreationLock; /* off 0x0110 */ unsigned long HyperSpaceLock; /* off 0x0114 */ struct _ETHREAD* ForkInProgress; /* off 0x0118 */ unsigned long HardwareTrigger; /* off 0x011c */ void* VadRoot; /* off 0x0120 */ void* VadHint; /* off 0x0124 */ void* CloneRoot; /* off 0x0128 */ unsigned long NumberOfPrivatePages; /* off 0x012c */ unsigned long NumberOfLockedPages; /* off 0x0130 */ void* Win32Process; /* off 0x0134 */ struct _EJOB* Job; /* off 0x0138 */ void* SectionObject; /* off 0x013c */ void* SectionBaseAddress; /* off 0x0140 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x0144 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0148 */ void* Win32WindowStation; /* off 0x014c */ void* InheritedFromUniqueProcessId; /* off 0x0150 */ void* LdtInformation; /* off 0x0154 */ void* VadFreeHint; /* off 0x0158 */ void* VdmObjects; /* off 0x015c */ void* DeviceMap; /* off 0x0160 */ struct _LIST_ENTRY PhysicalVadList; union { /* off 0x0168 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0168 */ unsigned __int64 Filler; }; /* off 0x0170 */ void* Session; /* off 0x0174 */ unsigned char ImageFileName[16]; /* off 0x0184 */ struct _LIST_ENTRY JobLinks; /* off 0x018c */ void* LockedPagesList; /* off 0x0190 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0198 */ void* SecurityPort; /* off 0x019c */ void* PaeTop; /* off 0x01a0 */ unsigned long ActiveThreads; /* off 0x01a4 */ unsigned long GrantedAccess; /* off 0x01a8 */ unsigned long DefaultHardErrorProcessing; /* off 0x01ac */ long LastThreadExitStatus; /* off 0x01b0 */ struct _PEB* Peb; /* off 0x01b4 */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01b8 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01c8 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01d0 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01d8 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01e0 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01e8 */ unsigned long CommitChargeLimit; /* off 0x01ec */ unsigned long CommitChargePeak; /* off 0x01f0 */ void* AweInfo; /* off 0x01f4 */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01f8 */ struct _MMSUPPORT Vm; /* off 0x0238 */ unsigned long LastFaultCount; /* off 0x023c */ unsigned long ModifiedPageCount; /* off 0x0240 */ unsigned long NumberOfVads; /* off 0x0244 */ unsigned long JobStatus; union { /* off 0x0248 */ unsigned long Flags; struct { /* off 0x0248 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0248 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0248 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0248 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0248 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0248 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0248 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0248 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0248 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0248 */ unsigned long HasPhysicalVad:1 /* start bit 9 */; /* off 0x0248 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0248 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0248 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0248 */ unsigned long SessionCreationUnderway:1 /* start bit 14 */; /* off 0x0248 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0248 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0248 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0248 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0248 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0248 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0248 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0248 */ unsigned long Unused3:1 /* start bit 22 */; /* off 0x0248 */ unsigned long Unused4:1 /* start bit 23 */; /* off 0x0248 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0248 */ unsigned long Unused:5 /* start bit 25 */; /* off 0x0248 */ unsigned long Unused1:1 /* start bit 30 */; /* off 0x0248 */ unsigned long Unused2:1 /* start bit 31 */; }; }; /* off 0x024c */ long ExitStatus; /* off 0x0250 */ unsigned short NextPageColor; union { struct { /* off 0x0252 */ unsigned char SubSystemMinorVersion; /* off 0x0253 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0252 */ unsigned short SubSystemVersion; }; }; /* off 0x0254 */ unsigned char PriorityClass; /* off 0x0255 */ unsigned char WorkingSetAcquiredUnsafe; /* off 0x0258 */ unsigned long Cookie; }; struct _HANDLE_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleTableLock[4]; /* off 0x001c */ struct _LIST_ENTRY HandleTableList; /* off 0x0024 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x0028 */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x002c */ long ExtraInfoPages; /* off 0x0030 */ unsigned long FirstFree; /* off 0x0034 */ unsigned long LastFree; /* off 0x0038 */ unsigned long NextHandleNeedingPool; /* off 0x003c */ long HandleCount; union { /* off 0x0040 */ unsigned long Flags; /* off 0x0040 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00050004 327684 */ { /* off 0x0000 */ unsigned long CurrentStackIndex; /* off 0x0004 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[4096]; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerThreads[2]; /* off 0x0028 */ unsigned long ContentionCount; /* off 0x002c */ unsigned short NumberOfSharedWaiters; /* off 0x002e */ unsigned short NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; struct _IO_COUNTERS /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned __int64 ReadOperationCount; /* off 0x0008 */ unsigned __int64 WriteOperationCount; /* off 0x0010 */ unsigned __int64 OtherOperationCount; /* off 0x0018 */ unsigned __int64 ReadTransferCount; /* off 0x0020 */ unsigned __int64 WriteTransferCount; /* off 0x0028 */ unsigned __int64 OtherTransferCount; }; struct _EJOB /* sizeof 00000180 384 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ unsigned long UIRestrictionsClass; /* off 0x00b4 */ unsigned long SecurityLimitFlags; /* off 0x00b8 */ void* Token; /* off 0x00bc */ struct _PS_JOB_TOKEN_FILTER* Filter; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ struct _IO_COUNTERS IoInfo; /* off 0x0138 */ unsigned long ProcessMemoryLimit; /* off 0x013c */ unsigned long JobMemoryLimit; /* off 0x0140 */ unsigned long PeakProcessMemoryUsed; /* off 0x0144 */ unsigned long PeakJobMemoryUsed; /* off 0x0148 */ unsigned long CurrentJobMemoryUsed; /* off 0x014c */ struct _FAST_MUTEX MemoryLimitsLock; /* off 0x016c */ struct _LIST_ENTRY JobSetLinks; /* off 0x0174 */ unsigned long MemberLevel; /* off 0x0178 */ unsigned long JobFlags; }; struct _PS_JOB_TOKEN_FILTER /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long CapturedSidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* CapturedSids; /* off 0x0008 */ unsigned long CapturedSidsLength; /* off 0x000c */ unsigned long CapturedGroupCount; /* off 0x0010 */ struct _SID_AND_ATTRIBUTES* CapturedGroups; /* off 0x0014 */ unsigned long CapturedGroupsLength; /* off 0x0018 */ unsigned long CapturedPrivilegeCount; /* off 0x001c */ struct _LUID_AND_ATTRIBUTES* CapturedPrivileges; /* off 0x0020 */ unsigned long CapturedPrivilegesLength; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _EPROCESS_QUOTA_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Usage; /* off 0x0004 */ unsigned long Limit; /* off 0x0008 */ unsigned long Peak; /* off 0x000c */ unsigned long Return; }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _EPROCESS_QUOTA_ENTRY QuotaEntry[3]; /* off 0x0030 */ struct _LIST_ENTRY QuotaList; /* off 0x0038 */ unsigned long ReferenceCount; /* off 0x003c */ unsigned long ProcessCount; }; struct _PROCESS_WS_WATCH_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ void* FaultingPc; /* off 0x0004 */ void* FaultingVa; }; struct _PAGEFAULT_HISTORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long CurrentIndex; /* off 0x0004 */ unsigned long MaxIndex; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ void* Reserved; /* off 0x0010 */ struct _PROCESS_WS_WATCH_INFORMATION WatchInfo[1]; }; struct _PEB /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; /* off 0x0003 */ unsigned char SpareBool; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* FastPebLockRoutine; /* off 0x0024 */ void* FastPebUnlockRoutine; /* off 0x0028 */ unsigned long EnvironmentUpdateCount; /* off 0x002c */ void* KernelCallbackTable; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long AtlThunkSListPtr32; /* off 0x0038 */ struct _PEB_FREE_BLOCK* FreeList; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* ReadOnlySharedMemoryHeap; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ void* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ImageProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __cdecl *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ void* ActivationContextData; /* off 0x01fc */ void* ProcessAssemblyStorageMap; /* off 0x0200 */ void* SystemDefaultActivationContextData; /* off 0x0204 */ void* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; }; struct _PEB_LDR_DATA /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000290 656 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Spare[2]; }; struct _PEB_FREE_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _PEB_FREE_BLOCK* Next; /* off 0x0004 */ unsigned long Size; }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000cfc 3324 */ { /* off 0x0000 */ unsigned long Quota; /* off 0x0004 */ unsigned long FirstFree; /* off 0x0008 */ unsigned long FirstDynamic; /* off 0x000c */ unsigned long LastEntry; /* off 0x0010 */ unsigned long NextSlot; /* off 0x0014 */ struct _MMWSLE* Wsle; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NonDirectCount; /* off 0x0020 */ struct _MMWSLE_HASH* HashTable; /* off 0x0024 */ unsigned long HashTableSize; /* off 0x0028 */ unsigned long NumberOfCommittedPageTables; /* off 0x002c */ void* HashTableStart; /* off 0x0030 */ void* HighestPermittedHashAddress; /* off 0x0034 */ unsigned long NumberOfImageWaiters; /* off 0x0038 */ unsigned long VadBitMapHint; /* off 0x003c */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c3c */ unsigned long CommittedPageTables[48]; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ struct __unnamed u1; }; struct _MMWSLE_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct __unnamed AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ struct __unnamed Overlay; /* off 0x0038 */ void( __cdecl *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ struct __unnamed Tail; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __cdecl *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; struct _DEVOBJ_EXTENSION /* sizeof 0000002c 44 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long ConservationIdleTime; /* off 0x0008 */ unsigned long PerformanceIdleTime; /* off 0x000c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0010 */ struct _LIST_ENTRY IdleList; /* off 0x0018 */ unsigned char DeviceType; /* off 0x001c */ enum _DEVICE_POWER_STATE State; /* off 0x0020 */ struct _LIST_ENTRY NotifySourceList; /* off 0x0028 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x0030 */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0044 */ struct _LIST_ENTRY Volume; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned char UseDefaultObject; /* off 0x0003 */ unsigned char CaseInsensitive; /* off 0x0004 */ unsigned long InvalidAttributes; /* off 0x0008 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0018 */ unsigned long ValidAccessMask; /* off 0x001c */ unsigned char SecurityRequired; /* off 0x001d */ unsigned char MaintainHandleCount; /* off 0x001e */ unsigned char MaintainTypeList; /* off 0x0020 */ enum _POOL_TYPE PoolType; /* off 0x0024 */ unsigned long DefaultPagedPoolCharge; /* off 0x0028 */ unsigned long DefaultNonPagedPoolCharge; /* off 0x002c */ void( __cdecl *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0030 */ long( __cdecl *OpenProcedure)(enum _OB_OPEN_REASON,struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x0034 */ void( __cdecl *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x0038 */ void( __cdecl *DeleteProcedure)(void*); /* off 0x003c */ long( __cdecl *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0040 */ long( __cdecl *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*); /* off 0x0044 */ long( __cdecl *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*); /* off 0x0048 */ unsigned char( __cdecl *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000190 400 */ { /* off 0x0000 */ struct _ERESOURCE Mutex; /* off 0x0038 */ struct _LIST_ENTRY TypeList; /* off 0x0040 */ struct _UNICODE_STRING Name; /* off 0x0048 */ void* DefaultObject; /* off 0x004c */ unsigned long Index; /* off 0x0050 */ unsigned long TotalNumberOfObjects; /* off 0x0054 */ unsigned long TotalNumberOfHandles; /* off 0x0058 */ unsigned long HighWaterNumberOfObjects; /* off 0x005c */ unsigned long HighWaterNumberOfHandles; /* off 0x0060 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x00ac */ unsigned long Key; /* off 0x00b0 */ struct _ERESOURCE ObjectLocks[4]; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ struct __unnamed Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ struct __unnamed u; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ struct __unnamed u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _VACB /* sizeof 00000018 24 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ struct __unnamed Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long Available:14 /* start bit 18 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; }; struct _SHARED_CACHE_MAP /* sizeof 00000130 304 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _FILE_OBJECT* FileObject; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __cdecl *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ struct _EX_PUSH_LOCK VacbPushLock; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __cdecl *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __cdecl *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __cdecl *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __cdecl *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short PreviousSize; }; struct { /* off 0x0000 */ void* SubSegmentCode; }; }; /* off 0x0004 */ unsigned char SmallTagIndex; /* off 0x0005 */ unsigned char Flags; /* off 0x0006 */ unsigned char UnusedBytes; /* off 0x0007 */ unsigned char SegmentIndex; }; struct _HEAP /* sizeof 00000588 1416 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long Signature; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long ForceFlags; /* off 0x0014 */ unsigned long VirtualMemoryThreshold; /* off 0x0018 */ unsigned long SegmentReserve; /* off 0x001c */ unsigned long SegmentCommit; /* off 0x0020 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0024 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0028 */ unsigned long TotalFreeSize; /* off 0x002c */ unsigned long MaximumAllocationSize; /* off 0x0030 */ unsigned short ProcessHeapsListIndex; /* off 0x0032 */ unsigned short HeaderValidateLength; /* off 0x0034 */ void* HeaderValidateCopy; /* off 0x0038 */ unsigned short NextAvailableTagIndex; /* off 0x003a */ unsigned short MaximumTagIndex; /* off 0x003c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0040 */ struct _HEAP_UCR_SEGMENT* UCRSegments; /* off 0x0044 */ struct _HEAP_UNCOMMMTTED_RANGE* UnusedUnCommittedRanges; /* off 0x0048 */ unsigned long AlignRound; /* off 0x004c */ unsigned long AlignMask; /* off 0x0050 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x0058 */ struct _HEAP_SEGMENT* Segments[64]; /* off 0x0158 */ struct __unnamed u; /* off 0x0168 */ struct __unnamed u2; /* off 0x016a */ unsigned short AllocatorBackTraceIndex; /* off 0x016c */ unsigned long NonDedicatedListLength; /* off 0x0170 */ void* LargeBlocksIndex; /* off 0x0174 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x0178 */ struct _LIST_ENTRY FreeLists[128]; /* off 0x0578 */ struct _HEAP_LOCK* LockVariable; /* off 0x057c */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x0580 */ void* FrontEndHeap; /* off 0x0584 */ unsigned short FrontHeapLockCount; /* off 0x0586 */ unsigned char FrontEndHeapType; /* off 0x0587 */ unsigned char LastSegmentIndex; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ unsigned short TagName[24]; }; struct _HEAP_UCR_SEGMENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _HEAP_UCR_SEGMENT* Next; /* off 0x0004 */ unsigned long ReservedSize; /* off 0x0008 */ unsigned long CommittedSize; /* off 0x000c */ unsigned long filler; }; struct _HEAP_UNCOMMMTTED_RANGE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _HEAP_UNCOMMMTTED_RANGE* Next; /* off 0x0004 */ unsigned long Address; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long filler; }; struct _HEAP_SEGMENT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long Signature; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _HEAP* Heap; /* off 0x0014 */ unsigned long LargestUnCommittedRange; /* off 0x0018 */ void* BaseAddress; /* off 0x001c */ unsigned long NumberOfPages; /* off 0x0020 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0024 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x0028 */ unsigned long NumberOfUnCommittedPages; /* off 0x002c */ unsigned long NumberOfUnCommittedRanges; /* off 0x0030 */ struct _HEAP_UNCOMMMTTED_RANGE* UnCommittedRanges; /* off 0x0034 */ unsigned short AllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _HEAP_ENTRY* LastEntryInSegment; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000038 56 */ { /* off 0x0000 */ struct __unnamed Lock; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Bucket; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short FreeThreshold; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* HeapHandle; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY LRUViewList; /* off 0x0008 */ struct _LIST_ENTRY PinViewList; /* off 0x0010 */ unsigned long FileOffset; /* off 0x0014 */ unsigned long Size; /* off 0x0018 */ unsigned long* ViewAddress; /* off 0x001c */ void* Bcb; /* off 0x0020 */ unsigned long UseCount; }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ struct _EPROCESS* ProcessBilled; /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ void* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 00000110 272 */ { /* off 0x0000 */ unsigned long Nodes[2]; /* off 0x0008 */ unsigned long Resources[2]; /* off 0x0010 */ unsigned long Threads[2]; /* off 0x0018 */ __int64 TimeAcquire; /* off 0x0020 */ __int64 TimeRelease; /* off 0x0028 */ unsigned long BytesAllocated; /* off 0x002c */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0030 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x0034 */ unsigned long AllocationFailures; /* off 0x0038 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x003c */ unsigned long NodesTrimmedBasedOnCount; /* off 0x0040 */ unsigned long NodesSearched; /* off 0x0044 */ unsigned long MaxNodesSearched; /* off 0x0048 */ unsigned long SequenceNumber; /* off 0x004c */ unsigned long RecursionDepthLimit; /* off 0x0050 */ unsigned long SearchedNodesLimit; /* off 0x0054 */ unsigned long DepthLimitHits; /* off 0x0058 */ unsigned long SearchLimitHits; /* off 0x005c */ unsigned long ABC_ACB_Skipped; /* off 0x0060 */ struct _LIST_ENTRY FreeResourceList; /* off 0x0068 */ struct _LIST_ENTRY FreeThreadList; /* off 0x0070 */ struct _LIST_ENTRY FreeNodeList; /* off 0x0078 */ unsigned long FreeResourceCount; /* off 0x007c */ unsigned long FreeThreadCount; /* off 0x0080 */ unsigned long FreeNodeCount; /* off 0x0084 */ void* Instigator; /* off 0x0088 */ unsigned long NumberOfParticipants; /* off 0x008c */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x010c */ unsigned long CacheReductionInProgress; }; struct _VI_DEADLOCK_NODE /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0024 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0024 */ unsigned long SequenceNumber:30 /* start bit 2 */; /* off 0x0028 */ void* StackTrace[8]; /* off 0x0048 */ void* ParentStackTrace[8]; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockFastMutex =0x00000002 ,//0 VfDeadlockFastMutexUnsafe =0x00000003 ,//0 VfDeadlockSpinLock =0x00000004 ,//0 VfDeadlockQueuedSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; enum _PF_SCENARIO_TYPE { PfApplicationLaunchScenarioType =0x00000000 ,//0 PfSystemBootScenarioType =0x00000001 ,//0 PfMaxScenarioType =0x00000002 ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _SEGMENT_OBJECT /* sizeof 00000030 48 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _LARGE_CONTROL_AREA* LargeControlArea; /* off 0x0024 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0028 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _CONTROL_AREA /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned short NumberOfSubsections; /* off 0x001a */ unsigned short FlushInProgressCount; /* off 0x001c */ unsigned long NumberOfUserReferences; /* off 0x0020 */ struct __unnamed u; /* off 0x0024 */ struct _FILE_OBJECT* FilePointer; /* off 0x0028 */ struct _EVENT_COUNTER* WaitingForDeletion; /* off 0x002c */ unsigned short ModifiedWriteCount; /* off 0x002e */ unsigned short NumberOfSystemCacheViews; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct __unnamed u; }; struct _SEGMENT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ unsigned long NonExtendedPtes; /* off 0x000c */ unsigned long WritableUserReferences; /* off 0x0010 */ unsigned __int64 SizeOfSegment; /* off 0x0018 */ struct _MMPTE SegmentPteTemplate; /* off 0x0020 */ unsigned long NumberOfCommittedPages; /* off 0x0024 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0028 */ void* SystemImageBase; /* off 0x002c */ void* BasedAddress; /* off 0x0030 */ struct __unnamed u1; /* off 0x0034 */ struct __unnamed u2; /* off 0x0038 */ struct _MMPTE* PrototypePte; /* off 0x0040 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _EVENT_COUNTER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long RefCount; /* off 0x0008 */ struct _KEVENT Event; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct __unnamed u; /* off 0x0008 */ unsigned long StartingSector; /* off 0x000c */ unsigned long NumberOfFullSectors; /* off 0x0010 */ struct _MMPTE* SubsectionBase; /* off 0x0014 */ unsigned long UnusedPtes; /* off 0x0018 */ unsigned long PtesInSubsection; /* off 0x001c */ struct _SUBSECTION* NextSubsection; }; struct _LARGE_CONTROL_AREA /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned short NumberOfSubsections; /* off 0x001a */ unsigned short FlushInProgressCount; /* off 0x001c */ unsigned long NumberOfUserReferences; /* off 0x0020 */ struct __unnamed u; /* off 0x0024 */ struct _FILE_OBJECT* FilePointer; /* off 0x0028 */ struct _EVENT_COUNTER* WaitingForDeletion; /* off 0x002c */ unsigned short ModifiedWriteCount; /* off 0x002e */ unsigned short NumberOfSystemCacheViews; /* off 0x0030 */ unsigned long StartingFrame; /* off 0x0034 */ struct _LIST_ENTRY UserGlobalList; /* off 0x003c */ unsigned long SessionId; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int NoCache:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int FloppyMedia:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int DebugSymbolsLoaded:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int HadUserReference:1 /* start bit 24 */; /* off 0x0000 */ unsigned int ImageMappedInSystemSpace:1 /* start bit 25 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 27 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 28 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 29 */; /* off 0x0000 */ unsigned int filler:2 /* start bit 30 */; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned int ReadWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned int SubsectionStatic:1 /* start bit 2 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 3 */; /* off 0x0000 */ unsigned int Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned int LargePages:1 /* start bit 9 */; /* off 0x0000 */ unsigned int StartingSector4132:10 /* start bit 10 */; /* off 0x0000 */ unsigned int SectorEndOffset:12 /* start bit 20 */; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long Reserved[2]; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __cdecl *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; struct _HIVE_LIST_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short* Name; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ struct _CMHIVE* CmHive; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _CMHIVE* CmHive2; /* off 0x0014 */ unsigned char ThreadFinished; /* off 0x0015 */ unsigned char ThreadStarted; /* off 0x0016 */ unsigned char Allocate; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _DUAL /* sizeof 000000dc 220 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _RTL_BITMAP FreeDisplay[24]; /* off 0x00d0 */ unsigned long FreeSummary; /* off 0x00d4 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __cdecl *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __cdecl *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __cdecl *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __cdecl *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __cdecl *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __cdecl *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __cdecl *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __cdecl *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned char RealWrites; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char Log; /* off 0x0044 */ unsigned long HiveFlags; /* off 0x0048 */ unsigned long LogSize; /* off 0x004c */ unsigned long RefreshCount; /* off 0x0050 */ unsigned long StorageTypeCount; /* off 0x0054 */ unsigned long Version; /* off 0x0058 */ struct _DUAL Storage[2]; }; struct _CMHIVE /* sizeof 0000049c 1180 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x0210 */ void* FileHandles[3]; /* off 0x021c */ struct _LIST_ENTRY NotifyList; /* off 0x0224 */ struct _LIST_ENTRY HiveList; /* off 0x022c */ struct _FAST_MUTEX* HiveLock; /* off 0x0230 */ struct _FAST_MUTEX* ViewLock; /* off 0x0234 */ struct _LIST_ENTRY LRUViewListHead; /* off 0x023c */ struct _LIST_ENTRY PinViewListHead; /* off 0x0244 */ struct _FILE_OBJECT* FileObject; /* off 0x0248 */ struct _UNICODE_STRING FileFullPath; /* off 0x0250 */ struct _UNICODE_STRING FileUserName; /* off 0x0258 */ unsigned short MappedViews; /* off 0x025a */ unsigned short PinnedViews; /* off 0x025c */ unsigned long UseCount; /* off 0x0260 */ unsigned long SecurityCount; /* off 0x0264 */ unsigned long SecurityCacheSize; /* off 0x0268 */ long SecurityHitHint; /* off 0x026c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0270 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0470 */ struct _KEVENT* UnloadEvent; /* off 0x0474 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x0478 */ unsigned char Frozen; /* off 0x047c */ struct _WORK_QUEUE_ITEM* UnloadWorkItem; /* off 0x0480 */ unsigned char GrowOnlyMode; /* off 0x0484 */ unsigned long GrowOffset; /* off 0x0488 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x0490 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0498 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ unsigned short Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ unsigned short Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ unsigned short KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ unsigned long Reserved1[99]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[894]; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned short RefCount; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned long ExtFlags:8 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 8 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 9 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:12 /* start bit 10 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0040 */ unsigned short KcbMaxNameLen; /* off 0x0042 */ unsigned short KcbMaxValueNameLen; /* off 0x0044 */ unsigned long KcbMaxValueDataLen; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ unsigned short Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ unsigned short Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __cdecl *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _DEVICE_NODE /* sizeof 00000118 280 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY* Notify; /* off 0x0018 */ enum _PNP_DEVNODE_STATE State; /* off 0x001c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0020 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x0070 */ unsigned long StateHistoryEntry; /* off 0x0074 */ long CompletionStatus; /* off 0x0078 */ struct _IRP* PendingIrp; /* off 0x007c */ unsigned long Flags; /* off 0x0080 */ unsigned long UserFlags; /* off 0x0084 */ unsigned long Problem; /* off 0x0088 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x008c */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x0090 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x0094 */ struct _UNICODE_STRING InstancePath; /* off 0x009c */ struct _UNICODE_STRING ServiceName; /* off 0x00a4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00a8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00ac */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00b0 */ unsigned long BusNumber; /* off 0x00b4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00b8 */ unsigned long ChildBusNumber; /* off 0x00bc */ unsigned short ChildBusTypeIndex; /* off 0x00be */ unsigned char RemovalPolicy; /* off 0x00bf */ unsigned char HardwareRemovalPolicy; /* off 0x00c0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00c8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x00d0 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x00d8 */ unsigned short NoTranslatorMask; /* off 0x00da */ unsigned short QueryTranslatorMask; /* off 0x00dc */ unsigned short NoArbiterMask; /* off 0x00de */ unsigned short QueryArbiterMask; /* off 0x00e0 */ struct __unnamed OverUsed1; /* off 0x00e4 */ struct __unnamed OverUsed2; /* off 0x00e8 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x00ec */ unsigned long CapabilityFlags; /* off 0x00f0 */ struct __unnamed DockInfo; /* off 0x0100 */ unsigned long DisableableDepends; /* off 0x0104 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x010c */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0114 */ unsigned long DriverUnloadRetryCount; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char WakeNeeded; /* off 0x000d */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ void* Node; /* off 0x0018 */ unsigned short* DeviceName; /* off 0x001c */ unsigned short* DriverName; /* off 0x0020 */ unsigned long ChildCount; /* off 0x0024 */ unsigned long ActiveChild; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ struct __unnamed u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 MaximumInterfaceType =0x00000010 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ struct __unnamed u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 00000d70 3440 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char DebugActive; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; struct _MMCOLOR_TABLES /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ void* Blink; /* off 0x0008 */ unsigned long Count; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _RTL_BITMAP* PagedPoolAllocationMap; /* off 0x0004 */ struct _RTL_BITMAP* EndOfPagedPoolBitmap; /* off 0x0008 */ struct _RTL_BITMAP* PagedPoolLargeSessionAllocationMap; /* off 0x000c */ struct _MMPTE* FirstPteForPagedPool; /* off 0x0010 */ struct _MMPTE* LastPteForPagedPool; /* off 0x0014 */ struct _MMPTE* NextPdeForPagedPoolExpansion; /* off 0x0018 */ unsigned long PagedPoolHint; /* off 0x001c */ unsigned long PagedPoolCommit; /* off 0x0020 */ unsigned long AllocatedPagedPool; }; struct _MMSESSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _FAST_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _FAST_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ char* SystemSpaceViewStart; /* off 0x0028 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x002c */ unsigned long SystemSpaceHashSize; /* off 0x0030 */ unsigned long SystemSpaceHashEntries; /* off 0x0034 */ unsigned long SystemSpaceHashKey; /* off 0x0038 */ struct _RTL_BITMAP* SystemSpaceBitMap; }; struct _POOL_DESCRIPTOR /* sizeof 00001028 4136 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ unsigned long RunningAllocs; /* off 0x000c */ unsigned long RunningDeAllocs; /* off 0x0010 */ unsigned long TotalPages; /* off 0x0014 */ unsigned long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void* PendingFrees; /* off 0x0024 */ long PendingFreeDepth; /* off 0x0028 */ struct _LIST_ENTRY ListHeads[512]; }; struct _MM_SESSION_SPACE /* sizeof 00001278 4728 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0004 */ struct __unnamed u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long SessionPageDirectoryIndex; /* off 0x0010 */ struct _MM_SESSION_SPACE* GlobalVirtualAddress; /* off 0x0014 */ struct _LIST_ENTRY ProcessList; /* off 0x001c */ unsigned long NonPagedPoolBytes; /* off 0x0020 */ unsigned long PagedPoolBytes; /* off 0x0024 */ unsigned long NonPagedPoolAllocations; /* off 0x0028 */ unsigned long PagedPoolAllocations; /* off 0x002c */ unsigned long NonPagablePages; /* off 0x0030 */ unsigned long CommittedPages; /* off 0x0038 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0040 */ struct _MMPTE* PageTables; /* off 0x0044 */ struct _FAST_MUTEX PagedPoolMutex; /* off 0x0064 */ void* PagedPoolStart; /* off 0x0068 */ void* PagedPoolEnd; /* off 0x006c */ struct _MMPTE* PagedPoolBasePde; /* off 0x0070 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0094 */ unsigned long Color; /* off 0x0098 */ unsigned long ProcessOutSwapCount; /* off 0x009c */ struct _LIST_ENTRY ImageList; /* off 0x00a4 */ struct _MMPTE* GlobalPteEntry; /* off 0x00a8 */ unsigned long CopyOnWriteCount; /* off 0x00ac */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x00bc */ unsigned long AttachCount; /* off 0x00c0 */ struct _KEVENT AttachEvent; /* off 0x00d0 */ struct _EPROCESS* LastProcess; /* off 0x00d8 */ struct _MMSUPPORT Vm; /* off 0x0118 */ struct _MMWSLE* Wsle; /* off 0x011c */ struct _ERESOURCE WsLock; /* off 0x0154 */ struct _LIST_ENTRY WsListEntry; /* off 0x015c */ struct _MMSESSION Session; /* off 0x0198 */ struct _DRIVER_OBJECT Win32KDriverObject; /* off 0x0240 */ struct _ETHREAD* WorkingSetLockOwner; /* off 0x0244 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x126c */ long ProcessReferenceToSession; /* off 0x1270 */ unsigned long LocaleId; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Filler0:3 /* start bit 1 */; /* off 0x0000 */ unsigned long HasWsLock:1 /* start bit 4 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Filler:26 /* start bit 6 */; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short PreviousSize; }; struct { /* off 0x0000 */ void* SubSegmentCode; }; }; /* off 0x0004 */ unsigned char SmallTagIndex; /* off 0x0005 */ unsigned char Flags; /* off 0x0006 */ unsigned char UnusedBytes; /* off 0x0007 */ unsigned char SegmentIndex; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Writable:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ struct __unnamed Data; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; struct _POP_ACTION_TRIGGER /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char Spare[3]; union { /* off 0x0008 */ struct __unnamed Battery; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x007c */ struct _IRP* Irp; /* off 0x0080 */ struct _THERMAL_INFORMATION Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyInitiatePowerActionAPI =0x00000003 ,//0 PolicySetPowerStateAPI =0x00000004 ,//0 PolicyImmediateDozeS4 =0x00000005 ,//0 PolicySystemIdle =0x00000006 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; struct _PROCESSOR_POWER_POLICY_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned long DemoteLimit; /* off 0x0008 */ unsigned long PromoteLimit; /* off 0x000c */ unsigned char DemotePercent; /* off 0x000d */ unsigned char PromotePercent; /* off 0x000e */ unsigned char Spare[2]; /* off 0x0010 */ unsigned long AllowDemotion:1 /* start bit 0 */; /* off 0x0010 */ unsigned long AllowPromotion:1 /* start bit 1 */; /* off 0x0010 */ unsigned long Reserved:30 /* start bit 2 */; }; struct _PROCESSOR_POWER_POLICY /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char DynamicThrottle; /* off 0x0005 */ unsigned char Spare[3]; /* off 0x0008 */ unsigned long DisableCStates:1 /* start bit 0 */; /* off 0x0008 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x000c */ unsigned long PolicyCount; /* off 0x0010 */ struct _PROCESSOR_POWER_POLICY_INFO Policy[3]; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ unsigned short Name[1]; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 Spare6 =0x00000019 ,//0 WrKernel =0x0000001a ,//0 MaximumWaitReason =0x0000001b ,//0 }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __cdecl *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _KUSER_SHARED_DATA /* sizeof 00000338 824 */ { /* off 0x0000 */ unsigned long TickCountLow; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ unsigned short NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long Reserved2[8]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; /* off 0x02f0 */ unsigned long TraceLogging; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _MMVAD_LONG /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long StartingVpn; /* off 0x0004 */ unsigned long EndingVpn; /* off 0x0008 */ struct _MMVAD* Parent; /* off 0x000c */ struct _MMVAD* LeftChild; /* off 0x0010 */ struct _MMVAD* RightChild; /* off 0x0014 */ struct __unnamed u; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _MMPTE* FirstPrototypePte; /* off 0x0020 */ struct _MMPTE* LastContiguousPte; /* off 0x0024 */ struct __unnamed u2; /* off 0x0028 */ struct __unnamed u3; /* off 0x0030 */ struct __unnamed u4; }; struct _MMVAD /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long StartingVpn; /* off 0x0004 */ unsigned long EndingVpn; /* off 0x0008 */ struct _MMVAD* Parent; /* off 0x000c */ struct _MMVAD* LeftChild; /* off 0x0010 */ struct _MMVAD* RightChild; /* off 0x0014 */ struct __unnamed u; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _MMPTE* FirstPrototypePte; /* off 0x0020 */ struct _MMPTE* LastContiguousPte; /* off 0x0024 */ struct __unnamed u2; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long PhysicalMapping:1 /* start bit 19 */; /* off 0x0000 */ unsigned long ImageMap:1 /* start bit 20 */; /* off 0x0000 */ unsigned long UserPhysicalPages:1 /* start bit 21 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 22 */; /* off 0x0000 */ unsigned long WriteWatch:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 29 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 30 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int ReadOnly:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StartVpn; /* off 0x0004 */ unsigned long EndVpn; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __cdecl *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long NumberOfPages; }; struct _PCI_SLOT_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct __unnamed u; }; struct PCI_POWER_STATE /* sizeof 00000040 64 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0004 */ enum _DEVICE_POWER_STATE CurrentDeviceState; /* off 0x0008 */ enum _SYSTEM_POWER_STATE SystemWakeLevel; /* off 0x000c */ enum _DEVICE_POWER_STATE DeviceWakeLevel; /* off 0x0010 */ enum _DEVICE_POWER_STATE SystemStateMapping[7]; /* off 0x002c */ struct _IRP* WaitWakeIrp; /* off 0x0030 */ void( __cdecl *SavedCancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ long Paging; /* off 0x0038 */ long Hibernate; /* off 0x003c */ long CrashDump; }; union PCI_HEADER_TYPE_DEPENDENT /* sizeof 00000004 4 */ { /* off 0x0000 */ struct __unnamed type0; /* off 0x0000 */ struct __unnamed type1; /* off 0x0000 */ struct __unnamed type2; }; struct _PCI_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Atom; /* off 0x0004 */ unsigned char OldIrql; }; struct _PM_SUPPORT /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Rsvd2:1 /* start bit 0 */; /* off 0x0000 */ unsigned char D1:1 /* start bit 1 */; /* off 0x0000 */ unsigned char D2:1 /* start bit 2 */; /* off 0x0000 */ unsigned char PMED0:1 /* start bit 3 */; /* off 0x0000 */ unsigned char PMED1:1 /* start bit 4 */; /* off 0x0000 */ unsigned char PMED2:1 /* start bit 5 */; /* off 0x0000 */ unsigned char PMED3Hot:1 /* start bit 6 */; /* off 0x0000 */ unsigned char PMED3Cold:1 /* start bit 7 */; }; struct _PCI_PMC /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char Version:3 /* start bit 0 */; /* off 0x0000 */ unsigned char PMEClock:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Rsvd1:1 /* start bit 4 */; /* off 0x0000 */ unsigned char DeviceSpecificInitialization:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Rsvd2:2 /* start bit 6 */; /* off 0x0001 */ struct _PM_SUPPORT Support; }; struct _PCI_PDO_EXTENSION /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PCI_PDO_EXTENSION* Next; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable; /* off 0x000c */ unsigned char DeviceState; /* off 0x000d */ unsigned char TentativeNextState; /* off 0x0010 */ struct _KEVENT SecondaryExtLock; /* off 0x0020 */ struct _PCI_SLOT_NUMBER Slot; /* off 0x0024 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0028 */ struct _PCI_FDO_EXTENSION* ParentFdoExtension; /* off 0x002c */ struct _SINGLE_LIST_ENTRY SecondaryExtension; /* off 0x0030 */ unsigned long BusInterfaceReferenceCount; /* off 0x0034 */ unsigned long AgpInterfaceReferenceCount; /* off 0x0038 */ unsigned short VendorId; /* off 0x003a */ unsigned short DeviceId; /* off 0x003c */ unsigned short SubsystemVendorId; /* off 0x003e */ unsigned short SubsystemId; /* off 0x0040 */ unsigned char RevisionId; /* off 0x0041 */ unsigned char ProgIf; /* off 0x0042 */ unsigned char SubClass; /* off 0x0043 */ unsigned char BaseClass; /* off 0x0044 */ unsigned char AdditionalResourceCount; /* off 0x0045 */ unsigned char AdjustedInterruptLine; /* off 0x0046 */ unsigned char InterruptPin; /* off 0x0047 */ unsigned char RawInterruptLine; /* off 0x0048 */ unsigned char CapabilitiesPtr; /* off 0x0049 */ unsigned char SavedLatencyTimer; /* off 0x004a */ unsigned char SavedCacheLineSize; /* off 0x004b */ unsigned char HeaderType; /* off 0x004c */ unsigned char NotPresent; /* off 0x004d */ unsigned char ReportedMissing; /* off 0x004e */ unsigned char ExpectedWritebackFailure; /* off 0x004f */ unsigned char NoTouchPmeEnable; /* off 0x0050 */ unsigned char LegacyDriver; /* off 0x0051 */ unsigned char UpdateHardware; /* off 0x0052 */ unsigned char MovedDevice; /* off 0x0053 */ unsigned char DisablePowerDown; /* off 0x0054 */ unsigned char NeedsHotPlugConfiguration; /* off 0x0055 */ unsigned char SwitchedIDEToNativeMode; /* off 0x0056 */ unsigned char BIOSAllowsIDESwitchToNativeMode; /* off 0x0057 */ unsigned char IoSpaceUnderNativeIdeControl; /* off 0x0058 */ unsigned char OnDebugPath; /* off 0x005c */ struct PCI_POWER_STATE PowerState; /* off 0x009c */ union PCI_HEADER_TYPE_DEPENDENT Dependent; /* off 0x00a0 */ unsigned __int64 HackFlags; /* off 0x00a8 */ struct PCI_FUNCTION_RESOURCES* Resources; /* off 0x00ac */ struct _PCI_FDO_EXTENSION* BridgeFdoExtension; /* off 0x00b0 */ struct _PCI_PDO_EXTENSION* NextBridge; /* off 0x00b4 */ struct _PCI_PDO_EXTENSION* NextHashEntry; /* off 0x00b8 */ struct _PCI_LOCK Lock; /* off 0x00c0 */ struct _PCI_PMC PowerCapabilities; /* off 0x00c2 */ unsigned char TargetAgpCapabilityId; /* off 0x00c4 */ unsigned short CommandEnables; /* off 0x00c6 */ unsigned short InitialCommand; }; enum PCI_SIGNATURE { PciPdoExtensionType =0x69635030 ,//0 PciFdoExtensionType =0x69635031 ,//0 PciArb_Io =0x69635032 ,//0 PciArb_Memory =0x69635033 ,//0 PciArb_Interrupt =0x69635034 ,//0 PciArb_BusNumber =0x69635035 ,//0 PciTrans_Interrupt =0x69635036 ,//0 PciInterface_BusHandler =0x69635037 ,//0 PciInterface_IntRouteHandler =0x69635038 ,//0 PciInterface_PciCb =0x69635039 ,//0 PciInterface_LegacyDeviceDetection =0x6963503a ,//0 PciInterface_PmeHandler =0x6963503b ,//0 PciInterface_DevicePresent =0x6963503c ,//0 PciInterface_NativeIde =0x6963503d ,//0 PciInterface_AgpTarget =0x6963503e ,//0 }; struct _PCI_MJ_DISPATCH_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long PnpIrpMaximumMinorFunction; /* off 0x0004 */ struct _PCI_MN_DISPATCH_TABLE* PnpIrpDispatchTable; /* off 0x0008 */ unsigned long PowerIrpMaximumMinorFunction; /* off 0x000c */ struct _PCI_MN_DISPATCH_TABLE* PowerIrpDispatchTable; /* off 0x0010 */ enum _PCI_DISPATCH_STYLE SystemControlIrpDispatchStyle; /* off 0x0014 */ long( __cdecl *SystemControlIrpDispatchFunction)(struct _IRP*,struct _IO_STACK_LOCATION*,struct _PCI_COMMON_EXTENSION*); /* off 0x0018 */ enum _PCI_DISPATCH_STYLE OtherIrpDispatchStyle; /* off 0x001c */ long( __cdecl *OtherIrpDispatchFunction)(struct _IRP*,struct _IO_STACK_LOCATION*,struct _PCI_COMMON_EXTENSION*); }; struct _PCI_MN_DISPATCH_TABLE /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PCI_DISPATCH_STYLE DispatchStyle; /* off 0x0004 */ long( __cdecl *DispatchFunction)(struct _IRP*,struct _IO_STACK_LOCATION*,struct _PCI_COMMON_EXTENSION*); }; enum _PCI_DISPATCH_STYLE { IRP_COMPLETE =0x00000000 ,//0 IRP_DOWNWARD =0x00000001 ,//0 IRP_UPWARD =0x00000002 ,//0 IRP_DISPATCH =0x00000003 ,//0 }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ struct __unnamed Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __cdecl *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _PCI_COMMON_EXTENSION /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable; /* off 0x000c */ unsigned char DeviceState; /* off 0x000d */ unsigned char TentativeNextState; /* off 0x0010 */ struct _KEVENT SecondaryExtLock; }; struct _PCI_FDO_EXTENSION /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY List; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable; /* off 0x000c */ unsigned char DeviceState; /* off 0x000d */ unsigned char TentativeNextState; /* off 0x0010 */ struct _KEVENT SecondaryExtLock; /* off 0x0020 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0024 */ struct _DEVICE_OBJECT* FunctionalDeviceObject; /* off 0x0028 */ struct _DEVICE_OBJECT* AttachedDeviceObject; /* off 0x002c */ struct _KEVENT ChildListLock; /* off 0x003c */ struct _PCI_PDO_EXTENSION* ChildPdoList; /* off 0x0040 */ struct _PCI_FDO_EXTENSION* BusRootFdoExtension; /* off 0x0044 */ struct _PCI_FDO_EXTENSION* ParentFdoExtension; /* off 0x0048 */ struct _PCI_PDO_EXTENSION* ChildBridgePdoList; /* off 0x004c */ struct _PCI_BUS_INTERFACE_STANDARD* PciBusInterface; /* off 0x0050 */ unsigned char MaxSubordinateBus; /* off 0x0054 */ struct _BUS_HANDLER* BusHandler; /* off 0x0058 */ unsigned char BaseBus; /* off 0x0059 */ unsigned char Fake; /* off 0x005a */ unsigned char ChildDelete; /* off 0x005b */ unsigned char Scanned; /* off 0x005c */ unsigned char ArbitersInitialized; /* off 0x005d */ unsigned char BrokenVideoHackApplied; /* off 0x005e */ unsigned char Hibernated; /* off 0x0060 */ struct PCI_POWER_STATE PowerState; /* off 0x00a0 */ struct _SINGLE_LIST_ENTRY SecondaryExtension; /* off 0x00a4 */ unsigned long ChildWaitWakeCount; /* off 0x00a8 */ struct _PCI_COMMON_CONFIG* PreservedConfig; /* off 0x00ac */ struct _PCI_LOCK Lock; /* off 0x00b4 */ struct __unnamed HotPlugParameters; /* off 0x00bc */ unsigned long BusHackFlags; }; struct _PCI_BUS_INTERFACE_STANDARD /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __cdecl *InterfaceReference)(void*); /* off 0x000c */ void( __cdecl *InterfaceDereference)(void*); /* off 0x0010 */ unsigned long( __cdecl *ReadConfig)(void*,unsigned char,unsigned long,void*,unsigned long,unsigned long); /* off 0x0014 */ unsigned long( __cdecl *WriteConfig)(void*,unsigned char,unsigned long,void*,unsigned long,unsigned long); /* off 0x0018 */ void( __cdecl *PinToLine)(void*,struct _PCI_COMMON_CONFIG*); /* off 0x001c */ void( __cdecl *LineToPin)(void*,struct _PCI_COMMON_CONFIG*,struct _PCI_COMMON_CONFIG*); }; struct _PCI_COMMON_CONFIG /* sizeof 00000100 256 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned short Command; /* off 0x0006 */ unsigned short Status; /* off 0x0008 */ unsigned char RevisionID; /* off 0x0009 */ unsigned char ProgIf; /* off 0x000a */ unsigned char SubClass; /* off 0x000b */ unsigned char BaseClass; /* off 0x000c */ unsigned char CacheLineSize; /* off 0x000d */ unsigned char LatencyTimer; /* off 0x000e */ unsigned char HeaderType; /* off 0x000f */ unsigned char BIST; /* off 0x0010 */ struct __unnamed u; /* off 0x0040 */ unsigned char DeviceSpecific[192]; }; struct _BUS_HANDLER /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ enum _BUS_DATA_TYPE ConfigurationType; /* off 0x000c */ unsigned long BusNumber; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ struct _BUS_HANDLER* ParentHandler; /* off 0x0018 */ void* BusData; /* off 0x001c */ unsigned long DeviceControlExtensionSize; /* off 0x0020 */ struct _SUPPORTED_RANGES* BusAddresses; /* off 0x0024 */ unsigned long Reserved[4]; /* off 0x0034 */ unsigned long( __cdecl *GetBusData)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,unsigned long,void*,unsigned long,unsigned long); /* off 0x0038 */ unsigned long( __cdecl *SetBusData)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,unsigned long,void*,unsigned long,unsigned long); /* off 0x003c */ long( __cdecl *AdjustResourceList)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,struct _IO_RESOURCE_REQUIREMENTS_LIST**); /* off 0x0040 */ long( __cdecl *AssignSlotResources)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,struct _UNICODE_STRING*,struct _UNICODE_STRING*,struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*,unsigned long,struct _CM_RESOURCE_LIST**); /* off 0x0044 */ unsigned long( __cdecl *GetInterruptVector)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,unsigned long,unsigned long,unsigned char*,unsigned long*); /* off 0x0048 */ unsigned char( __cdecl *TranslateBusAddress)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,union _LARGE_INTEGER,unsigned long*,union _LARGE_INTEGER*); /* off 0x004c */ void* Spare1; /* off 0x0050 */ void* Spare2; /* off 0x0054 */ void* Spare3; /* off 0x0058 */ void* Spare4; /* off 0x005c */ void* Spare5; /* off 0x0060 */ void* Spare6; /* off 0x0064 */ void* Spare7; /* off 0x0068 */ void* Spare8; }; enum _BUS_DATA_TYPE { ConfigurationSpaceUndefined =0xffffffff ,//-1 Cmos =0x00000000 ,//0 EisaConfiguration =0x00000001 ,//0 Pos =0x00000002 ,//0 CbusConfiguration =0x00000003 ,//0 PCIConfiguration =0x00000004 ,//0 VMEConfiguration =0x00000005 ,//0 NuBusConfiguration =0x00000006 ,//0 PCMCIAConfiguration =0x00000007 ,//0 MPIConfiguration =0x00000008 ,//0 MPSAConfiguration =0x00000009 ,//0 PNPISAConfiguration =0x0000000a ,//0 SgiInternalConfiguration =0x0000000b ,//0 MaximumBusDataType =0x0000000c ,//0 }; struct _SUPPORTED_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _SUPPORTED_RANGE* Next; /* off 0x0004 */ unsigned long SystemAddressSpace; /* off 0x0008 */ __int64 SystemBase; /* off 0x0010 */ __int64 Base; /* off 0x0018 */ __int64 Limit; }; struct _SUPPORTED_RANGES /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char Sorted; /* off 0x0003 */ unsigned char Reserved; /* off 0x0004 */ unsigned long NoIO; /* off 0x0008 */ struct _SUPPORTED_RANGE IO; /* off 0x0028 */ unsigned long NoMemory; /* off 0x0030 */ struct _SUPPORTED_RANGE Memory; /* off 0x0050 */ unsigned long NoPrefetchMemory; /* off 0x0058 */ struct _SUPPORTED_RANGE PrefetchMemory; /* off 0x0078 */ unsigned long NoDma; /* off 0x0080 */ struct _SUPPORTED_RANGE Dma; }; struct PCI_FUNCTION_RESOURCES /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _IO_RESOURCE_DESCRIPTOR Limit[7]; /* off 0x00e0 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR Current[7]; }; struct _QUAD /* sizeof 00000008 8 */ { /* off 0x0000 */ double DoNotUseThisField; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct __unnamed Allocated; /* off 0x0010 */ struct __unnamed Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __cdecl *InterfaceReference)(void*); /* off 0x000c */ void( __cdecl *InterfaceDereference)(void*); /* off 0x0010 */ long( __cdecl *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct __unnamed Parameters; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ struct __unnamed Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ unsigned short Reserved; /* off 0x00a2 */ unsigned short SymbolicLinkUsageCount; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; }; struct _DEVICE_MAP /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ unsigned long ReferenceCount; /* off 0x000c */ unsigned long DriveMap; /* off 0x0010 */ unsigned char DriveType[32]; }; struct _KINTERRUPT /* sizeof 000001e4 484 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __cdecl *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ void* ServiceContext; /* off 0x0014 */ unsigned long SpinLock; /* off 0x0018 */ unsigned long TickCount; /* off 0x001c */ unsigned long* ActualLock; /* off 0x0020 */ void( __cdecl *DispatchAddress)(); /* off 0x0024 */ unsigned long Vector; /* off 0x0028 */ unsigned char Irql; /* off 0x0029 */ unsigned char SynchronizeIrql; /* off 0x002a */ unsigned char FloatingSave; /* off 0x002b */ unsigned char Connected; /* off 0x002c */ char Number; /* off 0x002d */ unsigned char ShareVector; /* off 0x0030 */ enum _KINTERRUPT_MODE Mode; /* off 0x0034 */ unsigned long ServiceCount; /* off 0x0038 */ unsigned long DispatchCount; /* off 0x003c */ unsigned long DispatchCode[106]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; struct PCI_SECONDARY_EXTENSION /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY List; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ void( __cdecl *Destructor)(void*); }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 0000009c 156 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ int ResourceType; /* off 0x0010 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0014 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x0018 */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0020 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x0028 */ long ReferenceCount; /* off 0x002c */ struct _ARBITER_INTERFACE* Interface; /* off 0x0030 */ unsigned long AllocationStackMaxSize; /* off 0x0034 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x0038 */ long( __cdecl *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned long*,unsigned long*); /* off 0x003c */ long( __cdecl *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0040 */ long( __cdecl *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned long*); /* off 0x0044 */ long( __cdecl *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x0048 */ long( __cdecl *TestAllocation)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x004c */ long( __cdecl *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x0050 */ long( __cdecl *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0054 */ long( __cdecl *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __cdecl *BootAllocation)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x005c */ long( __cdecl *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x0060 */ long( __cdecl *QueryConflict)(struct _ARBITER_INSTANCE*,struct _DEVICE_OBJECT*,struct _IO_RESOURCE_DESCRIPTOR*,unsigned long*,struct _ARBITER_CONFLICT_INFO**); /* off 0x0064 */ long( __cdecl *AddReserved)(struct _ARBITER_INSTANCE*,struct _IO_RESOURCE_DESCRIPTOR*,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0068 */ long( __cdecl *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x006c */ long( __cdecl *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0070 */ long( __cdecl *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ unsigned char( __cdecl *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __cdecl *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ void( __cdecl *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __cdecl *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ unsigned char( __cdecl *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char TransactionInProgress; /* off 0x008c */ void* Extension; /* off 0x0090 */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x0094 */ void* ConflictCallbackContext; /* off 0x0098 */ unsigned char( __cdecl *ConflictCallback)(void*,struct _RTL_RANGE*); }; struct _PCI_ARBITER_INSTANCE /* sizeof 000000e0 224 */ { /* off 0x0000 */ struct PCI_SECONDARY_EXTENSION Header; /* off 0x000c */ struct _PCI_INTERFACE* Interface; /* off 0x0010 */ struct _PCI_FDO_EXTENSION* BusFdoExtension; /* off 0x0014 */ unsigned short InstanceName[24]; /* off 0x0044 */ struct _ARBITER_INSTANCE CommonInstance; }; struct _PCI_INTERFACE /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short MinSize; /* off 0x0006 */ unsigned short MinVersion; /* off 0x0008 */ unsigned short MaxVersion; /* off 0x000a */ unsigned short Flags; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ enum PCI_SIGNATURE Signature; /* off 0x0014 */ long( __cdecl *Constructor)(void*,void*,void*,unsigned short,unsigned short,struct _INTERFACE*); /* off 0x0018 */ long( __cdecl *Initializer)(struct _PCI_ARBITER_INSTANCE*); }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __cdecl *InterfaceReference)(void*); /* off 0x000c */ void( __cdecl *InterfaceDereference)(void*); }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned long Length; /* off 0x0014 */ unsigned long Alignment; /* off 0x0018 */ long Priority; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x0024 */ unsigned long Reserved[3]; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _MMPAGING_FILE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long CurrentUsage; /* off 0x0014 */ unsigned long PeakUsage; /* off 0x0018 */ unsigned long Hint; /* off 0x001c */ unsigned long HighestPage; /* off 0x0020 */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0028 */ struct _RTL_BITMAP* Bitmap; /* off 0x002c */ struct _FILE_OBJECT* File; /* off 0x0030 */ struct _UNICODE_STRING PageFileName; /* off 0x0038 */ unsigned long PageFileNumber; /* off 0x003c */ unsigned char Extended; /* off 0x003d */ unsigned char HintSetToZero; /* off 0x003e */ unsigned char BootPartition; /* off 0x0040 */ void* FileHandle; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union _LARGE_INTEGER WriteOffset; /* off 0x0010 */ struct __unnamed u; /* off 0x0018 */ struct _IRP* Irp; /* off 0x001c */ unsigned long LastPageToWrite; /* off 0x0020 */ struct _MMMOD_WRITER_LISTHEAD* PagingListHead; /* off 0x0024 */ struct _LIST_ENTRY* CurrentList; /* off 0x0028 */ struct _MMPAGING_FILE* PagingFile; /* off 0x002c */ struct _FILE_OBJECT* File; /* off 0x0030 */ struct _CONTROL_AREA* ControlArea; /* off 0x0034 */ struct _ERESOURCE* FileResource; /* off 0x0038 */ struct _MDL Mdl; /* off 0x0054 */ unsigned long Page[1]; }; struct _MMMOD_WRITER_LISTHEAD /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ struct _KEVENT Event; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; enum _MEMORY_TYPE { MemoryExceptionBlock =0x00000000 ,//0 MemorySystemBlock =0x00000001 ,//0 MemoryFree =0x00000002 ,//0 MemoryBad =0x00000003 ,//0 MemoryLoadedProgram =0x00000004 ,//0 MemoryFirmwareTemporary =0x00000005 ,//0 MemoryFirmwarePermanent =0x00000006 ,//0 MemoryFreeContiguous =0x00000007 ,//0 MemorySpecialMemory =0x00000008 ,//0 MemoryMaximum =0x00000009 ,//0 }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; /* off 0x0023 */ unsigned char Spare1; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long Reserved[1]; }; struct _POP_IDLE_HANDLER /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Latency; /* off 0x0004 */ unsigned long TimeCheck; /* off 0x0008 */ unsigned long DemoteLimit; /* off 0x000c */ unsigned long PromoteLimit; /* off 0x0010 */ unsigned long PromoteCount; /* off 0x0014 */ unsigned char Demote; /* off 0x0015 */ unsigned char Promote; /* off 0x0016 */ unsigned char PromotePercent; /* off 0x0017 */ unsigned char DemotePercent; /* off 0x0018 */ unsigned char State; /* off 0x0019 */ unsigned char Spare[3]; /* off 0x001c */ unsigned char( __fastcall *IdleFunction)(struct PROCESSOR_IDLE_TIMES*); }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char spare2[4]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _SEP_AUDIT_POLICY_CATEGORIES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long System:4 /* start bit 0 */; /* off 0x0000 */ unsigned long Logon:4 /* start bit 4 */; /* off 0x0000 */ unsigned long ObjectAccess:4 /* start bit 8 */; /* off 0x0000 */ unsigned long PrivilegeUse:4 /* start bit 12 */; /* off 0x0000 */ unsigned long DetailedTracking:4 /* start bit 16 */; /* off 0x0000 */ unsigned long PolicyChange:4 /* start bit 20 */; /* off 0x0000 */ unsigned long AccountManagement:4 /* start bit 24 */; /* off 0x0000 */ unsigned long DirectoryServiceAccess:4 /* start bit 28 */; /* off 0x0004 */ unsigned long AccountLogon:4 /* start bit 0 */; }; struct _SEP_AUDIT_POLICY_OVERLAY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 PolicyBits:36 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 SetBit:1 /* start bit 36 */; }; struct _SEP_AUDIT_POLICY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _SEP_AUDIT_POLICY_CATEGORIES PolicyElements; /* off 0x0000 */ struct _SEP_AUDIT_POLICY_OVERLAY PolicyOverlay; /* off 0x0000 */ unsigned __int64 Overlay; }; }; struct _TOKEN /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0038 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0040 */ struct _LUID ModifiedId; /* off 0x0048 */ unsigned long SessionId; /* off 0x004c */ unsigned long UserAndGroupCount; /* off 0x0050 */ unsigned long RestrictedSidCount; /* off 0x0054 */ unsigned long PrivilegeCount; /* off 0x0058 */ unsigned long VariableLength; /* off 0x005c */ unsigned long DynamicCharged; /* off 0x0060 */ unsigned long DynamicAvailable; /* off 0x0064 */ unsigned long DefaultOwnerIndex; /* off 0x0068 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x006c */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0070 */ void* PrimaryGroup; /* off 0x0074 */ struct _LUID_AND_ATTRIBUTES* Privileges; /* off 0x0078 */ unsigned long* DynamicPart; /* off 0x007c */ struct _ACL* DefaultDacl; /* off 0x0080 */ enum _TOKEN_TYPE TokenType; /* off 0x0084 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0088 */ unsigned long TokenFlags; /* off 0x008c */ unsigned char TokenInUse; /* off 0x0090 */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x0094 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x0098 */ struct _LUID OriginatingLogonSession; /* off 0x00a0 */ unsigned long VariablePart; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long NextCookieSequenceNumber; /* off 0x0008 */ void* ActiveFrame; /* off 0x000c */ struct _LIST_ENTRY FrameListCache; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _Wx86ThreadState /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long* CallBx86Eip; /* off 0x0004 */ void* DeallocationCpu; /* off 0x0008 */ unsigned char UseKnownWx86Dll; /* off 0x0009 */ char OleStubInvoked; }; struct _TEB /* sizeof 00000fb8 4024 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK ActivationContextStack; /* off 0x01bc */ unsigned char SpareBytes1[24]; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ unsigned short StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorsAreDisabled; /* off 0x0f2c */ void* Instrumentation[16]; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char InDbgPrint; /* off 0x0f75 */ unsigned char FreeStackOnTermination; /* off 0x0f76 */ unsigned char HasFiberData; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long Spare3; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ struct _Wx86ThreadState Wx86Thread; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ unsigned char SafeThunkCall; /* off 0x0fb5 */ unsigned char BooleanSpare[3]; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _PCI_HEADER_TYPE_0 /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BaseAddresses[6]; /* off 0x0018 */ unsigned long CIS; /* off 0x001c */ unsigned short SubVendorID; /* off 0x001e */ unsigned short SubSystemID; /* off 0x0020 */ unsigned long ROMBaseAddress; /* off 0x0024 */ unsigned char CapabilitiesPtr; /* off 0x0025 */ unsigned char Reserved1[3]; /* off 0x0028 */ unsigned long Reserved2; /* off 0x002c */ unsigned char InterruptLine; /* off 0x002d */ unsigned char InterruptPin; /* off 0x002e */ unsigned char MinimumGrant; /* off 0x002f */ unsigned char MaximumLatency; }; struct _PCI_HEADER_TYPE_1 /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BaseAddresses[2]; /* off 0x0008 */ unsigned char PrimaryBus; /* off 0x0009 */ unsigned char SecondaryBus; /* off 0x000a */ unsigned char SubordinateBus; /* off 0x000b */ unsigned char SecondaryLatency; /* off 0x000c */ unsigned char IOBase; /* off 0x000d */ unsigned char IOLimit; /* off 0x000e */ unsigned short SecondaryStatus; /* off 0x0010 */ unsigned short MemoryBase; /* off 0x0012 */ unsigned short MemoryLimit; /* off 0x0014 */ unsigned short PrefetchBase; /* off 0x0016 */ unsigned short PrefetchLimit; /* off 0x0018 */ unsigned long PrefetchBaseUpper32; /* off 0x001c */ unsigned long PrefetchLimitUpper32; /* off 0x0020 */ unsigned short IOBaseUpper16; /* off 0x0022 */ unsigned short IOLimitUpper16; /* off 0x0024 */ unsigned char CapabilitiesPtr; /* off 0x0025 */ unsigned char Reserved1[3]; /* off 0x0028 */ unsigned long ROMBaseAddress; /* off 0x002c */ unsigned char InterruptLine; /* off 0x002d */ unsigned char InterruptPin; /* off 0x002e */ unsigned short BridgeControl; }; struct _PCI_HEADER_TYPE_2 /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long SocketRegistersBaseAddress; /* off 0x0004 */ unsigned char CapabilitiesPtr; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short SecondaryStatus; /* off 0x0008 */ unsigned char PrimaryBus; /* off 0x0009 */ unsigned char SecondaryBus; /* off 0x000a */ unsigned char SubordinateBus; /* off 0x000b */ unsigned char SecondaryLatency; /* off 0x000c */ struct __unnamed Range[4]; /* off 0x002c */ unsigned char InterruptLine; /* off 0x002d */ unsigned char InterruptPin; /* off 0x002e */ unsigned short BridgeControl; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Key; /* off 0x0004 */ unsigned long NonPagedAllocs; /* off 0x0008 */ unsigned long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; enum _PS_QUOTA_TYPE { PsNonPagedPool =0x00000000 ,//0 PsPagedPool =0x00000001 ,//0 PsPageFile =0x00000002 ,//0 PsQuotaTypes =0x00000003 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; struct _POP_POWER_ACTION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ unsigned char IrpMinor; /* off 0x0018 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x001c */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0020 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0024 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0028 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x002c */ enum _SYSTEM_POWER_STATE LastWakeState; /* off 0x0030 */ unsigned __int64 WakeTime; /* off 0x0038 */ unsigned __int64 SleepTime; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Code; /* off 0x0004 */ unsigned long Parameter1; /* off 0x0008 */ unsigned long Parameter2; /* off 0x000c */ unsigned long Parameter3; /* off 0x0010 */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _KEVENT LevelReady; /* off 0x0010 */ unsigned long DeviceCount; /* off 0x0014 */ unsigned long ActiveCount; /* off 0x0018 */ struct _LIST_ENTRY WaitSleep; /* off 0x0020 */ struct _LIST_ENTRY ReadySleep; /* off 0x0028 */ struct _LIST_ENTRY Pending; /* off 0x0030 */ struct _LIST_ENTRY Complete; /* off 0x0038 */ struct _LIST_ENTRY ReadyS0; /* off 0x0040 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000248 584 */ { /* off 0x0000 */ unsigned long DevNodeSequence; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_POWER_IRP /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Free; /* off 0x0004 */ struct _IRP* Irp; /* off 0x0008 */ struct _PO_DEVICE_NOTIFY* Notify; /* off 0x000c */ struct _LIST_ENTRY Pending; /* off 0x0014 */ struct _LIST_ENTRY Complete; /* off 0x001c */ struct _LIST_ENTRY Abort; /* off 0x0024 */ struct _LIST_ENTRY Failed; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000620 1568 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ struct _KEVENT Event; /* off 0x0018 */ unsigned long SpinLock; /* off 0x001c */ struct _KTHREAD* Thread; /* off 0x0020 */ unsigned char GetNewDeviceList; /* off 0x0024 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x026c */ long Status; /* off 0x0270 */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0274 */ unsigned char Waking; /* off 0x0275 */ unsigned char Cancelled; /* off 0x0276 */ unsigned char IgnoreErrors; /* off 0x0277 */ unsigned char IgnoreNotImplemented; /* off 0x0278 */ unsigned char WaitAny; /* off 0x0279 */ unsigned char WaitAll; /* off 0x027c */ struct _LIST_ENTRY PresentIrpQueue; /* off 0x0284 */ struct _POP_DEVICE_POWER_IRP Head; /* off 0x02b0 */ struct _POP_DEVICE_POWER_IRP PowerIrpState[20]; }; struct _PO_HIBER_PERF /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; }; struct _POP_HIBER_CONTEXT /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char LinkFile; /* off 0x0008 */ void* LinkFileHandle; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char MapFrozen; /* off 0x0014 */ struct _RTL_BITMAP MemoryMap; /* off 0x001c */ struct _LIST_ENTRY ClonedRanges; /* off 0x0024 */ unsigned long ClonedRangeCount; /* off 0x0028 */ struct _LIST_ENTRY* NextCloneRange; /* off 0x002c */ unsigned long NextPreserve; /* off 0x0030 */ struct _MDL* LoaderMdl; /* off 0x0034 */ struct _MDL* Clones; /* off 0x0038 */ unsigned char* NextClone; /* off 0x003c */ unsigned long NoClones; /* off 0x0040 */ struct _MDL* Spares; /* off 0x0048 */ unsigned __int64 PagesOut; /* off 0x0050 */ void* IoPage; /* off 0x0054 */ void* CurrentMcb; /* off 0x0058 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x005c */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0060 */ unsigned long NoRanges; /* off 0x0064 */ unsigned long HiberVa; /* off 0x0068 */ union _LARGE_INTEGER HiberPte; /* off 0x0070 */ long Status; /* off 0x0074 */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0078 */ struct _PO_MEMORY_RANGE_ARRAY* TableHead; /* off 0x007c */ unsigned char* CompressionWorkspace; /* off 0x0080 */ unsigned char* CompressedWriteBuffer; /* off 0x0084 */ unsigned long* PerformanceStats; /* off 0x0088 */ void* CompressionBlock; /* off 0x008c */ void* DmaIO; /* off 0x0090 */ void* TemporaryHeap; /* off 0x0098 */ struct _PO_HIBER_PERF PerfInfo; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __cdecl *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __cdecl *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __cdecl *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __cdecl *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __cdecl *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ struct __unnamed DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct PO_MEMORY_IMAGE /* sizeof 000000a8 168 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ unsigned long ImageType; /* off 0x0020 */ union _LARGE_INTEGER SystemTime; /* off 0x0028 */ unsigned __int64 InterruptTime; /* off 0x0030 */ unsigned long FeatureFlags; /* off 0x0034 */ unsigned char HiberFlags; /* off 0x0035 */ unsigned char spare[3]; /* off 0x0038 */ unsigned long NoHiberPtes; /* off 0x003c */ unsigned long HiberVa; /* off 0x0040 */ union _LARGE_INTEGER HiberPte; /* off 0x0048 */ unsigned long NoFreePages; /* off 0x004c */ unsigned long FreeMapCheck; /* off 0x0050 */ unsigned long WakeCheck; /* off 0x0054 */ unsigned long TotalPages; /* off 0x0058 */ unsigned long FirstTablePage; /* off 0x005c */ unsigned long LastFilePage; /* off 0x0060 */ struct _PO_HIBER_PERF PerfInfo; }; struct _PO_MEMORY_RANGE_ARRAY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct __unnamed Range; /* off 0x0000 */ struct __unnamed Link; }; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct __unnamed u1; /* off 0x0004 */ struct __unnamed u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _MMVAD_SHORT /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long StartingVpn; /* off 0x0004 */ unsigned long EndingVpn; /* off 0x0008 */ struct _MMVAD* Parent; /* off 0x000c */ struct _MMVAD* LeftChild; /* off 0x0010 */ struct _MMVAD* RightChild; /* off 0x0014 */ struct __unnamed u; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ struct __unnamed u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __cdecl *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 MaxPlugEventCategory =0x00000009 ,//0 }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _FAST_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; enum _MMSYSTEM_PTE_POOL_TYPE { SystemPteSpace =0x00000000 ,//0 NonPagedPoolExpansion =0x00000001 ,//0 MaximumPtePoolTypes =0x00000002 ,//0 }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct __unnamed u1; /* off 0x0004 */ struct _MMPTE* PteAddress; /* off 0x0008 */ struct __unnamed u2; /* off 0x000c */ struct __unnamed u3; /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0018 */ struct __unnamed u4; }; struct _MMPFNENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Modified:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadInProgress:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WriteInProgress:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PageColor:3 /* start bit 4 */; /* off 0x0000 */ unsigned long ParityError:1 /* start bit 7 */; /* off 0x0000 */ unsigned long PageLocation:3 /* start bit 8 */; /* off 0x0000 */ unsigned long RemovalRequested:1 /* start bit 11 */; /* off 0x0000 */ unsigned long CacheAttribute:2 /* start bit 12 */; /* off 0x0000 */ unsigned long Rom:1 /* start bit 14 */; /* off 0x0000 */ unsigned long LockCharged:1 /* start bit 15 */; /* off 0x0000 */ unsigned long DontUse:16 /* start bit 16 */; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileMaximumInformation =0x00000029 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsMaximumInformation =0x0000000a ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long ListIndex; /* off 0x0004 */ struct _MI_VERIFIER_DRIVER_ENTRY* Verifier; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ unsigned long Reserved; /* off 0x002c */ unsigned long VerifierPoolLock; /* off 0x0030 */ struct _VI_POOL_ENTRY* PoolHash; /* off 0x0034 */ unsigned long PoolHashSize; /* off 0x0038 */ unsigned long PoolHashFree; /* off 0x003c */ unsigned long PoolHashReserved; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ unsigned long FreeListNext; }; }; struct _CM_KEY_BODY /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ unsigned long Callers; /* off 0x0014 */ void* CallerAddress[10]; /* off 0x003c */ struct _LIST_ENTRY KeyBodyList; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; struct _MMFREE_POOL_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Signature; /* off 0x0010 */ struct _MMFREE_POOL_ENTRY* Owner; }; struct _SYSPTES_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_5.1.2600.5755.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct __unnamed /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct __unnamed u; /* off 0x0000 */ __int64 QuadPart; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct __unnamed u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned long Spare0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Absolute; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char Inserted; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned short WaitType; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001c0 448 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListHead; /* off 0x0018 */ void* InitialStack; /* off 0x001c */ void* StackLimit; /* off 0x0020 */ void* Teb; /* off 0x0024 */ void* TlsArray; /* off 0x0028 */ void* KernelStack; /* off 0x002c */ unsigned char DebugActive; /* off 0x002d */ unsigned char State; /* off 0x002e */ unsigned char Alerted[2]; /* off 0x0030 */ unsigned char Iopl; /* off 0x0031 */ unsigned char NpxState; /* off 0x0032 */ char Saturation; /* off 0x0033 */ char Priority; /* off 0x0034 */ struct _KAPC_STATE ApcState; /* off 0x004c */ unsigned long ContextSwitches; /* off 0x0050 */ unsigned char IdleSwapBlock; /* off 0x0051 */ unsigned char Spare0[3]; /* off 0x0054 */ long WaitStatus; /* off 0x0058 */ unsigned char WaitIrql; /* off 0x0059 */ char WaitMode; /* off 0x005a */ unsigned char WaitNext; /* off 0x005b */ unsigned char WaitReason; /* off 0x005c */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0060 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0060 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0068 */ unsigned long WaitTime; /* off 0x006c */ char BasePriority; /* off 0x006d */ unsigned char DecrementCount; /* off 0x006e */ char PriorityDecrement; /* off 0x006f */ char Quantum; /* off 0x0070 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x00d0 */ void* LegoData; /* off 0x00d4 */ unsigned long KernelApcDisable; /* off 0x00d8 */ unsigned long UserAffinity; /* off 0x00dc */ unsigned char SystemAffinityActive; /* off 0x00dd */ unsigned char PowerState; /* off 0x00de */ unsigned char NpxIrql; /* off 0x00df */ unsigned char InitialNode; /* off 0x00e0 */ void* ServiceTable; /* off 0x00e4 */ struct _KQUEUE* Queue; /* off 0x00e8 */ unsigned long ApcQueueLock; /* off 0x00f0 */ struct _KTIMER Timer; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ unsigned long SoftAffinity; /* off 0x0124 */ unsigned long Affinity; /* off 0x0128 */ unsigned char Preempted; /* off 0x0129 */ unsigned char ProcessReadyQueue; /* off 0x012a */ unsigned char KernelStackResident; /* off 0x012b */ unsigned char NextProcessor; /* off 0x012c */ void* CallbackStack; /* off 0x0130 */ void* Win32Thread; /* off 0x0134 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0138 */ struct _KAPC_STATE* ApcStatePointer[2]; /* off 0x0140 */ char PreviousMode; /* off 0x0141 */ unsigned char EnableStackSwap; /* off 0x0142 */ unsigned char LargeStack; /* off 0x0143 */ unsigned char ResourceIndex; /* off 0x0144 */ unsigned long KernelTime; /* off 0x0148 */ unsigned long UserTime; /* off 0x014c */ struct _KAPC_STATE SavedApcState; /* off 0x0164 */ unsigned char Alertable; /* off 0x0165 */ unsigned char ApcStateIndex; /* off 0x0166 */ unsigned char ApcQueueable; /* off 0x0167 */ unsigned char AutoAlignment; /* off 0x0168 */ void* StackBase; /* off 0x016c */ struct _KAPC SuspendApc; /* off 0x019c */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01b0 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01b8 */ char FreezeCount; /* off 0x01b9 */ char SuspendCount; /* off 0x01ba */ unsigned char IdealProcessor; /* off 0x01bb */ unsigned char DisableBoost; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ struct __unnamed HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Spare:2 /* start bit 6 */; }; struct _KPROCESS /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase[2]; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Iopl; /* off 0x0033 */ unsigned char Unused; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; /* off 0x0060 */ unsigned short StackCount; /* off 0x0062 */ char BasePriority; /* off 0x0063 */ char ThreadQuantum; /* off 0x0064 */ unsigned char AutoAlignment; /* off 0x0065 */ unsigned char State; /* off 0x0066 */ unsigned char ThreadSeed; /* off 0x0067 */ unsigned char DisableBoost; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char DisableQuantum; /* off 0x006a */ unsigned char IdealNode; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Importance; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ unsigned long* Lock; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned long TempSegCs; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueContextSwapLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMaximumLock =0x0000000f ,//0 }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ struct __unnamed U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct PROCESSOR_IDLE_TIMES /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; /* off 0x0010 */ unsigned long IdleHandlerReserved[4]; }; struct _PROCESSOR_POWER_STATE /* sizeof 00000120 288 */ { /* off 0x0000 */ void( __fastcall *IdleFunction)(struct _PROCESSOR_POWER_STATE*); /* off 0x0004 */ unsigned long Idle0KernelTimeLimit; /* off 0x0008 */ unsigned long Idle0LastTime; /* off 0x000c */ void* IdleHandlers; /* off 0x0010 */ void* IdleState; /* off 0x0014 */ unsigned long IdleHandlersCount; /* off 0x0018 */ unsigned __int64 LastCheck; /* off 0x0020 */ struct PROCESSOR_IDLE_TIMES IdleTimes; /* off 0x0040 */ unsigned long IdleTime1; /* off 0x0044 */ unsigned long PromotionCheck; /* off 0x0048 */ unsigned long IdleTime2; /* off 0x004c */ unsigned char CurrentThrottle; /* off 0x004d */ unsigned char ThermalThrottleLimit; /* off 0x004e */ unsigned char CurrentThrottleIndex; /* off 0x004f */ unsigned char ThermalThrottleIndex; /* off 0x0050 */ unsigned long LastKernelUserTime; /* off 0x0054 */ unsigned long LastIdleThreadKernelTime; /* off 0x0058 */ unsigned long PackageIdleStartTime; /* off 0x005c */ unsigned long PackageIdleTime; /* off 0x0060 */ unsigned long DebugCount; /* off 0x0064 */ unsigned long LastSysTime; /* off 0x0068 */ unsigned __int64 TotalIdleStateTime[3]; /* off 0x0080 */ unsigned long TotalIdleTransitions[3]; /* off 0x0090 */ unsigned __int64 PreviousC3StateTime; /* off 0x0098 */ unsigned char KneeThrottleIndex; /* off 0x0099 */ unsigned char ThrottleLimitIndex; /* off 0x009a */ unsigned char PerfStatesCount; /* off 0x009b */ unsigned char ProcessorMinThrottle; /* off 0x009c */ unsigned char ProcessorMaxThrottle; /* off 0x009d */ unsigned char EnableIdleAccounting; /* off 0x009e */ unsigned char LastC3Percentage; /* off 0x009f */ unsigned char LastAdjustedBusyPercentage; /* off 0x00a0 */ unsigned long PromotionCount; /* off 0x00a4 */ unsigned long DemotionCount; /* off 0x00a8 */ unsigned long ErrorCount; /* off 0x00ac */ unsigned long RetryCount; /* off 0x00b0 */ unsigned long Flags; /* off 0x00b8 */ union _LARGE_INTEGER PerfCounterFrequency; /* off 0x00c0 */ unsigned long PerfTickCount; /* off 0x00c8 */ struct _KTIMER PerfTimer; /* off 0x00f0 */ struct _KDPC PerfDpc; /* off 0x0110 */ struct PROCESSOR_PERF_STATE* PerfStates; /* off 0x0114 */ long( __fastcall *PerfSetThrottle)(unsigned char); /* off 0x0118 */ unsigned long LastC3KernelUserTime; /* off 0x011c */ unsigned long LastPackageIdleTime; }; struct _KPRCB /* sizeof 00000c50 3152 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ char Number; /* off 0x0011 */ char Reserved; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; /* off 0x001a */ unsigned short CpuStep; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned char PrcbPad0[92]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[16]; /* off 0x0498 */ unsigned char PrcbPad1[8]; /* off 0x04a0 */ struct _KTHREAD* NpxThread; /* off 0x04a4 */ unsigned long InterruptCount; /* off 0x04a8 */ unsigned long KernelTime; /* off 0x04ac */ unsigned long UserTime; /* off 0x04b0 */ unsigned long DpcTime; /* off 0x04b4 */ unsigned long DebugDpcTime; /* off 0x04b8 */ unsigned long InterruptTime; /* off 0x04bc */ unsigned long AdjustDpcThreshold; /* off 0x04c0 */ unsigned long PageColor; /* off 0x04c4 */ unsigned long SkipTick; /* off 0x04c8 */ unsigned char MultiThreadSetBusy; /* off 0x04c9 */ unsigned char Spare2[3]; /* off 0x04cc */ struct _KNODE* ParentNode; /* off 0x04d0 */ unsigned long MultiThreadProcessorSet; /* off 0x04d4 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x04d8 */ unsigned long ThreadStartCount[2]; /* off 0x04e0 */ unsigned long CcFastReadNoWait; /* off 0x04e4 */ unsigned long CcFastReadWait; /* off 0x04e8 */ unsigned long CcFastReadNotPossible; /* off 0x04ec */ unsigned long CcCopyReadNoWait; /* off 0x04f0 */ unsigned long CcCopyReadWait; /* off 0x04f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x04f8 */ unsigned long KeAlignmentFixupCount; /* off 0x04fc */ unsigned long KeContextSwitches; /* off 0x0500 */ unsigned long KeDcacheFlushCount; /* off 0x0504 */ unsigned long KeExceptionDispatchCount; /* off 0x0508 */ unsigned long KeFirstLevelTbFills; /* off 0x050c */ unsigned long KeFloatingEmulationCount; /* off 0x0510 */ unsigned long KeIcacheFlushCount; /* off 0x0514 */ unsigned long KeSecondLevelTbFills; /* off 0x0518 */ unsigned long KeSystemCalls; /* off 0x051c */ unsigned long SpareCounter0[1]; /* off 0x0520 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x05a0 */ struct _PP_LOOKASIDE_LIST PPNPagedLookasideList[32]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPPagedLookasideList[32]; /* off 0x07a0 */ unsigned long PacketBarrier; /* off 0x07a4 */ unsigned long ReverseStall; /* off 0x07a8 */ void* IpiFrame; /* off 0x07ac */ unsigned char PrcbPad2[52]; /* off 0x07e0 */ void* CurrentPacket[3]; /* off 0x07ec */ unsigned long TargetSet; /* off 0x07f0 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x07f4 */ unsigned long IpiFrozen; /* off 0x07f8 */ unsigned char PrcbPad3[40]; /* off 0x0820 */ unsigned long RequestSummary; /* off 0x0824 */ struct _KPRCB* SignalDone; /* off 0x0828 */ unsigned char PrcbPad4[56]; /* off 0x0860 */ struct _LIST_ENTRY DpcListHead; /* off 0x0868 */ void* DpcStack; /* off 0x086c */ unsigned long DpcCount; /* off 0x0870 */ unsigned long DpcQueueDepth; /* off 0x0874 */ unsigned long DpcRoutineActive; /* off 0x0878 */ unsigned long DpcInterruptRequested; /* off 0x087c */ unsigned long DpcLastCount; /* off 0x0880 */ unsigned long DpcRequestRate; /* off 0x0884 */ unsigned long MaximumDpcQueueDepth; /* off 0x0888 */ unsigned long MinimumDpcRate; /* off 0x088c */ unsigned long QuantumEnd; /* off 0x0890 */ unsigned char PrcbPad5[16]; /* off 0x08a0 */ unsigned long DpcLock; /* off 0x08a4 */ unsigned char PrcbPad6[28]; /* off 0x08c0 */ struct _KDPC CallDpc; /* off 0x08e0 */ void* ChainedInterruptList; /* off 0x08e4 */ long LookasideIrpFloat; /* off 0x08e8 */ unsigned long SpareFields0[6]; /* off 0x0900 */ unsigned char VendorString[13]; /* off 0x090d */ unsigned char InitialApicId; /* off 0x090e */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x0910 */ unsigned long MHz; /* off 0x0914 */ unsigned long FeatureBits; /* off 0x0918 */ union _LARGE_INTEGER UpdateSignature; /* off 0x0920 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x0b30 */ struct _PROCESSOR_POWER_STATE PowerState; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable; }; struct _KNODE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long ProcessorMask; /* off 0x0004 */ unsigned long Color; /* off 0x0008 */ unsigned long MmShiftedColor; /* off 0x000c */ unsigned long FreeCount[2]; /* off 0x0018 */ union _SLIST_HEADER DeadStackList; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x002c */ unsigned char Seed; /* off 0x002d */ struct _flags Flags; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); /* off 0x002c */ void( __stdcall *Free)(void*); /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct PROCESSOR_PERF_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char PercentFrequency; /* off 0x0001 */ unsigned char MinCapacity; /* off 0x0002 */ unsigned short Power; /* off 0x0004 */ unsigned char IncreaseLevel; /* off 0x0005 */ unsigned char DecreaseLevel; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long IncreaseTime; /* off 0x000c */ unsigned long DecreaseTime; /* off 0x0010 */ unsigned long IncreaseCount; /* off 0x0014 */ unsigned long DecreaseCount; /* off 0x0018 */ unsigned __int64 PerformanceTime; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Event; /* off 0x001c */ unsigned long OldIrql; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideMaximumList =0x00000007 ,//0 }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Waiting:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Exclusive:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Shared:30 /* start bit 2 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KEVENT WakeEvent; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ unsigned long ShareCount; /* off 0x0018 */ unsigned char Exclusive; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _ETHREAD /* sizeof 00000258 600 */ { /* off 0x0000 */ struct _KTHREAD Tcb; union { /* off 0x01c0 */ union _LARGE_INTEGER CreateTime; struct { /* off 0x01c0 */ unsigned int NestedFaultCount:2 /* start bit 0 */; /* off 0x01c0 */ unsigned int ApcNeeded:1 /* start bit 2 */; }; }; union { /* off 0x01c8 */ union _LARGE_INTEGER ExitTime; /* off 0x01c8 */ struct _LIST_ENTRY LpcReplyChain; /* off 0x01c8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01d0 */ long ExitStatus; /* off 0x01d0 */ void* OfsChain; }; /* off 0x01d4 */ struct _LIST_ENTRY PostBlockList; union { /* off 0x01dc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01dc */ struct _ETHREAD* ReaperLink; /* off 0x01dc */ void* KeyedWaitValue; }; /* off 0x01e0 */ unsigned long ActiveTimerListLock; /* off 0x01e4 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x01ec */ struct _CLIENT_ID Cid; union { /* off 0x01f4 */ struct _KSEMAPHORE LpcReplySemaphore; /* off 0x01f4 */ struct _KSEMAPHORE KeyedWaitSemaphore; }; union { /* off 0x0208 */ void* LpcReplyMessage; /* off 0x0208 */ void* LpcWaitingOnPort; }; /* off 0x020c */ struct _PS_IMPERSONATION_INFORMATION* ImpersonationInfo; /* off 0x0210 */ struct _LIST_ENTRY IrpList; /* off 0x0218 */ unsigned long TopLevelIrp; /* off 0x021c */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x0220 */ struct _EPROCESS* ThreadsProcess; /* off 0x0224 */ void* StartAddress; union { /* off 0x0228 */ void* Win32StartAddress; /* off 0x0228 */ unsigned long LpcReceivedMessageId; }; /* off 0x022c */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0234 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0238 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x023c */ unsigned long LpcReplyMessageId; /* off 0x0240 */ unsigned long ReadClusterSize; /* off 0x0244 */ unsigned long GrantedAccess; union { /* off 0x0248 */ unsigned long CrossThreadFlags; struct { /* off 0x0248 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0248 */ unsigned long DeadThread:1 /* start bit 1 */; /* off 0x0248 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0248 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0248 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0248 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0248 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0248 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0248 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; }; }; union { /* off 0x024c */ unsigned long SameThreadPassiveFlags; struct { /* off 0x024c */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x024c */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x024c */ unsigned long MemoryMaker:1 /* start bit 2 */; }; }; union { /* off 0x0250 */ unsigned long SameThreadApcFlags; struct { /* off 0x0250 */ unsigned char LpcReceivedMsgIdValid:1 /* start bit 0 */; /* off 0x0250 */ unsigned char LpcExitThreadCalled:1 /* start bit 1 */; /* off 0x0250 */ unsigned char AddressSpaceOwner:1 /* start bit 2 */; }; }; /* off 0x0254 */ unsigned char ForwardClusterOnly; /* off 0x0255 */ unsigned char DisablePageFaultClustering; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _PS_IMPERSONATION_INFORMATION /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* Token; /* off 0x0004 */ unsigned char CopyOnOpen; /* off 0x0005 */ unsigned char EffectiveOnly; /* off 0x0008 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ struct __unnamed Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct __unnamed AcquireForModifiedPageWriter; /* off 0x0000 */ struct __unnamed ReleaseForModifiedPageWriter; /* off 0x0000 */ struct __unnamed AcquireForSectionSynchronization; /* off 0x0000 */ struct __unnamed Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned short VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingTrimmed:1 /* start bit 1 */; /* off 0x0000 */ unsigned int SessionLeader:1 /* start bit 2 */; /* off 0x0000 */ unsigned int TrimHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned int WorkingSetHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned int AddressSpaceBeingDeleted:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Available:10 /* start bit 6 */; /* off 0x0000 */ unsigned int AllowWorkingSetAdjustment:8 /* start bit 16 */; /* off 0x0000 */ unsigned int MemoryPriority:8 /* start bit 24 */; }; struct _MMSUPPORT /* sizeof 00000040 64 */ { /* off 0x0000 */ union _LARGE_INTEGER LastTrimTime; /* off 0x0008 */ struct _MMSUPPORT_FLAGS Flags; /* off 0x000c */ unsigned long PageFaultCount; /* off 0x0010 */ unsigned long PeakWorkingSetSize; /* off 0x0014 */ unsigned long WorkingSetSize; /* off 0x0018 */ unsigned long MinimumWorkingSetSize; /* off 0x001c */ unsigned long MaximumWorkingSetSize; /* off 0x0020 */ struct _MMWSL* VmWorkingSetList; /* off 0x0024 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x002c */ unsigned long Claim; /* off 0x0030 */ unsigned long NextEstimationSlot; /* off 0x0034 */ unsigned long NextAgingSlot; /* off 0x0038 */ unsigned long EstimatedAvailable; /* off 0x003c */ unsigned long GrowthSinceLastEstimate; }; struct _EPROCESS /* sizeof 00000260 608 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x006c */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0070 */ union _LARGE_INTEGER CreateTime; /* off 0x0078 */ union _LARGE_INTEGER ExitTime; /* off 0x0080 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0084 */ void* UniqueProcessId; /* off 0x0088 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x0090 */ unsigned long QuotaUsage[3]; /* off 0x009c */ unsigned long QuotaPeak[3]; /* off 0x00a8 */ unsigned long CommitCharge; /* off 0x00ac */ unsigned long PeakVirtualSize; /* off 0x00b0 */ unsigned long VirtualSize; /* off 0x00b4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00bc */ void* DebugPort; /* off 0x00c0 */ void* ExceptionPort; /* off 0x00c4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00c8 */ struct _EX_FAST_REF Token; /* off 0x00cc */ struct _FAST_MUTEX WorkingSetLock; /* off 0x00ec */ unsigned long WorkingSetPage; /* off 0x00f0 */ struct _FAST_MUTEX AddressCreationLock; /* off 0x0110 */ unsigned long HyperSpaceLock; /* off 0x0114 */ struct _ETHREAD* ForkInProgress; /* off 0x0118 */ unsigned long HardwareTrigger; /* off 0x011c */ void* VadRoot; /* off 0x0120 */ void* VadHint; /* off 0x0124 */ void* CloneRoot; /* off 0x0128 */ unsigned long NumberOfPrivatePages; /* off 0x012c */ unsigned long NumberOfLockedPages; /* off 0x0130 */ void* Win32Process; /* off 0x0134 */ struct _EJOB* Job; /* off 0x0138 */ void* SectionObject; /* off 0x013c */ void* SectionBaseAddress; /* off 0x0140 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x0144 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0148 */ void* Win32WindowStation; /* off 0x014c */ void* InheritedFromUniqueProcessId; /* off 0x0150 */ void* LdtInformation; /* off 0x0154 */ void* VadFreeHint; /* off 0x0158 */ void* VdmObjects; /* off 0x015c */ void* DeviceMap; /* off 0x0160 */ struct _LIST_ENTRY PhysicalVadList; union { /* off 0x0168 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0168 */ unsigned __int64 Filler; }; /* off 0x0170 */ void* Session; /* off 0x0174 */ unsigned char ImageFileName[16]; /* off 0x0184 */ struct _LIST_ENTRY JobLinks; /* off 0x018c */ void* LockedPagesList; /* off 0x0190 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0198 */ void* SecurityPort; /* off 0x019c */ void* PaeTop; /* off 0x01a0 */ unsigned long ActiveThreads; /* off 0x01a4 */ unsigned long GrantedAccess; /* off 0x01a8 */ unsigned long DefaultHardErrorProcessing; /* off 0x01ac */ long LastThreadExitStatus; /* off 0x01b0 */ struct _PEB* Peb; /* off 0x01b4 */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01b8 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01c8 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01d0 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01d8 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01e0 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01e8 */ unsigned long CommitChargeLimit; /* off 0x01ec */ unsigned long CommitChargePeak; /* off 0x01f0 */ void* AweInfo; /* off 0x01f4 */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01f8 */ struct _MMSUPPORT Vm; /* off 0x0238 */ unsigned long LastFaultCount; /* off 0x023c */ unsigned long ModifiedPageCount; /* off 0x0240 */ unsigned long NumberOfVads; /* off 0x0244 */ unsigned long JobStatus; union { /* off 0x0248 */ unsigned long Flags; struct { /* off 0x0248 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0248 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0248 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0248 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0248 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0248 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0248 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0248 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0248 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0248 */ unsigned long HasPhysicalVad:1 /* start bit 9 */; /* off 0x0248 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0248 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0248 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0248 */ unsigned long SessionCreationUnderway:1 /* start bit 14 */; /* off 0x0248 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0248 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0248 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0248 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0248 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0248 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0248 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0248 */ unsigned long Unused3:1 /* start bit 22 */; /* off 0x0248 */ unsigned long Unused4:1 /* start bit 23 */; /* off 0x0248 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0248 */ unsigned long Unused:5 /* start bit 25 */; /* off 0x0248 */ unsigned long Unused1:1 /* start bit 30 */; /* off 0x0248 */ unsigned long Unused2:1 /* start bit 31 */; }; }; /* off 0x024c */ long ExitStatus; /* off 0x0250 */ unsigned short NextPageColor; union { struct { /* off 0x0252 */ unsigned char SubSystemMinorVersion; /* off 0x0253 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0252 */ unsigned short SubSystemVersion; }; }; /* off 0x0254 */ unsigned char PriorityClass; /* off 0x0255 */ unsigned char WorkingSetAcquiredUnsafe; /* off 0x0258 */ unsigned long Cookie; }; struct _HANDLE_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleTableLock[4]; /* off 0x001c */ struct _LIST_ENTRY HandleTableList; /* off 0x0024 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x0028 */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x002c */ long ExtraInfoPages; /* off 0x0030 */ unsigned long FirstFree; /* off 0x0034 */ unsigned long LastFree; /* off 0x0038 */ unsigned long NextHandleNeedingPool; /* off 0x003c */ long HandleCount; union { /* off 0x0040 */ unsigned long Flags; /* off 0x0040 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00050004 327684 */ { /* off 0x0000 */ unsigned long CurrentStackIndex; /* off 0x0004 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[4096]; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerThreads[2]; /* off 0x0028 */ unsigned long ContentionCount; /* off 0x002c */ unsigned short NumberOfSharedWaiters; /* off 0x002e */ unsigned short NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; struct _IO_COUNTERS /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned __int64 ReadOperationCount; /* off 0x0008 */ unsigned __int64 WriteOperationCount; /* off 0x0010 */ unsigned __int64 OtherOperationCount; /* off 0x0018 */ unsigned __int64 ReadTransferCount; /* off 0x0020 */ unsigned __int64 WriteTransferCount; /* off 0x0028 */ unsigned __int64 OtherTransferCount; }; struct _EJOB /* sizeof 00000180 384 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ unsigned long UIRestrictionsClass; /* off 0x00b4 */ unsigned long SecurityLimitFlags; /* off 0x00b8 */ void* Token; /* off 0x00bc */ struct _PS_JOB_TOKEN_FILTER* Filter; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ struct _IO_COUNTERS IoInfo; /* off 0x0138 */ unsigned long ProcessMemoryLimit; /* off 0x013c */ unsigned long JobMemoryLimit; /* off 0x0140 */ unsigned long PeakProcessMemoryUsed; /* off 0x0144 */ unsigned long PeakJobMemoryUsed; /* off 0x0148 */ unsigned long CurrentJobMemoryUsed; /* off 0x014c */ struct _FAST_MUTEX MemoryLimitsLock; /* off 0x016c */ struct _LIST_ENTRY JobSetLinks; /* off 0x0174 */ unsigned long MemberLevel; /* off 0x0178 */ unsigned long JobFlags; }; struct _PS_JOB_TOKEN_FILTER /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long CapturedSidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* CapturedSids; /* off 0x0008 */ unsigned long CapturedSidsLength; /* off 0x000c */ unsigned long CapturedGroupCount; /* off 0x0010 */ struct _SID_AND_ATTRIBUTES* CapturedGroups; /* off 0x0014 */ unsigned long CapturedGroupsLength; /* off 0x0018 */ unsigned long CapturedPrivilegeCount; /* off 0x001c */ struct _LUID_AND_ATTRIBUTES* CapturedPrivileges; /* off 0x0020 */ unsigned long CapturedPrivilegesLength; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _EPROCESS_QUOTA_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Usage; /* off 0x0004 */ unsigned long Limit; /* off 0x0008 */ unsigned long Peak; /* off 0x000c */ unsigned long Return; }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _EPROCESS_QUOTA_ENTRY QuotaEntry[3]; /* off 0x0030 */ struct _LIST_ENTRY QuotaList; /* off 0x0038 */ unsigned long ReferenceCount; /* off 0x003c */ unsigned long ProcessCount; }; struct _PROCESS_WS_WATCH_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ void* FaultingPc; /* off 0x0004 */ void* FaultingVa; }; struct _PAGEFAULT_HISTORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long CurrentIndex; /* off 0x0004 */ unsigned long MaxIndex; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ void* Reserved; /* off 0x0010 */ struct _PROCESS_WS_WATCH_INFORMATION WatchInfo[1]; }; struct _PEB /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; /* off 0x0003 */ unsigned char SpareBool; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* FastPebLockRoutine; /* off 0x0024 */ void* FastPebUnlockRoutine; /* off 0x0028 */ unsigned long EnvironmentUpdateCount; /* off 0x002c */ void* KernelCallbackTable; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long AtlThunkSListPtr32; /* off 0x0038 */ struct _PEB_FREE_BLOCK* FreeList; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* ReadOnlySharedMemoryHeap; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ void* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ImageProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ void* ActivationContextData; /* off 0x01fc */ void* ProcessAssemblyStorageMap; /* off 0x0200 */ void* SystemDefaultActivationContextData; /* off 0x0204 */ void* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; }; struct _PEB_LDR_DATA /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000290 656 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Spare[2]; }; struct _PEB_FREE_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _PEB_FREE_BLOCK* Next; /* off 0x0004 */ unsigned long Size; }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000cfc 3324 */ { /* off 0x0000 */ unsigned long Quota; /* off 0x0004 */ unsigned long FirstFree; /* off 0x0008 */ unsigned long FirstDynamic; /* off 0x000c */ unsigned long LastEntry; /* off 0x0010 */ unsigned long NextSlot; /* off 0x0014 */ struct _MMWSLE* Wsle; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NonDirectCount; /* off 0x0020 */ struct _MMWSLE_HASH* HashTable; /* off 0x0024 */ unsigned long HashTableSize; /* off 0x0028 */ unsigned long NumberOfCommittedPageTables; /* off 0x002c */ void* HashTableStart; /* off 0x0030 */ void* HighestPermittedHashAddress; /* off 0x0034 */ unsigned long NumberOfImageWaiters; /* off 0x0038 */ unsigned long VadBitMapHint; /* off 0x003c */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c3c */ unsigned long CommittedPageTables[48]; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ struct __unnamed u1; }; struct _MMWSLE_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct __unnamed AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ struct __unnamed Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ struct __unnamed Tail; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; struct _DEVOBJ_EXTENSION /* sizeof 0000002c 44 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long ConservationIdleTime; /* off 0x0008 */ unsigned long PerformanceIdleTime; /* off 0x000c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0010 */ struct _LIST_ENTRY IdleList; /* off 0x0018 */ unsigned char DeviceType; /* off 0x001c */ enum _DEVICE_POWER_STATE State; /* off 0x0020 */ struct _LIST_ENTRY NotifySourceList; /* off 0x0028 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x0030 */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0044 */ struct _LIST_ENTRY Volume; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned char UseDefaultObject; /* off 0x0003 */ unsigned char CaseInsensitive; /* off 0x0004 */ unsigned long InvalidAttributes; /* off 0x0008 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0018 */ unsigned long ValidAccessMask; /* off 0x001c */ unsigned char SecurityRequired; /* off 0x001d */ unsigned char MaintainHandleCount; /* off 0x001e */ unsigned char MaintainTypeList; /* off 0x0020 */ enum _POOL_TYPE PoolType; /* off 0x0024 */ unsigned long DefaultPagedPoolCharge; /* off 0x0028 */ unsigned long DefaultNonPagedPoolCharge; /* off 0x002c */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0030 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x0034 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x0038 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x003c */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0040 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0044 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*); /* off 0x0048 */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000190 400 */ { /* off 0x0000 */ struct _ERESOURCE Mutex; /* off 0x0038 */ struct _LIST_ENTRY TypeList; /* off 0x0040 */ struct _UNICODE_STRING Name; /* off 0x0048 */ void* DefaultObject; /* off 0x004c */ unsigned long Index; /* off 0x0050 */ unsigned long TotalNumberOfObjects; /* off 0x0054 */ unsigned long TotalNumberOfHandles; /* off 0x0058 */ unsigned long HighWaterNumberOfObjects; /* off 0x005c */ unsigned long HighWaterNumberOfHandles; /* off 0x0060 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x00ac */ unsigned long Key; /* off 0x00b0 */ struct _ERESOURCE ObjectLocks[4]; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ struct __unnamed Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct __unnamed u; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Writable:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ struct __unnamed u; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ struct __unnamed u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _VACB /* sizeof 00000018 24 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ struct __unnamed Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long Available:14 /* start bit 18 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; }; struct _SHARED_CACHE_MAP /* sizeof 00000130 304 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _FILE_OBJECT* FileObject; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ struct _EX_PUSH_LOCK VacbPushLock; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short PreviousSize; }; struct { /* off 0x0000 */ void* SubSegmentCode; }; }; /* off 0x0004 */ unsigned char SmallTagIndex; /* off 0x0005 */ unsigned char Flags; /* off 0x0006 */ unsigned char UnusedBytes; /* off 0x0007 */ unsigned char SegmentIndex; }; struct _HEAP /* sizeof 00000588 1416 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long Signature; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long ForceFlags; /* off 0x0014 */ unsigned long VirtualMemoryThreshold; /* off 0x0018 */ unsigned long SegmentReserve; /* off 0x001c */ unsigned long SegmentCommit; /* off 0x0020 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0024 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0028 */ unsigned long TotalFreeSize; /* off 0x002c */ unsigned long MaximumAllocationSize; /* off 0x0030 */ unsigned short ProcessHeapsListIndex; /* off 0x0032 */ unsigned short HeaderValidateLength; /* off 0x0034 */ void* HeaderValidateCopy; /* off 0x0038 */ unsigned short NextAvailableTagIndex; /* off 0x003a */ unsigned short MaximumTagIndex; /* off 0x003c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0040 */ struct _HEAP_UCR_SEGMENT* UCRSegments; /* off 0x0044 */ struct _HEAP_UNCOMMMTTED_RANGE* UnusedUnCommittedRanges; /* off 0x0048 */ unsigned long AlignRound; /* off 0x004c */ unsigned long AlignMask; /* off 0x0050 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x0058 */ struct _HEAP_SEGMENT* Segments[64]; /* off 0x0158 */ struct __unnamed u; /* off 0x0168 */ struct __unnamed u2; /* off 0x016a */ unsigned short AllocatorBackTraceIndex; /* off 0x016c */ unsigned long NonDedicatedListLength; /* off 0x0170 */ void* LargeBlocksIndex; /* off 0x0174 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x0178 */ struct _LIST_ENTRY FreeLists[128]; /* off 0x0578 */ struct _HEAP_LOCK* LockVariable; /* off 0x057c */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x0580 */ void* FrontEndHeap; /* off 0x0584 */ unsigned short FrontHeapLockCount; /* off 0x0586 */ unsigned char FrontEndHeapType; /* off 0x0587 */ unsigned char LastSegmentIndex; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ unsigned short TagName[24]; }; struct _HEAP_UCR_SEGMENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _HEAP_UCR_SEGMENT* Next; /* off 0x0004 */ unsigned long ReservedSize; /* off 0x0008 */ unsigned long CommittedSize; /* off 0x000c */ unsigned long filler; }; struct _HEAP_UNCOMMMTTED_RANGE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _HEAP_UNCOMMMTTED_RANGE* Next; /* off 0x0004 */ unsigned long Address; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long filler; }; struct _HEAP_SEGMENT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long Signature; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _HEAP* Heap; /* off 0x0014 */ unsigned long LargestUnCommittedRange; /* off 0x0018 */ void* BaseAddress; /* off 0x001c */ unsigned long NumberOfPages; /* off 0x0020 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0024 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x0028 */ unsigned long NumberOfUnCommittedPages; /* off 0x002c */ unsigned long NumberOfUnCommittedRanges; /* off 0x0030 */ struct _HEAP_UNCOMMMTTED_RANGE* UnCommittedRanges; /* off 0x0034 */ unsigned short AllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _HEAP_ENTRY* LastEntryInSegment; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000038 56 */ { /* off 0x0000 */ struct __unnamed Lock; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Bucket; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short FreeThreshold; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* HeapHandle; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY LRUViewList; /* off 0x0008 */ struct _LIST_ENTRY PinViewList; /* off 0x0010 */ unsigned long FileOffset; /* off 0x0014 */ unsigned long Size; /* off 0x0018 */ unsigned long* ViewAddress; /* off 0x001c */ void* Bcb; /* off 0x0020 */ unsigned long UseCount; }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ struct _EPROCESS* ProcessBilled; /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ void* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 00000110 272 */ { /* off 0x0000 */ unsigned long Nodes[2]; /* off 0x0008 */ unsigned long Resources[2]; /* off 0x0010 */ unsigned long Threads[2]; /* off 0x0018 */ __int64 TimeAcquire; /* off 0x0020 */ __int64 TimeRelease; /* off 0x0028 */ unsigned long BytesAllocated; /* off 0x002c */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0030 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x0034 */ unsigned long AllocationFailures; /* off 0x0038 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x003c */ unsigned long NodesTrimmedBasedOnCount; /* off 0x0040 */ unsigned long NodesSearched; /* off 0x0044 */ unsigned long MaxNodesSearched; /* off 0x0048 */ unsigned long SequenceNumber; /* off 0x004c */ unsigned long RecursionDepthLimit; /* off 0x0050 */ unsigned long SearchedNodesLimit; /* off 0x0054 */ unsigned long DepthLimitHits; /* off 0x0058 */ unsigned long SearchLimitHits; /* off 0x005c */ unsigned long ABC_ACB_Skipped; /* off 0x0060 */ struct _LIST_ENTRY FreeResourceList; /* off 0x0068 */ struct _LIST_ENTRY FreeThreadList; /* off 0x0070 */ struct _LIST_ENTRY FreeNodeList; /* off 0x0078 */ unsigned long FreeResourceCount; /* off 0x007c */ unsigned long FreeThreadCount; /* off 0x0080 */ unsigned long FreeNodeCount; /* off 0x0084 */ void* Instigator; /* off 0x0088 */ unsigned long NumberOfParticipants; /* off 0x008c */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x010c */ unsigned long CacheReductionInProgress; }; struct _VI_DEADLOCK_NODE /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0024 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0024 */ unsigned long SequenceNumber:30 /* start bit 2 */; /* off 0x0028 */ void* StackTrace[8]; /* off 0x0048 */ void* ParentStackTrace[8]; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockFastMutex =0x00000002 ,//0 VfDeadlockFastMutexUnsafe =0x00000003 ,//0 VfDeadlockSpinLock =0x00000004 ,//0 VfDeadlockQueuedSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; enum _PF_SCENARIO_TYPE { PfApplicationLaunchScenarioType =0x00000000 ,//0 PfSystemBootScenarioType =0x00000001 ,//0 PfMaxScenarioType =0x00000002 ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _SEGMENT_OBJECT /* sizeof 00000030 48 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _LARGE_CONTROL_AREA* LargeControlArea; /* off 0x0024 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0028 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _CONTROL_AREA /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned short NumberOfSubsections; /* off 0x001a */ unsigned short FlushInProgressCount; /* off 0x001c */ unsigned long NumberOfUserReferences; /* off 0x0020 */ struct __unnamed u; /* off 0x0024 */ struct _FILE_OBJECT* FilePointer; /* off 0x0028 */ struct _EVENT_COUNTER* WaitingForDeletion; /* off 0x002c */ unsigned short ModifiedWriteCount; /* off 0x002e */ unsigned short NumberOfSystemCacheViews; }; struct _SEGMENT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ unsigned long NonExtendedPtes; /* off 0x000c */ unsigned long WritableUserReferences; /* off 0x0010 */ unsigned __int64 SizeOfSegment; /* off 0x0018 */ struct _MMPTE SegmentPteTemplate; /* off 0x0020 */ unsigned long NumberOfCommittedPages; /* off 0x0024 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0028 */ void* SystemImageBase; /* off 0x002c */ void* BasedAddress; /* off 0x0030 */ struct __unnamed u1; /* off 0x0034 */ struct __unnamed u2; /* off 0x0038 */ struct _MMPTE* PrototypePte; /* off 0x0040 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _EVENT_COUNTER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long RefCount; /* off 0x0008 */ struct _KEVENT Event; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct __unnamed u; /* off 0x0008 */ unsigned long StartingSector; /* off 0x000c */ unsigned long NumberOfFullSectors; /* off 0x0010 */ struct _MMPTE* SubsectionBase; /* off 0x0014 */ unsigned long UnusedPtes; /* off 0x0018 */ unsigned long PtesInSubsection; /* off 0x001c */ struct _SUBSECTION* NextSubsection; }; struct _LARGE_CONTROL_AREA /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned short NumberOfSubsections; /* off 0x001a */ unsigned short FlushInProgressCount; /* off 0x001c */ unsigned long NumberOfUserReferences; /* off 0x0020 */ struct __unnamed u; /* off 0x0024 */ struct _FILE_OBJECT* FilePointer; /* off 0x0028 */ struct _EVENT_COUNTER* WaitingForDeletion; /* off 0x002c */ unsigned short ModifiedWriteCount; /* off 0x002e */ unsigned short NumberOfSystemCacheViews; /* off 0x0030 */ unsigned long StartingFrame; /* off 0x0034 */ struct _LIST_ENTRY UserGlobalList; /* off 0x003c */ unsigned long SessionId; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int NoCache:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int FloppyMedia:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int DebugSymbolsLoaded:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int HadUserReference:1 /* start bit 24 */; /* off 0x0000 */ unsigned int ImageMappedInSystemSpace:1 /* start bit 25 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 27 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 28 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 29 */; /* off 0x0000 */ unsigned int filler:2 /* start bit 30 */; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned int ReadWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned int SubsectionStatic:1 /* start bit 2 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 3 */; /* off 0x0000 */ unsigned int Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned int LargePages:1 /* start bit 9 */; /* off 0x0000 */ unsigned int StartingSector4132:10 /* start bit 10 */; /* off 0x0000 */ unsigned int SectorEndOffset:12 /* start bit 20 */; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _WMI_LOGGER_MODE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SequentialFile:1 /* start bit 0 */; /* off 0x0000 */ unsigned long CircularFile:1 /* start bit 1 */; /* off 0x0000 */ unsigned long AppendFile:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Unused1:5 /* start bit 3 */; /* off 0x0000 */ unsigned long RealTime:1 /* start bit 8 */; /* off 0x0000 */ unsigned long DelayOpenFile:1 /* start bit 9 */; /* off 0x0000 */ unsigned long BufferOnly:1 /* start bit 10 */; /* off 0x0000 */ unsigned long PrivateLogger:1 /* start bit 11 */; /* off 0x0000 */ unsigned long AddHeader:1 /* start bit 12 */; /* off 0x0000 */ unsigned long UseExisting:1 /* start bit 13 */; /* off 0x0000 */ unsigned long UseGlobalSequence:1 /* start bit 14 */; /* off 0x0000 */ unsigned long UseLocalSequence:1 /* start bit 15 */; /* off 0x0000 */ unsigned long Unused2:16 /* start bit 16 */; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _TRACE_ENABLE_FLAG_EXTENSION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned char Length; /* off 0x0003 */ unsigned char Flag; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _WMI_LOGGER_CONTEXT /* sizeof 000001c8 456 */ { /* off 0x0000 */ unsigned long BufferSpinLock; /* off 0x0008 */ union _LARGE_INTEGER StartTime; /* off 0x0010 */ void* LogFileHandle; /* off 0x0014 */ struct _KSEMAPHORE LoggerSemaphore; /* off 0x0028 */ struct _ETHREAD* LoggerThread; /* off 0x002c */ struct _KEVENT LoggerEvent; /* off 0x003c */ struct _KEVENT FlushEvent; /* off 0x004c */ long LoggerStatus; /* off 0x0050 */ unsigned long LoggerId; /* off 0x0054 */ long BuffersAvailable; /* off 0x0058 */ unsigned long UsePerfClock; /* off 0x005c */ unsigned long WriteFailureLimit; /* off 0x0060 */ unsigned long BuffersDirty; /* off 0x0064 */ unsigned long BuffersInUse; /* off 0x0068 */ unsigned long SwitchingInProgress; /* off 0x0070 */ union _SLIST_HEADER FreeList; /* off 0x0078 */ union _SLIST_HEADER FlushList; /* off 0x0080 */ union _SLIST_HEADER GlobalList; /* off 0x0088 */ union _SLIST_HEADER* ProcessorBuffers; /* off 0x008c */ struct _UNICODE_STRING LoggerName; /* off 0x0094 */ struct _UNICODE_STRING LogFileName; /* off 0x009c */ struct _UNICODE_STRING LogFilePattern; /* off 0x00a4 */ struct _UNICODE_STRING NewLogFileName; /* off 0x00ac */ unsigned char* EndPageMarker; /* off 0x00b0 */ long CollectionOn; /* off 0x00b4 */ unsigned long KernelTraceOn; /* off 0x00b8 */ long PerfLogInTransition; /* off 0x00bc */ unsigned long RequestFlag; /* off 0x00c0 */ unsigned long EnableFlags; /* off 0x00c4 */ unsigned long MaximumFileSize; union { /* off 0x00c8 */ unsigned long LoggerMode; /* off 0x00c8 */ struct _WMI_LOGGER_MODE LoggerModeFlags; }; /* off 0x00cc */ unsigned long LastFlushedBuffer; /* off 0x00d0 */ unsigned long RefCount; /* off 0x00d4 */ unsigned long FlushTimer; /* off 0x00d8 */ union _LARGE_INTEGER FirstBufferOffset; /* off 0x00e0 */ union _LARGE_INTEGER ByteOffset; /* off 0x00e8 */ union _LARGE_INTEGER BufferAgeLimit; /* off 0x00f0 */ unsigned long MaximumBuffers; /* off 0x00f4 */ unsigned long MinimumBuffers; /* off 0x00f8 */ unsigned long EventsLost; /* off 0x00fc */ unsigned long BuffersWritten; /* off 0x0100 */ unsigned long LogBuffersLost; /* off 0x0104 */ unsigned long RealTimeBuffersLost; /* off 0x0108 */ unsigned long BufferSize; /* off 0x010c */ long NumberOfBuffers; /* off 0x0110 */ long* SequencePtr; /* off 0x0114 */ struct _GUID InstanceGuid; /* off 0x0124 */ void* LoggerHeader; /* off 0x0128 */ __int64( __stdcall *GetCpuClock)(); /* off 0x012c */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x0168 */ void* LoggerExtension; /* off 0x016c */ long ReleaseQueue; /* off 0x0170 */ struct _TRACE_ENABLE_FLAG_EXTENSION EnableFlagExtension; /* off 0x0174 */ unsigned long LocalSequence; /* off 0x0178 */ unsigned long MaximumIrql; /* off 0x017c */ unsigned long* EnableFlagArray; /* off 0x0180 */ struct _KMUTANT LoggerMutex; /* off 0x01a0 */ long MutexCount; /* off 0x01a4 */ unsigned long FileCounter; /* off 0x01a8 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x01ac */ void* CallbackContext; /* off 0x01b0 */ enum _POOL_TYPE PoolType; /* off 0x01b8 */ union _LARGE_INTEGER ReferenceSystemTime; /* off 0x01c0 */ union _LARGE_INTEGER ReferenceTimeStamp; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _WMI_CLIENT_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Free:1 /* start bit 0 */; /* off 0x0000 */ unsigned long InUse:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Flush:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Unused:29 /* start bit 3 */; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned __int64 Reserved1; union { struct { /* off 0x0008 */ unsigned __int64 Reserved2; union { struct { /* off 0x0010 */ union _LARGE_INTEGER Reserved3; union { struct { /* off 0x0018 */ void* Alignment; /* off 0x001c */ struct _SINGLE_LIST_ENTRY SlistEntry; }; struct { /* off 0x0018 */ struct _LIST_ENTRY Entry; }; struct { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ unsigned long SavedOffset; }; struct { /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ unsigned long UsePerfClock; }; }; }; struct { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; }; }; struct { /* off 0x0018 */ struct _GUID Guid; }; }; /* off 0x0028 */ struct _WMI_CLIENT_CONTEXT ClientContext; union { /* off 0x002c */ struct _WMI_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned long EventsLost; union { /* off 0x0038 */ struct _GUID InstanceGuid; struct { /* off 0x0038 */ void* LoggerContext; /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; }; }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long Reserved[2]; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; struct _HIVE_LIST_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short* Name; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ struct _CMHIVE* CmHive; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _CMHIVE* CmHive2; /* off 0x0014 */ unsigned char ThreadFinished; /* off 0x0015 */ unsigned char ThreadStarted; /* off 0x0016 */ unsigned char Allocate; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _DUAL /* sizeof 000000dc 220 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _RTL_BITMAP FreeDisplay[24]; /* off 0x00d0 */ unsigned long FreeSummary; /* off 0x00d4 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned char RealWrites; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char Log; /* off 0x0044 */ unsigned long HiveFlags; /* off 0x0048 */ unsigned long LogSize; /* off 0x004c */ unsigned long RefreshCount; /* off 0x0050 */ unsigned long StorageTypeCount; /* off 0x0054 */ unsigned long Version; /* off 0x0058 */ struct _DUAL Storage[2]; }; struct _CMHIVE /* sizeof 0000049c 1180 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x0210 */ void* FileHandles[3]; /* off 0x021c */ struct _LIST_ENTRY NotifyList; /* off 0x0224 */ struct _LIST_ENTRY HiveList; /* off 0x022c */ struct _FAST_MUTEX* HiveLock; /* off 0x0230 */ struct _FAST_MUTEX* ViewLock; /* off 0x0234 */ struct _LIST_ENTRY LRUViewListHead; /* off 0x023c */ struct _LIST_ENTRY PinViewListHead; /* off 0x0244 */ struct _FILE_OBJECT* FileObject; /* off 0x0248 */ struct _UNICODE_STRING FileFullPath; /* off 0x0250 */ struct _UNICODE_STRING FileUserName; /* off 0x0258 */ unsigned short MappedViews; /* off 0x025a */ unsigned short PinnedViews; /* off 0x025c */ unsigned long UseCount; /* off 0x0260 */ unsigned long SecurityCount; /* off 0x0264 */ unsigned long SecurityCacheSize; /* off 0x0268 */ long SecurityHitHint; /* off 0x026c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0270 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0470 */ struct _KEVENT* UnloadEvent; /* off 0x0474 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x0478 */ unsigned char Frozen; /* off 0x047c */ struct _WORK_QUEUE_ITEM* UnloadWorkItem; /* off 0x0480 */ unsigned char GrowOnlyMode; /* off 0x0484 */ unsigned long GrowOffset; /* off 0x0488 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x0490 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0498 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ unsigned short Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ unsigned short Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ unsigned short KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ unsigned long Reserved1[99]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[894]; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:8 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 8 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 9 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:12 /* start bit 10 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0040 */ unsigned short KcbMaxNameLen; /* off 0x0042 */ unsigned short KcbMaxValueNameLen; /* off 0x0044 */ unsigned long KcbMaxValueDataLen; /* off 0x0048 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0048 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0048 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0048 */ unsigned long Flags:16 /* start bit 16 */; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ unsigned short Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ unsigned short Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _DEVICE_NODE /* sizeof 00000118 280 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY* Notify; /* off 0x0018 */ enum _PNP_DEVNODE_STATE State; /* off 0x001c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0020 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x0070 */ unsigned long StateHistoryEntry; /* off 0x0074 */ long CompletionStatus; /* off 0x0078 */ struct _IRP* PendingIrp; /* off 0x007c */ unsigned long Flags; /* off 0x0080 */ unsigned long UserFlags; /* off 0x0084 */ unsigned long Problem; /* off 0x0088 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x008c */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x0090 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x0094 */ struct _UNICODE_STRING InstancePath; /* off 0x009c */ struct _UNICODE_STRING ServiceName; /* off 0x00a4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00a8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00ac */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00b0 */ unsigned long BusNumber; /* off 0x00b4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00b8 */ unsigned long ChildBusNumber; /* off 0x00bc */ unsigned short ChildBusTypeIndex; /* off 0x00be */ unsigned char RemovalPolicy; /* off 0x00bf */ unsigned char HardwareRemovalPolicy; /* off 0x00c0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00c8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x00d0 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x00d8 */ unsigned short NoTranslatorMask; /* off 0x00da */ unsigned short QueryTranslatorMask; /* off 0x00dc */ unsigned short NoArbiterMask; /* off 0x00de */ unsigned short QueryArbiterMask; /* off 0x00e0 */ struct __unnamed OverUsed1; /* off 0x00e4 */ struct __unnamed OverUsed2; /* off 0x00e8 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x00ec */ unsigned long CapabilityFlags; /* off 0x00f0 */ struct __unnamed DockInfo; /* off 0x0100 */ unsigned long DisableableDepends; /* off 0x0104 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x010c */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0114 */ unsigned long DriverUnloadRetryCount; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char WakeNeeded; /* off 0x000d */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ void* Node; /* off 0x0018 */ unsigned short* DeviceName; /* off 0x001c */ unsigned short* DriverName; /* off 0x0020 */ unsigned long ChildCount; /* off 0x0024 */ unsigned long ActiveChild; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ struct __unnamed u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 MaximumInterfaceType =0x00000010 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ struct __unnamed u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 00000d70 3440 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char DebugActive; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; struct _MMCOLOR_TABLES /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ void* Blink; /* off 0x0008 */ unsigned long Count; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct __unnamed u1; /* off 0x0004 */ struct _MMPTE* PteAddress; /* off 0x0008 */ struct __unnamed u2; /* off 0x000c */ struct __unnamed u3; /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0018 */ struct __unnamed u4; }; struct _MMPFNENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Modified:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadInProgress:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WriteInProgress:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PageColor:3 /* start bit 4 */; /* off 0x0000 */ unsigned long ParityError:1 /* start bit 7 */; /* off 0x0000 */ unsigned long PageLocation:3 /* start bit 8 */; /* off 0x0000 */ unsigned long RemovalRequested:1 /* start bit 11 */; /* off 0x0000 */ unsigned long CacheAttribute:2 /* start bit 12 */; /* off 0x0000 */ unsigned long Rom:1 /* start bit 14 */; /* off 0x0000 */ unsigned long LockCharged:1 /* start bit 15 */; /* off 0x0000 */ unsigned long DontUse:16 /* start bit 16 */; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _RTL_BITMAP* PagedPoolAllocationMap; /* off 0x0004 */ struct _RTL_BITMAP* EndOfPagedPoolBitmap; /* off 0x0008 */ struct _RTL_BITMAP* PagedPoolLargeSessionAllocationMap; /* off 0x000c */ struct _MMPTE* FirstPteForPagedPool; /* off 0x0010 */ struct _MMPTE* LastPteForPagedPool; /* off 0x0014 */ struct _MMPTE* NextPdeForPagedPoolExpansion; /* off 0x0018 */ unsigned long PagedPoolHint; /* off 0x001c */ unsigned long PagedPoolCommit; /* off 0x0020 */ unsigned long AllocatedPagedPool; }; struct _MMSESSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _FAST_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _FAST_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ char* SystemSpaceViewStart; /* off 0x0028 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x002c */ unsigned long SystemSpaceHashSize; /* off 0x0030 */ unsigned long SystemSpaceHashEntries; /* off 0x0034 */ unsigned long SystemSpaceHashKey; /* off 0x0038 */ struct _RTL_BITMAP* SystemSpaceBitMap; }; struct _POOL_DESCRIPTOR /* sizeof 00001028 4136 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ unsigned long RunningAllocs; /* off 0x000c */ unsigned long RunningDeAllocs; /* off 0x0010 */ unsigned long TotalPages; /* off 0x0014 */ unsigned long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void* PendingFrees; /* off 0x0024 */ long PendingFreeDepth; /* off 0x0028 */ struct _LIST_ENTRY ListHeads[512]; }; struct _MM_SESSION_SPACE /* sizeof 00001278 4728 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0004 */ struct __unnamed u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long SessionPageDirectoryIndex; /* off 0x0010 */ struct _MM_SESSION_SPACE* GlobalVirtualAddress; /* off 0x0014 */ struct _LIST_ENTRY ProcessList; /* off 0x001c */ unsigned long NonPagedPoolBytes; /* off 0x0020 */ unsigned long PagedPoolBytes; /* off 0x0024 */ unsigned long NonPagedPoolAllocations; /* off 0x0028 */ unsigned long PagedPoolAllocations; /* off 0x002c */ unsigned long NonPagablePages; /* off 0x0030 */ unsigned long CommittedPages; /* off 0x0038 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0040 */ struct _MMPTE* PageTables; /* off 0x0044 */ struct _FAST_MUTEX PagedPoolMutex; /* off 0x0064 */ void* PagedPoolStart; /* off 0x0068 */ void* PagedPoolEnd; /* off 0x006c */ struct _MMPTE* PagedPoolBasePde; /* off 0x0070 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0094 */ unsigned long Color; /* off 0x0098 */ unsigned long ProcessOutSwapCount; /* off 0x009c */ struct _LIST_ENTRY ImageList; /* off 0x00a4 */ struct _MMPTE* GlobalPteEntry; /* off 0x00a8 */ unsigned long CopyOnWriteCount; /* off 0x00ac */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x00bc */ unsigned long AttachCount; /* off 0x00c0 */ struct _KEVENT AttachEvent; /* off 0x00d0 */ struct _EPROCESS* LastProcess; /* off 0x00d8 */ struct _MMSUPPORT Vm; /* off 0x0118 */ struct _MMWSLE* Wsle; /* off 0x011c */ struct _ERESOURCE WsLock; /* off 0x0154 */ struct _LIST_ENTRY WsListEntry; /* off 0x015c */ struct _MMSESSION Session; /* off 0x0198 */ struct _DRIVER_OBJECT Win32KDriverObject; /* off 0x0240 */ struct _ETHREAD* WorkingSetLockOwner; /* off 0x0244 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x126c */ long ProcessReferenceToSession; /* off 0x1270 */ unsigned long LocaleId; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Filler0:3 /* start bit 1 */; /* off 0x0000 */ unsigned long HasWsLock:1 /* start bit 4 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Filler:26 /* start bit 6 */; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short PreviousSize; }; struct { /* off 0x0000 */ void* SubSegmentCode; }; }; /* off 0x0004 */ unsigned char SmallTagIndex; /* off 0x0005 */ unsigned char Flags; /* off 0x0006 */ unsigned char UnusedBytes; /* off 0x0007 */ unsigned char SegmentIndex; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ struct __unnamed Data; }; enum CPU_VENDORS { CPU_NONE =0x00000000 ,//0 CPU_INTEL =0x00000001 ,//0 CPU_AMD =0x00000002 ,//0 CPU_CYRIX =0x00000003 ,//0 CPU_TRANSMETA =0x00000004 ,//0 CPU_CENTAUR =0x00000005 ,//0 CPU_RISE =0x00000006 ,//0 CPU_UNKNOWN =0x00000007 ,//0 }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; struct _POP_ACTION_TRIGGER /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char Spare[3]; union { /* off 0x0008 */ struct __unnamed Battery; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x007c */ struct _IRP* Irp; /* off 0x0080 */ struct _THERMAL_INFORMATION Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyInitiatePowerActionAPI =0x00000003 ,//0 PolicySetPowerStateAPI =0x00000004 ,//0 PolicyImmediateDozeS4 =0x00000005 ,//0 PolicySystemIdle =0x00000006 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; struct _PROCESSOR_POWER_POLICY_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned long DemoteLimit; /* off 0x0008 */ unsigned long PromoteLimit; /* off 0x000c */ unsigned char DemotePercent; /* off 0x000d */ unsigned char PromotePercent; /* off 0x000e */ unsigned char Spare[2]; /* off 0x0010 */ unsigned long AllowDemotion:1 /* start bit 0 */; /* off 0x0010 */ unsigned long AllowPromotion:1 /* start bit 1 */; /* off 0x0010 */ unsigned long Reserved:30 /* start bit 2 */; }; struct _PROCESSOR_POWER_POLICY /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char DynamicThrottle; /* off 0x0005 */ unsigned char Spare[3]; /* off 0x0008 */ unsigned long DisableCStates:1 /* start bit 0 */; /* off 0x0008 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x000c */ unsigned long PolicyCount; /* off 0x0010 */ struct _PROCESSOR_POWER_POLICY_INFO Policy[3]; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ unsigned short Name[1]; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 Spare6 =0x00000019 ,//0 WrKernel =0x0000001a ,//0 MaximumWaitReason =0x0000001b ,//0 }; struct _MMFREE_POOL_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Signature; /* off 0x0010 */ struct _MMFREE_POOL_ENTRY* Owner; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _KUSER_SHARED_DATA /* sizeof 00000338 824 */ { /* off 0x0000 */ unsigned long TickCountLow; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ unsigned short NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long Reserved2[8]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; /* off 0x02f0 */ unsigned long TraceLogging; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _MMVAD_LONG /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long StartingVpn; /* off 0x0004 */ unsigned long EndingVpn; /* off 0x0008 */ struct _MMVAD* Parent; /* off 0x000c */ struct _MMVAD* LeftChild; /* off 0x0010 */ struct _MMVAD* RightChild; /* off 0x0014 */ struct __unnamed u; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _MMPTE* FirstPrototypePte; /* off 0x0020 */ struct _MMPTE* LastContiguousPte; /* off 0x0024 */ struct __unnamed u2; /* off 0x0028 */ struct __unnamed u3; /* off 0x0030 */ struct __unnamed u4; }; struct _MMVAD /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long StartingVpn; /* off 0x0004 */ unsigned long EndingVpn; /* off 0x0008 */ struct _MMVAD* Parent; /* off 0x000c */ struct _MMVAD* LeftChild; /* off 0x0010 */ struct _MMVAD* RightChild; /* off 0x0014 */ struct __unnamed u; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _MMPTE* FirstPrototypePte; /* off 0x0020 */ struct _MMPTE* LastContiguousPte; /* off 0x0024 */ struct __unnamed u2; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long PhysicalMapping:1 /* start bit 19 */; /* off 0x0000 */ unsigned long ImageMap:1 /* start bit 20 */; /* off 0x0000 */ unsigned long UserPhysicalPages:1 /* start bit 21 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 22 */; /* off 0x0000 */ unsigned long WriteWatch:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 29 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 30 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int ReadOnly:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StartVpn; /* off 0x0004 */ unsigned long EndVpn; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long NumberOfPages; }; struct _PCI_SLOT_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct __unnamed u; }; struct PCI_POWER_STATE /* sizeof 00000040 64 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0004 */ enum _DEVICE_POWER_STATE CurrentDeviceState; /* off 0x0008 */ enum _SYSTEM_POWER_STATE SystemWakeLevel; /* off 0x000c */ enum _DEVICE_POWER_STATE DeviceWakeLevel; /* off 0x0010 */ enum _DEVICE_POWER_STATE SystemStateMapping[7]; /* off 0x002c */ struct _IRP* WaitWakeIrp; /* off 0x0030 */ void( __stdcall *SavedCancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ long Paging; /* off 0x0038 */ long Hibernate; /* off 0x003c */ long CrashDump; }; union PCI_HEADER_TYPE_DEPENDENT /* sizeof 00000004 4 */ { /* off 0x0000 */ struct __unnamed type0; /* off 0x0000 */ struct __unnamed type1; /* off 0x0000 */ struct __unnamed type2; }; struct _PCI_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Atom; /* off 0x0004 */ unsigned char OldIrql; }; struct _PM_SUPPORT /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Rsvd2:1 /* start bit 0 */; /* off 0x0000 */ unsigned char D1:1 /* start bit 1 */; /* off 0x0000 */ unsigned char D2:1 /* start bit 2 */; /* off 0x0000 */ unsigned char PMED0:1 /* start bit 3 */; /* off 0x0000 */ unsigned char PMED1:1 /* start bit 4 */; /* off 0x0000 */ unsigned char PMED2:1 /* start bit 5 */; /* off 0x0000 */ unsigned char PMED3Hot:1 /* start bit 6 */; /* off 0x0000 */ unsigned char PMED3Cold:1 /* start bit 7 */; }; struct _PCI_PMC /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char Version:3 /* start bit 0 */; /* off 0x0000 */ unsigned char PMEClock:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Rsvd1:1 /* start bit 4 */; /* off 0x0000 */ unsigned char DeviceSpecificInitialization:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Rsvd2:2 /* start bit 6 */; /* off 0x0001 */ struct _PM_SUPPORT Support; }; struct _PCI_PDO_EXTENSION /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PCI_PDO_EXTENSION* Next; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable; /* off 0x000c */ unsigned char DeviceState; /* off 0x000d */ unsigned char TentativeNextState; /* off 0x0010 */ struct _KEVENT SecondaryExtLock; /* off 0x0020 */ struct _PCI_SLOT_NUMBER Slot; /* off 0x0024 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0028 */ struct _PCI_FDO_EXTENSION* ParentFdoExtension; /* off 0x002c */ struct _SINGLE_LIST_ENTRY SecondaryExtension; /* off 0x0030 */ unsigned long BusInterfaceReferenceCount; /* off 0x0034 */ unsigned long AgpInterfaceReferenceCount; /* off 0x0038 */ unsigned short VendorId; /* off 0x003a */ unsigned short DeviceId; /* off 0x003c */ unsigned short SubsystemVendorId; /* off 0x003e */ unsigned short SubsystemId; /* off 0x0040 */ unsigned char RevisionId; /* off 0x0041 */ unsigned char ProgIf; /* off 0x0042 */ unsigned char SubClass; /* off 0x0043 */ unsigned char BaseClass; /* off 0x0044 */ unsigned char AdditionalResourceCount; /* off 0x0045 */ unsigned char AdjustedInterruptLine; /* off 0x0046 */ unsigned char InterruptPin; /* off 0x0047 */ unsigned char RawInterruptLine; /* off 0x0048 */ unsigned char CapabilitiesPtr; /* off 0x0049 */ unsigned char SavedLatencyTimer; /* off 0x004a */ unsigned char SavedCacheLineSize; /* off 0x004b */ unsigned char HeaderType; /* off 0x004c */ unsigned char NotPresent; /* off 0x004d */ unsigned char ReportedMissing; /* off 0x004e */ unsigned char ExpectedWritebackFailure; /* off 0x004f */ unsigned char NoTouchPmeEnable; /* off 0x0050 */ unsigned char LegacyDriver; /* off 0x0051 */ unsigned char UpdateHardware; /* off 0x0052 */ unsigned char MovedDevice; /* off 0x0053 */ unsigned char DisablePowerDown; /* off 0x0054 */ unsigned char NeedsHotPlugConfiguration; /* off 0x0055 */ unsigned char SwitchedIDEToNativeMode; /* off 0x0056 */ unsigned char BIOSAllowsIDESwitchToNativeMode; /* off 0x0057 */ unsigned char IoSpaceUnderNativeIdeControl; /* off 0x0058 */ unsigned char OnDebugPath; /* off 0x005c */ struct PCI_POWER_STATE PowerState; /* off 0x009c */ union PCI_HEADER_TYPE_DEPENDENT Dependent; /* off 0x00a0 */ unsigned __int64 HackFlags; /* off 0x00a8 */ struct PCI_FUNCTION_RESOURCES* Resources; /* off 0x00ac */ struct _PCI_FDO_EXTENSION* BridgeFdoExtension; /* off 0x00b0 */ struct _PCI_PDO_EXTENSION* NextBridge; /* off 0x00b4 */ struct _PCI_PDO_EXTENSION* NextHashEntry; /* off 0x00b8 */ struct _PCI_LOCK Lock; /* off 0x00c0 */ struct _PCI_PMC PowerCapabilities; /* off 0x00c2 */ unsigned char TargetAgpCapabilityId; /* off 0x00c4 */ unsigned short CommandEnables; /* off 0x00c6 */ unsigned short InitialCommand; }; enum PCI_SIGNATURE { PciPdoExtensionType =0x69635030 ,//0 PciFdoExtensionType =0x69635031 ,//0 PciArb_Io =0x69635032 ,//0 PciArb_Memory =0x69635033 ,//0 PciArb_Interrupt =0x69635034 ,//0 PciArb_BusNumber =0x69635035 ,//0 PciTrans_Interrupt =0x69635036 ,//0 PciInterface_BusHandler =0x69635037 ,//0 PciInterface_IntRouteHandler =0x69635038 ,//0 PciInterface_PciCb =0x69635039 ,//0 PciInterface_LegacyDeviceDetection =0x6963503a ,//0 PciInterface_PmeHandler =0x6963503b ,//0 PciInterface_DevicePresent =0x6963503c ,//0 PciInterface_NativeIde =0x6963503d ,//0 PciInterface_AgpTarget =0x6963503e ,//0 }; struct _PCI_MJ_DISPATCH_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long PnpIrpMaximumMinorFunction; /* off 0x0004 */ struct _PCI_MN_DISPATCH_TABLE* PnpIrpDispatchTable; /* off 0x0008 */ unsigned long PowerIrpMaximumMinorFunction; /* off 0x000c */ struct _PCI_MN_DISPATCH_TABLE* PowerIrpDispatchTable; /* off 0x0010 */ enum _PCI_DISPATCH_STYLE SystemControlIrpDispatchStyle; /* off 0x0014 */ long( __stdcall *SystemControlIrpDispatchFunction)(struct _IRP*,struct _IO_STACK_LOCATION*,struct _PCI_COMMON_EXTENSION*); /* off 0x0018 */ enum _PCI_DISPATCH_STYLE OtherIrpDispatchStyle; /* off 0x001c */ long( __stdcall *OtherIrpDispatchFunction)(struct _IRP*,struct _IO_STACK_LOCATION*,struct _PCI_COMMON_EXTENSION*); }; struct _PCI_MN_DISPATCH_TABLE /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PCI_DISPATCH_STYLE DispatchStyle; /* off 0x0004 */ long( __stdcall *DispatchFunction)(struct _IRP*,struct _IO_STACK_LOCATION*,struct _PCI_COMMON_EXTENSION*); }; enum _PCI_DISPATCH_STYLE { IRP_COMPLETE =0x00000000 ,//0 IRP_DOWNWARD =0x00000001 ,//0 IRP_UPWARD =0x00000002 ,//0 IRP_DISPATCH =0x00000003 ,//0 }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ struct __unnamed Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _PCI_COMMON_EXTENSION /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable; /* off 0x000c */ unsigned char DeviceState; /* off 0x000d */ unsigned char TentativeNextState; /* off 0x0010 */ struct _KEVENT SecondaryExtLock; }; struct _PCI_FDO_EXTENSION /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY List; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ struct _PCI_MJ_DISPATCH_TABLE* IrpDispatchTable; /* off 0x000c */ unsigned char DeviceState; /* off 0x000d */ unsigned char TentativeNextState; /* off 0x0010 */ struct _KEVENT SecondaryExtLock; /* off 0x0020 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0024 */ struct _DEVICE_OBJECT* FunctionalDeviceObject; /* off 0x0028 */ struct _DEVICE_OBJECT* AttachedDeviceObject; /* off 0x002c */ struct _KEVENT ChildListLock; /* off 0x003c */ struct _PCI_PDO_EXTENSION* ChildPdoList; /* off 0x0040 */ struct _PCI_FDO_EXTENSION* BusRootFdoExtension; /* off 0x0044 */ struct _PCI_FDO_EXTENSION* ParentFdoExtension; /* off 0x0048 */ struct _PCI_PDO_EXTENSION* ChildBridgePdoList; /* off 0x004c */ struct _PCI_BUS_INTERFACE_STANDARD* PciBusInterface; /* off 0x0050 */ unsigned char MaxSubordinateBus; /* off 0x0054 */ struct _BUS_HANDLER* BusHandler; /* off 0x0058 */ unsigned char BaseBus; /* off 0x0059 */ unsigned char Fake; /* off 0x005a */ unsigned char ChildDelete; /* off 0x005b */ unsigned char Scanned; /* off 0x005c */ unsigned char ArbitersInitialized; /* off 0x005d */ unsigned char BrokenVideoHackApplied; /* off 0x005e */ unsigned char Hibernated; /* off 0x0060 */ struct PCI_POWER_STATE PowerState; /* off 0x00a0 */ struct _SINGLE_LIST_ENTRY SecondaryExtension; /* off 0x00a4 */ unsigned long ChildWaitWakeCount; /* off 0x00a8 */ struct _PCI_COMMON_CONFIG* PreservedConfig; /* off 0x00ac */ struct _PCI_LOCK Lock; /* off 0x00b4 */ struct __unnamed HotPlugParameters; /* off 0x00bc */ unsigned long BusHackFlags; }; struct _PCI_BUS_INTERFACE_STANDARD /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ unsigned long( __stdcall *ReadConfig)(void*,unsigned char,unsigned long,void*,unsigned long,unsigned long); /* off 0x0014 */ unsigned long( __stdcall *WriteConfig)(void*,unsigned char,unsigned long,void*,unsigned long,unsigned long); /* off 0x0018 */ void( __stdcall *PinToLine)(void*,struct _PCI_COMMON_CONFIG*); /* off 0x001c */ void( __stdcall *LineToPin)(void*,struct _PCI_COMMON_CONFIG*,struct _PCI_COMMON_CONFIG*); }; struct _PCI_COMMON_CONFIG /* sizeof 00000100 256 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned short Command; /* off 0x0006 */ unsigned short Status; /* off 0x0008 */ unsigned char RevisionID; /* off 0x0009 */ unsigned char ProgIf; /* off 0x000a */ unsigned char SubClass; /* off 0x000b */ unsigned char BaseClass; /* off 0x000c */ unsigned char CacheLineSize; /* off 0x000d */ unsigned char LatencyTimer; /* off 0x000e */ unsigned char HeaderType; /* off 0x000f */ unsigned char BIST; /* off 0x0010 */ struct __unnamed u; /* off 0x0040 */ unsigned char DeviceSpecific[192]; }; struct _BUS_HANDLER /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ enum _BUS_DATA_TYPE ConfigurationType; /* off 0x000c */ unsigned long BusNumber; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ struct _BUS_HANDLER* ParentHandler; /* off 0x0018 */ void* BusData; /* off 0x001c */ unsigned long DeviceControlExtensionSize; /* off 0x0020 */ struct _SUPPORTED_RANGES* BusAddresses; /* off 0x0024 */ unsigned long Reserved[4]; /* off 0x0034 */ unsigned long( __stdcall *GetBusData)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,unsigned long,void*,unsigned long,unsigned long); /* off 0x0038 */ unsigned long( __stdcall *SetBusData)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,unsigned long,void*,unsigned long,unsigned long); /* off 0x003c */ long( __stdcall *AdjustResourceList)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,struct _IO_RESOURCE_REQUIREMENTS_LIST**); /* off 0x0040 */ long( __stdcall *AssignSlotResources)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,struct _UNICODE_STRING*,struct _UNICODE_STRING*,struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*,unsigned long,struct _CM_RESOURCE_LIST**); /* off 0x0044 */ unsigned long( __stdcall *GetInterruptVector)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,unsigned long,unsigned long,unsigned char*,unsigned long*); /* off 0x0048 */ unsigned char( __stdcall *TranslateBusAddress)(struct _BUS_HANDLER*,struct _BUS_HANDLER*,union _LARGE_INTEGER,unsigned long*,union _LARGE_INTEGER*); /* off 0x004c */ void* Spare1; /* off 0x0050 */ void* Spare2; /* off 0x0054 */ void* Spare3; /* off 0x0058 */ void* Spare4; /* off 0x005c */ void* Spare5; /* off 0x0060 */ void* Spare6; /* off 0x0064 */ void* Spare7; /* off 0x0068 */ void* Spare8; }; enum _BUS_DATA_TYPE { ConfigurationSpaceUndefined =0xffffffff ,//-1 Cmos =0x00000000 ,//0 EisaConfiguration =0x00000001 ,//0 Pos =0x00000002 ,//0 CbusConfiguration =0x00000003 ,//0 PCIConfiguration =0x00000004 ,//0 VMEConfiguration =0x00000005 ,//0 NuBusConfiguration =0x00000006 ,//0 PCMCIAConfiguration =0x00000007 ,//0 MPIConfiguration =0x00000008 ,//0 MPSAConfiguration =0x00000009 ,//0 PNPISAConfiguration =0x0000000a ,//0 SgiInternalConfiguration =0x0000000b ,//0 MaximumBusDataType =0x0000000c ,//0 }; struct _SUPPORTED_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _SUPPORTED_RANGE* Next; /* off 0x0004 */ unsigned long SystemAddressSpace; /* off 0x0008 */ __int64 SystemBase; /* off 0x0010 */ __int64 Base; /* off 0x0018 */ __int64 Limit; }; struct _SUPPORTED_RANGES /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char Sorted; /* off 0x0003 */ unsigned char Reserved; /* off 0x0004 */ unsigned long NoIO; /* off 0x0008 */ struct _SUPPORTED_RANGE IO; /* off 0x0028 */ unsigned long NoMemory; /* off 0x0030 */ struct _SUPPORTED_RANGE Memory; /* off 0x0050 */ unsigned long NoPrefetchMemory; /* off 0x0058 */ struct _SUPPORTED_RANGE PrefetchMemory; /* off 0x0078 */ unsigned long NoDma; /* off 0x0080 */ struct _SUPPORTED_RANGE Dma; }; struct PCI_FUNCTION_RESOURCES /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _IO_RESOURCE_DESCRIPTOR Limit[7]; /* off 0x00e0 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR Current[7]; }; struct _QUAD /* sizeof 00000008 8 */ { /* off 0x0000 */ double DoNotUseThisField; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct __unnamed Allocated; /* off 0x0010 */ struct __unnamed Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _SYSPTES_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct __unnamed Parameters; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ struct __unnamed Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ unsigned short Reserved; /* off 0x00a2 */ unsigned short SymbolicLinkUsageCount; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; }; struct _DEVICE_MAP /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ unsigned long ReferenceCount; /* off 0x000c */ unsigned long DriveMap; /* off 0x0010 */ unsigned char DriveType[32]; }; struct _KINTERRUPT /* sizeof 000001e4 484 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ void* ServiceContext; /* off 0x0014 */ unsigned long SpinLock; /* off 0x0018 */ unsigned long TickCount; /* off 0x001c */ unsigned long* ActualLock; /* off 0x0020 */ void( __stdcall *DispatchAddress)(); /* off 0x0024 */ unsigned long Vector; /* off 0x0028 */ unsigned char Irql; /* off 0x0029 */ unsigned char SynchronizeIrql; /* off 0x002a */ unsigned char FloatingSave; /* off 0x002b */ unsigned char Connected; /* off 0x002c */ char Number; /* off 0x002d */ unsigned char ShareVector; /* off 0x0030 */ enum _KINTERRUPT_MODE Mode; /* off 0x0034 */ unsigned long ServiceCount; /* off 0x0038 */ unsigned long DispatchCount; /* off 0x003c */ unsigned long DispatchCode[106]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; struct PCI_SECONDARY_EXTENSION /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY List; /* off 0x0004 */ enum PCI_SIGNATURE ExtensionType; /* off 0x0008 */ void( __stdcall *Destructor)(void*); }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 0000009c 156 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ int ResourceType; /* off 0x0010 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0014 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x0018 */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0020 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x0028 */ long ReferenceCount; /* off 0x002c */ struct _ARBITER_INTERFACE* Interface; /* off 0x0030 */ unsigned long AllocationStackMaxSize; /* off 0x0034 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x0038 */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned long*,unsigned long*); /* off 0x003c */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0040 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned long*); /* off 0x0044 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x0048 */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x004c */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x0050 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0054 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x005c */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _LIST_ENTRY*); /* off 0x0060 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _DEVICE_OBJECT*,struct _IO_RESOURCE_DESCRIPTOR*,unsigned long*,struct _ARBITER_CONFLICT_INFO**); /* off 0x0064 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _IO_RESOURCE_DESCRIPTOR*,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0068 */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x006c */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0070 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char TransactionInProgress; /* off 0x008c */ void* Extension; /* off 0x0090 */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x0094 */ void* ConflictCallbackContext; /* off 0x0098 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); }; struct _PCI_ARBITER_INSTANCE /* sizeof 000000e0 224 */ { /* off 0x0000 */ struct PCI_SECONDARY_EXTENSION Header; /* off 0x000c */ struct _PCI_INTERFACE* Interface; /* off 0x0010 */ struct _PCI_FDO_EXTENSION* BusFdoExtension; /* off 0x0014 */ unsigned short InstanceName[24]; /* off 0x0044 */ struct _ARBITER_INSTANCE CommonInstance; }; struct _PCI_INTERFACE /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short MinSize; /* off 0x0006 */ unsigned short MinVersion; /* off 0x0008 */ unsigned short MaxVersion; /* off 0x000a */ unsigned short Flags; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ enum PCI_SIGNATURE Signature; /* off 0x0014 */ long( __stdcall *Constructor)(void*,void*,void*,unsigned short,unsigned short,struct _INTERFACE*); /* off 0x0018 */ long( __stdcall *Initializer)(struct _PCI_ARBITER_INSTANCE*); }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned long Length; /* off 0x0014 */ unsigned long Alignment; /* off 0x0018 */ long Priority; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x0024 */ unsigned long Reserved[3]; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _MMPAGING_FILE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long CurrentUsage; /* off 0x0014 */ unsigned long PeakUsage; /* off 0x0018 */ unsigned long Hint; /* off 0x001c */ unsigned long HighestPage; /* off 0x0020 */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0028 */ struct _RTL_BITMAP* Bitmap; /* off 0x002c */ struct _FILE_OBJECT* File; /* off 0x0030 */ struct _UNICODE_STRING PageFileName; /* off 0x0038 */ unsigned long PageFileNumber; /* off 0x003c */ unsigned char Extended; /* off 0x003d */ unsigned char HintSetToZero; /* off 0x003e */ unsigned char BootPartition; /* off 0x0040 */ void* FileHandle; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union _LARGE_INTEGER WriteOffset; /* off 0x0010 */ struct __unnamed u; /* off 0x0018 */ struct _IRP* Irp; /* off 0x001c */ unsigned long LastPageToWrite; /* off 0x0020 */ struct _MMMOD_WRITER_LISTHEAD* PagingListHead; /* off 0x0024 */ struct _LIST_ENTRY* CurrentList; /* off 0x0028 */ struct _MMPAGING_FILE* PagingFile; /* off 0x002c */ struct _FILE_OBJECT* File; /* off 0x0030 */ struct _CONTROL_AREA* ControlArea; /* off 0x0034 */ struct _ERESOURCE* FileResource; /* off 0x0038 */ struct _MDL Mdl; /* off 0x0054 */ unsigned long Page[1]; }; struct _MMMOD_WRITER_LISTHEAD /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ struct _KEVENT Event; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; enum _MEMORY_TYPE { MemoryExceptionBlock =0x00000000 ,//0 MemorySystemBlock =0x00000001 ,//0 MemoryFree =0x00000002 ,//0 MemoryBad =0x00000003 ,//0 MemoryLoadedProgram =0x00000004 ,//0 MemoryFirmwareTemporary =0x00000005 ,//0 MemoryFirmwarePermanent =0x00000006 ,//0 MemoryFreeContiguous =0x00000007 ,//0 MemorySpecialMemory =0x00000008 ,//0 MemoryMaximum =0x00000009 ,//0 }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; /* off 0x0023 */ unsigned char Spare1; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long Reserved[1]; }; struct _POP_IDLE_HANDLER /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Latency; /* off 0x0004 */ unsigned long TimeCheck; /* off 0x0008 */ unsigned long DemoteLimit; /* off 0x000c */ unsigned long PromoteLimit; /* off 0x0010 */ unsigned long PromoteCount; /* off 0x0014 */ unsigned char Demote; /* off 0x0015 */ unsigned char Promote; /* off 0x0016 */ unsigned char PromotePercent; /* off 0x0017 */ unsigned char DemotePercent; /* off 0x0018 */ unsigned char State; /* off 0x0019 */ unsigned char Spare[3]; /* off 0x001c */ unsigned char( __fastcall *IdleFunction)(struct PROCESSOR_IDLE_TIMES*); }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char spare2[4]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _SEP_AUDIT_POLICY_CATEGORIES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long System:4 /* start bit 0 */; /* off 0x0000 */ unsigned long Logon:4 /* start bit 4 */; /* off 0x0000 */ unsigned long ObjectAccess:4 /* start bit 8 */; /* off 0x0000 */ unsigned long PrivilegeUse:4 /* start bit 12 */; /* off 0x0000 */ unsigned long DetailedTracking:4 /* start bit 16 */; /* off 0x0000 */ unsigned long PolicyChange:4 /* start bit 20 */; /* off 0x0000 */ unsigned long AccountManagement:4 /* start bit 24 */; /* off 0x0000 */ unsigned long DirectoryServiceAccess:4 /* start bit 28 */; /* off 0x0004 */ unsigned long AccountLogon:4 /* start bit 0 */; }; struct _SEP_AUDIT_POLICY_OVERLAY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 PolicyBits:36 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 SetBit:1 /* start bit 36 */; }; struct _SEP_AUDIT_POLICY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _SEP_AUDIT_POLICY_CATEGORIES PolicyElements; /* off 0x0000 */ struct _SEP_AUDIT_POLICY_OVERLAY PolicyOverlay; /* off 0x0000 */ unsigned __int64 Overlay; }; }; struct _TOKEN /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0038 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0040 */ struct _LUID ModifiedId; /* off 0x0048 */ unsigned long SessionId; /* off 0x004c */ unsigned long UserAndGroupCount; /* off 0x0050 */ unsigned long RestrictedSidCount; /* off 0x0054 */ unsigned long PrivilegeCount; /* off 0x0058 */ unsigned long VariableLength; /* off 0x005c */ unsigned long DynamicCharged; /* off 0x0060 */ unsigned long DynamicAvailable; /* off 0x0064 */ unsigned long DefaultOwnerIndex; /* off 0x0068 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x006c */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0070 */ void* PrimaryGroup; /* off 0x0074 */ struct _LUID_AND_ATTRIBUTES* Privileges; /* off 0x0078 */ unsigned long* DynamicPart; /* off 0x007c */ struct _ACL* DefaultDacl; /* off 0x0080 */ enum _TOKEN_TYPE TokenType; /* off 0x0084 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0088 */ unsigned long TokenFlags; /* off 0x008c */ unsigned char TokenInUse; /* off 0x0090 */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x0094 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x0098 */ struct _LUID OriginatingLogonSession; /* off 0x00a0 */ unsigned long VariablePart; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long NextCookieSequenceNumber; /* off 0x0008 */ void* ActiveFrame; /* off 0x000c */ struct _LIST_ENTRY FrameListCache; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _Wx86ThreadState /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long* CallBx86Eip; /* off 0x0004 */ void* DeallocationCpu; /* off 0x0008 */ unsigned char UseKnownWx86Dll; /* off 0x0009 */ char OleStubInvoked; }; struct _TEB /* sizeof 00000fb8 4024 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK ActivationContextStack; /* off 0x01bc */ unsigned char SpareBytes1[24]; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ unsigned short StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorsAreDisabled; /* off 0x0f2c */ void* Instrumentation[16]; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char InDbgPrint; /* off 0x0f75 */ unsigned char FreeStackOnTermination; /* off 0x0f76 */ unsigned char HasFiberData; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long Spare3; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ struct _Wx86ThreadState Wx86Thread; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ unsigned char SafeThunkCall; /* off 0x0fb5 */ unsigned char BooleanSpare[3]; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _PCI_HEADER_TYPE_0 /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BaseAddresses[6]; /* off 0x0018 */ unsigned long CIS; /* off 0x001c */ unsigned short SubVendorID; /* off 0x001e */ unsigned short SubSystemID; /* off 0x0020 */ unsigned long ROMBaseAddress; /* off 0x0024 */ unsigned char CapabilitiesPtr; /* off 0x0025 */ unsigned char Reserved1[3]; /* off 0x0028 */ unsigned long Reserved2; /* off 0x002c */ unsigned char InterruptLine; /* off 0x002d */ unsigned char InterruptPin; /* off 0x002e */ unsigned char MinimumGrant; /* off 0x002f */ unsigned char MaximumLatency; }; struct _PCI_HEADER_TYPE_1 /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BaseAddresses[2]; /* off 0x0008 */ unsigned char PrimaryBus; /* off 0x0009 */ unsigned char SecondaryBus; /* off 0x000a */ unsigned char SubordinateBus; /* off 0x000b */ unsigned char SecondaryLatency; /* off 0x000c */ unsigned char IOBase; /* off 0x000d */ unsigned char IOLimit; /* off 0x000e */ unsigned short SecondaryStatus; /* off 0x0010 */ unsigned short MemoryBase; /* off 0x0012 */ unsigned short MemoryLimit; /* off 0x0014 */ unsigned short PrefetchBase; /* off 0x0016 */ unsigned short PrefetchLimit; /* off 0x0018 */ unsigned long PrefetchBaseUpper32; /* off 0x001c */ unsigned long PrefetchLimitUpper32; /* off 0x0020 */ unsigned short IOBaseUpper16; /* off 0x0022 */ unsigned short IOLimitUpper16; /* off 0x0024 */ unsigned char CapabilitiesPtr; /* off 0x0025 */ unsigned char Reserved1[3]; /* off 0x0028 */ unsigned long ROMBaseAddress; /* off 0x002c */ unsigned char InterruptLine; /* off 0x002d */ unsigned char InterruptPin; /* off 0x002e */ unsigned short BridgeControl; }; struct _PCI_HEADER_TYPE_2 /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long SocketRegistersBaseAddress; /* off 0x0004 */ unsigned char CapabilitiesPtr; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short SecondaryStatus; /* off 0x0008 */ unsigned char PrimaryBus; /* off 0x0009 */ unsigned char SecondaryBus; /* off 0x000a */ unsigned char SubordinateBus; /* off 0x000b */ unsigned char SecondaryLatency; /* off 0x000c */ struct __unnamed Range[4]; /* off 0x002c */ unsigned char InterruptLine; /* off 0x002d */ unsigned char InterruptPin; /* off 0x002e */ unsigned short BridgeControl; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Key; /* off 0x0004 */ unsigned long NonPagedAllocs; /* off 0x0008 */ unsigned long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; enum _PS_QUOTA_TYPE { PsNonPagedPool =0x00000000 ,//0 PsPagedPool =0x00000001 ,//0 PsPageFile =0x00000002 ,//0 PsQuotaTypes =0x00000003 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; struct _POP_POWER_ACTION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ unsigned char IrpMinor; /* off 0x0018 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x001c */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0020 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0024 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0028 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x002c */ enum _SYSTEM_POWER_STATE LastWakeState; /* off 0x0030 */ unsigned __int64 WakeTime; /* off 0x0038 */ unsigned __int64 SleepTime; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Code; /* off 0x0004 */ unsigned long Parameter1; /* off 0x0008 */ unsigned long Parameter2; /* off 0x000c */ unsigned long Parameter3; /* off 0x0010 */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _KEVENT LevelReady; /* off 0x0010 */ unsigned long DeviceCount; /* off 0x0014 */ unsigned long ActiveCount; /* off 0x0018 */ struct _LIST_ENTRY WaitSleep; /* off 0x0020 */ struct _LIST_ENTRY ReadySleep; /* off 0x0028 */ struct _LIST_ENTRY Pending; /* off 0x0030 */ struct _LIST_ENTRY Complete; /* off 0x0038 */ struct _LIST_ENTRY ReadyS0; /* off 0x0040 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000248 584 */ { /* off 0x0000 */ unsigned long DevNodeSequence; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_POWER_IRP /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Free; /* off 0x0004 */ struct _IRP* Irp; /* off 0x0008 */ struct _PO_DEVICE_NOTIFY* Notify; /* off 0x000c */ struct _LIST_ENTRY Pending; /* off 0x0014 */ struct _LIST_ENTRY Complete; /* off 0x001c */ struct _LIST_ENTRY Abort; /* off 0x0024 */ struct _LIST_ENTRY Failed; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000620 1568 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ struct _KEVENT Event; /* off 0x0018 */ unsigned long SpinLock; /* off 0x001c */ struct _KTHREAD* Thread; /* off 0x0020 */ unsigned char GetNewDeviceList; /* off 0x0024 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x026c */ long Status; /* off 0x0270 */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0274 */ unsigned char Waking; /* off 0x0275 */ unsigned char Cancelled; /* off 0x0276 */ unsigned char IgnoreErrors; /* off 0x0277 */ unsigned char IgnoreNotImplemented; /* off 0x0278 */ unsigned char WaitAny; /* off 0x0279 */ unsigned char WaitAll; /* off 0x027c */ struct _LIST_ENTRY PresentIrpQueue; /* off 0x0284 */ struct _POP_DEVICE_POWER_IRP Head; /* off 0x02b0 */ struct _POP_DEVICE_POWER_IRP PowerIrpState[20]; }; struct _PO_HIBER_PERF /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; }; struct _POP_HIBER_CONTEXT /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char LinkFile; /* off 0x0008 */ void* LinkFileHandle; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char MapFrozen; /* off 0x0014 */ struct _RTL_BITMAP MemoryMap; /* off 0x001c */ struct _LIST_ENTRY ClonedRanges; /* off 0x0024 */ unsigned long ClonedRangeCount; /* off 0x0028 */ struct _LIST_ENTRY* NextCloneRange; /* off 0x002c */ unsigned long NextPreserve; /* off 0x0030 */ struct _MDL* LoaderMdl; /* off 0x0034 */ struct _MDL* Clones; /* off 0x0038 */ unsigned char* NextClone; /* off 0x003c */ unsigned long NoClones; /* off 0x0040 */ struct _MDL* Spares; /* off 0x0048 */ unsigned __int64 PagesOut; /* off 0x0050 */ void* IoPage; /* off 0x0054 */ void* CurrentMcb; /* off 0x0058 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x005c */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0060 */ unsigned long NoRanges; /* off 0x0064 */ unsigned long HiberVa; /* off 0x0068 */ union _LARGE_INTEGER HiberPte; /* off 0x0070 */ long Status; /* off 0x0074 */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0078 */ struct _PO_MEMORY_RANGE_ARRAY* TableHead; /* off 0x007c */ unsigned char* CompressionWorkspace; /* off 0x0080 */ unsigned char* CompressedWriteBuffer; /* off 0x0084 */ unsigned long* PerformanceStats; /* off 0x0088 */ void* CompressionBlock; /* off 0x008c */ void* DmaIO; /* off 0x0090 */ void* TemporaryHeap; /* off 0x0098 */ struct _PO_HIBER_PERF PerfInfo; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ struct __unnamed DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct PO_MEMORY_IMAGE /* sizeof 000000a8 168 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ unsigned long ImageType; /* off 0x0020 */ union _LARGE_INTEGER SystemTime; /* off 0x0028 */ unsigned __int64 InterruptTime; /* off 0x0030 */ unsigned long FeatureFlags; /* off 0x0034 */ unsigned char HiberFlags; /* off 0x0035 */ unsigned char spare[3]; /* off 0x0038 */ unsigned long NoHiberPtes; /* off 0x003c */ unsigned long HiberVa; /* off 0x0040 */ union _LARGE_INTEGER HiberPte; /* off 0x0048 */ unsigned long NoFreePages; /* off 0x004c */ unsigned long FreeMapCheck; /* off 0x0050 */ unsigned long WakeCheck; /* off 0x0054 */ unsigned long TotalPages; /* off 0x0058 */ unsigned long FirstTablePage; /* off 0x005c */ unsigned long LastFilePage; /* off 0x0060 */ struct _PO_HIBER_PERF PerfInfo; }; struct _PO_MEMORY_RANGE_ARRAY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct __unnamed Range; /* off 0x0000 */ struct __unnamed Link; }; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct __unnamed u1; /* off 0x0004 */ struct __unnamed u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _MMVAD_SHORT /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long StartingVpn; /* off 0x0004 */ unsigned long EndingVpn; /* off 0x0008 */ struct _MMVAD* Parent; /* off 0x000c */ struct _MMVAD* LeftChild; /* off 0x0010 */ struct _MMVAD* RightChild; /* off 0x0014 */ struct __unnamed u; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ struct __unnamed u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 MaxPlugEventCategory =0x00000009 ,//0 }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _FAST_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; enum _MMSYSTEM_PTE_POOL_TYPE { SystemPteSpace =0x00000000 ,//0 NonPagedPoolExpansion =0x00000001 ,//0 MaximumPtePoolTypes =0x00000002 ,//0 }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileMaximumInformation =0x00000029 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsMaximumInformation =0x0000000a ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long ListIndex; /* off 0x0004 */ struct _MI_VERIFIER_DRIVER_ENTRY* Verifier; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ unsigned long Reserved; /* off 0x002c */ unsigned long VerifierPoolLock; /* off 0x0030 */ struct _VI_POOL_ENTRY* PoolHash; /* off 0x0034 */ unsigned long PoolHashSize; /* off 0x0038 */ unsigned long PoolHashFree; /* off 0x003c */ unsigned long PoolHashReserved; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ unsigned long FreeListNext; }; }; struct _CM_KEY_BODY /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ unsigned long Callers; /* off 0x0014 */ void* CallerAddress[10]; /* off 0x003c */ struct _LIST_ENTRY KeyBodyList; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_6.0.6000.16386.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Private:31 /* start bit 1 */; } s; } u; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_TASK /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; }; struct _TP_DIRECT /* sizeof 00000004 4 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Absolute; /* off 0x0001 */ unsigned char NpxIrql; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char Size; /* off 0x0002 */ unsigned char Hand; }; union { /* off 0x0003 */ unsigned char Inserted; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 00000208 520 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct PROCESSOR_IDLE_TIMES /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; /* off 0x0010 */ unsigned long Reserved[4]; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000e0 224 */ { /* off 0x0000 */ void( __fastcall *IdleFunction)(struct _PROCESSOR_POWER_STATE*); /* off 0x0004 */ struct PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 LastTimeCheck; /* off 0x0010 */ unsigned __int64 LastIdleTime; /* off 0x0018 */ struct PROCESSOR_IDLE_TIMES IdleTimes; /* off 0x0038 */ struct PPM_IDLE_ACCOUNTING* IdleAccounting; /* off 0x003c */ struct PPM_PERF_STATES* PerfStates; /* off 0x0040 */ unsigned long LastKernelUserTime; /* off 0x0044 */ unsigned long LastIdleThreadKTime; /* off 0x0048 */ unsigned __int64 LastGlobalTimeHv; /* off 0x0050 */ unsigned __int64 LastProcessorTimeHv; /* off 0x0058 */ unsigned char ThermalConstraint; /* off 0x0059 */ unsigned char LastBusyPercentage; /* off 0x005a */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short PStateDomainIdleAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0060 */ struct _KTIMER PerfTimer; /* off 0x0088 */ struct _KDPC PerfDpc; /* off 0x00a8 */ unsigned long LastSysTime; /* off 0x00ac */ struct _KPRCB* PStateMaster; /* off 0x00b0 */ unsigned long PStateSet; /* off 0x00b4 */ unsigned long CurrentPState; /* off 0x00b8 */ unsigned long Reserved0; /* off 0x00bc */ unsigned long DesiredPState; /* off 0x00c0 */ unsigned long Reserved1; /* off 0x00c4 */ unsigned long PStateIdleStartTime; /* off 0x00c8 */ unsigned long PStateIdleTime; /* off 0x00cc */ unsigned long LastPStateIdleTime; /* off 0x00d0 */ unsigned long PStateStartTime; /* off 0x00d4 */ unsigned long WmiDispatchPtr; /* off 0x00d8 */ long WmiInterfaceEnabled; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00001f98 8088 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char Number; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; union { /* off 0x001a */ unsigned short CpuStep; struct { /* off 0x001a */ unsigned char CpuStepping; /* off 0x001b */ unsigned char CpuModel; }; }; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned long CFlushSize; /* off 0x03c0 */ unsigned char PrcbPad0[88]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[33]; /* off 0x0520 */ struct _KTHREAD* NpxThread; /* off 0x0524 */ unsigned long InterruptCount; /* off 0x0528 */ unsigned long KernelTime; /* off 0x052c */ unsigned long UserTime; /* off 0x0530 */ unsigned long DpcTime; /* off 0x0534 */ unsigned long DpcTimeCount; /* off 0x0538 */ unsigned long InterruptTime; /* off 0x053c */ unsigned long AdjustDpcThreshold; /* off 0x0540 */ unsigned long PageColor; /* off 0x0544 */ unsigned char SkipTick; /* off 0x0545 */ unsigned char DebuggerSavedIRQL; /* off 0x0546 */ unsigned char NodeColor; /* off 0x0547 */ unsigned char PollSlot; /* off 0x0548 */ unsigned long NodeShiftedColor; /* off 0x054c */ struct _KNODE* ParentNode; /* off 0x0550 */ unsigned long MultiThreadProcessorSet; /* off 0x0554 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x0558 */ unsigned long SecondaryColorMask; /* off 0x055c */ unsigned long DpcTimeLimit; /* off 0x0560 */ unsigned long CcFastReadNoWait; /* off 0x0564 */ unsigned long CcFastReadWait; /* off 0x0568 */ unsigned long CcFastReadNotPossible; /* off 0x056c */ unsigned long CcCopyReadNoWait; /* off 0x0570 */ unsigned long CcCopyReadWait; /* off 0x0574 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x0578 */ long MmSpinLockOrdering; /* off 0x057c */ long IoReadOperationCount; /* off 0x0580 */ long IoWriteOperationCount; /* off 0x0584 */ long IoOtherOperationCount; /* off 0x0588 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0590 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0598 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x05a0 */ unsigned long CcFastMdlReadNoWait; /* off 0x05a4 */ unsigned long CcFastMdlReadWait; /* off 0x05a8 */ unsigned long CcFastMdlReadNotPossible; /* off 0x05ac */ unsigned long CcMapDataNoWait; /* off 0x05b0 */ unsigned long CcMapDataWait; /* off 0x05b4 */ unsigned long CcPinMappedDataCount; /* off 0x05b8 */ unsigned long CcPinReadNoWait; /* off 0x05bc */ unsigned long CcPinReadWait; /* off 0x05c0 */ unsigned long CcMdlReadNoWait; /* off 0x05c4 */ unsigned long CcMdlReadWait; /* off 0x05c8 */ unsigned long CcLazyWriteHotSpots; /* off 0x05cc */ unsigned long CcLazyWriteIos; /* off 0x05d0 */ unsigned long CcLazyWritePages; /* off 0x05d4 */ unsigned long CcDataFlushes; /* off 0x05d8 */ unsigned long CcDataPages; /* off 0x05dc */ unsigned long CcLostDelayedWrites; /* off 0x05e0 */ unsigned long CcFastReadResourceMiss; /* off 0x05e4 */ unsigned long CcCopyReadWaitMiss; /* off 0x05e8 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x05ec */ unsigned long CcMapDataNoWaitMiss; /* off 0x05f0 */ unsigned long CcMapDataWaitMiss; /* off 0x05f4 */ unsigned long CcPinReadNoWaitMiss; /* off 0x05f8 */ unsigned long CcPinReadWaitMiss; /* off 0x05fc */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0600 */ unsigned long CcMdlReadWaitMiss; /* off 0x0604 */ unsigned long CcReadAheadIos; /* off 0x0608 */ unsigned long KeAlignmentFixupCount; /* off 0x060c */ unsigned long KeExceptionDispatchCount; /* off 0x0610 */ unsigned long KeSystemCalls; /* off 0x0614 */ unsigned long PrcbPad1[3]; /* off 0x0620 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x06a0 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x0fa0 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x18a0 */ unsigned long PacketBarrier; /* off 0x18a4 */ long ReverseStall; /* off 0x18a8 */ void* IpiFrame; /* off 0x18ac */ unsigned char PrcbPad2[52]; /* off 0x18e0 */ void* CurrentPacket[3]; /* off 0x18ec */ unsigned long TargetSet; /* off 0x18f0 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x18f4 */ unsigned long IpiFrozen; /* off 0x18f8 */ unsigned char PrcbPad3[40]; /* off 0x1920 */ unsigned long RequestSummary; /* off 0x1924 */ struct _KPRCB* SignalDone; /* off 0x1928 */ unsigned char PrcbPad4[56]; /* off 0x1960 */ struct _KDPC_DATA DpcData[2]; /* off 0x1988 */ void* DpcStack; /* off 0x198c */ long MaximumDpcQueueDepth; /* off 0x1990 */ unsigned long DpcRequestRate; /* off 0x1994 */ unsigned long MinimumDpcRate; /* off 0x1998 */ unsigned char DpcInterruptRequested; /* off 0x1999 */ unsigned char DpcThreadRequested; /* off 0x199a */ unsigned char DpcRoutineActive; /* off 0x199b */ unsigned char DpcThreadActive; /* off 0x199c */ unsigned long PrcbLock; /* off 0x19a0 */ unsigned long DpcLastCount; /* off 0x19a4 */ unsigned long TimerHand; /* off 0x19a8 */ unsigned long TimerRequest; /* off 0x19ac */ void* PrcbPad41; /* off 0x19b0 */ struct _KEVENT DpcEvent; /* off 0x19c0 */ unsigned char ThreadDpcEnable; /* off 0x19c1 */ unsigned char QuantumEnd; /* off 0x19c2 */ unsigned char PrcbPad50; /* off 0x19c3 */ unsigned char IdleSchedule; /* off 0x19c4 */ long DpcSetEventRequest; /* off 0x19c8 */ long Sleeping; /* off 0x19cc */ unsigned long PeriodicCount; /* off 0x19d0 */ unsigned long PeriodicBias; /* off 0x19d4 */ unsigned char PrcbPad5[6]; /* off 0x19dc */ long TickOffset; /* off 0x19e0 */ struct _KDPC CallDpc; /* off 0x1a00 */ long ClockKeepAlive; /* off 0x1a04 */ unsigned char ClockCheckSlot; /* off 0x1a05 */ unsigned char ClockPollCycle; /* off 0x1a06 */ unsigned char PrcbPad6[2]; /* off 0x1a08 */ long DpcWatchdogPeriod; /* off 0x1a0c */ long DpcWatchdogCount; /* off 0x1a10 */ long ThreadWatchdogPeriod; /* off 0x1a14 */ long ThreadWatchdogCount; /* off 0x1a18 */ unsigned long PrcbPad70[2]; /* off 0x1a20 */ struct _LIST_ENTRY WaitListHead; /* off 0x1a28 */ unsigned long WaitLock; /* off 0x1a2c */ unsigned long ReadySummary; /* off 0x1a30 */ unsigned long QueueIndex; /* off 0x1a34 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1a38 */ unsigned __int64 StartCycles; /* off 0x1a40 */ unsigned __int64 CycleTime; /* off 0x1a48 */ unsigned __int64 PrcbPad71[3]; /* off 0x1a60 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1b60 */ void* ChainedInterruptList; /* off 0x1b64 */ long LookasideIrpFloat; /* off 0x1b68 */ long MmPageFaultCount; /* off 0x1b6c */ long MmCopyOnWriteCount; /* off 0x1b70 */ long MmTransitionCount; /* off 0x1b74 */ long MmCacheTransitionCount; /* off 0x1b78 */ long MmDemandZeroCount; /* off 0x1b7c */ long MmPageReadCount; /* off 0x1b80 */ long MmPageReadIoCount; /* off 0x1b84 */ long MmCacheReadCount; /* off 0x1b88 */ long MmCacheIoCount; /* off 0x1b8c */ long MmDirtyPagesWriteCount; /* off 0x1b90 */ long MmDirtyWriteIoCount; /* off 0x1b94 */ long MmMappedPagesWriteCount; /* off 0x1b98 */ long MmMappedWriteIoCount; /* off 0x1b9c */ unsigned long CachedCommit; /* off 0x1ba0 */ unsigned long CachedResidentAvailable; /* off 0x1ba4 */ void* HyperPte; /* off 0x1ba8 */ unsigned char CpuVendor; /* off 0x1ba9 */ unsigned char PrcbPad9[3]; /* off 0x1bac */ unsigned char VendorString[13]; /* off 0x1bb9 */ unsigned char InitialApicId; /* off 0x1bba */ unsigned char CoresPerPhysicalProcessor; /* off 0x1bbb */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1bbc */ unsigned long MHz; /* off 0x1bc0 */ unsigned long FeatureBits; /* off 0x1bc8 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1bd0 */ unsigned __int64 IsrTime; /* off 0x1bd8 */ unsigned __int64 SpareField1; /* off 0x1be0 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x1df0 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1ed0 */ struct _KDPC DpcWatchdogDpc; /* off 0x1ef0 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1f18 */ void* WheaInfo; /* off 0x1f1c */ void* EtwSupport; /* off 0x1f20 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1f28 */ union _LARGE_INTEGER HypercallPagePhysical; /* off 0x1f30 */ void* HypercallPageVirtual; /* off 0x1f34 */ void* RateControl; /* off 0x1f38 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1f74 */ unsigned long CacheCount; /* off 0x1f78 */ unsigned long CacheProcessorMask[5]; /* off 0x1f8c */ unsigned char LogicalProcessorsPerCore; /* off 0x1f8d */ unsigned char PrcbPad8[3]; /* off 0x1f90 */ unsigned long PackageProcessorSet; /* off 0x1f94 */ unsigned long CoreProcessorSet; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char SpareByte; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; union { /* off 0x0038 */ struct _KAPC_STATE ApcState; struct { /* off 0x0038 */ unsigned char ApcStateFill[23]; /* off 0x004f */ char Priority; }; }; /* off 0x0050 */ unsigned short NextProcessor; /* off 0x0052 */ unsigned short DeferredProcessor; /* off 0x0054 */ unsigned long ApcQueueLock; /* off 0x0058 */ unsigned long ContextSwitches; /* off 0x005c */ unsigned char State; /* off 0x005d */ unsigned char NpxState; /* off 0x005e */ unsigned char WaitIrql; /* off 0x005f */ char WaitMode; /* off 0x0060 */ long WaitStatus; union { /* off 0x0064 */ struct _KWAIT_BLOCK* WaitBlockList; /* off 0x0064 */ struct _KGATE* GateObject; }; union { struct { /* off 0x0068 */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x0068 */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x0068 */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x0068 */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x0068 */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x0068 */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x0068 */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x0068 */ unsigned long Reserved:25 /* start bit 7 */; }; /* off 0x0068 */ long MiscFlags; }; /* off 0x006c */ unsigned char WaitReason; /* off 0x006d */ unsigned char SwapBusy; /* off 0x006e */ unsigned char Alerted[2]; union { /* off 0x0070 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0070 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0078 */ struct _KQUEUE* Queue; /* off 0x007c */ unsigned long WaitTime; union { struct { /* off 0x0080 */ short KernelApcDisable; /* off 0x0082 */ short SpecialApcDisable; }; struct { /* off 0x0080 */ unsigned long CombinedApcDisable; }; }; /* off 0x0084 */ void* Teb; union { /* off 0x0088 */ struct _KTIMER Timer; /* off 0x0088 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b0 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b0 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b0 */ unsigned long CycleChargePending:1 /* start bit 4 */; /* off 0x00b0 */ unsigned long CalloutActive:1 /* start bit 5 */; /* off 0x00b0 */ unsigned long ApcQueueable:1 /* start bit 6 */; /* off 0x00b0 */ unsigned long EnableStackSwap:1 /* start bit 7 */; /* off 0x00b0 */ unsigned long GuiThread:1 /* start bit 8 */; /* off 0x00b0 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b0 */ long ThreadFlags; }; union { /* off 0x00b8 */ struct _KWAIT_BLOCK WaitBlock[4]; struct { /* off 0x00b8 */ unsigned char WaitBlockFill0[23]; /* off 0x00cf */ unsigned char IdealProcessor; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill1[47]; /* off 0x00e7 */ char PreviousMode; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill2[71]; /* off 0x00ff */ unsigned char ResourceIndex; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill3[95]; /* off 0x0117 */ unsigned char LargeStack; }; }; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0124 */ void* FirstArgument; union { /* off 0x0128 */ void* CallbackStack; /* off 0x0128 */ unsigned long CallbackDepth; }; /* off 0x012c */ void* ServiceTable; /* off 0x0130 */ unsigned char ApcStateIndex; /* off 0x0131 */ char BasePriority; /* off 0x0132 */ char PriorityDecrement; /* off 0x0133 */ unsigned char Preempted; /* off 0x0134 */ unsigned char AdjustReason; /* off 0x0135 */ char AdjustIncrement; /* off 0x0136 */ unsigned char Spare01; /* off 0x0137 */ char Saturation; /* off 0x0138 */ unsigned long SystemCallNumber; /* off 0x013c */ unsigned long Spare02; /* off 0x0140 */ unsigned long UserAffinity; /* off 0x0144 */ struct _KPROCESS* Process; /* off 0x0148 */ unsigned long Affinity; /* off 0x014c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0154 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0154 */ unsigned char SavedApcStateFill[23]; /* off 0x016b */ char FreezeCount; }; }; /* off 0x016c */ char SuspendCount; /* off 0x016d */ unsigned char UserIdealProcessor; /* off 0x016e */ unsigned char Spare03; /* off 0x016f */ unsigned char Iopl; /* off 0x0170 */ void* Win32Thread; /* off 0x0174 */ void* StackBase; union { /* off 0x0178 */ struct _KAPC SuspendApc; struct { /* off 0x0178 */ unsigned char SuspendApcFill0[1]; /* off 0x0179 */ char Spare04; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill1[3]; /* off 0x017b */ unsigned char QuantumReset; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill2[4]; /* off 0x017c */ unsigned long KernelTime; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill3[36]; /* off 0x019c */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill4[40]; /* off 0x01a0 */ void* LegoData; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill5[47]; /* off 0x01a7 */ unsigned char PowerState; }; }; /* off 0x01a8 */ unsigned long UserTime; union { /* off 0x01ac */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01ac */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01c0 */ unsigned long SListFaultCount; /* off 0x01c4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01cc */ struct _LIST_ENTRY MutantListHead; /* off 0x01d4 */ void* SListFaultAddress; /* off 0x01d8 */ void* MdlForLockedTeb; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Spare:2 /* start bit 6 */; }; struct _KPROCESS /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ unsigned long Unused0; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Iopl; /* off 0x0033 */ unsigned char Unused; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; union { struct { /* off 0x0060 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0060 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0060 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0060 */ long ReservedFlags:29 /* start bit 3 */; }; /* off 0x0060 */ long ProcessFlags; }; /* off 0x0064 */ char BasePriority; /* off 0x0065 */ char QuantumReset; /* off 0x0066 */ unsigned char State; /* off 0x0067 */ unsigned char ThreadSeed; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char IdealNode; /* off 0x006a */ unsigned char Visited; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; /* off 0x006c */ unsigned long StackCount; /* off 0x0070 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0078 */ unsigned __int64 CycleTime; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Fill:7 /* start bit 1 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ unsigned long ProcessorMask; /* off 0x002c */ unsigned char Color; /* off 0x002d */ unsigned char Seed; /* off 0x002e */ unsigned char NodeNumber; /* off 0x002f */ struct _flags Flags; /* off 0x0030 */ unsigned long MmShiftedColor; /* off 0x0034 */ unsigned long FreeCount[2]; /* off 0x003c */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x0040 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct PPM_IDLE_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ long( __fastcall *IdleHandler)(unsigned long,struct PROCESSOR_IDLE_TIMES*); /* off 0x0004 */ unsigned long Context; /* off 0x0008 */ unsigned long Latency; /* off 0x000c */ unsigned long Power; /* off 0x0010 */ unsigned long TimeCheck; /* off 0x0014 */ unsigned long StateFlags; /* off 0x0018 */ unsigned char PromotePercent; /* off 0x0019 */ unsigned char DemotePercent; /* off 0x001a */ unsigned char PromotePercentBase; /* off 0x001b */ unsigned char DemotePercentBase; /* off 0x001c */ unsigned char StateType; }; struct PPM_IDLE_STATES /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reserved:30 /* start bit 2 */; }; } Flags; /* off 0x000c */ unsigned long TargetState; /* off 0x0010 */ unsigned long ActualState; /* off 0x0014 */ unsigned long OldState; /* off 0x0018 */ unsigned long TargetProcessors; /* off 0x001c */ struct PPM_IDLE_STATE State[1]; }; struct PPM_IDLE_STATE_ACCOUNTING /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long IdleTransitions; /* off 0x0004 */ unsigned long FailedTransitions; /* off 0x0008 */ unsigned long InvalidBucketIndex; /* off 0x0010 */ unsigned __int64 TotalTime; /* off 0x0018 */ unsigned long IdleTimeBuckets[6]; }; struct PPM_IDLE_ACCOUNTING /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ struct PPM_IDLE_STATE_ACCOUNTING State[1]; }; struct PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct PPM_PERF_STATES /* sizeof 00000068 104 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long MaxPerfState; /* off 0x000c */ unsigned long MinPerfState; /* off 0x0010 */ unsigned long LowestPState; /* off 0x0014 */ unsigned long IncreaseTime; /* off 0x0018 */ unsigned long DecreaseTime; /* off 0x001c */ unsigned char BusyAdjThreshold; /* off 0x001d */ unsigned char Reserved; /* off 0x001e */ unsigned char ThrottleStatesOnly; /* off 0x001f */ unsigned char PolicyType; /* off 0x0020 */ unsigned long TimerInterval; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long UsingHypervisor:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoDomainAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0028 */ unsigned long TargetProcessors; /* off 0x002c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0030 */ unsigned long PStateContext; /* off 0x0034 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0038 */ unsigned long TStateContext; /* off 0x003c */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0040 */ struct PPM_PERF_STATE State[1]; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 000020b8 8376 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000021 ,//0 }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _ETHREAD /* sizeof 00000288 648 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x01e0 */ union _LARGE_INTEGER CreateTime; union { /* off 0x01e8 */ union _LARGE_INTEGER ExitTime; /* off 0x01e8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01f0 */ long ExitStatus; /* off 0x01f0 */ void* OfsChain; }; union { /* off 0x01f4 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x01f4 */ void* ForwardLinkShadow; /* off 0x01f8 */ void* StartAddress; }; }; union { /* off 0x01fc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01fc */ struct _ETHREAD* ReaperLink; /* off 0x01fc */ void* KeyedWaitValue; /* off 0x01fc */ void* Win32StartParameter; }; /* off 0x0200 */ unsigned long ActiveTimerListLock; /* off 0x0204 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x020c */ struct _CLIENT_ID Cid; union { /* off 0x0214 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0214 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0228 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x022c */ struct _LIST_ENTRY IrpList; /* off 0x0234 */ unsigned long TopLevelIrp; /* off 0x0238 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x023c */ union _PSP_RATE_APC* RateControlApc; /* off 0x0240 */ void* Win32StartAddress; /* off 0x0244 */ void* SparePtr0; /* off 0x0248 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0250 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0254 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0258 */ unsigned long ReadClusterSize; /* off 0x025c */ long MmLockOrdering; union { /* off 0x0260 */ unsigned long CrossThreadFlags; struct { /* off 0x0260 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0260 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0260 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0260 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0260 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0260 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0260 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0260 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0260 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0260 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0260 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0264 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0264 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0264 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0264 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0264 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0264 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0264 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0264 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0268 */ unsigned long SameThreadApcFlags; struct { /* off 0x0268 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0268 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0268 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0268 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0269 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0269 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0269 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0269 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x026a */ unsigned short PriorityRegionActive:4 /* start bit 0 */; }; }; /* off 0x026c */ unsigned char CacheManagerActive; /* off 0x026d */ unsigned char DisablePageFaultClustering; /* off 0x026e */ unsigned char ActiveFaultCount; /* off 0x0270 */ unsigned long AlpcMessageId; union { /* off 0x0274 */ void* AlpcMessage; /* off 0x0274 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0278 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x0280 */ unsigned long CacheManagerCount; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 1 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 2 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char SessionMaster:1 /* start bit 6 */; /* off 0x0000 */ unsigned char TrimmerAttached:1 /* start bit 7 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Reserved:7 /* start bit 1 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char Available:6 /* start bit 2 */; }; struct _MMSUPPORT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long PeakWorkingSetSize; /* off 0x0018 */ unsigned long Spare0; /* off 0x001c */ unsigned long MinimumWorkingSetSize; /* off 0x0020 */ unsigned long MaximumWorkingSetSize; /* off 0x0024 */ struct _MMWSL* VmWorkingSetList; /* off 0x0028 */ unsigned long Claim; /* off 0x002c */ unsigned long Spare[1]; /* off 0x0030 */ unsigned long WorkingSetPrivateSize; /* off 0x0034 */ unsigned long WorkingSetSizeOverhead; /* off 0x0038 */ unsigned long WorkingSetSize; /* off 0x003c */ struct _KEVENT* ExitEvent; /* off 0x0040 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0044 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 00000270 624 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0080 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0088 */ union _LARGE_INTEGER CreateTime; /* off 0x0090 */ union _LARGE_INTEGER ExitTime; /* off 0x0098 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x009c */ void* UniqueProcessId; /* off 0x00a0 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00a8 */ unsigned long QuotaUsage[3]; /* off 0x00b4 */ unsigned long QuotaPeak[3]; /* off 0x00c0 */ unsigned long CommitCharge; /* off 0x00c4 */ unsigned long PeakVirtualSize; /* off 0x00c8 */ unsigned long VirtualSize; /* off 0x00cc */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00d4 */ void* DebugPort; union { /* off 0x00d8 */ void* ExceptionPortData; /* off 0x00d8 */ unsigned long ExceptionPortValue; /* off 0x00d8 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00dc */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00e0 */ struct _EX_FAST_REF Token; /* off 0x00e4 */ unsigned long WorkingSetPage; /* off 0x00e8 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x00ec */ struct _ETHREAD* RotateInProgress; /* off 0x00f0 */ struct _ETHREAD* ForkInProgress; /* off 0x00f4 */ unsigned long HardwareTrigger; /* off 0x00f8 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x00fc */ void* CloneRoot; /* off 0x0100 */ unsigned long NumberOfPrivatePages; /* off 0x0104 */ unsigned long NumberOfLockedPages; /* off 0x0108 */ void* Win32Process; /* off 0x010c */ struct _EJOB* Job; /* off 0x0110 */ void* SectionObject; /* off 0x0114 */ void* SectionBaseAddress; /* off 0x0118 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x011c */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0120 */ void* Win32WindowStation; /* off 0x0124 */ void* InheritedFromUniqueProcessId; /* off 0x0128 */ void* LdtInformation; /* off 0x012c */ void* VadFreeHint; /* off 0x0130 */ void* VdmObjects; /* off 0x0134 */ void* DeviceMap; /* off 0x0138 */ void* EtwDataSource; /* off 0x013c */ void* FreeTebHint; union { /* off 0x0140 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0140 */ unsigned __int64 Filler; }; /* off 0x0148 */ void* Session; /* off 0x014c */ unsigned char ImageFileName[16]; /* off 0x015c */ struct _LIST_ENTRY JobLinks; /* off 0x0164 */ void* LockedPagesList; /* off 0x0168 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0170 */ void* SecurityPort; /* off 0x0174 */ void* PaeTop; /* off 0x0178 */ unsigned long ActiveThreads; /* off 0x017c */ unsigned long ImagePathHash; /* off 0x0180 */ unsigned long DefaultHardErrorProcessing; /* off 0x0184 */ long LastThreadExitStatus; /* off 0x0188 */ struct _PEB* Peb; /* off 0x018c */ struct _EX_FAST_REF PrefetchTrace; /* off 0x0190 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x0198 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01a0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01a8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01c0 */ unsigned long CommitChargeLimit; /* off 0x01c4 */ unsigned long CommitChargePeak; /* off 0x01c8 */ void* AweInfo; /* off 0x01cc */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01d0 */ struct _MMSUPPORT Vm; /* off 0x0218 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0220 */ unsigned long ModifiedPageCount; union { /* off 0x0224 */ unsigned long Flags2; struct { /* off 0x0224 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0224 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0224 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0224 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0224 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0224 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0224 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0224 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0224 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0224 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0224 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0224 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0224 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0224 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0224 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0224 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; }; }; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0228 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0228 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0228 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0228 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0228 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0228 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0228 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0228 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0228 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0228 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0228 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0228 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0228 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0228 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0228 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0228 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0228 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0228 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0228 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0228 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0228 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0228 */ unsigned long SmapAllowed:1 /* start bit 25 */; /* off 0x0228 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0228 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0228 */ unsigned long SparePsFlags1:2 /* start bit 30 */; }; }; /* off 0x022c */ long ExitStatus; /* off 0x0230 */ unsigned short Spare7; union { struct { /* off 0x0232 */ unsigned char SubSystemMinorVersion; /* off 0x0233 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0232 */ unsigned short SubSystemVersion; }; }; /* off 0x0234 */ unsigned char PriorityClass; /* off 0x0238 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0258 */ unsigned long Cookie; /* off 0x025c */ struct _ALPC_PROCESS_CONTEXT AlpcContext; }; struct _HANDLE_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000128 296 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00b4 */ unsigned long UIRestrictionsClass; /* off 0x00b8 */ unsigned long EndOfJobTimeAction; /* off 0x00bc */ void* CompletionPort; /* off 0x00c0 */ void* CompletionKey; /* off 0x00c4 */ unsigned long SessionId; /* off 0x00c8 */ unsigned long SchedulingClass; /* off 0x00d0 */ unsigned __int64 ReadOperationCount; /* off 0x00d8 */ unsigned __int64 WriteOperationCount; /* off 0x00e0 */ unsigned __int64 OtherOperationCount; /* off 0x00e8 */ unsigned __int64 ReadTransferCount; /* off 0x00f0 */ unsigned __int64 WriteTransferCount; /* off 0x00f8 */ unsigned __int64 OtherTransferCount; /* off 0x0100 */ unsigned long ProcessMemoryLimit; /* off 0x0104 */ unsigned long JobMemoryLimit; /* off 0x0108 */ unsigned long PeakProcessMemoryUsed; /* off 0x010c */ unsigned long PeakJobMemoryUsed; /* off 0x0110 */ unsigned long CurrentJobMemoryUsed; /* off 0x0114 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0118 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0120 */ unsigned long MemberLevel; /* off 0x0124 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _PEB /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SpareBits:4 /* start bit 4 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ReservedBits0:30 /* start bit 2 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long SpareUlong; /* off 0x0038 */ struct _PEB_FREE_BLOCK* FreeList; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ImageProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; }; struct _PEB_LDR_DATA /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000294 660 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _PEB_FREE_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _PEB_FREE_BLOCK* Next; /* off 0x0004 */ unsigned long Size; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000d08 3336 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextEstimationSlot; /* off 0x0020 */ unsigned long NextAgingSlot; /* off 0x0024 */ unsigned long EstimatedAvailable; /* off 0x0028 */ unsigned long GrowthSinceLastEstimate; /* off 0x002c */ unsigned long NumberOfCommittedPageTables; /* off 0x0030 */ unsigned long VadBitMapHint; /* off 0x0034 */ unsigned long NonDirectCount; /* off 0x0038 */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x003c */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0040 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0044 */ void* HighestUserAddress; /* off 0x0048 */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c48 */ unsigned long CommittedPageTables[48]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved2:11 /* start bit 21 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileMaximumInformation =0x00000032 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ enum _IRQ_DEVICE_POLICY AffinityPolicy; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 MaximumInterfaceType =0x00000010 ,//0 }; enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault =0x00000000 ,//0 IrqPolicyAllCloseProcessors =0x00000001 ,//0 IrqPolicyOneCloseProcessor =0x00000002 ,//0 IrqPolicyAllProcessorsInMachine =0x00000003 ,//0 IrqPolicySpecifiedProcessors =0x00000004 ,//0 IrqPolicySpreadMessagesAcrossAllProcessors =0x00000005 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Reserved; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000002c 44 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000050 80 */ { /* off 0x0000 */ long IdleCount; /* off 0x0004 */ unsigned long ConservationIdleTime; /* off 0x0008 */ unsigned long PerformanceIdleTime; /* off 0x000c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0010 */ struct _LIST_ENTRY IdleList; /* off 0x0018 */ unsigned char DeviceType; /* off 0x001c */ enum _DEVICE_POWER_STATE State; /* off 0x0020 */ struct _LIST_ENTRY NotifySourceList; /* off 0x0028 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x0030 */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0044 */ struct _LIST_ENTRY Volume; /* off 0x004c */ unsigned long PreviousIdleCount; }; union _PSP_RATE_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000000 0 */ { }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ enum _POOL_TYPE PoolType; /* off 0x0024 */ unsigned long DefaultPagedPoolCharge; /* off 0x0028 */ unsigned long DefaultNonPagedPoolCharge; /* off 0x002c */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0030 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0034 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x0038 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x003c */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0040 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0044 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x0048 */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _ERESOURCE Mutex; /* off 0x0038 */ struct _LIST_ENTRY TypeList; /* off 0x0040 */ struct _UNICODE_STRING Name; /* off 0x0048 */ void* DefaultObject; /* off 0x004c */ unsigned long Index; /* off 0x0050 */ unsigned long TotalNumberOfObjects; /* off 0x0054 */ unsigned long TotalNumberOfHandles; /* off 0x0058 */ unsigned long HighWaterNumberOfObjects; /* off 0x005c */ unsigned long HighWaterNumberOfHandles; /* off 0x0060 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x00ac */ unsigned long Key; /* off 0x00b0 */ struct _EX_PUSH_LOCK ObjectLocks[32]; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ struct _EPROCESS* ExclusiveProcess; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _DEVICE_MAP /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ unsigned long ReferenceCount; /* off 0x000c */ unsigned long DriveMap; /* off 0x0010 */ unsigned char DriveType[32]; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; struct _ETW_KERNEL_TRACE_TIMESTAMP /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER KernelTraceTimeStamp[2]; }; struct _PERFINFO_HARDPAGEFAULT_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER ReadOffset; /* off 0x0008 */ void* VirtualAddress; /* off 0x000c */ void* FileObject; /* off 0x0010 */ unsigned long ThreadId; /* off 0x0014 */ unsigned long ByteCount; }; struct _PF_HARD_FAULT_INFO /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _ETW_KERNEL_TRACE_TIMESTAMP KernelTimeStamp; /* off 0x0010 */ struct _PERFINFO_HARDPAGEFAULT_INFORMATION HardFaultEvent; /* off 0x0028 */ union _LARGE_INTEGER IoTimeInTicks; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Reserved:6 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 46 */; /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 48 */; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned short Revision; /* off 0x0006 */ unsigned short Reserved1; /* off 0x0008 */ unsigned short Reserved2; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ unsigned long ValidationBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _LARGE_INTEGER Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ unsigned long Flags; /* off 0x0070 */ struct _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0078 */ unsigned char Reserved3[12]; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ unsigned short Revision; /* off 0x000a */ unsigned char ValidationBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0088 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevNone =0x00000003 ,//0 }; struct _WHEA_GENERIC_PROCESSOR_ERROR /* sizeof 000000c0 192 */ { /* off 0x0000 */ unsigned __int64 ValidBits; /* off 0x0008 */ unsigned char ProcessorType; /* off 0x0009 */ unsigned char InstructionSet; /* off 0x000a */ unsigned char ErrorType; /* off 0x000b */ unsigned char Operation; /* off 0x000c */ unsigned char Flags; /* off 0x000d */ unsigned char Level; /* off 0x000e */ unsigned short Reserved; /* off 0x0010 */ unsigned __int64 CPUVersion; /* off 0x0018 */ unsigned char CPUBrandString[128]; /* off 0x0098 */ unsigned __int64 ProcessorId; /* off 0x00a0 */ unsigned __int64 TargetAddress; /* off 0x00a8 */ unsigned __int64 RequestorId; /* off 0x00b0 */ unsigned __int64 ResponderId; /* off 0x00b8 */ unsigned __int64 InstructionPointer; }; struct _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; struct _WHEA_MEMORY_ERROR /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned __int64 ValidationBits; /* off 0x0008 */ struct _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequestorId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _WHEA_NMI_ERROR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char Data[8]; }; struct _PCIE_DEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long Segment:16 /* start bit 8 */; /* off 0x0008 */ unsigned long PrimaryBusNumber:8 /* start bit 24 */; /* off 0x000c */ unsigned long SecondaryBusNumber:8 /* start bit 0 */; /* off 0x000c */ unsigned long Reserved1:2 /* start bit 8 */; /* off 0x000c */ unsigned long SlotNumber:14 /* start bit 10 */; /* off 0x000c */ unsigned long Reserved2:8 /* start bit 24 */; }; struct _WHEA_PCIEXPRESS_ERROR /* sizeof 000000d0 208 */ { /* off 0x0000 */ unsigned __int64 ValidationBits; /* off 0x0008 */ enum PCI_EXPRESS_DEVICE_TYPE PortType; /* off 0x000c */ unsigned long Version; /* off 0x0010 */ unsigned long CommandStatus; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ struct _PCIE_DEVICE_ID DeviceId; /* off 0x0028 */ unsigned __int64 DeviceSN; /* off 0x0030 */ unsigned long BridgeCtrlSts; /* off 0x0034 */ unsigned char ExpressCapability[60]; /* off 0x0070 */ unsigned char AerInfo[96]; }; struct _WHEA_PCIX_BUS_VALIDATION_BITS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatusValid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorTypeValid:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 BusIdValid:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 BusAddressValid:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 BusDataValid:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 CommandValid:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 RequestorIdValid:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CompleterIdValid:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 TargetIdValid:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Reserved:55 /* start bit 9 */; }; struct _WHEA_PCIX_BUS_ERROR /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _WHEA_PCIX_BUS_VALIDATION_BITS ValidationBits; /* off 0x0008 */ struct _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned short ErrorType; /* off 0x0012 */ unsigned short BusId; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 BusAddress; /* off 0x0020 */ unsigned __int64 BusData; /* off 0x0028 */ unsigned __int64 BusCommand; /* off 0x0030 */ unsigned __int64 BusRequestorId; /* off 0x0038 */ unsigned __int64 BusCompleterId; /* off 0x0040 */ unsigned __int64 TargetId; }; struct _WHEA_PCIX_DEV_VALIDATION_BITS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatusValid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 IdInfoValid:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 MemoryNumberValid:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 IoNumberValid:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 RegisterDataPairValid:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Reserved:59 /* start bit 5 */; }; struct _WHEA_PCIX_DEVICE_ERROR /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _WHEA_PCIX_DEV_VALIDATION_BITS ValidationBits; /* off 0x0008 */ struct _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned char IdInfo[16]; /* off 0x0020 */ unsigned long MemoryNumber; /* off 0x0024 */ unsigned long IoNumber; /* off 0x0028 */ unsigned char RegisterDataPairs[64]; }; struct _WHEA_ERROR_PACKET /* sizeof 00000119 281 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned __int64 Size; /* off 0x0010 */ unsigned __int64 RawDataLength; /* off 0x0018 */ unsigned __int64 Context; /* off 0x0020 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0024 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0028 */ unsigned long ErrorSourceId; /* off 0x002c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0030 */ unsigned long Reserved1; /* off 0x0034 */ unsigned long Version; /* off 0x0038 */ unsigned __int64 Cpu; /* off 0x0040 */ union /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _WHEA_GENERIC_PROCESSOR_ERROR ProcessorError; /* off 0x0000 */ struct _WHEA_MEMORY_ERROR MemoryError; /* off 0x0000 */ struct _WHEA_NMI_ERROR NmiError; /* off 0x0000 */ struct _WHEA_PCIEXPRESS_ERROR PciExpressError; /* off 0x0000 */ struct _WHEA_PCIX_BUS_ERROR PciXBusError; /* off 0x0000 */ struct _WHEA_PCIX_DEVICE_ERROR PciXDeviceError; } u; /* off 0x0110 */ enum _WHEA_ERROR_STATUS_FORMAT RawDataFormat; /* off 0x0114 */ unsigned long Reserved2; /* off 0x0118 */ unsigned char RawData[1]; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeOther =0x00000005 ,//0 WheaErrSrcTypeMax =0x00000006 ,//0 }; enum PCI_EXPRESS_DEVICE_TYPE { PciExpressEndpoint =0x00000000 ,//0 PciExpressLegacyEndpoint =0x00000001 ,//0 PciExpressRootPort =0x00000004 ,//0 PciExpressUpstreamSwitchPort =0x00000005 ,//0 PciExpressDownstreamSwitchPort =0x00000006 ,//0 PciExpressToPciXBridge =0x00000007 ,//0 PciXToExpressBridge =0x00000008 ,//0 PciExpressRootComplexIntegratedEndpoint =0x00000009 ,//0 PciExpressRootComplexEventCollector =0x0000000a ,//0 }; enum _WHEA_ERROR_STATUS_FORMAT { WheaErrorStatusFormatIPFSalRecord =0x00000000 ,//0 WheaErrorStatusFormatIA32MCA =0x00000001 ,//0 WheaErrorStatusFormatEM64TMCA =0x00000002 ,//0 WheaErrorStatusFormatAMD64MCA =0x00000003 ,//0 WheaErrorStatusFormatPCIExpress =0x00000004 ,//0 WheaErrorStatusFormatNMIPort =0x00000005 ,//0 WheaErrorStatusFormatOther =0x00000006 ,//0 WheaErrorStatusFormatMax =0x00000007 ,//0 }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Long; /* off 0x0000 */ unsigned __int64 VolatileLong; /* off 0x0000 */ struct _MMPTE_HIGHLOW HighLow; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; union _PTE_QUEUE_POINTER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ long PointerPte; /* off 0x0004 */ long TimeStamp; }; /* off 0x0000 */ __int64 Data; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _ALPHA_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 0000007c 124 */ { /* off 0x0000 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0008 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0010 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0018 */ unsigned long KernelStack; /* off 0x001c */ unsigned long Prcb; /* off 0x0020 */ unsigned long Process; /* off 0x0024 */ unsigned long Thread; /* off 0x0028 */ unsigned long RegistryLength; /* off 0x002c */ void* RegistryBase; /* off 0x0030 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0034 */ char* ArcBootDeviceName; /* off 0x0038 */ char* ArcHalDeviceName; /* off 0x003c */ char* NtBootPathName; /* off 0x0040 */ char* NtHalPathName; /* off 0x0044 */ char* LoadOptions; /* off 0x0048 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x004c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0050 */ void* OemFontFile; /* off 0x0054 */ struct _SETUP_LOADER_BLOCK* SetupLoaderBlock; /* off 0x0058 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x005c */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _ALPHA_LOADER_BLOCK Alpha; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0068 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; /* off 0x0014 */ unsigned long AffinityMask; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _SETUP_LOADER_BLOCK /* sizeof 00000000 0 */ { }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 0000007c 124 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ unsigned long MajorVersion; /* off 0x0018 */ unsigned long MinorVersion; /* off 0x001c */ void* EmInfFileImage; /* off 0x0020 */ unsigned long EmInfFileSize; /* off 0x0024 */ void* TriageDumpBlock; /* off 0x0028 */ unsigned long LoaderPagesSpanned; /* off 0x002c */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0030 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x0034 */ void* DrvDBImage; /* off 0x0038 */ unsigned long DrvDBSize; /* off 0x003c */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0040 */ unsigned char* HalpIRQLToTPR; /* off 0x0044 */ unsigned char* HalpVectorToIRQL; /* off 0x0048 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0050 */ void* AcpiTable; /* off 0x0054 */ unsigned long AcpiTableSize; /* off 0x0058 */ unsigned long BootViaWinload:1 /* start bit 0 */; /* off 0x0058 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x005c */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0060 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0068 */ void* WmdTestResult; /* off 0x006c */ struct _GUID BootIdentifier; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ unsigned char ByteFlags; /* off 0x0003 */ unsigned char InterlockedByteFlags; } e3; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_EVENT* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long ContainsPxeSubsection:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Spare:9 /* start bit 23 */; }; struct _SEGMENT /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ unsigned long NonExtendedPtes; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0028 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x002c */ struct _MMPTE* PrototypePte; /* off 0x0030 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char Reserved:5 /* start bit 3 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ unsigned long BitmapHint; /* off 0x0034 */ unsigned long LastAllocationSize; /* off 0x0038 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0038 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0038 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x003a */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x003a */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x003c */ void* FileHandle; /* off 0x0040 */ union _SLIST_HEADER AvailableList; /* off 0x0048 */ union _SLIST_HEADER NeedProcessingList; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LastPageToWrite; /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMPAGING_FILE_FREE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long FreeBit; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 6 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CMHIVE /* sizeof 000005d0 1488 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _FAST_MUTEX* HiveLock; /* off 0x0314 */ struct _FAST_MUTEX* ViewLock; /* off 0x0318 */ struct _FAST_MUTEX* WriterLock; /* off 0x031c */ struct _EX_PUSH_LOCK FlusherLock; /* off 0x0320 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0324 */ struct _LIST_ENTRY MappedViewList; /* off 0x032c */ struct _LIST_ENTRY PinnedViewList; /* off 0x0334 */ struct _LIST_ENTRY FlushedViewList; /* off 0x033c */ unsigned short MappedViewCount; /* off 0x033e */ unsigned short PinnedViewCount; /* off 0x0340 */ unsigned long UseCount; /* off 0x0344 */ unsigned long ViewsPerHive; /* off 0x0348 */ struct _FILE_OBJECT* FileObject; /* off 0x034c */ unsigned long LastShrinkHiveSize; /* off 0x0350 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0358 */ struct _UNICODE_STRING FileFullPath; /* off 0x0360 */ struct _UNICODE_STRING FileUserName; /* off 0x0368 */ struct _UNICODE_STRING HiveRootPath; /* off 0x0370 */ unsigned long SecurityCount; /* off 0x0374 */ unsigned long SecurityCacheSize; /* off 0x0378 */ long SecurityHitHint; /* off 0x037c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0380 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0580 */ unsigned long UnloadEventCount; /* off 0x0584 */ struct _KEVENT** UnloadEventArray; /* off 0x0588 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x058c */ unsigned char Frozen; /* off 0x0590 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x0594 */ unsigned char GrowOnlyMode; /* off 0x0598 */ unsigned long GrowOffset; /* off 0x059c */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05a4 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x05ac */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x05b0 */ unsigned long Flags; /* off 0x05b4 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x05bc */ unsigned long FlushCount; /* off 0x05c0 */ struct _CM_RM* CmRm; /* off 0x05c4 */ unsigned long CmRmInitFailPoint; /* off 0x05c8 */ long CmRmInitFailStatus; /* off 0x05cc */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000090 144 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:8 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 8 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 9 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:12 /* start bit 10 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0048 */ void* DelayCloseEntry; /* off 0x0050 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0058 */ unsigned short KcbMaxNameLen; /* off 0x005a */ unsigned short KcbMaxValueNameLen; /* off 0x005c */ unsigned long KcbMaxValueDataLen; /* off 0x0060 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0060 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0060 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0060 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x0064 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x006c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0070 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0078 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0080 */ struct _CHILD_LIST TransValueCache; /* off 0x0088 */ struct _CM_TRANS* TransValueListOwner; /* off 0x008c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _EX_PUSH_LOCK KeyBodyLock; /* off 0x0028 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[8]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ void* TmRmHandle; /* off 0x018c */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0190 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a0 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b0 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01b8 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01c8 */ struct _ERESOURCE LogWriteResource; /* off 0x0200 */ unsigned long LogFlags; /* off 0x0204 */ long LogFullStatus; /* off 0x0208 */ long RecoveryStatus; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001a8 424 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ unsigned long NextSavepoint; /* off 0x0140 */ struct _KTM* Tm; /* off 0x0148 */ __int64 CommitReservation; /* off 0x0150 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x01a0 */ unsigned long TransactionHistoryCount; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionSavepointing =0x0000000b ,//0 KTransactionPrePrepared =0x0000000c ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentSavepointing =0x0000010d ,//0 KEnlistmentAborting =0x0000010e ,//0 KEnlistmentReadOnly =0x0000010f ,//0 KEnlistmentOutcomeUnavailable =0x00000110 ,//0 KEnlistmentOffline =0x00000111 ,//0 KEnlistmentPrePrepared =0x00000112 ,//0 KEnlistmentInitialized =0x00000113 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_WORKITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _TEB /* sizeof 00000ff8 4088 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char SpareBool0; /* off 0x0f75 */ unsigned char SpareBool1; /* off 0x0f76 */ unsigned char SpareBool2; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short DbgSafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short DbgInDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short DbgHasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short DbgSkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short DbgWerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short DbgRanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short DbgClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short DbgSuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short SpareSameTebBits:8 /* start bit 8 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long ProcessRundown; /* off 0x0fe0 */ unsigned __int64 LastSwitchTime; /* off 0x0fe8 */ unsigned __int64 TotalSwitchOutTime; /* off 0x0ff0 */ union _LARGE_INTEGER WaitReasonBitMap; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ union _ULARGE_INTEGER Time; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ unsigned short* DeviceName; /* off 0x0018 */ unsigned short* DriverName; /* off 0x001c */ unsigned long ChildCount; /* off 0x0020 */ unsigned long ActiveChild; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0038 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0048 */ enum _PNP_DEVNODE_STATE State; /* off 0x004c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0050 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00a0 */ unsigned long StateHistoryEntry; /* off 0x00a4 */ long CompletionStatus; /* off 0x00a8 */ struct _IRP* PendingIrp; /* off 0x00ac */ unsigned long Flags; /* off 0x00b0 */ unsigned long UserFlags; /* off 0x00b4 */ unsigned long Problem; /* off 0x00b8 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00bc */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00c0 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00c4 */ struct _UNICODE_STRING InstancePath; /* off 0x00cc */ struct _UNICODE_STRING ServiceName; /* off 0x00d4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00d8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00dc */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00e0 */ unsigned long BusNumber; /* off 0x00e4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00e8 */ unsigned long ChildBusNumber; /* off 0x00ec */ unsigned short ChildBusTypeIndex; /* off 0x00ee */ unsigned char RemovalPolicy; /* off 0x00ef */ unsigned char HardwareRemovalPolicy; /* off 0x00f0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00f8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0100 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0108 */ unsigned short NoTranslatorMask; /* off 0x010a */ unsigned short QueryTranslatorMask; /* off 0x010c */ unsigned short NoArbiterMask; /* off 0x010e */ unsigned short QueryArbiterMask; /* off 0x0110 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x0114 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0118 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x011c */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0120 */ unsigned long CapabilityFlags; /* off 0x0124 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x0134 */ unsigned long DisableableDepends; /* off 0x0138 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0140 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0148 */ unsigned long DriverUnloadRetryCount; /* off 0x014c */ struct _DEVICE_NODE* PreviousParent; /* off 0x0150 */ unsigned long DeletedChildren; /* off 0x0154 */ unsigned long NumaNodeIndex; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _VOLUME_CACHE_MAP /* sizeof 00000018 24 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; }; struct _SHARED_CACHE_MAP /* sizeof 00000140 320 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0130 */ void* WriteBehindWorkQueueEntry; /* off 0x0134 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0138 */ unsigned long ProcImagePathHash; /* off 0x013c */ unsigned long MappedWritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long MappingCount; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ struct _LIST_ENTRY CoalescedWorkQueueLinks; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x0014 */ unsigned char Function; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long InBlockDeccommits; /* off 0x0044 */ unsigned long InBlockDeccomitSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0124 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; /* off 0x0020 */ unsigned long Spare0; /* off 0x0024 */ unsigned long Spare1; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; union { /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY Entry; /* off 0x0038 */ struct _SINGLE_LIST_ENTRY SlistEntry; struct { /* off 0x0038 */ struct _WMI_BUFFER_HEADER* NextBuffer; /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000270 624 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ void* LogFileHandle; /* off 0x000c */ struct _ETHREAD* LoggerThread; /* off 0x0010 */ long LoggerStatus; /* off 0x0014 */ unsigned long LoggerId; /* off 0x0018 */ void* NBQHead; /* off 0x001c */ void* OverflowNBQHead; /* off 0x0020 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0028 */ union _SLIST_HEADER GlobalList; /* off 0x0030 */ struct _UNICODE_STRING LoggerName; /* off 0x0038 */ struct _UNICODE_STRING LogFileName; /* off 0x0040 */ struct _UNICODE_STRING LogFilePattern; /* off 0x0048 */ struct _UNICODE_STRING NewLogFileName; /* off 0x0050 */ unsigned long ClockType; /* off 0x0054 */ long CollectionOn; /* off 0x0058 */ unsigned long MaximumFileSize; /* off 0x005c */ unsigned long LoggerMode; /* off 0x0060 */ unsigned long LastFlushedBuffer; /* off 0x0064 */ unsigned long FlushTimer; /* off 0x0068 */ union _LARGE_INTEGER ByteOffset; /* off 0x0070 */ union _LARGE_INTEGER FlushTimeStamp; /* off 0x0078 */ unsigned long MinimumBuffers; /* off 0x007c */ long BuffersAvailable; /* off 0x0080 */ long NumberOfBuffers; /* off 0x0084 */ unsigned long MaximumBuffers; /* off 0x0088 */ unsigned long EventsLost; /* off 0x008c */ unsigned long BuffersWritten; /* off 0x0090 */ unsigned long LogBuffersLost; /* off 0x0094 */ unsigned long RealTimeBuffersDelivered; /* off 0x0098 */ unsigned long RealTimeBuffersLost; /* off 0x009c */ unsigned long BufferSize; /* off 0x00a0 */ unsigned long MaximumEventSize; /* off 0x00a4 */ long* SequencePtr; /* off 0x00a8 */ unsigned long LocalSequence; /* off 0x00ac */ struct _GUID InstanceGuid; /* off 0x00bc */ __int64( __stdcall *GetCpuClock)(); /* off 0x00c0 */ long FileCounter; /* off 0x00c4 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00c8 */ enum _POOL_TYPE PoolType; /* off 0x00d0 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e0 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00e4 */ struct _LIST_ENTRY Consumers; /* off 0x00ec */ unsigned long NumConsumers; /* off 0x00f0 */ struct _LIST_ENTRY Connecting; /* off 0x00f8 */ unsigned char NewConsumer; /* off 0x00fc */ void* RealtimeLogfileHandle; /* off 0x0100 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0108 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0110 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0120 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0128 */ unsigned long RealtimeBuffersSaved; /* off 0x0130 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0140 */ unsigned long RealtimeDisconnectProcessId; /* off 0x0144 */ unsigned long RealtimeDisconnectConsumerId; /* off 0x0148 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x014c */ struct _KEVENT LoggerEvent; /* off 0x015c */ struct _KEVENT FlushEvent; /* off 0x016c */ struct _KDPC FlushDpc; /* off 0x018c */ struct _KMUTANT LoggerMutex; /* off 0x01ac */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01e8 */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x01f0 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0238 */ __int64 BufferSequenceNumber; /* off 0x0240 */ long AcceptNewEvents; union { /* off 0x0244 */ unsigned long Flags; struct { /* off 0x0244 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0244 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0244 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0244 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0244 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0244 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0244 */ unsigned long NoMoreEnable:1 /* start bit 6 */; }; }; union { /* off 0x0248 */ unsigned long RequestFlag; struct { /* off 0x0248 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0248 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0248 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0248 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0248 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; }; }; /* off 0x024c */ unsigned short StackTraceFilterHookCount; /* off 0x024e */ unsigned short StackTraceFilter[16]; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; /* off 0x0028 */ struct _TRACE_ENABLE_CONTEXT LegacyEnableContext; /* off 0x0030 */ unsigned long LegacyProviderEnabled; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001a 26 */ { /* off 0x0000 */ unsigned char PerUserPolicy[26]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001a */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e8 488 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x00c0 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x00c4 */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c8 */ struct _LUID OriginatingLogonSession; /* off 0x00d0 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0158 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01e0 */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; enum _WAIT_TYPE { WaitAll =0x00000000 ,//0 WaitAny =0x00000001 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; /* off 0x004c */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0038 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000270 624 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ char Number; /* off 0x0035 */ unsigned char ShareVector; /* off 0x0038 */ enum _KINTERRUPT_MODE Mode; /* off 0x003c */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0040 */ unsigned long ServiceCount; /* off 0x0044 */ unsigned long DispatchCount; /* off 0x0048 */ unsigned __int64 Rsvd1; /* off 0x0050 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ struct _CMHIVE* CmHive2; /* off 0x001c */ unsigned char ThreadFinished; /* off 0x001d */ unsigned char ThreadStarted; /* off 0x001e */ unsigned char Allocate; /* off 0x001f */ unsigned char WinPERequired; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000088 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned char Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderMaximum =0x0000001c ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ unsigned long NonExtendedPtes; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x0024 */ struct _MSUBSECTION* LastSubsectionHint; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005e8 1512 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ void* Extension; /* off 0x0098 */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x009c */ void* ConflictCallbackContext; /* off 0x00a0 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a4 */ wchar PdoDescriptionString[336]; /* off 0x0344 */ char PdoSymbolicNameString[672]; /* off 0x05e4 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d8 216 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPool =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaMaximumType =0x0000000c ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _PCI_HOTPLUG_SLOT_INTERRUPT { SlotInterruptPresenceDetect =0x00000000 ,//0 SlotInterruptLatchChange =0x00000001 ,//0 SlotInterruptAttentionButton =0x00000002 ,//0 SlotInterruptPowerFault =0x00000003 ,//0 SlotInterruptMaximum =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _KUSER_SHARED_DATA /* sizeof 000003b8 952 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long SystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long SpareBits:27 /* start bit 5 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[8]; /* off 0x0390 */ unsigned long HeapTracingPid[2]; /* off 0x0398 */ unsigned long CritSecTracingPid[2]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; union { /* off 0x03a8 */ unsigned __int64 AffinityPad; /* off 0x03a8 */ unsigned long ActiveProcessorAffinity; }; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POP_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_DISPLAY_RESUME_CONTEXT* DisplayResumeContext; /* off 0x003c */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemContext; /* off 0x0054 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Code; /* off 0x0004 */ unsigned long Parameter1; /* off 0x0008 */ unsigned long Parameter2; /* off 0x000c */ unsigned long Parameter3; /* off 0x0010 */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000148 328 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000188 392 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0168 */ long NotifyGdiLevelForPowerOn; /* off 0x016c */ long NotifyGdiLevelForResumeUI; /* off 0x0170 */ struct _LIST_ENTRY Pending; /* off 0x0178 */ long Status; /* off 0x017c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0180 */ unsigned char Waking; /* off 0x0181 */ unsigned char Cancelled; /* off 0x0182 */ unsigned char IgnoreErrors; /* off 0x0183 */ unsigned char IgnoreNotImplemented; /* off 0x0184 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_DISPLAY_RESUME_CONTEXT /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ struct _ETHREAD* WorkerThread; /* off 0x0014 */ struct _KEVENT PrepareUIEvent; /* off 0x0024 */ struct _KEVENT PowerOnEvent; /* off 0x0034 */ struct _KEVENT DoneEvent; /* off 0x0044 */ unsigned long WorkerQueued; /* off 0x0048 */ unsigned long WorkerAbort; /* off 0x004c */ unsigned long NoResumeUI; }; struct _PO_HIBER_PERF /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; /* off 0x0048 */ unsigned __int64 ResumeAppStartTime; /* off 0x0050 */ unsigned __int64 ResumeAppEndTime; /* off 0x0058 */ unsigned __int64 HiberFileResumeTime; }; struct _POP_HIBER_CONTEXT /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ void* CurrentMcb; /* off 0x0050 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0054 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0058 */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ struct _PO_MEMORY_RANGE_ARRAY* TableHead; /* off 0x0074 */ unsigned char* CompressionWorkspace; /* off 0x0078 */ unsigned char* CompressedWriteBuffer; /* off 0x007c */ unsigned long* PerformanceStats; /* off 0x0080 */ void* CompressionBlock; /* off 0x0084 */ void* DmaIO; /* off 0x0088 */ void* TemporaryHeap; /* off 0x0090 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00f0 */ struct _MDL* BootLoaderLogMdl; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long TotalPages; /* off 0x0050 */ unsigned long FirstTablePage; /* off 0x0054 */ unsigned long LastFilePage; /* off 0x0058 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00b8 */ unsigned long NoBootLoaderLogPages; /* off 0x00bc */ unsigned long BootLoaderLogPages[8]; /* off 0x00dc */ unsigned long TotalPhysicalMemoryCount; }; struct _PO_MEMORY_RANGE_ARRAY_RANGE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PageNo; /* off 0x0004 */ unsigned long StartPage; /* off 0x0008 */ unsigned long EndPage; /* off 0x000c */ unsigned long CheckSum; }; struct _PO_MEMORY_RANGE_ARRAY_LINK /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY* Next; /* off 0x0004 */ unsigned long NextTable; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long EntryCount; }; struct _PO_MEMORY_RANGE_ARRAY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_RANGE Range; /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_LINK Link; }; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0030 */ union _SLIST_HEADER PoolTrackers; /* off 0x0038 */ unsigned long CurrentPagedPoolAllocations; /* off 0x003c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0040 */ unsigned long PeakPagedPoolAllocations; /* off 0x0044 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PagedBytes; /* off 0x004c */ unsigned long NonPagedBytes; /* off 0x0050 */ unsigned long PeakPagedBytes; /* off 0x0054 */ unsigned long PeakNonPagedBytes; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0008 */ struct _MMPTE FreePteHead; /* off 0x0010 */ struct _MMPTE FreePteTail; /* off 0x0018 */ long PagesInUse; /* off 0x001c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _MMPTE* FirstFreePte; /* off 0x0004 */ unsigned long* FailureCount; /* off 0x0008 */ struct _KGUARDED_MUTEX* GlobalMutex; /* off 0x000c */ unsigned long TbFlushTimeStamp; }; struct _MM_SESSION_SPACE /* sizeof 00001e80 7808 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KEVENT AttachEvent; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0db8 */ struct _MMWSLE* Wsle; /* off 0x0dbc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0dc0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1df4 */ struct _MMPTE* PageTables; /* off 0x1df8 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e20 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e40 */ long PoolBigEntriesInUse; /* off 0x1e44 */ unsigned long PagedPoolPdeCount; /* off 0x1e48 */ unsigned long SpecialPoolPdeCount; /* off 0x1e4c */ unsigned long DynamicSessionPdeCount; /* off 0x1e50 */ struct _MMPTE SessionPteFreeHead; /* off 0x1e58 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e68 */ void* PoolTrackTableExpansion; /* off 0x1e6c */ unsigned long PoolTrackTableExpansionSize; /* off 0x1e70 */ void* PoolTrackBigPages; /* off 0x1e74 */ unsigned long PoolTrackBigPagesSize; /* off 0x1e78 */ struct _RTL_BITMAP SessionPoolPdes; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; struct _VI_DEADLOCK_NODE /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ void* StackTrace[8]; /* off 0x0048 */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; enum _KTHREAD_STATE { Initialized =0x00000000 ,//0 Ready =0x00000001 ,//0 Running =0x00000002 ,//0 Standby =0x00000003 ,//0 Terminated =0x00000004 ,//0 Waiting =0x00000005 ,//0 Transition =0x00000006 ,//0 DeferredReady =0x00000007 ,//0 GateWait =0x00000008 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _VI_DEADLOCK_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ unsigned long CacheReductionInProgress; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned char PowerSettingChanged; /* off 0x0014 */ unsigned long DataLength; /* off 0x0018 */ unsigned char Data[1]; } PowerSettingNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 InvalidIDEvent =0x00000009 ,//0 PowerSettingChange =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 MaxRegNtNotifyClass =0x00000029 ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_6.0.6001.18000.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Private:31 /* start bit 1 */; } s; } u; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_TASK /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; }; struct _TP_DIRECT /* sizeof 00000004 4 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Absolute; /* off 0x0001 */ unsigned char NpxIrql; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char Size; /* off 0x0002 */ unsigned char Hand; }; union { /* off 0x0003 */ unsigned char Inserted; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 00000208 520 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 LastTimeCheck; /* off 0x0010 */ unsigned __int64 IdleTimeAccumulated; union { /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 IdleTransitionTime; } Native; /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 LastIdleCheck; } Hv; }; /* off 0x0020 */ struct PPM_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ struct _PPM_PERF_STATES* PerfStates; /* off 0x0028 */ unsigned long LastKernelUserTime; /* off 0x002c */ unsigned long LastIdleThreadKTime; /* off 0x0030 */ unsigned __int64 LastGlobalTimeHv; /* off 0x0038 */ unsigned __int64 LastProcessorTimeHv; /* off 0x0040 */ unsigned char ThermalConstraint; /* off 0x0041 */ unsigned char LastBusyPercentage; /* off 0x0042 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short PStateDomainIdleAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0048 */ struct _KTIMER PerfTimer; /* off 0x0070 */ struct _KDPC PerfDpc; /* off 0x0090 */ unsigned long LastSysTime; /* off 0x0094 */ struct _KPRCB* PStateMaster; /* off 0x0098 */ unsigned long PStateSet; /* off 0x009c */ unsigned long CurrentPState; /* off 0x00a0 */ unsigned long DesiredPState; /* off 0x00a4 */ unsigned long PStateIdleStartTime; /* off 0x00a8 */ unsigned long PStateIdleTime; /* off 0x00ac */ unsigned long LastPStateIdleTime; /* off 0x00b0 */ unsigned long PStateStartTime; /* off 0x00b4 */ unsigned long DiaIndex; /* off 0x00b8 */ unsigned long Reserved0; /* off 0x00bc */ unsigned long WmiDispatchPtr; /* off 0x00c0 */ long WmiInterfaceEnabled; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00002008 8200 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char Number; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; union { /* off 0x001a */ unsigned short CpuStep; struct { /* off 0x001a */ unsigned char CpuStepping; /* off 0x001b */ unsigned char CpuModel; }; }; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned long CFlushSize; /* off 0x03c0 */ unsigned char CoresPerPhysicalProcessor; /* off 0x03c1 */ unsigned char LogicalProcessorsPerCore; /* off 0x03c2 */ unsigned char PrcbPad0[2]; /* off 0x03c4 */ unsigned long MHz; /* off 0x03c8 */ unsigned char PrcbPad1[80]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[49]; /* off 0x05a0 */ struct _KTHREAD* NpxThread; /* off 0x05a4 */ unsigned long InterruptCount; /* off 0x05a8 */ unsigned long KernelTime; /* off 0x05ac */ unsigned long UserTime; /* off 0x05b0 */ unsigned long DpcTime; /* off 0x05b4 */ unsigned long DpcTimeCount; /* off 0x05b8 */ unsigned long InterruptTime; /* off 0x05bc */ unsigned long AdjustDpcThreshold; /* off 0x05c0 */ unsigned long PageColor; /* off 0x05c4 */ unsigned char SkipTick; /* off 0x05c5 */ unsigned char DebuggerSavedIRQL; /* off 0x05c6 */ unsigned char NodeColor; /* off 0x05c7 */ unsigned char PollSlot; /* off 0x05c8 */ unsigned long NodeShiftedColor; /* off 0x05cc */ struct _KNODE* ParentNode; /* off 0x05d0 */ unsigned long MultiThreadProcessorSet; /* off 0x05d4 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x05d8 */ unsigned long SecondaryColorMask; /* off 0x05dc */ unsigned long DpcTimeLimit; /* off 0x05e0 */ unsigned long CcFastReadNoWait; /* off 0x05e4 */ unsigned long CcFastReadWait; /* off 0x05e8 */ unsigned long CcFastReadNotPossible; /* off 0x05ec */ unsigned long CcCopyReadNoWait; /* off 0x05f0 */ unsigned long CcCopyReadWait; /* off 0x05f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x05f8 */ long MmSpinLockOrdering; /* off 0x05fc */ long IoReadOperationCount; /* off 0x0600 */ long IoWriteOperationCount; /* off 0x0604 */ long IoOtherOperationCount; /* off 0x0608 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0610 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0618 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0620 */ unsigned long CcFastMdlReadNoWait; /* off 0x0624 */ unsigned long CcFastMdlReadWait; /* off 0x0628 */ unsigned long CcFastMdlReadNotPossible; /* off 0x062c */ unsigned long CcMapDataNoWait; /* off 0x0630 */ unsigned long CcMapDataWait; /* off 0x0634 */ unsigned long CcPinMappedDataCount; /* off 0x0638 */ unsigned long CcPinReadNoWait; /* off 0x063c */ unsigned long CcPinReadWait; /* off 0x0640 */ unsigned long CcMdlReadNoWait; /* off 0x0644 */ unsigned long CcMdlReadWait; /* off 0x0648 */ unsigned long CcLazyWriteHotSpots; /* off 0x064c */ unsigned long CcLazyWriteIos; /* off 0x0650 */ unsigned long CcLazyWritePages; /* off 0x0654 */ unsigned long CcDataFlushes; /* off 0x0658 */ unsigned long CcDataPages; /* off 0x065c */ unsigned long CcLostDelayedWrites; /* off 0x0660 */ unsigned long CcFastReadResourceMiss; /* off 0x0664 */ unsigned long CcCopyReadWaitMiss; /* off 0x0668 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x066c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0670 */ unsigned long CcMapDataWaitMiss; /* off 0x0674 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0678 */ unsigned long CcPinReadWaitMiss; /* off 0x067c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0680 */ unsigned long CcMdlReadWaitMiss; /* off 0x0684 */ unsigned long CcReadAheadIos; /* off 0x0688 */ unsigned long KeAlignmentFixupCount; /* off 0x068c */ unsigned long KeExceptionDispatchCount; /* off 0x0690 */ unsigned long KeSystemCalls; /* off 0x0694 */ unsigned long PrcbPad2[3]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0720 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x1020 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1920 */ unsigned long PacketBarrier; /* off 0x1924 */ long ReverseStall; /* off 0x1928 */ void* IpiFrame; /* off 0x192c */ unsigned char PrcbPad3[52]; /* off 0x1960 */ void* CurrentPacket[3]; /* off 0x196c */ unsigned long TargetSet; /* off 0x1970 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1974 */ unsigned long IpiFrozen; /* off 0x1978 */ unsigned char PrcbPad4[40]; /* off 0x19a0 */ unsigned long RequestSummary; /* off 0x19a4 */ struct _KPRCB* SignalDone; /* off 0x19a8 */ unsigned char PrcbPad5[56]; /* off 0x19e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1a08 */ void* DpcStack; /* off 0x1a0c */ long MaximumDpcQueueDepth; /* off 0x1a10 */ unsigned long DpcRequestRate; /* off 0x1a14 */ unsigned long MinimumDpcRate; /* off 0x1a18 */ unsigned char DpcInterruptRequested; /* off 0x1a19 */ unsigned char DpcThreadRequested; /* off 0x1a1a */ unsigned char DpcRoutineActive; /* off 0x1a1b */ unsigned char DpcThreadActive; /* off 0x1a1c */ unsigned long PrcbLock; /* off 0x1a20 */ unsigned long DpcLastCount; /* off 0x1a24 */ unsigned long TimerHand; /* off 0x1a28 */ unsigned long TimerRequest; /* off 0x1a2c */ void* PrcbPad41; /* off 0x1a30 */ struct _KEVENT DpcEvent; /* off 0x1a40 */ unsigned char ThreadDpcEnable; /* off 0x1a41 */ unsigned char QuantumEnd; /* off 0x1a42 */ unsigned char PrcbPad50; /* off 0x1a43 */ unsigned char IdleSchedule; /* off 0x1a44 */ long DpcSetEventRequest; /* off 0x1a48 */ long Sleeping; /* off 0x1a4c */ unsigned long PeriodicCount; /* off 0x1a50 */ unsigned long PeriodicBias; /* off 0x1a54 */ unsigned char PrcbPad51[6]; /* off 0x1a5c */ long TickOffset; /* off 0x1a60 */ struct _KDPC CallDpc; /* off 0x1a80 */ long ClockKeepAlive; /* off 0x1a84 */ unsigned char ClockCheckSlot; /* off 0x1a85 */ unsigned char ClockPollCycle; /* off 0x1a86 */ unsigned char PrcbPad6[2]; /* off 0x1a88 */ long DpcWatchdogPeriod; /* off 0x1a8c */ long DpcWatchdogCount; /* off 0x1a90 */ long ThreadWatchdogPeriod; /* off 0x1a94 */ long ThreadWatchdogCount; /* off 0x1a98 */ unsigned long PrcbPad70[2]; /* off 0x1aa0 */ struct _LIST_ENTRY WaitListHead; /* off 0x1aa8 */ unsigned long WaitLock; /* off 0x1aac */ unsigned long ReadySummary; /* off 0x1ab0 */ unsigned long QueueIndex; /* off 0x1ab4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1ab8 */ unsigned __int64 StartCycles; /* off 0x1ac0 */ unsigned __int64 CycleTime; /* off 0x1ac8 */ unsigned __int64 PrcbPad71[3]; /* off 0x1ae0 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1be0 */ void* ChainedInterruptList; /* off 0x1be4 */ long LookasideIrpFloat; /* off 0x1be8 */ long MmPageFaultCount; /* off 0x1bec */ long MmCopyOnWriteCount; /* off 0x1bf0 */ long MmTransitionCount; /* off 0x1bf4 */ long MmCacheTransitionCount; /* off 0x1bf8 */ long MmDemandZeroCount; /* off 0x1bfc */ long MmPageReadCount; /* off 0x1c00 */ long MmPageReadIoCount; /* off 0x1c04 */ long MmCacheReadCount; /* off 0x1c08 */ long MmCacheIoCount; /* off 0x1c0c */ long MmDirtyPagesWriteCount; /* off 0x1c10 */ long MmDirtyWriteIoCount; /* off 0x1c14 */ long MmMappedPagesWriteCount; /* off 0x1c18 */ long MmMappedWriteIoCount; /* off 0x1c1c */ unsigned long CachedCommit; /* off 0x1c20 */ unsigned long CachedResidentAvailable; /* off 0x1c24 */ void* HyperPte; /* off 0x1c28 */ unsigned char CpuVendor; /* off 0x1c29 */ unsigned char PrcbPad8[3]; /* off 0x1c2c */ unsigned char VendorString[13]; /* off 0x1c39 */ unsigned char InitialApicId; /* off 0x1c3a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1c3b */ unsigned char PrcbPad9[5]; /* off 0x1c40 */ unsigned long FeatureBits; /* off 0x1c48 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1c50 */ unsigned __int64 IsrTime; /* off 0x1c58 */ unsigned __int64 SpareField1; /* off 0x1c60 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x1e70 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1f38 */ struct _KDPC DpcWatchdogDpc; /* off 0x1f58 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1f80 */ void* WheaInfo; /* off 0x1f84 */ void* EtwSupport; /* off 0x1f88 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1f90 */ union _SLIST_HEADER HypercallPageList; /* off 0x1f98 */ void* HypercallPageVirtual; /* off 0x1f9c */ void* VirtualApicAssist; /* off 0x1fa0 */ unsigned __int64* StatisticsPage; /* off 0x1fa4 */ void* RateControl; /* off 0x1fa8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1fe4 */ unsigned long CacheCount; /* off 0x1fe8 */ unsigned long CacheProcessorMask[5]; /* off 0x1ffc */ unsigned long PackageProcessorSet; /* off 0x2000 */ unsigned long CoreProcessorSet; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char SpareByte; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; union { /* off 0x0038 */ struct _KAPC_STATE ApcState; struct { /* off 0x0038 */ unsigned char ApcStateFill[23]; /* off 0x004f */ char Priority; }; }; /* off 0x0050 */ unsigned short NextProcessor; /* off 0x0052 */ unsigned short DeferredProcessor; /* off 0x0054 */ unsigned long ApcQueueLock; /* off 0x0058 */ unsigned long ContextSwitches; /* off 0x005c */ unsigned char State; /* off 0x005d */ unsigned char NpxState; /* off 0x005e */ unsigned char WaitIrql; /* off 0x005f */ char WaitMode; /* off 0x0060 */ long WaitStatus; union { /* off 0x0064 */ struct _KWAIT_BLOCK* WaitBlockList; /* off 0x0064 */ struct _KGATE* GateObject; }; union { struct { /* off 0x0068 */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x0068 */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x0068 */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x0068 */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x0068 */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x0068 */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x0068 */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x0068 */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x0068 */ unsigned long Reserved:24 /* start bit 8 */; }; /* off 0x0068 */ long MiscFlags; }; /* off 0x006c */ unsigned char WaitReason; /* off 0x006d */ unsigned char SwapBusy; /* off 0x006e */ unsigned char Alerted[2]; union { /* off 0x0070 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0070 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0078 */ struct _KQUEUE* Queue; /* off 0x007c */ unsigned long WaitTime; union { struct { /* off 0x0080 */ short KernelApcDisable; /* off 0x0082 */ short SpecialApcDisable; }; struct { /* off 0x0080 */ unsigned long CombinedApcDisable; }; }; /* off 0x0084 */ void* Teb; union { /* off 0x0088 */ struct _KTIMER Timer; /* off 0x0088 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b0 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b0 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b0 */ unsigned long CycleChargePending:1 /* start bit 4 */; /* off 0x00b0 */ unsigned long CalloutActive:1 /* start bit 5 */; /* off 0x00b0 */ unsigned long ApcQueueable:1 /* start bit 6 */; /* off 0x00b0 */ unsigned long EnableStackSwap:1 /* start bit 7 */; /* off 0x00b0 */ unsigned long GuiThread:1 /* start bit 8 */; /* off 0x00b0 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b0 */ long ThreadFlags; }; union { /* off 0x00b8 */ struct _KWAIT_BLOCK WaitBlock[4]; struct { /* off 0x00b8 */ unsigned char WaitBlockFill0[23]; /* off 0x00cf */ unsigned char IdealProcessor; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill1[47]; /* off 0x00e7 */ char PreviousMode; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill2[71]; /* off 0x00ff */ unsigned char ResourceIndex; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill3[95]; /* off 0x0117 */ unsigned char LargeStack; }; }; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0124 */ void* FirstArgument; union { /* off 0x0128 */ void* CallbackStack; /* off 0x0128 */ unsigned long CallbackDepth; }; /* off 0x012c */ void* ServiceTable; /* off 0x0130 */ unsigned char ApcStateIndex; /* off 0x0131 */ char BasePriority; /* off 0x0132 */ char PriorityDecrement; /* off 0x0133 */ unsigned char Preempted; /* off 0x0134 */ unsigned char AdjustReason; /* off 0x0135 */ char AdjustIncrement; /* off 0x0136 */ unsigned char Spare01; /* off 0x0137 */ char Saturation; /* off 0x0138 */ unsigned long SystemCallNumber; /* off 0x013c */ unsigned long FreezeCount; /* off 0x0140 */ unsigned long UserAffinity; /* off 0x0144 */ struct _KPROCESS* Process; /* off 0x0148 */ unsigned long Affinity; /* off 0x014c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0154 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0154 */ unsigned char SavedApcStateFill[23]; /* off 0x016b */ unsigned char Spare02; }; }; /* off 0x016c */ char SuspendCount; /* off 0x016d */ unsigned char UserIdealProcessor; /* off 0x016e */ unsigned char Spare03; /* off 0x016f */ unsigned char OtherPlatformFill; /* off 0x0170 */ void* Win32Thread; /* off 0x0174 */ void* StackBase; union { /* off 0x0178 */ struct _KAPC SuspendApc; struct { /* off 0x0178 */ unsigned char SuspendApcFill0[1]; /* off 0x0179 */ char Spare04; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill1[3]; /* off 0x017b */ unsigned char QuantumReset; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill2[4]; /* off 0x017c */ unsigned long KernelTime; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill3[36]; /* off 0x019c */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill4[40]; /* off 0x01a0 */ void* LegoData; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill5[47]; /* off 0x01a7 */ unsigned char PowerState; }; }; /* off 0x01a8 */ unsigned long UserTime; union { /* off 0x01ac */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01ac */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01c0 */ unsigned long SListFaultCount; /* off 0x01c4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01cc */ struct _LIST_ENTRY MutantListHead; /* off 0x01d4 */ void* SListFaultAddress; /* off 0x01d8 */ void* MdlForLockedTeb; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; struct _KPROCESS /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ unsigned long Unused0; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Unused1; /* off 0x0033 */ unsigned char Unused2; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; union { struct { /* off 0x0060 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0060 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0060 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0060 */ long ReservedFlags:29 /* start bit 3 */; }; /* off 0x0060 */ long ProcessFlags; }; /* off 0x0064 */ char BasePriority; /* off 0x0065 */ char QuantumReset; /* off 0x0066 */ unsigned char State; /* off 0x0067 */ unsigned char ThreadSeed; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char IdealNode; /* off 0x006a */ unsigned char Visited; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; /* off 0x006c */ unsigned long StackCount; /* off 0x0070 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0078 */ unsigned __int64 CycleTime; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Fill:7 /* start bit 1 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ unsigned long ProcessorMask; /* off 0x002c */ unsigned char Color; /* off 0x002d */ unsigned char Seed; /* off 0x002e */ unsigned char NodeNumber; /* off 0x002f */ struct _flags Flags; /* off 0x0030 */ unsigned long MmShiftedColor; /* off 0x0034 */ unsigned long FreeCount[2]; /* off 0x003c */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x0040 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ long( __fastcall *IdleHandler)(void*,unsigned long); /* off 0x0004 */ void* Context; /* off 0x0008 */ unsigned long Latency; /* off 0x000c */ unsigned long Power; /* off 0x0010 */ unsigned long TimeCheck; /* off 0x0014 */ unsigned long StateFlags; /* off 0x0018 */ unsigned char PromotePercent; /* off 0x0019 */ unsigned char DemotePercent; /* off 0x001a */ unsigned char PromotePercentBase; /* off 0x001b */ unsigned char DemotePercentBase; /* off 0x001c */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hypervisor:2 /* start bit 2 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:24 /* start bit 8 */; }; } Flags; /* off 0x000c */ unsigned long TargetState; /* off 0x0010 */ unsigned long ActualState; /* off 0x0014 */ unsigned long OldState; /* off 0x0018 */ unsigned long TargetProcessors; /* off 0x001c */ struct _PPM_IDLE_STATE State[1]; }; struct PPM_IDLE_STATE_ACCOUNTING /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long IdleTransitions; /* off 0x0004 */ unsigned long FailedTransitions; /* off 0x0008 */ unsigned long InvalidBucketIndex; /* off 0x0010 */ unsigned __int64 TotalTime; /* off 0x0018 */ unsigned long IdleTimeBuckets[6]; }; struct PPM_IDLE_ACCOUNTING /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ struct PPM_IDLE_STATE_ACCOUNTING State[1]; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long UsingHypervisor:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoDomainAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0030 */ unsigned long TargetProcessors; /* off 0x0034 */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0038 */ unsigned long PStateContext; /* off 0x003c */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long TStateContext; /* off 0x0044 */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0048 */ struct _PPM_DIA_STATS* DiaStats; /* off 0x004c */ unsigned long DiaStatsCount; /* off 0x0050 */ struct _PPM_PERF_STATE State[1]; }; struct _PPM_DIA_STATS /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long PerfLevel; /* off 0x0004 */ unsigned long IdleTime; /* off 0x0008 */ unsigned long TimeInterval; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 00002128 8488 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000031 ,//0 }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 00000288 648 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x01e0 */ union _LARGE_INTEGER CreateTime; union { /* off 0x01e8 */ union _LARGE_INTEGER ExitTime; /* off 0x01e8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01f0 */ long ExitStatus; /* off 0x01f0 */ void* OfsChain; }; union { /* off 0x01f4 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x01f4 */ void* ForwardLinkShadow; /* off 0x01f8 */ void* StartAddress; }; }; union { /* off 0x01fc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01fc */ struct _ETHREAD* ReaperLink; /* off 0x01fc */ void* KeyedWaitValue; /* off 0x01fc */ void* Win32StartParameter; }; /* off 0x0200 */ unsigned long ActiveTimerListLock; /* off 0x0204 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x020c */ struct _CLIENT_ID Cid; union { /* off 0x0214 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0214 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0228 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x022c */ struct _LIST_ENTRY IrpList; /* off 0x0234 */ unsigned long TopLevelIrp; /* off 0x0238 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x023c */ union _PSP_RATE_APC* RateControlApc; /* off 0x0240 */ void* Win32StartAddress; /* off 0x0244 */ void* SparePtr0; /* off 0x0248 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0250 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0254 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0258 */ unsigned long ReadClusterSize; /* off 0x025c */ long MmLockOrdering; union { /* off 0x0260 */ unsigned long CrossThreadFlags; struct { /* off 0x0260 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0260 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0260 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0260 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0260 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0260 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0260 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0260 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0260 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0260 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0260 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0264 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0264 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0264 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0264 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0264 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0264 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0264 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0264 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0268 */ unsigned long SameThreadApcFlags; struct { /* off 0x0268 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0268 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0268 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0268 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0269 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0269 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0269 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0269 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x026a */ unsigned char Spare1:8 /* start bit 0 */; /* off 0x026b */ unsigned char PriorityRegionActive; }; }; /* off 0x026c */ unsigned char CacheManagerActive; /* off 0x026d */ unsigned char DisablePageFaultClustering; /* off 0x026e */ unsigned char ActiveFaultCount; /* off 0x0270 */ unsigned long AlpcMessageId; union { /* off 0x0274 */ void* AlpcMessage; /* off 0x0274 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0278 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x0280 */ unsigned long CacheManagerCount; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 1 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 2 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char SessionMaster:1 /* start bit 6 */; /* off 0x0000 */ unsigned char TrimmerAttached:1 /* start bit 7 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Reserved:3 /* start bit 1 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long PeakWorkingSetSize; /* off 0x0018 */ unsigned long ChargedWslePages; /* off 0x001c */ unsigned long MinimumWorkingSetSize; /* off 0x0020 */ unsigned long MaximumWorkingSetSize; /* off 0x0024 */ struct _MMWSL* VmWorkingSetList; /* off 0x0028 */ unsigned long Claim; /* off 0x002c */ unsigned long ActualWslePages; /* off 0x0030 */ unsigned long WorkingSetPrivateSize; /* off 0x0034 */ unsigned long WorkingSetSizeOverhead; /* off 0x0038 */ unsigned long WorkingSetSize; /* off 0x003c */ struct _KGATE* ExitGate; /* off 0x0040 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0044 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 00000270 624 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0080 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0088 */ union _LARGE_INTEGER CreateTime; /* off 0x0090 */ union _LARGE_INTEGER ExitTime; /* off 0x0098 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x009c */ void* UniqueProcessId; /* off 0x00a0 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00a8 */ unsigned long QuotaUsage[3]; /* off 0x00b4 */ unsigned long QuotaPeak[3]; /* off 0x00c0 */ unsigned long CommitCharge; /* off 0x00c4 */ unsigned long PeakVirtualSize; /* off 0x00c8 */ unsigned long VirtualSize; /* off 0x00cc */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00d4 */ void* DebugPort; union { /* off 0x00d8 */ void* ExceptionPortData; /* off 0x00d8 */ unsigned long ExceptionPortValue; /* off 0x00d8 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00dc */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00e0 */ struct _EX_FAST_REF Token; /* off 0x00e4 */ unsigned long WorkingSetPage; /* off 0x00e8 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x00ec */ struct _ETHREAD* RotateInProgress; /* off 0x00f0 */ struct _ETHREAD* ForkInProgress; /* off 0x00f4 */ unsigned long HardwareTrigger; /* off 0x00f8 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x00fc */ void* CloneRoot; /* off 0x0100 */ unsigned long NumberOfPrivatePages; /* off 0x0104 */ unsigned long NumberOfLockedPages; /* off 0x0108 */ void* Win32Process; /* off 0x010c */ struct _EJOB* Job; /* off 0x0110 */ void* SectionObject; /* off 0x0114 */ void* SectionBaseAddress; /* off 0x0118 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x011c */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0120 */ void* Win32WindowStation; /* off 0x0124 */ void* InheritedFromUniqueProcessId; /* off 0x0128 */ void* LdtInformation; /* off 0x012c */ void* Spare; /* off 0x0130 */ void* VdmObjects; /* off 0x0134 */ void* DeviceMap; /* off 0x0138 */ void* EtwDataSource; /* off 0x013c */ void* FreeTebHint; union { /* off 0x0140 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0140 */ unsigned __int64 Filler; }; /* off 0x0148 */ void* Session; /* off 0x014c */ unsigned char ImageFileName[16]; /* off 0x015c */ struct _LIST_ENTRY JobLinks; /* off 0x0164 */ void* LockedPagesList; /* off 0x0168 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0170 */ void* SecurityPort; /* off 0x0174 */ void* PaeTop; /* off 0x0178 */ unsigned long ActiveThreads; /* off 0x017c */ unsigned long ImagePathHash; /* off 0x0180 */ unsigned long DefaultHardErrorProcessing; /* off 0x0184 */ long LastThreadExitStatus; /* off 0x0188 */ struct _PEB* Peb; /* off 0x018c */ struct _EX_FAST_REF PrefetchTrace; /* off 0x0190 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x0198 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01a0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01a8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01c0 */ unsigned long CommitChargeLimit; /* off 0x01c4 */ unsigned long CommitChargePeak; /* off 0x01c8 */ void* AweInfo; /* off 0x01cc */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01d0 */ struct _MMSUPPORT Vm; /* off 0x0218 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0220 */ unsigned long ModifiedPageCount; union { /* off 0x0224 */ unsigned long Flags2; struct { /* off 0x0224 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0224 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0224 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0224 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0224 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0224 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0224 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0224 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0224 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0224 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0224 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0224 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0224 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0224 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0224 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0224 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x0224 */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x0224 */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x0224 */ unsigned long CrossSessionCreate:1 /* start bit 20 */; }; }; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0228 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0228 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0228 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0228 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0228 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0228 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0228 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0228 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0228 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0228 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0228 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0228 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0228 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0228 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0228 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0228 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0228 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0228 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0228 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0228 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0228 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0228 */ unsigned long SmapAllowed:1 /* start bit 25 */; /* off 0x0228 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0228 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0228 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0228 */ unsigned long SpareProcessFlags:1 /* start bit 31 */; }; }; /* off 0x022c */ long ExitStatus; /* off 0x0230 */ unsigned short Spare7; union { struct { /* off 0x0232 */ unsigned char SubSystemMinorVersion; /* off 0x0233 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0232 */ unsigned short SubSystemVersion; }; }; /* off 0x0234 */ unsigned char PriorityClass; /* off 0x0238 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0258 */ unsigned long Cookie; /* off 0x025c */ struct _ALPC_PROCESS_CONTEXT AlpcContext; }; struct _HANDLE_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000128 296 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00b4 */ unsigned long UIRestrictionsClass; /* off 0x00b8 */ unsigned long EndOfJobTimeAction; /* off 0x00bc */ void* CompletionPort; /* off 0x00c0 */ void* CompletionKey; /* off 0x00c4 */ unsigned long SessionId; /* off 0x00c8 */ unsigned long SchedulingClass; /* off 0x00d0 */ unsigned __int64 ReadOperationCount; /* off 0x00d8 */ unsigned __int64 WriteOperationCount; /* off 0x00e0 */ unsigned __int64 OtherOperationCount; /* off 0x00e8 */ unsigned __int64 ReadTransferCount; /* off 0x00f0 */ unsigned __int64 WriteTransferCount; /* off 0x00f8 */ unsigned __int64 OtherTransferCount; /* off 0x0100 */ unsigned long ProcessMemoryLimit; /* off 0x0104 */ unsigned long JobMemoryLimit; /* off 0x0108 */ unsigned long PeakProcessMemoryUsed; /* off 0x010c */ unsigned long PeakJobMemoryUsed; /* off 0x0110 */ unsigned long CurrentJobMemoryUsed; /* off 0x0114 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0118 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0120 */ unsigned long MemberLevel; /* off 0x0124 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _PEB /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ReservedBits0:28 /* start bit 4 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long SpareUlong; /* off 0x0038 */ unsigned long SparePebPtr0; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000294 660 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000d18 3352 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextEstimationSlot; /* off 0x0020 */ unsigned long NextAgingSlot; /* off 0x0024 */ unsigned long EstimatedAvailable; /* off 0x0028 */ unsigned long GrowthSinceLastEstimate; /* off 0x002c */ unsigned long NumberOfCommittedPageTables; /* off 0x0030 */ unsigned long VadBitMapHint; /* off 0x0034 */ unsigned long NonDirectCount; /* off 0x0038 */ unsigned long LastVadBit; /* off 0x003c */ unsigned long MaximumLastVadBit; /* off 0x0040 */ unsigned long LastAllocationSizeHint; /* off 0x0044 */ unsigned long LastAllocationSize; /* off 0x0048 */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x004c */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0050 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0054 */ void* HighestUserAddress; /* off 0x0058 */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c58 */ unsigned long CommittedPageTables[48]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileMaximumInformation =0x00000033 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ enum _IRQ_DEVICE_POLICY AffinityPolicy; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault =0x00000000 ,//0 IrqPolicyAllCloseProcessors =0x00000001 ,//0 IrqPolicyOneCloseProcessor =0x00000002 ,//0 IrqPolicyAllProcessorsInMachine =0x00000003 ,//0 IrqPolicySpecifiedProcessors =0x00000004 ,//0 IrqPolicySpreadMessagesAcrossAllProcessors =0x00000005 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Reserved; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long TotalBusyCount; /* off 0x000c */ unsigned long ConservationIdleTime; /* off 0x0010 */ unsigned long PerformanceIdleTime; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _LIST_ENTRY IdleList; /* off 0x0020 */ unsigned char DeviceType; /* off 0x0024 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x0028 */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x002c */ struct _LIST_ENTRY NotifySourceList; /* off 0x0034 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x003c */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0050 */ struct _LIST_ENTRY Volume; /* off 0x0058 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; union _PSP_RATE_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000000 0 */ { }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000140 320 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned long Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _ERESOURCE Mutex; /* off 0x00b0 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x00b4 */ unsigned long Key; /* off 0x00b8 */ struct _EX_PUSH_LOCK ObjectLocks[32]; /* off 0x0138 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ struct _EPROCESS* ExclusiveProcess; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _DEVICE_MAP /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ unsigned long ReferenceCount; /* off 0x000c */ unsigned long DriveMap; /* off 0x0010 */ unsigned char DriveType[32]; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; struct _ETW_KERNEL_TRACE_TIMESTAMP /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER KernelTraceTimeStamp[2]; }; struct _PERFINFO_HARDPAGEFAULT_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER ReadOffset; /* off 0x0008 */ void* VirtualAddress; /* off 0x000c */ void* FileObject; /* off 0x0010 */ unsigned long ThreadId; /* off 0x0014 */ unsigned long ByteCount; }; struct _PF_HARD_FAULT_INFO /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _ETW_KERNEL_TRACE_TIMESTAMP KernelTimeStamp; /* off 0x0010 */ struct _PERFINFO_HARDPAGEFAULT_INFORMATION HardFaultEvent; /* off 0x0028 */ union _LARGE_INTEGER IoTimeInTicks; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Reserved:8 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevNone =0x00000003 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long CpuValid:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ProcessorType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 InstructionSet:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Operation:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Flags:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Level:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 CPUVersion:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CPUBrandString:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 ProcessorId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 TargetAddress:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InstructionPointer:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Reserved:51 /* start bit 13 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_GENERIC_PROCESSOR_ERROR /* sizeof 000000c0 192 */ { /* off 0x0000 */ union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ unsigned char ProcessorType; /* off 0x0009 */ unsigned char InstructionSet; /* off 0x000a */ unsigned char ErrorType; /* off 0x000b */ unsigned char Operation; /* off 0x000c */ unsigned char Flags; /* off 0x000d */ unsigned char Level; /* off 0x000e */ unsigned short Reserved; /* off 0x0010 */ unsigned __int64 CPUVersion; /* off 0x0018 */ unsigned char CPUBrandString[128]; /* off 0x0098 */ unsigned __int64 ProcessorId; /* off 0x00a0 */ unsigned __int64 TargetAddress; /* off 0x00a8 */ unsigned __int64 RequesterId; /* off 0x00b0 */ unsigned __int64 ResponderId; /* off 0x00b8 */ unsigned __int64 InstructionPointer; }; union _WHEA_MEMORY_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; union _WHEA_NMI_ERROR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_NMI_ERROR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Data[8]; /* off 0x0008 */ union _WHEA_NMI_ERROR_FLAGS Flags; }; union _WHEA_PCIEXPRESS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 PortType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Version:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 CommandStatus:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 DeviceId:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 DeviceSerialNumber:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BridgeControlStatus:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 ExpressCapability:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 AerInfo:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Reserved:56 /* start bit 8 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIEXPRESS_VERSION /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned char MinorVersion; /* off 0x0001 */ unsigned char MajorVersion; /* off 0x0002 */ unsigned short Reserved; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PCIEXPRESS_COMMAND_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short Command; /* off 0x0002 */ unsigned short Status; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_DEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long Segment:16 /* start bit 8 */; /* off 0x0008 */ unsigned long PrimaryBusNumber:8 /* start bit 24 */; /* off 0x000c */ unsigned long SecondaryBusNumber:8 /* start bit 0 */; /* off 0x000c */ unsigned long Reserved1:2 /* start bit 8 */; /* off 0x000c */ unsigned long SlotNumber:14 /* start bit 10 */; /* off 0x000c */ unsigned long Reserved2:8 /* start bit 24 */; }; union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short BridgeSecondaryStatus; /* off 0x0002 */ unsigned short BridgeControl; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_ERROR /* sizeof 000000d0 208 */ { /* off 0x0000 */ union _WHEA_PCIEXPRESS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ enum WHEA_PCIEXPRESS_DEVICE_TYPE PortType; /* off 0x000c */ union _WHEA_PCIEXPRESS_VERSION Version; /* off 0x0010 */ union _WHEA_PCIEXPRESS_COMMAND_STATUS CommandStatus; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ struct _WHEA_PCIEXPRESS_DEVICE_ID DeviceId; /* off 0x0028 */ unsigned __int64 DeviceSerialNumber; /* off 0x0030 */ union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS BridgeControlStatus; /* off 0x0034 */ unsigned char ExpressCapability[60]; /* off 0x0070 */ unsigned char AerInfo[96]; }; union _WHEA_PCIXBUS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 BusId:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 BusAddress:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 BusData:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BusCommand:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CompleterId:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Reserved:55 /* start bit 9 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIXBUS_ID /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char BusNumber; /* off 0x0001 */ unsigned char BusSegment; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_PCIXBUS_COMMAND /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Command:56 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PCIXCommand:1 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 57 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_PCIXBUS_ERROR /* sizeof 00000048 72 */ { /* off 0x0000 */ union _WHEA_PCIXBUS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned short ErrorType; /* off 0x0012 */ union _WHEA_PCIXBUS_ID BusId; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 BusAddress; /* off 0x0020 */ unsigned __int64 BusData; /* off 0x0028 */ union _WHEA_PCIXBUS_COMMAND BusCommand; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 CompleterId; /* off 0x0040 */ unsigned __int64 TargetId; }; union _WHEA_PCIXDEVICE_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 IdInfo:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 MemoryNumber:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 IoNumber:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 RegisterDataPairs:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Reserved:59 /* start bit 5 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_PCIXDEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorId; /* off 0x0002 */ unsigned short DeviceId; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long BusNumber:8 /* start bit 8 */; /* off 0x0008 */ unsigned long SegmentNumber:8 /* start bit 16 */; /* off 0x0008 */ unsigned long Reserved1:8 /* start bit 24 */; /* off 0x000c */ unsigned long Reserved2; }; struct WHEA_PCIXDEVICE_REGISTER_PAIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Register; /* off 0x0008 */ unsigned __int64 Data; }; struct _WHEA_PCIXDEVICE_ERROR /* sizeof 00000068 104 */ { /* off 0x0000 */ union _WHEA_PCIXDEVICE_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ struct _WHEA_PCIXDEVICE_ID IdInfo; /* off 0x0020 */ unsigned long MemoryNumber; /* off 0x0024 */ unsigned long IoNumber; /* off 0x0028 */ struct WHEA_PCIXDEVICE_REGISTER_PAIR RegisterDataPairs[4]; }; struct _WHEA_ERROR_PACKET /* sizeof 00000119 281 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long RawDataLength; /* off 0x0010 */ unsigned __int64 Reserved1; /* off 0x0018 */ unsigned __int64 Context; /* off 0x0020 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0024 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0028 */ unsigned long ErrorSourceId; /* off 0x002c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0030 */ unsigned long Reserved2; /* off 0x0034 */ unsigned long Version; /* off 0x0038 */ unsigned __int64 Cpu; /* off 0x0040 */ union /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _WHEA_GENERIC_PROCESSOR_ERROR ProcessorError; /* off 0x0000 */ struct _WHEA_MEMORY_ERROR MemoryError; /* off 0x0000 */ struct _WHEA_NMI_ERROR NmiError; /* off 0x0000 */ struct _WHEA_PCIEXPRESS_ERROR PciExpressError; /* off 0x0000 */ struct _WHEA_PCIXBUS_ERROR PciXBusError; /* off 0x0000 */ struct _WHEA_PCIXDEVICE_ERROR PciXDeviceError; } u; /* off 0x0110 */ enum _WHEA_RAW_DATA_FORMAT RawDataFormat; /* off 0x0114 */ unsigned long RawDataOffset; /* off 0x0118 */ unsigned char RawData[1]; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum WHEA_PCIEXPRESS_DEVICE_TYPE { WheaPciExpressEndpoint =0x00000000 ,//0 WheaPciExpressLegacyEndpoint =0x00000001 ,//0 WheaPciExpressRootPort =0x00000004 ,//0 WheaPciExpressUpstreamSwitchPort =0x00000005 ,//0 WheaPciExpressDownstreamSwitchPort =0x00000006 ,//0 WheaPciExpressToPciXBridge =0x00000007 ,//0 WheaPciXToExpressBridge =0x00000008 ,//0 WheaPciExpressRootComplexIntegratedEndpoint =0x00000009 ,//0 WheaPciExpressRootComplexEventCollector =0x0000000a ,//0 }; enum _WHEA_RAW_DATA_FORMAT { WheaRawDataFormatIPFSalRecord =0x00000000 ,//0 WheaRawDataFormatIA32MCA =0x00000001 ,//0 WheaRawDataFormatIntel64MCA =0x00000002 ,//0 WheaRawDataFormatAMD64MCA =0x00000003 ,//0 WheaRawDataFormatMemory =0x00000004 ,//0 WheaRawDataFormatPCIExpress =0x00000005 ,//0 WheaRawDataFormatNMIPort =0x00000006 ,//0 WheaRawDataFormatPCIXBus =0x00000007 ,//0 WheaRawDataFormatPCIXDevice =0x00000008 ,//0 WheaRawDataFormatGeneric =0x00000009 ,//0 WheaRawDataFormatMax =0x0000000a ,//0 }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 GlobalTimeStamp:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Long; /* off 0x0000 */ unsigned __int64 VolatileLong; /* off 0x0000 */ struct _MMPTE_HIGHLOW HighLow; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _ALPHA_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 0000007c 124 */ { /* off 0x0000 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0008 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0010 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0018 */ unsigned long KernelStack; /* off 0x001c */ unsigned long Prcb; /* off 0x0020 */ unsigned long Process; /* off 0x0024 */ unsigned long Thread; /* off 0x0028 */ unsigned long RegistryLength; /* off 0x002c */ void* RegistryBase; /* off 0x0030 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0034 */ char* ArcBootDeviceName; /* off 0x0038 */ char* ArcHalDeviceName; /* off 0x003c */ char* NtBootPathName; /* off 0x0040 */ char* NtHalPathName; /* off 0x0044 */ char* LoadOptions; /* off 0x0048 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x004c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0050 */ void* OemFontFile; /* off 0x0054 */ struct _SETUP_LOADER_BLOCK* SetupLoaderBlock; /* off 0x0058 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x005c */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _ALPHA_LOADER_BLOCK Alpha; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0068 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; /* off 0x0014 */ unsigned long AffinityMask; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _SETUP_LOADER_BLOCK /* sizeof 00000000 0 */ { }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ unsigned long MajorVersion; /* off 0x0018 */ unsigned long MinorVersion; /* off 0x001c */ void* EmInfFileImage; /* off 0x0020 */ unsigned long EmInfFileSize; /* off 0x0024 */ void* TriageDumpBlock; /* off 0x0028 */ unsigned long LoaderPagesSpanned; /* off 0x002c */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0030 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x0034 */ void* DrvDBImage; /* off 0x0038 */ unsigned long DrvDBSize; /* off 0x003c */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0040 */ unsigned char* HalpIRQLToTPR; /* off 0x0044 */ unsigned char* HalpVectorToIRQL; /* off 0x0048 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0050 */ void* AcpiTable; /* off 0x0054 */ unsigned long AcpiTableSize; /* off 0x0058 */ unsigned long BootViaWinload:1 /* start bit 0 */; /* off 0x0058 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x005c */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0060 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0068 */ void* WmdTestResult; /* off 0x006c */ struct _GUID BootIdentifier; /* off 0x007c */ unsigned long ResumePages; /* off 0x0080 */ void* DumpHeader; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ unsigned char ByteFlags; /* off 0x0003 */ unsigned char InterlockedByteFlags; } e3; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; struct _MMPTE_FLUSH_LIST /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaximumCount; /* off 0x0008 */ void* FlushVa[33]; }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long ContainsPxeSubsection:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x0030 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ void* ImageMerge; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ unsigned long BitmapHint; /* off 0x0034 */ unsigned long LastAllocationSize; /* off 0x0038 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0038 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0038 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x003a */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x003a */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x003c */ void* FileHandle; /* off 0x0040 */ union _SLIST_HEADER AvailableList; /* off 0x0048 */ union _SLIST_HEADER NeedProcessingList; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMPAGING_FILE_FREE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long FreeBit; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CMHIVE /* sizeof 000005e0 1504 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _FAST_MUTEX* HiveLock; /* off 0x0314 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x0318 */ struct _KTHREAD* ViewLockOwner; /* off 0x031c */ unsigned long ViewLockLast; /* off 0x0320 */ unsigned long ViewUnLockLast; /* off 0x0324 */ struct _FAST_MUTEX* WriterLock; /* off 0x0328 */ struct _EX_PUSH_LOCK FlusherLock; /* off 0x032c */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0330 */ struct _LIST_ENTRY MappedViewList; /* off 0x0338 */ struct _LIST_ENTRY PinnedViewList; /* off 0x0340 */ struct _LIST_ENTRY FlushedViewList; /* off 0x0348 */ unsigned short MappedViewCount; /* off 0x034a */ unsigned short PinnedViewCount; /* off 0x034c */ unsigned long UseCount; /* off 0x0350 */ unsigned long ViewsPerHive; /* off 0x0354 */ struct _FILE_OBJECT* FileObject; /* off 0x0358 */ unsigned long LastShrinkHiveSize; /* off 0x0360 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0368 */ struct _UNICODE_STRING FileFullPath; /* off 0x0370 */ struct _UNICODE_STRING FileUserName; /* off 0x0378 */ struct _UNICODE_STRING HiveRootPath; /* off 0x0380 */ unsigned long SecurityCount; /* off 0x0384 */ unsigned long SecurityCacheSize; /* off 0x0388 */ long SecurityHitHint; /* off 0x038c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0390 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0590 */ unsigned long UnloadEventCount; /* off 0x0594 */ struct _KEVENT** UnloadEventArray; /* off 0x0598 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x059c */ unsigned char Frozen; /* off 0x05a0 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05a4 */ unsigned char GrowOnlyMode; /* off 0x05a8 */ unsigned long GrowOffset; /* off 0x05ac */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05b4 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x05bc */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x05c0 */ unsigned long Flags; /* off 0x05c4 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x05cc */ unsigned long FlushCount; /* off 0x05d0 */ struct _CM_RM* CmRm; /* off 0x05d4 */ unsigned long CmRmInitFailPoint; /* off 0x05d8 */ long CmRmInitFailStatus; /* off 0x05dc */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000090 144 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:9 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 9 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 10 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:11 /* start bit 11 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0048 */ void* DelayCloseEntry; /* off 0x0050 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0058 */ unsigned short KcbMaxNameLen; /* off 0x005a */ unsigned short KcbMaxValueNameLen; /* off 0x005c */ unsigned long KcbMaxValueDataLen; /* off 0x0060 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0060 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0060 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0060 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x0064 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x006c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0070 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0078 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0080 */ struct _CHILD_LIST TransValueCache; /* off 0x0088 */ struct _CM_TRANS* TransValueListOwner; /* off 0x008c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[8]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_WORKITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _TEB /* sizeof 00000ff8 4088 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char SpareBool0; /* off 0x0f75 */ unsigned char SpareBool1; /* off 0x0f76 */ unsigned char SpareBool2; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short DbgSafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short DbgInDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short DbgHasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short DbgSkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short DbgWerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short DbgRanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short DbgClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short DbgSuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short RtlDisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long ProcessRundown; /* off 0x0fe0 */ unsigned __int64 LastSwitchTime; /* off 0x0fe8 */ unsigned __int64 TotalSwitchOutTime; /* off 0x0ff0 */ union _LARGE_INTEGER WaitReasonBitMap; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ union _ULARGE_INTEGER Time; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ unsigned short* DeviceName; /* off 0x0018 */ unsigned short* DriverName; /* off 0x001c */ unsigned long ChildCount; /* off 0x0020 */ unsigned long ActiveChild; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0038 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0048 */ enum _PNP_DEVNODE_STATE State; /* off 0x004c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0050 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00a0 */ unsigned long StateHistoryEntry; /* off 0x00a4 */ long CompletionStatus; /* off 0x00a8 */ struct _IRP* PendingIrp; /* off 0x00ac */ unsigned long Flags; /* off 0x00b0 */ unsigned long UserFlags; /* off 0x00b4 */ unsigned long Problem; /* off 0x00b8 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00bc */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00c0 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00c4 */ struct _UNICODE_STRING InstancePath; /* off 0x00cc */ struct _UNICODE_STRING ServiceName; /* off 0x00d4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00d8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00dc */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00e0 */ unsigned long BusNumber; /* off 0x00e4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00e8 */ unsigned long ChildBusNumber; /* off 0x00ec */ unsigned short ChildBusTypeIndex; /* off 0x00ee */ unsigned char RemovalPolicy; /* off 0x00ef */ unsigned char HardwareRemovalPolicy; /* off 0x00f0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00f8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0100 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0108 */ unsigned short NoTranslatorMask; /* off 0x010a */ unsigned short QueryTranslatorMask; /* off 0x010c */ unsigned short NoArbiterMask; /* off 0x010e */ unsigned short QueryArbiterMask; /* off 0x0110 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x0114 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0118 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x011c */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0120 */ unsigned long CapabilityFlags; /* off 0x0124 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x0134 */ unsigned long DisableableDepends; /* off 0x0138 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0140 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0148 */ unsigned long DriverUnloadRetryCount; /* off 0x014c */ struct _DEVICE_NODE* PreviousParent; /* off 0x0150 */ unsigned long DeletedChildren; /* off 0x0154 */ unsigned long NumaNodeIndex; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000018 24 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000140 320 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0130 */ void* WriteBehindWorkQueueEntry; /* off 0x0134 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0138 */ unsigned long ProcImagePathHash; /* off 0x013c */ unsigned long MappedWritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long MappingCount; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ struct _LIST_ENTRY CoalescedWorkQueueLinks; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x0014 */ unsigned char Function; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long InBlockDeccommits; /* off 0x0044 */ unsigned long InBlockDeccomitSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0124 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; union { /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY Entry; struct { /* off 0x0038 */ void* Padding2; union { struct { /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; struct { /* off 0x0038 */ void* Pointer0; }; /* off 0x003c */ void* Pointer1; }; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000280 640 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ void* LogFileHandle; /* off 0x000c */ struct _ETHREAD* LoggerThread; /* off 0x0010 */ long LoggerStatus; /* off 0x0014 */ unsigned long LoggerId; /* off 0x0018 */ void* NBQHead; /* off 0x001c */ void* OverflowNBQHead; /* off 0x0020 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0028 */ union _SLIST_HEADER GlobalList; /* off 0x0030 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0034 */ struct _UNICODE_STRING LoggerName; /* off 0x003c */ struct _UNICODE_STRING LogFileName; /* off 0x0044 */ struct _UNICODE_STRING LogFilePattern; /* off 0x004c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0054 */ unsigned long ClockType; /* off 0x0058 */ long CollectionOn; /* off 0x005c */ unsigned long MaximumFileSize; /* off 0x0060 */ unsigned long LoggerMode; /* off 0x0064 */ unsigned long LastFlushedBuffer; /* off 0x0068 */ unsigned long FlushTimer; /* off 0x006c */ unsigned long FlushThreshold; /* off 0x0070 */ union _LARGE_INTEGER ByteOffset; /* off 0x0078 */ union _LARGE_INTEGER FlushTimeStamp; /* off 0x0080 */ unsigned long MinimumBuffers; /* off 0x0084 */ long BuffersAvailable; /* off 0x0088 */ long NumberOfBuffers; /* off 0x008c */ unsigned long MaximumBuffers; /* off 0x0090 */ unsigned long EventsLost; /* off 0x0094 */ unsigned long BuffersWritten; /* off 0x0098 */ unsigned long LogBuffersLost; /* off 0x009c */ unsigned long RealTimeBuffersDelivered; /* off 0x00a0 */ unsigned long RealTimeBuffersLost; /* off 0x00a4 */ unsigned long BufferSize; /* off 0x00a8 */ unsigned long MaximumEventSize; /* off 0x00ac */ long* SequencePtr; /* off 0x00b0 */ unsigned long LocalSequence; /* off 0x00b4 */ struct _GUID InstanceGuid; /* off 0x00c4 */ __int64( __stdcall *GetCpuClock)(); /* off 0x00c8 */ long FileCounter; /* off 0x00cc */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d0 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00ec */ struct _LIST_ENTRY Consumers; /* off 0x00f4 */ unsigned long NumConsumers; /* off 0x00f8 */ struct _LIST_ENTRY Connecting; /* off 0x0100 */ unsigned char NewConsumer; /* off 0x0104 */ void* RealtimeLogfileHandle; /* off 0x0108 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0110 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0120 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0128 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0130 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0138 */ unsigned long RealtimeBuffersSaved; /* off 0x0140 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0150 */ unsigned long RealtimeDisconnectProcessId; /* off 0x0154 */ unsigned long RealtimeDisconnectConsumerId; /* off 0x0158 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x015c */ struct _KEVENT LoggerEvent; /* off 0x016c */ struct _KEVENT FlushEvent; /* off 0x017c */ struct _KDPC FlushDpc; /* off 0x019c */ struct _KMUTANT LoggerMutex; /* off 0x01bc */ struct _EX_PUSH_LOCK LoggerLock; /* off 0x01c0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01fc */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0200 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0248 */ __int64 BufferSequenceNumber; /* off 0x0250 */ long AcceptNewEvents; union { /* off 0x0254 */ unsigned long Flags; struct { /* off 0x0254 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0254 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0254 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0254 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0254 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0254 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0254 */ unsigned long NoMoreEnable:1 /* start bit 6 */; }; }; union { /* off 0x0258 */ unsigned long RequestFlag; struct { /* off 0x0258 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0258 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0258 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0258 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0258 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; }; }; /* off 0x025c */ unsigned short StackTraceFilterHookCount; /* off 0x025e */ unsigned short StackTraceFilter[16]; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x0004 */ void* SectionObject; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0010 */ void* SectionHandle; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ struct _ALPC_PORT* OwnerPort; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0008 */ unsigned long TotalHandles; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000f4 244 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ unsigned long SequenceNo; /* off 0x0014 */ void* CompletionPort; /* off 0x0018 */ void* CompletionKey; /* off 0x001c */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x0020 */ void* PortContext; /* off 0x0024 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0060 */ struct _LIST_ENTRY MainQueue; /* off 0x0068 */ struct _LIST_ENTRY PendingQueue; /* off 0x0070 */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0078 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x0080 */ struct _KSEMAPHORE* Semaphore; /* off 0x0080 */ struct _KEVENT* DummyEvent; }; /* off 0x0084 */ struct _EX_PUSH_LOCK Lock; /* off 0x0088 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00b4 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b8 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00c0 */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c4 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c8 */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d0 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00d4 */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00d8 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00dc */ struct _KALPC_MESSAGE* Message; /* off 0x00e0 */ unsigned long MainQueueLength; /* off 0x00e4 */ unsigned long PendingQueueLength; /* off 0x00e8 */ unsigned long LargeMessageQueueLength; /* off 0x00ec */ unsigned long CanceledQueueLength; /* off 0x00f0 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ void* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[0]; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _HANDLE_TABLE_ENTRY* UniqueTableEntry; /* off 0x0044 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x0060 */ void* DataUserVa; /* off 0x0064 */ void* DataSystemVa; /* off 0x0068 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x006c */ struct _ALPC_PORT* ConnectionPort; /* off 0x0070 */ struct _ETHREAD* ServerThread; /* off 0x0078 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x000c */ struct _KALPC_REGION* Region; /* off 0x0010 */ struct _ALPC_PORT* OwnerPort; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ void* Address; /* off 0x001c */ unsigned long Size; /* off 0x0020 */ void* SecureViewHandle; /* off 0x0024 */ void* WriteAccessHandle; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x0004 */ struct _LIST_ENTRY RegionListEntry; /* off 0x000c */ struct _KALPC_SECTION* Section; /* off 0x0010 */ unsigned long Offset; /* off 0x0014 */ unsigned long Size; /* off 0x0018 */ unsigned long ViewSize; /* off 0x001c */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x0020 */ struct _KALPC_VIEW* ReadWriteView; /* off 0x0024 */ unsigned long NumberOfViews; /* off 0x0028 */ struct _LIST_ENTRY ViewListHead; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ struct _OBJECT_TYPE* ObjectType; /* off 0x0010 */ unsigned long TargetAccess; /* off 0x0014 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0018 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _ETHREAD* TargetThread; /* off 0x0014 */ struct _ALPC_PORT* TargetPort; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e8 488 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x00c0 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x00c4 */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c8 */ struct _LUID OriginatingLogonSession; /* off 0x00d0 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0158 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01e0 */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _DEVPROPKEY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID fmtid; /* off 0x0010 */ unsigned long pid; }; enum _WAIT_TYPE { WaitAll =0x00000000 ,//0 WaitAny =0x00000001 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; /* off 0x004c */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0038 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000270 624 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ char Number; /* off 0x0035 */ unsigned char ShareVector; /* off 0x0038 */ enum _KINTERRUPT_MODE Mode; /* off 0x003c */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0040 */ unsigned long ServiceCount; /* off 0x0044 */ unsigned long DispatchCount; /* off 0x0048 */ unsigned __int64 Rsvd1; /* off 0x0050 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ struct _CMHIVE* CmHive2; /* off 0x001c */ unsigned char ThreadFinished; /* off 0x001d */ unsigned char ThreadStarted; /* off 0x001e */ unsigned char Allocate; /* off 0x001f */ unsigned char WinPERequired; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; struct _LAZY_WRITER /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueue; /* off 0x0008 */ struct _KDPC ScanDpc; /* off 0x0028 */ struct _KTIMER ScanTimer; /* off 0x0050 */ unsigned char ScanActive; /* off 0x0051 */ unsigned char OtherWork; /* off 0x0052 */ unsigned char PendingTeardown; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_EXFAT_ID =0x0000008a ,//0 DPFLTR_ENDOFTABLE_ID =0x0000008b ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned char Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _MSUBSECTION* LastSubsectionHint; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d8 216 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPool =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaMaximumType =0x0000000d ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _PCI_HOTPLUG_SLOT_INTERRUPT { SlotInterruptPresenceDetect =0x00000000 ,//0 SlotInterruptLatchChange =0x00000001 ,//0 SlotInterruptAttentionButton =0x00000002 ,//0 SlotInterruptLinkStateChange =0x00000003 ,//0 SlotInterruptPowerFault =0x00000004 ,//0 SlotInterruptMaximum =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _KUSER_SHARED_DATA /* sizeof 000003b8 952 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[8]; /* off 0x0390 */ unsigned long HeapTracingPid[2]; /* off 0x0398 */ unsigned long CritSecTracingPid[2]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; union { /* off 0x03a8 */ unsigned __int64 AffinityPad; /* off 0x03a8 */ unsigned long ActiveProcessorAffinity; }; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POP_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_DISPLAY_RESUME_CONTEXT* DisplayResumeContext; /* off 0x003c */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000148 328 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000188 392 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0168 */ long NotifyGdiLevelForPowerOn; /* off 0x016c */ long NotifyGdiLevelForResumeUI; /* off 0x0170 */ struct _LIST_ENTRY Pending; /* off 0x0178 */ long Status; /* off 0x017c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0180 */ unsigned char Waking; /* off 0x0181 */ unsigned char Cancelled; /* off 0x0182 */ unsigned char IgnoreErrors; /* off 0x0183 */ unsigned char IgnoreNotImplemented; /* off 0x0184 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_DISPLAY_RESUME_CONTEXT /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ struct _ETHREAD* WorkerThread; /* off 0x0014 */ struct _KEVENT PrepareUIEvent; /* off 0x0024 */ struct _KEVENT PowerOnEvent; /* off 0x0034 */ struct _KEVENT DoneEvent; /* off 0x0044 */ unsigned long WorkerQueued; /* off 0x0048 */ unsigned long WorkerAbort; /* off 0x004c */ unsigned long NoResumeUI; }; struct _PO_HIBER_PERF /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; /* off 0x0048 */ unsigned __int64 ResumeAppStartTime; /* off 0x0050 */ unsigned __int64 ResumeAppEndTime; /* off 0x0058 */ unsigned __int64 HiberFileResumeTime; }; struct _POP_HIBER_CONTEXT /* sizeof 00000100 256 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ unsigned long IoPagesCount; /* off 0x0050 */ void* CurrentMcb; /* off 0x0054 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0058 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ struct _PO_MEMORY_RANGE_ARRAY* TableHead; /* off 0x0074 */ unsigned char* CompressionWorkspace; /* off 0x0078 */ unsigned char* CompressedWriteBuffer; /* off 0x007c */ unsigned long* PerformanceStats; /* off 0x0080 */ void* CompressionBlock; /* off 0x0084 */ void* DmaIO; /* off 0x0088 */ void* TemporaryHeap; /* off 0x0090 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00f0 */ struct _MDL* BootLoaderLogMdl; /* off 0x00f4 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x00f8 */ void* ResumeContext; /* off 0x00fc */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct PO_MEMORY_IMAGE /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long TotalPages; /* off 0x0050 */ unsigned long FirstTablePage; /* off 0x0054 */ unsigned long LastFilePage; /* off 0x0058 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00b8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00bc */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00c0 */ unsigned long NoBootLoaderLogPages; /* off 0x00c4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00e4 */ unsigned long NotUsed; /* off 0x00e8 */ unsigned long ResumeContextCheck; /* off 0x00ec */ unsigned long ResumeContextPages; }; struct _PO_MEMORY_RANGE_ARRAY_RANGE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PageNo; /* off 0x0004 */ unsigned long StartPage; /* off 0x0008 */ unsigned long EndPage; /* off 0x000c */ unsigned long CheckSum; }; struct _PO_MEMORY_RANGE_ARRAY_LINK /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY* Next; /* off 0x0004 */ unsigned long NextTable; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long EntryCount; }; struct _PO_MEMORY_RANGE_ARRAY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_RANGE Range; /* off 0x0000 */ struct _PO_MEMORY_RANGE_ARRAY_LINK Link; }; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0030 */ union _SLIST_HEADER PoolTrackers; /* off 0x0038 */ unsigned long CurrentPagedPoolAllocations; /* off 0x003c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0040 */ unsigned long PeakPagedPoolAllocations; /* off 0x0044 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PagedBytes; /* off 0x004c */ unsigned long NonPagedBytes; /* off 0x0050 */ unsigned long PeakPagedBytes; /* off 0x0054 */ unsigned long PeakNonPagedBytes; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0008 */ struct _MMPTE FreePteHead; /* off 0x0010 */ struct _MMPTE FreePteTail; /* off 0x0018 */ long PagesInUse; /* off 0x001c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Hint; /* off 0x000c */ struct _MMPTE* BasePte; /* off 0x0010 */ unsigned long* FailureCount; /* off 0x0014 */ struct _MMSUPPORT* Vm; /* off 0x0018 */ long TotalSystemPtes; /* off 0x001c */ long TotalFreeSystemPtes; /* off 0x0020 */ long CachedPteCount; /* off 0x0024 */ unsigned long PteFailures; /* off 0x0028 */ struct _KGUARDED_MUTEX* GlobalMutex; }; struct _MM_SESSION_SPACE /* sizeof 00001ec0 7872 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KGATE AttachGate; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0db8 */ struct _MMWSLE* Wsle; /* off 0x0dbc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0dc0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1df4 */ struct _MMPTE* PageTables; /* off 0x1df8 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e20 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e40 */ long PoolBigEntriesInUse; /* off 0x1e44 */ unsigned long PagedPoolPdeCount; /* off 0x1e48 */ unsigned long SpecialPoolPdeCount; /* off 0x1e4c */ unsigned long DynamicSessionPdeCount; /* off 0x1e50 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e7c */ void* PoolTrackTableExpansion; /* off 0x1e80 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1e84 */ void* PoolTrackBigPages; /* off 0x1e88 */ unsigned long PoolTrackBigPagesSize; /* off 0x1e8c */ struct _RTL_BITMAP SessionPoolPdes; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; enum _KTHREAD_STATE { Initialized =0x00000000 ,//0 Ready =0x00000001 ,//0 Running =0x00000002 ,//0 Standby =0x00000003 ,//0 Terminated =0x00000004 ,//0 Waiting =0x00000005 ,//0 Transition =0x00000006 ,//0 DeferredReady =0x00000007 ,//0 GateWait =0x00000008 ,//0 }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _VI_DEADLOCK_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned char PowerSettingChanged; /* off 0x0014 */ unsigned long DataLength; /* off 0x0018 */ unsigned char Data[1]; } PowerSettingNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 InvalidIDEvent =0x00000009 ,//0 PowerSettingChange =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 MaxRegNtNotifyClass =0x00000029 ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_6.0.6002.18005.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Private:31 /* start bit 1 */; } s; } u; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_TASK /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; }; struct _TP_DIRECT /* sizeof 00000004 4 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Absolute; /* off 0x0001 */ unsigned char NpxIrql; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char Size; /* off 0x0002 */ unsigned char Hand; }; union { /* off 0x0003 */ unsigned char Inserted; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 00000208 520 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[224]; /* off 0x0200 */ unsigned char Align16Byte[8]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 00000208 520 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x0208 */ unsigned long NpxSavedCpu; /* off 0x020c */ unsigned long Cr0NpxState; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ long Period; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 LastTimeCheck; /* off 0x0010 */ unsigned __int64 IdleTimeAccumulated; union { /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 IdleTransitionTime; } Native; /* off 0x0018 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 LastIdleCheck; } Hv; }; /* off 0x0020 */ struct PPM_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ struct _PPM_PERF_STATES* PerfStates; /* off 0x0028 */ unsigned long LastKernelUserTime; /* off 0x002c */ unsigned long LastIdleThreadKTime; /* off 0x0030 */ unsigned __int64 LastGlobalTimeHv; /* off 0x0038 */ unsigned __int64 LastProcessorTimeHv; /* off 0x0040 */ unsigned char ThermalConstraint; /* off 0x0041 */ unsigned char LastBusyPercentage; /* off 0x0042 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short PStateDomainIdleAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0048 */ struct _KTIMER PerfTimer; /* off 0x0070 */ struct _KDPC PerfDpc; /* off 0x0090 */ unsigned long LastSysTime; /* off 0x0094 */ struct _KPRCB* PStateMaster; /* off 0x0098 */ unsigned long PStateSet; /* off 0x009c */ unsigned long CurrentPState; /* off 0x00a0 */ unsigned long DesiredPState; /* off 0x00a4 */ unsigned long PStateIdleStartTime; /* off 0x00a8 */ unsigned long PStateIdleTime; /* off 0x00ac */ unsigned long LastPStateIdleTime; /* off 0x00b0 */ unsigned long PStateStartTime; /* off 0x00b4 */ unsigned long DiaIndex; /* off 0x00b8 */ unsigned long Reserved0; /* off 0x00bc */ unsigned long WmiDispatchPtr; /* off 0x00c0 */ long WmiInterfaceEnabled; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00002008 8200 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char Number; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ unsigned long SetMember; /* off 0x0018 */ char CpuType; /* off 0x0019 */ char CpuID; union { /* off 0x001a */ unsigned short CpuStep; struct { /* off 0x001a */ unsigned char CpuStepping; /* off 0x001b */ unsigned char CpuModel; }; }; /* off 0x001c */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x033c */ unsigned long KernelReserved[16]; /* off 0x037c */ unsigned long HalReserved[16]; /* off 0x03bc */ unsigned long CFlushSize; /* off 0x03c0 */ unsigned char CoresPerPhysicalProcessor; /* off 0x03c1 */ unsigned char LogicalProcessorsPerCore; /* off 0x03c2 */ unsigned char PrcbPad0[2]; /* off 0x03c4 */ unsigned long MHz; /* off 0x03c8 */ unsigned char PrcbPad1[80]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[49]; /* off 0x05a0 */ struct _KTHREAD* NpxThread; /* off 0x05a4 */ unsigned long InterruptCount; /* off 0x05a8 */ unsigned long KernelTime; /* off 0x05ac */ unsigned long UserTime; /* off 0x05b0 */ unsigned long DpcTime; /* off 0x05b4 */ unsigned long DpcTimeCount; /* off 0x05b8 */ unsigned long InterruptTime; /* off 0x05bc */ unsigned long AdjustDpcThreshold; /* off 0x05c0 */ unsigned long PageColor; /* off 0x05c4 */ unsigned char SkipTick; /* off 0x05c5 */ unsigned char DebuggerSavedIRQL; /* off 0x05c6 */ unsigned char NodeColor; /* off 0x05c7 */ unsigned char PollSlot; /* off 0x05c8 */ unsigned long NodeShiftedColor; /* off 0x05cc */ struct _KNODE* ParentNode; /* off 0x05d0 */ unsigned long MultiThreadProcessorSet; /* off 0x05d4 */ struct _KPRCB* MultiThreadSetMaster; /* off 0x05d8 */ unsigned long SecondaryColorMask; /* off 0x05dc */ unsigned long DpcTimeLimit; /* off 0x05e0 */ unsigned long CcFastReadNoWait; /* off 0x05e4 */ unsigned long CcFastReadWait; /* off 0x05e8 */ unsigned long CcFastReadNotPossible; /* off 0x05ec */ unsigned long CcCopyReadNoWait; /* off 0x05f0 */ unsigned long CcCopyReadWait; /* off 0x05f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x05f8 */ long MmSpinLockOrdering; /* off 0x05fc */ long IoReadOperationCount; /* off 0x0600 */ long IoWriteOperationCount; /* off 0x0604 */ long IoOtherOperationCount; /* off 0x0608 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0610 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0618 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0620 */ unsigned long CcFastMdlReadNoWait; /* off 0x0624 */ unsigned long CcFastMdlReadWait; /* off 0x0628 */ unsigned long CcFastMdlReadNotPossible; /* off 0x062c */ unsigned long CcMapDataNoWait; /* off 0x0630 */ unsigned long CcMapDataWait; /* off 0x0634 */ unsigned long CcPinMappedDataCount; /* off 0x0638 */ unsigned long CcPinReadNoWait; /* off 0x063c */ unsigned long CcPinReadWait; /* off 0x0640 */ unsigned long CcMdlReadNoWait; /* off 0x0644 */ unsigned long CcMdlReadWait; /* off 0x0648 */ unsigned long CcLazyWriteHotSpots; /* off 0x064c */ unsigned long CcLazyWriteIos; /* off 0x0650 */ unsigned long CcLazyWritePages; /* off 0x0654 */ unsigned long CcDataFlushes; /* off 0x0658 */ unsigned long CcDataPages; /* off 0x065c */ unsigned long CcLostDelayedWrites; /* off 0x0660 */ unsigned long CcFastReadResourceMiss; /* off 0x0664 */ unsigned long CcCopyReadWaitMiss; /* off 0x0668 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x066c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0670 */ unsigned long CcMapDataWaitMiss; /* off 0x0674 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0678 */ unsigned long CcPinReadWaitMiss; /* off 0x067c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0680 */ unsigned long CcMdlReadWaitMiss; /* off 0x0684 */ unsigned long CcReadAheadIos; /* off 0x0688 */ unsigned long KeAlignmentFixupCount; /* off 0x068c */ unsigned long KeExceptionDispatchCount; /* off 0x0690 */ unsigned long KeSystemCalls; /* off 0x0694 */ unsigned long PrcbPad2[3]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0720 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x1020 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1920 */ unsigned long PacketBarrier; /* off 0x1924 */ long ReverseStall; /* off 0x1928 */ void* IpiFrame; /* off 0x192c */ unsigned char PrcbPad3[52]; /* off 0x1960 */ void* CurrentPacket[3]; /* off 0x196c */ unsigned long TargetSet; /* off 0x1970 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1974 */ unsigned long IpiFrozen; /* off 0x1978 */ unsigned char PrcbPad4[40]; /* off 0x19a0 */ unsigned long RequestSummary; /* off 0x19a4 */ struct _KPRCB* SignalDone; /* off 0x19a8 */ unsigned char PrcbPad5[56]; /* off 0x19e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1a08 */ void* DpcStack; /* off 0x1a0c */ long MaximumDpcQueueDepth; /* off 0x1a10 */ unsigned long DpcRequestRate; /* off 0x1a14 */ unsigned long MinimumDpcRate; /* off 0x1a18 */ unsigned char DpcInterruptRequested; /* off 0x1a19 */ unsigned char DpcThreadRequested; /* off 0x1a1a */ unsigned char DpcRoutineActive; /* off 0x1a1b */ unsigned char DpcThreadActive; /* off 0x1a1c */ unsigned long PrcbLock; /* off 0x1a20 */ unsigned long DpcLastCount; /* off 0x1a24 */ unsigned long TimerHand; /* off 0x1a28 */ unsigned long TimerRequest; /* off 0x1a2c */ void* PrcbPad41; /* off 0x1a30 */ struct _KEVENT DpcEvent; /* off 0x1a40 */ unsigned char ThreadDpcEnable; /* off 0x1a41 */ unsigned char QuantumEnd; /* off 0x1a42 */ unsigned char PrcbPad50; /* off 0x1a43 */ unsigned char IdleSchedule; /* off 0x1a44 */ long DpcSetEventRequest; /* off 0x1a48 */ long Sleeping; /* off 0x1a4c */ unsigned long PeriodicCount; /* off 0x1a50 */ unsigned long PeriodicBias; /* off 0x1a54 */ unsigned char PrcbPad51[6]; /* off 0x1a5c */ long TickOffset; /* off 0x1a60 */ struct _KDPC CallDpc; /* off 0x1a80 */ long ClockKeepAlive; /* off 0x1a84 */ unsigned char ClockCheckSlot; /* off 0x1a85 */ unsigned char ClockPollCycle; /* off 0x1a86 */ unsigned char PrcbPad6[2]; /* off 0x1a88 */ long DpcWatchdogPeriod; /* off 0x1a8c */ long DpcWatchdogCount; /* off 0x1a90 */ long ThreadWatchdogPeriod; /* off 0x1a94 */ long ThreadWatchdogCount; /* off 0x1a98 */ unsigned long PrcbPad70[2]; /* off 0x1aa0 */ struct _LIST_ENTRY WaitListHead; /* off 0x1aa8 */ unsigned long WaitLock; /* off 0x1aac */ unsigned long ReadySummary; /* off 0x1ab0 */ unsigned long QueueIndex; /* off 0x1ab4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1ab8 */ unsigned __int64 StartCycles; /* off 0x1ac0 */ unsigned __int64 CycleTime; /* off 0x1ac8 */ unsigned __int64 PrcbPad71[3]; /* off 0x1ae0 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1be0 */ void* ChainedInterruptList; /* off 0x1be4 */ long LookasideIrpFloat; /* off 0x1be8 */ long MmPageFaultCount; /* off 0x1bec */ long MmCopyOnWriteCount; /* off 0x1bf0 */ long MmTransitionCount; /* off 0x1bf4 */ long MmCacheTransitionCount; /* off 0x1bf8 */ long MmDemandZeroCount; /* off 0x1bfc */ long MmPageReadCount; /* off 0x1c00 */ long MmPageReadIoCount; /* off 0x1c04 */ long MmCacheReadCount; /* off 0x1c08 */ long MmCacheIoCount; /* off 0x1c0c */ long MmDirtyPagesWriteCount; /* off 0x1c10 */ long MmDirtyWriteIoCount; /* off 0x1c14 */ long MmMappedPagesWriteCount; /* off 0x1c18 */ long MmMappedWriteIoCount; /* off 0x1c1c */ unsigned long CachedCommit; /* off 0x1c20 */ unsigned long CachedResidentAvailable; /* off 0x1c24 */ void* HyperPte; /* off 0x1c28 */ unsigned char CpuVendor; /* off 0x1c29 */ unsigned char PrcbPad8[3]; /* off 0x1c2c */ unsigned char VendorString[13]; /* off 0x1c39 */ unsigned char InitialApicId; /* off 0x1c3a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1c3b */ unsigned char PrcbPad9[5]; /* off 0x1c40 */ unsigned long FeatureBits; /* off 0x1c48 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1c50 */ unsigned __int64 IsrTime; /* off 0x1c58 */ unsigned __int64 SpareField1; /* off 0x1c60 */ struct _FX_SAVE_AREA NpxSaveArea; /* off 0x1e70 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1f38 */ struct _KDPC DpcWatchdogDpc; /* off 0x1f58 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1f80 */ void* WheaInfo; /* off 0x1f84 */ void* EtwSupport; /* off 0x1f88 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1f90 */ union _SLIST_HEADER HypercallPageList; /* off 0x1f98 */ void* HypercallPageVirtual; /* off 0x1f9c */ void* VirtualApicAssist; /* off 0x1fa0 */ unsigned __int64* StatisticsPage; /* off 0x1fa4 */ void* RateControl; /* off 0x1fa8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1fe4 */ unsigned long CacheCount; /* off 0x1fe8 */ unsigned long CacheProcessorMask[5]; /* off 0x1ffc */ unsigned long PackageProcessorSet; /* off 0x2000 */ unsigned long CoreProcessorSet; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char SpareByte; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; union { /* off 0x0038 */ struct _KAPC_STATE ApcState; struct { /* off 0x0038 */ unsigned char ApcStateFill[23]; /* off 0x004f */ char Priority; }; }; /* off 0x0050 */ unsigned short NextProcessor; /* off 0x0052 */ unsigned short DeferredProcessor; /* off 0x0054 */ unsigned long ApcQueueLock; /* off 0x0058 */ unsigned long ContextSwitches; /* off 0x005c */ unsigned char State; /* off 0x005d */ unsigned char NpxState; /* off 0x005e */ unsigned char WaitIrql; /* off 0x005f */ char WaitMode; /* off 0x0060 */ long WaitStatus; union { /* off 0x0064 */ struct _KWAIT_BLOCK* WaitBlockList; /* off 0x0064 */ struct _KGATE* GateObject; }; union { struct { /* off 0x0068 */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x0068 */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x0068 */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x0068 */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x0068 */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x0068 */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x0068 */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x0068 */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x0068 */ unsigned long Reserved:24 /* start bit 8 */; }; /* off 0x0068 */ long MiscFlags; }; /* off 0x006c */ unsigned char WaitReason; /* off 0x006d */ unsigned char SwapBusy; /* off 0x006e */ unsigned char Alerted[2]; union { /* off 0x0070 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0070 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x0078 */ struct _KQUEUE* Queue; /* off 0x007c */ unsigned long WaitTime; union { struct { /* off 0x0080 */ short KernelApcDisable; /* off 0x0082 */ short SpecialApcDisable; }; struct { /* off 0x0080 */ unsigned long CombinedApcDisable; }; }; /* off 0x0084 */ void* Teb; union { /* off 0x0088 */ struct _KTIMER Timer; /* off 0x0088 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b0 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b0 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b0 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b0 */ unsigned long CycleChargePending:1 /* start bit 4 */; /* off 0x00b0 */ unsigned long CalloutActive:1 /* start bit 5 */; /* off 0x00b0 */ unsigned long ApcQueueable:1 /* start bit 6 */; /* off 0x00b0 */ unsigned long EnableStackSwap:1 /* start bit 7 */; /* off 0x00b0 */ unsigned long GuiThread:1 /* start bit 8 */; /* off 0x00b0 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b0 */ long ThreadFlags; }; union { /* off 0x00b8 */ struct _KWAIT_BLOCK WaitBlock[4]; struct { /* off 0x00b8 */ unsigned char WaitBlockFill0[23]; /* off 0x00cf */ unsigned char IdealProcessor; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill1[47]; /* off 0x00e7 */ char PreviousMode; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill2[71]; /* off 0x00ff */ unsigned char ResourceIndex; }; struct { /* off 0x00b8 */ unsigned char WaitBlockFill3[95]; /* off 0x0117 */ unsigned char LargeStack; }; }; /* off 0x0118 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0120 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x0124 */ void* FirstArgument; union { /* off 0x0128 */ void* CallbackStack; /* off 0x0128 */ unsigned long CallbackDepth; }; /* off 0x012c */ void* ServiceTable; /* off 0x0130 */ unsigned char ApcStateIndex; /* off 0x0131 */ char BasePriority; /* off 0x0132 */ char PriorityDecrement; /* off 0x0133 */ unsigned char Preempted; /* off 0x0134 */ unsigned char AdjustReason; /* off 0x0135 */ char AdjustIncrement; /* off 0x0136 */ unsigned char Spare01; /* off 0x0137 */ char Saturation; /* off 0x0138 */ unsigned long SystemCallNumber; /* off 0x013c */ unsigned long FreezeCount; /* off 0x0140 */ unsigned long UserAffinity; /* off 0x0144 */ struct _KPROCESS* Process; /* off 0x0148 */ unsigned long Affinity; /* off 0x014c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0154 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0154 */ unsigned char SavedApcStateFill[23]; /* off 0x016b */ unsigned char Spare02; }; }; /* off 0x016c */ char SuspendCount; /* off 0x016d */ unsigned char UserIdealProcessor; /* off 0x016e */ unsigned char Spare03; /* off 0x016f */ unsigned char OtherPlatformFill; /* off 0x0170 */ void* Win32Thread; /* off 0x0174 */ void* StackBase; union { /* off 0x0178 */ struct _KAPC SuspendApc; struct { /* off 0x0178 */ unsigned char SuspendApcFill0[1]; /* off 0x0179 */ char Spare04; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill1[3]; /* off 0x017b */ unsigned char QuantumReset; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill2[4]; /* off 0x017c */ unsigned long KernelTime; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill3[36]; /* off 0x019c */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill4[40]; /* off 0x01a0 */ void* LegoData; }; struct { /* off 0x0178 */ unsigned char SuspendApcFill5[47]; /* off 0x01a7 */ unsigned char PowerState; }; }; /* off 0x01a8 */ unsigned long UserTime; union { /* off 0x01ac */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01ac */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01c0 */ unsigned long SListFaultCount; /* off 0x01c4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01cc */ struct _LIST_ENTRY MutantListHead; /* off 0x01d4 */ void* SListFaultAddress; /* off 0x01d8 */ void* MdlForLockedTeb; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; struct _KPROCESS /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ unsigned long Unused0; /* off 0x0020 */ struct _KGDTENTRY LdtDescriptor; /* off 0x0028 */ struct _KIDTENTRY Int21Descriptor; /* off 0x0030 */ unsigned short IopmOffset; /* off 0x0032 */ unsigned char Unused1; /* off 0x0033 */ unsigned char Unused2; /* off 0x0034 */ unsigned long ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ unsigned long Affinity; union { struct { /* off 0x0060 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0060 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0060 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0060 */ long ReservedFlags:29 /* start bit 3 */; }; /* off 0x0060 */ long ProcessFlags; }; /* off 0x0064 */ char BasePriority; /* off 0x0065 */ char QuantumReset; /* off 0x0066 */ unsigned char State; /* off 0x0067 */ unsigned char ThreadSeed; /* off 0x0068 */ unsigned char PowerState; /* off 0x0069 */ unsigned char IdealNode; /* off 0x006a */ unsigned char Visited; union { /* off 0x006b */ struct _KEXECUTE_OPTIONS Flags; /* off 0x006b */ unsigned char ExecuteOptions; }; /* off 0x006c */ unsigned long StackCount; /* off 0x0070 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0078 */ unsigned __int64 CycleTime; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Fill:7 /* start bit 1 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ union _SLIST_HEADER PfnDereferenceSListHead; /* off 0x0028 */ unsigned long ProcessorMask; /* off 0x002c */ unsigned char Color; /* off 0x002d */ unsigned char Seed; /* off 0x002e */ unsigned char NodeNumber; /* off 0x002f */ struct _flags Flags; /* off 0x0030 */ unsigned long MmShiftedColor; /* off 0x0034 */ unsigned long FreeCount[2]; /* off 0x003c */ struct _SINGLE_LIST_ENTRY* PfnDeferredList; /* off 0x0040 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000020 32 */ { /* off 0x0000 */ long( __fastcall *IdleHandler)(void*,unsigned long); /* off 0x0004 */ void* Context; /* off 0x0008 */ unsigned long Latency; /* off 0x000c */ unsigned long Power; /* off 0x0010 */ unsigned long TimeCheck; /* off 0x0014 */ unsigned long StateFlags; /* off 0x0018 */ unsigned char PromotePercent; /* off 0x0019 */ unsigned char DemotePercent; /* off 0x001a */ unsigned char PromotePercentBase; /* off 0x001b */ unsigned char DemotePercentBase; /* off 0x001c */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hypervisor:2 /* start bit 2 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:24 /* start bit 8 */; }; } Flags; /* off 0x000c */ unsigned long TargetState; /* off 0x0010 */ unsigned long ActualState; /* off 0x0014 */ unsigned long OldState; /* off 0x0018 */ unsigned long TargetProcessors; /* off 0x001c */ struct _PPM_IDLE_STATE State[1]; }; struct PPM_IDLE_STATE_ACCOUNTING /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long IdleTransitions; /* off 0x0004 */ unsigned long FailedTransitions; /* off 0x0008 */ unsigned long InvalidBucketIndex; /* off 0x0010 */ unsigned __int64 TotalTime; /* off 0x0018 */ unsigned long IdleTimeBuckets[6]; }; struct PPM_IDLE_ACCOUNTING /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ struct PPM_IDLE_STATE_ACCOUNTING State[1]; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long UsingHypervisor:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoDomainAccounting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 4 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0030 */ unsigned long TargetProcessors; /* off 0x0034 */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0038 */ unsigned long PStateContext; /* off 0x003c */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long TStateContext; /* off 0x0044 */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0048 */ struct _PPM_DIA_STATS* DiaStats; /* off 0x004c */ unsigned long DiaStatsCount; /* off 0x0050 */ struct _PPM_PERF_STATE State[1]; }; struct _PPM_DIA_STATS /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long PerfLevel; /* off 0x0004 */ unsigned long IdleTime; /* off 0x0008 */ unsigned long TimeInterval; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _KPCR /* sizeof 00002128 8488 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000031 ,//0 }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 00000288 648 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x01e0 */ union _LARGE_INTEGER CreateTime; union { /* off 0x01e8 */ union _LARGE_INTEGER ExitTime; /* off 0x01e8 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x01f0 */ long ExitStatus; /* off 0x01f0 */ void* OfsChain; }; union { /* off 0x01f4 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x01f4 */ void* ForwardLinkShadow; /* off 0x01f8 */ void* StartAddress; }; }; union { /* off 0x01fc */ struct _TERMINATION_PORT* TerminationPort; /* off 0x01fc */ struct _ETHREAD* ReaperLink; /* off 0x01fc */ void* KeyedWaitValue; /* off 0x01fc */ void* Win32StartParameter; }; /* off 0x0200 */ unsigned long ActiveTimerListLock; /* off 0x0204 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x020c */ struct _CLIENT_ID Cid; union { /* off 0x0214 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0214 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0228 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x022c */ struct _LIST_ENTRY IrpList; /* off 0x0234 */ unsigned long TopLevelIrp; /* off 0x0238 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x023c */ union _PSP_RATE_APC* RateControlApc; /* off 0x0240 */ void* Win32StartAddress; /* off 0x0244 */ void* SparePtr0; /* off 0x0248 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0250 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0254 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0258 */ unsigned long ReadClusterSize; /* off 0x025c */ long MmLockOrdering; union { /* off 0x0260 */ unsigned long CrossThreadFlags; struct { /* off 0x0260 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0260 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0260 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0260 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0260 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0260 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0260 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0260 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0260 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0260 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0260 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0264 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0264 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0264 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0264 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0264 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0264 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0264 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0264 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0268 */ unsigned long SameThreadApcFlags; struct { /* off 0x0268 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0268 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0268 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0268 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0268 */ unsigned char OwnsSystemWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0268 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0269 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0269 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0269 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0269 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0269 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0269 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x026a */ unsigned char Spare1:8 /* start bit 0 */; /* off 0x026b */ unsigned char PriorityRegionActive; }; }; /* off 0x026c */ unsigned char CacheManagerActive; /* off 0x026d */ unsigned char DisablePageFaultClustering; /* off 0x026e */ unsigned char ActiveFaultCount; /* off 0x0270 */ unsigned long AlpcMessageId; union { /* off 0x0274 */ void* AlpcMessage; /* off 0x0274 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0278 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x0280 */ unsigned long CacheManagerCount; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { /* off 0x0004 */ long OwnerCount; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char SessionSpace:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 1 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 2 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char SessionMaster:1 /* start bit 6 */; /* off 0x0000 */ unsigned char TrimmerAttached:1 /* start bit 7 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Reserved:3 /* start bit 1 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long PeakWorkingSetSize; /* off 0x0018 */ unsigned long ChargedWslePages; /* off 0x001c */ unsigned long MinimumWorkingSetSize; /* off 0x0020 */ unsigned long MaximumWorkingSetSize; /* off 0x0024 */ struct _MMWSL* VmWorkingSetList; /* off 0x0028 */ unsigned long Claim; /* off 0x002c */ unsigned long ActualWslePages; /* off 0x0030 */ unsigned long WorkingSetPrivateSize; /* off 0x0034 */ unsigned long WorkingSetSizeOverhead; /* off 0x0038 */ unsigned long WorkingSetSize; /* off 0x003c */ struct _KGATE* ExitGate; /* off 0x0040 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0044 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 00000270 624 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0080 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x0088 */ union _LARGE_INTEGER CreateTime; /* off 0x0090 */ union _LARGE_INTEGER ExitTime; /* off 0x0098 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x009c */ void* UniqueProcessId; /* off 0x00a0 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00a8 */ unsigned long QuotaUsage[3]; /* off 0x00b4 */ unsigned long QuotaPeak[3]; /* off 0x00c0 */ unsigned long CommitCharge; /* off 0x00c4 */ unsigned long PeakVirtualSize; /* off 0x00c8 */ unsigned long VirtualSize; /* off 0x00cc */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00d4 */ void* DebugPort; union { /* off 0x00d8 */ void* ExceptionPortData; /* off 0x00d8 */ unsigned long ExceptionPortValue; /* off 0x00d8 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00dc */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00e0 */ struct _EX_FAST_REF Token; /* off 0x00e4 */ unsigned long WorkingSetPage; /* off 0x00e8 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x00ec */ struct _ETHREAD* RotateInProgress; /* off 0x00f0 */ struct _ETHREAD* ForkInProgress; /* off 0x00f4 */ unsigned long HardwareTrigger; /* off 0x00f8 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x00fc */ void* CloneRoot; /* off 0x0100 */ unsigned long NumberOfPrivatePages; /* off 0x0104 */ unsigned long NumberOfLockedPages; /* off 0x0108 */ void* Win32Process; /* off 0x010c */ struct _EJOB* Job; /* off 0x0110 */ void* SectionObject; /* off 0x0114 */ void* SectionBaseAddress; /* off 0x0118 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x011c */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0120 */ void* Win32WindowStation; /* off 0x0124 */ void* InheritedFromUniqueProcessId; /* off 0x0128 */ void* LdtInformation; /* off 0x012c */ void* Spare; /* off 0x0130 */ void* VdmObjects; /* off 0x0134 */ void* DeviceMap; /* off 0x0138 */ void* EtwDataSource; /* off 0x013c */ void* FreeTebHint; union { /* off 0x0140 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0140 */ unsigned __int64 Filler; }; /* off 0x0148 */ void* Session; /* off 0x014c */ unsigned char ImageFileName[16]; /* off 0x015c */ struct _LIST_ENTRY JobLinks; /* off 0x0164 */ void* LockedPagesList; /* off 0x0168 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0170 */ void* SecurityPort; /* off 0x0174 */ void* PaeTop; /* off 0x0178 */ unsigned long ActiveThreads; /* off 0x017c */ unsigned long ImagePathHash; /* off 0x0180 */ unsigned long DefaultHardErrorProcessing; /* off 0x0184 */ long LastThreadExitStatus; /* off 0x0188 */ struct _PEB* Peb; /* off 0x018c */ struct _EX_FAST_REF PrefetchTrace; /* off 0x0190 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x0198 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01a0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01a8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01c0 */ unsigned long CommitChargeLimit; /* off 0x01c4 */ unsigned long CommitChargePeak; /* off 0x01c8 */ void* AweInfo; /* off 0x01cc */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01d0 */ struct _MMSUPPORT Vm; /* off 0x0218 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0220 */ unsigned long ModifiedPageCount; union { /* off 0x0224 */ unsigned long Flags2; struct { /* off 0x0224 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0224 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0224 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0224 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0224 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0224 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0224 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0224 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0224 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0224 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0224 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0224 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0224 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0224 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0224 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0224 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x0224 */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x0224 */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x0224 */ unsigned long CrossSessionCreate:1 /* start bit 20 */; }; }; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0228 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0228 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0228 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0228 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0228 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0228 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0228 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0228 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0228 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0228 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0228 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0228 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0228 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0228 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0228 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0228 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0228 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0228 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0228 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0228 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0228 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0228 */ unsigned long SmapAllowed:1 /* start bit 25 */; /* off 0x0228 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0228 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0228 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0228 */ unsigned long SpareProcessFlags:1 /* start bit 31 */; }; }; /* off 0x022c */ long ExitStatus; /* off 0x0230 */ unsigned short Spare7; union { struct { /* off 0x0232 */ unsigned char SubSystemMinorVersion; /* off 0x0233 */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x0232 */ unsigned short SubSystemVersion; }; }; /* off 0x0234 */ unsigned char PriorityClass; /* off 0x0238 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0258 */ unsigned long Cookie; /* off 0x025c */ struct _ALPC_PROCESS_CONTEXT AlpcContext; }; struct _HANDLE_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000128 296 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ unsigned long Affinity; /* off 0x00ac */ unsigned char PriorityClass; /* off 0x00b0 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00b4 */ unsigned long UIRestrictionsClass; /* off 0x00b8 */ unsigned long EndOfJobTimeAction; /* off 0x00bc */ void* CompletionPort; /* off 0x00c0 */ void* CompletionKey; /* off 0x00c4 */ unsigned long SessionId; /* off 0x00c8 */ unsigned long SchedulingClass; /* off 0x00d0 */ unsigned __int64 ReadOperationCount; /* off 0x00d8 */ unsigned __int64 WriteOperationCount; /* off 0x00e0 */ unsigned __int64 OtherOperationCount; /* off 0x00e8 */ unsigned __int64 ReadTransferCount; /* off 0x00f0 */ unsigned __int64 WriteTransferCount; /* off 0x00f8 */ unsigned __int64 OtherTransferCount; /* off 0x0100 */ unsigned long ProcessMemoryLimit; /* off 0x0104 */ unsigned long JobMemoryLimit; /* off 0x0108 */ unsigned long PeakProcessMemoryUsed; /* off 0x010c */ unsigned long PeakJobMemoryUsed; /* off 0x0110 */ unsigned long CurrentJobMemoryUsed; /* off 0x0114 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0118 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0120 */ unsigned long MemberLevel; /* off 0x0124 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _PEB /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ReservedBits0:28 /* start bit 4 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long SpareUlong; /* off 0x0038 */ unsigned long SparePebPtr0; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000294 660 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000d18 3352 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextEstimationSlot; /* off 0x0020 */ unsigned long NextAgingSlot; /* off 0x0024 */ unsigned long EstimatedAvailable; /* off 0x0028 */ unsigned long GrowthSinceLastEstimate; /* off 0x002c */ unsigned long NumberOfCommittedPageTables; /* off 0x0030 */ unsigned long VadBitMapHint; /* off 0x0034 */ unsigned long NonDirectCount; /* off 0x0038 */ unsigned long LastVadBit; /* off 0x003c */ unsigned long MaximumLastVadBit; /* off 0x0040 */ unsigned long LastAllocationSizeHint; /* off 0x0044 */ unsigned long LastAllocationSize; /* off 0x0048 */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x004c */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0050 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0054 */ void* HighestUserAddress; /* off 0x0058 */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c58 */ unsigned long CommittedPageTables[48]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long LockedInWs:1 /* start bit 1 */; /* off 0x0000 */ unsigned long LockedInMemory:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 3 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Age:2 /* start bit 10 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileMaximumInformation =0x00000033 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ enum _IRQ_DEVICE_POLICY AffinityPolicy; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_DEVICE_POLICY { IrqPolicyMachineDefault =0x00000000 ,//0 IrqPolicyAllCloseProcessors =0x00000001 ,//0 IrqPolicyOneCloseProcessor =0x00000002 ,//0 IrqPolicyAllProcessorsInMachine =0x00000003 ,//0 IrqPolicySpecifiedProcessors =0x00000004 ,//0 IrqPolicySpreadMessagesAcrossAllProcessors =0x00000005 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Reserved; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _POWER_CHANNEL_SUMMARY /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long TotalCount; /* off 0x0008 */ unsigned long D0Count; /* off 0x000c */ struct _LIST_ENTRY NotifyList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long TotalBusyCount; /* off 0x000c */ unsigned long ConservationIdleTime; /* off 0x0010 */ unsigned long PerformanceIdleTime; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _LIST_ENTRY IdleList; /* off 0x0020 */ unsigned char DeviceType; /* off 0x0024 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x0028 */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x002c */ struct _LIST_ENTRY NotifySourceList; /* off 0x0034 */ struct _LIST_ENTRY NotifyTargetList; /* off 0x003c */ struct _POWER_CHANNEL_SUMMARY PowerChannelSummary; /* off 0x0050 */ struct _LIST_ENTRY Volume; /* off 0x0058 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; union _PSP_RATE_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000000 0 */ { }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000140 320 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned long Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _ERESOURCE Mutex; /* off 0x00b0 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x00b4 */ unsigned long Key; /* off 0x00b8 */ struct _EX_PUSH_LOCK ObjectLocks[32]; /* off 0x0138 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _OBJECT_TYPE* Type; /* off 0x000c */ unsigned char NameInfoOffset; /* off 0x000d */ unsigned char HandleInfoOffset; /* off 0x000e */ unsigned char QuotaInfoOffset; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ void* ParseContext; /* off 0x000c */ char ProbeMode; /* off 0x0010 */ unsigned long PagedPoolCharge; /* off 0x0014 */ unsigned long NonPagedPoolCharge; /* off 0x0018 */ unsigned long SecurityDescriptorCharge; /* off 0x001c */ void* SecurityDescriptor; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0024 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ struct _EPROCESS* ExclusiveProcess; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ unsigned long QueryReferences; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; struct _ETW_KERNEL_TRACE_TIMESTAMP /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER KernelTraceTimeStamp[2]; }; struct _PERFINFO_HARDPAGEFAULT_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER ReadOffset; /* off 0x0008 */ void* VirtualAddress; /* off 0x000c */ void* FileObject; /* off 0x0010 */ unsigned long ThreadId; /* off 0x0014 */ unsigned long ByteCount; }; struct _PF_HARD_FAULT_INFO /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _ETW_KERNEL_TRACE_TIMESTAMP KernelTimeStamp; /* off 0x0010 */ struct _PERFINFO_HARDPAGEFAULT_INFORMATION HardFaultEvent; /* off 0x0028 */ union _LARGE_INTEGER IoTimeInTicks; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Reserved:8 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevNone =0x00000003 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long CpuValid:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ProcessorType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 InstructionSet:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Operation:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Flags:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Level:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 CPUVersion:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CPUBrandString:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 ProcessorId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 TargetAddress:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InstructionPointer:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Reserved:51 /* start bit 13 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_GENERIC_PROCESSOR_ERROR /* sizeof 000000c0 192 */ { /* off 0x0000 */ union _WHEA_GENERIC_PROCESSOR_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ unsigned char ProcessorType; /* off 0x0009 */ unsigned char InstructionSet; /* off 0x000a */ unsigned char ErrorType; /* off 0x000b */ unsigned char Operation; /* off 0x000c */ unsigned char Flags; /* off 0x000d */ unsigned char Level; /* off 0x000e */ unsigned short Reserved; /* off 0x0010 */ unsigned __int64 CPUVersion; /* off 0x0018 */ unsigned char CPUBrandString[128]; /* off 0x0098 */ unsigned __int64 ProcessorId; /* off 0x00a0 */ unsigned __int64 TargetAddress; /* off 0x00a8 */ unsigned __int64 RequesterId; /* off 0x00b0 */ unsigned __int64 ResponderId; /* off 0x00b8 */ unsigned __int64 InstructionPointer; }; union _WHEA_MEMORY_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; union _WHEA_NMI_ERROR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_NMI_ERROR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Data[8]; /* off 0x0008 */ union _WHEA_NMI_ERROR_FLAGS Flags; }; union _WHEA_PCIEXPRESS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 PortType:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Version:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 CommandStatus:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 DeviceId:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 DeviceSerialNumber:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BridgeControlStatus:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 ExpressCapability:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 AerInfo:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Reserved:56 /* start bit 8 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIEXPRESS_VERSION /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned char MinorVersion; /* off 0x0001 */ unsigned char MajorVersion; /* off 0x0002 */ unsigned short Reserved; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PCIEXPRESS_COMMAND_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short Command; /* off 0x0002 */ unsigned short Status; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_DEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorID; /* off 0x0002 */ unsigned short DeviceID; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long Segment:16 /* start bit 8 */; /* off 0x0008 */ unsigned long PrimaryBusNumber:8 /* start bit 24 */; /* off 0x000c */ unsigned long SecondaryBusNumber:8 /* start bit 0 */; /* off 0x000c */ unsigned long Reserved1:2 /* start bit 8 */; /* off 0x000c */ unsigned long SlotNumber:14 /* start bit 10 */; /* off 0x000c */ unsigned long Reserved2:8 /* start bit 24 */; }; union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short BridgeSecondaryStatus; /* off 0x0002 */ unsigned short BridgeControl; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_PCIEXPRESS_ERROR /* sizeof 000000d0 208 */ { /* off 0x0000 */ union _WHEA_PCIEXPRESS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ enum WHEA_PCIEXPRESS_DEVICE_TYPE PortType; /* off 0x000c */ union _WHEA_PCIEXPRESS_VERSION Version; /* off 0x0010 */ union _WHEA_PCIEXPRESS_COMMAND_STATUS CommandStatus; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ struct _WHEA_PCIEXPRESS_DEVICE_ID DeviceId; /* off 0x0028 */ unsigned __int64 DeviceSerialNumber; /* off 0x0030 */ union _WHEA_PCIEXPRESS_BRIDGE_CONTROL_STATUS BridgeControlStatus; /* off 0x0034 */ unsigned char ExpressCapability[60]; /* off 0x0070 */ unsigned char AerInfo[96]; }; union _WHEA_PCIXBUS_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 BusId:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 BusAddress:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 BusData:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 BusCommand:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 CompleterId:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Reserved:55 /* start bit 9 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_PCIXBUS_ID /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char BusNumber; /* off 0x0001 */ unsigned char BusSegment; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_PCIXBUS_COMMAND /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Command:56 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PCIXCommand:1 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 57 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_PCIXBUS_ERROR /* sizeof 00000048 72 */ { /* off 0x0000 */ union _WHEA_PCIXBUS_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned short ErrorType; /* off 0x0012 */ union _WHEA_PCIXBUS_ID BusId; /* off 0x0014 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 BusAddress; /* off 0x0020 */ unsigned __int64 BusData; /* off 0x0028 */ union _WHEA_PCIXBUS_COMMAND BusCommand; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 CompleterId; /* off 0x0040 */ unsigned __int64 TargetId; }; union _WHEA_PCIXDEVICE_ERROR_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 IdInfo:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 MemoryNumber:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 IoNumber:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 RegisterDataPairs:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Reserved:59 /* start bit 5 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; struct _WHEA_PCIXDEVICE_ID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short VendorId; /* off 0x0002 */ unsigned short DeviceId; /* off 0x0004 */ unsigned long ClassCode:24 /* start bit 0 */; /* off 0x0004 */ unsigned long FunctionNumber:8 /* start bit 24 */; /* off 0x0008 */ unsigned long DeviceNumber:8 /* start bit 0 */; /* off 0x0008 */ unsigned long BusNumber:8 /* start bit 8 */; /* off 0x0008 */ unsigned long SegmentNumber:8 /* start bit 16 */; /* off 0x0008 */ unsigned long Reserved1:8 /* start bit 24 */; /* off 0x000c */ unsigned long Reserved2; }; struct WHEA_PCIXDEVICE_REGISTER_PAIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Register; /* off 0x0008 */ unsigned __int64 Data; }; struct _WHEA_PCIXDEVICE_ERROR /* sizeof 00000068 104 */ { /* off 0x0000 */ union _WHEA_PCIXDEVICE_ERROR_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ struct _WHEA_PCIXDEVICE_ID IdInfo; /* off 0x0020 */ unsigned long MemoryNumber; /* off 0x0024 */ unsigned long IoNumber; /* off 0x0028 */ struct WHEA_PCIXDEVICE_REGISTER_PAIR RegisterDataPairs[4]; }; struct _WHEA_ERROR_PACKET /* sizeof 00000119 281 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long RawDataLength; /* off 0x0010 */ unsigned __int64 Reserved1; /* off 0x0018 */ unsigned __int64 Context; /* off 0x0020 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0024 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0028 */ unsigned long ErrorSourceId; /* off 0x002c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0030 */ unsigned long Reserved2; /* off 0x0034 */ unsigned long Version; /* off 0x0038 */ unsigned __int64 Cpu; /* off 0x0040 */ union /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _WHEA_GENERIC_PROCESSOR_ERROR ProcessorError; /* off 0x0000 */ struct _WHEA_MEMORY_ERROR MemoryError; /* off 0x0000 */ struct _WHEA_NMI_ERROR NmiError; /* off 0x0000 */ struct _WHEA_PCIEXPRESS_ERROR PciExpressError; /* off 0x0000 */ struct _WHEA_PCIXBUS_ERROR PciXBusError; /* off 0x0000 */ struct _WHEA_PCIXDEVICE_ERROR PciXDeviceError; } u; /* off 0x0110 */ enum _WHEA_RAW_DATA_FORMAT RawDataFormat; /* off 0x0114 */ unsigned long RawDataOffset; /* off 0x0118 */ unsigned char RawData[1]; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum WHEA_PCIEXPRESS_DEVICE_TYPE { WheaPciExpressEndpoint =0x00000000 ,//0 WheaPciExpressLegacyEndpoint =0x00000001 ,//0 WheaPciExpressRootPort =0x00000004 ,//0 WheaPciExpressUpstreamSwitchPort =0x00000005 ,//0 WheaPciExpressDownstreamSwitchPort =0x00000006 ,//0 WheaPciExpressToPciXBridge =0x00000007 ,//0 WheaPciXToExpressBridge =0x00000008 ,//0 WheaPciExpressRootComplexIntegratedEndpoint =0x00000009 ,//0 WheaPciExpressRootComplexEventCollector =0x0000000a ,//0 }; enum _WHEA_RAW_DATA_FORMAT { WheaRawDataFormatIPFSalRecord =0x00000000 ,//0 WheaRawDataFormatIA32MCA =0x00000001 ,//0 WheaRawDataFormatIntel64MCA =0x00000002 ,//0 WheaRawDataFormatAMD64MCA =0x00000003 ,//0 WheaRawDataFormatMemory =0x00000004 ,//0 WheaRawDataFormatPCIExpress =0x00000005 ,//0 WheaRawDataFormatNMIPort =0x00000006 ,//0 WheaRawDataFormatPCIXBus =0x00000007 ,//0 WheaRawDataFormatPCIXDevice =0x00000008 ,//0 WheaRawDataFormatGeneric =0x00000009 ,//0 WheaRawDataFormatMax =0x0000000a ,//0 }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 GlobalTimeStamp:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Long; /* off 0x0000 */ unsigned __int64 VolatileLong; /* off 0x0000 */ struct _MMPTE_HIGHLOW HighLow; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _ALPHA_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 0000007c 124 */ { /* off 0x0000 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0008 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0010 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0018 */ unsigned long KernelStack; /* off 0x001c */ unsigned long Prcb; /* off 0x0020 */ unsigned long Process; /* off 0x0024 */ unsigned long Thread; /* off 0x0028 */ unsigned long RegistryLength; /* off 0x002c */ void* RegistryBase; /* off 0x0030 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0034 */ char* ArcBootDeviceName; /* off 0x0038 */ char* ArcHalDeviceName; /* off 0x003c */ char* NtBootPathName; /* off 0x0040 */ char* NtHalPathName; /* off 0x0044 */ char* LoadOptions; /* off 0x0048 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x004c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0050 */ void* OemFontFile; /* off 0x0054 */ struct _SETUP_LOADER_BLOCK* SetupLoaderBlock; /* off 0x0058 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x005c */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _ALPHA_LOADER_BLOCK Alpha; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0068 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; /* off 0x0014 */ unsigned long AffinityMask; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _SETUP_LOADER_BLOCK /* sizeof 00000000 0 */ { }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ unsigned long MajorVersion; /* off 0x0018 */ unsigned long MinorVersion; /* off 0x001c */ void* EmInfFileImage; /* off 0x0020 */ unsigned long EmInfFileSize; /* off 0x0024 */ void* TriageDumpBlock; /* off 0x0028 */ unsigned long LoaderPagesSpanned; /* off 0x002c */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0030 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x0034 */ void* DrvDBImage; /* off 0x0038 */ unsigned long DrvDBSize; /* off 0x003c */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0040 */ unsigned char* HalpIRQLToTPR; /* off 0x0044 */ unsigned char* HalpVectorToIRQL; /* off 0x0048 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0050 */ void* AcpiTable; /* off 0x0054 */ unsigned long AcpiTableSize; /* off 0x0058 */ unsigned long BootViaWinload:1 /* start bit 0 */; /* off 0x0058 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x005c */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0060 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0068 */ void* WmdTestResult; /* off 0x006c */ struct _GUID BootIdentifier; /* off 0x007c */ unsigned long ResumePages; /* off 0x0080 */ void* DumpHeader; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ unsigned char ByteFlags; /* off 0x0003 */ unsigned char InterlockedByteFlags; } e3; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; struct _MMPTE_FLUSH_LIST /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaximumCount; /* off 0x0008 */ void* FlushVa[33]; }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long ContainsPxeSubsection:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x0030 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ void* ImageMerge; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ unsigned long BitmapHint; /* off 0x0034 */ unsigned long LastAllocationSize; /* off 0x0038 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0038 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0038 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x003a */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x003a */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x003c */ void* FileHandle; /* off 0x0040 */ union _SLIST_HEADER AvailableList; /* off 0x0048 */ union _SLIST_HEADER NeedProcessingList; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMPAGING_FILE_FREE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ unsigned long FreeBit; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CMHIVE /* sizeof 000005e0 1504 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _FAST_MUTEX* HiveLock; /* off 0x0314 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x0318 */ struct _KTHREAD* ViewLockOwner; /* off 0x031c */ unsigned long ViewLockLast; /* off 0x0320 */ unsigned long ViewUnLockLast; /* off 0x0324 */ struct _FAST_MUTEX* WriterLock; /* off 0x0328 */ struct _EX_PUSH_LOCK FlusherLock; /* off 0x032c */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0330 */ struct _LIST_ENTRY MappedViewList; /* off 0x0338 */ struct _LIST_ENTRY PinnedViewList; /* off 0x0340 */ struct _LIST_ENTRY FlushedViewList; /* off 0x0348 */ unsigned short MappedViewCount; /* off 0x034a */ unsigned short PinnedViewCount; /* off 0x034c */ unsigned long UseCount; /* off 0x0350 */ unsigned long ViewsPerHive; /* off 0x0354 */ struct _FILE_OBJECT* FileObject; /* off 0x0358 */ unsigned long LastShrinkHiveSize; /* off 0x0360 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0368 */ struct _UNICODE_STRING FileFullPath; /* off 0x0370 */ struct _UNICODE_STRING FileUserName; /* off 0x0378 */ struct _UNICODE_STRING HiveRootPath; /* off 0x0380 */ unsigned long SecurityCount; /* off 0x0384 */ unsigned long SecurityCacheSize; /* off 0x0388 */ long SecurityHitHint; /* off 0x038c */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x0390 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x0590 */ unsigned long UnloadEventCount; /* off 0x0594 */ struct _KEVENT** UnloadEventArray; /* off 0x0598 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x059c */ unsigned char Frozen; /* off 0x05a0 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05a4 */ unsigned char GrowOnlyMode; /* off 0x05a8 */ unsigned long GrowOffset; /* off 0x05ac */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05b4 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x05bc */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x05c0 */ unsigned long Flags; /* off 0x05c4 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x05cc */ unsigned long FlushCount; /* off 0x05d0 */ struct _CM_RM* CmRm; /* off 0x05d4 */ unsigned long CmRmInitFailPoint; /* off 0x05d8 */ long CmRmInitFailStatus; /* off 0x05dc */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 00000090 144 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:9 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 9 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 10 */; /* off 0x0004 */ unsigned long DelayedCloseIndex:11 /* start bit 11 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 22 */; union { /* off 0x0008 */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x0008 */ unsigned long ConvKey; /* off 0x000c */ struct _CM_KEY_HASH* NextHash; /* off 0x0010 */ struct _HHIVE* KeyHive; /* off 0x0014 */ unsigned long KeyCell; }; }; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x001c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0020 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0024 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x002c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x002c */ unsigned long HashKey; /* off 0x002c */ unsigned long SubKeyCount; }; union { /* off 0x0030 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0030 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0038 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0048 */ void* DelayCloseEntry; /* off 0x0050 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0058 */ unsigned short KcbMaxNameLen; /* off 0x005a */ unsigned short KcbMaxValueNameLen; /* off 0x005c */ unsigned long KcbMaxValueDataLen; /* off 0x0060 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0060 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0060 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0060 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x0064 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x006c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0070 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0078 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0080 */ struct _CHILD_LIST TransValueCache; /* off 0x0088 */ struct _CM_TRANS* TransValueListOwner; /* off 0x008c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[8]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_WORKITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _TEB /* sizeof 00000ff8 4088 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; /* off 0x0f74 */ unsigned char SpareBool0; /* off 0x0f75 */ unsigned char SpareBool1; /* off 0x0f76 */ unsigned char SpareBool2; /* off 0x0f77 */ unsigned char IdealProcessor; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long ImpersonationLocale; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short DbgSafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short DbgInDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short DbgHasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short DbgSkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short DbgWerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short DbgRanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short DbgClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short DbgSuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short RtlDisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long ProcessRundown; /* off 0x0fe0 */ unsigned __int64 LastSwitchTime; /* off 0x0fe8 */ unsigned __int64 TotalSwitchOutTime; /* off 0x0ff0 */ union _LARGE_INTEGER WaitReasonBitMap; }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ union _ULARGE_INTEGER Time; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x000c */ unsigned char OrderLevel; /* off 0x0010 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0014 */ unsigned short* DeviceName; /* off 0x0018 */ unsigned short* DriverName; /* off 0x001c */ unsigned long ChildCount; /* off 0x0020 */ unsigned long ActiveChild; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0038 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0048 */ enum _PNP_DEVNODE_STATE State; /* off 0x004c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0050 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00a0 */ unsigned long StateHistoryEntry; /* off 0x00a4 */ long CompletionStatus; /* off 0x00a8 */ struct _IRP* PendingIrp; /* off 0x00ac */ unsigned long Flags; /* off 0x00b0 */ unsigned long UserFlags; /* off 0x00b4 */ unsigned long Problem; /* off 0x00b8 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00bc */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00c0 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00c4 */ struct _UNICODE_STRING InstancePath; /* off 0x00cc */ struct _UNICODE_STRING ServiceName; /* off 0x00d4 */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00d8 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00dc */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00e0 */ unsigned long BusNumber; /* off 0x00e4 */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x00e8 */ unsigned long ChildBusNumber; /* off 0x00ec */ unsigned short ChildBusTypeIndex; /* off 0x00ee */ unsigned char RemovalPolicy; /* off 0x00ef */ unsigned char HardwareRemovalPolicy; /* off 0x00f0 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x00f8 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0100 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0108 */ unsigned short NoTranslatorMask; /* off 0x010a */ unsigned short QueryTranslatorMask; /* off 0x010c */ unsigned short NoArbiterMask; /* off 0x010e */ unsigned short QueryArbiterMask; /* off 0x0110 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x0114 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0118 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x011c */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0120 */ unsigned long CapabilityFlags; /* off 0x0124 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x0134 */ unsigned long DisableableDepends; /* off 0x0138 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0140 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0148 */ unsigned long DriverUnloadRetryCount; /* off 0x014c */ struct _DEVICE_NODE* PreviousParent; /* off 0x0150 */ unsigned long DeletedChildren; /* off 0x0154 */ unsigned long NumaNodeIndex; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000018 24 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ union _LARGE_INTEGER ReadAheadOffset[2]; /* off 0x0040 */ unsigned long ReadAheadLength[2]; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000140 320 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _VACB* ActiveVacb; /* off 0x004c */ void* NeedToZero; /* off 0x0050 */ unsigned long ActivePage; /* off 0x0054 */ unsigned long NeedToZeroPage; /* off 0x0058 */ unsigned long ActiveVacbSpinLock; /* off 0x005c */ unsigned long VacbActiveCount; /* off 0x0060 */ unsigned long DirtyPages; /* off 0x0064 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x006c */ unsigned long Flags; /* off 0x0070 */ long Status; /* off 0x0074 */ struct _MBCB* Mbcb; /* off 0x0078 */ void* Section; /* off 0x007c */ struct _KEVENT* CreateEvent; /* off 0x0080 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0084 */ unsigned long PagesToWrite; /* off 0x0088 */ __int64 BeyondLastFlush; /* off 0x0090 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x0094 */ void* LazyWriteContext; /* off 0x0098 */ struct _LIST_ENTRY PrivateList; /* off 0x00a0 */ void* LogHandle; /* off 0x00a4 */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a8 */ unsigned long DirtyPageThreshold; /* off 0x00ac */ unsigned long LazyWritePassCount; /* off 0x00b0 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00b4 */ struct _VACB* NeedToZeroVacb; /* off 0x00b8 */ unsigned long BcbSpinLock; /* off 0x00bc */ void* Reserved; /* off 0x00c0 */ struct _KEVENT Event; /* off 0x00d0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00d8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0130 */ void* WriteBehindWorkQueueEntry; /* off 0x0134 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0138 */ unsigned long ProcImagePathHash; /* off 0x013c */ unsigned long MappedWritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY LruList; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long MappingCount; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000080 128 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0040 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0060 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ struct _LIST_ENTRY CoalescedWorkQueueLinks; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x0014 */ unsigned char Function; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long InBlockDeccommits; /* off 0x0044 */ unsigned long InBlockDeccomitSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0124 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _WNODE_HEADER /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long ProviderId; union { /* off 0x0008 */ unsigned __int64 HistoricalContext; struct { /* off 0x0008 */ unsigned long Version; /* off 0x000c */ unsigned long Linkage; }; }; union { /* off 0x0010 */ unsigned long CountLost; /* off 0x0010 */ void* KernelHandle; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; }; /* off 0x0018 */ struct _GUID Guid; /* off 0x0028 */ unsigned long ClientContext; /* off 0x002c */ unsigned long Flags; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { union { /* off 0x0000 */ struct _WNODE_HEADER Wnode; struct { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; union { /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x002c */ unsigned long Flags; }; }; }; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY Entry; struct { /* off 0x0038 */ void* Padding2; union { struct { /* off 0x003c */ struct _SINGLE_LIST_ENTRY GlobalEntry; }; struct { /* off 0x0038 */ void* Pointer0; }; /* off 0x003c */ void* Pointer1; }; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000280 640 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ void* LogFileHandle; /* off 0x000c */ struct _ETHREAD* LoggerThread; /* off 0x0010 */ long LoggerStatus; /* off 0x0014 */ unsigned long LoggerId; /* off 0x0018 */ void* NBQHead; /* off 0x001c */ void* OverflowNBQHead; /* off 0x0020 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0028 */ union _SLIST_HEADER GlobalList; /* off 0x0030 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0034 */ struct _UNICODE_STRING LoggerName; /* off 0x003c */ struct _UNICODE_STRING LogFileName; /* off 0x0044 */ struct _UNICODE_STRING LogFilePattern; /* off 0x004c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0054 */ unsigned long ClockType; /* off 0x0058 */ long CollectionOn; /* off 0x005c */ unsigned long MaximumFileSize; /* off 0x0060 */ unsigned long LoggerMode; /* off 0x0064 */ unsigned long LastFlushedBuffer; /* off 0x0068 */ unsigned long FlushTimer; /* off 0x006c */ unsigned long FlushThreshold; /* off 0x0070 */ union _LARGE_INTEGER ByteOffset; /* off 0x0078 */ union _LARGE_INTEGER FlushTimeStamp; /* off 0x0080 */ unsigned long MinimumBuffers; /* off 0x0084 */ long BuffersAvailable; /* off 0x0088 */ long NumberOfBuffers; /* off 0x008c */ unsigned long MaximumBuffers; /* off 0x0090 */ unsigned long EventsLost; /* off 0x0094 */ unsigned long BuffersWritten; /* off 0x0098 */ unsigned long LogBuffersLost; /* off 0x009c */ unsigned long RealTimeBuffersDelivered; /* off 0x00a0 */ unsigned long RealTimeBuffersLost; /* off 0x00a4 */ unsigned long BufferSize; /* off 0x00a8 */ unsigned long MaximumEventSize; /* off 0x00ac */ long* SequencePtr; /* off 0x00b0 */ unsigned long LocalSequence; /* off 0x00b4 */ struct _GUID InstanceGuid; /* off 0x00c4 */ __int64( __stdcall *GetCpuClock)(); /* off 0x00c8 */ long FileCounter; /* off 0x00cc */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d0 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00ec */ struct _LIST_ENTRY Consumers; /* off 0x00f4 */ unsigned long NumConsumers; /* off 0x00f8 */ struct _LIST_ENTRY Connecting; /* off 0x0100 */ unsigned char NewConsumer; /* off 0x0104 */ void* RealtimeLogfileHandle; /* off 0x0108 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0110 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0120 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0128 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0130 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0138 */ unsigned long RealtimeBuffersSaved; /* off 0x0140 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0150 */ unsigned long RealtimeDisconnectProcessId; /* off 0x0154 */ unsigned long RealtimeDisconnectConsumerId; /* off 0x0158 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x015c */ struct _KEVENT LoggerEvent; /* off 0x016c */ struct _KEVENT FlushEvent; /* off 0x017c */ struct _KDPC FlushDpc; /* off 0x019c */ struct _KMUTANT LoggerMutex; /* off 0x01bc */ struct _EX_PUSH_LOCK LoggerLock; /* off 0x01c0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01fc */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0200 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0248 */ __int64 BufferSequenceNumber; /* off 0x0250 */ long AcceptNewEvents; union { /* off 0x0254 */ unsigned long Flags; struct { /* off 0x0254 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0254 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0254 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0254 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0254 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0254 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0254 */ unsigned long NoMoreEnable:1 /* start bit 6 */; }; }; union { /* off 0x0258 */ unsigned long RequestFlag; struct { /* off 0x0258 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0258 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0258 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0258 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0258 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; }; }; /* off 0x025c */ unsigned short StackTraceFilterHookCount; /* off 0x025e */ unsigned short StackTraceFilter[16]; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 Spare4 =0x00000017 ,//0 Spare5 =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000158 344 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x0004 */ void* SectionObject; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0010 */ void* SectionHandle; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ struct _ALPC_PORT* OwnerPort; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0008 */ unsigned long TotalHandles; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000f4 244 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ unsigned long SequenceNo; /* off 0x0014 */ void* CompletionPort; /* off 0x0018 */ void* CompletionKey; /* off 0x001c */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x0020 */ void* PortContext; /* off 0x0024 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0060 */ struct _LIST_ENTRY MainQueue; /* off 0x0068 */ struct _LIST_ENTRY PendingQueue; /* off 0x0070 */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0078 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x0080 */ struct _KSEMAPHORE* Semaphore; /* off 0x0080 */ struct _KEVENT* DummyEvent; }; /* off 0x0084 */ struct _EX_PUSH_LOCK Lock; /* off 0x0088 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00b4 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b8 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00c0 */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c4 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c8 */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d0 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00d4 */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00d8 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00dc */ struct _KALPC_MESSAGE* Message; /* off 0x00e0 */ unsigned long MainQueueLength; /* off 0x00e4 */ unsigned long PendingQueueLength; /* off 0x00e8 */ unsigned long LargeMessageQueueLength; /* off 0x00ec */ unsigned long CanceledQueueLength; /* off 0x00f0 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ void* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[0]; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _HANDLE_TABLE_ENTRY* UniqueTableEntry; /* off 0x0044 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x0060 */ void* DataUserVa; /* off 0x0064 */ void* DataSystemVa; /* off 0x0068 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x006c */ struct _ALPC_PORT* ConnectionPort; /* off 0x0070 */ struct _ETHREAD* ServerThread; /* off 0x0078 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x000c */ struct _KALPC_REGION* Region; /* off 0x0010 */ struct _ALPC_PORT* OwnerPort; /* off 0x0014 */ struct _EPROCESS* OwnerProcess; /* off 0x0018 */ void* Address; /* off 0x001c */ unsigned long Size; /* off 0x0020 */ void* SecureViewHandle; /* off 0x0024 */ void* WriteAccessHandle; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x0004 */ struct _LIST_ENTRY RegionListEntry; /* off 0x000c */ struct _KALPC_SECTION* Section; /* off 0x0010 */ unsigned long Offset; /* off 0x0014 */ unsigned long Size; /* off 0x0018 */ unsigned long ViewSize; /* off 0x001c */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x0020 */ struct _KALPC_VIEW* ReadWriteView; /* off 0x0024 */ unsigned long NumberOfViews; /* off 0x0028 */ struct _LIST_ENTRY ViewListHead; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ struct _OBJECT_TYPE* ObjectType; /* off 0x0010 */ unsigned long TargetAccess; /* off 0x0014 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0018 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ struct _ETHREAD* TargetThread; /* off 0x0014 */ struct _ALPC_PORT* TargetPort; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e8 488 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SECURITY_TOKEN_PROXY_DATA* ProxyData; /* off 0x00c0 */ struct _SECURITY_TOKEN_AUDIT_DATA* AuditData; /* off 0x00c4 */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c8 */ struct _LUID OriginatingLogonSession; /* off 0x00d0 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0158 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01e0 */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SECURITY_TOKEN_PROXY_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _PROXY_CLASS ProxyClass; /* off 0x0008 */ struct _UNICODE_STRING PathInfo; /* off 0x0010 */ unsigned long ContainerMask; /* off 0x0014 */ unsigned long ObjectMask; }; enum _PROXY_CLASS { ProxyFull =0x00000000 ,//0 ProxyService =0x00000001 ,//0 ProxyTree =0x00000002 ,//0 ProxyDirectory =0x00000003 ,//0 }; struct _SECURITY_TOKEN_AUDIT_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long GrantMask; /* off 0x0008 */ unsigned long DenyMask; }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _DEVPROPKEY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID fmtid; /* off 0x0010 */ unsigned long pid; }; enum _WAIT_TYPE { WaitAll =0x00000000 ,//0 WaitAny =0x00000001 ,//0 }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; /* off 0x004c */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0038 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000270 624 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ char Number; /* off 0x0035 */ unsigned char ShareVector; /* off 0x0038 */ enum _KINTERRUPT_MODE Mode; /* off 0x003c */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0040 */ unsigned long ServiceCount; /* off 0x0044 */ unsigned long DispatchCount; /* off 0x0048 */ unsigned __int64 Rsvd1; /* off 0x0050 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ struct _CMHIVE* CmHive2; /* off 0x001c */ unsigned char ThreadFinished; /* off 0x001d */ unsigned char ThreadStarted; /* off 0x001e */ unsigned char Allocate; /* off 0x001f */ unsigned char WinPERequired; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; struct _LAZY_WRITER /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueue; /* off 0x0008 */ struct _KDPC ScanDpc; /* off 0x0028 */ struct _KTIMER ScanTimer; /* off 0x0050 */ unsigned char ScanActive; /* off 0x0051 */ unsigned char OtherWork; /* off 0x0052 */ unsigned char PendingTeardown; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_EXFAT_ID =0x0000008a ,//0 DPFLTR_ENDOFTABLE_ID =0x0000008b ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned char Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ struct _MSUBSECTION* LastSubsectionHint; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POP_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE /* sizeof 000000d8 216 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; }; enum POP_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPool =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaMaximumType =0x0000000d ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _PCI_HOTPLUG_SLOT_INTERRUPT { SlotInterruptPresenceDetect =0x00000000 ,//0 SlotInterruptLatchChange =0x00000001 ,//0 SlotInterruptAttentionButton =0x00000002 ,//0 SlotInterruptLinkStateChange =0x00000003 ,//0 SlotInterruptPowerFault =0x00000004 ,//0 SlotInterruptMaximum =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _KUSER_SHARED_DATA /* sizeof 000003b8 952 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[8]; /* off 0x0390 */ unsigned long HeapTracingPid[2]; /* off 0x0398 */ unsigned long CritSecTracingPid[2]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; union { /* off 0x03a8 */ unsigned __int64 AffinityPad; /* off 0x03a8 */ unsigned long ActiveProcessorAffinity; }; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POP_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_DISPLAY_RESUME_CONTEXT* DisplayResumeContext; /* off 0x003c */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000148 328 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[8]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 00000188 392 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0168 */ long NotifyGdiLevelForPowerOn; /* off 0x016c */ long NotifyGdiLevelForResumeUI; /* off 0x0170 */ struct _LIST_ENTRY Pending; /* off 0x0178 */ long Status; /* off 0x017c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x0180 */ unsigned char Waking; /* off 0x0181 */ unsigned char Cancelled; /* off 0x0182 */ unsigned char IgnoreErrors; /* off 0x0183 */ unsigned char IgnoreNotImplemented; /* off 0x0184 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_DISPLAY_RESUME_CONTEXT /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ struct _ETHREAD* WorkerThread; /* off 0x0014 */ struct _KEVENT PrepareUIEvent; /* off 0x0024 */ struct _KEVENT PowerOnEvent; /* off 0x0034 */ struct _KEVENT DoneEvent; /* off 0x0044 */ unsigned long WorkerQueued; /* off 0x0048 */ unsigned long WorkerAbort; /* off 0x004c */ unsigned long NoResumeUI; }; struct _PO_HIBER_PERF /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 StartCount; /* off 0x0020 */ unsigned long ElapsedTime; /* off 0x0024 */ unsigned long IoTime; /* off 0x0028 */ unsigned long CopyTime; /* off 0x002c */ unsigned long InitTime; /* off 0x0030 */ unsigned long PagesWritten; /* off 0x0034 */ unsigned long PagesProcessed; /* off 0x0038 */ unsigned long BytesCopied; /* off 0x003c */ unsigned long DumpCount; /* off 0x0040 */ unsigned long FileRuns; /* off 0x0048 */ unsigned __int64 ResumeAppStartTime; /* off 0x0050 */ unsigned __int64 ResumeAppEndTime; /* off 0x0058 */ unsigned __int64 HiberFileResumeTime; }; struct _POP_HIBER_CONTEXT /* sizeof 00000100 256 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ unsigned long IoPagesCount; /* off 0x0050 */ void* CurrentMcb; /* off 0x0054 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0058 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ struct _PO_MEMORY_RANGE_TABLE* TableHead; /* off 0x0074 */ unsigned char* CompressionWorkspace; /* off 0x0078 */ unsigned char* CompressedWriteBuffer; /* off 0x007c */ unsigned long* PerformanceStats; /* off 0x0080 */ void* CompressionBlock; /* off 0x0084 */ void* DmaIO; /* off 0x0088 */ void* TemporaryHeap; /* off 0x0090 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00f0 */ struct _MDL* BootLoaderLogMdl; /* off 0x00f4 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x00f8 */ void* ResumeContext; /* off 0x00fc */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct PO_MEMORY_IMAGE /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long TotalPages; /* off 0x0050 */ unsigned long FirstTablePage; /* off 0x0058 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00b8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00bc */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00c0 */ unsigned long NoBootLoaderLogPages; /* off 0x00c4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00e4 */ unsigned long NotUsed; /* off 0x00e8 */ unsigned long ResumeContextCheck; /* off 0x00ec */ unsigned long ResumeContextPages; }; struct _PO_MEMORY_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StartPage; /* off 0x0004 */ unsigned long EndPage; }; struct _PO_MEMORY_RANGE_TABLE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _PO_MEMORY_RANGE_TABLE* Next; /* off 0x0004 */ unsigned long NextTable; /* off 0x0008 */ unsigned long EntryCount; /* off 0x000c */ struct _PO_MEMORY_RANGE Range[1]; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct _MI_VERIFIER_DRIVER_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; /* off 0x0018 */ void* StartAddress; /* off 0x001c */ void* EndAddress; /* off 0x0020 */ unsigned long Flags; /* off 0x0024 */ unsigned long Signature; /* off 0x0028 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0030 */ union _SLIST_HEADER PoolTrackers; /* off 0x0038 */ unsigned long CurrentPagedPoolAllocations; /* off 0x003c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0040 */ unsigned long PeakPagedPoolAllocations; /* off 0x0044 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PagedBytes; /* off 0x004c */ unsigned long NonPagedBytes; /* off 0x0050 */ unsigned long PeakPagedBytes; /* off 0x0054 */ unsigned long PeakNonPagedBytes; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0008 */ struct _MMPTE FreePteHead; /* off 0x0010 */ struct _MMPTE FreePteTail; /* off 0x0018 */ long PagesInUse; /* off 0x001c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Hint; /* off 0x000c */ struct _MMPTE* BasePte; /* off 0x0010 */ unsigned long* FailureCount; /* off 0x0014 */ struct _MMSUPPORT* Vm; /* off 0x0018 */ long TotalSystemPtes; /* off 0x001c */ long TotalFreeSystemPtes; /* off 0x0020 */ long CachedPteCount; /* off 0x0024 */ unsigned long PteFailures; /* off 0x0028 */ struct _KGUARDED_MUTEX* GlobalMutex; }; struct _MM_SESSION_SPACE /* sizeof 00001ec0 7872 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KGATE AttachGate; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0db8 */ struct _MMWSLE* Wsle; /* off 0x0dbc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0dc0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1df4 */ struct _MMPTE* PageTables; /* off 0x1df8 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e20 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e40 */ long PoolBigEntriesInUse; /* off 0x1e44 */ unsigned long PagedPoolPdeCount; /* off 0x1e48 */ unsigned long SpecialPoolPdeCount; /* off 0x1e4c */ unsigned long DynamicSessionPdeCount; /* off 0x1e50 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1e7c */ void* PoolTrackTableExpansion; /* off 0x1e80 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1e84 */ void* PoolTrackBigPages; /* off 0x1e88 */ unsigned long PoolTrackBigPagesSize; /* off 0x1e8c */ struct _RTL_BITMAP SessionPoolPdes; }; struct _MMVIEW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockTypeMaximum =0x00000006 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _MMPFNLIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; enum _KTHREAD_STATE { Initialized =0x00000000 ,//0 Ready =0x00000001 ,//0 Running =0x00000002 ,//0 Standby =0x00000003 ,//0 Terminated =0x00000004 ,//0 Waiting =0x00000005 ,//0 Transition =0x00000006 ,//0 DeferredReady =0x00000007 ,//0 GateWait =0x00000008 ,//0 }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000078 120 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; struct _VI_DEADLOCK_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VI_DEADLOCK_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned char PowerSettingChanged; /* off 0x0014 */ unsigned long DataLength; /* off 0x0018 */ unsigned char Data[1]; } PowerSettingNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 PowerEvent =0x00000006 ,//0 VetoEvent =0x00000007 ,//0 BlockedDriverEvent =0x00000008 ,//0 InvalidIDEvent =0x00000009 ,//0 PowerSettingChange =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000020 32 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ struct _UNICODE_STRING LinkTargetRemaining; /* off 0x0018 */ void* LinkTargetObject; /* off 0x001c */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000028 40 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; /* off 0x0024 */ unsigned char LimitModifiedPages; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_6.1.7000.0.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _XSTATE_FEATURE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long Size; }; struct _XSTATE_CONFIGURATION /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned __int64 EnabledFeatures; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long OptimizedSave:1 /* start bit 0 */; /* off 0x0010 */ struct _XSTATE_FEATURE Features[64]; }; struct _KUSER_SHARED_DATA /* sizeof 000005f0 1520 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02ed */ unsigned char TscQpcData; struct { /* off 0x02ed */ unsigned char TscQpcEnabled:1 /* start bit 0 */; /* off 0x02ed */ unsigned char TscQpcSpareFlag:1 /* start bit 1 */; /* off 0x02ed */ unsigned char TscQpcShift:6 /* start bit 2 */; }; }; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; }; /* off 0x0330 */ unsigned long Cookie; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[16]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; /* off 0x03a8 */ unsigned __int64 Reserved5; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; /* off 0x03b8 */ unsigned __int64 TscQpcBias; /* off 0x03c0 */ unsigned long ActiveProcessorCount; /* off 0x03c4 */ unsigned short ActiveGroupCount; /* off 0x03c6 */ unsigned short Reserved4; /* off 0x03c8 */ unsigned long AitSamplingValue; /* off 0x03cc */ unsigned long AppCompatFlag; /* off 0x03d0 */ unsigned __int64 SystemDllNativeRelocation; /* off 0x03d8 */ unsigned long SystemDllWowRelocation; /* off 0x03e0 */ struct _XSTATE_CONFIGURATION XState; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON_V3 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Persistent:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Private:30 /* start bit 2 */; } s; } u; /* off 0x0020 */ enum _TP_CALLBACK_PRIORITY CallbackPriority; /* off 0x0024 */ unsigned long Size; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; enum _TP_CALLBACK_PRIORITY { TP_CALLBACK_PRIORITY_HIGH =0x00000000 ,//0 TP_CALLBACK_PRIORITY_NORMAL =0x00000001 ,//0 TP_CALLBACK_PRIORITY_LOW =0x00000002 ,//0 TP_CALLBACK_PRIORITY_INVALID =0x00000003 ,//0 }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _TP_NBQ_GUARD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY GuardLinks; /* off 0x0008 */ void* Guards[2]; }; struct _TP_TASK /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; /* off 0x000c */ struct _TP_NBQ_GUARD PostGuard; /* off 0x001c */ void* NBQNode; }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_DIRECT /* sizeof 0000000c 12 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _PROCESSOR_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Reserved; }; struct _TEB /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[2]; /* off 0x01ae */ unsigned char SpareBytes2[34]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ void* ResourceRetValue; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _PEB /* sizeof 00000240 576 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ProcessUsingFTH:1 /* start bit 4 */; /* off 0x0028 */ unsigned long ReservedBits0:27 /* start bit 5 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; union { /* off 0x0034 */ unsigned long TracingFlags; struct { /* off 0x0034 */ unsigned long HeapTracingEnabled:1 /* start bit 0 */; /* off 0x0034 */ unsigned long CritSecTracingEnabled:1 /* start bit 1 */; /* off 0x0034 */ unsigned long SpareTracingBits:30 /* start bit 2 */; }; }; /* off 0x0038 */ void* ApiSetMap; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; /* off 0x0238 */ void* pContextData; /* off 0x023c */ void* pImageHeaderHash; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000298 664 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; /* off 0x0294 */ unsigned long EnvironmentVersion; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ChainHead; /* off 0x0004 */ struct _LIST_ENTRY* PrevLinkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY Linkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry; /* off 0x000c */ struct _LIST_ENTRY* ChainHead; /* off 0x0010 */ unsigned long BucketIndex; }; struct _RTL_DYNAMIC_HASH_TABLE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long Shift; /* off 0x0008 */ unsigned long TableSize; /* off 0x000c */ unsigned long Pivot; /* off 0x0010 */ unsigned long DivisorMask; /* off 0x0014 */ unsigned long NumEntries; /* off 0x0018 */ unsigned long NonEmptyBuckets; /* off 0x001c */ unsigned long NumEnumerators; /* off 0x0020 */ void* Directory; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char ControlFlags; struct { /* off 0x0001 */ unsigned char Absolute:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Coalescable:1 /* start bit 1 */; /* off 0x0001 */ unsigned char KeepShifting:1 /* start bit 2 */; /* off 0x0001 */ unsigned char EncodedTolerableDelay:5 /* start bit 3 */; }; /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char ThreadControlFlags; struct { /* off 0x0002 */ unsigned char CpuThrottled:1 /* start bit 0 */; /* off 0x0002 */ unsigned char CycleProfiling:1 /* start bit 1 */; /* off 0x0002 */ unsigned char CounterProfiling:1 /* start bit 2 */; /* off 0x0002 */ unsigned char Reserved:5 /* start bit 3 */; }; /* off 0x0002 */ unsigned char Hand; /* off 0x0002 */ unsigned char Size; }; union { /* off 0x0003 */ unsigned char TimerControlFlags; struct { /* off 0x0003 */ unsigned char Index:6 /* start bit 0 */; /* off 0x0003 */ unsigned char Inserted:1 /* start bit 6 */; /* off 0x0003 */ unsigned char Expired:1 /* start bit 7 */; }; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _PPM_FFH_THROTTLE_STATE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char EnableLogging; /* off 0x0004 */ unsigned long MismatchCount; /* off 0x0008 */ unsigned char Initialized; /* off 0x0010 */ unsigned __int64 LastValue; /* off 0x0018 */ union _LARGE_INTEGER LastLogTickCount; }; struct _PROC_IDLE_SNAP /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Time; /* off 0x0008 */ unsigned __int64 Idle; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000d0 208 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 IdleTimeLast; /* off 0x0010 */ unsigned __int64 IdleTimeTotal; /* off 0x0018 */ unsigned __int64 IdleTimeEntry; /* off 0x0020 */ struct _PROC_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ enum _PROC_HYPERVISOR_STATE Hypervisor; /* off 0x0028 */ unsigned long LastIdleThreadKTime; /* off 0x0030 */ unsigned __int64 TempUtilitySkipCount; /* off 0x0038 */ unsigned char ThermalConstraint; /* off 0x0039 */ unsigned char LastBusyPercentage; /* off 0x003a */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short PStateDomain:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Reserved:15 /* start bit 1 */; }; } Flags; /* off 0x003c */ unsigned long LastSysTime; /* off 0x0040 */ unsigned long WmiDispatchPtr; /* off 0x0044 */ long WmiInterfaceEnabled; /* off 0x0048 */ struct _PPM_FFH_THROTTLE_STATE_INFO FFHThrottleStateInfo; /* off 0x0068 */ struct _KDPC PerfActionDpc; /* off 0x0088 */ long PerfActionMask; /* off 0x0090 */ struct _PROC_IDLE_SNAP IdleCheck; /* off 0x00a0 */ struct _PROC_IDLE_SNAP PerfCheck; /* off 0x00b0 */ struct _PROC_PERF_DOMAIN* Domain; /* off 0x00b4 */ struct _PROC_PERF_CONSTRAINT* PerfConstraint; /* off 0x00b8 */ struct _PROC_PERF_LOAD* Load; /* off 0x00bc */ unsigned long Utility; /* off 0x00c0 */ unsigned long OverUtilizedHistory; /* off 0x00c4 */ unsigned long AffinityCount; /* off 0x00c8 */ unsigned long AffinityHistory; /* off 0x00cc */ unsigned short PreviousReadyTime; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ unsigned long Period; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KPRCB /* sizeof 00001ee8 7912 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char LegacyNumber; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ char CpuType; /* off 0x0015 */ char CpuID; union { /* off 0x0016 */ unsigned short CpuStep; struct { /* off 0x0016 */ unsigned char CpuStepping; /* off 0x0017 */ unsigned char CpuModel; }; }; /* off 0x0018 */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x0338 */ unsigned long KernelReserved[16]; /* off 0x0378 */ unsigned long HalReserved[16]; /* off 0x03b8 */ unsigned long CFlushSize; /* off 0x03bc */ unsigned char CoresPerPhysicalProcessor; /* off 0x03bd */ unsigned char LogicalProcessorsPerCore; /* off 0x03be */ unsigned char PrcbPad0[2]; /* off 0x03c0 */ unsigned long MHz; /* off 0x03c4 */ unsigned char CpuVendor; /* off 0x03c5 */ unsigned char GroupIndex; /* off 0x03c6 */ unsigned short Group; /* off 0x03c8 */ unsigned long GroupSetMember; /* off 0x03cc */ unsigned long Number; /* off 0x03d0 */ unsigned char PrcbPad1[72]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[49]; /* off 0x05a0 */ struct _KTHREAD* NpxThread; /* off 0x05a4 */ unsigned long InterruptCount; /* off 0x05a8 */ unsigned long KernelTime; /* off 0x05ac */ unsigned long UserTime; /* off 0x05b0 */ unsigned long DpcTime; /* off 0x05b4 */ unsigned long DpcTimeCount; /* off 0x05b8 */ unsigned long InterruptTime; /* off 0x05bc */ unsigned long AdjustDpcThreshold; /* off 0x05c0 */ unsigned long PageColor; /* off 0x05c4 */ unsigned char DebuggerSavedIRQL; /* off 0x05c5 */ unsigned char NodeColor; /* off 0x05c6 */ unsigned char PrcbPad20[2]; /* off 0x05c8 */ unsigned long NodeShiftedColor; /* off 0x05cc */ struct _KNODE* ParentNode; /* off 0x05d0 */ unsigned long SecondaryColorMask; /* off 0x05d4 */ unsigned long DpcTimeLimit; /* off 0x05d8 */ unsigned long PrcbPad21[2]; /* off 0x05e0 */ unsigned long CcFastReadNoWait; /* off 0x05e4 */ unsigned long CcFastReadWait; /* off 0x05e8 */ unsigned long CcFastReadNotPossible; /* off 0x05ec */ unsigned long CcCopyReadNoWait; /* off 0x05f0 */ unsigned long CcCopyReadWait; /* off 0x05f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x05f8 */ long MmSpinLockOrdering; /* off 0x05fc */ long IoReadOperationCount; /* off 0x0600 */ long IoWriteOperationCount; /* off 0x0604 */ long IoOtherOperationCount; /* off 0x0608 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0610 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0618 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0620 */ unsigned long CcFastMdlReadNoWait; /* off 0x0624 */ unsigned long CcFastMdlReadWait; /* off 0x0628 */ unsigned long CcFastMdlReadNotPossible; /* off 0x062c */ unsigned long CcMapDataNoWait; /* off 0x0630 */ unsigned long CcMapDataWait; /* off 0x0634 */ unsigned long CcPinMappedDataCount; /* off 0x0638 */ unsigned long CcPinReadNoWait; /* off 0x063c */ unsigned long CcPinReadWait; /* off 0x0640 */ unsigned long CcMdlReadNoWait; /* off 0x0644 */ unsigned long CcMdlReadWait; /* off 0x0648 */ unsigned long CcLazyWriteHotSpots; /* off 0x064c */ unsigned long CcLazyWriteIos; /* off 0x0650 */ unsigned long CcLazyWritePages; /* off 0x0654 */ unsigned long CcDataFlushes; /* off 0x0658 */ unsigned long CcDataPages; /* off 0x065c */ unsigned long CcLostDelayedWrites; /* off 0x0660 */ unsigned long CcFastReadResourceMiss; /* off 0x0664 */ unsigned long CcCopyReadWaitMiss; /* off 0x0668 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x066c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0670 */ unsigned long CcMapDataWaitMiss; /* off 0x0674 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0678 */ unsigned long CcPinReadWaitMiss; /* off 0x067c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0680 */ unsigned long CcMdlReadWaitMiss; /* off 0x0684 */ unsigned long CcReadAheadIos; /* off 0x0688 */ unsigned long KeAlignmentFixupCount; /* off 0x068c */ unsigned long KeExceptionDispatchCount; /* off 0x0690 */ unsigned long KeSystemCalls; /* off 0x0694 */ unsigned long AvailableTime; /* off 0x0698 */ unsigned long PrcbPad22[2]; /* off 0x06a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0720 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x1020 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1920 */ unsigned long PacketBarrier; /* off 0x1924 */ long ReverseStall; /* off 0x1928 */ void* IpiFrame; /* off 0x192c */ unsigned char PrcbPad3[52]; /* off 0x1960 */ void* CurrentPacket[3]; /* off 0x196c */ unsigned long TargetSet; /* off 0x1970 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1974 */ unsigned long IpiFrozen; /* off 0x1978 */ unsigned char PrcbPad4[40]; /* off 0x19a0 */ unsigned long RequestSummary; /* off 0x19a4 */ struct _KPRCB* SignalDone; /* off 0x19a8 */ unsigned char PrcbPad50[56]; /* off 0x19e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1a08 */ void* DpcStack; /* off 0x1a0c */ long MaximumDpcQueueDepth; /* off 0x1a10 */ unsigned long DpcRequestRate; /* off 0x1a14 */ unsigned long MinimumDpcRate; /* off 0x1a18 */ unsigned long PrcbPad41; /* off 0x1a1c */ unsigned long PrcbLock; /* off 0x1a20 */ unsigned long DpcLastCount; /* off 0x1a24 */ unsigned long TimerHand; /* off 0x1a28 */ unsigned long TimerRequest; /* off 0x1a2c */ struct _KTIMER** TimerExpiry; /* off 0x1a30 */ struct _KGATE DpcGate; /* off 0x1a40 */ unsigned char ThreadDpcEnable; /* off 0x1a41 */ unsigned char QuantumEnd; /* off 0x1a42 */ unsigned char DpcRoutineActive; /* off 0x1a43 */ unsigned char IdleSchedule; union { /* off 0x1a44 */ long DpcRequestSummary; /* off 0x1a44 */ short DpcRequestSlot[2]; struct { /* off 0x1a44 */ short NormalDpcState; union { /* off 0x1a46 */ unsigned short DpcThreadActive:1 /* start bit 0 */; /* off 0x1a46 */ short ThreadDpcState; }; }; }; /* off 0x1a48 */ unsigned long PrcbPad42; /* off 0x1a4c */ unsigned long PeriodicCount; /* off 0x1a50 */ unsigned long PeriodicBias; /* off 0x1a58 */ unsigned __int64 TickOffset; /* off 0x1a60 */ struct _KDPC CallDpc; /* off 0x1a80 */ long ClockKeepAlive; /* off 0x1a84 */ unsigned char ClockCheckSlot; /* off 0x1a85 */ unsigned char ClockPollCycle; /* off 0x1a86 */ unsigned char PrcbPad6[2]; /* off 0x1a88 */ long DpcWatchdogPeriod; /* off 0x1a8c */ long DpcWatchdogCount; /* off 0x1a90 */ long ThreadWatchdogPeriod; /* off 0x1a94 */ long ThreadWatchdogCount; /* off 0x1a98 */ long KeSpinLockOrdering; /* off 0x1a9c */ unsigned long PrcbPad70[1]; /* off 0x1aa0 */ struct _LIST_ENTRY WaitListHead; /* off 0x1aa8 */ unsigned long WaitLock; /* off 0x1aac */ unsigned long ReadySummary; /* off 0x1ab0 */ unsigned long QueueIndex; /* off 0x1ab4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x1ab8 */ unsigned __int64 StartCycles; /* off 0x1ac0 */ unsigned __int64 CycleTime; /* off 0x1ac8 */ unsigned long HighCycleTime; /* off 0x1acc */ unsigned long PrcbPad71; /* off 0x1ad0 */ unsigned __int64 PrcbPad72[2]; /* off 0x1ae0 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x1be0 */ void* ChainedInterruptList; /* off 0x1be4 */ long LookasideIrpFloat; /* off 0x1be8 */ long MmPageFaultCount; /* off 0x1bec */ long MmCopyOnWriteCount; /* off 0x1bf0 */ long MmTransitionCount; /* off 0x1bf4 */ long MmCacheTransitionCount; /* off 0x1bf8 */ long MmDemandZeroCount; /* off 0x1bfc */ long MmPageReadCount; /* off 0x1c00 */ long MmPageReadIoCount; /* off 0x1c04 */ long MmCacheReadCount; /* off 0x1c08 */ long MmCacheIoCount; /* off 0x1c0c */ long MmDirtyPagesWriteCount; /* off 0x1c10 */ long MmDirtyWriteIoCount; /* off 0x1c14 */ long MmMappedPagesWriteCount; /* off 0x1c18 */ long MmMappedWriteIoCount; /* off 0x1c1c */ unsigned long CachedCommit; /* off 0x1c20 */ unsigned long CachedResidentAvailable; /* off 0x1c24 */ void* HyperPte; /* off 0x1c28 */ unsigned char PrcbPad8[4]; /* off 0x1c2c */ unsigned char VendorString[13]; /* off 0x1c39 */ unsigned char InitialApicId; /* off 0x1c3a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x1c3b */ unsigned char PrcbPad9[5]; /* off 0x1c40 */ unsigned long FeatureBits; /* off 0x1c48 */ union _LARGE_INTEGER UpdateSignature; /* off 0x1c50 */ unsigned __int64 IsrTime; /* off 0x1c58 */ unsigned __int64 RuntimeAccumulation; /* off 0x1c60 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x1d30 */ struct _KDPC DpcWatchdogDpc; /* off 0x1d50 */ struct _KTIMER DpcWatchdogTimer; /* off 0x1d78 */ void* WheaInfo; /* off 0x1d7c */ void* EtwSupport; /* off 0x1d80 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x1d88 */ union _SLIST_HEADER HypercallPageList; /* off 0x1d90 */ void* HypercallPageVirtual; /* off 0x1d94 */ void* VirtualApicAssist; /* off 0x1d98 */ unsigned __int64* StatisticsPage; /* off 0x1d9c */ void* RateControl; /* off 0x1da0 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x1ddc */ unsigned long CacheCount; /* off 0x1de0 */ unsigned long CacheProcessorMask[5]; /* off 0x1df4 */ unsigned long PackageProcessorSet; /* off 0x1df8 */ unsigned long CoreProcessorSet; /* off 0x1dfc */ unsigned char PrcbPad10[36]; /* off 0x1e20 */ unsigned long SpinLockAcquireCount; /* off 0x1e24 */ unsigned long SpinLockContentionCount; /* off 0x1e28 */ unsigned long SpinLockSpinCount; /* off 0x1e2c */ unsigned long IpiSendRequestBroadcastCount; /* off 0x1e30 */ unsigned long IpiSendRequestRoutineCount; /* off 0x1e34 */ unsigned long IpiSendSoftwareInterruptCount; /* off 0x1e38 */ unsigned long ExInitializeResourceCount; /* off 0x1e3c */ unsigned long ExReInitializeResourceCount; /* off 0x1e40 */ unsigned long ExDeleteResourceCount; /* off 0x1e44 */ unsigned long ExecutiveResourceAcquiresCount; /* off 0x1e48 */ unsigned long ExecutiveResourceContentionsCount; /* off 0x1e4c */ unsigned long ExecutiveResourceReleaseExclusiveCount; /* off 0x1e50 */ unsigned long ExecutiveResourceReleaseSharedCount; /* off 0x1e54 */ unsigned long ExecutiveResourceConvertsCount; /* off 0x1e58 */ unsigned long ExAcqResExclusiveAttempts; /* off 0x1e5c */ unsigned long ExAcqResExclusiveAcquiresExclusive; /* off 0x1e60 */ unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; /* off 0x1e64 */ unsigned long ExAcqResExclusiveWaits; /* off 0x1e68 */ unsigned long ExAcqResExclusiveNotAcquires; /* off 0x1e6c */ unsigned long ExAcqResSharedAttempts; /* off 0x1e70 */ unsigned long ExAcqResSharedAcquiresExclusive; /* off 0x1e74 */ unsigned long ExAcqResSharedAcquiresShared; /* off 0x1e78 */ unsigned long ExAcqResSharedAcquiresSharedRecursive; /* off 0x1e7c */ unsigned long ExAcqResSharedWaits; /* off 0x1e80 */ unsigned long ExAcqResSharedNotAcquires; /* off 0x1e84 */ unsigned long ExAcqResSharedStarveExclusiveAttempts; /* off 0x1e88 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; /* off 0x1e8c */ unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; /* off 0x1e90 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; /* off 0x1e94 */ unsigned long ExAcqResSharedStarveExclusiveWaits; /* off 0x1e98 */ unsigned long ExAcqResSharedStarveExclusiveNotAcquires; /* off 0x1e9c */ unsigned long ExAcqResSharedWaitForExclusiveAttempts; /* off 0x1ea0 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; /* off 0x1ea4 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; /* off 0x1ea8 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; /* off 0x1eac */ unsigned long ExAcqResSharedWaitForExclusiveWaits; /* off 0x1eb0 */ unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; /* off 0x1eb4 */ unsigned long ExSetResOwnerPointerExclusive; /* off 0x1eb8 */ unsigned long ExSetResOwnerPointerSharedNew; /* off 0x1ebc */ unsigned long ExSetResOwnerPointerSharedOld; /* off 0x1ec0 */ unsigned long ExTryToAcqExclusiveAttempts; /* off 0x1ec4 */ unsigned long ExTryToAcqExclusiveAcquires; /* off 0x1ec8 */ unsigned long ExBoostExclusiveOwner; /* off 0x1ecc */ unsigned long ExBoostSharedOwners; /* off 0x1ed0 */ unsigned long ExEtwSynchTrackingNotificationsCount; /* off 0x1ed4 */ unsigned long ExEtwSynchTrackingNotificationsAccountedCount; /* off 0x1ed8 */ struct _CONTEXT* Context; /* off 0x1edc */ unsigned long ContextFlags; /* off 0x1ee0 */ struct _XSAVE_AREA* ExtendedState; }; struct _KPCR /* sizeof 00002008 8200 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; union _KWAIT_STATUS_REGISTER /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Flags; struct { /* off 0x0000 */ unsigned char State:2 /* start bit 0 */; /* off 0x0000 */ unsigned char Affinity:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Priority:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Apc:1 /* start bit 4 */; /* off 0x0000 */ unsigned char UserApc:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Alert:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Timer:1 /* start bit 7 */; }; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char BlockState; }; struct _GROUP_AFFINITY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Mask; /* off 0x0004 */ unsigned short Group; /* off 0x0006 */ unsigned short Reserved[3]; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 00000200 512 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; /* off 0x0038 */ union _KWAIT_STATUS_REGISTER WaitRegister; /* off 0x0039 */ unsigned char Running; /* off 0x003a */ unsigned char Alerted[2]; union { struct { /* off 0x003c */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x003c */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x003c */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x003c */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x003c */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x003c */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x003c */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x003c */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x003c */ unsigned long ApcInterruptRequest:1 /* start bit 8 */; /* off 0x003c */ unsigned long ForceDeferSchedule:1 /* start bit 9 */; /* off 0x003c */ unsigned long QuantumEndMigrate:1 /* start bit 10 */; /* off 0x003c */ unsigned long Reserved1:1 /* start bit 11 */; /* off 0x003c */ unsigned long Reserved2:20 /* start bit 12 */; }; /* off 0x003c */ long MiscFlags; }; union { /* off 0x0040 */ struct _KAPC_STATE ApcState; struct { /* off 0x0040 */ unsigned char ApcStateFill[23]; /* off 0x0057 */ char Priority; }; }; /* off 0x0058 */ unsigned long NextProcessor; /* off 0x005c */ unsigned long DeferredProcessor; /* off 0x0060 */ unsigned long ApcQueueLock; /* off 0x0064 */ unsigned long ContextSwitches; /* off 0x0068 */ unsigned char State; /* off 0x0069 */ char NpxState; /* off 0x006a */ unsigned char WaitIrql; /* off 0x006b */ char WaitMode; /* off 0x006c */ long WaitStatus; /* off 0x0070 */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0074 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0074 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x007c */ struct _KQUEUE* Queue; /* off 0x0080 */ unsigned long WaitTime; union { struct { /* off 0x0084 */ short KernelApcDisable; /* off 0x0086 */ short SpecialApcDisable; }; struct { /* off 0x0084 */ unsigned long CombinedApcDisable; }; }; /* off 0x0088 */ void* Teb; union { /* off 0x0090 */ struct _KTIMER Timer; /* off 0x0090 */ unsigned char TimerFill[40]; }; union { struct { /* off 0x00b8 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b8 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b8 */ unsigned long CalloutActive:1 /* start bit 4 */; /* off 0x00b8 */ unsigned long ApcQueueable:1 /* start bit 5 */; /* off 0x00b8 */ unsigned long EnableStackSwap:1 /* start bit 6 */; /* off 0x00b8 */ unsigned long GuiThread:1 /* start bit 7 */; /* off 0x00b8 */ unsigned long ReservedFlags:24 /* start bit 8 */; }; /* off 0x00b8 */ long ThreadFlags; }; /* off 0x00c0 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x0120 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0128 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x012c */ void* FirstArgument; union { /* off 0x0130 */ void* CallbackStack; /* off 0x0130 */ unsigned long CallbackDepth; }; /* off 0x0134 */ void* ServiceTable; /* off 0x0138 */ unsigned char ApcStateIndex; /* off 0x0139 */ char BasePriority; union { /* off 0x013a */ char PriorityDecrement; struct { /* off 0x013a */ unsigned char ForegroundBoost:4 /* start bit 0 */; /* off 0x013a */ unsigned char UnusualBoost:4 /* start bit 4 */; }; }; /* off 0x013b */ unsigned char Preempted; /* off 0x013c */ unsigned char AdjustReason; /* off 0x013d */ char AdjustIncrement; /* off 0x013e */ char PreviousMode; /* off 0x013f */ char Saturation; /* off 0x0140 */ unsigned long SystemCallNumber; /* off 0x0144 */ unsigned long FreezeCount; /* off 0x0148 */ struct _GROUP_AFFINITY UserAffinity; /* off 0x0154 */ struct _KPROCESS* Process; /* off 0x0158 */ struct _GROUP_AFFINITY Affinity; /* off 0x0164 */ unsigned long IdealProcessor; /* off 0x0168 */ unsigned long UserIdealProcessor; /* off 0x016c */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0174 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0174 */ unsigned char SavedApcStateFill[23]; /* off 0x018b */ unsigned char WaitReason; }; }; /* off 0x018c */ char SuspendCount; /* off 0x018d */ char Spare1; /* off 0x018e */ unsigned char OtherPlatformFill; /* off 0x0190 */ void* Win32Thread; /* off 0x0194 */ void* StackBase; union { /* off 0x0198 */ struct _KAPC SuspendApc; struct { /* off 0x0198 */ unsigned char SuspendApcFill0[1]; /* off 0x0199 */ unsigned char ResourceIndex; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill1[3]; /* off 0x019b */ unsigned char QuantumReset; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill2[4]; /* off 0x019c */ unsigned long KernelTime; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill3[36]; /* off 0x01bc */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill4[40]; /* off 0x01c0 */ void* LegoData; }; struct { /* off 0x0198 */ unsigned char SuspendApcFill5[47]; /* off 0x01c7 */ unsigned char LargeStack; }; }; /* off 0x01c8 */ unsigned long UserTime; union { /* off 0x01cc */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01cc */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01e0 */ unsigned long SListFaultCount; /* off 0x01e4 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01ec */ struct _LIST_ENTRY MutantListHead; /* off 0x01f4 */ void* SListFaultAddress; /* off 0x01f8 */ struct _KTHREAD_COUNTERS* ThreadCounters; /* off 0x01fc */ struct _XSTATE_SAVE* XStateSave; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; struct _KAFFINITY_EX /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ unsigned long Bitmap[1]; }; struct _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; union _KSTACK_COUNT /* sizeof 00000004 4 */ { /* off 0x0000 */ long Value; struct { /* off 0x0000 */ unsigned long State:3 /* start bit 0 */; /* off 0x0000 */ unsigned long StackCount:29 /* start bit 3 */; }; }; struct _KPROCESS /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ struct _KGDTENTRY LdtDescriptor; /* off 0x0024 */ struct _KIDTENTRY Int21Descriptor; /* off 0x002c */ struct _KAFFINITY_EX ActiveProcessors; /* off 0x0038 */ unsigned long KernelTime; /* off 0x003c */ unsigned long UserTime; /* off 0x0040 */ struct _LIST_ENTRY ReadyListHead; /* off 0x0048 */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x004c */ void* VdmTrapcHandler; /* off 0x0050 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0058 */ unsigned long ProcessLock; /* off 0x005c */ struct _KAFFINITY_EX Affinity; union { struct { /* off 0x0068 */ long AutoAlignment:1 /* start bit 0 */; /* off 0x0068 */ long DisableBoost:1 /* start bit 1 */; /* off 0x0068 */ long DisableQuantum:1 /* start bit 2 */; /* off 0x0068 */ unsigned long ActiveGroupsMask:1 /* start bit 3 */; /* off 0x0068 */ long ReservedFlags:28 /* start bit 4 */; }; /* off 0x0068 */ long ProcessFlags; }; /* off 0x006c */ char BasePriority; /* off 0x006d */ char QuantumReset; /* off 0x006e */ unsigned char Visited; /* off 0x006f */ unsigned char Unused3; /* off 0x0070 */ unsigned long ThreadSeed[1]; /* off 0x0074 */ unsigned short IdealNode[1]; /* off 0x0076 */ unsigned short IdealGlobalNode; union { /* off 0x0078 */ struct _KEXECUTE_OPTIONS Flags; /* off 0x0078 */ unsigned char ExecuteOptions; }; /* off 0x0079 */ unsigned char Unused1; /* off 0x007a */ unsigned short IopmOffset; /* off 0x007c */ unsigned long Unused4; /* off 0x0080 */ union _KSTACK_COUNT StackCount; /* off 0x0084 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0090 */ unsigned __int64 CycleTime; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _COUNTER_READING /* sizeof 00000018 24 */ { /* off 0x0000 */ enum _HARDWARE_COUNTER_TYPE Type; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 Total; }; struct _KTHREAD_COUNTERS /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned __int64 WaitReasonBitMap; /* off 0x0008 */ struct _THREAD_PERFORMANCE_DATA* UserData; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long Reserved; /* off 0x0018 */ unsigned __int64 UpdateCount; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING HwCounter[16]; }; struct _THREAD_PERFORMANCE_DATA /* sizeof 000001c0 448 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ struct _PROCESSOR_NUMBER ProcessorNumber; /* off 0x0008 */ unsigned long ContextSwitches; /* off 0x000c */ unsigned long HwCountersCount; /* off 0x0010 */ unsigned __int64 UpdateCount; /* off 0x0018 */ unsigned __int64 WaitReasonBitMap; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING CycleTime; /* off 0x0040 */ struct _COUNTER_READING HwCounters[16]; }; enum _HARDWARE_COUNTER_TYPE { PMCCounter =0x00000000 ,//0 MaxHardwareCounterType =0x00000001 ,//0 }; struct _XSTATE_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned long Reserved1; /* off 0x0010 */ struct _XSAVE_AREA* Area; /* off 0x0014 */ unsigned long Reserved2; /* off 0x0018 */ void* Buffer; /* off 0x001c */ unsigned long Reserved3; }; struct _XSTATE_SAVE /* sizeof 00000020 32 */ { union { struct { /* off 0x0000 */ __int64 Reserved1; /* off 0x0008 */ unsigned long Reserved2; /* off 0x000c */ struct _XSTATE_SAVE* Prev; /* off 0x0010 */ struct _XSAVE_AREA* Reserved3; /* off 0x0014 */ struct _KTHREAD* Thread; /* off 0x0018 */ void* Reserved4; /* off 0x001c */ unsigned char Level; }; /* off 0x0000 */ struct _XSTATE_CONTEXT XStateContext; }; }; struct _M128A /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Low; /* off 0x0008 */ __int64 High; }; struct _XSAVE_FORMAT /* sizeof 00000200 512 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned char TagWord; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned short ErrorSelector; /* off 0x000e */ unsigned short Reserved2; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned short DataSelector; /* off 0x0016 */ unsigned short Reserved3; /* off 0x0018 */ unsigned long MxCsr; /* off 0x001c */ unsigned long MxCsr_Mask; /* off 0x0020 */ struct _M128A FloatRegisters[8]; /* off 0x00a0 */ struct _M128A XmmRegisters[8]; /* off 0x0120 */ unsigned char Reserved4[192]; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; }; struct _XSAVE_AREA_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned __int64 Reserved[7]; }; struct _XSAVE_AREA /* sizeof 00000240 576 */ { /* off 0x0000 */ struct _XSAVE_FORMAT LegacyState; /* off 0x0200 */ struct _XSAVE_AREA_HEADER Header; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char GroupAssigned:1 /* start bit 1 */; /* off 0x0000 */ unsigned char GroupCommitted:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Fill:5 /* start bit 3 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; /* off 0x0014 */ unsigned long Pad0; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ struct _GROUP_AFFINITY Affinity; /* off 0x002c */ unsigned long ProximityId; /* off 0x0030 */ unsigned short NodeNumber; /* off 0x0032 */ unsigned short PrimaryNodeNumber; /* off 0x0034 */ unsigned char MaximumProcessors; /* off 0x0035 */ unsigned char Color; /* off 0x0036 */ struct _flags Flags; /* off 0x0037 */ unsigned char NodePad0; /* off 0x0038 */ unsigned long Seed; /* off 0x003c */ unsigned long MmShiftedColor; /* off 0x0040 */ unsigned long FreeCount[2]; /* off 0x0048 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; /* off 0x0060 */ long ParkLock; /* off 0x0064 */ unsigned long NodePad1; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _KAFFINITY_EX DomainMembers; /* off 0x000c */ long( __fastcall *IdleCheck)(void*); /* off 0x0010 */ void( __fastcall *IdleHandler)(void*,unsigned long); /* off 0x0014 */ void* Context; /* off 0x0018 */ unsigned long Latency; /* off 0x001c */ unsigned long Power; /* off 0x0020 */ unsigned long TimeCheck; /* off 0x0024 */ unsigned long StateFlags; /* off 0x0028 */ unsigned char PromotePercent; /* off 0x0029 */ unsigned char DemotePercent; /* off 0x002a */ unsigned char PromotePercentBase; /* off 0x002b */ unsigned char DemotePercentBase; /* off 0x002c */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0008 */ unsigned long TargetState; /* off 0x000c */ unsigned long ActualState; /* off 0x0010 */ unsigned long OldState; /* off 0x0014 */ unsigned char NewlyUnparked; /* off 0x0018 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x0024 */ struct _PPM_IDLE_STATE State[1]; }; struct _PROC_IDLE_STATE_BUCKET /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned __int64 MinTime; /* off 0x0010 */ unsigned __int64 MaxTime; /* off 0x0018 */ unsigned long Count; }; struct _PROC_IDLE_STATE_ACCOUNTING /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned long IdleTransitions; /* off 0x000c */ unsigned long FailedTransitions; /* off 0x0010 */ unsigned long InvalidBucketIndex; /* off 0x0018 */ unsigned __int64 MinTime; /* off 0x0020 */ unsigned __int64 MaxTime; /* off 0x0028 */ struct _PROC_IDLE_STATE_BUCKET IdleTimeBuckets[16]; }; struct _PROC_IDLE_ACCOUNTING /* sizeof 000002c0 704 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ unsigned __int64 BucketLimits[16]; /* off 0x0098 */ struct _PROC_IDLE_STATE_ACCOUNTING State[1]; }; enum _PROC_HYPERVISOR_STATE { ProcHypervisorNone =0x00000000 ,//0 ProcHypervisorPresent =0x00000001 ,//0 ProcHypervisorPower =0x00000002 ,//0 }; struct _PROC_PERF_DOMAIN /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _KPRCB* Master; /* off 0x000c */ struct _KAFFINITY_EX Members; /* off 0x0018 */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x001c */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0020 */ void( __fastcall *BoostPolicyHandler)(unsigned long); /* off 0x0024 */ unsigned long( __fastcall *PerfSelectionHandler)(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long*,unsigned long*); /* off 0x0028 */ void( __fastcall *PerfHandler)(unsigned long,unsigned long); /* off 0x002c */ struct _PROC_PERF_CONSTRAINT* Processors; /* off 0x0030 */ unsigned __int64 PerfChangeTime; /* off 0x0038 */ unsigned long ProcessorCount; /* off 0x003c */ unsigned long PreviousFrequencyMhz; /* off 0x0040 */ unsigned long CurrentFrequencyMhz; /* off 0x0044 */ unsigned long PreviousFrequency; /* off 0x0048 */ unsigned long CurrentFrequency; /* off 0x004c */ unsigned long CurrentPerfContext; /* off 0x0050 */ unsigned long DesiredFrequency; /* off 0x0054 */ unsigned long MaxFrequency; /* off 0x0058 */ unsigned long MinPerfPercent; /* off 0x005c */ unsigned long MinThrottlePercent; /* off 0x0060 */ unsigned long MaxPercent; /* off 0x0064 */ unsigned long MinPercent; /* off 0x0068 */ unsigned long ConstrainedMaxPercent; /* off 0x006c */ unsigned long ConstrainedMinPercent; /* off 0x0070 */ unsigned char Coordination; /* off 0x0074 */ long PerfChangeIntervalCount; }; struct _PROC_PERF_CONSTRAINT /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _KPRCB* Prcb; /* off 0x0004 */ unsigned long PerfContext; /* off 0x0008 */ unsigned long PercentageCap; /* off 0x000c */ unsigned long ThermalCap; /* off 0x0010 */ unsigned long TargetFrequency; /* off 0x0014 */ unsigned long AcumulatedFullFrequency; /* off 0x0018 */ unsigned long AcumulatedZeroFrequency; }; struct _PROC_PERF_LOAD /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char BusyPercentage; /* off 0x0001 */ unsigned char FrequencyPercentage; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueUnusedSpare0 =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueuePfnLock =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueTimerTableLock =0x00000011 ,//0 LockQueueMaximumLock =0x00000031 ,//0 }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Gate; /* off 0x001c */ unsigned long OldIrql; }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideLargeIrpList =0x00000001 ,//0 LookasideMdlList =0x00000002 ,//0 LookasideCreateInfoList =0x00000003 ,//0 LookasideNameBufferList =0x00000004 ,//0 LookasideTwilightList =0x00000005 ,//0 LookasideCompletionList =0x00000006 ,//0 LookasideScratchBufferList =0x00000007 ,//0 LookasideMaximumList =0x00000008 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _KGATE WakeGate; /* off 0x0000 */ struct _KEVENT WakeEvent; }; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 000002b8 696 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x0200 */ union _LARGE_INTEGER CreateTime; union { /* off 0x0208 */ union _LARGE_INTEGER ExitTime; /* off 0x0208 */ struct _LIST_ENTRY KeyedWaitChain; }; union { /* off 0x0210 */ long ExitStatus; /* off 0x0210 */ void* OfsChain; }; union { /* off 0x0214 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x0214 */ void* ForwardLinkShadow; /* off 0x0218 */ void* StartAddress; }; }; union { /* off 0x021c */ struct _TERMINATION_PORT* TerminationPort; /* off 0x021c */ struct _ETHREAD* ReaperLink; /* off 0x021c */ void* KeyedWaitValue; }; /* off 0x0220 */ unsigned long ActiveTimerListLock; /* off 0x0224 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x022c */ struct _CLIENT_ID Cid; union { /* off 0x0234 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0234 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0248 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x024c */ struct _LIST_ENTRY IrpList; /* off 0x0254 */ unsigned long TopLevelIrp; /* off 0x0258 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x025c */ union _PSP_CPU_QUOTA_APC* CpuQuotaApc; /* off 0x0260 */ void* Win32StartAddress; /* off 0x0264 */ void* LegacyPowerObject; /* off 0x0268 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0270 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0274 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0278 */ unsigned long ReadClusterSize; /* off 0x027c */ long MmLockOrdering; union { /* off 0x0280 */ unsigned long CrossThreadFlags; struct { /* off 0x0280 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0280 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0280 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0280 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0280 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0280 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0280 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0280 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0280 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0280 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0280 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0280 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0280 */ unsigned long RundownFail:1 /* start bit 16 */; }; }; union { /* off 0x0284 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0284 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0284 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0284 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0284 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0284 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0284 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0284 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0288 */ unsigned long SameThreadApcFlags; struct { /* off 0x0288 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0288 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0288 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0288 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0289 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0289 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0289 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0289 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetExclusive:1 /* start bit 0 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetShared:1 /* start bit 1 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetExclusive:1 /* start bit 2 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetShared:1 /* start bit 3 */; /* off 0x028a */ unsigned char Spare1:4 /* start bit 4 */; /* off 0x028b */ unsigned char PriorityRegionActive; }; }; /* off 0x028c */ unsigned char CacheManagerActive; /* off 0x028d */ unsigned char DisablePageFaultClustering; /* off 0x028e */ unsigned char ActiveFaultCount; /* off 0x028f */ unsigned char LockOrderState; /* off 0x0290 */ unsigned long AlpcMessageId; union { /* off 0x0294 */ void* AlpcMessage; /* off 0x0294 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0298 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x02a0 */ unsigned long CacheManagerCount; /* off 0x02a4 */ unsigned long CmCallbackCount; /* off 0x02a8 */ unsigned long IrpListLock; /* off 0x02ac */ unsigned long IoBoostCount; /* off 0x02b0 */ void* ReservedForSynchTracking; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { struct { /* off 0x0004 */ unsigned long IoPriorityBoosted:1 /* start bit 0 */; /* off 0x0004 */ unsigned long OwnerCount:31 /* start bit 1 */; }; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char WorkingSetType:3 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 3 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 6 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 7 */; /* off 0x0001 */ unsigned char SessionMaster:1 /* start bit 0 */; /* off 0x0001 */ unsigned char TrimmerAttached:1 /* start bit 1 */; /* off 0x0001 */ unsigned char TrimmerDetaching:1 /* start bit 2 */; /* off 0x0001 */ unsigned char Reserved:1 /* start bit 3 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0008 */ unsigned short LastTrimStamp; /* off 0x000a */ unsigned short NextPageColor; /* off 0x000c */ struct _MMSUPPORT_FLAGS Flags; /* off 0x0010 */ unsigned long PageFaultCount; /* off 0x0014 */ unsigned long HardFaultCount; /* off 0x0018 */ unsigned long PeakWorkingSetSize; /* off 0x001c */ unsigned long ChargedWslePages; /* off 0x0020 */ unsigned long MinimumWorkingSetSize; /* off 0x0024 */ unsigned long MaximumWorkingSetSize; /* off 0x0028 */ struct _MMWSL* VmWorkingSetList; /* off 0x002c */ unsigned long AgeDistribution[7]; /* off 0x0048 */ unsigned long ActualWslePages; /* off 0x004c */ unsigned long WorkingSetPrivateSize; /* off 0x0050 */ unsigned long WorkingSetSizeOverhead; /* off 0x0054 */ unsigned long WorkingSetSize; /* off 0x0058 */ unsigned long RepurposeCount; /* off 0x005c */ struct _KGATE* ExitGate; /* off 0x0060 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0064 */ void* AccessLog; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 000002c0 704 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0098 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x00a0 */ union _LARGE_INTEGER CreateTime; /* off 0x00a8 */ union _LARGE_INTEGER ExitTime; /* off 0x00b0 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x00b4 */ void* UniqueProcessId; /* off 0x00b8 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00c0 */ unsigned long ProcessQuotaUsage[2]; /* off 0x00c8 */ unsigned long ProcessQuotaPeak[2]; /* off 0x00d0 */ unsigned long CommitCharge; /* off 0x00d4 */ unsigned long SpareUlongPtr[2]; /* off 0x00dc */ unsigned long PeakVirtualSize; /* off 0x00e0 */ unsigned long VirtualSize; /* off 0x00e4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00ec */ void* DebugPort; union { /* off 0x00f0 */ void* ExceptionPortData; /* off 0x00f0 */ unsigned long ExceptionPortValue; /* off 0x00f0 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00f4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00f8 */ struct _EX_FAST_REF Token; /* off 0x00fc */ unsigned long WorkingSetPage; /* off 0x0100 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x0104 */ struct _ETHREAD* RotateInProgress; /* off 0x0108 */ struct _ETHREAD* ForkInProgress; /* off 0x010c */ unsigned long HardwareTrigger; /* off 0x0110 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x0114 */ void* CloneRoot; /* off 0x0118 */ unsigned long NumberOfPrivatePages; /* off 0x011c */ unsigned long NumberOfLockedPages; /* off 0x0120 */ void* Win32Process; /* off 0x0124 */ struct _EJOB* Job; /* off 0x0128 */ void* SectionObject; /* off 0x012c */ void* SectionBaseAddress; /* off 0x0130 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x0134 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x0138 */ void* Win32WindowStation; /* off 0x013c */ void* InheritedFromUniqueProcessId; /* off 0x0140 */ void* LdtInformation; /* off 0x0144 */ void* Spare; /* off 0x0148 */ void* VdmObjects; /* off 0x014c */ void* DeviceMap; /* off 0x0150 */ void* EtwDataSource; /* off 0x0154 */ void* FreeTebHint; union { /* off 0x0158 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0158 */ unsigned __int64 Filler; }; /* off 0x0160 */ void* Session; /* off 0x0164 */ unsigned char ImageFileName[16]; /* off 0x0174 */ struct _LIST_ENTRY JobLinks; /* off 0x017c */ void* LockedPagesList; /* off 0x0180 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0188 */ void* SecurityPort; /* off 0x018c */ void* PaeTop; /* off 0x0190 */ unsigned long ActiveThreads; /* off 0x0194 */ unsigned long ImagePathHash; /* off 0x0198 */ unsigned long DefaultHardErrorProcessing; /* off 0x019c */ long LastThreadExitStatus; /* off 0x01a0 */ struct _PEB* Peb; /* off 0x01a4 */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01a8 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01b0 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01b8 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01c8 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01d0 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01d8 */ unsigned long CommitChargeLimit; /* off 0x01dc */ unsigned long CommitChargePeak; /* off 0x01e0 */ void* AweInfo; /* off 0x01e4 */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01e8 */ struct _MMSUPPORT Vm; /* off 0x0250 */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0258 */ unsigned long ModifiedPageCount; union { /* off 0x025c */ unsigned long Flags2; struct { /* off 0x025c */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x025c */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x025c */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x025c */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x025c */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x025c */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x025c */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x025c */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x025c */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x025c */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x025c */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x025c */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x025c */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x025c */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x025c */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x025c */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x025c */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x025c */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x025c */ unsigned long CrossSessionCreate:1 /* start bit 20 */; }; }; union { /* off 0x0260 */ unsigned long Flags; struct { /* off 0x0260 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0260 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0260 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0260 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0260 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0260 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0260 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0260 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0260 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0260 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0260 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0260 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0260 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0260 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0260 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0260 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0260 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0260 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0260 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0260 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0260 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0260 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0260 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0260 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0260 */ unsigned long PropagateNode:1 /* start bit 25 */; /* off 0x0260 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0260 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0260 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0260 */ unsigned long SpareProcessFlags:1 /* start bit 31 */; }; }; /* off 0x0264 */ long ExitStatus; /* off 0x0268 */ unsigned short Spare7; union { struct { /* off 0x026a */ unsigned char SubSystemMinorVersion; /* off 0x026b */ unsigned char SubSystemMajorVersion; }; struct { /* off 0x026a */ unsigned short SubSystemVersion; }; }; /* off 0x026c */ unsigned char PriorityClass; /* off 0x0270 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0290 */ unsigned long Cookie; /* off 0x0294 */ unsigned long Spare8; /* off 0x0298 */ struct _ALPC_PROCESS_CONTEXT AlpcContext; /* off 0x02a8 */ struct _LIST_ENTRY TimerResolutionLink; /* off 0x02b0 */ unsigned long RequestedTimerResolution; /* off 0x02b4 */ unsigned long ActiveThreadsHighWatermark; /* off 0x02b8 */ unsigned long ConsoleHostProcess; /* off 0x02bc */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _HANDLE_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ unsigned long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ unsigned long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; /* off 0x0038 */ unsigned long HandleCountHighWatermark; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ unsigned long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000130 304 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long LimitFlags; /* off 0x009c */ unsigned long MinimumWorkingSetSize; /* off 0x00a0 */ unsigned long MaximumWorkingSetSize; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ struct _KAFFINITY_EX Affinity; /* off 0x00b4 */ unsigned char PriorityClass; /* off 0x00b8 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00bc */ unsigned long UIRestrictionsClass; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ unsigned long ProcessMemoryLimit; /* off 0x010c */ unsigned long JobMemoryLimit; /* off 0x0110 */ unsigned long PeakProcessMemoryUsed; /* off 0x0114 */ unsigned long PeakJobMemoryUsed; /* off 0x0118 */ unsigned long CurrentJobMemoryUsed; /* off 0x011c */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0120 */ struct _LIST_ENTRY JobSetLinks; /* off 0x0128 */ unsigned long MemberLevel; /* off 0x012c */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000d0c 3340 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextAgingSlot; /* off 0x0020 */ unsigned long NumberOfCommittedPageTables; /* off 0x0024 */ unsigned long VadBitMapHint; /* off 0x0028 */ unsigned long NonDirectCount; /* off 0x002c */ unsigned long LastVadBit; /* off 0x0030 */ unsigned long MaximumLastVadBit; /* off 0x0034 */ unsigned long LastAllocationSizeHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x0040 */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0044 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0048 */ void* HighestUserAddress; /* off 0x004c */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c4c */ unsigned long CommittedPageTables[48]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned long Age:3 /* start bit 9 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long CapturedCpuShareWeight; /* off 0x0004 */ unsigned long CapturedTotalWeight; }; /* off 0x0000 */ __int64 CombinedData; }; struct _PS_PER_CPU_QUOTA_CACHE_AWARE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _LIST_ENTRY SortedListEntry; /* off 0x0008 */ struct _LIST_ENTRY IdleOnlyListHead; /* off 0x0010 */ unsigned __int64 CycleBaseAllowance; /* off 0x0018 */ __int64 CyclesRemaining; /* off 0x0020 */ unsigned long CurrentGeneration; }; struct _PS_CPU_QUOTA_BLOCK /* sizeof 00000880 2176 */ { union { struct { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; union { struct { /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long CpuShareWeight; /* off 0x0010 */ union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA CapturedWeightData; union { struct { /* off 0x0018 */ unsigned long DuplicateInputMarker:1 /* start bit 0 */; /* off 0x0018 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0018 */ long MiscFlags; }; struct { }; /* off 0x0000 */ unsigned long BlockCurrentGenerationLock; }; struct { /* off 0x0008 */ unsigned __int64 CyclesAccumulated; }; }; /* off 0x0040 */ unsigned __int64 CycleCredit; /* off 0x0048 */ unsigned long BlockCurrentGeneration; /* off 0x004c */ unsigned long CpuCyclePercent; /* off 0x0050 */ unsigned char CyclesFinishedForCurrentGeneration; /* off 0x0080 */ struct _PS_PER_CPU_QUOTA_CACHE_AWARE Cpu[32]; }; }; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileIsRemoteDeviceInformation =0x00000033 ,//0 FileAttributeCacheInformation =0x00000034 ,//0 FileNumaNodeInformation =0x00000035 ,//0 FileStandardLinkInformation =0x00000036 ,//0 FileMaximumInformation =0x00000037 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 TransportRelations =0x00000006 ,//0 }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved:14 /* start bit 18 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ unsigned short AffinityPolicy; /* off 0x000a */ unsigned short Group; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 BusQueryContainerID =0x00000005 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long BusyReference; /* off 0x000c */ unsigned long TotalBusyCount; /* off 0x0010 */ unsigned long ConservationIdleTime; /* off 0x0014 */ unsigned long PerformanceIdleTime; /* off 0x0018 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x001c */ struct _LIST_ENTRY IdleList; /* off 0x0024 */ enum _POP_DEVICE_IDLE_TYPE IdleType; /* off 0x0028 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x002c */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x0030 */ struct _LIST_ENTRY Volume; /* off 0x0038 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; enum _POP_DEVICE_IDLE_TYPE { DeviceIdleNormal =0x00000000 ,//0 DeviceIdleDisk =0x00000001 ,//0 }; union _PSP_CPU_QUOTA_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _ACCESS_REASONS /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Data[32]; }; struct _AUX_ACCESS_DATA /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _PRIVILEGE_SET* PrivilegesUsed; /* off 0x0004 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0014 */ unsigned long AccessesToAudit; /* off 0x0018 */ unsigned long MaximumAuditMask; /* off 0x001c */ struct _GUID TransactionId; /* off 0x002c */ void* NewSecurityDescriptor; /* off 0x0030 */ void* ExistingSecurityDescriptor; /* off 0x0034 */ void* ParentSecurityDescriptor; /* off 0x0038 */ void( __stdcall *DeRefSecurityDescriptor)(void*,void*); /* off 0x003c */ void* SDLock; /* off 0x0040 */ struct _ACCESS_REASONS AccessReasons; }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _LIST_ENTRY EcpList; }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned char Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x007c */ unsigned long Key; /* off 0x0080 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PlatformPfaControl:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PlatformDirectedOffline:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved2:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_PACKET_V2 /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0010 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0014 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0018 */ unsigned long ErrorSourceId; /* off 0x001c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0020 */ struct _GUID NotifyType; /* off 0x0030 */ unsigned __int64 Context; /* off 0x0038 */ enum _WHEA_ERROR_PACKET_DATA_FORMAT DataFormat; /* off 0x003c */ unsigned long Reserved1; /* off 0x0040 */ unsigned long DataOffset; /* off 0x0044 */ unsigned long DataLength; /* off 0x0048 */ unsigned long PshedDataOffset; /* off 0x004c */ unsigned long PshedDataLength; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevInformational =0x00000003 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord =0x00000000 ,//0 WheaDataFormatXPFMCA =0x00000001 ,//0 WheaDataFormatMemory =0x00000002 ,//0 WheaDataFormatPCIExpress =0x00000003 ,//0 WheaDataFormatNMIPort =0x00000004 ,//0 WheaDataFormatPCIXBus =0x00000005 ,//0 WheaDataFormatPCIXDevice =0x00000006 ,//0 WheaDataFormatGeneric =0x00000007 ,//0 WheaDataFormatMax =0x00000008 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Precise:1 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 25 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; struct _FSRTL_ADVANCED_FCB_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char IsFastIoPossible; /* off 0x0006 */ unsigned char Flags2; /* off 0x0007 */ unsigned char Reserved:4 /* start bit 0 */; /* off 0x0007 */ unsigned char Version:4 /* start bit 4 */; /* off 0x0008 */ struct _ERESOURCE* Resource; /* off 0x000c */ struct _ERESOURCE* PagingIoResource; /* off 0x0010 */ union _LARGE_INTEGER AllocationSize; /* off 0x0018 */ union _LARGE_INTEGER FileSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ struct _FAST_MUTEX* FastMutex; /* off 0x002c */ struct _LIST_ENTRY FilterContexts; /* off 0x0034 */ struct _EX_PUSH_LOCK PushLock; /* off 0x0038 */ void** FileContextSupportPointer; }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Unused:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InStore:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused1:19 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 GlobalTimeStamp:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Long; /* off 0x0000 */ unsigned __int64 VolatileLong; /* off 0x0000 */ struct _MMPTE_HIGHLOW HighLow; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long OsMajorVersion; /* off 0x0004 */ unsigned long OsMinorVersion; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0018 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0020 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0028 */ unsigned long KernelStack; /* off 0x002c */ unsigned long Prcb; /* off 0x0030 */ unsigned long Process; /* off 0x0034 */ unsigned long Thread; /* off 0x0038 */ unsigned long RegistryLength; /* off 0x003c */ void* RegistryBase; /* off 0x0040 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0044 */ char* ArcBootDeviceName; /* off 0x0048 */ char* ArcHalDeviceName; /* off 0x004c */ char* NtBootPathName; /* off 0x0050 */ char* NtHalPathName; /* off 0x0054 */ char* LoadOptions; /* off 0x0058 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x005c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0060 */ void* OemFontFile; /* off 0x0064 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x0068 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0074 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; union { /* off 0x0014 */ unsigned long AffinityMask; struct { /* off 0x0014 */ unsigned short Group; /* off 0x0016 */ unsigned short GroupIndex; }; }; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _TPM_BOOT_ENTROPY_LDR_RESULT /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 Policy; /* off 0x0008 */ enum _TPM_BOOT_ENTROPY_RESULT_CODE ResultCode; /* off 0x000c */ long ResultStatus; /* off 0x0010 */ unsigned __int64 Time; /* off 0x0018 */ unsigned long EntropyLength; /* off 0x001c */ unsigned char EntropyData[40]; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ void* EmInfFileImage; /* off 0x0018 */ unsigned long EmInfFileSize; /* off 0x001c */ void* TriageDumpBlock; /* off 0x0020 */ unsigned long LoaderPagesSpanned; /* off 0x0024 */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0028 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x002c */ void* DrvDBImage; /* off 0x0030 */ unsigned long DrvDBSize; /* off 0x0034 */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0038 */ unsigned char* HalpIRQLToTPR; /* off 0x003c */ unsigned char* HalpVectorToIRQL; /* off 0x0040 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0048 */ void* AcpiTable; /* off 0x004c */ unsigned long AcpiTableSize; /* off 0x0050 */ unsigned long LastBootSucceeded:1 /* start bit 0 */; /* off 0x0050 */ unsigned long LastBootShutdown:1 /* start bit 1 */; /* off 0x0050 */ unsigned long Reserved:30 /* start bit 2 */; /* off 0x0054 */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0058 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0060 */ void* WmdTestResult; /* off 0x0064 */ struct _GUID BootIdentifier; /* off 0x0074 */ unsigned long ResumePages; /* off 0x0078 */ void* DumpHeader; /* off 0x007c */ void* BgContext; /* off 0x0080 */ void* NumaLocalityInfo; /* off 0x0084 */ struct _LIST_ENTRY AttachedHives; /* off 0x008c */ unsigned long MemoryCachingRequirementsCount; /* off 0x0090 */ void* MemoryCachingRequirements; /* off 0x0098 */ struct _TPM_BOOT_ENTROPY_LDR_RESULT TpmBootEntropyResult; /* off 0x00e0 */ unsigned __int64 ProcessorCounterFrequency; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; /* off 0x0010 */ unsigned __int64 Frequency; }; enum _TPM_BOOT_ENTROPY_RESULT_CODE { TpmBootEntropyStructureUninitialized =0x00000000 ,//0 TpmBootEntropyDisabledByPolicy =0x00000001 ,//0 TpmBootEntropyNoTpmFound =0x00000002 ,//0 TpmBootEntropyTpmError =0x00000003 ,//0 TpmBootEntropySuccess =0x00000004 ,//0 }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _MMPFNLIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; /* off 0x0010 */ unsigned long Lock; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; /* off 0x0008 */ long Lock; /* off 0x0008 */ unsigned long PteLong; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short ModifiedWriteCount; /* off 0x0002 */ unsigned short FlushInProgressCount; } e2; } u1; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; /* off 0x002c */ unsigned long StartingFrame; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; /* off 0x0048 */ struct _LIST_ENTRY ViewList; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Spare:9 /* start bit 23 */; }; struct _SEGMENT /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x0030 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ void* ImageMerge; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; union _MM_STORE_KEY /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long KeyLow:28 /* start bit 0 */; /* off 0x0000 */ unsigned long KeyHigh:4 /* start bit 28 */; }; /* off 0x0000 */ unsigned long EntireKey; }; enum _MI_STORE_BIT_TYPE { MiStoreBitTypeInStore =0x00000000 ,//0 MiStoreBitTypeEvicted =0x00000001 ,//0 MiStoreBitTypeMax =0x00000002 ,//0 }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ struct _RTL_BITMAP* EvictStoreBitmap; /* off 0x0034 */ unsigned long BitmapHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ unsigned long ToBeEvictedCount; /* off 0x0040 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0040 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0040 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x0042 */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x0042 */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x0044 */ void* FileHandle; /* off 0x0048 */ unsigned long Lock; /* off 0x004c */ struct _ETHREAD* LockOwner; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PER_SESSION_PROTOS /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; /* off 0x0000 */ struct _MI_PER_SESSION_PROTOS* NextToFree; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; union { /* off 0x000c */ unsigned long SessionId; /* off 0x000c */ unsigned long StartingVpn; /* off 0x000c */ struct _SUBSECTION* Subsection; }; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ struct _MMPTE* SubsectionBase; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReferenceCount; /* off 0x0000 */ unsigned long NumberOfPtesToFree; } u2; }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002e8 744 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x0028 */ struct _RTL_BITMAP DirtyVector; /* off 0x0030 */ unsigned long DirtyCount; /* off 0x0034 */ unsigned long DirtyAlloc; /* off 0x0038 */ unsigned long BaseBlockAlloc; /* off 0x003c */ unsigned long Cluster; /* off 0x0040 */ unsigned char Flat; /* off 0x0041 */ unsigned char ReadOnly; /* off 0x0042 */ unsigned char DirtyFlag; /* off 0x0044 */ unsigned long HvBinHeadersUse; /* off 0x0048 */ unsigned long HvFreeCellsUse; /* off 0x004c */ unsigned long HvUsedCellsUse; /* off 0x0050 */ unsigned long CmUsedCellsUse; /* off 0x0054 */ unsigned long HiveFlags; /* off 0x0058 */ unsigned long CurrentLog; /* off 0x005c */ unsigned long LogSize[2]; /* off 0x0064 */ unsigned long RefreshCount; /* off 0x0068 */ unsigned long StorageTypeCount; /* off 0x006c */ unsigned long Version; /* off 0x0070 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CM_WORKITEM /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Private; /* off 0x000c */ void( __stdcall *WorkerRoutine)(void*); /* off 0x0010 */ void* Parameter; }; struct _CMHIVE /* sizeof 00000628 1576 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02e8 */ void* FileHandles[6]; /* off 0x0300 */ struct _LIST_ENTRY NotifyList; /* off 0x0308 */ struct _LIST_ENTRY HiveList; /* off 0x0310 */ struct _LIST_ENTRY PreloadedHiveList; /* off 0x0318 */ struct _LIST_ENTRY ParseCacheEntries; /* off 0x0320 */ struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable; /* off 0x0324 */ unsigned long KcbCacheTableSize; /* off 0x0328 */ unsigned long Identity; /* off 0x032c */ struct _FAST_MUTEX* HiveLock; /* off 0x0330 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x0334 */ struct _KTHREAD* ViewLockOwner; /* off 0x0338 */ unsigned long ViewLockLast; /* off 0x033c */ unsigned long ViewUnLockLast; /* off 0x0340 */ struct _FAST_MUTEX* WriterLock; /* off 0x0344 */ struct _ERESOURCE* FlusherLock; /* off 0x0348 */ struct _RTL_BITMAP FlushDirtyVector; /* off 0x0350 */ struct CMP_OFFSET_ARRAY* FlushOffsetArray; /* off 0x0354 */ unsigned long FlushOffsetArrayCount; /* off 0x0358 */ unsigned long FlushHiveTruncated; /* off 0x035c */ struct _FAST_MUTEX* FlushLock2; /* off 0x0360 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x0364 */ struct _LIST_ENTRY MappedViewList; /* off 0x036c */ struct _LIST_ENTRY PinnedViewList; /* off 0x0374 */ struct _LIST_ENTRY FlushedViewList; /* off 0x037c */ unsigned short MappedViewCount; /* off 0x037e */ unsigned short PinnedViewCount; /* off 0x0380 */ unsigned long UseCount; /* off 0x0384 */ unsigned long ViewsPerHive; /* off 0x0388 */ struct _FILE_OBJECT* FileObject; /* off 0x038c */ unsigned long LastShrinkHiveSize; /* off 0x0390 */ union _LARGE_INTEGER ActualFileSize; /* off 0x0398 */ struct _UNICODE_STRING FileFullPath; /* off 0x03a0 */ struct _UNICODE_STRING FileUserName; /* off 0x03a8 */ struct _UNICODE_STRING HiveRootPath; /* off 0x03b0 */ unsigned long SecurityCount; /* off 0x03b4 */ unsigned long SecurityCacheSize; /* off 0x03b8 */ long SecurityHitHint; /* off 0x03bc */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x03c0 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x05c0 */ unsigned long UnloadEventCount; /* off 0x05c4 */ struct _KEVENT** UnloadEventArray; /* off 0x05c8 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x05cc */ unsigned char Frozen; /* off 0x05d0 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05d4 */ struct _CM_WORKITEM UnloadWorkItemHolder; /* off 0x05e8 */ unsigned char GrowOnlyMode; /* off 0x05ec */ unsigned long GrowOffset; /* off 0x05f0 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x05f8 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0600 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x0604 */ unsigned long Flags; /* off 0x0608 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x0610 */ unsigned long FlushCount; /* off 0x0614 */ struct _CM_RM* CmRm; /* off 0x0618 */ unsigned long CmRmInitFailPoint; /* off 0x061c */ long CmRmInitFailStatus; /* off 0x0620 */ struct _KTHREAD* CreatorOwner; }; struct _CM_KEY_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ struct _CM_KEY_HASH* Entry; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:16 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 16 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 17 */; /* off 0x0004 */ unsigned long HiveUnloaded:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Decommissioned:1 /* start bit 19 */; /* off 0x0004 */ unsigned long LockTablePresent:1 /* start bit 20 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 21 */; /* off 0x0008 */ unsigned long DelayedDeref:1 /* start bit 0 */; /* off 0x0008 */ unsigned long DelayedClose:1 /* start bit 1 */; /* off 0x0008 */ unsigned long Parking:1 /* start bit 2 */; union { /* off 0x000c */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x000c */ unsigned long ConvKey; /* off 0x0010 */ struct _CM_KEY_HASH* NextHash; /* off 0x0014 */ struct _HHIVE* KeyHive; /* off 0x0018 */ unsigned long KeyCell; }; }; /* off 0x001c */ struct _EX_PUSH_LOCK KcbPushlock; union { /* off 0x0020 */ struct _KTHREAD* Owner; /* off 0x0020 */ long SharedCount; }; /* off 0x0024 */ unsigned long SlotHint; /* off 0x0028 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x002c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0030 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0034 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x003c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x003c */ unsigned long HashKey; /* off 0x003c */ unsigned long SubKeyCount; }; union { /* off 0x0040 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0040 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0048 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0058 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0060 */ unsigned short KcbMaxNameLen; /* off 0x0062 */ unsigned short KcbMaxValueNameLen; /* off 0x0064 */ unsigned long KcbMaxValueDataLen; /* off 0x0068 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0068 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0068 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0068 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x006c */ struct _LIST_ENTRY KCBUoWListHead; union { /* off 0x0074 */ struct _LIST_ENTRY DelayQueueEntry; /* off 0x0074 */ unsigned char* Stolen; }; /* off 0x007c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0080 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0088 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0090 */ struct _CHILD_LIST TransValueCache; /* off 0x0098 */ struct _CM_TRANS* TransValueListOwner; /* off 0x009c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags:16 /* start bit 0 */; /* off 0x0018 */ unsigned long HandleTags:16 /* start bit 16 */; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[7]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; /* off 0x0228 */ struct _WORK_QUEUE_ITEM OfflineWorkItem; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct _PCW_COUNTER_DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned short StructIndex; /* off 0x0004 */ unsigned short Offset; /* off 0x0006 */ unsigned short Size; }; enum _PCW_CALLBACK_TYPE { PcwCallbackAddCounter =0x00000000 ,//0 PcwCallbackRemoveCounter =0x00000001 ,//0 PcwCallbackEnumerateInstances =0x00000002 ,//0 PcwCallbackCollectData =0x00000003 ,//0 }; struct _PCW_COUNTER_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; }; struct _PCW_MASK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; /* off 0x000c */ unsigned long InstanceId; /* off 0x0010 */ unsigned char CollectMultiple; /* off 0x0014 */ struct _PCW_BUFFER* Buffer; /* off 0x0018 */ struct _KEVENT* CancelEvent; }; union _PCW_CALLBACK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION AddCounter; /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION RemoveCounter; /* off 0x0000 */ struct _PCW_MASK_INFORMATION EnumerateInstances; /* off 0x0000 */ struct _PCW_MASK_INFORMATION CollectData; }; struct _PCW_BUFFER /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _UNICODE_STRING* Name; /* off 0x0008 */ unsigned long CounterCount; /* off 0x000c */ struct _PCW_COUNTER_DESCRIPTOR* Counters; /* off 0x0010 */ long( __stdcall *Callback)(enum _PCW_CALLBACK_TYPE,union _PCW_CALLBACK_INFORMATION*,void*); /* off 0x0014 */ void* CallbackContext; }; struct _PCW_PROCESSOR_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned __int64 IdleTime; /* off 0x0008 */ unsigned __int64 AvailableTime; /* off 0x0010 */ unsigned __int64 UserTime; /* off 0x0018 */ unsigned __int64 KernelTime; /* off 0x0020 */ unsigned long Interrupts; /* off 0x0028 */ unsigned __int64 DpcTime; /* off 0x0030 */ unsigned __int64 InterruptTime; /* off 0x0038 */ unsigned __int64 DpcCount; /* off 0x0040 */ unsigned __int64 DpcRate; /* off 0x0048 */ unsigned __int64 C1Time; /* off 0x0050 */ unsigned __int64 C2Time; /* off 0x0058 */ unsigned __int64 C3Time; /* off 0x0060 */ unsigned long C1Transitions; /* off 0x0064 */ unsigned long C2Transitions; /* off 0x0068 */ unsigned long C3Transitions; /* off 0x006c */ unsigned long ParkingStatus; /* off 0x0070 */ unsigned long CurrentFrequency; /* off 0x0074 */ unsigned long PercentMaxFrequency; /* off 0x0078 */ unsigned long StateFlags; }; struct _PCW_INSTANCE /* sizeof 00000000 0 */ { }; struct _PCW_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Data; /* off 0x0004 */ unsigned long Size; }; struct _ETW_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long TotalActiveSessions; /* off 0x0004 */ long TotalBufferMemoryNonPagedPool; /* off 0x0008 */ long TotalBufferMemoryPagedPool; /* off 0x000c */ long TotalGuidsEnabled; /* off 0x0010 */ long TotalGuidsNotEnabled; /* off 0x0014 */ long TotalGuidsPreEnabled; }; struct _ETW_SESSION_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long BufferMemoryPagedPool; /* off 0x0004 */ long BufferMemoryNonPagedPool; /* off 0x0008 */ unsigned __int64 EventsLoggedCount; /* off 0x0010 */ long EventsLost; /* off 0x0014 */ long NumConsumers; }; struct _NT_TIB32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long ExceptionList; /* off 0x0004 */ unsigned long StackBase; /* off 0x0008 */ unsigned long StackLimit; /* off 0x000c */ unsigned long SubSystemTib; union { /* off 0x0010 */ unsigned long FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ unsigned long ArbitraryUserPointer; /* off 0x0018 */ unsigned long Self; }; struct _CLIENT_ID32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long UniqueProcess; /* off 0x0004 */ unsigned long UniqueThread; }; struct _GDI_TEB_BATCH32 /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _STRING32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned long Buffer; }; struct _TEB32 /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB32 NtTib; /* off 0x001c */ unsigned long EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID32 ClientId; /* off 0x0028 */ unsigned long ActiveRpcHandle; /* off 0x002c */ unsigned long ThreadLocalStoragePointer; /* off 0x0030 */ unsigned long ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ unsigned long CsrClientThread; /* off 0x0040 */ unsigned long Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ unsigned long WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ unsigned long SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ unsigned long ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes1[2]; /* off 0x01ae */ unsigned char SpareBytes2[34]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH32 GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID32 RealClientId; /* off 0x06bc */ unsigned long GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ unsigned long GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ unsigned long glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ unsigned long glReserved2; /* off 0x0be0 */ unsigned long glSectionInfo; /* off 0x0be4 */ unsigned long glSection; /* off 0x0be8 */ unsigned long glTable; /* off 0x0bec */ unsigned long glCurrentRC; /* off 0x0bf0 */ unsigned long glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _STRING32 StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ unsigned long DeallocationStack; /* off 0x0e10 */ unsigned long TlsSlots[64]; /* off 0x0f10 */ struct LIST_ENTRY32 TlsLinks; /* off 0x0f18 */ unsigned long Vdm; /* off 0x0f1c */ unsigned long ReservedForNtRpc; /* off 0x0f20 */ unsigned long DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ unsigned long Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ unsigned long SubProcessTag; /* off 0x0f64 */ unsigned long EtwLocalData; /* off 0x0f68 */ unsigned long EtwTraceData; /* off 0x0f6c */ unsigned long WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ unsigned long ReservedForPerf; /* off 0x0f80 */ unsigned long ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ unsigned long SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ unsigned long ThreadPoolData; /* off 0x0f94 */ unsigned long TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ unsigned long NlsCache; /* off 0x0fa4 */ unsigned long pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ unsigned long CurrentTransactionHandle; /* off 0x0fb0 */ unsigned long ActiveFrame; /* off 0x0fb4 */ unsigned long FlsData; /* off 0x0fb8 */ unsigned long PreferredLanguages; /* off 0x0fbc */ unsigned long UserPrefLanguages; /* off 0x0fc0 */ unsigned long MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x0fcc */ unsigned long TxnScopeEnterCallback; /* off 0x0fd0 */ unsigned long TxnScopeExitCallback; /* off 0x0fd4 */ unsigned long TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ unsigned long ResourceRetValue; }; struct _NT_TIB64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 ExceptionList; /* off 0x0008 */ unsigned __int64 StackBase; /* off 0x0010 */ unsigned __int64 StackLimit; /* off 0x0018 */ unsigned __int64 SubSystemTib; union { /* off 0x0020 */ unsigned __int64 FiberData; /* off 0x0020 */ unsigned long Version; }; /* off 0x0028 */ unsigned __int64 ArbitraryUserPointer; /* off 0x0030 */ unsigned __int64 Self; }; struct _CLIENT_ID64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 UniqueProcess; /* off 0x0008 */ unsigned __int64 UniqueThread; }; struct _GDI_TEB_BATCH64 /* sizeof 000004e8 1256 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0008 */ unsigned __int64 HDC; /* off 0x0010 */ unsigned long Buffer[310]; }; struct _STRING64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0008 */ unsigned __int64 Buffer; }; struct _TEB64 /* sizeof 00001818 6168 */ { /* off 0x0000 */ struct _NT_TIB64 NtTib; /* off 0x0038 */ unsigned __int64 EnvironmentPointer; /* off 0x0040 */ struct _CLIENT_ID64 ClientId; /* off 0x0050 */ unsigned __int64 ActiveRpcHandle; /* off 0x0058 */ unsigned __int64 ThreadLocalStoragePointer; /* off 0x0060 */ unsigned __int64 ProcessEnvironmentBlock; /* off 0x0068 */ unsigned long LastErrorValue; /* off 0x006c */ unsigned long CountOfOwnedCriticalSections; /* off 0x0070 */ unsigned __int64 CsrClientThread; /* off 0x0078 */ unsigned __int64 Win32ThreadInfo; /* off 0x0080 */ unsigned long User32Reserved[26]; /* off 0x00e8 */ unsigned long UserReserved[5]; /* off 0x0100 */ unsigned __int64 WOW32Reserved; /* off 0x0108 */ unsigned long CurrentLocale; /* off 0x010c */ unsigned long FpSoftwareStatusRegister; /* off 0x0110 */ unsigned __int64 SystemReserved1[54]; /* off 0x02c0 */ long ExceptionCode; /* off 0x02c8 */ unsigned __int64 ActivationContextStackPointer; /* off 0x02d0 */ unsigned char SpareBytes1[2]; /* off 0x02d2 */ unsigned char SpareBytes2[22]; /* off 0x02e8 */ unsigned long TxFsContext; /* off 0x02f0 */ struct _GDI_TEB_BATCH64 GdiTebBatch; /* off 0x07d8 */ struct _CLIENT_ID64 RealClientId; /* off 0x07e8 */ unsigned __int64 GdiCachedProcessHandle; /* off 0x07f0 */ unsigned long GdiClientPID; /* off 0x07f4 */ unsigned long GdiClientTID; /* off 0x07f8 */ unsigned __int64 GdiThreadLocalInfo; /* off 0x0800 */ unsigned __int64 Win32ClientInfo[62]; /* off 0x09f0 */ unsigned __int64 glDispatchTable[233]; /* off 0x1138 */ unsigned __int64 glReserved1[29]; /* off 0x1220 */ unsigned __int64 glReserved2; /* off 0x1228 */ unsigned __int64 glSectionInfo; /* off 0x1230 */ unsigned __int64 glSection; /* off 0x1238 */ unsigned __int64 glTable; /* off 0x1240 */ unsigned __int64 glCurrentRC; /* off 0x1248 */ unsigned __int64 glContext; /* off 0x1250 */ unsigned long LastStatusValue; /* off 0x1258 */ struct _STRING64 StaticUnicodeString; /* off 0x1268 */ wchar StaticUnicodeBuffer[261]; /* off 0x1478 */ unsigned __int64 DeallocationStack; /* off 0x1480 */ unsigned __int64 TlsSlots[64]; /* off 0x1680 */ struct LIST_ENTRY64 TlsLinks; /* off 0x1690 */ unsigned __int64 Vdm; /* off 0x1698 */ unsigned __int64 ReservedForNtRpc; /* off 0x16a0 */ unsigned __int64 DbgSsReserved[2]; /* off 0x16b0 */ unsigned long HardErrorMode; /* off 0x16b8 */ unsigned __int64 Instrumentation[11]; /* off 0x1710 */ struct _GUID ActivityId; /* off 0x1720 */ unsigned __int64 SubProcessTag; /* off 0x1728 */ unsigned __int64 EtwLocalData; /* off 0x1730 */ unsigned __int64 EtwTraceData; /* off 0x1738 */ unsigned __int64 WinSockData; /* off 0x1740 */ unsigned long GdiBatchCount; union { /* off 0x1744 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x1744 */ unsigned long IdealProcessorValue; struct { /* off 0x1744 */ unsigned char ReservedPad0; /* off 0x1745 */ unsigned char ReservedPad1; /* off 0x1746 */ unsigned char ReservedPad2; /* off 0x1747 */ unsigned char IdealProcessor; }; }; /* off 0x1748 */ unsigned long GuaranteedStackBytes; /* off 0x1750 */ unsigned __int64 ReservedForPerf; /* off 0x1758 */ unsigned __int64 ReservedForOle; /* off 0x1760 */ unsigned long WaitingOnLoaderLock; /* off 0x1768 */ unsigned __int64 SavedPriorityState; /* off 0x1770 */ unsigned __int64 SoftPatchPtr1; /* off 0x1778 */ unsigned __int64 ThreadPoolData; /* off 0x1780 */ unsigned __int64 TlsExpansionSlots; /* off 0x1788 */ unsigned __int64 DeallocationBStore; /* off 0x1790 */ unsigned __int64 BStoreLimit; /* off 0x1798 */ unsigned long MuiGeneration; /* off 0x179c */ unsigned long IsImpersonating; /* off 0x17a0 */ unsigned __int64 NlsCache; /* off 0x17a8 */ unsigned __int64 pShimData; /* off 0x17b0 */ unsigned long HeapVirtualAffinity; /* off 0x17b8 */ unsigned __int64 CurrentTransactionHandle; /* off 0x17c0 */ unsigned __int64 ActiveFrame; /* off 0x17c8 */ unsigned __int64 FlsData; /* off 0x17d0 */ unsigned __int64 PreferredLanguages; /* off 0x17d8 */ unsigned __int64 UserPrefLanguages; /* off 0x17e0 */ unsigned __int64 MergedPrefLanguages; /* off 0x17e8 */ unsigned long MuiImpersonation; union { /* off 0x17ec */ unsigned short CrossTebFlags; /* off 0x17ec */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x17ee */ unsigned short SameTebFlags; struct { /* off 0x17ee */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x17ee */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x17ee */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x17ee */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x17ee */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x17ee */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x17ee */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x17ee */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x17ee */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x17ee */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x17ee */ unsigned short SpareSameTebBits:6 /* start bit 10 */; }; }; /* off 0x17f0 */ unsigned __int64 TxnScopeEnterCallback; /* off 0x17f8 */ unsigned __int64 TxnScopeExitCallback; /* off 0x1800 */ unsigned __int64 TxnScopeContext; /* off 0x1808 */ unsigned long LockCount; /* off 0x180c */ unsigned long SpareUlong0; /* off 0x1810 */ unsigned __int64 ResourceRetValue; }; struct _KAFFINITY_ENUMERATION_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KAFFINITY_EX* Affinity; /* off 0x0004 */ unsigned long CurrentMask; /* off 0x0008 */ unsigned short CurrentIndex; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _FXSAVE_FORMAT /* sizeof 000001e0 480 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[192]; }; struct _FX_SAVE_AREA /* sizeof 00000210 528 */ { /* off 0x0000 */ union /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT FxArea; } U; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _KSTACK_AREA /* sizeof 00000210 528 */ { union { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT NpxFrame; }; /* off 0x01e0 */ struct _KERNEL_STACK_CONTROL StackControl; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ unsigned long DispatchedCount; /* off 0x0008 */ struct _LIST_ENTRY DispatchedList; /* off 0x0010 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0024 */ struct _LIST_ENTRY CompletedList; }; struct _PO_DEVICE_NOTIFY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _LIST_ENTRY PowerChildren; /* off 0x0010 */ struct _LIST_ENTRY PowerParents; /* off 0x0018 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x001c */ unsigned char OrderLevel; /* off 0x0020 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0024 */ unsigned short* DeviceName; /* off 0x0028 */ unsigned short* DriverName; /* off 0x002c */ unsigned long ChildCount; /* off 0x0030 */ unsigned long ActiveChild; /* off 0x0034 */ unsigned long ParentCount; /* off 0x0038 */ unsigned long ActiveParent; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000174 372 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ unsigned long Level; /* off 0x0014 */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0050 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0060 */ enum _PNP_DEVNODE_STATE State; /* off 0x0064 */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0068 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00b8 */ unsigned long StateHistoryEntry; /* off 0x00bc */ long CompletionStatus; /* off 0x00c0 */ struct _IRP* PendingIrp; /* off 0x00c4 */ unsigned long Flags; /* off 0x00c8 */ unsigned long UserFlags; /* off 0x00cc */ unsigned long Problem; /* off 0x00d0 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x00d4 */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00d8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00dc */ struct _UNICODE_STRING InstancePath; /* off 0x00e4 */ struct _UNICODE_STRING ServiceName; /* off 0x00ec */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00f0 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00f4 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00f8 */ unsigned long BusNumber; /* off 0x00fc */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x0100 */ unsigned long ChildBusNumber; /* off 0x0104 */ unsigned short ChildBusTypeIndex; /* off 0x0106 */ unsigned char RemovalPolicy; /* off 0x0107 */ unsigned char HardwareRemovalPolicy; /* off 0x0108 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x0110 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0118 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0120 */ unsigned short NoTranslatorMask; /* off 0x0122 */ unsigned short QueryTranslatorMask; /* off 0x0124 */ unsigned short NoArbiterMask; /* off 0x0126 */ unsigned short QueryArbiterMask; /* off 0x0128 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x012c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0130 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x0134 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0138 */ unsigned long CapabilityFlags; /* off 0x013c */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x014c */ unsigned long DisableableDepends; /* off 0x0150 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0158 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0160 */ unsigned long DriverUnloadRetryCount; /* off 0x0164 */ struct _DEVICE_NODE* PreviousParent; /* off 0x0168 */ unsigned long DeletedChildren; /* off 0x016c */ unsigned long NumaNodeIndex; /* off 0x0170 */ unsigned char OverrideFlags; /* off 0x0171 */ unsigned char RequiresUnloadedDriver; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _PPC_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; /* off 0x0000 */ struct _PPC_DBGKD_CONTROL_SET PpcControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000020 32 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long PagesQueuedToDisk; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ unsigned long SequentialReadCount; /* off 0x0034 */ unsigned long ReadAheadLength; /* off 0x0038 */ union _LARGE_INTEGER ReadAheadOffset; /* off 0x0040 */ union _LARGE_INTEGER ReadAheadBeyondLastByte; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000150 336 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _EX_PUSH_LOCK VacbLock; /* off 0x004c */ unsigned long DirtyPages; /* off 0x0050 */ struct _LIST_ENTRY LoggedStreamLinks; /* off 0x0058 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0060 */ unsigned long Flags; /* off 0x0064 */ long Status; /* off 0x0068 */ struct _MBCB* Mbcb; /* off 0x006c */ void* Section; /* off 0x0070 */ struct _KEVENT* CreateEvent; /* off 0x0074 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0078 */ unsigned long PagesToWrite; /* off 0x0080 */ __int64 BeyondLastFlush; /* off 0x0088 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x008c */ void* LazyWriteContext; /* off 0x0090 */ struct _LIST_ENTRY PrivateList; /* off 0x0098 */ void* LogHandle; /* off 0x009c */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a0 */ unsigned long DirtyPageThreshold; /* off 0x00a4 */ unsigned long LazyWritePassCount; /* off 0x00a8 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00ac */ struct _KGUARDED_MUTEX BcbLock; /* off 0x00cc */ void* Reserved; /* off 0x00d0 */ struct _KEVENT Event; /* off 0x00e0 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00e8 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0140 */ void* WriteBehindWorkQueueEntry; /* off 0x0144 */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0148 */ unsigned long ProcImagePathHash; /* off 0x014c */ unsigned long WritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY Links; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long VacbArrayIndex; /* off 0x0004 */ unsigned long MappingCount; /* off 0x0008 */ unsigned long HighestMappedIndex; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000088 136 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ __int64 MostRecentlyDirtiedPage; /* off 0x0028 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0048 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0068 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x000c */ unsigned char Function; }; struct VACB_LEVEL_ALLOCATION_LIST /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY VacbLevelList; /* off 0x0008 */ void* VacbLevelWithBcbListHeads; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long AllocAndFreeOps; /* off 0x0044 */ unsigned long InBlockDeccommits; /* off 0x0048 */ unsigned long InBlockDeccomitSize; /* off 0x004c */ unsigned long HighWatermarkSize; /* off 0x0050 */ unsigned long LastPolledSize; /* off 0x0054 */ unsigned long LoggedAllocationSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000140 320 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0134 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; /* off 0x0068 */ void* ContextInformation; /* off 0x006c */ unsigned long OriginalBase; /* off 0x0070 */ union _LARGE_INTEGER LoadTime; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ void* SectionObject; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x000c */ void* SectionHandle; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ struct _ALPC_PORT* OwnerPort; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0004 */ unsigned long TotalHandles; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000fc 252 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ void* CompletionPort; /* off 0x0014 */ void* CompletionKey; /* off 0x0018 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x001c */ void* PortContext; /* off 0x0020 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x005c */ struct _LIST_ENTRY MainQueue; /* off 0x0064 */ struct _LIST_ENTRY PendingQueue; /* off 0x006c */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0074 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x007c */ struct _KSEMAPHORE* Semaphore; /* off 0x007c */ struct _KEVENT* DummyEvent; }; /* off 0x0080 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00ac */ struct _EX_PUSH_LOCK Lock; /* off 0x00b0 */ long SequenceNo; /* off 0x00b4 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b8 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00c0 */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c4 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c8 */ struct _CALLBACK_OBJECT* CallbackObject; /* off 0x00cc */ void* CallbackContext; /* off 0x00d0 */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d8 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; /* off 0x0000 */ unsigned long EnableCompletionList:1 /* start bit 16 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00dc */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00e0 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00e4 */ struct _KALPC_MESSAGE* CachedMessage; /* off 0x00e8 */ unsigned long MainQueueLength; /* off 0x00ec */ unsigned long PendingQueueLength; /* off 0x00f0 */ unsigned long LargeMessageQueueLength; /* off 0x00f4 */ unsigned long CanceledQueueLength; /* off 0x00f8 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ struct _IO_MINI_COMPLETION_PACKET_USER* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[1]; }; struct _IO_MINI_COMPLETION_PACKET_USER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long PacketType; /* off 0x000c */ void* KeyContext; /* off 0x0010 */ void* ApcContext; /* off 0x0014 */ long IoStatus; /* off 0x0018 */ unsigned long IoStatusInformation; /* off 0x001c */ void( __stdcall *MiniPacketCallback)(struct _IO_MINI_COMPLETION_PACKET_USER*,void*); /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned char Allocated; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _CALLBACK_OBJECT /* sizeof 00000000 0 */ { }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; /* off 0x0000 */ unsigned long ViewAttributeRetrieved:1 /* start bit 14 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x005c */ void* DataUserVa; /* off 0x0060 */ void* DataSystemVa; /* off 0x0064 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x0068 */ struct _ALPC_PORT* ConnectionPort; /* off 0x006c */ struct _ETHREAD* ServerThread; /* off 0x0070 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ struct _KALPC_REGION* Region; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ void* Address; /* off 0x0018 */ unsigned long Size; /* off 0x001c */ void* SecureViewHandle; /* off 0x0020 */ void* WriteAccessHandle; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY RegionListEntry; /* off 0x0008 */ struct _KALPC_SECTION* Section; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long ViewSize; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfViews; /* off 0x0020 */ struct _LIST_ENTRY ViewListHead; /* off 0x0028 */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x002c */ struct _KALPC_VIEW* ReadWriteView; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ unsigned long TargetAccess; /* off 0x0010 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0014 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 Spare2 =0x00000015 ,//0 Spare3 =0x00000016 ,//0 WrProcessInSwap =0x00000017 ,//0 WrCpuRateControl =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _ETHREAD* TargetThread; /* off 0x0010 */ struct _ALPC_PORT* TargetPort; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; enum _EX_POOL_PRIORITY { LowPoolPriority =0x00000000 ,//0 LowPoolPrioritySpecialPoolOverrun =0x00000008 ,//0 LowPoolPrioritySpecialPoolUnderrun =0x00000009 ,//0 NormalPoolPriority =0x00000010 ,//0 NormalPoolPrioritySpecialPoolOverrun =0x00000018 ,//0 NormalPoolPrioritySpecialPoolUnderrun =0x00000019 ,//0 HighPoolPriority =0x00000020 ,//0 HighPoolPrioritySpecialPoolOverrun =0x00000028 ,//0 HighPoolPrioritySpecialPoolUnderrun =0x00000029 ,//0 }; enum _LOCK_OPERATION { IoReadAccess =0x00000000 ,//0 IoWriteAccess =0x00000001 ,//0 IoModifyAccess =0x00000002 ,//0 }; union _FILE_SEGMENT_ELEMENT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Buffer; /* off 0x0000 */ unsigned __int64 Alignment; }; struct _RELATIVE_SYMLINK_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short ExposedNamespaceLength; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned short DeviceNameLength; /* off 0x0006 */ unsigned short Reserved; /* off 0x0008 */ struct _RELATIVE_SYMLINK_INFO* InteriorMountPoint; /* off 0x000c */ struct _UNICODE_STRING OpenedName; }; enum _IOP_PRIORITY_HINT { IopIoPriorityNotSet =0x00000000 ,//0 IopIoPriorityVeryLow =0x00000001 ,//0 IopIoPriorityLow =0x00000002 ,//0 IopIoPriorityNormal =0x00000003 ,//0 IopIoPriorityHigh =0x00000004 ,//0 IopIoPriorityCritical =0x00000005 ,//0 MaxIopIoPriorityTypes =0x00000006 ,//0 }; struct _IOP_FILE_OBJECT_EXTENSION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long FoExtFlags; /* off 0x0004 */ void* FoExtPerTypeExtension[7]; /* off 0x0020 */ enum _IOP_PRIORITY_HINT FoIoPriorityHint; }; enum _TRANSFER_TYPE { ReadTransfer =0x00000000 ,//0 WriteTransfer =0x00000001 ,//0 OtherTransfer =0x00000002 ,//0 }; struct _OPEN_PACKET /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ long FinalStatus; /* off 0x000c */ unsigned long Information; /* off 0x0010 */ unsigned long ParseCheck; /* off 0x0014 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0018 */ struct _OBJECT_ATTRIBUTES* OriginalAttributes; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ unsigned long CreateOptions; /* off 0x002c */ unsigned short FileAttributes; /* off 0x002e */ unsigned short ShareAccess; /* off 0x0030 */ void* EaBuffer; /* off 0x0034 */ unsigned long EaLength; /* off 0x0038 */ unsigned long Options; /* off 0x003c */ unsigned long Disposition; /* off 0x0040 */ struct _FILE_BASIC_INFORMATION* BasicInformation; /* off 0x0044 */ struct _FILE_NETWORK_OPEN_INFORMATION* NetworkInformation; /* off 0x0048 */ enum _CREATE_FILE_TYPE CreateFileType; /* off 0x004c */ void* MailslotOrPipeParameters; /* off 0x0050 */ unsigned char Override; /* off 0x0051 */ unsigned char QueryOnly; /* off 0x0052 */ unsigned char DeleteOnly; /* off 0x0053 */ unsigned char FullAttributes; /* off 0x0054 */ struct _DUMMY_FILE_OBJECT* LocalFileObject; /* off 0x0058 */ unsigned long InternalFlags; /* off 0x005c */ struct _IO_DRIVER_CREATE_CONTEXT DriverCreateContext; }; enum _CREATE_FILE_TYPE { CreateFileTypeNone =0x00000000 ,//0 CreateFileTypeNamedPipe =0x00000001 ,//0 CreateFileTypeMailslot =0x00000002 ,//0 }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _EX_PUSH_LOCK Lock; /* off 0x000c */ unsigned char TypeIndex; /* off 0x000d */ unsigned char TraceFlags; /* off 0x000e */ unsigned char InfoMask; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _DUMMY_FILE_OBJECT /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _OBJECT_HEADER ObjectHeader; /* off 0x0020 */ char FileObjectBody[128]; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ char ProbeMode; /* off 0x000c */ unsigned long PagedPoolCharge; /* off 0x0010 */ unsigned long NonPagedPoolCharge; /* off 0x0014 */ unsigned long SecurityDescriptorCharge; /* off 0x0018 */ void* SecurityDescriptor; /* off 0x001c */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; union { /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0010 */ union _LARGE_INTEGER StartPerfClock; }; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ union _LARGE_INTEGER StartTime; /* off 0x0038 */ struct _LIST_ENTRY GlobalEntry; struct { /* off 0x0038 */ void* Pointer0; /* off 0x003c */ void* Pointer1; }; }; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000260 608 */ { /* off 0x0000 */ unsigned long LoggerId; /* off 0x0004 */ unsigned long BufferSize; /* off 0x0008 */ unsigned long MaximumEventSize; /* off 0x000c */ long CollectionOn; /* off 0x0010 */ unsigned long LoggerMode; /* off 0x0014 */ long AcceptNewEvents; /* off 0x0018 */ __int64( __stdcall *GetCpuClock)(); /* off 0x001c */ struct _LIST_ENTRY LoggerListEntry; /* off 0x0028 */ union _LARGE_INTEGER StartTime; /* off 0x0030 */ void* LogFileHandle; /* off 0x0034 */ struct _ETHREAD* LoggerThread; /* off 0x0038 */ long LoggerStatus; /* off 0x003c */ void* NBQHead; /* off 0x0040 */ void* OverflowNBQHead; /* off 0x0048 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0050 */ struct _LIST_ENTRY GlobalList; union { /* off 0x0058 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0058 */ struct _EX_FAST_REF CurrentBuffer; }; /* off 0x005c */ struct _UNICODE_STRING LoggerName; /* off 0x0064 */ struct _UNICODE_STRING LogFileName; /* off 0x006c */ struct _UNICODE_STRING LogFilePattern; /* off 0x0074 */ struct _UNICODE_STRING NewLogFileName; /* off 0x007c */ unsigned long ClockType; /* off 0x0080 */ unsigned long MaximumFileSize; /* off 0x0084 */ unsigned long LastFlushedBuffer; /* off 0x0088 */ unsigned long FlushTimer; /* off 0x008c */ unsigned long FlushThreshold; /* off 0x0090 */ union _LARGE_INTEGER ByteOffset; /* off 0x0098 */ unsigned long MinimumBuffers; /* off 0x009c */ long BuffersAvailable; /* off 0x00a0 */ long NumberOfBuffers; /* off 0x00a4 */ unsigned long MaximumBuffers; /* off 0x00a8 */ unsigned long EventsLost; /* off 0x00ac */ unsigned long BuffersWritten; /* off 0x00b0 */ unsigned long LogBuffersLost; /* off 0x00b4 */ unsigned long RealTimeBuffersDelivered; /* off 0x00b8 */ unsigned long RealTimeBuffersLost; /* off 0x00bc */ long* SequencePtr; /* off 0x00c0 */ unsigned long LocalSequence; /* off 0x00c4 */ struct _GUID InstanceGuid; /* off 0x00d4 */ long FileCounter; /* off 0x00d8 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00dc */ enum _POOL_TYPE PoolType; /* off 0x00e0 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00f0 */ unsigned char RealtimeLoggerContextFreed; /* off 0x00f4 */ struct _LIST_ENTRY Consumers; /* off 0x00fc */ unsigned long NumConsumers; /* off 0x0100 */ struct _ETW_REALTIME_CONSUMER* TransitionConsumer; /* off 0x0104 */ void* RealtimeLogfileHandle; /* off 0x0108 */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0110 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0120 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0128 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0130 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0138 */ unsigned long RealtimeBuffersSaved; /* off 0x0140 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0150 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x0154 */ struct _KEVENT LoggerEvent; /* off 0x0164 */ struct _KEVENT FlushEvent; /* off 0x0174 */ struct _KDPC FlushDpc; /* off 0x0194 */ struct _KMUTANT LoggerMutex; /* off 0x01b4 */ struct _EX_PUSH_LOCK LoggerLock; union { /* off 0x01b8 */ unsigned long BufferListSpinLock; /* off 0x01b8 */ struct _EX_PUSH_LOCK BufferListPushLock; }; /* off 0x01bc */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x01f8 */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0200 */ struct _WMI_BUFFER_HEADER DummyBufferForMarker; /* off 0x0248 */ __int64 BufferSequenceNumber; union { /* off 0x0250 */ unsigned long Flags; struct { /* off 0x0250 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0250 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0250 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0250 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0250 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0250 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0250 */ unsigned long NoMoreEnable:1 /* start bit 6 */; /* off 0x0250 */ unsigned long StackTracing:1 /* start bit 7 */; /* off 0x0250 */ unsigned long ErrorLogged:1 /* start bit 8 */; }; }; union { /* off 0x0254 */ unsigned long RequestFlag; struct { /* off 0x0254 */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x0254 */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x0254 */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x0254 */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x0254 */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; /* off 0x0254 */ unsigned long RequestConnectConsumer:1 /* start bit 5 */; }; }; /* off 0x0258 */ struct _RTL_BITMAP HookIdMap; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; struct _ETW_REALTIME_CONSUMER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ void* ProcessHandle; /* off 0x000c */ struct _EPROCESS* ProcessObject; /* off 0x0010 */ void* NextNotDelivered; /* off 0x0014 */ void* RealtimeConnectContext; /* off 0x0018 */ struct _KEVENT* DisconnectEvent; /* off 0x001c */ struct _KEVENT* DataAvailableEvent; /* off 0x0020 */ unsigned long* UserBufferCount; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY* UserBufferListHead; /* off 0x0028 */ unsigned long BuffersLost; /* off 0x002c */ unsigned long EmptyBuffersCount; /* off 0x0030 */ unsigned long LoggerId; /* off 0x0034 */ unsigned char ShutDownRequested; /* off 0x0035 */ unsigned char NewBuffersLost; /* off 0x0036 */ unsigned char Disconnected; /* off 0x0038 */ struct _RTL_BITMAP ReservedBufferSpaceBitMap; /* off 0x0040 */ unsigned char* ReservedBufferSpace; /* off 0x0044 */ unsigned long ReservedBufferSpaceSize; /* off 0x0048 */ unsigned long UserPagesAllocated; /* off 0x004c */ unsigned long UserPagesReused; }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _ETW_LOGGER_HANDLE /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char DereferenceAndLeave; }; struct _ETW_BUFFER_HANDLE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _WMI_BUFFER_HEADER* TraceBuffer; /* off 0x0004 */ struct _EX_FAST_REF* BufferFastRef; }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; struct _NBQUEUE_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SListEntry; /* off 0x0008 */ unsigned __int64 Next; /* off 0x0010 */ unsigned __int64 Data; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000178 376 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; union { /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0028 */ unsigned __int64 MatchId; }; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; /* off 0x0158 */ struct _EVENT_FILTER_HEADER* FilterData[8]; }; struct _EVENT_FILTER_HEADER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Reserved[5]; /* off 0x0008 */ unsigned __int64 InstanceId; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long NextOffset; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c0 */ struct _LUID OriginatingLogonSession; /* off 0x00c8 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0150 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01d8 */ struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION* pSecurityAttributes; /* off 0x01dc */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long SecurityAttributeCount; /* off 0x0004 */ struct _LIST_ENTRY SecurityAttributesList; /* off 0x000c */ unsigned long WorkingSecurityAttributeCount; /* off 0x0010 */ struct _LIST_ENTRY WorkingSecurityAttributesList; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ void* SecurityDescriptorQuotaBlock; }; struct _OBJECT_HEADER_PROCESS_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* ExclusiveProcess; /* off 0x0004 */ unsigned long Reserved; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ long ReferenceCount; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x000f */ unsigned char LockedExclusive; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _VI_CANCEL_GLOBALS /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long CancelLock; /* off 0x0004 */ unsigned long IssueLock; /* off 0x0008 */ long Counters[25]; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ struct _KAFFINITY_EX Processors; /* off 0x0018 */ unsigned long SamplingPeriod; /* off 0x001c */ unsigned long CurrentTemperature; /* off 0x0020 */ unsigned long PassiveTripPoint; /* off 0x0024 */ unsigned long CriticalTripPoint; /* off 0x0028 */ unsigned char ActiveTripPointCount; /* off 0x002c */ unsigned long ActiveTripPoint[10]; /* off 0x0054 */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; /* off 0x0008 */ unsigned long Tag; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 00000048 72 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; /* off 0x003c */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0044 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001034 4148 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; /* off 0x0004 */ unsigned long PoolIndex; /* off 0x0008 */ long RunningAllocs; /* off 0x000c */ long RunningDeAllocs; /* off 0x0010 */ long TotalPages; /* off 0x0014 */ long TotalBigPages; /* off 0x0018 */ unsigned long Threshold; /* off 0x001c */ void* LockAddress; /* off 0x0020 */ void** PendingFrees; /* off 0x0024 */ long ThreadsProcessingDeferrals; /* off 0x0028 */ long PendingFreeDepth; /* off 0x002c */ unsigned long TotalBytes; /* off 0x0030 */ unsigned long Spare0; /* off 0x0034 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000278 632 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ unsigned long Number; /* off 0x0038 */ unsigned char ShareVector; /* off 0x0039 */ char Pad[3]; /* off 0x003c */ enum _KINTERRUPT_MODE Mode; /* off 0x0040 */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0044 */ unsigned long ServiceCount; /* off 0x0048 */ unsigned long DispatchCount; /* off 0x0050 */ unsigned __int64 Rsvd1; /* off 0x0058 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ unsigned long CmKcbCacheSize; /* off 0x001c */ struct _CMHIVE* CmHive2; /* off 0x0020 */ unsigned char HiveMounted; /* off 0x0021 */ unsigned char ThreadFinished; /* off 0x0022 */ unsigned char ThreadStarted; /* off 0x0023 */ unsigned char Allocate; /* off 0x0024 */ unsigned char WinPERequired; /* off 0x0028 */ struct _KEVENT StartEvent; /* off 0x0038 */ struct _KEVENT FinishedEvent; /* off 0x0048 */ struct _KEVENT MountLock; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ void* StackTrace[63]; }; struct _LAZY_WRITER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _KDPC ScanDpc; /* off 0x0020 */ struct _KTIMER ScanTimer; /* off 0x0048 */ unsigned char ScanActive; /* off 0x0049 */ unsigned char OtherWork; /* off 0x004a */ unsigned char PendingTeardown; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; struct _IO_WORKITEM /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ void( __stdcall *Routine)(void*,void*,struct _IO_WORKITEM*); /* off 0x0014 */ void* IoObject; /* off 0x0018 */ void* Context; /* off 0x001c */ unsigned long Type; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_LSASS_ID =0x0000008a ,//0 DPFLTR_SSPICLI_ID =0x0000008b ,//0 DPFLTR_CNG_ID =0x0000008c ,//0 DPFLTR_EXFAT_ID =0x0000008d ,//0 DPFLTR_FILETRACE_ID =0x0000008e ,//0 DPFLTR_XSAVE_ID =0x0000008f ,//0 DPFLTR_SE_ID =0x00000090 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000091 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; /* off 0x0078 */ unsigned long ActivityCounter; /* off 0x007c */ unsigned long PreviousActivityCounter; /* off 0x0080 */ unsigned long WorkerTrimRequests; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; enum _VI_CNT_INDEX_TYPE { VF_CNT_IRPS_TOTAL_COUNT =0x00000000 ,//0 VF_CNT_IRPS_NOT_A_TARGET =0x00000001 ,//0 VF_CNT_IRPS_KMODE =0x00000002 ,//0 VF_CNT_IRPS_SKIP_FLAGS =0x00000003 ,//0 VF_CNT_IRPS_ALREADY_HOOKED =0x00000004 ,//0 VF_CNT_IRPS_WILL_ATTEMPT_CANCEL =0x00000005 ,//0 VF_CNT_IRPS_WILL_NOT_CANCEL =0x00000006 ,//0 VF_CNT_REAL_RACE_FOR_COMPLETION =0x00000007 ,//0 VF_CNT_IRPS_COMPLETED_BY_DRIVER =0x00000008 ,//0 VF_CNT_IRPS_COMPLETED_BY_CANCEL =0x00000009 ,//0 VF_CNT_IRPS_NO_CANCEL_ROUTINE =0x0000000a ,//0 VF_CNT_IRPS_CANCEL_RETURNED_TRUE =0x0000000b ,//0 VF_CNT_IRPS_CANCEL_RETURNED_FALSE =0x0000000c ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NO_CHECK =0x0000000d ,//0 VF_CNT_IRP_CANCEL_ROUTINE_NEVER =0x0000000e ,//0 VF_CNT_IRP_CANCEL_ROUTINE_SOMETIMES =0x0000000f ,//0 VF_CNT_EXTRA_ALLOCS =0x00000010 ,//0 VF_CNT_EXTRA_FREES =0x00000011 ,//0 VF_CNT_CALLS_TO_TIMER_DPC =0x00000012 ,//0 VF_CNT_CALLS_TO_CANCEL_WORKER =0x00000013 ,//0 VF_CNT_FREE_FROM_CANCEL_ROUTINE =0x00000014 ,//0 VF_CNT_FREE_FROM_COMPLETION_ROUTINE =0x00000015 ,//0 VF_CNT_ISSUES_LOGGED =0x00000016 ,//0 VF_CNT_CANCEL_AND_COMPLETE_DIFFERENT_THREADS =0x00000017 ,//0 VF_CNT_IRPS_TOO_MANY_UNDER_WATCH =0x00000018 ,//0 VF_CNT_MAX_INDEX =0x00000019 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POWER_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE_METRICS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _ERESOURCE MetricsResource; /* off 0x0038 */ unsigned long ActiveCount; /* off 0x003c */ unsigned long PassiveCount; /* off 0x0040 */ union _LARGE_INTEGER LastActiveStartTick; /* off 0x0048 */ union _LARGE_INTEGER AverageActiveTime; /* off 0x0050 */ union _LARGE_INTEGER LastPassiveStartTick; /* off 0x0058 */ union _LARGE_INTEGER AveragePassiveTime; /* off 0x0060 */ union _LARGE_INTEGER StartTickSinceLastReset; }; struct _POP_THERMAL_ZONE /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; /* off 0x00e0 */ union _LARGE_INTEGER InfoLastUpdateTime; /* off 0x00e8 */ struct _POP_THERMAL_ZONE_METRICS Metrics; }; enum POWER_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPoolPaged =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaSpecialPoolNonPaged =0x0000000d ,//0 MiVaMaximumType =0x0000000e ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct _VF_AVL_TREE_NODE /* sizeof 00000008 8 */ { /* off 0x0000 */ void* p; /* off 0x0004 */ unsigned long RangeSize; }; struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VERIFIER_SHARED_EXPORT_THUNK* SharedExportThunks; /* off 0x0004 */ struct _VERIFIER_SHARED_EXPORT_THUNK* PoolSharedExportThunks; /* off 0x0008 */ struct _VERIFIER_SHARED_EXPORT_THUNK* OrderDependentSharedExportThunks; }; struct _VF_TARGET_DRIVER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _VF_AVL_TREE_NODE TreeNode; /* off 0x0008 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SnapSharedExportsFailed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; } u1; /* off 0x0014 */ struct _VF_TARGET_VERIFIED_DRIVER_DATA* VerifiedData; }; struct _VERIFIER_SHARED_EXPORT_THUNK /* sizeof 00000000 0 */ { }; struct _VF_TARGET_VERIFIED_DRIVER_DATA /* sizeof 00000090 144 */ { /* off 0x0000 */ void* WMICallback; /* off 0x0004 */ struct _LIST_ENTRY EtwHandlesListHead; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MissedEtwRegistration:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0010 */ unsigned long Signature; /* off 0x0018 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0020 */ union _SLIST_HEADER PoolTrackers; /* off 0x0028 */ unsigned long CurrentPagedPoolAllocations; /* off 0x002c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0030 */ unsigned long PeakPagedPoolAllocations; /* off 0x0034 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0038 */ unsigned long PagedBytes; /* off 0x003c */ unsigned long NonPagedBytes; /* off 0x0040 */ unsigned long PeakPagedBytes; /* off 0x0044 */ unsigned long PeakNonPagedBytes; /* off 0x0048 */ unsigned long RaiseIrqls; /* off 0x004c */ unsigned long AcquireSpinLocks; /* off 0x0050 */ unsigned long SynchronizeExecutions; /* off 0x0054 */ unsigned long AllocationsWithNoTag; /* off 0x0058 */ unsigned long AllocationsFailed; /* off 0x005c */ unsigned long AllocationsFailedDeliberately; /* off 0x0060 */ unsigned long LockedBytes; /* off 0x0064 */ unsigned long PeakLockedBytes; /* off 0x0068 */ unsigned long MappedLockedBytes; /* off 0x006c */ unsigned long PeakMappedLockedBytes; /* off 0x0070 */ unsigned long MappedIoSpaceBytes; /* off 0x0074 */ unsigned long PeakMappedIoSpaceBytes; /* off 0x0078 */ unsigned long PagesForMdlBytes; /* off 0x007c */ unsigned long PeakPagesForMdlBytes; /* off 0x0080 */ unsigned long ContiguousMemoryBytes; /* off 0x0084 */ unsigned long PeakContiguousMemoryBytes; /* off 0x0088 */ struct _LIST_ENTRY ContiguousMemoryListHead; }; struct _VF_SUSPECT_DRIVER_ENTRY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ void* BaseAddress; /* off 0x0014 */ struct _UNICODE_STRING BaseName; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _KWAIT_STATE { WaitInProgress =0x00000000 ,//0 WaitCommitted =0x00000001 ,//0 WaitAborted =0x00000002 ,//0 MaximumWaitState =0x00000003 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct _POP_SYSTEM_IDLE /* sizeof 00000038 56 */ { /* off 0x0000 */ long AverageIdleness; /* off 0x0004 */ long LowestIdleness; /* off 0x0008 */ unsigned long Time; /* off 0x000c */ unsigned long Timeout; /* off 0x0010 */ unsigned long LastUserInput; /* off 0x0014 */ struct POWER_ACTION_POLICY Action; /* off 0x0020 */ enum _SYSTEM_POWER_STATE MinState; /* off 0x0024 */ unsigned char SystemRequired; /* off 0x0025 */ unsigned char IdleWorker; /* off 0x0026 */ unsigned char Sampling; /* off 0x0028 */ unsigned __int64 LastTick; /* off 0x0030 */ unsigned long LastSystemRequiredTime; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 0 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; } Flags; /* off 0x0030 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x003c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long PStateContext; /* off 0x0044 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0048 */ unsigned long TStateContext; /* off 0x004c */ unsigned long( __fastcall *FeedbackHandler)(unsigned char); /* off 0x0050 */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0058 */ struct _PPM_PERF_STATE State[1]; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000b0 176 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POWER_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ unsigned __int64 ProgrammedRTCTime; /* off 0x0058 */ unsigned char WakeOnRTC; /* off 0x005c */ struct _DIAGNOSTIC_BUFFER* WakeTimerInfo; /* off 0x0060 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000170 368 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[9]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0190 */ struct _LIST_ENTRY Pending; /* off 0x0198 */ long Status; /* off 0x019c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x01a0 */ unsigned char Waking; /* off 0x01a1 */ unsigned char Cancelled; /* off 0x01a2 */ unsigned char IgnoreErrors; /* off 0x01a3 */ unsigned char IgnoreNotImplemented; /* off 0x01a4 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_HIBER_CONTEXT /* sizeof 000000a8 168 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char VerifyOnWake; /* off 0x0004 */ unsigned char Reset; /* off 0x0005 */ unsigned char HiberFlags; /* off 0x0006 */ unsigned char WroteHiberFile; /* off 0x0008 */ unsigned long Lock; /* off 0x000c */ unsigned char MapFrozen; /* off 0x0010 */ struct _RTL_BITMAP MemoryMap; /* off 0x0018 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0020 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0028 */ unsigned long ClonedRangeCount; /* off 0x002c */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0030 */ unsigned long NextPreserve; /* off 0x0034 */ struct _MDL* LoaderMdl; /* off 0x0038 */ struct _MDL* AllocatedMdl; /* off 0x0040 */ unsigned __int64 PagesOut; /* off 0x0048 */ void* IoPages; /* off 0x004c */ unsigned long IoPagesCount; /* off 0x0050 */ void* CurrentMcb; /* off 0x0054 */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0058 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x005c */ unsigned long PreferredIoWriteSize; /* off 0x0060 */ unsigned long IoProgress; /* off 0x0064 */ unsigned long HiberVa; /* off 0x0068 */ union _LARGE_INTEGER HiberPte; /* off 0x0070 */ long Status; /* off 0x0074 */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0078 */ unsigned char* CompressionWorkspace; /* off 0x007c */ unsigned char* CompressedWriteBuffer; /* off 0x0080 */ unsigned long CompressedWriteBufferSize; /* off 0x0084 */ unsigned long MaxCompressedOutputSize; /* off 0x0088 */ unsigned long* PerformanceStats; /* off 0x008c */ void* CompressionBlock; /* off 0x0090 */ void* DmaIO; /* off 0x0094 */ void* TemporaryHeap; /* off 0x0098 */ struct _MDL* BootLoaderLogMdl; /* off 0x009c */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x00a0 */ void* ResumeContext; /* off 0x00a4 */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct _PO_HIBER_PERF /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 ElapsedTicks; /* off 0x0020 */ unsigned __int64 CompressTicks; /* off 0x0028 */ unsigned __int64 ResumeAppTime; /* off 0x0030 */ unsigned __int64 HiberFileResumeTime; /* off 0x0038 */ unsigned __int64 BytesCopied; /* off 0x0040 */ unsigned __int64 PagesProcessed; /* off 0x0048 */ unsigned long PagesWritten; /* off 0x004c */ unsigned long DumpCount; /* off 0x0050 */ unsigned long FileRuns; }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long FirstTablePage; /* off 0x0050 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00a8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00ac */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00b0 */ unsigned long NoBootLoaderLogPages; /* off 0x00b4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00d4 */ unsigned long NotUsed; /* off 0x00d8 */ unsigned long ResumeContextCheck; /* off 0x00dc */ unsigned long ResumeContextPages; }; struct _DIAGNOSTIC_BUFFER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0008 */ unsigned long ProcessImageNameOffset; union { struct { /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ unsigned long ServiceTag; }; struct { /* off 0x0008 */ unsigned long DeviceDescriptionOffset; }; struct { /* off 0x000c */ unsigned long DevicePathOffset; }; }; }; }; /* off 0x0014 */ unsigned long ReasonOffset; }; enum _REQUESTER_TYPE { KernelRequester =0x00000000 ,//0 UserProcessRequester =0x00000001 ,//0 UserSharedServiceRequester =0x00000002 ,//0 }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ unsigned long SessionId; /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL_PTE_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _MMPTE FreePteHead; /* off 0x0008 */ struct _MMPTE FreePteTail; }; struct _MI_SPECIAL_POOL /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ unsigned long Lock; /* off 0x0008 */ struct _MI_SPECIAL_POOL_PTE_LIST Paged; /* off 0x0018 */ struct _MI_SPECIAL_POOL_PTE_LIST NonPaged; /* off 0x0028 */ long PagesInUse; /* off 0x002c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Hint; /* off 0x000c */ struct _MMPTE* BasePte; /* off 0x0010 */ unsigned long* FailureCount; /* off 0x0014 */ struct _MMSUPPORT* Vm; /* off 0x0018 */ long TotalSystemPtes; /* off 0x001c */ long TotalFreeSystemPtes; /* off 0x0020 */ long CachedPteCount; /* off 0x0024 */ unsigned long PteFailures; /* off 0x0028 */ struct _KGUARDED_MUTEX* GlobalMutex; }; struct _MM_SESSION_SPACE /* sizeof 00001f00 7936 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ long ImageLoadingCount; /* off 0x0044 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0054 */ struct _LIST_ENTRY ImageList; /* off 0x005c */ unsigned long LocaleId; /* off 0x0060 */ unsigned long AttachCount; /* off 0x0064 */ struct _KGATE AttachGate; /* off 0x0074 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0dd8 */ struct _MMWSLE* Wsle; /* off 0x0ddc */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0de0 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1e14 */ struct _MMPTE* PageTables; /* off 0x1e18 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1e50 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1e70 */ long PoolBigEntriesInUse; /* off 0x1e74 */ unsigned long PagedPoolPdeCount; /* off 0x1e78 */ unsigned long SpecialPoolPdeCount; /* off 0x1e7c */ unsigned long DynamicSessionPdeCount; /* off 0x1e80 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1eac */ void* PoolTrackTableExpansion; /* off 0x1eb0 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1eb4 */ void* PoolTrackBigPages; /* off 0x1eb8 */ unsigned long PoolTrackBigPagesSize; /* off 0x1ebc */ enum _IO_SESSION_STATE IoState; /* off 0x1ec0 */ struct _KEVENT IoNotificationEvent; /* off 0x1ed0 */ struct _RTL_BITMAP SessionPoolPdes; /* off 0x1ed8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _MMVIEW /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; /* off 0x0008 */ struct _LIST_ENTRY ViewLinks; /* off 0x0010 */ void* SessionViewVa; /* off 0x0014 */ unsigned long SessionId; }; enum _IO_SESSION_STATE { IoSessionStateCreated =0x00000001 ,//0 IoSessionStateInitialized =0x00000002 ,//0 IoSessionStateConnected =0x00000003 ,//0 IoSessionStateDisconnected =0x00000004 ,//0 IoSessionStateDisconnectedLoggedOn =0x00000005 ,//0 IoSessionStateLoggedOn =0x00000006 ,//0 IoSessionStateLoggedOff =0x00000007 ,//0 IoSessionStateTerminated =0x00000008 ,//0 IoSessionStateMax =0x00000009 ,//0 }; union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR_SECTION /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockInStackQueuedSpinLock =0x00000006 ,//0 VfDeadlockUnusedSpinLock =0x00000007 ,//0 VfDeadlockEresource =0x00000008 ,//0 VfDeadlockTypeMaximum =0x00000009 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; /* off 0x001c */ unsigned char ThreadUsesEresources; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; enum _MI_VAD_TYPE { VadNone =0x00000000 ,//0 VadDevicePhysicalMemory =0x00000001 ,//0 VadImageMap =0x00000002 ,//0 VadAwe =0x00000003 ,//0 VadWriteWatch =0x00000004 ,//0 VadLargePages =0x00000005 ,//0 VadRotatePhysical =0x00000006 ,//0 VadLargePageSection =0x00000007 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _VF_KE_CRITICAL_REGION_TRACE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[7]; }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; enum _KWAIT_BLOCK_STATE { WaitBlockBypassStart =0x00000000 ,//0 WaitBlockBypassComplete =0x00000001 ,//0 WaitBlockActive =0x00000002 ,//0 WaitBlockInactive =0x00000003 ,//0 WaitBlockAllStates =0x00000004 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _VF_AVL_TREE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _VF_AVL_TABLE* Tables; /* off 0x0004 */ unsigned long TablesNo; /* off 0x0008 */ struct _LIST_ENTRY ListEntry; /* off 0x0010 */ unsigned long NodeRangeSize; /* off 0x0014 */ unsigned long Lock; /* off 0x0018 */ struct _KTHREAD* LockOwnerThread; /* off 0x001c */ unsigned long NodeCount; }; struct _VF_AVL_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE RtlTable; /* off 0x0038 */ struct _VF_AVL_TREE_NODE* ReservedNode; }; enum _KPROCESS_STATE { ProcessInMemory =0x00000000 ,//0 ProcessOutOfMemory =0x00000001 ,//0 ProcessInTransition =0x00000002 ,//0 ProcessOutTransition =0x00000003 ,//0 ProcessInSwap =0x00000004 ,//0 ProcessOutSwap =0x00000005 ,//0 ProcessAllSwapStates =0x00000006 ,//0 }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; enum _WORKING_SET_TYPE { WorkingSetTypeUser =0x00000000 ,//0 WorkingSetTypeSession =0x00000001 ,//0 WorkingSetTypeSystemTypes =0x00000002 ,//0 WorkingSetTypeSystemCache =0x00000002 ,//0 WorkingSetTypePagedPool =0x00000003 ,//0 WorkingSetTypeSystemPtes =0x00000004 ,//0 WorkingSetTypeMaximum =0x00000005 ,//0 }; struct _VF_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VF_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VF_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000044 68 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 00000020 32 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned long Flags; /* off 0x0014 */ unsigned long SessionId; /* off 0x0018 */ unsigned long DataLength; /* off 0x001c */ unsigned char Data[1]; } PowerSettingNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } PropertyChangeNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000064 100 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 VetoEvent =0x00000006 ,//0 BlockedDriverEvent =0x00000007 ,//0 InvalidIDEvent =0x00000008 ,//0 DevicePropertyChangeEvent =0x00000009 ,//0 DeviceInstanceRemovalEvent =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _FILE_OBJECT_EXTENSION_TYPE { FoExtTypeTransactionParams =0x00000000 ,//0 FoExtTypeDeviceObjectHint =0x00000001 ,//0 FoExtTypeIosbRange =0x00000002 ,//0 FoExtTypeGeneric =0x00000003 ,//0 FoExtTypeSfio =0x00000004 ,//0 FoExtTypeSymlink =0x00000005 ,//0 FoExtTypeOplockKey =0x00000006 ,//0 MaxFoExtTypes =0x00000007 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000024 36 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_6.1.7100.0.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _XSTATE_FEATURE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long Size; }; struct _XSTATE_CONFIGURATION /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned __int64 EnabledFeatures; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long OptimizedSave:1 /* start bit 0 */; /* off 0x0010 */ struct _XSTATE_FEATURE Features[64]; }; struct _KUSER_SHARED_DATA /* sizeof 000005f0 1520 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c4 */ unsigned long AltArchitecturePad[1]; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02ed */ unsigned char TscQpcData; struct { /* off 0x02ed */ unsigned char TscQpcEnabled:1 /* start bit 0 */; /* off 0x02ed */ unsigned char TscQpcSpareFlag:1 /* start bit 1 */; /* off 0x02ed */ unsigned char TscQpcShift:6 /* start bit 2 */; }; }; /* off 0x02ee */ unsigned char TscQpcPad[2]; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f4 */ unsigned long DataFlagsPad[1]; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; /* off 0x0320 */ unsigned long ReservedTickCountOverlay[3]; }; /* off 0x032c */ unsigned long TickCountPad[1]; /* off 0x0330 */ unsigned long Cookie; /* off 0x0334 */ unsigned long CookiePad[1]; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[16]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; /* off 0x03a8 */ unsigned __int64 Reserved5; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; /* off 0x03b8 */ unsigned __int64 TscQpcBias; /* off 0x03c0 */ unsigned long ActiveProcessorCount; /* off 0x03c4 */ unsigned short ActiveGroupCount; /* off 0x03c6 */ unsigned short Reserved4; /* off 0x03c8 */ unsigned long AitSamplingValue; /* off 0x03cc */ unsigned long AppCompatFlag; /* off 0x03d0 */ unsigned __int64 SystemDllNativeRelocation; /* off 0x03d8 */ unsigned long SystemDllWowRelocation; /* off 0x03dc */ unsigned long XStatePad[1]; /* off 0x03e0 */ struct _XSTATE_CONFIGURATION XState; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON_V3 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Persistent:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Private:30 /* start bit 2 */; } s; } u; /* off 0x0020 */ enum _TP_CALLBACK_PRIORITY CallbackPriority; /* off 0x0024 */ unsigned long Size; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; enum _TP_CALLBACK_PRIORITY { TP_CALLBACK_PRIORITY_HIGH =0x00000000 ,//0 TP_CALLBACK_PRIORITY_NORMAL =0x00000001 ,//0 TP_CALLBACK_PRIORITY_LOW =0x00000002 ,//0 TP_CALLBACK_PRIORITY_INVALID =0x00000003 ,//0 }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _TP_NBQ_GUARD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY GuardLinks; /* off 0x0008 */ void* Guards[2]; }; struct _TP_TASK /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; /* off 0x000c */ struct _TP_NBQ_GUARD PostGuard; /* off 0x001c */ void* NBQNode; }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_DIRECT /* sizeof 0000000c 12 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _PROCESSOR_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Reserved; }; struct _TEB /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ void* ResourceRetValue; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _PEB /* sizeof 00000248 584 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ProcessUsingFTH:1 /* start bit 4 */; /* off 0x0028 */ unsigned long ReservedBits0:27 /* start bit 5 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long AtlThunkSListPtr32; /* off 0x0038 */ void* ApiSetMap; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; /* off 0x0238 */ void* pContextData; /* off 0x023c */ void* pImageHeaderHash; union { /* off 0x0240 */ unsigned long TracingFlags; struct { /* off 0x0240 */ unsigned long HeapTracingEnabled:1 /* start bit 0 */; /* off 0x0240 */ unsigned long CritSecTracingEnabled:1 /* start bit 1 */; /* off 0x0240 */ unsigned long SpareTracingBits:30 /* start bit 2 */; }; }; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000298 664 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; /* off 0x0294 */ unsigned long EnvironmentVersion; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ChainHead; /* off 0x0004 */ struct _LIST_ENTRY* PrevLinkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY Linkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry; /* off 0x000c */ struct _LIST_ENTRY* ChainHead; /* off 0x0010 */ unsigned long BucketIndex; }; struct _RTL_DYNAMIC_HASH_TABLE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long Shift; /* off 0x0008 */ unsigned long TableSize; /* off 0x000c */ unsigned long Pivot; /* off 0x0010 */ unsigned long DivisorMask; /* off 0x0014 */ unsigned long NumEntries; /* off 0x0018 */ unsigned long NonEmptyBuckets; /* off 0x001c */ unsigned long NumEnumerators; /* off 0x0020 */ void* Directory; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char TimerControlFlags; struct { /* off 0x0001 */ unsigned char Absolute:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Coalescable:1 /* start bit 1 */; /* off 0x0001 */ unsigned char KeepShifting:1 /* start bit 2 */; /* off 0x0001 */ unsigned char EncodedTolerableDelay:5 /* start bit 3 */; }; /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char ThreadControlFlags; struct { /* off 0x0002 */ unsigned char CpuThrottled:1 /* start bit 0 */; /* off 0x0002 */ unsigned char CycleProfiling:1 /* start bit 1 */; /* off 0x0002 */ unsigned char CounterProfiling:1 /* start bit 2 */; /* off 0x0002 */ unsigned char Reserved:5 /* start bit 3 */; }; /* off 0x0002 */ unsigned char Hand; /* off 0x0002 */ unsigned char Size; }; union { /* off 0x0003 */ unsigned char TimerMiscFlags; struct { /* off 0x0003 */ unsigned char Index:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Processor:5 /* start bit 1 */; /* off 0x0003 */ unsigned char Inserted:1 /* start bit 6 */; /* off 0x0003 */ unsigned char Expired:1 /* start bit 7 */; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char ActiveDR7:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Instrumented:1 /* start bit 1 */; /* off 0x0003 */ unsigned char Reserved2:4 /* start bit 2 */; /* off 0x0003 */ unsigned char UmsScheduled:1 /* start bit 6 */; /* off 0x0003 */ unsigned char UmsPrimary:1 /* start bit 7 */; }; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ struct _LIST_ENTRY Entry; /* off 0x0010 */ union _ULARGE_INTEGER Time; }; struct _KTIMER_TABLE /* sizeof 00001840 6208 */ { /* off 0x0000 */ struct _KTIMER* TimerExpiry[16]; /* off 0x0040 */ struct _KTIMER_TABLE_ENTRY TimerEntries[256]; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _PPM_FFH_THROTTLE_STATE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char EnableLogging; /* off 0x0004 */ unsigned long MismatchCount; /* off 0x0008 */ unsigned char Initialized; /* off 0x0010 */ unsigned __int64 LastValue; /* off 0x0018 */ union _LARGE_INTEGER LastLogTickCount; }; struct _PROC_IDLE_SNAP /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Time; /* off 0x0008 */ unsigned __int64 Idle; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 IdleTimeLast; /* off 0x0010 */ unsigned __int64 IdleTimeTotal; /* off 0x0018 */ unsigned __int64 IdleTimeEntry; /* off 0x0020 */ struct _PROC_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ enum _PROC_HYPERVISOR_STATE Hypervisor; /* off 0x0028 */ unsigned long PerfHistoryTotal; /* off 0x002c */ unsigned char ThermalConstraint; /* off 0x002d */ unsigned char PerfHistoryCount; /* off 0x002e */ unsigned char PerfHistorySlot; /* off 0x002f */ unsigned char Reserved; /* off 0x0030 */ unsigned long LastSysTime; /* off 0x0034 */ unsigned long WmiDispatchPtr; /* off 0x0038 */ long WmiInterfaceEnabled; /* off 0x0040 */ struct _PPM_FFH_THROTTLE_STATE_INFO FFHThrottleStateInfo; /* off 0x0060 */ struct _KDPC PerfActionDpc; /* off 0x0080 */ long PerfActionMask; /* off 0x0088 */ struct _PROC_IDLE_SNAP IdleCheck; /* off 0x0098 */ struct _PROC_IDLE_SNAP PerfCheck; /* off 0x00a8 */ struct _PROC_PERF_DOMAIN* Domain; /* off 0x00ac */ struct _PROC_PERF_CONSTRAINT* PerfConstraint; /* off 0x00b0 */ struct _PROC_PERF_LOAD* Load; /* off 0x00b4 */ struct _PROC_HISTORY_ENTRY* PerfHistory; /* off 0x00b8 */ unsigned long Utility; /* off 0x00bc */ unsigned long OverUtilizedHistory; /* off 0x00c0 */ unsigned long AffinityCount; /* off 0x00c4 */ unsigned long AffinityHistory; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ unsigned long Period; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KAFFINITY_EX /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ unsigned long Bitmap[1]; }; struct _KPRCB /* sizeof 00003628 13864 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char LegacyNumber; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ char CpuType; /* off 0x0015 */ char CpuID; union { /* off 0x0016 */ unsigned short CpuStep; struct { /* off 0x0016 */ unsigned char CpuStepping; /* off 0x0017 */ unsigned char CpuModel; }; }; /* off 0x0018 */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x0338 */ unsigned long KernelReserved[16]; /* off 0x0378 */ unsigned long HalReserved[16]; /* off 0x03b8 */ unsigned long CFlushSize; /* off 0x03bc */ unsigned char CoresPerPhysicalProcessor; /* off 0x03bd */ unsigned char LogicalProcessorsPerCore; /* off 0x03be */ unsigned char PrcbPad0[2]; /* off 0x03c0 */ unsigned long MHz; /* off 0x03c4 */ unsigned char CpuVendor; /* off 0x03c5 */ unsigned char GroupIndex; /* off 0x03c6 */ unsigned short Group; /* off 0x03c8 */ unsigned long GroupSetMember; /* off 0x03cc */ unsigned long Number; /* off 0x03d0 */ unsigned char PrcbPad1[72]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[17]; /* off 0x04a0 */ struct _KTHREAD* NpxThread; /* off 0x04a4 */ unsigned long InterruptCount; /* off 0x04a8 */ unsigned long KernelTime; /* off 0x04ac */ unsigned long UserTime; /* off 0x04b0 */ unsigned long DpcTime; /* off 0x04b4 */ unsigned long DpcTimeCount; /* off 0x04b8 */ unsigned long InterruptTime; /* off 0x04bc */ unsigned long AdjustDpcThreshold; /* off 0x04c0 */ unsigned long PageColor; /* off 0x04c4 */ unsigned char DebuggerSavedIRQL; /* off 0x04c5 */ unsigned char NodeColor; /* off 0x04c6 */ unsigned char PrcbPad20[2]; /* off 0x04c8 */ unsigned long NodeShiftedColor; /* off 0x04cc */ struct _KNODE* ParentNode; /* off 0x04d0 */ unsigned long SecondaryColorMask; /* off 0x04d4 */ unsigned long DpcTimeLimit; /* off 0x04d8 */ unsigned long PrcbPad21[2]; /* off 0x04e0 */ unsigned long CcFastReadNoWait; /* off 0x04e4 */ unsigned long CcFastReadWait; /* off 0x04e8 */ unsigned long CcFastReadNotPossible; /* off 0x04ec */ unsigned long CcCopyReadNoWait; /* off 0x04f0 */ unsigned long CcCopyReadWait; /* off 0x04f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x04f8 */ long MmSpinLockOrdering; /* off 0x04fc */ long IoReadOperationCount; /* off 0x0500 */ long IoWriteOperationCount; /* off 0x0504 */ long IoOtherOperationCount; /* off 0x0508 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0510 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0518 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0520 */ unsigned long CcFastMdlReadNoWait; /* off 0x0524 */ unsigned long CcFastMdlReadWait; /* off 0x0528 */ unsigned long CcFastMdlReadNotPossible; /* off 0x052c */ unsigned long CcMapDataNoWait; /* off 0x0530 */ unsigned long CcMapDataWait; /* off 0x0534 */ unsigned long CcPinMappedDataCount; /* off 0x0538 */ unsigned long CcPinReadNoWait; /* off 0x053c */ unsigned long CcPinReadWait; /* off 0x0540 */ unsigned long CcMdlReadNoWait; /* off 0x0544 */ unsigned long CcMdlReadWait; /* off 0x0548 */ unsigned long CcLazyWriteHotSpots; /* off 0x054c */ unsigned long CcLazyWriteIos; /* off 0x0550 */ unsigned long CcLazyWritePages; /* off 0x0554 */ unsigned long CcDataFlushes; /* off 0x0558 */ unsigned long CcDataPages; /* off 0x055c */ unsigned long CcLostDelayedWrites; /* off 0x0560 */ unsigned long CcFastReadResourceMiss; /* off 0x0564 */ unsigned long CcCopyReadWaitMiss; /* off 0x0568 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x056c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0570 */ unsigned long CcMapDataWaitMiss; /* off 0x0574 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0578 */ unsigned long CcPinReadWaitMiss; /* off 0x057c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0580 */ unsigned long CcMdlReadWaitMiss; /* off 0x0584 */ unsigned long CcReadAheadIos; /* off 0x0588 */ unsigned long KeAlignmentFixupCount; /* off 0x058c */ unsigned long KeExceptionDispatchCount; /* off 0x0590 */ unsigned long KeSystemCalls; /* off 0x0594 */ unsigned long AvailableTime; /* off 0x0598 */ unsigned long PrcbPad22[2]; /* off 0x05a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0620 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x0f20 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1820 */ unsigned long PacketBarrier; /* off 0x1824 */ long ReverseStall; /* off 0x1828 */ void* IpiFrame; /* off 0x182c */ unsigned char PrcbPad3[52]; /* off 0x1860 */ void* CurrentPacket[3]; /* off 0x186c */ unsigned long TargetSet; /* off 0x1870 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1874 */ unsigned long IpiFrozen; /* off 0x1878 */ unsigned char PrcbPad4[40]; /* off 0x18a0 */ unsigned long RequestSummary; /* off 0x18a4 */ struct _KPRCB* SignalDone; /* off 0x18a8 */ unsigned char PrcbPad50[56]; /* off 0x18e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1908 */ void* DpcStack; /* off 0x190c */ long MaximumDpcQueueDepth; /* off 0x1910 */ unsigned long DpcRequestRate; /* off 0x1914 */ unsigned long MinimumDpcRate; /* off 0x1918 */ unsigned long DpcLastCount; /* off 0x191c */ unsigned long PrcbLock; /* off 0x1920 */ struct _KGATE DpcGate; /* off 0x1930 */ unsigned char ThreadDpcEnable; /* off 0x1931 */ unsigned char QuantumEnd; /* off 0x1932 */ unsigned char DpcRoutineActive; /* off 0x1933 */ unsigned char IdleSchedule; union { /* off 0x1934 */ long DpcRequestSummary; /* off 0x1934 */ short DpcRequestSlot[2]; struct { /* off 0x1934 */ short NormalDpcState; union { /* off 0x1936 */ unsigned short DpcThreadActive:1 /* start bit 0 */; /* off 0x1936 */ short ThreadDpcState; }; }; }; /* off 0x1938 */ unsigned long TimerHand; /* off 0x193c */ unsigned long LastTick; /* off 0x1940 */ long MasterOffset; /* off 0x1944 */ unsigned long PrcbPad41[2]; /* off 0x194c */ unsigned long PeriodicCount; /* off 0x1950 */ unsigned long PeriodicBias; /* off 0x1958 */ unsigned __int64 TickOffset; /* off 0x1960 */ struct _KTIMER_TABLE TimerTable; /* off 0x31a0 */ struct _KDPC CallDpc; /* off 0x31c0 */ long ClockKeepAlive; /* off 0x31c4 */ unsigned char ClockCheckSlot; /* off 0x31c5 */ unsigned char ClockPollCycle; /* off 0x31c6 */ unsigned char PrcbPad6[2]; /* off 0x31c8 */ long DpcWatchdogPeriod; /* off 0x31cc */ long DpcWatchdogCount; /* off 0x31d0 */ long ThreadWatchdogPeriod; /* off 0x31d4 */ long ThreadWatchdogCount; /* off 0x31d8 */ long KeSpinLockOrdering; /* off 0x31dc */ unsigned long PrcbPad70[1]; /* off 0x31e0 */ struct _LIST_ENTRY WaitListHead; /* off 0x31e8 */ unsigned long WaitLock; /* off 0x31ec */ unsigned long ReadySummary; /* off 0x31f0 */ unsigned long QueueIndex; /* off 0x31f4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x31f8 */ unsigned __int64 StartCycles; /* off 0x3200 */ unsigned __int64 CycleTime; /* off 0x3208 */ unsigned long HighCycleTime; /* off 0x320c */ unsigned long PrcbPad71; /* off 0x3210 */ unsigned __int64 PrcbPad72[2]; /* off 0x3220 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x3320 */ void* ChainedInterruptList; /* off 0x3324 */ long LookasideIrpFloat; /* off 0x3328 */ long MmPageFaultCount; /* off 0x332c */ long MmCopyOnWriteCount; /* off 0x3330 */ long MmTransitionCount; /* off 0x3334 */ long MmCacheTransitionCount; /* off 0x3338 */ long MmDemandZeroCount; /* off 0x333c */ long MmPageReadCount; /* off 0x3340 */ long MmPageReadIoCount; /* off 0x3344 */ long MmCacheReadCount; /* off 0x3348 */ long MmCacheIoCount; /* off 0x334c */ long MmDirtyPagesWriteCount; /* off 0x3350 */ long MmDirtyWriteIoCount; /* off 0x3354 */ long MmMappedPagesWriteCount; /* off 0x3358 */ long MmMappedWriteIoCount; /* off 0x335c */ unsigned long CachedCommit; /* off 0x3360 */ unsigned long CachedResidentAvailable; /* off 0x3364 */ void* HyperPte; /* off 0x3368 */ unsigned char PrcbPad8[4]; /* off 0x336c */ unsigned char VendorString[13]; /* off 0x3379 */ unsigned char InitialApicId; /* off 0x337a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x337b */ unsigned char PrcbPad9[5]; /* off 0x3380 */ unsigned long FeatureBits; /* off 0x3388 */ union _LARGE_INTEGER UpdateSignature; /* off 0x3390 */ unsigned __int64 IsrTime; /* off 0x3398 */ unsigned __int64 RuntimeAccumulation; /* off 0x33a0 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x3468 */ struct _KDPC DpcWatchdogDpc; /* off 0x3488 */ struct _KTIMER DpcWatchdogTimer; /* off 0x34b0 */ void* WheaInfo; /* off 0x34b4 */ void* EtwSupport; /* off 0x34b8 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x34c0 */ union _SLIST_HEADER HypercallPageList; /* off 0x34c8 */ void* HypercallPageVirtual; /* off 0x34cc */ void* VirtualApicAssist; /* off 0x34d0 */ unsigned __int64* StatisticsPage; /* off 0x34d4 */ void* RateControl; /* off 0x34d8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x3514 */ unsigned long CacheCount; /* off 0x3518 */ unsigned long CacheProcessorMask[5]; /* off 0x352c */ struct _KAFFINITY_EX PackageProcessorSet; /* off 0x3538 */ unsigned long PrcbPad91[1]; /* off 0x353c */ unsigned long CoreProcessorSet; /* off 0x3540 */ struct _KDPC TimerExpirationDpc; /* off 0x3560 */ unsigned long SpinLockAcquireCount; /* off 0x3564 */ unsigned long SpinLockContentionCount; /* off 0x3568 */ unsigned long SpinLockSpinCount; /* off 0x356c */ unsigned long IpiSendRequestBroadcastCount; /* off 0x3570 */ unsigned long IpiSendRequestRoutineCount; /* off 0x3574 */ unsigned long IpiSendSoftwareInterruptCount; /* off 0x3578 */ unsigned long ExInitializeResourceCount; /* off 0x357c */ unsigned long ExReInitializeResourceCount; /* off 0x3580 */ unsigned long ExDeleteResourceCount; /* off 0x3584 */ unsigned long ExecutiveResourceAcquiresCount; /* off 0x3588 */ unsigned long ExecutiveResourceContentionsCount; /* off 0x358c */ unsigned long ExecutiveResourceReleaseExclusiveCount; /* off 0x3590 */ unsigned long ExecutiveResourceReleaseSharedCount; /* off 0x3594 */ unsigned long ExecutiveResourceConvertsCount; /* off 0x3598 */ unsigned long ExAcqResExclusiveAttempts; /* off 0x359c */ unsigned long ExAcqResExclusiveAcquiresExclusive; /* off 0x35a0 */ unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; /* off 0x35a4 */ unsigned long ExAcqResExclusiveWaits; /* off 0x35a8 */ unsigned long ExAcqResExclusiveNotAcquires; /* off 0x35ac */ unsigned long ExAcqResSharedAttempts; /* off 0x35b0 */ unsigned long ExAcqResSharedAcquiresExclusive; /* off 0x35b4 */ unsigned long ExAcqResSharedAcquiresShared; /* off 0x35b8 */ unsigned long ExAcqResSharedAcquiresSharedRecursive; /* off 0x35bc */ unsigned long ExAcqResSharedWaits; /* off 0x35c0 */ unsigned long ExAcqResSharedNotAcquires; /* off 0x35c4 */ unsigned long ExAcqResSharedStarveExclusiveAttempts; /* off 0x35c8 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; /* off 0x35cc */ unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; /* off 0x35d0 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; /* off 0x35d4 */ unsigned long ExAcqResSharedStarveExclusiveWaits; /* off 0x35d8 */ unsigned long ExAcqResSharedStarveExclusiveNotAcquires; /* off 0x35dc */ unsigned long ExAcqResSharedWaitForExclusiveAttempts; /* off 0x35e0 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; /* off 0x35e4 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; /* off 0x35e8 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; /* off 0x35ec */ unsigned long ExAcqResSharedWaitForExclusiveWaits; /* off 0x35f0 */ unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; /* off 0x35f4 */ unsigned long ExSetResOwnerPointerExclusive; /* off 0x35f8 */ unsigned long ExSetResOwnerPointerSharedNew; /* off 0x35fc */ unsigned long ExSetResOwnerPointerSharedOld; /* off 0x3600 */ unsigned long ExTryToAcqExclusiveAttempts; /* off 0x3604 */ unsigned long ExTryToAcqExclusiveAcquires; /* off 0x3608 */ unsigned long ExBoostExclusiveOwner; /* off 0x360c */ unsigned long ExBoostSharedOwners; /* off 0x3610 */ unsigned long ExEtwSynchTrackingNotificationsCount; /* off 0x3614 */ unsigned long ExEtwSynchTrackingNotificationsAccountedCount; /* off 0x3618 */ struct _CONTEXT* Context; /* off 0x361c */ unsigned long ContextFlags; /* off 0x3620 */ struct _XSAVE_AREA* ExtendedState; }; struct _KPCR /* sizeof 00003748 14152 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; union _KWAIT_STATUS_REGISTER /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Flags; struct { /* off 0x0000 */ unsigned char State:2 /* start bit 0 */; /* off 0x0000 */ unsigned char Affinity:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Priority:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Apc:1 /* start bit 4 */; /* off 0x0000 */ unsigned char UserApc:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Alert:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Unused:1 /* start bit 7 */; }; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char BlockState; }; struct _GROUP_AFFINITY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Mask; /* off 0x0004 */ unsigned short Group; /* off 0x0006 */ unsigned short Reserved[3]; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 00000200 512 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; /* off 0x0038 */ union _KWAIT_STATUS_REGISTER WaitRegister; /* off 0x0039 */ unsigned char Running; /* off 0x003a */ unsigned char Alerted[2]; union { struct { /* off 0x003c */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x003c */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x003c */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x003c */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x003c */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x003c */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x003c */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x003c */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x003c */ unsigned long ApcInterruptRequest:1 /* start bit 8 */; /* off 0x003c */ unsigned long ForceDeferSchedule:1 /* start bit 9 */; /* off 0x003c */ unsigned long QuantumEndMigrate:1 /* start bit 10 */; /* off 0x003c */ unsigned long UmsDirectedSwitchEnable:1 /* start bit 11 */; /* off 0x003c */ unsigned long TimerActive:1 /* start bit 12 */; /* off 0x003c */ unsigned long Reserved:19 /* start bit 13 */; }; /* off 0x003c */ long MiscFlags; }; union { /* off 0x0040 */ struct _KAPC_STATE ApcState; struct { /* off 0x0040 */ unsigned char ApcStateFill[23]; /* off 0x0057 */ char Priority; }; }; /* off 0x0058 */ unsigned long NextProcessor; /* off 0x005c */ unsigned long DeferredProcessor; /* off 0x0060 */ unsigned long ApcQueueLock; /* off 0x0064 */ unsigned long ContextSwitches; /* off 0x0068 */ unsigned char State; /* off 0x0069 */ char NpxState; /* off 0x006a */ unsigned char WaitIrql; /* off 0x006b */ char WaitMode; /* off 0x006c */ long WaitStatus; /* off 0x0070 */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0074 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0074 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x007c */ struct _KQUEUE* Queue; /* off 0x0080 */ unsigned long WaitTime; union { struct { /* off 0x0084 */ short KernelApcDisable; /* off 0x0086 */ short SpecialApcDisable; }; struct { /* off 0x0084 */ unsigned long CombinedApcDisable; }; }; /* off 0x0088 */ void* Teb; /* off 0x0090 */ struct _KTIMER Timer; union { struct { /* off 0x00b8 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b8 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b8 */ unsigned long CalloutActive:1 /* start bit 4 */; /* off 0x00b8 */ unsigned long ApcQueueable:1 /* start bit 5 */; /* off 0x00b8 */ unsigned long EnableStackSwap:1 /* start bit 6 */; /* off 0x00b8 */ unsigned long GuiThread:1 /* start bit 7 */; /* off 0x00b8 */ unsigned long UmsPerformingSyscall:1 /* start bit 8 */; /* off 0x00b8 */ unsigned long ReservedFlags:23 /* start bit 9 */; }; /* off 0x00b8 */ long ThreadFlags; }; /* off 0x00bc */ void* ServiceTable; /* off 0x00c0 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x0120 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0128 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x012c */ void* FirstArgument; union { /* off 0x0130 */ void* CallbackStack; /* off 0x0130 */ unsigned long CallbackDepth; }; /* off 0x0134 */ unsigned char ApcStateIndex; /* off 0x0135 */ char BasePriority; union { /* off 0x0136 */ char PriorityDecrement; struct { /* off 0x0136 */ unsigned char ForegroundBoost:4 /* start bit 0 */; /* off 0x0136 */ unsigned char UnusualBoost:4 /* start bit 4 */; }; }; /* off 0x0137 */ unsigned char Preempted; /* off 0x0138 */ unsigned char AdjustReason; /* off 0x0139 */ char AdjustIncrement; /* off 0x013a */ char PreviousMode; /* off 0x013b */ char Saturation; /* off 0x013c */ unsigned long SystemCallNumber; /* off 0x0140 */ unsigned long FreezeCount; /* off 0x0144 */ struct _GROUP_AFFINITY UserAffinity; /* off 0x0150 */ struct _KPROCESS* Process; /* off 0x0154 */ struct _GROUP_AFFINITY Affinity; /* off 0x0160 */ unsigned long IdealProcessor; /* off 0x0164 */ unsigned long UserIdealProcessor; /* off 0x0168 */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0170 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0170 */ unsigned char SavedApcStateFill[23]; /* off 0x0187 */ unsigned char WaitReason; }; }; /* off 0x0188 */ char SuspendCount; /* off 0x0189 */ char Spare1; /* off 0x018a */ unsigned char OtherPlatformFill; /* off 0x018c */ void* Win32Thread; /* off 0x0190 */ void* StackBase; union { /* off 0x0194 */ struct _KAPC SuspendApc; struct { /* off 0x0194 */ unsigned char SuspendApcFill0[1]; /* off 0x0195 */ unsigned char ResourceIndex; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill1[3]; /* off 0x0197 */ unsigned char QuantumReset; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill2[4]; /* off 0x0198 */ unsigned long KernelTime; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill3[36]; /* off 0x01b8 */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill4[40]; /* off 0x01bc */ void* LegoData; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill5[47]; /* off 0x01c3 */ unsigned char LargeStack; }; }; /* off 0x01c4 */ unsigned long UserTime; union { /* off 0x01c8 */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01c8 */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01dc */ unsigned long SListFaultCount; /* off 0x01e0 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01e8 */ struct _LIST_ENTRY MutantListHead; /* off 0x01f0 */ void* SListFaultAddress; /* off 0x01f4 */ struct _KTHREAD_COUNTERS* ThreadCounters; /* off 0x01f8 */ struct _XSTATE_SAVE* XStateSave; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; union _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; /* off 0x0000 */ unsigned char ExecuteOptions; }; union _KSTACK_COUNT /* sizeof 00000004 4 */ { /* off 0x0000 */ long Value; struct { /* off 0x0000 */ unsigned long State:3 /* start bit 0 */; /* off 0x0000 */ unsigned long StackCount:29 /* start bit 3 */; }; }; struct _KPROCESS /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ struct _KGDTENTRY LdtDescriptor; /* off 0x0024 */ struct _KIDTENTRY Int21Descriptor; /* off 0x002c */ struct _LIST_ENTRY ThreadListHead; /* off 0x0034 */ unsigned long ProcessLock; /* off 0x0038 */ struct _KAFFINITY_EX Affinity; /* off 0x0044 */ struct _LIST_ENTRY ReadyListHead; /* off 0x004c */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x0050 */ struct _KAFFINITY_EX ActiveProcessors; union { struct { /* off 0x005c */ long AutoAlignment:1 /* start bit 0 */; /* off 0x005c */ long DisableBoost:1 /* start bit 1 */; /* off 0x005c */ long DisableQuantum:1 /* start bit 2 */; /* off 0x005c */ unsigned long ActiveGroupsMask:1 /* start bit 3 */; /* off 0x005c */ long ReservedFlags:28 /* start bit 4 */; }; /* off 0x005c */ long ProcessFlags; }; /* off 0x0060 */ char BasePriority; /* off 0x0061 */ char QuantumReset; /* off 0x0062 */ unsigned char Visited; /* off 0x0063 */ unsigned char Unused3; /* off 0x0064 */ unsigned long ThreadSeed[1]; /* off 0x0068 */ unsigned short IdealNode[1]; /* off 0x006a */ unsigned short IdealGlobalNode; /* off 0x006c */ union _KEXECUTE_OPTIONS Flags; /* off 0x006d */ unsigned char Unused1; /* off 0x006e */ unsigned short IopmOffset; /* off 0x0070 */ unsigned long Unused4; /* off 0x0074 */ union _KSTACK_COUNT StackCount; /* off 0x0078 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0080 */ unsigned __int64 CycleTime; /* off 0x0088 */ unsigned long KernelTime; /* off 0x008c */ unsigned long UserTime; /* off 0x0090 */ void* VdmTrapcHandler; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _COUNTER_READING /* sizeof 00000018 24 */ { /* off 0x0000 */ enum _HARDWARE_COUNTER_TYPE Type; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 Total; }; struct _KTHREAD_COUNTERS /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned __int64 WaitReasonBitMap; /* off 0x0008 */ struct _THREAD_PERFORMANCE_DATA* UserData; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0018 */ unsigned __int64 CycleTimeBias; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING HwCounter[16]; }; struct _THREAD_PERFORMANCE_DATA /* sizeof 000001c0 448 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ struct _PROCESSOR_NUMBER ProcessorNumber; /* off 0x0008 */ unsigned long ContextSwitches; /* off 0x000c */ unsigned long HwCountersCount; /* off 0x0010 */ unsigned __int64 UpdateCount; /* off 0x0018 */ unsigned __int64 WaitReasonBitMap; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING CycleTime; /* off 0x0040 */ struct _COUNTER_READING HwCounters[16]; }; enum _HARDWARE_COUNTER_TYPE { PMCCounter =0x00000000 ,//0 MaxHardwareCounterType =0x00000001 ,//0 }; struct _XSTATE_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned long Reserved1; /* off 0x0010 */ struct _XSAVE_AREA* Area; /* off 0x0014 */ unsigned long Reserved2; /* off 0x0018 */ void* Buffer; /* off 0x001c */ unsigned long Reserved3; }; struct _XSTATE_SAVE /* sizeof 00000020 32 */ { union { struct { /* off 0x0000 */ __int64 Reserved1; /* off 0x0008 */ unsigned long Reserved2; /* off 0x000c */ struct _XSTATE_SAVE* Prev; /* off 0x0010 */ struct _XSAVE_AREA* Reserved3; /* off 0x0014 */ struct _KTHREAD* Thread; /* off 0x0018 */ void* Reserved4; /* off 0x001c */ unsigned char Level; }; /* off 0x0000 */ struct _XSTATE_CONTEXT XStateContext; }; }; struct _M128A /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Low; /* off 0x0008 */ __int64 High; }; struct _XSAVE_FORMAT /* sizeof 00000200 512 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned char TagWord; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned short ErrorSelector; /* off 0x000e */ unsigned short Reserved2; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned short DataSelector; /* off 0x0016 */ unsigned short Reserved3; /* off 0x0018 */ unsigned long MxCsr; /* off 0x001c */ unsigned long MxCsr_Mask; /* off 0x0020 */ struct _M128A FloatRegisters[8]; /* off 0x00a0 */ struct _M128A XmmRegisters[8]; /* off 0x0120 */ unsigned char Reserved4[192]; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; }; struct _XSAVE_AREA_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned __int64 Reserved[7]; }; struct _XSAVE_AREA /* sizeof 00000240 576 */ { /* off 0x0000 */ struct _XSAVE_FORMAT LegacyState; /* off 0x0200 */ struct _XSAVE_AREA_HEADER Header; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char GroupAssigned:1 /* start bit 1 */; /* off 0x0000 */ unsigned char GroupCommitted:1 /* start bit 2 */; /* off 0x0000 */ unsigned char GroupAssignmentFixed:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Fill:4 /* start bit 4 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; /* off 0x0014 */ unsigned long Pad0; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ struct _GROUP_AFFINITY Affinity; /* off 0x002c */ unsigned long ProximityId; /* off 0x0030 */ unsigned short NodeNumber; /* off 0x0032 */ unsigned short PrimaryNodeNumber; /* off 0x0034 */ unsigned char MaximumProcessors; /* off 0x0035 */ unsigned char Color; /* off 0x0036 */ struct _flags Flags; /* off 0x0037 */ unsigned char NodePad0; /* off 0x0038 */ unsigned long Seed; /* off 0x003c */ unsigned long MmShiftedColor; /* off 0x0040 */ unsigned long FreeCount[2]; /* off 0x0048 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; /* off 0x0060 */ long ParkLock; /* off 0x0064 */ unsigned long NodePad1; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX DomainMembers; /* off 0x000c */ long( __fastcall *IdleCheck)(void*); /* off 0x0010 */ void( __fastcall *IdleHandler)(void*); /* off 0x0018 */ unsigned __int64 HvConfig; /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned long Latency; /* off 0x0028 */ unsigned long Power; /* off 0x002c */ unsigned long TimeCheck; /* off 0x0030 */ unsigned long StateFlags; /* off 0x0034 */ unsigned char PromotePercent; /* off 0x0035 */ unsigned char DemotePercent; /* off 0x0036 */ unsigned char PromotePercentBase; /* off 0x0037 */ unsigned char DemotePercentBase; /* off 0x0038 */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 00000068 104 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0008 */ unsigned long TargetState; /* off 0x000c */ unsigned long ActualState; /* off 0x0010 */ unsigned long OldState; /* off 0x0014 */ unsigned char NewlyUnparked; /* off 0x0018 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x0028 */ struct _PPM_IDLE_STATE State[1]; }; struct _PROC_IDLE_STATE_BUCKET /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned __int64 MinTime; /* off 0x0010 */ unsigned __int64 MaxTime; /* off 0x0018 */ unsigned long Count; }; struct _PROC_IDLE_STATE_ACCOUNTING /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned long IdleTransitions; /* off 0x000c */ unsigned long FailedTransitions; /* off 0x0010 */ unsigned long InvalidBucketIndex; /* off 0x0018 */ unsigned __int64 MinTime; /* off 0x0020 */ unsigned __int64 MaxTime; /* off 0x0028 */ struct _PROC_IDLE_STATE_BUCKET IdleTimeBuckets[16]; }; struct _PROC_IDLE_ACCOUNTING /* sizeof 000002c0 704 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ unsigned __int64 BucketLimits[16]; /* off 0x0098 */ struct _PROC_IDLE_STATE_ACCOUNTING State[1]; }; enum _PROC_HYPERVISOR_STATE { ProcHypervisorNone =0x00000000 ,//0 ProcHypervisorPresent =0x00000001 ,//0 ProcHypervisorPower =0x00000002 ,//0 }; struct _PROC_PERF_DOMAIN /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _KPRCB* Master; /* off 0x000c */ struct _KAFFINITY_EX Members; /* off 0x0018 */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x001c */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0020 */ void( __fastcall *BoostPolicyHandler)(unsigned long); /* off 0x0024 */ unsigned long( __fastcall *PerfSelectionHandler)(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long*,unsigned long*); /* off 0x0028 */ void( __fastcall *PerfHandler)(unsigned long,unsigned long); /* off 0x002c */ struct _PROC_PERF_CONSTRAINT* Processors; /* off 0x0030 */ unsigned __int64 PerfChangeTime; /* off 0x0038 */ unsigned long ProcessorCount; /* off 0x003c */ unsigned long PreviousFrequencyMhz; /* off 0x0040 */ unsigned long CurrentFrequencyMhz; /* off 0x0044 */ unsigned long PreviousFrequency; /* off 0x0048 */ unsigned long CurrentFrequency; /* off 0x004c */ unsigned long CurrentPerfContext; /* off 0x0050 */ unsigned long DesiredFrequency; /* off 0x0054 */ unsigned long MaxFrequency; /* off 0x0058 */ unsigned long MinPerfPercent; /* off 0x005c */ unsigned long MinThrottlePercent; /* off 0x0060 */ unsigned long MaxPercent; /* off 0x0064 */ unsigned long MinPercent; /* off 0x0068 */ unsigned long ConstrainedMaxPercent; /* off 0x006c */ unsigned long ConstrainedMinPercent; /* off 0x0070 */ unsigned char Coordination; /* off 0x0074 */ long PerfChangeIntervalCount; }; struct _PROC_PERF_CONSTRAINT /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _KPRCB* Prcb; /* off 0x0004 */ unsigned long PerfContext; /* off 0x0008 */ unsigned long PercentageCap; /* off 0x000c */ unsigned long ThermalCap; /* off 0x0010 */ unsigned long TargetFrequency; /* off 0x0014 */ unsigned long AcumulatedFullFrequency; /* off 0x0018 */ unsigned long AcumulatedZeroFrequency; /* off 0x001c */ unsigned long FrequencyHistoryTotal; /* off 0x0020 */ unsigned long AverageFrequency; }; struct _PROC_PERF_LOAD /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char BusyPercentage; /* off 0x0001 */ unsigned char FrequencyPercentage; }; struct _PROC_HISTORY_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Utility; /* off 0x0002 */ unsigned char Frequency; /* off 0x0003 */ unsigned char Reserved; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueUnusedSpare0 =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueueUnusedSpare2 =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueMaximumLock =0x00000011 ,//0 }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Event; /* off 0x001c */ unsigned long OldIrql; }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideMediumIrpList =0x00000001 ,//0 LookasideLargeIrpList =0x00000002 ,//0 LookasideMdlList =0x00000003 ,//0 LookasideCreateInfoList =0x00000004 ,//0 LookasideNameBufferList =0x00000005 ,//0 LookasideTwilightList =0x00000006 ,//0 LookasideCompletionList =0x00000007 ,//0 LookasideScratchBufferList =0x00000008 ,//0 LookasideMaximumList =0x00000009 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _KEVENT WakeEvent; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 000002b8 696 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x0200 */ union _LARGE_INTEGER CreateTime; union { /* off 0x0208 */ union _LARGE_INTEGER ExitTime; /* off 0x0208 */ struct _LIST_ENTRY KeyedWaitChain; }; /* off 0x0210 */ long ExitStatus; union { /* off 0x0214 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x0214 */ void* ForwardLinkShadow; /* off 0x0218 */ void* StartAddress; }; }; union { /* off 0x021c */ struct _TERMINATION_PORT* TerminationPort; /* off 0x021c */ struct _ETHREAD* ReaperLink; /* off 0x021c */ void* KeyedWaitValue; }; /* off 0x0220 */ unsigned long ActiveTimerListLock; /* off 0x0224 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x022c */ struct _CLIENT_ID Cid; union { /* off 0x0234 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0234 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0248 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x024c */ struct _LIST_ENTRY IrpList; /* off 0x0254 */ unsigned long TopLevelIrp; /* off 0x0258 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x025c */ union _PSP_CPU_QUOTA_APC* CpuQuotaApc; /* off 0x0260 */ void* Win32StartAddress; /* off 0x0264 */ void* LegacyPowerObject; /* off 0x0268 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0270 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0274 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0278 */ unsigned long ReadClusterSize; /* off 0x027c */ long MmLockOrdering; union { /* off 0x0280 */ unsigned long CrossThreadFlags; struct { /* off 0x0280 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0280 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0280 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0280 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0280 */ unsigned long SystemThread:1 /* start bit 4 */; /* off 0x0280 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0280 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0280 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0280 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0280 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0280 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0280 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0280 */ unsigned long RundownFail:1 /* start bit 16 */; /* off 0x0280 */ unsigned long NeedsWorkingSetAging:1 /* start bit 17 */; }; }; union { /* off 0x0284 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0284 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0284 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0284 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0284 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0284 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0284 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0284 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0288 */ unsigned long SameThreadApcFlags; struct { /* off 0x0288 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0288 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0288 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0288 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0289 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0289 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0289 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0289 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetExclusive:1 /* start bit 0 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetShared:1 /* start bit 1 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetExclusive:1 /* start bit 2 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetShared:1 /* start bit 3 */; /* off 0x028a */ unsigned char TrimTrigger:2 /* start bit 4 */; /* off 0x028a */ unsigned char Spare1:2 /* start bit 6 */; /* off 0x028b */ unsigned char PriorityRegionActive; }; }; /* off 0x028c */ unsigned char CacheManagerActive; /* off 0x028d */ unsigned char DisablePageFaultClustering; /* off 0x028e */ unsigned char ActiveFaultCount; /* off 0x028f */ unsigned char LockOrderState; /* off 0x0290 */ unsigned long AlpcMessageId; union { /* off 0x0294 */ void* AlpcMessage; /* off 0x0294 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0298 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x02a0 */ unsigned long CacheManagerCount; /* off 0x02a4 */ unsigned long IoBoostCount; /* off 0x02a8 */ unsigned long IrpListLock; /* off 0x02ac */ void* ReservedForSynchTracking; /* off 0x02b0 */ struct _SINGLE_LIST_ENTRY CmCallbackListHead; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { struct { /* off 0x0004 */ unsigned long IoPriorityBoosted:1 /* start bit 0 */; /* off 0x0004 */ unsigned long OwnerReferenced:1 /* start bit 1 */; /* off 0x0004 */ unsigned long OwnerCount:30 /* start bit 2 */; }; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char WorkingSetType:3 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 3 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 6 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 7 */; /* off 0x0001 */ unsigned char SessionMaster:1 /* start bit 0 */; /* off 0x0001 */ unsigned char TrimmerState:2 /* start bit 1 */; /* off 0x0001 */ unsigned char Reserved:1 /* start bit 3 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0004 */ struct _KGATE* ExitGate; /* off 0x0008 */ void* AccessLog; /* off 0x000c */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0014 */ unsigned long AgeDistribution[7]; /* off 0x0030 */ unsigned long MinimumWorkingSetSize; /* off 0x0034 */ unsigned long WorkingSetSize; /* off 0x0038 */ unsigned long WorkingSetPrivateSize; /* off 0x003c */ unsigned long MaximumWorkingSetSize; /* off 0x0040 */ unsigned long ChargedWslePages; /* off 0x0044 */ unsigned long ActualWslePages; /* off 0x0048 */ unsigned long WorkingSetSizeOverhead; /* off 0x004c */ unsigned long PeakWorkingSetSize; /* off 0x0050 */ unsigned long HardFaultCount; /* off 0x0054 */ struct _MMWSL* VmWorkingSetList; /* off 0x0058 */ unsigned short NextPageColor; /* off 0x005a */ unsigned short LastTrimStamp; /* off 0x005c */ unsigned long PageFaultCount; /* off 0x0060 */ unsigned long RepurposeCount; /* off 0x0064 */ unsigned long Spare[1]; /* off 0x0068 */ struct _MMSUPPORT_FLAGS Flags; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 000002c0 704 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0098 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x00a0 */ union _LARGE_INTEGER CreateTime; /* off 0x00a8 */ union _LARGE_INTEGER ExitTime; /* off 0x00b0 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x00b4 */ void* UniqueProcessId; /* off 0x00b8 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00c0 */ unsigned long ProcessQuotaUsage[2]; /* off 0x00c8 */ unsigned long ProcessQuotaPeak[2]; /* off 0x00d0 */ unsigned long CommitCharge; /* off 0x00d4 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x00d8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; /* off 0x00dc */ unsigned long PeakVirtualSize; /* off 0x00e0 */ unsigned long VirtualSize; /* off 0x00e4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00ec */ void* DebugPort; union { /* off 0x00f0 */ void* ExceptionPortData; /* off 0x00f0 */ unsigned long ExceptionPortValue; /* off 0x00f0 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00f4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00f8 */ struct _EX_FAST_REF Token; /* off 0x00fc */ unsigned long WorkingSetPage; /* off 0x0100 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x0104 */ struct _ETHREAD* RotateInProgress; /* off 0x0108 */ struct _ETHREAD* ForkInProgress; /* off 0x010c */ unsigned long HardwareTrigger; /* off 0x0110 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x0114 */ void* CloneRoot; /* off 0x0118 */ unsigned long NumberOfPrivatePages; /* off 0x011c */ unsigned long NumberOfLockedPages; /* off 0x0120 */ void* Win32Process; /* off 0x0124 */ struct _EJOB* Job; /* off 0x0128 */ void* SectionObject; /* off 0x012c */ void* SectionBaseAddress; /* off 0x0130 */ unsigned long Cookie; /* off 0x0134 */ unsigned long Spare8; /* off 0x0138 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x013c */ void* Win32WindowStation; /* off 0x0140 */ void* InheritedFromUniqueProcessId; /* off 0x0144 */ void* LdtInformation; /* off 0x0148 */ void* VdmObjects; /* off 0x014c */ unsigned long ConsoleHostProcess; /* off 0x0150 */ void* DeviceMap; /* off 0x0154 */ void* EtwDataSource; /* off 0x0158 */ void* FreeTebHint; union { /* off 0x0160 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0160 */ unsigned __int64 Filler; }; /* off 0x0168 */ void* Session; /* off 0x016c */ unsigned char ImageFileName[15]; /* off 0x017b */ unsigned char PriorityClass; /* off 0x017c */ struct _LIST_ENTRY JobLinks; /* off 0x0184 */ void* LockedPagesList; /* off 0x0188 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0190 */ void* SecurityPort; /* off 0x0194 */ void* PaeTop; /* off 0x0198 */ unsigned long ActiveThreads; /* off 0x019c */ unsigned long ImagePathHash; /* off 0x01a0 */ unsigned long DefaultHardErrorProcessing; /* off 0x01a4 */ long LastThreadExitStatus; /* off 0x01a8 */ struct _PEB* Peb; /* off 0x01ac */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01b0 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01b8 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01c8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01d0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01d8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01e0 */ unsigned long CommitChargeLimit; /* off 0x01e4 */ unsigned long CommitChargePeak; /* off 0x01e8 */ void* AweInfo; /* off 0x01ec */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01f0 */ struct _MMSUPPORT Vm; /* off 0x025c */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0264 */ unsigned long ModifiedPageCount; union { /* off 0x0268 */ unsigned long Flags2; struct { /* off 0x0268 */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x0268 */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x0268 */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x0268 */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x0268 */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x0268 */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x0268 */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x0268 */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x0268 */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x0268 */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x0268 */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x0268 */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x0268 */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x0268 */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x0268 */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x0268 */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x0268 */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x0268 */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x0268 */ unsigned long PropagateNode:1 /* start bit 20 */; /* off 0x0268 */ unsigned long ExplicitAffinity:1 /* start bit 21 */; }; }; union { /* off 0x026c */ unsigned long Flags; struct { /* off 0x026c */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x026c */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x026c */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x026c */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x026c */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x026c */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x026c */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x026c */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x026c */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x026c */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x026c */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x026c */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x026c */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x026c */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x026c */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x026c */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x026c */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x026c */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x026c */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x026c */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x026c */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x026c */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x026c */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x026c */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x026c */ unsigned long CrossSessionCreate:1 /* start bit 25 */; /* off 0x026c */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x026c */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x026c */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x026c */ unsigned long SetTimerResolutionLink:1 /* start bit 31 */; }; }; /* off 0x0270 */ long ExitStatus; /* off 0x0274 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0294 */ struct _ALPC_PROCESS_CONTEXT AlpcContext; /* off 0x02a4 */ struct _LIST_ENTRY TimerResolutionLink; /* off 0x02ac */ unsigned long RequestedTimerResolution; /* off 0x02b0 */ unsigned long ActiveThreadsHighWatermark; /* off 0x02b4 */ unsigned long SmallestTimerResolution; /* off 0x02b8 */ struct _PO_DIAG_STACK_RECORD* TimerResolutionStackRecord; }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long CapturedCpuShareWeight; /* off 0x0004 */ unsigned long CapturedTotalWeight; }; /* off 0x0000 */ __int64 CombinedData; }; struct _PS_PER_CPU_QUOTA_CACHE_AWARE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _LIST_ENTRY SortedListEntry; /* off 0x0008 */ struct _LIST_ENTRY IdleOnlyListHead; /* off 0x0010 */ unsigned __int64 CycleBaseAllowance; /* off 0x0018 */ __int64 CyclesRemaining; /* off 0x0020 */ unsigned long CurrentGeneration; }; struct _PS_CPU_QUOTA_BLOCK /* sizeof 00000880 2176 */ { union { struct { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; union { struct { /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long CpuShareWeight; /* off 0x0010 */ union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA CapturedWeightData; union { struct { /* off 0x0018 */ unsigned long DuplicateInputMarker:1 /* start bit 0 */; /* off 0x0018 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0018 */ long MiscFlags; }; struct { }; /* off 0x0000 */ unsigned long BlockCurrentGenerationLock; }; struct { /* off 0x0008 */ unsigned __int64 CyclesAccumulated; }; }; /* off 0x0040 */ unsigned __int64 CycleCredit; /* off 0x0048 */ unsigned long BlockCurrentGeneration; /* off 0x004c */ unsigned long CpuCyclePercent; /* off 0x0050 */ unsigned char CyclesFinishedForCurrentGeneration; /* off 0x0080 */ struct _PS_PER_CPU_QUOTA_CACHE_AWARE Cpu[32]; }; }; }; struct _HANDLE_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ unsigned long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ unsigned long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; /* off 0x0038 */ unsigned long HandleCountHighWatermark; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ unsigned long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long MinimumWorkingSetSize; /* off 0x009c */ unsigned long MaximumWorkingSetSize; /* off 0x00a0 */ unsigned long LimitFlags; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ struct _KAFFINITY_EX Affinity; /* off 0x00b4 */ unsigned char PriorityClass; /* off 0x00b8 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00bc */ unsigned long UIRestrictionsClass; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ unsigned long ProcessMemoryLimit; /* off 0x010c */ unsigned long JobMemoryLimit; /* off 0x0110 */ unsigned long PeakProcessMemoryUsed; /* off 0x0114 */ unsigned long PeakJobMemoryUsed; /* off 0x0118 */ unsigned __int64 CurrentJobMemoryUsed; /* off 0x0120 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0124 */ struct _LIST_ENTRY JobSetLinks; /* off 0x012c */ unsigned long MemberLevel; /* off 0x0130 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000d0c 3340 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextAgingSlot; /* off 0x0020 */ unsigned long NumberOfCommittedPageTables; /* off 0x0024 */ unsigned long VadBitMapHint; /* off 0x0028 */ unsigned long NonDirectCount; /* off 0x002c */ unsigned long LastVadBit; /* off 0x0030 */ unsigned long MaximumLastVadBit; /* off 0x0034 */ unsigned long LastAllocationSizeHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x0040 */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0044 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0048 */ void* HighestUserAddress; /* off 0x004c */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c4c */ unsigned long CommittedPageTables[48]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned long Age:3 /* start bit 9 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _PO_DIAG_STACK_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StackDepth; /* off 0x0004 */ void* Stack[1]; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileIsRemoteDeviceInformation =0x00000033 ,//0 FileAttributeCacheInformation =0x00000034 ,//0 FileNumaNodeInformation =0x00000035 ,//0 FileStandardLinkInformation =0x00000036 ,//0 FileRemoteProtocolInformation =0x00000037 ,//0 FileMaximumInformation =0x00000038 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 TransportRelations =0x00000006 ,//0 }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved1:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Reserved:13 /* start bit 19 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ unsigned short AffinityPolicy; /* off 0x000a */ unsigned short Group; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 BusQueryContainerID =0x00000005 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long BusyReference; /* off 0x000c */ unsigned long TotalBusyCount; /* off 0x0010 */ unsigned long ConservationIdleTime; /* off 0x0014 */ unsigned long PerformanceIdleTime; /* off 0x0018 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x001c */ struct _LIST_ENTRY IdleList; /* off 0x0024 */ enum _POP_DEVICE_IDLE_TYPE IdleType; /* off 0x0028 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x002c */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x0030 */ struct _LIST_ENTRY Volume; /* off 0x0038 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; enum _POP_DEVICE_IDLE_TYPE { DeviceIdleNormal =0x00000000 ,//0 DeviceIdleDisk =0x00000001 ,//0 }; union _PSP_CPU_QUOTA_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _ACCESS_REASONS /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Data[32]; }; struct _AUX_ACCESS_DATA /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _PRIVILEGE_SET* PrivilegesUsed; /* off 0x0004 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0014 */ unsigned long AccessesToAudit; /* off 0x0018 */ unsigned long MaximumAuditMask; /* off 0x001c */ struct _GUID TransactionId; /* off 0x002c */ void* NewSecurityDescriptor; /* off 0x0030 */ void* ExistingSecurityDescriptor; /* off 0x0034 */ void* ParentSecurityDescriptor; /* off 0x0038 */ void( __stdcall *DeRefSecurityDescriptor)(void*,void*); /* off 0x003c */ void* SDLock; /* off 0x0040 */ struct _ACCESS_REASONS AccessReasons; }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _LIST_ENTRY EcpList; }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned char Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x007c */ unsigned long Key; /* off 0x0080 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PlatformPfaControl:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PlatformDirectedOffline:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved2:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_PACKET_V2 /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0010 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0014 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0018 */ unsigned long ErrorSourceId; /* off 0x001c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0020 */ struct _GUID NotifyType; /* off 0x0030 */ unsigned __int64 Context; /* off 0x0038 */ enum _WHEA_ERROR_PACKET_DATA_FORMAT DataFormat; /* off 0x003c */ unsigned long Reserved1; /* off 0x0040 */ unsigned long DataOffset; /* off 0x0044 */ unsigned long DataLength; /* off 0x0048 */ unsigned long PshedDataOffset; /* off 0x004c */ unsigned long PshedDataLength; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevInformational =0x00000003 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord =0x00000000 ,//0 WheaDataFormatXPFMCA =0x00000001 ,//0 WheaDataFormatMemory =0x00000002 ,//0 WheaDataFormatPCIExpress =0x00000003 ,//0 WheaDataFormatNMIPort =0x00000004 ,//0 WheaDataFormatPCIXBus =0x00000005 ,//0 WheaDataFormatPCIXDevice =0x00000006 ,//0 WheaDataFormatGeneric =0x00000007 ,//0 WheaDataFormatMax =0x00000008 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Precise:1 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 25 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; struct _FSRTL_ADVANCED_FCB_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char IsFastIoPossible; /* off 0x0006 */ unsigned char Flags2; /* off 0x0007 */ unsigned char Reserved:4 /* start bit 0 */; /* off 0x0007 */ unsigned char Version:4 /* start bit 4 */; /* off 0x0008 */ struct _ERESOURCE* Resource; /* off 0x000c */ struct _ERESOURCE* PagingIoResource; /* off 0x0010 */ union _LARGE_INTEGER AllocationSize; /* off 0x0018 */ union _LARGE_INTEGER FileSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ struct _FAST_MUTEX* FastMutex; /* off 0x002c */ struct _LIST_ENTRY FilterContexts; /* off 0x0034 */ struct _EX_PUSH_LOCK PushLock; /* off 0x0038 */ void** FileContextSupportPointer; }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Unused:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InStore:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused1:19 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 GlobalTimeStamp:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Long; /* off 0x0000 */ unsigned __int64 VolatileLong; /* off 0x0000 */ struct _MMPTE_HIGHLOW HighLow; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long OsMajorVersion; /* off 0x0004 */ unsigned long OsMinorVersion; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0018 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0020 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0028 */ unsigned long KernelStack; /* off 0x002c */ unsigned long Prcb; /* off 0x0030 */ unsigned long Process; /* off 0x0034 */ unsigned long Thread; /* off 0x0038 */ unsigned long RegistryLength; /* off 0x003c */ void* RegistryBase; /* off 0x0040 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0044 */ char* ArcBootDeviceName; /* off 0x0048 */ char* ArcHalDeviceName; /* off 0x004c */ char* NtBootPathName; /* off 0x0050 */ char* NtHalPathName; /* off 0x0054 */ char* LoadOptions; /* off 0x0058 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x005c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0060 */ void* OemFontFile; /* off 0x0064 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x0068 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0074 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; union { /* off 0x0014 */ unsigned long AffinityMask; struct { /* off 0x0014 */ unsigned short Group; /* off 0x0016 */ unsigned short GroupIndex; }; }; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _TPM_BOOT_ENTROPY_LDR_RESULT /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 Policy; /* off 0x0008 */ enum _TPM_BOOT_ENTROPY_RESULT_CODE ResultCode; /* off 0x000c */ long ResultStatus; /* off 0x0010 */ unsigned __int64 Time; /* off 0x0018 */ unsigned long EntropyLength; /* off 0x001c */ unsigned char EntropyData[40]; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ void* EmInfFileImage; /* off 0x0018 */ unsigned long EmInfFileSize; /* off 0x001c */ void* TriageDumpBlock; /* off 0x0020 */ unsigned long LoaderPagesSpanned; /* off 0x0024 */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0028 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x002c */ void* DrvDBImage; /* off 0x0030 */ unsigned long DrvDBSize; /* off 0x0034 */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0038 */ unsigned char* HalpIRQLToTPR; /* off 0x003c */ unsigned char* HalpVectorToIRQL; /* off 0x0040 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0048 */ void* AcpiTable; /* off 0x004c */ unsigned long AcpiTableSize; /* off 0x0050 */ unsigned long LastBootSucceeded:1 /* start bit 0 */; /* off 0x0050 */ unsigned long LastBootShutdown:1 /* start bit 1 */; /* off 0x0050 */ unsigned long IoPortAccessSupported:1 /* start bit 2 */; /* off 0x0050 */ unsigned long Reserved:29 /* start bit 3 */; /* off 0x0054 */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0058 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0060 */ void* WmdTestResult; /* off 0x0064 */ struct _GUID BootIdentifier; /* off 0x0074 */ unsigned long ResumePages; /* off 0x0078 */ void* DumpHeader; /* off 0x007c */ void* BgContext; /* off 0x0080 */ void* NumaLocalityInfo; /* off 0x0084 */ void* NumaGroupAssignment; /* off 0x0088 */ struct _LIST_ENTRY AttachedHives; /* off 0x0090 */ unsigned long MemoryCachingRequirementsCount; /* off 0x0094 */ void* MemoryCachingRequirements; /* off 0x0098 */ struct _TPM_BOOT_ENTROPY_LDR_RESULT TpmBootEntropyResult; /* off 0x00e0 */ unsigned __int64 ProcessorCounterFrequency; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; enum _TPM_BOOT_ENTROPY_RESULT_CODE { TpmBootEntropyStructureUninitialized =0x00000000 ,//0 TpmBootEntropyDisabledByPolicy =0x00000001 ,//0 TpmBootEntropyNoTpmFound =0x00000002 ,//0 TpmBootEntropyTpmError =0x00000003 ,//0 TpmBootEntropySuccess =0x00000004 ,//0 }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _MMPFNLIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; /* off 0x0010 */ unsigned long Lock; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; /* off 0x0008 */ long Lock; /* off 0x0008 */ unsigned long PteLong; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ unsigned long FlushInProgressCount; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; union { /* off 0x002c */ unsigned long ModifiedWriteCount; /* off 0x002c */ unsigned long StartingFrame; }; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; /* off 0x0048 */ struct _LIST_ENTRY ViewList; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 22 */; /* off 0x0000 */ unsigned long ContainsDebug:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x0030 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ unsigned long SizeOfImage; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; union _MM_STORE_KEY /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long KeyLow:28 /* start bit 0 */; /* off 0x0000 */ unsigned long KeyHigh:4 /* start bit 28 */; }; /* off 0x0000 */ unsigned long EntireKey; }; enum _MI_STORE_BIT_TYPE { MiStoreBitTypeInStore =0x00000000 ,//0 MiStoreBitTypeEvicted =0x00000001 ,//0 MiStoreBitTypeMax =0x00000002 ,//0 }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ struct _RTL_BITMAP* EvictStoreBitmap; /* off 0x0034 */ unsigned long BitmapHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ unsigned long ToBeEvictedCount; /* off 0x0040 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0040 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0040 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x0042 */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x0042 */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x0044 */ void* FileHandle; /* off 0x0048 */ unsigned long Lock; /* off 0x004c */ struct _ETHREAD* LockOwner; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002ec 748 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ void* HiveLoadFailure; /* off 0x0028 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x002c */ struct _RTL_BITMAP DirtyVector; /* off 0x0034 */ unsigned long DirtyCount; /* off 0x0038 */ unsigned long DirtyAlloc; /* off 0x003c */ unsigned long BaseBlockAlloc; /* off 0x0040 */ unsigned long Cluster; /* off 0x0044 */ unsigned char Flat; /* off 0x0045 */ unsigned char ReadOnly; /* off 0x0046 */ unsigned char DirtyFlag; /* off 0x0048 */ unsigned long HvBinHeadersUse; /* off 0x004c */ unsigned long HvFreeCellsUse; /* off 0x0050 */ unsigned long HvUsedCellsUse; /* off 0x0054 */ unsigned long CmUsedCellsUse; /* off 0x0058 */ unsigned long HiveFlags; /* off 0x005c */ unsigned long CurrentLog; /* off 0x0060 */ unsigned long LogSize[2]; /* off 0x0068 */ unsigned long RefreshCount; /* off 0x006c */ unsigned long StorageTypeCount; /* off 0x0070 */ unsigned long Version; /* off 0x0074 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CM_WORKITEM /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Private; /* off 0x000c */ void( __stdcall *WorkerRoutine)(void*); /* off 0x0010 */ void* Parameter; }; struct _CMHIVE /* sizeof 00000630 1584 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02ec */ void* FileHandles[6]; /* off 0x0304 */ struct _LIST_ENTRY NotifyList; /* off 0x030c */ struct _LIST_ENTRY HiveList; /* off 0x0314 */ struct _LIST_ENTRY PreloadedHiveList; /* off 0x031c */ struct _EX_RUNDOWN_REF HiveRundown; /* off 0x0320 */ struct _LIST_ENTRY ParseCacheEntries; /* off 0x0328 */ struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable; /* off 0x032c */ unsigned long KcbCacheTableSize; /* off 0x0330 */ unsigned long Identity; /* off 0x0334 */ struct _FAST_MUTEX* HiveLock; /* off 0x0338 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x033c */ struct _KTHREAD* ViewLockOwner; /* off 0x0340 */ unsigned long ViewLockLast; /* off 0x0344 */ unsigned long ViewUnLockLast; /* off 0x0348 */ struct _FAST_MUTEX* WriterLock; /* off 0x034c */ struct _ERESOURCE* FlusherLock; /* off 0x0350 */ struct _RTL_BITMAP FlushDirtyVector; /* off 0x0358 */ struct CMP_OFFSET_ARRAY* FlushOffsetArray; /* off 0x035c */ unsigned long FlushOffsetArrayCount; /* off 0x0360 */ unsigned long FlushHiveTruncated; /* off 0x0364 */ struct _FAST_MUTEX* FlushLock2; /* off 0x0368 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x036c */ struct _LIST_ENTRY MappedViewList; /* off 0x0374 */ struct _LIST_ENTRY PinnedViewList; /* off 0x037c */ struct _LIST_ENTRY FlushedViewList; /* off 0x0384 */ unsigned short MappedViewCount; /* off 0x0386 */ unsigned short PinnedViewCount; /* off 0x0388 */ unsigned long UseCount; /* off 0x038c */ unsigned long ViewsPerHive; /* off 0x0390 */ struct _FILE_OBJECT* FileObject; /* off 0x0394 */ unsigned long LastShrinkHiveSize; /* off 0x0398 */ union _LARGE_INTEGER ActualFileSize; /* off 0x03a0 */ struct _UNICODE_STRING FileFullPath; /* off 0x03a8 */ struct _UNICODE_STRING FileUserName; /* off 0x03b0 */ struct _UNICODE_STRING HiveRootPath; /* off 0x03b8 */ unsigned long SecurityCount; /* off 0x03bc */ unsigned long SecurityCacheSize; /* off 0x03c0 */ long SecurityHitHint; /* off 0x03c4 */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x03c8 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x05c8 */ unsigned long UnloadEventCount; /* off 0x05cc */ struct _KEVENT** UnloadEventArray; /* off 0x05d0 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x05d4 */ unsigned char Frozen; /* off 0x05d8 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05dc */ struct _CM_WORKITEM UnloadWorkItemHolder; /* off 0x05f0 */ unsigned char GrowOnlyMode; /* off 0x05f4 */ unsigned long GrowOffset; /* off 0x05f8 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x0600 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0608 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x060c */ unsigned long Flags; /* off 0x0610 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x0618 */ unsigned long FlushCount; /* off 0x061c */ struct _CM_RM* CmRm; /* off 0x0620 */ unsigned long CmRmInitFailPoint; /* off 0x0624 */ long CmRmInitFailStatus; /* off 0x0628 */ struct _KTHREAD* CreatorOwner; /* off 0x062c */ struct _KTHREAD* RundownThread; }; struct _CM_KEY_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ struct _CM_KEY_HASH* Entry; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:16 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 16 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 17 */; /* off 0x0004 */ unsigned long HiveUnloaded:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Decommissioned:1 /* start bit 19 */; /* off 0x0004 */ unsigned long LockTablePresent:1 /* start bit 20 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 21 */; /* off 0x0008 */ unsigned long DelayedDeref:1 /* start bit 0 */; /* off 0x0008 */ unsigned long DelayedClose:1 /* start bit 1 */; /* off 0x0008 */ unsigned long Parking:1 /* start bit 2 */; union { /* off 0x000c */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x000c */ unsigned long ConvKey; /* off 0x0010 */ struct _CM_KEY_HASH* NextHash; /* off 0x0014 */ struct _HHIVE* KeyHive; /* off 0x0018 */ unsigned long KeyCell; }; }; /* off 0x001c */ struct _EX_PUSH_LOCK KcbPushlock; union { /* off 0x0020 */ struct _KTHREAD* Owner; /* off 0x0020 */ long SharedCount; }; /* off 0x0024 */ unsigned long SlotHint; /* off 0x0028 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x002c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0030 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0034 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x003c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x003c */ unsigned long HashKey; /* off 0x003c */ unsigned long SubKeyCount; }; union { /* off 0x0040 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0040 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0048 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0058 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0060 */ unsigned short KcbMaxNameLen; /* off 0x0062 */ unsigned short KcbMaxValueNameLen; /* off 0x0064 */ unsigned long KcbMaxValueDataLen; /* off 0x0068 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0068 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0068 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0068 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x006c */ struct _LIST_ENTRY KCBUoWListHead; union { /* off 0x0074 */ struct _LIST_ENTRY DelayQueueEntry; /* off 0x0074 */ unsigned char* Stolen; }; /* off 0x007c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0080 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0088 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0090 */ struct _CHILD_LIST TransValueCache; /* off 0x0098 */ struct _CM_TRANS* TransValueListOwner; /* off 0x009c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags:16 /* start bit 0 */; /* off 0x0018 */ unsigned long HandleTags:16 /* start bit 16 */; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[7]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; /* off 0x0228 */ struct _WORK_QUEUE_ITEM OfflineWorkItem; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; struct _HIVE_LOAD_FAILURE /* sizeof 00000120 288 */ { /* off 0x0000 */ struct _HHIVE* Hive; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long RecoverableIndex; /* off 0x000c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } Locations[8]; /* off 0x006c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } RecoverableLocations[8]; /* off 0x00cc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Action; /* off 0x0004 */ void* Handle; /* off 0x0008 */ long Status; } RegistryIO; /* off 0x00d8 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* CheckStack; } CheckRegistry2; /* off 0x00dc */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CELL_DATA* CellPoint; /* off 0x0008 */ void* RootPoint; /* off 0x000c */ unsigned long Index; } CheckKey; /* off 0x00ec */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _CELL_DATA* List; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long Cell; /* off 0x000c */ struct _CELL_DATA* CellPoint; } CheckValueList; /* off 0x00fc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive; /* off 0x0108 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive1; /* off 0x0114 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _HBIN* Bin; /* off 0x0004 */ struct _HCELL* CellPoint; } CheckBin; /* off 0x011c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FileOffset; } RecoverData; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; enum _CM_LOAD_FAILURE_TYPE { _None =0x00000000 ,//0 _CmInitializeHive =0x00000001 ,//0 _HvInitializeHive =0x00000002 ,//0 _HvpBuildMap =0x00000003 ,//0 _HvpBuildMapAndCopy =0x00000004 ,//0 _HvpInitMap =0x00000005 ,//0 _HvLoadHive =0x00000006 ,//0 _HvpReadFileImageAndBuildMap =0x00000007 ,//0 _HvpRecoverData =0x00000008 ,//0 _HvpRecoverWholeHive =0x00000009 ,//0 _HvpMapFileImageAndBuildMap =0x0000000a ,//0 _CmpValidateHiveSecurityDescriptors =0x0000000b ,//0 _HvpEnlistBinInMap =0x0000000c ,//0 _CmCheckRegistry =0x0000000d ,//0 _CmRegistryIO =0x0000000e ,//0 _CmCheckRegistry2 =0x0000000f ,//0 _CmpCheckKey =0x00000010 ,//0 _CmpCheckValueList =0x00000011 ,//0 _HvCheckHive =0x00000012 ,//0 _HvCheckBin =0x00000013 ,//0 }; struct _HBIN /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long FileOffset; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved1[2]; /* off 0x0014 */ union _LARGE_INTEGER TimeStamp; /* off 0x001c */ unsigned long Spare; }; struct _HCELL /* sizeof 0000000c 12 */ { /* off 0x0000 */ long Size; /* off 0x0004 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Last; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } OldCell; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } NewCell; } u; }; struct _PCW_COUNTER_DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned short StructIndex; /* off 0x0004 */ unsigned short Offset; /* off 0x0006 */ unsigned short Size; }; enum _PCW_CALLBACK_TYPE { PcwCallbackAddCounter =0x00000000 ,//0 PcwCallbackRemoveCounter =0x00000001 ,//0 PcwCallbackEnumerateInstances =0x00000002 ,//0 PcwCallbackCollectData =0x00000003 ,//0 }; struct _PCW_COUNTER_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; }; struct _PCW_MASK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; /* off 0x000c */ unsigned long InstanceId; /* off 0x0010 */ unsigned char CollectMultiple; /* off 0x0014 */ struct _PCW_BUFFER* Buffer; /* off 0x0018 */ struct _KEVENT* CancelEvent; }; union _PCW_CALLBACK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION AddCounter; /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION RemoveCounter; /* off 0x0000 */ struct _PCW_MASK_INFORMATION EnumerateInstances; /* off 0x0000 */ struct _PCW_MASK_INFORMATION CollectData; }; struct _PCW_BUFFER /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _UNICODE_STRING* Name; /* off 0x0008 */ unsigned long CounterCount; /* off 0x000c */ struct _PCW_COUNTER_DESCRIPTOR* Counters; /* off 0x0010 */ long( __stdcall *Callback)(enum _PCW_CALLBACK_TYPE,union _PCW_CALLBACK_INFORMATION*,void*); /* off 0x0014 */ void* CallbackContext; }; struct _PCW_PROCESSOR_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned __int64 IdleTime; /* off 0x0008 */ unsigned __int64 AvailableTime; /* off 0x0010 */ unsigned __int64 UserTime; /* off 0x0018 */ unsigned __int64 KernelTime; /* off 0x0020 */ unsigned long Interrupts; /* off 0x0028 */ unsigned __int64 DpcTime; /* off 0x0030 */ unsigned __int64 InterruptTime; /* off 0x0038 */ unsigned long DpcCount; /* off 0x003c */ unsigned long DpcRate; /* off 0x0040 */ unsigned __int64 C1Time; /* off 0x0048 */ unsigned __int64 C2Time; /* off 0x0050 */ unsigned __int64 C3Time; /* off 0x0058 */ unsigned __int64 C1Transitions; /* off 0x0060 */ unsigned __int64 C2Transitions; /* off 0x0068 */ unsigned __int64 C3Transitions; /* off 0x0070 */ unsigned long ParkingStatus; /* off 0x0074 */ unsigned long CurrentFrequency; /* off 0x0078 */ unsigned long PercentMaxFrequency; /* off 0x007c */ unsigned long StateFlags; }; struct _PCW_INSTANCE /* sizeof 00000000 0 */ { }; struct _PCW_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Data; /* off 0x0004 */ unsigned long Size; }; struct _ETW_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long TotalActiveSessions; /* off 0x0004 */ long TotalBufferMemoryNonPagedPool; /* off 0x0008 */ long TotalBufferMemoryPagedPool; /* off 0x000c */ long TotalGuidsEnabled; /* off 0x0010 */ long TotalGuidsNotEnabled; /* off 0x0014 */ long TotalGuidsPreEnabled; }; struct _ETW_SESSION_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long BufferMemoryPagedPool; /* off 0x0004 */ long BufferMemoryNonPagedPool; /* off 0x0008 */ unsigned __int64 EventsLoggedCount; /* off 0x0010 */ long EventsLost; /* off 0x0014 */ long NumConsumers; }; struct _NT_TIB32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long ExceptionList; /* off 0x0004 */ unsigned long StackBase; /* off 0x0008 */ unsigned long StackLimit; /* off 0x000c */ unsigned long SubSystemTib; union { /* off 0x0010 */ unsigned long FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ unsigned long ArbitraryUserPointer; /* off 0x0018 */ unsigned long Self; }; struct _CLIENT_ID32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long UniqueProcess; /* off 0x0004 */ unsigned long UniqueThread; }; struct _GDI_TEB_BATCH32 /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _STRING32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned long Buffer; }; struct _TEB32 /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB32 NtTib; /* off 0x001c */ unsigned long EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID32 ClientId; /* off 0x0028 */ unsigned long ActiveRpcHandle; /* off 0x002c */ unsigned long ThreadLocalStoragePointer; /* off 0x0030 */ unsigned long ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ unsigned long CsrClientThread; /* off 0x0040 */ unsigned long Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ unsigned long WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ unsigned long SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ unsigned long ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH32 GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID32 RealClientId; /* off 0x06bc */ unsigned long GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ unsigned long GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ unsigned long glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ unsigned long glReserved2; /* off 0x0be0 */ unsigned long glSectionInfo; /* off 0x0be4 */ unsigned long glSection; /* off 0x0be8 */ unsigned long glTable; /* off 0x0bec */ unsigned long glCurrentRC; /* off 0x0bf0 */ unsigned long glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _STRING32 StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ unsigned long DeallocationStack; /* off 0x0e10 */ unsigned long TlsSlots[64]; /* off 0x0f10 */ struct LIST_ENTRY32 TlsLinks; /* off 0x0f18 */ unsigned long Vdm; /* off 0x0f1c */ unsigned long ReservedForNtRpc; /* off 0x0f20 */ unsigned long DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ unsigned long Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ unsigned long SubProcessTag; /* off 0x0f64 */ unsigned long EtwLocalData; /* off 0x0f68 */ unsigned long EtwTraceData; /* off 0x0f6c */ unsigned long WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ unsigned long ReservedForPerf; /* off 0x0f80 */ unsigned long ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ unsigned long SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ unsigned long ThreadPoolData; /* off 0x0f94 */ unsigned long TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ unsigned long NlsCache; /* off 0x0fa4 */ unsigned long pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ unsigned long CurrentTransactionHandle; /* off 0x0fb0 */ unsigned long ActiveFrame; /* off 0x0fb4 */ unsigned long FlsData; /* off 0x0fb8 */ unsigned long PreferredLanguages; /* off 0x0fbc */ unsigned long UserPrefLanguages; /* off 0x0fc0 */ unsigned long MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ unsigned long TxnScopeEnterCallback; /* off 0x0fd0 */ unsigned long TxnScopeExitCallback; /* off 0x0fd4 */ unsigned long TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ unsigned long ResourceRetValue; }; struct _NT_TIB64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 ExceptionList; /* off 0x0008 */ unsigned __int64 StackBase; /* off 0x0010 */ unsigned __int64 StackLimit; /* off 0x0018 */ unsigned __int64 SubSystemTib; union { /* off 0x0020 */ unsigned __int64 FiberData; /* off 0x0020 */ unsigned long Version; }; /* off 0x0028 */ unsigned __int64 ArbitraryUserPointer; /* off 0x0030 */ unsigned __int64 Self; }; struct _CLIENT_ID64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 UniqueProcess; /* off 0x0008 */ unsigned __int64 UniqueThread; }; struct _GDI_TEB_BATCH64 /* sizeof 000004e8 1256 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0008 */ unsigned __int64 HDC; /* off 0x0010 */ unsigned long Buffer[310]; }; struct _STRING64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0008 */ unsigned __int64 Buffer; }; struct _TEB64 /* sizeof 00001818 6168 */ { /* off 0x0000 */ struct _NT_TIB64 NtTib; /* off 0x0038 */ unsigned __int64 EnvironmentPointer; /* off 0x0040 */ struct _CLIENT_ID64 ClientId; /* off 0x0050 */ unsigned __int64 ActiveRpcHandle; /* off 0x0058 */ unsigned __int64 ThreadLocalStoragePointer; /* off 0x0060 */ unsigned __int64 ProcessEnvironmentBlock; /* off 0x0068 */ unsigned long LastErrorValue; /* off 0x006c */ unsigned long CountOfOwnedCriticalSections; /* off 0x0070 */ unsigned __int64 CsrClientThread; /* off 0x0078 */ unsigned __int64 Win32ThreadInfo; /* off 0x0080 */ unsigned long User32Reserved[26]; /* off 0x00e8 */ unsigned long UserReserved[5]; /* off 0x0100 */ unsigned __int64 WOW32Reserved; /* off 0x0108 */ unsigned long CurrentLocale; /* off 0x010c */ unsigned long FpSoftwareStatusRegister; /* off 0x0110 */ unsigned __int64 SystemReserved1[54]; /* off 0x02c0 */ long ExceptionCode; /* off 0x02c8 */ unsigned __int64 ActivationContextStackPointer; /* off 0x02d0 */ unsigned char SpareBytes[24]; /* off 0x02e8 */ unsigned long TxFsContext; /* off 0x02f0 */ struct _GDI_TEB_BATCH64 GdiTebBatch; /* off 0x07d8 */ struct _CLIENT_ID64 RealClientId; /* off 0x07e8 */ unsigned __int64 GdiCachedProcessHandle; /* off 0x07f0 */ unsigned long GdiClientPID; /* off 0x07f4 */ unsigned long GdiClientTID; /* off 0x07f8 */ unsigned __int64 GdiThreadLocalInfo; /* off 0x0800 */ unsigned __int64 Win32ClientInfo[62]; /* off 0x09f0 */ unsigned __int64 glDispatchTable[233]; /* off 0x1138 */ unsigned __int64 glReserved1[29]; /* off 0x1220 */ unsigned __int64 glReserved2; /* off 0x1228 */ unsigned __int64 glSectionInfo; /* off 0x1230 */ unsigned __int64 glSection; /* off 0x1238 */ unsigned __int64 glTable; /* off 0x1240 */ unsigned __int64 glCurrentRC; /* off 0x1248 */ unsigned __int64 glContext; /* off 0x1250 */ unsigned long LastStatusValue; /* off 0x1258 */ struct _STRING64 StaticUnicodeString; /* off 0x1268 */ wchar StaticUnicodeBuffer[261]; /* off 0x1478 */ unsigned __int64 DeallocationStack; /* off 0x1480 */ unsigned __int64 TlsSlots[64]; /* off 0x1680 */ struct LIST_ENTRY64 TlsLinks; /* off 0x1690 */ unsigned __int64 Vdm; /* off 0x1698 */ unsigned __int64 ReservedForNtRpc; /* off 0x16a0 */ unsigned __int64 DbgSsReserved[2]; /* off 0x16b0 */ unsigned long HardErrorMode; /* off 0x16b8 */ unsigned __int64 Instrumentation[11]; /* off 0x1710 */ struct _GUID ActivityId; /* off 0x1720 */ unsigned __int64 SubProcessTag; /* off 0x1728 */ unsigned __int64 EtwLocalData; /* off 0x1730 */ unsigned __int64 EtwTraceData; /* off 0x1738 */ unsigned __int64 WinSockData; /* off 0x1740 */ unsigned long GdiBatchCount; union { /* off 0x1744 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x1744 */ unsigned long IdealProcessorValue; struct { /* off 0x1744 */ unsigned char ReservedPad0; /* off 0x1745 */ unsigned char ReservedPad1; /* off 0x1746 */ unsigned char ReservedPad2; /* off 0x1747 */ unsigned char IdealProcessor; }; }; /* off 0x1748 */ unsigned long GuaranteedStackBytes; /* off 0x1750 */ unsigned __int64 ReservedForPerf; /* off 0x1758 */ unsigned __int64 ReservedForOle; /* off 0x1760 */ unsigned long WaitingOnLoaderLock; /* off 0x1768 */ unsigned __int64 SavedPriorityState; /* off 0x1770 */ unsigned __int64 SoftPatchPtr1; /* off 0x1778 */ unsigned __int64 ThreadPoolData; /* off 0x1780 */ unsigned __int64 TlsExpansionSlots; /* off 0x1788 */ unsigned __int64 DeallocationBStore; /* off 0x1790 */ unsigned __int64 BStoreLimit; /* off 0x1798 */ unsigned long MuiGeneration; /* off 0x179c */ unsigned long IsImpersonating; /* off 0x17a0 */ unsigned __int64 NlsCache; /* off 0x17a8 */ unsigned __int64 pShimData; /* off 0x17b0 */ unsigned long HeapVirtualAffinity; /* off 0x17b8 */ unsigned __int64 CurrentTransactionHandle; /* off 0x17c0 */ unsigned __int64 ActiveFrame; /* off 0x17c8 */ unsigned __int64 FlsData; /* off 0x17d0 */ unsigned __int64 PreferredLanguages; /* off 0x17d8 */ unsigned __int64 UserPrefLanguages; /* off 0x17e0 */ unsigned __int64 MergedPrefLanguages; /* off 0x17e8 */ unsigned long MuiImpersonation; union { /* off 0x17ec */ unsigned short CrossTebFlags; /* off 0x17ec */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x17ee */ unsigned short SameTebFlags; struct { /* off 0x17ee */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x17ee */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x17ee */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x17ee */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x17ee */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x17ee */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x17ee */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x17ee */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x17ee */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x17ee */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x17ee */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x17ee */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x17f0 */ unsigned __int64 TxnScopeEnterCallback; /* off 0x17f8 */ unsigned __int64 TxnScopeExitCallback; /* off 0x1800 */ unsigned __int64 TxnScopeContext; /* off 0x1808 */ unsigned long LockCount; /* off 0x180c */ unsigned long SpareUlong0; /* off 0x1810 */ unsigned __int64 ResourceRetValue; }; struct _KAFFINITY_ENUMERATION_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KAFFINITY_EX* Affinity; /* off 0x0004 */ unsigned long CurrentMask; /* off 0x0008 */ unsigned short CurrentIndex; }; struct _FXSAVE_FORMAT /* sizeof 000001e0 480 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[192]; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _KSTACK_AREA /* sizeof 00000210 528 */ { union { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT NpxFrame; }; /* off 0x01e0 */ struct _KERNEL_STACK_CONTROL StackControl; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY DispatchedList; /* off 0x0008 */ unsigned long DispatchedCount; /* off 0x000c */ struct _LIST_ENTRY CompletedList; /* off 0x0014 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0028 */ unsigned long SpinLock; }; struct _PO_DEVICE_NOTIFY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _LIST_ENTRY PowerChildren; /* off 0x0010 */ struct _LIST_ENTRY PowerParents; /* off 0x0018 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x001c */ unsigned char OrderLevel; /* off 0x0020 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0024 */ unsigned short* DeviceName; /* off 0x0028 */ unsigned short* DriverName; /* off 0x002c */ unsigned long ChildCount; /* off 0x0030 */ unsigned long ActiveChild; /* off 0x0034 */ unsigned long ParentCount; /* off 0x0038 */ unsigned long ActiveParent; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000188 392 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ struct _UNICODE_STRING InstancePath; /* off 0x001c */ struct _UNICODE_STRING ServiceName; /* off 0x0024 */ struct _IRP* PendingIrp; /* off 0x0028 */ unsigned long Level; /* off 0x002c */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0068 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0078 */ enum _PNP_DEVNODE_STATE State; /* off 0x007c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0080 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00d0 */ unsigned long StateHistoryEntry; /* off 0x00d4 */ long CompletionStatus; /* off 0x00d8 */ unsigned long Flags; /* off 0x00dc */ unsigned long UserFlags; /* off 0x00e0 */ unsigned long Problem; /* off 0x00e4 */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00e8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00ec */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00f0 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00f4 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00f8 */ unsigned long BusNumber; /* off 0x00fc */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x0100 */ unsigned long ChildBusNumber; /* off 0x0104 */ unsigned short ChildBusTypeIndex; /* off 0x0106 */ unsigned char RemovalPolicy; /* off 0x0107 */ unsigned char HardwareRemovalPolicy; /* off 0x0108 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x0110 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0118 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0120 */ unsigned short NoTranslatorMask; /* off 0x0122 */ unsigned short QueryTranslatorMask; /* off 0x0124 */ unsigned short NoArbiterMask; /* off 0x0126 */ unsigned short QueryArbiterMask; /* off 0x0128 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x012c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0130 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x0134 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0138 */ unsigned long CapabilityFlags; /* off 0x013c */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x014c */ unsigned long DisableableDepends; /* off 0x0150 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0158 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0160 */ unsigned long DriverUnloadRetryCount; /* off 0x0164 */ struct _DEVICE_NODE* PreviousParent; /* off 0x0168 */ unsigned long DeletedChildren; /* off 0x016c */ unsigned long NumaNodeIndex; /* off 0x0170 */ struct _GUID ContainerID; /* off 0x0180 */ unsigned char OverrideFlags; /* off 0x0181 */ unsigned char RequiresUnloadedDriver; /* off 0x0184 */ struct _PENDING_RELATIONS_LIST_ENTRY* PendingEjectRelations; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PENDING_RELATIONS_LIST_ENTRY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0018 */ struct _PNP_DEVICE_EVENT_ENTRY* DeviceEvent; /* off 0x001c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0020 */ struct _RELATION_LIST* RelationsList; /* off 0x0024 */ struct _IRP* EjectIrp; /* off 0x0028 */ enum IRPLOCK Lock; /* off 0x002c */ unsigned long Problem; /* off 0x0030 */ unsigned char ProfileChangingEject; /* off 0x0031 */ unsigned char DisplaySafeRemovalDialog; /* off 0x0034 */ enum _SYSTEM_POWER_STATE LightestSleepState; /* off 0x0038 */ struct DOCK_INTERFACE* DockInterface; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000044 68 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 00000020 32 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned long Flags; /* off 0x0014 */ unsigned long SessionId; /* off 0x0018 */ unsigned long DataLength; /* off 0x001c */ unsigned char Data[1]; } PowerSettingNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } PropertyChangeNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000064 100 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 VetoEvent =0x00000006 ,//0 BlockedDriverEvent =0x00000007 ,//0 InvalidIDEvent =0x00000008 ,//0 DevicePropertyChangeEvent =0x00000009 ,//0 DeviceInstanceRemovalEvent =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _RELATION_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long TagCount; /* off 0x0008 */ unsigned long FirstLevel; /* off 0x000c */ unsigned long MaxLevel; /* off 0x0010 */ struct _RELATION_LIST_ENTRY* Entries[1]; }; struct _RELATION_LIST_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxCount; /* off 0x0008 */ struct _DEVICE_OBJECT* Devices[1]; }; enum IRPLOCK { IRPLOCK_CANCELABLE =0x00000000 ,//0 IRPLOCK_CANCEL_STARTED =0x00000001 ,//0 IRPLOCK_CANCEL_COMPLETE =0x00000002 ,//0 IRPLOCK_COMPLETED =0x00000003 ,//0 }; struct DOCK_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ unsigned long( __stdcall *ProfileDepartureSetMode)(void*,enum PROFILE_DEPARTURE_STYLE); /* off 0x0014 */ unsigned long( __stdcall *ProfileDepartureUpdate)(void*); }; enum PROFILE_DEPARTURE_STYLE { PDS_UPDATE_DEFAULT =0x00000001 ,//0 PDS_UPDATE_ON_REMOVE =0x00000002 ,//0 PDS_UPDATE_ON_INTERFACE =0x00000003 ,//0 PDS_UPDATE_ON_EJECT =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _PPC_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; /* off 0x0000 */ struct _PPC_DBGKD_CONTROL_SET PpcControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000020 32 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long PagesQueuedToDisk; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ unsigned long SequentialReadCount; /* off 0x0034 */ unsigned long ReadAheadLength; /* off 0x0038 */ union _LARGE_INTEGER ReadAheadOffset; /* off 0x0040 */ union _LARGE_INTEGER ReadAheadBeyondLastByte; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000158 344 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _EX_PUSH_LOCK VacbLock; /* off 0x004c */ unsigned long DirtyPages; /* off 0x0050 */ struct _LIST_ENTRY LoggedStreamLinks; /* off 0x0058 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0060 */ unsigned long Flags; /* off 0x0064 */ long Status; /* off 0x0068 */ struct _MBCB* Mbcb; /* off 0x006c */ void* Section; /* off 0x0070 */ struct _KEVENT* CreateEvent; /* off 0x0074 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0078 */ unsigned long PagesToWrite; /* off 0x0080 */ __int64 BeyondLastFlush; /* off 0x0088 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x008c */ void* LazyWriteContext; /* off 0x0090 */ struct _LIST_ENTRY PrivateList; /* off 0x0098 */ void* LogHandle; /* off 0x009c */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a0 */ unsigned long DirtyPageThreshold; /* off 0x00a4 */ unsigned long LazyWritePassCount; /* off 0x00a8 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00ac */ struct _KGUARDED_MUTEX BcbLock; /* off 0x00d0 */ union _LARGE_INTEGER LastUnmapBehindOffset; /* off 0x00d8 */ struct _KEVENT Event; /* off 0x00e8 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00f0 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0148 */ void* WriteBehindWorkQueueEntry; /* off 0x014c */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0150 */ unsigned long ProcImagePathHash; /* off 0x0154 */ unsigned long WritesInProgress; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY Links; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long VacbArrayIndex; /* off 0x0004 */ unsigned long MappingCount; /* off 0x0008 */ unsigned long HighestMappedIndex; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000088 136 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ __int64 MostRecentlyDirtiedPage; /* off 0x0028 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0048 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0068 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x000c */ unsigned char Function; }; struct VACB_LEVEL_ALLOCATION_LIST /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY VacbLevelList; /* off 0x0008 */ void* VacbLevelWithBcbListHeads; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long AllocAndFreeOps; /* off 0x0044 */ unsigned long InBlockDeccommits; /* off 0x0048 */ unsigned long InBlockDeccomitSize; /* off 0x004c */ unsigned long HighWatermarkSize; /* off 0x0050 */ unsigned long LastPolledSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0130 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; /* off 0x0068 */ void* ContextInformation; /* off 0x006c */ unsigned long OriginalBase; /* off 0x0070 */ union _LARGE_INTEGER LoadTime; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ void* SectionObject; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x000c */ void* SectionHandle; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ struct _ALPC_PORT* OwnerPort; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0004 */ unsigned long TotalHandles; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000fc 252 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ void* CompletionPort; /* off 0x0014 */ void* CompletionKey; /* off 0x0018 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x001c */ void* PortContext; /* off 0x0020 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x005c */ struct _LIST_ENTRY MainQueue; /* off 0x0064 */ struct _LIST_ENTRY PendingQueue; /* off 0x006c */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0074 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x007c */ struct _KSEMAPHORE* Semaphore; /* off 0x007c */ struct _KEVENT* DummyEvent; }; /* off 0x0080 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00ac */ struct _EX_PUSH_LOCK Lock; /* off 0x00b0 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b4 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00bc */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c0 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c4 */ struct _CALLBACK_OBJECT* CallbackObject; /* off 0x00c8 */ void* CallbackContext; /* off 0x00cc */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d4 */ long SequenceNo; /* off 0x00d8 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; /* off 0x0000 */ unsigned long EnableCompletionList:1 /* start bit 16 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00dc */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00e0 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00e4 */ struct _KALPC_MESSAGE* CachedMessage; /* off 0x00e8 */ unsigned long MainQueueLength; /* off 0x00ec */ unsigned long PendingQueueLength; /* off 0x00f0 */ unsigned long LargeMessageQueueLength; /* off 0x00f4 */ unsigned long CanceledQueueLength; /* off 0x00f8 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ struct _IO_MINI_COMPLETION_PACKET_USER* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[1]; }; struct _IO_MINI_COMPLETION_PACKET_USER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long PacketType; /* off 0x000c */ void* KeyContext; /* off 0x0010 */ void* ApcContext; /* off 0x0014 */ long IoStatus; /* off 0x0018 */ unsigned long IoStatusInformation; /* off 0x001c */ void( __stdcall *MiniPacketCallback)(struct _IO_MINI_COMPLETION_PACKET_USER*,void*); /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned char Allocated; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _CALLBACK_OBJECT /* sizeof 00000000 0 */ { }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; /* off 0x0000 */ unsigned long ViewAttributeRetrieved:1 /* start bit 14 */; /* off 0x0000 */ unsigned long InDispatch:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x005c */ void* DataUserVa; /* off 0x0060 */ void* DataSystemVa; /* off 0x0064 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x0068 */ struct _ALPC_PORT* ConnectionPort; /* off 0x006c */ struct _ETHREAD* ServerThread; /* off 0x0070 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ struct _KALPC_REGION* Region; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ void* Address; /* off 0x0018 */ unsigned long Size; /* off 0x001c */ void* SecureViewHandle; /* off 0x0020 */ void* WriteAccessHandle; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY RegionListEntry; /* off 0x0008 */ struct _KALPC_SECTION* Section; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long ViewSize; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfViews; /* off 0x0020 */ struct _LIST_ENTRY ViewListHead; /* off 0x0028 */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x002c */ struct _KALPC_VIEW* ReadWriteView; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ unsigned long TargetAccess; /* off 0x0010 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0014 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 WrKeyedEvent =0x00000015 ,//0 WrTerminated =0x00000016 ,//0 WrProcessInSwap =0x00000017 ,//0 WrCpuRateControl =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _ETHREAD* TargetThread; /* off 0x0010 */ struct _ALPC_PORT* TargetPort; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; enum _EX_POOL_PRIORITY { LowPoolPriority =0x00000000 ,//0 LowPoolPrioritySpecialPoolOverrun =0x00000008 ,//0 LowPoolPrioritySpecialPoolUnderrun =0x00000009 ,//0 NormalPoolPriority =0x00000010 ,//0 NormalPoolPrioritySpecialPoolOverrun =0x00000018 ,//0 NormalPoolPrioritySpecialPoolUnderrun =0x00000019 ,//0 HighPoolPriority =0x00000020 ,//0 HighPoolPrioritySpecialPoolOverrun =0x00000028 ,//0 HighPoolPrioritySpecialPoolUnderrun =0x00000029 ,//0 }; enum _LOCK_OPERATION { IoReadAccess =0x00000000 ,//0 IoWriteAccess =0x00000001 ,//0 IoModifyAccess =0x00000002 ,//0 }; union _FILE_SEGMENT_ELEMENT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Buffer; /* off 0x0000 */ unsigned __int64 Alignment; }; struct _RELATIVE_SYMLINK_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short ExposedNamespaceLength; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned short DeviceNameLength; /* off 0x0006 */ unsigned short Reserved; /* off 0x0008 */ struct _RELATIVE_SYMLINK_INFO* InteriorMountPoint; /* off 0x000c */ struct _UNICODE_STRING OpenedName; }; enum _IOP_PRIORITY_HINT { IopIoPriorityNotSet =0x00000000 ,//0 IopIoPriorityVeryLow =0x00000001 ,//0 IopIoPriorityLow =0x00000002 ,//0 IopIoPriorityNormal =0x00000003 ,//0 IopIoPriorityHigh =0x00000004 ,//0 IopIoPriorityCritical =0x00000005 ,//0 MaxIopIoPriorityTypes =0x00000006 ,//0 }; struct _IOP_FILE_OBJECT_EXTENSION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long FoExtFlags; /* off 0x0004 */ void* FoExtPerTypeExtension[7]; /* off 0x0020 */ enum _IOP_PRIORITY_HINT FoIoPriorityHint; }; enum _TRANSFER_TYPE { ReadTransfer =0x00000000 ,//0 WriteTransfer =0x00000001 ,//0 OtherTransfer =0x00000002 ,//0 }; struct _OPEN_PACKET /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ long FinalStatus; /* off 0x000c */ unsigned long Information; /* off 0x0010 */ unsigned long ParseCheck; /* off 0x0014 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0018 */ struct _OBJECT_ATTRIBUTES* OriginalAttributes; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ unsigned long CreateOptions; /* off 0x002c */ unsigned short FileAttributes; /* off 0x002e */ unsigned short ShareAccess; /* off 0x0030 */ void* EaBuffer; /* off 0x0034 */ unsigned long EaLength; /* off 0x0038 */ unsigned long Options; /* off 0x003c */ unsigned long Disposition; /* off 0x0040 */ struct _FILE_BASIC_INFORMATION* BasicInformation; /* off 0x0044 */ struct _FILE_NETWORK_OPEN_INFORMATION* NetworkInformation; /* off 0x0048 */ enum _CREATE_FILE_TYPE CreateFileType; /* off 0x004c */ void* MailslotOrPipeParameters; /* off 0x0050 */ unsigned char Override; /* off 0x0051 */ unsigned char QueryOnly; /* off 0x0052 */ unsigned char DeleteOnly; /* off 0x0053 */ unsigned char FullAttributes; /* off 0x0054 */ struct _DUMMY_FILE_OBJECT* LocalFileObject; /* off 0x0058 */ unsigned long InternalFlags; /* off 0x005c */ struct _IO_DRIVER_CREATE_CONTEXT DriverCreateContext; }; enum _CREATE_FILE_TYPE { CreateFileTypeNone =0x00000000 ,//0 CreateFileTypeNamedPipe =0x00000001 ,//0 CreateFileTypeMailslot =0x00000002 ,//0 }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _EX_PUSH_LOCK Lock; /* off 0x000c */ unsigned char TypeIndex; /* off 0x000d */ unsigned char TraceFlags; /* off 0x000e */ unsigned char InfoMask; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _DUMMY_FILE_OBJECT /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _OBJECT_HEADER ObjectHeader; /* off 0x0020 */ char FileObjectBody[128]; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ char ProbeMode; /* off 0x000c */ unsigned long PagedPoolCharge; /* off 0x0010 */ unsigned long NonPagedPoolCharge; /* off 0x0014 */ unsigned long SecurityDescriptorCharge; /* off 0x0018 */ void* SecurityDescriptor; /* off 0x001c */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long LoggerId; /* off 0x0004 */ unsigned long BufferSize; /* off 0x0008 */ unsigned long MaximumEventSize; /* off 0x000c */ long CollectionOn; /* off 0x0010 */ unsigned long LoggerMode; /* off 0x0014 */ long AcceptNewEvents; /* off 0x0018 */ __int64( __stdcall *GetCpuClock)(); /* off 0x0020 */ union _LARGE_INTEGER StartTime; /* off 0x0028 */ void* LogFileHandle; /* off 0x002c */ struct _ETHREAD* LoggerThread; /* off 0x0030 */ long LoggerStatus; /* off 0x0034 */ void* NBQHead; /* off 0x0038 */ void* OverflowNBQHead; /* off 0x0040 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0048 */ struct _LIST_ENTRY GlobalList; union { /* off 0x0050 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0050 */ struct _EX_FAST_REF CurrentBuffer; }; /* off 0x0054 */ struct _UNICODE_STRING LoggerName; /* off 0x005c */ struct _UNICODE_STRING LogFileName; /* off 0x0064 */ struct _UNICODE_STRING LogFilePattern; /* off 0x006c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0074 */ unsigned long ClockType; /* off 0x0078 */ unsigned long MaximumFileSize; /* off 0x007c */ unsigned long LastFlushedBuffer; /* off 0x0080 */ unsigned long FlushTimer; /* off 0x0084 */ unsigned long FlushThreshold; /* off 0x0088 */ union _LARGE_INTEGER ByteOffset; /* off 0x0090 */ unsigned long MinimumBuffers; /* off 0x0094 */ long BuffersAvailable; /* off 0x0098 */ long NumberOfBuffers; /* off 0x009c */ unsigned long MaximumBuffers; /* off 0x00a0 */ unsigned long EventsLost; /* off 0x00a4 */ unsigned long BuffersWritten; /* off 0x00a8 */ unsigned long LogBuffersLost; /* off 0x00ac */ unsigned long RealTimeBuffersDelivered; /* off 0x00b0 */ unsigned long RealTimeBuffersLost; /* off 0x00b4 */ long* SequencePtr; /* off 0x00b8 */ unsigned long LocalSequence; /* off 0x00bc */ struct _GUID InstanceGuid; /* off 0x00cc */ long FileCounter; /* off 0x00d0 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d4 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ struct _LIST_ENTRY Consumers; /* off 0x00f0 */ unsigned long NumConsumers; /* off 0x00f4 */ struct _ETW_REALTIME_CONSUMER* TransitionConsumer; /* off 0x00f8 */ void* RealtimeLogfileHandle; /* off 0x00fc */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0108 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0110 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0120 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0128 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0130 */ unsigned long RealtimeBuffersSaved; /* off 0x0138 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0148 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x014c */ struct _KEVENT LoggerEvent; /* off 0x015c */ struct _KEVENT FlushEvent; /* off 0x0170 */ struct _KTIMER FlushTimeOutTimer; /* off 0x0198 */ struct _KDPC FlushDpc; /* off 0x01b8 */ struct _KMUTANT LoggerMutex; /* off 0x01d8 */ struct _EX_PUSH_LOCK LoggerLock; union { /* off 0x01dc */ unsigned long BufferListSpinLock; /* off 0x01dc */ struct _EX_PUSH_LOCK BufferListPushLock; }; /* off 0x01e0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x021c */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0220 */ __int64 BufferSequenceNumber; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0228 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0228 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0228 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0228 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0228 */ unsigned long NoMoreEnable:1 /* start bit 6 */; /* off 0x0228 */ unsigned long StackTracing:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ErrorLogged:1 /* start bit 8 */; /* off 0x0228 */ unsigned long RealtimeLoggerContextFreed:1 /* start bit 9 */; }; }; union { /* off 0x022c */ unsigned long RequestFlag; struct { /* off 0x022c */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x022c */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x022c */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x022c */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x022c */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; /* off 0x022c */ unsigned long RequestConnectConsumer:1 /* start bit 5 */; }; }; /* off 0x0230 */ struct _RTL_BITMAP HookIdMap; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x0038 */ struct _LIST_ENTRY GlobalEntry; struct { /* off 0x0038 */ void* Pointer0; /* off 0x003c */ void* Pointer1; }; }; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; struct _ETW_REALTIME_CONSUMER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ void* ProcessHandle; /* off 0x000c */ struct _EPROCESS* ProcessObject; /* off 0x0010 */ void* NextNotDelivered; /* off 0x0014 */ void* RealtimeConnectContext; /* off 0x0018 */ struct _KEVENT* DisconnectEvent; /* off 0x001c */ struct _KEVENT* DataAvailableEvent; /* off 0x0020 */ unsigned long* UserBufferCount; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY* UserBufferListHead; /* off 0x0028 */ unsigned long BuffersLost; /* off 0x002c */ unsigned long EmptyBuffersCount; /* off 0x0030 */ unsigned long LoggerId; /* off 0x0034 */ unsigned char ShutDownRequested; /* off 0x0035 */ unsigned char NewBuffersLost; /* off 0x0036 */ unsigned char Disconnected; /* off 0x0038 */ struct _RTL_BITMAP ReservedBufferSpaceBitMap; /* off 0x0040 */ unsigned char* ReservedBufferSpace; /* off 0x0044 */ unsigned long ReservedBufferSpaceSize; /* off 0x0048 */ unsigned long UserPagesAllocated; /* off 0x004c */ unsigned long UserPagesReused; }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _ETW_LOGGER_HANDLE /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char DereferenceAndLeave; }; struct _ETW_BUFFER_HANDLE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _WMI_BUFFER_HEADER* TraceBuffer; /* off 0x0004 */ struct _EX_FAST_REF* BufferFastRef; }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; struct _NBQUEUE_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SListEntry; /* off 0x0008 */ unsigned __int64 Next; /* off 0x0010 */ unsigned __int64 Data; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000178 376 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; union { /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0028 */ unsigned __int64 MatchId; }; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; /* off 0x0158 */ struct _EVENT_FILTER_HEADER* FilterData[8]; }; struct _EVENT_FILTER_HEADER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Reserved[5]; /* off 0x0008 */ unsigned __int64 InstanceId; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long NextOffset; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c0 */ struct _LUID OriginatingLogonSession; /* off 0x00c8 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0150 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01d8 */ struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION* pSecurityAttributes; /* off 0x01dc */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long SecurityAttributeCount; /* off 0x0004 */ struct _LIST_ENTRY SecurityAttributesList; /* off 0x000c */ unsigned long WorkingSecurityAttributeCount; /* off 0x0010 */ struct _LIST_ENTRY WorkingSecurityAttributesList; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ void* SecurityDescriptorQuotaBlock; }; struct _OBJECT_HEADER_PROCESS_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* ExclusiveProcess; /* off 0x0004 */ unsigned long Reserved; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ long ReferenceCount; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x000f */ unsigned char LockedExclusive; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ struct _KAFFINITY_EX Processors; /* off 0x0018 */ unsigned long SamplingPeriod; /* off 0x001c */ unsigned long CurrentTemperature; /* off 0x0020 */ unsigned long PassiveTripPoint; /* off 0x0024 */ unsigned long CriticalTripPoint; /* off 0x0028 */ unsigned char ActiveTripPointCount; /* off 0x002c */ unsigned long ActiveTripPoint[10]; /* off 0x0054 */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; /* off 0x0008 */ unsigned long Tag; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 00000048 72 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; /* off 0x003c */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0044 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001140 4416 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; union { /* off 0x0004 */ struct _KGUARDED_MUTEX PagedLock; /* off 0x0004 */ unsigned long NonPagedLock; }; /* off 0x0040 */ long RunningAllocs; /* off 0x0044 */ long RunningDeAllocs; /* off 0x0048 */ long TotalBigPages; /* off 0x004c */ long ThreadsProcessingDeferrals; /* off 0x0050 */ unsigned long TotalBytes; /* off 0x0080 */ unsigned long PoolIndex; /* off 0x00c0 */ long TotalPages; /* off 0x0100 */ void** PendingFrees; /* off 0x0104 */ long PendingFreeDepth; /* off 0x0140 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000278 632 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ unsigned long Number; /* off 0x0038 */ unsigned char ShareVector; /* off 0x0039 */ char Pad[3]; /* off 0x003c */ enum _KINTERRUPT_MODE Mode; /* off 0x0040 */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0044 */ unsigned long ServiceCount; /* off 0x0048 */ unsigned long DispatchCount; /* off 0x0050 */ unsigned __int64 Rsvd1; /* off 0x0058 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ unsigned long CmKcbCacheSize; /* off 0x001c */ struct _CMHIVE* CmHive2; /* off 0x0020 */ unsigned char HiveMounted; /* off 0x0021 */ unsigned char ThreadFinished; /* off 0x0022 */ unsigned char ThreadStarted; /* off 0x0023 */ unsigned char Allocate; /* off 0x0024 */ unsigned char WinPERequired; /* off 0x0028 */ struct _KEVENT StartEvent; /* off 0x0038 */ struct _KEVENT FinishedEvent; /* off 0x0048 */ struct _KEVENT MountLock; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ struct _ETHREAD* Thread; /* off 0x0008 */ void* StackTrace[62]; }; struct _LAZY_WRITER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _KDPC ScanDpc; /* off 0x0020 */ struct _KTIMER ScanTimer; /* off 0x0048 */ unsigned char ScanActive; /* off 0x0049 */ unsigned char OtherWork; /* off 0x004a */ unsigned char PendingTeardownScan; /* off 0x004b */ unsigned char PendingPeriodicScan; /* off 0x004c */ unsigned char PendingLowMemoryScan; /* off 0x004d */ unsigned char PendingPowerScan; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; struct _IO_WORKITEM /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ void( __stdcall *Routine)(void*,void*,struct _IO_WORKITEM*); /* off 0x0014 */ void* IoObject; /* off 0x0018 */ void* Context; /* off 0x001c */ unsigned long Type; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_LSASS_ID =0x0000008a ,//0 DPFLTR_SSPICLI_ID =0x0000008b ,//0 DPFLTR_CNG_ID =0x0000008c ,//0 DPFLTR_EXFAT_ID =0x0000008d ,//0 DPFLTR_FILETRACE_ID =0x0000008e ,//0 DPFLTR_XSAVE_ID =0x0000008f ,//0 DPFLTR_SE_ID =0x00000090 ,//0 DPFLTR_DRIVEEXTENDER_ID =0x00000091 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000092 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; struct _ALIGNED_AFFINITY_SUMMARY /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX CpuSet; /* off 0x000c */ struct _KAFFINITY_EX SMTSet; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; /* off 0x0078 */ unsigned long ActivityCounter; /* off 0x007c */ unsigned long PreviousActivityCounter; /* off 0x0080 */ unsigned long WorkerTrimRequests; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x0089 */ unsigned char WakeTimer; /* off 0x008c */ struct _LIST_ENTRY WakeTimerListEntry; }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POWER_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE_METRICS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _ERESOURCE MetricsResource; /* off 0x0038 */ unsigned long ActiveCount; /* off 0x003c */ unsigned long PassiveCount; /* off 0x0040 */ union _LARGE_INTEGER LastActiveStartTick; /* off 0x0048 */ union _LARGE_INTEGER AverageActiveTime; /* off 0x0050 */ union _LARGE_INTEGER LastPassiveStartTick; /* off 0x0058 */ union _LARGE_INTEGER AveragePassiveTime; /* off 0x0060 */ union _LARGE_INTEGER StartTickSinceLastReset; }; struct _POP_THERMAL_ZONE /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; /* off 0x00e0 */ union _LARGE_INTEGER InfoLastUpdateTime; /* off 0x00e8 */ struct _POP_THERMAL_ZONE_METRICS Metrics; }; enum POWER_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPoolPaged =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaSpecialPoolNonPaged =0x0000000d ,//0 MiVaMaximumType =0x0000000e ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct _VF_AVL_TREE_NODE /* sizeof 00000008 8 */ { /* off 0x0000 */ void* p; /* off 0x0004 */ unsigned long RangeSize; }; struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VERIFIER_SHARED_EXPORT_THUNK* SharedExportThunks; /* off 0x0004 */ struct _VERIFIER_SHARED_EXPORT_THUNK* PoolSharedExportThunks; /* off 0x0008 */ struct _VERIFIER_SHARED_EXPORT_THUNK* OrderDependentSharedExportThunks; }; struct _VF_TARGET_DRIVER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _VF_AVL_TREE_NODE TreeNode; /* off 0x0008 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SnapSharedExportsFailed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; } u1; /* off 0x0014 */ struct _VF_TARGET_VERIFIED_DRIVER_DATA* VerifiedData; }; struct _VERIFIER_SHARED_EXPORT_THUNK /* sizeof 00000000 0 */ { }; struct _VF_TARGET_VERIFIED_DRIVER_DATA /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _VF_SUSPECT_DRIVER_ENTRY* SuspectDriverEntry; /* off 0x0004 */ void* WMICallback; /* off 0x0008 */ struct _LIST_ENTRY EtwHandlesListHead; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MissedEtwRegistration:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0014 */ unsigned long Signature; /* off 0x0018 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0020 */ union _SLIST_HEADER PoolTrackers; /* off 0x0028 */ unsigned long CurrentPagedPoolAllocations; /* off 0x002c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0030 */ unsigned long PeakPagedPoolAllocations; /* off 0x0034 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0038 */ unsigned long PagedBytes; /* off 0x003c */ unsigned long NonPagedBytes; /* off 0x0040 */ unsigned long PeakPagedBytes; /* off 0x0044 */ unsigned long PeakNonPagedBytes; /* off 0x0048 */ unsigned long RaiseIrqls; /* off 0x004c */ unsigned long AcquireSpinLocks; /* off 0x0050 */ unsigned long SynchronizeExecutions; /* off 0x0054 */ unsigned long AllocationsWithNoTag; /* off 0x0058 */ unsigned long AllocationsFailed; /* off 0x005c */ unsigned long AllocationsFailedDeliberately; /* off 0x0060 */ unsigned long LockedBytes; /* off 0x0064 */ unsigned long PeakLockedBytes; /* off 0x0068 */ unsigned long MappedLockedBytes; /* off 0x006c */ unsigned long PeakMappedLockedBytes; /* off 0x0070 */ unsigned long MappedIoSpaceBytes; /* off 0x0074 */ unsigned long PeakMappedIoSpaceBytes; /* off 0x0078 */ unsigned long PagesForMdlBytes; /* off 0x007c */ unsigned long PeakPagesForMdlBytes; /* off 0x0080 */ unsigned long ContiguousMemoryBytes; /* off 0x0084 */ unsigned long PeakContiguousMemoryBytes; /* off 0x0088 */ struct _LIST_ENTRY ContiguousMemoryListHead; }; struct _VF_SUSPECT_DRIVER_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _KWAIT_STATE { WaitInProgress =0x00000000 ,//0 WaitCommitted =0x00000001 ,//0 WaitAborted =0x00000002 ,//0 MaximumWaitState =0x00000003 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct _POP_SYSTEM_IDLE /* sizeof 00000038 56 */ { /* off 0x0000 */ long AverageIdleness; /* off 0x0004 */ long LowestIdleness; /* off 0x0008 */ unsigned long Time; /* off 0x000c */ unsigned long Timeout; /* off 0x0010 */ unsigned long LastUserInput; /* off 0x0014 */ struct POWER_ACTION_POLICY Action; /* off 0x0020 */ enum _SYSTEM_POWER_STATE MinState; /* off 0x0024 */ unsigned char SystemRequired; /* off 0x0025 */ unsigned char IdleWorker; /* off 0x0026 */ unsigned char Sampling; /* off 0x0028 */ unsigned __int64 LastTick; /* off 0x0030 */ unsigned long LastSystemRequiredTime; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _ETW_WMITRACE_WORK /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long LoggerId; union { struct { /* off 0x0008 */ char LoggerName[65]; /* off 0x0049 */ char FileName[129]; /* off 0x00cc */ unsigned long MaximumFileSize; /* off 0x00d0 */ unsigned long MinBuffers; /* off 0x00d4 */ unsigned long MaxBuffers; /* off 0x00d8 */ unsigned long BufferSize; /* off 0x00dc */ unsigned long Mode; /* off 0x00e0 */ unsigned long FlushTimer; }; struct { /* off 0x0008 */ unsigned __int64 MatchAny; /* off 0x0010 */ unsigned __int64 MatchAll; /* off 0x0018 */ unsigned long EnableProperty; /* off 0x001c */ struct _GUID Guid; /* off 0x002c */ unsigned char Level; }; }; /* off 0x00e8 */ long Status; }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _PNP_DEVICE_COMPLETION_REQUEST /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_NODE* DeviceNode; /* off 0x000c */ void* Context; /* off 0x0010 */ enum _PNP_DEVNODE_STATE CompletionState; /* off 0x0014 */ unsigned long IrpPended; /* off 0x0018 */ long Status; /* off 0x001c */ void* Information; /* off 0x0020 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0030 */ struct _DRIVER_OBJECT* FailingDriver; /* off 0x0034 */ long ReferenceCount; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 0 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; } Flags; /* off 0x0030 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x003c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long PStateContext; /* off 0x0044 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0048 */ unsigned long TStateContext; /* off 0x004c */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x0050 */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0058 */ struct _PPM_PERF_STATE State[1]; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000b0 176 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POWER_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ unsigned __int64 ProgrammedRTCTime; /* off 0x0058 */ unsigned char WakeOnRTC; /* off 0x005c */ struct _DIAGNOSTIC_BUFFER* WakeTimerInfo; /* off 0x0060 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000170 368 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[9]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0190 */ struct _LIST_ENTRY Pending; /* off 0x0198 */ long Status; /* off 0x019c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x01a0 */ unsigned char Waking; /* off 0x01a1 */ unsigned char Cancelled; /* off 0x01a2 */ unsigned char IgnoreErrors; /* off 0x01a3 */ unsigned char IgnoreNotImplemented; /* off 0x01a4 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_HIBER_CONTEXT /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char Reset; /* off 0x0004 */ unsigned char HiberFlags; /* off 0x0005 */ unsigned char WroteHiberFile; /* off 0x0006 */ unsigned char MapFrozen; /* off 0x0008 */ struct _RTL_BITMAP MemoryMap; /* off 0x0010 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0018 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0020 */ unsigned long ClonedRangeCount; /* off 0x0024 */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0028 */ unsigned long NextPreserve; /* off 0x002c */ struct _MDL* LoaderMdl; /* off 0x0030 */ struct _MDL* AllocatedMdl; /* off 0x0038 */ unsigned __int64 PagesOut; /* off 0x0040 */ void* IoPages; /* off 0x0044 */ unsigned long IoPagesCount; /* off 0x0048 */ void* CurrentMcb; /* off 0x004c */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0050 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0054 */ unsigned long PreferredIoWriteSize; /* off 0x0058 */ unsigned long IoProgress; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ void* CompressionWorkspace; /* off 0x0074 */ unsigned char* CompressedWriteBuffer; /* off 0x0078 */ unsigned long CompressedWriteBufferSize; /* off 0x007c */ unsigned long MaxCompressedOutputSize; /* off 0x0080 */ unsigned long* PerformanceStats; /* off 0x0084 */ void* CompressionBlock; /* off 0x0088 */ void* DmaIO; /* off 0x008c */ void* TemporaryHeap; /* off 0x0090 */ struct _MDL* BootLoaderLogMdl; /* off 0x0094 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x0098 */ void* ResumeContext; /* off 0x009c */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct _PO_HIBER_PERF /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 ElapsedTicks; /* off 0x0020 */ unsigned __int64 CompressTicks; /* off 0x0028 */ unsigned __int64 ResumeAppTime; /* off 0x0030 */ unsigned __int64 HiberFileResumeTime; /* off 0x0038 */ unsigned __int64 BytesCopied; /* off 0x0040 */ unsigned __int64 PagesProcessed; /* off 0x0048 */ unsigned long PagesWritten; /* off 0x004c */ unsigned long DumpCount; /* off 0x0050 */ unsigned long FileRuns; }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long FirstTablePage; /* off 0x0050 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00a8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00ac */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00b0 */ unsigned long NoBootLoaderLogPages; /* off 0x00b4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00d4 */ unsigned long NotUsed; /* off 0x00d8 */ unsigned long ResumeContextCheck; /* off 0x00dc */ unsigned long ResumeContextPages; }; struct _DIAGNOSTIC_BUFFER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0008 */ unsigned long ProcessImageNameOffset; union { struct { /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ unsigned long ServiceTag; }; struct { /* off 0x0008 */ unsigned long DeviceDescriptionOffset; }; struct { /* off 0x000c */ unsigned long DevicePathOffset; }; }; }; }; /* off 0x0014 */ unsigned long ReasonOffset; }; enum _REQUESTER_TYPE { KernelRequester =0x00000000 ,//0 UserProcessRequester =0x00000001 ,//0 UserSharedServiceRequester =0x00000002 ,//0 }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ unsigned long SessionId; /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL_PTE_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _MMPTE FreePteHead; /* off 0x0008 */ struct _MMPTE FreePteTail; }; struct _MI_SPECIAL_POOL /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ unsigned long Lock; /* off 0x0008 */ struct _MI_SPECIAL_POOL_PTE_LIST Paged; /* off 0x0018 */ struct _MI_SPECIAL_POOL_PTE_LIST NonPaged; /* off 0x0028 */ long PagesInUse; /* off 0x002c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Hint; /* off 0x0010 */ struct _MMPTE* BasePte; /* off 0x0014 */ unsigned long* FailureCount; /* off 0x0018 */ struct _MMSUPPORT* Vm; /* off 0x001c */ long TotalSystemPtes; /* off 0x0020 */ long TotalFreeSystemPtes; /* off 0x0024 */ long CachedPteCount; /* off 0x0028 */ unsigned long PteFailures; union { /* off 0x002c */ unsigned long SpinLock; /* off 0x002c */ struct _KGUARDED_MUTEX* GlobalMutex; }; }; struct _MM_SESSION_SPACE /* sizeof 00002040 8256 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0050 */ struct _LIST_ENTRY ImageList; /* off 0x0058 */ unsigned long LocaleId; /* off 0x005c */ unsigned long AttachCount; /* off 0x0060 */ struct _KGATE AttachGate; /* off 0x0070 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0ddc */ struct _MMWSLE* Wsle; /* off 0x0de0 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0e00 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1f40 */ struct _MMPTE* PageTables; /* off 0x1f48 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1f80 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1fa0 */ long PoolBigEntriesInUse; /* off 0x1fa4 */ unsigned long PagedPoolPdeCount; /* off 0x1fa8 */ unsigned long SpecialPoolPdeCount; /* off 0x1fac */ unsigned long DynamicSessionPdeCount; /* off 0x1fb0 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1fe0 */ void* PoolTrackTableExpansion; /* off 0x1fe4 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1fe8 */ void* PoolTrackBigPages; /* off 0x1fec */ unsigned long PoolTrackBigPagesSize; /* off 0x1ff0 */ enum _IO_SESSION_STATE IoState; /* off 0x1ff4 */ unsigned long IoStateSequence; /* off 0x1ff8 */ struct _KEVENT IoNotificationEvent; /* off 0x2008 */ struct _RTL_BITMAP SessionPoolPdes; /* off 0x2010 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _MMVIEW /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; /* off 0x0008 */ struct _LIST_ENTRY ViewLinks; /* off 0x0010 */ void* SessionViewVa; /* off 0x0014 */ unsigned long SessionId; }; enum _IO_SESSION_STATE { IoSessionStateCreated =0x00000001 ,//0 IoSessionStateInitialized =0x00000002 ,//0 IoSessionStateConnected =0x00000003 ,//0 IoSessionStateDisconnected =0x00000004 ,//0 IoSessionStateDisconnectedLoggedOn =0x00000005 ,//0 IoSessionStateLoggedOn =0x00000006 ,//0 IoSessionStateLoggedOff =0x00000007 ,//0 IoSessionStateTerminated =0x00000008 ,//0 IoSessionStateMax =0x00000009 ,//0 }; union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR_SECTION /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockInStackQueuedSpinLock =0x00000006 ,//0 VfDeadlockUnusedSpinLock =0x00000007 ,//0 VfDeadlockEresource =0x00000008 ,//0 VfDeadlockTypeMaximum =0x00000009 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; /* off 0x001c */ unsigned char ThreadUsesEresources; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; struct _PNP_DEVICE_ACTION_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ enum _PNP_DEVICE_ACTION_REQUEST RequestType; /* off 0x0010 */ unsigned char ReorderingBarrier; /* off 0x0014 */ unsigned long RequestArgument; /* off 0x0018 */ struct _KEVENT* CompletionEvent; /* off 0x001c */ long* CompletionStatus; }; enum _PNP_DEVICE_ACTION_REQUEST { AssignResources =0x00000000 ,//0 ClearDeviceProblem =0x00000001 ,//0 ClearProblem =0x00000002 ,//0 ClearEjectProblem =0x00000003 ,//0 HaltDevice =0x00000004 ,//0 QueryPowerRelations =0x00000005 ,//0 Rebalance =0x00000006 ,//0 ReenumerateBootDevices =0x00000007 ,//0 ReenumerateDeviceOnly =0x00000008 ,//0 ReenumerateDeviceTree =0x00000009 ,//0 ReenumerateRootDevices =0x0000000a ,//0 RequeryDeviceState =0x0000000b ,//0 ResetDevice =0x0000000c ,//0 ResourceRequirementsChanged =0x0000000d ,//0 RestartEnumeration =0x0000000e ,//0 SetDeviceProblem =0x0000000f ,//0 StartDevice =0x00000010 ,//0 StartSystemDevicesPass0 =0x00000011 ,//0 StartSystemDevicesPass1 =0x00000012 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _VF_KE_CRITICAL_REGION_TRACE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[7]; }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; enum _KWAIT_BLOCK_STATE { WaitBlockBypassStart =0x00000000 ,//0 WaitBlockBypassComplete =0x00000001 ,//0 WaitBlockActive =0x00000002 ,//0 WaitBlockInactive =0x00000003 ,//0 WaitBlockAllStates =0x00000004 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _VF_AVL_TREE /* sizeof 00000040 64 */ { /* off 0x0000 */ long Lock; /* off 0x0004 */ void* NodeToFree; /* off 0x0008 */ unsigned long NodeRangeSize; /* off 0x000c */ unsigned long NodeCount; /* off 0x0010 */ struct _VF_AVL_TABLE* Tables; /* off 0x0014 */ unsigned long TablesNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NodeSize; /* off 0x0000 */ unsigned long UseLookaside; } u1; }; struct _VF_AVL_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE RtlTable; /* off 0x0038 */ struct _VF_AVL_TREE_NODE* ReservedNode; }; enum _KPROCESS_STATE { ProcessInMemory =0x00000000 ,//0 ProcessOutOfMemory =0x00000001 ,//0 ProcessInTransition =0x00000002 ,//0 ProcessOutTransition =0x00000003 ,//0 ProcessInSwap =0x00000004 ,//0 ProcessOutSwap =0x00000005 ,//0 ProcessAllSwapStates =0x00000006 ,//0 }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; enum _WORKING_SET_TYPE { WorkingSetTypeUser =0x00000000 ,//0 WorkingSetTypeSession =0x00000001 ,//0 WorkingSetTypeSystemTypes =0x00000002 ,//0 WorkingSetTypeSystemCache =0x00000002 ,//0 WorkingSetTypePagedPool =0x00000003 ,//0 WorkingSetTypeSystemPtes =0x00000004 ,//0 WorkingSetTypeMaximum =0x00000005 ,//0 }; struct _VF_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VF_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VF_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _FILE_OBJECT_EXTENSION_TYPE { FoExtTypeTransactionParams =0x00000000 ,//0 FoExtTypeDeviceObjectHint =0x00000001 ,//0 FoExtTypeIosbRange =0x00000002 ,//0 FoExtTypeGeneric =0x00000003 ,//0 FoExtTypeSfio =0x00000004 ,//0 FoExtTypeSymlink =0x00000005 ,//0 FoExtTypeOplockKey =0x00000006 ,//0 MaxFoExtTypes =0x00000007 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000024 36 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; }; ================================================ FILE: Addition/WindowKernel/ntkrpamp_6.1.7601.0.h ================================================ struct LIST_ENTRY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Flink; /* off 0x0008 */ unsigned __int64 Blink; }; struct LIST_ENTRY32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0004 */ unsigned long Blink; }; struct _KSYSTEM_TIME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long High1Time; /* off 0x0008 */ long High2Time; }; union _LARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; } u; /* off 0x0000 */ __int64 QuadPart; }; struct _XSTATE_FEATURE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long Size; }; struct _XSTATE_CONFIGURATION /* sizeof 00000210 528 */ { /* off 0x0000 */ unsigned __int64 EnabledFeatures; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long OptimizedSave:1 /* start bit 0 */; /* off 0x0010 */ struct _XSTATE_FEATURE Features[64]; }; struct _KUSER_SHARED_DATA /* sizeof 000005f0 1520 */ { /* off 0x0000 */ unsigned long TickCountLowDeprecated; /* off 0x0004 */ unsigned long TickCountMultiplier; /* off 0x0008 */ struct _KSYSTEM_TIME InterruptTime; /* off 0x0014 */ struct _KSYSTEM_TIME SystemTime; /* off 0x0020 */ struct _KSYSTEM_TIME TimeZoneBias; /* off 0x002c */ unsigned short ImageNumberLow; /* off 0x002e */ unsigned short ImageNumberHigh; /* off 0x0030 */ wchar NtSystemRoot[260]; /* off 0x0238 */ unsigned long MaxStackTraceDepth; /* off 0x023c */ unsigned long CryptoExponent; /* off 0x0240 */ unsigned long TimeZoneId; /* off 0x0244 */ unsigned long LargePageMinimum; /* off 0x0248 */ unsigned long Reserved2[7]; /* off 0x0264 */ enum _NT_PRODUCT_TYPE NtProductType; /* off 0x0268 */ unsigned char ProductTypeIsValid; /* off 0x026c */ unsigned long NtMajorVersion; /* off 0x0270 */ unsigned long NtMinorVersion; /* off 0x0274 */ unsigned char ProcessorFeatures[64]; /* off 0x02b4 */ unsigned long Reserved1; /* off 0x02b8 */ unsigned long Reserved3; /* off 0x02bc */ unsigned long TimeSlip; /* off 0x02c0 */ enum _ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; /* off 0x02c4 */ unsigned long AltArchitecturePad[1]; /* off 0x02c8 */ union _LARGE_INTEGER SystemExpirationDate; /* off 0x02d0 */ unsigned long SuiteMask; /* off 0x02d4 */ unsigned char KdDebuggerEnabled; /* off 0x02d5 */ unsigned char NXSupportPolicy; /* off 0x02d8 */ unsigned long ActiveConsoleId; /* off 0x02dc */ unsigned long DismountCount; /* off 0x02e0 */ unsigned long ComPlusPackage; /* off 0x02e4 */ unsigned long LastSystemRITEventTickCount; /* off 0x02e8 */ unsigned long NumberOfPhysicalPages; /* off 0x02ec */ unsigned char SafeBootMode; union { /* off 0x02ed */ unsigned char TscQpcData; struct { /* off 0x02ed */ unsigned char TscQpcEnabled:1 /* start bit 0 */; /* off 0x02ed */ unsigned char TscQpcSpareFlag:1 /* start bit 1 */; /* off 0x02ed */ unsigned char TscQpcShift:6 /* start bit 2 */; }; }; /* off 0x02ee */ unsigned char TscQpcPad[2]; union { /* off 0x02f0 */ unsigned long SharedDataFlags; struct { /* off 0x02f0 */ unsigned long DbgErrorPortPresent:1 /* start bit 0 */; /* off 0x02f0 */ unsigned long DbgElevationEnabled:1 /* start bit 1 */; /* off 0x02f0 */ unsigned long DbgVirtEnabled:1 /* start bit 2 */; /* off 0x02f0 */ unsigned long DbgInstallerDetectEnabled:1 /* start bit 3 */; /* off 0x02f0 */ unsigned long DbgSystemDllRelocated:1 /* start bit 4 */; /* off 0x02f0 */ unsigned long DbgDynProcessorEnabled:1 /* start bit 5 */; /* off 0x02f0 */ unsigned long DbgSEHValidationEnabled:1 /* start bit 6 */; /* off 0x02f0 */ unsigned long SpareBits:25 /* start bit 7 */; }; }; /* off 0x02f4 */ unsigned long DataFlagsPad[1]; /* off 0x02f8 */ unsigned __int64 TestRetInstruction; /* off 0x0300 */ unsigned long SystemCall; /* off 0x0304 */ unsigned long SystemCallReturn; /* off 0x0308 */ unsigned __int64 SystemCallPad[3]; union { /* off 0x0320 */ struct _KSYSTEM_TIME TickCount; /* off 0x0320 */ unsigned __int64 TickCountQuad; /* off 0x0320 */ unsigned long ReservedTickCountOverlay[3]; }; /* off 0x032c */ unsigned long TickCountPad[1]; /* off 0x0330 */ unsigned long Cookie; /* off 0x0334 */ unsigned long CookiePad[1]; /* off 0x0338 */ __int64 ConsoleSessionForegroundProcessId; /* off 0x0340 */ unsigned long Wow64SharedInformation[16]; /* off 0x0380 */ unsigned short UserModeGlobalLogger[16]; /* off 0x03a0 */ unsigned long ImageFileExecutionOptions; /* off 0x03a4 */ unsigned long LangGenerationCount; /* off 0x03a8 */ unsigned __int64 Reserved5; /* off 0x03b0 */ unsigned __int64 InterruptTimeBias; /* off 0x03b8 */ unsigned __int64 TscQpcBias; /* off 0x03c0 */ unsigned long ActiveProcessorCount; /* off 0x03c4 */ unsigned short ActiveGroupCount; /* off 0x03c6 */ unsigned short Reserved4; /* off 0x03c8 */ unsigned long AitSamplingValue; /* off 0x03cc */ unsigned long AppCompatFlag; /* off 0x03d0 */ unsigned __int64 SystemDllNativeRelocation; /* off 0x03d8 */ unsigned long SystemDllWowRelocation; /* off 0x03dc */ unsigned long XStatePad[1]; /* off 0x03e0 */ struct _XSTATE_CONFIGURATION XState; }; enum _NT_PRODUCT_TYPE { NtProductWinNt =0x00000001 ,//0 NtProductLanManNt =0x00000002 ,//0 NtProductServer =0x00000003 ,//0 }; enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign =0x00000000 ,//0 NEC98x86 =0x00000001 ,//0 EndAlternatives =0x00000002 ,//0 }; union _ULARGE_INTEGER /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; } u; /* off 0x0000 */ unsigned __int64 QuadPart; }; struct _TP_CALLBACK_ENVIRON_V3 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _TP_POOL* Pool; /* off 0x0008 */ struct _TP_CLEANUP_GROUP* CleanupGroup; /* off 0x000c */ void( __stdcall *CleanupGroupCancelCallback)(void*,void*); /* off 0x0010 */ void* RaceDll; /* off 0x0014 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0018 */ void( __stdcall *FinalizationCallback)(struct _TP_CALLBACK_INSTANCE*,void*); /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFunction:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Persistent:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Private:30 /* start bit 2 */; } s; } u; /* off 0x0020 */ enum _TP_CALLBACK_PRIORITY CallbackPriority; /* off 0x0024 */ unsigned long Size; }; struct _TP_POOL /* sizeof 00000000 0 */ { }; struct _TP_CLEANUP_GROUP /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT /* sizeof 00000000 0 */ { }; struct _TP_CALLBACK_INSTANCE /* sizeof 00000000 0 */ { }; enum _TP_CALLBACK_PRIORITY { TP_CALLBACK_PRIORITY_HIGH =0x00000000 ,//0 TP_CALLBACK_PRIORITY_NORMAL =0x00000001 ,//0 TP_CALLBACK_PRIORITY_LOW =0x00000002 ,//0 TP_CALLBACK_PRIORITY_INVALID =0x00000003 ,//0 }; struct _LIST_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY* Flink; /* off 0x0004 */ struct _LIST_ENTRY* Blink; }; struct _TP_NBQ_GUARD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY GuardLinks; /* off 0x0008 */ void* Guards[2]; }; struct _TP_TASK /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _TP_TASK_CALLBACKS* Callbacks; /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; /* off 0x000c */ struct _TP_NBQ_GUARD PostGuard; /* off 0x001c */ void* NBQNode; }; struct _TP_TASK_CALLBACKS /* sizeof 00000008 8 */ { /* off 0x0000 */ void( __stdcall *ExecuteCallback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_TASK*); /* off 0x0004 */ void( __stdcall *Unposted)(struct _TP_TASK*,struct _TP_POOL*); }; struct _TP_DIRECT /* sizeof 0000000c 12 */ { /* off 0x0000 */ void( __stdcall *Callback)(struct _TP_CALLBACK_INSTANCE*,struct _TP_DIRECT*,void*,struct _IO_STATUS_BLOCK*); /* off 0x0004 */ unsigned long NumaNode; /* off 0x0008 */ unsigned char IdealProcessor; }; struct _IO_STATUS_BLOCK /* sizeof 00000008 8 */ { union { /* off 0x0000 */ long Status; /* off 0x0000 */ void* Pointer; }; /* off 0x0004 */ unsigned long Information; }; struct _NT_TIB /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0004 */ void* StackBase; /* off 0x0008 */ void* StackLimit; /* off 0x000c */ void* SubSystemTib; union { /* off 0x0010 */ void* FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ void* ArbitraryUserPointer; /* off 0x0018 */ struct _NT_TIB* Self; }; struct _CLIENT_ID /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UniqueProcess; /* off 0x0004 */ void* UniqueThread; }; struct _GDI_TEB_BATCH /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _UNICODE_STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned short* Buffer; }; struct _GUID /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Data1; /* off 0x0004 */ unsigned short Data2; /* off 0x0006 */ unsigned short Data3; /* off 0x0008 */ unsigned char Data4[8]; }; struct _PROCESSOR_NUMBER /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned char Number; /* off 0x0003 */ unsigned char Reserved; }; struct _TEB /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB NtTib; /* off 0x001c */ void* EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID ClientId; /* off 0x0028 */ void* ActiveRpcHandle; /* off 0x002c */ void* ThreadLocalStoragePointer; /* off 0x0030 */ struct _PEB* ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ void* CsrClientThread; /* off 0x0040 */ void* Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ void* WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ void* SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ struct _ACTIVATION_CONTEXT_STACK* ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID RealClientId; /* off 0x06bc */ void* GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ void* GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ void* glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ void* glReserved2; /* off 0x0be0 */ void* glSectionInfo; /* off 0x0be4 */ void* glSection; /* off 0x0be8 */ void* glTable; /* off 0x0bec */ void* glCurrentRC; /* off 0x0bf0 */ void* glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _UNICODE_STRING StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ void* DeallocationStack; /* off 0x0e10 */ void* TlsSlots[64]; /* off 0x0f10 */ struct _LIST_ENTRY TlsLinks; /* off 0x0f18 */ void* Vdm; /* off 0x0f1c */ void* ReservedForNtRpc; /* off 0x0f20 */ void* DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ void* Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ void* SubProcessTag; /* off 0x0f64 */ void* EtwLocalData; /* off 0x0f68 */ void* EtwTraceData; /* off 0x0f6c */ void* WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ void* ReservedForPerf; /* off 0x0f80 */ void* ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ void* SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ void* ThreadPoolData; /* off 0x0f94 */ void** TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ void* NlsCache; /* off 0x0fa4 */ void* pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ void* CurrentTransactionHandle; /* off 0x0fb0 */ struct _TEB_ACTIVE_FRAME* ActiveFrame; /* off 0x0fb4 */ void* FlsData; /* off 0x0fb8 */ void* PreferredLanguages; /* off 0x0fbc */ void* UserPrefLanguages; /* off 0x0fc0 */ void* MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ void* TxnScopeEnterCallback; /* off 0x0fd0 */ void* TxnScopeExitCallback; /* off 0x0fd4 */ void* TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ void* ResourceRetValue; }; struct _EXCEPTION_REGISTRATION_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Next; /* off 0x0004 */ enum _EXCEPTION_DISPOSITION( __stdcall *Handler)(struct _EXCEPTION_RECORD*,void*,struct _CONTEXT*,void*); }; enum _EXCEPTION_DISPOSITION { ExceptionContinueExecution =0x00000000 ,//0 ExceptionContinueSearch =0x00000001 ,//0 ExceptionNestedException =0x00000002 ,//0 ExceptionCollidedUnwind =0x00000003 ,//0 }; struct _EXCEPTION_RECORD /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x000c */ void* ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _FLOATING_SAVE_AREA /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; /* off 0x006c */ unsigned long Cr0NpxState; }; struct _CONTEXT /* sizeof 000002cc 716 */ { /* off 0x0000 */ unsigned long ContextFlags; /* off 0x0004 */ unsigned long Dr0; /* off 0x0008 */ unsigned long Dr1; /* off 0x000c */ unsigned long Dr2; /* off 0x0010 */ unsigned long Dr3; /* off 0x0014 */ unsigned long Dr6; /* off 0x0018 */ unsigned long Dr7; /* off 0x001c */ struct _FLOATING_SAVE_AREA FloatSave; /* off 0x008c */ unsigned long SegGs; /* off 0x0090 */ unsigned long SegFs; /* off 0x0094 */ unsigned long SegEs; /* off 0x0098 */ unsigned long SegDs; /* off 0x009c */ unsigned long Edi; /* off 0x00a0 */ unsigned long Esi; /* off 0x00a4 */ unsigned long Ebx; /* off 0x00a8 */ unsigned long Edx; /* off 0x00ac */ unsigned long Ecx; /* off 0x00b0 */ unsigned long Eax; /* off 0x00b4 */ unsigned long Ebp; /* off 0x00b8 */ unsigned long Eip; /* off 0x00bc */ unsigned long SegCs; /* off 0x00c0 */ unsigned long EFlags; /* off 0x00c4 */ unsigned long Esp; /* off 0x00c8 */ unsigned long SegSs; /* off 0x00cc */ unsigned char ExtendedRegisters[512]; }; struct _PEB /* sizeof 00000248 584 */ { /* off 0x0000 */ unsigned char InheritedAddressSpace; /* off 0x0001 */ unsigned char ReadImageFileExecOptions; /* off 0x0002 */ unsigned char BeingDebugged; union { /* off 0x0003 */ unsigned char BitField; struct { /* off 0x0003 */ unsigned char ImageUsesLargePages:1 /* start bit 0 */; /* off 0x0003 */ unsigned char IsProtectedProcess:1 /* start bit 1 */; /* off 0x0003 */ unsigned char IsLegacyProcess:1 /* start bit 2 */; /* off 0x0003 */ unsigned char IsImageDynamicallyRelocated:1 /* start bit 3 */; /* off 0x0003 */ unsigned char SkipPatchingUser32Forwarders:1 /* start bit 4 */; /* off 0x0003 */ unsigned char SpareBits:3 /* start bit 5 */; }; }; /* off 0x0004 */ void* Mutant; /* off 0x0008 */ void* ImageBaseAddress; /* off 0x000c */ struct _PEB_LDR_DATA* Ldr; /* off 0x0010 */ struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; /* off 0x0014 */ void* SubSystemData; /* off 0x0018 */ void* ProcessHeap; /* off 0x001c */ struct _RTL_CRITICAL_SECTION* FastPebLock; /* off 0x0020 */ void* AtlThunkSListPtr; /* off 0x0024 */ void* IFEOKey; union { /* off 0x0028 */ unsigned long CrossProcessFlags; struct { /* off 0x0028 */ unsigned long ProcessInJob:1 /* start bit 0 */; /* off 0x0028 */ unsigned long ProcessInitializing:1 /* start bit 1 */; /* off 0x0028 */ unsigned long ProcessUsingVEH:1 /* start bit 2 */; /* off 0x0028 */ unsigned long ProcessUsingVCH:1 /* start bit 3 */; /* off 0x0028 */ unsigned long ProcessUsingFTH:1 /* start bit 4 */; /* off 0x0028 */ unsigned long ReservedBits0:27 /* start bit 5 */; }; }; union { /* off 0x002c */ void* KernelCallbackTable; /* off 0x002c */ void* UserSharedInfoPtr; }; /* off 0x0030 */ unsigned long SystemReserved[1]; /* off 0x0034 */ unsigned long AtlThunkSListPtr32; /* off 0x0038 */ void* ApiSetMap; /* off 0x003c */ unsigned long TlsExpansionCounter; /* off 0x0040 */ void* TlsBitmap; /* off 0x0044 */ unsigned long TlsBitmapBits[2]; /* off 0x004c */ void* ReadOnlySharedMemoryBase; /* off 0x0050 */ void* HotpatchInformation; /* off 0x0054 */ void** ReadOnlyStaticServerData; /* off 0x0058 */ void* AnsiCodePageData; /* off 0x005c */ void* OemCodePageData; /* off 0x0060 */ void* UnicodeCaseTableData; /* off 0x0064 */ unsigned long NumberOfProcessors; /* off 0x0068 */ unsigned long NtGlobalFlag; /* off 0x0070 */ union _LARGE_INTEGER CriticalSectionTimeout; /* off 0x0078 */ unsigned long HeapSegmentReserve; /* off 0x007c */ unsigned long HeapSegmentCommit; /* off 0x0080 */ unsigned long HeapDeCommitTotalFreeThreshold; /* off 0x0084 */ unsigned long HeapDeCommitFreeBlockThreshold; /* off 0x0088 */ unsigned long NumberOfHeaps; /* off 0x008c */ unsigned long MaximumNumberOfHeaps; /* off 0x0090 */ void** ProcessHeaps; /* off 0x0094 */ void* GdiSharedHandleTable; /* off 0x0098 */ void* ProcessStarterHelper; /* off 0x009c */ unsigned long GdiDCAttributeList; /* off 0x00a0 */ struct _RTL_CRITICAL_SECTION* LoaderLock; /* off 0x00a4 */ unsigned long OSMajorVersion; /* off 0x00a8 */ unsigned long OSMinorVersion; /* off 0x00ac */ unsigned short OSBuildNumber; /* off 0x00ae */ unsigned short OSCSDVersion; /* off 0x00b0 */ unsigned long OSPlatformId; /* off 0x00b4 */ unsigned long ImageSubsystem; /* off 0x00b8 */ unsigned long ImageSubsystemMajorVersion; /* off 0x00bc */ unsigned long ImageSubsystemMinorVersion; /* off 0x00c0 */ unsigned long ActiveProcessAffinityMask; /* off 0x00c4 */ unsigned long GdiHandleBuffer[34]; /* off 0x014c */ void( __stdcall *PostProcessInitRoutine)(); /* off 0x0150 */ void* TlsExpansionBitmap; /* off 0x0154 */ unsigned long TlsExpansionBitmapBits[32]; /* off 0x01d4 */ unsigned long SessionId; /* off 0x01d8 */ union _ULARGE_INTEGER AppCompatFlags; /* off 0x01e0 */ union _ULARGE_INTEGER AppCompatFlagsUser; /* off 0x01e8 */ void* pShimData; /* off 0x01ec */ void* AppCompatInfo; /* off 0x01f0 */ struct _UNICODE_STRING CSDVersion; /* off 0x01f8 */ struct _ACTIVATION_CONTEXT_DATA* ActivationContextData; /* off 0x01fc */ struct _ASSEMBLY_STORAGE_MAP* ProcessAssemblyStorageMap; /* off 0x0200 */ struct _ACTIVATION_CONTEXT_DATA* SystemDefaultActivationContextData; /* off 0x0204 */ struct _ASSEMBLY_STORAGE_MAP* SystemAssemblyStorageMap; /* off 0x0208 */ unsigned long MinimumStackCommit; /* off 0x020c */ struct _FLS_CALLBACK_INFO* FlsCallback; /* off 0x0210 */ struct _LIST_ENTRY FlsListHead; /* off 0x0218 */ void* FlsBitmap; /* off 0x021c */ unsigned long FlsBitmapBits[4]; /* off 0x022c */ unsigned long FlsHighIndex; /* off 0x0230 */ void* WerRegistrationData; /* off 0x0234 */ void* WerShipAssertPtr; /* off 0x0238 */ void* pContextData; /* off 0x023c */ void* pImageHeaderHash; union { /* off 0x0240 */ unsigned long TracingFlags; struct { /* off 0x0240 */ unsigned long HeapTracingEnabled:1 /* start bit 0 */; /* off 0x0240 */ unsigned long CritSecTracingEnabled:1 /* start bit 1 */; /* off 0x0240 */ unsigned long SpareTracingBits:30 /* start bit 2 */; }; }; }; struct _PEB_LDR_DATA /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned char Initialized; /* off 0x0008 */ void* SsHandle; /* off 0x000c */ struct _LIST_ENTRY InLoadOrderModuleList; /* off 0x0014 */ struct _LIST_ENTRY InMemoryOrderModuleList; /* off 0x001c */ struct _LIST_ENTRY InInitializationOrderModuleList; /* off 0x0024 */ void* EntryInProgress; /* off 0x0028 */ unsigned char ShutdownInProgress; /* off 0x002c */ void* ShutdownThreadId; }; struct _CURDIR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _UNICODE_STRING DosPath; /* off 0x0008 */ void* Handle; }; struct _STRING /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ char* Buffer; }; struct _RTL_DRIVE_LETTER_CURDIR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Flags; /* off 0x0002 */ unsigned short Length; /* off 0x0004 */ unsigned long TimeStamp; /* off 0x0008 */ struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS /* sizeof 00000298 664 */ { /* off 0x0000 */ unsigned long MaximumLength; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long DebugFlags; /* off 0x0010 */ void* ConsoleHandle; /* off 0x0014 */ unsigned long ConsoleFlags; /* off 0x0018 */ void* StandardInput; /* off 0x001c */ void* StandardOutput; /* off 0x0020 */ void* StandardError; /* off 0x0024 */ struct _CURDIR CurrentDirectory; /* off 0x0030 */ struct _UNICODE_STRING DllPath; /* off 0x0038 */ struct _UNICODE_STRING ImagePathName; /* off 0x0040 */ struct _UNICODE_STRING CommandLine; /* off 0x0048 */ void* Environment; /* off 0x004c */ unsigned long StartingX; /* off 0x0050 */ unsigned long StartingY; /* off 0x0054 */ unsigned long CountX; /* off 0x0058 */ unsigned long CountY; /* off 0x005c */ unsigned long CountCharsX; /* off 0x0060 */ unsigned long CountCharsY; /* off 0x0064 */ unsigned long FillAttribute; /* off 0x0068 */ unsigned long WindowFlags; /* off 0x006c */ unsigned long ShowWindowFlags; /* off 0x0070 */ struct _UNICODE_STRING WindowTitle; /* off 0x0078 */ struct _UNICODE_STRING DesktopInfo; /* off 0x0080 */ struct _UNICODE_STRING ShellInfo; /* off 0x0088 */ struct _UNICODE_STRING RuntimeData; /* off 0x0090 */ struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; /* off 0x0290 */ unsigned long EnvironmentSize; /* off 0x0294 */ unsigned long EnvironmentVersion; }; struct _RTL_CRITICAL_SECTION /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION_DEBUG* DebugInfo; /* off 0x0004 */ long LockCount; /* off 0x0008 */ long RecursionCount; /* off 0x000c */ void* OwningThread; /* off 0x0010 */ void* LockSemaphore; /* off 0x0014 */ unsigned long SpinCount; }; struct _RTL_CRITICAL_SECTION_DEBUG /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Type; /* off 0x0002 */ unsigned short CreatorBackTraceIndex; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION* CriticalSection; /* off 0x0008 */ struct _LIST_ENTRY ProcessLocksList; /* off 0x0010 */ unsigned long EntryCount; /* off 0x0014 */ unsigned long ContentionCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned short CreatorBackTraceIndexHigh; /* off 0x001e */ unsigned short SpareUSHORT; }; struct _ACTIVATION_CONTEXT_DATA /* sizeof 00000000 0 */ { }; struct _ASSEMBLY_STORAGE_MAP /* sizeof 00000000 0 */ { }; struct _FLS_CALLBACK_INFO /* sizeof 00000000 0 */ { }; struct _ACTIVATION_CONTEXT_STACK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* ActiveFrame; /* off 0x0004 */ struct _LIST_ENTRY FrameListCache; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long NextCookieSequenceNumber; /* off 0x0014 */ unsigned long StackId; }; struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _RTL_ACTIVATION_CONTEXT_STACK_FRAME* Previous; /* off 0x0004 */ struct _ACTIVATION_CONTEXT* ActivationContext; /* off 0x0008 */ unsigned long Flags; }; struct _TEB_ACTIVE_FRAME /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _TEB_ACTIVE_FRAME* Previous; /* off 0x0008 */ struct _TEB_ACTIVE_FRAME_CONTEXT* Context; }; struct _TEB_ACTIVE_FRAME_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ char* FrameName; }; struct _SINGLE_LIST_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* Next; }; struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ChainHead; /* off 0x0004 */ struct _LIST_ENTRY* PrevLinkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY Linkage; /* off 0x0008 */ unsigned long Signature; }; struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry; /* off 0x000c */ struct _LIST_ENTRY* ChainHead; /* off 0x0010 */ unsigned long BucketIndex; }; struct _RTL_DYNAMIC_HASH_TABLE /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long Shift; /* off 0x0008 */ unsigned long TableSize; /* off 0x000c */ unsigned long Pivot; /* off 0x0010 */ unsigned long DivisorMask; /* off 0x0014 */ unsigned long NumEntries; /* off 0x0018 */ unsigned long NonEmptyBuckets; /* off 0x001c */ unsigned long NumEnumerators; /* off 0x0020 */ void* Directory; }; struct _LUID /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ long HighPart; }; struct _IMAGE_FILE_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short Machine; /* off 0x0002 */ unsigned short NumberOfSections; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned long PointerToSymbolTable; /* off 0x000c */ unsigned long NumberOfSymbols; /* off 0x0010 */ unsigned short SizeOfOptionalHeader; /* off 0x0012 */ unsigned short Characteristics; }; struct _IMAGE_DATA_DIRECTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long VirtualAddress; /* off 0x0004 */ unsigned long Size; }; struct _IMAGE_OPTIONAL_HEADER /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long ImageBase; /* off 0x0020 */ unsigned long SectionAlignment; /* off 0x0024 */ unsigned long FileAlignment; /* off 0x0028 */ unsigned short MajorOperatingSystemVersion; /* off 0x002a */ unsigned short MinorOperatingSystemVersion; /* off 0x002c */ unsigned short MajorImageVersion; /* off 0x002e */ unsigned short MinorImageVersion; /* off 0x0030 */ unsigned short MajorSubsystemVersion; /* off 0x0032 */ unsigned short MinorSubsystemVersion; /* off 0x0034 */ unsigned long Win32VersionValue; /* off 0x0038 */ unsigned long SizeOfImage; /* off 0x003c */ unsigned long SizeOfHeaders; /* off 0x0040 */ unsigned long CheckSum; /* off 0x0044 */ unsigned short Subsystem; /* off 0x0046 */ unsigned short DllCharacteristics; /* off 0x0048 */ unsigned long SizeOfStackReserve; /* off 0x004c */ unsigned long SizeOfStackCommit; /* off 0x0050 */ unsigned long SizeOfHeapReserve; /* off 0x0054 */ unsigned long SizeOfHeapCommit; /* off 0x0058 */ unsigned long LoaderFlags; /* off 0x005c */ unsigned long NumberOfRvaAndSizes; /* off 0x0060 */ struct _IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct _IMAGE_NT_HEADERS /* sizeof 000000f8 248 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _IMAGE_FILE_HEADER FileHeader; /* off 0x0018 */ struct _IMAGE_OPTIONAL_HEADER OptionalHeader; }; struct _IMAGE_DOS_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short e_magic; /* off 0x0002 */ unsigned short e_cblp; /* off 0x0004 */ unsigned short e_cp; /* off 0x0006 */ unsigned short e_crlc; /* off 0x0008 */ unsigned short e_cparhdr; /* off 0x000a */ unsigned short e_minalloc; /* off 0x000c */ unsigned short e_maxalloc; /* off 0x000e */ unsigned short e_ss; /* off 0x0010 */ unsigned short e_sp; /* off 0x0012 */ unsigned short e_csum; /* off 0x0014 */ unsigned short e_ip; /* off 0x0016 */ unsigned short e_cs; /* off 0x0018 */ unsigned short e_lfarlc; /* off 0x001a */ unsigned short e_ovno; /* off 0x001c */ unsigned short e_res[4]; /* off 0x0024 */ unsigned short e_oemid; /* off 0x0026 */ unsigned short e_oeminfo; /* off 0x0028 */ unsigned short e_res2[10]; /* off 0x003c */ long e_lfanew; }; struct _DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Pad; /* off 0x0002 */ unsigned short Limit; /* off 0x0004 */ unsigned long Base; }; struct _KSPECIAL_REGISTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long Cr0; /* off 0x0004 */ unsigned long Cr2; /* off 0x0008 */ unsigned long Cr3; /* off 0x000c */ unsigned long Cr4; /* off 0x0010 */ unsigned long KernelDr0; /* off 0x0014 */ unsigned long KernelDr1; /* off 0x0018 */ unsigned long KernelDr2; /* off 0x001c */ unsigned long KernelDr3; /* off 0x0020 */ unsigned long KernelDr6; /* off 0x0024 */ unsigned long KernelDr7; /* off 0x0028 */ struct _DESCRIPTOR Gdtr; /* off 0x0030 */ struct _DESCRIPTOR Idtr; /* off 0x0038 */ unsigned short Tr; /* off 0x003a */ unsigned short Ldtr; /* off 0x003c */ unsigned long Reserved[6]; }; struct _KPROCESSOR_STATE /* sizeof 00000320 800 */ { /* off 0x0000 */ struct _CONTEXT ContextFrame; /* off 0x02cc */ struct _KSPECIAL_REGISTERS SpecialRegisters; }; struct _KSPIN_LOCK_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE* Next; /* off 0x0004 */ unsigned long* Lock; }; struct _PP_LOOKASIDE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE* P; /* off 0x0004 */ struct _GENERAL_LOOKASIDE* L; }; union _SLIST_HEADER /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Alignment; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Next; /* off 0x0004 */ unsigned short Depth; /* off 0x0006 */ unsigned short Sequence; }; }; struct _GENERAL_LOOKASIDE_POOL /* sizeof 00000048 72 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; struct _KDPC_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY DpcListHead; /* off 0x0008 */ unsigned long DpcLock; /* off 0x000c */ long DpcQueueDepth; /* off 0x0010 */ unsigned long DpcCount; }; struct _DISPATCHER_HEADER /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned char Type; union { /* off 0x0001 */ unsigned char TimerControlFlags; struct { /* off 0x0001 */ unsigned char Absolute:1 /* start bit 0 */; /* off 0x0001 */ unsigned char Coalescable:1 /* start bit 1 */; /* off 0x0001 */ unsigned char KeepShifting:1 /* start bit 2 */; /* off 0x0001 */ unsigned char EncodedTolerableDelay:5 /* start bit 3 */; }; /* off 0x0001 */ unsigned char Abandoned; /* off 0x0001 */ unsigned char Signalling; }; union { /* off 0x0002 */ unsigned char ThreadControlFlags; struct { /* off 0x0002 */ unsigned char CpuThrottled:1 /* start bit 0 */; /* off 0x0002 */ unsigned char CycleProfiling:1 /* start bit 1 */; /* off 0x0002 */ unsigned char CounterProfiling:1 /* start bit 2 */; /* off 0x0002 */ unsigned char Reserved:5 /* start bit 3 */; }; /* off 0x0002 */ unsigned char Hand; /* off 0x0002 */ unsigned char Size; }; union { /* off 0x0003 */ unsigned char TimerMiscFlags; struct { /* off 0x0003 */ unsigned char Index:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Processor:5 /* start bit 1 */; /* off 0x0003 */ unsigned char Inserted:1 /* start bit 6 */; /* off 0x0003 */ unsigned char Expired:1 /* start bit 7 */; /* off 0x0003 */ unsigned char DebugActive; /* off 0x0003 */ unsigned char ActiveDR7:1 /* start bit 0 */; /* off 0x0003 */ unsigned char Instrumented:1 /* start bit 1 */; /* off 0x0003 */ unsigned char Reserved2:4 /* start bit 2 */; /* off 0x0003 */ unsigned char UmsScheduled:1 /* start bit 6 */; /* off 0x0003 */ unsigned char UmsPrimary:1 /* start bit 7 */; }; /* off 0x0003 */ unsigned char DpcActive; }; struct { }; /* off 0x0000 */ long Lock; }; }; /* off 0x0004 */ long SignalState; /* off 0x0008 */ struct _LIST_ENTRY WaitListHead; }; struct _KGATE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _KTIMER_TABLE_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ struct _LIST_ENTRY Entry; /* off 0x0010 */ union _ULARGE_INTEGER Time; }; struct _KTIMER_TABLE /* sizeof 00001840 6208 */ { /* off 0x0000 */ struct _KTIMER* TimerExpiry[16]; /* off 0x0040 */ struct _KTIMER_TABLE_ENTRY TimerEntries[256]; }; struct _KDPC /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char Importance; /* off 0x0002 */ unsigned short Number; /* off 0x0004 */ struct _LIST_ENTRY DpcListEntry; /* off 0x000c */ void( __stdcall *DeferredRoutine)(struct _KDPC*,void*,void*,void*); /* off 0x0010 */ void* DeferredContext; /* off 0x0014 */ void* SystemArgument1; /* off 0x0018 */ void* SystemArgument2; /* off 0x001c */ void* DpcData; }; struct _PPM_FFH_THROTTLE_STATE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char EnableLogging; /* off 0x0004 */ unsigned long MismatchCount; /* off 0x0008 */ unsigned char Initialized; /* off 0x0010 */ unsigned __int64 LastValue; /* off 0x0018 */ union _LARGE_INTEGER LastLogTickCount; }; struct _PROC_IDLE_SNAP /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Time; /* off 0x0008 */ unsigned __int64 Idle; }; struct _PROCESSOR_POWER_STATE /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _PPM_IDLE_STATES* IdleStates; /* off 0x0008 */ unsigned __int64 IdleTimeLast; /* off 0x0010 */ unsigned __int64 IdleTimeTotal; /* off 0x0018 */ unsigned __int64 IdleTimeEntry; /* off 0x0020 */ struct _PROC_IDLE_ACCOUNTING* IdleAccounting; /* off 0x0024 */ enum _PROC_HYPERVISOR_STATE Hypervisor; /* off 0x0028 */ unsigned long PerfHistoryTotal; /* off 0x002c */ unsigned char ThermalConstraint; /* off 0x002d */ unsigned char PerfHistoryCount; /* off 0x002e */ unsigned char PerfHistorySlot; /* off 0x002f */ unsigned char Reserved; /* off 0x0030 */ unsigned long LastSysTime; /* off 0x0034 */ unsigned long WmiDispatchPtr; /* off 0x0038 */ long WmiInterfaceEnabled; /* off 0x0040 */ struct _PPM_FFH_THROTTLE_STATE_INFO FFHThrottleStateInfo; /* off 0x0060 */ struct _KDPC PerfActionDpc; /* off 0x0080 */ long PerfActionMask; /* off 0x0088 */ struct _PROC_IDLE_SNAP IdleCheck; /* off 0x0098 */ struct _PROC_IDLE_SNAP PerfCheck; /* off 0x00a8 */ struct _PROC_PERF_DOMAIN* Domain; /* off 0x00ac */ struct _PROC_PERF_CONSTRAINT* PerfConstraint; /* off 0x00b0 */ struct _PROC_PERF_LOAD* Load; /* off 0x00b4 */ struct _PROC_HISTORY_ENTRY* PerfHistory; /* off 0x00b8 */ unsigned long Utility; /* off 0x00bc */ unsigned long OverUtilizedHistory; /* off 0x00c0 */ unsigned long AffinityCount; /* off 0x00c4 */ unsigned long AffinityHistory; }; struct _KTIMER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ union _ULARGE_INTEGER DueTime; /* off 0x0018 */ struct _LIST_ENTRY TimerListEntry; /* off 0x0020 */ struct _KDPC* Dpc; /* off 0x0024 */ unsigned long Period; }; struct _CACHE_DESCRIPTOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Level; /* off 0x0001 */ unsigned char Associativity; /* off 0x0002 */ unsigned short LineSize; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ enum _PROCESSOR_CACHE_TYPE Type; }; struct _KAFFINITY_EX /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ unsigned long Bitmap[1]; }; struct _KPRCB /* sizeof 00003628 13864 */ { /* off 0x0000 */ unsigned short MinorVersion; /* off 0x0002 */ unsigned short MajorVersion; /* off 0x0004 */ struct _KTHREAD* CurrentThread; /* off 0x0008 */ struct _KTHREAD* NextThread; /* off 0x000c */ struct _KTHREAD* IdleThread; /* off 0x0010 */ unsigned char LegacyNumber; /* off 0x0011 */ unsigned char NestingLevel; /* off 0x0012 */ unsigned short BuildType; /* off 0x0014 */ char CpuType; /* off 0x0015 */ char CpuID; union { /* off 0x0016 */ unsigned short CpuStep; struct { /* off 0x0016 */ unsigned char CpuStepping; /* off 0x0017 */ unsigned char CpuModel; }; }; /* off 0x0018 */ struct _KPROCESSOR_STATE ProcessorState; /* off 0x0338 */ unsigned long KernelReserved[16]; /* off 0x0378 */ unsigned long HalReserved[16]; /* off 0x03b8 */ unsigned long CFlushSize; /* off 0x03bc */ unsigned char CoresPerPhysicalProcessor; /* off 0x03bd */ unsigned char LogicalProcessorsPerCore; /* off 0x03be */ unsigned char PrcbPad0[2]; /* off 0x03c0 */ unsigned long MHz; /* off 0x03c4 */ unsigned char CpuVendor; /* off 0x03c5 */ unsigned char GroupIndex; /* off 0x03c6 */ unsigned short Group; /* off 0x03c8 */ unsigned long GroupSetMember; /* off 0x03cc */ unsigned long Number; /* off 0x03d0 */ unsigned char PrcbPad1[72]; /* off 0x0418 */ struct _KSPIN_LOCK_QUEUE LockQueue[17]; /* off 0x04a0 */ struct _KTHREAD* NpxThread; /* off 0x04a4 */ unsigned long InterruptCount; /* off 0x04a8 */ unsigned long KernelTime; /* off 0x04ac */ unsigned long UserTime; /* off 0x04b0 */ unsigned long DpcTime; /* off 0x04b4 */ unsigned long DpcTimeCount; /* off 0x04b8 */ unsigned long InterruptTime; /* off 0x04bc */ unsigned long AdjustDpcThreshold; /* off 0x04c0 */ unsigned long PageColor; /* off 0x04c4 */ unsigned char DebuggerSavedIRQL; /* off 0x04c5 */ unsigned char NodeColor; /* off 0x04c6 */ unsigned char PrcbPad20[2]; /* off 0x04c8 */ unsigned long NodeShiftedColor; /* off 0x04cc */ struct _KNODE* ParentNode; /* off 0x04d0 */ unsigned long SecondaryColorMask; /* off 0x04d4 */ unsigned long DpcTimeLimit; /* off 0x04d8 */ unsigned long PrcbPad21[2]; /* off 0x04e0 */ unsigned long CcFastReadNoWait; /* off 0x04e4 */ unsigned long CcFastReadWait; /* off 0x04e8 */ unsigned long CcFastReadNotPossible; /* off 0x04ec */ unsigned long CcCopyReadNoWait; /* off 0x04f0 */ unsigned long CcCopyReadWait; /* off 0x04f4 */ unsigned long CcCopyReadNoWaitMiss; /* off 0x04f8 */ long MmSpinLockOrdering; /* off 0x04fc */ long IoReadOperationCount; /* off 0x0500 */ long IoWriteOperationCount; /* off 0x0504 */ long IoOtherOperationCount; /* off 0x0508 */ union _LARGE_INTEGER IoReadTransferCount; /* off 0x0510 */ union _LARGE_INTEGER IoWriteTransferCount; /* off 0x0518 */ union _LARGE_INTEGER IoOtherTransferCount; /* off 0x0520 */ unsigned long CcFastMdlReadNoWait; /* off 0x0524 */ unsigned long CcFastMdlReadWait; /* off 0x0528 */ unsigned long CcFastMdlReadNotPossible; /* off 0x052c */ unsigned long CcMapDataNoWait; /* off 0x0530 */ unsigned long CcMapDataWait; /* off 0x0534 */ unsigned long CcPinMappedDataCount; /* off 0x0538 */ unsigned long CcPinReadNoWait; /* off 0x053c */ unsigned long CcPinReadWait; /* off 0x0540 */ unsigned long CcMdlReadNoWait; /* off 0x0544 */ unsigned long CcMdlReadWait; /* off 0x0548 */ unsigned long CcLazyWriteHotSpots; /* off 0x054c */ unsigned long CcLazyWriteIos; /* off 0x0550 */ unsigned long CcLazyWritePages; /* off 0x0554 */ unsigned long CcDataFlushes; /* off 0x0558 */ unsigned long CcDataPages; /* off 0x055c */ unsigned long CcLostDelayedWrites; /* off 0x0560 */ unsigned long CcFastReadResourceMiss; /* off 0x0564 */ unsigned long CcCopyReadWaitMiss; /* off 0x0568 */ unsigned long CcFastMdlReadResourceMiss; /* off 0x056c */ unsigned long CcMapDataNoWaitMiss; /* off 0x0570 */ unsigned long CcMapDataWaitMiss; /* off 0x0574 */ unsigned long CcPinReadNoWaitMiss; /* off 0x0578 */ unsigned long CcPinReadWaitMiss; /* off 0x057c */ unsigned long CcMdlReadNoWaitMiss; /* off 0x0580 */ unsigned long CcMdlReadWaitMiss; /* off 0x0584 */ unsigned long CcReadAheadIos; /* off 0x0588 */ unsigned long KeAlignmentFixupCount; /* off 0x058c */ unsigned long KeExceptionDispatchCount; /* off 0x0590 */ unsigned long KeSystemCalls; /* off 0x0594 */ unsigned long AvailableTime; /* off 0x0598 */ unsigned long PrcbPad22[2]; /* off 0x05a0 */ struct _PP_LOOKASIDE_LIST PPLookasideList[16]; /* off 0x0620 */ struct _GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[32]; /* off 0x0f20 */ struct _GENERAL_LOOKASIDE_POOL PPPagedLookasideList[32]; /* off 0x1820 */ unsigned long PacketBarrier; /* off 0x1824 */ long ReverseStall; /* off 0x1828 */ void* IpiFrame; /* off 0x182c */ unsigned char PrcbPad3[52]; /* off 0x1860 */ void* CurrentPacket[3]; /* off 0x186c */ unsigned long TargetSet; /* off 0x1870 */ void( __stdcall *WorkerRoutine)(void*,void*,void*,void*); /* off 0x1874 */ unsigned long IpiFrozen; /* off 0x1878 */ unsigned char PrcbPad4[40]; /* off 0x18a0 */ unsigned long RequestSummary; /* off 0x18a4 */ struct _KPRCB* SignalDone; /* off 0x18a8 */ unsigned char PrcbPad50[56]; /* off 0x18e0 */ struct _KDPC_DATA DpcData[2]; /* off 0x1908 */ void* DpcStack; /* off 0x190c */ long MaximumDpcQueueDepth; /* off 0x1910 */ unsigned long DpcRequestRate; /* off 0x1914 */ unsigned long MinimumDpcRate; /* off 0x1918 */ unsigned long DpcLastCount; /* off 0x191c */ unsigned long PrcbLock; /* off 0x1920 */ struct _KGATE DpcGate; /* off 0x1930 */ unsigned char ThreadDpcEnable; /* off 0x1931 */ unsigned char QuantumEnd; /* off 0x1932 */ unsigned char DpcRoutineActive; /* off 0x1933 */ unsigned char IdleSchedule; union { /* off 0x1934 */ long DpcRequestSummary; /* off 0x1934 */ short DpcRequestSlot[2]; struct { /* off 0x1934 */ short NormalDpcState; union { /* off 0x1936 */ unsigned short DpcThreadActive:1 /* start bit 0 */; /* off 0x1936 */ short ThreadDpcState; }; }; }; /* off 0x1938 */ unsigned long TimerHand; /* off 0x193c */ unsigned long LastTick; /* off 0x1940 */ long MasterOffset; /* off 0x1944 */ unsigned long PrcbPad41[2]; /* off 0x194c */ unsigned long PeriodicCount; /* off 0x1950 */ unsigned long PeriodicBias; /* off 0x1958 */ unsigned __int64 TickOffset; /* off 0x1960 */ struct _KTIMER_TABLE TimerTable; /* off 0x31a0 */ struct _KDPC CallDpc; /* off 0x31c0 */ long ClockKeepAlive; /* off 0x31c4 */ unsigned char ClockCheckSlot; /* off 0x31c5 */ unsigned char ClockPollCycle; /* off 0x31c6 */ unsigned char PrcbPad6[2]; /* off 0x31c8 */ long DpcWatchdogPeriod; /* off 0x31cc */ long DpcWatchdogCount; /* off 0x31d0 */ long ThreadWatchdogPeriod; /* off 0x31d4 */ long ThreadWatchdogCount; /* off 0x31d8 */ long KeSpinLockOrdering; /* off 0x31dc */ unsigned long PrcbPad70[1]; /* off 0x31e0 */ struct _LIST_ENTRY WaitListHead; /* off 0x31e8 */ unsigned long WaitLock; /* off 0x31ec */ unsigned long ReadySummary; /* off 0x31f0 */ unsigned long QueueIndex; /* off 0x31f4 */ struct _SINGLE_LIST_ENTRY DeferredReadyListHead; /* off 0x31f8 */ unsigned __int64 StartCycles; /* off 0x3200 */ unsigned __int64 CycleTime; /* off 0x3208 */ unsigned long HighCycleTime; /* off 0x320c */ unsigned long PrcbPad71; /* off 0x3210 */ unsigned __int64 PrcbPad72[2]; /* off 0x3220 */ struct _LIST_ENTRY DispatcherReadyListHead[32]; /* off 0x3320 */ void* ChainedInterruptList; /* off 0x3324 */ long LookasideIrpFloat; /* off 0x3328 */ long MmPageFaultCount; /* off 0x332c */ long MmCopyOnWriteCount; /* off 0x3330 */ long MmTransitionCount; /* off 0x3334 */ long MmCacheTransitionCount; /* off 0x3338 */ long MmDemandZeroCount; /* off 0x333c */ long MmPageReadCount; /* off 0x3340 */ long MmPageReadIoCount; /* off 0x3344 */ long MmCacheReadCount; /* off 0x3348 */ long MmCacheIoCount; /* off 0x334c */ long MmDirtyPagesWriteCount; /* off 0x3350 */ long MmDirtyWriteIoCount; /* off 0x3354 */ long MmMappedPagesWriteCount; /* off 0x3358 */ long MmMappedWriteIoCount; /* off 0x335c */ unsigned long CachedCommit; /* off 0x3360 */ unsigned long CachedResidentAvailable; /* off 0x3364 */ void* HyperPte; /* off 0x3368 */ unsigned char PrcbPad8[4]; /* off 0x336c */ unsigned char VendorString[13]; /* off 0x3379 */ unsigned char InitialApicId; /* off 0x337a */ unsigned char LogicalProcessorsPerPhysicalProcessor; /* off 0x337b */ unsigned char PrcbPad9[5]; /* off 0x3380 */ unsigned long FeatureBits; /* off 0x3388 */ union _LARGE_INTEGER UpdateSignature; /* off 0x3390 */ unsigned __int64 IsrTime; /* off 0x3398 */ unsigned __int64 RuntimeAccumulation; /* off 0x33a0 */ struct _PROCESSOR_POWER_STATE PowerState; /* off 0x3468 */ struct _KDPC DpcWatchdogDpc; /* off 0x3488 */ struct _KTIMER DpcWatchdogTimer; /* off 0x34b0 */ void* WheaInfo; /* off 0x34b4 */ void* EtwSupport; /* off 0x34b8 */ union _SLIST_HEADER InterruptObjectPool; /* off 0x34c0 */ union _SLIST_HEADER HypercallPageList; /* off 0x34c8 */ void* HypercallPageVirtual; /* off 0x34cc */ void* VirtualApicAssist; /* off 0x34d0 */ unsigned __int64* StatisticsPage; /* off 0x34d4 */ void* RateControl; /* off 0x34d8 */ struct _CACHE_DESCRIPTOR Cache[5]; /* off 0x3514 */ unsigned long CacheCount; /* off 0x3518 */ unsigned long CacheProcessorMask[5]; /* off 0x352c */ struct _KAFFINITY_EX PackageProcessorSet; /* off 0x3538 */ unsigned long PrcbPad91[1]; /* off 0x353c */ unsigned long CoreProcessorSet; /* off 0x3540 */ struct _KDPC TimerExpirationDpc; /* off 0x3560 */ unsigned long SpinLockAcquireCount; /* off 0x3564 */ unsigned long SpinLockContentionCount; /* off 0x3568 */ unsigned long SpinLockSpinCount; /* off 0x356c */ unsigned long IpiSendRequestBroadcastCount; /* off 0x3570 */ unsigned long IpiSendRequestRoutineCount; /* off 0x3574 */ unsigned long IpiSendSoftwareInterruptCount; /* off 0x3578 */ unsigned long ExInitializeResourceCount; /* off 0x357c */ unsigned long ExReInitializeResourceCount; /* off 0x3580 */ unsigned long ExDeleteResourceCount; /* off 0x3584 */ unsigned long ExecutiveResourceAcquiresCount; /* off 0x3588 */ unsigned long ExecutiveResourceContentionsCount; /* off 0x358c */ unsigned long ExecutiveResourceReleaseExclusiveCount; /* off 0x3590 */ unsigned long ExecutiveResourceReleaseSharedCount; /* off 0x3594 */ unsigned long ExecutiveResourceConvertsCount; /* off 0x3598 */ unsigned long ExAcqResExclusiveAttempts; /* off 0x359c */ unsigned long ExAcqResExclusiveAcquiresExclusive; /* off 0x35a0 */ unsigned long ExAcqResExclusiveAcquiresExclusiveRecursive; /* off 0x35a4 */ unsigned long ExAcqResExclusiveWaits; /* off 0x35a8 */ unsigned long ExAcqResExclusiveNotAcquires; /* off 0x35ac */ unsigned long ExAcqResSharedAttempts; /* off 0x35b0 */ unsigned long ExAcqResSharedAcquiresExclusive; /* off 0x35b4 */ unsigned long ExAcqResSharedAcquiresShared; /* off 0x35b8 */ unsigned long ExAcqResSharedAcquiresSharedRecursive; /* off 0x35bc */ unsigned long ExAcqResSharedWaits; /* off 0x35c0 */ unsigned long ExAcqResSharedNotAcquires; /* off 0x35c4 */ unsigned long ExAcqResSharedStarveExclusiveAttempts; /* off 0x35c8 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresExclusive; /* off 0x35cc */ unsigned long ExAcqResSharedStarveExclusiveAcquiresShared; /* off 0x35d0 */ unsigned long ExAcqResSharedStarveExclusiveAcquiresSharedRecursive; /* off 0x35d4 */ unsigned long ExAcqResSharedStarveExclusiveWaits; /* off 0x35d8 */ unsigned long ExAcqResSharedStarveExclusiveNotAcquires; /* off 0x35dc */ unsigned long ExAcqResSharedWaitForExclusiveAttempts; /* off 0x35e0 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresExclusive; /* off 0x35e4 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresShared; /* off 0x35e8 */ unsigned long ExAcqResSharedWaitForExclusiveAcquiresSharedRecursive; /* off 0x35ec */ unsigned long ExAcqResSharedWaitForExclusiveWaits; /* off 0x35f0 */ unsigned long ExAcqResSharedWaitForExclusiveNotAcquires; /* off 0x35f4 */ unsigned long ExSetResOwnerPointerExclusive; /* off 0x35f8 */ unsigned long ExSetResOwnerPointerSharedNew; /* off 0x35fc */ unsigned long ExSetResOwnerPointerSharedOld; /* off 0x3600 */ unsigned long ExTryToAcqExclusiveAttempts; /* off 0x3604 */ unsigned long ExTryToAcqExclusiveAcquires; /* off 0x3608 */ unsigned long ExBoostExclusiveOwner; /* off 0x360c */ unsigned long ExBoostSharedOwners; /* off 0x3610 */ unsigned long ExEtwSynchTrackingNotificationsCount; /* off 0x3614 */ unsigned long ExEtwSynchTrackingNotificationsAccountedCount; /* off 0x3618 */ struct _CONTEXT* Context; /* off 0x361c */ unsigned long ContextFlags; /* off 0x3620 */ struct _XSAVE_AREA* ExtendedState; }; struct _KPCR /* sizeof 00003748 14152 */ { union { /* off 0x0000 */ struct _NT_TIB NtTib; struct { /* off 0x0000 */ struct _EXCEPTION_REGISTRATION_RECORD* Used_ExceptionList; /* off 0x0004 */ void* Used_StackBase; /* off 0x0008 */ void* Spare2; /* off 0x000c */ void* TssCopy; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0014 */ unsigned long SetMemberCopy; /* off 0x0018 */ void* Used_Self; }; }; /* off 0x001c */ struct _KPCR* SelfPcr; /* off 0x0020 */ struct _KPRCB* Prcb; /* off 0x0024 */ unsigned char Irql; /* off 0x0028 */ unsigned long IRR; /* off 0x002c */ unsigned long IrrActive; /* off 0x0030 */ unsigned long IDR; /* off 0x0034 */ void* KdVersionBlock; /* off 0x0038 */ struct _KIDTENTRY* IDT; /* off 0x003c */ struct _KGDTENTRY* GDT; /* off 0x0040 */ struct _KTSS* TSS; /* off 0x0044 */ unsigned short MajorVersion; /* off 0x0046 */ unsigned short MinorVersion; /* off 0x0048 */ unsigned long SetMember; /* off 0x004c */ unsigned long StallScaleFactor; /* off 0x0050 */ unsigned char SpareUnused; /* off 0x0051 */ unsigned char Number; /* off 0x0052 */ unsigned char Spare0; /* off 0x0053 */ unsigned char SecondLevelCacheAssociativity; /* off 0x0054 */ unsigned long VdmAlert; /* off 0x0058 */ unsigned long KernelReserved[14]; /* off 0x0090 */ unsigned long SecondLevelCacheSize; /* off 0x0094 */ unsigned long HalReserved[16]; /* off 0x00d4 */ unsigned long InterruptMode; /* off 0x00d8 */ unsigned char Spare1; /* off 0x00dc */ unsigned long KernelReserved2[17]; /* off 0x0120 */ struct _KPRCB PrcbData; }; union _KWAIT_STATUS_REGISTER /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Flags; struct { /* off 0x0000 */ unsigned char State:2 /* start bit 0 */; /* off 0x0000 */ unsigned char Affinity:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Priority:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Apc:1 /* start bit 4 */; /* off 0x0000 */ unsigned char UserApc:1 /* start bit 5 */; /* off 0x0000 */ unsigned char Alert:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Unused:1 /* start bit 7 */; }; }; struct _KAPC_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ApcListHead[2]; /* off 0x0010 */ struct _KPROCESS* Process; /* off 0x0014 */ unsigned char KernelApcInProgress; /* off 0x0015 */ unsigned char KernelApcPending; /* off 0x0016 */ unsigned char UserApcPending; }; struct _KWAIT_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ void* Object; /* off 0x0010 */ struct _KWAIT_BLOCK* NextWaitBlock; /* off 0x0014 */ unsigned short WaitKey; /* off 0x0016 */ unsigned char WaitType; /* off 0x0017 */ unsigned char BlockState; }; struct _GROUP_AFFINITY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Mask; /* off 0x0004 */ unsigned short Group; /* off 0x0006 */ unsigned short Reserved[3]; }; struct _KAPC /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char SpareByte0; /* off 0x0002 */ unsigned char Size; /* off 0x0003 */ unsigned char SpareByte1; /* off 0x0004 */ unsigned long SpareLong0; /* off 0x0008 */ struct _KTHREAD* Thread; /* off 0x000c */ struct _LIST_ENTRY ApcListEntry; /* off 0x0014 */ void( __stdcall *KernelRoutine)(struct _KAPC*,void( __stdcall **)(void*,void*,void*),void**,void**,void**); /* off 0x0018 */ void( __stdcall *RundownRoutine)(struct _KAPC*); /* off 0x001c */ void( __stdcall *NormalRoutine)(void*,void*,void*); /* off 0x0020 */ void* NormalContext; /* off 0x0024 */ void* SystemArgument1; /* off 0x0028 */ void* SystemArgument2; /* off 0x002c */ char ApcStateIndex; /* off 0x002d */ char ApcMode; /* off 0x002e */ unsigned char Inserted; }; struct _KSEMAPHORE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ long Limit; }; struct _KTHREAD /* sizeof 00000200 512 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ unsigned __int64 CycleTime; /* off 0x0018 */ unsigned long HighCycleTime; /* off 0x0020 */ unsigned __int64 QuantumTarget; /* off 0x0028 */ void* InitialStack; /* off 0x002c */ void* StackLimit; /* off 0x0030 */ void* KernelStack; /* off 0x0034 */ unsigned long ThreadLock; /* off 0x0038 */ union _KWAIT_STATUS_REGISTER WaitRegister; /* off 0x0039 */ unsigned char Running; /* off 0x003a */ unsigned char Alerted[2]; union { struct { /* off 0x003c */ unsigned long KernelStackResident:1 /* start bit 0 */; /* off 0x003c */ unsigned long ReadyTransition:1 /* start bit 1 */; /* off 0x003c */ unsigned long ProcessReadyQueue:1 /* start bit 2 */; /* off 0x003c */ unsigned long WaitNext:1 /* start bit 3 */; /* off 0x003c */ unsigned long SystemAffinityActive:1 /* start bit 4 */; /* off 0x003c */ unsigned long Alertable:1 /* start bit 5 */; /* off 0x003c */ unsigned long GdiFlushActive:1 /* start bit 6 */; /* off 0x003c */ unsigned long UserStackWalkActive:1 /* start bit 7 */; /* off 0x003c */ unsigned long ApcInterruptRequest:1 /* start bit 8 */; /* off 0x003c */ unsigned long ForceDeferSchedule:1 /* start bit 9 */; /* off 0x003c */ unsigned long QuantumEndMigrate:1 /* start bit 10 */; /* off 0x003c */ unsigned long UmsDirectedSwitchEnable:1 /* start bit 11 */; /* off 0x003c */ unsigned long TimerActive:1 /* start bit 12 */; /* off 0x003c */ unsigned long SystemThread:1 /* start bit 13 */; /* off 0x003c */ unsigned long Reserved:18 /* start bit 14 */; }; /* off 0x003c */ long MiscFlags; }; union { /* off 0x0040 */ struct _KAPC_STATE ApcState; struct { /* off 0x0040 */ unsigned char ApcStateFill[23]; /* off 0x0057 */ char Priority; }; }; /* off 0x0058 */ unsigned long NextProcessor; /* off 0x005c */ unsigned long DeferredProcessor; /* off 0x0060 */ unsigned long ApcQueueLock; /* off 0x0064 */ unsigned long ContextSwitches; /* off 0x0068 */ unsigned char State; /* off 0x0069 */ char NpxState; /* off 0x006a */ unsigned char WaitIrql; /* off 0x006b */ char WaitMode; /* off 0x006c */ long WaitStatus; /* off 0x0070 */ struct _KWAIT_BLOCK* WaitBlockList; union { /* off 0x0074 */ struct _LIST_ENTRY WaitListEntry; /* off 0x0074 */ struct _SINGLE_LIST_ENTRY SwapListEntry; }; /* off 0x007c */ struct _KQUEUE* Queue; /* off 0x0080 */ unsigned long WaitTime; union { struct { /* off 0x0084 */ short KernelApcDisable; /* off 0x0086 */ short SpecialApcDisable; }; struct { /* off 0x0084 */ unsigned long CombinedApcDisable; }; }; /* off 0x0088 */ void* Teb; /* off 0x0090 */ struct _KTIMER Timer; union { struct { /* off 0x00b8 */ unsigned long AutoAlignment:1 /* start bit 0 */; /* off 0x00b8 */ unsigned long DisableBoost:1 /* start bit 1 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc1Inserted:1 /* start bit 2 */; /* off 0x00b8 */ unsigned long EtwStackTraceApc2Inserted:1 /* start bit 3 */; /* off 0x00b8 */ unsigned long CalloutActive:1 /* start bit 4 */; /* off 0x00b8 */ unsigned long ApcQueueable:1 /* start bit 5 */; /* off 0x00b8 */ unsigned long EnableStackSwap:1 /* start bit 6 */; /* off 0x00b8 */ unsigned long GuiThread:1 /* start bit 7 */; /* off 0x00b8 */ unsigned long UmsPerformingSyscall:1 /* start bit 8 */; /* off 0x00b8 */ unsigned long VdmSafe:1 /* start bit 9 */; /* off 0x00b8 */ unsigned long UmsDispatched:1 /* start bit 10 */; /* off 0x00b8 */ unsigned long ReservedFlags:21 /* start bit 11 */; }; /* off 0x00b8 */ long ThreadFlags; }; /* off 0x00bc */ void* ServiceTable; /* off 0x00c0 */ struct _KWAIT_BLOCK WaitBlock[4]; /* off 0x0120 */ struct _LIST_ENTRY QueueListEntry; /* off 0x0128 */ struct _KTRAP_FRAME* TrapFrame; /* off 0x012c */ void* FirstArgument; union { /* off 0x0130 */ void* CallbackStack; /* off 0x0130 */ unsigned long CallbackDepth; }; /* off 0x0134 */ unsigned char ApcStateIndex; /* off 0x0135 */ char BasePriority; union { /* off 0x0136 */ char PriorityDecrement; struct { /* off 0x0136 */ unsigned char ForegroundBoost:4 /* start bit 0 */; /* off 0x0136 */ unsigned char UnusualBoost:4 /* start bit 4 */; }; }; /* off 0x0137 */ unsigned char Preempted; /* off 0x0138 */ unsigned char AdjustReason; /* off 0x0139 */ char AdjustIncrement; /* off 0x013a */ char PreviousMode; /* off 0x013b */ char Saturation; /* off 0x013c */ unsigned long SystemCallNumber; /* off 0x0140 */ unsigned long FreezeCount; /* off 0x0144 */ struct _GROUP_AFFINITY UserAffinity; /* off 0x0150 */ struct _KPROCESS* Process; /* off 0x0154 */ struct _GROUP_AFFINITY Affinity; /* off 0x0160 */ unsigned long IdealProcessor; /* off 0x0164 */ unsigned long UserIdealProcessor; /* off 0x0168 */ struct _KAPC_STATE* ApcStatePointer[2]; union { /* off 0x0170 */ struct _KAPC_STATE SavedApcState; struct { /* off 0x0170 */ unsigned char SavedApcStateFill[23]; /* off 0x0187 */ unsigned char WaitReason; }; }; /* off 0x0188 */ char SuspendCount; /* off 0x0189 */ char Spare1; /* off 0x018a */ unsigned char OtherPlatformFill; /* off 0x018c */ void* Win32Thread; /* off 0x0190 */ void* StackBase; union { /* off 0x0194 */ struct _KAPC SuspendApc; struct { /* off 0x0194 */ unsigned char SuspendApcFill0[1]; /* off 0x0195 */ unsigned char ResourceIndex; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill1[3]; /* off 0x0197 */ unsigned char QuantumReset; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill2[4]; /* off 0x0198 */ unsigned long KernelTime; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill3[36]; /* off 0x01b8 */ struct _KPRCB* WaitPrcb; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill4[40]; /* off 0x01bc */ void* LegoData; }; struct { /* off 0x0194 */ unsigned char SuspendApcFill5[47]; /* off 0x01c3 */ unsigned char LargeStack; }; }; /* off 0x01c4 */ unsigned long UserTime; union { /* off 0x01c8 */ struct _KSEMAPHORE SuspendSemaphore; /* off 0x01c8 */ unsigned char SuspendSemaphorefill[20]; }; /* off 0x01dc */ unsigned long SListFaultCount; /* off 0x01e0 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x01e8 */ struct _LIST_ENTRY MutantListHead; /* off 0x01f0 */ void* SListFaultAddress; /* off 0x01f4 */ struct _KTHREAD_COUNTERS* ThreadCounters; /* off 0x01f8 */ struct _XSTATE_SAVE* XStateSave; }; struct _KGDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LimitLow; /* off 0x0002 */ unsigned short BaseLow; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char BaseMid; /* off 0x0001 */ unsigned char Flags1; /* off 0x0002 */ unsigned char Flags2; /* off 0x0003 */ unsigned char BaseHi; } Bytes; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BaseMid:8 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:5 /* start bit 8 */; /* off 0x0000 */ unsigned long Dpl:2 /* start bit 13 */; /* off 0x0000 */ unsigned long Pres:1 /* start bit 15 */; /* off 0x0000 */ unsigned long LimitHi:4 /* start bit 16 */; /* off 0x0000 */ unsigned long Sys:1 /* start bit 20 */; /* off 0x0000 */ unsigned long Reserved_0:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Default_Big:1 /* start bit 22 */; /* off 0x0000 */ unsigned long Granularity:1 /* start bit 23 */; /* off 0x0000 */ unsigned long BaseHi:8 /* start bit 24 */; } Bits; } HighWord; }; struct _KIDTENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Offset; /* off 0x0002 */ unsigned short Selector; /* off 0x0004 */ unsigned short Access; /* off 0x0006 */ unsigned short ExtendedOffset; }; union _KEXECUTE_OPTIONS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char ExecuteDisable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char ExecuteEnable:1 /* start bit 1 */; /* off 0x0000 */ unsigned char DisableThunkEmulation:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Permanent:1 /* start bit 3 */; /* off 0x0000 */ unsigned char ExecuteDispatchEnable:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ImageDispatchEnable:1 /* start bit 5 */; /* off 0x0000 */ unsigned char DisableExceptionChainValidation:1 /* start bit 6 */; /* off 0x0000 */ unsigned char Spare:1 /* start bit 7 */; }; /* off 0x0000 */ unsigned char ExecuteOptions; }; union _KSTACK_COUNT /* sizeof 00000004 4 */ { /* off 0x0000 */ long Value; struct { /* off 0x0000 */ unsigned long State:3 /* start bit 0 */; /* off 0x0000 */ unsigned long StackCount:29 /* start bit 3 */; }; }; struct _KPROCESS /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY ProfileListHead; /* off 0x0018 */ unsigned long DirectoryTableBase; /* off 0x001c */ struct _KGDTENTRY LdtDescriptor; /* off 0x0024 */ struct _KIDTENTRY Int21Descriptor; /* off 0x002c */ struct _LIST_ENTRY ThreadListHead; /* off 0x0034 */ unsigned long ProcessLock; /* off 0x0038 */ struct _KAFFINITY_EX Affinity; /* off 0x0044 */ struct _LIST_ENTRY ReadyListHead; /* off 0x004c */ struct _SINGLE_LIST_ENTRY SwapListEntry; /* off 0x0050 */ struct _KAFFINITY_EX ActiveProcessors; union { struct { /* off 0x005c */ long AutoAlignment:1 /* start bit 0 */; /* off 0x005c */ long DisableBoost:1 /* start bit 1 */; /* off 0x005c */ long DisableQuantum:1 /* start bit 2 */; /* off 0x005c */ unsigned long ActiveGroupsMask:1 /* start bit 3 */; /* off 0x005c */ long ReservedFlags:28 /* start bit 4 */; }; /* off 0x005c */ long ProcessFlags; }; /* off 0x0060 */ char BasePriority; /* off 0x0061 */ char QuantumReset; /* off 0x0062 */ unsigned char Visited; /* off 0x0063 */ unsigned char Unused3; /* off 0x0064 */ unsigned long ThreadSeed[1]; /* off 0x0068 */ unsigned short IdealNode[1]; /* off 0x006a */ unsigned short IdealGlobalNode; /* off 0x006c */ union _KEXECUTE_OPTIONS Flags; /* off 0x006d */ unsigned char Unused1; /* off 0x006e */ unsigned short IopmOffset; /* off 0x0070 */ unsigned long Unused4; /* off 0x0074 */ union _KSTACK_COUNT StackCount; /* off 0x0078 */ struct _LIST_ENTRY ProcessListEntry; /* off 0x0080 */ unsigned __int64 CycleTime; /* off 0x0088 */ unsigned long KernelTime; /* off 0x008c */ unsigned long UserTime; /* off 0x0090 */ void* VdmTrapcHandler; }; struct _KQUEUE /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY EntryListHead; /* off 0x0018 */ unsigned long CurrentCount; /* off 0x001c */ unsigned long MaximumCount; /* off 0x0020 */ struct _LIST_ENTRY ThreadListHead; }; struct _KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; /* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }; struct _COUNTER_READING /* sizeof 00000018 24 */ { /* off 0x0000 */ enum _HARDWARE_COUNTER_TYPE Type; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 Total; }; struct _KTHREAD_COUNTERS /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned __int64 WaitReasonBitMap; /* off 0x0008 */ struct _THREAD_PERFORMANCE_DATA* UserData; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long ContextSwitches; /* off 0x0018 */ unsigned __int64 CycleTimeBias; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING HwCounter[16]; }; struct _THREAD_PERFORMANCE_DATA /* sizeof 000001c0 448 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ struct _PROCESSOR_NUMBER ProcessorNumber; /* off 0x0008 */ unsigned long ContextSwitches; /* off 0x000c */ unsigned long HwCountersCount; /* off 0x0010 */ unsigned __int64 UpdateCount; /* off 0x0018 */ unsigned __int64 WaitReasonBitMap; /* off 0x0020 */ unsigned __int64 HardwareCounters; /* off 0x0028 */ struct _COUNTER_READING CycleTime; /* off 0x0040 */ struct _COUNTER_READING HwCounters[16]; }; enum _HARDWARE_COUNTER_TYPE { PMCCounter =0x00000000 ,//0 MaxHardwareCounterType =0x00000001 ,//0 }; struct _XSTATE_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned long Reserved1; /* off 0x0010 */ struct _XSAVE_AREA* Area; /* off 0x0014 */ unsigned long Reserved2; /* off 0x0018 */ void* Buffer; /* off 0x001c */ unsigned long Reserved3; }; struct _XSTATE_SAVE /* sizeof 00000020 32 */ { union { struct { /* off 0x0000 */ __int64 Reserved1; /* off 0x0008 */ unsigned long Reserved2; /* off 0x000c */ struct _XSTATE_SAVE* Prev; /* off 0x0010 */ struct _XSAVE_AREA* Reserved3; /* off 0x0014 */ struct _KTHREAD* Thread; /* off 0x0018 */ void* Reserved4; /* off 0x001c */ unsigned char Level; }; /* off 0x0000 */ struct _XSTATE_CONTEXT XStateContext; }; }; struct _M128A /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Low; /* off 0x0008 */ __int64 High; }; struct _XSAVE_FORMAT /* sizeof 00000200 512 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned char TagWord; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned short ErrorSelector; /* off 0x000e */ unsigned short Reserved2; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned short DataSelector; /* off 0x0016 */ unsigned short Reserved3; /* off 0x0018 */ unsigned long MxCsr; /* off 0x001c */ unsigned long MxCsr_Mask; /* off 0x0020 */ struct _M128A FloatRegisters[8]; /* off 0x00a0 */ struct _M128A XmmRegisters[8]; /* off 0x0120 */ unsigned char Reserved4[192]; /* off 0x01e0 */ unsigned long StackControl[7]; /* off 0x01fc */ unsigned long Cr0NpxState; }; struct _XSAVE_AREA_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 Mask; /* off 0x0008 */ unsigned __int64 Reserved[7]; }; struct _XSAVE_AREA /* sizeof 00000240 576 */ { /* off 0x0000 */ struct _XSAVE_FORMAT LegacyState; /* off 0x0200 */ struct _XSAVE_AREA_HEADER Header; }; struct _flags /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Removable:1 /* start bit 0 */; /* off 0x0000 */ unsigned char GroupAssigned:1 /* start bit 1 */; /* off 0x0000 */ unsigned char GroupCommitted:1 /* start bit 2 */; /* off 0x0000 */ unsigned char GroupAssignmentFixed:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Fill:4 /* start bit 4 */; }; struct _CACHED_KSTACK_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ union _SLIST_HEADER SListHead; /* off 0x0008 */ long MinimumFree; /* off 0x000c */ unsigned long Misses; /* off 0x0010 */ unsigned long MissesLast; /* off 0x0014 */ unsigned long Pad0; }; struct _KNODE /* sizeof 00000080 128 */ { /* off 0x0000 */ union _SLIST_HEADER PagedPoolSListHead; /* off 0x0008 */ union _SLIST_HEADER NonPagedPoolSListHead[3]; /* off 0x0020 */ struct _GROUP_AFFINITY Affinity; /* off 0x002c */ unsigned long ProximityId; /* off 0x0030 */ unsigned short NodeNumber; /* off 0x0032 */ unsigned short PrimaryNodeNumber; /* off 0x0034 */ unsigned char MaximumProcessors; /* off 0x0035 */ unsigned char Color; /* off 0x0036 */ struct _flags Flags; /* off 0x0037 */ unsigned char NodePad0; /* off 0x0038 */ unsigned long Seed; /* off 0x003c */ unsigned long MmShiftedColor; /* off 0x0040 */ unsigned long FreeCount[2]; /* off 0x0048 */ struct _CACHED_KSTACK_LIST CachedKernelStacks; /* off 0x0060 */ long ParkLock; /* off 0x0064 */ unsigned long NodePad1; }; struct _GENERAL_LOOKASIDE /* sizeof 00000080 128 */ { union { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SingleListHead; }; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; union { /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0010 */ unsigned long AllocateHits; }; /* off 0x0014 */ unsigned long TotalFrees; union { /* off 0x0018 */ unsigned long FreeMisses; /* off 0x0018 */ unsigned long FreeHits; }; /* off 0x001c */ enum _POOL_TYPE Type; /* off 0x0020 */ unsigned long Tag; /* off 0x0024 */ unsigned long Size; union { /* off 0x0028 */ void*( __stdcall *AllocateEx)(enum _POOL_TYPE,unsigned long,unsigned long,struct _LOOKASIDE_LIST_EX*); /* off 0x0028 */ void*( __stdcall *Allocate)(enum _POOL_TYPE,unsigned long,unsigned long); }; union { /* off 0x002c */ void( __stdcall *FreeEx)(void*,struct _LOOKASIDE_LIST_EX*); /* off 0x002c */ void( __stdcall *Free)(void*); }; /* off 0x0030 */ struct _LIST_ENTRY ListEntry; /* off 0x0038 */ unsigned long LastTotalAllocates; union { /* off 0x003c */ unsigned long LastAllocateMisses; /* off 0x003c */ unsigned long LastAllocateHits; }; /* off 0x0040 */ unsigned long Future[2]; }; enum _POOL_TYPE { NonPagedPool =0x00000000 ,//0 PagedPool =0x00000001 ,//0 NonPagedPoolMustSucceed =0x00000002 ,//0 DontUseThisType =0x00000003 ,//0 NonPagedPoolCacheAligned =0x00000004 ,//0 PagedPoolCacheAligned =0x00000005 ,//0 NonPagedPoolCacheAlignedMustS =0x00000006 ,//0 MaxPoolType =0x00000007 ,//0 NonPagedPoolSession =0x00000020 ,//0 PagedPoolSession =0x00000021 ,//0 NonPagedPoolMustSucceedSession =0x00000022 ,//0 DontUseThisTypeSession =0x00000023 ,//0 NonPagedPoolCacheAlignedSession =0x00000024 ,//0 PagedPoolCacheAlignedSession =0x00000025 ,//0 NonPagedPoolCacheAlignedMustSSession =0x00000026 ,//0 }; struct _LOOKASIDE_LIST_EX /* sizeof 00000048 72 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE_POOL L; }; struct _PPM_IDLE_STATE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX DomainMembers; /* off 0x000c */ long( __fastcall *IdleCheck)(void*); /* off 0x0010 */ void( __fastcall *IdleHandler)(void*); /* off 0x0018 */ unsigned __int64 HvConfig; /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned long Latency; /* off 0x0028 */ unsigned long Power; /* off 0x002c */ unsigned long TimeCheck; /* off 0x0030 */ unsigned long StateFlags; /* off 0x0034 */ unsigned char PromotePercent; /* off 0x0035 */ unsigned char DemotePercent; /* off 0x0036 */ unsigned char PromotePercentBase; /* off 0x0037 */ unsigned char DemotePercentBase; /* off 0x0038 */ unsigned char StateType; }; struct _PPM_IDLE_STATES /* sizeof 00000060 96 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HvMaxCState:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; } Flags; /* off 0x0008 */ unsigned long TargetState; /* off 0x000c */ unsigned long ActualState; /* off 0x0010 */ unsigned long OldState; /* off 0x0014 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x0020 */ struct _PPM_IDLE_STATE State[1]; }; struct _PROC_IDLE_STATE_BUCKET /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned __int64 MinTime; /* off 0x0010 */ unsigned __int64 MaxTime; /* off 0x0018 */ unsigned long Count; }; struct _PROC_IDLE_STATE_ACCOUNTING /* sizeof 00000228 552 */ { /* off 0x0000 */ unsigned __int64 TotalTime; /* off 0x0008 */ unsigned long IdleTransitions; /* off 0x000c */ unsigned long FailedTransitions; /* off 0x0010 */ unsigned long InvalidBucketIndex; /* off 0x0018 */ unsigned __int64 MinTime; /* off 0x0020 */ unsigned __int64 MaxTime; /* off 0x0028 */ struct _PROC_IDLE_STATE_BUCKET IdleTimeBuckets[16]; }; struct _PROC_IDLE_ACCOUNTING /* sizeof 000002c0 704 */ { /* off 0x0000 */ unsigned long StateCount; /* off 0x0004 */ unsigned long TotalTransitions; /* off 0x0008 */ unsigned long ResetCount; /* off 0x0010 */ unsigned __int64 StartTime; /* off 0x0018 */ unsigned __int64 BucketLimits[16]; /* off 0x0098 */ struct _PROC_IDLE_STATE_ACCOUNTING State[1]; }; enum _PROC_HYPERVISOR_STATE { ProcHypervisorNone =0x00000000 ,//0 ProcHypervisorPresent =0x00000001 ,//0 ProcHypervisorPower =0x00000002 ,//0 }; struct _PROC_PERF_DOMAIN /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _KPRCB* Master; /* off 0x000c */ struct _KAFFINITY_EX Members; /* off 0x0018 */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x001c */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0020 */ void( __fastcall *BoostPolicyHandler)(unsigned long); /* off 0x0024 */ unsigned long( __fastcall *PerfSelectionHandler)(unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long*,unsigned long*); /* off 0x0028 */ void( __fastcall *PerfHandler)(unsigned long,unsigned long); /* off 0x002c */ struct _PROC_PERF_CONSTRAINT* Processors; /* off 0x0030 */ unsigned __int64 PerfChangeTime; /* off 0x0038 */ unsigned long ProcessorCount; /* off 0x003c */ unsigned long PreviousFrequencyMhz; /* off 0x0040 */ unsigned long CurrentFrequencyMhz; /* off 0x0044 */ unsigned long PreviousFrequency; /* off 0x0048 */ unsigned long CurrentFrequency; /* off 0x004c */ unsigned long CurrentPerfContext; /* off 0x0050 */ unsigned long DesiredFrequency; /* off 0x0054 */ unsigned long MaxFrequency; /* off 0x0058 */ unsigned long MinPerfPercent; /* off 0x005c */ unsigned long MinThrottlePercent; /* off 0x0060 */ unsigned long MaxPercent; /* off 0x0064 */ unsigned long MinPercent; /* off 0x0068 */ unsigned long ConstrainedMaxPercent; /* off 0x006c */ unsigned long ConstrainedMinPercent; /* off 0x0070 */ unsigned char Coordination; /* off 0x0074 */ long PerfChangeIntervalCount; }; struct _PROC_PERF_CONSTRAINT /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _KPRCB* Prcb; /* off 0x0004 */ unsigned long PerfContext; /* off 0x0008 */ unsigned long PercentageCap; /* off 0x000c */ unsigned long ThermalCap; /* off 0x0010 */ unsigned long TargetFrequency; /* off 0x0014 */ unsigned long AcumulatedFullFrequency; /* off 0x0018 */ unsigned long AcumulatedZeroFrequency; /* off 0x001c */ unsigned long FrequencyHistoryTotal; /* off 0x0020 */ unsigned long AverageFrequency; }; struct _PROC_PERF_LOAD /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char BusyPercentage; /* off 0x0001 */ unsigned char FrequencyPercentage; }; struct _PROC_HISTORY_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Utility; /* off 0x0002 */ unsigned char Frequency; /* off 0x0003 */ unsigned char Reserved; }; enum _PROCESSOR_CACHE_TYPE { CacheUnified =0x00000000 ,//0 CacheInstruction =0x00000001 ,//0 CacheData =0x00000002 ,//0 CacheTrace =0x00000003 ,//0 }; struct _KiIoAccessMap /* sizeof 00002024 8228 */ { /* off 0x0000 */ unsigned char DirectionMap[32]; /* off 0x0020 */ unsigned char IoMap[8196]; }; struct _KTSS /* sizeof 000020ac 8364 */ { /* off 0x0000 */ unsigned short Backlink; /* off 0x0002 */ unsigned short Reserved0; /* off 0x0004 */ unsigned long Esp0; /* off 0x0008 */ unsigned short Ss0; /* off 0x000a */ unsigned short Reserved1; /* off 0x000c */ unsigned long NotUsed1[4]; /* off 0x001c */ unsigned long CR3; /* off 0x0020 */ unsigned long Eip; /* off 0x0024 */ unsigned long EFlags; /* off 0x0028 */ unsigned long Eax; /* off 0x002c */ unsigned long Ecx; /* off 0x0030 */ unsigned long Edx; /* off 0x0034 */ unsigned long Ebx; /* off 0x0038 */ unsigned long Esp; /* off 0x003c */ unsigned long Ebp; /* off 0x0040 */ unsigned long Esi; /* off 0x0044 */ unsigned long Edi; /* off 0x0048 */ unsigned short Es; /* off 0x004a */ unsigned short Reserved2; /* off 0x004c */ unsigned short Cs; /* off 0x004e */ unsigned short Reserved3; /* off 0x0050 */ unsigned short Ss; /* off 0x0052 */ unsigned short Reserved4; /* off 0x0054 */ unsigned short Ds; /* off 0x0056 */ unsigned short Reserved5; /* off 0x0058 */ unsigned short Fs; /* off 0x005a */ unsigned short Reserved6; /* off 0x005c */ unsigned short Gs; /* off 0x005e */ unsigned short Reserved7; /* off 0x0060 */ unsigned short LDT; /* off 0x0062 */ unsigned short Reserved8; /* off 0x0064 */ unsigned short Flags; /* off 0x0066 */ unsigned short IoMapBase; /* off 0x0068 */ struct _KiIoAccessMap IoMaps[1]; /* off 0x208c */ unsigned char IntDirectionMap[32]; }; enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueUnusedSpare0 =0x00000000 ,//0 LockQueueExpansionLock =0x00000001 ,//0 LockQueueUnusedSpare2 =0x00000002 ,//0 LockQueueSystemSpaceLock =0x00000003 ,//0 LockQueueVacbLock =0x00000004 ,//0 LockQueueMasterLock =0x00000005 ,//0 LockQueueNonPagedPoolLock =0x00000006 ,//0 LockQueueIoCancelLock =0x00000007 ,//0 LockQueueWorkQueueLock =0x00000008 ,//0 LockQueueIoVpbLock =0x00000009 ,//0 LockQueueIoDatabaseLock =0x0000000a ,//0 LockQueueIoCompletionLock =0x0000000b ,//0 LockQueueNtfsStructLock =0x0000000c ,//0 LockQueueAfdWorkQueueLock =0x0000000d ,//0 LockQueueBcbLock =0x0000000e ,//0 LockQueueMmNonPagedPoolLock =0x0000000f ,//0 LockQueueUnusedSpare16 =0x00000010 ,//0 LockQueueMaximumLock =0x00000011 ,//0 }; struct _KEVENT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; }; struct _FAST_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KEVENT Event; /* off 0x001c */ unsigned long OldIrql; }; enum _EVENT_TYPE { NotificationEvent =0x00000000 ,//0 SynchronizationEvent =0x00000001 ,//0 }; struct _NPAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ unsigned long Lock__ObsoleteButDoNotDelete; }; struct _PAGED_LOOKASIDE_LIST /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _GENERAL_LOOKASIDE L; /* off 0x0080 */ struct _FAST_MUTEX Lock__ObsoleteButDoNotDelete; }; struct _QUAD /* sizeof 00000008 8 */ { union { /* off 0x0000 */ __int64 UseThisFieldToCopy; /* off 0x0000 */ double DoNotUseThisField; }; }; struct _EX_PUSH_LOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _EX_PUSH_LOCK_CACHE_AWARE /* sizeof 00000080 128 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK* Locks[32]; }; enum _PP_NPAGED_LOOKASIDE_NUMBER { LookasideSmallIrpList =0x00000000 ,//0 LookasideMediumIrpList =0x00000001 ,//0 LookasideLargeIrpList =0x00000002 ,//0 LookasideMdlList =0x00000003 ,//0 LookasideCreateInfoList =0x00000004 ,//0 LookasideNameBufferList =0x00000005 ,//0 LookasideTwilightList =0x00000006 ,//0 LookasideCompletionList =0x00000007 ,//0 LookasideScratchBufferList =0x00000008 ,//0 LookasideMaximumList =0x00000009 ,//0 }; struct _EX_FAST_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long RefCnt:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Value; }; }; struct _EX_PUSH_LOCK_WAIT_BLOCK /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _KEVENT WakeEvent; /* off 0x0010 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Next; /* off 0x0014 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Last; /* off 0x0018 */ struct _EX_PUSH_LOCK_WAIT_BLOCK* Previous; /* off 0x001c */ long ShareCount; /* off 0x0020 */ long Flags; }; union _PS_CLIENT_SECURITY_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImpersonationData; /* off 0x0000 */ void* ImpersonationToken; struct { /* off 0x0000 */ unsigned long ImpersonationLevel:2 /* start bit 0 */; /* off 0x0000 */ unsigned long EffectiveOnly:1 /* start bit 2 */; }; }; struct _EX_RUNDOWN_REF /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Count; /* off 0x0000 */ void* Ptr; }; }; struct _ETHREAD /* sizeof 000002b8 696 */ { /* off 0x0000 */ struct _KTHREAD Tcb; /* off 0x0200 */ union _LARGE_INTEGER CreateTime; union { /* off 0x0208 */ union _LARGE_INTEGER ExitTime; /* off 0x0208 */ struct _LIST_ENTRY KeyedWaitChain; }; /* off 0x0210 */ long ExitStatus; union { /* off 0x0214 */ struct _LIST_ENTRY PostBlockList; struct { /* off 0x0214 */ void* ForwardLinkShadow; /* off 0x0218 */ void* StartAddress; }; }; union { /* off 0x021c */ struct _TERMINATION_PORT* TerminationPort; /* off 0x021c */ struct _ETHREAD* ReaperLink; /* off 0x021c */ void* KeyedWaitValue; }; /* off 0x0220 */ unsigned long ActiveTimerListLock; /* off 0x0224 */ struct _LIST_ENTRY ActiveTimerListHead; /* off 0x022c */ struct _CLIENT_ID Cid; union { /* off 0x0234 */ struct _KSEMAPHORE KeyedWaitSemaphore; /* off 0x0234 */ struct _KSEMAPHORE AlpcWaitSemaphore; }; /* off 0x0248 */ union _PS_CLIENT_SECURITY_CONTEXT ClientSecurity; /* off 0x024c */ struct _LIST_ENTRY IrpList; /* off 0x0254 */ unsigned long TopLevelIrp; /* off 0x0258 */ struct _DEVICE_OBJECT* DeviceToVerify; /* off 0x025c */ union _PSP_CPU_QUOTA_APC* CpuQuotaApc; /* off 0x0260 */ void* Win32StartAddress; /* off 0x0264 */ void* LegacyPowerObject; /* off 0x0268 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0270 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x0274 */ struct _EX_PUSH_LOCK ThreadLock; /* off 0x0278 */ unsigned long ReadClusterSize; /* off 0x027c */ long MmLockOrdering; union { /* off 0x0280 */ unsigned long CrossThreadFlags; struct { /* off 0x0280 */ unsigned long Terminated:1 /* start bit 0 */; /* off 0x0280 */ unsigned long ThreadInserted:1 /* start bit 1 */; /* off 0x0280 */ unsigned long HideFromDebugger:1 /* start bit 2 */; /* off 0x0280 */ unsigned long ActiveImpersonationInfo:1 /* start bit 3 */; /* off 0x0280 */ unsigned long Reserved:1 /* start bit 4 */; /* off 0x0280 */ unsigned long HardErrorsAreDisabled:1 /* start bit 5 */; /* off 0x0280 */ unsigned long BreakOnTermination:1 /* start bit 6 */; /* off 0x0280 */ unsigned long SkipCreationMsg:1 /* start bit 7 */; /* off 0x0280 */ unsigned long SkipTerminationMsg:1 /* start bit 8 */; /* off 0x0280 */ unsigned long CopyTokenOnOpen:1 /* start bit 9 */; /* off 0x0280 */ unsigned long ThreadIoPriority:3 /* start bit 10 */; /* off 0x0280 */ unsigned long ThreadPagePriority:3 /* start bit 13 */; /* off 0x0280 */ unsigned long RundownFail:1 /* start bit 16 */; /* off 0x0280 */ unsigned long NeedsWorkingSetAging:1 /* start bit 17 */; }; }; union { /* off 0x0284 */ unsigned long SameThreadPassiveFlags; struct { /* off 0x0284 */ unsigned long ActiveExWorker:1 /* start bit 0 */; /* off 0x0284 */ unsigned long ExWorkerCanWaitUser:1 /* start bit 1 */; /* off 0x0284 */ unsigned long MemoryMaker:1 /* start bit 2 */; /* off 0x0284 */ unsigned long ClonedThread:1 /* start bit 3 */; /* off 0x0284 */ unsigned long KeyedEventInUse:1 /* start bit 4 */; /* off 0x0284 */ unsigned long RateApcState:2 /* start bit 5 */; /* off 0x0284 */ unsigned long SelfTerminate:1 /* start bit 7 */; }; }; union { /* off 0x0288 */ unsigned long SameThreadApcFlags; struct { /* off 0x0288 */ unsigned char Spare:1 /* start bit 0 */; /* off 0x0288 */ unsigned char StartAddressInvalid:1 /* start bit 1 */; /* off 0x0288 */ unsigned char EtwPageFaultCalloutActive:1 /* start bit 2 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetExclusive:1 /* start bit 3 */; /* off 0x0288 */ unsigned char OwnsProcessWorkingSetShared:1 /* start bit 4 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetExclusive:1 /* start bit 5 */; /* off 0x0288 */ unsigned char OwnsSystemCacheWorkingSetShared:1 /* start bit 6 */; struct { /* off 0x0288 */ unsigned char OwnsSessionWorkingSetExclusive:1 /* start bit 7 */; }; /* off 0x0289 */ unsigned char OwnsSessionWorkingSetShared:1 /* start bit 0 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceExclusive:1 /* start bit 1 */; /* off 0x0289 */ unsigned char OwnsProcessAddressSpaceShared:1 /* start bit 2 */; /* off 0x0289 */ unsigned char SuppressSymbolLoad:1 /* start bit 3 */; /* off 0x0289 */ unsigned char Prefetching:1 /* start bit 4 */; /* off 0x0289 */ unsigned char OwnsDynamicMemoryShared:1 /* start bit 5 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaExclusive:1 /* start bit 6 */; /* off 0x0289 */ unsigned char OwnsChangeControlAreaShared:1 /* start bit 7 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetExclusive:1 /* start bit 0 */; /* off 0x028a */ unsigned char OwnsPagedPoolWorkingSetShared:1 /* start bit 1 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetExclusive:1 /* start bit 2 */; /* off 0x028a */ unsigned char OwnsSystemPtesWorkingSetShared:1 /* start bit 3 */; /* off 0x028a */ unsigned char TrimTrigger:2 /* start bit 4 */; /* off 0x028a */ unsigned char Spare1:2 /* start bit 6 */; /* off 0x028b */ unsigned char PriorityRegionActive; }; }; /* off 0x028c */ unsigned char CacheManagerActive; /* off 0x028d */ unsigned char DisablePageFaultClustering; /* off 0x028e */ unsigned char ActiveFaultCount; /* off 0x028f */ unsigned char LockOrderState; /* off 0x0290 */ unsigned long AlpcMessageId; union { /* off 0x0294 */ void* AlpcMessage; /* off 0x0294 */ unsigned long AlpcReceiveAttributeSet; }; /* off 0x0298 */ struct _LIST_ENTRY AlpcWaitListEntry; /* off 0x02a0 */ unsigned long CacheManagerCount; /* off 0x02a4 */ unsigned long IoBoostCount; /* off 0x02a8 */ unsigned long IrpListLock; /* off 0x02ac */ void* ReservedForSynchTracking; /* off 0x02b0 */ struct _SINGLE_LIST_ENTRY CmCallbackListHead; }; struct _TERMINATION_PORT /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _TERMINATION_PORT* Next; /* off 0x0004 */ void* Port; }; struct _KDEVICE_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceListEntry; /* off 0x0008 */ unsigned long SortKey; /* off 0x000c */ unsigned char Inserted; }; struct _WAIT_CONTEXT_BLOCK /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY WaitQueueEntry; /* off 0x0010 */ enum _IO_ALLOCATION_ACTION( __stdcall *DeviceRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*,void*); /* off 0x0014 */ void* DeviceContext; /* off 0x0018 */ unsigned long NumberOfMapRegisters; /* off 0x001c */ void* DeviceObject; /* off 0x0020 */ void* CurrentIrp; /* off 0x0024 */ struct _KDPC* BufferChainingDpc; }; struct _KDEVICE_QUEUE /* sizeof 00000014 20 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY DeviceListHead; /* off 0x000c */ unsigned long Lock; /* off 0x0010 */ unsigned char Busy; }; struct _DEVICE_OBJECT /* sizeof 000000b8 184 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ long ReferenceCount; /* off 0x0008 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x000c */ struct _DEVICE_OBJECT* NextDevice; /* off 0x0010 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0014 */ struct _IRP* CurrentIrp; /* off 0x0018 */ struct _IO_TIMER* Timer; /* off 0x001c */ unsigned long Flags; /* off 0x0020 */ unsigned long Characteristics; /* off 0x0024 */ struct _VPB* Vpb; /* off 0x0028 */ void* DeviceExtension; /* off 0x002c */ unsigned long DeviceType; /* off 0x0030 */ char StackSize; /* off 0x0034 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0000 */ struct _WAIT_CONTEXT_BLOCK Wcb; } Queue; /* off 0x005c */ unsigned long AlignmentRequirement; /* off 0x0060 */ struct _KDEVICE_QUEUE DeviceQueue; /* off 0x0074 */ struct _KDPC Dpc; /* off 0x0094 */ unsigned long ActiveThreadCount; /* off 0x0098 */ void* SecurityDescriptor; /* off 0x009c */ struct _KEVENT DeviceLock; /* off 0x00ac */ unsigned short SectorSize; /* off 0x00ae */ unsigned short Spare1; /* off 0x00b0 */ struct _DEVOBJ_EXTENSION* DeviceObjectExtension; /* off 0x00b4 */ void* Reserved; }; struct _DRIVER_OBJECT /* sizeof 000000a8 168 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ void* DriverStart; /* off 0x0010 */ unsigned long DriverSize; /* off 0x0014 */ void* DriverSection; /* off 0x0018 */ struct _DRIVER_EXTENSION* DriverExtension; /* off 0x001c */ struct _UNICODE_STRING DriverName; /* off 0x0024 */ struct _UNICODE_STRING* HardwareDatabase; /* off 0x0028 */ struct _FAST_IO_DISPATCH* FastIoDispatch; /* off 0x002c */ long( __stdcall *DriverInit)(struct _DRIVER_OBJECT*,struct _UNICODE_STRING*); /* off 0x0030 */ void( __stdcall *DriverStartIo)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x0034 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0038 */ long( __stdcall * MajorFunction[28])(struct _DEVICE_OBJECT*,struct _IRP*); }; struct _DRIVER_EXTENSION /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _DRIVER_OBJECT* DriverObject; /* off 0x0004 */ long( __stdcall *AddDevice)(struct _DRIVER_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned long Count; /* off 0x000c */ struct _UNICODE_STRING ServiceKeyName; /* off 0x0014 */ struct _IO_CLIENT_EXTENSION* ClientDriverExtension; /* off 0x0018 */ struct _FS_FILTER_CALLBACKS* FsFilterCallbacks; }; struct _IO_CLIENT_EXTENSION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_CLIENT_EXTENSION* NextExtension; /* off 0x0004 */ void* ClientIdentificationAddress; }; struct _FS_FILTER_CALLBACKS /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbacks; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ long( __stdcall *PreAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x000c */ void( __stdcall *PostAcquireForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0010 */ long( __stdcall *PreReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0014 */ void( __stdcall *PostReleaseForSectionSynchronization)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0018 */ long( __stdcall *PreAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x001c */ void( __stdcall *PostAcquireForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0020 */ long( __stdcall *PreReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0024 */ void( __stdcall *PostReleaseForCcFlush)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0028 */ long( __stdcall *PreAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x002c */ void( __stdcall *PostAcquireForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); /* off 0x0030 */ long( __stdcall *PreReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,void**); /* off 0x0034 */ void( __stdcall *PostReleaseForModifiedPageWriter)(struct _FS_FILTER_CALLBACK_DATA*,long,void*); }; union _FS_FILTER_PARAMETERS /* sizeof 00000014 20 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER* EndingOffset; /* off 0x0004 */ struct _ERESOURCE** ResourceToRelease; } AcquireForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _ERESOURCE* ResourceToRelease; } ReleaseForModifiedPageWriter; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_SECTION_SYNC_TYPE SyncType; /* off 0x0004 */ unsigned long PageProtection; } AcquireForSectionSynchronization; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE NotificationType; /* off 0x0004 */ unsigned char SafeToRecurse; } NotifyStreamFileObject; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; /* off 0x0010 */ void* Argument5; } Others; }; struct _FS_FILTER_CALLBACK_DATA /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long SizeOfFsFilterCallbackData; /* off 0x0004 */ unsigned char Operation; /* off 0x0005 */ unsigned char Reserved; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _FS_FILTER_PARAMETERS Parameters; }; struct _FILE_OBJECT /* sizeof 00000080 128 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ struct _VPB* Vpb; /* off 0x000c */ void* FsContext; /* off 0x0010 */ void* FsContext2; /* off 0x0014 */ struct _SECTION_OBJECT_POINTERS* SectionObjectPointer; /* off 0x0018 */ void* PrivateCacheMap; /* off 0x001c */ long FinalStatus; /* off 0x0020 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0024 */ unsigned char LockOperation; /* off 0x0025 */ unsigned char DeletePending; /* off 0x0026 */ unsigned char ReadAccess; /* off 0x0027 */ unsigned char WriteAccess; /* off 0x0028 */ unsigned char DeleteAccess; /* off 0x0029 */ unsigned char SharedRead; /* off 0x002a */ unsigned char SharedWrite; /* off 0x002b */ unsigned char SharedDelete; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ struct _UNICODE_STRING FileName; /* off 0x0038 */ union _LARGE_INTEGER CurrentByteOffset; /* off 0x0040 */ unsigned long Waiters; /* off 0x0044 */ unsigned long Busy; /* off 0x0048 */ void* LastLock; /* off 0x004c */ struct _KEVENT Lock; /* off 0x005c */ struct _KEVENT Event; /* off 0x006c */ struct _IO_COMPLETION_CONTEXT* CompletionContext; /* off 0x0070 */ unsigned long IrpListLock; /* off 0x0074 */ struct _LIST_ENTRY IrpList; /* off 0x007c */ void* FileObjectExtension; }; struct _VPB /* sizeof 00000058 88 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short VolumeLabelLength; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _DEVICE_OBJECT* RealDevice; /* off 0x0010 */ unsigned long SerialNumber; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ wchar VolumeLabel[32]; }; struct _SECTION_OBJECT_POINTERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* DataSectionObject; /* off 0x0004 */ void* SharedCacheMap; /* off 0x0008 */ void* ImageSectionObject; }; struct _IO_COMPLETION_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Port; /* off 0x0004 */ void* Key; }; struct _OWNER_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerThread; union { struct { /* off 0x0004 */ unsigned long IoPriorityBoosted:1 /* start bit 0 */; /* off 0x0004 */ unsigned long OwnerReferenced:1 /* start bit 1 */; /* off 0x0004 */ unsigned long OwnerCount:30 /* start bit 2 */; }; /* off 0x0004 */ unsigned long TableSize; }; }; struct _ERESOURCE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY SystemResourcesList; /* off 0x0008 */ struct _OWNER_ENTRY* OwnerTable; /* off 0x000c */ short ActiveCount; /* off 0x000e */ unsigned short Flag; /* off 0x0010 */ struct _KSEMAPHORE* SharedWaiters; /* off 0x0014 */ struct _KEVENT* ExclusiveWaiters; /* off 0x0018 */ struct _OWNER_ENTRY OwnerEntry; /* off 0x0020 */ unsigned long ActiveEntries; /* off 0x0024 */ unsigned long ContentionCount; /* off 0x0028 */ unsigned long NumberOfSharedWaiters; /* off 0x002c */ unsigned long NumberOfExclusiveWaiters; union { /* off 0x0030 */ void* Address; /* off 0x0030 */ unsigned long CreatorBackTraceIndex; }; /* off 0x0034 */ unsigned long SpinLock; }; enum _FS_FILTER_SECTION_SYNC_TYPE { SyncTypeOther =0x00000000 ,//0 SyncTypeCreateSection =0x00000001 ,//0 }; enum _FS_FILTER_STREAM_FO_NOTIFICATION_TYPE { NotifyTypeCreate =0x00000000 ,//0 NotifyTypeRetired =0x00000001 ,//0 }; struct _FAST_IO_DISPATCH /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long SizeOfFastIoDispatch; /* off 0x0004 */ unsigned char( __stdcall *FastIoCheckIfPossible)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0008 */ unsigned char( __stdcall *FastIoRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x000c */ unsigned char( __stdcall *FastIoWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned char,unsigned long,void*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0010 */ unsigned char( __stdcall *FastIoQueryBasicInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_BASIC_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0014 */ unsigned char( __stdcall *FastIoQueryStandardInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_STANDARD_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0018 */ unsigned char( __stdcall *FastIoLock)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,unsigned char,unsigned char,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x001c */ unsigned char( __stdcall *FastIoUnlockSingle)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,union _LARGE_INTEGER*,struct _EPROCESS*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0020 */ unsigned char( __stdcall *FastIoUnlockAll)(struct _FILE_OBJECT*,struct _EPROCESS*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0024 */ unsigned char( __stdcall *FastIoUnlockAllByKey)(struct _FILE_OBJECT*,void*,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0028 */ unsigned char( __stdcall *FastIoDeviceControl)(struct _FILE_OBJECT*,unsigned char,void*,unsigned long,void*,unsigned long,unsigned long,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x002c */ void( __stdcall *AcquireFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0030 */ void( __stdcall *ReleaseFileForNtCreateSection)(struct _FILE_OBJECT*); /* off 0x0034 */ void( __stdcall *FastIoDetachDevice)(struct _DEVICE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x0038 */ unsigned char( __stdcall *FastIoQueryNetworkOpenInfo)(struct _FILE_OBJECT*,unsigned char,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x003c */ long( __stdcall *AcquireForModWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _ERESOURCE**,struct _DEVICE_OBJECT*); /* off 0x0040 */ unsigned char( __stdcall *MdlRead)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x0044 */ unsigned char( __stdcall *MdlReadComplete)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0048 */ unsigned char( __stdcall *PrepareMdlWrite)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _DEVICE_OBJECT*); /* off 0x004c */ unsigned char( __stdcall *MdlWriteComplete)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0050 */ unsigned char( __stdcall *FastIoReadCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0054 */ unsigned char( __stdcall *FastIoWriteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,unsigned long,unsigned long,void*,struct _MDL**,struct _IO_STATUS_BLOCK*,struct _COMPRESSED_DATA_INFO*,unsigned long,struct _DEVICE_OBJECT*); /* off 0x0058 */ unsigned char( __stdcall *MdlReadCompleteCompressed)(struct _FILE_OBJECT*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x005c */ unsigned char( __stdcall *MdlWriteCompleteCompressed)(struct _FILE_OBJECT*,union _LARGE_INTEGER*,struct _MDL*,struct _DEVICE_OBJECT*); /* off 0x0060 */ unsigned char( __stdcall *FastIoQueryOpen)(struct _IRP*,struct _FILE_NETWORK_OPEN_INFORMATION*,struct _DEVICE_OBJECT*); /* off 0x0064 */ long( __stdcall *ReleaseForModWrite)(struct _FILE_OBJECT*,struct _ERESOURCE*,struct _DEVICE_OBJECT*); /* off 0x0068 */ long( __stdcall *AcquireForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); /* off 0x006c */ long( __stdcall *ReleaseForCcFlush)(struct _FILE_OBJECT*,struct _DEVICE_OBJECT*); }; struct _FILE_BASIC_INFORMATION /* sizeof 00000028 40 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ unsigned long FileAttributes; }; struct _FILE_STANDARD_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; /* off 0x0008 */ union _LARGE_INTEGER EndOfFile; /* off 0x0010 */ unsigned long NumberOfLinks; /* off 0x0014 */ unsigned char DeletePending; /* off 0x0015 */ unsigned char Directory; }; struct _HARDWARE_PTE /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 reserved0:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; }; }; struct _SE_AUDIT_PROCESS_CREATION_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _OBJECT_NAME_INFORMATION* ImageFileName; }; struct _MMSUPPORT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char WorkingSetType:3 /* start bit 0 */; /* off 0x0000 */ unsigned char ModwriterAttached:1 /* start bit 3 */; /* off 0x0000 */ unsigned char TrimHard:1 /* start bit 4 */; /* off 0x0000 */ unsigned char MaximumWorkingSetHard:1 /* start bit 5 */; /* off 0x0000 */ unsigned char ForceTrim:1 /* start bit 6 */; /* off 0x0000 */ unsigned char MinimumWorkingSetHard:1 /* start bit 7 */; /* off 0x0001 */ unsigned char SessionMaster:1 /* start bit 0 */; /* off 0x0001 */ unsigned char TrimmerState:2 /* start bit 1 */; /* off 0x0001 */ unsigned char Reserved:1 /* start bit 3 */; /* off 0x0001 */ unsigned char PageStealers:4 /* start bit 4 */; /* off 0x0002 */ unsigned char MemoryPriority:8 /* start bit 0 */; /* off 0x0003 */ unsigned char WsleDeleted:1 /* start bit 0 */; /* off 0x0003 */ unsigned char VmExiting:1 /* start bit 1 */; /* off 0x0003 */ unsigned char ExpansionFailed:1 /* start bit 2 */; /* off 0x0003 */ unsigned char Available:5 /* start bit 3 */; }; struct _MMSUPPORT /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK WorkingSetMutex; /* off 0x0004 */ struct _KGATE* ExitGate; /* off 0x0008 */ void* AccessLog; /* off 0x000c */ struct _LIST_ENTRY WorkingSetExpansionLinks; /* off 0x0014 */ unsigned long AgeDistribution[7]; /* off 0x0030 */ unsigned long MinimumWorkingSetSize; /* off 0x0034 */ unsigned long WorkingSetSize; /* off 0x0038 */ unsigned long WorkingSetPrivateSize; /* off 0x003c */ unsigned long MaximumWorkingSetSize; /* off 0x0040 */ unsigned long ChargedWslePages; /* off 0x0044 */ unsigned long ActualWslePages; /* off 0x0048 */ unsigned long WorkingSetSizeOverhead; /* off 0x004c */ unsigned long PeakWorkingSetSize; /* off 0x0050 */ unsigned long HardFaultCount; /* off 0x0054 */ struct _MMWSL* VmWorkingSetList; /* off 0x0058 */ unsigned short NextPageColor; /* off 0x005a */ unsigned short LastTrimStamp; /* off 0x005c */ unsigned long PageFaultCount; /* off 0x0060 */ unsigned long RepurposeCount; /* off 0x0064 */ unsigned long Spare[1]; /* off 0x0068 */ struct _MMSUPPORT_FLAGS Flags; }; struct _MMADDRESS_NODE /* sizeof 00000014 20 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMADDRESS_NODE* Parent; } u1; /* off 0x0004 */ struct _MMADDRESS_NODE* LeftChild; /* off 0x0008 */ struct _MMADDRESS_NODE* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; }; struct _MM_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMADDRESS_NODE BalancedRoot; /* off 0x0014 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0014 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0014 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x0018 */ void* NodeHint; /* off 0x001c */ void* NodeFreeHint; }; struct _ALPC_PROCESS_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _LIST_ENTRY ViewListHead; /* off 0x000c */ unsigned long PagedPoolQuotaCache; }; struct _EPROCESS /* sizeof 000002c0 704 */ { /* off 0x0000 */ struct _KPROCESS Pcb; /* off 0x0098 */ struct _EX_PUSH_LOCK ProcessLock; /* off 0x00a0 */ union _LARGE_INTEGER CreateTime; /* off 0x00a8 */ union _LARGE_INTEGER ExitTime; /* off 0x00b0 */ struct _EX_RUNDOWN_REF RundownProtect; /* off 0x00b4 */ void* UniqueProcessId; /* off 0x00b8 */ struct _LIST_ENTRY ActiveProcessLinks; /* off 0x00c0 */ unsigned long ProcessQuotaUsage[2]; /* off 0x00c8 */ unsigned long ProcessQuotaPeak[2]; /* off 0x00d0 */ unsigned long CommitCharge; /* off 0x00d4 */ struct _EPROCESS_QUOTA_BLOCK* QuotaBlock; /* off 0x00d8 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; /* off 0x00dc */ unsigned long PeakVirtualSize; /* off 0x00e0 */ unsigned long VirtualSize; /* off 0x00e4 */ struct _LIST_ENTRY SessionProcessLinks; /* off 0x00ec */ void* DebugPort; union { /* off 0x00f0 */ void* ExceptionPortData; /* off 0x00f0 */ unsigned long ExceptionPortValue; /* off 0x00f0 */ unsigned long ExceptionPortState:3 /* start bit 0 */; }; /* off 0x00f4 */ struct _HANDLE_TABLE* ObjectTable; /* off 0x00f8 */ struct _EX_FAST_REF Token; /* off 0x00fc */ unsigned long WorkingSetPage; /* off 0x0100 */ struct _EX_PUSH_LOCK AddressCreationLock; /* off 0x0104 */ struct _ETHREAD* RotateInProgress; /* off 0x0108 */ struct _ETHREAD* ForkInProgress; /* off 0x010c */ unsigned long HardwareTrigger; /* off 0x0110 */ struct _MM_AVL_TABLE* PhysicalVadRoot; /* off 0x0114 */ void* CloneRoot; /* off 0x0118 */ unsigned long NumberOfPrivatePages; /* off 0x011c */ unsigned long NumberOfLockedPages; /* off 0x0120 */ void* Win32Process; /* off 0x0124 */ struct _EJOB* Job; /* off 0x0128 */ void* SectionObject; /* off 0x012c */ void* SectionBaseAddress; /* off 0x0130 */ unsigned long Cookie; /* off 0x0134 */ unsigned long Spare8; /* off 0x0138 */ struct _PAGEFAULT_HISTORY* WorkingSetWatch; /* off 0x013c */ void* Win32WindowStation; /* off 0x0140 */ void* InheritedFromUniqueProcessId; /* off 0x0144 */ void* LdtInformation; /* off 0x0148 */ void* VdmObjects; /* off 0x014c */ unsigned long ConsoleHostProcess; /* off 0x0150 */ void* DeviceMap; /* off 0x0154 */ void* EtwDataSource; /* off 0x0158 */ void* FreeTebHint; union { /* off 0x0160 */ struct _HARDWARE_PTE PageDirectoryPte; /* off 0x0160 */ unsigned __int64 Filler; }; /* off 0x0168 */ void* Session; /* off 0x016c */ unsigned char ImageFileName[15]; /* off 0x017b */ unsigned char PriorityClass; /* off 0x017c */ struct _LIST_ENTRY JobLinks; /* off 0x0184 */ void* LockedPagesList; /* off 0x0188 */ struct _LIST_ENTRY ThreadListHead; /* off 0x0190 */ void* SecurityPort; /* off 0x0194 */ void* PaeTop; /* off 0x0198 */ unsigned long ActiveThreads; /* off 0x019c */ unsigned long ImagePathHash; /* off 0x01a0 */ unsigned long DefaultHardErrorProcessing; /* off 0x01a4 */ long LastThreadExitStatus; /* off 0x01a8 */ struct _PEB* Peb; /* off 0x01ac */ struct _EX_FAST_REF PrefetchTrace; /* off 0x01b0 */ union _LARGE_INTEGER ReadOperationCount; /* off 0x01b8 */ union _LARGE_INTEGER WriteOperationCount; /* off 0x01c0 */ union _LARGE_INTEGER OtherOperationCount; /* off 0x01c8 */ union _LARGE_INTEGER ReadTransferCount; /* off 0x01d0 */ union _LARGE_INTEGER WriteTransferCount; /* off 0x01d8 */ union _LARGE_INTEGER OtherTransferCount; /* off 0x01e0 */ unsigned long CommitChargeLimit; /* off 0x01e4 */ unsigned long CommitChargePeak; /* off 0x01e8 */ void* AweInfo; /* off 0x01ec */ struct _SE_AUDIT_PROCESS_CREATION_INFO SeAuditProcessCreationInfo; /* off 0x01f0 */ struct _MMSUPPORT Vm; /* off 0x025c */ struct _LIST_ENTRY MmProcessLinks; /* off 0x0264 */ void* HighestUserAddress; /* off 0x0268 */ unsigned long ModifiedPageCount; union { /* off 0x026c */ unsigned long Flags2; struct { /* off 0x026c */ unsigned long JobNotReallyActive:1 /* start bit 0 */; /* off 0x026c */ unsigned long AccountingFolded:1 /* start bit 1 */; /* off 0x026c */ unsigned long NewProcessReported:1 /* start bit 2 */; /* off 0x026c */ unsigned long ExitProcessReported:1 /* start bit 3 */; /* off 0x026c */ unsigned long ReportCommitChanges:1 /* start bit 4 */; /* off 0x026c */ unsigned long LastReportMemory:1 /* start bit 5 */; /* off 0x026c */ unsigned long ReportPhysicalPageChanges:1 /* start bit 6 */; /* off 0x026c */ unsigned long HandleTableRundown:1 /* start bit 7 */; /* off 0x026c */ unsigned long NeedsHandleRundown:1 /* start bit 8 */; /* off 0x026c */ unsigned long RefTraceEnabled:1 /* start bit 9 */; /* off 0x026c */ unsigned long NumaAware:1 /* start bit 10 */; /* off 0x026c */ unsigned long ProtectedProcess:1 /* start bit 11 */; /* off 0x026c */ unsigned long DefaultPagePriority:3 /* start bit 12 */; /* off 0x026c */ unsigned long PrimaryTokenFrozen:1 /* start bit 15 */; /* off 0x026c */ unsigned long ProcessVerifierTarget:1 /* start bit 16 */; /* off 0x026c */ unsigned long StackRandomizationDisabled:1 /* start bit 17 */; /* off 0x026c */ unsigned long AffinityPermanent:1 /* start bit 18 */; /* off 0x026c */ unsigned long AffinityUpdateEnable:1 /* start bit 19 */; /* off 0x026c */ unsigned long PropagateNode:1 /* start bit 20 */; /* off 0x026c */ unsigned long ExplicitAffinity:1 /* start bit 21 */; }; }; union { /* off 0x0270 */ unsigned long Flags; struct { /* off 0x0270 */ unsigned long CreateReported:1 /* start bit 0 */; /* off 0x0270 */ unsigned long NoDebugInherit:1 /* start bit 1 */; /* off 0x0270 */ unsigned long ProcessExiting:1 /* start bit 2 */; /* off 0x0270 */ unsigned long ProcessDelete:1 /* start bit 3 */; /* off 0x0270 */ unsigned long Wow64SplitPages:1 /* start bit 4 */; /* off 0x0270 */ unsigned long VmDeleted:1 /* start bit 5 */; /* off 0x0270 */ unsigned long OutswapEnabled:1 /* start bit 6 */; /* off 0x0270 */ unsigned long Outswapped:1 /* start bit 7 */; /* off 0x0270 */ unsigned long ForkFailed:1 /* start bit 8 */; /* off 0x0270 */ unsigned long Wow64VaSpace4Gb:1 /* start bit 9 */; /* off 0x0270 */ unsigned long AddressSpaceInitialized:2 /* start bit 10 */; /* off 0x0270 */ unsigned long SetTimerResolution:1 /* start bit 12 */; /* off 0x0270 */ unsigned long BreakOnTermination:1 /* start bit 13 */; /* off 0x0270 */ unsigned long DeprioritizeViews:1 /* start bit 14 */; /* off 0x0270 */ unsigned long WriteWatch:1 /* start bit 15 */; /* off 0x0270 */ unsigned long ProcessInSession:1 /* start bit 16 */; /* off 0x0270 */ unsigned long OverrideAddressSpace:1 /* start bit 17 */; /* off 0x0270 */ unsigned long HasAddressSpace:1 /* start bit 18 */; /* off 0x0270 */ unsigned long LaunchPrefetched:1 /* start bit 19 */; /* off 0x0270 */ unsigned long InjectInpageErrors:1 /* start bit 20 */; /* off 0x0270 */ unsigned long VmTopDown:1 /* start bit 21 */; /* off 0x0270 */ unsigned long ImageNotifyDone:1 /* start bit 22 */; /* off 0x0270 */ unsigned long PdeUpdateNeeded:1 /* start bit 23 */; /* off 0x0270 */ unsigned long VdmAllowed:1 /* start bit 24 */; /* off 0x0270 */ unsigned long CrossSessionCreate:1 /* start bit 25 */; /* off 0x0270 */ unsigned long ProcessInserted:1 /* start bit 26 */; /* off 0x0270 */ unsigned long DefaultIoPriority:3 /* start bit 27 */; /* off 0x0270 */ unsigned long ProcessSelfDelete:1 /* start bit 30 */; /* off 0x0270 */ unsigned long SetTimerResolutionLink:1 /* start bit 31 */; }; }; /* off 0x0274 */ long ExitStatus; /* off 0x0278 */ struct _MM_AVL_TABLE VadRoot; /* off 0x0298 */ struct _ALPC_PROCESS_CONTEXT AlpcContext; /* off 0x02a8 */ struct _LIST_ENTRY TimerResolutionLink; /* off 0x02b0 */ unsigned long RequestedTimerResolution; /* off 0x02b4 */ unsigned long ActiveThreadsHighWatermark; /* off 0x02b8 */ unsigned long SmallestTimerResolution; /* off 0x02bc */ struct _PO_DIAG_STACK_RECORD* TimerResolutionStackRecord; }; struct _EPROCESS_QUOTA_BLOCK /* sizeof 00000000 0 */ { }; union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned long CapturedCpuShareWeight; /* off 0x0004 */ unsigned long CapturedTotalWeight; }; /* off 0x0000 */ __int64 CombinedData; }; struct _PS_PER_CPU_QUOTA_CACHE_AWARE /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _LIST_ENTRY SortedListEntry; /* off 0x0008 */ struct _LIST_ENTRY IdleOnlyListHead; /* off 0x0010 */ unsigned __int64 CycleBaseAllowance; /* off 0x0018 */ __int64 CyclesRemaining; /* off 0x0020 */ unsigned long CurrentGeneration; }; struct _PS_CPU_QUOTA_BLOCK /* sizeof 00000880 2176 */ { union { struct { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; union { struct { /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ unsigned long CpuShareWeight; /* off 0x0010 */ union _PSP_CPU_SHARE_CAPTURED_WEIGHT_DATA CapturedWeightData; union { struct { /* off 0x0018 */ unsigned long DuplicateInputMarker:1 /* start bit 0 */; /* off 0x0018 */ unsigned long Reserved:31 /* start bit 1 */; }; /* off 0x0018 */ long MiscFlags; }; struct { }; /* off 0x0000 */ unsigned long BlockCurrentGenerationLock; }; struct { /* off 0x0008 */ unsigned __int64 CyclesAccumulated; }; }; /* off 0x0040 */ unsigned __int64 CycleCredit; /* off 0x0048 */ unsigned long BlockCurrentGeneration; /* off 0x004c */ unsigned long CpuCyclePercent; /* off 0x0050 */ unsigned char CyclesFinishedForCurrentGeneration; /* off 0x0080 */ struct _PS_PER_CPU_QUOTA_CACHE_AWARE Cpu[32]; }; }; }; struct _HANDLE_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ unsigned long TableCode; /* off 0x0004 */ struct _EPROCESS* QuotaProcess; /* off 0x0008 */ void* UniqueProcessId; /* off 0x000c */ struct _EX_PUSH_LOCK HandleLock; /* off 0x0010 */ struct _LIST_ENTRY HandleTableList; /* off 0x0018 */ struct _EX_PUSH_LOCK HandleContentionEvent; /* off 0x001c */ struct _HANDLE_TRACE_DEBUG_INFO* DebugInfo; /* off 0x0020 */ long ExtraInfoPages; union { /* off 0x0024 */ unsigned long Flags; /* off 0x0024 */ unsigned char StrictFIFO:1 /* start bit 0 */; }; /* off 0x0028 */ unsigned long FirstFreeHandle; /* off 0x002c */ struct _HANDLE_TABLE_ENTRY* LastFreeHandleEntry; /* off 0x0030 */ unsigned long HandleCount; /* off 0x0034 */ unsigned long NextHandleNeedingPool; /* off 0x0038 */ unsigned long HandleCountHighWatermark; }; struct _HANDLE_TRACE_DB_ENTRY /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ void* Handle; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ void* StackTrace[16]; }; struct _HANDLE_TRACE_DEBUG_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ unsigned long TableSize; /* off 0x0008 */ unsigned long BitMaskFlags; /* off 0x000c */ struct _FAST_MUTEX CloseCompactionLock; /* off 0x002c */ unsigned long CurrentStackIndex; /* off 0x0030 */ struct _HANDLE_TRACE_DB_ENTRY TraceDb[1]; }; struct _HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void* Object; /* off 0x0000 */ unsigned long ObAttributes; /* off 0x0000 */ struct _HANDLE_TABLE_ENTRY_INFO* InfoTable; /* off 0x0000 */ unsigned long Value; }; union { /* off 0x0004 */ unsigned long GrantedAccess; struct { /* off 0x0004 */ unsigned short GrantedAccessIndex; /* off 0x0006 */ unsigned short CreatorBackTraceIndex; }; /* off 0x0004 */ unsigned long NextFreeTableEntry; }; }; struct _HANDLE_TABLE_ENTRY_INFO /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AuditMask; }; struct _EJOB /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ struct _LIST_ENTRY JobLinks; /* off 0x0018 */ struct _LIST_ENTRY ProcessListHead; /* off 0x0020 */ struct _ERESOURCE JobLock; /* off 0x0058 */ union _LARGE_INTEGER TotalUserTime; /* off 0x0060 */ union _LARGE_INTEGER TotalKernelTime; /* off 0x0068 */ union _LARGE_INTEGER ThisPeriodTotalUserTime; /* off 0x0070 */ union _LARGE_INTEGER ThisPeriodTotalKernelTime; /* off 0x0078 */ unsigned long TotalPageFaultCount; /* off 0x007c */ unsigned long TotalProcesses; /* off 0x0080 */ unsigned long ActiveProcesses; /* off 0x0084 */ unsigned long TotalTerminatedProcesses; /* off 0x0088 */ union _LARGE_INTEGER PerProcessUserTimeLimit; /* off 0x0090 */ union _LARGE_INTEGER PerJobUserTimeLimit; /* off 0x0098 */ unsigned long MinimumWorkingSetSize; /* off 0x009c */ unsigned long MaximumWorkingSetSize; /* off 0x00a0 */ unsigned long LimitFlags; /* off 0x00a4 */ unsigned long ActiveProcessLimit; /* off 0x00a8 */ struct _KAFFINITY_EX Affinity; /* off 0x00b4 */ unsigned char PriorityClass; /* off 0x00b8 */ struct _JOB_ACCESS_STATE* AccessState; /* off 0x00bc */ unsigned long UIRestrictionsClass; /* off 0x00c0 */ unsigned long EndOfJobTimeAction; /* off 0x00c4 */ void* CompletionPort; /* off 0x00c8 */ void* CompletionKey; /* off 0x00cc */ unsigned long SessionId; /* off 0x00d0 */ unsigned long SchedulingClass; /* off 0x00d8 */ unsigned __int64 ReadOperationCount; /* off 0x00e0 */ unsigned __int64 WriteOperationCount; /* off 0x00e8 */ unsigned __int64 OtherOperationCount; /* off 0x00f0 */ unsigned __int64 ReadTransferCount; /* off 0x00f8 */ unsigned __int64 WriteTransferCount; /* off 0x0100 */ unsigned __int64 OtherTransferCount; /* off 0x0108 */ unsigned long ProcessMemoryLimit; /* off 0x010c */ unsigned long JobMemoryLimit; /* off 0x0110 */ unsigned long PeakProcessMemoryUsed; /* off 0x0114 */ unsigned long PeakJobMemoryUsed; /* off 0x0118 */ unsigned __int64 CurrentJobMemoryUsed; /* off 0x0120 */ struct _EX_PUSH_LOCK MemoryLimitsLock; /* off 0x0124 */ struct _LIST_ENTRY JobSetLinks; /* off 0x012c */ unsigned long MemberLevel; /* off 0x0130 */ unsigned long JobFlags; }; struct _JOB_ACCESS_STATE /* sizeof 00000000 0 */ { }; struct _PAGEFAULT_HISTORY /* sizeof 00000000 0 */ { }; struct _OBJECT_NAME_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _UNICODE_STRING Name; }; struct _MMWSL /* sizeof 00000d08 3336 */ { /* off 0x0000 */ unsigned long FirstFree; /* off 0x0004 */ unsigned long FirstDynamic; /* off 0x0008 */ unsigned long LastEntry; /* off 0x000c */ unsigned long NextSlot; /* off 0x0010 */ struct _MMWSLE* Wsle; /* off 0x0014 */ void* LowestPagableAddress; /* off 0x0018 */ unsigned long LastInitializedWsle; /* off 0x001c */ unsigned long NextAgingSlot; /* off 0x0020 */ unsigned long NumberOfCommittedPageTables; /* off 0x0024 */ unsigned long VadBitMapHint; /* off 0x0028 */ unsigned long NonDirectCount; /* off 0x002c */ unsigned long LastVadBit; /* off 0x0030 */ unsigned long MaximumLastVadBit; /* off 0x0034 */ unsigned long LastAllocationSizeHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ struct _MMWSLE_NONDIRECT_HASH* NonDirectHash; /* off 0x0040 */ struct _MMWSLE_HASH* HashTableStart; /* off 0x0044 */ struct _MMWSLE_HASH* HighestPermittedHashAddress; /* off 0x0048 */ unsigned short UsedPageTableEntries[1536]; /* off 0x0c48 */ unsigned long CommittedPageTables[48]; }; struct _MMWSLENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Hashed:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Direct:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 4 */; /* off 0x0000 */ unsigned long Age:3 /* start bit 9 */; /* off 0x0000 */ unsigned long VirtualPageNumber:20 /* start bit 12 */; }; struct _MMWSLE_FREE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousFree:11 /* start bit 1 */; /* off 0x0000 */ unsigned long NextFree:20 /* start bit 12 */; }; struct _MMWSLE /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0000 */ unsigned long Long; /* off 0x0000 */ struct _MMWSLENTRY e1; /* off 0x0000 */ struct _MMWSLE_FREE_ENTRY e2; } u1; }; struct _MMWSLE_NONDIRECT_HASH /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Key; /* off 0x0004 */ unsigned long Index; }; struct _MMWSLE_HASH /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Index; }; struct _PO_DIAG_STACK_RECORD /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long StackDepth; /* off 0x0004 */ void* Stack[1]; }; struct _FILE_NETWORK_OPEN_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ union _LARGE_INTEGER LastAccessTime; /* off 0x0010 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0018 */ union _LARGE_INTEGER ChangeTime; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ union _LARGE_INTEGER EndOfFile; /* off 0x0030 */ unsigned long FileAttributes; }; struct _MDL /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _MDL* Next; /* off 0x0004 */ short Size; /* off 0x0006 */ short MdlFlags; /* off 0x0008 */ struct _EPROCESS* Process; /* off 0x000c */ void* MappedSystemVa; /* off 0x0010 */ void* StartVa; /* off 0x0014 */ unsigned long ByteCount; /* off 0x0018 */ unsigned long ByteOffset; }; struct _COMPRESSED_DATA_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short CompressionFormatAndEngine; /* off 0x0002 */ unsigned char CompressionUnitShift; /* off 0x0003 */ unsigned char ChunkShift; /* off 0x0004 */ unsigned char ClusterShift; /* off 0x0005 */ unsigned char Reserved; /* off 0x0006 */ unsigned short NumberOfChunks; /* off 0x0008 */ unsigned long CompressedChunkSizes[1]; }; struct _IRP /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _MDL* MdlAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IRP* MasterIrp; /* off 0x0000 */ long IrpCount; /* off 0x0000 */ void* SystemBuffer; } AssociatedIrp; /* off 0x0010 */ struct _LIST_ENTRY ThreadListEntry; /* off 0x0018 */ struct _IO_STATUS_BLOCK IoStatus; /* off 0x0020 */ char RequestorMode; /* off 0x0021 */ unsigned char PendingReturned; /* off 0x0022 */ char StackCount; /* off 0x0023 */ char CurrentLocation; /* off 0x0024 */ unsigned char Cancel; /* off 0x0025 */ unsigned char CancelIrql; /* off 0x0026 */ char ApcEnvironment; /* off 0x0027 */ unsigned char AllocationFlags; /* off 0x0028 */ struct _IO_STATUS_BLOCK* UserIosb; /* off 0x002c */ struct _KEVENT* UserEvent; /* off 0x0030 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { union { /* off 0x0000 */ void( __stdcall *UserApcRoutine)(void*,struct _IO_STATUS_BLOCK*,unsigned long); /* off 0x0000 */ void* IssuingProcess; }; /* off 0x0004 */ void* UserApcContext; } AsynchronousParameters; /* off 0x0000 */ union _LARGE_INTEGER AllocationSize; } Overlay; /* off 0x0038 */ void( __stdcall *CancelRoutine)(struct _DEVICE_OBJECT*,struct _IRP*); /* off 0x003c */ void* UserBuffer; /* off 0x0040 */ union /* sizeof 00000030 48 */ { /* off 0x0000 */ struct /* sizeof 00000028 40 */ { union { /* off 0x0000 */ struct _KDEVICE_QUEUE_ENTRY DeviceQueueEntry; /* off 0x0000 */ void* DriverContext[4]; }; /* off 0x0010 */ struct _ETHREAD* Thread; /* off 0x0014 */ char* AuxiliaryBuffer; /* off 0x0018 */ struct _LIST_ENTRY ListEntry; union { /* off 0x0020 */ struct _IO_STACK_LOCATION* CurrentStackLocation; /* off 0x0020 */ unsigned long PacketType; }; /* off 0x0024 */ struct _FILE_OBJECT* OriginalFileObject; } Overlay; /* off 0x0000 */ struct _KAPC Apc; /* off 0x0000 */ void* CompletionKey; } Tail; }; struct _SYSTEM_POWER_STATE_CONTEXT /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned long TargetSystemState:4 /* start bit 8 */; /* off 0x0000 */ unsigned long EffectiveSystemState:4 /* start bit 12 */; /* off 0x0000 */ unsigned long CurrentSystemState:4 /* start bit 16 */; /* off 0x0000 */ unsigned long IgnoreHibernationPath:1 /* start bit 20 */; /* off 0x0000 */ unsigned long PseudoTransition:1 /* start bit 21 */; /* off 0x0000 */ unsigned long Reserved2:10 /* start bit 22 */; }; /* off 0x0000 */ unsigned long ContextAsUlong; }; }; union _POWER_STATE /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0000 */ enum _DEVICE_POWER_STATE DeviceState; }; struct _IO_STACK_LOCATION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned char MajorFunction; /* off 0x0001 */ unsigned char MinorFunction; /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char Control; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short FileAttributes; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ unsigned long EaLength; } Create; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _NAMED_PIPE_CREATE_PARAMETERS* Parameters; } CreatePipe; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _IO_SECURITY_CONTEXT* SecurityContext; /* off 0x0004 */ unsigned long Options; /* off 0x0008 */ unsigned short Reserved; /* off 0x000a */ unsigned short ShareAccess; /* off 0x000c */ struct _MAILSLOT_CREATE_PARAMETERS* Parameters; } CreateMailslot; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Read; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } Write; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _UNICODE_STRING* FileName; /* off 0x0008 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x000c */ unsigned long FileIndex; } QueryDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long CompletionFilter; } NotifyDirectory; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; } QueryFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FILE_INFORMATION_CLASS FileInformationClass; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; union { struct { /* off 0x000c */ unsigned char ReplaceIfExists; /* off 0x000d */ unsigned char AdvanceOnly; }; /* off 0x000c */ unsigned long ClusterCount; /* off 0x000c */ void* DeleteHandle; }; } SetFile; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* EaList; /* off 0x0008 */ unsigned long EaListLength; /* off 0x000c */ unsigned long EaIndex; } QueryEa; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetEa; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } QueryVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _FSINFOCLASS FsInformationClass; } SetVolume; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long FsControlCode; /* off 0x000c */ void* Type3InputBuffer; } FileSystemControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER* Length; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ union _LARGE_INTEGER ByteOffset; } LockControl; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long OutputBufferLength; /* off 0x0004 */ unsigned long InputBufferLength; /* off 0x0008 */ unsigned long IoControlCode; /* off 0x000c */ void* Type3InputBuffer; } DeviceIoControl; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ unsigned long Length; } QuerySecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SecurityInformation; /* off 0x0004 */ void* SecurityDescriptor; } SetSecurity; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } MountVolume; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _VPB* Vpb; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; } VerifyVolume; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SCSI_REQUEST_BLOCK* Srb; } Scsi; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* StartSid; /* off 0x0008 */ struct _FILE_GET_QUOTA_INFORMATION* SidList; /* off 0x000c */ unsigned long SidListLength; } QueryQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Length; } SetQuota; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID* InterfaceType; /* off 0x0004 */ unsigned short Size; /* off 0x0006 */ unsigned short Version; /* off 0x0008 */ struct _INTERFACE* Interface; /* off 0x000c */ void* InterfaceSpecificData; } QueryInterface; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_CAPABILITIES* Capabilities; } DeviceCapabilities; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* IoResourceRequirementList; } FilterResourceRequirements; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long WhichSpace; /* off 0x0004 */ void* Buffer; /* off 0x0008 */ unsigned long Offset; /* off 0x000c */ unsigned long Length; } ReadWriteConfig; /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char Lock; } SetLock; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum BUS_QUERY_ID_TYPE IdType; } QueryId; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum DEVICE_TEXT_TYPE DeviceTextType; /* off 0x0004 */ unsigned long LocaleId; } QueryDeviceText; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char InPath; /* off 0x0001 */ unsigned char Reserved[3]; /* off 0x0004 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE Type; } UsageNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ enum _SYSTEM_POWER_STATE PowerState; } WaitWake; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _POWER_SEQUENCE* PowerSequence; } PowerSequence; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { union { /* off 0x0000 */ unsigned long SystemContext; /* off 0x0000 */ struct _SYSTEM_POWER_STATE_CONTEXT SystemPowerStateContext; }; /* off 0x0004 */ enum _POWER_STATE_TYPE Type; /* off 0x0008 */ union _POWER_STATE State; /* off 0x000c */ enum POWER_ACTION ShutdownType; } Power; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _CM_RESOURCE_LIST* AllocatedResources; /* off 0x0004 */ struct _CM_RESOURCE_LIST* AllocatedResourcesTranslated; } StartDevice; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ProviderId; /* off 0x0004 */ void* DataPath; /* off 0x0008 */ unsigned long BufferSize; /* off 0x000c */ void* Buffer; } WMI; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Argument1; /* off 0x0004 */ void* Argument2; /* off 0x0008 */ void* Argument3; /* off 0x000c */ void* Argument4; } Others; } Parameters; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0018 */ struct _FILE_OBJECT* FileObject; /* off 0x001c */ long( __stdcall *CompletionRoutine)(struct _DEVICE_OBJECT*,struct _IRP*,void*); /* off 0x0020 */ void* Context; }; struct _IO_SECURITY_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0004 */ struct _ACCESS_STATE* AccessState; /* off 0x0008 */ unsigned long DesiredAccess; /* off 0x000c */ unsigned long FullCreateOptions; }; struct _SECURITY_QUALITY_OF_SERVICE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ unsigned char ContextTrackingMode; /* off 0x0009 */ unsigned char EffectiveOnly; }; enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous =0x00000000 ,//0 SecurityIdentification =0x00000001 ,//0 SecurityImpersonation =0x00000002 ,//0 SecurityDelegation =0x00000003 ,//0 }; struct _SECURITY_SUBJECT_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ void* ClientToken; /* off 0x0004 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x0008 */ void* PrimaryToken; /* off 0x000c */ void* ProcessAuditId; }; struct _LUID_AND_ATTRIBUTES /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LUID Luid; /* off 0x0008 */ unsigned long Attributes; }; struct _INITIAL_PRIVILEGE_SET /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[3]; }; struct _PRIVILEGE_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long PrivilegeCount; /* off 0x0004 */ unsigned long Control; /* off 0x0008 */ struct _LUID_AND_ATTRIBUTES Privilege[1]; }; struct _ACCESS_STATE /* sizeof 00000074 116 */ { /* off 0x0000 */ struct _LUID OperationID; /* off 0x0008 */ unsigned char SecurityEvaluated; /* off 0x0009 */ unsigned char GenerateAudit; /* off 0x000a */ unsigned char GenerateOnClose; /* off 0x000b */ unsigned char PrivilegesAllocated; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ unsigned long RemainingDesiredAccess; /* off 0x0014 */ unsigned long PreviouslyGrantedAccess; /* off 0x0018 */ unsigned long OriginalDesiredAccess; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; /* off 0x002c */ void* SecurityDescriptor; /* off 0x0030 */ void* AuxData; /* off 0x0034 */ union /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _INITIAL_PRIVILEGE_SET InitialPrivilegeSet; /* off 0x0000 */ struct _PRIVILEGE_SET PrivilegeSet; } Privileges; /* off 0x0060 */ unsigned char AuditPrivileges; /* off 0x0064 */ struct _UNICODE_STRING ObjectName; /* off 0x006c */ struct _UNICODE_STRING ObjectTypeName; }; struct _NAMED_PIPE_CREATE_PARAMETERS /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long NamedPipeType; /* off 0x0004 */ unsigned long ReadMode; /* off 0x0008 */ unsigned long CompletionMode; /* off 0x000c */ unsigned long MaximumInstances; /* off 0x0010 */ unsigned long InboundQuota; /* off 0x0014 */ unsigned long OutboundQuota; /* off 0x0018 */ union _LARGE_INTEGER DefaultTimeout; /* off 0x0020 */ unsigned char TimeoutSpecified; }; struct _MAILSLOT_CREATE_PARAMETERS /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long MailslotQuota; /* off 0x0004 */ unsigned long MaximumMessageSize; /* off 0x0008 */ union _LARGE_INTEGER ReadTimeout; /* off 0x0010 */ unsigned char TimeoutSpecified; }; enum _FILE_INFORMATION_CLASS { FileDirectoryInformation =0x00000001 ,//0 FileFullDirectoryInformation =0x00000002 ,//0 FileBothDirectoryInformation =0x00000003 ,//0 FileBasicInformation =0x00000004 ,//0 FileStandardInformation =0x00000005 ,//0 FileInternalInformation =0x00000006 ,//0 FileEaInformation =0x00000007 ,//0 FileAccessInformation =0x00000008 ,//0 FileNameInformation =0x00000009 ,//0 FileRenameInformation =0x0000000a ,//0 FileLinkInformation =0x0000000b ,//0 FileNamesInformation =0x0000000c ,//0 FileDispositionInformation =0x0000000d ,//0 FilePositionInformation =0x0000000e ,//0 FileFullEaInformation =0x0000000f ,//0 FileModeInformation =0x00000010 ,//0 FileAlignmentInformation =0x00000011 ,//0 FileAllInformation =0x00000012 ,//0 FileAllocationInformation =0x00000013 ,//0 FileEndOfFileInformation =0x00000014 ,//0 FileAlternateNameInformation =0x00000015 ,//0 FileStreamInformation =0x00000016 ,//0 FilePipeInformation =0x00000017 ,//0 FilePipeLocalInformation =0x00000018 ,//0 FilePipeRemoteInformation =0x00000019 ,//0 FileMailslotQueryInformation =0x0000001a ,//0 FileMailslotSetInformation =0x0000001b ,//0 FileCompressionInformation =0x0000001c ,//0 FileObjectIdInformation =0x0000001d ,//0 FileCompletionInformation =0x0000001e ,//0 FileMoveClusterInformation =0x0000001f ,//0 FileQuotaInformation =0x00000020 ,//0 FileReparsePointInformation =0x00000021 ,//0 FileNetworkOpenInformation =0x00000022 ,//0 FileAttributeTagInformation =0x00000023 ,//0 FileTrackingInformation =0x00000024 ,//0 FileIdBothDirectoryInformation =0x00000025 ,//0 FileIdFullDirectoryInformation =0x00000026 ,//0 FileValidDataLengthInformation =0x00000027 ,//0 FileShortNameInformation =0x00000028 ,//0 FileIoCompletionNotificationInformation =0x00000029 ,//0 FileIoStatusBlockRangeInformation =0x0000002a ,//0 FileIoPriorityHintInformation =0x0000002b ,//0 FileSfioReserveInformation =0x0000002c ,//0 FileSfioVolumeInformation =0x0000002d ,//0 FileHardLinkInformation =0x0000002e ,//0 FileProcessIdsUsingFileInformation =0x0000002f ,//0 FileNormalizedNameInformation =0x00000030 ,//0 FileNetworkPhysicalNameInformation =0x00000031 ,//0 FileIdGlobalTxDirectoryInformation =0x00000032 ,//0 FileIsRemoteDeviceInformation =0x00000033 ,//0 FileAttributeCacheInformation =0x00000034 ,//0 FileNumaNodeInformation =0x00000035 ,//0 FileStandardLinkInformation =0x00000036 ,//0 FileRemoteProtocolInformation =0x00000037 ,//0 FileMaximumInformation =0x00000038 ,//0 }; enum _FSINFOCLASS { FileFsVolumeInformation =0x00000001 ,//0 FileFsLabelInformation =0x00000002 ,//0 FileFsSizeInformation =0x00000003 ,//0 FileFsDeviceInformation =0x00000004 ,//0 FileFsAttributeInformation =0x00000005 ,//0 FileFsControlInformation =0x00000006 ,//0 FileFsFullSizeInformation =0x00000007 ,//0 FileFsObjectIdInformation =0x00000008 ,//0 FileFsDriverPathInformation =0x00000009 ,//0 FileFsVolumeFlagsInformation =0x0000000a ,//0 FileFsMaximumInformation =0x0000000b ,//0 }; struct _SCSI_REQUEST_BLOCK /* sizeof 00000000 0 */ { }; struct _SID_IDENTIFIER_AUTHORITY /* sizeof 00000006 6 */ { /* off 0x0000 */ unsigned char Value[6]; }; struct _SID /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char SubAuthorityCount; /* off 0x0002 */ struct _SID_IDENTIFIER_AUTHORITY IdentifierAuthority; /* off 0x0008 */ unsigned long SubAuthority[1]; }; struct _FILE_GET_QUOTA_INFORMATION /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long NextEntryOffset; /* off 0x0004 */ unsigned long SidLength; /* off 0x0008 */ struct _SID Sid; }; enum _DEVICE_RELATION_TYPE { BusRelations =0x00000000 ,//0 EjectionRelations =0x00000001 ,//0 PowerRelations =0x00000002 ,//0 RemovalRelations =0x00000003 ,//0 TargetDeviceRelation =0x00000004 ,//0 SingleBusRelations =0x00000005 ,//0 TransportRelations =0x00000006 ,//0 }; struct _INTERFACE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); }; struct _DEVICE_CAPABILITIES /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ unsigned long DeviceD1:1 /* start bit 0 */; /* off 0x0004 */ unsigned long DeviceD2:1 /* start bit 1 */; /* off 0x0004 */ unsigned long LockSupported:1 /* start bit 2 */; /* off 0x0004 */ unsigned long EjectSupported:1 /* start bit 3 */; /* off 0x0004 */ unsigned long Removable:1 /* start bit 4 */; /* off 0x0004 */ unsigned long DockDevice:1 /* start bit 5 */; /* off 0x0004 */ unsigned long UniqueID:1 /* start bit 6 */; /* off 0x0004 */ unsigned long SilentInstall:1 /* start bit 7 */; /* off 0x0004 */ unsigned long RawDeviceOK:1 /* start bit 8 */; /* off 0x0004 */ unsigned long SurpriseRemovalOK:1 /* start bit 9 */; /* off 0x0004 */ unsigned long WakeFromD0:1 /* start bit 10 */; /* off 0x0004 */ unsigned long WakeFromD1:1 /* start bit 11 */; /* off 0x0004 */ unsigned long WakeFromD2:1 /* start bit 12 */; /* off 0x0004 */ unsigned long WakeFromD3:1 /* start bit 13 */; /* off 0x0004 */ unsigned long HardwareDisabled:1 /* start bit 14 */; /* off 0x0004 */ unsigned long NonDynamic:1 /* start bit 15 */; /* off 0x0004 */ unsigned long WarmEjectSupported:1 /* start bit 16 */; /* off 0x0004 */ unsigned long NoDisplayInUI:1 /* start bit 17 */; /* off 0x0004 */ unsigned long Reserved1:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Reserved:13 /* start bit 19 */; /* off 0x0008 */ unsigned long Address; /* off 0x000c */ unsigned long UINumber; /* off 0x0010 */ enum _DEVICE_POWER_STATE DeviceState[7]; /* off 0x002c */ enum _SYSTEM_POWER_STATE SystemWake; /* off 0x0030 */ enum _DEVICE_POWER_STATE DeviceWake; /* off 0x0034 */ unsigned long D1Latency; /* off 0x0038 */ unsigned long D2Latency; /* off 0x003c */ unsigned long D3Latency; }; enum _DEVICE_POWER_STATE { PowerDeviceUnspecified =0x00000000 ,//0 PowerDeviceD0 =0x00000001 ,//0 PowerDeviceD1 =0x00000002 ,//0 PowerDeviceD2 =0x00000003 ,//0 PowerDeviceD3 =0x00000004 ,//0 PowerDeviceMaximum =0x00000005 ,//0 }; enum _SYSTEM_POWER_STATE { PowerSystemUnspecified =0x00000000 ,//0 PowerSystemWorking =0x00000001 ,//0 PowerSystemSleeping1 =0x00000002 ,//0 PowerSystemSleeping2 =0x00000003 ,//0 PowerSystemSleeping3 =0x00000004 ,//0 PowerSystemHibernate =0x00000005 ,//0 PowerSystemShutdown =0x00000006 ,//0 PowerSystemMaximum =0x00000007 ,//0 }; struct _IO_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned char Option; /* off 0x0001 */ unsigned char Type; /* off 0x0002 */ unsigned char ShareDisposition; /* off 0x0003 */ unsigned char Spare1; /* off 0x0004 */ unsigned short Flags; /* off 0x0006 */ unsigned short Spare2; /* off 0x0008 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Port; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory; /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long MinimumVector; /* off 0x0004 */ unsigned long MaximumVector; /* off 0x0008 */ unsigned short AffinityPolicy; /* off 0x000a */ unsigned short Group; /* off 0x000c */ enum _IRQ_PRIORITY PriorityPolicy; /* off 0x0010 */ unsigned long TargetedProcessors; } Interrupt; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long MinimumChannel; /* off 0x0004 */ unsigned long MaximumChannel; } Dma; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Alignment; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long MinBusNumber; /* off 0x0008 */ unsigned long MaxBusNumber; /* off 0x000c */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Priority; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } ConfigData; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length40; /* off 0x0004 */ unsigned long Alignment40; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory40; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length48; /* off 0x0004 */ unsigned long Alignment48; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory48; /* off 0x0000 */ struct /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length64; /* off 0x0004 */ unsigned long Alignment64; /* off 0x0008 */ union _LARGE_INTEGER MinimumAddress; /* off 0x0010 */ union _LARGE_INTEGER MaximumAddress; } Memory64; } u; }; struct _IO_RESOURCE_LIST /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _IO_RESOURCE_DESCRIPTOR Descriptors[1]; }; struct _IO_RESOURCE_REQUIREMENTS_LIST /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long ListSize; /* off 0x0004 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long SlotNumber; /* off 0x0010 */ unsigned long Reserved[3]; /* off 0x001c */ unsigned long AlternativeLists; /* off 0x0020 */ struct _IO_RESOURCE_LIST List[1]; }; enum _INTERFACE_TYPE { InterfaceTypeUndefined =0xffffffff ,//-1 Internal =0x00000000 ,//0 Isa =0x00000001 ,//0 Eisa =0x00000002 ,//0 MicroChannel =0x00000003 ,//0 TurboChannel =0x00000004 ,//0 PCIBus =0x00000005 ,//0 VMEBus =0x00000006 ,//0 NuBus =0x00000007 ,//0 PCMCIABus =0x00000008 ,//0 CBus =0x00000009 ,//0 MPIBus =0x0000000a ,//0 MPSABus =0x0000000b ,//0 ProcessorInternal =0x0000000c ,//0 InternalPowerBus =0x0000000d ,//0 PNPISABus =0x0000000e ,//0 PNPBus =0x0000000f ,//0 Vmcs =0x00000010 ,//0 MaximumInterfaceType =0x00000011 ,//0 }; enum _IRQ_PRIORITY { IrqPriorityUndefined =0x00000000 ,//0 IrqPriorityLow =0x00000001 ,//0 IrqPriorityNormal =0x00000002 ,//0 IrqPriorityHigh =0x00000003 ,//0 }; enum BUS_QUERY_ID_TYPE { BusQueryDeviceID =0x00000000 ,//0 BusQueryHardwareIDs =0x00000001 ,//0 BusQueryCompatibleIDs =0x00000002 ,//0 BusQueryInstanceID =0x00000003 ,//0 BusQueryDeviceSerialNumber =0x00000004 ,//0 BusQueryContainerID =0x00000005 ,//0 }; enum DEVICE_TEXT_TYPE { DeviceTextDescription =0x00000000 ,//0 DeviceTextLocationInformation =0x00000001 ,//0 }; enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined =0x00000000 ,//0 DeviceUsageTypePaging =0x00000001 ,//0 DeviceUsageTypeHibernation =0x00000002 ,//0 DeviceUsageTypeDumpFile =0x00000003 ,//0 }; struct _POWER_SEQUENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long SequenceD1; /* off 0x0004 */ unsigned long SequenceD2; /* off 0x0008 */ unsigned long SequenceD3; }; enum _POWER_STATE_TYPE { SystemPowerState =0x00000000 ,//0 DevicePowerState =0x00000001 ,//0 }; enum POWER_ACTION { PowerActionNone =0x00000000 ,//0 PowerActionReserved =0x00000001 ,//0 PowerActionSleep =0x00000002 ,//0 PowerActionHibernate =0x00000003 ,//0 PowerActionShutdown =0x00000004 ,//0 PowerActionShutdownReset =0x00000005 ,//0 PowerActionShutdownOff =0x00000006 ,//0 PowerActionWarmEject =0x00000007 ,//0 }; struct _CM_PARTIAL_RESOURCE_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Type; /* off 0x0001 */ unsigned char ShareDisposition; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Generic; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Port; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Interrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Group; /* off 0x0002 */ unsigned short MessageCount; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Raw; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned short Level; /* off 0x0002 */ unsigned short Group; /* off 0x0004 */ unsigned long Vector; /* off 0x0008 */ unsigned long Affinity; } Translated; }; } MessageInterrupt; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length; } Memory; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Channel; /* off 0x0004 */ unsigned long Port; /* off 0x0008 */ unsigned long Reserved1; } Dma; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Data[3]; } DevicePrivate; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Start; /* off 0x0004 */ unsigned long Length; /* off 0x0008 */ unsigned long Reserved; } BusNumber; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long Reserved1; /* off 0x0008 */ unsigned long Reserved2; } DeviceSpecificData; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length40; } Memory40; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length48; } Memory48; /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ union _LARGE_INTEGER Start; /* off 0x0008 */ unsigned long Length64; } Memory64; } u; }; struct _CM_PARTIAL_RESOURCE_LIST /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned short Revision; /* off 0x0004 */ unsigned long Count; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; }; struct _CM_FULL_RESOURCE_DESCRIPTOR /* sizeof 00000020 32 */ { /* off 0x0000 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_LIST PartialResourceList; }; struct _CM_RESOURCE_LIST /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _CM_FULL_RESOURCE_DESCRIPTOR List[1]; }; struct _IO_TIMER /* sizeof 00000018 24 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short TimerFlag; /* off 0x0004 */ struct _LIST_ENTRY TimerList; /* off 0x000c */ void( __stdcall *TimerRoutine)(struct _DEVICE_OBJECT*,void*); /* off 0x0010 */ void* Context; /* off 0x0014 */ struct _DEVICE_OBJECT* DeviceObject; }; enum _IO_ALLOCATION_ACTION { KeepObject =0x00000001 ,//0 DeallocateObject =0x00000002 ,//0 DeallocateObjectKeepRegisters =0x00000003 ,//0 }; struct _DEVOBJ_EXTENSION /* sizeof 0000003c 60 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ unsigned short Size; /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0008 */ unsigned long PowerFlags; /* off 0x000c */ struct _DEVICE_OBJECT_POWER_EXTENSION* Dope; /* off 0x0010 */ unsigned long ExtensionFlags; /* off 0x0014 */ void* DeviceNode; /* off 0x0018 */ struct _DEVICE_OBJECT* AttachedTo; /* off 0x001c */ long StartIoCount; /* off 0x0020 */ long StartIoKey; /* off 0x0024 */ unsigned long StartIoFlags; /* off 0x0028 */ struct _VPB* Vpb; /* off 0x002c */ struct _LIST_ENTRY DependentList; /* off 0x0034 */ struct _LIST_ENTRY ProviderList; }; struct _DEVICE_OBJECT_POWER_EXTENSION /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long IdleCount; /* off 0x0004 */ unsigned long BusyCount; /* off 0x0008 */ unsigned long BusyReference; /* off 0x000c */ unsigned long TotalBusyCount; /* off 0x0010 */ unsigned long ConservationIdleTime; /* off 0x0014 */ unsigned long PerformanceIdleTime; /* off 0x0018 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x001c */ struct _LIST_ENTRY IdleList; /* off 0x0024 */ enum _POP_DEVICE_IDLE_TYPE IdleType; /* off 0x0028 */ enum _DEVICE_POWER_STATE IdleState; /* off 0x002c */ enum _DEVICE_POWER_STATE CurrentState; /* off 0x0030 */ struct _LIST_ENTRY Volume; /* off 0x0038 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long IdleTime; /* off 0x0004 */ unsigned long NonIdleTime; } Disk; } Specific; }; enum _POP_DEVICE_IDLE_TYPE { DeviceIdleNormal =0x00000000 ,//0 DeviceIdleDisk =0x00000001 ,//0 }; union _PSP_CPU_QUOTA_APC /* sizeof 00000000 0 */ { }; enum _IO_PRIORITY_HINT { IoPriorityVeryLow =0x00000000 ,//0 IoPriorityLow =0x00000001 ,//0 IoPriorityNormal =0x00000002 ,//0 IoPriorityHigh =0x00000003 ,//0 IoPriorityCritical =0x00000004 ,//0 MaxIoPriorityTypes =0x00000005 ,//0 }; struct _GENERIC_MAPPING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long GenericRead; /* off 0x0004 */ unsigned long GenericWrite; /* off 0x0008 */ unsigned long GenericExecute; /* off 0x000c */ unsigned long GenericAll; }; struct _ACCESS_REASONS /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Data[32]; }; struct _AUX_ACCESS_DATA /* sizeof 000000c0 192 */ { /* off 0x0000 */ struct _PRIVILEGE_SET* PrivilegesUsed; /* off 0x0004 */ struct _GENERIC_MAPPING GenericMapping; /* off 0x0014 */ unsigned long AccessesToAudit; /* off 0x0018 */ unsigned long MaximumAuditMask; /* off 0x001c */ struct _GUID TransactionId; /* off 0x002c */ void* NewSecurityDescriptor; /* off 0x0030 */ void* ExistingSecurityDescriptor; /* off 0x0034 */ void* ParentSecurityDescriptor; /* off 0x0038 */ void( __stdcall *DeRefSecurityDescriptor)(void*,void*); /* off 0x003c */ void* SDLock; /* off 0x0040 */ struct _ACCESS_REASONS AccessReasons; }; struct _IO_DRIVER_CREATE_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ short Size; /* off 0x0004 */ struct _ECP_LIST* ExtraCreateParameter; /* off 0x0008 */ void* DeviceObjectHint; /* off 0x000c */ struct _TXN_PARAMETER_BLOCK* TxnParameters; }; struct _ECP_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _LIST_ENTRY EcpList; }; struct _TXN_PARAMETER_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short TxFsContext; /* off 0x0004 */ void* TransactionObject; }; struct _IO_PRIORITY_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long ThreadPriority; /* off 0x0008 */ unsigned long PagePriority; /* off 0x000c */ enum _IO_PRIORITY_HINT IoPriority; }; struct _OBJECT_TYPE_INITIALIZER /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Length; union { /* off 0x0002 */ unsigned char ObjectTypeFlags; struct { /* off 0x0002 */ unsigned char CaseInsensitive:1 /* start bit 0 */; /* off 0x0002 */ unsigned char UnnamedObjectsOnly:1 /* start bit 1 */; /* off 0x0002 */ unsigned char UseDefaultObject:1 /* start bit 2 */; /* off 0x0002 */ unsigned char SecurityRequired:1 /* start bit 3 */; /* off 0x0002 */ unsigned char MaintainHandleCount:1 /* start bit 4 */; /* off 0x0002 */ unsigned char MaintainTypeList:1 /* start bit 5 */; /* off 0x0002 */ unsigned char SupportsObjectCallbacks:1 /* start bit 6 */; }; }; /* off 0x0004 */ unsigned long ObjectTypeCode; /* off 0x0008 */ unsigned long InvalidAttributes; /* off 0x000c */ struct _GENERIC_MAPPING GenericMapping; /* off 0x001c */ unsigned long ValidAccessMask; /* off 0x0020 */ unsigned long RetainAccess; /* off 0x0024 */ enum _POOL_TYPE PoolType; /* off 0x0028 */ unsigned long DefaultPagedPoolCharge; /* off 0x002c */ unsigned long DefaultNonPagedPoolCharge; /* off 0x0030 */ void( __stdcall *DumpProcedure)(void*,struct _OBJECT_DUMP_CONTROL*); /* off 0x0034 */ long( __stdcall *OpenProcedure)(enum _OB_OPEN_REASON,char,struct _EPROCESS*,void*,unsigned long*,unsigned long); /* off 0x0038 */ void( __stdcall *CloseProcedure)(struct _EPROCESS*,void*,unsigned long,unsigned long); /* off 0x003c */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0040 */ long( __stdcall *ParseProcedure)(void*,void*,struct _ACCESS_STATE*,char,unsigned long,struct _UNICODE_STRING*,struct _UNICODE_STRING*,void*,struct _SECURITY_QUALITY_OF_SERVICE*,void**); /* off 0x0044 */ long( __stdcall *SecurityProcedure)(void*,enum _SECURITY_OPERATION_CODE,unsigned long*,void*,unsigned long*,void**,enum _POOL_TYPE,struct _GENERIC_MAPPING*,char); /* off 0x0048 */ long( __stdcall *QueryNameProcedure)(void*,unsigned char,struct _OBJECT_NAME_INFORMATION*,unsigned long,unsigned long*,char); /* off 0x004c */ unsigned char( __stdcall *OkayToCloseProcedure)(struct _EPROCESS*,void*,void*,char); }; struct _OBJECT_TYPE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ struct _UNICODE_STRING Name; /* off 0x0010 */ void* DefaultObject; /* off 0x0014 */ unsigned char Index; /* off 0x0018 */ unsigned long TotalNumberOfObjects; /* off 0x001c */ unsigned long TotalNumberOfHandles; /* off 0x0020 */ unsigned long HighWaterNumberOfObjects; /* off 0x0024 */ unsigned long HighWaterNumberOfHandles; /* off 0x0028 */ struct _OBJECT_TYPE_INITIALIZER TypeInfo; /* off 0x0078 */ struct _EX_PUSH_LOCK TypeLock; /* off 0x007c */ unsigned long Key; /* off 0x0080 */ struct _LIST_ENTRY CallbackList; }; struct _OBJECT_DUMP_CONTROL /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Stream; /* off 0x0004 */ unsigned long Detail; }; enum _OB_OPEN_REASON { ObCreateHandle =0x00000000 ,//0 ObOpenHandle =0x00000001 ,//0 ObDuplicateHandle =0x00000002 ,//0 ObInheritHandle =0x00000003 ,//0 ObMaxOpenReason =0x00000004 ,//0 }; enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor =0x00000000 ,//0 QuerySecurityDescriptor =0x00000001 ,//0 DeleteSecurityDescriptor =0x00000002 ,//0 AssignSecurityDescriptor =0x00000003 ,//0 }; struct _OBJECT_ATTRIBUTES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ struct _UNICODE_STRING* ObjectName; /* off 0x000c */ unsigned long Attributes; /* off 0x0010 */ void* SecurityDescriptor; /* off 0x0014 */ void* SecurityQualityOfService; }; struct _OBJECT_HANDLE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long HandleAttributes; /* off 0x0004 */ unsigned long GrantedAccess; }; struct _EVENT_DATA_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Ptr; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; }; struct _EVENT_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Channel; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Opcode; /* off 0x0006 */ unsigned short Task; /* off 0x0008 */ unsigned __int64 Keyword; }; struct _PERFINFO_GROUPMASK /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Masks[8]; }; struct _MM_PAGE_ACCESS_INFO_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY Link; /* off 0x0004 */ enum _MM_PAGE_ACCESS_TYPE Type; union { /* off 0x0008 */ unsigned long EmptySequenceNumber; /* off 0x0008 */ unsigned long CurrentFileIndex; }; /* off 0x0010 */ unsigned __int64 CreateTime; union { /* off 0x0018 */ unsigned __int64 EmptyTime; /* off 0x0018 */ struct _MM_PAGE_ACCESS_INFO* TempEntry; }; union { struct { /* off 0x0020 */ struct _MM_PAGE_ACCESS_INFO* PageEntry; union { struct { /* off 0x0024 */ unsigned long* FileEntry; /* off 0x0028 */ unsigned long* FirstFileEntry; /* off 0x002c */ struct _EPROCESS* Process; /* off 0x0030 */ unsigned long SessionId; }; struct { /* off 0x0020 */ unsigned long* PageFrameEntry; }; /* off 0x0024 */ unsigned long* LastPageFrameEntry; }; }; }; }; enum _MM_PAGE_ACCESS_TYPE { MmPteAccessType =0x00000000 ,//0 MmCcReadAheadType =0x00000001 ,//0 MmPfnRepurposeType =0x00000002 ,//0 MmMaximumPageAccessType =0x00000003 ,//0 }; union _MM_PAGE_ACCESS_INFO_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Image:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Spare0:1 /* start bit 11 */; } File; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FilePointerIndex:9 /* start bit 0 */; /* off 0x0000 */ unsigned long HardFault:1 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare1:2 /* start bit 10 */; } Private; }; struct _MM_PAGE_ACCESS_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ union _MM_PAGE_ACCESS_INFO_FLAGS Flags; /* off 0x0000 */ unsigned __int64 FileOffset; /* off 0x0000 */ void* VirtualAddress; struct { /* off 0x0000 */ unsigned long DontUse0:3 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare0:29 /* start bit 3 */; }; }; /* off 0x0004 */ void* PointerProtoPte; }; enum _PF_FILE_ACCESS_TYPE { PfFileAccessTypeRead =0x00000000 ,//0 PfFileAccessTypeWrite =0x00000001 ,//0 PfFileAccessTypeMax =0x00000002 ,//0 }; union _WHEA_ERROR_PACKET_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved1:1 /* start bit 1 */; /* off 0x0000 */ unsigned long HypervisorError:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 3 */; /* off 0x0000 */ unsigned long PlatformPfaControl:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PlatformDirectedOffline:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved2:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_PACKET_V2 /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Version; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ union _WHEA_ERROR_PACKET_FLAGS Flags; /* off 0x0010 */ enum _WHEA_ERROR_TYPE ErrorType; /* off 0x0014 */ enum _WHEA_ERROR_SEVERITY ErrorSeverity; /* off 0x0018 */ unsigned long ErrorSourceId; /* off 0x001c */ enum _WHEA_ERROR_SOURCE_TYPE ErrorSourceType; /* off 0x0020 */ struct _GUID NotifyType; /* off 0x0030 */ unsigned __int64 Context; /* off 0x0038 */ enum _WHEA_ERROR_PACKET_DATA_FORMAT DataFormat; /* off 0x003c */ unsigned long Reserved1; /* off 0x0040 */ unsigned long DataOffset; /* off 0x0044 */ unsigned long DataLength; /* off 0x0048 */ unsigned long PshedDataOffset; /* off 0x004c */ unsigned long PshedDataLength; }; enum _WHEA_ERROR_TYPE { WheaErrTypeProcessor =0x00000000 ,//0 WheaErrTypeMemory =0x00000001 ,//0 WheaErrTypePCIExpress =0x00000002 ,//0 WheaErrTypeNMI =0x00000003 ,//0 WheaErrTypePCIXBus =0x00000004 ,//0 WheaErrTypePCIXDevice =0x00000005 ,//0 WheaErrTypeGeneric =0x00000006 ,//0 }; enum _WHEA_ERROR_SEVERITY { WheaErrSevRecoverable =0x00000000 ,//0 WheaErrSevFatal =0x00000001 ,//0 WheaErrSevCorrected =0x00000002 ,//0 WheaErrSevInformational =0x00000003 ,//0 }; enum _WHEA_ERROR_SOURCE_TYPE { WheaErrSrcTypeMCE =0x00000000 ,//0 WheaErrSrcTypeCMC =0x00000001 ,//0 WheaErrSrcTypeCPE =0x00000002 ,//0 WheaErrSrcTypeNMI =0x00000003 ,//0 WheaErrSrcTypePCIe =0x00000004 ,//0 WheaErrSrcTypeGeneric =0x00000005 ,//0 WheaErrSrcTypeINIT =0x00000006 ,//0 WheaErrSrcTypeBOOT =0x00000007 ,//0 WheaErrSrcTypeSCIGeneric =0x00000008 ,//0 WheaErrSrcTypeIPFMCA =0x00000009 ,//0 WheaErrSrcTypeIPFCMC =0x0000000a ,//0 WheaErrSrcTypeIPFCPE =0x0000000b ,//0 WheaErrSrcTypeMax =0x0000000c ,//0 }; enum _WHEA_ERROR_PACKET_DATA_FORMAT { WheaDataFormatIPFSalRecord =0x00000000 ,//0 WheaDataFormatXPFMCA =0x00000001 ,//0 WheaDataFormatMemory =0x00000002 ,//0 WheaDataFormatPCIExpress =0x00000003 ,//0 WheaDataFormatNMIPort =0x00000004 ,//0 WheaDataFormatPCIXBus =0x00000005 ,//0 WheaDataFormatPCIXDevice =0x00000006 ,//0 WheaDataFormatGeneric =0x00000007 ,//0 WheaDataFormatMax =0x00000008 ,//0 }; union _WHEA_REVISION /* sizeof 00000002 2 */ { struct { /* off 0x0000 */ unsigned char MinorRevision; /* off 0x0001 */ unsigned char MajorRevision; }; /* off 0x0000 */ unsigned short AsUSHORT; }; union _WHEA_ERROR_RECORD_HEADER_VALIDBITS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long PlatformId:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Timestamp:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PartitionId:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_TIMESTAMP /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Seconds:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Minutes:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Hours:8 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Precise:1 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 Reserved:7 /* start bit 25 */; /* off 0x0000 */ unsigned __int64 Day:8 /* start bit 32 */; /* off 0x0000 */ unsigned __int64 Month:8 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Year:8 /* start bit 48 */; /* off 0x0000 */ unsigned __int64 Century:8 /* start bit 56 */; }; /* off 0x0000 */ union _LARGE_INTEGER AsLARGE_INTEGER; }; union _WHEA_ERROR_RECORD_HEADER_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Recovered:1 /* start bit 0 */; /* off 0x0000 */ unsigned long PreviousError:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Simulated:1 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long AsULONG; }; union _WHEA_PERSISTENCE_INFO /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 Signature:16 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Length:24 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Identifier:16 /* start bit 40 */; /* off 0x0000 */ unsigned __int64 Attributes:2 /* start bit 56 */; /* off 0x0000 */ unsigned __int64 DoNotLog:1 /* start bit 58 */; /* off 0x0000 */ unsigned __int64 Reserved:5 /* start bit 59 */; }; /* off 0x0000 */ unsigned __int64 AsULONGLONG; }; struct _WHEA_ERROR_RECORD_HEADER /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ union _WHEA_REVISION Revision; /* off 0x0006 */ unsigned long SignatureEnd; /* off 0x000a */ unsigned short SectionCount; /* off 0x000c */ enum _WHEA_ERROR_SEVERITY Severity; /* off 0x0010 */ union _WHEA_ERROR_RECORD_HEADER_VALIDBITS ValidBits; /* off 0x0014 */ unsigned long Length; /* off 0x0018 */ union _WHEA_TIMESTAMP Timestamp; /* off 0x0020 */ struct _GUID PlatformId; /* off 0x0030 */ struct _GUID PartitionId; /* off 0x0040 */ struct _GUID CreatorId; /* off 0x0050 */ struct _GUID NotifyType; /* off 0x0060 */ unsigned __int64 RecordId; /* off 0x0068 */ union _WHEA_ERROR_RECORD_HEADER_FLAGS Flags; /* off 0x006c */ union _WHEA_PERSISTENCE_INFO PersistenceInfo; /* off 0x0074 */ unsigned char Reserved[12]; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS /* sizeof 00000001 1 */ { struct { /* off 0x0000 */ unsigned char FRUId:1 /* start bit 0 */; /* off 0x0000 */ unsigned char FRUText:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Reserved:6 /* start bit 2 */; }; /* off 0x0000 */ unsigned char AsUCHAR; }; union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Primary:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ContainmentWarning:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Reset:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ThresholdExceeded:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ResourceNotAvailable:1 /* start bit 4 */; /* off 0x0000 */ unsigned long LatentError:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Reserved:26 /* start bit 6 */; }; /* off 0x0000 */ unsigned long AsULONG; }; struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long SectionOffset; /* off 0x0004 */ unsigned long SectionLength; /* off 0x0008 */ union _WHEA_REVISION Revision; /* off 0x000a */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_VALIDBITS ValidBits; /* off 0x000b */ unsigned char Reserved; /* off 0x000c */ union _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR_FLAGS Flags; /* off 0x0010 */ struct _GUID SectionType; /* off 0x0020 */ struct _GUID FRUId; /* off 0x0030 */ enum _WHEA_ERROR_SEVERITY SectionSeverity; /* off 0x0034 */ char FRUText[20]; }; struct _WHEA_ERROR_RECORD /* sizeof 000000c8 200 */ { /* off 0x0000 */ struct _WHEA_ERROR_RECORD_HEADER Header; /* off 0x0080 */ struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR SectionDescriptor[1]; }; struct _FSRTL_ADVANCED_FCB_HEADER /* sizeof 00000040 64 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned char Flags; /* off 0x0005 */ unsigned char IsFastIoPossible; /* off 0x0006 */ unsigned char Flags2; /* off 0x0007 */ unsigned char Reserved:4 /* start bit 0 */; /* off 0x0007 */ unsigned char Version:4 /* start bit 4 */; /* off 0x0008 */ struct _ERESOURCE* Resource; /* off 0x000c */ struct _ERESOURCE* PagingIoResource; /* off 0x0010 */ union _LARGE_INTEGER AllocationSize; /* off 0x0018 */ union _LARGE_INTEGER FileSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ struct _FAST_MUTEX* FastMutex; /* off 0x002c */ struct _LIST_ENTRY FilterContexts; /* off 0x0034 */ struct _EX_PUSH_LOCK PushLock; /* off 0x0038 */ void** FileContextSupportPointer; }; struct _iobuf /* sizeof 00000020 32 */ { /* off 0x0000 */ char* _ptr; /* off 0x0004 */ int _cnt; /* off 0x0008 */ char* _base; /* off 0x000c */ int _flag; /* off 0x0010 */ int _file; /* off 0x0014 */ int _charbuf; /* off 0x0018 */ int _bufsiz; /* off 0x001c */ char* _tmpfname; }; struct _MMPTE_HIGHLOW /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long LowPart; /* off 0x0004 */ unsigned long HighPart; }; struct _MMPTE_HARDWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Dirty1:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Accessed:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Dirty:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 LargePage:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Global:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 CopyOnWrite:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Unused:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 reserved1:26 /* start bit 38 */; }; struct _MMPTE_PROTOTYPE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:7 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 ReadOnly:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Unused1:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:16 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 ProtoAddress:32 /* start bit 32 */; }; struct _MMPTE_SOFTWARE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 InStore:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused1:19 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 PageFileHigh:32 /* start bit 32 */; }; struct _MMPTE_TIMESTAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 MustBeZero:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PageFileLow:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 Unused:20 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 GlobalTimeStamp:32 /* start bit 32 */; }; struct _MMPTE_TRANSITION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Write:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Owner:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 WriteThrough:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 CacheDisable:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Transition:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 PageFrameNumber:26 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 Unused:26 /* start bit 38 */; }; struct _MMPTE_SUBSECTION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Unused0:4 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 Protection:5 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 Unused1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 SubsectionAddress:32 /* start bit 32 */; }; struct _MMPTE_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Valid:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 OneEntry:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 filler0:8 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Prototype:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 filler1:21 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 NextEntry:32 /* start bit 32 */; }; struct _MMPTE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Long; /* off 0x0000 */ unsigned __int64 VolatileLong; /* off 0x0000 */ struct _MMPTE_HIGHLOW HighLow; /* off 0x0000 */ struct _HARDWARE_PTE Flush; /* off 0x0000 */ struct _MMPTE_HARDWARE Hard; /* off 0x0000 */ struct _MMPTE_PROTOTYPE Proto; /* off 0x0000 */ struct _MMPTE_SOFTWARE Soft; /* off 0x0000 */ struct _MMPTE_TIMESTAMP TimeStamp; /* off 0x0000 */ struct _MMPTE_TRANSITION Trans; /* off 0x0000 */ struct _MMPTE_SUBSECTION Subsect; /* off 0x0000 */ struct _MMPTE_LIST List; } u; }; struct _I386_LOADER_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* CommonDataArea; /* off 0x0004 */ unsigned long MachineType; /* off 0x0008 */ unsigned long VirtualBias; }; struct _IA64_LOADER_BLOCK /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _EFI_FIRMWARE_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long FirmwareVersion; /* off 0x0004 */ struct _VIRTUAL_EFI_RUNTIME_SERVICES* VirtualEfiRuntimeServices; /* off 0x0008 */ long SetVirtualAddressMapStatus; /* off 0x000c */ unsigned long MissedMappingsCount; }; struct _PCAT_FIRMWARE_INFORMATION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PlaceHolder; }; struct _FIRMWARE_INFORMATION_LOADER_BLOCK /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long FirmwareTypeEfi:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Reserved:31 /* start bit 1 */; /* off 0x0004 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _EFI_FIRMWARE_INFORMATION EfiInformation; /* off 0x0000 */ struct _PCAT_FIRMWARE_INFORMATION PcatInformation; } u; }; struct _LOADER_PARAMETER_BLOCK /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long OsMajorVersion; /* off 0x0004 */ unsigned long OsMinorVersion; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY LoadOrderListHead; /* off 0x0018 */ struct _LIST_ENTRY MemoryDescriptorListHead; /* off 0x0020 */ struct _LIST_ENTRY BootDriverListHead; /* off 0x0028 */ unsigned long KernelStack; /* off 0x002c */ unsigned long Prcb; /* off 0x0030 */ unsigned long Process; /* off 0x0034 */ unsigned long Thread; /* off 0x0038 */ unsigned long RegistryLength; /* off 0x003c */ void* RegistryBase; /* off 0x0040 */ struct _CONFIGURATION_COMPONENT_DATA* ConfigurationRoot; /* off 0x0044 */ char* ArcBootDeviceName; /* off 0x0048 */ char* ArcHalDeviceName; /* off 0x004c */ char* NtBootPathName; /* off 0x0050 */ char* NtHalPathName; /* off 0x0054 */ char* LoadOptions; /* off 0x0058 */ struct _NLS_DATA_BLOCK* NlsData; /* off 0x005c */ struct _ARC_DISK_INFORMATION* ArcDiskInformation; /* off 0x0060 */ void* OemFontFile; /* off 0x0064 */ struct _LOADER_PARAMETER_EXTENSION* Extension; /* off 0x0068 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _I386_LOADER_BLOCK I386; /* off 0x0000 */ struct _IA64_LOADER_BLOCK Ia64; } u; /* off 0x0074 */ struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation; }; struct _DEVICE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Failed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Removable:1 /* start bit 2 */; /* off 0x0000 */ unsigned long ConsoleIn:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConsoleOut:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Input:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Output:1 /* start bit 6 */; }; struct _CONFIGURATION_COMPONENT /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _CONFIGURATION_CLASS Class; /* off 0x0004 */ enum _CONFIGURATION_TYPE Type; /* off 0x0008 */ struct _DEVICE_FLAGS Flags; /* off 0x000c */ unsigned short Version; /* off 0x000e */ unsigned short Revision; /* off 0x0010 */ unsigned long Key; union { /* off 0x0014 */ unsigned long AffinityMask; struct { /* off 0x0014 */ unsigned short Group; /* off 0x0016 */ unsigned short GroupIndex; }; }; /* off 0x0018 */ unsigned long ConfigurationDataLength; /* off 0x001c */ unsigned long IdentifierLength; /* off 0x0020 */ char* Identifier; }; struct _CONFIGURATION_COMPONENT_DATA /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _CONFIGURATION_COMPONENT_DATA* Parent; /* off 0x0004 */ struct _CONFIGURATION_COMPONENT_DATA* Child; /* off 0x0008 */ struct _CONFIGURATION_COMPONENT_DATA* Sibling; /* off 0x000c */ struct _CONFIGURATION_COMPONENT ComponentEntry; /* off 0x0030 */ void* ConfigurationData; }; enum _CONFIGURATION_CLASS { SystemClass =0x00000000 ,//0 ProcessorClass =0x00000001 ,//0 CacheClass =0x00000002 ,//0 AdapterClass =0x00000003 ,//0 ControllerClass =0x00000004 ,//0 PeripheralClass =0x00000005 ,//0 MemoryClass =0x00000006 ,//0 MaximumClass =0x00000007 ,//0 }; enum _CONFIGURATION_TYPE { ArcSystem =0x00000000 ,//0 CentralProcessor =0x00000001 ,//0 FloatingPointProcessor =0x00000002 ,//0 PrimaryIcache =0x00000003 ,//0 PrimaryDcache =0x00000004 ,//0 SecondaryIcache =0x00000005 ,//0 SecondaryDcache =0x00000006 ,//0 SecondaryCache =0x00000007 ,//0 EisaAdapter =0x00000008 ,//0 TcAdapter =0x00000009 ,//0 ScsiAdapter =0x0000000a ,//0 DtiAdapter =0x0000000b ,//0 MultiFunctionAdapter =0x0000000c ,//0 DiskController =0x0000000d ,//0 TapeController =0x0000000e ,//0 CdromController =0x0000000f ,//0 WormController =0x00000010 ,//0 SerialController =0x00000011 ,//0 NetworkController =0x00000012 ,//0 DisplayController =0x00000013 ,//0 ParallelController =0x00000014 ,//0 PointerController =0x00000015 ,//0 KeyboardController =0x00000016 ,//0 AudioController =0x00000017 ,//0 OtherController =0x00000018 ,//0 DiskPeripheral =0x00000019 ,//0 FloppyDiskPeripheral =0x0000001a ,//0 TapePeripheral =0x0000001b ,//0 ModemPeripheral =0x0000001c ,//0 MonitorPeripheral =0x0000001d ,//0 PrinterPeripheral =0x0000001e ,//0 PointerPeripheral =0x0000001f ,//0 KeyboardPeripheral =0x00000020 ,//0 TerminalPeripheral =0x00000021 ,//0 OtherPeripheral =0x00000022 ,//0 LinePeripheral =0x00000023 ,//0 NetworkPeripheral =0x00000024 ,//0 SystemMemory =0x00000025 ,//0 DockingInformation =0x00000026 ,//0 RealModeIrqRoutingTable =0x00000027 ,//0 RealModePCIEnumeration =0x00000028 ,//0 MaximumType =0x00000029 ,//0 }; struct _NLS_DATA_BLOCK /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* AnsiCodePageData; /* off 0x0004 */ void* OemCodePageData; /* off 0x0008 */ void* UnicodeCaseTableData; }; struct _ARC_DISK_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY DiskSignatures; }; struct _PROFILE_PARAMETER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Status; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned short DockingState; /* off 0x0006 */ unsigned short Capabilities; /* off 0x0008 */ unsigned long DockID; /* off 0x000c */ unsigned long SerialNumber; }; struct _TPM_BOOT_ENTROPY_LDR_RESULT /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned __int64 Policy; /* off 0x0008 */ enum _TPM_BOOT_ENTROPY_RESULT_CODE ResultCode; /* off 0x000c */ long ResultStatus; /* off 0x0010 */ unsigned __int64 Time; /* off 0x0018 */ unsigned long EntropyLength; /* off 0x001c */ unsigned char EntropyData[40]; }; struct _LOADER_PARAMETER_EXTENSION /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ struct _PROFILE_PARAMETER_BLOCK Profile; /* off 0x0014 */ void* EmInfFileImage; /* off 0x0018 */ unsigned long EmInfFileSize; /* off 0x001c */ void* TriageDumpBlock; /* off 0x0020 */ unsigned long LoaderPagesSpanned; /* off 0x0024 */ struct _HEADLESS_LOADER_BLOCK* HeadlessLoaderBlock; /* off 0x0028 */ struct _SMBIOS_TABLE_HEADER* SMBiosEPSHeader; /* off 0x002c */ void* DrvDBImage; /* off 0x0030 */ unsigned long DrvDBSize; /* off 0x0034 */ struct _NETWORK_LOADER_BLOCK* NetworkLoaderBlock; /* off 0x0038 */ unsigned char* HalpIRQLToTPR; /* off 0x003c */ unsigned char* HalpVectorToIRQL; /* off 0x0040 */ struct _LIST_ENTRY FirmwareDescriptorListHead; /* off 0x0048 */ void* AcpiTable; /* off 0x004c */ unsigned long AcpiTableSize; /* off 0x0050 */ unsigned long LastBootSucceeded:1 /* start bit 0 */; /* off 0x0050 */ unsigned long LastBootShutdown:1 /* start bit 1 */; /* off 0x0050 */ unsigned long IoPortAccessSupported:1 /* start bit 2 */; /* off 0x0050 */ unsigned long Reserved:29 /* start bit 3 */; /* off 0x0054 */ struct _LOADER_PERFORMANCE_DATA* LoaderPerformanceData; /* off 0x0058 */ struct _LIST_ENTRY BootApplicationPersistentData; /* off 0x0060 */ void* WmdTestResult; /* off 0x0064 */ struct _GUID BootIdentifier; /* off 0x0074 */ unsigned long ResumePages; /* off 0x0078 */ void* DumpHeader; /* off 0x007c */ void* BgContext; /* off 0x0080 */ void* NumaLocalityInfo; /* off 0x0084 */ void* NumaGroupAssignment; /* off 0x0088 */ struct _LIST_ENTRY AttachedHives; /* off 0x0090 */ unsigned long MemoryCachingRequirementsCount; /* off 0x0094 */ void* MemoryCachingRequirements; /* off 0x0098 */ struct _TPM_BOOT_ENTROPY_LDR_RESULT TpmBootEntropyResult; /* off 0x00e0 */ unsigned __int64 ProcessorCounterFrequency; }; struct _HEADLESS_LOADER_BLOCK /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned char UsedBiosSettings; /* off 0x0001 */ unsigned char DataBits; /* off 0x0002 */ unsigned char StopBits; /* off 0x0003 */ unsigned char Parity; /* off 0x0004 */ unsigned long BaudRate; /* off 0x0008 */ unsigned long PortNumber; /* off 0x000c */ unsigned char* PortAddress; /* off 0x0010 */ unsigned short PciDeviceId; /* off 0x0012 */ unsigned short PciVendorId; /* off 0x0014 */ unsigned char PciBusNumber; /* off 0x0016 */ unsigned short PciBusSegment; /* off 0x0018 */ unsigned char PciSlotNumber; /* off 0x0019 */ unsigned char PciFunctionNumber; /* off 0x001c */ unsigned long PciFlags; /* off 0x0020 */ struct _GUID SystemGUID; /* off 0x0030 */ unsigned char IsMMIODevice; /* off 0x0031 */ unsigned char TerminalType; }; struct _SMBIOS_TABLE_HEADER /* sizeof 00000000 0 */ { }; struct _NETWORK_LOADER_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char* DHCPServerACK; /* off 0x0004 */ unsigned long DHCPServerACKLength; /* off 0x0008 */ unsigned char* BootServerReplyPacket; /* off 0x000c */ unsigned long BootServerReplyPacketLength; }; struct _LOADER_PERFORMANCE_DATA /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 StartTime; /* off 0x0008 */ unsigned __int64 EndTime; }; enum _TPM_BOOT_ENTROPY_RESULT_CODE { TpmBootEntropyStructureUninitialized =0x00000000 ,//0 TpmBootEntropyDisabledByPolicy =0x00000001 ,//0 TpmBootEntropyNoTpmFound =0x00000002 ,//0 TpmBootEntropyTpmError =0x00000003 ,//0 TpmBootEntropySuccess =0x00000004 ,//0 }; struct _VIRTUAL_EFI_RUNTIME_SERVICES /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long GetTime; /* off 0x0004 */ unsigned long SetTime; /* off 0x0008 */ unsigned long GetWakeupTime; /* off 0x000c */ unsigned long SetWakeupTime; /* off 0x0010 */ unsigned long SetVirtualAddressMap; /* off 0x0014 */ unsigned long ConvertPointer; /* off 0x0018 */ unsigned long GetVariable; /* off 0x001c */ unsigned long GetNextVariableName; /* off 0x0020 */ unsigned long SetVariable; /* off 0x0024 */ unsigned long GetNextHighMonotonicCount; /* off 0x0028 */ unsigned long ResetSystem; /* off 0x002c */ unsigned long UpdateCapsule; /* off 0x0030 */ unsigned long QueryCapsuleCapabilities; /* off 0x0034 */ unsigned long QueryVariableInfo; }; struct _KLOCK_QUEUE_HANDLE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KSPIN_LOCK_QUEUE LockQueue; /* off 0x0008 */ unsigned char OldIrql; }; struct _MMPFNLIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Total; /* off 0x0004 */ enum _MMLISTS ListName; /* off 0x0008 */ unsigned long Flink; /* off 0x000c */ unsigned long Blink; /* off 0x0010 */ unsigned long Lock; }; enum _MMLISTS { ZeroedPageList =0x00000000 ,//0 FreePageList =0x00000001 ,//0 StandbyPageList =0x00000002 ,//0 ModifiedPageList =0x00000003 ,//0 ModifiedNoWritePageList =0x00000004 ,//0 BadPageList =0x00000005 ,//0 ActiveAndValid =0x00000006 ,//0 TransitionPage =0x00000007 ,//0 }; enum _MEMORY_CACHING_TYPE { MmNonCached =0x00000000 ,//0 MmCached =0x00000001 ,//0 MmWriteCombined =0x00000002 ,//0 MmHardwareCoherentCached =0x00000003 ,//0 MmNonCachedUnordered =0x00000004 ,//0 MmUSWCCached =0x00000005 ,//0 MmMaximumCacheType =0x00000006 ,//0 }; enum _MI_PFN_CACHE_ATTRIBUTE { MiNonCached =0x00000000 ,//0 MiCached =0x00000001 ,//0 MiWriteCombined =0x00000002 ,//0 MiNotMapped =0x00000003 ,//0 }; struct _MMPFNENTRY /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned char PageLocation:3 /* start bit 0 */; /* off 0x0000 */ unsigned char WriteInProgress:1 /* start bit 3 */; /* off 0x0000 */ unsigned char Modified:1 /* start bit 4 */; /* off 0x0000 */ unsigned char ReadInProgress:1 /* start bit 5 */; /* off 0x0000 */ unsigned char CacheAttribute:2 /* start bit 6 */; /* off 0x0001 */ unsigned char Priority:3 /* start bit 0 */; /* off 0x0001 */ unsigned char Rom:1 /* start bit 3 */; /* off 0x0001 */ unsigned char InPageError:1 /* start bit 4 */; /* off 0x0001 */ unsigned char KernelStack:1 /* start bit 5 */; /* off 0x0001 */ unsigned char RemovalRequested:1 /* start bit 6 */; /* off 0x0001 */ unsigned char ParityError:1 /* start bit 7 */; }; struct _MMPFN /* sizeof 0000001c 28 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Flink; /* off 0x0000 */ unsigned long WsIndex; /* off 0x0000 */ struct _KEVENT* Event; /* off 0x0000 */ void* Next; /* off 0x0000 */ void* VolatileNext; /* off 0x0000 */ struct _KTHREAD* KernelStackOwner; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY NextStackPfn; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Blink; /* off 0x0000 */ struct _MMPTE* ImageProtoPte; /* off 0x0000 */ unsigned long ShareCount; } u2; union { /* off 0x0008 */ struct _MMPTE* PteAddress; /* off 0x0008 */ void* VolatilePteAddress; /* off 0x0008 */ long Lock; /* off 0x0008 */ unsigned long PteLong; }; /* off 0x000c */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0002 */ struct _MMPFNENTRY e1; }; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned short ReferenceCount; /* off 0x0000 */ short VolatileReferenceCount; }; /* off 0x0002 */ unsigned short ShortFlags; } e2; } u3; union { /* off 0x0010 */ struct _MMPTE OriginalPte; /* off 0x0010 */ long AweReferenceCount; }; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PteFrame:25 /* start bit 0 */; /* off 0x0000 */ unsigned long PfnImageVerified:1 /* start bit 25 */; /* off 0x0000 */ unsigned long AweAllocation:1 /* start bit 26 */; /* off 0x0000 */ unsigned long PrototypePte:1 /* start bit 27 */; /* off 0x0000 */ unsigned long PageColor:4 /* start bit 28 */; } u4; }; enum _MI_DYNAMIC_MEMORY_LOCKTYPE { AlreadyHeld =0x00000000 ,//0 AcquiredShared =0x00000001 ,//0 UseSpinLock =0x00000002 ,//0 UseSpinLockRaiseIrql =0x00000003 ,//0 }; struct _MI_COLOR_BASE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short* ColorPointer; /* off 0x0004 */ unsigned short ColorMask; /* off 0x0006 */ unsigned short ColorNode; }; struct _MMSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int BeingDeleted:1 /* start bit 0 */; /* off 0x0000 */ unsigned int BeingCreated:1 /* start bit 1 */; /* off 0x0000 */ unsigned int BeingPurged:1 /* start bit 2 */; /* off 0x0000 */ unsigned int NoModifiedWriting:1 /* start bit 3 */; /* off 0x0000 */ unsigned int FailAllIo:1 /* start bit 4 */; /* off 0x0000 */ unsigned int Image:1 /* start bit 5 */; /* off 0x0000 */ unsigned int Based:1 /* start bit 6 */; /* off 0x0000 */ unsigned int File:1 /* start bit 7 */; /* off 0x0000 */ unsigned int Networked:1 /* start bit 8 */; /* off 0x0000 */ unsigned int Rom:1 /* start bit 9 */; /* off 0x0000 */ unsigned int PhysicalMemory:1 /* start bit 10 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 11 */; /* off 0x0000 */ unsigned int Reserve:1 /* start bit 12 */; /* off 0x0000 */ unsigned int Commit:1 /* start bit 13 */; /* off 0x0000 */ unsigned int Accessed:1 /* start bit 14 */; /* off 0x0000 */ unsigned int WasPurged:1 /* start bit 15 */; /* off 0x0000 */ unsigned int UserReference:1 /* start bit 16 */; /* off 0x0000 */ unsigned int GlobalMemory:1 /* start bit 17 */; /* off 0x0000 */ unsigned int DeleteOnClose:1 /* start bit 18 */; /* off 0x0000 */ unsigned int FilePointerNull:1 /* start bit 19 */; /* off 0x0000 */ unsigned int GlobalOnlyPerSession:1 /* start bit 20 */; /* off 0x0000 */ unsigned int SetMappedFileIoComplete:1 /* start bit 21 */; /* off 0x0000 */ unsigned int CollidedFlush:1 /* start bit 22 */; /* off 0x0000 */ unsigned int NoChange:1 /* start bit 23 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 24 */; /* off 0x0000 */ unsigned int UserWritable:1 /* start bit 25 */; /* off 0x0000 */ unsigned int PreferredNode:6 /* start bit 26 */; }; struct _CONTROL_AREA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _SEGMENT* Segment; /* off 0x0004 */ struct _LIST_ENTRY DereferenceList; /* off 0x000c */ unsigned long NumberOfSectionReferences; /* off 0x0010 */ unsigned long NumberOfPfnReferences; /* off 0x0014 */ unsigned long NumberOfMappedViews; /* off 0x0018 */ unsigned long NumberOfUserReferences; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSECTION_FLAGS Flags; } u; /* off 0x0020 */ unsigned long FlushInProgressCount; /* off 0x0024 */ struct _EX_FAST_REF FilePointer; /* off 0x0028 */ long ControlAreaLock; union { /* off 0x002c */ unsigned long ModifiedWriteCount; /* off 0x002c */ unsigned long StartingFrame; }; /* off 0x0030 */ struct _MI_SECTION_CREATION_GATE* WaitingForDeletion; /* off 0x0034 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct /* sizeof 0000000c 12 */ { union { /* off 0x0000 */ unsigned long NumberOfSystemCacheViews; /* off 0x0000 */ unsigned long ImageRelocationStartBit; }; union { /* off 0x0004 */ long WritableUserReferences; struct { /* off 0x0004 */ unsigned long ImageRelocationSizeIn64k:16 /* start bit 0 */; /* off 0x0004 */ unsigned long Unused:14 /* start bit 16 */; /* off 0x0004 */ unsigned long BitMap64:1 /* start bit 30 */; /* off 0x0004 */ unsigned long ImageActive:1 /* start bit 31 */; }; }; union { /* off 0x0008 */ struct _MM_SUBSECTION_AVL_TABLE* SubsectionRoot; /* off 0x0008 */ struct _MI_IMAGE_SECURITY_REFERENCE* SeImageStub; }; } e2; } u2; /* off 0x0040 */ __int64 LockedPages; /* off 0x0048 */ struct _LIST_ENTRY ViewList; }; struct _SEGMENT_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long TotalNumberOfPtes4132:10 /* start bit 0 */; /* off 0x0000 */ unsigned long ExtraSharedWowSubsections:1 /* start bit 10 */; /* off 0x0000 */ unsigned long LargePages:1 /* start bit 11 */; /* off 0x0000 */ unsigned long WatchProto:1 /* start bit 12 */; /* off 0x0000 */ unsigned long DebugSymbolsLoaded:1 /* start bit 13 */; /* off 0x0000 */ unsigned long WriteCombined:1 /* start bit 14 */; /* off 0x0000 */ unsigned long NoCache:1 /* start bit 15 */; /* off 0x0000 */ unsigned long FloppyMedia:1 /* start bit 16 */; /* off 0x0000 */ unsigned long DefaultProtectionMask:5 /* start bit 17 */; /* off 0x0000 */ unsigned long Binary32:1 /* start bit 22 */; /* off 0x0000 */ unsigned long ContainsDebug:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Spare:8 /* start bit 24 */; }; struct _SEGMENT /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ImageCommitment; /* off 0x0000 */ struct _EPROCESS* CreatingProcess; } u1; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MI_SECTION_IMAGE_INFORMATION* ImageInformation; /* off 0x0000 */ void* FirstMappedVa; } u2; /* off 0x0028 */ struct _MMPTE* PrototypePte; /* off 0x0030 */ struct _MMPTE ThePtes[1]; }; struct _MMEXTEND_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CommittedSize; /* off 0x0008 */ unsigned long ReferenceCount; }; struct _SECTION_IMAGE_INFORMATION /* sizeof 00000030 48 */ { /* off 0x0000 */ void* TransferAddress; /* off 0x0004 */ unsigned long ZeroBits; /* off 0x0008 */ unsigned long MaximumStackSize; /* off 0x000c */ unsigned long CommittedStackSize; /* off 0x0010 */ unsigned long SubSystemType; union { struct { /* off 0x0014 */ unsigned short SubSystemMinorVersion; /* off 0x0016 */ unsigned short SubSystemMajorVersion; }; struct { /* off 0x0014 */ unsigned long SubSystemVersion; }; }; /* off 0x0018 */ unsigned long GpValue; /* off 0x001c */ unsigned short ImageCharacteristics; /* off 0x001e */ unsigned short DllCharacteristics; /* off 0x0020 */ unsigned short Machine; /* off 0x0022 */ unsigned char ImageContainsCode; union { /* off 0x0023 */ unsigned char ImageFlags; struct { /* off 0x0023 */ unsigned char ComPlusNativeReady:1 /* start bit 0 */; /* off 0x0023 */ unsigned char ComPlusILOnly:1 /* start bit 1 */; /* off 0x0023 */ unsigned char ImageDynamicallyRelocated:1 /* start bit 2 */; /* off 0x0023 */ unsigned char ImageMappedFlat:1 /* start bit 3 */; /* off 0x0023 */ unsigned char Reserved:4 /* start bit 4 */; }; }; /* off 0x0024 */ unsigned long LoaderFlags; /* off 0x0028 */ unsigned long ImageFileSize; /* off 0x002c */ unsigned long CheckSum; }; struct _MI_EXTRA_IMAGE_INFORMATION /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfHeaders; /* off 0x0004 */ unsigned long SizeOfImage; }; struct _MI_SECTION_IMAGE_INFORMATION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _SECTION_IMAGE_INFORMATION ExportedImageInformation; /* off 0x0030 */ struct _MI_EXTRA_IMAGE_INFORMATION InternalImageInformation; }; struct _MI_SECTION_CREATION_GATE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _MI_SECTION_CREATION_GATE* Next; /* off 0x0004 */ struct _KGATE Gate; }; struct _MMSUBSECTION_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short SubsectionAccessed:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Protection:5 /* start bit 1 */; /* off 0x0000 */ unsigned short StartingSector4132:10 /* start bit 6 */; /* off 0x0002 */ unsigned short SubsectionStatic:1 /* start bit 0 */; /* off 0x0002 */ unsigned short GlobalMemory:1 /* start bit 1 */; /* off 0x0002 */ unsigned short DirtyPages:1 /* start bit 2 */; /* off 0x0002 */ unsigned short Spare:1 /* start bit 3 */; /* off 0x0002 */ unsigned short SectorEndOffset:12 /* start bit 4 */; }; struct _MMSUBSECTION_NODE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0004 */ unsigned long StartingSector; /* off 0x0008 */ unsigned long NumberOfFullSectors; /* off 0x000c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0010 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0014 */ struct _MMSUBSECTION_NODE* RightChild; }; struct _MM_SUBSECTION_AVL_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MMSUBSECTION_NODE BalancedRoot; /* off 0x0018 */ unsigned long DepthOfTree:5 /* start bit 0 */; /* off 0x0018 */ unsigned long Unused:3 /* start bit 5 */; /* off 0x0018 */ unsigned long NumberGenericTableElements:24 /* start bit 8 */; /* off 0x001c */ void* NodeHint; }; struct _IMAGE_SECURITY_CONTEXT /* sizeof 00000004 4 */ { union { /* off 0x0000 */ void* PageHashes; /* off 0x0000 */ unsigned long Value; struct { /* off 0x0000 */ unsigned long SecurityBeingCreated:1 /* start bit 0 */; /* off 0x0000 */ unsigned long SecurityMandatory:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Unused:1 /* start bit 2 */; /* off 0x0000 */ unsigned long PageHashPointer:29 /* start bit 3 */; }; }; }; struct _MI_IMAGE_SECURITY_REFERENCE /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _IMAGE_SECURITY_CONTEXT SecurityContext; /* off 0x0004 */ void* DynamicRelocations; /* off 0x0008 */ long ReferenceCount; }; union _MM_STORE_KEY /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long KeyLow:28 /* start bit 0 */; /* off 0x0000 */ unsigned long KeyHigh:4 /* start bit 28 */; }; /* off 0x0000 */ unsigned long EntireKey; }; enum _MI_STORE_BIT_TYPE { MiStoreBitTypeInStore =0x00000000 ,//0 MiStoreBitTypeEvicted =0x00000001 ,//0 MiStoreBitTypeMax =0x00000002 ,//0 }; struct _MMPAGING_FILE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ unsigned long MaximumSize; /* off 0x0008 */ unsigned long MinimumSize; /* off 0x000c */ unsigned long FreeSpace; /* off 0x0010 */ unsigned long PeakUsage; /* off 0x0014 */ unsigned long HighestPage; /* off 0x0018 */ struct _FILE_OBJECT* File; /* off 0x001c */ struct _MMMOD_WRITER_MDL_ENTRY* Entry[2]; /* off 0x0024 */ struct _UNICODE_STRING PageFileName; /* off 0x002c */ struct _RTL_BITMAP* Bitmap; /* off 0x0030 */ struct _RTL_BITMAP* EvictStoreBitmap; /* off 0x0034 */ unsigned long BitmapHint; /* off 0x0038 */ unsigned long LastAllocationSize; /* off 0x003c */ unsigned long ToBeEvictedCount; /* off 0x0040 */ unsigned short PageFileNumber:4 /* start bit 0 */; /* off 0x0040 */ unsigned short BootPartition:1 /* start bit 4 */; /* off 0x0040 */ unsigned short Spare0:11 /* start bit 5 */; /* off 0x0042 */ unsigned short AdriftMdls:1 /* start bit 0 */; /* off 0x0042 */ unsigned short Spare1:15 /* start bit 1 */; /* off 0x0044 */ void* FileHandle; /* off 0x0048 */ unsigned long Lock; /* off 0x004c */ struct _ETHREAD* LockOwner; }; struct _MMMOD_WRITER_MDL_ENTRY /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IO_STATUS_BLOCK IoStatus; } u; /* off 0x0010 */ struct _IRP* Irp; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long KeepForever; } u1; /* off 0x0018 */ struct _MMPAGING_FILE* PagingFile; /* off 0x001c */ struct _FILE_OBJECT* File; /* off 0x0020 */ struct _CONTROL_AREA* ControlArea; /* off 0x0024 */ struct _ERESOURCE* FileResource; /* off 0x0028 */ union _LARGE_INTEGER WriteOffset; /* off 0x0030 */ union _LARGE_INTEGER IssueTime; /* off 0x0038 */ struct _MDL* PointerMdl; /* off 0x003c */ struct _MDL Mdl; /* off 0x0058 */ unsigned long Page[1]; }; struct _RTL_BITMAP /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long SizeOfBitMap; /* off 0x0004 */ unsigned long* Buffer; }; struct _MMVAD_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long CommitCharge:19 /* start bit 0 */; /* off 0x0000 */ unsigned long NoChange:1 /* start bit 19 */; /* off 0x0000 */ unsigned long VadType:3 /* start bit 20 */; /* off 0x0000 */ unsigned long MemCommit:1 /* start bit 23 */; /* off 0x0000 */ unsigned long Protection:5 /* start bit 24 */; /* off 0x0000 */ unsigned long Spare:2 /* start bit 29 */; /* off 0x0000 */ unsigned long PrivateMemory:1 /* start bit 31 */; }; struct _MMVAD_FLAGS3 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PreferredNode:6 /* start bit 0 */; /* off 0x0000 */ unsigned long Teb:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Spare:1 /* start bit 7 */; /* off 0x0000 */ unsigned long SequentialAccess:1 /* start bit 8 */; /* off 0x0000 */ unsigned long LastSequentialTrim:15 /* start bit 9 */; /* off 0x0000 */ unsigned long Spare2:8 /* start bit 24 */; }; struct _MMVAD_SHORT /* sizeof 00000020 32 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; }; struct _MMVAD_FLAGS2 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned int FileOffset:24 /* start bit 0 */; /* off 0x0000 */ unsigned int SecNoChange:1 /* start bit 24 */; /* off 0x0000 */ unsigned int OneSecured:1 /* start bit 25 */; /* off 0x0000 */ unsigned int MultipleSecured:1 /* start bit 26 */; /* off 0x0000 */ unsigned int Spare:1 /* start bit 27 */; /* off 0x0000 */ unsigned int LongVad:1 /* start bit 28 */; /* off 0x0000 */ unsigned int ExtendableFile:1 /* start bit 29 */; /* off 0x0000 */ unsigned int Inherit:1 /* start bit 30 */; /* off 0x0000 */ unsigned int CopyOnWrite:1 /* start bit 31 */; }; struct _MMVAD /* sizeof 0000003c 60 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; union { /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0024 */ struct _MSUBSECTION* MappedSubsection; }; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; }; struct _SUBSECTION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; }; struct _MSUBSECTION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ struct _MMPTE* SubsectionBase; union { /* off 0x0008 */ struct _SUBSECTION* NextSubsection; /* off 0x0008 */ struct _MSUBSECTION* NextMappedSubsection; }; /* off 0x000c */ unsigned long PtesInSubsection; union { /* off 0x0010 */ unsigned long UnusedPtes; /* off 0x0010 */ struct _MM_AVL_TABLE* GlobalPerSessionHead; }; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMSUBSECTION_FLAGS SubsectionFlags; } u; /* off 0x0018 */ unsigned long StartingSector; /* off 0x001c */ unsigned long NumberOfFullSectors; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMSUBSECTION_NODE* Parent; } u1; /* off 0x0024 */ struct _MMSUBSECTION_NODE* LeftChild; /* off 0x0028 */ struct _MMSUBSECTION_NODE* RightChild; /* off 0x002c */ struct _LIST_ENTRY DereferenceList; /* off 0x0034 */ unsigned long NumberOfMappedViews; }; struct _MI_PAGEFILE_TRACES /* sizeof 00000040 64 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ unsigned char Priority; /* off 0x0005 */ unsigned char IrpPriority; /* off 0x0008 */ union _LARGE_INTEGER CurrentTime; /* off 0x0010 */ unsigned long AvailablePages; /* off 0x0014 */ unsigned long ModifiedPagesTotal; /* off 0x0018 */ unsigned long ModifiedPagefilePages; /* off 0x001c */ unsigned long ModifiedNoWritePages; /* off 0x0020 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _MDL Mdl; /* off 0x001c */ unsigned long Page[1]; } MdlHack; }; enum _IO_PAGING_PRIORITY { IoPagingPriorityInvalid =0x00000000 ,//0 IoPagingPriorityNormal =0x00000001 ,//0 IoPagingPriorityHigh =0x00000002 ,//0 IoPagingPriorityReserved1 =0x00000003 ,//0 IoPagingPriorityReserved2 =0x00000004 ,//0 }; struct _FREE_DISPLAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long RealVectorSize; /* off 0x0004 */ struct _RTL_BITMAP Display; }; struct _DUAL /* sizeof 0000013c 316 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ struct _HMAP_DIRECTORY* Map; /* off 0x0008 */ struct _HMAP_TABLE* SmallDir; /* off 0x000c */ unsigned long Guard; /* off 0x0010 */ struct _FREE_DISPLAY FreeDisplay[24]; /* off 0x0130 */ unsigned long FreeSummary; /* off 0x0134 */ struct _LIST_ENTRY FreeBins; }; struct _HHIVE /* sizeof 000002ec 748 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _CELL_DATA*( __stdcall *GetCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x0008 */ void( __stdcall *ReleaseCellRoutine)(struct _HHIVE*,unsigned long); /* off 0x000c */ void*( __stdcall *Allocate)(unsigned long,unsigned char,unsigned long); /* off 0x0010 */ void( __stdcall *Free)(void*,unsigned long); /* off 0x0014 */ unsigned char( __stdcall *FileSetSize)(struct _HHIVE*,unsigned long,unsigned long,unsigned long); /* off 0x0018 */ unsigned char( __stdcall *FileWrite)(struct _HHIVE*,unsigned long,struct CMP_OFFSET_ARRAY*,unsigned long,unsigned long*); /* off 0x001c */ unsigned char( __stdcall *FileRead)(struct _HHIVE*,unsigned long,unsigned long*,void*,unsigned long); /* off 0x0020 */ unsigned char( __stdcall *FileFlush)(struct _HHIVE*,unsigned long,union _LARGE_INTEGER*,unsigned long); /* off 0x0024 */ void* HiveLoadFailure; /* off 0x0028 */ struct _HBASE_BLOCK* BaseBlock; /* off 0x002c */ struct _RTL_BITMAP DirtyVector; /* off 0x0034 */ unsigned long DirtyCount; /* off 0x0038 */ unsigned long DirtyAlloc; /* off 0x003c */ unsigned long BaseBlockAlloc; /* off 0x0040 */ unsigned long Cluster; /* off 0x0044 */ unsigned char Flat; /* off 0x0045 */ unsigned char ReadOnly; /* off 0x0046 */ unsigned char DirtyFlag; /* off 0x0048 */ unsigned long HvBinHeadersUse; /* off 0x004c */ unsigned long HvFreeCellsUse; /* off 0x0050 */ unsigned long HvUsedCellsUse; /* off 0x0054 */ unsigned long CmUsedCellsUse; /* off 0x0058 */ unsigned long HiveFlags; /* off 0x005c */ unsigned long CurrentLog; /* off 0x0060 */ unsigned long LogSize[2]; /* off 0x0068 */ unsigned long RefreshCount; /* off 0x006c */ unsigned long StorageTypeCount; /* off 0x0070 */ unsigned long Version; /* off 0x0074 */ struct _DUAL Storage[2]; }; struct _CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long List; }; struct _CM_KEY_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long KeyCell; /* off 0x0004 */ struct _HHIVE* KeyHive; }; struct _CM_KEY_NODE /* sizeof 00000050 80 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ union _LARGE_INTEGER LastWriteTime; /* off 0x000c */ unsigned long Spare; /* off 0x0010 */ unsigned long Parent; /* off 0x0014 */ unsigned long SubKeyCounts[2]; union { struct { /* off 0x001c */ unsigned long SubKeyLists[2]; /* off 0x0024 */ struct _CHILD_LIST ValueList; }; struct { /* off 0x001c */ struct _CM_KEY_REFERENCE ChildHiveReference; }; }; /* off 0x002c */ unsigned long Security; /* off 0x0030 */ unsigned long Class; /* off 0x0034 */ unsigned long MaxNameLen:16 /* start bit 0 */; /* off 0x0034 */ unsigned long UserFlags:4 /* start bit 16 */; /* off 0x0034 */ unsigned long VirtControlFlags:4 /* start bit 20 */; /* off 0x0034 */ unsigned long Debug:8 /* start bit 24 */; /* off 0x0038 */ unsigned long MaxClassLen; /* off 0x003c */ unsigned long MaxValueNameLen; /* off 0x0040 */ unsigned long MaxValueDataLen; /* off 0x0044 */ unsigned long WorkVar; /* off 0x0048 */ unsigned short NameLength; /* off 0x004a */ unsigned short ClassLength; /* off 0x004c */ wchar Name[1]; }; struct _CM_KEY_VALUE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short NameLength; /* off 0x0004 */ unsigned long DataLength; /* off 0x0008 */ unsigned long Data; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned short Flags; /* off 0x0012 */ unsigned short Spare; /* off 0x0014 */ wchar Name[1]; }; struct _SECURITY_DESCRIPTOR_RELATIVE /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ unsigned long Owner; /* off 0x0008 */ unsigned long Group; /* off 0x000c */ unsigned long Sacl; /* off 0x0010 */ unsigned long Dacl; }; struct _CM_KEY_SECURITY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Reserved; /* off 0x0004 */ unsigned long Flink; /* off 0x0008 */ unsigned long Blink; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CM_KEY_INDEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List[1]; }; struct _CM_BIG_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Signature; /* off 0x0002 */ unsigned short Count; /* off 0x0004 */ unsigned long List; }; union _u /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CM_KEY_NODE KeyNode; /* off 0x0000 */ struct _CM_KEY_VALUE KeyValue; /* off 0x0000 */ struct _CM_KEY_SECURITY KeySecurity; /* off 0x0000 */ struct _CM_KEY_INDEX KeyIndex; /* off 0x0000 */ struct _CM_BIG_DATA ValueData; /* off 0x0000 */ unsigned long KeyList[1]; /* off 0x0000 */ wchar KeyString[1]; }; struct _CELL_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ union _u u; }; struct CMP_OFFSET_ARRAY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long FileOffset; /* off 0x0004 */ void* DataBuffer; /* off 0x0008 */ unsigned long DataLength; }; struct _HBASE_BLOCK /* sizeof 00001000 4096 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long Sequence1; /* off 0x0008 */ unsigned long Sequence2; /* off 0x000c */ union _LARGE_INTEGER TimeStamp; /* off 0x0014 */ unsigned long Major; /* off 0x0018 */ unsigned long Minor; /* off 0x001c */ unsigned long Type; /* off 0x0020 */ unsigned long Format; /* off 0x0024 */ unsigned long RootCell; /* off 0x0028 */ unsigned long Length; /* off 0x002c */ unsigned long Cluster; /* off 0x0030 */ unsigned char FileName[64]; /* off 0x0070 */ struct _GUID RmId; /* off 0x0080 */ struct _GUID LogId; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _GUID TmId; /* off 0x00a4 */ unsigned long GuidSignature; /* off 0x00a8 */ unsigned long Reserved1[85]; /* off 0x01fc */ unsigned long CheckSum; /* off 0x0200 */ unsigned long Reserved2[882]; /* off 0x0fc8 */ struct _GUID ThawTmId; /* off 0x0fd8 */ struct _GUID ThawRmId; /* off 0x0fe8 */ struct _GUID ThawLogId; /* off 0x0ff8 */ unsigned long BootType; /* off 0x0ffc */ unsigned long BootRecover; }; struct _HMAP_DIRECTORY /* sizeof 00001000 4096 */ { /* off 0x0000 */ struct _HMAP_TABLE* Directory[1024]; }; struct _HMAP_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long BlockAddress; /* off 0x0004 */ unsigned long BinAddress; /* off 0x0008 */ struct _CM_VIEW_OF_FILE* CmView; /* off 0x000c */ unsigned long MemAlloc; }; struct _HMAP_TABLE /* sizeof 00002000 8192 */ { /* off 0x0000 */ struct _HMAP_ENTRY Table[512]; }; struct _CM_VIEW_OF_FILE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY MappedViewLinks; /* off 0x0008 */ struct _LIST_ENTRY PinnedViewLinks; /* off 0x0010 */ struct _LIST_ENTRY FlushedViewLinks; /* off 0x0018 */ struct _CMHIVE* CmHive; /* off 0x001c */ void* Bcb; /* off 0x0020 */ void* ViewAddress; /* off 0x0024 */ unsigned long FileOffset; /* off 0x0028 */ unsigned long Size; /* off 0x002c */ unsigned long UseCount; }; struct _CM_WORKITEM /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Private; /* off 0x000c */ void( __stdcall *WorkerRoutine)(void*); /* off 0x0010 */ void* Parameter; }; struct _CMHIVE /* sizeof 00000638 1592 */ { /* off 0x0000 */ struct _HHIVE Hive; /* off 0x02ec */ void* FileHandles[6]; /* off 0x0304 */ struct _LIST_ENTRY NotifyList; /* off 0x030c */ struct _LIST_ENTRY HiveList; /* off 0x0314 */ struct _LIST_ENTRY PreloadedHiveList; /* off 0x031c */ struct _EX_RUNDOWN_REF HiveRundown; /* off 0x0320 */ struct _LIST_ENTRY ParseCacheEntries; /* off 0x0328 */ struct _CM_KEY_HASH_TABLE_ENTRY* KcbCacheTable; /* off 0x032c */ unsigned long KcbCacheTableSize; /* off 0x0330 */ unsigned long Identity; /* off 0x0334 */ struct _FAST_MUTEX* HiveLock; /* off 0x0338 */ struct _EX_PUSH_LOCK ViewLock; /* off 0x033c */ struct _KTHREAD* ViewLockOwner; /* off 0x0340 */ unsigned long ViewLockLast; /* off 0x0344 */ unsigned long ViewUnLockLast; /* off 0x0348 */ struct _FAST_MUTEX* WriterLock; /* off 0x034c */ struct _ERESOURCE* FlusherLock; /* off 0x0350 */ struct _RTL_BITMAP FlushDirtyVector; /* off 0x0358 */ struct CMP_OFFSET_ARRAY* FlushOffsetArray; /* off 0x035c */ unsigned long FlushOffsetArrayCount; /* off 0x0360 */ unsigned long FlushHiveTruncated; /* off 0x0364 */ struct _FAST_MUTEX* FlushLock2; /* off 0x0368 */ struct _EX_PUSH_LOCK SecurityLock; /* off 0x036c */ struct _LIST_ENTRY MappedViewList; /* off 0x0374 */ struct _LIST_ENTRY PinnedViewList; /* off 0x037c */ struct _LIST_ENTRY FlushedViewList; /* off 0x0384 */ unsigned short MappedViewCount; /* off 0x0386 */ unsigned short PinnedViewCount; /* off 0x0388 */ unsigned long UseCount; /* off 0x038c */ unsigned long ViewsPerHive; /* off 0x0390 */ struct _FILE_OBJECT* FileObject; /* off 0x0394 */ unsigned long LastShrinkHiveSize; /* off 0x0398 */ union _LARGE_INTEGER ActualFileSize; /* off 0x03a0 */ struct _UNICODE_STRING FileFullPath; /* off 0x03a8 */ struct _UNICODE_STRING FileUserName; /* off 0x03b0 */ struct _UNICODE_STRING HiveRootPath; /* off 0x03b8 */ unsigned long SecurityCount; /* off 0x03bc */ unsigned long SecurityCacheSize; /* off 0x03c0 */ long SecurityHitHint; /* off 0x03c4 */ struct _CM_KEY_SECURITY_CACHE_ENTRY* SecurityCache; /* off 0x03c8 */ struct _LIST_ENTRY SecurityHash[64]; /* off 0x05c8 */ unsigned long UnloadEventCount; /* off 0x05cc */ struct _KEVENT** UnloadEventArray; /* off 0x05d0 */ struct _CM_KEY_CONTROL_BLOCK* RootKcb; /* off 0x05d4 */ unsigned char Frozen; /* off 0x05d8 */ struct _CM_WORKITEM* UnloadWorkItem; /* off 0x05dc */ struct _CM_WORKITEM UnloadWorkItemHolder; /* off 0x05f0 */ unsigned char GrowOnlyMode; /* off 0x05f4 */ unsigned long GrowOffset; /* off 0x05f8 */ struct _LIST_ENTRY KcbConvertListHead; /* off 0x0600 */ struct _LIST_ENTRY KnodeConvertListHead; /* off 0x0608 */ struct _CM_CELL_REMAP_BLOCK* CellRemapArray; /* off 0x060c */ unsigned long Flags; /* off 0x0610 */ struct _LIST_ENTRY TrustClassEntry; /* off 0x0618 */ unsigned long FlushCount; /* off 0x061c */ struct _CM_RM* CmRm; /* off 0x0620 */ unsigned long CmRmInitFailPoint; /* off 0x0624 */ long CmRmInitFailStatus; /* off 0x0628 */ struct _KTHREAD* CreatorOwner; /* off 0x062c */ struct _KTHREAD* RundownThread; /* off 0x0630 */ union _LARGE_INTEGER LastWriteTime; }; struct _CM_KEY_HASH_TABLE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _EX_PUSH_LOCK Lock; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ struct _CM_KEY_HASH* Entry; }; struct _CM_KEY_HASH /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_KEY_HASH* NextHash; /* off 0x0008 */ struct _HHIVE* KeyHive; /* off 0x000c */ unsigned long KeyCell; }; struct _CM_KEY_SECURITY_CACHE_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; }; struct _CM_KEY_SECURITY_CACHE /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _LIST_ENTRY List; /* off 0x0010 */ unsigned long DescriptorLength; /* off 0x0014 */ unsigned long RealRefCount; /* off 0x0018 */ struct _SECURITY_DESCRIPTOR_RELATIVE Descriptor; }; struct _CACHED_CHILD_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; union { /* off 0x0004 */ unsigned long ValueList; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* RealKcb; }; }; struct _CM_INTENT_LOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OwnerCount; /* off 0x0004 */ struct _CM_KCB_UOW** OwnerTable; }; struct _CM_KEY_CONTROL_BLOCK /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned long RefCount; /* off 0x0004 */ unsigned long ExtFlags:16 /* start bit 0 */; /* off 0x0004 */ unsigned long PrivateAlloc:1 /* start bit 16 */; /* off 0x0004 */ unsigned long Delete:1 /* start bit 17 */; /* off 0x0004 */ unsigned long HiveUnloaded:1 /* start bit 18 */; /* off 0x0004 */ unsigned long Decommissioned:1 /* start bit 19 */; /* off 0x0004 */ unsigned long LockTablePresent:1 /* start bit 20 */; /* off 0x0004 */ unsigned long TotalLevels:10 /* start bit 21 */; /* off 0x0008 */ unsigned long DelayedDeref:1 /* start bit 0 */; /* off 0x0008 */ unsigned long DelayedClose:1 /* start bit 1 */; /* off 0x0008 */ unsigned long Parking:1 /* start bit 2 */; union { /* off 0x000c */ struct _CM_KEY_HASH KeyHash; struct { /* off 0x000c */ unsigned long ConvKey; /* off 0x0010 */ struct _CM_KEY_HASH* NextHash; /* off 0x0014 */ struct _HHIVE* KeyHive; /* off 0x0018 */ unsigned long KeyCell; }; }; /* off 0x001c */ struct _EX_PUSH_LOCK KcbPushlock; union { /* off 0x0020 */ struct _KTHREAD* Owner; /* off 0x0020 */ long SharedCount; }; /* off 0x0024 */ unsigned long SlotHint; /* off 0x0028 */ struct _CM_KEY_CONTROL_BLOCK* ParentKcb; /* off 0x002c */ struct _CM_NAME_CONTROL_BLOCK* NameBlock; /* off 0x0030 */ struct _CM_KEY_SECURITY_CACHE* CachedSecurity; /* off 0x0034 */ struct _CACHED_CHILD_LIST ValueCache; union { /* off 0x003c */ struct _CM_INDEX_HINT_BLOCK* IndexHint; /* off 0x003c */ unsigned long HashKey; /* off 0x003c */ unsigned long SubKeyCount; }; union { /* off 0x0040 */ struct _LIST_ENTRY KeyBodyListHead; /* off 0x0040 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0048 */ struct _CM_KEY_BODY* KeyBodyArray[4]; /* off 0x0058 */ union _LARGE_INTEGER KcbLastWriteTime; /* off 0x0060 */ unsigned short KcbMaxNameLen; /* off 0x0062 */ unsigned short KcbMaxValueNameLen; /* off 0x0064 */ unsigned long KcbMaxValueDataLen; /* off 0x0068 */ unsigned long KcbUserFlags:4 /* start bit 0 */; /* off 0x0068 */ unsigned long KcbVirtControlFlags:4 /* start bit 4 */; /* off 0x0068 */ unsigned long KcbDebug:8 /* start bit 8 */; /* off 0x0068 */ unsigned long Flags:16 /* start bit 16 */; /* off 0x006c */ struct _LIST_ENTRY KCBUoWListHead; union { /* off 0x0074 */ struct _LIST_ENTRY DelayQueueEntry; /* off 0x0074 */ unsigned char* Stolen; }; /* off 0x007c */ struct _CM_TRANS* TransKCBOwner; /* off 0x0080 */ struct _CM_INTENT_LOCK KCBLock; /* off 0x0088 */ struct _CM_INTENT_LOCK KeyLock; /* off 0x0090 */ struct _CHILD_LIST TransValueCache; /* off 0x0098 */ struct _CM_TRANS* TransValueListOwner; /* off 0x009c */ struct _UNICODE_STRING* FullKCBName; }; struct _CM_NAME_HASH /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long ConvKey; /* off 0x0004 */ struct _CM_NAME_HASH* NextHash; /* off 0x0008 */ unsigned short NameLength; /* off 0x000a */ wchar Name[1]; }; struct _CM_NAME_CONTROL_BLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char Compressed; /* off 0x0002 */ unsigned short RefCount; union { /* off 0x0004 */ struct _CM_NAME_HASH NameHash; struct { /* off 0x0004 */ unsigned long ConvKey; /* off 0x0008 */ struct _CM_KEY_HASH* NextHash; /* off 0x000c */ unsigned short NameLength; /* off 0x000e */ wchar Name[1]; }; }; }; struct _CM_INDEX_HINT_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long HashKey[1]; }; struct _CM_KEY_BODY /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Type; /* off 0x0004 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0008 */ struct _CM_NOTIFY_BLOCK* NotifyBlock; /* off 0x000c */ void* ProcessID; /* off 0x0010 */ struct _LIST_ENTRY KeyBodyList; /* off 0x0018 */ unsigned long Flags:16 /* start bit 0 */; /* off 0x0018 */ unsigned long HandleTags:16 /* start bit 16 */; /* off 0x001c */ void* KtmTrans; /* off 0x0020 */ struct _GUID* KtmUow; /* off 0x0024 */ struct _LIST_ENTRY ContextListHead; }; struct _CM_NOTIFY_BLOCK /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY HiveList; /* off 0x0008 */ struct _LIST_ENTRY PostList; /* off 0x0010 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x0014 */ struct _CM_KEY_BODY* KeyBody; /* off 0x0018 */ unsigned long Filter:30 /* start bit 0 */; /* off 0x0018 */ unsigned long WatchTree:1 /* start bit 30 */; /* off 0x0018 */ unsigned long NotifyPending:1 /* start bit 31 */; /* off 0x001c */ struct _SECURITY_SUBJECT_CONTEXT SubjectContext; }; struct _CM_TRANS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _LIST_ENTRY KCBUoWListHead; /* off 0x0010 */ struct _LIST_ENTRY LazyCommitListEntry; /* off 0x0018 */ void* KtmTrans; /* off 0x001c */ struct _CM_RM* CmRm; /* off 0x0020 */ struct _KENLISTMENT* KtmEnlistmentObject; /* off 0x0024 */ void* KtmEnlistmentHandle; /* off 0x0028 */ struct _GUID KtmUow; /* off 0x0038 */ unsigned __int64 StartLsn; /* off 0x0040 */ unsigned long TransState; /* off 0x0044 */ unsigned long HiveCount; /* off 0x0048 */ struct _CMHIVE* HiveArray[7]; }; struct _CM_RM /* sizeof 00000058 88 */ { /* off 0x0000 */ struct _LIST_ENTRY RmListEntry; /* off 0x0008 */ struct _LIST_ENTRY TransactionListHead; /* off 0x0010 */ void* TmHandle; /* off 0x0014 */ void* Tm; /* off 0x0018 */ void* RmHandle; /* off 0x001c */ void* KtmRm; /* off 0x0020 */ unsigned long RefCount; /* off 0x0024 */ unsigned long ContainerNum; /* off 0x0028 */ unsigned __int64 ContainerSize; /* off 0x0030 */ struct _CMHIVE* CmHive; /* off 0x0034 */ void* LogFileObject; /* off 0x0038 */ void* MarshallingContext; /* off 0x003c */ unsigned long RmFlags; /* off 0x0040 */ long LogStartStatus1; /* off 0x0044 */ long LogStartStatus2; /* off 0x0048 */ unsigned __int64 BaseLsn; /* off 0x0050 */ struct _ERESOURCE* RmLock; }; struct _RTL_BALANCED_LINKS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS* Parent; /* off 0x0004 */ struct _RTL_BALANCED_LINKS* LeftChild; /* off 0x0008 */ struct _RTL_BALANCED_LINKS* RightChild; /* off 0x000c */ char Balance; /* off 0x000d */ unsigned char Reserved[3]; }; struct _KTMOBJECT_NAMESPACE_LINK /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS Links; /* off 0x0010 */ unsigned char Expired; }; struct _KMUTANT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _DISPATCHER_HEADER Header; /* off 0x0010 */ struct _LIST_ENTRY MutantListEntry; /* off 0x0018 */ struct _KTHREAD* OwnerThread; /* off 0x001c */ unsigned char Abandoned; /* off 0x001d */ unsigned char ApcDisable; }; struct _KENLISTMENT_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Notification; /* off 0x0004 */ enum _KENLISTMENT_STATE NewState; }; struct _KENLISTMENT /* sizeof 00000168 360 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0018 */ struct _GUID EnlistmentId; /* off 0x0028 */ struct _KMUTANT Mutex; /* off 0x0048 */ struct _LIST_ENTRY NextSameTx; /* off 0x0050 */ struct _LIST_ENTRY NextSameRm; /* off 0x0058 */ struct _KRESOURCEMANAGER* ResourceManager; /* off 0x005c */ struct _KTRANSACTION* Transaction; /* off 0x0060 */ enum _KENLISTMENT_STATE State; /* off 0x0064 */ unsigned long Flags; /* off 0x0068 */ unsigned long NotificationMask; /* off 0x006c */ void* Key; /* off 0x0070 */ unsigned long KeyRefCount; /* off 0x0074 */ void* RecoveryInformation; /* off 0x0078 */ unsigned long RecoveryInformationLength; /* off 0x007c */ void* DynamicNameInformation; /* off 0x0080 */ unsigned long DynamicNameInformationLength; /* off 0x0084 */ struct _KTMNOTIFICATION_PACKET* FinalNotification; /* off 0x0088 */ struct _KENLISTMENT* SupSubEnlistment; /* off 0x008c */ void* SupSubEnlHandle; /* off 0x0090 */ void* SubordinateTxHandle; /* off 0x0094 */ struct _GUID CrmEnlistmentEnId; /* off 0x00a4 */ struct _GUID CrmEnlistmentTmId; /* off 0x00b4 */ struct _GUID CrmEnlistmentRmId; /* off 0x00c4 */ unsigned long NextHistory; /* off 0x00c8 */ struct _KENLISTMENT_HISTORY History[20]; }; struct _RTL_AVL_TABLE /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _RTL_BALANCED_LINKS BalancedRoot; /* off 0x0010 */ void* OrderedPointer; /* off 0x0014 */ unsigned long WhichOrderedElement; /* off 0x0018 */ unsigned long NumberGenericTableElements; /* off 0x001c */ unsigned long DepthOfTree; /* off 0x0020 */ struct _RTL_BALANCED_LINKS* RestartKey; /* off 0x0024 */ unsigned long DeleteCount; /* off 0x0028 */ enum _RTL_GENERIC_COMPARE_RESULTS( __stdcall *CompareRoutine)(struct _RTL_AVL_TABLE*,void*,void*); /* off 0x002c */ void*( __stdcall *AllocateRoutine)(struct _RTL_AVL_TABLE*,unsigned long); /* off 0x0030 */ void( __stdcall *FreeRoutine)(struct _RTL_AVL_TABLE*,void*); /* off 0x0034 */ void* TableContext; }; struct _KTMOBJECT_NAMESPACE /* sizeof 00000060 96 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE Table; /* off 0x0038 */ struct _KMUTANT Mutex; /* off 0x0058 */ unsigned short LinksOffset; /* off 0x005a */ unsigned short GuidOffset; /* off 0x005c */ unsigned char Expired; }; struct _KRESOURCEMANAGER_COMPLETION_BINDING /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY NotificationListHead; /* off 0x0008 */ void* Port; /* off 0x000c */ unsigned long Key; /* off 0x0010 */ struct _EPROCESS* BindingProcess; }; struct _KRESOURCEMANAGER /* sizeof 00000154 340 */ { /* off 0x0000 */ struct _KEVENT NotificationAvailable; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ enum _KRESOURCEMANAGER_STATE State; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _KMUTANT Mutex; /* off 0x003c */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x0050 */ struct _GUID RmId; /* off 0x0060 */ struct _KQUEUE NotificationQueue; /* off 0x0088 */ struct _KMUTANT NotificationMutex; /* off 0x00a8 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x00b0 */ unsigned long EnlistmentCount; /* off 0x00b4 */ long( __stdcall *NotificationRoutine)(struct _KENLISTMENT*,void*,void*,unsigned long,union _LARGE_INTEGER*,unsigned long,void*); /* off 0x00b8 */ void* Key; /* off 0x00bc */ struct _LIST_ENTRY ProtocolListHead; /* off 0x00c4 */ struct _LIST_ENTRY PendingPropReqListHead; /* off 0x00cc */ struct _LIST_ENTRY CRMListEntry; /* off 0x00d4 */ struct _KTM* Tm; /* off 0x00d8 */ struct _UNICODE_STRING Description; /* off 0x00e0 */ struct _KTMOBJECT_NAMESPACE Enlistments; /* off 0x0140 */ struct _KRESOURCEMANAGER_COMPLETION_BINDING CompletionBinding; }; enum _KRESOURCEMANAGER_STATE { KResourceManagerUninitialized =0x00000000 ,//0 KResourceManagerOffline =0x00000001 ,//0 KResourceManagerOnline =0x00000002 ,//0 }; union _CLS_LSN /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned int idxRecord; /* off 0x0004 */ unsigned long cidContainer; } offset; /* off 0x0000 */ unsigned __int64 ullOffset; }; struct _WORK_QUEUE_ITEM /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0008 */ void( __stdcall *WorkerRoutine)(void*); /* off 0x000c */ void* Parameter; }; struct _KTM /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long cookie; /* off 0x0004 */ struct _KMUTANT Mutex; /* off 0x0024 */ enum KTM_STATE State; /* off 0x0028 */ struct _KTMOBJECT_NAMESPACE_LINK NamespaceLink; /* off 0x003c */ struct _GUID TmIdentity; /* off 0x004c */ unsigned long Flags; /* off 0x0050 */ unsigned long VolatileFlags; /* off 0x0054 */ struct _UNICODE_STRING LogFileName; /* off 0x005c */ struct _FILE_OBJECT* LogFileObject; /* off 0x0060 */ void* MarshallingContext; /* off 0x0064 */ void* LogManagementContext; /* off 0x0068 */ struct _KTMOBJECT_NAMESPACE Transactions; /* off 0x00c8 */ struct _KTMOBJECT_NAMESPACE ResourceManagers; /* off 0x0128 */ struct _KMUTANT LsnOrderedMutex; /* off 0x0148 */ struct _LIST_ENTRY LsnOrderedList; /* off 0x0150 */ union _LARGE_INTEGER CommitVirtualClock; /* off 0x0158 */ struct _FAST_MUTEX CommitVirtualClockMutex; /* off 0x0178 */ union _CLS_LSN BaseLsn; /* off 0x0180 */ union _CLS_LSN CurrentReadLsn; /* off 0x0188 */ union _CLS_LSN LastRecoveredLsn; /* off 0x0190 */ void* TmRmHandle; /* off 0x0194 */ struct _KRESOURCEMANAGER* TmRm; /* off 0x0198 */ struct _KEVENT LogFullNotifyEvent; /* off 0x01a8 */ struct _WORK_QUEUE_ITEM CheckpointWorkItem; /* off 0x01b8 */ union _CLS_LSN CheckpointTargetLsn; /* off 0x01c0 */ struct _WORK_QUEUE_ITEM LogFullCompletedWorkItem; /* off 0x01d0 */ struct _ERESOURCE LogWriteResource; /* off 0x0208 */ unsigned long LogFlags; /* off 0x020c */ long LogFullStatus; /* off 0x0210 */ long RecoveryStatus; /* off 0x0218 */ union _CLS_LSN LastCheckBaseLsn; /* off 0x0220 */ struct _LIST_ENTRY RestartOrderedList; /* off 0x0228 */ struct _WORK_QUEUE_ITEM OfflineWorkItem; }; enum KTM_STATE { KKtmUninitialized =0x00000000 ,//0 KKtmInitialized =0x00000001 ,//0 KKtmRecovering =0x00000002 ,//0 KKtmOnline =0x00000003 ,//0 KKtmRecoveryFailed =0x00000004 ,//0 KKtmOffline =0x00000005 ,//0 }; enum _RTL_GENERIC_COMPARE_RESULTS { GenericLessThan =0x00000000 ,//0 GenericGreaterThan =0x00000001 ,//0 GenericEqual =0x00000002 ,//0 }; struct _KTRANSACTION_HISTORY /* sizeof 00000008 8 */ { /* off 0x0000 */ enum RecordType; /* off 0x0004 */ unsigned long Payload; }; struct _KTRANSACTION /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _KEVENT OutcomeEvent; /* off 0x0010 */ unsigned long cookie; /* off 0x0014 */ struct _KMUTANT Mutex; /* off 0x0034 */ struct _KTRANSACTION* TreeTx; /* off 0x0038 */ struct _KTMOBJECT_NAMESPACE_LINK GlobalNamespaceLink; /* off 0x004c */ struct _KTMOBJECT_NAMESPACE_LINK TmNamespaceLink; /* off 0x0060 */ struct _GUID UOW; /* off 0x0070 */ enum _KTRANSACTION_STATE State; /* off 0x0074 */ unsigned long Flags; /* off 0x0078 */ struct _LIST_ENTRY EnlistmentHead; /* off 0x0080 */ unsigned long EnlistmentCount; /* off 0x0084 */ unsigned long RecoverableEnlistmentCount; /* off 0x0088 */ unsigned long PrePrepareRequiredEnlistmentCount; /* off 0x008c */ unsigned long PrepareRequiredEnlistmentCount; /* off 0x0090 */ unsigned long OutcomeRequiredEnlistmentCount; /* off 0x0094 */ unsigned long PendingResponses; /* off 0x0098 */ struct _KENLISTMENT* SuperiorEnlistment; /* off 0x00a0 */ union _CLS_LSN LastLsn; /* off 0x00a8 */ struct _LIST_ENTRY PromotedEntry; /* off 0x00b0 */ struct _KTRANSACTION* PromoterTransaction; /* off 0x00b4 */ void* PromotePropagation; /* off 0x00b8 */ unsigned long IsolationLevel; /* off 0x00bc */ unsigned long IsolationFlags; /* off 0x00c0 */ union _LARGE_INTEGER Timeout; /* off 0x00c8 */ struct _UNICODE_STRING Description; /* off 0x00d0 */ struct _KTHREAD* RollbackThread; /* off 0x00d4 */ struct _WORK_QUEUE_ITEM RollbackWorkItem; /* off 0x00e4 */ struct _KDPC RollbackDpc; /* off 0x0108 */ struct _KTIMER RollbackTimer; /* off 0x0130 */ struct _LIST_ENTRY LsnOrderedEntry; /* off 0x0138 */ enum _KTRANSACTION_OUTCOME Outcome; /* off 0x013c */ struct _KTM* Tm; /* off 0x0140 */ __int64 CommitReservation; /* off 0x0148 */ struct _KTRANSACTION_HISTORY TransactionHistory[10]; /* off 0x0198 */ unsigned long TransactionHistoryCount; /* off 0x019c */ void* DTCPrivateInformation; /* off 0x01a0 */ unsigned long DTCPrivateInformationLength; /* off 0x01a4 */ struct _KMUTANT DTCPrivateInformationMutex; /* off 0x01c4 */ void* PromotedTxSelfHandle; /* off 0x01c8 */ unsigned long PendingPromotionCount; /* off 0x01cc */ struct _KEVENT PromotionCompletedEvent; }; enum _KTRANSACTION_STATE { KTransactionUninitialized =0x00000000 ,//0 KTransactionActive =0x00000001 ,//0 KTransactionPreparing =0x00000002 ,//0 KTransactionPrepared =0x00000003 ,//0 KTransactionInDoubt =0x00000004 ,//0 KTransactionCommitted =0x00000005 ,//0 KTransactionAborted =0x00000006 ,//0 KTransactionDelegated =0x00000007 ,//0 KTransactionPrePreparing =0x00000008 ,//0 KTransactionForgotten =0x00000009 ,//0 KTransactionRecovering =0x0000000a ,//0 KTransactionPrePrepared =0x0000000b ,//0 }; enum _KTRANSACTION_OUTCOME { KTxOutcomeUninitialized =0x00000000 ,//0 KTxOutcomeUndetermined =0x00000001 ,//0 KTxOutcomeCommitted =0x00000002 ,//0 KTxOutcomeAborted =0x00000003 ,//0 KTxOutcomeUnavailable =0x00000004 ,//0 }; enum { KTMOH_CommitTransaction_Result =0x00000001 ,//0 KTMOH_RollbackTransaction_Result =0x00000002 ,//0 }; enum _KENLISTMENT_STATE { KEnlistmentUninitialized =0x00000000 ,//0 KEnlistmentActive =0x00000100 ,//0 KEnlistmentPreparing =0x00000101 ,//0 KEnlistmentPrepared =0x00000102 ,//0 KEnlistmentInDoubt =0x00000103 ,//0 KEnlistmentCommitted =0x00000104 ,//0 KEnlistmentCommittedNotify =0x00000105 ,//0 KEnlistmentCommitRequested =0x00000106 ,//0 KEnlistmentAborted =0x00000107 ,//0 KEnlistmentDelegated =0x00000108 ,//0 KEnlistmentDelegatedDisconnected =0x00000109 ,//0 KEnlistmentPrePreparing =0x0000010a ,//0 KEnlistmentForgotten =0x0000010b ,//0 KEnlistmentRecovering =0x0000010c ,//0 KEnlistmentAborting =0x0000010d ,//0 KEnlistmentReadOnly =0x0000010e ,//0 KEnlistmentOutcomeUnavailable =0x0000010f ,//0 KEnlistmentOffline =0x00000110 ,//0 KEnlistmentPrePrepared =0x00000111 ,//0 KEnlistmentInitialized =0x00000112 ,//0 }; struct _KTMNOTIFICATION_PACKET /* sizeof 00000000 0 */ { }; struct _CM_KCB_UOW /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY TransactionListEntry; /* off 0x0008 */ struct _CM_INTENT_LOCK* KCBLock; /* off 0x000c */ struct _CM_INTENT_LOCK* KeyLock; /* off 0x0010 */ struct _LIST_ENTRY KCBListEntry; /* off 0x0018 */ struct _CM_KEY_CONTROL_BLOCK* KeyControlBlock; /* off 0x001c */ struct _CM_TRANS* Transaction; /* off 0x0020 */ unsigned long UoWState; /* off 0x0024 */ enum UoWActionType ActionType; /* off 0x0028 */ enum HSTORAGE_TYPE StorageType; union { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* ChildKCB; /* off 0x0030 */ unsigned long VolatileKeyCell; struct { /* off 0x0030 */ unsigned long OldValueCell; union { struct { /* off 0x0034 */ unsigned long NewValueCell; }; /* off 0x0030 */ unsigned long UserFlags; /* off 0x0030 */ union _LARGE_INTEGER LastWriteTime; /* off 0x0030 */ unsigned long TxSecurityCell; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OldChildKCB; }; struct { /* off 0x0034 */ struct _CM_KEY_CONTROL_BLOCK* NewChildKCB; }; struct { /* off 0x0030 */ struct _CM_KEY_CONTROL_BLOCK* OtherChildKCB; }; /* off 0x0034 */ unsigned long ThisVolatileKeyCell; }; }; }; }; enum UoWActionType { UoWAddThisKey =0x00000000 ,//0 UoWAddChildKey =0x00000001 ,//0 UoWDeleteThisKey =0x00000002 ,//0 UoWDeleteChildKey =0x00000003 ,//0 UoWSetValueNew =0x00000004 ,//0 UoWSetValueExisting =0x00000005 ,//0 UoWDeleteValue =0x00000006 ,//0 UoWSetKeyUserFlags =0x00000007 ,//0 UoWSetLastWriteTime =0x00000008 ,//0 UoWSetSecurityDescriptor =0x00000009 ,//0 UoWRenameSubKey =0x0000000a ,//0 UoWRenameOldSubKey =0x0000000b ,//0 UoWRenameNewSubKey =0x0000000c ,//0 UoWIsolation =0x0000000d ,//0 UoWInvalid =0x0000000e ,//0 }; enum HSTORAGE_TYPE { Stable =0x00000000 ,//0 Volatile =0x00000001 ,//0 InvalidStorage =0x00000002 ,//0 }; struct _CM_CELL_REMAP_BLOCK /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long OldCell; /* off 0x0004 */ unsigned long NewCell; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; struct _HIVE_LOAD_FAILURE /* sizeof 00000120 288 */ { /* off 0x0000 */ struct _HHIVE* Hive; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long RecoverableIndex; /* off 0x000c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } Locations[8]; /* off 0x006c */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; } RecoverableLocations[8]; /* off 0x00cc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Action; /* off 0x0004 */ void* Handle; /* off 0x0008 */ long Status; } RegistryIO; /* off 0x00d8 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* CheckStack; } CheckRegistry2; /* off 0x00dc */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Cell; /* off 0x0004 */ struct _CELL_DATA* CellPoint; /* off 0x0008 */ void* RootPoint; /* off 0x000c */ unsigned long Index; } CheckKey; /* off 0x00ec */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _CELL_DATA* List; /* off 0x0004 */ unsigned long Index; /* off 0x0008 */ unsigned long Cell; /* off 0x000c */ struct _CELL_DATA* CellPoint; } CheckValueList; /* off 0x00fc */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive; /* off 0x0108 */ struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Space; /* off 0x0004 */ unsigned long MapPoint; /* off 0x0008 */ struct _HBIN* BinPoint; } CheckHive1; /* off 0x0114 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _HBIN* Bin; /* off 0x0004 */ struct _HCELL* CellPoint; } CheckBin; /* off 0x011c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long FileOffset; } RecoverData; }; struct /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum _CM_LOAD_FAILURE_TYPE Failure; /* off 0x0004 */ long Status; /* off 0x0008 */ unsigned long Point; }; enum _CM_LOAD_FAILURE_TYPE { _None =0x00000000 ,//0 _CmInitializeHive =0x00000001 ,//0 _HvInitializeHive =0x00000002 ,//0 _HvpBuildMap =0x00000003 ,//0 _HvpBuildMapAndCopy =0x00000004 ,//0 _HvpInitMap =0x00000005 ,//0 _HvLoadHive =0x00000006 ,//0 _HvpReadFileImageAndBuildMap =0x00000007 ,//0 _HvpRecoverData =0x00000008 ,//0 _HvpRecoverWholeHive =0x00000009 ,//0 _HvpMapFileImageAndBuildMap =0x0000000a ,//0 _CmpValidateHiveSecurityDescriptors =0x0000000b ,//0 _HvpEnlistBinInMap =0x0000000c ,//0 _CmCheckRegistry =0x0000000d ,//0 _CmRegistryIO =0x0000000e ,//0 _CmCheckRegistry2 =0x0000000f ,//0 _CmpCheckKey =0x00000010 ,//0 _CmpCheckValueList =0x00000011 ,//0 _HvCheckHive =0x00000012 ,//0 _HvCheckBin =0x00000013 ,//0 }; struct _HBIN /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long FileOffset; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned long Reserved1[2]; /* off 0x0014 */ union _LARGE_INTEGER TimeStamp; /* off 0x001c */ unsigned long Spare; }; struct _HCELL /* sizeof 0000000c 12 */ { /* off 0x0000 */ long Size; /* off 0x0004 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Last; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } OldCell; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long UserData; /* off 0x0000 */ unsigned long Next; } u; } NewCell; } u; }; struct _PCW_COUNTER_DESCRIPTOR /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned short StructIndex; /* off 0x0004 */ unsigned short Offset; /* off 0x0006 */ unsigned short Size; }; enum _PCW_CALLBACK_TYPE { PcwCallbackAddCounter =0x00000000 ,//0 PcwCallbackRemoveCounter =0x00000001 ,//0 PcwCallbackEnumerateInstances =0x00000002 ,//0 PcwCallbackCollectData =0x00000003 ,//0 }; struct _PCW_COUNTER_INFORMATION /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; }; struct _PCW_MASK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 CounterMask; /* off 0x0008 */ struct _UNICODE_STRING* InstanceMask; /* off 0x000c */ unsigned long InstanceId; /* off 0x0010 */ unsigned char CollectMultiple; /* off 0x0014 */ struct _PCW_BUFFER* Buffer; /* off 0x0018 */ struct _KEVENT* CancelEvent; }; union _PCW_CALLBACK_INFORMATION /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION AddCounter; /* off 0x0000 */ struct _PCW_COUNTER_INFORMATION RemoveCounter; /* off 0x0000 */ struct _PCW_MASK_INFORMATION EnumerateInstances; /* off 0x0000 */ struct _PCW_MASK_INFORMATION CollectData; }; struct _PCW_BUFFER /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION /* sizeof 00000000 0 */ { }; struct _PCW_REGISTRATION_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Version; /* off 0x0004 */ struct _UNICODE_STRING* Name; /* off 0x0008 */ unsigned long CounterCount; /* off 0x000c */ struct _PCW_COUNTER_DESCRIPTOR* Counters; /* off 0x0010 */ long( __stdcall *Callback)(enum _PCW_CALLBACK_TYPE,union _PCW_CALLBACK_INFORMATION*,void*); /* off 0x0014 */ void* CallbackContext; }; struct _PCW_PROCESSOR_INFO /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned __int64 IdleTime; /* off 0x0008 */ unsigned __int64 AvailableTime; /* off 0x0010 */ unsigned __int64 UserTime; /* off 0x0018 */ unsigned __int64 KernelTime; /* off 0x0020 */ unsigned long Interrupts; /* off 0x0028 */ unsigned __int64 DpcTime; /* off 0x0030 */ unsigned __int64 InterruptTime; /* off 0x0038 */ unsigned long DpcCount; /* off 0x003c */ unsigned long DpcRate; /* off 0x0040 */ unsigned __int64 C1Time; /* off 0x0048 */ unsigned __int64 C2Time; /* off 0x0050 */ unsigned __int64 C3Time; /* off 0x0058 */ unsigned __int64 C1Transitions; /* off 0x0060 */ unsigned __int64 C2Transitions; /* off 0x0068 */ unsigned __int64 C3Transitions; /* off 0x0070 */ unsigned long ParkingStatus; /* off 0x0074 */ unsigned long CurrentFrequency; /* off 0x0078 */ unsigned long PercentMaxFrequency; /* off 0x007c */ unsigned long StateFlags; }; struct _PCW_INSTANCE /* sizeof 00000000 0 */ { }; struct _PCW_DATA /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Data; /* off 0x0004 */ unsigned long Size; }; struct _ETW_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long TotalActiveSessions; /* off 0x0004 */ long TotalBufferMemoryNonPagedPool; /* off 0x0008 */ long TotalBufferMemoryPagedPool; /* off 0x000c */ long TotalGuidsEnabled; /* off 0x0010 */ long TotalGuidsNotEnabled; /* off 0x0014 */ long TotalGuidsPreEnabled; }; struct _ETW_SESSION_PERF_COUNTERS /* sizeof 00000018 24 */ { /* off 0x0000 */ long BufferMemoryPagedPool; /* off 0x0004 */ long BufferMemoryNonPagedPool; /* off 0x0008 */ unsigned __int64 EventsLoggedCount; /* off 0x0010 */ long EventsLost; /* off 0x0014 */ long NumConsumers; }; struct _NT_TIB32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long ExceptionList; /* off 0x0004 */ unsigned long StackBase; /* off 0x0008 */ unsigned long StackLimit; /* off 0x000c */ unsigned long SubSystemTib; union { /* off 0x0010 */ unsigned long FiberData; /* off 0x0010 */ unsigned long Version; }; /* off 0x0014 */ unsigned long ArbitraryUserPointer; /* off 0x0018 */ unsigned long Self; }; struct _CLIENT_ID32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long UniqueProcess; /* off 0x0004 */ unsigned long UniqueThread; }; struct _GDI_TEB_BATCH32 /* sizeof 000004e0 1248 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0004 */ unsigned long HDC; /* off 0x0008 */ unsigned long Buffer[310]; }; struct _STRING32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0004 */ unsigned long Buffer; }; struct _TEB32 /* sizeof 00000fe4 4068 */ { /* off 0x0000 */ struct _NT_TIB32 NtTib; /* off 0x001c */ unsigned long EnvironmentPointer; /* off 0x0020 */ struct _CLIENT_ID32 ClientId; /* off 0x0028 */ unsigned long ActiveRpcHandle; /* off 0x002c */ unsigned long ThreadLocalStoragePointer; /* off 0x0030 */ unsigned long ProcessEnvironmentBlock; /* off 0x0034 */ unsigned long LastErrorValue; /* off 0x0038 */ unsigned long CountOfOwnedCriticalSections; /* off 0x003c */ unsigned long CsrClientThread; /* off 0x0040 */ unsigned long Win32ThreadInfo; /* off 0x0044 */ unsigned long User32Reserved[26]; /* off 0x00ac */ unsigned long UserReserved[5]; /* off 0x00c0 */ unsigned long WOW32Reserved; /* off 0x00c4 */ unsigned long CurrentLocale; /* off 0x00c8 */ unsigned long FpSoftwareStatusRegister; /* off 0x00cc */ unsigned long SystemReserved1[54]; /* off 0x01a4 */ long ExceptionCode; /* off 0x01a8 */ unsigned long ActivationContextStackPointer; /* off 0x01ac */ unsigned char SpareBytes[36]; /* off 0x01d0 */ unsigned long TxFsContext; /* off 0x01d4 */ struct _GDI_TEB_BATCH32 GdiTebBatch; /* off 0x06b4 */ struct _CLIENT_ID32 RealClientId; /* off 0x06bc */ unsigned long GdiCachedProcessHandle; /* off 0x06c0 */ unsigned long GdiClientPID; /* off 0x06c4 */ unsigned long GdiClientTID; /* off 0x06c8 */ unsigned long GdiThreadLocalInfo; /* off 0x06cc */ unsigned long Win32ClientInfo[62]; /* off 0x07c4 */ unsigned long glDispatchTable[233]; /* off 0x0b68 */ unsigned long glReserved1[29]; /* off 0x0bdc */ unsigned long glReserved2; /* off 0x0be0 */ unsigned long glSectionInfo; /* off 0x0be4 */ unsigned long glSection; /* off 0x0be8 */ unsigned long glTable; /* off 0x0bec */ unsigned long glCurrentRC; /* off 0x0bf0 */ unsigned long glContext; /* off 0x0bf4 */ unsigned long LastStatusValue; /* off 0x0bf8 */ struct _STRING32 StaticUnicodeString; /* off 0x0c00 */ wchar StaticUnicodeBuffer[261]; /* off 0x0e0c */ unsigned long DeallocationStack; /* off 0x0e10 */ unsigned long TlsSlots[64]; /* off 0x0f10 */ struct LIST_ENTRY32 TlsLinks; /* off 0x0f18 */ unsigned long Vdm; /* off 0x0f1c */ unsigned long ReservedForNtRpc; /* off 0x0f20 */ unsigned long DbgSsReserved[2]; /* off 0x0f28 */ unsigned long HardErrorMode; /* off 0x0f2c */ unsigned long Instrumentation[9]; /* off 0x0f50 */ struct _GUID ActivityId; /* off 0x0f60 */ unsigned long SubProcessTag; /* off 0x0f64 */ unsigned long EtwLocalData; /* off 0x0f68 */ unsigned long EtwTraceData; /* off 0x0f6c */ unsigned long WinSockData; /* off 0x0f70 */ unsigned long GdiBatchCount; union { /* off 0x0f74 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x0f74 */ unsigned long IdealProcessorValue; struct { /* off 0x0f74 */ unsigned char ReservedPad0; /* off 0x0f75 */ unsigned char ReservedPad1; /* off 0x0f76 */ unsigned char ReservedPad2; /* off 0x0f77 */ unsigned char IdealProcessor; }; }; /* off 0x0f78 */ unsigned long GuaranteedStackBytes; /* off 0x0f7c */ unsigned long ReservedForPerf; /* off 0x0f80 */ unsigned long ReservedForOle; /* off 0x0f84 */ unsigned long WaitingOnLoaderLock; /* off 0x0f88 */ unsigned long SavedPriorityState; /* off 0x0f8c */ unsigned long SoftPatchPtr1; /* off 0x0f90 */ unsigned long ThreadPoolData; /* off 0x0f94 */ unsigned long TlsExpansionSlots; /* off 0x0f98 */ unsigned long MuiGeneration; /* off 0x0f9c */ unsigned long IsImpersonating; /* off 0x0fa0 */ unsigned long NlsCache; /* off 0x0fa4 */ unsigned long pShimData; /* off 0x0fa8 */ unsigned long HeapVirtualAffinity; /* off 0x0fac */ unsigned long CurrentTransactionHandle; /* off 0x0fb0 */ unsigned long ActiveFrame; /* off 0x0fb4 */ unsigned long FlsData; /* off 0x0fb8 */ unsigned long PreferredLanguages; /* off 0x0fbc */ unsigned long UserPrefLanguages; /* off 0x0fc0 */ unsigned long MergedPrefLanguages; /* off 0x0fc4 */ unsigned long MuiImpersonation; union { /* off 0x0fc8 */ unsigned short CrossTebFlags; /* off 0x0fc8 */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x0fca */ unsigned short SameTebFlags; struct { /* off 0x0fca */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x0fca */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x0fca */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x0fca */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x0fca */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x0fca */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x0fca */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x0fca */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x0fca */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x0fca */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x0fca */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x0fca */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x0fcc */ unsigned long TxnScopeEnterCallback; /* off 0x0fd0 */ unsigned long TxnScopeExitCallback; /* off 0x0fd4 */ unsigned long TxnScopeContext; /* off 0x0fd8 */ unsigned long LockCount; /* off 0x0fdc */ unsigned long SpareUlong0; /* off 0x0fe0 */ unsigned long ResourceRetValue; }; struct _NT_TIB64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 ExceptionList; /* off 0x0008 */ unsigned __int64 StackBase; /* off 0x0010 */ unsigned __int64 StackLimit; /* off 0x0018 */ unsigned __int64 SubSystemTib; union { /* off 0x0020 */ unsigned __int64 FiberData; /* off 0x0020 */ unsigned long Version; }; /* off 0x0028 */ unsigned __int64 ArbitraryUserPointer; /* off 0x0030 */ unsigned __int64 Self; }; struct _CLIENT_ID64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 UniqueProcess; /* off 0x0008 */ unsigned __int64 UniqueThread; }; struct _GDI_TEB_BATCH64 /* sizeof 000004e8 1256 */ { /* off 0x0000 */ unsigned long Offset; /* off 0x0008 */ unsigned __int64 HDC; /* off 0x0010 */ unsigned long Buffer[310]; }; struct _STRING64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Length; /* off 0x0002 */ unsigned short MaximumLength; /* off 0x0008 */ unsigned __int64 Buffer; }; struct _TEB64 /* sizeof 00001818 6168 */ { /* off 0x0000 */ struct _NT_TIB64 NtTib; /* off 0x0038 */ unsigned __int64 EnvironmentPointer; /* off 0x0040 */ struct _CLIENT_ID64 ClientId; /* off 0x0050 */ unsigned __int64 ActiveRpcHandle; /* off 0x0058 */ unsigned __int64 ThreadLocalStoragePointer; /* off 0x0060 */ unsigned __int64 ProcessEnvironmentBlock; /* off 0x0068 */ unsigned long LastErrorValue; /* off 0x006c */ unsigned long CountOfOwnedCriticalSections; /* off 0x0070 */ unsigned __int64 CsrClientThread; /* off 0x0078 */ unsigned __int64 Win32ThreadInfo; /* off 0x0080 */ unsigned long User32Reserved[26]; /* off 0x00e8 */ unsigned long UserReserved[5]; /* off 0x0100 */ unsigned __int64 WOW32Reserved; /* off 0x0108 */ unsigned long CurrentLocale; /* off 0x010c */ unsigned long FpSoftwareStatusRegister; /* off 0x0110 */ unsigned __int64 SystemReserved1[54]; /* off 0x02c0 */ long ExceptionCode; /* off 0x02c8 */ unsigned __int64 ActivationContextStackPointer; /* off 0x02d0 */ unsigned char SpareBytes[24]; /* off 0x02e8 */ unsigned long TxFsContext; /* off 0x02f0 */ struct _GDI_TEB_BATCH64 GdiTebBatch; /* off 0x07d8 */ struct _CLIENT_ID64 RealClientId; /* off 0x07e8 */ unsigned __int64 GdiCachedProcessHandle; /* off 0x07f0 */ unsigned long GdiClientPID; /* off 0x07f4 */ unsigned long GdiClientTID; /* off 0x07f8 */ unsigned __int64 GdiThreadLocalInfo; /* off 0x0800 */ unsigned __int64 Win32ClientInfo[62]; /* off 0x09f0 */ unsigned __int64 glDispatchTable[233]; /* off 0x1138 */ unsigned __int64 glReserved1[29]; /* off 0x1220 */ unsigned __int64 glReserved2; /* off 0x1228 */ unsigned __int64 glSectionInfo; /* off 0x1230 */ unsigned __int64 glSection; /* off 0x1238 */ unsigned __int64 glTable; /* off 0x1240 */ unsigned __int64 glCurrentRC; /* off 0x1248 */ unsigned __int64 glContext; /* off 0x1250 */ unsigned long LastStatusValue; /* off 0x1258 */ struct _STRING64 StaticUnicodeString; /* off 0x1268 */ wchar StaticUnicodeBuffer[261]; /* off 0x1478 */ unsigned __int64 DeallocationStack; /* off 0x1480 */ unsigned __int64 TlsSlots[64]; /* off 0x1680 */ struct LIST_ENTRY64 TlsLinks; /* off 0x1690 */ unsigned __int64 Vdm; /* off 0x1698 */ unsigned __int64 ReservedForNtRpc; /* off 0x16a0 */ unsigned __int64 DbgSsReserved[2]; /* off 0x16b0 */ unsigned long HardErrorMode; /* off 0x16b8 */ unsigned __int64 Instrumentation[11]; /* off 0x1710 */ struct _GUID ActivityId; /* off 0x1720 */ unsigned __int64 SubProcessTag; /* off 0x1728 */ unsigned __int64 EtwLocalData; /* off 0x1730 */ unsigned __int64 EtwTraceData; /* off 0x1738 */ unsigned __int64 WinSockData; /* off 0x1740 */ unsigned long GdiBatchCount; union { /* off 0x1744 */ struct _PROCESSOR_NUMBER CurrentIdealProcessor; /* off 0x1744 */ unsigned long IdealProcessorValue; struct { /* off 0x1744 */ unsigned char ReservedPad0; /* off 0x1745 */ unsigned char ReservedPad1; /* off 0x1746 */ unsigned char ReservedPad2; /* off 0x1747 */ unsigned char IdealProcessor; }; }; /* off 0x1748 */ unsigned long GuaranteedStackBytes; /* off 0x1750 */ unsigned __int64 ReservedForPerf; /* off 0x1758 */ unsigned __int64 ReservedForOle; /* off 0x1760 */ unsigned long WaitingOnLoaderLock; /* off 0x1768 */ unsigned __int64 SavedPriorityState; /* off 0x1770 */ unsigned __int64 SoftPatchPtr1; /* off 0x1778 */ unsigned __int64 ThreadPoolData; /* off 0x1780 */ unsigned __int64 TlsExpansionSlots; /* off 0x1788 */ unsigned __int64 DeallocationBStore; /* off 0x1790 */ unsigned __int64 BStoreLimit; /* off 0x1798 */ unsigned long MuiGeneration; /* off 0x179c */ unsigned long IsImpersonating; /* off 0x17a0 */ unsigned __int64 NlsCache; /* off 0x17a8 */ unsigned __int64 pShimData; /* off 0x17b0 */ unsigned long HeapVirtualAffinity; /* off 0x17b8 */ unsigned __int64 CurrentTransactionHandle; /* off 0x17c0 */ unsigned __int64 ActiveFrame; /* off 0x17c8 */ unsigned __int64 FlsData; /* off 0x17d0 */ unsigned __int64 PreferredLanguages; /* off 0x17d8 */ unsigned __int64 UserPrefLanguages; /* off 0x17e0 */ unsigned __int64 MergedPrefLanguages; /* off 0x17e8 */ unsigned long MuiImpersonation; union { /* off 0x17ec */ unsigned short CrossTebFlags; /* off 0x17ec */ unsigned short SpareCrossTebBits:16 /* start bit 0 */; }; union { /* off 0x17ee */ unsigned short SameTebFlags; struct { /* off 0x17ee */ unsigned short SafeThunkCall:1 /* start bit 0 */; /* off 0x17ee */ unsigned short InDebugPrint:1 /* start bit 1 */; /* off 0x17ee */ unsigned short HasFiberData:1 /* start bit 2 */; /* off 0x17ee */ unsigned short SkipThreadAttach:1 /* start bit 3 */; /* off 0x17ee */ unsigned short WerInShipAssertCode:1 /* start bit 4 */; /* off 0x17ee */ unsigned short RanProcessInit:1 /* start bit 5 */; /* off 0x17ee */ unsigned short ClonedThread:1 /* start bit 6 */; /* off 0x17ee */ unsigned short SuppressDebugMsg:1 /* start bit 7 */; /* off 0x17ee */ unsigned short DisableUserStackWalk:1 /* start bit 8 */; /* off 0x17ee */ unsigned short RtlExceptionAttached:1 /* start bit 9 */; /* off 0x17ee */ unsigned short InitialThread:1 /* start bit 10 */; /* off 0x17ee */ unsigned short SpareSameTebBits:5 /* start bit 11 */; }; }; /* off 0x17f0 */ unsigned __int64 TxnScopeEnterCallback; /* off 0x17f8 */ unsigned __int64 TxnScopeExitCallback; /* off 0x1800 */ unsigned __int64 TxnScopeContext; /* off 0x1808 */ unsigned long LockCount; /* off 0x180c */ unsigned long SpareUlong0; /* off 0x1810 */ unsigned __int64 ResourceRetValue; }; struct _KAFFINITY_ENUMERATION_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _KAFFINITY_EX* Affinity; /* off 0x0004 */ unsigned long CurrentMask; /* off 0x0008 */ unsigned short CurrentIndex; }; struct _FXSAVE_FORMAT /* sizeof 000001e0 480 */ { /* off 0x0000 */ unsigned short ControlWord; /* off 0x0002 */ unsigned short StatusWord; /* off 0x0004 */ unsigned short TagWord; /* off 0x0006 */ unsigned short ErrorOpcode; /* off 0x0008 */ unsigned long ErrorOffset; /* off 0x000c */ unsigned long ErrorSelector; /* off 0x0010 */ unsigned long DataOffset; /* off 0x0014 */ unsigned long DataSelector; /* off 0x0018 */ unsigned long MXCsr; /* off 0x001c */ unsigned long MXCsrMask; /* off 0x0020 */ unsigned char RegisterArea[128]; /* off 0x00a0 */ unsigned char Reserved3[128]; /* off 0x0120 */ unsigned char Reserved4[192]; }; struct _FNSAVE_FORMAT /* sizeof 0000006c 108 */ { /* off 0x0000 */ unsigned long ControlWord; /* off 0x0004 */ unsigned long StatusWord; /* off 0x0008 */ unsigned long TagWord; /* off 0x000c */ unsigned long ErrorOffset; /* off 0x0010 */ unsigned long ErrorSelector; /* off 0x0014 */ unsigned long DataOffset; /* off 0x0018 */ unsigned long DataSelector; /* off 0x001c */ unsigned char RegisterArea[80]; }; struct _KERNEL_STACK_SEGMENT /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long StackBase; /* off 0x0004 */ unsigned long StackLimit; /* off 0x0008 */ unsigned long KernelStack; /* off 0x000c */ unsigned long InitialStack; /* off 0x0010 */ unsigned long ActualLimit; }; struct _KERNEL_STACK_CONTROL /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _KTRAP_FRAME* PreviousTrapFrame; /* off 0x0000 */ void* PreviousExceptionList; }; union { /* off 0x0004 */ unsigned long StackControlFlags; struct { /* off 0x0004 */ unsigned long PreviousLargeStack:1 /* start bit 0 */; /* off 0x0004 */ unsigned long PreviousSegmentsPresent:1 /* start bit 1 */; /* off 0x0004 */ unsigned long ExpandCalloutStack:1 /* start bit 2 */; }; }; /* off 0x0008 */ struct _KERNEL_STACK_SEGMENT Previous; }; struct _KSTACK_AREA /* sizeof 00000210 528 */ { union { /* off 0x0000 */ struct _FNSAVE_FORMAT FnArea; /* off 0x0000 */ struct _FXSAVE_FORMAT NpxFrame; }; /* off 0x01e0 */ struct _KERNEL_STACK_CONTROL StackControl; /* off 0x01fc */ unsigned long Cr0NpxState; /* off 0x0200 */ unsigned long Padding[4]; }; struct _PNP_DEVICE_COMPLETION_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY DispatchedList; /* off 0x0008 */ unsigned long DispatchedCount; /* off 0x000c */ struct _LIST_ENTRY CompletedList; /* off 0x0014 */ struct _KSEMAPHORE CompletedSemaphore; /* off 0x0028 */ unsigned long SpinLock; }; struct _PO_DEVICE_NOTIFY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _LIST_ENTRY PowerChildren; /* off 0x0010 */ struct _LIST_ENTRY PowerParents; /* off 0x0018 */ struct _DEVICE_OBJECT* TargetDevice; /* off 0x001c */ unsigned char OrderLevel; /* off 0x0020 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0024 */ unsigned short* DeviceName; /* off 0x0028 */ unsigned short* DriverName; /* off 0x002c */ unsigned long ChildCount; /* off 0x0030 */ unsigned long ActiveChild; /* off 0x0034 */ unsigned long ParentCount; /* off 0x0038 */ unsigned long ActiveParent; }; struct _PO_IRP_QUEUE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _IRP* CurrentIrp; /* off 0x0004 */ struct _IRP* PendingIrpList; }; struct _PO_IRP_MANAGER /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _PO_IRP_QUEUE DeviceIrpQueue; /* off 0x0008 */ struct _PO_IRP_QUEUE SystemIrpQueue; }; struct _DEVICE_NODE /* sizeof 00000188 392 */ { /* off 0x0000 */ struct _DEVICE_NODE* Sibling; /* off 0x0004 */ struct _DEVICE_NODE* Child; /* off 0x0008 */ struct _DEVICE_NODE* Parent; /* off 0x000c */ struct _DEVICE_NODE* LastChild; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ struct _UNICODE_STRING InstancePath; /* off 0x001c */ struct _UNICODE_STRING ServiceName; /* off 0x0024 */ struct _IRP* PendingIrp; /* off 0x0028 */ unsigned long Level; /* off 0x002c */ struct _PO_DEVICE_NOTIFY Notify; /* off 0x0068 */ struct _PO_IRP_MANAGER PoIrpManager; /* off 0x0078 */ enum _PNP_DEVNODE_STATE State; /* off 0x007c */ enum _PNP_DEVNODE_STATE PreviousState; /* off 0x0080 */ enum _PNP_DEVNODE_STATE StateHistory[20]; /* off 0x00d0 */ unsigned long StateHistoryEntry; /* off 0x00d4 */ long CompletionStatus; /* off 0x00d8 */ unsigned long Flags; /* off 0x00dc */ unsigned long UserFlags; /* off 0x00e0 */ unsigned long Problem; /* off 0x00e4 */ struct _CM_RESOURCE_LIST* ResourceList; /* off 0x00e8 */ struct _CM_RESOURCE_LIST* ResourceListTranslated; /* off 0x00ec */ struct _DEVICE_OBJECT* DuplicatePDO; /* off 0x00f0 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x00f4 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x00f8 */ unsigned long BusNumber; /* off 0x00fc */ enum _INTERFACE_TYPE ChildInterfaceType; /* off 0x0100 */ unsigned long ChildBusNumber; /* off 0x0104 */ unsigned short ChildBusTypeIndex; /* off 0x0106 */ unsigned char RemovalPolicy; /* off 0x0107 */ unsigned char HardwareRemovalPolicy; /* off 0x0108 */ struct _LIST_ENTRY TargetDeviceNotify; /* off 0x0110 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0118 */ struct _LIST_ENTRY DeviceTranslatorList; /* off 0x0120 */ unsigned short NoTranslatorMask; /* off 0x0122 */ unsigned short QueryTranslatorMask; /* off 0x0124 */ unsigned short NoArbiterMask; /* off 0x0126 */ unsigned short QueryArbiterMask; /* off 0x0128 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* LegacyDeviceNode; /* off 0x0000 */ struct _DEVICE_RELATIONS* PendingDeviceRelations; /* off 0x0000 */ void* Information; } OverUsed1; /* off 0x012c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_NODE* NextResourceDeviceNode; } OverUsed2; /* off 0x0130 */ struct _CM_RESOURCE_LIST* BootResources; /* off 0x0134 */ struct _CM_RESOURCE_LIST* BootResourcesTranslated; /* off 0x0138 */ unsigned long CapabilityFlags; /* off 0x013c */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ enum PROFILE_STATUS DockStatus; /* off 0x0004 */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ unsigned short* SerialNumber; } DockInfo; /* off 0x014c */ unsigned long DisableableDepends; /* off 0x0150 */ struct _LIST_ENTRY PendedSetInterfaceState; /* off 0x0158 */ struct _LIST_ENTRY LegacyBusListEntry; /* off 0x0160 */ unsigned long DriverUnloadRetryCount; /* off 0x0164 */ struct _DEVICE_NODE* PreviousParent; /* off 0x0168 */ unsigned long DeletedChildren; /* off 0x016c */ unsigned long NumaNodeIndex; /* off 0x0170 */ struct _GUID ContainerID; /* off 0x0180 */ unsigned char OverrideFlags; /* off 0x0181 */ unsigned char RequiresUnloadedDriver; /* off 0x0184 */ struct _PENDING_RELATIONS_LIST_ENTRY* PendingEjectRelations; }; enum _PNP_DEVNODE_STATE { DeviceNodeUnspecified =0x00000300 ,//0 DeviceNodeUninitialized =0x00000301 ,//0 DeviceNodeInitialized =0x00000302 ,//0 DeviceNodeDriversAdded =0x00000303 ,//0 DeviceNodeResourcesAssigned =0x00000304 ,//0 DeviceNodeStartPending =0x00000305 ,//0 DeviceNodeStartCompletion =0x00000306 ,//0 DeviceNodeStartPostWork =0x00000307 ,//0 DeviceNodeStarted =0x00000308 ,//0 DeviceNodeQueryStopped =0x00000309 ,//0 DeviceNodeStopped =0x0000030a ,//0 DeviceNodeRestartCompletion =0x0000030b ,//0 DeviceNodeEnumeratePending =0x0000030c ,//0 DeviceNodeEnumerateCompletion =0x0000030d ,//0 DeviceNodeAwaitingQueuedDeletion =0x0000030e ,//0 DeviceNodeAwaitingQueuedRemoval =0x0000030f ,//0 DeviceNodeQueryRemoved =0x00000310 ,//0 DeviceNodeRemovePendingCloses =0x00000311 ,//0 DeviceNodeRemoved =0x00000312 ,//0 DeviceNodeDeletePendingCloses =0x00000313 ,//0 DeviceNodeDeleted =0x00000314 ,//0 MaxDeviceNodeState =0x00000315 ,//0 }; struct _DEVICE_RELATIONS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ struct _DEVICE_OBJECT* Objects[1]; }; enum PROFILE_STATUS { DOCK_NOTDOCKDEVICE =0x00000000 ,//0 DOCK_QUIESCENT =0x00000001 ,//0 DOCK_ARRIVING =0x00000002 ,//0 DOCK_DEPARTING =0x00000003 ,//0 DOCK_EJECTIRP_COMPLETED =0x00000004 ,//0 }; struct _PENDING_RELATIONS_LIST_ENTRY /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0018 */ struct _PNP_DEVICE_EVENT_ENTRY* DeviceEvent; /* off 0x001c */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x0020 */ struct _RELATION_LIST* RelationsList; /* off 0x0024 */ struct _IRP* EjectIrp; /* off 0x0028 */ enum IRPLOCK Lock; /* off 0x002c */ unsigned long Problem; /* off 0x0030 */ unsigned char ProfileChangingEject; /* off 0x0031 */ unsigned char DisplaySafeRemovalDialog; /* off 0x0034 */ enum _SYSTEM_POWER_STATE LightestSleepState; /* off 0x0038 */ struct DOCK_INTERFACE* DockInterface; }; struct _PLUGPLAY_EVENT_BLOCK /* sizeof 00000044 68 */ { /* off 0x0000 */ struct _GUID EventGuid; /* off 0x0010 */ enum _PLUGPLAY_EVENT_CATEGORY EventCategory; /* off 0x0014 */ unsigned long* Result; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ unsigned long TotalSize; /* off 0x0020 */ void* DeviceObject; /* off 0x0024 */ union /* sizeof 00000020 32 */ { /* off 0x0000 */ struct /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _GUID ClassGuid; /* off 0x0010 */ wchar SymbolicLinkName[1]; } DeviceClass; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceIds[1]; } TargetDevice; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } InstallDevice; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* NotificationStructure; /* off 0x0004 */ wchar DeviceIds[1]; } CustomNotification; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Notification; } ProfileNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long NotificationCode; /* off 0x0004 */ unsigned long NotificationData; } PowerNotification; /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ enum _PNP_VETO_TYPE VetoType; /* off 0x0004 */ wchar DeviceIdVetoNameBuffer[1]; } VetoNotification; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID BlockedDriverGuid; } BlockedDriverNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar ParentId[1]; } InvalidIDNotification; /* off 0x0000 */ struct /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _GUID PowerSettingGuid; /* off 0x0010 */ unsigned long Flags; /* off 0x0014 */ unsigned long SessionId; /* off 0x0018 */ unsigned long DataLength; /* off 0x001c */ unsigned char Data[1]; } PowerSettingNotification; /* off 0x0000 */ struct /* sizeof 00000002 2 */ { /* off 0x0000 */ wchar DeviceId[1]; } PropertyChangeNotification; } u; }; struct _PNP_DEVICE_EVENT_ENTRY /* sizeof 00000064 100 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long Argument; /* off 0x000c */ struct _KEVENT* CallerEvent; /* off 0x0010 */ void( __stdcall *Callback)(void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ enum _PNP_VETO_TYPE* VetoType; /* off 0x001c */ struct _UNICODE_STRING* VetoName; /* off 0x0020 */ struct _PLUGPLAY_EVENT_BLOCK Data; }; enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown =0x00000000 ,//0 PNP_VetoLegacyDevice =0x00000001 ,//0 PNP_VetoPendingClose =0x00000002 ,//0 PNP_VetoWindowsApp =0x00000003 ,//0 PNP_VetoWindowsService =0x00000004 ,//0 PNP_VetoOutstandingOpen =0x00000005 ,//0 PNP_VetoDevice =0x00000006 ,//0 PNP_VetoDriver =0x00000007 ,//0 PNP_VetoIllegalDeviceRequest =0x00000008 ,//0 PNP_VetoInsufficientPower =0x00000009 ,//0 PNP_VetoNonDisableable =0x0000000a ,//0 PNP_VetoLegacyDriver =0x0000000b ,//0 PNP_VetoInsufficientRights =0x0000000c ,//0 }; enum _PLUGPLAY_EVENT_CATEGORY { HardwareProfileChangeEvent =0x00000000 ,//0 TargetDeviceChangeEvent =0x00000001 ,//0 DeviceClassChangeEvent =0x00000002 ,//0 CustomDeviceEvent =0x00000003 ,//0 DeviceInstallEvent =0x00000004 ,//0 DeviceArrivalEvent =0x00000005 ,//0 VetoEvent =0x00000006 ,//0 BlockedDriverEvent =0x00000007 ,//0 InvalidIDEvent =0x00000008 ,//0 DevicePropertyChangeEvent =0x00000009 ,//0 DeviceInstanceRemovalEvent =0x0000000a ,//0 MaxPlugEventCategory =0x0000000b ,//0 }; struct _RELATION_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long TagCount; /* off 0x0008 */ unsigned long FirstLevel; /* off 0x000c */ unsigned long MaxLevel; /* off 0x0010 */ struct _RELATION_LIST_ENTRY* Entries[1]; }; struct _RELATION_LIST_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxCount; /* off 0x0008 */ struct _DEVICE_OBJECT* Devices[1]; }; enum IRPLOCK { IRPLOCK_CANCELABLE =0x00000000 ,//0 IRPLOCK_CANCEL_STARTED =0x00000001 ,//0 IRPLOCK_CANCEL_COMPLETE =0x00000002 ,//0 IRPLOCK_COMPLETED =0x00000003 ,//0 }; struct DOCK_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ unsigned long( __stdcall *ProfileDepartureSetMode)(void*,enum PROFILE_DEPARTURE_STYLE); /* off 0x0014 */ unsigned long( __stdcall *ProfileDepartureUpdate)(void*); }; enum PROFILE_DEPARTURE_STYLE { PDS_UPDATE_DEFAULT =0x00000001 ,//0 PDS_UPDATE_ON_REMOVE =0x00000002 ,//0 PDS_UPDATE_ON_INTERFACE =0x00000003 ,//0 PDS_UPDATE_ON_EJECT =0x00000004 ,//0 }; struct _PNP_ASSIGN_RESOURCES_CONTEXT /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long IncludeFailedDevices; /* off 0x0004 */ unsigned long DeviceCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceList[1]; }; struct _PNP_RESOURCE_REQUEST /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDevice; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ enum _ARBITER_REQUEST_SOURCE AllocationType; /* off 0x000c */ unsigned long Priority; /* off 0x0010 */ unsigned long Position; /* off 0x0014 */ struct _IO_RESOURCE_REQUIREMENTS_LIST* ResourceRequirements; /* off 0x0018 */ void* ReqList; /* off 0x001c */ struct _CM_RESOURCE_LIST* ResourceAssignment; /* off 0x0020 */ struct _CM_RESOURCE_LIST* TranslatedResourceAssignment; /* off 0x0024 */ long Status; }; enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined =0xffffffff ,//-1 ArbiterRequestLegacyReported =0x00000000 ,//0 ArbiterRequestHalReported =0x00000001 ,//0 ArbiterRequestLegacyAssigned =0x00000002 ,//0 ArbiterRequestPnpDetected =0x00000003 ,//0 ArbiterRequestPnpEnumerated =0x00000004 ,//0 }; struct _EXCEPTION_RECORD64 /* sizeof 00000098 152 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned __int64 ExceptionRecord; /* off 0x0010 */ unsigned __int64 ExceptionAddress; /* off 0x0018 */ unsigned long NumberParameters; /* off 0x001c */ unsigned long __unusedAlignment; /* off 0x0020 */ unsigned __int64 ExceptionInformation[15]; }; struct _EXCEPTION_RECORD32 /* sizeof 00000050 80 */ { /* off 0x0000 */ long ExceptionCode; /* off 0x0004 */ unsigned long ExceptionFlags; /* off 0x0008 */ unsigned long ExceptionRecord; /* off 0x000c */ unsigned long ExceptionAddress; /* off 0x0010 */ unsigned long NumberParameters; /* off 0x0014 */ unsigned long ExceptionInformation[15]; }; struct _DBGKM_EXCEPTION64 /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD64 ExceptionRecord; /* off 0x0098 */ unsigned long FirstChance; }; struct _DBGKM_EXCEPTION32 /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD32 ExceptionRecord; /* off 0x0050 */ unsigned long FirstChance; }; struct _DBGKD_LOAD_SYMBOLS64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0008 */ unsigned __int64 BaseOfDll; /* off 0x0010 */ unsigned __int64 ProcessId; /* off 0x0018 */ unsigned long CheckSum; /* off 0x001c */ unsigned long SizeOfImage; /* off 0x0020 */ unsigned char UnloadSymbols; }; struct _DBGKD_LOAD_SYMBOLS32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long PathNameLength; /* off 0x0004 */ unsigned long BaseOfDll; /* off 0x0008 */ unsigned long ProcessId; /* off 0x000c */ unsigned long CheckSum; /* off 0x0010 */ unsigned long SizeOfImage; /* off 0x0014 */ unsigned char UnloadSymbols; }; struct _DBGKD_READ_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesRead; }; struct _DBGKD_READ_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesRead; }; struct _DBGKD_WRITE_MEMORY64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 TargetBaseAddress; /* off 0x0008 */ unsigned long TransferCount; /* off 0x000c */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_MEMORY32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long TargetBaseAddress; /* off 0x0004 */ unsigned long TransferCount; /* off 0x0008 */ unsigned long ActualBytesWritten; }; struct _DBGKD_WRITE_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakPointAddress; /* off 0x0008 */ unsigned long BreakPointHandle; }; struct _DBGKD_WRITE_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointAddress; /* off 0x0004 */ unsigned long BreakPointHandle; }; struct _DBGKD_READ_WRITE_IO64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 IoAddress; /* off 0x0008 */ unsigned long DataSize; /* off 0x000c */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO32 /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long IoAddress; /* off 0x0008 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned __int64 IoAddress; /* off 0x0018 */ unsigned long DataValue; }; struct _DBGKD_READ_WRITE_IO_EXTENDED32 /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long DataSize; /* off 0x0004 */ unsigned long InterfaceType; /* off 0x0008 */ unsigned long BusNumber; /* off 0x000c */ unsigned long AddressSpace; /* off 0x0010 */ unsigned long IoAddress; /* off 0x0014 */ unsigned long DataValue; }; struct _DBGKD_SET_SPECIAL_CALL32 /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SpecialCall; }; struct _DBGKD_SET_SPECIAL_CALL64 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 SpecialCall; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT32 /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; }; struct _DBGKD_SET_INTERNAL_BREAKPOINT64 /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT64 /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 BreakpointAddress; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Calls; /* off 0x0010 */ unsigned long MaxCallsPerPeriod; /* off 0x0014 */ unsigned long MinInstructions; /* off 0x0018 */ unsigned long MaxInstructions; /* off 0x001c */ unsigned long TotalInstructions; }; struct _DBGKD_GET_INTERNAL_BREAKPOINT32 /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long BreakpointAddress; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long Calls; /* off 0x000c */ unsigned long MaxCallsPerPeriod; /* off 0x0010 */ unsigned long MinInstructions; /* off 0x0014 */ unsigned long MaxInstructions; /* off 0x0018 */ unsigned long TotalInstructions; }; struct _DBGKD_GET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Unused; }; struct _DBGKD_SET_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ContextFlags; }; struct _DBGKD_RESTORE_BREAKPOINT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long BreakPointHandle; }; struct _DBGKD_CONTINUE /* sizeof 00000004 4 */ { /* off 0x0000 */ long ContinueStatus; }; struct _X86_DBGKD_CONTROL_SET /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned long Dr7; /* off 0x0008 */ unsigned long CurrentSymbolStart; /* off 0x000c */ unsigned long CurrentSymbolEnd; }; struct _IA64_DBGKD_CONTROL_SET /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned __int64 CurrentSymbolStart; /* off 0x000c */ unsigned __int64 CurrentSymbolEnd; }; struct _AMD64_DBGKD_CONTROL_SET /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long TraceFlag; /* off 0x0004 */ unsigned __int64 Dr7; /* off 0x000c */ unsigned __int64 CurrentSymbolStart; /* off 0x0014 */ unsigned __int64 CurrentSymbolEnd; }; struct _ARM_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _PPC_DBGKD_CONTROL_SET /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Continue; /* off 0x0004 */ unsigned long CurrentSymbolStart; /* off 0x0008 */ unsigned long CurrentSymbolEnd; }; struct _DBGKD_ANY_CONTROL_SET /* sizeof 0000001c 28 */ { union { /* off 0x0000 */ struct _X86_DBGKD_CONTROL_SET X86ControlSet; /* off 0x0000 */ unsigned long AlphaControlSet; /* off 0x0000 */ struct _IA64_DBGKD_CONTROL_SET IA64ControlSet; /* off 0x0000 */ struct _AMD64_DBGKD_CONTROL_SET Amd64ControlSet; /* off 0x0000 */ struct _ARM_DBGKD_CONTROL_SET ArmControlSet; /* off 0x0000 */ struct _PPC_DBGKD_CONTROL_SET PpcControlSet; }; }; struct _DBGKD_CONTINUE2 /* sizeof 00000020 32 */ { /* off 0x0000 */ long ContinueStatus; union { /* off 0x0004 */ struct _X86_DBGKD_CONTROL_SET ControlSet; /* off 0x0004 */ struct _DBGKD_ANY_CONTROL_SET AnyControlSet; }; }; struct _DBGKD_QUERY_SPECIAL_CALLS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NumberOfSpecialCalls; }; struct _DBGKD_GET_VERSION64 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned char ProtocolVersion; /* off 0x0005 */ unsigned char KdSecondaryVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned short MachineType; /* off 0x000a */ unsigned char MaxPacketType; /* off 0x000b */ unsigned char MaxStateChange; /* off 0x000c */ unsigned char MaxManipulate; /* off 0x000d */ unsigned char Simulation; /* off 0x000e */ unsigned short Unused[1]; /* off 0x0010 */ unsigned __int64 KernBase; /* off 0x0018 */ unsigned __int64 PsLoadedModuleList; /* off 0x0020 */ unsigned __int64 DebuggerDataList; }; struct _DBGKD_BREAKPOINTEX /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BreakPointCount; /* off 0x0004 */ long ContinueStatus; }; struct _DBGKD_READ_WRITE_MSR /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Msr; /* off 0x0004 */ unsigned long DataValueLow; /* off 0x0008 */ unsigned long DataValueHigh; }; struct _DBGKD_SEARCH_MEMORY /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned __int64 SearchAddress; /* off 0x0000 */ unsigned __int64 FoundAddress; }; /* off 0x0008 */ unsigned __int64 SearchLength; /* off 0x0010 */ unsigned long PatternLength; }; struct _DBGKD_GET_SET_BUS_DATA /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned long BusDataType; /* off 0x0004 */ unsigned long BusNumber; /* off 0x0008 */ unsigned long SlotNumber; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Length; }; struct _DBGKD_FILL_MEMORY /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned long Length; /* off 0x000c */ unsigned short Flags; /* off 0x000e */ unsigned short PatternLength; }; struct _DBGKD_QUERY_MEMORY /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Address; /* off 0x0008 */ unsigned __int64 Reserved; /* off 0x0010 */ unsigned long AddressSpace; /* off 0x0014 */ unsigned long Flags; }; struct _DBGKD_SWITCH_PARTITION /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Partition; }; struct _DBGKD_MANIPULATE_STATE64 /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x0010 */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO64 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL64 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION64 GetVersion64; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; /* off 0x0000 */ struct _DBGKD_GET_SET_BUS_DATA GetSetBusData; /* off 0x0000 */ struct _DBGKD_FILL_MEMORY FillMemory; /* off 0x0000 */ struct _DBGKD_QUERY_MEMORY QueryMemory; /* off 0x0000 */ struct _DBGKD_SWITCH_PARTITION SwitchPartition; } u; }; struct _DBGKD_GET_VERSION32 /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned short MajorVersion; /* off 0x0002 */ unsigned short MinorVersion; /* off 0x0004 */ unsigned short ProtocolVersion; /* off 0x0006 */ unsigned short Flags; /* off 0x0008 */ unsigned long KernBase; /* off 0x000c */ unsigned long PsLoadedModuleList; /* off 0x0010 */ unsigned short MachineType; /* off 0x0012 */ unsigned short ThCallbackStack; /* off 0x0014 */ unsigned short NextCallback; /* off 0x0016 */ unsigned short FramePointer; /* off 0x0018 */ unsigned long KiCallUserMode; /* off 0x001c */ unsigned long KeUserCallbackDispatcher; /* off 0x0020 */ unsigned long BreakpointWithStatus; /* off 0x0024 */ unsigned long DebuggerDataList; }; struct _DBGKD_MANIPULATE_STATE32 /* sizeof 00000034 52 */ { /* off 0x0000 */ unsigned long ApiNumber; /* off 0x0004 */ unsigned short ProcessorLevel; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ long ReturnStatus; /* off 0x000c */ union /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _DBGKD_READ_MEMORY32 ReadMemory; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY32 WriteMemory; /* off 0x0000 */ struct _DBGKD_READ_MEMORY64 ReadMemory64; /* off 0x0000 */ struct _DBGKD_WRITE_MEMORY64 WriteMemory64; /* off 0x0000 */ struct _DBGKD_GET_CONTEXT GetContext; /* off 0x0000 */ struct _DBGKD_SET_CONTEXT SetContext; /* off 0x0000 */ struct _DBGKD_WRITE_BREAKPOINT32 WriteBreakPoint; /* off 0x0000 */ struct _DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint; /* off 0x0000 */ struct _DBGKD_CONTINUE Continue; /* off 0x0000 */ struct _DBGKD_CONTINUE2 Continue2; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO32 ReadWriteIo; /* off 0x0000 */ struct _DBGKD_READ_WRITE_IO_EXTENDED32 ReadWriteIoExtended; /* off 0x0000 */ struct _DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls; /* off 0x0000 */ struct _DBGKD_SET_SPECIAL_CALL32 SetSpecialCall; /* off 0x0000 */ struct _DBGKD_SET_INTERNAL_BREAKPOINT32 SetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_INTERNAL_BREAKPOINT32 GetInternalBreakpoint; /* off 0x0000 */ struct _DBGKD_GET_VERSION32 GetVersion32; /* off 0x0000 */ struct _DBGKD_BREAKPOINTEX BreakPointEx; /* off 0x0000 */ struct _DBGKD_READ_WRITE_MSR ReadWriteMsr; /* off 0x0000 */ struct _DBGKD_SEARCH_MEMORY SearchMemory; } u; }; struct _POP_CPU_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long Eax; /* off 0x0004 */ unsigned long Ebx; /* off 0x0008 */ unsigned long Ecx; /* off 0x000c */ unsigned long Edx; }; struct _VOLUME_CACHE_MAP /* sizeof 00000020 32 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteCode; /* off 0x0004 */ unsigned long UseCount; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ struct _LIST_ENTRY VolumeCacheMapLinks; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long PagesQueuedToDisk; }; struct _KGUARDED_MUTEX /* sizeof 00000020 32 */ { /* off 0x0000 */ long Count; /* off 0x0004 */ struct _KTHREAD* Owner; /* off 0x0008 */ unsigned long Contention; /* off 0x000c */ struct _KGATE Gate; union { struct { /* off 0x001c */ short KernelApcDisable; /* off 0x001e */ short SpecialApcDisable; }; /* off 0x001c */ unsigned long CombinedApcDisable; }; }; struct _PRIVATE_CACHE_MAP_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long DontUse:16 /* start bit 0 */; /* off 0x0000 */ unsigned long ReadAheadActive:1 /* start bit 16 */; /* off 0x0000 */ unsigned long ReadAheadEnabled:1 /* start bit 17 */; /* off 0x0000 */ unsigned long PagePriority:3 /* start bit 18 */; /* off 0x0000 */ unsigned long Available:11 /* start bit 21 */; }; struct _PRIVATE_CACHE_MAP /* sizeof 00000058 88 */ { union { /* off 0x0000 */ short NodeTypeCode; /* off 0x0000 */ struct _PRIVATE_CACHE_MAP_FLAGS Flags; /* off 0x0000 */ unsigned long UlongFlags; }; /* off 0x0004 */ unsigned long ReadAheadMask; /* off 0x0008 */ struct _FILE_OBJECT* FileObject; /* off 0x0010 */ union _LARGE_INTEGER FileOffset1; /* off 0x0018 */ union _LARGE_INTEGER BeyondLastByte1; /* off 0x0020 */ union _LARGE_INTEGER FileOffset2; /* off 0x0028 */ union _LARGE_INTEGER BeyondLastByte2; /* off 0x0030 */ unsigned long SequentialReadCount; /* off 0x0034 */ unsigned long ReadAheadLength; /* off 0x0038 */ union _LARGE_INTEGER ReadAheadOffset; /* off 0x0040 */ union _LARGE_INTEGER ReadAheadBeyondLastByte; /* off 0x0048 */ unsigned long ReadAheadSpinLock; /* off 0x004c */ struct _LIST_ENTRY PrivateLinks; /* off 0x0054 */ void* ReadAheadWorkItem; }; struct _SHARED_CACHE_MAP /* sizeof 00000160 352 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ unsigned long OpenCount; /* off 0x0008 */ union _LARGE_INTEGER FileSize; /* off 0x0010 */ struct _LIST_ENTRY BcbList; /* off 0x0018 */ union _LARGE_INTEGER SectionSize; /* off 0x0020 */ union _LARGE_INTEGER ValidDataLength; /* off 0x0028 */ union _LARGE_INTEGER ValidDataGoal; /* off 0x0030 */ struct _VACB* InitialVacbs[4]; /* off 0x0040 */ struct _VACB** Vacbs; /* off 0x0044 */ struct _EX_FAST_REF FileObjectFastRef; /* off 0x0048 */ struct _EX_PUSH_LOCK VacbLock; /* off 0x004c */ unsigned long DirtyPages; /* off 0x0050 */ struct _LIST_ENTRY LoggedStreamLinks; /* off 0x0058 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0060 */ unsigned long Flags; /* off 0x0064 */ long Status; /* off 0x0068 */ struct _MBCB* Mbcb; /* off 0x006c */ void* Section; /* off 0x0070 */ struct _KEVENT* CreateEvent; /* off 0x0074 */ struct _KEVENT* WaitOnActiveCount; /* off 0x0078 */ unsigned long PagesToWrite; /* off 0x0080 */ __int64 BeyondLastFlush; /* off 0x0088 */ struct _CACHE_MANAGER_CALLBACKS* Callbacks; /* off 0x008c */ void* LazyWriteContext; /* off 0x0090 */ struct _LIST_ENTRY PrivateList; /* off 0x0098 */ void* LogHandle; /* off 0x009c */ void( __stdcall *FlushToLsnRoutine)(void*,union _LARGE_INTEGER); /* off 0x00a0 */ unsigned long DirtyPageThreshold; /* off 0x00a4 */ unsigned long LazyWritePassCount; /* off 0x00a8 */ struct _CACHE_UNINITIALIZE_EVENT* UninitializeEvent; /* off 0x00ac */ struct _KGUARDED_MUTEX BcbLock; /* off 0x00d0 */ union _LARGE_INTEGER LastUnmapBehindOffset; /* off 0x00d8 */ struct _KEVENT Event; /* off 0x00e8 */ union _LARGE_INTEGER HighWaterMappingOffset; /* off 0x00f0 */ struct _PRIVATE_CACHE_MAP PrivateCacheMap; /* off 0x0148 */ void* WriteBehindWorkQueueEntry; /* off 0x014c */ struct _VOLUME_CACHE_MAP* VolumeCacheMap; /* off 0x0150 */ unsigned long ProcImagePathHash; /* off 0x0154 */ unsigned long WritesInProgress; /* off 0x0158 */ unsigned long PipelinedReadAheadSize; }; struct _VACB /* sizeof 00000020 32 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ struct _SHARED_CACHE_MAP* SharedCacheMap; /* off 0x0008 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ union _LARGE_INTEGER FileOffset; /* off 0x0000 */ unsigned short ActiveCount; } Overlay; /* off 0x0010 */ struct _LIST_ENTRY Links; /* off 0x0018 */ struct _VACB_ARRAY_HEADER* ArrayHead; }; struct _VACB_ARRAY_HEADER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long VacbArrayIndex; /* off 0x0004 */ unsigned long MappingCount; /* off 0x0008 */ unsigned long HighestMappedIndex; /* off 0x000c */ unsigned long Reserved; }; struct _BITMAP_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ __int64 BasePage; /* off 0x0010 */ unsigned long FirstDirtyPage; /* off 0x0014 */ unsigned long LastDirtyPage; /* off 0x0018 */ unsigned long DirtyPages; /* off 0x001c */ unsigned long* Bitmap; }; struct _MBCB /* sizeof 00000088 136 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeIsInZone; /* off 0x0004 */ unsigned long PagesToWrite; /* off 0x0008 */ unsigned long DirtyPages; /* off 0x000c */ unsigned long Reserved; /* off 0x0010 */ struct _LIST_ENTRY BitmapRanges; /* off 0x0018 */ __int64 ResumeWritePage; /* off 0x0020 */ __int64 MostRecentlyDirtiedPage; /* off 0x0028 */ struct _BITMAP_RANGE BitmapRange1; /* off 0x0048 */ struct _BITMAP_RANGE BitmapRange2; /* off 0x0068 */ struct _BITMAP_RANGE BitmapRange3; }; struct _CACHE_MANAGER_CALLBACKS /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned char( __stdcall *AcquireForLazyWrite)(void*,unsigned char); /* off 0x0004 */ void( __stdcall *ReleaseFromLazyWrite)(void*); /* off 0x0008 */ unsigned char( __stdcall *AcquireForReadAhead)(void*,unsigned char); /* off 0x000c */ void( __stdcall *ReleaseFromReadAhead)(void*); }; struct _CACHE_UNINITIALIZE_EVENT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _CACHE_UNINITIALIZE_EVENT* Next; /* off 0x0004 */ struct _KEVENT Event; }; struct _WORK_QUEUE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY WorkQueueLinks; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _FILE_OBJECT* FileObject; } Read; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _SHARED_CACHE_MAP* SharedCacheMap; } Write; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _KEVENT* Event; } Event; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Reason; } Notification; } Parameters; /* off 0x000c */ unsigned char Function; }; struct VACB_LEVEL_ALLOCATION_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY VacbLevelList; /* off 0x0008 */ void* VacbLevelWithBcbListHeads; /* off 0x000c */ unsigned long VacbLevelsAllocated; }; struct _VACB_LEVEL_REFERENCE /* sizeof 00000008 8 */ { /* off 0x0000 */ long Reference; /* off 0x0004 */ long SpecialReference; }; struct _HEAP_LIST_LOOKUP /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _HEAP_LIST_LOOKUP* ExtendedLookup; /* off 0x0004 */ unsigned long ArraySize; /* off 0x0008 */ unsigned long ExtraItem; /* off 0x000c */ unsigned long ItemCount; /* off 0x0010 */ unsigned long OutOfRangeItems; /* off 0x0014 */ unsigned long BaseIndex; /* off 0x0018 */ struct _LIST_ENTRY* ListHead; /* off 0x001c */ unsigned long* ListsInUseUlong; /* off 0x0020 */ struct _LIST_ENTRY** ListHints; }; struct _HEAP_ENTRY /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; struct _HEAP_COUNTERS /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long TotalMemoryReserved; /* off 0x0004 */ unsigned long TotalMemoryCommitted; /* off 0x0008 */ unsigned long TotalMemoryLargeUCR; /* off 0x000c */ unsigned long TotalSizeInVirtualBlocks; /* off 0x0010 */ unsigned long TotalSegments; /* off 0x0014 */ unsigned long TotalUCRs; /* off 0x0018 */ unsigned long CommittOps; /* off 0x001c */ unsigned long DeCommitOps; /* off 0x0020 */ unsigned long LockAcquires; /* off 0x0024 */ unsigned long LockCollisions; /* off 0x0028 */ unsigned long CommitRate; /* off 0x002c */ unsigned long DecommittRate; /* off 0x0030 */ unsigned long CommitFailures; /* off 0x0034 */ unsigned long InBlockCommitFailures; /* off 0x0038 */ unsigned long CompactHeapCalls; /* off 0x003c */ unsigned long CompactedUCRs; /* off 0x0040 */ unsigned long AllocAndFreeOps; /* off 0x0044 */ unsigned long InBlockDeccommits; /* off 0x0048 */ unsigned long InBlockDeccomitSize; /* off 0x004c */ unsigned long HighWatermarkSize; /* off 0x0050 */ unsigned long LastPolledSize; }; struct _HEAP_TUNING_PARAMETERS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long CommittThresholdShift; /* off 0x0004 */ unsigned long MaxPreCommittThreshold; }; struct _HEAP /* sizeof 00000138 312 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; /* off 0x0040 */ unsigned long Flags; /* off 0x0044 */ unsigned long ForceFlags; /* off 0x0048 */ unsigned long CompatibilityFlags; /* off 0x004c */ unsigned long EncodeFlagMask; /* off 0x0050 */ struct _HEAP_ENTRY Encoding; /* off 0x0058 */ unsigned long PointerKey; /* off 0x005c */ unsigned long Interceptor; /* off 0x0060 */ unsigned long VirtualMemoryThreshold; /* off 0x0064 */ unsigned long Signature; /* off 0x0068 */ unsigned long SegmentReserve; /* off 0x006c */ unsigned long SegmentCommit; /* off 0x0070 */ unsigned long DeCommitFreeBlockThreshold; /* off 0x0074 */ unsigned long DeCommitTotalFreeThreshold; /* off 0x0078 */ unsigned long TotalFreeSize; /* off 0x007c */ unsigned long MaximumAllocationSize; /* off 0x0080 */ unsigned short ProcessHeapsListIndex; /* off 0x0082 */ unsigned short HeaderValidateLength; /* off 0x0084 */ void* HeaderValidateCopy; /* off 0x0088 */ unsigned short NextAvailableTagIndex; /* off 0x008a */ unsigned short MaximumTagIndex; /* off 0x008c */ struct _HEAP_TAG_ENTRY* TagEntries; /* off 0x0090 */ struct _LIST_ENTRY UCRList; /* off 0x0098 */ unsigned long AlignRound; /* off 0x009c */ unsigned long AlignMask; /* off 0x00a0 */ struct _LIST_ENTRY VirtualAllocdBlocks; /* off 0x00a8 */ struct _LIST_ENTRY SegmentList; /* off 0x00b0 */ unsigned short AllocatorBackTraceIndex; /* off 0x00b4 */ unsigned long NonDedicatedListLength; /* off 0x00b8 */ void* BlocksIndex; /* off 0x00bc */ void* UCRIndex; /* off 0x00c0 */ struct _HEAP_PSEUDO_TAG_ENTRY* PseudoTagEntries; /* off 0x00c4 */ struct _LIST_ENTRY FreeLists; /* off 0x00cc */ struct _HEAP_LOCK* LockVariable; /* off 0x00d0 */ long( __stdcall *CommitRoutine)(void*,void**,unsigned long*); /* off 0x00d4 */ void* FrontEndHeap; /* off 0x00d8 */ unsigned short FrontHeapLockCount; /* off 0x00da */ unsigned char FrontEndHeapType; /* off 0x00dc */ struct _HEAP_COUNTERS Counters; /* off 0x0130 */ struct _HEAP_TUNING_PARAMETERS TuningParameters; }; struct _HEAP_TAG_ENTRY /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; /* off 0x000c */ unsigned short TagIndex; /* off 0x000e */ unsigned short CreatorBackTraceIndex; /* off 0x0010 */ wchar TagName[24]; }; struct _HEAP_PSEUDO_TAG_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Allocs; /* off 0x0004 */ unsigned long Frees; /* off 0x0008 */ unsigned long Size; }; struct _HEAP_LOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _RTL_CRITICAL_SECTION CriticalSection; } Lock; }; struct _HEAP_SEGMENT /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _HEAP_ENTRY Entry; /* off 0x0008 */ unsigned long SegmentSignature; /* off 0x000c */ unsigned long SegmentFlags; /* off 0x0010 */ struct _LIST_ENTRY SegmentListEntry; /* off 0x0018 */ struct _HEAP* Heap; /* off 0x001c */ void* BaseAddress; /* off 0x0020 */ unsigned long NumberOfPages; /* off 0x0024 */ struct _HEAP_ENTRY* FirstEntry; /* off 0x0028 */ struct _HEAP_ENTRY* LastValidEntry; /* off 0x002c */ unsigned long NumberOfUnCommittedPages; /* off 0x0030 */ unsigned long NumberOfUnCommittedRanges; /* off 0x0034 */ unsigned short SegmentAllocatorBackTraceIndex; /* off 0x0036 */ unsigned short Reserved; /* off 0x0038 */ struct _LIST_ENTRY UCRSegmentList; }; struct _HEAP_FREE_ENTRY /* sizeof 00000010 16 */ { union { struct { /* off 0x0000 */ unsigned short Size; union { struct { /* off 0x0002 */ unsigned char Flags; /* off 0x0003 */ unsigned char SmallTagIndex; }; struct { /* off 0x0000 */ void* SubSegmentCode; union { struct { /* off 0x0004 */ unsigned short PreviousSize; union { /* off 0x0006 */ unsigned char SegmentOffset; struct { /* off 0x0006 */ unsigned char LFHFlags; union { struct { /* off 0x0007 */ unsigned char UnusedBytes; }; struct { /* off 0x0000 */ unsigned short FunctionIndex; }; struct { /* off 0x0002 */ unsigned short ContextValue; }; }; }; struct { /* off 0x0000 */ unsigned long InterceptorValue; }; struct { /* off 0x0004 */ unsigned short UnusedBytesLength; }; struct { /* off 0x0006 */ unsigned char EntryOffset; }; struct { /* off 0x0007 */ unsigned char ExtendedBlockSignature; }; struct { /* off 0x0000 */ unsigned long Code1; }; struct { /* off 0x0004 */ unsigned short Code2; }; }; }; struct { /* off 0x0006 */ unsigned char Code3; }; }; }; struct { /* off 0x0007 */ unsigned char Code4; }; struct { }; }; /* off 0x0000 */ unsigned __int64 AgregateCode; }; }; /* off 0x0008 */ struct _LIST_ENTRY FreeList; }; enum _HEAP_FAILURE_TYPE { heap_failure_internal =0x00000000 ,//0 heap_failure_unknown =0x00000001 ,//0 heap_failure_generic =0x00000002 ,//0 heap_failure_entry_corruption =0x00000003 ,//0 heap_failure_multiple_entries_corruption =0x00000004 ,//0 heap_failure_virtual_block_corruption =0x00000005 ,//0 heap_failure_buffer_overrun =0x00000006 ,//0 heap_failure_buffer_underrun =0x00000007 ,//0 heap_failure_block_not_busy =0x00000008 ,//0 heap_failure_invalid_argument =0x00000009 ,//0 heap_failure_usage_after_free =0x0000000a ,//0 heap_failure_cross_heap_operation =0x0000000b ,//0 heap_failure_freelists_corruption =0x0000000c ,//0 heap_failure_listentry_corruption =0x0000000d ,//0 }; struct _LDR_DATA_TABLE_ENTRY /* sizeof 00000078 120 */ { /* off 0x0000 */ struct _LIST_ENTRY InLoadOrderLinks; /* off 0x0008 */ struct _LIST_ENTRY InMemoryOrderLinks; /* off 0x0010 */ struct _LIST_ENTRY InInitializationOrderLinks; /* off 0x0018 */ void* DllBase; /* off 0x001c */ void* EntryPoint; /* off 0x0020 */ unsigned long SizeOfImage; /* off 0x0024 */ struct _UNICODE_STRING FullDllName; /* off 0x002c */ struct _UNICODE_STRING BaseDllName; /* off 0x0034 */ unsigned long Flags; /* off 0x0038 */ unsigned short LoadCount; /* off 0x003a */ unsigned short TlsIndex; union { /* off 0x003c */ struct _LIST_ENTRY HashLinks; struct { /* off 0x003c */ void* SectionPointer; /* off 0x0040 */ unsigned long CheckSum; }; }; union { /* off 0x0044 */ unsigned long TimeDateStamp; /* off 0x0044 */ void* LoadedImports; }; /* off 0x0048 */ struct _ACTIVATION_CONTEXT* EntryPointActivationContext; /* off 0x004c */ void* PatchInformation; /* off 0x0050 */ struct _LIST_ENTRY ForwarderLinks; /* off 0x0058 */ struct _LIST_ENTRY ServiceTagLinks; /* off 0x0060 */ struct _LIST_ENTRY StaticLinks; /* off 0x0068 */ void* ContextInformation; /* off 0x006c */ unsigned long OriginalBase; /* off 0x0070 */ union _LARGE_INTEGER LoadTime; }; struct _INTERLOCK_SEQ /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short Depth; /* off 0x0002 */ unsigned short FreeEntryOffset; }; struct { /* off 0x0000 */ unsigned long OffsetAndDepth; /* off 0x0004 */ unsigned long Sequence; }; /* off 0x0000 */ __int64 Exchg; }; }; struct _HEAP_SUBSEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _HEAP_LOCAL_SEGMENT_INFO* LocalInfo; /* off 0x0004 */ struct _HEAP_USERDATA_HEADER* UserBlocks; /* off 0x0008 */ struct _INTERLOCK_SEQ AggregateExchg; union { struct { /* off 0x0010 */ unsigned short BlockSize; /* off 0x0012 */ unsigned short Flags; /* off 0x0014 */ unsigned short BlockCount; /* off 0x0016 */ unsigned char SizeIndex; /* off 0x0017 */ unsigned char AffinityIndex; }; struct { /* off 0x0010 */ unsigned long Alignment[2]; }; }; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x001c */ unsigned long Lock; }; struct _HEAP_LOCAL_SEGMENT_INFO /* sizeof 00000000 0 */ { }; struct _HEAP_USERDATA_HEADER /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SFreeListEntry; /* off 0x0000 */ struct _HEAP_SUBSEGMENT* SubSegment; }; /* off 0x0004 */ void* Reserved; /* off 0x0008 */ unsigned long SizeIndex; /* off 0x000c */ unsigned long Signature; }; struct _PORT_MESSAGE /* sizeof 00000018 24 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short DataLength; /* off 0x0002 */ short TotalLength; } s1; /* off 0x0000 */ unsigned long Length; } u1; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short DataInfoOffset; } s2; /* off 0x0000 */ unsigned long ZeroInit; } u2; union { /* off 0x0008 */ struct _CLIENT_ID ClientId; /* off 0x0008 */ double DoNotUseThisField; }; /* off 0x0010 */ unsigned long MessageId; union { /* off 0x0014 */ unsigned long ClientViewSize; /* off 0x0014 */ unsigned long CallbackId; }; }; struct _ALPC_MESSAGE_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long AllocatedAttributes; /* off 0x0004 */ unsigned long ValidAttributes; }; struct _ALPC_HANDLE_ENTRY /* sizeof 00000004 4 */ { /* off 0x0000 */ void* Object; }; struct _BLOB_TYPE /* sizeof 00000024 36 */ { /* off 0x0000 */ enum _BLOB_ID ResourceId; /* off 0x0004 */ unsigned long PoolTag; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long CreatedObjects; /* off 0x0010 */ unsigned long DeletedObjects; /* off 0x0014 */ void( __stdcall *DeleteProcedure)(void*); /* off 0x0018 */ long( __stdcall *DestroyProcedure)(void*); /* off 0x001c */ unsigned long UsualSize; /* off 0x0020 */ unsigned long LookasideIndex; }; enum _BLOB_ID { BLOB_TYPE_UNKNOWN =0x00000000 ,//0 BLOB_TYPE_CONNECTION_INFO =0x00000001 ,//0 BLOB_TYPE_MESSAGE =0x00000002 ,//0 BLOB_TYPE_SECURITY_CONTEXT =0x00000003 ,//0 BLOB_TYPE_SECTION =0x00000004 ,//0 BLOB_TYPE_REGION =0x00000005 ,//0 BLOB_TYPE_VIEW =0x00000006 ,//0 BLOB_TYPE_RESERVE =0x00000007 ,//0 BLOB_TYPE_DIRECT_TRANSFER =0x00000008 ,//0 BLOB_TYPE_HANDLE_DATA =0x00000009 ,//0 BLOB_TYPE_MAX_ID =0x0000000a ,//0 }; struct _BLOB /* sizeof 00000018 24 */ { union { /* off 0x0000 */ struct _LIST_ENTRY ResourceList; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeListEntry; }; /* off 0x0008 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ struct /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char ReferenceCache:1 /* start bit 0 */; /* off 0x0000 */ unsigned char Lookaside:1 /* start bit 1 */; /* off 0x0000 */ unsigned char Initializing:1 /* start bit 2 */; /* off 0x0000 */ unsigned char Deleted:1 /* start bit 3 */; } s1; /* off 0x0000 */ unsigned char Flags; } u1; /* off 0x0009 */ unsigned char ResourceId; /* off 0x000a */ short CachedReferences; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ struct _EX_PUSH_LOCK Lock; /* off 0x0014 */ unsigned long Pad; }; struct _KALPC_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ void* SectionObject; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x000c */ void* SectionHandle; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ struct _ALPC_PORT* OwnerPort; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Internal:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Secure:1 /* start bit 1 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfRegions; /* off 0x0020 */ struct _LIST_ENTRY RegionListHead; }; struct _ALPC_HANDLE_TABLE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ALPC_HANDLE_ENTRY* Handles; /* off 0x0004 */ unsigned long TotalHandles; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ struct _EX_PUSH_LOCK Lock; }; struct _TOKEN_SOURCE /* sizeof 00000010 16 */ { /* off 0x0000 */ char SourceName[8]; /* off 0x0008 */ struct _LUID SourceIdentifier; }; struct _TOKEN_CONTROL /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LUID TokenId; /* off 0x0008 */ struct _LUID AuthenticationId; /* off 0x0010 */ struct _LUID ModifiedId; /* off 0x0018 */ struct _TOKEN_SOURCE TokenSource; }; struct _SECURITY_CLIENT_CONTEXT /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x000c */ void* ClientToken; /* off 0x0010 */ unsigned char DirectlyAccessClientToken; /* off 0x0011 */ unsigned char DirectAccessEffectiveOnly; /* off 0x0012 */ unsigned char ServerIsRemote; /* off 0x0014 */ struct _TOKEN_CONTROL ClientTokenControl; }; struct _ALPC_PORT_ATTRIBUTES /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x0010 */ unsigned long MaxMessageLength; /* off 0x0014 */ unsigned long MemoryBandwidth; /* off 0x0018 */ unsigned long MaxPoolUsage; /* off 0x001c */ unsigned long MaxSectionSize; /* off 0x0020 */ unsigned long MaxViewSize; /* off 0x0024 */ unsigned long MaxTotalSectionSize; /* off 0x0028 */ unsigned long DupObjectTypes; }; struct _ALPC_PORT /* sizeof 000000fc 252 */ { /* off 0x0000 */ struct _LIST_ENTRY PortListEntry; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _EPROCESS* OwnerProcess; /* off 0x0010 */ void* CompletionPort; /* off 0x0014 */ void* CompletionKey; /* off 0x0018 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* CompletionPacketLookaside; /* off 0x001c */ void* PortContext; /* off 0x0020 */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x005c */ struct _LIST_ENTRY MainQueue; /* off 0x0064 */ struct _LIST_ENTRY PendingQueue; /* off 0x006c */ struct _LIST_ENTRY LargeMessageQueue; /* off 0x0074 */ struct _LIST_ENTRY WaitQueue; union { /* off 0x007c */ struct _KSEMAPHORE* Semaphore; /* off 0x007c */ struct _KEVENT* DummyEvent; }; /* off 0x0080 */ struct _ALPC_PORT_ATTRIBUTES PortAttributes; /* off 0x00ac */ struct _EX_PUSH_LOCK Lock; /* off 0x00b0 */ struct _EX_PUSH_LOCK ResourceListLock; /* off 0x00b4 */ struct _LIST_ENTRY ResourceListHead; /* off 0x00bc */ struct _ALPC_COMPLETION_LIST* CompletionList; /* off 0x00c0 */ struct _ALPC_MESSAGE_ZONE* MessageZone; /* off 0x00c4 */ struct _CALLBACK_OBJECT* CallbackObject; /* off 0x00c8 */ void* CallbackContext; /* off 0x00cc */ struct _LIST_ENTRY CanceledQueue; /* off 0x00d4 */ long SequenceNo; /* off 0x00d8 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Type:2 /* start bit 1 */; /* off 0x0000 */ unsigned long ConnectionPending:1 /* start bit 3 */; /* off 0x0000 */ unsigned long ConnectionRefused:1 /* start bit 4 */; /* off 0x0000 */ unsigned long Disconnected:1 /* start bit 5 */; /* off 0x0000 */ unsigned long Closed:1 /* start bit 6 */; /* off 0x0000 */ unsigned long NoFlushOnClose:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReturnExtendedInfo:1 /* start bit 8 */; /* off 0x0000 */ unsigned long Waitable:1 /* start bit 9 */; /* off 0x0000 */ unsigned long DynamicSecurity:1 /* start bit 10 */; /* off 0x0000 */ unsigned long Wow64CompletionList:1 /* start bit 11 */; /* off 0x0000 */ unsigned long Lpc:1 /* start bit 12 */; /* off 0x0000 */ unsigned long LpcToLpc:1 /* start bit 13 */; /* off 0x0000 */ unsigned long HasCompletionList:1 /* start bit 14 */; /* off 0x0000 */ unsigned long HadCompletionList:1 /* start bit 15 */; /* off 0x0000 */ unsigned long EnableCompletionList:1 /* start bit 16 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x00dc */ struct _ALPC_PORT* TargetQueuePort; /* off 0x00e0 */ struct _ALPC_PORT* TargetSequencePort; /* off 0x00e4 */ struct _KALPC_MESSAGE* CachedMessage; /* off 0x00e8 */ unsigned long MainQueueLength; /* off 0x00ec */ unsigned long PendingQueueLength; /* off 0x00f0 */ unsigned long LargeMessageQueueLength; /* off 0x00f4 */ unsigned long CanceledQueueLength; /* off 0x00f8 */ unsigned long WaitQueueLength; }; struct _ALPC_COMMUNICATION_INFO /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ALPC_PORT* ConnectionPort; /* off 0x0004 */ struct _ALPC_PORT* ServerCommunicationPort; /* off 0x0008 */ struct _ALPC_PORT* ClientCommunicationPort; /* off 0x000c */ struct _LIST_ENTRY CommunicationList; /* off 0x0014 */ struct _ALPC_HANDLE_TABLE HandleTable; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY ListEntry; /* off 0x0004 */ struct _IO_MINI_COMPLETION_PACKET_USER* Packet; /* off 0x0008 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE* Lookaside; }; struct _ALPC_COMPLETION_PACKET_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ unsigned long Lock; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ unsigned long ActiveCount; /* off 0x000c */ unsigned long PendingNullCount; /* off 0x0010 */ unsigned long PendingCheckCompletionListCount; /* off 0x0014 */ unsigned long PendingDelete; /* off 0x0018 */ struct _SINGLE_LIST_ENTRY FreeListHead; /* off 0x001c */ void* CompletionPort; /* off 0x0020 */ void* CompletionKey; /* off 0x0024 */ struct _ALPC_COMPLETION_PACKET_LOOKASIDE_ENTRY Entry[1]; }; struct _IO_MINI_COMPLETION_PACKET_USER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long PacketType; /* off 0x000c */ void* KeyContext; /* off 0x0010 */ void* ApcContext; /* off 0x0014 */ long IoStatus; /* off 0x0018 */ unsigned long IoStatusInformation; /* off 0x001c */ void( __stdcall *MiniPacketCallback)(struct _IO_MINI_COMPLETION_PACKET_USER*,void*); /* off 0x0020 */ void* Context; /* off 0x0024 */ unsigned char Allocated; }; struct _ALPC_COMPLETION_LIST /* sizeof 00000054 84 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _EPROCESS* OwnerProcess; /* off 0x000c */ struct _MDL* Mdl; /* off 0x0010 */ void* UserVa; /* off 0x0014 */ void* UserLimit; /* off 0x0018 */ void* DataUserVa; /* off 0x001c */ void* SystemVa; /* off 0x0020 */ unsigned long TotalSize; /* off 0x0024 */ struct _ALPC_COMPLETION_LIST_HEADER* Header; /* off 0x0028 */ void* List; /* off 0x002c */ unsigned long ListSize; /* off 0x0030 */ void* Bitmap; /* off 0x0034 */ unsigned long BitmapSize; /* off 0x0038 */ void* Data; /* off 0x003c */ unsigned long DataSize; /* off 0x0040 */ unsigned long BitmapLimit; /* off 0x0044 */ unsigned long BitmapNextHint; /* off 0x0048 */ unsigned long ConcurrencyCount; /* off 0x004c */ unsigned long AttributeFlags; /* off 0x0050 */ unsigned long AttributeSize; }; struct _ALPC_COMPLETION_LIST_STATE /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 Head:24 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 Tail:24 /* start bit 24 */; /* off 0x0000 */ unsigned __int64 ActiveThreadCount:16 /* start bit 48 */; } s1; /* off 0x0000 */ unsigned __int64 Value; } u1; }; struct _RTL_SRWLOCK /* sizeof 00000004 4 */ { union { struct { /* off 0x0000 */ unsigned long Locked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Waiting:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Waking:1 /* start bit 2 */; /* off 0x0000 */ unsigned long MultipleShared:1 /* start bit 3 */; /* off 0x0000 */ unsigned long Shared:28 /* start bit 4 */; }; /* off 0x0000 */ unsigned long Value; /* off 0x0000 */ void* Ptr; }; }; struct _ALPC_COMPLETION_LIST_HEADER /* sizeof 00000300 768 */ { /* off 0x0000 */ unsigned __int64 StartMagic; /* off 0x0008 */ unsigned long TotalSize; /* off 0x000c */ unsigned long ListOffset; /* off 0x0010 */ unsigned long ListSize; /* off 0x0014 */ unsigned long BitmapOffset; /* off 0x0018 */ unsigned long BitmapSize; /* off 0x001c */ unsigned long DataOffset; /* off 0x0020 */ unsigned long DataSize; /* off 0x0024 */ unsigned long AttributeFlags; /* off 0x0028 */ unsigned long AttributeSize; /* off 0x0080 */ struct _ALPC_COMPLETION_LIST_STATE State; /* off 0x0088 */ unsigned long LastMessageId; /* off 0x008c */ unsigned long LastCallbackId; /* off 0x0100 */ unsigned long PostCount; /* off 0x0180 */ unsigned long ReturnCount; /* off 0x0200 */ unsigned long LogSequenceNumber; /* off 0x0280 */ struct _RTL_SRWLOCK UserLock; /* off 0x0288 */ unsigned __int64 EndMagic; }; struct _ALPC_MESSAGE_ZONE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _MDL* Mdl; /* off 0x0004 */ void* UserVa; /* off 0x0008 */ void* UserLimit; /* off 0x000c */ void* SystemVa; /* off 0x0010 */ void* SystemLimit; /* off 0x0014 */ unsigned long Size; }; struct _CALLBACK_OBJECT /* sizeof 00000000 0 */ { }; struct _KALPC_MESSAGE_ATTRIBUTES /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* ClientContext; /* off 0x0004 */ void* ServerContext; /* off 0x0008 */ void* PortContext; /* off 0x000c */ void* CancelPortContext; /* off 0x0010 */ struct _KALPC_SECURITY_DATA* SecurityData; /* off 0x0014 */ struct _KALPC_VIEW* View; /* off 0x0018 */ struct _KALPC_HANDLE_DATA* HandleData; }; struct _KALPC_MESSAGE /* sizeof 00000088 136 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ void* ExtensionBuffer; /* off 0x000c */ unsigned long ExtensionBufferSize; union { /* off 0x0010 */ struct _EPROCESS* QuotaProcess; /* off 0x0010 */ void* QuotaBlock; }; /* off 0x0014 */ long SequenceNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long QueueType:2 /* start bit 0 */; /* off 0x0000 */ unsigned long QueuePortType:4 /* start bit 2 */; /* off 0x0000 */ unsigned long Canceled:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Ready:1 /* start bit 7 */; /* off 0x0000 */ unsigned long ReleaseMessage:1 /* start bit 8 */; /* off 0x0000 */ unsigned long SharedQuota:1 /* start bit 9 */; /* off 0x0000 */ unsigned long ReplyWaitReply:1 /* start bit 10 */; /* off 0x0000 */ unsigned long OwnerPortReference:1 /* start bit 11 */; /* off 0x0000 */ unsigned long ReserveReference:1 /* start bit 12 */; /* off 0x0000 */ unsigned long ReceiverReference:1 /* start bit 13 */; /* off 0x0000 */ unsigned long ViewAttributeRetrieved:1 /* start bit 14 */; /* off 0x0000 */ unsigned long InDispatch:1 /* start bit 15 */; } s1; /* off 0x0000 */ unsigned long State; } u1; /* off 0x001c */ struct _ALPC_PORT* CancelSequencePort; /* off 0x0020 */ struct _ALPC_PORT* CancelQueuePort; /* off 0x0024 */ long CancelSequenceNo; /* off 0x0028 */ struct _LIST_ENTRY CancelListEntry; /* off 0x0030 */ struct _ETHREAD* WaitingThread; /* off 0x0034 */ struct _KALPC_RESERVE* Reserve; /* off 0x0038 */ struct _ALPC_PORT* PortQueue; /* off 0x003c */ struct _ALPC_PORT* OwnerPort; /* off 0x0040 */ struct _KALPC_MESSAGE_ATTRIBUTES MessageAttributes; /* off 0x005c */ void* DataUserVa; /* off 0x0060 */ void* DataSystemVa; /* off 0x0064 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x0068 */ struct _ALPC_PORT* ConnectionPort; /* off 0x006c */ struct _ETHREAD* ServerThread; /* off 0x0070 */ struct _PORT_MESSAGE PortMessage; }; struct _KALPC_RESERVE /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _ALPC_PORT* OwnerPort; /* off 0x0004 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0008 */ void* Handle; /* off 0x000c */ struct _KALPC_MESSAGE* Message; /* off 0x0010 */ long Active; }; struct _KALPC_SECURITY_DATA /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _ALPC_HANDLE_TABLE* HandleTable; /* off 0x0004 */ void* ContextHandle; /* off 0x0008 */ struct _EPROCESS* OwningProcess; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _SECURITY_CLIENT_CONTEXT DynamicSecurity; /* off 0x004c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Revoked:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Impersonated:1 /* start bit 1 */; } s1; } u1; }; struct _KALPC_VIEW /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _LIST_ENTRY ViewListEntry; /* off 0x0008 */ struct _KALPC_REGION* Region; /* off 0x000c */ struct _ALPC_PORT* OwnerPort; /* off 0x0010 */ struct _EPROCESS* OwnerProcess; /* off 0x0014 */ void* Address; /* off 0x0018 */ unsigned long Size; /* off 0x001c */ void* SecureViewHandle; /* off 0x0020 */ void* WriteAccessHandle; /* off 0x0024 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long WriteAccess:1 /* start bit 0 */; /* off 0x0000 */ unsigned long AutoRelease:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ForceUnlink:1 /* start bit 2 */; } s1; } u1; /* off 0x0028 */ unsigned long NumberOfOwnerMessages; /* off 0x002c */ struct _LIST_ENTRY ProcessViewListEntry; }; struct _KALPC_REGION /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY RegionListEntry; /* off 0x0008 */ struct _KALPC_SECTION* Section; /* off 0x000c */ unsigned long Offset; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long ViewSize; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Secure:1 /* start bit 0 */; } s1; } u1; /* off 0x001c */ unsigned long NumberOfViews; /* off 0x0020 */ struct _LIST_ENTRY ViewListHead; /* off 0x0028 */ struct _KALPC_VIEW* ReadOnlyView; /* off 0x002c */ struct _KALPC_VIEW* ReadWriteView; }; struct _KALPC_HANDLE_DATA /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned long ObjectType; /* off 0x0008 */ struct _OB_DUPLICATE_OBJECT_STATE* DuplicateContext; }; struct _OB_DUPLICATE_OBJECT_STATE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _EPROCESS* SourceProcess; /* off 0x0004 */ void* SourceHandle; /* off 0x0008 */ void* Object; /* off 0x000c */ unsigned long TargetAccess; /* off 0x0010 */ struct _HANDLE_TABLE_ENTRY_INFO ObjectInfo; /* off 0x0014 */ unsigned long HandleAttributes; }; struct _REMOTE_PORT_VIEW /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long ViewSize; /* off 0x0008 */ void* ViewBase; }; enum _KWAIT_REASON { Executive =0x00000000 ,//0 FreePage =0x00000001 ,//0 PageIn =0x00000002 ,//0 PoolAllocation =0x00000003 ,//0 DelayExecution =0x00000004 ,//0 Suspended =0x00000005 ,//0 UserRequest =0x00000006 ,//0 WrExecutive =0x00000007 ,//0 WrFreePage =0x00000008 ,//0 WrPageIn =0x00000009 ,//0 WrPoolAllocation =0x0000000a ,//0 WrDelayExecution =0x0000000b ,//0 WrSuspended =0x0000000c ,//0 WrUserRequest =0x0000000d ,//0 WrEventPair =0x0000000e ,//0 WrQueue =0x0000000f ,//0 WrLpcReceive =0x00000010 ,//0 WrLpcReply =0x00000011 ,//0 WrVirtualMemory =0x00000012 ,//0 WrPageOut =0x00000013 ,//0 WrRendezvous =0x00000014 ,//0 WrKeyedEvent =0x00000015 ,//0 WrTerminated =0x00000016 ,//0 WrProcessInSwap =0x00000017 ,//0 WrCpuRateControl =0x00000018 ,//0 WrCalloutStack =0x00000019 ,//0 WrKernel =0x0000001a ,//0 WrResource =0x0000001b ,//0 WrPushLock =0x0000001c ,//0 WrMutex =0x0000001d ,//0 WrQuantumEnd =0x0000001e ,//0 WrDispatchInt =0x0000001f ,//0 WrPreempted =0x00000020 ,//0 WrYieldExecution =0x00000021 ,//0 WrFastMutex =0x00000022 ,//0 WrGuardedMutex =0x00000023 ,//0 WrRundown =0x00000024 ,//0 MaximumWaitReason =0x00000025 ,//0 }; struct _ALPC_DISPATCH_CONTEXT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ALPC_PORT* PortObject; /* off 0x0004 */ struct _KALPC_MESSAGE* Message; /* off 0x0008 */ struct _ALPC_COMMUNICATION_INFO* CommunicationInfo; /* off 0x000c */ struct _ETHREAD* TargetThread; /* off 0x0010 */ struct _ALPC_PORT* TargetPort; /* off 0x0014 */ unsigned long Flags; /* off 0x0018 */ unsigned short TotalLength; /* off 0x001a */ unsigned short Type; /* off 0x001c */ unsigned short DataInfoOffset; }; enum _EX_POOL_PRIORITY { LowPoolPriority =0x00000000 ,//0 LowPoolPrioritySpecialPoolOverrun =0x00000008 ,//0 LowPoolPrioritySpecialPoolUnderrun =0x00000009 ,//0 NormalPoolPriority =0x00000010 ,//0 NormalPoolPrioritySpecialPoolOverrun =0x00000018 ,//0 NormalPoolPrioritySpecialPoolUnderrun =0x00000019 ,//0 HighPoolPriority =0x00000020 ,//0 HighPoolPrioritySpecialPoolOverrun =0x00000028 ,//0 HighPoolPrioritySpecialPoolUnderrun =0x00000029 ,//0 }; enum _LOCK_OPERATION { IoReadAccess =0x00000000 ,//0 IoWriteAccess =0x00000001 ,//0 IoModifyAccess =0x00000002 ,//0 }; union _FILE_SEGMENT_ELEMENT /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Buffer; /* off 0x0000 */ unsigned __int64 Alignment; }; struct _RELATIVE_SYMLINK_INFO /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned short ExposedNamespaceLength; /* off 0x0002 */ unsigned short Flags; /* off 0x0004 */ unsigned short DeviceNameLength; /* off 0x0006 */ unsigned short Reserved; /* off 0x0008 */ struct _RELATIVE_SYMLINK_INFO* InteriorMountPoint; /* off 0x000c */ struct _UNICODE_STRING OpenedName; }; enum _IOP_PRIORITY_HINT { IopIoPriorityNotSet =0x00000000 ,//0 IopIoPriorityVeryLow =0x00000001 ,//0 IopIoPriorityLow =0x00000002 ,//0 IopIoPriorityNormal =0x00000003 ,//0 IopIoPriorityHigh =0x00000004 ,//0 IopIoPriorityCritical =0x00000005 ,//0 MaxIopIoPriorityTypes =0x00000006 ,//0 }; struct _IOP_FILE_OBJECT_EXTENSION /* sizeof 00000024 36 */ { /* off 0x0000 */ unsigned long FoExtFlags; /* off 0x0004 */ void* FoExtPerTypeExtension[7]; /* off 0x0020 */ enum _IOP_PRIORITY_HINT FoIoPriorityHint; }; enum _TRANSFER_TYPE { ReadTransfer =0x00000000 ,//0 WriteTransfer =0x00000001 ,//0 OtherTransfer =0x00000002 ,//0 }; struct _OPEN_PACKET /* sizeof 00000070 112 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ long FinalStatus; /* off 0x000c */ unsigned long Information; /* off 0x0010 */ unsigned long ParseCheck; /* off 0x0014 */ struct _FILE_OBJECT* RelatedFileObject; /* off 0x0018 */ struct _OBJECT_ATTRIBUTES* OriginalAttributes; /* off 0x0020 */ union _LARGE_INTEGER AllocationSize; /* off 0x0028 */ unsigned long CreateOptions; /* off 0x002c */ unsigned short FileAttributes; /* off 0x002e */ unsigned short ShareAccess; /* off 0x0030 */ void* EaBuffer; /* off 0x0034 */ unsigned long EaLength; /* off 0x0038 */ unsigned long Options; /* off 0x003c */ unsigned long Disposition; /* off 0x0040 */ struct _FILE_BASIC_INFORMATION* BasicInformation; /* off 0x0044 */ struct _FILE_NETWORK_OPEN_INFORMATION* NetworkInformation; /* off 0x0048 */ enum _CREATE_FILE_TYPE CreateFileType; /* off 0x004c */ void* MailslotOrPipeParameters; /* off 0x0050 */ unsigned char Override; /* off 0x0051 */ unsigned char QueryOnly; /* off 0x0052 */ unsigned char DeleteOnly; /* off 0x0053 */ unsigned char FullAttributes; /* off 0x0054 */ struct _DUMMY_FILE_OBJECT* LocalFileObject; /* off 0x0058 */ unsigned long InternalFlags; /* off 0x005c */ struct _IO_DRIVER_CREATE_CONTEXT DriverCreateContext; }; enum _CREATE_FILE_TYPE { CreateFileTypeNone =0x00000000 ,//0 CreateFileTypeNamedPipe =0x00000001 ,//0 CreateFileTypeMailslot =0x00000002 ,//0 }; struct _OBJECT_HEADER /* sizeof 00000020 32 */ { /* off 0x0000 */ long PointerCount; union { /* off 0x0004 */ long HandleCount; /* off 0x0004 */ void* NextToFree; }; /* off 0x0008 */ struct _EX_PUSH_LOCK Lock; /* off 0x000c */ unsigned char TypeIndex; /* off 0x000d */ unsigned char TraceFlags; /* off 0x000e */ unsigned char InfoMask; /* off 0x000f */ unsigned char Flags; union { /* off 0x0010 */ struct _OBJECT_CREATE_INFORMATION* ObjectCreateInfo; /* off 0x0010 */ void* QuotaBlockCharged; }; /* off 0x0014 */ void* SecurityDescriptor; /* off 0x0018 */ struct _QUAD Body; }; struct _DUMMY_FILE_OBJECT /* sizeof 000000a0 160 */ { /* off 0x0000 */ struct _OBJECT_HEADER ObjectHeader; /* off 0x0020 */ char FileObjectBody[128]; }; struct _OBJECT_CREATE_INFORMATION /* sizeof 0000002c 44 */ { /* off 0x0000 */ unsigned long Attributes; /* off 0x0004 */ void* RootDirectory; /* off 0x0008 */ char ProbeMode; /* off 0x000c */ unsigned long PagedPoolCharge; /* off 0x0010 */ unsigned long NonPagedPoolCharge; /* off 0x0014 */ unsigned long SecurityDescriptorCharge; /* off 0x0018 */ void* SecurityDescriptor; /* off 0x001c */ struct _SECURITY_QUALITY_OF_SERVICE* SecurityQos; /* off 0x0020 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQualityOfService; }; struct _ETW_SYSTEMTIME /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short Year; /* off 0x0002 */ unsigned short Month; /* off 0x0004 */ unsigned short DayOfWeek; /* off 0x0006 */ unsigned short Day; /* off 0x0008 */ unsigned short Hour; /* off 0x000a */ unsigned short Minute; /* off 0x000c */ unsigned short Second; /* off 0x000e */ unsigned short Milliseconds; }; struct _TIME_FIELDS /* sizeof 00000010 16 */ { /* off 0x0000 */ short Year; /* off 0x0002 */ short Month; /* off 0x0004 */ short Day; /* off 0x0006 */ short Hour; /* off 0x0008 */ short Minute; /* off 0x000a */ short Second; /* off 0x000c */ short Milliseconds; /* off 0x000e */ short Weekday; }; struct _ETW_REF_CLOCK /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER StartTime; /* off 0x0008 */ union _LARGE_INTEGER StartPerfClock; }; struct _WMI_LOGGER_CONTEXT /* sizeof 00000238 568 */ { /* off 0x0000 */ unsigned long LoggerId; /* off 0x0004 */ unsigned long BufferSize; /* off 0x0008 */ unsigned long MaximumEventSize; /* off 0x000c */ long CollectionOn; /* off 0x0010 */ unsigned long LoggerMode; /* off 0x0014 */ long AcceptNewEvents; /* off 0x0018 */ __int64( __stdcall *GetCpuClock)(); /* off 0x0020 */ union _LARGE_INTEGER StartTime; /* off 0x0028 */ void* LogFileHandle; /* off 0x002c */ struct _ETHREAD* LoggerThread; /* off 0x0030 */ long LoggerStatus; /* off 0x0034 */ void* NBQHead; /* off 0x0038 */ void* OverflowNBQHead; /* off 0x0040 */ union _SLIST_HEADER QueueBlockFreeList; /* off 0x0048 */ struct _LIST_ENTRY GlobalList; union { /* off 0x0050 */ struct _WMI_BUFFER_HEADER* BatchedBufferList; /* off 0x0050 */ struct _EX_FAST_REF CurrentBuffer; }; /* off 0x0054 */ struct _UNICODE_STRING LoggerName; /* off 0x005c */ struct _UNICODE_STRING LogFileName; /* off 0x0064 */ struct _UNICODE_STRING LogFilePattern; /* off 0x006c */ struct _UNICODE_STRING NewLogFileName; /* off 0x0074 */ unsigned long ClockType; /* off 0x0078 */ unsigned long MaximumFileSize; /* off 0x007c */ unsigned long LastFlushedBuffer; /* off 0x0080 */ unsigned long FlushTimer; /* off 0x0084 */ unsigned long FlushThreshold; /* off 0x0088 */ union _LARGE_INTEGER ByteOffset; /* off 0x0090 */ unsigned long MinimumBuffers; /* off 0x0094 */ long BuffersAvailable; /* off 0x0098 */ long NumberOfBuffers; /* off 0x009c */ unsigned long MaximumBuffers; /* off 0x00a0 */ unsigned long EventsLost; /* off 0x00a4 */ unsigned long BuffersWritten; /* off 0x00a8 */ unsigned long LogBuffersLost; /* off 0x00ac */ unsigned long RealTimeBuffersDelivered; /* off 0x00b0 */ unsigned long RealTimeBuffersLost; /* off 0x00b4 */ long* SequencePtr; /* off 0x00b8 */ unsigned long LocalSequence; /* off 0x00bc */ struct _GUID InstanceGuid; /* off 0x00cc */ long FileCounter; /* off 0x00d0 */ void( __stdcall *BufferCallback)(struct _WMI_BUFFER_HEADER*,void*); /* off 0x00d4 */ enum _POOL_TYPE PoolType; /* off 0x00d8 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x00e8 */ struct _LIST_ENTRY Consumers; /* off 0x00f0 */ unsigned long NumConsumers; /* off 0x00f4 */ struct _ETW_REALTIME_CONSUMER* TransitionConsumer; /* off 0x00f8 */ void* RealtimeLogfileHandle; /* off 0x00fc */ struct _UNICODE_STRING RealtimeLogfileName; /* off 0x0108 */ union _LARGE_INTEGER RealtimeWriteOffset; /* off 0x0110 */ union _LARGE_INTEGER RealtimeReadOffset; /* off 0x0118 */ union _LARGE_INTEGER RealtimeLogfileSize; /* off 0x0120 */ unsigned __int64 RealtimeLogfileUsage; /* off 0x0128 */ unsigned __int64 RealtimeMaximumFileSize; /* off 0x0130 */ unsigned long RealtimeBuffersSaved; /* off 0x0138 */ struct _ETW_REF_CLOCK RealtimeReferenceTime; /* off 0x0148 */ enum _ETW_RT_EVENT_LOSS NewRTEventsLost; /* off 0x014c */ struct _KEVENT LoggerEvent; /* off 0x015c */ struct _KEVENT FlushEvent; /* off 0x0170 */ struct _KTIMER FlushTimeOutTimer; /* off 0x0198 */ struct _KDPC FlushDpc; /* off 0x01b8 */ struct _KMUTANT LoggerMutex; /* off 0x01d8 */ struct _EX_PUSH_LOCK LoggerLock; union { /* off 0x01dc */ unsigned long BufferListSpinLock; /* off 0x01dc */ struct _EX_PUSH_LOCK BufferListPushLock; }; /* off 0x01e0 */ struct _SECURITY_CLIENT_CONTEXT ClientSecurityContext; /* off 0x021c */ struct _EX_FAST_REF SecurityDescriptor; /* off 0x0220 */ __int64 BufferSequenceNumber; union { /* off 0x0228 */ unsigned long Flags; struct { /* off 0x0228 */ unsigned long Persistent:1 /* start bit 0 */; /* off 0x0228 */ unsigned long AutoLogger:1 /* start bit 1 */; /* off 0x0228 */ unsigned long FsReady:1 /* start bit 2 */; /* off 0x0228 */ unsigned long RealTime:1 /* start bit 3 */; /* off 0x0228 */ unsigned long Wow:1 /* start bit 4 */; /* off 0x0228 */ unsigned long KernelTrace:1 /* start bit 5 */; /* off 0x0228 */ unsigned long NoMoreEnable:1 /* start bit 6 */; /* off 0x0228 */ unsigned long StackTracing:1 /* start bit 7 */; /* off 0x0228 */ unsigned long ErrorLogged:1 /* start bit 8 */; /* off 0x0228 */ unsigned long RealtimeLoggerContextFreed:1 /* start bit 9 */; }; }; union { /* off 0x022c */ unsigned long RequestFlag; struct { /* off 0x022c */ unsigned long RequestNewFie:1 /* start bit 0 */; /* off 0x022c */ unsigned long RequestUpdateFile:1 /* start bit 1 */; /* off 0x022c */ unsigned long RequestFlush:1 /* start bit 2 */; /* off 0x022c */ unsigned long RequestDisableRealtime:1 /* start bit 3 */; /* off 0x022c */ unsigned long RequestDisconnectConsumer:1 /* start bit 4 */; /* off 0x022c */ unsigned long RequestConnectConsumer:1 /* start bit 5 */; }; }; /* off 0x0230 */ struct _RTL_BITMAP HookIdMap; }; struct _ETW_BUFFER_CONTEXT /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned char ProcessorNumber; /* off 0x0001 */ unsigned char Alignment; /* off 0x0002 */ unsigned short LoggerId; }; struct _WMI_BUFFER_HEADER /* sizeof 00000048 72 */ { /* off 0x0000 */ unsigned long BufferSize; /* off 0x0004 */ unsigned long SavedOffset; /* off 0x0008 */ unsigned long CurrentOffset; /* off 0x000c */ long ReferenceCount; /* off 0x0010 */ union _LARGE_INTEGER TimeStamp; /* off 0x0018 */ __int64 SequenceNumber; union { /* off 0x0020 */ unsigned long Padding0[2]; /* off 0x0020 */ struct _SINGLE_LIST_ENTRY SlistEntry; /* off 0x0020 */ struct _WMI_BUFFER_HEADER* NextBuffer; }; /* off 0x0028 */ struct _ETW_BUFFER_CONTEXT ClientContext; /* off 0x002c */ enum _ETW_BUFFER_STATE State; /* off 0x0030 */ unsigned long Offset; /* off 0x0034 */ unsigned short BufferFlag; /* off 0x0036 */ unsigned short BufferType; union { /* off 0x0038 */ unsigned long Padding1[4]; /* off 0x0038 */ struct _ETW_REF_CLOCK ReferenceTime; /* off 0x0038 */ struct _LIST_ENTRY GlobalEntry; struct { /* off 0x0038 */ void* Pointer0; /* off 0x003c */ void* Pointer1; }; }; }; enum _ETW_BUFFER_STATE { EtwBufferStateFree =0x00000000 ,//0 EtwBufferStateGeneralLogging =0x00000001 ,//0 EtwBufferStateCSwitch =0x00000002 ,//0 EtwBufferStateFlush =0x00000003 ,//0 EtwBufferStateMaximum =0x00000004 ,//0 }; struct _ETW_REALTIME_CONSUMER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ void* ProcessHandle; /* off 0x000c */ struct _EPROCESS* ProcessObject; /* off 0x0010 */ void* NextNotDelivered; /* off 0x0014 */ void* RealtimeConnectContext; /* off 0x0018 */ struct _KEVENT* DisconnectEvent; /* off 0x001c */ struct _KEVENT* DataAvailableEvent; /* off 0x0020 */ unsigned long* UserBufferCount; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY* UserBufferListHead; /* off 0x0028 */ unsigned long BuffersLost; /* off 0x002c */ unsigned long EmptyBuffersCount; /* off 0x0030 */ unsigned long LoggerId; /* off 0x0034 */ unsigned char ShutDownRequested; /* off 0x0035 */ unsigned char NewBuffersLost; /* off 0x0036 */ unsigned char Disconnected; /* off 0x0038 */ struct _RTL_BITMAP ReservedBufferSpaceBitMap; /* off 0x0040 */ unsigned char* ReservedBufferSpace; /* off 0x0044 */ unsigned long ReservedBufferSpaceSize; /* off 0x0048 */ unsigned long UserPagesAllocated; /* off 0x004c */ unsigned long UserPagesReused; }; enum _ETW_RT_EVENT_LOSS { EtwRtEventNoLoss =0x00000000 ,//0 EtwRtEventLost =0x00000001 ,//0 EtwRtBufferLost =0x00000002 ,//0 EtwRtBackupLost =0x00000003 ,//0 EtwRtEventLossMax =0x00000004 ,//0 }; struct _ETW_LOGGER_HANDLE /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char DereferenceAndLeave; }; struct _ETW_BUFFER_HANDLE /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _WMI_BUFFER_HEADER* TraceBuffer; /* off 0x0004 */ struct _EX_FAST_REF* BufferFastRef; }; struct _WMI_TRACE_PACKET /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short Size; union { /* off 0x0002 */ unsigned short HookId; struct { /* off 0x0002 */ unsigned char Type; /* off 0x0003 */ unsigned char Group; }; }; }; struct _SYSTEM_TRACE_HEADER /* sizeof 00000020 32 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; /* off 0x0008 */ unsigned long ThreadId; /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ union _LARGE_INTEGER SystemTime; /* off 0x0018 */ unsigned long KernelTime; /* off 0x001c */ unsigned long UserTime; }; struct _PERFINFO_TRACE_HEADER /* sizeof 00000018 24 */ { union { /* off 0x0000 */ unsigned long Marker; struct { /* off 0x0000 */ unsigned short Version; /* off 0x0002 */ unsigned char HeaderType; /* off 0x0003 */ unsigned char Flags; }; }; union { /* off 0x0004 */ unsigned long Header; /* off 0x0004 */ struct _WMI_TRACE_PACKET Packet; }; union { /* off 0x0008 */ unsigned __int64 TS; /* off 0x0008 */ union _LARGE_INTEGER SystemTime; }; /* off 0x0010 */ unsigned char Data[1]; }; struct _NBQUEUE_BLOCK /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY SListEntry; /* off 0x0008 */ unsigned __int64 Next; /* off 0x0010 */ unsigned __int64 Data; }; enum _ETW_GUID_TYPE { EtwTraceGuidType =0x00000000 ,//0 EtwNotificationGuidType =0x00000001 ,//0 EtwGuidTypeMax =0x00000002 ,//0 }; struct _ETW_LAST_ENABLE_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ union _LARGE_INTEGER EnableFlags; /* off 0x0008 */ unsigned short LoggerId; /* off 0x000a */ unsigned char Level; /* off 0x000b */ unsigned char Enabled:1 /* start bit 0 */; /* off 0x000b */ unsigned char InternalFlag:7 /* start bit 1 */; }; struct _TRACE_ENABLE_CONTEXT /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; }; struct _TRACE_ENABLE_CONTEXT_EX /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned short LoggerId; /* off 0x0002 */ unsigned char Level; /* off 0x0003 */ unsigned char InternalFlag; /* off 0x0004 */ unsigned long EnableFlags; /* off 0x0008 */ unsigned long EnableFlagsHigh; /* off 0x000c */ unsigned long Reserved; }; struct _TRACE_ENABLE_INFO /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long IsEnabled; /* off 0x0004 */ unsigned char Level; /* off 0x0005 */ unsigned char Reserved1; /* off 0x0006 */ unsigned short LoggerId; /* off 0x0008 */ unsigned long EnableProperty; /* off 0x000c */ unsigned long Reserved2; /* off 0x0010 */ unsigned __int64 MatchAnyKeyword; /* off 0x0018 */ unsigned __int64 MatchAllKeyword; }; struct _ETW_GUID_ENTRY /* sizeof 00000178 376 */ { /* off 0x0000 */ struct _LIST_ENTRY GuidList; /* off 0x0008 */ long RefCount; /* off 0x000c */ struct _GUID Guid; /* off 0x001c */ struct _LIST_ENTRY RegListHead; /* off 0x0024 */ void* SecurityDescriptor; union { /* off 0x0028 */ struct _ETW_LAST_ENABLE_INFO LastEnable; /* off 0x0028 */ unsigned __int64 MatchId; }; /* off 0x0038 */ struct _TRACE_ENABLE_INFO ProviderEnableInfo; /* off 0x0058 */ struct _TRACE_ENABLE_INFO EnableInfo[8]; /* off 0x0158 */ struct _EVENT_FILTER_HEADER* FilterData[8]; }; struct _EVENT_FILTER_HEADER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Id; /* off 0x0002 */ unsigned char Version; /* off 0x0003 */ unsigned char Reserved[5]; /* off 0x0008 */ unsigned __int64 InstanceId; /* off 0x0010 */ unsigned long Size; /* off 0x0014 */ unsigned long NextOffset; }; struct _SEP_TOKEN_PRIVILEGES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned __int64 Present; /* off 0x0008 */ unsigned __int64 Enabled; /* off 0x0010 */ unsigned __int64 EnabledByDefault; }; struct _TOKEN_AUDIT_POLICY /* sizeof 0000001b 27 */ { /* off 0x0000 */ unsigned char PerUserPolicy[27]; }; struct _SEP_AUDIT_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _TOKEN_AUDIT_POLICY AdtTokenPolicy; /* off 0x001b */ unsigned char PolicySetStatus; }; struct _SID_AND_ATTRIBUTES_HASH /* sizeof 00000088 136 */ { /* off 0x0000 */ unsigned long SidCount; /* off 0x0004 */ struct _SID_AND_ATTRIBUTES* SidAttr; /* off 0x0008 */ unsigned long Hash[32]; }; struct _TOKEN /* sizeof 000001e0 480 */ { /* off 0x0000 */ struct _TOKEN_SOURCE TokenSource; /* off 0x0010 */ struct _LUID TokenId; /* off 0x0018 */ struct _LUID AuthenticationId; /* off 0x0020 */ struct _LUID ParentTokenId; /* off 0x0028 */ union _LARGE_INTEGER ExpirationTime; /* off 0x0030 */ struct _ERESOURCE* TokenLock; /* off 0x0034 */ struct _LUID ModifiedId; /* off 0x0040 */ struct _SEP_TOKEN_PRIVILEGES Privileges; /* off 0x0058 */ struct _SEP_AUDIT_POLICY AuditPolicy; /* off 0x0074 */ unsigned long SessionId; /* off 0x0078 */ unsigned long UserAndGroupCount; /* off 0x007c */ unsigned long RestrictedSidCount; /* off 0x0080 */ unsigned long VariableLength; /* off 0x0084 */ unsigned long DynamicCharged; /* off 0x0088 */ unsigned long DynamicAvailable; /* off 0x008c */ unsigned long DefaultOwnerIndex; /* off 0x0090 */ struct _SID_AND_ATTRIBUTES* UserAndGroups; /* off 0x0094 */ struct _SID_AND_ATTRIBUTES* RestrictedSids; /* off 0x0098 */ void* PrimaryGroup; /* off 0x009c */ unsigned long* DynamicPart; /* off 0x00a0 */ struct _ACL* DefaultDacl; /* off 0x00a4 */ enum _TOKEN_TYPE TokenType; /* off 0x00a8 */ enum _SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* off 0x00ac */ unsigned long TokenFlags; /* off 0x00b0 */ unsigned char TokenInUse; /* off 0x00b4 */ unsigned long IntegrityLevelIndex; /* off 0x00b8 */ unsigned long MandatoryPolicy; /* off 0x00bc */ struct _SEP_LOGON_SESSION_REFERENCES* LogonSession; /* off 0x00c0 */ struct _LUID OriginatingLogonSession; /* off 0x00c8 */ struct _SID_AND_ATTRIBUTES_HASH SidHash; /* off 0x0150 */ struct _SID_AND_ATTRIBUTES_HASH RestrictedSidHash; /* off 0x01d8 */ struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION* pSecurityAttributes; /* off 0x01dc */ unsigned long VariablePart; }; struct _SID_AND_ATTRIBUTES /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Sid; /* off 0x0004 */ unsigned long Attributes; }; struct _ACL /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char AclRevision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short AclSize; /* off 0x0004 */ unsigned short AceCount; /* off 0x0006 */ unsigned short Sbz2; }; enum _TOKEN_TYPE { TokenPrimary =0x00000001 ,//0 TokenImpersonation =0x00000002 ,//0 }; struct _SEP_LOGON_SESSION_REFERENCES /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _SEP_LOGON_SESSION_REFERENCES* Next; /* off 0x0004 */ struct _LUID LogonId; /* off 0x000c */ struct _LUID BuddyLogonId; /* off 0x0014 */ unsigned long ReferenceCount; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ struct _DEVICE_MAP* pDeviceMap; /* off 0x0020 */ void* Token; /* off 0x0024 */ struct _UNICODE_STRING AccountName; /* off 0x002c */ struct _UNICODE_STRING AuthorityName; }; struct _DEVICE_MAP /* sizeof 00000034 52 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* DosDevicesDirectory; /* off 0x0004 */ struct _OBJECT_DIRECTORY* GlobalDosDevicesDirectory; /* off 0x0008 */ void* DosDevicesDirectoryHandle; /* off 0x000c */ unsigned long ReferenceCount; /* off 0x0010 */ unsigned long DriveMap; /* off 0x0014 */ unsigned char DriveType[32]; }; struct _OBJECT_DIRECTORY /* sizeof 000000a8 168 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* HashBuckets[37]; /* off 0x0094 */ struct _EX_PUSH_LOCK Lock; /* off 0x0098 */ struct _DEVICE_MAP* DeviceMap; /* off 0x009c */ unsigned long SessionId; /* off 0x00a0 */ void* NamespaceEntry; /* off 0x00a4 */ unsigned long Flags; }; struct _OBJECT_DIRECTORY_ENTRY /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY_ENTRY* ChainLink; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; }; struct _AUTHZBASEP_SECURITY_ATTRIBUTES_INFORMATION /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long SecurityAttributeCount; /* off 0x0004 */ struct _LIST_ENTRY SecurityAttributesList; /* off 0x000c */ unsigned long WorkingSecurityAttributeCount; /* off 0x0010 */ struct _LIST_ENTRY WorkingSecurityAttributesList; }; struct _OBJECT_HEADER_QUOTA_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long PagedPoolCharge; /* off 0x0004 */ unsigned long NonPagedPoolCharge; /* off 0x0008 */ unsigned long SecurityDescriptorCharge; /* off 0x000c */ void* SecurityDescriptorQuotaBlock; }; struct _OBJECT_HEADER_PROCESS_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* ExclusiveProcess; /* off 0x0004 */ unsigned long Reserved; }; struct _OBJECT_HANDLE_COUNT_ENTRY /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EPROCESS* Process; /* off 0x0004 */ unsigned long HandleCount:24 /* start bit 0 */; /* off 0x0004 */ unsigned long LockCount:8 /* start bit 24 */; }; struct _OBJECT_HEADER_HANDLE_INFO /* sizeof 00000008 8 */ { union { /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_DATABASE* HandleCountDataBase; /* off 0x0000 */ struct _OBJECT_HANDLE_COUNT_ENTRY SingleEntry; }; }; struct _OBJECT_HANDLE_COUNT_DATABASE /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long CountEntries; /* off 0x0004 */ struct _OBJECT_HANDLE_COUNT_ENTRY HandleCountEntries[1]; }; struct _OBJECT_HEADER_NAME_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ struct _UNICODE_STRING Name; /* off 0x000c */ long ReferenceCount; }; struct _OBJECT_HEADER_CREATOR_INFO /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LIST_ENTRY TypeList; /* off 0x0008 */ void* CreatorUniqueProcess; /* off 0x000c */ unsigned short CreatorBackTraceIndex; /* off 0x000e */ unsigned short Reserved; }; struct _OBP_LOOKUP_CONTEXT /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _OBJECT_DIRECTORY* Directory; /* off 0x0004 */ void* Object; /* off 0x0008 */ unsigned long HashValue; /* off 0x000c */ unsigned short HashIndex; /* off 0x000e */ unsigned char DirectoryLocked; /* off 0x000f */ unsigned char LockedExclusive; /* off 0x0010 */ unsigned long LockStateSignature; }; struct _MI_VERIFIER_POOL_HEADER /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _VI_POOL_ENTRY* VerifierPoolEntry; }; struct _VI_POOL_PAGE_HEADER /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextPage; /* off 0x0004 */ void* VerifierEntry; /* off 0x0008 */ unsigned long Signature; }; struct _VI_POOL_ENTRY_INUSE /* sizeof 00000010 16 */ { /* off 0x0000 */ void* VirtualAddress; /* off 0x0004 */ void* CallingAddress; /* off 0x0008 */ unsigned long NumberOfBytes; /* off 0x000c */ unsigned long Tag; }; struct _VI_POOL_ENTRY /* sizeof 00000010 16 */ { union { /* off 0x0000 */ struct _VI_POOL_PAGE_HEADER PageHeader; /* off 0x0000 */ struct _VI_POOL_ENTRY_INUSE InUse; /* off 0x0000 */ struct _SINGLE_LIST_ENTRY* NextFree; }; }; struct _LPCP_MESSAGE /* sizeof 00000030 48 */ { union { /* off 0x0000 */ struct _LIST_ENTRY Entry; struct { /* off 0x0000 */ struct _SINGLE_LIST_ENTRY FreeEntry; /* off 0x0004 */ unsigned long Reserved0; }; }; /* off 0x0008 */ void* SenderPort; /* off 0x000c */ struct _ETHREAD* RepliedToThread; /* off 0x0010 */ void* PortContext; /* off 0x0018 */ struct _PORT_MESSAGE Request; }; struct _SYSPTES_HEADER /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Count; /* off 0x000c */ unsigned long NumberOfEntries; /* off 0x0010 */ unsigned long NumberOfEntriesPeak; }; struct _POOL_TRACKER_BIG_PAGES /* sizeof 00000010 16 */ { /* off 0x0000 */ void* Va; /* off 0x0004 */ unsigned long Key; /* off 0x0008 */ unsigned long PoolType; /* off 0x000c */ unsigned long NumberOfBytes; }; struct _THERMAL_INFORMATION_EX /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ struct _KAFFINITY_EX Processors; /* off 0x0018 */ unsigned long SamplingPeriod; /* off 0x001c */ unsigned long CurrentTemperature; /* off 0x0020 */ unsigned long PassiveTripPoint; /* off 0x0024 */ unsigned long CriticalTripPoint; /* off 0x0028 */ unsigned char ActiveTripPointCount; /* off 0x002c */ unsigned long ActiveTripPoint[10]; /* off 0x0054 */ unsigned long S4TransitionTripPoint; }; struct _VI_VERIFIER_ISSUE /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long IssueType; /* off 0x0004 */ void* Address; /* off 0x0008 */ unsigned long Parameters[2]; }; struct _EXCEPTION_POINTERS /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _EXCEPTION_RECORD* ExceptionRecord; /* off 0x0004 */ struct _CONTEXT* ContextRecord; }; struct _OBJECT_REF_STACK_INFO /* sizeof 0000000c 12 */ { /* off 0x0000 */ unsigned long Sequence; /* off 0x0004 */ unsigned short Index; /* off 0x0006 */ unsigned short NumTraces; /* off 0x0008 */ unsigned long Tag; }; struct _OBJECT_REF_INFO /* sizeof 0000001c 28 */ { /* off 0x0000 */ struct _OBJECT_HEADER* ObjectHeader; /* off 0x0004 */ void* NextRef; /* off 0x0008 */ unsigned char ImageFileName[16]; /* off 0x0018 */ unsigned short NextPos; /* off 0x001a */ unsigned short MaxStacks; /* off 0x001c */ struct _OBJECT_REF_STACK_INFO StackInfo[0]; }; struct _MMSECURE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long ReadOnly:1 /* start bit 0 */; /* off 0x0000 */ unsigned long NoWrite:1 /* start bit 1 */; /* off 0x0000 */ unsigned long Spare:10 /* start bit 2 */; }; struct _MMADDRESS_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMSECURE_FLAGS Flags; /* off 0x0000 */ void* StartVa; } u1; /* off 0x0004 */ void* EndVa; }; struct _MMVAD_LONG /* sizeof 00000048 72 */ { /* off 0x0000 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ long Balance:2 /* start bit 0 */; /* off 0x0000 */ struct _MMVAD* Parent; } u1; /* off 0x0004 */ struct _MMVAD* LeftChild; /* off 0x0008 */ struct _MMVAD* RightChild; /* off 0x000c */ unsigned long StartingVpn; /* off 0x0010 */ unsigned long EndingVpn; /* off 0x0014 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MMVAD_FLAGS VadFlags; } u; /* off 0x0018 */ struct _EX_PUSH_LOCK PushLock; /* off 0x001c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags3; /* off 0x0000 */ struct _MMVAD_FLAGS3 VadFlags3; } u5; /* off 0x0020 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags2; /* off 0x0000 */ struct _MMVAD_FLAGS2 VadFlags2; } u2; /* off 0x0024 */ struct _SUBSECTION* Subsection; /* off 0x0028 */ struct _MMPTE* FirstPrototypePte; /* off 0x002c */ struct _MMPTE* LastContiguousPte; /* off 0x0030 */ struct _LIST_ENTRY ViewLinks; /* off 0x0038 */ struct _EPROCESS* VadsProcess; /* off 0x003c */ union /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY List; /* off 0x0000 */ struct _MMADDRESS_LIST Secured; } u3; /* off 0x0044 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _MMBANKED_SECTION* Banked; /* off 0x0000 */ struct _MMEXTEND_INFO* ExtendedInfo; } u4; }; struct _MMBANKED_SECTION /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long BasePhysicalPage; /* off 0x0004 */ struct _MMPTE* BasedPte; /* off 0x0008 */ unsigned long BankSize; /* off 0x000c */ unsigned long BankShift; /* off 0x0010 */ void( __stdcall *BankedRoutine)(unsigned long,unsigned long,void*); /* off 0x0014 */ void* Context; /* off 0x0018 */ struct _MMPTE* CurrentMappedPte; /* off 0x0020 */ struct _MMPTE BankTemplate[1]; }; struct _HEAP_UCR_DESCRIPTOR /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _LIST_ENTRY SegmentEntry; /* off 0x0010 */ void* Address; /* off 0x0014 */ unsigned long Size; }; struct _POOL_DESCRIPTOR /* sizeof 00001140 4416 */ { /* off 0x0000 */ enum _POOL_TYPE PoolType; union { /* off 0x0004 */ struct _KGUARDED_MUTEX PagedLock; /* off 0x0004 */ unsigned long NonPagedLock; }; /* off 0x0040 */ long RunningAllocs; /* off 0x0044 */ long RunningDeAllocs; /* off 0x0048 */ long TotalBigPages; /* off 0x004c */ long ThreadsProcessingDeferrals; /* off 0x0050 */ unsigned long TotalBytes; /* off 0x0080 */ unsigned long PoolIndex; /* off 0x00c0 */ long TotalPages; /* off 0x0100 */ void** PendingFrees; /* off 0x0104 */ long PendingFreeDepth; /* off 0x0140 */ struct _LIST_ENTRY ListHeads[512]; }; struct _KINTERRUPT /* sizeof 00000278 632 */ { /* off 0x0000 */ short Type; /* off 0x0002 */ short Size; /* off 0x0004 */ struct _LIST_ENTRY InterruptListEntry; /* off 0x000c */ unsigned char( __stdcall *ServiceRoutine)(struct _KINTERRUPT*,void*); /* off 0x0010 */ unsigned char( __stdcall *MessageServiceRoutine)(struct _KINTERRUPT*,void*,unsigned long); /* off 0x0014 */ unsigned long MessageIndex; /* off 0x0018 */ void* ServiceContext; /* off 0x001c */ unsigned long SpinLock; /* off 0x0020 */ unsigned long TickCount; /* off 0x0024 */ unsigned long* ActualLock; /* off 0x0028 */ void( __stdcall *DispatchAddress)(); /* off 0x002c */ unsigned long Vector; /* off 0x0030 */ unsigned char Irql; /* off 0x0031 */ unsigned char SynchronizeIrql; /* off 0x0032 */ unsigned char FloatingSave; /* off 0x0033 */ unsigned char Connected; /* off 0x0034 */ unsigned long Number; /* off 0x0038 */ unsigned char ShareVector; /* off 0x0039 */ char Pad[3]; /* off 0x003c */ enum _KINTERRUPT_MODE Mode; /* off 0x0040 */ enum _KINTERRUPT_POLARITY Polarity; /* off 0x0044 */ unsigned long ServiceCount; /* off 0x0048 */ unsigned long DispatchCount; /* off 0x0050 */ unsigned __int64 Rsvd1; /* off 0x0058 */ unsigned long DispatchCode[135]; }; enum _KINTERRUPT_MODE { LevelSensitive =0x00000000 ,//0 Latched =0x00000001 ,//0 }; enum _KINTERRUPT_POLARITY { InterruptPolarityUnknown =0x00000000 ,//0 InterruptActiveHigh =0x00000001 ,//0 InterruptActiveLow =0x00000002 ,//0 }; struct _HIVE_LIST_ENTRY /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned short* FileName; /* off 0x0004 */ unsigned short* BaseName; /* off 0x0008 */ unsigned short* RegRootName; /* off 0x000c */ struct _CMHIVE* CmHive; /* off 0x0010 */ unsigned long HHiveFlags; /* off 0x0014 */ unsigned long CmHiveFlags; /* off 0x0018 */ unsigned long CmKcbCacheSize; /* off 0x001c */ struct _CMHIVE* CmHive2; /* off 0x0020 */ unsigned char HiveMounted; /* off 0x0021 */ unsigned char ThreadFinished; /* off 0x0022 */ unsigned char ThreadStarted; /* off 0x0023 */ unsigned char Allocate; /* off 0x0024 */ unsigned char WinPERequired; /* off 0x0028 */ struct _KEVENT StartEvent; /* off 0x0038 */ struct _KEVENT FinishedEvent; /* off 0x0048 */ struct _KEVENT MountLock; }; struct _IOV_FORCED_PENDING_TRACE /* sizeof 00000100 256 */ { /* off 0x0000 */ struct _IRP* Irp; /* off 0x0004 */ struct _ETHREAD* Thread; /* off 0x0008 */ void* StackTrace[62]; }; struct _LAZY_WRITER /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _KDPC ScanDpc; /* off 0x0020 */ struct _KTIMER ScanTimer; /* off 0x0048 */ unsigned char ScanActive; /* off 0x0049 */ unsigned char OtherWork; /* off 0x004a */ unsigned char PendingTeardownScan; /* off 0x004b */ unsigned char PendingPeriodicScan; /* off 0x004c */ unsigned char PendingLowMemoryScan; /* off 0x004d */ unsigned char PendingPowerScan; }; struct _PI_BUS_EXTENSION /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Flags; /* off 0x0004 */ unsigned char NumberCSNs; /* off 0x0008 */ unsigned char* ReadDataPort; /* off 0x000c */ unsigned char DataPortMapped; /* off 0x0010 */ unsigned char* AddressPort; /* off 0x0014 */ unsigned char AddrPortMapped; /* off 0x0018 */ unsigned char* CommandPort; /* off 0x001c */ unsigned char CmdPortMapped; /* off 0x0020 */ unsigned long NextSlotNumber; /* off 0x0024 */ struct _SINGLE_LIST_ENTRY DeviceList; /* off 0x0028 */ struct _SINGLE_LIST_ENTRY CardList; /* off 0x002c */ struct _DEVICE_OBJECT* PhysicalBusDevice; /* off 0x0030 */ struct _DEVICE_OBJECT* FunctionalBusDevice; /* off 0x0034 */ struct _DEVICE_OBJECT* AttachedDevice; /* off 0x0038 */ unsigned long BusNumber; /* off 0x003c */ enum _SYSTEM_POWER_STATE SystemPowerState; /* off 0x0040 */ enum _DEVICE_POWER_STATE DevicePowerState; }; struct _IO_WORKITEM /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0010 */ void( __stdcall *Routine)(void*,void*,struct _IO_WORKITEM*); /* off 0x0014 */ void* IoObject; /* off 0x0018 */ void* Context; /* off 0x001c */ unsigned long Type; }; enum _PS_RESOURCE_TYPE { PsResourceNonPagedPool =0x00000000 ,//0 PsResourcePagedPool =0x00000001 ,//0 PsResourcePageFile =0x00000002 ,//0 PsResourceWorkingSet =0x00000003 ,//0 PsResourceCpuRate =0x00000004 ,//0 PsResourceMax =0x00000005 ,//0 }; struct _HEAP_STOP_ON_TAG /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long HeapAndTagIndex; struct { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short HeapIndex; }; }; }; struct _HEAP_STOP_ON_VALUES /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long AllocAddress; /* off 0x0004 */ struct _HEAP_STOP_ON_TAG AllocTag; /* off 0x0008 */ unsigned long ReAllocAddress; /* off 0x000c */ struct _HEAP_STOP_ON_TAG ReAllocTag; /* off 0x0010 */ unsigned long FreeAddress; /* off 0x0014 */ struct _HEAP_STOP_ON_TAG FreeTag; }; struct _CALL_HASH_ENTRY /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ void* CallersAddress; /* off 0x000c */ void* CallersCaller; /* off 0x0010 */ unsigned long CallCount; }; enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID =0x00000000 ,//0 DPFLTR_SMSS_ID =0x00000001 ,//0 DPFLTR_SETUP_ID =0x00000002 ,//0 DPFLTR_NTFS_ID =0x00000003 ,//0 DPFLTR_FSTUB_ID =0x00000004 ,//0 DPFLTR_CRASHDUMP_ID =0x00000005 ,//0 DPFLTR_CDAUDIO_ID =0x00000006 ,//0 DPFLTR_CDROM_ID =0x00000007 ,//0 DPFLTR_CLASSPNP_ID =0x00000008 ,//0 DPFLTR_DISK_ID =0x00000009 ,//0 DPFLTR_REDBOOK_ID =0x0000000a ,//0 DPFLTR_STORPROP_ID =0x0000000b ,//0 DPFLTR_SCSIPORT_ID =0x0000000c ,//0 DPFLTR_SCSIMINIPORT_ID =0x0000000d ,//0 DPFLTR_CONFIG_ID =0x0000000e ,//0 DPFLTR_I8042PRT_ID =0x0000000f ,//0 DPFLTR_SERMOUSE_ID =0x00000010 ,//0 DPFLTR_LSERMOUS_ID =0x00000011 ,//0 DPFLTR_KBDHID_ID =0x00000012 ,//0 DPFLTR_MOUHID_ID =0x00000013 ,//0 DPFLTR_KBDCLASS_ID =0x00000014 ,//0 DPFLTR_MOUCLASS_ID =0x00000015 ,//0 DPFLTR_TWOTRACK_ID =0x00000016 ,//0 DPFLTR_WMILIB_ID =0x00000017 ,//0 DPFLTR_ACPI_ID =0x00000018 ,//0 DPFLTR_AMLI_ID =0x00000019 ,//0 DPFLTR_HALIA64_ID =0x0000001a ,//0 DPFLTR_VIDEO_ID =0x0000001b ,//0 DPFLTR_SVCHOST_ID =0x0000001c ,//0 DPFLTR_VIDEOPRT_ID =0x0000001d ,//0 DPFLTR_TCPIP_ID =0x0000001e ,//0 DPFLTR_DMSYNTH_ID =0x0000001f ,//0 DPFLTR_NTOSPNP_ID =0x00000020 ,//0 DPFLTR_FASTFAT_ID =0x00000021 ,//0 DPFLTR_SAMSS_ID =0x00000022 ,//0 DPFLTR_PNPMGR_ID =0x00000023 ,//0 DPFLTR_NETAPI_ID =0x00000024 ,//0 DPFLTR_SCSERVER_ID =0x00000025 ,//0 DPFLTR_SCCLIENT_ID =0x00000026 ,//0 DPFLTR_SERIAL_ID =0x00000027 ,//0 DPFLTR_SERENUM_ID =0x00000028 ,//0 DPFLTR_UHCD_ID =0x00000029 ,//0 DPFLTR_RPCPROXY_ID =0x0000002a ,//0 DPFLTR_AUTOCHK_ID =0x0000002b ,//0 DPFLTR_DCOMSS_ID =0x0000002c ,//0 DPFLTR_UNIMODEM_ID =0x0000002d ,//0 DPFLTR_SIS_ID =0x0000002e ,//0 DPFLTR_FLTMGR_ID =0x0000002f ,//0 DPFLTR_WMICORE_ID =0x00000030 ,//0 DPFLTR_BURNENG_ID =0x00000031 ,//0 DPFLTR_IMAPI_ID =0x00000032 ,//0 DPFLTR_SXS_ID =0x00000033 ,//0 DPFLTR_FUSION_ID =0x00000034 ,//0 DPFLTR_IDLETASK_ID =0x00000035 ,//0 DPFLTR_SOFTPCI_ID =0x00000036 ,//0 DPFLTR_TAPE_ID =0x00000037 ,//0 DPFLTR_MCHGR_ID =0x00000038 ,//0 DPFLTR_IDEP_ID =0x00000039 ,//0 DPFLTR_PCIIDE_ID =0x0000003a ,//0 DPFLTR_FLOPPY_ID =0x0000003b ,//0 DPFLTR_FDC_ID =0x0000003c ,//0 DPFLTR_TERMSRV_ID =0x0000003d ,//0 DPFLTR_W32TIME_ID =0x0000003e ,//0 DPFLTR_PREFETCHER_ID =0x0000003f ,//0 DPFLTR_RSFILTER_ID =0x00000040 ,//0 DPFLTR_FCPORT_ID =0x00000041 ,//0 DPFLTR_PCI_ID =0x00000042 ,//0 DPFLTR_DMIO_ID =0x00000043 ,//0 DPFLTR_DMCONFIG_ID =0x00000044 ,//0 DPFLTR_DMADMIN_ID =0x00000045 ,//0 DPFLTR_WSOCKTRANSPORT_ID =0x00000046 ,//0 DPFLTR_VSS_ID =0x00000047 ,//0 DPFLTR_PNPMEM_ID =0x00000048 ,//0 DPFLTR_PROCESSOR_ID =0x00000049 ,//0 DPFLTR_DMSERVER_ID =0x0000004a ,//0 DPFLTR_SR_ID =0x0000004b ,//0 DPFLTR_INFINIBAND_ID =0x0000004c ,//0 DPFLTR_IHVDRIVER_ID =0x0000004d ,//0 DPFLTR_IHVVIDEO_ID =0x0000004e ,//0 DPFLTR_IHVAUDIO_ID =0x0000004f ,//0 DPFLTR_IHVNETWORK_ID =0x00000050 ,//0 DPFLTR_IHVSTREAMING_ID =0x00000051 ,//0 DPFLTR_IHVBUS_ID =0x00000052 ,//0 DPFLTR_HPS_ID =0x00000053 ,//0 DPFLTR_RTLTHREADPOOL_ID =0x00000054 ,//0 DPFLTR_LDR_ID =0x00000055 ,//0 DPFLTR_TCPIP6_ID =0x00000056 ,//0 DPFLTR_ISAPNP_ID =0x00000057 ,//0 DPFLTR_SHPC_ID =0x00000058 ,//0 DPFLTR_STORPORT_ID =0x00000059 ,//0 DPFLTR_STORMINIPORT_ID =0x0000005a ,//0 DPFLTR_PRINTSPOOLER_ID =0x0000005b ,//0 DPFLTR_VSSDYNDISK_ID =0x0000005c ,//0 DPFLTR_VERIFIER_ID =0x0000005d ,//0 DPFLTR_VDS_ID =0x0000005e ,//0 DPFLTR_VDSBAS_ID =0x0000005f ,//0 DPFLTR_VDSDYN_ID =0x00000060 ,//0 DPFLTR_VDSDYNDR_ID =0x00000061 ,//0 DPFLTR_VDSLDR_ID =0x00000062 ,//0 DPFLTR_VDSUTIL_ID =0x00000063 ,//0 DPFLTR_DFRGIFC_ID =0x00000064 ,//0 DPFLTR_DEFAULT_ID =0x00000065 ,//0 DPFLTR_MM_ID =0x00000066 ,//0 DPFLTR_DFSC_ID =0x00000067 ,//0 DPFLTR_WOW64_ID =0x00000068 ,//0 DPFLTR_ALPC_ID =0x00000069 ,//0 DPFLTR_WDI_ID =0x0000006a ,//0 DPFLTR_PERFLIB_ID =0x0000006b ,//0 DPFLTR_KTM_ID =0x0000006c ,//0 DPFLTR_IOSTRESS_ID =0x0000006d ,//0 DPFLTR_HEAP_ID =0x0000006e ,//0 DPFLTR_WHEA_ID =0x0000006f ,//0 DPFLTR_USERGDI_ID =0x00000070 ,//0 DPFLTR_MMCSS_ID =0x00000071 ,//0 DPFLTR_TPM_ID =0x00000072 ,//0 DPFLTR_THREADORDER_ID =0x00000073 ,//0 DPFLTR_ENVIRON_ID =0x00000074 ,//0 DPFLTR_EMS_ID =0x00000075 ,//0 DPFLTR_WDT_ID =0x00000076 ,//0 DPFLTR_FVEVOL_ID =0x00000077 ,//0 DPFLTR_NDIS_ID =0x00000078 ,//0 DPFLTR_NVCTRACE_ID =0x00000079 ,//0 DPFLTR_LUAFV_ID =0x0000007a ,//0 DPFLTR_APPCOMPAT_ID =0x0000007b ,//0 DPFLTR_USBSTOR_ID =0x0000007c ,//0 DPFLTR_SBP2PORT_ID =0x0000007d ,//0 DPFLTR_COVERAGE_ID =0x0000007e ,//0 DPFLTR_CACHEMGR_ID =0x0000007f ,//0 DPFLTR_MOUNTMGR_ID =0x00000080 ,//0 DPFLTR_CFR_ID =0x00000081 ,//0 DPFLTR_TXF_ID =0x00000082 ,//0 DPFLTR_KSECDD_ID =0x00000083 ,//0 DPFLTR_FLTREGRESS_ID =0x00000084 ,//0 DPFLTR_MPIO_ID =0x00000085 ,//0 DPFLTR_MSDSM_ID =0x00000086 ,//0 DPFLTR_UDFS_ID =0x00000087 ,//0 DPFLTR_PSHED_ID =0x00000088 ,//0 DPFLTR_STORVSP_ID =0x00000089 ,//0 DPFLTR_LSASS_ID =0x0000008a ,//0 DPFLTR_SSPICLI_ID =0x0000008b ,//0 DPFLTR_CNG_ID =0x0000008c ,//0 DPFLTR_EXFAT_ID =0x0000008d ,//0 DPFLTR_FILETRACE_ID =0x0000008e ,//0 DPFLTR_XSAVE_ID =0x0000008f ,//0 DPFLTR_SE_ID =0x00000090 ,//0 DPFLTR_DRIVEEXTENDER_ID =0x00000091 ,//0 DPFLTR_ENDOFTABLE_ID =0x00000092 ,//0 }; struct _VF_TRACKER_STAMP /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char Flags:8 /* start bit 0 */; /* off 0x0005 */ unsigned char OldIrql:8 /* start bit 0 */; /* off 0x0006 */ unsigned char NewIrql:8 /* start bit 0 */; /* off 0x0007 */ unsigned char Processor:8 /* start bit 0 */; }; struct _VI_TRACK_IRQL /* sizeof 00000020 32 */ { /* off 0x0000 */ void* Thread; /* off 0x0004 */ unsigned char OldIrql; /* off 0x0005 */ unsigned char NewIrql; /* off 0x0006 */ unsigned short Processor; /* off 0x0008 */ unsigned long TickCount; /* off 0x000c */ void* StackTrace[5]; }; enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined =0x00000000 ,//0 CmResourceShareDeviceExclusive =0x00000001 ,//0 CmResourceShareDriverExclusive =0x00000002 ,//0 CmResourceShareShared =0x00000003 ,//0 }; struct _ALIGNED_AFFINITY_SUMMARY /* sizeof 00000040 64 */ { /* off 0x0000 */ struct _KAFFINITY_EX CpuSet; /* off 0x000c */ struct _KAFFINITY_EX SMTSet; }; enum _MM_PREEMPTIVE_TRIMS { MmPreemptForNonPaged =0x00000000 ,//0 MmPreemptForPaged =0x00000001 ,//0 MmPreemptForNonPagedPriority =0x00000002 ,//0 MmPreemptForPagedPriority =0x00000003 ,//0 MmMaximumPreempt =0x00000004 ,//0 }; struct _POOL_TRACKER_TABLE /* sizeof 0000001c 28 */ { /* off 0x0000 */ long Key; /* off 0x0004 */ long NonPagedAllocs; /* off 0x0008 */ long NonPagedFrees; /* off 0x000c */ unsigned long NonPagedBytes; /* off 0x0010 */ unsigned long PagedAllocs; /* off 0x0014 */ unsigned long PagedFrees; /* off 0x0018 */ unsigned long PagedBytes; }; struct _SEGMENT_OBJECT /* sizeof 00000028 40 */ { /* off 0x0000 */ void* BaseAddress; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ union _LARGE_INTEGER SizeOfSegment; /* off 0x0010 */ unsigned long NonExtendedPtes; /* off 0x0014 */ unsigned long ImageCommitment; /* off 0x0018 */ struct _CONTROL_AREA* ControlArea; /* off 0x001c */ struct _SUBSECTION* Subsection; /* off 0x0020 */ struct _MMSECTION_FLAGS* MmSectionFlags; /* off 0x0024 */ struct _MMSUBSECTION_FLAGS* MmSubSectionFlags; }; enum LSA_FOREST_TRUST_RECORD_TYPE { ForestTrustTopLevelName =0x00000000 ,//0 ForestTrustTopLevelNameEx =0x00000001 ,//0 ForestTrustDomainInfo =0x00000002 ,//0 ForestTrustRecordTypeLast =0x00000002 ,//0 }; enum SYSTEM_POWER_CONDITION { PoAc =0x00000000 ,//0 PoDc =0x00000001 ,//0 PoHot =0x00000002 ,//0 PoConditionMaximum =0x00000003 ,//0 }; struct _MEMORY_ALLOCATION_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ enum _TYPE_OF_MEMORY MemoryType; /* off 0x000c */ unsigned long BasePage; /* off 0x0010 */ unsigned long PageCount; }; enum _TYPE_OF_MEMORY { LoaderExceptionBlock =0x00000000 ,//0 LoaderSystemBlock =0x00000001 ,//0 LoaderFree =0x00000002 ,//0 LoaderBad =0x00000003 ,//0 LoaderLoadedProgram =0x00000004 ,//0 LoaderFirmwareTemporary =0x00000005 ,//0 LoaderFirmwarePermanent =0x00000006 ,//0 LoaderOsloaderHeap =0x00000007 ,//0 LoaderOsloaderStack =0x00000008 ,//0 LoaderSystemCode =0x00000009 ,//0 LoaderHalCode =0x0000000a ,//0 LoaderBootDriver =0x0000000b ,//0 LoaderConsoleInDriver =0x0000000c ,//0 LoaderConsoleOutDriver =0x0000000d ,//0 LoaderStartupDpcStack =0x0000000e ,//0 LoaderStartupKernelStack =0x0000000f ,//0 LoaderStartupPanicStack =0x00000010 ,//0 LoaderStartupPcrPage =0x00000011 ,//0 LoaderStartupPdrPage =0x00000012 ,//0 LoaderRegistryData =0x00000013 ,//0 LoaderMemoryData =0x00000014 ,//0 LoaderNlsData =0x00000015 ,//0 LoaderSpecialMemory =0x00000016 ,//0 LoaderBBTMemory =0x00000017 ,//0 LoaderReserve =0x00000018 ,//0 LoaderXIPRom =0x00000019 ,//0 LoaderHALCachedMemory =0x0000001a ,//0 LoaderLargePageFiller =0x0000001b ,//0 LoaderErrorLogMemory =0x0000001c ,//0 LoaderMaximum =0x0000001d ,//0 }; struct _THERMAL_INFORMATION /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned long ThermalStamp; /* off 0x0004 */ unsigned long ThermalConstant1; /* off 0x0008 */ unsigned long ThermalConstant2; /* off 0x000c */ unsigned long Processors; /* off 0x0010 */ unsigned long SamplingPeriod; /* off 0x0014 */ unsigned long CurrentTemperature; /* off 0x0018 */ unsigned long PassiveTripPoint; /* off 0x001c */ unsigned long CriticalTripPoint; /* off 0x0020 */ unsigned char ActiveTripPointCount; /* off 0x0024 */ unsigned long ActiveTripPoint[10]; }; struct _MAPPED_FILE_SEGMENT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _CONTROL_AREA* ControlArea; /* off 0x0004 */ unsigned long TotalNumberOfPtes; /* off 0x0008 */ struct _SEGMENT_FLAGS SegmentFlags; /* off 0x000c */ unsigned long NumberOfCommittedPages; /* off 0x0010 */ unsigned __int64 SizeOfSegment; union { /* off 0x0018 */ struct _MMEXTEND_INFO* ExtendInfo; /* off 0x0018 */ void* BasedAddress; }; /* off 0x001c */ struct _EX_PUSH_LOCK SegmentLock; }; struct _MM_DRIVER_VERIFIER_DATA /* sizeof 00000084 132 */ { /* off 0x0000 */ unsigned long Level; /* off 0x0004 */ unsigned long RaiseIrqls; /* off 0x0008 */ unsigned long AcquireSpinLocks; /* off 0x000c */ unsigned long SynchronizeExecutions; /* off 0x0010 */ unsigned long AllocationsAttempted; /* off 0x0014 */ unsigned long AllocationsSucceeded; /* off 0x0018 */ unsigned long AllocationsSucceededSpecialPool; /* off 0x001c */ unsigned long AllocationsWithNoTag; /* off 0x0020 */ unsigned long TrimRequests; /* off 0x0024 */ unsigned long Trims; /* off 0x0028 */ unsigned long AllocationsFailed; /* off 0x002c */ unsigned long AllocationsFailedDeliberately; /* off 0x0030 */ unsigned long Loads; /* off 0x0034 */ unsigned long Unloads; /* off 0x0038 */ unsigned long UnTrackedPool; /* off 0x003c */ unsigned long UserTrims; /* off 0x0040 */ unsigned long CurrentPagedPoolAllocations; /* off 0x0044 */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0048 */ unsigned long PeakPagedPoolAllocations; /* off 0x004c */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0050 */ unsigned long PagedBytes; /* off 0x0054 */ unsigned long NonPagedBytes; /* off 0x0058 */ unsigned long PeakPagedBytes; /* off 0x005c */ unsigned long PeakNonPagedBytes; /* off 0x0060 */ unsigned long BurstAllocationsFailedDeliberately; /* off 0x0064 */ unsigned long SessionTrims; /* off 0x0068 */ unsigned long OptionChanges; /* off 0x006c */ unsigned long VerifyMode; /* off 0x0070 */ struct _UNICODE_STRING PreviousBucketName; /* off 0x0078 */ unsigned long ActivityCounter; /* off 0x007c */ unsigned long PreviousActivityCounter; /* off 0x0080 */ unsigned long WorkerTrimRequests; }; struct _VI_FAULT_TRACE /* sizeof 00000024 36 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[8]; }; struct _ETIMER /* sizeof 00000098 152 */ { /* off 0x0000 */ struct _KTIMER KeTimer; /* off 0x0028 */ struct _KAPC TimerApc; /* off 0x0058 */ struct _KDPC TimerDpc; /* off 0x0078 */ struct _LIST_ENTRY ActiveTimerListEntry; /* off 0x0080 */ unsigned long Lock; /* off 0x0084 */ long Period; /* off 0x0088 */ unsigned char ApcAssociated; /* off 0x008c */ struct _DIAGNOSTIC_CONTEXT* WakeReason; /* off 0x0090 */ struct _LIST_ENTRY WakeTimerListEntry; }; struct _DIAGNOSTIC_CONTEXT /* sizeof 00000010 16 */ { /* off 0x0000 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0004 */ struct _EPROCESS* Process; /* off 0x0008 */ unsigned long ServiceTag; }; struct { /* off 0x0004 */ struct _DEVICE_OBJECT* DeviceObject; }; }; /* off 0x000c */ unsigned long ReasonSize; }; enum _REQUESTER_TYPE { KernelRequester =0x00000000 ,//0 UserProcessRequester =0x00000001 ,//0 UserSharedServiceRequester =0x00000002 ,//0 }; struct _POOL_HEADER /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short PreviousSize:9 /* start bit 0 */; struct { /* off 0x0000 */ unsigned short PoolIndex:7 /* start bit 9 */; }; /* off 0x0002 */ unsigned short BlockSize:9 /* start bit 0 */; /* off 0x0002 */ unsigned short PoolType:7 /* start bit 9 */; }; struct { /* off 0x0000 */ unsigned long Ulong1; }; }; union { /* off 0x0004 */ unsigned long PoolTag; struct { /* off 0x0004 */ unsigned short AllocatorBackTraceIndex; /* off 0x0006 */ unsigned short PoolTagHash; }; }; }; struct _POOL_BLOCK_HEAD /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ struct _LIST_ENTRY List; }; struct _ARBITER_ORDERING_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned short Count; /* off 0x0002 */ unsigned short Maximum; /* off 0x0004 */ struct _ARBITER_ORDERING* Orderings; }; struct _ARBITER_INSTANCE /* sizeof 000005ec 1516 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _KEVENT* MutexEvent; /* off 0x0008 */ unsigned short* Name; /* off 0x000c */ unsigned short* OrderingName; /* off 0x0010 */ int ResourceType; /* off 0x0014 */ struct _RTL_RANGE_LIST* Allocation; /* off 0x0018 */ struct _RTL_RANGE_LIST* PossibleAllocation; /* off 0x001c */ struct _ARBITER_ORDERING_LIST OrderingList; /* off 0x0024 */ struct _ARBITER_ORDERING_LIST ReservedList; /* off 0x002c */ long ReferenceCount; /* off 0x0030 */ struct _ARBITER_INTERFACE* Interface; /* off 0x0034 */ unsigned long AllocationStackMaxSize; /* off 0x0038 */ struct _ARBITER_ALLOCATION_STATE* AllocationStack; /* off 0x003c */ long( __stdcall *UnpackRequirement)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*,unsigned __int64*,unsigned __int64*); /* off 0x0040 */ long( __stdcall *PackResource)(struct _IO_RESOURCE_DESCRIPTOR*,unsigned __int64,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*); /* off 0x0044 */ long( __stdcall *UnpackResource)(struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,unsigned __int64*,unsigned __int64*); /* off 0x0048 */ long( __stdcall *ScoreRequirement)(struct _IO_RESOURCE_DESCRIPTOR*); /* off 0x004c */ long( __stdcall *TestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_TEST_ALLOCATION_PARAMETERS*); /* off 0x0050 */ long( __stdcall *RetestAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_RETEST_ALLOCATION_PARAMETERS*); /* off 0x0054 */ long( __stdcall *CommitAllocation)(struct _ARBITER_INSTANCE*); /* off 0x0058 */ long( __stdcall *RollbackAllocation)(struct _ARBITER_INSTANCE*); /* off 0x005c */ long( __stdcall *BootAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_BOOT_ALLOCATION_PARAMETERS*); /* off 0x0060 */ long( __stdcall *QueryArbitrate)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_ARBITRATE_PARAMETERS*); /* off 0x0064 */ long( __stdcall *QueryConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_QUERY_CONFLICT_PARAMETERS*); /* off 0x0068 */ long( __stdcall *AddReserved)(struct _ARBITER_INSTANCE*,struct _ARBITER_ADD_RESERVED_PARAMETERS*); /* off 0x006c */ long( __stdcall *StartArbiter)(struct _ARBITER_INSTANCE*,struct _CM_RESOURCE_LIST*); /* off 0x0070 */ long( __stdcall *PreprocessEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0074 */ long( __stdcall *AllocateEntry)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0078 */ unsigned char( __stdcall *GetNextAllocationRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x007c */ unsigned char( __stdcall *FindSuitableRange)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0080 */ void( __stdcall *AddAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0084 */ void( __stdcall *BacktrackAllocation)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x0088 */ unsigned char( __stdcall *OverrideConflict)(struct _ARBITER_INSTANCE*,struct _ARBITER_ALLOCATION_STATE*); /* off 0x008c */ long( __stdcall *InitializeRangeList)(struct _ARBITER_INSTANCE*,unsigned long,struct _CM_PARTIAL_RESOURCE_DESCRIPTOR*,struct _RTL_RANGE_LIST*); /* off 0x0090 */ unsigned char TransactionInProgress; /* off 0x0094 */ struct _KEVENT* TransactionEvent; /* off 0x0098 */ void* Extension; /* off 0x009c */ struct _DEVICE_OBJECT* BusDeviceObject; /* off 0x00a0 */ void* ConflictCallbackContext; /* off 0x00a4 */ unsigned char( __stdcall *ConflictCallback)(void*,struct _RTL_RANGE*); /* off 0x00a8 */ wchar PdoDescriptionString[336]; /* off 0x0348 */ char PdoSymbolicNameString[672]; /* off 0x05e8 */ wchar PdoAddressString[1]; }; struct _RTL_RANGE_LIST /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ unsigned long Stamp; }; struct _ARBITER_ORDERING /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; }; struct _ARBITER_INTERFACE /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned short Size; /* off 0x0002 */ unsigned short Version; /* off 0x0004 */ void* Context; /* off 0x0008 */ void( __stdcall *InterfaceReference)(void*); /* off 0x000c */ void( __stdcall *InterfaceDereference)(void*); /* off 0x0010 */ long( __stdcall *ArbiterHandler)(void*,enum _ARBITER_ACTION,struct _ARBITER_PARAMETERS*); /* off 0x0014 */ unsigned long Flags; }; enum _ARBITER_ACTION { ArbiterActionTestAllocation =0x00000000 ,//0 ArbiterActionRetestAllocation =0x00000001 ,//0 ArbiterActionCommitAllocation =0x00000002 ,//0 ArbiterActionRollbackAllocation =0x00000003 ,//0 ArbiterActionQueryAllocatedResources =0x00000004 ,//0 ArbiterActionWriteReservedResources =0x00000005 ,//0 ArbiterActionQueryConflict =0x00000006 ,//0 ArbiterActionQueryArbitrate =0x00000007 ,//0 ArbiterActionAddReserved =0x00000008 ,//0 ArbiterActionBootAllocation =0x00000009 ,//0 }; struct _ARBITER_TEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_RETEST_ALLOCATION_PARAMETERS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; /* off 0x0004 */ unsigned long AllocateFromCount; /* off 0x0008 */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* AllocateFrom; }; struct _ARBITER_BOOT_ALLOCATION_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _CM_PARTIAL_RESOURCE_LIST** AllocatedResources; }; struct _ARBITER_QUERY_CONFLICT_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0004 */ struct _IO_RESOURCE_DESCRIPTOR* ConflictingResource; /* off 0x0008 */ unsigned long* ConflictCount; /* off 0x000c */ struct _ARBITER_CONFLICT_INFO** Conflicts; }; struct _ARBITER_QUERY_ARBITRATE_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _LIST_ENTRY* ArbitrationList; }; struct _ARBITER_ADD_RESERVED_PARAMETERS /* sizeof 00000004 4 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* ReserveDevice; }; struct _ARBITER_PARAMETERS /* sizeof 00000010 16 */ { /* off 0x0000 */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _ARBITER_TEST_ALLOCATION_PARAMETERS TestAllocation; /* off 0x0000 */ struct _ARBITER_RETEST_ALLOCATION_PARAMETERS RetestAllocation; /* off 0x0000 */ struct _ARBITER_BOOT_ALLOCATION_PARAMETERS BootAllocation; /* off 0x0000 */ struct _ARBITER_QUERY_ALLOCATED_RESOURCES_PARAMETERS QueryAllocatedResources; /* off 0x0000 */ struct _ARBITER_QUERY_CONFLICT_PARAMETERS QueryConflict; /* off 0x0000 */ struct _ARBITER_QUERY_ARBITRATE_PARAMETERS QueryArbitrate; /* off 0x0000 */ struct _ARBITER_ADD_RESERVED_PARAMETERS AddReserved; } Parameters; }; struct _ARBITER_CONFLICT_INFO /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _DEVICE_OBJECT* OwningObject; /* off 0x0008 */ unsigned __int64 Start; /* off 0x0010 */ unsigned __int64 End; }; struct _ARBITER_ALLOCATION_STATE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ unsigned __int64 CurrentMinimum; /* off 0x0018 */ unsigned __int64 CurrentMaximum; /* off 0x0020 */ struct _ARBITER_LIST_ENTRY* Entry; /* off 0x0024 */ struct _ARBITER_ALTERNATIVE* CurrentAlternative; /* off 0x0028 */ unsigned long AlternativeCount; /* off 0x002c */ struct _ARBITER_ALTERNATIVE* Alternatives; /* off 0x0030 */ unsigned short Flags; /* off 0x0032 */ unsigned char RangeAttributes; /* off 0x0033 */ unsigned char RangeAvailableAttributes; /* off 0x0034 */ unsigned long WorkSpace; }; struct _ARBITER_LIST_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ unsigned long AlternativeCount; /* off 0x000c */ struct _IO_RESOURCE_DESCRIPTOR* Alternatives; /* off 0x0010 */ struct _DEVICE_OBJECT* PhysicalDeviceObject; /* off 0x0014 */ enum _ARBITER_REQUEST_SOURCE RequestSource; /* off 0x0018 */ unsigned long Flags; /* off 0x001c */ long WorkSpace; /* off 0x0020 */ enum _INTERFACE_TYPE InterfaceType; /* off 0x0024 */ unsigned long SlotNumber; /* off 0x0028 */ unsigned long BusNumber; /* off 0x002c */ struct _CM_PARTIAL_RESOURCE_DESCRIPTOR* Assignment; /* off 0x0030 */ struct _IO_RESOURCE_DESCRIPTOR* SelectedAlternative; /* off 0x0034 */ enum _ARBITER_RESULT Result; }; enum _ARBITER_RESULT { ArbiterResultUndefined =0xffffffff ,//-1 ArbiterResultSuccess =0x00000000 ,//0 ArbiterResultExternalConflict =0x00000001 ,//0 ArbiterResultNullRequest =0x00000002 ,//0 }; struct _ARBITER_ALTERNATIVE /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned __int64 Minimum; /* off 0x0008 */ unsigned __int64 Maximum; /* off 0x0010 */ unsigned __int64 Length; /* off 0x0018 */ unsigned __int64 Alignment; /* off 0x0020 */ long Priority; /* off 0x0024 */ unsigned long Flags; /* off 0x0028 */ struct _IO_RESOURCE_DESCRIPTOR* Descriptor; /* off 0x002c */ unsigned long Reserved[3]; }; struct _RTL_RANGE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; /* off 0x0010 */ void* UserData; /* off 0x0014 */ void* Owner; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char Flags; }; struct _POP_ACTION_TRIGGER /* sizeof 00000010 16 */ { /* off 0x0000 */ enum POWER_POLICY_DEVICE_TYPE Type; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ struct _POP_TRIGGER_WAIT* Wait; union { /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Level; } Battery; /* off 0x000c */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Type; } Button; }; }; struct _POP_THERMAL_ZONE_METRICS /* sizeof 00000068 104 */ { /* off 0x0000 */ struct _ERESOURCE MetricsResource; /* off 0x0038 */ unsigned long ActiveCount; /* off 0x003c */ unsigned long PassiveCount; /* off 0x0040 */ union _LARGE_INTEGER LastActiveStartTick; /* off 0x0048 */ union _LARGE_INTEGER AverageActiveTime; /* off 0x0050 */ union _LARGE_INTEGER LastPassiveStartTick; /* off 0x0058 */ union _LARGE_INTEGER AveragePassiveTime; /* off 0x0060 */ union _LARGE_INTEGER StartTickSinceLastReset; }; struct _POP_THERMAL_ZONE /* sizeof 00000150 336 */ { /* off 0x0000 */ struct _LIST_ENTRY Link; /* off 0x0008 */ unsigned char State; /* off 0x0009 */ unsigned char Flags; /* off 0x000a */ unsigned char Mode; /* off 0x000b */ unsigned char PendingMode; /* off 0x000c */ unsigned char ActivePoint; /* off 0x000d */ unsigned char PendingActivePoint; /* off 0x0010 */ long Throttle; /* off 0x0018 */ unsigned __int64 LastTime; /* off 0x0020 */ unsigned long SampleRate; /* off 0x0024 */ unsigned long LastTemp; /* off 0x0028 */ struct _KTIMER PassiveTimer; /* off 0x0050 */ struct _KDPC PassiveDpc; /* off 0x0070 */ struct _POP_ACTION_TRIGGER OverThrottled; /* off 0x0080 */ struct _IRP* Irp; /* off 0x0084 */ struct _THERMAL_INFORMATION_EX Info; /* off 0x00e0 */ union _LARGE_INTEGER InfoLastUpdateTime; /* off 0x00e8 */ struct _POP_THERMAL_ZONE_METRICS Metrics; }; enum POWER_POLICY_DEVICE_TYPE { PolicyDeviceSystemButton =0x00000000 ,//0 PolicyDeviceThermalZone =0x00000001 ,//0 PolicyDeviceBattery =0x00000002 ,//0 PolicyDeviceMemory =0x00000003 ,//0 PolicyInitiatePowerActionAPI =0x00000004 ,//0 PolicySetPowerStateAPI =0x00000005 ,//0 PolicyImmediateDozeS4 =0x00000006 ,//0 PolicySystemIdle =0x00000007 ,//0 PolicyDeviceMax =0x00000008 ,//0 }; struct _POP_TRIGGER_WAIT /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KEVENT Event; /* off 0x0010 */ long Status; /* off 0x0014 */ struct _LIST_ENTRY Link; /* off 0x001c */ struct _POP_ACTION_TRIGGER* Trigger; }; enum _MI_SYSTEM_VA_TYPE { MiVaUnused =0x00000000 ,//0 MiVaSessionSpace =0x00000001 ,//0 MiVaProcessSpace =0x00000002 ,//0 MiVaBootLoaded =0x00000003 ,//0 MiVaPfnDatabase =0x00000004 ,//0 MiVaNonPagedPool =0x00000005 ,//0 MiVaPagedPool =0x00000006 ,//0 MiVaSpecialPoolPaged =0x00000007 ,//0 MiVaSystemCache =0x00000008 ,//0 MiVaSystemPtes =0x00000009 ,//0 MiVaHal =0x0000000a ,//0 MiVaSessionGlobalSpace =0x0000000b ,//0 MiVaDriverImages =0x0000000c ,//0 MiVaSpecialPoolNonPaged =0x0000000d ,//0 MiVaMaximumType =0x0000000e ,//0 }; struct _POOL_HACKER /* sizeof 00000028 40 */ { /* off 0x0000 */ struct _POOL_HEADER Header; /* off 0x0008 */ unsigned long Contents[8]; }; struct _VF_BTS_DATA_MANAGEMENT_AREA /* sizeof 00000034 52 */ { /* off 0x0000 */ void* BTSBufferBase; /* off 0x0004 */ void* BTSIndex; /* off 0x0008 */ void* BTSMax; /* off 0x000c */ void* BTSInterruptThreshold; /* off 0x0010 */ void* PEBSBufferBase; /* off 0x0014 */ void* PEBSIndex; /* off 0x0018 */ void* PEBSMax; /* off 0x001c */ void* PEBSInterruptThreshold; /* off 0x0020 */ void* PEBSCounterReset[2]; /* off 0x0028 */ char Reserved[12]; }; struct _VF_AVL_TREE_NODE /* sizeof 00000008 8 */ { /* off 0x0000 */ void* p; /* off 0x0004 */ unsigned long RangeSize; }; struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VERIFIER_SHARED_EXPORT_THUNK* SharedExportThunks; /* off 0x0004 */ struct _VERIFIER_SHARED_EXPORT_THUNK* PoolSharedExportThunks; /* off 0x0008 */ struct _VERIFIER_SHARED_EXPORT_THUNK* OrderDependentSharedExportThunks; }; struct _VF_TARGET_DRIVER /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _VF_AVL_TREE_NODE TreeNode; /* off 0x0008 */ union /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _VF_TARGET_ALL_SHARED_EXPORT_THUNKS AllSharedExportThunks; /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long SnapSharedExportsFailed:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; } u1; /* off 0x0014 */ struct _VF_TARGET_VERIFIED_DRIVER_DATA* VerifiedData; }; struct _VERIFIER_SHARED_EXPORT_THUNK /* sizeof 00000000 0 */ { }; struct _VF_TARGET_VERIFIED_DRIVER_DATA /* sizeof 00000090 144 */ { /* off 0x0000 */ struct _VF_SUSPECT_DRIVER_ENTRY* SuspectDriverEntry; /* off 0x0004 */ void* WMICallback; /* off 0x0008 */ struct _LIST_ENTRY EtwHandlesListHead; /* off 0x0010 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ struct /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long MissedEtwRegistration:1 /* start bit 0 */; /* off 0x0000 */ unsigned long Spare:31 /* start bit 1 */; } Flags; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0014 */ unsigned long Signature; /* off 0x0018 */ union _SLIST_HEADER PoolPageHeaders; /* off 0x0020 */ union _SLIST_HEADER PoolTrackers; /* off 0x0028 */ unsigned long CurrentPagedPoolAllocations; /* off 0x002c */ unsigned long CurrentNonPagedPoolAllocations; /* off 0x0030 */ unsigned long PeakPagedPoolAllocations; /* off 0x0034 */ unsigned long PeakNonPagedPoolAllocations; /* off 0x0038 */ unsigned long PagedBytes; /* off 0x003c */ unsigned long NonPagedBytes; /* off 0x0040 */ unsigned long PeakPagedBytes; /* off 0x0044 */ unsigned long PeakNonPagedBytes; /* off 0x0048 */ unsigned long RaiseIrqls; /* off 0x004c */ unsigned long AcquireSpinLocks; /* off 0x0050 */ unsigned long SynchronizeExecutions; /* off 0x0054 */ unsigned long AllocationsWithNoTag; /* off 0x0058 */ unsigned long AllocationsFailed; /* off 0x005c */ unsigned long AllocationsFailedDeliberately; /* off 0x0060 */ unsigned long LockedBytes; /* off 0x0064 */ unsigned long PeakLockedBytes; /* off 0x0068 */ unsigned long MappedLockedBytes; /* off 0x006c */ unsigned long PeakMappedLockedBytes; /* off 0x0070 */ unsigned long MappedIoSpaceBytes; /* off 0x0074 */ unsigned long PeakMappedIoSpaceBytes; /* off 0x0078 */ unsigned long PagesForMdlBytes; /* off 0x007c */ unsigned long PeakPagesForMdlBytes; /* off 0x0080 */ unsigned long ContiguousMemoryBytes; /* off 0x0084 */ unsigned long PeakContiguousMemoryBytes; /* off 0x0088 */ struct _LIST_ENTRY ContiguousMemoryListHead; }; struct _VF_SUSPECT_DRIVER_ENTRY /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _LIST_ENTRY Links; /* off 0x0008 */ unsigned long Loads; /* off 0x000c */ unsigned long Unloads; /* off 0x0010 */ struct _UNICODE_STRING BaseName; }; struct PROCESSOR_PERFSTATE_POLICY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ unsigned char MaxThrottle; /* off 0x0005 */ unsigned char MinThrottle; /* off 0x0006 */ unsigned char BusyAdjThreshold; union { /* off 0x0007 */ unsigned char Spare; /* off 0x0007 */ union /* sizeof 00000001 1 */ { /* off 0x0000 */ unsigned char AsUCHAR; struct { /* off 0x0000 */ unsigned char NoDomainAccounting:1 /* start bit 0 */; /* off 0x0000 */ unsigned char IncreasePolicy:2 /* start bit 1 */; /* off 0x0000 */ unsigned char DecreasePolicy:2 /* start bit 3 */; /* off 0x0000 */ unsigned char Reserved:3 /* start bit 5 */; }; } Flags; }; /* off 0x0008 */ unsigned long TimeCheck; /* off 0x000c */ unsigned long IncreaseTime; /* off 0x0010 */ unsigned long DecreaseTime; /* off 0x0014 */ unsigned long IncreasePercent; /* off 0x0018 */ unsigned long DecreasePercent; }; struct _BUS_EXTENSION_LIST /* sizeof 00000008 8 */ { /* off 0x0000 */ void* Next; /* off 0x0004 */ struct _PI_BUS_EXTENSION* BusExtension; }; enum _MM_POOL_TYPES { MmNonPagedPool =0x00000000 ,//0 MmPagedPool =0x00000001 ,//0 MmSessionPagedPool =0x00000002 ,//0 MmMaximumPoolType =0x00000003 ,//0 }; enum _KWAIT_STATE { WaitInProgress =0x00000000 ,//0 WaitCommitted =0x00000001 ,//0 WaitAborted =0x00000002 ,//0 MaximumWaitState =0x00000003 ,//0 }; enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached =0x00000002 ,//0 }; struct _PF_KERNEL_GLOBALS /* sizeof 00000040 64 */ { /* off 0x0000 */ unsigned __int64 AccessBufferAgeThreshold; /* off 0x0008 */ struct _EX_RUNDOWN_REF AccessBufferRef; /* off 0x000c */ struct _KEVENT AccessBufferExistsEvent; /* off 0x001c */ unsigned long AccessBufferMax; /* off 0x0020 */ union _SLIST_HEADER AccessBufferList; /* off 0x0028 */ long StreamSequenceNumber; /* off 0x002c */ unsigned long Flags; /* off 0x0030 */ long ScenarioPrefetchCount; }; struct POWER_ACTION_POLICY /* sizeof 0000000c 12 */ { /* off 0x0000 */ enum POWER_ACTION Action; /* off 0x0004 */ unsigned long Flags; /* off 0x0008 */ unsigned long EventCode; }; struct _POP_SYSTEM_IDLE /* sizeof 00000038 56 */ { /* off 0x0000 */ long AverageIdleness; /* off 0x0004 */ long LowestIdleness; /* off 0x0008 */ unsigned long Time; /* off 0x000c */ unsigned long Timeout; /* off 0x0010 */ unsigned long LastUserInput; /* off 0x0014 */ struct POWER_ACTION_POLICY Action; /* off 0x0020 */ enum _SYSTEM_POWER_STATE MinState; /* off 0x0024 */ unsigned char SystemRequired; /* off 0x0025 */ unsigned char IdleWorker; /* off 0x0026 */ unsigned char Sampling; /* off 0x0028 */ unsigned __int64 LastTick; /* off 0x0030 */ unsigned long LastSystemRequiredTime; }; struct _IMAGE_SECTION_HEADER /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned char Name[8]; /* off 0x0008 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long PhysicalAddress; /* off 0x0000 */ unsigned long VirtualSize; } Misc; /* off 0x000c */ unsigned long VirtualAddress; /* off 0x0010 */ unsigned long SizeOfRawData; /* off 0x0014 */ unsigned long PointerToRawData; /* off 0x0018 */ unsigned long PointerToRelocations; /* off 0x001c */ unsigned long PointerToLinenumbers; /* off 0x0020 */ unsigned short NumberOfRelocations; /* off 0x0022 */ unsigned short NumberOfLinenumbers; /* off 0x0024 */ unsigned long Characteristics; }; enum _MM_POOL_PRIORITIES { MmHighPriority =0x00000000 ,//0 MmNormalPriority =0x00000001 ,//0 MmLowPriority =0x00000002 ,//0 MmMaximumPoolPriority =0x00000003 ,//0 }; struct _CM_CACHED_VALUE_INDEX /* sizeof 00000054 84 */ { /* off 0x0000 */ unsigned long CellIndex; /* off 0x0004 */ union /* sizeof 00000050 80 */ { /* off 0x0000 */ struct _CELL_DATA CellData; /* off 0x0000 */ unsigned long List[1]; } Data; }; struct _IMAGE_ROM_OPTIONAL_HEADER /* sizeof 00000038 56 */ { /* off 0x0000 */ unsigned short Magic; /* off 0x0002 */ unsigned char MajorLinkerVersion; /* off 0x0003 */ unsigned char MinorLinkerVersion; /* off 0x0004 */ unsigned long SizeOfCode; /* off 0x0008 */ unsigned long SizeOfInitializedData; /* off 0x000c */ unsigned long SizeOfUninitializedData; /* off 0x0010 */ unsigned long AddressOfEntryPoint; /* off 0x0014 */ unsigned long BaseOfCode; /* off 0x0018 */ unsigned long BaseOfData; /* off 0x001c */ unsigned long BaseOfBss; /* off 0x0020 */ unsigned long GprMask; /* off 0x0024 */ unsigned long CprMask[4]; /* off 0x0034 */ unsigned long GpValue; }; struct _IMAGE_DEBUG_DIRECTORY /* sizeof 0000001c 28 */ { /* off 0x0000 */ unsigned long Characteristics; /* off 0x0004 */ unsigned long TimeDateStamp; /* off 0x0008 */ unsigned short MajorVersion; /* off 0x000a */ unsigned short MinorVersion; /* off 0x000c */ unsigned long Type; /* off 0x0010 */ unsigned long SizeOfData; /* off 0x0014 */ unsigned long AddressOfRawData; /* off 0x0018 */ unsigned long PointerToRawData; }; enum _MODE { KernelMode =0x00000000 ,//0 UserMode =0x00000001 ,//0 MaximumMode =0x00000002 ,//0 }; struct _ETW_WMITRACE_WORK /* sizeof 000000f0 240 */ { /* off 0x0000 */ unsigned long LoggerId; union { struct { /* off 0x0008 */ char LoggerName[65]; /* off 0x0049 */ char FileName[129]; /* off 0x00cc */ unsigned long MaximumFileSize; /* off 0x00d0 */ unsigned long MinBuffers; /* off 0x00d4 */ unsigned long MaxBuffers; /* off 0x00d8 */ unsigned long BufferSize; /* off 0x00dc */ unsigned long Mode; /* off 0x00e0 */ unsigned long FlushTimer; }; struct { /* off 0x0008 */ unsigned __int64 MatchAny; /* off 0x0010 */ unsigned __int64 MatchAll; /* off 0x0018 */ unsigned long EnableProperty; /* off 0x001c */ struct _GUID Guid; /* off 0x002c */ unsigned char Level; }; }; /* off 0x00e8 */ long Status; }; struct _HEAP_DEBUGGING_INFORMATION /* sizeof 0000001c 28 */ { /* off 0x0000 */ void* InterceptorFunction; /* off 0x0004 */ unsigned short InterceptorValue; /* off 0x0008 */ unsigned long ExtendedOptions; /* off 0x000c */ unsigned long StackTraceDepth; /* off 0x0010 */ unsigned long MinTotalBlockSize; /* off 0x0014 */ unsigned long MaxTotalBlockSize; /* off 0x0018 */ long( __stdcall *HeapLeakEnumerationRoutine)(long,void*,void*,unsigned long,unsigned long,void*); }; struct _HEAP_ENTRY_EXTRA /* sizeof 00000008 8 */ { union { struct { /* off 0x0000 */ unsigned short AllocatorBackTraceIndex; /* off 0x0002 */ unsigned short TagIndex; /* off 0x0004 */ unsigned long Settable; }; /* off 0x0000 */ unsigned __int64 ZeroInit; }; }; struct _HEAP_VIRTUAL_ALLOC_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY Entry; /* off 0x0008 */ struct _HEAP_ENTRY_EXTRA ExtraStuff; /* off 0x0010 */ unsigned long CommitSize; /* off 0x0014 */ unsigned long ReserveSize; /* off 0x0018 */ struct _HEAP_ENTRY BusyBlock; }; struct _PNP_DEVICE_COMPLETION_REQUEST /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_NODE* DeviceNode; /* off 0x000c */ void* Context; /* off 0x0010 */ enum _PNP_DEVNODE_STATE CompletionState; /* off 0x0014 */ unsigned long IrpPended; /* off 0x0018 */ long Status; /* off 0x001c */ void* Information; /* off 0x0020 */ struct _WORK_QUEUE_ITEM WorkItem; /* off 0x0030 */ struct _DRIVER_OBJECT* FailingDriver; /* off 0x0034 */ long ReferenceCount; }; struct _SECTION_OBJECT /* sizeof 00000018 24 */ { /* off 0x0000 */ void* StartingVa; /* off 0x0004 */ void* EndingVa; /* off 0x0008 */ void* Parent; /* off 0x000c */ void* LeftChild; /* off 0x0010 */ void* RightChild; /* off 0x0014 */ struct _SEGMENT_OBJECT* Segment; }; struct _PPM_PERF_STATE /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long Frequency; /* off 0x0004 */ unsigned long Power; /* off 0x0008 */ unsigned char PercentFrequency; /* off 0x0009 */ unsigned char IncreaseLevel; /* off 0x000a */ unsigned char DecreaseLevel; /* off 0x000b */ unsigned char Type; /* off 0x0010 */ unsigned __int64 Control; /* off 0x0018 */ unsigned __int64 Status; /* off 0x0020 */ unsigned long TotalHitCount; /* off 0x0024 */ unsigned long DesiredCount; }; struct _PPM_PERF_STATES /* sizeof 00000080 128 */ { /* off 0x0000 */ unsigned long Count; /* off 0x0004 */ unsigned long MaxFrequency; /* off 0x0008 */ unsigned long PStateCap; /* off 0x000c */ unsigned long TStateCap; /* off 0x0010 */ unsigned long MaxPerfState; /* off 0x0014 */ unsigned long MinPerfState; /* off 0x0018 */ unsigned long LowestPState; /* off 0x001c */ unsigned long IncreaseTime; /* off 0x0020 */ unsigned long DecreaseTime; /* off 0x0024 */ unsigned char BusyAdjThreshold; /* off 0x0025 */ unsigned char Reserved; /* off 0x0026 */ unsigned char ThrottleStatesOnly; /* off 0x0027 */ unsigned char PolicyType; /* off 0x0028 */ unsigned long TimerInterval; /* off 0x002c */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long AsULONG; struct { /* off 0x0000 */ unsigned long IncreasePolicy:2 /* start bit 0 */; /* off 0x0000 */ unsigned long DecreasePolicy:2 /* start bit 2 */; /* off 0x0000 */ unsigned long Reserved:28 /* start bit 4 */; }; } Flags; /* off 0x0030 */ struct _KAFFINITY_EX TargetProcessors; /* off 0x003c */ long( __fastcall *PStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0040 */ unsigned long PStateContext; /* off 0x0044 */ long( __fastcall *TStateHandler)(unsigned long,unsigned __int64,unsigned __int64); /* off 0x0048 */ unsigned long TStateContext; /* off 0x004c */ unsigned char( __fastcall *FeedbackHandler)(unsigned long*,unsigned long,unsigned char); /* off 0x0050 */ void( __fastcall *GetFFHThrottleState)(unsigned __int64*); /* off 0x0058 */ struct _PPM_PERF_STATE State[1]; }; struct _HEAP_LOOKASIDE /* sizeof 00000030 48 */ { /* off 0x0000 */ union _SLIST_HEADER ListHead; /* off 0x0008 */ unsigned short Depth; /* off 0x000a */ unsigned short MaximumDepth; /* off 0x000c */ unsigned long TotalAllocates; /* off 0x0010 */ unsigned long AllocateMisses; /* off 0x0014 */ unsigned long TotalFrees; /* off 0x0018 */ unsigned long FreeMisses; /* off 0x001c */ unsigned long LastTotalAllocates; /* off 0x0020 */ unsigned long LastAllocateMisses; /* off 0x0024 */ unsigned long Counters[2]; }; struct _RTL_HANDLE_TABLE /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned long MaximumNumberOfHandles; /* off 0x0004 */ unsigned long SizeOfHandleTableEntry; /* off 0x0008 */ unsigned long Reserved[2]; /* off 0x0010 */ struct _RTL_HANDLE_TABLE_ENTRY* FreeHandles; /* off 0x0014 */ struct _RTL_HANDLE_TABLE_ENTRY* CommittedHandles; /* off 0x0018 */ struct _RTL_HANDLE_TABLE_ENTRY* UnCommittedHandles; /* off 0x001c */ struct _RTL_HANDLE_TABLE_ENTRY* MaxReservedHandles; }; struct _RTL_ATOM_TABLE /* sizeof 00000044 68 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ struct _RTL_CRITICAL_SECTION CriticalSection; /* off 0x001c */ struct _RTL_HANDLE_TABLE RtlHandleTable; /* off 0x003c */ unsigned long NumberOfBuckets; /* off 0x0040 */ struct _RTL_ATOM_TABLE_ENTRY* Buckets[1]; }; struct _RTL_HANDLE_TABLE_ENTRY /* sizeof 00000004 4 */ { union { /* off 0x0000 */ unsigned long Flags; /* off 0x0000 */ struct _RTL_HANDLE_TABLE_ENTRY* NextFree; }; }; struct _RTL_ATOM_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _RTL_ATOM_TABLE_ENTRY* HashLink; /* off 0x0004 */ unsigned short HandleIndex; /* off 0x0006 */ unsigned short Atom; /* off 0x0008 */ unsigned short ReferenceCount; /* off 0x000a */ unsigned char Flags; /* off 0x000b */ unsigned char NameLength; /* off 0x000c */ wchar Name[1]; }; struct BATTERY_REPORTING_SCALE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Granularity; /* off 0x0004 */ unsigned long Capacity; }; struct SYSTEM_POWER_CAPABILITIES /* sizeof 0000004c 76 */ { /* off 0x0000 */ unsigned char PowerButtonPresent; /* off 0x0001 */ unsigned char SleepButtonPresent; /* off 0x0002 */ unsigned char LidPresent; /* off 0x0003 */ unsigned char SystemS1; /* off 0x0004 */ unsigned char SystemS2; /* off 0x0005 */ unsigned char SystemS3; /* off 0x0006 */ unsigned char SystemS4; /* off 0x0007 */ unsigned char SystemS5; /* off 0x0008 */ unsigned char HiberFilePresent; /* off 0x0009 */ unsigned char FullWake; /* off 0x000a */ unsigned char VideoDimPresent; /* off 0x000b */ unsigned char ApmPresent; /* off 0x000c */ unsigned char UpsPresent; /* off 0x000d */ unsigned char ThermalControl; /* off 0x000e */ unsigned char ProcessorThrottle; /* off 0x000f */ unsigned char ProcessorMinThrottle; /* off 0x0010 */ unsigned char ProcessorMaxThrottle; /* off 0x0011 */ unsigned char FastSystemS4; /* off 0x0012 */ unsigned char spare2[3]; /* off 0x0015 */ unsigned char DiskSpinDown; /* off 0x0016 */ unsigned char spare3[8]; /* off 0x001e */ unsigned char SystemBatteriesPresent; /* off 0x001f */ unsigned char BatteriesAreShortTerm; /* off 0x0020 */ struct BATTERY_REPORTING_SCALE BatteryScale[3]; /* off 0x0038 */ enum _SYSTEM_POWER_STATE AcOnLineWake; /* off 0x003c */ enum _SYSTEM_POWER_STATE SoftLidWake; /* off 0x0040 */ enum _SYSTEM_POWER_STATE RtcWake; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinDeviceWakeState; /* off 0x0048 */ enum _SYSTEM_POWER_STATE DefaultLowLatencyWake; }; struct _POP_POWER_ACTION /* sizeof 000000b0 176 */ { /* off 0x0000 */ unsigned char Updates; /* off 0x0001 */ unsigned char State; /* off 0x0002 */ unsigned char Shutdown; /* off 0x0004 */ enum POWER_ACTION Action; /* off 0x0008 */ enum _SYSTEM_POWER_STATE LightestState; /* off 0x000c */ unsigned long Flags; /* off 0x0010 */ long Status; /* off 0x0014 */ enum POWER_POLICY_DEVICE_TYPE DeviceType; /* off 0x0018 */ unsigned long DeviceTypeFlags; /* off 0x001c */ unsigned char IrpMinor; /* off 0x001d */ unsigned char Waking; /* off 0x0020 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0024 */ enum _SYSTEM_POWER_STATE NextSystemState; /* off 0x0028 */ enum _SYSTEM_POWER_STATE EffectiveSystemState; /* off 0x002c */ enum _SYSTEM_POWER_STATE CurrentSystemState; /* off 0x0030 */ struct _POP_SHUTDOWN_BUG_CHECK* ShutdownBugCode; /* off 0x0034 */ struct _POP_DEVICE_SYS_STATE* DevState; /* off 0x0038 */ struct _POP_HIBER_CONTEXT* HiberContext; /* off 0x0040 */ unsigned __int64 WakeTime; /* off 0x0048 */ unsigned __int64 SleepTime; /* off 0x0050 */ unsigned __int64 ProgrammedRTCTime; /* off 0x0058 */ unsigned char WakeOnRTC; /* off 0x005c */ struct _DIAGNOSTIC_BUFFER* WakeTimerInfo; /* off 0x0060 */ struct SYSTEM_POWER_CAPABILITIES FilteredCapabilities; }; struct _POP_SHUTDOWN_BUG_CHECK /* sizeof 00000020 32 */ { /* off 0x0000 */ void* ThreadHandle; /* off 0x0004 */ void* ThreadId; /* off 0x0008 */ void* ProcessId; /* off 0x000c */ unsigned long Code; /* off 0x0010 */ unsigned long Parameter1; /* off 0x0014 */ unsigned long Parameter2; /* off 0x0018 */ unsigned long Parameter3; /* off 0x001c */ unsigned long Parameter4; }; struct _PO_NOTIFY_ORDER_LEVEL /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned long DeviceCount; /* off 0x0004 */ unsigned long ActiveCount; /* off 0x0008 */ struct _LIST_ENTRY WaitSleep; /* off 0x0010 */ struct _LIST_ENTRY ReadySleep; /* off 0x0018 */ struct _LIST_ENTRY ReadyS0; /* off 0x0020 */ struct _LIST_ENTRY WaitS0; }; struct _PO_DEVICE_NOTIFY_ORDER /* sizeof 00000170 368 */ { /* off 0x0000 */ unsigned char Locked; /* off 0x0004 */ struct _DEVICE_OBJECT** WarmEjectPdoPointer; /* off 0x0008 */ struct _PO_NOTIFY_ORDER_LEVEL OrderLevel[9]; }; struct _POP_DEVICE_SYS_STATE /* sizeof 000001a8 424 */ { /* off 0x0000 */ unsigned char IrpMinor; /* off 0x0004 */ enum _SYSTEM_POWER_STATE SystemState; /* off 0x0008 */ unsigned long SpinLock; /* off 0x000c */ struct _KTHREAD* Thread; /* off 0x0010 */ struct _KEVENT* AbortEvent; /* off 0x0014 */ struct _KSEMAPHORE* ReadySemaphore; /* off 0x0018 */ struct _KSEMAPHORE* FinishedSemaphore; /* off 0x001c */ unsigned char GetNewDeviceList; /* off 0x0020 */ struct _PO_DEVICE_NOTIFY_ORDER Order; /* off 0x0190 */ struct _LIST_ENTRY Pending; /* off 0x0198 */ long Status; /* off 0x019c */ struct _DEVICE_OBJECT* FailedDevice; /* off 0x01a0 */ unsigned char Waking; /* off 0x01a1 */ unsigned char Cancelled; /* off 0x01a2 */ unsigned char IgnoreErrors; /* off 0x01a3 */ unsigned char IgnoreNotImplemented; /* off 0x01a4 */ unsigned char TimeRefreshLockAcquired; }; struct _POP_HIBER_CONTEXT /* sizeof 000000a0 160 */ { /* off 0x0000 */ unsigned char WriteToFile; /* off 0x0001 */ unsigned char ReserveLoaderMemory; /* off 0x0002 */ unsigned char ReserveFreeMemory; /* off 0x0003 */ unsigned char Reset; /* off 0x0004 */ unsigned char HiberFlags; /* off 0x0005 */ unsigned char WroteHiberFile; /* off 0x0006 */ unsigned char MapFrozen; /* off 0x0008 */ struct _RTL_BITMAP MemoryMap; /* off 0x0010 */ struct _RTL_BITMAP DiscardedMemoryPages; /* off 0x0018 */ struct _LIST_ENTRY ClonedRanges; /* off 0x0020 */ unsigned long ClonedRangeCount; /* off 0x0024 */ struct _LIST_ENTRY* NextCloneRange; /* off 0x0028 */ unsigned long NextPreserve; /* off 0x002c */ struct _MDL* LoaderMdl; /* off 0x0030 */ struct _MDL* AllocatedMdl; /* off 0x0038 */ unsigned __int64 PagesOut; /* off 0x0040 */ void* IoPages; /* off 0x0044 */ unsigned long IoPagesCount; /* off 0x0048 */ void* CurrentMcb; /* off 0x004c */ struct _DUMP_STACK_CONTEXT* DumpStack; /* off 0x0050 */ struct _KPROCESSOR_STATE* WakeState; /* off 0x0054 */ unsigned long PreferredIoWriteSize; /* off 0x0058 */ unsigned long IoProgress; /* off 0x005c */ unsigned long HiberVa; /* off 0x0060 */ union _LARGE_INTEGER HiberPte; /* off 0x0068 */ long Status; /* off 0x006c */ struct PO_MEMORY_IMAGE* MemoryImage; /* off 0x0070 */ void* CompressionWorkspace; /* off 0x0074 */ unsigned char* CompressedWriteBuffer; /* off 0x0078 */ unsigned long CompressedWriteBufferSize; /* off 0x007c */ unsigned long MaxCompressedOutputSize; /* off 0x0080 */ unsigned long* PerformanceStats; /* off 0x0084 */ void* CompressionBlock; /* off 0x0088 */ void* DmaIO; /* off 0x008c */ void* TemporaryHeap; /* off 0x0090 */ struct _MDL* BootLoaderLogMdl; /* off 0x0094 */ struct _MDL* FirmwareRuntimeInformationMdl; /* off 0x0098 */ void* ResumeContext; /* off 0x009c */ unsigned long ResumeContextPages; }; struct _DUMP_INITIALIZATION_CONTEXT /* sizeof 00000070 112 */ { /* off 0x0000 */ unsigned long Length; /* off 0x0004 */ unsigned long Reserved; /* off 0x0008 */ void* MemoryBlock; /* off 0x000c */ void* CommonBuffer[2]; /* off 0x0018 */ union _LARGE_INTEGER PhysicalAddress[2]; /* off 0x0028 */ void( __stdcall *StallRoutine)(unsigned long); /* off 0x002c */ unsigned char( __stdcall *OpenRoutine)(union _LARGE_INTEGER); /* off 0x0030 */ long( __stdcall *WriteRoutine)(union _LARGE_INTEGER*,struct _MDL*); /* off 0x0034 */ void( __stdcall *FinishRoutine)(); /* off 0x0038 */ struct _ADAPTER_OBJECT* AdapterObject; /* off 0x003c */ void* MappedRegisterBase; /* off 0x0040 */ void* PortConfiguration; /* off 0x0044 */ unsigned char CrashDump; /* off 0x0048 */ unsigned long MaximumTransferSize; /* off 0x004c */ unsigned long CommonBufferSize; /* off 0x0050 */ void* TargetAddress; /* off 0x0054 */ long( __stdcall *WritePendingRoutine)(long,union _LARGE_INTEGER*,struct _MDL*,void*); /* off 0x0058 */ unsigned long PartitionStyle; /* off 0x005c */ union /* sizeof 00000010 16 */ { /* off 0x0000 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long CheckSum; } Mbr; /* off 0x0000 */ struct /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _GUID DiskId; } Gpt; } DiskInfo; }; struct _DUMP_STACK_CONTEXT /* sizeof 000000b0 176 */ { /* off 0x0000 */ struct _DUMP_INITIALIZATION_CONTEXT Init; /* off 0x0070 */ union _LARGE_INTEGER PartitionOffset; /* off 0x0078 */ void* DumpPointers; /* off 0x007c */ unsigned long PointersLength; /* off 0x0080 */ unsigned short* ModulePrefix; /* off 0x0084 */ struct _LIST_ENTRY DriverList; /* off 0x008c */ struct _STRING InitMsg; /* off 0x0094 */ struct _STRING ProgMsg; /* off 0x009c */ struct _STRING DoneMsg; /* off 0x00a4 */ void* FileObject; /* off 0x00a8 */ enum _DEVICE_USAGE_NOTIFICATION_TYPE UsageType; }; struct _ADAPTER_OBJECT /* sizeof 00000000 0 */ { }; struct _PO_HIBER_PERF /* sizeof 00000058 88 */ { /* off 0x0000 */ unsigned __int64 IoTicks; /* off 0x0008 */ unsigned __int64 InitTicks; /* off 0x0010 */ unsigned __int64 CopyTicks; /* off 0x0018 */ unsigned __int64 ElapsedTicks; /* off 0x0020 */ unsigned __int64 CompressTicks; /* off 0x0028 */ unsigned __int64 ResumeAppTime; /* off 0x0030 */ unsigned __int64 HiberFileResumeTime; /* off 0x0038 */ unsigned __int64 BytesCopied; /* off 0x0040 */ unsigned __int64 PagesProcessed; /* off 0x0048 */ unsigned long PagesWritten; /* off 0x004c */ unsigned long DumpCount; /* off 0x0050 */ unsigned long FileRuns; }; struct PO_MEMORY_IMAGE /* sizeof 000000e0 224 */ { /* off 0x0000 */ unsigned long Signature; /* off 0x0004 */ unsigned long ImageType; /* off 0x0008 */ unsigned long CheckSum; /* off 0x000c */ unsigned long LengthSelf; /* off 0x0010 */ unsigned long PageSelf; /* off 0x0014 */ unsigned long PageSize; /* off 0x0018 */ union _LARGE_INTEGER SystemTime; /* off 0x0020 */ unsigned __int64 InterruptTime; /* off 0x0028 */ unsigned long FeatureFlags; /* off 0x002c */ unsigned char HiberFlags; /* off 0x002d */ unsigned char spare[3]; /* off 0x0030 */ unsigned long NoHiberPtes; /* off 0x0034 */ unsigned long HiberVa; /* off 0x0038 */ union _LARGE_INTEGER HiberPte; /* off 0x0040 */ unsigned long NoFreePages; /* off 0x0044 */ unsigned long FreeMapCheck; /* off 0x0048 */ unsigned long WakeCheck; /* off 0x004c */ unsigned long FirstTablePage; /* off 0x0050 */ struct _PO_HIBER_PERF PerfInfo; /* off 0x00a8 */ unsigned long FirmwareRuntimeInformationPages; /* off 0x00ac */ unsigned long FirmwareRuntimeInformation[1]; /* off 0x00b0 */ unsigned long NoBootLoaderLogPages; /* off 0x00b4 */ unsigned long BootLoaderLogPages[8]; /* off 0x00d4 */ unsigned long NotUsed; /* off 0x00d8 */ unsigned long ResumeContextCheck; /* off 0x00dc */ unsigned long ResumeContextPages; }; struct _DIAGNOSTIC_BUFFER /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Size; /* off 0x0004 */ enum _REQUESTER_TYPE CallerType; union { struct { /* off 0x0008 */ unsigned long ProcessImageNameOffset; union { struct { /* off 0x000c */ unsigned long ProcessId; /* off 0x0010 */ unsigned long ServiceTag; }; struct { /* off 0x0008 */ unsigned long DeviceDescriptionOffset; }; struct { /* off 0x000c */ unsigned long DevicePathOffset; }; }; }; }; /* off 0x0014 */ unsigned long ReasonOffset; }; enum _KOBJECTS { EventNotificationObject =0x00000000 ,//0 EventSynchronizationObject =0x00000001 ,//0 MutantObject =0x00000002 ,//0 ProcessObject =0x00000003 ,//0 QueueObject =0x00000004 ,//0 SemaphoreObject =0x00000005 ,//0 ThreadObject =0x00000006 ,//0 GateObject =0x00000007 ,//0 TimerNotificationObject =0x00000008 ,//0 TimerSynchronizationObject =0x00000009 ,//0 Spare2Object =0x0000000a ,//0 Spare3Object =0x0000000b ,//0 Spare4Object =0x0000000c ,//0 Spare5Object =0x0000000d ,//0 Spare6Object =0x0000000e ,//0 Spare7Object =0x0000000f ,//0 Spare8Object =0x00000010 ,//0 Spare9Object =0x00000011 ,//0 ApcObject =0x00000012 ,//0 DpcObject =0x00000013 ,//0 DeviceQueueObject =0x00000014 ,//0 EventPairObject =0x00000015 ,//0 InterruptObject =0x00000016 ,//0 ProfileObject =0x00000017 ,//0 ThreadedDpcObject =0x00000018 ,//0 MaximumKernelObject =0x00000019 ,//0 }; enum _POLICY_AUDIT_EVENT_TYPE { AuditCategorySystem =0x00000000 ,//0 AuditCategoryLogon =0x00000001 ,//0 AuditCategoryObjectAccess =0x00000002 ,//0 AuditCategoryPrivilegeUse =0x00000003 ,//0 AuditCategoryDetailedTracking =0x00000004 ,//0 AuditCategoryPolicyChange =0x00000005 ,//0 AuditCategoryAccountManagement =0x00000006 ,//0 AuditCategoryDirectoryServiceAccess =0x00000007 ,//0 AuditCategoryAccountLogon =0x00000008 ,//0 }; struct _PI_RESOURCE_ARBITER_ENTRY /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _LIST_ENTRY DeviceArbiterList; /* off 0x0008 */ unsigned char ResourceType; /* off 0x000c */ struct _ARBITER_INTERFACE* ArbiterInterface; /* off 0x0010 */ struct _DEVICE_NODE* DeviceNode; /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x001c */ struct _LIST_ENTRY BestResourceList; /* off 0x0024 */ struct _LIST_ENTRY BestConfig; /* off 0x002c */ struct _LIST_ENTRY ActiveArbiterList; /* off 0x0034 */ unsigned char State; /* off 0x0035 */ unsigned char ResourcesChanged; }; struct _SECURITY_DESCRIPTOR /* sizeof 00000014 20 */ { /* off 0x0000 */ unsigned char Revision; /* off 0x0001 */ unsigned char Sbz1; /* off 0x0002 */ unsigned short Control; /* off 0x0004 */ void* Owner; /* off 0x0008 */ void* Group; /* off 0x000c */ struct _ACL* Sacl; /* off 0x0010 */ struct _ACL* Dacl; }; struct _PHYSICAL_MEMORY_RUN /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long BasePage; /* off 0x0004 */ unsigned long PageCount; }; struct SYSTEM_POWER_LEVEL /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned char Enable; /* off 0x0001 */ unsigned char Spare[3]; /* off 0x0004 */ unsigned long BatteryLevel; /* off 0x0008 */ struct POWER_ACTION_POLICY PowerPolicy; /* off 0x0014 */ enum _SYSTEM_POWER_STATE MinSystemState; }; struct _SYSTEM_POWER_POLICY /* sizeof 000000e8 232 */ { /* off 0x0000 */ unsigned long Revision; /* off 0x0004 */ struct POWER_ACTION_POLICY PowerButton; /* off 0x0010 */ struct POWER_ACTION_POLICY SleepButton; /* off 0x001c */ struct POWER_ACTION_POLICY LidClose; /* off 0x0028 */ enum _SYSTEM_POWER_STATE LidOpenWake; /* off 0x002c */ unsigned long Reserved; /* off 0x0030 */ struct POWER_ACTION_POLICY Idle; /* off 0x003c */ unsigned long IdleTimeout; /* off 0x0040 */ unsigned char IdleSensitivity; /* off 0x0041 */ unsigned char DynamicThrottle; /* off 0x0042 */ unsigned char Spare2[2]; /* off 0x0044 */ enum _SYSTEM_POWER_STATE MinSleep; /* off 0x0048 */ enum _SYSTEM_POWER_STATE MaxSleep; /* off 0x004c */ enum _SYSTEM_POWER_STATE ReducedLatencySleep; /* off 0x0050 */ unsigned long WinLogonFlags; /* off 0x0054 */ unsigned long Spare3; /* off 0x0058 */ unsigned long DozeS4Timeout; /* off 0x005c */ unsigned long BroadcastCapacityResolution; /* off 0x0060 */ struct SYSTEM_POWER_LEVEL DischargePolicy[4]; /* off 0x00c0 */ unsigned long VideoTimeout; /* off 0x00c4 */ unsigned char VideoDimDisplay; /* off 0x00c8 */ unsigned long VideoReserved[3]; /* off 0x00d4 */ unsigned long SpindownTimeout; /* off 0x00d8 */ unsigned char OptimizeForPower; /* off 0x00d9 */ unsigned char FanThrottleTolerance; /* off 0x00da */ unsigned char ForcedThrottle; /* off 0x00db */ unsigned char MinThrottle; /* off 0x00dc */ struct POWER_ACTION_POLICY OverThrottled; }; struct _ETW_PROVIDER_TABLE_ENTRY /* sizeof 00000010 16 */ { /* off 0x0000 */ long RefCount; /* off 0x0004 */ enum _ETW_PROVIDER_STATE State; /* off 0x0008 */ struct _ETW_REG_ENTRY* RegEntry; /* off 0x000c */ void* Caller; }; enum _ETW_PROVIDER_STATE { EtwProviderStateFree =0x00000000 ,//0 EtwProviderStateTransition =0x00000001 ,//0 EtwProviderStateActive =0x00000002 ,//0 EtwProviderStateMax =0x00000003 ,//0 }; struct _ETW_REG_ENTRY /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _LIST_ENTRY RegList; /* off 0x0008 */ struct _ETW_GUID_ENTRY* GuidEntry; /* off 0x000c */ unsigned short Index; /* off 0x000e */ unsigned short Flags; /* off 0x0010 */ unsigned char EnableMask; union { /* off 0x0014 */ unsigned long SessionId; /* off 0x0014 */ struct _ETW_REPLY_QUEUE* ReplyQueue; /* off 0x0014 */ struct _ETW_REG_ENTRY* ReplySlot[4]; }; union { /* off 0x0024 */ struct _EPROCESS* Process; /* off 0x0024 */ void* Callback; }; /* off 0x0028 */ void* CallbackContext; }; struct _ETW_REPLY_QUEUE /* sizeof 0000002c 44 */ { /* off 0x0000 */ struct _KQUEUE Queue; /* off 0x0028 */ long EventsLost; }; struct _VF_POOL_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* Address; /* off 0x0004 */ unsigned long Size; /* off 0x0008 */ struct _ETHREAD* Thread; /* off 0x000c */ void* StackTrace[13]; }; struct _MM_SESSION_SPACE_FLAGS /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long Initialized:1 /* start bit 0 */; /* off 0x0000 */ unsigned long DeletePending:1 /* start bit 1 */; /* off 0x0000 */ unsigned long PoolInitialized:1 /* start bit 2 */; /* off 0x0000 */ unsigned long DynamicVaInitialized:1 /* start bit 3 */; /* off 0x0000 */ unsigned long WsInitialized:1 /* start bit 4 */; /* off 0x0000 */ unsigned long PoolDestroyed:1 /* start bit 5 */; /* off 0x0000 */ unsigned long ObjectInitialized:1 /* start bit 6 */; /* off 0x0000 */ unsigned long Filler:25 /* start bit 7 */; }; struct _MMSESSION /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX SystemSpaceViewLock; /* off 0x0020 */ struct _KGUARDED_MUTEX* SystemSpaceViewLockPointer; /* off 0x0024 */ struct _MMVIEW* SystemSpaceViewTable; /* off 0x0028 */ unsigned long SystemSpaceHashSize; /* off 0x002c */ unsigned long SystemSpaceHashEntries; /* off 0x0030 */ unsigned long SystemSpaceHashKey; /* off 0x0034 */ unsigned long BitmapFailures; }; struct _MM_PAGED_POOL_INFO /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _KGUARDED_MUTEX Mutex; /* off 0x0020 */ struct _RTL_BITMAP PagedPoolAllocationMap; /* off 0x0028 */ struct _MMPTE* FirstPteForPagedPool; /* off 0x002c */ unsigned long PagedPoolHint; /* off 0x0030 */ unsigned long PagedPoolCommit; /* off 0x0034 */ unsigned long AllocatedPagedPool; }; struct _MI_SPECIAL_POOL_PTE_LIST /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _MMPTE FreePteHead; /* off 0x0008 */ struct _MMPTE FreePteTail; }; struct _MI_SPECIAL_POOL /* sizeof 00000038 56 */ { /* off 0x0000 */ struct _MMPTE* PteBase; /* off 0x0004 */ unsigned long Lock; /* off 0x0008 */ struct _MI_SPECIAL_POOL_PTE_LIST Paged; /* off 0x0018 */ struct _MI_SPECIAL_POOL_PTE_LIST NonPaged; /* off 0x0028 */ long PagesInUse; /* off 0x002c */ struct _RTL_BITMAP SpecialPoolPdes; }; struct _MI_SYSTEM_PTE_TYPE /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _RTL_BITMAP Bitmap; /* off 0x0008 */ unsigned long Flags; /* off 0x000c */ unsigned long Hint; /* off 0x0010 */ struct _MMPTE* BasePte; /* off 0x0014 */ unsigned long* FailureCount; /* off 0x0018 */ struct _MMSUPPORT* Vm; /* off 0x001c */ long TotalSystemPtes; /* off 0x0020 */ long TotalFreeSystemPtes; /* off 0x0024 */ long CachedPteCount; /* off 0x0028 */ unsigned long PteFailures; union { /* off 0x002c */ unsigned long SpinLock; /* off 0x002c */ struct _KGUARDED_MUTEX* GlobalMutex; }; }; struct _MM_SESSION_SPACE /* sizeof 00002040 8256 */ { /* off 0x0000 */ long ReferenceCount; /* off 0x0004 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long LongFlags; /* off 0x0000 */ struct _MM_SESSION_SPACE_FLAGS Flags; } u; /* off 0x0008 */ unsigned long SessionId; /* off 0x000c */ long ProcessReferenceToSession; /* off 0x0010 */ struct _LIST_ENTRY ProcessList; /* off 0x0018 */ union _LARGE_INTEGER LastProcessSwappedOutTime; /* off 0x0020 */ unsigned long SessionPageDirectoryIndex; /* off 0x0024 */ unsigned long NonPagablePages; /* off 0x0028 */ unsigned long CommittedPages; /* off 0x002c */ void* PagedPoolStart; /* off 0x0030 */ void* PagedPoolEnd; /* off 0x0034 */ void* SessionObject; /* off 0x0038 */ void* SessionObjectHandle; /* off 0x003c */ long ResidentProcessCount; /* off 0x0040 */ unsigned long SessionPoolAllocationFailures[4]; /* off 0x0050 */ struct _LIST_ENTRY ImageList; /* off 0x0058 */ unsigned long LocaleId; /* off 0x005c */ unsigned long AttachCount; /* off 0x0060 */ struct _KGATE AttachGate; /* off 0x0070 */ struct _LIST_ENTRY WsListEntry; /* off 0x0080 */ struct _GENERAL_LOOKASIDE Lookaside[25]; /* off 0x0d00 */ struct _MMSESSION Session; /* off 0x0d38 */ struct _MM_PAGED_POOL_INFO PagedPoolInfo; /* off 0x0d70 */ struct _MMSUPPORT Vm; /* off 0x0ddc */ struct _MMWSLE* Wsle; /* off 0x0de0 */ void( __stdcall *DriverUnload)(struct _DRIVER_OBJECT*); /* off 0x0e00 */ struct _POOL_DESCRIPTOR PagedPool; /* off 0x1f40 */ struct _MMPTE* PageTables; /* off 0x1f48 */ struct _MI_SPECIAL_POOL SpecialPool; /* off 0x1f80 */ struct _KGUARDED_MUTEX SessionPteLock; /* off 0x1fa0 */ long PoolBigEntriesInUse; /* off 0x1fa4 */ unsigned long PagedPoolPdeCount; /* off 0x1fa8 */ unsigned long SpecialPoolPdeCount; /* off 0x1fac */ unsigned long DynamicSessionPdeCount; /* off 0x1fb0 */ struct _MI_SYSTEM_PTE_TYPE SystemPteInfo; /* off 0x1fe0 */ void* PoolTrackTableExpansion; /* off 0x1fe4 */ unsigned long PoolTrackTableExpansionSize; /* off 0x1fe8 */ void* PoolTrackBigPages; /* off 0x1fec */ unsigned long PoolTrackBigPagesSize; /* off 0x1ff0 */ enum _IO_SESSION_STATE IoState; /* off 0x1ff4 */ unsigned long IoStateSequence; /* off 0x1ff8 */ struct _KEVENT IoNotificationEvent; /* off 0x2008 */ struct _RTL_BITMAP SessionPoolPdes; /* off 0x2010 */ struct _PS_CPU_QUOTA_BLOCK* CpuQuotaBlock; }; struct _MMVIEW /* sizeof 00000018 24 */ { /* off 0x0000 */ unsigned long Entry; union { /* off 0x0004 */ unsigned long Writable:1 /* start bit 0 */; /* off 0x0004 */ struct _CONTROL_AREA* ControlArea; }; /* off 0x0008 */ struct _LIST_ENTRY ViewLinks; /* off 0x0010 */ void* SessionViewVa; /* off 0x0014 */ unsigned long SessionId; }; enum _IO_SESSION_STATE { IoSessionStateCreated =0x00000001 ,//0 IoSessionStateInitialized =0x00000002 ,//0 IoSessionStateConnected =0x00000003 ,//0 IoSessionStateDisconnected =0x00000004 ,//0 IoSessionStateDisconnectedLoggedOn =0x00000005 ,//0 IoSessionStateLoggedOn =0x00000006 ,//0 IoSessionStateLoggedOff =0x00000007 ,//0 IoSessionStateTerminated =0x00000008 ,//0 IoSessionStateMax =0x00000009 ,//0 }; union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS /* sizeof 00000008 8 */ { struct { /* off 0x0000 */ unsigned __int64 ErrorStatus:1 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 PhysicalAddress:1 /* start bit 1 */; /* off 0x0000 */ unsigned __int64 PhysicalAddressMask:1 /* start bit 2 */; /* off 0x0000 */ unsigned __int64 Node:1 /* start bit 3 */; /* off 0x0000 */ unsigned __int64 Card:1 /* start bit 4 */; /* off 0x0000 */ unsigned __int64 Module:1 /* start bit 5 */; /* off 0x0000 */ unsigned __int64 Bank:1 /* start bit 6 */; /* off 0x0000 */ unsigned __int64 Device:1 /* start bit 7 */; /* off 0x0000 */ unsigned __int64 Row:1 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Column:1 /* start bit 9 */; /* off 0x0000 */ unsigned __int64 BitPosition:1 /* start bit 10 */; /* off 0x0000 */ unsigned __int64 RequesterId:1 /* start bit 11 */; /* off 0x0000 */ unsigned __int64 ResponderId:1 /* start bit 12 */; /* off 0x0000 */ unsigned __int64 TargetId:1 /* start bit 13 */; /* off 0x0000 */ unsigned __int64 ErrorType:1 /* start bit 14 */; /* off 0x0000 */ unsigned __int64 Reserved:49 /* start bit 15 */; }; /* off 0x0000 */ unsigned __int64 ValidBits; }; union _WHEA_ERROR_STATUS /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned __int64 ErrorStatus; struct { /* off 0x0000 */ unsigned __int64 Reserved1:8 /* start bit 0 */; /* off 0x0000 */ unsigned __int64 ErrorType:8 /* start bit 8 */; /* off 0x0000 */ unsigned __int64 Address:1 /* start bit 16 */; /* off 0x0000 */ unsigned __int64 Control:1 /* start bit 17 */; /* off 0x0000 */ unsigned __int64 Data:1 /* start bit 18 */; /* off 0x0000 */ unsigned __int64 Responder:1 /* start bit 19 */; /* off 0x0000 */ unsigned __int64 Requester:1 /* start bit 20 */; /* off 0x0000 */ unsigned __int64 FirstError:1 /* start bit 21 */; /* off 0x0000 */ unsigned __int64 Overflow:1 /* start bit 22 */; /* off 0x0000 */ unsigned __int64 Reserved2:41 /* start bit 23 */; }; }; struct _WHEA_MEMORY_ERROR_SECTION /* sizeof 00000049 73 */ { /* off 0x0000 */ union _WHEA_MEMORY_ERROR_SECTION_VALIDBITS ValidBits; /* off 0x0008 */ union _WHEA_ERROR_STATUS ErrorStatus; /* off 0x0010 */ unsigned __int64 PhysicalAddress; /* off 0x0018 */ unsigned __int64 PhysicalAddressMask; /* off 0x0020 */ unsigned short Node; /* off 0x0022 */ unsigned short Card; /* off 0x0024 */ unsigned short Module; /* off 0x0026 */ unsigned short Bank; /* off 0x0028 */ unsigned short Device; /* off 0x002a */ unsigned short Row; /* off 0x002c */ unsigned short Column; /* off 0x002e */ unsigned short BitPosition; /* off 0x0030 */ unsigned __int64 RequesterId; /* off 0x0038 */ unsigned __int64 ResponderId; /* off 0x0040 */ unsigned __int64 TargetId; /* off 0x0048 */ unsigned char ErrorType; }; struct _VI_DEADLOCK_RESOURCE /* sizeof 00000080 128 */ { /* off 0x0000 */ enum _VI_DEADLOCK_RESOURCE_TYPE Type; /* off 0x0004 */ unsigned long NodeCount:16 /* start bit 0 */; /* off 0x0004 */ unsigned long RecursionCount:16 /* start bit 16 */; /* off 0x0008 */ void* ResourceAddress; /* off 0x000c */ struct _VI_DEADLOCK_THREAD* ThreadOwner; /* off 0x0010 */ struct _LIST_ENTRY ResourceList; union { /* off 0x0018 */ struct _LIST_ENTRY HashChainList; /* off 0x0018 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0020 */ void* StackTrace[8]; /* off 0x0040 */ void* LastAcquireTrace[8]; /* off 0x0060 */ void* LastReleaseTrace[8]; }; enum _VI_DEADLOCK_RESOURCE_TYPE { VfDeadlockUnknown =0x00000000 ,//0 VfDeadlockMutex =0x00000001 ,//0 VfDeadlockMutexAbandoned =0x00000002 ,//0 VfDeadlockFastMutex =0x00000003 ,//0 VfDeadlockFastMutexUnsafe =0x00000004 ,//0 VfDeadlockSpinLock =0x00000005 ,//0 VfDeadlockInStackQueuedSpinLock =0x00000006 ,//0 VfDeadlockUnusedSpinLock =0x00000007 ,//0 VfDeadlockEresource =0x00000008 ,//0 VfDeadlockTypeMaximum =0x00000009 ,//0 }; struct _VI_DEADLOCK_THREAD /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _KTHREAD* Thread; /* off 0x0004 */ struct _VI_DEADLOCK_NODE* CurrentSpinNode; /* off 0x0008 */ struct _VI_DEADLOCK_NODE* CurrentOtherNode; union { /* off 0x000c */ struct _LIST_ENTRY ListEntry; /* off 0x000c */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x0014 */ unsigned long NodeCount; /* off 0x0018 */ unsigned long PagingCount; /* off 0x001c */ unsigned char ThreadUsesEresources; }; struct _VI_DEADLOCK_NODE /* sizeof 0000006c 108 */ { /* off 0x0000 */ struct _VI_DEADLOCK_NODE* Parent; /* off 0x0004 */ struct _LIST_ENTRY ChildrenList; /* off 0x000c */ struct _LIST_ENTRY SiblingsList; union { /* off 0x0014 */ struct _LIST_ENTRY ResourceList; /* off 0x0014 */ struct _LIST_ENTRY FreeListEntry; }; /* off 0x001c */ struct _VI_DEADLOCK_RESOURCE* Root; /* off 0x0020 */ struct _VI_DEADLOCK_THREAD* ThreadEntry; /* off 0x0024 */ union /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long Active:1 /* start bit 0 */; /* off 0x0000 */ unsigned long OnlyTryAcquireUsed:1 /* start bit 1 */; /* off 0x0000 */ unsigned long ReleasedOutOfOrder:1 /* start bit 2 */; /* off 0x0000 */ unsigned long SequenceNumber:29 /* start bit 3 */; }; /* off 0x0000 */ unsigned long Whole; } u1; /* off 0x0028 */ long ChildrenCount; /* off 0x002c */ void* StackTrace[8]; /* off 0x004c */ void* ParentStackTrace[8]; }; enum ReplacesCorHdrNumericDefines { COMIMAGE_FLAGS_ILONLY =0x00000001 ,//0 COMIMAGE_FLAGS_32BITREQUIRED =0x00000002 ,//0 COMIMAGE_FLAGS_IL_LIBRARY =0x00000004 ,//0 COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008 ,//0 COMIMAGE_FLAGS_NATIVE_ENTRYPOINT =0x00000010 ,//0 COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000 ,//0 COR_VERSION_MAJOR_V2 =0x00000002 ,//0 COR_VERSION_MAJOR =0x00000002 ,//0 COR_VERSION_MINOR =0x00000000 ,//0 COR_DELETED_NAME_LENGTH =0x00000008 ,//0 COR_VTABLEGAP_NAME_LENGTH =0x00000008 ,//0 NATIVE_TYPE_MAX_CB =0x00000001 ,//0 COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE =0x000000ff ,//0 IMAGE_COR_MIH_METHODRVA =0x00000001 ,//0 IMAGE_COR_MIH_EHRVA =0x00000002 ,//0 IMAGE_COR_MIH_BASICBLOCK =0x00000008 ,//0 COR_VTABLE_32BIT =0x00000001 ,//0 COR_VTABLE_64BIT =0x00000002 ,//0 COR_VTABLE_FROM_UNMANAGED =0x00000004 ,//0 COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN =0x00000008 ,//0 COR_VTABLE_CALL_MOST_DERIVED =0x00000010 ,//0 IMAGE_COR_EATJ_THUNK_SIZE =0x00000020 ,//0 MAX_CLASS_NAME =0x00000400 ,//0 MAX_PACKAGE_NAME =0x00000400 ,//0 }; struct _PHYSICAL_MEMORY_DESCRIPTOR /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long NumberOfRuns; /* off 0x0004 */ unsigned long NumberOfPages; /* off 0x0008 */ struct _PHYSICAL_MEMORY_RUN Run[1]; }; struct _PNP_DEVICE_EVENT_LIST /* sizeof 0000004c 76 */ { /* off 0x0000 */ long Status; /* off 0x0004 */ struct _KMUTANT EventQueueMutex; /* off 0x0024 */ struct _KGUARDED_MUTEX Lock; /* off 0x0044 */ struct _LIST_ENTRY List; }; struct _RTLP_RANGE_LIST_ENTRY /* sizeof 00000028 40 */ { /* off 0x0000 */ unsigned __int64 Start; /* off 0x0008 */ unsigned __int64 End; union { /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ void* UserData; /* off 0x0004 */ void* Owner; } Allocated; /* off 0x0010 */ struct /* sizeof 00000008 8 */ { /* off 0x0000 */ struct _LIST_ENTRY ListHead; } Merged; }; /* off 0x0018 */ unsigned char Attributes; /* off 0x0019 */ unsigned char PublicFlags; /* off 0x001a */ unsigned short PrivateFlags; /* off 0x001c */ struct _LIST_ENTRY ListEntry; }; struct PROCESSOR_IDLESTATE_INFO /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned long TimeCheck; /* off 0x0004 */ unsigned char DemotePercent; /* off 0x0005 */ unsigned char PromotePercent; /* off 0x0006 */ unsigned char Spare[2]; }; struct PROCESSOR_IDLESTATE_POLICY /* sizeof 00000020 32 */ { /* off 0x0000 */ unsigned short Revision; /* off 0x0002 */ union /* sizeof 00000002 2 */ { /* off 0x0000 */ unsigned short AsUSHORT; struct { /* off 0x0000 */ unsigned short AllowScaling:1 /* start bit 0 */; /* off 0x0000 */ unsigned short Disabled:1 /* start bit 1 */; /* off 0x0000 */ unsigned short Reserved:14 /* start bit 2 */; }; } Flags; /* off 0x0004 */ unsigned long PolicyCount; /* off 0x0008 */ struct PROCESSOR_IDLESTATE_INFO Policy[3]; }; struct _PTE_TRACKER /* sizeof 00000030 48 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _MDL* Mdl; /* off 0x000c */ unsigned long Count; /* off 0x0010 */ void* SystemVa; /* off 0x0014 */ void* StartVa; /* off 0x0018 */ unsigned long Offset; /* off 0x001c */ unsigned long Length; /* off 0x0020 */ unsigned long Page; /* off 0x0024 */ unsigned long IoMapping:1 /* start bit 0 */; /* off 0x0024 */ unsigned long Matched:1 /* start bit 1 */; /* off 0x0024 */ unsigned long CacheAttribute:2 /* start bit 2 */; /* off 0x0024 */ unsigned long Spare:28 /* start bit 4 */; /* off 0x0028 */ void* CallingAddress; /* off 0x002c */ void* CallersCaller; }; struct _SHARED_CACHE_MAP_LIST_CURSOR /* sizeof 0000000c 12 */ { /* off 0x0000 */ struct _LIST_ENTRY SharedCacheMapLinks; /* off 0x0008 */ unsigned long Flags; }; struct _PNP_DEVICE_ACTION_ENTRY /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _DEVICE_OBJECT* DeviceObject; /* off 0x000c */ enum _PNP_DEVICE_ACTION_REQUEST RequestType; /* off 0x0010 */ unsigned char ReorderingBarrier; /* off 0x0014 */ unsigned long RequestArgument; /* off 0x0018 */ struct _KEVENT* CompletionEvent; /* off 0x001c */ long* CompletionStatus; }; enum _PNP_DEVICE_ACTION_REQUEST { AssignResources =0x00000000 ,//0 ClearDeviceProblem =0x00000001 ,//0 ClearProblem =0x00000002 ,//0 ClearEjectProblem =0x00000003 ,//0 HaltDevice =0x00000004 ,//0 QueryPowerRelations =0x00000005 ,//0 Rebalance =0x00000006 ,//0 ReenumerateBootDevices =0x00000007 ,//0 ReenumerateDeviceOnly =0x00000008 ,//0 ReenumerateDeviceTree =0x00000009 ,//0 ReenumerateRootDevices =0x0000000a ,//0 RequeryDeviceState =0x0000000b ,//0 ResetDevice =0x0000000c ,//0 ResourceRequirementsChanged =0x0000000d ,//0 RestartEnumeration =0x0000000e ,//0 SetDeviceProblem =0x0000000f ,//0 StartDevice =0x00000010 ,//0 StartSystemDevicesPass0 =0x00000011 ,//0 StartSystemDevicesPass1 =0x00000012 ,//0 }; struct _LPCP_PORT_QUEUE /* sizeof 00000010 16 */ { /* off 0x0000 */ struct _LPCP_NONPAGED_PORT_QUEUE* NonPagedPortQueue; /* off 0x0004 */ struct _KSEMAPHORE* Semaphore; /* off 0x0008 */ struct _LIST_ENTRY ReceiveHead; }; struct _LPCP_PORT_OBJECT /* sizeof 000000a4 164 */ { /* off 0x0000 */ struct _LPCP_PORT_OBJECT* ConnectionPort; /* off 0x0004 */ struct _LPCP_PORT_OBJECT* ConnectedPort; /* off 0x0008 */ struct _LPCP_PORT_QUEUE MsgQueue; /* off 0x0018 */ struct _CLIENT_ID Creator; /* off 0x0020 */ void* ClientSectionBase; /* off 0x0024 */ void* ServerSectionBase; /* off 0x0028 */ void* PortContext; /* off 0x002c */ struct _ETHREAD* ClientThread; /* off 0x0030 */ struct _SECURITY_QUALITY_OF_SERVICE SecurityQos; /* off 0x003c */ struct _SECURITY_CLIENT_CONTEXT StaticSecurity; /* off 0x0078 */ struct _LIST_ENTRY LpcReplyChainHead; /* off 0x0080 */ struct _LIST_ENTRY LpcDataInfoChainHead; union { /* off 0x0088 */ struct _EPROCESS* ServerProcess; /* off 0x0088 */ struct _EPROCESS* MappingProcess; }; /* off 0x008c */ unsigned short MaxMessageLength; /* off 0x008e */ unsigned short MaxConnectionInfoLength; /* off 0x0090 */ unsigned long Flags; /* off 0x0094 */ struct _KEVENT WaitEvent; }; struct _LPCP_NONPAGED_PORT_QUEUE /* sizeof 00000018 24 */ { /* off 0x0000 */ struct _KSEMAPHORE Semaphore; /* off 0x0014 */ struct _LPCP_PORT_OBJECT* BackPointer; }; struct _VF_KE_CRITICAL_REGION_TRACE /* sizeof 00000020 32 */ { /* off 0x0000 */ struct _ETHREAD* Thread; /* off 0x0004 */ void* StackTrace[7]; }; enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation =0x00000000 ,//0 ObjectNameInformation =0x00000001 ,//0 ObjectTypeInformation =0x00000002 ,//0 ObjectTypesInformation =0x00000003 ,//0 ObjectHandleFlagInformation =0x00000004 ,//0 ObjectSessionInformation =0x00000005 ,//0 MaxObjectInfoClass =0x00000006 ,//0 }; enum _KWAIT_BLOCK_STATE { WaitBlockBypassStart =0x00000000 ,//0 WaitBlockBypassComplete =0x00000001 ,//0 WaitBlockActive =0x00000002 ,//0 WaitBlockInactive =0x00000003 ,//0 WaitBlockAllStates =0x00000004 ,//0 }; union EX_QUEUE_WORKER_INFO /* sizeof 00000004 4 */ { struct { /* off 0x0000 */ unsigned long QueueDisabled:1 /* start bit 0 */; /* off 0x0000 */ unsigned long MakeThreadsAsNecessary:1 /* start bit 1 */; /* off 0x0000 */ unsigned long WaitMode:1 /* start bit 2 */; /* off 0x0000 */ unsigned long WorkerCount:29 /* start bit 3 */; }; /* off 0x0000 */ long QueueWorkerInfo; }; struct _EX_WORK_QUEUE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _KQUEUE WorkerQueue; /* off 0x0028 */ unsigned long DynamicThreadCount; /* off 0x002c */ unsigned long WorkItemsProcessed; /* off 0x0030 */ unsigned long WorkItemsProcessedLastPass; /* off 0x0034 */ unsigned long QueueDepthLastPass; /* off 0x0038 */ union EX_QUEUE_WORKER_INFO Info; }; enum _MM_POOL_FAILURE_REASONS { MmNonPagedNoPtes =0x00000000 ,//0 MmPriorityTooLow =0x00000001 ,//0 MmNonPagedNoPagesAvailable =0x00000002 ,//0 MmPagedNoPtes =0x00000003 ,//0 MmSessionPagedNoPtes =0x00000004 ,//0 MmPagedNoPagesAvailable =0x00000005 ,//0 MmSessionPagedNoPagesAvailable =0x00000006 ,//0 MmPagedNoCommit =0x00000007 ,//0 MmSessionPagedNoCommit =0x00000008 ,//0 MmNonPagedNoResidentAvailable =0x00000009 ,//0 MmNonPagedNoCommit =0x0000000a ,//0 MmMaximumFailureReason =0x0000000b ,//0 }; struct _VF_AVL_TREE /* sizeof 00000040 64 */ { /* off 0x0000 */ long Lock; /* off 0x0004 */ void* NodeToFree; /* off 0x0008 */ unsigned long NodeRangeSize; /* off 0x000c */ unsigned long NodeCount; /* off 0x0010 */ struct _VF_AVL_TABLE* Tables; /* off 0x0014 */ unsigned long TablesNo; /* off 0x0018 */ union /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned long NodeSize; /* off 0x0000 */ unsigned long UseLookaside; } u1; }; struct _VF_AVL_TABLE /* sizeof 0000003c 60 */ { /* off 0x0000 */ struct _RTL_AVL_TABLE RtlTable; /* off 0x0038 */ struct _VF_AVL_TREE_NODE* ReservedNode; }; enum _KPROCESS_STATE { ProcessInMemory =0x00000000 ,//0 ProcessOutOfMemory =0x00000001 ,//0 ProcessInTransition =0x00000002 ,//0 ProcessOutTransition =0x00000003 ,//0 ProcessInSwap =0x00000004 ,//0 ProcessOutSwap =0x00000005 ,//0 ProcessAllSwapStates =0x00000006 ,//0 }; struct _HEAP_FREE_ENTRY_EXTRA /* sizeof 00000004 4 */ { /* off 0x0000 */ unsigned short TagIndex; /* off 0x0002 */ unsigned short FreeBackTraceIndex; }; enum _WORKING_SET_TYPE { WorkingSetTypeUser =0x00000000 ,//0 WorkingSetTypeSession =0x00000001 ,//0 WorkingSetTypeSystemTypes =0x00000002 ,//0 WorkingSetTypeSystemCache =0x00000002 ,//0 WorkingSetTypePagedPool =0x00000003 ,//0 WorkingSetTypeSystemPtes =0x00000004 ,//0 WorkingSetTypeMaximum =0x00000005 ,//0 }; struct _VF_ADDRESS_RANGE /* sizeof 00000008 8 */ { /* off 0x0000 */ unsigned char* Start; /* off 0x0004 */ unsigned char* End; }; struct _VI_DEADLOCK_GLOBALS /* sizeof 000040e0 16608 */ { /* off 0x0000 */ __int64 TimeAcquire; /* off 0x0008 */ __int64 TimeRelease; /* off 0x0010 */ struct _LIST_ENTRY* ResourceDatabase; /* off 0x0014 */ unsigned long ResourceDatabaseCount; /* off 0x0018 */ struct _VF_ADDRESS_RANGE ResourceAddressRange[1023]; /* off 0x2010 */ struct _LIST_ENTRY* ThreadDatabase; /* off 0x2014 */ unsigned long ThreadDatabaseCount; /* off 0x2018 */ struct _VF_ADDRESS_RANGE ThreadAddressRange[1023]; /* off 0x4010 */ unsigned long AllocationFailures; /* off 0x4014 */ unsigned long NodesTrimmedBasedOnAge; /* off 0x4018 */ unsigned long NodesTrimmedBasedOnCount; /* off 0x401c */ unsigned long NodesSearched; /* off 0x4020 */ unsigned long MaxNodesSearched; /* off 0x4024 */ unsigned long SequenceNumber; /* off 0x4028 */ unsigned long RecursionDepthLimit; /* off 0x402c */ unsigned long SearchedNodesLimit; /* off 0x4030 */ unsigned long DepthLimitHits; /* off 0x4034 */ unsigned long SearchLimitHits; /* off 0x4038 */ unsigned long ABC_ACB_Skipped; /* off 0x403c */ unsigned long OutOfOrderReleases; /* off 0x4040 */ unsigned long NodesReleasedOutOfOrder; /* off 0x4044 */ unsigned long TotalReleases; /* off 0x4048 */ unsigned long RootNodesDeleted; /* off 0x404c */ unsigned long ForgetHistoryCounter; /* off 0x4050 */ void* Instigator; /* off 0x4054 */ unsigned long NumberOfParticipants; /* off 0x4058 */ struct _VI_DEADLOCK_NODE* Participant[32]; /* off 0x40d8 */ long ChildrenCountWatermark; }; struct _VF_BTS_RECORD /* sizeof 0000000c 12 */ { /* off 0x0000 */ void* JumpedFrom; /* off 0x0004 */ void* JumpedTo; /* off 0x0008 */ unsigned long Unused1:3 /* start bit 0 */; /* off 0x0008 */ unsigned long Predicted:4 /* start bit 3 */; /* off 0x0008 */ unsigned long Unused2:25 /* start bit 7 */; }; struct _VF_WATCHDOG_IRP /* sizeof 00000014 20 */ { /* off 0x0000 */ struct _LIST_ENTRY ListEntry; /* off 0x0008 */ struct _IRP* Irp; /* off 0x000c */ unsigned long DueTickCount; /* off 0x0010 */ unsigned char Inserted; /* off 0x0011 */ char TrackedStackLocation; /* off 0x0012 */ unsigned short CancelTimeoutTicks; }; enum _WOW64_SHARED_INFORMATION { SharedNtdll32LdrInitializeThunk =0x00000000 ,//0 SharedNtdll32KiUserExceptionDispatcher =0x00000001 ,//0 SharedNtdll32KiUserApcDispatcher =0x00000002 ,//0 SharedNtdll32KiUserCallbackDispatcher =0x00000003 ,//0 SharedNtdll32LdrHotPatchRoutine =0x00000004 ,//0 SharedNtdll32ExpInterlockedPopEntrySListFault =0x00000005 ,//0 SharedNtdll32ExpInterlockedPopEntrySListResume =0x00000006 ,//0 SharedNtdll32ExpInterlockedPopEntrySListEnd =0x00000007 ,//0 SharedNtdll32RtlUserThreadStart =0x00000008 ,//0 SharedNtdll32pQueryProcessDebugInformationRemote =0x00000009 ,//0 SharedNtdll32EtwpNotificationThread =0x0000000a ,//0 SharedNtdll32BaseAddress =0x0000000b ,//0 Wow64SharedPageEntriesCount =0x0000000c ,//0 }; enum _REG_NOTIFY_CLASS { RegNtDeleteKey =0x00000000 ,//0 RegNtPreDeleteKey =0x00000000 ,//0 RegNtSetValueKey =0x00000001 ,//0 RegNtPreSetValueKey =0x00000001 ,//0 RegNtDeleteValueKey =0x00000002 ,//0 RegNtPreDeleteValueKey =0x00000002 ,//0 RegNtSetInformationKey =0x00000003 ,//0 RegNtPreSetInformationKey =0x00000003 ,//0 RegNtRenameKey =0x00000004 ,//0 RegNtPreRenameKey =0x00000004 ,//0 RegNtEnumerateKey =0x00000005 ,//0 RegNtPreEnumerateKey =0x00000005 ,//0 RegNtEnumerateValueKey =0x00000006 ,//0 RegNtPreEnumerateValueKey =0x00000006 ,//0 RegNtQueryKey =0x00000007 ,//0 RegNtPreQueryKey =0x00000007 ,//0 RegNtQueryValueKey =0x00000008 ,//0 RegNtPreQueryValueKey =0x00000008 ,//0 RegNtQueryMultipleValueKey =0x00000009 ,//0 RegNtPreQueryMultipleValueKey =0x00000009 ,//0 RegNtPreCreateKey =0x0000000a ,//0 RegNtPostCreateKey =0x0000000b ,//0 RegNtPreOpenKey =0x0000000c ,//0 RegNtPostOpenKey =0x0000000d ,//0 RegNtKeyHandleClose =0x0000000e ,//0 RegNtPreKeyHandleClose =0x0000000e ,//0 RegNtPostDeleteKey =0x0000000f ,//0 RegNtPostSetValueKey =0x00000010 ,//0 RegNtPostDeleteValueKey =0x00000011 ,//0 RegNtPostSetInformationKey =0x00000012 ,//0 RegNtPostRenameKey =0x00000013 ,//0 RegNtPostEnumerateKey =0x00000014 ,//0 RegNtPostEnumerateValueKey =0x00000015 ,//0 RegNtPostQueryKey =0x00000016 ,//0 RegNtPostQueryValueKey =0x00000017 ,//0 RegNtPostQueryMultipleValueKey =0x00000018 ,//0 RegNtPostKeyHandleClose =0x00000019 ,//0 RegNtPreCreateKeyEx =0x0000001a ,//0 RegNtPostCreateKeyEx =0x0000001b ,//0 RegNtPreOpenKeyEx =0x0000001c ,//0 RegNtPostOpenKeyEx =0x0000001d ,//0 RegNtPreFlushKey =0x0000001e ,//0 RegNtPostFlushKey =0x0000001f ,//0 RegNtPreLoadKey =0x00000020 ,//0 RegNtPostLoadKey =0x00000021 ,//0 RegNtPreUnLoadKey =0x00000022 ,//0 RegNtPostUnLoadKey =0x00000023 ,//0 RegNtPreQueryKeySecurity =0x00000024 ,//0 RegNtPostQueryKeySecurity =0x00000025 ,//0 RegNtPreSetKeySecurity =0x00000026 ,//0 RegNtPostSetKeySecurity =0x00000027 ,//0 RegNtCallbackObjectContextCleanup =0x00000028 ,//0 RegNtPreRestoreKey =0x00000029 ,//0 RegNtPostRestoreKey =0x0000002a ,//0 RegNtPreSaveKey =0x0000002b ,//0 RegNtPostSaveKey =0x0000002c ,//0 RegNtPreReplaceKey =0x0000002d ,//0 RegNtPostReplaceKey =0x0000002e ,//0 MaxRegNtNotifyClass =0x0000002f ,//0 }; struct _OBJECT_SYMBOLIC_LINK /* sizeof 00000018 24 */ { /* off 0x0000 */ union _LARGE_INTEGER CreationTime; /* off 0x0008 */ struct _UNICODE_STRING LinkTarget; /* off 0x0010 */ unsigned long DosDeviceDriveIndex; }; struct _VF_TRACKER /* sizeof 00000010 16 */ { /* off 0x0000 */ unsigned long TrackerFlags; /* off 0x0004 */ unsigned long TrackerSize; /* off 0x0008 */ unsigned long TrackerIndex; /* off 0x000c */ unsigned long TraceDepth; }; struct _CALL_PERFORMANCE_DATA /* sizeof 00000204 516 */ { /* off 0x0000 */ unsigned long SpinLock; /* off 0x0004 */ struct _LIST_ENTRY HashTable[64]; }; enum _FILE_OBJECT_EXTENSION_TYPE { FoExtTypeTransactionParams =0x00000000 ,//0 FoExtTypeDeviceObjectHint =0x00000001 ,//0 FoExtTypeIosbRange =0x00000002 ,//0 FoExtTypeGeneric =0x00000003 ,//0 FoExtTypeSfio =0x00000004 ,//0 FoExtTypeSymlink =0x00000005 ,//0 FoExtTypeOplockKey =0x00000006 ,//0 MaxFoExtTypes =0x00000007 ,//0 }; struct _STACK_TABLE /* sizeof 00008040 32832 */ { /* off 0x0000 */ unsigned short NumStackTraces; /* off 0x0002 */ unsigned short TraceCapacity; /* off 0x0004 */ struct _OBJECT_REF_TRACE* StackTrace[16]; /* off 0x0044 */ unsigned short StackTableHash[16381]; }; struct _OBJECT_REF_TRACE /* sizeof 00000040 64 */ { /* off 0x0000 */ void* StackTrace[16]; }; struct _DEFERRED_WRITE /* sizeof 00000024 36 */ { /* off 0x0000 */ short NodeTypeCode; /* off 0x0002 */ short NodeByteSize; /* off 0x0004 */ struct _FILE_OBJECT* FileObject; /* off 0x0008 */ unsigned long BytesToWrite; /* off 0x000c */ struct _LIST_ENTRY DeferredWriteLinks; /* off 0x0014 */ struct _KEVENT* Event; /* off 0x0018 */ void( __stdcall *PostRoutine)(void*,void*); /* off 0x001c */ void* Context1; /* off 0x0020 */ void* Context2; }; ================================================ FILE: Bin/i386/APILib/MMSystem.h ================================================ /*========================================================================== * * mmsystem.h -- Include file for Multimedia API's * * Version 4.00 * * Copyright (C) 1992-1998 Microsoft Corporation. All Rights Reserved. * *-------------------------------------------------------------------------- * * Define: Prevent inclusion of: * -------------- -------------------------------------------------------- * MMNODRV Installable driver support * MMNOSOUND Sound support * MMNOWAVE Waveform support * MMNOMIDI MIDI support * MMNOAUX Auxiliary audio support * MMNOMIXER Mixer support * MMNOTIMER Timer support * MMNOJOY Joystick support * MMNOMCI MCI support * MMNOMMIO Multimedia file I/O support * MMNOMMSYSTEM General MMSYSTEM functions * *========================================================================== */ #ifndef _INC_MMSYSTEM #define _INC_MMSYSTEM /* #defined if mmsystem.h has been included */ #ifdef _WIN32 #include #else #ifndef RC_INVOKED #pragma pack(1) #endif #endif #ifdef __cplusplus extern "C" { /* Assume C declarations for C++ */ #endif /* __cplusplus */ #ifdef _WIN32 #ifndef _WINMM_ #define WINMMAPI DECLSPEC_IMPORT #else #define WINMMAPI #endif #define _loadds #define _huge #else #define WINMMAPI #endif #ifdef _MAC #include #endif //_MAC /**************************************************************************** General constants and data types ****************************************************************************/ /* general constants */ #define MAXPNAMELEN 32 /* max product name length (including NULL) */ #define MAXERRORLENGTH 256 /* max error text length (including NULL) */ #define MAX_JOYSTICKOEMVXDNAME 260 /* max oem vxd name length (including NULL) */ /* * Microsoft Manufacturer and Product ID's (these have been moved to * MMREG.H for Windows 4.00 and above). */ #if (WINVER <= 0x0400) #ifndef MM_MICROSOFT #define MM_MICROSOFT 1 /* Microsoft Corporation */ #endif #ifndef MM_MIDI_MAPPER #define MM_MIDI_MAPPER 1 /* MIDI Mapper */ #define MM_WAVE_MAPPER 2 /* Wave Mapper */ #define MM_SNDBLST_MIDIOUT 3 /* Sound Blaster MIDI output port */ #define MM_SNDBLST_MIDIIN 4 /* Sound Blaster MIDI input port */ #define MM_SNDBLST_SYNTH 5 /* Sound Blaster internal synthesizer */ #define MM_SNDBLST_WAVEOUT 6 /* Sound Blaster waveform output */ #define MM_SNDBLST_WAVEIN 7 /* Sound Blaster waveform input */ #define MM_ADLIB 9 /* Ad Lib-compatible synthesizer */ #define MM_MPU401_MIDIOUT 10 /* MPU401-compatible MIDI output port */ #define MM_MPU401_MIDIIN 11 /* MPU401-compatible MIDI input port */ #define MM_PC_JOYSTICK 12 /* Joystick adapter */ #endif #endif /* general data types */ #ifdef _WIN32 typedef UINT MMVERSION; /* major (high byte), minor (low byte) */ #else typedef UINT VERSION; /* major (high byte), minor (low byte) */ #endif typedef UINT MMRESULT; /* error return code, 0 means no error */ /* call as if(err=xxxx(...)) Error(err); else */ #define _MMRESULT_ typedef UINT FAR *LPUINT; /* MMTIME data structure */ typedef struct mmtime_tag { UINT wType; /* indicates the contents of the union */ union { DWORD ms; /* milliseconds */ DWORD sample; /* samples */ DWORD cb; /* byte count */ DWORD ticks; /* ticks in MIDI stream */ /* SMPTE */ struct { BYTE hour; /* hours */ BYTE min; /* minutes */ BYTE sec; /* seconds */ BYTE frame; /* frames */ BYTE fps; /* frames per second */ BYTE dummy; /* pad */ #ifdef _WIN32 BYTE pad[2]; #endif } smpte; /* MIDI */ struct { DWORD songptrpos; /* song pointer position */ } midi; } u; } MMTIME, *PMMTIME, NEAR *NPMMTIME, FAR *LPMMTIME; /* types for wType field in MMTIME struct */ #define TIME_MS 0x0001 /* time in milliseconds */ #define TIME_SAMPLES 0x0002 /* number of wave samples */ #define TIME_BYTES 0x0004 /* current byte offset */ #define TIME_SMPTE 0x0008 /* SMPTE time */ #define TIME_MIDI 0x0010 /* MIDI time */ #define TIME_TICKS 0x0020 /* Ticks within MIDI stream */ /* * * */ #define MAKEFOURCC(ch0, ch1, ch2, ch3) \ ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 )) /**************************************************************************** Multimedia Extensions Window Messages ****************************************************************************/ #define MM_JOY1MOVE 0x3A0 /* joystick */ #define MM_JOY2MOVE 0x3A1 #define MM_JOY1ZMOVE 0x3A2 #define MM_JOY2ZMOVE 0x3A3 #define MM_JOY1BUTTONDOWN 0x3B5 #define MM_JOY2BUTTONDOWN 0x3B6 #define MM_JOY1BUTTONUP 0x3B7 #define MM_JOY2BUTTONUP 0x3B8 #define MM_MCINOTIFY 0x3B9 /* MCI */ #define MM_WOM_OPEN 0x3BB /* waveform output */ #define MM_WOM_CLOSE 0x3BC #define MM_WOM_DONE 0x3BD #define MM_WIM_OPEN 0x3BE /* waveform input */ #define MM_WIM_CLOSE 0x3BF #define MM_WIM_DATA 0x3C0 #define MM_MIM_OPEN 0x3C1 /* MIDI input */ #define MM_MIM_CLOSE 0x3C2 #define MM_MIM_DATA 0x3C3 #define MM_MIM_LONGDATA 0x3C4 #define MM_MIM_ERROR 0x3C5 #define MM_MIM_LONGERROR 0x3C6 #define MM_MOM_OPEN 0x3C7 /* MIDI output */ #define MM_MOM_CLOSE 0x3C8 #define MM_MOM_DONE 0x3C9 /* these are also in msvideo.h */ #ifndef MM_DRVM_OPEN #define MM_DRVM_OPEN 0x3D0 /* installable drivers */ #define MM_DRVM_CLOSE 0x3D1 #define MM_DRVM_DATA 0x3D2 #define MM_DRVM_ERROR 0x3D3 #endif /* these are used by msacm.h */ #define MM_STREAM_OPEN 0x3D4 #define MM_STREAM_CLOSE 0x3D5 #define MM_STREAM_DONE 0x3D6 #define MM_STREAM_ERROR 0x3D7 #if(WINVER >= 0x0400) #define MM_MOM_POSITIONCB 0x3CA /* Callback for MEVT_POSITIONCB */ #ifndef MM_MCISIGNAL #define MM_MCISIGNAL 0x3CB #endif #define MM_MIM_MOREDATA 0x3CC /* MIM_DONE w/ pending events */ #endif /* WINVER >= 0x0400 */ #define MM_MIXM_LINE_CHANGE 0x3D0 /* mixer line change notify */ #define MM_MIXM_CONTROL_CHANGE 0x3D1 /* mixer control change notify */ /**************************************************************************** String resource number bases (internal use) ****************************************************************************/ #define MMSYSERR_BASE 0 #define WAVERR_BASE 32 #define MIDIERR_BASE 64 #define TIMERR_BASE 96 #define JOYERR_BASE 160 #define MCIERR_BASE 256 #define MIXERR_BASE 1024 #define MCI_STRING_OFFSET 512 #define MCI_VD_OFFSET 1024 #define MCI_CD_OFFSET 1088 #define MCI_WAVE_OFFSET 1152 #define MCI_SEQ_OFFSET 1216 /**************************************************************************** General error return values ****************************************************************************/ /* general error return values */ #define MMSYSERR_NOERROR 0 /* no error */ #define MMSYSERR_ERROR (MMSYSERR_BASE + 1) /* unspecified error */ #define MMSYSERR_BADDEVICEID (MMSYSERR_BASE + 2) /* device ID out of range */ #define MMSYSERR_NOTENABLED (MMSYSERR_BASE + 3) /* driver failed enable */ #define MMSYSERR_ALLOCATED (MMSYSERR_BASE + 4) /* device already allocated */ #define MMSYSERR_INVALHANDLE (MMSYSERR_BASE + 5) /* device handle is invalid */ #define MMSYSERR_NODRIVER (MMSYSERR_BASE + 6) /* no device driver present */ #define MMSYSERR_NOMEM (MMSYSERR_BASE + 7) /* memory allocation error */ #define MMSYSERR_NOTSUPPORTED (MMSYSERR_BASE + 8) /* function isn't supported */ #define MMSYSERR_BADERRNUM (MMSYSERR_BASE + 9) /* error value out of range */ #define MMSYSERR_INVALFLAG (MMSYSERR_BASE + 10) /* invalid flag passed */ #define MMSYSERR_INVALPARAM (MMSYSERR_BASE + 11) /* invalid parameter passed */ #define MMSYSERR_HANDLEBUSY (MMSYSERR_BASE + 12) /* handle being used */ /* simultaneously on another */ /* thread (eg callback) */ #define MMSYSERR_INVALIDALIAS (MMSYSERR_BASE + 13) /* specified alias not found */ #define MMSYSERR_BADDB (MMSYSERR_BASE + 14) /* bad registry database */ #define MMSYSERR_KEYNOTFOUND (MMSYSERR_BASE + 15) /* registry key not found */ #define MMSYSERR_READERROR (MMSYSERR_BASE + 16) /* registry read error */ #define MMSYSERR_WRITEERROR (MMSYSERR_BASE + 17) /* registry write error */ #define MMSYSERR_DELETEERROR (MMSYSERR_BASE + 18) /* registry delete error */ #define MMSYSERR_VALNOTFOUND (MMSYSERR_BASE + 19) /* registry value not found */ #define MMSYSERR_NODRIVERCB (MMSYSERR_BASE + 20) /* driver does not call DriverCallback */ #define MMSYSERR_MOREDATA (MMSYSERR_BASE + 21) /* more data to be returned */ #define MMSYSERR_LASTERROR (MMSYSERR_BASE + 21) /* last error in range */ #if (WINVER < 0x030a) || defined(_WIN32) DECLARE_HANDLE(HDRVR); #endif /* ifdef WINVER < 0x030a */ #ifndef MMNODRV /**************************************************************************** Installable driver support ****************************************************************************/ #ifdef _WIN32 typedef struct DRVCONFIGINFOEX { DWORD dwDCISize; LPCWSTR lpszDCISectionName; LPCWSTR lpszDCIAliasName; DWORD dnDevNode; } DRVCONFIGINFOEX, *PDRVCONFIGINFOEX, NEAR *NPDRVCONFIGINFOEX, FAR *LPDRVCONFIGINFOEX; #else typedef struct DRVCONFIGINFOEX { DWORD dwDCISize; LPCSTR lpszDCISectionName; LPCSTR lpszDCIAliasName; DWORD dnDevNode; } DRVCONFIGINFOEX, *PDRVCONFIGINFOEX, NEAR *NPDRVCONFIGINFOEX, FAR *LPDRVCONFIGINFOEX; #endif #if (WINVER < 0x030a) || defined(_WIN32) #ifndef DRV_LOAD /* Driver messages */ #define DRV_LOAD 0x0001 #define DRV_ENABLE 0x0002 #define DRV_OPEN 0x0003 #define DRV_CLOSE 0x0004 #define DRV_DISABLE 0x0005 #define DRV_FREE 0x0006 #define DRV_CONFIGURE 0x0007 #define DRV_QUERYCONFIGURE 0x0008 #define DRV_INSTALL 0x0009 #define DRV_REMOVE 0x000A #define DRV_EXITSESSION 0x000B #define DRV_POWER 0x000F #define DRV_RESERVED 0x0800 #define DRV_USER 0x4000 /* LPARAM of DRV_CONFIGURE message */ #ifdef _WIN32 typedef struct tagDRVCONFIGINFO { DWORD dwDCISize; LPCWSTR lpszDCISectionName; LPCWSTR lpszDCIAliasName; } DRVCONFIGINFO, *PDRVCONFIGINFO, NEAR *NPDRVCONFIGINFO, FAR *LPDRVCONFIGINFO; #else typedef struct tagDRVCONFIGINFO { DWORD dwDCISize; LPCSTR lpszDCISectionName; LPCSTR lpszDCIAliasName; } DRVCONFIGINFO, *PDRVCONFIGINFO, NEAR *NPDRVCONFIGINFO, FAR *LPDRVCONFIGINFO; #endif /* Supported return values for DRV_CONFIGURE message */ #define DRVCNF_CANCEL 0x0000 #define DRVCNF_OK 0x0001 #define DRVCNF_RESTART 0x0002 /* installable driver function prototypes */ #ifdef _WIN32 typedef LRESULT (CALLBACK* DRIVERPROC)(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM); WINMMAPI LRESULT WINAPI CloseDriver( IN HDRVR hDriver, IN LPARAM lParam1, IN LPARAM lParam2); WINMMAPI HDRVR WINAPI OpenDriver( IN LPCWSTR szDriverName, IN LPCWSTR szSectionName, IN LPARAM lParam2); WINMMAPI LRESULT WINAPI SendDriverMessage( IN HDRVR hDriver, IN UINT message, IN LPARAM lParam1, IN LPARAM lParam2); WINMMAPI HMODULE WINAPI DrvGetModuleHandle( IN HDRVR hDriver); WINMMAPI HMODULE WINAPI GetDriverModuleHandle( IN HDRVR hDriver); WINMMAPI LRESULT WINAPI DefDriverProc( IN DWORD_PTR dwDriverIdentifier, IN HDRVR hdrvr, IN UINT uMsg, IN LPARAM lParam1, IN LPARAM lParam2); #else LRESULT WINAPI DrvClose(HDRVR hdrvr, LPARAM lParam1, LPARAM lParam2); HDRVR WINAPI DrvOpen(LPCSTR szDriverName, LPCSTR szSectionName, LPARAM lParam2); LRESULT WINAPI DrvSendMessage(HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2); HINSTANCE WINAPI DrvGetModuleHandle(HDRVR hdrvr); LRESULT WINAPI DrvDefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2); #define DefDriverProc DrvDefDriverProc #endif /* ifdef _WIN32 */ #endif /* DRV_LOAD */ #endif /* ifdef (WINVER < 0x030a) || defined(_WIN32) */ #if (WINVER >= 0x030a) /* return values from DriverProc() function */ #define DRV_CANCEL DRVCNF_CANCEL #define DRV_OK DRVCNF_OK #define DRV_RESTART DRVCNF_RESTART #endif /* ifdef WINVER >= 0x030a */ #define DRV_MCI_FIRST DRV_RESERVED #define DRV_MCI_LAST (DRV_RESERVED + 0xFFF) #endif /* ifndef MMNODRV */ /**************************************************************************** Driver callback support ****************************************************************************/ /* flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and */ /* midiOutOpen() to specify the type of the dwCallback parameter. */ #define CALLBACK_TYPEMASK 0x00070000l /* callback type mask */ #define CALLBACK_NULL 0x00000000l /* no callback */ #define CALLBACK_WINDOW 0x00010000l /* dwCallback is a HWND */ #define CALLBACK_TASK 0x00020000l /* dwCallback is a HTASK */ #define CALLBACK_FUNCTION 0x00030000l /* dwCallback is a FARPROC */ #ifdef _WIN32 #define CALLBACK_THREAD (CALLBACK_TASK)/* thread ID replaces 16 bit task */ #define CALLBACK_EVENT 0x00050000l /* dwCallback is an EVENT Handle */ #endif typedef void (CALLBACK DRVCALLBACK)(HDRVR hdrvr, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); typedef DRVCALLBACK FAR *LPDRVCALLBACK; #ifdef _WIN32 typedef DRVCALLBACK *PDRVCALLBACK; #endif #ifndef MMNOMMSYSTEM /**************************************************************************** General MMSYSTEM support ****************************************************************************/ #if (WINVER <= 0x030A) WINMMAPI UINT WINAPI mmsystemGetVersion(void); #endif #ifdef _WIN32 #define OutputDebugStr OutputDebugString #else void WINAPI OutputDebugStr(LPCSTR); #endif #endif /* ifndef MMNOMMSYSTEM */ #ifndef MMNOSOUND /**************************************************************************** Sound support ****************************************************************************/ #ifdef _WIN32 WINMMAPI BOOL WINAPI sndPlaySoundA( IN LPCSTR pszSound, IN UINT fuSound); WINMMAPI BOOL WINAPI sndPlaySoundW( IN LPCWSTR pszSound, IN UINT fuSound); #ifdef UNICODE #define sndPlaySound sndPlaySoundW #else #define sndPlaySound sndPlaySoundA #endif // !UNICODE #else BOOL WINAPI sndPlaySound(LPCSTR pszSound, UINT fuSound); #endif /* * flag values for fuSound and fdwSound arguments on [snd]PlaySound */ #define SND_SYNC 0x0000 /* play synchronously (default) */ #define SND_ASYNC 0x0001 /* play asynchronously */ #define SND_NODEFAULT 0x0002 /* silence (!default) if sound not found */ #define SND_MEMORY 0x0004 /* pszSound points to a memory file */ #define SND_LOOP 0x0008 /* loop the sound until next sndPlaySound */ #define SND_NOSTOP 0x0010 /* don't stop any currently playing sound */ #define SND_NOWAIT 0x00002000L /* don't wait if the driver is busy */ #define SND_ALIAS 0x00010000L /* name is a registry alias */ #define SND_ALIAS_ID 0x00110000L /* alias is a predefined ID */ #define SND_FILENAME 0x00020000L /* name is file name */ #define SND_RESOURCE 0x00040004L /* name is resource name or atom */ #if(WINVER >= 0x0400) #define SND_PURGE 0x0040 /* purge non-static events for task */ #define SND_APPLICATION 0x0080 /* look for application specific association */ #endif /* WINVER >= 0x0400 */ #define SND_ALIAS_START 0 /* alias base */ #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') WINMMAPI BOOL WINAPI PlaySoundA( IN LPCSTR pszSound, IN HMODULE hmod, IN DWORD fdwSound); WINMMAPI BOOL WINAPI PlaySoundW( IN LPCWSTR pszSound, IN HMODULE hmod, IN DWORD fdwSound); #ifdef UNICODE #define PlaySound PlaySoundW #else #define PlaySound PlaySoundA #endif // !UNICODE #else BOOL WINAPI PlaySound(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound); #endif #endif /* ifndef MMNOSOUND */ #ifndef MMNOWAVE /**************************************************************************** Waveform audio support ****************************************************************************/ /* waveform audio error return values */ #define WAVERR_BADFORMAT (WAVERR_BASE + 0) /* unsupported wave format */ #define WAVERR_STILLPLAYING (WAVERR_BASE + 1) /* still something playing */ #define WAVERR_UNPREPARED (WAVERR_BASE + 2) /* header not prepared */ #define WAVERR_SYNC (WAVERR_BASE + 3) /* device is synchronous */ #define WAVERR_LASTERROR (WAVERR_BASE + 3) /* last error in range */ /* waveform audio data types */ DECLARE_HANDLE(HWAVE); DECLARE_HANDLE(HWAVEIN); DECLARE_HANDLE(HWAVEOUT); typedef HWAVEIN FAR *LPHWAVEIN; typedef HWAVEOUT FAR *LPHWAVEOUT; typedef DRVCALLBACK WAVECALLBACK; typedef WAVECALLBACK FAR *LPWAVECALLBACK; /* wave callback messages */ #define WOM_OPEN MM_WOM_OPEN #define WOM_CLOSE MM_WOM_CLOSE #define WOM_DONE MM_WOM_DONE #define WIM_OPEN MM_WIM_OPEN #define WIM_CLOSE MM_WIM_CLOSE #define WIM_DATA MM_WIM_DATA /* device ID for wave device mapper */ #define WAVE_MAPPER ((UINT)-1) /* flags for dwFlags parameter in waveOutOpen() and waveInOpen() */ #define WAVE_FORMAT_QUERY 0x0001 #define WAVE_ALLOWSYNC 0x0002 #if(WINVER >= 0x0400) #define WAVE_MAPPED 0x0004 #define WAVE_FORMAT_DIRECT 0x0008 #define WAVE_FORMAT_DIRECT_QUERY (WAVE_FORMAT_QUERY | WAVE_FORMAT_DIRECT) #endif /* WINVER >= 0x0400 */ /* wave data block header */ typedef struct wavehdr_tag { LPSTR lpData; /* pointer to locked data buffer */ DWORD dwBufferLength; /* length of data buffer */ DWORD dwBytesRecorded; /* used for input only */ DWORD_PTR dwUser; /* for client's use */ DWORD dwFlags; /* assorted flags (see defines) */ DWORD dwLoops; /* loop control counter */ struct wavehdr_tag FAR *lpNext; /* reserved for driver */ DWORD_PTR reserved; /* reserved for driver */ } WAVEHDR, *PWAVEHDR, NEAR *NPWAVEHDR, FAR *LPWAVEHDR; /* flags for dwFlags field of WAVEHDR */ #define WHDR_DONE 0x00000001 /* done bit */ #define WHDR_PREPARED 0x00000002 /* set if this header has been prepared */ #define WHDR_BEGINLOOP 0x00000004 /* loop start block */ #define WHDR_ENDLOOP 0x00000008 /* loop end block */ #define WHDR_INQUEUE 0x00000010 /* reserved for driver */ /* waveform output device capabilities structure */ #ifdef _WIN32 typedef struct tagWAVEOUTCAPSA { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of sources supported */ WORD wReserved1; /* packing */ DWORD dwSupport; /* functionality supported by driver */ } WAVEOUTCAPSA, *PWAVEOUTCAPSA, *NPWAVEOUTCAPSA, *LPWAVEOUTCAPSA; typedef struct tagWAVEOUTCAPSW { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of sources supported */ WORD wReserved1; /* packing */ DWORD dwSupport; /* functionality supported by driver */ } WAVEOUTCAPSW, *PWAVEOUTCAPSW, *NPWAVEOUTCAPSW, *LPWAVEOUTCAPSW; #ifdef UNICODE typedef WAVEOUTCAPSW WAVEOUTCAPS; typedef PWAVEOUTCAPSW PWAVEOUTCAPS; typedef NPWAVEOUTCAPSW NPWAVEOUTCAPS; typedef LPWAVEOUTCAPSW LPWAVEOUTCAPS; #else typedef WAVEOUTCAPSA WAVEOUTCAPS; typedef PWAVEOUTCAPSA PWAVEOUTCAPS; typedef NPWAVEOUTCAPSA NPWAVEOUTCAPS; typedef LPWAVEOUTCAPSA LPWAVEOUTCAPS; #endif // UNICODE typedef struct tagWAVEOUTCAPS2A { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of sources supported */ WORD wReserved1; /* packing */ DWORD dwSupport; /* functionality supported by driver */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } WAVEOUTCAPS2A, *PWAVEOUTCAPS2A, *NPWAVEOUTCAPS2A, *LPWAVEOUTCAPS2A; typedef struct tagWAVEOUTCAPS2W { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of sources supported */ WORD wReserved1; /* packing */ DWORD dwSupport; /* functionality supported by driver */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } WAVEOUTCAPS2W, *PWAVEOUTCAPS2W, *NPWAVEOUTCAPS2W, *LPWAVEOUTCAPS2W; #ifdef UNICODE typedef WAVEOUTCAPS2W WAVEOUTCAPS2; typedef PWAVEOUTCAPS2W PWAVEOUTCAPS2; typedef NPWAVEOUTCAPS2W NPWAVEOUTCAPS2; typedef LPWAVEOUTCAPS2W LPWAVEOUTCAPS2; #else typedef WAVEOUTCAPS2A WAVEOUTCAPS2; typedef PWAVEOUTCAPS2A PWAVEOUTCAPS2; typedef NPWAVEOUTCAPS2A NPWAVEOUTCAPS2; typedef LPWAVEOUTCAPS2A LPWAVEOUTCAPS2; #endif // UNICODE #else typedef struct waveoutcaps_tag { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ VERSION vDriverVersion; /* version of the driver */ char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of sources supported */ DWORD dwSupport; /* functionality supported by driver */ } WAVEOUTCAPS, *PWAVEOUTCAPS, NEAR *NPWAVEOUTCAPS, FAR *LPWAVEOUTCAPS; #endif /* flags for dwSupport field of WAVEOUTCAPS */ #define WAVECAPS_PITCH 0x0001 /* supports pitch control */ #define WAVECAPS_PLAYBACKRATE 0x0002 /* supports playback rate control */ #define WAVECAPS_VOLUME 0x0004 /* supports volume control */ #define WAVECAPS_LRVOLUME 0x0008 /* separate left-right volume control */ #define WAVECAPS_SYNC 0x0010 #define WAVECAPS_SAMPLEACCURATE 0x0020 /* waveform input device capabilities structure */ #ifdef _WIN32 typedef struct tagWAVEINCAPSA { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of channels supported */ WORD wReserved1; /* structure packing */ } WAVEINCAPSA, *PWAVEINCAPSA, *NPWAVEINCAPSA, *LPWAVEINCAPSA; typedef struct tagWAVEINCAPSW { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of channels supported */ WORD wReserved1; /* structure packing */ } WAVEINCAPSW, *PWAVEINCAPSW, *NPWAVEINCAPSW, *LPWAVEINCAPSW; #ifdef UNICODE typedef WAVEINCAPSW WAVEINCAPS; typedef PWAVEINCAPSW PWAVEINCAPS; typedef NPWAVEINCAPSW NPWAVEINCAPS; typedef LPWAVEINCAPSW LPWAVEINCAPS; #else typedef WAVEINCAPSA WAVEINCAPS; typedef PWAVEINCAPSA PWAVEINCAPS; typedef NPWAVEINCAPSA NPWAVEINCAPS; typedef LPWAVEINCAPSA LPWAVEINCAPS; #endif // UNICODE typedef struct tagWAVEINCAPS2A { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of channels supported */ WORD wReserved1; /* structure packing */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } WAVEINCAPS2A, *PWAVEINCAPS2A, *NPWAVEINCAPS2A, *LPWAVEINCAPS2A; typedef struct tagWAVEINCAPS2W { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of channels supported */ WORD wReserved1; /* structure packing */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } WAVEINCAPS2W, *PWAVEINCAPS2W, *NPWAVEINCAPS2W, *LPWAVEINCAPS2W; #ifdef UNICODE typedef WAVEINCAPS2W WAVEINCAPS2; typedef PWAVEINCAPS2W PWAVEINCAPS2; typedef NPWAVEINCAPS2W NPWAVEINCAPS2; typedef LPWAVEINCAPS2W LPWAVEINCAPS2; #else typedef WAVEINCAPS2A WAVEINCAPS2; typedef PWAVEINCAPS2A PWAVEINCAPS2; typedef NPWAVEINCAPS2A NPWAVEINCAPS2; typedef LPWAVEINCAPS2A LPWAVEINCAPS2; #endif // UNICODE #else typedef struct waveincaps_tag { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ VERSION vDriverVersion; /* version of the driver */ char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ DWORD dwFormats; /* formats supported */ WORD wChannels; /* number of channels supported */ } WAVEINCAPS, *PWAVEINCAPS, NEAR *NPWAVEINCAPS, FAR *LPWAVEINCAPS; #endif /* defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS */ #define WAVE_INVALIDFORMAT 0x00000000 /* invalid format */ #define WAVE_FORMAT_1M08 0x00000001 /* 11.025 kHz, Mono, 8-bit */ #define WAVE_FORMAT_1S08 0x00000002 /* 11.025 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_1M16 0x00000004 /* 11.025 kHz, Mono, 16-bit */ #define WAVE_FORMAT_1S16 0x00000008 /* 11.025 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_2M08 0x00000010 /* 22.05 kHz, Mono, 8-bit */ #define WAVE_FORMAT_2S08 0x00000020 /* 22.05 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_2M16 0x00000040 /* 22.05 kHz, Mono, 16-bit */ #define WAVE_FORMAT_2S16 0x00000080 /* 22.05 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_4M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ #define WAVE_FORMAT_4S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_4M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ #define WAVE_FORMAT_4S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_44M08 0x00000100 /* 44.1 kHz, Mono, 8-bit */ #define WAVE_FORMAT_44S08 0x00000200 /* 44.1 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_44M16 0x00000400 /* 44.1 kHz, Mono, 16-bit */ #define WAVE_FORMAT_44S16 0x00000800 /* 44.1 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_48M08 0x00001000 /* 48 kHz, Mono, 8-bit */ #define WAVE_FORMAT_48S08 0x00002000 /* 48 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_48M16 0x00004000 /* 48 kHz, Mono, 16-bit */ #define WAVE_FORMAT_48S16 0x00008000 /* 48 kHz, Stereo, 16-bit */ #define WAVE_FORMAT_96M08 0x00010000 /* 96 kHz, Mono, 8-bit */ #define WAVE_FORMAT_96S08 0x00020000 /* 96 kHz, Stereo, 8-bit */ #define WAVE_FORMAT_96M16 0x00040000 /* 96 kHz, Mono, 16-bit */ #define WAVE_FORMAT_96S16 0x00080000 /* 96 kHz, Stereo, 16-bit */ #ifndef WAVE_FORMAT_PCM /* OLD general waveform format structure (information common to all formats) */ typedef struct waveformat_tag { WORD wFormatTag; /* format type */ WORD nChannels; /* number of channels (i.e. mono, stereo, etc.) */ DWORD nSamplesPerSec; /* sample rate */ DWORD nAvgBytesPerSec; /* for buffer estimation */ WORD nBlockAlign; /* block size of data */ } WAVEFORMAT, *PWAVEFORMAT, NEAR *NPWAVEFORMAT, FAR *LPWAVEFORMAT; /* flags for wFormatTag field of WAVEFORMAT */ #define WAVE_FORMAT_PCM 1 /* specific waveform format structure for PCM data */ typedef struct pcmwaveformat_tag { WAVEFORMAT wf; WORD wBitsPerSample; } PCMWAVEFORMAT, *PPCMWAVEFORMAT, NEAR *NPPCMWAVEFORMAT, FAR *LPPCMWAVEFORMAT; #endif /* WAVE_FORMAT_PCM */ #ifndef _WAVEFORMATEX_ #define _WAVEFORMATEX_ /* * extended waveform format structure used for all non-PCM formats. this * structure is common to all non-PCM formats. */ typedef struct tWAVEFORMATEX { WORD wFormatTag; /* format type */ WORD nChannels; /* number of channels (i.e. mono, stereo...) */ DWORD nSamplesPerSec; /* sample rate */ DWORD nAvgBytesPerSec; /* for buffer estimation */ WORD nBlockAlign; /* block size of data */ WORD wBitsPerSample; /* number of bits per sample of mono data */ WORD cbSize; /* the count in bytes of the size of */ /* extra information (after cbSize) */ } WAVEFORMATEX, *PWAVEFORMATEX, NEAR *NPWAVEFORMATEX, FAR *LPWAVEFORMATEX; #endif /* _WAVEFORMATEX_ */ typedef const WAVEFORMATEX FAR *LPCWAVEFORMATEX; /* waveform audio function prototypes */ WINMMAPI UINT WINAPI waveOutGetNumDevs(void); #ifdef _WIN32 WINMMAPI MMRESULT WINAPI waveOutGetDevCapsA( IN UINT_PTR uDeviceID, OUT LPWAVEOUTCAPSA pwoc, IN UINT cbwoc); WINMMAPI MMRESULT WINAPI waveOutGetDevCapsW( IN UINT_PTR uDeviceID, OUT LPWAVEOUTCAPSW pwoc, IN UINT cbwoc); #ifdef UNICODE #define waveOutGetDevCaps waveOutGetDevCapsW #else #define waveOutGetDevCaps waveOutGetDevCapsA #endif // !UNICODE #else WINMMAPI MMRESULT WINAPI waveOutGetDevCaps( UINT uDeviceID, LPWAVEOUTCAPS pwoc, UINT cbwoc); #endif #if (WINVER >= 0x0400) WINMMAPI MMRESULT WINAPI waveOutGetVolume( IN HWAVEOUT hwo, OUT LPDWORD pdwVolume); WINMMAPI MMRESULT WINAPI waveOutSetVolume( IN HWAVEOUT hwo, IN DWORD dwVolume); #else WINMMAPI MMRESULT WINAPI waveOutGetVolume(UINT uId, LPDWORD pdwVolume); WINMMAPI MMRESULT WINAPI waveOutSetVolume(UINT uId, DWORD dwVolume); #endif #ifdef _WIN32 WINMMAPI MMRESULT WINAPI waveOutGetErrorTextA( IN MMRESULT mmrError, OUT LPSTR pszText, IN UINT cchText); WINMMAPI MMRESULT WINAPI waveOutGetErrorTextW( IN MMRESULT mmrError, OUT LPWSTR pszText, IN UINT cchText); #ifdef UNICODE #define waveOutGetErrorText waveOutGetErrorTextW #else #define waveOutGetErrorText waveOutGetErrorTextA #endif // !UNICODE #else MMRESULT WINAPI waveOutGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText); #endif WINMMAPI MMRESULT WINAPI waveOutOpen( OUT LPHWAVEOUT phwo, IN UINT uDeviceID, IN LPCWAVEFORMATEX pwfx, IN DWORD_PTR dwCallback, IN DWORD_PTR dwInstance, IN DWORD fdwOpen); WINMMAPI MMRESULT WINAPI waveOutClose( IN OUT HWAVEOUT hwo); WINMMAPI MMRESULT WINAPI waveOutPrepareHeader( IN HWAVEOUT hwo, IN OUT LPWAVEHDR pwh, IN UINT cbwh); WINMMAPI MMRESULT WINAPI waveOutUnprepareHeader( IN HWAVEOUT hwo, IN OUT LPWAVEHDR pwh, IN UINT cbwh); WINMMAPI MMRESULT WINAPI waveOutWrite( IN HWAVEOUT hwo, IN OUT LPWAVEHDR pwh, IN UINT cbwh); WINMMAPI MMRESULT WINAPI waveOutPause( IN HWAVEOUT hwo); WINMMAPI MMRESULT WINAPI waveOutRestart( IN HWAVEOUT hwo); WINMMAPI MMRESULT WINAPI waveOutReset( IN HWAVEOUT hwo); WINMMAPI MMRESULT WINAPI waveOutBreakLoop( IN HWAVEOUT hwo); WINMMAPI MMRESULT WINAPI waveOutGetPosition( IN HWAVEOUT hwo, IN OUT LPMMTIME pmmt, IN UINT cbmmt); WINMMAPI MMRESULT WINAPI waveOutGetPitch( IN HWAVEOUT hwo, OUT LPDWORD pdwPitch); WINMMAPI MMRESULT WINAPI waveOutSetPitch( IN HWAVEOUT hwo, IN DWORD dwPitch); WINMMAPI MMRESULT WINAPI waveOutGetPlaybackRate( IN HWAVEOUT hwo, OUT LPDWORD pdwRate); WINMMAPI MMRESULT WINAPI waveOutSetPlaybackRate( IN HWAVEOUT hwo, IN DWORD dwRate); WINMMAPI MMRESULT WINAPI waveOutGetID( IN HWAVEOUT hwo, OUT LPUINT puDeviceID); #if (WINVER >= 0x030a) #ifdef _WIN32 WINMMAPI MMRESULT WINAPI waveOutMessage( IN HWAVEOUT hwo, IN UINT uMsg, IN DWORD_PTR dw1, IN DWORD_PTR dw2); #else DWORD WINAPI waveOutMessage(HWAVEOUT hwo, UINT uMsg, DWORD dw1, DWORD dw2); #endif #endif /* ifdef WINVER >= 0x030a */ WINMMAPI UINT WINAPI waveInGetNumDevs(void); #ifdef _WIN32 WINMMAPI MMRESULT WINAPI waveInGetDevCapsA( IN UINT_PTR uDeviceID, OUT LPWAVEINCAPSA pwic, IN UINT cbwic); WINMMAPI MMRESULT WINAPI waveInGetDevCapsW( IN UINT_PTR uDeviceID, OUT LPWAVEINCAPSW pwic, IN UINT cbwic); #ifdef UNICODE #define waveInGetDevCaps waveInGetDevCapsW #else #define waveInGetDevCaps waveInGetDevCapsA #endif // !UNICODE #else MMRESULT WINAPI waveInGetDevCaps(UINT uDeviceID, LPWAVEINCAPS pwic, UINT cbwic); #endif #ifdef _WIN32 WINMMAPI MMRESULT WINAPI waveInGetErrorTextA(IN MMRESULT mmrError, OUT LPSTR pszText, IN UINT cchText); WINMMAPI MMRESULT WINAPI waveInGetErrorTextW(IN MMRESULT mmrError, OUT LPWSTR pszText, IN UINT cchText); #ifdef UNICODE #define waveInGetErrorText waveInGetErrorTextW #else #define waveInGetErrorText waveInGetErrorTextA #endif // !UNICODE #else MMRESULT WINAPI waveInGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText); #endif WINMMAPI MMRESULT WINAPI waveInOpen( OUT LPHWAVEIN phwi, IN UINT uDeviceID, IN LPCWAVEFORMATEX pwfx, IN DWORD_PTR dwCallback, IN DWORD_PTR dwInstance, IN DWORD fdwOpen); WINMMAPI MMRESULT WINAPI waveInClose( IN OUT HWAVEIN hwi); WINMMAPI MMRESULT WINAPI waveInPrepareHeader( IN HWAVEIN hwi, IN OUT LPWAVEHDR pwh, IN UINT cbwh); WINMMAPI MMRESULT WINAPI waveInUnprepareHeader( IN HWAVEIN hwi, IN OUT LPWAVEHDR pwh, UINT cbwh); WINMMAPI MMRESULT WINAPI waveInAddBuffer( IN HWAVEIN hwi, IN OUT LPWAVEHDR pwh, IN UINT cbwh); WINMMAPI MMRESULT WINAPI waveInStart( IN HWAVEIN hwi); WINMMAPI MMRESULT WINAPI waveInStop( IN HWAVEIN hwi); WINMMAPI MMRESULT WINAPI waveInReset( IN HWAVEIN hwi); WINMMAPI MMRESULT WINAPI waveInGetPosition( IN HWAVEIN hwi, IN OUT LPMMTIME pmmt, IN UINT cbmmt); WINMMAPI MMRESULT WINAPI waveInGetID( IN HWAVEIN hwi, OUT LPUINT puDeviceID); #if (WINVER >= 0x030a) #ifdef _WIN32 WINMMAPI MMRESULT WINAPI waveInMessage( IN HWAVEIN hwi, IN UINT uMsg, IN DWORD_PTR dw1, IN DWORD_PTR dw2); #else DWORD WINAPI waveInMessage(HWAVEIN hwi, UINT uMsg, DWORD dw1, DWORD dw2); #endif #endif /* ifdef WINVER >= 0x030a */ #endif /* ifndef MMNOWAVE */ #ifndef MMNOMIDI /**************************************************************************** MIDI audio support ****************************************************************************/ /* MIDI error return values */ #define MIDIERR_UNPREPARED (MIDIERR_BASE + 0) /* header not prepared */ #define MIDIERR_STILLPLAYING (MIDIERR_BASE + 1) /* still something playing */ #define MIDIERR_NOMAP (MIDIERR_BASE + 2) /* no configured instruments */ #define MIDIERR_NOTREADY (MIDIERR_BASE + 3) /* hardware is still busy */ #define MIDIERR_NODEVICE (MIDIERR_BASE + 4) /* port no longer connected */ #define MIDIERR_INVALIDSETUP (MIDIERR_BASE + 5) /* invalid MIF */ #define MIDIERR_BADOPENMODE (MIDIERR_BASE + 6) /* operation unsupported w/ open mode */ #define MIDIERR_DONT_CONTINUE (MIDIERR_BASE + 7) /* thru device 'eating' a message */ #define MIDIERR_LASTERROR (MIDIERR_BASE + 7) /* last error in range */ /* MIDI audio data types */ DECLARE_HANDLE(HMIDI); DECLARE_HANDLE(HMIDIIN); DECLARE_HANDLE(HMIDIOUT); DECLARE_HANDLE(HMIDISTRM); typedef HMIDI FAR *LPHMIDI; typedef HMIDIIN FAR *LPHMIDIIN; typedef HMIDIOUT FAR *LPHMIDIOUT; typedef HMIDISTRM FAR *LPHMIDISTRM; typedef DRVCALLBACK MIDICALLBACK; typedef MIDICALLBACK FAR *LPMIDICALLBACK; #define MIDIPATCHSIZE 128 typedef WORD PATCHARRAY[MIDIPATCHSIZE]; typedef WORD FAR *LPPATCHARRAY; typedef WORD KEYARRAY[MIDIPATCHSIZE]; typedef WORD FAR *LPKEYARRAY; /* MIDI callback messages */ #define MIM_OPEN MM_MIM_OPEN #define MIM_CLOSE MM_MIM_CLOSE #define MIM_DATA MM_MIM_DATA #define MIM_LONGDATA MM_MIM_LONGDATA #define MIM_ERROR MM_MIM_ERROR #define MIM_LONGERROR MM_MIM_LONGERROR #define MOM_OPEN MM_MOM_OPEN #define MOM_CLOSE MM_MOM_CLOSE #define MOM_DONE MM_MOM_DONE #if(WINVER >= 0x0400) #define MIM_MOREDATA MM_MIM_MOREDATA #define MOM_POSITIONCB MM_MOM_POSITIONCB #endif /* WINVER >= 0x0400 */ /* device ID for MIDI mapper */ #define MIDIMAPPER ((UINT)-1) #define MIDI_MAPPER ((UINT)-1) #if(WINVER >= 0x0400) /* flags for dwFlags parm of midiInOpen() */ #define MIDI_IO_STATUS 0x00000020L #endif /* WINVER >= 0x0400 */ /* flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches() */ #define MIDI_CACHE_ALL 1 #define MIDI_CACHE_BESTFIT 2 #define MIDI_CACHE_QUERY 3 #define MIDI_UNCACHE 4 /* MIDI output device capabilities structure */ #ifdef _WIN32 typedef struct tagMIDIOUTCAPSA { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wVoices; /* # of voices (internal synth only) */ WORD wNotes; /* max # of notes (internal synth only) */ WORD wChannelMask; /* channels used (internal synth only) */ DWORD dwSupport; /* functionality supported by driver */ } MIDIOUTCAPSA, *PMIDIOUTCAPSA, *NPMIDIOUTCAPSA, *LPMIDIOUTCAPSA; typedef struct tagMIDIOUTCAPSW { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wVoices; /* # of voices (internal synth only) */ WORD wNotes; /* max # of notes (internal synth only) */ WORD wChannelMask; /* channels used (internal synth only) */ DWORD dwSupport; /* functionality supported by driver */ } MIDIOUTCAPSW, *PMIDIOUTCAPSW, *NPMIDIOUTCAPSW, *LPMIDIOUTCAPSW; #ifdef UNICODE typedef MIDIOUTCAPSW MIDIOUTCAPS; typedef PMIDIOUTCAPSW PMIDIOUTCAPS; typedef NPMIDIOUTCAPSW NPMIDIOUTCAPS; typedef LPMIDIOUTCAPSW LPMIDIOUTCAPS; #else typedef MIDIOUTCAPSA MIDIOUTCAPS; typedef PMIDIOUTCAPSA PMIDIOUTCAPS; typedef NPMIDIOUTCAPSA NPMIDIOUTCAPS; typedef LPMIDIOUTCAPSA LPMIDIOUTCAPS; #endif // UNICODE typedef struct tagMIDIOUTCAPS2A { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wVoices; /* # of voices (internal synth only) */ WORD wNotes; /* max # of notes (internal synth only) */ WORD wChannelMask; /* channels used (internal synth only) */ DWORD dwSupport; /* functionality supported by driver */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } MIDIOUTCAPS2A, *PMIDIOUTCAPS2A, *NPMIDIOUTCAPS2A, *LPMIDIOUTCAPS2A; typedef struct tagMIDIOUTCAPS2W { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wVoices; /* # of voices (internal synth only) */ WORD wNotes; /* max # of notes (internal synth only) */ WORD wChannelMask; /* channels used (internal synth only) */ DWORD dwSupport; /* functionality supported by driver */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } MIDIOUTCAPS2W, *PMIDIOUTCAPS2W, *NPMIDIOUTCAPS2W, *LPMIDIOUTCAPS2W; #ifdef UNICODE typedef MIDIOUTCAPS2W MIDIOUTCAPS2; typedef PMIDIOUTCAPS2W PMIDIOUTCAPS2; typedef NPMIDIOUTCAPS2W NPMIDIOUTCAPS2; typedef LPMIDIOUTCAPS2W LPMIDIOUTCAPS2; #else typedef MIDIOUTCAPS2A MIDIOUTCAPS2; typedef PMIDIOUTCAPS2A PMIDIOUTCAPS2; typedef NPMIDIOUTCAPS2A NPMIDIOUTCAPS2; typedef LPMIDIOUTCAPS2A LPMIDIOUTCAPS2; #endif // UNICODE #else typedef struct midioutcaps_tag { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ VERSION vDriverVersion; /* version of the driver */ char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wVoices; /* # of voices (internal synth only) */ WORD wNotes; /* max # of notes (internal synth only) */ WORD wChannelMask; /* channels used (internal synth only) */ DWORD dwSupport; /* functionality supported by driver */ } MIDIOUTCAPS, *PMIDIOUTCAPS, NEAR *NPMIDIOUTCAPS, FAR *LPMIDIOUTCAPS; #endif /* flags for wTechnology field of MIDIOUTCAPS structure */ #define MOD_MIDIPORT 1 /* output port */ #define MOD_SYNTH 2 /* generic internal synth */ #define MOD_SQSYNTH 3 /* square wave internal synth */ #define MOD_FMSYNTH 4 /* FM internal synth */ #define MOD_MAPPER 5 /* MIDI mapper */ #define MOD_WAVETABLE 6 /* hardware wavetable synth */ #define MOD_SWSYNTH 7 /* software synth */ /* flags for dwSupport field of MIDIOUTCAPS structure */ #define MIDICAPS_VOLUME 0x0001 /* supports volume control */ #define MIDICAPS_LRVOLUME 0x0002 /* separate left-right volume control */ #define MIDICAPS_CACHE 0x0004 #if(WINVER >= 0x0400) #define MIDICAPS_STREAM 0x0008 /* driver supports midiStreamOut directly */ #endif /* WINVER >= 0x0400 */ /* MIDI input device capabilities structure */ #ifdef _WIN32 typedef struct tagMIDIINCAPSA { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ #if (WINVER >= 0x0400) DWORD dwSupport; /* functionality supported by driver */ #endif } MIDIINCAPSA, *PMIDIINCAPSA, *NPMIDIINCAPSA, *LPMIDIINCAPSA; typedef struct tagMIDIINCAPSW { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ #if (WINVER >= 0x0400) DWORD dwSupport; /* functionality supported by driver */ #endif } MIDIINCAPSW, *PMIDIINCAPSW, *NPMIDIINCAPSW, *LPMIDIINCAPSW; #ifdef UNICODE typedef MIDIINCAPSW MIDIINCAPS; typedef PMIDIINCAPSW PMIDIINCAPS; typedef NPMIDIINCAPSW NPMIDIINCAPS; typedef LPMIDIINCAPSW LPMIDIINCAPS; #else typedef MIDIINCAPSA MIDIINCAPS; typedef PMIDIINCAPSA PMIDIINCAPS; typedef NPMIDIINCAPSA NPMIDIINCAPS; typedef LPMIDIINCAPSA LPMIDIINCAPS; #endif // UNICODE typedef struct tagMIDIINCAPS2A { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ #if (WINVER >= 0x0400) DWORD dwSupport; /* functionality supported by driver */ #endif GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } MIDIINCAPS2A, *PMIDIINCAPS2A, *NPMIDIINCAPS2A, *LPMIDIINCAPS2A; typedef struct tagMIDIINCAPS2W { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ #if (WINVER >= 0x0400) DWORD dwSupport; /* functionality supported by driver */ #endif GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } MIDIINCAPS2W, *PMIDIINCAPS2W, *NPMIDIINCAPS2W, *LPMIDIINCAPS2W; #ifdef UNICODE typedef MIDIINCAPS2W MIDIINCAPS2; typedef PMIDIINCAPS2W PMIDIINCAPS2; typedef NPMIDIINCAPS2W NPMIDIINCAPS2; typedef LPMIDIINCAPS2W LPMIDIINCAPS2; #else typedef MIDIINCAPS2A MIDIINCAPS2; typedef PMIDIINCAPS2A PMIDIINCAPS2; typedef NPMIDIINCAPS2A NPMIDIINCAPS2; typedef LPMIDIINCAPS2A LPMIDIINCAPS2; #endif // UNICODE #else typedef struct midiincaps_tag { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ VERSION vDriverVersion; /* version of the driver */ char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ #if (WINVER >= 0x0400) DWORD dwSupport; /* functionality supported by driver */ #endif } MIDIINCAPS, *PMIDIINCAPS, NEAR *NPMIDIINCAPS, FAR *LPMIDIINCAPS; #endif /* MIDI data block header */ typedef struct midihdr_tag { LPSTR lpData; /* pointer to locked data block */ DWORD dwBufferLength; /* length of data in data block */ DWORD dwBytesRecorded; /* used for input only */ DWORD_PTR dwUser; /* for client's use */ DWORD dwFlags; /* assorted flags (see defines) */ struct midihdr_tag far *lpNext; /* reserved for driver */ DWORD_PTR reserved; /* reserved for driver */ #if (WINVER >= 0x0400) DWORD dwOffset; /* Callback offset into buffer */ DWORD_PTR dwReserved[8]; /* Reserved for MMSYSTEM */ #endif } MIDIHDR, *PMIDIHDR, NEAR *NPMIDIHDR, FAR *LPMIDIHDR; #if(WINVER >= 0x0400) typedef struct midievent_tag { DWORD dwDeltaTime; /* Ticks since last event */ DWORD dwStreamID; /* Reserved; must be zero */ DWORD dwEvent; /* Event type and parameters */ DWORD dwParms[1]; /* Parameters if this is a long event */ } MIDIEVENT; typedef struct midistrmbuffver_tag { DWORD dwVersion; /* Stream buffer format version */ DWORD dwMid; /* Manufacturer ID as defined in MMREG.H */ DWORD dwOEMVersion; /* Manufacturer version for custom ext */ } MIDISTRMBUFFVER; #endif /* WINVER >= 0x0400 */ /* flags for dwFlags field of MIDIHDR structure */ #define MHDR_DONE 0x00000001 /* done bit */ #define MHDR_PREPARED 0x00000002 /* set if header prepared */ #define MHDR_INQUEUE 0x00000004 /* reserved for driver */ #define MHDR_ISSTRM 0x00000008 /* Buffer is stream buffer */ #if(WINVER >= 0x0400) /* */ /* Type codes which go in the high byte of the event DWORD of a stream buffer */ /* */ /* Type codes 00-7F contain parameters within the low 24 bits */ /* Type codes 80-FF contain a length of their parameter in the low 24 */ /* bits, followed by their parameter data in the buffer. The event */ /* DWORD contains the exact byte length; the parm data itself must be */ /* padded to be an even multiple of 4 bytes long. */ /* */ #define MEVT_F_SHORT 0x00000000L #define MEVT_F_LONG 0x80000000L #define MEVT_F_CALLBACK 0x40000000L #define MEVT_EVENTTYPE(x) ((BYTE)(((x)>>24)&0xFF)) #define MEVT_EVENTPARM(x) ((DWORD)((x)&0x00FFFFFFL)) #define MEVT_SHORTMSG ((BYTE)0x00) /* parm = shortmsg for midiOutShortMsg */ #define MEVT_TEMPO ((BYTE)0x01) /* parm = new tempo in microsec/qn */ #define MEVT_NOP ((BYTE)0x02) /* parm = unused; does nothing */ /* 0x04-0x7F reserved */ #define MEVT_LONGMSG ((BYTE)0x80) /* parm = bytes to send verbatim */ #define MEVT_COMMENT ((BYTE)0x82) /* parm = comment data */ #define MEVT_VERSION ((BYTE)0x84) /* parm = MIDISTRMBUFFVER struct */ /* 0x81-0xFF reserved */ #define MIDISTRM_ERROR (-2) /* */ /* Structures and defines for midiStreamProperty */ /* */ #define MIDIPROP_SET 0x80000000L #define MIDIPROP_GET 0x40000000L /* These are intentionally both non-zero so the app cannot accidentally */ /* leave the operation off and happen to appear to work due to default */ /* action. */ #define MIDIPROP_TIMEDIV 0x00000001L #define MIDIPROP_TEMPO 0x00000002L typedef struct midiproptimediv_tag { DWORD cbStruct; DWORD dwTimeDiv; } MIDIPROPTIMEDIV, FAR *LPMIDIPROPTIMEDIV; typedef struct midiproptempo_tag { DWORD cbStruct; DWORD dwTempo; } MIDIPROPTEMPO, FAR *LPMIDIPROPTEMPO; #endif /* WINVER >= 0x0400 */ /* MIDI function prototypes */ WINMMAPI UINT WINAPI midiOutGetNumDevs(void); #if(WINVER >= 0x0400) WINMMAPI MMRESULT WINAPI midiStreamOpen( OUT LPHMIDISTRM phms, IN LPUINT puDeviceID, IN DWORD cMidi, IN DWORD_PTR dwCallback, IN DWORD_PTR dwInstance, IN DWORD fdwOpen); WINMMAPI MMRESULT WINAPI midiStreamClose( IN HMIDISTRM hms); WINMMAPI MMRESULT WINAPI midiStreamProperty( IN HMIDISTRM hms, OUT LPBYTE lppropdata, IN DWORD dwProperty); WINMMAPI MMRESULT WINAPI midiStreamPosition( IN HMIDISTRM hms, OUT LPMMTIME lpmmt, IN UINT cbmmt); WINMMAPI MMRESULT WINAPI midiStreamOut( IN HMIDISTRM hms, IN LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiStreamPause( IN HMIDISTRM hms); WINMMAPI MMRESULT WINAPI midiStreamRestart( IN HMIDISTRM hms); WINMMAPI MMRESULT WINAPI midiStreamStop( IN HMIDISTRM hms); #ifdef _WIN32 WINMMAPI MMRESULT WINAPI midiConnect( IN HMIDI hmi, IN HMIDIOUT hmo, IN LPVOID pReserved); WINMMAPI MMRESULT WINAPI midiDisconnect( IN HMIDI hmi, IN HMIDIOUT hmo, IN LPVOID pReserved); #endif #endif /* WINVER >= 0x0400 */ #ifdef _WIN32 WINMMAPI MMRESULT WINAPI midiOutGetDevCapsA( IN UINT_PTR uDeviceID, OUT LPMIDIOUTCAPSA pmoc, IN UINT cbmoc); WINMMAPI MMRESULT WINAPI midiOutGetDevCapsW( IN UINT_PTR uDeviceID, OUT LPMIDIOUTCAPSW pmoc, IN UINT cbmoc); #ifdef UNICODE #define midiOutGetDevCaps midiOutGetDevCapsW #else #define midiOutGetDevCaps midiOutGetDevCapsA #endif // !UNICODE #else MMRESULT WINAPI midiOutGetDevCaps(UINT uDeviceID, LPMIDIOUTCAPS pmoc, UINT cbmoc); #endif #if (WINVER >= 0x0400) WINMMAPI MMRESULT WINAPI midiOutGetVolume( IN HMIDIOUT hmo, OUT LPDWORD pdwVolume); WINMMAPI MMRESULT WINAPI midiOutSetVolume( IN HMIDIOUT hmo, IN DWORD dwVolume); #else WINMMAPI MMRESULT WINAPI midiOutGetVolume(UINT uId, LPDWORD pdwVolume); WINMMAPI MMRESULT WINAPI midiOutSetVolume(UINT uId, DWORD dwVolume); #endif #ifdef _WIN32 WINMMAPI MMRESULT WINAPI midiOutGetErrorTextA( IN MMRESULT mmrError, OUT LPSTR pszText, IN UINT cchText); WINMMAPI MMRESULT WINAPI midiOutGetErrorTextW( IN MMRESULT mmrError, OUT LPWSTR pszText, IN UINT cchText); #ifdef UNICODE #define midiOutGetErrorText midiOutGetErrorTextW #else #define midiOutGetErrorText midiOutGetErrorTextA #endif // !UNICODE #else WINMMAPI MMRESULT WINAPI midiOutGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText); #endif WINMMAPI MMRESULT WINAPI midiOutOpen( OUT LPHMIDIOUT phmo, IN UINT uDeviceID, IN DWORD_PTR dwCallback, IN DWORD_PTR dwInstance, IN DWORD fdwOpen); WINMMAPI MMRESULT WINAPI midiOutClose( IN OUT HMIDIOUT hmo); WINMMAPI MMRESULT WINAPI midiOutPrepareHeader( IN HMIDIOUT hmo, IN OUT LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiOutUnprepareHeader(IN HMIDIOUT hmo, IN OUT LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiOutShortMsg( IN HMIDIOUT hmo, IN DWORD dwMsg); WINMMAPI MMRESULT WINAPI midiOutLongMsg(IN HMIDIOUT hmo, IN LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiOutReset( IN HMIDIOUT hmo); WINMMAPI MMRESULT WINAPI midiOutCachePatches( IN HMIDIOUT hmo, IN UINT uBank, OUT LPWORD pwpa, IN UINT fuCache); WINMMAPI MMRESULT WINAPI midiOutCacheDrumPatches( IN HMIDIOUT hmo, IN UINT uPatch, OUT LPWORD pwkya, IN UINT fuCache); WINMMAPI MMRESULT WINAPI midiOutGetID( IN HMIDIOUT hmo, OUT LPUINT puDeviceID); #if (WINVER >= 0x030a) #ifdef _WIN32 WINMMAPI MMRESULT WINAPI midiOutMessage( IN HMIDIOUT hmo, IN UINT uMsg, IN DWORD_PTR dw1, IN DWORD_PTR dw2); #else DWORD WINAPI midiOutMessage(HMIDIOUT hmo, UINT uMsg, DWORD dw1, DWORD dw2); #endif #endif /* ifdef WINVER >= 0x030a */ WINMMAPI UINT WINAPI midiInGetNumDevs(void); #ifdef _WIN32 WINMMAPI MMRESULT WINAPI midiInGetDevCapsA( IN UINT_PTR uDeviceID, OUT LPMIDIINCAPSA pmic, IN UINT cbmic); WINMMAPI MMRESULT WINAPI midiInGetDevCapsW( IN UINT_PTR uDeviceID, OUT LPMIDIINCAPSW pmic, IN UINT cbmic); #ifdef UNICODE #define midiInGetDevCaps midiInGetDevCapsW #else #define midiInGetDevCaps midiInGetDevCapsA #endif // !UNICODE WINMMAPI MMRESULT WINAPI midiInGetErrorTextA( IN MMRESULT mmrError, OUT LPSTR pszText, IN UINT cchText); WINMMAPI MMRESULT WINAPI midiInGetErrorTextW( IN MMRESULT mmrError, OUT LPWSTR pszText, IN UINT cchText); #ifdef UNICODE #define midiInGetErrorText midiInGetErrorTextW #else #define midiInGetErrorText midiInGetErrorTextA #endif // !UNICODE #else MMRESULT WINAPI midiInGetDevCaps(UINT uDeviceID, LPMIDIINCAPS pmic, UINT cbmic); WINMMAPI MMRESULT WINAPI midiInGetErrorText(MMRESULT mmrError, LPSTR pszText, UINT cchText); #endif WINMMAPI MMRESULT WINAPI midiInOpen( OUT LPHMIDIIN phmi, IN UINT uDeviceID, IN DWORD_PTR dwCallback, IN DWORD_PTR dwInstance, IN DWORD fdwOpen); WINMMAPI MMRESULT WINAPI midiInClose( IN OUT HMIDIIN hmi); WINMMAPI MMRESULT WINAPI midiInPrepareHeader( IN HMIDIIN hmi, IN OUT LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiInUnprepareHeader( IN HMIDIIN hmi, IN OUT LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiInAddBuffer( IN HMIDIIN hmi, IN LPMIDIHDR pmh, IN UINT cbmh); WINMMAPI MMRESULT WINAPI midiInStart( IN HMIDIIN hmi); WINMMAPI MMRESULT WINAPI midiInStop( IN HMIDIIN hmi); WINMMAPI MMRESULT WINAPI midiInReset( IN HMIDIIN hmi); WINMMAPI MMRESULT WINAPI midiInGetID( IN HMIDIIN hmi, OUT LPUINT puDeviceID); #if (WINVER >= 0x030a) #ifdef _WIN32 WINMMAPI MMRESULT WINAPI midiInMessage( IN HMIDIIN hmi, IN UINT uMsg, IN DWORD_PTR dw1, IN DWORD_PTR dw2); #else DWORD WINAPI midiInMessage(HMIDIIN hmi, UINT uMsg, DWORD dw1, DWORD dw2); #endif #endif /* ifdef WINVER >= 0x030a */ #endif /* ifndef MMNOMIDI */ #ifndef MMNOAUX /**************************************************************************** Auxiliary audio support ****************************************************************************/ /* device ID for aux device mapper */ #define AUX_MAPPER ((UINT)-1) /* Auxiliary audio device capabilities structure */ #ifdef _WIN32 typedef struct tagAUXCAPSA { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wReserved1; /* padding */ DWORD dwSupport; /* functionality supported by driver */ } AUXCAPSA, *PAUXCAPSA, *NPAUXCAPSA, *LPAUXCAPSA; typedef struct tagAUXCAPSW { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wReserved1; /* padding */ DWORD dwSupport; /* functionality supported by driver */ } AUXCAPSW, *PAUXCAPSW, *NPAUXCAPSW, *LPAUXCAPSW; #ifdef UNICODE typedef AUXCAPSW AUXCAPS; typedef PAUXCAPSW PAUXCAPS; typedef NPAUXCAPSW NPAUXCAPS; typedef LPAUXCAPSW LPAUXCAPS; #else typedef AUXCAPSA AUXCAPS; typedef PAUXCAPSA PAUXCAPS; typedef NPAUXCAPSA NPAUXCAPS; typedef LPAUXCAPSA LPAUXCAPS; #endif // UNICODE typedef struct tagAUXCAPS2A { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wReserved1; /* padding */ DWORD dwSupport; /* functionality supported by driver */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } AUXCAPS2A, *PAUXCAPS2A, *NPAUXCAPS2A, *LPAUXCAPS2A; typedef struct tagAUXCAPS2W { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ WORD wReserved1; /* padding */ DWORD dwSupport; /* functionality supported by driver */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } AUXCAPS2W, *PAUXCAPS2W, *NPAUXCAPS2W, *LPAUXCAPS2W; #ifdef UNICODE typedef AUXCAPS2W AUXCAPS2; typedef PAUXCAPS2W PAUXCAPS2; typedef NPAUXCAPS2W NPAUXCAPS2; typedef LPAUXCAPS2W LPAUXCAPS2; #else typedef AUXCAPS2A AUXCAPS2; typedef PAUXCAPS2A PAUXCAPS2; typedef NPAUXCAPS2A NPAUXCAPS2; typedef LPAUXCAPS2A LPAUXCAPS2; #endif // UNICODE #else typedef struct auxcaps_tag { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ VERSION vDriverVersion; /* version of the driver */ char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ WORD wTechnology; /* type of device */ DWORD dwSupport; /* functionality supported by driver */ } AUXCAPS, *PAUXCAPS, NEAR *NPAUXCAPS, FAR *LPAUXCAPS; #endif /* flags for wTechnology field in AUXCAPS structure */ #define AUXCAPS_CDAUDIO 1 /* audio from internal CD-ROM drive */ #define AUXCAPS_AUXIN 2 /* audio from auxiliary input jacks */ /* flags for dwSupport field in AUXCAPS structure */ #define AUXCAPS_VOLUME 0x0001 /* supports volume control */ #define AUXCAPS_LRVOLUME 0x0002 /* separate left-right volume control */ /* auxiliary audio function prototypes */ WINMMAPI UINT WINAPI auxGetNumDevs(void); #ifdef _WIN32 WINMMAPI MMRESULT WINAPI auxGetDevCapsA( IN UINT_PTR uDeviceID, OUT LPAUXCAPSA pac, IN UINT cbac); WINMMAPI MMRESULT WINAPI auxGetDevCapsW( IN UINT_PTR uDeviceID, OUT LPAUXCAPSW pac, IN UINT cbac); #ifdef UNICODE #define auxGetDevCaps auxGetDevCapsW #else #define auxGetDevCaps auxGetDevCapsA #endif // !UNICODE #else MMRESULT WINAPI auxGetDevCaps(UINT uDeviceID, LPAUXCAPS pac, UINT cbac); #endif WINMMAPI MMRESULT WINAPI auxSetVolume( IN UINT uDeviceID, IN DWORD dwVolume); WINMMAPI MMRESULT WINAPI auxGetVolume( IN UINT uDeviceID, OUT LPDWORD pdwVolume); #if (WINVER >= 0x030a) #ifdef _WIN32 WINMMAPI MMRESULT WINAPI auxOutMessage( IN UINT uDeviceID, IN UINT uMsg, IN DWORD_PTR dw1, IN DWORD_PTR dw2); #else DWORD WINAPI auxOutMessage(UINT uDeviceID, UINT uMsg, DWORD dw1, DWORD dw2); #endif #endif /* ifdef WINVER >= 0x030a */ #endif /* ifndef MMNOAUX */ #ifndef MMNOMIXER /**************************************************************************** Mixer Support ****************************************************************************/ DECLARE_HANDLE(HMIXEROBJ); typedef HMIXEROBJ FAR *LPHMIXEROBJ; DECLARE_HANDLE(HMIXER); typedef HMIXER FAR *LPHMIXER; #define MIXER_SHORT_NAME_CHARS 16 #define MIXER_LONG_NAME_CHARS 64 /* */ /* MMRESULT error return values specific to the mixer API */ /* */ /* */ #define MIXERR_INVALLINE (MIXERR_BASE + 0) #define MIXERR_INVALCONTROL (MIXERR_BASE + 1) #define MIXERR_INVALVALUE (MIXERR_BASE + 2) #define MIXERR_LASTERROR (MIXERR_BASE + 2) #define MIXER_OBJECTF_HANDLE 0x80000000L #define MIXER_OBJECTF_MIXER 0x00000000L #define MIXER_OBJECTF_HMIXER (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIXER) #define MIXER_OBJECTF_WAVEOUT 0x10000000L #define MIXER_OBJECTF_HWAVEOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEOUT) #define MIXER_OBJECTF_WAVEIN 0x20000000L #define MIXER_OBJECTF_HWAVEIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_WAVEIN) #define MIXER_OBJECTF_MIDIOUT 0x30000000L #define MIXER_OBJECTF_HMIDIOUT (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIOUT) #define MIXER_OBJECTF_MIDIIN 0x40000000L #define MIXER_OBJECTF_HMIDIIN (MIXER_OBJECTF_HANDLE|MIXER_OBJECTF_MIDIIN) #define MIXER_OBJECTF_AUX 0x50000000L WINMMAPI UINT WINAPI mixerGetNumDevs(void); #ifdef _WIN32 typedef struct tagMIXERCAPSA { WORD wMid; /* manufacturer id */ WORD wPid; /* product id */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name */ DWORD fdwSupport; /* misc. support bits */ DWORD cDestinations; /* count of destinations */ } MIXERCAPSA, *PMIXERCAPSA, *LPMIXERCAPSA; typedef struct tagMIXERCAPSW { WORD wMid; /* manufacturer id */ WORD wPid; /* product id */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name */ DWORD fdwSupport; /* misc. support bits */ DWORD cDestinations; /* count of destinations */ } MIXERCAPSW, *PMIXERCAPSW, *LPMIXERCAPSW; #ifdef UNICODE typedef MIXERCAPSW MIXERCAPS; typedef PMIXERCAPSW PMIXERCAPS; typedef LPMIXERCAPSW LPMIXERCAPS; #else typedef MIXERCAPSA MIXERCAPS; typedef PMIXERCAPSA PMIXERCAPS; typedef LPMIXERCAPSA LPMIXERCAPS; #endif // UNICODE typedef struct tagMIXERCAPS2A { WORD wMid; /* manufacturer id */ WORD wPid; /* product id */ MMVERSION vDriverVersion; /* version of the driver */ CHAR szPname[MAXPNAMELEN]; /* product name */ DWORD fdwSupport; /* misc. support bits */ DWORD cDestinations; /* count of destinations */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } MIXERCAPS2A, *PMIXERCAPS2A, *LPMIXERCAPS2A; typedef struct tagMIXERCAPS2W { WORD wMid; /* manufacturer id */ WORD wPid; /* product id */ MMVERSION vDriverVersion; /* version of the driver */ WCHAR szPname[MAXPNAMELEN]; /* product name */ DWORD fdwSupport; /* misc. support bits */ DWORD cDestinations; /* count of destinations */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } MIXERCAPS2W, *PMIXERCAPS2W, *LPMIXERCAPS2W; #ifdef UNICODE typedef MIXERCAPS2W MIXERCAPS2; typedef PMIXERCAPS2W PMIXERCAPS2; typedef LPMIXERCAPS2W LPMIXERCAPS2; #else typedef MIXERCAPS2A MIXERCAPS2; typedef PMIXERCAPS2A PMIXERCAPS2; typedef LPMIXERCAPS2A LPMIXERCAPS2; #endif // UNICODE #else typedef struct tMIXERCAPS { WORD wMid; /* manufacturer id */ WORD wPid; /* product id */ VERSION vDriverVersion; /* version of the driver */ char szPname[MAXPNAMELEN]; /* product name */ DWORD fdwSupport; /* misc. support bits */ DWORD cDestinations; /* count of destinations */ } MIXERCAPS, *PMIXERCAPS, FAR *LPMIXERCAPS; #endif #ifdef _WIN32 WINMMAPI MMRESULT WINAPI mixerGetDevCapsA( IN UINT_PTR uMxId, OUT LPMIXERCAPSA pmxcaps, IN UINT cbmxcaps); WINMMAPI MMRESULT WINAPI mixerGetDevCapsW( IN UINT_PTR uMxId, OUT LPMIXERCAPSW pmxcaps, IN UINT cbmxcaps); #ifdef UNICODE #define mixerGetDevCaps mixerGetDevCapsW #else #define mixerGetDevCaps mixerGetDevCapsA #endif // !UNICODE #else MMRESULT WINAPI mixerGetDevCaps(UINT uMxId, LPMIXERCAPS pmxcaps, UINT cbmxcaps); #endif WINMMAPI MMRESULT WINAPI mixerOpen( OUT LPHMIXER phmx, IN UINT uMxId, IN DWORD_PTR dwCallback, IN DWORD_PTR dwInstance, IN DWORD fdwOpen); WINMMAPI MMRESULT WINAPI mixerClose( IN OUT HMIXER hmx); WINMMAPI DWORD WINAPI mixerMessage( IN HMIXER hmx, IN UINT uMsg, IN DWORD_PTR dwParam1, IN DWORD_PTR dwParam2); #ifdef _WIN32 typedef struct tagMIXERLINEA { DWORD cbStruct; /* size of MIXERLINE structure */ DWORD dwDestination; /* zero based destination index */ DWORD dwSource; /* zero based source index (if source) */ DWORD dwLineID; /* unique line id for mixer device */ DWORD fdwLine; /* state/information about line */ DWORD_PTR dwUser; /* driver specific information */ DWORD dwComponentType; /* component type line connects to */ DWORD cChannels; /* number of channels line supports */ DWORD cConnections; /* number of connections [possible] */ DWORD cControls; /* number of controls at this line */ CHAR szShortName[MIXER_SHORT_NAME_CHARS]; CHAR szName[MIXER_LONG_NAME_CHARS]; struct { DWORD dwType; /* MIXERLINE_TARGETTYPE_xxxx */ DWORD dwDeviceID; /* target device ID of device type */ WORD wMid; /* of target device */ WORD wPid; /* " */ MMVERSION vDriverVersion; /* " */ CHAR szPname[MAXPNAMELEN]; /* " */ } Target; } MIXERLINEA, *PMIXERLINEA, *LPMIXERLINEA; typedef struct tagMIXERLINEW { DWORD cbStruct; /* size of MIXERLINE structure */ DWORD dwDestination; /* zero based destination index */ DWORD dwSource; /* zero based source index (if source) */ DWORD dwLineID; /* unique line id for mixer device */ DWORD fdwLine; /* state/information about line */ DWORD_PTR dwUser; /* driver specific information */ DWORD dwComponentType; /* component type line connects to */ DWORD cChannels; /* number of channels line supports */ DWORD cConnections; /* number of connections [possible] */ DWORD cControls; /* number of controls at this line */ WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; WCHAR szName[MIXER_LONG_NAME_CHARS]; struct { DWORD dwType; /* MIXERLINE_TARGETTYPE_xxxx */ DWORD dwDeviceID; /* target device ID of device type */ WORD wMid; /* of target device */ WORD wPid; /* " */ MMVERSION vDriverVersion; /* " */ WCHAR szPname[MAXPNAMELEN]; /* " */ } Target; } MIXERLINEW, *PMIXERLINEW, *LPMIXERLINEW; #ifdef UNICODE typedef MIXERLINEW MIXERLINE; typedef PMIXERLINEW PMIXERLINE; typedef LPMIXERLINEW LPMIXERLINE; #else typedef MIXERLINEA MIXERLINE; typedef PMIXERLINEA PMIXERLINE; typedef LPMIXERLINEA LPMIXERLINE; #endif // UNICODE #else typedef struct tMIXERLINE { DWORD cbStruct; /* size of MIXERLINE structure */ DWORD dwDestination; /* zero based destination index */ DWORD dwSource; /* zero based source index (if source) */ DWORD dwLineID; /* unique line id for mixer device */ DWORD fdwLine; /* state/information about line */ DWORD dwUser; /* driver specific information */ DWORD dwComponentType; /* component type line connects to */ DWORD cChannels; /* number of channels line supports */ DWORD cConnections; /* number of connections [possible] */ DWORD cControls; /* number of controls at this line */ char szShortName[MIXER_SHORT_NAME_CHARS]; char szName[MIXER_LONG_NAME_CHARS]; struct { DWORD dwType; /* MIXERLINE_TARGETTYPE_xxxx */ DWORD dwDeviceID; /* target device ID of device type */ WORD wMid; /* of target device */ WORD wPid; /* " */ VERSION vDriverVersion; /* " */ char szPname[MAXPNAMELEN]; /* " */ } Target; } MIXERLINE, *PMIXERLINE, FAR *LPMIXERLINE; #endif /* */ /* MIXERLINE.fdwLine */ /* */ /* */ #define MIXERLINE_LINEF_ACTIVE 0x00000001L #define MIXERLINE_LINEF_DISCONNECTED 0x00008000L #define MIXERLINE_LINEF_SOURCE 0x80000000L /* */ /* MIXERLINE.dwComponentType */ /* */ /* component types for destinations and sources */ /* */ /* */ #define MIXERLINE_COMPONENTTYPE_DST_FIRST 0x00000000L #define MIXERLINE_COMPONENTTYPE_DST_UNDEFINED (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0) #define MIXERLINE_COMPONENTTYPE_DST_DIGITAL (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1) #define MIXERLINE_COMPONENTTYPE_DST_LINE (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2) #define MIXERLINE_COMPONENTTYPE_DST_MONITOR (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3) #define MIXERLINE_COMPONENTTYPE_DST_SPEAKERS (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4) #define MIXERLINE_COMPONENTTYPE_DST_HEADPHONES (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5) #define MIXERLINE_COMPONENTTYPE_DST_TELEPHONE (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6) #define MIXERLINE_COMPONENTTYPE_DST_WAVEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7) #define MIXERLINE_COMPONENTTYPE_DST_VOICEIN (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) #define MIXERLINE_COMPONENTTYPE_DST_LAST (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8) #define MIXERLINE_COMPONENTTYPE_SRC_FIRST 0x00001000L #define MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0) #define MIXERLINE_COMPONENTTYPE_SRC_DIGITAL (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1) #define MIXERLINE_COMPONENTTYPE_SRC_LINE (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2) #define MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3) #define MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4) #define MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5) #define MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6) #define MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7) #define MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8) #define MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9) #define MIXERLINE_COMPONENTTYPE_SRC_ANALOG (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) #define MIXERLINE_COMPONENTTYPE_SRC_LAST (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10) /* */ /* MIXERLINE.Target.dwType */ /* */ /* */ #define MIXERLINE_TARGETTYPE_UNDEFINED 0 #define MIXERLINE_TARGETTYPE_WAVEOUT 1 #define MIXERLINE_TARGETTYPE_WAVEIN 2 #define MIXERLINE_TARGETTYPE_MIDIOUT 3 #define MIXERLINE_TARGETTYPE_MIDIIN 4 #define MIXERLINE_TARGETTYPE_AUX 5 #ifdef _WIN32 WINMMAPI MMRESULT WINAPI mixerGetLineInfoA( IN HMIXEROBJ hmxobj, OUT LPMIXERLINEA pmxl, IN DWORD fdwInfo); WINMMAPI MMRESULT WINAPI mixerGetLineInfoW( IN HMIXEROBJ hmxobj, OUT LPMIXERLINEW pmxl, IN DWORD fdwInfo); #ifdef UNICODE #define mixerGetLineInfo mixerGetLineInfoW #else #define mixerGetLineInfo mixerGetLineInfoA #endif // !UNICODE #else MMRESULT WINAPI mixerGetLineInfo(HMIXEROBJ hmxobj, LPMIXERLINE pmxl, DWORD fdwInfo); #endif #define MIXER_GETLINEINFOF_DESTINATION 0x00000000L #define MIXER_GETLINEINFOF_SOURCE 0x00000001L #define MIXER_GETLINEINFOF_LINEID 0x00000002L #define MIXER_GETLINEINFOF_COMPONENTTYPE 0x00000003L #define MIXER_GETLINEINFOF_TARGETTYPE 0x00000004L #define MIXER_GETLINEINFOF_QUERYMASK 0x0000000FL WINMMAPI MMRESULT WINAPI mixerGetID( IN HMIXEROBJ hmxobj, OUT UINT FAR *puMxId, IN DWORD fdwId); /* */ /* MIXERCONTROL */ /* */ /* */ #ifdef _WIN32 typedef struct tagMIXERCONTROLA { DWORD cbStruct; /* size in bytes of MIXERCONTROL */ DWORD dwControlID; /* unique control id for mixer device */ DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set */ CHAR szShortName[MIXER_SHORT_NAME_CHARS]; CHAR szName[MIXER_LONG_NAME_CHARS]; union { struct { LONG lMinimum; /* signed minimum for this control */ LONG lMaximum; /* signed maximum for this control */ }; struct { DWORD dwMinimum; /* unsigned minimum for this control */ DWORD dwMaximum; /* unsigned maximum for this control */ }; DWORD dwReserved[6]; } Bounds; union { DWORD cSteps; /* # of steps between min & max */ DWORD cbCustomData; /* size in bytes of custom data */ DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ } Metrics; } MIXERCONTROLA, *PMIXERCONTROLA, *LPMIXERCONTROLA; typedef struct tagMIXERCONTROLW { DWORD cbStruct; /* size in bytes of MIXERCONTROL */ DWORD dwControlID; /* unique control id for mixer device */ DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set */ WCHAR szShortName[MIXER_SHORT_NAME_CHARS]; WCHAR szName[MIXER_LONG_NAME_CHARS]; union { struct { LONG lMinimum; /* signed minimum for this control */ LONG lMaximum; /* signed maximum for this control */ }; struct { DWORD dwMinimum; /* unsigned minimum for this control */ DWORD dwMaximum; /* unsigned maximum for this control */ }; DWORD dwReserved[6]; } Bounds; union { DWORD cSteps; /* # of steps between min & max */ DWORD cbCustomData; /* size in bytes of custom data */ DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ } Metrics; } MIXERCONTROLW, *PMIXERCONTROLW, *LPMIXERCONTROLW; #ifdef UNICODE typedef MIXERCONTROLW MIXERCONTROL; typedef PMIXERCONTROLW PMIXERCONTROL; typedef LPMIXERCONTROLW LPMIXERCONTROL; #else typedef MIXERCONTROLA MIXERCONTROL; typedef PMIXERCONTROLA PMIXERCONTROL; typedef LPMIXERCONTROLA LPMIXERCONTROL; #endif // UNICODE #else typedef struct tMIXERCONTROL { DWORD cbStruct; /* size in bytes of MIXERCONTROL */ DWORD dwControlID; /* unique control id for mixer device */ DWORD dwControlType; /* MIXERCONTROL_CONTROLTYPE_xxx */ DWORD fdwControl; /* MIXERCONTROL_CONTROLF_xxx */ DWORD cMultipleItems; /* if MIXERCONTROL_CONTROLF_MULTIPLE set */ char szShortName[MIXER_SHORT_NAME_CHARS]; char szName[MIXER_LONG_NAME_CHARS]; union { struct { LONG lMinimum; /* signed minimum for this control */ LONG lMaximum; /* signed maximum for this control */ }; struct { DWORD dwMinimum; /* unsigned minimum for this control */ DWORD dwMaximum; /* unsigned maximum for this control */ }; DWORD dwReserved[6]; } Bounds; union { DWORD cSteps; /* # of steps between min & max */ DWORD cbCustomData; /* size in bytes of custom data */ DWORD dwReserved[6]; /* !!! needed? we have cbStruct.... */ } Metrics; } MIXERCONTROL, *PMIXERCONTROL, FAR *LPMIXERCONTROL; #endif /* */ /* MIXERCONTROL.fdwControl */ /* */ /* */ #define MIXERCONTROL_CONTROLF_UNIFORM 0x00000001L #define MIXERCONTROL_CONTROLF_MULTIPLE 0x00000002L #define MIXERCONTROL_CONTROLF_DISABLED 0x80000000L /* */ /* MIXERCONTROL_CONTROLTYPE_xxx building block defines */ /* */ /* */ #define MIXERCONTROL_CT_CLASS_MASK 0xF0000000L #define MIXERCONTROL_CT_CLASS_CUSTOM 0x00000000L #define MIXERCONTROL_CT_CLASS_METER 0x10000000L #define MIXERCONTROL_CT_CLASS_SWITCH 0x20000000L #define MIXERCONTROL_CT_CLASS_NUMBER 0x30000000L #define MIXERCONTROL_CT_CLASS_SLIDER 0x40000000L #define MIXERCONTROL_CT_CLASS_FADER 0x50000000L #define MIXERCONTROL_CT_CLASS_TIME 0x60000000L #define MIXERCONTROL_CT_CLASS_LIST 0x70000000L #define MIXERCONTROL_CT_SUBCLASS_MASK 0x0F000000L #define MIXERCONTROL_CT_SC_SWITCH_BOOLEAN 0x00000000L #define MIXERCONTROL_CT_SC_SWITCH_BUTTON 0x01000000L #define MIXERCONTROL_CT_SC_METER_POLLED 0x00000000L #define MIXERCONTROL_CT_SC_TIME_MICROSECS 0x00000000L #define MIXERCONTROL_CT_SC_TIME_MILLISECS 0x01000000L #define MIXERCONTROL_CT_SC_LIST_SINGLE 0x00000000L #define MIXERCONTROL_CT_SC_LIST_MULTIPLE 0x01000000L #define MIXERCONTROL_CT_UNITS_MASK 0x00FF0000L #define MIXERCONTROL_CT_UNITS_CUSTOM 0x00000000L #define MIXERCONTROL_CT_UNITS_BOOLEAN 0x00010000L #define MIXERCONTROL_CT_UNITS_SIGNED 0x00020000L #define MIXERCONTROL_CT_UNITS_UNSIGNED 0x00030000L #define MIXERCONTROL_CT_UNITS_DECIBELS 0x00040000L /* in 10ths */ #define MIXERCONTROL_CT_UNITS_PERCENT 0x00050000L /* in 10ths */ /* */ /* Commonly used control types for specifying MIXERCONTROL.dwControlType */ /* */ #define MIXERCONTROL_CONTROLTYPE_CUSTOM (MIXERCONTROL_CT_CLASS_CUSTOM | MIXERCONTROL_CT_UNITS_CUSTOM) #define MIXERCONTROL_CONTROLTYPE_BOOLEANMETER (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_BOOLEAN) #define MIXERCONTROL_CONTROLTYPE_SIGNEDMETER (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_SIGNED) #define MIXERCONTROL_CONTROLTYPE_PEAKMETER (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1) #define MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER (MIXERCONTROL_CT_CLASS_METER | MIXERCONTROL_CT_SC_METER_POLLED | MIXERCONTROL_CT_UNITS_UNSIGNED) #define MIXERCONTROL_CONTROLTYPE_BOOLEAN (MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BOOLEAN | MIXERCONTROL_CT_UNITS_BOOLEAN) #define MIXERCONTROL_CONTROLTYPE_ONOFF (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1) #define MIXERCONTROL_CONTROLTYPE_MUTE (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2) #define MIXERCONTROL_CONTROLTYPE_MONO (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3) #define MIXERCONTROL_CONTROLTYPE_LOUDNESS (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4) #define MIXERCONTROL_CONTROLTYPE_STEREOENH (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5) #define MIXERCONTROL_CONTROLTYPE_BASS_BOOST (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 0x00002277) #define MIXERCONTROL_CONTROLTYPE_BUTTON (MIXERCONTROL_CT_CLASS_SWITCH | MIXERCONTROL_CT_SC_SWITCH_BUTTON | MIXERCONTROL_CT_UNITS_BOOLEAN) #define MIXERCONTROL_CONTROLTYPE_DECIBELS (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_DECIBELS) #define MIXERCONTROL_CONTROLTYPE_SIGNED (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_SIGNED) #define MIXERCONTROL_CONTROLTYPE_UNSIGNED (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_UNSIGNED) #define MIXERCONTROL_CONTROLTYPE_PERCENT (MIXERCONTROL_CT_CLASS_NUMBER | MIXERCONTROL_CT_UNITS_PERCENT) #define MIXERCONTROL_CONTROLTYPE_SLIDER (MIXERCONTROL_CT_CLASS_SLIDER | MIXERCONTROL_CT_UNITS_SIGNED) #define MIXERCONTROL_CONTROLTYPE_PAN (MIXERCONTROL_CONTROLTYPE_SLIDER + 1) #define MIXERCONTROL_CONTROLTYPE_QSOUNDPAN (MIXERCONTROL_CONTROLTYPE_SLIDER + 2) #define MIXERCONTROL_CONTROLTYPE_FADER (MIXERCONTROL_CT_CLASS_FADER | MIXERCONTROL_CT_UNITS_UNSIGNED) #define MIXERCONTROL_CONTROLTYPE_VOLUME (MIXERCONTROL_CONTROLTYPE_FADER + 1) #define MIXERCONTROL_CONTROLTYPE_BASS (MIXERCONTROL_CONTROLTYPE_FADER + 2) #define MIXERCONTROL_CONTROLTYPE_TREBLE (MIXERCONTROL_CONTROLTYPE_FADER + 3) #define MIXERCONTROL_CONTROLTYPE_EQUALIZER (MIXERCONTROL_CONTROLTYPE_FADER + 4) #define MIXERCONTROL_CONTROLTYPE_SINGLESELECT (MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_SINGLE | MIXERCONTROL_CT_UNITS_BOOLEAN) #define MIXERCONTROL_CONTROLTYPE_MUX (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1) #define MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT (MIXERCONTROL_CT_CLASS_LIST | MIXERCONTROL_CT_SC_LIST_MULTIPLE | MIXERCONTROL_CT_UNITS_BOOLEAN) #define MIXERCONTROL_CONTROLTYPE_MIXER (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1) #define MIXERCONTROL_CONTROLTYPE_MICROTIME (MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MICROSECS | MIXERCONTROL_CT_UNITS_UNSIGNED) #define MIXERCONTROL_CONTROLTYPE_MILLITIME (MIXERCONTROL_CT_CLASS_TIME | MIXERCONTROL_CT_SC_TIME_MILLISECS | MIXERCONTROL_CT_UNITS_UNSIGNED) /* */ /* MIXERLINECONTROLS */ /* */ #ifdef _WIN32 typedef struct tagMIXERLINECONTROLSA { DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ union { DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ }; DWORD cControls; /* count of controls pmxctrl points to */ DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ LPMIXERCONTROLA pamxctrl; /* pointer to first MIXERCONTROL array */ } MIXERLINECONTROLSA, *PMIXERLINECONTROLSA, *LPMIXERLINECONTROLSA; typedef struct tagMIXERLINECONTROLSW { DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ union { DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ }; DWORD cControls; /* count of controls pmxctrl points to */ DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ LPMIXERCONTROLW pamxctrl; /* pointer to first MIXERCONTROL array */ } MIXERLINECONTROLSW, *PMIXERLINECONTROLSW, *LPMIXERLINECONTROLSW; #ifdef UNICODE typedef MIXERLINECONTROLSW MIXERLINECONTROLS; typedef PMIXERLINECONTROLSW PMIXERLINECONTROLS; typedef LPMIXERLINECONTROLSW LPMIXERLINECONTROLS; #else typedef MIXERLINECONTROLSA MIXERLINECONTROLS; typedef PMIXERLINECONTROLSA PMIXERLINECONTROLS; typedef LPMIXERLINECONTROLSA LPMIXERLINECONTROLS; #endif // UNICODE #else typedef struct tMIXERLINECONTROLS { DWORD cbStruct; /* size in bytes of MIXERLINECONTROLS */ DWORD dwLineID; /* line id (from MIXERLINE.dwLineID) */ union { DWORD dwControlID; /* MIXER_GETLINECONTROLSF_ONEBYID */ DWORD dwControlType; /* MIXER_GETLINECONTROLSF_ONEBYTYPE */ }; DWORD cControls; /* count of controls pmxctrl points to */ DWORD cbmxctrl; /* size in bytes of _one_ MIXERCONTROL */ LPMIXERCONTROL pamxctrl; /* pointer to first MIXERCONTROL array */ } MIXERLINECONTROLS, *PMIXERLINECONTROLS, FAR *LPMIXERLINECONTROLS; #endif /* */ /* */ /* */ #ifdef _WIN32 WINMMAPI MMRESULT WINAPI mixerGetLineControlsA( IN HMIXEROBJ hmxobj, IN OUT LPMIXERLINECONTROLSA pmxlc, IN DWORD fdwControls); WINMMAPI MMRESULT WINAPI mixerGetLineControlsW( IN HMIXEROBJ hmxobj, IN OUT LPMIXERLINECONTROLSW pmxlc, IN DWORD fdwControls); #ifdef UNICODE #define mixerGetLineControls mixerGetLineControlsW #else #define mixerGetLineControls mixerGetLineControlsA #endif // !UNICODE #else MMRESULT WINAPI mixerGetLineControls(HMIXEROBJ hmxobj, LPMIXERLINECONTROLS pmxlc, DWORD fdwControls); #endif #define MIXER_GETLINECONTROLSF_ALL 0x00000000L #define MIXER_GETLINECONTROLSF_ONEBYID 0x00000001L #define MIXER_GETLINECONTROLSF_ONEBYTYPE 0x00000002L #define MIXER_GETLINECONTROLSF_QUERYMASK 0x0000000FL typedef struct tMIXERCONTROLDETAILS { DWORD cbStruct; /* size in bytes of MIXERCONTROLDETAILS */ DWORD dwControlID; /* control id to get/set details on */ DWORD cChannels; /* number of channels in paDetails array */ union { HWND hwndOwner; /* for MIXER_SETCONTROLDETAILSF_CUSTOM */ DWORD cMultipleItems; /* if _MULTIPLE, the number of items per channel */ }; DWORD cbDetails; /* size of _one_ details_XX struct */ LPVOID paDetails; /* pointer to array of details_XX structs */ } MIXERCONTROLDETAILS, *PMIXERCONTROLDETAILS, FAR *LPMIXERCONTROLDETAILS; /* */ /* MIXER_GETCONTROLDETAILSF_LISTTEXT */ /* */ /* */ #ifdef _WIN32 typedef struct tagMIXERCONTROLDETAILS_LISTTEXTA { DWORD dwParam1; DWORD dwParam2; CHAR szName[MIXER_LONG_NAME_CHARS]; } MIXERCONTROLDETAILS_LISTTEXTA, *PMIXERCONTROLDETAILS_LISTTEXTA, *LPMIXERCONTROLDETAILS_LISTTEXTA; typedef struct tagMIXERCONTROLDETAILS_LISTTEXTW { DWORD dwParam1; DWORD dwParam2; WCHAR szName[MIXER_LONG_NAME_CHARS]; } MIXERCONTROLDETAILS_LISTTEXTW, *PMIXERCONTROLDETAILS_LISTTEXTW, *LPMIXERCONTROLDETAILS_LISTTEXTW; #ifdef UNICODE typedef MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_LISTTEXT; typedef PMIXERCONTROLDETAILS_LISTTEXTW PMIXERCONTROLDETAILS_LISTTEXT; typedef LPMIXERCONTROLDETAILS_LISTTEXTW LPMIXERCONTROLDETAILS_LISTTEXT; #else typedef MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXT; typedef PMIXERCONTROLDETAILS_LISTTEXTA PMIXERCONTROLDETAILS_LISTTEXT; typedef LPMIXERCONTROLDETAILS_LISTTEXTA LPMIXERCONTROLDETAILS_LISTTEXT; #endif // UNICODE #else typedef struct tMIXERCONTROLDETAILS_LISTTEXT { DWORD dwParam1; DWORD dwParam2; char szName[MIXER_LONG_NAME_CHARS]; } MIXERCONTROLDETAILS_LISTTEXT, *PMIXERCONTROLDETAILS_LISTTEXT, FAR *LPMIXERCONTROLDETAILS_LISTTEXT; #endif /* */ /* MIXER_GETCONTROLDETAILSF_VALUE */ /* */ /* */ typedef struct tMIXERCONTROLDETAILS_BOOLEAN { LONG fValue; } MIXERCONTROLDETAILS_BOOLEAN, *PMIXERCONTROLDETAILS_BOOLEAN, FAR *LPMIXERCONTROLDETAILS_BOOLEAN; typedef struct tMIXERCONTROLDETAILS_SIGNED { LONG lValue; } MIXERCONTROLDETAILS_SIGNED, *PMIXERCONTROLDETAILS_SIGNED, FAR *LPMIXERCONTROLDETAILS_SIGNED; typedef struct tMIXERCONTROLDETAILS_UNSIGNED { DWORD dwValue; } MIXERCONTROLDETAILS_UNSIGNED, *PMIXERCONTROLDETAILS_UNSIGNED, FAR *LPMIXERCONTROLDETAILS_UNSIGNED; #ifdef _WIN32 WINMMAPI MMRESULT WINAPI mixerGetControlDetailsA( IN HMIXEROBJ hmxobj, IN OUT LPMIXERCONTROLDETAILS pmxcd, IN DWORD fdwDetails); WINMMAPI MMRESULT WINAPI mixerGetControlDetailsW( IN HMIXEROBJ hmxobj, IN OUT LPMIXERCONTROLDETAILS pmxcd, IN DWORD fdwDetails); #ifdef UNICODE #define mixerGetControlDetails mixerGetControlDetailsW #else #define mixerGetControlDetails mixerGetControlDetailsA #endif // !UNICODE #else MMRESULT WINAPI mixerGetControlDetails(HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails); #endif #define MIXER_GETCONTROLDETAILSF_VALUE 0x00000000L #define MIXER_GETCONTROLDETAILSF_LISTTEXT 0x00000001L #define MIXER_GETCONTROLDETAILSF_QUERYMASK 0x0000000FL WINMMAPI MMRESULT WINAPI mixerSetControlDetails( IN HMIXEROBJ hmxobj, IN LPMIXERCONTROLDETAILS pmxcd, IN DWORD fdwDetails); #define MIXER_SETCONTROLDETAILSF_VALUE 0x00000000L #define MIXER_SETCONTROLDETAILSF_CUSTOM 0x00000001L #define MIXER_SETCONTROLDETAILSF_QUERYMASK 0x0000000FL #endif /* ifndef MMNOMIXER */ #ifndef MMNOTIMER /**************************************************************************** Timer support ****************************************************************************/ /* timer error return values */ #define TIMERR_NOERROR (0) /* no error */ #define TIMERR_NOCANDO (TIMERR_BASE+1) /* request not completed */ #define TIMERR_STRUCT (TIMERR_BASE+33) /* time struct size */ /* timer data types */ typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2); typedef TIMECALLBACK FAR *LPTIMECALLBACK; /* flags for fuEvent parameter of timeSetEvent() function */ #define TIME_ONESHOT 0x0000 /* program timer for single event */ #define TIME_PERIODIC 0x0001 /* program for continuous periodic event */ #ifdef _WIN32 #define TIME_CALLBACK_FUNCTION 0x0000 /* callback is function */ #define TIME_CALLBACK_EVENT_SET 0x0010 /* callback is event - use SetEvent */ #define TIME_CALLBACK_EVENT_PULSE 0x0020 /* callback is event - use PulseEvent */ #endif #if WINVER >= 0x0501 #define TIME_KILL_SYNCHRONOUS 0x0100 /* This flag prevents the event from occurring */ /* after the user calls timeKillEvent() to */ /* destroy it. */ #endif // WINVER >= 0x0501 /* timer device capabilities data structure */ typedef struct timecaps_tag { UINT wPeriodMin; /* minimum period supported */ UINT wPeriodMax; /* maximum period supported */ } TIMECAPS, *PTIMECAPS, NEAR *NPTIMECAPS, FAR *LPTIMECAPS; /* timer function prototypes */ WINMMAPI MMRESULT WINAPI timeGetSystemTime( OUT LPMMTIME pmmt, IN UINT cbmmt); WINMMAPI DWORD WINAPI timeGetTime(void); WINMMAPI MMRESULT WINAPI timeSetEvent( IN UINT uDelay, IN UINT uResolution, IN LPTIMECALLBACK fptc, IN DWORD_PTR dwUser, IN UINT fuEvent); WINMMAPI MMRESULT WINAPI timeKillEvent( IN UINT uTimerID); WINMMAPI MMRESULT WINAPI timeGetDevCaps( OUT LPTIMECAPS ptc, IN UINT cbtc); WINMMAPI MMRESULT WINAPI timeBeginPeriod( IN UINT uPeriod); WINMMAPI MMRESULT WINAPI timeEndPeriod( IN UINT uPeriod); #endif /* ifndef MMNOTIMER */ #ifndef MMNOJOY /**************************************************************************** Joystick support ****************************************************************************/ /* joystick error return values */ #define JOYERR_NOERROR (0) /* no error */ #define JOYERR_PARMS (JOYERR_BASE+5) /* bad parameters */ #define JOYERR_NOCANDO (JOYERR_BASE+6) /* request not completed */ #define JOYERR_UNPLUGGED (JOYERR_BASE+7) /* joystick is unplugged */ /* constants used with JOYINFO and JOYINFOEX structures and MM_JOY* messages */ #define JOY_BUTTON1 0x0001 #define JOY_BUTTON2 0x0002 #define JOY_BUTTON3 0x0004 #define JOY_BUTTON4 0x0008 #define JOY_BUTTON1CHG 0x0100 #define JOY_BUTTON2CHG 0x0200 #define JOY_BUTTON3CHG 0x0400 #define JOY_BUTTON4CHG 0x0800 /* constants used with JOYINFOEX */ #define JOY_BUTTON5 0x00000010l #define JOY_BUTTON6 0x00000020l #define JOY_BUTTON7 0x00000040l #define JOY_BUTTON8 0x00000080l #define JOY_BUTTON9 0x00000100l #define JOY_BUTTON10 0x00000200l #define JOY_BUTTON11 0x00000400l #define JOY_BUTTON12 0x00000800l #define JOY_BUTTON13 0x00001000l #define JOY_BUTTON14 0x00002000l #define JOY_BUTTON15 0x00004000l #define JOY_BUTTON16 0x00008000l #define JOY_BUTTON17 0x00010000l #define JOY_BUTTON18 0x00020000l #define JOY_BUTTON19 0x00040000l #define JOY_BUTTON20 0x00080000l #define JOY_BUTTON21 0x00100000l #define JOY_BUTTON22 0x00200000l #define JOY_BUTTON23 0x00400000l #define JOY_BUTTON24 0x00800000l #define JOY_BUTTON25 0x01000000l #define JOY_BUTTON26 0x02000000l #define JOY_BUTTON27 0x04000000l #define JOY_BUTTON28 0x08000000l #define JOY_BUTTON29 0x10000000l #define JOY_BUTTON30 0x20000000l #define JOY_BUTTON31 0x40000000l #define JOY_BUTTON32 0x80000000l /* constants used with JOYINFOEX structure */ #define JOY_POVCENTERED (WORD) -1 #define JOY_POVFORWARD 0 #define JOY_POVRIGHT 9000 #define JOY_POVBACKWARD 18000 #define JOY_POVLEFT 27000 #define JOY_RETURNX 0x00000001l #define JOY_RETURNY 0x00000002l #define JOY_RETURNZ 0x00000004l #define JOY_RETURNR 0x00000008l #define JOY_RETURNU 0x00000010l /* axis 5 */ #define JOY_RETURNV 0x00000020l /* axis 6 */ #define JOY_RETURNPOV 0x00000040l #define JOY_RETURNBUTTONS 0x00000080l #define JOY_RETURNRAWDATA 0x00000100l #define JOY_RETURNPOVCTS 0x00000200l #define JOY_RETURNCENTERED 0x00000400l #define JOY_USEDEADZONE 0x00000800l #define JOY_RETURNALL (JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | \ JOY_RETURNR | JOY_RETURNU | JOY_RETURNV | \ JOY_RETURNPOV | JOY_RETURNBUTTONS) #define JOY_CAL_READALWAYS 0x00010000l #define JOY_CAL_READXYONLY 0x00020000l #define JOY_CAL_READ3 0x00040000l #define JOY_CAL_READ4 0x00080000l #define JOY_CAL_READXONLY 0x00100000l #define JOY_CAL_READYONLY 0x00200000l #define JOY_CAL_READ5 0x00400000l #define JOY_CAL_READ6 0x00800000l #define JOY_CAL_READZONLY 0x01000000l #define JOY_CAL_READRONLY 0x02000000l #define JOY_CAL_READUONLY 0x04000000l #define JOY_CAL_READVONLY 0x08000000l /* joystick ID constants */ #define JOYSTICKID1 0 #define JOYSTICKID2 1 /* joystick driver capabilites */ #define JOYCAPS_HASZ 0x0001 #define JOYCAPS_HASR 0x0002 #define JOYCAPS_HASU 0x0004 #define JOYCAPS_HASV 0x0008 #define JOYCAPS_HASPOV 0x0010 #define JOYCAPS_POV4DIR 0x0020 #define JOYCAPS_POVCTS 0x0040 /* joystick device capabilities data structure */ #ifdef _WIN32 typedef struct tagJOYCAPSA { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ CHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ UINT wXmin; /* minimum x position value */ UINT wXmax; /* maximum x position value */ UINT wYmin; /* minimum y position value */ UINT wYmax; /* maximum y position value */ UINT wZmin; /* minimum z position value */ UINT wZmax; /* maximum z position value */ UINT wNumButtons; /* number of buttons */ UINT wPeriodMin; /* minimum message period when captured */ UINT wPeriodMax; /* maximum message period when captured */ #if (WINVER >= 0x0400) UINT wRmin; /* minimum r position value */ UINT wRmax; /* maximum r position value */ UINT wUmin; /* minimum u (5th axis) position value */ UINT wUmax; /* maximum u (5th axis) position value */ UINT wVmin; /* minimum v (6th axis) position value */ UINT wVmax; /* maximum v (6th axis) position value */ UINT wCaps; /* joystick capabilites */ UINT wMaxAxes; /* maximum number of axes supported */ UINT wNumAxes; /* number of axes in use */ UINT wMaxButtons; /* maximum number of buttons supported */ CHAR szRegKey[MAXPNAMELEN];/* registry key */ CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */ #endif } JOYCAPSA, *PJOYCAPSA, *NPJOYCAPSA, *LPJOYCAPSA; typedef struct tagJOYCAPSW { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ WCHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ UINT wXmin; /* minimum x position value */ UINT wXmax; /* maximum x position value */ UINT wYmin; /* minimum y position value */ UINT wYmax; /* maximum y position value */ UINT wZmin; /* minimum z position value */ UINT wZmax; /* maximum z position value */ UINT wNumButtons; /* number of buttons */ UINT wPeriodMin; /* minimum message period when captured */ UINT wPeriodMax; /* maximum message period when captured */ #if (WINVER >= 0x0400) UINT wRmin; /* minimum r position value */ UINT wRmax; /* maximum r position value */ UINT wUmin; /* minimum u (5th axis) position value */ UINT wUmax; /* maximum u (5th axis) position value */ UINT wVmin; /* minimum v (6th axis) position value */ UINT wVmax; /* maximum v (6th axis) position value */ UINT wCaps; /* joystick capabilites */ UINT wMaxAxes; /* maximum number of axes supported */ UINT wNumAxes; /* number of axes in use */ UINT wMaxButtons; /* maximum number of buttons supported */ WCHAR szRegKey[MAXPNAMELEN];/* registry key */ WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */ #endif } JOYCAPSW, *PJOYCAPSW, *NPJOYCAPSW, *LPJOYCAPSW; #ifdef UNICODE typedef JOYCAPSW JOYCAPS; typedef PJOYCAPSW PJOYCAPS; typedef NPJOYCAPSW NPJOYCAPS; typedef LPJOYCAPSW LPJOYCAPS; #else typedef JOYCAPSA JOYCAPS; typedef PJOYCAPSA PJOYCAPS; typedef NPJOYCAPSA NPJOYCAPS; typedef LPJOYCAPSA LPJOYCAPS; #endif // UNICODE typedef struct tagJOYCAPS2A { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ CHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ UINT wXmin; /* minimum x position value */ UINT wXmax; /* maximum x position value */ UINT wYmin; /* minimum y position value */ UINT wYmax; /* maximum y position value */ UINT wZmin; /* minimum z position value */ UINT wZmax; /* maximum z position value */ UINT wNumButtons; /* number of buttons */ UINT wPeriodMin; /* minimum message period when captured */ UINT wPeriodMax; /* maximum message period when captured */ UINT wRmin; /* minimum r position value */ UINT wRmax; /* maximum r position value */ UINT wUmin; /* minimum u (5th axis) position value */ UINT wUmax; /* maximum u (5th axis) position value */ UINT wVmin; /* minimum v (6th axis) position value */ UINT wVmax; /* maximum v (6th axis) position value */ UINT wCaps; /* joystick capabilites */ UINT wMaxAxes; /* maximum number of axes supported */ UINT wNumAxes; /* number of axes in use */ UINT wMaxButtons; /* maximum number of buttons supported */ CHAR szRegKey[MAXPNAMELEN];/* registry key */ CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } JOYCAPS2A, *PJOYCAPS2A, *NPJOYCAPS2A, *LPJOYCAPS2A; typedef struct tagJOYCAPS2W { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ WCHAR szPname[MAXPNAMELEN];/* product name (NULL terminated string) */ UINT wXmin; /* minimum x position value */ UINT wXmax; /* maximum x position value */ UINT wYmin; /* minimum y position value */ UINT wYmax; /* maximum y position value */ UINT wZmin; /* minimum z position value */ UINT wZmax; /* maximum z position value */ UINT wNumButtons; /* number of buttons */ UINT wPeriodMin; /* minimum message period when captured */ UINT wPeriodMax; /* maximum message period when captured */ UINT wRmin; /* minimum r position value */ UINT wRmax; /* maximum r position value */ UINT wUmin; /* minimum u (5th axis) position value */ UINT wUmax; /* maximum u (5th axis) position value */ UINT wVmin; /* minimum v (6th axis) position value */ UINT wVmax; /* maximum v (6th axis) position value */ UINT wCaps; /* joystick capabilites */ UINT wMaxAxes; /* maximum number of axes supported */ UINT wNumAxes; /* number of axes in use */ UINT wMaxButtons; /* maximum number of buttons supported */ WCHAR szRegKey[MAXPNAMELEN];/* registry key */ WCHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */ GUID ManufacturerGuid; /* for extensible MID mapping */ GUID ProductGuid; /* for extensible PID mapping */ GUID NameGuid; /* for name lookup in registry */ } JOYCAPS2W, *PJOYCAPS2W, *NPJOYCAPS2W, *LPJOYCAPS2W; #ifdef UNICODE typedef JOYCAPS2W JOYCAPS2; typedef PJOYCAPS2W PJOYCAPS2; typedef NPJOYCAPS2W NPJOYCAPS2; typedef LPJOYCAPS2W LPJOYCAPS2; #else typedef JOYCAPS2A JOYCAPS2; typedef PJOYCAPS2A PJOYCAPS2; typedef NPJOYCAPS2A NPJOYCAPS2; typedef LPJOYCAPS2A LPJOYCAPS2; #endif // UNICODE #else typedef struct joycaps_tag { WORD wMid; /* manufacturer ID */ WORD wPid; /* product ID */ char szPname[MAXPNAMELEN]; /* product name (NULL terminated string) */ UINT wXmin; /* minimum x position value */ UINT wXmax; /* maximum x position value */ UINT wYmin; /* minimum y position value */ UINT wYmax; /* maximum y position value */ UINT wZmin; /* minimum z position value */ UINT wZmax; /* maximum z position value */ UINT wNumButtons; /* number of buttons */ UINT wPeriodMin; /* minimum message period when captured */ UINT wPeriodMax; /* maximum message period when captured */ #if (WINVER >= 0x0400) UINT wRmin; /* minimum r position value */ UINT wRmax; /* maximum r position value */ UINT wUmin; /* minimum u (5th axis) position value */ UINT wUmax; /* maximum u (5th axis) position value */ UINT wVmin; /* minimum v (6th axis) position value */ UINT wVmax; /* maximum v (6th axis) position value */ UINT wCaps; /* joystick capabilites */ UINT wMaxAxes; /* maximum number of axes supported */ UINT wNumAxes; /* number of axes in use */ UINT wMaxButtons; /* maximum number of buttons supported */ char szRegKey[MAXPNAMELEN]; /* registry key */ char szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; /* OEM VxD in use */ #endif } JOYCAPS, *PJOYCAPS, NEAR *NPJOYCAPS, FAR *LPJOYCAPS; #endif /* joystick information data structure */ typedef struct joyinfo_tag { UINT wXpos; /* x position */ UINT wYpos; /* y position */ UINT wZpos; /* z position */ UINT wButtons; /* button states */ } JOYINFO, *PJOYINFO, NEAR *NPJOYINFO, FAR *LPJOYINFO; #if(WINVER >= 0x0400) typedef struct joyinfoex_tag { DWORD dwSize; /* size of structure */ DWORD dwFlags; /* flags to indicate what to return */ DWORD dwXpos; /* x position */ DWORD dwYpos; /* y position */ DWORD dwZpos; /* z position */ DWORD dwRpos; /* rudder/4th axis position */ DWORD dwUpos; /* 5th axis position */ DWORD dwVpos; /* 6th axis position */ DWORD dwButtons; /* button states */ DWORD dwButtonNumber; /* current button number pressed */ DWORD dwPOV; /* point of view state */ DWORD dwReserved1; /* reserved for communication between winmm & driver */ DWORD dwReserved2; /* reserved for future expansion */ } JOYINFOEX, *PJOYINFOEX, NEAR *NPJOYINFOEX, FAR *LPJOYINFOEX; #endif /* WINVER >= 0x0400 */ /* joystick function prototypes */ WINMMAPI UINT WINAPI joyGetNumDevs(void); #ifdef _WIN32 WINMMAPI MMRESULT WINAPI joyGetDevCapsA( IN UINT_PTR uJoyID, OUT LPJOYCAPSA pjc, IN UINT cbjc); WINMMAPI MMRESULT WINAPI joyGetDevCapsW( IN UINT_PTR uJoyID, OUT LPJOYCAPSW pjc, IN UINT cbjc); #ifdef UNICODE #define joyGetDevCaps joyGetDevCapsW #else #define joyGetDevCaps joyGetDevCapsA #endif // !UNICODE #else MMRESULT WINAPI joyGetDevCaps(UINT uJoyID, LPJOYCAPS pjc, UINT cbjc); #endif WINMMAPI MMRESULT WINAPI joyGetPos( IN UINT uJoyID, OUT LPJOYINFO pji); #if(WINVER >= 0x0400) WINMMAPI MMRESULT WINAPI joyGetPosEx( IN UINT uJoyID, OUT LPJOYINFOEX pji); #endif /* WINVER >= 0x0400 */ WINMMAPI MMRESULT WINAPI joyGetThreshold( IN UINT uJoyID, OUT LPUINT puThreshold); WINMMAPI MMRESULT WINAPI joyReleaseCapture( IN UINT uJoyID); WINMMAPI MMRESULT WINAPI joySetCapture( IN HWND hwnd, IN UINT uJoyID, IN UINT uPeriod, IN BOOL fChanged); WINMMAPI MMRESULT WINAPI joySetThreshold( IN UINT uJoyID, IN UINT uThreshold); #endif /* ifndef MMNOJOY */ #ifndef MMNOMMIO /**************************************************************************** Multimedia File I/O support ****************************************************************************/ /* MMIO error return values */ #define MMIOERR_BASE 256 #define MMIOERR_FILENOTFOUND (MMIOERR_BASE + 1) /* file not found */ #define MMIOERR_OUTOFMEMORY (MMIOERR_BASE + 2) /* out of memory */ #define MMIOERR_CANNOTOPEN (MMIOERR_BASE + 3) /* cannot open */ #define MMIOERR_CANNOTCLOSE (MMIOERR_BASE + 4) /* cannot close */ #define MMIOERR_CANNOTREAD (MMIOERR_BASE + 5) /* cannot read */ #define MMIOERR_CANNOTWRITE (MMIOERR_BASE + 6) /* cannot write */ #define MMIOERR_CANNOTSEEK (MMIOERR_BASE + 7) /* cannot seek */ #define MMIOERR_CANNOTEXPAND (MMIOERR_BASE + 8) /* cannot expand file */ #define MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE + 9) /* chunk not found */ #define MMIOERR_UNBUFFERED (MMIOERR_BASE + 10) /* */ #define MMIOERR_PATHNOTFOUND (MMIOERR_BASE + 11) /* path incorrect */ #define MMIOERR_ACCESSDENIED (MMIOERR_BASE + 12) /* file was protected */ #define MMIOERR_SHARINGVIOLATION (MMIOERR_BASE + 13) /* file in use */ #define MMIOERR_NETWORKERROR (MMIOERR_BASE + 14) /* network not responding */ #define MMIOERR_TOOMANYOPENFILES (MMIOERR_BASE + 15) /* no more file handles */ #define MMIOERR_INVALIDFILE (MMIOERR_BASE + 16) /* default error file error */ /* MMIO constants */ #define CFSEPCHAR '+' /* compound file name separator char. */ /* MMIO data types */ typedef DWORD FOURCC; /* a four character code */ typedef char _huge * HPSTR; /* a huge version of LPSTR */ DECLARE_HANDLE(HMMIO); /* a handle to an open file */ typedef LRESULT (CALLBACK MMIOPROC)(LPSTR lpmmioinfo, UINT uMsg, LPARAM lParam1, LPARAM lParam2); typedef MMIOPROC FAR *LPMMIOPROC; /* general MMIO information data structure */ typedef struct _MMIOINFO { /* general fields */ DWORD dwFlags; /* general status flags */ FOURCC fccIOProc; /* pointer to I/O procedure */ LPMMIOPROC pIOProc; /* pointer to I/O procedure */ UINT wErrorRet; /* place for error to be returned */ HTASK htask; /* alternate local task */ /* fields maintained by MMIO functions during buffered I/O */ LONG cchBuffer; /* size of I/O buffer (or 0L) */ HPSTR pchBuffer; /* start of I/O buffer (or NULL) */ HPSTR pchNext; /* pointer to next byte to read/write */ HPSTR pchEndRead; /* pointer to last valid byte to read */ HPSTR pchEndWrite; /* pointer to last byte to write */ LONG lBufOffset; /* disk offset of start of buffer */ /* fields maintained by I/O procedure */ LONG lDiskOffset; /* disk offset of next read or write */ DWORD adwInfo[3]; /* data specific to type of MMIOPROC */ /* other fields maintained by MMIO */ DWORD dwReserved1; /* reserved for MMIO use */ DWORD dwReserved2; /* reserved for MMIO use */ HMMIO hmmio; /* handle to open file */ } MMIOINFO, *PMMIOINFO, NEAR *NPMMIOINFO, FAR *LPMMIOINFO; typedef const MMIOINFO FAR *LPCMMIOINFO; /* RIFF chunk information data structure */ typedef struct _MMCKINFO { FOURCC ckid; /* chunk ID */ DWORD cksize; /* chunk size */ FOURCC fccType; /* form type or list type */ DWORD dwDataOffset; /* offset of data portion of chunk */ DWORD dwFlags; /* flags used by MMIO functions */ } MMCKINFO, *PMMCKINFO, NEAR *NPMMCKINFO, FAR *LPMMCKINFO; typedef const MMCKINFO *LPCMMCKINFO; /* bit field masks */ #define MMIO_RWMODE 0x00000003 /* open file for reading/writing/both */ #define MMIO_SHAREMODE 0x00000070 /* file sharing mode number */ /* constants for dwFlags field of MMIOINFO */ #define MMIO_CREATE 0x00001000 /* create new file (or truncate file) */ #define MMIO_PARSE 0x00000100 /* parse new file returning path */ #define MMIO_DELETE 0x00000200 /* create new file (or truncate file) */ #define MMIO_EXIST 0x00004000 /* checks for existence of file */ #define MMIO_ALLOCBUF 0x00010000 /* mmioOpen() should allocate a buffer */ #define MMIO_GETTEMP 0x00020000 /* mmioOpen() should retrieve temp name */ #define MMIO_DIRTY 0x10000000 /* I/O buffer is dirty */ /* read/write mode numbers (bit field MMIO_RWMODE) */ #define MMIO_READ 0x00000000 /* open file for reading only */ #define MMIO_WRITE 0x00000001 /* open file for writing only */ #define MMIO_READWRITE 0x00000002 /* open file for reading and writing */ /* share mode numbers (bit field MMIO_SHAREMODE) */ #define MMIO_COMPAT 0x00000000 /* compatibility mode */ #define MMIO_EXCLUSIVE 0x00000010 /* exclusive-access mode */ #define MMIO_DENYWRITE 0x00000020 /* deny writing to other processes */ #define MMIO_DENYREAD 0x00000030 /* deny reading to other processes */ #define MMIO_DENYNONE 0x00000040 /* deny nothing to other processes */ /* various MMIO flags */ #define MMIO_FHOPEN 0x0010 /* mmioClose: keep file handle open */ #define MMIO_EMPTYBUF 0x0010 /* mmioFlush: empty the I/O buffer */ #define MMIO_TOUPPER 0x0010 /* mmioStringToFOURCC: to u-case */ #define MMIO_INSTALLPROC 0x00010000 /* mmioInstallIOProc: install MMIOProc */ #define MMIO_GLOBALPROC 0x10000000 /* mmioInstallIOProc: install globally */ #define MMIO_REMOVEPROC 0x00020000 /* mmioInstallIOProc: remove MMIOProc */ #define MMIO_UNICODEPROC 0x01000000 /* mmioInstallIOProc: Unicode MMIOProc */ #define MMIO_FINDPROC 0x00040000 /* mmioInstallIOProc: find an MMIOProc */ #define MMIO_FINDCHUNK 0x0010 /* mmioDescend: find a chunk by ID */ #define MMIO_FINDRIFF 0x0020 /* mmioDescend: find a LIST chunk */ #define MMIO_FINDLIST 0x0040 /* mmioDescend: find a RIFF chunk */ #define MMIO_CREATERIFF 0x0020 /* mmioCreateChunk: make a LIST chunk */ #define MMIO_CREATELIST 0x0040 /* mmioCreateChunk: make a RIFF chunk */ /* message numbers for MMIOPROC I/O procedure functions */ #define MMIOM_READ MMIO_READ /* read */ #define MMIOM_WRITE MMIO_WRITE /* write */ #define MMIOM_SEEK 2 /* seek to a new position in file */ #define MMIOM_OPEN 3 /* open file */ #define MMIOM_CLOSE 4 /* close file */ #define MMIOM_WRITEFLUSH 5 /* write and flush */ #if (WINVER >= 0x030a) #define MMIOM_RENAME 6 /* rename specified file */ #endif /* ifdef WINVER >= 0x030a */ #define MMIOM_USER 0x8000 /* beginning of user-defined messages */ /* standard four character codes */ #define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F') #define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T') /* four character codes used to identify standard built-in I/O procedures */ #define FOURCC_DOS mmioFOURCC('D', 'O', 'S', ' ') #define FOURCC_MEM mmioFOURCC('M', 'E', 'M', ' ') /* flags for mmioSeek() */ #ifndef SEEK_SET #define SEEK_SET 0 /* seek to an absolute position */ #define SEEK_CUR 1 /* seek relative to current position */ #define SEEK_END 2 /* seek relative to end of file */ #endif /* ifndef SEEK_SET */ /* other constants */ #define MMIO_DEFAULTBUFFER 8192 /* default buffer size */ /* MMIO macros */ #define mmioFOURCC(ch0, ch1, ch2, ch3) MAKEFOURCC(ch0, ch1, ch2, ch3) /* MMIO function prototypes */ #ifdef _WIN32 WINMMAPI FOURCC WINAPI mmioStringToFOURCCA( IN LPCSTR sz, IN UINT uFlags); WINMMAPI FOURCC WINAPI mmioStringToFOURCCW( IN LPCWSTR sz, IN UINT uFlags); #ifdef UNICODE #define mmioStringToFOURCC mmioStringToFOURCCW #else #define mmioStringToFOURCC mmioStringToFOURCCA #endif // !UNICODE WINMMAPI LPMMIOPROC WINAPI mmioInstallIOProcA( IN FOURCC fccIOProc, IN LPMMIOPROC pIOProc, IN DWORD dwFlags); WINMMAPI LPMMIOPROC WINAPI mmioInstallIOProcW( IN FOURCC fccIOProc, IN LPMMIOPROC pIOProc, IN DWORD dwFlags); #ifdef UNICODE #define mmioInstallIOProc mmioInstallIOProcW #else #define mmioInstallIOProc mmioInstallIOProcA #endif // !UNICODE WINMMAPI HMMIO WINAPI mmioOpenA( IN OUT LPSTR pszFileName, IN OUT LPMMIOINFO pmmioinfo, IN DWORD fdwOpen); WINMMAPI HMMIO WINAPI mmioOpenW( IN OUT LPWSTR pszFileName, IN OUT LPMMIOINFO pmmioinfo, IN DWORD fdwOpen); #ifdef UNICODE #define mmioOpen mmioOpenW #else #define mmioOpen mmioOpenA #endif // !UNICODE WINMMAPI MMRESULT WINAPI mmioRenameA( IN LPCSTR pszFileName, IN LPCSTR pszNewFileName, IN LPCMMIOINFO pmmioinfo, IN DWORD fdwRename); WINMMAPI MMRESULT WINAPI mmioRenameW( IN LPCWSTR pszFileName, IN LPCWSTR pszNewFileName, IN LPCMMIOINFO pmmioinfo, IN DWORD fdwRename); #ifdef UNICODE #define mmioRename mmioRenameW #else #define mmioRename mmioRenameA #endif // !UNICODE #else FOURCC WINAPI mmioStringToFOURCC( LPCSTR sz, UINT uFlags); LPMMIOPROC WINAPI mmioInstallIOProc( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags); HMMIO WINAPI mmioOpen(LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen); #if (WINVER >= 0x030a) MMRESULT WINAPI mmioRename( IN LPCSTR pszFileName, IN LPCSTR pszNewFileName, IN const MMIOINFO FAR* pmmioinfo, IN DWORD fdwRename); #endif /* ifdef WINVER >= 0x030a */ #endif WINMMAPI MMRESULT WINAPI mmioClose( IN HMMIO hmmio, IN UINT fuClose); WINMMAPI LONG WINAPI mmioRead( IN HMMIO hmmio, OUT HPSTR pch, IN LONG cch); WINMMAPI LONG WINAPI mmioWrite( IN HMMIO hmmio, IN const char _huge* pch, IN LONG cch); WINMMAPI LONG WINAPI mmioSeek( IN HMMIO hmmio, IN LONG lOffset, IN int iOrigin); WINMMAPI MMRESULT WINAPI mmioGetInfo( IN HMMIO hmmio, OUT LPMMIOINFO pmmioinfo, IN UINT fuInfo); WINMMAPI MMRESULT WINAPI mmioSetInfo( IN HMMIO hmmio, IN LPCMMIOINFO pmmioinfo, IN UINT fuInfo); WINMMAPI MMRESULT WINAPI mmioSetBuffer( IN HMMIO hmmio, IN LPSTR pchBuffer, IN LONG cchBuffer, IN UINT fuBuffer); WINMMAPI MMRESULT WINAPI mmioFlush( IN HMMIO hmmio, IN UINT fuFlush); WINMMAPI MMRESULT WINAPI mmioAdvance( IN HMMIO hmmio, IN OUT LPMMIOINFO pmmioinfo, IN UINT fuAdvance); WINMMAPI LRESULT WINAPI mmioSendMessage( IN HMMIO hmmio, IN UINT uMsg, IN LPARAM lParam1, IN LPARAM lParam2); WINMMAPI MMRESULT WINAPI mmioDescend( IN HMMIO hmmio, IN OUT LPMMCKINFO pmmcki, IN const MMCKINFO FAR* pmmckiParent, IN UINT fuDescend); WINMMAPI MMRESULT WINAPI mmioAscend( IN HMMIO hmmio, IN LPMMCKINFO pmmcki, IN UINT fuAscend); WINMMAPI MMRESULT WINAPI mmioCreateChunk(IN HMMIO hmmio, IN LPMMCKINFO pmmcki, IN UINT fuCreate); #endif /* ifndef MMNOMMIO */ #ifndef MMNOMCI /**************************************************************************** MCI support ****************************************************************************/ #ifndef _MCIERROR_ /* MCIERROR is defined in some post 3.1 apps */ #define _MCIERROR_ typedef DWORD MCIERROR; /* error return code, 0 means no error */ #endif #ifndef _MCIDEVICEID_ /* Same with MCIDEVICEID */ #define _MCIDEVICEID_ typedef UINT MCIDEVICEID; /* MCI device ID type */ #endif typedef UINT (CALLBACK *YIELDPROC)(MCIDEVICEID mciId, DWORD dwYieldData); /* MCI function prototypes */ #ifdef _WIN32 WINMMAPI MCIERROR WINAPI mciSendCommandA( IN MCIDEVICEID mciId, IN UINT uMsg, IN DWORD_PTR dwParam1, IN DWORD_PTR dwParam2); WINMMAPI MCIERROR WINAPI mciSendCommandW( IN MCIDEVICEID mciId, IN UINT uMsg, IN DWORD_PTR dwParam1, IN DWORD_PTR dwParam2); #ifdef UNICODE #define mciSendCommand mciSendCommandW #else #define mciSendCommand mciSendCommandA #endif // !UNICODE WINMMAPI MCIERROR WINAPI mciSendStringA( IN LPCSTR lpstrCommand, OUT LPSTR lpstrReturnString, IN UINT uReturnLength, IN HWND hwndCallback); WINMMAPI MCIERROR WINAPI mciSendStringW( IN LPCWSTR lpstrCommand, OUT LPWSTR lpstrReturnString, IN UINT uReturnLength, IN HWND hwndCallback); #ifdef UNICODE #define mciSendString mciSendStringW #else #define mciSendString mciSendStringA #endif // !UNICODE WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDA( IN LPCSTR pszDevice); WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDW( IN LPCWSTR pszDevice); #ifdef UNICODE #define mciGetDeviceID mciGetDeviceIDW #else #define mciGetDeviceID mciGetDeviceIDA #endif // !UNICODE WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDA( IN DWORD dwElementID, IN LPCSTR lpstrType ); WINMMAPI MCIDEVICEID WINAPI mciGetDeviceIDFromElementIDW( IN DWORD dwElementID, IN LPCWSTR lpstrType ); #ifdef UNICODE #define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDW #else #define mciGetDeviceIDFromElementID mciGetDeviceIDFromElementIDA #endif // !UNICODE WINMMAPI BOOL WINAPI mciGetErrorStringA( IN MCIERROR mcierr, OUT LPSTR pszText, IN UINT cchText); WINMMAPI BOOL WINAPI mciGetErrorStringW( IN MCIERROR mcierr, OUT LPWSTR pszText, IN UINT cchText); #ifdef UNICODE #define mciGetErrorString mciGetErrorStringW #else #define mciGetErrorString mciGetErrorStringA #endif // !UNICODE #else MCIERROR WINAPI mciSendCommand(MCIDEVICEID mciId, UINT uMsg, DWORD dwParam1, DWORD dwParam2); MCIERROR WINAPI mciSendString(LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback); MCIDEVICEID WINAPI mciGetDeviceID(LPCSTR pszDevice); BOOL WINAPI mciGetErrorString(MCIERROR mcierr, LPSTR pszText, UINT cchText); #endif WINMMAPI BOOL WINAPI mciSetYieldProc( IN MCIDEVICEID mciId, IN YIELDPROC fpYieldProc, IN DWORD dwYieldData); #if (WINVER >= 0x030a) WINMMAPI HTASK WINAPI mciGetCreatorTask( IN MCIDEVICEID mciId); WINMMAPI YIELDPROC WINAPI mciGetYieldProc( IN MCIDEVICEID mciId, IN LPDWORD pdwYieldData); #endif /* ifdef WINVER >= 0x030a */ #if (WINVER < 0x030a) WINMMAPI BOOL WINAPI mciExecute(LPCSTR pszCommand); #endif /* ifdef WINVER < 0x030a */ /* MCI error return values */ #define MCIERR_INVALID_DEVICE_ID (MCIERR_BASE + 1) #define MCIERR_UNRECOGNIZED_KEYWORD (MCIERR_BASE + 3) #define MCIERR_UNRECOGNIZED_COMMAND (MCIERR_BASE + 5) #define MCIERR_HARDWARE (MCIERR_BASE + 6) #define MCIERR_INVALID_DEVICE_NAME (MCIERR_BASE + 7) #define MCIERR_OUT_OF_MEMORY (MCIERR_BASE + 8) #define MCIERR_DEVICE_OPEN (MCIERR_BASE + 9) #define MCIERR_CANNOT_LOAD_DRIVER (MCIERR_BASE + 10) #define MCIERR_MISSING_COMMAND_STRING (MCIERR_BASE + 11) #define MCIERR_PARAM_OVERFLOW (MCIERR_BASE + 12) #define MCIERR_MISSING_STRING_ARGUMENT (MCIERR_BASE + 13) #define MCIERR_BAD_INTEGER (MCIERR_BASE + 14) #define MCIERR_PARSER_INTERNAL (MCIERR_BASE + 15) #define MCIERR_DRIVER_INTERNAL (MCIERR_BASE + 16) #define MCIERR_MISSING_PARAMETER (MCIERR_BASE + 17) #define MCIERR_UNSUPPORTED_FUNCTION (MCIERR_BASE + 18) #define MCIERR_FILE_NOT_FOUND (MCIERR_BASE + 19) #define MCIERR_DEVICE_NOT_READY (MCIERR_BASE + 20) #define MCIERR_INTERNAL (MCIERR_BASE + 21) #define MCIERR_DRIVER (MCIERR_BASE + 22) #define MCIERR_CANNOT_USE_ALL (MCIERR_BASE + 23) #define MCIERR_MULTIPLE (MCIERR_BASE + 24) #define MCIERR_EXTENSION_NOT_FOUND (MCIERR_BASE + 25) #define MCIERR_OUTOFRANGE (MCIERR_BASE + 26) #define MCIERR_FLAGS_NOT_COMPATIBLE (MCIERR_BASE + 28) #define MCIERR_FILE_NOT_SAVED (MCIERR_BASE + 30) #define MCIERR_DEVICE_TYPE_REQUIRED (MCIERR_BASE + 31) #define MCIERR_DEVICE_LOCKED (MCIERR_BASE + 32) #define MCIERR_DUPLICATE_ALIAS (MCIERR_BASE + 33) #define MCIERR_BAD_CONSTANT (MCIERR_BASE + 34) #define MCIERR_MUST_USE_SHAREABLE (MCIERR_BASE + 35) #define MCIERR_MISSING_DEVICE_NAME (MCIERR_BASE + 36) #define MCIERR_BAD_TIME_FORMAT (MCIERR_BASE + 37) #define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE + 38) #define MCIERR_DUPLICATE_FLAGS (MCIERR_BASE + 39) #define MCIERR_INVALID_FILE (MCIERR_BASE + 40) #define MCIERR_NULL_PARAMETER_BLOCK (MCIERR_BASE + 41) #define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE + 42) #define MCIERR_NEW_REQUIRES_ALIAS (MCIERR_BASE + 43) #define MCIERR_NOTIFY_ON_AUTO_OPEN (MCIERR_BASE + 44) #define MCIERR_NO_ELEMENT_ALLOWED (MCIERR_BASE + 45) #define MCIERR_NONAPPLICABLE_FUNCTION (MCIERR_BASE + 46) #define MCIERR_ILLEGAL_FOR_AUTO_OPEN (MCIERR_BASE + 47) #define MCIERR_FILENAME_REQUIRED (MCIERR_BASE + 48) #define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE + 49) #define MCIERR_DEVICE_NOT_INSTALLED (MCIERR_BASE + 50) #define MCIERR_GET_CD (MCIERR_BASE + 51) #define MCIERR_SET_CD (MCIERR_BASE + 52) #define MCIERR_SET_DRIVE (MCIERR_BASE + 53) #define MCIERR_DEVICE_LENGTH (MCIERR_BASE + 54) #define MCIERR_DEVICE_ORD_LENGTH (MCIERR_BASE + 55) #define MCIERR_NO_INTEGER (MCIERR_BASE + 56) #define MCIERR_WAVE_OUTPUTSINUSE (MCIERR_BASE + 64) #define MCIERR_WAVE_SETOUTPUTINUSE (MCIERR_BASE + 65) #define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE + 66) #define MCIERR_WAVE_SETINPUTINUSE (MCIERR_BASE + 67) #define MCIERR_WAVE_OUTPUTUNSPECIFIED (MCIERR_BASE + 68) #define MCIERR_WAVE_INPUTUNSPECIFIED (MCIERR_BASE + 69) #define MCIERR_WAVE_OUTPUTSUNSUITABLE (MCIERR_BASE + 70) #define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE + 71) #define MCIERR_WAVE_INPUTSUNSUITABLE (MCIERR_BASE + 72) #define MCIERR_WAVE_SETINPUTUNSUITABLE (MCIERR_BASE + 73) #define MCIERR_SEQ_DIV_INCOMPATIBLE (MCIERR_BASE + 80) #define MCIERR_SEQ_PORT_INUSE (MCIERR_BASE + 81) #define MCIERR_SEQ_PORT_NONEXISTENT (MCIERR_BASE + 82) #define MCIERR_SEQ_PORT_MAPNODEVICE (MCIERR_BASE + 83) #define MCIERR_SEQ_PORT_MISCERROR (MCIERR_BASE + 84) #define MCIERR_SEQ_TIMER (MCIERR_BASE + 85) #define MCIERR_SEQ_PORTUNSPECIFIED (MCIERR_BASE + 86) #define MCIERR_SEQ_NOMIDIPRESENT (MCIERR_BASE + 87) #define MCIERR_NO_WINDOW (MCIERR_BASE + 90) #define MCIERR_CREATEWINDOW (MCIERR_BASE + 91) #define MCIERR_FILE_READ (MCIERR_BASE + 92) #define MCIERR_FILE_WRITE (MCIERR_BASE + 93) #define MCIERR_NO_IDENTITY (MCIERR_BASE + 94) /* all custom device driver errors must be >= than this value */ #define MCIERR_CUSTOM_DRIVER_BASE (MCIERR_BASE + 256) #define MCI_FIRST DRV_MCI_FIRST /* 0x0800 */ /* MCI command message identifiers */ #define MCI_OPEN 0x0803 #define MCI_CLOSE 0x0804 #define MCI_ESCAPE 0x0805 #define MCI_PLAY 0x0806 #define MCI_SEEK 0x0807 #define MCI_STOP 0x0808 #define MCI_PAUSE 0x0809 #define MCI_INFO 0x080A #define MCI_GETDEVCAPS 0x080B #define MCI_SPIN 0x080C #define MCI_SET 0x080D #define MCI_STEP 0x080E #define MCI_RECORD 0x080F #define MCI_SYSINFO 0x0810 #define MCI_BREAK 0x0811 #define MCI_SAVE 0x0813 #define MCI_STATUS 0x0814 #define MCI_CUE 0x0830 #define MCI_REALIZE 0x0840 #define MCI_WINDOW 0x0841 #define MCI_PUT 0x0842 #define MCI_WHERE 0x0843 #define MCI_FREEZE 0x0844 #define MCI_UNFREEZE 0x0845 #define MCI_LOAD 0x0850 #define MCI_CUT 0x0851 #define MCI_COPY 0x0852 #define MCI_PASTE 0x0853 #define MCI_UPDATE 0x0854 #define MCI_RESUME 0x0855 #define MCI_DELETE 0x0856 /* all custom MCI command messages must be >= than this value */ #define MCI_USER_MESSAGES (DRV_MCI_FIRST + 0x400) #define MCI_LAST 0x0FFF /* device ID for "all devices" */ #define MCI_ALL_DEVICE_ID ((MCIDEVICEID)-1) /* constants for predefined MCI device types */ #define MCI_DEVTYPE_VCR 513 /* (MCI_STRING_OFFSET + 1) */ #define MCI_DEVTYPE_VIDEODISC 514 /* (MCI_STRING_OFFSET + 2) */ #define MCI_DEVTYPE_OVERLAY 515 /* (MCI_STRING_OFFSET + 3) */ #define MCI_DEVTYPE_CD_AUDIO 516 /* (MCI_STRING_OFFSET + 4) */ #define MCI_DEVTYPE_DAT 517 /* (MCI_STRING_OFFSET + 5) */ #define MCI_DEVTYPE_SCANNER 518 /* (MCI_STRING_OFFSET + 6) */ #define MCI_DEVTYPE_ANIMATION 519 /* (MCI_STRING_OFFSET + 7) */ #define MCI_DEVTYPE_DIGITAL_VIDEO 520 /* (MCI_STRING_OFFSET + 8) */ #define MCI_DEVTYPE_OTHER 521 /* (MCI_STRING_OFFSET + 9) */ #define MCI_DEVTYPE_WAVEFORM_AUDIO 522 /* (MCI_STRING_OFFSET + 10) */ #define MCI_DEVTYPE_SEQUENCER 523 /* (MCI_STRING_OFFSET + 11) */ #define MCI_DEVTYPE_FIRST MCI_DEVTYPE_VCR #define MCI_DEVTYPE_LAST MCI_DEVTYPE_SEQUENCER #define MCI_DEVTYPE_FIRST_USER 0x1000 /* return values for 'status mode' command */ #define MCI_MODE_NOT_READY (MCI_STRING_OFFSET + 12) #define MCI_MODE_STOP (MCI_STRING_OFFSET + 13) #define MCI_MODE_PLAY (MCI_STRING_OFFSET + 14) #define MCI_MODE_RECORD (MCI_STRING_OFFSET + 15) #define MCI_MODE_SEEK (MCI_STRING_OFFSET + 16) #define MCI_MODE_PAUSE (MCI_STRING_OFFSET + 17) #define MCI_MODE_OPEN (MCI_STRING_OFFSET + 18) /* constants used in 'set time format' and 'status time format' commands */ #define MCI_FORMAT_MILLISECONDS 0 #define MCI_FORMAT_HMS 1 #define MCI_FORMAT_MSF 2 #define MCI_FORMAT_FRAMES 3 #define MCI_FORMAT_SMPTE_24 4 #define MCI_FORMAT_SMPTE_25 5 #define MCI_FORMAT_SMPTE_30 6 #define MCI_FORMAT_SMPTE_30DROP 7 #define MCI_FORMAT_BYTES 8 #define MCI_FORMAT_SAMPLES 9 #define MCI_FORMAT_TMSF 10 /* MCI time format conversion macros */ #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))) /* flags for wParam of MM_MCINOTIFY message */ #define MCI_NOTIFY_SUCCESSFUL 0x0001 #define MCI_NOTIFY_SUPERSEDED 0x0002 #define MCI_NOTIFY_ABORTED 0x0004 #define MCI_NOTIFY_FAILURE 0x0008 /* common flags for dwFlags parameter of MCI command messages */ #define MCI_NOTIFY 0x00000001L #define MCI_WAIT 0x00000002L #define MCI_FROM 0x00000004L #define MCI_TO 0x00000008L #define MCI_TRACK 0x00000010L /* flags for dwFlags parameter of MCI_OPEN command message */ #define MCI_OPEN_SHAREABLE 0x00000100L #define MCI_OPEN_ELEMENT 0x00000200L #define MCI_OPEN_ALIAS 0x00000400L #define MCI_OPEN_ELEMENT_ID 0x00000800L #define MCI_OPEN_TYPE_ID 0x00001000L #define MCI_OPEN_TYPE 0x00002000L /* flags for dwFlags parameter of MCI_SEEK command message */ #define MCI_SEEK_TO_START 0x00000100L #define MCI_SEEK_TO_END 0x00000200L /* flags for dwFlags parameter of MCI_STATUS command message */ #define MCI_STATUS_ITEM 0x00000100L #define MCI_STATUS_START 0x00000200L /* flags for dwItem field of the MCI_STATUS_PARMS parameter block */ #define MCI_STATUS_LENGTH 0x00000001L #define MCI_STATUS_POSITION 0x00000002L #define MCI_STATUS_NUMBER_OF_TRACKS 0x00000003L #define MCI_STATUS_MODE 0x00000004L #define MCI_STATUS_MEDIA_PRESENT 0x00000005L #define MCI_STATUS_TIME_FORMAT 0x00000006L #define MCI_STATUS_READY 0x00000007L #define MCI_STATUS_CURRENT_TRACK 0x00000008L /* flags for dwFlags parameter of MCI_INFO command message */ #define MCI_INFO_PRODUCT 0x00000100L #define MCI_INFO_FILE 0x00000200L #define MCI_INFO_MEDIA_UPC 0x00000400L #define MCI_INFO_MEDIA_IDENTITY 0x00000800L #define MCI_INFO_NAME 0x00001000L #define MCI_INFO_COPYRIGHT 0x00002000L /* flags for dwFlags parameter of MCI_GETDEVCAPS command message */ #define MCI_GETDEVCAPS_ITEM 0x00000100L /* flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block */ #define MCI_GETDEVCAPS_CAN_RECORD 0x00000001L #define MCI_GETDEVCAPS_HAS_AUDIO 0x00000002L #define MCI_GETDEVCAPS_HAS_VIDEO 0x00000003L #define MCI_GETDEVCAPS_DEVICE_TYPE 0x00000004L #define MCI_GETDEVCAPS_USES_FILES 0x00000005L #define MCI_GETDEVCAPS_COMPOUND_DEVICE 0x00000006L #define MCI_GETDEVCAPS_CAN_EJECT 0x00000007L #define MCI_GETDEVCAPS_CAN_PLAY 0x00000008L #define MCI_GETDEVCAPS_CAN_SAVE 0x00000009L /* flags for dwFlags parameter of MCI_SYSINFO command message */ #define MCI_SYSINFO_QUANTITY 0x00000100L #define MCI_SYSINFO_OPEN 0x00000200L #define MCI_SYSINFO_NAME 0x00000400L #define MCI_SYSINFO_INSTALLNAME 0x00000800L /* flags for dwFlags parameter of MCI_SET command message */ #define MCI_SET_DOOR_OPEN 0x00000100L #define MCI_SET_DOOR_CLOSED 0x00000200L #define MCI_SET_TIME_FORMAT 0x00000400L #define MCI_SET_AUDIO 0x00000800L #define MCI_SET_VIDEO 0x00001000L #define MCI_SET_ON 0x00002000L #define MCI_SET_OFF 0x00004000L /* flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS */ #define MCI_SET_AUDIO_ALL 0x00000000L #define MCI_SET_AUDIO_LEFT 0x00000001L #define MCI_SET_AUDIO_RIGHT 0x00000002L /* flags for dwFlags parameter of MCI_BREAK command message */ #define MCI_BREAK_KEY 0x00000100L #define MCI_BREAK_HWND 0x00000200L #define MCI_BREAK_OFF 0x00000400L /* flags for dwFlags parameter of MCI_RECORD command message */ #define MCI_RECORD_INSERT 0x00000100L #define MCI_RECORD_OVERWRITE 0x00000200L /* flags for dwFlags parameter of MCI_SAVE command message */ #define MCI_SAVE_FILE 0x00000100L /* flags for dwFlags parameter of MCI_LOAD command message */ #define MCI_LOAD_FILE 0x00000100L /* generic parameter block for MCI command messages with no special parameters */ typedef struct tagMCI_GENERIC_PARMS { DWORD_PTR dwCallback; } MCI_GENERIC_PARMS, *PMCI_GENERIC_PARMS, FAR *LPMCI_GENERIC_PARMS; /* parameter block for MCI_OPEN command message */ #ifdef _WIN32 typedef struct tagMCI_OPEN_PARMSA { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; } MCI_OPEN_PARMSA, *PMCI_OPEN_PARMSA, *LPMCI_OPEN_PARMSA; typedef struct tagMCI_OPEN_PARMSW { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; } MCI_OPEN_PARMSW, *PMCI_OPEN_PARMSW, *LPMCI_OPEN_PARMSW; #ifdef UNICODE typedef MCI_OPEN_PARMSW MCI_OPEN_PARMS; typedef PMCI_OPEN_PARMSW PMCI_OPEN_PARMS; typedef LPMCI_OPEN_PARMSW LPMCI_OPEN_PARMS; #else typedef MCI_OPEN_PARMSA MCI_OPEN_PARMS; typedef PMCI_OPEN_PARMSA PMCI_OPEN_PARMS; typedef LPMCI_OPEN_PARMSA LPMCI_OPEN_PARMS; #endif // UNICODE #else typedef struct tagMCI_OPEN_PARMS { DWORD dwCallback; MCIDEVICEID wDeviceID; WORD wReserved0; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; } MCI_OPEN_PARMS, FAR *LPMCI_OPEN_PARMS; #endif /* parameter block for MCI_PLAY command message */ typedef struct tagMCI_PLAY_PARMS { DWORD_PTR dwCallback; DWORD dwFrom; DWORD dwTo; } MCI_PLAY_PARMS, *PMCI_PLAY_PARMS, FAR *LPMCI_PLAY_PARMS; /* parameter block for MCI_SEEK command message */ typedef struct tagMCI_SEEK_PARMS { DWORD_PTR dwCallback; DWORD dwTo; } MCI_SEEK_PARMS, *PMCI_SEEK_PARMS, FAR *LPMCI_SEEK_PARMS; /* parameter block for MCI_STATUS command message */ typedef struct tagMCI_STATUS_PARMS { DWORD_PTR dwCallback; DWORD_PTR dwReturn; DWORD dwItem; DWORD dwTrack; } MCI_STATUS_PARMS, *PMCI_STATUS_PARMS, FAR * LPMCI_STATUS_PARMS; /* parameter block for MCI_INFO command message */ #ifdef _WIN32 typedef struct tagMCI_INFO_PARMSA { DWORD_PTR dwCallback; LPSTR lpstrReturn; DWORD dwRetSize; } MCI_INFO_PARMSA, * LPMCI_INFO_PARMSA; typedef struct tagMCI_INFO_PARMSW { DWORD_PTR dwCallback; LPWSTR lpstrReturn; DWORD dwRetSize; } MCI_INFO_PARMSW, * LPMCI_INFO_PARMSW; #ifdef UNICODE typedef MCI_INFO_PARMSW MCI_INFO_PARMS; typedef LPMCI_INFO_PARMSW LPMCI_INFO_PARMS; #else typedef MCI_INFO_PARMSA MCI_INFO_PARMS; typedef LPMCI_INFO_PARMSA LPMCI_INFO_PARMS; #endif // UNICODE #else typedef struct tagMCI_INFO_PARMS { DWORD dwCallback; LPSTR lpstrReturn; DWORD dwRetSize; } MCI_INFO_PARMS, FAR * LPMCI_INFO_PARMS; #endif /* parameter block for MCI_GETDEVCAPS command message */ typedef struct tagMCI_GETDEVCAPS_PARMS { DWORD_PTR dwCallback; DWORD dwReturn; DWORD dwItem; } MCI_GETDEVCAPS_PARMS, *PMCI_GETDEVCAPS_PARMS, FAR * LPMCI_GETDEVCAPS_PARMS; /* parameter block for MCI_SYSINFO command message */ #ifdef _WIN32 typedef struct tagMCI_SYSINFO_PARMSA { DWORD_PTR dwCallback; LPSTR lpstrReturn; DWORD dwRetSize; DWORD dwNumber; UINT wDeviceType; } MCI_SYSINFO_PARMSA, *PMCI_SYSINFO_PARMSA, * LPMCI_SYSINFO_PARMSA; typedef struct tagMCI_SYSINFO_PARMSW { DWORD_PTR dwCallback; LPWSTR lpstrReturn; DWORD dwRetSize; DWORD dwNumber; UINT wDeviceType; } MCI_SYSINFO_PARMSW, *PMCI_SYSINFO_PARMSW, * LPMCI_SYSINFO_PARMSW; #ifdef UNICODE typedef MCI_SYSINFO_PARMSW MCI_SYSINFO_PARMS; typedef PMCI_SYSINFO_PARMSW PMCI_SYSINFO_PARMS; typedef LPMCI_SYSINFO_PARMSW LPMCI_SYSINFO_PARMS; #else typedef MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMS; typedef PMCI_SYSINFO_PARMSA PMCI_SYSINFO_PARMS; typedef LPMCI_SYSINFO_PARMSA LPMCI_SYSINFO_PARMS; #endif // UNICODE #else typedef struct tagMCI_SYSINFO_PARMS { DWORD dwCallback; LPSTR lpstrReturn; DWORD dwRetSize; DWORD dwNumber; WORD wDeviceType; WORD wReserved0; } MCI_SYSINFO_PARMS, FAR * LPMCI_SYSINFO_PARMS; #endif /* parameter block for MCI_SET command message */ typedef struct tagMCI_SET_PARMS { DWORD_PTR dwCallback; DWORD dwTimeFormat; DWORD dwAudio; } MCI_SET_PARMS, *PMCI_SET_PARMS, FAR *LPMCI_SET_PARMS; /* parameter block for MCI_BREAK command message */ typedef struct tagMCI_BREAK_PARMS { DWORD_PTR dwCallback; #ifdef _WIN32 int nVirtKey; HWND hwndBreak; #else short nVirtKey; WORD wReserved0; /* padding for Win 16 */ HWND hwndBreak; WORD wReserved1; /* padding for Win 16 */ #endif } MCI_BREAK_PARMS, *PMCI_BREAK_PARMS, FAR * LPMCI_BREAK_PARMS; /* parameter block for MCI_SAVE command message */ #ifdef _WIN32 typedef struct tagMCI_SAVE_PARMSA { DWORD_PTR dwCallback; LPCSTR lpfilename; } MCI_SAVE_PARMSA, *PMCI_SAVE_PARMSA, * LPMCI_SAVE_PARMSA; typedef struct tagMCI_SAVE_PARMSW { DWORD_PTR dwCallback; LPCWSTR lpfilename; } MCI_SAVE_PARMSW, *PMCI_SAVE_PARMSW, * LPMCI_SAVE_PARMSW; #ifdef UNICODE typedef MCI_SAVE_PARMSW MCI_SAVE_PARMS; typedef PMCI_SAVE_PARMSW PMCI_SAVE_PARMS; typedef LPMCI_SAVE_PARMSW LPMCI_SAVE_PARMS; #else typedef MCI_SAVE_PARMSA MCI_SAVE_PARMS; typedef PMCI_SAVE_PARMSA PMCI_SAVE_PARMS; typedef LPMCI_SAVE_PARMSA LPMCI_SAVE_PARMS; #endif // UNICODE #else typedef struct tagMCI_SAVE_PARMS { DWORD_PTR dwCallback; LPCSTR lpfilename; } MCI_SAVE_PARMS, FAR * LPMCI_SAVE_PARMS; #endif /* parameter block for MCI_LOAD command message */ #ifdef _WIN32 typedef struct tagMCI_LOAD_PARMSA { DWORD_PTR dwCallback; LPCSTR lpfilename; } MCI_LOAD_PARMSA, *PMCI_LOAD_PARMSA, * LPMCI_LOAD_PARMSA; typedef struct tagMCI_LOAD_PARMSW { DWORD_PTR dwCallback; LPCWSTR lpfilename; } MCI_LOAD_PARMSW, *PMCI_LOAD_PARMSW, * LPMCI_LOAD_PARMSW; #ifdef UNICODE typedef MCI_LOAD_PARMSW MCI_LOAD_PARMS; typedef PMCI_LOAD_PARMSW PMCI_LOAD_PARMS; typedef LPMCI_LOAD_PARMSW LPMCI_LOAD_PARMS; #else typedef MCI_LOAD_PARMSA MCI_LOAD_PARMS; typedef PMCI_LOAD_PARMSA PMCI_LOAD_PARMS; typedef LPMCI_LOAD_PARMSA LPMCI_LOAD_PARMS; #endif // UNICODE #else typedef struct tagMCI_LOAD_PARMS { DWORD dwCallback; LPCSTR lpfilename; } MCI_LOAD_PARMS, FAR * LPMCI_LOAD_PARMS; #endif /* parameter block for MCI_RECORD command message */ typedef struct tagMCI_RECORD_PARMS { DWORD_PTR dwCallback; DWORD dwFrom; DWORD dwTo; } MCI_RECORD_PARMS, FAR *LPMCI_RECORD_PARMS; /* MCI extensions for videodisc devices */ /* flag for dwReturn field of MCI_STATUS_PARMS */ /* MCI_STATUS command, (dwItem == MCI_STATUS_MODE) */ #define MCI_VD_MODE_PARK (MCI_VD_OFFSET + 1) /* flag for dwReturn field of MCI_STATUS_PARMS */ /* MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE) */ #define MCI_VD_MEDIA_CLV (MCI_VD_OFFSET + 2) #define MCI_VD_MEDIA_CAV (MCI_VD_OFFSET + 3) #define MCI_VD_MEDIA_OTHER (MCI_VD_OFFSET + 4) #define MCI_VD_FORMAT_TRACK 0x4001 /* flags for dwFlags parameter of MCI_PLAY command message */ #define MCI_VD_PLAY_REVERSE 0x00010000L #define MCI_VD_PLAY_FAST 0x00020000L #define MCI_VD_PLAY_SPEED 0x00040000L #define MCI_VD_PLAY_SCAN 0x00080000L #define MCI_VD_PLAY_SLOW 0x00100000L /* flag for dwFlags parameter of MCI_SEEK command message */ #define MCI_VD_SEEK_REVERSE 0x00010000L /* flags for dwItem field of MCI_STATUS_PARMS parameter block */ #define MCI_VD_STATUS_SPEED 0x00004002L #define MCI_VD_STATUS_FORWARD 0x00004003L #define MCI_VD_STATUS_MEDIA_TYPE 0x00004004L #define MCI_VD_STATUS_SIDE 0x00004005L #define MCI_VD_STATUS_DISC_SIZE 0x00004006L /* flags for dwFlags parameter of MCI_GETDEVCAPS command message */ #define MCI_VD_GETDEVCAPS_CLV 0x00010000L #define MCI_VD_GETDEVCAPS_CAV 0x00020000L #define MCI_VD_SPIN_UP 0x00010000L #define MCI_VD_SPIN_DOWN 0x00020000L /* flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block */ #define MCI_VD_GETDEVCAPS_CAN_REVERSE 0x00004002L #define MCI_VD_GETDEVCAPS_FAST_RATE 0x00004003L #define MCI_VD_GETDEVCAPS_SLOW_RATE 0x00004004L #define MCI_VD_GETDEVCAPS_NORMAL_RATE 0x00004005L /* flags for the dwFlags parameter of MCI_STEP command message */ #define MCI_VD_STEP_FRAMES 0x00010000L #define MCI_VD_STEP_REVERSE 0x00020000L /* flag for the MCI_ESCAPE command message */ #define MCI_VD_ESCAPE_STRING 0x00000100L /* parameter block for MCI_PLAY command message */ typedef struct tagMCI_VD_PLAY_PARMS { DWORD_PTR dwCallback; DWORD dwFrom; DWORD dwTo; DWORD dwSpeed; } MCI_VD_PLAY_PARMS, *PMCI_VD_PLAY_PARMS, FAR *LPMCI_VD_PLAY_PARMS; /* parameter block for MCI_STEP command message */ typedef struct tagMCI_VD_STEP_PARMS { DWORD_PTR dwCallback; DWORD dwFrames; } MCI_VD_STEP_PARMS, *PMCI_VD_STEP_PARMS, FAR *LPMCI_VD_STEP_PARMS; /* parameter block for MCI_ESCAPE command message */ #ifdef _WIN32 typedef struct tagMCI_VD_ESCAPE_PARMSA { DWORD_PTR dwCallback; LPCSTR lpstrCommand; } MCI_VD_ESCAPE_PARMSA, *PMCI_VD_ESCAPE_PARMSA, *LPMCI_VD_ESCAPE_PARMSA; typedef struct tagMCI_VD_ESCAPE_PARMSW { DWORD_PTR dwCallback; LPCWSTR lpstrCommand; } MCI_VD_ESCAPE_PARMSW, *PMCI_VD_ESCAPE_PARMSW, *LPMCI_VD_ESCAPE_PARMSW; #ifdef UNICODE typedef MCI_VD_ESCAPE_PARMSW MCI_VD_ESCAPE_PARMS; typedef PMCI_VD_ESCAPE_PARMSW PMCI_VD_ESCAPE_PARMS; typedef LPMCI_VD_ESCAPE_PARMSW LPMCI_VD_ESCAPE_PARMS; #else typedef MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMS; typedef PMCI_VD_ESCAPE_PARMSA PMCI_VD_ESCAPE_PARMS; typedef LPMCI_VD_ESCAPE_PARMSA LPMCI_VD_ESCAPE_PARMS; #endif // UNICODE #else typedef struct tagMCI_VD_ESCAPE_PARMS { DWORD dwCallback; LPCSTR lpstrCommand; } MCI_VD_ESCAPE_PARMS, FAR *LPMCI_VD_ESCAPE_PARMS; #endif /* MCI extensions for CD audio devices */ /* flags for the dwItem field of the MCI_STATUS_PARMS parameter block */ #define MCI_CDA_STATUS_TYPE_TRACK 0x00004001L /* flags for the dwReturn field of MCI_STATUS_PARMS parameter block */ /* MCI_STATUS command, (dwItem == MCI_CDA_STATUS_TYPE_TRACK) */ #define MCI_CDA_TRACK_AUDIO (MCI_CD_OFFSET + 0) #define MCI_CDA_TRACK_OTHER (MCI_CD_OFFSET + 1) /* MCI extensions for waveform audio devices */ #define MCI_WAVE_PCM (MCI_WAVE_OFFSET + 0) #define MCI_WAVE_MAPPER (MCI_WAVE_OFFSET + 1) /* flags for the dwFlags parameter of MCI_OPEN command message */ #define MCI_WAVE_OPEN_BUFFER 0x00010000L /* flags for the dwFlags parameter of MCI_SET command message */ #define MCI_WAVE_SET_FORMATTAG 0x00010000L #define MCI_WAVE_SET_CHANNELS 0x00020000L #define MCI_WAVE_SET_SAMPLESPERSEC 0x00040000L #define MCI_WAVE_SET_AVGBYTESPERSEC 0x00080000L #define MCI_WAVE_SET_BLOCKALIGN 0x00100000L #define MCI_WAVE_SET_BITSPERSAMPLE 0x00200000L /* flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages */ #define MCI_WAVE_INPUT 0x00400000L #define MCI_WAVE_OUTPUT 0x00800000L /* flags for the dwItem field of MCI_STATUS_PARMS parameter block */ #define MCI_WAVE_STATUS_FORMATTAG 0x00004001L #define MCI_WAVE_STATUS_CHANNELS 0x00004002L #define MCI_WAVE_STATUS_SAMPLESPERSEC 0x00004003L #define MCI_WAVE_STATUS_AVGBYTESPERSEC 0x00004004L #define MCI_WAVE_STATUS_BLOCKALIGN 0x00004005L #define MCI_WAVE_STATUS_BITSPERSAMPLE 0x00004006L #define MCI_WAVE_STATUS_LEVEL 0x00004007L /* flags for the dwFlags parameter of MCI_SET command message */ #define MCI_WAVE_SET_ANYINPUT 0x04000000L #define MCI_WAVE_SET_ANYOUTPUT 0x08000000L /* flags for the dwFlags parameter of MCI_GETDEVCAPS command message */ #define MCI_WAVE_GETDEVCAPS_INPUTS 0x00004001L #define MCI_WAVE_GETDEVCAPS_OUTPUTS 0x00004002L /* parameter block for MCI_OPEN command message */ #ifdef _WIN32 typedef struct tagMCI_WAVE_OPEN_PARMSA { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; DWORD dwBufferSeconds; } MCI_WAVE_OPEN_PARMSA, *PMCI_WAVE_OPEN_PARMSA, *LPMCI_WAVE_OPEN_PARMSA; typedef struct tagMCI_WAVE_OPEN_PARMSW { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; DWORD dwBufferSeconds; } MCI_WAVE_OPEN_PARMSW, *PMCI_WAVE_OPEN_PARMSW, *LPMCI_WAVE_OPEN_PARMSW; #ifdef UNICODE typedef MCI_WAVE_OPEN_PARMSW MCI_WAVE_OPEN_PARMS; typedef PMCI_WAVE_OPEN_PARMSW PMCI_WAVE_OPEN_PARMS; typedef LPMCI_WAVE_OPEN_PARMSW LPMCI_WAVE_OPEN_PARMS; #else typedef MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMS; typedef PMCI_WAVE_OPEN_PARMSA PMCI_WAVE_OPEN_PARMS; typedef LPMCI_WAVE_OPEN_PARMSA LPMCI_WAVE_OPEN_PARMS; #endif // UNICODE #else typedef struct tagMCI_WAVE_OPEN_PARMS { DWORD dwCallback; MCIDEVICEID wDeviceID; WORD wReserved0; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; DWORD dwBufferSeconds; } MCI_WAVE_OPEN_PARMS, FAR *LPMCI_WAVE_OPEN_PARMS; #endif /* parameter block for MCI_DELETE command message */ typedef struct tagMCI_WAVE_DELETE_PARMS { DWORD_PTR dwCallback; DWORD dwFrom; DWORD dwTo; } MCI_WAVE_DELETE_PARMS, *PMCI_WAVE_DELETE_PARMS, FAR *LPMCI_WAVE_DELETE_PARMS; /* parameter block for MCI_SET command message */ typedef struct tagMCI_WAVE_SET_PARMS { DWORD_PTR dwCallback; DWORD dwTimeFormat; DWORD dwAudio; #ifdef _WIN32 UINT wInput; UINT wOutput; #else WORD wInput; WORD wReserved0; WORD wOutput; WORD wReserved1; #endif WORD wFormatTag; WORD wReserved2; WORD nChannels; WORD wReserved3; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wReserved4; WORD wBitsPerSample; WORD wReserved5; } MCI_WAVE_SET_PARMS, *PMCI_WAVE_SET_PARMS, FAR * LPMCI_WAVE_SET_PARMS; /* MCI extensions for MIDI sequencer devices */ /* flags for the dwReturn field of MCI_STATUS_PARMS parameter block */ /* MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE) */ #define MCI_SEQ_DIV_PPQN (0 + MCI_SEQ_OFFSET) #define MCI_SEQ_DIV_SMPTE_24 (1 + MCI_SEQ_OFFSET) #define MCI_SEQ_DIV_SMPTE_25 (2 + MCI_SEQ_OFFSET) #define MCI_SEQ_DIV_SMPTE_30DROP (3 + MCI_SEQ_OFFSET) #define MCI_SEQ_DIV_SMPTE_30 (4 + MCI_SEQ_OFFSET) /* flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block */ /* MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER) */ #define MCI_SEQ_FORMAT_SONGPTR 0x4001 #define MCI_SEQ_FILE 0x4002 #define MCI_SEQ_MIDI 0x4003 #define MCI_SEQ_SMPTE 0x4004 #define MCI_SEQ_NONE 65533 #define MCI_SEQ_MAPPER 65535 /* flags for the dwItem field of MCI_STATUS_PARMS parameter block */ #define MCI_SEQ_STATUS_TEMPO 0x00004002L #define MCI_SEQ_STATUS_PORT 0x00004003L #define MCI_SEQ_STATUS_SLAVE 0x00004007L #define MCI_SEQ_STATUS_MASTER 0x00004008L #define MCI_SEQ_STATUS_OFFSET 0x00004009L #define MCI_SEQ_STATUS_DIVTYPE 0x0000400AL #define MCI_SEQ_STATUS_NAME 0x0000400BL #define MCI_SEQ_STATUS_COPYRIGHT 0x0000400CL /* flags for the dwFlags parameter of MCI_SET command message */ #define MCI_SEQ_SET_TEMPO 0x00010000L #define MCI_SEQ_SET_PORT 0x00020000L #define MCI_SEQ_SET_SLAVE 0x00040000L #define MCI_SEQ_SET_MASTER 0x00080000L #define MCI_SEQ_SET_OFFSET 0x01000000L /* parameter block for MCI_SET command message */ typedef struct tagMCI_SEQ_SET_PARMS { DWORD_PTR dwCallback; DWORD dwTimeFormat; DWORD dwAudio; DWORD dwTempo; DWORD dwPort; DWORD dwSlave; DWORD dwMaster; DWORD dwOffset; } MCI_SEQ_SET_PARMS, *PMCI_SEQ_SET_PARMS, FAR * LPMCI_SEQ_SET_PARMS; /* MCI extensions for animation devices */ /* flags for dwFlags parameter of MCI_OPEN command message */ #define MCI_ANIM_OPEN_WS 0x00010000L #define MCI_ANIM_OPEN_PARENT 0x00020000L #define MCI_ANIM_OPEN_NOSTATIC 0x00040000L /* flags for dwFlags parameter of MCI_PLAY command message */ #define MCI_ANIM_PLAY_SPEED 0x00010000L #define MCI_ANIM_PLAY_REVERSE 0x00020000L #define MCI_ANIM_PLAY_FAST 0x00040000L #define MCI_ANIM_PLAY_SLOW 0x00080000L #define MCI_ANIM_PLAY_SCAN 0x00100000L /* flags for dwFlags parameter of MCI_STEP command message */ #define MCI_ANIM_STEP_REVERSE 0x00010000L #define MCI_ANIM_STEP_FRAMES 0x00020000L /* flags for dwItem field of MCI_STATUS_PARMS parameter block */ #define MCI_ANIM_STATUS_SPEED 0x00004001L #define MCI_ANIM_STATUS_FORWARD 0x00004002L #define MCI_ANIM_STATUS_HWND 0x00004003L #define MCI_ANIM_STATUS_HPAL 0x00004004L #define MCI_ANIM_STATUS_STRETCH 0x00004005L /* flags for the dwFlags parameter of MCI_INFO command message */ #define MCI_ANIM_INFO_TEXT 0x00010000L /* flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block */ #define MCI_ANIM_GETDEVCAPS_CAN_REVERSE 0x00004001L #define MCI_ANIM_GETDEVCAPS_FAST_RATE 0x00004002L #define MCI_ANIM_GETDEVCAPS_SLOW_RATE 0x00004003L #define MCI_ANIM_GETDEVCAPS_NORMAL_RATE 0x00004004L #define MCI_ANIM_GETDEVCAPS_PALETTES 0x00004006L #define MCI_ANIM_GETDEVCAPS_CAN_STRETCH 0x00004007L #define MCI_ANIM_GETDEVCAPS_MAX_WINDOWS 0x00004008L /* flags for the MCI_REALIZE command message */ #define MCI_ANIM_REALIZE_NORM 0x00010000L #define MCI_ANIM_REALIZE_BKGD 0x00020000L /* flags for dwFlags parameter of MCI_WINDOW command message */ #define MCI_ANIM_WINDOW_HWND 0x00010000L #define MCI_ANIM_WINDOW_STATE 0x00040000L #define MCI_ANIM_WINDOW_TEXT 0x00080000L #define MCI_ANIM_WINDOW_ENABLE_STRETCH 0x00100000L #define MCI_ANIM_WINDOW_DISABLE_STRETCH 0x00200000L /* flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block */ /* MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND) */ #define MCI_ANIM_WINDOW_DEFAULT 0x00000000L /* flags for dwFlags parameter of MCI_PUT command message */ #define MCI_ANIM_RECT 0x00010000L #define MCI_ANIM_PUT_SOURCE 0x00020000L #define MCI_ANIM_PUT_DESTINATION 0x00040000L /* flags for dwFlags parameter of MCI_WHERE command message */ #define MCI_ANIM_WHERE_SOURCE 0x00020000L #define MCI_ANIM_WHERE_DESTINATION 0x00040000L /* flags for dwFlags parameter of MCI_UPDATE command message */ #define MCI_ANIM_UPDATE_HDC 0x00020000L /* parameter block for MCI_OPEN command message */ #ifdef _WIN32 typedef struct tagMCI_ANIM_OPEN_PARMSA { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_ANIM_OPEN_PARMSA, *PMCI_ANIM_OPEN_PARMSA, *LPMCI_ANIM_OPEN_PARMSA; typedef struct tagMCI_ANIM_OPEN_PARMSW { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_ANIM_OPEN_PARMSW, *PMCI_ANIM_OPEN_PARMSW, *LPMCI_ANIM_OPEN_PARMSW; #ifdef UNICODE typedef MCI_ANIM_OPEN_PARMSW MCI_ANIM_OPEN_PARMS; typedef PMCI_ANIM_OPEN_PARMSW PMCI_ANIM_OPEN_PARMS; typedef LPMCI_ANIM_OPEN_PARMSW LPMCI_ANIM_OPEN_PARMS; #else typedef MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMS; typedef PMCI_ANIM_OPEN_PARMSA PMCI_ANIM_OPEN_PARMS; typedef LPMCI_ANIM_OPEN_PARMSA LPMCI_ANIM_OPEN_PARMS; #endif // UNICODE #else typedef struct tagMCI_ANIM_OPEN_PARMS { DWORD dwCallback; MCIDEVICEID wDeviceID; WORD wReserved0; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; WORD wReserved1; } MCI_ANIM_OPEN_PARMS, FAR *LPMCI_ANIM_OPEN_PARMS; #endif /* parameter block for MCI_PLAY command message */ typedef struct tagMCI_ANIM_PLAY_PARMS { DWORD_PTR dwCallback; DWORD dwFrom; DWORD dwTo; DWORD dwSpeed; } MCI_ANIM_PLAY_PARMS, *PMCI_ANIM_PLAY_PARMS, FAR *LPMCI_ANIM_PLAY_PARMS; /* parameter block for MCI_STEP command message */ typedef struct tagMCI_ANIM_STEP_PARMS { DWORD_PTR dwCallback; DWORD dwFrames; } MCI_ANIM_STEP_PARMS, *PMCI_ANIM_STEP_PARMS, FAR *LPMCI_ANIM_STEP_PARMS; /* parameter block for MCI_WINDOW command message */ #ifdef _WIN32 typedef struct tagMCI_ANIM_WINDOW_PARMSA { DWORD_PTR dwCallback; HWND hWnd; UINT nCmdShow; LPCSTR lpstrText; } MCI_ANIM_WINDOW_PARMSA, *PMCI_ANIM_WINDOW_PARMSA, * LPMCI_ANIM_WINDOW_PARMSA; typedef struct tagMCI_ANIM_WINDOW_PARMSW { DWORD_PTR dwCallback; HWND hWnd; UINT nCmdShow; LPCWSTR lpstrText; } MCI_ANIM_WINDOW_PARMSW, *PMCI_ANIM_WINDOW_PARMSW, * LPMCI_ANIM_WINDOW_PARMSW; #ifdef UNICODE typedef MCI_ANIM_WINDOW_PARMSW MCI_ANIM_WINDOW_PARMS; typedef PMCI_ANIM_WINDOW_PARMSW PMCI_ANIM_WINDOW_PARMS; typedef LPMCI_ANIM_WINDOW_PARMSW LPMCI_ANIM_WINDOW_PARMS; #else typedef MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMS; typedef PMCI_ANIM_WINDOW_PARMSA PMCI_ANIM_WINDOW_PARMS; typedef LPMCI_ANIM_WINDOW_PARMSA LPMCI_ANIM_WINDOW_PARMS; #endif // UNICODE #else typedef struct tagMCI_ANIM_WINDOW_PARMS { DWORD dwCallback; HWND hWnd; WORD wReserved1; WORD nCmdShow; WORD wReserved2; LPCSTR lpstrText; } MCI_ANIM_WINDOW_PARMS, FAR * LPMCI_ANIM_WINDOW_PARMS; #endif /* parameter block for MCI_PUT, MCI_UPDATE, MCI_WHERE command messages */ typedef struct tagMCI_ANIM_RECT_PARMS { DWORD_PTR dwCallback; #ifdef MCI_USE_OFFEXT POINT ptOffset; POINT ptExtent; #else /* ifdef MCI_USE_OFFEXT */ RECT rc; #endif /* ifdef MCI_USE_OFFEXT */ } MCI_ANIM_RECT_PARMS; typedef MCI_ANIM_RECT_PARMS * PMCI_ANIM_RECT_PARMS; typedef MCI_ANIM_RECT_PARMS FAR * LPMCI_ANIM_RECT_PARMS; /* parameter block for MCI_UPDATE PARMS */ typedef struct tagMCI_ANIM_UPDATE_PARMS { DWORD_PTR dwCallback; RECT rc; HDC hDC; } MCI_ANIM_UPDATE_PARMS, *PMCI_ANIM_UPDATE_PARMS, FAR * LPMCI_ANIM_UPDATE_PARMS; /* MCI extensions for video overlay devices */ /* flags for dwFlags parameter of MCI_OPEN command message */ #define MCI_OVLY_OPEN_WS 0x00010000L #define MCI_OVLY_OPEN_PARENT 0x00020000L /* flags for dwFlags parameter of MCI_STATUS command message */ #define MCI_OVLY_STATUS_HWND 0x00004001L #define MCI_OVLY_STATUS_STRETCH 0x00004002L /* flags for dwFlags parameter of MCI_INFO command message */ #define MCI_OVLY_INFO_TEXT 0x00010000L /* flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block */ #define MCI_OVLY_GETDEVCAPS_CAN_STRETCH 0x00004001L #define MCI_OVLY_GETDEVCAPS_CAN_FREEZE 0x00004002L #define MCI_OVLY_GETDEVCAPS_MAX_WINDOWS 0x00004003L /* flags for dwFlags parameter of MCI_WINDOW command message */ #define MCI_OVLY_WINDOW_HWND 0x00010000L #define MCI_OVLY_WINDOW_STATE 0x00040000L #define MCI_OVLY_WINDOW_TEXT 0x00080000L #define MCI_OVLY_WINDOW_ENABLE_STRETCH 0x00100000L #define MCI_OVLY_WINDOW_DISABLE_STRETCH 0x00200000L /* flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block */ #define MCI_OVLY_WINDOW_DEFAULT 0x00000000L /* flags for dwFlags parameter of MCI_PUT command message */ #define MCI_OVLY_RECT 0x00010000L #define MCI_OVLY_PUT_SOURCE 0x00020000L #define MCI_OVLY_PUT_DESTINATION 0x00040000L #define MCI_OVLY_PUT_FRAME 0x00080000L #define MCI_OVLY_PUT_VIDEO 0x00100000L /* flags for dwFlags parameter of MCI_WHERE command message */ #define MCI_OVLY_WHERE_SOURCE 0x00020000L #define MCI_OVLY_WHERE_DESTINATION 0x00040000L #define MCI_OVLY_WHERE_FRAME 0x00080000L #define MCI_OVLY_WHERE_VIDEO 0x00100000L /* parameter block for MCI_OPEN command message */ #ifdef _WIN32 typedef struct tagMCI_OVLY_OPEN_PARMSA { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_OVLY_OPEN_PARMSA, *PMCI_OVLY_OPEN_PARMSA, *LPMCI_OVLY_OPEN_PARMSA; typedef struct tagMCI_OVLY_OPEN_PARMSW { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCWSTR lpstrDeviceType; LPCWSTR lpstrElementName; LPCWSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; } MCI_OVLY_OPEN_PARMSW, *PMCI_OVLY_OPEN_PARMSW, *LPMCI_OVLY_OPEN_PARMSW; #ifdef UNICODE typedef MCI_OVLY_OPEN_PARMSW MCI_OVLY_OPEN_PARMS; typedef PMCI_OVLY_OPEN_PARMSW PMCI_OVLY_OPEN_PARMS; typedef LPMCI_OVLY_OPEN_PARMSW LPMCI_OVLY_OPEN_PARMS; #else typedef MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMS; typedef PMCI_OVLY_OPEN_PARMSA PMCI_OVLY_OPEN_PARMS; typedef LPMCI_OVLY_OPEN_PARMSA LPMCI_OVLY_OPEN_PARMS; #endif // UNICODE #else typedef struct tagMCI_OVLY_OPEN_PARMS { DWORD dwCallback; MCIDEVICEID wDeviceID; WORD wReserved0; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; DWORD dwStyle; HWND hWndParent; WORD wReserved1; } MCI_OVLY_OPEN_PARMS, FAR *LPMCI_OVLY_OPEN_PARMS; #endif /* parameter block for MCI_WINDOW command message */ #ifdef _WIN32 typedef struct tagMCI_OVLY_WINDOW_PARMSA { DWORD_PTR dwCallback; HWND hWnd; UINT nCmdShow; LPCSTR lpstrText; } MCI_OVLY_WINDOW_PARMSA, *PMCI_OVLY_WINDOW_PARMSA, * LPMCI_OVLY_WINDOW_PARMSA; typedef struct tagMCI_OVLY_WINDOW_PARMSW { DWORD_PTR dwCallback; HWND hWnd; UINT nCmdShow; LPCWSTR lpstrText; } MCI_OVLY_WINDOW_PARMSW, *PMCI_OVLY_WINDOW_PARMSW, * LPMCI_OVLY_WINDOW_PARMSW; #ifdef UNICODE typedef MCI_OVLY_WINDOW_PARMSW MCI_OVLY_WINDOW_PARMS; typedef PMCI_OVLY_WINDOW_PARMSW PMCI_OVLY_WINDOW_PARMS; typedef LPMCI_OVLY_WINDOW_PARMSW LPMCI_OVLY_WINDOW_PARMS; #else typedef MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMS; typedef PMCI_OVLY_WINDOW_PARMSA PMCI_OVLY_WINDOW_PARMS; typedef LPMCI_OVLY_WINDOW_PARMSA LPMCI_OVLY_WINDOW_PARMS; #endif // UNICODE #else typedef struct tagMCI_OVLY_WINDOW_PARMS { DWORD dwCallback; HWND hWnd; WORD wReserved1; UINT nCmdShow; WORD wReserved2; LPCSTR lpstrText; } MCI_OVLY_WINDOW_PARMS, FAR * LPMCI_OVLY_WINDOW_PARMS; #endif /* parameter block for MCI_PUT, MCI_UPDATE, and MCI_WHERE command messages */ typedef struct tagMCI_OVLY_RECT_PARMS { DWORD_PTR dwCallback; #ifdef MCI_USE_OFFEXT POINT ptOffset; POINT ptExtent; #else /* ifdef MCI_USE_OFFEXT */ RECT rc; #endif /* ifdef MCI_USE_OFFEXT */ } MCI_OVLY_RECT_PARMS, *PMCI_OVLY_RECT_PARMS, FAR * LPMCI_OVLY_RECT_PARMS; /* parameter block for MCI_SAVE command message */ #ifdef _WIN32 typedef struct tagMCI_OVLY_SAVE_PARMSA { DWORD_PTR dwCallback; LPCSTR lpfilename; RECT rc; } MCI_OVLY_SAVE_PARMSA, *PMCI_OVLY_SAVE_PARMSA, * LPMCI_OVLY_SAVE_PARMSA; typedef struct tagMCI_OVLY_SAVE_PARMSW { DWORD_PTR dwCallback; LPCWSTR lpfilename; RECT rc; } MCI_OVLY_SAVE_PARMSW, *PMCI_OVLY_SAVE_PARMSW, * LPMCI_OVLY_SAVE_PARMSW; #ifdef UNICODE typedef MCI_OVLY_SAVE_PARMSW MCI_OVLY_SAVE_PARMS; typedef PMCI_OVLY_SAVE_PARMSW PMCI_OVLY_SAVE_PARMS; typedef LPMCI_OVLY_SAVE_PARMSW LPMCI_OVLY_SAVE_PARMS; #else typedef MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMS; typedef PMCI_OVLY_SAVE_PARMSA PMCI_OVLY_SAVE_PARMS; typedef LPMCI_OVLY_SAVE_PARMSA LPMCI_OVLY_SAVE_PARMS; #endif // UNICODE #else typedef struct tagMCI_OVLY_SAVE_PARMS { DWORD dwCallback; LPCSTR lpfilename; RECT rc; } MCI_OVLY_SAVE_PARMS, FAR * LPMCI_OVLY_SAVE_PARMS; #endif /* parameter block for MCI_LOAD command message */ #ifdef _WIN32 typedef struct tagMCI_OVLY_LOAD_PARMSA { DWORD_PTR dwCallback; LPCSTR lpfilename; RECT rc; } MCI_OVLY_LOAD_PARMSA, *PMCI_OVLY_LOAD_PARMSA, * LPMCI_OVLY_LOAD_PARMSA; typedef struct tagMCI_OVLY_LOAD_PARMSW { DWORD_PTR dwCallback; LPCWSTR lpfilename; RECT rc; } MCI_OVLY_LOAD_PARMSW, *PMCI_OVLY_LOAD_PARMSW, * LPMCI_OVLY_LOAD_PARMSW; #ifdef UNICODE typedef MCI_OVLY_LOAD_PARMSW MCI_OVLY_LOAD_PARMS; typedef PMCI_OVLY_LOAD_PARMSW PMCI_OVLY_LOAD_PARMS; typedef LPMCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMS; #else typedef MCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMS; typedef PMCI_OVLY_LOAD_PARMSA PMCI_OVLY_LOAD_PARMS; typedef LPMCI_OVLY_LOAD_PARMSA LPMCI_OVLY_LOAD_PARMS; #endif // UNICODE #else typedef struct tagMCI_OVLY_LOAD_PARMS { DWORD dwCallback; LPCSTR lpfilename; RECT rc; } MCI_OVLY_LOAD_PARMS, FAR * LPMCI_OVLY_LOAD_PARMS; #endif #endif /* ifndef MMNOMCI */ /**************************************************************************** DISPLAY Driver extensions ****************************************************************************/ #ifndef NEWTRANSPARENT #define NEWTRANSPARENT 3 /* use with SetBkMode() */ #define QUERYROPSUPPORT 40 /* use to determine ROP support */ #endif /* ifndef NEWTRANSPARENT */ /**************************************************************************** DIB Driver extensions ****************************************************************************/ #define SELECTDIB 41 /* DIB.DRV select dib escape */ #define DIBINDEX(n) MAKELONG((n),0x10FF) /**************************************************************************** ScreenSaver support The current application will receive a syscommand of SC_SCREENSAVE just before the screen saver is invoked. If the app wishes to prevent a screen save, return non-zero value, otherwise call DefWindowProc(). ****************************************************************************/ #ifndef SC_SCREENSAVE #define SC_SCREENSAVE 0xF140 #endif /* ifndef SC_SCREENSAVE */ #ifdef __cplusplus } /* End of extern "C" { */ #endif /* __cplusplus */ #ifdef _WIN32 #include #else #ifndef RC_INVOKED #pragma pack() #endif #endif #endif /* _INC_MMSYSTEM */ ================================================ FILE: Bin/i386/APILib/WinBase.h ================================================ /************************************************************************ * * * winbase.h -- This module defines the 32-Bit Windows Base APIs * * * * Copyright (c) Microsoft Corp. All rights reserved. * * * ************************************************************************/ #ifndef _WINBASE_ #define _WINBASE_ #if _MSC_VER > 1000 #pragma once #endif #ifdef _MAC #include #endif //_MAC // // Define API decoration for direct importing of DLL references. // #if !defined(_ADVAPI32_) #define WINADVAPI DECLSPEC_IMPORT #else #define WINADVAPI #endif #if !defined(_KERNEL32_) #define WINBASEAPI DECLSPEC_IMPORT #else #define WINBASEAPI #endif #if !defined(_ZAWPROXY_) #define ZAWPROXYAPI DECLSPEC_IMPORT #else #define ZAWPROXYAPI #endif #ifdef __cplusplus extern "C" { #endif /* * Compatibility macros */ #define DefineHandleTable(w) ((w),TRUE) #define LimitEmsPages(dw) #define SetSwapAreaSize(w) (w) #define LockSegment(w) GlobalFix((HANDLE)(w)) #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) #define GetCurrentTime() GetTickCount() #define Yield() #define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1) #define INVALID_FILE_SIZE ((DWORD)0xFFFFFFFF) #define INVALID_SET_FILE_POINTER ((DWORD)-1) #define INVALID_FILE_ATTRIBUTES ((DWORD)-1) #define FILE_BEGIN 0 #define FILE_CURRENT 1 #define FILE_END 2 #define TIME_ZONE_ID_INVALID ((DWORD)0xFFFFFFFF) #define WAIT_FAILED ((DWORD)0xFFFFFFFF) #define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 ) #define WAIT_ABANDONED ((STATUS_ABANDONED_WAIT_0 ) + 0 ) #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0 ) + 0 ) #define WAIT_IO_COMPLETION STATUS_USER_APC #define STILL_ACTIVE STATUS_PENDING #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT #define MoveMemory RtlMoveMemory #define CopyMemory RtlCopyMemory #define FillMemory RtlFillMemory #define ZeroMemory RtlZeroMemory #define SecureZeroMemory RtlSecureZeroMemory // // File creation flags must start at the high end since they // are combined with the attributes // #define FILE_FLAG_WRITE_THROUGH 0x80000000 #define FILE_FLAG_OVERLAPPED 0x40000000 #define FILE_FLAG_NO_BUFFERING 0x20000000 #define FILE_FLAG_RANDOM_ACCESS 0x10000000 #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 #define FILE_FLAG_DELETE_ON_CLOSE 0x04000000 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 #define FILE_FLAG_POSIX_SEMANTICS 0x01000000 #define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000 #define FILE_FLAG_OPEN_NO_RECALL 0x00100000 #define FILE_FLAG_FIRST_PIPE_INSTANCE 0x00080000 #define CREATE_NEW 1 #define CREATE_ALWAYS 2 #define OPEN_EXISTING 3 #define OPEN_ALWAYS 4 #define TRUNCATE_EXISTING 5 #if(_WIN32_WINNT >= 0x0400) // // Define possible return codes from the CopyFileEx callback routine // #define PROGRESS_CONTINUE 0 #define PROGRESS_CANCEL 1 #define PROGRESS_STOP 2 #define PROGRESS_QUIET 3 // // Define CopyFileEx callback routine state change values // #define CALLBACK_CHUNK_FINISHED 0x00000000 #define CALLBACK_STREAM_SWITCH 0x00000001 // // Define CopyFileEx option flags // #define COPY_FILE_FAIL_IF_EXISTS 0x00000001 #define COPY_FILE_RESTARTABLE 0x00000002 #define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004 #define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x00000008 #endif /* _WIN32_WINNT >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) // // Define ReplaceFile option flags // #define REPLACEFILE_WRITE_THROUGH 0x00000001 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002 #endif // #if (_WIN32_WINNT >= 0x0500) // // Define the NamedPipe definitions // // // Define the dwOpenMode values for CreateNamedPipe // #define PIPE_ACCESS_INBOUND 0x00000001 #define PIPE_ACCESS_OUTBOUND 0x00000002 #define PIPE_ACCESS_DUPLEX 0x00000003 // // Define the Named Pipe End flags for GetNamedPipeInfo // #define PIPE_CLIENT_END 0x00000000 #define PIPE_SERVER_END 0x00000001 // // Define the dwPipeMode values for CreateNamedPipe // #define PIPE_WAIT 0x00000000 #define PIPE_NOWAIT 0x00000001 #define PIPE_READMODE_BYTE 0x00000000 #define PIPE_READMODE_MESSAGE 0x00000002 #define PIPE_TYPE_BYTE 0x00000000 #define PIPE_TYPE_MESSAGE 0x00000004 // // Define the well known values for CreateNamedPipe nMaxInstances // #define PIPE_UNLIMITED_INSTANCES 255 // // Define the Security Quality of Service bits to be passed // into CreateFile // #define SECURITY_ANONYMOUS ( SecurityAnonymous << 16 ) #define SECURITY_IDENTIFICATION ( SecurityIdentification << 16 ) #define SECURITY_IMPERSONATION ( SecurityImpersonation << 16 ) #define SECURITY_DELEGATION ( SecurityDelegation << 16 ) #define SECURITY_CONTEXT_TRACKING 0x00040000 #define SECURITY_EFFECTIVE_ONLY 0x00080000 #define SECURITY_SQOS_PRESENT 0x00100000 #define SECURITY_VALID_SQOS_FLAGS 0x001F0000 // // File structures // typedef struct _OVERLAPPED { ULONG_PTR Internal; ULONG_PTR InternalHigh; union { struct { DWORD Offset; DWORD OffsetHigh; }; PVOID Pointer; }; HANDLE hEvent; } OVERLAPPED, *LPOVERLAPPED; typedef struct _SECURITY_ATTRIBUTES { DWORD nLength; LPVOID lpSecurityDescriptor; BOOL bInheritHandle; } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; typedef struct _PROCESS_INFORMATION { HANDLE hProcess; HANDLE hThread; DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; // // File System time stamps are represented with the following structure: // #ifndef _FILETIME_ #define _FILETIME_ typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *PFILETIME, *LPFILETIME; #endif // // System time is represented with the following structure: // typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)( LPVOID lpThreadParameter ); typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; #if(_WIN32_WINNT >= 0x0400) typedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter ); typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE; #endif /* _WIN32_WINNT >= 0x0400 */ typedef RTL_CRITICAL_SECTION CRITICAL_SECTION; typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION; typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG; typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG; typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG; #if defined(_X86_) typedef PLDT_ENTRY LPLDT_ENTRY; #else typedef LPVOID LPLDT_ENTRY; #endif #define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS // // Serial provider type. // #define SP_SERIALCOMM ((DWORD)0x00000001) // // Provider SubTypes // #define PST_UNSPECIFIED ((DWORD)0x00000000) #define PST_RS232 ((DWORD)0x00000001) #define PST_PARALLELPORT ((DWORD)0x00000002) #define PST_RS422 ((DWORD)0x00000003) #define PST_RS423 ((DWORD)0x00000004) #define PST_RS449 ((DWORD)0x00000005) #define PST_MODEM ((DWORD)0x00000006) #define PST_FAX ((DWORD)0x00000021) #define PST_SCANNER ((DWORD)0x00000022) #define PST_NETWORK_BRIDGE ((DWORD)0x00000100) #define PST_LAT ((DWORD)0x00000101) #define PST_TCPIP_TELNET ((DWORD)0x00000102) #define PST_X25 ((DWORD)0x00000103) // // Provider capabilities flags. // #define PCF_DTRDSR ((DWORD)0x0001) #define PCF_RTSCTS ((DWORD)0x0002) #define PCF_RLSD ((DWORD)0x0004) #define PCF_PARITY_CHECK ((DWORD)0x0008) #define PCF_XONXOFF ((DWORD)0x0010) #define PCF_SETXCHAR ((DWORD)0x0020) #define PCF_TOTALTIMEOUTS ((DWORD)0x0040) #define PCF_INTTIMEOUTS ((DWORD)0x0080) #define PCF_SPECIALCHARS ((DWORD)0x0100) #define PCF_16BITMODE ((DWORD)0x0200) // // Comm provider settable parameters. // #define SP_PARITY ((DWORD)0x0001) #define SP_BAUD ((DWORD)0x0002) #define SP_DATABITS ((DWORD)0x0004) #define SP_STOPBITS ((DWORD)0x0008) #define SP_HANDSHAKING ((DWORD)0x0010) #define SP_PARITY_CHECK ((DWORD)0x0020) #define SP_RLSD ((DWORD)0x0040) // // Settable baud rates in the provider. // #define BAUD_075 ((DWORD)0x00000001) #define BAUD_110 ((DWORD)0x00000002) #define BAUD_134_5 ((DWORD)0x00000004) #define BAUD_150 ((DWORD)0x00000008) #define BAUD_300 ((DWORD)0x00000010) #define BAUD_600 ((DWORD)0x00000020) #define BAUD_1200 ((DWORD)0x00000040) #define BAUD_1800 ((DWORD)0x00000080) #define BAUD_2400 ((DWORD)0x00000100) #define BAUD_4800 ((DWORD)0x00000200) #define BAUD_7200 ((DWORD)0x00000400) #define BAUD_9600 ((DWORD)0x00000800) #define BAUD_14400 ((DWORD)0x00001000) #define BAUD_19200 ((DWORD)0x00002000) #define BAUD_38400 ((DWORD)0x00004000) #define BAUD_56K ((DWORD)0x00008000) #define BAUD_128K ((DWORD)0x00010000) #define BAUD_115200 ((DWORD)0x00020000) #define BAUD_57600 ((DWORD)0x00040000) #define BAUD_USER ((DWORD)0x10000000) // // Settable Data Bits // #define DATABITS_5 ((WORD)0x0001) #define DATABITS_6 ((WORD)0x0002) #define DATABITS_7 ((WORD)0x0004) #define DATABITS_8 ((WORD)0x0008) #define DATABITS_16 ((WORD)0x0010) #define DATABITS_16X ((WORD)0x0020) // // Settable Stop and Parity bits. // #define STOPBITS_10 ((WORD)0x0001) #define STOPBITS_15 ((WORD)0x0002) #define STOPBITS_20 ((WORD)0x0004) #define PARITY_NONE ((WORD)0x0100) #define PARITY_ODD ((WORD)0x0200) #define PARITY_EVEN ((WORD)0x0400) #define PARITY_MARK ((WORD)0x0800) #define PARITY_SPACE ((WORD)0x1000) typedef 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]; } COMMPROP,*LPCOMMPROP; // // Set dwProvSpec1 to COMMPROP_INITIALIZED to indicate that wPacketLength // is valid before a call to GetCommProperties(). // #define COMMPROP_INITIALIZED ((DWORD)0xE73CF52E) typedef 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; } COMSTAT, *LPCOMSTAT; // // DTR Control Flow Values. // #define DTR_CONTROL_DISABLE 0x00 #define DTR_CONTROL_ENABLE 0x01 #define DTR_CONTROL_HANDSHAKE 0x02 // // RTS Control Flow Values // #define RTS_CONTROL_DISABLE 0x00 #define RTS_CONTROL_ENABLE 0x01 #define RTS_CONTROL_HANDSHAKE 0x02 #define RTS_CONTROL_TOGGLE 0x03 typedef struct _DCB { DWORD DCBlength; /* sizeof(DCB) */ DWORD BaudRate; /* Baudrate at which running */ 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 */ WORD wReserved; /* Not currently used */ WORD XonLim; /* Transmit X-ON threshold */ WORD XoffLim; /* Transmit X-OFF threshold */ BYTE ByteSize; /* Number of bits/byte, 4-8 */ BYTE Parity; /* 0-4=None,Odd,Even,Mark,Space */ BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */ char XonChar; /* Tx and Rx X-ON character */ char XoffChar; /* Tx and Rx X-OFF character */ char ErrorChar; /* Error replacement char */ char EofChar; /* End of Input character */ char EvtChar; /* Received Event character */ WORD wReserved1; /* Fill for now. */ } DCB, *LPDCB; typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; /* Maximum time between read chars. */ DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */ DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */ DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */ DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */ } COMMTIMEOUTS,*LPCOMMTIMEOUTS; typedef struct _COMMCONFIG { DWORD dwSize; /* Size of the entire struct */ WORD wVersion; /* version of the structure */ WORD wReserved; /* alignment */ DCB dcb; /* device control block */ DWORD dwProviderSubType; /* ordinal value for identifying provider-defined data structure format*/ DWORD dwProviderOffset; /* Specifies the offset of provider specific data field in bytes from the start */ DWORD dwProviderSize; /* size of the provider-specific data field */ WCHAR wcProviderData[1]; /* provider-specific data */ } COMMCONFIG,*LPCOMMCONFIG; typedef struct _SYSTEM_INFO { union { DWORD dwOemId; // Obsolete field...do not use struct { WORD wProcessorArchitecture; WORD wReserved; }; }; DWORD dwPageSize; LPVOID lpMinimumApplicationAddress; LPVOID lpMaximumApplicationAddress; DWORD_PTR dwActiveProcessorMask; DWORD dwNumberOfProcessors; DWORD dwProcessorType; DWORD dwAllocationGranularity; WORD wProcessorLevel; WORD wProcessorRevision; } SYSTEM_INFO, *LPSYSTEM_INFO; // // #define FreeModule(hLibModule) FreeLibrary((hLibModule)) #define MakeProcInstance(lpProc,hInstance) (lpProc) #define FreeProcInstance(lpProc) (lpProc) /* Global Memory Flags */ #define GMEM_FIXED 0x0000 #define GMEM_MOVEABLE 0x0002 #define GMEM_NOCOMPACT 0x0010 #define GMEM_NODISCARD 0x0020 #define GMEM_ZEROINIT 0x0040 #define GMEM_MODIFY 0x0080 #define GMEM_DISCARDABLE 0x0100 #define GMEM_NOT_BANKED 0x1000 #define GMEM_SHARE 0x2000 #define GMEM_DDESHARE 0x2000 #define GMEM_NOTIFY 0x4000 #define GMEM_LOWER GMEM_NOT_BANKED #define GMEM_VALID_FLAGS 0x7F72 #define GMEM_INVALID_HANDLE 0x8000 #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) #define GPTR (GMEM_FIXED | GMEM_ZEROINIT) #define GlobalLRUNewest( h ) ((HANDLE)(h)) #define GlobalLRUOldest( h ) ((HANDLE)(h)) #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE ) /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */ #define GMEM_DISCARDED 0x4000 #define GMEM_LOCKCOUNT 0x00FF typedef struct _MEMORYSTATUS { DWORD dwLength; DWORD dwMemoryLoad; SIZE_T dwTotalPhys; SIZE_T dwAvailPhys; SIZE_T dwTotalPageFile; SIZE_T dwAvailPageFile; SIZE_T dwTotalVirtual; SIZE_T dwAvailVirtual; } MEMORYSTATUS, *LPMEMORYSTATUS; /* Local Memory Flags */ #define LMEM_FIXED 0x0000 #define LMEM_MOVEABLE 0x0002 #define LMEM_NOCOMPACT 0x0010 #define LMEM_NODISCARD 0x0020 #define LMEM_ZEROINIT 0x0040 #define LMEM_MODIFY 0x0080 #define LMEM_DISCARDABLE 0x0F00 #define LMEM_VALID_FLAGS 0x0F72 #define LMEM_INVALID_HANDLE 0x8000 #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT) #define LPTR (LMEM_FIXED | LMEM_ZEROINIT) #define NONZEROLHND (LMEM_MOVEABLE) #define NONZEROLPTR (LMEM_FIXED) #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE ) /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */ #define LMEM_DISCARDED 0x4000 #define LMEM_LOCKCOUNT 0x00FF // // dwCreationFlag values // #define DEBUG_PROCESS 0x00000001 #define DEBUG_ONLY_THIS_PROCESS 0x00000002 #define CREATE_SUSPENDED 0x00000004 #define DETACHED_PROCESS 0x00000008 #define CREATE_NEW_CONSOLE 0x00000010 #define NORMAL_PRIORITY_CLASS 0x00000020 #define IDLE_PRIORITY_CLASS 0x00000040 #define HIGH_PRIORITY_CLASS 0x00000080 #define REALTIME_PRIORITY_CLASS 0x00000100 #define CREATE_NEW_PROCESS_GROUP 0x00000200 #define CREATE_UNICODE_ENVIRONMENT 0x00000400 #define CREATE_SEPARATE_WOW_VDM 0x00000800 #define CREATE_SHARED_WOW_VDM 0x00001000 #define CREATE_FORCEDOS 0x00002000 #define BELOW_NORMAL_PRIORITY_CLASS 0x00004000 #define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000 #define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000 #define CREATE_BREAKAWAY_FROM_JOB 0x01000000 #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x02000000 #define CREATE_DEFAULT_ERROR_MODE 0x04000000 #define CREATE_NO_WINDOW 0x08000000 #define PROFILE_USER 0x10000000 #define PROFILE_KERNEL 0x20000000 #define PROFILE_SERVER 0x40000000 #define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000 #define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN #define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST+1) #define THREAD_PRIORITY_NORMAL 0 #define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX #define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST-1) #define THREAD_PRIORITY_ERROR_RETURN (MAXLONG) #define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT #define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE // // Debug APIs // #define EXCEPTION_DEBUG_EVENT 1 #define CREATE_THREAD_DEBUG_EVENT 2 #define CREATE_PROCESS_DEBUG_EVENT 3 #define EXIT_THREAD_DEBUG_EVENT 4 #define EXIT_PROCESS_DEBUG_EVENT 5 #define LOAD_DLL_DEBUG_EVENT 6 #define UNLOAD_DLL_DEBUG_EVENT 7 #define OUTPUT_DEBUG_STRING_EVENT 8 #define RIP_EVENT 9 typedef struct _EXCEPTION_DEBUG_INFO { EXCEPTION_RECORD ExceptionRecord; DWORD dwFirstChance; } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO; typedef struct _CREATE_THREAD_DEBUG_INFO { HANDLE hThread; LPVOID lpThreadLocalBase; LPTHREAD_START_ROUTINE lpStartAddress; } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO; typedef 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; } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO; typedef struct _EXIT_THREAD_DEBUG_INFO { DWORD dwExitCode; } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO; typedef struct _EXIT_PROCESS_DEBUG_INFO { DWORD dwExitCode; } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO; typedef struct _LOAD_DLL_DEBUG_INFO { HANDLE hFile; LPVOID lpBaseOfDll; DWORD dwDebugInfoFileOffset; DWORD nDebugInfoSize; LPVOID lpImageName; WORD fUnicode; } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO; typedef struct _UNLOAD_DLL_DEBUG_INFO { LPVOID lpBaseOfDll; } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO; typedef struct _OUTPUT_DEBUG_STRING_INFO { LPSTR lpDebugStringData; WORD fUnicode; WORD nDebugStringLength; } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO; typedef struct _RIP_INFO { DWORD dwError; DWORD dwType; } RIP_INFO, *LPRIP_INFO; typedef 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; } u; } DEBUG_EVENT, *LPDEBUG_EVENT; #if !defined(MIDL_PASS) typedef PCONTEXT LPCONTEXT; typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD; typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; #endif #define DRIVE_UNKNOWN 0 #define DRIVE_NO_ROOT_DIR 1 #define DRIVE_REMOVABLE 2 #define DRIVE_FIXED 3 #define DRIVE_REMOTE 4 #define DRIVE_CDROM 5 #define DRIVE_RAMDISK 6 #ifndef _MAC #define GetFreeSpace(w) (0x100000L) #else WINBASEAPI DWORD WINAPI GetFreeSpace(UINT); #endif #define FILE_TYPE_UNKNOWN 0x0000 #define FILE_TYPE_DISK 0x0001 #define FILE_TYPE_CHAR 0x0002 #define FILE_TYPE_PIPE 0x0003 #define FILE_TYPE_REMOTE 0x8000 #define STD_INPUT_HANDLE ((DWORD)-10) #define STD_OUTPUT_HANDLE ((DWORD)-11) #define STD_ERROR_HANDLE ((DWORD)-12) #define NOPARITY 0 #define ODDPARITY 1 #define EVENPARITY 2 #define MARKPARITY 3 #define SPACEPARITY 4 #define ONESTOPBIT 0 #define ONE5STOPBITS 1 #define TWOSTOPBITS 2 #define IGNORE 0 // Ignore signal #define INFINITE 0xFFFFFFFF // Infinite timeout // // Baud rates at which the communication device operates // #define CBR_110 110 #define CBR_300 300 #define CBR_600 600 #define CBR_1200 1200 #define CBR_2400 2400 #define CBR_4800 4800 #define CBR_9600 9600 #define CBR_14400 14400 #define CBR_19200 19200 #define CBR_38400 38400 #define CBR_56000 56000 #define CBR_57600 57600 #define CBR_115200 115200 #define CBR_128000 128000 #define CBR_256000 256000 // // Error Flags // #define CE_RXOVER 0x0001 // Receive Queue overflow #define CE_OVERRUN 0x0002 // Receive Overrun Error #define CE_RXPARITY 0x0004 // Receive Parity Error #define CE_FRAME 0x0008 // Receive Framing error #define CE_BREAK 0x0010 // Break Detected #define CE_TXFULL 0x0100 // TX Queue is full #define CE_PTO 0x0200 // LPTx Timeout #define CE_IOE 0x0400 // LPTx I/O Error #define CE_DNS 0x0800 // LPTx Device not selected #define CE_OOP 0x1000 // LPTx Out-Of-Paper #define CE_MODE 0x8000 // Requested mode unsupported #define IE_BADID (-1) // Invalid or unsupported id #define IE_OPEN (-2) // Device Already Open #define IE_NOPEN (-3) // Device Not Open #define IE_MEMORY (-4) // Unable to allocate queues #define IE_DEFAULT (-5) // Error in default parameters #define IE_HARDWARE (-10) // Hardware Not Present #define IE_BYTESIZE (-11) // Illegal Byte Size #define IE_BAUDRATE (-12) // Unsupported BaudRate // // Events // #define EV_RXCHAR 0x0001 // Any Character received #define EV_RXFLAG 0x0002 // Received certain character #define EV_TXEMPTY 0x0004 // Transmitt Queue Empty #define EV_CTS 0x0008 // CTS changed state #define EV_DSR 0x0010 // DSR changed state #define EV_RLSD 0x0020 // RLSD changed state #define EV_BREAK 0x0040 // BREAK received #define EV_ERR 0x0080 // Line status error occurred #define EV_RING 0x0100 // Ring signal detected #define EV_PERR 0x0200 // Printer error occured #define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full #define EV_EVENT1 0x0800 // Provider specific event 1 #define EV_EVENT2 0x1000 // Provider specific event 2 // // Escape Functions // #define SETXOFF 1 // Simulate XOFF received #define SETXON 2 // Simulate XON received #define SETRTS 3 // Set RTS high #define CLRRTS 4 // Set RTS low #define SETDTR 5 // Set DTR high #define CLRDTR 6 // Set DTR low #define RESETDEV 7 // Reset device if possible #define SETBREAK 8 // Set the device break line. #define CLRBREAK 9 // Clear the device break line. // // PURGE function flags. // #define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port. #define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port. #define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there. #define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there. #define LPTx 0x80 // Set if ID is for LPT device // // Modem Status Flags // #define MS_CTS_ON ((DWORD)0x0010) #define MS_DSR_ON ((DWORD)0x0020) #define MS_RING_ON ((DWORD)0x0040) #define MS_RLSD_ON ((DWORD)0x0080) // // WaitSoundState() Constants // #define S_QUEUEEMPTY 0 #define S_THRESHOLD 1 #define S_ALLTHRESHOLD 2 // // Accent Modes // #define S_NORMAL 0 #define S_LEGATO 1 #define S_STACCATO 2 // // SetSoundNoise() Sources // #define S_PERIOD512 0 // Freq = N/512 high pitch, less coarse hiss #define S_PERIOD1024 1 // Freq = N/1024 #define S_PERIOD2048 2 // Freq = N/2048 low pitch, more coarse hiss #define S_PERIODVOICE 3 // Source is frequency from voice channel (3) #define S_WHITE512 4 // Freq = N/512 high pitch, less coarse hiss #define S_WHITE1024 5 // Freq = N/1024 #define S_WHITE2048 6 // Freq = N/2048 low pitch, more coarse hiss #define S_WHITEVOICE 7 // Source is frequency from voice channel (3) #define S_SERDVNA (-1) // Device not available #define S_SEROFM (-2) // Out of memory #define S_SERMACT (-3) // Music active #define S_SERQFUL (-4) // Queue full #define S_SERBDNT (-5) // Invalid note #define S_SERDLN (-6) // Invalid note length #define S_SERDCC (-7) // Invalid note count #define S_SERDTP (-8) // Invalid tempo #define S_SERDVL (-9) // Invalid volume #define S_SERDMD (-10) // Invalid mode #define S_SERDSH (-11) // Invalid shape #define S_SERDPT (-12) // Invalid pitch #define S_SERDFQ (-13) // Invalid frequency #define S_SERDDR (-14) // Invalid duration #define S_SERDSR (-15) // Invalid source #define S_SERDST (-16) // Invalid state #define NMPWAIT_WAIT_FOREVER 0xffffffff #define NMPWAIT_NOWAIT 0x00000001 #define NMPWAIT_USE_DEFAULT_WAIT 0x00000000 #define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES #define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH #define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK #define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS #define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED #define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION #define FS_FILE_ENCRYPTION FILE_SUPPORTS_ENCRYPTION #define FILE_MAP_COPY SECTION_QUERY #define FILE_MAP_WRITE SECTION_MAP_WRITE #define FILE_MAP_READ SECTION_MAP_READ #define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS #define OF_READ 0x00000000 #define OF_WRITE 0x00000001 #define OF_READWRITE 0x00000002 #define OF_SHARE_COMPAT 0x00000000 #define OF_SHARE_EXCLUSIVE 0x00000010 #define OF_SHARE_DENY_WRITE 0x00000020 #define OF_SHARE_DENY_READ 0x00000030 #define OF_SHARE_DENY_NONE 0x00000040 #define OF_PARSE 0x00000100 #define OF_DELETE 0x00000200 #define OF_VERIFY 0x00000400 #define OF_CANCEL 0x00000800 #define OF_CREATE 0x00001000 #define OF_PROMPT 0x00002000 #define OF_EXIST 0x00004000 #define OF_REOPEN 0x00008000 #define OFS_MAXPATHNAME 128 typedef struct _OFSTRUCT { BYTE cBytes; BYTE fFixedDisk; WORD nErrCode; WORD Reserved1; WORD Reserved2; CHAR szPathName[OFS_MAXPATHNAME]; } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; #ifndef NOWINBASEINTERLOCK #ifndef _NTOS_ #if defined(_M_IA64) && !defined(RC_INVOKED) #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer #define InterlockedIncrement64 _InterlockedIncrement64 #define InterlockedDecrement64 _InterlockedDecrement64 #define InterlockedExchange64 _InterlockedExchange64 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 LONGLONG __cdecl InterlockedIncrement64( IN OUT LONGLONG volatile *Addend ); LONGLONG __cdecl InterlockedDecrement64( IN OUT LONGLONG volatile *Addend ); LONGLONG __cdecl InterlockedExchange64( IN OUT LONGLONG volatile *Target, IN LONGLONG Value ); LONGLONG __cdecl InterlockedExchangeAdd64( IN OUT LONGLONG volatile *Addend, IN LONGLONG Value ); LONGLONG __cdecl InterlockedCompareExchange64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG ExChange, IN LONGLONG Comperand ); LONG __cdecl InterlockedIncrement( IN OUT LONG volatile *lpAddend ); LONG __cdecl InterlockedDecrement( IN OUT LONG volatile *lpAddend ); LONG __cdecl InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); LONG __cdecl InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); LONG __cdecl InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); PVOID __cdecl InterlockedExchangePointer( IN OUT PVOID volatile *Target, IN PVOID Value ); PVOID __cdecl InterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID ExChange, IN PVOID Comperand ); #if !defined(MIDL_PASS) #if !defined (InterlockedAnd64) #define InterlockedAnd64 InterlockedAnd64_Inline LONGLONG FORCEINLINE InterlockedAnd64_Inline ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old & Value, Old) != Old); return Old; } #endif #if !defined (InterlockedOr64) #define InterlockedOr64 InterlockedOr64_Inline LONGLONG FORCEINLINE InterlockedOr64_Inline ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old | Value, Old) != Old); return Old; } #endif #if !defined (InterlockedXor64) #define InterlockedXor64 InterlockedXor64_Inline LONGLONG FORCEINLINE InterlockedXor64_Inline ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old ^ Value, Old) != Old); return Old; } #endif #endif #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedExchangeAdd) #pragma intrinsic(_InterlockedCompareExchange) #pragma intrinsic(_InterlockedExchangePointer) #pragma intrinsic(_InterlockedCompareExchangePointer) #pragma intrinsic(_InterlockedIncrement64) #pragma intrinsic(_InterlockedDecrement64) #pragma intrinsic(_InterlockedExchange64) #pragma intrinsic(_InterlockedCompareExchange64) #pragma intrinsic(_InterlockedExchangeAdd64) #elif defined(_M_AMD64) && !defined(RC_INVOKED) #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer #define InterlockedAnd64 _InterlockedAnd64 #define InterlockedOr64 _InterlockedOr64 #define InterlockedXor64 _InterlockedXor64 #define InterlockedIncrement64 _InterlockedIncrement64 #define InterlockedDecrement64 _InterlockedDecrement64 #define InterlockedExchange64 _InterlockedExchange64 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 LONG InterlockedIncrement( IN OUT LONG volatile *Addend ); LONG InterlockedDecrement( IN OUT LONG volatile *Addend ); LONG InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); LONG InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); LONG InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); PVOID InterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID Exchange, IN PVOID Comperand ); PVOID InterlockedExchangePointer( IN OUT PVOID volatile *Target, IN PVOID Value ); LONG64 InterlockedAnd64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedOr64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedXor64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedIncrement64( IN OUT LONG64 volatile *Addend ); LONG64 InterlockedDecrement64( IN OUT LONG64 volatile *Addend ); LONG64 InterlockedExchange64( IN OUT LONG64 volatile *Target, IN LONG64 Value ); LONG64 InterlockedExchangeAdd64( IN OUT LONG64 volatile *Addend, IN LONG64 Value ); LONG64 InterlockedCompareExchange64 ( IN OUT LONG64 volatile *Destination, IN LONG64 ExChange, IN LONG64 Comperand ); #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedExchangeAdd) #pragma intrinsic(_InterlockedCompareExchange) #pragma intrinsic(_InterlockedExchangePointer) #pragma intrinsic(_InterlockedCompareExchangePointer) #else // X86 interlocked definitions WINBASEAPI LONG WINAPI InterlockedIncrement( IN OUT LONG volatile *lpAddend ); WINBASEAPI LONG WINAPI InterlockedDecrement( IN OUT LONG volatile *lpAddend ); WINBASEAPI LONG WINAPI InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); #define InterlockedExchangePointer(Target, Value) \ (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value)) WINBASEAPI LONG WINAPI InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); WINBASEAPI LONG WINAPI InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG Exchange, IN LONG Comperand ); WINBASEAPI LONGLONG WINAPI InterlockedCompareExchange64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Exchange, IN LONGLONG Comperand ); #if !defined(MIDL_PASS) LONGLONG FORCEINLINE InterlockedAnd64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old & Value, Old) != Old); return Old; } LONGLONG FORCEINLINE InterlockedOr64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old | Value, Old) != Old); return Old; } LONGLONG FORCEINLINE InterlockedXor64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Destination; } while (InterlockedCompareExchange64(Destination, Old ^ Value, Old) != Old); return Old; } LONGLONG FORCEINLINE InterlockedIncrement64( IN OUT LONGLONG volatile *Addend ) { LONGLONG Old; do { Old = *Addend; } while (InterlockedCompareExchange64(Addend, Old + 1, Old) != Old); return Old + 1; } LONGLONG FORCEINLINE InterlockedDecrement64( IN OUT LONGLONG volatile *Addend ) { LONGLONG Old; do { Old = *Addend; } while (InterlockedCompareExchange64(Addend, Old - 1, Old) != Old); return Old - 1; } LONGLONG FORCEINLINE InterlockedExchange64( IN OUT LONGLONG volatile *Target, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Target; } while (InterlockedCompareExchange64(Target, Value, Old) != Old); return Old; } LONGLONG FORCEINLINE InterlockedExchangeAdd64( IN OUT LONGLONG volatile *Addend, IN LONGLONG Value ) { LONGLONG Old; do { Old = *Addend; } while (InterlockedCompareExchange64(Addend, Old + Value, Old) != Old); return Old; } #endif // // Use a function for C++ so X86 will generate the same errors as RISC. // #ifdef __cplusplus FORCEINLINE PVOID __cdecl __InlineInterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID ExChange, IN PVOID Comperand ) { return((PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)Destination, (LONG)(LONG_PTR)ExChange, (LONG)(LONG_PTR)Comperand)); } #define InterlockedCompareExchangePointer __InlineInterlockedCompareExchangePointer #else #define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) \ (PVOID)(LONG_PTR)InterlockedCompareExchange((LONG volatile *)(Destination), (LONG)(LONG_PTR)(ExChange), (LONG)(LONG_PTR)(Comperand)) #endif /* __cplusplus */ #endif /* X86 | IA64 */ #if defined(_SLIST_HEADER_) && !defined(_NTOSP_) WINBASEAPI VOID WINAPI InitializeSListHead ( IN PSLIST_HEADER ListHead ); WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList ( IN PSLIST_HEADER ListHead ); WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry ); WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList ( IN PSLIST_HEADER ListHead ); WINBASEAPI USHORT WINAPI QueryDepthSList ( IN PSLIST_HEADER ListHead ); #endif /* _SLIST_HEADER_ */ #endif /* _NTOS_ */ #endif /* NOWINBASEINTERLOCK */ WINBASEAPI BOOL WINAPI FreeResource( IN HGLOBAL hResData ); WINBASEAPI LPVOID WINAPI LockResource( IN HGLOBAL hResData ); #define UnlockResource(hResData) ((hResData), 0) #define MAXINTATOM 0xC000 #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i))) #define INVALID_ATOM ((ATOM)0) #ifndef _MAC int WINAPI #else int CALLBACK #endif WinMain( IN HINSTANCE hInstance, IN HINSTANCE hPrevInstance, IN LPSTR lpCmdLine, IN int nShowCmd ); WINBASEAPI BOOL WINAPI FreeLibrary( IN OUT HMODULE hLibModule ); WINBASEAPI DECLSPEC_NORETURN VOID WINAPI FreeLibraryAndExitThread( IN HMODULE hLibModule, IN DWORD dwExitCode ); WINBASEAPI BOOL WINAPI DisableThreadLibraryCalls( IN HMODULE hLibModule ); WINBASEAPI FARPROC WINAPI GetProcAddress( IN HMODULE hModule, IN LPCSTR lpProcName ); WINBASEAPI DWORD WINAPI GetVersion( VOID ); WINBASEAPI HGLOBAL WINAPI GlobalAlloc( IN UINT uFlags, IN SIZE_T dwBytes ); WINBASEAPI HGLOBAL WINAPI GlobalReAlloc( IN HGLOBAL hMem, IN SIZE_T dwBytes, IN UINT uFlags ); WINBASEAPI SIZE_T WINAPI GlobalSize( IN HGLOBAL hMem ); WINBASEAPI UINT WINAPI GlobalFlags( IN HGLOBAL hMem ); WINBASEAPI LPVOID WINAPI GlobalLock( IN HGLOBAL hMem ); //!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT) WINBASEAPI HGLOBAL WINAPI GlobalHandle( IN LPCVOID pMem ); WINBASEAPI BOOL WINAPI GlobalUnlock( IN HGLOBAL hMem ); WINBASEAPI HGLOBAL WINAPI GlobalFree( IN HGLOBAL hMem ); WINBASEAPI SIZE_T WINAPI GlobalCompact( IN DWORD dwMinFree ); WINBASEAPI VOID WINAPI GlobalFix( IN HGLOBAL hMem ); WINBASEAPI VOID WINAPI GlobalUnfix( IN HGLOBAL hMem ); WINBASEAPI LPVOID WINAPI GlobalWire( IN HGLOBAL hMem ); WINBASEAPI BOOL WINAPI GlobalUnWire( IN HGLOBAL hMem ); WINBASEAPI VOID WINAPI GlobalMemoryStatus( IN OUT LPMEMORYSTATUS lpBuffer ); typedef struct _MEMORYSTATUSEX { DWORD dwLength; DWORD dwMemoryLoad; DWORDLONG ullTotalPhys; DWORDLONG ullAvailPhys; DWORDLONG ullTotalPageFile; DWORDLONG ullAvailPageFile; DWORDLONG ullTotalVirtual; DWORDLONG ullAvailVirtual; DWORDLONG ullAvailExtendedVirtual; } MEMORYSTATUSEX, *LPMEMORYSTATUSEX; WINBASEAPI BOOL WINAPI GlobalMemoryStatusEx( IN OUT LPMEMORYSTATUSEX lpBuffer ); WINBASEAPI HLOCAL WINAPI LocalAlloc( IN UINT uFlags, IN SIZE_T uBytes ); WINBASEAPI HLOCAL WINAPI LocalReAlloc( IN HLOCAL hMem, IN SIZE_T uBytes, IN UINT uFlags ); WINBASEAPI LPVOID WINAPI LocalLock( IN HLOCAL hMem ); WINBASEAPI HLOCAL WINAPI LocalHandle( IN LPCVOID pMem ); WINBASEAPI BOOL WINAPI LocalUnlock( IN HLOCAL hMem ); WINBASEAPI SIZE_T WINAPI LocalSize( IN HLOCAL hMem ); WINBASEAPI UINT WINAPI LocalFlags( IN HLOCAL hMem ); WINBASEAPI HLOCAL WINAPI LocalFree( IN HLOCAL hMem ); WINBASEAPI SIZE_T WINAPI LocalShrink( IN HLOCAL hMem, IN UINT cbNewSize ); WINBASEAPI SIZE_T WINAPI LocalCompact( IN UINT uMinFree ); WINBASEAPI BOOL WINAPI FlushInstructionCache( IN HANDLE hProcess, IN LPCVOID lpBaseAddress, IN SIZE_T dwSize ); WINBASEAPI LPVOID WINAPI VirtualAlloc( IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect ); WINBASEAPI BOOL WINAPI VirtualFree( IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD dwFreeType ); WINBASEAPI BOOL WINAPI VirtualProtect( IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flNewProtect, OUT PDWORD lpflOldProtect ); WINBASEAPI SIZE_T WINAPI VirtualQuery( IN LPCVOID lpAddress, OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength ); WINBASEAPI LPVOID WINAPI VirtualAllocEx( IN HANDLE hProcess, IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flAllocationType, IN DWORD flProtect ); WINBASEAPI UINT WINAPI GetWriteWatch( IN DWORD dwFlags, IN PVOID lpBaseAddress, IN SIZE_T dwRegionSize, IN OUT PVOID *lpAddresses, IN OUT PULONG_PTR lpdwCount, OUT PULONG lpdwGranularity ); WINBASEAPI UINT WINAPI ResetWriteWatch( IN LPVOID lpBaseAddress, IN SIZE_T dwRegionSize ); WINBASEAPI SIZE_T WINAPI GetLargePageMinimum( VOID ); WINBASEAPI BOOL WINAPI VirtualFreeEx( IN HANDLE hProcess, IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD dwFreeType ); WINBASEAPI BOOL WINAPI VirtualProtectEx( IN HANDLE hProcess, IN LPVOID lpAddress, IN SIZE_T dwSize, IN DWORD flNewProtect, OUT PDWORD lpflOldProtect ); WINBASEAPI SIZE_T WINAPI VirtualQueryEx( IN HANDLE hProcess, IN LPCVOID lpAddress, OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength ); WINBASEAPI HANDLE WINAPI HeapCreate( IN DWORD flOptions, IN SIZE_T dwInitialSize, IN SIZE_T dwMaximumSize ); WINBASEAPI BOOL WINAPI HeapDestroy( IN OUT HANDLE hHeap ); WINBASEAPI LPVOID WINAPI HeapAlloc( IN HANDLE hHeap, IN DWORD dwFlags, IN SIZE_T dwBytes ); WINBASEAPI LPVOID WINAPI HeapReAlloc( IN HANDLE hHeap, IN DWORD dwFlags, IN LPVOID lpMem, IN SIZE_T dwBytes ); WINBASEAPI BOOL WINAPI HeapFree( IN HANDLE hHeap, IN DWORD dwFlags, IN LPVOID lpMem ); WINBASEAPI SIZE_T WINAPI HeapSize( IN HANDLE hHeap, IN DWORD dwFlags, IN LPCVOID lpMem ); WINBASEAPI BOOL WINAPI HeapValidate( IN HANDLE hHeap, IN DWORD dwFlags, IN LPCVOID lpMem ); WINBASEAPI SIZE_T WINAPI HeapCompact( IN HANDLE hHeap, IN DWORD dwFlags ); WINBASEAPI HANDLE WINAPI GetProcessHeap( VOID ); WINBASEAPI DWORD WINAPI GetProcessHeaps( IN DWORD NumberOfHeaps, OUT PHANDLE ProcessHeaps ); typedef struct _PROCESS_HEAP_ENTRY { PVOID lpData; DWORD cbData; BYTE cbOverhead; BYTE iRegionIndex; WORD wFlags; union { struct { HANDLE hMem; DWORD dwReserved[ 3 ]; } Block; struct { DWORD dwCommittedSize; DWORD dwUnCommittedSize; LPVOID lpFirstBlock; LPVOID lpLastBlock; } Region; }; } PROCESS_HEAP_ENTRY, *LPPROCESS_HEAP_ENTRY, *PPROCESS_HEAP_ENTRY; #define PROCESS_HEAP_REGION 0x0001 #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002 #define PROCESS_HEAP_ENTRY_BUSY 0x0004 #define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010 #define PROCESS_HEAP_ENTRY_DDESHARE 0x0020 WINBASEAPI BOOL WINAPI HeapLock( IN HANDLE hHeap ); WINBASEAPI BOOL WINAPI HeapUnlock( IN HANDLE hHeap ); WINBASEAPI BOOL WINAPI HeapWalk( IN HANDLE hHeap, IN OUT LPPROCESS_HEAP_ENTRY lpEntry ); WINBASEAPI BOOL WINAPI HeapSetInformation ( IN HANDLE HeapHandle, IN HEAP_INFORMATION_CLASS HeapInformationClass, IN PVOID HeapInformation OPTIONAL, IN SIZE_T HeapInformationLength OPTIONAL ); WINBASEAPI BOOL WINAPI HeapQueryInformation ( IN HANDLE HeapHandle, IN HEAP_INFORMATION_CLASS HeapInformationClass, OUT PVOID HeapInformation OPTIONAL, IN SIZE_T HeapInformationLength OPTIONAL, OUT PSIZE_T ReturnLength OPTIONAL ); // GetBinaryType return values. #define SCS_32BIT_BINARY 0 #define SCS_DOS_BINARY 1 #define SCS_WOW_BINARY 2 #define SCS_PIF_BINARY 3 #define SCS_POSIX_BINARY 4 #define SCS_OS216_BINARY 5 #define SCS_64BIT_BINARY 6 #if defined(_WIN64) # define SCS_THIS_PLATFORM_BINARY SCS_64BIT_BINARY #else # define SCS_THIS_PLATFORM_BINARY SCS_32BIT_BINARY #endif WINBASEAPI BOOL WINAPI GetBinaryTypeA( IN LPCSTR lpApplicationName, OUT LPDWORD lpBinaryType ); WINBASEAPI BOOL WINAPI GetBinaryTypeW( IN LPCWSTR lpApplicationName, OUT LPDWORD lpBinaryType ); #ifdef UNICODE #define GetBinaryType GetBinaryTypeW #else #define GetBinaryType GetBinaryTypeA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetShortPathNameA( IN LPCSTR lpszLongPath, OUT LPSTR lpszShortPath, IN DWORD cchBuffer ); WINBASEAPI DWORD WINAPI GetShortPathNameW( IN LPCWSTR lpszLongPath, OUT LPWSTR lpszShortPath, IN DWORD cchBuffer ); #ifdef UNICODE #define GetShortPathName GetShortPathNameW #else #define GetShortPathName GetShortPathNameA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetLongPathNameA( IN LPCSTR lpszShortPath, OUT LPSTR lpszLongPath, IN DWORD cchBuffer ); WINBASEAPI DWORD WINAPI GetLongPathNameW( IN LPCWSTR lpszShortPath, OUT LPWSTR lpszLongPath, IN DWORD cchBuffer ); #ifdef UNICODE #define GetLongPathName GetLongPathNameW #else #define GetLongPathName GetLongPathNameA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetProcessAffinityMask( IN HANDLE hProcess, OUT PDWORD_PTR lpProcessAffinityMask, OUT PDWORD_PTR lpSystemAffinityMask ); WINBASEAPI BOOL WINAPI SetProcessAffinityMask( IN HANDLE hProcess, IN DWORD_PTR dwProcessAffinityMask ); #if _WIN32_WINNT >= 0x0501 WINBASEAPI BOOL WINAPI GetProcessHandleCount( IN HANDLE hProcess, OUT PDWORD pdwHandleCount ); #endif // (_WIN32_WINNT >= 0x0501) WINBASEAPI BOOL WINAPI GetProcessTimes( IN HANDLE hProcess, OUT LPFILETIME lpCreationTime, OUT LPFILETIME lpExitTime, OUT LPFILETIME lpKernelTime, OUT LPFILETIME lpUserTime ); WINBASEAPI BOOL WINAPI GetProcessIoCounters( IN HANDLE hProcess, OUT PIO_COUNTERS lpIoCounters ); WINBASEAPI BOOL WINAPI GetProcessWorkingSetSize( IN HANDLE hProcess, OUT PSIZE_T lpMinimumWorkingSetSize, OUT PSIZE_T lpMaximumWorkingSetSize ); WINBASEAPI BOOL WINAPI GetProcessWorkingSetSizeEx( IN HANDLE hProcess, OUT PSIZE_T lpMinimumWorkingSetSize, OUT PSIZE_T lpMaximumWorkingSetSize, OUT PDWORD Flags ); WINBASEAPI BOOL WINAPI SetProcessWorkingSetSize( IN HANDLE hProcess, IN SIZE_T dwMinimumWorkingSetSize, IN SIZE_T dwMaximumWorkingSetSize ); WINBASEAPI BOOL WINAPI SetProcessWorkingSetSizeEx( IN HANDLE hProcess, IN SIZE_T dwMinimumWorkingSetSize, IN SIZE_T dwMaximumWorkingSetSize, IN DWORD Flags ); WINBASEAPI HANDLE WINAPI OpenProcess( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId ); WINBASEAPI HANDLE WINAPI GetCurrentProcess( VOID ); WINBASEAPI DWORD WINAPI GetCurrentProcessId( VOID ); WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess( IN UINT uExitCode ); WINBASEAPI BOOL WINAPI TerminateProcess( IN HANDLE hProcess, IN UINT uExitCode ); WINBASEAPI BOOL WINAPI GetExitCodeProcess( IN HANDLE hProcess, OUT LPDWORD lpExitCode ); WINBASEAPI VOID WINAPI FatalExit( IN int ExitCode ); WINBASEAPI LPSTR WINAPI GetEnvironmentStrings( VOID ); WINBASEAPI LPWSTR WINAPI GetEnvironmentStringsW( VOID ); #ifdef UNICODE #define GetEnvironmentStrings GetEnvironmentStringsW #else #define GetEnvironmentStringsA GetEnvironmentStrings #endif // !UNICODE WINBASEAPI BOOL WINAPI SetEnvironmentStringsA( IN LPSTR NewEnvironment ); WINBASEAPI BOOL WINAPI SetEnvironmentStringsW( IN LPWSTR NewEnvironment ); #ifdef UNICODE #define SetEnvironmentStrings SetEnvironmentStringsW #else #define SetEnvironmentStrings SetEnvironmentStringsA #endif // !UNICODE WINBASEAPI BOOL WINAPI FreeEnvironmentStringsA( IN LPSTR ); WINBASEAPI BOOL WINAPI FreeEnvironmentStringsW( IN LPWSTR ); #ifdef UNICODE #define FreeEnvironmentStrings FreeEnvironmentStringsW #else #define FreeEnvironmentStrings FreeEnvironmentStringsA #endif // !UNICODE WINBASEAPI VOID WINAPI RaiseException( IN DWORD dwExceptionCode, IN DWORD dwExceptionFlags, IN DWORD nNumberOfArguments, IN CONST ULONG_PTR *lpArguments ); WINBASEAPI LONG WINAPI UnhandledExceptionFilter( IN struct _EXCEPTION_POINTERS *ExceptionInfo ); typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)( struct _EXCEPTION_POINTERS *ExceptionInfo ); typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter( IN LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter ); #if(_WIN32_WINNT >= 0x0400) // // Fiber creation flags // #define FIBER_FLAG_FLOAT_SWITCH 0x1 // context switch floating point WINBASEAPI LPVOID WINAPI CreateFiber( IN SIZE_T dwStackSize, IN LPFIBER_START_ROUTINE lpStartAddress, IN LPVOID lpParameter ); WINBASEAPI LPVOID WINAPI CreateFiberEx( SIZE_T dwStackCommitSize, SIZE_T dwStackReserveSize, DWORD dwFlags, LPFIBER_START_ROUTINE lpStartAddress, LPVOID lpParameter ); WINBASEAPI VOID WINAPI DeleteFiber( IN LPVOID lpFiber ); WINBASEAPI LPVOID WINAPI ConvertThreadToFiber( IN LPVOID lpParameter ); WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx( IN LPVOID lpParameter, IN DWORD dwFlags ); WINBASEAPI BOOL WINAPI ConvertFiberToThread( VOID ); WINBASEAPI VOID WINAPI SwitchToFiber( IN LPVOID lpFiber ); WINBASEAPI BOOL WINAPI SwitchToThread( VOID ); #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI HANDLE WINAPI CreateThread( IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN SIZE_T dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId ); WINBASEAPI HANDLE WINAPI CreateRemoteThread( IN HANDLE hProcess, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN SIZE_T dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId ); WINBASEAPI HANDLE WINAPI GetCurrentThread( VOID ); WINBASEAPI DWORD WINAPI GetCurrentThreadId( VOID ); WINBASEAPI DWORD WINAPI GetProcessIdOfThread( HANDLE Thread ); WINBASEAPI DWORD WINAPI GetThreadId( HANDLE Thread ); WINBASEAPI DWORD WINAPI GetProcessId( HANDLE Process ); WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber( VOID ); WINBASEAPI DWORD_PTR WINAPI SetThreadAffinityMask( IN HANDLE hThread, IN DWORD_PTR dwThreadAffinityMask ); #if(_WIN32_WINNT >= 0x0400) WINBASEAPI DWORD WINAPI SetThreadIdealProcessor( IN HANDLE hThread, IN DWORD dwIdealProcessor ); #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI BOOL WINAPI SetProcessPriorityBoost( IN HANDLE hProcess, IN BOOL bDisablePriorityBoost ); WINBASEAPI BOOL WINAPI GetProcessPriorityBoost( IN HANDLE hProcess, OUT PBOOL pDisablePriorityBoost ); WINBASEAPI BOOL WINAPI RequestWakeupLatency( IN LATENCY_TIME latency ); WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic( VOID ); WINBASEAPI HANDLE WINAPI OpenThread( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwThreadId ); WINBASEAPI BOOL WINAPI SetThreadPriority( IN HANDLE hThread, IN int nPriority ); WINBASEAPI BOOL WINAPI SetThreadPriorityBoost( IN HANDLE hThread, IN BOOL bDisablePriorityBoost ); WINBASEAPI BOOL WINAPI GetThreadPriorityBoost( IN HANDLE hThread, OUT PBOOL pDisablePriorityBoost ); WINBASEAPI int WINAPI GetThreadPriority( IN HANDLE hThread ); WINBASEAPI BOOL WINAPI GetThreadTimes( IN HANDLE hThread, OUT LPFILETIME lpCreationTime, OUT LPFILETIME lpExitTime, OUT LPFILETIME lpKernelTime, OUT LPFILETIME lpUserTime ); #if _WIN32_WINNT >= 0x0501 WINBASEAPI BOOL WINAPI GetThreadIOPendingFlag( IN HANDLE hThread, OUT PBOOL lpIOIsPending ); #endif // (_WIN32_WINNT >= 0x0501) WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitThread( IN DWORD dwExitCode ); WINBASEAPI BOOL WINAPI TerminateThread( IN OUT HANDLE hThread, IN DWORD dwExitCode ); WINBASEAPI BOOL WINAPI GetExitCodeThread( IN HANDLE hThread, OUT LPDWORD lpExitCode ); WINBASEAPI BOOL WINAPI GetThreadSelectorEntry( IN HANDLE hThread, IN DWORD dwSelector, OUT LPLDT_ENTRY lpSelectorEntry ); WINBASEAPI EXECUTION_STATE WINAPI SetThreadExecutionState( IN EXECUTION_STATE esFlags ); WINBASEAPI DWORD WINAPI GetLastError( VOID ); WINBASEAPI VOID WINAPI SetLastError( IN DWORD dwErrCode ); #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_RESTORE_LAST_ERROR" is a bit long. //#if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_RESTORE_LAST_ERROR) #if defined(WINBASE_DECLARE_RESTORE_LAST_ERROR) WINBASEAPI VOID WINAPI RestoreLastError( IN DWORD dwErrCode ); typedef VOID (WINAPI* PRESTORE_LAST_ERROR)(DWORD); #define RESTORE_LAST_ERROR_NAME_A "RestoreLastError" #define RESTORE_LAST_ERROR_NAME_W L"RestoreLastError" #define RESTORE_LAST_ERROR_NAME TEXT("RestoreLastError") #endif #endif #define HasOverlappedIoCompleted(lpOverlapped) ((lpOverlapped)->Internal != STATUS_PENDING) WINBASEAPI BOOL WINAPI GetOverlappedResult( IN HANDLE hFile, IN LPOVERLAPPED lpOverlapped, OUT LPDWORD lpNumberOfBytesTransferred, IN BOOL bWait ); WINBASEAPI HANDLE WINAPI CreateIoCompletionPort( IN HANDLE FileHandle, IN HANDLE ExistingCompletionPort, IN ULONG_PTR CompletionKey, IN DWORD NumberOfConcurrentThreads ); WINBASEAPI BOOL WINAPI GetQueuedCompletionStatus( IN HANDLE CompletionPort, OUT LPDWORD lpNumberOfBytesTransferred, OUT PULONG_PTR lpCompletionKey, OUT LPOVERLAPPED *lpOverlapped, IN DWORD dwMilliseconds ); WINBASEAPI BOOL WINAPI PostQueuedCompletionStatus( IN HANDLE CompletionPort, IN DWORD dwNumberOfBytesTransferred, IN ULONG_PTR dwCompletionKey, IN LPOVERLAPPED lpOverlapped ); #define SEM_FAILCRITICALERRORS 0x0001 #define SEM_NOGPFAULTERRORBOX 0x0002 #define SEM_NOALIGNMENTFAULTEXCEPT 0x0004 #define SEM_NOOPENFILEERRORBOX 0x8000 WINBASEAPI UINT WINAPI SetErrorMode( IN UINT uMode ); WINBASEAPI BOOL WINAPI ReadProcessMemory( IN HANDLE hProcess, IN LPCVOID lpBaseAddress, OUT LPVOID lpBuffer, IN SIZE_T nSize, OUT SIZE_T * lpNumberOfBytesRead ); WINBASEAPI BOOL WINAPI WriteProcessMemory( IN HANDLE hProcess, IN LPVOID lpBaseAddress, IN LPCVOID lpBuffer, IN SIZE_T nSize, OUT SIZE_T * lpNumberOfBytesWritten ); #if !defined(MIDL_PASS) WINBASEAPI BOOL WINAPI GetThreadContext( IN HANDLE hThread, IN OUT LPCONTEXT lpContext ); WINBASEAPI BOOL WINAPI SetThreadContext( IN HANDLE hThread, IN CONST CONTEXT *lpContext ); #endif WINBASEAPI DWORD WINAPI SuspendThread( IN HANDLE hThread ); WINBASEAPI DWORD WINAPI ResumeThread( IN HANDLE hThread ); #if(_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) typedef VOID (APIENTRY *PAPCFUNC)( ULONG_PTR dwParam ); WINBASEAPI DWORD WINAPI QueueUserAPC( IN PAPCFUNC pfnAPC, IN HANDLE hThread, IN ULONG_PTR dwData ); #endif /* _WIN32_WINNT >= 0x0400 || _WIN32_WINDOWS > 0x0400 */ #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) WINBASEAPI BOOL WINAPI IsDebuggerPresent( VOID ); #endif #if _WIN32_WINNT >= 0x0501 WINBASEAPI BOOL WINAPI CheckRemoteDebuggerPresent( IN HANDLE hProcess, OUT PBOOL pbDebuggerPresent ); #endif // (_WIN32_WINNT >= 0x0501) WINBASEAPI VOID WINAPI DebugBreak( VOID ); WINBASEAPI BOOL WINAPI WaitForDebugEvent( IN LPDEBUG_EVENT lpDebugEvent, IN DWORD dwMilliseconds ); WINBASEAPI BOOL WINAPI ContinueDebugEvent( IN DWORD dwProcessId, IN DWORD dwThreadId, IN DWORD dwContinueStatus ); WINBASEAPI BOOL WINAPI DebugActiveProcess( IN DWORD dwProcessId ); WINBASEAPI BOOL WINAPI DebugActiveProcessStop( IN DWORD dwProcessId ); WINBASEAPI BOOL WINAPI DebugSetProcessKillOnExit( IN BOOL KillOnExit ); WINBASEAPI BOOL WINAPI DebugBreakProcess ( IN HANDLE Process ); WINBASEAPI VOID WINAPI InitializeCriticalSection( OUT LPCRITICAL_SECTION lpCriticalSection ); WINBASEAPI VOID WINAPI EnterCriticalSection( IN OUT LPCRITICAL_SECTION lpCriticalSection ); WINBASEAPI VOID WINAPI LeaveCriticalSection( IN OUT LPCRITICAL_SECTION lpCriticalSection ); #if (_WIN32_WINNT >= 0x0403) WINBASEAPI BOOL WINAPI InitializeCriticalSectionAndSpinCount( IN OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount ); WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount( IN OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount ); #endif #if(_WIN32_WINNT >= 0x0400) WINBASEAPI BOOL WINAPI TryEnterCriticalSection( IN OUT LPCRITICAL_SECTION lpCriticalSection ); #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI VOID WINAPI DeleteCriticalSection( IN OUT LPCRITICAL_SECTION lpCriticalSection ); WINBASEAPI BOOL WINAPI SetEvent( IN HANDLE hEvent ); WINBASEAPI BOOL WINAPI ResetEvent( IN HANDLE hEvent ); WINBASEAPI BOOL WINAPI PulseEvent( IN HANDLE hEvent ); WINBASEAPI BOOL WINAPI ReleaseSemaphore( IN HANDLE hSemaphore, IN LONG lReleaseCount, OUT LPLONG lpPreviousCount ); WINBASEAPI BOOL WINAPI ReleaseMutex( IN HANDLE hMutex ); WINBASEAPI DWORD WINAPI WaitForSingleObject( IN HANDLE hHandle, IN DWORD dwMilliseconds ); WINBASEAPI DWORD WINAPI WaitForMultipleObjects( IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds ); WINBASEAPI VOID WINAPI Sleep( IN DWORD dwMilliseconds ); WINBASEAPI HGLOBAL WINAPI LoadResource( IN HMODULE hModule, IN HRSRC hResInfo ); WINBASEAPI DWORD WINAPI SizeofResource( IN HMODULE hModule, IN HRSRC hResInfo ); WINBASEAPI ATOM WINAPI GlobalDeleteAtom( IN ATOM nAtom ); WINBASEAPI BOOL WINAPI InitAtomTable( IN DWORD nSize ); WINBASEAPI ATOM WINAPI DeleteAtom( IN ATOM nAtom ); WINBASEAPI UINT WINAPI SetHandleCount( IN UINT uNumber ); WINBASEAPI DWORD WINAPI GetLogicalDrives( VOID ); WINBASEAPI BOOL WINAPI LockFile( IN HANDLE hFile, IN DWORD dwFileOffsetLow, IN DWORD dwFileOffsetHigh, IN DWORD nNumberOfBytesToLockLow, IN DWORD nNumberOfBytesToLockHigh ); WINBASEAPI BOOL WINAPI UnlockFile( IN HANDLE hFile, IN DWORD dwFileOffsetLow, IN DWORD dwFileOffsetHigh, IN DWORD nNumberOfBytesToUnlockLow, IN DWORD nNumberOfBytesToUnlockHigh ); WINBASEAPI BOOL WINAPI LockFileEx( IN HANDLE hFile, IN DWORD dwFlags, IN DWORD dwReserved, IN DWORD nNumberOfBytesToLockLow, IN DWORD nNumberOfBytesToLockHigh, IN LPOVERLAPPED lpOverlapped ); #define LOCKFILE_FAIL_IMMEDIATELY 0x00000001 #define LOCKFILE_EXCLUSIVE_LOCK 0x00000002 WINBASEAPI BOOL WINAPI UnlockFileEx( IN HANDLE hFile, IN DWORD dwReserved, IN DWORD nNumberOfBytesToUnlockLow, IN DWORD nNumberOfBytesToUnlockHigh, IN LPOVERLAPPED lpOverlapped ); typedef 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; } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION; WINBASEAPI BOOL WINAPI GetFileInformationByHandle( IN HANDLE hFile, OUT LPBY_HANDLE_FILE_INFORMATION lpFileInformation ); WINBASEAPI DWORD WINAPI GetFileType( IN HANDLE hFile ); WINBASEAPI DWORD WINAPI GetFileSize( IN HANDLE hFile, OUT LPDWORD lpFileSizeHigh ); WINBASEAPI BOOL WINAPI GetFileSizeEx( HANDLE hFile, PLARGE_INTEGER lpFileSize ); WINBASEAPI HANDLE WINAPI GetStdHandle( IN DWORD nStdHandle ); WINBASEAPI BOOL WINAPI SetStdHandle( IN DWORD nStdHandle, IN HANDLE hHandle ); WINBASEAPI BOOL WINAPI WriteFile( IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI BOOL WINAPI ReadFile( IN HANDLE hFile, OUT LPVOID lpBuffer, IN DWORD nNumberOfBytesToRead, OUT LPDWORD lpNumberOfBytesRead, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI BOOL WINAPI FlushFileBuffers( IN HANDLE hFile ); WINBASEAPI BOOL WINAPI DeviceIoControl( IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesReturned, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI BOOL WINAPI RequestDeviceWakeup( IN HANDLE hDevice ); WINBASEAPI BOOL WINAPI CancelDeviceWakeupRequest( IN HANDLE hDevice ); WINBASEAPI BOOL WINAPI GetDevicePowerState( IN HANDLE hDevice, OUT BOOL *pfOn ); WINBASEAPI BOOL WINAPI SetMessageWaitingIndicator( IN HANDLE hMsgIndicator, IN ULONG ulMsgCount ); WINBASEAPI BOOL WINAPI SetEndOfFile( IN HANDLE hFile ); WINBASEAPI DWORD WINAPI SetFilePointer( IN HANDLE hFile, IN LONG lDistanceToMove, IN PLONG lpDistanceToMoveHigh, IN DWORD dwMoveMethod ); WINBASEAPI BOOL WINAPI SetFilePointerEx( HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod ); WINBASEAPI BOOL WINAPI FindClose( IN OUT HANDLE hFindFile ); WINBASEAPI BOOL WINAPI GetFileTime( IN HANDLE hFile, OUT LPFILETIME lpCreationTime, OUT LPFILETIME lpLastAccessTime, OUT LPFILETIME lpLastWriteTime ); WINBASEAPI BOOL WINAPI SetFileTime( IN HANDLE hFile, IN CONST FILETIME *lpCreationTime, IN CONST FILETIME *lpLastAccessTime, IN CONST FILETIME *lpLastWriteTime ); WINBASEAPI BOOL WINAPI SetFileValidData( IN HANDLE hFile, IN LONGLONG ValidDataLength ); WINBASEAPI BOOL WINAPI SetFileShortNameA( IN HANDLE hFile, IN LPCSTR lpShortName ); WINBASEAPI BOOL WINAPI SetFileShortNameW( IN HANDLE hFile, IN LPCWSTR lpShortName ); #ifdef UNICODE #define SetFileShortName SetFileShortNameW #else #define SetFileShortName SetFileShortNameA #endif // !UNICODE WINBASEAPI BOOL WINAPI CloseHandle( IN OUT HANDLE hObject ); WINBASEAPI BOOL WINAPI DuplicateHandle( IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions ); WINBASEAPI BOOL WINAPI GetHandleInformation( IN HANDLE hObject, OUT LPDWORD lpdwFlags ); WINBASEAPI BOOL WINAPI SetHandleInformation( IN HANDLE hObject, IN DWORD dwMask, IN DWORD dwFlags ); #define HANDLE_FLAG_INHERIT 0x00000001 #define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002 #define HINSTANCE_ERROR 32 WINBASEAPI DWORD WINAPI LoadModule( IN LPCSTR lpModuleName, IN LPVOID lpParameterBlock ); WINBASEAPI UINT WINAPI WinExec( IN LPCSTR lpCmdLine, IN UINT uCmdShow ); WINBASEAPI BOOL WINAPI ClearCommBreak( IN HANDLE hFile ); WINBASEAPI BOOL WINAPI ClearCommError( IN HANDLE hFile, OUT LPDWORD lpErrors, OUT LPCOMSTAT lpStat ); WINBASEAPI BOOL WINAPI SetupComm( IN HANDLE hFile, IN DWORD dwInQueue, IN DWORD dwOutQueue ); WINBASEAPI BOOL WINAPI EscapeCommFunction( IN HANDLE hFile, IN DWORD dwFunc ); WINBASEAPI BOOL WINAPI GetCommConfig( IN HANDLE hCommDev, OUT LPCOMMCONFIG lpCC, IN OUT LPDWORD lpdwSize ); WINBASEAPI BOOL WINAPI GetCommMask( IN HANDLE hFile, OUT LPDWORD lpEvtMask ); WINBASEAPI BOOL WINAPI GetCommProperties( IN HANDLE hFile, OUT LPCOMMPROP lpCommProp ); WINBASEAPI BOOL WINAPI GetCommModemStatus( IN HANDLE hFile, OUT LPDWORD lpModemStat ); WINBASEAPI BOOL WINAPI GetCommState( IN HANDLE hFile, OUT LPDCB lpDCB ); WINBASEAPI BOOL WINAPI GetCommTimeouts( IN HANDLE hFile, OUT LPCOMMTIMEOUTS lpCommTimeouts ); WINBASEAPI BOOL WINAPI PurgeComm( IN HANDLE hFile, IN DWORD dwFlags ); WINBASEAPI BOOL WINAPI SetCommBreak( IN HANDLE hFile ); WINBASEAPI BOOL WINAPI SetCommConfig( IN HANDLE hCommDev, IN LPCOMMCONFIG lpCC, IN DWORD dwSize ); WINBASEAPI BOOL WINAPI SetCommMask( IN HANDLE hFile, IN DWORD dwEvtMask ); WINBASEAPI BOOL WINAPI SetCommState( IN HANDLE hFile, IN LPDCB lpDCB ); WINBASEAPI BOOL WINAPI SetCommTimeouts( IN HANDLE hFile, IN LPCOMMTIMEOUTS lpCommTimeouts ); WINBASEAPI BOOL WINAPI TransmitCommChar( IN HANDLE hFile, IN char cChar ); WINBASEAPI BOOL WINAPI WaitCommEvent( IN HANDLE hFile, OUT LPDWORD lpEvtMask, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI DWORD WINAPI SetTapePosition( IN HANDLE hDevice, IN DWORD dwPositionMethod, IN DWORD dwPartition, IN DWORD dwOffsetLow, IN DWORD dwOffsetHigh, IN BOOL bImmediate ); WINBASEAPI DWORD WINAPI GetTapePosition( IN HANDLE hDevice, IN DWORD dwPositionType, OUT LPDWORD lpdwPartition, OUT LPDWORD lpdwOffsetLow, OUT LPDWORD lpdwOffsetHigh ); WINBASEAPI DWORD WINAPI PrepareTape( IN HANDLE hDevice, IN DWORD dwOperation, IN BOOL bImmediate ); WINBASEAPI DWORD WINAPI EraseTape( IN HANDLE hDevice, IN DWORD dwEraseType, IN BOOL bImmediate ); WINBASEAPI DWORD WINAPI CreateTapePartition( IN HANDLE hDevice, IN DWORD dwPartitionMethod, IN DWORD dwCount, IN DWORD dwSize ); WINBASEAPI DWORD WINAPI WriteTapemark( IN HANDLE hDevice, IN DWORD dwTapemarkType, IN DWORD dwTapemarkCount, IN BOOL bImmediate ); WINBASEAPI DWORD WINAPI GetTapeStatus( IN HANDLE hDevice ); WINBASEAPI DWORD WINAPI GetTapeParameters( IN HANDLE hDevice, IN DWORD dwOperation, OUT LPDWORD lpdwSize, OUT LPVOID lpTapeInformation ); #define GET_TAPE_MEDIA_INFORMATION 0 #define GET_TAPE_DRIVE_INFORMATION 1 WINBASEAPI DWORD WINAPI SetTapeParameters( IN HANDLE hDevice, IN DWORD dwOperation, IN LPVOID lpTapeInformation ); #define SET_TAPE_MEDIA_INFORMATION 0 #define SET_TAPE_DRIVE_INFORMATION 1 WINBASEAPI BOOL WINAPI Beep( IN DWORD dwFreq, IN DWORD dwDuration ); WINBASEAPI int WINAPI MulDiv( IN int nNumber, IN int nNumerator, IN int nDenominator ); WINBASEAPI VOID WINAPI GetSystemTime( OUT LPSYSTEMTIME lpSystemTime ); WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime( OUT LPFILETIME lpSystemTimeAsFileTime ); WINBASEAPI BOOL WINAPI SetSystemTime( IN CONST SYSTEMTIME *lpSystemTime ); WINBASEAPI VOID WINAPI GetLocalTime( OUT LPSYSTEMTIME lpSystemTime ); WINBASEAPI BOOL WINAPI SetLocalTime( IN CONST SYSTEMTIME *lpSystemTime ); WINBASEAPI VOID WINAPI GetSystemInfo( OUT LPSYSTEM_INFO lpSystemInfo ); #if _WIN32_WINNT >= 0x0501 WINBASEAPI BOOL WINAPI GetSystemRegistryQuota( OUT PDWORD pdwQuotaAllowed, OUT PDWORD pdwQuotaUsed ); BOOL WINAPI GetSystemTimes( LPFILETIME lpIdleTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ); #endif // (_WIN32_WINNT >= 0x0501) #if _WIN32_WINNT >= 0x0501 WINBASEAPI VOID WINAPI GetNativeSystemInfo( OUT LPSYSTEM_INFO lpSystemInfo ); #endif WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent( IN DWORD ProcessorFeature ); typedef struct _TIME_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[ 32 ]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[ 32 ]; SYSTEMTIME DaylightDate; LONG DaylightBias; } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; WINBASEAPI BOOL WINAPI SystemTimeToTzSpecificLocalTime( IN LPTIME_ZONE_INFORMATION lpTimeZoneInformation, IN LPSYSTEMTIME lpUniversalTime, OUT LPSYSTEMTIME lpLocalTime ); WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime( IN LPTIME_ZONE_INFORMATION lpTimeZoneInformation, IN LPSYSTEMTIME lpLocalTime, OUT LPSYSTEMTIME lpUniversalTime ); WINBASEAPI DWORD WINAPI GetTimeZoneInformation( OUT LPTIME_ZONE_INFORMATION lpTimeZoneInformation ); WINBASEAPI BOOL WINAPI SetTimeZoneInformation( IN CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation ); // // Routines to convert back and forth between system time and file time // WINBASEAPI BOOL WINAPI SystemTimeToFileTime( IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime ); WINBASEAPI BOOL WINAPI FileTimeToLocalFileTime( IN CONST FILETIME *lpFileTime, OUT LPFILETIME lpLocalFileTime ); WINBASEAPI BOOL WINAPI LocalFileTimeToFileTime( IN CONST FILETIME *lpLocalFileTime, OUT LPFILETIME lpFileTime ); WINBASEAPI BOOL WINAPI FileTimeToSystemTime( IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime ); WINBASEAPI LONG WINAPI CompareFileTime( IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2 ); WINBASEAPI BOOL WINAPI FileTimeToDosDateTime( IN CONST FILETIME *lpFileTime, OUT LPWORD lpFatDate, OUT LPWORD lpFatTime ); WINBASEAPI BOOL WINAPI DosDateTimeToFileTime( IN WORD wFatDate, IN WORD wFatTime, OUT LPFILETIME lpFileTime ); WINBASEAPI DWORD WINAPI GetTickCount( VOID ); WINBASEAPI BOOL WINAPI SetSystemTimeAdjustment( IN DWORD dwTimeAdjustment, IN BOOL bTimeAdjustmentDisabled ); WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment( OUT PDWORD lpTimeAdjustment, OUT PDWORD lpTimeIncrement, OUT PBOOL lpTimeAdjustmentDisabled ); #if !defined(MIDL_PASS) WINBASEAPI DWORD WINAPI FormatMessageA( IN DWORD dwFlags, IN LPCVOID lpSource, IN DWORD dwMessageId, IN DWORD dwLanguageId, OUT LPSTR lpBuffer, IN DWORD nSize, IN va_list *Arguments ); WINBASEAPI DWORD WINAPI FormatMessageW( IN DWORD dwFlags, IN LPCVOID lpSource, IN DWORD dwMessageId, IN DWORD dwLanguageId, OUT LPWSTR lpBuffer, IN DWORD nSize, IN va_list *Arguments ); #ifdef UNICODE #define FormatMessage FormatMessageW #else #define FormatMessage FormatMessageA #endif // !UNICODE #endif #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100 #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 #define FORMAT_MESSAGE_FROM_STRING 0x00000400 #define FORMAT_MESSAGE_FROM_HMODULE 0x00000800 #define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000 #define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000 #define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FF WINBASEAPI BOOL WINAPI CreatePipe( OUT PHANDLE hReadPipe, OUT PHANDLE hWritePipe, IN LPSECURITY_ATTRIBUTES lpPipeAttributes, IN DWORD nSize ); WINBASEAPI BOOL WINAPI ConnectNamedPipe( IN HANDLE hNamedPipe, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI BOOL WINAPI DisconnectNamedPipe( IN HANDLE hNamedPipe ); WINBASEAPI BOOL WINAPI SetNamedPipeHandleState( IN HANDLE hNamedPipe, IN LPDWORD lpMode, IN LPDWORD lpMaxCollectionCount, IN LPDWORD lpCollectDataTimeout ); WINBASEAPI BOOL WINAPI GetNamedPipeInfo( IN HANDLE hNamedPipe, IN LPDWORD lpFlags, OUT LPDWORD lpOutBufferSize, OUT LPDWORD lpInBufferSize, OUT LPDWORD lpMaxInstances ); WINBASEAPI BOOL WINAPI PeekNamedPipe( IN HANDLE hNamedPipe, OUT LPVOID lpBuffer, IN DWORD nBufferSize, OUT LPDWORD lpBytesRead, OUT LPDWORD lpTotalBytesAvail, OUT LPDWORD lpBytesLeftThisMessage ); WINBASEAPI BOOL WINAPI TransactNamedPipe( IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI HANDLE WINAPI CreateMailslotA( IN LPCSTR lpName, IN DWORD nMaxMessageSize, IN DWORD lReadTimeout, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); WINBASEAPI HANDLE WINAPI CreateMailslotW( IN LPCWSTR lpName, IN DWORD nMaxMessageSize, IN DWORD lReadTimeout, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define CreateMailslot CreateMailslotW #else #define CreateMailslot CreateMailslotA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetMailslotInfo( IN HANDLE hMailslot, IN LPDWORD lpMaxMessageSize, IN LPDWORD lpNextSize, IN LPDWORD lpMessageCount, IN LPDWORD lpReadTimeout ); WINBASEAPI BOOL WINAPI SetMailslotInfo( IN HANDLE hMailslot, IN DWORD lReadTimeout ); WINBASEAPI LPVOID WINAPI MapViewOfFile( IN HANDLE hFileMappingObject, IN DWORD dwDesiredAccess, IN DWORD dwFileOffsetHigh, IN DWORD dwFileOffsetLow, IN SIZE_T dwNumberOfBytesToMap ); WINBASEAPI BOOL WINAPI FlushViewOfFile( IN LPCVOID lpBaseAddress, IN SIZE_T dwNumberOfBytesToFlush ); WINBASEAPI BOOL WINAPI UnmapViewOfFile( IN LPCVOID lpBaseAddress ); // // File Encryption API // WINADVAPI BOOL WINAPI EncryptFileA( IN LPCSTR lpFileName ); WINADVAPI BOOL WINAPI EncryptFileW( IN LPCWSTR lpFileName ); #ifdef UNICODE #define EncryptFile EncryptFileW #else #define EncryptFile EncryptFileA #endif // !UNICODE WINADVAPI BOOL WINAPI DecryptFileA( IN LPCSTR lpFileName, IN DWORD dwReserved ); WINADVAPI BOOL WINAPI DecryptFileW( IN LPCWSTR lpFileName, IN DWORD dwReserved ); #ifdef UNICODE #define DecryptFile DecryptFileW #else #define DecryptFile DecryptFileA #endif // !UNICODE // // Encryption Status Value // #define FILE_ENCRYPTABLE 0 #define FILE_IS_ENCRYPTED 1 #define FILE_SYSTEM_ATTR 2 #define FILE_ROOT_DIR 3 #define FILE_SYSTEM_DIR 4 #define FILE_UNKNOWN 5 #define FILE_SYSTEM_NOT_SUPPORT 6 #define FILE_USER_DISALLOWED 7 #define FILE_READ_ONLY 8 #define FILE_DIR_DISALLOWED 9 WINADVAPI BOOL WINAPI FileEncryptionStatusA( LPCSTR lpFileName, LPDWORD lpStatus ); WINADVAPI BOOL WINAPI FileEncryptionStatusW( LPCWSTR lpFileName, LPDWORD lpStatus ); #ifdef UNICODE #define FileEncryptionStatus FileEncryptionStatusW #else #define FileEncryptionStatus FileEncryptionStatusA #endif // !UNICODE // // Currently defined recovery flags // #define EFS_USE_RECOVERY_KEYS (0x1) typedef DWORD (WINAPI *PFE_EXPORT_FUNC)( PBYTE pbData, PVOID pvCallbackContext, ULONG ulLength ); typedef DWORD (WINAPI *PFE_IMPORT_FUNC)( PBYTE pbData, PVOID pvCallbackContext, PULONG ulLength ); // // OpenRaw flag values // #define CREATE_FOR_IMPORT (1) #define CREATE_FOR_DIR (2) #define OVERWRITE_HIDDEN (4) WINADVAPI DWORD WINAPI OpenEncryptedFileRawA( IN LPCSTR lpFileName, IN ULONG ulFlags, IN PVOID * pvContext ); WINADVAPI DWORD WINAPI OpenEncryptedFileRawW( IN LPCWSTR lpFileName, IN ULONG ulFlags, IN PVOID * pvContext ); #ifdef UNICODE #define OpenEncryptedFileRaw OpenEncryptedFileRawW #else #define OpenEncryptedFileRaw OpenEncryptedFileRawA #endif // !UNICODE WINADVAPI DWORD WINAPI ReadEncryptedFileRaw( IN PFE_EXPORT_FUNC pfExportCallback, IN PVOID pvCallbackContext, IN PVOID pvContext ); WINADVAPI DWORD WINAPI WriteEncryptedFileRaw( IN PFE_IMPORT_FUNC pfImportCallback, IN PVOID pvCallbackContext, IN PVOID pvContext ); WINADVAPI VOID WINAPI CloseEncryptedFileRaw( IN PVOID pvContext ); // // _l Compat Functions // WINBASEAPI int WINAPI lstrcmpA( IN LPCSTR lpString1, IN LPCSTR lpString2 ); WINBASEAPI int WINAPI lstrcmpW( IN LPCWSTR lpString1, IN LPCWSTR lpString2 ); #ifdef UNICODE #define lstrcmp lstrcmpW #else #define lstrcmp lstrcmpA #endif // !UNICODE WINBASEAPI int WINAPI lstrcmpiA( IN LPCSTR lpString1, IN LPCSTR lpString2 ); WINBASEAPI int WINAPI lstrcmpiW( IN LPCWSTR lpString1, IN LPCWSTR lpString2 ); #ifdef UNICODE #define lstrcmpi lstrcmpiW #else #define lstrcmpi lstrcmpiA #endif // !UNICODE WINBASEAPI LPSTR WINAPI lstrcpynA( OUT LPSTR lpString1, IN LPCSTR lpString2, IN int iMaxLength ); WINBASEAPI LPWSTR WINAPI lstrcpynW( OUT LPWSTR lpString1, IN LPCWSTR lpString2, IN int iMaxLength ); #ifdef UNICODE #define lstrcpyn lstrcpynW #else #define lstrcpyn lstrcpynA #endif // !UNICODE WINBASEAPI LPSTR WINAPI lstrcpyA( OUT LPSTR lpString1, IN LPCSTR lpString2 ); WINBASEAPI LPWSTR WINAPI lstrcpyW( OUT LPWSTR lpString1, IN LPCWSTR lpString2 ); #ifdef UNICODE #define lstrcpy lstrcpyW #else #define lstrcpy lstrcpyA #endif // !UNICODE WINBASEAPI LPSTR WINAPI lstrcatA( IN OUT LPSTR lpString1, IN LPCSTR lpString2 ); WINBASEAPI LPWSTR WINAPI lstrcatW( IN OUT LPWSTR lpString1, IN LPCWSTR lpString2 ); #ifdef UNICODE #define lstrcat lstrcatW #else #define lstrcat lstrcatA #endif // !UNICODE WINBASEAPI int WINAPI lstrlenA( IN LPCSTR lpString ); WINBASEAPI int WINAPI lstrlenW( IN LPCWSTR lpString ); #ifdef UNICODE #define lstrlen lstrlenW #else #define lstrlen lstrlenA #endif // !UNICODE WINBASEAPI HFILE WINAPI OpenFile( IN LPCSTR lpFileName, OUT LPOFSTRUCT lpReOpenBuff, IN UINT uStyle ); WINBASEAPI HFILE WINAPI _lopen( IN LPCSTR lpPathName, IN int iReadWrite ); WINBASEAPI HFILE WINAPI _lcreat( IN LPCSTR lpPathName, IN int iAttribute ); WINBASEAPI UINT WINAPI _lread( IN HFILE hFile, OUT LPVOID lpBuffer, IN UINT uBytes ); WINBASEAPI UINT WINAPI _lwrite( IN HFILE hFile, IN LPCSTR lpBuffer, IN UINT uBytes ); WINBASEAPI long WINAPI _hread( IN HFILE hFile, OUT LPVOID lpBuffer, IN long lBytes ); WINBASEAPI long WINAPI _hwrite( IN HFILE hFile, IN LPCSTR lpBuffer, IN long lBytes ); WINBASEAPI HFILE WINAPI _lclose( IN OUT HFILE hFile ); WINBASEAPI LONG WINAPI _llseek( IN HFILE hFile, IN LONG lOffset, IN int iOrigin ); WINADVAPI BOOL WINAPI IsTextUnicode( IN CONST VOID* lpBuffer, IN int cb, IN OUT LPINT lpi ); typedef VOID (WINAPI *PFLS_CALLBACK_FUNCTION) ( IN PVOID lpFlsData ); #define FLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF) WINBASEAPI DWORD WINAPI FlsAlloc( IN PFLS_CALLBACK_FUNCTION lpCallback OPTIONAL ); WINBASEAPI PVOID WINAPI FlsGetValue( IN DWORD dwFlsIndex ); WINBASEAPI BOOL WINAPI FlsSetValue( IN DWORD dwFlsIndex, IN PVOID lpFlsData ); WINBASEAPI BOOL WINAPI FlsFree( IN DWORD dwFlsIndex ); #define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF) WINBASEAPI DWORD WINAPI TlsAlloc( VOID ); WINBASEAPI LPVOID WINAPI TlsGetValue( IN DWORD dwTlsIndex ); WINBASEAPI BOOL WINAPI TlsSetValue( IN DWORD dwTlsIndex, IN LPVOID lpTlsValue ); WINBASEAPI BOOL WINAPI TlsFree( IN DWORD dwTlsIndex ); typedef VOID (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped ); WINBASEAPI DWORD WINAPI SleepEx( IN DWORD dwMilliseconds, IN BOOL bAlertable ); WINBASEAPI DWORD WINAPI WaitForSingleObjectEx( IN HANDLE hHandle, IN DWORD dwMilliseconds, IN BOOL bAlertable ); WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx( IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds, IN BOOL bAlertable ); #if(_WIN32_WINNT >= 0x0400) WINBASEAPI DWORD WINAPI SignalObjectAndWait( IN HANDLE hObjectToSignal, IN HANDLE hObjectToWaitOn, IN DWORD dwMilliseconds, IN BOOL bAlertable ); #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI BOOL WINAPI ReadFileEx( IN HANDLE hFile, OUT LPVOID lpBuffer, IN DWORD nNumberOfBytesToRead, IN LPOVERLAPPED lpOverlapped, IN LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); WINBASEAPI BOOL WINAPI WriteFileEx( IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite, IN LPOVERLAPPED lpOverlapped, IN LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); WINBASEAPI BOOL WINAPI BackupRead( IN HANDLE hFile, OUT LPBYTE lpBuffer, IN DWORD nNumberOfBytesToRead, OUT LPDWORD lpNumberOfBytesRead, IN BOOL bAbort, IN BOOL bProcessSecurity, OUT LPVOID *lpContext ); WINBASEAPI BOOL WINAPI BackupSeek( IN HANDLE hFile, IN DWORD dwLowBytesToSeek, IN DWORD dwHighBytesToSeek, OUT LPDWORD lpdwLowByteSeeked, OUT LPDWORD lpdwHighByteSeeked, IN LPVOID *lpContext ); WINBASEAPI BOOL WINAPI BackupWrite( IN HANDLE hFile, IN LPBYTE lpBuffer, IN DWORD nNumberOfBytesToWrite, OUT LPDWORD lpNumberOfBytesWritten, IN BOOL bAbort, IN BOOL bProcessSecurity, OUT LPVOID *lpContext ); // // Stream id structure // typedef struct _WIN32_STREAM_ID { DWORD dwStreamId ; DWORD dwStreamAttributes ; LARGE_INTEGER Size ; DWORD dwStreamNameSize ; WCHAR cStreamName[ ANYSIZE_ARRAY ] ; } WIN32_STREAM_ID, *LPWIN32_STREAM_ID ; // // Stream Ids // #define BACKUP_INVALID 0x00000000 #define BACKUP_DATA 0x00000001 #define BACKUP_EA_DATA 0x00000002 #define BACKUP_SECURITY_DATA 0x00000003 #define BACKUP_ALTERNATE_DATA 0x00000004 #define BACKUP_LINK 0x00000005 #define BACKUP_PROPERTY_DATA 0x00000006 #define BACKUP_OBJECT_ID 0x00000007 #define BACKUP_REPARSE_DATA 0x00000008 #define BACKUP_SPARSE_BLOCK 0x00000009 // // Stream Attributes // #define STREAM_NORMAL_ATTRIBUTE 0x00000000 #define STREAM_MODIFIED_WHEN_READ 0x00000001 #define STREAM_CONTAINS_SECURITY 0x00000002 #define STREAM_CONTAINS_PROPERTIES 0x00000004 #define STREAM_SPARSE_ATTRIBUTE 0x00000008 WINBASEAPI BOOL WINAPI ReadFileScatter( IN HANDLE hFile, IN FILE_SEGMENT_ELEMENT aSegmentArray[], IN DWORD nNumberOfBytesToRead, IN LPDWORD lpReserved, IN LPOVERLAPPED lpOverlapped ); WINBASEAPI BOOL WINAPI WriteFileGather( IN HANDLE hFile, OUT FILE_SEGMENT_ELEMENT aSegmentArray[], IN DWORD nNumberOfBytesToWrite, IN LPDWORD lpReserved, IN LPOVERLAPPED lpOverlapped ); // // Dual Mode API below this line. Dual Mode Structures also included. // #define STARTF_USESHOWWINDOW 0x00000001 #define STARTF_USESIZE 0x00000002 #define STARTF_USEPOSITION 0x00000004 #define STARTF_USECOUNTCHARS 0x00000008 #define STARTF_USEFILLATTRIBUTE 0x00000010 #define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms #define STARTF_FORCEONFEEDBACK 0x00000040 #define STARTF_FORCEOFFFEEDBACK 0x00000080 #define STARTF_USESTDHANDLES 0x00000100 #if(WINVER >= 0x0400) #define STARTF_USEHOTKEY 0x00000200 #endif /* WINVER >= 0x0400 */ typedef 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; } STARTUPINFOA, *LPSTARTUPINFOA; typedef 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; } STARTUPINFOW, *LPSTARTUPINFOW; #ifdef UNICODE typedef STARTUPINFOW STARTUPINFO; typedef LPSTARTUPINFOW LPSTARTUPINFO; #else typedef STARTUPINFOA STARTUPINFO; typedef LPSTARTUPINFOA LPSTARTUPINFO; #endif // UNICODE #define SHUTDOWN_NORETRY 0x00000001 typedef 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 DWORD dwFileType; DWORD dwCreatorType; WORD wFinderFlags; #endif } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; typedef 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 DWORD dwFileType; DWORD dwCreatorType; WORD wFinderFlags; #endif } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; #ifdef UNICODE typedef WIN32_FIND_DATAW WIN32_FIND_DATA; typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA; typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA; #else typedef WIN32_FIND_DATAA WIN32_FIND_DATA; typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA; typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA; #endif // UNICODE typedef struct _WIN32_FILE_ATTRIBUTE_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA; WINBASEAPI HANDLE WINAPI CreateMutexA( IN LPSECURITY_ATTRIBUTES lpMutexAttributes, IN BOOL bInitialOwner, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI CreateMutexW( IN LPSECURITY_ATTRIBUTES lpMutexAttributes, IN BOOL bInitialOwner, IN LPCWSTR lpName ); #ifdef UNICODE #define CreateMutex CreateMutexW #else #define CreateMutex CreateMutexA #endif // !UNICODE WINBASEAPI HANDLE WINAPI OpenMutexA( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI OpenMutexW( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName ); #ifdef UNICODE #define OpenMutex OpenMutexW #else #define OpenMutex OpenMutexA #endif // !UNICODE WINBASEAPI HANDLE WINAPI CreateEventA( IN LPSECURITY_ATTRIBUTES lpEventAttributes, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI CreateEventW( IN LPSECURITY_ATTRIBUTES lpEventAttributes, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName ); #ifdef UNICODE #define CreateEvent CreateEventW #else #define CreateEvent CreateEventA #endif // !UNICODE WINBASEAPI HANDLE WINAPI OpenEventA( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI OpenEventW( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName ); #ifdef UNICODE #define OpenEvent OpenEventW #else #define OpenEvent OpenEventA #endif // !UNICODE WINBASEAPI HANDLE WINAPI CreateSemaphoreA( IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, IN LONG lInitialCount, IN LONG lMaximumCount, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI CreateSemaphoreW( IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, IN LONG lInitialCount, IN LONG lMaximumCount, IN LPCWSTR lpName ); #ifdef UNICODE #define CreateSemaphore CreateSemaphoreW #else #define CreateSemaphore CreateSemaphoreA #endif // !UNICODE WINBASEAPI HANDLE WINAPI OpenSemaphoreA( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI OpenSemaphoreW( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName ); #ifdef UNICODE #define OpenSemaphore OpenSemaphoreW #else #define OpenSemaphore OpenSemaphoreA #endif // !UNICODE #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) typedef VOID (APIENTRY *PTIMERAPCROUTINE)( LPVOID lpArgToCompletionRoutine, DWORD dwTimerLowValue, DWORD dwTimerHighValue ); WINBASEAPI HANDLE WINAPI CreateWaitableTimerA( IN LPSECURITY_ATTRIBUTES lpTimerAttributes, IN BOOL bManualReset, IN LPCSTR lpTimerName ); WINBASEAPI HANDLE WINAPI CreateWaitableTimerW( IN LPSECURITY_ATTRIBUTES lpTimerAttributes, IN BOOL bManualReset, IN LPCWSTR lpTimerName ); #ifdef UNICODE #define CreateWaitableTimer CreateWaitableTimerW #else #define CreateWaitableTimer CreateWaitableTimerA #endif // !UNICODE WINBASEAPI HANDLE WINAPI OpenWaitableTimerA( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpTimerName ); WINBASEAPI HANDLE WINAPI OpenWaitableTimerW( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpTimerName ); #ifdef UNICODE #define OpenWaitableTimer OpenWaitableTimerW #else #define OpenWaitableTimer OpenWaitableTimerA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetWaitableTimer( IN HANDLE hTimer, IN const LARGE_INTEGER *lpDueTime, IN LONG lPeriod, IN PTIMERAPCROUTINE pfnCompletionRoutine, IN LPVOID lpArgToCompletionRoutine, IN BOOL fResume ); WINBASEAPI BOOL WINAPI CancelWaitableTimer( IN HANDLE hTimer ); #endif /* (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) */ WINBASEAPI HANDLE WINAPI CreateFileMappingA( IN HANDLE hFile, IN LPSECURITY_ATTRIBUTES lpFileMappingAttributes, IN DWORD flProtect, IN DWORD dwMaximumSizeHigh, IN DWORD dwMaximumSizeLow, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI CreateFileMappingW( IN HANDLE hFile, IN LPSECURITY_ATTRIBUTES lpFileMappingAttributes, IN DWORD flProtect, IN DWORD dwMaximumSizeHigh, IN DWORD dwMaximumSizeLow, IN LPCWSTR lpName ); #ifdef UNICODE #define CreateFileMapping CreateFileMappingW #else #define CreateFileMapping CreateFileMappingA #endif // !UNICODE WINBASEAPI HANDLE WINAPI OpenFileMappingA( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI OpenFileMappingW( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName ); #ifdef UNICODE #define OpenFileMapping OpenFileMappingW #else #define OpenFileMapping OpenFileMappingA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA( IN DWORD nBufferLength, OUT LPSTR lpBuffer ); WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW( IN DWORD nBufferLength, OUT LPWSTR lpBuffer ); #ifdef UNICODE #define GetLogicalDriveStrings GetLogicalDriveStringsW #else #define GetLogicalDriveStrings GetLogicalDriveStringsA #endif // !UNICODE #if _WIN32_WINNT >= 0x0501 typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE { LowMemoryResourceNotification, HighMemoryResourceNotification } MEMORY_RESOURCE_NOTIFICATION_TYPE; WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification( IN MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType ); WINBASEAPI BOOL WINAPI QueryMemoryResourceNotification( IN HANDLE ResourceNotificationHandle, OUT PBOOL ResourceState ); #endif // _WIN32_WINNT >= 0x0501 WINBASEAPI HMODULE WINAPI LoadLibraryA( IN LPCSTR lpLibFileName ); WINBASEAPI HMODULE WINAPI LoadLibraryW( IN LPCWSTR lpLibFileName ); #ifdef UNICODE #define LoadLibrary LoadLibraryW #else #define LoadLibrary LoadLibraryA #endif // !UNICODE WINBASEAPI HMODULE WINAPI LoadLibraryExA( IN LPCSTR lpLibFileName, IN HANDLE hFile, IN DWORD dwFlags ); WINBASEAPI HMODULE WINAPI LoadLibraryExW( IN LPCWSTR lpLibFileName, IN HANDLE hFile, IN DWORD dwFlags ); #ifdef UNICODE #define LoadLibraryEx LoadLibraryExW #else #define LoadLibraryEx LoadLibraryExA #endif // !UNICODE #define DONT_RESOLVE_DLL_REFERENCES 0x00000001 #define LOAD_LIBRARY_AS_DATAFILE 0x00000002 #define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008 #define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x00000010 WINBASEAPI DWORD WINAPI GetModuleFileNameA( IN HMODULE hModule, OUT LPSTR lpFilename, IN DWORD nSize ); WINBASEAPI DWORD WINAPI GetModuleFileNameW( IN HMODULE hModule, OUT LPWSTR lpFilename, IN DWORD nSize ); #ifdef UNICODE #define GetModuleFileName GetModuleFileNameW #else #define GetModuleFileName GetModuleFileNameA #endif // !UNICODE WINBASEAPI HMODULE WINAPI GetModuleHandleA( IN LPCSTR lpModuleName ); WINBASEAPI HMODULE WINAPI GetModuleHandleW( IN LPCWSTR lpModuleName ); #ifdef UNICODE #define GetModuleHandle GetModuleHandleW #else #define GetModuleHandle GetModuleHandleA #endif // !UNICODE #if !defined(RC_INVOKED) #if _WIN32_WINNT > 0x0500 || defined(WINBASE_DECLARE_GET_MODULE_HANDLE_EX) || ISOLATION_AWARE_ENABLED #define GET_MODULE_HANDLE_EX_FLAG_PIN (0x00000001) #define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT (0x00000002) #define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS (0x00000004) typedef BOOL (WINAPI* PGET_MODULE_HANDLE_EXA)( IN DWORD dwFlags, IN LPCSTR lpModuleName, OUT HMODULE* phModule ); typedef BOOL (WINAPI* PGET_MODULE_HANDLE_EXW)( IN DWORD dwFlags, IN LPCWSTR lpModuleName, OUT HMODULE* phModule ); #ifdef UNICODE #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXW #else #define PGET_MODULE_HANDLE_EX PGET_MODULE_HANDLE_EXA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetModuleHandleExA( IN DWORD dwFlags, IN LPCSTR lpModuleName, OUT HMODULE* phModule ); WINBASEAPI BOOL WINAPI GetModuleHandleExW( IN DWORD dwFlags, IN LPCWSTR lpModuleName, OUT HMODULE* phModule ); #ifdef UNICODE #define GetModuleHandleEx GetModuleHandleExW #else #define GetModuleHandleEx GetModuleHandleExA #endif // !UNICODE #endif #endif WINBASEAPI BOOL WINAPI CreateProcessA( IN LPCSTR lpApplicationName, IN LPSTR lpCommandLine, IN LPSECURITY_ATTRIBUTES lpProcessAttributes, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN BOOL bInheritHandles, IN DWORD dwCreationFlags, IN LPVOID lpEnvironment, IN LPCSTR lpCurrentDirectory, IN LPSTARTUPINFOA lpStartupInfo, OUT LPPROCESS_INFORMATION lpProcessInformation ); WINBASEAPI BOOL WINAPI CreateProcessW( IN LPCWSTR lpApplicationName, IN LPWSTR lpCommandLine, IN LPSECURITY_ATTRIBUTES lpProcessAttributes, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN BOOL bInheritHandles, IN DWORD dwCreationFlags, IN LPVOID lpEnvironment, IN LPCWSTR lpCurrentDirectory, IN LPSTARTUPINFOW lpStartupInfo, OUT LPPROCESS_INFORMATION lpProcessInformation ); #ifdef UNICODE #define CreateProcess CreateProcessW #else #define CreateProcess CreateProcessA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetProcessShutdownParameters( IN DWORD dwLevel, IN DWORD dwFlags ); WINBASEAPI BOOL WINAPI GetProcessShutdownParameters( OUT LPDWORD lpdwLevel, OUT LPDWORD lpdwFlags ); WINBASEAPI DWORD WINAPI GetProcessVersion( IN DWORD ProcessId ); WINBASEAPI VOID WINAPI FatalAppExitA( IN UINT uAction, IN LPCSTR lpMessageText ); WINBASEAPI VOID WINAPI FatalAppExitW( IN UINT uAction, IN LPCWSTR lpMessageText ); #ifdef UNICODE #define FatalAppExit FatalAppExitW #else #define FatalAppExit FatalAppExitA #endif // !UNICODE WINBASEAPI VOID WINAPI GetStartupInfoA( OUT LPSTARTUPINFOA lpStartupInfo ); WINBASEAPI VOID WINAPI GetStartupInfoW( OUT LPSTARTUPINFOW lpStartupInfo ); #ifdef UNICODE #define GetStartupInfo GetStartupInfoW #else #define GetStartupInfo GetStartupInfoA #endif // !UNICODE WINBASEAPI LPSTR WINAPI GetCommandLineA( VOID ); WINBASEAPI LPWSTR WINAPI GetCommandLineW( VOID ); #ifdef UNICODE #define GetCommandLine GetCommandLineW #else #define GetCommandLine GetCommandLineA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetEnvironmentVariableA( IN LPCSTR lpName, OUT LPSTR lpBuffer, IN DWORD nSize ); WINBASEAPI DWORD WINAPI GetEnvironmentVariableW( IN LPCWSTR lpName, OUT LPWSTR lpBuffer, IN DWORD nSize ); #ifdef UNICODE #define GetEnvironmentVariable GetEnvironmentVariableW #else #define GetEnvironmentVariable GetEnvironmentVariableA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetEnvironmentVariableA( IN LPCSTR lpName, IN LPCSTR lpValue ); WINBASEAPI BOOL WINAPI SetEnvironmentVariableW( IN LPCWSTR lpName, IN LPCWSTR lpValue ); #ifdef UNICODE #define SetEnvironmentVariable SetEnvironmentVariableW #else #define SetEnvironmentVariable SetEnvironmentVariableA #endif // !UNICODE WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA( IN LPCSTR lpSrc, OUT LPSTR lpDst, IN DWORD nSize ); WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW( IN LPCWSTR lpSrc, OUT LPWSTR lpDst, IN DWORD nSize ); #ifdef UNICODE #define ExpandEnvironmentStrings ExpandEnvironmentStringsW #else #define ExpandEnvironmentStrings ExpandEnvironmentStringsA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableA( IN LPCSTR lpName, IN LPCSTR lpGuid, OUT PVOID pBuffer, IN DWORD nSize ); WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableW( IN LPCWSTR lpName, IN LPCWSTR lpGuid, OUT PVOID pBuffer, IN DWORD nSize ); #ifdef UNICODE #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableW #else #define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableA( IN LPCSTR lpName, IN LPCSTR lpGuid, IN PVOID pValue, IN DWORD nSize ); WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableW( IN LPCWSTR lpName, IN LPCWSTR lpGuid, IN PVOID pValue, IN DWORD nSize ); #ifdef UNICODE #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW #else #define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA #endif // !UNICODE WINBASEAPI VOID WINAPI OutputDebugStringA( IN LPCSTR lpOutputString ); WINBASEAPI VOID WINAPI OutputDebugStringW( IN LPCWSTR lpOutputString ); #ifdef UNICODE #define OutputDebugString OutputDebugStringW #else #define OutputDebugString OutputDebugStringA #endif // !UNICODE WINBASEAPI HRSRC WINAPI FindResourceA( IN HMODULE hModule, IN LPCSTR lpName, IN LPCSTR lpType ); WINBASEAPI HRSRC WINAPI FindResourceW( IN HMODULE hModule, IN LPCWSTR lpName, IN LPCWSTR lpType ); #ifdef UNICODE #define FindResource FindResourceW #else #define FindResource FindResourceA #endif // !UNICODE WINBASEAPI HRSRC WINAPI FindResourceExA( IN HMODULE hModule, IN LPCSTR lpType, IN LPCSTR lpName, IN WORD wLanguage ); WINBASEAPI HRSRC WINAPI FindResourceExW( IN HMODULE hModule, IN LPCWSTR lpType, IN LPCWSTR lpName, IN WORD wLanguage ); #ifdef UNICODE #define FindResourceEx FindResourceExW #else #define FindResourceEx FindResourceExA #endif // !UNICODE #ifdef STRICT typedef BOOL (CALLBACK* ENUMRESTYPEPROCA)(HMODULE hModule, LPSTR lpType, LONG_PTR lParam); typedef BOOL (CALLBACK* ENUMRESTYPEPROCW)(HMODULE hModule, LPWSTR lpType, LONG_PTR lParam); #ifdef UNICODE #define ENUMRESTYPEPROC ENUMRESTYPEPROCW #else #define ENUMRESTYPEPROC ENUMRESTYPEPROCA #endif // !UNICODE typedef BOOL (CALLBACK* ENUMRESNAMEPROCA)(HMODULE hModule, LPCSTR lpType, LPSTR lpName, LONG_PTR lParam); typedef BOOL (CALLBACK* ENUMRESNAMEPROCW)(HMODULE hModule, LPCWSTR lpType, LPWSTR lpName, LONG_PTR lParam); #ifdef UNICODE #define ENUMRESNAMEPROC ENUMRESNAMEPROCW #else #define ENUMRESNAMEPROC ENUMRESNAMEPROCA #endif // !UNICODE typedef BOOL (CALLBACK* ENUMRESLANGPROCA)(HMODULE hModule, LPCSTR lpType, LPCSTR lpName, WORD wLanguage, LONG_PTR lParam); typedef BOOL (CALLBACK* ENUMRESLANGPROCW)(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpName, WORD wLanguage, LONG_PTR lParam); #ifdef UNICODE #define ENUMRESLANGPROC ENUMRESLANGPROCW #else #define ENUMRESLANGPROC ENUMRESLANGPROCA #endif // !UNICODE #else typedef FARPROC ENUMRESTYPEPROCA; typedef FARPROC ENUMRESTYPEPROCW; #ifdef UNICODE typedef ENUMRESTYPEPROCW ENUMRESTYPEPROC; #else typedef ENUMRESTYPEPROCA ENUMRESTYPEPROC; #endif // UNICODE typedef FARPROC ENUMRESNAMEPROCA; typedef FARPROC ENUMRESNAMEPROCW; #ifdef UNICODE typedef ENUMRESNAMEPROCW ENUMRESNAMEPROC; #else typedef ENUMRESNAMEPROCA ENUMRESNAMEPROC; #endif // UNICODE typedef FARPROC ENUMRESLANGPROCA; typedef FARPROC ENUMRESLANGPROCW; #ifdef UNICODE typedef ENUMRESLANGPROCW ENUMRESLANGPROC; #else typedef ENUMRESLANGPROCA ENUMRESLANGPROC; #endif // UNICODE #endif WINBASEAPI BOOL WINAPI EnumResourceTypesA( IN HMODULE hModule, IN ENUMRESTYPEPROCA lpEnumFunc, IN LONG_PTR lParam ); WINBASEAPI BOOL WINAPI EnumResourceTypesW( IN HMODULE hModule, IN ENUMRESTYPEPROCW lpEnumFunc, IN LONG_PTR lParam ); #ifdef UNICODE #define EnumResourceTypes EnumResourceTypesW #else #define EnumResourceTypes EnumResourceTypesA #endif // !UNICODE WINBASEAPI BOOL WINAPI EnumResourceNamesA( IN HMODULE hModule, IN LPCSTR lpType, IN ENUMRESNAMEPROCA lpEnumFunc, IN LONG_PTR lParam ); WINBASEAPI BOOL WINAPI EnumResourceNamesW( IN HMODULE hModule, IN LPCWSTR lpType, IN ENUMRESNAMEPROCW lpEnumFunc, IN LONG_PTR lParam ); #ifdef UNICODE #define EnumResourceNames EnumResourceNamesW #else #define EnumResourceNames EnumResourceNamesA #endif // !UNICODE WINBASEAPI BOOL WINAPI EnumResourceLanguagesA( IN HMODULE hModule, IN LPCSTR lpType, IN LPCSTR lpName, IN ENUMRESLANGPROCA lpEnumFunc, IN LONG_PTR lParam ); WINBASEAPI BOOL WINAPI EnumResourceLanguagesW( IN HMODULE hModule, IN LPCWSTR lpType, IN LPCWSTR lpName, IN ENUMRESLANGPROCW lpEnumFunc, IN LONG_PTR lParam ); #ifdef UNICODE #define EnumResourceLanguages EnumResourceLanguagesW #else #define EnumResourceLanguages EnumResourceLanguagesA #endif // !UNICODE WINBASEAPI HANDLE WINAPI BeginUpdateResourceA( IN LPCSTR pFileName, IN BOOL bDeleteExistingResources ); WINBASEAPI HANDLE WINAPI BeginUpdateResourceW( IN LPCWSTR pFileName, IN BOOL bDeleteExistingResources ); #ifdef UNICODE #define BeginUpdateResource BeginUpdateResourceW #else #define BeginUpdateResource BeginUpdateResourceA #endif // !UNICODE WINBASEAPI BOOL WINAPI UpdateResourceA( IN HANDLE hUpdate, IN LPCSTR lpType, IN LPCSTR lpName, IN WORD wLanguage, IN LPVOID lpData, IN DWORD cbData ); WINBASEAPI BOOL WINAPI UpdateResourceW( IN HANDLE hUpdate, IN LPCWSTR lpType, IN LPCWSTR lpName, IN WORD wLanguage, IN LPVOID lpData, IN DWORD cbData ); #ifdef UNICODE #define UpdateResource UpdateResourceW #else #define UpdateResource UpdateResourceA #endif // !UNICODE WINBASEAPI BOOL WINAPI EndUpdateResourceA( IN HANDLE hUpdate, IN BOOL fDiscard ); WINBASEAPI BOOL WINAPI EndUpdateResourceW( IN HANDLE hUpdate, IN BOOL fDiscard ); #ifdef UNICODE #define EndUpdateResource EndUpdateResourceW #else #define EndUpdateResource EndUpdateResourceA #endif // !UNICODE WINBASEAPI ATOM WINAPI GlobalAddAtomA( IN LPCSTR lpString ); WINBASEAPI ATOM WINAPI GlobalAddAtomW( IN LPCWSTR lpString ); #ifdef UNICODE #define GlobalAddAtom GlobalAddAtomW #else #define GlobalAddAtom GlobalAddAtomA #endif // !UNICODE WINBASEAPI ATOM WINAPI GlobalFindAtomA( IN LPCSTR lpString ); WINBASEAPI ATOM WINAPI GlobalFindAtomW( IN LPCWSTR lpString ); #ifdef UNICODE #define GlobalFindAtom GlobalFindAtomW #else #define GlobalFindAtom GlobalFindAtomA #endif // !UNICODE WINBASEAPI UINT WINAPI GlobalGetAtomNameA( IN ATOM nAtom, OUT LPSTR lpBuffer, IN int nSize ); WINBASEAPI UINT WINAPI GlobalGetAtomNameW( IN ATOM nAtom, OUT LPWSTR lpBuffer, IN int nSize ); #ifdef UNICODE #define GlobalGetAtomName GlobalGetAtomNameW #else #define GlobalGetAtomName GlobalGetAtomNameA #endif // !UNICODE WINBASEAPI ATOM WINAPI AddAtomA( IN LPCSTR lpString ); WINBASEAPI ATOM WINAPI AddAtomW( IN LPCWSTR lpString ); #ifdef UNICODE #define AddAtom AddAtomW #else #define AddAtom AddAtomA #endif // !UNICODE WINBASEAPI ATOM WINAPI FindAtomA( IN LPCSTR lpString ); WINBASEAPI ATOM WINAPI FindAtomW( IN LPCWSTR lpString ); #ifdef UNICODE #define FindAtom FindAtomW #else #define FindAtom FindAtomA #endif // !UNICODE WINBASEAPI UINT WINAPI GetAtomNameA( IN ATOM nAtom, OUT LPSTR lpBuffer, IN int nSize ); WINBASEAPI UINT WINAPI GetAtomNameW( IN ATOM nAtom, OUT LPWSTR lpBuffer, IN int nSize ); #ifdef UNICODE #define GetAtomName GetAtomNameW #else #define GetAtomName GetAtomNameA #endif // !UNICODE WINBASEAPI UINT WINAPI GetProfileIntA( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN INT nDefault ); WINBASEAPI UINT WINAPI GetProfileIntW( IN LPCWSTR lpAppName, IN LPCWSTR lpKeyName, IN INT nDefault ); #ifdef UNICODE #define GetProfileInt GetProfileIntW #else #define GetProfileInt GetProfileIntA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetProfileStringA( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpDefault, OUT LPSTR lpReturnedString, IN DWORD nSize ); WINBASEAPI DWORD WINAPI GetProfileStringW( IN LPCWSTR lpAppName, IN LPCWSTR lpKeyName, IN LPCWSTR lpDefault, OUT LPWSTR lpReturnedString, IN DWORD nSize ); #ifdef UNICODE #define GetProfileString GetProfileStringW #else #define GetProfileString GetProfileStringA #endif // !UNICODE WINBASEAPI BOOL WINAPI WriteProfileStringA( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpString ); WINBASEAPI BOOL WINAPI WriteProfileStringW( IN LPCWSTR lpAppName, IN LPCWSTR lpKeyName, IN LPCWSTR lpString ); #ifdef UNICODE #define WriteProfileString WriteProfileStringW #else #define WriteProfileString WriteProfileStringA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetProfileSectionA( IN LPCSTR lpAppName, OUT LPSTR lpReturnedString, IN DWORD nSize ); WINBASEAPI DWORD WINAPI GetProfileSectionW( IN LPCWSTR lpAppName, OUT LPWSTR lpReturnedString, IN DWORD nSize ); #ifdef UNICODE #define GetProfileSection GetProfileSectionW #else #define GetProfileSection GetProfileSectionA #endif // !UNICODE WINBASEAPI BOOL WINAPI WriteProfileSectionA( IN LPCSTR lpAppName, IN LPCSTR lpString ); WINBASEAPI BOOL WINAPI WriteProfileSectionW( IN LPCWSTR lpAppName, IN LPCWSTR lpString ); #ifdef UNICODE #define WriteProfileSection WriteProfileSectionW #else #define WriteProfileSection WriteProfileSectionA #endif // !UNICODE WINBASEAPI UINT WINAPI GetPrivateProfileIntA( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN INT nDefault, IN LPCSTR lpFileName ); WINBASEAPI UINT WINAPI GetPrivateProfileIntW( IN LPCWSTR lpAppName, IN LPCWSTR lpKeyName, IN INT nDefault, IN LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileInt GetPrivateProfileIntW #else #define GetPrivateProfileInt GetPrivateProfileIntA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetPrivateProfileStringA( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpDefault, OUT LPSTR lpReturnedString, IN DWORD nSize, IN LPCSTR lpFileName ); WINBASEAPI DWORD WINAPI GetPrivateProfileStringW( IN LPCWSTR lpAppName, IN LPCWSTR lpKeyName, IN LPCWSTR lpDefault, OUT LPWSTR lpReturnedString, IN DWORD nSize, IN LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileString GetPrivateProfileStringW #else #define GetPrivateProfileString GetPrivateProfileStringA #endif // !UNICODE WINBASEAPI BOOL WINAPI WritePrivateProfileStringA( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpString, IN LPCSTR lpFileName ); WINBASEAPI BOOL WINAPI WritePrivateProfileStringW( IN LPCWSTR lpAppName, IN LPCWSTR lpKeyName, IN LPCWSTR lpString, IN LPCWSTR lpFileName ); #ifdef UNICODE #define WritePrivateProfileString WritePrivateProfileStringW #else #define WritePrivateProfileString WritePrivateProfileStringA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetPrivateProfileSectionA( IN LPCSTR lpAppName, OUT LPSTR lpReturnedString, IN DWORD nSize, IN LPCSTR lpFileName ); WINBASEAPI DWORD WINAPI GetPrivateProfileSectionW( IN LPCWSTR lpAppName, OUT LPWSTR lpReturnedString, IN DWORD nSize, IN LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileSection GetPrivateProfileSectionW #else #define GetPrivateProfileSection GetPrivateProfileSectionA #endif // !UNICODE WINBASEAPI BOOL WINAPI WritePrivateProfileSectionA( IN LPCSTR lpAppName, IN LPCSTR lpString, IN LPCSTR lpFileName ); WINBASEAPI BOOL WINAPI WritePrivateProfileSectionW( IN LPCWSTR lpAppName, IN LPCWSTR lpString, IN LPCWSTR lpFileName ); #ifdef UNICODE #define WritePrivateProfileSection WritePrivateProfileSectionW #else #define WritePrivateProfileSection WritePrivateProfileSectionA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA( OUT LPSTR lpszReturnBuffer, IN DWORD nSize, IN LPCSTR lpFileName ); WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW( OUT LPWSTR lpszReturnBuffer, IN DWORD nSize, IN LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW #else #define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetPrivateProfileStructA( IN LPCSTR lpszSection, IN LPCSTR lpszKey, OUT LPVOID lpStruct, IN UINT uSizeStruct, IN LPCSTR szFile ); WINBASEAPI BOOL WINAPI GetPrivateProfileStructW( IN LPCWSTR lpszSection, IN LPCWSTR lpszKey, OUT LPVOID lpStruct, IN UINT uSizeStruct, IN LPCWSTR szFile ); #ifdef UNICODE #define GetPrivateProfileStruct GetPrivateProfileStructW #else #define GetPrivateProfileStruct GetPrivateProfileStructA #endif // !UNICODE WINBASEAPI BOOL WINAPI WritePrivateProfileStructA( IN LPCSTR lpszSection, IN LPCSTR lpszKey, IN LPVOID lpStruct, IN UINT uSizeStruct, IN LPCSTR szFile ); WINBASEAPI BOOL WINAPI WritePrivateProfileStructW( IN LPCWSTR lpszSection, IN LPCWSTR lpszKey, IN LPVOID lpStruct, IN UINT uSizeStruct, IN LPCWSTR szFile ); #ifdef UNICODE #define WritePrivateProfileStruct WritePrivateProfileStructW #else #define WritePrivateProfileStruct WritePrivateProfileStructA #endif // !UNICODE WINBASEAPI UINT WINAPI GetDriveTypeA( IN LPCSTR lpRootPathName ); WINBASEAPI UINT WINAPI GetDriveTypeW( IN LPCWSTR lpRootPathName ); #ifdef UNICODE #define GetDriveType GetDriveTypeW #else #define GetDriveType GetDriveTypeA #endif // !UNICODE WINBASEAPI UINT WINAPI GetSystemDirectoryA( OUT LPSTR lpBuffer, IN UINT uSize ); WINBASEAPI UINT WINAPI GetSystemDirectoryW( OUT LPWSTR lpBuffer, IN UINT uSize ); #ifdef UNICODE #define GetSystemDirectory GetSystemDirectoryW #else #define GetSystemDirectory GetSystemDirectoryA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetTempPathA( IN DWORD nBufferLength, OUT LPSTR lpBuffer ); WINBASEAPI DWORD WINAPI GetTempPathW( IN DWORD nBufferLength, OUT LPWSTR lpBuffer ); #ifdef UNICODE #define GetTempPath GetTempPathW #else #define GetTempPath GetTempPathA #endif // !UNICODE WINBASEAPI UINT WINAPI GetTempFileNameA( IN LPCSTR lpPathName, IN LPCSTR lpPrefixString, IN UINT uUnique, OUT LPSTR lpTempFileName ); WINBASEAPI UINT WINAPI GetTempFileNameW( IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName ); #ifdef UNICODE #define GetTempFileName GetTempFileNameW #else #define GetTempFileName GetTempFileNameA #endif // !UNICODE WINBASEAPI UINT WINAPI GetWindowsDirectoryA( OUT LPSTR lpBuffer, IN UINT uSize ); WINBASEAPI UINT WINAPI GetWindowsDirectoryW( OUT LPWSTR lpBuffer, IN UINT uSize ); #ifdef UNICODE #define GetWindowsDirectory GetWindowsDirectoryW #else #define GetWindowsDirectory GetWindowsDirectoryA #endif // !UNICODE WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA( OUT LPSTR lpBuffer, IN UINT uSize ); WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW( OUT LPWSTR lpBuffer, IN UINT uSize ); #ifdef UNICODE #define GetSystemWindowsDirectory GetSystemWindowsDirectoryW #else #define GetSystemWindowsDirectory GetSystemWindowsDirectoryA #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) WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA( OUT LPSTR lpBuffer, IN UINT uSize ); WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW( OUT LPWSTR lpBuffer, IN UINT uSize ); #ifdef UNICODE #define GetSystemWow64Directory GetSystemWow64DirectoryW #else #define GetSystemWow64Directory GetSystemWow64DirectoryA #endif // !UNICODE // // for GetProcAddress // typedef UINT (WINAPI* PGET_SYSTEM_WOW64_DIRECTORY_A)(OUT LPSTR lpBuffer, UINT uSize); typedef UINT (WINAPI* PGET_SYSTEM_WOW64_DIRECTORY_W)(OUT LPWSTR lpBuffer, UINT uSize); // // GetProcAddress only accepts GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A, // GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A, GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A. // The others are if you want to use the strings in some other way. // #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A "GetSystemWow64DirectoryA" #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W L"GetSystemWow64DirectoryA" #define GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T TEXT("GetSystemWow64DirectoryA") #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A "GetSystemWow64DirectoryW" #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W L"GetSystemWow64DirectoryW" #define GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T TEXT("GetSystemWow64DirectoryW") #ifdef UNICODE #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T #else #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W #define GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T #endif #endif // _WIN32_WINNT >= 0x0501 #endif WINBASEAPI BOOL WINAPI SetCurrentDirectoryA( IN LPCSTR lpPathName ); WINBASEAPI BOOL WINAPI SetCurrentDirectoryW( IN LPCWSTR lpPathName ); #ifdef UNICODE #define SetCurrentDirectory SetCurrentDirectoryW #else #define SetCurrentDirectory SetCurrentDirectoryA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetCurrentDirectoryA( IN DWORD nBufferLength, OUT LPSTR lpBuffer ); WINBASEAPI DWORD WINAPI GetCurrentDirectoryW( IN DWORD nBufferLength, OUT LPWSTR lpBuffer ); #ifdef UNICODE #define GetCurrentDirectory GetCurrentDirectoryW #else #define GetCurrentDirectory GetCurrentDirectoryA #endif // !UNICODE #if _WIN32_WINNT >= 0x0502 WINBASEAPI BOOL WINAPI SetDllDirectoryA( IN LPCSTR lpPathName ); WINBASEAPI BOOL WINAPI SetDllDirectoryW( IN LPCWSTR lpPathName ); #ifdef UNICODE #define SetDllDirectory SetDllDirectoryW #else #define SetDllDirectory SetDllDirectoryA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetDllDirectoryA( IN DWORD nBufferLength, OUT LPSTR lpBuffer ); WINBASEAPI DWORD WINAPI GetDllDirectoryW( IN DWORD nBufferLength, OUT LPWSTR lpBuffer ); #ifdef UNICODE #define GetDllDirectory GetDllDirectoryW #else #define GetDllDirectory GetDllDirectoryA #endif // !UNICODE #endif // _WIN32_WINNT >= 0x0502 WINBASEAPI BOOL WINAPI GetDiskFreeSpaceA( IN LPCSTR lpRootPathName, OUT LPDWORD lpSectorsPerCluster, OUT LPDWORD lpBytesPerSector, OUT LPDWORD lpNumberOfFreeClusters, OUT LPDWORD lpTotalNumberOfClusters ); WINBASEAPI BOOL WINAPI GetDiskFreeSpaceW( IN LPCWSTR lpRootPathName, OUT LPDWORD lpSectorsPerCluster, OUT LPDWORD lpBytesPerSector, OUT LPDWORD lpNumberOfFreeClusters, OUT LPDWORD lpTotalNumberOfClusters ); #ifdef UNICODE #define GetDiskFreeSpace GetDiskFreeSpaceW #else #define GetDiskFreeSpace GetDiskFreeSpaceA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA( IN LPCSTR lpDirectoryName, OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller, OUT PULARGE_INTEGER lpTotalNumberOfBytes, OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes ); WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW( IN LPCWSTR lpDirectoryName, OUT PULARGE_INTEGER lpFreeBytesAvailableToCaller, OUT PULARGE_INTEGER lpTotalNumberOfBytes, OUT PULARGE_INTEGER lpTotalNumberOfFreeBytes ); #ifdef UNICODE #define GetDiskFreeSpaceEx GetDiskFreeSpaceExW #else #define GetDiskFreeSpaceEx GetDiskFreeSpaceExA #endif // !UNICODE WINBASEAPI BOOL WINAPI CreateDirectoryA( IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); WINBASEAPI BOOL WINAPI CreateDirectoryW( IN LPCWSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define CreateDirectory CreateDirectoryW #else #define CreateDirectory CreateDirectoryA #endif // !UNICODE WINBASEAPI BOOL WINAPI CreateDirectoryExA( IN LPCSTR lpTemplateDirectory, IN LPCSTR lpNewDirectory, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); WINBASEAPI BOOL WINAPI CreateDirectoryExW( IN LPCWSTR lpTemplateDirectory, IN LPCWSTR lpNewDirectory, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define CreateDirectoryEx CreateDirectoryExW #else #define CreateDirectoryEx CreateDirectoryExA #endif // !UNICODE WINBASEAPI BOOL WINAPI RemoveDirectoryA( IN LPCSTR lpPathName ); WINBASEAPI BOOL WINAPI RemoveDirectoryW( IN LPCWSTR lpPathName ); #ifdef UNICODE #define RemoveDirectory RemoveDirectoryW #else #define RemoveDirectory RemoveDirectoryA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetFullPathNameA( IN LPCSTR lpFileName, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart ); WINBASEAPI DWORD WINAPI GetFullPathNameW( IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart ); #ifdef UNICODE #define GetFullPathName GetFullPathNameW #else #define GetFullPathName GetFullPathNameA #endif // !UNICODE #define DDD_RAW_TARGET_PATH 0x00000001 #define DDD_REMOVE_DEFINITION 0x00000002 #define DDD_EXACT_MATCH_ON_REMOVE 0x00000004 #define DDD_NO_BROADCAST_SYSTEM 0x00000008 #define DDD_LUID_BROADCAST_DRIVE 0x00000010 WINBASEAPI BOOL WINAPI DefineDosDeviceA( IN DWORD dwFlags, IN LPCSTR lpDeviceName, IN LPCSTR lpTargetPath ); WINBASEAPI BOOL WINAPI DefineDosDeviceW( IN DWORD dwFlags, IN LPCWSTR lpDeviceName, IN LPCWSTR lpTargetPath ); #ifdef UNICODE #define DefineDosDevice DefineDosDeviceW #else #define DefineDosDevice DefineDosDeviceA #endif // !UNICODE WINBASEAPI DWORD WINAPI QueryDosDeviceA( IN LPCSTR lpDeviceName, OUT LPSTR lpTargetPath, IN DWORD ucchMax ); WINBASEAPI DWORD WINAPI QueryDosDeviceW( IN LPCWSTR lpDeviceName, OUT LPWSTR lpTargetPath, IN DWORD ucchMax ); #ifdef UNICODE #define QueryDosDevice QueryDosDeviceW #else #define QueryDosDevice QueryDosDeviceA #endif // !UNICODE #define EXPAND_LOCAL_DRIVES WINBASEAPI HANDLE WINAPI CreateFileA( IN LPCSTR lpFileName, IN DWORD dwDesiredAccess, IN DWORD dwShareMode, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, IN DWORD dwCreationDisposition, IN DWORD dwFlagsAndAttributes, IN HANDLE hTemplateFile ); WINBASEAPI HANDLE WINAPI CreateFileW( IN LPCWSTR lpFileName, IN DWORD dwDesiredAccess, IN DWORD dwShareMode, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, IN DWORD dwCreationDisposition, IN DWORD dwFlagsAndAttributes, IN HANDLE hTemplateFile ); #ifdef UNICODE #define CreateFile CreateFileW #else #define CreateFile CreateFileA #endif // !UNICODE #if _WIN32_WINNT >= 0x0502 WINBASEAPI HANDLE WINAPI ReOpenFile( HANDLE hOriginalFile, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwFlagsAndAttributes ); #endif // _WIN32_WINNT >= 0x0502 WINBASEAPI BOOL WINAPI SetFileAttributesA( IN LPCSTR lpFileName, IN DWORD dwFileAttributes ); WINBASEAPI BOOL WINAPI SetFileAttributesW( IN LPCWSTR lpFileName, IN DWORD dwFileAttributes ); #ifdef UNICODE #define SetFileAttributes SetFileAttributesW #else #define SetFileAttributes SetFileAttributesA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetFileAttributesA( IN LPCSTR lpFileName ); WINBASEAPI DWORD WINAPI GetFileAttributesW( IN LPCWSTR lpFileName ); #ifdef UNICODE #define GetFileAttributes GetFileAttributesW #else #define GetFileAttributes GetFileAttributesA #endif // !UNICODE typedef enum _GET_FILEEX_INFO_LEVELS { GetFileExInfoStandard, GetFileExMaxInfoLevel } GET_FILEEX_INFO_LEVELS; WINBASEAPI BOOL WINAPI GetFileAttributesExA( IN LPCSTR lpFileName, IN GET_FILEEX_INFO_LEVELS fInfoLevelId, OUT LPVOID lpFileInformation ); WINBASEAPI BOOL WINAPI GetFileAttributesExW( IN LPCWSTR lpFileName, IN GET_FILEEX_INFO_LEVELS fInfoLevelId, OUT LPVOID lpFileInformation ); #ifdef UNICODE #define GetFileAttributesEx GetFileAttributesExW #else #define GetFileAttributesEx GetFileAttributesExA #endif // !UNICODE WINBASEAPI DWORD WINAPI GetCompressedFileSizeA( IN LPCSTR lpFileName, OUT LPDWORD lpFileSizeHigh ); WINBASEAPI DWORD WINAPI GetCompressedFileSizeW( IN LPCWSTR lpFileName, OUT LPDWORD lpFileSizeHigh ); #ifdef UNICODE #define GetCompressedFileSize GetCompressedFileSizeW #else #define GetCompressedFileSize GetCompressedFileSizeA #endif // !UNICODE WINBASEAPI BOOL WINAPI DeleteFileA( IN LPCSTR lpFileName ); WINBASEAPI BOOL WINAPI DeleteFileW( IN LPCWSTR lpFileName ); #ifdef UNICODE #define DeleteFile DeleteFileW #else #define DeleteFile DeleteFileA #endif // !UNICODE #if _WIN32_WINNT >= 0x0501 WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3A( IN LPCSTR lpName, OUT LPSTR lpOemName OPTIONAL, IN DWORD OemNameSize OPTIONAL, OUT PBOOL pbNameContainsSpaces OPTIONAL, OUT PBOOL pbNameLegal ); WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3W( IN LPCWSTR lpName, OUT LPSTR lpOemName OPTIONAL, IN DWORD OemNameSize OPTIONAL, OUT PBOOL pbNameContainsSpaces OPTIONAL, OUT PBOOL pbNameLegal ); #ifdef UNICODE #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W #else #define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A #endif // !UNICODE #endif // (_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0400) typedef enum _FINDEX_INFO_LEVELS { FindExInfoStandard, FindExInfoMaxInfoLevel } FINDEX_INFO_LEVELS; typedef enum _FINDEX_SEARCH_OPS { FindExSearchNameMatch, FindExSearchLimitToDirectories, FindExSearchLimitToDevices, FindExSearchMaxSearchOp } FINDEX_SEARCH_OPS; #define FIND_FIRST_EX_CASE_SENSITIVE 0x00000001 WINBASEAPI HANDLE WINAPI FindFirstFileExA( IN LPCSTR lpFileName, IN FINDEX_INFO_LEVELS fInfoLevelId, OUT LPVOID lpFindFileData, IN FINDEX_SEARCH_OPS fSearchOp, IN LPVOID lpSearchFilter, IN DWORD dwAdditionalFlags ); WINBASEAPI HANDLE WINAPI FindFirstFileExW( IN LPCWSTR lpFileName, IN FINDEX_INFO_LEVELS fInfoLevelId, OUT LPVOID lpFindFileData, IN FINDEX_SEARCH_OPS fSearchOp, IN LPVOID lpSearchFilter, IN DWORD dwAdditionalFlags ); #ifdef UNICODE #define FindFirstFileEx FindFirstFileExW #else #define FindFirstFileEx FindFirstFileExA #endif // !UNICODE #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI HANDLE WINAPI FindFirstFileA( IN LPCSTR lpFileName, OUT LPWIN32_FIND_DATAA lpFindFileData ); WINBASEAPI HANDLE WINAPI FindFirstFileW( IN LPCWSTR lpFileName, OUT LPWIN32_FIND_DATAW lpFindFileData ); #ifdef UNICODE #define FindFirstFile FindFirstFileW #else #define FindFirstFile FindFirstFileA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindNextFileA( IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAA lpFindFileData ); WINBASEAPI BOOL WINAPI FindNextFileW( IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData ); #ifdef UNICODE #define FindNextFile FindNextFileW #else #define FindNextFile FindNextFileA #endif // !UNICODE WINBASEAPI DWORD WINAPI SearchPathA( IN LPCSTR lpPath, IN LPCSTR lpFileName, IN LPCSTR lpExtension, IN DWORD nBufferLength, OUT LPSTR lpBuffer, OUT LPSTR *lpFilePart ); WINBASEAPI DWORD WINAPI SearchPathW( IN LPCWSTR lpPath, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart ); #ifdef UNICODE #define SearchPath SearchPathW #else #define SearchPath SearchPathA #endif // !UNICODE WINBASEAPI BOOL WINAPI CopyFileA( IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN BOOL bFailIfExists ); WINBASEAPI BOOL WINAPI CopyFileW( IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN BOOL bFailIfExists ); #ifdef UNICODE #define CopyFile CopyFileW #else #define CopyFile CopyFileA #endif // !UNICODE #if(_WIN32_WINNT >= 0x0400) typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)( LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData OPTIONAL ); WINBASEAPI BOOL WINAPI CopyFileExA( IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL, IN LPVOID lpData OPTIONAL, IN LPBOOL pbCancel OPTIONAL, IN DWORD dwCopyFlags ); WINBASEAPI BOOL WINAPI CopyFileExW( IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL, IN LPVOID lpData OPTIONAL, IN LPBOOL pbCancel OPTIONAL, IN DWORD dwCopyFlags ); #ifdef UNICODE #define CopyFileEx CopyFileExW #else #define CopyFileEx CopyFileExA #endif // !UNICODE #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI BOOL WINAPI MoveFileA( IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName ); WINBASEAPI BOOL WINAPI MoveFileW( IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName ); #ifdef UNICODE #define MoveFile MoveFileW #else #define MoveFile MoveFileA #endif // !UNICODE WINBASEAPI BOOL WINAPI MoveFileExA( IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN DWORD dwFlags ); WINBASEAPI BOOL WINAPI MoveFileExW( IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN DWORD dwFlags ); #ifdef UNICODE #define MoveFileEx MoveFileExW #else #define MoveFileEx MoveFileExA #endif // !UNICODE #if (_WIN32_WINNT >= 0x0500) WINBASEAPI BOOL WINAPI MoveFileWithProgressA( IN LPCSTR lpExistingFileName, IN LPCSTR lpNewFileName, IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL, IN LPVOID lpData OPTIONAL, IN DWORD dwFlags ); WINBASEAPI BOOL WINAPI MoveFileWithProgressW( IN LPCWSTR lpExistingFileName, IN LPCWSTR lpNewFileName, IN LPPROGRESS_ROUTINE lpProgressRoutine OPTIONAL, IN LPVOID lpData OPTIONAL, IN DWORD dwFlags ); #ifdef UNICODE #define MoveFileWithProgress MoveFileWithProgressW #else #define MoveFileWithProgress MoveFileWithProgressA #endif // !UNICODE #endif // (_WIN32_WINNT >= 0x0500) #define MOVEFILE_REPLACE_EXISTING 0x00000001 #define MOVEFILE_COPY_ALLOWED 0x00000002 #define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004 #define MOVEFILE_WRITE_THROUGH 0x00000008 #if (_WIN32_WINNT >= 0x0500) #define MOVEFILE_CREATE_HARDLINK 0x00000010 #define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x00000020 #endif // (_WIN32_WINNT >= 0x0500) #if (_WIN32_WINNT >= 0x0500) WINBASEAPI BOOL WINAPI ReplaceFileA( LPCSTR lpReplacedFileName, LPCSTR lpReplacementFileName, LPCSTR lpBackupFileName, DWORD dwReplaceFlags, LPVOID lpExclude, LPVOID lpReserved ); WINBASEAPI BOOL WINAPI ReplaceFileW( LPCWSTR lpReplacedFileName, LPCWSTR lpReplacementFileName, LPCWSTR lpBackupFileName, DWORD dwReplaceFlags, LPVOID lpExclude, LPVOID lpReserved ); #ifdef UNICODE #define ReplaceFile ReplaceFileW #else #define ReplaceFile ReplaceFileA #endif // !UNICODE #endif // (_WIN32_WINNT >= 0x0500) #if (_WIN32_WINNT >= 0x0500) // // API call to create hard links. // WINBASEAPI BOOL WINAPI CreateHardLinkA( IN LPCSTR lpFileName, IN LPCSTR lpExistingFileName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); WINBASEAPI BOOL WINAPI CreateHardLinkW( IN LPCWSTR lpFileName, IN LPCWSTR lpExistingFileName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define CreateHardLink CreateHardLinkW #else #define CreateHardLink CreateHardLinkA #endif // !UNICODE #endif // (_WIN32_WINNT >= 0x0500) #if (_WIN32_WINNT >= 0x0501) // // API call to enumerate for streams within a file // typedef enum _STREAM_INFO_LEVELS { FindStreamInfoStandard, FindStreamInfoMaxInfoLevel } STREAM_INFO_LEVELS; typedef struct _WIN32_FIND_STREAM_DATA { LARGE_INTEGER StreamSize; WCHAR cStreamName[ MAX_PATH + 36 ]; } WIN32_FIND_STREAM_DATA, *PWIN32_FIND_STREAM_DATA; HANDLE WINAPI FindFirstStreamW( LPCWSTR lpFileName, STREAM_INFO_LEVELS InfoLevel, LPVOID lpFindStreamData, DWORD dwFlags ); BOOL APIENTRY FindNextStreamW( HANDLE hFindStream, LPVOID lpFindStreamData ); #endif // (_WIN32_WINNT >= 0x0500) WINBASEAPI HANDLE WINAPI CreateNamedPipeA( IN LPCSTR lpName, IN DWORD dwOpenMode, IN DWORD dwPipeMode, IN DWORD nMaxInstances, IN DWORD nOutBufferSize, IN DWORD nInBufferSize, IN DWORD nDefaultTimeOut, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); WINBASEAPI HANDLE WINAPI CreateNamedPipeW( IN LPCWSTR lpName, IN DWORD dwOpenMode, IN DWORD dwPipeMode, IN DWORD nMaxInstances, IN DWORD nOutBufferSize, IN DWORD nInBufferSize, IN DWORD nDefaultTimeOut, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define CreateNamedPipe CreateNamedPipeW #else #define CreateNamedPipe CreateNamedPipeA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA( IN HANDLE hNamedPipe, OUT LPDWORD lpState, OUT LPDWORD lpCurInstances, OUT LPDWORD lpMaxCollectionCount, OUT LPDWORD lpCollectDataTimeout, OUT LPSTR lpUserName, IN DWORD nMaxUserNameSize ); WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW( IN HANDLE hNamedPipe, OUT LPDWORD lpState, OUT LPDWORD lpCurInstances, OUT LPDWORD lpMaxCollectionCount, OUT LPDWORD lpCollectDataTimeout, OUT LPWSTR lpUserName, IN DWORD nMaxUserNameSize ); #ifdef UNICODE #define GetNamedPipeHandleState GetNamedPipeHandleStateW #else #define GetNamedPipeHandleState GetNamedPipeHandleStateA #endif // !UNICODE WINBASEAPI BOOL WINAPI CallNamedPipeA( IN LPCSTR lpNamedPipeName, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead, IN DWORD nTimeOut ); WINBASEAPI BOOL WINAPI CallNamedPipeW( IN LPCWSTR lpNamedPipeName, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead, IN DWORD nTimeOut ); #ifdef UNICODE #define CallNamedPipe CallNamedPipeW #else #define CallNamedPipe CallNamedPipeA #endif // !UNICODE WINBASEAPI BOOL WINAPI WaitNamedPipeA( IN LPCSTR lpNamedPipeName, IN DWORD nTimeOut ); WINBASEAPI BOOL WINAPI WaitNamedPipeW( IN LPCWSTR lpNamedPipeName, IN DWORD nTimeOut ); #ifdef UNICODE #define WaitNamedPipe WaitNamedPipeW #else #define WaitNamedPipe WaitNamedPipeA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetVolumeLabelA( IN LPCSTR lpRootPathName, IN LPCSTR lpVolumeName ); WINBASEAPI BOOL WINAPI SetVolumeLabelW( IN LPCWSTR lpRootPathName, IN LPCWSTR lpVolumeName ); #ifdef UNICODE #define SetVolumeLabel SetVolumeLabelW #else #define SetVolumeLabel SetVolumeLabelA #endif // !UNICODE WINBASEAPI VOID WINAPI SetFileApisToOEM( VOID ); WINBASEAPI VOID WINAPI SetFileApisToANSI( VOID ); WINBASEAPI BOOL WINAPI AreFileApisANSI( VOID ); WINBASEAPI BOOL WINAPI GetVolumeInformationA( IN LPCSTR lpRootPathName, OUT LPSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber, OUT LPDWORD lpMaximumComponentLength, OUT LPDWORD lpFileSystemFlags, OUT LPSTR lpFileSystemNameBuffer, IN DWORD nFileSystemNameSize ); WINBASEAPI BOOL WINAPI GetVolumeInformationW( IN LPCWSTR lpRootPathName, OUT LPWSTR lpVolumeNameBuffer, IN DWORD nVolumeNameSize, OUT LPDWORD lpVolumeSerialNumber, OUT LPDWORD lpMaximumComponentLength, OUT LPDWORD lpFileSystemFlags, OUT LPWSTR lpFileSystemNameBuffer, IN DWORD nFileSystemNameSize ); #ifdef UNICODE #define GetVolumeInformation GetVolumeInformationW #else #define GetVolumeInformation GetVolumeInformationA #endif // !UNICODE WINBASEAPI BOOL WINAPI CancelIo( IN HANDLE hFile ); // // Event logging APIs // WINADVAPI BOOL WINAPI ClearEventLogA ( IN HANDLE hEventLog, IN LPCSTR lpBackupFileName ); WINADVAPI BOOL WINAPI ClearEventLogW ( IN HANDLE hEventLog, IN LPCWSTR lpBackupFileName ); #ifdef UNICODE #define ClearEventLog ClearEventLogW #else #define ClearEventLog ClearEventLogA #endif // !UNICODE WINADVAPI BOOL WINAPI BackupEventLogA ( IN HANDLE hEventLog, IN LPCSTR lpBackupFileName ); WINADVAPI BOOL WINAPI BackupEventLogW ( IN HANDLE hEventLog, IN LPCWSTR lpBackupFileName ); #ifdef UNICODE #define BackupEventLog BackupEventLogW #else #define BackupEventLog BackupEventLogA #endif // !UNICODE WINADVAPI BOOL WINAPI CloseEventLog ( IN OUT HANDLE hEventLog ); WINADVAPI BOOL WINAPI DeregisterEventSource ( IN OUT HANDLE hEventLog ); WINADVAPI BOOL WINAPI NotifyChangeEventLog( IN HANDLE hEventLog, IN HANDLE hEvent ); WINADVAPI BOOL WINAPI GetNumberOfEventLogRecords ( IN HANDLE hEventLog, OUT PDWORD NumberOfRecords ); WINADVAPI BOOL WINAPI GetOldestEventLogRecord ( IN HANDLE hEventLog, OUT PDWORD OldestRecord ); WINADVAPI HANDLE WINAPI OpenEventLogA ( IN LPCSTR lpUNCServerName, IN LPCSTR lpSourceName ); WINADVAPI HANDLE WINAPI OpenEventLogW ( IN LPCWSTR lpUNCServerName, IN LPCWSTR lpSourceName ); #ifdef UNICODE #define OpenEventLog OpenEventLogW #else #define OpenEventLog OpenEventLogA #endif // !UNICODE WINADVAPI HANDLE WINAPI RegisterEventSourceA ( IN LPCSTR lpUNCServerName, IN LPCSTR lpSourceName ); WINADVAPI HANDLE WINAPI RegisterEventSourceW ( IN LPCWSTR lpUNCServerName, IN LPCWSTR lpSourceName ); #ifdef UNICODE #define RegisterEventSource RegisterEventSourceW #else #define RegisterEventSource RegisterEventSourceA #endif // !UNICODE WINADVAPI HANDLE WINAPI OpenBackupEventLogA ( IN LPCSTR lpUNCServerName, IN LPCSTR lpFileName ); WINADVAPI HANDLE WINAPI OpenBackupEventLogW ( IN LPCWSTR lpUNCServerName, IN LPCWSTR lpFileName ); #ifdef UNICODE #define OpenBackupEventLog OpenBackupEventLogW #else #define OpenBackupEventLog OpenBackupEventLogA #endif // !UNICODE WINADVAPI BOOL WINAPI ReadEventLogA ( IN HANDLE hEventLog, IN DWORD dwReadFlags, IN DWORD dwRecordOffset, OUT LPVOID lpBuffer, IN DWORD nNumberOfBytesToRead, OUT DWORD *pnBytesRead, OUT DWORD *pnMinNumberOfBytesNeeded ); WINADVAPI BOOL WINAPI ReadEventLogW ( IN HANDLE hEventLog, IN DWORD dwReadFlags, IN DWORD dwRecordOffset, OUT LPVOID lpBuffer, IN DWORD nNumberOfBytesToRead, OUT DWORD *pnBytesRead, OUT DWORD *pnMinNumberOfBytesNeeded ); #ifdef UNICODE #define ReadEventLog ReadEventLogW #else #define ReadEventLog ReadEventLogA #endif // !UNICODE WINADVAPI BOOL WINAPI ReportEventA ( IN HANDLE hEventLog, IN WORD wType, IN WORD wCategory, IN DWORD dwEventID, IN PSID lpUserSid, IN WORD wNumStrings, IN DWORD dwDataSize, IN LPCSTR *lpStrings, IN LPVOID lpRawData ); WINADVAPI BOOL WINAPI ReportEventW ( IN HANDLE hEventLog, IN WORD wType, IN WORD wCategory, IN DWORD dwEventID, IN PSID lpUserSid, IN WORD wNumStrings, IN DWORD dwDataSize, IN LPCWSTR *lpStrings, IN LPVOID lpRawData ); #ifdef UNICODE #define ReportEvent ReportEventW #else #define ReportEvent ReportEventA #endif // !UNICODE #define EVENTLOG_FULL_INFO 0 typedef struct _EVENTLOG_FULL_INFORMATION { DWORD dwFull; } EVENTLOG_FULL_INFORMATION, *LPEVENTLOG_FULL_INFORMATION; WINADVAPI BOOL WINAPI GetEventLogInformation ( IN HANDLE hEventLog, IN DWORD dwInfoLevel, OUT LPVOID lpBuffer, IN DWORD cbBufSize, OUT LPDWORD pcbBytesNeeded ); // // // Security APIs // WINADVAPI BOOL WINAPI DuplicateToken( IN HANDLE ExistingTokenHandle, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, OUT PHANDLE DuplicateTokenHandle ); WINADVAPI BOOL WINAPI GetKernelObjectSecurity ( IN HANDLE Handle, IN SECURITY_INFORMATION RequestedInformation, OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN DWORD nLength, OUT LPDWORD lpnLengthNeeded ); WINADVAPI BOOL WINAPI ImpersonateNamedPipeClient( IN HANDLE hNamedPipe ); WINADVAPI BOOL WINAPI ImpersonateSelf( IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel ); WINADVAPI BOOL WINAPI RevertToSelf ( VOID ); WINADVAPI BOOL APIENTRY SetThreadToken ( IN PHANDLE Thread, IN HANDLE Token ); WINADVAPI BOOL WINAPI AccessCheck ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN HANDLE ClientToken, IN DWORD DesiredAccess, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, IN LPDWORD PrivilegeSetLength, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI AccessCheckByType ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN DWORD DesiredAccess, OUT POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, OUT PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, OUT LPDWORD PrivilegeSetLength, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus ); WINADVAPI BOOL WINAPI AccessCheckByTypeResultList ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN DWORD DesiredAccess, OUT POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, OUT PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, OUT LPDWORD PrivilegeSetLength, OUT LPDWORD GrantedAccessList, OUT LPDWORD AccessStatusList ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI OpenProcessToken ( IN HANDLE ProcessHandle, IN DWORD DesiredAccess, OUT PHANDLE TokenHandle ); WINADVAPI BOOL WINAPI OpenThreadToken ( IN HANDLE ThreadHandle, IN DWORD DesiredAccess, IN BOOL OpenAsSelf, OUT PHANDLE TokenHandle ); WINADVAPI BOOL WINAPI GetTokenInformation ( IN HANDLE TokenHandle, IN TOKEN_INFORMATION_CLASS TokenInformationClass, OUT LPVOID TokenInformation, IN DWORD TokenInformationLength, OUT PDWORD ReturnLength ); WINADVAPI BOOL WINAPI SetTokenInformation ( IN HANDLE TokenHandle, IN TOKEN_INFORMATION_CLASS TokenInformationClass, IN LPVOID TokenInformation, IN DWORD TokenInformationLength ); WINADVAPI BOOL WINAPI AdjustTokenPrivileges ( IN HANDLE TokenHandle, IN BOOL DisableAllPrivileges, IN PTOKEN_PRIVILEGES NewState, IN DWORD BufferLength, OUT PTOKEN_PRIVILEGES PreviousState, OUT PDWORD ReturnLength ); WINADVAPI BOOL WINAPI AdjustTokenGroups ( IN HANDLE TokenHandle, IN BOOL ResetToDefault, IN PTOKEN_GROUPS NewState, IN DWORD BufferLength, OUT PTOKEN_GROUPS PreviousState, OUT PDWORD ReturnLength ); WINADVAPI BOOL WINAPI PrivilegeCheck ( IN HANDLE ClientToken, IN PPRIVILEGE_SET RequiredPrivileges, OUT LPBOOL pfResult ); WINADVAPI BOOL WINAPI AccessCheckAndAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN LPSTR ObjectTypeName, IN LPSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN DWORD DesiredAccess, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus, OUT LPBOOL pfGenerateOnClose ); WINADVAPI BOOL WINAPI AccessCheckAndAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN LPWSTR ObjectTypeName, IN LPWSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN DWORD DesiredAccess, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus, OUT LPBOOL pfGenerateOnClose ); #ifdef UNICODE #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW #else #define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA #endif // !UNICODE #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI AccessCheckByTypeAndAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN LPCSTR ObjectTypeName, IN LPCSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN DWORD DesiredAccess, IN AUDIT_EVENT_TYPE AuditType, IN DWORD Flags, IN POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus, OUT LPBOOL pfGenerateOnClose ); WINADVAPI BOOL WINAPI AccessCheckByTypeAndAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN LPCWSTR ObjectTypeName, IN LPCWSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN DWORD DesiredAccess, IN AUDIT_EVENT_TYPE AuditType, IN DWORD Flags, IN POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPBOOL AccessStatus, OUT LPBOOL pfGenerateOnClose ); #ifdef UNICODE #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmW #else #define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmA #endif // !UNICODE WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN LPCSTR ObjectTypeName, IN LPCSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN DWORD DesiredAccess, IN AUDIT_EVENT_TYPE AuditType, IN DWORD Flags, IN POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPDWORD AccessStatusList, OUT LPBOOL pfGenerateOnClose ); WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN LPCWSTR ObjectTypeName, IN LPCWSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN DWORD DesiredAccess, IN AUDIT_EVENT_TYPE AuditType, IN DWORD Flags, IN POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPDWORD AccessStatusList, OUT LPBOOL pfGenerateOnClose ); #ifdef UNICODE #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmW #else #define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmA #endif // !UNICODE WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN HANDLE ClientToken, IN LPCSTR ObjectTypeName, IN LPCSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN DWORD DesiredAccess, IN AUDIT_EVENT_TYPE AuditType, IN DWORD Flags, IN POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPDWORD AccessStatusList, OUT LPBOOL pfGenerateOnClose ); WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN HANDLE ClientToken, IN LPCWSTR ObjectTypeName, IN LPCWSTR ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN DWORD DesiredAccess, IN AUDIT_EVENT_TYPE AuditType, IN DWORD Flags, IN POBJECT_TYPE_LIST ObjectTypeList, IN DWORD ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN BOOL ObjectCreation, OUT LPDWORD GrantedAccess, OUT LPDWORD AccessStatusList, OUT LPBOOL pfGenerateOnClose ); #ifdef UNICODE #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleW #else #define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleA #endif // !UNICODE #endif //(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI ObjectOpenAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN LPSTR ObjectTypeName, IN LPSTR ObjectName, IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN HANDLE ClientToken, IN DWORD DesiredAccess, IN DWORD GrantedAccess, IN PPRIVILEGE_SET Privileges, IN BOOL ObjectCreation, IN BOOL AccessGranted, OUT LPBOOL GenerateOnClose ); WINADVAPI BOOL WINAPI ObjectOpenAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN LPWSTR ObjectTypeName, IN LPWSTR ObjectName, IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN HANDLE ClientToken, IN DWORD DesiredAccess, IN DWORD GrantedAccess, IN PPRIVILEGE_SET Privileges, IN BOOL ObjectCreation, IN BOOL AccessGranted, OUT LPBOOL GenerateOnClose ); #ifdef UNICODE #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW #else #define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA #endif // !UNICODE WINADVAPI BOOL WINAPI ObjectPrivilegeAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN HANDLE ClientToken, IN DWORD DesiredAccess, IN PPRIVILEGE_SET Privileges, IN BOOL AccessGranted ); WINADVAPI BOOL WINAPI ObjectPrivilegeAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN HANDLE ClientToken, IN DWORD DesiredAccess, IN PPRIVILEGE_SET Privileges, IN BOOL AccessGranted ); #ifdef UNICODE #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW #else #define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA #endif // !UNICODE WINADVAPI BOOL WINAPI ObjectCloseAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN BOOL GenerateOnClose ); WINADVAPI BOOL WINAPI ObjectCloseAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN BOOL GenerateOnClose ); #ifdef UNICODE #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW #else #define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA #endif // !UNICODE WINADVAPI BOOL WINAPI ObjectDeleteAuditAlarmA ( IN LPCSTR SubsystemName, IN LPVOID HandleId, IN BOOL GenerateOnClose ); WINADVAPI BOOL WINAPI ObjectDeleteAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPVOID HandleId, IN BOOL GenerateOnClose ); #ifdef UNICODE #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW #else #define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA #endif // !UNICODE WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmA ( IN LPCSTR SubsystemName, IN LPCSTR ServiceName, IN HANDLE ClientToken, IN PPRIVILEGE_SET Privileges, IN BOOL AccessGranted ); WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmW ( IN LPCWSTR SubsystemName, IN LPCWSTR ServiceName, IN HANDLE ClientToken, IN PPRIVILEGE_SET Privileges, IN BOOL AccessGranted ); #ifdef UNICODE #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW #else #define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA #endif // !UNICODE #if(_WIN32_WINNT >= 0x0501) WINADVAPI BOOL WINAPI IsWellKnownSid ( IN PSID pSid, IN WELL_KNOWN_SID_TYPE WellKnownSidType ); WINADVAPI BOOL WINAPI CreateWellKnownSid( IN WELL_KNOWN_SID_TYPE WellKnownSidType, IN PSID DomainSid OPTIONAL, OUT PSID pSid, IN OUT DWORD *cbSid ); WINADVAPI BOOL WINAPI EqualDomainSid( IN PSID pSid1, IN PSID pSid2, OUT BOOL *pfEqual ); WINADVAPI BOOL WINAPI GetWindowsAccountDomainSid( IN PSID pSid, OUT PSID ppDomainSid OPTIONAL, IN OUT DWORD *cbSid ); #endif //(_WIN32_WINNT >= 0x0501) WINADVAPI BOOL WINAPI IsValidSid ( IN PSID pSid ); WINADVAPI BOOL WINAPI EqualSid ( IN PSID pSid1, IN PSID pSid2 ); WINADVAPI BOOL WINAPI EqualPrefixSid ( PSID pSid1, PSID pSid2 ); WINADVAPI DWORD WINAPI GetSidLengthRequired ( IN UCHAR nSubAuthorityCount ); WINADVAPI BOOL WINAPI AllocateAndInitializeSid ( IN PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, IN BYTE nSubAuthorityCount, IN DWORD nSubAuthority0, IN DWORD nSubAuthority1, IN DWORD nSubAuthority2, IN DWORD nSubAuthority3, IN DWORD nSubAuthority4, IN DWORD nSubAuthority5, IN DWORD nSubAuthority6, IN DWORD nSubAuthority7, OUT PSID *pSid ); WINADVAPI PVOID WINAPI FreeSid( IN PSID pSid ); WINADVAPI BOOL WINAPI InitializeSid ( OUT PSID Sid, IN PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, IN BYTE nSubAuthorityCount ); WINADVAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority ( IN PSID pSid ); WINADVAPI PDWORD WINAPI GetSidSubAuthority ( IN PSID pSid, IN DWORD nSubAuthority ); WINADVAPI PUCHAR WINAPI GetSidSubAuthorityCount ( IN PSID pSid ); WINADVAPI DWORD WINAPI GetLengthSid ( IN PSID pSid ); WINADVAPI BOOL WINAPI CopySid ( IN DWORD nDestinationSidLength, OUT PSID pDestinationSid, IN PSID pSourceSid ); WINADVAPI BOOL WINAPI AreAllAccessesGranted ( IN DWORD GrantedAccess, IN DWORD DesiredAccess ); WINADVAPI BOOL WINAPI AreAnyAccessesGranted ( IN DWORD GrantedAccess, IN DWORD DesiredAccess ); WINADVAPI VOID WINAPI MapGenericMask ( OUT PDWORD AccessMask, IN PGENERIC_MAPPING GenericMapping ); WINADVAPI BOOL WINAPI IsValidAcl ( IN PACL pAcl ); WINADVAPI BOOL WINAPI InitializeAcl ( OUT PACL pAcl, IN DWORD nAclLength, IN DWORD dwAclRevision ); WINADVAPI BOOL WINAPI GetAclInformation ( IN PACL pAcl, OUT LPVOID pAclInformation, IN DWORD nAclInformationLength, IN ACL_INFORMATION_CLASS dwAclInformationClass ); WINADVAPI BOOL WINAPI SetAclInformation ( IN PACL pAcl, IN LPVOID pAclInformation, IN DWORD nAclInformationLength, IN ACL_INFORMATION_CLASS dwAclInformationClass ); WINADVAPI BOOL WINAPI AddAce ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD dwStartingAceIndex, IN LPVOID pAceList, IN DWORD nAceListLength ); WINADVAPI BOOL WINAPI DeleteAce ( IN OUT PACL pAcl, IN DWORD dwAceIndex ); WINADVAPI BOOL WINAPI GetAce ( IN PACL pAcl, IN DWORD dwAceIndex, OUT LPVOID *pAce ); WINADVAPI BOOL WINAPI AddAccessAllowedAce ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AccessMask, IN PSID pSid ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI AddAccessAllowedAceEx ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AceFlags, IN DWORD AccessMask, IN PSID pSid ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI AddAccessDeniedAce ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AccessMask, IN PSID pSid ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI AddAccessDeniedAceEx ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AceFlags, IN DWORD AccessMask, IN PSID pSid ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI AddAuditAccessAce( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD dwAccessMask, IN PSID pSid, IN BOOL bAuditSuccess, IN BOOL bAuditFailure ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI AddAuditAccessAceEx( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AceFlags, IN DWORD dwAccessMask, IN PSID pSid, IN BOOL bAuditSuccess, IN BOOL bAuditFailure ); WINADVAPI BOOL WINAPI AddAccessAllowedObjectAce ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AceFlags, IN DWORD AccessMask, IN GUID *ObjectTypeGuid, IN GUID *InheritedObjectTypeGuid, IN PSID pSid ); WINADVAPI BOOL WINAPI AddAccessDeniedObjectAce ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AceFlags, IN DWORD AccessMask, IN GUID *ObjectTypeGuid, IN GUID *InheritedObjectTypeGuid, IN PSID pSid ); WINADVAPI BOOL WINAPI AddAuditAccessObjectAce ( IN OUT PACL pAcl, IN DWORD dwAceRevision, IN DWORD AceFlags, IN DWORD AccessMask, IN GUID *ObjectTypeGuid, IN GUID *InheritedObjectTypeGuid, IN PSID pSid, IN BOOL bAuditSuccess, IN BOOL bAuditFailure ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI FindFirstFreeAce ( IN PACL pAcl, OUT LPVOID *pAce ); WINADVAPI BOOL WINAPI InitializeSecurityDescriptor ( OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN DWORD dwRevision ); WINADVAPI BOOL WINAPI IsValidSecurityDescriptor ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); WINADVAPI DWORD WINAPI GetSecurityDescriptorLength ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); WINADVAPI BOOL WINAPI GetSecurityDescriptorControl ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, OUT PSECURITY_DESCRIPTOR_CONTROL pControl, OUT LPDWORD lpdwRevision ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI SetSecurityDescriptorControl ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, IN SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest, IN SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI SetSecurityDescriptorDacl ( IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN BOOL bDaclPresent, IN PACL pDacl, IN BOOL bDaclDefaulted ); WINADVAPI BOOL WINAPI GetSecurityDescriptorDacl ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, OUT LPBOOL lpbDaclPresent, OUT PACL *pDacl, OUT LPBOOL lpbDaclDefaulted ); WINADVAPI BOOL WINAPI SetSecurityDescriptorSacl ( IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN BOOL bSaclPresent, IN PACL pSacl, IN BOOL bSaclDefaulted ); WINADVAPI BOOL WINAPI GetSecurityDescriptorSacl ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, OUT LPBOOL lpbSaclPresent, OUT PACL *pSacl, OUT LPBOOL lpbSaclDefaulted ); WINADVAPI BOOL WINAPI SetSecurityDescriptorOwner ( IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN PSID pOwner, IN BOOL bOwnerDefaulted ); WINADVAPI BOOL WINAPI GetSecurityDescriptorOwner ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, OUT PSID *pOwner, OUT LPBOOL lpbOwnerDefaulted ); WINADVAPI BOOL WINAPI SetSecurityDescriptorGroup ( IN OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN PSID pGroup, IN BOOL bGroupDefaulted ); WINADVAPI BOOL WINAPI GetSecurityDescriptorGroup ( IN PSECURITY_DESCRIPTOR pSecurityDescriptor, OUT PSID *pGroup, OUT LPBOOL lpbGroupDefaulted ); WINADVAPI DWORD WINAPI SetSecurityDescriptorRMControl( IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN PUCHAR RMControl OPTIONAL ); WINADVAPI DWORD WINAPI GetSecurityDescriptorRMControl( IN PSECURITY_DESCRIPTOR SecurityDescriptor, OUT PUCHAR RMControl ); WINADVAPI BOOL WINAPI CreatePrivateObjectSecurity ( IN PSECURITY_DESCRIPTOR ParentDescriptor, IN PSECURITY_DESCRIPTOR CreatorDescriptor, OUT PSECURITY_DESCRIPTOR * NewDescriptor, IN BOOL IsDirectoryObject, IN HANDLE Token, IN PGENERIC_MAPPING GenericMapping ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI ConvertToAutoInheritPrivateObjectSecurity( IN PSECURITY_DESCRIPTOR ParentDescriptor, IN PSECURITY_DESCRIPTOR CurrentSecurityDescriptor, OUT PSECURITY_DESCRIPTOR *NewSecurityDescriptor, IN GUID *ObjectType, IN BOOLEAN IsDirectoryObject, IN PGENERIC_MAPPING GenericMapping ); WINADVAPI BOOL WINAPI CreatePrivateObjectSecurityEx ( IN PSECURITY_DESCRIPTOR ParentDescriptor, IN PSECURITY_DESCRIPTOR CreatorDescriptor, OUT PSECURITY_DESCRIPTOR * NewDescriptor, IN GUID *ObjectType OPTIONAL, IN BOOL IsContainerObject, IN ULONG AutoInheritFlags, IN HANDLE Token, IN PGENERIC_MAPPING GenericMapping ); WINADVAPI BOOL WINAPI CreatePrivateObjectSecurityWithMultipleInheritance ( IN PSECURITY_DESCRIPTOR ParentDescriptor, IN PSECURITY_DESCRIPTOR CreatorDescriptor, OUT PSECURITY_DESCRIPTOR * NewDescriptor, IN GUID **ObjectTypes OPTIONAL, IN ULONG GuidCount, IN BOOL IsContainerObject, IN ULONG AutoInheritFlags, IN HANDLE Token, IN PGENERIC_MAPPING GenericMapping ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI SetPrivateObjectSecurity ( IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR ModificationDescriptor, OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, IN PGENERIC_MAPPING GenericMapping, IN HANDLE Token ); #if(_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI SetPrivateObjectSecurityEx ( IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR ModificationDescriptor, OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, IN ULONG AutoInheritFlags, IN PGENERIC_MAPPING GenericMapping, IN HANDLE Token OPTIONAL ); #endif /* _WIN32_WINNT >= 0x0500 */ WINADVAPI BOOL WINAPI GetPrivateObjectSecurity ( IN PSECURITY_DESCRIPTOR ObjectDescriptor, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR ResultantDescriptor, IN DWORD DescriptorLength, OUT PDWORD ReturnLength ); WINADVAPI BOOL WINAPI DestroyPrivateObjectSecurity ( IN OUT PSECURITY_DESCRIPTOR * ObjectDescriptor ); WINADVAPI BOOL WINAPI MakeSelfRelativeSD ( IN PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, OUT PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, OUT LPDWORD lpdwBufferLength ); WINADVAPI BOOL WINAPI MakeAbsoluteSD ( IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, OUT PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, OUT LPDWORD lpdwAbsoluteSecurityDescriptorSize, OUT PACL pDacl, OUT LPDWORD lpdwDaclSize, OUT PACL pSacl, OUT LPDWORD lpdwSaclSize, OUT PSID pOwner, OUT LPDWORD lpdwOwnerSize, OUT PSID pPrimaryGroup, OUT LPDWORD lpdwPrimaryGroupSize ); WINADVAPI BOOL WINAPI MakeAbsoluteSD2 ( IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, OUT LPDWORD lpdwBufferSize ); WINADVAPI BOOL WINAPI SetFileSecurityA ( IN LPCSTR lpFileName, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); WINADVAPI BOOL WINAPI SetFileSecurityW ( IN LPCWSTR lpFileName, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); #ifdef UNICODE #define SetFileSecurity SetFileSecurityW #else #define SetFileSecurity SetFileSecurityA #endif // !UNICODE WINADVAPI BOOL WINAPI GetFileSecurityA ( IN LPCSTR lpFileName, IN SECURITY_INFORMATION RequestedInformation, OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN DWORD nLength, OUT LPDWORD lpnLengthNeeded ); WINADVAPI BOOL WINAPI GetFileSecurityW ( IN LPCWSTR lpFileName, IN SECURITY_INFORMATION RequestedInformation, OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN DWORD nLength, OUT LPDWORD lpnLengthNeeded ); #ifdef UNICODE #define GetFileSecurity GetFileSecurityW #else #define GetFileSecurity GetFileSecurityA #endif // !UNICODE WINADVAPI BOOL WINAPI SetKernelObjectSecurity ( IN HANDLE Handle, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor ); WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA( IN LPCSTR lpPathName, IN BOOL bWatchSubtree, IN DWORD dwNotifyFilter ); WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW( IN LPCWSTR lpPathName, IN BOOL bWatchSubtree, IN DWORD dwNotifyFilter ); #ifdef UNICODE #define FindFirstChangeNotification FindFirstChangeNotificationW #else #define FindFirstChangeNotification FindFirstChangeNotificationA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindNextChangeNotification( IN HANDLE hChangeHandle ); WINBASEAPI BOOL WINAPI FindCloseChangeNotification( IN HANDLE hChangeHandle ); #if(_WIN32_WINNT >= 0x0400) WINBASEAPI BOOL WINAPI ReadDirectoryChangesW( IN HANDLE hDirectory, IN OUT LPVOID lpBuffer, IN DWORD nBufferLength, IN BOOL bWatchSubtree, IN DWORD dwNotifyFilter, OUT LPDWORD lpBytesReturned, IN LPOVERLAPPED lpOverlapped, IN LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* _WIN32_WINNT >= 0x0400 */ WINBASEAPI BOOL WINAPI VirtualLock( IN LPVOID lpAddress, IN SIZE_T dwSize ); WINBASEAPI BOOL WINAPI VirtualUnlock( IN LPVOID lpAddress, IN SIZE_T dwSize ); WINBASEAPI LPVOID WINAPI MapViewOfFileEx( IN HANDLE hFileMappingObject, IN DWORD dwDesiredAccess, IN DWORD dwFileOffsetHigh, IN DWORD dwFileOffsetLow, IN SIZE_T dwNumberOfBytesToMap, IN LPVOID lpBaseAddress ); WINBASEAPI BOOL WINAPI SetPriorityClass( IN HANDLE hProcess, IN DWORD dwPriorityClass ); WINBASEAPI DWORD WINAPI GetPriorityClass( IN HANDLE hProcess ); WINBASEAPI BOOL WINAPI IsBadReadPtr( IN CONST VOID *lp, IN UINT_PTR ucb ); WINBASEAPI BOOL WINAPI IsBadWritePtr( IN LPVOID lp, IN UINT_PTR ucb ); WINBASEAPI BOOL WINAPI IsBadHugeReadPtr( IN CONST VOID *lp, IN UINT_PTR ucb ); WINBASEAPI BOOL WINAPI IsBadHugeWritePtr( IN LPVOID lp, IN UINT_PTR ucb ); WINBASEAPI BOOL WINAPI IsBadCodePtr( IN FARPROC lpfn ); WINBASEAPI BOOL WINAPI IsBadStringPtrA( IN LPCSTR lpsz, IN UINT_PTR ucchMax ); WINBASEAPI BOOL WINAPI IsBadStringPtrW( IN LPCWSTR lpsz, IN UINT_PTR ucchMax ); #ifdef UNICODE #define IsBadStringPtr IsBadStringPtrW #else #define IsBadStringPtr IsBadStringPtrA #endif // !UNICODE WINADVAPI BOOL WINAPI LookupAccountSidA( IN LPCSTR lpSystemName, IN PSID Sid, OUT LPSTR Name, IN OUT LPDWORD cbName, OUT LPSTR ReferencedDomainName, IN OUT LPDWORD cbReferencedDomainName, OUT PSID_NAME_USE peUse ); WINADVAPI BOOL WINAPI LookupAccountSidW( IN LPCWSTR lpSystemName, IN PSID Sid, OUT LPWSTR Name, IN OUT LPDWORD cbName, OUT LPWSTR ReferencedDomainName, IN OUT LPDWORD cbReferencedDomainName, OUT PSID_NAME_USE peUse ); #ifdef UNICODE #define LookupAccountSid LookupAccountSidW #else #define LookupAccountSid LookupAccountSidA #endif // !UNICODE WINADVAPI BOOL WINAPI LookupAccountNameA( IN LPCSTR lpSystemName, IN LPCSTR lpAccountName, OUT PSID Sid, IN OUT LPDWORD cbSid, OUT LPSTR ReferencedDomainName, IN OUT LPDWORD cbReferencedDomainName, OUT PSID_NAME_USE peUse ); WINADVAPI BOOL WINAPI LookupAccountNameW( IN LPCWSTR lpSystemName, IN LPCWSTR lpAccountName, OUT PSID Sid, IN OUT LPDWORD cbSid, OUT LPWSTR ReferencedDomainName, IN OUT LPDWORD cbReferencedDomainName, OUT PSID_NAME_USE peUse ); #ifdef UNICODE #define LookupAccountName LookupAccountNameW #else #define LookupAccountName LookupAccountNameA #endif // !UNICODE WINADVAPI BOOL WINAPI LookupPrivilegeValueA( IN LPCSTR lpSystemName, IN LPCSTR lpName, OUT PLUID lpLuid ); WINADVAPI BOOL WINAPI LookupPrivilegeValueW( IN LPCWSTR lpSystemName, IN LPCWSTR lpName, OUT PLUID lpLuid ); #ifdef UNICODE #define LookupPrivilegeValue LookupPrivilegeValueW #else #define LookupPrivilegeValue LookupPrivilegeValueA #endif // !UNICODE WINADVAPI BOOL WINAPI LookupPrivilegeNameA( IN LPCSTR lpSystemName, IN PLUID lpLuid, OUT LPSTR lpName, IN OUT LPDWORD cbName ); WINADVAPI BOOL WINAPI LookupPrivilegeNameW( IN LPCWSTR lpSystemName, IN PLUID lpLuid, OUT LPWSTR lpName, IN OUT LPDWORD cbName ); #ifdef UNICODE #define LookupPrivilegeName LookupPrivilegeNameW #else #define LookupPrivilegeName LookupPrivilegeNameA #endif // !UNICODE WINADVAPI BOOL WINAPI LookupPrivilegeDisplayNameA( IN LPCSTR lpSystemName, IN LPCSTR lpName, OUT LPSTR lpDisplayName, IN OUT LPDWORD cbDisplayName, OUT LPDWORD lpLanguageId ); WINADVAPI BOOL WINAPI LookupPrivilegeDisplayNameW( IN LPCWSTR lpSystemName, IN LPCWSTR lpName, OUT LPWSTR lpDisplayName, IN OUT LPDWORD cbDisplayName, OUT LPDWORD lpLanguageId ); #ifdef UNICODE #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW #else #define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA #endif // !UNICODE WINADVAPI BOOL WINAPI AllocateLocallyUniqueId( OUT PLUID Luid ); WINBASEAPI BOOL WINAPI BuildCommDCBA( IN LPCSTR lpDef, OUT LPDCB lpDCB ); WINBASEAPI BOOL WINAPI BuildCommDCBW( IN LPCWSTR lpDef, OUT LPDCB lpDCB ); #ifdef UNICODE #define BuildCommDCB BuildCommDCBW #else #define BuildCommDCB BuildCommDCBA #endif // !UNICODE WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsA( IN LPCSTR lpDef, OUT LPDCB lpDCB, IN LPCOMMTIMEOUTS lpCommTimeouts ); WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsW( IN LPCWSTR lpDef, OUT LPDCB lpDCB, IN LPCOMMTIMEOUTS lpCommTimeouts ); #ifdef UNICODE #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW #else #define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA #endif // !UNICODE WINBASEAPI BOOL WINAPI CommConfigDialogA( IN LPCSTR lpszName, IN HWND hWnd, IN OUT LPCOMMCONFIG lpCC ); WINBASEAPI BOOL WINAPI CommConfigDialogW( IN LPCWSTR lpszName, IN HWND hWnd, IN OUT LPCOMMCONFIG lpCC ); #ifdef UNICODE #define CommConfigDialog CommConfigDialogW #else #define CommConfigDialog CommConfigDialogA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetDefaultCommConfigA( IN LPCSTR lpszName, OUT LPCOMMCONFIG lpCC, IN OUT LPDWORD lpdwSize ); WINBASEAPI BOOL WINAPI GetDefaultCommConfigW( IN LPCWSTR lpszName, OUT LPCOMMCONFIG lpCC, IN OUT LPDWORD lpdwSize ); #ifdef UNICODE #define GetDefaultCommConfig GetDefaultCommConfigW #else #define GetDefaultCommConfig GetDefaultCommConfigA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetDefaultCommConfigA( IN LPCSTR lpszName, IN LPCOMMCONFIG lpCC, IN DWORD dwSize ); WINBASEAPI BOOL WINAPI SetDefaultCommConfigW( IN LPCWSTR lpszName, IN LPCOMMCONFIG lpCC, IN DWORD dwSize ); #ifdef UNICODE #define SetDefaultCommConfig SetDefaultCommConfigW #else #define SetDefaultCommConfig SetDefaultCommConfigA #endif // !UNICODE #ifndef _MAC #define MAX_COMPUTERNAME_LENGTH 15 #else #define MAX_COMPUTERNAME_LENGTH 31 #endif WINBASEAPI BOOL WINAPI GetComputerNameA ( OUT LPSTR lpBuffer, IN OUT LPDWORD nSize ); WINBASEAPI BOOL WINAPI GetComputerNameW ( OUT LPWSTR lpBuffer, IN OUT LPDWORD nSize ); #ifdef UNICODE #define GetComputerName GetComputerNameW #else #define GetComputerName GetComputerNameA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetComputerNameA ( IN LPCSTR lpComputerName ); WINBASEAPI BOOL WINAPI SetComputerNameW ( IN LPCWSTR lpComputerName ); #ifdef UNICODE #define SetComputerName SetComputerNameW #else #define SetComputerName SetComputerNameA #endif // !UNICODE #if (_WIN32_WINNT >= 0x0500) typedef enum _COMPUTER_NAME_FORMAT { ComputerNameNetBIOS, ComputerNameDnsHostname, ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname, ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified, ComputerNameMax } COMPUTER_NAME_FORMAT ; WINBASEAPI BOOL WINAPI GetComputerNameExA ( IN COMPUTER_NAME_FORMAT NameType, OUT LPSTR lpBuffer, IN OUT LPDWORD nSize ); WINBASEAPI BOOL WINAPI GetComputerNameExW ( IN COMPUTER_NAME_FORMAT NameType, OUT LPWSTR lpBuffer, IN OUT LPDWORD nSize ); #ifdef UNICODE #define GetComputerNameEx GetComputerNameExW #else #define GetComputerNameEx GetComputerNameExA #endif // !UNICODE WINBASEAPI BOOL WINAPI SetComputerNameExA ( IN COMPUTER_NAME_FORMAT NameType, IN LPCSTR lpBuffer ); WINBASEAPI BOOL WINAPI SetComputerNameExW ( IN COMPUTER_NAME_FORMAT NameType, IN LPCWSTR lpBuffer ); #ifdef UNICODE #define SetComputerNameEx SetComputerNameExW #else #define SetComputerNameEx SetComputerNameExA #endif // !UNICODE WINBASEAPI DWORD WINAPI AddLocalAlternateComputerNameA ( IN LPCSTR lpDnsFQHostname, IN ULONG ulFlags ); WINBASEAPI DWORD WINAPI AddLocalAlternateComputerNameW ( IN LPCWSTR lpDnsFQHostname, IN ULONG ulFlags ); #ifdef UNICODE #define AddLocalAlternateComputerName AddLocalAlternateComputerNameW #else #define AddLocalAlternateComputerName AddLocalAlternateComputerNameA #endif // !UNICODE WINBASEAPI DWORD WINAPI RemoveLocalAlternateComputerNameA ( IN LPCSTR lpAltDnsFQHostname, IN ULONG ulFlags ); WINBASEAPI DWORD WINAPI RemoveLocalAlternateComputerNameW ( IN LPCWSTR lpAltDnsFQHostname, IN ULONG ulFlags ); #ifdef UNICODE #define RemoveLocalAlternateComputerName RemoveLocalAlternateComputerNameW #else #define RemoveLocalAlternateComputerName RemoveLocalAlternateComputerNameA #endif // !UNICODE WINBASEAPI DWORD WINAPI SetLocalPrimaryComputerNameA ( IN LPCSTR lpAltDnsFQHostname, IN ULONG ulFlags ); WINBASEAPI DWORD WINAPI SetLocalPrimaryComputerNameW ( IN LPCWSTR lpAltDnsFQHostname, IN ULONG ulFlags ); #ifdef UNICODE #define SetLocalPrimaryComputerName SetLocalPrimaryComputerNameW #else #define SetLocalPrimaryComputerName SetLocalPrimaryComputerNameA #endif // !UNICODE typedef enum _COMPUTER_NAME_TYPE { PrimaryComputerName, AlternateComputerNames, AllComputerNames, ComputerNameTypeMax } COMPUTER_NAME_TYPE ; WINBASEAPI DWORD WINAPI EnumerateLocalComputerNamesA ( IN COMPUTER_NAME_TYPE NameType, IN ULONG ulFlags, IN OUT LPSTR lpDnsFQHostname, IN OUT LPDWORD nSize ); WINBASEAPI DWORD WINAPI EnumerateLocalComputerNamesW ( IN COMPUTER_NAME_TYPE NameType, IN ULONG ulFlags, IN OUT LPWSTR lpDnsFQHostname, IN OUT LPDWORD nSize ); #ifdef UNICODE #define EnumerateLocalComputerNames EnumerateLocalComputerNamesW #else #define EnumerateLocalComputerNames EnumerateLocalComputerNamesA #endif // !UNICODE WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameA ( IN LPCSTR Hostname, OUT LPSTR ComputerName, IN OUT LPDWORD nSize ); WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameW ( IN LPCWSTR Hostname, OUT LPWSTR ComputerName, IN OUT LPDWORD nSize ); #ifdef UNICODE #define DnsHostnameToComputerName DnsHostnameToComputerNameW #else #define DnsHostnameToComputerName DnsHostnameToComputerNameA #endif // !UNICODE #endif // _WIN32_WINNT WINADVAPI BOOL WINAPI GetUserNameA ( OUT LPSTR lpBuffer, IN OUT LPDWORD nSize ); WINADVAPI BOOL WINAPI GetUserNameW ( OUT LPWSTR lpBuffer, IN OUT LPDWORD nSize ); #ifdef UNICODE #define GetUserName GetUserNameW #else #define GetUserName GetUserNameA #endif // !UNICODE // // Logon Support APIs // #define LOGON32_LOGON_INTERACTIVE 2 #define LOGON32_LOGON_NETWORK 3 #define LOGON32_LOGON_BATCH 4 #define LOGON32_LOGON_SERVICE 5 #define LOGON32_LOGON_UNLOCK 7 #if(_WIN32_WINNT >= 0x0500) #define LOGON32_LOGON_NETWORK_CLEARTEXT 8 #define LOGON32_LOGON_NEW_CREDENTIALS 9 #endif // (_WIN32_WINNT >= 0x0500) #define LOGON32_PROVIDER_DEFAULT 0 #define LOGON32_PROVIDER_WINNT35 1 #if(_WIN32_WINNT >= 0x0400) #define LOGON32_PROVIDER_WINNT40 2 #endif /* _WIN32_WINNT >= 0x0400 */ #if(_WIN32_WINNT >= 0x0500) #define LOGON32_PROVIDER_WINNT50 3 #endif // (_WIN32_WINNT >= 0x0500) WINADVAPI BOOL WINAPI LogonUserA ( IN LPCSTR lpszUsername, IN LPCSTR lpszDomain, IN LPCSTR lpszPassword, IN DWORD dwLogonType, IN DWORD dwLogonProvider, OUT PHANDLE phToken ); WINADVAPI BOOL WINAPI LogonUserW ( IN LPCWSTR lpszUsername, IN LPCWSTR lpszDomain, IN LPCWSTR lpszPassword, IN DWORD dwLogonType, IN DWORD dwLogonProvider, OUT PHANDLE phToken ); #ifdef UNICODE #define LogonUser LogonUserW #else #define LogonUser LogonUserA #endif // !UNICODE WINADVAPI BOOL WINAPI LogonUserExA ( IN LPCSTR lpszUsername, IN LPCSTR lpszDomain, IN LPCSTR lpszPassword, IN DWORD dwLogonType, IN DWORD dwLogonProvider, OUT PHANDLE phToken OPTIONAL, OUT PSID *ppLogonSid OPTIONAL, OUT PVOID *ppProfileBuffer OPTIONAL, OUT LPDWORD pdwProfileLength OPTIONAL, OUT PQUOTA_LIMITS pQuotaLimits OPTIONAL ); WINADVAPI BOOL WINAPI LogonUserExW ( IN LPCWSTR lpszUsername, IN LPCWSTR lpszDomain, IN LPCWSTR lpszPassword, IN DWORD dwLogonType, IN DWORD dwLogonProvider, OUT PHANDLE phToken OPTIONAL, OUT PSID *ppLogonSid OPTIONAL, OUT PVOID *ppProfileBuffer OPTIONAL, OUT LPDWORD pdwProfileLength OPTIONAL, OUT PQUOTA_LIMITS pQuotaLimits OPTIONAL ); #ifdef UNICODE #define LogonUserEx LogonUserExW #else #define LogonUserEx LogonUserExA #endif // !UNICODE WINADVAPI BOOL WINAPI ImpersonateLoggedOnUser( IN HANDLE hToken ); WINADVAPI BOOL WINAPI CreateProcessAsUserA ( IN HANDLE hToken, IN LPCSTR lpApplicationName, IN LPSTR lpCommandLine, IN LPSECURITY_ATTRIBUTES lpProcessAttributes, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN BOOL bInheritHandles, IN DWORD dwCreationFlags, IN LPVOID lpEnvironment, IN LPCSTR lpCurrentDirectory, IN LPSTARTUPINFOA lpStartupInfo, OUT LPPROCESS_INFORMATION lpProcessInformation ); WINADVAPI BOOL WINAPI CreateProcessAsUserW ( IN HANDLE hToken, IN LPCWSTR lpApplicationName, IN LPWSTR lpCommandLine, IN LPSECURITY_ATTRIBUTES lpProcessAttributes, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN BOOL bInheritHandles, IN DWORD dwCreationFlags, IN LPVOID lpEnvironment, IN LPCWSTR lpCurrentDirectory, IN LPSTARTUPINFOW lpStartupInfo, OUT LPPROCESS_INFORMATION lpProcessInformation ); #ifdef UNICODE #define CreateProcessAsUser CreateProcessAsUserW #else #define CreateProcessAsUser CreateProcessAsUserA #endif // !UNICODE #if(_WIN32_WINNT >= 0x0500) // // LogonFlags // #define LOGON_WITH_PROFILE 0x00000001 #define LOGON_NETCREDENTIALS_ONLY 0x00000002 #define LOGON_ZERO_PASSWORD_BUFFER 0x80000000 WINADVAPI BOOL WINAPI CreateProcessWithLogonW( LPCWSTR lpUsername, LPCWSTR lpDomain, LPCWSTR lpPassword, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); WINADVAPI BOOL WINAPI CreateProcessWithTokenW( HANDLE hToken, DWORD dwLogonFlags, LPCWSTR lpApplicationName, LPWSTR lpCommandLine, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPSTARTUPINFOW lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); #endif // (_WIN32_WINNT >= 0x0500) WINADVAPI BOOL APIENTRY ImpersonateAnonymousToken( IN HANDLE ThreadHandle ); WINADVAPI BOOL WINAPI DuplicateTokenEx( IN HANDLE hExistingToken, IN DWORD dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpTokenAttributes, IN SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, IN TOKEN_TYPE TokenType, OUT PHANDLE phNewToken); WINADVAPI BOOL APIENTRY CreateRestrictedToken( IN HANDLE ExistingTokenHandle, IN DWORD Flags, IN DWORD DisableSidCount, IN PSID_AND_ATTRIBUTES SidsToDisable OPTIONAL, IN DWORD DeletePrivilegeCount, IN PLUID_AND_ATTRIBUTES PrivilegesToDelete OPTIONAL, IN DWORD RestrictedSidCount, IN PSID_AND_ATTRIBUTES SidsToRestrict OPTIONAL, OUT PHANDLE NewTokenHandle ); WINADVAPI BOOL WINAPI IsTokenRestricted( IN HANDLE TokenHandle ); WINADVAPI BOOL WINAPI IsTokenUntrusted( IN HANDLE TokenHandle ); BOOL APIENTRY CheckTokenMembership( IN HANDLE TokenHandle OPTIONAL, IN PSID SidToCheck, OUT PBOOL IsMember ); // // Thread pool API's // #if (_WIN32_WINNT >= 0x0500) typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK ; WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject( PHANDLE phNewWaitObject, HANDLE hObject, WAITORTIMERCALLBACK Callback, PVOID Context, ULONG dwMilliseconds, ULONG dwFlags ); WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx( HANDLE hObject, WAITORTIMERCALLBACK Callback, PVOID Context, ULONG dwMilliseconds, ULONG dwFlags ); WINBASEAPI BOOL WINAPI UnregisterWait( HANDLE WaitHandle ); WINBASEAPI BOOL WINAPI UnregisterWaitEx( HANDLE WaitHandle, HANDLE CompletionEvent ); WINBASEAPI BOOL WINAPI QueueUserWorkItem( LPTHREAD_START_ROUTINE Function, PVOID Context, ULONG Flags ); WINBASEAPI BOOL WINAPI BindIoCompletionCallback ( HANDLE FileHandle, LPOVERLAPPED_COMPLETION_ROUTINE Function, ULONG Flags ); WINBASEAPI HANDLE WINAPI CreateTimerQueue( VOID ); WINBASEAPI BOOL WINAPI CreateTimerQueueTimer( PHANDLE phNewTimer, HANDLE TimerQueue, WAITORTIMERCALLBACK Callback, PVOID Parameter, DWORD DueTime, DWORD Period, ULONG Flags ) ; WINBASEAPI BOOL WINAPI ChangeTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer, ULONG DueTime, ULONG Period ); WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer, HANDLE CompletionEvent ); WINBASEAPI BOOL WINAPI DeleteTimerQueueEx( HANDLE TimerQueue, HANDLE CompletionEvent ); WINBASEAPI HANDLE WINAPI SetTimerQueueTimer( HANDLE TimerQueue, WAITORTIMERCALLBACK Callback, PVOID Parameter, DWORD DueTime, DWORD Period, BOOL PreferIo ); WINBASEAPI BOOL WINAPI CancelTimerQueueTimer( HANDLE TimerQueue, HANDLE Timer ); WINBASEAPI BOOL WINAPI DeleteTimerQueue( HANDLE TimerQueue ); #endif // _WIN32_WINNT #if(_WIN32_WINNT >= 0x0400) // // Plug-and-Play API's // #define HW_PROFILE_GUIDLEN 39 // 36-characters plus NULL terminator #define MAX_PROFILE_LEN 80 #define DOCKINFO_UNDOCKED (0x1) #define DOCKINFO_DOCKED (0x2) #define DOCKINFO_USER_SUPPLIED (0x4) #define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED) #define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED) typedef struct tagHW_PROFILE_INFOA { DWORD dwDockInfo; CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; CHAR szHwProfileName[MAX_PROFILE_LEN]; } HW_PROFILE_INFOA, *LPHW_PROFILE_INFOA; typedef struct tagHW_PROFILE_INFOW { DWORD dwDockInfo; WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN]; WCHAR szHwProfileName[MAX_PROFILE_LEN]; } HW_PROFILE_INFOW, *LPHW_PROFILE_INFOW; #ifdef UNICODE typedef HW_PROFILE_INFOW HW_PROFILE_INFO; typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO; #else typedef HW_PROFILE_INFOA HW_PROFILE_INFO; typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO; #endif // UNICODE WINADVAPI BOOL WINAPI GetCurrentHwProfileA ( OUT LPHW_PROFILE_INFOA lpHwProfileInfo ); WINADVAPI BOOL WINAPI GetCurrentHwProfileW ( OUT LPHW_PROFILE_INFOW lpHwProfileInfo ); #ifdef UNICODE #define GetCurrentHwProfile GetCurrentHwProfileW #else #define GetCurrentHwProfile GetCurrentHwProfileA #endif // !UNICODE #endif /* _WIN32_WINNT >= 0x0400 */ // // Performance counter API's // WINBASEAPI BOOL WINAPI QueryPerformanceCounter( OUT LARGE_INTEGER *lpPerformanceCount ); WINBASEAPI BOOL WINAPI QueryPerformanceFrequency( OUT LARGE_INTEGER *lpFrequency ); WINBASEAPI BOOL WINAPI GetVersionExA( IN OUT LPOSVERSIONINFOA lpVersionInformation ); WINBASEAPI BOOL WINAPI GetVersionExW( IN OUT LPOSVERSIONINFOW lpVersionInformation ); #ifdef UNICODE #define GetVersionEx GetVersionExW #else #define GetVersionEx GetVersionExA #endif // !UNICODE WINBASEAPI BOOL WINAPI VerifyVersionInfoA( IN LPOSVERSIONINFOEXA lpVersionInformation, IN DWORD dwTypeMask, IN DWORDLONG dwlConditionMask ); WINBASEAPI BOOL WINAPI VerifyVersionInfoW( IN LPOSVERSIONINFOEXW lpVersionInformation, IN DWORD dwTypeMask, IN DWORDLONG dwlConditionMask ); #ifdef UNICODE #define VerifyVersionInfo VerifyVersionInfoW #else #define VerifyVersionInfo VerifyVersionInfoA #endif // !UNICODE // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base // API functions. // #include /* Abnormal termination codes */ #define TC_NORMAL 0 #define TC_HARDERR 1 #define TC_GP_TRAP 2 #define TC_SIGNAL 3 #if(WINVER >= 0x0400) // // Power Management APIs // #define AC_LINE_OFFLINE 0x00 #define AC_LINE_ONLINE 0x01 #define AC_LINE_BACKUP_POWER 0x02 #define AC_LINE_UNKNOWN 0xFF #define BATTERY_FLAG_HIGH 0x01 #define BATTERY_FLAG_LOW 0x02 #define BATTERY_FLAG_CRITICAL 0x04 #define BATTERY_FLAG_CHARGING 0x08 #define BATTERY_FLAG_NO_BATTERY 0x80 #define BATTERY_FLAG_UNKNOWN 0xFF #define BATTERY_PERCENTAGE_UNKNOWN 0xFF #define BATTERY_LIFE_UNKNOWN 0xFFFFFFFF typedef struct _SYSTEM_POWER_STATUS { BYTE ACLineStatus; BYTE BatteryFlag; BYTE BatteryLifePercent; BYTE Reserved1; DWORD BatteryLifeTime; DWORD BatteryFullLifeTime; } SYSTEM_POWER_STATUS, *LPSYSTEM_POWER_STATUS; BOOL WINAPI GetSystemPowerStatus( OUT LPSYSTEM_POWER_STATUS lpSystemPowerStatus ); BOOL WINAPI SetSystemPowerState( IN BOOL fSuspend, IN BOOL fForce ); #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) // // Very Large Memory API Subset // WINBASEAPI BOOL WINAPI AllocateUserPhysicalPages( IN HANDLE hProcess, IN OUT PULONG_PTR NumberOfPages, OUT PULONG_PTR PageArray ); WINBASEAPI BOOL WINAPI FreeUserPhysicalPages( IN HANDLE hProcess, IN OUT PULONG_PTR NumberOfPages, IN PULONG_PTR PageArray ); WINBASEAPI BOOL WINAPI MapUserPhysicalPages( IN PVOID VirtualAddress, IN ULONG_PTR NumberOfPages, IN PULONG_PTR PageArray OPTIONAL ); WINBASEAPI BOOL WINAPI MapUserPhysicalPagesScatter( IN PVOID *VirtualAddresses, IN ULONG_PTR NumberOfPages, IN PULONG_PTR PageArray OPTIONAL ); WINBASEAPI HANDLE WINAPI CreateJobObjectA( IN LPSECURITY_ATTRIBUTES lpJobAttributes, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI CreateJobObjectW( IN LPSECURITY_ATTRIBUTES lpJobAttributes, IN LPCWSTR lpName ); #ifdef UNICODE #define CreateJobObject CreateJobObjectW #else #define CreateJobObject CreateJobObjectA #endif // !UNICODE WINBASEAPI HANDLE WINAPI OpenJobObjectA( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCSTR lpName ); WINBASEAPI HANDLE WINAPI OpenJobObjectW( IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName ); #ifdef UNICODE #define OpenJobObject OpenJobObjectW #else #define OpenJobObject OpenJobObjectA #endif // !UNICODE WINBASEAPI BOOL WINAPI AssignProcessToJobObject( IN HANDLE hJob, IN HANDLE hProcess ); WINBASEAPI BOOL WINAPI TerminateJobObject( IN HANDLE hJob, IN UINT uExitCode ); WINBASEAPI BOOL WINAPI QueryInformationJobObject( IN HANDLE hJob, IN JOBOBJECTINFOCLASS JobObjectInformationClass, OUT LPVOID lpJobObjectInformation, IN DWORD cbJobObjectInformationLength, OUT LPDWORD lpReturnLength ); WINBASEAPI BOOL WINAPI SetInformationJobObject( IN HANDLE hJob, IN JOBOBJECTINFOCLASS JobObjectInformationClass, IN LPVOID lpJobObjectInformation, IN DWORD cbJobObjectInformationLength ); WINBASEAPI BOOL WINAPI IsProcessInJob ( IN HANDLE ProcessHandle, IN HANDLE JobHandle, OUT PBOOL Result ); WINBASEAPI BOOL WINAPI CreateJobSet ( IN ULONG NumJob, IN PJOB_SET_ARRAY UserJobSet, IN ULONG Flags); WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler( IN ULONG FirstHandler, IN PVECTORED_EXCEPTION_HANDLER VectoredHandler ); WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler( IN PVOID VectoredHandlerHandle ); // // New Volume Mount Point API. // WINBASEAPI HANDLE WINAPI FindFirstVolumeA( LPSTR lpszVolumeName, DWORD cchBufferLength ); WINBASEAPI HANDLE WINAPI FindFirstVolumeW( LPWSTR lpszVolumeName, DWORD cchBufferLength ); #ifdef UNICODE #define FindFirstVolume FindFirstVolumeW #else #define FindFirstVolume FindFirstVolumeA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindNextVolumeA( HANDLE hFindVolume, LPSTR lpszVolumeName, DWORD cchBufferLength ); WINBASEAPI BOOL WINAPI FindNextVolumeW( HANDLE hFindVolume, LPWSTR lpszVolumeName, DWORD cchBufferLength ); #ifdef UNICODE #define FindNextVolume FindNextVolumeW #else #define FindNextVolume FindNextVolumeA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindVolumeClose( HANDLE hFindVolume ); WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA( LPCSTR lpszRootPathName, LPSTR lpszVolumeMountPoint, DWORD cchBufferLength ); WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW( LPCWSTR lpszRootPathName, LPWSTR lpszVolumeMountPoint, DWORD cchBufferLength ); #ifdef UNICODE #define FindFirstVolumeMountPoint FindFirstVolumeMountPointW #else #define FindFirstVolumeMountPoint FindFirstVolumeMountPointA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA( HANDLE hFindVolumeMountPoint, LPSTR lpszVolumeMountPoint, DWORD cchBufferLength ); WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW( HANDLE hFindVolumeMountPoint, LPWSTR lpszVolumeMountPoint, DWORD cchBufferLength ); #ifdef UNICODE #define FindNextVolumeMountPoint FindNextVolumeMountPointW #else #define FindNextVolumeMountPoint FindNextVolumeMountPointA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindVolumeMountPointClose( HANDLE hFindVolumeMountPoint ); WINBASEAPI BOOL WINAPI SetVolumeMountPointA( LPCSTR lpszVolumeMountPoint, LPCSTR lpszVolumeName ); WINBASEAPI BOOL WINAPI SetVolumeMountPointW( LPCWSTR lpszVolumeMountPoint, LPCWSTR lpszVolumeName ); #ifdef UNICODE #define SetVolumeMountPoint SetVolumeMountPointW #else #define SetVolumeMountPoint SetVolumeMountPointA #endif // !UNICODE WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA( LPCSTR lpszVolumeMountPoint ); WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW( LPCWSTR lpszVolumeMountPoint ); #ifdef UNICODE #define DeleteVolumeMountPoint DeleteVolumeMountPointW #else #define DeleteVolumeMountPoint DeleteVolumeMountPointA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointA( LPCSTR lpszVolumeMountPoint, LPSTR lpszVolumeName, DWORD cchBufferLength ); WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointW( LPCWSTR lpszVolumeMountPoint, LPWSTR lpszVolumeName, DWORD cchBufferLength ); #ifdef UNICODE #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW #else #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetVolumePathNameA( LPCSTR lpszFileName, LPSTR lpszVolumePathName, DWORD cchBufferLength ); WINBASEAPI BOOL WINAPI GetVolumePathNameW( LPCWSTR lpszFileName, LPWSTR lpszVolumePathName, DWORD cchBufferLength ); #ifdef UNICODE #define GetVolumePathName GetVolumePathNameW #else #define GetVolumePathName GetVolumePathNameA #endif // !UNICODE WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameA( LPCSTR lpszVolumeName, LPSTR lpszVolumePathNames, DWORD cchBufferLength, PDWORD lpcchReturnLength ); WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameW( LPCWSTR lpszVolumeName, LPWSTR lpszVolumePathNames, DWORD cchBufferLength, PDWORD lpcchReturnLength ); #ifdef UNICODE #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW #else #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA #endif // !UNICODE #endif #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED #define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID (0x00000001) #define ACTCTX_FLAG_LANGID_VALID (0x00000002) #define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID (0x00000004) #define ACTCTX_FLAG_RESOURCE_NAME_VALID (0x00000008) #define ACTCTX_FLAG_SET_PROCESS_DEFAULT (0x00000010) #define ACTCTX_FLAG_APPLICATION_NAME_VALID (0x00000020) #define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF (0x00000040) #define ACTCTX_FLAG_HMODULE_VALID (0x00000080) typedef struct tagACTCTXA { ULONG cbSize; DWORD dwFlags; LPCSTR lpSource; USHORT wProcessorArchitecture; LANGID wLangId; LPCSTR lpAssemblyDirectory; LPCSTR lpResourceName; LPCSTR lpApplicationName; HMODULE hModule; } ACTCTXA, *PACTCTXA; typedef struct tagACTCTXW { ULONG cbSize; DWORD dwFlags; LPCWSTR lpSource; USHORT wProcessorArchitecture; LANGID wLangId; LPCWSTR lpAssemblyDirectory; LPCWSTR lpResourceName; LPCWSTR lpApplicationName; HMODULE hModule; } ACTCTXW, *PACTCTXW; #ifdef UNICODE typedef ACTCTXW ACTCTX; typedef PACTCTXW PACTCTX; #else typedef ACTCTXA ACTCTX; typedef PACTCTXA PACTCTX; #endif // UNICODE typedef const ACTCTXA *PCACTCTXA; typedef const ACTCTXW *PCACTCTXW; #ifdef UNICODE typedef ACTCTXW ACTCTX; typedef PCACTCTXW PCACTCTX; #else typedef ACTCTXA ACTCTX; typedef PCACTCTXA PCACTCTX; #endif // UNICODE #endif #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) WINBASEAPI HANDLE WINAPI CreateActCtxA( PCACTCTXA pActCtx ); WINBASEAPI HANDLE WINAPI CreateActCtxW( PCACTCTXW pActCtx ); #ifdef UNICODE #define CreateActCtx CreateActCtxW #else #define CreateActCtx CreateActCtxA #endif // !UNICODE WINBASEAPI VOID WINAPI AddRefActCtx( HANDLE hActCtx ); WINBASEAPI VOID WINAPI ReleaseActCtx( HANDLE hActCtx ); WINBASEAPI BOOL WINAPI ZombifyActCtx( HANDLE hActCtx ); WINBASEAPI BOOL WINAPI ActivateActCtx( HANDLE hActCtx, ULONG_PTR *lpCookie ); #define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION (0x00000001) WINBASEAPI BOOL WINAPI DeactivateActCtx( DWORD dwFlags, ULONG_PTR ulCookie ); WINBASEAPI BOOL WINAPI GetCurrentActCtx( HANDLE *lphActCtx); #endif #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 { ULONG cbSize; ULONG ulDataFormatVersion; PVOID lpData; ULONG ulLength; PVOID lpSectionGlobalData; ULONG ulSectionGlobalDataLength; PVOID lpSectionBase; ULONG ulSectionTotalLength; HANDLE hActCtx; ULONG ulAssemblyRosterIndex; } ACTCTX_SECTION_KEYED_DATA_2600, *PACTCTX_SECTION_KEYED_DATA_2600; typedef const ACTCTX_SECTION_KEYED_DATA_2600 * PCACTCTX_SECTION_KEYED_DATA_2600; typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA { PVOID lpInformation; PVOID lpSectionBase; ULONG ulSectionLength; PVOID lpSectionGlobalDataBase; ULONG ulSectionGlobalDataLength; } ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA; typedef 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; // 2600 stops here ULONG ulFlags; ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata; } ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA; typedef const ACTCTX_SECTION_KEYED_DATA * PCACTCTX_SECTION_KEYED_DATA; #define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX (0x00000001) #define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS (0x00000002) #define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA (0x00000004) #endif #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) WINBASEAPI BOOL WINAPI FindActCtxSectionStringA( DWORD dwFlags, const GUID *lpExtensionGuid, ULONG ulSectionId, LPCSTR lpStringToFind, PACTCTX_SECTION_KEYED_DATA ReturnedData ); WINBASEAPI BOOL WINAPI FindActCtxSectionStringW( DWORD dwFlags, const GUID *lpExtensionGuid, ULONG ulSectionId, LPCWSTR lpStringToFind, PACTCTX_SECTION_KEYED_DATA ReturnedData ); #ifdef UNICODE #define FindActCtxSectionString FindActCtxSectionStringW #else #define FindActCtxSectionString FindActCtxSectionStringA #endif // !UNICODE WINBASEAPI BOOL WINAPI FindActCtxSectionGuid( DWORD dwFlags, const GUID *lpExtensionGuid, ULONG ulSectionId, const 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) typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION { HANDLE hActCtx; DWORD dwFlags; } ACTIVATION_CONTEXT_BASIC_INFORMATION, *PACTIVATION_CONTEXT_BASIC_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION; #define ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED 1 #endif // !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED) #endif #define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX (0x00000004) #define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE (0x00000008) #define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS (0x00000010) #define QUERY_ACTCTX_FLAG_NO_ADDREF (0x80000000) #endif #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) // // switch (ulInfoClass) // // case ActivationContextBasicInformation: // pvSubInstance == NULL // pvBuffer is of type PACTIVATION_CONTEXT_BASIC_INFORMATION // // case ActivationContextDetailedInformation: // pvSubInstance == NULL // pvBuffer is of type PACTIVATION_CONTEXT_DETAILED_INFORMATION // // case AssemblyDetailedInformationInActivationContext: // pvSubInstance is of type PULONG // *pvSubInstance < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount // pvBuffer is of type PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION // // case FileInformationInAssemblyOfAssemblyInActivationContext: // pvSubInstance is of type PACTIVATION_CONTEXT_QUERY_INDEX // pvSubInstance->ulAssemblyIndex < ACTIVATION_CONTEXT_DETAILED_INFORMATION::ulAssemblyCount // pvSubInstance->ulFileIndexInAssembly < ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION::ulFileCount // pvBuffer is of type PASSEMBLY_FILE_DETAILED_INFORMATION // // String are placed after the structs. // WINBASEAPI BOOL WINAPI QueryActCtxW( IN DWORD dwFlags, IN HANDLE hActCtx, IN PVOID pvSubInstance, IN ULONG ulInfoClass, OUT PVOID pvBuffer, IN SIZE_T cbBuffer OPTIONAL, OUT SIZE_T *pcbWrittenOrRequired OPTIONAL ); typedef BOOL (WINAPI * PQUERYACTCTXW_FUNC)( IN DWORD dwFlags, IN HANDLE hActCtx, IN PVOID pvSubInstance, IN ULONG ulInfoClass, OUT PVOID pvBuffer, IN SIZE_T cbBuffer OPTIONAL, OUT SIZE_T *pcbWrittenOrRequired OPTIONAL ); #endif // (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) WINBASEAPI BOOL WINAPI ProcessIdToSessionId( IN DWORD dwProcessId, OUT DWORD *pSessionId ); #if _WIN32_WINNT >= 0x0501 WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId(); WINBASEAPI BOOL WINAPI IsWow64Process( HANDLE hProcess, PBOOL Wow64Process ); #endif // (_WIN32_WINNT >= 0x0501) WINBASEAPI BOOL WINAPI GetLogicalProcessorInformation( PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer, PDWORD ReturnedLength ); // // NUMA Information routines. // WINBASEAPI BOOL WINAPI GetNumaHighestNodeNumber( PULONG HighestNodeNumber ); WINBASEAPI BOOL WINAPI GetNumaProcessorNode( UCHAR Processor, PUCHAR NodeNumber ); WINBASEAPI BOOL WINAPI GetNumaNodeProcessorMask( UCHAR Node, PULONGLONG ProcessorMask ); WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNode( UCHAR Node, PULONGLONG AvailableBytes ); #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ #if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0) #include "winbase.inl" #endif /* ISOLATION_AWARE_ENABLED */ #endif /* RC */ #ifdef __cplusplus } #endif #endif // _WINBASE_ ================================================ FILE: Bin/i386/APILib/WinGDI.h ================================================ /************************************************************************** * * * wingdi.h -- GDI procedure declarations, constant definitions and macros * * * * Copyright (c) Microsoft Corp. All rights reserved. * * * **************************************************************************/ #ifndef _WINGDI_ #define _WINGDI_ #ifdef _MAC #include #endif // // Define API decoration for direct importing of DLL references. // #if !defined(_GDI32_) #define WINGDIAPI DECLSPEC_IMPORT #else #define WINGDIAPI #endif // // Define API decoration for direct importing of DLL references. // #if !defined(_SPOOL32_) #define WINSPOOLAPI DECLSPEC_IMPORT #else #define WINSPOOLAPI #endif #ifdef __cplusplus extern "C" { #endif #ifndef WINVER #define WINVER 0x0500 // version 5.0 #endif /* WINVER */ #ifndef NOGDI #ifndef NORASTEROPS /* Binary raster ops */ #define R2_BLACK 1 /* 0 */ #define R2_NOTMERGEPEN 2 /* DPon */ #define R2_MASKNOTPEN 3 /* DPna */ #define R2_NOTCOPYPEN 4 /* PN */ #define R2_MASKPENNOT 5 /* PDna */ #define R2_NOT 6 /* Dn */ #define R2_XORPEN 7 /* DPx */ #define R2_NOTMASKPEN 8 /* DPan */ #define R2_MASKPEN 9 /* DPa */ #define R2_NOTXORPEN 10 /* DPxn */ #define R2_NOP 11 /* D */ #define R2_MERGENOTPEN 12 /* DPno */ #define R2_COPYPEN 13 /* P */ #define R2_MERGEPENNOT 14 /* PDno */ #define R2_MERGEPEN 15 /* DPo */ #define R2_WHITE 16 /* 1 */ #define R2_LAST 16 /* Ternary raster operations */ #define SRCCOPY (DWORD)0x00CC0020 /* dest = source */ #define SRCPAINT (DWORD)0x00EE0086 /* dest = source OR dest */ #define SRCAND (DWORD)0x008800C6 /* dest = source AND dest */ #define SRCINVERT (DWORD)0x00660046 /* dest = source XOR dest */ #define SRCERASE (DWORD)0x00440328 /* dest = source AND (NOT dest ) */ #define NOTSRCCOPY (DWORD)0x00330008 /* dest = (NOT source) */ #define NOTSRCERASE (DWORD)0x001100A6 /* dest = (NOT src) AND (NOT dest) */ #define MERGECOPY (DWORD)0x00C000CA /* dest = (source AND pattern) */ #define MERGEPAINT (DWORD)0x00BB0226 /* dest = (NOT source) OR dest */ #define PATCOPY (DWORD)0x00F00021 /* dest = pattern */ #define PATPAINT (DWORD)0x00FB0A09 /* dest = DPSnoo */ #define PATINVERT (DWORD)0x005A0049 /* dest = pattern XOR dest */ #define DSTINVERT (DWORD)0x00550009 /* dest = (NOT dest) */ #define BLACKNESS (DWORD)0x00000042 /* dest = BLACK */ #define WHITENESS (DWORD)0x00FF0062 /* dest = WHITE */ #if(WINVER >= 0x0500) #define NOMIRRORBITMAP (DWORD)0x80000000 /* Do not Mirror the bitmap in this call */ #define CAPTUREBLT (DWORD)0x40000000 /* Include layered windows */ #endif /* WINVER >= 0x0500 */ /* Quaternary raster codes */ #define MAKEROP4(fore,back) (DWORD)((((back) << 8) & 0xFF000000) | (fore)) #endif /* NORASTEROPS */ #define GDI_ERROR (0xFFFFFFFFL) #define HGDI_ERROR (LongToHandle(0xFFFFFFFFL)) /* Region Flags */ #define ERROR 0 #define NULLREGION 1 #define SIMPLEREGION 2 #define COMPLEXREGION 3 #define RGN_ERROR ERROR /* CombineRgn() Styles */ #define RGN_AND 1 #define RGN_OR 2 #define RGN_XOR 3 #define RGN_DIFF 4 #define RGN_COPY 5 #define RGN_MIN RGN_AND #define RGN_MAX RGN_COPY /* StretchBlt() Modes */ #define BLACKONWHITE 1 #define WHITEONBLACK 2 #define COLORONCOLOR 3 #define HALFTONE 4 #define MAXSTRETCHBLTMODE 4 #if(WINVER >= 0x0400) /* New StretchBlt() Modes */ #define STRETCH_ANDSCANS BLACKONWHITE #define STRETCH_ORSCANS WHITEONBLACK #define STRETCH_DELETESCANS COLORONCOLOR #define STRETCH_HALFTONE HALFTONE #endif /* WINVER >= 0x0400 */ /* PolyFill() Modes */ #define ALTERNATE 1 #define WINDING 2 #define POLYFILL_LAST 2 /* Layout Orientation Options */ #if(WINVER >= 0x0500) #define LAYOUT_RTL 0x00000001 // Right to left #define LAYOUT_BTT 0x00000002 // Bottom to top #define LAYOUT_VBH 0x00000004 // Vertical before horizontal #define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH) #define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008 #endif /* WINVER >= 0x0500 */ /* Text Alignment Options */ #define TA_NOUPDATECP 0 #define TA_UPDATECP 1 #define TA_LEFT 0 #define TA_RIGHT 2 #define TA_CENTER 6 #define TA_TOP 0 #define TA_BOTTOM 8 #define TA_BASELINE 24 #if (WINVER >= 0x0400) #define TA_RTLREADING 256 #define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING) #else #define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP) #endif #define VTA_BASELINE TA_BASELINE #define VTA_LEFT TA_BOTTOM #define VTA_RIGHT TA_TOP #define VTA_CENTER TA_CENTER #define VTA_BOTTOM TA_RIGHT #define VTA_TOP TA_LEFT #define ETO_OPAQUE 0x0002 #define ETO_CLIPPED 0x0004 #if(WINVER >= 0x0400) #define ETO_GLYPH_INDEX 0x0010 #define ETO_RTLREADING 0x0080 #define ETO_NUMERICSLOCAL 0x0400 #define ETO_NUMERICSLATIN 0x0800 #define ETO_IGNORELANGUAGE 0x1000 #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) #define ETO_PDY 0x2000 #endif // (_WIN32_WINNT >= 0x0500) #define ASPECT_FILTERING 0x0001 /* Bounds Accumulation APIs */ #define DCB_RESET 0x0001 #define DCB_ACCUMULATE 0x0002 #define DCB_DIRTY DCB_ACCUMULATE #define DCB_SET (DCB_RESET | DCB_ACCUMULATE) #define DCB_ENABLE 0x0004 #define DCB_DISABLE 0x0008 #ifndef NOMETAFILE /* Metafile Functions */ #define META_SETBKCOLOR 0x0201 #define META_SETBKMODE 0x0102 #define META_SETMAPMODE 0x0103 #define META_SETROP2 0x0104 #define META_SETRELABS 0x0105 #define META_SETPOLYFILLMODE 0x0106 #define META_SETSTRETCHBLTMODE 0x0107 #define META_SETTEXTCHAREXTRA 0x0108 #define META_SETTEXTCOLOR 0x0209 #define META_SETTEXTJUSTIFICATION 0x020A #define META_SETWINDOWORG 0x020B #define META_SETWINDOWEXT 0x020C #define META_SETVIEWPORTORG 0x020D #define META_SETVIEWPORTEXT 0x020E #define META_OFFSETWINDOWORG 0x020F #define META_SCALEWINDOWEXT 0x0410 #define META_OFFSETVIEWPORTORG 0x0211 #define META_SCALEVIEWPORTEXT 0x0412 #define META_LINETO 0x0213 #define META_MOVETO 0x0214 #define META_EXCLUDECLIPRECT 0x0415 #define META_INTERSECTCLIPRECT 0x0416 #define META_ARC 0x0817 #define META_ELLIPSE 0x0418 #define META_FLOODFILL 0x0419 #define META_PIE 0x081A #define META_RECTANGLE 0x041B #define META_ROUNDRECT 0x061C #define META_PATBLT 0x061D #define META_SAVEDC 0x001E #define META_SETPIXEL 0x041F #define META_OFFSETCLIPRGN 0x0220 #define META_TEXTOUT 0x0521 #define META_BITBLT 0x0922 #define META_STRETCHBLT 0x0B23 #define META_POLYGON 0x0324 #define META_POLYLINE 0x0325 #define META_ESCAPE 0x0626 #define META_RESTOREDC 0x0127 #define META_FILLREGION 0x0228 #define META_FRAMEREGION 0x0429 #define META_INVERTREGION 0x012A #define META_PAINTREGION 0x012B #define META_SELECTCLIPREGION 0x012C #define META_SELECTOBJECT 0x012D #define META_SETTEXTALIGN 0x012E #define META_CHORD 0x0830 #define META_SETMAPPERFLAGS 0x0231 #define META_EXTTEXTOUT 0x0a32 #define META_SETDIBTODEV 0x0d33 #define META_SELECTPALETTE 0x0234 #define META_REALIZEPALETTE 0x0035 #define META_ANIMATEPALETTE 0x0436 #define META_SETPALENTRIES 0x0037 #define META_POLYPOLYGON 0x0538 #define META_RESIZEPALETTE 0x0139 #define META_DIBBITBLT 0x0940 #define META_DIBSTRETCHBLT 0x0b41 #define META_DIBCREATEPATTERNBRUSH 0x0142 #define META_STRETCHDIB 0x0f43 #define META_EXTFLOODFILL 0x0548 #if(WINVER >= 0x0500) #define META_SETLAYOUT 0x0149 #endif /* WINVER >= 0x0500 */ #define META_DELETEOBJECT 0x01f0 #define META_CREATEPALETTE 0x00f7 #define META_CREATEPATTERNBRUSH 0x01F9 #define META_CREATEPENINDIRECT 0x02FA #define META_CREATEFONTINDIRECT 0x02FB #define META_CREATEBRUSHINDIRECT 0x02FC #define META_CREATEREGION 0x06FF #if(WINVER >= 0x0400) typedef struct _DRAWPATRECT { POINT ptPosition; POINT ptSize; WORD wStyle; WORD wPattern; } DRAWPATRECT, *PDRAWPATRECT; #endif /* WINVER >= 0x0400 */ #endif /* NOMETAFILE */ /* GDI Escapes */ #define NEWFRAME 1 #define ABORTDOC 2 #define NEXTBAND 3 #define SETCOLORTABLE 4 #define GETCOLORTABLE 5 #define FLUSHOUTPUT 6 #define DRAFTMODE 7 #define QUERYESCSUPPORT 8 #define SETABORTPROC 9 #define STARTDOC 10 #define ENDDOC 11 #define GETPHYSPAGESIZE 12 #define GETPRINTINGOFFSET 13 #define GETSCALINGFACTOR 14 #define MFCOMMENT 15 #define GETPENWIDTH 16 #define SETCOPYCOUNT 17 #define SELECTPAPERSOURCE 18 #define DEVICEDATA 19 #define PASSTHROUGH 19 #define GETTECHNOLGY 20 #define GETTECHNOLOGY 20 #define SETLINECAP 21 #define SETLINEJOIN 22 #define SETMITERLIMIT 23 #define BANDINFO 24 #define DRAWPATTERNRECT 25 #define GETVECTORPENSIZE 26 #define GETVECTORBRUSHSIZE 27 #define ENABLEDUPLEX 28 #define GETSETPAPERBINS 29 #define GETSETPRINTORIENT 30 #define ENUMPAPERBINS 31 #define SETDIBSCALING 32 #define EPSPRINTING 33 #define ENUMPAPERMETRICS 34 #define GETSETPAPERMETRICS 35 #define POSTSCRIPT_DATA 37 #define POSTSCRIPT_IGNORE 38 #define MOUSETRAILS 39 #define GETDEVICEUNITS 42 #define GETEXTENDEDTEXTMETRICS 256 #define GETEXTENTTABLE 257 #define GETPAIRKERNTABLE 258 #define GETTRACKKERNTABLE 259 #define EXTTEXTOUT 512 #define GETFACENAME 513 #define DOWNLOADFACE 514 #define ENABLERELATIVEWIDTHS 768 #define ENABLEPAIRKERNING 769 #define SETKERNTRACK 770 #define SETALLJUSTVALUES 771 #define SETCHARSET 772 #define STRETCHBLT 2048 #define METAFILE_DRIVER 2049 #define GETSETSCREENPARAMS 3072 #define QUERYDIBSUPPORT 3073 #define BEGIN_PATH 4096 #define CLIP_TO_PATH 4097 #define END_PATH 4098 #define EXT_DEVICE_CAPS 4099 #define RESTORE_CTM 4100 #define SAVE_CTM 4101 #define SET_ARC_DIRECTION 4102 #define SET_BACKGROUND_COLOR 4103 #define SET_POLY_MODE 4104 #define SET_SCREEN_ANGLE 4105 #define SET_SPREAD 4106 #define TRANSFORM_CTM 4107 #define SET_CLIP_BOX 4108 #define SET_BOUNDS 4109 #define SET_MIRROR_MODE 4110 #define OPENCHANNEL 4110 #define DOWNLOADHEADER 4111 #define CLOSECHANNEL 4112 #define POSTSCRIPT_PASSTHROUGH 4115 #define ENCAPSULATED_POSTSCRIPT 4116 #define POSTSCRIPT_IDENTIFY 4117 /* new escape for NT5 pscript driver */ #define POSTSCRIPT_INJECTION 4118 /* new escape for NT5 pscript driver */ #define CHECKJPEGFORMAT 4119 #define CHECKPNGFORMAT 4120 #define GET_PS_FEATURESETTING 4121 /* new escape for NT5 pscript driver */ #define SPCLPASSTHROUGH2 4568 /* new escape for NT5 pscript driver */ /* * Parameters for POSTSCRIPT_IDENTIFY escape */ #define PSIDENT_GDICENTRIC 0 #define PSIDENT_PSCENTRIC 1 /* * Header structure for the input buffer to POSTSCRIPT_INJECTION escape */ typedef struct _PSINJECTDATA { DWORD DataBytes; /* number of raw data bytes (NOT including this header) */ WORD InjectionPoint; /* injection point */ WORD PageNumber; /* page number to apply the injection */ /* Followed by raw data to be injected */ } PSINJECTDATA, *PPSINJECTDATA; /* * Constants for PSINJECTDATA.InjectionPoint field */ #define PSINJECT_BEGINSTREAM 1 #define PSINJECT_PSADOBE 2 #define PSINJECT_PAGESATEND 3 #define PSINJECT_PAGES 4 #define PSINJECT_DOCNEEDEDRES 5 #define PSINJECT_DOCSUPPLIEDRES 6 #define PSINJECT_PAGEORDER 7 #define PSINJECT_ORIENTATION 8 #define PSINJECT_BOUNDINGBOX 9 #define PSINJECT_DOCUMENTPROCESSCOLORS 10 #define PSINJECT_COMMENTS 11 #define PSINJECT_BEGINDEFAULTS 12 #define PSINJECT_ENDDEFAULTS 13 #define PSINJECT_BEGINPROLOG 14 #define PSINJECT_ENDPROLOG 15 #define PSINJECT_BEGINSETUP 16 #define PSINJECT_ENDSETUP 17 #define PSINJECT_TRAILER 18 #define PSINJECT_EOF 19 #define PSINJECT_ENDSTREAM 20 #define PSINJECT_DOCUMENTPROCESSCOLORSATEND 21 #define PSINJECT_PAGENUMBER 100 #define PSINJECT_BEGINPAGESETUP 101 #define PSINJECT_ENDPAGESETUP 102 #define PSINJECT_PAGETRAILER 103 #define PSINJECT_PLATECOLOR 104 #define PSINJECT_SHOWPAGE 105 #define PSINJECT_PAGEBBOX 106 #define PSINJECT_ENDPAGECOMMENTS 107 #define PSINJECT_VMSAVE 200 #define PSINJECT_VMRESTORE 201 /* * Parameter for GET_PS_FEATURESETTING escape */ #define FEATURESETTING_NUP 0 #define FEATURESETTING_OUTPUT 1 #define FEATURESETTING_PSLEVEL 2 #define FEATURESETTING_CUSTPAPER 3 #define FEATURESETTING_MIRROR 4 #define FEATURESETTING_NEGATIVE 5 #define FEATURESETTING_PROTOCOL 6 // // The range of selectors between FEATURESETTING_PRIVATE_BEGIN and // FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use // #define FEATURESETTING_PRIVATE_BEGIN 0x1000 #define FEATURESETTING_PRIVATE_END 0x1FFF /* * Information about output options */ typedef struct _PSFEATURE_OUTPUT { BOOL bPageIndependent; BOOL bSetPageDevice; } PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT; /* * Information about custom paper size */ typedef struct _PSFEATURE_CUSTPAPER { LONG lOrientation; LONG lWidth; LONG lHeight; LONG lWidthOffset; LONG lHeightOffset; } PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER; /* Value returned for FEATURESETTING_PROTOCOL */ #define PSPROTOCOL_ASCII 0 #define PSPROTOCOL_BCP 1 #define PSPROTOCOL_TBCP 2 #define PSPROTOCOL_BINARY 3 /* Flag returned from QUERYDIBSUPPORT */ #define QDI_SETDIBITS 1 #define QDI_GETDIBITS 2 #define QDI_DIBTOSCREEN 4 #define QDI_STRETCHDIB 8 /* Spooler Error Codes */ #define SP_NOTREPORTED 0x4000 #define SP_ERROR (-1) #define SP_APPABORT (-2) #define SP_USERABORT (-3) #define SP_OUTOFDISK (-4) #define SP_OUTOFMEMORY (-5) #define PR_JOBSTATUS 0x0000 /* Object Definitions for EnumObjects() */ #define OBJ_PEN 1 #define OBJ_BRUSH 2 #define OBJ_DC 3 #define OBJ_METADC 4 #define OBJ_PAL 5 #define OBJ_FONT 6 #define OBJ_BITMAP 7 #define OBJ_REGION 8 #define OBJ_METAFILE 9 #define OBJ_MEMDC 10 #define OBJ_EXTPEN 11 #define OBJ_ENHMETADC 12 #define OBJ_ENHMETAFILE 13 #define OBJ_COLORSPACE 14 /* xform stuff */ #define MWT_IDENTITY 1 #define MWT_LEFTMULTIPLY 2 #define MWT_RIGHTMULTIPLY 3 #define MWT_MIN MWT_IDENTITY #define MWT_MAX MWT_RIGHTMULTIPLY #define _XFORM_ typedef struct tagXFORM { FLOAT eM11; FLOAT eM12; FLOAT eM21; FLOAT eM22; FLOAT eDx; FLOAT eDy; } XFORM, *PXFORM, FAR *LPXFORM; /* Bitmap Header Definition */ typedef struct tagBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; LPVOID bmBits; } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; #include typedef struct tagRGBTRIPLE { BYTE rgbtBlue; BYTE rgbtGreen; BYTE rgbtRed; } RGBTRIPLE; #include typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; } RGBQUAD; typedef RGBQUAD FAR* LPRGBQUAD; #if(WINVER >= 0x0400) /* Image Color Matching color definitions */ #define CS_ENABLE 0x00000001L #define CS_DISABLE 0x00000002L #define CS_DELETE_TRANSFORM 0x00000003L /* Logcolorspace signature */ #define LCS_SIGNATURE 'PSOC' /* Logcolorspace lcsType values */ #define LCS_sRGB 'sRGB' #define LCS_WINDOWS_COLOR_SPACE 'Win ' // Windows default color space typedef LONG LCSCSTYPE; #define LCS_CALIBRATED_RGB 0x00000000L typedef LONG LCSGAMUTMATCH; #define LCS_GM_BUSINESS 0x00000001L #define LCS_GM_GRAPHICS 0x00000002L #define LCS_GM_IMAGES 0x00000004L #define LCS_GM_ABS_COLORIMETRIC 0x00000008L /* ICM Defines for results from CheckColorInGamut() */ #define CM_OUT_OF_GAMUT 255 #define CM_IN_GAMUT 0 /* UpdateICMRegKey Constants */ #define ICM_ADDPROFILE 1 #define ICM_DELETEPROFILE 2 #define ICM_QUERYPROFILE 3 #define ICM_SETDEFAULTPROFILE 4 #define ICM_REGISTERICMATCHER 5 #define ICM_UNREGISTERICMATCHER 6 #define ICM_QUERYMATCH 7 /* Macros to retrieve CMYK values from a COLORREF */ #define GetKValue(cmyk) ((BYTE)(cmyk)) #define GetYValue(cmyk) ((BYTE)((cmyk)>> 8)) #define GetMValue(cmyk) ((BYTE)((cmyk)>>16)) #define GetCValue(cmyk) ((BYTE)((cmyk)>>24)) #define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24))) typedef long FXPT16DOT16, FAR *LPFXPT16DOT16; typedef long FXPT2DOT30, FAR *LPFXPT2DOT30; /* ICM Color Definitions */ // The following two structures are used for defining RGB's in terms of CIEXYZ. typedef struct tagCIEXYZ { FXPT2DOT30 ciexyzX; FXPT2DOT30 ciexyzY; FXPT2DOT30 ciexyzZ; } CIEXYZ; typedef CIEXYZ FAR *LPCIEXYZ; typedef struct tagICEXYZTRIPLE { CIEXYZ ciexyzRed; CIEXYZ ciexyzGreen; CIEXYZ ciexyzBlue; } CIEXYZTRIPLE; typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE; // The next structures the logical color space. Unlike pens and brushes, // but like palettes, there is only one way to create a LogColorSpace. // A pointer to it must be passed, its elements can't be pushed as // arguments. typedef struct tagLOGCOLORSPACEA { DWORD lcsSignature; DWORD lcsVersion; DWORD lcsSize; LCSCSTYPE lcsCSType; LCSGAMUTMATCH lcsIntent; CIEXYZTRIPLE lcsEndpoints; DWORD lcsGammaRed; DWORD lcsGammaGreen; DWORD lcsGammaBlue; CHAR lcsFilename[MAX_PATH]; } LOGCOLORSPACEA, *LPLOGCOLORSPACEA; typedef struct tagLOGCOLORSPACEW { DWORD lcsSignature; DWORD lcsVersion; DWORD lcsSize; LCSCSTYPE lcsCSType; LCSGAMUTMATCH lcsIntent; CIEXYZTRIPLE lcsEndpoints; DWORD lcsGammaRed; DWORD lcsGammaGreen; DWORD lcsGammaBlue; WCHAR lcsFilename[MAX_PATH]; } LOGCOLORSPACEW, *LPLOGCOLORSPACEW; #ifdef UNICODE typedef LOGCOLORSPACEW LOGCOLORSPACE; typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE; #else typedef LOGCOLORSPACEA LOGCOLORSPACE; typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE; #endif // UNICODE #endif /* WINVER >= 0x0400 */ /* structures for defining DIBs */ typedef struct tagBITMAPCOREHEADER { DWORD bcSize; /* used to get to color table */ WORD bcWidth; WORD bcHeight; WORD bcPlanes; WORD bcBitCount; } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; #if(WINVER >= 0x0400) typedef struct { 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; } BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER; #endif /* WINVER >= 0x0400 */ #if (WINVER >= 0x0500) typedef struct { 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; } BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER; // Values for bV5CSType #define PROFILE_LINKED 'LINK' #define PROFILE_EMBEDDED 'MBED' #endif /* constants for the biCompression field */ #define BI_RGB 0L #define BI_RLE8 1L #define BI_RLE4 2L #define BI_BITFIELDS 3L #define BI_JPEG 4L #define BI_PNG 5L #if (_WIN32_WINNT >= 0x0400) #endif typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; typedef struct tagBITMAPCOREINFO { BITMAPCOREHEADER bmciHeader; RGBTRIPLE bmciColors[1]; } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; #include typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; #include #define MAKEPOINTS(l) (*((POINTS FAR *)&(l))) #if(WINVER >= 0x0400) #ifndef NOFONTSIG typedef struct tagFONTSIGNATURE { DWORD fsUsb[4]; DWORD fsCsb[2]; } FONTSIGNATURE, *PFONTSIGNATURE,FAR *LPFONTSIGNATURE; typedef struct tagCHARSETINFO { UINT ciCharset; UINT ciACP; FONTSIGNATURE fs; } CHARSETINFO, *PCHARSETINFO, NEAR *NPCHARSETINFO, FAR *LPCHARSETINFO; #define TCI_SRCCHARSET 1 #define TCI_SRCCODEPAGE 2 #define TCI_SRCFONTSIG 3 #define TCI_SRCLOCALE 0x1000 typedef struct tagLOCALESIGNATURE { DWORD lsUsb[4]; DWORD lsCsbDefault[2]; DWORD lsCsbSupported[2]; } LOCALESIGNATURE, *PLOCALESIGNATURE,FAR *LPLOCALESIGNATURE; #endif #endif /* WINVER >= 0x0400 */ #ifndef NOMETAFILE /* Clipboard Metafile Picture Structure */ typedef struct tagHANDLETABLE { HGDIOBJ objectHandle[1]; } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE; typedef struct tagMETARECORD { DWORD rdSize; WORD rdFunction; WORD rdParm[1]; } METARECORD; typedef struct tagMETARECORD UNALIGNED *PMETARECORD; typedef struct tagMETARECORD UNALIGNED FAR *LPMETARECORD; typedef struct tagMETAFILEPICT { LONG mm; LONG xExt; LONG yExt; HMETAFILE hMF; } METAFILEPICT, FAR *LPMETAFILEPICT; #include typedef struct tagMETAHEADER { WORD mtType; WORD mtHeaderSize; WORD mtVersion; DWORD mtSize; WORD mtNoObjects; DWORD mtMaxRecord; WORD mtNoParameters; } METAHEADER; typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER; typedef struct tagMETAHEADER UNALIGNED FAR *LPMETAHEADER; #include /* Enhanced Metafile structures */ typedef struct tagENHMETARECORD { DWORD iType; // Record type EMR_XXX DWORD nSize; // Record size in bytes DWORD dParm[1]; // Parameters } ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD; typedef struct tagENHMETAHEADER { DWORD iType; // Record type EMR_HEADER DWORD nSize; // Record size in bytes. This may be greater // than the sizeof(ENHMETAHEADER). RECTL rclBounds; // Inclusive-inclusive bounds in device units RECTL rclFrame; // Inclusive-inclusive Picture Frame of metafile in .01 mm units DWORD dSignature; // Signature. Must be ENHMETA_SIGNATURE. DWORD nVersion; // Version number DWORD nBytes; // Size of the metafile in bytes DWORD nRecords; // Number of records in the metafile WORD nHandles; // Number of handles in the handle table // Handle index zero is reserved. WORD sReserved; // Reserved. Must be zero. DWORD nDescription; // Number of chars in the unicode description string // This is 0 if there is no description string DWORD offDescription; // Offset to the metafile description record. // This is 0 if there is no description string DWORD nPalEntries; // Number of entries in the metafile palette. SIZEL szlDevice; // Size of the reference device in pels SIZEL szlMillimeters; // Size of the reference device in millimeters #if(WINVER >= 0x0400) DWORD cbPixelFormat; // Size of PIXELFORMATDESCRIPTOR information // This is 0 if no pixel format is set DWORD offPixelFormat; // Offset to PIXELFORMATDESCRIPTOR // This is 0 if no pixel format is set DWORD bOpenGL; // TRUE if OpenGL commands are present in // the metafile, otherwise FALSE #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) SIZEL szlMicrometers; // Size of the reference device in micrometers #endif /* WINVER >= 0x0500 */ } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER; #endif /* NOMETAFILE */ #ifndef NOTEXTMETRIC /* tmPitchAndFamily flags */ #define TMPF_FIXED_PITCH 0x01 #define TMPF_VECTOR 0x02 #define TMPF_DEVICE 0x08 #define TMPF_TRUETYPE 0x04 // // BCHAR definition for APPs // #ifdef UNICODE typedef WCHAR BCHAR; #else typedef BYTE BCHAR; #endif #ifndef _TEXTMETRIC_DEFINED #define _TEXTMETRIC_DEFINED typedef 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; } TEXTMETRICA, *PTEXTMETRICA, NEAR *NPTEXTMETRICA, FAR *LPTEXTMETRICA; typedef 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; } TEXTMETRICW, *PTEXTMETRICW, NEAR *NPTEXTMETRICW, FAR *LPTEXTMETRICW; #ifdef UNICODE typedef TEXTMETRICW TEXTMETRIC; typedef PTEXTMETRICW PTEXTMETRIC; typedef NPTEXTMETRICW NPTEXTMETRIC; typedef LPTEXTMETRICW LPTEXTMETRIC; #else typedef TEXTMETRICA TEXTMETRIC; typedef PTEXTMETRICA PTEXTMETRIC; typedef NPTEXTMETRICA NPTEXTMETRIC; typedef LPTEXTMETRICA LPTEXTMETRIC; #endif // UNICODE #endif // !_TEXTMETRIC_DEFINED /* ntmFlags field flags */ #define NTM_REGULAR 0x00000040L #define NTM_BOLD 0x00000020L #define NTM_ITALIC 0x00000001L /* new in NT 5.0 */ #define NTM_NONNEGATIVE_AC 0x00010000 #define NTM_PS_OPENTYPE 0x00020000 #define NTM_TT_OPENTYPE 0x00040000 #define NTM_MULTIPLEMASTER 0x00080000 #define NTM_TYPE1 0x00100000 #define NTM_DSIG 0x00200000 #include typedef 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; } NEWTEXTMETRICA, *PNEWTEXTMETRICA, NEAR *NPNEWTEXTMETRICA, FAR *LPNEWTEXTMETRICA; typedef 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; } NEWTEXTMETRICW, *PNEWTEXTMETRICW, NEAR *NPNEWTEXTMETRICW, FAR *LPNEWTEXTMETRICW; #ifdef UNICODE typedef NEWTEXTMETRICW NEWTEXTMETRIC; typedef PNEWTEXTMETRICW PNEWTEXTMETRIC; typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC; #else typedef NEWTEXTMETRICA NEWTEXTMETRIC; typedef PNEWTEXTMETRICA PNEWTEXTMETRIC; typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC; #endif // UNICODE #include #if(WINVER >= 0x0400) typedef struct tagNEWTEXTMETRICEXA { NEWTEXTMETRICA ntmTm; FONTSIGNATURE ntmFontSig; }NEWTEXTMETRICEXA; typedef struct tagNEWTEXTMETRICEXW { NEWTEXTMETRICW ntmTm; FONTSIGNATURE ntmFontSig; }NEWTEXTMETRICEXW; #ifdef UNICODE typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX; #else typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX; #endif // UNICODE #endif /* WINVER >= 0x0400 */ #endif /* NOTEXTMETRIC */ /* GDI Logical Objects: */ /* Pel Array */ typedef struct tagPELARRAY { LONG paXCount; LONG paYCount; LONG paXExt; LONG paYExt; BYTE paRGBs; } PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY; /* Logical Brush (or Pattern) */ typedef struct tagLOGBRUSH { UINT lbStyle; COLORREF lbColor; ULONG_PTR lbHatch; // Sundown: lbHatch could hold a HANDLE } LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH; typedef struct tagLOGBRUSH32 { UINT lbStyle; COLORREF lbColor; ULONG lbHatch; } LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32; typedef LOGBRUSH PATTERN; typedef PATTERN *PPATTERN; typedef PATTERN NEAR *NPPATTERN; typedef PATTERN FAR *LPPATTERN; /* Logical Pen */ typedef struct tagLOGPEN { UINT lopnStyle; POINT lopnWidth; COLORREF lopnColor; } LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN; typedef struct tagEXTLOGPEN { DWORD elpPenStyle; DWORD elpWidth; UINT elpBrushStyle; COLORREF elpColor; ULONG_PTR elpHatch; //Sundown: elpHatch could take a HANDLE DWORD elpNumEntries; DWORD elpStyleEntry[1]; } EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN; #ifndef _PALETTEENTRY_DEFINED #define _PALETTEENTRY_DEFINED typedef struct tagPALETTEENTRY { BYTE peRed; BYTE peGreen; BYTE peBlue; BYTE peFlags; } PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY; #endif // !_PALETTEENTRY_DEFINED #ifndef _LOGPALETTE_DEFINED #define _LOGPALETTE_DEFINED /* Logical Palette */ typedef struct tagLOGPALETTE { WORD palVersion; WORD palNumEntries; PALETTEENTRY palPalEntry[1]; } LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE; #endif // !_LOGPALETTE_DEFINED /* Logical Font */ #define LF_FACESIZE 32 typedef 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]; } LOGFONTA, *PLOGFONTA, NEAR *NPLOGFONTA, FAR *LPLOGFONTA; typedef 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]; } LOGFONTW, *PLOGFONTW, NEAR *NPLOGFONTW, FAR *LPLOGFONTW; #ifdef UNICODE typedef LOGFONTW LOGFONT; typedef PLOGFONTW PLOGFONT; typedef NPLOGFONTW NPLOGFONT; typedef LPLOGFONTW LPLOGFONT; #else typedef LOGFONTA LOGFONT; typedef PLOGFONTA PLOGFONT; typedef NPLOGFONTA NPLOGFONT; typedef LPLOGFONTA LPLOGFONT; #endif // UNICODE #define LF_FULLFACESIZE 64 /* Structure passed to FONTENUMPROC */ typedef struct tagENUMLOGFONTA { LOGFONTA elfLogFont; BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfStyle[LF_FACESIZE]; } ENUMLOGFONTA, FAR* LPENUMLOGFONTA; /* Structure passed to FONTENUMPROC */ typedef struct tagENUMLOGFONTW { LOGFONTW elfLogFont; WCHAR elfFullName[LF_FULLFACESIZE]; WCHAR elfStyle[LF_FACESIZE]; } ENUMLOGFONTW, FAR* LPENUMLOGFONTW; #ifdef UNICODE typedef ENUMLOGFONTW ENUMLOGFONT; typedef LPENUMLOGFONTW LPENUMLOGFONT; #else typedef ENUMLOGFONTA ENUMLOGFONT; typedef LPENUMLOGFONTA LPENUMLOGFONT; #endif // UNICODE #if(WINVER >= 0x0400) typedef struct tagENUMLOGFONTEXA { LOGFONTA elfLogFont; BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfStyle[LF_FACESIZE]; BYTE elfScript[LF_FACESIZE]; } ENUMLOGFONTEXA, FAR *LPENUMLOGFONTEXA; typedef struct tagENUMLOGFONTEXW { LOGFONTW elfLogFont; WCHAR elfFullName[LF_FULLFACESIZE]; WCHAR elfStyle[LF_FACESIZE]; WCHAR elfScript[LF_FACESIZE]; } ENUMLOGFONTEXW, FAR *LPENUMLOGFONTEXW; #ifdef UNICODE typedef ENUMLOGFONTEXW ENUMLOGFONTEX; typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX; #else typedef ENUMLOGFONTEXA ENUMLOGFONTEX; typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX; #endif // UNICODE #endif /* WINVER >= 0x0400 */ #define OUT_DEFAULT_PRECIS 0 #define OUT_STRING_PRECIS 1 #define OUT_CHARACTER_PRECIS 2 #define OUT_STROKE_PRECIS 3 #define OUT_TT_PRECIS 4 #define OUT_DEVICE_PRECIS 5 #define OUT_RASTER_PRECIS 6 #define OUT_TT_ONLY_PRECIS 7 #define OUT_OUTLINE_PRECIS 8 #define OUT_SCREEN_OUTLINE_PRECIS 9 #define OUT_PS_ONLY_PRECIS 10 #define CLIP_DEFAULT_PRECIS 0 #define CLIP_CHARACTER_PRECIS 1 #define CLIP_STROKE_PRECIS 2 #define CLIP_MASK 0xf #define CLIP_LH_ANGLES (1<<4) #define CLIP_TT_ALWAYS (2<<4) #define CLIP_EMBEDDED (8<<4) #define DEFAULT_QUALITY 0 #define DRAFT_QUALITY 1 #define PROOF_QUALITY 2 #if(WINVER >= 0x0400) #define NONANTIALIASED_QUALITY 3 #define ANTIALIASED_QUALITY 4 #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) #define CLEARTYPE_QUALITY 5 #endif #if (_WIN32_WINNT >= 0x0501) #define CLEARTYPE_NATURAL_QUALITY 6 #endif #define DEFAULT_PITCH 0 #define FIXED_PITCH 1 #define VARIABLE_PITCH 2 #if(WINVER >= 0x0400) #define MONO_FONT 8 #endif /* WINVER >= 0x0400 */ #define ANSI_CHARSET 0 #define DEFAULT_CHARSET 1 #define SYMBOL_CHARSET 2 #define SHIFTJIS_CHARSET 128 #define HANGEUL_CHARSET 129 #define HANGUL_CHARSET 129 #define GB2312_CHARSET 134 #define CHINESEBIG5_CHARSET 136 #define OEM_CHARSET 255 #if(WINVER >= 0x0400) #define JOHAB_CHARSET 130 #define HEBREW_CHARSET 177 #define ARABIC_CHARSET 178 #define GREEK_CHARSET 161 #define TURKISH_CHARSET 162 #define VIETNAMESE_CHARSET 163 #define THAI_CHARSET 222 #define EASTEUROPE_CHARSET 238 #define RUSSIAN_CHARSET 204 #define MAC_CHARSET 77 #define BALTIC_CHARSET 186 #define FS_LATIN1 0x00000001L #define FS_LATIN2 0x00000002L #define FS_CYRILLIC 0x00000004L #define FS_GREEK 0x00000008L #define FS_TURKISH 0x00000010L #define FS_HEBREW 0x00000020L #define FS_ARABIC 0x00000040L #define FS_BALTIC 0x00000080L #define FS_VIETNAMESE 0x00000100L #define FS_THAI 0x00010000L #define FS_JISJAPAN 0x00020000L #define FS_CHINESESIMP 0x00040000L #define FS_WANSUNG 0x00080000L #define FS_CHINESETRAD 0x00100000L #define FS_JOHAB 0x00200000L #define FS_SYMBOL 0x80000000L #endif /* WINVER >= 0x0400 */ /* Font Families */ #define FF_DONTCARE (0<<4) /* Don't care or don't know. */ #define FF_ROMAN (1<<4) /* Variable stroke width, serifed. */ /* Times Roman, Century Schoolbook, etc. */ #define FF_SWISS (2<<4) /* Variable stroke width, sans-serifed. */ /* Helvetica, Swiss, etc. */ #define FF_MODERN (3<<4) /* Constant stroke width, serifed or sans-serifed. */ /* Pica, Elite, Courier, etc. */ #define FF_SCRIPT (4<<4) /* Cursive, etc. */ #define FF_DECORATIVE (5<<4) /* Old English, etc. */ /* Font Weights */ #define FW_DONTCARE 0 #define FW_THIN 100 #define FW_EXTRALIGHT 200 #define FW_LIGHT 300 #define FW_NORMAL 400 #define FW_MEDIUM 500 #define FW_SEMIBOLD 600 #define FW_BOLD 700 #define FW_EXTRABOLD 800 #define FW_HEAVY 900 #define FW_ULTRALIGHT FW_EXTRALIGHT #define FW_REGULAR FW_NORMAL #define FW_DEMIBOLD FW_SEMIBOLD #define FW_ULTRABOLD FW_EXTRABOLD #define FW_BLACK FW_HEAVY #define PANOSE_COUNT 10 #define PAN_FAMILYTYPE_INDEX 0 #define PAN_SERIFSTYLE_INDEX 1 #define PAN_WEIGHT_INDEX 2 #define PAN_PROPORTION_INDEX 3 #define PAN_CONTRAST_INDEX 4 #define PAN_STROKEVARIATION_INDEX 5 #define PAN_ARMSTYLE_INDEX 6 #define PAN_LETTERFORM_INDEX 7 #define PAN_MIDLINE_INDEX 8 #define PAN_XHEIGHT_INDEX 9 #define PAN_CULTURE_LATIN 0 typedef struct tagPANOSE { BYTE bFamilyType; BYTE bSerifStyle; BYTE bWeight; BYTE bProportion; BYTE bContrast; BYTE bStrokeVariation; BYTE bArmStyle; BYTE bLetterform; BYTE bMidline; BYTE bXHeight; } PANOSE, * LPPANOSE; #define PAN_ANY 0 /* Any */ #define PAN_NO_FIT 1 /* No Fit */ #define PAN_FAMILY_TEXT_DISPLAY 2 /* Text and Display */ #define PAN_FAMILY_SCRIPT 3 /* Script */ #define PAN_FAMILY_DECORATIVE 4 /* Decorative */ #define PAN_FAMILY_PICTORIAL 5 /* Pictorial */ #define PAN_SERIF_COVE 2 /* Cove */ #define PAN_SERIF_OBTUSE_COVE 3 /* Obtuse Cove */ #define PAN_SERIF_SQUARE_COVE 4 /* Square Cove */ #define PAN_SERIF_OBTUSE_SQUARE_COVE 5 /* Obtuse Square Cove */ #define PAN_SERIF_SQUARE 6 /* Square */ #define PAN_SERIF_THIN 7 /* Thin */ #define PAN_SERIF_BONE 8 /* Bone */ #define PAN_SERIF_EXAGGERATED 9 /* Exaggerated */ #define PAN_SERIF_TRIANGLE 10 /* Triangle */ #define PAN_SERIF_NORMAL_SANS 11 /* Normal Sans */ #define PAN_SERIF_OBTUSE_SANS 12 /* Obtuse Sans */ #define PAN_SERIF_PERP_SANS 13 /* Prep Sans */ #define PAN_SERIF_FLARED 14 /* Flared */ #define PAN_SERIF_ROUNDED 15 /* Rounded */ #define PAN_WEIGHT_VERY_LIGHT 2 /* Very Light */ #define PAN_WEIGHT_LIGHT 3 /* Light */ #define PAN_WEIGHT_THIN 4 /* Thin */ #define PAN_WEIGHT_BOOK 5 /* Book */ #define PAN_WEIGHT_MEDIUM 6 /* Medium */ #define PAN_WEIGHT_DEMI 7 /* Demi */ #define PAN_WEIGHT_BOLD 8 /* Bold */ #define PAN_WEIGHT_HEAVY 9 /* Heavy */ #define PAN_WEIGHT_BLACK 10 /* Black */ #define PAN_WEIGHT_NORD 11 /* Nord */ #define PAN_PROP_OLD_STYLE 2 /* Old Style */ #define PAN_PROP_MODERN 3 /* Modern */ #define PAN_PROP_EVEN_WIDTH 4 /* Even Width */ #define PAN_PROP_EXPANDED 5 /* Expanded */ #define PAN_PROP_CONDENSED 6 /* Condensed */ #define PAN_PROP_VERY_EXPANDED 7 /* Very Expanded */ #define PAN_PROP_VERY_CONDENSED 8 /* Very Condensed */ #define PAN_PROP_MONOSPACED 9 /* Monospaced */ #define PAN_CONTRAST_NONE 2 /* None */ #define PAN_CONTRAST_VERY_LOW 3 /* Very Low */ #define PAN_CONTRAST_LOW 4 /* Low */ #define PAN_CONTRAST_MEDIUM_LOW 5 /* Medium Low */ #define PAN_CONTRAST_MEDIUM 6 /* Medium */ #define PAN_CONTRAST_MEDIUM_HIGH 7 /* Mediim High */ #define PAN_CONTRAST_HIGH 8 /* High */ #define PAN_CONTRAST_VERY_HIGH 9 /* Very High */ #define PAN_STROKE_GRADUAL_DIAG 2 /* Gradual/Diagonal */ #define PAN_STROKE_GRADUAL_TRAN 3 /* Gradual/Transitional */ #define PAN_STROKE_GRADUAL_VERT 4 /* Gradual/Vertical */ #define PAN_STROKE_GRADUAL_HORZ 5 /* Gradual/Horizontal */ #define PAN_STROKE_RAPID_VERT 6 /* Rapid/Vertical */ #define PAN_STROKE_RAPID_HORZ 7 /* Rapid/Horizontal */ #define PAN_STROKE_INSTANT_VERT 8 /* Instant/Vertical */ #define PAN_STRAIGHT_ARMS_HORZ 2 /* Straight Arms/Horizontal */ #define PAN_STRAIGHT_ARMS_WEDGE 3 /* Straight Arms/Wedge */ #define PAN_STRAIGHT_ARMS_VERT 4 /* Straight Arms/Vertical */ #define PAN_STRAIGHT_ARMS_SINGLE_SERIF 5 /* Straight Arms/Single-Serif */ #define PAN_STRAIGHT_ARMS_DOUBLE_SERIF 6 /* Straight Arms/Double-Serif */ #define PAN_BENT_ARMS_HORZ 7 /* Non-Straight Arms/Horizontal */ #define PAN_BENT_ARMS_WEDGE 8 /* Non-Straight Arms/Wedge */ #define PAN_BENT_ARMS_VERT 9 /* Non-Straight Arms/Vertical */ #define PAN_BENT_ARMS_SINGLE_SERIF 10 /* Non-Straight Arms/Single-Serif */ #define PAN_BENT_ARMS_DOUBLE_SERIF 11 /* Non-Straight Arms/Double-Serif */ #define PAN_LETT_NORMAL_CONTACT 2 /* Normal/Contact */ #define PAN_LETT_NORMAL_WEIGHTED 3 /* Normal/Weighted */ #define PAN_LETT_NORMAL_BOXED 4 /* Normal/Boxed */ #define PAN_LETT_NORMAL_FLATTENED 5 /* Normal/Flattened */ #define PAN_LETT_NORMAL_ROUNDED 6 /* Normal/Rounded */ #define PAN_LETT_NORMAL_OFF_CENTER 7 /* Normal/Off Center */ #define PAN_LETT_NORMAL_SQUARE 8 /* Normal/Square */ #define PAN_LETT_OBLIQUE_CONTACT 9 /* Oblique/Contact */ #define PAN_LETT_OBLIQUE_WEIGHTED 10 /* Oblique/Weighted */ #define PAN_LETT_OBLIQUE_BOXED 11 /* Oblique/Boxed */ #define PAN_LETT_OBLIQUE_FLATTENED 12 /* Oblique/Flattened */ #define PAN_LETT_OBLIQUE_ROUNDED 13 /* Oblique/Rounded */ #define PAN_LETT_OBLIQUE_OFF_CENTER 14 /* Oblique/Off Center */ #define PAN_LETT_OBLIQUE_SQUARE 15 /* Oblique/Square */ #define PAN_MIDLINE_STANDARD_TRIMMED 2 /* Standard/Trimmed */ #define PAN_MIDLINE_STANDARD_POINTED 3 /* Standard/Pointed */ #define PAN_MIDLINE_STANDARD_SERIFED 4 /* Standard/Serifed */ #define PAN_MIDLINE_HIGH_TRIMMED 5 /* High/Trimmed */ #define PAN_MIDLINE_HIGH_POINTED 6 /* High/Pointed */ #define PAN_MIDLINE_HIGH_SERIFED 7 /* High/Serifed */ #define PAN_MIDLINE_CONSTANT_TRIMMED 8 /* Constant/Trimmed */ #define PAN_MIDLINE_CONSTANT_POINTED 9 /* Constant/Pointed */ #define PAN_MIDLINE_CONSTANT_SERIFED 10 /* Constant/Serifed */ #define PAN_MIDLINE_LOW_TRIMMED 11 /* Low/Trimmed */ #define PAN_MIDLINE_LOW_POINTED 12 /* Low/Pointed */ #define PAN_MIDLINE_LOW_SERIFED 13 /* Low/Serifed */ #define PAN_XHEIGHT_CONSTANT_SMALL 2 /* Constant/Small */ #define PAN_XHEIGHT_CONSTANT_STD 3 /* Constant/Standard */ #define PAN_XHEIGHT_CONSTANT_LARGE 4 /* Constant/Large */ #define PAN_XHEIGHT_DUCKING_SMALL 5 /* Ducking/Small */ #define PAN_XHEIGHT_DUCKING_STD 6 /* Ducking/Standard */ #define PAN_XHEIGHT_DUCKING_LARGE 7 /* Ducking/Large */ #define ELF_VENDOR_SIZE 4 /* The extended logical font */ /* An extension of the ENUMLOGFONT */ typedef struct tagEXTLOGFONTA { LOGFONTA elfLogFont; BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfStyle[LF_FACESIZE]; DWORD elfVersion; /* 0 for the first release of NT */ DWORD elfStyleSize; DWORD elfMatch; DWORD elfReserved; BYTE elfVendorId[ELF_VENDOR_SIZE]; DWORD elfCulture; /* 0 for Latin */ PANOSE elfPanose; } EXTLOGFONTA, *PEXTLOGFONTA, NEAR *NPEXTLOGFONTA, FAR *LPEXTLOGFONTA; typedef struct tagEXTLOGFONTW { LOGFONTW elfLogFont; WCHAR elfFullName[LF_FULLFACESIZE]; WCHAR elfStyle[LF_FACESIZE]; DWORD elfVersion; /* 0 for the first release of NT */ DWORD elfStyleSize; DWORD elfMatch; DWORD elfReserved; BYTE elfVendorId[ELF_VENDOR_SIZE]; DWORD elfCulture; /* 0 for Latin */ PANOSE elfPanose; } EXTLOGFONTW, *PEXTLOGFONTW, NEAR *NPEXTLOGFONTW, FAR *LPEXTLOGFONTW; #ifdef UNICODE typedef EXTLOGFONTW EXTLOGFONT; typedef PEXTLOGFONTW PEXTLOGFONT; typedef NPEXTLOGFONTW NPEXTLOGFONT; typedef LPEXTLOGFONTW LPEXTLOGFONT; #else typedef EXTLOGFONTA EXTLOGFONT; typedef PEXTLOGFONTA PEXTLOGFONT; typedef NPEXTLOGFONTA NPEXTLOGFONT; typedef LPEXTLOGFONTA LPEXTLOGFONT; #endif // UNICODE #define ELF_VERSION 0 #define ELF_CULTURE_LATIN 0 /* EnumFonts Masks */ #define RASTER_FONTTYPE 0x0001 #define DEVICE_FONTTYPE 0x002 #define TRUETYPE_FONTTYPE 0x004 #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16))) #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b)) #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i))) /* palette entry flags */ #define PC_RESERVED 0x01 /* palette index used for animation */ #define PC_EXPLICIT 0x02 /* palette index is explicit to device */ #define PC_NOCOLLAPSE 0x04 /* do not match color to system palette */ #define GetRValue(rgb) ((BYTE)(rgb)) #define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8)) #define GetBValue(rgb) ((BYTE)((rgb)>>16)) /* Background Modes */ #define TRANSPARENT 1 #define OPAQUE 2 #define BKMODE_LAST 2 /* Graphics Modes */ #define GM_COMPATIBLE 1 #define GM_ADVANCED 2 #define GM_LAST 2 /* PolyDraw and GetPath point types */ #define PT_CLOSEFIGURE 0x01 #define PT_LINETO 0x02 #define PT_BEZIERTO 0x04 #define PT_MOVETO 0x06 /* Mapping Modes */ #define MM_TEXT 1 #define MM_LOMETRIC 2 #define MM_HIMETRIC 3 #define MM_LOENGLISH 4 #define MM_HIENGLISH 5 #define MM_TWIPS 6 #define MM_ISOTROPIC 7 #define MM_ANISOTROPIC 8 /* Min and Max Mapping Mode values */ #define MM_MIN MM_TEXT #define MM_MAX MM_ANISOTROPIC #define MM_MAX_FIXEDSCALE MM_TWIPS /* Coordinate Modes */ #define ABSOLUTE 1 #define RELATIVE 2 /* Stock Logical Objects */ #define WHITE_BRUSH 0 #define LTGRAY_BRUSH 1 #define GRAY_BRUSH 2 #define DKGRAY_BRUSH 3 #define BLACK_BRUSH 4 #define NULL_BRUSH 5 #define HOLLOW_BRUSH NULL_BRUSH #define WHITE_PEN 6 #define BLACK_PEN 7 #define NULL_PEN 8 #define OEM_FIXED_FONT 10 #define ANSI_FIXED_FONT 11 #define ANSI_VAR_FONT 12 #define SYSTEM_FONT 13 #define DEVICE_DEFAULT_FONT 14 #define DEFAULT_PALETTE 15 #define SYSTEM_FIXED_FONT 16 #if(WINVER >= 0x0400) #define DEFAULT_GUI_FONT 17 #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) #define DC_BRUSH 18 #define DC_PEN 19 #endif #if (_WIN32_WINNT >= 0x0500) #define STOCK_LAST 19 #elif (WINVER >= 0x0400) #define STOCK_LAST 17 #else #define STOCK_LAST 16 #endif #define CLR_INVALID 0xFFFFFFFF /* Brush Styles */ #define BS_SOLID 0 #define BS_NULL 1 #define BS_HOLLOW BS_NULL #define BS_HATCHED 2 #define BS_PATTERN 3 #define BS_INDEXED 4 #define BS_DIBPATTERN 5 #define BS_DIBPATTERNPT 6 #define BS_PATTERN8X8 7 #define BS_DIBPATTERN8X8 8 #define BS_MONOPATTERN 9 /* Hatch Styles */ #define HS_HORIZONTAL 0 /* ----- */ #define HS_VERTICAL 1 /* ||||| */ #define HS_FDIAGONAL 2 /* \\\\\ */ #define HS_BDIAGONAL 3 /* ///// */ #define HS_CROSS 4 /* +++++ */ #define HS_DIAGCROSS 5 /* xxxxx */ /* Pen Styles */ #define PS_SOLID 0 #define PS_DASH 1 /* ------- */ #define PS_DOT 2 /* ....... */ #define PS_DASHDOT 3 /* _._._._ */ #define PS_DASHDOTDOT 4 /* _.._.._ */ #define PS_NULL 5 #define PS_INSIDEFRAME 6 #define PS_USERSTYLE 7 #define PS_ALTERNATE 8 #define PS_STYLE_MASK 0x0000000F #define PS_ENDCAP_ROUND 0x00000000 #define PS_ENDCAP_SQUARE 0x00000100 #define PS_ENDCAP_FLAT 0x00000200 #define PS_ENDCAP_MASK 0x00000F00 #define PS_JOIN_ROUND 0x00000000 #define PS_JOIN_BEVEL 0x00001000 #define PS_JOIN_MITER 0x00002000 #define PS_JOIN_MASK 0x0000F000 #define PS_COSMETIC 0x00000000 #define PS_GEOMETRIC 0x00010000 #define PS_TYPE_MASK 0x000F0000 #define AD_COUNTERCLOCKWISE 1 #define AD_CLOCKWISE 2 /* Device Parameters for GetDeviceCaps() */ #define DRIVERVERSION 0 /* Device driver version */ #define TECHNOLOGY 2 /* Device classification */ #define HORZSIZE 4 /* Horizontal size in millimeters */ #define VERTSIZE 6 /* Vertical size in millimeters */ #define HORZRES 8 /* Horizontal width in pixels */ #define VERTRES 10 /* Vertical height in pixels */ #define BITSPIXEL 12 /* Number of bits per pixel */ #define PLANES 14 /* Number of planes */ #define NUMBRUSHES 16 /* Number of brushes the device has */ #define NUMPENS 18 /* Number of pens the device has */ #define NUMMARKERS 20 /* Number of markers the device has */ #define NUMFONTS 22 /* Number of fonts the device has */ #define NUMCOLORS 24 /* Number of colors the device supports */ #define PDEVICESIZE 26 /* Size required for device descriptor */ #define CURVECAPS 28 /* Curve capabilities */ #define LINECAPS 30 /* Line capabilities */ #define POLYGONALCAPS 32 /* Polygonal capabilities */ #define TEXTCAPS 34 /* Text capabilities */ #define CLIPCAPS 36 /* Clipping capabilities */ #define RASTERCAPS 38 /* Bitblt capabilities */ #define ASPECTX 40 /* Length of the X leg */ #define ASPECTY 42 /* Length of the Y leg */ #define ASPECTXY 44 /* Length of the hypotenuse */ #define LOGPIXELSX 88 /* Logical pixels/inch in X */ #define LOGPIXELSY 90 /* Logical pixels/inch in Y */ #define SIZEPALETTE 104 /* Number of entries in physical palette */ #define NUMRESERVED 106 /* Number of reserved entries in palette */ #define COLORRES 108 /* Actual color resolution */ // Printing related DeviceCaps. These replace the appropriate Escapes #define PHYSICALWIDTH 110 /* Physical Width in device units */ #define PHYSICALHEIGHT 111 /* Physical Height in device units */ #define PHYSICALOFFSETX 112 /* Physical Printable Area x margin */ #define PHYSICALOFFSETY 113 /* Physical Printable Area y margin */ #define SCALINGFACTORX 114 /* Scaling factor x */ #define SCALINGFACTORY 115 /* Scaling factor y */ // Display driver specific #define VREFRESH 116 /* Current vertical refresh rate of the */ /* display device (for displays only) in Hz*/ #define DESKTOPVERTRES 117 /* Horizontal width of entire desktop in */ /* pixels */ #define DESKTOPHORZRES 118 /* Vertical height of entire desktop in */ /* pixels */ #define BLTALIGNMENT 119 /* Preferred blt alignment */ #if(WINVER >= 0x0500) #define SHADEBLENDCAPS 120 /* Shading and blending caps */ #define COLORMGMTCAPS 121 /* Color Management caps */ #endif /* WINVER >= 0x0500 */ #ifndef NOGDICAPMASKS /* Device Capability Masks: */ /* Device Technologies */ #define DT_PLOTTER 0 /* Vector plotter */ #define DT_RASDISPLAY 1 /* Raster display */ #define DT_RASPRINTER 2 /* Raster printer */ #define DT_RASCAMERA 3 /* Raster camera */ #define DT_CHARSTREAM 4 /* Character-stream, PLP */ #define DT_METAFILE 5 /* Metafile, VDM */ #define DT_DISPFILE 6 /* Display-file */ /* Curve Capabilities */ #define CC_NONE 0 /* Curves not supported */ #define CC_CIRCLES 1 /* Can do circles */ #define CC_PIE 2 /* Can do pie wedges */ #define CC_CHORD 4 /* Can do chord arcs */ #define CC_ELLIPSES 8 /* Can do ellipese */ #define CC_WIDE 16 /* Can do wide lines */ #define CC_STYLED 32 /* Can do styled lines */ #define CC_WIDESTYLED 64 /* Can do wide styled lines */ #define CC_INTERIORS 128 /* Can do interiors */ #define CC_ROUNDRECT 256 /* */ /* Line Capabilities */ #define LC_NONE 0 /* Lines not supported */ #define LC_POLYLINE 2 /* Can do polylines */ #define LC_MARKER 4 /* Can do markers */ #define LC_POLYMARKER 8 /* Can do polymarkers */ #define LC_WIDE 16 /* Can do wide lines */ #define LC_STYLED 32 /* Can do styled lines */ #define LC_WIDESTYLED 64 /* Can do wide styled lines */ #define LC_INTERIORS 128 /* Can do interiors */ /* Polygonal Capabilities */ #define PC_NONE 0 /* Polygonals not supported */ #define PC_POLYGON 1 /* Can do polygons */ #define PC_RECTANGLE 2 /* Can do rectangles */ #define PC_WINDPOLYGON 4 /* Can do winding polygons */ #define PC_TRAPEZOID 4 /* Can do trapezoids */ #define PC_SCANLINE 8 /* Can do scanlines */ #define PC_WIDE 16 /* Can do wide borders */ #define PC_STYLED 32 /* Can do styled borders */ #define PC_WIDESTYLED 64 /* Can do wide styled borders */ #define PC_INTERIORS 128 /* Can do interiors */ #define PC_POLYPOLYGON 256 /* Can do polypolygons */ #define PC_PATHS 512 /* Can do paths */ /* Clipping Capabilities */ #define CP_NONE 0 /* No clipping of output */ #define CP_RECTANGLE 1 /* Output clipped to rects */ #define CP_REGION 2 /* obsolete */ /* Text Capabilities */ #define TC_OP_CHARACTER 0x00000001 /* Can do OutputPrecision CHARACTER */ #define TC_OP_STROKE 0x00000002 /* Can do OutputPrecision STROKE */ #define TC_CP_STROKE 0x00000004 /* Can do ClipPrecision STROKE */ #define TC_CR_90 0x00000008 /* Can do CharRotAbility 90 */ #define TC_CR_ANY 0x00000010 /* Can do CharRotAbility ANY */ #define TC_SF_X_YINDEP 0x00000020 /* Can do ScaleFreedom X_YINDEPENDENT */ #define TC_SA_DOUBLE 0x00000040 /* Can do ScaleAbility DOUBLE */ #define TC_SA_INTEGER 0x00000080 /* Can do ScaleAbility INTEGER */ #define TC_SA_CONTIN 0x00000100 /* Can do ScaleAbility CONTINUOUS */ #define TC_EA_DOUBLE 0x00000200 /* Can do EmboldenAbility DOUBLE */ #define TC_IA_ABLE 0x00000400 /* Can do ItalisizeAbility ABLE */ #define TC_UA_ABLE 0x00000800 /* Can do UnderlineAbility ABLE */ #define TC_SO_ABLE 0x00001000 /* Can do StrikeOutAbility ABLE */ #define TC_RA_ABLE 0x00002000 /* Can do RasterFontAble ABLE */ #define TC_VA_ABLE 0x00004000 /* Can do VectorFontAble ABLE */ #define TC_RESERVED 0x00008000 #define TC_SCROLLBLT 0x00010000 /* Don't do text scroll with blt */ #endif /* NOGDICAPMASKS */ /* Raster Capabilities */ #define RC_NONE #define RC_BITBLT 1 /* Can do standard BLT. */ #define RC_BANDING 2 /* Device requires banding support */ #define RC_SCALING 4 /* Device requires scaling support */ #define RC_BITMAP64 8 /* Device can support >64K bitmap */ #define RC_GDI20_OUTPUT 0x0010 /* has 2.0 output calls */ #define RC_GDI20_STATE 0x0020 #define RC_SAVEBITMAP 0x0040 #define RC_DI_BITMAP 0x0080 /* supports DIB to memory */ #define RC_PALETTE 0x0100 /* supports a palette */ #define RC_DIBTODEV 0x0200 /* supports DIBitsToDevice */ #define RC_BIGFONT 0x0400 /* supports >64K fonts */ #define RC_STRETCHBLT 0x0800 /* supports StretchBlt */ #define RC_FLOODFILL 0x1000 /* supports FloodFill */ #define RC_STRETCHDIB 0x2000 /* supports StretchDIBits */ #define RC_OP_DX_OUTPUT 0x4000 #define RC_DEVBITS 0x8000 #if(WINVER >= 0x0500) /* Shading and blending caps */ #define SB_NONE 0x00000000 #define SB_CONST_ALPHA 0x00000001 #define SB_PIXEL_ALPHA 0x00000002 #define SB_PREMULT_ALPHA 0x00000004 #define SB_GRAD_RECT 0x00000010 #define SB_GRAD_TRI 0x00000020 /* Color Management caps */ #define CM_NONE 0x00000000 #define CM_DEVICE_ICM 0x00000001 #define CM_GAMMA_RAMP 0x00000002 #define CM_CMYK_COLOR 0x00000004 #endif /* WINVER >= 0x0500 */ /* DIB color table identifiers */ #define DIB_RGB_COLORS 0 /* color table in RGBs */ #define DIB_PAL_COLORS 1 /* color table in palette indices */ /* constants for Get/SetSystemPaletteUse() */ #define SYSPAL_ERROR 0 #define SYSPAL_STATIC 1 #define SYSPAL_NOSTATIC 2 #define SYSPAL_NOSTATIC256 3 /* constants for CreateDIBitmap */ #define CBM_INIT 0x04L /* initialize bitmap */ /* ExtFloodFill style flags */ #define FLOODFILLBORDER 0 #define FLOODFILLSURFACE 1 /* size of a device name string */ #define CCHDEVICENAME 32 /* size of a form name string */ #define CCHFORMNAME 32 typedef struct _devicemodeA { BYTE dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union { /* printer only fields */ struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; }; /* display only fields */ struct { POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; }; }; 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 */ } DEVMODEA, *PDEVMODEA, *NPDEVMODEA, *LPDEVMODEA; typedef struct _devicemodeW { WCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union { /* printer only fields */ struct { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; }; /* display only fields */ struct { POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; }; }; 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 */ } DEVMODEW, *PDEVMODEW, *NPDEVMODEW, *LPDEVMODEW; #ifdef UNICODE typedef DEVMODEW DEVMODE; typedef PDEVMODEW PDEVMODE; typedef NPDEVMODEW NPDEVMODE; typedef LPDEVMODEW LPDEVMODE; #else typedef DEVMODEA DEVMODE; typedef PDEVMODEA PDEVMODE; typedef NPDEVMODEA NPDEVMODE; typedef LPDEVMODEA LPDEVMODE; #endif // UNICODE /* current version of specification */ #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) #define DM_SPECVERSION 0x0401 #elif (WINVER >= 0x0400) #define DM_SPECVERSION 0x0400 #else #define DM_SPECVERSION 0x0320 #endif /* WINVER */ /* field selection bits */ #define DM_ORIENTATION 0x00000001L #define DM_PAPERSIZE 0x00000002L #define DM_PAPERLENGTH 0x00000004L #define DM_PAPERWIDTH 0x00000008L #define DM_SCALE 0x00000010L #if(WINVER >= 0x0500) #define DM_POSITION 0x00000020L #define DM_NUP 0x00000040L #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0501) #define DM_DISPLAYORIENTATION 0x00000080L #endif /* WINVER >= 0x0501 */ #define DM_COPIES 0x00000100L #define DM_DEFAULTSOURCE 0x00000200L #define DM_PRINTQUALITY 0x00000400L #define DM_COLOR 0x00000800L #define DM_DUPLEX 0x00001000L #define DM_YRESOLUTION 0x00002000L #define DM_TTOPTION 0x00004000L #define DM_COLLATE 0x00008000L #define DM_FORMNAME 0x00010000L #define DM_LOGPIXELS 0x00020000L #define DM_BITSPERPEL 0x00040000L #define DM_PELSWIDTH 0x00080000L #define DM_PELSHEIGHT 0x00100000L #define DM_DISPLAYFLAGS 0x00200000L #define DM_DISPLAYFREQUENCY 0x00400000L #if(WINVER >= 0x0400) #define DM_ICMMETHOD 0x00800000L #define DM_ICMINTENT 0x01000000L #define DM_MEDIATYPE 0x02000000L #define DM_DITHERTYPE 0x04000000L #define DM_PANNINGWIDTH 0x08000000L #define DM_PANNINGHEIGHT 0x10000000L #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0501) #define DM_DISPLAYFIXEDOUTPUT 0x20000000L #endif /* WINVER >= 0x0501 */ /* orientation selections */ #define DMORIENT_PORTRAIT 1 #define DMORIENT_LANDSCAPE 2 /* paper selections */ #define DMPAPER_FIRST DMPAPER_LETTER #define DMPAPER_LETTER 1 /* Letter 8 1/2 x 11 in */ #define DMPAPER_LETTERSMALL 2 /* Letter Small 8 1/2 x 11 in */ #define DMPAPER_TABLOID 3 /* Tabloid 11 x 17 in */ #define DMPAPER_LEDGER 4 /* Ledger 17 x 11 in */ #define DMPAPER_LEGAL 5 /* Legal 8 1/2 x 14 in */ #define DMPAPER_STATEMENT 6 /* Statement 5 1/2 x 8 1/2 in */ #define DMPAPER_EXECUTIVE 7 /* Executive 7 1/4 x 10 1/2 in */ #define DMPAPER_A3 8 /* A3 297 x 420 mm */ #define DMPAPER_A4 9 /* A4 210 x 297 mm */ #define DMPAPER_A4SMALL 10 /* A4 Small 210 x 297 mm */ #define DMPAPER_A5 11 /* A5 148 x 210 mm */ #define DMPAPER_B4 12 /* B4 (JIS) 250 x 354 */ #define DMPAPER_B5 13 /* B5 (JIS) 182 x 257 mm */ #define DMPAPER_FOLIO 14 /* Folio 8 1/2 x 13 in */ #define DMPAPER_QUARTO 15 /* Quarto 215 x 275 mm */ #define DMPAPER_10X14 16 /* 10x14 in */ #define DMPAPER_11X17 17 /* 11x17 in */ #define DMPAPER_NOTE 18 /* Note 8 1/2 x 11 in */ #define DMPAPER_ENV_9 19 /* Envelope #9 3 7/8 x 8 7/8 */ #define DMPAPER_ENV_10 20 /* Envelope #10 4 1/8 x 9 1/2 */ #define DMPAPER_ENV_11 21 /* Envelope #11 4 1/2 x 10 3/8 */ #define DMPAPER_ENV_12 22 /* Envelope #12 4 \276 x 11 */ #define DMPAPER_ENV_14 23 /* Envelope #14 5 x 11 1/2 */ #define DMPAPER_CSHEET 24 /* C size sheet */ #define DMPAPER_DSHEET 25 /* D size sheet */ #define DMPAPER_ESHEET 26 /* E size sheet */ #define DMPAPER_ENV_DL 27 /* Envelope DL 110 x 220mm */ #define DMPAPER_ENV_C5 28 /* Envelope C5 162 x 229 mm */ #define DMPAPER_ENV_C3 29 /* Envelope C3 324 x 458 mm */ #define DMPAPER_ENV_C4 30 /* Envelope C4 229 x 324 mm */ #define DMPAPER_ENV_C6 31 /* Envelope C6 114 x 162 mm */ #define DMPAPER_ENV_C65 32 /* Envelope C65 114 x 229 mm */ #define DMPAPER_ENV_B4 33 /* Envelope B4 250 x 353 mm */ #define DMPAPER_ENV_B5 34 /* Envelope B5 176 x 250 mm */ #define DMPAPER_ENV_B6 35 /* Envelope B6 176 x 125 mm */ #define DMPAPER_ENV_ITALY 36 /* Envelope 110 x 230 mm */ #define DMPAPER_ENV_MONARCH 37 /* Envelope Monarch 3.875 x 7.5 in */ #define DMPAPER_ENV_PERSONAL 38 /* 6 3/4 Envelope 3 5/8 x 6 1/2 in */ #define DMPAPER_FANFOLD_US 39 /* US Std Fanfold 14 7/8 x 11 in */ #define DMPAPER_FANFOLD_STD_GERMAN 40 /* German Std Fanfold 8 1/2 x 12 in */ #define DMPAPER_FANFOLD_LGL_GERMAN 41 /* German Legal Fanfold 8 1/2 x 13 in */ #if(WINVER >= 0x0400) #define DMPAPER_ISO_B4 42 /* B4 (ISO) 250 x 353 mm */ #define DMPAPER_JAPANESE_POSTCARD 43 /* Japanese Postcard 100 x 148 mm */ #define DMPAPER_9X11 44 /* 9 x 11 in */ #define DMPAPER_10X11 45 /* 10 x 11 in */ #define DMPAPER_15X11 46 /* 15 x 11 in */ #define DMPAPER_ENV_INVITE 47 /* Envelope Invite 220 x 220 mm */ #define DMPAPER_RESERVED_48 48 /* RESERVED--DO NOT USE */ #define DMPAPER_RESERVED_49 49 /* RESERVED--DO NOT USE */ #define DMPAPER_LETTER_EXTRA 50 /* Letter Extra 9 \275 x 12 in */ #define DMPAPER_LEGAL_EXTRA 51 /* Legal Extra 9 \275 x 15 in */ #define DMPAPER_TABLOID_EXTRA 52 /* Tabloid Extra 11.69 x 18 in */ #define DMPAPER_A4_EXTRA 53 /* A4 Extra 9.27 x 12.69 in */ #define DMPAPER_LETTER_TRANSVERSE 54 /* Letter Transverse 8 \275 x 11 in */ #define DMPAPER_A4_TRANSVERSE 55 /* A4 Transverse 210 x 297 mm */ #define DMPAPER_LETTER_EXTRA_TRANSVERSE 56 /* Letter Extra Transverse 9\275 x 12 in */ #define DMPAPER_A_PLUS 57 /* SuperA/SuperA/A4 227 x 356 mm */ #define DMPAPER_B_PLUS 58 /* SuperB/SuperB/A3 305 x 487 mm */ #define DMPAPER_LETTER_PLUS 59 /* Letter Plus 8.5 x 12.69 in */ #define DMPAPER_A4_PLUS 60 /* A4 Plus 210 x 330 mm */ #define DMPAPER_A5_TRANSVERSE 61 /* A5 Transverse 148 x 210 mm */ #define DMPAPER_B5_TRANSVERSE 62 /* B5 (JIS) Transverse 182 x 257 mm */ #define DMPAPER_A3_EXTRA 63 /* A3 Extra 322 x 445 mm */ #define DMPAPER_A5_EXTRA 64 /* A5 Extra 174 x 235 mm */ #define DMPAPER_B5_EXTRA 65 /* B5 (ISO) Extra 201 x 276 mm */ #define DMPAPER_A2 66 /* A2 420 x 594 mm */ #define DMPAPER_A3_TRANSVERSE 67 /* A3 Transverse 297 x 420 mm */ #define DMPAPER_A3_EXTRA_TRANSVERSE 68 /* A3 Extra Transverse 322 x 445 mm */ #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define DMPAPER_DBL_JAPANESE_POSTCARD 69 /* Japanese Double Postcard 200 x 148 mm */ #define DMPAPER_A6 70 /* A6 105 x 148 mm */ #define DMPAPER_JENV_KAKU2 71 /* Japanese Envelope Kaku #2 */ #define DMPAPER_JENV_KAKU3 72 /* Japanese Envelope Kaku #3 */ #define DMPAPER_JENV_CHOU3 73 /* Japanese Envelope Chou #3 */ #define DMPAPER_JENV_CHOU4 74 /* Japanese Envelope Chou #4 */ #define DMPAPER_LETTER_ROTATED 75 /* Letter Rotated 11 x 8 1/2 11 in */ #define DMPAPER_A3_ROTATED 76 /* A3 Rotated 420 x 297 mm */ #define DMPAPER_A4_ROTATED 77 /* A4 Rotated 297 x 210 mm */ #define DMPAPER_A5_ROTATED 78 /* A5 Rotated 210 x 148 mm */ #define DMPAPER_B4_JIS_ROTATED 79 /* B4 (JIS) Rotated 364 x 257 mm */ #define DMPAPER_B5_JIS_ROTATED 80 /* B5 (JIS) Rotated 257 x 182 mm */ #define DMPAPER_JAPANESE_POSTCARD_ROTATED 81 /* Japanese Postcard Rotated 148 x 100 mm */ #define DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED 82 /* Double Japanese Postcard Rotated 148 x 200 mm */ #define DMPAPER_A6_ROTATED 83 /* A6 Rotated 148 x 105 mm */ #define DMPAPER_JENV_KAKU2_ROTATED 84 /* Japanese Envelope Kaku #2 Rotated */ #define DMPAPER_JENV_KAKU3_ROTATED 85 /* Japanese Envelope Kaku #3 Rotated */ #define DMPAPER_JENV_CHOU3_ROTATED 86 /* Japanese Envelope Chou #3 Rotated */ #define DMPAPER_JENV_CHOU4_ROTATED 87 /* Japanese Envelope Chou #4 Rotated */ #define DMPAPER_B6_JIS 88 /* B6 (JIS) 128 x 182 mm */ #define DMPAPER_B6_JIS_ROTATED 89 /* B6 (JIS) Rotated 182 x 128 mm */ #define DMPAPER_12X11 90 /* 12 x 11 in */ #define DMPAPER_JENV_YOU4 91 /* Japanese Envelope You #4 */ #define DMPAPER_JENV_YOU4_ROTATED 92 /* Japanese Envelope You #4 Rotated*/ #define DMPAPER_P16K 93 /* PRC 16K 146 x 215 mm */ #define DMPAPER_P32K 94 /* PRC 32K 97 x 151 mm */ #define DMPAPER_P32KBIG 95 /* PRC 32K(Big) 97 x 151 mm */ #define DMPAPER_PENV_1 96 /* PRC Envelope #1 102 x 165 mm */ #define DMPAPER_PENV_2 97 /* PRC Envelope #2 102 x 176 mm */ #define DMPAPER_PENV_3 98 /* PRC Envelope #3 125 x 176 mm */ #define DMPAPER_PENV_4 99 /* PRC Envelope #4 110 x 208 mm */ #define DMPAPER_PENV_5 100 /* PRC Envelope #5 110 x 220 mm */ #define DMPAPER_PENV_6 101 /* PRC Envelope #6 120 x 230 mm */ #define DMPAPER_PENV_7 102 /* PRC Envelope #7 160 x 230 mm */ #define DMPAPER_PENV_8 103 /* PRC Envelope #8 120 x 309 mm */ #define DMPAPER_PENV_9 104 /* PRC Envelope #9 229 x 324 mm */ #define DMPAPER_PENV_10 105 /* PRC Envelope #10 324 x 458 mm */ #define DMPAPER_P16K_ROTATED 106 /* PRC 16K Rotated */ #define DMPAPER_P32K_ROTATED 107 /* PRC 32K Rotated */ #define DMPAPER_P32KBIG_ROTATED 108 /* PRC 32K(Big) Rotated */ #define DMPAPER_PENV_1_ROTATED 109 /* PRC Envelope #1 Rotated 165 x 102 mm */ #define DMPAPER_PENV_2_ROTATED 110 /* PRC Envelope #2 Rotated 176 x 102 mm */ #define DMPAPER_PENV_3_ROTATED 111 /* PRC Envelope #3 Rotated 176 x 125 mm */ #define DMPAPER_PENV_4_ROTATED 112 /* PRC Envelope #4 Rotated 208 x 110 mm */ #define DMPAPER_PENV_5_ROTATED 113 /* PRC Envelope #5 Rotated 220 x 110 mm */ #define DMPAPER_PENV_6_ROTATED 114 /* PRC Envelope #6 Rotated 230 x 120 mm */ #define DMPAPER_PENV_7_ROTATED 115 /* PRC Envelope #7 Rotated 230 x 160 mm */ #define DMPAPER_PENV_8_ROTATED 116 /* PRC Envelope #8 Rotated 309 x 120 mm */ #define DMPAPER_PENV_9_ROTATED 117 /* PRC Envelope #9 Rotated 324 x 229 mm */ #define DMPAPER_PENV_10_ROTATED 118 /* PRC Envelope #10 Rotated 458 x 324 mm */ #endif /* WINVER >= 0x0500 */ #if (WINVER >= 0x0500) #define DMPAPER_LAST DMPAPER_PENV_10_ROTATED #elif (WINVER >= 0x0400) #define DMPAPER_LAST DMPAPER_A3_EXTRA_TRANSVERSE #else #define DMPAPER_LAST DMPAPER_FANFOLD_LGL_GERMAN #endif #define DMPAPER_USER 256 /* bin selections */ #define DMBIN_FIRST DMBIN_UPPER #define DMBIN_UPPER 1 #define DMBIN_ONLYONE 1 #define DMBIN_LOWER 2 #define DMBIN_MIDDLE 3 #define DMBIN_MANUAL 4 #define DMBIN_ENVELOPE 5 #define DMBIN_ENVMANUAL 6 #define DMBIN_AUTO 7 #define DMBIN_TRACTOR 8 #define DMBIN_SMALLFMT 9 #define DMBIN_LARGEFMT 10 #define DMBIN_LARGECAPACITY 11 #define DMBIN_CASSETTE 14 #define DMBIN_FORMSOURCE 15 #define DMBIN_LAST DMBIN_FORMSOURCE #define DMBIN_USER 256 /* device specific bins start here */ /* print qualities */ #define DMRES_DRAFT (-1) #define DMRES_LOW (-2) #define DMRES_MEDIUM (-3) #define DMRES_HIGH (-4) /* color enable/disable for color printers */ #define DMCOLOR_MONOCHROME 1 #define DMCOLOR_COLOR 2 /* duplex enable */ #define DMDUP_SIMPLEX 1 #define DMDUP_VERTICAL 2 #define DMDUP_HORIZONTAL 3 /* TrueType options */ #define DMTT_BITMAP 1 /* print TT fonts as graphics */ #define DMTT_DOWNLOAD 2 /* download TT fonts as soft fonts */ #define DMTT_SUBDEV 3 /* substitute device fonts for TT fonts */ #if(WINVER >= 0x0400) #define DMTT_DOWNLOAD_OUTLINE 4 /* download TT fonts as outline soft fonts */ #endif /* WINVER >= 0x0400 */ /* Collation selections */ #define DMCOLLATE_FALSE 0 #define DMCOLLATE_TRUE 1 #if(WINVER >= 0x0501) /* DEVMODE dmDisplayOrientation specifiations */ #define DMDO_DEFAULT 0 #define DMDO_90 1 #define DMDO_180 2 #define DMDO_270 3 /* DEVMODE dmDisplayFixedOutput specifiations */ #define DMDFO_DEFAULT 0 #define DMDFO_STRETCH 1 #define DMDFO_CENTER 2 #endif /* WINVER >= 0x0501 */ /* DEVMODE dmDisplayFlags flags */ // #define DM_GRAYSCALE 0x00000001 /* This flag is no longer valid */ // #define DM_INTERLACED 0x00000002 /* This flag is no longer valid */ #define DMDISPLAYFLAGS_TEXTMODE 0x00000004 /* dmNup , multiple logical page per physical page options */ #define DMNUP_SYSTEM 1 #define DMNUP_ONEUP 2 #if(WINVER >= 0x0400) /* ICM methods */ #define DMICMMETHOD_NONE 1 /* ICM disabled */ #define DMICMMETHOD_SYSTEM 2 /* ICM handled by system */ #define DMICMMETHOD_DRIVER 3 /* ICM handled by driver */ #define DMICMMETHOD_DEVICE 4 /* ICM handled by device */ #define DMICMMETHOD_USER 256 /* Device-specific methods start here */ /* ICM Intents */ #define DMICM_SATURATE 1 /* Maximize color saturation */ #define DMICM_CONTRAST 2 /* Maximize color contrast */ #define DMICM_COLORIMETRIC 3 /* Use specific color metric */ #define DMICM_ABS_COLORIMETRIC 4 /* Use specific color metric */ #define DMICM_USER 256 /* Device-specific intents start here */ /* Media types */ #define DMMEDIA_STANDARD 1 /* Standard paper */ #define DMMEDIA_TRANSPARENCY 2 /* Transparency */ #define DMMEDIA_GLOSSY 3 /* Glossy paper */ #define DMMEDIA_USER 256 /* Device-specific media start here */ /* Dither types */ #define DMDITHER_NONE 1 /* No dithering */ #define DMDITHER_COARSE 2 /* Dither with a coarse brush */ #define DMDITHER_FINE 3 /* Dither with a fine brush */ #define DMDITHER_LINEART 4 /* LineArt dithering */ #define DMDITHER_ERRORDIFFUSION 5 /* LineArt dithering */ #define DMDITHER_RESERVED6 6 /* LineArt dithering */ #define DMDITHER_RESERVED7 7 /* LineArt dithering */ #define DMDITHER_RESERVED8 8 /* LineArt dithering */ #define DMDITHER_RESERVED9 9 /* LineArt dithering */ #define DMDITHER_GRAYSCALE 10 /* Device does grayscaling */ #define DMDITHER_USER 256 /* Device-specific dithers start here */ #endif /* WINVER >= 0x0400 */ typedef struct _DISPLAY_DEVICEA { DWORD cb; CHAR DeviceName[32]; CHAR DeviceString[128]; DWORD StateFlags; CHAR DeviceID[128]; CHAR DeviceKey[128]; } DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA; typedef struct _DISPLAY_DEVICEW { DWORD cb; WCHAR DeviceName[32]; WCHAR DeviceString[128]; DWORD StateFlags; WCHAR DeviceID[128]; WCHAR DeviceKey[128]; } DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW; #ifdef UNICODE typedef DISPLAY_DEVICEW DISPLAY_DEVICE; typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE; #else typedef DISPLAY_DEVICEA DISPLAY_DEVICE; typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE; #endif // UNICODE #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001 #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002 #define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004 #define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008 #define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010 #define DISPLAY_DEVICE_REMOVABLE 0x00000020 #define DISPLAY_DEVICE_MODESPRUNED 0x08000000 #define DISPLAY_DEVICE_REMOTE 0x04000000 #define DISPLAY_DEVICE_DISCONNECT 0x02000000 /* Child device state */ #define DISPLAY_DEVICE_ACTIVE 0x00000001 #define DISPLAY_DEVICE_ATTACHED 0x00000002 /* GetRegionData/ExtCreateRegion */ #define RDH_RECTANGLES 1 typedef struct _RGNDATAHEADER { DWORD dwSize; DWORD iType; DWORD nCount; DWORD nRgnSize; RECT rcBound; } RGNDATAHEADER, *PRGNDATAHEADER; typedef struct _RGNDATA { RGNDATAHEADER rdh; char Buffer[1]; } RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA; /* for GetRandomRgn */ #define SYSRGN 4 typedef struct _ABC { int abcA; UINT abcB; int abcC; } ABC, *PABC, NEAR *NPABC, FAR *LPABC; typedef struct _ABCFLOAT { FLOAT abcfA; FLOAT abcfB; FLOAT abcfC; } ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT; #ifndef NOTEXTMETRIC #ifdef _MAC #include "pshpack4.h" #endif typedef 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; } OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, NEAR *NPOUTLINETEXTMETRICA, FAR *LPOUTLINETEXTMETRICA; typedef 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; } OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, NEAR *NPOUTLINETEXTMETRICW, FAR *LPOUTLINETEXTMETRICW; #ifdef UNICODE typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; #else typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC; #endif // UNICODE #ifdef _MAC #include "poppack.h" #endif #endif /* NOTEXTMETRIC */ typedef struct tagPOLYTEXTA { int x; int y; UINT n; LPCSTR lpstr; UINT uiFlags; RECT rcl; int *pdx; } POLYTEXTA, *PPOLYTEXTA, NEAR *NPPOLYTEXTA, FAR *LPPOLYTEXTA; typedef struct tagPOLYTEXTW { int x; int y; UINT n; LPCWSTR lpstr; UINT uiFlags; RECT rcl; int *pdx; } POLYTEXTW, *PPOLYTEXTW, NEAR *NPPOLYTEXTW, FAR *LPPOLYTEXTW; #ifdef UNICODE typedef POLYTEXTW POLYTEXT; typedef PPOLYTEXTW PPOLYTEXT; typedef NPPOLYTEXTW NPPOLYTEXT; typedef LPPOLYTEXTW LPPOLYTEXT; #else typedef POLYTEXTA POLYTEXT; typedef PPOLYTEXTA PPOLYTEXT; typedef NPPOLYTEXTA NPPOLYTEXT; typedef LPPOLYTEXTA LPPOLYTEXT; #endif // UNICODE typedef struct _FIXED { #ifndef _MAC WORD fract; short value; #else short value; WORD fract; #endif } FIXED; typedef struct _MAT2 { FIXED eM11; FIXED eM12; FIXED eM21; FIXED eM22; } MAT2, FAR *LPMAT2; typedef struct _GLYPHMETRICS { UINT gmBlackBoxX; UINT gmBlackBoxY; POINT gmptGlyphOrigin; short gmCellIncX; short gmCellIncY; } GLYPHMETRICS, FAR *LPGLYPHMETRICS; // GetGlyphOutline constants #define GGO_METRICS 0 #define GGO_BITMAP 1 #define GGO_NATIVE 2 #define GGO_BEZIER 3 #if(WINVER >= 0x0400) #define GGO_GRAY2_BITMAP 4 #define GGO_GRAY4_BITMAP 5 #define GGO_GRAY8_BITMAP 6 #define GGO_GLYPH_INDEX 0x0080 #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) #define GGO_UNHINTED 0x0100 #endif // (_WIN32_WINNT >= 0x0500) #define TT_POLYGON_TYPE 24 #define TT_PRIM_LINE 1 #define TT_PRIM_QSPLINE 2 #define TT_PRIM_CSPLINE 3 typedef struct tagPOINTFX { FIXED x; FIXED y; } POINTFX, FAR* LPPOINTFX; typedef struct tagTTPOLYCURVE { WORD wType; WORD cpfx; POINTFX apfx[1]; } TTPOLYCURVE, FAR* LPTTPOLYCURVE; typedef struct tagTTPOLYGONHEADER { DWORD cb; DWORD dwType; POINTFX pfxStart; } TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER; #if(WINVER >= 0x0400) #define GCP_DBCS 0x0001 #define GCP_REORDER 0x0002 #define GCP_USEKERNING 0x0008 #define GCP_GLYPHSHAPE 0x0010 #define GCP_LIGATE 0x0020 ////#define GCP_GLYPHINDEXING 0x0080 #define GCP_DIACRITIC 0x0100 #define GCP_KASHIDA 0x0400 #define GCP_ERROR 0x8000 #define FLI_MASK 0x103B #define GCP_JUSTIFY 0x00010000L ////#define GCP_NODIACRITICS 0x00020000L #define FLI_GLYPHS 0x00040000L #define GCP_CLASSIN 0x00080000L #define GCP_MAXEXTENT 0x00100000L #define GCP_JUSTIFYIN 0x00200000L #define GCP_DISPLAYZWG 0x00400000L #define GCP_SYMSWAPOFF 0x00800000L #define GCP_NUMERICOVERRIDE 0x01000000L #define GCP_NEUTRALOVERRIDE 0x02000000L #define GCP_NUMERICSLATIN 0x04000000L #define GCP_NUMERICSLOCAL 0x08000000L #define GCPCLASS_LATIN 1 #define GCPCLASS_HEBREW 2 #define GCPCLASS_ARABIC 2 #define GCPCLASS_NEUTRAL 3 #define GCPCLASS_LOCALNUMBER 4 #define GCPCLASS_LATINNUMBER 5 #define GCPCLASS_LATINNUMERICTERMINATOR 6 #define GCPCLASS_LATINNUMERICSEPARATOR 7 #define GCPCLASS_NUMERICSEPARATOR 8 #define GCPCLASS_PREBOUNDLTR 0x80 #define GCPCLASS_PREBOUNDRTL 0x40 #define GCPCLASS_POSTBOUNDLTR 0x20 #define GCPCLASS_POSTBOUNDRTL 0x10 #define GCPGLYPH_LINKBEFORE 0x8000 #define GCPGLYPH_LINKAFTER 0x4000 typedef struct tagGCP_RESULTSA { DWORD lStructSize; LPSTR lpOutString; UINT FAR *lpOrder; int FAR *lpDx; int FAR *lpCaretPos; LPSTR lpClass; LPWSTR lpGlyphs; UINT nGlyphs; int nMaxFit; } GCP_RESULTSA, FAR* LPGCP_RESULTSA; typedef struct tagGCP_RESULTSW { DWORD lStructSize; LPWSTR lpOutString; UINT FAR *lpOrder; int FAR *lpDx; int FAR *lpCaretPos; LPSTR lpClass; LPWSTR lpGlyphs; UINT nGlyphs; int nMaxFit; } GCP_RESULTSW, FAR* LPGCP_RESULTSW; #ifdef UNICODE typedef GCP_RESULTSW GCP_RESULTS; typedef LPGCP_RESULTSW LPGCP_RESULTS; #else typedef GCP_RESULTSA GCP_RESULTS; typedef LPGCP_RESULTSA LPGCP_RESULTS; #endif // UNICODE #endif /* WINVER >= 0x0400 */ typedef struct _RASTERIZER_STATUS { short nSize; short wFlags; short nLanguageID; } RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS; /* bits defined in wFlags of RASTERIZER_STATUS */ #define TT_AVAILABLE 0x0001 #define TT_ENABLED 0x0002 /* Pixel format descriptor */ typedef 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; } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR; /* pixel types */ #define PFD_TYPE_RGBA 0 #define PFD_TYPE_COLORINDEX 1 /* layer types */ #define PFD_MAIN_PLANE 0 #define PFD_OVERLAY_PLANE 1 #define PFD_UNDERLAY_PLANE (-1) /* PIXELFORMATDESCRIPTOR flags */ #define PFD_DOUBLEBUFFER 0x00000001 #define PFD_STEREO 0x00000002 #define PFD_DRAW_TO_WINDOW 0x00000004 #define PFD_DRAW_TO_BITMAP 0x00000008 #define PFD_SUPPORT_GDI 0x00000010 #define PFD_SUPPORT_OPENGL 0x00000020 #define PFD_GENERIC_FORMAT 0x00000040 #define PFD_NEED_PALETTE 0x00000080 #define PFD_NEED_SYSTEM_PALETTE 0x00000100 #define PFD_SWAP_EXCHANGE 0x00000200 #define PFD_SWAP_COPY 0x00000400 #define PFD_SWAP_LAYER_BUFFERS 0x00000800 #define PFD_GENERIC_ACCELERATED 0x00001000 #define PFD_SUPPORT_DIRECTDRAW 0x00002000 /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ #define PFD_DEPTH_DONTCARE 0x20000000 #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000 #define PFD_STEREO_DONTCARE 0x80000000 #ifdef STRICT #if !defined(NOTEXTMETRIC) typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM); #ifdef UNICODE #define OLDFONTENUMPROC OLDFONTENUMPROCW #else #define OLDFONTENUMPROC OLDFONTENUMPROCA #endif // !UNICODE #else typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM); #ifdef UNICODE #define OLDFONTENUMPROC OLDFONTENUMPROCW #else #define OLDFONTENUMPROC OLDFONTENUMPROCA #endif // !UNICODE #endif typedef OLDFONTENUMPROCA FONTENUMPROCA; typedef OLDFONTENUMPROCW FONTENUMPROCW; #ifdef UNICODE typedef FONTENUMPROCW FONTENUMPROC; #else typedef FONTENUMPROCA FONTENUMPROC; #endif // UNICODE typedef int (CALLBACK* GOBJENUMPROC)(LPVOID, LPARAM); typedef VOID (CALLBACK* LINEDDAPROC)(int, int, LPARAM); #else typedef FARPROC OLDFONTENUMPROC; typedef FARPROC FONTENUMPROCA; typedef FARPROC FONTENUMPROCW; #ifdef UNICODE typedef FONTENUMPROCW FONTENUMPROC; #else typedef FONTENUMPROCA FONTENUMPROC; #endif // UNICODE typedef FARPROC GOBJENUMPROC; typedef FARPROC LINEDDAPROC; #endif WINGDIAPI int WINAPI AddFontResourceA(IN LPCSTR); WINGDIAPI int WINAPI AddFontResourceW(IN LPCWSTR); #ifdef UNICODE #define AddFontResource AddFontResourceW #else #define AddFontResource AddFontResourceA #endif // !UNICODE WINGDIAPI BOOL WINAPI AnimatePalette( IN HPALETTE, IN UINT, IN UINT, IN CONST PALETTEENTRY *); WINGDIAPI BOOL WINAPI Arc( IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI BitBlt( IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN DWORD); WINGDIAPI BOOL WINAPI CancelDC( IN HDC); WINGDIAPI BOOL WINAPI Chord( IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); WINGDIAPI int WINAPI ChoosePixelFormat( IN HDC, IN CONST PIXELFORMATDESCRIPTOR *); WINGDIAPI HMETAFILE WINAPI CloseMetaFile( IN HDC); WINGDIAPI int WINAPI CombineRgn( IN HRGN, IN HRGN, IN HRGN, IN int); WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( IN HMETAFILE, IN LPCSTR); WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( IN HMETAFILE, IN LPCWSTR); #ifdef UNICODE #define CopyMetaFile CopyMetaFileW #else #define CopyMetaFile CopyMetaFileA #endif // !UNICODE WINGDIAPI HBITMAP WINAPI CreateBitmap( IN int, IN int, IN UINT, IN UINT, IN CONST VOID *); WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( IN CONST BITMAP *); WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( IN CONST LOGBRUSH *); WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( IN HDC, IN int, IN int); WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( IN HDC, IN int, IN int); WINGDIAPI HDC WINAPI CreateCompatibleDC( IN HDC); WINGDIAPI HDC WINAPI CreateDCA( IN LPCSTR, IN LPCSTR, IN LPCSTR, IN CONST DEVMODEA *); WINGDIAPI HDC WINAPI CreateDCW( IN LPCWSTR, IN LPCWSTR, IN LPCWSTR, IN CONST DEVMODEW *); #ifdef UNICODE #define CreateDC CreateDCW #else #define CreateDC CreateDCA #endif // !UNICODE WINGDIAPI HBITMAP WINAPI CreateDIBitmap( IN HDC, IN CONST BITMAPINFOHEADER *, IN DWORD, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT); WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( IN HGLOBAL, IN UINT); WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( IN CONST VOID *, IN UINT); WINGDIAPI HRGN WINAPI CreateEllipticRgn( IN int, IN int, IN int, IN int); WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( IN CONST RECT *); WINGDIAPI HFONT WINAPI CreateFontIndirectA( IN CONST LOGFONTA *); WINGDIAPI HFONT WINAPI CreateFontIndirectW( IN CONST LOGFONTW *); #ifdef UNICODE #define CreateFontIndirect CreateFontIndirectW #else #define CreateFontIndirect CreateFontIndirectA #endif // !UNICODE WINGDIAPI HFONT WINAPI CreateFontA( IN int, IN int, IN int, IN int, IN int, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN LPCSTR); WINGDIAPI HFONT WINAPI CreateFontW( IN int, IN int, IN int, IN int, IN int, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN DWORD, IN LPCWSTR); #ifdef UNICODE #define CreateFont CreateFontW #else #define CreateFont CreateFontA #endif // !UNICODE WINGDIAPI HBRUSH WINAPI CreateHatchBrush( IN int, IN COLORREF); WINGDIAPI HDC WINAPI CreateICA( IN LPCSTR, IN LPCSTR, IN LPCSTR, IN CONST DEVMODEA *); WINGDIAPI HDC WINAPI CreateICW( IN LPCWSTR, IN LPCWSTR, IN LPCWSTR, IN CONST DEVMODEW *); #ifdef UNICODE #define CreateIC CreateICW #else #define CreateIC CreateICA #endif // !UNICODE WINGDIAPI HDC WINAPI CreateMetaFileA( IN LPCSTR); WINGDIAPI HDC WINAPI CreateMetaFileW( IN LPCWSTR); #ifdef UNICODE #define CreateMetaFile CreateMetaFileW #else #define CreateMetaFile CreateMetaFileA #endif // !UNICODE WINGDIAPI HPALETTE WINAPI CreatePalette( IN CONST LOGPALETTE *); WINGDIAPI HPEN WINAPI CreatePen( IN int, IN int, IN COLORREF); WINGDIAPI HPEN WINAPI CreatePenIndirect( IN CONST LOGPEN *); WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( IN CONST POINT *, IN CONST INT *, IN int, IN int); WINGDIAPI HBRUSH WINAPI CreatePatternBrush( IN HBITMAP); WINGDIAPI HRGN WINAPI CreateRectRgn( IN int, IN int, IN int, IN int); WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( IN CONST RECT *); WINGDIAPI HRGN WINAPI CreateRoundRectRgn( IN int, IN int, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( IN DWORD, IN LPCSTR, IN LPCSTR, IN LPCSTR); WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( IN DWORD, IN LPCWSTR, IN LPCWSTR, IN LPCWSTR); #ifdef UNICODE #define CreateScalableFontResource CreateScalableFontResourceW #else #define CreateScalableFontResource CreateScalableFontResourceA #endif // !UNICODE WINGDIAPI HBRUSH WINAPI CreateSolidBrush( IN COLORREF); WINGDIAPI BOOL WINAPI DeleteDC( IN HDC); WINGDIAPI BOOL WINAPI DeleteMetaFile( IN HMETAFILE); WINGDIAPI BOOL WINAPI DeleteObject( IN HGDIOBJ); WINGDIAPI int WINAPI DescribePixelFormat( IN HDC, IN int, IN UINT, OUT LPPIXELFORMATDESCRIPTOR); /* define types of pointers to ExtDeviceMode() and DeviceCapabilities() * functions for Win 3.1 compatibility */ typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT); typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE); /* mode selections for the device mode function */ #define DM_UPDATE 1 #define DM_COPY 2 #define DM_PROMPT 4 #define DM_MODIFY 8 #define DM_IN_BUFFER DM_MODIFY #define DM_IN_PROMPT DM_PROMPT #define DM_OUT_BUFFER DM_COPY #define DM_OUT_DEFAULT DM_UPDATE /* device capabilities indices */ #define DC_FIELDS 1 #define DC_PAPERS 2 #define DC_PAPERSIZE 3 #define DC_MINEXTENT 4 #define DC_MAXEXTENT 5 #define DC_BINS 6 #define DC_DUPLEX 7 #define DC_SIZE 8 #define DC_EXTRA 9 #define DC_VERSION 10 #define DC_DRIVER 11 #define DC_BINNAMES 12 #define DC_ENUMRESOLUTIONS 13 #define DC_FILEDEPENDENCIES 14 #define DC_TRUETYPE 15 #define DC_PAPERNAMES 16 #define DC_ORIENTATION 17 #define DC_COPIES 18 #if(WINVER >= 0x0400) #define DC_BINADJUST 19 #define DC_EMF_COMPLIANT 20 #define DC_DATATYPE_PRODUCED 21 #define DC_COLLATE 22 #define DC_MANUFACTURER 23 #define DC_MODEL 24 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define DC_PERSONALITY 25 #define DC_PRINTRATE 26 #define DC_PRINTRATEUNIT 27 #define PRINTRATEUNIT_PPM 1 #define PRINTRATEUNIT_CPS 2 #define PRINTRATEUNIT_LPM 3 #define PRINTRATEUNIT_IPM 4 #define DC_PRINTERMEM 28 #define DC_MEDIAREADY 29 #define DC_STAPLE 30 #define DC_PRINTRATEPPM 31 #define DC_COLORDEVICE 32 #define DC_NUP 33 #define DC_MEDIATYPENAMES 34 #define DC_MEDIATYPES 35 #endif /* WINVER >= 0x0500 */ /* bit fields of the return value (DWORD) for DC_TRUETYPE */ #define DCTT_BITMAP 0x0000001L #define DCTT_DOWNLOAD 0x0000002L #define DCTT_SUBDEV 0x0000004L #if(WINVER >= 0x0400) #define DCTT_DOWNLOAD_OUTLINE 0x0000008L /* return values for DC_BINADJUST */ #define DCBA_FACEUPNONE 0x0000 #define DCBA_FACEUPCENTER 0x0001 #define DCBA_FACEUPLEFT 0x0002 #define DCBA_FACEUPRIGHT 0x0003 #define DCBA_FACEDOWNNONE 0x0100 #define DCBA_FACEDOWNCENTER 0x0101 #define DCBA_FACEDOWNLEFT 0x0102 #define DCBA_FACEDOWNRIGHT 0x0103 #endif /* WINVER >= 0x0400 */ WINSPOOLAPI int WINAPI DeviceCapabilitiesA( IN LPCSTR, IN LPCSTR, IN WORD, OUT LPSTR, IN CONST DEVMODEA *); WINSPOOLAPI int WINAPI DeviceCapabilitiesW( IN LPCWSTR, IN LPCWSTR, IN WORD, OUT LPWSTR, IN CONST DEVMODEW *); #ifdef UNICODE #define DeviceCapabilities DeviceCapabilitiesW #else #define DeviceCapabilities DeviceCapabilitiesA #endif // !UNICODE WINGDIAPI int WINAPI DrawEscape( IN HDC, IN int, IN int, IN LPCSTR); WINGDIAPI BOOL WINAPI Ellipse( IN HDC, IN int, IN int, IN int, IN int); #if(WINVER >= 0x0400) WINGDIAPI int WINAPI EnumFontFamiliesExA( IN HDC, IN LPLOGFONTA, IN FONTENUMPROCA, IN LPARAM, IN DWORD); WINGDIAPI int WINAPI EnumFontFamiliesExW( IN HDC, IN LPLOGFONTW, IN FONTENUMPROCW, IN LPARAM, IN DWORD); #ifdef UNICODE #define EnumFontFamiliesEx EnumFontFamiliesExW #else #define EnumFontFamiliesEx EnumFontFamiliesExA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ WINGDIAPI int WINAPI EnumFontFamiliesA( IN HDC, IN LPCSTR, IN FONTENUMPROCA, IN LPARAM); WINGDIAPI int WINAPI EnumFontFamiliesW( IN HDC, IN LPCWSTR, IN FONTENUMPROCW, IN LPARAM); #ifdef UNICODE #define EnumFontFamilies EnumFontFamiliesW #else #define EnumFontFamilies EnumFontFamiliesA #endif // !UNICODE WINGDIAPI int WINAPI EnumFontsA( IN HDC, IN LPCSTR, IN FONTENUMPROCA, IN LPARAM); WINGDIAPI int WINAPI EnumFontsW( IN HDC, IN LPCWSTR, IN FONTENUMPROCW, IN LPARAM); #ifdef UNICODE #define EnumFonts EnumFontsW #else #define EnumFonts EnumFontsA #endif // !UNICODE #ifdef STRICT WINGDIAPI int WINAPI EnumObjects( IN HDC, IN int, IN GOBJENUMPROC, IN LPARAM); #else WINGDIAPI int WINAPI EnumObjects( IN HDC, IN int, IN GOBJENUMPROC, IN LPVOID); #endif WINGDIAPI BOOL WINAPI EqualRgn( IN HRGN, IN HRGN); WINGDIAPI int WINAPI Escape( IN HDC, IN int, IN int, IN LPCSTR, OUT LPVOID); WINGDIAPI int WINAPI ExtEscape( IN HDC, IN int, IN int, IN LPCSTR, IN int, OUT LPSTR); WINGDIAPI int WINAPI ExcludeClipRect( IN HDC, IN int, IN int, IN int, IN int); WINGDIAPI HRGN WINAPI ExtCreateRegion( IN CONST XFORM *, IN DWORD, IN CONST RGNDATA *); WINGDIAPI BOOL WINAPI ExtFloodFill( IN HDC, IN int, IN int, IN COLORREF, IN UINT); WINGDIAPI BOOL WINAPI FillRgn( IN HDC, IN HRGN, IN HBRUSH); WINGDIAPI BOOL WINAPI FloodFill( IN HDC, IN int, IN int, IN COLORREF); WINGDIAPI BOOL WINAPI FrameRgn( IN HDC, IN HRGN, IN HBRUSH, IN int, IN int); WINGDIAPI int WINAPI GetROP2( IN HDC); WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( IN HDC, OUT LPSIZE); WINGDIAPI COLORREF WINAPI GetBkColor( IN HDC); #if (_WIN32_WINNT >= 0x0500) WINGDIAPI COLORREF WINAPI GetDCBrushColor( IN HDC); WINGDIAPI COLORREF WINAPI GetDCPenColor( IN HDC); #endif WINGDIAPI int WINAPI GetBkMode( IN HDC); WINGDIAPI LONG WINAPI GetBitmapBits( IN HBITMAP, IN LONG, OUT LPVOID); WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( IN HBITMAP, OUT LPSIZE); WINGDIAPI UINT WINAPI GetBoundsRect( IN HDC, OUT LPRECT, IN UINT); WINGDIAPI BOOL WINAPI GetBrushOrgEx( IN HDC, OUT LPPOINT); WINGDIAPI BOOL WINAPI GetCharWidthA( IN HDC, IN UINT, IN UINT, OUT LPINT); WINGDIAPI BOOL WINAPI GetCharWidthW( IN HDC, IN UINT, IN UINT, OUT LPINT); #ifdef UNICODE #define GetCharWidth GetCharWidthW #else #define GetCharWidth GetCharWidthA #endif // !UNICODE WINGDIAPI BOOL WINAPI GetCharWidth32A( IN HDC, IN UINT, IN UINT, OUT LPINT); WINGDIAPI BOOL WINAPI GetCharWidth32W( IN HDC, IN UINT, IN UINT, OUT LPINT); #ifdef UNICODE #define GetCharWidth32 GetCharWidth32W #else #define GetCharWidth32 GetCharWidth32A #endif // !UNICODE WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( IN HDC, IN UINT, IN UINT, OUT PFLOAT); WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( IN HDC, IN UINT, IN UINT, OUT PFLOAT); #ifdef UNICODE #define GetCharWidthFloat GetCharWidthFloatW #else #define GetCharWidthFloat GetCharWidthFloatA #endif // !UNICODE WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( IN HDC, IN UINT, IN UINT, OUT LPABC); WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( IN HDC, IN UINT, IN UINT, OUT LPABC); #ifdef UNICODE #define GetCharABCWidths GetCharABCWidthsW #else #define GetCharABCWidths GetCharABCWidthsA #endif // !UNICODE WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( IN HDC, IN UINT, IN UINT, OUT LPABCFLOAT); WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( IN HDC, IN UINT, IN UINT, OUT LPABCFLOAT); #ifdef UNICODE #define GetCharABCWidthsFloat GetCharABCWidthsFloatW #else #define GetCharABCWidthsFloat GetCharABCWidthsFloatA #endif // !UNICODE WINGDIAPI int WINAPI GetClipBox( IN HDC, OUT LPRECT); WINGDIAPI int WINAPI GetClipRgn( IN HDC, IN HRGN); WINGDIAPI int WINAPI GetMetaRgn( IN HDC, IN HRGN); WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( IN HDC, IN UINT); WINGDIAPI BOOL WINAPI GetCurrentPositionEx( IN HDC, OUT LPPOINT); WINGDIAPI int WINAPI GetDeviceCaps( IN HDC, IN int); WINGDIAPI int WINAPI GetDIBits( IN HDC, IN HBITMAP, IN UINT, IN UINT, OUT LPVOID, IN OUT LPBITMAPINFO, IN UINT); WINGDIAPI DWORD WINAPI GetFontData( IN HDC, IN DWORD, IN DWORD, OUT LPVOID, IN DWORD); WINGDIAPI DWORD WINAPI GetGlyphOutlineA( IN HDC, IN UINT, IN UINT, OUT LPGLYPHMETRICS, IN DWORD, OUT LPVOID, IN CONST MAT2 *); WINGDIAPI DWORD WINAPI GetGlyphOutlineW( IN HDC, IN UINT, IN UINT, OUT LPGLYPHMETRICS, IN DWORD, OUT LPVOID, IN CONST MAT2 *); #ifdef UNICODE #define GetGlyphOutline GetGlyphOutlineW #else #define GetGlyphOutline GetGlyphOutlineA #endif // !UNICODE WINGDIAPI int WINAPI GetGraphicsMode( IN HDC); WINGDIAPI int WINAPI GetMapMode( IN HDC); WINGDIAPI UINT WINAPI GetMetaFileBitsEx( IN HMETAFILE, IN UINT, OUT LPVOID); WINGDIAPI HMETAFILE WINAPI GetMetaFileA( IN LPCSTR); WINGDIAPI HMETAFILE WINAPI GetMetaFileW( IN LPCWSTR); #ifdef UNICODE #define GetMetaFile GetMetaFileW #else #define GetMetaFile GetMetaFileA #endif // !UNICODE WINGDIAPI COLORREF WINAPI GetNearestColor( IN HDC, IN COLORREF); WINGDIAPI UINT WINAPI GetNearestPaletteIndex( IN HPALETTE, IN COLORREF); WINGDIAPI DWORD WINAPI GetObjectType( IN HGDIOBJ h); #ifndef NOTEXTMETRIC WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( IN HDC, IN UINT, OUT LPOUTLINETEXTMETRICA); WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( IN HDC, IN UINT, OUT LPOUTLINETEXTMETRICW); #ifdef UNICODE #define GetOutlineTextMetrics GetOutlineTextMetricsW #else #define GetOutlineTextMetrics GetOutlineTextMetricsA #endif // !UNICODE #endif /* NOTEXTMETRIC */ WINGDIAPI UINT WINAPI GetPaletteEntries( IN HPALETTE, IN UINT, IN UINT, OUT LPPALETTEENTRY); WINGDIAPI COLORREF WINAPI GetPixel( IN HDC, IN int, IN int); WINGDIAPI int WINAPI GetPixelFormat( IN HDC); WINGDIAPI int WINAPI GetPolyFillMode( IN HDC); WINGDIAPI BOOL WINAPI GetRasterizerCaps( OUT LPRASTERIZER_STATUS, IN UINT); WINGDIAPI int WINAPI GetRandomRgn (IN HDC, IN HRGN, IN INT); WINGDIAPI DWORD WINAPI GetRegionData( IN HRGN, IN DWORD, OUT LPRGNDATA); WINGDIAPI int WINAPI GetRgnBox( IN HRGN, OUT LPRECT); WINGDIAPI HGDIOBJ WINAPI GetStockObject( IN int); WINGDIAPI int WINAPI GetStretchBltMode( IN HDC); WINGDIAPI UINT WINAPI GetSystemPaletteEntries( IN HDC, IN UINT, IN UINT, OUT LPPALETTEENTRY); WINGDIAPI UINT WINAPI GetSystemPaletteUse( IN HDC); WINGDIAPI int WINAPI GetTextCharacterExtra( IN HDC); WINGDIAPI UINT WINAPI GetTextAlign( IN HDC); WINGDIAPI COLORREF WINAPI GetTextColor( IN HDC); WINGDIAPI BOOL APIENTRY GetTextExtentPointA( IN HDC, IN LPCSTR, IN int, OUT LPSIZE ); WINGDIAPI BOOL APIENTRY GetTextExtentPointW( IN HDC, IN LPCWSTR, IN int, OUT LPSIZE ); #ifdef UNICODE #define GetTextExtentPoint GetTextExtentPointW #else #define GetTextExtentPoint GetTextExtentPointA #endif // !UNICODE WINGDIAPI BOOL APIENTRY GetTextExtentPoint32A( IN HDC, IN LPCSTR, IN int, OUT LPSIZE ); WINGDIAPI BOOL APIENTRY GetTextExtentPoint32W( IN HDC, IN LPCWSTR, IN int, OUT LPSIZE ); #ifdef UNICODE #define GetTextExtentPoint32 GetTextExtentPoint32W #else #define GetTextExtentPoint32 GetTextExtentPoint32A #endif // !UNICODE WINGDIAPI BOOL APIENTRY GetTextExtentExPointA( IN HDC, IN LPCSTR, IN int, IN int, OUT LPINT, OUT LPINT, OUT LPSIZE ); WINGDIAPI BOOL APIENTRY GetTextExtentExPointW( IN HDC, IN LPCWSTR, IN int, IN int, OUT LPINT, OUT LPINT, OUT LPSIZE ); #ifdef UNICODE #define GetTextExtentExPoint GetTextExtentExPointW #else #define GetTextExtentExPoint GetTextExtentExPointA #endif // !UNICODE #if(WINVER >= 0x0400) WINGDIAPI int WINAPI GetTextCharset( IN HDC hdc); WINGDIAPI int WINAPI GetTextCharsetInfo( IN HDC hdc, OUT LPFONTSIGNATURE lpSig, IN DWORD dwFlags); WINGDIAPI BOOL WINAPI TranslateCharsetInfo( IN OUT DWORD FAR *lpSrc, OUT LPCHARSETINFO lpCs, IN DWORD dwFlags); WINGDIAPI DWORD WINAPI GetFontLanguageInfo( IN HDC ); WINGDIAPI DWORD WINAPI GetCharacterPlacementA( IN HDC, IN LPCSTR, IN int, IN int, IN OUT LPGCP_RESULTSA, IN DWORD); WINGDIAPI DWORD WINAPI GetCharacterPlacementW( IN HDC, IN LPCWSTR, IN int, IN int, IN OUT LPGCP_RESULTSW, IN DWORD); #ifdef UNICODE #define GetCharacterPlacement GetCharacterPlacementW #else #define GetCharacterPlacement GetCharacterPlacementA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0500) typedef struct tagWCRANGE { WCHAR wcLow; USHORT cGlyphs; } WCRANGE, *PWCRANGE,FAR *LPWCRANGE; typedef struct tagGLYPHSET { DWORD cbThis; DWORD flAccel; DWORD cGlyphsSupported; DWORD cRanges; WCRANGE ranges[1]; } GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET; /* flAccel flags for the GLYPHSET structure above */ #define GS_8BIT_INDICES 0x00000001 /* flags for GetGlyphIndices */ #define GGI_MARK_NONEXISTING_GLYPHS 0X0001 WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( IN HDC, OUT LPGLYPHSET); WINGDIAPI DWORD WINAPI GetGlyphIndicesA( IN HDC, IN LPCSTR, IN int, OUT LPWORD, IN DWORD); WINGDIAPI DWORD WINAPI GetGlyphIndicesW( IN HDC, IN LPCWSTR, IN int, OUT LPWORD, IN DWORD); #ifdef UNICODE #define GetGlyphIndices GetGlyphIndicesW #else #define GetGlyphIndices GetGlyphIndicesA #endif // !UNICODE WINGDIAPI BOOL WINAPI GetTextExtentPointI( IN HDC, IN LPWORD, IN int, OUT LPSIZE); WINGDIAPI BOOL WINAPI GetTextExtentExPointI( IN HDC, IN LPWORD, IN int, IN int, OUT LPINT, OUT LPINT, OUT LPSIZE); WINGDIAPI BOOL WINAPI GetCharWidthI( IN HDC, IN UINT, IN UINT, IN LPWORD, OUT LPINT); WINGDIAPI BOOL WINAPI GetCharABCWidthsI( IN HDC, IN UINT, IN UINT, IN LPWORD, OUT LPABC); #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8)) #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8)) #define MM_MAX_NUMAXES 16 typedef struct tagDESIGNVECTOR { DWORD dvReserved; DWORD dvNumAxes; LONG dvValues[MM_MAX_NUMAXES]; } DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR; WINGDIAPI int WINAPI AddFontResourceExA( IN LPCSTR, IN DWORD, IN PVOID); WINGDIAPI int WINAPI AddFontResourceExW( IN LPCWSTR, IN DWORD, IN PVOID); #ifdef UNICODE #define AddFontResourceEx AddFontResourceExW #else #define AddFontResourceEx AddFontResourceExA #endif // !UNICODE WINGDIAPI BOOL WINAPI RemoveFontResourceExA( IN LPCSTR, IN DWORD, IN PVOID); WINGDIAPI BOOL WINAPI RemoveFontResourceExW( IN LPCWSTR, IN DWORD, IN PVOID); #ifdef UNICODE #define RemoveFontResourceEx RemoveFontResourceExW #else #define RemoveFontResourceEx RemoveFontResourceExA #endif // !UNICODE WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( IN PVOID, IN DWORD, IN PVOID , IN DWORD*); WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( IN HANDLE); #define FR_PRIVATE 0x10 #define FR_NOT_ENUM 0x20 // The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures // is determined by dvNumAxes, // MM_MAX_NUMAXES only detemines the maximal size allowed #define MM_MAX_AXES_NAMELEN 16 typedef struct tagAXISINFOA { LONG axMinValue; LONG axMaxValue; BYTE axAxisName[MM_MAX_AXES_NAMELEN]; } AXISINFOA, *PAXISINFOA, FAR *LPAXISINFOA; typedef struct tagAXISINFOW { LONG axMinValue; LONG axMaxValue; WCHAR axAxisName[MM_MAX_AXES_NAMELEN]; } AXISINFOW, *PAXISINFOW, FAR *LPAXISINFOW; #ifdef UNICODE typedef AXISINFOW AXISINFO; typedef PAXISINFOW PAXISINFO; typedef LPAXISINFOW LPAXISINFO; #else typedef AXISINFOA AXISINFO; typedef PAXISINFOA PAXISINFO; typedef LPAXISINFOA LPAXISINFO; #endif // UNICODE typedef struct tagAXESLISTA { DWORD axlReserved; DWORD axlNumAxes; AXISINFOA axlAxisInfo[MM_MAX_NUMAXES]; } AXESLISTA, *PAXESLISTA, FAR *LPAXESLISTA; typedef struct tagAXESLISTW { DWORD axlReserved; DWORD axlNumAxes; AXISINFOW axlAxisInfo[MM_MAX_NUMAXES]; } AXESLISTW, *PAXESLISTW, FAR *LPAXESLISTW; #ifdef UNICODE typedef AXESLISTW AXESLIST; typedef PAXESLISTW PAXESLIST; typedef LPAXESLISTW LPAXESLIST; #else typedef AXESLISTA AXESLIST; typedef PAXESLISTA PAXESLIST; typedef LPAXESLISTA LPAXESLIST; #endif // UNICODE // The actual size of the AXESLIST and ENUMTEXTMETRIC structure is // determined by axlNumAxes, // MM_MAX_NUMAXES only detemines the maximal size allowed typedef struct tagENUMLOGFONTEXDVA { ENUMLOGFONTEXA elfEnumLogfontEx; DESIGNVECTOR elfDesignVector; } ENUMLOGFONTEXDVA, *PENUMLOGFONTEXDVA, FAR *LPENUMLOGFONTEXDVA; typedef struct tagENUMLOGFONTEXDVW { ENUMLOGFONTEXW elfEnumLogfontEx; DESIGNVECTOR elfDesignVector; } ENUMLOGFONTEXDVW, *PENUMLOGFONTEXDVW, FAR *LPENUMLOGFONTEXDVW; #ifdef UNICODE typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; #else typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; #endif // UNICODE WINGDIAPI HFONT WINAPI CreateFontIndirectExA( IN CONST ENUMLOGFONTEXDVA *); WINGDIAPI HFONT WINAPI CreateFontIndirectExW( IN CONST ENUMLOGFONTEXDVW *); #ifdef UNICODE #define CreateFontIndirectEx CreateFontIndirectExW #else #define CreateFontIndirectEx CreateFontIndirectExA #endif // !UNICODE #ifndef NOTEXTMETRIC typedef struct tagENUMTEXTMETRICA { NEWTEXTMETRICEXA etmNewTextMetricEx; AXESLISTA etmAxesList; } ENUMTEXTMETRICA, *PENUMTEXTMETRICA, FAR *LPENUMTEXTMETRICA; typedef struct tagENUMTEXTMETRICW { NEWTEXTMETRICEXW etmNewTextMetricEx; AXESLISTW etmAxesList; } ENUMTEXTMETRICW, *PENUMTEXTMETRICW, FAR *LPENUMTEXTMETRICW; #ifdef UNICODE typedef ENUMTEXTMETRICW ENUMTEXTMETRIC; typedef PENUMTEXTMETRICW PENUMTEXTMETRIC; typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC; #else typedef ENUMTEXTMETRICA ENUMTEXTMETRIC; typedef PENUMTEXTMETRICA PENUMTEXTMETRIC; typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC; #endif // UNICODE #endif /* NOTEXTMETRIC */ #endif // (_WIN32_WINNT >= 0x0500) WINGDIAPI BOOL WINAPI GetViewportExtEx( IN HDC, OUT LPSIZE); WINGDIAPI BOOL WINAPI GetViewportOrgEx( IN HDC, OUT LPPOINT); WINGDIAPI BOOL WINAPI GetWindowExtEx( IN HDC, OUT LPSIZE); WINGDIAPI BOOL WINAPI GetWindowOrgEx( IN HDC, OUT LPPOINT); WINGDIAPI int WINAPI IntersectClipRect( IN HDC, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI InvertRgn( IN HDC, IN HRGN); WINGDIAPI BOOL WINAPI LineDDA( IN int, IN int, IN int, IN int, IN LINEDDAPROC, IN LPARAM); WINGDIAPI BOOL WINAPI LineTo( IN HDC, IN int, IN int); WINGDIAPI BOOL WINAPI MaskBlt( IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN HBITMAP, IN int, IN int, IN DWORD); WINGDIAPI BOOL WINAPI PlgBlt( IN HDC, IN CONST POINT *, IN HDC, IN int, IN int, IN int, IN int, IN HBITMAP, IN int, IN int); WINGDIAPI int WINAPI OffsetClipRgn(IN HDC, IN int, IN int); WINGDIAPI int WINAPI OffsetRgn(IN HRGN, IN int, IN int); WINGDIAPI BOOL WINAPI PatBlt(IN HDC, IN int, IN int, IN int, IN int, IN DWORD); WINGDIAPI BOOL WINAPI Pie(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI PlayMetaFile(IN HDC, IN HMETAFILE); WINGDIAPI BOOL WINAPI PaintRgn(IN HDC, IN HRGN); WINGDIAPI BOOL WINAPI PolyPolygon(IN HDC, IN CONST POINT *, IN CONST INT *, IN int); WINGDIAPI BOOL WINAPI PtInRegion(IN HRGN, IN int, IN int); WINGDIAPI BOOL WINAPI PtVisible(IN HDC, IN int, IN int); WINGDIAPI BOOL WINAPI RectInRegion(IN HRGN, IN CONST RECT *); WINGDIAPI BOOL WINAPI RectVisible(IN HDC, IN CONST RECT *); WINGDIAPI BOOL WINAPI Rectangle(IN HDC, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI RestoreDC(IN HDC, IN int); WINGDIAPI HDC WINAPI ResetDCA(IN HDC, IN CONST DEVMODEA *); WINGDIAPI HDC WINAPI ResetDCW(IN HDC, IN CONST DEVMODEW *); #ifdef UNICODE #define ResetDC ResetDCW #else #define ResetDC ResetDCA #endif // !UNICODE WINGDIAPI UINT WINAPI RealizePalette(IN HDC); WINGDIAPI BOOL WINAPI RemoveFontResourceA(IN LPCSTR); WINGDIAPI BOOL WINAPI RemoveFontResourceW(IN LPCWSTR); #ifdef UNICODE #define RemoveFontResource RemoveFontResourceW #else #define RemoveFontResource RemoveFontResourceA #endif // !UNICODE WINGDIAPI BOOL WINAPI RoundRect(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI ResizePalette(IN HPALETTE, IN UINT); WINGDIAPI int WINAPI SaveDC(IN HDC); WINGDIAPI int WINAPI SelectClipRgn(IN HDC, IN HRGN); WINGDIAPI int WINAPI ExtSelectClipRgn(IN HDC, IN HRGN, IN int); WINGDIAPI int WINAPI SetMetaRgn(IN HDC); WINGDIAPI HGDIOBJ WINAPI SelectObject(IN HDC, IN HGDIOBJ); WINGDIAPI HPALETTE WINAPI SelectPalette(IN HDC, IN HPALETTE, IN BOOL); WINGDIAPI COLORREF WINAPI SetBkColor(IN HDC, IN COLORREF); #if (_WIN32_WINNT >= 0x0500) WINGDIAPI COLORREF WINAPI SetDCBrushColor(IN HDC, IN COLORREF); WINGDIAPI COLORREF WINAPI SetDCPenColor(IN HDC, IN COLORREF); #endif WINGDIAPI int WINAPI SetBkMode(IN HDC, IN int); WINGDIAPI LONG WINAPI SetBitmapBits(IN HBITMAP, IN DWORD, IN CONST VOID *); WINGDIAPI UINT WINAPI SetBoundsRect(IN HDC, IN CONST RECT *, IN UINT); WINGDIAPI int WINAPI SetDIBits(IN HDC, IN HBITMAP, IN UINT, IN UINT, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT); WINGDIAPI int WINAPI SetDIBitsToDevice(IN HDC, IN int, IN int, IN DWORD, IN DWORD, IN int, IN int, IN UINT, IN UINT, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT); WINGDIAPI DWORD WINAPI SetMapperFlags(IN HDC, IN DWORD); WINGDIAPI int WINAPI SetGraphicsMode(IN HDC hdc, IN int iMode); WINGDIAPI int WINAPI SetMapMode(IN HDC, IN int); #if(WINVER >= 0x0500) WINGDIAPI DWORD WINAPI SetLayout(IN HDC, IN DWORD); WINGDIAPI DWORD WINAPI GetLayout(IN HDC); #endif /* WINVER >= 0x0500 */ WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(IN UINT, IN CONST BYTE *); WINGDIAPI UINT WINAPI SetPaletteEntries(IN HPALETTE, IN UINT, IN UINT, IN CONST PALETTEENTRY *); WINGDIAPI COLORREF WINAPI SetPixel(IN HDC, IN int, IN int, IN COLORREF); WINGDIAPI BOOL WINAPI SetPixelV(IN HDC, IN int, IN int, IN COLORREF); WINGDIAPI BOOL WINAPI SetPixelFormat(IN HDC, IN int, IN CONST PIXELFORMATDESCRIPTOR *); WINGDIAPI int WINAPI SetPolyFillMode(IN HDC, IN int); WINGDIAPI BOOL WINAPI StretchBlt(IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN int, IN int, IN DWORD); WINGDIAPI BOOL WINAPI SetRectRgn(IN HRGN, IN int, IN int, IN int, IN int); WINGDIAPI int WINAPI StretchDIBits(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN CONST VOID *, IN CONST BITMAPINFO *, IN UINT, IN DWORD); WINGDIAPI int WINAPI SetROP2(IN HDC, IN int); WINGDIAPI int WINAPI SetStretchBltMode(IN HDC, IN int); WINGDIAPI UINT WINAPI SetSystemPaletteUse(IN HDC, IN UINT); WINGDIAPI int WINAPI SetTextCharacterExtra(IN HDC, IN int); WINGDIAPI COLORREF WINAPI SetTextColor(IN HDC, IN COLORREF); WINGDIAPI UINT WINAPI SetTextAlign(IN HDC, IN UINT); WINGDIAPI BOOL WINAPI SetTextJustification(IN HDC, IN int, IN int); WINGDIAPI BOOL WINAPI UpdateColors(IN HDC); #if (WINVER >= 0x0400) // // image blt // typedef USHORT COLOR16; typedef struct _TRIVERTEX { LONG x; LONG y; COLOR16 Red; COLOR16 Green; COLOR16 Blue; COLOR16 Alpha; }TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX; typedef struct _GRADIENT_TRIANGLE { ULONG Vertex1; ULONG Vertex2; ULONG Vertex3; } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE; typedef struct _GRADIENT_RECT { ULONG UpperLeft; ULONG LowerRight; }GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT; typedef struct _BLENDFUNCTION { BYTE BlendOp; BYTE BlendFlags; BYTE SourceConstantAlpha; BYTE AlphaFormat; }BLENDFUNCTION,*PBLENDFUNCTION; // // currentlly defined blend function // #define AC_SRC_OVER 0x00 // // alpha format flags // #define AC_SRC_ALPHA 0x01 WINGDIAPI BOOL WINAPI AlphaBlend( IN HDC, IN int, IN int, IN int, IN int, IN HDC, IN int, IN int, IN int, IN int, IN BLENDFUNCTION); WINGDIAPI BOOL WINAPI TransparentBlt(IN HDC,IN int,IN int,IN int,IN int,IN HDC,IN int,IN int,IN int,IN int,IN UINT); // // gradient drawing modes // #define GRADIENT_FILL_RECT_H 0x00000000 #define GRADIENT_FILL_RECT_V 0x00000001 #define GRADIENT_FILL_TRIANGLE 0x00000002 #define GRADIENT_FILL_OP_FLAG 0x000000ff WINGDIAPI BOOL WINAPI GradientFill( IN HDC, IN PTRIVERTEX, IN ULONG, IN PVOID, IN ULONG, IN ULONG); #endif #ifndef NOMETAFILE WINGDIAPI BOOL WINAPI PlayMetaFileRecord( IN HDC, IN LPHANDLETABLE, IN LPMETARECORD, IN UINT); typedef int (CALLBACK* MFENUMPROC)( IN HDC, IN HANDLETABLE FAR*, IN METARECORD FAR*, IN int, IN LPARAM); WINGDIAPI BOOL WINAPI EnumMetaFile( IN HDC, IN HMETAFILE, IN MFENUMPROC, IN LPARAM); typedef int (CALLBACK* ENHMFENUMPROC)(HDC, HANDLETABLE FAR*, CONST ENHMETARECORD *, int, LPARAM); // Enhanced Metafile Function Declarations WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( IN HDC); WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( IN HENHMETAFILE, IN LPCSTR); WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( IN HENHMETAFILE, IN LPCWSTR); #ifdef UNICODE #define CopyEnhMetaFile CopyEnhMetaFileW #else #define CopyEnhMetaFile CopyEnhMetaFileA #endif // !UNICODE WINGDIAPI HDC WINAPI CreateEnhMetaFileA( IN HDC, IN LPCSTR, IN CONST RECT *, IN LPCSTR); WINGDIAPI HDC WINAPI CreateEnhMetaFileW( IN HDC, IN LPCWSTR, IN CONST RECT *, IN LPCWSTR); #ifdef UNICODE #define CreateEnhMetaFile CreateEnhMetaFileW #else #define CreateEnhMetaFile CreateEnhMetaFileA #endif // !UNICODE WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( IN HENHMETAFILE); WINGDIAPI BOOL WINAPI EnumEnhMetaFile( IN HDC, IN HENHMETAFILE, IN ENHMFENUMPROC, IN LPVOID, IN CONST RECT *); WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( IN LPCSTR); WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( IN LPCWSTR); #ifdef UNICODE #define GetEnhMetaFile GetEnhMetaFileW #else #define GetEnhMetaFile GetEnhMetaFileA #endif // !UNICODE WINGDIAPI UINT WINAPI GetEnhMetaFileBits( IN HENHMETAFILE, IN UINT, OUT LPBYTE); WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( IN HENHMETAFILE, IN UINT, OUT LPSTR ); WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( IN HENHMETAFILE, IN UINT, OUT LPWSTR ); #ifdef UNICODE #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW #else #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA #endif // !UNICODE WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( IN HENHMETAFILE, IN UINT, OUT LPENHMETAHEADER ); WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries( IN HENHMETAFILE, IN UINT, OUT LPPALETTEENTRY ); WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( IN HENHMETAFILE, IN UINT, OUT PIXELFORMATDESCRIPTOR *); WINGDIAPI UINT WINAPI GetWinMetaFileBits( IN HENHMETAFILE, IN UINT, OUT LPBYTE, IN INT, IN HDC); WINGDIAPI BOOL WINAPI PlayEnhMetaFile( IN HDC, IN HENHMETAFILE, IN CONST RECT *); WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( IN HDC, IN LPHANDLETABLE, IN CONST ENHMETARECORD *, IN UINT); WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( IN UINT, IN CONST BYTE *); WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( IN UINT, IN CONST BYTE *, IN HDC, IN CONST METAFILEPICT *); WINGDIAPI BOOL WINAPI GdiComment( IN HDC, IN UINT, IN CONST BYTE *); #endif /* NOMETAFILE */ #ifndef NOTEXTMETRIC WINGDIAPI BOOL WINAPI GetTextMetricsA( IN HDC, OUT LPTEXTMETRICA); WINGDIAPI BOOL WINAPI GetTextMetricsW( IN HDC, OUT LPTEXTMETRICW); #ifdef UNICODE #define GetTextMetrics GetTextMetricsW #else #define GetTextMetrics GetTextMetricsA #endif // !UNICODE #endif /* new GDI */ typedef struct tagDIBSECTION { BITMAP dsBm; BITMAPINFOHEADER dsBmih; DWORD dsBitfields[3]; HANDLE dshSection; DWORD dsOffset; } DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION; WINGDIAPI BOOL WINAPI AngleArc( IN HDC, IN int, IN int, IN DWORD, IN FLOAT, IN FLOAT); WINGDIAPI BOOL WINAPI PolyPolyline( IN HDC, IN CONST POINT *, IN CONST DWORD *, IN DWORD); WINGDIAPI BOOL WINAPI GetWorldTransform( IN HDC, OUT LPXFORM); WINGDIAPI BOOL WINAPI SetWorldTransform( IN HDC, IN CONST XFORM *); WINGDIAPI BOOL WINAPI ModifyWorldTransform( IN HDC, IN CONST XFORM *, IN DWORD); WINGDIAPI BOOL WINAPI CombineTransform( OUT LPXFORM, IN CONST XFORM *, IN CONST XFORM *); WINGDIAPI HBITMAP WINAPI CreateDIBSection( IN HDC, IN CONST BITMAPINFO *, IN UINT, OUT VOID **, IN HANDLE, IN DWORD); WINGDIAPI UINT WINAPI GetDIBColorTable( IN HDC, IN UINT, IN UINT, OUT RGBQUAD *); WINGDIAPI UINT WINAPI SetDIBColorTable( IN HDC, IN UINT, IN UINT, IN CONST RGBQUAD *); /* Flags value for COLORADJUSTMENT */ #define CA_NEGATIVE 0x0001 #define CA_LOG_FILTER 0x0002 /* IlluminantIndex values */ #define ILLUMINANT_DEVICE_DEFAULT 0 #define ILLUMINANT_A 1 #define ILLUMINANT_B 2 #define ILLUMINANT_C 3 #define ILLUMINANT_D50 4 #define ILLUMINANT_D55 5 #define ILLUMINANT_D65 6 #define ILLUMINANT_D75 7 #define ILLUMINANT_F2 8 #define ILLUMINANT_MAX_INDEX ILLUMINANT_F2 #define ILLUMINANT_TUNGSTEN ILLUMINANT_A #define ILLUMINANT_DAYLIGHT ILLUMINANT_C #define ILLUMINANT_FLUORESCENT ILLUMINANT_F2 #define ILLUMINANT_NTSC ILLUMINANT_C /* Min and max for RedGamma, GreenGamma, BlueGamma */ #define RGB_GAMMA_MIN (WORD)02500 #define RGB_GAMMA_MAX (WORD)65000 /* Min and max for ReferenceBlack and ReferenceWhite */ #define REFERENCE_WHITE_MIN (WORD)6000 #define REFERENCE_WHITE_MAX (WORD)10000 #define REFERENCE_BLACK_MIN (WORD)0 #define REFERENCE_BLACK_MAX (WORD)4000 /* Min and max for Contrast, Brightness, Colorfulness, RedGreenTint */ #define COLOR_ADJ_MIN (SHORT)-100 #define COLOR_ADJ_MAX (SHORT)100 typedef 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; } COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT; WINGDIAPI BOOL WINAPI SetColorAdjustment( IN HDC, IN CONST COLORADJUSTMENT *); WINGDIAPI BOOL WINAPI GetColorAdjustment( IN HDC, OUT LPCOLORADJUSTMENT); WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( IN HDC); #ifdef STRICT typedef BOOL (CALLBACK* ABORTPROC)( IN HDC, IN int); #else typedef FARPROC ABORTPROC; #endif typedef struct _DOCINFOA { int cbSize; LPCSTR lpszDocName; LPCSTR lpszOutput; #if (WINVER >= 0x0400) LPCSTR lpszDatatype; DWORD fwType; #endif /* WINVER */ } DOCINFOA, *LPDOCINFOA; typedef struct _DOCINFOW { int cbSize; LPCWSTR lpszDocName; LPCWSTR lpszOutput; #if (WINVER >= 0x0400) LPCWSTR lpszDatatype; DWORD fwType; #endif /* WINVER */ } DOCINFOW, *LPDOCINFOW; #ifdef UNICODE typedef DOCINFOW DOCINFO; typedef LPDOCINFOW LPDOCINFO; #else typedef DOCINFOA DOCINFO; typedef LPDOCINFOA LPDOCINFO; #endif // UNICODE #if(WINVER >= 0x0400) #define DI_APPBANDING 0x00000001 #define DI_ROPS_READ_DESTINATION 0x00000002 #endif /* WINVER >= 0x0400 */ WINGDIAPI int WINAPI StartDocA(IN HDC, IN CONST DOCINFOA *); WINGDIAPI int WINAPI StartDocW(IN HDC, IN CONST DOCINFOW *); #ifdef UNICODE #define StartDoc StartDocW #else #define StartDoc StartDocA #endif // !UNICODE WINGDIAPI int WINAPI EndDoc(IN HDC); WINGDIAPI int WINAPI StartPage(IN HDC); WINGDIAPI int WINAPI EndPage(IN HDC); WINGDIAPI int WINAPI AbortDoc(IN HDC); WINGDIAPI int WINAPI SetAbortProc(IN HDC, IN ABORTPROC); WINGDIAPI BOOL WINAPI AbortPath(IN HDC); WINGDIAPI BOOL WINAPI ArcTo(IN HDC, IN int, IN int, IN int, IN int, IN int, IN int, IN int, IN int); WINGDIAPI BOOL WINAPI BeginPath(IN HDC); WINGDIAPI BOOL WINAPI CloseFigure(IN HDC); WINGDIAPI BOOL WINAPI EndPath(IN HDC); WINGDIAPI BOOL WINAPI FillPath(IN HDC); WINGDIAPI BOOL WINAPI FlattenPath(IN HDC); WINGDIAPI int WINAPI GetPath(IN HDC, OUT LPPOINT, OUT LPBYTE, IN int); WINGDIAPI HRGN WINAPI PathToRegion(IN HDC); WINGDIAPI BOOL WINAPI PolyDraw(IN HDC, IN CONST POINT *, IN CONST BYTE *, IN int); WINGDIAPI BOOL WINAPI SelectClipPath(IN HDC, IN int); WINGDIAPI int WINAPI SetArcDirection(IN HDC, IN int); WINGDIAPI BOOL WINAPI SetMiterLimit(IN HDC, IN FLOAT, OUT PFLOAT); WINGDIAPI BOOL WINAPI StrokeAndFillPath(IN HDC); WINGDIAPI BOOL WINAPI StrokePath(IN HDC); WINGDIAPI BOOL WINAPI WidenPath(IN HDC); WINGDIAPI HPEN WINAPI ExtCreatePen(IN DWORD, IN DWORD, IN CONST LOGBRUSH *, IN DWORD, IN CONST DWORD *); WINGDIAPI BOOL WINAPI GetMiterLimit(IN HDC, OUT PFLOAT); WINGDIAPI int WINAPI GetArcDirection(IN HDC); WINGDIAPI int WINAPI GetObjectA( IN HGDIOBJ, IN int, OUT LPVOID); WINGDIAPI int WINAPI GetObjectW( IN HGDIOBJ, IN int, OUT LPVOID); #ifdef UNICODE #define GetObject GetObjectW #else #define GetObject GetObjectA #endif // !UNICODE WINGDIAPI BOOL WINAPI MoveToEx( IN HDC, IN int, IN int, OUT LPPOINT); WINGDIAPI BOOL WINAPI TextOutA( IN HDC, IN int, IN int, IN LPCSTR, IN int); WINGDIAPI BOOL WINAPI TextOutW( IN HDC, IN int, IN int, IN LPCWSTR, IN int); #ifdef UNICODE #define TextOut TextOutW #else #define TextOut TextOutA #endif // !UNICODE WINGDIAPI BOOL WINAPI ExtTextOutA( IN HDC, IN int, IN int, IN UINT, IN CONST RECT *, IN LPCSTR, IN UINT, IN CONST INT *); WINGDIAPI BOOL WINAPI ExtTextOutW( IN HDC, IN int, IN int, IN UINT, IN CONST RECT *, IN LPCWSTR, IN UINT, IN CONST INT *); #ifdef UNICODE #define ExtTextOut ExtTextOutW #else #define ExtTextOut ExtTextOutA #endif // !UNICODE WINGDIAPI BOOL WINAPI PolyTextOutA( IN HDC, IN CONST POLYTEXTA *, IN int); WINGDIAPI BOOL WINAPI PolyTextOutW( IN HDC, IN CONST POLYTEXTW *, IN int); #ifdef UNICODE #define PolyTextOut PolyTextOutW #else #define PolyTextOut PolyTextOutA #endif // !UNICODE WINGDIAPI HRGN WINAPI CreatePolygonRgn( IN CONST POINT *, IN int, IN int); WINGDIAPI BOOL WINAPI DPtoLP( IN HDC, IN OUT LPPOINT, IN int); WINGDIAPI BOOL WINAPI LPtoDP( IN HDC, IN OUT LPPOINT, IN int); WINGDIAPI BOOL WINAPI Polygon( IN HDC, IN CONST POINT *, IN int); WINGDIAPI BOOL WINAPI Polyline( IN HDC, IN CONST POINT *, IN int); WINGDIAPI BOOL WINAPI PolyBezier( IN HDC, IN CONST POINT *, IN DWORD); WINGDIAPI BOOL WINAPI PolyBezierTo( IN HDC, IN CONST POINT *, IN DWORD); WINGDIAPI BOOL WINAPI PolylineTo( IN HDC, IN CONST POINT *, IN DWORD); WINGDIAPI BOOL WINAPI SetViewportExtEx( IN HDC, IN int, IN int, OUT LPSIZE); WINGDIAPI BOOL WINAPI SetViewportOrgEx( IN HDC, IN int, IN int, OUT LPPOINT); WINGDIAPI BOOL WINAPI SetWindowExtEx( IN HDC, IN int, IN int, OUT LPSIZE); WINGDIAPI BOOL WINAPI SetWindowOrgEx( IN HDC, IN int, IN int, OUT LPPOINT); WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( IN HDC, IN int, IN int, OUT LPPOINT); WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( IN HDC, IN int, IN int, OUT LPPOINT); WINGDIAPI BOOL WINAPI ScaleViewportExtEx( IN HDC, IN int, IN int, IN int, IN int, OUT LPSIZE); WINGDIAPI BOOL WINAPI ScaleWindowExtEx( IN HDC, IN int, IN int, IN int, IN int, OUT LPSIZE); WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( IN HBITMAP, IN int, IN int, OUT LPSIZE); WINGDIAPI BOOL WINAPI SetBrushOrgEx( IN HDC, IN int, IN int, OUT LPPOINT); WINGDIAPI int WINAPI GetTextFaceA( IN HDC, IN int, OUT LPSTR); WINGDIAPI int WINAPI GetTextFaceW( IN HDC, IN int, OUT LPWSTR); #ifdef UNICODE #define GetTextFace GetTextFaceW #else #define GetTextFace GetTextFaceA #endif // !UNICODE #define FONTMAPPER_MAX 10 typedef struct tagKERNINGPAIR { WORD wFirst; WORD wSecond; int iKernAmount; } KERNINGPAIR, *LPKERNINGPAIR; WINGDIAPI DWORD WINAPI GetKerningPairsA( IN HDC, IN DWORD, OUT LPKERNINGPAIR); WINGDIAPI DWORD WINAPI GetKerningPairsW( IN HDC, IN DWORD, OUT LPKERNINGPAIR); #ifdef UNICODE #define GetKerningPairs GetKerningPairsW #else #define GetKerningPairs GetKerningPairsA #endif // !UNICODE WINGDIAPI BOOL WINAPI GetDCOrgEx( IN HDC, OUT LPPOINT); WINGDIAPI BOOL WINAPI FixBrushOrgEx( IN HDC, IN int, IN int, IN LPPOINT); WINGDIAPI BOOL WINAPI UnrealizeObject( IN HGDIOBJ); WINGDIAPI BOOL WINAPI GdiFlush(); WINGDIAPI DWORD WINAPI GdiSetBatchLimit( IN DWORD); WINGDIAPI DWORD WINAPI GdiGetBatchLimit(); #if(WINVER >= 0x0400) #define ICM_OFF 1 #define ICM_ON 2 #define ICM_QUERY 3 #define ICM_DONE_OUTSIDEDC 4 typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM); typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM); #ifdef UNICODE #define ICMENUMPROC ICMENUMPROCW #else #define ICMENUMPROC ICMENUMPROCA #endif // !UNICODE WINGDIAPI int WINAPI SetICMMode( IN HDC, IN int); WINGDIAPI BOOL WINAPI CheckColorsInGamut( IN HDC, IN LPVOID, OUT LPVOID, IN DWORD); WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( IN HDC); WINGDIAPI BOOL WINAPI GetLogColorSpaceA( IN HCOLORSPACE, OUT LPLOGCOLORSPACEA, IN DWORD); WINGDIAPI BOOL WINAPI GetLogColorSpaceW( IN HCOLORSPACE, OUT LPLOGCOLORSPACEW, IN DWORD); #ifdef UNICODE #define GetLogColorSpace GetLogColorSpaceW #else #define GetLogColorSpace GetLogColorSpaceA #endif // !UNICODE WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( IN LPLOGCOLORSPACEA); WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( IN LPLOGCOLORSPACEW); #ifdef UNICODE #define CreateColorSpace CreateColorSpaceW #else #define CreateColorSpace CreateColorSpaceA #endif // !UNICODE WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( IN HDC, IN HCOLORSPACE); WINGDIAPI BOOL WINAPI DeleteColorSpace( IN HCOLORSPACE); WINGDIAPI BOOL WINAPI GetICMProfileA( IN HDC, IN OUT LPDWORD, OUT LPSTR); WINGDIAPI BOOL WINAPI GetICMProfileW( IN HDC, IN OUT LPDWORD, OUT LPWSTR); #ifdef UNICODE #define GetICMProfile GetICMProfileW #else #define GetICMProfile GetICMProfileA #endif // !UNICODE WINGDIAPI BOOL WINAPI SetICMProfileA( IN HDC, IN LPSTR); WINGDIAPI BOOL WINAPI SetICMProfileW( IN HDC, IN LPWSTR); #ifdef UNICODE #define SetICMProfile SetICMProfileW #else #define SetICMProfile SetICMProfileA #endif // !UNICODE WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( IN HDC, OUT LPVOID); WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( IN HDC, IN LPVOID); WINGDIAPI BOOL WINAPI ColorMatchToTarget( IN HDC, IN HDC, IN DWORD); WINGDIAPI int WINAPI EnumICMProfilesA( IN HDC, IN ICMENUMPROCA, IN LPARAM); WINGDIAPI int WINAPI EnumICMProfilesW( IN HDC, IN ICMENUMPROCW, IN LPARAM); #ifdef UNICODE #define EnumICMProfiles EnumICMProfilesW #else #define EnumICMProfiles EnumICMProfilesA #endif // !UNICODE WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( IN DWORD, IN LPSTR, IN LPSTR, IN UINT); WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( IN DWORD, IN LPWSTR, IN LPWSTR, IN UINT); #ifdef UNICODE #define UpdateICMRegKey UpdateICMRegKeyW #else #define UpdateICMRegKey UpdateICMRegKeyA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ #if (WINVER >= 0x0500) WINGDIAPI BOOL WINAPI ColorCorrectPalette( IN HDC, IN HPALETTE, IN DWORD, IN DWORD); #endif #ifndef NOMETAFILE // Enhanced metafile constants. #ifndef _MAC #define ENHMETA_SIGNATURE 0x464D4520 #else #define ENHMETA_SIGNATURE 0x20454D46 #endif // Stock object flag used in the object handle index in the enhanced // metafile records. // E.g. The object handle index (META_STOCK_OBJECT | BLACK_BRUSH) // represents the stock object BLACK_BRUSH. #define ENHMETA_STOCK_OBJECT 0x80000000 // Enhanced metafile record types. #define EMR_HEADER 1 #define EMR_POLYBEZIER 2 #define EMR_POLYGON 3 #define EMR_POLYLINE 4 #define EMR_POLYBEZIERTO 5 #define EMR_POLYLINETO 6 #define EMR_POLYPOLYLINE 7 #define EMR_POLYPOLYGON 8 #define EMR_SETWINDOWEXTEX 9 #define EMR_SETWINDOWORGEX 10 #define EMR_SETVIEWPORTEXTEX 11 #define EMR_SETVIEWPORTORGEX 12 #define EMR_SETBRUSHORGEX 13 #define EMR_EOF 14 #define EMR_SETPIXELV 15 #define EMR_SETMAPPERFLAGS 16 #define EMR_SETMAPMODE 17 #define EMR_SETBKMODE 18 #define EMR_SETPOLYFILLMODE 19 #define EMR_SETROP2 20 #define EMR_SETSTRETCHBLTMODE 21 #define EMR_SETTEXTALIGN 22 #define EMR_SETCOLORADJUSTMENT 23 #define EMR_SETTEXTCOLOR 24 #define EMR_SETBKCOLOR 25 #define EMR_OFFSETCLIPRGN 26 #define EMR_MOVETOEX 27 #define EMR_SETMETARGN 28 #define EMR_EXCLUDECLIPRECT 29 #define EMR_INTERSECTCLIPRECT 30 #define EMR_SCALEVIEWPORTEXTEX 31 #define EMR_SCALEWINDOWEXTEX 32 #define EMR_SAVEDC 33 #define EMR_RESTOREDC 34 #define EMR_SETWORLDTRANSFORM 35 #define EMR_MODIFYWORLDTRANSFORM 36 #define EMR_SELECTOBJECT 37 #define EMR_CREATEPEN 38 #define EMR_CREATEBRUSHINDIRECT 39 #define EMR_DELETEOBJECT 40 #define EMR_ANGLEARC 41 #define EMR_ELLIPSE 42 #define EMR_RECTANGLE 43 #define EMR_ROUNDRECT 44 #define EMR_ARC 45 #define EMR_CHORD 46 #define EMR_PIE 47 #define EMR_SELECTPALETTE 48 #define EMR_CREATEPALETTE 49 #define EMR_SETPALETTEENTRIES 50 #define EMR_RESIZEPALETTE 51 #define EMR_REALIZEPALETTE 52 #define EMR_EXTFLOODFILL 53 #define EMR_LINETO 54 #define EMR_ARCTO 55 #define EMR_POLYDRAW 56 #define EMR_SETARCDIRECTION 57 #define EMR_SETMITERLIMIT 58 #define EMR_BEGINPATH 59 #define EMR_ENDPATH 60 #define EMR_CLOSEFIGURE 61 #define EMR_FILLPATH 62 #define EMR_STROKEANDFILLPATH 63 #define EMR_STROKEPATH 64 #define EMR_FLATTENPATH 65 #define EMR_WIDENPATH 66 #define EMR_SELECTCLIPPATH 67 #define EMR_ABORTPATH 68 #define EMR_GDICOMMENT 70 #define EMR_FILLRGN 71 #define EMR_FRAMERGN 72 #define EMR_INVERTRGN 73 #define EMR_PAINTRGN 74 #define EMR_EXTSELECTCLIPRGN 75 #define EMR_BITBLT 76 #define EMR_STRETCHBLT 77 #define EMR_MASKBLT 78 #define EMR_PLGBLT 79 #define EMR_SETDIBITSTODEVICE 80 #define EMR_STRETCHDIBITS 81 #define EMR_EXTCREATEFONTINDIRECTW 82 #define EMR_EXTTEXTOUTA 83 #define EMR_EXTTEXTOUTW 84 #define EMR_POLYBEZIER16 85 #define EMR_POLYGON16 86 #define EMR_POLYLINE16 87 #define EMR_POLYBEZIERTO16 88 #define EMR_POLYLINETO16 89 #define EMR_POLYPOLYLINE16 90 #define EMR_POLYPOLYGON16 91 #define EMR_POLYDRAW16 92 #define EMR_CREATEMONOBRUSH 93 #define EMR_CREATEDIBPATTERNBRUSHPT 94 #define EMR_EXTCREATEPEN 95 #define EMR_POLYTEXTOUTA 96 #define EMR_POLYTEXTOUTW 97 #if(WINVER >= 0x0400) #define EMR_SETICMMODE 98 #define EMR_CREATECOLORSPACE 99 #define EMR_SETCOLORSPACE 100 #define EMR_DELETECOLORSPACE 101 #define EMR_GLSRECORD 102 #define EMR_GLSBOUNDEDRECORD 103 #define EMR_PIXELFORMAT 104 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define EMR_RESERVED_105 105 #define EMR_RESERVED_106 106 #define EMR_RESERVED_107 107 #define EMR_RESERVED_108 108 #define EMR_RESERVED_109 109 #define EMR_RESERVED_110 110 #define EMR_COLORCORRECTPALETTE 111 #define EMR_SETICMPROFILEA 112 #define EMR_SETICMPROFILEW 113 #define EMR_ALPHABLEND 114 #define EMR_SETLAYOUT 115 #define EMR_TRANSPARENTBLT 116 #define EMR_RESERVED_117 117 #define EMR_GRADIENTFILL 118 #define EMR_RESERVED_119 119 #define EMR_RESERVED_120 120 #define EMR_COLORMATCHTOTARGETW 121 #define EMR_CREATECOLORSPACEW 122 #endif /* WINVER >= 0x0500 */ #define EMR_MIN 1 #if (WINVER >= 0x0500) #define EMR_MAX 122 #elif (WINVER >= 0x0400) #define EMR_MAX 104 #else #define EMR_MAX 97 #endif // Base record type for the enhanced metafile. typedef struct tagEMR { DWORD iType; // Enhanced metafile record type DWORD nSize; // Length of the record in bytes. // This must be a multiple of 4. } EMR, *PEMR; // Base text record type for the enhanced metafile. typedef struct tagEMRTEXT { POINTL ptlReference; DWORD nChars; DWORD offString; // Offset to the string DWORD fOptions; RECTL rcl; DWORD offDx; // Offset to the inter-character spacing array. // This is always given. } EMRTEXT, *PEMRTEXT; // Record structures for the enhanced metafile. typedef struct tagABORTPATH { EMR emr; } EMRABORTPATH, *PEMRABORTPATH, EMRBEGINPATH, *PEMRBEGINPATH, EMRENDPATH, *PEMRENDPATH, EMRCLOSEFIGURE, *PEMRCLOSEFIGURE, EMRFLATTENPATH, *PEMRFLATTENPATH, EMRWIDENPATH, *PEMRWIDENPATH, EMRSETMETARGN, *PEMRSETMETARGN, EMRSAVEDC, *PEMRSAVEDC, EMRREALIZEPALETTE, *PEMRREALIZEPALETTE; typedef struct tagEMRSELECTCLIPPATH { EMR emr; DWORD iMode; } EMRSELECTCLIPPATH, *PEMRSELECTCLIPPATH, EMRSETBKMODE, *PEMRSETBKMODE, EMRSETMAPMODE, *PEMRSETMAPMODE, #if(WINVER >= 0x0500) EMRSETLAYOUT, *PEMRSETLAYOUT, #endif /* WINVER >= 0x0500 */ EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE, EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN, *PEMRSETTEXTALIGN; typedef struct tagEMRSETMITERLIMIT { EMR emr; FLOAT eMiterLimit; } EMRSETMITERLIMIT, *PEMRSETMITERLIMIT; typedef struct tagEMRRESTOREDC { EMR emr; LONG iRelative; // Specifies a relative instance } EMRRESTOREDC, *PEMRRESTOREDC; typedef struct tagEMRSETARCDIRECTION { EMR emr; DWORD iArcDirection; // Specifies the arc direction in the // advanced graphics mode. } EMRSETARCDIRECTION, *PEMRSETARCDIRECTION; typedef struct tagEMRSETMAPPERFLAGS { EMR emr; DWORD dwFlags; } EMRSETMAPPERFLAGS, *PEMRSETMAPPERFLAGS; typedef struct tagEMRSETTEXTCOLOR { EMR emr; COLORREF crColor; } EMRSETBKCOLOR, *PEMRSETBKCOLOR, EMRSETTEXTCOLOR, *PEMRSETTEXTCOLOR; typedef struct tagEMRSELECTOBJECT { EMR emr; DWORD ihObject; // Object handle index } EMRSELECTOBJECT, *PEMRSELECTOBJECT, EMRDELETEOBJECT, *PEMRDELETEOBJECT; typedef struct tagEMRSELECTPALETTE { EMR emr; DWORD ihPal; // Palette handle index, background mode only } EMRSELECTPALETTE, *PEMRSELECTPALETTE; typedef struct tagEMRRESIZEPALETTE { EMR emr; DWORD ihPal; // Palette handle index DWORD cEntries; } EMRRESIZEPALETTE, *PEMRRESIZEPALETTE; typedef struct tagEMRSETPALETTEENTRIES { EMR emr; DWORD ihPal; // Palette handle index DWORD iStart; DWORD cEntries; PALETTEENTRY aPalEntries[1];// The peFlags fields do not contain any flags } EMRSETPALETTEENTRIES, *PEMRSETPALETTEENTRIES; typedef struct tagEMRSETCOLORADJUSTMENT { EMR emr; COLORADJUSTMENT ColorAdjustment; } EMRSETCOLORADJUSTMENT, *PEMRSETCOLORADJUSTMENT; typedef struct tagEMRGDICOMMENT { EMR emr; DWORD cbData; // Size of data in bytes BYTE Data[1]; } EMRGDICOMMENT, *PEMRGDICOMMENT; typedef struct tagEMREOF { EMR emr; DWORD nPalEntries; // Number of palette entries DWORD offPalEntries; // Offset to the palette entries DWORD nSizeLast; // Same as nSize and must be the last DWORD // of the record. The palette entries, // if exist, precede this field. } EMREOF, *PEMREOF; typedef struct tagEMRLINETO { EMR emr; POINTL ptl; } EMRLINETO, *PEMRLINETO, EMRMOVETOEX, *PEMRMOVETOEX; typedef struct tagEMROFFSETCLIPRGN { EMR emr; POINTL ptlOffset; } EMROFFSETCLIPRGN, *PEMROFFSETCLIPRGN; typedef struct tagEMRFILLPATH { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units } EMRFILLPATH, *PEMRFILLPATH, EMRSTROKEANDFILLPATH, *PEMRSTROKEANDFILLPATH, EMRSTROKEPATH, *PEMRSTROKEPATH; typedef struct tagEMREXCLUDECLIPRECT { EMR emr; RECTL rclClip; } EMREXCLUDECLIPRECT, *PEMREXCLUDECLIPRECT, EMRINTERSECTCLIPRECT, *PEMRINTERSECTCLIPRECT; typedef struct tagEMRSETVIEWPORTORGEX { EMR emr; POINTL ptlOrigin; } EMRSETVIEWPORTORGEX, *PEMRSETVIEWPORTORGEX, EMRSETWINDOWORGEX, *PEMRSETWINDOWORGEX, EMRSETBRUSHORGEX, *PEMRSETBRUSHORGEX; typedef struct tagEMRSETVIEWPORTEXTEX { EMR emr; SIZEL szlExtent; } EMRSETVIEWPORTEXTEX, *PEMRSETVIEWPORTEXTEX, EMRSETWINDOWEXTEX, *PEMRSETWINDOWEXTEX; typedef struct tagEMRSCALEVIEWPORTEXTEX { EMR emr; LONG xNum; LONG xDenom; LONG yNum; LONG yDenom; } EMRSCALEVIEWPORTEXTEX, *PEMRSCALEVIEWPORTEXTEX, EMRSCALEWINDOWEXTEX, *PEMRSCALEWINDOWEXTEX; typedef struct tagEMRSETWORLDTRANSFORM { EMR emr; XFORM xform; } EMRSETWORLDTRANSFORM, *PEMRSETWORLDTRANSFORM; typedef struct tagEMRMODIFYWORLDTRANSFORM { EMR emr; XFORM xform; DWORD iMode; } EMRMODIFYWORLDTRANSFORM, *PEMRMODIFYWORLDTRANSFORM; typedef struct tagEMRSETPIXELV { EMR emr; POINTL ptlPixel; COLORREF crColor; } EMRSETPIXELV, *PEMRSETPIXELV; typedef struct tagEMREXTFLOODFILL { EMR emr; POINTL ptlStart; COLORREF crColor; DWORD iMode; } EMREXTFLOODFILL, *PEMREXTFLOODFILL; typedef struct tagEMRELLIPSE { EMR emr; RECTL rclBox; // Inclusive-inclusive bounding rectangle } EMRELLIPSE, *PEMRELLIPSE, EMRRECTANGLE, *PEMRRECTANGLE; typedef struct tagEMRROUNDRECT { EMR emr; RECTL rclBox; // Inclusive-inclusive bounding rectangle SIZEL szlCorner; } EMRROUNDRECT, *PEMRROUNDRECT; typedef struct tagEMRARC { EMR emr; RECTL rclBox; // Inclusive-inclusive bounding rectangle POINTL ptlStart; POINTL ptlEnd; } EMRARC, *PEMRARC, EMRARCTO, *PEMRARCTO, EMRCHORD, *PEMRCHORD, EMRPIE, *PEMRPIE; typedef struct tagEMRANGLEARC { EMR emr; POINTL ptlCenter; DWORD nRadius; FLOAT eStartAngle; FLOAT eSweepAngle; } EMRANGLEARC, *PEMRANGLEARC; typedef struct tagEMRPOLYLINE { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cptl; POINTL aptl[1]; } EMRPOLYLINE, *PEMRPOLYLINE, EMRPOLYBEZIER, *PEMRPOLYBEZIER, EMRPOLYGON, *PEMRPOLYGON, EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO, EMRPOLYLINETO, *PEMRPOLYLINETO; typedef struct tagEMRPOLYLINE16 { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cpts; POINTS apts[1]; } EMRPOLYLINE16, *PEMRPOLYLINE16, EMRPOLYBEZIER16, *PEMRPOLYBEZIER16, EMRPOLYGON16, *PEMRPOLYGON16, EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16, EMRPOLYLINETO16, *PEMRPOLYLINETO16; typedef struct tagEMRPOLYDRAW { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cptl; // Number of points POINTL aptl[1]; // Array of points BYTE abTypes[1]; // Array of point types } EMRPOLYDRAW, *PEMRPOLYDRAW; typedef struct tagEMRPOLYDRAW16 { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cpts; // Number of points POINTS apts[1]; // Array of points BYTE abTypes[1]; // Array of point types } EMRPOLYDRAW16, *PEMRPOLYDRAW16; typedef struct tagEMRPOLYPOLYLINE { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD nPolys; // Number of polys DWORD cptl; // Total number of points in all polys DWORD aPolyCounts[1]; // Array of point counts for each poly POINTL aptl[1]; // Array of points } EMRPOLYPOLYLINE, *PEMRPOLYPOLYLINE, EMRPOLYPOLYGON, *PEMRPOLYPOLYGON; typedef struct tagEMRPOLYPOLYLINE16 { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD nPolys; // Number of polys DWORD cpts; // Total number of points in all polys DWORD aPolyCounts[1]; // Array of point counts for each poly POINTS apts[1]; // Array of points } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16, EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16; typedef struct tagEMRINVERTRGN { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cbRgnData; // Size of region data in bytes BYTE RgnData[1]; } EMRINVERTRGN, *PEMRINVERTRGN, EMRPAINTRGN, *PEMRPAINTRGN; typedef struct tagEMRFILLRGN { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cbRgnData; // Size of region data in bytes DWORD ihBrush; // Brush handle index BYTE RgnData[1]; } EMRFILLRGN, *PEMRFILLRGN; typedef struct tagEMRFRAMERGN { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD cbRgnData; // Size of region data in bytes DWORD ihBrush; // Brush handle index SIZEL szlStroke; BYTE RgnData[1]; } EMRFRAMERGN, *PEMRFRAMERGN; typedef struct tagEMREXTSELECTCLIPRGN { EMR emr; DWORD cbRgnData; // Size of region data in bytes DWORD iMode; BYTE RgnData[1]; } EMREXTSELECTCLIPRGN, *PEMREXTSELECTCLIPRGN; typedef struct tagEMREXTTEXTOUTA { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD iGraphicsMode; // Current graphics mode FLOAT exScale; // X and Y scales from Page units to .01mm units FLOAT eyScale; // if graphics mode is GM_COMPATIBLE. EMRTEXT emrtext; // This is followed by the string and spacing // array } EMREXTTEXTOUTA, *PEMREXTTEXTOUTA, EMREXTTEXTOUTW, *PEMREXTTEXTOUTW; typedef struct tagEMRPOLYTEXTOUTA { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD iGraphicsMode; // Current graphics mode FLOAT exScale; // X and Y scales from Page units to .01mm units FLOAT eyScale; // if graphics mode is GM_COMPATIBLE. LONG cStrings; EMRTEXT aemrtext[1]; // Array of EMRTEXT structures. This is // followed by the strings and spacing arrays. } EMRPOLYTEXTOUTA, *PEMRPOLYTEXTOUTA, EMRPOLYTEXTOUTW, *PEMRPOLYTEXTOUTW; typedef struct tagEMRBITBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits } EMRBITBLT, *PEMRBITBLT; typedef struct tagEMRSTRETCHBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG cxSrc; LONG cySrc; } EMRSTRETCHBLT, *PEMRSTRETCHBLT; typedef struct tagEMRMASKBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG xMask; LONG yMask; DWORD iUsageMask; // Mask bitmap info color table usage DWORD offBmiMask; // Offset to the mask BITMAPINFO structure if any DWORD cbBmiMask; // Size of the mask BITMAPINFO structure if any DWORD offBitsMask; // Offset to the mask bitmap bits if any DWORD cbBitsMask; // Size of the mask bitmap bits if any } EMRMASKBLT, *PEMRMASKBLT; typedef struct tagEMRPLGBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units POINTL aptlDest[3]; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG xMask; LONG yMask; DWORD iUsageMask; // Mask bitmap info color table usage DWORD offBmiMask; // Offset to the mask BITMAPINFO structure if any DWORD cbBmiMask; // Size of the mask BITMAPINFO structure if any DWORD offBitsMask; // Offset to the mask bitmap bits if any DWORD cbBitsMask; // Size of the mask bitmap bits if any } EMRPLGBLT, *PEMRPLGBLT; typedef struct tagEMRSETDIBITSTODEVICE { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits DWORD iUsageSrc; // Source bitmap info color table usage DWORD iStartScan; DWORD cScans; } EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE; typedef struct tagEMRSTRETCHDIBITS { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG xSrc; LONG ySrc; LONG cxSrc; LONG cySrc; DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits DWORD iUsageSrc; // Source bitmap info color table usage DWORD dwRop; LONG cxDest; LONG cyDest; } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS; typedef struct tagEMREXTCREATEFONTINDIRECTW { EMR emr; DWORD ihFont; // Font handle index EXTLOGFONTW elfw; } EMREXTCREATEFONTINDIRECTW, *PEMREXTCREATEFONTINDIRECTW; typedef struct tagEMRCREATEPALETTE { EMR emr; DWORD ihPal; // Palette handle index LOGPALETTE lgpl; // The peFlags fields in the palette entries // do not contain any flags } EMRCREATEPALETTE, *PEMRCREATEPALETTE; typedef struct tagEMRCREATEPEN { EMR emr; DWORD ihPen; // Pen handle index LOGPEN lopn; } EMRCREATEPEN, *PEMRCREATEPEN; typedef struct tagEMREXTCREATEPEN { EMR emr; DWORD ihPen; // Pen handle index DWORD offBmi; // Offset to the BITMAPINFO structure if any DWORD cbBmi; // Size of the BITMAPINFO structure if any // The bitmap info is followed by the bitmap // bits to form a packed DIB. DWORD offBits; // Offset to the brush bitmap bits if any DWORD cbBits; // Size of the brush bitmap bits if any EXTLOGPEN elp; // The extended pen with the style array. } EMREXTCREATEPEN, *PEMREXTCREATEPEN; typedef struct tagEMRCREATEBRUSHINDIRECT { EMR emr; DWORD ihBrush; // Brush handle index LOGBRUSH32 lb; // The style must be BS_SOLID, BS_HOLLOW, // BS_NULL or BS_HATCHED. } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT; typedef struct tagEMRCREATEMONOBRUSH { EMR emr; DWORD ihBrush; // Brush handle index DWORD iUsage; // Bitmap info color table usage DWORD offBmi; // Offset to the BITMAPINFO structure DWORD cbBmi; // Size of the BITMAPINFO structure DWORD offBits; // Offset to the bitmap bits DWORD cbBits; // Size of the bitmap bits } EMRCREATEMONOBRUSH, *PEMRCREATEMONOBRUSH; typedef struct tagEMRCREATEDIBPATTERNBRUSHPT { EMR emr; DWORD ihBrush; // Brush handle index DWORD iUsage; // Bitmap info color table usage DWORD offBmi; // Offset to the BITMAPINFO structure DWORD cbBmi; // Size of the BITMAPINFO structure // The bitmap info is followed by the bitmap // bits to form a packed DIB. DWORD offBits; // Offset to the bitmap bits DWORD cbBits; // Size of the bitmap bits } EMRCREATEDIBPATTERNBRUSHPT, *PEMRCREATEDIBPATTERNBRUSHPT; typedef struct tagEMRFORMAT { DWORD dSignature; // Format signature, e.g. ENHMETA_SIGNATURE. DWORD nVersion; // Format version number. DWORD cbData; // Size of data in bytes. DWORD offData; // Offset to data from GDICOMMENT_IDENTIFIER. // It must begin at a DWORD offset. } EMRFORMAT, *PEMRFORMAT; #if(WINVER >= 0x0400) typedef struct tagEMRGLSRECORD { EMR emr; DWORD cbData; // Size of data in bytes BYTE Data[1]; } EMRGLSRECORD, *PEMRGLSRECORD; typedef struct tagEMRGLSBOUNDEDRECORD { EMR emr; RECTL rclBounds; // Bounds in recording coordinates DWORD cbData; // Size of data in bytes BYTE Data[1]; } EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD; typedef struct tagEMRPIXELFORMAT { EMR emr; PIXELFORMATDESCRIPTOR pfd; } EMRPIXELFORMAT, *PEMRPIXELFORMAT; typedef struct tagEMRCREATECOLORSPACE { EMR emr; DWORD ihCS; // ColorSpace handle index LOGCOLORSPACEA lcs; // Ansi version of LOGCOLORSPACE } EMRCREATECOLORSPACE, *PEMRCREATECOLORSPACE; typedef struct tagEMRSETCOLORSPACE { EMR emr; DWORD ihCS; // ColorSpace handle index } EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE, EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE; #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) typedef struct tagEMREXTESCAPE { EMR emr; INT iEscape; // Escape code INT cbEscData; // Size of escape data BYTE EscData[1]; // Escape data } EMREXTESCAPE, *PEMREXTESCAPE, EMRDRAWESCAPE, *PEMRDRAWESCAPE; typedef struct tagEMRNAMEDESCAPE { EMR emr; INT iEscape; // Escape code INT cbDriver; // Size of driver name INT cbEscData; // Size of escape data BYTE EscData[1]; // Driver name and Escape data } EMRNAMEDESCAPE, *PEMRNAMEDESCAPE; #define SETICMPROFILE_EMBEDED 0x00000001 typedef struct tagEMRSETICMPROFILE { EMR emr; DWORD dwFlags; // flags DWORD cbName; // Size of desired profile name DWORD cbData; // Size of raw profile data if attached BYTE Data[1]; // Array size is cbName + cbData } EMRSETICMPROFILE, *PEMRSETICMPROFILE, EMRSETICMPROFILEA, *PEMRSETICMPROFILEA, EMRSETICMPROFILEW, *PEMRSETICMPROFILEW; #define CREATECOLORSPACE_EMBEDED 0x00000001 typedef struct tagEMRCREATECOLORSPACEW { EMR emr; DWORD ihCS; // ColorSpace handle index LOGCOLORSPACEW lcs; // Unicode version of logical color space structure DWORD dwFlags; // flags DWORD cbData; // size of raw source profile data if attached BYTE Data[1]; // Array size is cbData } EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW; #define COLORMATCHTOTARGET_EMBEDED 0x00000001 typedef struct tagCOLORMATCHTOTARGET { EMR emr; DWORD dwAction; // CS_ENABLE, CS_DISABLE or CS_DELETE_TRANSFORM DWORD dwFlags; // flags DWORD cbName; // Size of desired target profile name DWORD cbData; // Size of raw target profile data if attached BYTE Data[1]; // Array size is cbName + cbData } EMRCOLORMATCHTOTARGET, *PEMRCOLORMATCHTOTARGET; typedef struct tagCOLORCORRECTPALETTE { EMR emr; DWORD ihPalette; // Palette handle index DWORD nFirstEntry; // Index of first entry to correct DWORD nPalEntries; // Number of palette entries to correct DWORD nReserved; // Reserved } EMRCOLORCORRECTPALETTE, *PEMRCOLORCORRECTPALETTE; typedef struct tagEMRALPHABLEND { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG cxSrc; LONG cySrc; } EMRALPHABLEND, *PEMRALPHABLEND; typedef struct tagEMRGRADIENTFILL { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units DWORD nVer; DWORD nTri; ULONG ulMode; TRIVERTEX Ver[1]; }EMRGRADIENTFILL,*PEMRGRADIENTFILL; typedef struct tagEMRTRANSPARENTBLT { EMR emr; RECTL rclBounds; // Inclusive-inclusive bounds in device units LONG xDest; LONG yDest; LONG cxDest; LONG cyDest; DWORD dwRop; LONG xSrc; LONG ySrc; XFORM xformSrc; // Source DC transform COLORREF crBkColorSrc; // Source DC BkColor in RGB DWORD iUsageSrc; // Source bitmap info color table usage // (DIB_RGB_COLORS) DWORD offBmiSrc; // Offset to the source BITMAPINFO structure DWORD cbBmiSrc; // Size of the source BITMAPINFO structure DWORD offBitsSrc; // Offset to the source bitmap bits DWORD cbBitsSrc; // Size of the source bitmap bits LONG cxSrc; LONG cySrc; } EMRTRANSPARENTBLT, *PEMRTRANSPARENTBLT; #endif /* WINVER >= 0x0500 */ #define GDICOMMENT_IDENTIFIER 0x43494447 #define GDICOMMENT_WINDOWS_METAFILE 0x80000001 #define GDICOMMENT_BEGINGROUP 0x00000002 #define GDICOMMENT_ENDGROUP 0x00000003 #define GDICOMMENT_MULTIFORMATS 0x40000004 #define EPS_SIGNATURE 0x46535045 #define GDICOMMENT_UNICODE_STRING 0x00000040 #define GDICOMMENT_UNICODE_END 0x00000080 #endif /* NOMETAFILE */ // OpenGL wgl prototypes WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC, HGLRC, UINT); WINGDIAPI HGLRC WINAPI wglCreateContext(HDC); WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC, int); WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC); WINGDIAPI HGLRC WINAPI wglGetCurrentContext(VOID); WINGDIAPI HDC WINAPI wglGetCurrentDC(VOID); WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR); WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC, HGLRC); WINGDIAPI BOOL WINAPI wglShareLists(HGLRC, HGLRC); WINGDIAPI BOOL WINAPI wglUseFontBitmapsA(HDC, DWORD, DWORD, DWORD); WINGDIAPI BOOL WINAPI wglUseFontBitmapsW(HDC, DWORD, DWORD, DWORD); #ifdef UNICODE #define wglUseFontBitmaps wglUseFontBitmapsW #else #define wglUseFontBitmaps wglUseFontBitmapsA #endif // !UNICODE WINGDIAPI BOOL WINAPI SwapBuffers(HDC); typedef struct _POINTFLOAT { FLOAT x; FLOAT y; } POINTFLOAT, *PPOINTFLOAT; typedef struct _GLYPHMETRICSFLOAT { FLOAT gmfBlackBoxX; FLOAT gmfBlackBoxY; POINTFLOAT gmfptGlyphOrigin; FLOAT gmfCellIncX; FLOAT gmfCellIncY; } GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, FAR *LPGLYPHMETRICSFLOAT; #define WGL_FONT_LINES 0 #define WGL_FONT_POLYGONS 1 WINGDIAPI BOOL WINAPI wglUseFontOutlinesA(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); WINGDIAPI BOOL WINAPI wglUseFontOutlinesW(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT); #ifdef UNICODE #define wglUseFontOutlines wglUseFontOutlinesW #else #define wglUseFontOutlines wglUseFontOutlinesA #endif // !UNICODE /* Layer plane descriptor */ typedef struct tagLAYERPLANEDESCRIPTOR { // lpd 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; } LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, FAR *LPLAYERPLANEDESCRIPTOR; /* LAYERPLANEDESCRIPTOR flags */ #define LPD_DOUBLEBUFFER 0x00000001 #define LPD_STEREO 0x00000002 #define LPD_SUPPORT_GDI 0x00000010 #define LPD_SUPPORT_OPENGL 0x00000020 #define LPD_SHARE_DEPTH 0x00000040 #define LPD_SHARE_STENCIL 0x00000080 #define LPD_SHARE_ACCUM 0x00000100 #define LPD_SWAP_EXCHANGE 0x00000200 #define LPD_SWAP_COPY 0x00000400 #define LPD_TRANSPARENT 0x00001000 #define LPD_TYPE_RGBA 0 #define LPD_TYPE_COLORINDEX 1 /* wglSwapLayerBuffers flags */ #define WGL_SWAP_MAIN_PLANE 0x00000001 #define WGL_SWAP_OVERLAY1 0x00000002 #define WGL_SWAP_OVERLAY2 0x00000004 #define WGL_SWAP_OVERLAY3 0x00000008 #define WGL_SWAP_OVERLAY4 0x00000010 #define WGL_SWAP_OVERLAY5 0x00000020 #define WGL_SWAP_OVERLAY6 0x00000040 #define WGL_SWAP_OVERLAY7 0x00000080 #define WGL_SWAP_OVERLAY8 0x00000100 #define WGL_SWAP_OVERLAY9 0x00000200 #define WGL_SWAP_OVERLAY10 0x00000400 #define WGL_SWAP_OVERLAY11 0x00000800 #define WGL_SWAP_OVERLAY12 0x00001000 #define WGL_SWAP_OVERLAY13 0x00002000 #define WGL_SWAP_OVERLAY14 0x00004000 #define WGL_SWAP_OVERLAY15 0x00008000 #define WGL_SWAP_UNDERLAY1 0x00010000 #define WGL_SWAP_UNDERLAY2 0x00020000 #define WGL_SWAP_UNDERLAY3 0x00040000 #define WGL_SWAP_UNDERLAY4 0x00080000 #define WGL_SWAP_UNDERLAY5 0x00100000 #define WGL_SWAP_UNDERLAY6 0x00200000 #define WGL_SWAP_UNDERLAY7 0x00400000 #define WGL_SWAP_UNDERLAY8 0x00800000 #define WGL_SWAP_UNDERLAY9 0x01000000 #define WGL_SWAP_UNDERLAY10 0x02000000 #define WGL_SWAP_UNDERLAY11 0x04000000 #define WGL_SWAP_UNDERLAY12 0x08000000 #define WGL_SWAP_UNDERLAY13 0x10000000 #define WGL_SWAP_UNDERLAY14 0x20000000 #define WGL_SWAP_UNDERLAY15 0x40000000 WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR); WINGDIAPI int WINAPI wglSetLayerPaletteEntries(HDC, int, int, int, CONST COLORREF *); WINGDIAPI int WINAPI wglGetLayerPaletteEntries(HDC, int, int, int, COLORREF *); WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC, int, BOOL); WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC, UINT); #if (WINVER >= 0x0500) typedef struct _WGLSWAP { HDC hdc; UINT uiFlags; } WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP; #define WGL_SWAPMULTIPLE_MAX 16 WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *); #endif // (WINVER >= 0x0500) #endif /* NOGDI */ #ifdef __cplusplus } #endif #endif /* _WINGDI_ */ ================================================ FILE: Bin/i386/APILib/WinNT.h ================================================ /*++ BUILD Version: 0081 Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: winnt.h Abstract: This module defines the 32-Bit Windows types and constants that are defined by NT, but exposed through the Win32 API. Revision History: --*/ #ifndef _WINNT_ #define _WINNT_ #ifdef __cplusplus extern "C" { #endif #include #define ANYSIZE_ARRAY 1 #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && defined(ENABLE_RESTRICTED) #define RESTRICTED_POINTER __restrict #else #define RESTRICTED_POINTER #endif #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64) #define UNALIGNED __unaligned #if defined(_WIN64) #define UNALIGNED64 __unaligned #else #define UNALIGNED64 #endif #else #define UNALIGNED #define UNALIGNED64 #endif #if defined(_WIN64) || defined(_M_ALPHA) #define MAX_NATURAL_ALIGNMENT sizeof(ULONGLONG) #define MEMORY_ALLOCATION_ALIGNMENT 16 #else #define MAX_NATURAL_ALIGNMENT sizeof(DWORD) #define MEMORY_ALLOCATION_ALIGNMENT 8 #endif // // TYPE_ALIGNMENT will return the alignment requirements of a given type for // the current platform. // #ifdef __cplusplus #if _MSC_VER >= 1300 #define TYPE_ALIGNMENT( t ) __alignof(t) #endif #else #define TYPE_ALIGNMENT( t ) \ FIELD_OFFSET( struct { char x; t test; }, test ) #endif #if defined(_WIN64) #define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD ) ? \ TYPE_ALIGNMENT( _s ) : TYPE_ALIGNMENT( DWORD )) #define PROBE_ALIGNMENT32( _s ) TYPE_ALIGNMENT( DWORD ) #else #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) #endif // // C_ASSERT() can be used to perform many compile-time assertions: // type sizes, field offsets, etc. // // An assertion failure results in error C2118: negative subscript. // #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)) #define POINTER_64 __ptr64 typedef unsigned __int64 POINTER_64_INT; #if defined(_WIN64) #define POINTER_32 __ptr32 #else #define POINTER_32 #endif #else #if defined(_MAC) && defined(_MAC_INT_64) #define POINTER_64 __ptr64 typedef unsigned __int64 POINTER_64_INT; #else #define POINTER_64 typedef unsigned long POINTER_64_INT; #endif #define POINTER_32 #endif #if defined(_IA64_) || defined(_AMD64_) #define FIRMWARE_PTR #else #define FIRMWARE_PTR POINTER_32 #endif #include #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(MIDL_PASS) #define DECLSPEC_IMPORT __declspec(dllimport) #else #define DECLSPEC_IMPORT #endif #ifndef DECLSPEC_NORETURN #if (_MSC_VER >= 1200) && !defined(MIDL_PASS) #define DECLSPEC_NORETURN __declspec(noreturn) #else #define DECLSPEC_NORETURN #endif #endif #ifndef DECLSPEC_ALIGN #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) #define DECLSPEC_ALIGN(x) __declspec(align(x)) #else #define DECLSPEC_ALIGN(x) #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 #define DECLSPEC_UUID(x) #endif #endif #ifndef DECLSPEC_NOVTABLE #if (_MSC_VER >= 1100) && defined(__cplusplus) #define DECLSPEC_NOVTABLE __declspec(novtable) #else #define DECLSPEC_NOVTABLE #endif #endif #ifndef DECLSPEC_SELECTANY #if (_MSC_VER >= 1100) #define DECLSPEC_SELECTANY __declspec(selectany) #else #define DECLSPEC_SELECTANY #endif #endif #ifndef NOP_FUNCTION #if (_MSC_VER >= 1210) #define NOP_FUNCTION __noop #else #define NOP_FUNCTION (void)0 #endif #endif #ifndef DECLSPEC_ADDRSAFE #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) #define DECLSPEC_ADDRSAFE __declspec(address_safe) #else #define DECLSPEC_ADDRSAFE #endif #endif #ifndef FORCEINLINE #if (_MSC_VER >= 1200) #define FORCEINLINE __forceinline #else #define FORCEINLINE __inline #endif #endif #ifndef DECLSPEC_DEPRECATED #if (_MSC_VER >= 1300) && !defined(MIDL_PASS) #define DECLSPEC_DEPRECATED __declspec(deprecated) #define DEPRECATE_SUPPORTED #else #define DECLSPEC_DEPRECATED #undef DEPRECATE_SUPPORTED #endif #endif #ifdef DEPRECATE_DDK_FUNCTIONS #ifdef _NTDDK_ #define DECLSPEC_DEPRECATED_DDK DECLSPEC_DEPRECATED #ifdef DEPRECATE_SUPPORTED #define PRAGMA_DEPRECATED_DDK 1 #endif #else #define DECLSPEC_DEPRECATED_DDK #define PRAGMA_DEPRECATED_DDK 1 #endif #else #define DECLSPEC_DEPRECATED_DDK #define PRAGMA_DEPRECATED_DDK 0 #endif // // Void // typedef void *PVOID; typedef void * POINTER_64 PVOID64; #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64) #define NTAPI __stdcall #else #define _cdecl #define NTAPI #endif // // Define API decoration for direct importing system DLL references. // #if !defined(_NTSYSTEM_) #define NTSYSAPI DECLSPEC_IMPORT #define NTSYSCALLAPI DECLSPEC_IMPORT #else #define NTSYSAPI #if defined(_NTDLLBUILD_) #define NTSYSCALLAPI #else #define NTSYSCALLAPI DECLSPEC_ADDRSAFE #endif #endif // // Basics // #ifndef VOID #define VOID void typedef char CHAR; typedef short SHORT; typedef long LONG; #endif // // UNICODE (Wide Character) types // #ifndef _MAC typedef wchar_t WCHAR; // wc, 16-bit UNICODE character #else // some Macintosh compilers don't define wchar_t in a convenient location, or define it as a char typedef unsigned short WCHAR; // wc, 16-bit UNICODE character #endif typedef WCHAR *PWCHAR; typedef WCHAR *LPWCH, *PWCH; typedef CONST WCHAR *LPCWCH, *PCWCH; typedef WCHAR *NWPSTR; typedef WCHAR *LPWSTR, *PWSTR; typedef WCHAR UNALIGNED *LPUWSTR, *PUWSTR; typedef CONST WCHAR *LPCWSTR, *PCWSTR; typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR; // // ANSI (Multi-byte Character) types // typedef CHAR *PCHAR; typedef CHAR *LPCH, *PCH; typedef CONST CHAR *LPCCH, *PCCH; typedef CHAR *NPSTR; typedef CHAR *LPSTR, *PSTR; typedef CONST CHAR *LPCSTR, *PCSTR; // // Neutral ANSI/UNICODE types and macros // #ifdef UNICODE // r_winnt #ifndef _TCHAR_DEFINED typedef WCHAR TCHAR, *PTCHAR; typedef WCHAR TBYTE , *PTBYTE ; #define _TCHAR_DEFINED #endif /* !_TCHAR_DEFINED */ typedef LPWSTR LPTCH, PTCH; typedef LPWSTR PTSTR, LPTSTR; typedef LPCWSTR PCTSTR, LPCTSTR; typedef LPUWSTR PUTSTR, LPUTSTR; typedef LPCUWSTR PCUTSTR, LPCUTSTR; typedef LPWSTR LP; #define __TEXT(quote) L##quote // r_winnt #else /* UNICODE */ // r_winnt #ifndef _TCHAR_DEFINED typedef char TCHAR, *PTCHAR; typedef unsigned char TBYTE , *PTBYTE ; #define _TCHAR_DEFINED #endif /* !_TCHAR_DEFINED */ typedef LPSTR LPTCH, PTCH; typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR; typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR; #define __TEXT(quote) quote // r_winnt #endif /* UNICODE */ // r_winnt #define TEXT(quote) __TEXT(quote) // r_winnt typedef SHORT *PSHORT; typedef LONG *PLONG; #ifdef STRICT typedef void *HANDLE; #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name #else typedef PVOID HANDLE; #define DECLARE_HANDLE(name) typedef HANDLE name #endif typedef HANDLE *PHANDLE; // // Flag (bit) fields // typedef BYTE FCHAR; typedef WORD FSHORT; typedef DWORD FLONG; // Component Object Model defines, and macros #ifndef _HRESULT_DEFINED #define _HRESULT_DEFINED typedef LONG HRESULT; #endif // !_HRESULT_DEFINED #ifdef __cplusplus #define EXTERN_C extern "C" #else #define EXTERN_C extern #endif #if defined(_WIN32) || defined(_MPPC_) // Win32 doesn't support __export #ifdef _68K_ #define STDMETHODCALLTYPE __cdecl #else #define STDMETHODCALLTYPE __stdcall #endif #define STDMETHODVCALLTYPE __cdecl #define STDAPICALLTYPE __stdcall #define STDAPIVCALLTYPE __cdecl #else #define STDMETHODCALLTYPE __export __stdcall #define STDMETHODVCALLTYPE __export __cdecl #define STDAPICALLTYPE __export __stdcall #define STDAPIVCALLTYPE __export __cdecl #endif #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE #define STDMETHODIMP HRESULT STDMETHODCALLTYPE #define STDMETHODIMP_(type) type STDMETHODCALLTYPE // The 'V' versions allow Variable Argument lists. #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE typedef char CCHAR; typedef DWORD LCID; typedef PDWORD PLCID; typedef WORD LANGID; #define APPLICATION_ERROR_MASK 0x20000000 #define ERROR_SEVERITY_SUCCESS 0x00000000 #define ERROR_SEVERITY_INFORMATIONAL 0x40000000 #define ERROR_SEVERITY_WARNING 0x80000000 #define ERROR_SEVERITY_ERROR 0xC0000000 // // _M_IX86 included so that EM CONTEXT structure compiles with // x86 programs. *** TBD should this be for all architectures? // // // 16 byte aligned type for 128 bit floats // // // For we define a 128 bit structure and use __declspec(align(16)) pragma to // align to 128 bits. // #if defined(_M_IA64) && !defined(MIDL_PASS) __declspec(align(16)) #endif typedef struct _FLOAT128 { __int64 LowPart; __int64 HighPart; } FLOAT128; typedef FLOAT128 *PFLOAT128; // // __int64 is only supported by 2.0 and later midl. // __midl is set by the 2.0 midl and not by 1.0 midl. // #define _ULONGLONG_ #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64))) typedef __int64 LONGLONG; typedef unsigned __int64 ULONGLONG; #define MAXLONGLONG (0x7fffffffffffffff) #else #if defined(_MAC) && defined(_MAC_INT_64) typedef __int64 LONGLONG; typedef unsigned __int64 ULONGLONG; #define MAXLONGLONG (0x7fffffffffffffff) #else typedef double LONGLONG; typedef double ULONGLONG; #endif //_MAC and int64 #endif typedef LONGLONG *PLONGLONG; typedef ULONGLONG *PULONGLONG; // Update Sequence Number typedef LONGLONG USN; #if defined(MIDL_PASS) typedef struct _LARGE_INTEGER { #else // MIDL_PASS typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; }; struct { DWORD LowPart; LONG HighPart; } u; #endif //MIDL_PASS LONGLONG QuadPart; } LARGE_INTEGER; typedef LARGE_INTEGER *PLARGE_INTEGER; #if defined(MIDL_PASS) typedef struct _ULARGE_INTEGER { #else // MIDL_PASS typedef union _ULARGE_INTEGER { struct { DWORD LowPart; DWORD HighPart; }; struct { DWORD LowPart; DWORD HighPart; } u; #endif //MIDL_PASS ULONGLONG QuadPart; } ULARGE_INTEGER; typedef ULARGE_INTEGER *PULARGE_INTEGER; // end_ntminiport end_ntndis end_ntminitape // // Locally Unique Identifier // typedef struct _LUID { DWORD LowPart; LONG HighPart; } LUID, *PLUID; #define _DWORDLONG_ typedef ULONGLONG DWORDLONG; typedef DWORDLONG *PDWORDLONG; // // Define operations to logically shift an int64 by 0..31 bits and to multiply // 32-bits by 32-bits to form a 64-bit product. // #if defined(MIDL_PASS) || defined(RC_INVOKED) // // Midl does not understand inline assembler. Therefore, the Rtl functions // are used for shifts by 0.31 and multiplies of 32-bits times 32-bits to // form a 64-bit product. // #define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b))) #define UInt32x32To64(a, b) ((ULONGLONG)((DWORD)(a)) * (ULONGLONG)((DWORD)(b))) #define Int64ShllMod32(a, b) ((ULONGLONG)(a) << (b)) #define Int64ShraMod32(a, b) ((LONGLONG)(a) >> (b)) #define Int64ShrlMod32(a, b) ((ULONGLONG)(a) >> (b)) #elif defined(_M_MRX000) // // MIPS uses intrinsic functions to perform shifts by 0..31 and multiplies of // 32-bits times 32-bits to 64-bits. // #define Int32x32To64 __emul #define UInt32x32To64 __emulu #define Int64ShllMod32 __ll_lshift #define Int64ShraMod32 __ll_rshift #define Int64ShrlMod32 __ull_rshift #if defined (__cplusplus) extern "C" { #endif LONGLONG NTAPI Int32x32To64 ( LONG Multiplier, LONG Multiplicand ); ULONGLONG NTAPI UInt32x32To64 ( DWORD Multiplier, DWORD Multiplicand ); ULONGLONG NTAPI Int64ShllMod32 ( ULONGLONG Value, DWORD ShiftCount ); LONGLONG NTAPI Int64ShraMod32 ( LONGLONG Value, DWORD ShiftCount ); ULONGLONG NTAPI Int64ShrlMod32 ( ULONGLONG Value, DWORD ShiftCount ); #if defined (__cplusplus) }; #endif #pragma intrinsic(__emul) #pragma intrinsic(__emulu) #pragma intrinsic(__ll_lshift) #pragma intrinsic(__ll_rshift) #pragma intrinsic(__ull_rshift) #elif defined(_M_IX86) // // The x86 C compiler understands inline assembler. Therefore, inline functions // that employ inline assembler are used for shifts of 0..31. The multiplies // rely on the compiler recognizing the cast of the multiplicand to int64 to // generate the optimal code inline. // #define Int32x32To64( a, b ) (LONGLONG)((LONGLONG)(LONG)(a) * (LONG)(b)) #define UInt32x32To64( a, b ) (ULONGLONG)((ULONGLONG)(DWORD)(a) * (DWORD)(b)) ULONGLONG NTAPI Int64ShllMod32 ( ULONGLONG Value, DWORD ShiftCount ); LONGLONG NTAPI Int64ShraMod32 ( LONGLONG Value, DWORD ShiftCount ); ULONGLONG NTAPI Int64ShrlMod32 ( ULONGLONG Value, DWORD ShiftCount ); #if _MSC_VER >= 1200 #pragma warning(push) #endif #pragma warning(disable:4035) // re-enable below __inline ULONGLONG NTAPI Int64ShllMod32 ( ULONGLONG Value, DWORD ShiftCount ) { __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shld edx, eax, cl shl eax, cl } } __inline LONGLONG NTAPI Int64ShraMod32 ( LONGLONG Value, DWORD ShiftCount ) { __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl sar edx, cl } } __inline ULONGLONG NTAPI Int64ShrlMod32 ( ULONGLONG Value, DWORD ShiftCount ) { __asm { mov ecx, ShiftCount mov eax, dword ptr [Value] mov edx, dword ptr [Value+4] shrd eax, edx, cl shr edx, cl } } #if _MSC_VER >= 1200 #pragma warning(pop) #else #pragma warning(default:4035) #endif #elif defined(_M_ALPHA) // // Alpha has native 64-bit operations that are just as fast as their 32-bit // counter parts. Therefore, the int64 data type is used directly to form // shifts of 0..31 and multiplies of 32-bits times 32-bits to form a 64-bit // product. // #define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b))) #define UInt32x32To64(a, b) ((ULONGLONG)((DWORD)(a)) * (ULONGLONG)((DWORD)(b))) #define Int64ShllMod32(a, b) ((ULONGLONG)(a) << (b)) #define Int64ShraMod32(a, b) ((LONGLONG)(a) >> (b)) #define Int64ShrlMod32(a, b) ((ULONGLONG)(a) >> (b)) #elif defined(_M_PPC) #define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b))) #define UInt32x32To64(a, b) ((ULONGLONG)((DWORD)(a)) * (ULONGLONG)((DWORD)(b))) #define Int64ShllMod32(a, b) ((ULONGLONG)(a) << (b)) #define Int64ShraMod32(a, b) ((LONGLONG)(a) >> (b)) #define Int64ShrlMod32(a, b) ((ULONGLONG)(a) >> (b)) #elif defined(_68K_) || defined(_MPPC_) // // The Macintosh 68K and PowerPC compilers do not currently support int64. // #define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b))) #define UInt32x32To64(a, b) ((DWORDLONG)((DWORD)(a)) * (DWORDLONG)((DWORD)(b))) #define Int64ShllMod32(a, b) ((DWORDLONG)(a) << (b)) #define Int64ShraMod32(a, b) ((LONGLONG)(a) >> (b)) #define Int64ShrlMod32(a, b) ((DWORDLONG)(a) >> (b)) #elif defined(_M_IA64) || defined(_M_AMD64) // // IA64 has native 64-bit operations that are just as fast as their 32-bit // counter parts. Therefore, the int64 data type is used directly to form // shifts of 0..31 and multiplies of 32-bits times 32-bits to form a 64-bit // product. // #define Int32x32To64(a, b) ((LONGLONG)((LONG)(a)) * (LONGLONG)((LONG)(b))) #define UInt32x32To64(a, b) ((ULONGLONG)((DWORD)(a)) * (ULONGLONG)((DWORD)(b))) #define Int64ShllMod32(a, b) ((ULONGLONG)(a) << (b)) #define Int64ShraMod32(a, b) ((LONGLONG)(a) >> (b)) #define Int64ShrlMod32(a, b) ((ULONGLONG)(a) >> (b)) #else #error Must define a target architecture. #endif #define ANSI_NULL ((CHAR)0) #define UNICODE_NULL ((WCHAR)0) #define UNICODE_STRING_MAX_BYTES ((WORD ) 65534) #define UNICODE_STRING_MAX_CHARS (32767) typedef BYTE BOOLEAN; typedef BOOLEAN *PBOOLEAN; // // Doubly linked list structure. Can be used as either a list head, or // as link words. // typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY; // // Singly linked list structure. Can be used as either a list head, or // as link words. // typedef struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY *Next; } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; // // These are needed for portable debugger support. // typedef struct LIST_ENTRY32 { DWORD Flink; DWORD Blink; } LIST_ENTRY32; typedef LIST_ENTRY32 *PLIST_ENTRY32; typedef struct LIST_ENTRY64 { ULONGLONG Flink; ULONGLONG Blink; } LIST_ENTRY64; typedef LIST_ENTRY64 *PLIST_ENTRY64; #include #ifndef __OBJECTID_DEFINED #define __OBJECTID_DEFINED typedef struct _OBJECTID { // size is 20 GUID Lineage; DWORD Uniquifier; } OBJECTID; #endif // !_OBJECTID_DEFINED #define MINCHAR 0x80 #define MAXCHAR 0x7f #define MINSHORT 0x8000 #define MAXSHORT 0x7fff #define MINLONG 0x80000000 #define MAXLONG 0x7fffffff #define MAXBYTE 0xff #define MAXWORD 0xffff #define MAXDWORD 0xffffffff // // Calculate the byte offset of a field in a structure of type type. // #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field)) #if(_WIN32_WINNT > 0x0500) // // Calculate the size of a field in a structure of type type, without // knowing or stating the type of the field. // #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) // // Calculate the size of a structure of type type up through and // including a field. // #define RTL_SIZEOF_THROUGH_FIELD(type, field) \ (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) // // RTL_CONTAINS_FIELD usage: // // if (RTL_CONTAINS_FIELD(pBlock, pBlock->cbSize, dwMumble)) { // safe to use pBlock->dwMumble // #define RTL_CONTAINS_FIELD(Struct, Size, Field) \ ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) ) // // Return the number of elements in a statically sized array. // DWORD Buffer[100]; // RTL_NUMBER_OF(Buffer) == 100 // This is also popularly known as: NUMBER_OF, ARRSIZE, _countof, NELEM, etc. // #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0])) // // An expression that yields the type of a field in a struct. // #define RTL_FIELD_TYPE(type, field) (((type*)0)->field) // RTL_ to avoid collisions in the global namespace. // // Given typedef struct _FOO { BYTE Bar[123]; } FOO; // RTL_NUMBER_OF_FIELD(FOO, Bar) == 123 // #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field))) // // eg: // typedef struct FOO { // DWORD Integer; // PVOID Pointer; // } FOO; // // RTL_PADDING_BETWEEN_FIELDS(FOO, Integer, Pointer) == 0 for Win32, 4 for Win64 // #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))) // RTL_ to avoid collisions in the global namespace. #if defined(__cplusplus) #define RTL_CONST_CAST(type) const_cast #else #define RTL_CONST_CAST(type) (type) #endif // like sizeof // usually this would be * CHAR_BIT, but we don't necessarily have #include #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 */ // // Calculate the address of the base of the structure given its type, and an // address of a field within the structure. // #define CONTAINING_RECORD(address, type, field) ((type *)( \ (PCHAR)(address) - \ (ULONG_PTR)(&((type *)0)->field))) #define VER_SERVER_NT 0x80000000 #define VER_WORKSTATION_NT 0x40000000 #define VER_SUITE_SMALLBUSINESS 0x00000001 #define VER_SUITE_ENTERPRISE 0x00000002 #define VER_SUITE_BACKOFFICE 0x00000004 #define VER_SUITE_COMMUNICATIONS 0x00000008 #define VER_SUITE_TERMINAL 0x00000010 #define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020 #define VER_SUITE_EMBEDDEDNT 0x00000040 #define VER_SUITE_DATACENTER 0x00000080 #define VER_SUITE_SINGLEUSERTS 0x00000100 #define VER_SUITE_PERSONAL 0x00000200 #define VER_SUITE_BLADE 0x00000400 #define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800 // // Language IDs. // // The following two combinations of primary language ID and // sublanguage ID have special semantics: // // Primary Language ID Sublanguage ID Result // ------------------- --------------- ------------------------ // LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral // LANG_NEUTRAL SUBLANG_DEFAULT User default language // LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language // LANG_INVARIANT SUBLANG_NEUTRAL Invariant locale // // // Primary language IDs. // #define LANG_NEUTRAL 0x00 #define LANG_INVARIANT 0x7f #define LANG_AFRIKAANS 0x36 #define LANG_ALBANIAN 0x1c #define LANG_ARABIC 0x01 #define LANG_ARMENIAN 0x2b #define LANG_ASSAMESE 0x4d #define LANG_AZERI 0x2c #define LANG_BASQUE 0x2d #define LANG_BELARUSIAN 0x23 #define LANG_BENGALI 0x45 #define LANG_BULGARIAN 0x02 #define LANG_CATALAN 0x03 #define LANG_CHINESE 0x04 #define LANG_CROATIAN 0x1a #define LANG_CZECH 0x05 #define LANG_DANISH 0x06 #define LANG_DIVEHI 0x65 #define LANG_DUTCH 0x13 #define LANG_ENGLISH 0x09 #define LANG_ESTONIAN 0x25 #define LANG_FAEROESE 0x38 #define LANG_FARSI 0x29 #define LANG_FINNISH 0x0b #define LANG_FRENCH 0x0c #define LANG_GALICIAN 0x56 #define LANG_GEORGIAN 0x37 #define LANG_GERMAN 0x07 #define LANG_GREEK 0x08 #define LANG_GUJARATI 0x47 #define LANG_HEBREW 0x0d #define LANG_HINDI 0x39 #define LANG_HUNGARIAN 0x0e #define LANG_ICELANDIC 0x0f #define LANG_INDONESIAN 0x21 #define LANG_ITALIAN 0x10 #define LANG_JAPANESE 0x11 #define LANG_KANNADA 0x4b #define LANG_KASHMIRI 0x60 #define LANG_KAZAK 0x3f #define LANG_KONKANI 0x57 #define LANG_KOREAN 0x12 #define LANG_KYRGYZ 0x40 #define LANG_LATVIAN 0x26 #define LANG_LITHUANIAN 0x27 #define LANG_MACEDONIAN 0x2f // the Former Yugoslav Republic of Macedonia #define LANG_MALAY 0x3e #define LANG_MALAYALAM 0x4c #define LANG_MANIPURI 0x58 #define LANG_MARATHI 0x4e #define LANG_MONGOLIAN 0x50 #define LANG_NEPALI 0x61 #define LANG_NORWEGIAN 0x14 #define LANG_ORIYA 0x48 #define LANG_POLISH 0x15 #define LANG_PORTUGUESE 0x16 #define LANG_PUNJABI 0x46 #define LANG_ROMANIAN 0x18 #define LANG_RUSSIAN 0x19 #define LANG_SANSKRIT 0x4f #define LANG_SERBIAN 0x1a #define LANG_SINDHI 0x59 #define LANG_SLOVAK 0x1b #define LANG_SLOVENIAN 0x24 #define LANG_SPANISH 0x0a #define LANG_SWAHILI 0x41 #define LANG_SWEDISH 0x1d #define LANG_SYRIAC 0x5a #define LANG_TAMIL 0x49 #define LANG_TATAR 0x44 #define LANG_TELUGU 0x4a #define LANG_THAI 0x1e #define LANG_TURKISH 0x1f #define LANG_UKRAINIAN 0x22 #define LANG_URDU 0x20 #define LANG_UZBEK 0x43 #define LANG_VIETNAMESE 0x2a // // Sublanguage IDs. // // The name immediately following SUBLANG_ dictates which primary // language ID that sublanguage ID can be combined with to form a // valid language ID. // #define SUBLANG_NEUTRAL 0x00 // language neutral #define SUBLANG_DEFAULT 0x01 // user default #define SUBLANG_SYS_DEFAULT 0x02 // system default #define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 // Arabic (Saudi Arabia) #define SUBLANG_ARABIC_IRAQ 0x02 // Arabic (Iraq) #define SUBLANG_ARABIC_EGYPT 0x03 // Arabic (Egypt) #define SUBLANG_ARABIC_LIBYA 0x04 // Arabic (Libya) #define SUBLANG_ARABIC_ALGERIA 0x05 // Arabic (Algeria) #define SUBLANG_ARABIC_MOROCCO 0x06 // Arabic (Morocco) #define SUBLANG_ARABIC_TUNISIA 0x07 // Arabic (Tunisia) #define SUBLANG_ARABIC_OMAN 0x08 // Arabic (Oman) #define SUBLANG_ARABIC_YEMEN 0x09 // Arabic (Yemen) #define SUBLANG_ARABIC_SYRIA 0x0a // Arabic (Syria) #define SUBLANG_ARABIC_JORDAN 0x0b // Arabic (Jordan) #define SUBLANG_ARABIC_LEBANON 0x0c // Arabic (Lebanon) #define SUBLANG_ARABIC_KUWAIT 0x0d // Arabic (Kuwait) #define SUBLANG_ARABIC_UAE 0x0e // Arabic (U.A.E) #define SUBLANG_ARABIC_BAHRAIN 0x0f // Arabic (Bahrain) #define SUBLANG_ARABIC_QATAR 0x10 // Arabic (Qatar) #define SUBLANG_AZERI_LATIN 0x01 // Azeri (Latin) #define SUBLANG_AZERI_CYRILLIC 0x02 // Azeri (Cyrillic) #define SUBLANG_CHINESE_TRADITIONAL 0x01 // Chinese (Taiwan) #define SUBLANG_CHINESE_SIMPLIFIED 0x02 // Chinese (PR China) #define SUBLANG_CHINESE_HONGKONG 0x03 // Chinese (Hong Kong S.A.R., P.R.C.) #define SUBLANG_CHINESE_SINGAPORE 0x04 // Chinese (Singapore) #define SUBLANG_CHINESE_MACAU 0x05 // Chinese (Macau S.A.R.) #define SUBLANG_DUTCH 0x01 // Dutch #define SUBLANG_DUTCH_BELGIAN 0x02 // Dutch (Belgian) #define SUBLANG_ENGLISH_US 0x01 // English (USA) #define SUBLANG_ENGLISH_UK 0x02 // English (UK) #define SUBLANG_ENGLISH_AUS 0x03 // English (Australian) #define SUBLANG_ENGLISH_CAN 0x04 // English (Canadian) #define SUBLANG_ENGLISH_NZ 0x05 // English (New Zealand) #define SUBLANG_ENGLISH_EIRE 0x06 // English (Irish) #define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 // English (South Africa) #define SUBLANG_ENGLISH_JAMAICA 0x08 // English (Jamaica) #define SUBLANG_ENGLISH_CARIBBEAN 0x09 // English (Caribbean) #define SUBLANG_ENGLISH_BELIZE 0x0a // English (Belize) #define SUBLANG_ENGLISH_TRINIDAD 0x0b // English (Trinidad) #define SUBLANG_ENGLISH_ZIMBABWE 0x0c // English (Zimbabwe) #define SUBLANG_ENGLISH_PHILIPPINES 0x0d // English (Philippines) #define SUBLANG_FRENCH 0x01 // French #define SUBLANG_FRENCH_BELGIAN 0x02 // French (Belgian) #define SUBLANG_FRENCH_CANADIAN 0x03 // French (Canadian) #define SUBLANG_FRENCH_SWISS 0x04 // French (Swiss) #define SUBLANG_FRENCH_LUXEMBOURG 0x05 // French (Luxembourg) #define SUBLANG_FRENCH_MONACO 0x06 // French (Monaco) #define SUBLANG_GERMAN 0x01 // German #define SUBLANG_GERMAN_SWISS 0x02 // German (Swiss) #define SUBLANG_GERMAN_AUSTRIAN 0x03 // German (Austrian) #define SUBLANG_GERMAN_LUXEMBOURG 0x04 // German (Luxembourg) #define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 // German (Liechtenstein) #define SUBLANG_ITALIAN 0x01 // Italian #define SUBLANG_ITALIAN_SWISS 0x02 // Italian (Swiss) #if _WIN32_WINNT >= 0x0501 #define SUBLANG_KASHMIRI_SASIA 0x02 // Kashmiri (South Asia) #endif #define SUBLANG_KASHMIRI_INDIA 0x02 // For app compatibility only #define SUBLANG_KOREAN 0x01 // Korean (Extended Wansung) #define SUBLANG_LITHUANIAN 0x01 // Lithuanian #define SUBLANG_MALAY_MALAYSIA 0x01 // Malay (Malaysia) #define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 // Malay (Brunei Darussalam) #define SUBLANG_NEPALI_INDIA 0x02 // Nepali (India) #define SUBLANG_NORWEGIAN_BOKMAL 0x01 // Norwegian (Bokmal) #define SUBLANG_NORWEGIAN_NYNORSK 0x02 // Norwegian (Nynorsk) #define SUBLANG_PORTUGUESE 0x02 // Portuguese #define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 // Portuguese (Brazilian) #define SUBLANG_SERBIAN_LATIN 0x02 // Serbian (Latin) #define SUBLANG_SERBIAN_CYRILLIC 0x03 // Serbian (Cyrillic) #define SUBLANG_SPANISH 0x01 // Spanish (Castilian) #define SUBLANG_SPANISH_MEXICAN 0x02 // Spanish (Mexican) #define SUBLANG_SPANISH_MODERN 0x03 // Spanish (Spain) #define SUBLANG_SPANISH_GUATEMALA 0x04 // Spanish (Guatemala) #define SUBLANG_SPANISH_COSTA_RICA 0x05 // Spanish (Costa Rica) #define SUBLANG_SPANISH_PANAMA 0x06 // Spanish (Panama) #define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 // Spanish (Dominican Republic) #define SUBLANG_SPANISH_VENEZUELA 0x08 // Spanish (Venezuela) #define SUBLANG_SPANISH_COLOMBIA 0x09 // Spanish (Colombia) #define SUBLANG_SPANISH_PERU 0x0a // Spanish (Peru) #define SUBLANG_SPANISH_ARGENTINA 0x0b // Spanish (Argentina) #define SUBLANG_SPANISH_ECUADOR 0x0c // Spanish (Ecuador) #define SUBLANG_SPANISH_CHILE 0x0d // Spanish (Chile) #define SUBLANG_SPANISH_URUGUAY 0x0e // Spanish (Uruguay) #define SUBLANG_SPANISH_PARAGUAY 0x0f // Spanish (Paraguay) #define SUBLANG_SPANISH_BOLIVIA 0x10 // Spanish (Bolivia) #define SUBLANG_SPANISH_EL_SALVADOR 0x11 // Spanish (El Salvador) #define SUBLANG_SPANISH_HONDURAS 0x12 // Spanish (Honduras) #define SUBLANG_SPANISH_NICARAGUA 0x13 // Spanish (Nicaragua) #define SUBLANG_SPANISH_PUERTO_RICO 0x14 // Spanish (Puerto Rico) #define SUBLANG_SWEDISH 0x01 // Swedish #define SUBLANG_SWEDISH_FINLAND 0x02 // Swedish (Finland) #define SUBLANG_URDU_PAKISTAN 0x01 // Urdu (Pakistan) #define SUBLANG_URDU_INDIA 0x02 // Urdu (India) #define SUBLANG_UZBEK_LATIN 0x01 // Uzbek (Latin) #define SUBLANG_UZBEK_CYRILLIC 0x02 // Uzbek (Cyrillic) // // Sorting IDs. // #define SORT_DEFAULT 0x0 // sorting default #define SORT_JAPANESE_XJIS 0x0 // Japanese XJIS order #define SORT_JAPANESE_UNICODE 0x1 // Japanese Unicode order #define SORT_CHINESE_BIG5 0x0 // Chinese BIG5 order #define SORT_CHINESE_PRCP 0x0 // PRC Chinese Phonetic order #define SORT_CHINESE_UNICODE 0x1 // Chinese Unicode order #define SORT_CHINESE_PRC 0x2 // PRC Chinese Stroke Count order #define SORT_CHINESE_BOPOMOFO 0x3 // Traditional Chinese Bopomofo order #define SORT_KOREAN_KSC 0x0 // Korean KSC order #define SORT_KOREAN_UNICODE 0x1 // Korean Unicode order #define SORT_GERMAN_PHONE_BOOK 0x1 // German Phone Book order #define SORT_HUNGARIAN_DEFAULT 0x0 // Hungarian Default order #define SORT_HUNGARIAN_TECHNICAL 0x1 // Hungarian Technical order #define SORT_GEORGIAN_TRADITIONAL 0x0 // Georgian Traditional order #define SORT_GEORGIAN_MODERN 0x1 // Georgian Modern order // end_r_winnt // // A language ID is a 16 bit value which is the combination of a // primary language ID and a secondary language ID. The bits are // allocated as follows: // // +-----------------------+-------------------------+ // | Sublanguage ID | Primary Language ID | // +-----------------------+-------------------------+ // 15 10 9 0 bit // // // Language ID creation/extraction macros: // // MAKELANGID - construct language id from a primary language id and // a sublanguage id. // PRIMARYLANGID - extract primary language id from a language id. // SUBLANGID - extract sublanguage id from a language id. // #define MAKELANGID(p, s) ((((WORD )(s)) << 10) | (WORD )(p)) #define PRIMARYLANGID(lgid) ((WORD )(lgid) & 0x3ff) #define SUBLANGID(lgid) ((WORD )(lgid) >> 10) // // A locale ID is a 32 bit value which is the combination of a // language ID, a sort ID, and a reserved area. The bits are // allocated as follows: // // +-------------+---------+-------------------------+ // | Reserved | Sort ID | Language ID | // +-------------+---------+-------------------------+ // 31 20 19 16 15 0 bit // // // Locale ID creation/extraction macros: // // MAKELCID - construct the locale id from a language id and a sort id. // MAKESORTLCID - construct the locale id from a language id, sort id, and sort version. // LANGIDFROMLCID - extract the language id from a locale id. // SORTIDFROMLCID - extract the sort id from a locale id. // SORTVERSIONFROMLCID - extract the sort version from a locale id. // #define NLS_VALID_LOCALE_MASK 0x000fffff #define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD )(srtid))) << 16) | \ ((DWORD)((WORD )(lgid))))) #define MAKESORTLCID(lgid, srtid, ver) \ ((DWORD)((MAKELCID(lgid, srtid)) | \ (((DWORD)((WORD )(ver))) << 20))) #define LANGIDFROMLCID(lcid) ((WORD )(lcid)) #define SORTIDFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) >> 16) & 0xf)) #define SORTVERSIONFROMLCID(lcid) ((WORD )((((DWORD)(lcid)) >> 20) & 0xf)) // // Default System and User IDs for language and locale. // #define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) #define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) #define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) #define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) #define LOCALE_NEUTRAL \ (MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT)) #define LOCALE_INVARIANT \ (MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT)) // begin_ntminiport begin_ntndis begin_ntminitape // // Macros used to eliminate compiler warning generated when formal // parameters or local variables are not declared. // // Use DBG_UNREFERENCED_PARAMETER() when a parameter is not yet // referenced but will be once the module is completely developed. // // Use DBG_UNREFERENCED_LOCAL_VARIABLE() when a local variable is not yet // referenced but will be once the module is completely developed. // // Use UNREFERENCED_PARAMETER() if a parameter will never be referenced. // // DBG_UNREFERENCED_PARAMETER and DBG_UNREFERENCED_LOCAL_VARIABLE will // eventually be made into a null macro to help determine whether there // is unfinished work. // #if ! defined(lint) #define UNREFERENCED_PARAMETER(P) (P) #define DBG_UNREFERENCED_PARAMETER(P) (P) #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) (V) #else // lint // Note: lint -e530 says don't complain about uninitialized variables for // this varible. Error 527 has to do with unreachable code. // -restore restores checking to the -save state #define UNREFERENCED_PARAMETER(P) \ /*lint -save -e527 -e530 */ \ { \ (P) = (P); \ } \ /*lint -restore */ #define DBG_UNREFERENCED_PARAMETER(P) \ /*lint -save -e527 -e530 */ \ { \ (P) = (P); \ } \ /*lint -restore */ #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) \ /*lint -save -e527 -e530 */ \ { \ (V) = (V); \ } \ /*lint -restore */ #endif // lint // // Macro used to eliminate compiler warning 4715 within a switch statement // when all possible cases have already been accounted for. // // switch (a & 3) { // case 0: return 1; // case 1: return Foo(); // case 2: return Bar(); // case 3: return 1; // DEFAULT_UNREACHABLE; // #if (_MSC_VER > 1200) #define DEFAULT_UNREACHABLE default: __assume(0) #else // // Older compilers do not support __assume(), and there is no other free // method of eliminating the warning. // #define DEFAULT_UNREACHABLE #endif #ifndef WIN32_NO_STATUS /*lint -save -e767 */ #define STATUS_WAIT_0 ((DWORD )0x00000000L) #define STATUS_ABANDONED_WAIT_0 ((DWORD )0x00000080L) #define STATUS_USER_APC ((DWORD )0x000000C0L) #define STATUS_TIMEOUT ((DWORD )0x00000102L) #define STATUS_PENDING ((DWORD )0x00000103L) #define DBG_EXCEPTION_HANDLED ((DWORD )0x00010001L) #define DBG_CONTINUE ((DWORD )0x00010002L) #define STATUS_SEGMENT_NOTIFICATION ((DWORD )0x40000005L) #define DBG_TERMINATE_THREAD ((DWORD )0x40010003L) #define DBG_TERMINATE_PROCESS ((DWORD )0x40010004L) #define DBG_CONTROL_C ((DWORD )0x40010005L) #define DBG_CONTROL_BREAK ((DWORD )0x40010008L) #define DBG_COMMAND_EXCEPTION ((DWORD )0x40010009L) #define STATUS_GUARD_PAGE_VIOLATION ((DWORD )0x80000001L) #define STATUS_DATATYPE_MISALIGNMENT ((DWORD )0x80000002L) #define STATUS_BREAKPOINT ((DWORD )0x80000003L) #define STATUS_SINGLE_STEP ((DWORD )0x80000004L) #define DBG_EXCEPTION_NOT_HANDLED ((DWORD )0x80010001L) #define STATUS_ACCESS_VIOLATION ((DWORD )0xC0000005L) #define STATUS_IN_PAGE_ERROR ((DWORD )0xC0000006L) #define STATUS_INVALID_HANDLE ((DWORD )0xC0000008L) #define STATUS_NO_MEMORY ((DWORD )0xC0000017L) #define STATUS_ILLEGAL_INSTRUCTION ((DWORD )0xC000001DL) #define STATUS_NONCONTINUABLE_EXCEPTION ((DWORD )0xC0000025L) #define STATUS_INVALID_DISPOSITION ((DWORD )0xC0000026L) #define STATUS_ARRAY_BOUNDS_EXCEEDED ((DWORD )0xC000008CL) #define STATUS_FLOAT_DENORMAL_OPERAND ((DWORD )0xC000008DL) #define STATUS_FLOAT_DIVIDE_BY_ZERO ((DWORD )0xC000008EL) #define STATUS_FLOAT_INEXACT_RESULT ((DWORD )0xC000008FL) #define STATUS_FLOAT_INVALID_OPERATION ((DWORD )0xC0000090L) #define STATUS_FLOAT_OVERFLOW ((DWORD )0xC0000091L) #define STATUS_FLOAT_STACK_CHECK ((DWORD )0xC0000092L) #define STATUS_FLOAT_UNDERFLOW ((DWORD )0xC0000093L) #define STATUS_INTEGER_DIVIDE_BY_ZERO ((DWORD )0xC0000094L) #define STATUS_INTEGER_OVERFLOW ((DWORD )0xC0000095L) #define STATUS_PRIVILEGED_INSTRUCTION ((DWORD )0xC0000096L) #define STATUS_STACK_OVERFLOW ((DWORD )0xC00000FDL) #define STATUS_CONTROL_C_EXIT ((DWORD )0xC000013AL) #define STATUS_FLOAT_MULTIPLE_FAULTS ((DWORD )0xC00002B4L) #define STATUS_FLOAT_MULTIPLE_TRAPS ((DWORD )0xC00002B5L) #define STATUS_REG_NAT_CONSUMPTION ((DWORD )0xC00002C9L) #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) #define STATUS_SXS_EARLY_DEACTIVATION ((DWORD )0xC015000FL) #define STATUS_SXS_INVALID_DEACTIVATION ((DWORD )0xC0150010L) #endif /*lint -restore */ #endif #define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects #define MAXIMUM_SUSPEND_COUNT MAXCHAR // Maximum times thread can be suspended typedef ULONG_PTR KSPIN_LOCK; typedef KSPIN_LOCK *PKSPIN_LOCK; #if defined(_AMD64_) #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // Define bit scan intrinsics. // #define BitScanForward _BitScanForward #define BitScanReverse _BitScanReverse #define BitScanForward64 _BitScanForward64 #define BitScanReverse64 _BitScanReverse64 BOOLEAN _BitScanForward ( OUT DWORD *Index, IN DWORD Mask ); BOOLEAN _BitScanReverse ( OUT DWORD *Index, IN DWORD Mask ); BOOLEAN _BitScanForward64 ( OUT DWORD *Index, IN DWORD64 Mask ); BOOLEAN _BitScanReverse64 ( OUT DWORD *Index, IN DWORD64 Mask ); #pragma intrinsic(_BitScanForward) #pragma intrinsic(_BitScanReverse) #pragma intrinsic(_BitScanForward64) #pragma intrinsic(_BitScanReverse64) // // Define function to flush a cache line. // #define CacheLineFlush(Address) _mm_clflush(Address) VOID _mm_clflush ( PVOID Address ); #pragma intrinsic(_mm_clflush) // // Define memory fence intrinsics // #define LoadFence _mm_lfence #define MemoryFence _mm_mfence #define StoreFence _mm_sfence VOID _mm_lfence ( VOID ); VOID _mm_mfence ( VOID ); VOID _mm_sfence ( VOID ); #pragma intrinsic(_mm_lfence) #pragma intrinsic(_mm_mfence) #pragma intrinsic(_mm_sfence) // // Define function to get the caller's EFLAGs value. // #define GetCallersEflags() __getcallerseflags() unsigned __int32 __getcallerseflags ( VOID ); #pragma intrinsic(__getcallerseflags) // // Define function to read the value of the time stamp counter // #define ReadTimeStampCounter() __rdtsc() DWORD64 __rdtsc ( VOID ); #pragma intrinsic(__rdtsc) // // Define functions to move strings or bytes, words, dwords, and qwords. // VOID __movsb ( IN PBYTE Destination, IN PBYTE Source, IN DWORD Count ); VOID __movsw ( IN PWORD Destination, IN PWORD Source, IN DWORD Count ); VOID __movsd ( IN PDWORD Destination, IN PDWORD Source, IN DWORD Count ); VOID __movsq ( IN PULONGLONG Destination, IN PULONGLONG Source, IN DWORD Count ); #pragma intrinsic(__movsb) #pragma intrinsic(__movsw) #pragma intrinsic(__movsd) #pragma intrinsic(__movsq) // // Define functions to capture the high 64-bits of a 128-bit multiply. // #define MultiplyHigh __mulh #define UnsignedMultiplyHigh __umulh LONGLONG MultiplyHigh ( IN LONGLONG Multiplier, IN LONGLONG Multiplicand ); ULONGLONG UnsignedMultiplyHigh ( IN ULONGLONG Multiplier, IN ULONGLONG Multiplicand ); #pragma intrinsic(__mulh) #pragma intrinsic(__umulh) // // Define functions to read and write the uer TEB and the system PCR/PRCB. // BYTE __readgsbyte ( IN DWORD Offset ); WORD __readgsword ( IN DWORD Offset ); DWORD __readgsdword ( IN DWORD Offset ); DWORD64 __readgsqword ( IN DWORD Offset ); VOID __writegsbyte ( IN DWORD Offset, IN BYTE Data ); VOID __writegsword ( IN DWORD Offset, IN WORD Data ); VOID __writegsdword ( IN DWORD Offset, IN DWORD Data ); VOID __writegsqword ( IN DWORD Offset, IN DWORD64 Data ); #pragma intrinsic(__readgsbyte) #pragma intrinsic(__readgsword) #pragma intrinsic(__readgsdword) #pragma intrinsic(__readgsqword) #pragma intrinsic(__writegsbyte) #pragma intrinsic(__writegsword) #pragma intrinsic(__writegsdword) #pragma intrinsic(__writegsqword) #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_AMD64 0x100000 // end_wx86 #define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L) #define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L) #define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L) #define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L) #define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT) #define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS) // begin_wx86 #endif // !defined(RC_INVOKED) // // Define initial MxCsr control. // #define INITIAL_MXCSR 0x1f80 // initial MXCSR value // // Define 128-bit 16-byte aligned xmm register type. // typedef struct DECLSPEC_ALIGN(16) _M128 { ULONGLONG Low; LONGLONG High; } M128, *PM128; // // Format of data for fnsave/frstor instructions. // // This structure is used to store the legacy floating point state. // typedef struct _LEGACY_SAVE_AREA { WORD ControlWord; WORD Reserved0; WORD StatusWord; WORD Reserved1; WORD TagWord; WORD Reserved2; DWORD ErrorOffset; WORD ErrorSelector; WORD ErrorOpcode; DWORD DataOffset; WORD DataSelector; WORD Reserved3; BYTE FloatRegisters[8 * 10]; } LEGACY_SAVE_AREA, *PLEGACY_SAVE_AREA; #define LEGACY_SAVE_AREA_LENGTH ((sizeof(LEGACY_SAVE_AREA) + 15) & ~15) // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) is is used to constuct a call frame for APC delivery, // and 3) it is used in the user level thread creation routines. // // // The flags field within this record controls the contents of a CONTEXT // record. // // If the context record is used as an input parameter, then for each // portion of the context record controlled by a flag whose value is // set, it is assumed that that portion of the context record contains // valid context. If the context record is being used to modify a threads // context, then only that portion of the threads context is modified. // // If the context record is used as an output parameter to capture the // context of a thread, then only those portions of the thread's context // corresponding to set flags will be returned. // // CONTEXT_CONTROL specifies SegSs, Rsp, SegCs, Rip, and EFlags. // // CONTEXT_INTEGER specifies Rax, Rcx, Rdx, Rbx, Rbp, Rsi, Rdi, and R8-R15. // // CONTEXT_SEGMENTS specifies SegDs, SegEs, SegFs, and SegGs. // // CONTEXT_DEBUG_REGISTERS specifies Dr0-Dr3 and Dr6-Dr7. // // CONTEXT_MMX_REGISTERS specifies the floating point and extended registers // Mm0/St0-Mm7/St7 and Xmm0-Xmm15). // typedef struct DECLSPEC_ALIGN(16) _CONTEXT { // // Register parameter home addresses. // DWORD64 P1Home; DWORD64 P2Home; DWORD64 P3Home; DWORD64 P4Home; DWORD64 P5Home; DWORD64 P6Home; // // Control flags. // DWORD ContextFlags; DWORD MxCsr; // // Segment Registers and processor flags. // WORD SegCs; WORD SegDs; WORD SegEs; WORD SegFs; WORD SegGs; WORD SegSs; DWORD EFlags; // // Debug registers // DWORD64 Dr0; DWORD64 Dr1; DWORD64 Dr2; DWORD64 Dr3; DWORD64 Dr6; DWORD64 Dr7; // // Integer registers. // DWORD64 Rax; DWORD64 Rcx; DWORD64 Rdx; DWORD64 Rbx; DWORD64 Rsp; DWORD64 Rbp; DWORD64 Rsi; DWORD64 Rdi; DWORD64 R8; DWORD64 R9; DWORD64 R10; DWORD64 R11; DWORD64 R12; DWORD64 R13; DWORD64 R14; DWORD64 R15; // // Program counter. // DWORD64 Rip; // // MMX/floating point state. // M128 Xmm0; M128 Xmm1; M128 Xmm2; M128 Xmm3; M128 Xmm4; M128 Xmm5; M128 Xmm6; M128 Xmm7; M128 Xmm8; M128 Xmm9; M128 Xmm10; M128 Xmm11; M128 Xmm12; M128 Xmm13; M128 Xmm14; M128 Xmm15; // // Legacy floating point state. // LEGACY_SAVE_AREA FltSave; DWORD Fill; // // Special debug control registers. // DWORD64 DebugControl; DWORD64 LastBranchToRip; DWORD64 LastBranchFromRip; DWORD64 LastExceptionToRip; DWORD64 LastExceptionFromRip; DWORD64 Fill1; } CONTEXT, *PCONTEXT; #endif // _AMD64_ // // Define function to return the current Thread Environment Block // #ifdef _ALPHA_ // winnt void *_rdteb(void); // winnt #if defined(_M_ALPHA) // winnt #pragma intrinsic(_rdteb) // winnt #endif // winnt #endif // winnt #if defined(_M_ALPHA) #define NtCurrentTeb() ((struct _TEB *)_rdteb()) #else struct _TEB * NtCurrentTeb(void); #endif // // Define functions to get the address of the current fiber and the // current fiber data. // #ifdef _ALPHA_ #define GetCurrentFiber() (((PNT_TIB)NtCurrentTeb())->FiberData) #define GetFiberData() (*(PVOID *)(GetCurrentFiber())) // begin_ntddk begin_nthal // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_ALPHA 0x00020000 #define CONTEXT_CONTROL (CONTEXT_ALPHA | 0x00000001L) #define CONTEXT_FLOATING_POINT (CONTEXT_ALPHA | 0x00000002L) #define CONTEXT_INTEGER (CONTEXT_ALPHA | 0x00000004L) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) #endif #ifndef _PORTABLE_32BIT_CONTEXT // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) it is used to construct a call frame for APC delivery, // 3) it is used to construct a call frame for exception dispatching // in user mode, 4) it is used in the user level thread creation // routines, and 5) it is used to to pass thread state to debuggers. // // N.B. Because this record is used as a call frame, it must be EXACTLY // a multiple of 16 bytes in length. // // There are two variations of the context structure. This is the real one. // typedef struct _CONTEXT { // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_FLOATING_POINT. // ULONGLONG FltF0; ULONGLONG FltF1; ULONGLONG FltF2; ULONGLONG FltF3; ULONGLONG FltF4; ULONGLONG FltF5; ULONGLONG FltF6; ULONGLONG FltF7; ULONGLONG FltF8; ULONGLONG FltF9; ULONGLONG FltF10; ULONGLONG FltF11; ULONGLONG FltF12; ULONGLONG FltF13; ULONGLONG FltF14; ULONGLONG FltF15; ULONGLONG FltF16; ULONGLONG FltF17; ULONGLONG FltF18; ULONGLONG FltF19; ULONGLONG FltF20; ULONGLONG FltF21; ULONGLONG FltF22; ULONGLONG FltF23; ULONGLONG FltF24; ULONGLONG FltF25; ULONGLONG FltF26; ULONGLONG FltF27; ULONGLONG FltF28; ULONGLONG FltF29; ULONGLONG FltF30; ULONGLONG FltF31; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_INTEGER. // // N.B. The registers gp, sp, and ra are defined in this section, but are // considered part of the control context rather than part of the integer // context. // ULONGLONG IntV0; // $0: return value register, v0 ULONGLONG IntT0; // $1: temporary registers, t0 - t7 ULONGLONG IntT1; // $2: ULONGLONG IntT2; // $3: ULONGLONG IntT3; // $4: ULONGLONG IntT4; // $5: ULONGLONG IntT5; // $6: ULONGLONG IntT6; // $7: ULONGLONG IntT7; // $8: ULONGLONG IntS0; // $9: nonvolatile registers, s0 - s5 ULONGLONG IntS1; // $10: ULONGLONG IntS2; // $11: ULONGLONG IntS3; // $12: ULONGLONG IntS4; // $13: ULONGLONG IntS5; // $14: ULONGLONG IntFp; // $15: frame pointer register, fp/s6 ULONGLONG IntA0; // $16: argument registers, a0 - a5 ULONGLONG IntA1; // $17: ULONGLONG IntA2; // $18: ULONGLONG IntA3; // $19: ULONGLONG IntA4; // $20: ULONGLONG IntA5; // $21: ULONGLONG IntT8; // $22: temporary registers, t8 - t11 ULONGLONG IntT9; // $23: ULONGLONG IntT10; // $24: ULONGLONG IntT11; // $25: ULONGLONG IntRa; // $26: return address register, ra ULONGLONG IntT12; // $27: temporary register, t12 ULONGLONG IntAt; // $28: assembler temp register, at ULONGLONG IntGp; // $29: global pointer register, gp ULONGLONG IntSp; // $30: stack pointer register, sp ULONGLONG IntZero; // $31: zero register, zero // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_FLOATING_POINT. // ULONGLONG Fpcr; // floating point control register ULONGLONG SoftFpcr; // software extension to FPCR // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_CONTROL. // // N.B. The registers gp, sp, and ra are defined in the integer section, // but are considered part of the control context rather than part of // the integer context. // ULONGLONG Fir; // (fault instruction) continuation address DWORD Psr; // processor status // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; DWORD Fill[4]; // padding for 16-byte stack frame alignment } CONTEXT, *PCONTEXT; #else #error _PORTABLE_32BIT_CONTEXT no longer supported on Alpha. #endif // _PORTABLE_32BIT_CONTEXT // end_ntddk end_nthal #endif // _ALPHA_ #ifdef _ALPHA_ VOID __jump_unwind ( PVOID VirtualFramePointer, PVOID TargetPc ); #endif // _ALPHA_ #ifdef _X86_ // // Disable these two pragmas that evaluate to "sti" "cli" on x86 so that driver // writers to not leave them inadvertantly in their code. // #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 // build with /Od don't get weird errors ! #ifdef _M_IX86 #pragma function(_enable) #pragma function(_disable) #endif #if _MSC_VER >= 1200 #pragma warning(pop) #else #pragma warning(default:4164) // reenable C4164 warning #endif #endif #endif #if !defined(MIDL_PASS) || defined(_M_IX86) #if (_MSC_FULL_VER >= 13012035) // // Define bit scan intrinsics. // //#define BitScanForward _BitScanForward //#define BitScanReverse _BitScanReverse //BOOLEAN //_BitScanForward ( // OUT DWORD *Index, // IN DWORD Mask // ); //BOOLEAN //_BitScanReverse ( // OUT DWORD *Index, // IN DWORD Mask // ); //#pragma intrinsic(_BitScanForward) //#pragma intrinsic(_BitScanReverse) // // Define FS referencing intrinsics // BYTE __readfsbyte ( IN DWORD Offset ); WORD __readfsword ( IN DWORD Offset ); DWORD __readfsdword ( IN DWORD Offset ); VOID __writefsbyte ( IN DWORD Offset, IN BYTE Data ); VOID __writefsword ( IN DWORD Offset, IN WORD Data ); VOID __writefsdword ( IN DWORD Offset, IN DWORD Data ); #pragma intrinsic(__readfsbyte) #pragma intrinsic(__readfsword) #pragma intrinsic(__readfsdword) #pragma intrinsic(__writefsbyte) #pragma intrinsic(__writefsword) #pragma intrinsic(__writefsdword) #endif #endif #if !defined(MIDL_PASS) && defined(_M_IX86) #if (_MSC_FULL_VER >= 13012035) _inline PVOID GetFiberData( void ) { return *(PVOID *) (ULONG_PTR) __readfsdword (0x10);} _inline PVOID GetCurrentFiber( void ) { return (PVOID) (ULONG_PTR) __readfsdword (0x10);} #else #if _MSC_VER >= 1200 #pragma warning(push) #endif #pragma warning (disable:4035) // disable 4035 (function must return something) _inline PVOID GetFiberData( void ) { __asm { mov eax, fs:[0x10] mov eax,[eax] } } _inline PVOID GetCurrentFiber( void ) { __asm mov eax, fs:[0x10] } #if _MSC_VER >= 1200 #pragma warning(pop) #else #pragma warning (default:4035) // Reenable it #endif #endif #endif // begin_ntddk begin_wx86 // // Define the size of the 80387 save area, which is in the context frame. // #define SIZE_OF_80387_REGISTERS 80 // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_i386 0x00010000 // this assumes that i386 and #define CONTEXT_i486 0x00010000 // i486 have identical context records // end_wx86 #define CONTEXT_CONTROL (CONTEXT_i386 | 0x00000001L) // SS:SP, CS:IP, FLAGS, BP #define CONTEXT_INTEGER (CONTEXT_i386 | 0x00000002L) // AX, BX, CX, DX, SI, DI #define CONTEXT_SEGMENTS (CONTEXT_i386 | 0x00000004L) // DS, ES, FS, GS #define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 0x00000008L) // 387 state #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x00000010L) // DB 0-3,6,7 #define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386 | 0x00000020L) // cpu specific extensions #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER |\ CONTEXT_SEGMENTS) #define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | CONTEXT_EXTENDED_REGISTERS) // begin_wx86 #endif #define MAXIMUM_SUPPORTED_EXTENSION 512 typedef 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; } FLOATING_SAVE_AREA; typedef FLOATING_SAVE_AREA *PFLOATING_SAVE_AREA; // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) is is used to constuct a call frame for APC delivery, // and 3) it is used in the user level thread creation routines. // // The layout of the record conforms to a standard call frame. // typedef struct _CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a threads context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. // FLOATING_SAVE_AREA FloatSave; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_SEGMENTS. // DWORD SegGs; DWORD SegFs; DWORD SegEs; DWORD SegDs; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_INTEGER. // DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_CONTROL. // DWORD Ebp; DWORD Eip; DWORD SegCs; // MUST BE SANITIZED DWORD EFlags; // MUST BE SANITIZED DWORD Esp; DWORD SegSs; // // This section is specified/returned if the ContextFlags word // contains the flag CONTEXT_EXTENDED_REGISTERS. // The format and contexts are processor specific // BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; } CONTEXT; typedef CONTEXT *PCONTEXT; // begin_ntminiport #endif //_X86_ #ifndef _LDT_ENTRY_DEFINED #define _LDT_ENTRY_DEFINED typedef struct _LDT_ENTRY { WORD LimitLow; WORD BaseLow; union { struct { BYTE BaseMid; BYTE Flags1; // Declare as bytes to avoid alignment BYTE Flags2; // Problems. BYTE BaseHi; } Bytes; 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; } Bits; } HighWord; } LDT_ENTRY, *PLDT_ENTRY; #endif #if defined(_MIPS_) // // Define functions to get the address of the current fiber and the // current fiber data. // #define GetCurrentFiber() ((*(PNT_TIB *)0x7ffff4a8)->FiberData) #define GetFiberData() (*(PVOID *)(GetCurrentFiber())) // begin_ntddk begin_nthal // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_R4000 0x00010000 // r4000 context #define CONTEXT_CONTROL (CONTEXT_R4000 | 0x00000001) #define CONTEXT_FLOATING_POINT (CONTEXT_R4000 | 0x00000002) #define CONTEXT_INTEGER (CONTEXT_R4000 | 0x00000004) #define CONTEXT_EXTENDED_FLOAT (CONTEXT_FLOATING_POINT | 0x00000008) #define CONTEXT_EXTENDED_INTEGER (CONTEXT_INTEGER | 0x00000010) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | \ CONTEXT_INTEGER | CONTEXT_EXTENDED_INTEGER) #endif // // Context Frame // // N.B. This frame must be exactly a multiple of 16 bytes in length. // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) it is used to constuct a call frame for APC delivery, // 3) it is used to construct a call frame for exception dispatching // in user mode, and 4) it is used in the user level thread creation // routines. // // The layout of the record conforms to a standard call frame. // typedef struct _CONTEXT { // // This section is always present and is used as an argument build // area. // // N.B. Context records are 0 mod 8 aligned starting with NT 4.0. // union { DWORD Argument[4]; ULONGLONG Alignment; }; // // The following union defines the 32-bit and 64-bit register context. // union { // // 32-bit context. // struct { // // This section is specified/returned if the ContextFlags contains // the flag CONTEXT_FLOATING_POINT. // // N.B. This section contains the 16 double floating registers f0, // f2, ..., f30. // DWORD FltF0; DWORD FltF1; DWORD FltF2; DWORD FltF3; DWORD FltF4; DWORD FltF5; DWORD FltF6; DWORD FltF7; DWORD FltF8; DWORD FltF9; DWORD FltF10; DWORD FltF11; DWORD FltF12; DWORD FltF13; DWORD FltF14; DWORD FltF15; DWORD FltF16; DWORD FltF17; DWORD FltF18; DWORD FltF19; DWORD FltF20; DWORD FltF21; DWORD FltF22; DWORD FltF23; DWORD FltF24; DWORD FltF25; DWORD FltF26; DWORD FltF27; DWORD FltF28; DWORD FltF29; DWORD FltF30; DWORD FltF31; // // This section is specified/returned if the ContextFlags contains // the flag CONTEXT_INTEGER. // // N.B. The registers gp, sp, and ra are defined in this section, // but are considered part of the control context rather than // part of the integer context. // // N.B. Register zero is not stored in the frame. // DWORD IntZero; DWORD IntAt; DWORD IntV0; DWORD IntV1; DWORD IntA0; DWORD IntA1; DWORD IntA2; DWORD IntA3; DWORD IntT0; DWORD IntT1; DWORD IntT2; DWORD IntT3; DWORD IntT4; DWORD IntT5; DWORD IntT6; DWORD IntT7; DWORD IntS0; DWORD IntS1; DWORD IntS2; DWORD IntS3; DWORD IntS4; DWORD IntS5; DWORD IntS6; DWORD IntS7; DWORD IntT8; DWORD IntT9; DWORD IntK0; DWORD IntK1; DWORD IntGp; DWORD IntSp; DWORD IntS8; DWORD IntRa; DWORD IntLo; DWORD IntHi; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_FLOATING_POINT. // DWORD Fsr; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_CONTROL. // // N.B. The registers gp, sp, and ra are defined in the integer section, // but are considered part of the control context rather than part of // the integer context. // DWORD Fir; DWORD Psr; // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; }; // // 64-bit context. // struct { // // This section is specified/returned if the ContextFlags contains // the flag CONTEXT_EXTENDED_FLOAT. // // N.B. This section contains the 32 double floating registers f0, // f1, ..., f31. // ULONGLONG XFltF0; ULONGLONG XFltF1; ULONGLONG XFltF2; ULONGLONG XFltF3; ULONGLONG XFltF4; ULONGLONG XFltF5; ULONGLONG XFltF6; ULONGLONG XFltF7; ULONGLONG XFltF8; ULONGLONG XFltF9; ULONGLONG XFltF10; ULONGLONG XFltF11; ULONGLONG XFltF12; ULONGLONG XFltF13; ULONGLONG XFltF14; ULONGLONG XFltF15; ULONGLONG XFltF16; ULONGLONG XFltF17; ULONGLONG XFltF18; ULONGLONG XFltF19; ULONGLONG XFltF20; ULONGLONG XFltF21; ULONGLONG XFltF22; ULONGLONG XFltF23; ULONGLONG XFltF24; ULONGLONG XFltF25; ULONGLONG XFltF26; ULONGLONG XFltF27; ULONGLONG XFltF28; ULONGLONG XFltF29; ULONGLONG XFltF30; ULONGLONG XFltF31; // // The following sections must exactly overlay the 32-bit context. // DWORD Fill1; DWORD Fill2; // // This section is specified/returned if the ContextFlags contains // the flag CONTEXT_FLOATING_POINT. // DWORD XFsr; // // This section is specified/returned if the ContextFlags contains // the flag CONTEXT_CONTROL. // // N.B. The registers gp, sp, and ra are defined in the integer // section, but are considered part of the control context // rather than part of the integer context. // DWORD XFir; DWORD XPsr; // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD XContextFlags; // // This section is specified/returned if the ContextFlags contains // the flag CONTEXT_EXTENDED_INTEGER. // // N.B. The registers gp, sp, and ra are defined in this section, // but are considered part of the control context rather than // part of the integer context. // // N.B. Register zero is not stored in the frame. // ULONGLONG XIntZero; ULONGLONG XIntAt; ULONGLONG XIntV0; ULONGLONG XIntV1; ULONGLONG XIntA0; ULONGLONG XIntA1; ULONGLONG XIntA2; ULONGLONG XIntA3; ULONGLONG XIntT0; ULONGLONG XIntT1; ULONGLONG XIntT2; ULONGLONG XIntT3; ULONGLONG XIntT4; ULONGLONG XIntT5; ULONGLONG XIntT6; ULONGLONG XIntT7; ULONGLONG XIntS0; ULONGLONG XIntS1; ULONGLONG XIntS2; ULONGLONG XIntS3; ULONGLONG XIntS4; ULONGLONG XIntS5; ULONGLONG XIntS6; ULONGLONG XIntS7; ULONGLONG XIntT8; ULONGLONG XIntT9; ULONGLONG XIntK0; ULONGLONG XIntK1; ULONGLONG XIntGp; ULONGLONG XIntSp; ULONGLONG XIntS8; ULONGLONG XIntRa; ULONGLONG XIntLo; ULONGLONG XIntHi; }; }; } CONTEXT, *PCONTEXT; // end_ntddk end_nthal #define CONTEXT32_LENGTH 0x130 // The original 32-bit Context length (pre NT 4.0) #endif // MIPS #if defined(_MIPS_) VOID __jump_unwind ( PVOID Fp, PVOID TargetPc ); #endif // MIPS #if defined(_PPC_) // // The address of the TEB is placed into GPR 13 at context switch time // and should never be destroyed. To get the address of the TEB use // the compiler intrinsic to access it directly from GPR 13. // #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) unsigned __gregister_get( unsigned const regnum ); #define NtCurrentTeb() ((struct _TEB *)__gregister_get(13)) #elif defined(_M_PPC) struct _TEB * __builtin_get_gpr13(VOID); #define NtCurrentTeb() ((struct _TEB *)__builtin_get_gpr13()) #endif // // Define functions to get the address of the current fiber and the // current fiber data. // #define GetCurrentFiber() (((PNT_TIB)NtCurrentTeb())->FiberData) #define GetFiberData() (*(PVOID *)(GetCurrentFiber())) // begin_ntddk begin_nthal // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_CONTROL 0x00000001L #define CONTEXT_FLOATING_POINT 0x00000002L #define CONTEXT_INTEGER 0x00000004L #define CONTEXT_DEBUG_REGISTERS 0x00000008L #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) #endif // // Context Frame // // N.B. This frame must be exactly a multiple of 16 bytes in length. // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) it is used to constuct a call frame for APC delivery, // 3) it is used to construct a call frame for exception dispatching // in user mode, and 4) it is used in the user level thread creation // routines. // // Requires at least 8-byte alignment (double) // typedef struct _CONTEXT { // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_FLOATING_POINT. // double Fpr0; // Floating registers 0..31 double Fpr1; double Fpr2; double Fpr3; double Fpr4; double Fpr5; double Fpr6; double Fpr7; double Fpr8; double Fpr9; double Fpr10; double Fpr11; double Fpr12; double Fpr13; double Fpr14; double Fpr15; double Fpr16; double Fpr17; double Fpr18; double Fpr19; double Fpr20; double Fpr21; double Fpr22; double Fpr23; double Fpr24; double Fpr25; double Fpr26; double Fpr27; double Fpr28; double Fpr29; double Fpr30; double Fpr31; double Fpscr; // Floating point status/control reg // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_INTEGER. // DWORD Gpr0; // General registers 0..31 DWORD Gpr1; DWORD Gpr2; DWORD Gpr3; DWORD Gpr4; DWORD Gpr5; DWORD Gpr6; DWORD Gpr7; DWORD Gpr8; DWORD Gpr9; DWORD Gpr10; DWORD Gpr11; DWORD Gpr12; DWORD Gpr13; DWORD Gpr14; DWORD Gpr15; DWORD Gpr16; DWORD Gpr17; DWORD Gpr18; DWORD Gpr19; DWORD Gpr20; DWORD Gpr21; DWORD Gpr22; DWORD Gpr23; DWORD Gpr24; DWORD Gpr25; DWORD Gpr26; DWORD Gpr27; DWORD Gpr28; DWORD Gpr29; DWORD Gpr30; DWORD Gpr31; DWORD Cr; // Condition register DWORD Xer; // Fixed point exception register // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_CONTROL. // DWORD Msr; // Machine status register DWORD Iar; // Instruction address register DWORD Lr; // Link register DWORD Ctr; // Count register // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; DWORD Fill[3]; // Pad out to multiple of 16 bytes // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // DWORD Dr0; // Breakpoint Register 1 DWORD Dr1; // Breakpoint Register 2 DWORD Dr2; // Breakpoint Register 3 DWORD Dr3; // Breakpoint Register 4 DWORD Dr4; // Breakpoint Register 5 DWORD Dr5; // Breakpoint Register 6 DWORD Dr6; // Debug Status Register DWORD Dr7; // Debug Control Register } CONTEXT, *PCONTEXT; // end_ntddk end_nthal // // Stack frame header // // Order of appearance in stack frame: // Header (six words) // Parameters (at least eight words) // Local variables // Saved GPRs // Saved FPRs // // Minimum alignment is 8 bytes typedef struct _STACK_FRAME_HEADER { // GPR 1 points here DWORD BackChain; // Addr of previous frame DWORD GlueSaved1; // Used by glue code DWORD GlueSaved2; DWORD Reserved1; // Reserved DWORD Spare1; // Used by tracing, profiling, ... DWORD Spare2; DWORD Parameter0; // First 8 parameter words are DWORD Parameter1; // always present DWORD Parameter2; DWORD Parameter3; DWORD Parameter4; DWORD Parameter5; DWORD Parameter6; DWORD Parameter7; } STACK_FRAME_HEADER,*PSTACK_FRAME_HEADER; VOID __jump_unwind ( PVOID Fp, PVOID TargetPc ); #endif // defined(_PPC_) #if defined(_MPPC_) // // The address of the TEB is placed into GPR 13 at context switch time // and should never be destroyed. To get the address of the TEB use // the compiler intrinsic to access it directly from GPR 13. // #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000) unsigned __gregister_get( unsigned const regnum ); #define NtCurrentTeb() ((struct _TEB *)__gregister_get(13)) #elif defined(_M_PPC) struct _TEB * __builtin_get_gpr13(VOID); #define NtCurrentTeb() ((struct _TEB *)__builtin_get_gpr13()) #endif // // Define functions to get the address of the current fiber and the // current fiber data. // #define GetCurrentFiber() (((PNT_TIB)NtCurrentTeb())->FiberData) #define GetFiberData() (*(PVOID *)(GetCurrentFiber())) // begin_ntddk begin_nthal // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_CONTROL 0x00000001L #define CONTEXT_FLOATING_POINT 0x00000002L #define CONTEXT_INTEGER 0x00000004L #define CONTEXT_DEBUG_REGISTERS 0x00000008L #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER) #endif // // Context Frame // // N.B. This frame must be exactly a multiple of 16 bytes in length. // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) it is used to constuct a call frame for APC delivery, // 3) it is used to construct a call frame for exception dispatching // in user mode, and 4) it is used in the user level thread creation // routines. // // Requires at least 8-byte alignment (double) // typedef struct _CONTEXT { // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_FLOATING_POINT. // double Fpr0; // Floating registers 0..31 double Fpr1; double Fpr2; double Fpr3; double Fpr4; double Fpr5; double Fpr6; double Fpr7; double Fpr8; double Fpr9; double Fpr10; double Fpr11; double Fpr12; double Fpr13; double Fpr14; double Fpr15; double Fpr16; double Fpr17; double Fpr18; double Fpr19; double Fpr20; double Fpr21; double Fpr22; double Fpr23; double Fpr24; double Fpr25; double Fpr26; double Fpr27; double Fpr28; double Fpr29; double Fpr30; double Fpr31; double Fpscr; // Floating point status/control reg // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_INTEGER. // DWORD Gpr0; // General registers 0..31 DWORD Gpr1; DWORD Gpr2; DWORD Gpr3; DWORD Gpr4; DWORD Gpr5; DWORD Gpr6; DWORD Gpr7; DWORD Gpr8; DWORD Gpr9; DWORD Gpr10; DWORD Gpr11; DWORD Gpr12; DWORD Gpr13; DWORD Gpr14; DWORD Gpr15; DWORD Gpr16; DWORD Gpr17; DWORD Gpr18; DWORD Gpr19; DWORD Gpr20; DWORD Gpr21; DWORD Gpr22; DWORD Gpr23; DWORD Gpr24; DWORD Gpr25; DWORD Gpr26; DWORD Gpr27; DWORD Gpr28; DWORD Gpr29; DWORD Gpr30; DWORD Gpr31; DWORD Cr; // Condition register DWORD Xer; // Fixed point exception register // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_CONTROL. // DWORD Msr; // Machine status register DWORD Iar; // Instruction address register DWORD Lr; // Link register DWORD Ctr; // Count register // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; DWORD Fill[3]; // Pad out to multiple of 16 bytes // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // DWORD Dr0; // Breakpoint Register 1 DWORD Dr1; // Breakpoint Register 2 DWORD Dr2; // Breakpoint Register 3 DWORD Dr3; // Breakpoint Register 4 DWORD Dr4; // Breakpoint Register 5 DWORD Dr5; // Breakpoint Register 6 DWORD Dr6; // Debug Status Register DWORD Dr7; // Debug Control Register } CONTEXT, *PCONTEXT; // end_ntddk end_nthal // // Stack frame header // // Order of appearance in stack frame: // Header (six words) // Parameters (at least eight words) // Local variables // Saved GPRs // Saved FPRs // // Minimum alignment is 8 bytes typedef struct _STACK_FRAME_HEADER { // GPR 1 points here DWORD BackChain; // Addr of previous frame DWORD GlueSaved1; // Used by glue code DWORD GlueSaved2; DWORD Reserved1; // Reserved DWORD Spare1; // Used by tracing, profiling, ... DWORD Spare2; DWORD Parameter0; // First 8 parameter words are DWORD Parameter1; // always present DWORD Parameter2; DWORD Parameter3; DWORD Parameter4; DWORD Parameter5; DWORD Parameter6; DWORD Parameter7; } STACK_FRAME_HEADER,*PSTACK_FRAME_HEADER; VOID __jump_unwind ( PVOID Fp, PVOID TargetPc ); #endif // defined(_MPPC_) #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) void * _cdecl _rdteb(void); #if defined(_M_IA64) // winnt #pragma intrinsic(_rdteb) // winnt #endif // winnt #if defined(_M_IA64) #define NtCurrentTeb() ((struct _TEB *)_rdteb()) #else struct _TEB * NtCurrentTeb(void); #endif // // Define functions to get the address of the current fiber and the // current fiber data. // #define GetCurrentFiber() (((PNT_TIB)NtCurrentTeb())->FiberData) #define GetFiberData() (*(PVOID *)(GetCurrentFiber())) #endif // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_M_IA64) #ifdef _IA64_ // begin_ntddk begin_nthal // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_IA64 0x00080000 #define CONTEXT_CONTROL (CONTEXT_IA64 | 0x00000001L) #define CONTEXT_LOWER_FLOATING_POINT (CONTEXT_IA64 | 0x00000002L) #define CONTEXT_HIGHER_FLOATING_POINT (CONTEXT_IA64 | 0x00000004L) #define CONTEXT_INTEGER (CONTEXT_IA64 | 0x00000008L) #define CONTEXT_DEBUG (CONTEXT_IA64 | 0x00000010L) #define CONTEXT_IA32_CONTROL (CONTEXT_IA64 | 0x00000020L) // Includes StIPSR #define CONTEXT_FLOATING_POINT (CONTEXT_LOWER_FLOATING_POINT | CONTEXT_HIGHER_FLOATING_POINT) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER | CONTEXT_IA32_CONTROL) #define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER | CONTEXT_DEBUG | CONTEXT_IA32_CONTROL) #endif // !defined(RC_INVOKED) // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) it is used to construct a call frame for APC delivery, // 3) it is used to construct a call frame for exception dispatching // in user mode, 4) it is used in the user level thread creation // routines, and 5) it is used to to pass thread state to debuggers. // // N.B. Because this record is used as a call frame, it must be EXACTLY // a multiple of 16 bytes in length and aligned on a 16-byte boundary. // typedef struct _CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // DWORD ContextFlags; DWORD Fill1[3]; // for alignment of following on 16-byte boundary // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_DEBUG. // // N.B. CONTEXT_DEBUG is *not* part of CONTEXT_FULL. // ULONGLONG DbI0; ULONGLONG DbI1; ULONGLONG DbI2; ULONGLONG DbI3; ULONGLONG DbI4; ULONGLONG DbI5; ULONGLONG DbI6; ULONGLONG DbI7; ULONGLONG DbD0; ULONGLONG DbD1; ULONGLONG DbD2; ULONGLONG DbD3; ULONGLONG DbD4; ULONGLONG DbD5; ULONGLONG DbD6; ULONGLONG DbD7; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_LOWER_FLOATING_POINT. // FLOAT128 FltS0; FLOAT128 FltS1; FLOAT128 FltS2; FLOAT128 FltS3; FLOAT128 FltT0; FLOAT128 FltT1; FLOAT128 FltT2; FLOAT128 FltT3; FLOAT128 FltT4; FLOAT128 FltT5; FLOAT128 FltT6; FLOAT128 FltT7; FLOAT128 FltT8; FLOAT128 FltT9; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_HIGHER_FLOATING_POINT. // FLOAT128 FltS4; FLOAT128 FltS5; FLOAT128 FltS6; FLOAT128 FltS7; FLOAT128 FltS8; FLOAT128 FltS9; FLOAT128 FltS10; FLOAT128 FltS11; FLOAT128 FltS12; FLOAT128 FltS13; FLOAT128 FltS14; FLOAT128 FltS15; FLOAT128 FltS16; FLOAT128 FltS17; FLOAT128 FltS18; FLOAT128 FltS19; FLOAT128 FltF32; FLOAT128 FltF33; FLOAT128 FltF34; FLOAT128 FltF35; FLOAT128 FltF36; FLOAT128 FltF37; FLOAT128 FltF38; FLOAT128 FltF39; FLOAT128 FltF40; FLOAT128 FltF41; FLOAT128 FltF42; FLOAT128 FltF43; FLOAT128 FltF44; FLOAT128 FltF45; FLOAT128 FltF46; FLOAT128 FltF47; FLOAT128 FltF48; FLOAT128 FltF49; FLOAT128 FltF50; FLOAT128 FltF51; FLOAT128 FltF52; FLOAT128 FltF53; FLOAT128 FltF54; FLOAT128 FltF55; FLOAT128 FltF56; FLOAT128 FltF57; FLOAT128 FltF58; FLOAT128 FltF59; FLOAT128 FltF60; FLOAT128 FltF61; FLOAT128 FltF62; FLOAT128 FltF63; FLOAT128 FltF64; FLOAT128 FltF65; FLOAT128 FltF66; FLOAT128 FltF67; FLOAT128 FltF68; FLOAT128 FltF69; FLOAT128 FltF70; FLOAT128 FltF71; FLOAT128 FltF72; FLOAT128 FltF73; FLOAT128 FltF74; FLOAT128 FltF75; FLOAT128 FltF76; FLOAT128 FltF77; FLOAT128 FltF78; FLOAT128 FltF79; FLOAT128 FltF80; FLOAT128 FltF81; FLOAT128 FltF82; FLOAT128 FltF83; FLOAT128 FltF84; FLOAT128 FltF85; FLOAT128 FltF86; FLOAT128 FltF87; FLOAT128 FltF88; FLOAT128 FltF89; FLOAT128 FltF90; FLOAT128 FltF91; FLOAT128 FltF92; FLOAT128 FltF93; FLOAT128 FltF94; FLOAT128 FltF95; FLOAT128 FltF96; FLOAT128 FltF97; FLOAT128 FltF98; FLOAT128 FltF99; FLOAT128 FltF100; FLOAT128 FltF101; FLOAT128 FltF102; FLOAT128 FltF103; FLOAT128 FltF104; FLOAT128 FltF105; FLOAT128 FltF106; FLOAT128 FltF107; FLOAT128 FltF108; FLOAT128 FltF109; FLOAT128 FltF110; FLOAT128 FltF111; FLOAT128 FltF112; FLOAT128 FltF113; FLOAT128 FltF114; FLOAT128 FltF115; FLOAT128 FltF116; FLOAT128 FltF117; FLOAT128 FltF118; FLOAT128 FltF119; FLOAT128 FltF120; FLOAT128 FltF121; FLOAT128 FltF122; FLOAT128 FltF123; FLOAT128 FltF124; FLOAT128 FltF125; FLOAT128 FltF126; FLOAT128 FltF127; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_LOWER_FLOATING_POINT | CONTEXT_HIGHER_FLOATING_POINT | CONTEXT_CONTROL. // ULONGLONG StFPSR; // FP status // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_INTEGER. // // N.B. The registers gp, sp, rp are part of the control context // ULONGLONG IntGp; // r1, volatile ULONGLONG IntT0; // r2-r3, volatile ULONGLONG IntT1; // ULONGLONG IntS0; // r4-r7, preserved ULONGLONG IntS1; ULONGLONG IntS2; ULONGLONG IntS3; ULONGLONG IntV0; // r8, volatile ULONGLONG IntT2; // r9-r11, volatile ULONGLONG IntT3; ULONGLONG IntT4; ULONGLONG IntSp; // stack pointer (r12), special ULONGLONG IntTeb; // teb (r13), special ULONGLONG IntT5; // r14-r31, volatile ULONGLONG IntT6; ULONGLONG IntT7; ULONGLONG IntT8; ULONGLONG IntT9; ULONGLONG IntT10; ULONGLONG IntT11; ULONGLONG IntT12; ULONGLONG IntT13; ULONGLONG IntT14; ULONGLONG IntT15; ULONGLONG IntT16; ULONGLONG IntT17; ULONGLONG IntT18; ULONGLONG IntT19; ULONGLONG IntT20; ULONGLONG IntT21; ULONGLONG IntT22; ULONGLONG IntNats; // Nat bits for r1-r31 // r1-r31 in bits 1 thru 31. ULONGLONG Preds; // predicates, preserved ULONGLONG BrRp; // return pointer, b0, preserved ULONGLONG BrS0; // b1-b5, preserved ULONGLONG BrS1; ULONGLONG BrS2; ULONGLONG BrS3; ULONGLONG BrS4; ULONGLONG BrT0; // b6-b7, volatile ULONGLONG BrT1; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_CONTROL. // // Other application registers ULONGLONG ApUNAT; // User Nat collection register, preserved ULONGLONG ApLC; // Loop counter register, preserved ULONGLONG ApEC; // Epilog counter register, preserved ULONGLONG ApCCV; // CMPXCHG value register, volatile ULONGLONG ApDCR; // Default control register (TBD) // Register stack info ULONGLONG RsPFS; // Previous function state, preserved ULONGLONG RsBSP; // Backing store pointer, preserved ULONGLONG RsBSPSTORE; ULONGLONG RsRSC; // RSE configuration, volatile ULONGLONG RsRNAT; // RSE Nat collection register, preserved // Trap Status Information ULONGLONG StIPSR; // Interruption Processor Status ULONGLONG StIIP; // Interruption IP ULONGLONG StIFS; // Interruption Function State // iA32 related control registers ULONGLONG StFCR; // copy of Ar21 ULONGLONG Eflag; // Eflag copy of Ar24 ULONGLONG SegCSD; // iA32 CSDescriptor (Ar25) ULONGLONG SegSSD; // iA32 SSDescriptor (Ar26) ULONGLONG Cflag; // Cr0+Cr4 copy of Ar27 ULONGLONG StFSR; // x86 FP status (copy of AR28) ULONGLONG StFIR; // x86 FP status (copy of AR29) ULONGLONG StFDR; // x86 FP status (copy of AR30) ULONGLONG UNUSEDPACK; // added to pack StFDR to 16-bytes } CONTEXT, *PCONTEXT; // begin_winnt // // Plabel descriptor structure definition // typedef struct _PLABEL_DESCRIPTOR { ULONGLONG EntryPoint; ULONGLONG GlobalPointer; } PLABEL_DESCRIPTOR, *PPLABEL_DESCRIPTOR; #endif // _IA64_ #ifdef _IA64_ VOID __jump_unwind ( ULONGLONG TargetMsFrame, ULONGLONG TargetBsFrame, ULONGLONG TargetPc ); #endif // _IA64_ #define EXCEPTION_NONCONTINUABLE 0x1 // Noncontinuable exception #define EXCEPTION_MAXIMUM_PARAMETERS 15 // maximum number of exception parameters // // Exception record definition. // typedef struct _EXCEPTION_RECORD { DWORD ExceptionCode; DWORD ExceptionFlags; struct _EXCEPTION_RECORD *ExceptionRecord; PVOID ExceptionAddress; DWORD NumberParameters; ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD; typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; typedef struct _EXCEPTION_RECORD32 { DWORD ExceptionCode; DWORD ExceptionFlags; DWORD ExceptionRecord; DWORD ExceptionAddress; DWORD NumberParameters; DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; typedef struct _EXCEPTION_RECORD64 { DWORD ExceptionCode; DWORD ExceptionFlags; DWORD64 ExceptionRecord; DWORD64 ExceptionAddress; DWORD NumberParameters; DWORD __unusedAlignment; DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; // // Typedef for pointer returned by exception_info() // typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; typedef PVOID PACCESS_TOKEN; typedef PVOID PSECURITY_DESCRIPTOR; typedef PVOID PSID; //////////////////////////////////////////////////////////////////////// // // // ACCESS MASK // // // //////////////////////////////////////////////////////////////////////// // // Define the access mask as a longword sized structure divided up as // follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------+---------------+-------------------------------+ // |G|G|G|G|Res'd|A| StandardRights| SpecificRights | // |R|W|E|A| |S| | | // +-+-------------+---------------+-------------------------------+ // // typedef struct _ACCESS_MASK { // WORD SpecificRights; // BYTE StandardRights; // BYTE AccessSystemAcl : 1; // BYTE Reserved : 3; // BYTE GenericAll : 1; // BYTE GenericExecute : 1; // BYTE GenericWrite : 1; // BYTE GenericRead : 1; // } ACCESS_MASK; // typedef ACCESS_MASK *PACCESS_MASK; // // but to make life simple for programmer's we'll allow them to specify // a desired access mask by simply OR'ing together mulitple single rights // and treat an access mask as a DWORD. For example // // DesiredAccess = DELETE | READ_CONTROL // // So we'll declare ACCESS_MASK as DWORD // // begin_ntddk begin_wdm begin_nthal begin_ntifs typedef DWORD ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; //////////////////////////////////////////////////////////////////////// // // // ACCESS TYPES // // // //////////////////////////////////////////////////////////////////////// // begin_ntddk begin_wdm begin_nthal begin_ntifs // // The following are masks for the predefined standard access types // #define DELETE (0x00010000L) #define READ_CONTROL (0x00020000L) #define WRITE_DAC (0x00040000L) #define WRITE_OWNER (0x00080000L) #define SYNCHRONIZE (0x00100000L) #define STANDARD_RIGHTS_REQUIRED (0x000F0000L) #define STANDARD_RIGHTS_READ (READ_CONTROL) #define STANDARD_RIGHTS_WRITE (READ_CONTROL) #define STANDARD_RIGHTS_EXECUTE (READ_CONTROL) #define STANDARD_RIGHTS_ALL (0x001F0000L) #define SPECIFIC_RIGHTS_ALL (0x0000FFFFL) // // AccessSystemAcl access type // #define ACCESS_SYSTEM_SECURITY (0x01000000L) // // MaximumAllowed access type // #define MAXIMUM_ALLOWED (0x02000000L) // // These are the generic rights. // #define GENERIC_READ (0x80000000L) #define GENERIC_WRITE (0x40000000L) #define GENERIC_EXECUTE (0x20000000L) #define GENERIC_ALL (0x10000000L) // // Define the generic mapping array. This is used to denote the // mapping of each generic access right to a specific access mask. // typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead; ACCESS_MASK GenericWrite; ACCESS_MASK GenericExecute; ACCESS_MASK GenericAll; } GENERIC_MAPPING; typedef GENERIC_MAPPING *PGENERIC_MAPPING; //////////////////////////////////////////////////////////////////////// // // // LUID_AND_ATTRIBUTES // // // //////////////////////////////////////////////////////////////////////// // // #include typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; DWORD Attributes; } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; #include //////////////////////////////////////////////////////////////////////// // // // Security Id (SID) // // // //////////////////////////////////////////////////////////////////////// // // // Pictorially the structure of an SID is as follows: // // 1 1 1 1 1 1 // 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------------------------------------------------------+ // | SubAuthorityCount |Reserved1 (SBZ)| Revision | // +---------------------------------------------------------------+ // | IdentifierAuthority[0] | // +---------------------------------------------------------------+ // | IdentifierAuthority[1] | // +---------------------------------------------------------------+ // | IdentifierAuthority[2] | // +---------------------------------------------------------------+ // | | // +- - - - - - - - SubAuthority[] - - - - - - - - -+ // | | // +---------------------------------------------------------------+ // // // begin_ntifs #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED #define SID_IDENTIFIER_AUTHORITY_DEFINED typedef struct _SID_IDENTIFIER_AUTHORITY { BYTE Value[6]; } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; #endif #ifndef SID_DEFINED #define SID_DEFINED typedef struct _SID { BYTE Revision; BYTE SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; #ifdef MIDL_PASS [size_is(SubAuthorityCount)] DWORD SubAuthority[*]; #else // MIDL_PASS DWORD SubAuthority[ANYSIZE_ARRAY]; #endif // MIDL_PASS } SID, *PISID; #endif #define SID_REVISION (1) // Current revision level #define SID_MAX_SUB_AUTHORITIES (15) #define SID_RECOMMENDED_SUB_AUTHORITIES (1) // Will change to around 6 // in a future release. #ifndef MIDL_PASS #define SECURITY_MAX_SID_SIZE \ (sizeof(SID) - sizeof(DWORD) + (SID_MAX_SUB_AUTHORITIES * sizeof(DWORD))) #endif // MIDL_PASS typedef enum _SID_NAME_USE { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown, SidTypeComputer } SID_NAME_USE, *PSID_NAME_USE; typedef struct _SID_AND_ATTRIBUTES { PSID Sid; DWORD Attributes; } SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES; typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; ///////////////////////////////////////////////////////////////////////////// // // // Universal well-known SIDs // // // // Null SID S-1-0-0 // // World S-1-1-0 // // Local S-1-2-0 // // Creator Owner ID S-1-3-0 // // Creator Group ID S-1-3-1 // // Creator Owner Server ID S-1-3-2 // // Creator Group Server ID S-1-3-3 // // // // (Non-unique IDs) S-1-4 // // // ///////////////////////////////////////////////////////////////////////////// #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} #define SECURITY_NULL_RID (0x00000000L) #define SECURITY_WORLD_RID (0x00000000L) #define SECURITY_LOCAL_RID (0x00000000L) #define SECURITY_CREATOR_OWNER_RID (0x00000000L) #define SECURITY_CREATOR_GROUP_RID (0x00000001L) #define SECURITY_CREATOR_OWNER_SERVER_RID (0x00000002L) #define SECURITY_CREATOR_GROUP_SERVER_RID (0x00000003L) /////////////////////////////////////////////////////////////////////////////// // // // NT well-known SIDs // // // // NT Authority S-1-5 // // Dialup S-1-5-1 // // // // Network S-1-5-2 // // Batch S-1-5-3 // // Interactive S-1-5-4 // // (Logon IDs) S-1-5-5-X-Y // // Service S-1-5-6 // // AnonymousLogon S-1-5-7 (aka null logon session) // // Proxy S-1-5-8 // // Enterprise DC (EDC) S-1-5-9 (aka domain controller account) // // Self S-1-5-10 (self RID) // // Authenticated User S-1-5-11 (Authenticated user somewhere) // // Restricted Code S-1-5-12 (Running restricted code) // // Terminal Server S-1-5-13 (Running on Terminal Server) // // Remote Logon S-1-5-14 (Remote Interactive Logon) // // This Organization S-1-5-15 // // // // Local System S-1-5-18 // // Local Service S-1-5-19 // // Network Service S-1-5-20 // // // // (NT non-unique IDs) S-1-5-0x15-... (NT Domain Sids) // // // // (Built-in domain) S-1-5-0x20 // // // // (Security Package IDs) S-1-5-0x40 // // NTLM Authentication S-1-5-0x40-10 // // SChannel Authentication S-1-5-0x40-14 // // Digest Authentication S-1-5-0x40-21 // // // // Other Organization S-1-5-1000 (>=1000 can not be filtered) // // // // // // NOTE: the relative identifier values (RIDs) determine which security // // boundaries the SID is allowed to cross. Before adding new RIDs, // // a determination needs to be made regarding which range they should // // be added to in order to ensure proper "SID filtering" // // // /////////////////////////////////////////////////////////////////////////////// #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5} // ntifs #define SECURITY_DIALUP_RID (0x00000001L) #define SECURITY_NETWORK_RID (0x00000002L) #define SECURITY_BATCH_RID (0x00000003L) #define SECURITY_INTERACTIVE_RID (0x00000004L) #define SECURITY_LOGON_IDS_RID (0x00000005L) #define SECURITY_LOGON_IDS_RID_COUNT (3L) #define SECURITY_SERVICE_RID (0x00000006L) #define SECURITY_ANONYMOUS_LOGON_RID (0x00000007L) #define SECURITY_PROXY_RID (0x00000008L) #define SECURITY_ENTERPRISE_CONTROLLERS_RID (0x00000009L) #define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID #define SECURITY_PRINCIPAL_SELF_RID (0x0000000AL) #define SECURITY_AUTHENTICATED_USER_RID (0x0000000BL) #define SECURITY_RESTRICTED_CODE_RID (0x0000000CL) #define SECURITY_TERMINAL_SERVER_RID (0x0000000DL) #define SECURITY_REMOTE_LOGON_RID (0x0000000EL) #define SECURITY_THIS_ORGANIZATION_RID (0x0000000FL) #define SECURITY_LOCAL_SYSTEM_RID (0x00000012L) #define SECURITY_LOCAL_SERVICE_RID (0x00000013L) #define SECURITY_NETWORK_SERVICE_RID (0x00000014L) #define SECURITY_NT_NON_UNIQUE (0x00000015L) #define SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT (3L) #define SECURITY_BUILTIN_DOMAIN_RID (0x00000020L) #define SECURITY_PACKAGE_BASE_RID (0x00000040L) #define SECURITY_PACKAGE_RID_COUNT (2L) #define SECURITY_PACKAGE_NTLM_RID (0x0000000AL) #define SECURITY_PACKAGE_SCHANNEL_RID (0x0000000EL) #define SECURITY_PACKAGE_DIGEST_RID (0x00000015L) #define SECURITY_MAX_ALWAYS_FILTERED (0x000003E7L) #define SECURITY_MIN_NEVER_FILTERED (0x000003E8L) #define SECURITY_OTHER_ORGANIZATION_RID (0x000003E8L) ///////////////////////////////////////////////////////////////////////////// // // // well-known domain relative sub-authority values (RIDs)... // // // ///////////////////////////////////////////////////////////////////////////// // Well-known users ... #define FOREST_USER_RID_MAX (0x000001F3L) #define DOMAIN_USER_RID_ADMIN (0x000001F4L) #define DOMAIN_USER_RID_GUEST (0x000001F5L) #define DOMAIN_USER_RID_KRBTGT (0x000001F6L) #define DOMAIN_USER_RID_MAX (0x000003E7L) // well-known groups ... #define DOMAIN_GROUP_RID_ADMINS (0x00000200L) #define DOMAIN_GROUP_RID_USERS (0x00000201L) #define DOMAIN_GROUP_RID_GUESTS (0x00000202L) #define DOMAIN_GROUP_RID_COMPUTERS (0x00000203L) #define DOMAIN_GROUP_RID_CONTROLLERS (0x00000204L) #define DOMAIN_GROUP_RID_CERT_ADMINS (0x00000205L) #define DOMAIN_GROUP_RID_SCHEMA_ADMINS (0x00000206L) #define DOMAIN_GROUP_RID_ENTERPRISE_ADMINS (0x00000207L) #define DOMAIN_GROUP_RID_POLICY_ADMINS (0x00000208L) // well-known aliases ... #define DOMAIN_ALIAS_RID_ADMINS (0x00000220L) #define DOMAIN_ALIAS_RID_USERS (0x00000221L) #define DOMAIN_ALIAS_RID_GUESTS (0x00000222L) #define DOMAIN_ALIAS_RID_POWER_USERS (0x00000223L) #define DOMAIN_ALIAS_RID_ACCOUNT_OPS (0x00000224L) #define DOMAIN_ALIAS_RID_SYSTEM_OPS (0x00000225L) #define DOMAIN_ALIAS_RID_PRINT_OPS (0x00000226L) #define DOMAIN_ALIAS_RID_BACKUP_OPS (0x00000227L) #define DOMAIN_ALIAS_RID_REPLICATOR (0x00000228L) #define DOMAIN_ALIAS_RID_RAS_SERVERS (0x00000229L) #define DOMAIN_ALIAS_RID_PREW2KCOMPACCESS (0x0000022AL) #define DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS (0x0000022BL) #define DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS (0x0000022CL) #define DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS (0x0000022DL) #define DOMAIN_ALIAS_RID_MONITORING_USERS (0x0000022EL) #define DOMAIN_ALIAS_RID_LOGGING_USERS (0x0000022FL) typedef enum { 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, WinNTLMAuthenticationSid = 51, WinDigestAuthenticationSid = 52, WinSChannelAuthenticationSid = 53, WinThisOrganizationSid = 54, WinOtherOrganizationSid = 55, WinBuiltinIncomingForestTrustBuildersSid = 56, WinBuiltinPerfMonitoringUsersSid = 57, WinBuiltinPerfLoggingUsersSid = 58, } WELL_KNOWN_SID_TYPE; // // Allocate the System Luid. The first 1000 LUIDs are reserved. // Use #999 here (0x3E7 = 999) // #define SYSTEM_LUID { 0x3E7, 0x0 } #define ANONYMOUS_LOGON_LUID { 0x3e6, 0x0 } #define LOCALSERVICE_LUID { 0x3e5, 0x0 } #define NETWORKSERVICE_LUID { 0x3e4, 0x0 } // end_ntifs //////////////////////////////////////////////////////////////////////// // // // User and Group related SID attributes // // // //////////////////////////////////////////////////////////////////////// // // Group attributes // #define SE_GROUP_MANDATORY (0x00000001L) #define SE_GROUP_ENABLED_BY_DEFAULT (0x00000002L) #define SE_GROUP_ENABLED (0x00000004L) #define SE_GROUP_OWNER (0x00000008L) #define SE_GROUP_USE_FOR_DENY_ONLY (0x00000010L) #define SE_GROUP_LOGON_ID (0xC0000000L) #define SE_GROUP_RESOURCE (0x20000000L) // // User attributes // // (None yet defined.) //////////////////////////////////////////////////////////////////////// // // // ACL and ACE // // // //////////////////////////////////////////////////////////////////////// // // Define an ACL and the ACE format. The structure of an ACL header // followed by one or more ACEs. Pictorally the structure of an ACL header // is as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-------------------------------+---------------+---------------+ // | AclSize | Sbz1 | AclRevision | // +-------------------------------+---------------+---------------+ // | Sbz2 | AceCount | // +-------------------------------+-------------------------------+ // // The current AclRevision is defined to be ACL_REVISION. // // AclSize is the size, in bytes, allocated for the ACL. This includes // the ACL header, ACES, and remaining free space in the buffer. // // AceCount is the number of ACES in the ACL. // // begin_ntddk begin_wdm begin_ntifs // This is the *current* ACL revision #define ACL_REVISION (2) #define ACL_REVISION_DS (4) // This is the history of ACL revisions. Add a new one whenever // ACL_REVISION is updated #define ACL_REVISION1 (1) #define MIN_ACL_REVISION ACL_REVISION2 #define ACL_REVISION2 (2) #define ACL_REVISION3 (3) #define ACL_REVISION4 (4) #define MAX_ACL_REVISION ACL_REVISION4 typedef struct _ACL { BYTE AclRevision; BYTE Sbz1; WORD AclSize; WORD AceCount; WORD Sbz2; } ACL; typedef ACL *PACL; // end_ntddk end_wdm // // The structure of an ACE is a common ace header followed by ace type // specific data. Pictorally the structure of the common ace header is // as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------+-------+-------+---------------+---------------+ // | AceSize | AceFlags | AceType | // +---------------+-------+-------+---------------+---------------+ // // AceType denotes the type of the ace, there are some predefined ace // types // // AceSize is the size, in bytes, of ace. // // AceFlags are the Ace flags for audit and inheritance, defined shortly. typedef struct _ACE_HEADER { BYTE AceType; BYTE AceFlags; WORD AceSize; } ACE_HEADER; typedef ACE_HEADER *PACE_HEADER; // // The following are the predefined ace types that go into the AceType // field of an Ace header. // #define ACCESS_MIN_MS_ACE_TYPE (0x0) #define ACCESS_ALLOWED_ACE_TYPE (0x0) #define ACCESS_DENIED_ACE_TYPE (0x1) #define SYSTEM_AUDIT_ACE_TYPE (0x2) #define SYSTEM_ALARM_ACE_TYPE (0x3) #define ACCESS_MAX_MS_V2_ACE_TYPE (0x3) #define ACCESS_ALLOWED_COMPOUND_ACE_TYPE (0x4) #define ACCESS_MAX_MS_V3_ACE_TYPE (0x4) #define ACCESS_MIN_MS_OBJECT_ACE_TYPE (0x5) #define ACCESS_ALLOWED_OBJECT_ACE_TYPE (0x5) #define ACCESS_DENIED_OBJECT_ACE_TYPE (0x6) #define SYSTEM_AUDIT_OBJECT_ACE_TYPE (0x7) #define SYSTEM_ALARM_OBJECT_ACE_TYPE (0x8) #define ACCESS_MAX_MS_OBJECT_ACE_TYPE (0x8) #define ACCESS_MAX_MS_V4_ACE_TYPE (0x8) #define ACCESS_MAX_MS_ACE_TYPE (0x8) #define ACCESS_ALLOWED_CALLBACK_ACE_TYPE (0x9) #define ACCESS_DENIED_CALLBACK_ACE_TYPE (0xA) #define ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE (0xB) #define ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE (0xC) #define SYSTEM_AUDIT_CALLBACK_ACE_TYPE (0xD) #define SYSTEM_ALARM_CALLBACK_ACE_TYPE (0xE) #define SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE (0xF) #define SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE (0x10) #define ACCESS_MAX_MS_V5_ACE_TYPE (0x10) // // The following are the inherit flags that go into the AceFlags field // of an Ace header. // #define OBJECT_INHERIT_ACE (0x1) #define CONTAINER_INHERIT_ACE (0x2) #define NO_PROPAGATE_INHERIT_ACE (0x4) #define INHERIT_ONLY_ACE (0x8) #define INHERITED_ACE (0x10) #define VALID_INHERIT_FLAGS (0x1F) // The following are the currently defined ACE flags that go into the // AceFlags field of an ACE header. Each ACE type has its own set of // AceFlags. // // SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE // types to indicate that a message is generated for successful accesses. // // FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types // to indicate that a message is generated for failed accesses. // // // SYSTEM_AUDIT and SYSTEM_ALARM AceFlags // // These control the signaling of audit and alarms for success or failure. // #define SUCCESSFUL_ACCESS_ACE_FLAG (0x40) #define FAILED_ACCESS_ACE_FLAG (0x80) // // We'll define the structure of the predefined ACE types. Pictorally // the structure of the predefined ACE's is as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------+-------+-------+---------------+---------------+ // | AceFlags | Resd |Inherit| AceSize | AceType | // +---------------+-------+-------+---------------+---------------+ // | Mask | // +---------------------------------------------------------------+ // | | // + + // | | // + Sid + // | | // + + // | | // +---------------------------------------------------------------+ // // Mask is the access mask associated with the ACE. This is either the // access allowed, access denied, audit, or alarm mask. // // Sid is the Sid associated with the ACE. // // The following are the four predefined ACE types. // Examine the AceType field in the Header to determine // which structure is appropriate to use for casting. typedef struct _ACCESS_ALLOWED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_ALLOWED_ACE; typedef ACCESS_ALLOWED_ACE *PACCESS_ALLOWED_ACE; typedef struct _ACCESS_DENIED_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } ACCESS_DENIED_ACE; typedef ACCESS_DENIED_ACE *PACCESS_DENIED_ACE; typedef struct _SYSTEM_AUDIT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_AUDIT_ACE; typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE; typedef struct _SYSTEM_ALARM_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_ALARM_ACE; typedef SYSTEM_ALARM_ACE *PSYSTEM_ALARM_ACE; // end_ntifs typedef struct _ACCESS_ALLOWED_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } ACCESS_ALLOWED_OBJECT_ACE, *PACCESS_ALLOWED_OBJECT_ACE; typedef struct _ACCESS_DENIED_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } ACCESS_DENIED_OBJECT_ACE, *PACCESS_DENIED_OBJECT_ACE; typedef struct _SYSTEM_AUDIT_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } SYSTEM_AUDIT_OBJECT_ACE, *PSYSTEM_AUDIT_OBJECT_ACE; typedef struct _SYSTEM_ALARM_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; } SYSTEM_ALARM_OBJECT_ACE, *PSYSTEM_ALARM_OBJECT_ACE; // // Callback ace support in post Win2000. // Resource managers can put their own data after Sidstart + Length of the sid // typedef struct _ACCESS_ALLOWED_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE; typedef struct _ACCESS_DENIED_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE; typedef struct _SYSTEM_AUDIT_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE; typedef struct _SYSTEM_ALARM_CALLBACK_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_ALARM_CALLBACK_ACE, *PSYSTEM_ALARM_CALLBACK_ACE; typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE; typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD Flags; GUID ObjectType; GUID InheritedObjectType; DWORD SidStart; // Opaque resouce manager specific data } SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE; // // Currently define Flags for "OBJECT" ACE types. // #define ACE_OBJECT_TYPE_PRESENT 0x1 #define ACE_INHERITED_OBJECT_TYPE_PRESENT 0x2 // // The following declarations are used for setting and querying information // about and ACL. First are the various information classes available to // the user. // typedef enum _ACL_INFORMATION_CLASS { AclRevisionInformation = 1, AclSizeInformation } ACL_INFORMATION_CLASS; // // This record is returned/sent if the user is requesting/setting the // AclRevisionInformation // typedef struct _ACL_REVISION_INFORMATION { DWORD AclRevision; } ACL_REVISION_INFORMATION; typedef ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION; // // This record is returned if the user is requesting AclSizeInformation // typedef struct _ACL_SIZE_INFORMATION { DWORD AceCount; DWORD AclBytesInUse; DWORD AclBytesFree; } ACL_SIZE_INFORMATION; typedef ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION; //////////////////////////////////////////////////////////////////////// // // // SECURITY_DESCRIPTOR // // // //////////////////////////////////////////////////////////////////////// // // Define the Security Descriptor and related data types. // This is an opaque data structure. // // begin_wdm begin_ntddk begin_ntifs // // Current security descriptor revision value // #define SECURITY_DESCRIPTOR_REVISION (1) #define SECURITY_DESCRIPTOR_REVISION1 (1) // end_wdm end_ntddk #define SECURITY_DESCRIPTOR_MIN_LENGTH (sizeof(SECURITY_DESCRIPTOR)) typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; #define SE_OWNER_DEFAULTED (0x0001) #define SE_GROUP_DEFAULTED (0x0002) #define SE_DACL_PRESENT (0x0004) #define SE_DACL_DEFAULTED (0x0008) #define SE_SACL_PRESENT (0x0010) #define SE_SACL_DEFAULTED (0x0020) #define SE_DACL_AUTO_INHERIT_REQ (0x0100) #define SE_SACL_AUTO_INHERIT_REQ (0x0200) #define SE_DACL_AUTO_INHERITED (0x0400) #define SE_SACL_AUTO_INHERITED (0x0800) #define SE_DACL_PROTECTED (0x1000) #define SE_SACL_PROTECTED (0x2000) #define SE_RM_CONTROL_VALID (0x4000) #define SE_SELF_RELATIVE (0x8000) // // Where: // // SE_OWNER_DEFAULTED - This boolean flag, when set, indicates that the // SID pointed to by the Owner field was provided by a // defaulting mechanism rather than explicitly provided by the // original provider of the security descriptor. This may // affect the treatment of the SID with respect to inheritence // of an owner. // // SE_GROUP_DEFAULTED - This boolean flag, when set, indicates that the // SID in the Group field was provided by a defaulting mechanism // rather than explicitly provided by the original provider of // the security descriptor. This may affect the treatment of // the SID with respect to inheritence of a primary group. // // SE_DACL_PRESENT - This boolean flag, when set, indicates that the // security descriptor contains a discretionary ACL. If this // flag is set and the Dacl field of the SECURITY_DESCRIPTOR is // null, then a null ACL is explicitly being specified. // // SE_DACL_DEFAULTED - This boolean flag, when set, indicates that the // ACL pointed to by the Dacl field was provided by a defaulting // mechanism rather than explicitly provided by the original // provider of the security descriptor. This may affect the // treatment of the ACL with respect to inheritence of an ACL. // This flag is ignored if the DaclPresent flag is not set. // // SE_SACL_PRESENT - This boolean flag, when set, indicates that the // security descriptor contains a system ACL pointed to by the // Sacl field. If this flag is set and the Sacl field of the // SECURITY_DESCRIPTOR is null, then an empty (but present) // ACL is being specified. // // SE_SACL_DEFAULTED - This boolean flag, when set, indicates that the // ACL pointed to by the Sacl field was provided by a defaulting // mechanism rather than explicitly provided by the original // provider of the security descriptor. This may affect the // treatment of the ACL with respect to inheritence of an ACL. // This flag is ignored if the SaclPresent flag is not set. // // SE_SELF_RELATIVE - This boolean flag, when set, indicates that the // security descriptor is in self-relative form. In this form, // all fields of the security descriptor are contiguous in memory // and all pointer fields are expressed as offsets from the // beginning of the security descriptor. This form is useful // for treating security descriptors as opaque data structures // for transmission in communication protocol or for storage on // secondary media. // // // // Pictorially the structure of a security descriptor is as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +---------------------------------------------------------------+ // | Control |Reserved1 (SBZ)| Revision | // +---------------------------------------------------------------+ // | Owner | // +---------------------------------------------------------------+ // | Group | // +---------------------------------------------------------------+ // | Sacl | // +---------------------------------------------------------------+ // | Dacl | // +---------------------------------------------------------------+ // // In general, this data structure should be treated opaquely to ensure future // compatibility. // // typedef struct _SECURITY_DESCRIPTOR_RELATIVE { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; DWORD Owner; DWORD Group; DWORD Sacl; DWORD Dacl; } SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE; typedef struct _SECURITY_DESCRIPTOR { BYTE Revision; BYTE Sbz1; SECURITY_DESCRIPTOR_CONTROL Control; PSID Owner; PSID Group; PACL Sacl; PACL Dacl; } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; // end_ntifs // Where: // // Revision - Contains the revision level of the security // descriptor. This allows this structure to be passed between // systems or stored on disk even though it is expected to // change in the future. // // Control - A set of flags which qualify the meaning of the // security descriptor or individual fields of the security // descriptor. // // Owner - is a pointer to an SID representing an object's owner. // If this field is null, then no owner SID is present in the // security descriptor. If the security descriptor is in // self-relative form, then this field contains an offset to // the SID, rather than a pointer. // // Group - is a pointer to an SID representing an object's primary // group. If this field is null, then no primary group SID is // present in the security descriptor. If the security descriptor // is in self-relative form, then this field contains an offset to // the SID, rather than a pointer. // // Sacl - is a pointer to a system ACL. This field value is only // valid if the DaclPresent control flag is set. If the // SaclPresent flag is set and this field is null, then a null // ACL is specified. If the security descriptor is in // self-relative form, then this field contains an offset to // the ACL, rather than a pointer. // // Dacl - is a pointer to a discretionary ACL. This field value is // only valid if the DaclPresent control flag is set. If the // DaclPresent flag is set and this field is null, then a null // ACL (unconditionally granting access) is specified. If the // security descriptor is in self-relative form, then this field // contains an offset to the ACL, rather than a pointer. // //////////////////////////////////////////////////////////////////////// // // // Object Type list for AccessCheckByType // // // //////////////////////////////////////////////////////////////////////// typedef struct _OBJECT_TYPE_LIST { WORD Level; WORD Sbz; GUID *ObjectType; } OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST; // // DS values for Level // #define ACCESS_OBJECT_GUID 0 #define ACCESS_PROPERTY_SET_GUID 1 #define ACCESS_PROPERTY_GUID 2 #define ACCESS_MAX_LEVEL 4 // // Parameters to NtAccessCheckByTypeAndAditAlarm // typedef enum _AUDIT_EVENT_TYPE { AuditEventObjectAccess, AuditEventDirectoryServiceAccess } AUDIT_EVENT_TYPE, *PAUDIT_EVENT_TYPE; #define AUDIT_ALLOW_NO_PRIVILEGE 0x1 // // DS values for Source and ObjectTypeName // #define ACCESS_DS_SOURCE_A "DS" #define ACCESS_DS_SOURCE_W L"DS" #define ACCESS_DS_OBJECT_TYPE_NAME_A "Directory Service Object" #define ACCESS_DS_OBJECT_TYPE_NAME_W L"Directory Service Object" //////////////////////////////////////////////////////////////////////// // // // Privilege Related Data Structures // // // //////////////////////////////////////////////////////////////////////// // begin_wdm begin_ntddk begin_nthal // // Privilege attributes // #define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L) #define SE_PRIVILEGE_ENABLED (0x00000002L) #define SE_PRIVILEGE_REMOVED (0X00000004L) #define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L) // // Privilege Set Control flags // #define PRIVILEGE_SET_ALL_NECESSARY (1) // // Privilege Set - This is defined for a privilege set of one. // If more than one privilege is needed, then this structure // will need to be allocated with more space. // // Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET // structure (defined in se.h) // typedef struct _PRIVILEGE_SET { DWORD PrivilegeCount; DWORD Control; LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; } PRIVILEGE_SET, * PPRIVILEGE_SET; //////////////////////////////////////////////////////////////////////// // // // NT Defined Privileges // // // //////////////////////////////////////////////////////////////////////// #define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege") #define SE_ASSIGNPRIMARYTOKEN_NAME TEXT("SeAssignPrimaryTokenPrivilege") #define SE_LOCK_MEMORY_NAME TEXT("SeLockMemoryPrivilege") #define SE_INCREASE_QUOTA_NAME TEXT("SeIncreaseQuotaPrivilege") #define SE_UNSOLICITED_INPUT_NAME TEXT("SeUnsolicitedInputPrivilege") #define SE_MACHINE_ACCOUNT_NAME TEXT("SeMachineAccountPrivilege") #define SE_TCB_NAME TEXT("SeTcbPrivilege") #define SE_SECURITY_NAME TEXT("SeSecurityPrivilege") #define SE_TAKE_OWNERSHIP_NAME TEXT("SeTakeOwnershipPrivilege") #define SE_LOAD_DRIVER_NAME TEXT("SeLoadDriverPrivilege") #define SE_SYSTEM_PROFILE_NAME TEXT("SeSystemProfilePrivilege") #define SE_SYSTEMTIME_NAME TEXT("SeSystemtimePrivilege") #define SE_PROF_SINGLE_PROCESS_NAME TEXT("SeProfileSingleProcessPrivilege") #define SE_INC_BASE_PRIORITY_NAME TEXT("SeIncreaseBasePriorityPrivilege") #define SE_CREATE_PAGEFILE_NAME TEXT("SeCreatePagefilePrivilege") #define SE_CREATE_PERMANENT_NAME TEXT("SeCreatePermanentPrivilege") #define SE_BACKUP_NAME TEXT("SeBackupPrivilege") #define SE_RESTORE_NAME TEXT("SeRestorePrivilege") #define SE_SHUTDOWN_NAME TEXT("SeShutdownPrivilege") #define SE_DEBUG_NAME TEXT("SeDebugPrivilege") #define SE_AUDIT_NAME TEXT("SeAuditPrivilege") #define SE_SYSTEM_ENVIRONMENT_NAME TEXT("SeSystemEnvironmentPrivilege") #define SE_CHANGE_NOTIFY_NAME TEXT("SeChangeNotifyPrivilege") #define SE_REMOTE_SHUTDOWN_NAME TEXT("SeRemoteShutdownPrivilege") #define SE_UNDOCK_NAME TEXT("SeUndockPrivilege") #define SE_SYNC_AGENT_NAME TEXT("SeSyncAgentPrivilege") #define SE_ENABLE_DELEGATION_NAME TEXT("SeEnableDelegationPrivilege") #define SE_MANAGE_VOLUME_NAME TEXT("SeManageVolumePrivilege") //////////////////////////////////////////////////////////////////// // // // Security Quality Of Service // // // // // //////////////////////////////////////////////////////////////////// // begin_wdm begin_ntddk begin_nthal begin_ntifs // // Impersonation Level // // Impersonation level is represented by a pair of bits in Windows. // If a new impersonation level is added or lowest value is changed from // 0 to something else, fix the Windows CreateFile call. // typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; #define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation #define SECURITY_MIN_IMPERSONATION_LEVEL SecurityAnonymous #define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation #define VALID_IMPERSONATION_LEVEL(L) (((L) >= SECURITY_MIN_IMPERSONATION_LEVEL) && ((L) <= SECURITY_MAX_IMPERSONATION_LEVEL)) //////////////////////////////////////////////////////////////////// // // // Token Object Definitions // // // // // //////////////////////////////////////////////////////////////////// // // Token Specific Access Rights. // #define TOKEN_ASSIGN_PRIMARY (0x0001) #define TOKEN_DUPLICATE (0x0002) #define TOKEN_IMPERSONATE (0x0004) #define TOKEN_QUERY (0x0008) #define TOKEN_QUERY_SOURCE (0x0010) #define TOKEN_ADJUST_PRIVILEGES (0x0020) #define TOKEN_ADJUST_GROUPS (0x0040) #define TOKEN_ADJUST_DEFAULT (0x0080) #define TOKEN_ADJUST_SESSIONID (0x0100) #define 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))) #define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P |\ TOKEN_ADJUST_SESSIONID ) #else #define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P) #endif #define TOKEN_READ (STANDARD_RIGHTS_READ |\ TOKEN_QUERY) #define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\ TOKEN_ADJUST_PRIVILEGES |\ TOKEN_ADJUST_GROUPS |\ TOKEN_ADJUST_DEFAULT) #define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE) // // // Token Types // typedef enum _TOKEN_TYPE { TokenPrimary = 1, TokenImpersonation } TOKEN_TYPE; typedef TOKEN_TYPE *PTOKEN_TYPE; // // Token Information Classes. // typedef enum _TOKEN_INFORMATION_CLASS { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids, TokenSessionId, TokenGroupsAndPrivileges, TokenSessionReference, TokenSandBoxInert, TokenAuditPolicy, MaxTokenInfoClass // MaxTokenInfoClass should always be the last enum } TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS; // // Token information class structures // typedef struct _TOKEN_USER { SID_AND_ATTRIBUTES User; } TOKEN_USER, *PTOKEN_USER; typedef struct _TOKEN_GROUPS { DWORD GroupCount; SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; } TOKEN_GROUPS, *PTOKEN_GROUPS; typedef struct _TOKEN_PRIVILEGES { DWORD PrivilegeCount; LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY]; } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES; typedef struct _TOKEN_OWNER { PSID Owner; } TOKEN_OWNER, *PTOKEN_OWNER; typedef struct _TOKEN_PRIMARY_GROUP { PSID PrimaryGroup; } TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; typedef struct _TOKEN_DEFAULT_DACL { PACL DefaultDacl; } TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; typedef 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; } TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES; // // Valid bits for each TOKEN_AUDIT_POLICY policy mask field. // #define TOKEN_AUDIT_SUCCESS_INCLUDE 0x1 #define TOKEN_AUDIT_SUCCESS_EXCLUDE 0x2 #define TOKEN_AUDIT_FAILURE_INCLUDE 0x4 #define TOKEN_AUDIT_FAILURE_EXCLUDE 0x8 #define VALID_AUDIT_POLICY_BITS (TOKEN_AUDIT_SUCCESS_INCLUDE | \ TOKEN_AUDIT_SUCCESS_EXCLUDE | \ TOKEN_AUDIT_FAILURE_INCLUDE | \ TOKEN_AUDIT_FAILURE_EXCLUDE) #define VALID_TOKEN_AUDIT_POLICY_ELEMENT(P) ((((P).PolicyMask & ~VALID_AUDIT_POLICY_BITS) == 0) && \ ((P).Category <= AuditEventMaxType)) typedef struct _TOKEN_AUDIT_POLICY_ELEMENT { DWORD Category; DWORD PolicyMask; } TOKEN_AUDIT_POLICY_ELEMENT, *PTOKEN_AUDIT_POLICY_ELEMENT; typedef struct _TOKEN_AUDIT_POLICY { DWORD PolicyCount; TOKEN_AUDIT_POLICY_ELEMENT Policy[ANYSIZE_ARRAY]; } TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY; #define PER_USER_AUDITING_POLICY_SIZE(p) \ ( sizeof(TOKEN_AUDIT_POLICY) + (((p)->PolicyCount > ANYSIZE_ARRAY) ? (sizeof(TOKEN_AUDIT_POLICY_ELEMENT) * ((p)->PolicyCount - ANYSIZE_ARRAY)) : 0) ) #define PER_USER_AUDITING_POLICY_SIZE_BY_COUNT(C) \ ( sizeof(TOKEN_AUDIT_POLICY) + (((C) > ANYSIZE_ARRAY) ? (sizeof(TOKEN_AUDIT_POLICY_ELEMENT) * ((C) - ANYSIZE_ARRAY)) : 0) ) #define TOKEN_SOURCE_LENGTH 8 typedef struct _TOKEN_SOURCE { CHAR SourceName[TOKEN_SOURCE_LENGTH]; LUID SourceIdentifier; } TOKEN_SOURCE, *PTOKEN_SOURCE; typedef 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; } TOKEN_STATISTICS, *PTOKEN_STATISTICS; typedef struct _TOKEN_CONTROL { LUID TokenId; LUID AuthenticationId; LUID ModifiedId; TOKEN_SOURCE TokenSource; } TOKEN_CONTROL, *PTOKEN_CONTROL; // // Security Tracking Mode // #define SECURITY_DYNAMIC_TRACKING (TRUE) #define SECURITY_STATIC_TRACKING (FALSE) typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, * PSECURITY_CONTEXT_TRACKING_MODE; // // Quality Of Service // typedef struct _SECURITY_QUALITY_OF_SERVICE { DWORD Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; BOOLEAN EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE; // // Used to represent information related to a thread impersonation // typedef struct _SE_IMPERSONATION_STATE { PACCESS_TOKEN Token; BOOLEAN CopyOnOpen; BOOLEAN EffectiveOnly; SECURITY_IMPERSONATION_LEVEL Level; } SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE; #define DISABLE_MAX_PRIVILEGE 0x1 #define SANDBOX_INERT 0x2 typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; #define OWNER_SECURITY_INFORMATION (0x00000001L) #define GROUP_SECURITY_INFORMATION (0x00000002L) #define DACL_SECURITY_INFORMATION (0x00000004L) #define SACL_SECURITY_INFORMATION (0x00000008L) #define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L) #define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L) #define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L) #define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L) #define PROCESS_TERMINATE (0x0001) #define PROCESS_CREATE_THREAD (0x0002) #define PROCESS_SET_SESSIONID (0x0004) #define PROCESS_VM_OPERATION (0x0008) #define PROCESS_VM_READ (0x0010) #define PROCESS_VM_WRITE (0x0020) #define PROCESS_DUP_HANDLE (0x0040) #define PROCESS_CREATE_PROCESS (0x0080) #define PROCESS_SET_QUOTA (0x0100) #define PROCESS_SET_INFORMATION (0x0200) #define PROCESS_QUERY_INFORMATION (0x0400) #define PROCESS_SUSPEND_RESUME (0x0800) #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFF) // begin_nthal #if defined(_WIN64) #define MAXIMUM_PROCESSORS 64 #else #define MAXIMUM_PROCESSORS 32 #endif // end_nthal #define THREAD_TERMINATE (0x0001) #define THREAD_SUSPEND_RESUME (0x0002) #define THREAD_GET_CONTEXT (0x0008) #define THREAD_SET_CONTEXT (0x0010) #define THREAD_SET_INFORMATION (0x0020) #define THREAD_QUERY_INFORMATION (0x0040) #define THREAD_SET_THREAD_TOKEN (0x0080) #define THREAD_IMPERSONATE (0x0100) #define THREAD_DIRECT_IMPERSONATION (0x0200) // begin_ntddk begin_wdm begin_ntifs #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0x3FF) // end_ntddk end_wdm end_ntifs #define JOB_OBJECT_ASSIGN_PROCESS (0x0001) #define JOB_OBJECT_SET_ATTRIBUTES (0x0002) #define JOB_OBJECT_QUERY (0x0004) #define JOB_OBJECT_TERMINATE (0x0008) #define JOB_OBJECT_SET_SECURITY_ATTRIBUTES (0x0010) #define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0x1F ) typedef struct _JOB_SET_ARRAY { HANDLE JobHandle; // Handle to job object to insert DWORD MemberLevel; // Level of this job in the set. Must be > 0. Can be sparse. DWORD Flags; // Unused. Must be zero } JOB_SET_ARRAY, *PJOB_SET_ARRAY; #define FLS_MAXIMUM_AVAILABLE 128 #define TLS_MINIMUM_AVAILABLE 64 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberData; DWORD Version; }; PVOID ArbitraryUserPointer; struct _NT_TIB *Self; } NT_TIB; typedef NT_TIB *PNT_TIB; // // 32 and 64 bit specific version for wow64 and the debugger // typedef struct _NT_TIB32 { DWORD ExceptionList; DWORD StackBase; DWORD StackLimit; DWORD SubSystemTib; union { DWORD FiberData; DWORD Version; }; DWORD ArbitraryUserPointer; DWORD Self; } NT_TIB32, *PNT_TIB32; typedef struct _NT_TIB64 { DWORD64 ExceptionList; DWORD64 StackBase; DWORD64 StackLimit; DWORD64 SubSystemTib; union { DWORD64 FiberData; DWORD Version; }; DWORD64 ArbitraryUserPointer; DWORD64 Self; } NT_TIB64, *PNT_TIB64; #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_) #define WX86 #endif #define THREAD_BASE_PRIORITY_LOWRT 15 // value that gets a thread to LowRealtime-1 #define THREAD_BASE_PRIORITY_MAX 2 // maximum thread base priority boost #define THREAD_BASE_PRIORITY_MIN (-2) // minimum thread base priority boost #define THREAD_BASE_PRIORITY_IDLE (-15) // value that gets a thread to idle typedef struct _QUOTA_LIMITS { SIZE_T PagedPoolLimit; SIZE_T NonPagedPoolLimit; SIZE_T MinimumWorkingSetSize; SIZE_T MaximumWorkingSetSize; SIZE_T PagefileLimit; LARGE_INTEGER TimeLimit; } QUOTA_LIMITS, *PQUOTA_LIMITS; #define QUOTA_LIMITS_HARDWS_MIN_ENABLE 0x00000001 #define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002 #define QUOTA_LIMITS_HARDWS_MAX_ENABLE 0x00000004 #define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008 typedef struct _QUOTA_LIMITS_EX { SIZE_T PagedPoolLimit; SIZE_T NonPagedPoolLimit; SIZE_T MinimumWorkingSetSize; SIZE_T MaximumWorkingSetSize; SIZE_T PagefileLimit; LARGE_INTEGER TimeLimit; SIZE_T Reserved1; SIZE_T Reserved2; SIZE_T Reserved3; SIZE_T Reserved4; DWORD Flags; DWORD Reserved5; } QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX; typedef struct _IO_COUNTERS { ULONGLONG ReadOperationCount; ULONGLONG WriteOperationCount; ULONGLONG OtherOperationCount; ULONGLONG ReadTransferCount; ULONGLONG WriteTransferCount; ULONGLONG OtherTransferCount; } IO_COUNTERS; typedef IO_COUNTERS *PIO_COUNTERS; // typedef 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; } JOBOBJECT_BASIC_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION; typedef 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; } JOBOBJECT_BASIC_LIMIT_INFORMATION, *PJOBOBJECT_BASIC_LIMIT_INFORMATION; typedef 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; } JOBOBJECT_EXTENDED_LIMIT_INFORMATION, *PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; typedef struct _JOBOBJECT_BASIC_PROCESS_ID_LIST { DWORD NumberOfAssignedProcesses; DWORD NumberOfProcessIdsInList; ULONG_PTR ProcessIdList[1]; } JOBOBJECT_BASIC_PROCESS_ID_LIST, *PJOBOBJECT_BASIC_PROCESS_ID_LIST; typedef struct _JOBOBJECT_BASIC_UI_RESTRICTIONS { DWORD UIRestrictionsClass; } JOBOBJECT_BASIC_UI_RESTRICTIONS, *PJOBOBJECT_BASIC_UI_RESTRICTIONS; typedef struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION { DWORD SecurityLimitFlags ; HANDLE JobToken ; PTOKEN_GROUPS SidsToDisable ; PTOKEN_PRIVILEGES PrivilegesToDelete ; PTOKEN_GROUPS RestrictedSids ; } JOBOBJECT_SECURITY_LIMIT_INFORMATION, *PJOBOBJECT_SECURITY_LIMIT_INFORMATION ; typedef struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION { DWORD EndOfJobTimeAction; } JOBOBJECT_END_OF_JOB_TIME_INFORMATION, *PJOBOBJECT_END_OF_JOB_TIME_INFORMATION; typedef struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT { PVOID CompletionKey; HANDLE CompletionPort; } JOBOBJECT_ASSOCIATE_COMPLETION_PORT, *PJOBOBJECT_ASSOCIATE_COMPLETION_PORT; typedef struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION { JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo; IO_COUNTERS IoInfo; } JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION, *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION; typedef struct _JOBOBJECT_JOBSET_INFORMATION { DWORD MemberLevel; } JOBOBJECT_JOBSET_INFORMATION, *PJOBOBJECT_JOBSET_INFORMATION; #define JOB_OBJECT_TERMINATE_AT_END_OF_JOB 0 #define JOB_OBJECT_POST_AT_END_OF_JOB 1 // // Completion Port Messages for job objects // // These values are returned via the lpNumberOfBytesTransferred parameter // #define JOB_OBJECT_MSG_END_OF_JOB_TIME 1 #define JOB_OBJECT_MSG_END_OF_PROCESS_TIME 2 #define JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT 3 #define JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO 4 #define JOB_OBJECT_MSG_NEW_PROCESS 6 #define JOB_OBJECT_MSG_EXIT_PROCESS 7 #define JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS 8 #define JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT 9 #define JOB_OBJECT_MSG_JOB_MEMORY_LIMIT 10 // // Basic Limits // #define JOB_OBJECT_LIMIT_WORKINGSET 0x00000001 #define JOB_OBJECT_LIMIT_PROCESS_TIME 0x00000002 #define JOB_OBJECT_LIMIT_JOB_TIME 0x00000004 #define JOB_OBJECT_LIMIT_ACTIVE_PROCESS 0x00000008 #define JOB_OBJECT_LIMIT_AFFINITY 0x00000010 #define JOB_OBJECT_LIMIT_PRIORITY_CLASS 0x00000020 #define JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME 0x00000040 #define JOB_OBJECT_LIMIT_SCHEDULING_CLASS 0x00000080 // // Extended Limits // #define JOB_OBJECT_LIMIT_PROCESS_MEMORY 0x00000100 #define JOB_OBJECT_LIMIT_JOB_MEMORY 0x00000200 #define JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION 0x00000400 #define JOB_OBJECT_LIMIT_BREAKAWAY_OK 0x00000800 #define JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK 0x00001000 #define JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 0x00002000 #define JOB_OBJECT_LIMIT_RESERVED2 0x00004000 #define JOB_OBJECT_LIMIT_RESERVED3 0x00008000 #define JOB_OBJECT_LIMIT_RESERVED4 0x00010000 #define JOB_OBJECT_LIMIT_RESERVED5 0x00020000 #define JOB_OBJECT_LIMIT_RESERVED6 0x00040000 #define JOB_OBJECT_LIMIT_VALID_FLAGS 0x0007ffff #define JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS 0x000000ff #define JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS 0x00003fff #define JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS 0x0007ffff // // UI restrictions for jobs // #define JOB_OBJECT_UILIMIT_NONE 0x00000000 #define JOB_OBJECT_UILIMIT_HANDLES 0x00000001 #define JOB_OBJECT_UILIMIT_READCLIPBOARD 0x00000002 #define JOB_OBJECT_UILIMIT_WRITECLIPBOARD 0x00000004 #define JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS 0x00000008 #define JOB_OBJECT_UILIMIT_DISPLAYSETTINGS 0x00000010 #define JOB_OBJECT_UILIMIT_GLOBALATOMS 0x00000020 #define JOB_OBJECT_UILIMIT_DESKTOP 0x00000040 #define JOB_OBJECT_UILIMIT_EXITWINDOWS 0x00000080 #define JOB_OBJECT_UILIMIT_ALL 0x000000FF #define JOB_OBJECT_UI_VALID_FLAGS 0x000000FF #define JOB_OBJECT_SECURITY_NO_ADMIN 0x00000001 #define JOB_OBJECT_SECURITY_RESTRICTED_TOKEN 0x00000002 #define JOB_OBJECT_SECURITY_ONLY_TOKEN 0x00000004 #define JOB_OBJECT_SECURITY_FILTER_TOKENS 0x00000008 #define JOB_OBJECT_SECURITY_VALID_FLAGS 0x0000000f typedef enum _JOBOBJECTINFOCLASS { JobObjectBasicAccountingInformation = 1, JobObjectBasicLimitInformation, JobObjectBasicProcessIdList, JobObjectBasicUIRestrictions, JobObjectSecurityLimitInformation, JobObjectEndOfJobTimeInformation, JobObjectAssociateCompletionPortInformation, JobObjectBasicAndIoAccountingInformation, JobObjectExtendedLimitInformation, JobObjectJobSetInformation, MaxJobObjectInfoClass } JOBOBJECTINFOCLASS; // #define EVENT_MODIFY_STATE 0x0002 #define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) #define MUTANT_QUERY_STATE 0x0001 #define MUTANT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|\ MUTANT_QUERY_STATE) #define SEMAPHORE_MODIFY_STATE 0x0002 #define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // // Timer Specific Access Rights. // #define TIMER_QUERY_STATE 0x0001 #define TIMER_MODIFY_STATE 0x0002 #define TIMER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|\ TIMER_QUERY_STATE|TIMER_MODIFY_STATE) #define TIME_ZONE_ID_UNKNOWN 0 #define TIME_ZONE_ID_STANDARD 1 #define TIME_ZONE_ID_DAYLIGHT 2 typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP { RelationProcessorCore, RelationNumaNode } LOGICAL_PROCESSOR_RELATIONSHIP; #define LTP_PC_SMT 0x1 typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION { ULONG_PTR ProcessorMask; LOGICAL_PROCESSOR_RELATIONSHIP Relationship; union { struct { BYTE Flags; } ProcessorCore; struct { DWORD NodeNumber; } NumaNode; ULONGLONG Reserved[2]; }; } SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION; #define PROCESSOR_INTEL_386 386 #define PROCESSOR_INTEL_486 486 #define PROCESSOR_INTEL_PENTIUM 586 #define PROCESSOR_INTEL_IA64 2200 #define PROCESSOR_AMD_X8664 8664 #define PROCESSOR_MIPS_R4000 4000 // incl R4101 & R3910 for Windows CE #define PROCESSOR_ALPHA_21064 21064 #define PROCESSOR_PPC_601 601 #define PROCESSOR_PPC_603 603 #define PROCESSOR_PPC_604 604 #define PROCESSOR_PPC_620 620 #define PROCESSOR_HITACHI_SH3 10003 // Windows CE #define PROCESSOR_HITACHI_SH3E 10004 // Windows CE #define PROCESSOR_HITACHI_SH4 10005 // Windows CE #define PROCESSOR_MOTOROLA_821 821 // Windows CE #define PROCESSOR_SHx_SH3 103 // Windows CE #define PROCESSOR_SHx_SH4 104 // Windows CE #define PROCESSOR_STRONGARM 2577 // Windows CE - 0xA11 #define PROCESSOR_ARM720 1824 // Windows CE - 0x720 #define PROCESSOR_ARM820 2080 // Windows CE - 0x820 #define PROCESSOR_ARM920 2336 // Windows CE - 0x920 #define PROCESSOR_ARM_7TDMI 70001 // Windows CE #define PROCESSOR_OPTIL 0x494f // MSIL #define PROCESSOR_ARCHITECTURE_INTEL 0 #define PROCESSOR_ARCHITECTURE_MIPS 1 #define PROCESSOR_ARCHITECTURE_ALPHA 2 #define PROCESSOR_ARCHITECTURE_PPC 3 #define PROCESSOR_ARCHITECTURE_SHX 4 #define PROCESSOR_ARCHITECTURE_ARM 5 #define PROCESSOR_ARCHITECTURE_IA64 6 #define PROCESSOR_ARCHITECTURE_ALPHA64 7 #define PROCESSOR_ARCHITECTURE_MSIL 8 #define PROCESSOR_ARCHITECTURE_AMD64 9 #define PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 10 #define PROCESSOR_ARCHITECTURE_UNKNOWN 0xFFFF #define PF_FLOATING_POINT_PRECISION_ERRATA 0 #define PF_FLOATING_POINT_EMULATED 1 #define PF_COMPARE_EXCHANGE_DOUBLE 2 #define PF_MMX_INSTRUCTIONS_AVAILABLE 3 #define PF_PPC_MOVEMEM_64BIT_OK 4 #define PF_ALPHA_BYTE_INSTRUCTIONS 5 #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 #define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 #define PF_RDTSC_INSTRUCTION_AVAILABLE 8 #define PF_PAE_ENABLED 9 #define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 typedef struct _MEMORY_BASIC_INFORMATION { PVOID BaseAddress; PVOID AllocationBase; DWORD AllocationProtect; SIZE_T RegionSize; DWORD State; DWORD Protect; DWORD Type; } MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; typedef struct _MEMORY_BASIC_INFORMATION32 { DWORD BaseAddress; DWORD AllocationBase; DWORD AllocationProtect; DWORD RegionSize; DWORD State; DWORD Protect; DWORD Type; } MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32; typedef struct _MEMORY_BASIC_INFORMATION64 { ULONGLONG BaseAddress; ULONGLONG AllocationBase; DWORD AllocationProtect; DWORD __alignment1; ULONGLONG RegionSize; DWORD State; DWORD Protect; DWORD Type; DWORD __alignment2; } MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64; #define SECTION_QUERY 0x0001 #define SECTION_MAP_WRITE 0x0002 #define SECTION_MAP_READ 0x0004 #define SECTION_MAP_EXECUTE 0x0008 #define SECTION_EXTEND_SIZE 0x0010 #define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\ SECTION_MAP_WRITE | \ SECTION_MAP_READ | \ SECTION_MAP_EXECUTE | \ SECTION_EXTEND_SIZE) #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 #define PAGE_WRITECOPY 0x08 #define PAGE_EXECUTE 0x10 #define PAGE_EXECUTE_READ 0x20 #define PAGE_EXECUTE_READWRITE 0x40 #define PAGE_EXECUTE_WRITECOPY 0x80 #define PAGE_GUARD 0x100 #define PAGE_NOCACHE 0x200 #define PAGE_WRITECOMBINE 0x400 #define MEM_COMMIT 0x1000 #define MEM_RESERVE 0x2000 #define MEM_DECOMMIT 0x4000 #define MEM_RELEASE 0x8000 #define MEM_FREE 0x10000 #define MEM_PRIVATE 0x20000 #define MEM_MAPPED 0x40000 #define MEM_RESET 0x80000 #define MEM_TOP_DOWN 0x100000 #define MEM_WRITE_WATCH 0x200000 #define MEM_PHYSICAL 0x400000 #define MEM_LARGE_PAGES 0x20000000 #define MEM_4MB_PAGES 0x80000000 #define SEC_FILE 0x800000 #define SEC_IMAGE 0x1000000 #define SEC_RESERVE 0x4000000 #define SEC_COMMIT 0x8000000 #define SEC_NOCACHE 0x10000000 #define MEM_IMAGE SEC_IMAGE #define WRITE_WATCH_FLAG_RESET 0x01 // // Define access rights to files and directories // // // The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in // devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these // constants *MUST* always be in sync. // The values are redefined in devioctl.h because they must be available to // both DOS and NT. // #define FILE_READ_DATA ( 0x0001 ) // file & pipe #define FILE_LIST_DIRECTORY ( 0x0001 ) // directory #define FILE_WRITE_DATA ( 0x0002 ) // file & pipe #define FILE_ADD_FILE ( 0x0002 ) // directory #define FILE_APPEND_DATA ( 0x0004 ) // file #define FILE_ADD_SUBDIRECTORY ( 0x0004 ) // directory #define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) // named pipe #define FILE_READ_EA ( 0x0008 ) // file & directory #define FILE_WRITE_EA ( 0x0010 ) // file & directory #define FILE_EXECUTE ( 0x0020 ) // file #define FILE_TRAVERSE ( 0x0020 ) // directory #define FILE_DELETE_CHILD ( 0x0040 ) // directory #define FILE_READ_ATTRIBUTES ( 0x0080 ) // all #define FILE_WRITE_ATTRIBUTES ( 0x0100 ) // all #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\ FILE_READ_DATA |\ FILE_READ_ATTRIBUTES |\ FILE_READ_EA |\ SYNCHRONIZE) #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ FILE_WRITE_DATA |\ FILE_WRITE_ATTRIBUTES |\ FILE_WRITE_EA |\ FILE_APPEND_DATA |\ SYNCHRONIZE) #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ FILE_READ_ATTRIBUTES |\ FILE_EXECUTE |\ SYNCHRONIZE) #define FILE_SHARE_READ 0x00000001 #define FILE_SHARE_WRITE 0x00000002 #define FILE_SHARE_DELETE 0x00000004 #define FILE_ATTRIBUTE_READONLY 0x00000001 #define FILE_ATTRIBUTE_HIDDEN 0x00000002 #define FILE_ATTRIBUTE_SYSTEM 0x00000004 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 #define FILE_ATTRIBUTE_ARCHIVE 0x00000020 #define FILE_ATTRIBUTE_DEVICE 0x00000040 #define FILE_ATTRIBUTE_NORMAL 0x00000080 #define FILE_ATTRIBUTE_TEMPORARY 0x00000100 #define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 #define FILE_ATTRIBUTE_COMPRESSED 0x00000800 #define FILE_ATTRIBUTE_OFFLINE 0x00001000 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 #define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 #define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 #define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 #define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 #define FILE_NOTIFY_CHANGE_SIZE 0x00000008 #define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 #define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 #define FILE_NOTIFY_CHANGE_CREATION 0x00000040 #define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 #define FILE_ACTION_ADDED 0x00000001 #define FILE_ACTION_REMOVED 0x00000002 #define FILE_ACTION_MODIFIED 0x00000003 #define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 #define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 #define MAILSLOT_NO_MESSAGE ((DWORD)-1) #define MAILSLOT_WAIT_FOREVER ((DWORD)-1) #define FILE_CASE_SENSITIVE_SEARCH 0x00000001 #define FILE_CASE_PRESERVED_NAMES 0x00000002 #define FILE_UNICODE_ON_DISK 0x00000004 #define FILE_PERSISTENT_ACLS 0x00000008 #define FILE_FILE_COMPRESSION 0x00000010 #define FILE_VOLUME_QUOTAS 0x00000020 #define FILE_SUPPORTS_SPARSE_FILES 0x00000040 #define FILE_SUPPORTS_REPARSE_POINTS 0x00000080 #define FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 #define FILE_VOLUME_IS_COMPRESSED 0x00008000 #define FILE_SUPPORTS_OBJECT_IDS 0x00010000 #define FILE_SUPPORTS_ENCRYPTION 0x00020000 #define FILE_NAMED_STREAMS 0x00040000 #define FILE_READ_ONLY_VOLUME 0x00080000 // // Define the file notification information structure // typedef struct _FILE_NOTIFY_INFORMATION { DWORD NextEntryOffset; DWORD Action; DWORD FileNameLength; WCHAR FileName[1]; } FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION; // // Define segement buffer structure for scatter/gather read/write. // typedef union _FILE_SEGMENT_ELEMENT { PVOID64 Buffer; ULONGLONG Alignment; }FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; // // The reparse GUID structure is used by all 3rd party layered drivers to // store data in a reparse point. For non-Microsoft tags, The GUID field // cannot be GUID_NULL. // The constraints on reparse tags are defined below. // Microsoft tags can also be used with this format of the reparse point buffer. // typedef struct _REPARSE_GUID_DATA_BUFFER { DWORD ReparseTag; WORD ReparseDataLength; WORD Reserved; GUID ReparseGuid; struct { BYTE DataBuffer[1]; } GenericReparseBuffer; } REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER; #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer) // // Maximum allowed size of the reparse data. // #define MAXIMUM_REPARSE_DATA_BUFFER_SIZE ( 16 * 1024 ) // // Predefined reparse tags. // These tags need to avoid conflicting with IO_REMOUNT defined in ntos\inc\io.h // #define IO_REPARSE_TAG_RESERVED_ZERO (0) #define IO_REPARSE_TAG_RESERVED_ONE (1) // // The value of the following constant needs to satisfy the following conditions: // (1) Be at least as large as the largest of the reserved tags. // (2) Be strictly smaller than all the tags in use. // #define IO_REPARSE_TAG_RESERVED_RANGE IO_REPARSE_TAG_RESERVED_ONE // // The reparse tags are a DWORD. The 32 bits are laid out as follows: // // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 // +-+-+-+-+-----------------------+-------------------------------+ // |M|R|N|R| Reserved bits | Reparse Tag Value | // +-+-+-+-+-----------------------+-------------------------------+ // // M is the Microsoft bit. When set to 1, it denotes a tag owned by Microsoft. // All ISVs must use a tag with a 0 in this position. // Note: If a Microsoft tag is used by non-Microsoft software, the // behavior is not defined. // // R is reserved. Must be zero for non-Microsoft tags. // // N is name surrogate. When set to 1, the file represents another named // entity in the system. // // The M and N bits are OR-able. // The following macros check for the M and N bit values: // // // Macro to determine whether a reparse point tag corresponds to a tag // owned by Microsoft. // #define IsReparseTagMicrosoft(_tag) ( \ ((_tag) & 0x80000000) \ ) // // Macro to determine whether a reparse point tag is a name surrogate // #define IsReparseTagNameSurrogate(_tag) ( \ ((_tag) & 0x20000000) \ ) #define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L) #define IO_REPARSE_TAG_HSM (0xC0000004L) #define IO_REPARSE_TAG_SIS (0x80000007L) #define IO_REPARSE_TAG_DFS (0x8000000AL) #define IO_REPARSE_TAG_FILTER_MANAGER (0x8000000BL) #define IO_COMPLETION_MODIFY_STATE 0x0002 #define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) #define DUPLICATE_CLOSE_SOURCE 0x00000001 #define DUPLICATE_SAME_ACCESS 0x00000002 typedef enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; #define POWER_SYSTEM_MAXIMUM 7 typedef enum { PowerActionNone = 0, PowerActionReserved, PowerActionSleep, PowerActionHibernate, PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, PowerActionWarmEject } POWER_ACTION, *PPOWER_ACTION; typedef enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3, PowerDeviceMaximum } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; #define ES_SYSTEM_REQUIRED ((DWORD)0x00000001) #define ES_DISPLAY_REQUIRED ((DWORD)0x00000002) #define ES_USER_PRESENT ((DWORD)0x00000004) #define ES_CONTINUOUS ((DWORD)0x80000000) typedef DWORD EXECUTION_STATE; typedef enum { LT_DONT_CARE, LT_LOWEST_LATENCY } LATENCY_TIME; // end_ntminiport end_ntifs end_wdm end_ntddk //----------------------------------------------------------------------------- // Device Power Information // Accessable via CM_Get_DevInst_Registry_Property_Ex(CM_DRP_DEVICE_POWER_DATA) //----------------------------------------------------------------------------- #define PDCAP_D0_SUPPORTED 0x00000001 #define PDCAP_D1_SUPPORTED 0x00000002 #define PDCAP_D2_SUPPORTED 0x00000004 #define PDCAP_D3_SUPPORTED 0x00000008 #define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010 #define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020 #define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040 #define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080 #define PDCAP_WARM_EJECT_SUPPORTED 0x00000100 typedef 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; } CM_POWER_DATA, *PCM_POWER_DATA; // begin_ntddk typedef enum { SystemPowerPolicyAc, SystemPowerPolicyDc, VerifySystemPolicyAc, VerifySystemPolicyDc, SystemPowerCapabilities, SystemBatteryState, SystemPowerStateHandler, ProcessorStateHandler, SystemPowerPolicyCurrent, AdministratorPowerPolicy, SystemReserveHiberFile, ProcessorInformation, SystemPowerInformation, ProcessorStateHandler2, LastWakeTime, // Compare with KeQueryInterruptTime() LastSleepTime, // Compare with KeQueryInterruptTime() SystemExecutionState, SystemPowerStateNotifyHandler, ProcessorPowerPolicyAc, ProcessorPowerPolicyDc, VerifyProcessorPowerPolicyAc, VerifyProcessorPowerPolicyDc, ProcessorPowerPolicyCurrent, SystemPowerStateLogging, SystemPowerLoggingEntry } POWER_INFORMATION_LEVEL; // begin_wdm // // System power manager capabilities // typedef struct { DWORD Granularity; DWORD Capacity; } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; // // Power Policy Management interfaces // typedef struct { POWER_ACTION Action; DWORD Flags; DWORD EventCode; } POWER_ACTION_POLICY, *PPOWER_ACTION_POLICY; // POWER_ACTION_POLICY->Flags: #define POWER_ACTION_QUERY_ALLOWED 0x00000001 #define POWER_ACTION_UI_ALLOWED 0x00000002 #define POWER_ACTION_OVERRIDE_APPS 0x00000004 #define POWER_ACTION_LIGHTEST_FIRST 0x10000000 #define POWER_ACTION_LOCK_CONSOLE 0x20000000 #define POWER_ACTION_DISABLE_WAKES 0x40000000 #define POWER_ACTION_CRITICAL 0x80000000 // POWER_ACTION_POLICY->EventCode flags #define POWER_LEVEL_USER_NOTIFY_TEXT 0x00000001 #define POWER_LEVEL_USER_NOTIFY_SOUND 0x00000002 #define POWER_LEVEL_USER_NOTIFY_EXEC 0x00000004 #define POWER_USER_NOTIFY_BUTTON 0x00000008 #define POWER_USER_NOTIFY_SHUTDOWN 0x00000010 #define POWER_FORCE_TRIGGER_RESET 0x80000000 // system battery drain policies typedef struct { BOOLEAN Enable; BYTE Spare[3]; DWORD BatteryLevel; POWER_ACTION_POLICY PowerPolicy; SYSTEM_POWER_STATE MinSystemState; } SYSTEM_POWER_LEVEL, *PSYSTEM_POWER_LEVEL; // Discharge policy constants #define NUM_DISCHARGE_POLICIES 4 #define DISCHARGE_POLICY_CRITICAL 0 #define DISCHARGE_POLICY_LOW 1 // // Throttling policies // #define PO_THROTTLE_NONE 0 #define PO_THROTTLE_CONSTANT 1 #define PO_THROTTLE_DEGRADE 2 #define PO_THROTTLE_ADAPTIVE 3 #define PO_THROTTLE_MAXIMUM 4 // not a policy, just a limit // system power policies typedef struct _SYSTEM_POWER_POLICY { DWORD Revision; // 1 // events POWER_ACTION_POLICY PowerButton; POWER_ACTION_POLICY SleepButton; POWER_ACTION_POLICY LidClose; SYSTEM_POWER_STATE LidOpenWake; DWORD Reserved; // "system idle" detection POWER_ACTION_POLICY Idle; DWORD IdleTimeout; BYTE IdleSensitivity; // dynamic throttling policy // PO_THROTTLE_NONE, PO_THROTTLE_CONSTANT, PO_THROTTLE_DEGRADE, or PO_THROTTLE_ADAPTIVE BYTE DynamicThrottle; BYTE Spare2[2]; // meaning of power action "sleep" SYSTEM_POWER_STATE MinSleep; SYSTEM_POWER_STATE MaxSleep; SYSTEM_POWER_STATE ReducedLatencySleep; DWORD WinLogonFlags; // parameters for dozing DWORD Spare3; DWORD DozeS4Timeout; // battery policies DWORD BroadcastCapacityResolution; SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES]; // video policies DWORD VideoTimeout; BOOLEAN VideoDimDisplay; DWORD VideoReserved[3]; // hard disk policies DWORD SpindownTimeout; // processor policies BOOLEAN OptimizeForPower; BYTE FanThrottleTolerance; BYTE ForcedThrottle; BYTE MinThrottle; POWER_ACTION_POLICY OverThrottled; } SYSTEM_POWER_POLICY, *PSYSTEM_POWER_POLICY; // processor power policy state typedef struct _PROCESSOR_POWER_POLICY_INFO { // Time based information (will be converted to kernel units) DWORD TimeCheck; // in US DWORD DemoteLimit; // in US DWORD PromoteLimit; // in US // Percentage based information BYTE DemotePercent; BYTE PromotePercent; BYTE Spare[2]; // Flags DWORD AllowDemotion:1; DWORD AllowPromotion:1; DWORD Reserved:30; } PROCESSOR_POWER_POLICY_INFO, *PPROCESSOR_POWER_POLICY_INFO; // processor power policy typedef struct _PROCESSOR_POWER_POLICY { DWORD Revision; // 1 // Dynamic Throttling Policy BYTE DynamicThrottle; BYTE Spare[3]; // Flags DWORD DisableCStates:1; DWORD Reserved:31; // System policy information // The Array is last, in case it needs to be grown and the structure // revision incremented. DWORD PolicyCount; PROCESSOR_POWER_POLICY_INFO Policy[3]; } PROCESSOR_POWER_POLICY, *PPROCESSOR_POWER_POLICY; // administrator power policy overrides typedef struct _ADMINISTRATOR_POWER_POLICY { // meaning of power action "sleep" SYSTEM_POWER_STATE MinSleep; SYSTEM_POWER_STATE MaxSleep; // video policies DWORD MinVideoTimeout; DWORD MaxVideoTimeout; // disk policies DWORD MinSpindownTimeout; DWORD MaxSpindownTimeout; } ADMINISTRATOR_POWER_POLICY, *PADMINISTRATOR_POWER_POLICY; typedef struct { // Misc supported system features BOOLEAN PowerButtonPresent; BOOLEAN SleepButtonPresent; BOOLEAN LidPresent; BOOLEAN SystemS1; BOOLEAN SystemS2; BOOLEAN SystemS3; BOOLEAN SystemS4; // hibernate BOOLEAN SystemS5; // off BOOLEAN HiberFilePresent; BOOLEAN FullWake; BOOLEAN VideoDimPresent; BOOLEAN ApmPresent; BOOLEAN UpsPresent; // Processors BOOLEAN ThermalControl; BOOLEAN ProcessorThrottle; BYTE ProcessorMinThrottle; BYTE ProcessorMaxThrottle; BYTE spare2[4]; // Disk BOOLEAN DiskSpinDown; BYTE spare3[8]; // System Battery BOOLEAN SystemBatteriesPresent; BOOLEAN BatteriesAreShortTerm; BATTERY_REPORTING_SCALE BatteryScale[3]; // Wake SYSTEM_POWER_STATE AcOnLineWake; SYSTEM_POWER_STATE SoftLidWake; SYSTEM_POWER_STATE RtcWake; SYSTEM_POWER_STATE MinDeviceWakeState; // note this may change on driver load SYSTEM_POWER_STATE DefaultLowLatencyWake; } SYSTEM_POWER_CAPABILITIES, *PSYSTEM_POWER_CAPABILITIES; typedef struct { BOOLEAN AcOnLine; BOOLEAN BatteryPresent; BOOLEAN Charging; BOOLEAN Discharging; BOOLEAN Spare1[4]; DWORD MaxCapacity; DWORD RemainingCapacity; DWORD Rate; DWORD EstimatedTime; DWORD DefaultAlert1; DWORD DefaultAlert2; } SYSTEM_BATTERY_STATE, *PSYSTEM_BATTERY_STATE; // // Image Format // #ifndef _MAC #include "pshpack4.h" // 4 byte packing is the default #define IMAGE_DOS_SIGNATURE 0x5A4D // MZ #define IMAGE_OS2_SIGNATURE 0x454E // NE #define IMAGE_OS2_SIGNATURE_LE 0x454C // LE #define IMAGE_VXD_SIGNATURE 0x454C // LE #define IMAGE_NT_SIGNATURE 0x00004550 // PE00 #include "pshpack2.h" // 16 bit headers are 2 byte packed #else #include "pshpack1.h" #define IMAGE_DOS_SIGNATURE 0x4D5A // MZ #define IMAGE_OS2_SIGNATURE 0x4E45 // NE #define IMAGE_OS2_SIGNATURE_LE 0x4C45 // LE #define IMAGE_NT_SIGNATURE 0x50450000 // PE00 #endif typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraphs WORD e_minalloc; // Minimum extra paragraphs needed WORD e_maxalloc; // Maximum extra paragraphs needed WORD e_ss; // Initial (relative) SS value WORD e_sp; // Initial SP value WORD e_csum; // Checksum WORD e_ip; // Initial IP value WORD e_cs; // Initial (relative) CS value WORD e_lfarlc; // File address of relocation table WORD e_ovno; // Overlay number WORD e_res[4]; // Reserved words WORD e_oemid; // OEM identifier (for e_oeminfo) WORD e_oeminfo; // OEM information; e_oemid specific WORD e_res2[10]; // Reserved words LONG e_lfanew; // File address of new exe header } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; typedef struct _IMAGE_OS2_HEADER { // OS/2 .EXE header WORD ne_magic; // Magic number CHAR ne_ver; // Version number CHAR ne_rev; // Revision number WORD ne_enttab; // Offset of Entry Table WORD ne_cbenttab; // Number of bytes in Entry Table LONG ne_crc; // Checksum of whole file WORD ne_flags; // Flag word WORD ne_autodata; // Automatic data segment number WORD ne_heap; // Initial heap allocation WORD ne_stack; // Initial stack allocation LONG ne_csip; // Initial CS:IP setting LONG ne_sssp; // Initial SS:SP setting WORD ne_cseg; // Count of file segments WORD ne_cmod; // Entries in Module Reference Table WORD ne_cbnrestab; // Size of non-resident name table WORD ne_segtab; // Offset of Segment Table WORD ne_rsrctab; // Offset of Resource Table WORD ne_restab; // Offset of resident name table WORD ne_modtab; // Offset of Module Reference Table WORD ne_imptab; // Offset of Imported Names Table LONG ne_nrestab; // Offset of Non-resident Names Table WORD ne_cmovent; // Count of movable entries WORD ne_align; // Segment alignment shift count WORD ne_cres; // Count of resource segments BYTE ne_exetyp; // Target Operating system BYTE ne_flagsothers; // Other .EXE flags WORD ne_pretthunks; // offset to return thunks WORD ne_psegrefbytes; // offset to segment ref. bytes WORD ne_swaparea; // Minimum code swap area size WORD ne_expver; // Expected Windows version number } IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER; typedef struct _IMAGE_VXD_HEADER { // Windows VXD header WORD e32_magic; // Magic number BYTE e32_border; // The byte ordering for the VXD BYTE e32_worder; // The word ordering for the VXD DWORD e32_level; // The EXE format level for now = 0 WORD e32_cpu; // The CPU type WORD e32_os; // The OS type DWORD e32_ver; // Module version DWORD e32_mflags; // Module flags DWORD e32_mpages; // Module # pages DWORD e32_startobj; // Object # for instruction pointer DWORD e32_eip; // Extended instruction pointer DWORD e32_stackobj; // Object # for stack pointer DWORD e32_esp; // Extended stack pointer DWORD e32_pagesize; // VXD page size DWORD e32_lastpagesize; // Last page size in VXD DWORD e32_fixupsize; // Fixup section size DWORD e32_fixupsum; // Fixup section checksum DWORD e32_ldrsize; // Loader section size DWORD e32_ldrsum; // Loader section checksum DWORD e32_objtab; // Object table offset DWORD e32_objcnt; // Number of objects in module DWORD e32_objmap; // Object page map offset DWORD e32_itermap; // Object iterated data map offset DWORD e32_rsrctab; // Offset of Resource Table DWORD e32_rsrccnt; // Number of resource entries DWORD e32_restab; // Offset of resident name table DWORD e32_enttab; // Offset of Entry Table DWORD e32_dirtab; // Offset of Module Directive Table DWORD e32_dircnt; // Number of module directives DWORD e32_fpagetab; // Offset of Fixup Page Table DWORD e32_frectab; // Offset of Fixup Record Table DWORD e32_impmod; // Offset of Import Module Name Table DWORD e32_impmodcnt; // Number of entries in Import Module Name Table DWORD e32_impproc; // Offset of Import Procedure Name Table DWORD e32_pagesum; // Offset of Per-Page Checksum Table DWORD e32_datapage; // Offset of Enumerated Data Pages DWORD e32_preload; // Number of preload pages DWORD e32_nrestab; // Offset of Non-resident Names Table DWORD e32_cbnrestab; // Size of Non-resident Name Table DWORD e32_nressum; // Non-resident Name Table Checksum DWORD e32_autodata; // Object # for automatic data object DWORD e32_debuginfo; // Offset of the debugging information DWORD e32_debuglen; // The length of the debugging info. in bytes DWORD e32_instpreload; // Number of instance pages in preload section of VXD file DWORD e32_instdemand; // Number of instance pages in demand load section of VXD file DWORD e32_heapsize; // Size of heap - for 16-bit apps BYTE e32_res3[12]; // Reserved words DWORD e32_winresoff; DWORD e32_winreslen; WORD e32_devid; // Device ID for VxD WORD e32_ddkver; // DDK version for VxD } IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER; #ifndef _MAC #include "poppack.h" // Back to 4 byte packing #endif // // File header format. // typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; #define IMAGE_SIZEOF_FILE_HEADER 20 #define IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file. #define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved externel references). #define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 // Line nunbers stripped from file. #define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 // Local symbols stripped from file. #define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 // Agressively trim working set #define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 // App can handle >2gb addresses #define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 // Bytes of machine word are reversed. #define IMAGE_FILE_32BIT_MACHINE 0x0100 // 32 bit word machine. #define IMAGE_FILE_DEBUG_STRIPPED 0x0200 // Debugging info stripped from file in .DBG file #define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 // If Image is on removable media, copy and run from the swap file. #define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 // If Image is on Net, copy and run from the swap file. #define IMAGE_FILE_SYSTEM 0x1000 // System File. #define IMAGE_FILE_DLL 0x2000 // File is a DLL. #define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 // File should only be run on a UP machine #define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 // Bytes of machine word are reversed. #define IMAGE_FILE_MACHINE_UNKNOWN 0 #define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386. #define IMAGE_FILE_MACHINE_R3000 0x0162 // MIPS little-endian, 0x160 big-endian #define IMAGE_FILE_MACHINE_R4000 0x0166 // MIPS little-endian #define IMAGE_FILE_MACHINE_R10000 0x0168 // MIPS little-endian #define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 // MIPS little-endian WCE v2 #define IMAGE_FILE_MACHINE_ALPHA 0x0184 // Alpha_AXP #define IMAGE_FILE_MACHINE_SH3 0x01a2 // SH3 little-endian #define IMAGE_FILE_MACHINE_SH3DSP 0x01a3 #define IMAGE_FILE_MACHINE_SH3E 0x01a4 // SH3E little-endian #define IMAGE_FILE_MACHINE_SH4 0x01a6 // SH4 little-endian #define IMAGE_FILE_MACHINE_SH5 0x01a8 // SH5 #define IMAGE_FILE_MACHINE_ARM 0x01c0 // ARM Little-Endian #define IMAGE_FILE_MACHINE_THUMB 0x01c2 #define IMAGE_FILE_MACHINE_AM33 0x01d3 #define IMAGE_FILE_MACHINE_POWERPC 0x01F0 // IBM PowerPC Little-Endian #define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1 #define IMAGE_FILE_MACHINE_IA64 0x0200 // Intel 64 #define IMAGE_FILE_MACHINE_MIPS16 0x0266 // MIPS #define IMAGE_FILE_MACHINE_ALPHA64 0x0284 // ALPHA64 #define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 // MIPS #define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 // MIPS #define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 #define IMAGE_FILE_MACHINE_TRICORE 0x0520 // Infineon #define IMAGE_FILE_MACHINE_CEF 0x0CEF #define IMAGE_FILE_MACHINE_EBC 0x0EBC // EFI Byte Code #define IMAGE_FILE_MACHINE_AMD64 0x8664 // AMD64 (K8) #define IMAGE_FILE_MACHINE_M32R 0x9041 // M32R little-endian #define IMAGE_FILE_MACHINE_CEE 0xC0EE // // Directory format. // typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size; } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 // // Optional header format. // typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; // // NT additional fields. // 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]; } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; typedef 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; } IMAGE_ROM_OPTIONAL_HEADER, *PIMAGE_ROM_OPTIONAL_HEADER; typedef 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]; } IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; #define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56 #define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28 #define IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224 #define IMAGE_SIZEOF_NT_OPTIONAL64_HEADER 240 #define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b #define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b #define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 #ifdef _WIN64 typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER; #define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL64_HEADER #define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC #else typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; #define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL32_HEADER #define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC #endif typedef struct _IMAGE_NT_HEADERS64 { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER64 OptionalHeader; } IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; typedef struct _IMAGE_ROM_HEADERS { IMAGE_FILE_HEADER FileHeader; IMAGE_ROM_OPTIONAL_HEADER OptionalHeader; } IMAGE_ROM_HEADERS, *PIMAGE_ROM_HEADERS; #ifdef _WIN64 typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; #else typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; #endif // IMAGE_FIRST_SECTION doesn't need 32/64 versions since the file header is the same either way. #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) \ ((ULONG_PTR)ntheader + \ FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + \ ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader \ )) // Subsystem Values #define IMAGE_SUBSYSTEM_UNKNOWN 0 // Unknown subsystem. #define IMAGE_SUBSYSTEM_NATIVE 1 // Image doesn't require a subsystem. #define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 // Image runs in the Windows GUI subsystem. #define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 // Image runs in the Windows character subsystem. #define IMAGE_SUBSYSTEM_OS2_CUI 5 // image runs in the OS/2 character subsystem. #define IMAGE_SUBSYSTEM_POSIX_CUI 7 // image runs in the Posix character subsystem. #define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8 // image is a native Win9x driver. #define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 // Image runs in the Windows CE subsystem. #define IMAGE_SUBSYSTEM_EFI_APPLICATION 10 // #define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11 // #define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12 // #define IMAGE_SUBSYSTEM_EFI_ROM 13 #define IMAGE_SUBSYSTEM_XBOX 14 // DllCharacteristics Entries // IMAGE_LIBRARY_PROCESS_INIT 0x0001 // Reserved. // IMAGE_LIBRARY_PROCESS_TERM 0x0002 // Reserved. // IMAGE_LIBRARY_THREAD_INIT 0x0004 // Reserved. // IMAGE_LIBRARY_THREAD_TERM 0x0008 // Reserved. #define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400 // Image does not use SEH. No SE handler may reside in this image #define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800 // Do not bind this image. // 0x1000 // Reserved. #define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER 0x2000 // Driver uses WDM model // 0x4000 // Reserved. #define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE 0x8000 // Directory Entries #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP #define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers #define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor // // Non-COFF Object file header // typedef struct ANON_OBJECT_HEADER { WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN WORD Sig2; // Must be 0xffff WORD Version; // >= 1 (implies the CLSID field is present) WORD Machine; DWORD TimeDateStamp; CLSID ClassID; // Used to invoke CoCreateInstance DWORD SizeOfData; // Size of data that follows the header } ANON_OBJECT_HEADER; // // Section header format. // #define IMAGE_SIZEOF_SHORT_NAME 8 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; DWORD PointerToLinenumbers; WORD NumberOfRelocations; WORD NumberOfLinenumbers; DWORD Characteristics; } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; #define IMAGE_SIZEOF_SECTION_HEADER 40 // // Section characteristics. // // IMAGE_SCN_TYPE_REG 0x00000000 // Reserved. // IMAGE_SCN_TYPE_DSECT 0x00000001 // Reserved. // IMAGE_SCN_TYPE_NOLOAD 0x00000002 // Reserved. // IMAGE_SCN_TYPE_GROUP 0x00000004 // Reserved. #define IMAGE_SCN_TYPE_NO_PAD 0x00000008 // Reserved. // IMAGE_SCN_TYPE_COPY 0x00000010 // Reserved. #define IMAGE_SCN_CNT_CODE 0x00000020 // Section contains code. #define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 // Section contains initialized data. #define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 // Section contains uninitialized data. #define IMAGE_SCN_LNK_OTHER 0x00000100 // Reserved. #define IMAGE_SCN_LNK_INFO 0x00000200 // Section contains comments or some other type of information. // IMAGE_SCN_TYPE_OVER 0x00000400 // Reserved. #define IMAGE_SCN_LNK_REMOVE 0x00000800 // Section contents will not become part of image. #define IMAGE_SCN_LNK_COMDAT 0x00001000 // Section contents comdat. // 0x00002000 // Reserved. // IMAGE_SCN_MEM_PROTECTED - Obsolete 0x00004000 #define IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000 // Reset speculative exceptions handling bits in the TLB entries for this section. #define IMAGE_SCN_GPREL 0x00008000 // Section content can be accessed relative to GP #define IMAGE_SCN_MEM_FARDATA 0x00008000 // IMAGE_SCN_MEM_SYSHEAP - Obsolete 0x00010000 #define IMAGE_SCN_MEM_PURGEABLE 0x00020000 #define IMAGE_SCN_MEM_16BIT 0x00020000 #define IMAGE_SCN_MEM_LOCKED 0x00040000 #define IMAGE_SCN_MEM_PRELOAD 0x00080000 #define IMAGE_SCN_ALIGN_1BYTES 0x00100000 // #define IMAGE_SCN_ALIGN_2BYTES 0x00200000 // #define IMAGE_SCN_ALIGN_4BYTES 0x00300000 // #define IMAGE_SCN_ALIGN_8BYTES 0x00400000 // #define IMAGE_SCN_ALIGN_16BYTES 0x00500000 // Default alignment if no others are specified. #define IMAGE_SCN_ALIGN_32BYTES 0x00600000 // #define IMAGE_SCN_ALIGN_64BYTES 0x00700000 // #define IMAGE_SCN_ALIGN_128BYTES 0x00800000 // #define IMAGE_SCN_ALIGN_256BYTES 0x00900000 // #define IMAGE_SCN_ALIGN_512BYTES 0x00A00000 // #define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000 // #define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000 // #define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000 // #define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000 // // Unused 0x00F00000 #define IMAGE_SCN_ALIGN_MASK 0x00F00000 #define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000 // Section contains extended relocations. #define IMAGE_SCN_MEM_DISCARDABLE 0x02000000 // Section can be discarded. #define IMAGE_SCN_MEM_NOT_CACHED 0x04000000 // Section is not cachable. #define IMAGE_SCN_MEM_NOT_PAGED 0x08000000 // Section is not pageable. #define IMAGE_SCN_MEM_SHARED 0x10000000 // Section is shareable. #define IMAGE_SCN_MEM_EXECUTE 0x20000000 // Section is executable. #define IMAGE_SCN_MEM_READ 0x40000000 // Section is readable. #define IMAGE_SCN_MEM_WRITE 0x80000000 // Section is writeable. // // TLS Chaacteristic Flags // #define IMAGE_SCN_SCALE_INDEX 0x00000001 // Tls index is scaled #ifndef _MAC #include "pshpack2.h" // Symbols, relocs, and linenumbers are 2 byte packed #endif // // Symbol format. // typedef struct _IMAGE_SYMBOL { union { BYTE ShortName[8]; struct { DWORD Short; // if 0, use LongName DWORD Long; // offset into string table } Name; DWORD LongName[2]; // PBYTE [2] } N; DWORD Value; SHORT SectionNumber; WORD Type; BYTE StorageClass; BYTE NumberOfAuxSymbols; } IMAGE_SYMBOL; typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL; #define IMAGE_SIZEOF_SYMBOL 18 // // Section values. // // Symbols have a section number of the section in which they are // defined. Otherwise, section numbers have the following meanings: // #define IMAGE_SYM_UNDEFINED (SHORT)0 // Symbol is undefined or is common. #define IMAGE_SYM_ABSOLUTE (SHORT)-1 // Symbol is an absolute value. #define IMAGE_SYM_DEBUG (SHORT)-2 // Symbol is a special debug item. #define IMAGE_SYM_SECTION_MAX 0xFEFF // Values 0xFF00-0xFFFF are special // // Type (fundamental) values. // #define IMAGE_SYM_TYPE_NULL 0x0000 // no type. #define IMAGE_SYM_TYPE_VOID 0x0001 // #define IMAGE_SYM_TYPE_CHAR 0x0002 // type character. #define IMAGE_SYM_TYPE_SHORT 0x0003 // type short integer. #define IMAGE_SYM_TYPE_INT 0x0004 // #define IMAGE_SYM_TYPE_LONG 0x0005 // #define IMAGE_SYM_TYPE_FLOAT 0x0006 // #define IMAGE_SYM_TYPE_DOUBLE 0x0007 // #define IMAGE_SYM_TYPE_STRUCT 0x0008 // #define IMAGE_SYM_TYPE_UNION 0x0009 // #define IMAGE_SYM_TYPE_ENUM 0x000A // enumeration. #define IMAGE_SYM_TYPE_MOE 0x000B // member of enumeration. #define IMAGE_SYM_TYPE_BYTE 0x000C // #define IMAGE_SYM_TYPE_WORD 0x000D // #define IMAGE_SYM_TYPE_UINT 0x000E // #define IMAGE_SYM_TYPE_DWORD 0x000F // #define IMAGE_SYM_TYPE_PCODE 0x8000 // // // Type (derived) values. // #define IMAGE_SYM_DTYPE_NULL 0 // no derived type. #define IMAGE_SYM_DTYPE_POINTER 1 // pointer. #define IMAGE_SYM_DTYPE_FUNCTION 2 // function. #define IMAGE_SYM_DTYPE_ARRAY 3 // array. // // Storage classes. // #define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 #define IMAGE_SYM_CLASS_NULL 0x0000 #define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 #define IMAGE_SYM_CLASS_EXTERNAL 0x0002 #define IMAGE_SYM_CLASS_STATIC 0x0003 #define IMAGE_SYM_CLASS_REGISTER 0x0004 #define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 #define IMAGE_SYM_CLASS_LABEL 0x0006 #define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 #define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 #define IMAGE_SYM_CLASS_ARGUMENT 0x0009 #define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A #define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B #define IMAGE_SYM_CLASS_UNION_TAG 0x000C #define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D #define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E #define IMAGE_SYM_CLASS_ENUM_TAG 0x000F #define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 #define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 #define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 #define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 // #define IMAGE_SYM_CLASS_BLOCK 0x0064 #define IMAGE_SYM_CLASS_FUNCTION 0x0065 #define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 #define IMAGE_SYM_CLASS_FILE 0x0067 // new #define IMAGE_SYM_CLASS_SECTION 0x0068 #define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 #define IMAGE_SYM_CLASS_CLR_TOKEN 0x006B // type packing constants #define N_BTMASK 0x000F #define N_TMASK 0x0030 #define N_TMASK1 0x00C0 #define N_TMASK2 0x00F0 #define N_BTSHFT 4 #define N_TSHIFT 2 // MACROS // Basic Type of x #define BTYPE(x) ((x) & N_BTMASK) // Is x a pointer? #ifndef ISPTR #define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)) #endif // Is x a function? #ifndef ISFCN #define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT)) #endif // Is x an array? #ifndef ISARY #define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)) #endif // Is x a structure, union, or enumeration TAG? #ifndef ISTAG #define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG) #endif #ifndef INCREF #define INCREF(x) ((((x)&~N_BTMASK)<>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK)) #endif // // Auxiliary entry format. // typedef union _IMAGE_AUX_SYMBOL { struct { DWORD TagIndex; // struct, union, or enum tag index union { struct { WORD Linenumber; // declaration line number WORD Size; // size of struct, union, or enum } LnSz; DWORD TotalSize; } Misc; union { struct { // if ISFCN, tag, or .bb DWORD PointerToLinenumber; DWORD PointerToNextFunction; } Function; struct { // if ISARY, up to 4 dimen. WORD Dimension[4]; } Array; } FcnAry; WORD TvIndex; // tv index } Sym; struct { BYTE Name[IMAGE_SIZEOF_SYMBOL]; } File; struct { DWORD Length; // section length WORD NumberOfRelocations; // number of relocation entries WORD NumberOfLinenumbers; // number of line numbers DWORD CheckSum; // checksum for communal SHORT Number; // section number to associate with BYTE Selection; // communal selection type } Section; } IMAGE_AUX_SYMBOL; typedef IMAGE_AUX_SYMBOL UNALIGNED *PIMAGE_AUX_SYMBOL; #define IMAGE_SIZEOF_AUX_SYMBOL 18 typedef enum IMAGE_AUX_SYMBOL_TYPE { IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1, } IMAGE_AUX_SYMBOL_TYPE; #include typedef struct IMAGE_AUX_SYMBOL_TOKEN_DEF { BYTE bAuxType; // IMAGE_AUX_SYMBOL_TYPE BYTE bReserved; // Must be 0 DWORD SymbolTableIndex; BYTE rgbReserved[12]; // Must be 0 } IMAGE_AUX_SYMBOL_TOKEN_DEF; typedef IMAGE_AUX_SYMBOL_TOKEN_DEF UNALIGNED *PIMAGE_AUX_SYMBOL_TOKEN_DEF; #include // // Communal selection types. // #define IMAGE_COMDAT_SELECT_NODUPLICATES 1 #define IMAGE_COMDAT_SELECT_ANY 2 #define IMAGE_COMDAT_SELECT_SAME_SIZE 3 #define IMAGE_COMDAT_SELECT_EXACT_MATCH 4 #define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5 #define IMAGE_COMDAT_SELECT_LARGEST 6 #define IMAGE_COMDAT_SELECT_NEWEST 7 #define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1 #define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2 #define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3 // // Relocation format. // typedef struct _IMAGE_RELOCATION { union { DWORD VirtualAddress; DWORD RelocCount; // Set to the real count when IMAGE_SCN_LNK_NRELOC_OVFL is set }; DWORD SymbolTableIndex; WORD Type; } IMAGE_RELOCATION; typedef IMAGE_RELOCATION UNALIGNED *PIMAGE_RELOCATION; #define IMAGE_SIZEOF_RELOCATION 10 // // I386 relocation types. // #define IMAGE_REL_I386_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary #define IMAGE_REL_I386_DIR16 0x0001 // Direct 16-bit reference to the symbols virtual address #define IMAGE_REL_I386_REL16 0x0002 // PC-relative 16-bit reference to the symbols virtual address #define IMAGE_REL_I386_DIR32 0x0006 // Direct 32-bit reference to the symbols virtual address #define IMAGE_REL_I386_DIR32NB 0x0007 // Direct 32-bit reference to the symbols virtual address, base not included #define IMAGE_REL_I386_SEG12 0x0009 // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address #define IMAGE_REL_I386_SECTION 0x000A #define IMAGE_REL_I386_SECREL 0x000B #define IMAGE_REL_I386_TOKEN 0x000C // clr token #define IMAGE_REL_I386_SECREL7 0x000D // 7 bit offset from base of section containing target #define IMAGE_REL_I386_REL32 0x0014 // PC-relative 32-bit reference to the symbols virtual address // // MIPS relocation types. // #define IMAGE_REL_MIPS_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary #define IMAGE_REL_MIPS_REFHALF 0x0001 #define IMAGE_REL_MIPS_REFWORD 0x0002 #define IMAGE_REL_MIPS_JMPADDR 0x0003 #define IMAGE_REL_MIPS_REFHI 0x0004 #define IMAGE_REL_MIPS_REFLO 0x0005 #define IMAGE_REL_MIPS_GPREL 0x0006 #define IMAGE_REL_MIPS_LITERAL 0x0007 #define IMAGE_REL_MIPS_SECTION 0x000A #define IMAGE_REL_MIPS_SECREL 0x000B #define IMAGE_REL_MIPS_SECRELLO 0x000C // Low 16-bit section relative referemce (used for >32k TLS) #define IMAGE_REL_MIPS_SECRELHI 0x000D // High 16-bit section relative reference (used for >32k TLS) #define IMAGE_REL_MIPS_TOKEN 0x000E // clr token #define IMAGE_REL_MIPS_JMPADDR16 0x0010 #define IMAGE_REL_MIPS_REFWORDNB 0x0022 #define IMAGE_REL_MIPS_PAIR 0x0025 // // Alpha Relocation types. // #define IMAGE_REL_ALPHA_ABSOLUTE 0x0000 #define IMAGE_REL_ALPHA_REFLONG 0x0001 #define IMAGE_REL_ALPHA_REFQUAD 0x0002 #define IMAGE_REL_ALPHA_GPREL32 0x0003 #define IMAGE_REL_ALPHA_LITERAL 0x0004 #define IMAGE_REL_ALPHA_LITUSE 0x0005 #define IMAGE_REL_ALPHA_GPDISP 0x0006 #define IMAGE_REL_ALPHA_BRADDR 0x0007 #define IMAGE_REL_ALPHA_HINT 0x0008 #define IMAGE_REL_ALPHA_INLINE_REFLONG 0x0009 #define IMAGE_REL_ALPHA_REFHI 0x000A #define IMAGE_REL_ALPHA_REFLO 0x000B #define IMAGE_REL_ALPHA_PAIR 0x000C #define IMAGE_REL_ALPHA_MATCH 0x000D #define IMAGE_REL_ALPHA_SECTION 0x000E #define IMAGE_REL_ALPHA_SECREL 0x000F #define IMAGE_REL_ALPHA_REFLONGNB 0x0010 #define IMAGE_REL_ALPHA_SECRELLO 0x0011 // Low 16-bit section relative reference #define IMAGE_REL_ALPHA_SECRELHI 0x0012 // High 16-bit section relative reference #define IMAGE_REL_ALPHA_REFQ3 0x0013 // High 16 bits of 48 bit reference #define IMAGE_REL_ALPHA_REFQ2 0x0014 // Middle 16 bits of 48 bit reference #define IMAGE_REL_ALPHA_REFQ1 0x0015 // Low 16 bits of 48 bit reference #define IMAGE_REL_ALPHA_GPRELLO 0x0016 // Low 16-bit GP relative reference #define IMAGE_REL_ALPHA_GPRELHI 0x0017 // High 16-bit GP relative reference // // IBM PowerPC relocation types. // #define IMAGE_REL_PPC_ABSOLUTE 0x0000 // NOP #define IMAGE_REL_PPC_ADDR64 0x0001 // 64-bit address #define IMAGE_REL_PPC_ADDR32 0x0002 // 32-bit address #define IMAGE_REL_PPC_ADDR24 0x0003 // 26-bit address, shifted left 2 (branch absolute) #define IMAGE_REL_PPC_ADDR16 0x0004 // 16-bit address #define IMAGE_REL_PPC_ADDR14 0x0005 // 16-bit address, shifted left 2 (load doubleword) #define IMAGE_REL_PPC_REL24 0x0006 // 26-bit PC-relative offset, shifted left 2 (branch relative) #define IMAGE_REL_PPC_REL14 0x0007 // 16-bit PC-relative offset, shifted left 2 (br cond relative) #define IMAGE_REL_PPC_TOCREL16 0x0008 // 16-bit offset from TOC base #define IMAGE_REL_PPC_TOCREL14 0x0009 // 16-bit offset from TOC base, shifted left 2 (load doubleword) #define IMAGE_REL_PPC_ADDR32NB 0x000A // 32-bit addr w/o image base #define IMAGE_REL_PPC_SECREL 0x000B // va of containing section (as in an image sectionhdr) #define IMAGE_REL_PPC_SECTION 0x000C // sectionheader number #define IMAGE_REL_PPC_IFGLUE 0x000D // substitute TOC restore instruction iff symbol is glue code #define IMAGE_REL_PPC_IMGLUE 0x000E // symbol is glue code; virtual address is TOC restore instruction #define IMAGE_REL_PPC_SECREL16 0x000F // va of containing section (limited to 16 bits) #define IMAGE_REL_PPC_REFHI 0x0010 #define IMAGE_REL_PPC_REFLO 0x0011 #define IMAGE_REL_PPC_PAIR 0x0012 #define IMAGE_REL_PPC_SECRELLO 0x0013 // Low 16-bit section relative reference (used for >32k TLS) #define IMAGE_REL_PPC_SECRELHI 0x0014 // High 16-bit section relative reference (used for >32k TLS) #define IMAGE_REL_PPC_GPREL 0x0015 #define IMAGE_REL_PPC_TOKEN 0x0016 // clr token #define IMAGE_REL_PPC_TYPEMASK 0x00FF // mask to isolate above values in IMAGE_RELOCATION.Type // Flag bits in IMAGE_RELOCATION.TYPE #define IMAGE_REL_PPC_NEG 0x0100 // subtract reloc value rather than adding it #define IMAGE_REL_PPC_BRTAKEN 0x0200 // fix branch prediction bit to predict branch taken #define IMAGE_REL_PPC_BRNTAKEN 0x0400 // fix branch prediction bit to predict branch not taken #define IMAGE_REL_PPC_TOCDEFN 0x0800 // toc slot defined in file (or, data in toc) // // Hitachi SH3 relocation types. // #define IMAGE_REL_SH3_ABSOLUTE 0x0000 // No relocation #define IMAGE_REL_SH3_DIRECT16 0x0001 // 16 bit direct #define IMAGE_REL_SH3_DIRECT32 0x0002 // 32 bit direct #define IMAGE_REL_SH3_DIRECT8 0x0003 // 8 bit direct, -128..255 #define IMAGE_REL_SH3_DIRECT8_WORD 0x0004 // 8 bit direct .W (0 ext.) #define IMAGE_REL_SH3_DIRECT8_LONG 0x0005 // 8 bit direct .L (0 ext.) #define IMAGE_REL_SH3_DIRECT4 0x0006 // 4 bit direct (0 ext.) #define IMAGE_REL_SH3_DIRECT4_WORD 0x0007 // 4 bit direct .W (0 ext.) #define IMAGE_REL_SH3_DIRECT4_LONG 0x0008 // 4 bit direct .L (0 ext.) #define IMAGE_REL_SH3_PCREL8_WORD 0x0009 // 8 bit PC relative .W #define IMAGE_REL_SH3_PCREL8_LONG 0x000A // 8 bit PC relative .L #define IMAGE_REL_SH3_PCREL12_WORD 0x000B // 12 LSB PC relative .W #define IMAGE_REL_SH3_STARTOF_SECTION 0x000C // Start of EXE section #define IMAGE_REL_SH3_SIZEOF_SECTION 0x000D // Size of EXE section #define IMAGE_REL_SH3_SECTION 0x000E // Section table index #define IMAGE_REL_SH3_SECREL 0x000F // Offset within section #define IMAGE_REL_SH3_DIRECT32_NB 0x0010 // 32 bit direct not based #define IMAGE_REL_SH3_GPREL4_LONG 0x0011 // GP-relative addressing #define IMAGE_REL_SH3_TOKEN 0x0012 // clr token #define IMAGE_REL_ARM_ABSOLUTE 0x0000 // No relocation required #define IMAGE_REL_ARM_ADDR32 0x0001 // 32 bit address #define IMAGE_REL_ARM_ADDR32NB 0x0002 // 32 bit address w/o image base #define IMAGE_REL_ARM_BRANCH24 0x0003 // 24 bit offset << 2 & sign ext. #define IMAGE_REL_ARM_BRANCH11 0x0004 // Thumb: 2 11 bit offsets #define IMAGE_REL_ARM_TOKEN 0x0005 // clr token #define IMAGE_REL_ARM_GPREL12 0x0006 // GP-relative addressing (ARM) #define IMAGE_REL_ARM_GPREL7 0x0007 // GP-relative addressing (Thumb) #define IMAGE_REL_ARM_BLX24 0x0008 #define IMAGE_REL_ARM_BLX11 0x0009 #define IMAGE_REL_ARM_SECTION 0x000E // Section table index #define IMAGE_REL_ARM_SECREL 0x000F // Offset within section #define IMAGE_REL_AM_ABSOLUTE 0x0000 #define IMAGE_REL_AM_ADDR32 0x0001 #define IMAGE_REL_AM_ADDR32NB 0x0002 #define IMAGE_REL_AM_CALL32 0x0003 #define IMAGE_REL_AM_FUNCINFO 0x0004 #define IMAGE_REL_AM_REL32_1 0x0005 #define IMAGE_REL_AM_REL32_2 0x0006 #define IMAGE_REL_AM_SECREL 0x0007 #define IMAGE_REL_AM_SECTION 0x0008 #define IMAGE_REL_AM_TOKEN 0x0009 // // X86-64 relocations // #define IMAGE_REL_AMD64_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary #define IMAGE_REL_AMD64_ADDR64 0x0001 // 64-bit address (VA). #define IMAGE_REL_AMD64_ADDR32 0x0002 // 32-bit address (VA). #define IMAGE_REL_AMD64_ADDR32NB 0x0003 // 32-bit address w/o image base (RVA). #define IMAGE_REL_AMD64_REL32 0x0004 // 32-bit relative address from byte following reloc #define IMAGE_REL_AMD64_REL32_1 0x0005 // 32-bit relative address from byte distance 1 from reloc #define IMAGE_REL_AMD64_REL32_2 0x0006 // 32-bit relative address from byte distance 2 from reloc #define IMAGE_REL_AMD64_REL32_3 0x0007 // 32-bit relative address from byte distance 3 from reloc #define IMAGE_REL_AMD64_REL32_4 0x0008 // 32-bit relative address from byte distance 4 from reloc #define IMAGE_REL_AMD64_REL32_5 0x0009 // 32-bit relative address from byte distance 5 from reloc #define IMAGE_REL_AMD64_SECTION 0x000A // Section index #define IMAGE_REL_AMD64_SECREL 0x000B // 32 bit offset from base of section containing target #define IMAGE_REL_AMD64_SECREL7 0x000C // 7 bit unsigned offset from base of section containing target #define IMAGE_REL_AMD64_TOKEN 0x000D // 32 bit metadata token // // IA64 relocation types. // #define IMAGE_REL_IA64_ABSOLUTE 0x0000 #define IMAGE_REL_IA64_IMM14 0x0001 #define IMAGE_REL_IA64_IMM22 0x0002 #define IMAGE_REL_IA64_IMM64 0x0003 #define IMAGE_REL_IA64_DIR32 0x0004 #define IMAGE_REL_IA64_DIR64 0x0005 #define IMAGE_REL_IA64_PCREL21B 0x0006 #define IMAGE_REL_IA64_PCREL21M 0x0007 #define IMAGE_REL_IA64_PCREL21F 0x0008 #define IMAGE_REL_IA64_GPREL22 0x0009 #define IMAGE_REL_IA64_LTOFF22 0x000A #define IMAGE_REL_IA64_SECTION 0x000B #define IMAGE_REL_IA64_SECREL22 0x000C #define IMAGE_REL_IA64_SECREL64I 0x000D #define IMAGE_REL_IA64_SECREL32 0x000E // #define IMAGE_REL_IA64_DIR32NB 0x0010 #define IMAGE_REL_IA64_SREL14 0x0011 #define IMAGE_REL_IA64_SREL22 0x0012 #define IMAGE_REL_IA64_SREL32 0x0013 #define IMAGE_REL_IA64_UREL32 0x0014 #define IMAGE_REL_IA64_PCREL60X 0x0015 // This is always a BRL and never converted #define IMAGE_REL_IA64_PCREL60B 0x0016 // If possible, convert to MBB bundle with NOP.B in slot 1 #define IMAGE_REL_IA64_PCREL60F 0x0017 // If possible, convert to MFB bundle with NOP.F in slot 1 #define IMAGE_REL_IA64_PCREL60I 0x0018 // If possible, convert to MIB bundle with NOP.I in slot 1 #define IMAGE_REL_IA64_PCREL60M 0x0019 // If possible, convert to MMB bundle with NOP.M in slot 1 #define IMAGE_REL_IA64_IMMGPREL64 0x001A #define IMAGE_REL_IA64_TOKEN 0x001B // clr token #define IMAGE_REL_IA64_GPREL32 0x001C #define IMAGE_REL_IA64_ADDEND 0x001F // // CEF relocation types. // #define IMAGE_REL_CEF_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary #define IMAGE_REL_CEF_ADDR32 0x0001 // 32-bit address (VA). #define IMAGE_REL_CEF_ADDR64 0x0002 // 64-bit address (VA). #define IMAGE_REL_CEF_ADDR32NB 0x0003 // 32-bit address w/o image base (RVA). #define IMAGE_REL_CEF_SECTION 0x0004 // Section index #define IMAGE_REL_CEF_SECREL 0x0005 // 32 bit offset from base of section containing target #define IMAGE_REL_CEF_TOKEN 0x0006 // 32 bit metadata token // // clr relocation types. // #define IMAGE_REL_CEE_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary #define IMAGE_REL_CEE_ADDR32 0x0001 // 32-bit address (VA). #define IMAGE_REL_CEE_ADDR64 0x0002 // 64-bit address (VA). #define IMAGE_REL_CEE_ADDR32NB 0x0003 // 32-bit address w/o image base (RVA). #define IMAGE_REL_CEE_SECTION 0x0004 // Section index #define IMAGE_REL_CEE_SECREL 0x0005 // 32 bit offset from base of section containing target #define IMAGE_REL_CEE_TOKEN 0x0006 // 32 bit metadata token #define IMAGE_REL_M32R_ABSOLUTE 0x0000 // No relocation required #define IMAGE_REL_M32R_ADDR32 0x0001 // 32 bit address #define IMAGE_REL_M32R_ADDR32NB 0x0002 // 32 bit address w/o image base #define IMAGE_REL_M32R_ADDR24 0x0003 // 24 bit address #define IMAGE_REL_M32R_GPREL16 0x0004 // GP relative addressing #define IMAGE_REL_M32R_PCREL24 0x0005 // 24 bit offset << 2 & sign ext. #define IMAGE_REL_M32R_PCREL16 0x0006 // 16 bit offset << 2 & sign ext. #define IMAGE_REL_M32R_PCREL8 0x0007 // 8 bit offset << 2 & sign ext. #define IMAGE_REL_M32R_REFHALF 0x0008 // 16 MSBs #define IMAGE_REL_M32R_REFHI 0x0009 // 16 MSBs; adj for LSB sign ext. #define IMAGE_REL_M32R_REFLO 0x000A // 16 LSBs #define IMAGE_REL_M32R_PAIR 0x000B // Link HI and LO #define IMAGE_REL_M32R_SECTION 0x000C // Section table index #define IMAGE_REL_M32R_SECREL32 0x000D // 32 bit section relative reference #define IMAGE_REL_M32R_TOKEN 0x000E // clr token #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) /* Intel-IA64-Filler */ \ Value |= (((ULONGLONG)((*(Address) >> InstPos) & (((ULONGLONG)1 << Size) - 1))) << ValPos) // Intel-IA64-Filler #define INS_IMM64(Value, Address, Size, InstPos, ValPos) /* Intel-IA64-Filler */\ *(PDWORD)Address = (*(PDWORD)Address & ~(((1 << Size) - 1) << InstPos)) | /* Intel-IA64-Filler */\ ((DWORD)((((ULONGLONG)Value >> ValPos) & (((ULONGLONG)1 << Size) - 1))) << InstPos) // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM7B_INST_WORD_X 3 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM7B_SIZE_X 7 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X 4 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM7B_VAL_POS_X 0 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM9D_INST_WORD_X 3 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM9D_SIZE_X 9 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X 18 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM9D_VAL_POS_X 7 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM5C_INST_WORD_X 3 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM5C_SIZE_X 5 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X 13 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM5C_VAL_POS_X 16 // Intel-IA64-Filler #define EMARCH_ENC_I17_IC_INST_WORD_X 3 // Intel-IA64-Filler #define EMARCH_ENC_I17_IC_SIZE_X 1 // Intel-IA64-Filler #define EMARCH_ENC_I17_IC_INST_WORD_POS_X 12 // Intel-IA64-Filler #define EMARCH_ENC_I17_IC_VAL_POS_X 21 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41a_INST_WORD_X 1 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41a_SIZE_X 10 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X 14 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41a_VAL_POS_X 22 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41b_INST_WORD_X 1 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41b_SIZE_X 8 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X 24 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41b_VAL_POS_X 32 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41c_INST_WORD_X 2 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41c_SIZE_X 23 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X 0 // Intel-IA64-Filler #define EMARCH_ENC_I17_IMM41c_VAL_POS_X 40 // Intel-IA64-Filler #define EMARCH_ENC_I17_SIGN_INST_WORD_X 3 // Intel-IA64-Filler #define EMARCH_ENC_I17_SIGN_SIZE_X 1 // Intel-IA64-Filler #define EMARCH_ENC_I17_SIGN_INST_WORD_POS_X 27 // Intel-IA64-Filler #define EMARCH_ENC_I17_SIGN_VAL_POS_X 63 // Intel-IA64-Filler // // Line number format. // typedef struct _IMAGE_LINENUMBER { union { DWORD SymbolTableIndex; // Symbol table index of function name if Linenumber is 0. DWORD VirtualAddress; // Virtual address of line number. } Type; WORD Linenumber; // Line number. } IMAGE_LINENUMBER; typedef IMAGE_LINENUMBER UNALIGNED *PIMAGE_LINENUMBER; #define IMAGE_SIZEOF_LINENUMBER 6 #ifndef _MAC #include "poppack.h" // Back to 4 byte packing #endif // // Based relocation format. // typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; DWORD SizeOfBlock; // WORD TypeOffset[1]; } IMAGE_BASE_RELOCATION; typedef IMAGE_BASE_RELOCATION UNALIGNED * PIMAGE_BASE_RELOCATION; #define IMAGE_SIZEOF_BASE_RELOCATION 8 // // Based relocation types. // #define IMAGE_REL_BASED_ABSOLUTE 0 #define IMAGE_REL_BASED_HIGH 1 #define IMAGE_REL_BASED_LOW 2 #define IMAGE_REL_BASED_HIGHLOW 3 #define IMAGE_REL_BASED_HIGHADJ 4 #define IMAGE_REL_BASED_MIPS_JMPADDR 5 #define IMAGE_REL_BASED_MIPS_JMPADDR16 9 #define IMAGE_REL_BASED_IA64_IMM64 9 #define IMAGE_REL_BASED_DIR64 10 // // Archive format. // #define IMAGE_ARCHIVE_START_SIZE 8 #define IMAGE_ARCHIVE_START "!\n" #define IMAGE_ARCHIVE_END "`\n" #define IMAGE_ARCHIVE_PAD "\n" #define IMAGE_ARCHIVE_LINKER_MEMBER "/ " #define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// " typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER { BYTE Name[16]; // File member name - `/' terminated. BYTE Date[12]; // File member date - decimal. BYTE UserID[6]; // File member user id - decimal. BYTE GroupID[6]; // File member group id - decimal. BYTE Mode[8]; // File member mode - octal. BYTE Size[10]; // File member size - decimal. BYTE EndHeader[2]; // String to end header. } IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER; #define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60 // // DLL support. // // // Export Format // typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Name; DWORD Base; DWORD NumberOfFunctions; DWORD NumberOfNames; DWORD AddressOfFunctions; // RVA from base of image DWORD AddressOfNames; // RVA from base of image DWORD AddressOfNameOrdinals; // RVA from base of image } IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY; // // Import Format // typedef struct _IMAGE_IMPORT_BY_NAME { WORD Hint; BYTE Name[1]; } IMAGE_IMPORT_BY_NAME, *PIMAGE_IMPORT_BY_NAME; #include "pshpack8.h" // Use align 8 for the 64-bit IAT. typedef struct _IMAGE_THUNK_DATA64 { union { ULONGLONG ForwarderString; // PBYTE ULONGLONG Function; // PDWORD ULONGLONG Ordinal; ULONGLONG AddressOfData; // PIMAGE_IMPORT_BY_NAME } u1; } IMAGE_THUNK_DATA64; typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64; #include "poppack.h" // Back to 4 byte packing typedef struct _IMAGE_THUNK_DATA32 { union { DWORD ForwarderString; // PBYTE DWORD Function; // PDWORD DWORD Ordinal; DWORD AddressOfData; // PIMAGE_IMPORT_BY_NAME } u1; } IMAGE_THUNK_DATA32; typedef IMAGE_THUNK_DATA32 * PIMAGE_THUNK_DATA32; #define IMAGE_ORDINAL_FLAG64 0x8000000000000000 #define IMAGE_ORDINAL_FLAG32 0x80000000 #define IMAGE_ORDINAL64(Ordinal) (Ordinal & 0xffff) #define IMAGE_ORDINAL32(Ordinal) (Ordinal & 0xffff) #define IMAGE_SNAP_BY_ORDINAL64(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG64) != 0) #define IMAGE_SNAP_BY_ORDINAL32(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG32) != 0) // // Thread Local Storage // typedef VOID (NTAPI *PIMAGE_TLS_CALLBACK) ( PVOID DllHandle, DWORD Reason, PVOID Reserved ); typedef struct _IMAGE_TLS_DIRECTORY64 { ULONGLONG StartAddressOfRawData; ULONGLONG EndAddressOfRawData; ULONGLONG AddressOfIndex; // PDWORD ULONGLONG AddressOfCallBacks; // PIMAGE_TLS_CALLBACK *; DWORD SizeOfZeroFill; DWORD Characteristics; } IMAGE_TLS_DIRECTORY64; typedef IMAGE_TLS_DIRECTORY64 * PIMAGE_TLS_DIRECTORY64; typedef struct _IMAGE_TLS_DIRECTORY32 { DWORD StartAddressOfRawData; DWORD EndAddressOfRawData; DWORD AddressOfIndex; // PDWORD DWORD AddressOfCallBacks; // PIMAGE_TLS_CALLBACK * DWORD SizeOfZeroFill; DWORD Characteristics; } IMAGE_TLS_DIRECTORY32; typedef IMAGE_TLS_DIRECTORY32 * PIMAGE_TLS_DIRECTORY32; #ifdef _WIN64 #define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64 #define IMAGE_ORDINAL(Ordinal) IMAGE_ORDINAL64(Ordinal) typedef IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA; typedef PIMAGE_THUNK_DATA64 PIMAGE_THUNK_DATA; #define IMAGE_SNAP_BY_ORDINAL(Ordinal) IMAGE_SNAP_BY_ORDINAL64(Ordinal) typedef IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY; typedef PIMAGE_TLS_DIRECTORY64 PIMAGE_TLS_DIRECTORY; #else #define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32 #define IMAGE_ORDINAL(Ordinal) IMAGE_ORDINAL32(Ordinal) typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA; typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA; #define IMAGE_SNAP_BY_ORDINAL(Ordinal) IMAGE_SNAP_BY_ORDINAL32(Ordinal) typedef IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY; typedef PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY; #endif typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; // 0 for terminating null import descriptor DWORD OriginalFirstThunk; // RVA to original unbound IAT (PIMAGE_THUNK_DATA) }; DWORD TimeDateStamp; // 0 if not bound, // -1 if bound, and real date\time stamp // in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND) // O.W. date/time stamp of DLL bound to (Old BIND) DWORD ForwarderChain; // -1 if no forwarders DWORD Name; DWORD FirstThunk; // RVA to IAT (if bound this IAT has actual addresses) } IMAGE_IMPORT_DESCRIPTOR; typedef IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR; // // New format import descriptors pointed to by DataDirectory[ IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT ] // typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR { DWORD TimeDateStamp; WORD OffsetModuleName; WORD NumberOfModuleForwarderRefs; // Array of zero or more IMAGE_BOUND_FORWARDER_REF follows } IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR; typedef struct _IMAGE_BOUND_FORWARDER_REF { DWORD TimeDateStamp; WORD OffsetModuleName; WORD Reserved; } IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF; // // Resource Format. // // // Resource directory consists of two counts, following by a variable length // array of directory entries. The first count is the number of entries at // beginning of the array that have actual names associated with each entry. // The entries are in ascending order, case insensitive strings. The second // count is the number of entries that immediately follow the named entries. // This second count identifies the number of entries that have 16-bit integer // Ids as their name. These entries are also sorted in ascending order. // // This structure allows fast lookup by either name or number, but for any // given resource entry only one form of lookup is supported, not both. // This is consistant with the syntax of the .RC file and the .RES file. // typedef struct _IMAGE_RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; WORD NumberOfNamedEntries; WORD NumberOfIdEntries; // IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; } IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY; #define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 #define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 // // Each directory contains the 32-bit Name of the entry and an offset, // relative to the beginning of the resource directory of the data associated // with this directory entry. If the name of the entry is an actual text // string instead of an integer Id, then the high order bit of the name field // is set to one and the low order 31-bits are an offset, relative to the // beginning of the resource directory of the string, which is of type // IMAGE_RESOURCE_DIRECTORY_STRING. Otherwise the high bit is clear and the // low-order 16-bits are the integer Id that identify this resource directory // entry. If the directory entry is yet another resource directory (i.e. a // subdirectory), then the high order bit of the offset field will be // set to indicate this. Otherwise the high bit is clear and the offset // field points to a resource data entry. // typedef 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; }; }; } IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY; // // For resource directory entries that have actual string names, the Name // field of the directory entry points to an object of the following type. // All of these string objects are stored together after the last resource // directory entry and before the first resource data object. This minimizes // the impact of these variable length objects on the alignment of the fixed // size directory entry objects. // typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING { WORD Length; CHAR NameString[ 1 ]; } IMAGE_RESOURCE_DIRECTORY_STRING, *PIMAGE_RESOURCE_DIRECTORY_STRING; typedef struct _IMAGE_RESOURCE_DIR_STRING_U { WORD Length; WCHAR NameString[ 1 ]; } IMAGE_RESOURCE_DIR_STRING_U, *PIMAGE_RESOURCE_DIR_STRING_U; // // Each resource data entry describes a leaf node in the resource directory // tree. It contains an offset, relative to the beginning of the resource // directory of the data for the resource, a size field that gives the number // of bytes of data at that offset, a CodePage that should be used when // decoding code point values within the resource data. Typically for new // applications the code page would be the unicode code page. // typedef struct _IMAGE_RESOURCE_DATA_ENTRY { DWORD OffsetToData; DWORD Size; DWORD CodePage; DWORD Reserved; } IMAGE_RESOURCE_DATA_ENTRY, *PIMAGE_RESOURCE_DATA_ENTRY; // // Load Configuration Directory Entry // typedef struct { DWORD Size; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD GlobalFlagsClear; DWORD GlobalFlagsSet; DWORD CriticalSectionDefaultTimeout; DWORD DeCommitFreeBlockThreshold; DWORD DeCommitTotalFreeThreshold; DWORD LockPrefixTable; // VA DWORD MaximumAllocationSize; DWORD VirtualMemoryThreshold; DWORD ProcessHeapFlags; DWORD ProcessAffinityMask; WORD CSDVersion; WORD Reserved1; DWORD EditList; // VA DWORD SecurityCookie; // VA DWORD SEHandlerTable; // VA DWORD SEHandlerCount; } IMAGE_LOAD_CONFIG_DIRECTORY32, *PIMAGE_LOAD_CONFIG_DIRECTORY32; typedef struct { DWORD Size; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD GlobalFlagsClear; DWORD GlobalFlagsSet; DWORD CriticalSectionDefaultTimeout; ULONGLONG DeCommitFreeBlockThreshold; ULONGLONG DeCommitTotalFreeThreshold; ULONGLONG LockPrefixTable; // VA ULONGLONG MaximumAllocationSize; ULONGLONG VirtualMemoryThreshold; ULONGLONG ProcessAffinityMask; DWORD ProcessHeapFlags; WORD CSDVersion; WORD Reserved1; ULONGLONG EditList; // VA ULONGLONG SecurityCookie; // VA ULONGLONG SEHandlerTable; // VA ULONGLONG SEHandlerCount; } IMAGE_LOAD_CONFIG_DIRECTORY64, *PIMAGE_LOAD_CONFIG_DIRECTORY64; #ifdef _WIN64 typedef IMAGE_LOAD_CONFIG_DIRECTORY64 IMAGE_LOAD_CONFIG_DIRECTORY; typedef PIMAGE_LOAD_CONFIG_DIRECTORY64 PIMAGE_LOAD_CONFIG_DIRECTORY; #else typedef IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY; typedef PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY; #endif // // WIN CE Exception table format // // // Function table entry format. Function table is pointed to by the // IMAGE_DIRECTORY_ENTRY_EXCEPTION directory entry. // typedef struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY { DWORD FuncStart; DWORD PrologLen : 8; DWORD FuncLen : 22; DWORD ThirtyTwoBit : 1; DWORD ExceptionFlag : 1; } IMAGE_CE_RUNTIME_FUNCTION_ENTRY, * PIMAGE_CE_RUNTIME_FUNCTION_ENTRY; typedef struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY { ULONGLONG BeginAddress; ULONGLONG EndAddress; ULONGLONG ExceptionHandler; ULONGLONG HandlerData; ULONGLONG PrologEndAddress; } IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY; typedef struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY { DWORD BeginAddress; DWORD EndAddress; DWORD ExceptionHandler; DWORD HandlerData; DWORD PrologEndAddress; } IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY, *PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY; typedef struct _IMAGE_RUNTIME_FUNCTION_ENTRY { DWORD BeginAddress; DWORD EndAddress; DWORD UnwindInfoAddress; } _IMAGE_RUNTIME_FUNCTION_ENTRY, *_PIMAGE_RUNTIME_FUNCTION_ENTRY; typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY; typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY; #if defined(_AXP64_) typedef IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_AXP64_RUNTIME_FUNCTION_ENTRY; typedef PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY PIMAGE_AXP64_RUNTIME_FUNCTION_ENTRY; typedef IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; typedef PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; #elif defined(_ALPHA_) typedef IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; typedef PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; #else typedef _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY; typedef _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY; #endif // // Debug Format // typedef struct _IMAGE_DEBUG_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Type; DWORD SizeOfData; DWORD AddressOfRawData; DWORD PointerToRawData; } IMAGE_DEBUG_DIRECTORY, *PIMAGE_DEBUG_DIRECTORY; #define IMAGE_DEBUG_TYPE_UNKNOWN 0 #define IMAGE_DEBUG_TYPE_COFF 1 #define IMAGE_DEBUG_TYPE_CODEVIEW 2 #define IMAGE_DEBUG_TYPE_FPO 3 #define IMAGE_DEBUG_TYPE_MISC 4 #define IMAGE_DEBUG_TYPE_EXCEPTION 5 #define IMAGE_DEBUG_TYPE_FIXUP 6 #define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7 #define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8 #define IMAGE_DEBUG_TYPE_BORLAND 9 #define IMAGE_DEBUG_TYPE_RESERVED10 10 #define IMAGE_DEBUG_TYPE_CLSID 11 typedef struct _IMAGE_COFF_SYMBOLS_HEADER { DWORD NumberOfSymbols; DWORD LvaToFirstSymbol; DWORD NumberOfLinenumbers; DWORD LvaToFirstLinenumber; DWORD RvaToFirstByteOfCode; DWORD RvaToLastByteOfCode; DWORD RvaToFirstByteOfData; DWORD RvaToLastByteOfData; } IMAGE_COFF_SYMBOLS_HEADER, *PIMAGE_COFF_SYMBOLS_HEADER; #define FRAME_FPO 0 #define FRAME_TRAP 1 #define FRAME_TSS 2 #define FRAME_NONFPO 3 typedef struct _FPO_DATA { DWORD ulOffStart; // offset 1st byte of function code DWORD cbProcSize; // # bytes in function DWORD cdwLocals; // # bytes in locals/4 WORD cdwParams; // # bytes in params/4 WORD cbProlog : 8; // # bytes in prolog WORD cbRegs : 3; // # regs saved WORD fHasSEH : 1; // TRUE if SEH in func WORD fUseBP : 1; // TRUE if EBP has been allocated WORD reserved : 1; // reserved for future use WORD cbFrame : 2; // frame type } FPO_DATA, *PFPO_DATA; #define SIZEOF_RFPO_DATA 16 #define IMAGE_DEBUG_MISC_EXENAME 1 typedef struct _IMAGE_DEBUG_MISC { DWORD DataType; // type of misc data, see defines DWORD Length; // total length of record, rounded to four // byte multiple. BOOLEAN Unicode; // TRUE if data is unicode string BYTE Reserved[ 3 ]; BYTE Data[ 1 ]; // Actual data } IMAGE_DEBUG_MISC, *PIMAGE_DEBUG_MISC; // // Function table extracted from MIPS/ALPHA/IA64 images. Does not contain // information needed only for runtime support. Just those fields for // each entry needed by a debugger. // typedef struct _IMAGE_FUNCTION_ENTRY { DWORD StartingAddress; DWORD EndingAddress; DWORD EndOfPrologue; } IMAGE_FUNCTION_ENTRY, *PIMAGE_FUNCTION_ENTRY; typedef struct _IMAGE_FUNCTION_ENTRY64 { ULONGLONG StartingAddress; ULONGLONG EndingAddress; union { ULONGLONG EndOfPrologue; ULONGLONG UnwindInfoAddress; }; } IMAGE_FUNCTION_ENTRY64, *PIMAGE_FUNCTION_ENTRY64; // // Debugging information can be stripped from an image file and placed // in a separate .DBG file, whose file name part is the same as the // image file name part (e.g. symbols for CMD.EXE could be stripped // and placed in CMD.DBG). This is indicated by the IMAGE_FILE_DEBUG_STRIPPED // flag in the Characteristics field of the file header. The beginning of // the .DBG file contains the following structure which captures certain // information from the image file. This allows a debug to proceed even if // the original image file is not accessable. This header is followed by // zero of more IMAGE_SECTION_HEADER structures, followed by zero or more // IMAGE_DEBUG_DIRECTORY structures. The latter structures and those in // the image file contain file offsets relative to the beginning of the // .DBG file. // // If symbols have been stripped from an image, the IMAGE_DEBUG_MISC structure // is left in the image file, but not mapped. This allows a debugger to // compute the name of the .DBG file, from the name of the image in the // IMAGE_DEBUG_MISC structure. // typedef 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]; } IMAGE_SEPARATE_DEBUG_HEADER, *PIMAGE_SEPARATE_DEBUG_HEADER; typedef struct _NON_PAGED_DEBUG_INFO { WORD Signature; WORD Flags; DWORD Size; WORD Machine; WORD Characteristics; DWORD TimeDateStamp; DWORD CheckSum; DWORD SizeOfImage; ULONGLONG ImageBase; //DebugDirectorySize //IMAGE_DEBUG_DIRECTORY } NON_PAGED_DEBUG_INFO, *PNON_PAGED_DEBUG_INFO; #ifndef _MAC #define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944 #define NON_PAGED_DEBUG_SIGNATURE 0x494E #else #define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4449 // DI #define NON_PAGED_DEBUG_SIGNATURE 0x4E49 // NI #endif #define IMAGE_SEPARATE_DEBUG_FLAGS_MASK 0x8000 #define IMAGE_SEPARATE_DEBUG_MISMATCH 0x8000 // when DBG was updated, the // old checksum didn't match. // // The .arch section is made up of headers, each describing an amask position/value // pointing to an array of IMAGE_ARCHITECTURE_ENTRY's. Each "array" (both the header // and entry arrays) are terminiated by a quadword of 0xffffffffL. // // NOTE: There may be quadwords of 0 sprinkled around and must be skipped. // typedef struct _ImageArchitectureHeader { unsigned int AmaskValue: 1; // 1 -> code section depends on mask bit // 0 -> new instruction depends on mask bit int :7; // MBZ unsigned int AmaskShift: 8; // Amask bit in question for this fixup int :16; // MBZ DWORD FirstEntryRVA; // RVA into .arch section to array of ARCHITECTURE_ENTRY's } IMAGE_ARCHITECTURE_HEADER, *PIMAGE_ARCHITECTURE_HEADER; typedef struct _ImageArchitectureEntry { DWORD FixupInstRVA; // RVA of instruction to fixup DWORD NewInst; // fixup instruction (see alphaops.h) } IMAGE_ARCHITECTURE_ENTRY, *PIMAGE_ARCHITECTURE_ENTRY; #include "poppack.h" // Back to the initial value // The following structure defines the new import object. Note the values of the first two fields, // which must be set as stated in order to differentiate old and new import members. // Following this structure, the linker emits two null-terminated strings used to recreate the // import at the time of use. The first string is the import's name, the second is the dll's name. #define IMPORT_OBJECT_HDR_SIG2 0xffff typedef struct IMPORT_OBJECT_HEADER { WORD Sig1; // Must be IMAGE_FILE_MACHINE_UNKNOWN WORD Sig2; // Must be IMPORT_OBJECT_HDR_SIG2. WORD Version; WORD Machine; DWORD TimeDateStamp; // Time/date stamp DWORD SizeOfData; // particularly useful for incremental links union { WORD Ordinal; // if grf & IMPORT_OBJECT_ORDINAL WORD Hint; }; WORD Type : 2; // IMPORT_TYPE WORD NameType : 3; // IMPORT_NAME_TYPE WORD Reserved : 11; // Reserved. Must be zero. } IMPORT_OBJECT_HEADER; typedef enum IMPORT_OBJECT_TYPE { IMPORT_OBJECT_CODE = 0, IMPORT_OBJECT_DATA = 1, IMPORT_OBJECT_CONST = 2, } IMPORT_OBJECT_TYPE; typedef enum IMPORT_OBJECT_NAME_TYPE { IMPORT_OBJECT_ORDINAL = 0, // Import by ordinal IMPORT_OBJECT_NAME = 1, // Import name == public symbol name. IMPORT_OBJECT_NAME_NO_PREFIX = 2, // Import name == public symbol name skipping leading ?, @, or optionally _. IMPORT_OBJECT_NAME_UNDECORATE = 3, // Import name == public symbol name skipping leading ?, @, or optionally _ // and truncating at first @ } IMPORT_OBJECT_NAME_TYPE; #ifndef __IMAGE_COR20_HEADER_DEFINED__ #define __IMAGE_COR20_HEADER_DEFINED__ typedef enum ReplacesCorHdrNumericDefines { // COM+ Header entry point flags. COMIMAGE_FLAGS_ILONLY =0x00000001, COMIMAGE_FLAGS_32BITREQUIRED =0x00000002, COMIMAGE_FLAGS_IL_LIBRARY =0x00000004, COMIMAGE_FLAGS_STRONGNAMESIGNED =0x00000008, COMIMAGE_FLAGS_TRACKDEBUGDATA =0x00010000, // Version flags for image. 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, // Maximum size of a NativeType descriptor. NATIVE_TYPE_MAX_CB =1, COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE=0xFF, // #defines for the MIH FLAGS IMAGE_COR_MIH_METHODRVA =0x01, IMAGE_COR_MIH_EHRVA =0x02, IMAGE_COR_MIH_BASICBLOCK =0x08, // V-table constants COR_VTABLE_32BIT =0x01, // V-table slots are 32-bits in size. COR_VTABLE_64BIT =0x02, // V-table slots are 64-bits in size. COR_VTABLE_FROM_UNMANAGED =0x04, // If set, transition from unmanaged. COR_VTABLE_CALL_MOST_DERIVED =0x10, // Call most derived method described by // EATJ constants IMAGE_COR_EATJ_THUNK_SIZE =32, // Size of a jump thunk reserved range. // Max name lengths //@todo: Change to unlimited name lengths. MAX_CLASS_NAME =1024, MAX_PACKAGE_NAME =1024, } ReplacesCorHdrNumericDefines; // COM+ 2.0 header structure. typedef struct IMAGE_COR20_HEADER { // Header versioning DWORD cb; WORD MajorRuntimeVersion; WORD MinorRuntimeVersion; // Symbol table and startup information IMAGE_DATA_DIRECTORY MetaData; DWORD Flags; DWORD EntryPointToken; // Binding information IMAGE_DATA_DIRECTORY Resources; IMAGE_DATA_DIRECTORY StrongNameSignature; // Regular fixup and binding information IMAGE_DATA_DIRECTORY CodeManagerTable; IMAGE_DATA_DIRECTORY VTableFixups; IMAGE_DATA_DIRECTORY ExportAddressTableJumps; // Precompiled image info (internal use only - set to zero) IMAGE_DATA_DIRECTORY ManagedNativeHeader; } IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER; #endif // __IMAGE_COR20_HEADER_DEFINED__ // // End Image Format // // // for move macros // #ifdef _MAC #ifndef _INC_STRING #include #endif /* _INC_STRING */ #else #include #endif // _MAC #ifndef _SLIST_HEADER_ #define _SLIST_HEADER_ #if defined(_WIN64) // // The type SINGLE_LIST_ENTRY is not suitable for use with SLISTs. For // WIN64, an entry on an SLIST is required to be 16-byte aligned, while a // SINGLE_LIST_ENTRY structure has only 8 byte alignment. // // Therefore, all SLIST code should use the SLIST_ENTRY type instead of the // SINGLE_LIST_ENTRY type. // #pragma warning(push) #pragma warning(disable:4324) // structure padded due to align() typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY *PSLIST_ENTRY; typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY { PSLIST_ENTRY Next; } SLIST_ENTRY; #pragma warning(pop) #else #define SLIST_ENTRY SINGLE_LIST_ENTRY #define _SLIST_ENTRY _SINGLE_LIST_ENTRY #define PSLIST_ENTRY PSINGLE_LIST_ENTRY #endif #if defined(_WIN64) typedef struct DECLSPEC_ALIGN(16) _SLIST_HEADER { ULONGLONG Alignment; ULONGLONG Region; } SLIST_HEADER; typedef struct _SLIST_HEADER *PSLIST_HEADER; #else typedef union _SLIST_HEADER { ULONGLONG Alignment; struct { SLIST_ENTRY Next; WORD Depth; WORD Sequence; }; } SLIST_HEADER, *PSLIST_HEADER; #endif #endif NTSYSAPI VOID NTAPI RtlInitializeSListHead ( IN PSLIST_HEADER ListHead ); NTSYSAPI PSLIST_ENTRY RtlFirstEntrySList ( IN const SLIST_HEADER *ListHead ); NTSYSAPI PSLIST_ENTRY NTAPI RtlInterlockedPopEntrySList ( IN PSLIST_HEADER ListHead ); NTSYSAPI PSLIST_ENTRY NTAPI RtlInterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry ); NTSYSAPI PSLIST_ENTRY NTAPI RtlInterlockedFlushSList ( IN PSLIST_HEADER ListHead ); NTSYSAPI WORD NTAPI RtlQueryDepthSList ( IN PSLIST_HEADER ListHead ); #define HEAP_NO_SERIALIZE 0x00000001 #define HEAP_GROWABLE 0x00000002 #define HEAP_GENERATE_EXCEPTIONS 0x00000004 #define HEAP_ZERO_MEMORY 0x00000008 #define HEAP_REALLOC_IN_PLACE_ONLY 0x00000010 #define HEAP_TAIL_CHECKING_ENABLED 0x00000020 #define HEAP_FREE_CHECKING_ENABLED 0x00000040 #define HEAP_DISABLE_COALESCE_ON_FREE 0x00000080 #define HEAP_CREATE_ALIGN_16 0x00010000 #define HEAP_CREATE_ENABLE_TRACING 0x00020000 #define HEAP_MAXIMUM_TAG 0x0FFF #define HEAP_PSEUDO_TAG_FLAG 0x8000 #define HEAP_TAG_SHIFT 18 #define HEAP_MAKE_TAG_FLAGS( b, o ) ((DWORD)((b) + ((o) << 18))) #define IS_TEXT_UNICODE_ASCII16 0x0001 #define IS_TEXT_UNICODE_REVERSE_ASCII16 0x0010 #define IS_TEXT_UNICODE_STATISTICS 0x0002 #define IS_TEXT_UNICODE_REVERSE_STATISTICS 0x0020 #define IS_TEXT_UNICODE_CONTROLS 0x0004 #define IS_TEXT_UNICODE_REVERSE_CONTROLS 0x0040 #define IS_TEXT_UNICODE_SIGNATURE 0x0008 #define IS_TEXT_UNICODE_REVERSE_SIGNATURE 0x0080 #define IS_TEXT_UNICODE_ILLEGAL_CHARS 0x0100 #define IS_TEXT_UNICODE_ODD_LENGTH 0x0200 #define IS_TEXT_UNICODE_DBCS_LEADBYTE 0x0400 #define IS_TEXT_UNICODE_NULL_BYTES 0x1000 #define IS_TEXT_UNICODE_UNICODE_MASK 0x000F #define IS_TEXT_UNICODE_REVERSE_MASK 0x00F0 #define IS_TEXT_UNICODE_NOT_UNICODE_MASK 0x0F00 #define IS_TEXT_UNICODE_NOT_ASCII_MASK 0xF000 #define COMPRESSION_FORMAT_NONE (0x0000) #define COMPRESSION_FORMAT_DEFAULT (0x0001) #define COMPRESSION_FORMAT_LZNT1 (0x0002) #define COMPRESSION_ENGINE_STANDARD (0x0000) #define COMPRESSION_ENGINE_MAXIMUM (0x0100) #define COMPRESSION_ENGINE_HIBER (0x0200) NTSYSAPI SIZE_T NTAPI RtlCompareMemory ( const VOID *Source1, const VOID *Source2, SIZE_T Length ); #define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination),(Source),(Length))) #if defined(_M_AMD64) NTSYSAPI VOID NTAPI RtlCopyMemory ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); NTSYSAPI VOID NTAPI RtlMoveMemory ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); NTSYSAPI VOID NTAPI RtlFillMemory ( VOID UNALIGNED *Destination, SIZE_T Length, IN BYTE Fill ); NTSYSAPI VOID NTAPI RtlZeroMemory ( VOID UNALIGNED *Destination, SIZE_T Length ); #else #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) #define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length)) #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) #endif #if !defined(MIDL_PASS) FORCEINLINE PVOID RtlSecureZeroMemory( IN PVOID ptr, IN SIZE_T cnt ) { volatile char *vptr = (volatile char *)ptr; while (cnt) { *vptr = 0; vptr++; cnt--; } return ptr; } #endif typedef struct _MESSAGE_RESOURCE_ENTRY { WORD Length; WORD Flags; BYTE Text[ 1 ]; } MESSAGE_RESOURCE_ENTRY, *PMESSAGE_RESOURCE_ENTRY; #define MESSAGE_RESOURCE_UNICODE 0x0001 typedef struct _MESSAGE_RESOURCE_BLOCK { DWORD LowId; DWORD HighId; DWORD OffsetToEntries; } MESSAGE_RESOURCE_BLOCK, *PMESSAGE_RESOURCE_BLOCK; typedef struct _MESSAGE_RESOURCE_DATA { DWORD NumberOfBlocks; MESSAGE_RESOURCE_BLOCK Blocks[ 1 ]; } MESSAGE_RESOURCE_DATA, *PMESSAGE_RESOURCE_DATA; typedef struct _OSVERSIONINFOA { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage } OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA; typedef struct _OSVERSIONINFOW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage } OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; #ifdef UNICODE typedef OSVERSIONINFOW OSVERSIONINFO; typedef POSVERSIONINFOW POSVERSIONINFO; typedef LPOSVERSIONINFOW LPOSVERSIONINFO; #else typedef OSVERSIONINFOA OSVERSIONINFO; typedef POSVERSIONINFOA POSVERSIONINFO; typedef LPOSVERSIONINFOA LPOSVERSIONINFO; #endif // UNICODE typedef struct _OSVERSIONINFOEXA { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage WORD wServicePackMajor; WORD wServicePackMinor; WORD wSuiteMask; BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; typedef struct _OSVERSIONINFOEXW { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage WORD wServicePackMajor; WORD wServicePackMinor; WORD wSuiteMask; BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; #ifdef UNICODE typedef OSVERSIONINFOEXW OSVERSIONINFOEX; typedef POSVERSIONINFOEXW POSVERSIONINFOEX; typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; #else typedef OSVERSIONINFOEXA OSVERSIONINFOEX; typedef POSVERSIONINFOEXA POSVERSIONINFOEX; typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX; #endif // UNICODE // // RtlVerifyVersionInfo() conditions // #define VER_EQUAL 1 #define VER_GREATER 2 #define VER_GREATER_EQUAL 3 #define VER_LESS 4 #define VER_LESS_EQUAL 5 #define VER_AND 6 #define VER_OR 7 #define VER_CONDITION_MASK 7 #define VER_NUM_BITS_PER_CONDITION_MASK 3 // // RtlVerifyVersionInfo() type mask bits // #define VER_MINORVERSION 0x0000001 #define VER_MAJORVERSION 0x0000002 #define VER_BUILDNUMBER 0x0000004 #define VER_PLATFORMID 0x0000008 #define VER_SERVICEPACKMINOR 0x0000010 #define VER_SERVICEPACKMAJOR 0x0000020 #define VER_SUITENAME 0x0000040 #define VER_PRODUCT_TYPE 0x0000080 // // RtlVerifyVersionInfo() os product type values // #define VER_NT_WORKSTATION 0x0000001 #define VER_NT_DOMAIN_CONTROLLER 0x0000002 #define VER_NT_SERVER 0x0000003 // // dwPlatformId defines: // #define VER_PLATFORM_WIN32s 0 #define VER_PLATFORM_WIN32_WINDOWS 1 #define VER_PLATFORM_WIN32_NT 2 // // // VerifyVersionInfo() macro to set the condition mask // // For documentation sakes here's the old version of the macro that got // changed to call an API // #define VER_SET_CONDITION(_m_,_t_,_c_) _m_=(_m_|(_c_<<(1<<_t_))) // #define VER_SET_CONDITION(_m_,_t_,_c_) \ ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_))) ULONGLONG NTAPI VerSetConditionMask( IN ULONGLONG ConditionMask, IN DWORD TypeMask, IN BYTE Condition ); // typedef struct _RTL_CRITICAL_SECTION_DEBUG { WORD Type; WORD CreatorBackTraceIndex; struct _RTL_CRITICAL_SECTION *CriticalSection; LIST_ENTRY ProcessLocksList; DWORD EntryCount; DWORD ContentionCount; DWORD Spare[ 2 ]; } RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG, RTL_RESOURCE_DEBUG, *PRTL_RESOURCE_DEBUG; #define RTL_CRITSECT_TYPE 0 #define RTL_RESOURCE_TYPE 1 typedef struct _RTL_CRITICAL_SECTION { PRTL_CRITICAL_SECTION_DEBUG DebugInfo; // // The following three fields control entering and exiting the critical // section for the resource // LONG LockCount; LONG RecursionCount; HANDLE OwningThread; // from the thread's ClientId->UniqueThread HANDLE LockSemaphore; ULONG_PTR SpinCount; // force size on 64-bit systems when packed } RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION; typedef VOID (NTAPI * RTL_VERIFIER_DLL_LOAD_CALLBACK) ( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ); typedef VOID (NTAPI * RTL_VERIFIER_DLL_UNLOAD_CALLBACK) ( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ); typedef struct _RTL_VERIFIER_THUNK_DESCRIPTOR { PCHAR ThunkName; PVOID ThunkOldAddress; PVOID ThunkNewAddress; } RTL_VERIFIER_THUNK_DESCRIPTOR, *PRTL_VERIFIER_THUNK_DESCRIPTOR; typedef struct _RTL_VERIFIER_DLL_DESCRIPTOR { PWCHAR DllName; DWORD DllFlags; PVOID DllAddress; PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks; } RTL_VERIFIER_DLL_DESCRIPTOR, *PRTL_VERIFIER_DLL_DESCRIPTOR; typedef struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR { // // Filled by verifier provider DLL // DWORD Length; PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls; RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback; RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback; // // Filled by verifier engine // PWSTR VerifierImage; DWORD VerifierFlags; DWORD VerifierDebug; PVOID RtlpGetStackTraceAddress; PVOID RtlpDebugPageHeapCreate; PVOID RtlpDebugPageHeapDestroy; } RTL_VERIFIER_PROVIDER_DESCRIPTOR, *PRTL_VERIFIER_PROVIDER_DESCRIPTOR; // // Application verifier standard flags // #define RTL_VRF_FLG_FULL_PAGE_HEAP 0x00000001 #define RTL_VRF_FLG_RESERVED_DONOTUSE 0x00000002 // old RTL_VRF_FLG_LOCK_CHECKS #define RTL_VRF_FLG_HANDLE_CHECKS 0x00000004 #define RTL_VRF_FLG_STACK_CHECKS 0x00000008 #define RTL_VRF_FLG_APPCOMPAT_CHECKS 0x00000010 #define RTL_VRF_FLG_TLS_CHECKS 0x00000020 #define RTL_VRF_FLG_DIRTY_STACKS 0x00000040 #define RTL_VRF_FLG_RPC_CHECKS 0x00000080 #define RTL_VRF_FLG_COM_CHECKS 0x00000100 #define RTL_VRF_FLG_DANGEROUS_APIS 0x00000200 #define RTL_VRF_FLG_RACE_CHECKS 0x00000400 #define RTL_VRF_FLG_DEADLOCK_CHECKS 0x00000800 #define RTL_VRF_FLG_FIRST_CHANCE_EXCEPTION_CHECKS 0x00001000 #define RTL_VRF_FLG_VIRTUAL_MEM_CHECKS 0x00002000 #define RTL_VRF_FLG_ENABLE_LOGGING 0x00004000 #define RTL_VRF_FLG_FAST_FILL_HEAP 0x00008000 #define RTL_VRF_FLG_VIRTUAL_SPACE_TRACKING 0x00010000 #define RTL_VRF_FLG_ENABLED_SYSTEM_WIDE 0x00020000 #define RTL_VRF_FLG_MISCELLANEOUS_CHECKS 0x00020000 #define RTL_VRF_FLG_LOCK_CHECKS 0x00040000 // // Application verifier standard stop codes // #define APPLICATION_VERIFIER_INTERNAL_ERROR 0x80000000 #define APPLICATION_VERIFIER_INTERNAL_WARNING 0x40000000 #define APPLICATION_VERIFIER_NO_BREAK 0x20000000 #define APPLICATION_VERIFIER_CONTINUABLE_BREAK 0x10000000 #define APPLICATION_VERIFIER_UNKNOWN_ERROR 0x0001 #define APPLICATION_VERIFIER_ACCESS_VIOLATION 0x0002 #define APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS 0x0003 #define APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST 0x0004 #define APPLICATION_VERIFIER_BAD_HEAP_HANDLE 0x0005 #define APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE 0x0006 #define APPLICATION_VERIFIER_DOUBLE_FREE 0x0007 #define APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK 0x0008 #define APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP 0x0009 #define APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION 0x000A #define APPLICATION_VERIFIER_STACK_OVERFLOW 0x000B #define APPLICATION_VERIFIER_TERMINATE_THREAD_CALL 0x0100 #define APPLICATION_VERIFIER_INVALID_EXIT_PROCESS_CALL 0x0101 #define APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK 0x0200 #define APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL 0x0201 #define APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP 0x0202 #define APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE 0x0203 #define APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY 0x0204 #define APPLICATION_VERIFIER_LOCK_CORRUPTED 0x0205 #define APPLICATION_VERIFIER_LOCK_INVALID_OWNER 0x0206 #define APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT 0x0207 #define APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT 0x0208 #define APPLICATION_VERIFIER_LOCK_OVER_RELEASED 0x0209 #define APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED 0x0210 #define APPLICATION_VERIFIER_LOCK_ALREADY_INITIALIZED 0x0211 #define APPLICATION_VERIFIER_INVALID_HANDLE 0x0300 #define APPLICATION_VERIFIER_INVALID_TLS_VALUE 0x0301 #define APPLICATION_VERIFIER_INCORRECT_WAIT_CALL 0x0302 #define APPLICATION_VERIFIER_NULL_HANDLE 0x0303 #define APPLICATION_VERIFIER_WAIT_IN_DLLMAIN 0x0304 #define APPLICATION_VERIFIER_COM_ERROR 0x0400 #define APPLICATION_VERIFIER_COM_API_IN_DLLMAIN 0x0401 #define APPLICATION_VERIFIER_COM_UNHANDLED_EXCEPTION 0x0402 #define APPLICATION_VERIFIER_COM_UNBALANCED_COINIT 0x0403 #define APPLICATION_VERIFIER_COM_UNBALANCED_OLEINIT 0x0404 #define APPLICATION_VERIFIER_COM_UNBALANCED_SWC 0x0405 #define APPLICATION_VERIFIER_COM_NULL_DACL 0x0406 #define APPLICATION_VERIFIER_COM_UNSAFE_IMPERSONATION 0x0407 #define APPLICATION_VERIFIER_COM_SMUGGLED_WRAPPER 0x0408 #define APPLICATION_VERIFIER_COM_SMUGGLED_PROXY 0x0409 #define APPLICATION_VERIFIER_COM_CF_SUCCESS_WITH_NULL 0x040A #define APPLICATION_VERIFIER_COM_GCO_SUCCESS_WITH_NULL 0x040B #define APPLICATION_VERIFIER_COM_OBJECT_IN_FREED_MEMORY 0x040C #define APPLICATION_VERIFIER_COM_OBJECT_IN_UNLOADED_DLL 0x040D #define APPLICATION_VERIFIER_COM_VTBL_IN_FREED_MEMORY 0x040E #define APPLICATION_VERIFIER_COM_VTBL_IN_UNLOADED_DLL 0x040F #define APPLICATION_VERIFIER_COM_HOLDING_LOCKS_ON_CALL 0x0410 #define APPLICATION_VERIFIER_RPC_ERROR 0x0500 #define APPLICATION_VERIFIER_INVALID_FREEMEM 0x0600 #define APPLICATION_VERIFIER_INVALID_ALLOCMEM 0x0601 #define APPLICATION_VERIFIER_INVALID_MAPVIEW 0x0602 #define APPLICATION_VERIFIER_PROBE_INVALID_ADDRESS 0x0603 #define APPLICATION_VERIFIER_PROBE_FREE_MEM 0x0604 #define APPLICATION_VERIFIER_PROBE_GUARD_PAGE 0x0605 #define APPLICATION_VERIFIER_PROBE_NULL 0x0606 #define APPLICATION_VERIFIER_PROBE_INVALID_START_OR_SIZE 0x0607 #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)); \ } VOID NTAPI 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 ); typedef LONG (NTAPI *PVECTORED_EXCEPTION_HANDLER)( struct _EXCEPTION_POINTERS *ExceptionInfo ); #define SEF_DACL_AUTO_INHERIT 0x01 #define SEF_SACL_AUTO_INHERIT 0x02 #define SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT 0x04 #define SEF_AVOID_PRIVILEGE_CHECK 0x08 #define SEF_AVOID_OWNER_CHECK 0x10 #define SEF_DEFAULT_OWNER_FROM_PARENT 0x20 #define SEF_DEFAULT_GROUP_FROM_PARENT 0x40 typedef enum _HEAP_INFORMATION_CLASS { HeapCompatibilityInformation } HEAP_INFORMATION_CLASS; DWORD NTAPI RtlSetHeapInformation ( IN PVOID HeapHandle, IN HEAP_INFORMATION_CLASS HeapInformationClass, IN PVOID HeapInformation OPTIONAL, IN SIZE_T HeapInformationLength OPTIONAL ); DWORD NTAPI RtlQueryHeapInformation ( IN PVOID HeapHandle, IN HEAP_INFORMATION_CLASS HeapInformationClass, OUT PVOID HeapInformation OPTIONAL, IN SIZE_T HeapInformationLength OPTIONAL, OUT PSIZE_T ReturnLength OPTIONAL ); // // Multiple alloc-free APIS // DWORD NTAPI RtlMultipleAllocateHeap ( IN PVOID HeapHandle, IN DWORD Flags, IN SIZE_T Size, IN DWORD Count, OUT PVOID * Array ); DWORD NTAPI RtlMultipleFreeHeap ( IN PVOID HeapHandle, IN DWORD Flags, IN DWORD Count, OUT PVOID * Array ); #define WT_EXECUTEDEFAULT 0x00000000 #define WT_EXECUTEINIOTHREAD 0x00000001 #define WT_EXECUTEINUITHREAD 0x00000002 #define WT_EXECUTEINWAITTHREAD 0x00000004 #define WT_EXECUTEONLYONCE 0x00000008 #define WT_EXECUTEINTIMERTHREAD 0x00000020 #define WT_EXECUTELONGFUNCTION 0x00000010 #define WT_EXECUTEINPERSISTENTIOTHREAD 0x00000040 #define WT_EXECUTEINPERSISTENTTHREAD 0x00000080 #define WT_TRANSFER_IMPERSONATION 0x00000100 #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16) typedef VOID (NTAPI * WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN ); typedef VOID (NTAPI * WORKERCALLBACKFUNC) (PVOID ); typedef VOID (NTAPI * APC_CALLBACK_FUNCTION) (DWORD , PVOID, PVOID); #define WT_EXECUTEINLONGTHREAD 0x00000010 #define WT_EXECUTEDELETEWAIT 0x00000008 typedef enum _ACTIVATION_CONTEXT_INFO_CLASS { ActivationContextBasicInformation = 1, ActivationContextDetailedInformation = 2, AssemblyDetailedInformationInActivationContext = 3, FileInformationInAssemblyOfAssemblyInActivationContext = 4, MaxActivationContextInfoClass, // // compatibility with old names // AssemblyDetailedInformationInActivationContxt = 3, FileInformationInAssemblyOfAssemblyInActivationContxt = 4 } ACTIVATION_CONTEXT_INFO_CLASS; #define ACTIVATIONCONTEXTINFOCLASS ACTIVATION_CONTEXT_INFO_CLASS typedef struct _ACTIVATION_CONTEXT_QUERY_INDEX { DWORD ulAssemblyIndex; DWORD ulFileIndexInAssembly; } ACTIVATION_CONTEXT_QUERY_INDEX, * PACTIVATION_CONTEXT_QUERY_INDEX; typedef const struct _ACTIVATION_CONTEXT_QUERY_INDEX * PCACTIVATION_CONTEXT_QUERY_INDEX; #define ACTIVATION_CONTEXT_PATH_TYPE_NONE (1) #define ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE (2) #define ACTIVATION_CONTEXT_PATH_TYPE_URL (3) #define ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF (4) typedef struct _ASSEMBLY_FILE_DETAILED_INFORMATION { DWORD ulFlags; DWORD ulFilenameLength; DWORD ulPathLength; PCWSTR lpFileName; PCWSTR lpFilePath; } ASSEMBLY_FILE_DETAILED_INFORMATION, *PASSEMBLY_FILE_DETAILED_INFORMATION; typedef const ASSEMBLY_FILE_DETAILED_INFORMATION *PCASSEMBLY_FILE_DETAILED_INFORMATION; // // compatibility with old names // The new names use "file" consistently. // #define _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION _ASSEMBLY_FILE_DETAILED_INFORMATION #define ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION #define PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION PASSEMBLY_FILE_DETAILED_INFORMATION #define PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION PCASSEMBLY_FILE_DETAILED_INFORMATION typedef struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION { DWORD ulFlags; DWORD ulEncodedAssemblyIdentityLength; // in bytes DWORD ulManifestPathType; // ACTIVATION_CONTEXT_PATH_TYPE_* DWORD ulManifestPathLength; // in bytes LARGE_INTEGER liManifestLastWriteTime; // FILETIME DWORD ulPolicyPathType; // ACTIVATION_CONTEXT_PATH_TYPE_* DWORD ulPolicyPathLength; // in bytes LARGE_INTEGER liPolicyLastWriteTime; // FILETIME DWORD ulMetadataSatelliteRosterIndex; DWORD ulManifestVersionMajor; // 1 DWORD ulManifestVersionMinor; // 0 DWORD ulPolicyVersionMajor; // 0 DWORD ulPolicyVersionMinor; // 0 DWORD ulAssemblyDirectoryNameLength; // in bytes PCWSTR lpAssemblyEncodedAssemblyIdentity; PCWSTR lpAssemblyManifestPath; PCWSTR lpAssemblyPolicyPath; PCWSTR lpAssemblyDirectoryName; DWORD ulFileCount; } ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION, * PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION * PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ; typedef 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; } ACTIVATION_CONTEXT_DETAILED_INFORMATION, *PACTIVATION_CONTEXT_DETAILED_INFORMATION; typedef const struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION *PCACTIVATION_CONTEXT_DETAILED_INFORMATION; #define DLL_PROCESS_ATTACH 1 #define DLL_THREAD_ATTACH 2 #define DLL_THREAD_DETACH 3 #define DLL_PROCESS_DETACH 0 #define DLL_PROCESS_VERIFIER 4 // // Defines for the READ flags for Eventlogging // #define EVENTLOG_SEQUENTIAL_READ 0x0001 #define EVENTLOG_SEEK_READ 0x0002 #define EVENTLOG_FORWARDS_READ 0x0004 #define EVENTLOG_BACKWARDS_READ 0x0008 // // The types of events that can be logged. // #define EVENTLOG_SUCCESS 0x0000 #define EVENTLOG_ERROR_TYPE 0x0001 #define EVENTLOG_WARNING_TYPE 0x0002 #define EVENTLOG_INFORMATION_TYPE 0x0004 #define EVENTLOG_AUDIT_SUCCESS 0x0008 #define EVENTLOG_AUDIT_FAILURE 0x0010 // // Defines for the WRITE flags used by Auditing for paired events // These are not implemented in Product 1 // #define EVENTLOG_START_PAIRED_EVENT 0x0001 #define EVENTLOG_END_PAIRED_EVENT 0x0002 #define EVENTLOG_END_ALL_PAIRED_EVENTS 0x0004 #define EVENTLOG_PAIRED_EVENT_ACTIVE 0x0008 #define EVENTLOG_PAIRED_EVENT_INACTIVE 0x0010 // // Structure that defines the header of the Eventlog record. This is the // fixed-sized portion before all the variable-length strings, binary // data and pad bytes. // // TimeGenerated is the time it was generated at the client. // TimeWritten is the time it was put into the log at the server end. // typedef struct _EVENTLOGRECORD { DWORD Length; // Length of full record DWORD Reserved; // Used by the service DWORD RecordNumber; // Absolute record number DWORD TimeGenerated; // Seconds since 1-1-1970 DWORD TimeWritten; // Seconds since 1-1-1970 DWORD EventID; WORD EventType; WORD NumStrings; WORD EventCategory; WORD ReservedFlags; // For use with paired events (auditing) DWORD ClosingRecordNumber; // For use with paired events (auditing) DWORD StringOffset; // Offset from beginning of record DWORD UserSidLength; DWORD UserSidOffset; DWORD DataLength; DWORD DataOffset; // Offset from beginning of record // // Then follow: // // WCHAR SourceName[] // WCHAR Computername[] // SID UserSid // WCHAR Strings[] // BYTE Data[] // CHAR Pad[] // DWORD Length; // } EVENTLOGRECORD, *PEVENTLOGRECORD; //SS: start of changes to support clustering //SS: ideally the #define MAXLOGICALLOGNAMESIZE 256 #if _MSC_VER >= 1200 #pragma warning(push) #endif #pragma warning(disable : 4200) typedef struct _EVENTSFORLOGFILE{ DWORD ulSize; WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE]; //name of the logical file-security/application/system DWORD ulNumRecords; EVENTLOGRECORD pEventLogRecords[]; }EVENTSFORLOGFILE, *PEVENTSFORLOGFILE; typedef struct _PACKEDEVENTINFO{ DWORD ulSize; //total size of the structure DWORD ulNumEventsForLogFile; //number of EventsForLogFile structure that follow DWORD ulOffsets[]; //the offsets from the start of this structure to the EVENTSFORLOGFILE structure }PACKEDEVENTINFO, *PPACKEDEVENTINFO; #if _MSC_VER >= 1200 #pragma warning(pop) #else #pragma warning(default : 4200) #endif //SS: end of changes to support clustering // // begin_ntddk begin_wdm begin_nthal // // Registry Specific Access Rights. // #define KEY_QUERY_VALUE (0x0001) #define KEY_SET_VALUE (0x0002) #define KEY_CREATE_SUB_KEY (0x0004) #define KEY_ENUMERATE_SUB_KEYS (0x0008) #define KEY_NOTIFY (0x0010) #define KEY_CREATE_LINK (0x0020) #define KEY_WOW64_32KEY (0x0200) #define KEY_WOW64_64KEY (0x0100) #define KEY_WOW64_RES (0x0300) #define KEY_READ ((STANDARD_RIGHTS_READ |\ KEY_QUERY_VALUE |\ KEY_ENUMERATE_SUB_KEYS |\ KEY_NOTIFY) \ & \ (~SYNCHRONIZE)) #define KEY_WRITE ((STANDARD_RIGHTS_WRITE |\ KEY_SET_VALUE |\ KEY_CREATE_SUB_KEY) \ & \ (~SYNCHRONIZE)) #define KEY_EXECUTE ((KEY_READ) \ & \ (~SYNCHRONIZE)) #define 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)) // // Open/Create Options // #define REG_OPTION_RESERVED (0x00000000L) // Parameter is reserved #define REG_OPTION_NON_VOLATILE (0x00000000L) // Key is preserved // when system is rebooted #define REG_OPTION_VOLATILE (0x00000001L) // Key is not preserved // when system is rebooted #define REG_OPTION_CREATE_LINK (0x00000002L) // Created key is a // symbolic link #define REG_OPTION_BACKUP_RESTORE (0x00000004L) // open for backup or restore // special access rules // privilege required #define REG_OPTION_OPEN_LINK (0x00000008L) // Open symbolic link #define 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) // // Key creation/open disposition // #define REG_CREATED_NEW_KEY (0x00000001L) // New Registry Key created #define REG_OPENED_EXISTING_KEY (0x00000002L) // Existing Key opened // // hive format to be used by Reg(Nt)SaveKeyEx // #define REG_STANDARD_FORMAT 1 #define REG_LATEST_FORMAT 2 #define REG_NO_COMPRESSION 4 // // Key restore flags // #define REG_WHOLE_HIVE_VOLATILE (0x00000001L) // Restore whole hive volatile #define REG_REFRESH_HIVE (0x00000002L) // Unwind changes to last flush #define REG_NO_LAZY_FLUSH (0x00000004L) // Never lazy flush this hive #define REG_FORCE_RESTORE (0x00000008L) // Force the restore process even when we have open handles on subkeys // end_ntddk end_wdm end_nthal // // Notify filter values // #define REG_NOTIFY_CHANGE_NAME (0x00000001L) // Create or delete (child) #define REG_NOTIFY_CHANGE_ATTRIBUTES (0x00000002L) #define REG_NOTIFY_CHANGE_LAST_SET (0x00000004L) // time stamp #define REG_NOTIFY_CHANGE_SECURITY (0x00000008L) #define REG_LEGAL_CHANGE_FILTER \ (REG_NOTIFY_CHANGE_NAME |\ REG_NOTIFY_CHANGE_ATTRIBUTES |\ REG_NOTIFY_CHANGE_LAST_SET |\ REG_NOTIFY_CHANGE_SECURITY) // // // Predefined Value Types. // #define REG_NONE ( 0 ) // No value type #define REG_SZ ( 1 ) // Unicode nul terminated string #define REG_EXPAND_SZ ( 2 ) // Unicode nul terminated string // (with environment variable references) #define REG_BINARY ( 3 ) // Free form binary #define REG_DWORD ( 4 ) // 32-bit number #define REG_DWORD_LITTLE_ENDIAN ( 4 ) // 32-bit number (same as REG_DWORD) #define REG_DWORD_BIG_ENDIAN ( 5 ) // 32-bit number #define REG_LINK ( 6 ) // Symbolic Link (unicode) #define REG_MULTI_SZ ( 7 ) // Multiple Unicode strings #define REG_RESOURCE_LIST ( 8 ) // Resource list in the resource map #define REG_FULL_RESOURCE_DESCRIPTOR ( 9 ) // Resource list in the hardware description #define REG_RESOURCE_REQUIREMENTS_LIST ( 10 ) #define REG_QWORD ( 11 ) // 64-bit number #define REG_QWORD_LITTLE_ENDIAN ( 11 ) // 64-bit number (same as REG_QWORD) // end_ntddk end_wdm end_nthal // begin_ntddk begin_wdm begin_nthal // // Service Types (Bit Mask) // #define SERVICE_KERNEL_DRIVER 0x00000001 #define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 #define SERVICE_ADAPTER 0x00000004 #define SERVICE_RECOGNIZER_DRIVER 0x00000008 #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER | \ SERVICE_FILE_SYSTEM_DRIVER | \ SERVICE_RECOGNIZER_DRIVER) #define SERVICE_WIN32_OWN_PROCESS 0x00000010 #define SERVICE_WIN32_SHARE_PROCESS 0x00000020 #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | \ SERVICE_WIN32_SHARE_PROCESS) #define SERVICE_INTERACTIVE_PROCESS 0x00000100 #define SERVICE_TYPE_ALL (SERVICE_WIN32 | \ SERVICE_ADAPTER | \ SERVICE_DRIVER | \ SERVICE_INTERACTIVE_PROCESS) // // Start Type // #define SERVICE_BOOT_START 0x00000000 #define SERVICE_SYSTEM_START 0x00000001 #define SERVICE_AUTO_START 0x00000002 #define SERVICE_DEMAND_START 0x00000003 #define SERVICE_DISABLED 0x00000004 // // Error control type // #define SERVICE_ERROR_IGNORE 0x00000000 #define SERVICE_ERROR_NORMAL 0x00000001 #define SERVICE_ERROR_SEVERE 0x00000002 #define SERVICE_ERROR_CRITICAL 0x00000003 // // // Define the registry driver node enumerations // typedef enum _CM_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 } SERVICE_NODE_TYPE; typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad = SERVICE_BOOT_START, SystemLoad = SERVICE_SYSTEM_START, AutoLoad = SERVICE_AUTO_START, DemandLoad = SERVICE_DEMAND_START, DisableLoad = SERVICE_DISABLED } SERVICE_LOAD_TYPE; typedef enum _CM_ERROR_CONTROL_TYPE { IgnoreError = SERVICE_ERROR_IGNORE, NormalError = SERVICE_ERROR_NORMAL, SevereError = SERVICE_ERROR_SEVERE, CriticalError = SERVICE_ERROR_CRITICAL } SERVICE_ERROR_TYPE; // // IOCTL_TAPE_ERASE definitions // #define TAPE_ERASE_SHORT 0L #define TAPE_ERASE_LONG 1L typedef struct _TAPE_ERASE { DWORD Type; BOOLEAN Immediate; } TAPE_ERASE, *PTAPE_ERASE; // // IOCTL_TAPE_PREPARE definitions // #define TAPE_LOAD 0L #define TAPE_UNLOAD 1L #define TAPE_TENSION 2L #define TAPE_LOCK 3L #define TAPE_UNLOCK 4L #define TAPE_FORMAT 5L typedef struct _TAPE_PREPARE { DWORD Operation; BOOLEAN Immediate; } TAPE_PREPARE, *PTAPE_PREPARE; // // IOCTL_TAPE_WRITE_MARKS definitions // #define TAPE_SETMARKS 0L #define TAPE_FILEMARKS 1L #define TAPE_SHORT_FILEMARKS 2L #define TAPE_LONG_FILEMARKS 3L typedef struct _TAPE_WRITE_MARKS { DWORD Type; DWORD Count; BOOLEAN Immediate; } TAPE_WRITE_MARKS, *PTAPE_WRITE_MARKS; // // IOCTL_TAPE_GET_POSITION definitions // #define TAPE_ABSOLUTE_POSITION 0L #define TAPE_LOGICAL_POSITION 1L #define TAPE_PSEUDO_LOGICAL_POSITION 2L typedef struct _TAPE_GET_POSITION { DWORD Type; DWORD Partition; LARGE_INTEGER Offset; } TAPE_GET_POSITION, *PTAPE_GET_POSITION; // // IOCTL_TAPE_SET_POSITION definitions // #define TAPE_REWIND 0L #define TAPE_ABSOLUTE_BLOCK 1L #define TAPE_LOGICAL_BLOCK 2L #define TAPE_PSEUDO_LOGICAL_BLOCK 3L #define TAPE_SPACE_END_OF_DATA 4L #define TAPE_SPACE_RELATIVE_BLOCKS 5L #define TAPE_SPACE_FILEMARKS 6L #define TAPE_SPACE_SEQUENTIAL_FMKS 7L #define TAPE_SPACE_SETMARKS 8L #define TAPE_SPACE_SEQUENTIAL_SMKS 9L typedef struct _TAPE_SET_POSITION { DWORD Method; DWORD Partition; LARGE_INTEGER Offset; BOOLEAN Immediate; } TAPE_SET_POSITION, *PTAPE_SET_POSITION; // // IOCTL_TAPE_GET_DRIVE_PARAMS definitions // // // Definitions for FeaturesLow parameter // #define TAPE_DRIVE_FIXED 0x00000001 #define TAPE_DRIVE_SELECT 0x00000002 #define TAPE_DRIVE_INITIATOR 0x00000004 #define TAPE_DRIVE_ERASE_SHORT 0x00000010 #define TAPE_DRIVE_ERASE_LONG 0x00000020 #define TAPE_DRIVE_ERASE_BOP_ONLY 0x00000040 #define TAPE_DRIVE_ERASE_IMMEDIATE 0x00000080 #define TAPE_DRIVE_TAPE_CAPACITY 0x00000100 #define TAPE_DRIVE_TAPE_REMAINING 0x00000200 #define TAPE_DRIVE_FIXED_BLOCK 0x00000400 #define TAPE_DRIVE_VARIABLE_BLOCK 0x00000800 #define TAPE_DRIVE_WRITE_PROTECT 0x00001000 #define TAPE_DRIVE_EOT_WZ_SIZE 0x00002000 #define TAPE_DRIVE_ECC 0x00010000 #define TAPE_DRIVE_COMPRESSION 0x00020000 #define TAPE_DRIVE_PADDING 0x00040000 #define TAPE_DRIVE_REPORT_SMKS 0x00080000 #define TAPE_DRIVE_GET_ABSOLUTE_BLK 0x00100000 #define TAPE_DRIVE_GET_LOGICAL_BLK 0x00200000 #define TAPE_DRIVE_SET_EOT_WZ_SIZE 0x00400000 #define TAPE_DRIVE_EJECT_MEDIA 0x01000000 #define TAPE_DRIVE_CLEAN_REQUESTS 0x02000000 #define TAPE_DRIVE_SET_CMP_BOP_ONLY 0x04000000 #define TAPE_DRIVE_RESERVED_BIT 0x80000000 //don't use this bit! // //can't be a low features bit! // //reserved; high features only // // Definitions for FeaturesHigh parameter // #define TAPE_DRIVE_LOAD_UNLOAD 0x80000001 #define TAPE_DRIVE_TENSION 0x80000002 #define TAPE_DRIVE_LOCK_UNLOCK 0x80000004 #define TAPE_DRIVE_REWIND_IMMEDIATE 0x80000008 #define TAPE_DRIVE_SET_BLOCK_SIZE 0x80000010 #define TAPE_DRIVE_LOAD_UNLD_IMMED 0x80000020 #define TAPE_DRIVE_TENSION_IMMED 0x80000040 #define TAPE_DRIVE_LOCK_UNLK_IMMED 0x80000080 #define TAPE_DRIVE_SET_ECC 0x80000100 #define TAPE_DRIVE_SET_COMPRESSION 0x80000200 #define TAPE_DRIVE_SET_PADDING 0x80000400 #define TAPE_DRIVE_SET_REPORT_SMKS 0x80000800 #define TAPE_DRIVE_ABSOLUTE_BLK 0x80001000 #define TAPE_DRIVE_ABS_BLK_IMMED 0x80002000 #define TAPE_DRIVE_LOGICAL_BLK 0x80004000 #define TAPE_DRIVE_LOG_BLK_IMMED 0x80008000 #define TAPE_DRIVE_END_OF_DATA 0x80010000 #define TAPE_DRIVE_RELATIVE_BLKS 0x80020000 #define TAPE_DRIVE_FILEMARKS 0x80040000 #define TAPE_DRIVE_SEQUENTIAL_FMKS 0x80080000 #define TAPE_DRIVE_SETMARKS 0x80100000 #define TAPE_DRIVE_SEQUENTIAL_SMKS 0x80200000 #define TAPE_DRIVE_REVERSE_POSITION 0x80400000 #define TAPE_DRIVE_SPACE_IMMEDIATE 0x80800000 #define TAPE_DRIVE_WRITE_SETMARKS 0x81000000 #define TAPE_DRIVE_WRITE_FILEMARKS 0x82000000 #define TAPE_DRIVE_WRITE_SHORT_FMKS 0x84000000 #define TAPE_DRIVE_WRITE_LONG_FMKS 0x88000000 #define TAPE_DRIVE_WRITE_MARK_IMMED 0x90000000 #define TAPE_DRIVE_FORMAT 0xA0000000 #define TAPE_DRIVE_FORMAT_IMMEDIATE 0xC0000000 #define TAPE_DRIVE_HIGH_FEATURES 0x80000000 //mask for high features flag typedef 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; } TAPE_GET_DRIVE_PARAMETERS, *PTAPE_GET_DRIVE_PARAMETERS; // // IOCTL_TAPE_SET_DRIVE_PARAMETERS definitions // typedef struct _TAPE_SET_DRIVE_PARAMETERS { BOOLEAN ECC; BOOLEAN Compression; BOOLEAN DataPadding; BOOLEAN ReportSetmarks; DWORD EOTWarningZoneSize; } TAPE_SET_DRIVE_PARAMETERS, *PTAPE_SET_DRIVE_PARAMETERS; // // IOCTL_TAPE_GET_MEDIA_PARAMETERS definitions // typedef struct _TAPE_GET_MEDIA_PARAMETERS { LARGE_INTEGER Capacity; LARGE_INTEGER Remaining; DWORD BlockSize; DWORD PartitionCount; BOOLEAN WriteProtected; } TAPE_GET_MEDIA_PARAMETERS, *PTAPE_GET_MEDIA_PARAMETERS; // // IOCTL_TAPE_SET_MEDIA_PARAMETERS definitions // typedef struct _TAPE_SET_MEDIA_PARAMETERS { DWORD BlockSize; } TAPE_SET_MEDIA_PARAMETERS, *PTAPE_SET_MEDIA_PARAMETERS; // // IOCTL_TAPE_CREATE_PARTITION definitions // #define TAPE_FIXED_PARTITIONS 0L #define TAPE_SELECT_PARTITIONS 1L #define TAPE_INITIATOR_PARTITIONS 2L typedef struct _TAPE_CREATE_PARTITION { DWORD Method; DWORD Count; DWORD Size; } TAPE_CREATE_PARTITION, *PTAPE_CREATE_PARTITION; // // WMI Methods // #define TAPE_QUERY_DRIVE_PARAMETERS 0L #define TAPE_QUERY_MEDIA_CAPACITY 1L #define TAPE_CHECK_FOR_DRIVE_PROBLEM 2L #define TAPE_QUERY_IO_ERROR_DATA 3L #define TAPE_QUERY_DEVICE_ERROR_DATA 4L typedef struct _TAPE_WMI_OPERATIONS { DWORD Method; DWORD DataBufferSize; PVOID DataBuffer; } TAPE_WMI_OPERATIONS, *PTAPE_WMI_OPERATIONS; // // Type of drive errors // typedef enum _TAPE_DRIVE_PROBLEM_TYPE { TapeDriveProblemNone, TapeDriveReadWriteWarning, TapeDriveReadWriteError, TapeDriveReadWarning, TapeDriveWriteWarning, TapeDriveReadError, TapeDriveWriteError, TapeDriveHardwareError, TapeDriveUnsupportedMedia, TapeDriveScsiConnectionError, TapeDriveTimetoClean, TapeDriveCleanDriveNow, TapeDriveMediaLifeExpired, TapeDriveSnappedTape } TAPE_DRIVE_PROBLEM_TYPE; #if defined(_M_AMD64) && !defined(__midl) __forceinline PVOID GetCurrentFiber ( VOID ) { return (PVOID)__readgsqword(FIELD_OFFSET(NT_TIB, FiberData)); } __forceinline PVOID GetFiberData ( VOID ) { return *(PVOID *)GetCurrentFiber(); } #endif // _M_AMD64 && !defined(__midl) #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED // winnt_only #define ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION (1) #define ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION (2) #define ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION (3) #define ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION (4) #define ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION (5) #define ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION (6) #define ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION (7) #define ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE (8) #define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES (9) #endif // winnt_only #ifdef __cplusplus } #endif #endif /* _WINNT_ */ ================================================ FILE: Bin/i386/APILib/WinReg.h ================================================ /*++ BUILD Version: 0001 // Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: Winreg.h Abstract: This module contains the function prototypes and constant, type and structure definitions for the Windows 32-Bit Registry API. --*/ #ifndef _WINREG_ #define _WINREG_ #ifdef _MAC #include #endif #ifdef __cplusplus extern "C" { #endif #ifndef WINVER #define WINVER 0x0500 // version 5.0 #endif /* !WINVER */ // // Requested Key access mask type. // typedef ACCESS_MASK REGSAM; // // Reserved Key Handles. // #define HKEY_CLASSES_ROOT (( HKEY ) (ULONG_PTR)((LONG)0x80000000) ) #define HKEY_CURRENT_USER (( HKEY ) (ULONG_PTR)((LONG)0x80000001) ) #define HKEY_LOCAL_MACHINE (( HKEY ) (ULONG_PTR)((LONG)0x80000002) ) #define HKEY_USERS (( HKEY ) (ULONG_PTR)((LONG)0x80000003) ) #define HKEY_PERFORMANCE_DATA (( HKEY ) (ULONG_PTR)((LONG)0x80000004) ) #define HKEY_PERFORMANCE_TEXT (( HKEY ) (ULONG_PTR)((LONG)0x80000050) ) #define HKEY_PERFORMANCE_NLSTEXT (( HKEY ) (ULONG_PTR)((LONG)0x80000060) ) #if(WINVER >= 0x0400) #define HKEY_CURRENT_CONFIG (( HKEY ) (ULONG_PTR)((LONG)0x80000005) ) #define HKEY_DYN_DATA (( HKEY ) (ULONG_PTR)((LONG)0x80000006) ) /*NOINC*/ #ifndef _PROVIDER_STRUCTS_DEFINED #define _PROVIDER_STRUCTS_DEFINED #define PROVIDER_KEEPS_VALUE_LENGTH 0x1 struct val_context { int valuelen; // the total length of this value LPVOID value_context; // provider's context LPVOID val_buff_ptr; // where in the ouput buffer the value is. }; typedef struct val_context FAR *PVALCONTEXT; typedef struct pvalueA { // Provider supplied value/context. LPSTR pv_valuename; // The value name pointer int pv_valuelen; LPVOID pv_value_context; DWORD pv_type; }PVALUEA, FAR *PPVALUEA; typedef struct pvalueW { // Provider supplied value/context. LPWSTR pv_valuename; // The value name pointer int pv_valuelen; LPVOID pv_value_context; DWORD pv_type; }PVALUEW, FAR *PPVALUEW; #ifdef UNICODE typedef PVALUEW PVALUE; typedef PPVALUEW PPVALUE; #else typedef PVALUEA PVALUE; typedef 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); typedef QUERYHANDLER FAR *PQUERYHANDLER; typedef struct provider_info { PQUERYHANDLER pi_R0_1val; PQUERYHANDLER pi_R0_allvals; PQUERYHANDLER pi_R3_1val; PQUERYHANDLER pi_R3_allvals; DWORD pi_flags; // capability flags (none defined yet). LPVOID pi_key_context; }REG_PROVIDER; typedef struct provider_info FAR *PPROVIDER; typedef struct value_entA { LPSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; }VALENTA, FAR *PVALENTA; typedef struct value_entW { LPWSTR ve_valuename; DWORD ve_valuelen; DWORD_PTR ve_valueptr; DWORD ve_type; }VALENTW, FAR *PVALENTW; #ifdef UNICODE typedef VALENTW VALENT; typedef PVALENTW PVALENT; #else typedef VALENTA VALENT; typedef PVALENTA PVALENT; #endif // UNICODE #endif // not(_PROVIDER_STRUCTS_DEFINED) /*INC*/ #endif /* WINVER >= 0x0400 */ // // Default values for parameters that do not exist in the Win 3.1 // compatible APIs. // #define WIN31_CLASS NULL // // API Prototypes. // WINADVAPI LONG APIENTRY RegCloseKey ( IN HKEY hKey ); WINADVAPI LONG APIENTRY RegOverridePredefKey ( IN HKEY hKey, IN HKEY hNewHKey ); WINADVAPI LONG APIENTRY RegOpenUserClassesRoot( HANDLE hToken, DWORD dwOptions, REGSAM samDesired, PHKEY phkResult ); WINADVAPI LONG APIENTRY RegOpenCurrentUser( REGSAM samDesired, PHKEY phkResult ); WINADVAPI LONG APIENTRY RegDisablePredefinedCache( ); WINADVAPI LONG APIENTRY RegConnectRegistryA ( IN LPCSTR lpMachineName, IN HKEY hKey, OUT PHKEY phkResult ); WINADVAPI LONG APIENTRY RegConnectRegistryW ( IN LPCWSTR lpMachineName, IN HKEY hKey, OUT PHKEY phkResult ); #ifdef UNICODE #define RegConnectRegistry RegConnectRegistryW #else #define RegConnectRegistry RegConnectRegistryA #endif // !UNICODE WINADVAPI LONG APIENTRY RegCreateKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey, OUT PHKEY phkResult ); WINADVAPI LONG APIENTRY RegCreateKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey, OUT PHKEY phkResult ); #ifdef UNICODE #define RegCreateKey RegCreateKeyW #else #define RegCreateKey RegCreateKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegCreateKeyExA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN DWORD Reserved, IN LPSTR lpClass, IN DWORD dwOptions, IN REGSAM samDesired, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, OUT PHKEY phkResult, OUT LPDWORD lpdwDisposition ); WINADVAPI LONG APIENTRY RegCreateKeyExW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN DWORD Reserved, IN LPWSTR lpClass, IN DWORD dwOptions, IN REGSAM samDesired, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, OUT PHKEY phkResult, OUT LPDWORD lpdwDisposition ); #ifdef UNICODE #define RegCreateKeyEx RegCreateKeyExW #else #define RegCreateKeyEx RegCreateKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegDeleteKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey ); WINADVAPI LONG APIENTRY RegDeleteKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey ); #ifdef UNICODE #define RegDeleteKey RegDeleteKeyW #else #define RegDeleteKey RegDeleteKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegDeleteValueA ( IN HKEY hKey, IN LPCSTR lpValueName ); WINADVAPI LONG APIENTRY RegDeleteValueW ( IN HKEY hKey, IN LPCWSTR lpValueName ); #ifdef UNICODE #define RegDeleteValue RegDeleteValueW #else #define RegDeleteValue RegDeleteValueA #endif // !UNICODE WINADVAPI LONG APIENTRY RegEnumKeyA ( IN HKEY hKey, IN DWORD dwIndex, OUT LPSTR lpName, IN DWORD cbName ); WINADVAPI LONG APIENTRY RegEnumKeyW ( IN HKEY hKey, IN DWORD dwIndex, OUT LPWSTR lpName, IN DWORD cbName ); #ifdef UNICODE #define RegEnumKey RegEnumKeyW #else #define RegEnumKey RegEnumKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegEnumKeyExA ( IN HKEY hKey, IN DWORD dwIndex, OUT LPSTR lpName, IN OUT LPDWORD lpcbName, IN LPDWORD lpReserved, IN OUT LPSTR lpClass, IN OUT LPDWORD lpcbClass, OUT PFILETIME lpftLastWriteTime ); WINADVAPI LONG APIENTRY RegEnumKeyExW ( IN HKEY hKey, IN DWORD dwIndex, OUT LPWSTR lpName, IN OUT LPDWORD lpcbName, IN LPDWORD lpReserved, IN OUT LPWSTR lpClass, IN OUT LPDWORD lpcbClass, OUT PFILETIME lpftLastWriteTime ); #ifdef UNICODE #define RegEnumKeyEx RegEnumKeyExW #else #define RegEnumKeyEx RegEnumKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegEnumValueA ( IN HKEY hKey, IN DWORD dwIndex, OUT LPSTR lpValueName, IN OUT LPDWORD lpcbValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); WINADVAPI LONG APIENTRY RegEnumValueW ( IN HKEY hKey, IN DWORD dwIndex, OUT LPWSTR lpValueName, IN OUT LPDWORD lpcbValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); #ifdef UNICODE #define RegEnumValue RegEnumValueW #else #define RegEnumValue RegEnumValueA #endif // !UNICODE WINADVAPI LONG APIENTRY RegFlushKey ( IN HKEY hKey ); WINADVAPI LONG APIENTRY RegGetKeySecurity ( IN HKEY hKey, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR pSecurityDescriptor, IN OUT LPDWORD lpcbSecurityDescriptor ); WINADVAPI LONG APIENTRY RegLoadKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN LPCSTR lpFile ); WINADVAPI LONG APIENTRY RegLoadKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN LPCWSTR lpFile ); #ifdef UNICODE #define RegLoadKey RegLoadKeyW #else #define RegLoadKey RegLoadKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegNotifyChangeKeyValue ( IN HKEY hKey, IN BOOL bWatchSubtree, IN DWORD dwNotifyFilter, IN HANDLE hEvent, IN BOOL fAsynchronus ); WINADVAPI LONG APIENTRY RegOpenKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey, OUT PHKEY phkResult ); WINADVAPI LONG APIENTRY RegOpenKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey, OUT PHKEY phkResult ); #ifdef UNICODE #define RegOpenKey RegOpenKeyW #else #define RegOpenKey RegOpenKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegOpenKeyExA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN DWORD ulOptions, IN REGSAM samDesired, OUT PHKEY phkResult ); WINADVAPI LONG APIENTRY RegOpenKeyExW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN DWORD ulOptions, IN REGSAM samDesired, OUT PHKEY phkResult ); #ifdef UNICODE #define RegOpenKeyEx RegOpenKeyExW #else #define RegOpenKeyEx RegOpenKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegQueryInfoKeyA ( IN HKEY hKey, OUT LPSTR lpClass, IN OUT LPDWORD lpcbClass, IN LPDWORD lpReserved, OUT LPDWORD lpcSubKeys, OUT LPDWORD lpcbMaxSubKeyLen, OUT LPDWORD lpcbMaxClassLen, OUT LPDWORD lpcValues, OUT LPDWORD lpcbMaxValueNameLen, OUT LPDWORD lpcbMaxValueLen, OUT LPDWORD lpcbSecurityDescriptor, OUT PFILETIME lpftLastWriteTime ); WINADVAPI LONG APIENTRY RegQueryInfoKeyW ( IN HKEY hKey, OUT LPWSTR lpClass, IN OUT LPDWORD lpcbClass, IN LPDWORD lpReserved, OUT LPDWORD lpcSubKeys, OUT LPDWORD lpcbMaxSubKeyLen, OUT LPDWORD lpcbMaxClassLen, OUT LPDWORD lpcValues, OUT LPDWORD lpcbMaxValueNameLen, OUT LPDWORD lpcbMaxValueLen, OUT LPDWORD lpcbSecurityDescriptor, OUT PFILETIME lpftLastWriteTime ); #ifdef UNICODE #define RegQueryInfoKey RegQueryInfoKeyW #else #define RegQueryInfoKey RegQueryInfoKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegQueryValueA ( IN HKEY hKey, IN LPCSTR lpSubKey, OUT LPSTR lpValue, IN OUT PLONG lpcbValue ); WINADVAPI LONG APIENTRY RegQueryValueW ( IN HKEY hKey, IN LPCWSTR lpSubKey, OUT LPWSTR lpValue, IN OUT PLONG lpcbValue ); #ifdef UNICODE #define RegQueryValue RegQueryValueW #else #define RegQueryValue RegQueryValueA #endif // !UNICODE #if(WINVER >= 0x0400) WINADVAPI LONG APIENTRY RegQueryMultipleValuesA ( IN HKEY hKey, OUT PVALENTA val_list, IN DWORD num_vals, OUT LPSTR lpValueBuf, IN OUT LPDWORD ldwTotsize ); WINADVAPI LONG APIENTRY RegQueryMultipleValuesW ( IN HKEY hKey, OUT PVALENTW val_list, IN DWORD num_vals, OUT LPWSTR lpValueBuf, IN OUT LPDWORD ldwTotsize ); #ifdef UNICODE #define RegQueryMultipleValues RegQueryMultipleValuesW #else #define RegQueryMultipleValues RegQueryMultipleValuesA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ WINADVAPI LONG APIENTRY RegQueryValueExA ( IN HKEY hKey, IN LPCSTR lpValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, IN OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); WINADVAPI LONG APIENTRY RegQueryValueExW ( IN HKEY hKey, IN LPCWSTR lpValueName, IN LPDWORD lpReserved, OUT LPDWORD lpType, IN OUT LPBYTE lpData, IN OUT LPDWORD lpcbData ); #ifdef UNICODE #define RegQueryValueEx RegQueryValueExW #else #define RegQueryValueEx RegQueryValueExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegReplaceKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN LPCSTR lpNewFile, IN LPCSTR lpOldFile ); WINADVAPI LONG APIENTRY RegReplaceKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN LPCWSTR lpNewFile, IN LPCWSTR lpOldFile ); #ifdef UNICODE #define RegReplaceKey RegReplaceKeyW #else #define RegReplaceKey RegReplaceKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegRestoreKeyA ( IN HKEY hKey, IN LPCSTR lpFile, IN DWORD dwFlags ); WINADVAPI LONG APIENTRY RegRestoreKeyW ( IN HKEY hKey, IN LPCWSTR lpFile, IN DWORD dwFlags ); #ifdef UNICODE #define RegRestoreKey RegRestoreKeyW #else #define RegRestoreKey RegRestoreKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegSaveKeyA ( IN HKEY hKey, IN LPCSTR lpFile, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); WINADVAPI LONG APIENTRY RegSaveKeyW ( IN HKEY hKey, IN LPCWSTR lpFile, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define RegSaveKey RegSaveKeyW #else #define RegSaveKey RegSaveKeyA #endif // !UNICODE WINADVAPI LONG APIENTRY RegSetKeySecurity ( IN HKEY hKey, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR pSecurityDescriptor ); WINADVAPI LONG APIENTRY RegSetValueA ( IN HKEY hKey, IN LPCSTR lpSubKey, IN DWORD dwType, IN LPCSTR lpData, IN DWORD cbData ); WINADVAPI LONG APIENTRY RegSetValueW ( IN HKEY hKey, IN LPCWSTR lpSubKey, IN DWORD dwType, IN LPCWSTR lpData, IN DWORD cbData ); #ifdef UNICODE #define RegSetValue RegSetValueW #else #define RegSetValue RegSetValueA #endif // !UNICODE WINADVAPI LONG APIENTRY RegSetValueExA ( IN HKEY hKey, IN LPCSTR lpValueName, IN DWORD Reserved, IN DWORD dwType, IN CONST BYTE* lpData, IN DWORD cbData ); WINADVAPI LONG APIENTRY RegSetValueExW ( IN HKEY hKey, IN LPCWSTR lpValueName, IN DWORD Reserved, IN DWORD dwType, IN CONST BYTE* lpData, IN DWORD cbData ); #ifdef UNICODE #define RegSetValueEx RegSetValueExW #else #define RegSetValueEx RegSetValueExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegUnLoadKeyA ( IN HKEY hKey, IN LPCSTR lpSubKey ); WINADVAPI LONG APIENTRY RegUnLoadKeyW ( IN HKEY hKey, IN LPCWSTR lpSubKey ); #ifdef UNICODE #define RegUnLoadKey RegUnLoadKeyW #else #define RegUnLoadKey RegUnLoadKeyA #endif // !UNICODE // // Remoteable System Shutdown APIs // WINADVAPI BOOL APIENTRY InitiateSystemShutdownA( IN LPSTR lpMachineName, IN LPSTR lpMessage, IN DWORD dwTimeout, IN BOOL bForceAppsClosed, IN BOOL bRebootAfterShutdown ); WINADVAPI BOOL APIENTRY InitiateSystemShutdownW( IN LPWSTR lpMachineName, IN LPWSTR lpMessage, IN DWORD dwTimeout, IN BOOL bForceAppsClosed, IN BOOL bRebootAfterShutdown ); #ifdef UNICODE #define InitiateSystemShutdown InitiateSystemShutdownW #else #define InitiateSystemShutdown InitiateSystemShutdownA #endif // !UNICODE WINADVAPI BOOL APIENTRY AbortSystemShutdownA( IN LPSTR lpMachineName ); WINADVAPI BOOL APIENTRY AbortSystemShutdownW( IN LPWSTR lpMachineName ); #ifdef UNICODE #define AbortSystemShutdown AbortSystemShutdownW #else #define AbortSystemShutdown AbortSystemShutdownA #endif // !UNICODE // // defines for InitiateSystemShutdownEx reason codes // #include // get the public reasons // // Then for Historical reasons support some old symbols, internal only #define REASON_SWINSTALL SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_INSTALLATION #define REASON_HWINSTALL SHTDN_REASON_MAJOR_HARDWARE|SHTDN_REASON_MINOR_INSTALLATION #define REASON_SERVICEHANG SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_HUNG #define REASON_UNSTABLE SHTDN_REASON_MAJOR_SYSTEM|SHTDN_REASON_MINOR_UNSTABLE #define REASON_SWHWRECONF SHTDN_REASON_MAJOR_SOFTWARE|SHTDN_REASON_MINOR_RECONFIG #define REASON_OTHER SHTDN_REASON_MAJOR_OTHER|SHTDN_REASON_MINOR_OTHER #define REASON_UNKNOWN SHTDN_REASON_UNKNOWN #define REASON_LEGACY_API SHTDN_REASON_LEGACY_API #define REASON_PLANNED_FLAG SHTDN_REASON_FLAG_PLANNED // // MAX Shutdown TimeOut == 10 Years in seconds // #define MAX_SHUTDOWN_TIMEOUT (10*365*24*60*60) WINADVAPI BOOL APIENTRY InitiateSystemShutdownExA( IN LPSTR lpMachineName, IN LPSTR lpMessage, IN DWORD dwTimeout, IN BOOL bForceAppsClosed, IN BOOL bRebootAfterShutdown, IN DWORD dwReason ); WINADVAPI BOOL APIENTRY InitiateSystemShutdownExW( IN LPWSTR lpMachineName, IN LPWSTR lpMessage, IN DWORD dwTimeout, IN BOOL bForceAppsClosed, IN BOOL bRebootAfterShutdown, IN DWORD dwReason ); #ifdef UNICODE #define InitiateSystemShutdownEx InitiateSystemShutdownExW #else #define InitiateSystemShutdownEx InitiateSystemShutdownExA #endif // !UNICODE WINADVAPI LONG APIENTRY RegSaveKeyExA ( IN HKEY hKey, IN LPCSTR lpFile, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, IN DWORD Flags ); WINADVAPI LONG APIENTRY RegSaveKeyExW ( IN HKEY hKey, IN LPCWSTR lpFile, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes, IN DWORD Flags ); #ifdef UNICODE #define RegSaveKeyEx RegSaveKeyExW #else #define RegSaveKeyEx RegSaveKeyExA #endif // !UNICODE WINADVAPI LONG APIENTRY Wow64Win32ApiEntry ( DWORD dwFuncNumber, DWORD dwFlag, DWORD dwRes ); #ifdef __cplusplus } #endif #endif // _WINREG_ ================================================ FILE: Bin/i386/APILib/WinSock.h ================================================ /* WINSOCK.H--definitions to be used with the WINSOCK.DLL * Copyright (c) Microsoft Corporation. All rights reserved. * * This header file corresponds to version 1.1 of the Windows Sockets specification. * * This file includes parts which are Copyright (c) 1982-1986 Regents * of the University of California. All rights reserved. The * Berkeley Software License Agreement specifies the terms and * conditions for redistribution. * */ #ifndef _WINSOCKAPI_ #define _WINSOCKAPI_ #if _MSC_VER > 1000 #pragma once #endif /* * Pull in WINDOWS.H if necessary */ #ifndef _INC_WINDOWS #include #endif /* _INC_WINDOWS */ /* * Basic system type definitions, taken from the BSD file sys/types.h. */ typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; /* * The new type to be used in all * instances which refer to sockets. */ typedef UINT_PTR SOCKET; /* * Select uses arrays of SOCKETs. These macros manipulate such * arrays. FD_SETSIZE may be defined by the user before including * this file, but the default here should be >= 64. * * CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE * INCLUDED IN WINSOCK.H EXACTLY AS SHOWN HERE. */ #ifndef FD_SETSIZE #define FD_SETSIZE 64 #endif /* FD_SETSIZE */ typedef struct fd_set { u_int fd_count; /* how many are SET? */ SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */ } fd_set; #ifdef __cplusplus extern "C" { #endif extern int PASCAL FAR __WSAFDIsSet(SOCKET, fd_set FAR *); #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) #define FD_SET(fd, set) do { \ if (((fd_set FAR *)(set))->fd_count < FD_SETSIZE) \ ((fd_set FAR *)(set))->fd_array[((fd_set FAR *)(set))->fd_count++]=(fd);\ } while(0) #define FD_ZERO(set) (((fd_set FAR *)(set))->fd_count=0) #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR *)(set)) /* * Structure used in select() call, taken from the BSD file sys/time.h. */ struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; /* * Operations on timevals. * * NB: timercmp does not work for >= or <=. */ #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 /* * Commands for ioctlsocket(), taken from the BSD file fcntl.h. * * * Ioctl's have the command encoded in the lower word, * and the size of any in or out parameters in the upper * word. The high 2 bits of the upper word are used * to encode the in/out status of the parameter; for now * we restrict parameters to at most 128 bytes. */ #define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */ #define IOC_VOID 0x20000000 /* no parameters */ #define IOC_OUT 0x40000000 /* copy out parameters */ #define IOC_IN 0x80000000 /* copy in parameters */ #define IOC_INOUT (IOC_IN|IOC_OUT) /* 0x20000000 distinguishes new & old ioctl's */ #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) /* get # bytes to read */ #define FIONBIO _IOW('f', 126, u_long) /* set/clear non-blocking i/o */ #define FIOASYNC _IOW('f', 125, u_long) /* set/clear async i/o */ /* Socket I/O Controls */ #define SIOCSHIWAT _IOW('s', 0, u_long) /* set high watermark */ #define SIOCGHIWAT _IOR('s', 1, u_long) /* get high watermark */ #define SIOCSLOWAT _IOW('s', 2, u_long) /* set low watermark */ #define SIOCGLOWAT _IOR('s', 3, u_long) /* get low watermark */ #define SIOCATMARK _IOR('s', 7, u_long) /* at oob mark? */ /* * Structures returned by network data base library, taken from the * BSD file netdb.h. All addresses are supplied in host order, and * returned in network order (suitable for use in system calls). */ struct hostent { char FAR * h_name; /* official name of host */ char FAR * FAR * h_aliases; /* alias list */ short h_addrtype; /* host address type */ short h_length; /* length of address */ char FAR * FAR * h_addr_list; /* list of addresses */ #define h_addr h_addr_list[0] /* address, for backward compat */ }; /* * It is assumed here that a network number * fits in 32 bits. */ struct netent { char FAR * n_name; /* official name of net */ char FAR * FAR * n_aliases; /* alias list */ short n_addrtype; /* net address type */ u_long n_net; /* network # */ }; struct servent { char FAR * s_name; /* official service name */ char FAR * FAR * s_aliases; /* alias list */ #ifdef _WIN64 char FAR * s_proto; /* protocol to use */ short s_port; /* port # */ #else short s_port; /* port # */ char FAR * s_proto; /* protocol to use */ #endif }; struct protoent { char FAR * p_name; /* official protocol name */ char FAR * FAR * p_aliases; /* alias list */ short p_proto; /* protocol # */ }; /* * Constants and structures defined by the internet system, * Per RFC 790, September 1981, taken from the BSD file netinet/in.h. */ /* * Protocols */ #define IPPROTO_IP 0 /* dummy for IP */ #define IPPROTO_ICMP 1 /* control message protocol */ #define IPPROTO_IGMP 2 /* group management protocol */ #define IPPROTO_GGP 3 /* gateway^2 (deprecated) */ #define IPPROTO_TCP 6 /* tcp */ #define IPPROTO_PUP 12 /* pup */ #define IPPROTO_UDP 17 /* user datagram protocol */ #define IPPROTO_IDP 22 /* xns idp */ #define IPPROTO_ND 77 /* UNOFFICIAL net disk proto */ #define IPPROTO_RAW 255 /* raw IP packet */ #define IPPROTO_MAX 256 /* * Port/socket numbers: network standard functions */ #define IPPORT_ECHO 7 #define IPPORT_DISCARD 9 #define IPPORT_SYSTAT 11 #define IPPORT_DAYTIME 13 #define IPPORT_NETSTAT 15 #define IPPORT_FTP 21 #define IPPORT_TELNET 23 #define IPPORT_SMTP 25 #define IPPORT_TIMESERVER 37 #define IPPORT_NAMESERVER 42 #define IPPORT_WHOIS 43 #define IPPORT_MTP 57 /* * Port/socket numbers: host specific functions */ #define IPPORT_TFTP 69 #define IPPORT_RJE 77 #define IPPORT_FINGER 79 #define IPPORT_TTYLINK 87 #define IPPORT_SUPDUP 95 /* * UNIX TCP sockets */ #define IPPORT_EXECSERVER 512 #define IPPORT_LOGINSERVER 513 #define IPPORT_CMDSERVER 514 #define IPPORT_EFSSERVER 520 /* * UNIX UDP sockets */ #define IPPORT_BIFFUDP 512 #define IPPORT_WHOSERVER 513 #define IPPORT_ROUTESERVER 520 /* 520+1 also used */ /* * Ports < IPPORT_RESERVED are reserved for * privileged processes (e.g. root). */ #define IPPORT_RESERVED 1024 /* * Link numbers */ #define IMPLINK_IP 155 #define IMPLINK_LOWEXPER 156 #define IMPLINK_HIGHEXPER 158 #ifndef s_addr /* * Internet address (old style... should be updated) */ struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un; #define s_addr S_un.S_addr /* can be used for most tcp & ip code */ #define s_host S_un.S_un_b.s_b2 /* host on imp */ #define s_net S_un.S_un_b.s_b1 /* network */ #define s_imp S_un.S_un_w.s_w2 /* imp */ #define s_impno S_un.S_un_b.s_b4 /* imp # */ #define s_lh S_un.S_un_b.s_b3 /* logical host */ }; #endif /* * Definitions of bits in internet address integers. * On subnets, the decomposition of addresses to host and net parts * is done according to subnet mask, not the masks here. */ #define IN_CLASSA(i) (((long)(i) & 0x80000000) == 0) #define IN_CLASSA_NET 0xff000000 #define IN_CLASSA_NSHIFT 24 #define IN_CLASSA_HOST 0x00ffffff #define IN_CLASSA_MAX 128 #define IN_CLASSB(i) (((long)(i) & 0xc0000000) == 0x80000000) #define IN_CLASSB_NET 0xffff0000 #define IN_CLASSB_NSHIFT 16 #define IN_CLASSB_HOST 0x0000ffff #define IN_CLASSB_MAX 65536 #define IN_CLASSC(i) (((long)(i) & 0xe0000000) == 0xc0000000) #define IN_CLASSC_NET 0xffffff00 #define IN_CLASSC_NSHIFT 8 #define IN_CLASSC_HOST 0x000000ff #define INADDR_ANY (u_long)0x00000000 #define INADDR_LOOPBACK 0x7f000001 #define INADDR_BROADCAST (u_long)0xffffffff #define INADDR_NONE 0xffffffff /* * Socket address, internet style. */ struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; #define WSADESCRIPTION_LEN 256 #define WSASYS_STATUS_LEN 128 typedef struct WSAData { WORD wVersion; WORD wHighVersion; #ifdef _WIN64 unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; #else char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; #endif } WSADATA; typedef WSADATA FAR *LPWSADATA; /* * Options for use with [gs]etsockopt at the IP level. */ #define IP_OPTIONS 1 /* set/get IP per-packet options */ #define IP_MULTICAST_IF 2 /* set/get IP multicast interface */ #define IP_MULTICAST_TTL 3 /* set/get IP multicast timetolive */ #define IP_MULTICAST_LOOP 4 /* set/get IP multicast loopback */ #define IP_ADD_MEMBERSHIP 5 /* add an IP group membership */ #define IP_DROP_MEMBERSHIP 6 /* drop an IP group membership */ #define IP_TTL 7 /* set/get IP Time To Live */ #define IP_TOS 8 /* set/get IP Type Of Service */ #define IP_DONTFRAGMENT 9 /* set/get IP Don't Fragment flag */ #define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */ #define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ #define IP_MAX_MEMBERSHIPS 20 /* per socket; must fit in one mbuf */ /* * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */ struct ip_mreq { struct in_addr imr_multiaddr; /* IP multicast address of group */ struct in_addr imr_interface; /* local IP address of interface */ }; /* * Definitions related to sockets: types, address families, options, * taken from the BSD file sys/socket.h. */ /* * This is used instead of -1, since the * SOCKET type is unsigned. */ #define INVALID_SOCKET (SOCKET)(~0) #define SOCKET_ERROR (-1) /* * Types */ #define SOCK_STREAM 1 /* stream socket */ #define SOCK_DGRAM 2 /* datagram socket */ #define SOCK_RAW 3 /* raw-protocol interface */ #define SOCK_RDM 4 /* reliably-delivered message */ #define SOCK_SEQPACKET 5 /* sequenced packet stream */ /* * Option flags per-socket. */ #define SO_DEBUG 0x0001 /* turn on debugging info recording */ #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ #define SO_REUSEADDR 0x0004 /* allow local address reuse */ #define SO_KEEPALIVE 0x0008 /* keep connections alive */ #define SO_DONTROUTE 0x0010 /* just use interface addresses */ #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ #define SO_LINGER 0x0080 /* linger on close if data present */ #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ #define SO_DONTLINGER (u_int)(~SO_LINGER) /* * Additional options. */ #define SO_SNDBUF 0x1001 /* send buffer size */ #define SO_RCVBUF 0x1002 /* receive buffer size */ #define SO_SNDLOWAT 0x1003 /* send low-water mark */ #define SO_RCVLOWAT 0x1004 /* receive low-water mark */ #define SO_SNDTIMEO 0x1005 /* send timeout */ #define SO_RCVTIMEO 0x1006 /* receive timeout */ #define SO_ERROR 0x1007 /* get error status and clear */ #define SO_TYPE 0x1008 /* get socket type */ /* * Options for connect and disconnect data and options. Used only by * non-TCP/IP transports such as DECNet, OSI TP4, etc. */ #define SO_CONNDATA 0x7000 #define SO_CONNOPT 0x7001 #define SO_DISCDATA 0x7002 #define SO_DISCOPT 0x7003 #define SO_CONNDATALEN 0x7004 #define SO_CONNOPTLEN 0x7005 #define SO_DISCDATALEN 0x7006 #define SO_DISCOPTLEN 0x7007 /* * Option for opening sockets for synchronous access. */ #define SO_OPENTYPE 0x7008 #define SO_SYNCHRONOUS_ALERT 0x10 #define SO_SYNCHRONOUS_NONALERT 0x20 /* * Other NT-specific options. */ #define SO_MAXDG 0x7009 #define SO_MAXPATHDG 0x700A #define SO_UPDATE_ACCEPT_CONTEXT 0x700B #define SO_CONNECT_TIME 0x700C /* * TCP options. */ #define TCP_NODELAY 0x0001 #define TCP_BSDURGENT 0x7000 /* * Address families. */ #define AF_UNSPEC 0 /* unspecified */ #define AF_UNIX 1 /* local to host (pipes, portals) */ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define AF_IMPLINK 3 /* arpanet imp addresses */ #define AF_PUP 4 /* pup protocols: e.g. BSP */ #define AF_CHAOS 5 /* mit CHAOS protocols */ #define AF_IPX 6 /* IPX and SPX */ #define AF_NS 6 /* XEROX NS protocols */ #define AF_ISO 7 /* ISO protocols */ #define AF_OSI AF_ISO /* OSI is ISO */ #define AF_ECMA 8 /* european computer manufacturers */ #define AF_DATAKIT 9 /* datakit protocols */ #define AF_CCITT 10 /* CCITT protocols, X.25 etc */ #define AF_SNA 11 /* IBM SNA */ #define AF_DECnet 12 /* DECnet */ #define AF_DLI 13 /* Direct data link interface */ #define AF_LAT 14 /* LAT */ #define AF_HYLINK 15 /* NSC Hyperchannel */ #define AF_APPLETALK 16 /* AppleTalk */ #define AF_NETBIOS 17 /* NetBios-style addresses */ #define AF_VOICEVIEW 18 /* VoiceView */ #define AF_FIREFOX 19 /* FireFox */ #define AF_UNKNOWN1 20 /* Somebody is using this! */ #define AF_BAN 21 /* Banyan */ #define AF_MAX 22 /* * Structure used by kernel to store most * addresses. */ struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes of direct address */ }; /* * Structure used by kernel to pass protocol * information in raw sockets. */ struct sockproto { u_short sp_family; /* address family */ u_short sp_protocol; /* protocol */ }; /* * Protocol families, same as address families for now. */ #define PF_UNSPEC AF_UNSPEC #define PF_UNIX AF_UNIX #define PF_INET AF_INET #define PF_IMPLINK AF_IMPLINK #define PF_PUP AF_PUP #define PF_CHAOS AF_CHAOS #define PF_NS AF_NS #define PF_IPX AF_IPX #define PF_ISO AF_ISO #define PF_OSI AF_OSI #define PF_ECMA AF_ECMA #define PF_DATAKIT AF_DATAKIT #define PF_CCITT AF_CCITT #define PF_SNA AF_SNA #define PF_DECnet AF_DECnet #define PF_DLI AF_DLI #define PF_LAT AF_LAT #define PF_HYLINK AF_HYLINK #define PF_APPLETALK AF_APPLETALK #define PF_VOICEVIEW AF_VOICEVIEW #define PF_FIREFOX AF_FIREFOX #define PF_UNKNOWN1 AF_UNKNOWN1 #define PF_BAN AF_BAN #define PF_MAX AF_MAX /* * Structure used for manipulating linger option. */ struct linger { u_short l_onoff; /* option on/off */ u_short l_linger; /* linger time */ }; /* * Level number for (get/set)sockopt() to apply to socket itself. */ #define SOL_SOCKET 0xffff /* options for socket level */ /* * Maximum queue length specifiable by listen. */ #define SOMAXCONN 5 #define MSG_OOB 0x1 /* process out-of-band data */ #define MSG_PEEK 0x2 /* peek at incoming message */ #define MSG_DONTROUTE 0x4 /* send without using routing tables */ #define MSG_MAXIOVLEN 16 #define MSG_PARTIAL 0x8000 /* partial send or recv for message xport */ /* * Define constant based on rfc883, used by gethostbyxxxx() calls. */ #define MAXGETHOSTSTRUCT 1024 /* * Define flags to be used with the WSAAsyncSelect() call. */ #define FD_READ 0x01 #define FD_WRITE 0x02 #define FD_OOB 0x04 #define FD_ACCEPT 0x08 #define FD_CONNECT 0x10 #define FD_CLOSE 0x20 /* * WinSock error codes are also defined in winerror.h * Hence the IFDEF. */ #ifndef WSABASEERR /* * All Windows Sockets error constants are biased by WSABASEERR from * the "normal" */ #define WSABASEERR 10000 /* * Windows Sockets definitions of regular Microsoft C error constants */ #define WSAEINTR (WSABASEERR+4) #define WSAEBADF (WSABASEERR+9) #define WSAEACCES (WSABASEERR+13) #define WSAEFAULT (WSABASEERR+14) #define WSAEINVAL (WSABASEERR+22) #define WSAEMFILE (WSABASEERR+24) /* * Windows Sockets definitions of regular Berkeley error constants */ #define WSAEWOULDBLOCK (WSABASEERR+35) #define WSAEINPROGRESS (WSABASEERR+36) #define WSAEALREADY (WSABASEERR+37) #define WSAENOTSOCK (WSABASEERR+38) #define WSAEDESTADDRREQ (WSABASEERR+39) #define WSAEMSGSIZE (WSABASEERR+40) #define WSAEPROTOTYPE (WSABASEERR+41) #define WSAENOPROTOOPT (WSABASEERR+42) #define WSAEPROTONOSUPPORT (WSABASEERR+43) #define WSAESOCKTNOSUPPORT (WSABASEERR+44) #define WSAEOPNOTSUPP (WSABASEERR+45) #define WSAEPFNOSUPPORT (WSABASEERR+46) #define WSAEAFNOSUPPORT (WSABASEERR+47) #define WSAEADDRINUSE (WSABASEERR+48) #define WSAEADDRNOTAVAIL (WSABASEERR+49) #define WSAENETDOWN (WSABASEERR+50) #define WSAENETUNREACH (WSABASEERR+51) #define WSAENETRESET (WSABASEERR+52) #define WSAECONNABORTED (WSABASEERR+53) #define WSAECONNRESET (WSABASEERR+54) #define WSAENOBUFS (WSABASEERR+55) #define WSAEISCONN (WSABASEERR+56) #define WSAENOTCONN (WSABASEERR+57) #define WSAESHUTDOWN (WSABASEERR+58) #define WSAETOOMANYREFS (WSABASEERR+59) #define WSAETIMEDOUT (WSABASEERR+60) #define WSAECONNREFUSED (WSABASEERR+61) #define WSAELOOP (WSABASEERR+62) #define WSAENAMETOOLONG (WSABASEERR+63) #define WSAEHOSTDOWN (WSABASEERR+64) #define WSAEHOSTUNREACH (WSABASEERR+65) #define WSAENOTEMPTY (WSABASEERR+66) #define WSAEPROCLIM (WSABASEERR+67) #define WSAEUSERS (WSABASEERR+68) #define WSAEDQUOT (WSABASEERR+69) #define WSAESTALE (WSABASEERR+70) #define WSAEREMOTE (WSABASEERR+71) #define WSAEDISCON (WSABASEERR+101) /* * Extended Windows Sockets error constant definitions */ #define WSASYSNOTREADY (WSABASEERR+91) #define WSAVERNOTSUPPORTED (WSABASEERR+92) #define WSANOTINITIALISED (WSABASEERR+93) /* * Error return codes from gethostbyname() and gethostbyaddr() * (when using the resolver). Note that these errors are * retrieved via WSAGetLastError() and must therefore follow * the rules for avoiding clashes with error numbers from * specific implementations or language run-time systems. * For this reason the codes are based at WSABASEERR+1001. * Note also that [WSA]NO_ADDRESS is defined only for * compatibility purposes. */ /* Authoritative Answer: Host not found */ #define WSAHOST_NOT_FOUND (WSABASEERR+1001) /* Non-Authoritative: Host not found, or SERVERFAIL */ #define WSATRY_AGAIN (WSABASEERR+1002) /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ #define WSANO_RECOVERY (WSABASEERR+1003) /* Valid name, no data record of requested type */ #define WSANO_DATA (WSABASEERR+1004) /* * WinSock error codes are also defined in winerror.h * Hence the IFDEF. */ #endif /* ifdef WSABASEERR */ /* * Compatibility macros. */ #define h_errno WSAGetLastError() #define HOST_NOT_FOUND WSAHOST_NOT_FOUND #define TRY_AGAIN WSATRY_AGAIN #define NO_RECOVERY WSANO_RECOVERY #define NO_DATA WSANO_DATA /* no address, look for MX record */ #define WSANO_ADDRESS WSANO_DATA #define NO_ADDRESS WSANO_ADDRESS /* * Windows Sockets errors redefined as regular Berkeley error constants. * These are commented out in Windows NT to avoid conflicts with errno.h. * Use the WSA constants instead. */ #if 0 #define EWOULDBLOCK WSAEWOULDBLOCK #define EINPROGRESS WSAEINPROGRESS #define EALREADY WSAEALREADY #define ENOTSOCK WSAENOTSOCK #define EDESTADDRREQ WSAEDESTADDRREQ #define EMSGSIZE WSAEMSGSIZE #define EPROTOTYPE WSAEPROTOTYPE #define ENOPROTOOPT WSAENOPROTOOPT #define EPROTONOSUPPORT WSAEPROTONOSUPPORT #define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT #define EOPNOTSUPP WSAEOPNOTSUPP #define EPFNOSUPPORT WSAEPFNOSUPPORT #define EAFNOSUPPORT WSAEAFNOSUPPORT #define EADDRINUSE WSAEADDRINUSE #define EADDRNOTAVAIL WSAEADDRNOTAVAIL #define ENETDOWN WSAENETDOWN #define ENETUNREACH WSAENETUNREACH #define ENETRESET WSAENETRESET #define ECONNABORTED WSAECONNABORTED #define ECONNRESET WSAECONNRESET #define ENOBUFS WSAENOBUFS #define EISCONN WSAEISCONN #define ENOTCONN WSAENOTCONN #define ESHUTDOWN WSAESHUTDOWN #define ETOOMANYREFS WSAETOOMANYREFS #define ETIMEDOUT WSAETIMEDOUT #define ECONNREFUSED WSAECONNREFUSED #define ELOOP WSAELOOP #define ENAMETOOLONG WSAENAMETOOLONG #define EHOSTDOWN WSAEHOSTDOWN #define EHOSTUNREACH WSAEHOSTUNREACH #define ENOTEMPTY WSAENOTEMPTY #define EPROCLIM WSAEPROCLIM #define EUSERS WSAEUSERS #define EDQUOT WSAEDQUOT #define ESTALE WSAESTALE #define EREMOTE WSAEREMOTE #endif /* Socket function prototypes */ #ifdef __cplusplus extern "C" { #endif SOCKET PASCAL FAR accept ( IN SOCKET s, OUT struct sockaddr FAR *addr, IN OUT int FAR *addrlen); int PASCAL FAR bind ( IN SOCKET s, IN const struct sockaddr FAR *addr, IN int namelen); int PASCAL FAR closesocket ( IN SOCKET s); int PASCAL FAR connect ( IN SOCKET s, IN const struct sockaddr FAR *name, IN int namelen); int PASCAL FAR ioctlsocket ( IN SOCKET s, IN long cmd, IN OUT u_long FAR *argp); int PASCAL FAR getpeername ( IN SOCKET s, OUT struct sockaddr FAR *name, IN OUT int FAR * namelen); int PASCAL FAR getsockname ( IN SOCKET s, OUT struct sockaddr FAR *name, IN OUT int FAR * namelen); int PASCAL FAR getsockopt ( IN SOCKET s, IN int level, IN int optname, OUT char FAR * optval, IN OUT int FAR *optlen); u_long PASCAL FAR htonl ( IN u_long hostlong); u_short PASCAL FAR htons (IN u_short hostshort); unsigned long PASCAL FAR inet_addr (IN const char FAR * cp); char FAR * PASCAL FAR inet_ntoa (IN struct in_addr in); int PASCAL FAR listen ( IN SOCKET s, IN int backlog); u_long PASCAL FAR ntohl (IN u_long netlong); u_short PASCAL FAR ntohs (IN u_short netshort); int PASCAL FAR recv ( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags); int PASCAL FAR recvfrom ( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags, OUT struct sockaddr FAR *from, IN OUT int FAR * fromlen); int PASCAL FAR select ( IN int nfds, IN OUT fd_set FAR *readfds, IN OUT fd_set FAR *writefds, IN OUT fd_set FAR *exceptfds, IN const struct timeval FAR *timeout); int PASCAL FAR send ( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags); int PASCAL FAR sendto ( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags, IN const struct sockaddr FAR *to, IN int tolen); int PASCAL FAR setsockopt ( IN SOCKET s, IN int level, IN int optname, IN const char FAR * optval, IN int optlen); int PASCAL FAR shutdown ( IN SOCKET s, IN int how); SOCKET PASCAL FAR socket ( IN int af, IN int type, IN int protocol); /* Database function prototypes */ struct hostent FAR * PASCAL FAR gethostbyaddr( IN const char FAR * addr, IN int len, IN int type); struct hostent FAR * PASCAL FAR gethostbyname(IN const char FAR * name); int PASCAL FAR gethostname ( OUT char FAR * name, IN int namelen); struct servent FAR * PASCAL FAR getservbyport( IN int port, IN const char FAR * proto); struct servent FAR * PASCAL FAR getservbyname( IN const char FAR * name, IN const char FAR * proto); struct protoent FAR * PASCAL FAR getprotobynumber(IN int proto); struct protoent FAR * PASCAL FAR getprotobyname(IN const char FAR * name); /* Microsoft Windows Extension function prototypes */ int PASCAL FAR WSAStartup( IN WORD wVersionRequired, OUT LPWSADATA lpWSAData); int PASCAL FAR WSACleanup(void); void PASCAL FAR WSASetLastError(IN int iError); int PASCAL FAR WSAGetLastError(void); BOOL PASCAL FAR WSAIsBlocking(void); int PASCAL FAR WSAUnhookBlockingHook(void); FARPROC PASCAL FAR WSASetBlockingHook(IN FARPROC lpBlockFunc); int PASCAL FAR WSACancelBlockingCall(void); HANDLE PASCAL FAR WSAAsyncGetServByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, IN const char FAR * proto, OUT char FAR * buf, IN int buflen); HANDLE PASCAL FAR WSAAsyncGetServByPort( IN HWND hWnd, IN u_int wMsg, IN int port, IN const char FAR * proto, OUT char FAR * buf, IN int buflen); HANDLE PASCAL FAR WSAAsyncGetProtoByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen); HANDLE PASCAL FAR WSAAsyncGetProtoByNumber( IN HWND hWnd, IN u_int wMsg, IN int number, OUT char FAR * buf, IN int buflen); HANDLE PASCAL FAR WSAAsyncGetHostByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen); HANDLE PASCAL FAR WSAAsyncGetHostByAddr( IN HWND hWnd, IN u_int wMsg, IN const char FAR * addr, IN int len, IN int type, OUT char FAR * buf, IN int buflen); int PASCAL FAR WSACancelAsyncRequest(IN HANDLE hAsyncTaskHandle); int PASCAL FAR WSAAsyncSelect( IN SOCKET s, IN HWND hWnd, IN u_int wMsg, IN long lEvent); int PASCAL FAR WSARecvEx ( IN SOCKET s, OUT char FAR * buf, IN int len, IN OUT int FAR *flags); typedef struct _TRANSMIT_FILE_BUFFERS { PVOID Head; DWORD HeadLength; PVOID Tail; DWORD TailLength; } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS; #define TF_DISCONNECT 0x01 #define TF_REUSE_SOCKET 0x02 #define TF_WRITE_BEHIND 0x04 BOOL PASCAL FAR TransmitFile ( IN SOCKET hSocket, IN HANDLE hFile, IN DWORD nNumberOfBytesToWrite, IN DWORD nNumberOfBytesPerSend, IN LPOVERLAPPED lpOverlapped, IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, IN DWORD dwReserved ); BOOL PASCAL FAR AcceptEx ( IN SOCKET sListenSocket, IN SOCKET sAcceptSocket, IN PVOID lpOutputBuffer, IN DWORD dwReceiveDataLength, IN DWORD dwLocalAddressLength, IN DWORD dwRemoteAddressLength, OUT LPDWORD lpdwBytesReceived, IN LPOVERLAPPED lpOverlapped ); VOID PASCAL FAR GetAcceptExSockaddrs ( IN PVOID lpOutputBuffer, IN DWORD dwReceiveDataLength, IN DWORD dwLocalAddressLength, IN DWORD dwRemoteAddressLength, OUT struct sockaddr **LocalSockaddr, OUT LPINT LocalSockaddrLength, OUT struct sockaddr **RemoteSockaddr, OUT LPINT RemoteSockaddrLength ); #ifdef __cplusplus } #endif /* Microsoft Windows Extended data types */ typedef struct sockaddr SOCKADDR; typedef struct sockaddr *PSOCKADDR; typedef struct sockaddr FAR *LPSOCKADDR; typedef struct sockaddr_in SOCKADDR_IN; typedef struct sockaddr_in *PSOCKADDR_IN; typedef struct sockaddr_in FAR *LPSOCKADDR_IN; typedef struct linger LINGER; typedef struct linger *PLINGER; typedef struct linger FAR *LPLINGER; typedef struct in_addr IN_ADDR; typedef struct in_addr *PIN_ADDR; typedef struct in_addr FAR *LPIN_ADDR; typedef struct fd_set FD_SET; typedef struct fd_set *PFD_SET; typedef struct fd_set FAR *LPFD_SET; typedef struct hostent HOSTENT; typedef struct hostent *PHOSTENT; typedef struct hostent FAR *LPHOSTENT; typedef struct servent SERVENT; typedef struct servent *PSERVENT; typedef struct servent FAR *LPSERVENT; typedef struct protoent PROTOENT; typedef struct protoent *PPROTOENT; typedef struct protoent FAR *LPPROTOENT; typedef struct timeval TIMEVAL; typedef struct timeval *PTIMEVAL; typedef struct timeval FAR *LPTIMEVAL; /* * Windows message parameter composition and decomposition * macros. * * WSAMAKEASYNCREPLY is intended for use by the Windows Sockets implementation * when constructing the response to a WSAAsyncGetXByY() routine. */ #define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error) /* * WSAMAKESELECTREPLY is intended for use by the Windows Sockets implementation * when constructing the response to WSAAsyncSelect(). */ #define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error) /* * WSAGETASYNCBUFLEN is intended for use by the Windows Sockets application * to extract the buffer length from the lParam in the response * to a WSAGetXByY(). */ #define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam) /* * WSAGETASYNCERROR is intended for use by the Windows Sockets application * to extract the error code from the lParam in the response * to a WSAGetXByY(). */ #define WSAGETASYNCERROR(lParam) HIWORD(lParam) /* * WSAGETSELECTEVENT is intended for use by the Windows Sockets application * to extract the event code from the lParam in the response * to a WSAAsyncSelect(). */ #define WSAGETSELECTEVENT(lParam) LOWORD(lParam) /* * WSAGETSELECTERROR is intended for use by the Windows Sockets application * to extract the error code from the lParam in the response * to a WSAAsyncSelect(). */ #define WSAGETSELECTERROR(lParam) HIWORD(lParam) #ifdef IPV6STRICT #error WINSOCK2 required. #endif // IPV6STRICT #endif /* _WINSOCKAPI_ */ ================================================ FILE: Bin/i386/APILib/WinSock2.h ================================================ /* Winsock2.h -- definitions to be used with the WinSock 2 DLL and * WinSock 2 applications. * * This header file corresponds to version 2.2.x of the WinSock API * specification. * * This file includes parts which are Copyright (c) 1982-1986 Regents * of the University of California. All rights reserved. The * Berkeley Software License Agreement specifies the terms and * conditions for redistribution. */ #ifndef _WINSOCK2API_ #define _WINSOCK2API_ #define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */ /* * Ensure structures are packed consistently. * Not necessary for WIN32, it is already packed >=4 and there are * no structures in this header that have alignment requirement * higher than 4. * For WIN64 we do not have compatibility requirement because it is * not possible to mix 32/16 bit code with 64 bit code in the same * process. */ #if !defined(WIN32) && !defined(_WIN64) #include #endif /* * Default: include function prototypes, don't include function typedefs. */ #ifndef INCL_WINSOCK_API_PROTOTYPES #define INCL_WINSOCK_API_PROTOTYPES 1 #endif #ifndef INCL_WINSOCK_API_TYPEDEFS #define INCL_WINSOCK_API_TYPEDEFS 0 #endif /* * Pull in WINDOWS.H if necessary */ #ifndef _INC_WINDOWS #include #endif /* _INC_WINDOWS */ /* * Define the current Winsock version. To build an earlier Winsock version * application redefine this value prior to including Winsock2.h. */ #if !defined(MAKEWORD) #define MAKEWORD(low,high) \ ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8)) #endif #ifndef WINSOCK_VERSION #define WINSOCK_VERSION MAKEWORD(2,2) #endif /* * Establish DLL function linkage if supported by the current build * environment and not previously defined. */ #ifndef WINSOCK_API_LINKAGE #ifdef DECLSPEC_IMPORT #define WINSOCK_API_LINKAGE DECLSPEC_IMPORT #else #define WINSOCK_API_LINKAGE #endif #endif #ifdef __cplusplus extern "C" { #endif /* * Basic system type definitions, taken from the BSD file sys/types.h. */ typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; typedef unsigned __int64 u_int64; /* * The new type to be used in all * instances which refer to sockets. */ typedef UINT_PTR SOCKET; /* * Select uses arrays of SOCKETs. These macros manipulate such * arrays. FD_SETSIZE may be defined by the user before including * this file, but the default here should be >= 64. * * CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE * INCLUDED IN WINSOCK2.H EXACTLY AS SHOWN HERE. */ #ifndef FD_SETSIZE #define FD_SETSIZE 64 #endif /* FD_SETSIZE */ typedef struct fd_set { u_int fd_count; /* how many are SET? */ SOCKET fd_array[FD_SETSIZE]; /* an array of SOCKETs */ } fd_set; extern int PASCAL FAR __WSAFDIsSet(SOCKET, fd_set FAR *); #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) #define FD_SET(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)) { \ break; \ } \ } \ if (__i == ((fd_set FAR *)(set))->fd_count) { \ if (((fd_set FAR *)(set))->fd_count < FD_SETSIZE) { \ ((fd_set FAR *)(set))->fd_array[__i] = (fd); \ ((fd_set FAR *)(set))->fd_count++; \ } \ } \ } while(0) #define FD_ZERO(set) (((fd_set FAR *)(set))->fd_count=0) #define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set FAR *)(set)) /* * Structure used in select() call, taken from the BSD file sys/time.h. */ struct timeval { long tv_sec; /* seconds */ long tv_usec; /* and microseconds */ }; /* * Operations on timevals. * * NB: timercmp does not work for >= or <=. */ #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 /* * Commands for ioctlsocket(), taken from the BSD file fcntl.h. * * * Ioctl's have the command encoded in the lower word, * and the size of any in or out parameters in the upper * word. The high 2 bits of the upper word are used * to encode the in/out status of the parameter; for now * we restrict parameters to at most 128 bytes. */ #define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */ #define IOC_VOID 0x20000000 /* no parameters */ #define IOC_OUT 0x40000000 /* copy out parameters */ #define IOC_IN 0x80000000 /* copy in parameters */ #define IOC_INOUT (IOC_IN|IOC_OUT) /* 0x20000000 distinguishes new & old ioctl's */ #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) /* get # bytes to read */ #define FIONBIO _IOW('f', 126, u_long) /* set/clear non-blocking i/o */ #define FIOASYNC _IOW('f', 125, u_long) /* set/clear async i/o */ /* Socket I/O Controls */ #define SIOCSHIWAT _IOW('s', 0, u_long) /* set high watermark */ #define SIOCGHIWAT _IOR('s', 1, u_long) /* get high watermark */ #define SIOCSLOWAT _IOW('s', 2, u_long) /* set low watermark */ #define SIOCGLOWAT _IOR('s', 3, u_long) /* get low watermark */ #define SIOCATMARK _IOR('s', 7, u_long) /* at oob mark? */ /* * Structures returned by network data base library, taken from the * BSD file netdb.h. All addresses are supplied in host order, and * returned in network order (suitable for use in system calls). */ struct hostent { char FAR * h_name; /* official name of host */ char FAR * FAR * h_aliases; /* alias list */ short h_addrtype; /* host address type */ short h_length; /* length of address */ char FAR * FAR * h_addr_list; /* list of addresses */ #define h_addr h_addr_list[0] /* address, for backward compat */ }; /* * It is assumed here that a network number * fits in 32 bits. */ struct netent { char FAR * n_name; /* official name of net */ char FAR * FAR * n_aliases; /* alias list */ short n_addrtype; /* net address type */ u_long n_net; /* network # */ }; struct servent { char FAR * s_name; /* official service name */ char FAR * FAR * s_aliases; /* alias list */ #ifdef _WIN64 char FAR * s_proto; /* protocol to use */ short s_port; /* port # */ #else short s_port; /* port # */ char FAR * s_proto; /* protocol to use */ #endif }; struct protoent { char FAR * p_name; /* official protocol name */ char FAR * FAR * p_aliases; /* alias list */ short p_proto; /* protocol # */ }; /* * Constants and structures defined by the internet system, * Per RFC 790, September 1981, taken from the BSD file netinet/in.h. * IPv6 additions per RFC 2292. */ /* * Protocols */ #define IPPROTO_IP 0 /* dummy for IP */ #define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ #define IPPROTO_ICMP 1 /* control message protocol */ #define IPPROTO_IGMP 2 /* internet group management protocol */ #define IPPROTO_GGP 3 /* gateway^2 (deprecated) */ #define IPPROTO_IPV4 4 /* IPv4 */ #define IPPROTO_TCP 6 /* tcp */ #define IPPROTO_PUP 12 /* pup */ #define IPPROTO_UDP 17 /* user datagram protocol */ #define IPPROTO_IDP 22 /* xns idp */ #define IPPROTO_IPV6 41 /* IPv6 */ #define IPPROTO_ROUTING 43 /* IPv6 routing header */ #define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ #define IPPROTO_ESP 50 /* IPsec ESP header */ #define IPPROTO_AH 51 /* IPsec AH */ #define IPPROTO_ICMPV6 58 /* ICMPv6 */ #define IPPROTO_NONE 59 /* IPv6 no next header */ #define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ #define IPPROTO_ND 77 /* UNOFFICIAL net disk proto */ #define IPPROTO_ICLFXBM 78 #define IPPROTO_RAW 255 /* raw IP packet */ #define IPPROTO_MAX 256 /* * Port/socket numbers: network standard functions */ #define IPPORT_ECHO 7 #define IPPORT_DISCARD 9 #define IPPORT_SYSTAT 11 #define IPPORT_DAYTIME 13 #define IPPORT_NETSTAT 15 #define IPPORT_FTP 21 #define IPPORT_TELNET 23 #define IPPORT_SMTP 25 #define IPPORT_TIMESERVER 37 #define IPPORT_NAMESERVER 42 #define IPPORT_WHOIS 43 #define IPPORT_MTP 57 /* * Port/socket numbers: host specific functions */ #define IPPORT_TFTP 69 #define IPPORT_RJE 77 #define IPPORT_FINGER 79 #define IPPORT_TTYLINK 87 #define IPPORT_SUPDUP 95 /* * UNIX TCP sockets */ #define IPPORT_EXECSERVER 512 #define IPPORT_LOGINSERVER 513 #define IPPORT_CMDSERVER 514 #define IPPORT_EFSSERVER 520 /* * UNIX UDP sockets */ #define IPPORT_BIFFUDP 512 #define IPPORT_WHOSERVER 513 #define IPPORT_ROUTESERVER 520 /* 520+1 also used */ /* * Ports < IPPORT_RESERVED are reserved for * privileged processes (e.g. root). */ #define IPPORT_RESERVED 1024 /* * Link numbers */ #define IMPLINK_IP 155 #define IMPLINK_LOWEXPER 156 #define IMPLINK_HIGHEXPER 158 #ifndef s_addr /* * Internet address (old style... should be updated) */ struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un; #define s_addr S_un.S_addr /* can be used for most tcp & ip code */ #define s_host S_un.S_un_b.s_b2 /* host on imp */ #define s_net S_un.S_un_b.s_b1 /* network */ #define s_imp S_un.S_un_w.s_w2 /* imp */ #define s_impno S_un.S_un_b.s_b4 /* imp # */ #define s_lh S_un.S_un_b.s_b3 /* logical host */ }; #endif /* * Definitions of bits in internet address integers. * On subnets, the decomposition of addresses to host and net parts * is done according to subnet mask, not the masks here. */ #define IN_CLASSA(i) (((long)(i) & 0x80000000) == 0) #define IN_CLASSA_NET 0xff000000 #define IN_CLASSA_NSHIFT 24 #define IN_CLASSA_HOST 0x00ffffff #define IN_CLASSA_MAX 128 #define IN_CLASSB(i) (((long)(i) & 0xc0000000) == 0x80000000) #define IN_CLASSB_NET 0xffff0000 #define IN_CLASSB_NSHIFT 16 #define IN_CLASSB_HOST 0x0000ffff #define IN_CLASSB_MAX 65536 #define IN_CLASSC(i) (((long)(i) & 0xe0000000) == 0xc0000000) #define IN_CLASSC_NET 0xffffff00 #define IN_CLASSC_NSHIFT 8 #define IN_CLASSC_HOST 0x000000ff #define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) #define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */ #define IN_CLASSD_NSHIFT 28 /* net and host fields, but */ #define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */ #define IN_MULTICAST(i) IN_CLASSD(i) #define INADDR_ANY (u_long)0x00000000 #define INADDR_LOOPBACK 0x7f000001 #define INADDR_BROADCAST (u_long)0xffffffff #define INADDR_NONE 0xffffffff #define ADDR_ANY INADDR_ANY /* * Socket address, internet style. */ struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; #define WSADESCRIPTION_LEN 256 #define WSASYS_STATUS_LEN 128 typedef struct WSAData { WORD wVersion; WORD wHighVersion; #ifdef _WIN64 unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; #else char szDescription[WSADESCRIPTION_LEN+1]; char szSystemStatus[WSASYS_STATUS_LEN+1]; unsigned short iMaxSockets; unsigned short iMaxUdpDg; char FAR * lpVendorInfo; #endif } WSADATA, FAR * LPWSADATA; /* * Definitions related to sockets: types, address families, options, * taken from the BSD file sys/socket.h. */ /* * This is used instead of -1, since the * SOCKET type is unsigned. */ #define INVALID_SOCKET (SOCKET)(~0) #define SOCKET_ERROR (-1) /* * The following may be used in place of the address family, socket type, or * protocol in a call to WSASocket to indicate that the corresponding value * should be taken from the supplied WSAPROTOCOL_INFO structure instead of the * parameter itself. */ #define FROM_PROTOCOL_INFO (-1) /* * Types */ #define SOCK_STREAM 1 /* stream socket */ #define SOCK_DGRAM 2 /* datagram socket */ #define SOCK_RAW 3 /* raw-protocol interface */ #define SOCK_RDM 4 /* reliably-delivered message */ #define SOCK_SEQPACKET 5 /* sequenced packet stream */ /* * Option flags per-socket. */ #define SO_DEBUG 0x0001 /* turn on debugging info recording */ #define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ #define SO_REUSEADDR 0x0004 /* allow local address reuse */ #define SO_KEEPALIVE 0x0008 /* keep connections alive */ #define SO_DONTROUTE 0x0010 /* just use interface addresses */ #define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ #define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ #define SO_LINGER 0x0080 /* linger on close if data present */ #define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ #define SO_DONTLINGER (int)(~SO_LINGER) #define SO_EXCLUSIVEADDRUSE ((int)(~SO_REUSEADDR)) /* disallow local address reuse */ /* * Additional options. */ #define SO_SNDBUF 0x1001 /* send buffer size */ #define SO_RCVBUF 0x1002 /* receive buffer size */ #define SO_SNDLOWAT 0x1003 /* send low-water mark */ #define SO_RCVLOWAT 0x1004 /* receive low-water mark */ #define SO_SNDTIMEO 0x1005 /* send timeout */ #define SO_RCVTIMEO 0x1006 /* receive timeout */ #define SO_ERROR 0x1007 /* get error status and clear */ #define SO_TYPE 0x1008 /* get socket type */ /* * WinSock 2 extension -- new options */ #define SO_GROUP_ID 0x2001 /* ID of a socket group */ #define SO_GROUP_PRIORITY 0x2002 /* the relative priority within a group*/ #define SO_MAX_MSG_SIZE 0x2003 /* maximum message size */ #define SO_PROTOCOL_INFOA 0x2004 /* WSAPROTOCOL_INFOA structure */ #define SO_PROTOCOL_INFOW 0x2005 /* WSAPROTOCOL_INFOW structure */ #ifdef UNICODE #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOW #else #define SO_PROTOCOL_INFO SO_PROTOCOL_INFOA #endif /* UNICODE */ #define PVD_CONFIG 0x3001 /* configuration info for service provider */ #define SO_CONDITIONAL_ACCEPT 0x3002 /* enable true conditional accept: */ /* connection is not ack-ed to the */ /* other side until conditional */ /* function returns CF_ACCEPT */ /* * TCP options. */ #define TCP_NODELAY 0x0001 /* * Address families. */ #define AF_UNSPEC 0 /* unspecified */ /* * Although AF_UNSPEC is defined for backwards compatibility, using * AF_UNSPEC for the "af" parameter when creating a socket is STRONGLY * DISCOURAGED. The interpretation of the "protocol" parameter * depends on the actual address family chosen. As environments grow * to include more and more address families that use overlapping * protocol values there is more and more chance of choosing an * undesired address family when AF_UNSPEC is used. */ #define AF_UNIX 1 /* local to host (pipes, portals) */ #define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define AF_IMPLINK 3 /* arpanet imp addresses */ #define AF_PUP 4 /* pup protocols: e.g. BSP */ #define AF_CHAOS 5 /* mit CHAOS protocols */ #define AF_NS 6 /* XEROX NS protocols */ #define AF_IPX AF_NS /* IPX protocols: IPX, SPX, etc. */ #define AF_ISO 7 /* ISO protocols */ #define AF_OSI AF_ISO /* OSI is ISO */ #define AF_ECMA 8 /* european computer manufacturers */ #define AF_DATAKIT 9 /* datakit protocols */ #define AF_CCITT 10 /* CCITT protocols, X.25 etc */ #define AF_SNA 11 /* IBM SNA */ #define AF_DECnet 12 /* DECnet */ #define AF_DLI 13 /* Direct data link interface */ #define AF_LAT 14 /* LAT */ #define AF_HYLINK 15 /* NSC Hyperchannel */ #define AF_APPLETALK 16 /* AppleTalk */ #define AF_NETBIOS 17 /* NetBios-style addresses */ #define AF_VOICEVIEW 18 /* VoiceView */ #define AF_FIREFOX 19 /* Protocols from Firefox */ #define AF_UNKNOWN1 20 /* Somebody is using this! */ #define AF_BAN 21 /* Banyan */ #define AF_ATM 22 /* Native ATM Services */ #define AF_INET6 23 /* Internetwork Version 6 */ #define AF_CLUSTER 24 /* Microsoft Wolfpack */ #define AF_12844 25 /* IEEE 1284.4 WG AF */ #define AF_IRDA 26 /* IrDA */ #define AF_NETDES 28 /* Network Designers OSI & gateway enabled protocols */ #define AF_TCNPROCESS 29 #define AF_TCNMESSAGE 30 #define AF_ICLFXBM 31 #define AF_MAX 32 /* * Structure used by kernel to store most * addresses. */ struct sockaddr { u_short sa_family; /* address family */ char sa_data[14]; /* up to 14 bytes of direct address */ }; /* * Portable socket structure (RFC 2553). */ /* * Desired design of maximum size and alignment. * These are implementation specific. */ #define _SS_MAXSIZE 128 // Maximum size. #define _SS_ALIGNSIZE (sizeof(__int64)) // Desired alignment. /* * Definitions used for sockaddr_storage structure paddings design. */ #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof (short)) #define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof (short) + _SS_PAD1SIZE \ + _SS_ALIGNSIZE)) struct sockaddr_storage { short ss_family; // Address family. char __ss_pad1[_SS_PAD1SIZE]; // 6 byte pad, this is to make // implementation specific pad up to // alignment field that follows explicit // in the data structure. __int64 __ss_align; // Field to force desired structure. char __ss_pad2[_SS_PAD2SIZE]; // 112 byte pad to achieve desired size; // _SS_MAXSIZE value minus size of // ss_family, __ss_pad1, and // __ss_align fields is 112. }; /* * Structure used by kernel to pass protocol * information in raw sockets. */ struct sockproto { u_short sp_family; /* address family */ u_short sp_protocol; /* protocol */ }; /* * Protocol families, same as address families for now. */ #define PF_UNSPEC AF_UNSPEC #define PF_UNIX AF_UNIX #define PF_INET AF_INET #define PF_IMPLINK AF_IMPLINK #define PF_PUP AF_PUP #define PF_CHAOS AF_CHAOS #define PF_NS AF_NS #define PF_IPX AF_IPX #define PF_ISO AF_ISO #define PF_OSI AF_OSI #define PF_ECMA AF_ECMA #define PF_DATAKIT AF_DATAKIT #define PF_CCITT AF_CCITT #define PF_SNA AF_SNA #define PF_DECnet AF_DECnet #define PF_DLI AF_DLI #define PF_LAT AF_LAT #define PF_HYLINK AF_HYLINK #define PF_APPLETALK AF_APPLETALK #define PF_VOICEVIEW AF_VOICEVIEW #define PF_FIREFOX AF_FIREFOX #define PF_UNKNOWN1 AF_UNKNOWN1 #define PF_BAN AF_BAN #define PF_ATM AF_ATM #define PF_INET6 AF_INET6 #define PF_MAX AF_MAX /* * Structure used for manipulating linger option. */ struct linger { u_short l_onoff; /* option on/off */ u_short l_linger; /* linger time */ }; /* * Level number for (get/set)sockopt() to apply to socket itself. */ #define SOL_SOCKET 0xffff /* options for socket level */ /* * Maximum queue length specifiable by listen. */ #define SOMAXCONN 0x7fffffff #define MSG_OOB 0x1 /* process out-of-band data */ #define MSG_PEEK 0x2 /* peek at incoming message */ #define MSG_DONTROUTE 0x4 /* send without using routing tables */ #define MSG_PARTIAL 0x8000 /* partial send or recv for message xport */ /* * WinSock 2 extension -- new flags for WSASend(), WSASendTo(), WSARecv() and * WSARecvFrom() */ #define MSG_INTERRUPT 0x10 /* send/recv in the interrupt context */ #define MSG_MAXIOVLEN 16 /* * Define constant based on rfc883, used by gethostbyxxxx() calls. */ #define MAXGETHOSTSTRUCT 1024 /* * WinSock 2 extension -- bit values and indices for FD_XXX network events */ #define FD_READ_BIT 0 #define FD_READ (1 << FD_READ_BIT) #define FD_WRITE_BIT 1 #define FD_WRITE (1 << FD_WRITE_BIT) #define FD_OOB_BIT 2 #define FD_OOB (1 << FD_OOB_BIT) #define FD_ACCEPT_BIT 3 #define FD_ACCEPT (1 << FD_ACCEPT_BIT) #define FD_CONNECT_BIT 4 #define FD_CONNECT (1 << FD_CONNECT_BIT) #define FD_CLOSE_BIT 5 #define FD_CLOSE (1 << FD_CLOSE_BIT) #define FD_QOS_BIT 6 #define FD_QOS (1 << FD_QOS_BIT) #define FD_GROUP_QOS_BIT 7 #define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT) #define FD_ROUTING_INTERFACE_CHANGE_BIT 8 #define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT) #define FD_ADDRESS_LIST_CHANGE_BIT 9 #define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT) #define FD_MAX_EVENTS 10 #define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1) /* * WinSock error codes are also defined in winerror.h * Hence the IFDEF. */ #ifndef WSABASEERR /* * All Windows Sockets error constants are biased by WSABASEERR from * the "normal" */ #define WSABASEERR 10000 /* * Windows Sockets definitions of regular Microsoft C error constants */ #define WSAEINTR (WSABASEERR+4) #define WSAEBADF (WSABASEERR+9) #define WSAEACCES (WSABASEERR+13) #define WSAEFAULT (WSABASEERR+14) #define WSAEINVAL (WSABASEERR+22) #define WSAEMFILE (WSABASEERR+24) /* * Windows Sockets definitions of regular Berkeley error constants */ #define WSAEWOULDBLOCK (WSABASEERR+35) #define WSAEINPROGRESS (WSABASEERR+36) #define WSAEALREADY (WSABASEERR+37) #define WSAENOTSOCK (WSABASEERR+38) #define WSAEDESTADDRREQ (WSABASEERR+39) #define WSAEMSGSIZE (WSABASEERR+40) #define WSAEPROTOTYPE (WSABASEERR+41) #define WSAENOPROTOOPT (WSABASEERR+42) #define WSAEPROTONOSUPPORT (WSABASEERR+43) #define WSAESOCKTNOSUPPORT (WSABASEERR+44) #define WSAEOPNOTSUPP (WSABASEERR+45) #define WSAEPFNOSUPPORT (WSABASEERR+46) #define WSAEAFNOSUPPORT (WSABASEERR+47) #define WSAEADDRINUSE (WSABASEERR+48) #define WSAEADDRNOTAVAIL (WSABASEERR+49) #define WSAENETDOWN (WSABASEERR+50) #define WSAENETUNREACH (WSABASEERR+51) #define WSAENETRESET (WSABASEERR+52) #define WSAECONNABORTED (WSABASEERR+53) #define WSAECONNRESET (WSABASEERR+54) #define WSAENOBUFS (WSABASEERR+55) #define WSAEISCONN (WSABASEERR+56) #define WSAENOTCONN (WSABASEERR+57) #define WSAESHUTDOWN (WSABASEERR+58) #define WSAETOOMANYREFS (WSABASEERR+59) #define WSAETIMEDOUT (WSABASEERR+60) #define WSAECONNREFUSED (WSABASEERR+61) #define WSAELOOP (WSABASEERR+62) #define WSAENAMETOOLONG (WSABASEERR+63) #define WSAEHOSTDOWN (WSABASEERR+64) #define WSAEHOSTUNREACH (WSABASEERR+65) #define WSAENOTEMPTY (WSABASEERR+66) #define WSAEPROCLIM (WSABASEERR+67) #define WSAEUSERS (WSABASEERR+68) #define WSAEDQUOT (WSABASEERR+69) #define WSAESTALE (WSABASEERR+70) #define WSAEREMOTE (WSABASEERR+71) /* * Extended Windows Sockets error constant definitions */ #define WSASYSNOTREADY (WSABASEERR+91) #define WSAVERNOTSUPPORTED (WSABASEERR+92) #define WSANOTINITIALISED (WSABASEERR+93) #define WSAEDISCON (WSABASEERR+101) #define WSAENOMORE (WSABASEERR+102) #define WSAECANCELLED (WSABASEERR+103) #define WSAEINVALIDPROCTABLE (WSABASEERR+104) #define WSAEINVALIDPROVIDER (WSABASEERR+105) #define WSAEPROVIDERFAILEDINIT (WSABASEERR+106) #define WSASYSCALLFAILURE (WSABASEERR+107) #define WSASERVICE_NOT_FOUND (WSABASEERR+108) #define WSATYPE_NOT_FOUND (WSABASEERR+109) #define WSA_E_NO_MORE (WSABASEERR+110) #define WSA_E_CANCELLED (WSABASEERR+111) #define WSAEREFUSED (WSABASEERR+112) /* * Error return codes from gethostbyname() and gethostbyaddr() * (when using the resolver). Note that these errors are * retrieved via WSAGetLastError() and must therefore follow * the rules for avoiding clashes with error numbers from * specific implementations or language run-time systems. * For this reason the codes are based at WSABASEERR+1001. * Note also that [WSA]NO_ADDRESS is defined only for * compatibility purposes. */ /* Authoritative Answer: Host not found */ #define WSAHOST_NOT_FOUND (WSABASEERR+1001) /* Non-Authoritative: Host not found, or SERVERFAIL */ #define WSATRY_AGAIN (WSABASEERR+1002) /* Non-recoverable errors, FORMERR, REFUSED, NOTIMP */ #define WSANO_RECOVERY (WSABASEERR+1003) /* Valid name, no data record of requested type */ #define WSANO_DATA (WSABASEERR+1004) /* * Define QOS related error return codes * */ #define WSA_QOS_RECEIVERS (WSABASEERR + 1005) /* at least one Reserve has arrived */ #define WSA_QOS_SENDERS (WSABASEERR + 1006) /* at least one Path has arrived */ #define WSA_QOS_NO_SENDERS (WSABASEERR + 1007) /* there are no senders */ #define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008) /* there are no receivers */ #define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009) /* Reserve has been confirmed */ #define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010) /* error due to lack of resources */ #define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011) /* rejected for administrative reasons - bad credentials */ #define WSA_QOS_BAD_STYLE (WSABASEERR + 1012) /* unknown or conflicting style */ #define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013) /* problem with some part of the filterspec or providerspecific * buffer in general */ #define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014) /* problem with some part of the flowspec */ #define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015) /* general error */ #define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016) /* invalid service type in flowspec */ #define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017) /* invalid flowspec */ #define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018) /* invalid provider specific buffer */ #define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019) /* invalid filter style */ #define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020) /* invalid filter type */ #define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021) /* incorrect number of filters */ #define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022) /* invalid object length */ #define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023) /* incorrect number of flows */ #define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024) /* unknown object in provider specific buffer */ #define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025) /* invalid policy object in provider specific buffer */ #define WSA_QOS_EFLOWDESC (WSABASEERR + 1026) /* invalid flow descriptor in the list */ #define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027) /* inconsistent flow spec in provider specific buffer */ #define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028) /* invalid filter spec in provider specific buffer */ #define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029) /* invalid shape discard mode object in provider specific buffer */ #define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030) /* invalid shaping rate object in provider specific buffer */ #define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031) /* reserved policy element in provider specific buffer */ /* * WinSock error codes are also defined in winerror.h * Hence the IFDEF. */ #endif /* ifdef WSABASEERR */ /* * Compatibility macros. */ #define h_errno WSAGetLastError() #define HOST_NOT_FOUND WSAHOST_NOT_FOUND #define TRY_AGAIN WSATRY_AGAIN #define NO_RECOVERY WSANO_RECOVERY #define NO_DATA WSANO_DATA /* no address, look for MX record */ #define WSANO_ADDRESS WSANO_DATA #define NO_ADDRESS WSANO_ADDRESS /* * Windows Sockets errors redefined as regular Berkeley error constants. * These are commented out in Windows NT to avoid conflicts with errno.h. * Use the WSA constants instead. */ #if 0 #define EWOULDBLOCK WSAEWOULDBLOCK #define EINPROGRESS WSAEINPROGRESS #define EALREADY WSAEALREADY #define ENOTSOCK WSAENOTSOCK #define EDESTADDRREQ WSAEDESTADDRREQ #define EMSGSIZE WSAEMSGSIZE #define EPROTOTYPE WSAEPROTOTYPE #define ENOPROTOOPT WSAENOPROTOOPT #define EPROTONOSUPPORT WSAEPROTONOSUPPORT #define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT #define EOPNOTSUPP WSAEOPNOTSUPP #define EPFNOSUPPORT WSAEPFNOSUPPORT #define EAFNOSUPPORT WSAEAFNOSUPPORT #define EADDRINUSE WSAEADDRINUSE #define EADDRNOTAVAIL WSAEADDRNOTAVAIL #define ENETDOWN WSAENETDOWN #define ENETUNREACH WSAENETUNREACH #define ENETRESET WSAENETRESET #define ECONNABORTED WSAECONNABORTED #define ECONNRESET WSAECONNRESET #define ENOBUFS WSAENOBUFS #define EISCONN WSAEISCONN #define ENOTCONN WSAENOTCONN #define ESHUTDOWN WSAESHUTDOWN #define ETOOMANYREFS WSAETOOMANYREFS #define ETIMEDOUT WSAETIMEDOUT #define ECONNREFUSED WSAECONNREFUSED #define ELOOP WSAELOOP #define ENAMETOOLONG WSAENAMETOOLONG #define EHOSTDOWN WSAEHOSTDOWN #define EHOSTUNREACH WSAEHOSTUNREACH #define ENOTEMPTY WSAENOTEMPTY #define EPROCLIM WSAEPROCLIM #define EUSERS WSAEUSERS #define EDQUOT WSAEDQUOT #define ESTALE WSAESTALE #define EREMOTE WSAEREMOTE #endif /* * WinSock 2 extension -- new error codes and type definition */ #ifdef WIN32 #define WSAAPI FAR PASCAL #define WSAEVENT HANDLE #define LPWSAEVENT LPHANDLE #define WSAOVERLAPPED OVERLAPPED typedef struct _OVERLAPPED * LPWSAOVERLAPPED; #define WSA_IO_PENDING (ERROR_IO_PENDING) #define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE) #define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE) #define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER) #define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY) #define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED) #define WSA_INVALID_EVENT ((WSAEVENT)NULL) #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS) #define WSA_WAIT_FAILED (WAIT_FAILED) #define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0) #define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION) #define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT) #define WSA_INFINITE (INFINITE) #else /* WIN16 */ #define WSAAPI FAR PASCAL typedef DWORD WSAEVENT, FAR * LPWSAEVENT; typedef struct _WSAOVERLAPPED { DWORD Internal; DWORD InternalHigh; DWORD Offset; DWORD OffsetHigh; WSAEVENT hEvent; } WSAOVERLAPPED, FAR * LPWSAOVERLAPPED; #define WSA_IO_PENDING (WSAEWOULDBLOCK) #define WSA_IO_INCOMPLETE (WSAEWOULDBLOCK) #define WSA_INVALID_HANDLE (WSAENOTSOCK) #define WSA_INVALID_PARAMETER (WSAEINVAL) #define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS) #define WSA_OPERATION_ABORTED (WSAEINTR) #define WSA_INVALID_EVENT ((WSAEVENT)NULL) #define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS) #define WSA_WAIT_FAILED ((DWORD)-1L) #define WSA_WAIT_EVENT_0 ((DWORD)0) #define WSA_WAIT_TIMEOUT ((DWORD)0x102L) #define WSA_INFINITE ((DWORD)-1L) #endif /* WIN32 */ /* * WinSock 2 extension -- WSABUF and QOS struct, include qos.h * to pull in FLOWSPEC and related definitions */ typedef struct _WSABUF { u_long len; /* the length of the buffer */ char FAR * buf; /* the pointer to the buffer */ } WSABUF, FAR * LPWSABUF; #include typedef struct _QualityOfService { FLOWSPEC SendingFlowspec; /* the flow spec for data sending */ FLOWSPEC ReceivingFlowspec; /* the flow spec for data receiving */ WSABUF ProviderSpecific; /* additional provider specific stuff */ } QOS, FAR * LPQOS; /* * WinSock 2 extension -- manifest constants for return values of the condition function */ #define CF_ACCEPT 0x0000 #define CF_REJECT 0x0001 #define CF_DEFER 0x0002 /* * WinSock 2 extension -- manifest constants for shutdown() */ #define SD_RECEIVE 0x00 #define SD_SEND 0x01 #define SD_BOTH 0x02 /* * WinSock 2 extension -- data type and manifest constants for socket groups */ typedef unsigned int GROUP; #define SG_UNCONSTRAINED_GROUP 0x01 #define SG_CONSTRAINED_GROUP 0x02 /* * WinSock 2 extension -- data type for WSAEnumNetworkEvents() */ typedef struct _WSANETWORKEVENTS { long lNetworkEvents; int iErrorCode[FD_MAX_EVENTS]; } WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS; /* * WinSock 2 extension -- WSAPROTOCOL_INFO structure and associated * manifest constants */ #ifndef GUID_DEFINED #include #endif /* GUID_DEFINED */ #define MAX_PROTOCOL_CHAIN 7 #define BASE_PROTOCOL 1 #define LAYERED_PROTOCOL 0 typedef struct _WSAPROTOCOLCHAIN { int ChainLen; /* the length of the chain, */ /* length = 0 means layered protocol, */ /* length = 1 means base protocol, */ /* length > 1 means protocol chain */ DWORD ChainEntries[MAX_PROTOCOL_CHAIN]; /* a list of dwCatalogEntryIds */ } WSAPROTOCOLCHAIN, FAR * LPWSAPROTOCOLCHAIN; #define WSAPROTOCOL_LEN 255 typedef 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 szProtocol[WSAPROTOCOL_LEN+1]; } WSAPROTOCOL_INFOA, FAR * LPWSAPROTOCOL_INFOA; typedef 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 szProtocol[WSAPROTOCOL_LEN+1]; } WSAPROTOCOL_INFOW, FAR * LPWSAPROTOCOL_INFOW; #ifdef UNICODE typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO; typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO; #else typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO; typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO; #endif /* UNICODE */ /* Flag bit definitions for dwProviderFlags */ #define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001 #define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002 #define PFL_HIDDEN 0x00000004 #define PFL_MATCHES_PROTOCOL_ZERO 0x00000008 /* Flag bit definitions for dwServiceFlags1 */ #define XP1_CONNECTIONLESS 0x00000001 #define XP1_GUARANTEED_DELIVERY 0x00000002 #define XP1_GUARANTEED_ORDER 0x00000004 #define XP1_MESSAGE_ORIENTED 0x00000008 #define XP1_PSEUDO_STREAM 0x00000010 #define XP1_GRACEFUL_CLOSE 0x00000020 #define XP1_EXPEDITED_DATA 0x00000040 #define XP1_CONNECT_DATA 0x00000080 #define XP1_DISCONNECT_DATA 0x00000100 #define XP1_SUPPORT_BROADCAST 0x00000200 #define XP1_SUPPORT_MULTIPOINT 0x00000400 #define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800 #define XP1_MULTIPOINT_DATA_PLANE 0x00001000 #define XP1_QOS_SUPPORTED 0x00002000 #define XP1_INTERRUPT 0x00004000 #define XP1_UNI_SEND 0x00008000 #define XP1_UNI_RECV 0x00010000 #define XP1_IFS_HANDLES 0x00020000 #define XP1_PARTIAL_MESSAGE 0x00040000 #define BIGENDIAN 0x0000 #define LITTLEENDIAN 0x0001 #define SECURITY_PROTOCOL_NONE 0x0000 /* * WinSock 2 extension -- manifest constants for WSAJoinLeaf() */ #define JL_SENDER_ONLY 0x01 #define JL_RECEIVER_ONLY 0x02 #define JL_BOTH 0x04 /* * WinSock 2 extension -- manifest constants for WSASocket() */ #define WSA_FLAG_OVERLAPPED 0x01 #define WSA_FLAG_MULTIPOINT_C_ROOT 0x02 #define WSA_FLAG_MULTIPOINT_C_LEAF 0x04 #define WSA_FLAG_MULTIPOINT_D_ROOT 0x08 #define WSA_FLAG_MULTIPOINT_D_LEAF 0x10 /* * WinSock 2 extension -- manifest constants for WSAIoctl() */ #define IOC_UNIX 0x00000000 #define IOC_WS2 0x08000000 #define IOC_PROTOCOL 0x10000000 #define IOC_VENDOR 0x18000000 #define _WSAIO(x,y) (IOC_VOID|(x)|(y)) #define _WSAIOR(x,y) (IOC_OUT|(x)|(y)) #define _WSAIOW(x,y) (IOC_IN|(x)|(y)) #define _WSAIORW(x,y) (IOC_INOUT|(x)|(y)) #define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1) #define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2) #define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3) #define SIO_FLUSH _WSAIO(IOC_WS2,4) #define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5) #define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6) #define SIO_GET_QOS _WSAIORW(IOC_WS2,7) #define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8) #define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9) #define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10) #define SIO_SET_QOS _WSAIOW(IOC_WS2,11) #define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12) #define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13) #define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20) #define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21) #define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22) #define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23) #define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_WS2,24) #define SIO_ADDRESS_LIST_SORT _WSAIORW(IOC_WS2,25) /* * WinSock 2 extensions -- data types for the condition function in * WSAAccept() and overlapped I/O completion routine. */ typedef int (CALLBACK * LPCONDITIONPROC)( IN LPWSABUF lpCallerId, IN LPWSABUF lpCallerData, IN OUT LPQOS lpSQOS, IN OUT LPQOS lpGQOS, IN LPWSABUF lpCalleeId, IN LPWSABUF lpCalleeData, OUT GROUP FAR * g, IN DWORD_PTR dwCallbackData ); typedef void (CALLBACK * LPWSAOVERLAPPED_COMPLETION_ROUTINE)( IN DWORD dwError, IN DWORD cbTransferred, IN LPWSAOVERLAPPED lpOverlapped, IN DWORD dwFlags ); /* * WinSock 2 extension -- manifest constants and associated structures * for WSANSPIoctl() */ #define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25) typedef enum _WSACOMPLETIONTYPE { NSP_NOTIFY_IMMEDIATELY = 0, NSP_NOTIFY_HWND, NSP_NOTIFY_EVENT, NSP_NOTIFY_PORT, NSP_NOTIFY_APC, } WSACOMPLETIONTYPE, *PWSACOMPLETIONTYPE, FAR * LPWSACOMPLETIONTYPE; typedef struct _WSACOMPLETION { WSACOMPLETIONTYPE Type; union { struct { HWND hWnd; UINT uMsg; WPARAM context; } WindowMessage; struct { LPWSAOVERLAPPED lpOverlapped; } Event; struct { LPWSAOVERLAPPED lpOverlapped; LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc; } Apc; struct { LPWSAOVERLAPPED lpOverlapped; HANDLE hPort; ULONG_PTR Key; } Port; } Parameters; } WSACOMPLETION, *PWSACOMPLETION, FAR *LPWSACOMPLETION; /* * WinSock 2 extension -- manifest constants for SIO_TRANSLATE_HANDLE ioctl */ #define TH_NETDEV 0x00000001 #define TH_TAPI 0x00000002 /* * Microsoft Windows Extended data types required for the functions to * convert back and forth between binary and string forms of * addresses. */ typedef struct sockaddr SOCKADDR; typedef struct sockaddr *PSOCKADDR; typedef struct sockaddr FAR *LPSOCKADDR; typedef struct sockaddr_storage SOCKADDR_STORAGE; typedef struct sockaddr_storage *PSOCKADDR_STORAGE; typedef struct sockaddr_storage FAR *LPSOCKADDR_STORAGE; /* * Manifest constants and type definitions related to name resolution and * registration (RNR) API */ #ifndef _tagBLOB_DEFINED #define _tagBLOB_DEFINED #define _BLOB_DEFINED #define _LPBLOB_DEFINED typedef struct _BLOB { ULONG cbSize ; #ifdef MIDL_PASS [size_is(cbSize)] BYTE *pBlobData; #else /* MIDL_PASS */ BYTE *pBlobData ; #endif /* MIDL_PASS */ } BLOB, *LPBLOB ; #endif /* * Service Install Flags */ #define SERVICE_MULTIPLE (0x00000001) /* *& Name Spaces */ #define NS_ALL (0) #define NS_SAP (1) #define NS_NDS (2) #define NS_PEER_BROWSE (3) #define NS_SLP (5) #define NS_DHCP (6) #define NS_TCPIP_LOCAL (10) #define NS_TCPIP_HOSTS (11) #define NS_DNS (12) #define NS_NETBT (13) #define NS_WINS (14) #define NS_NLA (15) /* Network Location Awareness */ #define NS_NBP (20) #define NS_MS (30) #define NS_STDA (31) #define NS_NTDS (32) #define NS_X500 (40) #define NS_NIS (41) #define NS_NISPLUS (42) #define NS_WRQ (50) #define NS_NETDES (60) /* Network Designers Limited */ /* * Resolution flags for WSAGetAddressByName(). * Note these are also used by the 1.1 API GetAddressByName, so * leave them around. */ #define RES_UNUSED_1 (0x00000001) #define RES_FLUSH_CACHE (0x00000002) #ifndef RES_SERVICE #define RES_SERVICE (0x00000004) #endif /* RES_SERVICE */ /* * Well known value names for Service Types */ #define SERVICE_TYPE_VALUE_IPXPORTA "IpxSocket" #define SERVICE_TYPE_VALUE_IPXPORTW L"IpxSocket" #define SERVICE_TYPE_VALUE_SAPIDA "SapId" #define SERVICE_TYPE_VALUE_SAPIDW L"SapId" #define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort" #define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort" #define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort" #define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort" #define SERVICE_TYPE_VALUE_OBJECTIDA "ObjectId" #define SERVICE_TYPE_VALUE_OBJECTIDW L"ObjectId" #ifdef UNICODE #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDW #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTW #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTW #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDW #else /* not UNICODE */ #define SERVICE_TYPE_VALUE_SAPID SERVICE_TYPE_VALUE_SAPIDA #define SERVICE_TYPE_VALUE_TCPPORT SERVICE_TYPE_VALUE_TCPPORTA #define SERVICE_TYPE_VALUE_UDPPORT SERVICE_TYPE_VALUE_UDPPORTA #define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDA #endif #ifndef __CSADDR_DEFINED__ #define __CSADDR_DEFINED__ /* * SockAddr Information */ typedef struct _SOCKET_ADDRESS { LPSOCKADDR lpSockaddr ; INT iSockaddrLength ; } SOCKET_ADDRESS, *PSOCKET_ADDRESS, FAR * LPSOCKET_ADDRESS ; /* * CSAddr Information */ typedef struct _CSADDR_INFO { SOCKET_ADDRESS LocalAddr ; SOCKET_ADDRESS RemoteAddr ; INT iSocketType ; INT iProtocol ; } CSADDR_INFO, *PCSADDR_INFO, FAR * LPCSADDR_INFO ; #endif /* __CSADDR_DEFINED__ */ /* * Address list returned via SIO_ADDRESS_LIST_QUERY */ typedef struct _SOCKET_ADDRESS_LIST { INT iAddressCount; SOCKET_ADDRESS Address[1]; } SOCKET_ADDRESS_LIST, FAR * LPSOCKET_ADDRESS_LIST; /* * Address Family/Protocol Tuples */ typedef struct _AFPROTOCOLS { INT iAddressFamily; INT iProtocol; } AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS; /* * Client Query API Typedefs */ /* * The comparators */ typedef enum _WSAEcomparator { COMP_EQUAL = 0, COMP_NOTLESS } WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR; typedef struct _WSAVersion { DWORD dwVersion; WSAECOMPARATOR ecHow; }WSAVERSION, *PWSAVERSION, *LPWSAVERSION; typedef 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; } WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA; typedef 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; } WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW; #ifdef UNICODE typedef WSAQUERYSETW WSAQUERYSET; typedef PWSAQUERYSETW PWSAQUERYSET; typedef LPWSAQUERYSETW LPWSAQUERYSET; #else typedef WSAQUERYSETA WSAQUERYSET; typedef PWSAQUERYSETA PWSAQUERYSET; typedef LPWSAQUERYSETA LPWSAQUERYSET; #endif /* UNICODE */ #define LUP_DEEP 0x0001 #define LUP_CONTAINERS 0x0002 #define LUP_NOCONTAINERS 0x0004 #define LUP_NEAREST 0x0008 #define LUP_RETURN_NAME 0x0010 #define LUP_RETURN_TYPE 0x0020 #define LUP_RETURN_VERSION 0x0040 #define LUP_RETURN_COMMENT 0x0080 #define LUP_RETURN_ADDR 0x0100 #define LUP_RETURN_BLOB 0x0200 #define LUP_RETURN_ALIASES 0x0400 #define LUP_RETURN_QUERY_STRING 0x0800 #define LUP_RETURN_ALL 0x0FF0 #define LUP_RES_SERVICE 0x8000 #define LUP_FLUSHCACHE 0x1000 #define LUP_FLUSHPREVIOUS 0x2000 /* * Return flags */ #define RESULT_IS_ALIAS 0x0001 #define RESULT_IS_ADDED 0x0010 #define RESULT_IS_CHANGED 0x0020 #define RESULT_IS_DELETED 0x0040 /* * Service Address Registration and Deregistration Data Types. */ typedef enum _WSAESETSERVICEOP { RNRSERVICE_REGISTER=0, RNRSERVICE_DEREGISTER, RNRSERVICE_DELETE } WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP; /* * Service Installation/Removal Data Types. */ typedef struct _WSANSClassInfoA { LPSTR lpszName; DWORD dwNameSpace; DWORD dwValueType; DWORD dwValueSize; LPVOID lpValue; }WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA; typedef struct _WSANSClassInfoW { LPWSTR lpszName; DWORD dwNameSpace; DWORD dwValueType; DWORD dwValueSize; LPVOID lpValue; }WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW; #ifdef UNICODE typedef WSANSCLASSINFOW WSANSCLASSINFO; typedef PWSANSCLASSINFOW PWSANSCLASSINFO; typedef LPWSANSCLASSINFOW LPWSANSCLASSINFO; #else typedef WSANSCLASSINFOA WSANSCLASSINFO; typedef PWSANSCLASSINFOA PWSANSCLASSINFO; typedef LPWSANSCLASSINFOA LPWSANSCLASSINFO; #endif /* UNICODE */ typedef struct _WSAServiceClassInfoA { LPGUID lpServiceClassId; LPSTR lpszServiceClassName; DWORD dwCount; LPWSANSCLASSINFOA lpClassInfos; }WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA; typedef struct _WSAServiceClassInfoW { LPGUID lpServiceClassId; LPWSTR lpszServiceClassName; DWORD dwCount; LPWSANSCLASSINFOW lpClassInfos; }WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW; #ifdef UNICODE typedef WSASERVICECLASSINFOW WSASERVICECLASSINFO; typedef PWSASERVICECLASSINFOW PWSASERVICECLASSINFO; typedef LPWSASERVICECLASSINFOW LPWSASERVICECLASSINFO; #else typedef WSASERVICECLASSINFOA WSASERVICECLASSINFO; typedef PWSASERVICECLASSINFOA PWSASERVICECLASSINFO; typedef LPWSASERVICECLASSINFOA LPWSASERVICECLASSINFO; #endif /* UNICODE */ typedef struct _WSANAMESPACE_INFOA { GUID NSProviderId; DWORD dwNameSpace; BOOL fActive; DWORD dwVersion; LPSTR lpszIdentifier; } WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA; typedef struct _WSANAMESPACE_INFOW { GUID NSProviderId; DWORD dwNameSpace; BOOL fActive; DWORD dwVersion; LPWSTR lpszIdentifier; } WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW; #ifdef UNICODE typedef WSANAMESPACE_INFOW WSANAMESPACE_INFO; typedef PWSANAMESPACE_INFOW PWSANAMESPACE_INFO; typedef LPWSANAMESPACE_INFOW LPWSANAMESPACE_INFO; #else typedef WSANAMESPACE_INFOA WSANAMESPACE_INFO; typedef PWSANAMESPACE_INFOA PWSANAMESPACE_INFO; typedef LPWSANAMESPACE_INFOA LPWSANAMESPACE_INFO; #endif /* UNICODE */ /* Socket function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI accept( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT int FAR * addrlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_ACCEPT)( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT int FAR * addrlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI bind( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_BIND)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI closesocket( IN SOCKET s ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_CLOSESOCKET)( IN SOCKET s ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI connect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_CONNECT)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI ioctlsocket( IN SOCKET s, IN long cmd, IN OUT u_long FAR * argp ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_IOCTLSOCKET)( IN SOCKET s, IN long cmd, IN OUT u_long FAR * argp ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI getpeername( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETPEERNAME)( IN SOCKET s, IN struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI getsockname( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETSOCKNAME)( IN SOCKET s, OUT struct sockaddr FAR * name, IN OUT int FAR * namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI getsockopt( IN SOCKET s, IN int level, IN int optname, OUT char FAR * optval, IN OUT int FAR * optlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETSOCKOPT)( IN SOCKET s, IN int level, IN int optname, OUT char FAR * optval, IN OUT int FAR * optlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_long WSAAPI htonl( IN u_long hostlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_long (WSAAPI * LPFN_HTONL)( IN u_long hostlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_short WSAAPI htons( IN u_short hostshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_short (WSAAPI * LPFN_HTONS)( IN u_short hostshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE unsigned long WSAAPI inet_addr( IN const char FAR * cp ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef unsigned long (WSAAPI * LPFN_INET_ADDR)( IN const char FAR * cp ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE char FAR * WSAAPI inet_ntoa( IN struct in_addr in ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef char FAR * (WSAAPI * LPFN_INET_NTOA)( IN struct in_addr in ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI listen( IN SOCKET s, IN int backlog ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_LISTEN)( IN SOCKET s, IN int backlog ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_long WSAAPI ntohl( IN u_long netlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_long (WSAAPI * LPFN_NTOHL)( IN u_long netlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE u_short WSAAPI ntohs( IN u_short netshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef u_short (WSAAPI * LPFN_NTOHS)( IN u_short netshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI recv( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_RECV)( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI recvfrom( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags, OUT struct sockaddr FAR * from, IN OUT int FAR * fromlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_RECVFROM)( IN SOCKET s, OUT char FAR * buf, IN int len, IN int flags, OUT struct sockaddr FAR * from, IN OUT int FAR * fromlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI select( IN int nfds, IN OUT fd_set FAR * readfds, IN OUT fd_set FAR * writefds, IN OUT fd_set FAR *exceptfds, IN const struct timeval FAR * timeout ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SELECT)( IN int nfds, IN OUT fd_set FAR * readfds, IN OUT fd_set FAR * writefds, IN OUT fd_set FAR *exceptfds, IN const struct timeval FAR * timeout ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI send( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SEND)( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI sendto( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags, IN const struct sockaddr FAR * to, IN int tolen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SENDTO)( IN SOCKET s, IN const char FAR * buf, IN int len, IN int flags, IN const struct sockaddr FAR * to, IN int tolen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI setsockopt( IN SOCKET s, IN int level, IN int optname, IN const char FAR * optval, IN int optlen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SETSOCKOPT)( IN SOCKET s, IN int level, IN int optname, IN const char FAR * optval, IN int optlen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI shutdown( IN SOCKET s, IN int how ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_SHUTDOWN)( IN SOCKET s, IN int how ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI socket( IN int af, IN int type, IN int protocol ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_SOCKET)( IN int af, IN int type, IN int protocol ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Database function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct hostent FAR * WSAAPI gethostbyaddr( IN const char FAR * addr, IN int len, IN int type ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct hostent FAR * (WSAAPI * LPFN_GETHOSTBYADDR)( IN const char FAR * addr, IN int len, IN int type ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct hostent FAR * WSAAPI gethostbyname( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct hostent FAR * (WSAAPI * LPFN_GETHOSTBYNAME)( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI gethostname( OUT char FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_GETHOSTNAME)( OUT char FAR * name, IN int namelen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct servent FAR * WSAAPI getservbyport( IN int port, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct servent FAR * (WSAAPI * LPFN_GETSERVBYPORT)( IN int port, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct servent FAR * WSAAPI getservbyname( IN const char FAR * name, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct servent FAR * (WSAAPI * LPFN_GETSERVBYNAME)( IN const char FAR * name, IN const char FAR * proto ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct protoent FAR * WSAAPI getprotobynumber( IN int number ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct protoent FAR * (WSAAPI * LPFN_GETPROTOBYNUMBER)( IN int number ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE struct protoent FAR * WSAAPI getprotobyname( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef struct protoent FAR * (WSAAPI * LPFN_GETPROTOBYNAME)( IN const char FAR * name ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Microsoft Windows Extension function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAStartup( IN WORD wVersionRequested, OUT LPWSADATA lpWSAData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASTARTUP)( IN WORD wVersionRequested, OUT LPWSADATA lpWSAData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSACleanup( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACLEANUP)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE void WSAAPI WSASetLastError( IN int iError ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef void (WSAAPI * LPFN_WSASETLASTERROR)( IN int iError ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAGetLastError( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAGETLASTERROR)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAIsBlocking( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSAISBLOCKING)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAUnhookBlockingHook( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAUNHOOKBLOCKINGHOOK)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE FARPROC WSAAPI WSASetBlockingHook( IN FARPROC lpBlockFunc ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef FARPROC (WSAAPI * LPFN_WSASETBLOCKINGHOOK)( IN FARPROC lpBlockFunc ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSACancelBlockingCall( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACANCELBLOCKINGCALL)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetServByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETSERVBYNAME)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetServByPort( IN HWND hWnd, IN u_int wMsg, IN int port, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETSERVBYPORT)( IN HWND hWnd, IN u_int wMsg, IN int port, IN const char FAR * proto, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetProtoByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETPROTOBYNAME)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetProtoByNumber( IN HWND hWnd, IN u_int wMsg, IN int number, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETPROTOBYNUMBER)( IN HWND hWnd, IN u_int wMsg, IN int number, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByName( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETHOSTBYNAME)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * name, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByAddr( IN HWND hWnd, IN u_int wMsg, IN const char FAR * addr, IN int len, IN int type, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef HANDLE (WSAAPI * LPFN_WSAASYNCGETHOSTBYADDR)( IN HWND hWnd, IN u_int wMsg, IN const char FAR * addr, IN int len, IN int type, OUT char FAR * buf, IN int buflen ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSACancelAsyncRequest( IN HANDLE hAsyncTaskHandle ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACANCELASYNCREQUEST)( IN HANDLE hAsyncTaskHandle ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAAsyncSelect( IN SOCKET s, IN HWND hWnd, IN u_int wMsg, IN long lEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAASYNCSELECT)( IN SOCKET s, IN HWND hWnd, IN u_int wMsg, IN long lEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* WinSock 2 API new function prototypes */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI WSAAccept( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD_PTR dwCallbackData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_WSAACCEPT)( IN SOCKET s, OUT struct sockaddr FAR * addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD_PTR dwCallbackData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSACloseEvent( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSACLOSEEVENT)( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAConnect( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSACONNECT)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE WSAEVENT WSAAPI WSACreateEvent( void ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef WSAEVENT (WSAAPI * LPFN_WSACREATEEVENT)( void ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSADuplicateSocketA( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOA lpProtocolInfo ); WINSOCK_API_LINKAGE int WSAAPI WSADuplicateSocketW( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOW lpProtocolInfo ); #ifdef UNICODE #define WSADuplicateSocket WSADuplicateSocketW #else #define WSADuplicateSocket WSADuplicateSocketA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSADUPLICATESOCKETA)( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOA lpProtocolInfo ); typedef int (WSAAPI * LPFN_WSADUPLICATESOCKETW)( IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOW lpProtocolInfo ); #ifdef UNICODE #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETW #else #define LPFN_WSADUPLICATESOCKET LPFN_WSADUPLICATESOCKETA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAEnumNetworkEvents( IN SOCKET s, IN WSAEVENT hEventObject, OUT LPWSANETWORKEVENTS lpNetworkEvents ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAENUMNETWORKEVENTS)( IN SOCKET s, IN WSAEVENT hEventObject, OUT LPWSANETWORKEVENTS lpNetworkEvents ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAEnumProtocolsA( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); WINSOCK_API_LINKAGE int WSAAPI WSAEnumProtocolsW( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define WSAEnumProtocols WSAEnumProtocolsW #else #define WSAEnumProtocols WSAEnumProtocolsA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAENUMPROTOCOLSA)( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); typedef int (WSAAPI * LPFN_WSAENUMPROTOCOLSW)( IN LPINT lpiProtocols, OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSW #else #define LPFN_WSAENUMPROTOCOLS LPFN_WSAENUMPROTOCOLSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAEventSelect( IN SOCKET s, IN WSAEVENT hEventObject, IN long lNetworkEvents ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAEVENTSELECT)( IN SOCKET s, IN WSAEVENT hEventObject, IN long lNetworkEvents ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAGetOverlappedResult( IN SOCKET s, IN LPWSAOVERLAPPED lpOverlapped, OUT LPDWORD lpcbTransfer, IN BOOL fWait, OUT LPDWORD lpdwFlags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSAGETOVERLAPPEDRESULT)( IN SOCKET s, IN LPWSAOVERLAPPED lpOverlapped, OUT LPDWORD lpcbTransfer, IN BOOL fWait, OUT LPDWORD lpdwFlags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAGetQOSByName( IN SOCKET s, IN LPWSABUF lpQOSName, OUT LPQOS lpQOS ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSAGETQOSBYNAME)( IN SOCKET s, IN LPWSABUF lpQOSName, OUT LPQOS lpQOS ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAHtonl( IN SOCKET s, IN u_long hostlong, OUT u_long FAR * lpnetlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAHTONL)( IN SOCKET s, IN u_long hostlong, OUT u_long FAR * lpnetlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAHtons( IN SOCKET s, IN u_short hostshort, OUT u_short FAR * lpnetshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAHTONS)( IN SOCKET s, IN u_short hostshort, OUT u_short FAR * lpnetshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSAIoctl( IN SOCKET s, IN DWORD dwIoControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSAIOCTL)( IN SOCKET s, IN DWORD dwIoControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI WSAJoinLeaf( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, IN DWORD dwFlags ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_WSAJOINLEAF)( IN SOCKET s, IN const struct sockaddr FAR * name, IN int namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, IN DWORD dwFlags ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSANtohl( IN SOCKET s, IN u_long netlong, OUT u_long FAR * lphostlong ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSANTOHL)( IN SOCKET s, IN u_long netlong, OUT u_long FAR * lphostlong ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSANtohs( IN SOCKET s, IN u_short netshort, OUT u_short FAR * lphostshort ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSANTOHS)( IN SOCKET s, IN u_short netshort, OUT u_short FAR * lphostshort ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSARecv( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSARECV)( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSARecvDisconnect( IN SOCKET s, OUT LPWSABUF lpInboundDisconnectData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSARECVDISCONNECT)( IN SOCKET s, OUT LPWSABUF lpInboundDisconnectData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSARecvFrom( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, OUT struct sockaddr FAR * lpFrom, IN OUT LPINT lpFromlen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSARECVFROM)( IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, OUT struct sockaddr FAR * lpFrom, IN OUT LPINT lpFromlen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSAResetEvent( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSARESETEVENT)( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSASend( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASEND)( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSASendDisconnect( IN SOCKET s, IN LPWSABUF lpOutboundDisconnectData ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASENDDISCONNECT)( IN SOCKET s, IN LPWSABUF lpOutboundDisconnectData ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE int WSAAPI WSASendTo( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN const struct sockaddr FAR * lpTo, IN int iTolen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef int (WSAAPI * LPFN_WSASENDTO)( IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN const struct sockaddr FAR * lpTo, IN int iTolen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE BOOL WSAAPI WSASetEvent( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef BOOL (WSAAPI * LPFN_WSASETEVENT)( IN WSAEVENT hEvent ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE SOCKET WSAAPI WSASocketA( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); WINSOCK_API_LINKAGE SOCKET WSAAPI WSASocketW( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); #ifdef UNICODE #define WSASocket WSASocketW #else #define WSASocket WSASocketA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef SOCKET (WSAAPI * LPFN_WSASOCKETA)( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); typedef SOCKET (WSAAPI * LPFN_WSASOCKETW)( IN int af, IN int type, IN int protocol, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN GROUP g, IN DWORD dwFlags ); #ifdef UNICODE #define LPFN_WSASOCKET LPFN_WSASOCKETW #else #define LPFN_WSASOCKET LPFN_WSASOCKETA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE DWORD WSAAPI WSAWaitForMultipleEvents( IN DWORD cEvents, IN const WSAEVENT FAR * lphEvents, IN BOOL fWaitAll, IN DWORD dwTimeout, IN BOOL fAlertable ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef DWORD (WSAAPI * LPFN_WSAWAITFORMULTIPLEEVENTS)( IN DWORD cEvents, IN const WSAEVENT FAR * lphEvents, IN BOOL fWaitAll, IN DWORD dwTimeout, IN BOOL fAlertable ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAAddressToStringA( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN OUT LPSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); WINSOCK_API_LINKAGE INT WSAAPI WSAAddressToStringW( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); #ifdef UNICODE #define WSAAddressToString WSAAddressToStringW #else #define WSAAddressToString WSAAddressToStringA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAADDRESSTOSTRINGA)( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, IN OUT LPSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); typedef INT (WSAAPI * LPFN_WSAADDRESSTOSTRINGW)( IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength ); #ifdef UNICODE #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGW #else #define LPFN_WSAADDRESSTOSTRING LPFN_WSAADDRESSTOSTRINGA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAStringToAddressA( IN LPSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); WINSOCK_API_LINKAGE INT WSAAPI WSAStringToAddressW( IN LPWSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); #ifdef UNICODE #define WSAStringToAddress WSAStringToAddressW #else #define WSAStringToAddress WSAStringToAddressA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSASTRINGTOADDRESSA)( IN LPSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOA lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); typedef INT (WSAAPI * LPFN_WSASTRINGTOADDRESSW)( IN LPWSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength ); #ifdef UNICODE #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSW #else #define LPFN_WSASTRINGTOADDRESS LPFN_WSASTRINGTOADDRESSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Registration and Name Resolution API functions */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceBeginA( IN LPWSAQUERYSETA lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceBeginW( IN LPWSAQUERYSETW lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); #ifdef UNICODE #define WSALookupServiceBegin WSALookupServiceBeginW #else #define WSALookupServiceBegin WSALookupServiceBeginA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICEBEGINA)( IN LPWSAQUERYSETA lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICEBEGINW)( IN LPWSAQUERYSETW lpqsRestrictions, IN DWORD dwControlFlags, OUT LPHANDLE lphLookup ); #ifdef UNICODE #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINW #else #define LPFN_WSALOOKUPSERVICEBEGIN LPFN_WSALOOKUPSERVICEBEGINA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceNextA( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETA lpqsResults ); WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceNextW( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETW lpqsResults ); #ifdef UNICODE #define WSALookupServiceNext WSALookupServiceNextW #else #define WSALookupServiceNext WSALookupServiceNextA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICENEXTA)( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETA lpqsResults ); typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICENEXTW)( IN HANDLE hLookup, IN DWORD dwControlFlags, IN OUT LPDWORD lpdwBufferLength, OUT LPWSAQUERYSETW lpqsResults ); #ifdef UNICODE #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTW #else #define LPFN_WSALOOKUPSERVICENEXT LPFN_WSALOOKUPSERVICENEXTA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSANSPIoctl( IN HANDLE hLookup, IN DWORD dwControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSACOMPLETION lpCompletion ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSANSPIOCTL)( IN HANDLE hLookup, IN DWORD dwControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSACOMPLETION lpCompletion ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceEnd( IN HANDLE hLookup ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSALOOKUPSERVICEEND)( IN HANDLE hLookup ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAInstallServiceClassA( IN LPWSASERVICECLASSINFOA lpServiceClassInfo ); WINSOCK_API_LINKAGE INT WSAAPI WSAInstallServiceClassW( IN LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define WSAInstallServiceClass WSAInstallServiceClassW #else #define WSAInstallServiceClass WSAInstallServiceClassA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAINSTALLSERVICECLASSA)( IN LPWSASERVICECLASSINFOA lpServiceClassInfo ); typedef INT (WSAAPI * LPFN_WSAINSTALLSERVICECLASSW)( IN LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSW #else #define LPFN_WSAINSTALLSERVICECLASS LPFN_WSAINSTALLSERVICECLASSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSARemoveServiceClass( IN LPGUID lpServiceClassId ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAREMOVESERVICECLASS)( IN LPGUID lpServiceClassId ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassInfoA( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOA lpServiceClassInfo ); WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassInfoW( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define WSAGetServiceClassInfo WSAGetServiceClassInfoW #else #define WSAGetServiceClassInfo WSAGetServiceClassInfoA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSINFOA)( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOA lpServiceClassInfo ); typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSINFOW)( IN LPGUID lpProviderId, IN LPGUID lpServiceClassId, IN OUT LPDWORD lpdwBufSize, OUT LPWSASERVICECLASSINFOW lpServiceClassInfo ); #ifdef UNICODE #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOW #else #define LPFN_WSAGETSERVICECLASSINFO LPFN_WSAGETSERVICECLASSINFOA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAEnumNameSpaceProvidersA( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOA lpnspBuffer ); WINSOCK_API_LINKAGE INT WSAAPI WSAEnumNameSpaceProvidersW( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOW lpnspBuffer ); #ifdef UNICODE #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW #else #define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAENUMNAMESPACEPROVIDERSA)( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOA lpnspBuffer ); typedef INT (WSAAPI * LPFN_WSAENUMNAMESPACEPROVIDERSW)( IN OUT LPDWORD lpdwBufferLength, OUT LPWSANAMESPACE_INFOW lpnspBuffer ); #ifdef UNICODE #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW #else #define LPFN_WSAENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassNameByClassIdA( IN LPGUID lpServiceClassId, OUT LPSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassNameByClassIdW( IN LPGUID lpServiceClassId, OUT LPWSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW #else #define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)( IN LPGUID lpServiceClassId, OUT LPSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); typedef INT (WSAAPI * LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)( IN LPGUID lpServiceClassId, OUT LPWSTR lpszServiceClassName, IN OUT LPDWORD lpdwBufferLength ); #ifdef UNICODE #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW #else #define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceA( IN LPWSAQUERYSETA lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceW( IN LPWSAQUERYSETW lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); #ifdef UNICODE #define WSASetService WSASetServiceW #else #define WSASetService WSASetServiceA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSASETSERVICEA)( IN LPWSAQUERYSETA lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); typedef INT (WSAAPI * LPFN_WSASETSERVICEW)( IN LPWSAQUERYSETW lpqsRegInfo, IN WSAESETSERVICEOP essoperation, IN DWORD dwControlFlags ); #ifdef UNICODE #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEW #else #define LPFN_WSASETSERVICE LPFN_WSASETSERVICEA #endif /* !UNICODE */ #endif /* INCL_WINSOCK_API_TYPEDEFS */ #if INCL_WINSOCK_API_PROTOTYPES WINSOCK_API_LINKAGE INT WSAAPI WSAProviderConfigChange( IN OUT LPHANDLE lpNotificationHandle, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_PROTOTYPES */ #if INCL_WINSOCK_API_TYPEDEFS typedef INT (WSAAPI * LPFN_WSAPROVIDERCONFIGCHANGE)( IN OUT LPHANDLE lpNotificationHandle, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); #endif /* INCL_WINSOCK_API_TYPEDEFS */ /* Microsoft Windows Extended data types */ typedef struct sockaddr_in SOCKADDR_IN; typedef struct sockaddr_in *PSOCKADDR_IN; typedef struct sockaddr_in FAR *LPSOCKADDR_IN; typedef struct linger LINGER; typedef struct linger *PLINGER; typedef struct linger FAR *LPLINGER; typedef struct in_addr IN_ADDR; typedef struct in_addr *PIN_ADDR; typedef struct in_addr FAR *LPIN_ADDR; typedef struct fd_set FD_SET; typedef struct fd_set *PFD_SET; typedef struct fd_set FAR *LPFD_SET; typedef struct hostent HOSTENT; typedef struct hostent *PHOSTENT; typedef struct hostent FAR *LPHOSTENT; typedef struct servent SERVENT; typedef struct servent *PSERVENT; typedef struct servent FAR *LPSERVENT; typedef struct protoent PROTOENT; typedef struct protoent *PPROTOENT; typedef struct protoent FAR *LPPROTOENT; typedef struct timeval TIMEVAL; typedef struct timeval *PTIMEVAL; typedef struct timeval FAR *LPTIMEVAL; /* * Windows message parameter composition and decomposition * macros. * * WSAMAKEASYNCREPLY is intended for use by the Windows Sockets implementation * when constructing the response to a WSAAsyncGetXByY() routine. */ #define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error) /* * WSAMAKESELECTREPLY is intended for use by the Windows Sockets implementation * when constructing the response to WSAAsyncSelect(). */ #define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error) /* * WSAGETASYNCBUFLEN is intended for use by the Windows Sockets application * to extract the buffer length from the lParam in the response * to a WSAAsyncGetXByY(). */ #define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam) /* * WSAGETASYNCERROR is intended for use by the Windows Sockets application * to extract the error code from the lParam in the response * to a WSAGetXByY(). */ #define WSAGETASYNCERROR(lParam) HIWORD(lParam) /* * WSAGETSELECTEVENT is intended for use by the Windows Sockets application * to extract the event code from the lParam in the response * to a WSAAsyncSelect(). */ #define WSAGETSELECTEVENT(lParam) LOWORD(lParam) /* * WSAGETSELECTERROR is intended for use by the Windows Sockets application * to extract the error code from the lParam in the response * to a WSAAsyncSelect(). */ #define WSAGETSELECTERROR(lParam) HIWORD(lParam) #ifdef __cplusplus } #endif #if !defined(WIN32) && !defined(_WIN64) #include #endif #ifdef IPV6STRICT #include #endif // IPV6STRICT #endif /* _WINSOCK2API_ */ ================================================ FILE: Bin/i386/APILib/WinSpool.h ================================================ /*++ Copyright (c) 1990-1998 Microsoft Corporation Module Name: WinSpool.h Abstract: Header file for Print APIs Revision History: --*/ #ifndef _WINSPOOL_ #define _WINSPOOL_ #ifdef _WINUSER_ #include #endif #ifdef __cplusplus extern "C" { #endif typedef struct _PRINTER_INFO_1A { DWORD Flags; LPSTR pDescription; LPSTR pName; LPSTR pComment; } PRINTER_INFO_1A, *PPRINTER_INFO_1A, *LPPRINTER_INFO_1A; typedef struct _PRINTER_INFO_1W { DWORD Flags; LPWSTR pDescription; LPWSTR pName; LPWSTR pComment; } PRINTER_INFO_1W, *PPRINTER_INFO_1W, *LPPRINTER_INFO_1W; #ifdef UNICODE typedef PRINTER_INFO_1W PRINTER_INFO_1; typedef PPRINTER_INFO_1W PPRINTER_INFO_1; typedef LPPRINTER_INFO_1W LPPRINTER_INFO_1; #else typedef PRINTER_INFO_1A PRINTER_INFO_1; typedef PPRINTER_INFO_1A PPRINTER_INFO_1; typedef LPPRINTER_INFO_1A LPPRINTER_INFO_1; #endif // UNICODE typedef 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; } PRINTER_INFO_2A, *PPRINTER_INFO_2A, *LPPRINTER_INFO_2A; typedef 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; } PRINTER_INFO_2W, *PPRINTER_INFO_2W, *LPPRINTER_INFO_2W; #ifdef UNICODE typedef PRINTER_INFO_2W PRINTER_INFO_2; typedef PPRINTER_INFO_2W PPRINTER_INFO_2; typedef LPPRINTER_INFO_2W LPPRINTER_INFO_2; #else typedef PRINTER_INFO_2A PRINTER_INFO_2; typedef PPRINTER_INFO_2A PPRINTER_INFO_2; typedef LPPRINTER_INFO_2A LPPRINTER_INFO_2; #endif // UNICODE typedef struct _PRINTER_INFO_3 { PSECURITY_DESCRIPTOR pSecurityDescriptor; } PRINTER_INFO_3, *PPRINTER_INFO_3, *LPPRINTER_INFO_3; typedef struct _PRINTER_INFO_4A { LPSTR pPrinterName; LPSTR pServerName; DWORD Attributes; } PRINTER_INFO_4A, *PPRINTER_INFO_4A, *LPPRINTER_INFO_4A; typedef struct _PRINTER_INFO_4W { LPWSTR pPrinterName; LPWSTR pServerName; DWORD Attributes; } PRINTER_INFO_4W, *PPRINTER_INFO_4W, *LPPRINTER_INFO_4W; #ifdef UNICODE typedef PRINTER_INFO_4W PRINTER_INFO_4; typedef PPRINTER_INFO_4W PPRINTER_INFO_4; typedef LPPRINTER_INFO_4W LPPRINTER_INFO_4; #else typedef PRINTER_INFO_4A PRINTER_INFO_4; typedef PPRINTER_INFO_4A PPRINTER_INFO_4; typedef LPPRINTER_INFO_4A LPPRINTER_INFO_4; #endif // UNICODE typedef struct _PRINTER_INFO_5A { LPSTR pPrinterName; LPSTR pPortName; DWORD Attributes; DWORD DeviceNotSelectedTimeout; DWORD TransmissionRetryTimeout; } PRINTER_INFO_5A, *PPRINTER_INFO_5A, *LPPRINTER_INFO_5A; typedef struct _PRINTER_INFO_5W { LPWSTR pPrinterName; LPWSTR pPortName; DWORD Attributes; DWORD DeviceNotSelectedTimeout; DWORD TransmissionRetryTimeout; } PRINTER_INFO_5W, *PPRINTER_INFO_5W, *LPPRINTER_INFO_5W; #ifdef UNICODE typedef PRINTER_INFO_5W PRINTER_INFO_5; typedef PPRINTER_INFO_5W PPRINTER_INFO_5; typedef LPPRINTER_INFO_5W LPPRINTER_INFO_5; #else typedef PRINTER_INFO_5A PRINTER_INFO_5; typedef PPRINTER_INFO_5A PPRINTER_INFO_5; typedef LPPRINTER_INFO_5A LPPRINTER_INFO_5; #endif // UNICODE typedef struct _PRINTER_INFO_6 { DWORD dwStatus; } PRINTER_INFO_6, *PPRINTER_INFO_6, *LPPRINTER_INFO_6; typedef struct _PRINTER_INFO_7A { LPSTR pszObjectGUID; DWORD dwAction; } PRINTER_INFO_7A, *PPRINTER_INFO_7A, *LPPRINTER_INFO_7A; typedef struct _PRINTER_INFO_7W { LPWSTR pszObjectGUID; DWORD dwAction; } PRINTER_INFO_7W, *PPRINTER_INFO_7W, *LPPRINTER_INFO_7W; #ifdef UNICODE typedef PRINTER_INFO_7W PRINTER_INFO_7; typedef PPRINTER_INFO_7W PPRINTER_INFO_7; typedef LPPRINTER_INFO_7W LPPRINTER_INFO_7; #else typedef PRINTER_INFO_7A PRINTER_INFO_7; typedef PPRINTER_INFO_7A PPRINTER_INFO_7; typedef LPPRINTER_INFO_7A LPPRINTER_INFO_7; #endif // UNICODE #define DSPRINT_PUBLISH 0x00000001 #define DSPRINT_UPDATE 0x00000002 #define DSPRINT_UNPUBLISH 0x00000004 #define DSPRINT_REPUBLISH 0x00000008 #define DSPRINT_PENDING 0x80000000 typedef struct _PRINTER_INFO_8A { LPDEVMODEA pDevMode; } PRINTER_INFO_8A, *PPRINTER_INFO_8A, *LPPRINTER_INFO_8A; typedef struct _PRINTER_INFO_8W { LPDEVMODEW pDevMode; } PRINTER_INFO_8W, *PPRINTER_INFO_8W, *LPPRINTER_INFO_8W; #ifdef UNICODE typedef PRINTER_INFO_8W PRINTER_INFO_8; typedef PPRINTER_INFO_8W PPRINTER_INFO_8; typedef LPPRINTER_INFO_8W LPPRINTER_INFO_8; #else typedef PRINTER_INFO_8A PRINTER_INFO_8; typedef PPRINTER_INFO_8A PPRINTER_INFO_8; typedef LPPRINTER_INFO_8A LPPRINTER_INFO_8; #endif // UNICODE typedef struct _PRINTER_INFO_9A { LPDEVMODEA pDevMode; } PRINTER_INFO_9A, *PPRINTER_INFO_9A, *LPPRINTER_INFO_9A; typedef struct _PRINTER_INFO_9W { LPDEVMODEW pDevMode; } PRINTER_INFO_9W, *PPRINTER_INFO_9W, *LPPRINTER_INFO_9W; #ifdef UNICODE typedef PRINTER_INFO_9W PRINTER_INFO_9; typedef PPRINTER_INFO_9W PPRINTER_INFO_9; typedef LPPRINTER_INFO_9W LPPRINTER_INFO_9; #else typedef PRINTER_INFO_9A PRINTER_INFO_9; typedef PPRINTER_INFO_9A PPRINTER_INFO_9; typedef LPPRINTER_INFO_9A LPPRINTER_INFO_9; #endif // UNICODE #define PRINTER_CONTROL_PAUSE 1 #define PRINTER_CONTROL_RESUME 2 #define PRINTER_CONTROL_PURGE 3 #define PRINTER_CONTROL_SET_STATUS 4 #define PRINTER_STATUS_PAUSED 0x00000001 #define PRINTER_STATUS_ERROR 0x00000002 #define PRINTER_STATUS_PENDING_DELETION 0x00000004 #define PRINTER_STATUS_PAPER_JAM 0x00000008 #define PRINTER_STATUS_PAPER_OUT 0x00000010 #define PRINTER_STATUS_MANUAL_FEED 0x00000020 #define PRINTER_STATUS_PAPER_PROBLEM 0x00000040 #define PRINTER_STATUS_OFFLINE 0x00000080 #define PRINTER_STATUS_IO_ACTIVE 0x00000100 #define PRINTER_STATUS_BUSY 0x00000200 #define PRINTER_STATUS_PRINTING 0x00000400 #define PRINTER_STATUS_OUTPUT_BIN_FULL 0x00000800 #define PRINTER_STATUS_NOT_AVAILABLE 0x00001000 #define PRINTER_STATUS_WAITING 0x00002000 #define PRINTER_STATUS_PROCESSING 0x00004000 #define PRINTER_STATUS_INITIALIZING 0x00008000 #define PRINTER_STATUS_WARMING_UP 0x00010000 #define PRINTER_STATUS_TONER_LOW 0x00020000 #define PRINTER_STATUS_NO_TONER 0x00040000 #define PRINTER_STATUS_PAGE_PUNT 0x00080000 #define PRINTER_STATUS_USER_INTERVENTION 0x00100000 #define PRINTER_STATUS_OUT_OF_MEMORY 0x00200000 #define PRINTER_STATUS_DOOR_OPEN 0x00400000 #define PRINTER_STATUS_SERVER_UNKNOWN 0x00800000 #define PRINTER_STATUS_POWER_SAVE 0x01000000 #define PRINTER_ATTRIBUTE_QUEUED 0x00000001 #define PRINTER_ATTRIBUTE_DIRECT 0x00000002 #define PRINTER_ATTRIBUTE_DEFAULT 0x00000004 #define PRINTER_ATTRIBUTE_SHARED 0x00000008 #define PRINTER_ATTRIBUTE_NETWORK 0x00000010 #define PRINTER_ATTRIBUTE_HIDDEN 0x00000020 #define PRINTER_ATTRIBUTE_LOCAL 0x00000040 #define PRINTER_ATTRIBUTE_ENABLE_DEVQ 0x00000080 #define PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS 0x00000100 #define PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST 0x00000200 #define PRINTER_ATTRIBUTE_WORK_OFFLINE 0x00000400 #define PRINTER_ATTRIBUTE_ENABLE_BIDI 0x00000800 #define PRINTER_ATTRIBUTE_RAW_ONLY 0x00001000 #define PRINTER_ATTRIBUTE_PUBLISHED 0x00002000 #define PRINTER_ATTRIBUTE_FAX 0x00004000 #define PRINTER_ATTRIBUTE_TS 0x00008000 #define NO_PRIORITY 0 #define MAX_PRIORITY 99 #define MIN_PRIORITY 1 #define DEF_PRIORITY 1 typedef 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; } JOB_INFO_1A, *PJOB_INFO_1A, *LPJOB_INFO_1A; typedef 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; } JOB_INFO_1W, *PJOB_INFO_1W, *LPJOB_INFO_1W; #ifdef UNICODE typedef JOB_INFO_1W JOB_INFO_1; typedef PJOB_INFO_1W PJOB_INFO_1; typedef LPJOB_INFO_1W LPJOB_INFO_1; #else typedef JOB_INFO_1A JOB_INFO_1; typedef PJOB_INFO_1A PJOB_INFO_1; typedef LPJOB_INFO_1A LPJOB_INFO_1; #endif // UNICODE typedef 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; // Time the job was spooled DWORD Time; // How many miliseconds the job has been printing DWORD PagesPrinted; } JOB_INFO_2A, *PJOB_INFO_2A, *LPJOB_INFO_2A; typedef 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; // Time the job was spooled DWORD Time; // How many miliseconds the job has been printing DWORD PagesPrinted; } JOB_INFO_2W, *PJOB_INFO_2W, *LPJOB_INFO_2W; #ifdef UNICODE typedef JOB_INFO_2W JOB_INFO_2; typedef PJOB_INFO_2W PJOB_INFO_2; typedef LPJOB_INFO_2W LPJOB_INFO_2; #else typedef JOB_INFO_2A JOB_INFO_2; typedef PJOB_INFO_2A PJOB_INFO_2; typedef LPJOB_INFO_2A LPJOB_INFO_2; #endif // UNICODE typedef struct _JOB_INFO_3 { DWORD JobId; DWORD NextJobId; DWORD Reserved; } JOB_INFO_3, *PJOB_INFO_3, *LPJOB_INFO_3; #define JOB_CONTROL_PAUSE 1 #define JOB_CONTROL_RESUME 2 #define JOB_CONTROL_CANCEL 3 #define JOB_CONTROL_RESTART 4 #define JOB_CONTROL_DELETE 5 #define JOB_CONTROL_SENT_TO_PRINTER 6 #define JOB_CONTROL_LAST_PAGE_EJECTED 7 #define JOB_STATUS_PAUSED 0x00000001 #define JOB_STATUS_ERROR 0x00000002 #define JOB_STATUS_DELETING 0x00000004 #define JOB_STATUS_SPOOLING 0x00000008 #define JOB_STATUS_PRINTING 0x00000010 #define JOB_STATUS_OFFLINE 0x00000020 #define JOB_STATUS_PAPEROUT 0x00000040 #define JOB_STATUS_PRINTED 0x00000080 #define JOB_STATUS_DELETED 0x00000100 #define JOB_STATUS_BLOCKED_DEVQ 0x00000200 #define JOB_STATUS_USER_INTERVENTION 0x00000400 #define JOB_STATUS_RESTART 0x00000800 #define JOB_STATUS_COMPLETE 0x00001000 #define JOB_POSITION_UNSPECIFIED 0 typedef struct _ADDJOB_INFO_1A { LPSTR Path; DWORD JobId; } ADDJOB_INFO_1A, *PADDJOB_INFO_1A, *LPADDJOB_INFO_1A; typedef struct _ADDJOB_INFO_1W { LPWSTR Path; DWORD JobId; } ADDJOB_INFO_1W, *PADDJOB_INFO_1W, *LPADDJOB_INFO_1W; #ifdef UNICODE typedef ADDJOB_INFO_1W ADDJOB_INFO_1; typedef PADDJOB_INFO_1W PADDJOB_INFO_1; typedef LPADDJOB_INFO_1W LPADDJOB_INFO_1; #else typedef ADDJOB_INFO_1A ADDJOB_INFO_1; typedef PADDJOB_INFO_1A PADDJOB_INFO_1; typedef LPADDJOB_INFO_1A LPADDJOB_INFO_1; #endif // UNICODE typedef struct _DRIVER_INFO_1A { LPSTR pName; // QMS 810 } DRIVER_INFO_1A, *PDRIVER_INFO_1A, *LPDRIVER_INFO_1A; typedef struct _DRIVER_INFO_1W { LPWSTR pName; // QMS 810 } DRIVER_INFO_1W, *PDRIVER_INFO_1W, *LPDRIVER_INFO_1W; #ifdef UNICODE typedef DRIVER_INFO_1W DRIVER_INFO_1; typedef PDRIVER_INFO_1W PDRIVER_INFO_1; typedef LPDRIVER_INFO_1W LPDRIVER_INFO_1; #else typedef DRIVER_INFO_1A DRIVER_INFO_1; typedef PDRIVER_INFO_1A PDRIVER_INFO_1; typedef LPDRIVER_INFO_1A LPDRIVER_INFO_1; #endif // UNICODE typedef struct _DRIVER_INFO_2A { DWORD cVersion; LPSTR pName; // QMS 810 LPSTR pEnvironment; // Win32 x86 LPSTR pDriverPath; // c:\drivers\pscript.dll LPSTR pDataFile; // c:\drivers\QMS810.PPD LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL } DRIVER_INFO_2A, *PDRIVER_INFO_2A, *LPDRIVER_INFO_2A; typedef struct _DRIVER_INFO_2W { DWORD cVersion; LPWSTR pName; // QMS 810 LPWSTR pEnvironment; // Win32 x86 LPWSTR pDriverPath; // c:\drivers\pscript.dll LPWSTR pDataFile; // c:\drivers\QMS810.PPD LPWSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL } DRIVER_INFO_2W, *PDRIVER_INFO_2W, *LPDRIVER_INFO_2W; #ifdef UNICODE typedef DRIVER_INFO_2W DRIVER_INFO_2; typedef PDRIVER_INFO_2W PDRIVER_INFO_2; typedef LPDRIVER_INFO_2W LPDRIVER_INFO_2; #else typedef DRIVER_INFO_2A DRIVER_INFO_2; typedef PDRIVER_INFO_2A PDRIVER_INFO_2; typedef LPDRIVER_INFO_2A LPDRIVER_INFO_2; #endif // UNICODE typedef struct _DRIVER_INFO_3A { DWORD cVersion; LPSTR pName; // QMS 810 LPSTR pEnvironment; // Win32 x86 LPSTR pDriverPath; // c:\drivers\pscript.dll LPSTR pDataFile; // c:\drivers\QMS810.PPD LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL LPSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP LPSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0 LPSTR pMonitorName; // "PJL monitor" LPSTR pDefaultDataType; // "EMF" } DRIVER_INFO_3A, *PDRIVER_INFO_3A, *LPDRIVER_INFO_3A; typedef struct _DRIVER_INFO_3W { DWORD cVersion; LPWSTR pName; // QMS 810 LPWSTR pEnvironment; // Win32 x86 LPWSTR pDriverPath; // c:\drivers\pscript.dll LPWSTR pDataFile; // c:\drivers\QMS810.PPD LPWSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL LPWSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP LPWSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0 LPWSTR pMonitorName; // "PJL monitor" LPWSTR pDefaultDataType; // "EMF" } DRIVER_INFO_3W, *PDRIVER_INFO_3W, *LPDRIVER_INFO_3W; #ifdef UNICODE typedef DRIVER_INFO_3W DRIVER_INFO_3; typedef PDRIVER_INFO_3W PDRIVER_INFO_3; typedef LPDRIVER_INFO_3W LPDRIVER_INFO_3; #else typedef DRIVER_INFO_3A DRIVER_INFO_3; typedef PDRIVER_INFO_3A PDRIVER_INFO_3; typedef LPDRIVER_INFO_3A LPDRIVER_INFO_3; #endif // UNICODE typedef struct _DRIVER_INFO_4A { DWORD cVersion; LPSTR pName; // QMS 810 LPSTR pEnvironment; // Win32 x86 LPSTR pDriverPath; // c:\drivers\pscript.dll LPSTR pDataFile; // c:\drivers\QMS810.PPD LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL LPSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP LPSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0 LPSTR pMonitorName; // "PJL monitor" LPSTR pDefaultDataType; // "EMF" LPSTR pszzPreviousNames; // "OldName1\0OldName2\0\0 } DRIVER_INFO_4A, *PDRIVER_INFO_4A, *LPDRIVER_INFO_4A; typedef struct _DRIVER_INFO_4W { DWORD cVersion; LPWSTR pName; // QMS 810 LPWSTR pEnvironment; // Win32 x86 LPWSTR pDriverPath; // c:\drivers\pscript.dll LPWSTR pDataFile; // c:\drivers\QMS810.PPD LPWSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL LPWSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP LPWSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0 LPWSTR pMonitorName; // "PJL monitor" LPWSTR pDefaultDataType; // "EMF" LPWSTR pszzPreviousNames; // "OldName1\0OldName2\0\0 } DRIVER_INFO_4W, *PDRIVER_INFO_4W, *LPDRIVER_INFO_4W; #ifdef UNICODE typedef DRIVER_INFO_4W DRIVER_INFO_4; typedef PDRIVER_INFO_4W PDRIVER_INFO_4; typedef LPDRIVER_INFO_4W LPDRIVER_INFO_4; #else typedef DRIVER_INFO_4A DRIVER_INFO_4; typedef PDRIVER_INFO_4A PDRIVER_INFO_4; typedef LPDRIVER_INFO_4A LPDRIVER_INFO_4; #endif // UNICODE typedef struct _DRIVER_INFO_5A { DWORD cVersion; LPSTR pName; // QMS 810 LPSTR pEnvironment; // Win32 x86 LPSTR pDriverPath; // c:\drivers\pscript.dll LPSTR pDataFile; // c:\drivers\QMS810.PPD LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL DWORD dwDriverAttributes; // driver attributes (like UMPD/KMPD) DWORD dwConfigVersion; // version number of the config file since reboot DWORD dwDriverVersion; // version number of the driver file since reboot } DRIVER_INFO_5A, *PDRIVER_INFO_5A, *LPDRIVER_INFO_5A; typedef struct _DRIVER_INFO_5W { DWORD cVersion; LPWSTR pName; // QMS 810 LPWSTR pEnvironment; // Win32 x86 LPWSTR pDriverPath; // c:\drivers\pscript.dll LPWSTR pDataFile; // c:\drivers\QMS810.PPD LPWSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL DWORD dwDriverAttributes; // driver attributes (like UMPD/KMPD) DWORD dwConfigVersion; // version number of the config file since reboot DWORD dwDriverVersion; // version number of the driver file since reboot } DRIVER_INFO_5W, *PDRIVER_INFO_5W, *LPDRIVER_INFO_5W; #ifdef UNICODE typedef DRIVER_INFO_5W DRIVER_INFO_5; typedef PDRIVER_INFO_5W PDRIVER_INFO_5; typedef LPDRIVER_INFO_5W LPDRIVER_INFO_5; #else typedef DRIVER_INFO_5A DRIVER_INFO_5; typedef PDRIVER_INFO_5A PDRIVER_INFO_5; typedef LPDRIVER_INFO_5A LPDRIVER_INFO_5; #endif // UNICODE typedef struct _DRIVER_INFO_6A { DWORD cVersion; LPSTR pName; // QMS 810 LPSTR pEnvironment; // Win32 x86 LPSTR pDriverPath; // c:\drivers\pscript.dll LPSTR pDataFile; // c:\drivers\QMS810.PPD LPSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL LPSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP LPSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0 LPSTR pMonitorName; // "PJL monitor" LPSTR pDefaultDataType; // "EMF" LPSTR pszzPreviousNames; // "OldName1\0OldName2\0\0 FILETIME ftDriverDate; DWORDLONG dwlDriverVersion; LPSTR pszMfgName; LPSTR pszOEMUrl; LPSTR pszHardwareID; LPSTR pszProvider; } DRIVER_INFO_6A, *PDRIVER_INFO_6A, *LPDRIVER_INFO_6A; typedef struct _DRIVER_INFO_6W { DWORD cVersion; LPWSTR pName; // QMS 810 LPWSTR pEnvironment; // Win32 x86 LPWSTR pDriverPath; // c:\drivers\pscript.dll LPWSTR pDataFile; // c:\drivers\QMS810.PPD LPWSTR pConfigFile; // c:\drivers\PSCRPTUI.DLL LPWSTR pHelpFile; // c:\drivers\PSCRPTUI.HLP LPWSTR pDependentFiles; // PSCRIPT.DLL\0QMS810.PPD\0PSCRIPTUI.DLL\0PSCRIPTUI.HLP\0PSTEST.TXT\0\0 LPWSTR pMonitorName; // "PJL monitor" LPWSTR pDefaultDataType; // "EMF" LPWSTR pszzPreviousNames; // "OldName1\0OldName2\0\0 FILETIME ftDriverDate; DWORDLONG dwlDriverVersion; LPWSTR pszMfgName; LPWSTR pszOEMUrl; LPWSTR pszHardwareID; LPWSTR pszProvider; } DRIVER_INFO_6W, *PDRIVER_INFO_6W, *LPDRIVER_INFO_6W; #ifdef UNICODE typedef DRIVER_INFO_6W DRIVER_INFO_6; typedef PDRIVER_INFO_6W PDRIVER_INFO_6; typedef LPDRIVER_INFO_6W LPDRIVER_INFO_6; #else typedef DRIVER_INFO_6A DRIVER_INFO_6; typedef PDRIVER_INFO_6A PDRIVER_INFO_6; typedef LPDRIVER_INFO_6A LPDRIVER_INFO_6; #endif // UNICODE // FLAGS for dwDriverAttributes #define DRIVER_KERNELMODE 0x00000001 #define DRIVER_USERMODE 0x00000002 // FLAGS for DeletePrinterDriverEx. #define DPD_DELETE_UNUSED_FILES 0x00000001 #define DPD_DELETE_SPECIFIC_VERSION 0x00000002 #define DPD_DELETE_ALL_FILES 0x00000004 // FLAGS for AddPrinterDriverEx. #define APD_STRICT_UPGRADE 0x00000001 #define APD_STRICT_DOWNGRADE 0x00000002 #define APD_COPY_ALL_FILES 0x00000004 #define APD_COPY_NEW_FILES 0x00000008 #define APD_COPY_FROM_DIRECTORY 0x00000010 // String for EnumPrinterDrivers. Used by Windows Update typedef struct _DOC_INFO_1A { LPSTR pDocName; LPSTR pOutputFile; LPSTR pDatatype; } DOC_INFO_1A, *PDOC_INFO_1A, *LPDOC_INFO_1A; typedef struct _DOC_INFO_1W { LPWSTR pDocName; LPWSTR pOutputFile; LPWSTR pDatatype; } DOC_INFO_1W, *PDOC_INFO_1W, *LPDOC_INFO_1W; #ifdef UNICODE typedef DOC_INFO_1W DOC_INFO_1; typedef PDOC_INFO_1W PDOC_INFO_1; typedef LPDOC_INFO_1W LPDOC_INFO_1; #else typedef DOC_INFO_1A DOC_INFO_1; typedef PDOC_INFO_1A PDOC_INFO_1; typedef LPDOC_INFO_1A LPDOC_INFO_1; #endif // UNICODE typedef struct _FORM_INFO_1A { DWORD Flags; LPSTR pName; SIZEL Size; RECTL ImageableArea; } FORM_INFO_1A, *PFORM_INFO_1A, *LPFORM_INFO_1A; typedef struct _FORM_INFO_1W { DWORD Flags; LPWSTR pName; SIZEL Size; RECTL ImageableArea; } FORM_INFO_1W, *PFORM_INFO_1W, *LPFORM_INFO_1W; #ifdef UNICODE typedef FORM_INFO_1W FORM_INFO_1; typedef PFORM_INFO_1W PFORM_INFO_1; typedef LPFORM_INFO_1W LPFORM_INFO_1; #else typedef FORM_INFO_1A FORM_INFO_1; typedef PFORM_INFO_1A PFORM_INFO_1; typedef LPFORM_INFO_1A LPFORM_INFO_1; #endif // UNICODE typedef struct _DOC_INFO_2A { LPSTR pDocName; LPSTR pOutputFile; LPSTR pDatatype; DWORD dwMode; DWORD JobId; } DOC_INFO_2A, *PDOC_INFO_2A, *LPDOC_INFO_2A; typedef struct _DOC_INFO_2W { LPWSTR pDocName; LPWSTR pOutputFile; LPWSTR pDatatype; DWORD dwMode; DWORD JobId; } DOC_INFO_2W, *PDOC_INFO_2W, *LPDOC_INFO_2W; #ifdef UNICODE typedef DOC_INFO_2W DOC_INFO_2; typedef PDOC_INFO_2W PDOC_INFO_2; typedef LPDOC_INFO_2W LPDOC_INFO_2; #else typedef DOC_INFO_2A DOC_INFO_2; typedef PDOC_INFO_2A PDOC_INFO_2; typedef LPDOC_INFO_2A LPDOC_INFO_2; #endif // UNICODE #define DI_CHANNEL 1 // start direct read/write channel, #define DI_READ_SPOOL_JOB 3 typedef struct _DOC_INFO_3A { LPSTR pDocName; LPSTR pOutputFile; LPSTR pDatatype; DWORD dwFlags; } DOC_INFO_3A, *PDOC_INFO_3A, *LPDOC_INFO_3A; typedef struct _DOC_INFO_3W { LPWSTR pDocName; LPWSTR pOutputFile; LPWSTR pDatatype; DWORD dwFlags; } DOC_INFO_3W, *PDOC_INFO_3W, *LPDOC_INFO_3W; #ifdef UNICODE typedef DOC_INFO_3W DOC_INFO_3; typedef PDOC_INFO_3W PDOC_INFO_3; typedef LPDOC_INFO_3W LPDOC_INFO_3; #else typedef DOC_INFO_3A DOC_INFO_3; typedef PDOC_INFO_3A PDOC_INFO_3; typedef LPDOC_INFO_3A LPDOC_INFO_3; #endif // UNICODE #define DI_MEMORYMAP_WRITE 0x00000001 #define FORM_USER 0x00000000 #define FORM_BUILTIN 0x00000001 #define FORM_PRINTER 0x00000002 typedef struct _PRINTPROCESSOR_INFO_1A { LPSTR pName; } PRINTPROCESSOR_INFO_1A, *PPRINTPROCESSOR_INFO_1A, *LPPRINTPROCESSOR_INFO_1A; typedef struct _PRINTPROCESSOR_INFO_1W { LPWSTR pName; } PRINTPROCESSOR_INFO_1W, *PPRINTPROCESSOR_INFO_1W, *LPPRINTPROCESSOR_INFO_1W; #ifdef UNICODE typedef PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_INFO_1; typedef PPRINTPROCESSOR_INFO_1W PPRINTPROCESSOR_INFO_1; typedef LPPRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1; #else typedef PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1; typedef PPRINTPROCESSOR_INFO_1A PPRINTPROCESSOR_INFO_1; typedef LPPRINTPROCESSOR_INFO_1A LPPRINTPROCESSOR_INFO_1; #endif // UNICODE typedef struct _PRINTPROCESSOR_CAPS_1 { DWORD dwLevel; DWORD dwNupOptions; DWORD dwPageOrderFlags; DWORD dwNumberOfCopies; } PRINTPROCESSOR_CAPS_1, *PPRINTPROCESSOR_CAPS_1; #define NORMAL_PRINT 0x00000000 #define REVERSE_PRINT 0x00000001 typedef struct _PORT_INFO_1A { LPSTR pName; } PORT_INFO_1A, *PPORT_INFO_1A, *LPPORT_INFO_1A; typedef struct _PORT_INFO_1W { LPWSTR pName; } PORT_INFO_1W, *PPORT_INFO_1W, *LPPORT_INFO_1W; #ifdef UNICODE typedef PORT_INFO_1W PORT_INFO_1; typedef PPORT_INFO_1W PPORT_INFO_1; typedef LPPORT_INFO_1W LPPORT_INFO_1; #else typedef PORT_INFO_1A PORT_INFO_1; typedef PPORT_INFO_1A PPORT_INFO_1; typedef LPPORT_INFO_1A LPPORT_INFO_1; #endif // UNICODE typedef struct _PORT_INFO_2A { LPSTR pPortName; LPSTR pMonitorName; LPSTR pDescription; DWORD fPortType; DWORD Reserved; } PORT_INFO_2A, *PPORT_INFO_2A, *LPPORT_INFO_2A; typedef struct _PORT_INFO_2W { LPWSTR pPortName; LPWSTR pMonitorName; LPWSTR pDescription; DWORD fPortType; DWORD Reserved; } PORT_INFO_2W, *PPORT_INFO_2W, *LPPORT_INFO_2W; #ifdef UNICODE typedef PORT_INFO_2W PORT_INFO_2; typedef PPORT_INFO_2W PPORT_INFO_2; typedef LPPORT_INFO_2W LPPORT_INFO_2; #else typedef PORT_INFO_2A PORT_INFO_2; typedef PPORT_INFO_2A PPORT_INFO_2; typedef LPPORT_INFO_2A LPPORT_INFO_2; #endif // UNICODE #define PORT_TYPE_WRITE 0x0001 #define PORT_TYPE_READ 0x0002 #define PORT_TYPE_REDIRECTED 0x0004 #define PORT_TYPE_NET_ATTACHED 0x0008 typedef struct _PORT_INFO_3A { DWORD dwStatus; LPSTR pszStatus; DWORD dwSeverity; } PORT_INFO_3A, *PPORT_INFO_3A, *LPPORT_INFO_3A; typedef struct _PORT_INFO_3W { DWORD dwStatus; LPWSTR pszStatus; DWORD dwSeverity; } PORT_INFO_3W, *PPORT_INFO_3W, *LPPORT_INFO_3W; #ifdef UNICODE typedef PORT_INFO_3W PORT_INFO_3; typedef PPORT_INFO_3W PPORT_INFO_3; typedef LPPORT_INFO_3W LPPORT_INFO_3; #else typedef PORT_INFO_3A PORT_INFO_3; typedef PPORT_INFO_3A PPORT_INFO_3; typedef LPPORT_INFO_3A LPPORT_INFO_3; #endif // UNICODE #define PORT_STATUS_TYPE_ERROR 1 #define PORT_STATUS_TYPE_WARNING 2 #define PORT_STATUS_TYPE_INFO 3 #define PORT_STATUS_OFFLINE 1 #define PORT_STATUS_PAPER_JAM 2 #define PORT_STATUS_PAPER_OUT 3 #define PORT_STATUS_OUTPUT_BIN_FULL 4 #define PORT_STATUS_PAPER_PROBLEM 5 #define PORT_STATUS_NO_TONER 6 #define PORT_STATUS_DOOR_OPEN 7 #define PORT_STATUS_USER_INTERVENTION 8 #define PORT_STATUS_OUT_OF_MEMORY 9 #define PORT_STATUS_TONER_LOW 10 #define PORT_STATUS_WARMING_UP 11 #define PORT_STATUS_POWER_SAVE 12 typedef struct _MONITOR_INFO_1A{ LPSTR pName; } MONITOR_INFO_1A, *PMONITOR_INFO_1A, *LPMONITOR_INFO_1A; typedef struct _MONITOR_INFO_1W{ LPWSTR pName; } MONITOR_INFO_1W, *PMONITOR_INFO_1W, *LPMONITOR_INFO_1W; #ifdef UNICODE typedef MONITOR_INFO_1W MONITOR_INFO_1; typedef PMONITOR_INFO_1W PMONITOR_INFO_1; typedef LPMONITOR_INFO_1W LPMONITOR_INFO_1; #else typedef MONITOR_INFO_1A MONITOR_INFO_1; typedef PMONITOR_INFO_1A PMONITOR_INFO_1; typedef LPMONITOR_INFO_1A LPMONITOR_INFO_1; #endif // UNICODE typedef struct _MONITOR_INFO_2A{ LPSTR pName; LPSTR pEnvironment; LPSTR pDLLName; } MONITOR_INFO_2A, *PMONITOR_INFO_2A, *LPMONITOR_INFO_2A; typedef struct _MONITOR_INFO_2W{ LPWSTR pName; LPWSTR pEnvironment; LPWSTR pDLLName; } MONITOR_INFO_2W, *PMONITOR_INFO_2W, *LPMONITOR_INFO_2W; #ifdef UNICODE typedef MONITOR_INFO_2W MONITOR_INFO_2; typedef PMONITOR_INFO_2W PMONITOR_INFO_2; typedef LPMONITOR_INFO_2W LPMONITOR_INFO_2; #else typedef MONITOR_INFO_2A MONITOR_INFO_2; typedef PMONITOR_INFO_2A PMONITOR_INFO_2; typedef LPMONITOR_INFO_2A LPMONITOR_INFO_2; #endif // UNICODE typedef struct _DATATYPES_INFO_1A{ LPSTR pName; } DATATYPES_INFO_1A, *PDATATYPES_INFO_1A, *LPDATATYPES_INFO_1A; typedef struct _DATATYPES_INFO_1W{ LPWSTR pName; } DATATYPES_INFO_1W, *PDATATYPES_INFO_1W, *LPDATATYPES_INFO_1W; #ifdef UNICODE typedef DATATYPES_INFO_1W DATATYPES_INFO_1; typedef PDATATYPES_INFO_1W PDATATYPES_INFO_1; typedef LPDATATYPES_INFO_1W LPDATATYPES_INFO_1; #else typedef DATATYPES_INFO_1A DATATYPES_INFO_1; typedef PDATATYPES_INFO_1A PDATATYPES_INFO_1; typedef LPDATATYPES_INFO_1A LPDATATYPES_INFO_1; #endif // UNICODE typedef struct _PRINTER_DEFAULTSA{ LPSTR pDatatype; LPDEVMODEA pDevMode; ACCESS_MASK DesiredAccess; } PRINTER_DEFAULTSA, *PPRINTER_DEFAULTSA, *LPPRINTER_DEFAULTSA; typedef struct _PRINTER_DEFAULTSW{ LPWSTR pDatatype; LPDEVMODEW pDevMode; ACCESS_MASK DesiredAccess; } PRINTER_DEFAULTSW, *PPRINTER_DEFAULTSW, *LPPRINTER_DEFAULTSW; #ifdef UNICODE typedef PRINTER_DEFAULTSW PRINTER_DEFAULTS; typedef PPRINTER_DEFAULTSW PPRINTER_DEFAULTS; typedef LPPRINTER_DEFAULTSW LPPRINTER_DEFAULTS; #else typedef PRINTER_DEFAULTSA PRINTER_DEFAULTS; typedef PPRINTER_DEFAULTSA PPRINTER_DEFAULTS; typedef LPPRINTER_DEFAULTSA LPPRINTER_DEFAULTS; #endif // UNICODE typedef struct _PRINTER_ENUM_VALUESA { LPSTR pValueName; DWORD cbValueName; DWORD dwType; LPBYTE pData; DWORD cbData; } PRINTER_ENUM_VALUESA, *PPRINTER_ENUM_VALUESA, *LPPRINTER_ENUM_VALUESA; typedef struct _PRINTER_ENUM_VALUESW { LPWSTR pValueName; DWORD cbValueName; DWORD dwType; LPBYTE pData; DWORD cbData; } PRINTER_ENUM_VALUESW, *PPRINTER_ENUM_VALUESW, *LPPRINTER_ENUM_VALUESW; #ifdef UNICODE typedef PRINTER_ENUM_VALUESW PRINTER_ENUM_VALUES; typedef PPRINTER_ENUM_VALUESW PPRINTER_ENUM_VALUES; typedef LPPRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUES; #else typedef PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUES; typedef PPRINTER_ENUM_VALUESA PPRINTER_ENUM_VALUES; typedef LPPRINTER_ENUM_VALUESA LPPRINTER_ENUM_VALUES; #endif // UNICODE BOOL WINAPI EnumPrintersA( IN DWORD Flags, IN LPSTR Name, IN DWORD Level, OUT LPBYTE pPrinterEnum, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumPrintersW( IN DWORD Flags, IN LPWSTR Name, IN DWORD Level, OUT LPBYTE pPrinterEnum, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumPrinters EnumPrintersW #else #define EnumPrinters EnumPrintersA #endif // !UNICODE #define PRINTER_ENUM_DEFAULT 0x00000001 #define PRINTER_ENUM_LOCAL 0x00000002 #define PRINTER_ENUM_CONNECTIONS 0x00000004 #define PRINTER_ENUM_FAVORITE 0x00000004 #define PRINTER_ENUM_NAME 0x00000008 #define PRINTER_ENUM_REMOTE 0x00000010 #define PRINTER_ENUM_SHARED 0x00000020 #define PRINTER_ENUM_NETWORK 0x00000040 #define PRINTER_ENUM_EXPAND 0x00004000 #define PRINTER_ENUM_CONTAINER 0x00008000 #define PRINTER_ENUM_ICONMASK 0x00ff0000 #define PRINTER_ENUM_ICON1 0x00010000 #define PRINTER_ENUM_ICON2 0x00020000 #define PRINTER_ENUM_ICON3 0x00040000 #define PRINTER_ENUM_ICON4 0x00080000 #define PRINTER_ENUM_ICON5 0x00100000 #define PRINTER_ENUM_ICON6 0x00200000 #define PRINTER_ENUM_ICON7 0x00400000 #define PRINTER_ENUM_ICON8 0x00800000 #define PRINTER_ENUM_HIDE 0x01000000 #define SPOOL_FILE_PERSISTENT 0x00000001 #define SPOOL_FILE_TEMPORARY 0x00000002 BOOL WINAPI OpenPrinterA( IN LPSTR pPrinterName, OUT LPHANDLE phPrinter, IN LPPRINTER_DEFAULTSA pDefault ); BOOL WINAPI OpenPrinterW( IN LPWSTR pPrinterName, OUT LPHANDLE phPrinter, IN LPPRINTER_DEFAULTSW pDefault ); #ifdef UNICODE #define OpenPrinter OpenPrinterW #else #define OpenPrinter OpenPrinterA #endif // !UNICODE BOOL WINAPI ResetPrinterA( IN HANDLE hPrinter, IN LPPRINTER_DEFAULTSA pDefault ); BOOL WINAPI ResetPrinterW( IN HANDLE hPrinter, IN LPPRINTER_DEFAULTSW pDefault ); #ifdef UNICODE #define ResetPrinter ResetPrinterW #else #define ResetPrinter ResetPrinterA #endif // !UNICODE BOOL WINAPI SetJobA( IN HANDLE hPrinter, IN DWORD JobId, IN DWORD Level, IN LPBYTE pJob, IN DWORD Command ); BOOL WINAPI SetJobW( IN HANDLE hPrinter, IN DWORD JobId, IN DWORD Level, IN LPBYTE pJob, IN DWORD Command ); #ifdef UNICODE #define SetJob SetJobW #else #define SetJob SetJobA #endif // !UNICODE BOOL WINAPI GetJobA( IN HANDLE hPrinter, IN DWORD JobId, IN DWORD Level, OUT LPBYTE pJob, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI GetJobW( IN HANDLE hPrinter, IN DWORD JobId, IN DWORD Level, OUT LPBYTE pJob, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetJob GetJobW #else #define GetJob GetJobA #endif // !UNICODE BOOL WINAPI EnumJobsA( IN HANDLE hPrinter, IN DWORD FirstJob, IN DWORD NoJobs, IN DWORD Level, OUT LPBYTE pJob, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumJobsW( IN HANDLE hPrinter, IN DWORD FirstJob, IN DWORD NoJobs, IN DWORD Level, OUT LPBYTE pJob, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumJobs EnumJobsW #else #define EnumJobs EnumJobsA #endif // !UNICODE HANDLE WINAPI AddPrinterA( IN LPSTR pName, IN DWORD Level, IN LPBYTE pPrinter ); HANDLE WINAPI AddPrinterW( IN LPWSTR pName, IN DWORD Level, IN LPBYTE pPrinter ); #ifdef UNICODE #define AddPrinter AddPrinterW #else #define AddPrinter AddPrinterA #endif // !UNICODE BOOL WINAPI DeletePrinter( IN OUT HANDLE hPrinter ); BOOL WINAPI SetPrinterA( IN HANDLE hPrinter, IN DWORD Level, IN LPBYTE pPrinter, IN DWORD Command ); BOOL WINAPI SetPrinterW( IN HANDLE hPrinter, IN DWORD Level, IN LPBYTE pPrinter, IN DWORD Command ); #ifdef UNICODE #define SetPrinter SetPrinterW #else #define SetPrinter SetPrinterA #endif // !UNICODE BOOL WINAPI GetPrinterA( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pPrinter, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI GetPrinterW( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pPrinter, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetPrinter GetPrinterW #else #define GetPrinter GetPrinterA #endif // !UNICODE BOOL WINAPI AddPrinterDriverA( IN LPSTR pName, IN DWORD Level, OUT LPBYTE pDriverInfo ); BOOL WINAPI AddPrinterDriverW( IN LPWSTR pName, IN DWORD Level, OUT LPBYTE pDriverInfo ); #ifdef UNICODE #define AddPrinterDriver AddPrinterDriverW #else #define AddPrinterDriver AddPrinterDriverA #endif // !UNICODE BOOL WINAPI AddPrinterDriverExA( IN LPSTR pName, IN DWORD Level, IN OUT LPBYTE pDriverInfo, IN DWORD dwFileCopyFlags ); BOOL WINAPI AddPrinterDriverExW( IN LPWSTR pName, IN DWORD Level, IN OUT LPBYTE pDriverInfo, IN DWORD dwFileCopyFlags ); #ifdef UNICODE #define AddPrinterDriverEx AddPrinterDriverExW #else #define AddPrinterDriverEx AddPrinterDriverExA #endif // !UNICODE BOOL WINAPI EnumPrinterDriversA( IN LPSTR pName, IN LPSTR pEnvironment, IN DWORD Level, OUT LPBYTE pDriverInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumPrinterDriversW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN DWORD Level, OUT LPBYTE pDriverInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumPrinterDrivers EnumPrinterDriversW #else #define EnumPrinterDrivers EnumPrinterDriversA #endif // !UNICODE BOOL WINAPI GetPrinterDriverA( IN HANDLE hPrinter, IN LPSTR pEnvironment, IN DWORD Level, OUT LPBYTE pDriverInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI GetPrinterDriverW( IN HANDLE hPrinter, IN LPWSTR pEnvironment, IN DWORD Level, OUT LPBYTE pDriverInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetPrinterDriver GetPrinterDriverW #else #define GetPrinterDriver GetPrinterDriverA #endif // !UNICODE BOOL WINAPI GetPrinterDriverDirectoryA( IN LPSTR pName, IN LPSTR pEnvironment, IN DWORD Level, OUT LPBYTE pDriverDirectory, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI GetPrinterDriverDirectoryW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN DWORD Level, OUT LPBYTE pDriverDirectory, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetPrinterDriverDirectory GetPrinterDriverDirectoryW #else #define GetPrinterDriverDirectory GetPrinterDriverDirectoryA #endif // !UNICODE BOOL WINAPI DeletePrinterDriverA( IN LPSTR pName, IN LPSTR pEnvironment, IN LPSTR pDriverName ); BOOL WINAPI DeletePrinterDriverW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN LPWSTR pDriverName ); #ifdef UNICODE #define DeletePrinterDriver DeletePrinterDriverW #else #define DeletePrinterDriver DeletePrinterDriverA #endif // !UNICODE BOOL WINAPI DeletePrinterDriverExA( IN LPSTR pName, IN LPSTR pEnvironment, IN LPSTR pDriverName, IN DWORD dwDeleteFlag, IN DWORD dwVersionFlag ); BOOL WINAPI DeletePrinterDriverExW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN LPWSTR pDriverName, IN DWORD dwDeleteFlag, IN DWORD dwVersionFlag ); #ifdef UNICODE #define DeletePrinterDriverEx DeletePrinterDriverExW #else #define DeletePrinterDriverEx DeletePrinterDriverExA #endif // !UNICODE BOOL WINAPI AddPrintProcessorA( IN LPSTR pName, IN LPSTR pEnvironment, IN LPSTR pPathName, IN LPSTR pPrintProcessorName ); BOOL WINAPI AddPrintProcessorW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN LPWSTR pPathName, IN LPWSTR pPrintProcessorName ); #ifdef UNICODE #define AddPrintProcessor AddPrintProcessorW #else #define AddPrintProcessor AddPrintProcessorA #endif // !UNICODE BOOL WINAPI EnumPrintProcessorsA( IN LPSTR pName, IN LPSTR pEnvironment, IN DWORD Level, OUT LPBYTE pPrintProcessorInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumPrintProcessorsW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN DWORD Level, OUT LPBYTE pPrintProcessorInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumPrintProcessors EnumPrintProcessorsW #else #define EnumPrintProcessors EnumPrintProcessorsA #endif // !UNICODE BOOL WINAPI GetPrintProcessorDirectoryA( IN LPSTR pName, IN LPSTR pEnvironment, IN DWORD Level, OUT LPBYTE pPrintProcessorInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI GetPrintProcessorDirectoryW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN DWORD Level, OUT LPBYTE pPrintProcessorInfo, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetPrintProcessorDirectory GetPrintProcessorDirectoryW #else #define GetPrintProcessorDirectory GetPrintProcessorDirectoryA #endif // !UNICODE BOOL WINAPI EnumPrintProcessorDatatypesA( IN LPSTR pName, IN LPSTR pPrintProcessorName, IN DWORD Level, OUT LPBYTE pDatatypes, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumPrintProcessorDatatypesW( IN LPWSTR pName, IN LPWSTR pPrintProcessorName, IN DWORD Level, OUT LPBYTE pDatatypes, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesW #else #define EnumPrintProcessorDatatypes EnumPrintProcessorDatatypesA #endif // !UNICODE BOOL WINAPI DeletePrintProcessorA( IN LPSTR pName, IN LPSTR pEnvironment, IN LPSTR pPrintProcessorName ); BOOL WINAPI DeletePrintProcessorW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN LPWSTR pPrintProcessorName ); #ifdef UNICODE #define DeletePrintProcessor DeletePrintProcessorW #else #define DeletePrintProcessor DeletePrintProcessorA #endif // !UNICODE DWORD WINAPI StartDocPrinterA( IN HANDLE hPrinter, IN DWORD Level, IN LPBYTE pDocInfo ); DWORD WINAPI StartDocPrinterW( IN HANDLE hPrinter, IN DWORD Level, IN LPBYTE pDocInfo ); #ifdef UNICODE #define StartDocPrinter StartDocPrinterW #else #define StartDocPrinter StartDocPrinterA #endif // !UNICODE BOOL WINAPI StartPagePrinter( IN HANDLE hPrinter ); BOOL WINAPI WritePrinter( IN HANDLE hPrinter, IN LPVOID pBuf, IN DWORD cbBuf, OUT LPDWORD pcWritten ); BOOL WINAPI FlushPrinter( IN HANDLE hPrinter, IN LPVOID pBuf, IN DWORD cbBuf, OUT LPDWORD pcWritten, IN DWORD cSleep ); BOOL WINAPI EndPagePrinter( IN HANDLE hPrinter ); BOOL WINAPI AbortPrinter( IN HANDLE hPrinter ); BOOL WINAPI ReadPrinter( IN HANDLE hPrinter, OUT LPVOID pBuf, IN DWORD cbBuf, OUT LPDWORD pNoBytesRead ); BOOL WINAPI EndDocPrinter( IN HANDLE hPrinter ); BOOL WINAPI AddJobA( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pData, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI AddJobW( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pData, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define AddJob AddJobW #else #define AddJob AddJobA #endif // !UNICODE BOOL WINAPI ScheduleJob( IN HANDLE hPrinter, IN DWORD JobId ); BOOL WINAPI PrinterProperties( IN HWND hWnd, IN HANDLE hPrinter ); LONG WINAPI DocumentPropertiesA( IN HWND hWnd, IN HANDLE hPrinter, IN LPSTR pDeviceName, OUT PDEVMODEA pDevModeOutput, IN PDEVMODEA pDevModeInput, IN DWORD fMode ); LONG WINAPI DocumentPropertiesW( IN HWND hWnd, IN HANDLE hPrinter, IN LPWSTR pDeviceName, OUT PDEVMODEW pDevModeOutput, IN PDEVMODEW pDevModeInput, IN DWORD fMode ); #ifdef UNICODE #define DocumentProperties DocumentPropertiesW #else #define DocumentProperties DocumentPropertiesA #endif // !UNICODE LONG WINAPI AdvancedDocumentPropertiesA( IN HWND hWnd, IN HANDLE hPrinter, IN LPSTR pDeviceName, OUT PDEVMODEA pDevModeOutput, IN PDEVMODEA pDevModeInput ); LONG WINAPI AdvancedDocumentPropertiesW( IN HWND hWnd, IN HANDLE hPrinter, IN LPWSTR pDeviceName, OUT PDEVMODEW pDevModeOutput, IN PDEVMODEW pDevModeInput ); #ifdef UNICODE #define AdvancedDocumentProperties AdvancedDocumentPropertiesW #else #define AdvancedDocumentProperties AdvancedDocumentPropertiesA #endif // !UNICODE LONG ExtDeviceMode( IN HWND hWnd, IN HANDLE hInst, OUT LPDEVMODEA pDevModeOutput, IN LPSTR pDeviceName, IN LPSTR pPort, IN LPDEVMODEA pDevModeInput, IN LPSTR pProfile, IN DWORD fMode ); DWORD WINAPI GetPrinterDataA( IN HANDLE hPrinter, IN LPSTR pValueName, OUT LPDWORD pType, OUT LPBYTE pData, IN DWORD nSize, OUT LPDWORD pcbNeeded ); DWORD WINAPI GetPrinterDataW( IN HANDLE hPrinter, IN LPWSTR pValueName, OUT LPDWORD pType, OUT LPBYTE pData, IN DWORD nSize, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetPrinterData GetPrinterDataW #else #define GetPrinterData GetPrinterDataA #endif // !UNICODE DWORD WINAPI GetPrinterDataExA( IN HANDLE hPrinter, IN LPCSTR pKeyName, IN LPCSTR pValueName, OUT LPDWORD pType, OUT LPBYTE pData, IN DWORD nSize, OUT LPDWORD pcbNeeded ); DWORD WINAPI GetPrinterDataExW( IN HANDLE hPrinter, IN LPCWSTR pKeyName, IN LPCWSTR pValueName, OUT LPDWORD pType, OUT LPBYTE pData, IN DWORD nSize, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetPrinterDataEx GetPrinterDataExW #else #define GetPrinterDataEx GetPrinterDataExA #endif // !UNICODE DWORD WINAPI EnumPrinterDataA( IN HANDLE hPrinter, IN DWORD dwIndex, OUT LPSTR pValueName, IN DWORD cbValueName, OUT LPDWORD pcbValueName, OUT LPDWORD pType, OUT LPBYTE pData, IN DWORD cbData, OUT LPDWORD pcbData ); DWORD WINAPI EnumPrinterDataW( IN HANDLE hPrinter, IN DWORD dwIndex, OUT LPWSTR pValueName, IN DWORD cbValueName, OUT LPDWORD pcbValueName, OUT LPDWORD pType, OUT LPBYTE pData, IN DWORD cbData, OUT LPDWORD pcbData ); #ifdef UNICODE #define EnumPrinterData EnumPrinterDataW #else #define EnumPrinterData EnumPrinterDataA #endif // !UNICODE DWORD WINAPI EnumPrinterDataExA( IN HANDLE hPrinter, IN LPCSTR pKeyName, OUT LPBYTE pEnumValues, IN DWORD cbEnumValues, OUT LPDWORD pcbEnumValues, OUT LPDWORD pnEnumValues ); DWORD WINAPI EnumPrinterDataExW( IN HANDLE hPrinter, IN LPCWSTR pKeyName, OUT LPBYTE pEnumValues, IN DWORD cbEnumValues, OUT LPDWORD pcbEnumValues, OUT LPDWORD pnEnumValues ); #ifdef UNICODE #define EnumPrinterDataEx EnumPrinterDataExW #else #define EnumPrinterDataEx EnumPrinterDataExA #endif // !UNICODE DWORD WINAPI EnumPrinterKeyA( IN HANDLE hPrinter, IN LPCSTR pKeyName, OUT LPSTR pSubkey, IN DWORD cbSubkey, OUT LPDWORD pcbSubkey ); DWORD WINAPI EnumPrinterKeyW( IN HANDLE hPrinter, IN LPCWSTR pKeyName, OUT LPWSTR pSubkey, IN DWORD cbSubkey, OUT LPDWORD pcbSubkey ); #ifdef UNICODE #define EnumPrinterKey EnumPrinterKeyW #else #define EnumPrinterKey EnumPrinterKeyA #endif // !UNICODE DWORD WINAPI SetPrinterDataA( IN HANDLE hPrinter, IN LPSTR pValueName, IN DWORD Type, IN LPBYTE pData, IN DWORD cbData ); DWORD WINAPI SetPrinterDataW( IN HANDLE hPrinter, IN LPWSTR pValueName, IN DWORD Type, IN LPBYTE pData, IN DWORD cbData ); #ifdef UNICODE #define SetPrinterData SetPrinterDataW #else #define SetPrinterData SetPrinterDataA #endif // !UNICODE DWORD WINAPI SetPrinterDataExA( IN HANDLE hPrinter, IN LPCSTR pKeyName, IN LPCSTR pValueName, IN DWORD Type, IN LPBYTE pData, IN DWORD cbData ); DWORD WINAPI SetPrinterDataExW( IN HANDLE hPrinter, IN LPCWSTR pKeyName, IN LPCWSTR pValueName, IN DWORD Type, IN LPBYTE pData, IN DWORD cbData ); #ifdef UNICODE #define SetPrinterDataEx SetPrinterDataExW #else #define SetPrinterDataEx SetPrinterDataExA #endif // !UNICODE DWORD WINAPI DeletePrinterDataA( IN HANDLE hPrinter, IN LPSTR pValueName ); DWORD WINAPI DeletePrinterDataW( IN HANDLE hPrinter, IN LPWSTR pValueName ); #ifdef UNICODE #define DeletePrinterData DeletePrinterDataW #else #define DeletePrinterData DeletePrinterDataA #endif // !UNICODE DWORD WINAPI DeletePrinterDataExA( IN HANDLE hPrinter, IN LPCSTR pKeyName, IN LPCSTR pValueName ); DWORD WINAPI DeletePrinterDataExW( IN HANDLE hPrinter, IN LPCWSTR pKeyName, IN LPCWSTR pValueName ); #ifdef UNICODE #define DeletePrinterDataEx DeletePrinterDataExW #else #define DeletePrinterDataEx DeletePrinterDataExA #endif // !UNICODE DWORD WINAPI DeletePrinterKeyA( IN HANDLE hPrinter, IN LPCSTR pKeyName ); DWORD WINAPI DeletePrinterKeyW( IN HANDLE hPrinter, IN LPCWSTR pKeyName ); #ifdef UNICODE #define DeletePrinterKey DeletePrinterKeyW #else #define DeletePrinterKey DeletePrinterKeyA #endif // !UNICODE #define PRINTER_NOTIFY_TYPE 0x00 #define JOB_NOTIFY_TYPE 0x01 #define PRINTER_NOTIFY_FIELD_SERVER_NAME 0x00 #define PRINTER_NOTIFY_FIELD_PRINTER_NAME 0x01 #define PRINTER_NOTIFY_FIELD_SHARE_NAME 0x02 #define PRINTER_NOTIFY_FIELD_PORT_NAME 0x03 #define PRINTER_NOTIFY_FIELD_DRIVER_NAME 0x04 #define PRINTER_NOTIFY_FIELD_COMMENT 0x05 #define PRINTER_NOTIFY_FIELD_LOCATION 0x06 #define PRINTER_NOTIFY_FIELD_DEVMODE 0x07 #define PRINTER_NOTIFY_FIELD_SEPFILE 0x08 #define PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR 0x09 #define PRINTER_NOTIFY_FIELD_PARAMETERS 0x0A #define PRINTER_NOTIFY_FIELD_DATATYPE 0x0B #define PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0C #define PRINTER_NOTIFY_FIELD_ATTRIBUTES 0x0D #define PRINTER_NOTIFY_FIELD_PRIORITY 0x0E #define PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY 0x0F #define PRINTER_NOTIFY_FIELD_START_TIME 0x10 #define PRINTER_NOTIFY_FIELD_UNTIL_TIME 0x11 #define PRINTER_NOTIFY_FIELD_STATUS 0x12 #define PRINTER_NOTIFY_FIELD_STATUS_STRING 0x13 #define PRINTER_NOTIFY_FIELD_CJOBS 0x14 #define PRINTER_NOTIFY_FIELD_AVERAGE_PPM 0x15 #define PRINTER_NOTIFY_FIELD_TOTAL_PAGES 0x16 #define PRINTER_NOTIFY_FIELD_PAGES_PRINTED 0x17 #define PRINTER_NOTIFY_FIELD_TOTAL_BYTES 0x18 #define PRINTER_NOTIFY_FIELD_BYTES_PRINTED 0x19 #define PRINTER_NOTIFY_FIELD_OBJECT_GUID 0x1A #define JOB_NOTIFY_FIELD_PRINTER_NAME 0x00 #define JOB_NOTIFY_FIELD_MACHINE_NAME 0x01 #define JOB_NOTIFY_FIELD_PORT_NAME 0x02 #define JOB_NOTIFY_FIELD_USER_NAME 0x03 #define JOB_NOTIFY_FIELD_NOTIFY_NAME 0x04 #define JOB_NOTIFY_FIELD_DATATYPE 0x05 #define JOB_NOTIFY_FIELD_PRINT_PROCESSOR 0x06 #define JOB_NOTIFY_FIELD_PARAMETERS 0x07 #define JOB_NOTIFY_FIELD_DRIVER_NAME 0x08 #define JOB_NOTIFY_FIELD_DEVMODE 0x09 #define JOB_NOTIFY_FIELD_STATUS 0x0A #define JOB_NOTIFY_FIELD_STATUS_STRING 0x0B #define JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR 0x0C #define JOB_NOTIFY_FIELD_DOCUMENT 0x0D #define JOB_NOTIFY_FIELD_PRIORITY 0x0E #define JOB_NOTIFY_FIELD_POSITION 0x0F #define JOB_NOTIFY_FIELD_SUBMITTED 0x10 #define JOB_NOTIFY_FIELD_START_TIME 0x11 #define JOB_NOTIFY_FIELD_UNTIL_TIME 0x12 #define JOB_NOTIFY_FIELD_TIME 0x13 #define JOB_NOTIFY_FIELD_TOTAL_PAGES 0x14 #define JOB_NOTIFY_FIELD_PAGES_PRINTED 0x15 #define JOB_NOTIFY_FIELD_TOTAL_BYTES 0x16 #define JOB_NOTIFY_FIELD_BYTES_PRINTED 0x17 typedef struct _PRINTER_NOTIFY_OPTIONS_TYPE { WORD Type; WORD Reserved0; DWORD Reserved1; DWORD Reserved2; DWORD Count; PWORD pFields; } PRINTER_NOTIFY_OPTIONS_TYPE, *PPRINTER_NOTIFY_OPTIONS_TYPE, *LPPRINTER_NOTIFY_OPTIONS_TYPE; #define PRINTER_NOTIFY_OPTIONS_REFRESH 0x01 typedef struct _PRINTER_NOTIFY_OPTIONS { DWORD Version; DWORD Flags; DWORD Count; PPRINTER_NOTIFY_OPTIONS_TYPE pTypes; } PRINTER_NOTIFY_OPTIONS, *PPRINTER_NOTIFY_OPTIONS, *LPPRINTER_NOTIFY_OPTIONS; #define PRINTER_NOTIFY_INFO_DISCARDED 0x01 typedef struct _PRINTER_NOTIFY_INFO_DATA { WORD Type; WORD Field; DWORD Reserved; DWORD Id; union { DWORD adwData[2]; struct { DWORD cbBuf; LPVOID pBuf; } Data; } NotifyData; } PRINTER_NOTIFY_INFO_DATA, *PPRINTER_NOTIFY_INFO_DATA, *LPPRINTER_NOTIFY_INFO_DATA; typedef struct _PRINTER_NOTIFY_INFO { DWORD Version; DWORD Flags; DWORD Count; PRINTER_NOTIFY_INFO_DATA aData[1]; } PRINTER_NOTIFY_INFO, *PPRINTER_NOTIFY_INFO, *LPPRINTER_NOTIFY_INFO; typedef struct _BINARY_CONTAINER{ DWORD cbBuf; LPBYTE pData; } BINARY_CONTAINER, *PBINARY_CONTAINER; typedef struct _BIDI_DATA{ DWORD dwBidiType; union { BOOL bData; LONG iData; LPWSTR sData; FLOAT fData; BINARY_CONTAINER biData; }u; } BIDI_DATA, *PBIDI_DATA, *LPBIDI_DATA; typedef struct _BIDI_REQUEST_DATA{ DWORD dwReqNumber; LPWSTR pSchema; BIDI_DATA data; } BIDI_REQUEST_DATA , *PBIDI_REQUEST_DATA , *LPBIDI_REQUEST_DATA; typedef struct _BIDI_REQUEST_CONTAINER{ DWORD Version; DWORD Flags; DWORD Count; BIDI_REQUEST_DATA aData[ 1 ]; }BIDI_REQUEST_CONTAINER, *PBIDI_REQUEST_CONTAINER, *LPBIDI_REQUEST_CONTAINER; typedef struct _BIDI_RESPONSE_DATA{ DWORD dwResult; DWORD dwReqNumber; LPWSTR pSchema; BIDI_DATA data; } BIDI_RESPONSE_DATA, *PBIDI_RESPONSE_DATA, *LPBIDI_RESPONSE_DATA; typedef struct _BIDI_RESPONSE_CONTAINER{ DWORD Version; DWORD Flags; DWORD Count; BIDI_RESPONSE_DATA aData[ 1 ]; } BIDI_RESPONSE_CONTAINER, *PBIDI_RESPONSE_CONTAINER, *LPBIDI_RESPONSE_CONTAINER; #define BIDI_ACTION_ENUM_SCHEMA L"EnumSchema" #define BIDI_ACTION_GET L"Get" #define BIDI_ACTION_SET L"Set" #define BIDI_ACTION_GET_ALL L"GetAll" typedef enum { BIDI_NULL = 0, BIDI_INT = 1, BIDI_FLOAT = 2, BIDI_BOOL = 3, BIDI_STRING = 4, BIDI_TEXT = 5, BIDI_ENUM = 6, BIDI_BLOB = 7 } BIDI_TYPE; #define BIDI_ACCESS_ADMINISTRATOR 0x1 #define BIDI_ACCESS_USER 0x2 /* Error code for bidi apis */ #define ERROR_BIDI_STATUS_OK 0 #define ERROR_BIDI_NOT_SUPPORTED ERROR_NOT_SUPPORTED #define ERROR_BIDI_ERROR_BASE 13000 #define ERROR_BIDI_STATUS_WARNING (ERROR_BIDI_ERROR_BASE + 1) #define ERROR_BIDI_SCHEMA_READ_ONLY (ERROR_BIDI_ERROR_BASE + 2) #define ERROR_BIDI_SERVER_OFFLINE (ERROR_BIDI_ERROR_BASE + 3) #define ERROR_BIDI_DEVICE_OFFLINE (ERROR_BIDI_ERROR_BASE + 4) #define ERROR_BIDI_SCHEMA_NOT_SUPPORTED (ERROR_BIDI_ERROR_BASE + 5) DWORD WINAPI WaitForPrinterChange( IN HANDLE hPrinter, IN DWORD Flags ); HANDLE WINAPI FindFirstPrinterChangeNotification( IN HANDLE hPrinter, IN DWORD fdwFlags, IN DWORD fdwOptions, IN LPVOID pPrinterNotifyOptions ); BOOL WINAPI FindNextPrinterChangeNotification( IN HANDLE hChange, OUT PDWORD pdwChange, IN LPVOID pvReserved, OUT LPVOID *ppPrinterNotifyInfo ); BOOL WINAPI FreePrinterNotifyInfo( IN PPRINTER_NOTIFY_INFO pPrinterNotifyInfo ); BOOL WINAPI FindClosePrinterChangeNotification( IN HANDLE hChange ); #define PRINTER_CHANGE_ADD_PRINTER 0x00000001 #define PRINTER_CHANGE_SET_PRINTER 0x00000002 #define PRINTER_CHANGE_DELETE_PRINTER 0x00000004 #define PRINTER_CHANGE_FAILED_CONNECTION_PRINTER 0x00000008 #define PRINTER_CHANGE_PRINTER 0x000000FF #define PRINTER_CHANGE_ADD_JOB 0x00000100 #define PRINTER_CHANGE_SET_JOB 0x00000200 #define PRINTER_CHANGE_DELETE_JOB 0x00000400 #define PRINTER_CHANGE_WRITE_JOB 0x00000800 #define PRINTER_CHANGE_JOB 0x0000FF00 #define PRINTER_CHANGE_ADD_FORM 0x00010000 #define PRINTER_CHANGE_SET_FORM 0x00020000 #define PRINTER_CHANGE_DELETE_FORM 0x00040000 #define PRINTER_CHANGE_FORM 0x00070000 #define PRINTER_CHANGE_ADD_PORT 0x00100000 #define PRINTER_CHANGE_CONFIGURE_PORT 0x00200000 #define PRINTER_CHANGE_DELETE_PORT 0x00400000 #define PRINTER_CHANGE_PORT 0x00700000 #define PRINTER_CHANGE_ADD_PRINT_PROCESSOR 0x01000000 #define PRINTER_CHANGE_DELETE_PRINT_PROCESSOR 0x04000000 #define PRINTER_CHANGE_PRINT_PROCESSOR 0x07000000 #define PRINTER_CHANGE_ADD_PRINTER_DRIVER 0x10000000 #define PRINTER_CHANGE_SET_PRINTER_DRIVER 0x20000000 #define PRINTER_CHANGE_DELETE_PRINTER_DRIVER 0x40000000 #define PRINTER_CHANGE_PRINTER_DRIVER 0x70000000 #define PRINTER_CHANGE_TIMEOUT 0x80000000 #define PRINTER_CHANGE_ALL 0x7777FFFF DWORD WINAPI PrinterMessageBoxA( IN HANDLE hPrinter, IN DWORD Error, IN HWND hWnd, IN LPSTR pText, IN LPSTR pCaption, IN DWORD dwType ); DWORD WINAPI PrinterMessageBoxW( IN HANDLE hPrinter, IN DWORD Error, IN HWND hWnd, IN LPWSTR pText, IN LPWSTR pCaption, IN DWORD dwType ); #ifdef UNICODE #define PrinterMessageBox PrinterMessageBoxW #else #define PrinterMessageBox PrinterMessageBoxA #endif // !UNICODE #define PRINTER_ERROR_INFORMATION 0x80000000 #define PRINTER_ERROR_WARNING 0x40000000 #define PRINTER_ERROR_SEVERE 0x20000000 #define PRINTER_ERROR_OUTOFPAPER 0x00000001 #define PRINTER_ERROR_JAM 0x00000002 #define PRINTER_ERROR_OUTOFTONER 0x00000004 BOOL WINAPI ClosePrinter( IN HANDLE hPrinter ); BOOL WINAPI AddFormA( IN HANDLE hPrinter, IN DWORD Level, IN LPBYTE pForm ); BOOL WINAPI AddFormW( IN HANDLE hPrinter, IN DWORD Level, IN LPBYTE pForm ); #ifdef UNICODE #define AddForm AddFormW #else #define AddForm AddFormA #endif // !UNICODE BOOL WINAPI DeleteFormA( IN HANDLE hPrinter, IN LPSTR pFormName ); BOOL WINAPI DeleteFormW( IN HANDLE hPrinter, IN LPWSTR pFormName ); #ifdef UNICODE #define DeleteForm DeleteFormW #else #define DeleteForm DeleteFormA #endif // !UNICODE BOOL WINAPI GetFormA( IN HANDLE hPrinter, IN LPSTR pFormName, IN DWORD Level, OUT LPBYTE pForm, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); BOOL WINAPI GetFormW( IN HANDLE hPrinter, IN LPWSTR pFormName, IN DWORD Level, OUT LPBYTE pForm, IN DWORD cbBuf, OUT LPDWORD pcbNeeded ); #ifdef UNICODE #define GetForm GetFormW #else #define GetForm GetFormA #endif // !UNICODE BOOL WINAPI SetFormA( IN HANDLE hPrinter, IN LPSTR pFormName, IN DWORD Level, IN LPBYTE pForm ); BOOL WINAPI SetFormW( IN HANDLE hPrinter, IN LPWSTR pFormName, IN DWORD Level, IN LPBYTE pForm ); #ifdef UNICODE #define SetForm SetFormW #else #define SetForm SetFormA #endif // !UNICODE BOOL WINAPI EnumFormsA( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pForm, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumFormsW( IN HANDLE hPrinter, IN DWORD Level, OUT LPBYTE pForm, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumForms EnumFormsW #else #define EnumForms EnumFormsA #endif // !UNICODE BOOL WINAPI EnumMonitorsA( IN LPSTR pName, IN DWORD Level, OUT LPBYTE pMonitors, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumMonitorsW( IN LPWSTR pName, IN DWORD Level, OUT LPBYTE pMonitors, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumMonitors EnumMonitorsW #else #define EnumMonitors EnumMonitorsA #endif // !UNICODE BOOL WINAPI AddMonitorA( IN LPSTR pName, IN DWORD Level, IN LPBYTE pMonitors ); BOOL WINAPI AddMonitorW( IN LPWSTR pName, IN DWORD Level, IN LPBYTE pMonitors ); #ifdef UNICODE #define AddMonitor AddMonitorW #else #define AddMonitor AddMonitorA #endif // !UNICODE BOOL WINAPI DeleteMonitorA( IN LPSTR pName, IN LPSTR pEnvironment, IN LPSTR pMonitorName ); BOOL WINAPI DeleteMonitorW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN LPWSTR pMonitorName ); #ifdef UNICODE #define DeleteMonitor DeleteMonitorW #else #define DeleteMonitor DeleteMonitorA #endif // !UNICODE BOOL WINAPI EnumPortsA( IN LPSTR pName, IN DWORD Level, OUT LPBYTE pPorts, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); BOOL WINAPI EnumPortsW( IN LPWSTR pName, IN DWORD Level, OUT LPBYTE pPorts, IN DWORD cbBuf, OUT LPDWORD pcbNeeded, OUT LPDWORD pcReturned ); #ifdef UNICODE #define EnumPorts EnumPortsW #else #define EnumPorts EnumPortsA #endif // !UNICODE BOOL WINAPI AddPortA( IN LPSTR pName, IN HWND hWnd, IN LPSTR pMonitorName ); BOOL WINAPI AddPortW( IN LPWSTR pName, IN HWND hWnd, IN LPWSTR pMonitorName ); #ifdef UNICODE #define AddPort AddPortW #else #define AddPort AddPortA #endif // !UNICODE BOOL WINAPI ConfigurePortA( IN LPSTR pName, IN HWND hWnd, IN LPSTR pPortName ); BOOL WINAPI ConfigurePortW( IN LPWSTR pName, IN HWND hWnd, IN LPWSTR pPortName ); #ifdef UNICODE #define ConfigurePort ConfigurePortW #else #define ConfigurePort ConfigurePortA #endif // !UNICODE BOOL WINAPI DeletePortA( IN LPSTR pName, IN HWND hWnd, IN LPSTR pPortName ); BOOL WINAPI DeletePortW( IN LPWSTR pName, IN HWND hWnd, IN LPWSTR pPortName ); #ifdef UNICODE #define DeletePort DeletePortW #else #define DeletePort DeletePortA #endif // !UNICODE BOOL WINAPI XcvDataW( IN HANDLE hXcv, IN PCWSTR pszDataName, IN PBYTE pInputData, IN DWORD cbInputData, OUT PBYTE pOutputData, IN DWORD cbOutputData, OUT PDWORD pcbOutputNeeded, OUT PDWORD pdwStatus ); #define XcvData XcvDataW BOOL WINAPI GetDefaultPrinterA( IN LPSTR pszBuffer, IN LPDWORD pcchBuffer ); BOOL WINAPI GetDefaultPrinterW( IN LPWSTR pszBuffer, IN LPDWORD pcchBuffer ); #ifdef UNICODE #define GetDefaultPrinter GetDefaultPrinterW #else #define GetDefaultPrinter GetDefaultPrinterA #endif // !UNICODE BOOL WINAPI SetDefaultPrinterA( IN LPCSTR pszPrinter ); BOOL WINAPI SetDefaultPrinterW( IN LPCWSTR pszPrinter ); #ifdef UNICODE #define SetDefaultPrinter SetDefaultPrinterW #else #define SetDefaultPrinter SetDefaultPrinterA #endif // !UNICODE BOOL WINAPI SetPortA( IN LPSTR pName, IN LPSTR pPortName, IN DWORD dwLevel, IN LPBYTE pPortInfo ); BOOL WINAPI SetPortW( IN LPWSTR pName, IN LPWSTR pPortName, IN DWORD dwLevel, IN LPBYTE pPortInfo ); #ifdef UNICODE #define SetPort SetPortW #else #define SetPort SetPortA #endif // !UNICODE BOOL WINAPI AddPrinterConnectionA( IN LPSTR pName ); BOOL WINAPI AddPrinterConnectionW( IN LPWSTR pName ); #ifdef UNICODE #define AddPrinterConnection AddPrinterConnectionW #else #define AddPrinterConnection AddPrinterConnectionA #endif // !UNICODE BOOL WINAPI DeletePrinterConnectionA( IN LPSTR pName ); BOOL WINAPI DeletePrinterConnectionW( IN LPWSTR pName ); #ifdef UNICODE #define DeletePrinterConnection DeletePrinterConnectionW #else #define DeletePrinterConnection DeletePrinterConnectionA #endif // !UNICODE HANDLE WINAPI ConnectToPrinterDlg( IN HWND hwnd, IN DWORD Flags ); typedef struct _PROVIDOR_INFO_1A{ LPSTR pName; LPSTR pEnvironment; LPSTR pDLLName; } PROVIDOR_INFO_1A, *PPROVIDOR_INFO_1A, *LPPROVIDOR_INFO_1A; typedef struct _PROVIDOR_INFO_1W{ LPWSTR pName; LPWSTR pEnvironment; LPWSTR pDLLName; } PROVIDOR_INFO_1W, *PPROVIDOR_INFO_1W, *LPPROVIDOR_INFO_1W; #ifdef UNICODE typedef PROVIDOR_INFO_1W PROVIDOR_INFO_1; typedef PPROVIDOR_INFO_1W PPROVIDOR_INFO_1; typedef LPPROVIDOR_INFO_1W LPPROVIDOR_INFO_1; #else typedef PROVIDOR_INFO_1A PROVIDOR_INFO_1; typedef PPROVIDOR_INFO_1A PPROVIDOR_INFO_1; typedef LPPROVIDOR_INFO_1A LPPROVIDOR_INFO_1; #endif // UNICODE typedef struct _PROVIDOR_INFO_2A{ LPSTR pOrder; } PROVIDOR_INFO_2A, *PPROVIDOR_INFO_2A, *LPPROVIDOR_INFO_2A; typedef struct _PROVIDOR_INFO_2W{ LPWSTR pOrder; } PROVIDOR_INFO_2W, *PPROVIDOR_INFO_2W, *LPPROVIDOR_INFO_2W; #ifdef UNICODE typedef PROVIDOR_INFO_2W PROVIDOR_INFO_2; typedef PPROVIDOR_INFO_2W PPROVIDOR_INFO_2; typedef LPPROVIDOR_INFO_2W LPPROVIDOR_INFO_2; #else typedef PROVIDOR_INFO_2A PROVIDOR_INFO_2; typedef PPROVIDOR_INFO_2A PPROVIDOR_INFO_2; typedef LPPROVIDOR_INFO_2A LPPROVIDOR_INFO_2; #endif // UNICODE BOOL WINAPI AddPrintProvidorA( IN LPSTR pName, IN DWORD level, IN LPBYTE pProvidorInfo ); BOOL WINAPI AddPrintProvidorW( IN LPWSTR pName, IN DWORD level, IN LPBYTE pProvidorInfo ); #ifdef UNICODE #define AddPrintProvidor AddPrintProvidorW #else #define AddPrintProvidor AddPrintProvidorA #endif // !UNICODE BOOL WINAPI DeletePrintProvidorA( IN LPSTR pName, IN LPSTR pEnvironment, IN LPSTR pPrintProvidorName ); BOOL WINAPI DeletePrintProvidorW( IN LPWSTR pName, IN LPWSTR pEnvironment, IN LPWSTR pPrintProvidorName ); #ifdef UNICODE #define DeletePrintProvidor DeletePrintProvidorW #else #define DeletePrintProvidor DeletePrintProvidorA #endif // !UNICODE BOOL WINAPI IsValidDevmodeA( IN PDEVMODEA pDevmode, IN size_t DevmodeSize ); BOOL WINAPI IsValidDevmodeW( IN PDEVMODEW pDevmode, IN size_t DevmodeSize ); #ifdef UNICODE #define IsValidDevmode IsValidDevmodeW #else #define IsValidDevmode IsValidDevmodeA #endif // !UNICODE /* * SetPrinterData and GetPrinterData Server Handle Key values */ #define SPLREG_DEFAULT_SPOOL_DIRECTORY TEXT("DefaultSpoolDirectory") #define SPLREG_PORT_THREAD_PRIORITY_DEFAULT TEXT("PortThreadPriorityDefault") #define SPLREG_PORT_THREAD_PRIORITY TEXT("PortThreadPriority") #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT TEXT("SchedulerThreadPriorityDefault") #define SPLREG_SCHEDULER_THREAD_PRIORITY TEXT("SchedulerThreadPriority") #define SPLREG_BEEP_ENABLED TEXT("BeepEnabled") #define SPLREG_NET_POPUP TEXT("NetPopup") #define SPLREG_RETRY_POPUP TEXT("RetryPopup") #define SPLREG_NET_POPUP_TO_COMPUTER TEXT("NetPopupToComputer") #define SPLREG_EVENT_LOG TEXT("EventLog") #define SPLREG_MAJOR_VERSION TEXT("MajorVersion") #define SPLREG_MINOR_VERSION TEXT("MinorVersion") #define SPLREG_ARCHITECTURE TEXT("Architecture") #define SPLREG_OS_VERSION TEXT("OSVersion") #define SPLREG_OS_VERSIONEX TEXT("OSVersionEx") #define SPLREG_DS_PRESENT TEXT("DsPresent") #define SPLREG_DS_PRESENT_FOR_USER TEXT("DsPresentForUser") #define SPLREG_REMOTE_FAX TEXT("RemoteFax") #define SPLREG_RESTART_JOB_ON_POOL_ERROR TEXT("RestartJobOnPoolError") #define SPLREG_RESTART_JOB_ON_POOL_ENABLED TEXT("RestartJobOnPoolEnabled") #define SPLREG_DNS_MACHINE_NAME TEXT("DNSMachineName") #define SPLREG_WEBSHAREMGMT TEXT("WebShareMgmt") #define SERVER_ACCESS_ADMINISTER 0x00000001 #define SERVER_ACCESS_ENUMERATE 0x00000002 #define PRINTER_ACCESS_ADMINISTER 0x00000004 #define PRINTER_ACCESS_USE 0x00000008 #define JOB_ACCESS_ADMINISTER 0x00000010 #define JOB_ACCESS_READ 0x00000020 /* * Access rights for print servers */ #define SERVER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ SERVER_ACCESS_ADMINISTER |\ SERVER_ACCESS_ENUMERATE) #define SERVER_READ (STANDARD_RIGHTS_READ |\ SERVER_ACCESS_ENUMERATE) #define SERVER_WRITE (STANDARD_RIGHTS_WRITE |\ SERVER_ACCESS_ADMINISTER |\ SERVER_ACCESS_ENUMERATE) #define SERVER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ SERVER_ACCESS_ENUMERATE) /* * Access rights for printers */ #define PRINTER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ PRINTER_ACCESS_ADMINISTER |\ PRINTER_ACCESS_USE) #define PRINTER_READ (STANDARD_RIGHTS_READ |\ PRINTER_ACCESS_USE) #define PRINTER_WRITE (STANDARD_RIGHTS_WRITE |\ PRINTER_ACCESS_USE) #define PRINTER_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ PRINTER_ACCESS_USE) /* * Access rights for jobs */ #define JOB_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\ JOB_ACCESS_ADMINISTER |\ JOB_ACCESS_READ) #define JOB_READ (STANDARD_RIGHTS_READ |\ JOB_ACCESS_READ) #define JOB_WRITE (STANDARD_RIGHTS_WRITE |\ JOB_ACCESS_ADMINISTER) #define JOB_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ JOB_ACCESS_ADMINISTER) /* * DS Print-Queue property tables */ // Predefined Registry Keys used by Set/GetPrinterDataEx #define SPLDS_SPOOLER_KEY TEXT("DsSpooler") #define SPLDS_DRIVER_KEY TEXT("DsDriver") #define SPLDS_USER_KEY TEXT("DsUser") // DS Print-Queue properties #define SPLDS_ASSET_NUMBER TEXT("assetNumber") #define SPLDS_BYTES_PER_MINUTE TEXT("bytesPerMinute") #define SPLDS_DESCRIPTION TEXT("description") #define SPLDS_DRIVER_NAME TEXT("driverName") #define SPLDS_DRIVER_VERSION TEXT("driverVersion") #define SPLDS_LOCATION TEXT("location") #define SPLDS_PORT_NAME TEXT("portName") #define SPLDS_PRINT_ATTRIBUTES TEXT("printAttributes") #define SPLDS_PRINT_BIN_NAMES TEXT("printBinNames") #define SPLDS_PRINT_COLLATE TEXT("printCollate") #define SPLDS_PRINT_COLOR TEXT("printColor") #define SPLDS_PRINT_DUPLEX_SUPPORTED TEXT("printDuplexSupported") #define SPLDS_PRINT_END_TIME TEXT("printEndTime") #define SPLDS_PRINTER_CLASS TEXT("printQueue") #define SPLDS_PRINTER_NAME TEXT("printerName") #define SPLDS_PRINT_KEEP_PRINTED_JOBS TEXT("printKeepPrintedJobs") #define SPLDS_PRINT_LANGUAGE TEXT("printLanguage") #define SPLDS_PRINT_MAC_ADDRESS TEXT("printMACAddress") #define SPLDS_PRINT_MAX_X_EXTENT TEXT("printMaxXExtent") #define SPLDS_PRINT_MAX_Y_EXTENT TEXT("printMaxYExtent") #define SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED TEXT("printMaxResolutionSupported") #define SPLDS_PRINT_MEDIA_READY TEXT("printMediaReady") #define SPLDS_PRINT_MEDIA_SUPPORTED TEXT("printMediaSupported") #define SPLDS_PRINT_MEMORY TEXT("printMemory") #define SPLDS_PRINT_MIN_X_EXTENT TEXT("printMinXExtent") #define SPLDS_PRINT_MIN_Y_EXTENT TEXT("printMinYExtent") #define SPLDS_PRINT_NETWORK_ADDRESS TEXT("printNetworkAddress") #define SPLDS_PRINT_NOTIFY TEXT("printNotify") #define SPLDS_PRINT_NUMBER_UP TEXT("printNumberUp") #define SPLDS_PRINT_ORIENTATIONS_SUPPORTED TEXT("printOrientationsSupported") #define SPLDS_PRINT_OWNER TEXT("printOwner") #define SPLDS_PRINT_PAGES_PER_MINUTE TEXT("printPagesPerMinute") #define SPLDS_PRINT_RATE TEXT("printRate") #define SPLDS_PRINT_RATE_UNIT TEXT("printRateUnit") #define SPLDS_PRINT_SEPARATOR_FILE TEXT("printSeparatorFile") #define SPLDS_PRINT_SHARE_NAME TEXT("printShareName") #define SPLDS_PRINT_SPOOLING TEXT("printSpooling") #define SPLDS_PRINT_STAPLING_SUPPORTED TEXT("printStaplingSupported") #define SPLDS_PRINT_START_TIME TEXT("printStartTime") #define SPLDS_PRINT_STATUS TEXT("printStatus") #define SPLDS_PRIORITY TEXT("priority") #define SPLDS_SERVER_NAME TEXT("serverName") #define SPLDS_SHORT_SERVER_NAME TEXT("shortServerName") #define SPLDS_UNC_NAME TEXT("uNCName") #define SPLDS_URL TEXT("url") #define SPLDS_FLAGS TEXT("flags") #define SPLDS_VERSION_NUMBER TEXT("versionNumber") /* -- Additional Print-Queue properties -- These properties are not defined in the default Directory Services Schema, but should be used when extending the Schema so a consistent interface is maintained. */ #define SPLDS_PRINTER_NAME_ALIASES TEXT("printerNameAliases") // MULTI_SZ #define SPLDS_PRINTER_LOCATIONS TEXT("printerLocations") // MULTI_SZ #define SPLDS_PRINTER_MODEL TEXT("printerModel") // SZ #ifdef __cplusplus } #endif #endif // _WINSPOOL_ ================================================ FILE: Bin/i386/APILib/WinUser.h ================================================ /**************************************************************************** * * * winuser.h -- USER procedure declarations, constant definitions and macros * * * * Copyright (c) Microsoft Corporation. All rights reserved. * * * ****************************************************************************/ #ifndef _WINUSER_ #define _WINUSER_ // // Define API decoration for direct importing of DLL references. // #if !defined(_USER32_) #define WINUSERAPI DECLSPEC_IMPORT #else #define WINUSERAPI #endif #ifdef _MAC #include #endif #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifndef WINVER #define WINVER 0x0500 /* version 5.0 */ #endif /* !WINVER */ #include #ifndef NOUSER typedef HANDLE HDWP; typedef VOID MENUTEMPLATEA; typedef VOID MENUTEMPLATEW; #ifdef UNICODE typedef MENUTEMPLATEW MENUTEMPLATE; #else typedef MENUTEMPLATEA MENUTEMPLATE; #endif // UNICODE typedef PVOID LPMENUTEMPLATEA; typedef PVOID LPMENUTEMPLATEW; #ifdef UNICODE typedef LPMENUTEMPLATEW LPMENUTEMPLATE; #else typedef LPMENUTEMPLATEA LPMENUTEMPLATE; #endif // UNICODE typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM); #ifdef STRICT typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM); typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD); typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int); typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM); typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam); typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT); typedef BOOL (CALLBACK* PROPENUMPROCA)(HWND, LPCSTR, HANDLE); typedef BOOL (CALLBACK* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE); typedef BOOL (CALLBACK* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, ULONG_PTR); typedef BOOL (CALLBACK* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, ULONG_PTR); typedef int (CALLBACK* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code); typedef int (CALLBACK* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code); #if(WINVER >= 0x0400) typedef BOOL (CALLBACK* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy); #endif /* WINVER >= 0x0400 */ #else /* !STRICT */ typedef FARPROC DLGPROC; typedef FARPROC TIMERPROC; typedef FARPROC GRAYSTRINGPROC; typedef FARPROC WNDENUMPROC; typedef FARPROC HOOKPROC; typedef FARPROC SENDASYNCPROC; typedef FARPROC EDITWORDBREAKPROCA; typedef FARPROC EDITWORDBREAKPROCW; typedef FARPROC PROPENUMPROCA; typedef FARPROC PROPENUMPROCW; typedef FARPROC PROPENUMPROCEXA; typedef FARPROC PROPENUMPROCEXW; #if(WINVER >= 0x0400) typedef FARPROC DRAWSTATEPROC; #endif /* WINVER >= 0x0400 */ #endif /* !STRICT */ #ifdef UNICODE typedef PROPENUMPROCW PROPENUMPROC; typedef PROPENUMPROCEXW PROPENUMPROCEX; typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC; #else /* !UNICODE */ typedef PROPENUMPROCA PROPENUMPROC; typedef PROPENUMPROCEXA PROPENUMPROCEX; typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC; #endif /* UNICODE */ #ifdef STRICT typedef BOOL (CALLBACK* NAMEENUMPROCA)(LPSTR, LPARAM); typedef BOOL (CALLBACK* NAMEENUMPROCW)(LPWSTR, LPARAM); typedef NAMEENUMPROCA WINSTAENUMPROCA; typedef NAMEENUMPROCA DESKTOPENUMPROCA; typedef NAMEENUMPROCW WINSTAENUMPROCW; typedef NAMEENUMPROCW DESKTOPENUMPROCW; #else /* !STRICT */ typedef FARPROC NAMEENUMPROCA; typedef FARPROC NAMEENUMPROCW; typedef FARPROC WINSTAENUMPROCA; typedef FARPROC DESKTOPENUMPROCA; typedef FARPROC WINSTAENUMPROCW; typedef FARPROC DESKTOPENUMPROCW; #endif /* !STRICT */ #ifdef UNICODE typedef WINSTAENUMPROCW WINSTAENUMPROC; typedef DESKTOPENUMPROCW DESKTOPENUMPROC; #else /* !UNICODE */ typedef WINSTAENUMPROCA WINSTAENUMPROC; typedef DESKTOPENUMPROCA DESKTOPENUMPROC; #endif /* UNICODE */ #define IS_INTRESOURCE(_r) (((ULONG_PTR)(_r) >> 16) == 0) #define MAKEINTRESOURCEA(i) (LPSTR)((ULONG_PTR)((WORD)(i))) #define MAKEINTRESOURCEW(i) (LPWSTR)((ULONG_PTR)((WORD)(i))) #ifdef UNICODE #define MAKEINTRESOURCE MAKEINTRESOURCEW #else #define MAKEINTRESOURCE MAKEINTRESOURCEA #endif // !UNICODE #ifndef NORESOURCE /* * Predefined Resource Types */ #define RT_CURSOR MAKEINTRESOURCE(1) #define RT_BITMAP MAKEINTRESOURCE(2) #define RT_ICON MAKEINTRESOURCE(3) #define RT_MENU MAKEINTRESOURCE(4) #define RT_DIALOG MAKEINTRESOURCE(5) #define RT_STRING MAKEINTRESOURCE(6) #define RT_FONTDIR MAKEINTRESOURCE(7) #define RT_FONT MAKEINTRESOURCE(8) #define RT_ACCELERATOR MAKEINTRESOURCE(9) #define RT_RCDATA MAKEINTRESOURCE(10) #define RT_MESSAGETABLE MAKEINTRESOURCE(11) #define DIFFERENCE 11 #define RT_GROUP_CURSOR MAKEINTRESOURCE((ULONG_PTR)RT_CURSOR + DIFFERENCE) #define RT_GROUP_ICON MAKEINTRESOURCE((ULONG_PTR)RT_ICON + DIFFERENCE) #define RT_VERSION MAKEINTRESOURCE(16) #define RT_DLGINCLUDE MAKEINTRESOURCE(17) #if(WINVER >= 0x0400) #define RT_PLUGPLAY MAKEINTRESOURCE(19) #define RT_VXD MAKEINTRESOURCE(20) #define RT_ANICURSOR MAKEINTRESOURCE(21) #define RT_ANIICON MAKEINTRESOURCE(22) #endif /* WINVER >= 0x0400 */ #define RT_HTML MAKEINTRESOURCE(23) #ifdef RC_INVOKED #define RT_MANIFEST 24 #define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2 #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3 #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1 /* inclusive */ #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16 /* inclusive */ #else /* RC_INVOKED */ #define RT_MANIFEST MAKEINTRESOURCE(24) #define CREATEPROCESS_MANIFEST_RESOURCE_ID MAKEINTRESOURCE( 1) #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(2) #define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(3) #define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE( 1 /*inclusive*/) #define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID MAKEINTRESOURCE(16 /*inclusive*/) #endif /* RC_INVOKED */ #endif /* !NORESOURCE */ WINUSERAPI int WINAPI wvsprintfA( OUT LPSTR, IN LPCSTR, IN va_list arglist); WINUSERAPI int WINAPI wvsprintfW( OUT LPWSTR, IN LPCWSTR, IN va_list arglist); #ifdef UNICODE #define wvsprintf wvsprintfW #else #define wvsprintf wvsprintfA #endif // !UNICODE WINUSERAPI int WINAPIV wsprintfA( OUT LPSTR, IN LPCSTR, ...); WINUSERAPI int WINAPIV wsprintfW( OUT LPWSTR, IN LPCWSTR, ...); #ifdef UNICODE #define wsprintf wsprintfW #else #define wsprintf wsprintfA #endif // !UNICODE /* * SPI_SETDESKWALLPAPER defined constants */ #define SETWALLPAPER_DEFAULT ((LPWSTR)-1) #ifndef NOSCROLL /* * Scroll Bar Constants */ #define SB_HORZ 0 #define SB_VERT 1 #define SB_CTL 2 #define SB_BOTH 3 /* * Scroll Bar Commands */ #define SB_LINEUP 0 #define SB_LINELEFT 0 #define SB_LINEDOWN 1 #define SB_LINERIGHT 1 #define SB_PAGEUP 2 #define SB_PAGELEFT 2 #define SB_PAGEDOWN 3 #define SB_PAGERIGHT 3 #define SB_THUMBPOSITION 4 #define SB_THUMBTRACK 5 #define SB_TOP 6 #define SB_LEFT 6 #define SB_BOTTOM 7 #define SB_RIGHT 7 #define SB_ENDSCROLL 8 #endif /* !NOSCROLL */ #ifndef NOSHOWWINDOW /* * ShowWindow() Commands */ #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 /* * Old ShowWindow() Commands */ #define HIDE_WINDOW 0 #define SHOW_OPENWINDOW 1 #define SHOW_ICONWINDOW 2 #define SHOW_FULLSCREEN 3 #define SHOW_OPENNOACTIVATE 4 /* * Identifiers for the WM_SHOWWINDOW message */ #define SW_PARENTCLOSING 1 #define SW_OTHERZOOM 2 #define SW_PARENTOPENING 3 #define SW_OTHERUNZOOM 4 #endif /* !NOSHOWWINDOW */ #if(WINVER >= 0x0500) /* * AnimateWindow() Commands */ #define AW_HOR_POSITIVE 0x00000001 #define AW_HOR_NEGATIVE 0x00000002 #define AW_VER_POSITIVE 0x00000004 #define AW_VER_NEGATIVE 0x00000008 #define AW_CENTER 0x00000010 #define AW_HIDE 0x00010000 #define AW_ACTIVATE 0x00020000 #define AW_SLIDE 0x00040000 #define AW_BLEND 0x00080000 #endif /* WINVER >= 0x0500 */ /* * WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags */ #define KF_EXTENDED 0x0100 #define KF_DLGMODE 0x0800 #define KF_MENUMODE 0x1000 #define KF_ALTDOWN 0x2000 #define KF_REPEAT 0x4000 #define KF_UP 0x8000 #ifndef NOVIRTUALKEYCODES /* * Virtual Keys, Standard Set */ #define VK_LBUTTON 0x01 #define VK_RBUTTON 0x02 #define VK_CANCEL 0x03 #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ #if(_WIN32_WINNT >= 0x0500) #define VK_XBUTTON1 0x05 /* NOT contiguous with L & RBUTTON */ #define VK_XBUTTON2 0x06 /* NOT contiguous with L & RBUTTON */ #endif /* _WIN32_WINNT >= 0x0500 */ /* * 0x07 : unassigned */ #define VK_BACK 0x08 #define VK_TAB 0x09 /* * 0x0A - 0x0B : reserved */ #define VK_CLEAR 0x0C #define VK_RETURN 0x0D #define VK_SHIFT 0x10 #define VK_CONTROL 0x11 #define VK_MENU 0x12 #define VK_PAUSE 0x13 #define VK_CAPITAL 0x14 #define VK_KANA 0x15 #define VK_HANGEUL 0x15 /* old name - should be here for compatibility */ #define VK_HANGUL 0x15 #define VK_JUNJA 0x17 #define VK_FINAL 0x18 #define VK_HANJA 0x19 #define VK_KANJI 0x19 #define VK_ESCAPE 0x1B #define VK_CONVERT 0x1C #define VK_NONCONVERT 0x1D #define VK_ACCEPT 0x1E #define VK_MODECHANGE 0x1F #define VK_SPACE 0x20 #define VK_PRIOR 0x21 #define VK_NEXT 0x22 #define VK_END 0x23 #define VK_HOME 0x24 #define VK_LEFT 0x25 #define VK_UP 0x26 #define VK_RIGHT 0x27 #define VK_DOWN 0x28 #define VK_SELECT 0x29 #define VK_PRINT 0x2A #define VK_EXECUTE 0x2B #define VK_SNAPSHOT 0x2C #define VK_INSERT 0x2D #define VK_DELETE 0x2E #define VK_HELP 0x2F /* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */ #define VK_LWIN 0x5B #define VK_RWIN 0x5C #define VK_APPS 0x5D /* * 0x5E : reserved */ #define VK_SLEEP 0x5F #define VK_NUMPAD0 0x60 #define VK_NUMPAD1 0x61 #define VK_NUMPAD2 0x62 #define VK_NUMPAD3 0x63 #define VK_NUMPAD4 0x64 #define VK_NUMPAD5 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define VK_NUMPAD8 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define VK_ADD 0x6B #define VK_SEPARATOR 0x6C #define VK_SUBTRACT 0x6D #define VK_DECIMAL 0x6E #define VK_DIVIDE 0x6F #define VK_F1 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define VK_F12 0x7B #define VK_F13 0x7C #define VK_F14 0x7D #define VK_F15 0x7E #define VK_F16 0x7F #define VK_F17 0x80 #define VK_F18 0x81 #define VK_F19 0x82 #define VK_F20 0x83 #define VK_F21 0x84 #define VK_F22 0x85 #define VK_F23 0x86 #define VK_F24 0x87 /* * 0x88 - 0x8F : unassigned */ #define VK_NUMLOCK 0x90 #define VK_SCROLL 0x91 /* * NEC PC-9800 kbd definitions */ #define VK_OEM_NEC_EQUAL 0x92 // '=' key on numpad /* * Fujitsu/OASYS kbd definitions */ #define VK_OEM_FJ_JISHO 0x92 // 'Dictionary' key #define VK_OEM_FJ_MASSHOU 0x93 // 'Unregister word' key #define VK_OEM_FJ_TOUROKU 0x94 // 'Register word' key #define VK_OEM_FJ_LOYA 0x95 // 'Left OYAYUBI' key #define VK_OEM_FJ_ROYA 0x96 // 'Right OYAYUBI' key /* * 0x97 - 0x9F : unassigned */ /* * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. * Used only as parameters to GetAsyncKeyState() and GetKeyState(). * No other API or message will distinguish left and right keys in this way. */ #define VK_LSHIFT 0xA0 #define VK_RSHIFT 0xA1 #define VK_LCONTROL 0xA2 #define VK_RCONTROL 0xA3 #define VK_LMENU 0xA4 #define VK_RMENU 0xA5 #if(_WIN32_WINNT >= 0x0500) #define VK_BROWSER_BACK 0xA6 #define VK_BROWSER_FORWARD 0xA7 #define VK_BROWSER_REFRESH 0xA8 #define VK_BROWSER_STOP 0xA9 #define VK_BROWSER_SEARCH 0xAA #define VK_BROWSER_FAVORITES 0xAB #define VK_BROWSER_HOME 0xAC #define VK_VOLUME_MUTE 0xAD #define VK_VOLUME_DOWN 0xAE #define VK_VOLUME_UP 0xAF #define VK_MEDIA_NEXT_TRACK 0xB0 #define VK_MEDIA_PREV_TRACK 0xB1 #define VK_MEDIA_STOP 0xB2 #define VK_MEDIA_PLAY_PAUSE 0xB3 #define VK_LAUNCH_MAIL 0xB4 #define VK_LAUNCH_MEDIA_SELECT 0xB5 #define VK_LAUNCH_APP1 0xB6 #define VK_LAUNCH_APP2 0xB7 #endif /* _WIN32_WINNT >= 0x0500 */ /* * 0xB8 - 0xB9 : reserved */ #define VK_OEM_1 0xBA // ';:' for US #define VK_OEM_PLUS 0xBB // '+' any country #define VK_OEM_COMMA 0xBC // ',' any country #define VK_OEM_MINUS 0xBD // '-' any country #define VK_OEM_PERIOD 0xBE // '.' any country #define VK_OEM_2 0xBF // '/?' for US #define VK_OEM_3 0xC0 // '`~' for US /* * 0xC1 - 0xD7 : reserved */ /* * 0xD8 - 0xDA : unassigned */ #define VK_OEM_4 0xDB // '[{' for US #define VK_OEM_5 0xDC // '\|' for US #define VK_OEM_6 0xDD // ']}' for US #define VK_OEM_7 0xDE // ''"' for US #define VK_OEM_8 0xDF /* * 0xE0 : reserved */ /* * Various extended or enhanced keyboards */ #define VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd #define VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd. #define VK_ICO_HELP 0xE3 // Help key on ICO #define VK_ICO_00 0xE4 // 00 key on ICO #if(WINVER >= 0x0400) #define VK_PROCESSKEY 0xE5 #endif /* WINVER >= 0x0400 */ #define VK_ICO_CLEAR 0xE6 #if(_WIN32_WINNT >= 0x0500) #define VK_PACKET 0xE7 #endif /* _WIN32_WINNT >= 0x0500 */ /* * 0xE8 : unassigned */ /* * Nokia/Ericsson definitions */ #define VK_OEM_RESET 0xE9 #define VK_OEM_JUMP 0xEA #define VK_OEM_PA1 0xEB #define VK_OEM_PA2 0xEC #define VK_OEM_PA3 0xED #define VK_OEM_WSCTRL 0xEE #define VK_OEM_CUSEL 0xEF #define VK_OEM_ATTN 0xF0 #define VK_OEM_FINISH 0xF1 #define VK_OEM_COPY 0xF2 #define VK_OEM_AUTO 0xF3 #define VK_OEM_ENLW 0xF4 #define VK_OEM_BACKTAB 0xF5 #define VK_ATTN 0xF6 #define VK_CRSEL 0xF7 #define VK_EXSEL 0xF8 #define VK_EREOF 0xF9 #define VK_PLAY 0xFA #define VK_ZOOM 0xFB #define VK_NONAME 0xFC #define VK_PA1 0xFD #define VK_OEM_CLEAR 0xFE /* * 0xFF : reserved */ #endif /* !NOVIRTUALKEYCODES */ #ifndef NOWH /* * SetWindowsHook() codes */ #define WH_MIN (-1) #define WH_MSGFILTER (-1) #define WH_JOURNALRECORD 0 #define WH_JOURNALPLAYBACK 1 #define WH_KEYBOARD 2 #define WH_GETMESSAGE 3 #define WH_CALLWNDPROC 4 #define WH_CBT 5 #define WH_SYSMSGFILTER 6 #define WH_MOUSE 7 #if defined(_WIN32_WINDOWS) #define WH_HARDWARE 8 #endif #define WH_DEBUG 9 #define WH_SHELL 10 #define WH_FOREGROUNDIDLE 11 #if(WINVER >= 0x0400) #define WH_CALLWNDPROCRET 12 #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0400) #define WH_KEYBOARD_LL 13 #define WH_MOUSE_LL 14 #endif // (_WIN32_WINNT >= 0x0400) #if(WINVER >= 0x0400) #if (_WIN32_WINNT >= 0x0400) #define WH_MAX 14 #else #define WH_MAX 12 #endif // (_WIN32_WINNT >= 0x0400) #else #define WH_MAX 11 #endif #define WH_MINHOOK WH_MIN #define WH_MAXHOOK WH_MAX /* * Hook Codes */ #define HC_ACTION 0 #define HC_GETNEXT 1 #define HC_SKIP 2 #define HC_NOREMOVE 3 #define HC_NOREM HC_NOREMOVE #define HC_SYSMODALON 4 #define HC_SYSMODALOFF 5 /* * CBT Hook Codes */ #define HCBT_MOVESIZE 0 #define HCBT_MINMAX 1 #define HCBT_QS 2 #define HCBT_CREATEWND 3 #define HCBT_DESTROYWND 4 #define HCBT_ACTIVATE 5 #define HCBT_CLICKSKIPPED 6 #define HCBT_KEYSKIPPED 7 #define HCBT_SYSCOMMAND 8 #define HCBT_SETFOCUS 9 /* * HCBT_CREATEWND parameters pointed to by lParam */ typedef struct tagCBT_CREATEWNDA { struct tagCREATESTRUCTA *lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDA, *LPCBT_CREATEWNDA; /* * HCBT_CREATEWND parameters pointed to by lParam */ typedef struct tagCBT_CREATEWNDW { struct tagCREATESTRUCTW *lpcs; HWND hwndInsertAfter; } CBT_CREATEWNDW, *LPCBT_CREATEWNDW; #ifdef UNICODE typedef CBT_CREATEWNDW CBT_CREATEWND; typedef LPCBT_CREATEWNDW LPCBT_CREATEWND; #else typedef CBT_CREATEWNDA CBT_CREATEWND; typedef LPCBT_CREATEWNDA LPCBT_CREATEWND; #endif // UNICODE /* * HCBT_ACTIVATE structure pointed to by lParam */ typedef struct tagCBTACTIVATESTRUCT { BOOL fMouse; HWND hWndActive; } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT; #if(_WIN32_WINNT >= 0x0501) /* * WTSSESSION_NOTIFICATION struct pointed by lParam, for WM_WTSSESSION_CHANGE */ typedef struct tagWTSSESSION_NOTIFICATION { DWORD cbSize; DWORD dwSessionId; } WTSSESSION_NOTIFICATION, *PWTSSESSION_NOTIFICATION; /* * codes passed in WPARAM for WM_WTSSESSION_CHANGE */ #define WTS_CONSOLE_CONNECT 0x1 #define WTS_CONSOLE_DISCONNECT 0x2 #define WTS_REMOTE_CONNECT 0x3 #define WTS_REMOTE_DISCONNECT 0x4 #define WTS_SESSION_LOGON 0x5 #define WTS_SESSION_LOGOFF 0x6 #define WTS_SESSION_LOCK 0x7 #define WTS_SESSION_UNLOCK 0x8 #define WTS_SESSION_REMOTE_CONTROL 0x9 #endif /* _WIN32_WINNT >= 0x0501 */ /* * WH_MSGFILTER Filter Proc Codes */ #define MSGF_DIALOGBOX 0 #define MSGF_MESSAGEBOX 1 #define MSGF_MENU 2 #define MSGF_SCROLLBAR 5 #define MSGF_NEXTWINDOW 6 #define MSGF_MAX 8 // unused #define MSGF_USER 4096 /* * Shell support */ #define HSHELL_WINDOWCREATED 1 #define HSHELL_WINDOWDESTROYED 2 #define HSHELL_ACTIVATESHELLWINDOW 3 #if(WINVER >= 0x0400) #define HSHELL_WINDOWACTIVATED 4 #define HSHELL_GETMINRECT 5 #define HSHELL_REDRAW 6 #define HSHELL_TASKMAN 7 #define HSHELL_LANGUAGE 8 #define HSHELL_SYSMENU 9 #define HSHELL_ENDTASK 10 #endif /* WINVER >= 0x0400 */ #if(_WIN32_WINNT >= 0x0500) #define HSHELL_ACCESSIBILITYSTATE 11 #define HSHELL_APPCOMMAND 12 #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define HSHELL_WINDOWREPLACED 13 #define HSHELL_WINDOWREPLACING 14 #endif /* _WIN32_WINNT >= 0x0501 */ #define HSHELL_HIGHBIT 0x8000 #define HSHELL_FLASH (HSHELL_REDRAW|HSHELL_HIGHBIT) #define HSHELL_RUDEAPPACTIVATED (HSHELL_WINDOWACTIVATED|HSHELL_HIGHBIT) #if(_WIN32_WINNT >= 0x0500) /* wparam for HSHELL_ACCESSIBILITYSTATE */ #define ACCESS_STICKYKEYS 0x0001 #define ACCESS_FILTERKEYS 0x0002 #define ACCESS_MOUSEKEYS 0x0003 /* cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND */ #define APPCOMMAND_BROWSER_BACKWARD 1 #define APPCOMMAND_BROWSER_FORWARD 2 #define APPCOMMAND_BROWSER_REFRESH 3 #define APPCOMMAND_BROWSER_STOP 4 #define APPCOMMAND_BROWSER_SEARCH 5 #define APPCOMMAND_BROWSER_FAVORITES 6 #define APPCOMMAND_BROWSER_HOME 7 #define APPCOMMAND_VOLUME_MUTE 8 #define APPCOMMAND_VOLUME_DOWN 9 #define APPCOMMAND_VOLUME_UP 10 #define APPCOMMAND_MEDIA_NEXTTRACK 11 #define APPCOMMAND_MEDIA_PREVIOUSTRACK 12 #define APPCOMMAND_MEDIA_STOP 13 #define APPCOMMAND_MEDIA_PLAY_PAUSE 14 #define APPCOMMAND_LAUNCH_MAIL 15 #define APPCOMMAND_LAUNCH_MEDIA_SELECT 16 #define APPCOMMAND_LAUNCH_APP1 17 #define APPCOMMAND_LAUNCH_APP2 18 #define APPCOMMAND_BASS_DOWN 19 #define APPCOMMAND_BASS_BOOST 20 #define APPCOMMAND_BASS_UP 21 #define APPCOMMAND_TREBLE_DOWN 22 #define APPCOMMAND_TREBLE_UP 23 #if(_WIN32_WINNT >= 0x0501) #define APPCOMMAND_MICROPHONE_VOLUME_MUTE 24 #define APPCOMMAND_MICROPHONE_VOLUME_DOWN 25 #define APPCOMMAND_MICROPHONE_VOLUME_UP 26 #define APPCOMMAND_HELP 27 #define APPCOMMAND_FIND 28 #define APPCOMMAND_NEW 29 #define APPCOMMAND_OPEN 30 #define APPCOMMAND_CLOSE 31 #define APPCOMMAND_SAVE 32 #define APPCOMMAND_PRINT 33 #define APPCOMMAND_UNDO 34 #define APPCOMMAND_REDO 35 #define APPCOMMAND_COPY 36 #define APPCOMMAND_CUT 37 #define APPCOMMAND_PASTE 38 #define APPCOMMAND_REPLY_TO_MAIL 39 #define APPCOMMAND_FORWARD_MAIL 40 #define APPCOMMAND_SEND_MAIL 41 #define APPCOMMAND_SPELL_CHECK 42 #define APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43 #define APPCOMMAND_MIC_ON_OFF_TOGGLE 44 #define APPCOMMAND_CORRECTION_LIST 45 #define APPCOMMAND_MEDIA_PLAY 46 #define APPCOMMAND_MEDIA_PAUSE 47 #define APPCOMMAND_MEDIA_RECORD 48 #define APPCOMMAND_MEDIA_FAST_FORWARD 49 #define APPCOMMAND_MEDIA_REWIND 50 #define APPCOMMAND_MEDIA_CHANNEL_UP 51 #define APPCOMMAND_MEDIA_CHANNEL_DOWN 52 #endif /* _WIN32_WINNT >= 0x0501 */ #define FAPPCOMMAND_MOUSE 0x8000 #define FAPPCOMMAND_KEY 0 #define FAPPCOMMAND_OEM 0x1000 #define 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 */ typedef struct { HWND hwnd; RECT rc; } SHELLHOOKINFO, *LPSHELLHOOKINFO; /* * Message Structure used in Journaling */ typedef struct tagEVENTMSG { UINT message; UINT paramL; UINT paramH; DWORD time; HWND hwnd; } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG; typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG; /* * Message structure used by WH_CALLWNDPROC */ typedef struct tagCWPSTRUCT { LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT; #if(WINVER >= 0x0400) /* * Message structure used by WH_CALLWNDPROCRET */ typedef struct tagCWPRETSTRUCT { LRESULT lResult; LPARAM lParam; WPARAM wParam; UINT message; HWND hwnd; } CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT; #endif /* WINVER >= 0x0400 */ #if (_WIN32_WINNT >= 0x0400) /* * Low level hook flags */ #define LLKHF_EXTENDED (KF_EXTENDED >> 8) #define LLKHF_INJECTED 0x00000010 #define LLKHF_ALTDOWN (KF_ALTDOWN >> 8) #define LLKHF_UP (KF_UP >> 8) #define LLMHF_INJECTED 0x00000001 /* * Structure used by WH_KEYBOARD_LL */ typedef struct tagKBDLLHOOKSTRUCT { DWORD vkCode; DWORD scanCode; DWORD flags; DWORD time; ULONG_PTR dwExtraInfo; } KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT; /* * Structure used by WH_MOUSE_LL */ typedef struct tagMSLLHOOKSTRUCT { POINT pt; DWORD mouseData; DWORD flags; DWORD time; ULONG_PTR dwExtraInfo; } MSLLHOOKSTRUCT, FAR *LPMSLLHOOKSTRUCT, *PMSLLHOOKSTRUCT; #endif // (_WIN32_WINNT >= 0x0400) /* * Structure used by WH_DEBUG */ typedef struct tagDEBUGHOOKINFO { DWORD idThread; DWORD idThreadInstaller; LPARAM lParam; WPARAM wParam; int code; } DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO; /* * Structure used by WH_MOUSE */ typedef struct tagMOUSEHOOKSTRUCT { POINT pt; HWND hwnd; UINT wHitTestCode; ULONG_PTR dwExtraInfo; } MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; #if(_WIN32_WINNT >= 0x0500) #ifdef __cplusplus typedef struct tagMOUSEHOOKSTRUCTEX : public tagMOUSEHOOKSTRUCT { DWORD mouseData; } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX; #else // ndef __cplusplus typedef struct tagMOUSEHOOKSTRUCTEX { MOUSEHOOKSTRUCT; DWORD mouseData; } MOUSEHOOKSTRUCTEX, *LPMOUSEHOOKSTRUCTEX, *PMOUSEHOOKSTRUCTEX; #endif #endif /* _WIN32_WINNT >= 0x0500 */ #if(WINVER >= 0x0400) /* * Structure used by WH_HARDWARE */ typedef struct tagHARDWAREHOOKSTRUCT { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; } HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT; #endif /* WINVER >= 0x0400 */ #endif /* !NOWH */ /* * Keyboard Layout API */ #define HKL_PREV 0 #define HKL_NEXT 1 #define KLF_ACTIVATE 0x00000001 #define KLF_SUBSTITUTE_OK 0x00000002 #define KLF_REORDER 0x00000008 #if(WINVER >= 0x0400) #define KLF_REPLACELANG 0x00000010 #define KLF_NOTELLSHELL 0x00000080 #endif /* WINVER >= 0x0400 */ #define KLF_SETFORPROCESS 0x00000100 #if(_WIN32_WINNT >= 0x0500) #define KLF_SHIFTLOCK 0x00010000 #define KLF_RESET 0x40000000 #endif /* _WIN32_WINNT >= 0x0500 */ #if(WINVER >= 0x0500) /* * Bits in wParam of WM_INPUTLANGCHANGEREQUEST message */ #define INPUTLANGCHANGE_SYSCHARSET 0x0001 #define INPUTLANGCHANGE_FORWARD 0x0002 #define INPUTLANGCHANGE_BACKWARD 0x0004 #endif /* WINVER >= 0x0500 */ /* * Size of KeyboardLayoutName (number of characters), including nul terminator */ #define KL_NAMELENGTH 9 WINUSERAPI HKL WINAPI LoadKeyboardLayoutA( IN LPCSTR pwszKLID, IN UINT Flags); WINUSERAPI HKL WINAPI LoadKeyboardLayoutW( IN LPCWSTR pwszKLID, IN UINT Flags); #ifdef UNICODE #define LoadKeyboardLayout LoadKeyboardLayoutW #else #define LoadKeyboardLayout LoadKeyboardLayoutA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI HKL WINAPI ActivateKeyboardLayout( IN HKL hkl, IN UINT Flags); #else WINUSERAPI BOOL WINAPI ActivateKeyboardLayout( IN HKL hkl, IN UINT Flags); #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) WINUSERAPI int WINAPI ToUnicodeEx( IN UINT wVirtKey, IN UINT wScanCode, IN CONST BYTE *lpKeyState, OUT LPWSTR pwszBuff, IN int cchBuff, IN UINT wFlags, IN HKL dwhkl); #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI UnloadKeyboardLayout( IN HKL hkl); WINUSERAPI BOOL WINAPI GetKeyboardLayoutNameA( OUT LPSTR pwszKLID); WINUSERAPI BOOL WINAPI GetKeyboardLayoutNameW( OUT LPWSTR pwszKLID); #ifdef UNICODE #define GetKeyboardLayoutName GetKeyboardLayoutNameW #else #define GetKeyboardLayoutName GetKeyboardLayoutNameA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI int WINAPI GetKeyboardLayoutList( IN int nBuff, OUT HKL FAR *lpList); WINUSERAPI HKL WINAPI GetKeyboardLayout( IN DWORD idThread ); #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) typedef struct tagMOUSEMOVEPOINT { int x; int y; DWORD time; ULONG_PTR dwExtraInfo; } MOUSEMOVEPOINT, *PMOUSEMOVEPOINT, FAR* LPMOUSEMOVEPOINT; /* * Values for resolution parameter of GetMouseMovePointsEx */ #define GMMP_USE_DISPLAY_POINTS 1 #define GMMP_USE_HIGH_RESOLUTION_POINTS 2 WINUSERAPI int WINAPI GetMouseMovePointsEx( IN UINT cbSize, IN LPMOUSEMOVEPOINT lppt, IN LPMOUSEMOVEPOINT lpptBuf, IN int nBufPoints, IN DWORD resolution ); #endif /* WINVER >= 0x0500 */ #ifndef NODESKTOP /* * Desktop-specific access flags */ #define DESKTOP_READOBJECTS 0x0001L #define DESKTOP_CREATEWINDOW 0x0002L #define DESKTOP_CREATEMENU 0x0004L #define DESKTOP_HOOKCONTROL 0x0008L #define DESKTOP_JOURNALRECORD 0x0010L #define DESKTOP_JOURNALPLAYBACK 0x0020L #define DESKTOP_ENUMERATE 0x0040L #define DESKTOP_WRITEOBJECTS 0x0080L #define DESKTOP_SWITCHDESKTOP 0x0100L /* * Desktop-specific control flags */ #define DF_ALLOWOTHERACCOUNTHOOK 0x0001L #ifdef _WINGDI_ #ifndef NOGDI WINUSERAPI HDESK WINAPI CreateDesktopA( IN LPCSTR lpszDesktop, IN LPCSTR lpszDevice, IN LPDEVMODEA pDevmode, IN DWORD dwFlags, IN ACCESS_MASK dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpsa); WINUSERAPI HDESK WINAPI CreateDesktopW( IN LPCWSTR lpszDesktop, IN LPCWSTR lpszDevice, IN LPDEVMODEW pDevmode, IN DWORD dwFlags, IN ACCESS_MASK dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpsa); #ifdef UNICODE #define CreateDesktop CreateDesktopW #else #define CreateDesktop CreateDesktopA #endif // !UNICODE #endif /* NOGDI */ #endif /* _WINGDI_ */ WINUSERAPI HDESK WINAPI OpenDesktopA( IN LPCSTR lpszDesktop, IN DWORD dwFlags, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess); WINUSERAPI HDESK WINAPI OpenDesktopW( IN LPCWSTR lpszDesktop, IN DWORD dwFlags, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess); #ifdef UNICODE #define OpenDesktop OpenDesktopW #else #define OpenDesktop OpenDesktopA #endif // !UNICODE WINUSERAPI HDESK WINAPI OpenInputDesktop( IN DWORD dwFlags, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess); WINUSERAPI BOOL WINAPI EnumDesktopsA( IN HWINSTA hwinsta, IN DESKTOPENUMPROCA lpEnumFunc, IN LPARAM lParam); WINUSERAPI BOOL WINAPI EnumDesktopsW( IN HWINSTA hwinsta, IN DESKTOPENUMPROCW lpEnumFunc, IN LPARAM lParam); #ifdef UNICODE #define EnumDesktops EnumDesktopsW #else #define EnumDesktops EnumDesktopsA #endif // !UNICODE WINUSERAPI BOOL WINAPI EnumDesktopWindows( IN HDESK hDesktop, IN WNDENUMPROC lpfn, IN LPARAM lParam); WINUSERAPI BOOL WINAPI SwitchDesktop( IN HDESK hDesktop); WINUSERAPI BOOL WINAPI SetThreadDesktop( IN HDESK hDesktop); WINUSERAPI BOOL WINAPI CloseDesktop( IN HDESK hDesktop); WINUSERAPI HDESK WINAPI GetThreadDesktop( IN DWORD dwThreadId); #endif /* !NODESKTOP */ #ifndef NOWINDOWSTATION /* * Windowstation-specific access flags */ #define WINSTA_ENUMDESKTOPS 0x0001L #define WINSTA_READATTRIBUTES 0x0002L #define WINSTA_ACCESSCLIPBOARD 0x0004L #define WINSTA_CREATEDESKTOP 0x0008L #define WINSTA_WRITEATTRIBUTES 0x0010L #define WINSTA_ACCESSGLOBALATOMS 0x0020L #define WINSTA_EXITWINDOWS 0x0040L #define WINSTA_ENUMERATE 0x0100L #define WINSTA_READSCREEN 0x0200L #define WINSTA_ALL_ACCESS (WINSTA_ENUMDESKTOPS | WINSTA_READATTRIBUTES | WINSTA_ACCESSCLIPBOARD | \ WINSTA_CREATEDESKTOP | WINSTA_WRITEATTRIBUTES | WINSTA_ACCESSGLOBALATOMS | \ WINSTA_EXITWINDOWS | WINSTA_ENUMERATE | WINSTA_READSCREEN) /* * Windowstation-specific attribute flags */ #define WSF_VISIBLE 0x0001L WINUSERAPI HWINSTA WINAPI CreateWindowStationA( IN LPCSTR lpwinsta, IN DWORD dwReserved, IN ACCESS_MASK dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpsa); WINUSERAPI HWINSTA WINAPI CreateWindowStationW( IN LPCWSTR lpwinsta, IN DWORD dwReserved, IN ACCESS_MASK dwDesiredAccess, IN LPSECURITY_ATTRIBUTES lpsa); #ifdef UNICODE #define CreateWindowStation CreateWindowStationW #else #define CreateWindowStation CreateWindowStationA #endif // !UNICODE WINUSERAPI HWINSTA WINAPI OpenWindowStationA( IN LPCSTR lpszWinSta, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess); WINUSERAPI HWINSTA WINAPI OpenWindowStationW( IN LPCWSTR lpszWinSta, IN BOOL fInherit, IN ACCESS_MASK dwDesiredAccess); #ifdef UNICODE #define OpenWindowStation OpenWindowStationW #else #define OpenWindowStation OpenWindowStationA #endif // !UNICODE WINUSERAPI BOOL WINAPI EnumWindowStationsA( IN WINSTAENUMPROCA lpEnumFunc, IN LPARAM lParam); WINUSERAPI BOOL WINAPI EnumWindowStationsW( IN WINSTAENUMPROCW lpEnumFunc, IN LPARAM lParam); #ifdef UNICODE #define EnumWindowStations EnumWindowStationsW #else #define EnumWindowStations EnumWindowStationsA #endif // !UNICODE WINUSERAPI BOOL WINAPI CloseWindowStation( IN HWINSTA hWinSta); WINUSERAPI BOOL WINAPI SetProcessWindowStation( IN HWINSTA hWinSta); WINUSERAPI HWINSTA WINAPI GetProcessWindowStation( VOID); #endif /* !NOWINDOWSTATION */ #ifndef NOSECURITY WINUSERAPI BOOL WINAPI SetUserObjectSecurity( IN HANDLE hObj, IN PSECURITY_INFORMATION pSIRequested, IN PSECURITY_DESCRIPTOR pSID); WINUSERAPI BOOL WINAPI GetUserObjectSecurity( IN HANDLE hObj, IN PSECURITY_INFORMATION pSIRequested, IN OUT PSECURITY_DESCRIPTOR pSID, IN DWORD nLength, OUT LPDWORD lpnLengthNeeded); #define UOI_FLAGS 1 #define UOI_NAME 2 #define UOI_TYPE 3 #define UOI_USER_SID 4 typedef struct tagUSEROBJECTFLAGS { BOOL fInherit; BOOL fReserved; DWORD dwFlags; } USEROBJECTFLAGS, *PUSEROBJECTFLAGS; WINUSERAPI BOOL WINAPI GetUserObjectInformationA( IN HANDLE hObj, IN int nIndex, OUT PVOID pvInfo, IN DWORD nLength, OUT LPDWORD lpnLengthNeeded); WINUSERAPI BOOL WINAPI GetUserObjectInformationW( IN HANDLE hObj, IN int nIndex, OUT PVOID pvInfo, IN DWORD nLength, OUT LPDWORD lpnLengthNeeded); #ifdef UNICODE #define GetUserObjectInformation GetUserObjectInformationW #else #define GetUserObjectInformation GetUserObjectInformationA #endif // !UNICODE WINUSERAPI BOOL WINAPI SetUserObjectInformationA( IN HANDLE hObj, IN int nIndex, IN PVOID pvInfo, IN DWORD nLength); WINUSERAPI BOOL WINAPI SetUserObjectInformationW( IN HANDLE hObj, IN int nIndex, IN PVOID pvInfo, IN DWORD nLength); #ifdef UNICODE #define SetUserObjectInformation SetUserObjectInformationW #else #define SetUserObjectInformation SetUserObjectInformationA #endif // !UNICODE #endif /* !NOSECURITY */ #if(WINVER >= 0x0400) typedef struct tagWNDCLASSEXA { UINT cbSize; /* Win 3.x */ UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; /* Win 4.0 */ HICON hIconSm; } WNDCLASSEXA, *PWNDCLASSEXA, NEAR *NPWNDCLASSEXA, FAR *LPWNDCLASSEXA; typedef struct tagWNDCLASSEXW { UINT cbSize; /* Win 3.x */ UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; /* Win 4.0 */ HICON hIconSm; } WNDCLASSEXW, *PWNDCLASSEXW, NEAR *NPWNDCLASSEXW, FAR *LPWNDCLASSEXW; #ifdef UNICODE typedef WNDCLASSEXW WNDCLASSEX; typedef PWNDCLASSEXW PWNDCLASSEX; typedef NPWNDCLASSEXW NPWNDCLASSEX; typedef LPWNDCLASSEXW LPWNDCLASSEX; #else typedef WNDCLASSEXA WNDCLASSEX; typedef PWNDCLASSEXA PWNDCLASSEX; typedef NPWNDCLASSEXA NPWNDCLASSEX; typedef LPWNDCLASSEXA LPWNDCLASSEX; #endif // UNICODE #endif /* WINVER >= 0x0400 */ typedef struct tagWNDCLASSA { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA; typedef struct tagWNDCLASSW { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW; #ifdef UNICODE typedef WNDCLASSW WNDCLASS; typedef PWNDCLASSW PWNDCLASS; typedef NPWNDCLASSW NPWNDCLASS; typedef LPWNDCLASSW LPWNDCLASS; #else typedef WNDCLASSA WNDCLASS; typedef PWNDCLASSA PWNDCLASS; typedef NPWNDCLASSA NPWNDCLASS; typedef LPWNDCLASSA LPWNDCLASS; #endif // UNICODE WINUSERAPI BOOL IsHungAppWindow( IN HWND hwnd); #if(WINVER >= 0x0501) WINUSERAPI VOID DisableProcessWindowsGhosting( VOID); #endif /* WINVER >= 0x0501 */ #ifndef NOMSG /* * Message structure */ typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; #ifdef _MAC DWORD lPrivate; #endif } MSG, *PMSG, NEAR *NPMSG, FAR *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))) #define MAKEWPARAM(l, h) ((WPARAM)(DWORD)MAKELONG(l, h)) #define MAKELPARAM(l, h) ((LPARAM)(DWORD)MAKELONG(l, h)) #define MAKELRESULT(l, h) ((LRESULT)(DWORD)MAKELONG(l, h)) #endif /* !NOMSG */ #ifndef NOWINOFFSETS /* * Window field offsets for GetWindowLong() */ #define GWL_WNDPROC (-4) #define GWL_HINSTANCE (-6) #define GWL_HWNDPARENT (-8) #define GWL_STYLE (-16) #define GWL_EXSTYLE (-20) #define GWL_USERDATA (-21) #define GWL_ID (-12) #ifdef _WIN64 #undef GWL_WNDPROC #undef GWL_HINSTANCE #undef GWL_HWNDPARENT #undef GWL_USERDATA #endif /* _WIN64 */ #define GWLP_WNDPROC (-4) #define GWLP_HINSTANCE (-6) #define GWLP_HWNDPARENT (-8) #define GWLP_USERDATA (-21) #define GWLP_ID (-12) /* * Class field offsets for GetClassLong() */ #define GCL_MENUNAME (-8) #define GCL_HBRBACKGROUND (-10) #define GCL_HCURSOR (-12) #define GCL_HICON (-14) #define GCL_HMODULE (-16) #define GCL_CBWNDEXTRA (-18) #define GCL_CBCLSEXTRA (-20) #define GCL_WNDPROC (-24) #define GCL_STYLE (-26) #define GCW_ATOM (-32) #if(WINVER >= 0x0400) #define GCL_HICONSM (-34) #endif /* WINVER >= 0x0400 */ #ifdef _WIN64 #undef GCL_MENUNAME #undef GCL_HBRBACKGROUND #undef GCL_HCURSOR #undef GCL_HICON #undef GCL_HMODULE #undef GCL_WNDPROC #undef GCL_HICONSM #endif /* _WIN64 */ #define GCLP_MENUNAME (-8) #define GCLP_HBRBACKGROUND (-10) #define GCLP_HCURSOR (-12) #define GCLP_HICON (-14) #define GCLP_HMODULE (-16) #define GCLP_WNDPROC (-24) #define GCLP_HICONSM (-34) #endif /* !NOWINOFFSETS */ #ifndef NOWINMESSAGES /* * Window Messages */ #define WM_NULL 0x0000 #define WM_CREATE 0x0001 #define WM_DESTROY 0x0002 #define WM_MOVE 0x0003 #define WM_SIZE 0x0005 #define WM_ACTIVATE 0x0006 /* * WM_ACTIVATE state values */ #define WA_INACTIVE 0 #define WA_ACTIVE 1 #define WA_CLICKACTIVE 2 #define WM_SETFOCUS 0x0007 #define WM_KILLFOCUS 0x0008 #define WM_ENABLE 0x000A #define WM_SETREDRAW 0x000B #define WM_SETTEXT 0x000C #define WM_GETTEXT 0x000D #define WM_GETTEXTLENGTH 0x000E #define WM_PAINT 0x000F #define WM_CLOSE 0x0010 #ifndef _WIN32_WCE #define WM_QUERYENDSESSION 0x0011 #define WM_QUERYOPEN 0x0013 #define WM_ENDSESSION 0x0016 #endif #define WM_QUIT 0x0012 #define WM_ERASEBKGND 0x0014 #define WM_SYSCOLORCHANGE 0x0015 #define WM_SHOWWINDOW 0x0018 #define WM_WININICHANGE 0x001A #if(WINVER >= 0x0400) #define WM_SETTINGCHANGE WM_WININICHANGE #endif /* WINVER >= 0x0400 */ #define WM_DEVMODECHANGE 0x001B #define WM_ACTIVATEAPP 0x001C #define WM_FONTCHANGE 0x001D #define WM_TIMECHANGE 0x001E #define WM_CANCELMODE 0x001F #define WM_SETCURSOR 0x0020 #define WM_MOUSEACTIVATE 0x0021 #define WM_CHILDACTIVATE 0x0022 #define WM_QUEUESYNC 0x0023 #define WM_GETMINMAXINFO 0x0024 /* * Struct pointed to by WM_GETMINMAXINFO lParam */ typedef struct tagMINMAXINFO { POINT ptReserved; POINT ptMaxSize; POINT ptMaxPosition; POINT ptMinTrackSize; POINT ptMaxTrackSize; } MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO; #define WM_PAINTICON 0x0026 #define WM_ICONERASEBKGND 0x0027 #define WM_NEXTDLGCTL 0x0028 #define WM_SPOOLERSTATUS 0x002A #define WM_DRAWITEM 0x002B #define WM_MEASUREITEM 0x002C #define WM_DELETEITEM 0x002D #define WM_VKEYTOITEM 0x002E #define WM_CHARTOITEM 0x002F #define WM_SETFONT 0x0030 #define WM_GETFONT 0x0031 #define WM_SETHOTKEY 0x0032 #define WM_GETHOTKEY 0x0033 #define WM_QUERYDRAGICON 0x0037 #define WM_COMPAREITEM 0x0039 #if(WINVER >= 0x0500) #ifndef _WIN32_WCE #define WM_GETOBJECT 0x003D #endif #endif /* WINVER >= 0x0500 */ #define WM_COMPACTING 0x0041 #define WM_COMMNOTIFY 0x0044 /* no longer suported */ #define WM_WINDOWPOSCHANGING 0x0046 #define WM_WINDOWPOSCHANGED 0x0047 #define WM_POWER 0x0048 /* * wParam for WM_POWER window message and DRV_POWER driver notification */ #define PWR_OK 1 #define PWR_FAIL (-1) #define PWR_SUSPENDREQUEST 1 #define PWR_SUSPENDRESUME 2 #define PWR_CRITICALRESUME 3 #define WM_COPYDATA 0x004A #define WM_CANCELJOURNAL 0x004B /* * lParam of WM_COPYDATA message points to... */ typedef struct tagCOPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData; } COPYDATASTRUCT, *PCOPYDATASTRUCT; #if(WINVER >= 0x0400) typedef struct tagMDINEXTMENU { HMENU hmenuIn; HMENU hmenuNext; HWND hwndNext; } MDINEXTMENU, * PMDINEXTMENU, FAR * LPMDINEXTMENU; #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) #define WM_NOTIFY 0x004E #define WM_INPUTLANGCHANGEREQUEST 0x0050 #define WM_INPUTLANGCHANGE 0x0051 #define WM_TCARD 0x0052 #define WM_HELP 0x0053 #define WM_USERCHANGED 0x0054 #define WM_NOTIFYFORMAT 0x0055 #define NFR_ANSI 1 #define NFR_UNICODE 2 #define NF_QUERY 3 #define NF_REQUERY 4 #define WM_CONTEXTMENU 0x007B #define WM_STYLECHANGING 0x007C #define WM_STYLECHANGED 0x007D #define WM_DISPLAYCHANGE 0x007E #define WM_GETICON 0x007F #define WM_SETICON 0x0080 #endif /* WINVER >= 0x0400 */ #define WM_NCCREATE 0x0081 #define WM_NCDESTROY 0x0082 #define WM_NCCALCSIZE 0x0083 #define WM_NCHITTEST 0x0084 #define WM_NCPAINT 0x0085 #define WM_NCACTIVATE 0x0086 #define WM_GETDLGCODE 0x0087 #ifndef _WIN32_WCE #define WM_SYNCPAINT 0x0088 #endif #define WM_NCMOUSEMOVE 0x00A0 #define WM_NCLBUTTONDOWN 0x00A1 #define WM_NCLBUTTONUP 0x00A2 #define WM_NCLBUTTONDBLCLK 0x00A3 #define WM_NCRBUTTONDOWN 0x00A4 #define WM_NCRBUTTONUP 0x00A5 #define WM_NCRBUTTONDBLCLK 0x00A6 #define WM_NCMBUTTONDOWN 0x00A7 #define WM_NCMBUTTONUP 0x00A8 #define WM_NCMBUTTONDBLCLK 0x00A9 #if(_WIN32_WINNT >= 0x0500) #define WM_NCXBUTTONDOWN 0x00AB #define WM_NCXBUTTONUP 0x00AC #define WM_NCXBUTTONDBLCLK 0x00AD #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define WM_INPUT 0x00FF #endif /* _WIN32_WINNT >= 0x0501 */ #define WM_KEYFIRST 0x0100 #define WM_KEYDOWN 0x0100 #define WM_KEYUP 0x0101 #define WM_CHAR 0x0102 #define WM_DEADCHAR 0x0103 #define WM_SYSKEYDOWN 0x0104 #define WM_SYSKEYUP 0x0105 #define WM_SYSCHAR 0x0106 #define WM_SYSDEADCHAR 0x0107 #if(_WIN32_WINNT >= 0x0501) #define WM_UNICHAR 0x0109 #define WM_KEYLAST 0x0109 #define UNICODE_NOCHAR 0xFFFF #else #define WM_KEYLAST 0x0108 #endif /* _WIN32_WINNT >= 0x0501 */ #if(WINVER >= 0x0400) #define WM_IME_STARTCOMPOSITION 0x010D #define WM_IME_ENDCOMPOSITION 0x010E #define WM_IME_COMPOSITION 0x010F #define WM_IME_KEYLAST 0x010F #endif /* WINVER >= 0x0400 */ #define WM_INITDIALOG 0x0110 #define WM_COMMAND 0x0111 #define WM_SYSCOMMAND 0x0112 #define WM_TIMER 0x0113 #define WM_HSCROLL 0x0114 #define WM_VSCROLL 0x0115 #define WM_INITMENU 0x0116 #define WM_INITMENUPOPUP 0x0117 #define WM_MENUSELECT 0x011F #define WM_MENUCHAR 0x0120 #define WM_ENTERIDLE 0x0121 #if(WINVER >= 0x0500) #ifndef _WIN32_WCE #define WM_MENURBUTTONUP 0x0122 #define WM_MENUDRAG 0x0123 #define WM_MENUGETOBJECT 0x0124 #define WM_UNINITMENUPOPUP 0x0125 #define WM_MENUCOMMAND 0x0126 #ifndef _WIN32_WCE #if(_WIN32_WINNT >= 0x0500) #define WM_CHANGEUISTATE 0x0127 #define WM_UPDATEUISTATE 0x0128 #define WM_QUERYUISTATE 0x0129 /* * LOWORD(wParam) values in WM_*UISTATE* */ #define UIS_SET 1 #define UIS_CLEAR 2 #define UIS_INITIALIZE 3 /* * HIWORD(wParam) values in WM_*UISTATE* */ #define UISF_HIDEFOCUS 0x1 #define UISF_HIDEACCEL 0x2 #if(_WIN32_WINNT >= 0x0501) #define UISF_ACTIVE 0x4 #endif /* _WIN32_WINNT >= 0x0501 */ #endif /* _WIN32_WINNT >= 0x0500 */ #endif #endif #endif /* WINVER >= 0x0500 */ #define WM_CTLCOLORMSGBOX 0x0132 #define WM_CTLCOLOREDIT 0x0133 #define WM_CTLCOLORLISTBOX 0x0134 #define WM_CTLCOLORBTN 0x0135 #define WM_CTLCOLORDLG 0x0136 #define WM_CTLCOLORSCROLLBAR 0x0137 #define WM_CTLCOLORSTATIC 0x0138 #define MN_GETHMENU 0x01E1 #define WM_MOUSEFIRST 0x0200 #define WM_MOUSEMOVE 0x0200 #define WM_LBUTTONDOWN 0x0201 #define WM_LBUTTONUP 0x0202 #define WM_LBUTTONDBLCLK 0x0203 #define WM_RBUTTONDOWN 0x0204 #define WM_RBUTTONUP 0x0205 #define WM_RBUTTONDBLCLK 0x0206 #define WM_MBUTTONDOWN 0x0207 #define WM_MBUTTONUP 0x0208 #define WM_MBUTTONDBLCLK 0x0209 #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) #define WM_MOUSEWHEEL 0x020A #endif #if (_WIN32_WINNT >= 0x0500) #define WM_XBUTTONDOWN 0x020B #define WM_XBUTTONUP 0x020C #define WM_XBUTTONDBLCLK 0x020D #endif #if (_WIN32_WINNT >= 0x0500) #define WM_MOUSELAST 0x020D #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) #define WM_MOUSELAST 0x020A #else #define WM_MOUSELAST 0x0209 #endif /* (_WIN32_WINNT >= 0x0500) */ #if(_WIN32_WINNT >= 0x0400) /* Value for rolling one detent */ #define WHEEL_DELTA 120 #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam)) /* Setting to scroll one page for SPI_GET/SETWHEELSCROLLLINES */ #define 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)) /* XButton values are WORD flags */ #define XBUTTON1 0x0001 #define XBUTTON2 0x0002 /* Were there to be an XBUTTON3, its value would be 0x0004 */ #endif /* _WIN32_WINNT >= 0x0500 */ #define WM_PARENTNOTIFY 0x0210 #define WM_ENTERMENULOOP 0x0211 #define WM_EXITMENULOOP 0x0212 #if(WINVER >= 0x0400) #define WM_NEXTMENU 0x0213 #define WM_SIZING 0x0214 #define WM_CAPTURECHANGED 0x0215 #define WM_MOVING 0x0216 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) #define WM_POWERBROADCAST 0x0218 #ifndef _WIN32_WCE #define PBT_APMQUERYSUSPEND 0x0000 #define PBT_APMQUERYSTANDBY 0x0001 #define PBT_APMQUERYSUSPENDFAILED 0x0002 #define PBT_APMQUERYSTANDBYFAILED 0x0003 #define PBT_APMSUSPEND 0x0004 #define PBT_APMSTANDBY 0x0005 #define PBT_APMRESUMECRITICAL 0x0006 #define PBT_APMRESUMESUSPEND 0x0007 #define PBT_APMRESUMESTANDBY 0x0008 #define PBTF_APMRESUMEFROMFAILURE 0x00000001 #define PBT_APMBATTERYLOW 0x0009 #define PBT_APMPOWERSTATUSCHANGE 0x000A #define PBT_APMOEMEVENT 0x000B #define PBT_APMRESUMEAUTOMATIC 0x0012 #endif #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) #define WM_DEVICECHANGE 0x0219 #endif /* WINVER >= 0x0400 */ #define WM_MDICREATE 0x0220 #define WM_MDIDESTROY 0x0221 #define WM_MDIACTIVATE 0x0222 #define WM_MDIRESTORE 0x0223 #define WM_MDINEXT 0x0224 #define WM_MDIMAXIMIZE 0x0225 #define WM_MDITILE 0x0226 #define WM_MDICASCADE 0x0227 #define WM_MDIICONARRANGE 0x0228 #define WM_MDIGETACTIVE 0x0229 #define WM_MDISETMENU 0x0230 #define WM_ENTERSIZEMOVE 0x0231 #define WM_EXITSIZEMOVE 0x0232 #define WM_DROPFILES 0x0233 #define WM_MDIREFRESHMENU 0x0234 #if(WINVER >= 0x0400) #define WM_IME_SETCONTEXT 0x0281 #define WM_IME_NOTIFY 0x0282 #define WM_IME_CONTROL 0x0283 #define WM_IME_COMPOSITIONFULL 0x0284 #define WM_IME_SELECT 0x0285 #define WM_IME_CHAR 0x0286 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define WM_IME_REQUEST 0x0288 #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0400) #define WM_IME_KEYDOWN 0x0290 #define WM_IME_KEYUP 0x0291 #endif /* WINVER >= 0x0400 */ #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500)) #define WM_MOUSEHOVER 0x02A1 #define WM_MOUSELEAVE 0x02A3 #endif #if(WINVER >= 0x0500) #define WM_NCMOUSEHOVER 0x02A0 #define WM_NCMOUSELEAVE 0x02A2 #endif /* WINVER >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define WM_WTSSESSION_CHANGE 0x02B1 #define WM_TABLET_FIRST 0x02c0 #define WM_TABLET_LAST 0x02df #endif /* _WIN32_WINNT >= 0x0501 */ #define WM_CUT 0x0300 #define WM_COPY 0x0301 #define WM_PASTE 0x0302 #define WM_CLEAR 0x0303 #define WM_UNDO 0x0304 #define WM_RENDERFORMAT 0x0305 #define WM_RENDERALLFORMATS 0x0306 #define WM_DESTROYCLIPBOARD 0x0307 #define WM_DRAWCLIPBOARD 0x0308 #define WM_PAINTCLIPBOARD 0x0309 #define WM_VSCROLLCLIPBOARD 0x030A #define WM_SIZECLIPBOARD 0x030B #define WM_ASKCBFORMATNAME 0x030C #define WM_CHANGECBCHAIN 0x030D #define WM_HSCROLLCLIPBOARD 0x030E #define WM_QUERYNEWPALETTE 0x030F #define WM_PALETTEISCHANGING 0x0310 #define WM_PALETTECHANGED 0x0311 #define WM_HOTKEY 0x0312 #if(WINVER >= 0x0400) #define WM_PRINT 0x0317 #define WM_PRINTCLIENT 0x0318 #endif /* WINVER >= 0x0400 */ #if(_WIN32_WINNT >= 0x0500) #define WM_APPCOMMAND 0x0319 #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define WM_THEMECHANGED 0x031A #endif /* _WIN32_WINNT >= 0x0501 */ #if(WINVER >= 0x0400) #define WM_HANDHELDFIRST 0x0358 #define WM_HANDHELDLAST 0x035F #define WM_AFXFIRST 0x0360 #define WM_AFXLAST 0x037F #endif /* WINVER >= 0x0400 */ #define WM_PENWINFIRST 0x0380 #define WM_PENWINLAST 0x038F #if(WINVER >= 0x0400) #define WM_APP 0x8000 #endif /* WINVER >= 0x0400 */ /* * NOTE: All Message Numbers below 0x0400 are RESERVED. * * Private Window Messages Start Here: */ #define WM_USER 0x0400 #if(WINVER >= 0x0400) /* wParam for WM_SIZING message */ #define WMSZ_LEFT 1 #define WMSZ_RIGHT 2 #define WMSZ_TOP 3 #define WMSZ_TOPLEFT 4 #define WMSZ_TOPRIGHT 5 #define WMSZ_BOTTOM 6 #define WMSZ_BOTTOMLEFT 7 #define WMSZ_BOTTOMRIGHT 8 #endif /* WINVER >= 0x0400 */ #ifndef NONCMESSAGES /* * WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes */ #define HTERROR (-2) #define HTTRANSPARENT (-1) #define HTNOWHERE 0 #define HTCLIENT 1 #define HTCAPTION 2 #define HTSYSMENU 3 #define HTGROWBOX 4 #define HTSIZE HTGROWBOX #define HTMENU 5 #define HTHSCROLL 6 #define HTVSCROLL 7 #define HTMINBUTTON 8 #define HTMAXBUTTON 9 #define HTLEFT 10 #define HTRIGHT 11 #define HTTOP 12 #define HTTOPLEFT 13 #define HTTOPRIGHT 14 #define HTBOTTOM 15 #define HTBOTTOMLEFT 16 #define HTBOTTOMRIGHT 17 #define HTBORDER 18 #define HTREDUCE HTMINBUTTON #define HTZOOM HTMAXBUTTON #define HTSIZEFIRST HTLEFT #define HTSIZELAST HTBOTTOMRIGHT #if(WINVER >= 0x0400) #define HTOBJECT 19 #define HTCLOSE 20 #define HTHELP 21 #endif /* WINVER >= 0x0400 */ /* * SendMessageTimeout values */ #define SMTO_NORMAL 0x0000 #define SMTO_BLOCK 0x0001 #define SMTO_ABORTIFHUNG 0x0002 #if(WINVER >= 0x0500) #define SMTO_NOTIMEOUTIFNOTHUNG 0x0008 #endif /* WINVER >= 0x0500 */ #endif /* !NONCMESSAGES */ /* * WM_MOUSEACTIVATE Return Codes */ #define MA_ACTIVATE 1 #define MA_ACTIVATEANDEAT 2 #define MA_NOACTIVATE 3 #define MA_NOACTIVATEANDEAT 4 /* * WM_SETICON / WM_GETICON Type Codes */ #define ICON_SMALL 0 #define ICON_BIG 1 #if(_WIN32_WINNT >= 0x0501) #define ICON_SMALL2 2 #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI UINT WINAPI RegisterWindowMessageA( IN LPCSTR lpString); WINUSERAPI UINT WINAPI RegisterWindowMessageW( IN LPCWSTR lpString); #ifdef UNICODE #define RegisterWindowMessage RegisterWindowMessageW #else #define RegisterWindowMessage RegisterWindowMessageA #endif // !UNICODE /* * WM_SIZE message wParam values */ #define SIZE_RESTORED 0 #define SIZE_MINIMIZED 1 #define SIZE_MAXIMIZED 2 #define SIZE_MAXSHOW 3 #define SIZE_MAXHIDE 4 /* * Obsolete constant names */ #define SIZENORMAL SIZE_RESTORED #define SIZEICONIC SIZE_MINIMIZED #define SIZEFULLSCREEN SIZE_MAXIMIZED #define SIZEZOOMSHOW SIZE_MAXSHOW #define SIZEZOOMHIDE SIZE_MAXHIDE /* * WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam */ typedef struct tagWINDOWPOS { HWND hwnd; HWND hwndInsertAfter; int x; int y; int cx; int cy; UINT flags; } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS; /* * WM_NCCALCSIZE parameter structure */ typedef struct tagNCCALCSIZE_PARAMS { RECT rgrc[3]; PWINDOWPOS lppos; } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; /* * WM_NCCALCSIZE "window valid rect" return values */ #define WVR_ALIGNTOP 0x0010 #define WVR_ALIGNLEFT 0x0020 #define WVR_ALIGNBOTTOM 0x0040 #define WVR_ALIGNRIGHT 0x0080 #define WVR_HREDRAW 0x0100 #define WVR_VREDRAW 0x0200 #define WVR_REDRAW (WVR_HREDRAW | \ WVR_VREDRAW) #define WVR_VALIDRECTS 0x0400 #ifndef NOKEYSTATES /* * Key State Masks for Mouse Messages */ #define MK_LBUTTON 0x0001 #define MK_RBUTTON 0x0002 #define MK_SHIFT 0x0004 #define MK_CONTROL 0x0008 #define MK_MBUTTON 0x0010 #if(_WIN32_WINNT >= 0x0500) #define MK_XBUTTON1 0x0020 #define MK_XBUTTON2 0x0040 #endif /* _WIN32_WINNT >= 0x0500 */ #endif /* !NOKEYSTATES */ #if(_WIN32_WINNT >= 0x0400) #ifndef NOTRACKMOUSEEVENT #define TME_HOVER 0x00000001 #define TME_LEAVE 0x00000002 #if(WINVER >= 0x0500) #define TME_NONCLIENT 0x00000010 #endif /* WINVER >= 0x0500 */ #define TME_QUERY 0x40000000 #define TME_CANCEL 0x80000000 #define HOVER_DEFAULT 0xFFFFFFFF #endif /* _WIN32_WINNT >= 0x0400 */ #if(_WIN32_WINNT >= 0x0400) typedef struct tagTRACKMOUSEEVENT { DWORD cbSize; DWORD dwFlags; HWND hwndTrack; DWORD dwHoverTime; } TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT; WINUSERAPI BOOL WINAPI TrackMouseEvent( IN OUT LPTRACKMOUSEEVENT lpEventTrack); #endif /* _WIN32_WINNT >= 0x0400 */ #if(_WIN32_WINNT >= 0x0400) #endif /* !NOTRACKMOUSEEVENT */ #endif /* _WIN32_WINNT >= 0x0400 */ #endif /* !NOWINMESSAGES */ #ifndef NOWINSTYLES /* * Window Styles */ #define WS_OVERLAPPED 0x00000000L #define WS_POPUP 0x80000000L #define WS_CHILD 0x40000000L #define WS_MINIMIZE 0x20000000L #define WS_VISIBLE 0x10000000L #define WS_DISABLED 0x08000000L #define WS_CLIPSIBLINGS 0x04000000L #define WS_CLIPCHILDREN 0x02000000L #define WS_MAXIMIZE 0x01000000L #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */ #define WS_BORDER 0x00800000L #define WS_DLGFRAME 0x00400000L #define WS_VSCROLL 0x00200000L #define WS_HSCROLL 0x00100000L #define WS_SYSMENU 0x00080000L #define WS_THICKFRAME 0x00040000L #define WS_GROUP 0x00020000L #define WS_TABSTOP 0x00010000L #define WS_MINIMIZEBOX 0x00020000L #define WS_MAXIMIZEBOX 0x00010000L #define WS_TILED WS_OVERLAPPED #define WS_ICONIC WS_MINIMIZE #define WS_SIZEBOX WS_THICKFRAME #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW /* * Common Window Styles */ #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \ WS_CAPTION | \ WS_SYSMENU | \ WS_THICKFRAME | \ WS_MINIMIZEBOX | \ WS_MAXIMIZEBOX) #define WS_POPUPWINDOW (WS_POPUP | \ WS_BORDER | \ WS_SYSMENU) #define WS_CHILDWINDOW (WS_CHILD) /* * Extended Window Styles */ #define WS_EX_DLGMODALFRAME 0x00000001L #define WS_EX_NOPARENTNOTIFY 0x00000004L #define WS_EX_TOPMOST 0x00000008L #define WS_EX_ACCEPTFILES 0x00000010L #define WS_EX_TRANSPARENT 0x00000020L #if(WINVER >= 0x0400) #define WS_EX_MDICHILD 0x00000040L #define WS_EX_TOOLWINDOW 0x00000080L #define WS_EX_WINDOWEDGE 0x00000100L #define WS_EX_CLIENTEDGE 0x00000200L #define WS_EX_CONTEXTHELP 0x00000400L #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) #define WS_EX_RIGHT 0x00001000L #define WS_EX_LEFT 0x00000000L #define WS_EX_RTLREADING 0x00002000L #define WS_EX_LTRREADING 0x00000000L #define WS_EX_LEFTSCROLLBAR 0x00004000L #define WS_EX_RIGHTSCROLLBAR 0x00000000L #define WS_EX_CONTROLPARENT 0x00010000L #define WS_EX_STATICEDGE 0x00020000L #define WS_EX_APPWINDOW 0x00040000L #define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE) #define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST) #endif /* WINVER >= 0x0400 */ #if(_WIN32_WINNT >= 0x0500) #define WS_EX_LAYERED 0x00080000 #endif /* _WIN32_WINNT >= 0x0500 */ #if(WINVER >= 0x0500) #define WS_EX_NOINHERITLAYOUT 0x00100000L // Disable inheritence of mirroring by children #define WS_EX_LAYOUTRTL 0x00400000L // Right to left mirroring #endif /* WINVER >= 0x0500 */ #if(_WIN32_WINNT >= 0x0500) #define WS_EX_COMPOSITED 0x02000000L #define WS_EX_NOACTIVATE 0x08000000L #endif /* _WIN32_WINNT >= 0x0500 */ /* * Class styles */ #define CS_VREDRAW 0x0001 #define CS_HREDRAW 0x0002 #define CS_DBLCLKS 0x0008 #define CS_OWNDC 0x0020 #define CS_CLASSDC 0x0040 #define CS_PARENTDC 0x0080 #define CS_NOCLOSE 0x0200 #define CS_SAVEBITS 0x0800 #define CS_BYTEALIGNCLIENT 0x1000 #define CS_BYTEALIGNWINDOW 0x2000 #define CS_GLOBALCLASS 0x4000 #define CS_IME 0x00010000 #if(_WIN32_WINNT >= 0x0501) #define CS_DROPSHADOW 0x00020000 #endif /* _WIN32_WINNT >= 0x0501 */ #endif /* !NOWINSTYLES */ #if(WINVER >= 0x0400) /* WM_PRINT flags */ #define PRF_CHECKVISIBLE 0x00000001L #define PRF_NONCLIENT 0x00000002L #define PRF_CLIENT 0x00000004L #define PRF_ERASEBKGND 0x00000008L #define PRF_CHILDREN 0x00000010L #define PRF_OWNED 0x00000020L /* 3D border styles */ #define BDR_RAISEDOUTER 0x0001 #define BDR_SUNKENOUTER 0x0002 #define BDR_RAISEDINNER 0x0004 #define BDR_SUNKENINNER 0x0008 #define BDR_OUTER (BDR_RAISEDOUTER | BDR_SUNKENOUTER) #define BDR_INNER (BDR_RAISEDINNER | BDR_SUNKENINNER) #define BDR_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER) #define BDR_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER) #define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER) #define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER) #define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER) #define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER) /* Border flags */ #define BF_LEFT 0x0001 #define BF_TOP 0x0002 #define BF_RIGHT 0x0004 #define BF_BOTTOM 0x0008 #define BF_TOPLEFT (BF_TOP | BF_LEFT) #define BF_TOPRIGHT (BF_TOP | BF_RIGHT) #define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT) #define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT) #define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) #define BF_DIAGONAL 0x0010 // For diagonal lines, the BF_RECT flags specify the end point of the // vector bounded by the rectangle parameter. #define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT) #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) #define BF_MIDDLE 0x0800 /* Fill in the middle */ #define BF_SOFT 0x1000 /* For softer buttons */ #define BF_ADJUST 0x2000 /* Calculate the space left over */ #define BF_FLAT 0x4000 /* For flat rather than 3D borders */ #define BF_MONO 0x8000 /* For monochrome borders */ WINUSERAPI BOOL WINAPI DrawEdge( IN HDC hdc, IN OUT LPRECT qrc, IN UINT edge, IN UINT grfFlags); /* flags for DrawFrameControl */ #define DFC_CAPTION 1 #define DFC_MENU 2 #define DFC_SCROLL 3 #define DFC_BUTTON 4 #if(WINVER >= 0x0500) #define DFC_POPUPMENU 5 #endif /* WINVER >= 0x0500 */ #define DFCS_CAPTIONCLOSE 0x0000 #define DFCS_CAPTIONMIN 0x0001 #define DFCS_CAPTIONMAX 0x0002 #define DFCS_CAPTIONRESTORE 0x0003 #define DFCS_CAPTIONHELP 0x0004 #define DFCS_MENUARROW 0x0000 #define DFCS_MENUCHECK 0x0001 #define DFCS_MENUBULLET 0x0002 #define DFCS_MENUARROWRIGHT 0x0004 #define DFCS_SCROLLUP 0x0000 #define DFCS_SCROLLDOWN 0x0001 #define DFCS_SCROLLLEFT 0x0002 #define DFCS_SCROLLRIGHT 0x0003 #define DFCS_SCROLLCOMBOBOX 0x0005 #define DFCS_SCROLLSIZEGRIP 0x0008 #define DFCS_SCROLLSIZEGRIPRIGHT 0x0010 #define DFCS_BUTTONCHECK 0x0000 #define DFCS_BUTTONRADIOIMAGE 0x0001 #define DFCS_BUTTONRADIOMASK 0x0002 #define DFCS_BUTTONRADIO 0x0004 #define DFCS_BUTTON3STATE 0x0008 #define DFCS_BUTTONPUSH 0x0010 #define DFCS_INACTIVE 0x0100 #define DFCS_PUSHED 0x0200 #define DFCS_CHECKED 0x0400 #if(WINVER >= 0x0500) #define DFCS_TRANSPARENT 0x0800 #define DFCS_HOT 0x1000 #endif /* WINVER >= 0x0500 */ #define DFCS_ADJUSTRECT 0x2000 #define DFCS_FLAT 0x4000 #define DFCS_MONO 0x8000 WINUSERAPI BOOL WINAPI DrawFrameControl( IN HDC, IN OUT LPRECT, IN UINT, IN UINT); /* flags for DrawCaption */ #define DC_ACTIVE 0x0001 #define DC_SMALLCAP 0x0002 #define DC_ICON 0x0004 #define DC_TEXT 0x0008 #define DC_INBUTTON 0x0010 #if(WINVER >= 0x0500) #define DC_GRADIENT 0x0020 #endif /* WINVER >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define DC_BUTTONS 0x1000 #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI BOOL WINAPI DrawCaption(IN HWND, IN HDC, IN CONST RECT *, IN UINT); #define IDANI_OPEN 1 #define IDANI_CAPTION 3 WINUSERAPI BOOL WINAPI DrawAnimatedRects( IN HWND hwnd, IN int idAni, IN CONST RECT * lprcFrom, IN CONST RECT * lprcTo); #endif /* WINVER >= 0x0400 */ #ifndef NOCLIPBOARD /* * Predefined Clipboard Formats */ #define CF_TEXT 1 #define CF_BITMAP 2 #define CF_METAFILEPICT 3 #define CF_SYLK 4 #define CF_DIF 5 #define CF_TIFF 6 #define CF_OEMTEXT 7 #define CF_DIB 8 #define CF_PALETTE 9 #define CF_PENDATA 10 #define CF_RIFF 11 #define CF_WAVE 12 #define CF_UNICODETEXT 13 #define CF_ENHMETAFILE 14 #if(WINVER >= 0x0400) #define CF_HDROP 15 #define CF_LOCALE 16 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define CF_DIBV5 17 #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0500) #define CF_MAX 18 #elif(WINVER >= 0x0400) #define CF_MAX 17 #else #define CF_MAX 15 #endif #define CF_OWNERDISPLAY 0x0080 #define CF_DSPTEXT 0x0081 #define CF_DSPBITMAP 0x0082 #define CF_DSPMETAFILEPICT 0x0083 #define CF_DSPENHMETAFILE 0x008E /* * "Private" formats don't get GlobalFree()'d */ #define CF_PRIVATEFIRST 0x0200 #define CF_PRIVATELAST 0x02FF /* * "GDIOBJ" formats do get DeleteObject()'d */ #define CF_GDIOBJFIRST 0x0300 #define CF_GDIOBJLAST 0x03FF #endif /* !NOCLIPBOARD */ /* * Defines for the fVirt field of the Accelerator table structure. */ #define FVIRTKEY TRUE /* Assumed to be == TRUE */ #define FNOINVERT 0x02 #define FSHIFT 0x04 #define FCONTROL 0x08 #define FALT 0x10 typedef struct tagACCEL { #ifndef _MAC BYTE fVirt; /* Also called the flags field */ WORD key; WORD cmd; #else WORD fVirt; /* Also called the flags field */ WORD key; DWORD cmd; #endif } ACCEL, *LPACCEL; typedef struct tagPAINTSTRUCT { HDC hdc; BOOL fErase; RECT rcPaint; BOOL fRestore; BOOL fIncUpdate; BYTE rgbReserved[32]; } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT; typedef 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; } CREATESTRUCTA, *LPCREATESTRUCTA; typedef 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; } CREATESTRUCTW, *LPCREATESTRUCTW; #ifdef UNICODE typedef CREATESTRUCTW CREATESTRUCT; typedef LPCREATESTRUCTW LPCREATESTRUCT; #else typedef CREATESTRUCTA CREATESTRUCT; typedef LPCREATESTRUCTA LPCREATESTRUCT; #endif // UNICODE typedef struct tagWINDOWPLACEMENT { UINT length; UINT flags; UINT showCmd; POINT ptMinPosition; POINT ptMaxPosition; RECT rcNormalPosition; #ifdef _MAC RECT rcDevice; #endif } WINDOWPLACEMENT; typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT; #define WPF_SETMINPOSITION 0x0001 #define WPF_RESTORETOMAXIMIZED 0x0002 #if(_WIN32_WINNT >= 0x0500) #define WPF_ASYNCWINDOWPLACEMENT 0x0004 #endif /* _WIN32_WINNT >= 0x0500 */ #if(WINVER >= 0x0400) typedef struct tagNMHDR { HWND hwndFrom; UINT_PTR idFrom; UINT code; // NM_ code } NMHDR; typedef NMHDR FAR * LPNMHDR; typedef struct tagSTYLESTRUCT { DWORD styleOld; DWORD styleNew; } STYLESTRUCT, * LPSTYLESTRUCT; #endif /* WINVER >= 0x0400 */ /* * Owner draw control types */ #define ODT_MENU 1 #define ODT_LISTBOX 2 #define ODT_COMBOBOX 3 #define ODT_BUTTON 4 #if(WINVER >= 0x0400) #define ODT_STATIC 5 #endif /* WINVER >= 0x0400 */ /* * Owner draw actions */ #define ODA_DRAWENTIRE 0x0001 #define ODA_SELECT 0x0002 #define ODA_FOCUS 0x0004 /* * Owner draw state */ #define ODS_SELECTED 0x0001 #define ODS_GRAYED 0x0002 #define ODS_DISABLED 0x0004 #define ODS_CHECKED 0x0008 #define ODS_FOCUS 0x0010 #if(WINVER >= 0x0400) #define ODS_DEFAULT 0x0020 #define ODS_COMBOBOXEDIT 0x1000 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define ODS_HOTLIGHT 0x0040 #define ODS_INACTIVE 0x0080 #if(_WIN32_WINNT >= 0x0500) #define ODS_NOACCEL 0x0100 #define ODS_NOFOCUSRECT 0x0200 #endif /* _WIN32_WINNT >= 0x0500 */ #endif /* WINVER >= 0x0500 */ /* * MEASUREITEMSTRUCT for ownerdraw */ typedef struct tagMEASUREITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemWidth; UINT itemHeight; ULONG_PTR itemData; } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT; /* * DRAWITEMSTRUCT for ownerdraw */ typedef struct tagDRAWITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; UINT itemAction; UINT itemState; HWND hwndItem; HDC hDC; RECT rcItem; ULONG_PTR itemData; } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT; /* * DELETEITEMSTRUCT for ownerdraw */ typedef struct tagDELETEITEMSTRUCT { UINT CtlType; UINT CtlID; UINT itemID; HWND hwndItem; ULONG_PTR itemData; } DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT; /* * COMPAREITEMSTUCT for ownerdraw sorting */ typedef struct tagCOMPAREITEMSTRUCT { UINT CtlType; UINT CtlID; HWND hwndItem; UINT itemID1; ULONG_PTR itemData1; UINT itemID2; ULONG_PTR itemData2; DWORD dwLocaleId; } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT; #ifndef NOMSG /* * Message Function Templates */ WINUSERAPI BOOL WINAPI GetMessageA( OUT LPMSG lpMsg, IN HWND hWnd, IN UINT wMsgFilterMin, IN UINT wMsgFilterMax); WINUSERAPI BOOL WINAPI GetMessageW( OUT LPMSG lpMsg, IN HWND hWnd, IN UINT wMsgFilterMin, IN UINT wMsgFilterMax); #ifdef UNICODE #define GetMessage GetMessageW #else #define GetMessage GetMessageA #endif // !UNICODE WINUSERAPI BOOL WINAPI TranslateMessage( IN CONST MSG *lpMsg); WINUSERAPI LRESULT WINAPI DispatchMessageA( IN CONST MSG *lpMsg); WINUSERAPI LRESULT WINAPI DispatchMessageW( IN CONST MSG *lpMsg); #ifdef UNICODE #define DispatchMessage DispatchMessageW #else #define DispatchMessage DispatchMessageA #endif // !UNICODE WINUSERAPI BOOL WINAPI SetMessageQueue( IN int cMessagesMax); WINUSERAPI BOOL WINAPI PeekMessageA( OUT LPMSG lpMsg, IN HWND hWnd, IN UINT wMsgFilterMin, IN UINT wMsgFilterMax, IN UINT wRemoveMsg); WINUSERAPI BOOL WINAPI PeekMessageW( OUT LPMSG lpMsg, IN HWND hWnd, IN UINT wMsgFilterMin, IN UINT wMsgFilterMax, IN UINT wRemoveMsg); #ifdef UNICODE #define PeekMessage PeekMessageW #else #define PeekMessage PeekMessageA #endif // !UNICODE /* * PeekMessage() Options */ #define PM_NOREMOVE 0x0000 #define PM_REMOVE 0x0001 #define PM_NOYIELD 0x0002 #if(WINVER >= 0x0500) #define PM_QS_INPUT (QS_INPUT << 16) #define PM_QS_POSTMESSAGE ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16) #define PM_QS_PAINT (QS_PAINT << 16) #define PM_QS_SENDMESSAGE (QS_SENDMESSAGE << 16) #endif /* WINVER >= 0x0500 */ #endif /* !NOMSG */ WINUSERAPI BOOL WINAPI RegisterHotKey( IN HWND hWnd, IN int id, IN UINT fsModifiers, IN UINT vk); WINUSERAPI BOOL WINAPI UnregisterHotKey( IN HWND hWnd, IN int id); #define MOD_ALT 0x0001 #define MOD_CONTROL 0x0002 #define MOD_SHIFT 0x0004 #define MOD_WIN 0x0008 #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */ #define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */ #ifdef WIN_INTERNAL #ifndef LSTRING #define NOLSTRING #endif /* LSTRING */ #ifndef LFILEIO #define NOLFILEIO #endif /* LFILEIO */ #endif /* WIN_INTERNAL */ #if(WINVER >= 0x0400) #define ENDSESSION_LOGOFF 0x80000000 #endif /* WINVER >= 0x0400 */ #define EWX_LOGOFF 0 #define EWX_SHUTDOWN 0x00000001 #define EWX_REBOOT 0x00000002 #define EWX_FORCE 0x00000004 #define EWX_POWEROFF 0x00000008 #if(_WIN32_WINNT >= 0x0500) #define EWX_FORCEIFHUNG 0x00000010 #endif /* _WIN32_WINNT >= 0x0500 */ #define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF) WINUSERAPI BOOL WINAPI ExitWindowsEx( IN UINT uFlags, IN DWORD dwReserved); WINUSERAPI BOOL WINAPI SwapMouseButton( IN BOOL fSwap); WINUSERAPI DWORD WINAPI GetMessagePos( VOID); WINUSERAPI LONG WINAPI GetMessageTime( VOID); WINUSERAPI LPARAM WINAPI GetMessageExtraInfo( VOID); #if(WINVER >= 0x0400) WINUSERAPI LPARAM WINAPI SetMessageExtraInfo( IN LPARAM lParam); #endif /* WINVER >= 0x0400 */ WINUSERAPI LRESULT WINAPI SendMessageA( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI LRESULT WINAPI SendMessageW( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define SendMessage SendMessageW #else #define SendMessage SendMessageA #endif // !UNICODE WINUSERAPI LRESULT WINAPI SendMessageTimeoutA( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam, IN UINT fuFlags, IN UINT uTimeout, OUT PDWORD_PTR lpdwResult); WINUSERAPI LRESULT WINAPI SendMessageTimeoutW( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam, IN UINT fuFlags, IN UINT uTimeout, OUT PDWORD_PTR lpdwResult); #ifdef UNICODE #define SendMessageTimeout SendMessageTimeoutW #else #define SendMessageTimeout SendMessageTimeoutA #endif // !UNICODE WINUSERAPI BOOL WINAPI SendNotifyMessageA( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI BOOL WINAPI SendNotifyMessageW( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define SendNotifyMessage SendNotifyMessageW #else #define SendNotifyMessage SendNotifyMessageA #endif // !UNICODE WINUSERAPI BOOL WINAPI SendMessageCallbackA( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam, IN SENDASYNCPROC lpResultCallBack, IN ULONG_PTR dwData); WINUSERAPI BOOL WINAPI SendMessageCallbackW( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam, IN SENDASYNCPROC lpResultCallBack, IN ULONG_PTR dwData); #ifdef UNICODE #define SendMessageCallback SendMessageCallbackW #else #define SendMessageCallback SendMessageCallbackA #endif // !UNICODE #if(_WIN32_WINNT >= 0x0501) typedef struct { UINT cbSize; HDESK hdesk; HWND hwnd; LUID luid; } BSMINFO, *PBSMINFO; WINUSERAPI long WINAPI BroadcastSystemMessageExA( IN DWORD, IN LPDWORD, IN UINT, IN WPARAM, IN LPARAM, OUT PBSMINFO); WINUSERAPI long WINAPI BroadcastSystemMessageExW( IN DWORD, IN LPDWORD, IN UINT, IN WPARAM, IN LPARAM, OUT PBSMINFO); #ifdef UNICODE #define BroadcastSystemMessageEx BroadcastSystemMessageExW #else #define BroadcastSystemMessageEx BroadcastSystemMessageExA #endif // !UNICODE #endif /* _WIN32_WINNT >= 0x0501 */ #if(WINVER >= 0x0400) #if defined(_WIN32_WINNT) WINUSERAPI long WINAPI BroadcastSystemMessageA( IN DWORD, IN LPDWORD, IN UINT, IN WPARAM, IN LPARAM); WINUSERAPI long WINAPI BroadcastSystemMessageW( IN DWORD, IN LPDWORD, IN UINT, IN WPARAM, IN LPARAM); #ifdef UNICODE #define BroadcastSystemMessage BroadcastSystemMessageW #else #define BroadcastSystemMessage BroadcastSystemMessageA #endif // !UNICODE #elif defined(_WIN32_WINDOWS) // The Win95 version isn't A/W decorated WINUSERAPI long WINAPI BroadcastSystemMessage( IN DWORD, IN LPDWORD, IN UINT, IN WPARAM, IN LPARAM); #endif //Broadcast Special Message Recipient list #define BSM_ALLCOMPONENTS 0x00000000 #define BSM_VXDS 0x00000001 #define BSM_NETDRIVER 0x00000002 #define BSM_INSTALLABLEDRIVERS 0x00000004 #define BSM_APPLICATIONS 0x00000008 #define BSM_ALLDESKTOPS 0x00000010 //Broadcast Special Message Flags #define BSF_QUERY 0x00000001 #define BSF_IGNORECURRENTTASK 0x00000002 #define BSF_FLUSHDISK 0x00000004 #define BSF_NOHANG 0x00000008 #define BSF_POSTMESSAGE 0x00000010 #define BSF_FORCEIFHUNG 0x00000020 #define BSF_NOTIMEOUTIFNOTHUNG 0x00000040 #if(_WIN32_WINNT >= 0x0500) #define BSF_ALLOWSFW 0x00000080 #define BSF_SENDNOTIFYMESSAGE 0x00000100 #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define BSF_RETURNHDESK 0x00000200 #define BSF_LUID 0x00000400 #endif /* _WIN32_WINNT >= 0x0501 */ #define BROADCAST_QUERY_DENY 0x424D5144 // Return this value to deny a query. #endif /* WINVER >= 0x0400 */ // RegisterDeviceNotification #if(WINVER >= 0x0500) typedef PVOID HDEVNOTIFY; typedef HDEVNOTIFY *PHDEVNOTIFY; #define DEVICE_NOTIFY_WINDOW_HANDLE 0x00000000 #define DEVICE_NOTIFY_SERVICE_HANDLE 0x00000001 #if(_WIN32_WINNT >= 0x0501) #define DEVICE_NOTIFY_ALL_INTERFACE_CLASSES 0x00000004 #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationA( IN HANDLE hRecipient, IN LPVOID NotificationFilter, IN DWORD Flags ); WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationW( IN HANDLE hRecipient, IN LPVOID NotificationFilter, IN DWORD Flags ); #ifdef UNICODE #define RegisterDeviceNotification RegisterDeviceNotificationW #else #define RegisterDeviceNotification RegisterDeviceNotificationA #endif // !UNICODE WINUSERAPI BOOL WINAPI UnregisterDeviceNotification( IN HDEVNOTIFY Handle ); #endif /* WINVER >= 0x0500 */ WINUSERAPI BOOL WINAPI PostMessageA( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI BOOL WINAPI PostMessageW( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define PostMessage PostMessageW #else #define PostMessage PostMessageA #endif // !UNICODE WINUSERAPI BOOL WINAPI PostThreadMessageA( IN DWORD idThread, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI BOOL WINAPI PostThreadMessageW( IN DWORD idThread, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define PostThreadMessage PostThreadMessageW #else #define PostThreadMessage PostThreadMessageA #endif // !UNICODE #define PostAppMessageA(idThread, wMsg, wParam, lParam)\ PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam) #define PostAppMessageW(idThread, wMsg, wParam, lParam)\ PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam) #ifdef UNICODE #define PostAppMessage PostAppMessageW #else #define PostAppMessage PostAppMessageA #endif // !UNICODE /* * Special HWND value for use with PostMessage() and SendMessage() */ #define HWND_BROADCAST ((HWND)0xffff) #if(WINVER >= 0x0500) #define HWND_MESSAGE ((HWND)-3) #endif /* WINVER >= 0x0500 */ WINUSERAPI BOOL WINAPI AttachThreadInput( IN DWORD idAttach, IN DWORD idAttachTo, IN BOOL fAttach); WINUSERAPI BOOL WINAPI ReplyMessage( IN LRESULT lResult); WINUSERAPI BOOL WINAPI WaitMessage( VOID); WINUSERAPI DWORD WINAPI WaitForInputIdle( IN HANDLE hProcess, IN DWORD dwMilliseconds); WINUSERAPI #ifndef _MAC LRESULT WINAPI #else LRESULT CALLBACK #endif DefWindowProcA( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI #ifndef _MAC LRESULT WINAPI #else LRESULT CALLBACK #endif DefWindowProcW( IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define DefWindowProc DefWindowProcW #else #define DefWindowProc DefWindowProcA #endif // !UNICODE WINUSERAPI VOID WINAPI PostQuitMessage( IN int nExitCode); #ifdef STRICT WINUSERAPI LRESULT WINAPI CallWindowProcA( IN WNDPROC lpPrevWndFunc, IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI LRESULT WINAPI CallWindowProcW( IN WNDPROC lpPrevWndFunc, IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define CallWindowProc CallWindowProcW #else #define CallWindowProc CallWindowProcA #endif // !UNICODE #else /* !STRICT */ WINUSERAPI LRESULT WINAPI CallWindowProcA( IN FARPROC lpPrevWndFunc, IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI LRESULT WINAPI CallWindowProcW( IN FARPROC lpPrevWndFunc, IN HWND hWnd, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define CallWindowProc CallWindowProcW #else #define CallWindowProc CallWindowProcA #endif // !UNICODE #endif /* !STRICT */ WINUSERAPI BOOL WINAPI InSendMessage( VOID); #if(WINVER >= 0x0500) WINUSERAPI DWORD WINAPI InSendMessageEx( IN LPVOID lpReserved); /* * InSendMessageEx return value */ #define ISMEX_NOSEND 0x00000000 #define ISMEX_SEND 0x00000001 #define ISMEX_NOTIFY 0x00000002 #define ISMEX_CALLBACK 0x00000004 #define ISMEX_REPLIED 0x00000008 #endif /* WINVER >= 0x0500 */ WINUSERAPI UINT WINAPI GetDoubleClickTime( VOID); WINUSERAPI BOOL WINAPI SetDoubleClickTime( IN UINT); WINUSERAPI ATOM WINAPI RegisterClassA( IN CONST WNDCLASSA *lpWndClass); WINUSERAPI ATOM WINAPI RegisterClassW( IN CONST WNDCLASSW *lpWndClass); #ifdef UNICODE #define RegisterClass RegisterClassW #else #define RegisterClass RegisterClassA #endif // !UNICODE WINUSERAPI BOOL WINAPI UnregisterClassA( IN LPCSTR lpClassName, IN HINSTANCE hInstance); WINUSERAPI BOOL WINAPI UnregisterClassW( IN LPCWSTR lpClassName, IN HINSTANCE hInstance); #ifdef UNICODE #define UnregisterClass UnregisterClassW #else #define UnregisterClass UnregisterClassA #endif // !UNICODE WINUSERAPI BOOL WINAPI GetClassInfoA( IN HINSTANCE hInstance, IN LPCSTR lpClassName, OUT LPWNDCLASSA lpWndClass); WINUSERAPI BOOL WINAPI GetClassInfoW( IN HINSTANCE hInstance, IN LPCWSTR lpClassName, OUT LPWNDCLASSW lpWndClass); #ifdef UNICODE #define GetClassInfo GetClassInfoW #else #define GetClassInfo GetClassInfoA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI ATOM WINAPI RegisterClassExA( IN CONST WNDCLASSEXA *); WINUSERAPI ATOM WINAPI RegisterClassExW( IN CONST WNDCLASSEXW *); #ifdef UNICODE #define RegisterClassEx RegisterClassExW #else #define RegisterClassEx RegisterClassExA #endif // !UNICODE WINUSERAPI BOOL WINAPI GetClassInfoExA( IN HINSTANCE, IN LPCSTR, OUT LPWNDCLASSEXA); WINUSERAPI BOOL WINAPI GetClassInfoExW( IN HINSTANCE, IN LPCWSTR, OUT LPWNDCLASSEXW); #ifdef UNICODE #define GetClassInfoEx GetClassInfoExW #else #define GetClassInfoEx GetClassInfoExA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ #define CW_USEDEFAULT ((int)0x80000000) /* * Special value for CreateWindow, et al. */ #define HWND_DESKTOP ((HWND)0) #if(_WIN32_WINNT >= 0x0501) typedef BOOLEAN (WINAPI * PREGISTERCLASSNAMEW)(LPCWSTR); #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI HWND WINAPI CreateWindowExA( IN DWORD dwExStyle, IN LPCSTR lpClassName, IN LPCSTR lpWindowName, IN DWORD dwStyle, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN HWND hWndParent, IN HMENU hMenu, IN HINSTANCE hInstance, IN LPVOID lpParam); WINUSERAPI HWND WINAPI CreateWindowExW( IN DWORD dwExStyle, IN LPCWSTR lpClassName, IN LPCWSTR lpWindowName, IN DWORD dwStyle, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN HWND hWndParent, IN HMENU hMenu, IN HINSTANCE hInstance, IN LPVOID lpParam); #ifdef UNICODE #define CreateWindowEx CreateWindowExW #else #define CreateWindowEx CreateWindowExA #endif // !UNICODE #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\ CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\ CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\ nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) #ifdef UNICODE #define CreateWindow CreateWindowW #else #define CreateWindow CreateWindowA #endif // !UNICODE WINUSERAPI BOOL WINAPI IsWindow( IN HWND hWnd); WINUSERAPI BOOL WINAPI IsMenu( IN HMENU hMenu); WINUSERAPI BOOL WINAPI IsChild( IN HWND hWndParent, IN HWND hWnd); WINUSERAPI BOOL WINAPI DestroyWindow( IN HWND hWnd); WINUSERAPI BOOL WINAPI ShowWindow( IN HWND hWnd, IN int nCmdShow); #if(WINVER >= 0x0500) WINUSERAPI BOOL WINAPI AnimateWindow( IN HWND hWnd, IN DWORD dwTime, IN DWORD dwFlags); #endif /* WINVER >= 0x0500 */ #if(_WIN32_WINNT >= 0x0500) #if defined(_WINGDI_) && !defined (NOGDI) WINUSERAPI BOOL WINAPI UpdateLayeredWindow( HWND hWnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags); #endif #if(_WIN32_WINNT >= 0x0501) WINUSERAPI BOOL WINAPI GetLayeredWindowAttributes( HWND hwnd, COLORREF *pcrKey, BYTE *pbAlpha, DWORD *pdwFlags); #define PW_CLIENTONLY 0x00000001 WINUSERAPI BOOL WINAPI PrintWindow( IN HWND hwnd, IN HDC hdcBlt, IN UINT nFlags); #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI BOOL WINAPI SetLayeredWindowAttributes( HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); #define LWA_COLORKEY 0x00000001 #define LWA_ALPHA 0x00000002 #define ULW_COLORKEY 0x00000001 #define ULW_ALPHA 0x00000002 #define ULW_OPAQUE 0x00000004 #endif /* _WIN32_WINNT >= 0x0500 */ #if(WINVER >= 0x0400) WINUSERAPI BOOL WINAPI ShowWindowAsync( IN HWND hWnd, IN int nCmdShow); #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI FlashWindow( IN HWND hWnd, IN BOOL bInvert); #if(WINVER >= 0x0500) typedef struct { UINT cbSize; HWND hwnd; DWORD dwFlags; UINT uCount; DWORD dwTimeout; } FLASHWINFO, *PFLASHWINFO; WINUSERAPI BOOL WINAPI FlashWindowEx( PFLASHWINFO pfwi); #define FLASHW_STOP 0 #define FLASHW_CAPTION 0x00000001 #define FLASHW_TRAY 0x00000002 #define FLASHW_ALL (FLASHW_CAPTION | FLASHW_TRAY) #define FLASHW_TIMER 0x00000004 #define FLASHW_TIMERNOFG 0x0000000C #endif /* WINVER >= 0x0500 */ WINUSERAPI BOOL WINAPI ShowOwnedPopups( IN HWND hWnd, IN BOOL fShow); WINUSERAPI BOOL WINAPI OpenIcon( IN HWND hWnd); WINUSERAPI BOOL WINAPI CloseWindow( IN HWND hWnd); WINUSERAPI BOOL WINAPI MoveWindow( IN HWND hWnd, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN BOOL bRepaint); WINUSERAPI BOOL WINAPI SetWindowPos( IN HWND hWnd, IN HWND hWndInsertAfter, IN int X, IN int Y, IN int cx, IN int cy, IN UINT uFlags); WINUSERAPI BOOL WINAPI GetWindowPlacement( IN HWND hWnd, OUT WINDOWPLACEMENT *lpwndpl); WINUSERAPI BOOL WINAPI SetWindowPlacement( IN HWND hWnd, IN CONST WINDOWPLACEMENT *lpwndpl); #ifndef NODEFERWINDOWPOS WINUSERAPI HDWP WINAPI BeginDeferWindowPos( IN int nNumWindows); WINUSERAPI HDWP WINAPI DeferWindowPos( IN HDWP hWinPosInfo, IN HWND hWnd, IN HWND hWndInsertAfter, IN int x, IN int y, IN int cx, IN int cy, IN UINT uFlags); WINUSERAPI BOOL WINAPI EndDeferWindowPos( IN HDWP hWinPosInfo); #endif /* !NODEFERWINDOWPOS */ WINUSERAPI BOOL WINAPI IsWindowVisible( IN HWND hWnd); WINUSERAPI BOOL WINAPI IsIconic( IN HWND hWnd); WINUSERAPI BOOL WINAPI AnyPopup( VOID); WINUSERAPI BOOL WINAPI BringWindowToTop( IN HWND hWnd); WINUSERAPI BOOL WINAPI IsZoomed( IN HWND hWnd); /* * SetWindowPos Flags */ #define SWP_NOSIZE 0x0001 #define SWP_NOMOVE 0x0002 #define SWP_NOZORDER 0x0004 #define SWP_NOREDRAW 0x0008 #define SWP_NOACTIVATE 0x0010 #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */ #define SWP_SHOWWINDOW 0x0040 #define SWP_HIDEWINDOW 0x0080 #define SWP_NOCOPYBITS 0x0100 #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */ #define SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */ #define SWP_DRAWFRAME SWP_FRAMECHANGED #define SWP_NOREPOSITION SWP_NOOWNERZORDER #if(WINVER >= 0x0400) #define SWP_DEFERERASE 0x2000 #define SWP_ASYNCWINDOWPOS 0x4000 #endif /* WINVER >= 0x0400 */ #define HWND_TOP ((HWND)0) #define HWND_BOTTOM ((HWND)1) #define HWND_TOPMOST ((HWND)-1) #define HWND_NOTOPMOST ((HWND)-2) #ifndef NOCTLMGR /* * WARNING: * The following structures must NOT be DWORD padded because they are * followed by strings, etc that do not have to be DWORD aligned. */ #include /* * original NT 32 bit dialog template: */ typedef struct { DWORD style; DWORD dwExtendedStyle; WORD cdit; short x; short y; short cx; short cy; } DLGTEMPLATE; typedef DLGTEMPLATE *LPDLGTEMPLATEA; typedef DLGTEMPLATE *LPDLGTEMPLATEW; #ifdef UNICODE typedef LPDLGTEMPLATEW LPDLGTEMPLATE; #else typedef LPDLGTEMPLATEA LPDLGTEMPLATE; #endif // UNICODE typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA; typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW; #ifdef UNICODE typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE; #else typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE; #endif // UNICODE /* * 32 bit Dialog item template. */ typedef struct { DWORD style; DWORD dwExtendedStyle; short x; short y; short cx; short cy; WORD id; } DLGITEMTEMPLATE; typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA; typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW; #ifdef UNICODE typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE; #else typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE; #endif // UNICODE typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA; typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW; #ifdef UNICODE typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE; #else typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE; #endif // UNICODE #include /* Resume normal packing */ WINUSERAPI HWND WINAPI CreateDialogParamA( IN HINSTANCE hInstance, IN LPCSTR lpTemplateName, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); WINUSERAPI HWND WINAPI CreateDialogParamW( IN HINSTANCE hInstance, IN LPCWSTR lpTemplateName, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); #ifdef UNICODE #define CreateDialogParam CreateDialogParamW #else #define CreateDialogParam CreateDialogParamA #endif // !UNICODE WINUSERAPI HWND WINAPI CreateDialogIndirectParamA( IN HINSTANCE hInstance, IN LPCDLGTEMPLATEA lpTemplate, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); WINUSERAPI HWND WINAPI CreateDialogIndirectParamW( IN HINSTANCE hInstance, IN LPCDLGTEMPLATEW lpTemplate, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); #ifdef UNICODE #define CreateDialogIndirectParam CreateDialogIndirectParamW #else #define CreateDialogIndirectParam CreateDialogIndirectParamA #endif // !UNICODE #define CreateDialogA(hInstance, lpName, hWndParent, lpDialogFunc) \ CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L) #define CreateDialogW(hInstance, lpName, hWndParent, lpDialogFunc) \ CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L) #ifdef UNICODE #define CreateDialog CreateDialogW #else #define CreateDialog CreateDialogA #endif // !UNICODE #define CreateDialogIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \ CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) #define CreateDialogIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \ CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L) #ifdef UNICODE #define CreateDialogIndirect CreateDialogIndirectW #else #define CreateDialogIndirect CreateDialogIndirectA #endif // !UNICODE WINUSERAPI INT_PTR WINAPI DialogBoxParamA( IN HINSTANCE hInstance, IN LPCSTR lpTemplateName, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); WINUSERAPI INT_PTR WINAPI DialogBoxParamW( IN HINSTANCE hInstance, IN LPCWSTR lpTemplateName, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); #ifdef UNICODE #define DialogBoxParam DialogBoxParamW #else #define DialogBoxParam DialogBoxParamA #endif // !UNICODE WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamA( IN HINSTANCE hInstance, IN LPCDLGTEMPLATEA hDialogTemplate, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); WINUSERAPI INT_PTR WINAPI DialogBoxIndirectParamW( IN HINSTANCE hInstance, IN LPCDLGTEMPLATEW hDialogTemplate, IN HWND hWndParent, IN DLGPROC lpDialogFunc, IN LPARAM dwInitParam); #ifdef UNICODE #define DialogBoxIndirectParam DialogBoxIndirectParamW #else #define DialogBoxIndirectParam DialogBoxIndirectParamA #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 #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 #define DialogBoxIndirect DialogBoxIndirectW #else #define DialogBoxIndirect DialogBoxIndirectA #endif // !UNICODE WINUSERAPI BOOL WINAPI EndDialog( IN HWND hDlg, IN INT_PTR nResult); WINUSERAPI HWND WINAPI GetDlgItem( IN HWND hDlg, IN int nIDDlgItem); WINUSERAPI BOOL WINAPI SetDlgItemInt( IN HWND hDlg, IN int nIDDlgItem, IN UINT uValue, IN BOOL bSigned); WINUSERAPI UINT WINAPI GetDlgItemInt( IN HWND hDlg, IN int nIDDlgItem, OUT BOOL *lpTranslated, IN BOOL bSigned); WINUSERAPI BOOL WINAPI SetDlgItemTextA( IN HWND hDlg, IN int nIDDlgItem, IN LPCSTR lpString); WINUSERAPI BOOL WINAPI SetDlgItemTextW( IN HWND hDlg, IN int nIDDlgItem, IN LPCWSTR lpString); #ifdef UNICODE #define SetDlgItemText SetDlgItemTextW #else #define SetDlgItemText SetDlgItemTextA #endif // !UNICODE WINUSERAPI UINT WINAPI GetDlgItemTextA( IN HWND hDlg, IN int nIDDlgItem, OUT LPSTR lpString, IN int nMaxCount); WINUSERAPI UINT WINAPI GetDlgItemTextW( IN HWND hDlg, IN int nIDDlgItem, OUT LPWSTR lpString, IN int nMaxCount); #ifdef UNICODE #define GetDlgItemText GetDlgItemTextW #else #define GetDlgItemText GetDlgItemTextA #endif // !UNICODE WINUSERAPI BOOL WINAPI CheckDlgButton( IN HWND hDlg, IN int nIDButton, IN UINT uCheck); WINUSERAPI BOOL WINAPI CheckRadioButton( IN HWND hDlg, IN int nIDFirstButton, IN int nIDLastButton, IN int nIDCheckButton); WINUSERAPI UINT WINAPI IsDlgButtonChecked( IN HWND hDlg, IN int nIDButton); WINUSERAPI LRESULT WINAPI SendDlgItemMessageA( IN HWND hDlg, IN int nIDDlgItem, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI LRESULT WINAPI SendDlgItemMessageW( IN HWND hDlg, IN int nIDDlgItem, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define SendDlgItemMessage SendDlgItemMessageW #else #define SendDlgItemMessage SendDlgItemMessageA #endif // !UNICODE WINUSERAPI HWND WINAPI GetNextDlgGroupItem( IN HWND hDlg, IN HWND hCtl, IN BOOL bPrevious); WINUSERAPI HWND WINAPI GetNextDlgTabItem( IN HWND hDlg, IN HWND hCtl, IN BOOL bPrevious); WINUSERAPI int WINAPI GetDlgCtrlID( IN HWND hWnd); WINUSERAPI long WINAPI GetDialogBaseUnits(VOID); WINUSERAPI #ifndef _MAC LRESULT WINAPI #else LRESULT CALLBACK #endif DefDlgProcA( IN HWND hDlg, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI #ifndef _MAC LRESULT WINAPI #else LRESULT CALLBACK #endif DefDlgProcW( IN HWND hDlg, IN UINT Msg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define DefDlgProc DefDlgProcW #else #define DefDlgProc DefDlgProcA #endif // !UNICODE /* * Window extra byted needed for private dialog classes. */ #ifndef _MAC #define DLGWINDOWEXTRA 30 #else #define DLGWINDOWEXTRA 48 #endif #endif /* !NOCTLMGR */ #ifndef NOMSG WINUSERAPI BOOL WINAPI CallMsgFilterA( IN LPMSG lpMsg, IN int nCode); WINUSERAPI BOOL WINAPI CallMsgFilterW( IN LPMSG lpMsg, IN int nCode); #ifdef UNICODE #define CallMsgFilter CallMsgFilterW #else #define CallMsgFilter CallMsgFilterA #endif // !UNICODE #endif /* !NOMSG */ #ifndef NOCLIPBOARD /* * Clipboard Manager Functions */ WINUSERAPI BOOL WINAPI OpenClipboard( IN HWND hWndNewOwner); WINUSERAPI BOOL WINAPI CloseClipboard( VOID); #if(WINVER >= 0x0500) WINUSERAPI DWORD WINAPI GetClipboardSequenceNumber( VOID); #endif /* WINVER >= 0x0500 */ WINUSERAPI HWND WINAPI GetClipboardOwner( VOID); WINUSERAPI HWND WINAPI SetClipboardViewer( IN HWND hWndNewViewer); WINUSERAPI HWND WINAPI GetClipboardViewer( VOID); WINUSERAPI BOOL WINAPI ChangeClipboardChain( IN HWND hWndRemove, IN HWND hWndNewNext); WINUSERAPI HANDLE WINAPI SetClipboardData( IN UINT uFormat, IN HANDLE hMem); WINUSERAPI HANDLE WINAPI GetClipboardData( IN UINT uFormat); WINUSERAPI UINT WINAPI RegisterClipboardFormatA( IN LPCSTR lpszFormat); WINUSERAPI UINT WINAPI RegisterClipboardFormatW( IN LPCWSTR lpszFormat); #ifdef UNICODE #define RegisterClipboardFormat RegisterClipboardFormatW #else #define RegisterClipboardFormat RegisterClipboardFormatA #endif // !UNICODE WINUSERAPI int WINAPI CountClipboardFormats( VOID); WINUSERAPI UINT WINAPI EnumClipboardFormats( IN UINT format); WINUSERAPI int WINAPI GetClipboardFormatNameA( IN UINT format, OUT LPSTR lpszFormatName, IN int cchMaxCount); WINUSERAPI int WINAPI GetClipboardFormatNameW( IN UINT format, OUT LPWSTR lpszFormatName, IN int cchMaxCount); #ifdef UNICODE #define GetClipboardFormatName GetClipboardFormatNameW #else #define GetClipboardFormatName GetClipboardFormatNameA #endif // !UNICODE WINUSERAPI BOOL WINAPI EmptyClipboard( VOID); WINUSERAPI BOOL WINAPI IsClipboardFormatAvailable( IN UINT format); WINUSERAPI int WINAPI GetPriorityClipboardFormat( OUT UINT *paFormatPriorityList, IN int cFormats); WINUSERAPI HWND WINAPI GetOpenClipboardWindow( VOID); #endif /* !NOCLIPBOARD */ /* * Character Translation Routines */ WINUSERAPI BOOL WINAPI CharToOemA( IN LPCSTR lpszSrc, OUT LPSTR lpszDst); WINUSERAPI BOOL WINAPI CharToOemW( IN LPCWSTR lpszSrc, OUT LPSTR lpszDst); #ifdef UNICODE #define CharToOem CharToOemW #else #define CharToOem CharToOemA #endif // !UNICODE WINUSERAPI BOOL WINAPI OemToCharA( IN LPCSTR lpszSrc, OUT LPSTR lpszDst); WINUSERAPI BOOL WINAPI OemToCharW( IN LPCSTR lpszSrc, OUT LPWSTR lpszDst); #ifdef UNICODE #define OemToChar OemToCharW #else #define OemToChar OemToCharA #endif // !UNICODE WINUSERAPI BOOL WINAPI CharToOemBuffA( IN LPCSTR lpszSrc, OUT LPSTR lpszDst, IN DWORD cchDstLength); WINUSERAPI BOOL WINAPI CharToOemBuffW( IN LPCWSTR lpszSrc, OUT LPSTR lpszDst, IN DWORD cchDstLength); #ifdef UNICODE #define CharToOemBuff CharToOemBuffW #else #define CharToOemBuff CharToOemBuffA #endif // !UNICODE WINUSERAPI BOOL WINAPI OemToCharBuffA( IN LPCSTR lpszSrc, OUT LPSTR lpszDst, IN DWORD cchDstLength); WINUSERAPI BOOL WINAPI OemToCharBuffW( IN LPCSTR lpszSrc, OUT LPWSTR lpszDst, IN DWORD cchDstLength); #ifdef UNICODE #define OemToCharBuff OemToCharBuffW #else #define OemToCharBuff OemToCharBuffA #endif // !UNICODE WINUSERAPI LPSTR WINAPI CharUpperA( IN OUT LPSTR lpsz); WINUSERAPI LPWSTR WINAPI CharUpperW( IN OUT LPWSTR lpsz); #ifdef UNICODE #define CharUpper CharUpperW #else #define CharUpper CharUpperA #endif // !UNICODE WINUSERAPI DWORD WINAPI CharUpperBuffA( IN OUT LPSTR lpsz, IN DWORD cchLength); WINUSERAPI DWORD WINAPI CharUpperBuffW( IN OUT LPWSTR lpsz, IN DWORD cchLength); #ifdef UNICODE #define CharUpperBuff CharUpperBuffW #else #define CharUpperBuff CharUpperBuffA #endif // !UNICODE WINUSERAPI LPSTR WINAPI CharLowerA( IN OUT LPSTR lpsz); WINUSERAPI LPWSTR WINAPI CharLowerW( IN OUT LPWSTR lpsz); #ifdef UNICODE #define CharLower CharLowerW #else #define CharLower CharLowerA #endif // !UNICODE WINUSERAPI DWORD WINAPI CharLowerBuffA( IN OUT LPSTR lpsz, IN DWORD cchLength); WINUSERAPI DWORD WINAPI CharLowerBuffW( IN OUT LPWSTR lpsz, IN DWORD cchLength); #ifdef UNICODE #define CharLowerBuff CharLowerBuffW #else #define CharLowerBuff CharLowerBuffA #endif // !UNICODE WINUSERAPI LPSTR WINAPI CharNextA( IN LPCSTR lpsz); WINUSERAPI LPWSTR WINAPI CharNextW( IN LPCWSTR lpsz); #ifdef UNICODE #define CharNext CharNextW #else #define CharNext CharNextA #endif // !UNICODE WINUSERAPI LPSTR WINAPI CharPrevA( IN LPCSTR lpszStart, IN LPCSTR lpszCurrent); WINUSERAPI LPWSTR WINAPI CharPrevW( IN LPCWSTR lpszStart, IN LPCWSTR lpszCurrent); #ifdef UNICODE #define CharPrev CharPrevW #else #define CharPrev CharPrevA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI LPSTR WINAPI CharNextExA( IN WORD CodePage, IN LPCSTR lpCurrentChar, IN DWORD dwFlags); WINUSERAPI LPSTR WINAPI CharPrevExA( IN WORD CodePage, IN LPCSTR lpStart, IN LPCSTR lpCurrentChar, IN DWORD dwFlags); #endif /* WINVER >= 0x0400 */ /* * Compatibility defines for character translation routines */ #define AnsiToOem CharToOemA #define OemToAnsi OemToCharA #define AnsiToOemBuff CharToOemBuffA #define OemToAnsiBuff OemToCharBuffA #define AnsiUpper CharUpperA #define AnsiUpperBuff CharUpperBuffA #define AnsiLower CharLowerA #define AnsiLowerBuff CharLowerBuffA #define AnsiNext CharNextA #define AnsiPrev CharPrevA #ifndef NOLANGUAGE /* * Language dependent Routines */ WINUSERAPI BOOL WINAPI IsCharAlphaA( IN CHAR ch); WINUSERAPI BOOL WINAPI IsCharAlphaW( IN WCHAR ch); #ifdef UNICODE #define IsCharAlpha IsCharAlphaW #else #define IsCharAlpha IsCharAlphaA #endif // !UNICODE WINUSERAPI BOOL WINAPI IsCharAlphaNumericA( IN CHAR ch); WINUSERAPI BOOL WINAPI IsCharAlphaNumericW( IN WCHAR ch); #ifdef UNICODE #define IsCharAlphaNumeric IsCharAlphaNumericW #else #define IsCharAlphaNumeric IsCharAlphaNumericA #endif // !UNICODE WINUSERAPI BOOL WINAPI IsCharUpperA( IN CHAR ch); WINUSERAPI BOOL WINAPI IsCharUpperW( IN WCHAR ch); #ifdef UNICODE #define IsCharUpper IsCharUpperW #else #define IsCharUpper IsCharUpperA #endif // !UNICODE WINUSERAPI BOOL WINAPI IsCharLowerA( IN CHAR ch); WINUSERAPI BOOL WINAPI IsCharLowerW( IN WCHAR ch); #ifdef UNICODE #define IsCharLower IsCharLowerW #else #define IsCharLower IsCharLowerA #endif // !UNICODE #endif /* !NOLANGUAGE */ WINUSERAPI HWND WINAPI SetFocus( IN HWND hWnd); WINUSERAPI HWND WINAPI GetActiveWindow( VOID); WINUSERAPI HWND WINAPI GetFocus( VOID); WINUSERAPI UINT WINAPI GetKBCodePage( VOID); WINUSERAPI SHORT WINAPI GetKeyState( IN int nVirtKey); WINUSERAPI SHORT WINAPI GetAsyncKeyState( IN int vKey); WINUSERAPI BOOL WINAPI GetKeyboardState( OUT PBYTE lpKeyState); WINUSERAPI BOOL WINAPI SetKeyboardState( IN LPBYTE lpKeyState); WINUSERAPI int WINAPI GetKeyNameTextA( IN LONG lParam, OUT LPSTR lpString, IN int nSize ); WINUSERAPI int WINAPI GetKeyNameTextW( IN LONG lParam, OUT LPWSTR lpString, IN int nSize ); #ifdef UNICODE #define GetKeyNameText GetKeyNameTextW #else #define GetKeyNameText GetKeyNameTextA #endif // !UNICODE WINUSERAPI int WINAPI GetKeyboardType( IN int nTypeFlag); WINUSERAPI int WINAPI ToAscii( IN UINT uVirtKey, IN UINT uScanCode, IN CONST BYTE *lpKeyState, OUT LPWORD lpChar, IN UINT uFlags); #if(WINVER >= 0x0400) WINUSERAPI int WINAPI ToAsciiEx( IN UINT uVirtKey, IN UINT uScanCode, IN CONST BYTE *lpKeyState, OUT LPWORD lpChar, IN UINT uFlags, IN HKL dwhkl); #endif /* WINVER >= 0x0400 */ WINUSERAPI int WINAPI ToUnicode( IN UINT wVirtKey, IN UINT wScanCode, IN CONST BYTE *lpKeyState, OUT LPWSTR pwszBuff, IN int cchBuff, IN UINT wFlags); WINUSERAPI DWORD WINAPI OemKeyScan( IN WORD wOemChar); WINUSERAPI SHORT WINAPI VkKeyScanA( IN CHAR ch); WINUSERAPI SHORT WINAPI VkKeyScanW( IN WCHAR ch); #ifdef UNICODE #define VkKeyScan VkKeyScanW #else #define VkKeyScan VkKeyScanA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI SHORT WINAPI VkKeyScanExA( IN CHAR ch, IN HKL dwhkl); WINUSERAPI SHORT WINAPI VkKeyScanExW( IN WCHAR ch, IN HKL dwhkl); #ifdef UNICODE #define VkKeyScanEx VkKeyScanExW #else #define VkKeyScanEx VkKeyScanExA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ #define KEYEVENTF_EXTENDEDKEY 0x0001 #define KEYEVENTF_KEYUP 0x0002 #if(_WIN32_WINNT >= 0x0500) #define KEYEVENTF_UNICODE 0x0004 #define KEYEVENTF_SCANCODE 0x0008 #endif /* _WIN32_WINNT >= 0x0500 */ WINUSERAPI VOID WINAPI keybd_event( IN BYTE bVk, IN BYTE bScan, IN DWORD dwFlags, IN ULONG_PTR dwExtraInfo); #define MOUSEEVENTF_MOVE 0x0001 /* mouse move */ #define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */ #define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */ #define MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */ #define MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */ #define MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */ #define MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */ #define MOUSEEVENTF_XDOWN 0x0080 /* x button down */ #define MOUSEEVENTF_XUP 0x0100 /* x button down */ #define MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */ #define MOUSEEVENTF_VIRTUALDESK 0x4000 /* map to entire virtual desktop */ #define MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */ WINUSERAPI VOID WINAPI mouse_event( IN DWORD dwFlags, IN DWORD dx, IN DWORD dy, IN DWORD dwData, IN ULONG_PTR dwExtraInfo); #if (_WIN32_WINNT > 0x0400) typedef struct tagMOUSEINPUT { LONG dx; LONG dy; DWORD mouseData; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } MOUSEINPUT, *PMOUSEINPUT, FAR* LPMOUSEINPUT; typedef struct tagKEYBDINPUT { WORD wVk; WORD wScan; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT; typedef struct tagHARDWAREINPUT { DWORD uMsg; WORD wParamL; WORD wParamH; } HARDWAREINPUT, *PHARDWAREINPUT, FAR* LPHARDWAREINPUT; #define INPUT_MOUSE 0 #define INPUT_KEYBOARD 1 #define INPUT_HARDWARE 2 typedef struct tagINPUT { DWORD type; union { MOUSEINPUT mi; KEYBDINPUT ki; HARDWAREINPUT hi; }; } INPUT, *PINPUT, FAR* LPINPUT; WINUSERAPI UINT WINAPI SendInput( IN UINT cInputs, // number of input in the array IN LPINPUT pInputs, // array of inputs IN int cbSize); // sizeof(INPUT) #endif // (_WIN32_WINNT > 0x0400) #if(_WIN32_WINNT >= 0x0500) typedef struct tagLASTINPUTINFO { UINT cbSize; DWORD dwTime; } LASTINPUTINFO, * PLASTINPUTINFO; WINUSERAPI BOOL WINAPI GetLastInputInfo( OUT PLASTINPUTINFO plii); #endif /* _WIN32_WINNT >= 0x0500 */ WINUSERAPI UINT WINAPI MapVirtualKeyA( IN UINT uCode, IN UINT uMapType); WINUSERAPI UINT WINAPI MapVirtualKeyW( IN UINT uCode, IN UINT uMapType); #ifdef UNICODE #define MapVirtualKey MapVirtualKeyW #else #define MapVirtualKey MapVirtualKeyA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI UINT WINAPI MapVirtualKeyExA( IN UINT uCode, IN UINT uMapType, IN HKL dwhkl); WINUSERAPI UINT WINAPI MapVirtualKeyExW( IN UINT uCode, IN UINT uMapType, IN HKL dwhkl); #ifdef UNICODE #define MapVirtualKeyEx MapVirtualKeyExW #else #define MapVirtualKeyEx MapVirtualKeyExA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI GetInputState( VOID); WINUSERAPI DWORD WINAPI GetQueueStatus( IN UINT flags); WINUSERAPI HWND WINAPI GetCapture( VOID); WINUSERAPI HWND WINAPI SetCapture( IN HWND hWnd); WINUSERAPI BOOL WINAPI ReleaseCapture( VOID); WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjects( IN DWORD nCount, IN CONST HANDLE *pHandles, IN BOOL fWaitAll, IN DWORD dwMilliseconds, IN DWORD dwWakeMask); WINUSERAPI DWORD WINAPI MsgWaitForMultipleObjectsEx( IN DWORD nCount, IN CONST HANDLE *pHandles, IN DWORD dwMilliseconds, IN DWORD dwWakeMask, IN DWORD dwFlags); #define MWMO_WAITALL 0x0001 #define MWMO_ALERTABLE 0x0002 #define MWMO_INPUTAVAILABLE 0x0004 /* * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */ #define QS_KEY 0x0001 #define QS_MOUSEMOVE 0x0002 #define QS_MOUSEBUTTON 0x0004 #define QS_POSTMESSAGE 0x0008 #define QS_TIMER 0x0010 #define QS_PAINT 0x0020 #define QS_SENDMESSAGE 0x0040 #define QS_HOTKEY 0x0080 #define QS_ALLPOSTMESSAGE 0x0100 #if(_WIN32_WINNT >= 0x0501) #define QS_RAWINPUT 0x0400 #endif /* _WIN32_WINNT >= 0x0501 */ #define QS_MOUSE (QS_MOUSEMOVE | \ QS_MOUSEBUTTON) #if (_WIN32_WINNT >= 0x0501) #define QS_INPUT (QS_MOUSE | \ QS_KEY | \ QS_RAWINPUT) #else #define QS_INPUT (QS_MOUSE | \ QS_KEY) #endif // (_WIN32_WINNT >= 0x0501) #define QS_ALLEVENTS (QS_INPUT | \ QS_POSTMESSAGE | \ QS_TIMER | \ QS_PAINT | \ QS_HOTKEY) #define QS_ALLINPUT (QS_INPUT | \ QS_POSTMESSAGE | \ QS_TIMER | \ QS_PAINT | \ QS_HOTKEY | \ QS_SENDMESSAGE) /* * Windows Functions */ WINUSERAPI UINT_PTR WINAPI SetTimer( IN HWND hWnd, IN UINT_PTR nIDEvent, IN UINT uElapse, IN TIMERPROC lpTimerFunc); WINUSERAPI BOOL WINAPI KillTimer( IN HWND hWnd, IN UINT_PTR uIDEvent); WINUSERAPI BOOL WINAPI IsWindowUnicode( IN HWND hWnd); WINUSERAPI BOOL WINAPI EnableWindow( IN HWND hWnd, IN BOOL bEnable); WINUSERAPI BOOL WINAPI IsWindowEnabled( IN HWND hWnd); WINUSERAPI HACCEL WINAPI LoadAcceleratorsA( IN HINSTANCE hInstance, IN LPCSTR lpTableName); WINUSERAPI HACCEL WINAPI LoadAcceleratorsW( IN HINSTANCE hInstance, IN LPCWSTR lpTableName); #ifdef UNICODE #define LoadAccelerators LoadAcceleratorsW #else #define LoadAccelerators LoadAcceleratorsA #endif // !UNICODE WINUSERAPI HACCEL WINAPI CreateAcceleratorTableA( IN LPACCEL, IN int); WINUSERAPI HACCEL WINAPI CreateAcceleratorTableW( IN LPACCEL, IN int); #ifdef UNICODE #define CreateAcceleratorTable CreateAcceleratorTableW #else #define CreateAcceleratorTable CreateAcceleratorTableA #endif // !UNICODE WINUSERAPI BOOL WINAPI DestroyAcceleratorTable( IN HACCEL hAccel); WINUSERAPI int WINAPI CopyAcceleratorTableA( IN HACCEL hAccelSrc, OUT LPACCEL lpAccelDst, IN int cAccelEntries); WINUSERAPI int WINAPI CopyAcceleratorTableW( IN HACCEL hAccelSrc, OUT LPACCEL lpAccelDst, IN int cAccelEntries); #ifdef UNICODE #define CopyAcceleratorTable CopyAcceleratorTableW #else #define CopyAcceleratorTable CopyAcceleratorTableA #endif // !UNICODE #ifndef NOMSG WINUSERAPI int WINAPI TranslateAcceleratorA( IN HWND hWnd, IN HACCEL hAccTable, IN LPMSG lpMsg); WINUSERAPI int WINAPI TranslateAcceleratorW( IN HWND hWnd, IN HACCEL hAccTable, IN LPMSG lpMsg); #ifdef UNICODE #define TranslateAccelerator TranslateAcceleratorW #else #define TranslateAccelerator TranslateAcceleratorA #endif // !UNICODE #endif /* !NOMSG */ #ifndef NOSYSMETRICS /* * GetSystemMetrics() codes */ #define SM_CXSCREEN 0 #define SM_CYSCREEN 1 #define SM_CXVSCROLL 2 #define SM_CYHSCROLL 3 #define SM_CYCAPTION 4 #define SM_CXBORDER 5 #define SM_CYBORDER 6 #define SM_CXDLGFRAME 7 #define SM_CYDLGFRAME 8 #define SM_CYVTHUMB 9 #define SM_CXHTHUMB 10 #define SM_CXICON 11 #define SM_CYICON 12 #define SM_CXCURSOR 13 #define SM_CYCURSOR 14 #define SM_CYMENU 15 #define SM_CXFULLSCREEN 16 #define SM_CYFULLSCREEN 17 #define SM_CYKANJIWINDOW 18 #define SM_MOUSEPRESENT 19 #define SM_CYVSCROLL 20 #define SM_CXHSCROLL 21 #define SM_DEBUG 22 #define SM_SWAPBUTTON 23 #define SM_RESERVED1 24 #define SM_RESERVED2 25 #define SM_RESERVED3 26 #define SM_RESERVED4 27 #define SM_CXMIN 28 #define SM_CYMIN 29 #define SM_CXSIZE 30 #define SM_CYSIZE 31 #define SM_CXFRAME 32 #define SM_CYFRAME 33 #define SM_CXMINTRACK 34 #define SM_CYMINTRACK 35 #define SM_CXDOUBLECLK 36 #define SM_CYDOUBLECLK 37 #define SM_CXICONSPACING 38 #define SM_CYICONSPACING 39 #define SM_MENUDROPALIGNMENT 40 #define SM_PENWINDOWS 41 #define SM_DBCSENABLED 42 #define SM_CMOUSEBUTTONS 43 #if(WINVER >= 0x0400) #define SM_CXFIXEDFRAME SM_CXDLGFRAME /* ;win40 name change */ #define SM_CYFIXEDFRAME SM_CYDLGFRAME /* ;win40 name change */ #define SM_CXSIZEFRAME SM_CXFRAME /* ;win40 name change */ #define SM_CYSIZEFRAME SM_CYFRAME /* ;win40 name change */ #define SM_SECURE 44 #define SM_CXEDGE 45 #define SM_CYEDGE 46 #define SM_CXMINSPACING 47 #define SM_CYMINSPACING 48 #define SM_CXSMICON 49 #define SM_CYSMICON 50 #define SM_CYSMCAPTION 51 #define SM_CXSMSIZE 52 #define SM_CYSMSIZE 53 #define SM_CXMENUSIZE 54 #define SM_CYMENUSIZE 55 #define SM_ARRANGE 56 #define SM_CXMINIMIZED 57 #define SM_CYMINIMIZED 58 #define SM_CXMAXTRACK 59 #define SM_CYMAXTRACK 60 #define SM_CXMAXIMIZED 61 #define SM_CYMAXIMIZED 62 #define SM_NETWORK 63 #define SM_CLEANBOOT 67 #define SM_CXDRAG 68 #define SM_CYDRAG 69 #endif /* WINVER >= 0x0400 */ #define SM_SHOWSOUNDS 70 #if(WINVER >= 0x0400) #define SM_CXMENUCHECK 71 /* Use instead of GetMenuCheckMarkDimensions()! */ #define SM_CYMENUCHECK 72 #define SM_SLOWMACHINE 73 #define SM_MIDEASTENABLED 74 #endif /* WINVER >= 0x0400 */ #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400) #define SM_MOUSEWHEELPRESENT 75 #endif #if(WINVER >= 0x0500) #define SM_XVIRTUALSCREEN 76 #define SM_YVIRTUALSCREEN 77 #define SM_CXVIRTUALSCREEN 78 #define SM_CYVIRTUALSCREEN 79 #define SM_CMONITORS 80 #define SM_SAMEDISPLAYFORMAT 81 #endif /* WINVER >= 0x0500 */ #if(_WIN32_WINNT >= 0x0500) #define SM_IMMENABLED 82 #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define SM_CXFOCUSBORDER 83 #define SM_CYFOCUSBORDER 84 #endif /* _WIN32_WINNT >= 0x0501 */ #if(_WIN32_WINNT >= 0x0501) #define SM_TABLETPC 86 #define SM_MEDIACENTER 87 #endif /* _WIN32_WINNT >= 0x0501 */ #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400)) #define SM_CMETRICS 76 #elif WINVER == 0x500 #define SM_CMETRICS 83 #else #define SM_CMETRICS 88 #endif #if(WINVER >= 0x0500) #define SM_REMOTESESSION 0x1000 #if(_WIN32_WINNT >= 0x0501) #define SM_SHUTTINGDOWN 0x2000 #endif /* _WIN32_WINNT >= 0x0501 */ #if(WINVER >= 0x0501) #define SM_REMOTECONTROL 0x2001 #endif /* WINVER >= 0x0501 */ #endif /* WINVER >= 0x0500 */ WINUSERAPI int WINAPI GetSystemMetrics( IN int nIndex); #endif /* !NOSYSMETRICS */ #ifndef NOMENUS WINUSERAPI HMENU WINAPI LoadMenuA( IN HINSTANCE hInstance, IN LPCSTR lpMenuName); WINUSERAPI HMENU WINAPI LoadMenuW( IN HINSTANCE hInstance, IN LPCWSTR lpMenuName); #ifdef UNICODE #define LoadMenu LoadMenuW #else #define LoadMenu LoadMenuA #endif // !UNICODE WINUSERAPI HMENU WINAPI LoadMenuIndirectA( IN CONST MENUTEMPLATEA *lpMenuTemplate); WINUSERAPI HMENU WINAPI LoadMenuIndirectW( IN CONST MENUTEMPLATEW *lpMenuTemplate); #ifdef UNICODE #define LoadMenuIndirect LoadMenuIndirectW #else #define LoadMenuIndirect LoadMenuIndirectA #endif // !UNICODE WINUSERAPI HMENU WINAPI GetMenu( IN HWND hWnd); WINUSERAPI BOOL WINAPI SetMenu( IN HWND hWnd, IN HMENU hMenu); WINUSERAPI BOOL WINAPI ChangeMenuA( IN HMENU hMenu, IN UINT cmd, IN LPCSTR lpszNewItem, IN UINT cmdInsert, IN UINT flags); WINUSERAPI BOOL WINAPI ChangeMenuW( IN HMENU hMenu, IN UINT cmd, IN LPCWSTR lpszNewItem, IN UINT cmdInsert, IN UINT flags); #ifdef UNICODE #define ChangeMenu ChangeMenuW #else #define ChangeMenu ChangeMenuA #endif // !UNICODE WINUSERAPI BOOL WINAPI HiliteMenuItem( IN HWND hWnd, IN HMENU hMenu, IN UINT uIDHiliteItem, IN UINT uHilite); WINUSERAPI int WINAPI GetMenuStringA( IN HMENU hMenu, IN UINT uIDItem, OUT LPSTR lpString, IN int nMaxCount, IN UINT uFlag); WINUSERAPI int WINAPI GetMenuStringW( IN HMENU hMenu, IN UINT uIDItem, OUT LPWSTR lpString, IN int nMaxCount, IN UINT uFlag); #ifdef UNICODE #define GetMenuString GetMenuStringW #else #define GetMenuString GetMenuStringA #endif // !UNICODE WINUSERAPI UINT WINAPI GetMenuState( IN HMENU hMenu, IN UINT uId, IN UINT uFlags); WINUSERAPI BOOL WINAPI DrawMenuBar( IN HWND hWnd); #if(_WIN32_WINNT >= 0x0501) #define PMB_ACTIVE 0x00000001 #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI HMENU WINAPI GetSystemMenu( IN HWND hWnd, IN BOOL bRevert); WINUSERAPI HMENU WINAPI CreateMenu( VOID); WINUSERAPI HMENU WINAPI CreatePopupMenu( VOID); WINUSERAPI BOOL WINAPI DestroyMenu( IN HMENU hMenu); WINUSERAPI DWORD WINAPI CheckMenuItem( IN HMENU hMenu, IN UINT uIDCheckItem, IN UINT uCheck); WINUSERAPI BOOL WINAPI EnableMenuItem( IN HMENU hMenu, IN UINT uIDEnableItem, IN UINT uEnable); WINUSERAPI HMENU WINAPI GetSubMenu( IN HMENU hMenu, IN int nPos); WINUSERAPI UINT WINAPI GetMenuItemID( IN HMENU hMenu, IN int nPos); WINUSERAPI int WINAPI GetMenuItemCount( IN HMENU hMenu); WINUSERAPI BOOL WINAPI InsertMenuA( IN HMENU hMenu, IN UINT uPosition, IN UINT uFlags, IN UINT_PTR uIDNewItem, IN LPCSTR lpNewItem ); WINUSERAPI BOOL WINAPI InsertMenuW( IN HMENU hMenu, IN UINT uPosition, IN UINT uFlags, IN UINT_PTR uIDNewItem, IN LPCWSTR lpNewItem ); #ifdef UNICODE #define InsertMenu InsertMenuW #else #define InsertMenu InsertMenuA #endif // !UNICODE WINUSERAPI BOOL WINAPI AppendMenuA( IN HMENU hMenu, IN UINT uFlags, IN UINT_PTR uIDNewItem, IN LPCSTR lpNewItem ); WINUSERAPI BOOL WINAPI AppendMenuW( IN HMENU hMenu, IN UINT uFlags, IN UINT_PTR uIDNewItem, IN LPCWSTR lpNewItem ); #ifdef UNICODE #define AppendMenu AppendMenuW #else #define AppendMenu AppendMenuA #endif // !UNICODE WINUSERAPI BOOL WINAPI ModifyMenuA( IN HMENU hMnu, IN UINT uPosition, IN UINT uFlags, IN UINT_PTR uIDNewItem, IN LPCSTR lpNewItem ); WINUSERAPI BOOL WINAPI ModifyMenuW( IN HMENU hMnu, IN UINT uPosition, IN UINT uFlags, IN UINT_PTR uIDNewItem, IN LPCWSTR lpNewItem ); #ifdef UNICODE #define ModifyMenu ModifyMenuW #else #define ModifyMenu ModifyMenuA #endif // !UNICODE WINUSERAPI BOOL WINAPI RemoveMenu( IN HMENU hMenu, IN UINT uPosition, IN UINT uFlags); WINUSERAPI BOOL WINAPI DeleteMenu( IN HMENU hMenu, IN UINT uPosition, IN UINT uFlags); WINUSERAPI BOOL WINAPI SetMenuItemBitmaps( IN HMENU hMenu, IN UINT uPosition, IN UINT uFlags, IN HBITMAP hBitmapUnchecked, IN HBITMAP hBitmapChecked); WINUSERAPI LONG WINAPI GetMenuCheckMarkDimensions( VOID); WINUSERAPI BOOL WINAPI TrackPopupMenu( IN HMENU hMenu, IN UINT uFlags, IN int x, IN int y, IN int nReserved, IN HWND hWnd, IN CONST RECT *prcRect); #if(WINVER >= 0x0400) /* return codes for WM_MENUCHAR */ #define MNC_IGNORE 0 #define MNC_CLOSE 1 #define MNC_EXECUTE 2 #define MNC_SELECT 3 typedef struct tagTPMPARAMS { UINT cbSize; /* Size of structure */ RECT rcExclude; /* Screen coordinates of rectangle to exclude when positioning */ } TPMPARAMS; typedef TPMPARAMS FAR *LPTPMPARAMS; WINUSERAPI BOOL WINAPI TrackPopupMenuEx( IN HMENU, IN UINT, IN int, IN int, IN HWND, IN LPTPMPARAMS); #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define MNS_NOCHECK 0x80000000 #define MNS_MODELESS 0x40000000 #define MNS_DRAGDROP 0x20000000 #define MNS_AUTODISMISS 0x10000000 #define MNS_NOTIFYBYPOS 0x08000000 #define MNS_CHECKORBMP 0x04000000 #define MIM_MAXHEIGHT 0x00000001 #define MIM_BACKGROUND 0x00000002 #define MIM_HELPID 0x00000004 #define MIM_MENUDATA 0x00000008 #define MIM_STYLE 0x00000010 #define MIM_APPLYTOSUBMENUS 0x80000000 typedef struct tagMENUINFO { DWORD cbSize; DWORD fMask; DWORD dwStyle; UINT cyMax; HBRUSH hbrBack; DWORD dwContextHelpID; ULONG_PTR dwMenuData; } MENUINFO, FAR *LPMENUINFO; typedef MENUINFO CONST FAR *LPCMENUINFO; WINUSERAPI BOOL WINAPI GetMenuInfo( IN HMENU, OUT LPMENUINFO); WINUSERAPI BOOL WINAPI SetMenuInfo( IN HMENU, IN LPCMENUINFO); WINUSERAPI BOOL WINAPI EndMenu( VOID); /* * WM_MENUDRAG return values. */ #define MND_CONTINUE 0 #define MND_ENDMENU 1 typedef struct tagMENUGETOBJECTINFO { DWORD dwFlags; UINT uPos; HMENU hmenu; PVOID riid; PVOID pvObj; } MENUGETOBJECTINFO, * PMENUGETOBJECTINFO; /* * MENUGETOBJECTINFO dwFlags values */ #define MNGOF_TOPGAP 0x00000001 #define MNGOF_BOTTOMGAP 0x00000002 /* * WM_MENUGETOBJECT return values */ #define MNGO_NOINTERFACE 0x00000000 #define MNGO_NOERROR 0x00000001 #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0400) #define MIIM_STATE 0x00000001 #define MIIM_ID 0x00000002 #define MIIM_SUBMENU 0x00000004 #define MIIM_CHECKMARKS 0x00000008 #define MIIM_TYPE 0x00000010 #define MIIM_DATA 0x00000020 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define MIIM_STRING 0x00000040 #define MIIM_BITMAP 0x00000080 #define MIIM_FTYPE 0x00000100 #define HBMMENU_CALLBACK ((HBITMAP) -1) #define HBMMENU_SYSTEM ((HBITMAP) 1) #define HBMMENU_MBAR_RESTORE ((HBITMAP) 2) #define HBMMENU_MBAR_MINIMIZE ((HBITMAP) 3) #define HBMMENU_MBAR_CLOSE ((HBITMAP) 5) #define HBMMENU_MBAR_CLOSE_D ((HBITMAP) 6) #define HBMMENU_MBAR_MINIMIZE_D ((HBITMAP) 7) #define HBMMENU_POPUP_CLOSE ((HBITMAP) 8) #define HBMMENU_POPUP_RESTORE ((HBITMAP) 9) #define HBMMENU_POPUP_MAXIMIZE ((HBITMAP) 10) #define HBMMENU_POPUP_MINIMIZE ((HBITMAP) 11) #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0400) typedef struct tagMENUITEMINFOA { UINT cbSize; UINT fMask; UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0) UINT fState; // used if MIIM_STATE UINT wID; // used if MIIM_ID HMENU hSubMenu; // used if MIIM_SUBMENU HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS ULONG_PTR dwItemData; // used if MIIM_DATA LPSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) #if(WINVER >= 0x0500) HBITMAP hbmpItem; // used if MIIM_BITMAP #endif /* WINVER >= 0x0500 */ } MENUITEMINFOA, FAR *LPMENUITEMINFOA; typedef struct tagMENUITEMINFOW { UINT cbSize; UINT fMask; UINT fType; // used if MIIM_TYPE (4.0) or MIIM_FTYPE (>4.0) UINT fState; // used if MIIM_STATE UINT wID; // used if MIIM_ID HMENU hSubMenu; // used if MIIM_SUBMENU HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS ULONG_PTR dwItemData; // used if MIIM_DATA LPWSTR dwTypeData; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) UINT cch; // used if MIIM_TYPE (4.0) or MIIM_STRING (>4.0) #if(WINVER >= 0x0500) HBITMAP hbmpItem; // used if MIIM_BITMAP #endif /* WINVER >= 0x0500 */ } MENUITEMINFOW, FAR *LPMENUITEMINFOW; #ifdef UNICODE typedef MENUITEMINFOW MENUITEMINFO; typedef LPMENUITEMINFOW LPMENUITEMINFO; #else typedef MENUITEMINFOA MENUITEMINFO; typedef LPMENUITEMINFOA LPMENUITEMINFO; #endif // UNICODE typedef MENUITEMINFOA CONST FAR *LPCMENUITEMINFOA; typedef MENUITEMINFOW CONST FAR *LPCMENUITEMINFOW; #ifdef UNICODE typedef LPCMENUITEMINFOW LPCMENUITEMINFO; #else typedef LPCMENUITEMINFOA LPCMENUITEMINFO; #endif // UNICODE WINUSERAPI BOOL WINAPI InsertMenuItemA( IN HMENU, IN UINT, IN BOOL, IN LPCMENUITEMINFOA ); WINUSERAPI BOOL WINAPI InsertMenuItemW( IN HMENU, IN UINT, IN BOOL, IN LPCMENUITEMINFOW ); #ifdef UNICODE #define InsertMenuItem InsertMenuItemW #else #define InsertMenuItem InsertMenuItemA #endif // !UNICODE WINUSERAPI BOOL WINAPI GetMenuItemInfoA( IN HMENU, IN UINT, IN BOOL, IN OUT LPMENUITEMINFOA ); WINUSERAPI BOOL WINAPI GetMenuItemInfoW( IN HMENU, IN UINT, IN BOOL, IN OUT LPMENUITEMINFOW ); #ifdef UNICODE #define GetMenuItemInfo GetMenuItemInfoW #else #define GetMenuItemInfo GetMenuItemInfoA #endif // !UNICODE WINUSERAPI BOOL WINAPI SetMenuItemInfoA( IN HMENU, IN UINT, IN BOOL, IN LPCMENUITEMINFOA ); WINUSERAPI BOOL WINAPI SetMenuItemInfoW( IN HMENU, IN UINT, IN BOOL, IN LPCMENUITEMINFOW ); #ifdef UNICODE #define SetMenuItemInfo SetMenuItemInfoW #else #define SetMenuItemInfo SetMenuItemInfoA #endif // !UNICODE #define GMDI_USEDISABLED 0x0001L #define GMDI_GOINTOPOPUPS 0x0002L WINUSERAPI UINT WINAPI GetMenuDefaultItem( IN HMENU hMenu, IN UINT fByPos, IN UINT gmdiFlags); WINUSERAPI BOOL WINAPI SetMenuDefaultItem( IN HMENU hMenu, IN UINT uItem, IN UINT fByPos); WINUSERAPI BOOL WINAPI GetMenuItemRect( IN HWND hWnd, IN HMENU hMenu, IN UINT uItem, OUT LPRECT lprcItem); WINUSERAPI int WINAPI MenuItemFromPoint( IN HWND hWnd, IN HMENU hMenu, IN POINT ptScreen); #endif /* WINVER >= 0x0400 */ /* * Flags for TrackPopupMenu */ #define TPM_LEFTBUTTON 0x0000L #define TPM_RIGHTBUTTON 0x0002L #define TPM_LEFTALIGN 0x0000L #define TPM_CENTERALIGN 0x0004L #define TPM_RIGHTALIGN 0x0008L #if(WINVER >= 0x0400) #define TPM_TOPALIGN 0x0000L #define TPM_VCENTERALIGN 0x0010L #define TPM_BOTTOMALIGN 0x0020L #define TPM_HORIZONTAL 0x0000L /* Horz alignment matters more */ #define TPM_VERTICAL 0x0040L /* Vert alignment matters more */ #define TPM_NONOTIFY 0x0080L /* Don't send any notification msgs */ #define TPM_RETURNCMD 0x0100L #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define TPM_RECURSE 0x0001L #define TPM_HORPOSANIMATION 0x0400L #define TPM_HORNEGANIMATION 0x0800L #define TPM_VERPOSANIMATION 0x1000L #define TPM_VERNEGANIMATION 0x2000L #if(_WIN32_WINNT >= 0x0500) #define TPM_NOANIMATION 0x4000L #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) #define TPM_LAYOUTRTL 0x8000L #endif /* _WIN32_WINNT >= 0x0501 */ #endif /* WINVER >= 0x0500 */ #endif /* !NOMENUS */ #if(WINVER >= 0x0400) // // Drag-and-drop support // Obsolete - use OLE instead // typedef struct tagDROPSTRUCT { HWND hwndSource; HWND hwndSink; DWORD wFmt; ULONG_PTR dwData; POINT ptDrop; DWORD dwControlData; } DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT; #define DOF_EXECUTABLE 0x8001 // wFmt flags #define DOF_DOCUMENT 0x8002 #define DOF_DIRECTORY 0x8003 #define DOF_MULTIPLE 0x8004 #define DOF_PROGMAN 0x0001 #define DOF_SHELLDATA 0x0002 #define DO_DROPFILE 0x454C4946L #define DO_PRINTFILE 0x544E5250L WINUSERAPI DWORD WINAPI DragObject( IN HWND, IN HWND, IN UINT, IN ULONG_PTR, IN HCURSOR); WINUSERAPI BOOL WINAPI DragDetect( IN HWND, IN POINT); #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI DrawIcon( IN HDC hDC, IN int X, IN int Y, IN HICON hIcon); #ifndef NODRAWTEXT /* * DrawText() Format Flags */ #define DT_TOP 0x00000000 #define DT_LEFT 0x00000000 #define DT_CENTER 0x00000001 #define DT_RIGHT 0x00000002 #define DT_VCENTER 0x00000004 #define DT_BOTTOM 0x00000008 #define DT_WORDBREAK 0x00000010 #define DT_SINGLELINE 0x00000020 #define DT_EXPANDTABS 0x00000040 #define DT_TABSTOP 0x00000080 #define DT_NOCLIP 0x00000100 #define DT_EXTERNALLEADING 0x00000200 #define DT_CALCRECT 0x00000400 #define DT_NOPREFIX 0x00000800 #define DT_INTERNAL 0x00001000 #if(WINVER >= 0x0400) #define DT_EDITCONTROL 0x00002000 #define DT_PATH_ELLIPSIS 0x00004000 #define DT_END_ELLIPSIS 0x00008000 #define DT_MODIFYSTRING 0x00010000 #define DT_RTLREADING 0x00020000 #define DT_WORD_ELLIPSIS 0x00040000 #if(WINVER >= 0x0500) #define DT_NOFULLWIDTHCHARBREAK 0x00080000 #if(_WIN32_WINNT >= 0x0500) #define DT_HIDEPREFIX 0x00100000 #define DT_PREFIXONLY 0x00200000 #endif /* _WIN32_WINNT >= 0x0500 */ #endif /* WINVER >= 0x0500 */ typedef struct tagDRAWTEXTPARAMS { UINT cbSize; int iTabLength; int iLeftMargin; int iRightMargin; UINT uiLengthDrawn; } DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS; #endif /* WINVER >= 0x0400 */ WINUSERAPI int WINAPI DrawTextA( IN HDC hDC, IN LPCSTR lpString, IN int nCount, IN OUT LPRECT lpRect, IN UINT uFormat); WINUSERAPI int WINAPI DrawTextW( IN HDC hDC, IN LPCWSTR lpString, IN int nCount, IN OUT LPRECT lpRect, IN UINT uFormat); #ifdef UNICODE #define DrawText DrawTextW #else #define DrawText DrawTextA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI int WINAPI DrawTextExA( IN HDC, IN OUT LPSTR, IN int, IN OUT LPRECT, IN UINT, IN LPDRAWTEXTPARAMS); WINUSERAPI int WINAPI DrawTextExW( IN HDC, IN OUT LPWSTR, IN int, IN OUT LPRECT, IN UINT, IN LPDRAWTEXTPARAMS); #ifdef UNICODE #define DrawTextEx DrawTextExW #else #define DrawTextEx DrawTextExA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ #endif /* !NODRAWTEXT */ WINUSERAPI BOOL WINAPI GrayStringA( IN HDC hDC, IN HBRUSH hBrush, IN GRAYSTRINGPROC lpOutputFunc, IN LPARAM lpData, IN int nCount, IN int X, IN int Y, IN int nWidth, IN int nHeight); WINUSERAPI BOOL WINAPI GrayStringW( IN HDC hDC, IN HBRUSH hBrush, IN GRAYSTRINGPROC lpOutputFunc, IN LPARAM lpData, IN int nCount, IN int X, IN int Y, IN int nWidth, IN int nHeight); #ifdef UNICODE #define GrayString GrayStringW #else #define GrayString GrayStringA #endif // !UNICODE #if(WINVER >= 0x0400) /* Monolithic state-drawing routine */ /* Image type */ #define DST_COMPLEX 0x0000 #define DST_TEXT 0x0001 #define DST_PREFIXTEXT 0x0002 #define DST_ICON 0x0003 #define DST_BITMAP 0x0004 /* State type */ #define DSS_NORMAL 0x0000 #define DSS_UNION 0x0010 /* Gray string appearance */ #define DSS_DISABLED 0x0020 #define DSS_MONO 0x0080 #if(_WIN32_WINNT >= 0x0500) #define DSS_HIDEPREFIX 0x0200 #define DSS_PREFIXONLY 0x0400 #endif /* _WIN32_WINNT >= 0x0500 */ #define DSS_RIGHT 0x8000 WINUSERAPI BOOL WINAPI DrawStateA( IN HDC, IN HBRUSH, IN DRAWSTATEPROC, IN LPARAM, IN WPARAM, IN int, IN int, IN int, IN int, IN UINT); WINUSERAPI BOOL WINAPI DrawStateW( IN HDC, IN HBRUSH, IN DRAWSTATEPROC, IN LPARAM, IN WPARAM, IN int, IN int, IN int, IN int, IN UINT); #ifdef UNICODE #define DrawState DrawStateW #else #define DrawState DrawStateA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ WINUSERAPI LONG WINAPI TabbedTextOutA( IN HDC hDC, IN int X, IN int Y, IN LPCSTR lpString, IN int nCount, IN int nTabPositions, IN CONST INT *lpnTabStopPositions, IN int nTabOrigin); WINUSERAPI LONG WINAPI TabbedTextOutW( IN HDC hDC, IN int X, IN int Y, IN LPCWSTR lpString, IN int nCount, IN int nTabPositions, IN CONST INT *lpnTabStopPositions, IN int nTabOrigin); #ifdef UNICODE #define TabbedTextOut TabbedTextOutW #else #define TabbedTextOut TabbedTextOutA #endif // !UNICODE WINUSERAPI DWORD WINAPI GetTabbedTextExtentA( IN HDC hDC, IN LPCSTR lpString, IN int nCount, IN int nTabPositions, IN CONST INT *lpnTabStopPositions); WINUSERAPI DWORD WINAPI GetTabbedTextExtentW( IN HDC hDC, IN LPCWSTR lpString, IN int nCount, IN int nTabPositions, IN CONST INT *lpnTabStopPositions); #ifdef UNICODE #define GetTabbedTextExtent GetTabbedTextExtentW #else #define GetTabbedTextExtent GetTabbedTextExtentA #endif // !UNICODE WINUSERAPI BOOL WINAPI UpdateWindow( IN HWND hWnd); WINUSERAPI HWND WINAPI SetActiveWindow( IN HWND hWnd); WINUSERAPI HWND WINAPI GetForegroundWindow( VOID); #if(WINVER >= 0x0400) WINUSERAPI BOOL WINAPI PaintDesktop( IN HDC hdc); WINUSERAPI VOID WINAPI SwitchToThisWindow( IN HWND hwnd, IN BOOL fUnknown); #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI SetForegroundWindow( IN HWND hWnd); #if(_WIN32_WINNT >= 0x0500) WINUSERAPI BOOL WINAPI AllowSetForegroundWindow( DWORD dwProcessId); #define ASFW_ANY ((DWORD)-1) WINUSERAPI BOOL WINAPI LockSetForegroundWindow( UINT uLockCode); #define LSFW_LOCK 1 #define LSFW_UNLOCK 2 #endif /* _WIN32_WINNT >= 0x0500 */ WINUSERAPI HWND WINAPI WindowFromDC( IN HDC hDC); WINUSERAPI HDC WINAPI GetDC( IN HWND hWnd); WINUSERAPI HDC WINAPI GetDCEx( IN HWND hWnd, IN HRGN hrgnClip, IN DWORD flags); /* * GetDCEx() flags */ #define DCX_WINDOW 0x00000001L #define DCX_CACHE 0x00000002L #define DCX_NORESETATTRS 0x00000004L #define DCX_CLIPCHILDREN 0x00000008L #define DCX_CLIPSIBLINGS 0x00000010L #define DCX_PARENTCLIP 0x00000020L #define DCX_EXCLUDERGN 0x00000040L #define DCX_INTERSECTRGN 0x00000080L #define DCX_EXCLUDEUPDATE 0x00000100L #define DCX_INTERSECTUPDATE 0x00000200L #define DCX_LOCKWINDOWUPDATE 0x00000400L #define DCX_VALIDATE 0x00200000L WINUSERAPI HDC WINAPI GetWindowDC( IN HWND hWnd); WINUSERAPI int WINAPI ReleaseDC( IN HWND hWnd, IN HDC hDC); WINUSERAPI HDC WINAPI BeginPaint( IN HWND hWnd, OUT LPPAINTSTRUCT lpPaint); WINUSERAPI BOOL WINAPI EndPaint( IN HWND hWnd, IN CONST PAINTSTRUCT *lpPaint); WINUSERAPI BOOL WINAPI GetUpdateRect( IN HWND hWnd, OUT LPRECT lpRect, IN BOOL bErase); WINUSERAPI int WINAPI GetUpdateRgn( IN HWND hWnd, IN HRGN hRgn, IN BOOL bErase); WINUSERAPI int WINAPI SetWindowRgn( IN HWND hWnd, IN HRGN hRgn, IN BOOL bRedraw); WINUSERAPI int WINAPI GetWindowRgn( IN HWND hWnd, IN HRGN hRgn); #if(_WIN32_WINNT >= 0x0501) WINUSERAPI int WINAPI GetWindowRgnBox( IN HWND hWnd, OUT LPRECT lprc); #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI int WINAPI ExcludeUpdateRgn( IN HDC hDC, IN HWND hWnd); WINUSERAPI BOOL WINAPI InvalidateRect( IN HWND hWnd, IN CONST RECT *lpRect, IN BOOL bErase); WINUSERAPI BOOL WINAPI ValidateRect( IN HWND hWnd, IN CONST RECT *lpRect); WINUSERAPI BOOL WINAPI InvalidateRgn( IN HWND hWnd, IN HRGN hRgn, IN BOOL bErase); WINUSERAPI BOOL WINAPI ValidateRgn( IN HWND hWnd, IN HRGN hRgn); WINUSERAPI BOOL WINAPI RedrawWindow( IN HWND hWnd, IN CONST RECT *lprcUpdate, IN HRGN hrgnUpdate, IN UINT flags); /* * RedrawWindow() flags */ #define RDW_INVALIDATE 0x0001 #define RDW_INTERNALPAINT 0x0002 #define RDW_ERASE 0x0004 #define RDW_VALIDATE 0x0008 #define RDW_NOINTERNALPAINT 0x0010 #define RDW_NOERASE 0x0020 #define RDW_NOCHILDREN 0x0040 #define RDW_ALLCHILDREN 0x0080 #define RDW_UPDATENOW 0x0100 #define RDW_ERASENOW 0x0200 #define RDW_FRAME 0x0400 #define RDW_NOFRAME 0x0800 /* * LockWindowUpdate API */ WINUSERAPI BOOL WINAPI LockWindowUpdate( IN HWND hWndLock); WINUSERAPI BOOL WINAPI ScrollWindow( IN HWND hWnd, IN int XAmount, IN int YAmount, IN CONST RECT *lpRect, IN CONST RECT *lpClipRect); WINUSERAPI BOOL WINAPI ScrollDC( IN HDC hDC, IN int dx, IN int dy, IN CONST RECT *lprcScroll, IN CONST RECT *lprcClip, IN HRGN hrgnUpdate, OUT LPRECT lprcUpdate); WINUSERAPI int WINAPI ScrollWindowEx( IN HWND hWnd, IN int dx, IN int dy, IN CONST RECT *prcScroll, IN CONST RECT *prcClip, IN HRGN hrgnUpdate, OUT LPRECT prcUpdate, IN UINT flags); #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */ #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */ #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */ #if(WINVER >= 0x0500) #define SW_SMOOTHSCROLL 0x0010 /* Use smooth scrolling */ #endif /* WINVER >= 0x0500 */ #ifndef NOSCROLL WINUSERAPI int WINAPI SetScrollPos( IN HWND hWnd, IN int nBar, IN int nPos, IN BOOL bRedraw); WINUSERAPI int WINAPI GetScrollPos( IN HWND hWnd, IN int nBar); WINUSERAPI BOOL WINAPI SetScrollRange( IN HWND hWnd, IN int nBar, IN int nMinPos, IN int nMaxPos, IN BOOL bRedraw); WINUSERAPI BOOL WINAPI GetScrollRange( IN HWND hWnd, IN int nBar, OUT LPINT lpMinPos, OUT LPINT lpMaxPos); WINUSERAPI BOOL WINAPI ShowScrollBar( IN HWND hWnd, IN int wBar, IN BOOL bShow); WINUSERAPI BOOL WINAPI EnableScrollBar( IN HWND hWnd, IN UINT wSBflags, IN UINT wArrows); /* * EnableScrollBar() flags */ #define ESB_ENABLE_BOTH 0x0000 #define ESB_DISABLE_BOTH 0x0003 #define ESB_DISABLE_LEFT 0x0001 #define ESB_DISABLE_RIGHT 0x0002 #define ESB_DISABLE_UP 0x0001 #define ESB_DISABLE_DOWN 0x0002 #define ESB_DISABLE_LTUP ESB_DISABLE_LEFT #define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT #endif /* !NOSCROLL */ WINUSERAPI BOOL WINAPI SetPropA( IN HWND hWnd, IN LPCSTR lpString, IN HANDLE hData); WINUSERAPI BOOL WINAPI SetPropW( IN HWND hWnd, IN LPCWSTR lpString, IN HANDLE hData); #ifdef UNICODE #define SetProp SetPropW #else #define SetProp SetPropA #endif // !UNICODE WINUSERAPI HANDLE WINAPI GetPropA( IN HWND hWnd, IN LPCSTR lpString); WINUSERAPI HANDLE WINAPI GetPropW( IN HWND hWnd, IN LPCWSTR lpString); #ifdef UNICODE #define GetProp GetPropW #else #define GetProp GetPropA #endif // !UNICODE WINUSERAPI HANDLE WINAPI RemovePropA( IN HWND hWnd, IN LPCSTR lpString); WINUSERAPI HANDLE WINAPI RemovePropW( IN HWND hWnd, IN LPCWSTR lpString); #ifdef UNICODE #define RemoveProp RemovePropW #else #define RemoveProp RemovePropA #endif // !UNICODE WINUSERAPI int WINAPI EnumPropsExA( IN HWND hWnd, IN PROPENUMPROCEXA lpEnumFunc, IN LPARAM lParam); WINUSERAPI int WINAPI EnumPropsExW( IN HWND hWnd, IN PROPENUMPROCEXW lpEnumFunc, IN LPARAM lParam); #ifdef UNICODE #define EnumPropsEx EnumPropsExW #else #define EnumPropsEx EnumPropsExA #endif // !UNICODE WINUSERAPI int WINAPI EnumPropsA( IN HWND hWnd, IN PROPENUMPROCA lpEnumFunc); WINUSERAPI int WINAPI EnumPropsW( IN HWND hWnd, IN PROPENUMPROCW lpEnumFunc); #ifdef UNICODE #define EnumProps EnumPropsW #else #define EnumProps EnumPropsA #endif // !UNICODE WINUSERAPI BOOL WINAPI SetWindowTextA( IN HWND hWnd, IN LPCSTR lpString); WINUSERAPI BOOL WINAPI SetWindowTextW( IN HWND hWnd, IN LPCWSTR lpString); #ifdef UNICODE #define SetWindowText SetWindowTextW #else #define SetWindowText SetWindowTextA #endif // !UNICODE WINUSERAPI int WINAPI GetWindowTextA( IN HWND hWnd, OUT LPSTR lpString, IN int nMaxCount); WINUSERAPI int WINAPI GetWindowTextW( IN HWND hWnd, OUT LPWSTR lpString, IN int nMaxCount); #ifdef UNICODE #define GetWindowText GetWindowTextW #else #define GetWindowText GetWindowTextA #endif // !UNICODE WINUSERAPI int WINAPI GetWindowTextLengthA( IN HWND hWnd); WINUSERAPI int WINAPI GetWindowTextLengthW( IN HWND hWnd); #ifdef UNICODE #define GetWindowTextLength GetWindowTextLengthW #else #define GetWindowTextLength GetWindowTextLengthA #endif // !UNICODE WINUSERAPI BOOL WINAPI GetClientRect( IN HWND hWnd, OUT LPRECT lpRect); WINUSERAPI BOOL WINAPI GetWindowRect( IN HWND hWnd, OUT LPRECT lpRect); WINUSERAPI BOOL WINAPI AdjustWindowRect( IN OUT LPRECT lpRect, IN DWORD dwStyle, IN BOOL bMenu); WINUSERAPI BOOL WINAPI AdjustWindowRectEx( IN OUT LPRECT lpRect, IN DWORD dwStyle, IN BOOL bMenu, IN DWORD dwExStyle); #if(WINVER >= 0x0400) #define HELPINFO_WINDOW 0x0001 #define HELPINFO_MENUITEM 0x0002 typedef struct tagHELPINFO /* Structure pointed to by lParam of WM_HELP */ { UINT cbSize; /* Size in bytes of this struct */ int iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */ int iCtrlId; /* Control Id or a Menu item Id. */ HANDLE hItemHandle; /* hWnd of control or hMenu. */ DWORD_PTR dwContextId; /* Context Id associated with this item */ POINT MousePos; /* Mouse Position in screen co-ordinates */ } HELPINFO, FAR *LPHELPINFO; WINUSERAPI BOOL WINAPI SetWindowContextHelpId( IN HWND, IN DWORD); WINUSERAPI DWORD WINAPI GetWindowContextHelpId( IN HWND); WINUSERAPI BOOL WINAPI SetMenuContextHelpId( IN HMENU, IN DWORD); WINUSERAPI DWORD WINAPI GetMenuContextHelpId( IN HMENU); #endif /* WINVER >= 0x0400 */ #ifndef NOMB /* * MessageBox() Flags */ #define MB_OK 0x00000000L #define MB_OKCANCEL 0x00000001L #define MB_ABORTRETRYIGNORE 0x00000002L #define MB_YESNOCANCEL 0x00000003L #define MB_YESNO 0x00000004L #define MB_RETRYCANCEL 0x00000005L #if(WINVER >= 0x0500) #define MB_CANCELTRYCONTINUE 0x00000006L #endif /* WINVER >= 0x0500 */ #define MB_ICONHAND 0x00000010L #define MB_ICONQUESTION 0x00000020L #define MB_ICONEXCLAMATION 0x00000030L #define MB_ICONASTERISK 0x00000040L #if(WINVER >= 0x0400) #define MB_USERICON 0x00000080L #define MB_ICONWARNING MB_ICONEXCLAMATION #define MB_ICONERROR MB_ICONHAND #endif /* WINVER >= 0x0400 */ #define MB_ICONINFORMATION MB_ICONASTERISK #define MB_ICONSTOP MB_ICONHAND #define MB_DEFBUTTON1 0x00000000L #define MB_DEFBUTTON2 0x00000100L #define MB_DEFBUTTON3 0x00000200L #if(WINVER >= 0x0400) #define MB_DEFBUTTON4 0x00000300L #endif /* WINVER >= 0x0400 */ #define MB_APPLMODAL 0x00000000L #define MB_SYSTEMMODAL 0x00001000L #define MB_TASKMODAL 0x00002000L #if(WINVER >= 0x0400) #define MB_HELP 0x00004000L // Help Button #endif /* WINVER >= 0x0400 */ #define MB_NOFOCUS 0x00008000L #define MB_SETFOREGROUND 0x00010000L #define MB_DEFAULT_DESKTOP_ONLY 0x00020000L #if(WINVER >= 0x0400) #define MB_TOPMOST 0x00040000L #define MB_RIGHT 0x00080000L #define MB_RTLREADING 0x00100000L #endif /* WINVER >= 0x0400 */ #ifdef _WIN32_WINNT #if (_WIN32_WINNT >= 0x0400) #define MB_SERVICE_NOTIFICATION 0x00200000L #else #define MB_SERVICE_NOTIFICATION 0x00040000L #endif #define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L #endif #define MB_TYPEMASK 0x0000000FL #define MB_ICONMASK 0x000000F0L #define MB_DEFMASK 0x00000F00L #define MB_MODEMASK 0x00003000L #define MB_MISCMASK 0x0000C000L WINUSERAPI int WINAPI MessageBoxA( IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType); WINUSERAPI int WINAPI MessageBoxW( IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType); #ifdef UNICODE #define MessageBox MessageBoxW #else #define MessageBox MessageBoxA #endif // !UNICODE WINUSERAPI int WINAPI MessageBoxExA( IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId); WINUSERAPI int WINAPI MessageBoxExW( IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId); #ifdef UNICODE #define MessageBoxEx MessageBoxExW #else #define MessageBoxEx MessageBoxExA #endif // !UNICODE #if(WINVER >= 0x0400) typedef void (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo); typedef struct tagMSGBOXPARAMSA { UINT cbSize; HWND hwndOwner; HINSTANCE hInstance; LPCSTR lpszText; LPCSTR lpszCaption; DWORD dwStyle; LPCSTR lpszIcon; DWORD_PTR dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA; typedef struct tagMSGBOXPARAMSW { UINT cbSize; HWND hwndOwner; HINSTANCE hInstance; LPCWSTR lpszText; LPCWSTR lpszCaption; DWORD dwStyle; LPCWSTR lpszIcon; DWORD_PTR dwContextHelpId; MSGBOXCALLBACK lpfnMsgBoxCallback; DWORD dwLanguageId; } MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW; #ifdef UNICODE typedef MSGBOXPARAMSW MSGBOXPARAMS; typedef PMSGBOXPARAMSW PMSGBOXPARAMS; typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS; #else typedef MSGBOXPARAMSA MSGBOXPARAMS; typedef PMSGBOXPARAMSA PMSGBOXPARAMS; typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS; #endif // UNICODE WINUSERAPI int WINAPI MessageBoxIndirectA( IN CONST MSGBOXPARAMSA *); WINUSERAPI int WINAPI MessageBoxIndirectW( IN CONST MSGBOXPARAMSW *); #ifdef UNICODE #define MessageBoxIndirect MessageBoxIndirectW #else #define MessageBoxIndirect MessageBoxIndirectA #endif // !UNICODE #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI MessageBeep( IN UINT uType); #endif /* !NOMB */ WINUSERAPI int WINAPI ShowCursor( IN BOOL bShow); WINUSERAPI BOOL WINAPI SetCursorPos( IN int X, IN int Y); WINUSERAPI HCURSOR WINAPI SetCursor( IN HCURSOR hCursor); WINUSERAPI BOOL WINAPI GetCursorPos( OUT LPPOINT lpPoint); WINUSERAPI BOOL WINAPI ClipCursor( IN CONST RECT *lpRect); WINUSERAPI BOOL WINAPI GetClipCursor( OUT LPRECT lpRect); WINUSERAPI HCURSOR WINAPI GetCursor( VOID); WINUSERAPI BOOL WINAPI CreateCaret( IN HWND hWnd, IN HBITMAP hBitmap, IN int nWidth, IN int nHeight); WINUSERAPI UINT WINAPI GetCaretBlinkTime( VOID); WINUSERAPI BOOL WINAPI SetCaretBlinkTime( IN UINT uMSeconds); WINUSERAPI BOOL WINAPI DestroyCaret( VOID); WINUSERAPI BOOL WINAPI HideCaret( IN HWND hWnd); WINUSERAPI BOOL WINAPI ShowCaret( IN HWND hWnd); WINUSERAPI BOOL WINAPI SetCaretPos( IN int X, IN int Y); WINUSERAPI BOOL WINAPI GetCaretPos( OUT LPPOINT lpPoint); WINUSERAPI BOOL WINAPI ClientToScreen( IN HWND hWnd, IN OUT LPPOINT lpPoint); WINUSERAPI BOOL WINAPI ScreenToClient( IN HWND hWnd, IN OUT LPPOINT lpPoint); WINUSERAPI int WINAPI MapWindowPoints( IN HWND hWndFrom, IN HWND hWndTo, IN OUT LPPOINT lpPoints, IN UINT cPoints); WINUSERAPI HWND WINAPI WindowFromPoint( IN POINT Point); WINUSERAPI HWND WINAPI ChildWindowFromPoint( IN HWND hWndParent, IN POINT Point); #if(WINVER >= 0x0400) #define CWP_ALL 0x0000 #define CWP_SKIPINVISIBLE 0x0001 #define CWP_SKIPDISABLED 0x0002 #define CWP_SKIPTRANSPARENT 0x0004 WINUSERAPI HWND WINAPI ChildWindowFromPointEx( IN HWND, IN POINT, IN UINT); #endif /* WINVER >= 0x0400 */ #ifndef NOCOLOR /* * Color Types */ #define CTLCOLOR_MSGBOX 0 #define CTLCOLOR_EDIT 1 #define CTLCOLOR_LISTBOX 2 #define CTLCOLOR_BTN 3 #define CTLCOLOR_DLG 4 #define CTLCOLOR_SCROLLBAR 5 #define CTLCOLOR_STATIC 6 #define CTLCOLOR_MAX 7 #define COLOR_SCROLLBAR 0 #define COLOR_BACKGROUND 1 #define COLOR_ACTIVECAPTION 2 #define COLOR_INACTIVECAPTION 3 #define COLOR_MENU 4 #define COLOR_WINDOW 5 #define COLOR_WINDOWFRAME 6 #define COLOR_MENUTEXT 7 #define COLOR_WINDOWTEXT 8 #define COLOR_CAPTIONTEXT 9 #define COLOR_ACTIVEBORDER 10 #define COLOR_INACTIVEBORDER 11 #define COLOR_APPWORKSPACE 12 #define COLOR_HIGHLIGHT 13 #define COLOR_HIGHLIGHTTEXT 14 #define COLOR_BTNFACE 15 #define COLOR_BTNSHADOW 16 #define COLOR_GRAYTEXT 17 #define COLOR_BTNTEXT 18 #define COLOR_INACTIVECAPTIONTEXT 19 #define COLOR_BTNHIGHLIGHT 20 #if(WINVER >= 0x0400) #define COLOR_3DDKSHADOW 21 #define COLOR_3DLIGHT 22 #define COLOR_INFOTEXT 23 #define COLOR_INFOBK 24 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define COLOR_HOTLIGHT 26 #define COLOR_GRADIENTACTIVECAPTION 27 #define COLOR_GRADIENTINACTIVECAPTION 28 #if(WINVER >= 0x0501) #define COLOR_MENUHILIGHT 29 #define COLOR_MENUBAR 30 #endif /* WINVER >= 0x0501 */ #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0400) #define COLOR_DESKTOP COLOR_BACKGROUND #define COLOR_3DFACE COLOR_BTNFACE #define COLOR_3DSHADOW COLOR_BTNSHADOW #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT #endif /* WINVER >= 0x0400 */ WINUSERAPI DWORD WINAPI GetSysColor( IN int nIndex); #if(WINVER >= 0x0400) WINUSERAPI HBRUSH WINAPI GetSysColorBrush( IN int nIndex); #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI SetSysColors( IN int cElements, IN CONST INT * lpaElements, IN CONST COLORREF * lpaRgbValues); #endif /* !NOCOLOR */ WINUSERAPI BOOL WINAPI DrawFocusRect( IN HDC hDC, IN CONST RECT * lprc); WINUSERAPI int WINAPI FillRect( IN HDC hDC, IN CONST RECT *lprc, IN HBRUSH hbr); WINUSERAPI int WINAPI FrameRect( IN HDC hDC, IN CONST RECT *lprc, IN HBRUSH hbr); WINUSERAPI BOOL WINAPI InvertRect( IN HDC hDC, IN CONST RECT *lprc); WINUSERAPI BOOL WINAPI SetRect( OUT LPRECT lprc, IN int xLeft, IN int yTop, IN int xRight, IN int yBottom); WINUSERAPI BOOL WINAPI SetRectEmpty( OUT LPRECT lprc); WINUSERAPI BOOL WINAPI CopyRect( OUT LPRECT lprcDst, IN CONST RECT *lprcSrc); WINUSERAPI BOOL WINAPI InflateRect( IN OUT LPRECT lprc, IN int dx, IN int dy); WINUSERAPI BOOL WINAPI IntersectRect( OUT LPRECT lprcDst, IN CONST RECT *lprcSrc1, IN CONST RECT *lprcSrc2); WINUSERAPI BOOL WINAPI UnionRect( OUT LPRECT lprcDst, IN CONST RECT *lprcSrc1, IN CONST RECT *lprcSrc2); WINUSERAPI BOOL WINAPI SubtractRect( OUT LPRECT lprcDst, IN CONST RECT *lprcSrc1, IN CONST RECT *lprcSrc2); WINUSERAPI BOOL WINAPI OffsetRect( IN OUT LPRECT lprc, IN int dx, IN int dy); WINUSERAPI BOOL WINAPI IsRectEmpty( IN CONST RECT *lprc); WINUSERAPI BOOL WINAPI EqualRect( IN CONST RECT *lprc1, IN CONST RECT *lprc2); WINUSERAPI BOOL WINAPI PtInRect( IN CONST RECT *lprc, IN POINT pt); #ifndef NOWINOFFSETS WINUSERAPI WORD WINAPI GetWindowWord( IN HWND hWnd, IN int nIndex); WINUSERAPI WORD WINAPI SetWindowWord( IN HWND hWnd, IN int nIndex, IN WORD wNewWord); WINUSERAPI LONG WINAPI GetWindowLongA( IN HWND hWnd, IN int nIndex); WINUSERAPI LONG WINAPI GetWindowLongW( IN HWND hWnd, IN int nIndex); #ifdef UNICODE #define GetWindowLong GetWindowLongW #else #define GetWindowLong GetWindowLongA #endif // !UNICODE WINUSERAPI LONG WINAPI SetWindowLongA( IN HWND hWnd, IN int nIndex, IN LONG dwNewLong); WINUSERAPI LONG WINAPI SetWindowLongW( IN HWND hWnd, IN int nIndex, IN LONG dwNewLong); #ifdef UNICODE #define SetWindowLong SetWindowLongW #else #define SetWindowLong SetWindowLongA #endif // !UNICODE #ifdef _WIN64 WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrA( HWND hWnd, int nIndex); WINUSERAPI LONG_PTR WINAPI GetWindowLongPtrW( HWND hWnd, int nIndex); #ifdef UNICODE #define GetWindowLongPtr GetWindowLongPtrW #else #define GetWindowLongPtr GetWindowLongPtrA #endif // !UNICODE WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrA( HWND hWnd, int nIndex, LONG_PTR dwNewLong); WINUSERAPI LONG_PTR WINAPI SetWindowLongPtrW( HWND hWnd, int nIndex, LONG_PTR dwNewLong); #ifdef UNICODE #define SetWindowLongPtr SetWindowLongPtrW #else #define SetWindowLongPtr SetWindowLongPtrA #endif // !UNICODE #else /* _WIN64 */ #define GetWindowLongPtrA GetWindowLongA #define GetWindowLongPtrW GetWindowLongW #ifdef UNICODE #define GetWindowLongPtr GetWindowLongPtrW #else #define GetWindowLongPtr GetWindowLongPtrA #endif // !UNICODE #define SetWindowLongPtrA SetWindowLongA #define SetWindowLongPtrW SetWindowLongW #ifdef UNICODE #define SetWindowLongPtr SetWindowLongPtrW #else #define SetWindowLongPtr SetWindowLongPtrA #endif // !UNICODE #endif /* _WIN64 */ WINUSERAPI WORD WINAPI GetClassWord( IN HWND hWnd, IN int nIndex); WINUSERAPI WORD WINAPI SetClassWord( IN HWND hWnd, IN int nIndex, IN WORD wNewWord); WINUSERAPI DWORD WINAPI GetClassLongA( IN HWND hWnd, IN int nIndex); WINUSERAPI DWORD WINAPI GetClassLongW( IN HWND hWnd, IN int nIndex); #ifdef UNICODE #define GetClassLong GetClassLongW #else #define GetClassLong GetClassLongA #endif // !UNICODE WINUSERAPI DWORD WINAPI SetClassLongA( IN HWND hWnd, IN int nIndex, IN LONG dwNewLong); WINUSERAPI DWORD WINAPI SetClassLongW( IN HWND hWnd, IN int nIndex, IN LONG dwNewLong); #ifdef UNICODE #define SetClassLong SetClassLongW #else #define SetClassLong SetClassLongA #endif // !UNICODE #ifdef _WIN64 WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrA( IN HWND hWnd, IN int nIndex); WINUSERAPI ULONG_PTR WINAPI GetClassLongPtrW( IN HWND hWnd, IN int nIndex); #ifdef UNICODE #define GetClassLongPtr GetClassLongPtrW #else #define GetClassLongPtr GetClassLongPtrA #endif // !UNICODE WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrA( IN HWND hWnd, IN int nIndex, IN LONG_PTR dwNewLong); WINUSERAPI ULONG_PTR WINAPI SetClassLongPtrW( IN HWND hWnd, IN int nIndex, IN LONG_PTR dwNewLong); #ifdef UNICODE #define SetClassLongPtr SetClassLongPtrW #else #define SetClassLongPtr SetClassLongPtrA #endif // !UNICODE #else /* _WIN64 */ #define GetClassLongPtrA GetClassLongA #define GetClassLongPtrW GetClassLongW #ifdef UNICODE #define GetClassLongPtr GetClassLongPtrW #else #define GetClassLongPtr GetClassLongPtrA #endif // !UNICODE #define SetClassLongPtrA SetClassLongA #define SetClassLongPtrW SetClassLongW #ifdef UNICODE #define SetClassLongPtr SetClassLongPtrW #else #define SetClassLongPtr SetClassLongPtrA #endif // !UNICODE #endif /* _WIN64 */ #endif /* !NOWINOFFSETS */ #if(WINVER >= 0x0500) WINUSERAPI BOOL WINAPI GetProcessDefaultLayout( OUT DWORD *pdwDefaultLayout); WINUSERAPI BOOL WINAPI SetProcessDefaultLayout( IN DWORD dwDefaultLayout); #endif /* WINVER >= 0x0500 */ WINUSERAPI HWND WINAPI GetDesktopWindow( VOID); WINUSERAPI HWND WINAPI GetParent( IN HWND hWnd); WINUSERAPI HWND WINAPI SetParent( IN HWND hWndChild, IN HWND hWndNewParent); WINUSERAPI BOOL WINAPI EnumChildWindows( IN HWND hWndParent, IN WNDENUMPROC lpEnumFunc, IN LPARAM lParam); WINUSERAPI HWND WINAPI FindWindowA( IN LPCSTR lpClassName, IN LPCSTR lpWindowName); WINUSERAPI HWND WINAPI FindWindowW( IN LPCWSTR lpClassName, IN LPCWSTR lpWindowName); #ifdef UNICODE #define FindWindow FindWindowW #else #define FindWindow FindWindowA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI HWND WINAPI FindWindowExA( IN HWND, IN HWND, IN LPCSTR, IN LPCSTR); WINUSERAPI HWND WINAPI FindWindowExW( IN HWND, IN HWND, IN LPCWSTR, IN LPCWSTR); #ifdef UNICODE #define FindWindowEx FindWindowExW #else #define FindWindowEx FindWindowExA #endif // !UNICODE WINUSERAPI HWND WINAPI GetShellWindow(void); #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI RegisterShellHookWindow( IN HWND); WINUSERAPI BOOL WINAPI DeregisterShellHookWindow( IN HWND); WINUSERAPI BOOL WINAPI EnumWindows( IN WNDENUMPROC lpEnumFunc, IN LPARAM lParam); WINUSERAPI BOOL WINAPI EnumThreadWindows( IN DWORD dwThreadId, IN WNDENUMPROC lpfn, IN LPARAM lParam); #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam) WINUSERAPI int WINAPI GetClassNameA( IN HWND hWnd, OUT LPSTR lpClassName, IN int nMaxCount); WINUSERAPI int WINAPI GetClassNameW( IN HWND hWnd, OUT LPWSTR lpClassName, IN int nMaxCount); #ifdef UNICODE #define GetClassName GetClassNameW #else #define GetClassName GetClassNameA #endif // !UNICODE WINUSERAPI HWND WINAPI GetTopWindow( IN HWND hWnd); #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd) #define GetSysModalWindow() (NULL) #define SetSysModalWindow(hWnd) (NULL) WINUSERAPI DWORD WINAPI GetWindowThreadProcessId( IN HWND hWnd, OUT LPDWORD lpdwProcessId); #if(_WIN32_WINNT >= 0x0501) WINUSERAPI BOOL WINAPI IsGUIThread( BOOL bConvert); #endif /* _WIN32_WINNT >= 0x0501 */ #define GetWindowTask(hWnd) \ ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL)) WINUSERAPI HWND WINAPI GetLastActivePopup( IN HWND hWnd); /* * GetWindow() Constants */ #define GW_HWNDFIRST 0 #define GW_HWNDLAST 1 #define GW_HWNDNEXT 2 #define GW_HWNDPREV 3 #define GW_OWNER 4 #define GW_CHILD 5 #if(WINVER <= 0x0400) #define GW_MAX 5 #else #define GW_ENABLEDPOPUP 6 #define GW_MAX 6 #endif WINUSERAPI HWND WINAPI GetWindow( IN HWND hWnd, IN UINT uCmd); #ifndef NOWH #ifdef STRICT WINUSERAPI HHOOK WINAPI SetWindowsHookA( IN int nFilterType, IN HOOKPROC pfnFilterProc); WINUSERAPI HHOOK WINAPI SetWindowsHookW( IN int nFilterType, IN HOOKPROC pfnFilterProc); #ifdef UNICODE #define SetWindowsHook SetWindowsHookW #else #define SetWindowsHook SetWindowsHookA #endif // !UNICODE #else /* !STRICT */ WINUSERAPI HOOKPROC WINAPI SetWindowsHookA( IN int nFilterType, IN HOOKPROC pfnFilterProc); WINUSERAPI HOOKPROC WINAPI SetWindowsHookW( IN int nFilterType, IN HOOKPROC pfnFilterProc); #ifdef UNICODE #define SetWindowsHook SetWindowsHookW #else #define SetWindowsHook SetWindowsHookA #endif // !UNICODE #endif /* !STRICT */ WINUSERAPI BOOL WINAPI UnhookWindowsHook( IN int nCode, IN HOOKPROC pfnFilterProc); WINUSERAPI HHOOK WINAPI SetWindowsHookExA( IN int idHook, IN HOOKPROC lpfn, IN HINSTANCE hmod, IN DWORD dwThreadId); WINUSERAPI HHOOK WINAPI SetWindowsHookExW( IN int idHook, IN HOOKPROC lpfn, IN HINSTANCE hmod, IN DWORD dwThreadId); #ifdef UNICODE #define SetWindowsHookEx SetWindowsHookExW #else #define SetWindowsHookEx SetWindowsHookExA #endif // !UNICODE WINUSERAPI BOOL WINAPI UnhookWindowsHookEx( IN HHOOK hhk); WINUSERAPI LRESULT WINAPI CallNextHookEx( IN HHOOK hhk, IN int nCode, IN WPARAM wParam, IN LPARAM lParam); /* * Macros for source-level compatibility with old functions. */ #ifdef STRICT #define DefHookProc(nCode, wParam, lParam, phhk)\ CallNextHookEx(*phhk, nCode, wParam, lParam) #else #define DefHookProc(nCode, wParam, lParam, phhk)\ CallNextHookEx((HHOOK)*phhk, nCode, wParam, lParam) #endif /* STRICT */ #endif /* !NOWH */ #ifndef NOMENUS /* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */ /* * Menu flags for Add/Check/EnableMenuItem() */ #define MF_INSERT 0x00000000L #define MF_CHANGE 0x00000080L #define MF_APPEND 0x00000100L #define MF_DELETE 0x00000200L #define MF_REMOVE 0x00001000L #define MF_BYCOMMAND 0x00000000L #define MF_BYPOSITION 0x00000400L #define MF_SEPARATOR 0x00000800L #define MF_ENABLED 0x00000000L #define MF_GRAYED 0x00000001L #define MF_DISABLED 0x00000002L #define MF_UNCHECKED 0x00000000L #define MF_CHECKED 0x00000008L #define MF_USECHECKBITMAPS 0x00000200L #define MF_STRING 0x00000000L #define MF_BITMAP 0x00000004L #define MF_OWNERDRAW 0x00000100L #define MF_POPUP 0x00000010L #define MF_MENUBARBREAK 0x00000020L #define MF_MENUBREAK 0x00000040L #define MF_UNHILITE 0x00000000L #define MF_HILITE 0x00000080L #if(WINVER >= 0x0400) #define MF_DEFAULT 0x00001000L #endif /* WINVER >= 0x0400 */ #define MF_SYSMENU 0x00002000L #define MF_HELP 0x00004000L #if(WINVER >= 0x0400) #define MF_RIGHTJUSTIFY 0x00004000L #endif /* WINVER >= 0x0400 */ #define MF_MOUSESELECT 0x00008000L #if(WINVER >= 0x0400) #define MF_END 0x00000080L /* Obsolete -- only used by old RES files */ #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) #define MFT_STRING MF_STRING #define MFT_BITMAP MF_BITMAP #define MFT_MENUBARBREAK MF_MENUBARBREAK #define MFT_MENUBREAK MF_MENUBREAK #define MFT_OWNERDRAW MF_OWNERDRAW #define MFT_RADIOCHECK 0x00000200L #define MFT_SEPARATOR MF_SEPARATOR #define MFT_RIGHTORDER 0x00002000L #define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY /* Menu flags for Add/Check/EnableMenuItem() */ #define MFS_GRAYED 0x00000003L #define MFS_DISABLED MFS_GRAYED #define MFS_CHECKED MF_CHECKED #define MFS_HILITE MF_HILITE #define MFS_ENABLED MF_ENABLED #define MFS_UNCHECKED MF_UNCHECKED #define MFS_UNHILITE MF_UNHILITE #define MFS_DEFAULT MF_DEFAULT #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0400) WINUSERAPI BOOL WINAPI CheckMenuRadioItem( IN HMENU, IN UINT, IN UINT, IN UINT, IN UINT); #endif /* WINVER >= 0x0400 */ /* * Menu item resource format */ typedef struct { WORD versionNumber; WORD offset; } MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER; typedef struct { // version 0 WORD mtOption; WORD mtID; WCHAR mtString[1]; } MENUITEMTEMPLATE, *PMENUITEMTEMPLATE; #define MF_END 0x00000080L #endif /* !NOMENUS */ #ifndef NOSYSCOMMANDS /* * System Menu Command Values */ #define SC_SIZE 0xF000 #define SC_MOVE 0xF010 #define SC_MINIMIZE 0xF020 #define SC_MAXIMIZE 0xF030 #define SC_NEXTWINDOW 0xF040 #define SC_PREVWINDOW 0xF050 #define SC_CLOSE 0xF060 #define SC_VSCROLL 0xF070 #define SC_HSCROLL 0xF080 #define SC_MOUSEMENU 0xF090 #define SC_KEYMENU 0xF100 #define SC_ARRANGE 0xF110 #define SC_RESTORE 0xF120 #define SC_TASKLIST 0xF130 #define SC_SCREENSAVE 0xF140 #define SC_HOTKEY 0xF150 #if(WINVER >= 0x0400) #define SC_DEFAULT 0xF160 #define SC_MONITORPOWER 0xF170 #define SC_CONTEXTHELP 0xF180 #define SC_SEPARATOR 0xF00F #endif /* WINVER >= 0x0400 */ /* * Obsolete names */ #define SC_ICON SC_MINIMIZE #define SC_ZOOM SC_MAXIMIZE #endif /* !NOSYSCOMMANDS */ /* * Resource Loading Routines */ WINUSERAPI HBITMAP WINAPI LoadBitmapA( IN HINSTANCE hInstance, IN LPCSTR lpBitmapName); WINUSERAPI HBITMAP WINAPI LoadBitmapW( IN HINSTANCE hInstance, IN LPCWSTR lpBitmapName); #ifdef UNICODE #define LoadBitmap LoadBitmapW #else #define LoadBitmap LoadBitmapA #endif // !UNICODE WINUSERAPI HCURSOR WINAPI LoadCursorA( IN HINSTANCE hInstance, IN LPCSTR lpCursorName); WINUSERAPI HCURSOR WINAPI LoadCursorW( IN HINSTANCE hInstance, IN LPCWSTR lpCursorName); #ifdef UNICODE #define LoadCursor LoadCursorW #else #define LoadCursor LoadCursorA #endif // !UNICODE WINUSERAPI HCURSOR WINAPI LoadCursorFromFileA( IN LPCSTR lpFileName); WINUSERAPI HCURSOR WINAPI LoadCursorFromFileW( IN LPCWSTR lpFileName); #ifdef UNICODE #define LoadCursorFromFile LoadCursorFromFileW #else #define LoadCursorFromFile LoadCursorFromFileA #endif // !UNICODE WINUSERAPI HCURSOR WINAPI CreateCursor( IN HINSTANCE hInst, IN int xHotSpot, IN int yHotSpot, IN int nWidth, IN int nHeight, IN CONST VOID *pvANDPlane, IN CONST VOID *pvXORPlane); WINUSERAPI BOOL WINAPI DestroyCursor( IN HCURSOR hCursor); #ifndef _MAC #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur))) #else WINUSERAPI HCURSOR WINAPI CopyCursor( IN HCURSOR hCursor); #endif /* * Standard Cursor IDs */ #define IDC_ARROW MAKEINTRESOURCE(32512) #define IDC_IBEAM MAKEINTRESOURCE(32513) #define IDC_WAIT MAKEINTRESOURCE(32514) #define IDC_CROSS MAKEINTRESOURCE(32515) #define IDC_UPARROW MAKEINTRESOURCE(32516) #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */ #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */ #define IDC_SIZENWSE MAKEINTRESOURCE(32642) #define IDC_SIZENESW MAKEINTRESOURCE(32643) #define IDC_SIZEWE MAKEINTRESOURCE(32644) #define IDC_SIZENS MAKEINTRESOURCE(32645) #define IDC_SIZEALL MAKEINTRESOURCE(32646) #define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */ #if(WINVER >= 0x0500) #define IDC_HAND MAKEINTRESOURCE(32649) #endif /* WINVER >= 0x0500 */ #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */ #if(WINVER >= 0x0400) #define IDC_HELP MAKEINTRESOURCE(32651) #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI SetSystemCursor( IN HCURSOR hcur, IN DWORD id); typedef struct _ICONINFO { BOOL fIcon; DWORD xHotspot; DWORD yHotspot; HBITMAP hbmMask; HBITMAP hbmColor; } ICONINFO; typedef ICONINFO *PICONINFO; WINUSERAPI HICON WINAPI LoadIconA( IN HINSTANCE hInstance, IN LPCSTR lpIconName); WINUSERAPI HICON WINAPI LoadIconW( IN HINSTANCE hInstance, IN LPCWSTR lpIconName); #ifdef UNICODE #define LoadIcon LoadIconW #else #define LoadIcon LoadIconA #endif // !UNICODE WINUSERAPI UINT PrivateExtractIconsA( IN LPCSTR szFileName, IN int nIconIndex, IN int cxIcon, IN int cyIcon, OUT HICON *phicon, OUT UINT *piconid, IN UINT nIcons, IN UINT flags); WINUSERAPI UINT PrivateExtractIconsW( IN LPCWSTR szFileName, IN int nIconIndex, IN int cxIcon, IN int cyIcon, OUT HICON *phicon, OUT UINT *piconid, IN UINT nIcons, IN UINT flags); #ifdef UNICODE #define PrivateExtractIcons PrivateExtractIconsW #else #define PrivateExtractIcons PrivateExtractIconsA #endif // !UNICODE WINUSERAPI HICON WINAPI CreateIcon( IN HINSTANCE hInstance, IN int nWidth, IN int nHeight, IN BYTE cPlanes, IN BYTE cBitsPixel, IN CONST BYTE *lpbANDbits, IN CONST BYTE *lpbXORbits); WINUSERAPI BOOL WINAPI DestroyIcon( IN HICON hIcon); WINUSERAPI int WINAPI LookupIconIdFromDirectory( IN PBYTE presbits, IN BOOL fIcon); #if(WINVER >= 0x0400) WINUSERAPI int WINAPI LookupIconIdFromDirectoryEx( IN PBYTE presbits, IN BOOL fIcon, IN int cxDesired, IN int cyDesired, IN UINT Flags); #endif /* WINVER >= 0x0400 */ WINUSERAPI HICON WINAPI CreateIconFromResource( IN PBYTE presbits, IN DWORD dwResSize, IN BOOL fIcon, IN DWORD dwVer); #if(WINVER >= 0x0400) WINUSERAPI HICON WINAPI CreateIconFromResourceEx( IN PBYTE presbits, IN DWORD dwResSize, IN BOOL fIcon, IN DWORD dwVer, IN int cxDesired, IN int cyDesired, IN UINT Flags); /* Icon/Cursor header */ typedef struct tagCURSORSHAPE { int xHotSpot; int yHotSpot; int cx; int cy; int cbWidth; BYTE Planes; BYTE BitsPixel; } CURSORSHAPE, FAR *LPCURSORSHAPE; #endif /* WINVER >= 0x0400 */ #define IMAGE_BITMAP 0 #define IMAGE_ICON 1 #define IMAGE_CURSOR 2 #if(WINVER >= 0x0400) #define IMAGE_ENHMETAFILE 3 #define LR_DEFAULTCOLOR 0x0000 #define LR_MONOCHROME 0x0001 #define LR_COLOR 0x0002 #define LR_COPYRETURNORG 0x0004 #define LR_COPYDELETEORG 0x0008 #define LR_LOADFROMFILE 0x0010 #define LR_LOADTRANSPARENT 0x0020 #define LR_DEFAULTSIZE 0x0040 #define LR_VGACOLOR 0x0080 #define LR_LOADMAP3DCOLORS 0x1000 #define LR_CREATEDIBSECTION 0x2000 #define LR_COPYFROMRESOURCE 0x4000 #define LR_SHARED 0x8000 WINUSERAPI HANDLE WINAPI LoadImageA( IN HINSTANCE, IN LPCSTR, IN UINT, IN int, IN int, IN UINT); WINUSERAPI HANDLE WINAPI LoadImageW( IN HINSTANCE, IN LPCWSTR, IN UINT, IN int, IN int, IN UINT); #ifdef UNICODE #define LoadImage LoadImageW #else #define LoadImage LoadImageA #endif // !UNICODE WINUSERAPI HANDLE WINAPI CopyImage( IN HANDLE, IN UINT, IN int, IN int, IN UINT); #define DI_MASK 0x0001 #define DI_IMAGE 0x0002 #define DI_NORMAL 0x0003 #define DI_COMPAT 0x0004 #define DI_DEFAULTSIZE 0x0008 #if(_WIN32_WINNT >= 0x0501) #define DI_NOMIRROR 0x0010 #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI BOOL WINAPI DrawIconEx( IN HDC hdc, IN int xLeft, IN int yTop, IN HICON hIcon, IN int cxWidth, IN int cyWidth, IN UINT istepIfAniCur, IN HBRUSH hbrFlickerFreeDraw, IN UINT diFlags); #endif /* WINVER >= 0x0400 */ WINUSERAPI HICON WINAPI CreateIconIndirect( IN PICONINFO piconinfo); WINUSERAPI HICON WINAPI CopyIcon( IN HICON hIcon); WINUSERAPI BOOL WINAPI GetIconInfo( IN HICON hIcon, OUT PICONINFO piconinfo); #if(WINVER >= 0x0400) #define RES_ICON 1 #define RES_CURSOR 2 #endif /* WINVER >= 0x0400 */ #ifdef OEMRESOURCE /* * OEM Resource Ordinal Numbers */ #define OBM_CLOSE 32754 #define OBM_UPARROW 32753 #define OBM_DNARROW 32752 #define OBM_RGARROW 32751 #define OBM_LFARROW 32750 #define OBM_REDUCE 32749 #define OBM_ZOOM 32748 #define OBM_RESTORE 32747 #define OBM_REDUCED 32746 #define OBM_ZOOMD 32745 #define OBM_RESTORED 32744 #define OBM_UPARROWD 32743 #define OBM_DNARROWD 32742 #define OBM_RGARROWD 32741 #define OBM_LFARROWD 32740 #define OBM_MNARROW 32739 #define OBM_COMBO 32738 #define OBM_UPARROWI 32737 #define OBM_DNARROWI 32736 #define OBM_RGARROWI 32735 #define OBM_LFARROWI 32734 #define OBM_OLD_CLOSE 32767 #define OBM_SIZE 32766 #define OBM_OLD_UPARROW 32765 #define OBM_OLD_DNARROW 32764 #define OBM_OLD_RGARROW 32763 #define OBM_OLD_LFARROW 32762 #define OBM_BTSIZE 32761 #define OBM_CHECK 32760 #define OBM_CHECKBOXES 32759 #define OBM_BTNCORNERS 32758 #define OBM_OLD_REDUCE 32757 #define OBM_OLD_ZOOM 32756 #define OBM_OLD_RESTORE 32755 #define OCR_NORMAL 32512 #define OCR_IBEAM 32513 #define OCR_WAIT 32514 #define OCR_CROSS 32515 #define OCR_UP 32516 #define OCR_SIZE 32640 /* OBSOLETE: use OCR_SIZEALL */ #define OCR_ICON 32641 /* OBSOLETE: use OCR_NORMAL */ #define OCR_SIZENWSE 32642 #define OCR_SIZENESW 32643 #define OCR_SIZEWE 32644 #define OCR_SIZENS 32645 #define OCR_SIZEALL 32646 #define OCR_ICOCUR 32647 /* OBSOLETE: use OIC_WINLOGO */ #define OCR_NO 32648 #if(WINVER >= 0x0500) #define OCR_HAND 32649 #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0400) #define OCR_APPSTARTING 32650 #endif /* WINVER >= 0x0400 */ #define OIC_SAMPLE 32512 #define OIC_HAND 32513 #define OIC_QUES 32514 #define OIC_BANG 32515 #define OIC_NOTE 32516 #if(WINVER >= 0x0400) #define OIC_WINLOGO 32517 #define OIC_WARNING OIC_BANG #define OIC_ERROR OIC_HAND #define OIC_INFORMATION OIC_NOTE #endif /* WINVER >= 0x0400 */ #endif /* OEMRESOURCE */ #define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of ** language drivers. */ #ifndef NOICONS /* * Standard Icon IDs */ #ifdef RC_INVOKED #define IDI_APPLICATION 32512 #define IDI_HAND 32513 #define IDI_QUESTION 32514 #define IDI_EXCLAMATION 32515 #define IDI_ASTERISK 32516 #if(WINVER >= 0x0400) #define IDI_WINLOGO 32517 #endif /* WINVER >= 0x0400 */ #else #define IDI_APPLICATION MAKEINTRESOURCE(32512) #define IDI_HAND MAKEINTRESOURCE(32513) #define IDI_QUESTION MAKEINTRESOURCE(32514) #define IDI_EXCLAMATION MAKEINTRESOURCE(32515) #define IDI_ASTERISK MAKEINTRESOURCE(32516) #if(WINVER >= 0x0400) #define IDI_WINLOGO MAKEINTRESOURCE(32517) #endif /* WINVER >= 0x0400 */ #endif /* RC_INVOKED */ #if(WINVER >= 0x0400) #define IDI_WARNING IDI_EXCLAMATION #define IDI_ERROR IDI_HAND #define IDI_INFORMATION IDI_ASTERISK #endif /* WINVER >= 0x0400 */ #endif /* !NOICONS */ WINUSERAPI int WINAPI LoadStringA( IN HINSTANCE hInstance, IN UINT uID, OUT LPSTR lpBuffer, IN int nBufferMax); WINUSERAPI int WINAPI LoadStringW( IN HINSTANCE hInstance, IN UINT uID, OUT LPWSTR lpBuffer, IN int nBufferMax); #ifdef UNICODE #define LoadString LoadStringW #else #define LoadString LoadStringA #endif // !UNICODE /* * Dialog Box Command IDs */ #define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE 5 #define IDYES 6 #define IDNO 7 #if(WINVER >= 0x0400) #define IDCLOSE 8 #define IDHELP 9 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define IDTRYAGAIN 10 #define IDCONTINUE 11 #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0501) #ifndef IDTIMEOUT #define IDTIMEOUT 32000 #endif #endif /* WINVER >= 0x0501 */ #ifndef NOCTLMGR /* * Control Manager Structures and Definitions */ #ifndef NOWINSTYLES /* * Edit Control Styles */ #define ES_LEFT 0x0000L #define ES_CENTER 0x0001L #define ES_RIGHT 0x0002L #define ES_MULTILINE 0x0004L #define ES_UPPERCASE 0x0008L #define ES_LOWERCASE 0x0010L #define ES_PASSWORD 0x0020L #define ES_AUTOVSCROLL 0x0040L #define ES_AUTOHSCROLL 0x0080L #define ES_NOHIDESEL 0x0100L #define ES_OEMCONVERT 0x0400L #define ES_READONLY 0x0800L #define ES_WANTRETURN 0x1000L #if(WINVER >= 0x0400) #define ES_NUMBER 0x2000L #endif /* WINVER >= 0x0400 */ #endif /* !NOWINSTYLES */ /* * Edit Control Notification Codes */ #define EN_SETFOCUS 0x0100 #define EN_KILLFOCUS 0x0200 #define EN_CHANGE 0x0300 #define EN_UPDATE 0x0400 #define EN_ERRSPACE 0x0500 #define EN_MAXTEXT 0x0501 #define EN_HSCROLL 0x0601 #define EN_VSCROLL 0x0602 #if(_WIN32_WINNT >= 0x0500) #define EN_ALIGN_LTR_EC 0x0700 #define EN_ALIGN_RTL_EC 0x0701 #endif /* _WIN32_WINNT >= 0x0500 */ #if(WINVER >= 0x0400) /* Edit control EM_SETMARGIN parameters */ #define EC_LEFTMARGIN 0x0001 #define EC_RIGHTMARGIN 0x0002 #define EC_USEFONTINFO 0xffff #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) /* wParam of EM_GET/SETIMESTATUS */ #define EMSIS_COMPOSITIONSTRING 0x0001 /* lParam for EMSIS_COMPOSITIONSTRING */ #define EIMES_GETCOMPSTRATONCE 0x0001 #define EIMES_CANCELCOMPSTRINFOCUS 0x0002 #define EIMES_COMPLETECOMPSTRKILLFOCUS 0x0004 #endif /* WINVER >= 0x0500 */ #ifndef NOWINMESSAGES /* * Edit Control Messages */ #define EM_GETSEL 0x00B0 #define EM_SETSEL 0x00B1 #define EM_GETRECT 0x00B2 #define EM_SETRECT 0x00B3 #define EM_SETRECTNP 0x00B4 #define EM_SCROLL 0x00B5 #define EM_LINESCROLL 0x00B6 #define EM_SCROLLCARET 0x00B7 #define EM_GETMODIFY 0x00B8 #define EM_SETMODIFY 0x00B9 #define EM_GETLINECOUNT 0x00BA #define EM_LINEINDEX 0x00BB #define EM_SETHANDLE 0x00BC #define EM_GETHANDLE 0x00BD #define EM_GETTHUMB 0x00BE #define EM_LINELENGTH 0x00C1 #define EM_REPLACESEL 0x00C2 #define EM_GETLINE 0x00C4 #define EM_LIMITTEXT 0x00C5 #define EM_CANUNDO 0x00C6 #define EM_UNDO 0x00C7 #define EM_FMTLINES 0x00C8 #define EM_LINEFROMCHAR 0x00C9 #define EM_SETTABSTOPS 0x00CB #define EM_SETPASSWORDCHAR 0x00CC #define EM_EMPTYUNDOBUFFER 0x00CD #define EM_GETFIRSTVISIBLELINE 0x00CE #define EM_SETREADONLY 0x00CF #define EM_SETWORDBREAKPROC 0x00D0 #define EM_GETWORDBREAKPROC 0x00D1 #define EM_GETPASSWORDCHAR 0x00D2 #if(WINVER >= 0x0400) #define EM_SETMARGINS 0x00D3 #define EM_GETMARGINS 0x00D4 #define EM_SETLIMITTEXT EM_LIMITTEXT /* ;win40 Name change */ #define EM_GETLIMITTEXT 0x00D5 #define EM_POSFROMCHAR 0x00D6 #define EM_CHARFROMPOS 0x00D7 #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0500) #define EM_SETIMESTATUS 0x00D8 #define EM_GETIMESTATUS 0x00D9 #endif /* WINVER >= 0x0500 */ #endif /* !NOWINMESSAGES */ /* * EDITWORDBREAKPROC code values */ #define WB_LEFT 0 #define WB_RIGHT 1 #define WB_ISDELIMITER 2 /* * Button Control Styles */ #define BS_PUSHBUTTON 0x00000000L #define BS_DEFPUSHBUTTON 0x00000001L #define BS_CHECKBOX 0x00000002L #define BS_AUTOCHECKBOX 0x00000003L #define BS_RADIOBUTTON 0x00000004L #define BS_3STATE 0x00000005L #define BS_AUTO3STATE 0x00000006L #define BS_GROUPBOX 0x00000007L #define BS_USERBUTTON 0x00000008L #define BS_AUTORADIOBUTTON 0x00000009L #define BS_PUSHBOX 0x0000000AL #define BS_OWNERDRAW 0x0000000BL #define BS_TYPEMASK 0x0000000FL #define BS_LEFTTEXT 0x00000020L #if(WINVER >= 0x0400) #define BS_TEXT 0x00000000L #define BS_ICON 0x00000040L #define BS_BITMAP 0x00000080L #define BS_LEFT 0x00000100L #define BS_RIGHT 0x00000200L #define BS_CENTER 0x00000300L #define BS_TOP 0x00000400L #define BS_BOTTOM 0x00000800L #define BS_VCENTER 0x00000C00L #define BS_PUSHLIKE 0x00001000L #define BS_MULTILINE 0x00002000L #define BS_NOTIFY 0x00004000L #define BS_FLAT 0x00008000L #define BS_RIGHTBUTTON BS_LEFTTEXT #endif /* WINVER >= 0x0400 */ /* * User Button Notification Codes */ #define BN_CLICKED 0 #define BN_PAINT 1 #define BN_HILITE 2 #define BN_UNHILITE 3 #define BN_DISABLE 4 #define BN_DOUBLECLICKED 5 #if(WINVER >= 0x0400) #define BN_PUSHED BN_HILITE #define BN_UNPUSHED BN_UNHILITE #define BN_DBLCLK BN_DOUBLECLICKED #define BN_SETFOCUS 6 #define BN_KILLFOCUS 7 #endif /* WINVER >= 0x0400 */ /* * Button Control Messages */ #define BM_GETCHECK 0x00F0 #define BM_SETCHECK 0x00F1 #define BM_GETSTATE 0x00F2 #define BM_SETSTATE 0x00F3 #define BM_SETSTYLE 0x00F4 #if(WINVER >= 0x0400) #define BM_CLICK 0x00F5 #define BM_GETIMAGE 0x00F6 #define BM_SETIMAGE 0x00F7 #define BST_UNCHECKED 0x0000 #define BST_CHECKED 0x0001 #define BST_INDETERMINATE 0x0002 #define BST_PUSHED 0x0004 #define BST_FOCUS 0x0008 #endif /* WINVER >= 0x0400 */ /* * Static Control Constants */ #define SS_LEFT 0x00000000L #define SS_CENTER 0x00000001L #define SS_RIGHT 0x00000002L #define SS_ICON 0x00000003L #define SS_BLACKRECT 0x00000004L #define SS_GRAYRECT 0x00000005L #define SS_WHITERECT 0x00000006L #define SS_BLACKFRAME 0x00000007L #define SS_GRAYFRAME 0x00000008L #define SS_WHITEFRAME 0x00000009L #define SS_USERITEM 0x0000000AL #define SS_SIMPLE 0x0000000BL #define SS_LEFTNOWORDWRAP 0x0000000CL #if(WINVER >= 0x0400) #define SS_OWNERDRAW 0x0000000DL #define SS_BITMAP 0x0000000EL #define SS_ENHMETAFILE 0x0000000FL #define SS_ETCHEDHORZ 0x00000010L #define SS_ETCHEDVERT 0x00000011L #define SS_ETCHEDFRAME 0x00000012L #define SS_TYPEMASK 0x0000001FL #endif /* WINVER >= 0x0400 */ #if(WINVER >= 0x0501) #define SS_REALSIZECONTROL 0x00000040L #endif /* WINVER >= 0x0501 */ #define SS_NOPREFIX 0x00000080L /* Don't do "&" character translation */ #if(WINVER >= 0x0400) #define SS_NOTIFY 0x00000100L #define SS_CENTERIMAGE 0x00000200L #define SS_RIGHTJUST 0x00000400L #define SS_REALSIZEIMAGE 0x00000800L #define SS_SUNKEN 0x00001000L #define SS_EDITCONTROL 0x00002000L #define SS_ENDELLIPSIS 0x00004000L #define SS_PATHELLIPSIS 0x00008000L #define SS_WORDELLIPSIS 0x0000C000L #define SS_ELLIPSISMASK 0x0000C000L #endif /* WINVER >= 0x0400 */ #ifndef NOWINMESSAGES /* * Static Control Mesages */ #define STM_SETICON 0x0170 #define STM_GETICON 0x0171 #if(WINVER >= 0x0400) #define STM_SETIMAGE 0x0172 #define STM_GETIMAGE 0x0173 #define STN_CLICKED 0 #define STN_DBLCLK 1 #define STN_ENABLE 2 #define STN_DISABLE 3 #endif /* WINVER >= 0x0400 */ #define STM_MSGMAX 0x0174 #endif /* !NOWINMESSAGES */ /* * Dialog window class */ #define WC_DIALOG (MAKEINTATOM(0x8002)) /* * Get/SetWindowWord/Long offsets for use with WC_DIALOG windows */ #define DWL_MSGRESULT 0 #define DWL_DLGPROC 4 #define DWL_USER 8 #ifdef _WIN64 #undef DWL_MSGRESULT #undef DWL_DLGPROC #undef DWL_USER #endif /* _WIN64 */ #define DWLP_MSGRESULT 0 #define DWLP_DLGPROC DWLP_MSGRESULT + sizeof(LRESULT) #define DWLP_USER DWLP_DLGPROC + sizeof(DLGPROC) /* * Dialog Manager Routines */ #ifndef NOMSG WINUSERAPI BOOL WINAPI IsDialogMessageA( IN HWND hDlg, IN LPMSG lpMsg); WINUSERAPI BOOL WINAPI IsDialogMessageW( IN HWND hDlg, IN LPMSG lpMsg); #ifdef UNICODE #define IsDialogMessage IsDialogMessageW #else #define IsDialogMessage IsDialogMessageA #endif // !UNICODE #endif /* !NOMSG */ WINUSERAPI BOOL WINAPI MapDialogRect( IN HWND hDlg, IN OUT LPRECT lpRect); WINUSERAPI int WINAPI DlgDirListA( IN HWND hDlg, IN OUT LPSTR lpPathSpec, IN int nIDListBox, IN int nIDStaticPath, IN UINT uFileType); WINUSERAPI int WINAPI DlgDirListW( IN HWND hDlg, IN OUT LPWSTR lpPathSpec, IN int nIDListBox, IN int nIDStaticPath, IN UINT uFileType); #ifdef UNICODE #define DlgDirList DlgDirListW #else #define DlgDirList DlgDirListA #endif // !UNICODE /* * DlgDirList, DlgDirListComboBox flags values */ #define DDL_READWRITE 0x0000 #define DDL_READONLY 0x0001 #define DDL_HIDDEN 0x0002 #define DDL_SYSTEM 0x0004 #define DDL_DIRECTORY 0x0010 #define DDL_ARCHIVE 0x0020 #define DDL_POSTMSGS 0x2000 #define DDL_DRIVES 0x4000 #define DDL_EXCLUSIVE 0x8000 WINUSERAPI BOOL WINAPI DlgDirSelectExA( IN HWND hDlg, OUT LPSTR lpString, IN int nCount, IN int nIDListBox); WINUSERAPI BOOL WINAPI DlgDirSelectExW( IN HWND hDlg, OUT LPWSTR lpString, IN int nCount, IN int nIDListBox); #ifdef UNICODE #define DlgDirSelectEx DlgDirSelectExW #else #define DlgDirSelectEx DlgDirSelectExA #endif // !UNICODE WINUSERAPI int WINAPI DlgDirListComboBoxA( IN HWND hDlg, IN OUT LPSTR lpPathSpec, IN int nIDComboBox, IN int nIDStaticPath, IN UINT uFiletype); WINUSERAPI int WINAPI DlgDirListComboBoxW( IN HWND hDlg, IN OUT LPWSTR lpPathSpec, IN int nIDComboBox, IN int nIDStaticPath, IN UINT uFiletype); #ifdef UNICODE #define DlgDirListComboBox DlgDirListComboBoxW #else #define DlgDirListComboBox DlgDirListComboBoxA #endif // !UNICODE WINUSERAPI BOOL WINAPI DlgDirSelectComboBoxExA( IN HWND hDlg, OUT LPSTR lpString, IN int nCount, IN int nIDComboBox); WINUSERAPI BOOL WINAPI DlgDirSelectComboBoxExW( IN HWND hDlg, OUT LPWSTR lpString, IN int nCount, IN int nIDComboBox); #ifdef UNICODE #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW #else #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA #endif // !UNICODE /* * Dialog Styles */ #define DS_ABSALIGN 0x01L #define DS_SYSMODAL 0x02L #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */ #define DS_SETFONT 0x40L /* User specified font for Dlg controls */ #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */ #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */ #define DS_SETFOREGROUND 0x200L /* not in win3.1 */ #if(WINVER >= 0x0400) #define DS_3DLOOK 0x0004L #define DS_FIXEDSYS 0x0008L #define DS_NOFAILCREATE 0x0010L #define DS_CONTROL 0x0400L #define DS_CENTER 0x0800L #define DS_CENTERMOUSE 0x1000L #define DS_CONTEXTHELP 0x2000L #define DS_SHELLFONT (DS_SETFONT | DS_FIXEDSYS) #endif /* WINVER >= 0x0400 */ #if(_WIN32_WCE >= 0x0500) #define DS_USEPIXELS 0x8000L #endif #define DM_GETDEFID (WM_USER+0) #define DM_SETDEFID (WM_USER+1) #if(WINVER >= 0x0400) #define DM_REPOSITION (WM_USER+2) #endif /* WINVER >= 0x0400 */ /* * Returned in HIWORD() of DM_GETDEFID result if msg is supported */ #define DC_HASDEFID 0x534B /* * Dialog Codes */ #define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */ #define DLGC_WANTTAB 0x0002 /* Control wants tab keys */ #define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */ #define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */ #define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */ #define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */ #define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */ #define DLGC_RADIOBUTTON 0x0040 /* Radio button */ #define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */ #define DLGC_STATIC 0x0100 /* Static item: don't include */ #define DLGC_BUTTON 0x2000 /* Button item: can be checked */ #define LB_CTLCODE 0L /* * Listbox Return Values */ #define LB_OKAY 0 #define LB_ERR (-1) #define LB_ERRSPACE (-2) /* ** The idStaticPath parameter to DlgDirList can have the following values ** ORed if the list box should show other details of the files along with ** the name of the files; */ /* all other details also will be returned */ /* * Listbox Notification Codes */ #define LBN_ERRSPACE (-2) #define LBN_SELCHANGE 1 #define LBN_DBLCLK 2 #define LBN_SELCANCEL 3 #define LBN_SETFOCUS 4 #define LBN_KILLFOCUS 5 #ifndef NOWINMESSAGES /* * Listbox messages */ #define LB_ADDSTRING 0x0180 #define LB_INSERTSTRING 0x0181 #define LB_DELETESTRING 0x0182 #define LB_SELITEMRANGEEX 0x0183 #define LB_RESETCONTENT 0x0184 #define LB_SETSEL 0x0185 #define LB_SETCURSEL 0x0186 #define LB_GETSEL 0x0187 #define LB_GETCURSEL 0x0188 #define LB_GETTEXT 0x0189 #define LB_GETTEXTLEN 0x018A #define LB_GETCOUNT 0x018B #define LB_SELECTSTRING 0x018C #define LB_DIR 0x018D #define LB_GETTOPINDEX 0x018E #define LB_FINDSTRING 0x018F #define LB_GETSELCOUNT 0x0190 #define LB_GETSELITEMS 0x0191 #define LB_SETTABSTOPS 0x0192 #define LB_GETHORIZONTALEXTENT 0x0193 #define LB_SETHORIZONTALEXTENT 0x0194 #define LB_SETCOLUMNWIDTH 0x0195 #define LB_ADDFILE 0x0196 #define LB_SETTOPINDEX 0x0197 #define LB_GETITEMRECT 0x0198 #define LB_GETITEMDATA 0x0199 #define LB_SETITEMDATA 0x019A #define LB_SELITEMRANGE 0x019B #define LB_SETANCHORINDEX 0x019C #define LB_GETANCHORINDEX 0x019D #define LB_SETCARETINDEX 0x019E #define LB_GETCARETINDEX 0x019F #define LB_SETITEMHEIGHT 0x01A0 #define LB_GETITEMHEIGHT 0x01A1 #define LB_FINDSTRINGEXACT 0x01A2 #define LB_SETLOCALE 0x01A5 #define LB_GETLOCALE 0x01A6 #define LB_SETCOUNT 0x01A7 #if(WINVER >= 0x0400) #define LB_INITSTORAGE 0x01A8 #define LB_ITEMFROMPOINT 0x01A9 #endif /* WINVER >= 0x0400 */ #if(_WIN32_WCE >= 0x0400) #define LB_MULTIPLEADDSTRING 0x01B1 #endif #if(_WIN32_WINNT >= 0x0501) #define LB_GETLISTBOXINFO 0x01B2 #endif /* _WIN32_WINNT >= 0x0501 */ #if(_WIN32_WINNT >= 0x0501) #define LB_MSGMAX 0x01B3 #elif(_WIN32_WCE >= 0x0400) #define LB_MSGMAX 0x01B1 #elif(WINVER >= 0x0400) #define LB_MSGMAX 0x01B0 #else #define LB_MSGMAX 0x01A8 #endif #endif /* !NOWINMESSAGES */ #ifndef NOWINSTYLES /* * Listbox Styles */ #define LBS_NOTIFY 0x0001L #define LBS_SORT 0x0002L #define LBS_NOREDRAW 0x0004L #define LBS_MULTIPLESEL 0x0008L #define LBS_OWNERDRAWFIXED 0x0010L #define LBS_OWNERDRAWVARIABLE 0x0020L #define LBS_HASSTRINGS 0x0040L #define LBS_USETABSTOPS 0x0080L #define LBS_NOINTEGRALHEIGHT 0x0100L #define LBS_MULTICOLUMN 0x0200L #define LBS_WANTKEYBOARDINPUT 0x0400L #define LBS_EXTENDEDSEL 0x0800L #define LBS_DISABLENOSCROLL 0x1000L #define LBS_NODATA 0x2000L #if(WINVER >= 0x0400) #define LBS_NOSEL 0x4000L #endif /* WINVER >= 0x0400 */ #define LBS_COMBOBOX 0x8000L #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER) #endif /* !NOWINSTYLES */ /* * Combo Box return Values */ #define CB_OKAY 0 #define CB_ERR (-1) #define CB_ERRSPACE (-2) /* * Combo Box Notification Codes */ #define CBN_ERRSPACE (-1) #define CBN_SELCHANGE 1 #define CBN_DBLCLK 2 #define CBN_SETFOCUS 3 #define CBN_KILLFOCUS 4 #define CBN_EDITCHANGE 5 #define CBN_EDITUPDATE 6 #define CBN_DROPDOWN 7 #define CBN_CLOSEUP 8 #define CBN_SELENDOK 9 #define CBN_SELENDCANCEL 10 #ifndef NOWINSTYLES /* * Combo Box styles */ #define CBS_SIMPLE 0x0001L #define CBS_DROPDOWN 0x0002L #define CBS_DROPDOWNLIST 0x0003L #define CBS_OWNERDRAWFIXED 0x0010L #define CBS_OWNERDRAWVARIABLE 0x0020L #define CBS_AUTOHSCROLL 0x0040L #define CBS_OEMCONVERT 0x0080L #define CBS_SORT 0x0100L #define CBS_HASSTRINGS 0x0200L #define CBS_NOINTEGRALHEIGHT 0x0400L #define CBS_DISABLENOSCROLL 0x0800L #if(WINVER >= 0x0400) #define CBS_UPPERCASE 0x2000L #define CBS_LOWERCASE 0x4000L #endif /* WINVER >= 0x0400 */ #endif /* !NOWINSTYLES */ /* * Combo Box messages */ #ifndef NOWINMESSAGES #define CB_GETEDITSEL 0x0140 #define CB_LIMITTEXT 0x0141 #define CB_SETEDITSEL 0x0142 #define CB_ADDSTRING 0x0143 #define CB_DELETESTRING 0x0144 #define CB_DIR 0x0145 #define CB_GETCOUNT 0x0146 #define CB_GETCURSEL 0x0147 #define CB_GETLBTEXT 0x0148 #define CB_GETLBTEXTLEN 0x0149 #define CB_INSERTSTRING 0x014A #define CB_RESETCONTENT 0x014B #define CB_FINDSTRING 0x014C #define CB_SELECTSTRING 0x014D #define CB_SETCURSEL 0x014E #define CB_SHOWDROPDOWN 0x014F #define CB_GETITEMDATA 0x0150 #define CB_SETITEMDATA 0x0151 #define CB_GETDROPPEDCONTROLRECT 0x0152 #define CB_SETITEMHEIGHT 0x0153 #define CB_GETITEMHEIGHT 0x0154 #define CB_SETEXTENDEDUI 0x0155 #define CB_GETEXTENDEDUI 0x0156 #define CB_GETDROPPEDSTATE 0x0157 #define CB_FINDSTRINGEXACT 0x0158 #define CB_SETLOCALE 0x0159 #define CB_GETLOCALE 0x015A #if(WINVER >= 0x0400) #define CB_GETTOPINDEX 0x015b #define CB_SETTOPINDEX 0x015c #define CB_GETHORIZONTALEXTENT 0x015d #define CB_SETHORIZONTALEXTENT 0x015e #define CB_GETDROPPEDWIDTH 0x015f #define CB_SETDROPPEDWIDTH 0x0160 #define CB_INITSTORAGE 0x0161 #if(_WIN32_WCE >= 0x0400) #define CB_MULTIPLEADDSTRING 0x0163 #endif #endif /* WINVER >= 0x0400 */ #if(_WIN32_WINNT >= 0x0501) #define CB_GETCOMBOBOXINFO 0x0164 #endif /* _WIN32_WINNT >= 0x0501 */ #if(_WIN32_WINNT >= 0x0501) #define CB_MSGMAX 0x0165 #elif(_WIN32_WCE >= 0x0400) #define CB_MSGMAX 0x0163 #elif(WINVER >= 0x0400) #define CB_MSGMAX 0x0162 #else #define CB_MSGMAX 0x015B #endif #endif /* !NOWINMESSAGES */ #ifndef NOWINSTYLES /* * Scroll Bar Styles */ #define SBS_HORZ 0x0000L #define SBS_VERT 0x0001L #define SBS_TOPALIGN 0x0002L #define SBS_LEFTALIGN 0x0002L #define SBS_BOTTOMALIGN 0x0004L #define SBS_RIGHTALIGN 0x0004L #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L #define SBS_SIZEBOX 0x0008L #if(WINVER >= 0x0400) #define SBS_SIZEGRIP 0x0010L #endif /* WINVER >= 0x0400 */ #endif /* !NOWINSTYLES */ /* * Scroll bar messages */ #ifndef NOWINMESSAGES #define SBM_SETPOS 0x00E0 /*not in win3.1 */ #define SBM_GETPOS 0x00E1 /*not in win3.1 */ #define SBM_SETRANGE 0x00E2 /*not in win3.1 */ #define SBM_SETRANGEREDRAW 0x00E6 /*not in win3.1 */ #define SBM_GETRANGE 0x00E3 /*not in win3.1 */ #define SBM_ENABLE_ARROWS 0x00E4 /*not in win3.1 */ #if(WINVER >= 0x0400) #define SBM_SETSCROLLINFO 0x00E9 #define SBM_GETSCROLLINFO 0x00EA #endif /* WINVER >= 0x0400 */ #if(_WIN32_WINNT >= 0x0501) #define SBM_GETSCROLLBARINFO 0x00EB #endif /* _WIN32_WINNT >= 0x0501 */ #if(WINVER >= 0x0400) #define SIF_RANGE 0x0001 #define SIF_PAGE 0x0002 #define SIF_POS 0x0004 #define SIF_DISABLENOSCROLL 0x0008 #define SIF_TRACKPOS 0x0010 #define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS) typedef struct tagSCROLLINFO { UINT cbSize; UINT fMask; int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; } SCROLLINFO, FAR *LPSCROLLINFO; typedef SCROLLINFO CONST FAR *LPCSCROLLINFO; WINUSERAPI int WINAPI SetScrollInfo(IN HWND, IN int, IN LPCSCROLLINFO, IN BOOL); WINUSERAPI BOOL WINAPI GetScrollInfo(IN HWND, IN int, IN OUT LPSCROLLINFO); #endif /* WINVER >= 0x0400 */ #endif /* !NOWINMESSAGES */ #endif /* !NOCTLMGR */ #ifndef NOMDI /* * MDI client style bits */ #define MDIS_ALLCHILDSTYLES 0x0001 /* * wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */ #define MDITILE_VERTICAL 0x0000 /*not in win3.1 */ #define MDITILE_HORIZONTAL 0x0001 /*not in win3.1 */ #define MDITILE_SKIPDISABLED 0x0002 /*not in win3.1 */ #if(_WIN32_WINNT >= 0x0500) #define MDITILE_ZORDER 0x0004 #endif /* _WIN32_WINNT >= 0x0500 */ typedef struct tagMDICREATESTRUCTA { LPCSTR szClass; LPCSTR szTitle; HANDLE hOwner; int x; int y; int cx; int cy; DWORD style; LPARAM lParam; /* app-defined stuff */ } MDICREATESTRUCTA, *LPMDICREATESTRUCTA; typedef struct tagMDICREATESTRUCTW { LPCWSTR szClass; LPCWSTR szTitle; HANDLE hOwner; int x; int y; int cx; int cy; DWORD style; LPARAM lParam; /* app-defined stuff */ } MDICREATESTRUCTW, *LPMDICREATESTRUCTW; #ifdef UNICODE typedef MDICREATESTRUCTW MDICREATESTRUCT; typedef LPMDICREATESTRUCTW LPMDICREATESTRUCT; #else typedef MDICREATESTRUCTA MDICREATESTRUCT; typedef LPMDICREATESTRUCTA LPMDICREATESTRUCT; #endif // UNICODE typedef struct tagCLIENTCREATESTRUCT { HANDLE hWindowMenu; UINT idFirstChild; } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT; WINUSERAPI LRESULT WINAPI DefFrameProcA( IN HWND hWnd, IN HWND hWndMDIClient, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI LRESULT WINAPI DefFrameProcW( IN HWND hWnd, IN HWND hWndMDIClient, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define DefFrameProc DefFrameProcW #else #define DefFrameProc DefFrameProcA #endif // !UNICODE WINUSERAPI #ifndef _MAC LRESULT WINAPI #else LRESULT CALLBACK #endif DefMDIChildProcA( IN HWND hWnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam); WINUSERAPI #ifndef _MAC LRESULT WINAPI #else LRESULT CALLBACK #endif DefMDIChildProcW( IN HWND hWnd, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam); #ifdef UNICODE #define DefMDIChildProc DefMDIChildProcW #else #define DefMDIChildProc DefMDIChildProcA #endif // !UNICODE #ifndef NOMSG WINUSERAPI BOOL WINAPI TranslateMDISysAccel( IN HWND hWndClient, IN LPMSG lpMsg); #endif /* !NOMSG */ WINUSERAPI UINT WINAPI ArrangeIconicWindows( IN HWND hWnd); WINUSERAPI HWND WINAPI CreateMDIWindowA( IN LPCSTR lpClassName, IN LPCSTR lpWindowName, IN DWORD dwStyle, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN HWND hWndParent, IN HINSTANCE hInstance, IN LPARAM lParam ); WINUSERAPI HWND WINAPI CreateMDIWindowW( IN LPCWSTR lpClassName, IN LPCWSTR lpWindowName, IN DWORD dwStyle, IN int X, IN int Y, IN int nWidth, IN int nHeight, IN HWND hWndParent, IN HINSTANCE hInstance, IN LPARAM lParam ); #ifdef UNICODE #define CreateMDIWindow CreateMDIWindowW #else #define CreateMDIWindow CreateMDIWindowA #endif // !UNICODE #if(WINVER >= 0x0400) WINUSERAPI WORD WINAPI TileWindows( IN HWND hwndParent, IN UINT wHow, IN CONST RECT * lpRect, IN UINT cKids, IN const HWND FAR * lpKids); WINUSERAPI WORD WINAPI CascadeWindows( IN HWND hwndParent, IN UINT wHow, IN CONST RECT * lpRect, IN UINT cKids, IN const HWND FAR * lpKids); #endif /* WINVER >= 0x0400 */ #endif /* !NOMDI */ #endif /* !NOUSER */ /****** Help support ********************************************************/ #ifndef NOHELP typedef DWORD HELPPOLY; typedef struct tagMULTIKEYHELPA { #ifndef _MAC DWORD mkSize; #else WORD mkSize; #endif CHAR mkKeylist; CHAR szKeyphrase[1]; } MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA; typedef struct tagMULTIKEYHELPW { #ifndef _MAC DWORD mkSize; #else WORD mkSize; #endif WCHAR mkKeylist; WCHAR szKeyphrase[1]; } MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW; #ifdef UNICODE typedef MULTIKEYHELPW MULTIKEYHELP; typedef PMULTIKEYHELPW PMULTIKEYHELP; typedef LPMULTIKEYHELPW LPMULTIKEYHELP; #else typedef MULTIKEYHELPA MULTIKEYHELP; typedef PMULTIKEYHELPA PMULTIKEYHELP; typedef LPMULTIKEYHELPA LPMULTIKEYHELP; #endif // UNICODE typedef struct tagHELPWININFOA { int wStructSize; int x; int y; int dx; int dy; int wMax; CHAR rgchMember[2]; } HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA; typedef struct tagHELPWININFOW { int wStructSize; int x; int y; int dx; int dy; int wMax; WCHAR rgchMember[2]; } HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW; #ifdef UNICODE typedef HELPWININFOW HELPWININFO; typedef PHELPWININFOW PHELPWININFO; typedef LPHELPWININFOW LPHELPWININFO; #else typedef HELPWININFOA HELPWININFO; typedef PHELPWININFOA PHELPWININFO; typedef LPHELPWININFOA LPHELPWININFO; #endif // UNICODE /* * Commands to pass to WinHelp() */ #define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */ #define HELP_QUIT 0x0002L /* Terminate help */ #define HELP_INDEX 0x0003L /* Display index */ #define HELP_CONTENTS 0x0003L #define HELP_HELPONHELP 0x0004L /* Display help on using help */ #define HELP_SETINDEX 0x0005L /* Set current Index for multi index help */ #define HELP_SETCONTENTS 0x0005L #define HELP_CONTEXTPOPUP 0x0008L #define HELP_FORCEFILE 0x0009L #define HELP_KEY 0x0101L /* Display topic for keyword in offabData */ #define HELP_COMMAND 0x0102L #define HELP_PARTIALKEY 0x0105L #define HELP_MULTIKEY 0x0201L #define HELP_SETWINPOS 0x0203L #if(WINVER >= 0x0400) #define HELP_CONTEXTMENU 0x000a #define HELP_FINDER 0x000b #define HELP_WM_HELP 0x000c #define HELP_SETPOPUP_POS 0x000d #define HELP_TCARD 0x8000 #define HELP_TCARD_DATA 0x0010 #define HELP_TCARD_OTHER_CALLER 0x0011 // These are in winhelp.h in Win95. #define IDH_NO_HELP 28440 #define IDH_MISSING_CONTEXT 28441 // Control doesn't have matching help context #define IDH_GENERIC_HELP_BUTTON 28442 // Property sheet help button #define IDH_OK 28443 #define IDH_CANCEL 28444 #define IDH_HELP 28445 #endif /* WINVER >= 0x0400 */ WINUSERAPI BOOL WINAPI WinHelpA( IN HWND hWndMain, IN LPCSTR lpszHelp, IN UINT uCommand, IN ULONG_PTR dwData ); WINUSERAPI BOOL WINAPI WinHelpW( IN HWND hWndMain, IN LPCWSTR lpszHelp, IN UINT uCommand, IN ULONG_PTR dwData ); #ifdef UNICODE #define WinHelp WinHelpW #else #define WinHelp WinHelpA #endif // !UNICODE #endif /* !NOHELP */ #if(WINVER >= 0x0500) #define GR_GDIOBJECTS 0 /* Count of GDI objects */ #define GR_USEROBJECTS 1 /* Count of USER objects */ WINUSERAPI DWORD WINAPI GetGuiResources( IN HANDLE hProcess, IN DWORD uiFlags); #endif /* WINVER >= 0x0500 */ #ifndef NOSYSPARAMSINFO /* * Parameter for SystemParametersInfo() */ #define SPI_GETBEEP 0x0001 #define SPI_SETBEEP 0x0002 #define SPI_GETMOUSE 0x0003 #define SPI_SETMOUSE 0x0004 #define SPI_GETBORDER 0x0005 #define SPI_SETBORDER 0x0006 #define SPI_GETKEYBOARDSPEED 0x000A #define SPI_SETKEYBOARDSPEED 0x000B #define SPI_LANGDRIVER 0x000C #define SPI_ICONHORIZONTALSPACING 0x000D #define SPI_GETSCREENSAVETIMEOUT 0x000E #define SPI_SETSCREENSAVETIMEOUT 0x000F #define SPI_GETSCREENSAVEACTIVE 0x0010 #define SPI_SETSCREENSAVEACTIVE 0x0011 #define SPI_GETGRIDGRANULARITY 0x0012 #define SPI_SETGRIDGRANULARITY 0x0013 #define SPI_SETDESKWALLPAPER 0x0014 #define SPI_SETDESKPATTERN 0x0015 #define SPI_GETKEYBOARDDELAY 0x0016 #define SPI_SETKEYBOARDDELAY 0x0017 #define SPI_ICONVERTICALSPACING 0x0018 #define SPI_GETICONTITLEWRAP 0x0019 #define SPI_SETICONTITLEWRAP 0x001A #define SPI_GETMENUDROPALIGNMENT 0x001B #define SPI_SETMENUDROPALIGNMENT 0x001C #define SPI_SETDOUBLECLKWIDTH 0x001D #define SPI_SETDOUBLECLKHEIGHT 0x001E #define SPI_GETICONTITLELOGFONT 0x001F #define SPI_SETDOUBLECLICKTIME 0x0020 #define SPI_SETMOUSEBUTTONSWAP 0x0021 #define SPI_SETICONTITLELOGFONT 0x0022 #define SPI_GETFASTTASKSWITCH 0x0023 #define SPI_SETFASTTASKSWITCH 0x0024 #if(WINVER >= 0x0400) #define SPI_SETDRAGFULLWINDOWS 0x0025 #define SPI_GETDRAGFULLWINDOWS 0x0026 #define SPI_GETNONCLIENTMETRICS 0x0029 #define SPI_SETNONCLIENTMETRICS 0x002A #define SPI_GETMINIMIZEDMETRICS 0x002B #define SPI_SETMINIMIZEDMETRICS 0x002C #define SPI_GETICONMETRICS 0x002D #define SPI_SETICONMETRICS 0x002E #define SPI_SETWORKAREA 0x002F #define SPI_GETWORKAREA 0x0030 #define SPI_SETPENWINDOWS 0x0031 #define SPI_GETHIGHCONTRAST 0x0042 #define SPI_SETHIGHCONTRAST 0x0043 #define SPI_GETKEYBOARDPREF 0x0044 #define SPI_SETKEYBOARDPREF 0x0045 #define SPI_GETSCREENREADER 0x0046 #define SPI_SETSCREENREADER 0x0047 #define SPI_GETANIMATION 0x0048 #define SPI_SETANIMATION 0x0049 #define SPI_GETFONTSMOOTHING 0x004A #define SPI_SETFONTSMOOTHING 0x004B #define SPI_SETDRAGWIDTH 0x004C #define SPI_SETDRAGHEIGHT 0x004D #define SPI_SETHANDHELD 0x004E #define SPI_GETLOWPOWERTIMEOUT 0x004F #define SPI_GETPOWEROFFTIMEOUT 0x0050 #define SPI_SETLOWPOWERTIMEOUT 0x0051 #define SPI_SETPOWEROFFTIMEOUT 0x0052 #define SPI_GETLOWPOWERACTIVE 0x0053 #define SPI_GETPOWEROFFACTIVE 0x0054 #define SPI_SETLOWPOWERACTIVE 0x0055 #define SPI_SETPOWEROFFACTIVE 0x0056 #define SPI_SETCURSORS 0x0057 #define SPI_SETICONS 0x0058 #define SPI_GETDEFAULTINPUTLANG 0x0059 #define SPI_SETDEFAULTINPUTLANG 0x005A #define SPI_SETLANGTOGGLE 0x005B #define SPI_GETWINDOWSEXTENSION 0x005C #define SPI_SETMOUSETRAILS 0x005D #define SPI_GETMOUSETRAILS 0x005E #define SPI_SETSCREENSAVERRUNNING 0x0061 #define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING #endif /* WINVER >= 0x0400 */ #define SPI_GETFILTERKEYS 0x0032 #define SPI_SETFILTERKEYS 0x0033 #define SPI_GETTOGGLEKEYS 0x0034 #define SPI_SETTOGGLEKEYS 0x0035 #define SPI_GETMOUSEKEYS 0x0036 #define SPI_SETMOUSEKEYS 0x0037 #define SPI_GETSHOWSOUNDS 0x0038 #define SPI_SETSHOWSOUNDS 0x0039 #define SPI_GETSTICKYKEYS 0x003A #define SPI_SETSTICKYKEYS 0x003B #define SPI_GETACCESSTIMEOUT 0x003C #define SPI_SETACCESSTIMEOUT 0x003D #if(WINVER >= 0x0400) #define SPI_GETSERIALKEYS 0x003E #define SPI_SETSERIALKEYS 0x003F #endif /* WINVER >= 0x0400 */ #define SPI_GETSOUNDSENTRY 0x0040 #define SPI_SETSOUNDSENTRY 0x0041 #if(_WIN32_WINNT >= 0x0400) #define SPI_GETSNAPTODEFBUTTON 0x005F #define SPI_SETSNAPTODEFBUTTON 0x0060 #endif /* _WIN32_WINNT >= 0x0400 */ #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) #define SPI_GETMOUSEHOVERWIDTH 0x0062 #define SPI_SETMOUSEHOVERWIDTH 0x0063 #define SPI_GETMOUSEHOVERHEIGHT 0x0064 #define SPI_SETMOUSEHOVERHEIGHT 0x0065 #define SPI_GETMOUSEHOVERTIME 0x0066 #define SPI_SETMOUSEHOVERTIME 0x0067 #define SPI_GETWHEELSCROLLLINES 0x0068 #define SPI_SETWHEELSCROLLLINES 0x0069 #define SPI_GETMENUSHOWDELAY 0x006A #define SPI_SETMENUSHOWDELAY 0x006B #define SPI_GETSHOWIMEUI 0x006E #define SPI_SETSHOWIMEUI 0x006F #endif #if(WINVER >= 0x0500) #define SPI_GETMOUSESPEED 0x0070 #define SPI_SETMOUSESPEED 0x0071 #define SPI_GETSCREENSAVERRUNNING 0x0072 #define SPI_GETDESKWALLPAPER 0x0073 #endif /* WINVER >= 0x0500 */ #if(WINVER >= 0x0500) #define SPI_GETACTIVEWINDOWTRACKING 0x1000 #define SPI_SETACTIVEWINDOWTRACKING 0x1001 #define SPI_GETMENUANIMATION 0x1002 #define SPI_SETMENUANIMATION 0x1003 #define SPI_GETCOMBOBOXANIMATION 0x1004 #define SPI_SETCOMBOBOXANIMATION 0x1005 #define SPI_GETLISTBOXSMOOTHSCROLLING 0x1006 #define SPI_SETLISTBOXSMOOTHSCROLLING 0x1007 #define SPI_GETGRADIENTCAPTIONS 0x1008 #define SPI_SETGRADIENTCAPTIONS 0x1009 #define SPI_GETKEYBOARDCUES 0x100A #define SPI_SETKEYBOARDCUES 0x100B #define SPI_GETMENUUNDERLINES SPI_GETKEYBOARDCUES #define SPI_SETMENUUNDERLINES SPI_SETKEYBOARDCUES #define SPI_GETACTIVEWNDTRKZORDER 0x100C #define SPI_SETACTIVEWNDTRKZORDER 0x100D #define SPI_GETHOTTRACKING 0x100E #define SPI_SETHOTTRACKING 0x100F #define SPI_GETMENUFADE 0x1012 #define SPI_SETMENUFADE 0x1013 #define SPI_GETSELECTIONFADE 0x1014 #define SPI_SETSELECTIONFADE 0x1015 #define SPI_GETTOOLTIPANIMATION 0x1016 #define SPI_SETTOOLTIPANIMATION 0x1017 #define SPI_GETTOOLTIPFADE 0x1018 #define SPI_SETTOOLTIPFADE 0x1019 #define SPI_GETCURSORSHADOW 0x101A #define SPI_SETCURSORSHADOW 0x101B #if(_WIN32_WINNT >= 0x0501) #define SPI_GETMOUSESONAR 0x101C #define SPI_SETMOUSESONAR 0x101D #define SPI_GETMOUSECLICKLOCK 0x101E #define SPI_SETMOUSECLICKLOCK 0x101F #define SPI_GETMOUSEVANISH 0x1020 #define SPI_SETMOUSEVANISH 0x1021 #define SPI_GETFLATMENU 0x1022 #define SPI_SETFLATMENU 0x1023 #define SPI_GETDROPSHADOW 0x1024 #define SPI_SETDROPSHADOW 0x1025 #define SPI_GETBLOCKSENDINPUTRESETS 0x1026 #define SPI_SETBLOCKSENDINPUTRESETS 0x1027 #endif /* _WIN32_WINNT >= 0x0501 */ #define SPI_GETUIEFFECTS 0x103E #define SPI_SETUIEFFECTS 0x103F #define SPI_GETFOREGROUNDLOCKTIMEOUT 0x2000 #define SPI_SETFOREGROUNDLOCKTIMEOUT 0x2001 #define SPI_GETACTIVEWNDTRKTIMEOUT 0x2002 #define SPI_SETACTIVEWNDTRKTIMEOUT 0x2003 #define SPI_GETFOREGROUNDFLASHCOUNT 0x2004 #define SPI_SETFOREGROUNDFLASHCOUNT 0x2005 #define SPI_GETCARETWIDTH 0x2006 #define SPI_SETCARETWIDTH 0x2007 #if(_WIN32_WINNT >= 0x0501) #define SPI_GETMOUSECLICKLOCKTIME 0x2008 #define SPI_SETMOUSECLICKLOCKTIME 0x2009 #define SPI_GETFONTSMOOTHINGTYPE 0x200A #define SPI_SETFONTSMOOTHINGTYPE 0x200B /* constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE: */ #define FE_FONTSMOOTHINGSTANDARD 0x0001 #define FE_FONTSMOOTHINGCLEARTYPE 0x0002 #define FE_FONTSMOOTHINGDOCKING 0x8000 #define SPI_GETFONTSMOOTHINGCONTRAST 0x200C #define SPI_SETFONTSMOOTHINGCONTRAST 0x200D #define SPI_GETFOCUSBORDERWIDTH 0x200E #define SPI_SETFOCUSBORDERWIDTH 0x200F #define SPI_GETFOCUSBORDERHEIGHT 0x2010 #define SPI_SETFOCUSBORDERHEIGHT 0x2011 #define SPI_GETFONTSMOOTHINGORIENTATION 0x2012 #define SPI_SETFONTSMOOTHINGORIENTATION 0x2013 /* constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION: */ #define FE_FONTSMOOTHINGORIENTATIONBGR 0x0000 #define FE_FONTSMOOTHINGORIENTATIONRGB 0x0001 #endif /* _WIN32_WINNT >= 0x0501 */ #endif /* WINVER >= 0x0500 */ /* * Flags */ #define SPIF_UPDATEINIFILE 0x0001 #define SPIF_SENDWININICHANGE 0x0002 #define SPIF_SENDCHANGE SPIF_SENDWININICHANGE #define METRICS_USEDEFAULT -1 #ifdef _WINGDI_ #ifndef NOGDI typedef struct tagNONCLIENTMETRICSA { UINT cbSize; 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; } NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, FAR* LPNONCLIENTMETRICSA; typedef struct tagNONCLIENTMETRICSW { UINT cbSize; 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; } NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, FAR* LPNONCLIENTMETRICSW; #ifdef UNICODE typedef NONCLIENTMETRICSW NONCLIENTMETRICS; typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS; typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS; #else typedef NONCLIENTMETRICSA NONCLIENTMETRICS; typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS; typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS; #endif // UNICODE #endif /* NOGDI */ #endif /* _WINGDI_ */ #define ARW_BOTTOMLEFT 0x0000L #define ARW_BOTTOMRIGHT 0x0001L #define ARW_TOPLEFT 0x0002L #define ARW_TOPRIGHT 0x0003L #define ARW_STARTMASK 0x0003L #define ARW_STARTRIGHT 0x0001L #define ARW_STARTTOP 0x0002L #define ARW_LEFT 0x0000L #define ARW_RIGHT 0x0000L #define ARW_UP 0x0004L #define ARW_DOWN 0x0004L #define ARW_HIDE 0x0008L typedef struct tagMINIMIZEDMETRICS { UINT cbSize; int iWidth; int iHorzGap; int iVertGap; int iArrange; } MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS; #ifdef _WINGDI_ #ifndef NOGDI typedef struct tagICONMETRICSA { UINT cbSize; int iHorzSpacing; int iVertSpacing; int iTitleWrap; LOGFONTA lfFont; } ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA; typedef struct tagICONMETRICSW { UINT cbSize; int iHorzSpacing; int iVertSpacing; int iTitleWrap; LOGFONTW lfFont; } ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW; #ifdef UNICODE typedef ICONMETRICSW ICONMETRICS; typedef PICONMETRICSW PICONMETRICS; typedef LPICONMETRICSW LPICONMETRICS; #else typedef ICONMETRICSA ICONMETRICS; typedef PICONMETRICSA PICONMETRICS; typedef LPICONMETRICSA LPICONMETRICS; #endif // UNICODE #endif /* NOGDI */ #endif /* _WINGDI_ */ typedef struct tagANIMATIONINFO { UINT cbSize; int iMinAnimate; } ANIMATIONINFO, *LPANIMATIONINFO; typedef struct tagSERIALKEYSA { UINT cbSize; DWORD dwFlags; LPSTR lpszActivePort; LPSTR lpszPort; UINT iBaudRate; UINT iPortState; UINT iActive; } SERIALKEYSA, *LPSERIALKEYSA; typedef struct tagSERIALKEYSW { UINT cbSize; DWORD dwFlags; LPWSTR lpszActivePort; LPWSTR lpszPort; UINT iBaudRate; UINT iPortState; UINT iActive; } SERIALKEYSW, *LPSERIALKEYSW; #ifdef UNICODE typedef SERIALKEYSW SERIALKEYS; typedef LPSERIALKEYSW LPSERIALKEYS; #else typedef SERIALKEYSA SERIALKEYS; typedef LPSERIALKEYSA LPSERIALKEYS; #endif // UNICODE /* flags for SERIALKEYS dwFlags field */ #define SERKF_SERIALKEYSON 0x00000001 #define SERKF_AVAILABLE 0x00000002 #define SERKF_INDICATOR 0x00000004 typedef struct tagHIGHCONTRASTA { UINT cbSize; DWORD dwFlags; LPSTR lpszDefaultScheme; } HIGHCONTRASTA, *LPHIGHCONTRASTA; typedef struct tagHIGHCONTRASTW { UINT cbSize; DWORD dwFlags; LPWSTR lpszDefaultScheme; } HIGHCONTRASTW, *LPHIGHCONTRASTW; #ifdef UNICODE typedef HIGHCONTRASTW HIGHCONTRAST; typedef LPHIGHCONTRASTW LPHIGHCONTRAST; #else typedef HIGHCONTRASTA HIGHCONTRAST; typedef LPHIGHCONTRASTA LPHIGHCONTRAST; #endif // UNICODE /* flags for HIGHCONTRAST dwFlags field */ #define HCF_HIGHCONTRASTON 0x00000001 #define HCF_AVAILABLE 0x00000002 #define HCF_HOTKEYACTIVE 0x00000004 #define HCF_CONFIRMHOTKEY 0x00000008 #define HCF_HOTKEYSOUND 0x00000010 #define HCF_INDICATOR 0x00000020 #define HCF_HOTKEYAVAILABLE 0x00000040 /* Flags for ChangeDisplaySettings */ #define CDS_UPDATEREGISTRY 0x00000001 #define CDS_TEST 0x00000002 #define CDS_FULLSCREEN 0x00000004 #define CDS_GLOBAL 0x00000008 #define CDS_SET_PRIMARY 0x00000010 #define CDS_VIDEOPARAMETERS 0x00000020 #define CDS_RESET 0x40000000 #define CDS_NORESET 0x10000000 #include /* Return values for ChangeDisplaySettings */ #define DISP_CHANGE_SUCCESSFUL 0 #define DISP_CHANGE_RESTART 1 #define DISP_CHANGE_FAILED -1 #define DISP_CHANGE_BADMODE -2 #define DISP_CHANGE_NOTUPDATED -3 #define DISP_CHANGE_BADFLAGS -4 #define DISP_CHANGE_BADPARAM -5 #if(_WIN32_WINNT >= 0x0501) #define DISP_CHANGE_BADDUALVIEW -6 #endif /* _WIN32_WINNT >= 0x0501 */ #ifdef _WINGDI_ #ifndef NOGDI WINUSERAPI LONG WINAPI ChangeDisplaySettingsA( IN LPDEVMODEA lpDevMode, IN DWORD dwFlags); WINUSERAPI LONG WINAPI ChangeDisplaySettingsW( IN LPDEVMODEW lpDevMode, IN DWORD dwFlags); #ifdef UNICODE #define ChangeDisplaySettings ChangeDisplaySettingsW #else #define ChangeDisplaySettings ChangeDisplaySettingsA #endif // !UNICODE WINUSERAPI LONG WINAPI ChangeDisplaySettingsExA( IN LPCSTR lpszDeviceName, IN LPDEVMODEA lpDevMode, IN HWND hwnd, IN DWORD dwflags, IN LPVOID lParam); WINUSERAPI LONG WINAPI ChangeDisplaySettingsExW( IN LPCWSTR lpszDeviceName, IN LPDEVMODEW lpDevMode, IN HWND hwnd, IN DWORD dwflags, IN LPVOID lParam); #ifdef UNICODE #define ChangeDisplaySettingsEx ChangeDisplaySettingsExW #else #define ChangeDisplaySettingsEx ChangeDisplaySettingsExA #endif // !UNICODE #define ENUM_CURRENT_SETTINGS ((DWORD)-1) #define ENUM_REGISTRY_SETTINGS ((DWORD)-2) WINUSERAPI BOOL WINAPI EnumDisplaySettingsA( IN LPCSTR lpszDeviceName, IN DWORD iModeNum, OUT LPDEVMODEA lpDevMode); WINUSERAPI BOOL WINAPI EnumDisplaySettingsW( IN LPCWSTR lpszDeviceName, IN DWORD iModeNum, OUT LPDEVMODEW lpDevMode); #ifdef UNICODE #define EnumDisplaySettings EnumDisplaySettingsW #else #define EnumDisplaySettings EnumDisplaySettingsA #endif // !UNICODE #if(WINVER >= 0x0500) WINUSERAPI BOOL WINAPI EnumDisplaySettingsExA( IN LPCSTR lpszDeviceName, IN DWORD iModeNum, OUT LPDEVMODEA lpDevMode, IN DWORD dwFlags); WINUSERAPI BOOL WINAPI EnumDisplaySettingsExW( IN LPCWSTR lpszDeviceName, IN DWORD iModeNum, OUT LPDEVMODEW lpDevMode, IN DWORD dwFlags); #ifdef UNICODE #define EnumDisplaySettingsEx EnumDisplaySettingsExW #else #define EnumDisplaySettingsEx EnumDisplaySettingsExA #endif // !UNICODE /* Flags for EnumDisplaySettingsEx */ #define EDS_RAWMODE 0x00000002 WINUSERAPI BOOL WINAPI EnumDisplayDevicesA( IN LPCSTR lpDevice, IN DWORD iDevNum, OUT PDISPLAY_DEVICEA lpDisplayDevice, IN DWORD dwFlags); WINUSERAPI BOOL WINAPI EnumDisplayDevicesW( IN LPCWSTR lpDevice, IN DWORD iDevNum, OUT PDISPLAY_DEVICEW lpDisplayDevice, IN DWORD dwFlags); #ifdef UNICODE #define EnumDisplayDevices EnumDisplayDevicesW #else #define EnumDisplayDevices EnumDisplayDevicesA #endif // !UNICODE #endif /* WINVER >= 0x0500 */ #endif /* NOGDI */ #endif /* _WINGDI_ */ WINUSERAPI BOOL WINAPI SystemParametersInfoA( IN UINT uiAction, IN UINT uiParam, IN OUT PVOID pvParam, IN UINT fWinIni); WINUSERAPI BOOL WINAPI SystemParametersInfoW( IN UINT uiAction, IN UINT uiParam, IN OUT PVOID pvParam, IN UINT fWinIni); #ifdef UNICODE #define SystemParametersInfo SystemParametersInfoW #else #define SystemParametersInfo SystemParametersInfoA #endif // !UNICODE #endif /* !NOSYSPARAMSINFO */ /* * Accessibility support */ typedef struct tagFILTERKEYS { UINT cbSize; DWORD dwFlags; DWORD iWaitMSec; // Acceptance Delay DWORD iDelayMSec; // Delay Until Repeat DWORD iRepeatMSec; // Repeat Rate DWORD iBounceMSec; // Debounce Time } FILTERKEYS, *LPFILTERKEYS; /* * FILTERKEYS dwFlags field */ #define FKF_FILTERKEYSON 0x00000001 #define FKF_AVAILABLE 0x00000002 #define FKF_HOTKEYACTIVE 0x00000004 #define FKF_CONFIRMHOTKEY 0x00000008 #define FKF_HOTKEYSOUND 0x00000010 #define FKF_INDICATOR 0x00000020 #define FKF_CLICKON 0x00000040 typedef struct tagSTICKYKEYS { UINT cbSize; DWORD dwFlags; } STICKYKEYS, *LPSTICKYKEYS; /* * STICKYKEYS dwFlags field */ #define SKF_STICKYKEYSON 0x00000001 #define SKF_AVAILABLE 0x00000002 #define SKF_HOTKEYACTIVE 0x00000004 #define SKF_CONFIRMHOTKEY 0x00000008 #define SKF_HOTKEYSOUND 0x00000010 #define SKF_INDICATOR 0x00000020 #define SKF_AUDIBLEFEEDBACK 0x00000040 #define SKF_TRISTATE 0x00000080 #define SKF_TWOKEYSOFF 0x00000100 #if(_WIN32_WINNT >= 0x0500) #define SKF_LALTLATCHED 0x10000000 #define SKF_LCTLLATCHED 0x04000000 #define SKF_LSHIFTLATCHED 0x01000000 #define SKF_RALTLATCHED 0x20000000 #define SKF_RCTLLATCHED 0x08000000 #define SKF_RSHIFTLATCHED 0x02000000 #define SKF_LWINLATCHED 0x40000000 #define SKF_RWINLATCHED 0x80000000 #define SKF_LALTLOCKED 0x00100000 #define SKF_LCTLLOCKED 0x00040000 #define SKF_LSHIFTLOCKED 0x00010000 #define SKF_RALTLOCKED 0x00200000 #define SKF_RCTLLOCKED 0x00080000 #define SKF_RSHIFTLOCKED 0x00020000 #define SKF_LWINLOCKED 0x00400000 #define SKF_RWINLOCKED 0x00800000 #endif /* _WIN32_WINNT >= 0x0500 */ typedef struct tagMOUSEKEYS { UINT cbSize; DWORD dwFlags; DWORD iMaxSpeed; DWORD iTimeToMaxSpeed; DWORD iCtrlSpeed; DWORD dwReserved1; DWORD dwReserved2; } MOUSEKEYS, *LPMOUSEKEYS; /* * MOUSEKEYS dwFlags field */ #define MKF_MOUSEKEYSON 0x00000001 #define MKF_AVAILABLE 0x00000002 #define MKF_HOTKEYACTIVE 0x00000004 #define MKF_CONFIRMHOTKEY 0x00000008 #define MKF_HOTKEYSOUND 0x00000010 #define MKF_INDICATOR 0x00000020 #define MKF_MODIFIERS 0x00000040 #define MKF_REPLACENUMBERS 0x00000080 #if(_WIN32_WINNT >= 0x0500) #define MKF_LEFTBUTTONSEL 0x10000000 #define MKF_RIGHTBUTTONSEL 0x20000000 #define MKF_LEFTBUTTONDOWN 0x01000000 #define MKF_RIGHTBUTTONDOWN 0x02000000 #define MKF_MOUSEMODE 0x80000000 #endif /* _WIN32_WINNT >= 0x0500 */ typedef struct tagACCESSTIMEOUT { UINT cbSize; DWORD dwFlags; DWORD iTimeOutMSec; } ACCESSTIMEOUT, *LPACCESSTIMEOUT; /* * ACCESSTIMEOUT dwFlags field */ #define ATF_TIMEOUTON 0x00000001 #define ATF_ONOFFFEEDBACK 0x00000002 /* values for SOUNDSENTRY iFSGrafEffect field */ #define SSGF_NONE 0 #define SSGF_DISPLAY 3 /* values for SOUNDSENTRY iFSTextEffect field */ #define SSTF_NONE 0 #define SSTF_CHARS 1 #define SSTF_BORDER 2 #define SSTF_DISPLAY 3 /* values for SOUNDSENTRY iWindowsEffect field */ #define SSWF_NONE 0 #define SSWF_TITLE 1 #define SSWF_WINDOW 2 #define SSWF_DISPLAY 3 #define SSWF_CUSTOM 4 typedef 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; } SOUNDSENTRYA, *LPSOUNDSENTRYA; typedef 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; } SOUNDSENTRYW, *LPSOUNDSENTRYW; #ifdef UNICODE typedef SOUNDSENTRYW SOUNDSENTRY; typedef LPSOUNDSENTRYW LPSOUNDSENTRY; #else typedef SOUNDSENTRYA SOUNDSENTRY; typedef LPSOUNDSENTRYA LPSOUNDSENTRY; #endif // UNICODE /* * SOUNDSENTRY dwFlags field */ #define SSF_SOUNDSENTRYON 0x00000001 #define SSF_AVAILABLE 0x00000002 #define SSF_INDICATOR 0x00000004 typedef struct tagTOGGLEKEYS { UINT cbSize; DWORD dwFlags; } TOGGLEKEYS, *LPTOGGLEKEYS; /* * TOGGLEKEYS dwFlags field */ #define TKF_TOGGLEKEYSON 0x00000001 #define TKF_AVAILABLE 0x00000002 #define TKF_HOTKEYACTIVE 0x00000004 #define TKF_CONFIRMHOTKEY 0x00000008 #define TKF_HOTKEYSOUND 0x00000010 #define TKF_INDICATOR 0x00000020 /* * Set debug level */ WINUSERAPI VOID WINAPI SetDebugErrorLevel( IN DWORD dwLevel ); /* * SetLastErrorEx() types. */ #define SLE_ERROR 0x00000001 #define SLE_MINORERROR 0x00000002 #define SLE_WARNING 0x00000003 WINUSERAPI VOID WINAPI SetLastErrorEx( IN DWORD dwErrCode, IN DWORD dwType ); WINUSERAPI int WINAPI InternalGetWindowText( IN HWND hWnd, OUT LPWSTR lpString, IN int nMaxCount); #if defined(WINNT) WINUSERAPI BOOL WINAPI EndTask( IN HWND hWnd, IN BOOL fShutDown, IN BOOL fForce); #endif #if(WINVER >= 0x0500) /* * Multimonitor API. */ #define MONITOR_DEFAULTTONULL 0x00000000 #define MONITOR_DEFAULTTOPRIMARY 0x00000001 #define MONITOR_DEFAULTTONEAREST 0x00000002 WINUSERAPI HMONITOR WINAPI MonitorFromPoint( IN POINT pt, IN DWORD dwFlags); WINUSERAPI HMONITOR WINAPI MonitorFromRect( IN LPCRECT lprc, IN DWORD dwFlags); WINUSERAPI HMONITOR WINAPI MonitorFromWindow( IN HWND hwnd, IN DWORD dwFlags); #define MONITORINFOF_PRIMARY 0x00000001 #ifndef CCHDEVICENAME #define CCHDEVICENAME 32 #endif typedef struct tagMONITORINFO { DWORD cbSize; RECT rcMonitor; RECT rcWork; DWORD dwFlags; } MONITORINFO, *LPMONITORINFO; #ifdef __cplusplus typedef struct tagMONITORINFOEXA : public tagMONITORINFO { CHAR szDevice[CCHDEVICENAME]; } MONITORINFOEXA, *LPMONITORINFOEXA; typedef struct tagMONITORINFOEXW : public tagMONITORINFO { WCHAR szDevice[CCHDEVICENAME]; } MONITORINFOEXW, *LPMONITORINFOEXW; #ifdef UNICODE typedef MONITORINFOEXW MONITORINFOEX; typedef LPMONITORINFOEXW LPMONITORINFOEX; #else typedef MONITORINFOEXA MONITORINFOEX; typedef LPMONITORINFOEXA LPMONITORINFOEX; #endif // UNICODE #else // ndef __cplusplus typedef struct tagMONITORINFOEXA { MONITORINFO; CHAR szDevice[CCHDEVICENAME]; } MONITORINFOEXA, *LPMONITORINFOEXA; typedef struct tagMONITORINFOEXW { MONITORINFO; WCHAR szDevice[CCHDEVICENAME]; } MONITORINFOEXW, *LPMONITORINFOEXW; #ifdef UNICODE typedef MONITORINFOEXW MONITORINFOEX; typedef LPMONITORINFOEXW LPMONITORINFOEX; #else typedef MONITORINFOEXA MONITORINFOEX; typedef LPMONITORINFOEXA LPMONITORINFOEX; #endif // UNICODE #endif WINUSERAPI BOOL WINAPI GetMonitorInfoA( IN HMONITOR hMonitor, OUT LPMONITORINFO lpmi); WINUSERAPI BOOL WINAPI GetMonitorInfoW( IN HMONITOR hMonitor, OUT LPMONITORINFO lpmi); #ifdef UNICODE #define GetMonitorInfo GetMonitorInfoW #else #define GetMonitorInfo GetMonitorInfoA #endif // !UNICODE typedef BOOL (CALLBACK* MONITORENUMPROC)(HMONITOR, HDC, LPRECT, LPARAM); WINUSERAPI BOOL WINAPI EnumDisplayMonitors( IN HDC hdc, IN LPCRECT lprcClip, IN MONITORENUMPROC lpfnEnum, IN LPARAM dwData); #ifndef NOWINABLE /* * WinEvents - Active Accessibility hooks */ WINUSERAPI VOID WINAPI NotifyWinEvent( IN DWORD event, IN HWND hwnd, IN LONG idObject, IN LONG idChild); typedef VOID (CALLBACK* WINEVENTPROC)( HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime); WINUSERAPI HWINEVENTHOOK WINAPI SetWinEventHook( IN DWORD eventMin, IN DWORD eventMax, IN HMODULE hmodWinEventProc, IN WINEVENTPROC pfnWinEventProc, IN DWORD idProcess, IN DWORD idThread, IN DWORD dwFlags); #if(_WIN32_WINNT >= 0x0501) WINUSERAPI BOOL WINAPI IsWinEventHookInstalled( IN DWORD event); #endif /* _WIN32_WINNT >= 0x0501 */ /* * dwFlags for SetWinEventHook */ #define WINEVENT_OUTOFCONTEXT 0x0000 // Events are ASYNC #define WINEVENT_SKIPOWNTHREAD 0x0001 // Don't call back for events on installer's thread #define WINEVENT_SKIPOWNPROCESS 0x0002 // Don't call back for events on installer's process #define WINEVENT_INCONTEXT 0x0004 // Events are SYNC, this causes your dll to be injected into every process WINUSERAPI BOOL WINAPI UnhookWinEvent( IN HWINEVENTHOOK hWinEventHook); /* * idObject values for WinEventProc and NotifyWinEvent */ /* * hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow() * to get an interface pointer to the container. indexChild is the item * within the container in question. Setup a VARIANT with vt VT_I4 and * lVal the indexChild and pass that in to all methods. Then you * are raring to go. */ /* * Common object IDs (cookies, only for sending WM_GETOBJECT to get at the * thing in question). Positive IDs are reserved for apps (app specific), * negative IDs are system things and are global, 0 means "just little old * me". */ #define CHILDID_SELF 0 #define INDEXID_OBJECT 0 #define INDEXID_CONTAINER 0 /* * Reserved IDs for system objects */ #define OBJID_WINDOW ((LONG)0x00000000) #define OBJID_SYSMENU ((LONG)0xFFFFFFFF) #define OBJID_TITLEBAR ((LONG)0xFFFFFFFE) #define OBJID_MENU ((LONG)0xFFFFFFFD) #define OBJID_CLIENT ((LONG)0xFFFFFFFC) #define OBJID_VSCROLL ((LONG)0xFFFFFFFB) #define OBJID_HSCROLL ((LONG)0xFFFFFFFA) #define OBJID_SIZEGRIP ((LONG)0xFFFFFFF9) #define OBJID_CARET ((LONG)0xFFFFFFF8) #define OBJID_CURSOR ((LONG)0xFFFFFFF7) #define OBJID_ALERT ((LONG)0xFFFFFFF6) #define OBJID_SOUND ((LONG)0xFFFFFFF5) #define OBJID_QUERYCLASSNAMEIDX ((LONG)0xFFFFFFF4) #define OBJID_NATIVEOM ((LONG)0xFFFFFFF0) /* * EVENT DEFINITION */ #define EVENT_MIN 0x00000001 #define EVENT_MAX 0x7FFFFFFF /* * EVENT_SYSTEM_SOUND * Sent when a sound is played. Currently nothing is generating this, we * this event when a system sound (for menus, etc) is played. Apps * generate this, if accessible, when a private sound is played. For * example, if Mail plays a "New Mail" sound. * * System Sounds: * (Generated by PlaySoundEvent in USER itself) * hwnd is NULL * idObject is OBJID_SOUND * idChild is sound child ID if one * App Sounds: * (PlaySoundEvent won't generate notification; up to app) * hwnd + idObject gets interface pointer to Sound object * idChild identifies the sound in question * are going to be cleaning up the SOUNDSENTRY feature in the control panel * and will use this at that time. Applications implementing WinEvents * are perfectly welcome to use it. Clients of IAccessible* will simply * turn around and get back a non-visual object that describes the sound. */ #define EVENT_SYSTEM_SOUND 0x0001 /* * EVENT_SYSTEM_ALERT * System Alerts: * (Generated by MessageBox() calls for example) * hwnd is hwndMessageBox * idObject is OBJID_ALERT * App Alerts: * (Generated whenever) * hwnd+idObject gets interface pointer to Alert */ #define EVENT_SYSTEM_ALERT 0x0002 /* * EVENT_SYSTEM_FOREGROUND * Sent when the foreground (active) window changes, even if it is changing * to another window in the same thread as the previous one. * hwnd is hwndNewForeground * idObject is OBJID_WINDOW * idChild is INDEXID_OBJECT */ #define EVENT_SYSTEM_FOREGROUND 0x0003 /* * Menu * hwnd is window (top level window or popup menu window) * idObject is ID of control (OBJID_MENU, OBJID_SYSMENU, OBJID_SELF for popup) * idChild is CHILDID_SELF * * EVENT_SYSTEM_MENUSTART * EVENT_SYSTEM_MENUEND * For MENUSTART, hwnd+idObject+idChild refers to the control with the menu bar, * or the control bringing up the context menu. * * Sent when entering into and leaving from menu mode (system, app bar, and * track popups). */ #define EVENT_SYSTEM_MENUSTART 0x0004 #define EVENT_SYSTEM_MENUEND 0x0005 /* * EVENT_SYSTEM_MENUPOPUPSTART * EVENT_SYSTEM_MENUPOPUPEND * Sent when a menu popup comes up and just before it is taken down. Note * that for a call to TrackPopupMenu(), a client will see EVENT_SYSTEM_MENUSTART * followed almost immediately by EVENT_SYSTEM_MENUPOPUPSTART for the popup * being shown. * * For MENUPOPUP, hwnd+idObject+idChild refers to the NEW popup coming up, not the * parent item which is hierarchical. You can get the parent menu/popup by * asking for the accParent object. */ #define EVENT_SYSTEM_MENUPOPUPSTART 0x0006 #define EVENT_SYSTEM_MENUPOPUPEND 0x0007 /* * EVENT_SYSTEM_CAPTURESTART * EVENT_SYSTEM_CAPTUREEND * Sent when a window takes the capture and releases the capture. */ #define EVENT_SYSTEM_CAPTURESTART 0x0008 #define EVENT_SYSTEM_CAPTUREEND 0x0009 /* * Move Size * EVENT_SYSTEM_MOVESIZESTART * EVENT_SYSTEM_MOVESIZEEND * Sent when a window enters and leaves move-size dragging mode. */ #define EVENT_SYSTEM_MOVESIZESTART 0x000A #define EVENT_SYSTEM_MOVESIZEEND 0x000B /* * Context Help * EVENT_SYSTEM_CONTEXTHELPSTART * EVENT_SYSTEM_CONTEXTHELPEND * Sent when a window enters and leaves context sensitive help mode. */ #define EVENT_SYSTEM_CONTEXTHELPSTART 0x000C #define EVENT_SYSTEM_CONTEXTHELPEND 0x000D /* * Drag & Drop * EVENT_SYSTEM_DRAGDROPSTART * EVENT_SYSTEM_DRAGDROPEND * Send the START notification just before going into drag&drop loop. Send * the END notification just after canceling out. * Note that it is up to apps and OLE to generate this, since the system * doesn't know. Like EVENT_SYSTEM_SOUND, it will be a while before this * is prevalent. */ #define EVENT_SYSTEM_DRAGDROPSTART 0x000E #define EVENT_SYSTEM_DRAGDROPEND 0x000F /* * Dialog * Send the START notification right after the dialog is completely * initialized and visible. Send the END right before the dialog * is hidden and goes away. * EVENT_SYSTEM_DIALOGSTART * EVENT_SYSTEM_DIALOGEND */ #define EVENT_SYSTEM_DIALOGSTART 0x0010 #define EVENT_SYSTEM_DIALOGEND 0x0011 /* * EVENT_SYSTEM_SCROLLING * EVENT_SYSTEM_SCROLLINGSTART * EVENT_SYSTEM_SCROLLINGEND * Sent when beginning and ending the tracking of a scrollbar in a window, * and also for scrollbar controls. */ #define EVENT_SYSTEM_SCROLLINGSTART 0x0012 #define EVENT_SYSTEM_SCROLLINGEND 0x0013 /* * Alt-Tab Window * Send the START notification right after the switch window is initialized * and visible. Send the END right before it is hidden and goes away. * EVENT_SYSTEM_SWITCHSTART * EVENT_SYSTEM_SWITCHEND */ #define EVENT_SYSTEM_SWITCHSTART 0x0014 #define EVENT_SYSTEM_SWITCHEND 0x0015 /* * EVENT_SYSTEM_MINIMIZESTART * EVENT_SYSTEM_MINIMIZEEND * Sent when a window minimizes and just before it restores. */ #define EVENT_SYSTEM_MINIMIZESTART 0x0016 #define EVENT_SYSTEM_MINIMIZEEND 0x0017 #if(_WIN32_WINNT >= 0x0501) #define EVENT_CONSOLE_CARET 0x4001 #define EVENT_CONSOLE_UPDATE_REGION 0x4002 #define EVENT_CONSOLE_UPDATE_SIMPLE 0x4003 #define EVENT_CONSOLE_UPDATE_SCROLL 0x4004 #define EVENT_CONSOLE_LAYOUT 0x4005 #define EVENT_CONSOLE_START_APPLICATION 0x4006 #define EVENT_CONSOLE_END_APPLICATION 0x4007 /* * Flags for EVENT_CONSOLE_START/END_APPLICATION. */ #define CONSOLE_APPLICATION_16BIT 0x0001 /* * Flags for EVENT_CONSOLE_CARET */ #define CONSOLE_CARET_SELECTION 0x0001 #define CONSOLE_CARET_VISIBLE 0x0002 #endif /* _WIN32_WINNT >= 0x0501 */ /* * Object events * * The system AND apps generate these. The system generates these for * real windows. Apps generate these for objects within their window which * act like a separate control, e.g. an item in a list view. * * When the system generate them, dwParam2 is always WMOBJID_SELF. When * apps generate them, apps put the has-meaning-to-the-app-only ID value * in dwParam2. * For all events, if you want detailed accessibility information, callers * should * * Call AccessibleObjectFromWindow() with the hwnd, idObject parameters * of the event, and IID_IAccessible as the REFIID, to get back an * IAccessible* to talk to * * Initialize and fill in a VARIANT as VT_I4 with lVal the idChild * parameter of the event. * * If idChild isn't zero, call get_accChild() in the container to see * if the child is an object in its own right. If so, you will get * back an IDispatch* object for the child. You should release the * parent, and call QueryInterface() on the child object to get its * IAccessible*. Then you talk directly to the child. Otherwise, * if get_accChild() returns you nothing, you should continue to * use the child VARIANT. You will ask the container for the properties * of the child identified by the VARIANT. In other words, the * child in this case is accessible but not a full-blown object. * Like a button on a titlebar which is 'small' and has no children. */ /* * For all EVENT_OBJECT events, * hwnd is the dude to Send the WM_GETOBJECT message to (unless NULL, * see above for system things) * idObject is the ID of the object that can resolve any queries a * client might have. It's a way to deal with windowless controls, * controls that are just drawn on the screen in some larger parent * window (like SDM), or standard frame elements of a window. * idChild is the piece inside of the object that is affected. This * allows clients to access things that are too small to have full * blown objects in their own right. Like the thumb of a scrollbar. * The hwnd/idObject pair gets you to the container, the dude you * probably want to talk to most of the time anyway. The idChild * can then be passed into the acc properties to get the name/value * of it as needed. * * Example #1: * System propagating a listbox selection change * EVENT_OBJECT_SELECTION * hwnd == listbox hwnd * idObject == OBJID_WINDOW * idChild == new selected item, or CHILDID_SELF if * nothing now selected within container. * Word '97 propagating a listbox selection change * hwnd == SDM window * idObject == SDM ID to get at listbox 'control' * idChild == new selected item, or CHILDID_SELF if * nothing * * Example #2: * System propagating a menu item selection on the menu bar * EVENT_OBJECT_SELECTION * hwnd == top level window * idObject == OBJID_MENU * idChild == ID of child menu bar item selected * * Example #3: * System propagating a dropdown coming off of said menu bar item * EVENT_OBJECT_CREATE * hwnd == popup item * idObject == OBJID_WINDOW * idChild == CHILDID_SELF * * Example #4: * * For EVENT_OBJECT_REORDER, the object referred to by hwnd/idObject is the * PARENT container in which the zorder is occurring. This is because if * one child is zordering, all of them are changing their relative zorder. */ #define EVENT_OBJECT_CREATE 0x8000 // hwnd + ID + idChild is created item #define EVENT_OBJECT_DESTROY 0x8001 // hwnd + ID + idChild is destroyed item #define EVENT_OBJECT_SHOW 0x8002 // hwnd + ID + idChild is shown item #define EVENT_OBJECT_HIDE 0x8003 // hwnd + ID + idChild is hidden item #define EVENT_OBJECT_REORDER 0x8004 // hwnd + ID + idChild is parent of zordering children /* * NOTE: * Minimize the number of notifications! * * When you are hiding a parent object, obviously all child objects are no * longer visible on screen. They still have the same "visible" status, * but are not truly visible. Hence do not send HIDE notifications for the * children also. One implies all. The same goes for SHOW. */ #define EVENT_OBJECT_FOCUS 0x8005 // hwnd + ID + idChild is focused item #define EVENT_OBJECT_SELECTION 0x8006 // hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex #define EVENT_OBJECT_SELECTIONADD 0x8007 // hwnd + ID + idChild is item added #define EVENT_OBJECT_SELECTIONREMOVE 0x8008 // hwnd + ID + idChild is item removed #define EVENT_OBJECT_SELECTIONWITHIN 0x8009 // hwnd + ID + idChild is parent of changed selected items /* * NOTES: * There is only one "focused" child item in a parent. This is the place * keystrokes are going at a given moment. Hence only send a notification * about where the NEW focus is going. A NEW item getting the focus already * implies that the OLD item is losing it. * * SELECTION however can be multiple. Hence the different SELECTION * notifications. Here's when to use each: * * (1) Send a SELECTION notification in the simple single selection * case (like the focus) when the item with the selection is * merely moving to a different item within a container. hwnd + ID * is the container control, idChildItem is the new child with the * selection. * * (2) Send a SELECTIONADD notification when a new item has simply been added * to the selection within a container. This is appropriate when the * number of newly selected items is very small. hwnd + ID is the * container control, idChildItem is the new child added to the selection. * * (3) Send a SELECTIONREMOVE notification when a new item has simply been * removed from the selection within a container. This is appropriate * when the number of newly selected items is very small, just like * SELECTIONADD. hwnd + ID is the container control, idChildItem is the * new child removed from the selection. * * (4) Send a SELECTIONWITHIN notification when the selected items within a * control have changed substantially. Rather than propagate a large * number of changes to reflect removal for some items, addition of * others, just tell somebody who cares that a lot happened. It will * be faster an easier for somebody watching to just turn around and * query the container control what the new bunch of selected items * are. */ #define EVENT_OBJECT_STATECHANGE 0x800A // hwnd + ID + idChild is item w/ state change /* * Examples of when to send an EVENT_OBJECT_STATECHANGE include * * It is being enabled/disabled (USER does for windows) * * It is being pressed/released (USER does for buttons) * * It is being checked/unchecked (USER does for radio/check buttons) */ #define EVENT_OBJECT_LOCATIONCHANGE 0x800B // hwnd + ID + idChild is moved/sized item /* * Note: * A LOCATIONCHANGE is not sent for every child object when the parent * changes shape/moves. Send one notification for the topmost object * that is changing. For example, if the user resizes a top level window, * USER will generate a LOCATIONCHANGE for it, but not for the menu bar, * title bar, scrollbars, etc. that are also changing shape/moving. * * In other words, it only generates LOCATIONCHANGE notifications for * real windows that are moving/sizing. It will not generate a LOCATIONCHANGE * for every non-floating child window when the parent moves (the children are * logically moving also on screen, but not relative to the parent). * * Now, if the app itself resizes child windows as a result of being * sized, USER will generate LOCATIONCHANGEs for those dudes also because * it doesn't know better. * * Note also that USER will generate LOCATIONCHANGE notifications for two * non-window sys objects: * (1) System caret * (2) Cursor */ #define EVENT_OBJECT_NAMECHANGE 0x800C // hwnd + ID + idChild is item w/ name change #define EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D // hwnd + ID + idChild is item w/ desc change #define EVENT_OBJECT_VALUECHANGE 0x800E // hwnd + ID + idChild is item w/ value change #define EVENT_OBJECT_PARENTCHANGE 0x800F // hwnd + ID + idChild is item w/ new parent #define EVENT_OBJECT_HELPCHANGE 0x8010 // hwnd + ID + idChild is item w/ help change #define EVENT_OBJECT_DEFACTIONCHANGE 0x8011 // hwnd + ID + idChild is item w/ def action change #define EVENT_OBJECT_ACCELERATORCHANGE 0x8012 // hwnd + ID + idChild is item w/ keybd accel change /* * Child IDs */ /* * System Sounds (idChild of system SOUND notification) */ #define SOUND_SYSTEM_STARTUP 1 #define SOUND_SYSTEM_SHUTDOWN 2 #define SOUND_SYSTEM_BEEP 3 #define SOUND_SYSTEM_ERROR 4 #define SOUND_SYSTEM_QUESTION 5 #define SOUND_SYSTEM_WARNING 6 #define SOUND_SYSTEM_INFORMATION 7 #define SOUND_SYSTEM_MAXIMIZE 8 #define SOUND_SYSTEM_MINIMIZE 9 #define SOUND_SYSTEM_RESTOREUP 10 #define SOUND_SYSTEM_RESTOREDOWN 11 #define SOUND_SYSTEM_APPSTART 12 #define SOUND_SYSTEM_FAULT 13 #define SOUND_SYSTEM_APPEND 14 #define SOUND_SYSTEM_MENUCOMMAND 15 #define SOUND_SYSTEM_MENUPOPUP 16 #define CSOUND_SYSTEM 16 /* * System Alerts (indexChild of system ALERT notification) */ #define ALERT_SYSTEM_INFORMATIONAL 1 // MB_INFORMATION #define ALERT_SYSTEM_WARNING 2 // MB_WARNING #define ALERT_SYSTEM_ERROR 3 // MB_ERROR #define ALERT_SYSTEM_QUERY 4 // MB_QUESTION #define ALERT_SYSTEM_CRITICAL 5 // HardSysErrBox #define CALERT_SYSTEM 6 typedef struct tagGUITHREADINFO { DWORD cbSize; DWORD flags; HWND hwndActive; HWND hwndFocus; HWND hwndCapture; HWND hwndMenuOwner; HWND hwndMoveSize; HWND hwndCaret; RECT rcCaret; } GUITHREADINFO, *PGUITHREADINFO, FAR * LPGUITHREADINFO; #define GUI_CARETBLINKING 0x00000001 #define GUI_INMOVESIZE 0x00000002 #define GUI_INMENUMODE 0x00000004 #define GUI_SYSTEMMENUMODE 0x00000008 #define GUI_POPUPMENUMODE 0x00000010 #if(_WIN32_WINNT >= 0x0501) #define GUI_16BITTASK 0x00000020 #endif /* _WIN32_WINNT >= 0x0501 */ WINUSERAPI BOOL WINAPI GetGUIThreadInfo( IN DWORD idThread, OUT PGUITHREADINFO pgui); WINUSERAPI UINT WINAPI GetWindowModuleFileNameA( IN HWND hwnd, OUT LPSTR pszFileName, IN UINT cchFileNameMax); WINUSERAPI UINT WINAPI GetWindowModuleFileNameW( IN HWND hwnd, OUT LPWSTR pszFileName, IN UINT cchFileNameMax); #ifdef UNICODE #define GetWindowModuleFileName GetWindowModuleFileNameW #else #define GetWindowModuleFileName GetWindowModuleFileNameA #endif // !UNICODE #ifndef NO_STATE_FLAGS #define STATE_SYSTEM_UNAVAILABLE 0x00000001 // Disabled #define STATE_SYSTEM_SELECTED 0x00000002 #define STATE_SYSTEM_FOCUSED 0x00000004 #define STATE_SYSTEM_PRESSED 0x00000008 #define STATE_SYSTEM_CHECKED 0x00000010 #define STATE_SYSTEM_MIXED 0x00000020 // 3-state checkbox or toolbar button #define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED #define STATE_SYSTEM_READONLY 0x00000040 #define STATE_SYSTEM_HOTTRACKED 0x00000080 #define STATE_SYSTEM_DEFAULT 0x00000100 #define STATE_SYSTEM_EXPANDED 0x00000200 #define STATE_SYSTEM_COLLAPSED 0x00000400 #define STATE_SYSTEM_BUSY 0x00000800 #define STATE_SYSTEM_FLOATING 0x00001000 // Children "owned" not "contained" by parent #define STATE_SYSTEM_MARQUEED 0x00002000 #define STATE_SYSTEM_ANIMATED 0x00004000 #define STATE_SYSTEM_INVISIBLE 0x00008000 #define STATE_SYSTEM_OFFSCREEN 0x00010000 #define STATE_SYSTEM_SIZEABLE 0x00020000 #define STATE_SYSTEM_MOVEABLE 0x00040000 #define STATE_SYSTEM_SELFVOICING 0x00080000 #define STATE_SYSTEM_FOCUSABLE 0x00100000 #define STATE_SYSTEM_SELECTABLE 0x00200000 #define STATE_SYSTEM_LINKED 0x00400000 #define STATE_SYSTEM_TRAVERSED 0x00800000 #define STATE_SYSTEM_MULTISELECTABLE 0x01000000 // Supports multiple selection #define STATE_SYSTEM_EXTSELECTABLE 0x02000000 // Supports extended selection #define STATE_SYSTEM_ALERT_LOW 0x04000000 // This information is of low priority #define STATE_SYSTEM_ALERT_MEDIUM 0x08000000 // This information is of medium priority #define STATE_SYSTEM_ALERT_HIGH 0x10000000 // This information is of high priority #define STATE_SYSTEM_PROTECTED 0x20000000 // access to this is restricted #define STATE_SYSTEM_VALID 0x3FFFFFFF #endif #define CCHILDREN_TITLEBAR 5 #define CCHILDREN_SCROLLBAR 5 /* * Information about the global cursor. */ typedef struct tagCURSORINFO { DWORD cbSize; DWORD flags; HCURSOR hCursor; POINT ptScreenPos; } CURSORINFO, *PCURSORINFO, *LPCURSORINFO; #define CURSOR_SHOWING 0x00000001 WINUSERAPI BOOL WINAPI GetCursorInfo( OUT PCURSORINFO pci ); /* * Window information snapshot */ typedef struct tagWINDOWINFO { DWORD cbSize; RECT rcWindow; RECT rcClient; DWORD dwStyle; DWORD dwExStyle; DWORD dwWindowStatus; UINT cxWindowBorders; UINT cyWindowBorders; ATOM atomWindowType; WORD wCreatorVersion; } WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO; #define WS_ACTIVECAPTION 0x0001 WINUSERAPI BOOL WINAPI GetWindowInfo( IN HWND hwnd, OUT PWINDOWINFO pwi ); /* * Titlebar information. */ typedef struct tagTITLEBARINFO { DWORD cbSize; RECT rcTitleBar; DWORD rgstate[CCHILDREN_TITLEBAR+1]; } TITLEBARINFO, *PTITLEBARINFO, *LPTITLEBARINFO; WINUSERAPI BOOL WINAPI GetTitleBarInfo( IN HWND hwnd, OUT PTITLEBARINFO pti ); /* * Menubar information */ typedef struct tagMENUBARINFO { DWORD cbSize; RECT rcBar; // rect of bar, popup, item HMENU hMenu; // real menu handle of bar, popup HWND hwndMenu; // hwnd of item submenu if one BOOL fBarFocused:1; // bar, popup has the focus BOOL fFocused:1; // item has the focus } MENUBARINFO, *PMENUBARINFO, *LPMENUBARINFO; WINUSERAPI BOOL WINAPI GetMenuBarInfo( IN HWND hwnd, IN LONG idObject, IN LONG idItem, OUT PMENUBARINFO pmbi ); /* * Scrollbar information */ typedef struct tagSCROLLBARINFO { DWORD cbSize; RECT rcScrollBar; int dxyLineButton; int xyThumbTop; int xyThumbBottom; int reserved; DWORD rgstate[CCHILDREN_SCROLLBAR+1]; } SCROLLBARINFO, *PSCROLLBARINFO, *LPSCROLLBARINFO; WINUSERAPI BOOL WINAPI GetScrollBarInfo( IN HWND hwnd, IN LONG idObject, OUT PSCROLLBARINFO psbi ); /* * Combobox information */ typedef struct tagCOMBOBOXINFO { DWORD cbSize; RECT rcItem; RECT rcButton; DWORD stateButton; HWND hwndCombo; HWND hwndItem; HWND hwndList; } COMBOBOXINFO, *PCOMBOBOXINFO, *LPCOMBOBOXINFO; WINUSERAPI BOOL WINAPI GetComboBoxInfo( IN HWND hwndCombo, OUT PCOMBOBOXINFO pcbi ); /* * The "real" ancestor window */ #define GA_PARENT 1 #define GA_ROOT 2 #define GA_ROOTOWNER 3 WINUSERAPI HWND WINAPI GetAncestor( IN HWND hwnd, IN UINT gaFlags ); /* * This gets the REAL child window at the point. If it is in the dead * space of a group box, it will try a sibling behind it. But static * fields will get returned. In other words, it is kind of a cross between * ChildWindowFromPointEx and WindowFromPoint. */ WINUSERAPI HWND WINAPI RealChildWindowFromPoint( IN HWND hwndParent, IN POINT ptParentClientCoords ); /* * This gets the name of the window TYPE, not class. This allows us to * recognize ThunderButton32 et al. */ WINUSERAPI UINT WINAPI RealGetWindowClassA( IN HWND hwnd, OUT LPSTR pszType, IN UINT cchType ); /* * This gets the name of the window TYPE, not class. This allows us to * recognize ThunderButton32 et al. */ WINUSERAPI UINT WINAPI RealGetWindowClassW( IN HWND hwnd, OUT LPWSTR pszType, IN UINT cchType ); #ifdef UNICODE #define RealGetWindowClass RealGetWindowClassW #else #define RealGetWindowClass RealGetWindowClassA #endif // !UNICODE /* * Alt-Tab Switch window information. */ typedef struct tagALTTABINFO { DWORD cbSize; int cItems; int cColumns; int cRows; int iColFocus; int iRowFocus; int cxItem; int cyItem; POINT ptStart; } ALTTABINFO, *PALTTABINFO, *LPALTTABINFO; WINUSERAPI BOOL WINAPI GetAltTabInfoA( IN HWND hwnd, IN int iItem, OUT PALTTABINFO pati, OUT LPSTR pszItemText, IN UINT cchItemText ); WINUSERAPI BOOL WINAPI GetAltTabInfoW( IN HWND hwnd, IN int iItem, OUT PALTTABINFO pati, OUT LPWSTR pszItemText, IN UINT cchItemText ); #ifdef UNICODE #define GetAltTabInfo GetAltTabInfoW #else #define GetAltTabInfo GetAltTabInfoA #endif // !UNICODE /* * Listbox information. * Returns the number of items per row. */ WINUSERAPI DWORD WINAPI GetListBoxInfo( IN HWND hwnd ); #endif /* NOWINABLE */ #endif /* WINVER >= 0x0500 */ #if(_WIN32_WINNT >= 0x0500) WINUSERAPI BOOL WINAPI LockWorkStation( VOID); #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0500) WINUSERAPI BOOL WINAPI UserHandleGrantAccess( HANDLE hUserHandle, HANDLE hJob, BOOL bGrant); #endif /* _WIN32_WINNT >= 0x0500 */ #if(_WIN32_WINNT >= 0x0501) /* * Raw Input Messages. */ DECLARE_HANDLE(HRAWINPUT); /* * WM_INPUT wParam */ /* * Use this macro to get the input code from wParam. */ #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff) /* * The input is in the regular message flow, * the app is required to call DefWindowProc * so that the system can perform clean ups. */ #define RIM_INPUT 0 /* * The input is sink only. The app is expected * to behave nicely. */ #define RIM_INPUTSINK 1 /* * Raw Input data header */ typedef struct tagRAWINPUTHEADER { DWORD dwType; DWORD dwSize; HANDLE hDevice; WPARAM wParam; } RAWINPUTHEADER, *PRAWINPUTHEADER, *LPRAWINPUTHEADER; /* * Type of the raw input */ #define RIM_TYPEMOUSE 0 #define RIM_TYPEKEYBOARD 1 #define RIM_TYPEHID 2 /* * Raw format of the mouse input */ typedef struct tagRAWMOUSE { /* * Indicator flags. */ USHORT usFlags; /* * The transition state of the mouse buttons. */ union { ULONG ulButtons; struct { USHORT usButtonFlags; USHORT usButtonData; }; }; /* * The raw state of the mouse buttons. */ ULONG ulRawButtons; /* * The signed relative or absolute motion in the X direction. */ LONG lLastX; /* * The signed relative or absolute motion in the Y direction. */ LONG lLastY; /* * Device-specific additional information for the event. */ ULONG ulExtraInformation; } RAWMOUSE, *PRAWMOUSE, *LPRAWMOUSE; /* * Define the mouse button state indicators. */ #define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001 // Left Button changed to down. #define RI_MOUSE_LEFT_BUTTON_UP 0x0002 // Left Button changed to up. #define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004 // Right Button changed to down. #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008 // Right Button changed to up. #define RI_MOUSE_MIDDLE_BUTTON_DOWN 0x0010 // Middle Button changed to down. #define RI_MOUSE_MIDDLE_BUTTON_UP 0x0020 // Middle Button changed to up. #define RI_MOUSE_BUTTON_1_DOWN RI_MOUSE_LEFT_BUTTON_DOWN #define RI_MOUSE_BUTTON_1_UP RI_MOUSE_LEFT_BUTTON_UP #define RI_MOUSE_BUTTON_2_DOWN RI_MOUSE_RIGHT_BUTTON_DOWN #define RI_MOUSE_BUTTON_2_UP RI_MOUSE_RIGHT_BUTTON_UP #define RI_MOUSE_BUTTON_3_DOWN RI_MOUSE_MIDDLE_BUTTON_DOWN #define RI_MOUSE_BUTTON_3_UP RI_MOUSE_MIDDLE_BUTTON_UP #define RI_MOUSE_BUTTON_4_DOWN 0x0040 #define RI_MOUSE_BUTTON_4_UP 0x0080 #define RI_MOUSE_BUTTON_5_DOWN 0x0100 #define RI_MOUSE_BUTTON_5_UP 0x0200 /* * If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored in usButtonData. * Take it as a signed value. */ #define RI_MOUSE_WHEEL 0x0400 /* * Define the mouse indicator flags. */ #define MOUSE_MOVE_RELATIVE 0 #define MOUSE_MOVE_ABSOLUTE 1 #define MOUSE_VIRTUAL_DESKTOP 0x02 // the coordinates are mapped to the virtual desktop #define MOUSE_ATTRIBUTES_CHANGED 0x04 // requery for mouse attributes /* * Raw format of the keyboard input */ typedef struct tagRAWKEYBOARD { /* * The "make" scan code (key depression). */ USHORT MakeCode; /* * The flags field indicates a "break" (key release) and other * miscellaneous scan code information defined in ntddkbd.h. */ USHORT Flags; USHORT Reserved; /* * Windows message compatible information */ USHORT VKey; UINT Message; /* * Device-specific additional information for the event. */ ULONG ExtraInformation; } RAWKEYBOARD, *PRAWKEYBOARD, *LPRAWKEYBOARD; /* * Define the keyboard overrun MakeCode. */ #define KEYBOARD_OVERRUN_MAKE_CODE 0xFF /* * Define the keyboard input data Flags. */ #define RI_KEY_MAKE 0 #define RI_KEY_BREAK 1 #define RI_KEY_E0 2 #define RI_KEY_E1 4 #define RI_KEY_TERMSRV_SET_LED 8 #define RI_KEY_TERMSRV_SHADOW 0x10 /* * Raw format of the input from Human Input Devices */ typedef struct tagRAWHID { DWORD dwSizeHid; // byte size of each report DWORD dwCount; // number of input packed BYTE bRawData[1]; } RAWHID, *PRAWHID, *LPRAWHID; /* * RAWINPUT data structure. */ typedef struct tagRAWINPUT { RAWINPUTHEADER header; union { RAWMOUSE mouse; RAWKEYBOARD keyboard; RAWHID hid; } data; } RAWINPUT, *PRAWINPUT, *LPRAWINPUT; #ifdef _WIN64 #define RAWINPUT_ALIGN(x) (((x) + sizeof(QWORD) - 1) & ~(sizeof(QWORD) - 1)) #else // _WIN64 #define RAWINPUT_ALIGN(x) (((x) + sizeof(DWORD) - 1) & ~(sizeof(DWORD) - 1)) #endif // _WIN64 #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize))) /* * Flags for GetRawInputData */ #define RID_INPUT 0x10000003 #define RID_HEADER 0x10000005 WINUSERAPI UINT WINAPI GetRawInputData( IN HRAWINPUT hRawInput, IN UINT uiCommand, OUT LPVOID pData, IN OUT PUINT pcbSize, IN UINT cbSizeHeader); /* * Raw Input Device Information */ #define RIDI_PREPARSEDDATA 0x20000005 #define RIDI_DEVICENAME 0x20000007 // the return valus is the character length, not the byte size #define RIDI_DEVICEINFO 0x2000000b typedef struct tagRID_DEVICE_INFO_MOUSE { DWORD dwId; DWORD dwNumberOfButtons; DWORD dwSampleRate; } RID_DEVICE_INFO_MOUSE, *PRID_DEVICE_INFO_MOUSE; typedef struct tagRID_DEVICE_INFO_KEYBOARD { DWORD dwType; DWORD dwSubType; DWORD dwKeyboardMode; DWORD dwNumberOfFunctionKeys; DWORD dwNumberOfIndicators; DWORD dwNumberOfKeysTotal; } RID_DEVICE_INFO_KEYBOARD, *PRID_DEVICE_INFO_KEYBOARD; typedef struct tagRID_DEVICE_INFO_HID { DWORD dwVendorId; DWORD dwProductId; DWORD dwVersionNumber; /* * Top level collection UsagePage and Usage */ USHORT usUsagePage; USHORT usUsage; } RID_DEVICE_INFO_HID, *PRID_DEVICE_INFO_HID; typedef struct tagRID_DEVICE_INFO { DWORD cbSize; DWORD dwType; union { RID_DEVICE_INFO_MOUSE mouse; RID_DEVICE_INFO_KEYBOARD keyboard; RID_DEVICE_INFO_HID hid; }; } RID_DEVICE_INFO, *PRID_DEVICE_INFO, *LPRID_DEVICE_INFO; WINUSERAPI UINT WINAPI GetRawInputDeviceInfoA( IN HANDLE hDevice, IN UINT uiCommand, OUT LPVOID pData, IN OUT PUINT pcbSize); WINUSERAPI UINT WINAPI GetRawInputDeviceInfoW( IN HANDLE hDevice, IN UINT uiCommand, OUT LPVOID pData, IN OUT PUINT pcbSize); #ifdef UNICODE #define GetRawInputDeviceInfo GetRawInputDeviceInfoW #else #define GetRawInputDeviceInfo GetRawInputDeviceInfoA #endif // !UNICODE /* * Raw Input Bulk Read: GetRawInputBuffer */ WINUSERAPI UINT WINAPI GetRawInputBuffer( OUT PRAWINPUT pData, IN OUT PUINT pcbSize, IN UINT cbSizeHeader); /* * Raw Input request APIs */ typedef struct tagRAWINPUTDEVICE { USHORT usUsagePage; // Toplevel collection UsagePage USHORT usUsage; // Toplevel collection Usage DWORD dwFlags; HWND hwndTarget; // Target hwnd. NULL = follows keyboard focus } RAWINPUTDEVICE, *PRAWINPUTDEVICE, *LPRAWINPUTDEVICE; typedef CONST RAWINPUTDEVICE* PCRAWINPUTDEVICE; #define RIDEV_REMOVE 0x00000001 #define RIDEV_EXCLUDE 0x00000010 #define RIDEV_PAGEONLY 0x00000020 #define RIDEV_NOLEGACY 0x00000030 #define RIDEV_INPUTSINK 0x00000100 #define RIDEV_CAPTUREMOUSE 0x00000200 // effective when mouse nolegacy is specified, otherwise it would be an error #define RIDEV_NOHOTKEYS 0x00000200 // effective for keyboard. #define RIDEV_APPKEYS 0x00000400 // effective for keyboard. #define RIDEV_EXMODEMASK 0x000000F0 #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK) WINUSERAPI BOOL WINAPI RegisterRawInputDevices( IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize); WINUSERAPI UINT WINAPI GetRegisteredRawInputDevices( OUT PRAWINPUTDEVICE pRawInputDevices, IN OUT PUINT puiNumDevices, IN UINT cbSize); typedef struct tagRAWINPUTDEVICELIST { HANDLE hDevice; DWORD dwType; } RAWINPUTDEVICELIST, *PRAWINPUTDEVICELIST; WINUSERAPI UINT WINAPI GetRawInputDeviceList( OUT PRAWINPUTDEVICELIST pRawInputDeviceList, IN OUT PUINT puiNumDevices, IN UINT cbSize); WINUSERAPI LRESULT WINAPI DefRawInputProc( IN PRAWINPUT* paRawInput, IN INT nInput, IN UINT cbSizeHeader); #endif /* _WIN32_WINNT >= 0x0501 */ #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */ #if defined(ISOLATION_AWARE_ENABLED) && (ISOLATION_AWARE_ENABLED != 0) #include "winuser.inl" #endif /* ISOLATION_AWARE_ENABLED */ #endif /* RC */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* !_WINUSER_ */ ================================================ FILE: Bin/i386/APILib/ntddk.h ================================================ /*++ BUILD Version: 0120 // Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: ntddk.h Abstract: This module defines the NT types, constants, and functions that are exposed to device drivers. Revision History: --*/ #ifndef _NTDDK_ #define _NTDDK_ #ifndef RC_INVOKED #if _MSC_VER < 1300 #error Compiler version not supported by Windows DDK #endif #endif // RC_INVOKED #define NT_INCLUDED #define _CTYPE_DISABLE_MACROS #include #include #include #include #include // // Kernel Mutex Level Numbers (must be globallly assigned within executive) // The third token in the name is the sub-component name that defines and // uses the level number. // // // Used by Vdm for protecting io simulation structures // #define MUTEX_LEVEL_VDM_IO (ULONG)0x00000001 #define MUTEX_LEVEL_EX_PROFILE (ULONG)0x00000040 // // The LANMAN Redirector uses the file system major function, but defines // it's own mutex levels. We can do this safely because we know that the // local filesystem will never call the remote filesystem and vice versa. // #define MUTEX_LEVEL_RDR_FILESYS_DATABASE (ULONG)0x10100000 #define MUTEX_LEVEL_RDR_FILESYS_SECURITY (ULONG)0x10100001 // // File System levels. // #define MUTEX_LEVEL_FILESYSTEM_RAW_VCB (ULONG)0x11000006 // // In the NT STREAMS environment, a mutex is used to serialize open, close // and Scheduler threads executing in a subsystem-parallelized stack. // #define MUTEX_LEVEL_STREAMS_SUBSYS (ULONG)0x11001001 // // Mutex level used by LDT support on x86 // #define MUTEX_LEVEL_PS_LDT (ULONG)0x1F000000 // // Define types that are not exported. // typedef struct _BUS_HANDLER *PBUS_HANDLER; typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT; typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT; typedef struct _EPROCESS *PEPROCESS; typedef struct _ETHREAD *PETHREAD; typedef struct _IO_TIMER *PIO_TIMER; typedef struct _KINTERRUPT *PKINTERRUPT; typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD; typedef struct _OBJECT_TYPE *POBJECT_TYPE; typedef struct _PEB *PPEB; #if defined(_M_AMD64) PKTHREAD NTAPI KeGetCurrentThread( VOID ); #endif // defined(_M_AMD64) #if defined(_M_IX86) PKTHREAD NTAPI KeGetCurrentThread(); #endif // defined(_M_IX86) #if defined(_M_IA64) // // Define Address of Processor Control Registers. // #define KIPCR ((ULONG_PTR)(KADDRESS_BASE + 0xffff0000)) // kernel address of first PCR // // Define Pointer to Processor Control Registers. // #define PCR ((volatile KPCR * const)KIPCR) PKTHREAD NTAPI KeGetCurrentThread(); #endif // defined(_M_IA64) #define PsGetCurrentProcess() IoGetCurrentProcess() #define PsGetCurrentThread() ((PETHREAD) (KeGetCurrentThread())) extern NTSYSAPI CCHAR KeNumberProcessors; #include #ifndef FAR #define FAR #endif // // Define alignment macros to align structure sizes and pointers up and down. // #define ALIGN_DOWN(length, type) \ ((ULONG)(length) & ~(sizeof(type) - 1)) #define ALIGN_UP(length, type) \ (ALIGN_DOWN(((ULONG)(length) + sizeof(type) - 1), type)) #define ALIGN_DOWN_POINTER(address, type) \ ((PVOID)((ULONG_PTR)(address) & ~((ULONG_PTR)sizeof(type) - 1))) #define ALIGN_UP_POINTER(address, type) \ (ALIGN_DOWN_POINTER(((ULONG_PTR)(address) + sizeof(type) - 1), type)) #define POOL_TAGGING 1 #ifndef DBG #define DBG 0 #endif #if DBG #define IF_DEBUG if (TRUE) #else #define IF_DEBUG if (FALSE) #endif #if DEVL extern ULONG NtGlobalFlag; #define IF_NTOS_DEBUG( FlagName ) \ if (NtGlobalFlag & (FLG_ ## FlagName)) #else #define IF_NTOS_DEBUG( FlagName ) if (FALSE) #endif // // Kernel definitions that need to be here for forward reference purposes // // begin_ntndis // // Processor modes. // typedef CCHAR KPROCESSOR_MODE; typedef enum _MODE { KernelMode, UserMode, MaximumMode } MODE; // end_ntndis // // APC function types // // // Put in an empty definition for the KAPC so that the // routines can reference it before it is declared. // struct _KAPC; typedef VOID (*PKNORMAL_ROUTINE) ( IN PVOID NormalContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); typedef VOID (*PKKERNEL_ROUTINE) ( IN struct _KAPC *Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2 ); typedef VOID (*PKRUNDOWN_ROUTINE) ( IN struct _KAPC *Apc ); typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE) ( IN PVOID SynchronizeContext ); typedef BOOLEAN (*PKTRANSFER_ROUTINE) ( VOID ); // // // Asynchronous Procedure Call (APC) object // // typedef struct _KAPC { CSHORT Type; CSHORT Size; ULONG Spare0; struct _KTHREAD *Thread; LIST_ENTRY ApcListEntry; PKKERNEL_ROUTINE KernelRoutine; PKRUNDOWN_ROUTINE RundownRoutine; PKNORMAL_ROUTINE NormalRoutine; PVOID NormalContext; // // N.B. The following two members MUST be together. // PVOID SystemArgument1; PVOID SystemArgument2; CCHAR ApcStateIndex; KPROCESSOR_MODE ApcMode; BOOLEAN Inserted; } KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC; // begin_ntndis // // DPC routine // struct _KDPC; typedef VOID (*PKDEFERRED_ROUTINE) ( IN struct _KDPC *Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); // // Define DPC importance. // // LowImportance - Queue DPC at end of target DPC queue. // MediumImportance - Queue DPC at end of target DPC queue. // HighImportance - Queue DPC at front of target DPC DPC queue. // // If there is currently a DPC active on the target processor, or a DPC // interrupt has already been requested on the target processor when a // DPC is queued, then no further action is necessary. The DPC will be // executed on the target processor when its queue entry is processed. // // If there is not a DPC active on the target processor and a DPC interrupt // has not been requested on the target processor, then the exact treatment // of the DPC is dependent on whether the host system is a UP system or an // MP system. // // UP system. // // If the DPC is of medium or high importance, the current DPC queue depth // is greater than the maximum target depth, or current DPC request rate is // less the minimum target rate, then a DPC interrupt is requested on the // host processor and the DPC will be processed when the interrupt occurs. // Otherwise, no DPC interupt is requested and the DPC execution will be // delayed until the DPC queue depth is greater that the target depth or the // minimum DPC rate is less than the target rate. // // MP system. // // If the DPC is being queued to another processor and the depth of the DPC // queue on the target processor is greater than the maximum target depth or // the DPC is of high importance, then a DPC interrupt is requested on the // target processor and the DPC will be processed when the interrupt occurs. // Otherwise, the DPC execution will be delayed on the target processor until // the DPC queue depth on the target processor is greater that the maximum // target depth or the minimum DPC rate on the target processor is less than // the target mimimum rate. // // If the DPC is being queued to the current processor and the DPC is not of // low importance, the current DPC queue depth is greater than the maximum // target depth, or the minimum DPC rate is less than the minimum target rate, // then a DPC interrupt is request on the current processor and the DPV will // be processed whne the interrupt occurs. Otherwise, no DPC interupt is // requested and the DPC execution will be delayed until the DPC queue depth // is greater that the target depth or the minimum DPC rate is less than the // target rate. // typedef enum _KDPC_IMPORTANCE { LowImportance, MediumImportance, HighImportance } KDPC_IMPORTANCE; // // Deferred Procedure Call (DPC) object // typedef struct _KDPC { CSHORT Type; UCHAR Number; UCHAR Importance; LIST_ENTRY DpcListEntry; PKDEFERRED_ROUTINE DeferredRoutine; PVOID DeferredContext; PVOID SystemArgument1; PVOID SystemArgument2; PULONG_PTR Lock; } KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC; // // Interprocessor interrupt worker routine function prototype. // typedef PVOID PKIPI_CONTEXT; typedef VOID (*PKIPI_WORKER)( IN PKIPI_CONTEXT PacketContext, IN PVOID Parameter1, IN PVOID Parameter2, IN PVOID Parameter3 ); // // Define interprocessor interrupt performance counters. // typedef struct _KIPI_COUNTS { ULONG Freeze; ULONG Packet; ULONG DPC; ULONG APC; ULONG FlushSingleTb; ULONG FlushMultipleTb; ULONG FlushEntireTb; ULONG GenericCall; ULONG ChangeColor; ULONG SweepDcache; ULONG SweepIcache; ULONG SweepIcacheRange; ULONG FlushIoBuffers; ULONG GratuitousDPC; } KIPI_COUNTS, *PKIPI_COUNTS; #if defined(NT_UP) #define HOT_STATISTIC(a) a #else #define HOT_STATISTIC(a) (KeGetCurrentPrcb()->a) #endif // // I/O system definitions. // // Define a Memory Descriptor List (MDL) // // An MDL describes pages in a virtual buffer in terms of physical pages. The // pages associated with the buffer are described in an array that is allocated // just after the MDL header structure itself. In a future compiler this will // be placed at: // // ULONG Pages[]; // // Until this declaration is permitted, however, one simply calculates the // base of the array by adding one to the base MDL pointer: // // Pages = (PULONG) (Mdl + 1); // // Notice that while in the context of the subject thread, the base virtual // address of a buffer mapped by an MDL may be referenced using the following: // // Mdl->StartVa | Mdl->ByteOffset // typedef struct _MDL { struct _MDL *Next; CSHORT Size; CSHORT MdlFlags; struct _EPROCESS *Process; PVOID MappedSystemVa; PVOID StartVa; ULONG ByteCount; ULONG ByteOffset; } MDL, *PMDL; #define MDL_MAPPED_TO_SYSTEM_VA 0x0001 #define MDL_PAGES_LOCKED 0x0002 #define MDL_SOURCE_IS_NONPAGED_POOL 0x0004 #define MDL_ALLOCATED_FIXED_SIZE 0x0008 #define MDL_PARTIAL 0x0010 #define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020 #define MDL_IO_PAGE_READ 0x0040 #define MDL_WRITE_OPERATION 0x0080 #define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100 #define MDL_FREE_EXTRA_PTES 0x0200 #define MDL_IO_SPACE 0x0800 #define MDL_NETWORK_HEADER 0x1000 #define MDL_MAPPING_CAN_FAIL 0x2000 #define MDL_ALLOCATED_MUST_SUCCEED 0x4000 #define MDL_MAPPING_FLAGS (MDL_MAPPED_TO_SYSTEM_VA | \ MDL_PAGES_LOCKED | \ MDL_SOURCE_IS_NONPAGED_POOL | \ MDL_PARTIAL_HAS_BEEN_MAPPED | \ MDL_PARENT_MAPPED_SYSTEM_VA | \ MDL_SYSTEM_VA | \ MDL_IO_SPACE ) // end_ntndis // // switch to DBG when appropriate // #if DBG #define PAGED_CODE() \ { if (KeGetCurrentIrql() > APC_LEVEL) { \ KdPrint(( "EX: Pageable code called at IRQL %d\n", KeGetCurrentIrql() )); \ ASSERT(FALSE); \ } \ } #else #define PAGED_CODE() NOP_FUNCTION; #endif #define NTKERNELAPI DECLSPEC_IMPORT #if !defined(_NTHAL_) && !defined(_BLDR_) #define NTHALAPI DECLSPEC_IMPORT // wdm ntndis ntifs ntosp #else #define NTHALAPI // nthal #endif // // Common dispatcher object header // // N.B. The size field contains the number of dwords in the structure. // typedef struct _DISPATCHER_HEADER { UCHAR Type; UCHAR Absolute; UCHAR Size; UCHAR Inserted; LONG SignalState; LIST_ENTRY WaitListHead; } DISPATCHER_HEADER; // // Event object // typedef struct _KEVENT { DISPATCHER_HEADER Header; } KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT; // // Timer object // typedef struct _KTIMER { DISPATCHER_HEADER Header; ULARGE_INTEGER DueTime; LIST_ENTRY TimerListEntry; struct _KDPC *Dpc; LONG Period; } KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER; #ifdef _X86_ // // Disable these two pragmas that evaluate to "sti" "cli" on x86 so that driver // writers to not leave them inadvertantly in their code. // #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 // build with /Od don't get weird errors ! #ifdef _M_IX86 #pragma function(_enable) #pragma function(_disable) #endif #if _MSC_VER >= 1200 #pragma warning(pop) #else #pragma warning(default:4164) // reenable C4164 warning #endif #endif #endif // // Size of kernel mode stack. // #define KERNEL_STACK_SIZE 12288 // // Define size of large kernel mode stack for callbacks. // #define KERNEL_LARGE_STACK_SIZE 61440 // // Define number of pages to initialize in a large kernel stack. // #define KERNEL_LARGE_STACK_COMMIT 12288 #ifdef _X86_ // // Define the size of the 80387 save area, which is in the context frame. // #define SIZE_OF_80387_REGISTERS 80 // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_i386 0x00010000 // this assumes that i386 and #define CONTEXT_i486 0x00010000 // i486 have identical context records // end_wx86 #define CONTEXT_CONTROL (CONTEXT_i386 | 0x00000001L) // SS:SP, CS:IP, FLAGS, BP #define CONTEXT_INTEGER (CONTEXT_i386 | 0x00000002L) // AX, BX, CX, DX, SI, DI #define CONTEXT_SEGMENTS (CONTEXT_i386 | 0x00000004L) // DS, ES, FS, GS #define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 0x00000008L) // 387 state #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x00000010L) // DB 0-3,6,7 #define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386 | 0x00000020L) // cpu specific extensions #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER |\ CONTEXT_SEGMENTS) // begin_wx86 #endif #define MAXIMUM_SUPPORTED_EXTENSION 512 typedef struct _FLOATING_SAVE_AREA { ULONG ControlWord; ULONG StatusWord; ULONG TagWord; ULONG ErrorOffset; ULONG ErrorSelector; ULONG DataOffset; ULONG DataSelector; UCHAR RegisterArea[SIZE_OF_80387_REGISTERS]; ULONG Cr0NpxState; } FLOATING_SAVE_AREA; typedef FLOATING_SAVE_AREA *PFLOATING_SAVE_AREA; // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) is is used to constuct a call frame for APC delivery, // and 3) it is used in the user level thread creation routines. // // The layout of the record conforms to a standard call frame. // typedef struct _CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a threads context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // ULONG ContextFlags; // // This section is specified/returned if CONTEXT_DEBUG_REGISTERS is // set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT // included in CONTEXT_FULL. // ULONG Dr0; ULONG Dr1; ULONG Dr2; ULONG Dr3; ULONG Dr6; ULONG Dr7; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_FLOATING_POINT. // FLOATING_SAVE_AREA FloatSave; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_SEGMENTS. // ULONG SegGs; ULONG SegFs; ULONG SegEs; ULONG SegDs; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_INTEGER. // ULONG Edi; ULONG Esi; ULONG Ebx; ULONG Edx; ULONG Ecx; ULONG Eax; // // This section is specified/returned if the // ContextFlags word contians the flag CONTEXT_CONTROL. // ULONG Ebp; ULONG Eip; ULONG SegCs; // MUST BE SANITIZED ULONG EFlags; // MUST BE SANITIZED ULONG Esp; ULONG SegSs; // // This section is specified/returned if the ContextFlags word // contains the flag CONTEXT_EXTENDED_REGISTERS. // The format and contexts are processor specific // UCHAR ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION]; } CONTEXT; typedef CONTEXT *PCONTEXT; // begin_ntminiport #endif //_X86_ #endif // _X86_ #if defined(_AMD64_) #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // Define function to get the caller's EFLAGs value. // #define GetCallersEflags() __getcallerseflags() unsigned __int32 __getcallerseflags ( VOID ); #pragma intrinsic(__getcallerseflags) // // Define function to read the value of the time stamp counter // #define ReadTimeStampCounter() __rdtsc() ULONG64 __rdtsc ( VOID ); #pragma intrinsic(__rdtsc) // // Define functions to move strings or bytes, words, dwords, and qwords. // VOID __movsb ( IN PUCHAR Destination, IN PUCHAR Source, IN ULONG Count ); VOID __movsw ( IN PUSHORT Destination, IN PUSHORT Source, IN ULONG Count ); VOID __movsd ( IN PULONG Destination, IN PULONG Source, IN ULONG Count ); VOID __movsq ( IN PULONGLONG Destination, IN PULONGLONG Source, IN ULONG Count ); #pragma intrinsic(__movsb) #pragma intrinsic(__movsw) #pragma intrinsic(__movsd) #pragma intrinsic(__movsq) // // Define functions to capture the high 64-bits of a 128-bit multiply. // #define MultiplyHigh __mulh #define UnsignedMultiplyHigh __umulh LONGLONG MultiplyHigh ( IN LONGLONG Multiplier, IN LONGLONG Multiplicand ); ULONGLONG UnsignedMultiplyHigh ( IN ULONGLONG Multiplier, IN ULONGLONG Multiplicand ); #pragma intrinsic(__mulh) #pragma intrinsic(__umulh) // // Define functions to read and write the uer TEB and the system PCR/PRCB. // UCHAR __readgsbyte ( IN ULONG Offset ); USHORT __readgsword ( IN ULONG Offset ); ULONG __readgsdword ( IN ULONG Offset ); ULONG64 __readgsqword ( IN ULONG Offset ); VOID __writegsbyte ( IN ULONG Offset, IN UCHAR Data ); VOID __writegsword ( IN ULONG Offset, IN USHORT Data ); VOID __writegsdword ( IN ULONG Offset, IN ULONG Data ); VOID __writegsqword ( IN ULONG Offset, IN ULONG64 Data ); #pragma intrinsic(__readgsbyte) #pragma intrinsic(__readgsword) #pragma intrinsic(__readgsdword) #pragma intrinsic(__readgsqword) #pragma intrinsic(__writegsbyte) #pragma intrinsic(__writegsword) #pragma intrinsic(__writegsdword) #pragma intrinsic(__writegsqword) #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // Size of kernel mode stack. // #define KERNEL_STACK_SIZE 0x5000 // // Define size of large kernel mode stack for callbacks. // #define KERNEL_LARGE_STACK_SIZE 0xf000 // // Define number of pages to initialize in a large kernel stack. // #define KERNEL_LARGE_STACK_COMMIT 0x5000 // // Define the size of the stack used for processing an MCA exception. // #define KERNEL_MCA_EXCEPTION_STACK_SIZE 0x2000 // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_AMD64 0x100000 // end_wx86 #define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L) #define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L) #define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L) #define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L) #define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT) // begin_wx86 #endif // !defined(RC_INVOKED) // // Define 128-bit 16-byte aligned xmm register type. // typedef struct DECLSPEC_ALIGN(16) _M128 { ULONGLONG Low; LONGLONG High; } M128, *PM128; // // Format of data for fnsave/frstor instructions. // // This structure is used to store the legacy floating point state. // typedef struct _LEGACY_SAVE_AREA { USHORT ControlWord; USHORT Reserved0; USHORT StatusWord; USHORT Reserved1; USHORT TagWord; USHORT Reserved2; ULONG ErrorOffset; USHORT ErrorSelector; USHORT ErrorOpcode; ULONG DataOffset; USHORT DataSelector; USHORT Reserved3; UCHAR FloatRegisters[8 * 10]; } LEGACY_SAVE_AREA, *PLEGACY_SAVE_AREA; #define LEGACY_SAVE_AREA_LENGTH ((sizeof(LEGACY_SAVE_AREA) + 15) & ~15) // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) is is used to constuct a call frame for APC delivery, // and 3) it is used in the user level thread creation routines. // // // The flags field within this record controls the contents of a CONTEXT // record. // // If the context record is used as an input parameter, then for each // portion of the context record controlled by a flag whose value is // set, it is assumed that that portion of the context record contains // valid context. If the context record is being used to modify a threads // context, then only that portion of the threads context is modified. // // If the context record is used as an output parameter to capture the // context of a thread, then only those portions of the thread's context // corresponding to set flags will be returned. // // CONTEXT_CONTROL specifies SegSs, Rsp, SegCs, Rip, and EFlags. // // CONTEXT_INTEGER specifies Rax, Rcx, Rdx, Rbx, Rbp, Rsi, Rdi, and R8-R15. // // CONTEXT_SEGMENTS specifies SegDs, SegEs, SegFs, and SegGs. // // CONTEXT_DEBUG_REGISTERS specifies Dr0-Dr3 and Dr6-Dr7. // // CONTEXT_MMX_REGISTERS specifies the floating point and extended registers // Mm0/St0-Mm7/St7 and Xmm0-Xmm15). // typedef struct DECLSPEC_ALIGN(16) _CONTEXT { // // Register parameter home addresses. // ULONG64 P1Home; ULONG64 P2Home; ULONG64 P3Home; ULONG64 P4Home; ULONG64 P5Home; ULONG64 P6Home; // // Control flags. // ULONG ContextFlags; ULONG MxCsr; // // Segment Registers and processor flags. // USHORT SegCs; USHORT SegDs; USHORT SegEs; USHORT SegFs; USHORT SegGs; USHORT SegSs; ULONG EFlags; // // Debug registers // ULONG64 Dr0; ULONG64 Dr1; ULONG64 Dr2; ULONG64 Dr3; ULONG64 Dr6; ULONG64 Dr7; // // Integer registers. // ULONG64 Rax; ULONG64 Rcx; ULONG64 Rdx; ULONG64 Rbx; ULONG64 Rsp; ULONG64 Rbp; ULONG64 Rsi; ULONG64 Rdi; ULONG64 R8; ULONG64 R9; ULONG64 R10; ULONG64 R11; ULONG64 R12; ULONG64 R13; ULONG64 R14; ULONG64 R15; // // Program counter. // ULONG64 Rip; // // MMX/floating point state. // M128 Xmm0; M128 Xmm1; M128 Xmm2; M128 Xmm3; M128 Xmm4; M128 Xmm5; M128 Xmm6; M128 Xmm7; M128 Xmm8; M128 Xmm9; M128 Xmm10; M128 Xmm11; M128 Xmm12; M128 Xmm13; M128 Xmm14; M128 Xmm15; // // Legacy floating point state. // LEGACY_SAVE_AREA FltSave; ULONG Fill; } CONTEXT, *PCONTEXT; #endif // _AMD64_ #ifdef _IA64_ // // Define size of kernel mode stack. // #define KERNEL_STACK_SIZE 0x8000 // // Define size of large kernel mode stack for callbacks. // #define KERNEL_LARGE_STACK_SIZE 0x1A000 // // Define number of pages to initialize in a large kernel stack. // #define KERNEL_LARGE_STACK_COMMIT 0x8000 // // Define size of kernel mode backing store stack. // #define KERNEL_BSTORE_SIZE 0x6000 // // Define size of large kernel mode backing store for callbacks. // #define KERNEL_LARGE_BSTORE_SIZE 0x10000 // // Define number of pages to initialize in a large kernel backing store. // #define KERNEL_LARGE_BSTORE_COMMIT 0x6000 // // Define base address for kernel and user space. // #define UREGION_INDEX 0 #define KREGION_INDEX 7 #define UADDRESS_BASE ((ULONGLONG)UREGION_INDEX << 61) #define KADDRESS_BASE ((ULONGLONG)KREGION_INDEX << 61) // // The following flags control the contents of the CONTEXT structure. // #if !defined(RC_INVOKED) #define CONTEXT_IA64 0x00080000 #define CONTEXT_CONTROL (CONTEXT_IA64 | 0x00000001L) #define CONTEXT_LOWER_FLOATING_POINT (CONTEXT_IA64 | 0x00000002L) #define CONTEXT_HIGHER_FLOATING_POINT (CONTEXT_IA64 | 0x00000004L) #define CONTEXT_INTEGER (CONTEXT_IA64 | 0x00000008L) #define CONTEXT_DEBUG (CONTEXT_IA64 | 0x00000010L) #define CONTEXT_IA32_CONTROL (CONTEXT_IA64 | 0x00000020L) // Includes StIPSR #define CONTEXT_FLOATING_POINT (CONTEXT_LOWER_FLOATING_POINT | CONTEXT_HIGHER_FLOATING_POINT) #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER | CONTEXT_IA32_CONTROL) #endif // !defined(RC_INVOKED) // // Context Frame // // This frame has a several purposes: 1) it is used as an argument to // NtContinue, 2) it is used to construct a call frame for APC delivery, // 3) it is used to construct a call frame for exception dispatching // in user mode, 4) it is used in the user level thread creation // routines, and 5) it is used to to pass thread state to debuggers. // // N.B. Because this record is used as a call frame, it must be EXACTLY // a multiple of 16 bytes in length and aligned on a 16-byte boundary. // typedef struct _CONTEXT { // // The flags values within this flag control the contents of // a CONTEXT record. // // If the context record is used as an input parameter, then // for each portion of the context record controlled by a flag // whose value is set, it is assumed that that portion of the // context record contains valid context. If the context record // is being used to modify a thread's context, then only that // portion of the threads context will be modified. // // If the context record is used as an IN OUT parameter to capture // the context of a thread, then only those portions of the thread's // context corresponding to set flags will be returned. // // The context record is never used as an OUT only parameter. // ULONG ContextFlags; ULONG Fill1[3]; // for alignment of following on 16-byte boundary // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_DEBUG. // // N.B. CONTEXT_DEBUG is *not* part of CONTEXT_FULL. // ULONGLONG DbI0; ULONGLONG DbI1; ULONGLONG DbI2; ULONGLONG DbI3; ULONGLONG DbI4; ULONGLONG DbI5; ULONGLONG DbI6; ULONGLONG DbI7; ULONGLONG DbD0; ULONGLONG DbD1; ULONGLONG DbD2; ULONGLONG DbD3; ULONGLONG DbD4; ULONGLONG DbD5; ULONGLONG DbD6; ULONGLONG DbD7; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_LOWER_FLOATING_POINT. // FLOAT128 FltS0; FLOAT128 FltS1; FLOAT128 FltS2; FLOAT128 FltS3; FLOAT128 FltT0; FLOAT128 FltT1; FLOAT128 FltT2; FLOAT128 FltT3; FLOAT128 FltT4; FLOAT128 FltT5; FLOAT128 FltT6; FLOAT128 FltT7; FLOAT128 FltT8; FLOAT128 FltT9; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_HIGHER_FLOATING_POINT. // FLOAT128 FltS4; FLOAT128 FltS5; FLOAT128 FltS6; FLOAT128 FltS7; FLOAT128 FltS8; FLOAT128 FltS9; FLOAT128 FltS10; FLOAT128 FltS11; FLOAT128 FltS12; FLOAT128 FltS13; FLOAT128 FltS14; FLOAT128 FltS15; FLOAT128 FltS16; FLOAT128 FltS17; FLOAT128 FltS18; FLOAT128 FltS19; FLOAT128 FltF32; FLOAT128 FltF33; FLOAT128 FltF34; FLOAT128 FltF35; FLOAT128 FltF36; FLOAT128 FltF37; FLOAT128 FltF38; FLOAT128 FltF39; FLOAT128 FltF40; FLOAT128 FltF41; FLOAT128 FltF42; FLOAT128 FltF43; FLOAT128 FltF44; FLOAT128 FltF45; FLOAT128 FltF46; FLOAT128 FltF47; FLOAT128 FltF48; FLOAT128 FltF49; FLOAT128 FltF50; FLOAT128 FltF51; FLOAT128 FltF52; FLOAT128 FltF53; FLOAT128 FltF54; FLOAT128 FltF55; FLOAT128 FltF56; FLOAT128 FltF57; FLOAT128 FltF58; FLOAT128 FltF59; FLOAT128 FltF60; FLOAT128 FltF61; FLOAT128 FltF62; FLOAT128 FltF63; FLOAT128 FltF64; FLOAT128 FltF65; FLOAT128 FltF66; FLOAT128 FltF67; FLOAT128 FltF68; FLOAT128 FltF69; FLOAT128 FltF70; FLOAT128 FltF71; FLOAT128 FltF72; FLOAT128 FltF73; FLOAT128 FltF74; FLOAT128 FltF75; FLOAT128 FltF76; FLOAT128 FltF77; FLOAT128 FltF78; FLOAT128 FltF79; FLOAT128 FltF80; FLOAT128 FltF81; FLOAT128 FltF82; FLOAT128 FltF83; FLOAT128 FltF84; FLOAT128 FltF85; FLOAT128 FltF86; FLOAT128 FltF87; FLOAT128 FltF88; FLOAT128 FltF89; FLOAT128 FltF90; FLOAT128 FltF91; FLOAT128 FltF92; FLOAT128 FltF93; FLOAT128 FltF94; FLOAT128 FltF95; FLOAT128 FltF96; FLOAT128 FltF97; FLOAT128 FltF98; FLOAT128 FltF99; FLOAT128 FltF100; FLOAT128 FltF101; FLOAT128 FltF102; FLOAT128 FltF103; FLOAT128 FltF104; FLOAT128 FltF105; FLOAT128 FltF106; FLOAT128 FltF107; FLOAT128 FltF108; FLOAT128 FltF109; FLOAT128 FltF110; FLOAT128 FltF111; FLOAT128 FltF112; FLOAT128 FltF113; FLOAT128 FltF114; FLOAT128 FltF115; FLOAT128 FltF116; FLOAT128 FltF117; FLOAT128 FltF118; FLOAT128 FltF119; FLOAT128 FltF120; FLOAT128 FltF121; FLOAT128 FltF122; FLOAT128 FltF123; FLOAT128 FltF124; FLOAT128 FltF125; FLOAT128 FltF126; FLOAT128 FltF127; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_LOWER_FLOATING_POINT | CONTEXT_HIGHER_FLOATING_POINT | CONTEXT_CONTROL. // ULONGLONG StFPSR; // FP status // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_INTEGER. // // N.B. The registers gp, sp, rp are part of the control context // ULONGLONG IntGp; // r1, volatile ULONGLONG IntT0; // r2-r3, volatile ULONGLONG IntT1; // ULONGLONG IntS0; // r4-r7, preserved ULONGLONG IntS1; ULONGLONG IntS2; ULONGLONG IntS3; ULONGLONG IntV0; // r8, volatile ULONGLONG IntT2; // r9-r11, volatile ULONGLONG IntT3; ULONGLONG IntT4; ULONGLONG IntSp; // stack pointer (r12), special ULONGLONG IntTeb; // teb (r13), special ULONGLONG IntT5; // r14-r31, volatile ULONGLONG IntT6; ULONGLONG IntT7; ULONGLONG IntT8; ULONGLONG IntT9; ULONGLONG IntT10; ULONGLONG IntT11; ULONGLONG IntT12; ULONGLONG IntT13; ULONGLONG IntT14; ULONGLONG IntT15; ULONGLONG IntT16; ULONGLONG IntT17; ULONGLONG IntT18; ULONGLONG IntT19; ULONGLONG IntT20; ULONGLONG IntT21; ULONGLONG IntT22; ULONGLONG IntNats; // Nat bits for r1-r31 // r1-r31 in bits 1 thru 31. ULONGLONG Preds; // predicates, preserved ULONGLONG BrRp; // return pointer, b0, preserved ULONGLONG BrS0; // b1-b5, preserved ULONGLONG BrS1; ULONGLONG BrS2; ULONGLONG BrS3; ULONGLONG BrS4; ULONGLONG BrT0; // b6-b7, volatile ULONGLONG BrT1; // // This section is specified/returned if the ContextFlags word contains // the flag CONTEXT_CONTROL. // // Other application registers ULONGLONG ApUNAT; // User Nat collection register, preserved ULONGLONG ApLC; // Loop counter register, preserved ULONGLONG ApEC; // Epilog counter register, preserved ULONGLONG ApCCV; // CMPXCHG value register, volatile ULONGLONG ApDCR; // Default control register (TBD) // Register stack info ULONGLONG RsPFS; // Previous function state, preserved ULONGLONG RsBSP; // Backing store pointer, preserved ULONGLONG RsBSPSTORE; ULONGLONG RsRSC; // RSE configuration, volatile ULONGLONG RsRNAT; // RSE Nat collection register, preserved // Trap Status Information ULONGLONG StIPSR; // Interruption Processor Status ULONGLONG StIIP; // Interruption IP ULONGLONG StIFS; // Interruption Function State // iA32 related control registers ULONGLONG StFCR; // copy of Ar21 ULONGLONG Eflag; // Eflag copy of Ar24 ULONGLONG SegCSD; // iA32 CSDescriptor (Ar25) ULONGLONG SegSSD; // iA32 SSDescriptor (Ar26) ULONGLONG Cflag; // Cr0+Cr4 copy of Ar27 ULONGLONG StFSR; // x86 FP status (copy of AR28) ULONGLONG StFIR; // x86 FP status (copy of AR29) ULONGLONG StFDR; // x86 FP status (copy of AR30) ULONGLONG UNUSEDPACK; // added to pack StFDR to 16-bytes } CONTEXT, *PCONTEXT; // begin_winnt // // Plabel descriptor structure definition // typedef struct _PLABEL_DESCRIPTOR { ULONGLONG EntryPoint; ULONGLONG GlobalPointer; } PLABEL_DESCRIPTOR, *PPLABEL_DESCRIPTOR; // end_winnt #endif // _IA64_ // // Define an access token from a programmer's viewpoint. The structure is // completely opaque and the programer is only allowed to have pointers // to tokens. // typedef PVOID PACCESS_TOKEN; // winnt // // Pointer to a SECURITY_DESCRIPTOR opaque data type. // typedef PVOID PSECURITY_DESCRIPTOR; // winnt // // Define a pointer to the Security ID data type (an opaque data type) // typedef PVOID PSID; // winnt typedef ULONG ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; // end_winnt // // The following are masks for the predefined standard access types // #define DELETE (0x00010000L) #define READ_CONTROL (0x00020000L) #define WRITE_DAC (0x00040000L) #define WRITE_OWNER (0x00080000L) #define SYNCHRONIZE (0x00100000L) #define STANDARD_RIGHTS_REQUIRED (0x000F0000L) #define STANDARD_RIGHTS_READ (READ_CONTROL) #define STANDARD_RIGHTS_WRITE (READ_CONTROL) #define STANDARD_RIGHTS_EXECUTE (READ_CONTROL) #define STANDARD_RIGHTS_ALL (0x001F0000L) #define SPECIFIC_RIGHTS_ALL (0x0000FFFFL) // // AccessSystemAcl access type // #define ACCESS_SYSTEM_SECURITY (0x01000000L) // // MaximumAllowed access type // #define MAXIMUM_ALLOWED (0x02000000L) // // These are the generic rights. // #define GENERIC_READ (0x80000000L) #define GENERIC_WRITE (0x40000000L) #define GENERIC_EXECUTE (0x20000000L) #define GENERIC_ALL (0x10000000L) // // Define the generic mapping array. This is used to denote the // mapping of each generic access right to a specific access mask. // typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead; ACCESS_MASK GenericWrite; ACCESS_MASK GenericExecute; ACCESS_MASK GenericAll; } GENERIC_MAPPING; typedef GENERIC_MAPPING *PGENERIC_MAPPING; //////////////////////////////////////////////////////////////////////// // // // LUID_AND_ATTRIBUTES // // // //////////////////////////////////////////////////////////////////////// // // #include typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; ULONG Attributes; } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; #include // This is the *current* ACL revision #define ACL_REVISION (2) #define ACL_REVISION_DS (4) // This is the history of ACL revisions. Add a new one whenever // ACL_REVISION is updated #define ACL_REVISION1 (1) #define MIN_ACL_REVISION ACL_REVISION2 #define ACL_REVISION2 (2) #define ACL_REVISION3 (3) #define ACL_REVISION4 (4) #define MAX_ACL_REVISION ACL_REVISION4 typedef struct _ACL { UCHAR AclRevision; UCHAR Sbz1; USHORT AclSize; USHORT AceCount; USHORT Sbz2; } ACL; typedef ACL *PACL; // // Current security descriptor revision value // #define SECURITY_DESCRIPTOR_REVISION (1) #define SECURITY_DESCRIPTOR_REVISION1 (1) // // Privilege attributes // #define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L) #define SE_PRIVILEGE_ENABLED (0x00000002L) #define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L) // // Privilege Set Control flags // #define PRIVILEGE_SET_ALL_NECESSARY (1) // // Privilege Set - This is defined for a privilege set of one. // If more than one privilege is needed, then this structure // will need to be allocated with more space. // // Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET // structure (defined in se.h) // typedef struct _PRIVILEGE_SET { ULONG PrivilegeCount; ULONG Control; LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; } PRIVILEGE_SET, * PPRIVILEGE_SET; // // These must be converted to LUIDs before use. // #define SE_MIN_WELL_KNOWN_PRIVILEGE (2L) #define SE_CREATE_TOKEN_PRIVILEGE (2L) #define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L) #define SE_LOCK_MEMORY_PRIVILEGE (4L) #define SE_INCREASE_QUOTA_PRIVILEGE (5L) // end_wdm // // Unsolicited Input is obsolete and unused. // #define SE_UNSOLICITED_INPUT_PRIVILEGE (6L) // begin_wdm #define SE_MACHINE_ACCOUNT_PRIVILEGE (6L) #define SE_TCB_PRIVILEGE (7L) #define SE_SECURITY_PRIVILEGE (8L) #define SE_TAKE_OWNERSHIP_PRIVILEGE (9L) #define SE_LOAD_DRIVER_PRIVILEGE (10L) #define SE_SYSTEM_PROFILE_PRIVILEGE (11L) #define SE_SYSTEMTIME_PRIVILEGE (12L) #define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L) #define SE_INC_BASE_PRIORITY_PRIVILEGE (14L) #define SE_CREATE_PAGEFILE_PRIVILEGE (15L) #define SE_CREATE_PERMANENT_PRIVILEGE (16L) #define SE_BACKUP_PRIVILEGE (17L) #define SE_RESTORE_PRIVILEGE (18L) #define SE_SHUTDOWN_PRIVILEGE (19L) #define SE_DEBUG_PRIVILEGE (20L) #define SE_AUDIT_PRIVILEGE (21L) #define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L) #define SE_CHANGE_NOTIFY_PRIVILEGE (23L) #define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L) #define SE_UNDOCK_PRIVILEGE (25L) #define SE_SYNC_AGENT_PRIVILEGE (26L) #define SE_ENABLE_DELEGATION_PRIVILEGE (27L) #define SE_MANAGE_VOLUME_PRIVILEGE (28L) #define SE_MAX_WELL_KNOWN_PRIVILEGE (SE_MANAGE_VOLUME_PRIVILEGE) // // Impersonation Level // // Impersonation level is represented by a pair of bits in Windows. // If a new impersonation level is added or lowest value is changed from // 0 to something else, fix the Windows CreateFile call. // typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; #define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation #define SECURITY_MIN_IMPERSONATION_LEVEL SecurityAnonymous #define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation #define VALID_IMPERSONATION_LEVEL(L) (((L) >= SECURITY_MIN_IMPERSONATION_LEVEL) && ((L) <= SECURITY_MAX_IMPERSONATION_LEVEL)) // // Security Tracking Mode // #define SECURITY_DYNAMIC_TRACKING (TRUE) #define SECURITY_STATIC_TRACKING (FALSE) typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, * PSECURITY_CONTEXT_TRACKING_MODE; // // Quality Of Service // typedef struct _SECURITY_QUALITY_OF_SERVICE { ULONG Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; BOOLEAN EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE; // // Used to represent information related to a thread impersonation // typedef struct _SE_IMPERSONATION_STATE { PACCESS_TOKEN Token; BOOLEAN CopyOnOpen; BOOLEAN EffectiveOnly; SECURITY_IMPERSONATION_LEVEL Level; } SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE; typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION; #define OWNER_SECURITY_INFORMATION (0x00000001L) #define GROUP_SECURITY_INFORMATION (0x00000002L) #define DACL_SECURITY_INFORMATION (0x00000004L) #define SACL_SECURITY_INFORMATION (0x00000008L) #define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L) #define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L) #define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L) #define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L) #define LOW_PRIORITY 0 // Lowest thread priority level #define LOW_REALTIME_PRIORITY 16 // Lowest realtime priority level #define HIGH_PRIORITY 31 // Highest thread priority level #define MAXIMUM_PRIORITY 32 // Number of thread priority levels // begin_winnt #define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects #define MAXIMUM_SUSPEND_COUNT MAXCHAR // Maximum times thread can be suspended // end_winnt // // Define system time structure. // typedef struct _KSYSTEM_TIME { ULONG LowPart; LONG High1Time; LONG High2Time; } KSYSTEM_TIME, *PKSYSTEM_TIME; // // Thread priority // typedef LONG KPRIORITY; // // Spin Lock // // begin_ntndis begin_winnt typedef ULONG_PTR KSPIN_LOCK; typedef KSPIN_LOCK *PKSPIN_LOCK; // end_ntndis end_winnt end_wdm // // Define per processor lock queue structure. // // N.B. The lock field of the spin lock queue structure contains the address // of the associated kernel spin lock, an owner bit, and a lock bit. Bit // 0 of the spin lock address is the wait bit and bit 1 is the owner bit. // The use of this field is such that the bits can be set and cleared // noninterlocked, however, the back pointer must be preserved. // // The lock wait bit is set when a processor enqueues itself on the lock // queue and it is not the only entry in the queue. The processor will // spin on this bit waiting for the lock to be granted. // // The owner bit is set when the processor owns the respective lock. // // The next field of the spin lock queue structure is used to line the // queued lock structures together in fifo order. It also can set set and // cleared noninterlocked. // #define LOCK_QUEUE_WAIT 1 #define LOCK_QUEUE_OWNER 2 typedef enum _KSPIN_LOCK_QUEUE_NUMBER { LockQueueDispatcherLock, LockQueueContextSwapLock, LockQueuePfnLock, LockQueueSystemSpaceLock, LockQueueVacbLock, LockQueueMasterLock, LockQueueNonPagedPoolLock, LockQueueIoCancelLock, LockQueueWorkQueueLock, LockQueueIoVpbLock, LockQueueIoDatabaseLock, LockQueueIoCompletionLock, LockQueueNtfsStructLock, LockQueueAfdWorkQueueLock, LockQueueBcbLock, LockQueueMaximumLock } KSPIN_LOCK_QUEUE_NUMBER, *PKSPIN_LOCK_QUEUE_NUMBER; typedef struct _KSPIN_LOCK_QUEUE { struct _KSPIN_LOCK_QUEUE * volatile Next; PKSPIN_LOCK volatile Lock; } KSPIN_LOCK_QUEUE, *PKSPIN_LOCK_QUEUE; typedef struct _KLOCK_QUEUE_HANDLE { KSPIN_LOCK_QUEUE LockQueue; KIRQL OldIrql; } KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE; // begin_wdm // // Interrupt routine (first level dispatch) // typedef VOID (*PKINTERRUPT_ROUTINE) ( VOID ); // // Profile source types // typedef enum _KPROFILE_SOURCE { ProfileTime, ProfileAlignmentFixup, ProfileTotalIssues, ProfilePipelineDry, ProfileLoadInstructions, ProfilePipelineFrozen, ProfileBranchInstructions, ProfileTotalNonissues, ProfileDcacheMisses, ProfileIcacheMisses, ProfileCacheMisses, ProfileBranchMispredictions, ProfileStoreInstructions, ProfileFpInstructions, ProfileIntegerInstructions, Profile2Issue, Profile3Issue, Profile4Issue, ProfileSpecialInstructions, ProfileTotalCycles, ProfileIcacheIssues, ProfileDcacheAccesses, ProfileMemoryBarrierCycles, ProfileLoadLinkedIssues, ProfileMaximum } KPROFILE_SOURCE; // // for move macros // #ifdef _MAC #ifndef _INC_STRING #include #endif /* _INC_STRING */ #else #include #endif // _MAC #ifndef _SLIST_HEADER_ #define _SLIST_HEADER_ #define SLIST_ENTRY SINGLE_LIST_ENTRY #define _SLIST_ENTRY _SINGLE_LIST_ENTRY #define PSLIST_ENTRY PSINGLE_LIST_ENTRY #if defined(_WIN64) typedef struct DECLSPEC_ALIGN(16) _SLIST_HEADER { ULONGLONG Alignment; ULONGLONG Region; } SLIST_HEADER; typedef struct _SLIST_HEADER *PSLIST_HEADER; #else typedef union _SLIST_HEADER { ULONGLONG Alignment; struct { SLIST_ENTRY Next; USHORT Depth; USHORT Sequence; }; } SLIST_HEADER, *PSLIST_HEADER; #endif #endif // // If debugging support enabled, define an ASSERT macro that works. Otherwise // define the ASSERT macro to expand to an empty expression. // // The ASSERT macro has been updated to be an expression instead of a statement. // #if DBG NTSYSAPI VOID NTAPI RtlAssert( PVOID FailedAssertion, PVOID FileName, ULONG LineNumber, PCHAR Message ); #define ASSERT( exp ) \ ((!(exp)) ? \ (RtlAssert( #exp, __FILE__, __LINE__, NULL ),FALSE) : \ TRUE) #define ASSERTMSG( msg, exp ) \ ((!(exp)) ? \ (RtlAssert( #exp, __FILE__, __LINE__, msg ),FALSE) : \ TRUE) #define RTL_SOFT_ASSERT(_exp) \ ((!(_exp)) ? \ (DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #_exp),FALSE) : \ TRUE) #define RTL_SOFT_ASSERTMSG(_msg, _exp) \ ((!(_exp)) ? \ (DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #_exp, (_msg)),FALSE) : \ TRUE) #define RTL_VERIFY( exp ) ASSERT(exp) #define RTL_VERIFYMSG( msg, exp ) ASSERT(msg, exp) #define RTL_SOFT_VERIFY(_exp) RTL_SOFT_ASSERT(_exp) #define RTL_SOFT_VERIFYMSG(_msg, _exp) RTL_SOFT_ASSERTMSG(_msg, _exp) #else #define ASSERT( exp ) ((void) 0) #define ASSERTMSG( msg, exp ) ((void) 0) #define RTL_SOFT_ASSERT(_exp) ((void) 0) #define RTL_SOFT_ASSERTMSG(_msg, _exp) ((void) 0) #define RTL_VERIFY( exp ) ((exp) ? TRUE : FALSE) #define RTL_VERIFYMSG( msg, exp ) ((exp) ? TRUE : FALSE) #define RTL_SOFT_VERIFY(_exp) ((_exp) ? TRUE : FALSE) #define RTL_SOFT_VERIFYMSG(msg, _exp) ((_exp) ? TRUE : FALSE) #endif // DBG // // Doubly-linked list manipulation routines. // // // VOID // InitializeListHead32( // PLIST_ENTRY32 ListHead // ); // #define InitializeListHead32(ListHead) (\ (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead))) #if !defined(MIDL_PASS) && !defined(SORTPP_PASS) VOID FORCEINLINE InitializeListHead( IN PLIST_ENTRY ListHead ) { ListHead->Flink = ListHead->Blink = ListHead; } // // BOOLEAN // IsListEmpty( // PLIST_ENTRY ListHead // ); // #define IsListEmpty(ListHead) \ ((ListHead)->Flink == (ListHead)) VOID FORCEINLINE RemoveEntryList( IN PLIST_ENTRY Entry ) { PLIST_ENTRY Blink; PLIST_ENTRY Flink; Flink = Entry->Flink; Blink = Entry->Blink; Blink->Flink = Flink; Flink->Blink = Blink; } PLIST_ENTRY FORCEINLINE RemoveHeadList( IN PLIST_ENTRY ListHead ) { PLIST_ENTRY Flink; PLIST_ENTRY Entry; Entry = ListHead->Flink; Flink = Entry->Flink; ListHead->Flink = Flink; Flink->Blink = ListHead; return Entry; } PLIST_ENTRY FORCEINLINE RemoveTailList( IN PLIST_ENTRY ListHead ) { PLIST_ENTRY Blink; PLIST_ENTRY Entry; Entry = ListHead->Blink; Blink = Entry->Blink; ListHead->Blink = Blink; Blink->Flink = ListHead; return Entry; } VOID FORCEINLINE InsertTailList( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY Entry ) { PLIST_ENTRY Blink; Blink = ListHead->Blink; Entry->Flink = ListHead; Entry->Blink = Blink; Blink->Flink = Entry; ListHead->Blink = Entry; } VOID FORCEINLINE InsertHeadList( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY Entry ) { PLIST_ENTRY Flink; Flink = ListHead->Flink; Entry->Flink = Flink; Entry->Blink = ListHead; Flink->Blink = Entry; ListHead->Flink = Entry; } // // // PSINGLE_LIST_ENTRY // PopEntryList( // PSINGLE_LIST_ENTRY ListHead // ); // #define PopEntryList(ListHead) \ (ListHead)->Next;\ {\ PSINGLE_LIST_ENTRY FirstEntry;\ FirstEntry = (ListHead)->Next;\ if (FirstEntry != NULL) { \ (ListHead)->Next = FirstEntry->Next;\ } \ } // // VOID // PushEntryList( // PSINGLE_LIST_ENTRY ListHead, // PSINGLE_LIST_ENTRY Entry // ); // #define PushEntryList(ListHead,Entry) \ (Entry)->Next = (ListHead)->Next; \ (ListHead)->Next = (Entry) #endif // !MIDL_PASS // end_wdm end_nthal end_ntifs end_ntndis #if defined (_MSC_VER) && ( _MSC_VER >= 900 ) PVOID _ReturnAddress ( VOID ); #pragma intrinsic(_ReturnAddress) #endif #if (defined(_M_AMD64) || defined(_M_IA64)) && !defined(_REALLY_GET_CALLERS_CALLER_) #define RtlGetCallersAddress(CallersAddress, CallersCaller) \ *CallersAddress = (PVOID)_ReturnAddress(); \ *CallersCaller = NULL; #else NTSYSAPI VOID NTAPI RtlGetCallersAddress( OUT PVOID *CallersAddress, OUT PVOID *CallersCaller ); #endif NTSYSAPI ULONG NTAPI RtlWalkFrameChain ( OUT PVOID *Callers, IN ULONG Count, IN ULONG Flags ); // // Subroutines for dealing with the Registry // typedef NTSTATUS (NTAPI * PRTL_QUERY_REGISTRY_ROUTINE)( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext ); typedef struct _RTL_QUERY_REGISTRY_TABLE { PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine; ULONG Flags; PWSTR Name; PVOID EntryContext; ULONG DefaultType; PVOID DefaultData; ULONG DefaultLength; } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE; // // The following flags specify how the Name field of a RTL_QUERY_REGISTRY_TABLE // entry is interpreted. A NULL name indicates the end of the table. // #define RTL_QUERY_REGISTRY_SUBKEY 0x00000001 // Name is a subkey and remainder of // table or until next subkey are value // names for that subkey to look at. #define RTL_QUERY_REGISTRY_TOPKEY 0x00000002 // Reset current key to original key for // this and all following table entries. #define RTL_QUERY_REGISTRY_REQUIRED 0x00000004 // Fail if no match found for this table // entry. #define RTL_QUERY_REGISTRY_NOVALUE 0x00000008 // Used to mark a table entry that has no // value name, just wants a call out, not // an enumeration of all values. #define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010 // Used to suppress the expansion of // REG_MULTI_SZ into multiple callouts or // to prevent the expansion of environment // variable values in REG_EXPAND_SZ #define RTL_QUERY_REGISTRY_DIRECT 0x00000020 // QueryRoutine field ignored. EntryContext // field points to location to store value. // For null terminated strings, EntryContext // points to UNICODE_STRING structure that // that describes maximum size of buffer. // If .Buffer field is NULL then a buffer is // allocated. // #define RTL_QUERY_REGISTRY_DELETE 0x00000040 // Used to delete value keys after they // are queried. NTSYSAPI NTSTATUS NTAPI RtlQueryRegistryValues( IN ULONG RelativeTo, IN PCWSTR Path, IN PRTL_QUERY_REGISTRY_TABLE QueryTable, IN PVOID Context, IN PVOID Environment OPTIONAL ); NTSYSAPI NTSTATUS NTAPI RtlWriteRegistryValue( IN ULONG RelativeTo, IN PCWSTR Path, IN PCWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength ); NTSYSAPI NTSTATUS NTAPI RtlDeleteRegistryValue( IN ULONG RelativeTo, IN PCWSTR Path, IN PCWSTR ValueName ); // end_wdm NTSYSAPI NTSTATUS NTAPI RtlCreateRegistryKey( IN ULONG RelativeTo, IN PWSTR Path ); NTSYSAPI NTSTATUS NTAPI RtlCheckRegistryKey( IN ULONG RelativeTo, IN PWSTR Path ); // begin_wdm // // The following values for the RelativeTo parameter determine what the // Path parameter to RtlQueryRegistryValues is relative to. // #define RTL_REGISTRY_ABSOLUTE 0 // Path is a full path #define RTL_REGISTRY_SERVICES 1 // \Registry\Machine\System\CurrentControlSet\Services #define RTL_REGISTRY_CONTROL 2 // \Registry\Machine\System\CurrentControlSet\Control #define RTL_REGISTRY_WINDOWS_NT 3 // \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion #define RTL_REGISTRY_DEVICEMAP 4 // \Registry\Machine\Hardware\DeviceMap #define RTL_REGISTRY_USER 5 // \Registry\User\CurrentUser #define RTL_REGISTRY_MAXIMUM 6 #define RTL_REGISTRY_HANDLE 0x40000000 // Low order bits are registry handle #define RTL_REGISTRY_OPTIONAL 0x80000000 // Indicates the key node is optional NTSYSAPI NTSTATUS NTAPI RtlCharToInteger ( PCSZ String, ULONG Base, PULONG Value ); NTSYSAPI NTSTATUS NTAPI RtlIntegerToUnicodeString ( ULONG Value, ULONG Base, PUNICODE_STRING String ); NTSYSAPI NTSTATUS NTAPI RtlInt64ToUnicodeString ( IN ULONGLONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String ); #ifdef _WIN64 #define RtlIntPtrToUnicodeString(Value, Base, String) RtlInt64ToUnicodeString(Value, Base, String) #else #define RtlIntPtrToUnicodeString(Value, Base, String) RtlIntegerToUnicodeString(Value, Base, String) #endif NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger ( PCUNICODE_STRING String, ULONG Base, PULONG Value ); // // String manipulation routines // #ifdef _NTSYSTEM_ #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag #else #define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag) #define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag) #endif // _NTSYSTEM_ extern BOOLEAN NLS_MB_CODE_PAGE_TAG; // TRUE -> Multibyte CP, FALSE -> Singlebyte extern BOOLEAN NLS_MB_OEM_CODE_PAGE_TAG; // TRUE -> Multibyte CP, FALSE -> Singlebyte NTSYSAPI VOID NTAPI RtlInitString( PSTRING DestinationString, PCSZ SourceString ); NTSYSAPI VOID NTAPI RtlInitAnsiString( PANSI_STRING DestinationString, PCSZ SourceString ); NTSYSAPI VOID NTAPI RtlInitUnicodeString( PUNICODE_STRING DestinationString, PCWSTR SourceString ); #define RtlInitEmptyUnicodeString(_ucStr,_buf,_bufSize) \ ((_ucStr)->Buffer = (_buf), \ (_ucStr)->Length = 0, \ (_ucStr)->MaximumLength = (USHORT)(_bufSize)) NTSYSAPI VOID NTAPI RtlCopyString( PSTRING DestinationString, const STRING * SourceString ); NTSYSAPI CHAR NTAPI RtlUpperChar ( CHAR Character ); NTSYSAPI LONG NTAPI RtlCompareString( const STRING * String1, const STRING * String2, BOOLEAN CaseInSensitive ); NTSYSAPI BOOLEAN NTAPI RtlEqualString( const STRING * String1, const STRING * String2, BOOLEAN CaseInSensitive ); NTSYSAPI VOID NTAPI RtlUpperString( PSTRING DestinationString, const STRING * SourceString ); // // NLS String functions // NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString( PUNICODE_STRING DestinationString, PCANSI_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString( PANSI_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSYSAPI LONG NTAPI RtlCompareUnicodeString( PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInSensitive ); NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString( const UNICODE_STRING *String1, const UNICODE_STRING *String2, BOOLEAN CaseInSensitive ); #define HASH_STRING_ALGORITHM_DEFAULT (0) #define HASH_STRING_ALGORITHM_X65599 (1) #define HASH_STRING_ALGORITHM_INVALID (0xffffffff) NTSYSAPI NTSTATUS NTAPI RtlHashUnicodeString( IN const UNICODE_STRING *String, IN BOOLEAN CaseInSensitive, IN ULONG HashAlgorithm, OUT PULONG HashValue ); NTSYSAPI BOOLEAN NTAPI RtlPrefixUnicodeString( IN PUNICODE_STRING String1, IN PUNICODE_STRING String2, IN BOOLEAN CaseInSensitive ); NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeString( PUNICODE_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSYSAPI VOID NTAPI RtlCopyUnicodeString( PUNICODE_STRING DestinationString, PCUNICODE_STRING SourceString ); NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString ( PUNICODE_STRING Destination, PCUNICODE_STRING Source ); NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeToString ( PUNICODE_STRING Destination, PCWSTR Source ); // end_ntndis end_wdm NTSYSAPI WCHAR NTAPI RtlUpcaseUnicodeChar( WCHAR SourceCharacter ); NTSYSAPI WCHAR NTAPI RtlDowncaseUnicodeChar( WCHAR SourceCharacter ); // begin_wdm NTSYSAPI VOID NTAPI RtlFreeUnicodeString( PUNICODE_STRING UnicodeString ); NTSYSAPI VOID NTAPI RtlFreeAnsiString( PANSI_STRING AnsiString ); NTSYSAPI ULONG NTAPI RtlxAnsiStringToUnicodeSize( PCANSI_STRING AnsiString ); // // NTSYSAPI // ULONG // NTAPI // RtlAnsiStringToUnicodeSize( // PANSI_STRING AnsiString // ); // #define RtlAnsiStringToUnicodeSize(STRING) ( \ NLS_MB_CODE_PAGE_TAG ? \ RtlxAnsiStringToUnicodeSize(STRING) : \ ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \ ) // begin_ntminiport #include // end_ntminiport #ifndef DEFINE_GUIDEX #define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name #endif // !defined(DEFINE_GUIDEX) #ifndef STATICGUIDOF #define STATICGUIDOF(guid) STATIC_##guid #endif // !defined(STATICGUIDOF) #ifndef __IID_ALIGNED__ #define __IID_ALIGNED__ #ifdef __cplusplus inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2) { return ((*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) && (*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1))); } #else // !__cplusplus #define IsEqualGUIDAligned(guid1, guid2) \ ((*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1))) #endif // !__cplusplus #endif // !__IID_ALIGNED__ NTSYSAPI NTSTATUS NTAPI RtlStringFromGUID( IN REFGUID Guid, OUT PUNICODE_STRING GuidString ); NTSYSAPI NTSTATUS NTAPI RtlGUIDFromString( IN PUNICODE_STRING GuidString, OUT GUID* Guid ); // // Fast primitives to compare, move, and zero memory // // begin_winnt begin_ntndis NTSYSAPI SIZE_T NTAPI RtlCompareMemory ( const VOID *Source1, const VOID *Source2, SIZE_T Length ); #if defined(_M_AMD64) || defined(_M_IA64) #define RtlEqualMemory(Source1, Source2, Length) \ ((Length) == RtlCompareMemory(Source1, Source2, Length)) NTSYSAPI VOID NTAPI RtlCopyMemory ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); #if !defined(_M_AMD64) NTSYSAPI VOID NTAPI RtlCopyMemory32 ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length ); #endif NTSYSAPI VOID NTAPI RtlMoveMemory ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); NTSYSAPI VOID NTAPI RtlFillMemory ( VOID UNALIGNED *Destination, SIZE_T Length, UCHAR Fill ); NTSYSAPI VOID NTAPI RtlZeroMemory ( VOID UNALIGNED *Destination, SIZE_T Length ); #else #define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination),(Source),(Length))) #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) #define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length)) #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) #endif #if !defined(MIDL_PASS) FORCEINLINE PVOID RtlSecureZeroMemory( IN PVOID ptr, IN SIZE_T cnt ) { volatile char *vptr = (volatile char *)ptr; while (cnt) { *vptr = 0; vptr++; cnt--; } return ptr; } #endif // end_ntndis end_winnt #define RtlCopyBytes RtlCopyMemory #define RtlZeroBytes RtlZeroMemory #define RtlFillBytes RtlFillMemory #if defined(_M_AMD64) NTSYSAPI VOID NTAPI RtlCopyMemoryNonTemporal ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); #else #define RtlCopyMemoryNonTemporal RtlCopyMemory #endif NTSYSAPI VOID FASTCALL RtlPrefetchMemoryNonTemporal( IN PVOID Source, IN SIZE_T Length ); // // Define kernel debugger print prototypes and macros. // // N.B. The following function cannot be directly imported because there are // a few places in the source tree where this function is redefined. // VOID NTAPI DbgBreakPoint( VOID ); // end_wdm NTSYSAPI VOID NTAPI DbgBreakPointWithStatus( IN ULONG Status ); // begin_wdm #define DBG_STATUS_CONTROL_C 1 #define DBG_STATUS_SYSRQ 2 #define DBG_STATUS_BUGCHECK_FIRST 3 #define DBG_STATUS_BUGCHECK_SECOND 4 #define DBG_STATUS_FATAL 5 #define DBG_STATUS_DEBUG_CONTROL 6 #define DBG_STATUS_WORKER 7 #if DBG #define KdPrint(_x_) DbgPrint _x_ // end_wdm #define KdPrintEx(_x_) DbgPrintEx _x_ #define vKdPrintEx(_x_) vDbgPrintEx _x_ #define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_ // begin_wdm #define KdBreakPoint() DbgBreakPoint() // end_wdm #define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s) // begin_wdm #else #define KdPrint(_x_) // end_wdm #define KdPrintEx(_x_) #define vKdPrintEx(_x_) #define vKdPrintExWithPrefix(_x_) // begin_wdm #define KdBreakPoint() // end_wdm #define KdBreakPointWithStatus(s) // begin_wdm #endif #ifndef _DBGNT_ ULONG __cdecl DbgPrint( PCH Format, ... ); // end_wdm ULONG __cdecl DbgPrintEx( IN ULONG ComponentId, IN ULONG Level, IN PCH Format, ... ); #ifdef _VA_LIST_DEFINED ULONG vDbgPrintEx( IN ULONG ComponentId, IN ULONG Level, IN PCH Format, va_list arglist ); ULONG vDbgPrintExWithPrefix( IN PCH Prefix, IN ULONG ComponentId, IN ULONG Level, IN PCH Format, va_list arglist ); #endif ULONG __cdecl DbgPrintReturnControlC( PCH Format, ... ); NTSYSAPI NTSTATUS DbgQueryDebugFilterState( IN ULONG ComponentId, IN ULONG Level ); NTSYSAPI NTSTATUS DbgSetDebugFilterState( IN ULONG ComponentId, IN ULONG Level, IN BOOLEAN State ); // begin_wdm #endif // _DBGNT_ // // Large integer arithmetic routines. // // // Large integer add - 64-bits + 64-bits -> 64-bits // #if !defined(MIDL_PASS) DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerAdd ( LARGE_INTEGER Addend1, LARGE_INTEGER Addend2 ) { LARGE_INTEGER Sum; Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart; return Sum; } // // Enlarged integer multiply - 32-bits * 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlEnlargedIntegerMultiply ( LONG Multiplicand, LONG Multiplier ) { LARGE_INTEGER Product; Product.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier; return Product; } // // Unsigned enlarged integer multiply - 32-bits * 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlEnlargedUnsignedMultiply ( ULONG Multiplicand, ULONG Multiplier ) { LARGE_INTEGER Product; Product.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier; return Product; } // // Enlarged integer divide - 64-bits / 32-bits > 32-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline ULONG NTAPI RtlEnlargedUnsignedDivide ( IN ULARGE_INTEGER Dividend, IN ULONG Divisor, IN PULONG Remainder OPTIONAL ) { ULONG Quotient; Quotient = (ULONG)(Dividend.QuadPart / Divisor); if (ARGUMENT_PRESENT(Remainder)) { *Remainder = (ULONG)(Dividend.QuadPart % Divisor); } return Quotient; } // // Large integer negation - -(64-bits) // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerNegate ( LARGE_INTEGER Subtrahend ) { LARGE_INTEGER Difference; Difference.QuadPart = -Subtrahend.QuadPart; return Difference; } // // Large integer subtract - 64-bits - 64-bits -> 64-bits. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerSubtract ( LARGE_INTEGER Minuend, LARGE_INTEGER Subtrahend ) { LARGE_INTEGER Difference; Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart; return Difference; } // // Extended large integer magic divide - 64-bits / 32-bits -> 64-bits // #if defined(_AMD64_) DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlExtendedMagicDivide ( LARGE_INTEGER Dividend, LARGE_INTEGER MagicDivisor, CCHAR ShiftCount ) { LARGE_INTEGER Quotient; Quotient.QuadPart = UnsignedMultiplyHigh((ULONG64)Dividend.QuadPart, (ULONG64)MagicDivisor.QuadPart); Quotient.QuadPart = (ULONG64)Quotient.QuadPart >> ShiftCount; return Quotient; } #endif // defined(_AMD64_) #if defined(_X86_) || defined(_IA64_) DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedMagicDivide ( LARGE_INTEGER Dividend, LARGE_INTEGER MagicDivisor, CCHAR ShiftCount ); #endif // defined(_X86_) || defined(_IA64_) #if defined(_AMD64_) || defined(_IA64_) // // Large Integer divide - 64-bits / 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlExtendedLargeIntegerDivide ( LARGE_INTEGER Dividend, ULONG Divisor, PULONG Remainder OPTIONAL ) { LARGE_INTEGER Quotient; Quotient.QuadPart = (ULONG64)Dividend.QuadPart / Divisor; if (ARGUMENT_PRESENT(Remainder)) { *Remainder = (ULONG)(Dividend.QuadPart % Divisor); } return Quotient; } // end_wdm // // Large Integer divide - 64-bits / 64-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerDivide ( LARGE_INTEGER Dividend, LARGE_INTEGER Divisor, PLARGE_INTEGER Remainder OPTIONAL ) { LARGE_INTEGER Quotient; Quotient.QuadPart = Dividend.QuadPart / Divisor.QuadPart; if (ARGUMENT_PRESENT(Remainder)) { Remainder->QuadPart = Dividend.QuadPart % Divisor.QuadPart; } return Quotient; } // begin_wdm // // Extended integer multiply - 32-bits * 64-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply ( LARGE_INTEGER Multiplicand, LONG Multiplier ) { LARGE_INTEGER Product; Product.QuadPart = Multiplicand.QuadPart * Multiplier; return Product; } #else // // Large Integer divide - 64-bits / 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedLargeIntegerDivide ( LARGE_INTEGER Dividend, ULONG Divisor, PULONG Remainder ); // end_wdm // // Large Integer divide - 64-bits / 64-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlLargeIntegerDivide ( LARGE_INTEGER Dividend, LARGE_INTEGER Divisor, PLARGE_INTEGER Remainder ); // begin_wdm // // Extended integer multiply - 32-bits * 64-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply ( LARGE_INTEGER Multiplicand, LONG Multiplier ); #endif // defined(_AMD64_) || defined(_IA64_) // // Large integer and - 64-bite & 64-bits -> 64-bits. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(RtlLargeIntegerAnd) // Use native __int64 math #endif #define RtlLargeIntegerAnd(Result, Source, Mask) \ Result.QuadPart = Source.QuadPart & Mask.QuadPart // // Convert signed integer to large integer. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlConvertLongToLargeInteger ( LONG SignedInteger ) { LARGE_INTEGER Result; Result.QuadPart = SignedInteger; return Result; } // // Convert unsigned integer to large integer. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlConvertUlongToLargeInteger ( ULONG UnsignedInteger ) { LARGE_INTEGER Result; Result.QuadPart = UnsignedInteger; return Result; } // // Large integer shift routines. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerShiftLeft ( LARGE_INTEGER LargeInteger, CCHAR ShiftCount ) { LARGE_INTEGER Result; Result.QuadPart = LargeInteger.QuadPart << ShiftCount; return Result; } DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerShiftRight ( LARGE_INTEGER LargeInteger, CCHAR ShiftCount ) { LARGE_INTEGER Result; Result.QuadPart = (ULONG64)LargeInteger.QuadPart >> ShiftCount; return Result; } DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerArithmeticShift ( LARGE_INTEGER LargeInteger, CCHAR ShiftCount ) { LARGE_INTEGER Result; Result.QuadPart = LargeInteger.QuadPart >> ShiftCount; return Result; } // // Large integer comparison routines. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(RtlLargeIntegerGreaterThan) // Use native __int64 math #pragma deprecated(RtlLargeIntegerGreaterThanOrEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerNotEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessThan) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessThanOrEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerGreaterThanZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerGreaterOrEqualToZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerEqualToZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerNotEqualToZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessThanZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessOrEqualToZero) // Use native __int64 math #endif #define RtlLargeIntegerGreaterThan(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \ ((X).HighPart > (Y).HighPart) \ ) #define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \ ((X).HighPart > (Y).HighPart) \ ) #define RtlLargeIntegerEqualTo(X,Y) ( \ !(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \ ) #define RtlLargeIntegerNotEqualTo(X,Y) ( \ (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \ ) #define RtlLargeIntegerLessThan(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \ ((X).HighPart < (Y).HighPart) \ ) #define RtlLargeIntegerLessThanOrEqualTo(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \ ((X).HighPart < (Y).HighPart) \ ) #define RtlLargeIntegerGreaterThanZero(X) ( \ (((X).HighPart == 0) && ((X).LowPart > 0)) || \ ((X).HighPart > 0 ) \ ) #define RtlLargeIntegerGreaterOrEqualToZero(X) ( \ (X).HighPart >= 0 \ ) #define RtlLargeIntegerEqualToZero(X) ( \ !((X).LowPart | (X).HighPart) \ ) #define RtlLargeIntegerNotEqualToZero(X) ( \ ((X).LowPart | (X).HighPart) \ ) #define RtlLargeIntegerLessThanZero(X) ( \ ((X).HighPart < 0) \ ) #define RtlLargeIntegerLessOrEqualToZero(X) ( \ ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) \ ) #endif // !defined(MIDL_PASS) // // Time conversion routines // typedef struct _TIME_FIELDS { CSHORT Year; // range [1601...] CSHORT Month; // range [1..12] CSHORT Day; // range [1..31] CSHORT Hour; // range [0..23] CSHORT Minute; // range [0..59] CSHORT Second; // range [0..59] CSHORT Milliseconds;// range [0..999] CSHORT Weekday; // range [0..6] == [Sunday..Saturday] } TIME_FIELDS; typedef TIME_FIELDS *PTIME_FIELDS; NTSYSAPI VOID NTAPI RtlTimeToTimeFields ( PLARGE_INTEGER Time, PTIME_FIELDS TimeFields ); // // A time field record (Weekday ignored) -> 64 bit Time value // NTSYSAPI BOOLEAN NTAPI RtlTimeFieldsToTime ( PTIME_FIELDS TimeFields, PLARGE_INTEGER Time ); // // The following macros store and retrieve USHORTS and ULONGS from potentially // unaligned addresses, avoiding alignment faults. they should probably be // rewritten in assembler // #define SHORT_SIZE (sizeof(USHORT)) #define SHORT_MASK (SHORT_SIZE - 1) #define LONG_SIZE (sizeof(LONG)) #define LONGLONG_SIZE (sizeof(LONGLONG)) #define LONG_MASK (LONG_SIZE - 1) #define LONGLONG_MASK (LONGLONG_SIZE - 1) #define LOWBYTE_MASK 0x00FF #define FIRSTBYTE(VALUE) ((VALUE) & LOWBYTE_MASK) #define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK) #define THIRDBYTE(VALUE) (((VALUE) >> 16) & LOWBYTE_MASK) #define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK) // // if MIPS Big Endian, order of bytes is reversed. // #define SHORT_LEAST_SIGNIFICANT_BIT 0 #define SHORT_MOST_SIGNIFICANT_BIT 1 #define LONG_LEAST_SIGNIFICANT_BIT 0 #define LONG_3RD_MOST_SIGNIFICANT_BIT 1 #define LONG_2ND_MOST_SIGNIFICANT_BIT 2 #define LONG_MOST_SIGNIFICANT_BIT 3 //++ // // VOID // RtlStoreUshort ( // PUSHORT ADDRESS // USHORT VALUE // ) // // Routine Description: // // This macro stores a USHORT value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store USHORT value // VALUE - USHORT to store // // Return Value: // // none. // //-- #define RtlStoreUshort(ADDRESS,VALUE) \ if ((ULONG_PTR)(ADDRESS) & SHORT_MASK) { \ ((PUCHAR) (ADDRESS))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(VALUE)); \ } \ else { \ *((PUSHORT) (ADDRESS)) = (USHORT) VALUE; \ } //++ // // VOID // RtlStoreUlong ( // PULONG ADDRESS // ULONG VALUE // ) // // Routine Description: // // This macro stores a ULONG value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store ULONG value // VALUE - ULONG to store // // Return Value: // // none. // // Note: // Depending on the machine, we might want to call storeushort in the // unaligned case. // //-- #define RtlStoreUlong(ADDRESS,VALUE) \ if ((ULONG_PTR)(ADDRESS) & LONG_MASK) { \ ((PUCHAR) (ADDRESS))[LONG_LEAST_SIGNIFICANT_BIT ] = (UCHAR)(FIRSTBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[LONG_3RD_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[LONG_2ND_MOST_SIGNIFICANT_BIT ] = (UCHAR)(THIRDBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[LONG_MOST_SIGNIFICANT_BIT ] = (UCHAR)(FOURTHBYTE(VALUE)); \ } \ else { \ *((PULONG) (ADDRESS)) = (ULONG) (VALUE); \ } //++ // // VOID // RtlStoreUlonglong ( // PULONGLONG ADDRESS // ULONG VALUE // ) // // Routine Description: // // This macro stores a ULONGLONG value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store ULONGLONG value // VALUE - ULONGLONG to store // // Return Value: // // none. // //-- #define RtlStoreUlonglong(ADDRESS,VALUE) \ if ((ULONG_PTR)(ADDRESS) & LONGLONG_MASK) { \ RtlStoreUlong((ULONG_PTR)(ADDRESS), \ (ULONGLONG)(VALUE) & 0xFFFFFFFF); \ RtlStoreUlong((ULONG_PTR)(ADDRESS)+sizeof(ULONG), \ (ULONGLONG)(VALUE) >> 32); \ } else { \ *((PULONGLONG)(ADDRESS)) = (ULONGLONG)(VALUE); \ } //++ // // VOID // RtlStoreUlongPtr ( // PULONG_PTR ADDRESS // ULONG_PTR VALUE // ) // // Routine Description: // // This macro stores a ULONG_PTR value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store ULONG_PTR value // VALUE - ULONG_PTR to store // // Return Value: // // none. // //-- #ifdef _WIN64 #define RtlStoreUlongPtr(ADDRESS,VALUE) \ RtlStoreUlonglong(ADDRESS,VALUE) #else #define RtlStoreUlongPtr(ADDRESS,VALUE) \ RtlStoreUlong(ADDRESS,VALUE) #endif //++ // // VOID // RtlRetrieveUshort ( // PUSHORT DESTINATION_ADDRESS // PUSHORT SOURCE_ADDRESS // ) // // Routine Description: // // This macro retrieves a USHORT value from the SOURCE address, avoiding // alignment faults. The DESTINATION address is assumed to be aligned. // // Arguments: // // DESTINATION_ADDRESS - where to store USHORT value // SOURCE_ADDRESS - where to retrieve USHORT value from // // Return Value: // // none. // //-- #define RtlRetrieveUshort(DEST_ADDRESS,SRC_ADDRESS) \ if ((ULONG_PTR)SRC_ADDRESS & SHORT_MASK) { \ ((PUCHAR) DEST_ADDRESS)[0] = ((PUCHAR) SRC_ADDRESS)[0]; \ ((PUCHAR) DEST_ADDRESS)[1] = ((PUCHAR) SRC_ADDRESS)[1]; \ } \ else { \ *((PUSHORT) DEST_ADDRESS) = *((PUSHORT) SRC_ADDRESS); \ } \ //++ // // VOID // RtlRetrieveUlong ( // PULONG DESTINATION_ADDRESS // PULONG SOURCE_ADDRESS // ) // // Routine Description: // // This macro retrieves a ULONG value from the SOURCE address, avoiding // alignment faults. The DESTINATION address is assumed to be aligned. // // Arguments: // // DESTINATION_ADDRESS - where to store ULONG value // SOURCE_ADDRESS - where to retrieve ULONG value from // // Return Value: // // none. // // Note: // Depending on the machine, we might want to call retrieveushort in the // unaligned case. // //-- #define RtlRetrieveUlong(DEST_ADDRESS,SRC_ADDRESS) \ if ((ULONG_PTR)SRC_ADDRESS & LONG_MASK) { \ ((PUCHAR) DEST_ADDRESS)[0] = ((PUCHAR) SRC_ADDRESS)[0]; \ ((PUCHAR) DEST_ADDRESS)[1] = ((PUCHAR) SRC_ADDRESS)[1]; \ ((PUCHAR) DEST_ADDRESS)[2] = ((PUCHAR) SRC_ADDRESS)[2]; \ ((PUCHAR) DEST_ADDRESS)[3] = ((PUCHAR) SRC_ADDRESS)[3]; \ } \ else { \ *((PULONG) DEST_ADDRESS) = *((PULONG) SRC_ADDRESS); \ } // // BitMap routines. The following structure, routines, and macros are // for manipulating bitmaps. The user is responsible for allocating a bitmap // structure (which is really a header) and a buffer (which must be longword // aligned and multiple longwords in size). // typedef struct _RTL_BITMAP { ULONG SizeOfBitMap; // Number of bits in bit map PULONG Buffer; // Pointer to the bit map itself } RTL_BITMAP; typedef RTL_BITMAP *PRTL_BITMAP; // // The following routine initializes a new bitmap. It does not alter the // data currently in the bitmap. This routine must be called before // any other bitmap routine/macro. // NTSYSAPI VOID NTAPI RtlInitializeBitMap ( PRTL_BITMAP BitMapHeader, PULONG BitMapBuffer, ULONG SizeOfBitMap ); // // The following three routines clear, set, and test the state of a // single bit in a bitmap. // NTSYSAPI VOID NTAPI RtlClearBit ( PRTL_BITMAP BitMapHeader, ULONG BitNumber ); NTSYSAPI VOID NTAPI RtlSetBit ( PRTL_BITMAP BitMapHeader, ULONG BitNumber ); NTSYSAPI BOOLEAN NTAPI RtlTestBit ( PRTL_BITMAP BitMapHeader, ULONG BitNumber ); // // The following two routines either clear or set all of the bits // in a bitmap. // NTSYSAPI VOID NTAPI RtlClearAllBits ( PRTL_BITMAP BitMapHeader ); NTSYSAPI VOID NTAPI RtlSetAllBits ( PRTL_BITMAP BitMapHeader ); // // The following two routines locate a contiguous region of either // clear or set bits within the bitmap. The region will be at least // as large as the number specified, and the search of the bitmap will // begin at the specified hint index (which is a bit index within the // bitmap, zero based). The return value is the bit index of the located // region (zero based) or -1 (i.e., 0xffffffff) if such a region cannot // be located // NTSYSAPI ULONG NTAPI RtlFindClearBits ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); NTSYSAPI ULONG NTAPI RtlFindSetBits ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); // // The following two routines locate a contiguous region of either // clear or set bits within the bitmap and either set or clear the bits // within the located region. The region will be as large as the number // specified, and the search for the region will begin at the specified // hint index (which is a bit index within the bitmap, zero based). The // return value is the bit index of the located region (zero based) or // -1 (i.e., 0xffffffff) if such a region cannot be located. If a region // cannot be located then the setting/clearing of the bitmap is not performed. // NTSYSAPI ULONG NTAPI RtlFindClearBitsAndSet ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); NTSYSAPI ULONG NTAPI RtlFindSetBitsAndClear ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); // // The following two routines clear or set bits within a specified region // of the bitmap. The starting index is zero based. // NTSYSAPI VOID NTAPI RtlClearBits ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG NumberToClear ); NTSYSAPI VOID NTAPI RtlSetBits ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG NumberToSet ); // // The following routine locates a set of contiguous regions of clear // bits within the bitmap. The caller specifies whether to return the // longest runs or just the first found lcoated. The following structure is // used to denote a contiguous run of bits. The two routines return an array // of this structure, one for each run located. // typedef struct _RTL_BITMAP_RUN { ULONG StartingIndex; ULONG NumberOfBits; } RTL_BITMAP_RUN; typedef RTL_BITMAP_RUN *PRTL_BITMAP_RUN; NTSYSAPI ULONG NTAPI RtlFindClearRuns ( PRTL_BITMAP BitMapHeader, PRTL_BITMAP_RUN RunArray, ULONG SizeOfRunArray, BOOLEAN LocateLongestRuns ); // // The following routine locates the longest contiguous region of // clear bits within the bitmap. The returned starting index value // denotes the first contiguous region located satisfying our requirements // The return value is the length (in bits) of the longest region found. // NTSYSAPI ULONG NTAPI RtlFindLongestRunClear ( PRTL_BITMAP BitMapHeader, PULONG StartingIndex ); // // The following routine locates the first contiguous region of // clear bits within the bitmap. The returned starting index value // denotes the first contiguous region located satisfying our requirements // The return value is the length (in bits) of the region found. // NTSYSAPI ULONG NTAPI RtlFindFirstRunClear ( PRTL_BITMAP BitMapHeader, PULONG StartingIndex ); // // The following macro returns the value of the bit stored within the // bitmap at the specified location. If the bit is set a value of 1 is // returned otherwise a value of 0 is returned. // // ULONG // RtlCheckBit ( // PRTL_BITMAP BitMapHeader, // ULONG BitPosition // ); // // // To implement CheckBit the macro retrieves the longword containing the // bit in question, shifts the longword to get the bit in question into the // low order bit position and masks out all other bits. // #define RtlCheckBit(BMH,BP) ((((BMH)->Buffer[(BP) / 32]) >> ((BP) % 32)) & 0x1) // // The following two procedures return to the caller the total number of // clear or set bits within the specified bitmap. // NTSYSAPI ULONG NTAPI RtlNumberOfClearBits ( PRTL_BITMAP BitMapHeader ); NTSYSAPI ULONG NTAPI RtlNumberOfSetBits ( PRTL_BITMAP BitMapHeader ); // // The following two procedures return to the caller a boolean value // indicating if the specified range of bits are all clear or set. // NTSYSAPI BOOLEAN NTAPI RtlAreBitsClear ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG Length ); NTSYSAPI BOOLEAN NTAPI RtlAreBitsSet ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG Length ); NTSYSAPI ULONG NTAPI RtlFindNextForwardRunClear ( IN PRTL_BITMAP BitMapHeader, IN ULONG FromIndex, IN PULONG StartingRunIndex ); NTSYSAPI ULONG NTAPI RtlFindLastBackwardRunClear ( IN PRTL_BITMAP BitMapHeader, IN ULONG FromIndex, IN PULONG StartingRunIndex ); // // The following two procedures return to the caller a value indicating // the position within a ULONGLONG of the most or least significant non-zero // bit. A value of zero results in a return value of -1. // NTSYSAPI CCHAR NTAPI RtlFindLeastSignificantBit ( IN ULONGLONG Set ); NTSYSAPI CCHAR NTAPI RtlFindMostSignificantBit ( IN ULONGLONG Set ); // // BOOLEAN // RtlEqualLuid( // PLUID L1, // PLUID L2 // ); #define RtlEqualLuid(L1, L2) (((L1)->LowPart == (L2)->LowPart) && \ ((L1)->HighPart == (L2)->HighPart)) // // BOOLEAN // RtlIsZeroLuid( // PLUID L1 // ); // #define RtlIsZeroLuid(L1) ((BOOLEAN) (((L1)->LowPart | (L1)->HighPart) == 0)) #if !defined(MIDL_PASS) FORCEINLINE LUID NTAPI RtlConvertLongToLuid( LONG Long ) { LUID TempLuid; LARGE_INTEGER TempLi; TempLi.QuadPart = Long; TempLuid.LowPart = TempLi.LowPart; TempLuid.HighPart = TempLi.HighPart; return(TempLuid); } FORCEINLINE LUID NTAPI RtlConvertUlongToLuid( ULONG Ulong ) { LUID TempLuid; TempLuid.LowPart = Ulong; TempLuid.HighPart = 0; return(TempLuid); } #endif NTSYSAPI VOID NTAPI RtlMapGenericMask( PACCESS_MASK AccessMask, PGENERIC_MAPPING GenericMapping ); // // SecurityDescriptor RTL routine definitions // NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor, ULONG Revision ); NTSYSAPI BOOLEAN NTAPI RtlValidSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor ); NTSYSAPI ULONG NTAPI RtlLengthSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor ); NTSYSAPI BOOLEAN NTAPI RtlValidRelativeSecurityDescriptor ( IN PSECURITY_DESCRIPTOR SecurityDescriptorInput, IN ULONG SecurityDescriptorLength, IN SECURITY_INFORMATION RequiredInformation ); NTSYSAPI NTSTATUS NTAPI RtlSetDaclSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor, BOOLEAN DaclPresent, PACL Dacl, BOOLEAN DaclDefaulted ); // // Range list package // typedef struct _RTL_RANGE { // // The start of the range // ULONGLONG Start; // Read only // // The end of the range // ULONGLONG End; // Read only // // Data the user passed in when they created the range // PVOID UserData; // Read/Write // // The owner of the range // PVOID Owner; // Read/Write // // User defined flags the user specified when they created the range // UCHAR Attributes; // Read/Write // // Flags (RTL_RANGE_*) // UCHAR Flags; // Read only } RTL_RANGE, *PRTL_RANGE; #define RTL_RANGE_SHARED 0x01 #define RTL_RANGE_CONFLICT 0x02 typedef struct _RTL_RANGE_LIST { // // The list of ranges // LIST_ENTRY ListHead; // // These always come in useful // ULONG Flags; // use RANGE_LIST_FLAG_* // // The number of entries in the list // ULONG Count; // // Every time an add/delete operation is performed on the list this is // incremented. It is checked during iteration to ensure that the list // hasn't changed between GetFirst/GetNext or GetNext/GetNext calls // ULONG Stamp; } RTL_RANGE_LIST, *PRTL_RANGE_LIST; typedef struct _RANGE_LIST_ITERATOR { PLIST_ENTRY RangeListHead; PLIST_ENTRY MergedHead; PVOID Current; ULONG Stamp; } RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR; NTSYSAPI VOID NTAPI RtlInitializeRangeList( IN OUT PRTL_RANGE_LIST RangeList ); NTSYSAPI VOID NTAPI RtlFreeRangeList( IN PRTL_RANGE_LIST RangeList ); NTSYSAPI NTSTATUS NTAPI RtlCopyRangeList( OUT PRTL_RANGE_LIST CopyRangeList, IN PRTL_RANGE_LIST RangeList ); #define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001 #define RTL_RANGE_LIST_ADD_SHARED 0x00000002 NTSYSAPI NTSTATUS NTAPI RtlAddRange( IN OUT PRTL_RANGE_LIST RangeList, IN ULONGLONG Start, IN ULONGLONG End, IN UCHAR Attributes, IN ULONG Flags, IN PVOID UserData, OPTIONAL IN PVOID Owner OPTIONAL ); NTSYSAPI NTSTATUS NTAPI RtlDeleteRange( IN OUT PRTL_RANGE_LIST RangeList, IN ULONGLONG Start, IN ULONGLONG End, IN PVOID Owner ); NTSYSAPI NTSTATUS NTAPI RtlDeleteOwnersRanges( IN OUT PRTL_RANGE_LIST RangeList, IN PVOID Owner ); #define RTL_RANGE_LIST_SHARED_OK 0x00000001 #define RTL_RANGE_LIST_NULL_CONFLICT_OK 0x00000002 typedef BOOLEAN (*PRTL_CONFLICT_RANGE_CALLBACK) ( IN PVOID Context, IN PRTL_RANGE Range ); NTSYSAPI NTSTATUS NTAPI RtlFindRange( IN PRTL_RANGE_LIST RangeList, IN ULONGLONG Minimum, IN ULONGLONG Maximum, IN ULONG Length, IN ULONG Alignment, IN ULONG Flags, IN UCHAR AttributeAvailableMask, IN PVOID Context OPTIONAL, IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, OUT PULONGLONG Start ); NTSYSAPI NTSTATUS NTAPI RtlIsRangeAvailable( IN PRTL_RANGE_LIST RangeList, IN ULONGLONG Start, IN ULONGLONG End, IN ULONG Flags, IN UCHAR AttributeAvailableMask, IN PVOID Context OPTIONAL, IN PRTL_CONFLICT_RANGE_CALLBACK Callback OPTIONAL, OUT PBOOLEAN Available ); #define FOR_ALL_RANGES(RangeList, Iterator, Current) \ for (RtlGetFirstRange((RangeList), (Iterator), &(Current)); \ (Current) != NULL; \ RtlGetNextRange((Iterator), &(Current), TRUE) \ ) #define FOR_ALL_RANGES_BACKWARDS(RangeList, Iterator, Current) \ for (RtlGetLastRange((RangeList), (Iterator), &(Current)); \ (Current) != NULL; \ RtlGetNextRange((Iterator), &(Current), FALSE) \ ) NTSYSAPI NTSTATUS NTAPI RtlGetFirstRange( IN PRTL_RANGE_LIST RangeList, OUT PRTL_RANGE_LIST_ITERATOR Iterator, OUT PRTL_RANGE *Range ); NTSYSAPI NTSTATUS NTAPI RtlGetLastRange( IN PRTL_RANGE_LIST RangeList, OUT PRTL_RANGE_LIST_ITERATOR Iterator, OUT PRTL_RANGE *Range ); NTSYSAPI NTSTATUS NTAPI RtlGetNextRange( IN OUT PRTL_RANGE_LIST_ITERATOR Iterator, OUT PRTL_RANGE *Range, IN BOOLEAN MoveForwards ); #define RTL_RANGE_LIST_MERGE_IF_CONFLICT RTL_RANGE_LIST_ADD_IF_CONFLICT NTSYSAPI NTSTATUS NTAPI RtlMergeRangeLists( OUT PRTL_RANGE_LIST MergedRangeList, IN PRTL_RANGE_LIST RangeList1, IN PRTL_RANGE_LIST RangeList2, IN ULONG Flags ); NTSYSAPI NTSTATUS NTAPI RtlInvertRangeList( OUT PRTL_RANGE_LIST InvertedRangeList, IN PRTL_RANGE_LIST RangeList ); // end_nthal // begin_wdm // // Byte swap routines. These are used to convert from little-endian to // big-endian and vice-versa. // #if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || ((defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_FULL_VER > 13009175)) #ifdef __cplusplus extern "C" { #endif unsigned short __cdecl _byteswap_ushort(unsigned short); unsigned long __cdecl _byteswap_ulong (unsigned long); unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64); #ifdef __cplusplus } #endif #pragma intrinsic(_byteswap_ushort) #pragma intrinsic(_byteswap_ulong) #pragma intrinsic(_byteswap_uint64) #define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x)) #define RtlUlongByteSwap(_x) _byteswap_ulong((_x)) #define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x)) #else USHORT FASTCALL RtlUshortByteSwap( IN USHORT Source ); ULONG FASTCALL RtlUlongByteSwap( IN ULONG Source ); ULONGLONG FASTCALL RtlUlonglongByteSwap( IN ULONGLONG Source ); #endif // end_wdm // begin_ntifs // // Routine for converting from a volume device object to a DOS name. // NTSYSAPI NTSTATUS NTAPI RtlVolumeDeviceToDosName( IN PVOID VolumeDeviceObject, OUT PUNICODE_STRING DosName ); typedef struct _OSVERSIONINFOA { ULONG dwOSVersionInfoSize; ULONG dwMajorVersion; ULONG dwMinorVersion; ULONG dwBuildNumber; ULONG dwPlatformId; CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage } OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA; typedef struct _OSVERSIONINFOW { ULONG dwOSVersionInfoSize; ULONG dwMajorVersion; ULONG dwMinorVersion; ULONG dwBuildNumber; ULONG dwPlatformId; WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage } OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW; #ifdef UNICODE typedef OSVERSIONINFOW OSVERSIONINFO; typedef POSVERSIONINFOW POSVERSIONINFO; typedef LPOSVERSIONINFOW LPOSVERSIONINFO; #else typedef OSVERSIONINFOA OSVERSIONINFO; typedef POSVERSIONINFOA POSVERSIONINFO; typedef LPOSVERSIONINFOA LPOSVERSIONINFO; #endif // UNICODE typedef struct _OSVERSIONINFOEXA { ULONG dwOSVersionInfoSize; ULONG dwMajorVersion; ULONG dwMinorVersion; ULONG dwBuildNumber; ULONG dwPlatformId; CHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage USHORT wServicePackMajor; USHORT wServicePackMinor; USHORT wSuiteMask; UCHAR wProductType; UCHAR wReserved; } OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA; typedef struct _OSVERSIONINFOEXW { ULONG dwOSVersionInfoSize; ULONG dwMajorVersion; ULONG dwMinorVersion; ULONG dwBuildNumber; ULONG dwPlatformId; WCHAR szCSDVersion[ 128 ]; // Maintenance string for PSS usage USHORT wServicePackMajor; USHORT wServicePackMinor; USHORT wSuiteMask; UCHAR wProductType; UCHAR wReserved; } OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW; #ifdef UNICODE typedef OSVERSIONINFOEXW OSVERSIONINFOEX; typedef POSVERSIONINFOEXW POSVERSIONINFOEX; typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX; #else typedef OSVERSIONINFOEXA OSVERSIONINFOEX; typedef POSVERSIONINFOEXA POSVERSIONINFOEX; typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX; #endif // UNICODE // // RtlVerifyVersionInfo() conditions // #define VER_EQUAL 1 #define VER_GREATER 2 #define VER_GREATER_EQUAL 3 #define VER_LESS 4 #define VER_LESS_EQUAL 5 #define VER_AND 6 #define VER_OR 7 #define VER_CONDITION_MASK 7 #define VER_NUM_BITS_PER_CONDITION_MASK 3 // // RtlVerifyVersionInfo() type mask bits // #define VER_MINORVERSION 0x0000001 #define VER_MAJORVERSION 0x0000002 #define VER_BUILDNUMBER 0x0000004 #define VER_PLATFORMID 0x0000008 #define VER_SERVICEPACKMINOR 0x0000010 #define VER_SERVICEPACKMAJOR 0x0000020 #define VER_SUITENAME 0x0000040 #define VER_PRODUCT_TYPE 0x0000080 // // RtlVerifyVersionInfo() os product type values // #define VER_NT_WORKSTATION 0x0000001 #define VER_NT_DOMAIN_CONTROLLER 0x0000002 #define VER_NT_SERVER 0x0000003 // // dwPlatformId defines: // #define VER_PLATFORM_WIN32s 0 #define VER_PLATFORM_WIN32_WINDOWS 1 #define VER_PLATFORM_WIN32_NT 2 // // // VerifyVersionInfo() macro to set the condition mask // // For documentation sakes here's the old version of the macro that got // changed to call an API // #define VER_SET_CONDITION(_m_,_t_,_c_) _m_=(_m_|(_c_<<(1<<_t_))) // #define VER_SET_CONDITION(_m_,_t_,_c_) \ ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_))) ULONGLONG NTAPI VerSetConditionMask( IN ULONGLONG ConditionMask, IN ULONG TypeMask, IN UCHAR Condition ); // // end_winnt // NTSYSAPI NTSTATUS RtlGetVersion( OUT PRTL_OSVERSIONINFOW lpVersionInformation ); NTSYSAPI NTSTATUS RtlVerifyVersionInfo( IN PRTL_OSVERSIONINFOEXW VersionInfo, IN ULONG TypeMask, IN ULONGLONG ConditionMask ); // // // Interlocked bit manipulation interfaces // NTSYSAPI ULONG FASTCALL RtlInterlockedSetBits ( IN OUT PULONG Flags, IN ULONG Flag ); NTSYSAPI ULONG FASTCALL RtlInterlockedClearBits ( IN OUT PULONG Flags, IN ULONG Flag ); NTSYSAPI ULONG FASTCALL RtlInterlockedSetClearBits ( IN OUT PULONG Flags, IN ULONG sFlag, IN ULONG cFlag ); // // These are for when the compiler has fixes in for these intrinsics // #if (_MSC_FULL_VER > 13009037) || !defined (_M_IX86) #define RtlInterlockedSetBits(Flags, Flag) \ InterlockedOr ((PLONG) (Flags), Flag) #define RtlInterlockedAndBits(Flags, Flag) \ InterlockedAnd ((PLONG) (Flags), Flag) #define RtlInterlockedClearBits(Flags, Flag) \ RtlInterlockedAndBits (Flags, ~(Flag)) #define RtlInterlockedXorBits(Flags, Flag) \ InterlockedXor (Flags, Flag) #define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedSetBits (Flags, Flag) #define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedAndBits (Flags, Flag) #define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \ RtlInterlockedAndBitsDiscardReturn (Flags, ~(Flag)) #else #if defined (_X86_) && !defined(MIDL_PASS) FORCEINLINE VOID RtlInterlockedSetBitsDiscardReturn( IN OUT PULONG Flags, IN ULONG Flag ) { __asm { mov ecx, Flags mov eax, Flag #if defined (NT_UP) or [ecx], eax #else lock or [ecx], eax #endif } } FORCEINLINE VOID RtlInterlockedAndBitsDiscardReturn( IN OUT PULONG Flags, IN ULONG Flag ) { __asm { mov ecx, Flags mov eax, Flag #if defined (NT_UP) and [ecx], eax #else lock and [ecx], eax #endif } } #define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedAndBitsDiscardReturn ((Flags), ~(Flag)) #else #define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedSetBits ((Flags), (Flag)) #define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedClearBits ((Flags), (Flag)) #endif /* #if defined(_X86_) && !defined(MIDL_PASS) */ #endif // // Component name filter id enumeration and levels. // #define DPFLTR_ERROR_LEVEL 0 #define DPFLTR_WARNING_LEVEL 1 #define DPFLTR_TRACE_LEVEL 2 #define DPFLTR_INFO_LEVEL 3 #define DPFLTR_MASK 0x80000000 typedef enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID = 0, DPFLTR_SMSS_ID = 1, DPFLTR_SETUP_ID = 2, DPFLTR_NTFS_ID = 3, DPFLTR_FSTUB_ID = 4, DPFLTR_CRASHDUMP_ID = 5, DPFLTR_CDAUDIO_ID = 6, DPFLTR_CDROM_ID = 7, DPFLTR_CLASSPNP_ID = 8, DPFLTR_DISK_ID = 9, DPFLTR_REDBOOK_ID = 10, DPFLTR_STORPROP_ID = 11, DPFLTR_SCSIPORT_ID = 12, DPFLTR_SCSIMINIPORT_ID = 13, DPFLTR_CONFIG_ID = 14, DPFLTR_I8042PRT_ID = 15, DPFLTR_SERMOUSE_ID = 16, DPFLTR_LSERMOUS_ID = 17, DPFLTR_KBDHID_ID = 18, DPFLTR_MOUHID_ID = 19, DPFLTR_KBDCLASS_ID = 20, DPFLTR_MOUCLASS_ID = 21, DPFLTR_TWOTRACK_ID = 22, DPFLTR_WMILIB_ID = 23, DPFLTR_ACPI_ID = 24, DPFLTR_AMLI_ID = 25, DPFLTR_HALIA64_ID = 26, DPFLTR_VIDEO_ID = 27, DPFLTR_SVCHOST_ID = 28, DPFLTR_VIDEOPRT_ID = 29, DPFLTR_TCPIP_ID = 30, DPFLTR_DMSYNTH_ID = 31, DPFLTR_NTOSPNP_ID = 32, DPFLTR_FASTFAT_ID = 33, DPFLTR_SAMSS_ID = 34, DPFLTR_PNPMGR_ID = 35, DPFLTR_NETAPI_ID = 36, DPFLTR_SCSERVER_ID = 37, DPFLTR_SCCLIENT_ID = 38, DPFLTR_SERIAL_ID = 39, DPFLTR_SERENUM_ID = 40, DPFLTR_UHCD_ID = 41, DPFLTR_BOOTOK_ID = 42, DPFLTR_BOOTVRFY_ID = 43, DPFLTR_RPCPROXY_ID = 44, DPFLTR_AUTOCHK_ID = 45, DPFLTR_DCOMSS_ID = 46, DPFLTR_UNIMODEM_ID = 47, DPFLTR_SIS_ID = 48, DPFLTR_FLTMGR_ID = 49, DPFLTR_WMICORE_ID = 50, DPFLTR_BURNENG_ID = 51, DPFLTR_IMAPI_ID = 52, DPFLTR_SXS_ID = 53, DPFLTR_FUSION_ID = 54, DPFLTR_IDLETASK_ID = 55, DPFLTR_SOFTPCI_ID = 56, DPFLTR_TAPE_ID = 57, DPFLTR_MCHGR_ID = 58, DPFLTR_IDEP_ID = 59, DPFLTR_PCIIDE_ID = 60, DPFLTR_FLOPPY_ID = 61, DPFLTR_FDC_ID = 62, DPFLTR_TERMSRV_ID = 63, DPFLTR_W32TIME_ID = 64, DPFLTR_PREFETCHER_ID = 65, DPFLTR_RSFILTER_ID = 66, DPFLTR_FCPORT_ID = 67, DPFLTR_PCI_ID = 68, DPFLTR_DMIO_ID = 69, DPFLTR_DMCONFIG_ID = 70, DPFLTR_DMADMIN_ID = 71, DPFLTR_WSOCKTRANSPORT_ID = 72, DPFLTR_VSS_ID = 73, DPFLTR_PNPMEM_ID = 74, DPFLTR_PROCESSOR_ID = 75, DPFLTR_DMSERVER_ID = 76, DPFLTR_SR_ID = 77, DPFLTR_INFINIBAND_ID = 78, DPFLTR_IHVDRIVER_ID = 79, DPFLTR_IHVVIDEO_ID = 80, DPFLTR_IHVAUDIO_ID = 81, DPFLTR_IHVNETWORK_ID = 82, DPFLTR_IHVSTREAMING_ID = 83, DPFLTR_IHVBUS_ID = 84, DPFLTR_HPS_ID = 85, DPFLTR_RTLTHREADPOOL_ID = 86, DPFLTR_LDR_ID = 87, DPFLTR_TCPIP6_ID = 88, DPFLTR_ISAPNP_ID = 89, DPFLTR_SHPC_ID = 90, DPFLTR_STORPORT_ID = 91, DPFLTR_STORMINIPORT_ID = 92, DPFLTR_PRINTSPOOLER_ID = 93, DPFLTR_ENDOFTABLE_ID } DPFLTR_TYPE; // // Define the various device type values. Note that values used by Microsoft // Corporation are in the range 0-32767, and 32768-65535 are reserved for use // by customers. // #define DEVICE_TYPE ULONG #define FILE_DEVICE_BEEP 0x00000001 #define FILE_DEVICE_CD_ROM 0x00000002 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 #define FILE_DEVICE_CONTROLLER 0x00000004 #define FILE_DEVICE_DATALINK 0x00000005 #define FILE_DEVICE_DFS 0x00000006 #define FILE_DEVICE_DISK 0x00000007 #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 #define FILE_DEVICE_FILE_SYSTEM 0x00000009 #define FILE_DEVICE_INPORT_PORT 0x0000000a #define FILE_DEVICE_KEYBOARD 0x0000000b #define FILE_DEVICE_MAILSLOT 0x0000000c #define FILE_DEVICE_MIDI_IN 0x0000000d #define FILE_DEVICE_MIDI_OUT 0x0000000e #define FILE_DEVICE_MOUSE 0x0000000f #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 #define FILE_DEVICE_NAMED_PIPE 0x00000011 #define FILE_DEVICE_NETWORK 0x00000012 #define FILE_DEVICE_NETWORK_BROWSER 0x00000013 #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 #define FILE_DEVICE_NULL 0x00000015 #define FILE_DEVICE_PARALLEL_PORT 0x00000016 #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 #define FILE_DEVICE_PRINTER 0x00000018 #define FILE_DEVICE_SCANNER 0x00000019 #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a #define FILE_DEVICE_SERIAL_PORT 0x0000001b #define FILE_DEVICE_SCREEN 0x0000001c #define FILE_DEVICE_SOUND 0x0000001d #define FILE_DEVICE_STREAMS 0x0000001e #define FILE_DEVICE_TAPE 0x0000001f #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 #define FILE_DEVICE_TRANSPORT 0x00000021 #define FILE_DEVICE_UNKNOWN 0x00000022 #define FILE_DEVICE_VIDEO 0x00000023 #define FILE_DEVICE_VIRTUAL_DISK 0x00000024 #define FILE_DEVICE_WAVE_IN 0x00000025 #define FILE_DEVICE_WAVE_OUT 0x00000026 #define FILE_DEVICE_8042_PORT 0x00000027 #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 #define FILE_DEVICE_BATTERY 0x00000029 #define FILE_DEVICE_BUS_EXTENDER 0x0000002a #define FILE_DEVICE_MODEM 0x0000002b #define FILE_DEVICE_VDM 0x0000002c #define FILE_DEVICE_MASS_STORAGE 0x0000002d #define FILE_DEVICE_SMB 0x0000002e #define FILE_DEVICE_KS 0x0000002f #define FILE_DEVICE_CHANGER 0x00000030 #define FILE_DEVICE_SMARTCARD 0x00000031 #define FILE_DEVICE_ACPI 0x00000032 #define FILE_DEVICE_DVD 0x00000033 #define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034 #define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035 #define FILE_DEVICE_DFS_VOLUME 0x00000036 #define FILE_DEVICE_SERENUM 0x00000037 #define FILE_DEVICE_TERMSRV 0x00000038 #define FILE_DEVICE_KSEC 0x00000039 #define FILE_DEVICE_FIPS 0x0000003A // // Macro definition for defining IOCTL and FSCTL function control codes. Note // that function codes 0-2047 are reserved for Microsoft Corporation, and // 2048-4095 are reserved for customers. // #define CTL_CODE( DeviceType, Function, Method, Access ) ( \ ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \ ) // // Macro to extract device type out of the device io control code // #define DEVICE_TYPE_FROM_CTL_CODE(ctrlCode) (((ULONG)(ctrlCode & 0xffff0000)) >> 16) // // Define the method codes for how buffers are passed for I/O and FS controls // #define METHOD_BUFFERED 0 #define METHOD_IN_DIRECT 1 #define METHOD_OUT_DIRECT 2 #define METHOD_NEITHER 3 // // Define the access check value for any access // // // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these // constants *MUST* always be in sync. // // // FILE_SPECIAL_ACCESS is checked by the NT I/O system the same as FILE_ANY_ACCESS. // The file systems, however, may add additional access checks for I/O and FS controls // that use this value. // #define FILE_ANY_ACCESS 0 #define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS) #define FILE_READ_ACCESS ( 0x0001 ) // file & pipe #define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe // begin_winnt // // Define access rights to files and directories // // // The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in // devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these // constants *MUST* always be in sync. // The values are redefined in devioctl.h because they must be available to // both DOS and NT. // #define FILE_READ_DATA ( 0x0001 ) // file & pipe #define FILE_LIST_DIRECTORY ( 0x0001 ) // directory #define FILE_WRITE_DATA ( 0x0002 ) // file & pipe #define FILE_ADD_FILE ( 0x0002 ) // directory #define FILE_APPEND_DATA ( 0x0004 ) // file #define FILE_ADD_SUBDIRECTORY ( 0x0004 ) // directory #define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) // named pipe #define FILE_READ_EA ( 0x0008 ) // file & directory #define FILE_WRITE_EA ( 0x0010 ) // file & directory #define FILE_EXECUTE ( 0x0020 ) // file #define FILE_TRAVERSE ( 0x0020 ) // directory #define FILE_DELETE_CHILD ( 0x0040 ) // directory #define FILE_READ_ATTRIBUTES ( 0x0080 ) // all #define FILE_WRITE_ATTRIBUTES ( 0x0100 ) // all #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\ FILE_READ_DATA |\ FILE_READ_ATTRIBUTES |\ FILE_READ_EA |\ SYNCHRONIZE) #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ FILE_WRITE_DATA |\ FILE_WRITE_ATTRIBUTES |\ FILE_WRITE_EA |\ FILE_APPEND_DATA |\ SYNCHRONIZE) #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ FILE_READ_ATTRIBUTES |\ FILE_EXECUTE |\ SYNCHRONIZE) // end_winnt // // Define share access rights to files and directories // #define FILE_SHARE_READ 0x00000001 // winnt #define FILE_SHARE_WRITE 0x00000002 // winnt #define FILE_SHARE_DELETE 0x00000004 // winnt #define FILE_SHARE_VALID_FLAGS 0x00000007 // // Define the file attributes values // // Note: 0x00000008 is reserved for use for the old DOS VOLID (volume ID) // and is therefore not considered valid in NT. // // Note: 0x00000010 is reserved for use for the old DOS SUBDIRECTORY flag // and is therefore not considered valid in NT. This flag has // been disassociated with file attributes since the other flags are // protected with READ_ and WRITE_ATTRIBUTES access to the file. // // Note: Note also that the order of these flags is set to allow both the // FAT and the Pinball File Systems to directly set the attributes // flags in attributes words without having to pick each flag out // individually. The order of these flags should not be changed! // #define FILE_ATTRIBUTE_READONLY 0x00000001 // winnt #define FILE_ATTRIBUTE_HIDDEN 0x00000002 // winnt #define FILE_ATTRIBUTE_SYSTEM 0x00000004 // winnt //OLD DOS VOLID 0x00000008 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 // winnt #define FILE_ATTRIBUTE_ARCHIVE 0x00000020 // winnt #define FILE_ATTRIBUTE_DEVICE 0x00000040 // winnt #define FILE_ATTRIBUTE_NORMAL 0x00000080 // winnt #define FILE_ATTRIBUTE_TEMPORARY 0x00000100 // winnt #define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 // winnt #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 // winnt #define FILE_ATTRIBUTE_COMPRESSED 0x00000800 // winnt #define FILE_ATTRIBUTE_OFFLINE 0x00001000 // winnt #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 // winnt #define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 // winnt #define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7 #define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7 // // Define the create disposition values // #define FILE_SUPERSEDE 0x00000000 #define FILE_OPEN 0x00000001 #define FILE_CREATE 0x00000002 #define FILE_OPEN_IF 0x00000003 #define FILE_OVERWRITE 0x00000004 #define FILE_OVERWRITE_IF 0x00000005 #define FILE_MAXIMUM_DISPOSITION 0x00000005 // // Define the create/open option flags // #define FILE_DIRECTORY_FILE 0x00000001 #define FILE_WRITE_THROUGH 0x00000002 #define FILE_SEQUENTIAL_ONLY 0x00000004 #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 #define FILE_NON_DIRECTORY_FILE 0x00000040 #define FILE_CREATE_TREE_CONNECTION 0x00000080 #define FILE_COMPLETE_IF_OPLOCKED 0x00000100 #define FILE_NO_EA_KNOWLEDGE 0x00000200 #define FILE_OPEN_FOR_RECOVERY 0x00000400 #define FILE_RANDOM_ACCESS 0x00000800 #define FILE_DELETE_ON_CLOSE 0x00001000 #define FILE_OPEN_BY_FILE_ID 0x00002000 #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 #define FILE_NO_COMPRESSION 0x00008000 #define FILE_RESERVE_OPFILTER 0x00100000 #define FILE_OPEN_REPARSE_POINT 0x00200000 #define FILE_OPEN_NO_RECALL 0x00400000 #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 #define FILE_COPY_STRUCTURED_STORAGE 0x00000041 #define FILE_STRUCTURED_STORAGE 0x00000441 #define FILE_VALID_OPTION_FLAGS 0x00ffffff #define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032 #define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032 #define FILE_VALID_SET_FLAGS 0x00000036 // // Define the I/O status information return values for NtCreateFile/NtOpenFile // #define FILE_SUPERSEDED 0x00000000 #define FILE_OPENED 0x00000001 #define FILE_CREATED 0x00000002 #define FILE_OVERWRITTEN 0x00000003 #define FILE_EXISTS 0x00000004 #define FILE_DOES_NOT_EXIST 0x00000005 // // Define special ByteOffset parameters for read and write operations // #define FILE_WRITE_TO_END_OF_FILE 0xffffffff #define FILE_USE_FILE_POINTER_POSITION 0xfffffffe // // Define alignment requirement values // #define FILE_BYTE_ALIGNMENT 0x00000000 #define FILE_WORD_ALIGNMENT 0x00000001 #define FILE_LONG_ALIGNMENT 0x00000003 #define FILE_QUAD_ALIGNMENT 0x00000007 #define FILE_OCTA_ALIGNMENT 0x0000000f #define FILE_32_BYTE_ALIGNMENT 0x0000001f #define FILE_64_BYTE_ALIGNMENT 0x0000003f #define FILE_128_BYTE_ALIGNMENT 0x0000007f #define FILE_256_BYTE_ALIGNMENT 0x000000ff #define FILE_512_BYTE_ALIGNMENT 0x000001ff // // Define the maximum length of a filename string // #define MAXIMUM_FILENAME_LENGTH 256 // // Define the various device characteristics flags // #define FILE_REMOVABLE_MEDIA 0x00000001 #define FILE_READ_ONLY_DEVICE 0x00000002 #define FILE_FLOPPY_DISKETTE 0x00000004 #define FILE_WRITE_ONCE_MEDIA 0x00000008 #define FILE_REMOTE_DEVICE 0x00000010 #define FILE_DEVICE_IS_MOUNTED 0x00000020 #define FILE_VIRTUAL_VOLUME 0x00000040 #define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080 #define FILE_DEVICE_SECURE_OPEN 0x00000100 #define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800 // end_wdm // // The FILE_EXPECT flags will only exist for WinXP. After that they will be // ignored and an IRP will be sent in their place. // #define FILE_CHARACTERISTICS_EXPECT_ORDERLY_REMOVAL 0x00000200 #define FILE_CHARACTERISTICS_EXPECT_SURPRISE_REMOVAL 0x00000300 #define FILE_CHARACTERISTICS_REMOVAL_POLICY_MASK 0x00000300 // // flags specified here will be propagated up and down a device stack // after FDO and all filter devices are added, but before the device // stack is started // #define FILE_CHARACTERISTICS_PROPAGATED ( FILE_REMOVABLE_MEDIA | \ FILE_READ_ONLY_DEVICE | \ FILE_FLOPPY_DISKETTE | \ FILE_WRITE_ONCE_MEDIA | \ FILE_DEVICE_SECURE_OPEN ) // // Define the base asynchronous I/O argument types // typedef struct _IO_STATUS_BLOCK { union { NTSTATUS Status; PVOID Pointer; }; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; #if defined(_WIN64) typedef struct _IO_STATUS_BLOCK32 { NTSTATUS Status; ULONG Information; } IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32; #endif // // Define an Asynchronous Procedure Call from I/O viewpoint // typedef VOID (NTAPI *PIO_APC_ROUTINE) ( IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved ); #define PIO_APC_ROUTINE_DEFINED // // Define the file information class values // // WARNING: The order of the following values are assumed by the I/O system. // Any changes made here should be reflected there as well. // typedef enum _FILE_INFORMATION_CLASS { // end_wdm FileDirectoryInformation = 1, FileFullDirectoryInformation, // 2 FileBothDirectoryInformation, // 3 FileBasicInformation, // 4 wdm FileStandardInformation, // 5 wdm FileInternalInformation, // 6 FileEaInformation, // 7 FileAccessInformation, // 8 FileNameInformation, // 9 FileRenameInformation, // 10 FileLinkInformation, // 11 FileNamesInformation, // 12 FileDispositionInformation, // 13 FilePositionInformation, // 14 wdm FileFullEaInformation, // 15 FileModeInformation, // 16 FileAlignmentInformation, // 17 FileAllInformation, // 18 FileAllocationInformation, // 19 FileEndOfFileInformation, // 20 wdm FileAlternateNameInformation, // 21 FileStreamInformation, // 22 FilePipeInformation, // 23 FilePipeLocalInformation, // 24 FilePipeRemoteInformation, // 25 FileMailslotQueryInformation, // 26 FileMailslotSetInformation, // 27 FileCompressionInformation, // 28 FileObjectIdInformation, // 29 FileCompletionInformation, // 30 FileMoveClusterInformation, // 31 FileQuotaInformation, // 32 FileReparsePointInformation, // 33 FileNetworkOpenInformation, // 34 FileAttributeTagInformation, // 35 FileTrackingInformation, // 36 FileIdBothDirectoryInformation, // 37 FileIdFullDirectoryInformation, // 38 FileValidDataLengthInformation, // 39 FileShortNameInformation, // 40 FileMaximumInformation // begin_wdm } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; // // Define the various structures which are returned on query operations // typedef struct _FILE_BASIC_INFORMATION { LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; ULONG FileAttributes; } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION; typedef struct _FILE_STANDARD_INFORMATION { LARGE_INTEGER AllocationSize; LARGE_INTEGER EndOfFile; ULONG NumberOfLinks; BOOLEAN DeletePending; BOOLEAN Directory; } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION; typedef struct _FILE_POSITION_INFORMATION { LARGE_INTEGER CurrentByteOffset; } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION; typedef struct _FILE_ALIGNMENT_INFORMATION { ULONG AlignmentRequirement; } FILE_ALIGNMENT_INFORMATION, *PFILE_ALIGNMENT_INFORMATION; typedef struct _FILE_NAME_INFORMATION { ULONG FileNameLength; WCHAR FileName[1]; } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION; typedef struct _FILE_NETWORK_OPEN_INFORMATION { LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER AllocationSize; LARGE_INTEGER EndOfFile; ULONG FileAttributes; } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION; typedef struct _FILE_ATTRIBUTE_TAG_INFORMATION { ULONG FileAttributes; ULONG ReparseTag; } FILE_ATTRIBUTE_TAG_INFORMATION, *PFILE_ATTRIBUTE_TAG_INFORMATION; typedef struct _FILE_DISPOSITION_INFORMATION { BOOLEAN DeleteFile; } FILE_DISPOSITION_INFORMATION, *PFILE_DISPOSITION_INFORMATION; typedef struct _FILE_END_OF_FILE_INFORMATION { LARGE_INTEGER EndOfFile; } FILE_END_OF_FILE_INFORMATION, *PFILE_END_OF_FILE_INFORMATION; typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION { LARGE_INTEGER ValidDataLength; } FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION; typedef struct _FILE_FULL_EA_INFORMATION { ULONG NextEntryOffset; UCHAR Flags; UCHAR EaNameLength; USHORT EaValueLength; CHAR EaName[1]; } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION; // // Define the file system information class values // // WARNING: The order of the following values are assumed by the I/O system. // Any changes made here should be reflected there as well. typedef enum _FSINFOCLASS { FileFsVolumeInformation = 1, FileFsLabelInformation, // 2 FileFsSizeInformation, // 3 FileFsDeviceInformation, // 4 FileFsAttributeInformation, // 5 FileFsControlInformation, // 6 FileFsFullSizeInformation, // 7 FileFsObjectIdInformation, // 8 FileFsDriverPathInformation, // 9 FileFsMaximumInformation } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; typedef struct _FILE_FS_DEVICE_INFORMATION { DEVICE_TYPE DeviceType; ULONG Characteristics; } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION; // // Define segement buffer structure for scatter/gather read/write. // typedef union _FILE_SEGMENT_ELEMENT { PVOID64 Buffer; ULONGLONG Alignment; }FILE_SEGMENT_ELEMENT, *PFILE_SEGMENT_ELEMENT; // // Define the I/O bus interface types. // typedef enum _INTERFACE_TYPE { InterfaceTypeUndefined = -1, Internal, Isa, Eisa, MicroChannel, TurboChannel, PCIBus, VMEBus, NuBus, PCMCIABus, CBus, MPIBus, MPSABus, ProcessorInternal, InternalPowerBus, PNPISABus, PNPBus, MaximumInterfaceType }INTERFACE_TYPE, *PINTERFACE_TYPE; // // Define the DMA transfer widths. // typedef enum _DMA_WIDTH { Width8Bits, Width16Bits, Width32Bits, MaximumDmaWidth }DMA_WIDTH, *PDMA_WIDTH; // // Define DMA transfer speeds. // typedef enum _DMA_SPEED { Compatible, TypeA, TypeB, TypeC, TypeF, MaximumDmaSpeed }DMA_SPEED, *PDMA_SPEED; // // Define Interface reference/dereference routines for // Interfaces exported by IRP_MN_QUERY_INTERFACE // typedef VOID (*PINTERFACE_REFERENCE)(PVOID Context); typedef VOID (*PINTERFACE_DEREFERENCE)(PVOID Context); // end_wdm // // Define types of bus information. // typedef enum _BUS_DATA_TYPE { ConfigurationSpaceUndefined = -1, Cmos, EisaConfiguration, Pos, CbusConfiguration, PCIConfiguration, VMEConfiguration, NuBusConfiguration, PCMCIAConfiguration, MPIConfiguration, MPSAConfiguration, PNPISAConfiguration, SgiInternalConfiguration, MaximumBusDataType } BUS_DATA_TYPE, *PBUS_DATA_TYPE; // // Define I/O Driver error log packet structure. This structure is filled in // by the driver. // typedef struct _IO_ERROR_LOG_PACKET { UCHAR MajorFunctionCode; UCHAR RetryCount; USHORT DumpDataSize; USHORT NumberOfStrings; USHORT StringOffset; USHORT EventCategory; NTSTATUS ErrorCode; ULONG UniqueErrorValue; NTSTATUS FinalStatus; ULONG SequenceNumber; ULONG IoControlCode; LARGE_INTEGER DeviceOffset; ULONG DumpData[1]; }IO_ERROR_LOG_PACKET, *PIO_ERROR_LOG_PACKET; // // Define the I/O error log message. This message is sent by the error log // thread over the lpc port. // typedef struct _IO_ERROR_LOG_MESSAGE { USHORT Type; USHORT Size; USHORT DriverNameLength; LARGE_INTEGER TimeStamp; ULONG DriverNameOffset; IO_ERROR_LOG_PACKET EntryData; }IO_ERROR_LOG_MESSAGE, *PIO_ERROR_LOG_MESSAGE; // // Define the maximum message size that will be sent over the LPC to the // application reading the error log entries. // // // Regardless of LPC size restrictions, ERROR_LOG_MAXIMUM_SIZE must remain // a value that can fit in a UCHAR. // #define ERROR_LOG_LIMIT_SIZE (256-16) // // This limit, exclusive of IO_ERROR_LOG_MESSAGE_HEADER_LENGTH, also applies // to IO_ERROR_LOG_MESSAGE_LENGTH // #define IO_ERROR_LOG_MESSAGE_HEADER_LENGTH (sizeof(IO_ERROR_LOG_MESSAGE) - \ sizeof(IO_ERROR_LOG_PACKET) + \ (sizeof(WCHAR) * 40)) #define ERROR_LOG_MESSAGE_LIMIT_SIZE \ (ERROR_LOG_LIMIT_SIZE + IO_ERROR_LOG_MESSAGE_HEADER_LENGTH) // // IO_ERROR_LOG_MESSAGE_LENGTH is // min(PORT_MAXIMUM_MESSAGE_LENGTH, ERROR_LOG_MESSAGE_LIMIT_SIZE) // #define IO_ERROR_LOG_MESSAGE_LENGTH \ ((PORT_MAXIMUM_MESSAGE_LENGTH > ERROR_LOG_MESSAGE_LIMIT_SIZE) ? \ ERROR_LOG_MESSAGE_LIMIT_SIZE : \ PORT_MAXIMUM_MESSAGE_LENGTH) // // Define the maximum packet size a driver can allocate. // #define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH - \ IO_ERROR_LOG_MESSAGE_HEADER_LENGTH) #ifdef _WIN64 #define PORT_MAXIMUM_MESSAGE_LENGTH 512 #else #define PORT_MAXIMUM_MESSAGE_LENGTH 256 #endif // // Registry Specific Access Rights. // #define KEY_QUERY_VALUE (0x0001) #define KEY_SET_VALUE (0x0002) #define KEY_CREATE_SUB_KEY (0x0004) #define KEY_ENUMERATE_SUB_KEYS (0x0008) #define KEY_NOTIFY (0x0010) #define KEY_CREATE_LINK (0x0020) #define KEY_WOW64_32KEY (0x0200) #define KEY_WOW64_64KEY (0x0100) #define KEY_WOW64_RES (0x0300) #define KEY_READ ((STANDARD_RIGHTS_READ |\ KEY_QUERY_VALUE |\ KEY_ENUMERATE_SUB_KEYS |\ KEY_NOTIFY) \ & \ (~SYNCHRONIZE)) #define KEY_WRITE ((STANDARD_RIGHTS_WRITE |\ KEY_SET_VALUE |\ KEY_CREATE_SUB_KEY) \ & \ (~SYNCHRONIZE)) #define KEY_EXECUTE ((KEY_READ) \ & \ (~SYNCHRONIZE)) #define 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)) // // Open/Create Options // #define REG_OPTION_RESERVED (0x00000000L) // Parameter is reserved #define REG_OPTION_NON_VOLATILE (0x00000000L) // Key is preserved // when system is rebooted #define REG_OPTION_VOLATILE (0x00000001L) // Key is not preserved // when system is rebooted #define REG_OPTION_CREATE_LINK (0x00000002L) // Created key is a // symbolic link #define REG_OPTION_BACKUP_RESTORE (0x00000004L) // open for backup or restore // special access rules // privilege required #define REG_OPTION_OPEN_LINK (0x00000008L) // Open symbolic link #define 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) // // Key creation/open disposition // #define REG_CREATED_NEW_KEY (0x00000001L) // New Registry Key created #define REG_OPENED_EXISTING_KEY (0x00000002L) // Existing Key opened // // hive format to be used by Reg(Nt)SaveKeyEx // #define REG_STANDARD_FORMAT 1 #define REG_LATEST_FORMAT 2 #define REG_NO_COMPRESSION 4 // // Key restore flags // #define REG_WHOLE_HIVE_VOLATILE (0x00000001L) // Restore whole hive volatile #define REG_REFRESH_HIVE (0x00000002L) // Unwind changes to last flush #define REG_NO_LAZY_FLUSH (0x00000004L) // Never lazy flush this hive #define REG_FORCE_RESTORE (0x00000008L) // Force the restore process even when we have open handles on subkeys // // Key query structures // typedef struct _KEY_BASIC_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG NameLength; WCHAR Name[1]; // Variable length string } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; typedef struct _KEY_NODE_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG ClassOffset; ULONG ClassLength; ULONG NameLength; WCHAR Name[1]; // Variable length string // Class[1]; // Variable length string not declared } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; typedef struct _KEY_FULL_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG ClassOffset; ULONG ClassLength; ULONG SubKeys; ULONG MaxNameLen; ULONG MaxClassLen; ULONG Values; ULONG MaxValueNameLen; ULONG MaxValueDataLen; WCHAR Class[1]; // Variable length } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; // end_wdm typedef struct _KEY_NAME_INFORMATION { ULONG NameLength; WCHAR Name[1]; // Variable length string } KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION; typedef struct _KEY_CACHED_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG SubKeys; ULONG MaxNameLen; ULONG Values; ULONG MaxValueNameLen; ULONG MaxValueDataLen; ULONG NameLength; WCHAR Name[1]; // Variable length string } KEY_CACHED_INFORMATION, *PKEY_CACHED_INFORMATION; typedef struct _KEY_FLAGS_INFORMATION { ULONG UserFlags; } KEY_FLAGS_INFORMATION, *PKEY_FLAGS_INFORMATION; // begin_wdm typedef enum _KEY_INFORMATION_CLASS { KeyBasicInformation, KeyNodeInformation, KeyFullInformation // end_wdm , KeyNameInformation, KeyCachedInformation, KeyFlagsInformation // begin_wdm } KEY_INFORMATION_CLASS; typedef struct _KEY_WRITE_TIME_INFORMATION { LARGE_INTEGER LastWriteTime; } KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION; typedef struct _KEY_USER_FLAGS_INFORMATION { ULONG UserFlags; } KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION; typedef enum _KEY_SET_INFORMATION_CLASS { KeyWriteTimeInformation, KeyUserFlagsInformation } KEY_SET_INFORMATION_CLASS; // // Value entry query structures // typedef struct _KEY_VALUE_BASIC_INFORMATION { ULONG TitleIndex; ULONG Type; ULONG NameLength; WCHAR Name[1]; // Variable size } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; typedef struct _KEY_VALUE_FULL_INFORMATION { ULONG TitleIndex; ULONG Type; ULONG DataOffset; ULONG DataLength; ULONG NameLength; WCHAR Name[1]; // Variable size // Data[1]; // Variable size data not declared } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; typedef struct _KEY_VALUE_PARTIAL_INFORMATION { ULONG TitleIndex; ULONG Type; ULONG DataLength; UCHAR Data[1]; // Variable size } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { ULONG Type; ULONG DataLength; UCHAR Data[1]; // Variable size } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64; typedef struct _KEY_VALUE_ENTRY { PUNICODE_STRING ValueName; ULONG DataLength; ULONG DataOffset; ULONG Type; } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; typedef enum _KEY_VALUE_INFORMATION_CLASS { KeyValueBasicInformation, KeyValueFullInformation, KeyValuePartialInformation, KeyValueFullInformationAlign64, KeyValuePartialInformationAlign64 } KEY_VALUE_INFORMATION_CLASS; #define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\') // // Object Manager Object Type Specific Access Rights. // #define OBJECT_TYPE_CREATE (0x0001) #define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) // // Object Manager Directory Specific Access Rights. // #define DIRECTORY_QUERY (0x0001) #define DIRECTORY_TRAVERSE (0x0002) #define DIRECTORY_CREATE_OBJECT (0x0004) #define DIRECTORY_CREATE_SUBDIRECTORY (0x0008) #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF) // // Object Manager Symbolic Link Specific Access Rights. // #define SYMBOLIC_LINK_QUERY (0x0001) #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) typedef struct _OBJECT_NAME_INFORMATION { UNICODE_STRING Name; } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION; #define DUPLICATE_CLOSE_SOURCE 0x00000001 // winnt #define DUPLICATE_SAME_ACCESS 0x00000002 // winnt #define DUPLICATE_SAME_ATTRIBUTES 0x00000004 // // Section Information Structures. // typedef enum _SECTION_INHERIT { ViewShare = 1, ViewUnmap = 2 } SECTION_INHERIT; // // Section Access Rights. // // begin_winnt #define SECTION_QUERY 0x0001 #define SECTION_MAP_WRITE 0x0002 #define SECTION_MAP_READ 0x0004 #define SECTION_MAP_EXECUTE 0x0008 #define SECTION_EXTEND_SIZE 0x0010 #define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\ SECTION_MAP_WRITE | \ SECTION_MAP_READ | \ SECTION_MAP_EXECUTE | \ SECTION_EXTEND_SIZE) // end_winnt #define SEGMENT_ALL_ACCESS SECTION_ALL_ACCESS #define PAGE_NOACCESS 0x01 // winnt #define PAGE_READONLY 0x02 // winnt #define PAGE_READWRITE 0x04 // winnt #define PAGE_WRITECOPY 0x08 // winnt #define PAGE_EXECUTE 0x10 // winnt #define PAGE_EXECUTE_READ 0x20 // winnt #define PAGE_EXECUTE_READWRITE 0x40 // winnt #define PAGE_EXECUTE_WRITECOPY 0x80 // winnt #define PAGE_GUARD 0x100 // winnt #define PAGE_NOCACHE 0x200 // winnt #define PAGE_WRITECOMBINE 0x400 // winnt #define MEM_COMMIT 0x1000 #define MEM_RESERVE 0x2000 #define MEM_DECOMMIT 0x4000 #define MEM_RELEASE 0x8000 #define MEM_FREE 0x10000 #define MEM_PRIVATE 0x20000 #define MEM_MAPPED 0x40000 #define MEM_RESET 0x80000 #define MEM_TOP_DOWN 0x100000 #define MEM_LARGE_PAGES 0x20000000 #define MEM_4MB_PAGES 0x80000000 #define SEC_RESERVE 0x4000000 #define PROCESS_DUP_HANDLE (0x0040) // winnt #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFF) // begin_nthal #if defined(_WIN64) #define MAXIMUM_PROCESSORS 64 #else #define MAXIMUM_PROCESSORS 32 #endif // end_nthal // end_winnt // // Thread Specific Access Rights // #define THREAD_TERMINATE (0x0001) // winnt #define THREAD_SET_INFORMATION (0x0020) // winnt #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0x3FF) // // ClientId // typedef struct _CLIENT_ID { HANDLE UniqueProcess; HANDLE UniqueThread; } CLIENT_ID; typedef CLIENT_ID *PCLIENT_ID; // // Thread Environment Block (and portable part of Thread Information Block) // // // NT_TIB - Thread Information Block - Portable part. // // This is the subsystem portable part of the Thread Information Block. // It appears as the first part of the TEB for all threads which have // a user mode component. // // // begin_winnt typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberData; ULONG Version; }; PVOID ArbitraryUserPointer; struct _NT_TIB *Self; } NT_TIB; typedef NT_TIB *PNT_TIB; // // 32 and 64 bit specific version for wow64 and the debugger // typedef struct _NT_TIB32 { ULONG ExceptionList; ULONG StackBase; ULONG StackLimit; ULONG SubSystemTib; union { ULONG FiberData; ULONG Version; }; ULONG ArbitraryUserPointer; ULONG Self; } NT_TIB32, *PNT_TIB32; typedef struct _NT_TIB64 { ULONG64 ExceptionList; ULONG64 StackBase; ULONG64 StackLimit; ULONG64 SubSystemTib; union { ULONG64 FiberData; ULONG Version; }; ULONG64 ArbitraryUserPointer; ULONG64 Self; } NT_TIB64, *PNT_TIB64; // // Process Information Classes // typedef enum _PROCESSINFOCLASS { ProcessBasicInformation, ProcessQuotaLimits, ProcessIoCounters, ProcessVmCounters, ProcessTimes, ProcessBasePriority, ProcessRaisePriority, ProcessDebugPort, ProcessExceptionPort, ProcessAccessToken, ProcessLdtInformation, ProcessLdtSize, ProcessDefaultHardErrorMode, ProcessIoPortHandlers, // Note: this is kernel mode only ProcessPooledUsageAndLimits, ProcessWorkingSetWatch, ProcessUserModeIOPL, ProcessEnableAlignmentFaultFixup, ProcessPriorityClass, ProcessWx86Information, ProcessHandleCount, ProcessAffinityMask, ProcessPriorityBoost, ProcessDeviceMap, ProcessSessionInformation, ProcessForegroundInformation, ProcessWow64Information, ProcessImageFileName, ProcessLUIDDeviceMapsEnabled, ProcessBreakOnTermination, ProcessDebugObjectHandle, ProcessDebugFlags, ProcessHandleTracing, MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum } PROCESSINFOCLASS; // // Thread Information Classes // typedef enum _THREADINFOCLASS { ThreadBasicInformation, ThreadTimes, ThreadPriority, ThreadBasePriority, ThreadAffinityMask, ThreadImpersonationToken, ThreadDescriptorTableEntry, ThreadEnableAlignmentFaultFixup, ThreadEventPair_Reusable, ThreadQuerySetWin32StartAddress, ThreadZeroTlsCell, ThreadPerformanceCount, ThreadAmILastThread, ThreadIdealProcessor, ThreadPriorityBoost, ThreadSetTlsArrayAddress, ThreadIsIoPending, ThreadHideFromDebugger, ThreadBreakOnTermination, MaxThreadInfoClass } THREADINFOCLASS; // // Process Information Structures // // // PageFaultHistory Information // NtQueryInformationProcess using ProcessWorkingSetWatch // typedef struct _PROCESS_WS_WATCH_INFORMATION { PVOID FaultingPc; PVOID FaultingVa; } PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION; // // Basic Process Information // NtQueryInformationProcess using ProcessBasicInfo // typedef struct _PROCESS_BASIC_INFORMATION { NTSTATUS ExitStatus; PPEB PebBaseAddress; ULONG_PTR AffinityMask; KPRIORITY BasePriority; ULONG_PTR UniqueProcessId; ULONG_PTR InheritedFromUniqueProcessId; } PROCESS_BASIC_INFORMATION; typedef PROCESS_BASIC_INFORMATION *PPROCESS_BASIC_INFORMATION; // // Process Device Map information // NtQueryInformationProcess using ProcessDeviceMap // NtSetInformationProcess using ProcessDeviceMap // typedef struct _PROCESS_DEVICEMAP_INFORMATION { union { struct { HANDLE DirectoryHandle; } Set; struct { ULONG DriveMap; UCHAR DriveType[ 32 ]; } Query; }; } PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION; typedef struct _PROCESS_DEVICEMAP_INFORMATION_EX { union { struct { HANDLE DirectoryHandle; } Set; struct { ULONG DriveMap; UCHAR DriveType[ 32 ]; } Query; }; ULONG Flags; // specifies that the query type } PROCESS_DEVICEMAP_INFORMATION_EX, *PPROCESS_DEVICEMAP_INFORMATION_EX; // // PROCESS_DEVICEMAP_INFORMATION_EX flags // #define PROCESS_LUID_DOSDEVICES_ONLY 0x00000001 // // Multi-User Session specific Process Information // NtQueryInformationProcess using ProcessSessionInformation // typedef struct _PROCESS_SESSION_INFORMATION { ULONG SessionId; } PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION; typedef struct _PROCESS_HANDLE_TRACING_ENABLE { ULONG Flags; } PROCESS_HANDLE_TRACING_ENABLE, *PPROCESS_HANDLE_TRACING_ENABLE; #define PROCESS_HANDLE_TRACING_MAX_STACKS 16 typedef struct _PROCESS_HANDLE_TRACING_ENTRY { HANDLE Handle; CLIENT_ID ClientId; ULONG Type; PVOID Stacks[PROCESS_HANDLE_TRACING_MAX_STACKS]; } PROCESS_HANDLE_TRACING_ENTRY, *PPROCESS_HANDLE_TRACING_ENTRY; typedef struct _PROCESS_HANDLE_TRACING_QUERY { HANDLE Handle; ULONG TotalTraces; PROCESS_HANDLE_TRACING_ENTRY HandleTrace[1]; } PROCESS_HANDLE_TRACING_QUERY, *PPROCESS_HANDLE_TRACING_QUERY; // // Process Quotas // NtQueryInformationProcess using ProcessQuotaLimits // NtQueryInformationProcess using ProcessPooledQuotaLimits // NtSetInformationProcess using ProcessQuotaLimits // // begin_winnt typedef struct _QUOTA_LIMITS { SIZE_T PagedPoolLimit; SIZE_T NonPagedPoolLimit; SIZE_T MinimumWorkingSetSize; SIZE_T MaximumWorkingSetSize; SIZE_T PagefileLimit; LARGE_INTEGER TimeLimit; } QUOTA_LIMITS; typedef QUOTA_LIMITS *PQUOTA_LIMITS; // end_winnt // // Process I/O Counters // NtQueryInformationProcess using ProcessIoCounters // // begin_winnt typedef struct _IO_COUNTERS { ULONGLONG ReadOperationCount; ULONGLONG WriteOperationCount; ULONGLONG OtherOperationCount; ULONGLONG ReadTransferCount; ULONGLONG WriteTransferCount; ULONGLONG OtherTransferCount; } IO_COUNTERS; typedef IO_COUNTERS *PIO_COUNTERS; // end_winnt // // Process Virtual Memory Counters // NtQueryInformationProcess using ProcessVmCounters // typedef struct _VM_COUNTERS { SIZE_T PeakVirtualSize; SIZE_T VirtualSize; ULONG PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage; } VM_COUNTERS; typedef VM_COUNTERS *PVM_COUNTERS; typedef struct _VM_COUNTERS_EX { SIZE_T PeakVirtualSize; SIZE_T VirtualSize; ULONG PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage; SIZE_T PrivateUsage; } VM_COUNTERS_EX; typedef VM_COUNTERS_EX *PVM_COUNTERS_EX; // // Process Pooled Quota Usage and Limits // NtQueryInformationProcess using ProcessPooledUsageAndLimits // typedef struct _POOLED_USAGE_AND_LIMITS { SIZE_T PeakPagedPoolUsage; SIZE_T PagedPoolUsage; SIZE_T PagedPoolLimit; SIZE_T PeakNonPagedPoolUsage; SIZE_T NonPagedPoolUsage; SIZE_T NonPagedPoolLimit; SIZE_T PeakPagefileUsage; SIZE_T PagefileUsage; SIZE_T PagefileLimit; } POOLED_USAGE_AND_LIMITS; typedef POOLED_USAGE_AND_LIMITS *PPOOLED_USAGE_AND_LIMITS; // // Process Security Context Information // NtSetInformationProcess using ProcessAccessToken // PROCESS_SET_ACCESS_TOKEN access to the process is needed // to use this info level. // typedef struct _PROCESS_ACCESS_TOKEN { // // Handle to Primary token to assign to the process. // TOKEN_ASSIGN_PRIMARY access to this token is needed. // HANDLE Token; // // Handle to the initial thread of the process. // A process's access token can only be changed if the process has // no threads or one thread. If the process has no threads, this // field must be set to NULL. Otherwise, it must contain a handle // open to the process's only thread. THREAD_QUERY_INFORMATION access // is needed via this handle. HANDLE Thread; } PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN; // // Process/Thread System and User Time // NtQueryInformationProcess using ProcessTimes // NtQueryInformationThread using ThreadTimes // typedef struct _KERNEL_USER_TIMES { LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; LARGE_INTEGER KernelTime; LARGE_INTEGER UserTime; } KERNEL_USER_TIMES; typedef KERNEL_USER_TIMES *PKERNEL_USER_TIMES; NTSYSCALLAPI NTSTATUS NTAPI NtOpenProcess ( OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId OPTIONAL ); #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 ) NTSYSCALLAPI NTSTATUS NTAPI NtQueryInformationProcess( IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, OUT PVOID ProcessInformation, IN ULONG ProcessInformationLength, OUT PULONG ReturnLength OPTIONAL ); #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 ) #ifndef _PO_DDK_ #define _PO_DDK_ // begin_winnt typedef enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; #define POWER_SYSTEM_MAXIMUM 7 typedef enum { PowerActionNone = 0, PowerActionReserved, PowerActionSleep, PowerActionHibernate, PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, PowerActionWarmEject } POWER_ACTION, *PPOWER_ACTION; typedef enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3, PowerDeviceMaximum } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; // end_winnt typedef union _POWER_STATE { SYSTEM_POWER_STATE SystemState; DEVICE_POWER_STATE DeviceState; } POWER_STATE, *PPOWER_STATE; typedef enum _POWER_STATE_TYPE { SystemPowerState = 0, DevicePowerState } POWER_STATE_TYPE, *PPOWER_STATE_TYPE; // // Generic power related IOCTLs // #define IOCTL_QUERY_DEVICE_POWER_STATE \ CTL_CODE(FILE_DEVICE_BATTERY, 0x0, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_SET_DEVICE_WAKE \ CTL_CODE(FILE_DEVICE_BATTERY, 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_CANCEL_DEVICE_WAKE \ CTL_CODE(FILE_DEVICE_BATTERY, 0x2, METHOD_BUFFERED, FILE_WRITE_ACCESS) // // Defines for W32 interfaces // // begin_winnt #define ES_SYSTEM_REQUIRED ((ULONG)0x00000001) #define ES_DISPLAY_REQUIRED ((ULONG)0x00000002) #define ES_USER_PRESENT ((ULONG)0x00000004) #define ES_CONTINUOUS ((ULONG)0x80000000) typedef ULONG EXECUTION_STATE; typedef enum { LT_DONT_CARE, LT_LOWEST_LATENCY } LATENCY_TIME; typedef enum { SystemPowerPolicyAc, SystemPowerPolicyDc, VerifySystemPolicyAc, VerifySystemPolicyDc, SystemPowerCapabilities, SystemBatteryState, SystemPowerStateHandler, ProcessorStateHandler, SystemPowerPolicyCurrent, AdministratorPowerPolicy, SystemReserveHiberFile, ProcessorInformation, SystemPowerInformation, ProcessorStateHandler2, LastWakeTime, // Compare with KeQueryInterruptTime() LastSleepTime, // Compare with KeQueryInterruptTime() SystemExecutionState, SystemPowerStateNotifyHandler, ProcessorPowerPolicyAc, ProcessorPowerPolicyDc, VerifyProcessorPowerPolicyAc, VerifyProcessorPowerPolicyDc, ProcessorPowerPolicyCurrent } POWER_INFORMATION_LEVEL; // begin_wdm // // System power manager capabilities // typedef struct { ULONG Granularity; ULONG Capacity; } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; // end_winnt // begin_ntminiport // begin_ntifs #endif // !_PO_DDK_ #if defined(_X86_) // // Types to use to contain PFNs and their counts. // typedef ULONG PFN_COUNT; typedef LONG SPFN_NUMBER, *PSPFN_NUMBER; typedef ULONG PFN_NUMBER, *PPFN_NUMBER; // // Define maximum size of flush multiple TB request. // #define FLUSH_MULTIPLE_MAXIMUM 16 // // Indicate that the i386 compiler supports the pragma textout construct. // #define ALLOC_PRAGMA 1 // // Indicate that the i386 compiler supports the DATA_SEG("INIT") and // DATA_SEG("PAGE") pragmas // #define ALLOC_DATA_PRAGMA 1 #define NORMAL_DISPATCH_LENGTH 106 #define DISPATCH_LENGTH NORMAL_DISPATCH_LENGTH // // Interrupt Request Level definitions // #define PASSIVE_LEVEL 0 // Passive release level #define LOW_LEVEL 0 // Lowest interrupt level #define APC_LEVEL 1 // APC interrupt level #define DISPATCH_LEVEL 2 // Dispatcher level #define PROFILE_LEVEL 27 // timer used for profiling. #define CLOCK1_LEVEL 28 // Interval clock 1 level - Not used on x86 #define CLOCK2_LEVEL 28 // Interval clock 2 level #define IPI_LEVEL 29 // Interprocessor interrupt level #define POWER_LEVEL 30 // Power failure level #define HIGH_LEVEL 31 // Highest interrupt level #if defined(NT_UP) #define SYNCH_LEVEL DISPATCH_LEVEL // synchronization level - UP system #else #define SYNCH_LEVEL (IPI_LEVEL-1) // synchronization level - MP system #endif // // I/O space read and write macros. // // These have to be actual functions on the 386, because we need // to use assembler, but cannot return a value if we inline it. // // The READ/WRITE_REGISTER_* calls manipulate I/O registers in MEMORY space. // (Use x86 move instructions, with LOCK prefix to force correct behavior // w.r.t. caches and write buffers.) // // The READ/WRITE_PORT_* calls manipulate I/O registers in PORT space. // (Use x86 in/out instructions.) // NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR( PUCHAR Register ); NTKERNELAPI USHORT NTAPI READ_REGISTER_USHORT( PUSHORT Register ); NTKERNELAPI ULONG NTAPI READ_REGISTER_ULONG( PULONG Register ); NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_UCHAR( PUCHAR Register, PUCHAR Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_USHORT( PUSHORT Register, PUSHORT Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_ULONG( PULONG Register, PULONG Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR( PUCHAR Register, UCHAR Value ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_USHORT( PUSHORT Register, USHORT Value ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_ULONG( PULONG Register, ULONG Value ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_UCHAR( PUCHAR Register, PUCHAR Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_USHORT( PUSHORT Register, PUSHORT Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_ULONG( PULONG Register, PULONG Buffer, ULONG Count ); NTHALAPI UCHAR NTAPI READ_PORT_UCHAR( PUCHAR Port ); NTHALAPI USHORT NTAPI READ_PORT_USHORT( PUSHORT Port ); NTHALAPI ULONG NTAPI READ_PORT_ULONG( PULONG Port ); NTHALAPI VOID NTAPI READ_PORT_BUFFER_UCHAR( PUCHAR Port, PUCHAR Buffer, ULONG Count ); NTHALAPI VOID NTAPI READ_PORT_BUFFER_USHORT( PUSHORT Port, PUSHORT Buffer, ULONG Count ); NTHALAPI VOID NTAPI READ_PORT_BUFFER_ULONG( PULONG Port, PULONG Buffer, ULONG Count ); NTHALAPI VOID NTAPI WRITE_PORT_UCHAR( PUCHAR Port, UCHAR Value ); NTHALAPI VOID NTAPI WRITE_PORT_USHORT( PUSHORT Port, USHORT Value ); NTHALAPI VOID NTAPI WRITE_PORT_ULONG( PULONG Port, ULONG Value ); NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_UCHAR( PUCHAR Port, PUCHAR Buffer, ULONG Count ); NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_USHORT( PUSHORT Port, PUSHORT Buffer, ULONG Count ); NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_ULONG( PULONG Port, PULONG Buffer, ULONG Count ); // end_ntndis // // Get data cache fill size. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(KeGetDcacheFillSize) // Use GetDmaAlignment #endif #define KeGetDcacheFillSize() 1L #define KeFlushIoBuffers(Mdl, ReadOperation, DmaOperation) #define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) #define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) // begin_wdm #define KeQueryTickCount(CurrentCount ) { \ volatile PKSYSTEM_TIME _TickCount = *((PKSYSTEM_TIME *)(&KeTickCount)); \ while (TRUE) { \ (CurrentCount)->HighPart = _TickCount->High1Time; \ (CurrentCount)->LowPart = _TickCount->LowPart; \ if ((CurrentCount)->HighPart == _TickCount->High2Time) break; \ _asm { rep nop } \ } \ } // end_wdm #else VOID NTAPI KeQueryTickCount ( OUT PLARGE_INTEGER CurrentCount ); #endif // defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) // // Processor Control Region Structure Definition // #define PCR_MINOR_VERSION 1 #define PCR_MAJOR_VERSION 1 typedef struct _KPCR { // // Start of the architecturally defined section of the PCR. This section // may be directly addressed by vendor/platform specific HAL code and will // not change from version to version of NT. // NT_TIB NtTib; struct _KPCR *SelfPcr; // flat address of this PCR struct _KPRCB *Prcb; // pointer to Prcb KIRQL Irql; ULONG IRR; ULONG IrrActive; ULONG IDR; PVOID KdVersionBlock; struct _KIDTENTRY *IDT; struct _KGDTENTRY *GDT; struct _KTSS *TSS; USHORT MajorVersion; USHORT MinorVersion; KAFFINITY SetMember; ULONG StallScaleFactor; UCHAR DebugActive; UCHAR Number; } KPCR, *PKPCR; // // The non-volatile 387 state // typedef struct _KFLOATING_SAVE { ULONG ControlWord; ULONG StatusWord; ULONG ErrorOffset; ULONG ErrorSelector; ULONG DataOffset; // Not used in wdm ULONG DataSelector; ULONG Cr0NpxState; ULONG Spare1; // Not used in wdm } KFLOATING_SAVE, *PKFLOATING_SAVE; // // i386 Specific portions of mm component // // // Define the page size for the Intel 386 as 4096 (0x1000). // #define PAGE_SIZE 0x1000 // // Define the number of trailing zeroes in a page aligned virtual address. // This is used as the shift count when shifting virtual addresses to // virtual page numbers. // #define PAGE_SHIFT 12L // end_ntndis end_wdm // // Define the number of bits to shift to right justify the Page Directory Index // field of a PTE. // #define PDI_SHIFT_X86 22 #define PDI_SHIFT_X86PAE 21 #if !defined (_X86PAE_) #define PDI_SHIFT PDI_SHIFT_X86 #else #define PDI_SHIFT PDI_SHIFT_X86PAE #define PPI_SHIFT 30 #endif // // Define the number of bits to shift to right justify the Page Table Index // field of a PTE. // #define PTI_SHIFT 12 // // Define the highest user address and user probe address. // extern PVOID *MmHighestUserAddress; extern PVOID *MmSystemRangeStart; extern ULONG *MmUserProbeAddress; #define MM_HIGHEST_USER_ADDRESS *MmHighestUserAddress #define MM_SYSTEM_RANGE_START *MmSystemRangeStart #define MM_USER_PROBE_ADDRESS *MmUserProbeAddress // // The lowest user address reserves the low 64k. // #define MM_LOWEST_USER_ADDRESS (PVOID)0x10000 // // The lowest address for system space. // #if !defined (_X86PAE_) #define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0800000 #else #define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000 #endif // begin_wdm #define MmGetProcedureAddress(Address) (Address) #define MmLockPagableCodeSection(Address) MmLockPagableDataSection(Address) #define KIP0PCRADDRESS 0xffdff000 #define KI_USER_SHARED_DATA 0xffdf0000 #define SharedUserData ((KUSER_SHARED_DATA * const) KI_USER_SHARED_DATA) // // Result type definition for i386. (Machine specific enumerate type // which is return type for portable exinterlockedincrement/decrement // procedures.) In general, you should use the enumerated type defined // in ex.h instead of directly referencing these constants. // // Flags loaded into AH by LAHF instruction #define EFLAG_SIGN 0x8000 #define EFLAG_ZERO 0x4000 #define EFLAG_SELECT (EFLAG_SIGN | EFLAG_ZERO) #define RESULT_NEGATIVE ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT) #define RESULT_ZERO ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT) #define RESULT_POSITIVE ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT) // // Convert various portable ExInterlock APIs into their architectural // equivalents. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInterlockedIncrementLong) // Use InterlockedIncrement #pragma deprecated(ExInterlockedDecrementLong) // Use InterlockedDecrement #pragma deprecated(ExInterlockedExchangeUlong) // Use InterlockedExchange #endif #define ExInterlockedIncrementLong(Addend,Lock) \ Exfi386InterlockedIncrementLong(Addend) #define ExInterlockedDecrementLong(Addend,Lock) \ Exfi386InterlockedDecrementLong(Addend) #define ExInterlockedExchangeUlong(Target,Value,Lock) \ Exfi386InterlockedExchangeUlong(Target,Value) // begin_wdm #define ExInterlockedAddUlong ExfInterlockedAddUlong #define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList #define ExInterlockedInsertTailList ExfInterlockedInsertTailList #define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList #define ExInterlockedPopEntryList ExfInterlockedPopEntryList #define ExInterlockedPushEntryList ExfInterlockedPushEntryList // end_wdm // // Prototypes for architectural specific versions of Exi386 Api // // // Interlocked result type is portable, but its values are machine specific. // Constants for value are in i386.h, mips.h, etc. // typedef enum _INTERLOCKED_RESULT { ResultNegative = RESULT_NEGATIVE, ResultZero = RESULT_ZERO, ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; NTKERNELAPI INTERLOCKED_RESULT FASTCALL Exfi386InterlockedIncrementLong ( IN PLONG Addend ); NTKERNELAPI INTERLOCKED_RESULT FASTCALL Exfi386InterlockedDecrementLong ( IN PLONG Addend ); NTKERNELAPI ULONG FASTCALL Exfi386InterlockedExchangeUlong ( IN PULONG Target, IN ULONG Value ); #if !defined(_WINBASE_) && !defined(NONTOSPINTERLOCK) #if !defined(MIDL_PASS) // wdm #if defined(NO_INTERLOCKED_INTRINSICS) || defined(_CROSS_PLATFORM_) // begin_wdm NTKERNELAPI LONG FASTCALL InterlockedIncrement( IN LONG volatile *Addend ); NTKERNELAPI LONG FASTCALL InterlockedDecrement( IN LONG volatile *Addend ); NTKERNELAPI LONG FASTCALL InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); #define InterlockedExchangePointer(Target, Value) \ (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value)) LONG FASTCALL InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Increment ); NTKERNELAPI LONG FASTCALL InterlockedCompareExchange( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); #define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) \ (PVOID)InterlockedCompareExchange((PLONG)Destination, (LONG)ExChange, (LONG)Comperand) #define InterlockedCompareExchange64(Destination, ExChange, Comperand) \ ExfInterlockedCompareExchange64(Destination, &(ExChange), &(Comperand)) NTKERNELAPI LONGLONG FASTCALL ExfInterlockedCompareExchange64( IN OUT LONGLONG volatile *Destination, IN PLONGLONG ExChange, IN PLONGLONG Comperand ); // end_wdm #else // NO_INTERLOCKED_INCREMENTS || _CROSS_PLATFORM_ #define InterlockedExchangePointer(Target, Value) \ (PVOID)InterlockedExchange((PLONG)Target, (LONG)Value) #if (_MSC_FULL_VER > 13009037) LONG __cdecl _InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); #pragma intrinsic (_InterlockedExchange) #define InterlockedExchange _InterlockedExchange #else FORCEINLINE LONG FASTCALL InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ) { __asm { mov eax, Value mov ecx, Target xchg [ecx], eax } } #endif #if (_MSC_FULL_VER > 13009037) LONG __cdecl _InterlockedIncrement( IN LONG volatile *Addend ); #pragma intrinsic (_InterlockedIncrement) #define InterlockedIncrement _InterlockedIncrement #else #define InterlockedIncrement(Addend) (InterlockedExchangeAdd (Addend, 1)+1) #endif #if (_MSC_FULL_VER > 13009037) LONG __cdecl _InterlockedDecrement( IN LONG volatile *Addend ); #pragma intrinsic (_InterlockedDecrement) #define InterlockedDecrement _InterlockedDecrement #else #define InterlockedDecrement(Addend) (InterlockedExchangeAdd (Addend, -1)-1) #endif #if (_MSC_FULL_VER > 13009037) LONG __cdecl _InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Increment ); #pragma intrinsic (_InterlockedExchangeAdd) #define InterlockedExchangeAdd _InterlockedExchangeAdd #else // begin_wdm FORCEINLINE LONG FASTCALL InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Increment ) { __asm { mov eax, Increment mov ecx, Addend lock xadd [ecx], eax } } // end_wdm #endif #if (_MSC_FULL_VER > 13009037) LONG __cdecl _InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); #pragma intrinsic (_InterlockedCompareExchange) #define InterlockedCompareExchange (LONG)_InterlockedCompareExchange #else FORCEINLINE LONG FASTCALL InterlockedCompareExchange( IN OUT LONG volatile *Destination, IN LONG Exchange, IN LONG Comperand ) { __asm { mov eax, Comperand mov ecx, Destination mov edx, Exchange lock cmpxchg [ecx], edx } } #endif #define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) \ (PVOID)InterlockedCompareExchange((PLONG)Destination, (LONG)ExChange, (LONG)Comperand) #define InterlockedCompareExchange64(Destination, ExChange, Comperand) \ ExfInterlockedCompareExchange64(Destination, &(ExChange), &(Comperand)) NTKERNELAPI LONGLONG FASTCALL ExfInterlockedCompareExchange64( IN OUT LONGLONG volatile *Destination, IN PLONGLONG ExChange, IN PLONGLONG Comperand ); #endif // INTERLOCKED_INTRINSICS || _CROSS_PLATFORM_ // begin_wdm #endif // MIDL_PASS #endif // __WINBASE__ && !NONTOSPINTERLOCK // // Turn these instrinsics off until the compiler can handle them // #if (_MSC_FULL_VER > 13009037) LONG _InterlockedOr ( IN OUT PLONG Target, IN LONG Set ); #pragma intrinsic (_InterlockedOr) #define InterlockedOr _InterlockedOr LONG _InterlockedAnd ( IN OUT LONG volatile *Target, IN LONG Set ); #pragma intrinsic (_InterlockedAnd) #define InterlockedAnd _InterlockedAnd LONG _InterlockedXor ( IN OUT LONG volatile Target, IN LONG Set ); #pragma intrinsic (_InterlockedXor) #define InterlockedXor _InterlockedXor #else // compiler version FORCEINLINE LONG InterlockedAnd ( IN OUT LONG volatile *Target, LONG Set ) { LONG i; LONG j; j = *Target; do { i = j; j = InterlockedCompareExchange(Target, i & Set, i); } while (i != j); return j; } FORCEINLINE LONG InterlockedOr ( IN OUT LONG volatile *Target, IN LONG Set ) { LONG i; LONG j; j = *Target; do { i = j; j = InterlockedCompareExchange(Target, i | Set, i); } while (i != j); return j; } #endif // compiler version #if !defined(MIDL_PASS) && defined(_M_IX86) // // i386 function definitions // #pragma warning(disable:4035) // re-enable below // end_wdm #if NT_UP #define _PCR ds:[KIP0PCRADDRESS] #else #define _PCR fs:[0] #endif // // Get current IRQL. // // On x86 this function resides in the HAL // NTHALAPI KIRQL NTAPI KeGetCurrentIrql(); // end_wdm // // Get the current processor number // FORCEINLINE ULONG NTAPI KeGetCurrentProcessorNumber(VOID) { __asm { movzx eax, _PCR KPCR.Number } } #pragma warning(default:4035) // begin_wdm #endif // !defined(MIDL_PASS) && defined(_M_IX86) NTKERNELAPI NTSTATUS NTAPI KeSaveFloatingPointState ( OUT PKFLOATING_SAVE FloatSave ); NTKERNELAPI NTSTATUS NTAPI KeRestoreFloatingPointState ( IN PKFLOATING_SAVE FloatSave ); #endif // defined(_X86_) // Use the following for kernel mode runtime checks of X86 system architecture #ifdef _X86_ #ifdef IsNEC_98 #undef IsNEC_98 #endif #ifdef IsNotNEC_98 #undef IsNotNEC_98 #endif #ifdef SetNEC_98 #undef SetNEC_98 #endif #ifdef SetNotNEC_98 #undef SetNotNEC_98 #endif #define IsNEC_98 (SharedUserData->AlternativeArchitecture == NEC98x86) #define IsNotNEC_98 (SharedUserData->AlternativeArchitecture != NEC98x86) #define SetNEC_98 SharedUserData->AlternativeArchitecture = NEC98x86 #define SetNotNEC_98 SharedUserData->AlternativeArchitecture = StandardDesign #endif #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // Define intrinsic function to do in's and out's. // #ifdef __cplusplus extern "C" { #endif UCHAR __inbyte ( IN USHORT Port ); USHORT __inword ( IN USHORT Port ); ULONG __indword ( IN USHORT Port ); VOID __outbyte ( IN USHORT Port, IN UCHAR Data ); VOID __outword ( IN USHORT Port, IN USHORT Data ); VOID __outdword ( IN USHORT Port, IN ULONG Data ); VOID __inbytestring ( IN USHORT Port, IN PUCHAR Buffer, IN ULONG Count ); VOID __inwordstring ( IN USHORT Port, IN PUSHORT Buffer, IN ULONG Count ); VOID __indwordstring ( IN USHORT Port, IN PULONG Buffer, IN ULONG Count ); VOID __outbytestring ( IN USHORT Port, IN PUCHAR Buffer, IN ULONG Count ); VOID __outwordstring ( IN USHORT Port, IN PUSHORT Buffer, IN ULONG Count ); VOID __outdwordstring ( IN USHORT Port, IN PULONG Buffer, IN ULONG Count ); #ifdef __cplusplus } #endif #pragma intrinsic(__inbyte) #pragma intrinsic(__inword) #pragma intrinsic(__indword) #pragma intrinsic(__outbyte) #pragma intrinsic(__outword) #pragma intrinsic(__outdword) #pragma intrinsic(__inbytestring) #pragma intrinsic(__inwordstring) #pragma intrinsic(__indwordstring) #pragma intrinsic(__outbytestring) #pragma intrinsic(__outwordstring) #pragma intrinsic(__outdwordstring) // // Interlocked intrinsic functions. // #define InterlockedAnd _InterlockedAnd #define InterlockedOr _InterlockedOr #define InterlockedXor _InterlockedXor #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedAdd _InterlockedAdd #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedAnd64 _InterlockedAnd64 #define InterlockedOr64 _InterlockedOr64 #define InterlockedXor64 _InterlockedXor64 #define InterlockedIncrement64 _InterlockedIncrement64 #define InterlockedDecrement64 _InterlockedDecrement64 #define InterlockedAdd64 _InterlockedAdd64 #define InterlockedExchange64 _InterlockedExchange64 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer #ifdef __cplusplus extern "C" { #endif LONG InterlockedAnd ( IN OUT LONG volatile *Destination, IN LONG Value ); LONG InterlockedOr ( IN OUT LONG volatile *Destination, IN LONG Value ); LONG InterlockedXor ( IN OUT LONG volatile *Destination, IN LONG Value ); LONG64 InterlockedAnd64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedOr64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedXor64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG InterlockedIncrement( IN OUT LONG volatile *Addend ); LONG InterlockedDecrement( IN OUT LONG volatile *Addend ); LONG InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); LONG InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); #if !defined(_X86AMD64_) __forceinline LONG InterlockedAdd( IN OUT LONG volatile *Addend, IN LONG Value ) { return InterlockedExchangeAdd(Addend, Value) + Value; } #endif LONG InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); LONG64 InterlockedIncrement64( IN OUT LONG64 volatile *Addend ); LONG64 InterlockedDecrement64( IN OUT LONG64 volatile *Addend ); LONG64 InterlockedExchange64( IN OUT LONG64 volatile *Target, IN LONG64 Value ); LONG64 InterlockedExchangeAdd64( IN OUT LONG64 volatile *Addend, IN LONG64 Value ); #if !defined(_X86AMD64_) __forceinline LONG64 InterlockedAdd64( IN OUT LONG64 volatile *Addend, IN LONG64 Value ) { return InterlockedExchangeAdd64(Addend, Value) + Value; } #endif LONG64 InterlockedCompareExchange64 ( IN OUT LONG64 volatile *Destination, IN LONG64 ExChange, IN LONG64 Comperand ); PVOID InterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID Exchange, IN PVOID Comperand ); PVOID InterlockedExchangePointer( IN OUT PVOID volatile *Target, IN PVOID Value ); #pragma intrinsic(_InterlockedAnd) #pragma intrinsic(_InterlockedOr) #pragma intrinsic(_InterlockedXor) #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedExchangeAdd) #pragma intrinsic(_InterlockedCompareExchange) #pragma intrinsic(_InterlockedAnd64) #pragma intrinsic(_InterlockedOr64) #pragma intrinsic(_InterlockedXor64) #pragma intrinsic(_InterlockedIncrement64) #pragma intrinsic(_InterlockedDecrement64) #pragma intrinsic(_InterlockedExchange64) #pragma intrinsic(_InterlockedExchangeAdd64) #pragma intrinsic(_InterlockedCompareExchange64) #pragma intrinsic(_InterlockedExchangePointer) #pragma intrinsic(_InterlockedCompareExchangePointer) #ifdef __cplusplus } #endif #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) #if defined(_AMD64_) // // Types to use to contain PFNs and their counts. // typedef ULONG PFN_COUNT; typedef LONG64 SPFN_NUMBER, *PSPFN_NUMBER; typedef ULONG64 PFN_NUMBER, *PPFN_NUMBER; // // Define maximum size of flush multiple TB request. // #define FLUSH_MULTIPLE_MAXIMUM 16 // // Indicate that the AMD64 compiler supports the allocate pragmas. // #define ALLOC_PRAGMA 1 #define ALLOC_DATA_PRAGMA 1 #define NORMAL_DISPATCH_LENGTH 106 #define DISPATCH_LENGTH NORMAL_DISPATCH_LENGTH // // Interrupt Request Level definitions // #define PASSIVE_LEVEL 0 // Passive release level #define LOW_LEVEL 0 // Lowest interrupt level #define APC_LEVEL 1 // APC interrupt level #define DISPATCH_LEVEL 2 // Dispatcher level #define CLOCK_LEVEL 13 // Interval clock level #define IPI_LEVEL 14 // Interprocessor interrupt level #define POWER_LEVEL 14 // Power failure level #define PROFILE_LEVEL 15 // timer used for profiling. #define HIGH_LEVEL 15 // Highest interrupt level #if defined(NT_UP) #define SYNCH_LEVEL DISPATCH_LEVEL // synchronization level #else #define SYNCH_LEVEL (IPI_LEVEL - 1) // synchronization level #endif #define IRQL_VECTOR_OFFSET 2 // offset from IRQL to vector / 16 // // I/O space read and write macros. // // The READ/WRITE_REGISTER_* calls manipulate I/O registers in MEMORY space. // (Use move instructions, with LOCK prefix to force correct behavior // w.r.t. caches and write buffers.) // // The READ/WRITE_PORT_* calls manipulate I/O registers in PORT space. // (Use in/out instructions.) // __forceinline UCHAR READ_REGISTER_UCHAR ( volatile UCHAR *Register ) { return *Register; } __forceinline USHORT READ_REGISTER_USHORT ( volatile USHORT *Register ) { return *Register; } __forceinline ULONG READ_REGISTER_ULONG ( volatile ULONG *Register ) { return *Register; } __forceinline VOID READ_REGISTER_BUFFER_UCHAR ( PUCHAR Register, PUCHAR Buffer, ULONG Count ) { __movsb(Register, Buffer, Count); return; } __forceinline VOID READ_REGISTER_BUFFER_USHORT ( PUSHORT Register, PUSHORT Buffer, ULONG Count ) { __movsw(Register, Buffer, Count); return; } __forceinline VOID READ_REGISTER_BUFFER_ULONG ( PULONG Register, PULONG Buffer, ULONG Count ) { __movsd(Register, Buffer, Count); return; } __forceinline VOID WRITE_REGISTER_UCHAR ( PUCHAR Register, UCHAR Value ) { LONG Synch; *Register = Value; InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_USHORT ( PUSHORT Register, USHORT Value ) { LONG Synch; *Register = Value; InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_ULONG ( PULONG Register, ULONG Value ) { LONG Synch; *Register = Value; InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_BUFFER_UCHAR ( PUCHAR Register, PUCHAR Buffer, ULONG Count ) { LONG Synch; __movsb(Register, Buffer, Count); InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_BUFFER_USHORT ( PUSHORT Register, PUSHORT Buffer, ULONG Count ) { LONG Synch; __movsw(Register, Buffer, Count); InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_BUFFER_ULONG ( PULONG Register, PULONG Buffer, ULONG Count ) { LONG Synch; __movsd(Register, Buffer, Count); InterlockedOr(&Synch, 1); return; } __forceinline UCHAR READ_PORT_UCHAR ( PUCHAR Port ) { return __inbyte((USHORT)((ULONG64)Port)); } __forceinline USHORT READ_PORT_USHORT ( PUSHORT Port ) { return __inword((USHORT)((ULONG64)Port)); } __forceinline ULONG READ_PORT_ULONG ( PULONG Port ) { return __indword((USHORT)((ULONG64)Port)); } __forceinline VOID READ_PORT_BUFFER_UCHAR ( PUCHAR Port, PUCHAR Buffer, ULONG Count ) { __inbytestring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID READ_PORT_BUFFER_USHORT ( PUSHORT Port, PUSHORT Buffer, ULONG Count ) { __inwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID READ_PORT_BUFFER_ULONG ( PULONG Port, PULONG Buffer, ULONG Count ) { __indwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID WRITE_PORT_UCHAR ( PUCHAR Port, UCHAR Value ) { __outbyte((USHORT)((ULONG64)Port), Value); return; } __forceinline VOID WRITE_PORT_USHORT ( PUSHORT Port, USHORT Value ) { __outword((USHORT)((ULONG64)Port), Value); return; } __forceinline VOID WRITE_PORT_ULONG ( PULONG Port, ULONG Value ) { __outdword((USHORT)((ULONG64)Port), Value); return; } __forceinline VOID WRITE_PORT_BUFFER_UCHAR ( PUCHAR Port, PUCHAR Buffer, ULONG Count ) { __outbytestring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID WRITE_PORT_BUFFER_USHORT ( PUSHORT Port, PUSHORT Buffer, ULONG Count ) { __outwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID WRITE_PORT_BUFFER_ULONG ( PULONG Port, PULONG Buffer, ULONG Count ) { __outdwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } // end_ntndis // // Get data cache fill size. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(KeGetDcacheFillSize) // Use GetDmaAlignment #endif #define KeGetDcacheFillSize() 1L #define KeFlushIoBuffers(Mdl, ReadOperation, DmaOperation) #define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) #define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) // begin_wdm #define KeQueryTickCount(CurrentCount ) \ *(PULONG64)(CurrentCount) = **((volatile ULONG64 **)(&KeTickCount)); // end_wdm #else VOID KeQueryTickCount ( OUT PLARGE_INTEGER CurrentCount ); #endif // defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) // // Processor Control Region Structure Definition // #define PCR_MINOR_VERSION 1 #define PCR_MAJOR_VERSION 1 typedef struct _KPCR { // // Start of the architecturally defined section of the PCR. This section // may be directly addressed by vendor/platform specific HAL code and will // not change from version to version of NT. // NT_TIB NtTib; struct _KPRCB *CurrentPrcb; ULONG64 SavedRcx; ULONG64 SavedR11; KIRQL Irql; UCHAR SecondLevelCacheAssociativity; UCHAR Number; UCHAR Fill0; ULONG Irr; ULONG IrrActive; ULONG Idr; USHORT MajorVersion; USHORT MinorVersion; ULONG StallScaleFactor; union _KIDTENTRY64 *IdtBase; union _KGDTENTRY64 *GdtBase; struct _KTSS64 *TssBase; } KPCR, *PKPCR; // // The nonvolatile floating state // typedef struct _KFLOATING_SAVE { ULONG MxCsr; } KFLOATING_SAVE, *PKFLOATING_SAVE; // // AMD64 Specific portions of mm component. // // Define the page size for the AMD64 as 4096 (0x1000). // #define PAGE_SIZE 0x1000 // // Define the number of trailing zeroes in a page aligned virtual address. // This is used as the shift count when shifting virtual addresses to // virtual page numbers. // #define PAGE_SHIFT 12L // end_ntndis end_wdm #define PXE_BASE 0xFFFFF6FB7DBED000UI64 #define PXE_SELFMAP 0xFFFFF6FB7DBEDF68UI64 #define PPE_BASE 0xFFFFF6FB7DA00000UI64 #define PDE_BASE 0xFFFFF6FB40000000UI64 #define PTE_BASE 0xFFFFF68000000000UI64 #define PXE_TOP 0xFFFFF6FB7DBEDFFFUI64 #define PPE_TOP 0xFFFFF6FB7DBFFFFFUI64 #define PDE_TOP 0xFFFFF6FB7FFFFFFFUI64 #define PTE_TOP 0xFFFFF6FFFFFFFFFFUI64 #define PDE_KTBASE_AMD64 PPE_BASE #define PTI_SHIFT 12 #define PDI_SHIFT 21 #define PPI_SHIFT 30 #define PXI_SHIFT 39 #define PTE_PER_PAGE 512 #define PDE_PER_PAGE 512 #define PPE_PER_PAGE 512 #define PXE_PER_PAGE 512 #define PTI_MASK_AMD64 (PTE_PER_PAGE - 1) #define PDI_MASK_AMD64 (PDE_PER_PAGE - 1) #define PPI_MASK (PPE_PER_PAGE - 1) #define PXI_MASK (PXE_PER_PAGE - 1) // // Define the highest user address and user probe address. // extern PVOID *MmHighestUserAddress; extern PVOID *MmSystemRangeStart; extern ULONG64 *MmUserProbeAddress; #define MM_HIGHEST_USER_ADDRESS *MmHighestUserAddress #define MM_SYSTEM_RANGE_START *MmSystemRangeStart #define MM_USER_PROBE_ADDRESS *MmUserProbeAddress // // The lowest user address reserves the low 64k. // #define MM_LOWEST_USER_ADDRESS (PVOID)0x10000 // // The lowest address for system space. // #define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000 // begin_wdm #define MmGetProcedureAddress(Address) (Address) #define MmLockPagableCodeSection(Address) MmLockPagableDataSection(Address) #define KI_USER_SHARED_DATA 0xFFFFF78000000000UI64 #define SharedUserData ((KUSER_SHARED_DATA * const) KI_USER_SHARED_DATA) // // Intrinsic functions // // begin_wdm #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // end_wdm // // The following routines are provided for backward compatibility with old // code. They are no longer the preferred way to accomplish these functions. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInterlockedIncrementLong) // Use InterlockedIncrement #pragma deprecated(ExInterlockedDecrementLong) // Use InterlockedDecrement #pragma deprecated(ExInterlockedExchangeUlong) // Use InterlockedExchange #endif #define RESULT_ZERO 0 #define RESULT_NEGATIVE 1 #define RESULT_POSITIVE 2 typedef enum _INTERLOCKED_RESULT { ResultNegative = RESULT_NEGATIVE, ResultZero = RESULT_ZERO, ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; #define ExInterlockedDecrementLong(Addend, Lock) \ _ExInterlockedDecrementLong(Addend) __forceinline LONG _ExInterlockedDecrementLong ( IN OUT PLONG Addend ) { LONG Result; Result = InterlockedDecrement(Addend); if (Result < 0) { return ResultNegative; } else if (Result > 0) { return ResultPositive; } else { return ResultZero; } } #define ExInterlockedIncrementLong(Addend, Lock) \ _ExInterlockedIncrementLong(Addend) __forceinline LONG _ExInterlockedIncrementLong ( IN OUT PLONG Addend ) { LONG Result; Result = InterlockedIncrement(Addend); if (Result < 0) { return ResultNegative; } else if (Result > 0) { return ResultPositive; } else { return ResultZero; } } #define ExInterlockedExchangeUlong(Target, Value, Lock) \ _ExInterlockedExchangeUlong(Target, Value) __forceinline _ExInterlockedExchangeUlong ( IN OUT PULONG Target, IN ULONG Value ) { return (ULONG)InterlockedExchange((PLONG)Target, (LONG)Value); } // begin_wdm #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) #if !defined(MIDL_PASS) && defined(_M_AMD64) // // AMD646 function prototype definitions // // end_wdm // // Get the current processor number // __forceinline ULONG KeGetCurrentProcessorNumber ( VOID ) { return (ULONG)__readgsbyte(FIELD_OFFSET(KPCR, Number)); } // begin_wdm #endif // !defined(MIDL_PASS) && defined(_M_AMD64) NTKERNELAPI NTSTATUS KeSaveFloatingPointState ( OUT PKFLOATING_SAVE SaveArea ); NTKERNELAPI NTSTATUS KeRestoreFloatingPointState ( IN PKFLOATING_SAVE SaveArea ); #endif // defined(_AMD64_) #if defined(_AMD64_) NTKERNELAPI KIRQL KeGetCurrentIrql ( VOID ); NTKERNELAPI VOID KeLowerIrql ( IN KIRQL NewIrql ); #define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a) NTKERNELAPI KIRQL KfRaiseIrql ( IN KIRQL NewIrql ); // end_wdm NTKERNELAPI KIRQL KeRaiseIrqlToDpcLevel ( VOID ); NTKERNELAPI KIRQL KeRaiseIrqlToSynchLevel ( VOID ); // begin_wdm #endif // defined(_AMD64_) #if defined(_IA64_) // // Types to use to contain PFNs and their counts. // typedef ULONG PFN_COUNT; typedef LONG_PTR SPFN_NUMBER, *PSPFN_NUMBER; typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER; // // Define maximum size of flush multiple TB request. // #define FLUSH_MULTIPLE_MAXIMUM 100 // // Indicate that the IA64 compiler supports the pragma textout construct. // #define ALLOC_PRAGMA 1 // // Define intrinsic calls and their prototypes // #include "ia64reg.h" #ifdef __cplusplus extern "C" { #endif unsigned __int64 __getReg (int); void __setReg (int, unsigned __int64); void __isrlz (void); void __dsrlz (void); void __fwb (void); void __mf (void); void __mfa (void); void __synci (void); __int64 __thash (__int64); __int64 __ttag (__int64); void __ptcl (__int64, __int64); void __ptcg (__int64, __int64); void __ptcga (__int64, __int64); void __ptri (__int64, __int64); void __ptrd (__int64, __int64); void __invalat (void); void __break (int); void __fc (__int64); void __sum (int); void __rsm (int); void _ReleaseSpinLock( unsigned __int64 *); #ifdef _M_IA64 #pragma intrinsic (__getReg) #pragma intrinsic (__setReg) #pragma intrinsic (__isrlz) #pragma intrinsic (__dsrlz) #pragma intrinsic (__fwb) #pragma intrinsic (__mf) #pragma intrinsic (__mfa) #pragma intrinsic (__synci) #pragma intrinsic (__thash) #pragma intrinsic (__ttag) #pragma intrinsic (__ptcl) #pragma intrinsic (__ptcg) #pragma intrinsic (__ptcga) #pragma intrinsic (__ptri) #pragma intrinsic (__ptrd) #pragma intrinsic (__invalat) #pragma intrinsic (__break) #pragma intrinsic (__fc) #pragma intrinsic (__sum) #pragma intrinsic (__rsm) #pragma intrinsic (_ReleaseSpinLock) #endif // _M_IA64 #ifdef __cplusplus } #endif // end_wdm end_ntndis // // Define macro to generate import names. // #define IMPORT_NAME(name) __imp_##name // begin_wdm // // Define length of interrupt vector table. // #define MAXIMUM_VECTOR 256 // end_wdm // // IA64 specific interlocked operation result values. // #define RESULT_ZERO 0 #define RESULT_NEGATIVE 1 #define RESULT_POSITIVE 2 // // Interlocked result type is portable, but its values are machine specific. // Constants for values are in i386.h, mips.h, etc. // typedef enum _INTERLOCKED_RESULT { ResultNegative = RESULT_NEGATIVE, ResultZero = RESULT_ZERO, ResultPositive = RESULT_POSITIVE } INTERLOCKED_RESULT; // // Convert portable interlock interfaces to architecture specific interfaces. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInterlockedIncrementLong) // Use InterlockedIncrement #pragma deprecated(ExInterlockedDecrementLong) // Use InterlockedDecrement #pragma deprecated(ExInterlockedExchangeUlong) // Use InterlockedExchange #endif #define ExInterlockedIncrementLong(Addend, Lock) \ ExIa64InterlockedIncrementLong(Addend) #define ExInterlockedDecrementLong(Addend, Lock) \ ExIa64InterlockedDecrementLong(Addend) #define ExInterlockedExchangeUlong(Target, Value, Lock) \ ExIa64InterlockedExchangeUlong(Target, Value) NTKERNELAPI INTERLOCKED_RESULT ExIa64InterlockedIncrementLong ( IN PLONG Addend ); NTKERNELAPI INTERLOCKED_RESULT ExIa64InterlockedDecrementLong ( IN PLONG Addend ); NTKERNELAPI ULONG ExIa64InterlockedExchangeUlong ( IN PULONG Target, IN ULONG Value ); // begin_wdm // // IA64 Interrupt Definitions. // // Define length of interrupt object dispatch code in longwords. // #define DISPATCH_LENGTH 2*2 // Length of dispatch code template in 32-bit words // // Begin of a block of definitions that must be synchronized with kxia64.h. // // // Define Interrupt Request Levels. // #define PASSIVE_LEVEL 0 // Passive release level #define LOW_LEVEL 0 // Lowest interrupt level #define APC_LEVEL 1 // APC interrupt level #define DISPATCH_LEVEL 2 // Dispatcher level #define CMC_LEVEL 3 // Correctable machine check level #define DEVICE_LEVEL_BASE 4 // 4 - 11 - Device IRQLs #define PC_LEVEL 12 // Performance Counter IRQL #define IPI_LEVEL 14 // IPI IRQL #define CLOCK_LEVEL 13 // Clock Timer IRQL #define POWER_LEVEL 15 // Power failure level #define PROFILE_LEVEL 15 // Profiling level #define HIGH_LEVEL 15 // Highest interrupt level #if defined(NT_UP) #define SYNCH_LEVEL DISPATCH_LEVEL // Synchronization level - UP #else #define SYNCH_LEVEL (IPI_LEVEL-1) // Synchronization level - MP #endif // // The current IRQL is maintained in the TPR.mic field. The // shift count is the number of bits to shift right to extract the // IRQL from the TPR. See the GET/SET_IRQL macros. // #define TPR_MIC 4 #define TPR_IRQL_SHIFT TPR_MIC // To go from vector number <-> IRQL we just do a shift #define VECTOR_IRQL_SHIFT TPR_IRQL_SHIFT // // Interrupt Vector Definitions // #define APC_VECTOR APC_LEVEL << VECTOR_IRQL_SHIFT #define DISPATCH_VECTOR DISPATCH_LEVEL << VECTOR_IRQL_SHIFT // // End of a block of definitions that must be synchronized with kxia64.h. // // // Define profile intervals. // #define DEFAULT_PROFILE_COUNT 0x40000000 // ~= 20 seconds @50mhz #define DEFAULT_PROFILE_INTERVAL (10 * 500) // 500 microseconds #define MAXIMUM_PROFILE_INTERVAL (10 * 1000 * 1000) // 1 second #define MINIMUM_PROFILE_INTERVAL (10 * 40) // 40 microseconds #if defined(_M_IA64) && !defined(RC_INVOKED) #define InterlockedAdd _InterlockedAdd #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedAdd64 _InterlockedAdd64 #define InterlockedIncrement64 _InterlockedIncrement64 #define InterlockedDecrement64 _InterlockedDecrement64 #define InterlockedExchange64 _InterlockedExchange64 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer #ifdef __cplusplus extern "C" { #endif LONG __cdecl InterlockedAdd ( LONG volatile *Addend, LONG Value ); LONGLONG __cdecl InterlockedAdd64 ( LONGLONG volatile *Addend, LONGLONG Value ); LONG __cdecl InterlockedIncrement( IN OUT LONG volatile *Addend ); LONG __cdecl InterlockedDecrement( IN OUT LONG volatile *Addend ); LONG __cdecl InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); LONG __cdecl InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); LONG __cdecl InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); LONGLONG __cdecl InterlockedIncrement64( IN OUT LONGLONG volatile *Addend ); LONGLONG __cdecl InterlockedDecrement64( IN OUT LONGLONG volatile *Addend ); LONGLONG __cdecl InterlockedExchange64( IN OUT LONGLONG volatile *Target, IN LONGLONG Value ); LONGLONG __cdecl InterlockedExchangeAdd64( IN OUT LONGLONG volatile *Addend, IN LONGLONG Value ); LONGLONG __cdecl InterlockedCompareExchange64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG ExChange, IN LONGLONG Comperand ); PVOID __cdecl InterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID Exchange, IN PVOID Comperand ); PVOID __cdecl InterlockedExchangePointer( IN OUT PVOID volatile *Target, IN PVOID Value ); #pragma intrinsic(_InterlockedAdd) #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedCompareExchange) #pragma intrinsic(_InterlockedExchangeAdd) #pragma intrinsic(_InterlockedAdd64) #pragma intrinsic(_InterlockedIncrement64) #pragma intrinsic(_InterlockedDecrement64) #pragma intrinsic(_InterlockedExchange64) #pragma intrinsic(_InterlockedCompareExchange64) #pragma intrinsic(_InterlockedExchangeAdd64) #pragma intrinsic(_InterlockedExchangePointer) #pragma intrinsic(_InterlockedCompareExchangePointer) #ifdef __cplusplus } #endif #endif // defined(_M_IA64) && !defined(RC_INVOKED) __inline LONG InterlockedAnd ( IN OUT LONG volatile *Target, LONG Set ) { LONG i; LONG j; j = *Target; do { i = j; j = InterlockedCompareExchange(Target, i & Set, i); } while (i != j); return j; } __inline LONG InterlockedOr ( IN OUT LONG volatile *Target, IN LONG Set ) { LONG i; LONG j; j = *Target; do { i = j; j = InterlockedCompareExchange(Target, i | Set, i); } while (i != j); return j; } #define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000)) #define SharedUserData ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA) // // Prototype for get current IRQL. **** TBD (read TPR) // NTKERNELAPI KIRQL KeGetCurrentIrql(); // end_wdm // // Get address of current processor block. // #define KeGetCurrentPrcb() PCR->Prcb // // Get address of processor control region. // #define KeGetPcr() PCR // // Get address of current kernel thread object. // #if defined(_M_IA64) #define KeGetCurrentThread() PCR->CurrentThread #endif // // Get current processor number. // #define KeGetCurrentProcessorNumber() PCR->Number // // Get data cache fill size. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(KeGetDcacheFillSize) // Use GetDmaAlignment #endif #define KeGetDcacheFillSize() PCR->DcacheFillSize #define KeSaveFloatingPointState(a) STATUS_SUCCESS #define KeRestoreFloatingPointState(a) STATUS_SUCCESS // // Define the page size // #define PAGE_SIZE 0x2000 // // Define the number of trailing zeroes in a page aligned virtual address. // This is used as the shift count when shifting virtual addresses to // virtual page numbers. // #define PAGE_SHIFT 13L // // Cache and write buffer flush functions. // NTKERNELAPI VOID KeFlushIoBuffers ( IN PMDL Mdl, IN BOOLEAN ReadOperation, IN BOOLEAN DmaOperation ); // // Kernel breakin breakpoint // VOID KeBreakinBreakpoint ( VOID ); #define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) #define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) // begin_wdm #define KeQueryTickCount(CurrentCount ) \ *(PULONGLONG)(CurrentCount) = **((volatile ULONGLONG **)(&KeTickCount)); // end_wdm #else NTKERNELAPI VOID KeQueryTickCount ( OUT PLARGE_INTEGER CurrentCount ); #endif // defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) // // I/O space read and write macros. // NTHALAPI UCHAR READ_PORT_UCHAR ( PUCHAR RegisterAddress ); NTHALAPI USHORT READ_PORT_USHORT ( PUSHORT RegisterAddress ); NTHALAPI ULONG READ_PORT_ULONG ( PULONG RegisterAddress ); NTHALAPI VOID READ_PORT_BUFFER_UCHAR ( PUCHAR portAddress, PUCHAR readBuffer, ULONG readCount ); NTHALAPI VOID READ_PORT_BUFFER_USHORT ( PUSHORT portAddress, PUSHORT readBuffer, ULONG readCount ); NTHALAPI VOID READ_PORT_BUFFER_ULONG ( PULONG portAddress, PULONG readBuffer, ULONG readCount ); NTHALAPI VOID WRITE_PORT_UCHAR ( PUCHAR portAddress, UCHAR Data ); NTHALAPI VOID WRITE_PORT_USHORT ( PUSHORT portAddress, USHORT Data ); NTHALAPI VOID WRITE_PORT_ULONG ( PULONG portAddress, ULONG Data ); NTHALAPI VOID WRITE_PORT_BUFFER_UCHAR ( PUCHAR portAddress, PUCHAR writeBuffer, ULONG writeCount ); NTHALAPI VOID WRITE_PORT_BUFFER_USHORT ( PUSHORT portAddress, PUSHORT writeBuffer, ULONG writeCount ); NTHALAPI VOID WRITE_PORT_BUFFER_ULONG ( PULONG portAddress, PULONG writeBuffer, ULONG writeCount ); #define READ_REGISTER_UCHAR(x) \ (__mf(), *(volatile UCHAR * const)(x)) #define READ_REGISTER_USHORT(x) \ (__mf(), *(volatile USHORT * const)(x)) #define READ_REGISTER_ULONG(x) \ (__mf(), *(volatile ULONG * const)(x)) #define READ_REGISTER_BUFFER_UCHAR(x, y, z) { \ PUCHAR registerBuffer = x; \ PUCHAR readBuffer = y; \ ULONG readCount; \ __mf(); \ for (readCount = z; readCount--; readBuffer++, registerBuffer++) { \ *readBuffer = *(volatile UCHAR * const)(registerBuffer); \ } \ } #define READ_REGISTER_BUFFER_USHORT(x, y, z) { \ PUSHORT registerBuffer = x; \ PUSHORT readBuffer = y; \ ULONG readCount; \ __mf(); \ for (readCount = z; readCount--; readBuffer++, registerBuffer++) { \ *readBuffer = *(volatile USHORT * const)(registerBuffer); \ } \ } #define READ_REGISTER_BUFFER_ULONG(x, y, z) { \ PULONG registerBuffer = x; \ PULONG readBuffer = y; \ ULONG readCount; \ __mf(); \ for (readCount = z; readCount--; readBuffer++, registerBuffer++) { \ *readBuffer = *(volatile ULONG * const)(registerBuffer); \ } \ } #define WRITE_REGISTER_UCHAR(x, y) { \ *(volatile UCHAR * const)(x) = y; \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_USHORT(x, y) { \ *(volatile USHORT * const)(x) = y; \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_ULONG(x, y) { \ *(volatile ULONG * const)(x) = y; \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_BUFFER_UCHAR(x, y, z) { \ PUCHAR registerBuffer = x; \ PUCHAR writeBuffer = y; \ ULONG writeCount; \ for (writeCount = z; writeCount--; writeBuffer++, registerBuffer++) { \ *(volatile UCHAR * const)(registerBuffer) = *writeBuffer; \ } \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_BUFFER_USHORT(x, y, z) { \ PUSHORT registerBuffer = x; \ PUSHORT writeBuffer = y; \ ULONG writeCount; \ for (writeCount = z; writeCount--; writeBuffer++, registerBuffer++) { \ *(volatile USHORT * const)(registerBuffer) = *writeBuffer; \ } \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_BUFFER_ULONG(x, y, z) { \ PULONG registerBuffer = x; \ PULONG writeBuffer = y; \ ULONG writeCount; \ for (writeCount = z; writeCount--; writeBuffer++, registerBuffer++) { \ *(volatile ULONG * const)(registerBuffer) = *writeBuffer; \ } \ KeFlushWriteBuffer(); \ } // // Non-volatile floating point state // typedef struct _KFLOATING_SAVE { ULONG Reserved; } KFLOATING_SAVE, *PKFLOATING_SAVE; // // Processor Control Block (PRCB) // #define PRCB_MINOR_VERSION 1 #define PRCB_MAJOR_VERSION 1 #define PRCB_BUILD_DEBUG 0x0001 #define PRCB_BUILD_UNIPROCESSOR 0x0002 struct _RESTART_BLOCK; typedef struct _KPRCB { // // Major and minor version numbers of the PCR. // USHORT MinorVersion; USHORT MajorVersion; // // Start of the architecturally defined section of the PRCB. This section // may be directly addressed by vendor/platform specific HAL code and will // not change from version to version of NT. // // struct _KTHREAD *CurrentThread; struct _KTHREAD *RESTRICTED_POINTER NextThread; struct _KTHREAD *IdleThread; CCHAR Number; CCHAR WakeIdle; USHORT BuildType; KAFFINITY SetMember; struct _RESTART_BLOCK *RestartBlock; ULONG_PTR PcrPage; ULONG Spare0[4]; // // Processor Idendification Registers. // ULONG ProcessorModel; ULONG ProcessorRevision; ULONG ProcessorFamily; ULONG ProcessorArchRev; ULONGLONG ProcessorSerialNumber; ULONGLONG ProcessorFeatureBits; UCHAR ProcessorVendorString[16]; // // Space reserved for the system. // ULONGLONG SystemReserved[8]; // // Space reserved for the HAL. // ULONGLONG HalReserved[16]; // // End of the architecturally defined section of the PRCB. } KPRCB, *PKPRCB, *RESTRICTED_POINTER PRKPRCB; // begin_ntndis // // OS_MCA, OS_INIT HandOff State definitions // // Note: The following definitions *must* match the definiions of the // corresponding SAL Revision Hand-Off structures. // typedef struct _SAL_HANDOFF_STATE { ULONGLONG PalProcEntryPoint; ULONGLONG SalProcEntryPoint; ULONGLONG SalGlobalPointer; LONGLONG RendezVousResult; ULONGLONG SalReturnAddress; ULONGLONG MinStateSavePtr; } SAL_HANDOFF_STATE, *PSAL_HANDOFF_STATE; typedef struct _OS_HANDOFF_STATE { ULONGLONG Result; ULONGLONG SalGlobalPointer; ULONGLONG MinStateSavePtr; ULONGLONG SalReturnAddress; ULONGLONG NewContextFlag; } OS_HANDOFF_STATE, *POS_HANDOFF_STATE; // // per processor OS_MCA and OS_INIT resource structure // #define SER_EVENT_STACK_FRAME_ENTRIES 8 typedef struct _SAL_EVENT_RESOURCES { SAL_HANDOFF_STATE SalToOsHandOff; OS_HANDOFF_STATE OsToSalHandOff; PVOID StateDump; ULONGLONG StateDumpPhysical; PVOID BackStore; ULONGLONG BackStoreLimit; PVOID Stack; ULONGLONG StackLimit; PULONGLONG PTOM; ULONGLONG StackFrame[SER_EVENT_STACK_FRAME_ENTRIES]; PVOID EventPool; ULONG EventPoolSize; } SAL_EVENT_RESOURCES, *PSAL_EVENT_RESOURCES; // // PAL Mini-save area, used by MCA and INIT // typedef struct _PAL_MINI_SAVE_AREA { ULONGLONG IntNats; // Nat bits for r1-r31 // r1-r31 in bits 1 thru 31. ULONGLONG IntGp; // r1, volatile ULONGLONG IntT0; // r2-r3, volatile ULONGLONG IntT1; // ULONGLONG IntS0; // r4-r7, preserved ULONGLONG IntS1; ULONGLONG IntS2; ULONGLONG IntS3; ULONGLONG IntV0; // r8, volatile ULONGLONG IntT2; // r9-r11, volatile ULONGLONG IntT3; ULONGLONG IntT4; ULONGLONG IntSp; // stack pointer (r12), special ULONGLONG IntTeb; // teb (r13), special ULONGLONG IntT5; // r14-r31, volatile ULONGLONG IntT6; ULONGLONG B0R16; // Bank 0 registers 16-31 ULONGLONG B0R17; ULONGLONG B0R18; ULONGLONG B0R19; ULONGLONG B0R20; ULONGLONG B0R21; ULONGLONG B0R22; ULONGLONG B0R23; ULONGLONG B0R24; ULONGLONG B0R25; ULONGLONG B0R26; ULONGLONG B0R27; ULONGLONG B0R28; ULONGLONG B0R29; ULONGLONG B0R30; ULONGLONG B0R31; ULONGLONG IntT7; // Bank 1 registers 16-31 ULONGLONG IntT8; ULONGLONG IntT9; ULONGLONG IntT10; ULONGLONG IntT11; ULONGLONG IntT12; ULONGLONG IntT13; ULONGLONG IntT14; ULONGLONG IntT15; ULONGLONG IntT16; ULONGLONG IntT17; ULONGLONG IntT18; ULONGLONG IntT19; ULONGLONG IntT20; ULONGLONG IntT21; ULONGLONG IntT22; ULONGLONG Preds; // predicates, preserved ULONGLONG BrRp; // return pointer, b0, preserved ULONGLONG RsRSC; // RSE configuration, volatile ULONGLONG StIIP; // Interruption IP ULONGLONG StIPSR; // Interruption Processor Status ULONGLONG StIFS; // Interruption Function State ULONGLONG XIP; // Event IP ULONGLONG XPSR; // Event Processor Status ULONGLONG XFS; // Event Function State } PAL_MINI_SAVE_AREA, *PPAL_MINI_SAVE_AREA; // // Define Processor Control Region Structure. // #define PCR_MINOR_VERSION 1 #define PCR_MAJOR_VERSION 1 typedef struct _KPCR { // // Major and minor version numbers of the PCR. // ULONG MinorVersion; ULONG MajorVersion; // // Start of the architecturally defined section of the PCR. This section // may be directly addressed by vendor/platform specific HAL code and will // not change from version to version of NT. // // // First and second level cache parameters. // ULONG FirstLevelDcacheSize; ULONG FirstLevelDcacheFillSize; ULONG FirstLevelIcacheSize; ULONG FirstLevelIcacheFillSize; ULONG SecondLevelDcacheSize; ULONG SecondLevelDcacheFillSize; ULONG SecondLevelIcacheSize; ULONG SecondLevelIcacheFillSize; // // Data cache alignment and fill size used for cache flushing and alignment. // These fields are set to the larger of the first and second level data // cache fill sizes. // ULONG DcacheAlignment; ULONG DcacheFillSize; // // Instruction cache alignment and fill size used for cache flushing and // alignment. These fields are set to the larger of the first and second // level data cache fill sizes. // ULONG IcacheAlignment; ULONG IcacheFillSize; // // Processor identification from PrId register. // ULONG ProcessorId; // // Profiling data. // ULONG ProfileInterval; ULONG ProfileCount; // // Stall execution count and scale factor. // ULONG StallExecutionCount; ULONG StallScaleFactor; ULONG InterruptionCount; // // Space reserved for the system. // ULONGLONG SystemReserved[6]; // // Space reserved for the HAL // ULONGLONG HalReserved[64]; // // IRQL mapping tables. // UCHAR IrqlMask[64]; UCHAR IrqlTable[64]; // // External Interrupt vectors. // PKINTERRUPT_ROUTINE InterruptRoutine[MAXIMUM_VECTOR]; // // Reserved interrupt vector mask. // ULONG ReservedVectors; // // Processor affinity mask. // KAFFINITY SetMember; // // Complement of the processor affinity mask. // KAFFINITY NotMember; // // Pointer to processor control block. // struct _KPRCB *Prcb; // // Shadow copy of Prcb->CurrentThread for fast access // struct _KTHREAD *CurrentThread; // // Processor number. // CCHAR Number; // Processor Number UCHAR DebugActive; // debug register active in user flag UCHAR KernelDebugActive; // debug register active in kernel flag UCHAR CurrentIrql; // Current IRQL union { USHORT SoftwareInterruptPending; // Software Interrupt Pending Flag struct { UCHAR ApcInterrupt; // 0x01 if APC int pending UCHAR DispatchInterrupt; // 0x01 if dispatch int pending }; }; // // Address of per processor SAPIC EOI Table // PVOID EOITable; // // IA-64 Machine Check Events trackers // UCHAR InOsMca; UCHAR InOsInit; UCHAR InOsCmc; UCHAR InOsCpe; ULONG InOsULONG_Spare; // Spare ULONG PSAL_EVENT_RESOURCES OsMcaResourcePtr; PSAL_EVENT_RESOURCES OsInitResourcePtr; // // End of the architecturally defined section of the PCR. This section // may be directly addressed by vendor/platform specific HAL code and will // not change from version to version of NT. // } KPCR, *PKPCR; // // The highest user address reserves 64K bytes for a guard page. This // the probing of address from kernel mode to only have to check the // starting address for structures of 64k bytes or less. // extern NTKERNELAPI PVOID MmHighestUserAddress; extern NTKERNELAPI PVOID MmSystemRangeStart; extern NTKERNELAPI ULONG_PTR MmUserProbeAddress; #define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress #define MM_USER_PROBE_ADDRESS MmUserProbeAddress #define MM_SYSTEM_RANGE_START MmSystemRangeStart // // The lowest user address reserves the low 64k. // #define MM_LOWEST_USER_ADDRESS (PVOID)((ULONG_PTR)(UADDRESS_BASE+0x00010000)) // begin_wdm #define MmGetProcedureAddress(Address) (Address) #define MmLockPagableCodeSection(PLabelAddress) \ MmLockPagableDataSection((PVOID)(*((PULONGLONG)PLabelAddress))) #define VRN_MASK 0xE000000000000000UI64 // Virtual Region Number mask // // The lowest address for system space. // #define MM_LOWEST_SYSTEM_ADDRESS ((PVOID)((ULONG_PTR)(KADDRESS_BASE + 0xC0C00000))) #endif // defined(_IA64_) // // Event Specific Access Rights. // #define EVENT_QUERY_STATE 0x0001 #define EVENT_MODIFY_STATE 0x0002 // winnt #define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // winnt // // Semaphore Specific Access Rights. // #define SEMAPHORE_QUERY_STATE 0x0001 #define SEMAPHORE_MODIFY_STATE 0x0002 // winnt #define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // winnt // // Timer APC routine definition. // typedef VOID (*PTIMER_APC_ROUTINE) ( IN PVOID TimerContext, IN ULONG TimerLowValue, IN LONG TimerHighValue ); // // Driver Verifier Definitions // typedef ULONG_PTR (*PDRIVER_VERIFIER_THUNK_ROUTINE) ( IN PVOID Context ); // // This structure is passed in by drivers that want to thunk callers of // their exports. // typedef struct _DRIVER_VERIFIER_THUNK_PAIRS { PDRIVER_VERIFIER_THUNK_ROUTINE PristineRoutine; PDRIVER_VERIFIER_THUNK_ROUTINE NewRoutine; } DRIVER_VERIFIER_THUNK_PAIRS, *PDRIVER_VERIFIER_THUNK_PAIRS; // // Driver Verifier flags. // #define DRIVER_VERIFIER_SPECIAL_POOLING 0x0001 #define DRIVER_VERIFIER_FORCE_IRQL_CHECKING 0x0002 #define DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES 0x0004 #define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS 0x0008 #define DRIVER_VERIFIER_IO_CHECKING 0x0010 // // Defined processor features // #define PF_FLOATING_POINT_PRECISION_ERRATA 0 // winnt #define PF_FLOATING_POINT_EMULATED 1 // winnt #define PF_COMPARE_EXCHANGE_DOUBLE 2 // winnt #define PF_MMX_INSTRUCTIONS_AVAILABLE 3 // winnt #define PF_PPC_MOVEMEM_64BIT_OK 4 // winnt #define PF_ALPHA_BYTE_INSTRUCTIONS 5 // winnt #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 // winnt #define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 // winnt #define PF_RDTSC_INSTRUCTION_AVAILABLE 8 // winnt #define PF_PAE_ENABLED 9 // winnt #define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 // winnt typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign, // None == 0 == standard design NEC98x86, // NEC PC98xx series on X86 EndAlternatives // past end of known alternatives } ALTERNATIVE_ARCHITECTURE_TYPE; // correctly define these run-time definitions for non X86 machines #ifndef _X86_ #ifndef IsNEC_98 #define IsNEC_98 (FALSE) #endif #ifndef IsNotNEC_98 #define IsNotNEC_98 (TRUE) #endif #ifndef SetNEC_98 #define SetNEC_98 #endif #ifndef SetNotNEC_98 #define SetNotNEC_98 #endif #endif #define PROCESSOR_FEATURE_MAX 64 // end_wdm #if defined(REMOTE_BOOT) // // Defined system flags. // /* the following two lines should be tagged with "winnt" when REMOTE_BOOT is on. */ #define SYSTEM_FLAG_REMOTE_BOOT_CLIENT 0x00000001 #define SYSTEM_FLAG_DISKLESS_CLIENT 0x00000002 #endif // defined(REMOTE_BOOT) // // Define data shared between kernel and user mode. // // N.B. User mode has read only access to this data // #ifdef _MAC #pragma warning( disable : 4121) #endif // // Note: When adding a new field that's processor-architecture-specific (for example, bound with #if i386), // then place this field to be the last element in the KUSER_SHARED_DATA so that offsets into common // fields are the same for Wow6432 and Win64. // typedef struct _KUSER_SHARED_DATA { // // Current low 32-bit of tick count and tick count multiplier. // // N.B. The tick count is updated each time the clock ticks. // volatile ULONG TickCountLow; ULONG TickCountMultiplier; // // Current 64-bit interrupt time in 100ns units. // volatile KSYSTEM_TIME InterruptTime; // // Current 64-bit system time in 100ns units. // volatile KSYSTEM_TIME SystemTime; // // Current 64-bit time zone bias. // volatile KSYSTEM_TIME TimeZoneBias; // // Support image magic number range for the host system. // // N.B. This is an inclusive range. // USHORT ImageNumberLow; USHORT ImageNumberHigh; // // Copy of system root in Unicode // WCHAR NtSystemRoot[ 260 ]; // // Maximum stack trace depth if tracing enabled. // ULONG MaxStackTraceDepth; // // Crypto Exponent // ULONG CryptoExponent; // // TimeZoneId // ULONG TimeZoneId; ULONG Reserved2[ 8 ]; // // product type // NT_PRODUCT_TYPE NtProductType; BOOLEAN ProductTypeIsValid; // // NT Version. Note that each process sees a version from its PEB, but // if the process is running with an altered view of the system version, // the following two fields are used to correctly identify the version // ULONG NtMajorVersion; ULONG NtMinorVersion; // // Processor Feature Bits // BOOLEAN ProcessorFeatures[PROCESSOR_FEATURE_MAX]; // // Reserved fields - do not use // ULONG Reserved1; ULONG Reserved3; // // Time slippage while in debugger // volatile ULONG TimeSlip; // // Alternative system architecture. Example: NEC PC98xx on x86 // ALTERNATIVE_ARCHITECTURE_TYPE AlternativeArchitecture; // // If the system is an evaluation unit, the following field contains the // date and time that the evaluation unit expires. A value of 0 indicates // that there is no expiration. A non-zero value is the UTC absolute time // that the system expires. // LARGE_INTEGER SystemExpirationDate; // // Suite Support // ULONG SuiteMask; // // TRUE if a kernel debugger is connected/enabled // BOOLEAN KdDebuggerEnabled; // // Current console session Id. Always zero on non-TS systems // volatile ULONG ActiveConsoleId; // // Force-dismounts cause handles to become invalid. Rather than // always probe handles, we maintain a serial number of // dismounts that clients can use to see if they need to probe // handles. // volatile ULONG DismountCount; // // This field indicates the status of the 64-bit COM+ package on the system. // It indicates whether the Itermediate Language (IL) COM+ images need to // use the 64-bit COM+ runtime or the 32-bit COM+ runtime. // ULONG ComPlusPackage; // // Time in tick count for system-wide last user input across all // terminal sessions. For MP performance, it is not updated all // the time (e.g. once a minute per session). It is used for idle // detection. // ULONG LastSystemRITEventTickCount; // // Number of physical pages in the system. This can dynamically // change as physical memory can be added or removed from a running // system. // ULONG NumberOfPhysicalPages; // // True if the system was booted in safe boot mode. // BOOLEAN SafeBootMode; // // The following field is used for Heap and CritSec Tracing // The last bit is set for Critical Sec Collision tracing and // second Last bit is for Heap Tracing // Also the first 16 bits are used as counter. // ULONG TraceLogging; #if defined(i386) // // Depending on the processor, the code for fast system call // will differ, the following buffer is filled with the appropriate // code sequence and user mode code will branch through it. // // (32 bytes, using ULONGLONG for alignment). // ULONGLONG Fill0; // alignment ULONGLONG SystemCall[4]; #endif } KUSER_SHARED_DATA, *PKUSER_SHARED_DATA; #ifdef _MAC #pragma warning( default : 4121 ) #endif // begin_winnt // // Predefined Value Types. // #define REG_NONE ( 0 ) // No value type #define REG_SZ ( 1 ) // Unicode nul terminated string #define REG_EXPAND_SZ ( 2 ) // Unicode nul terminated string // (with environment variable references) #define REG_BINARY ( 3 ) // Free form binary #define REG_DWORD ( 4 ) // 32-bit number #define REG_DWORD_LITTLE_ENDIAN ( 4 ) // 32-bit number (same as REG_DWORD) #define REG_DWORD_BIG_ENDIAN ( 5 ) // 32-bit number #define REG_LINK ( 6 ) // Symbolic Link (unicode) #define REG_MULTI_SZ ( 7 ) // Multiple Unicode strings #define REG_RESOURCE_LIST ( 8 ) // Resource list in the resource map #define REG_FULL_RESOURCE_DESCRIPTOR ( 9 ) // Resource list in the hardware description #define REG_RESOURCE_REQUIREMENTS_LIST ( 10 ) #define REG_QWORD ( 11 ) // 64-bit number #define REG_QWORD_LITTLE_ENDIAN ( 11 ) // 64-bit number (same as REG_QWORD) // // Service Types (Bit Mask) // #define SERVICE_KERNEL_DRIVER 0x00000001 #define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 #define SERVICE_ADAPTER 0x00000004 #define SERVICE_RECOGNIZER_DRIVER 0x00000008 #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER | \ SERVICE_FILE_SYSTEM_DRIVER | \ SERVICE_RECOGNIZER_DRIVER) #define SERVICE_WIN32_OWN_PROCESS 0x00000010 #define SERVICE_WIN32_SHARE_PROCESS 0x00000020 #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | \ SERVICE_WIN32_SHARE_PROCESS) #define SERVICE_INTERACTIVE_PROCESS 0x00000100 #define SERVICE_TYPE_ALL (SERVICE_WIN32 | \ SERVICE_ADAPTER | \ SERVICE_DRIVER | \ SERVICE_INTERACTIVE_PROCESS) // // Start Type // #define SERVICE_BOOT_START 0x00000000 #define SERVICE_SYSTEM_START 0x00000001 #define SERVICE_AUTO_START 0x00000002 #define SERVICE_DEMAND_START 0x00000003 #define SERVICE_DISABLED 0x00000004 // // Error control type // #define SERVICE_ERROR_IGNORE 0x00000000 #define SERVICE_ERROR_NORMAL 0x00000001 #define SERVICE_ERROR_SEVERE 0x00000002 #define SERVICE_ERROR_CRITICAL 0x00000003 // // // Define the registry driver node enumerations // typedef enum _CM_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 } SERVICE_NODE_TYPE; typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad = SERVICE_BOOT_START, SystemLoad = SERVICE_SYSTEM_START, AutoLoad = SERVICE_AUTO_START, DemandLoad = SERVICE_DEMAND_START, DisableLoad = SERVICE_DISABLED } SERVICE_LOAD_TYPE; typedef enum _CM_ERROR_CONTROL_TYPE { IgnoreError = SERVICE_ERROR_IGNORE, NormalError = SERVICE_ERROR_NORMAL, SevereError = SERVICE_ERROR_SEVERE, CriticalError = SERVICE_ERROR_CRITICAL } SERVICE_ERROR_TYPE; // end_winnt // // Resource List definitions // // begin_ntminiport begin_ntndis // // Defines the Type in the RESOURCE_DESCRIPTOR // // NOTE: For all CM_RESOURCE_TYPE values, there must be a // corresponding ResType value in the 32-bit ConfigMgr headerfile // (cfgmgr32.h). Values in the range [0x6,0x80) use the same values // as their ConfigMgr counterparts. CM_RESOURCE_TYPE values with // the high bit set (i.e., in the range [0x80,0xFF]), are // non-arbitrated resources. These correspond to the same values // in cfgmgr32.h that have their high bit set (however, since // cfgmgr32.h uses 16 bits for ResType values, these values are in // the range [0x8000,0x807F). Note that ConfigMgr ResType values // cannot be in the range [0x8080,0xFFFF), because they would not // be able to map into CM_RESOURCE_TYPE values. (0xFFFF itself is // a special value, because it maps to CmResourceTypeDeviceSpecific.) // typedef int CM_RESOURCE_TYPE; // CmResourceTypeNull is reserved #define CmResourceTypeNull 0 // ResType_All or ResType_None (0x0000) #define CmResourceTypePort 1 // ResType_IO (0x0002) #define CmResourceTypeInterrupt 2 // ResType_IRQ (0x0004) #define CmResourceTypeMemory 3 // ResType_Mem (0x0001) #define CmResourceTypeDma 4 // ResType_DMA (0x0003) #define CmResourceTypeDeviceSpecific 5 // ResType_ClassSpecific (0xFFFF) #define CmResourceTypeBusNumber 6 // ResType_BusNumber (0x0006) // end_wdm #define CmResourceTypeMaximum 7 // begin_wdm #define CmResourceTypeNonArbitrated 128 // Not arbitrated if 0x80 bit set #define CmResourceTypeConfigData 128 // ResType_Reserved (0x8000) #define CmResourceTypeDevicePrivate 129 // ResType_DevicePrivate (0x8001) #define CmResourceTypePcCardConfig 130 // ResType_PcCardConfig (0x8002) #define CmResourceTypeMfCardConfig 131 // ResType_MfCardConfig (0x8003) // // Defines the ShareDisposition in the RESOURCE_DESCRIPTOR // typedef enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined = 0, // Reserved CmResourceShareDeviceExclusive, CmResourceShareDriverExclusive, CmResourceShareShared } CM_SHARE_DISPOSITION; // // Define the bit masks for Flags when type is CmResourceTypeInterrupt // #define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0 #define CM_RESOURCE_INTERRUPT_LATCHED 1 // // Define the bit masks for Flags when type is CmResourceTypeMemory // #define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 #define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 #define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 #define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 #define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 #define CM_RESOURCE_MEMORY_24 0x0010 #define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 // // Define the bit masks for Flags when type is CmResourceTypePort // #define CM_RESOURCE_PORT_MEMORY 0x0000 #define CM_RESOURCE_PORT_IO 0x0001 #define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 #define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 #define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 #define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 #define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 #define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 // // Define the bit masks for Flags when type is CmResourceTypeDma // #define CM_RESOURCE_DMA_8 0x0000 #define CM_RESOURCE_DMA_16 0x0001 #define CM_RESOURCE_DMA_32 0x0002 #define CM_RESOURCE_DMA_8_AND_16 0x0004 #define CM_RESOURCE_DMA_BUS_MASTER 0x0008 #define CM_RESOURCE_DMA_TYPE_A 0x0010 #define CM_RESOURCE_DMA_TYPE_B 0x0020 #define CM_RESOURCE_DMA_TYPE_F 0x0040 // end_ntminiport end_ntndis // // This structure defines one type of resource used by a driver. // // There can only be *1* DeviceSpecificData block. It must be located at // the end of all resource descriptors in a full descriptor block. // // // Make sure alignment is made properly by compiler; otherwise move // flags back to the top of the structure (common to all members of the // union). // // begin_ntndis #include "pshpack4.h" typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { UCHAR Type; UCHAR ShareDisposition; USHORT Flags; union { // // Range of resources, inclusive. These are physical, bus relative. // It is known that Port and Memory below have the exact same layout // as Generic. // struct { PHYSICAL_ADDRESS Start; ULONG Length; } Generic; // // end_wdm // Range of port numbers, inclusive. These are physical, bus // relative. The value should be the same as the one passed to // HalTranslateBusAddress(). // begin_wdm // struct { PHYSICAL_ADDRESS Start; ULONG Length; } Port; // // end_wdm // IRQL and vector. Should be same values as were passed to // HalGetInterruptVector(). // begin_wdm // struct { ULONG Level; ULONG Vector; KAFFINITY Affinity; } Interrupt; // // Range of memory addresses, inclusive. These are physical, bus // relative. The value should be the same as the one passed to // HalTranslateBusAddress(). // struct { PHYSICAL_ADDRESS Start; // 64 bit physical addresses. ULONG Length; } Memory; // // Physical DMA channel. // struct { ULONG Channel; ULONG Port; ULONG Reserved1; } Dma; // // Device driver private data, usually used to help it figure // what the resource assignments decisions that were made. // struct { ULONG Data[3]; } DevicePrivate; // // Bus Number information. // struct { ULONG Start; ULONG Length; ULONG Reserved; } BusNumber; // // Device Specific information defined by the driver. // The DataSize field indicates the size of the data in bytes. The // data is located immediately after the DeviceSpecificData field in // the structure. // struct { ULONG DataSize; ULONG Reserved1; ULONG Reserved2; } DeviceSpecificData; } u; } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; #include "poppack.h" // // A Partial Resource List is what can be found in the ARC firmware // or will be generated by ntdetect.com. // The configuration manager will transform this structure into a Full // resource descriptor when it is about to store it in the regsitry. // // Note: There must a be a convention to the order of fields of same type, // (defined on a device by device basis) so that the fields can make sense // to a driver (i.e. when multiple memory ranges are necessary). // typedef struct _CM_PARTIAL_RESOURCE_LIST { USHORT Version; USHORT Revision; ULONG Count; CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST; // // A Full Resource Descriptor is what can be found in the registry. // This is what will be returned to a driver when it queries the registry // to get device information; it will be stored under a key in the hardware // description tree. // // end_wdm // Note: The BusNumber and Type are redundant information, but we will keep // it since it allows the driver _not_ to append it when it is creating // a resource list which could possibly span multiple buses. // // begin_wdm // Note: There must a be a convention to the order of fields of same type, // (defined on a device by device basis) so that the fields can make sense // to a driver (i.e. when multiple memory ranges are necessary). // typedef struct _CM_FULL_RESOURCE_DESCRIPTOR { INTERFACE_TYPE InterfaceType; // unused for WDM ULONG BusNumber; // unused for WDM CM_PARTIAL_RESOURCE_LIST PartialResourceList; } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR; // // The Resource list is what will be stored by the drivers into the // resource map via the IO API. // typedef struct _CM_RESOURCE_LIST { ULONG Count; CM_FULL_RESOURCE_DESCRIPTOR List[1]; } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST; // end_ntndis // // Define the structures used to interpret configuration data of // \\Registry\machine\hardware\description tree. // Basically, these structures are used to interpret component // sepcific data. // // // Define DEVICE_FLAGS // typedef struct _DEVICE_FLAGS { ULONG Failed : 1; ULONG ReadOnly : 1; ULONG Removable : 1; ULONG ConsoleIn : 1; ULONG ConsoleOut : 1; ULONG Input : 1; ULONG Output : 1; } DEVICE_FLAGS, *PDEVICE_FLAGS; // // Define Component Information structure // typedef struct _CM_COMPONENT_INFORMATION { DEVICE_FLAGS Flags; ULONG Version; ULONG Key; KAFFINITY AffinityMask; } CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION; // // The following structures are used to interpret x86 // DeviceSpecificData of CM_PARTIAL_RESOURCE_DESCRIPTOR. // (Most of the structures are defined by BIOS. They are // not aligned on word (or dword) boundary. // // // Define the Rom Block structure // typedef struct _CM_ROM_BLOCK { ULONG Address; ULONG Size; } CM_ROM_BLOCK, *PCM_ROM_BLOCK; // begin_ntminiport begin_ntndis #include "pshpack1.h" // end_ntminiport end_ntndis // // Define INT13 driver parameter block // typedef struct _CM_INT13_DRIVE_PARAMETER { USHORT DriveSelect; ULONG MaxCylinders; USHORT SectorsPerTrack; USHORT MaxHeads; USHORT NumberDrives; } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER; // begin_ntminiport begin_ntndis // // Define Mca POS data block for slot // typedef struct _CM_MCA_POS_DATA { USHORT AdapterId; UCHAR PosData1; UCHAR PosData2; UCHAR PosData3; UCHAR PosData4; } CM_MCA_POS_DATA, *PCM_MCA_POS_DATA; // // Memory configuration of eisa data block structure // typedef struct _EISA_MEMORY_TYPE { UCHAR ReadWrite: 1; UCHAR Cached : 1; UCHAR Reserved0 :1; UCHAR Type:2; UCHAR Shared:1; UCHAR Reserved1 :1; UCHAR MoreEntries : 1; } EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE; typedef struct _EISA_MEMORY_CONFIGURATION { EISA_MEMORY_TYPE ConfigurationByte; UCHAR DataSize; USHORT AddressLowWord; UCHAR AddressHighByte; USHORT MemorySize; } EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION; // // Interrupt configurationn of eisa data block structure // typedef struct _EISA_IRQ_DESCRIPTOR { UCHAR Interrupt : 4; UCHAR Reserved :1; UCHAR LevelTriggered :1; UCHAR Shared : 1; UCHAR MoreEntries : 1; } EISA_IRQ_DESCRIPTOR, *PEISA_IRQ_DESCRIPTOR; typedef struct _EISA_IRQ_CONFIGURATION { EISA_IRQ_DESCRIPTOR ConfigurationByte; UCHAR Reserved; } EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION; // // DMA description of eisa data block structure // typedef struct _DMA_CONFIGURATION_BYTE0 { UCHAR Channel : 3; UCHAR Reserved : 3; UCHAR Shared :1; UCHAR MoreEntries :1; } DMA_CONFIGURATION_BYTE0; typedef struct _DMA_CONFIGURATION_BYTE1 { UCHAR Reserved0 : 2; UCHAR TransferSize : 2; UCHAR Timing : 2; UCHAR Reserved1 : 2; } DMA_CONFIGURATION_BYTE1; typedef struct _EISA_DMA_CONFIGURATION { DMA_CONFIGURATION_BYTE0 ConfigurationByte0; DMA_CONFIGURATION_BYTE1 ConfigurationByte1; } EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION; // // Port description of eisa data block structure // typedef struct _EISA_PORT_DESCRIPTOR { UCHAR NumberPorts : 5; UCHAR Reserved :1; UCHAR Shared :1; UCHAR MoreEntries : 1; } EISA_PORT_DESCRIPTOR, *PEISA_PORT_DESCRIPTOR; typedef struct _EISA_PORT_CONFIGURATION { EISA_PORT_DESCRIPTOR Configuration; USHORT PortAddress; } EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION; // // Eisa slot information definition // N.B. This structure is different from the one defined // in ARC eisa addendum. // typedef struct _CM_EISA_SLOT_INFORMATION { UCHAR ReturnCode; UCHAR ReturnFlags; UCHAR MajorRevision; UCHAR MinorRevision; USHORT Checksum; UCHAR NumberFunctions; UCHAR FunctionInformation; ULONG CompressedId; } CM_EISA_SLOT_INFORMATION, *PCM_EISA_SLOT_INFORMATION; // // Eisa function information definition // typedef struct _CM_EISA_FUNCTION_INFORMATION { ULONG CompressedId; UCHAR IdSlotFlags1; UCHAR IdSlotFlags2; UCHAR MinorRevision; UCHAR MajorRevision; UCHAR Selections[26]; UCHAR FunctionFlags; UCHAR TypeString[80]; EISA_MEMORY_CONFIGURATION EisaMemory[9]; EISA_IRQ_CONFIGURATION EisaIrq[7]; EISA_DMA_CONFIGURATION EisaDma[4]; EISA_PORT_CONFIGURATION EisaPort[20]; UCHAR InitializationData[60]; } CM_EISA_FUNCTION_INFORMATION, *PCM_EISA_FUNCTION_INFORMATION; // // The following defines the way pnp bios information is stored in // the registry \\HKEY_LOCAL_MACHINE\HARDWARE\Description\System\MultifunctionAdapter\x // key, where x is an integer number indicating adapter instance. The // "Identifier" of the key must equal to "PNP BIOS" and the // "ConfigurationData" is organized as follow: // // CM_PNP_BIOS_INSTALLATION_CHECK + // CM_PNP_BIOS_DEVICE_NODE for device 1 + // CM_PNP_BIOS_DEVICE_NODE for device 2 + // ... // CM_PNP_BIOS_DEVICE_NODE for device n // // // Pnp BIOS device node structure // typedef struct _CM_PNP_BIOS_DEVICE_NODE { USHORT Size; UCHAR Node; ULONG ProductId; UCHAR DeviceType[3]; USHORT DeviceAttributes; // followed by AllocatedResourceBlock, PossibleResourceBlock // and CompatibleDeviceId } CM_PNP_BIOS_DEVICE_NODE,*PCM_PNP_BIOS_DEVICE_NODE; // // Pnp BIOS Installation check // typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK { UCHAR Signature[4]; // $PnP (ascii) UCHAR Revision; UCHAR Length; USHORT ControlField; UCHAR Checksum; ULONG EventFlagAddress; // Physical address USHORT RealModeEntryOffset; USHORT RealModeEntrySegment; USHORT ProtectedModeEntryOffset; ULONG ProtectedModeCodeBaseAddress; ULONG OemDeviceId; USHORT RealModeDataBaseAddress; ULONG ProtectedModeDataBaseAddress; } CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK; #include "poppack.h" // // Masks for EISA function information // #define EISA_FUNCTION_ENABLED 0x80 #define EISA_FREE_FORM_DATA 0x40 #define EISA_HAS_PORT_INIT_ENTRY 0x20 #define EISA_HAS_PORT_RANGE 0x10 #define EISA_HAS_DMA_ENTRY 0x08 #define EISA_HAS_IRQ_ENTRY 0x04 #define EISA_HAS_MEMORY_ENTRY 0x02 #define EISA_HAS_TYPE_ENTRY 0x01 #define EISA_HAS_INFORMATION EISA_HAS_PORT_RANGE + \ EISA_HAS_DMA_ENTRY + \ EISA_HAS_IRQ_ENTRY + \ EISA_HAS_MEMORY_ENTRY + \ EISA_HAS_TYPE_ENTRY // // Masks for EISA memory configuration // #define EISA_MORE_ENTRIES 0x80 #define EISA_SYSTEM_MEMORY 0x00 #define EISA_MEMORY_TYPE_RAM 0x01 // // Returned error code for EISA bios call // #define EISA_INVALID_SLOT 0x80 #define EISA_INVALID_FUNCTION 0x81 #define EISA_INVALID_CONFIGURATION 0x82 #define EISA_EMPTY_SLOT 0x83 #define EISA_INVALID_BIOS_CALL 0x86 // end_ntminiport end_ntndis // // The following structures are used to interpret mips // DeviceSpecificData of CM_PARTIAL_RESOURCE_DESCRIPTOR. // // // Device data records for adapters. // // // The device data record for the Emulex SCSI controller. // typedef struct _CM_SCSI_DEVICE_DATA { USHORT Version; USHORT Revision; UCHAR HostIdentifier; } CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA; // // Device data records for controllers. // // // The device data record for the Video controller. // typedef struct _CM_VIDEO_DEVICE_DATA { USHORT Version; USHORT Revision; ULONG VideoClock; } CM_VIDEO_DEVICE_DATA, *PCM_VIDEO_DEVICE_DATA; // // The device data record for the SONIC network controller. // typedef struct _CM_SONIC_DEVICE_DATA { USHORT Version; USHORT Revision; USHORT DataConfigurationRegister; UCHAR EthernetAddress[8]; } CM_SONIC_DEVICE_DATA, *PCM_SONIC_DEVICE_DATA; // // The device data record for the serial controller. // typedef struct _CM_SERIAL_DEVICE_DATA { USHORT Version; USHORT Revision; ULONG BaudClock; } CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA; // // Device data records for peripherals. // // // The device data record for the Monitor peripheral. // typedef struct _CM_MONITOR_DEVICE_DATA { USHORT Version; USHORT Revision; USHORT HorizontalScreenSize; USHORT VerticalScreenSize; USHORT HorizontalResolution; USHORT VerticalResolution; USHORT HorizontalDisplayTimeLow; USHORT HorizontalDisplayTime; USHORT HorizontalDisplayTimeHigh; USHORT HorizontalBackPorchLow; USHORT HorizontalBackPorch; USHORT HorizontalBackPorchHigh; USHORT HorizontalFrontPorchLow; USHORT HorizontalFrontPorch; USHORT HorizontalFrontPorchHigh; USHORT HorizontalSyncLow; USHORT HorizontalSync; USHORT HorizontalSyncHigh; USHORT VerticalBackPorchLow; USHORT VerticalBackPorch; USHORT VerticalBackPorchHigh; USHORT VerticalFrontPorchLow; USHORT VerticalFrontPorch; USHORT VerticalFrontPorchHigh; USHORT VerticalSyncLow; USHORT VerticalSync; USHORT VerticalSyncHigh; } CM_MONITOR_DEVICE_DATA, *PCM_MONITOR_DEVICE_DATA; // // The device data record for the Floppy peripheral. // typedef struct _CM_FLOPPY_DEVICE_DATA { USHORT Version; USHORT Revision; CHAR Size[8]; ULONG MaxDensity; ULONG MountDensity; // // New data fields for version >= 2.0 // UCHAR StepRateHeadUnloadTime; UCHAR HeadLoadTime; UCHAR MotorOffTime; UCHAR SectorLengthCode; UCHAR SectorPerTrack; UCHAR ReadWriteGapLength; UCHAR DataTransferLength; UCHAR FormatGapLength; UCHAR FormatFillCharacter; UCHAR HeadSettleTime; UCHAR MotorSettleTime; UCHAR MaximumTrackValue; UCHAR DataTransferRate; } CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA; // // The device data record for the Keyboard peripheral. // The KeyboardFlags is defined (by x86 BIOS INT 16h, function 02) as: // bit 7 : Insert on // bit 6 : Caps Lock on // bit 5 : Num Lock on // bit 4 : Scroll Lock on // bit 3 : Alt Key is down // bit 2 : Ctrl Key is down // bit 1 : Left shift key is down // bit 0 : Right shift key is down // typedef struct _CM_KEYBOARD_DEVICE_DATA { USHORT Version; USHORT Revision; UCHAR Type; UCHAR Subtype; USHORT KeyboardFlags; } CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA; // // Declaration of the structure for disk geometries // typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA { ULONG BytesPerSector; ULONG NumberOfCylinders; ULONG SectorsPerTrack; ULONG NumberOfHeads; } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA; // end_wdm // // Declaration of the structure for the PcCard ISA IRQ map // typedef struct _CM_PCCARD_DEVICE_DATA { UCHAR Flags; UCHAR ErrorCode; USHORT Reserved; ULONG BusData; ULONG DeviceId; ULONG LegacyBaseAddress; UCHAR IRQMap[16]; } CM_PCCARD_DEVICE_DATA, *PCM_PCCARD_DEVICE_DATA; // Definitions for Flags #define PCCARD_MAP_ERROR 0x01 #define PCCARD_DEVICE_PCI 0x10 #define PCCARD_SCAN_DISABLED 0x01 #define PCCARD_MAP_ZERO 0x02 #define PCCARD_NO_TIMER 0x03 #define PCCARD_NO_PIC 0x04 #define PCCARD_NO_LEGACY_BASE 0x05 #define PCCARD_DUP_LEGACY_BASE 0x06 #define PCCARD_NO_CONTROLLERS 0x07 // begin_wdm // begin_ntminiport // // Defines Resource Options // #define IO_RESOURCE_PREFERRED 0x01 #define IO_RESOURCE_DEFAULT 0x02 #define IO_RESOURCE_ALTERNATIVE 0x08 // // This structure defines one type of resource requested by the driver // typedef struct _IO_RESOURCE_DESCRIPTOR { UCHAR Option; UCHAR Type; // use CM_RESOURCE_TYPE UCHAR ShareDisposition; // use CM_SHARE_DISPOSITION UCHAR Spare1; USHORT Flags; // use CM resource flag defines USHORT Spare2; // align union { struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Port; struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Memory; struct { ULONG MinimumVector; ULONG MaximumVector; } Interrupt; struct { ULONG MinimumChannel; ULONG MaximumChannel; } Dma; struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Generic; struct { ULONG Data[3]; } DevicePrivate; // // Bus Number information. // struct { ULONG Length; ULONG MinBusNumber; ULONG MaxBusNumber; ULONG Reserved; } BusNumber; struct { ULONG Priority; // use LCPRI_Xxx values in cfg.h ULONG Reserved1; ULONG Reserved2; } ConfigData; } u; } IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR; // end_ntminiport typedef struct _IO_RESOURCE_LIST { USHORT Version; USHORT Revision; ULONG Count; IO_RESOURCE_DESCRIPTOR Descriptors[1]; } IO_RESOURCE_LIST, *PIO_RESOURCE_LIST; typedef struct _IO_RESOURCE_REQUIREMENTS_LIST { ULONG ListSize; INTERFACE_TYPE InterfaceType; // unused for WDM ULONG BusNumber; // unused for WDM ULONG SlotNumber; ULONG Reserved[3]; ULONG AlternativeLists; IO_RESOURCE_LIST List[1]; } IO_RESOURCE_REQUIREMENTS_LIST, *PIO_RESOURCE_REQUIREMENTS_LIST; // // Exception flag definitions. // // begin_winnt #define EXCEPTION_NONCONTINUABLE 0x1 // Noncontinuable exception // end_winnt // // Define maximum number of exception parameters. // // begin_winnt #define EXCEPTION_MAXIMUM_PARAMETERS 15 // maximum number of exception parameters // // Exception record definition. // typedef struct _EXCEPTION_RECORD { NTSTATUS ExceptionCode; ULONG ExceptionFlags; struct _EXCEPTION_RECORD *ExceptionRecord; PVOID ExceptionAddress; ULONG NumberParameters; ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD; typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; typedef struct _EXCEPTION_RECORD32 { NTSTATUS ExceptionCode; ULONG ExceptionFlags; ULONG ExceptionRecord; ULONG ExceptionAddress; ULONG NumberParameters; ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; typedef struct _EXCEPTION_RECORD64 { NTSTATUS ExceptionCode; ULONG ExceptionFlags; ULONG64 ExceptionRecord; ULONG64 ExceptionAddress; ULONG NumberParameters; ULONG __unusedAlignment; ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; // // Typedef for pointer returned by exception_info() // typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PCONTEXT ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; // end_winnt // // Define configuration routine types. // // Configuration information. // typedef enum _CONFIGURATION_TYPE { ArcSystem, CentralProcessor, FloatingPointProcessor, PrimaryIcache, PrimaryDcache, SecondaryIcache, SecondaryDcache, SecondaryCache, EisaAdapter, TcAdapter, ScsiAdapter, DtiAdapter, MultiFunctionAdapter, DiskController, TapeController, CdromController, WormController, SerialController, NetworkController, DisplayController, ParallelController, PointerController, KeyboardController, AudioController, OtherController, DiskPeripheral, FloppyDiskPeripheral, TapePeripheral, ModemPeripheral, MonitorPeripheral, PrinterPeripheral, PointerPeripheral, KeyboardPeripheral, TerminalPeripheral, OtherPeripheral, LinePeripheral, NetworkPeripheral, SystemMemory, DockingInformation, RealModeIrqRoutingTable, RealModePCIEnumeration, MaximumType } CONFIGURATION_TYPE, *PCONFIGURATION_TYPE; #define THREAD_WAIT_OBJECTS 3 // Builtin usable wait blocks // #if defined(_X86_) #define PAUSE_PROCESSOR _asm { rep nop } #else #define PAUSE_PROCESSOR #endif // // Interrupt modes. // typedef enum _KINTERRUPT_MODE { LevelSensitive, Latched } KINTERRUPT_MODE; // // Wait reasons // typedef enum _KWAIT_REASON { Executive, FreePage, PageIn, PoolAllocation, DelayExecution, Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn, WrPoolAllocation, WrDelayExecution, WrSuspended, WrUserRequest, WrEventPair, WrQueue, WrLpcReceive, WrLpcReply, WrVirtualMemory, WrPageOut, WrRendezvous, Spare2, Spare3, Spare4, Spare5, Spare6, WrKernel, MaximumWaitReason } KWAIT_REASON; typedef struct _KWAIT_BLOCK { LIST_ENTRY WaitListEntry; struct _KTHREAD *RESTRICTED_POINTER Thread; PVOID Object; struct _KWAIT_BLOCK *RESTRICTED_POINTER NextWaitBlock; USHORT WaitKey; USHORT WaitType; } KWAIT_BLOCK, *PKWAIT_BLOCK, *RESTRICTED_POINTER PRKWAIT_BLOCK; // // Thread start function // typedef VOID (*PKSTART_ROUTINE) ( IN PVOID StartContext ); // // Kernel object structure definitions // // // Device Queue object and entry // typedef struct _KDEVICE_QUEUE { CSHORT Type; CSHORT Size; LIST_ENTRY DeviceListHead; KSPIN_LOCK Lock; BOOLEAN Busy; } KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE; typedef struct _KDEVICE_QUEUE_ENTRY { LIST_ENTRY DeviceListEntry; ULONG SortKey; BOOLEAN Inserted; } KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY, *RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY; // // Define the interrupt service function type and the empty struct // type. // typedef BOOLEAN (*PKSERVICE_ROUTINE) ( IN struct _KINTERRUPT *Interrupt, IN PVOID ServiceContext ); // // Mutant object // typedef struct _KMUTANT { DISPATCHER_HEADER Header; LIST_ENTRY MutantListEntry; struct _KTHREAD *RESTRICTED_POINTER OwnerThread; BOOLEAN Abandoned; UCHAR ApcDisable; } KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX; // // // Semaphore object // typedef struct _KSEMAPHORE { DISPATCHER_HEADER Header; LONG Limit; } KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE; // // DPC object // NTKERNELAPI VOID KeInitializeDpc ( IN PRKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext ); NTKERNELAPI BOOLEAN KeInsertQueueDpc ( IN PRKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); NTKERNELAPI BOOLEAN KeRemoveQueueDpc ( IN PRKDPC Dpc ); // end_wdm NTKERNELAPI VOID KeSetImportanceDpc ( IN PRKDPC Dpc, IN KDPC_IMPORTANCE Importance ); NTKERNELAPI VOID KeSetTargetProcessorDpc ( IN PRKDPC Dpc, IN CCHAR Number ); // begin_wdm NTKERNELAPI VOID KeFlushQueuedDpcs ( VOID ); // // Device queue object // NTKERNELAPI VOID KeInitializeDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue ); NTKERNELAPI BOOLEAN KeInsertDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry ); NTKERNELAPI BOOLEAN KeInsertByKeyDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry, IN ULONG SortKey ); NTKERNELAPI PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue ); NTKERNELAPI PKDEVICE_QUEUE_ENTRY KeRemoveByKeyDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN ULONG SortKey ); NTKERNELAPI PKDEVICE_QUEUE_ENTRY KeRemoveByKeyDeviceQueueIfBusy ( IN PKDEVICE_QUEUE DeviceQueue, IN ULONG SortKey ); NTKERNELAPI BOOLEAN KeRemoveEntryDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry ); NTKERNELAPI BOOLEAN KeSynchronizeExecution ( IN PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext ); NTKERNELAPI KIRQL KeAcquireInterruptSpinLock ( IN PKINTERRUPT Interrupt ); NTKERNELAPI VOID KeReleaseInterruptSpinLock ( IN PKINTERRUPT Interrupt, IN KIRQL OldIrql ); // // Kernel dispatcher object functions // // Event Object // NTKERNELAPI VOID KeInitializeEvent ( IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State ); NTKERNELAPI VOID KeClearEvent ( IN PRKEVENT Event ); NTKERNELAPI LONG KePulseEvent ( IN PRKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait ); NTKERNELAPI LONG KeReadStateEvent ( IN PRKEVENT Event ); NTKERNELAPI LONG KeResetEvent ( IN PRKEVENT Event ); NTKERNELAPI LONG KeSetEvent ( IN PRKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait ); // // Mutex object // NTKERNELAPI VOID KeInitializeMutex ( IN PRKMUTEX Mutex, IN ULONG Level ); NTKERNELAPI LONG KeReadStateMutex ( IN PRKMUTEX Mutex ); NTKERNELAPI LONG KeReleaseMutex ( IN PRKMUTEX Mutex, IN BOOLEAN Wait ); // // Semaphore object // NTKERNELAPI VOID KeInitializeSemaphore ( IN PRKSEMAPHORE Semaphore, IN LONG Count, IN LONG Limit ); NTKERNELAPI LONG KeReadStateSemaphore ( IN PRKSEMAPHORE Semaphore ); NTKERNELAPI LONG KeReleaseSemaphore ( IN PRKSEMAPHORE Semaphore, IN KPRIORITY Increment, IN LONG Adjustment, IN BOOLEAN Wait ); NTKERNELAPI NTSTATUS KeDelayExecutionThread ( IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval ); NTKERNELAPI KPRIORITY KeQueryPriorityThread ( IN PKTHREAD Thread ); NTKERNELAPI ULONG KeQueryRuntimeThread ( IN PKTHREAD Thread, OUT PULONG UserTime ); NTKERNELAPI LONG KeSetBasePriorityThread ( IN PKTHREAD Thread, IN LONG Increment ); NTKERNELAPI KPRIORITY KeSetPriorityThread ( IN PKTHREAD Thread, IN KPRIORITY Priority ); #if ((defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) ||defined(_NTHAL_)) && !defined(_NTSYSTEM_DRIVER_) || defined(_NTOSP_)) // begin_wdm NTKERNELAPI VOID KeEnterCriticalRegion ( VOID ); NTKERNELAPI VOID KeLeaveCriticalRegion ( VOID ); NTKERNELAPI BOOLEAN KeAreApcsDisabled( VOID ); // end_wdm #else //++ // // VOID // KeEnterCriticalRegion ( // VOID // ) // // // Routine Description: // // This function disables kernel APC's. // // N.B. The following code does not require any interlocks. There are // two cases of interest: 1) On an MP system, the thread cannot // be running on two processors as once, and 2) if the thread is // is interrupted to deliver a kernel mode APC which also calls // this routine, the values read and stored will stack and unstack // properly. // // Arguments: // // None. // // Return Value: // // None. //-- #define KeEnterCriticalRegion() KeGetCurrentThread()->KernelApcDisable -= 1 //++ // // VOID // KeEnterCriticalRegionThread ( // PKTHREAD CurrentThread // ) // // // Routine Description: // // This function disables kernel APC's for the current thread only. // // N.B. The following code does not require any interlocks. There are // two cases of interest: 1) On an MP system, the thread cannot // be running on two processors as once, and 2) if the thread is // is interrupted to deliver a kernel mode APC which also calls // this routine, the values read and stored will stack and unstack // properly. // // Arguments: // // CurrentThread - Current thread thats executing. This must be the // current thread. // // Return Value: // // None. //-- #define KeEnterCriticalRegionThread(CurrentThread) { \ ASSERT (CurrentThread == KeGetCurrentThread ()); \ (CurrentThread)->KernelApcDisable -= 1; \ } //++ // // VOID // KeLeaveCriticalRegion ( // VOID // ) // // // Routine Description: // // This function enables kernel APC's. // // N.B. The following code does not require any interlocks. There are // two cases of interest: 1) On an MP system, the thread cannot // be running on two processors as once, and 2) if the thread is // is interrupted to deliver a kernel mode APC which also calls // this routine, the values read and stored will stack and unstack // properly. // // Arguments: // // None. // // Return Value: // // None. //-- #define KeLeaveCriticalRegion() KiLeaveCriticalRegion() //++ // // VOID // KeLeaveCriticalRegionThread ( // PKTHREAD CurrentThread // ) // // // Routine Description: // // This function enables kernel APC's for the current thread. // // N.B. The following code does not require any interlocks. There are // two cases of interest: 1) On an MP system, the thread cannot // be running on two processors as once, and 2) if the thread is // is interrupted to deliver a kernel mode APC which also calls // this routine, the values read and stored will stack and unstack // properly. // // Arguments: // // CurrentThread - Current thread thats executing. This must be the // current thread. // // Return Value: // // None. //-- #define KeLeaveCriticalRegionThread(CurrentThread) { \ ASSERT (CurrentThread == KeGetCurrentThread ()); \ KiLeaveCriticalRegionThread(CurrentThread); \ } #define KeAreApcsDisabled() (KeGetCurrentThread()->KernelApcDisable != 0); //++ // // KPROCESSOR_MODE // KeGetPReviousMode ( // VOID // ) // // // Routine Description: // // This function gets the threads previous mode from the trap frame // // // Arguments: // // None. // // Return Value: // // KPROCESSOR_MODE - Previous mode for this thread //-- #define KeGetPreviousMode() (KeGetCurrentThread()->PreviousMode) //++ // // KPROCESSOR_MODE // KeGetPReviousModeByThread ( // PKTHREAD xxCurrentThread // ) // // // Routine Description: // // This function gets the threads previous mode from the trap frame. // // // Arguments: // // xxCurrentThread - Current thread. This can not be a cross thread reference // // Return Value: // // KPROCESSOR_MODE - Previous mode for this thread //-- #define KeGetPreviousModeByThread(xxCurrentThread) (ASSERT (xxCurrentThread == KeGetCurrentThread ()),\ (xxCurrentThread)->PreviousMode) #endif // begin_wdm // // Timer object // NTKERNELAPI VOID KeInitializeTimer ( IN PKTIMER Timer ); NTKERNELAPI VOID KeInitializeTimerEx ( IN PKTIMER Timer, IN TIMER_TYPE Type ); NTKERNELAPI BOOLEAN KeCancelTimer ( IN PKTIMER ); NTKERNELAPI BOOLEAN KeReadStateTimer ( PKTIMER Timer ); NTKERNELAPI BOOLEAN KeSetTimer ( IN PKTIMER Timer, IN LARGE_INTEGER DueTime, IN PKDPC Dpc OPTIONAL ); NTKERNELAPI BOOLEAN KeSetTimerEx ( IN PKTIMER Timer, IN LARGE_INTEGER DueTime, IN LONG Period OPTIONAL, IN PKDPC Dpc OPTIONAL ); #define KeWaitForMutexObject KeWaitForSingleObject NTKERNELAPI NTSTATUS KeWaitForMultipleObjects ( IN ULONG Count, IN PVOID Object[], IN WAIT_TYPE WaitType, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL, IN PKWAIT_BLOCK WaitBlockArray OPTIONAL ); NTKERNELAPI NTSTATUS KeWaitForSingleObject ( IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ); // // On X86 the following routines are defined in the HAL and imported by // all other modules. // #if defined(_X86_) && !defined(_NTHAL_) #define _DECL_HAL_KE_IMPORT __declspec(dllimport) #else #define _DECL_HAL_KE_IMPORT #endif // // spin lock functions // NTKERNELAPI VOID NTAPI KeInitializeSpinLock ( IN PKSPIN_LOCK SpinLock ); #if defined(_X86_) NTKERNELAPI VOID FASTCALL KefAcquireSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI VOID FASTCALL KefReleaseSpinLockFromDpcLevel ( IN PKSPIN_LOCK SpinLock ); #define KeAcquireSpinLockAtDpcLevel(a) KefAcquireSpinLockAtDpcLevel(a) #define KeReleaseSpinLockFromDpcLevel(a) KefReleaseSpinLockFromDpcLevel(a) _DECL_HAL_KE_IMPORT KIRQL FASTCALL KfAcquireSpinLock ( IN PKSPIN_LOCK SpinLock ); _DECL_HAL_KE_IMPORT VOID FASTCALL KfReleaseSpinLock ( IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql ); // end_wdm _DECL_HAL_KE_IMPORT KIRQL FASTCALL KeAcquireSpinLockRaiseToSynch ( IN PKSPIN_LOCK SpinLock ); // begin_wdm #define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a) #define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b) #else NTKERNELAPI KIRQL FASTCALL KeAcquireSpinLockRaiseToSynch ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI VOID KeAcquireSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI VOID KeReleaseSpinLockFromDpcLevel ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI KIRQL KeAcquireSpinLockRaiseToDpc ( IN PKSPIN_LOCK SpinLock ); #define KeAcquireSpinLock(SpinLock, OldIrql) \ *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock) NTKERNELAPI VOID KeReleaseSpinLock ( IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql ); #endif NTKERNELAPI BOOLEAN FASTCALL KeTryToAcquireSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock ); #if defined(_X86_) _DECL_HAL_KE_IMPORT VOID FASTCALL KfLowerIrql ( IN KIRQL NewIrql ); _DECL_HAL_KE_IMPORT KIRQL FASTCALL KfRaiseIrql ( IN KIRQL NewIrql ); // end_wdm _DECL_HAL_KE_IMPORT KIRQL KeRaiseIrqlToDpcLevel( VOID ); _DECL_HAL_KE_IMPORT KIRQL KeRaiseIrqlToSynchLevel( VOID ); // begin_wdm #define KeLowerIrql(a) KfLowerIrql(a) #define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a) // end_wdm // begin_wdm #elif defined(_ALPHA_) #define KeLowerIrql(a) __swpirql(a) #define KeRaiseIrql(a,b) *(b) = __swpirql(a) // end_wdm extern ULONG KiSynchIrql; #define KfRaiseIrql(a) __swpirql(a) #define KeRaiseIrqlToDpcLevel() __swpirql(DISPATCH_LEVEL) #define KeRaiseIrqlToSynchLevel() __swpirql((UCHAR)KiSynchIrql) // begin_wdm #elif defined(_IA64_) VOID KeLowerIrql ( IN KIRQL NewIrql ); VOID KeRaiseIrql ( IN KIRQL NewIrql, OUT PKIRQL OldIrql ); // end_wdm KIRQL KfRaiseIrql ( IN KIRQL NewIrql ); KIRQL KeRaiseIrqlToDpcLevel ( VOID ); KIRQL KeRaiseIrqlToSynchLevel ( VOID ); // begin_wdm #elif defined(_AMD64_) // // These function are defined in amd64.h for the AMD64 platform. // #else #error "no target architecture" #endif // // Queued spin lock functions for "in stack" lock handles. // // The following three functions RAISE and LOWER IRQL when a queued // in stack spin lock is acquired or released using these routines. // _DECL_HAL_KE_IMPORT VOID FASTCALL KeAcquireInStackQueuedSpinLock ( IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle ); _DECL_HAL_KE_IMPORT VOID FASTCALL KeReleaseInStackQueuedSpinLock ( IN PKLOCK_QUEUE_HANDLE LockHandle ); // // The following two functions do NOT raise or lower IRQL when a queued // in stack spin lock is acquired or released using these functions. // NTKERNELAPI VOID FASTCALL KeAcquireInStackQueuedSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock, IN PKLOCK_QUEUE_HANDLE LockHandle ); NTKERNELAPI VOID FASTCALL KeReleaseInStackQueuedSpinLockFromDpcLevel ( IN PKLOCK_QUEUE_HANDLE LockHandle ); // // Miscellaneous kernel functions // typedef enum _KBUGCHECK_BUFFER_DUMP_STATE { BufferEmpty, BufferInserted, BufferStarted, BufferFinished, BufferIncomplete } KBUGCHECK_BUFFER_DUMP_STATE; typedef VOID (*PKBUGCHECK_CALLBACK_ROUTINE) ( IN PVOID Buffer, IN ULONG Length ); typedef struct _KBUGCHECK_CALLBACK_RECORD { LIST_ENTRY Entry; PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine; PVOID Buffer; ULONG Length; PUCHAR Component; ULONG_PTR Checksum; UCHAR State; } KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD; #define KeInitializeCallbackRecord(CallbackRecord) \ (CallbackRecord)->State = BufferEmpty NTKERNELAPI BOOLEAN KeDeregisterBugCheckCallback ( IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord ); NTKERNELAPI BOOLEAN KeRegisterBugCheckCallback ( IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord, IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine, IN PVOID Buffer, IN ULONG Length, IN PUCHAR Component ); typedef enum _KBUGCHECK_CALLBACK_REASON { KbCallbackInvalid, KbCallbackReserved1, KbCallbackSecondaryDumpData, KbCallbackDumpIo, } KBUGCHECK_CALLBACK_REASON; typedef VOID (*PKBUGCHECK_REASON_CALLBACK_ROUTINE) ( IN KBUGCHECK_CALLBACK_REASON Reason, IN struct _KBUGCHECK_REASON_CALLBACK_RECORD* Record, IN OUT PVOID ReasonSpecificData, IN ULONG ReasonSpecificDataLength ); typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD { LIST_ENTRY Entry; PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine; PUCHAR Component; ULONG_PTR Checksum; KBUGCHECK_CALLBACK_REASON Reason; UCHAR State; } KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD; typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA { IN PVOID InBuffer; IN ULONG InBufferLength; IN ULONG MaximumAllowed; OUT GUID Guid; OUT PVOID OutBuffer; OUT ULONG OutBufferLength; } KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA; typedef enum _KBUGCHECK_DUMP_IO_TYPE { KbDumpIoInvalid, KbDumpIoHeader, KbDumpIoBody, KbDumpIoSecondaryData, KbDumpIoComplete } KBUGCHECK_DUMP_IO_TYPE; typedef struct _KBUGCHECK_DUMP_IO { IN ULONG64 Offset; IN PVOID Buffer; IN ULONG BufferLength; IN KBUGCHECK_DUMP_IO_TYPE Type; } KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO; NTKERNELAPI BOOLEAN KeDeregisterBugCheckReasonCallback ( IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord ); NTKERNELAPI BOOLEAN KeRegisterBugCheckReasonCallback ( IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord, IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine, IN KBUGCHECK_CALLBACK_REASON Reason, IN PUCHAR Component ); // end_wdm NTKERNELAPI DECLSPEC_NORETURN VOID NTAPI KeBugCheck ( IN ULONG BugCheckCode ); NTKERNELAPI DECLSPEC_NORETURN VOID KeBugCheckEx( IN ULONG BugCheckCode, IN ULONG_PTR BugCheckParameter1, IN ULONG_PTR BugCheckParameter2, IN ULONG_PTR BugCheckParameter3, IN ULONG_PTR BugCheckParameter4 ); NTKERNELAPI ULONGLONG KeQueryInterruptTime ( VOID ); NTKERNELAPI VOID KeQuerySystemTime ( OUT PLARGE_INTEGER CurrentTime ); NTKERNELAPI ULONG KeQueryTimeIncrement ( VOID ); NTKERNELAPI ULONG KeGetRecommendedSharedDataAlignment ( VOID ); // end_wdm NTKERNELAPI KAFFINITY KeQueryActiveProcessors ( VOID ); // // Time update notify routine. // typedef VOID (FASTCALL *PTIME_UPDATE_NOTIFY_ROUTINE)( IN HANDLE ThreadId, IN KPROCESSOR_MODE Mode ); NTKERNELAPI VOID FASTCALL KeSetTimeUpdateNotifyRoutine( IN PTIME_UPDATE_NOTIFY_ROUTINE NotifyRoutine ); #if defined(_AMD64_) || defined(_ALPHA_) || defined(_IA64_) extern volatile LARGE_INTEGER KeTickCount; #else extern volatile KSYSTEM_TIME KeTickCount; #endif typedef enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached = 2 } MEMORY_CACHING_TYPE_ORIG; typedef enum _MEMORY_CACHING_TYPE { MmNonCached = FALSE, MmCached = TRUE, MmWriteCombined = MmFrameBufferCached, MmHardwareCoherentCached, MmNonCachedUnordered, // IA64 MmUSWCCached, MmMaximumCacheType } MEMORY_CACHING_TYPE; // // Define external data. // because of indirection for all drivers external to ntoskrnl these are actually ptrs // #if defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_) extern PBOOLEAN KdDebuggerNotPresent; extern PBOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED *KdDebuggerEnabled #define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent #else extern BOOLEAN KdDebuggerNotPresent; extern BOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED KdDebuggerEnabled #define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent #endif VOID KdDisableDebugger( VOID ); VOID KdEnableDebugger( VOID ); // // Pool Allocation routines (in pool.c) // typedef enum _POOL_TYPE { NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType, NonPagedPoolCacheAligned, PagedPoolCacheAligned, NonPagedPoolCacheAlignedMustS, MaxPoolType // end_wdm , // // Note these per session types are carefully chosen so that the appropriate // masking still applies as well as MaxPoolType above. // NonPagedPoolSession = 32, PagedPoolSession = NonPagedPoolSession + 1, NonPagedPoolMustSucceedSession = PagedPoolSession + 1, DontUseThisTypeSession = NonPagedPoolMustSucceedSession + 1, NonPagedPoolCacheAlignedSession = DontUseThisTypeSession + 1, PagedPoolCacheAlignedSession = NonPagedPoolCacheAlignedSession + 1, NonPagedPoolCacheAlignedMustSSession = PagedPoolCacheAlignedSession + 1, // begin_wdm } POOL_TYPE; #define POOL_COLD_ALLOCATION 256 // Note this cannot encode into the header. NTKERNELAPI PVOID ExAllocatePool( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes ); NTKERNELAPI PVOID ExAllocatePoolWithQuota( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes ); NTKERNELAPI PVOID NTAPI ExAllocatePoolWithTag( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag ); // // _EX_POOL_PRIORITY_ provides a method for the system to handle requests // intelligently in low resource conditions. // // LowPoolPriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is low on resources. An example of // this could be for a non-critical network connection where the driver can // handle the failure case when system resources are close to being depleted. // // NormalPoolPriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is very low on resources. An example // of this could be for a non-critical local filesystem request. // // HighPoolPriority should be used when it is unacceptable to the driver for the // mapping request to fail unless the system is completely out of resources. // An example of this would be the paging file path in a driver. // // SpecialPool can be specified to bound the allocation at a page end (or // beginning). This should only be done on systems being debugged as the // memory cost is expensive. // // N.B. These values are very carefully chosen so that the pool allocation // code can quickly crack the priority request. // typedef enum _EX_POOL_PRIORITY { LowPoolPriority, LowPoolPrioritySpecialPoolOverrun = 8, LowPoolPrioritySpecialPoolUnderrun = 9, NormalPoolPriority = 16, NormalPoolPrioritySpecialPoolOverrun = 24, NormalPoolPrioritySpecialPoolUnderrun = 25, HighPoolPriority = 32, HighPoolPrioritySpecialPoolOverrun = 40, HighPoolPrioritySpecialPoolUnderrun = 41 } EX_POOL_PRIORITY; NTKERNELAPI PVOID NTAPI ExAllocatePoolWithTagPriority( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag, IN EX_POOL_PRIORITY Priority ); #ifndef POOL_TAGGING #define ExAllocatePoolWithTag(a,b,c) ExAllocatePool(a,b) #endif //POOL_TAGGING NTKERNELAPI PVOID ExAllocatePoolWithQuotaTag( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag ); #ifndef POOL_TAGGING #define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b) #endif //POOL_TAGGING NTKERNELAPI VOID NTAPI ExFreePool( IN PVOID P ); // end_wdm #if defined(POOL_TAGGING) #define ExFreePool(a) ExFreePoolWithTag(a,0) #endif // // If high order bit in Pool tag is set, then must use ExFreePoolWithTag to free // #define PROTECTED_POOL 0x80000000 // begin_wdm NTKERNELAPI VOID ExFreePoolWithTag( IN PVOID P, IN ULONG Tag ); // // Routines to support fast mutexes. // typedef struct _FAST_MUTEX { LONG Count; PKTHREAD Owner; ULONG Contention; KEVENT Event; ULONG OldIrql; } FAST_MUTEX, *PFAST_MUTEX; #define ExInitializeFastMutex(_FastMutex) \ (_FastMutex)->Count = 1; \ (_FastMutex)->Owner = NULL; \ (_FastMutex)->Contention = 0; \ KeInitializeEvent(&(_FastMutex)->Event, \ SynchronizationEvent, \ FALSE); NTKERNELAPI VOID FASTCALL ExAcquireFastMutexUnsafe ( IN PFAST_MUTEX FastMutex ); NTKERNELAPI VOID FASTCALL ExReleaseFastMutexUnsafe ( IN PFAST_MUTEX FastMutex ); #if defined(_ALPHA_) || defined(_IA64_) || defined(_AMD64_) NTKERNELAPI VOID FASTCALL ExAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); NTKERNELAPI VOID FASTCALL ExReleaseFastMutex ( IN PFAST_MUTEX FastMutex ); NTKERNELAPI BOOLEAN FASTCALL ExTryToAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); #elif defined(_X86_) NTHALAPI VOID FASTCALL ExAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); NTHALAPI VOID FASTCALL ExReleaseFastMutex ( IN PFAST_MUTEX FastMutex ); NTHALAPI BOOLEAN FASTCALL ExTryToAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); #else #error "Target architecture not defined" #endif // NTKERNELAPI VOID FASTCALL ExInterlockedAddLargeStatistic ( IN PLARGE_INTEGER Addend, IN ULONG Increment ); // end_ntndis NTKERNELAPI LARGE_INTEGER ExInterlockedAddLargeInteger ( IN PLARGE_INTEGER Addend, IN LARGE_INTEGER Increment, IN PKSPIN_LOCK Lock ); NTKERNELAPI ULONG FASTCALL ExInterlockedAddUlong ( IN PULONG Addend, IN ULONG Increment, IN PKSPIN_LOCK Lock ); #if defined(_AMD64_) || defined(_AXP64_) || defined(_IA64_) #define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \ InterlockedCompareExchange64(Destination, *(Exchange), *(Comperand)) #elif defined(_ALPHA_) #define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \ ExpInterlockedCompareExchange64(Destination, Exchange, Comperand) #else #define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \ ExfInterlockedCompareExchange64(Destination, Exchange, Comperand) #endif NTKERNELAPI PLIST_ENTRY FASTCALL ExInterlockedInsertHeadList ( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); NTKERNELAPI PLIST_ENTRY FASTCALL ExInterlockedInsertTailList ( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); NTKERNELAPI PLIST_ENTRY FASTCALL ExInterlockedRemoveHeadList ( IN PLIST_ENTRY ListHead, IN PKSPIN_LOCK Lock ); NTKERNELAPI PSINGLE_LIST_ENTRY FASTCALL ExInterlockedPopEntryList ( IN PSINGLE_LIST_ENTRY ListHead, IN PKSPIN_LOCK Lock ); NTKERNELAPI PSINGLE_LIST_ENTRY FASTCALL ExInterlockedPushEntryList ( IN PSINGLE_LIST_ENTRY ListHead, IN PSINGLE_LIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); // // Define interlocked sequenced listhead functions. // // A sequenced interlocked list is a singly linked list with a header that // contains the current depth and a sequence number. Each time an entry is // inserted or removed from the list the depth is updated and the sequence // number is incremented. This enables AMD64, IA64, and Pentium and later // machines to insert and remove from the list without the use of spinlocks. // #if !defined(_WINBASE_) /*++ Routine Description: This function initializes a sequenced singly linked listhead. Arguments: SListHead - Supplies a pointer to a sequenced singly linked listhead. Return Value: None. --*/ #if defined(_WIN64) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_)) NTKERNELAPI VOID InitializeSListHead ( IN PSLIST_HEADER SListHead ); #else __inline VOID InitializeSListHead ( IN PSLIST_HEADER SListHead ) { #ifdef _WIN64 // // Slist headers must be 16 byte aligned. // if ((ULONG_PTR) SListHead & 0x0f) { DbgPrint( "InitializeSListHead unaligned Slist header. Address = %p, Caller = %p\n", SListHead, _ReturnAddress()); RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT); } #endif SListHead->Alignment = 0; // // For IA-64 we save the region number of the elements of the list in a // separate field. This imposes the requirement that all elements stored // in the list are from the same region. #if defined(_IA64_) SListHead->Region = (ULONG_PTR)SListHead & VRN_MASK; #elif defined(_AMD64_) SListHead->Region = 0; #endif return; } #endif #endif // !defined(_WINBASE_) #define ExInitializeSListHead InitializeSListHead PSLIST_ENTRY FirstEntrySList ( IN const SLIST_HEADER *SListHead ); /*++ Routine Description: This function queries the current number of entries contained in a sequenced single linked list. Arguments: SListHead - Supplies a pointer to the sequenced listhead which is be queried. Return Value: The current number of entries in the sequenced singly linked list is returned as the function value. --*/ #if defined(_WIN64) #if (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_)) NTKERNELAPI USHORT ExQueryDepthSList ( IN PSLIST_HEADER SListHead ); #else __inline USHORT ExQueryDepthSList ( IN PSLIST_HEADER SListHead ) { return (USHORT)(SListHead->Alignment & 0xffff); } #endif #else #define ExQueryDepthSList(_listhead_) (_listhead_)->Depth #endif #if defined(_WIN64) #define ExInterlockedPopEntrySList(Head, Lock) \ ExpInterlockedPopEntrySList(Head) #define ExInterlockedPushEntrySList(Head, Entry, Lock) \ ExpInterlockedPushEntrySList(Head, Entry) #define ExInterlockedFlushSList(Head) \ ExpInterlockedFlushSList(Head) #if !defined(_WINBASE_) #define InterlockedPopEntrySList(Head) \ ExpInterlockedPopEntrySList(Head) #define InterlockedPushEntrySList(Head, Entry) \ ExpInterlockedPushEntrySList(Head, Entry) #define InterlockedFlushSList(Head) \ ExpInterlockedFlushSList(Head) #define QueryDepthSList(Head) \ ExQueryDepthSList(Head) #endif // !defined(_WINBASE_) NTKERNELAPI PSLIST_ENTRY ExpInterlockedPopEntrySList ( IN PSLIST_HEADER ListHead ); NTKERNELAPI PSLIST_ENTRY ExpInterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry ); NTKERNELAPI PSLIST_ENTRY ExpInterlockedFlushSList ( IN PSLIST_HEADER ListHead ); #else #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) NTKERNELAPI PSLIST_ENTRY FASTCALL ExInterlockedPopEntrySList ( IN PSLIST_HEADER ListHead, IN PKSPIN_LOCK Lock ); NTKERNELAPI PSLIST_ENTRY FASTCALL ExInterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); #else #define ExInterlockedPopEntrySList(ListHead, Lock) \ InterlockedPopEntrySList(ListHead) #define ExInterlockedPushEntrySList(ListHead, ListEntry, Lock) \ InterlockedPushEntrySList(ListHead, ListEntry) #endif NTKERNELAPI PSLIST_ENTRY FASTCALL ExInterlockedFlushSList ( IN PSLIST_HEADER ListHead ); #if !defined(_WINBASE_) NTKERNELAPI PSLIST_ENTRY FASTCALL InterlockedPopEntrySList ( IN PSLIST_HEADER ListHead ); NTKERNELAPI PSLIST_ENTRY FASTCALL InterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry ); #define InterlockedFlushSList(Head) \ ExInterlockedFlushSList(Head) #define QueryDepthSList(Head) \ ExQueryDepthSList(Head) #endif // !defined(_WINBASE_) #endif // defined(_WIN64) typedef PVOID (*PALLOCATE_FUNCTION) ( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag ); typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) typedef struct _GENERAL_LOOKASIDE { #else typedef struct DECLSPEC_CACHEALIGN _GENERAL_LOOKASIDE { #endif SLIST_HEADER ListHead; USHORT Depth; USHORT MaximumDepth; ULONG TotalAllocates; union { ULONG AllocateMisses; ULONG AllocateHits; }; ULONG TotalFrees; union { ULONG FreeMisses; ULONG FreeHits; }; POOL_TYPE Type; ULONG Tag; ULONG Size; PALLOCATE_FUNCTION Allocate; PFREE_FUNCTION Free; LIST_ENTRY ListEntry; ULONG LastTotalAllocates; union { ULONG LastAllocateMisses; ULONG LastAllocateHits; }; ULONG Future[2]; } GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE; #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) typedef struct _NPAGED_LOOKASIDE_LIST { #else typedef struct DECLSPEC_CACHEALIGN _NPAGED_LOOKASIDE_LIST { #endif GENERAL_LOOKASIDE L; #if !defined(_AMD64_) && !defined(_IA64_) KSPIN_LOCK Lock__ObsoleteButDoNotDelete; #endif } NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST; NTKERNELAPI VOID ExInitializeNPagedLookasideList ( IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate, IN PFREE_FUNCTION Free, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth ); NTKERNELAPI VOID ExDeleteNPagedLookasideList ( IN PNPAGED_LOOKASIDE_LIST Lookaside ); __inline PVOID ExAllocateFromNPagedLookasideList( IN PNPAGED_LOOKASIDE_LIST Lookaside ) /*++ Routine Description: This function removes (pops) the first entry from the specified nonpaged lookaside list. Arguments: Lookaside - Supplies a pointer to a nonpaged lookaside list structure. Return Value: If an entry is removed from the specified lookaside list, then the address of the entry is returned as the function value. Otherwise, NULL is returned. --*/ { PVOID Entry; Lookaside->L.TotalAllocates += 1; #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead, &Lookaside->Lock__ObsoleteButDoNotDelete); #else Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead); #endif if (Entry == NULL) { Lookaside->L.AllocateMisses += 1; Entry = (Lookaside->L.Allocate)(Lookaside->L.Type, Lookaside->L.Size, Lookaside->L.Tag); } return Entry; } __inline VOID ExFreeToNPagedLookasideList( IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry ) /*++ Routine Description: This function inserts (pushes) the specified entry into the specified nonpaged lookaside list. Arguments: Lookaside - Supplies a pointer to a nonpaged lookaside list structure. Entry - Supples a pointer to the entry that is inserted in the lookaside list. Return Value: None. --*/ { Lookaside->L.TotalFrees += 1; if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) { Lookaside->L.FreeMisses += 1; (Lookaside->L.Free)(Entry); } else { #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) ExInterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry, &Lookaside->Lock__ObsoleteButDoNotDelete); #else InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry); #endif } return; } // end_ntndis #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) typedef struct _PAGED_LOOKASIDE_LIST { #else typedef struct DECLSPEC_CACHEALIGN _PAGED_LOOKASIDE_LIST { #endif GENERAL_LOOKASIDE L; #if !defined(_AMD64_) && !defined(_IA64_) FAST_MUTEX Lock__ObsoleteButDoNotDelete; #endif } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST; NTKERNELAPI VOID ExInitializePagedLookasideList ( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate, IN PFREE_FUNCTION Free, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth ); NTKERNELAPI VOID ExDeletePagedLookasideList ( IN PPAGED_LOOKASIDE_LIST Lookaside ); #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) NTKERNELAPI PVOID ExAllocateFromPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside ); #else __inline PVOID ExAllocateFromPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside ) /*++ Routine Description: This function removes (pops) the first entry from the specified paged lookaside list. Arguments: Lookaside - Supplies a pointer to a paged lookaside list structure. Return Value: If an entry is removed from the specified lookaside list, then the address of the entry is returned as the function value. Otherwise, NULL is returned. --*/ { PVOID Entry; Lookaside->L.TotalAllocates += 1; Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead); if (Entry == NULL) { Lookaside->L.AllocateMisses += 1; Entry = (Lookaside->L.Allocate)(Lookaside->L.Type, Lookaside->L.Size, Lookaside->L.Tag); } return Entry; } #endif #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) NTKERNELAPI VOID ExFreeToPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry ); #else __inline VOID ExFreeToPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry ) /*++ Routine Description: This function inserts (pushes) the specified entry into the specified paged lookaside list. Arguments: Lookaside - Supplies a pointer to a nonpaged lookaside list structure. Entry - Supples a pointer to the entry that is inserted in the lookaside list. Return Value: None. --*/ { Lookaside->L.TotalFrees += 1; if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) { Lookaside->L.FreeMisses += 1; (Lookaside->L.Free)(Entry); } else { InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry); } return; } #endif NTKERNELAPI VOID NTAPI ProbeForRead( IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment ); // // Common probe for write functions. // NTKERNELAPI VOID NTAPI ProbeForWrite ( IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment ); // // Worker Thread // typedef enum _WORK_QUEUE_TYPE { CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue, MaximumWorkQueue } WORK_QUEUE_TYPE; typedef VOID (*PWORKER_THREAD_ROUTINE)( IN PVOID Parameter ); typedef struct _WORK_QUEUE_ITEM { LIST_ENTRY List; PWORKER_THREAD_ROUTINE WorkerRoutine; PVOID Parameter; } WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM; #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInitializeWorkItem) // Use IoAllocateWorkItem #endif #define ExInitializeWorkItem(Item, Routine, Context) \ (Item)->WorkerRoutine = (Routine); \ (Item)->Parameter = (Context); \ (Item)->List.Flink = NULL; DECLSPEC_DEPRECATED_DDK // Use IoQueueWorkItem NTKERNELAPI VOID ExQueueWorkItem( IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType ); NTKERNELAPI BOOLEAN ExIsProcessorFeaturePresent( ULONG ProcessorFeature ); // // Zone Allocation // typedef struct _ZONE_SEGMENT_HEADER { SINGLE_LIST_ENTRY SegmentList; PVOID Reserved; } ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER; typedef struct _ZONE_HEADER { SINGLE_LIST_ENTRY FreeList; SINGLE_LIST_ENTRY SegmentList; ULONG BlockSize; ULONG TotalSegmentSize; } ZONE_HEADER, *PZONE_HEADER; DECLSPEC_DEPRECATED_DDK NTKERNELAPI NTSTATUS ExInitializeZone( IN PZONE_HEADER Zone, IN ULONG BlockSize, IN PVOID InitialSegment, IN ULONG InitialSegmentSize ); DECLSPEC_DEPRECATED_DDK NTKERNELAPI NTSTATUS ExExtendZone( IN PZONE_HEADER Zone, IN PVOID Segment, IN ULONG SegmentSize ); DECLSPEC_DEPRECATED_DDK NTKERNELAPI NTSTATUS ExInterlockedExtendZone( IN PZONE_HEADER Zone, IN PVOID Segment, IN ULONG SegmentSize, IN PKSPIN_LOCK Lock ); //++ // // PVOID // ExAllocateFromZone( // IN PZONE_HEADER Zone // ) // // Routine Description: // // This routine removes an entry from the zone and returns a pointer to it. // // Arguments: // // Zone - Pointer to the zone header controlling the storage from which the // entry is to be allocated. // // Return Value: // // The function value is a pointer to the storage allocated from the zone. // //-- #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExAllocateFromZone) #endif #define ExAllocateFromZone(Zone) \ (PVOID)((Zone)->FreeList.Next); \ if ( (Zone)->FreeList.Next ) (Zone)->FreeList.Next = (Zone)->FreeList.Next->Next //++ // // PVOID // ExFreeToZone( // IN PZONE_HEADER Zone, // IN PVOID Block // ) // // Routine Description: // // This routine places the specified block of storage back onto the free // list in the specified zone. // // Arguments: // // Zone - Pointer to the zone header controlling the storage to which the // entry is to be inserted. // // Block - Pointer to the block of storage to be freed back to the zone. // // Return Value: // // Pointer to previous block of storage that was at the head of the free // list. NULL implies the zone went from no available free blocks to // at least one free block. // //-- #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExFreeToZone) #endif #define ExFreeToZone(Zone,Block) \ ( ((PSINGLE_LIST_ENTRY)(Block))->Next = (Zone)->FreeList.Next, \ (Zone)->FreeList.Next = ((PSINGLE_LIST_ENTRY)(Block)), \ ((PSINGLE_LIST_ENTRY)(Block))->Next \ ) //++ // // BOOLEAN // ExIsFullZone( // IN PZONE_HEADER Zone // ) // // Routine Description: // // This routine determines if the specified zone is full or not. A zone // is considered full if the free list is empty. // // Arguments: // // Zone - Pointer to the zone header to be tested. // // Return Value: // // TRUE if the zone is full and FALSE otherwise. // //-- #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExIsFullZone) #endif #define ExIsFullZone(Zone) \ ( (Zone)->FreeList.Next == (PSINGLE_LIST_ENTRY)NULL ) //++ // // PVOID // ExInterlockedAllocateFromZone( // IN PZONE_HEADER Zone, // IN PKSPIN_LOCK Lock // ) // // Routine Description: // // This routine removes an entry from the zone and returns a pointer to it. // The removal is performed with the specified lock owned for the sequence // to make it MP-safe. // // Arguments: // // Zone - Pointer to the zone header controlling the storage from which the // entry is to be allocated. // // Lock - Pointer to the spin lock which should be obtained before removing // the entry from the allocation list. The lock is released before // returning to the caller. // // Return Value: // // The function value is a pointer to the storage allocated from the zone. // //-- #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInterlockedAllocateFromZone) #endif #define ExInterlockedAllocateFromZone(Zone,Lock) \ (PVOID) ExInterlockedPopEntryList( &(Zone)->FreeList, Lock ) //++ // // PVOID // ExInterlockedFreeToZone( // IN PZONE_HEADER Zone, // IN PVOID Block, // IN PKSPIN_LOCK Lock // ) // // Routine Description: // // This routine places the specified block of storage back onto the free // list in the specified zone. The insertion is performed with the lock // owned for the sequence to make it MP-safe. // // Arguments: // // Zone - Pointer to the zone header controlling the storage to which the // entry is to be inserted. // // Block - Pointer to the block of storage to be freed back to the zone. // // Lock - Pointer to the spin lock which should be obtained before inserting // the entry onto the free list. The lock is released before returning // to the caller. // // Return Value: // // Pointer to previous block of storage that was at the head of the free // list. NULL implies the zone went from no available free blocks to // at least one free block. // //-- #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInterlockedFreeToZone) #endif #define ExInterlockedFreeToZone(Zone,Block,Lock) \ ExInterlockedPushEntryList( &(Zone)->FreeList, ((PSINGLE_LIST_ENTRY) (Block)), Lock ) //++ // // BOOLEAN // ExIsObjectInFirstZoneSegment( // IN PZONE_HEADER Zone, // IN PVOID Object // ) // // Routine Description: // // This routine determines if the specified pointer lives in the zone. // // Arguments: // // Zone - Pointer to the zone header controlling the storage to which the // object may belong. // // Object - Pointer to the object in question. // // Return Value: // // TRUE if the Object came from the first segment of zone. // //-- #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExIsObjectInFirstZoneSegment) #endif #define ExIsObjectInFirstZoneSegment(Zone,Object) ((BOOLEAN) \ (((PUCHAR)(Object) >= (PUCHAR)(Zone)->SegmentList.Next) && \ ((PUCHAR)(Object) < (PUCHAR)(Zone)->SegmentList.Next + \ (Zone)->TotalSegmentSize)) \ ) // // Define executive resource data structures. // typedef ULONG_PTR ERESOURCE_THREAD; typedef ERESOURCE_THREAD *PERESOURCE_THREAD; typedef struct _OWNER_ENTRY { ERESOURCE_THREAD OwnerThread; union { LONG OwnerCount; ULONG TableSize; }; } OWNER_ENTRY, *POWNER_ENTRY; typedef struct _ERESOURCE { LIST_ENTRY SystemResourcesList; POWNER_ENTRY OwnerTable; SHORT ActiveCount; USHORT Flag; PKSEMAPHORE SharedWaiters; PKEVENT ExclusiveWaiters; OWNER_ENTRY OwnerThreads[2]; ULONG ContentionCount; USHORT NumberOfSharedWaiters; USHORT NumberOfExclusiveWaiters; union { PVOID Address; ULONG_PTR CreatorBackTraceIndex; }; KSPIN_LOCK SpinLock; } ERESOURCE, *PERESOURCE; // // Values for ERESOURCE.Flag // #define ResourceNeverExclusive 0x10 #define ResourceReleaseByOtherThread 0x20 #define ResourceOwnedExclusive 0x80 #define RESOURCE_HASH_TABLE_SIZE 64 typedef struct _RESOURCE_HASH_ENTRY { LIST_ENTRY ListEntry; PVOID Address; ULONG ContentionCount; ULONG Number; } RESOURCE_HASH_ENTRY, *PRESOURCE_HASH_ENTRY; typedef struct _RESOURCE_PERFORMANCE_DATA { ULONG ActiveResourceCount; ULONG TotalResourceCount; ULONG ExclusiveAcquire; ULONG SharedFirstLevel; ULONG SharedSecondLevel; ULONG StarveFirstLevel; ULONG StarveSecondLevel; ULONG WaitForExclusive; ULONG OwnerTableExpands; ULONG MaximumTableExpand; LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE]; } RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA; // // Define executive resource function prototypes. // NTKERNELAPI NTSTATUS ExInitializeResourceLite( IN PERESOURCE Resource ); NTKERNELAPI NTSTATUS ExReinitializeResourceLite( IN PERESOURCE Resource ); NTKERNELAPI BOOLEAN ExAcquireResourceSharedLite( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExAcquireResourceExclusiveLite( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExAcquireSharedStarveExclusive( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExAcquireSharedWaitForExclusive( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExTryToAcquireResourceExclusiveLite( IN PERESOURCE Resource ); // // VOID // ExReleaseResource( // IN PERESOURCE Resource // ); // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExReleaseResource) // Use ExReleaseResourceLite #endif #define ExReleaseResource(R) (ExReleaseResourceLite(R)) NTKERNELAPI VOID FASTCALL ExReleaseResourceLite( IN PERESOURCE Resource ); NTKERNELAPI VOID ExReleaseResourceForThreadLite( IN PERESOURCE Resource, IN ERESOURCE_THREAD ResourceThreadId ); NTKERNELAPI VOID ExSetResourceOwnerPointer( IN PERESOURCE Resource, IN PVOID OwnerPointer ); NTKERNELAPI VOID ExConvertExclusiveToSharedLite( IN PERESOURCE Resource ); NTKERNELAPI NTSTATUS ExDeleteResourceLite ( IN PERESOURCE Resource ); NTKERNELAPI ULONG ExGetExclusiveWaiterCount ( IN PERESOURCE Resource ); NTKERNELAPI ULONG ExGetSharedWaiterCount ( IN PERESOURCE Resource ); // // ERESOURCE_THREAD // ExGetCurrentResourceThread( // ); // #define ExGetCurrentResourceThread() ((ULONG_PTR)PsGetCurrentThread()) NTKERNELAPI BOOLEAN ExIsResourceAcquiredExclusiveLite ( IN PERESOURCE Resource ); NTKERNELAPI ULONG ExIsResourceAcquiredSharedLite ( IN PERESOURCE Resource ); // // An acquired resource is always owned shared, as shared ownership is a subset // of exclusive ownership. // #define ExIsResourceAcquiredLite ExIsResourceAcquiredSharedLite // end_wdm // // ntddk.h stole the entrypoints we wanted so fix them up here. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInitializeResource) // use ExInitializeResourceLite #pragma deprecated(ExAcquireResourceShared) // use ExAcquireResourceSharedLite #pragma deprecated(ExAcquireResourceExclusive) // use ExAcquireResourceExclusiveLite #pragma deprecated(ExReleaseResourceForThread) // use ExReleaseResourceForThreadLite #pragma deprecated(ExConvertExclusiveToShared) // use ExConvertExclusiveToSharedLite #pragma deprecated(ExDeleteResource) // use ExDeleteResourceLite #pragma deprecated(ExIsResourceAcquiredExclusive) // use ExIsResourceAcquiredExclusiveLite #pragma deprecated(ExIsResourceAcquiredShared) // use ExIsResourceAcquiredSharedLite #pragma deprecated(ExIsResourceAcquired) // use ExIsResourceAcquiredSharedLite #endif #define ExInitializeResource ExInitializeResourceLite #define ExAcquireResourceShared ExAcquireResourceSharedLite #define ExAcquireResourceExclusive ExAcquireResourceExclusiveLite #define ExReleaseResourceForThread ExReleaseResourceForThreadLite #define ExConvertExclusiveToShared ExConvertExclusiveToSharedLite #define ExDeleteResource ExDeleteResourceLite #define ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite #define ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite #define ExIsResourceAcquired ExIsResourceAcquiredSharedLite // // Get previous mode // NTKERNELAPI KPROCESSOR_MODE ExGetPreviousMode( VOID ); // // Raise status from kernel mode. // NTKERNELAPI VOID NTAPI ExRaiseStatus ( IN NTSTATUS Status ); // end_wdm NTKERNELAPI VOID ExRaiseDatatypeMisalignment ( VOID ); NTKERNELAPI VOID ExRaiseAccessViolation ( VOID ); // // Set timer resolution. // NTKERNELAPI ULONG ExSetTimerResolution ( IN ULONG DesiredTime, IN BOOLEAN SetResolution ); // // Subtract time zone bias from system time to get local time. // NTKERNELAPI VOID ExSystemTimeToLocalTime ( IN PLARGE_INTEGER SystemTime, OUT PLARGE_INTEGER LocalTime ); // // Add time zone bias to local time to get system time. // NTKERNELAPI VOID ExLocalTimeToSystemTime ( IN PLARGE_INTEGER LocalTime, OUT PLARGE_INTEGER SystemTime ); // // Define the type for Callback function. // typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT; typedef VOID (*PCALLBACK_FUNCTION ) ( IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2 ); NTKERNELAPI NTSTATUS ExCreateCallback ( OUT PCALLBACK_OBJECT *CallbackObject, IN POBJECT_ATTRIBUTES ObjectAttributes, IN BOOLEAN Create, IN BOOLEAN AllowMultipleCallbacks ); NTKERNELAPI PVOID ExRegisterCallback ( IN PCALLBACK_OBJECT CallbackObject, IN PCALLBACK_FUNCTION CallbackFunction, IN PVOID CallbackContext ); NTKERNELAPI VOID ExUnregisterCallback ( IN PVOID CallbackRegistration ); NTKERNELAPI VOID ExNotifyCallback ( IN PVOID CallbackObject, IN PVOID Argument1, IN PVOID Argument2 ); // // UUID Generation // typedef GUID UUID; NTKERNELAPI NTSTATUS ExUuidCreate( OUT UUID *Uuid ); // // suite support // NTKERNELAPI BOOLEAN ExVerifySuite( SUITE_TYPE SuiteType ); // // Define a block to hold the actual routine registration. // typedef NTSTATUS (*PEX_CALLBACK_FUNCTION ) ( IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2 ); // // Registry kernel mode callbacks // // // Hook selector // typedef enum _REG_NOTIFY_CLASS { RegNtDeleteKey, RegNtSetValueKey, RegNtDeleteValueKey, RegNtSetInformationKey, RegNtRenameKey, RegNtEnumerateKey, RegNtEnumerateValueKey, RegNtQueryKey, RegNtQueryValueKey, RegNtQueryMultipleValueKey, RegNtPreCreateKey, RegNtPostCreateKey, RegNtPreOpenKey, RegNtPostOpenKey, RegNtKeyHandleClose } REG_NOTIFY_CLASS; // // Parameter description for each notify class // typedef struct _REG_DELETE_KEY_INFORMATION { PVOID Object; // IN } REG_DELETE_KEY_INFORMATION, *PREG_DELETE_KEY_INFORMATION; typedef struct _REG_SET_VALUE_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING ValueName; // IN ULONG TitleIndex; // IN ULONG Type; // IN PVOID Data; // IN ULONG DataSize; // IN } REG_SET_VALUE_KEY_INFORMATION, *PREG_SET_VALUE_KEY_INFORMATION; typedef struct _REG_DELETE_VALUE_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING ValueName; // IN } REG_DELETE_VALUE_KEY_INFORMATION, *PREG_DELETE_VALUE_KEY_INFORMATION; typedef struct _REG_SET_INFORMATION_KEY_INFORMATION { PVOID Object; // IN KEY_SET_INFORMATION_CLASS KeySetInformationClass; // IN PVOID KeySetInformation; // IN ULONG KeySetInformationLength;// IN } REG_SET_INFORMATION_KEY_INFORMATION, *PREG_SET_INFORMATION_KEY_INFORMATION; typedef struct _REG_ENUMERATE_KEY_INFORMATION { PVOID Object; // IN ULONG Index; // IN KEY_INFORMATION_CLASS KeyInformationClass; // IN PVOID KeyInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_ENUMERATE_KEY_INFORMATION, *PREG_ENUMERATE_KEY_INFORMATION; typedef struct _REG_ENUMERATE_VALUE_KEY_INFORMATION { PVOID Object; // IN ULONG Index; // IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass; // IN PVOID KeyValueInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_ENUMERATE_VALUE_KEY_INFORMATION, *PREG_ENUMERATE_VALUE_KEY_INFORMATION; typedef struct _REG_QUERY_KEY_INFORMATION { PVOID Object; // IN KEY_INFORMATION_CLASS KeyInformationClass; // IN PVOID KeyInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_QUERY_KEY_INFORMATION, *PREG_QUERY_KEY_INFORMATION; typedef struct _REG_QUERY_VALUE_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING ValueName; // IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass; // IN PVOID KeyValueInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_QUERY_VALUE_KEY_INFORMATION, *PREG_QUERY_VALUE_KEY_INFORMATION; typedef struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION { PVOID Object; // IN PKEY_VALUE_ENTRY ValueEntries; // IN ULONG EntryCount; // IN PVOID ValueBuffer; // IN PULONG BufferLength; // IN OUT PULONG RequiredBufferLength; // OUT } REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION; typedef struct _REG_RENAME_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING NewName; // IN } REG_RENAME_KEY_INFORMATION, *PREG_RENAME_KEY_INFORMATION; typedef struct _REG_PRE_CREATE_KEY_INFORMATION { PUNICODE_STRING CompleteName; // IN } REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;; typedef struct _REG_POST_CREATE_KEY_INFORMATION { PUNICODE_STRING CompleteName; // IN PVOID Object; // IN NTSTATUS Status; // IN } REG_POST_CREATE_KEY_INFORMATION,REG_POST_OPEN_KEY_INFORMATION, *PREG_POST_CREATE_KEY_INFORMATION, *PREG_POST_OPEN_KEY_INFORMATION; typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION { PVOID Object; // IN } REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION; NTSTATUS CmRegisterCallback(IN PEX_CALLBACK_FUNCTION Function, IN PVOID Context, IN OUT PLARGE_INTEGER Cookie ); NTSTATUS CmUnRegisterCallback(IN LARGE_INTEGER Cookie); // // Priority increment definitions. The comment for each definition gives // the names of the system services that use the definition when satisfying // a wait. // // // Priority increment used when satisfying a wait on an executive event // (NtPulseEvent and NtSetEvent) // #define EVENT_INCREMENT 1 // // Priority increment when no I/O has been done. This is used by device // and file system drivers when completing an IRP (IoCompleteRequest). // #define IO_NO_INCREMENT 0 // // Priority increment for completing CD-ROM I/O. This is used by CD-ROM device // and file system drivers when completing an IRP (IoCompleteRequest) // #define IO_CD_ROM_INCREMENT 1 // // Priority increment for completing disk I/O. This is used by disk device // and file system drivers when completing an IRP (IoCompleteRequest) // #define IO_DISK_INCREMENT 1 // end_ntifs // // Priority increment for completing keyboard I/O. This is used by keyboard // device drivers when completing an IRP (IoCompleteRequest) // #define IO_KEYBOARD_INCREMENT 6 // begin_ntifs // // Priority increment for completing mailslot I/O. This is used by the mail- // slot file system driver when completing an IRP (IoCompleteRequest). // #define IO_MAILSLOT_INCREMENT 2 // end_ntifs // // Priority increment for completing mouse I/O. This is used by mouse device // drivers when completing an IRP (IoCompleteRequest) // #define IO_MOUSE_INCREMENT 6 // begin_ntifs // // Priority increment for completing named pipe I/O. This is used by the // named pipe file system driver when completing an IRP (IoCompleteRequest). // #define IO_NAMED_PIPE_INCREMENT 2 // // Priority increment for completing network I/O. This is used by network // device and network file system drivers when completing an IRP // (IoCompleteRequest). // #define IO_NETWORK_INCREMENT 2 // end_ntifs // // Priority increment for completing parallel I/O. This is used by parallel // device drivers when completing an IRP (IoCompleteRequest) // #define IO_PARALLEL_INCREMENT 1 // // Priority increment for completing serial I/O. This is used by serial device // drivers when completing an IRP (IoCompleteRequest) // #define IO_SERIAL_INCREMENT 2 // // Priority increment for completing sound I/O. This is used by sound device // drivers when completing an IRP (IoCompleteRequest) // #define IO_SOUND_INCREMENT 8 // // Priority increment for completing video I/O. This is used by video device // drivers when completing an IRP (IoCompleteRequest) // #define IO_VIDEO_INCREMENT 1 // // Priority increment used when satisfying a wait on an executive semaphore // (NtReleaseSemaphore) // #define SEMAPHORE_INCREMENT 1 // // Indicates the system may do I/O to physical addresses above 4 GB. // extern PBOOLEAN Mm64BitPhysicalAddress; // // Define maximum disk transfer size to be used by MM and Cache Manager, // so that packet-oriented disk drivers can optimize their packet allocation // to this size. // #define MM_MAXIMUM_DISK_IO_SIZE (0x10000) //++ // // ULONG_PTR // ROUND_TO_PAGES ( // IN ULONG_PTR Size // ) // // Routine Description: // // The ROUND_TO_PAGES macro takes a size in bytes and rounds it up to a // multiple of the page size. // // NOTE: This macro fails for values 0xFFFFFFFF - (PAGE_SIZE - 1). // // Arguments: // // Size - Size in bytes to round up to a page multiple. // // Return Value: // // Returns the size rounded up to a multiple of the page size. // //-- #define ROUND_TO_PAGES(Size) (((ULONG_PTR)(Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1)) //++ // // ULONG // BYTES_TO_PAGES ( // IN ULONG Size // ) // // Routine Description: // // The BYTES_TO_PAGES macro takes the size in bytes and calculates the // number of pages required to contain the bytes. // // Arguments: // // Size - Size in bytes. // // Return Value: // // Returns the number of pages required to contain the specified size. // //-- #define BYTES_TO_PAGES(Size) ((ULONG)((ULONG_PTR)(Size) >> PAGE_SHIFT) + \ (((ULONG)(Size) & (PAGE_SIZE - 1)) != 0)) //++ // // ULONG // BYTE_OFFSET ( // IN PVOID Va // ) // // Routine Description: // // The BYTE_OFFSET macro takes a virtual address and returns the byte offset // of that address within the page. // // Arguments: // // Va - Virtual address. // // Return Value: // // Returns the byte offset portion of the virtual address. // //-- #define BYTE_OFFSET(Va) ((ULONG)((LONG_PTR)(Va) & (PAGE_SIZE - 1))) //++ // // PVOID // PAGE_ALIGN ( // IN PVOID Va // ) // // Routine Description: // // The PAGE_ALIGN macro takes a virtual address and returns a page-aligned // virtual address for that page. // // Arguments: // // Va - Virtual address. // // Return Value: // // Returns the page aligned virtual address. // //-- #define PAGE_ALIGN(Va) ((PVOID)((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1))) //++ // // ULONG // ADDRESS_AND_SIZE_TO_SPAN_PAGES ( // IN PVOID Va, // IN ULONG Size // ) // // Routine Description: // // The ADDRESS_AND_SIZE_TO_SPAN_PAGES macro takes a virtual address and // size and returns the number of pages spanned by the size. // // Arguments: // // Va - Virtual address. // // Size - Size in bytes. // // Return Value: // // Returns the number of pages spanned by the size. // //-- #define ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size) \ ((ULONG)((((ULONG_PTR)(Va) & (PAGE_SIZE -1)) + (Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT)) #if PRAGMA_DEPRECATED_DDK #pragma deprecated(COMPUTE_PAGES_SPANNED) // Use ADDRESS_AND_SIZE_TO_SPAN_PAGES #endif #define COMPUTE_PAGES_SPANNED(Va, Size) ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size) //++ // PPFN_NUMBER // MmGetMdlPfnArray ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlPfnArray routine returns the virtual address of the // first element of the array of physical page numbers associated with // the MDL. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the virtual address of the first element of the array of // physical page numbers associated with the MDL. // //-- #define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1)) //++ // // PVOID // MmGetMdlVirtualAddress ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlVirtualAddress returns the virtual address of the buffer // described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the virtual address of the buffer described by the Mdl // //-- #define MmGetMdlVirtualAddress(Mdl) \ ((PVOID) ((PCHAR) ((Mdl)->StartVa) + (Mdl)->ByteOffset)) //++ // // ULONG // MmGetMdlByteCount ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlByteCount returns the length in bytes of the buffer // described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the byte count of the buffer described by the Mdl // //-- #define MmGetMdlByteCount(Mdl) ((Mdl)->ByteCount) //++ // // ULONG // MmGetMdlByteOffset ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlByteOffset returns the byte offset within the page // of the buffer described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the byte offset within the page of the buffer described by the Mdl // //-- #define MmGetMdlByteOffset(Mdl) ((Mdl)->ByteOffset) //++ // // PVOID // MmGetMdlStartVa ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlBaseVa returns the virtual address of the buffer // described by the Mdl rounded down to the nearest page. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the returns the starting virtual address of the MDL. // // //-- #define MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa) typedef enum _MM_SYSTEM_SIZE { MmSmallSystem, MmMediumSystem, MmLargeSystem } MM_SYSTEMSIZE; NTKERNELAPI MM_SYSTEMSIZE MmQuerySystemSize( VOID ); // end_wdm NTKERNELAPI BOOLEAN MmIsThisAnNtAsSystem( VOID ); // begin_wdm typedef enum _LOCK_OPERATION { IoReadAccess, IoWriteAccess, IoModifyAccess } LOCK_OPERATION; NTSTATUS MmIsVerifierEnabled ( OUT PULONG VerifierFlags ); NTSTATUS MmAddVerifierThunks ( IN PVOID ThunkBuffer, IN ULONG ThunkBufferSize ); NTKERNELAPI VOID MmProbeAndLockProcessPages ( IN OUT PMDL MemoryDescriptorList, IN PEPROCESS Process, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation ); // begin_nthal // // I/O support routines. // NTKERNELAPI VOID MmProbeAndLockPages ( IN OUT PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation ); NTKERNELAPI VOID MmUnlockPages ( IN PMDL MemoryDescriptorList ); NTKERNELAPI VOID MmBuildMdlForNonPagedPool ( IN OUT PMDL MemoryDescriptorList ); NTKERNELAPI PVOID MmMapLockedPages ( IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode ); NTKERNELAPI PVOID MmGetSystemRoutineAddress ( IN PUNICODE_STRING SystemRoutineName ); NTKERNELAPI NTSTATUS MmAdvanceMdl ( IN PMDL Mdl, IN ULONG NumberOfBytes ); // end_wdm NTKERNELAPI NTSTATUS MmMapUserAddressesToPage ( IN PVOID BaseAddress, IN SIZE_T NumberOfBytes, IN PVOID PageAddress ); // begin_wdm NTKERNELAPI NTSTATUS MmProtectMdlSystemAddress ( IN PMDL MemoryDescriptorList, IN ULONG NewProtect ); // // _MM_PAGE_PRIORITY_ provides a method for the system to handle requests // intelligently in low resource conditions. // // LowPagePriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is low on resources. An example of // this could be for a non-critical network connection where the driver can // handle the failure case when system resources are close to being depleted. // // NormalPagePriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is very low on resources. An example // of this could be for a non-critical local filesystem request. // // HighPagePriority should be used when it is unacceptable to the driver for the // mapping request to fail unless the system is completely out of resources. // An example of this would be the paging file path in a driver. // // begin_ntndis typedef enum _MM_PAGE_PRIORITY { LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32 } MM_PAGE_PRIORITY; // end_ntndis // // Note: This function is not available in WDM 1.0 // NTKERNELAPI PVOID MmMapLockedPagesSpecifyCache ( IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN MEMORY_CACHING_TYPE CacheType, IN PVOID BaseAddress, IN ULONG BugCheckOnFailure, IN MM_PAGE_PRIORITY Priority ); NTKERNELAPI VOID MmUnmapLockedPages ( IN PVOID BaseAddress, IN PMDL MemoryDescriptorList ); PVOID MmAllocateMappingAddress ( IN SIZE_T NumberOfBytes, IN ULONG PoolTag ); VOID MmFreeMappingAddress ( IN PVOID BaseAddress, IN ULONG PoolTag ); PVOID MmMapLockedPagesWithReservedMapping ( IN PVOID MappingAddress, IN ULONG PoolTag, IN PMDL MemoryDescriptorList, IN MEMORY_CACHING_TYPE CacheType ); VOID MmUnmapReservedMapping ( IN PVOID BaseAddress, IN ULONG PoolTag, IN PMDL MemoryDescriptorList ); // end_wdm typedef struct _PHYSICAL_MEMORY_RANGE { PHYSICAL_ADDRESS BaseAddress; LARGE_INTEGER NumberOfBytes; } PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE; NTKERNELAPI NTSTATUS MmAddPhysicalMemory ( IN PPHYSICAL_ADDRESS StartAddress, IN OUT PLARGE_INTEGER NumberOfBytes ); NTKERNELAPI NTSTATUS MmAddPhysicalMemoryEx ( IN PPHYSICAL_ADDRESS StartAddress, IN OUT PLARGE_INTEGER NumberOfBytes, IN ULONG Flags ); NTKERNELAPI NTSTATUS MmRemovePhysicalMemory ( IN PPHYSICAL_ADDRESS StartAddress, IN OUT PLARGE_INTEGER NumberOfBytes ); NTKERNELAPI NTSTATUS MmRemovePhysicalMemoryEx ( IN PPHYSICAL_ADDRESS StartAddress, IN OUT PLARGE_INTEGER NumberOfBytes, IN ULONG Flags ); NTKERNELAPI PPHYSICAL_MEMORY_RANGE MmGetPhysicalMemoryRanges ( VOID ); NTSTATUS MmMarkPhysicalMemoryAsGood ( IN PPHYSICAL_ADDRESS StartAddress, IN OUT PLARGE_INTEGER NumberOfBytes ); NTSTATUS MmMarkPhysicalMemoryAsBad ( IN PPHYSICAL_ADDRESS StartAddress, IN OUT PLARGE_INTEGER NumberOfBytes ); // begin_wdm NTKERNELAPI PMDL MmAllocatePagesForMdl ( IN PHYSICAL_ADDRESS LowAddress, IN PHYSICAL_ADDRESS HighAddress, IN PHYSICAL_ADDRESS SkipBytes, IN SIZE_T TotalBytes ); NTKERNELAPI VOID MmFreePagesFromMdl ( IN PMDL MemoryDescriptorList ); NTKERNELAPI PVOID MmMapIoSpace ( IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType ); NTKERNELAPI VOID MmUnmapIoSpace ( IN PVOID BaseAddress, IN SIZE_T NumberOfBytes ); NTKERNELAPI PVOID MmMapVideoDisplay ( IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType ); NTKERNELAPI VOID MmUnmapVideoDisplay ( IN PVOID BaseAddress, IN SIZE_T NumberOfBytes ); NTKERNELAPI PHYSICAL_ADDRESS MmGetPhysicalAddress ( IN PVOID BaseAddress ); NTKERNELAPI PVOID MmGetVirtualForPhysical ( IN PHYSICAL_ADDRESS PhysicalAddress ); NTKERNELAPI PVOID MmAllocateContiguousMemory ( IN SIZE_T NumberOfBytes, IN PHYSICAL_ADDRESS HighestAcceptableAddress ); NTKERNELAPI PVOID MmAllocateContiguousMemorySpecifyCache ( IN SIZE_T NumberOfBytes, IN PHYSICAL_ADDRESS LowestAcceptableAddress, IN PHYSICAL_ADDRESS HighestAcceptableAddress, IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL, IN MEMORY_CACHING_TYPE CacheType ); NTKERNELAPI VOID MmFreeContiguousMemory ( IN PVOID BaseAddress ); NTKERNELAPI VOID MmFreeContiguousMemorySpecifyCache ( IN PVOID BaseAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType ); NTKERNELAPI PVOID MmAllocateNonCachedMemory ( IN SIZE_T NumberOfBytes ); NTKERNELAPI VOID MmFreeNonCachedMemory ( IN PVOID BaseAddress, IN SIZE_T NumberOfBytes ); NTKERNELAPI BOOLEAN MmIsAddressValid ( IN PVOID VirtualAddress ); DECLSPEC_DEPRECATED_DDK NTKERNELAPI BOOLEAN MmIsNonPagedSystemAddressValid ( IN PVOID VirtualAddress ); // begin_wdm NTKERNELAPI SIZE_T MmSizeOfMdl( IN PVOID Base, IN SIZE_T Length ); DECLSPEC_DEPRECATED_DDK // Use IoCreateMdl NTKERNELAPI PMDL MmCreateMdl( IN PMDL MemoryDescriptorList OPTIONAL, IN PVOID Base, IN SIZE_T Length ); NTKERNELAPI PVOID MmLockPagableDataSection( IN PVOID AddressWithinSection ); // end_wdm NTKERNELAPI VOID MmLockPagableSectionByHandle ( IN PVOID ImageSectionHandle ); NTKERNELAPI VOID MmResetDriverPaging ( IN PVOID AddressWithinSection ); NTKERNELAPI PVOID MmPageEntireDriver ( IN PVOID AddressWithinSection ); NTKERNELAPI VOID MmUnlockPagableImageSection( IN PVOID ImageSectionHandle ); // end_wdm end_ntosp // begin_ntosp NTKERNELAPI HANDLE MmSecureVirtualMemory ( IN PVOID Address, IN SIZE_T Size, IN ULONG ProbeMode ); NTKERNELAPI VOID MmUnsecureVirtualMemory ( IN HANDLE SecureHandle ); // end_ntosp NTKERNELAPI NTSTATUS MmMapViewInSystemSpace ( IN PVOID Section, OUT PVOID *MappedBase, IN PSIZE_T ViewSize ); NTKERNELAPI NTSTATUS MmUnmapViewInSystemSpace ( IN PVOID MappedBase ); // begin_ntosp NTKERNELAPI NTSTATUS MmMapViewInSessionSpace ( IN PVOID Section, OUT PVOID *MappedBase, IN OUT PSIZE_T ViewSize ); NTKERNELAPI NTSTATUS MmUnmapViewInSessionSpace ( IN PVOID MappedBase ); // end_ntosp // begin_wdm begin_ntosp //++ // // VOID // MmInitializeMdl ( // IN PMDL MemoryDescriptorList, // IN PVOID BaseVa, // IN SIZE_T Length // ) // // Routine Description: // // This routine initializes the header of a Memory Descriptor List (MDL). // // Arguments: // // MemoryDescriptorList - Pointer to the MDL to initialize. // // BaseVa - Base virtual address mapped by the MDL. // // Length - Length, in bytes, of the buffer mapped by the MDL. // // Return Value: // // None. // //-- #define MmInitializeMdl(MemoryDescriptorList, BaseVa, Length) { \ (MemoryDescriptorList)->Next = (PMDL) NULL; \ (MemoryDescriptorList)->Size = (CSHORT)(sizeof(MDL) + \ (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES((BaseVa), (Length)))); \ (MemoryDescriptorList)->MdlFlags = 0; \ (MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN((BaseVa)); \ (MemoryDescriptorList)->ByteOffset = BYTE_OFFSET((BaseVa)); \ (MemoryDescriptorList)->ByteCount = (ULONG)(Length); \ } //++ // // PVOID // MmGetSystemAddressForMdlSafe ( // IN PMDL MDL, // IN MM_PAGE_PRIORITY PRIORITY // ) // // Routine Description: // // This routine returns the mapped address of an MDL. If the // Mdl is not already mapped or a system address, it is mapped. // // Arguments: // // MemoryDescriptorList - Pointer to the MDL to map. // // Priority - Supplies an indication as to how important it is that this // request succeed under low available PTE conditions. // // Return Value: // // Returns the base address where the pages are mapped. The base address // has the same offset as the virtual address in the MDL. // // Unlike MmGetSystemAddressForMdl, Safe guarantees that it will always // return NULL on failure instead of bugchecking the system. // // This macro is not usable by WDM 1.0 drivers as 1.0 did not include // MmMapLockedPagesSpecifyCache. The solution for WDM 1.0 drivers is to // provide synchronization and set/reset the MDL_MAPPING_CAN_FAIL bit. // //-- #define MmGetSystemAddressForMdlSafe(MDL, PRIORITY) \ (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \ MDL_SOURCE_IS_NONPAGED_POOL)) ? \ ((MDL)->MappedSystemVa) : \ (MmMapLockedPagesSpecifyCache((MDL), \ KernelMode, \ MmCached, \ NULL, \ FALSE, \ (PRIORITY)))) //++ // // PVOID // MmGetSystemAddressForMdl ( // IN PMDL MDL // ) // // Routine Description: // // This routine returns the mapped address of an MDL, if the // Mdl is not already mapped or a system address, it is mapped. // // Arguments: // // MemoryDescriptorList - Pointer to the MDL to map. // // Return Value: // // Returns the base address where the pages are mapped. The base address // has the same offset as the virtual address in the MDL. // //-- //#define MmGetSystemAddressForMdl(MDL) // (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA)) ? // ((MDL)->MappedSystemVa) : // ((((MDL)->MdlFlags & (MDL_SOURCE_IS_NONPAGED_POOL)) ? // ((PVOID)((ULONG)(MDL)->StartVa | (MDL)->ByteOffset)) : // (MmMapLockedPages((MDL),KernelMode))))) #if PRAGMA_DEPRECATED_DDK #pragma deprecated(MmGetSystemAddressForMdl) // Use MmGetSystemAddressForMdlSafe #endif #define MmGetSystemAddressForMdl(MDL) \ (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \ MDL_SOURCE_IS_NONPAGED_POOL)) ? \ ((MDL)->MappedSystemVa) : \ (MmMapLockedPages((MDL),KernelMode))) //++ // // VOID // MmPrepareMdlForReuse ( // IN PMDL MDL // ) // // Routine Description: // // This routine will take all of the steps necessary to allow an MDL to be // re-used. // // Arguments: // // MemoryDescriptorList - Pointer to the MDL that will be re-used. // // Return Value: // // None. // //-- #define MmPrepareMdlForReuse(MDL) \ if (((MDL)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \ ASSERT(((MDL)->MdlFlags & MDL_PARTIAL) != 0); \ MmUnmapLockedPages( (MDL)->MappedSystemVa, (MDL) ); \ } else if (((MDL)->MdlFlags & MDL_PARTIAL) == 0) { \ ASSERT(((MDL)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \ } typedef NTSTATUS (*PMM_DLL_INITIALIZE)( IN PUNICODE_STRING RegistryPath ); typedef NTSTATUS (*PMM_DLL_UNLOAD)( VOID ); // // Define an empty typedef for the _DRIVER_OBJECT structure so it may be // referenced by function types before it is actually defined. // struct _DRIVER_OBJECT; NTKERNELAPI LOGICAL MmIsDriverVerifying ( IN struct _DRIVER_OBJECT *DriverObject ); // // Security operation codes // typedef enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor, QuerySecurityDescriptor, DeleteSecurityDescriptor, AssignSecurityDescriptor } SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE; // // Data structure used to capture subject security context // for access validations and auditing. // // THE FIELDS OF THIS DATA STRUCTURE SHOULD BE CONSIDERED OPAQUE // BY ALL EXCEPT THE SECURITY ROUTINES. // typedef struct _SECURITY_SUBJECT_CONTEXT { PACCESS_TOKEN ClientToken; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; PACCESS_TOKEN PrimaryToken; PVOID ProcessAuditId; } SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT; /////////////////////////////////////////////////////////////////////////////// // // // ACCESS_STATE and related structures // // // /////////////////////////////////////////////////////////////////////////////// // // Initial Privilege Set - Room for three privileges, which should // be enough for most applications. This structure exists so that // it can be imbedded in an ACCESS_STATE structure. Use PRIVILEGE_SET // for all other references to Privilege sets. // #define INITIAL_PRIVILEGE_COUNT 3 typedef struct _INITIAL_PRIVILEGE_SET { ULONG PrivilegeCount; ULONG Control; LUID_AND_ATTRIBUTES Privilege[INITIAL_PRIVILEGE_COUNT]; } INITIAL_PRIVILEGE_SET, * PINITIAL_PRIVILEGE_SET; // // Combine the information that describes the state // of an access-in-progress into a single structure // typedef struct _ACCESS_STATE { LUID OperationID; BOOLEAN SecurityEvaluated; BOOLEAN GenerateAudit; BOOLEAN GenerateOnClose; BOOLEAN PrivilegesAllocated; ULONG Flags; ACCESS_MASK RemainingDesiredAccess; ACCESS_MASK PreviouslyGrantedAccess; ACCESS_MASK OriginalDesiredAccess; SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; PSECURITY_DESCRIPTOR SecurityDescriptor; PVOID AuxData; union { INITIAL_PRIVILEGE_SET InitialPrivilegeSet; PRIVILEGE_SET PrivilegeSet; } Privileges; BOOLEAN AuditPrivileges; UNICODE_STRING ObjectName; UNICODE_STRING ObjectTypeName; } ACCESS_STATE, *PACCESS_STATE; NTKERNELAPI NTSTATUS SeAssignSecurity ( IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL, IN PSECURITY_DESCRIPTOR ExplicitDescriptor, OUT PSECURITY_DESCRIPTOR *NewDescriptor, IN BOOLEAN IsDirectoryObject, IN PSECURITY_SUBJECT_CONTEXT SubjectContext, IN PGENERIC_MAPPING GenericMapping, IN POOL_TYPE PoolType ); NTKERNELAPI NTSTATUS SeAssignSecurityEx ( IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL, IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL, OUT PSECURITY_DESCRIPTOR *NewDescriptor, IN GUID *ObjectType OPTIONAL, IN BOOLEAN IsDirectoryObject, IN ULONG AutoInheritFlags, IN PSECURITY_SUBJECT_CONTEXT SubjectContext, IN PGENERIC_MAPPING GenericMapping, IN POOL_TYPE PoolType ); NTKERNELAPI NTSTATUS SeDeassignSecurity ( IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor ); NTKERNELAPI BOOLEAN SeAccessCheck ( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext, IN BOOLEAN SubjectContextLocked, IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK PreviouslyGrantedAccess, OUT PPRIVILEGE_SET *Privileges OPTIONAL, IN PGENERIC_MAPPING GenericMapping, IN KPROCESSOR_MODE AccessMode, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus ); #ifdef SE_NTFS_WORLD_CACHE VOID SeGetWorldRights ( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PGENERIC_MAPPING GenericMapping, OUT PACCESS_MASK GrantedAccess ); #endif NTKERNELAPI BOOLEAN SeValidSecurityDescriptor( IN ULONG Length, IN PSECURITY_DESCRIPTOR SecurityDescriptor ); NTKERNELAPI BOOLEAN SeSinglePrivilegeCheck( LUID PrivilegeValue, KPROCESSOR_MODE PreviousMode ); // // System Thread and Process Creation and Termination // NTKERNELAPI NTSTATUS PsCreateSystemThread( OUT PHANDLE ThreadHandle, IN ULONG DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ProcessHandle OPTIONAL, OUT PCLIENT_ID ClientId OPTIONAL, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext ); NTKERNELAPI NTSTATUS PsTerminateSystemThread( IN NTSTATUS ExitStatus ); typedef VOID (*PCREATE_PROCESS_NOTIFY_ROUTINE)( IN HANDLE ParentId, IN HANDLE ProcessId, IN BOOLEAN Create ); NTSTATUS PsSetCreateProcessNotifyRoutine( IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine, IN BOOLEAN Remove ); typedef VOID (*PCREATE_THREAD_NOTIFY_ROUTINE)( IN HANDLE ProcessId, IN HANDLE ThreadId, IN BOOLEAN Create ); NTSTATUS PsSetCreateThreadNotifyRoutine( IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine ); NTSTATUS PsRemoveCreateThreadNotifyRoutine ( IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine ); // // Structures for Load Image Notify // typedef struct _IMAGE_INFO { union { ULONG Properties; struct { ULONG ImageAddressingMode : 8; // code addressing mode ULONG SystemModeImage : 1; // system mode image ULONG ImageMappedToAllPids : 1; // image mapped into all processes ULONG Reserved : 22; }; }; PVOID ImageBase; ULONG ImageSelector; SIZE_T ImageSize; ULONG ImageSectionNumber; } IMAGE_INFO, *PIMAGE_INFO; #define IMAGE_ADDRESSING_MODE_32BIT 3 typedef VOID (*PLOAD_IMAGE_NOTIFY_ROUTINE)( IN PUNICODE_STRING FullImageName, IN HANDLE ProcessId, // pid into which image is being mapped IN PIMAGE_INFO ImageInfo ); NTSTATUS PsSetLoadImageNotifyRoutine( IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine ); NTSTATUS PsRemoveLoadImageNotifyRoutine( IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine ); HANDLE PsGetCurrentProcessId( VOID ); HANDLE PsGetCurrentThreadId( VOID ); // end_ntosp BOOLEAN PsGetVersion( PULONG MajorVersion OPTIONAL, PULONG MinorVersion OPTIONAL, PULONG BuildNumber OPTIONAL, PUNICODE_STRING CSDVersion OPTIONAL ); // // Define I/O system data structure type codes. Each major data structure in // the I/O system has a type code The type field in each structure is at the // same offset. The following values can be used to determine which type of // data structure a pointer refers to. // #define IO_TYPE_ADAPTER 0x00000001 #define IO_TYPE_CONTROLLER 0x00000002 #define IO_TYPE_DEVICE 0x00000003 #define IO_TYPE_DRIVER 0x00000004 #define IO_TYPE_FILE 0x00000005 #define IO_TYPE_IRP 0x00000006 #define IO_TYPE_MASTER_ADAPTER 0x00000007 #define IO_TYPE_OPEN_PACKET 0x00000008 #define IO_TYPE_TIMER 0x00000009 #define IO_TYPE_VPB 0x0000000a #define IO_TYPE_ERROR_LOG 0x0000000b #define IO_TYPE_ERROR_MESSAGE 0x0000000c #define IO_TYPE_DEVICE_OBJECT_EXTENSION 0x0000000d // // Define the major function codes for IRPs. // #define IRP_MJ_CREATE 0x00 #define IRP_MJ_CREATE_NAMED_PIPE 0x01 #define IRP_MJ_CLOSE 0x02 #define IRP_MJ_READ 0x03 #define IRP_MJ_WRITE 0x04 #define IRP_MJ_QUERY_INFORMATION 0x05 #define IRP_MJ_SET_INFORMATION 0x06 #define IRP_MJ_QUERY_EA 0x07 #define IRP_MJ_SET_EA 0x08 #define IRP_MJ_FLUSH_BUFFERS 0x09 #define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0a #define IRP_MJ_SET_VOLUME_INFORMATION 0x0b #define IRP_MJ_DIRECTORY_CONTROL 0x0c #define IRP_MJ_FILE_SYSTEM_CONTROL 0x0d #define IRP_MJ_DEVICE_CONTROL 0x0e #define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0f #define IRP_MJ_SHUTDOWN 0x10 #define IRP_MJ_LOCK_CONTROL 0x11 #define IRP_MJ_CLEANUP 0x12 #define IRP_MJ_CREATE_MAILSLOT 0x13 #define IRP_MJ_QUERY_SECURITY 0x14 #define IRP_MJ_SET_SECURITY 0x15 #define IRP_MJ_POWER 0x16 #define IRP_MJ_SYSTEM_CONTROL 0x17 #define IRP_MJ_DEVICE_CHANGE 0x18 #define IRP_MJ_QUERY_QUOTA 0x19 #define IRP_MJ_SET_QUOTA 0x1a #define IRP_MJ_PNP 0x1b #define IRP_MJ_PNP_POWER IRP_MJ_PNP // Obsolete.... #define IRP_MJ_MAXIMUM_FUNCTION 0x1b // // Make the Scsi major code the same as internal device control. // #define IRP_MJ_SCSI IRP_MJ_INTERNAL_DEVICE_CONTROL // // Define the minor function codes for IRPs. The lower 128 codes, from 0x00 to // 0x7f are reserved to Microsoft. The upper 128 codes, from 0x80 to 0xff, are // reserved to customers of Microsoft. // // end_wdm end_ntndis // // Directory control minor function codes // #define IRP_MN_QUERY_DIRECTORY 0x01 #define IRP_MN_NOTIFY_CHANGE_DIRECTORY 0x02 // // File system control minor function codes. Note that "user request" is // assumed to be zero by both the I/O system and file systems. Do not change // this value. // #define IRP_MN_USER_FS_REQUEST 0x00 #define IRP_MN_MOUNT_VOLUME 0x01 #define IRP_MN_VERIFY_VOLUME 0x02 #define IRP_MN_LOAD_FILE_SYSTEM 0x03 #define IRP_MN_TRACK_LINK 0x04 // To be obsoleted soon #define IRP_MN_KERNEL_CALL 0x04 // // Lock control minor function codes // #define IRP_MN_LOCK 0x01 #define IRP_MN_UNLOCK_SINGLE 0x02 #define IRP_MN_UNLOCK_ALL 0x03 #define IRP_MN_UNLOCK_ALL_BY_KEY 0x04 // // Read and Write minor function codes for file systems supporting Lan Manager // software. All of these subfunction codes are invalid if the file has been // opened with FO_NO_INTERMEDIATE_BUFFERING. They are also invalid in combi- // nation with synchronous calls (Irp Flag or file open option). // // Note that "normal" is assumed to be zero by both the I/O system and file // systems. Do not change this value. // #define IRP_MN_NORMAL 0x00 #define IRP_MN_DPC 0x01 #define IRP_MN_MDL 0x02 #define IRP_MN_COMPLETE 0x04 #define IRP_MN_COMPRESSED 0x08 #define IRP_MN_MDL_DPC (IRP_MN_MDL | IRP_MN_DPC) #define IRP_MN_COMPLETE_MDL (IRP_MN_COMPLETE | IRP_MN_MDL) #define IRP_MN_COMPLETE_MDL_DPC (IRP_MN_COMPLETE_MDL | IRP_MN_DPC) // begin_wdm // // Device Control Request minor function codes for SCSI support. Note that // user requests are assumed to be zero. // #define IRP_MN_SCSI_CLASS 0x01 // // PNP minor function codes. // #define IRP_MN_START_DEVICE 0x00 #define IRP_MN_QUERY_REMOVE_DEVICE 0x01 #define IRP_MN_REMOVE_DEVICE 0x02 #define IRP_MN_CANCEL_REMOVE_DEVICE 0x03 #define IRP_MN_STOP_DEVICE 0x04 #define IRP_MN_QUERY_STOP_DEVICE 0x05 #define IRP_MN_CANCEL_STOP_DEVICE 0x06 #define IRP_MN_QUERY_DEVICE_RELATIONS 0x07 #define IRP_MN_QUERY_INTERFACE 0x08 #define IRP_MN_QUERY_CAPABILITIES 0x09 #define IRP_MN_QUERY_RESOURCES 0x0A #define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B #define IRP_MN_QUERY_DEVICE_TEXT 0x0C #define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D #define IRP_MN_READ_CONFIG 0x0F #define IRP_MN_WRITE_CONFIG 0x10 #define IRP_MN_EJECT 0x11 #define IRP_MN_SET_LOCK 0x12 #define IRP_MN_QUERY_ID 0x13 #define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 #define IRP_MN_QUERY_BUS_INFORMATION 0x15 #define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 #define IRP_MN_SURPRISE_REMOVAL 0x17 // end_wdm #define IRP_MN_QUERY_LEGACY_BUS_INFORMATION 0x18 // begin_wdm // // POWER minor function codes // #define IRP_MN_WAIT_WAKE 0x00 #define IRP_MN_POWER_SEQUENCE 0x01 #define IRP_MN_SET_POWER 0x02 #define IRP_MN_QUERY_POWER 0x03 // begin_ntminiport // // WMI minor function codes under IRP_MJ_SYSTEM_CONTROL // #define IRP_MN_QUERY_ALL_DATA 0x00 #define IRP_MN_QUERY_SINGLE_INSTANCE 0x01 #define IRP_MN_CHANGE_SINGLE_INSTANCE 0x02 #define IRP_MN_CHANGE_SINGLE_ITEM 0x03 #define IRP_MN_ENABLE_EVENTS 0x04 #define IRP_MN_DISABLE_EVENTS 0x05 #define IRP_MN_ENABLE_COLLECTION 0x06 #define IRP_MN_DISABLE_COLLECTION 0x07 #define IRP_MN_REGINFO 0x08 #define IRP_MN_EXECUTE_METHOD 0x09 // Minor code 0x0a is reserved #define IRP_MN_REGINFO_EX 0x0b // end_ntminiport // // Define option flags for IoCreateFile. Note that these values must be // exactly the same as the SL_... flags for a create function. Note also // that there are flags that may be passed to IoCreateFile that are not // placed in the stack location for the create IRP. These flags start in // the next byte. // #define IO_FORCE_ACCESS_CHECK 0x0001 #define IO_NO_PARAMETER_CHECKING 0x0100 // // Define Information fields for whether or not a REPARSE or a REMOUNT has // occurred in the file system. // #define IO_REPARSE 0x0 #define IO_REMOUNT 0x1 // // Define callout routine type for use in IoQueryDeviceDescription(). // typedef NTSTATUS (*PIO_QUERY_DEVICE_ROUTINE)( IN PVOID Context, IN PUNICODE_STRING PathName, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN PKEY_VALUE_FULL_INFORMATION *BusInformation, IN CONFIGURATION_TYPE ControllerType, IN ULONG ControllerNumber, IN PKEY_VALUE_FULL_INFORMATION *ControllerInformation, IN CONFIGURATION_TYPE PeripheralType, IN ULONG PeripheralNumber, IN PKEY_VALUE_FULL_INFORMATION *PeripheralInformation ); // Defines the order of the information in the array of // PKEY_VALUE_FULL_INFORMATION. // typedef enum _IO_QUERY_DEVICE_DATA_FORMAT { IoQueryDeviceIdentifier = 0, IoQueryDeviceConfigurationData, IoQueryDeviceComponentInformation, IoQueryDeviceMaxData } IO_QUERY_DEVICE_DATA_FORMAT, *PIO_QUERY_DEVICE_DATA_FORMAT; // begin_wdm begin_ntifs // // Define the objects that can be created by IoCreateFile. // typedef enum _CREATE_FILE_TYPE { CreateFileTypeNone, CreateFileTypeNamedPipe, CreateFileTypeMailslot } CREATE_FILE_TYPE; // // Define the structures used by the I/O system // // // Define empty typedefs for the _IRP, _DEVICE_OBJECT, and _DRIVER_OBJECT // structures so they may be referenced by function types before they are // actually defined. // struct _DEVICE_DESCRIPTION; struct _DEVICE_OBJECT; struct _DMA_ADAPTER; struct _DRIVER_OBJECT; struct _DRIVE_LAYOUT_INFORMATION; struct _DISK_PARTITION; struct _FILE_OBJECT; struct _IRP; struct _SCSI_REQUEST_BLOCK; struct _SCATTER_GATHER_LIST; // // Define the I/O version of a DPC routine. // typedef VOID (*PIO_DPC_ROUTINE) ( IN PKDPC Dpc, IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PVOID Context ); // // Define driver timer routine type. // typedef VOID (*PIO_TIMER_ROUTINE) ( IN struct _DEVICE_OBJECT *DeviceObject, IN PVOID Context ); // // Define driver initialization routine type. // typedef NTSTATUS (*PDRIVER_INITIALIZE) ( IN struct _DRIVER_OBJECT *DriverObject, IN PUNICODE_STRING RegistryPath ); // end_wdm // // Define driver reinitialization routine type. // typedef VOID (*PDRIVER_REINITIALIZE) ( IN struct _DRIVER_OBJECT *DriverObject, IN PVOID Context, IN ULONG Count ); // begin_wdm begin_ntndis // // Define driver cancel routine type. // typedef VOID (*PDRIVER_CANCEL) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp ); // // Define driver dispatch routine type. // typedef NTSTATUS (*PDRIVER_DISPATCH) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp ); // // Define driver start I/O routine type. // typedef VOID (*PDRIVER_STARTIO) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp ); // // Define driver unload routine type. // typedef VOID (*PDRIVER_UNLOAD) ( IN struct _DRIVER_OBJECT *DriverObject ); // // Define driver AddDevice routine type. // typedef NTSTATUS (*PDRIVER_ADD_DEVICE) ( IN struct _DRIVER_OBJECT *DriverObject, IN struct _DEVICE_OBJECT *PhysicalDeviceObject ); // // Define fast I/O procedure prototypes. // // Fast I/O read and write procedures. // typedef BOOLEAN (*PFAST_IO_CHECK_IF_POSSIBLE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN BOOLEAN CheckForReadOperation, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_READ) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Fast I/O query basic and standard information procedures. // typedef BOOLEAN (*PFAST_IO_QUERY_BASIC_INFO) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_QUERY_STANDARD_INFO) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Fast I/O lock and unlock procedures. // typedef BOOLEAN (*PFAST_IO_LOCK) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, BOOLEAN FailImmediately, BOOLEAN ExclusiveLock, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_UNLOCK_SINGLE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL) ( IN struct _FILE_OBJECT *FileObject, PEPROCESS ProcessId, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL_BY_KEY) ( IN struct _FILE_OBJECT *FileObject, PVOID ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Fast I/O device control procedure. // typedef BOOLEAN (*PFAST_IO_DEVICE_CONTROL) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN ULONG IoControlCode, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Define callbacks for NtCreateSection to synchronize correctly with // the file system. It pre-acquires the resources that will be needed // when calling to query and set file/allocation size in the file system. // typedef VOID (*PFAST_IO_ACQUIRE_FILE) ( IN struct _FILE_OBJECT *FileObject ); typedef VOID (*PFAST_IO_RELEASE_FILE) ( IN struct _FILE_OBJECT *FileObject ); // // Define callback for drivers that have device objects attached to lower- // level drivers' device objects. This callback is made when the lower-level // driver is deleting its device object. // typedef VOID (*PFAST_IO_DETACH_DEVICE) ( IN struct _DEVICE_OBJECT *SourceDevice, IN struct _DEVICE_OBJECT *TargetDevice ); // // This structure is used by the server to quickly get the information needed // to service a server open call. It is takes what would be two fast io calls // one for basic information and the other for standard information and makes // it into one call. // typedef BOOLEAN (*PFAST_IO_QUERY_NETWORK_OPEN_INFO) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer, OUT struct _IO_STATUS_BLOCK *IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Define Mdl-based routines for the server to call // typedef BOOLEAN (*PFAST_IO_MDL_READ) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_READ_COMPLETE) ( IN struct _FILE_OBJECT *FileObject, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_PREPARE_MDL_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_WRITE_COMPLETE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); // // If this routine is present, it will be called by FsRtl // to acquire the file for the mapped page writer. // typedef NTSTATUS (*PFAST_IO_ACQUIRE_FOR_MOD_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER EndingOffset, OUT struct _ERESOURCE **ResourceToRelease, IN struct _DEVICE_OBJECT *DeviceObject ); typedef NTSTATUS (*PFAST_IO_RELEASE_FOR_MOD_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN struct _ERESOURCE *ResourceToRelease, IN struct _DEVICE_OBJECT *DeviceObject ); // // If this routine is present, it will be called by FsRtl // to acquire the file for the mapped page writer. // typedef NTSTATUS (*PFAST_IO_ACQUIRE_FOR_CCFLUSH) ( IN struct _FILE_OBJECT *FileObject, IN struct _DEVICE_OBJECT *DeviceObject ); typedef NTSTATUS (*PFAST_IO_RELEASE_FOR_CCFLUSH) ( IN struct _FILE_OBJECT *FileObject, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_READ_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PVOID Buffer, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_WRITE_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, IN PVOID Buffer, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_READ_COMPLETE_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_QUERY_OPEN) ( IN struct _IRP *Irp, OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation, IN struct _DEVICE_OBJECT *DeviceObject ); // // Define the structure to describe the Fast I/O dispatch routines. Any // additions made to this structure MUST be added monotonically to the end // of the structure, and fields CANNOT be removed from the middle. // typedef struct _FAST_IO_DISPATCH { ULONG SizeOfFastIoDispatch; PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible; PFAST_IO_READ FastIoRead; PFAST_IO_WRITE FastIoWrite; PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo; PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo; PFAST_IO_LOCK FastIoLock; PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle; PFAST_IO_UNLOCK_ALL FastIoUnlockAll; PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey; PFAST_IO_DEVICE_CONTROL FastIoDeviceControl; PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection; PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection; PFAST_IO_DETACH_DEVICE FastIoDetachDevice; PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo; PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite; PFAST_IO_MDL_READ MdlRead; PFAST_IO_MDL_READ_COMPLETE MdlReadComplete; PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite; PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete; PFAST_IO_READ_COMPRESSED FastIoReadCompressed; PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed; PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed; PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed; PFAST_IO_QUERY_OPEN FastIoQueryOpen; PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite; PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush; PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush; } FAST_IO_DISPATCH, *PFAST_IO_DISPATCH; // // Define the actions that a driver execution routine may request of the // adapter/controller allocation routines upon return. // typedef enum _IO_ALLOCATION_ACTION { KeepObject = 1, DeallocateObject, DeallocateObjectKeepRegisters } IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION; // // Define device driver adapter/controller execution routine. // typedef IO_ALLOCATION_ACTION (*PDRIVER_CONTROL) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PVOID MapRegisterBase, IN PVOID Context ); // // Define the I/O system's security context type for use by file system's // when checking access to volumes, files, and directories. // typedef struct _IO_SECURITY_CONTEXT { PSECURITY_QUALITY_OF_SERVICE SecurityQos; PACCESS_STATE AccessState; ACCESS_MASK DesiredAccess; ULONG FullCreateOptions; } IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT; // // Define Volume Parameter Block (VPB) flags. // #define VPB_MOUNTED 0x00000001 #define VPB_LOCKED 0x00000002 #define VPB_PERSISTENT 0x00000004 #define VPB_REMOVE_PENDING 0x00000008 #define VPB_RAW_MOUNT 0x00000010 // // Volume Parameter Block (VPB) // #define MAXIMUM_VOLUME_LABEL_LENGTH (32 * sizeof(WCHAR)) // 32 characters typedef struct _VPB { CSHORT Type; CSHORT Size; USHORT Flags; USHORT VolumeLabelLength; // in bytes struct _DEVICE_OBJECT *DeviceObject; struct _DEVICE_OBJECT *RealDevice; ULONG SerialNumber; ULONG ReferenceCount; WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)]; } VPB, *PVPB; #if defined(_WIN64) // // Use __inline DMA macros (hal.h) // #ifndef USE_DMA_MACROS #define USE_DMA_MACROS #endif // // Only PnP drivers! // #ifndef NO_LEGACY_DRIVERS #define NO_LEGACY_DRIVERS #endif #endif // _WIN64 #if defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_) || defined(_NTOSP_)) // begin_wdm // // Define object type specific fields of various objects used by the I/O system // typedef struct _DMA_ADAPTER *PADAPTER_OBJECT; // end_wdm #else // // Define object type specific fields of various objects used by the I/O system // typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT; // ntndis #endif // USE_DMA_MACROS && (_NTDDK_ || _NTDRIVER_ || _NTOSP_) // begin_wdm // // Define Wait Context Block (WCB) // typedef struct _WAIT_CONTEXT_BLOCK { KDEVICE_QUEUE_ENTRY WaitQueueEntry; PDRIVER_CONTROL DeviceRoutine; PVOID DeviceContext; ULONG NumberOfMapRegisters; PVOID DeviceObject; PVOID CurrentIrp; PKDPC BufferChainingDpc; } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK; // end_wdm typedef struct _CONTROLLER_OBJECT { CSHORT Type; CSHORT Size; PVOID ControllerExtension; KDEVICE_QUEUE DeviceWaitQueue; ULONG Spare1; LARGE_INTEGER Spare2; } CONTROLLER_OBJECT, *PCONTROLLER_OBJECT; // begin_wdm // // Define Device Object (DO) flags // #define DO_VERIFY_VOLUME 0x00000002 #define DO_BUFFERED_IO 0x00000004 #define DO_EXCLUSIVE 0x00000008 #define DO_DIRECT_IO 0x00000010 #define DO_MAP_IO_BUFFER 0x00000020 #define DO_DEVICE_HAS_NAME 0x00000040 #define DO_DEVICE_INITIALIZING 0x00000080 #define DO_SYSTEM_BOOT_PARTITION 0x00000100 #define DO_LONG_TERM_REQUESTS 0x00000200 #define DO_NEVER_LAST_DEVICE 0x00000400 #define DO_SHUTDOWN_REGISTERED 0x00000800 #define DO_BUS_ENUMERATED_DEVICE 0x00001000 #define DO_POWER_PAGABLE 0x00002000 #define DO_POWER_INRUSH 0x00004000 #define DO_LOW_PRIORITY_FILESYSTEM 0x00010000 // // Device Object structure definition // typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT { CSHORT Type; USHORT Size; LONG ReferenceCount; struct _DRIVER_OBJECT *DriverObject; struct _DEVICE_OBJECT *NextDevice; struct _DEVICE_OBJECT *AttachedDevice; struct _IRP *CurrentIrp; PIO_TIMER Timer; ULONG Flags; // See above: DO_... ULONG Characteristics; // See ntioapi: FILE_... PVPB Vpb; PVOID DeviceExtension; DEVICE_TYPE DeviceType; CCHAR StackSize; union { LIST_ENTRY ListEntry; WAIT_CONTEXT_BLOCK Wcb; } Queue; ULONG AlignmentRequirement; KDEVICE_QUEUE DeviceQueue; KDPC Dpc; // // The following field is for exclusive use by the filesystem to keep // track of the number of Fsp threads currently using the device // ULONG ActiveThreadCount; PSECURITY_DESCRIPTOR SecurityDescriptor; KEVENT DeviceLock; USHORT SectorSize; USHORT Spare1; struct _DEVOBJ_EXTENSION *DeviceObjectExtension; PVOID Reserved; } DEVICE_OBJECT; typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT; // ntndis struct _DEVICE_OBJECT_POWER_EXTENSION; typedef struct _DEVOBJ_EXTENSION { CSHORT Type; USHORT Size; // // Public part of the DeviceObjectExtension structure // PDEVICE_OBJECT DeviceObject; // owning device object } DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION; // // Define Driver Object (DRVO) flags // #define DRVO_UNLOAD_INVOKED 0x00000001 #define DRVO_LEGACY_DRIVER 0x00000002 #define DRVO_BUILTIN_DRIVER 0x00000004 // Driver objects for Hal, PnP Mgr // end_wdm #define DRVO_REINIT_REGISTERED 0x00000008 #define DRVO_INITIALIZED 0x00000010 #define DRVO_BOOTREINIT_REGISTERED 0x00000020 #define DRVO_LEGACY_RESOURCES 0x00000040 // begin_wdm typedef struct _DRIVER_EXTENSION { // // Back pointer to Driver Object // struct _DRIVER_OBJECT *DriverObject; // // The AddDevice entry point is called by the Plug & Play manager // to inform the driver when a new device instance arrives that this // driver must control. // PDRIVER_ADD_DEVICE AddDevice; // // The count field is used to count the number of times the driver has // had its registered reinitialization routine invoked. // ULONG Count; // // The service name field is used by the pnp manager to determine // where the driver related info is stored in the registry. // UNICODE_STRING ServiceKeyName; // // Note: any new shared fields get added here. // } DRIVER_EXTENSION, *PDRIVER_EXTENSION; typedef struct _DRIVER_OBJECT { CSHORT Type; CSHORT Size; // // The following links all of the devices created by a single driver // together on a list, and the Flags word provides an extensible flag // location for driver objects. // PDEVICE_OBJECT DeviceObject; ULONG Flags; // // The following section describes where the driver is loaded. The count // field is used to count the number of times the driver has had its // registered reinitialization routine invoked. // PVOID DriverStart; ULONG DriverSize; PVOID DriverSection; PDRIVER_EXTENSION DriverExtension; // // The driver name field is used by the error log thread // determine the name of the driver that an I/O request is/was bound. // UNICODE_STRING DriverName; // // The following section is for registry support. Thise is a pointer // to the path to the hardware information in the registry // PUNICODE_STRING HardwareDatabase; // // The following section contains the optional pointer to an array of // alternate entry points to a driver for "fast I/O" support. Fast I/O // is performed by invoking the driver routine directly with separate // parameters, rather than using the standard IRP call mechanism. Note // that these functions may only be used for synchronous I/O, and when // the file is cached. // PFAST_IO_DISPATCH FastIoDispatch; // // The following section describes the entry points to this particular // driver. Note that the major function dispatch table must be the last // field in the object so that it remains extensible. // PDRIVER_INITIALIZE DriverInit; PDRIVER_STARTIO DriverStartIo; PDRIVER_UNLOAD DriverUnload; PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1]; } DRIVER_OBJECT; typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT; // ntndis // // The following structure is pointed to by the SectionObject pointer field // of a file object, and is allocated by the various NT file systems. // typedef struct _SECTION_OBJECT_POINTERS { PVOID DataSectionObject; PVOID SharedCacheMap; PVOID ImageSectionObject; } SECTION_OBJECT_POINTERS; typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS; // // Define the format of a completion message. // typedef struct _IO_COMPLETION_CONTEXT { PVOID Port; PVOID Key; } IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT; // // Define File Object (FO) flags // #define FO_FILE_OPEN 0x00000001 #define FO_SYNCHRONOUS_IO 0x00000002 #define FO_ALERTABLE_IO 0x00000004 #define FO_NO_INTERMEDIATE_BUFFERING 0x00000008 #define FO_WRITE_THROUGH 0x00000010 #define FO_SEQUENTIAL_ONLY 0x00000020 #define FO_CACHE_SUPPORTED 0x00000040 #define FO_NAMED_PIPE 0x00000080 #define FO_STREAM_FILE 0x00000100 #define FO_MAILSLOT 0x00000200 #define FO_GENERATE_AUDIT_ON_CLOSE 0x00000400 #define FO_DIRECT_DEVICE_OPEN 0x00000800 #define FO_FILE_MODIFIED 0x00001000 #define FO_FILE_SIZE_CHANGED 0x00002000 #define FO_CLEANUP_COMPLETE 0x00004000 #define FO_TEMPORARY_FILE 0x00008000 #define FO_DELETE_ON_CLOSE 0x00010000 #define FO_OPENED_CASE_SENSITIVE 0x00020000 #define FO_HANDLE_CREATED 0x00040000 #define FO_FILE_FAST_IO_READ 0x00080000 #define FO_RANDOM_ACCESS 0x00100000 #define FO_FILE_OPEN_CANCELLED 0x00200000 #define FO_VOLUME_OPEN 0x00400000 #define FO_FILE_OBJECT_HAS_EXTENSION 0x00800000 #define FO_REMOTE_ORIGIN 0x01000000 typedef struct _FILE_OBJECT { CSHORT Type; CSHORT Size; PDEVICE_OBJECT DeviceObject; PVPB Vpb; PVOID FsContext; PVOID FsContext2; PSECTION_OBJECT_POINTERS SectionObjectPointer; PVOID PrivateCacheMap; NTSTATUS FinalStatus; struct _FILE_OBJECT *RelatedFileObject; BOOLEAN LockOperation; BOOLEAN DeletePending; BOOLEAN ReadAccess; BOOLEAN WriteAccess; BOOLEAN DeleteAccess; BOOLEAN SharedRead; BOOLEAN SharedWrite; BOOLEAN SharedDelete; ULONG Flags; UNICODE_STRING FileName; LARGE_INTEGER CurrentByteOffset; ULONG Waiters; ULONG Busy; PVOID LastLock; KEVENT Lock; KEVENT Event; PIO_COMPLETION_CONTEXT CompletionContext; } FILE_OBJECT; typedef struct _FILE_OBJECT *PFILE_OBJECT; // ntndis // // Define I/O Request Packet (IRP) flags // #define IRP_NOCACHE 0x00000001 #define IRP_PAGING_IO 0x00000002 #define IRP_MOUNT_COMPLETION 0x00000002 #define IRP_SYNCHRONOUS_API 0x00000004 #define IRP_ASSOCIATED_IRP 0x00000008 #define IRP_BUFFERED_IO 0x00000010 #define IRP_DEALLOCATE_BUFFER 0x00000020 #define IRP_INPUT_OPERATION 0x00000040 #define IRP_SYNCHRONOUS_PAGING_IO 0x00000040 #define IRP_CREATE_OPERATION 0x00000080 #define IRP_READ_OPERATION 0x00000100 #define IRP_WRITE_OPERATION 0x00000200 #define IRP_CLOSE_OPERATION 0x00000400 // end_wdm #define IRP_DEFER_IO_COMPLETION 0x00000800 #define IRP_OB_QUERY_NAME 0x00001000 #define IRP_HOLD_DEVICE_QUEUE 0x00002000 #define IRP_RETRY_IO_COMPLETION 0x00004000 #define IRP_CLASS_CACHE_OPERATION 0x00008000 #define IRP_SET_USER_EVENT IRP_CLOSE_OPERATION // begin_wdm // // Define I/O request packet (IRP) alternate flags for allocation control. // #define IRP_QUOTA_CHARGED 0x01 #define IRP_ALLOCATED_MUST_SUCCEED 0x02 #define IRP_ALLOCATED_FIXED_SIZE 0x04 #define IRP_LOOKASIDE_ALLOCATION 0x08 // // I/O Request Packet (IRP) definition // typedef struct _IRP { CSHORT Type; USHORT Size; // // Define the common fields used to control the IRP. // // // Define a pointer to the Memory Descriptor List (MDL) for this I/O // request. This field is only used if the I/O is "direct I/O". // PMDL MdlAddress; // // Flags word - used to remember various flags. // ULONG Flags; // // The following union is used for one of three purposes: // // 1. This IRP is an associated IRP. The field is a pointer to a master // IRP. // // 2. This is the master IRP. The field is the count of the number of // IRPs which must complete (associated IRPs) before the master can // complete. // // 3. This operation is being buffered and the field is the address of // the system space buffer. // union { struct _IRP *MasterIrp; LONG IrpCount; PVOID SystemBuffer; } AssociatedIrp; // // Thread list entry - allows queueing the IRP to the thread pending I/O // request packet list. // LIST_ENTRY ThreadListEntry; // // I/O status - final status of operation. // IO_STATUS_BLOCK IoStatus; // // Requestor mode - mode of the original requestor of this operation. // KPROCESSOR_MODE RequestorMode; // // Pending returned - TRUE if pending was initially returned as the // status for this packet. // BOOLEAN PendingReturned; // // Stack state information. // CHAR StackCount; CHAR CurrentLocation; // // Cancel - packet has been canceled. // BOOLEAN Cancel; // // Cancel Irql - Irql at which the cancel spinlock was acquired. // KIRQL CancelIrql; // // ApcEnvironment - Used to save the APC environment at the time that the // packet was initialized. // CCHAR ApcEnvironment; // // Allocation control flags. // UCHAR AllocationFlags; // // User parameters. // PIO_STATUS_BLOCK UserIosb; PKEVENT UserEvent; union { struct { PIO_APC_ROUTINE UserApcRoutine; PVOID UserApcContext; } AsynchronousParameters; LARGE_INTEGER AllocationSize; } Overlay; // // CancelRoutine - Used to contain the address of a cancel routine supplied // by a device driver when the IRP is in a cancelable state. // PDRIVER_CANCEL CancelRoutine; // // Note that the UserBuffer parameter is outside of the stack so that I/O // completion can copy data back into the user's address space without // having to know exactly which service was being invoked. The length // of the copy is stored in the second half of the I/O status block. If // the UserBuffer field is NULL, then no copy is performed. // PVOID UserBuffer; // // Kernel structures // // The following section contains kernel structures which the IRP needs // in order to place various work information in kernel controller system // queues. Because the size and alignment cannot be controlled, they are // placed here at the end so they just hang off and do not affect the // alignment of other fields in the IRP. // union { struct { union { // // DeviceQueueEntry - The device queue entry field is used to // queue the IRP to the device driver device queue. // KDEVICE_QUEUE_ENTRY DeviceQueueEntry; struct { // // The following are available to the driver to use in // whatever manner is desired, while the driver owns the // packet. // PVOID DriverContext[4]; } ; } ; // // Thread - pointer to caller's Thread Control Block. // PETHREAD Thread; // // Auxiliary buffer - pointer to any auxiliary buffer that is // required to pass information to a driver that is not contained // in a normal buffer. // PCHAR AuxiliaryBuffer; // // The following unnamed structure must be exactly identical // to the unnamed structure used in the minipacket header used // for completion queue entries. // struct { // // List entry - used to queue the packet to completion queue, among // others. // LIST_ENTRY ListEntry; union { // // Current stack location - contains a pointer to the current // IO_STACK_LOCATION structure in the IRP stack. This field // should never be directly accessed by drivers. They should // use the standard functions. // struct _IO_STACK_LOCATION *CurrentStackLocation; // // Minipacket type. // ULONG PacketType; }; }; // // Original file object - pointer to the original file object // that was used to open the file. This field is owned by the // I/O system and should not be used by any other drivers. // PFILE_OBJECT OriginalFileObject; } Overlay; // // APC - This APC control block is used for the special kernel APC as // well as for the caller's APC, if one was specified in the original // argument list. If so, then the APC is reused for the normal APC for // whatever mode the caller was in and the "special" routine that is // invoked before the APC gets control simply deallocates the IRP. // KAPC Apc; // // CompletionKey - This is the key that is used to distinguish // individual I/O operations initiated on a single file handle. // PVOID CompletionKey; } Tail; } IRP, *PIRP; // // Define completion routine types for use in stack locations in an IRP // typedef NTSTATUS (*PIO_COMPLETION_ROUTINE) ( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context ); // // Define stack location control flags // #define SL_PENDING_RETURNED 0x01 #define SL_INVOKE_ON_CANCEL 0x20 #define SL_INVOKE_ON_SUCCESS 0x40 #define SL_INVOKE_ON_ERROR 0x80 // // Define flags for various functions // // // Create / Create Named Pipe // // The following flags must exactly match those in the IoCreateFile call's // options. The case sensitive flag is added in later, by the parse routine, // and is not an actual option to open. Rather, it is part of the object // manager's attributes structure. // #define SL_FORCE_ACCESS_CHECK 0x01 #define SL_OPEN_PAGING_FILE 0x02 #define SL_OPEN_TARGET_DIRECTORY 0x04 #define SL_CASE_SENSITIVE 0x80 // // Read / Write // #define SL_KEY_SPECIFIED 0x01 #define SL_OVERRIDE_VERIFY_VOLUME 0x02 #define SL_WRITE_THROUGH 0x04 #define SL_FT_SEQUENTIAL_WRITE 0x08 // // Device I/O Control // // // Same SL_OVERRIDE_VERIFY_VOLUME as for read/write above. // #define SL_READ_ACCESS_GRANTED 0x01 #define SL_WRITE_ACCESS_GRANTED 0x04 // Gap for SL_OVERRIDE_VERIFY_VOLUME // // Lock // #define SL_FAIL_IMMEDIATELY 0x01 #define SL_EXCLUSIVE_LOCK 0x02 // // QueryDirectory / QueryEa / QueryQuota // #define SL_RESTART_SCAN 0x01 #define SL_RETURN_SINGLE_ENTRY 0x02 #define SL_INDEX_SPECIFIED 0x04 // // NotifyDirectory // #define SL_WATCH_TREE 0x01 // // FileSystemControl // // minor: mount/verify volume // #define SL_ALLOW_RAW_MOUNT 0x01 // // Define PNP/POWER types required by IRP_MJ_PNP/IRP_MJ_POWER. // typedef enum _DEVICE_RELATION_TYPE { BusRelations, EjectionRelations, PowerRelations, RemovalRelations, TargetDeviceRelation, SingleBusRelations } DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE; typedef struct _DEVICE_RELATIONS { ULONG Count; PDEVICE_OBJECT Objects[1]; // variable length } DEVICE_RELATIONS, *PDEVICE_RELATIONS; typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined, DeviceUsageTypePaging, DeviceUsageTypeHibernation, DeviceUsageTypeDumpFile } DEVICE_USAGE_NOTIFICATION_TYPE; // begin_ntminiport // workaround overloaded definition (rpc generated headers all define INTERFACE // to match the class name). #undef INTERFACE typedef struct _INTERFACE { USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // interface specific entries go here } INTERFACE, *PINTERFACE; // end_ntminiport typedef struct _DEVICE_CAPABILITIES { USHORT Size; USHORT Version; // the version documented here is version 1 ULONG DeviceD1:1; ULONG DeviceD2:1; ULONG LockSupported:1; ULONG EjectSupported:1; // Ejectable in S0 ULONG Removable:1; ULONG DockDevice:1; ULONG UniqueID:1; ULONG SilentInstall:1; ULONG RawDeviceOK:1; ULONG SurpriseRemovalOK:1; ULONG WakeFromD0:1; ULONG WakeFromD1:1; ULONG WakeFromD2:1; ULONG WakeFromD3:1; ULONG HardwareDisabled:1; ULONG NonDynamic:1; ULONG WarmEjectSupported:1; ULONG NoDisplayInUI:1; ULONG Reserved:14; ULONG Address; ULONG UINumber; DEVICE_POWER_STATE DeviceState[POWER_SYSTEM_MAXIMUM]; SYSTEM_POWER_STATE SystemWake; DEVICE_POWER_STATE DeviceWake; ULONG D1Latency; ULONG D2Latency; ULONG D3Latency; } DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES; typedef struct _POWER_SEQUENCE { ULONG SequenceD1; ULONG SequenceD2; ULONG SequenceD3; } POWER_SEQUENCE, *PPOWER_SEQUENCE; typedef enum { BusQueryDeviceID = 0, // \ BusQueryHardwareIDs = 1, // Hardware ids BusQueryCompatibleIDs = 2, // compatible device ids BusQueryInstanceID = 3, // persistent id for this instance of the device BusQueryDeviceSerialNumber = 4 // serial number for this device } BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE; typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE; #define PNP_DEVICE_DISABLED 0x00000001 #define PNP_DEVICE_DONT_DISPLAY_IN_UI 0x00000002 #define PNP_DEVICE_FAILED 0x00000004 #define PNP_DEVICE_REMOVED 0x00000008 #define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010 #define PNP_DEVICE_NOT_DISABLEABLE 0x00000020 typedef enum { DeviceTextDescription = 0, // DeviceDesc property DeviceTextLocationInformation = 1 // DeviceLocation property } DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE; // // Define I/O Request Packet (IRP) stack locations // #if !defined(_AMD64_) && !defined(_IA64_) #include "pshpack4.h" #endif // begin_ntndis #if defined(_WIN64) #define POINTER_ALIGNMENT DECLSPEC_ALIGN(8) #else #define POINTER_ALIGNMENT #endif // end_ntndis typedef struct _IO_STACK_LOCATION { UCHAR MajorFunction; UCHAR MinorFunction; UCHAR Flags; UCHAR Control; // // The following user parameters are based on the service that is being // invoked. Drivers and file systems can determine which set to use based // on the above major and minor function codes. // union { // // System service parameters for: NtCreateFile // struct { PIO_SECURITY_CONTEXT SecurityContext; ULONG Options; USHORT POINTER_ALIGNMENT FileAttributes; USHORT ShareAccess; ULONG POINTER_ALIGNMENT EaLength; } Create; // // System service parameters for: NtReadFile // struct { ULONG Length; ULONG POINTER_ALIGNMENT Key; LARGE_INTEGER ByteOffset; } Read; // // System service parameters for: NtWriteFile // struct { ULONG Length; ULONG POINTER_ALIGNMENT Key; LARGE_INTEGER ByteOffset; } Write; // // System service parameters for: NtQueryInformationFile // struct { ULONG Length; FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; } QueryFile; // // System service parameters for: NtSetInformationFile // struct { ULONG Length; FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; PFILE_OBJECT FileObject; union { struct { BOOLEAN ReplaceIfExists; BOOLEAN AdvanceOnly; }; ULONG ClusterCount; HANDLE DeleteHandle; }; } SetFile; // // System service parameters for: NtQueryVolumeInformationFile // struct { ULONG Length; FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass; } QueryVolume; // // System service parameters for: NtFlushBuffersFile // // No extra user-supplied parameters. // // // System service parameters for: NtDeviceIoControlFile // // Note that the user's output buffer is stored in the UserBuffer field // and the user's input buffer is stored in the SystemBuffer field. // struct { ULONG OutputBufferLength; ULONG POINTER_ALIGNMENT InputBufferLength; ULONG POINTER_ALIGNMENT IoControlCode; PVOID Type3InputBuffer; } DeviceIoControl; // end_wdm // // System service parameters for: NtQuerySecurityObject // struct { SECURITY_INFORMATION SecurityInformation; ULONG POINTER_ALIGNMENT Length; } QuerySecurity; // // System service parameters for: NtSetSecurityObject // struct { SECURITY_INFORMATION SecurityInformation; PSECURITY_DESCRIPTOR SecurityDescriptor; } SetSecurity; // begin_wdm // // Non-system service parameters. // // Parameters for MountVolume // struct { PVPB Vpb; PDEVICE_OBJECT DeviceObject; } MountVolume; // // Parameters for VerifyVolume // struct { PVPB Vpb; PDEVICE_OBJECT DeviceObject; } VerifyVolume; // // Parameters for Scsi with internal device contorl. // struct { struct _SCSI_REQUEST_BLOCK *Srb; } Scsi; // // Parameters for IRP_MN_QUERY_DEVICE_RELATIONS // struct { DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; // // Parameters for IRP_MN_QUERY_INTERFACE // struct { CONST GUID *InterfaceType; USHORT Size; USHORT Version; PINTERFACE Interface; PVOID InterfaceSpecificData; } QueryInterface; // end_ntifs // // Parameters for IRP_MN_QUERY_CAPABILITIES // struct { PDEVICE_CAPABILITIES Capabilities; } DeviceCapabilities; // // Parameters for IRP_MN_FILTER_RESOURCE_REQUIREMENTS // struct { PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList; } FilterResourceRequirements; // // Parameters for IRP_MN_READ_CONFIG and IRP_MN_WRITE_CONFIG // struct { ULONG WhichSpace; PVOID Buffer; ULONG Offset; ULONG POINTER_ALIGNMENT Length; } ReadWriteConfig; // // Parameters for IRP_MN_SET_LOCK // struct { BOOLEAN Lock; } SetLock; // // Parameters for IRP_MN_QUERY_ID // struct { BUS_QUERY_ID_TYPE IdType; } QueryId; // // Parameters for IRP_MN_QUERY_DEVICE_TEXT // struct { DEVICE_TEXT_TYPE DeviceTextType; LCID POINTER_ALIGNMENT LocaleId; } QueryDeviceText; // // Parameters for IRP_MN_DEVICE_USAGE_NOTIFICATION // struct { BOOLEAN InPath; BOOLEAN Reserved[3]; DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type; } UsageNotification; // // Parameters for IRP_MN_WAIT_WAKE // struct { SYSTEM_POWER_STATE PowerState; } WaitWake; // // Parameter for IRP_MN_POWER_SEQUENCE // struct { PPOWER_SEQUENCE PowerSequence; } PowerSequence; // // Parameters for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER // struct { ULONG SystemContext; POWER_STATE_TYPE POINTER_ALIGNMENT Type; POWER_STATE POINTER_ALIGNMENT State; POWER_ACTION POINTER_ALIGNMENT ShutdownType; } Power; // // Parameters for StartDevice // struct { PCM_RESOURCE_LIST AllocatedResources; PCM_RESOURCE_LIST AllocatedResourcesTranslated; } StartDevice; // begin_ntifs // // Parameters for Cleanup // // No extra parameters supplied // // // WMI Irps // struct { ULONG_PTR ProviderId; PVOID DataPath; ULONG BufferSize; PVOID Buffer; } WMI; // // Others - driver-specific // struct { PVOID Argument1; PVOID Argument2; PVOID Argument3; PVOID Argument4; } Others; } Parameters; // // Save a pointer to this device driver's device object for this request // so it can be passed to the completion routine if needed. // PDEVICE_OBJECT DeviceObject; // // The following location contains a pointer to the file object for this // PFILE_OBJECT FileObject; // // The following routine is invoked depending on the flags in the above // flags field. // PIO_COMPLETION_ROUTINE CompletionRoutine; // // The following is used to store the address of the context parameter // that should be passed to the CompletionRoutine. // PVOID Context; } IO_STACK_LOCATION, *PIO_STACK_LOCATION; #if !defined(_AMD64_) && !defined(_IA64_) #include "poppack.h" #endif // // Define the share access structure used by file systems to determine // whether or not another accessor may open the file. // typedef struct _SHARE_ACCESS { ULONG OpenCount; ULONG Readers; ULONG Writers; ULONG Deleters; ULONG SharedRead; ULONG SharedWrite; ULONG SharedDelete; } SHARE_ACCESS, *PSHARE_ACCESS; // end_wdm // // The following structure is used by drivers that are initializing to // determine the number of devices of a particular type that have already // been initialized. It is also used to track whether or not the AtDisk // address range has already been claimed. Finally, it is used by the // NtQuerySystemInformation system service to return device type counts. // typedef struct _CONFIGURATION_INFORMATION { // // This field indicates the total number of disks in the system. This // number should be used by the driver to determine the name of new // disks. This field should be updated by the driver as it finds new // disks. // ULONG DiskCount; // Count of hard disks thus far ULONG FloppyCount; // Count of floppy disks thus far ULONG CdRomCount; // Count of CD-ROM drives thus far ULONG TapeCount; // Count of tape drives thus far ULONG ScsiPortCount; // Count of SCSI port adapters thus far ULONG SerialCount; // Count of serial devices thus far ULONG ParallelCount; // Count of parallel devices thus far // // These next two fields indicate ownership of one of the two IO address // spaces that are used by WD1003-compatable disk controllers. // BOOLEAN AtDiskPrimaryAddressClaimed; // 0x1F0 - 0x1FF BOOLEAN AtDiskSecondaryAddressClaimed; // 0x170 - 0x17F // // Indicates the structure version, as anything value belong this will have been added. // Use the structure size as the version. // ULONG Version; // // Indicates the total number of medium changer devices in the system. // This field will be updated by the drivers as it determines that // new devices have been found and will be supported. // ULONG MediumChangerCount; } CONFIGURATION_INFORMATION, *PCONFIGURATION_INFORMATION; // // Public I/O routine definitions // NTKERNELAPI VOID IoAcquireCancelSpinLock( OUT PKIRQL Irql ); DECLSPEC_DEPRECATED_DDK // Use AllocateAdapterChannel NTKERNELAPI NTSTATUS IoAllocateAdapterChannel( IN PADAPTER_OBJECT AdapterObject, IN PDEVICE_OBJECT DeviceObject, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context ); NTKERNELAPI VOID IoAllocateController( IN PCONTROLLER_OBJECT ControllerObject, IN PDEVICE_OBJECT DeviceObject, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context ); // begin_wdm NTKERNELAPI NTSTATUS IoAllocateDriverObjectExtension( IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension ); // begin_ntifs NTKERNELAPI PVOID IoAllocateErrorLogEntry( IN PVOID IoObject, IN UCHAR EntrySize ); NTKERNELAPI PIRP IoAllocateIrp( IN CCHAR StackSize, IN BOOLEAN ChargeQuota ); NTKERNELAPI PMDL IoAllocateMdl( IN PVOID VirtualAddress, IN ULONG Length, IN BOOLEAN SecondaryBuffer, IN BOOLEAN ChargeQuota, IN OUT PIRP Irp OPTIONAL ); // end_wdm end_ntifs //++ // // VOID // IoAssignArcName( // IN PUNICODE_STRING ArcName, // IN PUNICODE_STRING DeviceName // ) // // Routine Description: // // This routine is invoked by drivers of bootable media to create a symbolic // link between the ARC name of their device and its NT name. This allows // the system to determine which device in the system was actually booted // from since the ARC firmware only deals in ARC names, and NT only deals // in NT names. // // Arguments: // // ArcName - Supplies the Unicode string representing the ARC name. // // DeviceName - Supplies the name to which the ARCname refers. // // Return Value: // // None. // //-- #define IoAssignArcName( ArcName, DeviceName ) ( \ IoCreateSymbolicLink( (ArcName), (DeviceName) ) ) DECLSPEC_DEPRECATED_DDK // Use Pnp or IoReprtDetectedDevice NTKERNELAPI NTSTATUS IoAssignResources ( IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN PIO_RESOURCE_REQUIREMENTS_LIST RequestedResources, IN OUT PCM_RESOURCE_LIST *AllocatedResources ); NTKERNELAPI NTSTATUS IoAttachDevice( IN PDEVICE_OBJECT SourceDevice, IN PUNICODE_STRING TargetDevice, OUT PDEVICE_OBJECT *AttachedDevice ); // end_wdm DECLSPEC_DEPRECATED_DDK // Use IoAttachDeviceToDeviceStack NTKERNELAPI NTSTATUS IoAttachDeviceByPointer( IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice ); // begin_wdm NTKERNELAPI PDEVICE_OBJECT IoAttachDeviceToDeviceStack( IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice ); NTKERNELAPI PIRP IoBuildAsynchronousFsdRequest( IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID Buffer OPTIONAL, IN ULONG Length OPTIONAL, IN PLARGE_INTEGER StartingOffset OPTIONAL, IN PIO_STATUS_BLOCK IoStatusBlock OPTIONAL ); NTKERNELAPI PIRP IoBuildDeviceIoControlRequest( IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, OUT PIO_STATUS_BLOCK IoStatusBlock ); NTKERNELAPI VOID IoBuildPartialMdl( IN PMDL SourceMdl, IN OUT PMDL TargetMdl, IN PVOID VirtualAddress, IN ULONG Length ); typedef struct _BOOTDISK_INFORMATION { LONGLONG BootPartitionOffset; LONGLONG SystemPartitionOffset; ULONG BootDeviceSignature; ULONG SystemDeviceSignature; } BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION; // // This structure should follow the previous structure field for field. // typedef struct _BOOTDISK_INFORMATION_EX { LONGLONG BootPartitionOffset; LONGLONG SystemPartitionOffset; ULONG BootDeviceSignature; ULONG SystemDeviceSignature; GUID BootDeviceGuid; GUID SystemDeviceGuid; BOOLEAN BootDeviceIsGpt; BOOLEAN SystemDeviceIsGpt; } BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX; NTKERNELAPI NTSTATUS IoGetBootDiskInformation( IN OUT PBOOTDISK_INFORMATION BootDiskInformation, IN ULONG Size ); NTKERNELAPI PIRP IoBuildSynchronousFsdRequest( IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID Buffer OPTIONAL, IN ULONG Length OPTIONAL, IN PLARGE_INTEGER StartingOffset OPTIONAL, IN PKEVENT Event, OUT PIO_STATUS_BLOCK IoStatusBlock ); NTKERNELAPI NTSTATUS FASTCALL IofCallDriver( IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp ); #define IoCallDriver(a,b) \ IofCallDriver(a,b) NTKERNELAPI BOOLEAN IoCancelIrp( IN PIRP Irp ); NTKERNELAPI NTSTATUS IoCheckShareAccess( IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN OUT PFILE_OBJECT FileObject, IN OUT PSHARE_ACCESS ShareAccess, IN BOOLEAN Update ); // // This value should be returned from completion routines to continue // completing the IRP upwards. Otherwise, STATUS_MORE_PROCESSING_REQUIRED // should be returned. // #define STATUS_CONTINUE_COMPLETION STATUS_SUCCESS // // Completion routines can also use this enumeration in place of status codes. // typedef enum _IO_COMPLETION_ROUTINE_RESULT { ContinueCompletion = STATUS_CONTINUE_COMPLETION, StopCompletion = STATUS_MORE_PROCESSING_REQUIRED } IO_COMPLETION_ROUTINE_RESULT, *PIO_COMPLETION_ROUTINE_RESULT; NTKERNELAPI VOID FASTCALL IofCompleteRequest( IN PIRP Irp, IN CCHAR PriorityBoost ); #define IoCompleteRequest(a,b) \ IofCompleteRequest(a,b) // end_ntifs NTKERNELAPI NTSTATUS IoConnectInterrupt( OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock OPTIONAL, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN KAFFINITY ProcessorEnableMask, IN BOOLEAN FloatingSave ); // end_wdm NTKERNELAPI PCONTROLLER_OBJECT IoCreateController( IN ULONG Size ); // begin_wdm begin_ntifs NTKERNELAPI NTSTATUS IoCreateDevice( IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName OPTIONAL, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject ); #define WDM_MAJORVERSION 0x01 #define WDM_MINORVERSION 0x20 NTKERNELAPI BOOLEAN IoIsWdmVersionAvailable( IN UCHAR MajorVersion, IN UCHAR MinorVersion ); // end_nthal NTKERNELAPI NTSTATUS IoCreateFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength, IN CREATE_FILE_TYPE CreateFileType, IN PVOID ExtraCreateParameters OPTIONAL, IN ULONG Options ); NTKERNELAPI PKEVENT IoCreateNotificationEvent( IN PUNICODE_STRING EventName, OUT PHANDLE EventHandle ); NTKERNELAPI NTSTATUS IoCreateSymbolicLink( IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName ); NTKERNELAPI PKEVENT IoCreateSynchronizationEvent( IN PUNICODE_STRING EventName, OUT PHANDLE EventHandle ); NTKERNELAPI NTSTATUS IoCreateUnprotectedSymbolicLink( IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName ); // end_wdm //++ // // VOID // IoDeassignArcName( // IN PUNICODE_STRING ArcName // ) // // Routine Description: // // This routine is invoked by drivers to deassign an ARC name that they // created to a device. This is generally only called if the driver is // deleting the device object, which means that the driver is probably // unloading. // // Arguments: // // ArcName - Supplies the ARC name to be removed. // // Return Value: // // None. // //-- #define IoDeassignArcName( ArcName ) ( \ IoDeleteSymbolicLink( (ArcName) ) ) // end_ntifs NTKERNELAPI VOID IoDeleteController( IN PCONTROLLER_OBJECT ControllerObject ); // begin_wdm begin_ntifs NTKERNELAPI VOID IoDeleteDevice( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI NTSTATUS IoDeleteSymbolicLink( IN PUNICODE_STRING SymbolicLinkName ); NTKERNELAPI VOID IoDetachDevice( IN OUT PDEVICE_OBJECT TargetDevice ); // end_ntifs NTKERNELAPI VOID IoDisconnectInterrupt( IN PKINTERRUPT InterruptObject ); NTKERNELAPI VOID IoFreeController( IN PCONTROLLER_OBJECT ControllerObject ); // begin_wdm begin_ntifs NTKERNELAPI VOID IoFreeIrp( IN PIRP Irp ); NTKERNELAPI VOID IoFreeMdl( IN PMDL Mdl ); NTKERNELAPI PDEVICE_OBJECT IoGetAttachedDeviceReference( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI PCONFIGURATION_INFORMATION IoGetConfigurationInformation( VOID ); //++ // // PIO_STACK_LOCATION // IoGetCurrentIrpStackLocation( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to return a pointer to the current stack location // in an I/O Request Packet (IRP). // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // The function value is a pointer to the current stack location in the // packet. // //-- #define IoGetCurrentIrpStackLocation( Irp ) ( (Irp)->Tail.Overlay.CurrentStackLocation ) // end_nthal end_wdm NTKERNELAPI PDEVICE_OBJECT IoGetDeviceToVerify( IN PETHREAD Thread ); // begin_wdm NTKERNELAPI PVOID IoGetDriverObjectExtension( IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress ); NTKERNELAPI PEPROCESS IoGetCurrentProcess( VOID ); // begin_nthal NTKERNELAPI NTSTATUS IoGetDeviceObjectPointer( IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject ); NTKERNELAPI struct _DMA_ADAPTER * IoGetDmaAdapter( IN PDEVICE_OBJECT PhysicalDeviceObject, OPTIONAL // required for PnP drivers IN struct _DEVICE_DESCRIPTION *DeviceDescription, IN OUT PULONG NumberOfMapRegisters ); NTKERNELAPI BOOLEAN IoForwardIrpSynchronously( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); #define IoForwardAndCatchIrp IoForwardIrpSynchronously // end_wdm NTKERNELAPI PGENERIC_MAPPING IoGetFileObjectGenericMapping( VOID ); // end_nthal // begin_wdm //++ // // ULONG // IoGetFunctionCodeFromCtlCode( // IN ULONG ControlCode // ) // // Routine Description: // // This routine extracts the function code from IOCTL and FSCTL function // control codes. // This routine should only be used by kernel mode code. // // Arguments: // // ControlCode - A function control code (IOCTL or FSCTL) from which the // function code must be extracted. // // Return Value: // // The extracted function code. // // Note: // // The CTL_CODE macro, used to create IOCTL and FSCTL function control // codes, is defined in ntioapi.h // //-- #define IoGetFunctionCodeFromCtlCode( ControlCode ) (\ ( ControlCode >> 2) & 0x00000FFF ) // begin_nthal NTKERNELAPI PVOID IoGetInitialStack( VOID ); NTKERNELAPI VOID IoGetStackLimits ( OUT PULONG_PTR LowLimit, OUT PULONG_PTR HighLimit ); // // The following function is used to tell the caller how much stack is available // FORCEINLINE ULONG_PTR IoGetRemainingStackSize ( VOID ) { ULONG_PTR Top; ULONG_PTR Bottom; IoGetStackLimits( &Bottom, &Top ); return((ULONG_PTR)(&Top) - Bottom ); } //++ // // PIO_STACK_LOCATION // IoGetNextIrpStackLocation( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to return a pointer to the next stack location // in an I/O Request Packet (IRP). // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // The function value is a pointer to the next stack location in the packet. // //-- #define IoGetNextIrpStackLocation( Irp ) (\ (Irp)->Tail.Overlay.CurrentStackLocation - 1 ) NTKERNELAPI PDEVICE_OBJECT IoGetRelatedDeviceObject( IN PFILE_OBJECT FileObject ); //++ // // VOID // IoInitializeDpcRequest( // IN PDEVICE_OBJECT DeviceObject, // IN PIO_DPC_ROUTINE DpcRoutine // ) // // Routine Description: // // This routine is invoked to initialize the DPC in a device object for a // device driver during its initialization routine. The DPC is used later // when the driver interrupt service routine requests that a DPC routine // be queued for later execution. // // Arguments: // // DeviceObject - Pointer to the device object that the request is for. // // DpcRoutine - Address of the driver's DPC routine to be executed when // the DPC is dequeued for processing. // // Return Value: // // None. // //-- #define IoInitializeDpcRequest( DeviceObject, DpcRoutine ) (\ KeInitializeDpc( &(DeviceObject)->Dpc, \ (PKDEFERRED_ROUTINE) (DpcRoutine), \ (DeviceObject) ) ) NTKERNELAPI VOID IoInitializeIrp( IN OUT PIRP Irp, IN USHORT PacketSize, IN CCHAR StackSize ); NTKERNELAPI NTSTATUS IoInitializeTimer( IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context ); NTKERNELAPI VOID IoReuseIrp( IN OUT PIRP Irp, IN NTSTATUS Iostatus ); // end_wdm NTKERNELAPI VOID IoCancelFileOpen( IN PDEVICE_OBJECT DeviceObject, IN PFILE_OBJECT FileObject ); //++ // // BOOLEAN // IoIsErrorUserInduced( // IN NTSTATUS Status // ) // // Routine Description: // // This routine is invoked to determine if an error was as a // result of user actions. Typically these error are related // to removable media and will result in a pop-up. // // Arguments: // // Status - The status value to check. // // Return Value: // The function value is TRUE if the user induced the error, // otherwise FALSE is returned. // //-- #define IoIsErrorUserInduced( Status ) ((BOOLEAN) \ (((Status) == STATUS_DEVICE_NOT_READY) || \ ((Status) == STATUS_IO_TIMEOUT) || \ ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \ ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \ ((Status) == STATUS_VERIFY_REQUIRED) || \ ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \ ((Status) == STATUS_WRONG_VOLUME))) NTKERNELAPI PIRP IoMakeAssociatedIrp( IN PIRP Irp, IN CCHAR StackSize ); // begin_wdm //++ // // VOID // IoMarkIrpPending( // IN OUT PIRP Irp // ) // // Routine Description: // // This routine marks the specified I/O Request Packet (IRP) to indicate // that an initial status of STATUS_PENDING was returned to the caller. // This is used so that I/O completion can determine whether or not to // fully complete the I/O operation requested by the packet. // // Arguments: // // Irp - Pointer to the I/O Request Packet to be marked pending. // // Return Value: // // None. // //-- #define IoMarkIrpPending( Irp ) ( \ IoGetCurrentIrpStackLocation( (Irp) )->Control |= SL_PENDING_RETURNED ) DECLSPEC_DEPRECATED_DDK // Use IoGetDeviceProperty NTKERNELAPI NTSTATUS IoQueryDeviceDescription( IN PINTERFACE_TYPE BusType OPTIONAL, IN PULONG BusNumber OPTIONAL, IN PCONFIGURATION_TYPE ControllerType OPTIONAL, IN PULONG ControllerNumber OPTIONAL, IN PCONFIGURATION_TYPE PeripheralType OPTIONAL, IN PULONG PeripheralNumber OPTIONAL, IN PIO_QUERY_DEVICE_ROUTINE CalloutRoutine, IN PVOID Context ); NTKERNELAPI VOID IoRaiseHardError( IN PIRP Irp, IN PVPB Vpb OPTIONAL, IN PDEVICE_OBJECT RealDeviceObject ); NTKERNELAPI BOOLEAN IoRaiseInformationalHardError( IN NTSTATUS ErrorStatus, IN PUNICODE_STRING String OPTIONAL, IN PKTHREAD Thread OPTIONAL ); NTKERNELAPI BOOLEAN IoSetThreadHardErrorMode( IN BOOLEAN EnableHardErrors ); NTKERNELAPI VOID IoRegisterBootDriverReinitialization( IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE DriverReinitializationRoutine, IN PVOID Context ); NTKERNELAPI VOID IoRegisterDriverReinitialization( IN PDRIVER_OBJECT DriverObject, IN PDRIVER_REINITIALIZE DriverReinitializationRoutine, IN PVOID Context ); NTKERNELAPI NTSTATUS IoRegisterShutdownNotification( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI NTSTATUS IoRegisterLastChanceShutdownNotification( IN PDEVICE_OBJECT DeviceObject ); // begin_wdm NTKERNELAPI VOID IoReleaseCancelSpinLock( IN KIRQL Irql ); NTKERNELAPI VOID IoRemoveShareAccess( IN PFILE_OBJECT FileObject, IN OUT PSHARE_ACCESS ShareAccess ); DECLSPEC_DEPRECATED_DDK // Use IoReportResourceForDetection NTKERNELAPI NTSTATUS IoReportResourceUsage( IN PUNICODE_STRING DriverClassName OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PCM_RESOURCE_LIST DriverList OPTIONAL, IN ULONG DriverListSize OPTIONAL, IN PDEVICE_OBJECT DeviceObject, IN PCM_RESOURCE_LIST DeviceList OPTIONAL, IN ULONG DeviceListSize OPTIONAL, IN BOOLEAN OverrideConflict, OUT PBOOLEAN ConflictDetected ); // begin_wdm //++ // // VOID // IoRequestDpc( // IN PDEVICE_OBJECT DeviceObject, // IN PIRP Irp, // IN PVOID Context // ) // // Routine Description: // // This routine is invoked by the device driver's interrupt service routine // to request that a DPC routine be queued for later execution at a lower // IRQL. // // Arguments: // // DeviceObject - Device object for which the request is being processed. // // Irp - Pointer to the current I/O Request Packet (IRP) for the specified // device. // // Context - Provides a general context parameter to be passed to the // DPC routine. // // Return Value: // // None. // //-- #define IoRequestDpc( DeviceObject, Irp, Context ) ( \ KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) ) //++ // // PDRIVER_CANCEL // IoSetCancelRoutine( // IN PIRP Irp, // IN PDRIVER_CANCEL CancelRoutine // ) // // Routine Description: // // This routine is invoked to set the address of a cancel routine which // is to be invoked when an I/O packet has been canceled. // // Arguments: // // Irp - Pointer to the I/O Request Packet itself. // // CancelRoutine - Address of the cancel routine that is to be invoked // if the IRP is cancelled. // // Return Value: // // Previous value of CancelRoutine field in the IRP. // //-- #define IoSetCancelRoutine( Irp, NewCancelRoutine ) ( \ (PDRIVER_CANCEL) InterlockedExchangePointer( (PVOID *) &(Irp)->CancelRoutine, (PVOID) (NewCancelRoutine) ) ) //++ // // VOID // IoSetCompletionRoutine( // IN PIRP Irp, // IN PIO_COMPLETION_ROUTINE CompletionRoutine, // IN PVOID Context, // IN BOOLEAN InvokeOnSuccess, // IN BOOLEAN InvokeOnError, // IN BOOLEAN InvokeOnCancel // ) // // Routine Description: // // This routine is invoked to set the address of a completion routine which // is to be invoked when an I/O packet has been completed by a lower-level // driver. // // Arguments: // // Irp - Pointer to the I/O Request Packet itself. // // CompletionRoutine - Address of the completion routine that is to be // invoked once the next level driver completes the packet. // // Context - Specifies a context parameter to be passed to the completion // routine. // // InvokeOnSuccess - Specifies that the completion routine is invoked when the // operation is successfully completed. // // InvokeOnError - Specifies that the completion routine is invoked when the // operation completes with an error status. // // InvokeOnCancel - Specifies that the completion routine is invoked when the // operation is being canceled. // // Return Value: // // None. // //-- #define IoSetCompletionRoutine( Irp, Routine, CompletionContext, Success, Error, Cancel ) { \ PIO_STACK_LOCATION __irpSp; \ ASSERT( (Success) | (Error) | (Cancel) ? (Routine) != NULL : TRUE ); \ __irpSp = IoGetNextIrpStackLocation( (Irp) ); \ __irpSp->CompletionRoutine = (Routine); \ __irpSp->Context = (CompletionContext); \ __irpSp->Control = 0; \ if ((Success)) { __irpSp->Control = SL_INVOKE_ON_SUCCESS; } \ if ((Error)) { __irpSp->Control |= SL_INVOKE_ON_ERROR; } \ if ((Cancel)) { __irpSp->Control |= SL_INVOKE_ON_CANCEL; } } NTSTATUS IoSetCompletionRoutineEx( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, IN BOOLEAN InvokeOnSuccess, IN BOOLEAN InvokeOnError, IN BOOLEAN InvokeOnCancel ); NTKERNELAPI VOID IoSetHardErrorOrVerifyDevice( IN PIRP Irp, IN PDEVICE_OBJECT DeviceObject ); //++ // // VOID // IoSetNextIrpStackLocation ( // IN OUT PIRP Irp // ) // // Routine Description: // // This routine is invoked to set the current IRP stack location to // the next stack location, i.e. it "pushes" the stack. // // Arguments: // // Irp - Pointer to the I/O Request Packet (IRP). // // Return Value: // // None. // //-- #define IoSetNextIrpStackLocation( Irp ) { \ (Irp)->CurrentLocation--; \ (Irp)->Tail.Overlay.CurrentStackLocation--; } //++ // // VOID // IoCopyCurrentIrpStackLocationToNext( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to copy the IRP stack arguments and file // pointer from the current IrpStackLocation to the next // in an I/O Request Packet (IRP). // // If the caller wants to call IoCallDriver with a completion routine // but does not wish to change the arguments otherwise, // the caller first calls IoCopyCurrentIrpStackLocationToNext, // then IoSetCompletionRoutine, then IoCallDriver. // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // None. // //-- #define IoCopyCurrentIrpStackLocationToNext( Irp ) { \ PIO_STACK_LOCATION __irpSp; \ PIO_STACK_LOCATION __nextIrpSp; \ __irpSp = IoGetCurrentIrpStackLocation( (Irp) ); \ __nextIrpSp = IoGetNextIrpStackLocation( (Irp) ); \ RtlCopyMemory( __nextIrpSp, __irpSp, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine)); \ __nextIrpSp->Control = 0; } //++ // // VOID // IoSkipCurrentIrpStackLocation ( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to increment the current stack location of // a given IRP. // // If the caller wishes to call the next driver in a stack, and does not // wish to change the arguments, nor does he wish to set a completion // routine, then the caller first calls IoSkipCurrentIrpStackLocation // and the calls IoCallDriver. // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // None // //-- #define IoSkipCurrentIrpStackLocation( Irp ) { \ (Irp)->CurrentLocation++; \ (Irp)->Tail.Overlay.CurrentStackLocation++; } NTKERNELAPI VOID IoSetShareAccess( IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN OUT PFILE_OBJECT FileObject, OUT PSHARE_ACCESS ShareAccess ); typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK; typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK { BOOLEAN Removed; BOOLEAN Reserved [3]; LONG IoCount; KEVENT RemoveEvent; } IO_REMOVE_LOCK_COMMON_BLOCK; typedef struct _IO_REMOVE_LOCK_DBG_BLOCK { LONG Signature; LONG HighWatermark; LONGLONG MaxLockedTicks; LONG AllocateTag; LIST_ENTRY LockList; KSPIN_LOCK Spin; LONG LowMemoryCount; ULONG Reserved1[4]; PVOID Reserved2; PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks; } IO_REMOVE_LOCK_DBG_BLOCK; typedef struct _IO_REMOVE_LOCK { IO_REMOVE_LOCK_COMMON_BLOCK Common; #if DBG IO_REMOVE_LOCK_DBG_BLOCK Dbg; #endif } IO_REMOVE_LOCK, *PIO_REMOVE_LOCK; #define IoInitializeRemoveLock(Lock, Tag, Maxmin, HighWater) \ IoInitializeRemoveLockEx (Lock, Tag, Maxmin, HighWater, sizeof (IO_REMOVE_LOCK)) NTSYSAPI VOID NTAPI IoInitializeRemoveLockEx( IN PIO_REMOVE_LOCK Lock, IN ULONG AllocateTag, // Used only on checked kernels IN ULONG MaxLockedMinutes, // Used only on checked kernels IN ULONG HighWatermark, // Used only on checked kernels IN ULONG RemlockSize // are we checked or free ); // // Initialize a remove lock. // // Note: Allocation for remove locks needs to be within the device extension, // so that the memory for this structure stays allocated until such time as the // device object itself is deallocated. // #define IoAcquireRemoveLock(RemoveLock, Tag) \ IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK)) NTSYSAPI NTSTATUS NTAPI IoAcquireRemoveLockEx ( IN PIO_REMOVE_LOCK RemoveLock, IN OPTIONAL PVOID Tag, // Optional IN PCSTR File, IN ULONG Line, IN ULONG RemlockSize // are we checked or free ); // // Routine Description: // // This routine is called to acquire the remove lock for a device object. // While the lock is held, the caller can assume that no pending pnp REMOVE // requests will be completed. // // The lock should be acquired immediately upon entering a dispatch routine. // It should also be acquired before creating any new reference to the // device object if there's a chance of releasing the reference before the // new one is done, in addition to references to the driver code itself, // which is removed from memory when the last device object goes. // // Arguments: // // RemoveLock - A pointer to an initialized REMOVE_LOCK structure. // // Tag - Used for tracking lock allocation and release. The same tag // specified when acquiring the lock must be used to release the lock. // Tags are only checked in checked versions of the driver. // // File - set to __FILE__ as the location in the code where the lock was taken. // // Line - set to __LINE__. // // Return Value: // // Returns whether or not the remove lock was obtained. // If successful the caller should continue with work calling // IoReleaseRemoveLock when finished. // // If not successful the lock was not obtained. The caller should abort the // work but not call IoReleaseRemoveLock. // #define IoReleaseRemoveLock(RemoveLock, Tag) \ IoReleaseRemoveLockEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK)) NTSYSAPI VOID NTAPI IoReleaseRemoveLockEx( IN PIO_REMOVE_LOCK RemoveLock, IN PVOID Tag, // Optional IN ULONG RemlockSize // are we checked or free ); // // // Routine Description: // // This routine is called to release the remove lock on the device object. It // must be called when finished using a previously locked reference to the // device object. If an Tag was specified when acquiring the lock then the // same Tag must be specified when releasing the lock. // // When the lock count reduces to zero, this routine will signal the waiting // event to release the waiting thread deleting the device object protected // by this lock. // // Arguments: // // DeviceObject - the device object to lock // // Tag - The TAG (if any) specified when acquiring the lock. This is used // for lock tracking purposes // // Return Value: // // none // #define IoReleaseRemoveLockAndWait(RemoveLock, Tag) \ IoReleaseRemoveLockAndWaitEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK)) NTSYSAPI VOID NTAPI IoReleaseRemoveLockAndWaitEx( IN PIO_REMOVE_LOCK RemoveLock, IN PVOID Tag, IN ULONG RemlockSize // are we checked or free ); // // // Routine Description: // // This routine is called when the client would like to delete the // remove-locked resource. This routine will block until all the remove // locks have released. // // This routine MUST be called after acquiring the lock. // // Arguments: // // RemoveLock // // Return Value: // // none // //++ // // USHORT // IoSizeOfIrp( // IN CCHAR StackSize // ) // // Routine Description: // // Determines the size of an IRP given the number of stack locations // the IRP will have. // // Arguments: // // StackSize - Number of stack locations for the IRP. // // Return Value: // // Size in bytes of the IRP. // //-- #define IoSizeOfIrp( StackSize ) \ ((USHORT) (sizeof( IRP ) + ((StackSize) * (sizeof( IO_STACK_LOCATION ))))) // end_ntifs NTKERNELAPI VOID IoStartNextPacket( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable ); NTKERNELAPI VOID IoStartNextPacketByKey( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable, IN ULONG Key ); NTKERNELAPI VOID IoStartPacket( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PULONG Key OPTIONAL, IN PDRIVER_CANCEL CancelFunction OPTIONAL ); VOID IoSetStartIoAttributes( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN DeferredStartIo, IN BOOLEAN NonCancelable ); // begin_ntifs NTKERNELAPI VOID IoStartTimer( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI VOID IoStopTimer( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI VOID IoUnregisterShutdownNotification( IN PDEVICE_OBJECT DeviceObject ); // end_wdm NTKERNELAPI VOID IoUpdateShareAccess( IN PFILE_OBJECT FileObject, IN OUT PSHARE_ACCESS ShareAccess ); NTKERNELAPI VOID IoWriteErrorLogEntry( IN PVOID ElEntry ); typedef struct _IO_WORKITEM *PIO_WORKITEM; typedef VOID (*PIO_WORKITEM_ROUTINE) ( IN PDEVICE_OBJECT DeviceObject, IN PVOID Context ); PIO_WORKITEM IoAllocateWorkItem( PDEVICE_OBJECT DeviceObject ); VOID IoFreeWorkItem( PIO_WORKITEM IoWorkItem ); VOID IoQueueWorkItem( IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context ); NTKERNELAPI NTSTATUS IoWMIRegistrationControl( IN PDEVICE_OBJECT DeviceObject, IN ULONG Action ); // // Action code for IoWMIRegistrationControl api // #define WMIREG_ACTION_REGISTER 1 #define WMIREG_ACTION_DEREGISTER 2 #define WMIREG_ACTION_REREGISTER 3 #define WMIREG_ACTION_UPDATE_GUIDS 4 #define WMIREG_ACTION_BLOCK_IRPS 5 // // Code passed in IRP_MN_REGINFO WMI irp // #define WMIREGISTER 0 #define WMIUPDATE 1 NTKERNELAPI NTSTATUS IoWMIAllocateInstanceIds( IN GUID *Guid, IN ULONG InstanceCount, OUT ULONG *FirstInstanceId ); NTKERNELAPI NTSTATUS IoWMISuggestInstanceName( IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN PUNICODE_STRING SymbolicLinkName OPTIONAL, IN BOOLEAN CombineNames, OUT PUNICODE_STRING SuggestedInstanceName ); NTKERNELAPI NTSTATUS IoWMIWriteEvent( IN PVOID WnodeEventItem ); #if defined(_WIN64) NTKERNELAPI ULONG IoWMIDeviceObjectToProviderId( PDEVICE_OBJECT DeviceObject ); #else #define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject)) #endif NTKERNELAPI NTSTATUS IoWMIOpenBlock( IN GUID *DataBlockGuid, IN ULONG DesiredAccess, OUT PVOID *DataBlockObject ); NTKERNELAPI NTSTATUS IoWMIQueryAllData( IN PVOID DataBlockObject, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMIQueryAllDataMultiple( IN PVOID *DataBlockObjectList, IN ULONG ObjectCount, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMIQuerySingleInstance( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMIQuerySingleInstanceMultiple( IN PVOID *DataBlockObjectList, IN PUNICODE_STRING InstanceNames, IN ULONG ObjectCount, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMISetSingleInstance( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN ULONG Version, IN ULONG ValueBufferSize, IN PVOID ValueBuffer ); NTKERNELAPI NTSTATUS IoWMISetSingleItem( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN ULONG DataItemId, IN ULONG Version, IN ULONG ValueBufferSize, IN PVOID ValueBuffer ); NTKERNELAPI NTSTATUS IoWMIExecuteMethod( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN ULONG MethodId, IN ULONG InBufferSize, IN OUT PULONG OutBufferSize, IN OUT PUCHAR InOutBuffer ); typedef VOID (*WMI_NOTIFICATION_CALLBACK)( PVOID Wnode, PVOID Context ); NTKERNELAPI NTSTATUS IoWMISetNotificationCallback( IN PVOID Object, IN WMI_NOTIFICATION_CALLBACK Callback, IN PVOID Context ); NTKERNELAPI NTSTATUS IoWMIHandleToInstanceName( IN PVOID DataBlockObject, IN HANDLE FileHandle, OUT PUNICODE_STRING InstanceName ); NTKERNELAPI NTSTATUS IoWMIDeviceObjectToInstanceName( IN PVOID DataBlockObject, IN PDEVICE_OBJECT DeviceObject, OUT PUNICODE_STRING InstanceName ); #if defined(_WIN64) BOOLEAN IoIs32bitProcess( IN PIRP Irp ); #endif NTKERNELAPI VOID FASTCALL HalExamineMBR( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG MBRTypeIdentifier, OUT PVOID *Buffer ); DECLSPEC_DEPRECATED_DDK // Use IoReadPartitionTableEx NTKERNELAPI NTSTATUS FASTCALL IoReadPartitionTable( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN BOOLEAN ReturnRecognizedPartitions, OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer ); DECLSPEC_DEPRECATED_DDK // Use IoSetPartitionInformationEx NTKERNELAPI NTSTATUS FASTCALL IoSetPartitionInformation( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG PartitionNumber, IN ULONG PartitionType ); // begin_ntosp DECLSPEC_DEPRECATED_DDK // Use IoWritePartitionTableEx NTKERNELAPI NTSTATUS FASTCALL IoWritePartitionTable( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG SectorsPerTrack, IN ULONG NumberOfHeads, IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer ); NTKERNELAPI NTSTATUS IoCreateDisk( IN PDEVICE_OBJECT DeviceObject, IN struct _CREATE_DISK* Disk ); NTKERNELAPI NTSTATUS IoReadPartitionTableEx( IN PDEVICE_OBJECT DeviceObject, IN struct _DRIVE_LAYOUT_INFORMATION_EX** DriveLayout ); NTKERNELAPI NTSTATUS IoWritePartitionTableEx( IN PDEVICE_OBJECT DeviceObject, IN struct _DRIVE_LAYOUT_INFORMATION_EX* DriveLayout ); NTKERNELAPI NTSTATUS IoSetPartitionInformationEx( IN PDEVICE_OBJECT DeviceObject, IN ULONG PartitionNumber, IN struct _SET_PARTITION_INFORMATION_EX* PartitionInfo ); NTKERNELAPI NTSTATUS IoUpdateDiskGeometry( IN PDEVICE_OBJECT DeviceObject, IN struct _DISK_GEOMETRY_EX* OldDiskGeometry, IN struct _DISK_GEOMETRY_EX* NewDiskGeometry ); NTKERNELAPI NTSTATUS IoVerifyPartitionTable( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN FixErrors ); typedef struct _DISK_SIGNATURE { ULONG PartitionStyle; union { struct { ULONG Signature; ULONG CheckSum; } Mbr; struct { GUID DiskId; } Gpt; }; } DISK_SIGNATURE, *PDISK_SIGNATURE; NTKERNELAPI NTSTATUS IoReadDiskSignature( IN PDEVICE_OBJECT DeviceObject, IN ULONG BytesPerSector, OUT PDISK_SIGNATURE Signature ); // end_ntosp NTSTATUS IoVolumeDeviceToDosName( IN PVOID VolumeDeviceObject, OUT PUNICODE_STRING DosName ); NTSTATUS IoSetSystemPartition( PUNICODE_STRING VolumeNameString ); // begin_wdm VOID IoFreeErrorLogEntry( PVOID ElEntry ); // Cancel SAFE API set start // // The following APIs are to help ease the pain of writing queue packages that // handle the cancellation race well. The idea of this set of APIs is to not // force a single queue data structure but allow the cancel logic to be hidden // from the drivers. A driver implements a queue and as part of its header // includes the IO_CSQ structure. In its initialization routine it calls // IoInitializeCsq. Then in the dispatch routine when the driver wants to // insert an IRP into the queue it calls IoCsqInsertIrp. When the driver wants // to remove something from the queue it calls IoCsqRemoveIrp. Note that Insert // can fail if the IRP was cancelled in the meantime. Remove can also fail if // the IRP was already cancelled. // // There are typically two modes where drivers queue IRPs. These two modes are // covered by the cancel safe queue API set. // // Mode 1: // One is where the driver queues the IRP and at some later // point in time dequeues an IRP and issues the IO request. // For this mode the driver should use IoCsqInsertIrp and IoCsqRemoveNextIrp. // The driver in this case is expected to pass NULL to the irp context // parameter in IoInsertIrp. // // Mode 2: // In this the driver queues theIRP, issues the IO request (like issuing a DMA // request or writing to a register) and when the IO request completes (either // using a DPC or timer) the driver dequeues the IRP and completes it. For this // mode the driver should use IoCsqInsertIrp and IoCsqRemoveIrp. In this case // the driver should allocate an IRP context and pass it in to IoCsqInsertIrp. // The cancel API code creates an association between the IRP and the context // and thus ensures that when the time comes to remove the IRP it can ascertain // correctly. // // Note that the cancel API set assumes that the field DriverContext[3] is // always available for use and that the driver does not use it. // // // Bookkeeping structure. This should be opaque to drivers. // Drivers typically include this as part of their queue headers. // Given a CSQ pointer the driver should be able to get its // queue header using CONTAINING_RECORD macro // typedef struct _IO_CSQ IO_CSQ, *PIO_CSQ; #define IO_TYPE_CSQ_IRP_CONTEXT 1 #define IO_TYPE_CSQ 2 // // IRP context structure. This structure is necessary if the driver is using // the second mode. // typedef struct _IO_CSQ_IRP_CONTEXT { ULONG Type; PIRP Irp; PIO_CSQ Csq; } IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT; // // Routines that insert/remove IRP // typedef VOID (*PIO_CSQ_INSERT_IRP)( IN struct _IO_CSQ *Csq, IN PIRP Irp ); typedef VOID (*PIO_CSQ_REMOVE_IRP)( IN PIO_CSQ Csq, IN PIRP Irp ); // // Retrieves next entry after Irp from the queue. // Returns NULL if there are no entries in the queue. // If Irp is NUL, returns the entry in the head of the queue. // This routine does not remove the IRP from the queue. // typedef PIRP (*PIO_CSQ_PEEK_NEXT_IRP)( IN PIO_CSQ Csq, IN PIRP Irp, IN PVOID PeekContext ); // // Lock routine that protects the cancel safe queue. // typedef VOID (*PIO_CSQ_ACQUIRE_LOCK)( IN PIO_CSQ Csq, OUT PKIRQL Irql ); typedef VOID (*PIO_CSQ_RELEASE_LOCK)( IN PIO_CSQ Csq, IN KIRQL Irql ); // // Completes the IRP with STATUS_CANCELLED. IRP is guaranteed to be valid // In most cases this routine just calls IoCompleteRequest(Irp, STATUS_CANCELLED); // typedef VOID (*PIO_CSQ_COMPLETE_CANCELED_IRP)( IN PIO_CSQ Csq, IN PIRP Irp ); // // Bookkeeping structure. This should be opaque to drivers. // Drivers typically include this as part of their queue headers. // Given a CSQ pointer the driver should be able to get its // queue header using CONTAINING_RECORD macro // typedef struct _IO_CSQ { ULONG Type; PIO_CSQ_INSERT_IRP CsqInsertIrp; PIO_CSQ_REMOVE_IRP CsqRemoveIrp; PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp; PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock; PIO_CSQ_RELEASE_LOCK CsqReleaseLock; PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp; PVOID ReservePointer; // Future expansion } IO_CSQ, *PIO_CSQ; // // Initializes the cancel queue structure. // NTSTATUS IoCsqInitialize( IN PIO_CSQ Csq, IN PIO_CSQ_INSERT_IRP CsqInsertIrp, IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp, IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp, IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock, IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock, IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp ); // // The caller calls this routine to insert the IRP and return STATUS_PENDING. // VOID IoCsqInsertIrp( IN PIO_CSQ Csq, IN PIRP Irp, IN PIO_CSQ_IRP_CONTEXT Context ); // // Returns an IRP if one can be found. NULL otherwise. // PIRP IoCsqRemoveNextIrp( IN PIO_CSQ Csq, IN PVOID PeekContext ); // // This routine is called from timeout or DPCs. // The context is presumably part of the DPC or timer context. // If succesfull returns the IRP associated with context. // PIRP IoCsqRemoveIrp( IN PIO_CSQ Csq, IN PIO_CSQ_IRP_CONTEXT Context ); // Cancel SAFE API set end NTSTATUS IoValidateDeviceIoControlAccess( IN PIRP Irp, IN ULONG RequiredAccess ); #ifdef RUN_WPP #include #include #endif // #ifdef RUN_WPP #ifdef RUN_WPP NTKERNELAPI NTSTATUS WmiTraceMessage( IN TRACEHANDLE LoggerHandle, IN ULONG MessageFlags, IN LPGUID MessageGuid, IN USHORT MessageNumber, IN ... ); NTKERNELAPI NTSTATUS WmiTraceMessageVa( IN TRACEHANDLE LoggerHandle, IN ULONG MessageFlags, IN LPGUID MessageGuid, IN USHORT MessageNumber, IN va_list MessageArgList ); #endif // #ifdef RUN_WPP #ifndef TRACE_INFORMATION_CLASS_DEFINE typedef enum _TRACE_INFORMATION_CLASS { TraceIdClass, TraceHandleClass, TraceEnableFlagsClass, TraceEnableLevelClass, GlobalLoggerHandleClass, EventLoggerHandleClass, AllLoggerHandlesClass, TraceHandleByNameClass } TRACE_INFORMATION_CLASS; NTKERNELAPI NTSTATUS WmiQueryTraceInformation( IN TRACE_INFORMATION_CLASS TraceInformationClass, OUT PVOID TraceInformation, IN ULONG TraceInformationLength, OUT PULONG RequiredLength OPTIONAL, IN PVOID Buffer OPTIONAL ); #define TRACE_INFORMATION_CLASS_DEFINE #endif // TRACE_INFOPRMATION_CLASS_DEFINE // // Define PnP Device Property for IoGetDeviceProperty // typedef enum { DevicePropertyDeviceDescription, DevicePropertyHardwareID, DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration, DevicePropertyBootConfigurationTranslated, DevicePropertyClassName, DevicePropertyClassGuid, DevicePropertyDriverKeyName, DevicePropertyManufacturer, DevicePropertyFriendlyName, DevicePropertyLocationInformation, DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid, DevicePropertyLegacyBusType, DevicePropertyBusNumber, DevicePropertyEnumeratorName, DevicePropertyAddress, DevicePropertyUINumber, DevicePropertyInstallState, DevicePropertyRemovalPolicy } DEVICE_REGISTRY_PROPERTY; typedef BOOLEAN (*PTRANSLATE_BUS_ADDRESS)( IN PVOID Context, IN PHYSICAL_ADDRESS BusAddress, IN ULONG Length, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress ); typedef struct _DMA_ADAPTER *(*PGET_DMA_ADAPTER)( IN PVOID Context, IN struct _DEVICE_DESCRIPTION *DeviceDescriptor, OUT PULONG NumberOfMapRegisters ); typedef ULONG (*PGET_SET_DEVICE_DATA)( IN PVOID Context, IN ULONG DataType, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); typedef enum _DEVICE_INSTALL_STATE { InstallStateInstalled, InstallStateNeedsReinstall, InstallStateFailedInstall, InstallStateFinishInstall } DEVICE_INSTALL_STATE, *PDEVICE_INSTALL_STATE; // // Define structure returned in response to IRP_MN_QUERY_BUS_INFORMATION by a // PDO indicating the type of bus the device exists on. // typedef struct _PNP_BUS_INFORMATION { GUID BusTypeGuid; INTERFACE_TYPE LegacyBusType; ULONG BusNumber; } PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION; // // Define structure returned in response to IRP_MN_QUERY_LEGACY_BUS_INFORMATION // by an FDO indicating the type of bus it is. This is normally the same bus // type as the device's children (i.e., as retrieved from the child PDO's via // IRP_MN_QUERY_BUS_INFORMATION) except for cases like CardBus, which can // support both 16-bit (PCMCIABus) and 32-bit (PCIBus) cards. // typedef struct _LEGACY_BUS_INFORMATION { GUID BusTypeGuid; INTERFACE_TYPE LegacyBusType; ULONG BusNumber; } LEGACY_BUS_INFORMATION, *PLEGACY_BUS_INFORMATION; // // Defines for IoGetDeviceProperty(DevicePropertyRemovalPolicy). // typedef enum _DEVICE_REMOVAL_POLICY { RemovalPolicyExpectNoRemoval = 1, RemovalPolicyExpectOrderlyRemoval = 2, RemovalPolicyExpectSurpriseRemoval = 3 } DEVICE_REMOVAL_POLICY, *PDEVICE_REMOVAL_POLICY; typedef struct _BUS_INTERFACE_STANDARD { // // generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // standard bus interfaces // PTRANSLATE_BUS_ADDRESS TranslateBusAddress; PGET_DMA_ADAPTER GetDmaAdapter; PGET_SET_DEVICE_DATA SetBusData; PGET_SET_DEVICE_DATA GetBusData; } BUS_INTERFACE_STANDARD, *PBUS_INTERFACE_STANDARD; // // The following definitions are used in ACPI QueryInterface // typedef BOOLEAN (* PGPE_SERVICE_ROUTINE) ( PVOID, PVOID); typedef NTSTATUS (* PGPE_CONNECT_VECTOR) ( PDEVICE_OBJECT, ULONG, KINTERRUPT_MODE, BOOLEAN, PGPE_SERVICE_ROUTINE, PVOID, PVOID); typedef NTSTATUS (* PGPE_DISCONNECT_VECTOR) ( PVOID); typedef NTSTATUS (* PGPE_ENABLE_EVENT) ( PDEVICE_OBJECT, PVOID); typedef NTSTATUS (* PGPE_DISABLE_EVENT) ( PDEVICE_OBJECT, PVOID); typedef NTSTATUS (* PGPE_CLEAR_STATUS) ( PDEVICE_OBJECT, PVOID); typedef VOID (* PDEVICE_NOTIFY_CALLBACK) ( PVOID, ULONG); typedef NTSTATUS (* PREGISTER_FOR_DEVICE_NOTIFICATIONS) ( PDEVICE_OBJECT, PDEVICE_NOTIFY_CALLBACK, PVOID); typedef void (* PUNREGISTER_FOR_DEVICE_NOTIFICATIONS) ( PDEVICE_OBJECT, PDEVICE_NOTIFY_CALLBACK); typedef struct _ACPI_INTERFACE_STANDARD { // // Generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // ACPI interfaces // PGPE_CONNECT_VECTOR GpeConnectVector; PGPE_DISCONNECT_VECTOR GpeDisconnectVector; PGPE_ENABLE_EVENT GpeEnableEvent; PGPE_DISABLE_EVENT GpeDisableEvent; PGPE_CLEAR_STATUS GpeClearStatus; PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications; PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications; } ACPI_INTERFACE_STANDARD, *PACPI_INTERFACE_STANDARD; NTKERNELAPI NTSTATUS IoReportDetectedDevice( IN PDRIVER_OBJECT DriverObject, IN INTERFACE_TYPE LegacyBusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PCM_RESOURCE_LIST ResourceList, IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceRequirements OPTIONAL, IN BOOLEAN ResourceAssigned, IN OUT PDEVICE_OBJECT *DeviceObject ); // begin_wdm NTKERNELAPI VOID IoInvalidateDeviceRelations( IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type ); NTKERNELAPI VOID IoRequestDeviceEject( IN PDEVICE_OBJECT PhysicalDeviceObject ); NTKERNELAPI NTSTATUS IoGetDeviceProperty( IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength ); // // The following definitions are used in IoOpenDeviceRegistryKey // #define PLUGPLAY_REGKEY_DEVICE 1 #define PLUGPLAY_REGKEY_DRIVER 2 #define PLUGPLAY_REGKEY_CURRENT_HWPROFILE 4 NTKERNELAPI NTSTATUS IoOpenDeviceRegistryKey( IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey ); NTKERNELAPI NTSTATUS NTAPI IoRegisterDeviceInterface( IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString, OPTIONAL OUT PUNICODE_STRING SymbolicLinkName ); NTKERNELAPI NTSTATUS IoOpenDeviceInterfaceRegistryKey( IN PUNICODE_STRING SymbolicLinkName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DeviceInterfaceKey ); NTKERNELAPI NTSTATUS IoSetDeviceInterfaceState( IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable ); NTKERNELAPI NTSTATUS NTAPI IoGetDeviceInterfaces( IN CONST GUID *InterfaceClassGuid, IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN ULONG Flags, OUT PWSTR *SymbolicLinkList ); #define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001 NTKERNELAPI NTSTATUS NTAPI IoGetDeviceInterfaceAlias( IN PUNICODE_STRING SymbolicLinkName, IN CONST GUID *AliasInterfaceClassGuid, OUT PUNICODE_STRING AliasSymbolicLinkName ); // // Define PnP notification event categories // typedef enum _IO_NOTIFICATION_EVENT_CATEGORY { EventCategoryReserved, EventCategoryHardwareProfileChange, EventCategoryDeviceInterfaceChange, EventCategoryTargetDeviceChange } IO_NOTIFICATION_EVENT_CATEGORY; // // Define flags that modify the behavior of IoRegisterPlugPlayNotification // for the various event categories... // #define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES 0x00000001 typedef NTSTATUS (*PDRIVER_NOTIFICATION_CALLBACK_ROUTINE) ( IN PVOID NotificationStructure, IN PVOID Context ); NTKERNELAPI NTSTATUS IoRegisterPlugPlayNotification( IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, IN ULONG EventCategoryFlags, IN PVOID EventCategoryData OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine, IN PVOID Context, OUT PVOID *NotificationEntry ); NTKERNELAPI NTSTATUS IoUnregisterPlugPlayNotification( IN PVOID NotificationEntry ); NTKERNELAPI NTSTATUS IoReportTargetDeviceChange( IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure // always begins with a PLUGPLAY_NOTIFICATION_HEADER ); typedef VOID (*PDEVICE_CHANGE_COMPLETE_CALLBACK)( IN PVOID Context ); NTKERNELAPI VOID IoInvalidateDeviceState( IN PDEVICE_OBJECT PhysicalDeviceObject ); #define IoAdjustPagingPathCount(_count_,_paging_) { \ if (_paging_) { \ InterlockedIncrement(_count_); \ } else { \ InterlockedDecrement(_count_); \ } \ } NTKERNELAPI NTSTATUS IoReportTargetDeviceChangeAsynchronous( IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure, // always begins with a PLUGPLAY_NOTIFICATION_HEADER IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback, OPTIONAL IN PVOID Context OPTIONAL ); // end_wdm end_ntosp // // Resource arbiter declarations // typedef enum _ARBITER_ACTION { ArbiterActionTestAllocation, ArbiterActionRetestAllocation, ArbiterActionCommitAllocation, ArbiterActionRollbackAllocation, ArbiterActionQueryAllocatedResources, ArbiterActionWriteReservedResources, ArbiterActionQueryConflict, ArbiterActionQueryArbitrate, ArbiterActionAddReserved, ArbiterActionBootAllocation } ARBITER_ACTION, *PARBITER_ACTION; typedef struct _ARBITER_CONFLICT_INFO { // // The device object owning the device that is causing the conflict // PDEVICE_OBJECT OwningObject; // // The start of the conflicting range // ULONGLONG Start; // // The end of the conflicting range // ULONGLONG End; } ARBITER_CONFLICT_INFO, *PARBITER_CONFLICT_INFO; // // The parameters for those actions // typedef struct _ARBITER_PARAMETERS { union { struct { // // Doubly linked list of ARBITER_LIST_ENTRY's // IN OUT PLIST_ENTRY ArbitrationList; // // The size of the AllocateFrom array // IN ULONG AllocateFromCount; // // Array of resource descriptors describing the resources available // to the arbiter for it to arbitrate // IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom; } TestAllocation; struct { // // Doubly linked list of ARBITER_LIST_ENTRY's // IN OUT PLIST_ENTRY ArbitrationList; // // The size of the AllocateFrom array // IN ULONG AllocateFromCount; // // Array of resource descriptors describing the resources available // to the arbiter for it to arbitrate // IN PCM_PARTIAL_RESOURCE_DESCRIPTOR AllocateFrom; } RetestAllocation; struct { // // Doubly linked list of ARBITER_LIST_ENTRY's // IN OUT PLIST_ENTRY ArbitrationList; } BootAllocation; struct { // // The resources that are currently allocated // OUT PCM_PARTIAL_RESOURCE_LIST *AllocatedResources; } QueryAllocatedResources; struct { // // This is the device we are trying to find a conflict for // IN PDEVICE_OBJECT PhysicalDeviceObject; // // This is the resource to find the conflict for // IN PIO_RESOURCE_DESCRIPTOR ConflictingResource; // // Number of devices conflicting on the resource // OUT PULONG ConflictCount; // // Pointer to array describing the conflicting device objects and ranges // OUT PARBITER_CONFLICT_INFO *Conflicts; } QueryConflict; struct { // // Doubly linked list of ARBITER_LIST_ENTRY's - should have // only one entry // IN PLIST_ENTRY ArbitrationList; } QueryArbitrate; struct { // // Indicates the device whose resources are to be marked as reserved // PDEVICE_OBJECT ReserveDevice; } AddReserved; } Parameters; } ARBITER_PARAMETERS, *PARBITER_PARAMETERS; typedef enum _ARBITER_REQUEST_SOURCE { ArbiterRequestUndefined = -1, ArbiterRequestLegacyReported, // IoReportResourceUsage ArbiterRequestHalReported, // IoReportHalResourceUsage ArbiterRequestLegacyAssigned, // IoAssignResources ArbiterRequestPnpDetected, // IoReportResourceForDetection ArbiterRequestPnpEnumerated // IRP_MN_QUERY_RESOURCE_REQUIREMENTS } ARBITER_REQUEST_SOURCE; typedef enum _ARBITER_RESULT { ArbiterResultUndefined = -1, ArbiterResultSuccess, ArbiterResultExternalConflict, // This indicates that the request can never be solved for devices in this list ArbiterResultNullRequest // The request was for length zero and thus no translation should be attempted } ARBITER_RESULT; // // ARBITER_FLAG_BOOT_CONFIG - this indicates that the request is for the // resources assigned by the firmware/BIOS. It should be succeeded even if // it conflicts with another devices boot config. // #define ARBITER_FLAG_BOOT_CONFIG 0x00000001 // begin_ntosp NTKERNELAPI NTSTATUS IoReportResourceForDetection( IN PDRIVER_OBJECT DriverObject, IN PCM_RESOURCE_LIST DriverList OPTIONAL, IN ULONG DriverListSize OPTIONAL, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN PCM_RESOURCE_LIST DeviceList OPTIONAL, IN ULONG DeviceListSize OPTIONAL, OUT PBOOLEAN ConflictDetected ); // end_ntosp typedef struct _ARBITER_LIST_ENTRY { // // This is a doubly linked list of entries for easy sorting // LIST_ENTRY ListEntry; // // The number of alternative allocation // ULONG AlternativeCount; // // Pointer to an array of resource descriptors for the possible allocations // PIO_RESOURCE_DESCRIPTOR Alternatives; // // The device object of the device requesting these resources. // PDEVICE_OBJECT PhysicalDeviceObject; // // Indicates where the request came from // ARBITER_REQUEST_SOURCE RequestSource; // // Flags these indicate a variety of things (use ARBITER_FLAG_*) // ULONG Flags; // // Space to aid the arbiter in processing the list it is initialized to 0 when // the entry is created. The system will not attempt to interpret it. // LONG_PTR WorkSpace; // // Interface Type, Slot Number and Bus Number from Resource Requirements list, // used only for reverse identification. // INTERFACE_TYPE InterfaceType; ULONG SlotNumber; ULONG BusNumber; // // A pointer to a descriptor to indicate the resource that was allocated. // This is allocated by the system and filled in by the arbiter in response to an // ArbiterActionTestAllocation. // PCM_PARTIAL_RESOURCE_DESCRIPTOR Assignment; // // Pointer to the alternative that was chosen from to provide the assignment. // This is filled in by the arbiter in response to an ArbiterActionTestAllocation. // PIO_RESOURCE_DESCRIPTOR SelectedAlternative; // // The result of the operation // This is filled in by the arbiter in response to an ArbiterActionTestAllocation. // ARBITER_RESULT Result; } ARBITER_LIST_ENTRY, *PARBITER_LIST_ENTRY; // // The arbiter's entry point // typedef NTSTATUS (*PARBITER_HANDLER) ( IN PVOID Context, IN ARBITER_ACTION Action, IN OUT PARBITER_PARAMETERS Parameters ); // // Arbiter interface // #define ARBITER_PARTIAL 0x00000001 typedef struct _ARBITER_INTERFACE { // // Generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // Entry point to the arbiter // PARBITER_HANDLER ArbiterHandler; // // Other information about the arbiter, use ARBITER_* flags // ULONG Flags; } ARBITER_INTERFACE, *PARBITER_INTERFACE; // // The directions translation can take place in // typedef enum _RESOURCE_TRANSLATION_DIRECTION { // ntosp TranslateChildToParent, // ntosp TranslateParentToChild // ntosp } RESOURCE_TRANSLATION_DIRECTION; // ntosp // // Translation functions // // begin_ntosp typedef NTSTATUS (*PTRANSLATE_RESOURCE_HANDLER)( IN PVOID Context, IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Source, IN RESOURCE_TRANSLATION_DIRECTION Direction, IN ULONG AlternativesCount, OPTIONAL IN IO_RESOURCE_DESCRIPTOR Alternatives[], OPTIONAL IN PDEVICE_OBJECT PhysicalDeviceObject, OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Target ); typedef NTSTATUS (*PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)( IN PVOID Context, IN PIO_RESOURCE_DESCRIPTOR Source, IN PDEVICE_OBJECT PhysicalDeviceObject, OUT PULONG TargetCount, OUT PIO_RESOURCE_DESCRIPTOR *Target ); // // Translator Interface // typedef struct _TRANSLATOR_INTERFACE { USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; PTRANSLATE_RESOURCE_HANDLER TranslateResources; PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements; } TRANSLATOR_INTERFACE, *PTRANSLATOR_INTERFACE; // // Header structure for all Plug&Play notification events... // typedef struct _PLUGPLAY_NOTIFICATION_HEADER { USHORT Version; // presently at version 1. USHORT Size; // size (in bytes) of header + event-specific data. GUID Event; // // Event-specific stuff starts here. // } PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER; // // Notification structure for all EventCategoryHardwareProfileChange events... // typedef struct _HWPROFILE_CHANGE_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // (No event-specific data) // } HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION; // // Notification structure for all EventCategoryDeviceInterfaceChange events... // typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // Event-specific data // GUID InterfaceClassGuid; PUNICODE_STRING SymbolicLinkName; } DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION; // // Notification structures for EventCategoryTargetDeviceChange... // // // The following structure is used for TargetDeviceQueryRemove, // TargetDeviceRemoveCancelled, and TargetDeviceRemoveComplete: // typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // Event-specific data // PFILE_OBJECT FileObject; } TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION; // // The following structure header is used for all other (i.e., 3rd-party) // target device change events. The structure accommodates both a // variable-length binary data buffer, and a variable-length unicode text // buffer. The header must indicate where the text buffer begins, so that // the data can be delivered in the appropriate format (ANSI or Unicode) // to user-mode recipients (i.e., that have registered for handle-based // notification via RegisterDeviceNotification). // typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // Event-specific data // PFILE_OBJECT FileObject; // This field must be set to NULL by callers of // IoReportTargetDeviceChange. Clients that // have registered for target device change // notification on the affected PDO will be // called with this field set to the file object // they specified during registration. // LONG NameBufferOffset; // offset (in bytes) from beginning of // CustomDataBuffer where text begins (-1 if none) // UCHAR CustomDataBuffer[1]; // variable-length buffer, containing (optionally) // a binary data at the start of the buffer, // followed by an optional unicode text buffer // (word-aligned). // } TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION; // // Define the device description structure. // typedef struct _DEVICE_DESCRIPTION { ULONG Version; BOOLEAN Master; BOOLEAN ScatterGather; BOOLEAN DemandMode; BOOLEAN AutoInitialize; BOOLEAN Dma32BitAddresses; BOOLEAN IgnoreCount; BOOLEAN Reserved1; // must be false BOOLEAN Dma64BitAddresses; ULONG BusNumber; // unused for WDM ULONG DmaChannel; INTERFACE_TYPE InterfaceType; DMA_WIDTH DmaWidth; DMA_SPEED DmaSpeed; ULONG MaximumLength; ULONG DmaPort; } DEVICE_DESCRIPTION, *PDEVICE_DESCRIPTION; // // Define the supported version numbers for the device description structure. // #define DEVICE_DESCRIPTION_VERSION 0 #define DEVICE_DESCRIPTION_VERSION1 1 #define DEVICE_DESCRIPTION_VERSION2 2 // // The following function prototypes are for HAL routines with a prefix of Hal. // // General functions. // typedef BOOLEAN (*PHAL_RESET_DISPLAY_PARAMETERS) ( IN ULONG Columns, IN ULONG Rows ); NTHALAPI VOID HalAcquireDisplayOwnership ( IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters ); #if defined(_ALPHA_) || defined(_IA64_) DECLSPEC_DEPRECATED_DDK // Use GetDmaRequirement NTHALAPI ULONG HalGetDmaAlignmentRequirement ( VOID ); #endif #if defined(_M_IX86) || defined(_M_AMD64) #define HalGetDmaAlignmentRequirement() 1L #endif NTHALAPI VOID KeFlushWriteBuffer ( VOID ); // // I/O driver configuration functions. // #if !defined(NO_LEGACY_DRIVERS) DECLSPEC_DEPRECATED_DDK // Use Pnp or IoReportDetectedDevice NTHALAPI NTSTATUS HalAssignSlotResources ( IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources ); DECLSPEC_DEPRECATED_DDK // Use Pnp or IoReportDetectedDevice NTHALAPI ULONG HalGetInterruptVector( IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity ); DECLSPEC_DEPRECATED_DDK // Use IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG NTHALAPI ULONG HalSetBusData( IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length ); #endif // NO_LEGACY_DRIVERS DECLSPEC_DEPRECATED_DDK // Use IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG NTHALAPI ULONG HalSetBusDataByOffset( IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); DECLSPEC_DEPRECATED_DDK // Use IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG NTHALAPI BOOLEAN HalTranslateBusAddress( IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress ); // // Values for AddressSpace parameter of HalTranslateBusAddress // // 0x0 - Memory space // 0x1 - Port space // 0x2 - 0x1F - Address spaces specific for Alpha // 0x2 - UserMode view of memory space // 0x3 - UserMode view of port space // 0x4 - Dense memory space // 0x5 - reserved // 0x6 - UserMode view of dense memory space // 0x7 - 0x1F - reserved // NTHALAPI PVOID HalAllocateCrashDumpRegisters( IN PADAPTER_OBJECT AdapterObject, IN OUT PULONG NumberOfMapRegisters ); #if !defined(NO_LEGACY_DRIVERS) DECLSPEC_DEPRECATED_DDK // Use IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG NTHALAPI ULONG HalGetBusData( IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Length ); #endif // NO_LEGACY_DRIVERS DECLSPEC_DEPRECATED_DDK // Use IRP_MN_QUERY_INTERFACE and IRP_MN_READ_CONFIG NTHALAPI ULONG HalGetBusDataByOffset( IN BUS_DATA_TYPE BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); DECLSPEC_DEPRECATED_DDK // Use IoGetDmaAdapter NTHALAPI PADAPTER_OBJECT HalGetAdapter( IN PDEVICE_DESCRIPTION DeviceDescription, IN OUT PULONG NumberOfMapRegisters ); // // System beep functions. // #if !defined(NO_LEGACY_DRIVERS) NTHALAPI BOOLEAN HalMakeBeep( IN ULONG Frequency ); #endif // NO_LEGACY_DRIVERS // // The following function prototypes are for HAL routines with a prefix of Io. // // DMA adapter object functions. // // // Performance counter function. // NTHALAPI LARGE_INTEGER KeQueryPerformanceCounter ( OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL ); // begin_ntndis // // Stall processor execution function. // NTHALAPI VOID KeStallExecutionProcessor ( IN ULONG MicroSeconds ); typedef VOID (*PDEVICE_CONTROL_COMPLETION)( IN struct _DEVICE_CONTROL_CONTEXT *ControlContext ); typedef struct _DEVICE_CONTROL_CONTEXT { NTSTATUS Status; PDEVICE_HANDLER_OBJECT DeviceHandler; PDEVICE_OBJECT DeviceObject; ULONG ControlCode; PVOID Buffer; PULONG BufferLength; PVOID Context; } DEVICE_CONTROL_CONTEXT, *PDEVICE_CONTROL_CONTEXT; typedef PBUS_HANDLER (FASTCALL *pHalHandlerForBus) ( IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber ); typedef VOID (FASTCALL *pHalReferenceBusHandler) ( IN PBUS_HANDLER BusHandler ); //***************************************************************************** // HAL Function dispatch // typedef enum _HAL_QUERY_INFORMATION_CLASS { HalInstalledBusInformation, HalProfileSourceInformation, HalInformationClassUnused1, HalPowerInformation, HalProcessorSpeedInformation, HalCallbackInformation, HalMapRegisterInformation, HalMcaLogInformation, // Machine Check Abort Information HalFrameBufferCachingInformation, HalDisplayBiosInformation, HalProcessorFeatureInformation, HalNumaTopologyInterface, HalErrorInformation, // General MCA, CMC, CPE Error Information. HalCmcLogInformation, // Processor Corrected Machine Check Information HalCpeLogInformation, // Corrected Platform Error Information HalQueryMcaInterface, HalQueryAMLIIllegalIOPortAddresses, HalQueryMaxHotPlugMemoryAddress, HalPartitionIpiInterface, HalPlatformInformation // information levels >= 0x8000000 reserved for OEM use } HAL_QUERY_INFORMATION_CLASS, *PHAL_QUERY_INFORMATION_CLASS; typedef enum _HAL_SET_INFORMATION_CLASS { HalProfileSourceInterval, HalProfileSourceInterruptHandler, HalMcaRegisterDriver, // Registring Machine Check Abort driver HalKernelErrorHandler, HalCmcRegisterDriver, // Registring Processor Corrected Machine Check driver HalCpeRegisterDriver, // Registring Corrected Platform Error driver HalMcaLog, HalCmcLog, HalCpeLog, } HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS; typedef NTSTATUS (*pHalQuerySystemInformation)( IN HAL_QUERY_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer, OUT PULONG ReturnedLength ); NTSTATUS HaliQuerySystemInformation( IN HAL_SET_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN OUT PVOID Buffer, OUT PULONG ReturnedLength ); NTSTATUS HaliHandlePCIConfigSpaceAccess( IN BOOLEAN Read, IN ULONG Addr, IN ULONG Size, IN OUT PULONG pData ); typedef NTSTATUS (*pHalSetSystemInformation)( IN HAL_SET_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN PVOID Buffer ); NTSTATUS HaliSetSystemInformation( IN HAL_SET_INFORMATION_CLASS InformationClass, IN ULONG BufferSize, IN PVOID Buffer ); typedef VOID (FASTCALL *pHalExamineMBR)( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG MBRTypeIdentifier, OUT PVOID *Buffer ); typedef VOID (FASTCALL *pHalIoAssignDriveLetters)( IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock, IN PSTRING NtDeviceName, OUT PUCHAR NtSystemPath, OUT PSTRING NtSystemPathString ); typedef NTSTATUS (FASTCALL *pHalIoReadPartitionTable)( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN BOOLEAN ReturnRecognizedPartitions, OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer ); typedef NTSTATUS (FASTCALL *pHalIoSetPartitionInformation)( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG PartitionNumber, IN ULONG PartitionType ); typedef NTSTATUS (FASTCALL *pHalIoWritePartitionTable)( IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG SectorsPerTrack, IN ULONG NumberOfHeads, IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer ); typedef NTSTATUS (*pHalQueryBusSlots)( IN PBUS_HANDLER BusHandler, IN ULONG BufferSize, OUT PULONG SlotNumbers, OUT PULONG ReturnedLength ); typedef NTSTATUS (*pHalInitPnpDriver)( VOID ); NTSTATUS HaliInitPnpDriver( VOID ); typedef struct _PM_DISPATCH_TABLE { ULONG Signature; ULONG Version; PVOID Function[1]; } PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE; typedef NTSTATUS (*pHalInitPowerManagement)( IN PPM_DISPATCH_TABLE PmDriverDispatchTable, OUT PPM_DISPATCH_TABLE *PmHalDispatchTable ); NTSTATUS HaliInitPowerManagement( IN PPM_DISPATCH_TABLE PmDriverDispatchTable, IN OUT PPM_DISPATCH_TABLE *PmHalDispatchTable ); typedef struct _DMA_ADAPTER * (*pHalGetDmaAdapter)( IN PVOID Context, IN struct _DEVICE_DESCRIPTION *DeviceDescriptor, OUT PULONG NumberOfMapRegisters ); struct _DMA_ADAPTER * HaliGetDmaAdapter( IN PVOID Context, IN struct _DEVICE_DESCRIPTION *DeviceDescriptor, OUT PULONG NumberOfMapRegisters ); typedef NTSTATUS (*pHalGetInterruptTranslator)( IN INTERFACE_TYPE ParentInterfaceType, IN ULONG ParentBusNumber, IN INTERFACE_TYPE BridgeInterfaceType, IN USHORT Size, IN USHORT Version, OUT PTRANSLATOR_INTERFACE Translator, OUT PULONG BridgeBusNumber ); NTSTATUS HaliGetInterruptTranslator( IN INTERFACE_TYPE ParentInterfaceType, IN ULONG ParentBusNumber, IN INTERFACE_TYPE BridgeInterfaceType, IN USHORT Size, IN USHORT Version, OUT PTRANSLATOR_INTERFACE Translator, OUT PULONG BridgeBusNumber ); typedef BOOLEAN (*pHalTranslateBusAddress)( IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress ); typedef NTSTATUS (*pHalAssignSlotResources) ( IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources ); typedef VOID (*pHalHaltSystem) ( VOID ); typedef VOID (*pHalResetDisplay) ( VOID ); typedef UCHAR (*pHalVectorToIDTEntry) ( ULONG Vector ); typedef BOOLEAN (*pHalFindBusAddressTranslation) ( IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus ); typedef NTSTATUS (*pHalStartMirroring)( VOID ); typedef NTSTATUS (*pHalEndMirroring)( IN ULONG PassNumber ); typedef NTSTATUS (*pHalMirrorPhysicalMemory)( IN PHYSICAL_ADDRESS PhysicalAddress, IN LARGE_INTEGER NumberOfBytes ); typedef NTSTATUS (*pHalMirrorVerify)( IN PHYSICAL_ADDRESS PhysicalAddress, IN LARGE_INTEGER NumberOfBytes ); typedef struct { UCHAR Type; //CmResourceType BOOLEAN Valid; UCHAR Reserved[2]; PUCHAR TranslatedAddress; ULONG Length; } DEBUG_DEVICE_ADDRESS, *PDEBUG_DEVICE_ADDRESS; typedef struct { PHYSICAL_ADDRESS Start; PHYSICAL_ADDRESS MaxEnd; PVOID VirtualAddress; ULONG Length; BOOLEAN Cached; BOOLEAN Aligned; } DEBUG_MEMORY_REQUIREMENTS, *PDEBUG_MEMORY_REQUIREMENTS; typedef struct { ULONG Bus; ULONG Slot; USHORT VendorID; USHORT DeviceID; UCHAR BaseClass; UCHAR SubClass; UCHAR ProgIf; BOOLEAN Initialized; DEBUG_DEVICE_ADDRESS BaseAddress[6]; DEBUG_MEMORY_REQUIREMENTS Memory; } DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR; typedef NTSTATUS (*pKdSetupPciDeviceForDebugging)( IN PVOID LoaderBlock, OPTIONAL IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice ); typedef NTSTATUS (*pKdReleasePciDeviceForDebugging)( IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice ); typedef PVOID (*pKdGetAcpiTablePhase0)( IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock, IN ULONG Signature ); typedef VOID (*pKdCheckPowerButton)( VOID ); typedef VOID (*pHalEndOfBoot)( VOID ); typedef PVOID (*pKdMapPhysicalMemory64)( IN PHYSICAL_ADDRESS PhysicalAddress, IN ULONG NumberPages ); typedef VOID (*pKdUnmapVirtualAddress)( IN PVOID VirtualAddress, IN ULONG NumberPages ); typedef struct { ULONG Version; pHalQuerySystemInformation HalQuerySystemInformation; pHalSetSystemInformation HalSetSystemInformation; pHalQueryBusSlots HalQueryBusSlots; ULONG Spare1; pHalExamineMBR HalExamineMBR; pHalIoAssignDriveLetters HalIoAssignDriveLetters; pHalIoReadPartitionTable HalIoReadPartitionTable; pHalIoSetPartitionInformation HalIoSetPartitionInformation; pHalIoWritePartitionTable HalIoWritePartitionTable; pHalHandlerForBus HalReferenceHandlerForBus; pHalReferenceBusHandler HalReferenceBusHandler; pHalReferenceBusHandler HalDereferenceBusHandler; pHalInitPnpDriver HalInitPnpDriver; pHalInitPowerManagement HalInitPowerManagement; pHalGetDmaAdapter HalGetDmaAdapter; pHalGetInterruptTranslator HalGetInterruptTranslator; pHalStartMirroring HalStartMirroring; pHalEndMirroring HalEndMirroring; pHalMirrorPhysicalMemory HalMirrorPhysicalMemory; pHalEndOfBoot HalEndOfBoot; pHalMirrorVerify HalMirrorVerify; } HAL_DISPATCH, *PHAL_DISPATCH; #if defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) extern PHAL_DISPATCH HalDispatchTable; #define HALDISPATCH HalDispatchTable #else extern HAL_DISPATCH HalDispatchTable; #define HALDISPATCH (&HalDispatchTable) #endif #define HAL_DISPATCH_VERSION 3 #define HalDispatchTableVersion HALDISPATCH->Version #define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation #define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation #define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots #define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus #define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler #define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler #define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver #define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement #define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter #define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator #define HalStartMirroring HALDISPATCH->HalStartMirroring #define HalEndMirroring HALDISPATCH->HalEndMirroring #define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory #define HalEndOfBoot HALDISPATCH->HalEndOfBoot #define HalMirrorVerify HALDISPATCH->HalMirrorVerify // // HAL System Information Structures. // // for the information class "HalInstalledBusInformation" typedef struct _HAL_BUS_INFORMATION{ INTERFACE_TYPE BusType; BUS_DATA_TYPE ConfigurationType; ULONG BusNumber; ULONG Reserved; } HAL_BUS_INFORMATION, *PHAL_BUS_INFORMATION; // for the information class "HalProfileSourceInformation" typedef struct _HAL_PROFILE_SOURCE_INFORMATION { KPROFILE_SOURCE Source; BOOLEAN Supported; ULONG Interval; } HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION; typedef struct _HAL_PROFILE_SOURCE_INFORMATION_EX { KPROFILE_SOURCE Source; BOOLEAN Supported; ULONG_PTR Interval; ULONG_PTR DefInterval; ULONG_PTR MaxInterval; ULONG_PTR MinInterval; } HAL_PROFILE_SOURCE_INFORMATION_EX, *PHAL_PROFILE_SOURCE_INFORMATION_EX; // for the information class "HalProfileSourceInterval" typedef struct _HAL_PROFILE_SOURCE_INTERVAL { KPROFILE_SOURCE Source; ULONG_PTR Interval; } HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL; // for the information class "HalDispayBiosInformation" typedef enum _HAL_DISPLAY_BIOS_INFORMATION { HalDisplayInt10Bios, HalDisplayEmulatedBios, HalDisplayNoBios } HAL_DISPLAY_BIOS_INFORMATION, *PHAL_DISPLAY_BIOS_INFORMATION; // for the information class "HalPowerInformation" typedef struct _HAL_POWER_INFORMATION { ULONG TBD; } HAL_POWER_INFORMATION, *PHAL_POWER_INFORMATION; // for the information class "HalProcessorSpeedInformation" typedef struct _HAL_PROCESSOR_SPEED_INFO { ULONG ProcessorSpeed; } HAL_PROCESSOR_SPEED_INFORMATION, *PHAL_PROCESSOR_SPEED_INFORMATION; // for the information class "HalCallbackInformation" typedef struct _HAL_CALLBACKS { PCALLBACK_OBJECT SetSystemInformation; PCALLBACK_OBJECT BusCheck; } HAL_CALLBACKS, *PHAL_CALLBACKS; // for the information class "HalProcessorFeatureInformation" typedef struct _HAL_PROCESSOR_FEATURE { ULONG UsableFeatureBits; } HAL_PROCESSOR_FEATURE; // for the information class "HalNumaTopologyInterface" typedef ULONG HALNUMAPAGETONODE; typedef HALNUMAPAGETONODE (*PHALNUMAPAGETONODE)( IN ULONG_PTR PhysicalPageNumber ); typedef NTSTATUS (*PHALNUMAQUERYPROCESSORNODE)( IN ULONG ProcessorNumber, OUT PUSHORT Identifier, OUT PUCHAR Node ); typedef struct _HAL_NUMA_TOPOLOGY_INTERFACE { ULONG NumberOfNodes; PHALNUMAQUERYPROCESSORNODE QueryProcessorNode; PHALNUMAPAGETONODE PageToNode; } HAL_NUMA_TOPOLOGY_INTERFACE; typedef NTSTATUS (*PHALIOREADWRITEHANDLER)( IN BOOLEAN fRead, IN ULONG dwAddr, IN ULONG dwSize, IN OUT PULONG pdwData ); // for the information class "HalQueryIllegalIOPortAddresses" typedef struct _HAL_AMLI_BAD_IO_ADDRESS_LIST { ULONG BadAddrBegin; ULONG BadAddrSize; ULONG OSVersionTrigger; PHALIOREADWRITEHANDLER IOHandler; } HAL_AMLI_BAD_IO_ADDRESS_LIST, *PHAL_AMLI_BAD_IO_ADDRESS_LIST; // end_ntosp #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_) // // HalQueryMcaInterface // typedef VOID (*PHALMCAINTERFACELOCK)( VOID ); typedef VOID (*PHALMCAINTERFACEUNLOCK)( VOID ); typedef NTSTATUS (*PHALMCAINTERFACEREADREGISTER)( IN UCHAR BankNumber, IN OUT PVOID Exception ); typedef struct _HAL_MCA_INTERFACE { PHALMCAINTERFACELOCK Lock; PHALMCAINTERFACEUNLOCK Unlock; PHALMCAINTERFACEREADREGISTER ReadRegister; } HAL_MCA_INTERFACE; typedef #if defined(_IA64_) ERROR_SEVERITY #else // !_IA64_ VOID #endif // !_IA64_ (*PDRIVER_EXCPTN_CALLBACK) ( IN PVOID Context, IN PMCA_EXCEPTION BankLog ); typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK; // // Structure to record the callbacks from driver // typedef struct _MCA_DRIVER_INFO { PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback; PKDEFERRED_ROUTINE DpcCallback; PVOID DeviceContext; } MCA_DRIVER_INFO, *PMCA_DRIVER_INFO; // For the information class HalKernelErrorHandler typedef BOOLEAN (*KERNEL_MCA_DELIVERY)( PVOID Reserved, PVOID Argument2 ); typedef BOOLEAN (*KERNEL_CMC_DELIVERY)( PVOID Reserved, PVOID Argument2 ); typedef BOOLEAN (*KERNEL_CPE_DELIVERY)( PVOID Reserved, PVOID Argument2 ); typedef BOOLEAN (*KERNEL_MCE_DELIVERY)( PVOID Reserved, PVOID Argument2 ); #define KERNEL_ERROR_HANDLER_VERSION 0x1 typedef struct { ULONG Version; // Version of this structure. Required to be 1rst field. ULONG Padding; KERNEL_MCA_DELIVERY KernelMcaDelivery; // Kernel callback for MCA DPC Queueing. KERNEL_CMC_DELIVERY KernelCmcDelivery; // Kernel callback for CMC DPC Queueing. KERNEL_CPE_DELIVERY KernelCpeDelivery; // Kernel callback for CPE DPC Queueing. KERNEL_MCE_DELIVERY KernelMceDelivery; // Kernel callback for CME DPC Queueing. // Includes the kernel notifications for FW // interfaces errors. } KERNEL_ERROR_HANDLER_INFO, *PKERNEL_ERROR_HANDLER_INFO; // KERNEL_MCA_DELIVERY.McaType definition #define KERNEL_MCA_UNKNOWN 0x0 #define KERNEL_MCA_PREVIOUS 0x1 #define KERNEL_MCA_CORRECTED 0x2 // KERNEL_MCE_DELIVERY.Reserved.EVENTTYPE definitions #define KERNEL_MCE_EVENTTYPE_MCA 0x00 #define KERNEL_MCE_EVENTTYPE_INIT 0x01 #define KERNEL_MCE_EVENTTYPE_CMC 0x02 #define KERNEL_MCE_EVENTTYPE_CPE 0x03 #define KERNEL_MCE_EVENTTYPE_MASK 0xffff #define KERNEL_MCE_EVENTTYPE( _Reverved ) ((USHORT)(ULONG_PTR)(_Reserved)) // KERNEL_MCE_DELIVERY.Reserved.OPERATION definitions #define KERNEL_MCE_OPERATION_CLEAR_STATE_INFO 0x1 #define KERNEL_MCE_OPERATION_GET_STATE_INFO 0x2 #define KERNEL_MCE_OPERATION_MASK 0xffff #define KERNEL_MCE_OPERATION_SHIFT KERNEL_MCE_EVENTTYPE_MASK #define KERNEL_MCE_OPERATION( _Reserved ) \ ((USHORT)((((ULONG_PTR)(_Reserved)) >> KERNEL_MCE_OPERATION_SHIFT) & KERNEL_MCE_OPERATION_MASK)) // for information class HalErrorInformation #define HAL_ERROR_INFO_VERSION 0x2 typedef struct _HAL_ERROR_INFO { ULONG Version; // Version of this structure ULONG Reserved; // ULONG McaMaxSize; // Maximum size of a Machine Check Abort record ULONG McaPreviousEventsCount; // Flag indicating previous or early-boot MCA event logs. ULONG McaCorrectedEventsCount; // Number of corrected MCA events since boot. approx. ULONG McaKernelDeliveryFails; // Number of Kernel callback failures. approx. ULONG McaDriverDpcQueueFails; // Number of OEM MCA Driver Dpc queueing failures. approx. ULONG McaReserved; ULONG CmcMaxSize; // Maximum size of a Corrected Machine Check record ULONG CmcPollingInterval; // In units of seconds ULONG CmcInterruptsCount; // Number of CMC interrupts. approx. ULONG CmcKernelDeliveryFails; // Number of Kernel callback failures. approx. ULONG CmcDriverDpcQueueFails; // Number of OEM CMC Driver Dpc queueing failures. approx. ULONG CmcGetStateFails; // Number of failures in getting the log from FW. ULONG CmcClearStateFails; // Number of failures in clearing the log from FW. ULONG CmcReserved; ULONGLONG CmcLogId; // Last seen record identifier. ULONG CpeMaxSize; // Maximum size of a Corrected Platform Event record ULONG CpePollingInterval; // In units of seconds ULONG CpeInterruptsCount; // Number of CPE interrupts. approx. ULONG CpeKernelDeliveryFails; // Number of Kernel callback failures. approx. ULONG CpeDriverDpcQueueFails; // Number of OEM CPE Driver Dpc queueing failures. approx. ULONG CpeGetStateFails; // Number of failures in getting the log from FW. ULONG CpeClearStateFails; // Number of failures in clearing the log from FW. ULONG CpeInterruptSources; // Number of SAPIC Platform Interrupt Sources ULONGLONG CpeLogId; // Last seen record identifier. ULONGLONG KernelReserved[4]; } HAL_ERROR_INFO, *PHAL_ERROR_INFO; // // Known values for HAL_ERROR_INFO.CmcPollingInterval. // #define HAL_CMC_INTERRUPTS_BASED ((ULONG)-1) #define HAL_CMC_DISABLED ((ULONG)0) // // Known values for HAL_ERROR_INFO.CpePollingInterval. // #define HAL_CPE_INTERRUPTS_BASED ((ULONG)-1) #define HAL_CPE_DISABLED ((ULONG)0) #define HAL_MCA_INTERRUPTS_BASED ((ULONG)-1) #define HAL_MCA_DISABLED ((ULONG)0) // // Driver Callback type for the information class "HalCmcRegisterDriver" // typedef VOID (*PDRIVER_CMC_EXCEPTION_CALLBACK) ( IN PVOID Context, IN PCMC_EXCEPTION CmcLog ); // // Driver Callback type for the information class "HalCpeRegisterDriver" // typedef VOID (*PDRIVER_CPE_EXCEPTION_CALLBACK) ( IN PVOID Context, IN PCPE_EXCEPTION CmcLog ); // // // Structure to record the callbacks from driver // typedef struct _CMC_DRIVER_INFO { PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback; PKDEFERRED_ROUTINE DpcCallback; PVOID DeviceContext; } CMC_DRIVER_INFO, *PCMC_DRIVER_INFO; typedef struct _CPE_DRIVER_INFO { PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback; PKDEFERRED_ROUTINE DpcCallback; PVOID DeviceContext; } CPE_DRIVER_INFO, *PCPE_DRIVER_INFO; #endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_) #if defined(_IA64_) typedef NTSTATUS (*HALSENDCROSSPARTITIONIPI)( IN USHORT ProcessorID, IN UCHAR HardwareVector ); typedef NTSTATUS (*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)( OUT PULONG Vector, OUT PKIRQL Irql, IN OUT PKAFFINITY Affinity, OUT PUCHAR HardwareVector ); typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE { HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi; HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector; } HAL_CROSS_PARTITION_IPI_INTERFACE; #endif typedef struct _HAL_PLATFORM_INFORMATION { ULONG PlatformFlags; } HAL_PLATFORM_INFORMATION, *PHAL_PLATFORM_INFORMATION; // // These platform flags are carried over from the IPPT table // definition if appropriate. // #define HAL_PLATFORM_DISABLE_PTCG 0x04L #define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L // begin_wdm begin_ntndis begin_ntosp typedef struct _SCATTER_GATHER_ELEMENT { PHYSICAL_ADDRESS Address; ULONG Length; ULONG_PTR Reserved; } SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT; #pragma warning(disable:4200) typedef struct _SCATTER_GATHER_LIST { ULONG NumberOfElements; ULONG_PTR Reserved; SCATTER_GATHER_ELEMENT Elements[]; } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST; #pragma warning(default:4200) // end_ntndis typedef struct _DMA_OPERATIONS *PDMA_OPERATIONS; typedef struct _DMA_ADAPTER { USHORT Version; USHORT Size; PDMA_OPERATIONS DmaOperations; // Private Bus Device Driver data follows, } DMA_ADAPTER, *PDMA_ADAPTER; typedef VOID (*PPUT_DMA_ADAPTER)( PDMA_ADAPTER DmaAdapter ); typedef PVOID (*PALLOCATE_COMMON_BUFFER)( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled ); typedef VOID (*PFREE_COMMON_BUFFER)( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled ); typedef NTSTATUS (*PALLOCATE_ADAPTER_CHANNEL)( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context ); typedef BOOLEAN (*PFLUSH_ADAPTER_BUFFERS)( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice ); typedef VOID (*PFREE_ADAPTER_CHANNEL)( IN PDMA_ADAPTER DmaAdapter ); typedef VOID (*PFREE_MAP_REGISTERS)( IN PDMA_ADAPTER DmaAdapter, PVOID MapRegisterBase, ULONG NumberOfMapRegisters ); typedef PHYSICAL_ADDRESS (*PMAP_TRANSFER)( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN OUT PULONG Length, IN BOOLEAN WriteToDevice ); typedef ULONG (*PGET_DMA_ALIGNMENT)( IN PDMA_ADAPTER DmaAdapter ); typedef ULONG (*PREAD_DMA_COUNTER)( IN PDMA_ADAPTER DmaAdapter ); typedef VOID (*PDRIVER_LIST_CONTROL)( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PSCATTER_GATHER_LIST ScatterGather, IN PVOID Context ); typedef NTSTATUS (*PGET_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice ); typedef VOID (*PPUT_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PSCATTER_GATHER_LIST ScatterGather, IN BOOLEAN WriteToDevice ); typedef NTSTATUS (*PCALCULATE_SCATTER_GATHER_LIST_SIZE)( IN PDMA_ADAPTER DmaAdapter, IN OPTIONAL PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, OUT PULONG ScatterGatherListSize, OUT OPTIONAL PULONG pNumberOfMapRegisters ); typedef NTSTATUS (*PBUILD_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice, IN PVOID ScatterGatherBuffer, IN ULONG ScatterGatherLength ); typedef NTSTATUS (*PBUILD_MDL_FROM_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PSCATTER_GATHER_LIST ScatterGather, IN PMDL OriginalMdl, OUT PMDL *TargetMdl ); typedef struct _DMA_OPERATIONS { ULONG Size; PPUT_DMA_ADAPTER PutDmaAdapter; PALLOCATE_COMMON_BUFFER AllocateCommonBuffer; PFREE_COMMON_BUFFER FreeCommonBuffer; PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel; PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers; PFREE_ADAPTER_CHANNEL FreeAdapterChannel; PFREE_MAP_REGISTERS FreeMapRegisters; PMAP_TRANSFER MapTransfer; PGET_DMA_ALIGNMENT GetDmaAlignment; PREAD_DMA_COUNTER ReadDmaCounter; PGET_SCATTER_GATHER_LIST GetScatterGatherList; PPUT_SCATTER_GATHER_LIST PutScatterGatherList; PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList; PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList; PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList; } DMA_OPERATIONS; // end_wdm #if defined(_WIN64) // // Use __inline DMA macros (hal.h) // #ifndef USE_DMA_MACROS #define USE_DMA_MACROS #endif // // Only PnP drivers! // #ifndef NO_LEGACY_DRIVERS #define NO_LEGACY_DRIVERS #endif #endif // _WIN64 #if defined(USE_DMA_MACROS) && (defined(_NTDDK_) || defined(_NTDRIVER_)) // begin_wdm DECLSPEC_DEPRECATED_DDK // Use AllocateCommonBuffer FORCEINLINE PVOID HalAllocateCommonBuffer( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled ){ PALLOCATE_COMMON_BUFFER allocateCommonBuffer; PVOID commonBuffer; allocateCommonBuffer = *(DmaAdapter)->DmaOperations->AllocateCommonBuffer; ASSERT( allocateCommonBuffer != NULL ); commonBuffer = allocateCommonBuffer( DmaAdapter, Length, LogicalAddress, CacheEnabled ); return commonBuffer; } DECLSPEC_DEPRECATED_DDK // Use FreeCommonBuffer FORCEINLINE VOID HalFreeCommonBuffer( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled ){ PFREE_COMMON_BUFFER freeCommonBuffer; freeCommonBuffer = *(DmaAdapter)->DmaOperations->FreeCommonBuffer; ASSERT( freeCommonBuffer != NULL ); freeCommonBuffer( DmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled ); } DECLSPEC_DEPRECATED_DDK // Use AllocateAdapterChannel FORCEINLINE NTSTATUS IoAllocateAdapterChannel( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context ){ PALLOCATE_ADAPTER_CHANNEL allocateAdapterChannel; NTSTATUS status; allocateAdapterChannel = *(DmaAdapter)->DmaOperations->AllocateAdapterChannel; ASSERT( allocateAdapterChannel != NULL ); status = allocateAdapterChannel( DmaAdapter, DeviceObject, NumberOfMapRegisters, ExecutionRoutine, Context ); return status; } DECLSPEC_DEPRECATED_DDK // Use FlushAdapterBuffers FORCEINLINE BOOLEAN IoFlushAdapterBuffers( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice ){ PFLUSH_ADAPTER_BUFFERS flushAdapterBuffers; BOOLEAN result; flushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers; ASSERT( flushAdapterBuffers != NULL ); result = flushAdapterBuffers( DmaAdapter, Mdl, MapRegisterBase, CurrentVa, Length, WriteToDevice ); return result; } DECLSPEC_DEPRECATED_DDK // Use FreeAdapterChannel FORCEINLINE VOID IoFreeAdapterChannel( IN PDMA_ADAPTER DmaAdapter ){ PFREE_ADAPTER_CHANNEL freeAdapterChannel; freeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel; ASSERT( freeAdapterChannel != NULL ); freeAdapterChannel( DmaAdapter ); } DECLSPEC_DEPRECATED_DDK // Use FreeMapRegisters FORCEINLINE VOID IoFreeMapRegisters( IN PDMA_ADAPTER DmaAdapter, IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters ){ PFREE_MAP_REGISTERS freeMapRegisters; freeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters; ASSERT( freeMapRegisters != NULL ); freeMapRegisters( DmaAdapter, MapRegisterBase, NumberOfMapRegisters ); } DECLSPEC_DEPRECATED_DDK // Use MapTransfer FORCEINLINE PHYSICAL_ADDRESS IoMapTransfer( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN OUT PULONG Length, IN BOOLEAN WriteToDevice ){ PHYSICAL_ADDRESS physicalAddress; PMAP_TRANSFER mapTransfer; mapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer; ASSERT( mapTransfer != NULL ); physicalAddress = mapTransfer( DmaAdapter, Mdl, MapRegisterBase, CurrentVa, Length, WriteToDevice ); return physicalAddress; } DECLSPEC_DEPRECATED_DDK // Use GetDmaAlignment FORCEINLINE ULONG HalGetDmaAlignment( IN PDMA_ADAPTER DmaAdapter ) { PGET_DMA_ALIGNMENT getDmaAlignment; ULONG alignment; getDmaAlignment = *(DmaAdapter)->DmaOperations->GetDmaAlignment; ASSERT( getDmaAlignment != NULL ); alignment = getDmaAlignment( DmaAdapter ); return alignment; } DECLSPEC_DEPRECATED_DDK // Use ReadDmaCounter FORCEINLINE ULONG HalReadDmaCounter( IN PDMA_ADAPTER DmaAdapter ) { PREAD_DMA_COUNTER readDmaCounter; ULONG counter; readDmaCounter = *(DmaAdapter)->DmaOperations->ReadDmaCounter; ASSERT( readDmaCounter != NULL ); counter = readDmaCounter( DmaAdapter ); return counter; } // end_wdm #else // // DMA adapter object functions. // NTHALAPI NTSTATUS HalAllocateAdapterChannel( IN PADAPTER_OBJECT AdapterObject, IN PWAIT_CONTEXT_BLOCK Wcb, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine ); DECLSPEC_DEPRECATED_DDK // Use AllocateCommonBuffer NTHALAPI PVOID HalAllocateCommonBuffer( IN PADAPTER_OBJECT AdapterObject, IN ULONG Length, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled ); DECLSPEC_DEPRECATED_DDK // Use FreeCommonBuffer NTHALAPI VOID HalFreeCommonBuffer( IN PADAPTER_OBJECT AdapterObject, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled ); DECLSPEC_DEPRECATED_DDK // Use ReadDmaCounter NTHALAPI ULONG HalReadDmaCounter( IN PADAPTER_OBJECT AdapterObject ); DECLSPEC_DEPRECATED_DDK // Use FlushAdapterBuffers NTHALAPI BOOLEAN IoFlushAdapterBuffers( IN PADAPTER_OBJECT AdapterObject, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice ); DECLSPEC_DEPRECATED_DDK // Use FreeAdapterChannel NTHALAPI VOID IoFreeAdapterChannel( IN PADAPTER_OBJECT AdapterObject ); DECLSPEC_DEPRECATED_DDK // Use FreeMapRegisters NTHALAPI VOID IoFreeMapRegisters( IN PADAPTER_OBJECT AdapterObject, IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters ); DECLSPEC_DEPRECATED_DDK // Use MapTransfer NTHALAPI PHYSICAL_ADDRESS IoMapTransfer( IN PADAPTER_OBJECT AdapterObject, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN OUT PULONG Length, IN BOOLEAN WriteToDevice ); #endif // USE_DMA_MACROS && (_NTDDK_ || _NTDRIVER_) NTSTATUS HalGetScatterGatherList ( IN PADAPTER_OBJECT DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice ); VOID HalPutScatterGatherList ( IN PADAPTER_OBJECT DmaAdapter, IN PSCATTER_GATHER_LIST ScatterGather, IN BOOLEAN WriteToDevice ); VOID HalPutDmaAdapter( IN PADAPTER_OBJECT DmaAdapter ); NTKERNELAPI VOID PoSetSystemState ( IN EXECUTION_STATE Flags ); // begin_ntifs NTKERNELAPI PVOID PoRegisterSystemState ( IN PVOID StateHandle, IN EXECUTION_STATE Flags ); // end_ntifs typedef VOID (*PREQUEST_POWER_COMPLETE) ( IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus ); NTKERNELAPI NTSTATUS PoRequestPowerIrp ( IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PREQUEST_POWER_COMPLETE CompletionFunction, IN PVOID Context, OUT PIRP *Irp OPTIONAL ); NTKERNELAPI NTSTATUS PoRequestShutdownEvent ( OUT PVOID *Event ); NTKERNELAPI NTSTATUS PoRequestShutdownWait ( IN PETHREAD Thread ); // begin_ntifs NTKERNELAPI VOID PoUnregisterSystemState ( IN PVOID StateHandle ); // begin_nthal NTKERNELAPI POWER_STATE PoSetPowerState ( IN PDEVICE_OBJECT DeviceObject, IN POWER_STATE_TYPE Type, IN POWER_STATE State ); NTKERNELAPI NTSTATUS PoCallDriver ( IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp ); NTKERNELAPI VOID PoStartNextPowerIrp( IN PIRP Irp ); NTKERNELAPI PULONG PoRegisterDeviceForIdleDetection ( IN PDEVICE_OBJECT DeviceObject, IN ULONG ConservationIdleTime, IN ULONG PerformanceIdleTime, IN DEVICE_POWER_STATE State ); #define PoSetDeviceBusy(IdlePointer) \ *IdlePointer = 0 // // \Callback\PowerState values // #define PO_CB_SYSTEM_POWER_POLICY 0 #define PO_CB_AC_STATUS 1 #define PO_CB_BUTTON_COLLISION 2 #define PO_CB_SYSTEM_STATE_LOCK 3 #define PO_CB_LID_SWITCH_STATE 4 #define PO_CB_PROCESSOR_POWER_POLICY 5 // // Determine if there is a complete device failure on an error. // NTKERNELAPI BOOLEAN FsRtlIsTotalDeviceFailure( IN NTSTATUS Status ); // // Object Manager types // typedef struct _OBJECT_HANDLE_INFORMATION { ULONG HandleAttributes; ACCESS_MASK GrantedAccess; } OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION; NTKERNELAPI NTSTATUS ObReferenceObjectByHandle( IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL ); #define ObDereferenceObject(a) \ ObfDereferenceObject(a) #define ObReferenceObject(Object) ObfReferenceObject(Object) NTKERNELAPI LONG FASTCALL ObfReferenceObject( IN PVOID Object ); NTKERNELAPI NTSTATUS ObReferenceObjectByPointer( IN PVOID Object, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode ); NTKERNELAPI LONG FASTCALL ObfDereferenceObject( IN PVOID Object ); NTSTATUS ObGetObjectSecurity( IN PVOID Object, OUT PSECURITY_DESCRIPTOR *SecurityDescriptor, OUT PBOOLEAN MemoryAllocated ); VOID ObReleaseObjectSecurity( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN BOOLEAN MemoryAllocated ); // // A PCI driver can read the complete 256 bytes of configuration // information for any PCI device by calling: // // ULONG // HalGetBusData ( // IN BUS_DATA_TYPE PCIConfiguration, // IN ULONG PciBusNumber, // IN PCI_SLOT_NUMBER VirtualSlotNumber, // IN PPCI_COMMON_CONFIG &PCIDeviceConfig, // IN ULONG sizeof (PCIDeviceConfig) // ); // // A return value of 0 means that the specified PCI bus does not exist. // // A return value of 2, with a VendorID of PCI_INVALID_VENDORID means // that the PCI bus does exist, but there is no device at the specified // VirtualSlotNumber (PCI Device/Function number). // // // begin_wdm begin_ntminiport begin_ntndis typedef struct _PCI_SLOT_NUMBER { union { struct { ULONG DeviceNumber:5; ULONG FunctionNumber:3; ULONG Reserved:24; } bits; ULONG AsULONG; } u; } PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER; #define PCI_TYPE0_ADDRESSES 6 #define PCI_TYPE1_ADDRESSES 2 #define PCI_TYPE2_ADDRESSES 5 typedef struct _PCI_COMMON_CONFIG { USHORT VendorID; // (ro) USHORT DeviceID; // (ro) USHORT Command; // Device control USHORT Status; UCHAR RevisionID; // (ro) UCHAR ProgIf; // (ro) UCHAR SubClass; // (ro) UCHAR BaseClass; // (ro) UCHAR CacheLineSize; // (ro+) UCHAR LatencyTimer; // (ro+) UCHAR HeaderType; // (ro) UCHAR BIST; // Built in self test union { struct _PCI_HEADER_TYPE_0 { ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; ULONG CIS; USHORT SubVendorID; USHORT SubSystemID; ULONG ROMBaseAddress; UCHAR CapabilitiesPtr; UCHAR Reserved1[3]; ULONG Reserved2; UCHAR InterruptLine; // UCHAR InterruptPin; // (ro) UCHAR MinimumGrant; // (ro) UCHAR MaximumLatency; // (ro) } type0; // end_wdm end_ntminiport end_ntndis // // PCI to PCI Bridge // struct _PCI_HEADER_TYPE_1 { ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; UCHAR PrimaryBus; UCHAR SecondaryBus; UCHAR SubordinateBus; UCHAR SecondaryLatency; UCHAR IOBase; UCHAR IOLimit; USHORT SecondaryStatus; USHORT MemoryBase; USHORT MemoryLimit; USHORT PrefetchBase; USHORT PrefetchLimit; ULONG PrefetchBaseUpper32; ULONG PrefetchLimitUpper32; USHORT IOBaseUpper16; USHORT IOLimitUpper16; UCHAR CapabilitiesPtr; UCHAR Reserved1[3]; ULONG ROMBaseAddress; UCHAR InterruptLine; UCHAR InterruptPin; USHORT BridgeControl; } type1; // // PCI to CARDBUS Bridge // struct _PCI_HEADER_TYPE_2 { ULONG SocketRegistersBaseAddress; UCHAR CapabilitiesPtr; UCHAR Reserved; USHORT SecondaryStatus; UCHAR PrimaryBus; UCHAR SecondaryBus; UCHAR SubordinateBus; UCHAR SecondaryLatency; struct { ULONG Base; ULONG Limit; } Range[PCI_TYPE2_ADDRESSES-1]; UCHAR InterruptLine; UCHAR InterruptPin; USHORT BridgeControl; } type2; // begin_wdm begin_ntminiport begin_ntndis } u; UCHAR DeviceSpecific[192]; } PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG; #define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET (PCI_COMMON_CONFIG, DeviceSpecific)) #define PCI_MAX_DEVICES 32 #define PCI_MAX_FUNCTION 8 #define PCI_MAX_BRIDGE_NUMBER 0xFF #define PCI_INVALID_VENDORID 0xFFFF // // Bit encodings for PCI_COMMON_CONFIG.HeaderType // #define PCI_MULTIFUNCTION 0x80 #define PCI_DEVICE_TYPE 0x00 #define PCI_BRIDGE_TYPE 0x01 #define PCI_CARDBUS_BRIDGE_TYPE 0x02 #define PCI_CONFIGURATION_TYPE(PciData) \ (((PPCI_COMMON_CONFIG)(PciData))->HeaderType & ~PCI_MULTIFUNCTION) #define PCI_MULTIFUNCTION_DEVICE(PciData) \ ((((PPCI_COMMON_CONFIG)(PciData))->HeaderType & PCI_MULTIFUNCTION) != 0) // // Bit encodings for PCI_COMMON_CONFIG.Command // #define PCI_ENABLE_IO_SPACE 0x0001 #define PCI_ENABLE_MEMORY_SPACE 0x0002 #define PCI_ENABLE_BUS_MASTER 0x0004 #define PCI_ENABLE_SPECIAL_CYCLES 0x0008 #define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010 #define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020 #define PCI_ENABLE_PARITY 0x0040 // (ro+) #define PCI_ENABLE_WAIT_CYCLE 0x0080 // (ro+) #define PCI_ENABLE_SERR 0x0100 // (ro+) #define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200 // (ro) // // Bit encodings for PCI_COMMON_CONFIG.Status // #define PCI_STATUS_CAPABILITIES_LIST 0x0010 // (ro) #define PCI_STATUS_66MHZ_CAPABLE 0x0020 // (ro) #define PCI_STATUS_UDF_SUPPORTED 0x0040 // (ro) #define PCI_STATUS_FAST_BACK_TO_BACK 0x0080 // (ro) #define PCI_STATUS_DATA_PARITY_DETECTED 0x0100 #define PCI_STATUS_DEVSEL 0x0600 // 2 bits wide #define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800 #define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000 #define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000 #define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000 #define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000 // // The NT PCI Driver uses a WhichSpace parameter on its CONFIG_READ/WRITE // routines. The following values are defined- // #define PCI_WHICHSPACE_CONFIG 0x0 #define PCI_WHICHSPACE_ROM 0x52696350 // end_wdm // // PCI Capability IDs // #define PCI_CAPABILITY_ID_POWER_MANAGEMENT 0x01 #define PCI_CAPABILITY_ID_AGP 0x02 #define PCI_CAPABILITY_ID_MSI 0x05 // // All PCI Capability structures have the following header. // // CapabilityID is used to identify the type of the structure (is // one of the PCI_CAPABILITY_ID values above. // // Next is the offset in PCI Configuration space (0x40 - 0xfc) of the // next capability structure in the list, or 0x00 if there are no more // entries. // typedef struct _PCI_CAPABILITIES_HEADER { UCHAR CapabilityID; UCHAR Next; } PCI_CAPABILITIES_HEADER, *PPCI_CAPABILITIES_HEADER; // // Power Management Capability // typedef struct _PCI_PMC { UCHAR Version:3; UCHAR PMEClock:1; UCHAR Rsvd1:1; UCHAR DeviceSpecificInitialization:1; UCHAR Rsvd2:2; struct _PM_SUPPORT { UCHAR Rsvd2:1; UCHAR D1:1; UCHAR D2:1; UCHAR PMED0:1; UCHAR PMED1:1; UCHAR PMED2:1; UCHAR PMED3Hot:1; UCHAR PMED3Cold:1; } Support; } PCI_PMC, *PPCI_PMC; typedef struct _PCI_PMCSR { USHORT PowerState:2; USHORT Rsvd1:6; USHORT PMEEnable:1; USHORT DataSelect:4; USHORT DataScale:2; USHORT PMEStatus:1; } PCI_PMCSR, *PPCI_PMCSR; typedef struct _PCI_PMCSR_BSE { UCHAR Rsvd1:6; UCHAR D3HotSupportsStopClock:1; // B2_B3# UCHAR BusPowerClockControlEnabled:1; // BPCC_EN } PCI_PMCSR_BSE, *PPCI_PMCSR_BSE; typedef struct _PCI_PM_CAPABILITY { PCI_CAPABILITIES_HEADER Header; // // Power Management Capabilities (Offset = 2) // union { PCI_PMC Capabilities; USHORT AsUSHORT; } PMC; // // Power Management Control/Status (Offset = 4) // union { PCI_PMCSR ControlStatus; USHORT AsUSHORT; } PMCSR; // // PMCSR PCI-PCI Bridge Support Extensions // union { PCI_PMCSR_BSE BridgeSupport; UCHAR AsUCHAR; } PMCSR_BSE; // // Optional read only 8 bit Data register. Contents controlled by // DataSelect and DataScale in ControlStatus. // UCHAR Data; } PCI_PM_CAPABILITY, *PPCI_PM_CAPABILITY; // // AGP Capability // typedef struct _PCI_AGP_CAPABILITY { PCI_CAPABILITIES_HEADER Header; USHORT Minor:4; USHORT Major:4; USHORT Rsvd1:8; struct _PCI_AGP_STATUS { ULONG Rate:3; ULONG Rsvd1:1; ULONG FastWrite:1; ULONG FourGB:1; ULONG Rsvd2:3; ULONG SideBandAddressing:1; // SBA ULONG Rsvd3:14; ULONG RequestQueueDepthMaximum:8; // RQ } AGPStatus; struct _PCI_AGP_COMMAND { ULONG Rate:3; ULONG Rsvd1:1; ULONG FastWriteEnable:1; ULONG FourGBEnable:1; ULONG Rsvd2:2; ULONG AGPEnable:1; ULONG SBAEnable:1; ULONG Rsvd3:14; ULONG RequestQueueDepth:8; } AGPCommand; } PCI_AGP_CAPABILITY, *PPCI_AGP_CAPABILITY; #define PCI_AGP_RATE_1X 0x1 #define PCI_AGP_RATE_2X 0x2 #define PCI_AGP_RATE_4X 0x4 // // MSI (Message Signalled Interrupts) Capability // typedef struct _PCI_MSI_CAPABILITY { PCI_CAPABILITIES_HEADER Header; struct _PCI_MSI_MESSAGE_CONTROL { USHORT MSIEnable:1; USHORT MultipleMessageCapable:3; USHORT MultipleMessageEnable:3; USHORT CapableOf64Bits:1; USHORT Reserved:8; } MessageControl; union { struct _PCI_MSI_MESSAGE_ADDRESS { ULONG_PTR Reserved:2; // always zero, DWORD aligned address ULONG_PTR Address:30; } Register; ULONG_PTR Raw; } MessageAddress; // // The rest of the Capability structure differs depending on whether // 32bit or 64bit addressing is being used. // // (The CapableOf64Bits bit above determines this) // union { // For 64 bit devices struct _PCI_MSI_64BIT_DATA { ULONG MessageUpperAddress; USHORT MessageData; } Bit64; // For 32 bit devices struct _PCI_MSI_32BIT_DATA { USHORT MessageData; ULONG Unused; } Bit32; } Data; } PCI_MSI_CAPABILITY, *PPCI_PCI_CAPABILITY; // begin_wdm // // Base Class Code encodings for Base Class (from PCI spec rev 2.1). // #define PCI_CLASS_PRE_20 0x00 #define PCI_CLASS_MASS_STORAGE_CTLR 0x01 #define PCI_CLASS_NETWORK_CTLR 0x02 #define PCI_CLASS_DISPLAY_CTLR 0x03 #define PCI_CLASS_MULTIMEDIA_DEV 0x04 #define PCI_CLASS_MEMORY_CTLR 0x05 #define PCI_CLASS_BRIDGE_DEV 0x06 #define PCI_CLASS_SIMPLE_COMMS_CTLR 0x07 #define PCI_CLASS_BASE_SYSTEM_DEV 0x08 #define PCI_CLASS_INPUT_DEV 0x09 #define PCI_CLASS_DOCKING_STATION 0x0a #define PCI_CLASS_PROCESSOR 0x0b #define PCI_CLASS_SERIAL_BUS_CTLR 0x0c #define PCI_CLASS_WIRELESS_CTLR 0x0d #define PCI_CLASS_INTELLIGENT_IO_CTLR 0x0e #define PCI_CLASS_SATELLITE_COMMS_CTLR 0x0f #define PCI_CLASS_ENCRYPTION_DECRYPTION 0x10 #define PCI_CLASS_DATA_ACQ_SIGNAL_PROC 0x11 // 0d thru fe reserved #define PCI_CLASS_NOT_DEFINED 0xff // // Sub Class Code encodings (PCI rev 2.1). // // Class 00 - PCI_CLASS_PRE_20 #define PCI_SUBCLASS_PRE_20_NON_VGA 0x00 #define PCI_SUBCLASS_PRE_20_VGA 0x01 // Class 01 - PCI_CLASS_MASS_STORAGE_CTLR #define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR 0x00 #define PCI_SUBCLASS_MSC_IDE_CTLR 0x01 #define PCI_SUBCLASS_MSC_FLOPPY_CTLR 0x02 #define PCI_SUBCLASS_MSC_IPI_CTLR 0x03 #define PCI_SUBCLASS_MSC_RAID_CTLR 0x04 #define PCI_SUBCLASS_MSC_OTHER 0x80 // Class 02 - PCI_CLASS_NETWORK_CTLR #define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00 #define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01 #define PCI_SUBCLASS_NET_FDDI_CTLR 0x02 #define PCI_SUBCLASS_NET_ATM_CTLR 0x03 #define PCI_SUBCLASS_NET_ISDN_CTLR 0x04 #define PCI_SUBCLASS_NET_OTHER 0x80 // Class 03 - PCI_CLASS_DISPLAY_CTLR // N.B. Sub Class 00 could be VGA or 8514 depending on Interface byte #define PCI_SUBCLASS_VID_VGA_CTLR 0x00 #define PCI_SUBCLASS_VID_XGA_CTLR 0x01 #define PCI_SUBLCASS_VID_3D_CTLR 0x02 #define PCI_SUBCLASS_VID_OTHER 0x80 // Class 04 - PCI_CLASS_MULTIMEDIA_DEV #define PCI_SUBCLASS_MM_VIDEO_DEV 0x00 #define PCI_SUBCLASS_MM_AUDIO_DEV 0x01 #define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02 #define PCI_SUBCLASS_MM_OTHER 0x80 // Class 05 - PCI_CLASS_MEMORY_CTLR #define PCI_SUBCLASS_MEM_RAM 0x00 #define PCI_SUBCLASS_MEM_FLASH 0x01 #define PCI_SUBCLASS_MEM_OTHER 0x80 // Class 06 - PCI_CLASS_BRIDGE_DEV #define PCI_SUBCLASS_BR_HOST 0x00 #define PCI_SUBCLASS_BR_ISA 0x01 #define PCI_SUBCLASS_BR_EISA 0x02 #define PCI_SUBCLASS_BR_MCA 0x03 #define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04 #define PCI_SUBCLASS_BR_PCMCIA 0x05 #define PCI_SUBCLASS_BR_NUBUS 0x06 #define PCI_SUBCLASS_BR_CARDBUS 0x07 #define PCI_SUBCLASS_BR_RACEWAY 0x08 #define PCI_SUBCLASS_BR_OTHER 0x80 // Class 07 - PCI_CLASS_SIMPLE_COMMS_CTLR // N.B. Sub Class 00 and 01 additional info in Interface byte #define PCI_SUBCLASS_COM_SERIAL 0x00 #define PCI_SUBCLASS_COM_PARALLEL 0x01 #define PCI_SUBCLASS_COM_MULTIPORT 0x02 #define PCI_SUBCLASS_COM_MODEM 0x03 #define PCI_SUBCLASS_COM_OTHER 0x80 // Class 08 - PCI_CLASS_BASE_SYSTEM_DEV // N.B. See Interface byte for additional info. #define PCI_SUBCLASS_SYS_INTERRUPT_CTLR 0x00 #define PCI_SUBCLASS_SYS_DMA_CTLR 0x01 #define PCI_SUBCLASS_SYS_SYSTEM_TIMER 0x02 #define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK 0x03 #define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR 0x04 #define PCI_SUBCLASS_SYS_OTHER 0x80 // Class 09 - PCI_CLASS_INPUT_DEV #define PCI_SUBCLASS_INP_KEYBOARD 0x00 #define PCI_SUBCLASS_INP_DIGITIZER 0x01 #define PCI_SUBCLASS_INP_MOUSE 0x02 #define PCI_SUBCLASS_INP_SCANNER 0x03 #define PCI_SUBCLASS_INP_GAMEPORT 0x04 #define PCI_SUBCLASS_INP_OTHER 0x80 // Class 0a - PCI_CLASS_DOCKING_STATION #define PCI_SUBCLASS_DOC_GENERIC 0x00 #define PCI_SUBCLASS_DOC_OTHER 0x80 // Class 0b - PCI_CLASS_PROCESSOR #define PCI_SUBCLASS_PROC_386 0x00 #define PCI_SUBCLASS_PROC_486 0x01 #define PCI_SUBCLASS_PROC_PENTIUM 0x02 #define PCI_SUBCLASS_PROC_ALPHA 0x10 #define PCI_SUBCLASS_PROC_POWERPC 0x20 #define PCI_SUBCLASS_PROC_COPROCESSOR 0x40 // Class 0c - PCI_CLASS_SERIAL_BUS_CTLR #define PCI_SUBCLASS_SB_IEEE1394 0x00 #define PCI_SUBCLASS_SB_ACCESS 0x01 #define PCI_SUBCLASS_SB_SSA 0x02 #define PCI_SUBCLASS_SB_USB 0x03 #define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04 #define PCI_SUBCLASS_SB_SMBUS 0x05 // Class 0d - PCI_CLASS_WIRELESS_CTLR #define PCI_SUBCLASS_WIRELESS_IRDA 0x00 #define PCI_SUBCLASS_WIRELESS_CON_IR 0x01 #define PCI_SUBCLASS_WIRELESS_RF 0x10 #define PCI_SUBCLASS_WIRELESS_OTHER 0x80 // Class 0e - PCI_CLASS_INTELLIGENT_IO_CTLR #define PCI_SUBCLASS_INTIO_I2O 0x00 // Class 0f - PCI_CLASS_SATELLITE_CTLR #define PCI_SUBCLASS_SAT_TV 0x01 #define PCI_SUBCLASS_SAT_AUDIO 0x02 #define PCI_SUBCLASS_SAT_VOICE 0x03 #define PCI_SUBCLASS_SAT_DATA 0x04 // Class 10 - PCI_CLASS_ENCRYPTION_DECRYPTION #define PCI_SUBCLASS_CRYPTO_NET_COMP 0x00 #define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10 #define PCI_SUBCLASS_CRYPTO_OTHER 0x80 // Class 11 - PCI_CLASS_DATA_ACQ_SIGNAL_PROC #define PCI_SUBCLASS_DASP_DPIO 0x00 #define PCI_SUBCLASS_DASP_OTHER 0x80 // end_ntndis // // Bit encodes for PCI_COMMON_CONFIG.u.type0.BaseAddresses // #define PCI_ADDRESS_IO_SPACE 0x00000001 // (ro) #define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006 // (ro) #define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008 // (ro) #define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc #define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0 #define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800 #define PCI_TYPE_32BIT 0 #define PCI_TYPE_20BIT 2 #define PCI_TYPE_64BIT 4 // // Bit encodes for PCI_COMMON_CONFIG.u.type0.ROMBaseAddresses // #define PCI_ROMADDRESS_ENABLED 0x00000001 // // Reference notes for PCI configuration fields: // // ro these field are read only. changes to these fields are ignored // // ro+ these field are intended to be read only and should be initialized // by the system to their proper values. However, driver may change // these settings. // // --- // // All resources comsumed by a PCI device start as unitialized // under NT. An uninitialized memory or I/O base address can be // determined by checking it's corrisponding enabled bit in the // PCI_COMMON_CONFIG.Command value. An InterruptLine is unitialized // if it contains the value of -1. // // end_wdm end_ntminiport // // Portable portion of HAL & HAL bus extender definitions for BUSHANDLER // BusData for installed PCI buses. // typedef VOID (*PciPin2Line) ( IN struct _BUS_HANDLER *BusHandler, IN struct _BUS_HANDLER *RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciData ); typedef VOID (*PciLine2Pin) ( IN struct _BUS_HANDLER *BusHandler, IN struct _BUS_HANDLER *RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciNewData, IN PPCI_COMMON_CONFIG PciOldData ); typedef VOID (*PciReadWriteConfig) ( IN struct _BUS_HANDLER *BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); #define PCI_DATA_TAG ' ICP' #define PCI_DATA_VERSION 1 typedef struct _PCIBUSDATA { ULONG Tag; ULONG Version; PciReadWriteConfig ReadConfig; PciReadWriteConfig WriteConfig; PciPin2Line Pin2Line; PciLine2Pin Line2Pin; PCI_SLOT_NUMBER ParentSlot; PVOID Reserved[4]; } PCIBUSDATA, *PPCIBUSDATA; typedef ULONG (*PCI_READ_WRITE_CONFIG)( IN PVOID Context, IN UCHAR BusOffset, IN ULONG Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); typedef VOID (*PCI_PIN_TO_LINE)( IN PVOID Context, IN PPCI_COMMON_CONFIG PciData ); typedef VOID (*PCI_LINE_TO_PIN)( IN PVOID Context, IN PPCI_COMMON_CONFIG PciNewData, IN PPCI_COMMON_CONFIG PciOldData ); typedef struct _PCI_BUS_INTERFACE_STANDARD { // // generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // standard PCI bus interfaces // PCI_READ_WRITE_CONFIG ReadConfig; PCI_READ_WRITE_CONFIG WriteConfig; PCI_PIN_TO_LINE PinToLine; PCI_LINE_TO_PIN LineToPin; } PCI_BUS_INTERFACE_STANDARD, *PPCI_BUS_INTERFACE_STANDARD; #define PCI_BUS_INTERFACE_STANDARD_VERSION 1 // begin_wdm #define PCI_DEVICE_PRESENT_INTERFACE_VERSION 1 // // Flags for PCI_DEVICE_PRESENCE_PARAMETERS // #define PCI_USE_SUBSYSTEM_IDS 0x00000001 #define PCI_USE_REVISION 0x00000002 // The following flags are only valid for IsDevicePresentEx #define PCI_USE_VENDEV_IDS 0x00000004 #define PCI_USE_CLASS_SUBCLASS 0x00000008 #define PCI_USE_PROGIF 0x00000010 #define PCI_USE_LOCAL_BUS 0x00000020 #define PCI_USE_LOCAL_DEVICE 0x00000040 // // Search parameters structure for IsDevicePresentEx // typedef struct _PCI_DEVICE_PRESENCE_PARAMETERS { ULONG Size; ULONG Flags; USHORT VendorID; USHORT DeviceID; UCHAR RevisionID; USHORT SubVendorID; USHORT SubSystemID; UCHAR BaseClass; UCHAR SubClass; UCHAR ProgIf; } PCI_DEVICE_PRESENCE_PARAMETERS, *PPCI_DEVICE_PRESENCE_PARAMETERS; typedef BOOLEAN (*PPCI_IS_DEVICE_PRESENT) ( IN USHORT VendorID, IN USHORT DeviceID, IN UCHAR RevisionID, IN USHORT SubVendorID, IN USHORT SubSystemID, IN ULONG Flags ); typedef BOOLEAN (*PPCI_IS_DEVICE_PRESENT_EX) ( IN PVOID Context, IN PPCI_DEVICE_PRESENCE_PARAMETERS Parameters ); typedef struct _PCI_DEVICE_PRESENT_INTERFACE { // // generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // pci device info // PPCI_IS_DEVICE_PRESENT IsDevicePresent; PPCI_IS_DEVICE_PRESENT_EX IsDevicePresentEx; } PCI_DEVICE_PRESENT_INTERFACE, *PPCI_DEVICE_PRESENT_INTERFACE; #ifdef POOL_TAGGING #define ExAllocatePool(a,b) ExAllocatePoolWithTag(a,b,' kdD') #define ExAllocatePoolWithQuota(a,b) ExAllocatePoolWithQuotaTag(a,b,' kdD') #endif extern POBJECT_TYPE *IoFileObjectType; extern POBJECT_TYPE *ExEventObjectType; extern POBJECT_TYPE *ExSemaphoreObjectType; // // Define exported ZwXxx routines to device drivers. // NTSYSAPI NTSTATUS NTAPI ZwCreateFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength ); NTSYSAPI NTSTATUS NTAPI ZwOpenFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions ); NTSYSAPI NTSTATUS NTAPI ZwQueryInformationFile( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass ); NTSYSAPI NTSTATUS NTAPI ZwSetInformationFile( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass ); NTSYSAPI NTSTATUS NTAPI ZwReadFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL ); NTSYSAPI NTSTATUS NTAPI ZwWriteFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL ); NTSYSAPI NTSTATUS NTAPI ZwClose( IN HANDLE Handle ); NTSYSAPI NTSTATUS NTAPI ZwCreateDirectoryObject( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwMakeTemporaryObject( IN HANDLE Handle ); NTSYSAPI NTSTATUS NTAPI ZwOpenSection( OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwMapViewOfSection( IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG ZeroBits, IN ULONG CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect ); NTSYSAPI NTSTATUS NTAPI ZwUnmapViewOfSection( IN HANDLE ProcessHandle, IN PVOID BaseAddress ); NTSYSAPI NTSTATUS NTAPI ZwSetInformationThread( IN HANDLE ThreadHandle, IN THREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength ); NTSYSAPI NTSTATUS NTAPI ZwCreateKey( OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL ); NTSYSAPI NTSTATUS NTAPI ZwOpenKey( OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwDeleteKey( IN HANDLE KeyHandle ); NTSYSAPI NTSTATUS NTAPI ZwDeleteValueKey( IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName ); NTSYSAPI NTSTATUS NTAPI ZwEnumerateKey( IN HANDLE KeyHandle, IN ULONG Index, IN KEY_INFORMATION_CLASS KeyInformationClass, OUT PVOID KeyInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwEnumerateValueKey( IN HANDLE KeyHandle, IN ULONG Index, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwFlushKey( IN HANDLE KeyHandle ); NTSYSAPI NTSTATUS NTAPI ZwQueryKey( IN HANDLE KeyHandle, IN KEY_INFORMATION_CLASS KeyInformationClass, OUT PVOID KeyInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwQueryValueKey( IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwSetValueKey( IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN ULONG TitleIndex OPTIONAL, IN ULONG Type, IN PVOID Data, IN ULONG DataSize ); NTSYSAPI NTSTATUS NTAPI ZwOpenSymbolicLinkObject( OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwQuerySymbolicLinkObject( IN HANDLE LinkHandle, IN OUT PUNICODE_STRING LinkTarget, OUT PULONG ReturnedLength OPTIONAL ); NTSTATUS ZwCreateTimer ( OUT PHANDLE TimerHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN TIMER_TYPE TimerType ); NTSTATUS ZwOpenTimer ( OUT PHANDLE TimerHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSTATUS ZwCancelTimer ( IN HANDLE TimerHandle, OUT PBOOLEAN CurrentState OPTIONAL ); NTSTATUS ZwSetTimer ( IN HANDLE TimerHandle, IN PLARGE_INTEGER DueTime, IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL, IN PVOID TimerContext OPTIONAL, IN BOOLEAN WakeTimer, IN LONG Period OPTIONAL, OUT PBOOLEAN PreviousState OPTIONAL ); #endif // _NTDDK_ ================================================ FILE: Bin/i386/APILib/wdm.h ================================================ /*++ BUILD Version: 0109 // Increment this if a change has global effects Copyright (c) Microsoft Corporation. All rights reserved. Module Name: wdm.h Abstract: This module defines the WDM types, constants, and functions that are exposed to device drivers. Revision History: --*/ #ifndef _WDMDDK_ #define _WDMDDK_ #define _NTDDK_ #ifndef RC_INVOKED #if _MSC_VER < 1300 #error Compiler version not supported by Windows DDK #endif #endif // RC_INVOKED #define NT_INCLUDED #define _CTYPE_DISABLE_MACROS #include #include #include #include #include // // Define types that are not exported. // typedef struct _ACCESS_STATE *PACCESS_STATE; typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT; typedef struct _EPROCESS *PEPROCESS; typedef struct _ETHREAD *PETHREAD; typedef struct _IO_TIMER *PIO_TIMER; typedef struct _KINTERRUPT *PKINTERRUPT; typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD; typedef struct _OBJECT_TYPE *POBJECT_TYPE; typedef struct _SECURITY_QUALITY_OF_SERVICE *PSECURITY_QUALITY_OF_SERVICE; #if defined(_M_AMD64) PKTHREAD NTAPI KeGetCurrentThread( VOID ); #endif // defined(_M_AMD64) #if defined(_M_IX86) PKTHREAD NTAPI KeGetCurrentThread(); #endif // defined(_M_IX86) #if defined(_M_IA64) // // Define base address for kernel and user space // #ifdef _WIN64 #define UREGION_INDEX 1 #define KREGION_INDEX 7 #define UADDRESS_BASE ((ULONG_PTR)UREGION_INDEX << 61) #define KADDRESS_BASE ((ULONG_PTR)KREGION_INDEX << 61) #else // !_WIN64 #define KADDRESS_BASE 0 #define UADDRESS_BASE 0 #endif // !_WIN64 // // Define Address of Processor Control Registers. // #define KIPCR ((ULONG_PTR)(KADDRESS_BASE + 0xffff0000)) // kernel address of first PCR // // Define Pointer to Processor Control Registers. // #define PCR ((volatile KPCR * const)KIPCR) PKTHREAD NTAPI KeGetCurrentThread(); #endif // defined(_M_IA64) #include #ifndef FAR #define FAR #endif #define PsGetCurrentProcess() IoGetCurrentProcess() #define PsGetCurrentThread() ((PETHREAD) (KeGetCurrentThread())) extern NTSYSAPI CCHAR KeNumberProcessors; // // Define alignment macros to align structure sizes and pointers up and down. // #define ALIGN_DOWN(length, type) \ ((ULONG)(length) & ~(sizeof(type) - 1)) #define ALIGN_UP(length, type) \ (ALIGN_DOWN(((ULONG)(length) + sizeof(type) - 1), type)) #define ALIGN_DOWN_POINTER(address, type) \ ((PVOID)((ULONG_PTR)(address) & ~((ULONG_PTR)sizeof(type) - 1))) #define ALIGN_UP_POINTER(address, type) \ (ALIGN_DOWN_POINTER(((ULONG_PTR)(address) + sizeof(type) - 1), type)) #define POOL_TAGGING 1 #ifndef DBG #define DBG 0 #endif #if DBG #define IF_DEBUG if (TRUE) #else #define IF_DEBUG if (FALSE) #endif #if DEVL extern ULONG NtGlobalFlag; #define IF_NTOS_DEBUG( FlagName ) \ if (NtGlobalFlag & (FLG_ ## FlagName)) #else #define IF_NTOS_DEBUG( FlagName ) if (FALSE) #endif // // Kernel definitions that need to be here for forward reference purposes // // // Processor modes. // typedef CCHAR KPROCESSOR_MODE; typedef enum _MODE { KernelMode, UserMode, MaximumMode } MODE; // // APC function types // // // Put in an empty definition for the KAPC so that the // routines can reference it before it is declared. // struct _KAPC; typedef VOID (*PKNORMAL_ROUTINE) ( IN PVOID NormalContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); typedef VOID (*PKKERNEL_ROUTINE) ( IN struct _KAPC *Apc, IN OUT PKNORMAL_ROUTINE *NormalRoutine, IN OUT PVOID *NormalContext, IN OUT PVOID *SystemArgument1, IN OUT PVOID *SystemArgument2 ); typedef VOID (*PKRUNDOWN_ROUTINE) ( IN struct _KAPC *Apc ); typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE) ( IN PVOID SynchronizeContext ); typedef BOOLEAN (*PKTRANSFER_ROUTINE) ( VOID ); // // // Asynchronous Procedure Call (APC) object // // typedef struct _KAPC { CSHORT Type; CSHORT Size; ULONG Spare0; struct _KTHREAD *Thread; LIST_ENTRY ApcListEntry; PKKERNEL_ROUTINE KernelRoutine; PKRUNDOWN_ROUTINE RundownRoutine; PKNORMAL_ROUTINE NormalRoutine; PVOID NormalContext; // // N.B. The following two members MUST be together. // PVOID SystemArgument1; PVOID SystemArgument2; CCHAR ApcStateIndex; KPROCESSOR_MODE ApcMode; BOOLEAN Inserted; } KAPC, *PKAPC, *RESTRICTED_POINTER PRKAPC; // // DPC routine // struct _KDPC; typedef VOID (*PKDEFERRED_ROUTINE) ( IN struct _KDPC *Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); // // Define DPC importance. // // LowImportance - Queue DPC at end of target DPC queue. // MediumImportance - Queue DPC at end of target DPC queue. // HighImportance - Queue DPC at front of target DPC DPC queue. // // If there is currently a DPC active on the target processor, or a DPC // interrupt has already been requested on the target processor when a // DPC is queued, then no further action is necessary. The DPC will be // executed on the target processor when its queue entry is processed. // // If there is not a DPC active on the target processor and a DPC interrupt // has not been requested on the target processor, then the exact treatment // of the DPC is dependent on whether the host system is a UP system or an // MP system. // // UP system. // // If the DPC is of medium or high importance, the current DPC queue depth // is greater than the maximum target depth, or current DPC request rate is // less the minimum target rate, then a DPC interrupt is requested on the // host processor and the DPC will be processed when the interrupt occurs. // Otherwise, no DPC interupt is requested and the DPC execution will be // delayed until the DPC queue depth is greater that the target depth or the // minimum DPC rate is less than the target rate. // // MP system. // // If the DPC is being queued to another processor and the depth of the DPC // queue on the target processor is greater than the maximum target depth or // the DPC is of high importance, then a DPC interrupt is requested on the // target processor and the DPC will be processed when the interrupt occurs. // Otherwise, the DPC execution will be delayed on the target processor until // the DPC queue depth on the target processor is greater that the maximum // target depth or the minimum DPC rate on the target processor is less than // the target mimimum rate. // // If the DPC is being queued to the current processor and the DPC is not of // low importance, the current DPC queue depth is greater than the maximum // target depth, or the minimum DPC rate is less than the minimum target rate, // then a DPC interrupt is request on the current processor and the DPV will // be processed whne the interrupt occurs. Otherwise, no DPC interupt is // requested and the DPC execution will be delayed until the DPC queue depth // is greater that the target depth or the minimum DPC rate is less than the // target rate. // typedef enum _KDPC_IMPORTANCE { LowImportance, MediumImportance, HighImportance } KDPC_IMPORTANCE; // // Deferred Procedure Call (DPC) object // typedef struct _KDPC { CSHORT Type; UCHAR Number; UCHAR Importance; LIST_ENTRY DpcListEntry; PKDEFERRED_ROUTINE DeferredRoutine; PVOID DeferredContext; PVOID SystemArgument1; PVOID SystemArgument2; PULONG_PTR Lock; } KDPC, *PKDPC, *RESTRICTED_POINTER PRKDPC; // // Interprocessor interrupt worker routine function prototype. // typedef PVOID PKIPI_CONTEXT; typedef VOID (*PKIPI_WORKER)( IN PKIPI_CONTEXT PacketContext, IN PVOID Parameter1, IN PVOID Parameter2, IN PVOID Parameter3 ); // // Define interprocessor interrupt performance counters. // typedef struct _KIPI_COUNTS { ULONG Freeze; ULONG Packet; ULONG DPC; ULONG APC; ULONG FlushSingleTb; ULONG FlushMultipleTb; ULONG FlushEntireTb; ULONG GenericCall; ULONG ChangeColor; ULONG SweepDcache; ULONG SweepIcache; ULONG SweepIcacheRange; ULONG FlushIoBuffers; ULONG GratuitousDPC; } KIPI_COUNTS, *PKIPI_COUNTS; #if defined(NT_UP) #define HOT_STATISTIC(a) a #else #define HOT_STATISTIC(a) (KeGetCurrentPrcb()->a) #endif // // I/O system definitions. // // Define a Memory Descriptor List (MDL) // // An MDL describes pages in a virtual buffer in terms of physical pages. The // pages associated with the buffer are described in an array that is allocated // just after the MDL header structure itself. In a future compiler this will // be placed at: // // ULONG Pages[]; // // Until this declaration is permitted, however, one simply calculates the // base of the array by adding one to the base MDL pointer: // // Pages = (PULONG) (Mdl + 1); // // Notice that while in the context of the subject thread, the base virtual // address of a buffer mapped by an MDL may be referenced using the following: // // Mdl->StartVa | Mdl->ByteOffset // typedef struct _MDL { struct _MDL *Next; CSHORT Size; CSHORT MdlFlags; struct _EPROCESS *Process; PVOID MappedSystemVa; PVOID StartVa; ULONG ByteCount; ULONG ByteOffset; } MDL, *PMDL; #define MDL_MAPPED_TO_SYSTEM_VA 0x0001 #define MDL_PAGES_LOCKED 0x0002 #define MDL_SOURCE_IS_NONPAGED_POOL 0x0004 #define MDL_ALLOCATED_FIXED_SIZE 0x0008 #define MDL_PARTIAL 0x0010 #define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020 #define MDL_IO_PAGE_READ 0x0040 #define MDL_WRITE_OPERATION 0x0080 #define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100 #define MDL_FREE_EXTRA_PTES 0x0200 #define MDL_IO_SPACE 0x0800 #define MDL_NETWORK_HEADER 0x1000 #define MDL_MAPPING_CAN_FAIL 0x2000 #define MDL_ALLOCATED_MUST_SUCCEED 0x4000 #define MDL_MAPPING_FLAGS (MDL_MAPPED_TO_SYSTEM_VA | \ MDL_PAGES_LOCKED | \ MDL_SOURCE_IS_NONPAGED_POOL | \ MDL_PARTIAL_HAS_BEEN_MAPPED | \ MDL_PARENT_MAPPED_SYSTEM_VA | \ MDL_SYSTEM_VA | \ MDL_IO_SPACE ) // // switch to DBG when appropriate // #if DBG #define PAGED_CODE() \ { if (KeGetCurrentIrql() > APC_LEVEL) { \ KdPrint(( "EX: Pageable code called at IRQL %d\n", KeGetCurrentIrql() )); \ ASSERT(FALSE); \ } \ } #else #define PAGED_CODE() NOP_FUNCTION; #endif #define NTKERNELAPI DECLSPEC_IMPORT #define NTHALAPI DECLSPEC_IMPORT // // Common dispatcher object header // // N.B. The size field contains the number of dwords in the structure. // typedef struct _DISPATCHER_HEADER { UCHAR Type; UCHAR Absolute; UCHAR Size; UCHAR Inserted; LONG SignalState; LIST_ENTRY WaitListHead; } DISPATCHER_HEADER; // // Event object // typedef struct _KEVENT { DISPATCHER_HEADER Header; } KEVENT, *PKEVENT, *RESTRICTED_POINTER PRKEVENT; // // Timer object // typedef struct _KTIMER { DISPATCHER_HEADER Header; ULARGE_INTEGER DueTime; LIST_ENTRY TimerListEntry; struct _KDPC *Dpc; LONG Period; } KTIMER, *PKTIMER, *RESTRICTED_POINTER PRKTIMER; #ifdef _X86_ // // Disable these two pragmas that evaluate to "sti" "cli" on x86 so that driver // writers to not leave them inadvertantly in their code. // #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 // build with /Od don't get weird errors ! #ifdef _M_IX86 #pragma function(_enable) #pragma function(_disable) #endif #if _MSC_VER >= 1200 #pragma warning(pop) #else #pragma warning(default:4164) // reenable C4164 warning #endif #endif #endif #endif // _X86_ #if defined(_AMD64_) #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // Define function to get the caller's EFLAGs value. // #define GetCallersEflags() __getcallerseflags() unsigned __int32 __getcallerseflags ( VOID ); #pragma intrinsic(__getcallerseflags) // // Define function to read the value of the time stamp counter // #define ReadTimeStampCounter() __rdtsc() ULONG64 __rdtsc ( VOID ); #pragma intrinsic(__rdtsc) // // Define functions to move strings or bytes, words, dwords, and qwords. // VOID __movsb ( IN PUCHAR Destination, IN PUCHAR Source, IN ULONG Count ); VOID __movsw ( IN PUSHORT Destination, IN PUSHORT Source, IN ULONG Count ); VOID __movsd ( IN PULONG Destination, IN PULONG Source, IN ULONG Count ); VOID __movsq ( IN PULONGLONG Destination, IN PULONGLONG Source, IN ULONG Count ); #pragma intrinsic(__movsb) #pragma intrinsic(__movsw) #pragma intrinsic(__movsd) #pragma intrinsic(__movsq) // // Define functions to capture the high 64-bits of a 128-bit multiply. // #define MultiplyHigh __mulh #define UnsignedMultiplyHigh __umulh LONGLONG MultiplyHigh ( IN LONGLONG Multiplier, IN LONGLONG Multiplicand ); ULONGLONG UnsignedMultiplyHigh ( IN ULONGLONG Multiplier, IN ULONGLONG Multiplicand ); #pragma intrinsic(__mulh) #pragma intrinsic(__umulh) // // Define functions to read and write the uer TEB and the system PCR/PRCB. // UCHAR __readgsbyte ( IN ULONG Offset ); USHORT __readgsword ( IN ULONG Offset ); ULONG __readgsdword ( IN ULONG Offset ); ULONG64 __readgsqword ( IN ULONG Offset ); VOID __writegsbyte ( IN ULONG Offset, IN UCHAR Data ); VOID __writegsword ( IN ULONG Offset, IN USHORT Data ); VOID __writegsdword ( IN ULONG Offset, IN ULONG Data ); VOID __writegsqword ( IN ULONG Offset, IN ULONG64 Data ); #pragma intrinsic(__readgsbyte) #pragma intrinsic(__readgsword) #pragma intrinsic(__readgsdword) #pragma intrinsic(__readgsqword) #pragma intrinsic(__writegsbyte) #pragma intrinsic(__writegsword) #pragma intrinsic(__writegsdword) #pragma intrinsic(__writegsqword) #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) #endif // _AMD64_ #ifdef _IA64_ #endif // _IA64_ // // Define an access token from a programmer's viewpoint. The structure is // completely opaque and the programer is only allowed to have pointers // to tokens. // typedef PVOID PACCESS_TOKEN; // // Pointer to a SECURITY_DESCRIPTOR opaque data type. // typedef PVOID PSECURITY_DESCRIPTOR; // // Define a pointer to the Security ID data type (an opaque data type) // typedef PVOID PSID; typedef ULONG ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; // // The following are masks for the predefined standard access types // #define DELETE (0x00010000L) #define READ_CONTROL (0x00020000L) #define WRITE_DAC (0x00040000L) #define WRITE_OWNER (0x00080000L) #define SYNCHRONIZE (0x00100000L) #define STANDARD_RIGHTS_REQUIRED (0x000F0000L) #define STANDARD_RIGHTS_READ (READ_CONTROL) #define STANDARD_RIGHTS_WRITE (READ_CONTROL) #define STANDARD_RIGHTS_EXECUTE (READ_CONTROL) #define STANDARD_RIGHTS_ALL (0x001F0000L) #define SPECIFIC_RIGHTS_ALL (0x0000FFFFL) // // AccessSystemAcl access type // #define ACCESS_SYSTEM_SECURITY (0x01000000L) // // MaximumAllowed access type // #define MAXIMUM_ALLOWED (0x02000000L) // // These are the generic rights. // #define GENERIC_READ (0x80000000L) #define GENERIC_WRITE (0x40000000L) #define GENERIC_EXECUTE (0x20000000L) #define GENERIC_ALL (0x10000000L) // // Define the generic mapping array. This is used to denote the // mapping of each generic access right to a specific access mask. // typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead; ACCESS_MASK GenericWrite; ACCESS_MASK GenericExecute; ACCESS_MASK GenericAll; } GENERIC_MAPPING; typedef GENERIC_MAPPING *PGENERIC_MAPPING; //////////////////////////////////////////////////////////////////////// // // // LUID_AND_ATTRIBUTES // // // //////////////////////////////////////////////////////////////////////// // // #include typedef struct _LUID_AND_ATTRIBUTES { LUID Luid; ULONG Attributes; } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES; typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; #include // This is the *current* ACL revision #define ACL_REVISION (2) #define ACL_REVISION_DS (4) // This is the history of ACL revisions. Add a new one whenever // ACL_REVISION is updated #define ACL_REVISION1 (1) #define MIN_ACL_REVISION ACL_REVISION2 #define ACL_REVISION2 (2) #define ACL_REVISION3 (3) #define ACL_REVISION4 (4) #define MAX_ACL_REVISION ACL_REVISION4 typedef struct _ACL { UCHAR AclRevision; UCHAR Sbz1; USHORT AclSize; USHORT AceCount; USHORT Sbz2; } ACL; typedef ACL *PACL; // // Current security descriptor revision value // #define SECURITY_DESCRIPTOR_REVISION (1) #define SECURITY_DESCRIPTOR_REVISION1 (1) // // Privilege attributes // #define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L) #define SE_PRIVILEGE_ENABLED (0x00000002L) #define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L) // // Privilege Set Control flags // #define PRIVILEGE_SET_ALL_NECESSARY (1) // // Privilege Set - This is defined for a privilege set of one. // If more than one privilege is needed, then this structure // will need to be allocated with more space. // // Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET // structure (defined in se.h) // typedef struct _PRIVILEGE_SET { ULONG PrivilegeCount; ULONG Control; LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; } PRIVILEGE_SET, * PPRIVILEGE_SET; // // These must be converted to LUIDs before use. // #define SE_MIN_WELL_KNOWN_PRIVILEGE (2L) #define SE_CREATE_TOKEN_PRIVILEGE (2L) #define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L) #define SE_LOCK_MEMORY_PRIVILEGE (4L) #define SE_INCREASE_QUOTA_PRIVILEGE (5L) #define SE_MACHINE_ACCOUNT_PRIVILEGE (6L) #define SE_TCB_PRIVILEGE (7L) #define SE_SECURITY_PRIVILEGE (8L) #define SE_TAKE_OWNERSHIP_PRIVILEGE (9L) #define SE_LOAD_DRIVER_PRIVILEGE (10L) #define SE_SYSTEM_PROFILE_PRIVILEGE (11L) #define SE_SYSTEMTIME_PRIVILEGE (12L) #define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L) #define SE_INC_BASE_PRIORITY_PRIVILEGE (14L) #define SE_CREATE_PAGEFILE_PRIVILEGE (15L) #define SE_CREATE_PERMANENT_PRIVILEGE (16L) #define SE_BACKUP_PRIVILEGE (17L) #define SE_RESTORE_PRIVILEGE (18L) #define SE_SHUTDOWN_PRIVILEGE (19L) #define SE_DEBUG_PRIVILEGE (20L) #define SE_AUDIT_PRIVILEGE (21L) #define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L) #define SE_CHANGE_NOTIFY_PRIVILEGE (23L) #define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L) #define SE_UNDOCK_PRIVILEGE (25L) #define SE_SYNC_AGENT_PRIVILEGE (26L) #define SE_ENABLE_DELEGATION_PRIVILEGE (27L) #define SE_MANAGE_VOLUME_PRIVILEGE (28L) #define SE_MAX_WELL_KNOWN_PRIVILEGE (SE_MANAGE_VOLUME_PRIVILEGE) // // Impersonation Level // // Impersonation level is represented by a pair of bits in Windows. // If a new impersonation level is added or lowest value is changed from // 0 to something else, fix the Windows CreateFile call. // typedef enum _SECURITY_IMPERSONATION_LEVEL { SecurityAnonymous, SecurityIdentification, SecurityImpersonation, SecurityDelegation } SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL; #define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation #define SECURITY_MIN_IMPERSONATION_LEVEL SecurityAnonymous #define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation #define VALID_IMPERSONATION_LEVEL(L) (((L) >= SECURITY_MIN_IMPERSONATION_LEVEL) && ((L) <= SECURITY_MAX_IMPERSONATION_LEVEL)) // // Security Tracking Mode // #define SECURITY_DYNAMIC_TRACKING (TRUE) #define SECURITY_STATIC_TRACKING (FALSE) typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, * PSECURITY_CONTEXT_TRACKING_MODE; // // Quality Of Service // typedef struct _SECURITY_QUALITY_OF_SERVICE { ULONG Length; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; BOOLEAN EffectiveOnly; } SECURITY_QUALITY_OF_SERVICE, * PSECURITY_QUALITY_OF_SERVICE; // // Used to represent information related to a thread impersonation // typedef struct _SE_IMPERSONATION_STATE { PACCESS_TOKEN Token; BOOLEAN CopyOnOpen; BOOLEAN EffectiveOnly; SECURITY_IMPERSONATION_LEVEL Level; } SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE; typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION; #define OWNER_SECURITY_INFORMATION (0x00000001L) #define GROUP_SECURITY_INFORMATION (0x00000002L) #define DACL_SECURITY_INFORMATION (0x00000004L) #define SACL_SECURITY_INFORMATION (0x00000008L) #define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L) #define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L) #define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L) #define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L) #define LOW_PRIORITY 0 // Lowest thread priority level #define LOW_REALTIME_PRIORITY 16 // Lowest realtime priority level #define HIGH_PRIORITY 31 // Highest thread priority level #define MAXIMUM_PRIORITY 32 // Number of thread priority levels #define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of wait objects #define MAXIMUM_SUSPEND_COUNT MAXCHAR // Maximum times thread can be suspended // // Define system time structure. // typedef struct _KSYSTEM_TIME { ULONG LowPart; LONG High1Time; LONG High2Time; } KSYSTEM_TIME, *PKSYSTEM_TIME; // // Thread priority // typedef LONG KPRIORITY; // // Spin Lock // typedef ULONG_PTR KSPIN_LOCK; typedef KSPIN_LOCK *PKSPIN_LOCK; // // Interrupt routine (first level dispatch) // typedef VOID (*PKINTERRUPT_ROUTINE) ( VOID ); // // Profile source types // typedef enum _KPROFILE_SOURCE { ProfileTime, ProfileAlignmentFixup, ProfileTotalIssues, ProfilePipelineDry, ProfileLoadInstructions, ProfilePipelineFrozen, ProfileBranchInstructions, ProfileTotalNonissues, ProfileDcacheMisses, ProfileIcacheMisses, ProfileCacheMisses, ProfileBranchMispredictions, ProfileStoreInstructions, ProfileFpInstructions, ProfileIntegerInstructions, Profile2Issue, Profile3Issue, Profile4Issue, ProfileSpecialInstructions, ProfileTotalCycles, ProfileIcacheIssues, ProfileDcacheAccesses, ProfileMemoryBarrierCycles, ProfileLoadLinkedIssues, ProfileMaximum } KPROFILE_SOURCE; // // for move macros // #ifdef _MAC #ifndef _INC_STRING #include #endif /* _INC_STRING */ #else #include #endif // _MAC #ifndef _SLIST_HEADER_ #define _SLIST_HEADER_ #define SLIST_ENTRY SINGLE_LIST_ENTRY #define _SLIST_ENTRY _SINGLE_LIST_ENTRY #define PSLIST_ENTRY PSINGLE_LIST_ENTRY #if defined(_WIN64) typedef struct DECLSPEC_ALIGN(16) _SLIST_HEADER { ULONGLONG Alignment; ULONGLONG Region; } SLIST_HEADER; typedef struct _SLIST_HEADER *PSLIST_HEADER; #else typedef union _SLIST_HEADER { ULONGLONG Alignment; struct { SLIST_ENTRY Next; USHORT Depth; USHORT Sequence; }; } SLIST_HEADER, *PSLIST_HEADER; #endif #endif // // If debugging support enabled, define an ASSERT macro that works. Otherwise // define the ASSERT macro to expand to an empty expression. // // The ASSERT macro has been updated to be an expression instead of a statement. // #if DBG NTSYSAPI VOID NTAPI RtlAssert( PVOID FailedAssertion, PVOID FileName, ULONG LineNumber, PCHAR Message ); #define ASSERT( exp ) \ ((!(exp)) ? \ (RtlAssert( #exp, __FILE__, __LINE__, NULL ),FALSE) : \ TRUE) #define ASSERTMSG( msg, exp ) \ ((!(exp)) ? \ (RtlAssert( #exp, __FILE__, __LINE__, msg ),FALSE) : \ TRUE) #define RTL_SOFT_ASSERT(_exp) \ ((!(_exp)) ? \ (DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #_exp),FALSE) : \ TRUE) #define RTL_SOFT_ASSERTMSG(_msg, _exp) \ ((!(_exp)) ? \ (DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #_exp, (_msg)),FALSE) : \ TRUE) #define RTL_VERIFY( exp ) ASSERT(exp) #define RTL_VERIFYMSG( msg, exp ) ASSERT(msg, exp) #define RTL_SOFT_VERIFY(_exp) RTL_SOFT_ASSERT(_exp) #define RTL_SOFT_VERIFYMSG(_msg, _exp) RTL_SOFT_ASSERTMSG(_msg, _exp) #else #define ASSERT( exp ) ((void) 0) #define ASSERTMSG( msg, exp ) ((void) 0) #define RTL_SOFT_ASSERT(_exp) ((void) 0) #define RTL_SOFT_ASSERTMSG(_msg, _exp) ((void) 0) #define RTL_VERIFY( exp ) ((exp) ? TRUE : FALSE) #define RTL_VERIFYMSG( msg, exp ) ((exp) ? TRUE : FALSE) #define RTL_SOFT_VERIFY(_exp) ((_exp) ? TRUE : FALSE) #define RTL_SOFT_VERIFYMSG(msg, _exp) ((_exp) ? TRUE : FALSE) #endif // DBG // // Doubly-linked list manipulation routines. // // // VOID // InitializeListHead32( // PLIST_ENTRY32 ListHead // ); // #define InitializeListHead32(ListHead) (\ (ListHead)->Flink = (ListHead)->Blink = PtrToUlong((ListHead))) #if !defined(MIDL_PASS) && !defined(SORTPP_PASS) VOID FORCEINLINE InitializeListHead( IN PLIST_ENTRY ListHead ) { ListHead->Flink = ListHead->Blink = ListHead; } // // BOOLEAN // IsListEmpty( // PLIST_ENTRY ListHead // ); // #define IsListEmpty(ListHead) \ ((ListHead)->Flink == (ListHead)) VOID FORCEINLINE RemoveEntryList( IN PLIST_ENTRY Entry ) { PLIST_ENTRY Blink; PLIST_ENTRY Flink; Flink = Entry->Flink; Blink = Entry->Blink; Blink->Flink = Flink; Flink->Blink = Blink; } PLIST_ENTRY FORCEINLINE RemoveHeadList( IN PLIST_ENTRY ListHead ) { PLIST_ENTRY Flink; PLIST_ENTRY Entry; Entry = ListHead->Flink; Flink = Entry->Flink; ListHead->Flink = Flink; Flink->Blink = ListHead; return Entry; } PLIST_ENTRY FORCEINLINE RemoveTailList( IN PLIST_ENTRY ListHead ) { PLIST_ENTRY Blink; PLIST_ENTRY Entry; Entry = ListHead->Blink; Blink = Entry->Blink; ListHead->Blink = Blink; Blink->Flink = ListHead; return Entry; } VOID FORCEINLINE InsertTailList( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY Entry ) { PLIST_ENTRY Blink; Blink = ListHead->Blink; Entry->Flink = ListHead; Entry->Blink = Blink; Blink->Flink = Entry; ListHead->Blink = Entry; } VOID FORCEINLINE InsertHeadList( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY Entry ) { PLIST_ENTRY Flink; Flink = ListHead->Flink; Entry->Flink = Flink; Entry->Blink = ListHead; Flink->Blink = Entry; ListHead->Flink = Entry; } // // // PSINGLE_LIST_ENTRY // PopEntryList( // PSINGLE_LIST_ENTRY ListHead // ); // #define PopEntryList(ListHead) \ (ListHead)->Next;\ {\ PSINGLE_LIST_ENTRY FirstEntry;\ FirstEntry = (ListHead)->Next;\ if (FirstEntry != NULL) { \ (ListHead)->Next = FirstEntry->Next;\ } \ } // // VOID // PushEntryList( // PSINGLE_LIST_ENTRY ListHead, // PSINGLE_LIST_ENTRY Entry // ); // #define PushEntryList(ListHead,Entry) \ (Entry)->Next = (ListHead)->Next; \ (ListHead)->Next = (Entry) #endif // !MIDL_PASS // // Subroutines for dealing with the Registry // typedef NTSTATUS (NTAPI * PRTL_QUERY_REGISTRY_ROUTINE)( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext ); typedef struct _RTL_QUERY_REGISTRY_TABLE { PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine; ULONG Flags; PWSTR Name; PVOID EntryContext; ULONG DefaultType; PVOID DefaultData; ULONG DefaultLength; } RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE; // // The following flags specify how the Name field of a RTL_QUERY_REGISTRY_TABLE // entry is interpreted. A NULL name indicates the end of the table. // #define RTL_QUERY_REGISTRY_SUBKEY 0x00000001 // Name is a subkey and remainder of // table or until next subkey are value // names for that subkey to look at. #define RTL_QUERY_REGISTRY_TOPKEY 0x00000002 // Reset current key to original key for // this and all following table entries. #define RTL_QUERY_REGISTRY_REQUIRED 0x00000004 // Fail if no match found for this table // entry. #define RTL_QUERY_REGISTRY_NOVALUE 0x00000008 // Used to mark a table entry that has no // value name, just wants a call out, not // an enumeration of all values. #define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010 // Used to suppress the expansion of // REG_MULTI_SZ into multiple callouts or // to prevent the expansion of environment // variable values in REG_EXPAND_SZ #define RTL_QUERY_REGISTRY_DIRECT 0x00000020 // QueryRoutine field ignored. EntryContext // field points to location to store value. // For null terminated strings, EntryContext // points to UNICODE_STRING structure that // that describes maximum size of buffer. // If .Buffer field is NULL then a buffer is // allocated. // #define RTL_QUERY_REGISTRY_DELETE 0x00000040 // Used to delete value keys after they // are queried. NTSYSAPI NTSTATUS NTAPI RtlQueryRegistryValues( IN ULONG RelativeTo, IN PCWSTR Path, IN PRTL_QUERY_REGISTRY_TABLE QueryTable, IN PVOID Context, IN PVOID Environment OPTIONAL ); NTSYSAPI NTSTATUS NTAPI RtlWriteRegistryValue( IN ULONG RelativeTo, IN PCWSTR Path, IN PCWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength ); NTSYSAPI NTSTATUS NTAPI RtlDeleteRegistryValue( IN ULONG RelativeTo, IN PCWSTR Path, IN PCWSTR ValueName ); // // The following values for the RelativeTo parameter determine what the // Path parameter to RtlQueryRegistryValues is relative to. // #define RTL_REGISTRY_ABSOLUTE 0 // Path is a full path #define RTL_REGISTRY_SERVICES 1 // \Registry\Machine\System\CurrentControlSet\Services #define RTL_REGISTRY_CONTROL 2 // \Registry\Machine\System\CurrentControlSet\Control #define RTL_REGISTRY_WINDOWS_NT 3 // \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion #define RTL_REGISTRY_DEVICEMAP 4 // \Registry\Machine\Hardware\DeviceMap #define RTL_REGISTRY_USER 5 // \Registry\User\CurrentUser #define RTL_REGISTRY_MAXIMUM 6 #define RTL_REGISTRY_HANDLE 0x40000000 // Low order bits are registry handle #define RTL_REGISTRY_OPTIONAL 0x80000000 // Indicates the key node is optional NTSYSAPI NTSTATUS NTAPI RtlIntegerToUnicodeString ( ULONG Value, ULONG Base, PUNICODE_STRING String ); NTSYSAPI NTSTATUS NTAPI RtlInt64ToUnicodeString ( IN ULONGLONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String ); #ifdef _WIN64 #define RtlIntPtrToUnicodeString(Value, Base, String) RtlInt64ToUnicodeString(Value, Base, String) #else #define RtlIntPtrToUnicodeString(Value, Base, String) RtlIntegerToUnicodeString(Value, Base, String) #endif NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToInteger ( PCUNICODE_STRING String, ULONG Base, PULONG Value ); // // String manipulation routines // #ifdef _NTSYSTEM_ #define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag #define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag #else #define NLS_MB_CODE_PAGE_TAG (*NlsMbCodePageTag) #define NLS_MB_OEM_CODE_PAGE_TAG (*NlsMbOemCodePageTag) #endif // _NTSYSTEM_ extern BOOLEAN NLS_MB_CODE_PAGE_TAG; // TRUE -> Multibyte CP, FALSE -> Singlebyte extern BOOLEAN NLS_MB_OEM_CODE_PAGE_TAG; // TRUE -> Multibyte CP, FALSE -> Singlebyte NTSYSAPI VOID NTAPI RtlInitString( PSTRING DestinationString, PCSZ SourceString ); NTSYSAPI VOID NTAPI RtlInitAnsiString( PANSI_STRING DestinationString, PCSZ SourceString ); NTSYSAPI VOID NTAPI RtlInitUnicodeString( PUNICODE_STRING DestinationString, PCWSTR SourceString ); #define RtlInitEmptyUnicodeString(_ucStr,_buf,_bufSize) \ ((_ucStr)->Buffer = (_buf), \ (_ucStr)->Length = 0, \ (_ucStr)->MaximumLength = (USHORT)(_bufSize)) // // NLS String functions // NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString( PUNICODE_STRING DestinationString, PCANSI_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString( PANSI_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSYSAPI LONG NTAPI RtlCompareUnicodeString( PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInSensitive ); NTSYSAPI BOOLEAN NTAPI RtlEqualUnicodeString( const UNICODE_STRING *String1, const UNICODE_STRING *String2, BOOLEAN CaseInSensitive ); #define HASH_STRING_ALGORITHM_DEFAULT (0) #define HASH_STRING_ALGORITHM_X65599 (1) #define HASH_STRING_ALGORITHM_INVALID (0xffffffff) NTSYSAPI NTSTATUS NTAPI RtlHashUnicodeString( IN const UNICODE_STRING *String, IN BOOLEAN CaseInSensitive, IN ULONG HashAlgorithm, OUT PULONG HashValue ); NTSYSAPI VOID NTAPI RtlCopyUnicodeString( PUNICODE_STRING DestinationString, PCUNICODE_STRING SourceString ); NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeStringToString ( PUNICODE_STRING Destination, PCUNICODE_STRING Source ); NTSYSAPI NTSTATUS NTAPI RtlAppendUnicodeToString ( PUNICODE_STRING Destination, PCWSTR Source ); NTSYSAPI VOID NTAPI RtlFreeUnicodeString( PUNICODE_STRING UnicodeString ); NTSYSAPI VOID NTAPI RtlFreeAnsiString( PANSI_STRING AnsiString ); NTSYSAPI ULONG NTAPI RtlxUnicodeStringToAnsiSize( PCUNICODE_STRING UnicodeString ); // // NTSYSAPI // ULONG // NTAPI // RtlUnicodeStringToAnsiSize( // PUNICODE_STRING UnicodeString // ); // #define RtlUnicodeStringToAnsiSize(STRING) ( \ NLS_MB_CODE_PAGE_TAG ? \ RtlxUnicodeStringToAnsiSize(STRING) : \ ((STRING)->Length + sizeof(UNICODE_NULL)) / sizeof(WCHAR) \ ) NTSYSAPI ULONG NTAPI RtlxAnsiStringToUnicodeSize( PCANSI_STRING AnsiString ); // // NTSYSAPI // ULONG // NTAPI // RtlAnsiStringToUnicodeSize( // PANSI_STRING AnsiString // ); // #define RtlAnsiStringToUnicodeSize(STRING) ( \ NLS_MB_CODE_PAGE_TAG ? \ RtlxAnsiStringToUnicodeSize(STRING) : \ ((STRING)->Length + sizeof(ANSI_NULL)) * sizeof(WCHAR) \ ) #include #ifndef DEFINE_GUIDEX #define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name #endif // !defined(DEFINE_GUIDEX) #ifndef STATICGUIDOF #define STATICGUIDOF(guid) STATIC_##guid #endif // !defined(STATICGUIDOF) #ifndef __IID_ALIGNED__ #define __IID_ALIGNED__ #ifdef __cplusplus inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2) { return ((*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) && (*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1))); } #else // !__cplusplus #define IsEqualGUIDAligned(guid1, guid2) \ ((*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && (*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1))) #endif // !__cplusplus #endif // !__IID_ALIGNED__ NTSYSAPI NTSTATUS NTAPI RtlStringFromGUID( IN REFGUID Guid, OUT PUNICODE_STRING GuidString ); NTSYSAPI NTSTATUS NTAPI RtlGUIDFromString( IN PUNICODE_STRING GuidString, OUT GUID* Guid ); // // Fast primitives to compare, move, and zero memory // NTSYSAPI SIZE_T NTAPI RtlCompareMemory ( const VOID *Source1, const VOID *Source2, SIZE_T Length ); #if defined(_M_AMD64) || defined(_M_IA64) #define RtlEqualMemory(Source1, Source2, Length) \ ((Length) == RtlCompareMemory(Source1, Source2, Length)) NTSYSAPI VOID NTAPI RtlCopyMemory ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); #if !defined(_M_AMD64) NTSYSAPI VOID NTAPI RtlCopyMemory32 ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length ); #endif NTSYSAPI VOID NTAPI RtlMoveMemory ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); NTSYSAPI VOID NTAPI RtlFillMemory ( VOID UNALIGNED *Destination, SIZE_T Length, UCHAR Fill ); NTSYSAPI VOID NTAPI RtlZeroMemory ( VOID UNALIGNED *Destination, SIZE_T Length ); #else #define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination),(Source),(Length))) #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) #define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length)) #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) #endif #if !defined(MIDL_PASS) FORCEINLINE PVOID RtlSecureZeroMemory( IN PVOID ptr, IN SIZE_T cnt ) { volatile char *vptr = (volatile char *)ptr; while (cnt) { *vptr = 0; vptr++; cnt--; } return ptr; } #endif #define RtlCopyBytes RtlCopyMemory #define RtlZeroBytes RtlZeroMemory #define RtlFillBytes RtlFillMemory #if defined(_M_AMD64) NTSYSAPI VOID NTAPI RtlCopyMemoryNonTemporal ( VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, SIZE_T Length ); #else #define RtlCopyMemoryNonTemporal RtlCopyMemory #endif NTSYSAPI VOID FASTCALL RtlPrefetchMemoryNonTemporal( IN PVOID Source, IN SIZE_T Length ); // // Define kernel debugger print prototypes and macros. // // N.B. The following function cannot be directly imported because there are // a few places in the source tree where this function is redefined. // VOID NTAPI DbgBreakPoint( VOID ); #define DBG_STATUS_CONTROL_C 1 #define DBG_STATUS_SYSRQ 2 #define DBG_STATUS_BUGCHECK_FIRST 3 #define DBG_STATUS_BUGCHECK_SECOND 4 #define DBG_STATUS_FATAL 5 #define DBG_STATUS_DEBUG_CONTROL 6 #define DBG_STATUS_WORKER 7 #if DBG #define KdPrint(_x_) DbgPrint _x_ #define KdBreakPoint() DbgBreakPoint() #else #define KdPrint(_x_) #define KdBreakPoint() #endif #ifndef _DBGNT_ ULONG __cdecl DbgPrint( PCH Format, ... ); #endif // _DBGNT_ // // Large integer arithmetic routines. // // // Large integer add - 64-bits + 64-bits -> 64-bits // #if !defined(MIDL_PASS) DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerAdd ( LARGE_INTEGER Addend1, LARGE_INTEGER Addend2 ) { LARGE_INTEGER Sum; Sum.QuadPart = Addend1.QuadPart + Addend2.QuadPart; return Sum; } // // Enlarged integer multiply - 32-bits * 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlEnlargedIntegerMultiply ( LONG Multiplicand, LONG Multiplier ) { LARGE_INTEGER Product; Product.QuadPart = (LONGLONG)Multiplicand * (ULONGLONG)Multiplier; return Product; } // // Unsigned enlarged integer multiply - 32-bits * 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlEnlargedUnsignedMultiply ( ULONG Multiplicand, ULONG Multiplier ) { LARGE_INTEGER Product; Product.QuadPart = (ULONGLONG)Multiplicand * (ULONGLONG)Multiplier; return Product; } // // Enlarged integer divide - 64-bits / 32-bits > 32-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline ULONG NTAPI RtlEnlargedUnsignedDivide ( IN ULARGE_INTEGER Dividend, IN ULONG Divisor, IN PULONG Remainder OPTIONAL ) { ULONG Quotient; Quotient = (ULONG)(Dividend.QuadPart / Divisor); if (ARGUMENT_PRESENT(Remainder)) { *Remainder = (ULONG)(Dividend.QuadPart % Divisor); } return Quotient; } // // Large integer negation - -(64-bits) // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerNegate ( LARGE_INTEGER Subtrahend ) { LARGE_INTEGER Difference; Difference.QuadPart = -Subtrahend.QuadPart; return Difference; } // // Large integer subtract - 64-bits - 64-bits -> 64-bits. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerSubtract ( LARGE_INTEGER Minuend, LARGE_INTEGER Subtrahend ) { LARGE_INTEGER Difference; Difference.QuadPart = Minuend.QuadPart - Subtrahend.QuadPart; return Difference; } // // Extended large integer magic divide - 64-bits / 32-bits -> 64-bits // #if defined(_AMD64_) DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlExtendedMagicDivide ( LARGE_INTEGER Dividend, LARGE_INTEGER MagicDivisor, CCHAR ShiftCount ) { LARGE_INTEGER Quotient; Quotient.QuadPart = UnsignedMultiplyHigh((ULONG64)Dividend.QuadPart, (ULONG64)MagicDivisor.QuadPart); Quotient.QuadPart = (ULONG64)Quotient.QuadPart >> ShiftCount; return Quotient; } #endif // defined(_AMD64_) #if defined(_X86_) || defined(_IA64_) DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedMagicDivide ( LARGE_INTEGER Dividend, LARGE_INTEGER MagicDivisor, CCHAR ShiftCount ); #endif // defined(_X86_) || defined(_IA64_) #if defined(_AMD64_) || defined(_IA64_) // // Large Integer divide - 64-bits / 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlExtendedLargeIntegerDivide ( LARGE_INTEGER Dividend, ULONG Divisor, PULONG Remainder OPTIONAL ) { LARGE_INTEGER Quotient; Quotient.QuadPart = (ULONG64)Dividend.QuadPart / Divisor; if (ARGUMENT_PRESENT(Remainder)) { *Remainder = (ULONG)(Dividend.QuadPart % Divisor); } return Quotient; } // // Extended integer multiply - 32-bits * 64-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply ( LARGE_INTEGER Multiplicand, LONG Multiplier ) { LARGE_INTEGER Product; Product.QuadPart = Multiplicand.QuadPart * Multiplier; return Product; } #else // // Large Integer divide - 64-bits / 32-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedLargeIntegerDivide ( LARGE_INTEGER Dividend, ULONG Divisor, PULONG Remainder ); // // Extended integer multiply - 32-bits * 64-bits -> 64-bits // DECLSPEC_DEPRECATED_DDK // Use native __int64 math NTSYSAPI LARGE_INTEGER NTAPI RtlExtendedIntegerMultiply ( LARGE_INTEGER Multiplicand, LONG Multiplier ); #endif // defined(_AMD64_) || defined(_IA64_) // // Large integer and - 64-bite & 64-bits -> 64-bits. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(RtlLargeIntegerAnd) // Use native __int64 math #endif #define RtlLargeIntegerAnd(Result, Source, Mask) \ Result.QuadPart = Source.QuadPart & Mask.QuadPart // // Convert signed integer to large integer. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlConvertLongToLargeInteger ( LONG SignedInteger ) { LARGE_INTEGER Result; Result.QuadPart = SignedInteger; return Result; } // // Convert unsigned integer to large integer. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlConvertUlongToLargeInteger ( ULONG UnsignedInteger ) { LARGE_INTEGER Result; Result.QuadPart = UnsignedInteger; return Result; } // // Large integer shift routines. // DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerShiftLeft ( LARGE_INTEGER LargeInteger, CCHAR ShiftCount ) { LARGE_INTEGER Result; Result.QuadPart = LargeInteger.QuadPart << ShiftCount; return Result; } DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerShiftRight ( LARGE_INTEGER LargeInteger, CCHAR ShiftCount ) { LARGE_INTEGER Result; Result.QuadPart = (ULONG64)LargeInteger.QuadPart >> ShiftCount; return Result; } DECLSPEC_DEPRECATED_DDK // Use native __int64 math __inline LARGE_INTEGER NTAPI RtlLargeIntegerArithmeticShift ( LARGE_INTEGER LargeInteger, CCHAR ShiftCount ) { LARGE_INTEGER Result; Result.QuadPart = LargeInteger.QuadPart >> ShiftCount; return Result; } // // Large integer comparison routines. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(RtlLargeIntegerGreaterThan) // Use native __int64 math #pragma deprecated(RtlLargeIntegerGreaterThanOrEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerNotEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessThan) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessThanOrEqualTo) // Use native __int64 math #pragma deprecated(RtlLargeIntegerGreaterThanZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerGreaterOrEqualToZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerEqualToZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerNotEqualToZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessThanZero) // Use native __int64 math #pragma deprecated(RtlLargeIntegerLessOrEqualToZero) // Use native __int64 math #endif #define RtlLargeIntegerGreaterThan(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \ ((X).HighPart > (Y).HighPart) \ ) #define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \ ((X).HighPart > (Y).HighPart) \ ) #define RtlLargeIntegerEqualTo(X,Y) ( \ !(((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \ ) #define RtlLargeIntegerNotEqualTo(X,Y) ( \ (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \ ) #define RtlLargeIntegerLessThan(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \ ((X).HighPart < (Y).HighPart) \ ) #define RtlLargeIntegerLessThanOrEqualTo(X,Y) ( \ (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \ ((X).HighPart < (Y).HighPart) \ ) #define RtlLargeIntegerGreaterThanZero(X) ( \ (((X).HighPart == 0) && ((X).LowPart > 0)) || \ ((X).HighPart > 0 ) \ ) #define RtlLargeIntegerGreaterOrEqualToZero(X) ( \ (X).HighPart >= 0 \ ) #define RtlLargeIntegerEqualToZero(X) ( \ !((X).LowPart | (X).HighPart) \ ) #define RtlLargeIntegerNotEqualToZero(X) ( \ ((X).LowPart | (X).HighPart) \ ) #define RtlLargeIntegerLessThanZero(X) ( \ ((X).HighPart < 0) \ ) #define RtlLargeIntegerLessOrEqualToZero(X) ( \ ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) \ ) #endif // !defined(MIDL_PASS) // // Time conversion routines // typedef struct _TIME_FIELDS { CSHORT Year; // range [1601...] CSHORT Month; // range [1..12] CSHORT Day; // range [1..31] CSHORT Hour; // range [0..23] CSHORT Minute; // range [0..59] CSHORT Second; // range [0..59] CSHORT Milliseconds;// range [0..999] CSHORT Weekday; // range [0..6] == [Sunday..Saturday] } TIME_FIELDS; typedef TIME_FIELDS *PTIME_FIELDS; NTSYSAPI VOID NTAPI RtlTimeToTimeFields ( PLARGE_INTEGER Time, PTIME_FIELDS TimeFields ); // // A time field record (Weekday ignored) -> 64 bit Time value // NTSYSAPI BOOLEAN NTAPI RtlTimeFieldsToTime ( PTIME_FIELDS TimeFields, PLARGE_INTEGER Time ); // // The following macros store and retrieve USHORTS and ULONGS from potentially // unaligned addresses, avoiding alignment faults. they should probably be // rewritten in assembler // #define SHORT_SIZE (sizeof(USHORT)) #define SHORT_MASK (SHORT_SIZE - 1) #define LONG_SIZE (sizeof(LONG)) #define LONGLONG_SIZE (sizeof(LONGLONG)) #define LONG_MASK (LONG_SIZE - 1) #define LONGLONG_MASK (LONGLONG_SIZE - 1) #define LOWBYTE_MASK 0x00FF #define FIRSTBYTE(VALUE) ((VALUE) & LOWBYTE_MASK) #define SECONDBYTE(VALUE) (((VALUE) >> 8) & LOWBYTE_MASK) #define THIRDBYTE(VALUE) (((VALUE) >> 16) & LOWBYTE_MASK) #define FOURTHBYTE(VALUE) (((VALUE) >> 24) & LOWBYTE_MASK) // // if MIPS Big Endian, order of bytes is reversed. // #define SHORT_LEAST_SIGNIFICANT_BIT 0 #define SHORT_MOST_SIGNIFICANT_BIT 1 #define LONG_LEAST_SIGNIFICANT_BIT 0 #define LONG_3RD_MOST_SIGNIFICANT_BIT 1 #define LONG_2ND_MOST_SIGNIFICANT_BIT 2 #define LONG_MOST_SIGNIFICANT_BIT 3 //++ // // VOID // RtlStoreUshort ( // PUSHORT ADDRESS // USHORT VALUE // ) // // Routine Description: // // This macro stores a USHORT value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store USHORT value // VALUE - USHORT to store // // Return Value: // // none. // //-- #define RtlStoreUshort(ADDRESS,VALUE) \ if ((ULONG_PTR)(ADDRESS) & SHORT_MASK) { \ ((PUCHAR) (ADDRESS))[SHORT_LEAST_SIGNIFICANT_BIT] = (UCHAR)(FIRSTBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[SHORT_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(VALUE)); \ } \ else { \ *((PUSHORT) (ADDRESS)) = (USHORT) VALUE; \ } //++ // // VOID // RtlStoreUlong ( // PULONG ADDRESS // ULONG VALUE // ) // // Routine Description: // // This macro stores a ULONG value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store ULONG value // VALUE - ULONG to store // // Return Value: // // none. // // Note: // Depending on the machine, we might want to call storeushort in the // unaligned case. // //-- #define RtlStoreUlong(ADDRESS,VALUE) \ if ((ULONG_PTR)(ADDRESS) & LONG_MASK) { \ ((PUCHAR) (ADDRESS))[LONG_LEAST_SIGNIFICANT_BIT ] = (UCHAR)(FIRSTBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[LONG_3RD_MOST_SIGNIFICANT_BIT ] = (UCHAR)(SECONDBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[LONG_2ND_MOST_SIGNIFICANT_BIT ] = (UCHAR)(THIRDBYTE(VALUE)); \ ((PUCHAR) (ADDRESS))[LONG_MOST_SIGNIFICANT_BIT ] = (UCHAR)(FOURTHBYTE(VALUE)); \ } \ else { \ *((PULONG) (ADDRESS)) = (ULONG) (VALUE); \ } //++ // // VOID // RtlStoreUlonglong ( // PULONGLONG ADDRESS // ULONG VALUE // ) // // Routine Description: // // This macro stores a ULONGLONG value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store ULONGLONG value // VALUE - ULONGLONG to store // // Return Value: // // none. // //-- #define RtlStoreUlonglong(ADDRESS,VALUE) \ if ((ULONG_PTR)(ADDRESS) & LONGLONG_MASK) { \ RtlStoreUlong((ULONG_PTR)(ADDRESS), \ (ULONGLONG)(VALUE) & 0xFFFFFFFF); \ RtlStoreUlong((ULONG_PTR)(ADDRESS)+sizeof(ULONG), \ (ULONGLONG)(VALUE) >> 32); \ } else { \ *((PULONGLONG)(ADDRESS)) = (ULONGLONG)(VALUE); \ } //++ // // VOID // RtlStoreUlongPtr ( // PULONG_PTR ADDRESS // ULONG_PTR VALUE // ) // // Routine Description: // // This macro stores a ULONG_PTR value in at a particular address, avoiding // alignment faults. // // Arguments: // // ADDRESS - where to store ULONG_PTR value // VALUE - ULONG_PTR to store // // Return Value: // // none. // //-- #ifdef _WIN64 #define RtlStoreUlongPtr(ADDRESS,VALUE) \ RtlStoreUlonglong(ADDRESS,VALUE) #else #define RtlStoreUlongPtr(ADDRESS,VALUE) \ RtlStoreUlong(ADDRESS,VALUE) #endif //++ // // VOID // RtlRetrieveUshort ( // PUSHORT DESTINATION_ADDRESS // PUSHORT SOURCE_ADDRESS // ) // // Routine Description: // // This macro retrieves a USHORT value from the SOURCE address, avoiding // alignment faults. The DESTINATION address is assumed to be aligned. // // Arguments: // // DESTINATION_ADDRESS - where to store USHORT value // SOURCE_ADDRESS - where to retrieve USHORT value from // // Return Value: // // none. // //-- #define RtlRetrieveUshort(DEST_ADDRESS,SRC_ADDRESS) \ if ((ULONG_PTR)SRC_ADDRESS & SHORT_MASK) { \ ((PUCHAR) DEST_ADDRESS)[0] = ((PUCHAR) SRC_ADDRESS)[0]; \ ((PUCHAR) DEST_ADDRESS)[1] = ((PUCHAR) SRC_ADDRESS)[1]; \ } \ else { \ *((PUSHORT) DEST_ADDRESS) = *((PUSHORT) SRC_ADDRESS); \ } \ //++ // // VOID // RtlRetrieveUlong ( // PULONG DESTINATION_ADDRESS // PULONG SOURCE_ADDRESS // ) // // Routine Description: // // This macro retrieves a ULONG value from the SOURCE address, avoiding // alignment faults. The DESTINATION address is assumed to be aligned. // // Arguments: // // DESTINATION_ADDRESS - where to store ULONG value // SOURCE_ADDRESS - where to retrieve ULONG value from // // Return Value: // // none. // // Note: // Depending on the machine, we might want to call retrieveushort in the // unaligned case. // //-- #define RtlRetrieveUlong(DEST_ADDRESS,SRC_ADDRESS) \ if ((ULONG_PTR)SRC_ADDRESS & LONG_MASK) { \ ((PUCHAR) DEST_ADDRESS)[0] = ((PUCHAR) SRC_ADDRESS)[0]; \ ((PUCHAR) DEST_ADDRESS)[1] = ((PUCHAR) SRC_ADDRESS)[1]; \ ((PUCHAR) DEST_ADDRESS)[2] = ((PUCHAR) SRC_ADDRESS)[2]; \ ((PUCHAR) DEST_ADDRESS)[3] = ((PUCHAR) SRC_ADDRESS)[3]; \ } \ else { \ *((PULONG) DEST_ADDRESS) = *((PULONG) SRC_ADDRESS); \ } // // BitMap routines. The following structure, routines, and macros are // for manipulating bitmaps. The user is responsible for allocating a bitmap // structure (which is really a header) and a buffer (which must be longword // aligned and multiple longwords in size). // typedef struct _RTL_BITMAP { ULONG SizeOfBitMap; // Number of bits in bit map PULONG Buffer; // Pointer to the bit map itself } RTL_BITMAP; typedef RTL_BITMAP *PRTL_BITMAP; // // The following routine initializes a new bitmap. It does not alter the // data currently in the bitmap. This routine must be called before // any other bitmap routine/macro. // NTSYSAPI VOID NTAPI RtlInitializeBitMap ( PRTL_BITMAP BitMapHeader, PULONG BitMapBuffer, ULONG SizeOfBitMap ); // // The following three routines clear, set, and test the state of a // single bit in a bitmap. // NTSYSAPI VOID NTAPI RtlClearBit ( PRTL_BITMAP BitMapHeader, ULONG BitNumber ); NTSYSAPI VOID NTAPI RtlSetBit ( PRTL_BITMAP BitMapHeader, ULONG BitNumber ); NTSYSAPI BOOLEAN NTAPI RtlTestBit ( PRTL_BITMAP BitMapHeader, ULONG BitNumber ); // // The following two routines either clear or set all of the bits // in a bitmap. // NTSYSAPI VOID NTAPI RtlClearAllBits ( PRTL_BITMAP BitMapHeader ); NTSYSAPI VOID NTAPI RtlSetAllBits ( PRTL_BITMAP BitMapHeader ); // // The following two routines locate a contiguous region of either // clear or set bits within the bitmap. The region will be at least // as large as the number specified, and the search of the bitmap will // begin at the specified hint index (which is a bit index within the // bitmap, zero based). The return value is the bit index of the located // region (zero based) or -1 (i.e., 0xffffffff) if such a region cannot // be located // NTSYSAPI ULONG NTAPI RtlFindClearBits ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); NTSYSAPI ULONG NTAPI RtlFindSetBits ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); // // The following two routines locate a contiguous region of either // clear or set bits within the bitmap and either set or clear the bits // within the located region. The region will be as large as the number // specified, and the search for the region will begin at the specified // hint index (which is a bit index within the bitmap, zero based). The // return value is the bit index of the located region (zero based) or // -1 (i.e., 0xffffffff) if such a region cannot be located. If a region // cannot be located then the setting/clearing of the bitmap is not performed. // NTSYSAPI ULONG NTAPI RtlFindClearBitsAndSet ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); NTSYSAPI ULONG NTAPI RtlFindSetBitsAndClear ( PRTL_BITMAP BitMapHeader, ULONG NumberToFind, ULONG HintIndex ); // // The following two routines clear or set bits within a specified region // of the bitmap. The starting index is zero based. // NTSYSAPI VOID NTAPI RtlClearBits ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG NumberToClear ); NTSYSAPI VOID NTAPI RtlSetBits ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG NumberToSet ); // // The following routine locates a set of contiguous regions of clear // bits within the bitmap. The caller specifies whether to return the // longest runs or just the first found lcoated. The following structure is // used to denote a contiguous run of bits. The two routines return an array // of this structure, one for each run located. // typedef struct _RTL_BITMAP_RUN { ULONG StartingIndex; ULONG NumberOfBits; } RTL_BITMAP_RUN; typedef RTL_BITMAP_RUN *PRTL_BITMAP_RUN; NTSYSAPI ULONG NTAPI RtlFindClearRuns ( PRTL_BITMAP BitMapHeader, PRTL_BITMAP_RUN RunArray, ULONG SizeOfRunArray, BOOLEAN LocateLongestRuns ); // // The following routine locates the longest contiguous region of // clear bits within the bitmap. The returned starting index value // denotes the first contiguous region located satisfying our requirements // The return value is the length (in bits) of the longest region found. // NTSYSAPI ULONG NTAPI RtlFindLongestRunClear ( PRTL_BITMAP BitMapHeader, PULONG StartingIndex ); // // The following routine locates the first contiguous region of // clear bits within the bitmap. The returned starting index value // denotes the first contiguous region located satisfying our requirements // The return value is the length (in bits) of the region found. // NTSYSAPI ULONG NTAPI RtlFindFirstRunClear ( PRTL_BITMAP BitMapHeader, PULONG StartingIndex ); // // The following macro returns the value of the bit stored within the // bitmap at the specified location. If the bit is set a value of 1 is // returned otherwise a value of 0 is returned. // // ULONG // RtlCheckBit ( // PRTL_BITMAP BitMapHeader, // ULONG BitPosition // ); // // // To implement CheckBit the macro retrieves the longword containing the // bit in question, shifts the longword to get the bit in question into the // low order bit position and masks out all other bits. // #define RtlCheckBit(BMH,BP) ((((BMH)->Buffer[(BP) / 32]) >> ((BP) % 32)) & 0x1) // // The following two procedures return to the caller the total number of // clear or set bits within the specified bitmap. // NTSYSAPI ULONG NTAPI RtlNumberOfClearBits ( PRTL_BITMAP BitMapHeader ); NTSYSAPI ULONG NTAPI RtlNumberOfSetBits ( PRTL_BITMAP BitMapHeader ); // // The following two procedures return to the caller a boolean value // indicating if the specified range of bits are all clear or set. // NTSYSAPI BOOLEAN NTAPI RtlAreBitsClear ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG Length ); NTSYSAPI BOOLEAN NTAPI RtlAreBitsSet ( PRTL_BITMAP BitMapHeader, ULONG StartingIndex, ULONG Length ); NTSYSAPI ULONG NTAPI RtlFindNextForwardRunClear ( IN PRTL_BITMAP BitMapHeader, IN ULONG FromIndex, IN PULONG StartingRunIndex ); NTSYSAPI ULONG NTAPI RtlFindLastBackwardRunClear ( IN PRTL_BITMAP BitMapHeader, IN ULONG FromIndex, IN PULONG StartingRunIndex ); // // The following two procedures return to the caller a value indicating // the position within a ULONGLONG of the most or least significant non-zero // bit. A value of zero results in a return value of -1. // NTSYSAPI CCHAR NTAPI RtlFindLeastSignificantBit ( IN ULONGLONG Set ); NTSYSAPI CCHAR NTAPI RtlFindMostSignificantBit ( IN ULONGLONG Set ); // // SecurityDescriptor RTL routine definitions // NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor, ULONG Revision ); NTSYSAPI BOOLEAN NTAPI RtlValidSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor ); NTSYSAPI ULONG NTAPI RtlLengthSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor ); NTSYSAPI BOOLEAN NTAPI RtlValidRelativeSecurityDescriptor ( IN PSECURITY_DESCRIPTOR SecurityDescriptorInput, IN ULONG SecurityDescriptorLength, IN SECURITY_INFORMATION RequiredInformation ); NTSYSAPI NTSTATUS NTAPI RtlSetDaclSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor, BOOLEAN DaclPresent, PACL Dacl, BOOLEAN DaclDefaulted ); // // Byte swap routines. These are used to convert from little-endian to // big-endian and vice-versa. // #if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037)) || ((defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_FULL_VER > 13009175)) #ifdef __cplusplus extern "C" { #endif unsigned short __cdecl _byteswap_ushort(unsigned short); unsigned long __cdecl _byteswap_ulong (unsigned long); unsigned __int64 __cdecl _byteswap_uint64(unsigned __int64); #ifdef __cplusplus } #endif #pragma intrinsic(_byteswap_ushort) #pragma intrinsic(_byteswap_ulong) #pragma intrinsic(_byteswap_uint64) #define RtlUshortByteSwap(_x) _byteswap_ushort((USHORT)(_x)) #define RtlUlongByteSwap(_x) _byteswap_ulong((_x)) #define RtlUlonglongByteSwap(_x) _byteswap_uint64((_x)) #else USHORT FASTCALL RtlUshortByteSwap( IN USHORT Source ); ULONG FASTCALL RtlUlongByteSwap( IN ULONG Source ); ULONGLONG FASTCALL RtlUlonglongByteSwap( IN ULONGLONG Source ); #endif // // Interlocked bit manipulation interfaces // NTSYSAPI ULONG FASTCALL RtlInterlockedSetBits ( IN OUT PULONG Flags, IN ULONG Flag ); NTSYSAPI ULONG FASTCALL RtlInterlockedClearBits ( IN OUT PULONG Flags, IN ULONG Flag ); NTSYSAPI ULONG FASTCALL RtlInterlockedSetClearBits ( IN OUT PULONG Flags, IN ULONG sFlag, IN ULONG cFlag ); // // These are for when the compiler has fixes in for these intrinsics // #if (_MSC_FULL_VER > 13009037) || !defined (_M_IX86) #define RtlInterlockedSetBits(Flags, Flag) \ InterlockedOr ((PLONG) (Flags), Flag) #define RtlInterlockedAndBits(Flags, Flag) \ InterlockedAnd ((PLONG) (Flags), Flag) #define RtlInterlockedClearBits(Flags, Flag) \ RtlInterlockedAndBits (Flags, ~(Flag)) #define RtlInterlockedXorBits(Flags, Flag) \ InterlockedXor (Flags, Flag) #define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedSetBits (Flags, Flag) #define RtlInterlockedAndBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedAndBits (Flags, Flag) #define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \ RtlInterlockedAndBitsDiscardReturn (Flags, ~(Flag)) #else #if defined (_X86_) && !defined(MIDL_PASS) FORCEINLINE VOID RtlInterlockedSetBitsDiscardReturn( IN OUT PULONG Flags, IN ULONG Flag ) { __asm { mov ecx, Flags mov eax, Flag #if defined (NT_UP) or [ecx], eax #else lock or [ecx], eax #endif } } FORCEINLINE VOID RtlInterlockedAndBitsDiscardReturn( IN OUT PULONG Flags, IN ULONG Flag ) { __asm { mov ecx, Flags mov eax, Flag #if defined (NT_UP) and [ecx], eax #else lock and [ecx], eax #endif } } #define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedAndBitsDiscardReturn ((Flags), ~(Flag)) #else #define RtlInterlockedSetBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedSetBits ((Flags), (Flag)) #define RtlInterlockedClearBitsDiscardReturn(Flags, Flag) \ (VOID) RtlInterlockedClearBits ((Flags), (Flag)) #endif /* #if defined(_X86_) && !defined(MIDL_PASS) */ #endif // // Component name filter id enumeration and levels. // #define DPFLTR_ERROR_LEVEL 0 #define DPFLTR_WARNING_LEVEL 1 #define DPFLTR_TRACE_LEVEL 2 #define DPFLTR_INFO_LEVEL 3 #define DPFLTR_MASK 0x80000000 typedef enum _DPFLTR_TYPE { DPFLTR_SYSTEM_ID = 0, DPFLTR_SMSS_ID = 1, DPFLTR_SETUP_ID = 2, DPFLTR_NTFS_ID = 3, DPFLTR_FSTUB_ID = 4, DPFLTR_CRASHDUMP_ID = 5, DPFLTR_CDAUDIO_ID = 6, DPFLTR_CDROM_ID = 7, DPFLTR_CLASSPNP_ID = 8, DPFLTR_DISK_ID = 9, DPFLTR_REDBOOK_ID = 10, DPFLTR_STORPROP_ID = 11, DPFLTR_SCSIPORT_ID = 12, DPFLTR_SCSIMINIPORT_ID = 13, DPFLTR_CONFIG_ID = 14, DPFLTR_I8042PRT_ID = 15, DPFLTR_SERMOUSE_ID = 16, DPFLTR_LSERMOUS_ID = 17, DPFLTR_KBDHID_ID = 18, DPFLTR_MOUHID_ID = 19, DPFLTR_KBDCLASS_ID = 20, DPFLTR_MOUCLASS_ID = 21, DPFLTR_TWOTRACK_ID = 22, DPFLTR_WMILIB_ID = 23, DPFLTR_ACPI_ID = 24, DPFLTR_AMLI_ID = 25, DPFLTR_HALIA64_ID = 26, DPFLTR_VIDEO_ID = 27, DPFLTR_SVCHOST_ID = 28, DPFLTR_VIDEOPRT_ID = 29, DPFLTR_TCPIP_ID = 30, DPFLTR_DMSYNTH_ID = 31, DPFLTR_NTOSPNP_ID = 32, DPFLTR_FASTFAT_ID = 33, DPFLTR_SAMSS_ID = 34, DPFLTR_PNPMGR_ID = 35, DPFLTR_NETAPI_ID = 36, DPFLTR_SCSERVER_ID = 37, DPFLTR_SCCLIENT_ID = 38, DPFLTR_SERIAL_ID = 39, DPFLTR_SERENUM_ID = 40, DPFLTR_UHCD_ID = 41, DPFLTR_BOOTOK_ID = 42, DPFLTR_BOOTVRFY_ID = 43, DPFLTR_RPCPROXY_ID = 44, DPFLTR_AUTOCHK_ID = 45, DPFLTR_DCOMSS_ID = 46, DPFLTR_UNIMODEM_ID = 47, DPFLTR_SIS_ID = 48, DPFLTR_FLTMGR_ID = 49, DPFLTR_WMICORE_ID = 50, DPFLTR_BURNENG_ID = 51, DPFLTR_IMAPI_ID = 52, DPFLTR_SXS_ID = 53, DPFLTR_FUSION_ID = 54, DPFLTR_IDLETASK_ID = 55, DPFLTR_SOFTPCI_ID = 56, DPFLTR_TAPE_ID = 57, DPFLTR_MCHGR_ID = 58, DPFLTR_IDEP_ID = 59, DPFLTR_PCIIDE_ID = 60, DPFLTR_FLOPPY_ID = 61, DPFLTR_FDC_ID = 62, DPFLTR_TERMSRV_ID = 63, DPFLTR_W32TIME_ID = 64, DPFLTR_PREFETCHER_ID = 65, DPFLTR_RSFILTER_ID = 66, DPFLTR_FCPORT_ID = 67, DPFLTR_PCI_ID = 68, DPFLTR_DMIO_ID = 69, DPFLTR_DMCONFIG_ID = 70, DPFLTR_DMADMIN_ID = 71, DPFLTR_WSOCKTRANSPORT_ID = 72, DPFLTR_VSS_ID = 73, DPFLTR_PNPMEM_ID = 74, DPFLTR_PROCESSOR_ID = 75, DPFLTR_DMSERVER_ID = 76, DPFLTR_SR_ID = 77, DPFLTR_INFINIBAND_ID = 78, DPFLTR_IHVDRIVER_ID = 79, DPFLTR_IHVVIDEO_ID = 80, DPFLTR_IHVAUDIO_ID = 81, DPFLTR_IHVNETWORK_ID = 82, DPFLTR_IHVSTREAMING_ID = 83, DPFLTR_IHVBUS_ID = 84, DPFLTR_HPS_ID = 85, DPFLTR_RTLTHREADPOOL_ID = 86, DPFLTR_LDR_ID = 87, DPFLTR_TCPIP6_ID = 88, DPFLTR_ISAPNP_ID = 89, DPFLTR_SHPC_ID = 90, DPFLTR_STORPORT_ID = 91, DPFLTR_STORMINIPORT_ID = 92, DPFLTR_PRINTSPOOLER_ID = 93, DPFLTR_ENDOFTABLE_ID } DPFLTR_TYPE; // // Define the various device type values. Note that values used by Microsoft // Corporation are in the range 0-32767, and 32768-65535 are reserved for use // by customers. // #define DEVICE_TYPE ULONG #define FILE_DEVICE_BEEP 0x00000001 #define FILE_DEVICE_CD_ROM 0x00000002 #define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003 #define FILE_DEVICE_CONTROLLER 0x00000004 #define FILE_DEVICE_DATALINK 0x00000005 #define FILE_DEVICE_DFS 0x00000006 #define FILE_DEVICE_DISK 0x00000007 #define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008 #define FILE_DEVICE_FILE_SYSTEM 0x00000009 #define FILE_DEVICE_INPORT_PORT 0x0000000a #define FILE_DEVICE_KEYBOARD 0x0000000b #define FILE_DEVICE_MAILSLOT 0x0000000c #define FILE_DEVICE_MIDI_IN 0x0000000d #define FILE_DEVICE_MIDI_OUT 0x0000000e #define FILE_DEVICE_MOUSE 0x0000000f #define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010 #define FILE_DEVICE_NAMED_PIPE 0x00000011 #define FILE_DEVICE_NETWORK 0x00000012 #define FILE_DEVICE_NETWORK_BROWSER 0x00000013 #define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014 #define FILE_DEVICE_NULL 0x00000015 #define FILE_DEVICE_PARALLEL_PORT 0x00000016 #define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017 #define FILE_DEVICE_PRINTER 0x00000018 #define FILE_DEVICE_SCANNER 0x00000019 #define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001a #define FILE_DEVICE_SERIAL_PORT 0x0000001b #define FILE_DEVICE_SCREEN 0x0000001c #define FILE_DEVICE_SOUND 0x0000001d #define FILE_DEVICE_STREAMS 0x0000001e #define FILE_DEVICE_TAPE 0x0000001f #define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020 #define FILE_DEVICE_TRANSPORT 0x00000021 #define FILE_DEVICE_UNKNOWN 0x00000022 #define FILE_DEVICE_VIDEO 0x00000023 #define FILE_DEVICE_VIRTUAL_DISK 0x00000024 #define FILE_DEVICE_WAVE_IN 0x00000025 #define FILE_DEVICE_WAVE_OUT 0x00000026 #define FILE_DEVICE_8042_PORT 0x00000027 #define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028 #define FILE_DEVICE_BATTERY 0x00000029 #define FILE_DEVICE_BUS_EXTENDER 0x0000002a #define FILE_DEVICE_MODEM 0x0000002b #define FILE_DEVICE_VDM 0x0000002c #define FILE_DEVICE_MASS_STORAGE 0x0000002d #define FILE_DEVICE_SMB 0x0000002e #define FILE_DEVICE_KS 0x0000002f #define FILE_DEVICE_CHANGER 0x00000030 #define FILE_DEVICE_SMARTCARD 0x00000031 #define FILE_DEVICE_ACPI 0x00000032 #define FILE_DEVICE_DVD 0x00000033 #define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034 #define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035 #define FILE_DEVICE_DFS_VOLUME 0x00000036 #define FILE_DEVICE_SERENUM 0x00000037 #define FILE_DEVICE_TERMSRV 0x00000038 #define FILE_DEVICE_KSEC 0x00000039 #define FILE_DEVICE_FIPS 0x0000003A // // Macro definition for defining IOCTL and FSCTL function control codes. Note // that function codes 0-2047 are reserved for Microsoft Corporation, and // 2048-4095 are reserved for customers. // #define CTL_CODE( DeviceType, Function, Method, Access ) ( \ ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \ ) // // Macro to extract device type out of the device io control code // #define DEVICE_TYPE_FROM_CTL_CODE(ctrlCode) (((ULONG)(ctrlCode & 0xffff0000)) >> 16) // // Define the method codes for how buffers are passed for I/O and FS controls // #define METHOD_BUFFERED 0 #define METHOD_IN_DIRECT 1 #define METHOD_OUT_DIRECT 2 #define METHOD_NEITHER 3 // // Define the access check value for any access // // // The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in // ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these // constants *MUST* always be in sync. // // // FILE_SPECIAL_ACCESS is checked by the NT I/O system the same as FILE_ANY_ACCESS. // The file systems, however, may add additional access checks for I/O and FS controls // that use this value. // #define FILE_ANY_ACCESS 0 #define FILE_SPECIAL_ACCESS (FILE_ANY_ACCESS) #define FILE_READ_ACCESS ( 0x0001 ) // file & pipe #define FILE_WRITE_ACCESS ( 0x0002 ) // file & pipe // // Define access rights to files and directories // // // The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in // devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these // constants *MUST* always be in sync. // The values are redefined in devioctl.h because they must be available to // both DOS and NT. // #define FILE_READ_DATA ( 0x0001 ) // file & pipe #define FILE_LIST_DIRECTORY ( 0x0001 ) // directory #define FILE_WRITE_DATA ( 0x0002 ) // file & pipe #define FILE_ADD_FILE ( 0x0002 ) // directory #define FILE_APPEND_DATA ( 0x0004 ) // file #define FILE_ADD_SUBDIRECTORY ( 0x0004 ) // directory #define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) // named pipe #define FILE_READ_EA ( 0x0008 ) // file & directory #define FILE_WRITE_EA ( 0x0010 ) // file & directory #define FILE_EXECUTE ( 0x0020 ) // file #define FILE_TRAVERSE ( 0x0020 ) // directory #define FILE_DELETE_CHILD ( 0x0040 ) // directory #define FILE_READ_ATTRIBUTES ( 0x0080 ) // all #define FILE_WRITE_ATTRIBUTES ( 0x0100 ) // all #define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) #define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\ FILE_READ_DATA |\ FILE_READ_ATTRIBUTES |\ FILE_READ_EA |\ SYNCHRONIZE) #define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\ FILE_WRITE_DATA |\ FILE_WRITE_ATTRIBUTES |\ FILE_WRITE_EA |\ FILE_APPEND_DATA |\ SYNCHRONIZE) #define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\ FILE_READ_ATTRIBUTES |\ FILE_EXECUTE |\ SYNCHRONIZE) // // Define share access rights to files and directories // #define FILE_SHARE_READ 0x00000001 #define FILE_SHARE_WRITE 0x00000002 #define FILE_SHARE_DELETE 0x00000004 #define FILE_SHARE_VALID_FLAGS 0x00000007 // // Define the file attributes values // // Note: 0x00000008 is reserved for use for the old DOS VOLID (volume ID) // and is therefore not considered valid in NT. // // Note: 0x00000010 is reserved for use for the old DOS SUBDIRECTORY flag // and is therefore not considered valid in NT. This flag has // been disassociated with file attributes since the other flags are // protected with READ_ and WRITE_ATTRIBUTES access to the file. // // Note: Note also that the order of these flags is set to allow both the // FAT and the Pinball File Systems to directly set the attributes // flags in attributes words without having to pick each flag out // individually. The order of these flags should not be changed! // #define FILE_ATTRIBUTE_READONLY 0x00000001 #define FILE_ATTRIBUTE_HIDDEN 0x00000002 #define FILE_ATTRIBUTE_SYSTEM 0x00000004 //OLD DOS VOLID 0x00000008 #define FILE_ATTRIBUTE_DIRECTORY 0x00000010 #define FILE_ATTRIBUTE_ARCHIVE 0x00000020 #define FILE_ATTRIBUTE_DEVICE 0x00000040 #define FILE_ATTRIBUTE_NORMAL 0x00000080 #define FILE_ATTRIBUTE_TEMPORARY 0x00000100 #define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 #define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 #define FILE_ATTRIBUTE_COMPRESSED 0x00000800 #define FILE_ATTRIBUTE_OFFLINE 0x00001000 #define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 #define FILE_ATTRIBUTE_ENCRYPTED 0x00004000 #define FILE_ATTRIBUTE_VALID_FLAGS 0x00007fb7 #define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7 // // Define the create disposition values // #define FILE_SUPERSEDE 0x00000000 #define FILE_OPEN 0x00000001 #define FILE_CREATE 0x00000002 #define FILE_OPEN_IF 0x00000003 #define FILE_OVERWRITE 0x00000004 #define FILE_OVERWRITE_IF 0x00000005 #define FILE_MAXIMUM_DISPOSITION 0x00000005 // // Define the create/open option flags // #define FILE_DIRECTORY_FILE 0x00000001 #define FILE_WRITE_THROUGH 0x00000002 #define FILE_SEQUENTIAL_ONLY 0x00000004 #define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 #define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 #define FILE_NON_DIRECTORY_FILE 0x00000040 #define FILE_CREATE_TREE_CONNECTION 0x00000080 #define FILE_COMPLETE_IF_OPLOCKED 0x00000100 #define FILE_NO_EA_KNOWLEDGE 0x00000200 #define FILE_OPEN_FOR_RECOVERY 0x00000400 #define FILE_RANDOM_ACCESS 0x00000800 #define FILE_DELETE_ON_CLOSE 0x00001000 #define FILE_OPEN_BY_FILE_ID 0x00002000 #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 #define FILE_NO_COMPRESSION 0x00008000 #define FILE_RESERVE_OPFILTER 0x00100000 #define FILE_OPEN_REPARSE_POINT 0x00200000 #define FILE_OPEN_NO_RECALL 0x00400000 #define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 #define FILE_COPY_STRUCTURED_STORAGE 0x00000041 #define FILE_STRUCTURED_STORAGE 0x00000441 #define FILE_VALID_OPTION_FLAGS 0x00ffffff #define FILE_VALID_PIPE_OPTION_FLAGS 0x00000032 #define FILE_VALID_MAILSLOT_OPTION_FLAGS 0x00000032 #define FILE_VALID_SET_FLAGS 0x00000036 // // Define the I/O status information return values for NtCreateFile/NtOpenFile // #define FILE_SUPERSEDED 0x00000000 #define FILE_OPENED 0x00000001 #define FILE_CREATED 0x00000002 #define FILE_OVERWRITTEN 0x00000003 #define FILE_EXISTS 0x00000004 #define FILE_DOES_NOT_EXIST 0x00000005 // // Define special ByteOffset parameters for read and write operations // #define FILE_WRITE_TO_END_OF_FILE 0xffffffff #define FILE_USE_FILE_POINTER_POSITION 0xfffffffe // // Define alignment requirement values // #define FILE_BYTE_ALIGNMENT 0x00000000 #define FILE_WORD_ALIGNMENT 0x00000001 #define FILE_LONG_ALIGNMENT 0x00000003 #define FILE_QUAD_ALIGNMENT 0x00000007 #define FILE_OCTA_ALIGNMENT 0x0000000f #define FILE_32_BYTE_ALIGNMENT 0x0000001f #define FILE_64_BYTE_ALIGNMENT 0x0000003f #define FILE_128_BYTE_ALIGNMENT 0x0000007f #define FILE_256_BYTE_ALIGNMENT 0x000000ff #define FILE_512_BYTE_ALIGNMENT 0x000001ff // // Define the maximum length of a filename string // #define MAXIMUM_FILENAME_LENGTH 256 // // Define the various device characteristics flags // #define FILE_REMOVABLE_MEDIA 0x00000001 #define FILE_READ_ONLY_DEVICE 0x00000002 #define FILE_FLOPPY_DISKETTE 0x00000004 #define FILE_WRITE_ONCE_MEDIA 0x00000008 #define FILE_REMOTE_DEVICE 0x00000010 #define FILE_DEVICE_IS_MOUNTED 0x00000020 #define FILE_VIRTUAL_VOLUME 0x00000040 #define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080 #define FILE_DEVICE_SECURE_OPEN 0x00000100 #define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800 // // Define the base asynchronous I/O argument types // typedef struct _IO_STATUS_BLOCK { union { NTSTATUS Status; PVOID Pointer; }; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; #if defined(_WIN64) typedef struct _IO_STATUS_BLOCK32 { NTSTATUS Status; ULONG Information; } IO_STATUS_BLOCK32, *PIO_STATUS_BLOCK32; #endif // // Define an Asynchronous Procedure Call from I/O viewpoint // typedef VOID (NTAPI *PIO_APC_ROUTINE) ( IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved ); #define PIO_APC_ROUTINE_DEFINED // // Define the file information class values // // WARNING: The order of the following values are assumed by the I/O system. // Any changes made here should be reflected there as well. // typedef enum _FILE_INFORMATION_CLASS { FileBasicInformation = 4, FileStandardInformation = 5, FilePositionInformation = 14, FileEndOfFileInformation = 20, } FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; // // Define the various structures which are returned on query operations // typedef struct _FILE_BASIC_INFORMATION { LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; ULONG FileAttributes; } FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION; typedef struct _FILE_STANDARD_INFORMATION { LARGE_INTEGER AllocationSize; LARGE_INTEGER EndOfFile; ULONG NumberOfLinks; BOOLEAN DeletePending; BOOLEAN Directory; } FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION; typedef struct _FILE_POSITION_INFORMATION { LARGE_INTEGER CurrentByteOffset; } FILE_POSITION_INFORMATION, *PFILE_POSITION_INFORMATION; typedef struct _FILE_NETWORK_OPEN_INFORMATION { LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER AllocationSize; LARGE_INTEGER EndOfFile; ULONG FileAttributes; } FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION; typedef struct _FILE_FULL_EA_INFORMATION { ULONG NextEntryOffset; UCHAR Flags; UCHAR EaNameLength; USHORT EaValueLength; CHAR EaName[1]; } FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION; // // Define the file system information class values // // WARNING: The order of the following values are assumed by the I/O system. // Any changes made here should be reflected there as well. typedef enum _FSINFOCLASS { FileFsVolumeInformation = 1, FileFsLabelInformation, // 2 FileFsSizeInformation, // 3 FileFsDeviceInformation, // 4 FileFsAttributeInformation, // 5 FileFsControlInformation, // 6 FileFsFullSizeInformation, // 7 FileFsObjectIdInformation, // 8 FileFsDriverPathInformation, // 9 FileFsMaximumInformation } FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS; typedef struct _FILE_FS_DEVICE_INFORMATION { DEVICE_TYPE DeviceType; ULONG Characteristics; } FILE_FS_DEVICE_INFORMATION, *PFILE_FS_DEVICE_INFORMATION; // // Define the I/O bus interface types. // typedef enum _INTERFACE_TYPE { InterfaceTypeUndefined = -1, Internal, Isa, Eisa, MicroChannel, TurboChannel, PCIBus, VMEBus, NuBus, PCMCIABus, CBus, MPIBus, MPSABus, ProcessorInternal, InternalPowerBus, PNPISABus, PNPBus, MaximumInterfaceType }INTERFACE_TYPE, *PINTERFACE_TYPE; // // Define the DMA transfer widths. // typedef enum _DMA_WIDTH { Width8Bits, Width16Bits, Width32Bits, MaximumDmaWidth }DMA_WIDTH, *PDMA_WIDTH; // // Define DMA transfer speeds. // typedef enum _DMA_SPEED { Compatible, TypeA, TypeB, TypeC, TypeF, MaximumDmaSpeed }DMA_SPEED, *PDMA_SPEED; // // Define Interface reference/dereference routines for // Interfaces exported by IRP_MN_QUERY_INTERFACE // typedef VOID (*PINTERFACE_REFERENCE)(PVOID Context); typedef VOID (*PINTERFACE_DEREFERENCE)(PVOID Context); // // Define I/O Driver error log packet structure. This structure is filled in // by the driver. // typedef struct _IO_ERROR_LOG_PACKET { UCHAR MajorFunctionCode; UCHAR RetryCount; USHORT DumpDataSize; USHORT NumberOfStrings; USHORT StringOffset; USHORT EventCategory; NTSTATUS ErrorCode; ULONG UniqueErrorValue; NTSTATUS FinalStatus; ULONG SequenceNumber; ULONG IoControlCode; LARGE_INTEGER DeviceOffset; ULONG DumpData[1]; }IO_ERROR_LOG_PACKET, *PIO_ERROR_LOG_PACKET; // // Define the I/O error log message. This message is sent by the error log // thread over the lpc port. // typedef struct _IO_ERROR_LOG_MESSAGE { USHORT Type; USHORT Size; USHORT DriverNameLength; LARGE_INTEGER TimeStamp; ULONG DriverNameOffset; IO_ERROR_LOG_PACKET EntryData; }IO_ERROR_LOG_MESSAGE, *PIO_ERROR_LOG_MESSAGE; // // Define the maximum message size that will be sent over the LPC to the // application reading the error log entries. // // // Regardless of LPC size restrictions, ERROR_LOG_MAXIMUM_SIZE must remain // a value that can fit in a UCHAR. // #define ERROR_LOG_LIMIT_SIZE (256-16) // // This limit, exclusive of IO_ERROR_LOG_MESSAGE_HEADER_LENGTH, also applies // to IO_ERROR_LOG_MESSAGE_LENGTH // #define IO_ERROR_LOG_MESSAGE_HEADER_LENGTH (sizeof(IO_ERROR_LOG_MESSAGE) - \ sizeof(IO_ERROR_LOG_PACKET) + \ (sizeof(WCHAR) * 40)) #define ERROR_LOG_MESSAGE_LIMIT_SIZE \ (ERROR_LOG_LIMIT_SIZE + IO_ERROR_LOG_MESSAGE_HEADER_LENGTH) // // IO_ERROR_LOG_MESSAGE_LENGTH is // min(PORT_MAXIMUM_MESSAGE_LENGTH, ERROR_LOG_MESSAGE_LIMIT_SIZE) // #define IO_ERROR_LOG_MESSAGE_LENGTH \ ((PORT_MAXIMUM_MESSAGE_LENGTH > ERROR_LOG_MESSAGE_LIMIT_SIZE) ? \ ERROR_LOG_MESSAGE_LIMIT_SIZE : \ PORT_MAXIMUM_MESSAGE_LENGTH) // // Define the maximum packet size a driver can allocate. // #define ERROR_LOG_MAXIMUM_SIZE (IO_ERROR_LOG_MESSAGE_LENGTH - \ IO_ERROR_LOG_MESSAGE_HEADER_LENGTH) #ifdef _WIN64 #define PORT_MAXIMUM_MESSAGE_LENGTH 512 #else #define PORT_MAXIMUM_MESSAGE_LENGTH 256 #endif // // Registry Specific Access Rights. // #define KEY_QUERY_VALUE (0x0001) #define KEY_SET_VALUE (0x0002) #define KEY_CREATE_SUB_KEY (0x0004) #define KEY_ENUMERATE_SUB_KEYS (0x0008) #define KEY_NOTIFY (0x0010) #define KEY_CREATE_LINK (0x0020) #define KEY_WOW64_32KEY (0x0200) #define KEY_WOW64_64KEY (0x0100) #define KEY_WOW64_RES (0x0300) #define KEY_READ ((STANDARD_RIGHTS_READ |\ KEY_QUERY_VALUE |\ KEY_ENUMERATE_SUB_KEYS |\ KEY_NOTIFY) \ & \ (~SYNCHRONIZE)) #define KEY_WRITE ((STANDARD_RIGHTS_WRITE |\ KEY_SET_VALUE |\ KEY_CREATE_SUB_KEY) \ & \ (~SYNCHRONIZE)) #define KEY_EXECUTE ((KEY_READ) \ & \ (~SYNCHRONIZE)) #define 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)) // // Open/Create Options // #define REG_OPTION_RESERVED (0x00000000L) // Parameter is reserved #define REG_OPTION_NON_VOLATILE (0x00000000L) // Key is preserved // when system is rebooted #define REG_OPTION_VOLATILE (0x00000001L) // Key is not preserved // when system is rebooted #define REG_OPTION_CREATE_LINK (0x00000002L) // Created key is a // symbolic link #define REG_OPTION_BACKUP_RESTORE (0x00000004L) // open for backup or restore // special access rules // privilege required #define REG_OPTION_OPEN_LINK (0x00000008L) // Open symbolic link #define 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) // // Key creation/open disposition // #define REG_CREATED_NEW_KEY (0x00000001L) // New Registry Key created #define REG_OPENED_EXISTING_KEY (0x00000002L) // Existing Key opened // // hive format to be used by Reg(Nt)SaveKeyEx // #define REG_STANDARD_FORMAT 1 #define REG_LATEST_FORMAT 2 #define REG_NO_COMPRESSION 4 // // Key restore flags // #define REG_WHOLE_HIVE_VOLATILE (0x00000001L) // Restore whole hive volatile #define REG_REFRESH_HIVE (0x00000002L) // Unwind changes to last flush #define REG_NO_LAZY_FLUSH (0x00000004L) // Never lazy flush this hive #define REG_FORCE_RESTORE (0x00000008L) // Force the restore process even when we have open handles on subkeys // // Key query structures // typedef struct _KEY_BASIC_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG NameLength; WCHAR Name[1]; // Variable length string } KEY_BASIC_INFORMATION, *PKEY_BASIC_INFORMATION; typedef struct _KEY_NODE_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG ClassOffset; ULONG ClassLength; ULONG NameLength; WCHAR Name[1]; // Variable length string // Class[1]; // Variable length string not declared } KEY_NODE_INFORMATION, *PKEY_NODE_INFORMATION; typedef struct _KEY_FULL_INFORMATION { LARGE_INTEGER LastWriteTime; ULONG TitleIndex; ULONG ClassOffset; ULONG ClassLength; ULONG SubKeys; ULONG MaxNameLen; ULONG MaxClassLen; ULONG Values; ULONG MaxValueNameLen; ULONG MaxValueDataLen; WCHAR Class[1]; // Variable length } KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION; typedef enum _KEY_INFORMATION_CLASS { KeyBasicInformation, KeyNodeInformation, KeyFullInformation } KEY_INFORMATION_CLASS; typedef struct _KEY_WRITE_TIME_INFORMATION { LARGE_INTEGER LastWriteTime; } KEY_WRITE_TIME_INFORMATION, *PKEY_WRITE_TIME_INFORMATION; typedef struct _KEY_USER_FLAGS_INFORMATION { ULONG UserFlags; } KEY_USER_FLAGS_INFORMATION, *PKEY_USER_FLAGS_INFORMATION; typedef enum _KEY_SET_INFORMATION_CLASS { KeyWriteTimeInformation, KeyUserFlagsInformation } KEY_SET_INFORMATION_CLASS; // // Value entry query structures // typedef struct _KEY_VALUE_BASIC_INFORMATION { ULONG TitleIndex; ULONG Type; ULONG NameLength; WCHAR Name[1]; // Variable size } KEY_VALUE_BASIC_INFORMATION, *PKEY_VALUE_BASIC_INFORMATION; typedef struct _KEY_VALUE_FULL_INFORMATION { ULONG TitleIndex; ULONG Type; ULONG DataOffset; ULONG DataLength; ULONG NameLength; WCHAR Name[1]; // Variable size // Data[1]; // Variable size data not declared } KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION; typedef struct _KEY_VALUE_PARTIAL_INFORMATION { ULONG TitleIndex; ULONG Type; ULONG DataLength; UCHAR Data[1]; // Variable size } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION; typedef struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 { ULONG Type; ULONG DataLength; UCHAR Data[1]; // Variable size } KEY_VALUE_PARTIAL_INFORMATION_ALIGN64, *PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64; typedef struct _KEY_VALUE_ENTRY { PUNICODE_STRING ValueName; ULONG DataLength; ULONG DataOffset; ULONG Type; } KEY_VALUE_ENTRY, *PKEY_VALUE_ENTRY; typedef enum _KEY_VALUE_INFORMATION_CLASS { KeyValueBasicInformation, KeyValueFullInformation, KeyValuePartialInformation, KeyValueFullInformationAlign64, KeyValuePartialInformationAlign64 } KEY_VALUE_INFORMATION_CLASS; #define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\') // // Object Manager Object Type Specific Access Rights. // #define OBJECT_TYPE_CREATE (0x0001) #define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) // // Object Manager Directory Specific Access Rights. // #define DIRECTORY_QUERY (0x0001) #define DIRECTORY_TRAVERSE (0x0002) #define DIRECTORY_CREATE_OBJECT (0x0004) #define DIRECTORY_CREATE_SUBDIRECTORY (0x0008) #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF) // // Object Manager Symbolic Link Specific Access Rights. // #define SYMBOLIC_LINK_QUERY (0x0001) #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) typedef struct _OBJECT_NAME_INFORMATION { UNICODE_STRING Name; } OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION; #define DUPLICATE_CLOSE_SOURCE 0x00000001 #define DUPLICATE_SAME_ACCESS 0x00000002 #define DUPLICATE_SAME_ATTRIBUTES 0x00000004 // // Section Information Structures. // typedef enum _SECTION_INHERIT { ViewShare = 1, ViewUnmap = 2 } SECTION_INHERIT; // // Section Access Rights. // #define SECTION_QUERY 0x0001 #define SECTION_MAP_WRITE 0x0002 #define SECTION_MAP_READ 0x0004 #define SECTION_MAP_EXECUTE 0x0008 #define SECTION_EXTEND_SIZE 0x0010 #define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\ SECTION_MAP_WRITE | \ SECTION_MAP_READ | \ SECTION_MAP_EXECUTE | \ SECTION_EXTEND_SIZE) #define SEGMENT_ALL_ACCESS SECTION_ALL_ACCESS #define PAGE_NOACCESS 0x01 #define PAGE_READONLY 0x02 #define PAGE_READWRITE 0x04 #define PAGE_WRITECOPY 0x08 #define PAGE_EXECUTE 0x10 #define PAGE_EXECUTE_READ 0x20 #define PAGE_EXECUTE_READWRITE 0x40 #define PAGE_EXECUTE_WRITECOPY 0x80 #define PAGE_GUARD 0x100 #define PAGE_NOCACHE 0x200 #define PAGE_WRITECOMBINE 0x400 #define MEM_COMMIT 0x1000 #define MEM_RESERVE 0x2000 #define MEM_DECOMMIT 0x4000 #define MEM_RELEASE 0x8000 #define MEM_FREE 0x10000 #define MEM_PRIVATE 0x20000 #define MEM_MAPPED 0x40000 #define MEM_RESET 0x80000 #define MEM_TOP_DOWN 0x100000 #define MEM_LARGE_PAGES 0x20000000 #define MEM_4MB_PAGES 0x80000000 #define SEC_RESERVE 0x4000000 #define PROCESS_DUP_HANDLE (0x0040) #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFF) #if defined(_WIN64) #define MAXIMUM_PROCESSORS 64 #else #define MAXIMUM_PROCESSORS 32 #endif // // Thread Specific Access Rights // #define THREAD_TERMINATE (0x0001) #define THREAD_SET_INFORMATION (0x0020) #define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0x3FF) // // ClientId // typedef struct _CLIENT_ID { HANDLE UniqueProcess; HANDLE UniqueThread; } CLIENT_ID; typedef CLIENT_ID *PCLIENT_ID; #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 ) #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 ) #ifndef _PO_DDK_ #define _PO_DDK_ typedef enum _SYSTEM_POWER_STATE { PowerSystemUnspecified = 0, PowerSystemWorking = 1, PowerSystemSleeping1 = 2, PowerSystemSleeping2 = 3, PowerSystemSleeping3 = 4, PowerSystemHibernate = 5, PowerSystemShutdown = 6, PowerSystemMaximum = 7 } SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; #define POWER_SYSTEM_MAXIMUM 7 typedef enum { PowerActionNone = 0, PowerActionReserved, PowerActionSleep, PowerActionHibernate, PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff, PowerActionWarmEject } POWER_ACTION, *PPOWER_ACTION; typedef enum _DEVICE_POWER_STATE { PowerDeviceUnspecified = 0, PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3, PowerDeviceMaximum } DEVICE_POWER_STATE, *PDEVICE_POWER_STATE; typedef union _POWER_STATE { SYSTEM_POWER_STATE SystemState; DEVICE_POWER_STATE DeviceState; } POWER_STATE, *PPOWER_STATE; typedef enum _POWER_STATE_TYPE { SystemPowerState = 0, DevicePowerState } POWER_STATE_TYPE, *PPOWER_STATE_TYPE; // // Generic power related IOCTLs // #define IOCTL_QUERY_DEVICE_POWER_STATE \ CTL_CODE(FILE_DEVICE_BATTERY, 0x0, METHOD_BUFFERED, FILE_READ_ACCESS) #define IOCTL_SET_DEVICE_WAKE \ CTL_CODE(FILE_DEVICE_BATTERY, 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS) #define IOCTL_CANCEL_DEVICE_WAKE \ CTL_CODE(FILE_DEVICE_BATTERY, 0x2, METHOD_BUFFERED, FILE_WRITE_ACCESS) // // Defines for W32 interfaces // #define ES_SYSTEM_REQUIRED ((ULONG)0x00000001) #define ES_DISPLAY_REQUIRED ((ULONG)0x00000002) #define ES_USER_PRESENT ((ULONG)0x00000004) #define ES_CONTINUOUS ((ULONG)0x80000000) typedef ULONG EXECUTION_STATE; typedef enum { LT_DONT_CARE, LT_LOWEST_LATENCY } LATENCY_TIME; // // System power manager capabilities // typedef struct { ULONG Granularity; ULONG Capacity; } BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE; #endif // !_PO_DDK_ #if defined(_X86_) // // Types to use to contain PFNs and their counts. // typedef ULONG PFN_COUNT; typedef LONG SPFN_NUMBER, *PSPFN_NUMBER; typedef ULONG PFN_NUMBER, *PPFN_NUMBER; // // Define maximum size of flush multiple TB request. // #define FLUSH_MULTIPLE_MAXIMUM 16 // // Indicate that the i386 compiler supports the pragma textout construct. // #define ALLOC_PRAGMA 1 // // Indicate that the i386 compiler supports the DATA_SEG("INIT") and // DATA_SEG("PAGE") pragmas // #define ALLOC_DATA_PRAGMA 1 #define NORMAL_DISPATCH_LENGTH 106 #define DISPATCH_LENGTH NORMAL_DISPATCH_LENGTH // // Interrupt Request Level definitions // #define PASSIVE_LEVEL 0 // Passive release level #define LOW_LEVEL 0 // Lowest interrupt level #define APC_LEVEL 1 // APC interrupt level #define DISPATCH_LEVEL 2 // Dispatcher level #define PROFILE_LEVEL 27 // timer used for profiling. #define CLOCK1_LEVEL 28 // Interval clock 1 level - Not used on x86 #define CLOCK2_LEVEL 28 // Interval clock 2 level #define IPI_LEVEL 29 // Interprocessor interrupt level #define POWER_LEVEL 30 // Power failure level #define HIGH_LEVEL 31 // Highest interrupt level #if defined(NT_UP) #define SYNCH_LEVEL DISPATCH_LEVEL // synchronization level - UP system #else #define SYNCH_LEVEL (IPI_LEVEL-1) // synchronization level - MP system #endif // // I/O space read and write macros. // // These have to be actual functions on the 386, because we need // to use assembler, but cannot return a value if we inline it. // // The READ/WRITE_REGISTER_* calls manipulate I/O registers in MEMORY space. // (Use x86 move instructions, with LOCK prefix to force correct behavior // w.r.t. caches and write buffers.) // // The READ/WRITE_PORT_* calls manipulate I/O registers in PORT space. // (Use x86 in/out instructions.) // NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR( PUCHAR Register ); NTKERNELAPI USHORT NTAPI READ_REGISTER_USHORT( PUSHORT Register ); NTKERNELAPI ULONG NTAPI READ_REGISTER_ULONG( PULONG Register ); NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_UCHAR( PUCHAR Register, PUCHAR Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_USHORT( PUSHORT Register, PUSHORT Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI READ_REGISTER_BUFFER_ULONG( PULONG Register, PULONG Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR( PUCHAR Register, UCHAR Value ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_USHORT( PUSHORT Register, USHORT Value ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_ULONG( PULONG Register, ULONG Value ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_UCHAR( PUCHAR Register, PUCHAR Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_USHORT( PUSHORT Register, PUSHORT Buffer, ULONG Count ); NTKERNELAPI VOID NTAPI WRITE_REGISTER_BUFFER_ULONG( PULONG Register, PULONG Buffer, ULONG Count ); NTHALAPI UCHAR NTAPI READ_PORT_UCHAR( PUCHAR Port ); NTHALAPI USHORT NTAPI READ_PORT_USHORT( PUSHORT Port ); NTHALAPI ULONG NTAPI READ_PORT_ULONG( PULONG Port ); NTHALAPI VOID NTAPI READ_PORT_BUFFER_UCHAR( PUCHAR Port, PUCHAR Buffer, ULONG Count ); NTHALAPI VOID NTAPI READ_PORT_BUFFER_USHORT( PUSHORT Port, PUSHORT Buffer, ULONG Count ); NTHALAPI VOID NTAPI READ_PORT_BUFFER_ULONG( PULONG Port, PULONG Buffer, ULONG Count ); NTHALAPI VOID NTAPI WRITE_PORT_UCHAR( PUCHAR Port, UCHAR Value ); NTHALAPI VOID NTAPI WRITE_PORT_USHORT( PUSHORT Port, USHORT Value ); NTHALAPI VOID NTAPI WRITE_PORT_ULONG( PULONG Port, ULONG Value ); NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_UCHAR( PUCHAR Port, PUCHAR Buffer, ULONG Count ); NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_USHORT( PUSHORT Port, PUSHORT Buffer, ULONG Count ); NTHALAPI VOID NTAPI WRITE_PORT_BUFFER_ULONG( PULONG Port, PULONG Buffer, ULONG Count ); // // Get data cache fill size. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(KeGetDcacheFillSize) // Use GetDmaAlignment #endif #define KeGetDcacheFillSize() 1L #define KeFlushIoBuffers(Mdl, ReadOperation, DmaOperation) #define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) #define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #define KeQueryTickCount(CurrentCount ) { \ volatile PKSYSTEM_TIME _TickCount = *((PKSYSTEM_TIME *)(&KeTickCount)); \ while (TRUE) { \ (CurrentCount)->HighPart = _TickCount->High1Time; \ (CurrentCount)->LowPart = _TickCount->LowPart; \ if ((CurrentCount)->HighPart == _TickCount->High2Time) break; \ _asm { rep nop } \ } \ } // // The non-volatile 387 state // typedef struct _KFLOATING_SAVE { ULONG DoNotUse1; ULONG DoNotUse2; ULONG DoNotUse3; ULONG DoNotUse4; ULONG DoNotUse5; ULONG DoNotUse6; ULONG DoNotUse7; ULONG DoNotUse8; } KFLOATING_SAVE, *PKFLOATING_SAVE; // // i386 Specific portions of mm component // // // Define the page size for the Intel 386 as 4096 (0x1000). // #define PAGE_SIZE 0x1000 // // Define the number of trailing zeroes in a page aligned virtual address. // This is used as the shift count when shifting virtual addresses to // virtual page numbers. // #define PAGE_SHIFT 12L #define MmGetProcedureAddress(Address) (Address) #define MmLockPagableCodeSection(Address) MmLockPagableDataSection(Address) #define KIP0PCRADDRESS 0xffdff000 #define ExInterlockedAddUlong ExfInterlockedAddUlong #define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList #define ExInterlockedInsertTailList ExfInterlockedInsertTailList #define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList #define ExInterlockedPopEntryList ExfInterlockedPopEntryList #define ExInterlockedPushEntryList ExfInterlockedPushEntryList #pragma warning(disable:4035) #if !defined(MIDL_PASS) NTKERNELAPI LONG FASTCALL InterlockedIncrement( IN LONG volatile *Addend ); NTKERNELAPI LONG FASTCALL InterlockedDecrement( IN LONG volatile *Addend ); NTKERNELAPI LONG FASTCALL InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); #define InterlockedExchangePointer(Target, Value) \ (PVOID)InterlockedExchange((PLONG)(Target), (LONG)(Value)) LONG FASTCALL InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Increment ); NTKERNELAPI LONG FASTCALL InterlockedCompareExchange( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); #define InterlockedCompareExchangePointer(Destination, ExChange, Comperand) \ (PVOID)InterlockedCompareExchange((PLONG)Destination, (LONG)ExChange, (LONG)Comperand) #define InterlockedCompareExchange64(Destination, ExChange, Comperand) \ ExfInterlockedCompareExchange64(Destination, &(ExChange), &(Comperand)) NTKERNELAPI LONGLONG FASTCALL ExfInterlockedCompareExchange64( IN OUT LONGLONG volatile *Destination, IN PLONGLONG ExChange, IN PLONGLONG Comperand ); FORCEINLINE LONG FASTCALL InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Increment ) { __asm { mov eax, Increment mov ecx, Addend lock xadd [ecx], eax } } #endif // MIDL_PASS // end_ntosp end_ntddk end_nthal #pragma warning(default:4035) #if !defined(MIDL_PASS) && defined(_M_IX86) // // i386 function definitions // #pragma warning(disable:4035) // re-enable below // // Get current IRQL. // // On x86 this function resides in the HAL // NTHALAPI KIRQL NTAPI KeGetCurrentIrql(); #endif // !defined(MIDL_PASS) && defined(_M_IX86) NTKERNELAPI NTSTATUS NTAPI KeSaveFloatingPointState ( OUT PKFLOATING_SAVE FloatSave ); NTKERNELAPI NTSTATUS NTAPI KeRestoreFloatingPointState ( IN PKFLOATING_SAVE FloatSave ); #endif // defined(_X86_) #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) // // Define intrinsic function to do in's and out's. // #ifdef __cplusplus extern "C" { #endif UCHAR __inbyte ( IN USHORT Port ); USHORT __inword ( IN USHORT Port ); ULONG __indword ( IN USHORT Port ); VOID __outbyte ( IN USHORT Port, IN UCHAR Data ); VOID __outword ( IN USHORT Port, IN USHORT Data ); VOID __outdword ( IN USHORT Port, IN ULONG Data ); VOID __inbytestring ( IN USHORT Port, IN PUCHAR Buffer, IN ULONG Count ); VOID __inwordstring ( IN USHORT Port, IN PUSHORT Buffer, IN ULONG Count ); VOID __indwordstring ( IN USHORT Port, IN PULONG Buffer, IN ULONG Count ); VOID __outbytestring ( IN USHORT Port, IN PUCHAR Buffer, IN ULONG Count ); VOID __outwordstring ( IN USHORT Port, IN PUSHORT Buffer, IN ULONG Count ); VOID __outdwordstring ( IN USHORT Port, IN PULONG Buffer, IN ULONG Count ); #ifdef __cplusplus } #endif #pragma intrinsic(__inbyte) #pragma intrinsic(__inword) #pragma intrinsic(__indword) #pragma intrinsic(__outbyte) #pragma intrinsic(__outword) #pragma intrinsic(__outdword) #pragma intrinsic(__inbytestring) #pragma intrinsic(__inwordstring) #pragma intrinsic(__indwordstring) #pragma intrinsic(__outbytestring) #pragma intrinsic(__outwordstring) #pragma intrinsic(__outdwordstring) // // Interlocked intrinsic functions. // #define InterlockedAnd _InterlockedAnd #define InterlockedOr _InterlockedOr #define InterlockedXor _InterlockedXor #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedAdd _InterlockedAdd #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedAnd64 _InterlockedAnd64 #define InterlockedOr64 _InterlockedOr64 #define InterlockedXor64 _InterlockedXor64 #define InterlockedIncrement64 _InterlockedIncrement64 #define InterlockedDecrement64 _InterlockedDecrement64 #define InterlockedAdd64 _InterlockedAdd64 #define InterlockedExchange64 _InterlockedExchange64 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer #ifdef __cplusplus extern "C" { #endif LONG InterlockedAnd ( IN OUT LONG volatile *Destination, IN LONG Value ); LONG InterlockedOr ( IN OUT LONG volatile *Destination, IN LONG Value ); LONG InterlockedXor ( IN OUT LONG volatile *Destination, IN LONG Value ); LONG64 InterlockedAnd64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedOr64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG64 InterlockedXor64 ( IN OUT LONG64 volatile *Destination, IN LONG64 Value ); LONG InterlockedIncrement( IN OUT LONG volatile *Addend ); LONG InterlockedDecrement( IN OUT LONG volatile *Addend ); LONG InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); LONG InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); #if !defined(_X86AMD64_) __forceinline LONG InterlockedAdd( IN OUT LONG volatile *Addend, IN LONG Value ) { return InterlockedExchangeAdd(Addend, Value) + Value; } #endif LONG InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); LONG64 InterlockedIncrement64( IN OUT LONG64 volatile *Addend ); LONG64 InterlockedDecrement64( IN OUT LONG64 volatile *Addend ); LONG64 InterlockedExchange64( IN OUT LONG64 volatile *Target, IN LONG64 Value ); LONG64 InterlockedExchangeAdd64( IN OUT LONG64 volatile *Addend, IN LONG64 Value ); #if !defined(_X86AMD64_) __forceinline LONG64 InterlockedAdd64( IN OUT LONG64 volatile *Addend, IN LONG64 Value ) { return InterlockedExchangeAdd64(Addend, Value) + Value; } #endif LONG64 InterlockedCompareExchange64 ( IN OUT LONG64 volatile *Destination, IN LONG64 ExChange, IN LONG64 Comperand ); PVOID InterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID Exchange, IN PVOID Comperand ); PVOID InterlockedExchangePointer( IN OUT PVOID volatile *Target, IN PVOID Value ); #pragma intrinsic(_InterlockedAnd) #pragma intrinsic(_InterlockedOr) #pragma intrinsic(_InterlockedXor) #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedExchangeAdd) #pragma intrinsic(_InterlockedCompareExchange) #pragma intrinsic(_InterlockedAnd64) #pragma intrinsic(_InterlockedOr64) #pragma intrinsic(_InterlockedXor64) #pragma intrinsic(_InterlockedIncrement64) #pragma intrinsic(_InterlockedDecrement64) #pragma intrinsic(_InterlockedExchange64) #pragma intrinsic(_InterlockedExchangeAdd64) #pragma intrinsic(_InterlockedCompareExchange64) #pragma intrinsic(_InterlockedExchangePointer) #pragma intrinsic(_InterlockedCompareExchangePointer) #ifdef __cplusplus } #endif #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) #if defined(_AMD64_) // // Types to use to contain PFNs and their counts. // typedef ULONG PFN_COUNT; typedef LONG64 SPFN_NUMBER, *PSPFN_NUMBER; typedef ULONG64 PFN_NUMBER, *PPFN_NUMBER; // // Define maximum size of flush multiple TB request. // #define FLUSH_MULTIPLE_MAXIMUM 16 // // Indicate that the AMD64 compiler supports the allocate pragmas. // #define ALLOC_PRAGMA 1 #define ALLOC_DATA_PRAGMA 1 #define NORMAL_DISPATCH_LENGTH 106 #define DISPATCH_LENGTH NORMAL_DISPATCH_LENGTH // // Interrupt Request Level definitions // #define PASSIVE_LEVEL 0 // Passive release level #define LOW_LEVEL 0 // Lowest interrupt level #define APC_LEVEL 1 // APC interrupt level #define DISPATCH_LEVEL 2 // Dispatcher level #define CLOCK_LEVEL 13 // Interval clock level #define IPI_LEVEL 14 // Interprocessor interrupt level #define POWER_LEVEL 14 // Power failure level #define PROFILE_LEVEL 15 // timer used for profiling. #define HIGH_LEVEL 15 // Highest interrupt level #if defined(NT_UP) #define SYNCH_LEVEL DISPATCH_LEVEL // synchronization level #else #define SYNCH_LEVEL (IPI_LEVEL - 1) // synchronization level #endif #define IRQL_VECTOR_OFFSET 2 // offset from IRQL to vector / 16 // // I/O space read and write macros. // // The READ/WRITE_REGISTER_* calls manipulate I/O registers in MEMORY space. // (Use move instructions, with LOCK prefix to force correct behavior // w.r.t. caches and write buffers.) // // The READ/WRITE_PORT_* calls manipulate I/O registers in PORT space. // (Use in/out instructions.) // __forceinline UCHAR READ_REGISTER_UCHAR ( volatile UCHAR *Register ) { return *Register; } __forceinline USHORT READ_REGISTER_USHORT ( volatile USHORT *Register ) { return *Register; } __forceinline ULONG READ_REGISTER_ULONG ( volatile ULONG *Register ) { return *Register; } __forceinline VOID READ_REGISTER_BUFFER_UCHAR ( PUCHAR Register, PUCHAR Buffer, ULONG Count ) { __movsb(Register, Buffer, Count); return; } __forceinline VOID READ_REGISTER_BUFFER_USHORT ( PUSHORT Register, PUSHORT Buffer, ULONG Count ) { __movsw(Register, Buffer, Count); return; } __forceinline VOID READ_REGISTER_BUFFER_ULONG ( PULONG Register, PULONG Buffer, ULONG Count ) { __movsd(Register, Buffer, Count); return; } __forceinline VOID WRITE_REGISTER_UCHAR ( PUCHAR Register, UCHAR Value ) { LONG Synch; *Register = Value; InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_USHORT ( PUSHORT Register, USHORT Value ) { LONG Synch; *Register = Value; InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_ULONG ( PULONG Register, ULONG Value ) { LONG Synch; *Register = Value; InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_BUFFER_UCHAR ( PUCHAR Register, PUCHAR Buffer, ULONG Count ) { LONG Synch; __movsb(Register, Buffer, Count); InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_BUFFER_USHORT ( PUSHORT Register, PUSHORT Buffer, ULONG Count ) { LONG Synch; __movsw(Register, Buffer, Count); InterlockedOr(&Synch, 1); return; } __forceinline VOID WRITE_REGISTER_BUFFER_ULONG ( PULONG Register, PULONG Buffer, ULONG Count ) { LONG Synch; __movsd(Register, Buffer, Count); InterlockedOr(&Synch, 1); return; } __forceinline UCHAR READ_PORT_UCHAR ( PUCHAR Port ) { return __inbyte((USHORT)((ULONG64)Port)); } __forceinline USHORT READ_PORT_USHORT ( PUSHORT Port ) { return __inword((USHORT)((ULONG64)Port)); } __forceinline ULONG READ_PORT_ULONG ( PULONG Port ) { return __indword((USHORT)((ULONG64)Port)); } __forceinline VOID READ_PORT_BUFFER_UCHAR ( PUCHAR Port, PUCHAR Buffer, ULONG Count ) { __inbytestring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID READ_PORT_BUFFER_USHORT ( PUSHORT Port, PUSHORT Buffer, ULONG Count ) { __inwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID READ_PORT_BUFFER_ULONG ( PULONG Port, PULONG Buffer, ULONG Count ) { __indwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID WRITE_PORT_UCHAR ( PUCHAR Port, UCHAR Value ) { __outbyte((USHORT)((ULONG64)Port), Value); return; } __forceinline VOID WRITE_PORT_USHORT ( PUSHORT Port, USHORT Value ) { __outword((USHORT)((ULONG64)Port), Value); return; } __forceinline VOID WRITE_PORT_ULONG ( PULONG Port, ULONG Value ) { __outdword((USHORT)((ULONG64)Port), Value); return; } __forceinline VOID WRITE_PORT_BUFFER_UCHAR ( PUCHAR Port, PUCHAR Buffer, ULONG Count ) { __outbytestring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID WRITE_PORT_BUFFER_USHORT ( PUSHORT Port, PUSHORT Buffer, ULONG Count ) { __outwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } __forceinline VOID WRITE_PORT_BUFFER_ULONG ( PULONG Port, PULONG Buffer, ULONG Count ) { __outdwordstring((USHORT)((ULONG64)Port), Buffer, Count); return; } // // Get data cache fill size. // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(KeGetDcacheFillSize) // Use GetDmaAlignment #endif #define KeGetDcacheFillSize() 1L #define KeFlushIoBuffers(Mdl, ReadOperation, DmaOperation) #define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) #define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #define KeQueryTickCount(CurrentCount ) \ *(PULONG64)(CurrentCount) = **((volatile ULONG64 **)(&KeTickCount)); // // The nonvolatile floating state // typedef struct _KFLOATING_SAVE { ULONG MxCsr; } KFLOATING_SAVE, *PKFLOATING_SAVE; // // AMD64 Specific portions of mm component. // // Define the page size for the AMD64 as 4096 (0x1000). // #define PAGE_SIZE 0x1000 // // Define the number of trailing zeroes in a page aligned virtual address. // This is used as the shift count when shifting virtual addresses to // virtual page numbers. // #define PAGE_SHIFT 12L #define MmGetProcedureAddress(Address) (Address) #define MmLockPagableCodeSection(Address) MmLockPagableDataSection(Address) #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) #if !defined(MIDL_PASS) && defined(_M_AMD64) // // AMD646 function prototype definitions // #endif // !defined(MIDL_PASS) && defined(_M_AMD64) NTKERNELAPI NTSTATUS KeSaveFloatingPointState ( OUT PKFLOATING_SAVE SaveArea ); NTKERNELAPI NTSTATUS KeRestoreFloatingPointState ( IN PKFLOATING_SAVE SaveArea ); #endif // defined(_AMD64_) #if defined(_AMD64_) NTKERNELAPI KIRQL KeGetCurrentIrql ( VOID ); NTKERNELAPI VOID KeLowerIrql ( IN KIRQL NewIrql ); #define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a) NTKERNELAPI KIRQL KfRaiseIrql ( IN KIRQL NewIrql ); #endif // defined(_AMD64_) #if defined(_IA64_) // // Types to use to contain PFNs and their counts. // typedef ULONG PFN_COUNT; typedef LONG_PTR SPFN_NUMBER, *PSPFN_NUMBER; typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER; // // Define maximum size of flush multiple TB request. // #define FLUSH_MULTIPLE_MAXIMUM 100 // // Indicate that the IA64 compiler supports the pragma textout construct. // #define ALLOC_PRAGMA 1 // // Define intrinsic calls and their prototypes // #include "ia64reg.h" #ifdef __cplusplus extern "C" { #endif unsigned __int64 __getReg (int); void __setReg (int, unsigned __int64); void __isrlz (void); void __dsrlz (void); void __fwb (void); void __mf (void); void __mfa (void); void __synci (void); __int64 __thash (__int64); __int64 __ttag (__int64); void __ptcl (__int64, __int64); void __ptcg (__int64, __int64); void __ptcga (__int64, __int64); void __ptri (__int64, __int64); void __ptrd (__int64, __int64); void __invalat (void); void __break (int); void __fc (__int64); void __sum (int); void __rsm (int); void _ReleaseSpinLock( unsigned __int64 *); #ifdef _M_IA64 #pragma intrinsic (__getReg) #pragma intrinsic (__setReg) #pragma intrinsic (__isrlz) #pragma intrinsic (__dsrlz) #pragma intrinsic (__fwb) #pragma intrinsic (__mf) #pragma intrinsic (__mfa) #pragma intrinsic (__synci) #pragma intrinsic (__thash) #pragma intrinsic (__ttag) #pragma intrinsic (__ptcl) #pragma intrinsic (__ptcg) #pragma intrinsic (__ptcga) #pragma intrinsic (__ptri) #pragma intrinsic (__ptrd) #pragma intrinsic (__invalat) #pragma intrinsic (__break) #pragma intrinsic (__fc) #pragma intrinsic (__sum) #pragma intrinsic (__rsm) #pragma intrinsic (_ReleaseSpinLock) #endif // _M_IA64 #ifdef __cplusplus } #endif // // Define length of interrupt vector table. // #define MAXIMUM_VECTOR 256 // // IA64 Interrupt Definitions. // // Define length of interrupt object dispatch code in longwords. // #define DISPATCH_LENGTH 2*2 // Length of dispatch code template in 32-bit words // // Begin of a block of definitions that must be synchronized with kxia64.h. // // // Define Interrupt Request Levels. // #define PASSIVE_LEVEL 0 // Passive release level #define LOW_LEVEL 0 // Lowest interrupt level #define APC_LEVEL 1 // APC interrupt level #define DISPATCH_LEVEL 2 // Dispatcher level #define CMC_LEVEL 3 // Correctable machine check level #define DEVICE_LEVEL_BASE 4 // 4 - 11 - Device IRQLs #define PC_LEVEL 12 // Performance Counter IRQL #define IPI_LEVEL 14 // IPI IRQL #define CLOCK_LEVEL 13 // Clock Timer IRQL #define POWER_LEVEL 15 // Power failure level #define PROFILE_LEVEL 15 // Profiling level #define HIGH_LEVEL 15 // Highest interrupt level #if defined(NT_UP) #define SYNCH_LEVEL DISPATCH_LEVEL // Synchronization level - UP #else #define SYNCH_LEVEL (IPI_LEVEL-1) // Synchronization level - MP #endif // // The current IRQL is maintained in the TPR.mic field. The // shift count is the number of bits to shift right to extract the // IRQL from the TPR. See the GET/SET_IRQL macros. // #define TPR_MIC 4 #define TPR_IRQL_SHIFT TPR_MIC // To go from vector number <-> IRQL we just do a shift #define VECTOR_IRQL_SHIFT TPR_IRQL_SHIFT // // Interrupt Vector Definitions // #define APC_VECTOR APC_LEVEL << VECTOR_IRQL_SHIFT #define DISPATCH_VECTOR DISPATCH_LEVEL << VECTOR_IRQL_SHIFT // // End of a block of definitions that must be synchronized with kxia64.h. // // // Define profile intervals. // #define DEFAULT_PROFILE_COUNT 0x40000000 // ~= 20 seconds @50mhz #define DEFAULT_PROFILE_INTERVAL (10 * 500) // 500 microseconds #define MAXIMUM_PROFILE_INTERVAL (10 * 1000 * 1000) // 1 second #define MINIMUM_PROFILE_INTERVAL (10 * 40) // 40 microseconds #if defined(_M_IA64) && !defined(RC_INVOKED) #define InterlockedAdd _InterlockedAdd #define InterlockedIncrement _InterlockedIncrement #define InterlockedDecrement _InterlockedDecrement #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd #define InterlockedAdd64 _InterlockedAdd64 #define InterlockedIncrement64 _InterlockedIncrement64 #define InterlockedDecrement64 _InterlockedDecrement64 #define InterlockedExchange64 _InterlockedExchange64 #define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedCompareExchange64 _InterlockedCompareExchange64 #define InterlockedCompareExchange _InterlockedCompareExchange #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer #ifdef __cplusplus extern "C" { #endif LONG __cdecl InterlockedAdd ( LONG volatile *Addend, LONG Value ); LONGLONG __cdecl InterlockedAdd64 ( LONGLONG volatile *Addend, LONGLONG Value ); LONG __cdecl InterlockedIncrement( IN OUT LONG volatile *Addend ); LONG __cdecl InterlockedDecrement( IN OUT LONG volatile *Addend ); LONG __cdecl InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value ); LONG __cdecl InterlockedExchangeAdd( IN OUT LONG volatile *Addend, IN LONG Value ); LONG __cdecl InterlockedCompareExchange ( IN OUT LONG volatile *Destination, IN LONG ExChange, IN LONG Comperand ); LONGLONG __cdecl InterlockedIncrement64( IN OUT LONGLONG volatile *Addend ); LONGLONG __cdecl InterlockedDecrement64( IN OUT LONGLONG volatile *Addend ); LONGLONG __cdecl InterlockedExchange64( IN OUT LONGLONG volatile *Target, IN LONGLONG Value ); LONGLONG __cdecl InterlockedExchangeAdd64( IN OUT LONGLONG volatile *Addend, IN LONGLONG Value ); LONGLONG __cdecl InterlockedCompareExchange64 ( IN OUT LONGLONG volatile *Destination, IN LONGLONG ExChange, IN LONGLONG Comperand ); PVOID __cdecl InterlockedCompareExchangePointer ( IN OUT PVOID volatile *Destination, IN PVOID Exchange, IN PVOID Comperand ); PVOID __cdecl InterlockedExchangePointer( IN OUT PVOID volatile *Target, IN PVOID Value ); #pragma intrinsic(_InterlockedAdd) #pragma intrinsic(_InterlockedIncrement) #pragma intrinsic(_InterlockedDecrement) #pragma intrinsic(_InterlockedExchange) #pragma intrinsic(_InterlockedCompareExchange) #pragma intrinsic(_InterlockedExchangeAdd) #pragma intrinsic(_InterlockedAdd64) #pragma intrinsic(_InterlockedIncrement64) #pragma intrinsic(_InterlockedDecrement64) #pragma intrinsic(_InterlockedExchange64) #pragma intrinsic(_InterlockedCompareExchange64) #pragma intrinsic(_InterlockedExchangeAdd64) #pragma intrinsic(_InterlockedExchangePointer) #pragma intrinsic(_InterlockedCompareExchangePointer) #ifdef __cplusplus } #endif #endif // defined(_M_IA64) && !defined(RC_INVOKED) #define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000)) #define SharedUserData ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA) // // Prototype for get current IRQL. **** TBD (read TPR) // NTKERNELAPI KIRQL KeGetCurrentIrql(); #define KeSaveFloatingPointState(a) STATUS_SUCCESS #define KeRestoreFloatingPointState(a) STATUS_SUCCESS // // Define the page size // #define PAGE_SIZE 0x2000 // // Define the number of trailing zeroes in a page aligned virtual address. // This is used as the shift count when shifting virtual addresses to // virtual page numbers. // #define PAGE_SHIFT 13L // // Cache and write buffer flush functions. // NTKERNELAPI VOID KeFlushIoBuffers ( IN PMDL Mdl, IN BOOLEAN ReadOperation, IN BOOLEAN DmaOperation ); // // Kernel breakin breakpoint // VOID KeBreakinBreakpoint ( VOID ); #define ExAcquireSpinLock(Lock, OldIrql) KeAcquireSpinLock((Lock), (OldIrql)) #define ExReleaseSpinLock(Lock, OldIrql) KeReleaseSpinLock((Lock), (OldIrql)) #define ExAcquireSpinLockAtDpcLevel(Lock) KeAcquireSpinLockAtDpcLevel(Lock) #define ExReleaseSpinLockFromDpcLevel(Lock) KeReleaseSpinLockFromDpcLevel(Lock) #define KeQueryTickCount(CurrentCount ) \ *(PULONGLONG)(CurrentCount) = **((volatile ULONGLONG **)(&KeTickCount)); // // I/O space read and write macros. // NTHALAPI UCHAR READ_PORT_UCHAR ( PUCHAR RegisterAddress ); NTHALAPI USHORT READ_PORT_USHORT ( PUSHORT RegisterAddress ); NTHALAPI ULONG READ_PORT_ULONG ( PULONG RegisterAddress ); NTHALAPI VOID READ_PORT_BUFFER_UCHAR ( PUCHAR portAddress, PUCHAR readBuffer, ULONG readCount ); NTHALAPI VOID READ_PORT_BUFFER_USHORT ( PUSHORT portAddress, PUSHORT readBuffer, ULONG readCount ); NTHALAPI VOID READ_PORT_BUFFER_ULONG ( PULONG portAddress, PULONG readBuffer, ULONG readCount ); NTHALAPI VOID WRITE_PORT_UCHAR ( PUCHAR portAddress, UCHAR Data ); NTHALAPI VOID WRITE_PORT_USHORT ( PUSHORT portAddress, USHORT Data ); NTHALAPI VOID WRITE_PORT_ULONG ( PULONG portAddress, ULONG Data ); NTHALAPI VOID WRITE_PORT_BUFFER_UCHAR ( PUCHAR portAddress, PUCHAR writeBuffer, ULONG writeCount ); NTHALAPI VOID WRITE_PORT_BUFFER_USHORT ( PUSHORT portAddress, PUSHORT writeBuffer, ULONG writeCount ); NTHALAPI VOID WRITE_PORT_BUFFER_ULONG ( PULONG portAddress, PULONG writeBuffer, ULONG writeCount ); #define READ_REGISTER_UCHAR(x) \ (__mf(), *(volatile UCHAR * const)(x)) #define READ_REGISTER_USHORT(x) \ (__mf(), *(volatile USHORT * const)(x)) #define READ_REGISTER_ULONG(x) \ (__mf(), *(volatile ULONG * const)(x)) #define READ_REGISTER_BUFFER_UCHAR(x, y, z) { \ PUCHAR registerBuffer = x; \ PUCHAR readBuffer = y; \ ULONG readCount; \ __mf(); \ for (readCount = z; readCount--; readBuffer++, registerBuffer++) { \ *readBuffer = *(volatile UCHAR * const)(registerBuffer); \ } \ } #define READ_REGISTER_BUFFER_USHORT(x, y, z) { \ PUSHORT registerBuffer = x; \ PUSHORT readBuffer = y; \ ULONG readCount; \ __mf(); \ for (readCount = z; readCount--; readBuffer++, registerBuffer++) { \ *readBuffer = *(volatile USHORT * const)(registerBuffer); \ } \ } #define READ_REGISTER_BUFFER_ULONG(x, y, z) { \ PULONG registerBuffer = x; \ PULONG readBuffer = y; \ ULONG readCount; \ __mf(); \ for (readCount = z; readCount--; readBuffer++, registerBuffer++) { \ *readBuffer = *(volatile ULONG * const)(registerBuffer); \ } \ } #define WRITE_REGISTER_UCHAR(x, y) { \ *(volatile UCHAR * const)(x) = y; \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_USHORT(x, y) { \ *(volatile USHORT * const)(x) = y; \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_ULONG(x, y) { \ *(volatile ULONG * const)(x) = y; \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_BUFFER_UCHAR(x, y, z) { \ PUCHAR registerBuffer = x; \ PUCHAR writeBuffer = y; \ ULONG writeCount; \ for (writeCount = z; writeCount--; writeBuffer++, registerBuffer++) { \ *(volatile UCHAR * const)(registerBuffer) = *writeBuffer; \ } \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_BUFFER_USHORT(x, y, z) { \ PUSHORT registerBuffer = x; \ PUSHORT writeBuffer = y; \ ULONG writeCount; \ for (writeCount = z; writeCount--; writeBuffer++, registerBuffer++) { \ *(volatile USHORT * const)(registerBuffer) = *writeBuffer; \ } \ KeFlushWriteBuffer(); \ } #define WRITE_REGISTER_BUFFER_ULONG(x, y, z) { \ PULONG registerBuffer = x; \ PULONG writeBuffer = y; \ ULONG writeCount; \ for (writeCount = z; writeCount--; writeBuffer++, registerBuffer++) { \ *(volatile ULONG * const)(registerBuffer) = *writeBuffer; \ } \ KeFlushWriteBuffer(); \ } // // Non-volatile floating point state // typedef struct _KFLOATING_SAVE { ULONG Reserved; } KFLOATING_SAVE, *PKFLOATING_SAVE; #define MmGetProcedureAddress(Address) (Address) #define MmLockPagableCodeSection(PLabelAddress) \ MmLockPagableDataSection((PVOID)(*((PULONGLONG)PLabelAddress))) #define VRN_MASK 0xE000000000000000UI64 // Virtual Region Number mask // // The lowest address for system space. // #define MM_LOWEST_SYSTEM_ADDRESS ((PVOID)((ULONG_PTR)(KADDRESS_BASE + 0xC0C00000))) #endif // defined(_IA64_) // // Event Specific Access Rights. // #define EVENT_QUERY_STATE 0x0001 #define EVENT_MODIFY_STATE 0x0002 #define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // // Semaphore Specific Access Rights. // #define SEMAPHORE_QUERY_STATE 0x0001 #define SEMAPHORE_MODIFY_STATE 0x0002 #define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) // // Defined processor features // #define PF_FLOATING_POINT_PRECISION_ERRATA 0 #define PF_FLOATING_POINT_EMULATED 1 #define PF_COMPARE_EXCHANGE_DOUBLE 2 #define PF_MMX_INSTRUCTIONS_AVAILABLE 3 #define PF_PPC_MOVEMEM_64BIT_OK 4 #define PF_ALPHA_BYTE_INSTRUCTIONS 5 #define PF_XMMI_INSTRUCTIONS_AVAILABLE 6 #define PF_3DNOW_INSTRUCTIONS_AVAILABLE 7 #define PF_RDTSC_INSTRUCTION_AVAILABLE 8 #define PF_PAE_ENABLED 9 #define PF_XMMI64_INSTRUCTIONS_AVAILABLE 10 typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign, // None == 0 == standard design NEC98x86, // NEC PC98xx series on X86 EndAlternatives // past end of known alternatives } ALTERNATIVE_ARCHITECTURE_TYPE; // correctly define these run-time definitions for non X86 machines #ifndef _X86_ #ifndef IsNEC_98 #define IsNEC_98 (FALSE) #endif #ifndef IsNotNEC_98 #define IsNotNEC_98 (TRUE) #endif #ifndef SetNEC_98 #define SetNEC_98 #endif #ifndef SetNotNEC_98 #define SetNotNEC_98 #endif #endif #define PROCESSOR_FEATURE_MAX 64 // // Predefined Value Types. // #define REG_NONE ( 0 ) // No value type #define REG_SZ ( 1 ) // Unicode nul terminated string #define REG_EXPAND_SZ ( 2 ) // Unicode nul terminated string // (with environment variable references) #define REG_BINARY ( 3 ) // Free form binary #define REG_DWORD ( 4 ) // 32-bit number #define REG_DWORD_LITTLE_ENDIAN ( 4 ) // 32-bit number (same as REG_DWORD) #define REG_DWORD_BIG_ENDIAN ( 5 ) // 32-bit number #define REG_LINK ( 6 ) // Symbolic Link (unicode) #define REG_MULTI_SZ ( 7 ) // Multiple Unicode strings #define REG_RESOURCE_LIST ( 8 ) // Resource list in the resource map #define REG_FULL_RESOURCE_DESCRIPTOR ( 9 ) // Resource list in the hardware description #define REG_RESOURCE_REQUIREMENTS_LIST ( 10 ) #define REG_QWORD ( 11 ) // 64-bit number #define REG_QWORD_LITTLE_ENDIAN ( 11 ) // 64-bit number (same as REG_QWORD) // // Service Types (Bit Mask) // #define SERVICE_KERNEL_DRIVER 0x00000001 #define SERVICE_FILE_SYSTEM_DRIVER 0x00000002 #define SERVICE_ADAPTER 0x00000004 #define SERVICE_RECOGNIZER_DRIVER 0x00000008 #define SERVICE_DRIVER (SERVICE_KERNEL_DRIVER | \ SERVICE_FILE_SYSTEM_DRIVER | \ SERVICE_RECOGNIZER_DRIVER) #define SERVICE_WIN32_OWN_PROCESS 0x00000010 #define SERVICE_WIN32_SHARE_PROCESS 0x00000020 #define SERVICE_WIN32 (SERVICE_WIN32_OWN_PROCESS | \ SERVICE_WIN32_SHARE_PROCESS) #define SERVICE_INTERACTIVE_PROCESS 0x00000100 #define SERVICE_TYPE_ALL (SERVICE_WIN32 | \ SERVICE_ADAPTER | \ SERVICE_DRIVER | \ SERVICE_INTERACTIVE_PROCESS) // // Start Type // #define SERVICE_BOOT_START 0x00000000 #define SERVICE_SYSTEM_START 0x00000001 #define SERVICE_AUTO_START 0x00000002 #define SERVICE_DEMAND_START 0x00000003 #define SERVICE_DISABLED 0x00000004 // // Error control type // #define SERVICE_ERROR_IGNORE 0x00000000 #define SERVICE_ERROR_NORMAL 0x00000001 #define SERVICE_ERROR_SEVERE 0x00000002 #define SERVICE_ERROR_CRITICAL 0x00000003 // // // Define the registry driver node enumerations // typedef enum _CM_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 } SERVICE_NODE_TYPE; typedef enum _CM_SERVICE_LOAD_TYPE { BootLoad = SERVICE_BOOT_START, SystemLoad = SERVICE_SYSTEM_START, AutoLoad = SERVICE_AUTO_START, DemandLoad = SERVICE_DEMAND_START, DisableLoad = SERVICE_DISABLED } SERVICE_LOAD_TYPE; typedef enum _CM_ERROR_CONTROL_TYPE { IgnoreError = SERVICE_ERROR_IGNORE, NormalError = SERVICE_ERROR_NORMAL, SevereError = SERVICE_ERROR_SEVERE, CriticalError = SERVICE_ERROR_CRITICAL } SERVICE_ERROR_TYPE; // // Resource List definitions // // // Defines the Type in the RESOURCE_DESCRIPTOR // // NOTE: For all CM_RESOURCE_TYPE values, there must be a // corresponding ResType value in the 32-bit ConfigMgr headerfile // (cfgmgr32.h). Values in the range [0x6,0x80) use the same values // as their ConfigMgr counterparts. CM_RESOURCE_TYPE values with // the high bit set (i.e., in the range [0x80,0xFF]), are // non-arbitrated resources. These correspond to the same values // in cfgmgr32.h that have their high bit set (however, since // cfgmgr32.h uses 16 bits for ResType values, these values are in // the range [0x8000,0x807F). Note that ConfigMgr ResType values // cannot be in the range [0x8080,0xFFFF), because they would not // be able to map into CM_RESOURCE_TYPE values. (0xFFFF itself is // a special value, because it maps to CmResourceTypeDeviceSpecific.) // typedef int CM_RESOURCE_TYPE; // CmResourceTypeNull is reserved #define CmResourceTypeNull 0 // ResType_All or ResType_None (0x0000) #define CmResourceTypePort 1 // ResType_IO (0x0002) #define CmResourceTypeInterrupt 2 // ResType_IRQ (0x0004) #define CmResourceTypeMemory 3 // ResType_Mem (0x0001) #define CmResourceTypeDma 4 // ResType_DMA (0x0003) #define CmResourceTypeDeviceSpecific 5 // ResType_ClassSpecific (0xFFFF) #define CmResourceTypeBusNumber 6 // ResType_BusNumber (0x0006) #define CmResourceTypeNonArbitrated 128 // Not arbitrated if 0x80 bit set #define CmResourceTypeConfigData 128 // ResType_Reserved (0x8000) #define CmResourceTypeDevicePrivate 129 // ResType_DevicePrivate (0x8001) #define CmResourceTypePcCardConfig 130 // ResType_PcCardConfig (0x8002) #define CmResourceTypeMfCardConfig 131 // ResType_MfCardConfig (0x8003) // // Defines the ShareDisposition in the RESOURCE_DESCRIPTOR // typedef enum _CM_SHARE_DISPOSITION { CmResourceShareUndetermined = 0, // Reserved CmResourceShareDeviceExclusive, CmResourceShareDriverExclusive, CmResourceShareShared } CM_SHARE_DISPOSITION; // // Define the bit masks for Flags when type is CmResourceTypeInterrupt // #define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0 #define CM_RESOURCE_INTERRUPT_LATCHED 1 // // Define the bit masks for Flags when type is CmResourceTypeMemory // #define CM_RESOURCE_MEMORY_READ_WRITE 0x0000 #define CM_RESOURCE_MEMORY_READ_ONLY 0x0001 #define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002 #define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004 #define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008 #define CM_RESOURCE_MEMORY_24 0x0010 #define CM_RESOURCE_MEMORY_CACHEABLE 0x0020 // // Define the bit masks for Flags when type is CmResourceTypePort // #define CM_RESOURCE_PORT_MEMORY 0x0000 #define CM_RESOURCE_PORT_IO 0x0001 #define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004 #define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008 #define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010 #define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020 #define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040 #define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080 // // Define the bit masks for Flags when type is CmResourceTypeDma // #define CM_RESOURCE_DMA_8 0x0000 #define CM_RESOURCE_DMA_16 0x0001 #define CM_RESOURCE_DMA_32 0x0002 #define CM_RESOURCE_DMA_8_AND_16 0x0004 #define CM_RESOURCE_DMA_BUS_MASTER 0x0008 #define CM_RESOURCE_DMA_TYPE_A 0x0010 #define CM_RESOURCE_DMA_TYPE_B 0x0020 #define CM_RESOURCE_DMA_TYPE_F 0x0040 // // This structure defines one type of resource used by a driver. // // There can only be *1* DeviceSpecificData block. It must be located at // the end of all resource descriptors in a full descriptor block. // // // Make sure alignment is made properly by compiler; otherwise move // flags back to the top of the structure (common to all members of the // union). // #include "pshpack4.h" typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR { UCHAR Type; UCHAR ShareDisposition; USHORT Flags; union { // // Range of resources, inclusive. These are physical, bus relative. // It is known that Port and Memory below have the exact same layout // as Generic. // struct { PHYSICAL_ADDRESS Start; ULONG Length; } Generic; // // struct { PHYSICAL_ADDRESS Start; ULONG Length; } Port; // // struct { ULONG Level; ULONG Vector; KAFFINITY Affinity; } Interrupt; // // Range of memory addresses, inclusive. These are physical, bus // relative. The value should be the same as the one passed to // HalTranslateBusAddress(). // struct { PHYSICAL_ADDRESS Start; // 64 bit physical addresses. ULONG Length; } Memory; // // Physical DMA channel. // struct { ULONG Channel; ULONG Port; ULONG Reserved1; } Dma; // // Device driver private data, usually used to help it figure // what the resource assignments decisions that were made. // struct { ULONG Data[3]; } DevicePrivate; // // Bus Number information. // struct { ULONG Start; ULONG Length; ULONG Reserved; } BusNumber; // // Device Specific information defined by the driver. // The DataSize field indicates the size of the data in bytes. The // data is located immediately after the DeviceSpecificData field in // the structure. // struct { ULONG DataSize; ULONG Reserved1; ULONG Reserved2; } DeviceSpecificData; } u; } CM_PARTIAL_RESOURCE_DESCRIPTOR, *PCM_PARTIAL_RESOURCE_DESCRIPTOR; #include "poppack.h" // // A Partial Resource List is what can be found in the ARC firmware // or will be generated by ntdetect.com. // The configuration manager will transform this structure into a Full // resource descriptor when it is about to store it in the regsitry. // // Note: There must a be a convention to the order of fields of same type, // (defined on a device by device basis) so that the fields can make sense // to a driver (i.e. when multiple memory ranges are necessary). // typedef struct _CM_PARTIAL_RESOURCE_LIST { USHORT Version; USHORT Revision; ULONG Count; CM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptors[1]; } CM_PARTIAL_RESOURCE_LIST, *PCM_PARTIAL_RESOURCE_LIST; // // A Full Resource Descriptor is what can be found in the registry. // This is what will be returned to a driver when it queries the registry // to get device information; it will be stored under a key in the hardware // description tree. // // Note: There must a be a convention to the order of fields of same type, // (defined on a device by device basis) so that the fields can make sense // to a driver (i.e. when multiple memory ranges are necessary). // typedef struct _CM_FULL_RESOURCE_DESCRIPTOR { INTERFACE_TYPE DoNotUse1; ULONG DoNotUse2; CM_PARTIAL_RESOURCE_LIST PartialResourceList; } CM_FULL_RESOURCE_DESCRIPTOR, *PCM_FULL_RESOURCE_DESCRIPTOR; // // The Resource list is what will be stored by the drivers into the // resource map via the IO API. // typedef struct _CM_RESOURCE_LIST { ULONG Count; CM_FULL_RESOURCE_DESCRIPTOR List[1]; } CM_RESOURCE_LIST, *PCM_RESOURCE_LIST; // // Define the structures used to interpret configuration data of // \\Registry\machine\hardware\description tree. // Basically, these structures are used to interpret component // sepcific data. // // // Define DEVICE_FLAGS // typedef struct _DEVICE_FLAGS { ULONG Failed : 1; ULONG ReadOnly : 1; ULONG Removable : 1; ULONG ConsoleIn : 1; ULONG ConsoleOut : 1; ULONG Input : 1; ULONG Output : 1; } DEVICE_FLAGS, *PDEVICE_FLAGS; // // Define Component Information structure // typedef struct _CM_COMPONENT_INFORMATION { DEVICE_FLAGS Flags; ULONG Version; ULONG Key; KAFFINITY AffinityMask; } CM_COMPONENT_INFORMATION, *PCM_COMPONENT_INFORMATION; // // The following structures are used to interpret x86 // DeviceSpecificData of CM_PARTIAL_RESOURCE_DESCRIPTOR. // (Most of the structures are defined by BIOS. They are // not aligned on word (or dword) boundary. // // // Define the Rom Block structure // typedef struct _CM_ROM_BLOCK { ULONG Address; ULONG Size; } CM_ROM_BLOCK, *PCM_ROM_BLOCK; #include "pshpack1.h" // // Define INT13 driver parameter block // typedef struct _CM_INT13_DRIVE_PARAMETER { USHORT DriveSelect; ULONG MaxCylinders; USHORT SectorsPerTrack; USHORT MaxHeads; USHORT NumberDrives; } CM_INT13_DRIVE_PARAMETER, *PCM_INT13_DRIVE_PARAMETER; // // Define Mca POS data block for slot // typedef struct _CM_MCA_POS_DATA { USHORT AdapterId; UCHAR PosData1; UCHAR PosData2; UCHAR PosData3; UCHAR PosData4; } CM_MCA_POS_DATA, *PCM_MCA_POS_DATA; // // Memory configuration of eisa data block structure // typedef struct _EISA_MEMORY_TYPE { UCHAR ReadWrite: 1; UCHAR Cached : 1; UCHAR Reserved0 :1; UCHAR Type:2; UCHAR Shared:1; UCHAR Reserved1 :1; UCHAR MoreEntries : 1; } EISA_MEMORY_TYPE, *PEISA_MEMORY_TYPE; typedef struct _EISA_MEMORY_CONFIGURATION { EISA_MEMORY_TYPE ConfigurationByte; UCHAR DataSize; USHORT AddressLowWord; UCHAR AddressHighByte; USHORT MemorySize; } EISA_MEMORY_CONFIGURATION, *PEISA_MEMORY_CONFIGURATION; // // Interrupt configurationn of eisa data block structure // typedef struct _EISA_IRQ_DESCRIPTOR { UCHAR Interrupt : 4; UCHAR Reserved :1; UCHAR LevelTriggered :1; UCHAR Shared : 1; UCHAR MoreEntries : 1; } EISA_IRQ_DESCRIPTOR, *PEISA_IRQ_DESCRIPTOR; typedef struct _EISA_IRQ_CONFIGURATION { EISA_IRQ_DESCRIPTOR ConfigurationByte; UCHAR Reserved; } EISA_IRQ_CONFIGURATION, *PEISA_IRQ_CONFIGURATION; // // DMA description of eisa data block structure // typedef struct _DMA_CONFIGURATION_BYTE0 { UCHAR Channel : 3; UCHAR Reserved : 3; UCHAR Shared :1; UCHAR MoreEntries :1; } DMA_CONFIGURATION_BYTE0; typedef struct _DMA_CONFIGURATION_BYTE1 { UCHAR Reserved0 : 2; UCHAR TransferSize : 2; UCHAR Timing : 2; UCHAR Reserved1 : 2; } DMA_CONFIGURATION_BYTE1; typedef struct _EISA_DMA_CONFIGURATION { DMA_CONFIGURATION_BYTE0 ConfigurationByte0; DMA_CONFIGURATION_BYTE1 ConfigurationByte1; } EISA_DMA_CONFIGURATION, *PEISA_DMA_CONFIGURATION; // // Port description of eisa data block structure // typedef struct _EISA_PORT_DESCRIPTOR { UCHAR NumberPorts : 5; UCHAR Reserved :1; UCHAR Shared :1; UCHAR MoreEntries : 1; } EISA_PORT_DESCRIPTOR, *PEISA_PORT_DESCRIPTOR; typedef struct _EISA_PORT_CONFIGURATION { EISA_PORT_DESCRIPTOR Configuration; USHORT PortAddress; } EISA_PORT_CONFIGURATION, *PEISA_PORT_CONFIGURATION; // // Eisa slot information definition // N.B. This structure is different from the one defined // in ARC eisa addendum. // typedef struct _CM_EISA_SLOT_INFORMATION { UCHAR ReturnCode; UCHAR ReturnFlags; UCHAR MajorRevision; UCHAR MinorRevision; USHORT Checksum; UCHAR NumberFunctions; UCHAR FunctionInformation; ULONG CompressedId; } CM_EISA_SLOT_INFORMATION, *PCM_EISA_SLOT_INFORMATION; // // Eisa function information definition // typedef struct _CM_EISA_FUNCTION_INFORMATION { ULONG CompressedId; UCHAR IdSlotFlags1; UCHAR IdSlotFlags2; UCHAR MinorRevision; UCHAR MajorRevision; UCHAR Selections[26]; UCHAR FunctionFlags; UCHAR TypeString[80]; EISA_MEMORY_CONFIGURATION EisaMemory[9]; EISA_IRQ_CONFIGURATION EisaIrq[7]; EISA_DMA_CONFIGURATION EisaDma[4]; EISA_PORT_CONFIGURATION EisaPort[20]; UCHAR InitializationData[60]; } CM_EISA_FUNCTION_INFORMATION, *PCM_EISA_FUNCTION_INFORMATION; // // The following defines the way pnp bios information is stored in // the registry \\HKEY_LOCAL_MACHINE\HARDWARE\Description\System\MultifunctionAdapter\x // key, where x is an integer number indicating adapter instance. The // "Identifier" of the key must equal to "PNP BIOS" and the // "ConfigurationData" is organized as follow: // // CM_PNP_BIOS_INSTALLATION_CHECK + // CM_PNP_BIOS_DEVICE_NODE for device 1 + // CM_PNP_BIOS_DEVICE_NODE for device 2 + // ... // CM_PNP_BIOS_DEVICE_NODE for device n // // // Pnp BIOS device node structure // typedef struct _CM_PNP_BIOS_DEVICE_NODE { USHORT Size; UCHAR Node; ULONG ProductId; UCHAR DeviceType[3]; USHORT DeviceAttributes; // followed by AllocatedResourceBlock, PossibleResourceBlock // and CompatibleDeviceId } CM_PNP_BIOS_DEVICE_NODE,*PCM_PNP_BIOS_DEVICE_NODE; // // Pnp BIOS Installation check // typedef struct _CM_PNP_BIOS_INSTALLATION_CHECK { UCHAR Signature[4]; // $PnP (ascii) UCHAR Revision; UCHAR Length; USHORT ControlField; UCHAR Checksum; ULONG EventFlagAddress; // Physical address USHORT RealModeEntryOffset; USHORT RealModeEntrySegment; USHORT ProtectedModeEntryOffset; ULONG ProtectedModeCodeBaseAddress; ULONG OemDeviceId; USHORT RealModeDataBaseAddress; ULONG ProtectedModeDataBaseAddress; } CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK; #include "poppack.h" // // Masks for EISA function information // #define EISA_FUNCTION_ENABLED 0x80 #define EISA_FREE_FORM_DATA 0x40 #define EISA_HAS_PORT_INIT_ENTRY 0x20 #define EISA_HAS_PORT_RANGE 0x10 #define EISA_HAS_DMA_ENTRY 0x08 #define EISA_HAS_IRQ_ENTRY 0x04 #define EISA_HAS_MEMORY_ENTRY 0x02 #define EISA_HAS_TYPE_ENTRY 0x01 #define EISA_HAS_INFORMATION EISA_HAS_PORT_RANGE + \ EISA_HAS_DMA_ENTRY + \ EISA_HAS_IRQ_ENTRY + \ EISA_HAS_MEMORY_ENTRY + \ EISA_HAS_TYPE_ENTRY // // Masks for EISA memory configuration // #define EISA_MORE_ENTRIES 0x80 #define EISA_SYSTEM_MEMORY 0x00 #define EISA_MEMORY_TYPE_RAM 0x01 // // Returned error code for EISA bios call // #define EISA_INVALID_SLOT 0x80 #define EISA_INVALID_FUNCTION 0x81 #define EISA_INVALID_CONFIGURATION 0x82 #define EISA_EMPTY_SLOT 0x83 #define EISA_INVALID_BIOS_CALL 0x86 // // The following structures are used to interpret mips // DeviceSpecificData of CM_PARTIAL_RESOURCE_DESCRIPTOR. // // // Device data records for adapters. // // // The device data record for the Emulex SCSI controller. // typedef struct _CM_SCSI_DEVICE_DATA { USHORT Version; USHORT Revision; UCHAR HostIdentifier; } CM_SCSI_DEVICE_DATA, *PCM_SCSI_DEVICE_DATA; // // Device data records for controllers. // // // The device data record for the Video controller. // typedef struct _CM_VIDEO_DEVICE_DATA { USHORT Version; USHORT Revision; ULONG VideoClock; } CM_VIDEO_DEVICE_DATA, *PCM_VIDEO_DEVICE_DATA; // // The device data record for the SONIC network controller. // typedef struct _CM_SONIC_DEVICE_DATA { USHORT Version; USHORT Revision; USHORT DataConfigurationRegister; UCHAR EthernetAddress[8]; } CM_SONIC_DEVICE_DATA, *PCM_SONIC_DEVICE_DATA; // // The device data record for the serial controller. // typedef struct _CM_SERIAL_DEVICE_DATA { USHORT Version; USHORT Revision; ULONG BaudClock; } CM_SERIAL_DEVICE_DATA, *PCM_SERIAL_DEVICE_DATA; // // Device data records for peripherals. // // // The device data record for the Monitor peripheral. // typedef struct _CM_MONITOR_DEVICE_DATA { USHORT Version; USHORT Revision; USHORT HorizontalScreenSize; USHORT VerticalScreenSize; USHORT HorizontalResolution; USHORT VerticalResolution; USHORT HorizontalDisplayTimeLow; USHORT HorizontalDisplayTime; USHORT HorizontalDisplayTimeHigh; USHORT HorizontalBackPorchLow; USHORT HorizontalBackPorch; USHORT HorizontalBackPorchHigh; USHORT HorizontalFrontPorchLow; USHORT HorizontalFrontPorch; USHORT HorizontalFrontPorchHigh; USHORT HorizontalSyncLow; USHORT HorizontalSync; USHORT HorizontalSyncHigh; USHORT VerticalBackPorchLow; USHORT VerticalBackPorch; USHORT VerticalBackPorchHigh; USHORT VerticalFrontPorchLow; USHORT VerticalFrontPorch; USHORT VerticalFrontPorchHigh; USHORT VerticalSyncLow; USHORT VerticalSync; USHORT VerticalSyncHigh; } CM_MONITOR_DEVICE_DATA, *PCM_MONITOR_DEVICE_DATA; // // The device data record for the Floppy peripheral. // typedef struct _CM_FLOPPY_DEVICE_DATA { USHORT Version; USHORT Revision; CHAR Size[8]; ULONG MaxDensity; ULONG MountDensity; // // New data fields for version >= 2.0 // UCHAR StepRateHeadUnloadTime; UCHAR HeadLoadTime; UCHAR MotorOffTime; UCHAR SectorLengthCode; UCHAR SectorPerTrack; UCHAR ReadWriteGapLength; UCHAR DataTransferLength; UCHAR FormatGapLength; UCHAR FormatFillCharacter; UCHAR HeadSettleTime; UCHAR MotorSettleTime; UCHAR MaximumTrackValue; UCHAR DataTransferRate; } CM_FLOPPY_DEVICE_DATA, *PCM_FLOPPY_DEVICE_DATA; // // The device data record for the Keyboard peripheral. // The KeyboardFlags is defined (by x86 BIOS INT 16h, function 02) as: // bit 7 : Insert on // bit 6 : Caps Lock on // bit 5 : Num Lock on // bit 4 : Scroll Lock on // bit 3 : Alt Key is down // bit 2 : Ctrl Key is down // bit 1 : Left shift key is down // bit 0 : Right shift key is down // typedef struct _CM_KEYBOARD_DEVICE_DATA { USHORT Version; USHORT Revision; UCHAR Type; UCHAR Subtype; USHORT KeyboardFlags; } CM_KEYBOARD_DEVICE_DATA, *PCM_KEYBOARD_DEVICE_DATA; // // Declaration of the structure for disk geometries // typedef struct _CM_DISK_GEOMETRY_DEVICE_DATA { ULONG BytesPerSector; ULONG NumberOfCylinders; ULONG SectorsPerTrack; ULONG NumberOfHeads; } CM_DISK_GEOMETRY_DEVICE_DATA, *PCM_DISK_GEOMETRY_DEVICE_DATA; // // Defines Resource Options // #define IO_RESOURCE_PREFERRED 0x01 #define IO_RESOURCE_DEFAULT 0x02 #define IO_RESOURCE_ALTERNATIVE 0x08 // // This structure defines one type of resource requested by the driver // typedef struct _IO_RESOURCE_DESCRIPTOR { UCHAR Option; UCHAR Type; // use CM_RESOURCE_TYPE UCHAR ShareDisposition; // use CM_SHARE_DISPOSITION UCHAR Spare1; USHORT Flags; // use CM resource flag defines USHORT Spare2; // align union { struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Port; struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Memory; struct { ULONG MinimumVector; ULONG MaximumVector; } Interrupt; struct { ULONG MinimumChannel; ULONG MaximumChannel; } Dma; struct { ULONG Length; ULONG Alignment; PHYSICAL_ADDRESS MinimumAddress; PHYSICAL_ADDRESS MaximumAddress; } Generic; struct { ULONG Data[3]; } DevicePrivate; // // Bus Number information. // struct { ULONG Length; ULONG MinBusNumber; ULONG MaxBusNumber; ULONG Reserved; } BusNumber; struct { ULONG Priority; // use LCPRI_Xxx values in cfg.h ULONG Reserved1; ULONG Reserved2; } ConfigData; } u; } IO_RESOURCE_DESCRIPTOR, *PIO_RESOURCE_DESCRIPTOR; typedef struct _IO_RESOURCE_LIST { USHORT Version; USHORT Revision; ULONG Count; IO_RESOURCE_DESCRIPTOR Descriptors[1]; } IO_RESOURCE_LIST, *PIO_RESOURCE_LIST; typedef struct _IO_RESOURCE_REQUIREMENTS_LIST { ULONG ListSize; INTERFACE_TYPE DoNotUse1; ULONG DoNotUse2; ULONG DoNotUse3; ULONG Reserved[3]; ULONG AlternativeLists; IO_RESOURCE_LIST List[1]; } IO_RESOURCE_REQUIREMENTS_LIST, *PIO_RESOURCE_REQUIREMENTS_LIST; // // Exception flag definitions. // #define EXCEPTION_NONCONTINUABLE 0x1 // Noncontinuable exception // // Define maximum number of exception parameters. // #define EXCEPTION_MAXIMUM_PARAMETERS 15 // maximum number of exception parameters // // Exception record definition. // typedef struct _EXCEPTION_RECORD { NTSTATUS ExceptionCode; ULONG ExceptionFlags; struct _EXCEPTION_RECORD *ExceptionRecord; PVOID ExceptionAddress; ULONG NumberParameters; ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD; typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; typedef struct _EXCEPTION_RECORD32 { NTSTATUS ExceptionCode; ULONG ExceptionFlags; ULONG ExceptionRecord; ULONG ExceptionAddress; ULONG NumberParameters; ULONG ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD32, *PEXCEPTION_RECORD32; typedef struct _EXCEPTION_RECORD64 { NTSTATUS ExceptionCode; ULONG ExceptionFlags; ULONG64 ExceptionRecord; ULONG64 ExceptionAddress; ULONG NumberParameters; ULONG __unusedAlignment; ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; } EXCEPTION_RECORD64, *PEXCEPTION_RECORD64; // // Typedef for pointer returned by exception_info() // typedef struct _EXCEPTION_POINTERS { PEXCEPTION_RECORD ExceptionRecord; PVOID ContextRecord; } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; #define THREAD_WAIT_OBJECTS 3 // Builtin usable wait blocks // // Interrupt modes. // typedef enum _KINTERRUPT_MODE { LevelSensitive, Latched } KINTERRUPT_MODE; // // Wait reasons // typedef enum _KWAIT_REASON { Executive, FreePage, PageIn, PoolAllocation, DelayExecution, Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn, WrPoolAllocation, WrDelayExecution, WrSuspended, WrUserRequest, WrEventPair, WrQueue, WrLpcReceive, WrLpcReply, WrVirtualMemory, WrPageOut, WrRendezvous, Spare2, Spare3, Spare4, Spare5, Spare6, WrKernel, MaximumWaitReason } KWAIT_REASON; typedef struct _KWAIT_BLOCK { LIST_ENTRY WaitListEntry; struct _KTHREAD *RESTRICTED_POINTER Thread; PVOID Object; struct _KWAIT_BLOCK *RESTRICTED_POINTER NextWaitBlock; USHORT WaitKey; USHORT WaitType; } KWAIT_BLOCK, *PKWAIT_BLOCK, *RESTRICTED_POINTER PRKWAIT_BLOCK; // // Thread start function // typedef VOID (*PKSTART_ROUTINE) ( IN PVOID StartContext ); // // Kernel object structure definitions // // // Device Queue object and entry // typedef struct _KDEVICE_QUEUE { CSHORT Type; CSHORT Size; LIST_ENTRY DeviceListHead; KSPIN_LOCK Lock; BOOLEAN Busy; } KDEVICE_QUEUE, *PKDEVICE_QUEUE, *RESTRICTED_POINTER PRKDEVICE_QUEUE; typedef struct _KDEVICE_QUEUE_ENTRY { LIST_ENTRY DeviceListEntry; ULONG SortKey; BOOLEAN Inserted; } KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY, *RESTRICTED_POINTER PRKDEVICE_QUEUE_ENTRY; // // Define the interrupt service function type and the empty struct // type. // typedef BOOLEAN (*PKSERVICE_ROUTINE) ( IN struct _KINTERRUPT *Interrupt, IN PVOID ServiceContext ); // // Mutant object // typedef struct _KMUTANT { DISPATCHER_HEADER Header; LIST_ENTRY MutantListEntry; struct _KTHREAD *RESTRICTED_POINTER OwnerThread; BOOLEAN Abandoned; UCHAR ApcDisable; } KMUTANT, *PKMUTANT, *RESTRICTED_POINTER PRKMUTANT, KMUTEX, *PKMUTEX, *RESTRICTED_POINTER PRKMUTEX; // // // Semaphore object // typedef struct _KSEMAPHORE { DISPATCHER_HEADER Header; LONG Limit; } KSEMAPHORE, *PKSEMAPHORE, *RESTRICTED_POINTER PRKSEMAPHORE; // // DPC object // NTKERNELAPI VOID KeInitializeDpc ( IN PRKDPC Dpc, IN PKDEFERRED_ROUTINE DeferredRoutine, IN PVOID DeferredContext ); NTKERNELAPI BOOLEAN KeInsertQueueDpc ( IN PRKDPC Dpc, IN PVOID SystemArgument1, IN PVOID SystemArgument2 ); NTKERNELAPI BOOLEAN KeRemoveQueueDpc ( IN PRKDPC Dpc ); NTKERNELAPI VOID KeFlushQueuedDpcs ( VOID ); // // Device queue object // NTKERNELAPI VOID KeInitializeDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue ); NTKERNELAPI BOOLEAN KeInsertDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry ); NTKERNELAPI BOOLEAN KeInsertByKeyDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry, IN ULONG SortKey ); NTKERNELAPI PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue ); NTKERNELAPI PKDEVICE_QUEUE_ENTRY KeRemoveByKeyDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN ULONG SortKey ); NTKERNELAPI PKDEVICE_QUEUE_ENTRY KeRemoveByKeyDeviceQueueIfBusy ( IN PKDEVICE_QUEUE DeviceQueue, IN ULONG SortKey ); NTKERNELAPI BOOLEAN KeRemoveEntryDeviceQueue ( IN PKDEVICE_QUEUE DeviceQueue, IN PKDEVICE_QUEUE_ENTRY DeviceQueueEntry ); NTKERNELAPI BOOLEAN KeSynchronizeExecution ( IN PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext ); NTKERNELAPI KIRQL KeAcquireInterruptSpinLock ( IN PKINTERRUPT Interrupt ); NTKERNELAPI VOID KeReleaseInterruptSpinLock ( IN PKINTERRUPT Interrupt, IN KIRQL OldIrql ); // // Kernel dispatcher object functions // // Event Object // NTKERNELAPI VOID KeInitializeEvent ( IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State ); NTKERNELAPI VOID KeClearEvent ( IN PRKEVENT Event ); NTKERNELAPI LONG KeReadStateEvent ( IN PRKEVENT Event ); NTKERNELAPI LONG KeResetEvent ( IN PRKEVENT Event ); NTKERNELAPI LONG KeSetEvent ( IN PRKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait ); // // Mutex object // NTKERNELAPI VOID KeInitializeMutex ( IN PRKMUTEX Mutex, IN ULONG Level ); NTKERNELAPI LONG KeReadStateMutex ( IN PRKMUTEX Mutex ); NTKERNELAPI LONG KeReleaseMutex ( IN PRKMUTEX Mutex, IN BOOLEAN Wait ); // // Semaphore object // NTKERNELAPI VOID KeInitializeSemaphore ( IN PRKSEMAPHORE Semaphore, IN LONG Count, IN LONG Limit ); NTKERNELAPI LONG KeReadStateSemaphore ( IN PRKSEMAPHORE Semaphore ); NTKERNELAPI LONG KeReleaseSemaphore ( IN PRKSEMAPHORE Semaphore, IN KPRIORITY Increment, IN LONG Adjustment, IN BOOLEAN Wait ); NTKERNELAPI NTSTATUS KeDelayExecutionThread ( IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Interval ); NTKERNELAPI KPRIORITY KeQueryPriorityThread ( IN PKTHREAD Thread ); NTKERNELAPI ULONG KeQueryRuntimeThread ( IN PKTHREAD Thread, OUT PULONG UserTime ); NTKERNELAPI KPRIORITY KeSetPriorityThread ( IN PKTHREAD Thread, IN KPRIORITY Priority ); NTKERNELAPI VOID KeEnterCriticalRegion ( VOID ); NTKERNELAPI VOID KeLeaveCriticalRegion ( VOID ); NTKERNELAPI BOOLEAN KeAreApcsDisabled( VOID ); // // Timer object // NTKERNELAPI VOID KeInitializeTimer ( IN PKTIMER Timer ); NTKERNELAPI VOID KeInitializeTimerEx ( IN PKTIMER Timer, IN TIMER_TYPE Type ); NTKERNELAPI BOOLEAN KeCancelTimer ( IN PKTIMER ); NTKERNELAPI BOOLEAN KeReadStateTimer ( PKTIMER Timer ); NTKERNELAPI BOOLEAN KeSetTimer ( IN PKTIMER Timer, IN LARGE_INTEGER DueTime, IN PKDPC Dpc OPTIONAL ); NTKERNELAPI BOOLEAN KeSetTimerEx ( IN PKTIMER Timer, IN LARGE_INTEGER DueTime, IN LONG Period OPTIONAL, IN PKDPC Dpc OPTIONAL ); #define KeWaitForMutexObject KeWaitForSingleObject NTKERNELAPI NTSTATUS KeWaitForMultipleObjects ( IN ULONG Count, IN PVOID Object[], IN WAIT_TYPE WaitType, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL, IN PKWAIT_BLOCK WaitBlockArray OPTIONAL ); NTKERNELAPI NTSTATUS KeWaitForSingleObject ( IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ); // // On X86 the following routines are defined in the HAL and imported by // all other modules. // #if defined(_X86_) && !defined(_NTHAL_) #define _DECL_HAL_KE_IMPORT __declspec(dllimport) #else #define _DECL_HAL_KE_IMPORT #endif // // spin lock functions // NTKERNELAPI VOID NTAPI KeInitializeSpinLock ( IN PKSPIN_LOCK SpinLock ); #if defined(_X86_) NTKERNELAPI VOID FASTCALL KefAcquireSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI VOID FASTCALL KefReleaseSpinLockFromDpcLevel ( IN PKSPIN_LOCK SpinLock ); #define KeAcquireSpinLockAtDpcLevel(a) KefAcquireSpinLockAtDpcLevel(a) #define KeReleaseSpinLockFromDpcLevel(a) KefReleaseSpinLockFromDpcLevel(a) _DECL_HAL_KE_IMPORT KIRQL FASTCALL KfAcquireSpinLock ( IN PKSPIN_LOCK SpinLock ); _DECL_HAL_KE_IMPORT VOID FASTCALL KfReleaseSpinLock ( IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql ); #define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a) #define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b) #else NTKERNELAPI KIRQL FASTCALL KeAcquireSpinLockRaiseToSynch ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI VOID KeAcquireSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI VOID KeReleaseSpinLockFromDpcLevel ( IN PKSPIN_LOCK SpinLock ); NTKERNELAPI KIRQL KeAcquireSpinLockRaiseToDpc ( IN PKSPIN_LOCK SpinLock ); #define KeAcquireSpinLock(SpinLock, OldIrql) \ *(OldIrql) = KeAcquireSpinLockRaiseToDpc(SpinLock) NTKERNELAPI VOID KeReleaseSpinLock ( IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql ); #endif NTKERNELAPI BOOLEAN FASTCALL KeTryToAcquireSpinLockAtDpcLevel ( IN PKSPIN_LOCK SpinLock ); #if defined(_X86_) _DECL_HAL_KE_IMPORT VOID FASTCALL KfLowerIrql ( IN KIRQL NewIrql ); _DECL_HAL_KE_IMPORT KIRQL FASTCALL KfRaiseIrql ( IN KIRQL NewIrql ); #define KeLowerIrql(a) KfLowerIrql(a) #define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a) #elif defined(_ALPHA_) #define KeLowerIrql(a) __swpirql(a) #define KeRaiseIrql(a,b) *(b) = __swpirql(a) #elif defined(_IA64_) VOID KeLowerIrql ( IN KIRQL NewIrql ); VOID KeRaiseIrql ( IN KIRQL NewIrql, OUT PKIRQL OldIrql ); #elif defined(_AMD64_) // // These function are defined in amd64.h for the AMD64 platform. // #else #error "no target architecture" #endif // // Miscellaneous kernel functions // typedef enum _KBUGCHECK_BUFFER_DUMP_STATE { BufferEmpty, BufferInserted, BufferStarted, BufferFinished, BufferIncomplete } KBUGCHECK_BUFFER_DUMP_STATE; typedef VOID (*PKBUGCHECK_CALLBACK_ROUTINE) ( IN PVOID Buffer, IN ULONG Length ); typedef struct _KBUGCHECK_CALLBACK_RECORD { LIST_ENTRY Entry; PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine; PVOID Buffer; ULONG Length; PUCHAR Component; ULONG_PTR Checksum; UCHAR State; } KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD; #define KeInitializeCallbackRecord(CallbackRecord) \ (CallbackRecord)->State = BufferEmpty NTKERNELAPI BOOLEAN KeDeregisterBugCheckCallback ( IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord ); NTKERNELAPI BOOLEAN KeRegisterBugCheckCallback ( IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord, IN PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine, IN PVOID Buffer, IN ULONG Length, IN PUCHAR Component ); typedef enum _KBUGCHECK_CALLBACK_REASON { KbCallbackInvalid, KbCallbackReserved1, KbCallbackSecondaryDumpData, KbCallbackDumpIo, } KBUGCHECK_CALLBACK_REASON; typedef VOID (*PKBUGCHECK_REASON_CALLBACK_ROUTINE) ( IN KBUGCHECK_CALLBACK_REASON Reason, IN struct _KBUGCHECK_REASON_CALLBACK_RECORD* Record, IN OUT PVOID ReasonSpecificData, IN ULONG ReasonSpecificDataLength ); typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD { LIST_ENTRY Entry; PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine; PUCHAR Component; ULONG_PTR Checksum; KBUGCHECK_CALLBACK_REASON Reason; UCHAR State; } KBUGCHECK_REASON_CALLBACK_RECORD, *PKBUGCHECK_REASON_CALLBACK_RECORD; typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA { IN PVOID InBuffer; IN ULONG InBufferLength; IN ULONG MaximumAllowed; OUT GUID Guid; OUT PVOID OutBuffer; OUT ULONG OutBufferLength; } KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA; typedef enum _KBUGCHECK_DUMP_IO_TYPE { KbDumpIoInvalid, KbDumpIoHeader, KbDumpIoBody, KbDumpIoSecondaryData, KbDumpIoComplete } KBUGCHECK_DUMP_IO_TYPE; typedef struct _KBUGCHECK_DUMP_IO { IN ULONG64 Offset; IN PVOID Buffer; IN ULONG BufferLength; IN KBUGCHECK_DUMP_IO_TYPE Type; } KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO; NTKERNELAPI BOOLEAN KeDeregisterBugCheckReasonCallback ( IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord ); NTKERNELAPI BOOLEAN KeRegisterBugCheckReasonCallback ( IN PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord, IN PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine, IN KBUGCHECK_CALLBACK_REASON Reason, IN PUCHAR Component ); NTKERNELAPI DECLSPEC_NORETURN VOID KeBugCheckEx( IN ULONG BugCheckCode, IN ULONG_PTR BugCheckParameter1, IN ULONG_PTR BugCheckParameter2, IN ULONG_PTR BugCheckParameter3, IN ULONG_PTR BugCheckParameter4 ); NTKERNELAPI ULONGLONG KeQueryInterruptTime ( VOID ); NTKERNELAPI VOID KeQuerySystemTime ( OUT PLARGE_INTEGER CurrentTime ); NTKERNELAPI ULONG KeQueryTimeIncrement ( VOID ); NTKERNELAPI ULONG KeGetRecommendedSharedDataAlignment ( VOID ); #if defined(_AMD64_) || defined(_ALPHA_) || defined(_IA64_) extern volatile LARGE_INTEGER KeTickCount; #else extern volatile KSYSTEM_TIME KeTickCount; #endif typedef enum _MEMORY_CACHING_TYPE_ORIG { MmFrameBufferCached = 2 } MEMORY_CACHING_TYPE_ORIG; typedef enum _MEMORY_CACHING_TYPE { MmNonCached = FALSE, MmCached = TRUE, MmWriteCombined = MmFrameBufferCached, MmHardwareCoherentCached, MmCachingTypeDoNotUse1, MmCachingTypeDoNotUse2, MmMaximumCacheType } MEMORY_CACHING_TYPE; // // Define external data. // because of indirection for all drivers external to ntoskrnl these are actually ptrs // #if defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_) extern PBOOLEAN KdDebuggerNotPresent; extern PBOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED *KdDebuggerEnabled #define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent #else extern BOOLEAN KdDebuggerNotPresent; extern BOOLEAN KdDebuggerEnabled; #define KD_DEBUGGER_ENABLED KdDebuggerEnabled #define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent #endif VOID KdDisableDebugger( VOID ); VOID KdEnableDebugger( VOID ); // // Pool Allocation routines (in pool.c) // typedef enum _POOL_TYPE { NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType, NonPagedPoolCacheAligned, PagedPoolCacheAligned, NonPagedPoolCacheAlignedMustS, MaxPoolType } POOL_TYPE; #define POOL_COLD_ALLOCATION 256 // Note this cannot encode into the header. NTKERNELAPI PVOID ExAllocatePool( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes ); NTKERNELAPI PVOID ExAllocatePoolWithQuota( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes ); NTKERNELAPI PVOID NTAPI ExAllocatePoolWithTag( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag ); // // _EX_POOL_PRIORITY_ provides a method for the system to handle requests // intelligently in low resource conditions. // // LowPoolPriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is low on resources. An example of // this could be for a non-critical network connection where the driver can // handle the failure case when system resources are close to being depleted. // // NormalPoolPriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is very low on resources. An example // of this could be for a non-critical local filesystem request. // // HighPoolPriority should be used when it is unacceptable to the driver for the // mapping request to fail unless the system is completely out of resources. // An example of this would be the paging file path in a driver. // // SpecialPool can be specified to bound the allocation at a page end (or // beginning). This should only be done on systems being debugged as the // memory cost is expensive. // // N.B. These values are very carefully chosen so that the pool allocation // code can quickly crack the priority request. // typedef enum _EX_POOL_PRIORITY { LowPoolPriority, LowPoolPrioritySpecialPoolOverrun = 8, LowPoolPrioritySpecialPoolUnderrun = 9, NormalPoolPriority = 16, NormalPoolPrioritySpecialPoolOverrun = 24, NormalPoolPrioritySpecialPoolUnderrun = 25, HighPoolPriority = 32, HighPoolPrioritySpecialPoolOverrun = 40, HighPoolPrioritySpecialPoolUnderrun = 41 } EX_POOL_PRIORITY; NTKERNELAPI PVOID NTAPI ExAllocatePoolWithTagPriority( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag, IN EX_POOL_PRIORITY Priority ); #ifndef POOL_TAGGING #define ExAllocatePoolWithTag(a,b,c) ExAllocatePool(a,b) #endif //POOL_TAGGING NTKERNELAPI PVOID ExAllocatePoolWithQuotaTag( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag ); #ifndef POOL_TAGGING #define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b) #endif //POOL_TAGGING NTKERNELAPI VOID NTAPI ExFreePool( IN PVOID P ); NTKERNELAPI VOID ExFreePoolWithTag( IN PVOID P, IN ULONG Tag ); // // Routines to support fast mutexes. // typedef struct _FAST_MUTEX { LONG Count; PKTHREAD Owner; ULONG Contention; KEVENT Event; ULONG OldIrql; } FAST_MUTEX, *PFAST_MUTEX; #define ExInitializeFastMutex(_FastMutex) \ (_FastMutex)->Count = 1; \ (_FastMutex)->Owner = NULL; \ (_FastMutex)->Contention = 0; \ KeInitializeEvent(&(_FastMutex)->Event, \ SynchronizationEvent, \ FALSE); NTKERNELAPI VOID FASTCALL ExAcquireFastMutexUnsafe ( IN PFAST_MUTEX FastMutex ); NTKERNELAPI VOID FASTCALL ExReleaseFastMutexUnsafe ( IN PFAST_MUTEX FastMutex ); #if defined(_ALPHA_) || defined(_IA64_) || defined(_AMD64_) NTKERNELAPI VOID FASTCALL ExAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); NTKERNELAPI VOID FASTCALL ExReleaseFastMutex ( IN PFAST_MUTEX FastMutex ); NTKERNELAPI BOOLEAN FASTCALL ExTryToAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); #elif defined(_X86_) NTHALAPI VOID FASTCALL ExAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); NTHALAPI VOID FASTCALL ExReleaseFastMutex ( IN PFAST_MUTEX FastMutex ); NTHALAPI BOOLEAN FASTCALL ExTryToAcquireFastMutex ( IN PFAST_MUTEX FastMutex ); #else #error "Target architecture not defined" #endif // NTKERNELAPI VOID FASTCALL ExInterlockedAddLargeStatistic ( IN PLARGE_INTEGER Addend, IN ULONG Increment ); NTKERNELAPI LARGE_INTEGER ExInterlockedAddLargeInteger ( IN PLARGE_INTEGER Addend, IN LARGE_INTEGER Increment, IN PKSPIN_LOCK Lock ); NTKERNELAPI ULONG FASTCALL ExInterlockedAddUlong ( IN PULONG Addend, IN ULONG Increment, IN PKSPIN_LOCK Lock ); #if defined(_AMD64_) || defined(_AXP64_) || defined(_IA64_) #define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \ InterlockedCompareExchange64(Destination, *(Exchange), *(Comperand)) #elif defined(_ALPHA_) #define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \ ExpInterlockedCompareExchange64(Destination, Exchange, Comperand) #else #define ExInterlockedCompareExchange64(Destination, Exchange, Comperand, Lock) \ ExfInterlockedCompareExchange64(Destination, Exchange, Comperand) #endif NTKERNELAPI PLIST_ENTRY FASTCALL ExInterlockedInsertHeadList ( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); NTKERNELAPI PLIST_ENTRY FASTCALL ExInterlockedInsertTailList ( IN PLIST_ENTRY ListHead, IN PLIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); NTKERNELAPI PLIST_ENTRY FASTCALL ExInterlockedRemoveHeadList ( IN PLIST_ENTRY ListHead, IN PKSPIN_LOCK Lock ); NTKERNELAPI PSINGLE_LIST_ENTRY FASTCALL ExInterlockedPopEntryList ( IN PSINGLE_LIST_ENTRY ListHead, IN PKSPIN_LOCK Lock ); NTKERNELAPI PSINGLE_LIST_ENTRY FASTCALL ExInterlockedPushEntryList ( IN PSINGLE_LIST_ENTRY ListHead, IN PSINGLE_LIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); // // Define interlocked sequenced listhead functions. // // A sequenced interlocked list is a singly linked list with a header that // contains the current depth and a sequence number. Each time an entry is // inserted or removed from the list the depth is updated and the sequence // number is incremented. This enables AMD64, IA64, and Pentium and later // machines to insert and remove from the list without the use of spinlocks. // #if !defined(_WINBASE_) /*++ Routine Description: This function initializes a sequenced singly linked listhead. Arguments: SListHead - Supplies a pointer to a sequenced singly linked listhead. Return Value: None. --*/ #if defined(_WIN64) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_)) NTKERNELAPI VOID InitializeSListHead ( IN PSLIST_HEADER SListHead ); #else __inline VOID InitializeSListHead ( IN PSLIST_HEADER SListHead ) { #ifdef _WIN64 // // Slist headers must be 16 byte aligned. // if ((ULONG_PTR) SListHead & 0x0f) { DbgPrint( "InitializeSListHead unaligned Slist header. Address = %p, Caller = %p\n", SListHead, _ReturnAddress()); RtlRaiseStatus(STATUS_DATATYPE_MISALIGNMENT); } #endif SListHead->Alignment = 0; // // For IA-64 we save the region number of the elements of the list in a // separate field. This imposes the requirement that all elements stored // in the list are from the same region. #if defined(_IA64_) SListHead->Region = (ULONG_PTR)SListHead & VRN_MASK; #elif defined(_AMD64_) SListHead->Region = 0; #endif return; } #endif #endif // !defined(_WINBASE_) #define ExInitializeSListHead InitializeSListHead PSLIST_ENTRY FirstEntrySList ( IN const SLIST_HEADER *SListHead ); /*++ Routine Description: This function queries the current number of entries contained in a sequenced single linked list. Arguments: SListHead - Supplies a pointer to the sequenced listhead which is be queried. Return Value: The current number of entries in the sequenced singly linked list is returned as the function value. --*/ #if defined(_WIN64) #if (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_NTOSP_)) NTKERNELAPI USHORT ExQueryDepthSList ( IN PSLIST_HEADER SListHead ); #else __inline USHORT ExQueryDepthSList ( IN PSLIST_HEADER SListHead ) { return (USHORT)(SListHead->Alignment & 0xffff); } #endif #else #define ExQueryDepthSList(_listhead_) (_listhead_)->Depth #endif #if defined(_WIN64) #define ExInterlockedPopEntrySList(Head, Lock) \ ExpInterlockedPopEntrySList(Head) #define ExInterlockedPushEntrySList(Head, Entry, Lock) \ ExpInterlockedPushEntrySList(Head, Entry) #define ExInterlockedFlushSList(Head) \ ExpInterlockedFlushSList(Head) #if !defined(_WINBASE_) #define InterlockedPopEntrySList(Head) \ ExpInterlockedPopEntrySList(Head) #define InterlockedPushEntrySList(Head, Entry) \ ExpInterlockedPushEntrySList(Head, Entry) #define InterlockedFlushSList(Head) \ ExpInterlockedFlushSList(Head) #define QueryDepthSList(Head) \ ExQueryDepthSList(Head) #endif // !defined(_WINBASE_) NTKERNELAPI PSLIST_ENTRY ExpInterlockedPopEntrySList ( IN PSLIST_HEADER ListHead ); NTKERNELAPI PSLIST_ENTRY ExpInterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry ); NTKERNELAPI PSLIST_ENTRY ExpInterlockedFlushSList ( IN PSLIST_HEADER ListHead ); #else #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) NTKERNELAPI PSLIST_ENTRY FASTCALL ExInterlockedPopEntrySList ( IN PSLIST_HEADER ListHead, IN PKSPIN_LOCK Lock ); NTKERNELAPI PSLIST_ENTRY FASTCALL ExInterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry, IN PKSPIN_LOCK Lock ); #else #define ExInterlockedPopEntrySList(ListHead, Lock) \ InterlockedPopEntrySList(ListHead) #define ExInterlockedPushEntrySList(ListHead, ListEntry, Lock) \ InterlockedPushEntrySList(ListHead, ListEntry) #endif NTKERNELAPI PSLIST_ENTRY FASTCALL ExInterlockedFlushSList ( IN PSLIST_HEADER ListHead ); #if !defined(_WINBASE_) NTKERNELAPI PSLIST_ENTRY FASTCALL InterlockedPopEntrySList ( IN PSLIST_HEADER ListHead ); NTKERNELAPI PSLIST_ENTRY FASTCALL InterlockedPushEntrySList ( IN PSLIST_HEADER ListHead, IN PSLIST_ENTRY ListEntry ); #define InterlockedFlushSList(Head) \ ExInterlockedFlushSList(Head) #define QueryDepthSList(Head) \ ExQueryDepthSList(Head) #endif // !defined(_WINBASE_) #endif // defined(_WIN64) typedef PVOID (*PALLOCATE_FUNCTION) ( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag ); typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) typedef struct _GENERAL_LOOKASIDE { #else typedef struct DECLSPEC_CACHEALIGN _GENERAL_LOOKASIDE { #endif SLIST_HEADER ListHead; USHORT Depth; USHORT MaximumDepth; ULONG TotalAllocates; union { ULONG AllocateMisses; ULONG AllocateHits; }; ULONG TotalFrees; union { ULONG FreeMisses; ULONG FreeHits; }; POOL_TYPE Type; ULONG Tag; ULONG Size; PALLOCATE_FUNCTION Allocate; PFREE_FUNCTION Free; LIST_ENTRY ListEntry; ULONG LastTotalAllocates; union { ULONG LastAllocateMisses; ULONG LastAllocateHits; }; ULONG Future[2]; } GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE; #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) typedef struct _NPAGED_LOOKASIDE_LIST { #else typedef struct DECLSPEC_CACHEALIGN _NPAGED_LOOKASIDE_LIST { #endif GENERAL_LOOKASIDE L; #if !defined(_AMD64_) && !defined(_IA64_) KSPIN_LOCK Lock__ObsoleteButDoNotDelete; #endif } NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST; NTKERNELAPI VOID ExInitializeNPagedLookasideList ( IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate, IN PFREE_FUNCTION Free, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth ); NTKERNELAPI VOID ExDeleteNPagedLookasideList ( IN PNPAGED_LOOKASIDE_LIST Lookaside ); __inline PVOID ExAllocateFromNPagedLookasideList( IN PNPAGED_LOOKASIDE_LIST Lookaside ) /*++ Routine Description: This function removes (pops) the first entry from the specified nonpaged lookaside list. Arguments: Lookaside - Supplies a pointer to a nonpaged lookaside list structure. Return Value: If an entry is removed from the specified lookaside list, then the address of the entry is returned as the function value. Otherwise, NULL is returned. --*/ { PVOID Entry; Lookaside->L.TotalAllocates += 1; #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead, &Lookaside->Lock__ObsoleteButDoNotDelete); #else Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead); #endif if (Entry == NULL) { Lookaside->L.AllocateMisses += 1; Entry = (Lookaside->L.Allocate)(Lookaside->L.Type, Lookaside->L.Size, Lookaside->L.Tag); } return Entry; } __inline VOID ExFreeToNPagedLookasideList( IN PNPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry ) /*++ Routine Description: This function inserts (pushes) the specified entry into the specified nonpaged lookaside list. Arguments: Lookaside - Supplies a pointer to a nonpaged lookaside list structure. Entry - Supples a pointer to the entry that is inserted in the lookaside list. Return Value: None. --*/ { Lookaside->L.TotalFrees += 1; if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) { Lookaside->L.FreeMisses += 1; (Lookaside->L.Free)(Entry); } else { #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) ExInterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry, &Lookaside->Lock__ObsoleteButDoNotDelete); #else InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry); #endif } return; } #if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_)) typedef struct _PAGED_LOOKASIDE_LIST { #else typedef struct DECLSPEC_CACHEALIGN _PAGED_LOOKASIDE_LIST { #endif GENERAL_LOOKASIDE L; #if !defined(_AMD64_) && !defined(_IA64_) FAST_MUTEX Lock__ObsoleteButDoNotDelete; #endif } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST; NTKERNELAPI VOID ExInitializePagedLookasideList ( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PALLOCATE_FUNCTION Allocate, IN PFREE_FUNCTION Free, IN ULONG Flags, IN SIZE_T Size, IN ULONG Tag, IN USHORT Depth ); NTKERNELAPI VOID ExDeletePagedLookasideList ( IN PPAGED_LOOKASIDE_LIST Lookaside ); #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) NTKERNELAPI PVOID ExAllocateFromPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside ); #else __inline PVOID ExAllocateFromPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside ) /*++ Routine Description: This function removes (pops) the first entry from the specified paged lookaside list. Arguments: Lookaside - Supplies a pointer to a paged lookaside list structure. Return Value: If an entry is removed from the specified lookaside list, then the address of the entry is returned as the function value. Otherwise, NULL is returned. --*/ { PVOID Entry; Lookaside->L.TotalAllocates += 1; Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead); if (Entry == NULL) { Lookaside->L.AllocateMisses += 1; Entry = (Lookaside->L.Allocate)(Lookaside->L.Type, Lookaside->L.Size, Lookaside->L.Tag); } return Entry; } #endif #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_) NTKERNELAPI VOID ExFreeToPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry ); #else __inline VOID ExFreeToPagedLookasideList( IN PPAGED_LOOKASIDE_LIST Lookaside, IN PVOID Entry ) /*++ Routine Description: This function inserts (pushes) the specified entry into the specified paged lookaside list. Arguments: Lookaside - Supplies a pointer to a nonpaged lookaside list structure. Entry - Supples a pointer to the entry that is inserted in the lookaside list. Return Value: None. --*/ { Lookaside->L.TotalFrees += 1; if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) { Lookaside->L.FreeMisses += 1; (Lookaside->L.Free)(Entry); } else { InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry); } return; } #endif NTKERNELAPI VOID NTAPI ProbeForRead( IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment ); // // Common probe for write functions. // NTKERNELAPI VOID NTAPI ProbeForWrite ( IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment ); // // Worker Thread // typedef enum _WORK_QUEUE_TYPE { CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue, MaximumWorkQueue } WORK_QUEUE_TYPE; typedef VOID (*PWORKER_THREAD_ROUTINE)( IN PVOID Parameter ); typedef struct _WORK_QUEUE_ITEM { LIST_ENTRY List; PWORKER_THREAD_ROUTINE WorkerRoutine; PVOID Parameter; } WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM; #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExInitializeWorkItem) // Use IoAllocateWorkItem #endif #define ExInitializeWorkItem(Item, Routine, Context) \ (Item)->WorkerRoutine = (Routine); \ (Item)->Parameter = (Context); \ (Item)->List.Flink = NULL; DECLSPEC_DEPRECATED_DDK // Use IoQueueWorkItem NTKERNELAPI VOID ExQueueWorkItem( IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType ); NTKERNELAPI BOOLEAN ExIsProcessorFeaturePresent( ULONG ProcessorFeature ); // // Define executive resource data structures. // typedef ULONG_PTR ERESOURCE_THREAD; typedef ERESOURCE_THREAD *PERESOURCE_THREAD; typedef struct _OWNER_ENTRY { ERESOURCE_THREAD OwnerThread; union { LONG OwnerCount; ULONG TableSize; }; } OWNER_ENTRY, *POWNER_ENTRY; typedef struct _ERESOURCE { LIST_ENTRY SystemResourcesList; POWNER_ENTRY OwnerTable; SHORT ActiveCount; USHORT Flag; PKSEMAPHORE SharedWaiters; PKEVENT ExclusiveWaiters; OWNER_ENTRY OwnerThreads[2]; ULONG ContentionCount; USHORT NumberOfSharedWaiters; USHORT NumberOfExclusiveWaiters; union { PVOID Address; ULONG_PTR CreatorBackTraceIndex; }; KSPIN_LOCK SpinLock; } ERESOURCE, *PERESOURCE; // // Values for ERESOURCE.Flag // #define ResourceNeverExclusive 0x10 #define ResourceReleaseByOtherThread 0x20 #define ResourceOwnedExclusive 0x80 #define RESOURCE_HASH_TABLE_SIZE 64 typedef struct _RESOURCE_HASH_ENTRY { LIST_ENTRY ListEntry; PVOID Address; ULONG ContentionCount; ULONG Number; } RESOURCE_HASH_ENTRY, *PRESOURCE_HASH_ENTRY; typedef struct _RESOURCE_PERFORMANCE_DATA { ULONG ActiveResourceCount; ULONG TotalResourceCount; ULONG ExclusiveAcquire; ULONG SharedFirstLevel; ULONG SharedSecondLevel; ULONG StarveFirstLevel; ULONG StarveSecondLevel; ULONG WaitForExclusive; ULONG OwnerTableExpands; ULONG MaximumTableExpand; LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE]; } RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA; // // Define executive resource function prototypes. // NTKERNELAPI NTSTATUS ExInitializeResourceLite( IN PERESOURCE Resource ); NTKERNELAPI NTSTATUS ExReinitializeResourceLite( IN PERESOURCE Resource ); NTKERNELAPI BOOLEAN ExAcquireResourceSharedLite( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExAcquireResourceExclusiveLite( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExAcquireSharedStarveExclusive( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExAcquireSharedWaitForExclusive( IN PERESOURCE Resource, IN BOOLEAN Wait ); NTKERNELAPI BOOLEAN ExTryToAcquireResourceExclusiveLite( IN PERESOURCE Resource ); // // VOID // ExReleaseResource( // IN PERESOURCE Resource // ); // #if PRAGMA_DEPRECATED_DDK #pragma deprecated(ExReleaseResource) // Use ExReleaseResourceLite #endif #define ExReleaseResource(R) (ExReleaseResourceLite(R)) NTKERNELAPI VOID FASTCALL ExReleaseResourceLite( IN PERESOURCE Resource ); NTKERNELAPI VOID ExReleaseResourceForThreadLite( IN PERESOURCE Resource, IN ERESOURCE_THREAD ResourceThreadId ); NTKERNELAPI VOID ExSetResourceOwnerPointer( IN PERESOURCE Resource, IN PVOID OwnerPointer ); NTKERNELAPI VOID ExConvertExclusiveToSharedLite( IN PERESOURCE Resource ); NTKERNELAPI NTSTATUS ExDeleteResourceLite ( IN PERESOURCE Resource ); NTKERNELAPI ULONG ExGetExclusiveWaiterCount ( IN PERESOURCE Resource ); NTKERNELAPI ULONG ExGetSharedWaiterCount ( IN PERESOURCE Resource ); // // ERESOURCE_THREAD // ExGetCurrentResourceThread( // ); // #define ExGetCurrentResourceThread() ((ULONG_PTR)PsGetCurrentThread()) NTKERNELAPI BOOLEAN ExIsResourceAcquiredExclusiveLite ( IN PERESOURCE Resource ); NTKERNELAPI ULONG ExIsResourceAcquiredSharedLite ( IN PERESOURCE Resource ); // // An acquired resource is always owned shared, as shared ownership is a subset // of exclusive ownership. // #define ExIsResourceAcquiredLite ExIsResourceAcquiredSharedLite // // Get previous mode // NTKERNELAPI KPROCESSOR_MODE ExGetPreviousMode( VOID ); // // Raise status from kernel mode. // NTKERNELAPI VOID NTAPI ExRaiseStatus ( IN NTSTATUS Status ); // // Set timer resolution. // NTKERNELAPI ULONG ExSetTimerResolution ( IN ULONG DesiredTime, IN BOOLEAN SetResolution ); // // Subtract time zone bias from system time to get local time. // NTKERNELAPI VOID ExSystemTimeToLocalTime ( IN PLARGE_INTEGER SystemTime, OUT PLARGE_INTEGER LocalTime ); // // Add time zone bias to local time to get system time. // NTKERNELAPI VOID ExLocalTimeToSystemTime ( IN PLARGE_INTEGER LocalTime, OUT PLARGE_INTEGER SystemTime ); // // Define the type for Callback function. // typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT; typedef VOID (*PCALLBACK_FUNCTION ) ( IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2 ); NTKERNELAPI NTSTATUS ExCreateCallback ( OUT PCALLBACK_OBJECT *CallbackObject, IN POBJECT_ATTRIBUTES ObjectAttributes, IN BOOLEAN Create, IN BOOLEAN AllowMultipleCallbacks ); NTKERNELAPI PVOID ExRegisterCallback ( IN PCALLBACK_OBJECT CallbackObject, IN PCALLBACK_FUNCTION CallbackFunction, IN PVOID CallbackContext ); NTKERNELAPI VOID ExUnregisterCallback ( IN PVOID CallbackRegistration ); NTKERNELAPI VOID ExNotifyCallback ( IN PVOID CallbackObject, IN PVOID Argument1, IN PVOID Argument2 ); // // suite support // NTKERNELAPI BOOLEAN ExVerifySuite( SUITE_TYPE SuiteType ); // // Define a block to hold the actual routine registration. // typedef NTSTATUS (*PEX_CALLBACK_FUNCTION ) ( IN PVOID CallbackContext, IN PVOID Argument1, IN PVOID Argument2 ); // // Registry kernel mode callbacks // // // Hook selector // typedef enum _REG_NOTIFY_CLASS { RegNtDeleteKey, RegNtSetValueKey, RegNtDeleteValueKey, RegNtSetInformationKey, RegNtRenameKey, RegNtEnumerateKey, RegNtEnumerateValueKey, RegNtQueryKey, RegNtQueryValueKey, RegNtQueryMultipleValueKey, RegNtPreCreateKey, RegNtPostCreateKey, RegNtPreOpenKey, RegNtPostOpenKey, RegNtKeyHandleClose } REG_NOTIFY_CLASS; // // Parameter description for each notify class // typedef struct _REG_DELETE_KEY_INFORMATION { PVOID Object; // IN } REG_DELETE_KEY_INFORMATION, *PREG_DELETE_KEY_INFORMATION; typedef struct _REG_SET_VALUE_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING ValueName; // IN ULONG TitleIndex; // IN ULONG Type; // IN PVOID Data; // IN ULONG DataSize; // IN } REG_SET_VALUE_KEY_INFORMATION, *PREG_SET_VALUE_KEY_INFORMATION; typedef struct _REG_DELETE_VALUE_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING ValueName; // IN } REG_DELETE_VALUE_KEY_INFORMATION, *PREG_DELETE_VALUE_KEY_INFORMATION; typedef struct _REG_SET_INFORMATION_KEY_INFORMATION { PVOID Object; // IN KEY_SET_INFORMATION_CLASS KeySetInformationClass; // IN PVOID KeySetInformation; // IN ULONG KeySetInformationLength;// IN } REG_SET_INFORMATION_KEY_INFORMATION, *PREG_SET_INFORMATION_KEY_INFORMATION; typedef struct _REG_ENUMERATE_KEY_INFORMATION { PVOID Object; // IN ULONG Index; // IN KEY_INFORMATION_CLASS KeyInformationClass; // IN PVOID KeyInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_ENUMERATE_KEY_INFORMATION, *PREG_ENUMERATE_KEY_INFORMATION; typedef struct _REG_ENUMERATE_VALUE_KEY_INFORMATION { PVOID Object; // IN ULONG Index; // IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass; // IN PVOID KeyValueInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_ENUMERATE_VALUE_KEY_INFORMATION, *PREG_ENUMERATE_VALUE_KEY_INFORMATION; typedef struct _REG_QUERY_KEY_INFORMATION { PVOID Object; // IN KEY_INFORMATION_CLASS KeyInformationClass; // IN PVOID KeyInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_QUERY_KEY_INFORMATION, *PREG_QUERY_KEY_INFORMATION; typedef struct _REG_QUERY_VALUE_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING ValueName; // IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass; // IN PVOID KeyValueInformation; // IN ULONG Length; // IN PULONG ResultLength; // OUT } REG_QUERY_VALUE_KEY_INFORMATION, *PREG_QUERY_VALUE_KEY_INFORMATION; typedef struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION { PVOID Object; // IN PKEY_VALUE_ENTRY ValueEntries; // IN ULONG EntryCount; // IN PVOID ValueBuffer; // IN PULONG BufferLength; // IN OUT PULONG RequiredBufferLength; // OUT } REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION, *PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION; typedef struct _REG_RENAME_KEY_INFORMATION { PVOID Object; // IN PUNICODE_STRING NewName; // IN } REG_RENAME_KEY_INFORMATION, *PREG_RENAME_KEY_INFORMATION; typedef struct _REG_PRE_CREATE_KEY_INFORMATION { PUNICODE_STRING CompleteName; // IN } REG_PRE_CREATE_KEY_INFORMATION, REG_PRE_OPEN_KEY_INFORMATION,*PREG_PRE_CREATE_KEY_INFORMATION, *PREG_PRE_OPEN_KEY_INFORMATION;; typedef struct _REG_POST_CREATE_KEY_INFORMATION { PUNICODE_STRING CompleteName; // IN PVOID Object; // IN NTSTATUS Status; // IN } REG_POST_CREATE_KEY_INFORMATION,REG_POST_OPEN_KEY_INFORMATION, *PREG_POST_CREATE_KEY_INFORMATION, *PREG_POST_OPEN_KEY_INFORMATION; typedef struct _REG_KEY_HANDLE_CLOSE_INFORMATION { PVOID Object; // IN } REG_KEY_HANDLE_CLOSE_INFORMATION, *PREG_KEY_HANDLE_CLOSE_INFORMATION; NTSTATUS CmRegisterCallback(IN PEX_CALLBACK_FUNCTION Function, IN PVOID Context, IN OUT PLARGE_INTEGER Cookie ); NTSTATUS CmUnRegisterCallback(IN LARGE_INTEGER Cookie); // // Priority increment definitions. The comment for each definition gives // the names of the system services that use the definition when satisfying // a wait. // // // Priority increment used when satisfying a wait on an executive event // (NtPulseEvent and NtSetEvent) // #define EVENT_INCREMENT 1 // // Priority increment when no I/O has been done. This is used by device // and file system drivers when completing an IRP (IoCompleteRequest). // #define IO_NO_INCREMENT 0 // // Priority increment for completing CD-ROM I/O. This is used by CD-ROM device // and file system drivers when completing an IRP (IoCompleteRequest) // #define IO_CD_ROM_INCREMENT 1 // // Priority increment for completing disk I/O. This is used by disk device // and file system drivers when completing an IRP (IoCompleteRequest) // #define IO_DISK_INCREMENT 1 // // Priority increment for completing keyboard I/O. This is used by keyboard // device drivers when completing an IRP (IoCompleteRequest) // #define IO_KEYBOARD_INCREMENT 6 // // Priority increment for completing mailslot I/O. This is used by the mail- // slot file system driver when completing an IRP (IoCompleteRequest). // #define IO_MAILSLOT_INCREMENT 2 // // Priority increment for completing mouse I/O. This is used by mouse device // drivers when completing an IRP (IoCompleteRequest) // #define IO_MOUSE_INCREMENT 6 // // Priority increment for completing named pipe I/O. This is used by the // named pipe file system driver when completing an IRP (IoCompleteRequest). // #define IO_NAMED_PIPE_INCREMENT 2 // // Priority increment for completing network I/O. This is used by network // device and network file system drivers when completing an IRP // (IoCompleteRequest). // #define IO_NETWORK_INCREMENT 2 // // Priority increment for completing parallel I/O. This is used by parallel // device drivers when completing an IRP (IoCompleteRequest) // #define IO_PARALLEL_INCREMENT 1 // // Priority increment for completing serial I/O. This is used by serial device // drivers when completing an IRP (IoCompleteRequest) // #define IO_SERIAL_INCREMENT 2 // // Priority increment for completing sound I/O. This is used by sound device // drivers when completing an IRP (IoCompleteRequest) // #define IO_SOUND_INCREMENT 8 // // Priority increment for completing video I/O. This is used by video device // drivers when completing an IRP (IoCompleteRequest) // #define IO_VIDEO_INCREMENT 1 // // Priority increment used when satisfying a wait on an executive semaphore // (NtReleaseSemaphore) // #define SEMAPHORE_INCREMENT 1 // // Indicates the system may do I/O to physical addresses above 4 GB. // extern PBOOLEAN Mm64BitPhysicalAddress; // // Define maximum disk transfer size to be used by MM and Cache Manager, // so that packet-oriented disk drivers can optimize their packet allocation // to this size. // #define MM_MAXIMUM_DISK_IO_SIZE (0x10000) //++ // // ULONG_PTR // ROUND_TO_PAGES ( // IN ULONG_PTR Size // ) // // Routine Description: // // The ROUND_TO_PAGES macro takes a size in bytes and rounds it up to a // multiple of the page size. // // NOTE: This macro fails for values 0xFFFFFFFF - (PAGE_SIZE - 1). // // Arguments: // // Size - Size in bytes to round up to a page multiple. // // Return Value: // // Returns the size rounded up to a multiple of the page size. // //-- #define ROUND_TO_PAGES(Size) (((ULONG_PTR)(Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1)) //++ // // ULONG // BYTES_TO_PAGES ( // IN ULONG Size // ) // // Routine Description: // // The BYTES_TO_PAGES macro takes the size in bytes and calculates the // number of pages required to contain the bytes. // // Arguments: // // Size - Size in bytes. // // Return Value: // // Returns the number of pages required to contain the specified size. // //-- #define BYTES_TO_PAGES(Size) ((ULONG)((ULONG_PTR)(Size) >> PAGE_SHIFT) + \ (((ULONG)(Size) & (PAGE_SIZE - 1)) != 0)) //++ // // ULONG // BYTE_OFFSET ( // IN PVOID Va // ) // // Routine Description: // // The BYTE_OFFSET macro takes a virtual address and returns the byte offset // of that address within the page. // // Arguments: // // Va - Virtual address. // // Return Value: // // Returns the byte offset portion of the virtual address. // //-- #define BYTE_OFFSET(Va) ((ULONG)((LONG_PTR)(Va) & (PAGE_SIZE - 1))) //++ // // PVOID // PAGE_ALIGN ( // IN PVOID Va // ) // // Routine Description: // // The PAGE_ALIGN macro takes a virtual address and returns a page-aligned // virtual address for that page. // // Arguments: // // Va - Virtual address. // // Return Value: // // Returns the page aligned virtual address. // //-- #define PAGE_ALIGN(Va) ((PVOID)((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1))) //++ // // ULONG // ADDRESS_AND_SIZE_TO_SPAN_PAGES ( // IN PVOID Va, // IN ULONG Size // ) // // Routine Description: // // The ADDRESS_AND_SIZE_TO_SPAN_PAGES macro takes a virtual address and // size and returns the number of pages spanned by the size. // // Arguments: // // Va - Virtual address. // // Size - Size in bytes. // // Return Value: // // Returns the number of pages spanned by the size. // //-- #define ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size) \ ((ULONG)((((ULONG_PTR)(Va) & (PAGE_SIZE -1)) + (Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT)) #if PRAGMA_DEPRECATED_DDK #pragma deprecated(COMPUTE_PAGES_SPANNED) // Use ADDRESS_AND_SIZE_TO_SPAN_PAGES #endif #define COMPUTE_PAGES_SPANNED(Va, Size) ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size) //++ // PPFN_NUMBER // MmGetMdlPfnArray ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlPfnArray routine returns the virtual address of the // first element of the array of physical page numbers associated with // the MDL. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the virtual address of the first element of the array of // physical page numbers associated with the MDL. // //-- #define MmGetMdlPfnArray(Mdl) ((PPFN_NUMBER)(Mdl + 1)) //++ // // PVOID // MmGetMdlVirtualAddress ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlVirtualAddress returns the virtual address of the buffer // described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the virtual address of the buffer described by the Mdl // //-- #define MmGetMdlVirtualAddress(Mdl) \ ((PVOID) ((PCHAR) ((Mdl)->StartVa) + (Mdl)->ByteOffset)) //++ // // ULONG // MmGetMdlByteCount ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlByteCount returns the length in bytes of the buffer // described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the byte count of the buffer described by the Mdl // //-- #define MmGetMdlByteCount(Mdl) ((Mdl)->ByteCount) //++ // // ULONG // MmGetMdlByteOffset ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlByteOffset returns the byte offset within the page // of the buffer described by the Mdl. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the byte offset within the page of the buffer described by the Mdl // //-- #define MmGetMdlByteOffset(Mdl) ((Mdl)->ByteOffset) //++ // // PVOID // MmGetMdlStartVa ( // IN PMDL Mdl // ) // // Routine Description: // // The MmGetMdlBaseVa returns the virtual address of the buffer // described by the Mdl rounded down to the nearest page. // // Arguments: // // Mdl - Pointer to an MDL. // // Return Value: // // Returns the returns the starting virtual address of the MDL. // // //-- #define MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa) typedef enum _MM_SYSTEM_SIZE { MmSmallSystem, MmMediumSystem, MmLargeSystem } MM_SYSTEMSIZE; NTKERNELAPI MM_SYSTEMSIZE MmQuerySystemSize( VOID ); typedef enum _LOCK_OPERATION { IoReadAccess, IoWriteAccess, IoModifyAccess } LOCK_OPERATION; NTSTATUS MmIsVerifierEnabled ( OUT PULONG VerifierFlags ); NTSTATUS MmAddVerifierThunks ( IN PVOID ThunkBuffer, IN ULONG ThunkBufferSize ); NTKERNELAPI VOID MmProbeAndLockProcessPages ( IN OUT PMDL MemoryDescriptorList, IN PEPROCESS Process, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation ); // // I/O support routines. // NTKERNELAPI VOID MmProbeAndLockPages ( IN OUT PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation ); NTKERNELAPI VOID MmUnlockPages ( IN PMDL MemoryDescriptorList ); NTKERNELAPI VOID MmBuildMdlForNonPagedPool ( IN OUT PMDL MemoryDescriptorList ); NTKERNELAPI PVOID MmMapLockedPages ( IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode ); NTKERNELAPI PVOID MmGetSystemRoutineAddress ( IN PUNICODE_STRING SystemRoutineName ); NTKERNELAPI NTSTATUS MmAdvanceMdl ( IN PMDL Mdl, IN ULONG NumberOfBytes ); NTKERNELAPI NTSTATUS MmProtectMdlSystemAddress ( IN PMDL MemoryDescriptorList, IN ULONG NewProtect ); // // _MM_PAGE_PRIORITY_ provides a method for the system to handle requests // intelligently in low resource conditions. // // LowPagePriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is low on resources. An example of // this could be for a non-critical network connection where the driver can // handle the failure case when system resources are close to being depleted. // // NormalPagePriority should be used when it is acceptable to the driver for the // mapping request to fail if the system is very low on resources. An example // of this could be for a non-critical local filesystem request. // // HighPagePriority should be used when it is unacceptable to the driver for the // mapping request to fail unless the system is completely out of resources. // An example of this would be the paging file path in a driver. // typedef enum _MM_PAGE_PRIORITY { LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32 } MM_PAGE_PRIORITY; // // Note: This function is not available in WDM 1.0 // NTKERNELAPI PVOID MmMapLockedPagesSpecifyCache ( IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN MEMORY_CACHING_TYPE CacheType, IN PVOID BaseAddress, IN ULONG BugCheckOnFailure, IN MM_PAGE_PRIORITY Priority ); NTKERNELAPI VOID MmUnmapLockedPages ( IN PVOID BaseAddress, IN PMDL MemoryDescriptorList ); PVOID MmAllocateMappingAddress ( IN SIZE_T NumberOfBytes, IN ULONG PoolTag ); VOID MmFreeMappingAddress ( IN PVOID BaseAddress, IN ULONG PoolTag ); PVOID MmMapLockedPagesWithReservedMapping ( IN PVOID MappingAddress, IN ULONG PoolTag, IN PMDL MemoryDescriptorList, IN MEMORY_CACHING_TYPE CacheType ); VOID MmUnmapReservedMapping ( IN PVOID BaseAddress, IN ULONG PoolTag, IN PMDL MemoryDescriptorList ); NTKERNELAPI PMDL MmAllocatePagesForMdl ( IN PHYSICAL_ADDRESS LowAddress, IN PHYSICAL_ADDRESS HighAddress, IN PHYSICAL_ADDRESS SkipBytes, IN SIZE_T TotalBytes ); NTKERNELAPI VOID MmFreePagesFromMdl ( IN PMDL MemoryDescriptorList ); NTKERNELAPI PVOID MmMapIoSpace ( IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType ); NTKERNELAPI VOID MmUnmapIoSpace ( IN PVOID BaseAddress, IN SIZE_T NumberOfBytes ); NTKERNELAPI SIZE_T MmSizeOfMdl( IN PVOID Base, IN SIZE_T Length ); DECLSPEC_DEPRECATED_DDK // Use IoCreateMdl NTKERNELAPI PMDL MmCreateMdl( IN PMDL MemoryDescriptorList OPTIONAL, IN PVOID Base, IN SIZE_T Length ); NTKERNELAPI PVOID MmLockPagableDataSection( IN PVOID AddressWithinSection ); NTKERNELAPI VOID MmResetDriverPaging ( IN PVOID AddressWithinSection ); NTKERNELAPI PVOID MmPageEntireDriver ( IN PVOID AddressWithinSection ); NTKERNELAPI VOID MmUnlockPagableImageSection( IN PVOID ImageSectionHandle ); //++ // // VOID // MmInitializeMdl ( // IN PMDL MemoryDescriptorList, // IN PVOID BaseVa, // IN SIZE_T Length // ) // // Routine Description: // // This routine initializes the header of a Memory Descriptor List (MDL). // // Arguments: // // MemoryDescriptorList - Pointer to the MDL to initialize. // // BaseVa - Base virtual address mapped by the MDL. // // Length - Length, in bytes, of the buffer mapped by the MDL. // // Return Value: // // None. // //-- #define MmInitializeMdl(MemoryDescriptorList, BaseVa, Length) { \ (MemoryDescriptorList)->Next = (PMDL) NULL; \ (MemoryDescriptorList)->Size = (CSHORT)(sizeof(MDL) + \ (sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES((BaseVa), (Length)))); \ (MemoryDescriptorList)->MdlFlags = 0; \ (MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN((BaseVa)); \ (MemoryDescriptorList)->ByteOffset = BYTE_OFFSET((BaseVa)); \ (MemoryDescriptorList)->ByteCount = (ULONG)(Length); \ } //++ // // PVOID // MmGetSystemAddressForMdlSafe ( // IN PMDL MDL, // IN MM_PAGE_PRIORITY PRIORITY // ) // // Routine Description: // // This routine returns the mapped address of an MDL. If the // Mdl is not already mapped or a system address, it is mapped. // // Arguments: // // MemoryDescriptorList - Pointer to the MDL to map. // // Priority - Supplies an indication as to how important it is that this // request succeed under low available PTE conditions. // // Return Value: // // Returns the base address where the pages are mapped. The base address // has the same offset as the virtual address in the MDL. // // Unlike MmGetSystemAddressForMdl, Safe guarantees that it will always // return NULL on failure instead of bugchecking the system. // // This macro is not usable by WDM 1.0 drivers as 1.0 did not include // MmMapLockedPagesSpecifyCache. The solution for WDM 1.0 drivers is to // provide synchronization and set/reset the MDL_MAPPING_CAN_FAIL bit. // //-- #define MmGetSystemAddressForMdlSafe(MDL, PRIORITY) \ (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \ MDL_SOURCE_IS_NONPAGED_POOL)) ? \ ((MDL)->MappedSystemVa) : \ (MmMapLockedPagesSpecifyCache((MDL), \ KernelMode, \ MmCached, \ NULL, \ FALSE, \ (PRIORITY)))) //++ // // PVOID // MmGetSystemAddressForMdl ( // IN PMDL MDL // ) // // Routine Description: // // This routine returns the mapped address of an MDL, if the // Mdl is not already mapped or a system address, it is mapped. // // Arguments: // // MemoryDescriptorList - Pointer to the MDL to map. // // Return Value: // // Returns the base address where the pages are mapped. The base address // has the same offset as the virtual address in the MDL. // //-- //#define MmGetSystemAddressForMdl(MDL) // (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA)) ? // ((MDL)->MappedSystemVa) : // ((((MDL)->MdlFlags & (MDL_SOURCE_IS_NONPAGED_POOL)) ? // ((PVOID)((ULONG)(MDL)->StartVa | (MDL)->ByteOffset)) : // (MmMapLockedPages((MDL),KernelMode))))) #if PRAGMA_DEPRECATED_DDK #pragma deprecated(MmGetSystemAddressForMdl) // Use MmGetSystemAddressForMdlSafe #endif #define MmGetSystemAddressForMdl(MDL) \ (((MDL)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \ MDL_SOURCE_IS_NONPAGED_POOL)) ? \ ((MDL)->MappedSystemVa) : \ (MmMapLockedPages((MDL),KernelMode))) //++ // // VOID // MmPrepareMdlForReuse ( // IN PMDL MDL // ) // // Routine Description: // // This routine will take all of the steps necessary to allow an MDL to be // re-used. // // Arguments: // // MemoryDescriptorList - Pointer to the MDL that will be re-used. // // Return Value: // // None. // //-- #define MmPrepareMdlForReuse(MDL) \ if (((MDL)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \ ASSERT(((MDL)->MdlFlags & MDL_PARTIAL) != 0); \ MmUnmapLockedPages( (MDL)->MappedSystemVa, (MDL) ); \ } else if (((MDL)->MdlFlags & MDL_PARTIAL) == 0) { \ ASSERT(((MDL)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \ } typedef NTSTATUS (*PMM_DLL_INITIALIZE)( IN PUNICODE_STRING RegistryPath ); typedef NTSTATUS (*PMM_DLL_UNLOAD)( VOID ); // // Define an empty typedef for the _DRIVER_OBJECT structure so it may be // referenced by function types before it is actually defined. // struct _DRIVER_OBJECT; NTKERNELAPI LOGICAL MmIsDriverVerifying ( IN struct _DRIVER_OBJECT *DriverObject ); // // Security operation codes // typedef enum _SECURITY_OPERATION_CODE { SetSecurityDescriptor, QuerySecurityDescriptor, DeleteSecurityDescriptor, AssignSecurityDescriptor } SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE; // // Data structure used to capture subject security context // for access validations and auditing. // // THE FIELDS OF THIS DATA STRUCTURE SHOULD BE CONSIDERED OPAQUE // BY ALL EXCEPT THE SECURITY ROUTINES. // typedef struct _SECURITY_SUBJECT_CONTEXT { PACCESS_TOKEN ClientToken; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; PACCESS_TOKEN PrimaryToken; PVOID ProcessAuditId; } SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT; /////////////////////////////////////////////////////////////////////////////// // // // ACCESS_STATE and related structures // // // /////////////////////////////////////////////////////////////////////////////// // // Initial Privilege Set - Room for three privileges, which should // be enough for most applications. This structure exists so that // it can be imbedded in an ACCESS_STATE structure. Use PRIVILEGE_SET // for all other references to Privilege sets. // #define INITIAL_PRIVILEGE_COUNT 3 typedef struct _INITIAL_PRIVILEGE_SET { ULONG PrivilegeCount; ULONG Control; LUID_AND_ATTRIBUTES Privilege[INITIAL_PRIVILEGE_COUNT]; } INITIAL_PRIVILEGE_SET, * PINITIAL_PRIVILEGE_SET; // // Combine the information that describes the state // of an access-in-progress into a single structure // typedef struct _ACCESS_STATE { LUID OperationID; BOOLEAN SecurityEvaluated; BOOLEAN GenerateAudit; BOOLEAN GenerateOnClose; BOOLEAN PrivilegesAllocated; ULONG Flags; ACCESS_MASK RemainingDesiredAccess; ACCESS_MASK PreviouslyGrantedAccess; ACCESS_MASK OriginalDesiredAccess; SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; PSECURITY_DESCRIPTOR SecurityDescriptor; PVOID AuxData; union { INITIAL_PRIVILEGE_SET InitialPrivilegeSet; PRIVILEGE_SET PrivilegeSet; } Privileges; BOOLEAN AuditPrivileges; UNICODE_STRING ObjectName; UNICODE_STRING ObjectTypeName; } ACCESS_STATE, *PACCESS_STATE; NTKERNELAPI NTSTATUS SeAssignSecurity ( IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL, IN PSECURITY_DESCRIPTOR ExplicitDescriptor, OUT PSECURITY_DESCRIPTOR *NewDescriptor, IN BOOLEAN IsDirectoryObject, IN PSECURITY_SUBJECT_CONTEXT SubjectContext, IN PGENERIC_MAPPING GenericMapping, IN POOL_TYPE PoolType ); NTKERNELAPI NTSTATUS SeAssignSecurityEx ( IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL, IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL, OUT PSECURITY_DESCRIPTOR *NewDescriptor, IN GUID *ObjectType OPTIONAL, IN BOOLEAN IsDirectoryObject, IN ULONG AutoInheritFlags, IN PSECURITY_SUBJECT_CONTEXT SubjectContext, IN PGENERIC_MAPPING GenericMapping, IN POOL_TYPE PoolType ); NTKERNELAPI NTSTATUS SeDeassignSecurity ( IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor ); NTKERNELAPI BOOLEAN SeAccessCheck ( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext, IN BOOLEAN SubjectContextLocked, IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK PreviouslyGrantedAccess, OUT PPRIVILEGE_SET *Privileges OPTIONAL, IN PGENERIC_MAPPING GenericMapping, IN KPROCESSOR_MODE AccessMode, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus ); #ifdef SE_NTFS_WORLD_CACHE VOID SeGetWorldRights ( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PGENERIC_MAPPING GenericMapping, OUT PACCESS_MASK GrantedAccess ); #endif NTKERNELAPI BOOLEAN SeValidSecurityDescriptor( IN ULONG Length, IN PSECURITY_DESCRIPTOR SecurityDescriptor ); // // System Thread and Process Creation and Termination // NTKERNELAPI NTSTATUS PsCreateSystemThread( OUT PHANDLE ThreadHandle, IN ULONG DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN HANDLE ProcessHandle OPTIONAL, OUT PCLIENT_ID ClientId OPTIONAL, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext ); NTKERNELAPI NTSTATUS PsTerminateSystemThread( IN NTSTATUS ExitStatus ); // // Define I/O system data structure type codes. Each major data structure in // the I/O system has a type code The type field in each structure is at the // same offset. The following values can be used to determine which type of // data structure a pointer refers to. // #define IO_TYPE_ADAPTER 0x00000001 #define IO_TYPE_CONTROLLER 0x00000002 #define IO_TYPE_DEVICE 0x00000003 #define IO_TYPE_DRIVER 0x00000004 #define IO_TYPE_FILE 0x00000005 #define IO_TYPE_IRP 0x00000006 #define IO_TYPE_MASTER_ADAPTER 0x00000007 #define IO_TYPE_OPEN_PACKET 0x00000008 #define IO_TYPE_TIMER 0x00000009 #define IO_TYPE_VPB 0x0000000a #define IO_TYPE_ERROR_LOG 0x0000000b #define IO_TYPE_ERROR_MESSAGE 0x0000000c #define IO_TYPE_DEVICE_OBJECT_EXTENSION 0x0000000d // // Define the major function codes for IRPs. // #define IRP_MJ_CREATE 0x00 #define IRP_MJ_CREATE_NAMED_PIPE 0x01 #define IRP_MJ_CLOSE 0x02 #define IRP_MJ_READ 0x03 #define IRP_MJ_WRITE 0x04 #define IRP_MJ_QUERY_INFORMATION 0x05 #define IRP_MJ_SET_INFORMATION 0x06 #define IRP_MJ_QUERY_EA 0x07 #define IRP_MJ_SET_EA 0x08 #define IRP_MJ_FLUSH_BUFFERS 0x09 #define IRP_MJ_QUERY_VOLUME_INFORMATION 0x0a #define IRP_MJ_SET_VOLUME_INFORMATION 0x0b #define IRP_MJ_DIRECTORY_CONTROL 0x0c #define IRP_MJ_FILE_SYSTEM_CONTROL 0x0d #define IRP_MJ_DEVICE_CONTROL 0x0e #define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0f #define IRP_MJ_SHUTDOWN 0x10 #define IRP_MJ_LOCK_CONTROL 0x11 #define IRP_MJ_CLEANUP 0x12 #define IRP_MJ_CREATE_MAILSLOT 0x13 #define IRP_MJ_QUERY_SECURITY 0x14 #define IRP_MJ_SET_SECURITY 0x15 #define IRP_MJ_POWER 0x16 #define IRP_MJ_SYSTEM_CONTROL 0x17 #define IRP_MJ_DEVICE_CHANGE 0x18 #define IRP_MJ_QUERY_QUOTA 0x19 #define IRP_MJ_SET_QUOTA 0x1a #define IRP_MJ_PNP 0x1b #define IRP_MJ_PNP_POWER IRP_MJ_PNP // Obsolete.... #define IRP_MJ_MAXIMUM_FUNCTION 0x1b // // Make the Scsi major code the same as internal device control. // #define IRP_MJ_SCSI IRP_MJ_INTERNAL_DEVICE_CONTROL // // Define the minor function codes for IRPs. The lower 128 codes, from 0x00 to // 0x7f are reserved to Microsoft. The upper 128 codes, from 0x80 to 0xff, are // reserved to customers of Microsoft. // // // Device Control Request minor function codes for SCSI support. Note that // user requests are assumed to be zero. // #define IRP_MN_SCSI_CLASS 0x01 // // PNP minor function codes. // #define IRP_MN_START_DEVICE 0x00 #define IRP_MN_QUERY_REMOVE_DEVICE 0x01 #define IRP_MN_REMOVE_DEVICE 0x02 #define IRP_MN_CANCEL_REMOVE_DEVICE 0x03 #define IRP_MN_STOP_DEVICE 0x04 #define IRP_MN_QUERY_STOP_DEVICE 0x05 #define IRP_MN_CANCEL_STOP_DEVICE 0x06 #define IRP_MN_QUERY_DEVICE_RELATIONS 0x07 #define IRP_MN_QUERY_INTERFACE 0x08 #define IRP_MN_QUERY_CAPABILITIES 0x09 #define IRP_MN_QUERY_RESOURCES 0x0A #define IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B #define IRP_MN_QUERY_DEVICE_TEXT 0x0C #define IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D #define IRP_MN_READ_CONFIG 0x0F #define IRP_MN_WRITE_CONFIG 0x10 #define IRP_MN_EJECT 0x11 #define IRP_MN_SET_LOCK 0x12 #define IRP_MN_QUERY_ID 0x13 #define IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 #define IRP_MN_QUERY_BUS_INFORMATION 0x15 #define IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 #define IRP_MN_SURPRISE_REMOVAL 0x17 // // POWER minor function codes // #define IRP_MN_WAIT_WAKE 0x00 #define IRP_MN_POWER_SEQUENCE 0x01 #define IRP_MN_SET_POWER 0x02 #define IRP_MN_QUERY_POWER 0x03 // // WMI minor function codes under IRP_MJ_SYSTEM_CONTROL // #define IRP_MN_QUERY_ALL_DATA 0x00 #define IRP_MN_QUERY_SINGLE_INSTANCE 0x01 #define IRP_MN_CHANGE_SINGLE_INSTANCE 0x02 #define IRP_MN_CHANGE_SINGLE_ITEM 0x03 #define IRP_MN_ENABLE_EVENTS 0x04 #define IRP_MN_DISABLE_EVENTS 0x05 #define IRP_MN_ENABLE_COLLECTION 0x06 #define IRP_MN_DISABLE_COLLECTION 0x07 #define IRP_MN_REGINFO 0x08 #define IRP_MN_EXECUTE_METHOD 0x09 // Minor code 0x0a is reserved #define IRP_MN_REGINFO_EX 0x0b // // Define option flags for IoCreateFile. Note that these values must be // exactly the same as the SL_... flags for a create function. Note also // that there are flags that may be passed to IoCreateFile that are not // placed in the stack location for the create IRP. These flags start in // the next byte. // #define IO_FORCE_ACCESS_CHECK 0x0001 #define IO_NO_PARAMETER_CHECKING 0x0100 // // Define Information fields for whether or not a REPARSE or a REMOUNT has // occurred in the file system. // #define IO_REPARSE 0x0 #define IO_REMOUNT 0x1 // // Define the objects that can be created by IoCreateFile. // typedef enum _CREATE_FILE_TYPE { CreateFileTypeNone, CreateFileTypeNamedPipe, CreateFileTypeMailslot } CREATE_FILE_TYPE; // // Define the structures used by the I/O system // // // Define empty typedefs for the _IRP, _DEVICE_OBJECT, and _DRIVER_OBJECT // structures so they may be referenced by function types before they are // actually defined. // struct _DEVICE_DESCRIPTION; struct _DEVICE_OBJECT; struct _DMA_ADAPTER; struct _DRIVER_OBJECT; struct _DRIVE_LAYOUT_INFORMATION; struct _DISK_PARTITION; struct _FILE_OBJECT; struct _IRP; struct _SCSI_REQUEST_BLOCK; struct _SCATTER_GATHER_LIST; // // Define the I/O version of a DPC routine. // typedef VOID (*PIO_DPC_ROUTINE) ( IN PKDPC Dpc, IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PVOID Context ); // // Define driver timer routine type. // typedef VOID (*PIO_TIMER_ROUTINE) ( IN struct _DEVICE_OBJECT *DeviceObject, IN PVOID Context ); // // Define driver initialization routine type. // typedef NTSTATUS (*PDRIVER_INITIALIZE) ( IN struct _DRIVER_OBJECT *DriverObject, IN PUNICODE_STRING RegistryPath ); // // Define driver cancel routine type. // typedef VOID (*PDRIVER_CANCEL) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp ); // // Define driver dispatch routine type. // typedef NTSTATUS (*PDRIVER_DISPATCH) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp ); // // Define driver start I/O routine type. // typedef VOID (*PDRIVER_STARTIO) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp ); // // Define driver unload routine type. // typedef VOID (*PDRIVER_UNLOAD) ( IN struct _DRIVER_OBJECT *DriverObject ); // // Define driver AddDevice routine type. // typedef NTSTATUS (*PDRIVER_ADD_DEVICE) ( IN struct _DRIVER_OBJECT *DriverObject, IN struct _DEVICE_OBJECT *PhysicalDeviceObject ); // // Define fast I/O procedure prototypes. // // Fast I/O read and write procedures. // typedef BOOLEAN (*PFAST_IO_CHECK_IF_POSSIBLE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN BOOLEAN CheckForReadOperation, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_READ) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN ULONG LockKey, IN PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Fast I/O query basic and standard information procedures. // typedef BOOLEAN (*PFAST_IO_QUERY_BASIC_INFO) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, OUT PFILE_BASIC_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_QUERY_STANDARD_INFO) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, OUT PFILE_STANDARD_INFORMATION Buffer, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Fast I/O lock and unlock procedures. // typedef BOOLEAN (*PFAST_IO_LOCK) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, BOOLEAN FailImmediately, BOOLEAN ExclusiveLock, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_UNLOCK_SINGLE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PLARGE_INTEGER Length, PEPROCESS ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL) ( IN struct _FILE_OBJECT *FileObject, PEPROCESS ProcessId, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_UNLOCK_ALL_BY_KEY) ( IN struct _FILE_OBJECT *FileObject, PVOID ProcessId, ULONG Key, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Fast I/O device control procedure. // typedef BOOLEAN (*PFAST_IO_DEVICE_CONTROL) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN ULONG IoControlCode, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Define callbacks for NtCreateSection to synchronize correctly with // the file system. It pre-acquires the resources that will be needed // when calling to query and set file/allocation size in the file system. // typedef VOID (*PFAST_IO_ACQUIRE_FILE) ( IN struct _FILE_OBJECT *FileObject ); typedef VOID (*PFAST_IO_RELEASE_FILE) ( IN struct _FILE_OBJECT *FileObject ); // // Define callback for drivers that have device objects attached to lower- // level drivers' device objects. This callback is made when the lower-level // driver is deleting its device object. // typedef VOID (*PFAST_IO_DETACH_DEVICE) ( IN struct _DEVICE_OBJECT *SourceDevice, IN struct _DEVICE_OBJECT *TargetDevice ); // // This structure is used by the server to quickly get the information needed // to service a server open call. It is takes what would be two fast io calls // one for basic information and the other for standard information and makes // it into one call. // typedef BOOLEAN (*PFAST_IO_QUERY_NETWORK_OPEN_INFO) ( IN struct _FILE_OBJECT *FileObject, IN BOOLEAN Wait, OUT struct _FILE_NETWORK_OPEN_INFORMATION *Buffer, OUT struct _IO_STATUS_BLOCK *IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); // // Define Mdl-based routines for the server to call // typedef BOOLEAN (*PFAST_IO_MDL_READ) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_READ_COMPLETE) ( IN struct _FILE_OBJECT *FileObject, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_PREPARE_MDL_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_WRITE_COMPLETE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); // // If this routine is present, it will be called by FsRtl // to acquire the file for the mapped page writer. // typedef NTSTATUS (*PFAST_IO_ACQUIRE_FOR_MOD_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER EndingOffset, OUT struct _ERESOURCE **ResourceToRelease, IN struct _DEVICE_OBJECT *DeviceObject ); typedef NTSTATUS (*PFAST_IO_RELEASE_FOR_MOD_WRITE) ( IN struct _FILE_OBJECT *FileObject, IN struct _ERESOURCE *ResourceToRelease, IN struct _DEVICE_OBJECT *DeviceObject ); // // If this routine is present, it will be called by FsRtl // to acquire the file for the mapped page writer. // typedef NTSTATUS (*PFAST_IO_ACQUIRE_FOR_CCFLUSH) ( IN struct _FILE_OBJECT *FileObject, IN struct _DEVICE_OBJECT *DeviceObject ); typedef NTSTATUS (*PFAST_IO_RELEASE_FOR_CCFLUSH) ( IN struct _FILE_OBJECT *FileObject, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_READ_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, OUT PVOID Buffer, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, OUT struct _COMPRESSED_DATA_INFO *CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_WRITE_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN ULONG LockKey, IN PVOID Buffer, OUT PMDL *MdlChain, OUT PIO_STATUS_BLOCK IoStatus, IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo, IN ULONG CompressedDataInfoLength, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_READ_COMPLETE_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED) ( IN struct _FILE_OBJECT *FileObject, IN PLARGE_INTEGER FileOffset, IN PMDL MdlChain, IN struct _DEVICE_OBJECT *DeviceObject ); typedef BOOLEAN (*PFAST_IO_QUERY_OPEN) ( IN struct _IRP *Irp, OUT PFILE_NETWORK_OPEN_INFORMATION NetworkInformation, IN struct _DEVICE_OBJECT *DeviceObject ); // // Define the structure to describe the Fast I/O dispatch routines. Any // additions made to this structure MUST be added monotonically to the end // of the structure, and fields CANNOT be removed from the middle. // typedef struct _FAST_IO_DISPATCH { ULONG SizeOfFastIoDispatch; PFAST_IO_CHECK_IF_POSSIBLE FastIoCheckIfPossible; PFAST_IO_READ FastIoRead; PFAST_IO_WRITE FastIoWrite; PFAST_IO_QUERY_BASIC_INFO FastIoQueryBasicInfo; PFAST_IO_QUERY_STANDARD_INFO FastIoQueryStandardInfo; PFAST_IO_LOCK FastIoLock; PFAST_IO_UNLOCK_SINGLE FastIoUnlockSingle; PFAST_IO_UNLOCK_ALL FastIoUnlockAll; PFAST_IO_UNLOCK_ALL_BY_KEY FastIoUnlockAllByKey; PFAST_IO_DEVICE_CONTROL FastIoDeviceControl; PFAST_IO_ACQUIRE_FILE AcquireFileForNtCreateSection; PFAST_IO_RELEASE_FILE ReleaseFileForNtCreateSection; PFAST_IO_DETACH_DEVICE FastIoDetachDevice; PFAST_IO_QUERY_NETWORK_OPEN_INFO FastIoQueryNetworkOpenInfo; PFAST_IO_ACQUIRE_FOR_MOD_WRITE AcquireForModWrite; PFAST_IO_MDL_READ MdlRead; PFAST_IO_MDL_READ_COMPLETE MdlReadComplete; PFAST_IO_PREPARE_MDL_WRITE PrepareMdlWrite; PFAST_IO_MDL_WRITE_COMPLETE MdlWriteComplete; PFAST_IO_READ_COMPRESSED FastIoReadCompressed; PFAST_IO_WRITE_COMPRESSED FastIoWriteCompressed; PFAST_IO_MDL_READ_COMPLETE_COMPRESSED MdlReadCompleteCompressed; PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED MdlWriteCompleteCompressed; PFAST_IO_QUERY_OPEN FastIoQueryOpen; PFAST_IO_RELEASE_FOR_MOD_WRITE ReleaseForModWrite; PFAST_IO_ACQUIRE_FOR_CCFLUSH AcquireForCcFlush; PFAST_IO_RELEASE_FOR_CCFLUSH ReleaseForCcFlush; } FAST_IO_DISPATCH, *PFAST_IO_DISPATCH; // // Define the actions that a driver execution routine may request of the // adapter/controller allocation routines upon return. // typedef enum _IO_ALLOCATION_ACTION { KeepObject = 1, DeallocateObject, DeallocateObjectKeepRegisters } IO_ALLOCATION_ACTION, *PIO_ALLOCATION_ACTION; // // Define device driver adapter/controller execution routine. // typedef IO_ALLOCATION_ACTION (*PDRIVER_CONTROL) ( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PVOID MapRegisterBase, IN PVOID Context ); // // Define the I/O system's security context type for use by file system's // when checking access to volumes, files, and directories. // typedef struct _IO_SECURITY_CONTEXT { PSECURITY_QUALITY_OF_SERVICE SecurityQos; PACCESS_STATE AccessState; ACCESS_MASK DesiredAccess; ULONG FullCreateOptions; } IO_SECURITY_CONTEXT, *PIO_SECURITY_CONTEXT; // // Define object type specific fields of various objects used by the I/O system // typedef struct _DMA_ADAPTER *PADAPTER_OBJECT; // // Define Wait Context Block (WCB) // typedef struct _WAIT_CONTEXT_BLOCK { KDEVICE_QUEUE_ENTRY WaitQueueEntry; PDRIVER_CONTROL DeviceRoutine; PVOID DeviceContext; ULONG NumberOfMapRegisters; PVOID DeviceObject; PVOID CurrentIrp; PKDPC BufferChainingDpc; } WAIT_CONTEXT_BLOCK, *PWAIT_CONTEXT_BLOCK; // // Define Device Object (DO) flags // #define DO_BUFFERED_IO 0x00000004 #define DO_EXCLUSIVE 0x00000008 #define DO_DIRECT_IO 0x00000010 #define DO_MAP_IO_BUFFER 0x00000020 #define DO_DEVICE_INITIALIZING 0x00000080 #define DO_SHUTDOWN_REGISTERED 0x00000800 #define DO_BUS_ENUMERATED_DEVICE 0x00001000 #define DO_POWER_PAGABLE 0x00002000 #define DO_POWER_INRUSH 0x00004000 // // Device Object structure definition // typedef struct DECLSPEC_ALIGN(MEMORY_ALLOCATION_ALIGNMENT) _DEVICE_OBJECT { CSHORT Type; USHORT Size; LONG ReferenceCount; struct _DRIVER_OBJECT *DriverObject; struct _DEVICE_OBJECT *NextDevice; struct _DEVICE_OBJECT *AttachedDevice; struct _IRP *CurrentIrp; PIO_TIMER Timer; ULONG Flags; // See above: DO_... ULONG Characteristics; // See ntioapi: FILE_... PVOID DoNotUse1; PVOID DeviceExtension; DEVICE_TYPE DeviceType; CCHAR StackSize; union { LIST_ENTRY ListEntry; WAIT_CONTEXT_BLOCK Wcb; } Queue; ULONG AlignmentRequirement; KDEVICE_QUEUE DeviceQueue; KDPC Dpc; // // The following field is for exclusive use by the filesystem to keep // track of the number of Fsp threads currently using the device // ULONG ActiveThreadCount; PSECURITY_DESCRIPTOR SecurityDescriptor; KEVENT DeviceLock; USHORT SectorSize; USHORT Spare1; struct _DEVOBJ_EXTENSION *DeviceObjectExtension; PVOID Reserved; } DEVICE_OBJECT; typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT; struct _DEVICE_OBJECT_POWER_EXTENSION; typedef struct _DEVOBJ_EXTENSION { CSHORT Type; USHORT Size; // // Public part of the DeviceObjectExtension structure // PDEVICE_OBJECT DeviceObject; // owning device object } DEVOBJ_EXTENSION, *PDEVOBJ_EXTENSION; // // Define Driver Object (DRVO) flags // #define DRVO_UNLOAD_INVOKED 0x00000001 #define DRVO_LEGACY_DRIVER 0x00000002 #define DRVO_BUILTIN_DRIVER 0x00000004 // Driver objects for Hal, PnP Mgr typedef struct _DRIVER_EXTENSION { // // Back pointer to Driver Object // struct _DRIVER_OBJECT *DriverObject; // // The AddDevice entry point is called by the Plug & Play manager // to inform the driver when a new device instance arrives that this // driver must control. // PDRIVER_ADD_DEVICE AddDevice; // // The count field is used to count the number of times the driver has // had its registered reinitialization routine invoked. // ULONG Count; // // The service name field is used by the pnp manager to determine // where the driver related info is stored in the registry. // UNICODE_STRING ServiceKeyName; // // Note: any new shared fields get added here. // } DRIVER_EXTENSION, *PDRIVER_EXTENSION; typedef struct _DRIVER_OBJECT { CSHORT Type; CSHORT Size; // // The following links all of the devices created by a single driver // together on a list, and the Flags word provides an extensible flag // location for driver objects. // PDEVICE_OBJECT DeviceObject; ULONG Flags; // // The following section describes where the driver is loaded. The count // field is used to count the number of times the driver has had its // registered reinitialization routine invoked. // PVOID DriverStart; ULONG DriverSize; PVOID DriverSection; PDRIVER_EXTENSION DriverExtension; // // The driver name field is used by the error log thread // determine the name of the driver that an I/O request is/was bound. // UNICODE_STRING DriverName; // // The following section is for registry support. Thise is a pointer // to the path to the hardware information in the registry // PUNICODE_STRING HardwareDatabase; // // The following section contains the optional pointer to an array of // alternate entry points to a driver for "fast I/O" support. Fast I/O // is performed by invoking the driver routine directly with separate // parameters, rather than using the standard IRP call mechanism. Note // that these functions may only be used for synchronous I/O, and when // the file is cached. // PFAST_IO_DISPATCH FastIoDispatch; // // The following section describes the entry points to this particular // driver. Note that the major function dispatch table must be the last // field in the object so that it remains extensible. // PDRIVER_INITIALIZE DriverInit; PDRIVER_STARTIO DriverStartIo; PDRIVER_UNLOAD DriverUnload; PDRIVER_DISPATCH MajorFunction[IRP_MJ_MAXIMUM_FUNCTION + 1]; } DRIVER_OBJECT; typedef struct _DRIVER_OBJECT *PDRIVER_OBJECT; // // The following structure is pointed to by the SectionObject pointer field // of a file object, and is allocated by the various NT file systems. // typedef struct _SECTION_OBJECT_POINTERS { PVOID DataSectionObject; PVOID SharedCacheMap; PVOID ImageSectionObject; } SECTION_OBJECT_POINTERS; typedef SECTION_OBJECT_POINTERS *PSECTION_OBJECT_POINTERS; // // Define the format of a completion message. // typedef struct _IO_COMPLETION_CONTEXT { PVOID Port; PVOID Key; } IO_COMPLETION_CONTEXT, *PIO_COMPLETION_CONTEXT; // // Define File Object (FO) flags // #define FO_FILE_OPEN 0x00000001 #define FO_SYNCHRONOUS_IO 0x00000002 #define FO_ALERTABLE_IO 0x00000004 #define FO_NO_INTERMEDIATE_BUFFERING 0x00000008 #define FO_WRITE_THROUGH 0x00000010 #define FO_SEQUENTIAL_ONLY 0x00000020 #define FO_CACHE_SUPPORTED 0x00000040 #define FO_NAMED_PIPE 0x00000080 #define FO_STREAM_FILE 0x00000100 #define FO_MAILSLOT 0x00000200 #define FO_GENERATE_AUDIT_ON_CLOSE 0x00000400 #define FO_DIRECT_DEVICE_OPEN 0x00000800 #define FO_FILE_MODIFIED 0x00001000 #define FO_FILE_SIZE_CHANGED 0x00002000 #define FO_CLEANUP_COMPLETE 0x00004000 #define FO_TEMPORARY_FILE 0x00008000 #define FO_DELETE_ON_CLOSE 0x00010000 #define FO_OPENED_CASE_SENSITIVE 0x00020000 #define FO_HANDLE_CREATED 0x00040000 #define FO_FILE_FAST_IO_READ 0x00080000 #define FO_RANDOM_ACCESS 0x00100000 #define FO_FILE_OPEN_CANCELLED 0x00200000 #define FO_VOLUME_OPEN 0x00400000 #define FO_FILE_OBJECT_HAS_EXTENSION 0x00800000 #define FO_REMOTE_ORIGIN 0x01000000 typedef struct _FILE_OBJECT { CSHORT Type; CSHORT Size; PDEVICE_OBJECT DeviceObject; PVOID DoNotUse1; PVOID FsContext; PVOID FsContext2; PSECTION_OBJECT_POINTERS SectionObjectPointer; PVOID PrivateCacheMap; NTSTATUS FinalStatus; struct _FILE_OBJECT *RelatedFileObject; BOOLEAN LockOperation; BOOLEAN DeletePending; BOOLEAN ReadAccess; BOOLEAN WriteAccess; BOOLEAN DeleteAccess; BOOLEAN SharedRead; BOOLEAN SharedWrite; BOOLEAN SharedDelete; ULONG Flags; UNICODE_STRING FileName; LARGE_INTEGER CurrentByteOffset; ULONG Waiters; ULONG Busy; PVOID LastLock; KEVENT Lock; KEVENT Event; PIO_COMPLETION_CONTEXT CompletionContext; } FILE_OBJECT; typedef struct _FILE_OBJECT *PFILE_OBJECT; // // Define I/O Request Packet (IRP) flags // #define IRP_NOCACHE 0x00000001 #define IRP_PAGING_IO 0x00000002 #define IRP_MOUNT_COMPLETION 0x00000002 #define IRP_SYNCHRONOUS_API 0x00000004 #define IRP_ASSOCIATED_IRP 0x00000008 #define IRP_BUFFERED_IO 0x00000010 #define IRP_DEALLOCATE_BUFFER 0x00000020 #define IRP_INPUT_OPERATION 0x00000040 #define IRP_SYNCHRONOUS_PAGING_IO 0x00000040 #define IRP_CREATE_OPERATION 0x00000080 #define IRP_READ_OPERATION 0x00000100 #define IRP_WRITE_OPERATION 0x00000200 #define IRP_CLOSE_OPERATION 0x00000400 // // Define I/O request packet (IRP) alternate flags for allocation control. // #define IRP_QUOTA_CHARGED 0x01 #define IRP_ALLOCATED_MUST_SUCCEED 0x02 #define IRP_ALLOCATED_FIXED_SIZE 0x04 #define IRP_LOOKASIDE_ALLOCATION 0x08 // // I/O Request Packet (IRP) definition // typedef struct _IRP { CSHORT Type; USHORT Size; // // Define the common fields used to control the IRP. // // // Define a pointer to the Memory Descriptor List (MDL) for this I/O // request. This field is only used if the I/O is "direct I/O". // PMDL MdlAddress; // // Flags word - used to remember various flags. // ULONG Flags; // // The following union is used for one of three purposes: // // 1. This IRP is an associated IRP. The field is a pointer to a master // IRP. // // 2. This is the master IRP. The field is the count of the number of // IRPs which must complete (associated IRPs) before the master can // complete. // // 3. This operation is being buffered and the field is the address of // the system space buffer. // union { struct _IRP *MasterIrp; LONG IrpCount; PVOID SystemBuffer; } AssociatedIrp; // // Thread list entry - allows queueing the IRP to the thread pending I/O // request packet list. // LIST_ENTRY ThreadListEntry; // // I/O status - final status of operation. // IO_STATUS_BLOCK IoStatus; // // Requestor mode - mode of the original requestor of this operation. // KPROCESSOR_MODE RequestorMode; // // Pending returned - TRUE if pending was initially returned as the // status for this packet. // BOOLEAN PendingReturned; // // Stack state information. // CHAR StackCount; CHAR CurrentLocation; // // Cancel - packet has been canceled. // BOOLEAN Cancel; // // Cancel Irql - Irql at which the cancel spinlock was acquired. // KIRQL CancelIrql; // // ApcEnvironment - Used to save the APC environment at the time that the // packet was initialized. // CCHAR ApcEnvironment; // // Allocation control flags. // UCHAR AllocationFlags; // // User parameters. // PIO_STATUS_BLOCK UserIosb; PKEVENT UserEvent; union { struct { PIO_APC_ROUTINE UserApcRoutine; PVOID UserApcContext; } AsynchronousParameters; LARGE_INTEGER AllocationSize; } Overlay; // // CancelRoutine - Used to contain the address of a cancel routine supplied // by a device driver when the IRP is in a cancelable state. // PDRIVER_CANCEL CancelRoutine; // // Note that the UserBuffer parameter is outside of the stack so that I/O // completion can copy data back into the user's address space without // having to know exactly which service was being invoked. The length // of the copy is stored in the second half of the I/O status block. If // the UserBuffer field is NULL, then no copy is performed. // PVOID UserBuffer; // // Kernel structures // // The following section contains kernel structures which the IRP needs // in order to place various work information in kernel controller system // queues. Because the size and alignment cannot be controlled, they are // placed here at the end so they just hang off and do not affect the // alignment of other fields in the IRP. // union { struct { union { // // DeviceQueueEntry - The device queue entry field is used to // queue the IRP to the device driver device queue. // KDEVICE_QUEUE_ENTRY DeviceQueueEntry; struct { // // The following are available to the driver to use in // whatever manner is desired, while the driver owns the // packet. // PVOID DriverContext[4]; } ; } ; // // Thread - pointer to caller's Thread Control Block. // PETHREAD Thread; // // Auxiliary buffer - pointer to any auxiliary buffer that is // required to pass information to a driver that is not contained // in a normal buffer. // PCHAR AuxiliaryBuffer; // // The following unnamed structure must be exactly identical // to the unnamed structure used in the minipacket header used // for completion queue entries. // struct { // // List entry - used to queue the packet to completion queue, among // others. // LIST_ENTRY ListEntry; union { // // Current stack location - contains a pointer to the current // IO_STACK_LOCATION structure in the IRP stack. This field // should never be directly accessed by drivers. They should // use the standard functions. // struct _IO_STACK_LOCATION *CurrentStackLocation; // // Minipacket type. // ULONG PacketType; }; }; // // Original file object - pointer to the original file object // that was used to open the file. This field is owned by the // I/O system and should not be used by any other drivers. // PFILE_OBJECT OriginalFileObject; } Overlay; // // APC - This APC control block is used for the special kernel APC as // well as for the caller's APC, if one was specified in the original // argument list. If so, then the APC is reused for the normal APC for // whatever mode the caller was in and the "special" routine that is // invoked before the APC gets control simply deallocates the IRP. // KAPC Apc; // // CompletionKey - This is the key that is used to distinguish // individual I/O operations initiated on a single file handle. // PVOID CompletionKey; } Tail; } IRP, *PIRP; // // Define completion routine types for use in stack locations in an IRP // typedef NTSTATUS (*PIO_COMPLETION_ROUTINE) ( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context ); // // Define stack location control flags // #define SL_PENDING_RETURNED 0x01 #define SL_INVOKE_ON_CANCEL 0x20 #define SL_INVOKE_ON_SUCCESS 0x40 #define SL_INVOKE_ON_ERROR 0x80 // // Define flags for various functions // // // Create / Create Named Pipe // // The following flags must exactly match those in the IoCreateFile call's // options. The case sensitive flag is added in later, by the parse routine, // and is not an actual option to open. Rather, it is part of the object // manager's attributes structure. // #define SL_FORCE_ACCESS_CHECK 0x01 #define SL_OPEN_PAGING_FILE 0x02 #define SL_OPEN_TARGET_DIRECTORY 0x04 #define SL_CASE_SENSITIVE 0x80 // // Read / Write // #define SL_KEY_SPECIFIED 0x01 #define SL_OVERRIDE_VERIFY_VOLUME 0x02 #define SL_WRITE_THROUGH 0x04 #define SL_FT_SEQUENTIAL_WRITE 0x08 // // Device I/O Control // // // Same SL_OVERRIDE_VERIFY_VOLUME as for read/write above. // #define SL_READ_ACCESS_GRANTED 0x01 #define SL_WRITE_ACCESS_GRANTED 0x04 // Gap for SL_OVERRIDE_VERIFY_VOLUME // // Lock // #define SL_FAIL_IMMEDIATELY 0x01 #define SL_EXCLUSIVE_LOCK 0x02 // // QueryDirectory / QueryEa / QueryQuota // #define SL_RESTART_SCAN 0x01 #define SL_RETURN_SINGLE_ENTRY 0x02 #define SL_INDEX_SPECIFIED 0x04 // // NotifyDirectory // #define SL_WATCH_TREE 0x01 // // FileSystemControl // // minor: mount/verify volume // #define SL_ALLOW_RAW_MOUNT 0x01 // // Define PNP/POWER types required by IRP_MJ_PNP/IRP_MJ_POWER. // typedef enum _DEVICE_RELATION_TYPE { BusRelations, EjectionRelations, PowerRelations, RemovalRelations, TargetDeviceRelation, SingleBusRelations } DEVICE_RELATION_TYPE, *PDEVICE_RELATION_TYPE; typedef struct _DEVICE_RELATIONS { ULONG Count; PDEVICE_OBJECT Objects[1]; // variable length } DEVICE_RELATIONS, *PDEVICE_RELATIONS; typedef enum _DEVICE_USAGE_NOTIFICATION_TYPE { DeviceUsageTypeUndefined, DeviceUsageTypePaging, DeviceUsageTypeHibernation, DeviceUsageTypeDumpFile } DEVICE_USAGE_NOTIFICATION_TYPE; // workaround overloaded definition (rpc generated headers all define INTERFACE // to match the class name). #undef INTERFACE typedef struct _INTERFACE { USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // interface specific entries go here } INTERFACE, *PINTERFACE; typedef struct _DEVICE_CAPABILITIES { USHORT Size; USHORT Version; // the version documented here is version 1 ULONG DeviceD1:1; ULONG DeviceD2:1; ULONG LockSupported:1; ULONG EjectSupported:1; // Ejectable in S0 ULONG Removable:1; ULONG DockDevice:1; ULONG UniqueID:1; ULONG SilentInstall:1; ULONG RawDeviceOK:1; ULONG SurpriseRemovalOK:1; ULONG WakeFromD0:1; ULONG WakeFromD1:1; ULONG WakeFromD2:1; ULONG WakeFromD3:1; ULONG HardwareDisabled:1; ULONG NonDynamic:1; ULONG WarmEjectSupported:1; ULONG NoDisplayInUI:1; ULONG Reserved:14; ULONG Address; ULONG UINumber; DEVICE_POWER_STATE DeviceState[POWER_SYSTEM_MAXIMUM]; SYSTEM_POWER_STATE SystemWake; DEVICE_POWER_STATE DeviceWake; ULONG D1Latency; ULONG D2Latency; ULONG D3Latency; } DEVICE_CAPABILITIES, *PDEVICE_CAPABILITIES; typedef struct _POWER_SEQUENCE { ULONG SequenceD1; ULONG SequenceD2; ULONG SequenceD3; } POWER_SEQUENCE, *PPOWER_SEQUENCE; typedef enum { BusQueryDeviceID = 0, // \ BusQueryHardwareIDs = 1, // Hardware ids BusQueryCompatibleIDs = 2, // compatible device ids BusQueryInstanceID = 3, // persistent id for this instance of the device BusQueryDeviceSerialNumber = 4 // serial number for this device } BUS_QUERY_ID_TYPE, *PBUS_QUERY_ID_TYPE; typedef ULONG PNP_DEVICE_STATE, *PPNP_DEVICE_STATE; #define PNP_DEVICE_DISABLED 0x00000001 #define PNP_DEVICE_DONT_DISPLAY_IN_UI 0x00000002 #define PNP_DEVICE_FAILED 0x00000004 #define PNP_DEVICE_REMOVED 0x00000008 #define PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED 0x00000010 #define PNP_DEVICE_NOT_DISABLEABLE 0x00000020 typedef enum { DeviceTextDescription = 0, // DeviceDesc property DeviceTextLocationInformation = 1 // DeviceLocation property } DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE; // // Define I/O Request Packet (IRP) stack locations // #if !defined(_AMD64_) && !defined(_IA64_) #include "pshpack4.h" #endif #if defined(_WIN64) #define POINTER_ALIGNMENT DECLSPEC_ALIGN(8) #else #define POINTER_ALIGNMENT #endif typedef struct _IO_STACK_LOCATION { UCHAR MajorFunction; UCHAR MinorFunction; UCHAR Flags; UCHAR Control; // // The following user parameters are based on the service that is being // invoked. Drivers and file systems can determine which set to use based // on the above major and minor function codes. // union { // // System service parameters for: NtCreateFile // struct { PIO_SECURITY_CONTEXT SecurityContext; ULONG Options; USHORT POINTER_ALIGNMENT FileAttributes; USHORT ShareAccess; ULONG POINTER_ALIGNMENT EaLength; } Create; // // System service parameters for: NtReadFile // struct { ULONG Length; ULONG POINTER_ALIGNMENT Key; LARGE_INTEGER ByteOffset; } Read; // // System service parameters for: NtWriteFile // struct { ULONG Length; ULONG POINTER_ALIGNMENT Key; LARGE_INTEGER ByteOffset; } Write; // // System service parameters for: NtQueryInformationFile // struct { ULONG Length; FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; } QueryFile; // // System service parameters for: NtSetInformationFile // struct { ULONG Length; FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass; PFILE_OBJECT FileObject; union { struct { BOOLEAN ReplaceIfExists; BOOLEAN AdvanceOnly; }; ULONG ClusterCount; HANDLE DeleteHandle; }; } SetFile; // // System service parameters for: NtQueryVolumeInformationFile // struct { ULONG Length; FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass; } QueryVolume; // // System service parameters for: NtFlushBuffersFile // // No extra user-supplied parameters. // // // System service parameters for: NtDeviceIoControlFile // // Note that the user's output buffer is stored in the UserBuffer field // and the user's input buffer is stored in the SystemBuffer field. // struct { ULONG OutputBufferLength; ULONG POINTER_ALIGNMENT InputBufferLength; ULONG POINTER_ALIGNMENT IoControlCode; PVOID Type3InputBuffer; } DeviceIoControl; // // Non-system service parameters. // // Parameters for MountVolume // struct { PVOID DoNotUse1; PDEVICE_OBJECT DeviceObject; } MountVolume; // // Parameters for VerifyVolume // struct { PVOID DoNotUse1; PDEVICE_OBJECT DeviceObject; } VerifyVolume; // // Parameters for Scsi with internal device contorl. // struct { struct _SCSI_REQUEST_BLOCK *Srb; } Scsi; // // Parameters for IRP_MN_QUERY_DEVICE_RELATIONS // struct { DEVICE_RELATION_TYPE Type; } QueryDeviceRelations; // // Parameters for IRP_MN_QUERY_INTERFACE // struct { CONST GUID *InterfaceType; USHORT Size; USHORT Version; PINTERFACE Interface; PVOID InterfaceSpecificData; } QueryInterface; // // Parameters for IRP_MN_QUERY_CAPABILITIES // struct { PDEVICE_CAPABILITIES Capabilities; } DeviceCapabilities; // // Parameters for IRP_MN_FILTER_RESOURCE_REQUIREMENTS // struct { PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList; } FilterResourceRequirements; // // Parameters for IRP_MN_READ_CONFIG and IRP_MN_WRITE_CONFIG // struct { ULONG WhichSpace; PVOID Buffer; ULONG Offset; ULONG POINTER_ALIGNMENT Length; } ReadWriteConfig; // // Parameters for IRP_MN_SET_LOCK // struct { BOOLEAN Lock; } SetLock; // // Parameters for IRP_MN_QUERY_ID // struct { BUS_QUERY_ID_TYPE IdType; } QueryId; // // Parameters for IRP_MN_QUERY_DEVICE_TEXT // struct { DEVICE_TEXT_TYPE DeviceTextType; LCID POINTER_ALIGNMENT LocaleId; } QueryDeviceText; // // Parameters for IRP_MN_DEVICE_USAGE_NOTIFICATION // struct { BOOLEAN InPath; BOOLEAN Reserved[3]; DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type; } UsageNotification; // // Parameters for IRP_MN_WAIT_WAKE // struct { SYSTEM_POWER_STATE PowerState; } WaitWake; // // Parameter for IRP_MN_POWER_SEQUENCE // struct { PPOWER_SEQUENCE PowerSequence; } PowerSequence; // // Parameters for IRP_MN_SET_POWER and IRP_MN_QUERY_POWER // struct { ULONG SystemContext; POWER_STATE_TYPE POINTER_ALIGNMENT Type; POWER_STATE POINTER_ALIGNMENT State; POWER_ACTION POINTER_ALIGNMENT ShutdownType; } Power; // // Parameters for StartDevice // struct { PCM_RESOURCE_LIST AllocatedResources; PCM_RESOURCE_LIST AllocatedResourcesTranslated; } StartDevice; // // Parameters for Cleanup // // No extra parameters supplied // // // WMI Irps // struct { ULONG_PTR ProviderId; PVOID DataPath; ULONG BufferSize; PVOID Buffer; } WMI; // // Others - driver-specific // struct { PVOID Argument1; PVOID Argument2; PVOID Argument3; PVOID Argument4; } Others; } Parameters; // // Save a pointer to this device driver's device object for this request // so it can be passed to the completion routine if needed. // PDEVICE_OBJECT DeviceObject; // // The following location contains a pointer to the file object for this // PFILE_OBJECT FileObject; // // The following routine is invoked depending on the flags in the above // flags field. // PIO_COMPLETION_ROUTINE CompletionRoutine; // // The following is used to store the address of the context parameter // that should be passed to the CompletionRoutine. // PVOID Context; } IO_STACK_LOCATION, *PIO_STACK_LOCATION; #if !defined(_AMD64_) && !defined(_IA64_) #include "poppack.h" #endif // // Define the share access structure used by file systems to determine // whether or not another accessor may open the file. // typedef struct _SHARE_ACCESS { ULONG OpenCount; ULONG Readers; ULONG Writers; ULONG Deleters; ULONG SharedRead; ULONG SharedWrite; ULONG SharedDelete; } SHARE_ACCESS, *PSHARE_ACCESS; // // Public I/O routine definitions // NTKERNELAPI VOID IoAcquireCancelSpinLock( OUT PKIRQL Irql ); NTKERNELAPI NTSTATUS IoAllocateDriverObjectExtension( IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress, IN ULONG DriverObjectExtensionSize, OUT PVOID *DriverObjectExtension ); NTKERNELAPI PVOID IoAllocateErrorLogEntry( IN PVOID IoObject, IN UCHAR EntrySize ); NTKERNELAPI PIRP IoAllocateIrp( IN CCHAR StackSize, IN BOOLEAN ChargeQuota ); NTKERNELAPI PMDL IoAllocateMdl( IN PVOID VirtualAddress, IN ULONG Length, IN BOOLEAN SecondaryBuffer, IN BOOLEAN ChargeQuota, IN OUT PIRP Irp OPTIONAL ); NTKERNELAPI NTSTATUS IoAttachDevice( IN PDEVICE_OBJECT SourceDevice, IN PUNICODE_STRING TargetDevice, OUT PDEVICE_OBJECT *AttachedDevice ); NTKERNELAPI PDEVICE_OBJECT IoAttachDeviceToDeviceStack( IN PDEVICE_OBJECT SourceDevice, IN PDEVICE_OBJECT TargetDevice ); NTKERNELAPI PIRP IoBuildAsynchronousFsdRequest( IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID Buffer OPTIONAL, IN ULONG Length OPTIONAL, IN PLARGE_INTEGER StartingOffset OPTIONAL, IN PIO_STATUS_BLOCK IoStatusBlock OPTIONAL ); NTKERNELAPI PIRP IoBuildDeviceIoControlRequest( IN ULONG IoControlCode, IN PDEVICE_OBJECT DeviceObject, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength, IN BOOLEAN InternalDeviceIoControl, IN PKEVENT Event, OUT PIO_STATUS_BLOCK IoStatusBlock ); NTKERNELAPI VOID IoBuildPartialMdl( IN PMDL SourceMdl, IN OUT PMDL TargetMdl, IN PVOID VirtualAddress, IN ULONG Length ); typedef struct _BOOTDISK_INFORMATION { LONGLONG BootPartitionOffset; LONGLONG SystemPartitionOffset; ULONG BootDeviceSignature; ULONG SystemDeviceSignature; } BOOTDISK_INFORMATION, *PBOOTDISK_INFORMATION; // // This structure should follow the previous structure field for field. // typedef struct _BOOTDISK_INFORMATION_EX { LONGLONG BootPartitionOffset; LONGLONG SystemPartitionOffset; ULONG BootDeviceSignature; ULONG SystemDeviceSignature; GUID BootDeviceGuid; GUID SystemDeviceGuid; BOOLEAN BootDeviceIsGpt; BOOLEAN SystemDeviceIsGpt; } BOOTDISK_INFORMATION_EX, *PBOOTDISK_INFORMATION_EX; NTKERNELAPI NTSTATUS IoGetBootDiskInformation( IN OUT PBOOTDISK_INFORMATION BootDiskInformation, IN ULONG Size ); NTKERNELAPI PIRP IoBuildSynchronousFsdRequest( IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN OUT PVOID Buffer OPTIONAL, IN ULONG Length OPTIONAL, IN PLARGE_INTEGER StartingOffset OPTIONAL, IN PKEVENT Event, OUT PIO_STATUS_BLOCK IoStatusBlock ); NTKERNELAPI NTSTATUS FASTCALL IofCallDriver( IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp ); #define IoCallDriver(a,b) \ IofCallDriver(a,b) NTKERNELAPI BOOLEAN IoCancelIrp( IN PIRP Irp ); NTKERNELAPI NTSTATUS IoCheckShareAccess( IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN OUT PFILE_OBJECT FileObject, IN OUT PSHARE_ACCESS ShareAccess, IN BOOLEAN Update ); // // This value should be returned from completion routines to continue // completing the IRP upwards. Otherwise, STATUS_MORE_PROCESSING_REQUIRED // should be returned. // #define STATUS_CONTINUE_COMPLETION STATUS_SUCCESS // // Completion routines can also use this enumeration in place of status codes. // typedef enum _IO_COMPLETION_ROUTINE_RESULT { ContinueCompletion = STATUS_CONTINUE_COMPLETION, StopCompletion = STATUS_MORE_PROCESSING_REQUIRED } IO_COMPLETION_ROUTINE_RESULT, *PIO_COMPLETION_ROUTINE_RESULT; NTKERNELAPI VOID FASTCALL IofCompleteRequest( IN PIRP Irp, IN CCHAR PriorityBoost ); #define IoCompleteRequest(a,b) \ IofCompleteRequest(a,b) NTKERNELAPI NTSTATUS IoConnectInterrupt( OUT PKINTERRUPT *InterruptObject, IN PKSERVICE_ROUTINE ServiceRoutine, IN PVOID ServiceContext, IN PKSPIN_LOCK SpinLock OPTIONAL, IN ULONG Vector, IN KIRQL Irql, IN KIRQL SynchronizeIrql, IN KINTERRUPT_MODE InterruptMode, IN BOOLEAN ShareVector, IN KAFFINITY ProcessorEnableMask, IN BOOLEAN FloatingSave ); NTKERNELAPI NTSTATUS IoCreateDevice( IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName OPTIONAL, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Reserved, OUT PDEVICE_OBJECT *DeviceObject ); #define WDM_MAJORVERSION 0x01 #define WDM_MINORVERSION 0x20 NTKERNELAPI BOOLEAN IoIsWdmVersionAvailable( IN UCHAR MajorVersion, IN UCHAR MinorVersion ); NTKERNELAPI NTSTATUS IoCreateFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG Disposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength, IN CREATE_FILE_TYPE CreateFileType, IN PVOID ExtraCreateParameters OPTIONAL, IN ULONG Options ); NTKERNELAPI PKEVENT IoCreateNotificationEvent( IN PUNICODE_STRING EventName, OUT PHANDLE EventHandle ); NTKERNELAPI NTSTATUS IoCreateSymbolicLink( IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName ); NTKERNELAPI PKEVENT IoCreateSynchronizationEvent( IN PUNICODE_STRING EventName, OUT PHANDLE EventHandle ); NTKERNELAPI NTSTATUS IoCreateUnprotectedSymbolicLink( IN PUNICODE_STRING SymbolicLinkName, IN PUNICODE_STRING DeviceName ); NTKERNELAPI VOID IoDeleteDevice( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI NTSTATUS IoDeleteSymbolicLink( IN PUNICODE_STRING SymbolicLinkName ); NTKERNELAPI VOID IoDetachDevice( IN OUT PDEVICE_OBJECT TargetDevice ); NTKERNELAPI VOID IoDisconnectInterrupt( IN PKINTERRUPT InterruptObject ); NTKERNELAPI VOID IoFreeIrp( IN PIRP Irp ); NTKERNELAPI VOID IoFreeMdl( IN PMDL Mdl ); NTKERNELAPI PDEVICE_OBJECT IoGetAttachedDeviceReference( IN PDEVICE_OBJECT DeviceObject ); //++ // // PIO_STACK_LOCATION // IoGetCurrentIrpStackLocation( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to return a pointer to the current stack location // in an I/O Request Packet (IRP). // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // The function value is a pointer to the current stack location in the // packet. // //-- #define IoGetCurrentIrpStackLocation( Irp ) ( (Irp)->Tail.Overlay.CurrentStackLocation ) NTKERNELAPI PVOID IoGetDriverObjectExtension( IN PDRIVER_OBJECT DriverObject, IN PVOID ClientIdentificationAddress ); NTKERNELAPI PEPROCESS IoGetCurrentProcess( VOID ); NTKERNELAPI NTSTATUS IoGetDeviceObjectPointer( IN PUNICODE_STRING ObjectName, IN ACCESS_MASK DesiredAccess, OUT PFILE_OBJECT *FileObject, OUT PDEVICE_OBJECT *DeviceObject ); NTKERNELAPI struct _DMA_ADAPTER * IoGetDmaAdapter( IN PDEVICE_OBJECT PhysicalDeviceObject, IN struct _DEVICE_DESCRIPTION *DeviceDescription, IN OUT PULONG NumberOfMapRegisters ); NTKERNELAPI BOOLEAN IoForwardIrpSynchronously( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); #define IoForwardAndCatchIrp IoForwardIrpSynchronously //++ // // ULONG // IoGetFunctionCodeFromCtlCode( // IN ULONG ControlCode // ) // // Routine Description: // // This routine extracts the function code from IOCTL and FSCTL function // control codes. // This routine should only be used by kernel mode code. // // Arguments: // // ControlCode - A function control code (IOCTL or FSCTL) from which the // function code must be extracted. // // Return Value: // // The extracted function code. // // Note: // // The CTL_CODE macro, used to create IOCTL and FSCTL function control // codes, is defined in ntioapi.h // //-- #define IoGetFunctionCodeFromCtlCode( ControlCode ) (\ ( ControlCode >> 2) & 0x00000FFF ) NTKERNELAPI PVOID IoGetInitialStack( VOID ); NTKERNELAPI VOID IoGetStackLimits ( OUT PULONG_PTR LowLimit, OUT PULONG_PTR HighLimit ); // // The following function is used to tell the caller how much stack is available // FORCEINLINE ULONG_PTR IoGetRemainingStackSize ( VOID ) { ULONG_PTR Top; ULONG_PTR Bottom; IoGetStackLimits( &Bottom, &Top ); return((ULONG_PTR)(&Top) - Bottom ); } //++ // // PIO_STACK_LOCATION // IoGetNextIrpStackLocation( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to return a pointer to the next stack location // in an I/O Request Packet (IRP). // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // The function value is a pointer to the next stack location in the packet. // //-- #define IoGetNextIrpStackLocation( Irp ) (\ (Irp)->Tail.Overlay.CurrentStackLocation - 1 ) NTKERNELAPI PDEVICE_OBJECT IoGetRelatedDeviceObject( IN PFILE_OBJECT FileObject ); //++ // // VOID // IoInitializeDpcRequest( // IN PDEVICE_OBJECT DeviceObject, // IN PIO_DPC_ROUTINE DpcRoutine // ) // // Routine Description: // // This routine is invoked to initialize the DPC in a device object for a // device driver during its initialization routine. The DPC is used later // when the driver interrupt service routine requests that a DPC routine // be queued for later execution. // // Arguments: // // DeviceObject - Pointer to the device object that the request is for. // // DpcRoutine - Address of the driver's DPC routine to be executed when // the DPC is dequeued for processing. // // Return Value: // // None. // //-- #define IoInitializeDpcRequest( DeviceObject, DpcRoutine ) (\ KeInitializeDpc( &(DeviceObject)->Dpc, \ (PKDEFERRED_ROUTINE) (DpcRoutine), \ (DeviceObject) ) ) NTKERNELAPI VOID IoInitializeIrp( IN OUT PIRP Irp, IN USHORT PacketSize, IN CCHAR StackSize ); NTKERNELAPI NTSTATUS IoInitializeTimer( IN PDEVICE_OBJECT DeviceObject, IN PIO_TIMER_ROUTINE TimerRoutine, IN PVOID Context ); NTKERNELAPI VOID IoReuseIrp( IN OUT PIRP Irp, IN NTSTATUS Iostatus ); //++ // // BOOLEAN // IoIsErrorUserInduced( // IN NTSTATUS Status // ) // // Routine Description: // // This routine is invoked to determine if an error was as a // result of user actions. Typically these error are related // to removable media and will result in a pop-up. // // Arguments: // // Status - The status value to check. // // Return Value: // The function value is TRUE if the user induced the error, // otherwise FALSE is returned. // //-- #define IoIsErrorUserInduced( Status ) ((BOOLEAN) \ (((Status) == STATUS_DEVICE_NOT_READY) || \ ((Status) == STATUS_IO_TIMEOUT) || \ ((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \ ((Status) == STATUS_NO_MEDIA_IN_DEVICE) || \ ((Status) == STATUS_VERIFY_REQUIRED) || \ ((Status) == STATUS_UNRECOGNIZED_MEDIA) || \ ((Status) == STATUS_WRONG_VOLUME))) //++ // // VOID // IoMarkIrpPending( // IN OUT PIRP Irp // ) // // Routine Description: // // This routine marks the specified I/O Request Packet (IRP) to indicate // that an initial status of STATUS_PENDING was returned to the caller. // This is used so that I/O completion can determine whether or not to // fully complete the I/O operation requested by the packet. // // Arguments: // // Irp - Pointer to the I/O Request Packet to be marked pending. // // Return Value: // // None. // //-- #define IoMarkIrpPending( Irp ) ( \ IoGetCurrentIrpStackLocation( (Irp) )->Control |= SL_PENDING_RETURNED ) NTKERNELAPI VOID IoReleaseCancelSpinLock( IN KIRQL Irql ); //++ // // VOID // IoRequestDpc( // IN PDEVICE_OBJECT DeviceObject, // IN PIRP Irp, // IN PVOID Context // ) // // Routine Description: // // This routine is invoked by the device driver's interrupt service routine // to request that a DPC routine be queued for later execution at a lower // IRQL. // // Arguments: // // DeviceObject - Device object for which the request is being processed. // // Irp - Pointer to the current I/O Request Packet (IRP) for the specified // device. // // Context - Provides a general context parameter to be passed to the // DPC routine. // // Return Value: // // None. // //-- #define IoRequestDpc( DeviceObject, Irp, Context ) ( \ KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) ) //++ // // PDRIVER_CANCEL // IoSetCancelRoutine( // IN PIRP Irp, // IN PDRIVER_CANCEL CancelRoutine // ) // // Routine Description: // // This routine is invoked to set the address of a cancel routine which // is to be invoked when an I/O packet has been canceled. // // Arguments: // // Irp - Pointer to the I/O Request Packet itself. // // CancelRoutine - Address of the cancel routine that is to be invoked // if the IRP is cancelled. // // Return Value: // // Previous value of CancelRoutine field in the IRP. // //-- #define IoSetCancelRoutine( Irp, NewCancelRoutine ) ( \ (PDRIVER_CANCEL) InterlockedExchangePointer( (PVOID *) &(Irp)->CancelRoutine, (PVOID) (NewCancelRoutine) ) ) //++ // // VOID // IoSetCompletionRoutine( // IN PIRP Irp, // IN PIO_COMPLETION_ROUTINE CompletionRoutine, // IN PVOID Context, // IN BOOLEAN InvokeOnSuccess, // IN BOOLEAN InvokeOnError, // IN BOOLEAN InvokeOnCancel // ) // // Routine Description: // // This routine is invoked to set the address of a completion routine which // is to be invoked when an I/O packet has been completed by a lower-level // driver. // // Arguments: // // Irp - Pointer to the I/O Request Packet itself. // // CompletionRoutine - Address of the completion routine that is to be // invoked once the next level driver completes the packet. // // Context - Specifies a context parameter to be passed to the completion // routine. // // InvokeOnSuccess - Specifies that the completion routine is invoked when the // operation is successfully completed. // // InvokeOnError - Specifies that the completion routine is invoked when the // operation completes with an error status. // // InvokeOnCancel - Specifies that the completion routine is invoked when the // operation is being canceled. // // Return Value: // // None. // //-- #define IoSetCompletionRoutine( Irp, Routine, CompletionContext, Success, Error, Cancel ) { \ PIO_STACK_LOCATION __irpSp; \ ASSERT( (Success) | (Error) | (Cancel) ? (Routine) != NULL : TRUE ); \ __irpSp = IoGetNextIrpStackLocation( (Irp) ); \ __irpSp->CompletionRoutine = (Routine); \ __irpSp->Context = (CompletionContext); \ __irpSp->Control = 0; \ if ((Success)) { __irpSp->Control = SL_INVOKE_ON_SUCCESS; } \ if ((Error)) { __irpSp->Control |= SL_INVOKE_ON_ERROR; } \ if ((Cancel)) { __irpSp->Control |= SL_INVOKE_ON_CANCEL; } } NTSTATUS IoSetCompletionRoutineEx( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PIO_COMPLETION_ROUTINE CompletionRoutine, IN PVOID Context, IN BOOLEAN InvokeOnSuccess, IN BOOLEAN InvokeOnError, IN BOOLEAN InvokeOnCancel ); //++ // // VOID // IoSetNextIrpStackLocation ( // IN OUT PIRP Irp // ) // // Routine Description: // // This routine is invoked to set the current IRP stack location to // the next stack location, i.e. it "pushes" the stack. // // Arguments: // // Irp - Pointer to the I/O Request Packet (IRP). // // Return Value: // // None. // //-- #define IoSetNextIrpStackLocation( Irp ) { \ (Irp)->CurrentLocation--; \ (Irp)->Tail.Overlay.CurrentStackLocation--; } //++ // // VOID // IoCopyCurrentIrpStackLocationToNext( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to copy the IRP stack arguments and file // pointer from the current IrpStackLocation to the next // in an I/O Request Packet (IRP). // // If the caller wants to call IoCallDriver with a completion routine // but does not wish to change the arguments otherwise, // the caller first calls IoCopyCurrentIrpStackLocationToNext, // then IoSetCompletionRoutine, then IoCallDriver. // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // None. // //-- #define IoCopyCurrentIrpStackLocationToNext( Irp ) { \ PIO_STACK_LOCATION __irpSp; \ PIO_STACK_LOCATION __nextIrpSp; \ __irpSp = IoGetCurrentIrpStackLocation( (Irp) ); \ __nextIrpSp = IoGetNextIrpStackLocation( (Irp) ); \ RtlCopyMemory( __nextIrpSp, __irpSp, FIELD_OFFSET(IO_STACK_LOCATION, CompletionRoutine)); \ __nextIrpSp->Control = 0; } //++ // // VOID // IoSkipCurrentIrpStackLocation ( // IN PIRP Irp // ) // // Routine Description: // // This routine is invoked to increment the current stack location of // a given IRP. // // If the caller wishes to call the next driver in a stack, and does not // wish to change the arguments, nor does he wish to set a completion // routine, then the caller first calls IoSkipCurrentIrpStackLocation // and the calls IoCallDriver. // // Arguments: // // Irp - Pointer to the I/O Request Packet. // // Return Value: // // None // //-- #define IoSkipCurrentIrpStackLocation( Irp ) { \ (Irp)->CurrentLocation++; \ (Irp)->Tail.Overlay.CurrentStackLocation++; } NTKERNELAPI VOID IoSetShareAccess( IN ACCESS_MASK DesiredAccess, IN ULONG DesiredShareAccess, IN OUT PFILE_OBJECT FileObject, OUT PSHARE_ACCESS ShareAccess ); typedef struct _IO_REMOVE_LOCK_TRACKING_BLOCK * PIO_REMOVE_LOCK_TRACKING_BLOCK; typedef struct _IO_REMOVE_LOCK_COMMON_BLOCK { BOOLEAN Removed; BOOLEAN Reserved [3]; LONG IoCount; KEVENT RemoveEvent; } IO_REMOVE_LOCK_COMMON_BLOCK; typedef struct _IO_REMOVE_LOCK_DBG_BLOCK { LONG Signature; LONG HighWatermark; LONGLONG MaxLockedTicks; LONG AllocateTag; LIST_ENTRY LockList; KSPIN_LOCK Spin; LONG LowMemoryCount; ULONG Reserved1[4]; PVOID Reserved2; PIO_REMOVE_LOCK_TRACKING_BLOCK Blocks; } IO_REMOVE_LOCK_DBG_BLOCK; typedef struct _IO_REMOVE_LOCK { IO_REMOVE_LOCK_COMMON_BLOCK Common; #if DBG IO_REMOVE_LOCK_DBG_BLOCK Dbg; #endif } IO_REMOVE_LOCK, *PIO_REMOVE_LOCK; #define IoInitializeRemoveLock(Lock, Tag, Maxmin, HighWater) \ IoInitializeRemoveLockEx (Lock, Tag, Maxmin, HighWater, sizeof (IO_REMOVE_LOCK)) NTSYSAPI VOID NTAPI IoInitializeRemoveLockEx( IN PIO_REMOVE_LOCK Lock, IN ULONG AllocateTag, // Used only on checked kernels IN ULONG MaxLockedMinutes, // Used only on checked kernels IN ULONG HighWatermark, // Used only on checked kernels IN ULONG RemlockSize // are we checked or free ); // // Initialize a remove lock. // // Note: Allocation for remove locks needs to be within the device extension, // so that the memory for this structure stays allocated until such time as the // device object itself is deallocated. // #define IoAcquireRemoveLock(RemoveLock, Tag) \ IoAcquireRemoveLockEx(RemoveLock, Tag, __FILE__, __LINE__, sizeof (IO_REMOVE_LOCK)) NTSYSAPI NTSTATUS NTAPI IoAcquireRemoveLockEx ( IN PIO_REMOVE_LOCK RemoveLock, IN OPTIONAL PVOID Tag, // Optional IN PCSTR File, IN ULONG Line, IN ULONG RemlockSize // are we checked or free ); // // Routine Description: // // This routine is called to acquire the remove lock for a device object. // While the lock is held, the caller can assume that no pending pnp REMOVE // requests will be completed. // // The lock should be acquired immediately upon entering a dispatch routine. // It should also be acquired before creating any new reference to the // device object if there's a chance of releasing the reference before the // new one is done, in addition to references to the driver code itself, // which is removed from memory when the last device object goes. // // Arguments: // // RemoveLock - A pointer to an initialized REMOVE_LOCK structure. // // Tag - Used for tracking lock allocation and release. The same tag // specified when acquiring the lock must be used to release the lock. // Tags are only checked in checked versions of the driver. // // File - set to __FILE__ as the location in the code where the lock was taken. // // Line - set to __LINE__. // // Return Value: // // Returns whether or not the remove lock was obtained. // If successful the caller should continue with work calling // IoReleaseRemoveLock when finished. // // If not successful the lock was not obtained. The caller should abort the // work but not call IoReleaseRemoveLock. // #define IoReleaseRemoveLock(RemoveLock, Tag) \ IoReleaseRemoveLockEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK)) NTSYSAPI VOID NTAPI IoReleaseRemoveLockEx( IN PIO_REMOVE_LOCK RemoveLock, IN PVOID Tag, // Optional IN ULONG RemlockSize // are we checked or free ); // // // Routine Description: // // This routine is called to release the remove lock on the device object. It // must be called when finished using a previously locked reference to the // device object. If an Tag was specified when acquiring the lock then the // same Tag must be specified when releasing the lock. // // When the lock count reduces to zero, this routine will signal the waiting // event to release the waiting thread deleting the device object protected // by this lock. // // Arguments: // // DeviceObject - the device object to lock // // Tag - The TAG (if any) specified when acquiring the lock. This is used // for lock tracking purposes // // Return Value: // // none // #define IoReleaseRemoveLockAndWait(RemoveLock, Tag) \ IoReleaseRemoveLockAndWaitEx(RemoveLock, Tag, sizeof (IO_REMOVE_LOCK)) NTSYSAPI VOID NTAPI IoReleaseRemoveLockAndWaitEx( IN PIO_REMOVE_LOCK RemoveLock, IN PVOID Tag, IN ULONG RemlockSize // are we checked or free ); // // // Routine Description: // // This routine is called when the client would like to delete the // remove-locked resource. This routine will block until all the remove // locks have released. // // This routine MUST be called after acquiring the lock. // // Arguments: // // RemoveLock // // Return Value: // // none // //++ // // USHORT // IoSizeOfIrp( // IN CCHAR StackSize // ) // // Routine Description: // // Determines the size of an IRP given the number of stack locations // the IRP will have. // // Arguments: // // StackSize - Number of stack locations for the IRP. // // Return Value: // // Size in bytes of the IRP. // //-- #define IoSizeOfIrp( StackSize ) \ ((USHORT) (sizeof( IRP ) + ((StackSize) * (sizeof( IO_STACK_LOCATION ))))) NTKERNELAPI VOID IoStartNextPacket( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable ); NTKERNELAPI VOID IoStartNextPacketByKey( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN Cancelable, IN ULONG Key ); NTKERNELAPI VOID IoStartPacket( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PULONG Key OPTIONAL, IN PDRIVER_CANCEL CancelFunction OPTIONAL ); VOID IoSetStartIoAttributes( IN PDEVICE_OBJECT DeviceObject, IN BOOLEAN DeferredStartIo, IN BOOLEAN NonCancelable ); NTKERNELAPI VOID IoStartTimer( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI VOID IoStopTimer( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI VOID IoUnregisterShutdownNotification( IN PDEVICE_OBJECT DeviceObject ); NTKERNELAPI VOID IoWriteErrorLogEntry( IN PVOID ElEntry ); typedef struct _IO_WORKITEM *PIO_WORKITEM; typedef VOID (*PIO_WORKITEM_ROUTINE) ( IN PDEVICE_OBJECT DeviceObject, IN PVOID Context ); PIO_WORKITEM IoAllocateWorkItem( PDEVICE_OBJECT DeviceObject ); VOID IoFreeWorkItem( PIO_WORKITEM IoWorkItem ); VOID IoQueueWorkItem( IN PIO_WORKITEM IoWorkItem, IN PIO_WORKITEM_ROUTINE WorkerRoutine, IN WORK_QUEUE_TYPE QueueType, IN PVOID Context ); NTKERNELAPI NTSTATUS IoWMIRegistrationControl( IN PDEVICE_OBJECT DeviceObject, IN ULONG Action ); // // Action code for IoWMIRegistrationControl api // #define WMIREG_ACTION_REGISTER 1 #define WMIREG_ACTION_DEREGISTER 2 #define WMIREG_ACTION_REREGISTER 3 #define WMIREG_ACTION_UPDATE_GUIDS 4 #define WMIREG_ACTION_BLOCK_IRPS 5 // // Code passed in IRP_MN_REGINFO WMI irp // #define WMIREGISTER 0 #define WMIUPDATE 1 NTKERNELAPI NTSTATUS IoWMIAllocateInstanceIds( IN GUID *Guid, IN ULONG InstanceCount, OUT ULONG *FirstInstanceId ); NTKERNELAPI NTSTATUS IoWMISuggestInstanceName( IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN PUNICODE_STRING SymbolicLinkName OPTIONAL, IN BOOLEAN CombineNames, OUT PUNICODE_STRING SuggestedInstanceName ); NTKERNELAPI NTSTATUS IoWMIWriteEvent( IN PVOID WnodeEventItem ); #if defined(_WIN64) NTKERNELAPI ULONG IoWMIDeviceObjectToProviderId( PDEVICE_OBJECT DeviceObject ); #else #define IoWMIDeviceObjectToProviderId(DeviceObject) ((ULONG)(DeviceObject)) #endif NTKERNELAPI NTSTATUS IoWMIOpenBlock( IN GUID *DataBlockGuid, IN ULONG DesiredAccess, OUT PVOID *DataBlockObject ); NTKERNELAPI NTSTATUS IoWMIQueryAllData( IN PVOID DataBlockObject, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMIQueryAllDataMultiple( IN PVOID *DataBlockObjectList, IN ULONG ObjectCount, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMIQuerySingleInstance( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMIQuerySingleInstanceMultiple( IN PVOID *DataBlockObjectList, IN PUNICODE_STRING InstanceNames, IN ULONG ObjectCount, IN OUT ULONG *InOutBufferSize, OUT /* non paged */ PVOID OutBuffer ); NTKERNELAPI NTSTATUS IoWMISetSingleInstance( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN ULONG Version, IN ULONG ValueBufferSize, IN PVOID ValueBuffer ); NTKERNELAPI NTSTATUS IoWMISetSingleItem( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN ULONG DataItemId, IN ULONG Version, IN ULONG ValueBufferSize, IN PVOID ValueBuffer ); NTKERNELAPI NTSTATUS IoWMIExecuteMethod( IN PVOID DataBlockObject, IN PUNICODE_STRING InstanceName, IN ULONG MethodId, IN ULONG InBufferSize, IN OUT PULONG OutBufferSize, IN OUT PUCHAR InOutBuffer ); typedef VOID (*WMI_NOTIFICATION_CALLBACK)( PVOID Wnode, PVOID Context ); NTKERNELAPI NTSTATUS IoWMISetNotificationCallback( IN PVOID Object, IN WMI_NOTIFICATION_CALLBACK Callback, IN PVOID Context ); NTKERNELAPI NTSTATUS IoWMIHandleToInstanceName( IN PVOID DataBlockObject, IN HANDLE FileHandle, OUT PUNICODE_STRING InstanceName ); NTKERNELAPI NTSTATUS IoWMIDeviceObjectToInstanceName( IN PVOID DataBlockObject, IN PDEVICE_OBJECT DeviceObject, OUT PUNICODE_STRING InstanceName ); #if defined(_WIN64) BOOLEAN IoIs32bitProcess( IN PIRP Irp ); #endif VOID IoFreeErrorLogEntry( PVOID ElEntry ); // Cancel SAFE API set start // // The following APIs are to help ease the pain of writing queue packages that // handle the cancellation race well. The idea of this set of APIs is to not // force a single queue data structure but allow the cancel logic to be hidden // from the drivers. A driver implements a queue and as part of its header // includes the IO_CSQ structure. In its initialization routine it calls // IoInitializeCsq. Then in the dispatch routine when the driver wants to // insert an IRP into the queue it calls IoCsqInsertIrp. When the driver wants // to remove something from the queue it calls IoCsqRemoveIrp. Note that Insert // can fail if the IRP was cancelled in the meantime. Remove can also fail if // the IRP was already cancelled. // // There are typically two modes where drivers queue IRPs. These two modes are // covered by the cancel safe queue API set. // // Mode 1: // One is where the driver queues the IRP and at some later // point in time dequeues an IRP and issues the IO request. // For this mode the driver should use IoCsqInsertIrp and IoCsqRemoveNextIrp. // The driver in this case is expected to pass NULL to the irp context // parameter in IoInsertIrp. // // Mode 2: // In this the driver queues theIRP, issues the IO request (like issuing a DMA // request or writing to a register) and when the IO request completes (either // using a DPC or timer) the driver dequeues the IRP and completes it. For this // mode the driver should use IoCsqInsertIrp and IoCsqRemoveIrp. In this case // the driver should allocate an IRP context and pass it in to IoCsqInsertIrp. // The cancel API code creates an association between the IRP and the context // and thus ensures that when the time comes to remove the IRP it can ascertain // correctly. // // Note that the cancel API set assumes that the field DriverContext[3] is // always available for use and that the driver does not use it. // // // Bookkeeping structure. This should be opaque to drivers. // Drivers typically include this as part of their queue headers. // Given a CSQ pointer the driver should be able to get its // queue header using CONTAINING_RECORD macro // typedef struct _IO_CSQ IO_CSQ, *PIO_CSQ; #define IO_TYPE_CSQ_IRP_CONTEXT 1 #define IO_TYPE_CSQ 2 // // IRP context structure. This structure is necessary if the driver is using // the second mode. // typedef struct _IO_CSQ_IRP_CONTEXT { ULONG Type; PIRP Irp; PIO_CSQ Csq; } IO_CSQ_IRP_CONTEXT, *PIO_CSQ_IRP_CONTEXT; // // Routines that insert/remove IRP // typedef VOID (*PIO_CSQ_INSERT_IRP)( IN struct _IO_CSQ *Csq, IN PIRP Irp ); typedef VOID (*PIO_CSQ_REMOVE_IRP)( IN PIO_CSQ Csq, IN PIRP Irp ); // // Retrieves next entry after Irp from the queue. // Returns NULL if there are no entries in the queue. // If Irp is NUL, returns the entry in the head of the queue. // This routine does not remove the IRP from the queue. // typedef PIRP (*PIO_CSQ_PEEK_NEXT_IRP)( IN PIO_CSQ Csq, IN PIRP Irp, IN PVOID PeekContext ); // // Lock routine that protects the cancel safe queue. // typedef VOID (*PIO_CSQ_ACQUIRE_LOCK)( IN PIO_CSQ Csq, OUT PKIRQL Irql ); typedef VOID (*PIO_CSQ_RELEASE_LOCK)( IN PIO_CSQ Csq, IN KIRQL Irql ); // // Completes the IRP with STATUS_CANCELLED. IRP is guaranteed to be valid // In most cases this routine just calls IoCompleteRequest(Irp, STATUS_CANCELLED); // typedef VOID (*PIO_CSQ_COMPLETE_CANCELED_IRP)( IN PIO_CSQ Csq, IN PIRP Irp ); // // Bookkeeping structure. This should be opaque to drivers. // Drivers typically include this as part of their queue headers. // Given a CSQ pointer the driver should be able to get its // queue header using CONTAINING_RECORD macro // typedef struct _IO_CSQ { ULONG Type; PIO_CSQ_INSERT_IRP CsqInsertIrp; PIO_CSQ_REMOVE_IRP CsqRemoveIrp; PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp; PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock; PIO_CSQ_RELEASE_LOCK CsqReleaseLock; PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp; PVOID ReservePointer; // Future expansion } IO_CSQ, *PIO_CSQ; // // Initializes the cancel queue structure. // NTSTATUS IoCsqInitialize( IN PIO_CSQ Csq, IN PIO_CSQ_INSERT_IRP CsqInsertIrp, IN PIO_CSQ_REMOVE_IRP CsqRemoveIrp, IN PIO_CSQ_PEEK_NEXT_IRP CsqPeekNextIrp, IN PIO_CSQ_ACQUIRE_LOCK CsqAcquireLock, IN PIO_CSQ_RELEASE_LOCK CsqReleaseLock, IN PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp ); // // The caller calls this routine to insert the IRP and return STATUS_PENDING. // VOID IoCsqInsertIrp( IN PIO_CSQ Csq, IN PIRP Irp, IN PIO_CSQ_IRP_CONTEXT Context ); // // Returns an IRP if one can be found. NULL otherwise. // PIRP IoCsqRemoveNextIrp( IN PIO_CSQ Csq, IN PVOID PeekContext ); // // This routine is called from timeout or DPCs. // The context is presumably part of the DPC or timer context. // If succesfull returns the IRP associated with context. // PIRP IoCsqRemoveIrp( IN PIO_CSQ Csq, IN PIO_CSQ_IRP_CONTEXT Context ); // Cancel SAFE API set end #ifdef RUN_WPP #include #include #endif // #ifdef RUN_WPP #ifdef RUN_WPP NTKERNELAPI NTSTATUS WmiTraceMessage( IN TRACEHANDLE LoggerHandle, IN ULONG MessageFlags, IN LPGUID MessageGuid, IN USHORT MessageNumber, IN ... ); NTKERNELAPI NTSTATUS WmiTraceMessageVa( IN TRACEHANDLE LoggerHandle, IN ULONG MessageFlags, IN LPGUID MessageGuid, IN USHORT MessageNumber, IN va_list MessageArgList ); #endif // #ifdef RUN_WPP #ifndef TRACE_INFORMATION_CLASS_DEFINE typedef enum _TRACE_INFORMATION_CLASS { TraceIdClass, TraceHandleClass, TraceEnableFlagsClass, TraceEnableLevelClass, GlobalLoggerHandleClass, EventLoggerHandleClass, AllLoggerHandlesClass, TraceHandleByNameClass } TRACE_INFORMATION_CLASS; NTKERNELAPI NTSTATUS WmiQueryTraceInformation( IN TRACE_INFORMATION_CLASS TraceInformationClass, OUT PVOID TraceInformation, IN ULONG TraceInformationLength, OUT PULONG RequiredLength OPTIONAL, IN PVOID Buffer OPTIONAL ); #define TRACE_INFORMATION_CLASS_DEFINE #endif // TRACE_INFOPRMATION_CLASS_DEFINE // // Define PnP Device Property for IoGetDeviceProperty // typedef enum { DevicePropertyDeviceDescription, DevicePropertyHardwareID, DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration, DevicePropertyBootConfigurationTranslated, DevicePropertyClassName, DevicePropertyClassGuid, DevicePropertyDriverKeyName, DevicePropertyManufacturer, DevicePropertyFriendlyName, DevicePropertyLocationInformation, DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid, DevicePropertyLegacyBusType, DevicePropertyBusNumber, DevicePropertyEnumeratorName, DevicePropertyAddress, DevicePropertyUINumber, DevicePropertyInstallState, DevicePropertyRemovalPolicy } DEVICE_REGISTRY_PROPERTY; typedef BOOLEAN (*PTRANSLATE_BUS_ADDRESS)( IN PVOID Context, IN PHYSICAL_ADDRESS BusAddress, IN ULONG Length, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress ); typedef struct _DMA_ADAPTER *(*PGET_DMA_ADAPTER)( IN PVOID Context, IN struct _DEVICE_DESCRIPTION *DeviceDescriptor, OUT PULONG NumberOfMapRegisters ); typedef ULONG (*PGET_SET_DEVICE_DATA)( IN PVOID Context, IN ULONG DataType, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length ); typedef enum _DEVICE_INSTALL_STATE { InstallStateInstalled, InstallStateNeedsReinstall, InstallStateFailedInstall, InstallStateFinishInstall } DEVICE_INSTALL_STATE, *PDEVICE_INSTALL_STATE; // // Define structure returned in response to IRP_MN_QUERY_BUS_INFORMATION by a // PDO indicating the type of bus the device exists on. // typedef struct _PNP_BUS_INFORMATION { GUID BusTypeGuid; INTERFACE_TYPE LegacyBusType; ULONG BusNumber; } PNP_BUS_INFORMATION, *PPNP_BUS_INFORMATION; // // Define structure returned in response to IRP_MN_QUERY_LEGACY_BUS_INFORMATION // by an FDO indicating the type of bus it is. This is normally the same bus // type as the device's children (i.e., as retrieved from the child PDO's via // IRP_MN_QUERY_BUS_INFORMATION) except for cases like CardBus, which can // support both 16-bit (PCMCIABus) and 32-bit (PCIBus) cards. // typedef struct _LEGACY_BUS_INFORMATION { GUID BusTypeGuid; INTERFACE_TYPE LegacyBusType; ULONG BusNumber; } LEGACY_BUS_INFORMATION, *PLEGACY_BUS_INFORMATION; // // Defines for IoGetDeviceProperty(DevicePropertyRemovalPolicy). // typedef enum _DEVICE_REMOVAL_POLICY { RemovalPolicyExpectNoRemoval = 1, RemovalPolicyExpectOrderlyRemoval = 2, RemovalPolicyExpectSurpriseRemoval = 3 } DEVICE_REMOVAL_POLICY, *PDEVICE_REMOVAL_POLICY; typedef struct _BUS_INTERFACE_STANDARD { // // generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // standard bus interfaces // PTRANSLATE_BUS_ADDRESS TranslateBusAddress; PGET_DMA_ADAPTER GetDmaAdapter; PGET_SET_DEVICE_DATA SetBusData; PGET_SET_DEVICE_DATA GetBusData; } BUS_INTERFACE_STANDARD, *PBUS_INTERFACE_STANDARD; // // The following definitions are used in ACPI QueryInterface // typedef BOOLEAN (* PGPE_SERVICE_ROUTINE) ( PVOID, PVOID); typedef NTSTATUS (* PGPE_CONNECT_VECTOR) ( PDEVICE_OBJECT, ULONG, KINTERRUPT_MODE, BOOLEAN, PGPE_SERVICE_ROUTINE, PVOID, PVOID); typedef NTSTATUS (* PGPE_DISCONNECT_VECTOR) ( PVOID); typedef NTSTATUS (* PGPE_ENABLE_EVENT) ( PDEVICE_OBJECT, PVOID); typedef NTSTATUS (* PGPE_DISABLE_EVENT) ( PDEVICE_OBJECT, PVOID); typedef NTSTATUS (* PGPE_CLEAR_STATUS) ( PDEVICE_OBJECT, PVOID); typedef VOID (* PDEVICE_NOTIFY_CALLBACK) ( PVOID, ULONG); typedef NTSTATUS (* PREGISTER_FOR_DEVICE_NOTIFICATIONS) ( PDEVICE_OBJECT, PDEVICE_NOTIFY_CALLBACK, PVOID); typedef void (* PUNREGISTER_FOR_DEVICE_NOTIFICATIONS) ( PDEVICE_OBJECT, PDEVICE_NOTIFY_CALLBACK); typedef struct _ACPI_INTERFACE_STANDARD { // // Generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // ACPI interfaces // PGPE_CONNECT_VECTOR GpeConnectVector; PGPE_DISCONNECT_VECTOR GpeDisconnectVector; PGPE_ENABLE_EVENT GpeEnableEvent; PGPE_DISABLE_EVENT GpeDisableEvent; PGPE_CLEAR_STATUS GpeClearStatus; PREGISTER_FOR_DEVICE_NOTIFICATIONS RegisterForDeviceNotifications; PUNREGISTER_FOR_DEVICE_NOTIFICATIONS UnregisterForDeviceNotifications; } ACPI_INTERFACE_STANDARD, *PACPI_INTERFACE_STANDARD; NTKERNELAPI VOID IoInvalidateDeviceRelations( IN PDEVICE_OBJECT DeviceObject, IN DEVICE_RELATION_TYPE Type ); NTKERNELAPI VOID IoRequestDeviceEject( IN PDEVICE_OBJECT PhysicalDeviceObject ); NTKERNELAPI NTSTATUS IoGetDeviceProperty( IN PDEVICE_OBJECT DeviceObject, IN DEVICE_REGISTRY_PROPERTY DeviceProperty, IN ULONG BufferLength, OUT PVOID PropertyBuffer, OUT PULONG ResultLength ); // // The following definitions are used in IoOpenDeviceRegistryKey // #define PLUGPLAY_REGKEY_DEVICE 1 #define PLUGPLAY_REGKEY_DRIVER 2 #define PLUGPLAY_REGKEY_CURRENT_HWPROFILE 4 NTKERNELAPI NTSTATUS IoOpenDeviceRegistryKey( IN PDEVICE_OBJECT DeviceObject, IN ULONG DevInstKeyType, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DevInstRegKey ); NTKERNELAPI NTSTATUS NTAPI IoRegisterDeviceInterface( IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString, OPTIONAL OUT PUNICODE_STRING SymbolicLinkName ); NTKERNELAPI NTSTATUS IoOpenDeviceInterfaceRegistryKey( IN PUNICODE_STRING SymbolicLinkName, IN ACCESS_MASK DesiredAccess, OUT PHANDLE DeviceInterfaceKey ); NTKERNELAPI NTSTATUS IoSetDeviceInterfaceState( IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable ); NTKERNELAPI NTSTATUS NTAPI IoGetDeviceInterfaces( IN CONST GUID *InterfaceClassGuid, IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL, IN ULONG Flags, OUT PWSTR *SymbolicLinkList ); #define DEVICE_INTERFACE_INCLUDE_NONACTIVE 0x00000001 NTKERNELAPI NTSTATUS NTAPI IoGetDeviceInterfaceAlias( IN PUNICODE_STRING SymbolicLinkName, IN CONST GUID *AliasInterfaceClassGuid, OUT PUNICODE_STRING AliasSymbolicLinkName ); // // Define PnP notification event categories // typedef enum _IO_NOTIFICATION_EVENT_CATEGORY { EventCategoryReserved, EventCategoryHardwareProfileChange, EventCategoryDeviceInterfaceChange, EventCategoryTargetDeviceChange } IO_NOTIFICATION_EVENT_CATEGORY; // // Define flags that modify the behavior of IoRegisterPlugPlayNotification // for the various event categories... // #define PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES 0x00000001 typedef NTSTATUS (*PDRIVER_NOTIFICATION_CALLBACK_ROUTINE) ( IN PVOID NotificationStructure, IN PVOID Context ); NTKERNELAPI NTSTATUS IoRegisterPlugPlayNotification( IN IO_NOTIFICATION_EVENT_CATEGORY EventCategory, IN ULONG EventCategoryFlags, IN PVOID EventCategoryData OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE CallbackRoutine, IN PVOID Context, OUT PVOID *NotificationEntry ); NTKERNELAPI NTSTATUS IoUnregisterPlugPlayNotification( IN PVOID NotificationEntry ); NTKERNELAPI NTSTATUS IoReportTargetDeviceChange( IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure // always begins with a PLUGPLAY_NOTIFICATION_HEADER ); typedef VOID (*PDEVICE_CHANGE_COMPLETE_CALLBACK)( IN PVOID Context ); NTKERNELAPI VOID IoInvalidateDeviceState( IN PDEVICE_OBJECT PhysicalDeviceObject ); #define IoAdjustPagingPathCount(_count_,_paging_) { \ if (_paging_) { \ InterlockedIncrement(_count_); \ } else { \ InterlockedDecrement(_count_); \ } \ } NTKERNELAPI NTSTATUS IoReportTargetDeviceChangeAsynchronous( IN PDEVICE_OBJECT PhysicalDeviceObject, IN PVOID NotificationStructure, // always begins with a PLUGPLAY_NOTIFICATION_HEADER IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback, OPTIONAL IN PVOID Context OPTIONAL ); // // Header structure for all Plug&Play notification events... // typedef struct _PLUGPLAY_NOTIFICATION_HEADER { USHORT Version; // presently at version 1. USHORT Size; // size (in bytes) of header + event-specific data. GUID Event; // // Event-specific stuff starts here. // } PLUGPLAY_NOTIFICATION_HEADER, *PPLUGPLAY_NOTIFICATION_HEADER; // // Notification structure for all EventCategoryHardwareProfileChange events... // typedef struct _HWPROFILE_CHANGE_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // (No event-specific data) // } HWPROFILE_CHANGE_NOTIFICATION, *PHWPROFILE_CHANGE_NOTIFICATION; // // Notification structure for all EventCategoryDeviceInterfaceChange events... // typedef struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // Event-specific data // GUID InterfaceClassGuid; PUNICODE_STRING SymbolicLinkName; } DEVICE_INTERFACE_CHANGE_NOTIFICATION, *PDEVICE_INTERFACE_CHANGE_NOTIFICATION; // // Notification structures for EventCategoryTargetDeviceChange... // // // The following structure is used for TargetDeviceQueryRemove, // TargetDeviceRemoveCancelled, and TargetDeviceRemoveComplete: // typedef struct _TARGET_DEVICE_REMOVAL_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // Event-specific data // PFILE_OBJECT FileObject; } TARGET_DEVICE_REMOVAL_NOTIFICATION, *PTARGET_DEVICE_REMOVAL_NOTIFICATION; // // The following structure header is used for all other (i.e., 3rd-party) // target device change events. The structure accommodates both a // variable-length binary data buffer, and a variable-length unicode text // buffer. The header must indicate where the text buffer begins, so that // the data can be delivered in the appropriate format (ANSI or Unicode) // to user-mode recipients (i.e., that have registered for handle-based // notification via RegisterDeviceNotification). // typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION { USHORT Version; USHORT Size; GUID Event; // // Event-specific data // PFILE_OBJECT FileObject; // This field must be set to NULL by callers of // IoReportTargetDeviceChange. Clients that // have registered for target device change // notification on the affected PDO will be // called with this field set to the file object // they specified during registration. // LONG NameBufferOffset; // offset (in bytes) from beginning of // CustomDataBuffer where text begins (-1 if none) // UCHAR CustomDataBuffer[1]; // variable-length buffer, containing (optionally) // a binary data at the start of the buffer, // followed by an optional unicode text buffer // (word-aligned). // } TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION; // // Define the device description structure. // typedef struct _DEVICE_DESCRIPTION { ULONG Version; BOOLEAN Master; BOOLEAN ScatterGather; BOOLEAN DemandMode; BOOLEAN AutoInitialize; BOOLEAN Dma32BitAddresses; BOOLEAN IgnoreCount; BOOLEAN Reserved1; // must be false BOOLEAN Dma64BitAddresses; ULONG DoNotUse2; ULONG DmaChannel; INTERFACE_TYPE InterfaceType; DMA_WIDTH DmaWidth; DMA_SPEED DmaSpeed; ULONG MaximumLength; ULONG DmaPort; } DEVICE_DESCRIPTION, *PDEVICE_DESCRIPTION; // // Define the supported version numbers for the device description structure. // #define DEVICE_DESCRIPTION_VERSION 0 #define DEVICE_DESCRIPTION_VERSION1 1 #define DEVICE_DESCRIPTION_VERSION2 2 NTHALAPI VOID KeFlushWriteBuffer ( VOID ); // // Performance counter function. // NTHALAPI LARGE_INTEGER KeQueryPerformanceCounter ( OUT PLARGE_INTEGER PerformanceFrequency OPTIONAL ); // // Stall processor execution function. // NTHALAPI VOID KeStallExecutionProcessor ( IN ULONG MicroSeconds ); typedef struct _SCATTER_GATHER_ELEMENT { PHYSICAL_ADDRESS Address; ULONG Length; ULONG_PTR Reserved; } SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT; #pragma warning(disable:4200) typedef struct _SCATTER_GATHER_LIST { ULONG NumberOfElements; ULONG_PTR Reserved; SCATTER_GATHER_ELEMENT Elements[]; } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST; #pragma warning(default:4200) typedef struct _DMA_OPERATIONS *PDMA_OPERATIONS; typedef struct _DMA_ADAPTER { USHORT Version; USHORT Size; PDMA_OPERATIONS DmaOperations; // Private Bus Device Driver data follows, } DMA_ADAPTER, *PDMA_ADAPTER; typedef VOID (*PPUT_DMA_ADAPTER)( PDMA_ADAPTER DmaAdapter ); typedef PVOID (*PALLOCATE_COMMON_BUFFER)( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled ); typedef VOID (*PFREE_COMMON_BUFFER)( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled ); typedef NTSTATUS (*PALLOCATE_ADAPTER_CHANNEL)( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context ); typedef BOOLEAN (*PFLUSH_ADAPTER_BUFFERS)( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice ); typedef VOID (*PFREE_ADAPTER_CHANNEL)( IN PDMA_ADAPTER DmaAdapter ); typedef VOID (*PFREE_MAP_REGISTERS)( IN PDMA_ADAPTER DmaAdapter, PVOID MapRegisterBase, ULONG NumberOfMapRegisters ); typedef PHYSICAL_ADDRESS (*PMAP_TRANSFER)( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN OUT PULONG Length, IN BOOLEAN WriteToDevice ); typedef ULONG (*PGET_DMA_ALIGNMENT)( IN PDMA_ADAPTER DmaAdapter ); typedef ULONG (*PREAD_DMA_COUNTER)( IN PDMA_ADAPTER DmaAdapter ); typedef VOID (*PDRIVER_LIST_CONTROL)( IN struct _DEVICE_OBJECT *DeviceObject, IN struct _IRP *Irp, IN PSCATTER_GATHER_LIST ScatterGather, IN PVOID Context ); typedef NTSTATUS (*PGET_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice ); typedef VOID (*PPUT_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PSCATTER_GATHER_LIST ScatterGather, IN BOOLEAN WriteToDevice ); typedef NTSTATUS (*PCALCULATE_SCATTER_GATHER_LIST_SIZE)( IN PDMA_ADAPTER DmaAdapter, IN OPTIONAL PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, OUT PULONG ScatterGatherListSize, OUT OPTIONAL PULONG pNumberOfMapRegisters ); typedef NTSTATUS (*PBUILD_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice, IN PVOID ScatterGatherBuffer, IN ULONG ScatterGatherLength ); typedef NTSTATUS (*PBUILD_MDL_FROM_SCATTER_GATHER_LIST)( IN PDMA_ADAPTER DmaAdapter, IN PSCATTER_GATHER_LIST ScatterGather, IN PMDL OriginalMdl, OUT PMDL *TargetMdl ); typedef struct _DMA_OPERATIONS { ULONG Size; PPUT_DMA_ADAPTER PutDmaAdapter; PALLOCATE_COMMON_BUFFER AllocateCommonBuffer; PFREE_COMMON_BUFFER FreeCommonBuffer; PALLOCATE_ADAPTER_CHANNEL AllocateAdapterChannel; PFLUSH_ADAPTER_BUFFERS FlushAdapterBuffers; PFREE_ADAPTER_CHANNEL FreeAdapterChannel; PFREE_MAP_REGISTERS FreeMapRegisters; PMAP_TRANSFER MapTransfer; PGET_DMA_ALIGNMENT GetDmaAlignment; PREAD_DMA_COUNTER ReadDmaCounter; PGET_SCATTER_GATHER_LIST GetScatterGatherList; PPUT_SCATTER_GATHER_LIST PutScatterGatherList; PCALCULATE_SCATTER_GATHER_LIST_SIZE CalculateScatterGatherList; PBUILD_SCATTER_GATHER_LIST BuildScatterGatherList; PBUILD_MDL_FROM_SCATTER_GATHER_LIST BuildMdlFromScatterGatherList; } DMA_OPERATIONS; DECLSPEC_DEPRECATED_DDK // Use AllocateCommonBuffer FORCEINLINE PVOID HalAllocateCommonBuffer( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, OUT PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled ){ PALLOCATE_COMMON_BUFFER allocateCommonBuffer; PVOID commonBuffer; allocateCommonBuffer = *(DmaAdapter)->DmaOperations->AllocateCommonBuffer; ASSERT( allocateCommonBuffer != NULL ); commonBuffer = allocateCommonBuffer( DmaAdapter, Length, LogicalAddress, CacheEnabled ); return commonBuffer; } DECLSPEC_DEPRECATED_DDK // Use FreeCommonBuffer FORCEINLINE VOID HalFreeCommonBuffer( IN PDMA_ADAPTER DmaAdapter, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled ){ PFREE_COMMON_BUFFER freeCommonBuffer; freeCommonBuffer = *(DmaAdapter)->DmaOperations->FreeCommonBuffer; ASSERT( freeCommonBuffer != NULL ); freeCommonBuffer( DmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled ); } DECLSPEC_DEPRECATED_DDK // Use AllocateAdapterChannel FORCEINLINE NTSTATUS IoAllocateAdapterChannel( IN PDMA_ADAPTER DmaAdapter, IN PDEVICE_OBJECT DeviceObject, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine, IN PVOID Context ){ PALLOCATE_ADAPTER_CHANNEL allocateAdapterChannel; NTSTATUS status; allocateAdapterChannel = *(DmaAdapter)->DmaOperations->AllocateAdapterChannel; ASSERT( allocateAdapterChannel != NULL ); status = allocateAdapterChannel( DmaAdapter, DeviceObject, NumberOfMapRegisters, ExecutionRoutine, Context ); return status; } DECLSPEC_DEPRECATED_DDK // Use FlushAdapterBuffers FORCEINLINE BOOLEAN IoFlushAdapterBuffers( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice ){ PFLUSH_ADAPTER_BUFFERS flushAdapterBuffers; BOOLEAN result; flushAdapterBuffers = *(DmaAdapter)->DmaOperations->FlushAdapterBuffers; ASSERT( flushAdapterBuffers != NULL ); result = flushAdapterBuffers( DmaAdapter, Mdl, MapRegisterBase, CurrentVa, Length, WriteToDevice ); return result; } DECLSPEC_DEPRECATED_DDK // Use FreeAdapterChannel FORCEINLINE VOID IoFreeAdapterChannel( IN PDMA_ADAPTER DmaAdapter ){ PFREE_ADAPTER_CHANNEL freeAdapterChannel; freeAdapterChannel = *(DmaAdapter)->DmaOperations->FreeAdapterChannel; ASSERT( freeAdapterChannel != NULL ); freeAdapterChannel( DmaAdapter ); } DECLSPEC_DEPRECATED_DDK // Use FreeMapRegisters FORCEINLINE VOID IoFreeMapRegisters( IN PDMA_ADAPTER DmaAdapter, IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters ){ PFREE_MAP_REGISTERS freeMapRegisters; freeMapRegisters = *(DmaAdapter)->DmaOperations->FreeMapRegisters; ASSERT( freeMapRegisters != NULL ); freeMapRegisters( DmaAdapter, MapRegisterBase, NumberOfMapRegisters ); } DECLSPEC_DEPRECATED_DDK // Use MapTransfer FORCEINLINE PHYSICAL_ADDRESS IoMapTransfer( IN PDMA_ADAPTER DmaAdapter, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN OUT PULONG Length, IN BOOLEAN WriteToDevice ){ PHYSICAL_ADDRESS physicalAddress; PMAP_TRANSFER mapTransfer; mapTransfer = *(DmaAdapter)->DmaOperations->MapTransfer; ASSERT( mapTransfer != NULL ); physicalAddress = mapTransfer( DmaAdapter, Mdl, MapRegisterBase, CurrentVa, Length, WriteToDevice ); return physicalAddress; } DECLSPEC_DEPRECATED_DDK // Use GetDmaAlignment FORCEINLINE ULONG HalGetDmaAlignment( IN PDMA_ADAPTER DmaAdapter ) { PGET_DMA_ALIGNMENT getDmaAlignment; ULONG alignment; getDmaAlignment = *(DmaAdapter)->DmaOperations->GetDmaAlignment; ASSERT( getDmaAlignment != NULL ); alignment = getDmaAlignment( DmaAdapter ); return alignment; } DECLSPEC_DEPRECATED_DDK // Use ReadDmaCounter FORCEINLINE ULONG HalReadDmaCounter( IN PDMA_ADAPTER DmaAdapter ) { PREAD_DMA_COUNTER readDmaCounter; ULONG counter; readDmaCounter = *(DmaAdapter)->DmaOperations->ReadDmaCounter; ASSERT( readDmaCounter != NULL ); counter = readDmaCounter( DmaAdapter ); return counter; } NTKERNELAPI VOID PoSetSystemState ( IN EXECUTION_STATE Flags ); NTKERNELAPI PVOID PoRegisterSystemState ( IN PVOID StateHandle, IN EXECUTION_STATE Flags ); typedef VOID (*PREQUEST_POWER_COMPLETE) ( IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatus ); NTKERNELAPI NTSTATUS PoRequestPowerIrp ( IN PDEVICE_OBJECT DeviceObject, IN UCHAR MinorFunction, IN POWER_STATE PowerState, IN PREQUEST_POWER_COMPLETE CompletionFunction, IN PVOID Context, OUT PIRP *Irp OPTIONAL ); NTKERNELAPI NTSTATUS PoRequestShutdownEvent ( OUT PVOID *Event ); NTKERNELAPI NTSTATUS PoRequestShutdownWait ( IN PETHREAD Thread ); NTKERNELAPI VOID PoUnregisterSystemState ( IN PVOID StateHandle ); NTKERNELAPI POWER_STATE PoSetPowerState ( IN PDEVICE_OBJECT DeviceObject, IN POWER_STATE_TYPE Type, IN POWER_STATE State ); NTKERNELAPI NTSTATUS PoCallDriver ( IN PDEVICE_OBJECT DeviceObject, IN OUT PIRP Irp ); NTKERNELAPI VOID PoStartNextPowerIrp( IN PIRP Irp ); NTKERNELAPI PULONG PoRegisterDeviceForIdleDetection ( IN PDEVICE_OBJECT DeviceObject, IN ULONG ConservationIdleTime, IN ULONG PerformanceIdleTime, IN DEVICE_POWER_STATE State ); #define PoSetDeviceBusy(IdlePointer) \ *IdlePointer = 0 // // \Callback\PowerState values // #define PO_CB_SYSTEM_POWER_POLICY 0 #define PO_CB_AC_STATUS 1 #define PO_CB_BUTTON_COLLISION 2 #define PO_CB_SYSTEM_STATE_LOCK 3 #define PO_CB_LID_SWITCH_STATE 4 #define PO_CB_PROCESSOR_POWER_POLICY 5 // // Object Manager types // typedef struct _OBJECT_HANDLE_INFORMATION { ULONG HandleAttributes; ACCESS_MASK GrantedAccess; } OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION; NTKERNELAPI NTSTATUS ObReferenceObjectByHandle( IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL ); #define ObDereferenceObject(a) \ ObfDereferenceObject(a) #define ObReferenceObject(Object) ObfReferenceObject(Object) NTKERNELAPI LONG FASTCALL ObfReferenceObject( IN PVOID Object ); NTKERNELAPI NTSTATUS ObReferenceObjectByPointer( IN PVOID Object, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode ); NTKERNELAPI LONG FASTCALL ObfDereferenceObject( IN PVOID Object ); NTSTATUS ObGetObjectSecurity( IN PVOID Object, OUT PSECURITY_DESCRIPTOR *SecurityDescriptor, OUT PBOOLEAN MemoryAllocated ); VOID ObReleaseObjectSecurity( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN BOOLEAN MemoryAllocated ); typedef struct _PCI_SLOT_NUMBER { union { struct { ULONG DeviceNumber:5; ULONG FunctionNumber:3; ULONG Reserved:24; } bits; ULONG AsULONG; } u; } PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER; #define PCI_TYPE0_ADDRESSES 6 #define PCI_TYPE1_ADDRESSES 2 #define PCI_TYPE2_ADDRESSES 5 typedef struct _PCI_COMMON_CONFIG { USHORT VendorID; // (ro) USHORT DeviceID; // (ro) USHORT Command; // Device control USHORT Status; UCHAR RevisionID; // (ro) UCHAR ProgIf; // (ro) UCHAR SubClass; // (ro) UCHAR BaseClass; // (ro) UCHAR CacheLineSize; // (ro+) UCHAR LatencyTimer; // (ro+) UCHAR HeaderType; // (ro) UCHAR BIST; // Built in self test union { struct _PCI_HEADER_TYPE_0 { ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; ULONG CIS; USHORT SubVendorID; USHORT SubSystemID; ULONG ROMBaseAddress; UCHAR CapabilitiesPtr; UCHAR Reserved1[3]; ULONG Reserved2; UCHAR InterruptLine; // UCHAR InterruptPin; // (ro) UCHAR MinimumGrant; // (ro) UCHAR MaximumLatency; // (ro) } type0; } u; UCHAR DeviceSpecific[192]; } PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG; #define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET (PCI_COMMON_CONFIG, DeviceSpecific)) #define PCI_MAX_DEVICES 32 #define PCI_MAX_FUNCTION 8 #define PCI_MAX_BRIDGE_NUMBER 0xFF #define PCI_INVALID_VENDORID 0xFFFF // // Bit encodings for PCI_COMMON_CONFIG.HeaderType // #define PCI_MULTIFUNCTION 0x80 #define PCI_DEVICE_TYPE 0x00 #define PCI_BRIDGE_TYPE 0x01 #define PCI_CARDBUS_BRIDGE_TYPE 0x02 #define PCI_CONFIGURATION_TYPE(PciData) \ (((PPCI_COMMON_CONFIG)(PciData))->HeaderType & ~PCI_MULTIFUNCTION) #define PCI_MULTIFUNCTION_DEVICE(PciData) \ ((((PPCI_COMMON_CONFIG)(PciData))->HeaderType & PCI_MULTIFUNCTION) != 0) // // Bit encodings for PCI_COMMON_CONFIG.Command // #define PCI_ENABLE_IO_SPACE 0x0001 #define PCI_ENABLE_MEMORY_SPACE 0x0002 #define PCI_ENABLE_BUS_MASTER 0x0004 #define PCI_ENABLE_SPECIAL_CYCLES 0x0008 #define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010 #define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020 #define PCI_ENABLE_PARITY 0x0040 // (ro+) #define PCI_ENABLE_WAIT_CYCLE 0x0080 // (ro+) #define PCI_ENABLE_SERR 0x0100 // (ro+) #define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200 // (ro) // // Bit encodings for PCI_COMMON_CONFIG.Status // #define PCI_STATUS_CAPABILITIES_LIST 0x0010 // (ro) #define PCI_STATUS_66MHZ_CAPABLE 0x0020 // (ro) #define PCI_STATUS_UDF_SUPPORTED 0x0040 // (ro) #define PCI_STATUS_FAST_BACK_TO_BACK 0x0080 // (ro) #define PCI_STATUS_DATA_PARITY_DETECTED 0x0100 #define PCI_STATUS_DEVSEL 0x0600 // 2 bits wide #define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800 #define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000 #define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000 #define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000 #define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000 // // The NT PCI Driver uses a WhichSpace parameter on its CONFIG_READ/WRITE // routines. The following values are defined- // #define PCI_WHICHSPACE_CONFIG 0x0 #define PCI_WHICHSPACE_ROM 0x52696350 // // Base Class Code encodings for Base Class (from PCI spec rev 2.1). // #define PCI_CLASS_PRE_20 0x00 #define PCI_CLASS_MASS_STORAGE_CTLR 0x01 #define PCI_CLASS_NETWORK_CTLR 0x02 #define PCI_CLASS_DISPLAY_CTLR 0x03 #define PCI_CLASS_MULTIMEDIA_DEV 0x04 #define PCI_CLASS_MEMORY_CTLR 0x05 #define PCI_CLASS_BRIDGE_DEV 0x06 #define PCI_CLASS_SIMPLE_COMMS_CTLR 0x07 #define PCI_CLASS_BASE_SYSTEM_DEV 0x08 #define PCI_CLASS_INPUT_DEV 0x09 #define PCI_CLASS_DOCKING_STATION 0x0a #define PCI_CLASS_PROCESSOR 0x0b #define PCI_CLASS_SERIAL_BUS_CTLR 0x0c #define PCI_CLASS_WIRELESS_CTLR 0x0d #define PCI_CLASS_INTELLIGENT_IO_CTLR 0x0e #define PCI_CLASS_SATELLITE_COMMS_CTLR 0x0f #define PCI_CLASS_ENCRYPTION_DECRYPTION 0x10 #define PCI_CLASS_DATA_ACQ_SIGNAL_PROC 0x11 // 0d thru fe reserved #define PCI_CLASS_NOT_DEFINED 0xff // // Sub Class Code encodings (PCI rev 2.1). // // Class 00 - PCI_CLASS_PRE_20 #define PCI_SUBCLASS_PRE_20_NON_VGA 0x00 #define PCI_SUBCLASS_PRE_20_VGA 0x01 // Class 01 - PCI_CLASS_MASS_STORAGE_CTLR #define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR 0x00 #define PCI_SUBCLASS_MSC_IDE_CTLR 0x01 #define PCI_SUBCLASS_MSC_FLOPPY_CTLR 0x02 #define PCI_SUBCLASS_MSC_IPI_CTLR 0x03 #define PCI_SUBCLASS_MSC_RAID_CTLR 0x04 #define PCI_SUBCLASS_MSC_OTHER 0x80 // Class 02 - PCI_CLASS_NETWORK_CTLR #define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00 #define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01 #define PCI_SUBCLASS_NET_FDDI_CTLR 0x02 #define PCI_SUBCLASS_NET_ATM_CTLR 0x03 #define PCI_SUBCLASS_NET_ISDN_CTLR 0x04 #define PCI_SUBCLASS_NET_OTHER 0x80 // Class 03 - PCI_CLASS_DISPLAY_CTLR // N.B. Sub Class 00 could be VGA or 8514 depending on Interface byte #define PCI_SUBCLASS_VID_VGA_CTLR 0x00 #define PCI_SUBCLASS_VID_XGA_CTLR 0x01 #define PCI_SUBLCASS_VID_3D_CTLR 0x02 #define PCI_SUBCLASS_VID_OTHER 0x80 // Class 04 - PCI_CLASS_MULTIMEDIA_DEV #define PCI_SUBCLASS_MM_VIDEO_DEV 0x00 #define PCI_SUBCLASS_MM_AUDIO_DEV 0x01 #define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02 #define PCI_SUBCLASS_MM_OTHER 0x80 // Class 05 - PCI_CLASS_MEMORY_CTLR #define PCI_SUBCLASS_MEM_RAM 0x00 #define PCI_SUBCLASS_MEM_FLASH 0x01 #define PCI_SUBCLASS_MEM_OTHER 0x80 // Class 06 - PCI_CLASS_BRIDGE_DEV #define PCI_SUBCLASS_BR_HOST 0x00 #define PCI_SUBCLASS_BR_ISA 0x01 #define PCI_SUBCLASS_BR_EISA 0x02 #define PCI_SUBCLASS_BR_MCA 0x03 #define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04 #define PCI_SUBCLASS_BR_PCMCIA 0x05 #define PCI_SUBCLASS_BR_NUBUS 0x06 #define PCI_SUBCLASS_BR_CARDBUS 0x07 #define PCI_SUBCLASS_BR_RACEWAY 0x08 #define PCI_SUBCLASS_BR_OTHER 0x80 // Class 07 - PCI_CLASS_SIMPLE_COMMS_CTLR // N.B. Sub Class 00 and 01 additional info in Interface byte #define PCI_SUBCLASS_COM_SERIAL 0x00 #define PCI_SUBCLASS_COM_PARALLEL 0x01 #define PCI_SUBCLASS_COM_MULTIPORT 0x02 #define PCI_SUBCLASS_COM_MODEM 0x03 #define PCI_SUBCLASS_COM_OTHER 0x80 // Class 08 - PCI_CLASS_BASE_SYSTEM_DEV // N.B. See Interface byte for additional info. #define PCI_SUBCLASS_SYS_INTERRUPT_CTLR 0x00 #define PCI_SUBCLASS_SYS_DMA_CTLR 0x01 #define PCI_SUBCLASS_SYS_SYSTEM_TIMER 0x02 #define PCI_SUBCLASS_SYS_REAL_TIME_CLOCK 0x03 #define PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR 0x04 #define PCI_SUBCLASS_SYS_OTHER 0x80 // Class 09 - PCI_CLASS_INPUT_DEV #define PCI_SUBCLASS_INP_KEYBOARD 0x00 #define PCI_SUBCLASS_INP_DIGITIZER 0x01 #define PCI_SUBCLASS_INP_MOUSE 0x02 #define PCI_SUBCLASS_INP_SCANNER 0x03 #define PCI_SUBCLASS_INP_GAMEPORT 0x04 #define PCI_SUBCLASS_INP_OTHER 0x80 // Class 0a - PCI_CLASS_DOCKING_STATION #define PCI_SUBCLASS_DOC_GENERIC 0x00 #define PCI_SUBCLASS_DOC_OTHER 0x80 // Class 0b - PCI_CLASS_PROCESSOR #define PCI_SUBCLASS_PROC_386 0x00 #define PCI_SUBCLASS_PROC_486 0x01 #define PCI_SUBCLASS_PROC_PENTIUM 0x02 #define PCI_SUBCLASS_PROC_ALPHA 0x10 #define PCI_SUBCLASS_PROC_POWERPC 0x20 #define PCI_SUBCLASS_PROC_COPROCESSOR 0x40 // Class 0c - PCI_CLASS_SERIAL_BUS_CTLR #define PCI_SUBCLASS_SB_IEEE1394 0x00 #define PCI_SUBCLASS_SB_ACCESS 0x01 #define PCI_SUBCLASS_SB_SSA 0x02 #define PCI_SUBCLASS_SB_USB 0x03 #define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04 #define PCI_SUBCLASS_SB_SMBUS 0x05 // Class 0d - PCI_CLASS_WIRELESS_CTLR #define PCI_SUBCLASS_WIRELESS_IRDA 0x00 #define PCI_SUBCLASS_WIRELESS_CON_IR 0x01 #define PCI_SUBCLASS_WIRELESS_RF 0x10 #define PCI_SUBCLASS_WIRELESS_OTHER 0x80 // Class 0e - PCI_CLASS_INTELLIGENT_IO_CTLR #define PCI_SUBCLASS_INTIO_I2O 0x00 // Class 0f - PCI_CLASS_SATELLITE_CTLR #define PCI_SUBCLASS_SAT_TV 0x01 #define PCI_SUBCLASS_SAT_AUDIO 0x02 #define PCI_SUBCLASS_SAT_VOICE 0x03 #define PCI_SUBCLASS_SAT_DATA 0x04 // Class 10 - PCI_CLASS_ENCRYPTION_DECRYPTION #define PCI_SUBCLASS_CRYPTO_NET_COMP 0x00 #define PCI_SUBCLASS_CRYPTO_ENTERTAINMENT 0x10 #define PCI_SUBCLASS_CRYPTO_OTHER 0x80 // Class 11 - PCI_CLASS_DATA_ACQ_SIGNAL_PROC #define PCI_SUBCLASS_DASP_DPIO 0x00 #define PCI_SUBCLASS_DASP_OTHER 0x80 // // Bit encodes for PCI_COMMON_CONFIG.u.type0.BaseAddresses // #define PCI_ADDRESS_IO_SPACE 0x00000001 // (ro) #define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006 // (ro) #define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008 // (ro) #define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc #define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0 #define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800 #define PCI_TYPE_32BIT 0 #define PCI_TYPE_20BIT 2 #define PCI_TYPE_64BIT 4 // // Bit encodes for PCI_COMMON_CONFIG.u.type0.ROMBaseAddresses // #define PCI_ROMADDRESS_ENABLED 0x00000001 // // Reference notes for PCI configuration fields: // // ro these field are read only. changes to these fields are ignored // // ro+ these field are intended to be read only and should be initialized // by the system to their proper values. However, driver may change // these settings. // // --- // // All resources comsumed by a PCI device start as unitialized // under NT. An uninitialized memory or I/O base address can be // determined by checking it's corrisponding enabled bit in the // PCI_COMMON_CONFIG.Command value. An InterruptLine is unitialized // if it contains the value of -1. // #define PCI_DEVICE_PRESENT_INTERFACE_VERSION 1 // // Flags for PCI_DEVICE_PRESENCE_PARAMETERS // #define PCI_USE_SUBSYSTEM_IDS 0x00000001 #define PCI_USE_REVISION 0x00000002 // The following flags are only valid for IsDevicePresentEx #define PCI_USE_VENDEV_IDS 0x00000004 #define PCI_USE_CLASS_SUBCLASS 0x00000008 #define PCI_USE_PROGIF 0x00000010 #define PCI_USE_LOCAL_BUS 0x00000020 #define PCI_USE_LOCAL_DEVICE 0x00000040 // // Search parameters structure for IsDevicePresentEx // typedef struct _PCI_DEVICE_PRESENCE_PARAMETERS { ULONG Size; ULONG Flags; USHORT VendorID; USHORT DeviceID; UCHAR RevisionID; USHORT SubVendorID; USHORT SubSystemID; UCHAR BaseClass; UCHAR SubClass; UCHAR ProgIf; } PCI_DEVICE_PRESENCE_PARAMETERS, *PPCI_DEVICE_PRESENCE_PARAMETERS; typedef BOOLEAN (*PPCI_IS_DEVICE_PRESENT) ( IN USHORT VendorID, IN USHORT DeviceID, IN UCHAR RevisionID, IN USHORT SubVendorID, IN USHORT SubSystemID, IN ULONG Flags ); typedef BOOLEAN (*PPCI_IS_DEVICE_PRESENT_EX) ( IN PVOID Context, IN PPCI_DEVICE_PRESENCE_PARAMETERS Parameters ); typedef struct _PCI_DEVICE_PRESENT_INTERFACE { // // generic interface header // USHORT Size; USHORT Version; PVOID Context; PINTERFACE_REFERENCE InterfaceReference; PINTERFACE_DEREFERENCE InterfaceDereference; // // pci device info // PPCI_IS_DEVICE_PRESENT IsDevicePresent; PPCI_IS_DEVICE_PRESENT_EX IsDevicePresentEx; } PCI_DEVICE_PRESENT_INTERFACE, *PPCI_DEVICE_PRESENT_INTERFACE; #ifdef POOL_TAGGING #define ExAllocatePool(a,b) ExAllocatePoolWithTag(a,b,' mdW') #define ExAllocatePoolWithQuota(a,b) ExAllocatePoolWithQuotaTag(a,b,' kdD') #endif extern POBJECT_TYPE *IoFileObjectType; extern POBJECT_TYPE *ExEventObjectType; extern POBJECT_TYPE *ExSemaphoreObjectType; // // Define exported ZwXxx routines to device drivers. // NTSYSAPI NTSTATUS NTAPI ZwCreateFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength ); NTSYSAPI NTSTATUS NTAPI ZwOpenFile( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions ); NTSYSAPI NTSTATUS NTAPI ZwQueryInformationFile( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass ); NTSYSAPI NTSTATUS NTAPI ZwSetInformationFile( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass ); NTSYSAPI NTSTATUS NTAPI ZwReadFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL ); NTSYSAPI NTSTATUS NTAPI ZwWriteFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER ByteOffset OPTIONAL, IN PULONG Key OPTIONAL ); NTSYSAPI NTSTATUS NTAPI ZwClose( IN HANDLE Handle ); NTSYSAPI NTSTATUS NTAPI ZwCreateDirectoryObject( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwMakeTemporaryObject( IN HANDLE Handle ); NTSYSAPI NTSTATUS NTAPI ZwOpenSection( OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwMapViewOfSection( IN HANDLE SectionHandle, IN HANDLE ProcessHandle, IN OUT PVOID *BaseAddress, IN ULONG ZeroBits, IN ULONG CommitSize, IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, IN OUT PSIZE_T ViewSize, IN SECTION_INHERIT InheritDisposition, IN ULONG AllocationType, IN ULONG Protect ); NTSYSAPI NTSTATUS NTAPI ZwUnmapViewOfSection( IN HANDLE ProcessHandle, IN PVOID BaseAddress ); NTSYSAPI NTSTATUS NTAPI ZwCreateKey( OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL ); NTSYSAPI NTSTATUS NTAPI ZwOpenKey( OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwDeleteKey( IN HANDLE KeyHandle ); NTSYSAPI NTSTATUS NTAPI ZwDeleteValueKey( IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName ); NTSYSAPI NTSTATUS NTAPI ZwEnumerateKey( IN HANDLE KeyHandle, IN ULONG Index, IN KEY_INFORMATION_CLASS KeyInformationClass, OUT PVOID KeyInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwEnumerateValueKey( IN HANDLE KeyHandle, IN ULONG Index, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwFlushKey( IN HANDLE KeyHandle ); NTSYSAPI NTSTATUS NTAPI ZwQueryKey( IN HANDLE KeyHandle, IN KEY_INFORMATION_CLASS KeyInformationClass, OUT PVOID KeyInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwQueryValueKey( IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, OUT PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength ); NTSYSAPI NTSTATUS NTAPI ZwSetValueKey( IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN ULONG TitleIndex OPTIONAL, IN ULONG Type, IN PVOID Data, IN ULONG DataSize ); NTSYSAPI NTSTATUS NTAPI ZwOpenSymbolicLinkObject( OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSYSAPI NTSTATUS NTAPI ZwQuerySymbolicLinkObject( IN HANDLE LinkHandle, IN OUT PUNICODE_STRING LinkTarget, OUT PULONG ReturnedLength OPTIONAL ); #endif // _WDMDDK_ ================================================ FILE: Bin/i386/APILib/winternl.h ================================================ /************************************************************************ * * * winternl.h -- This module defines the internal NT APIs and data * * structures that are intended for the use only by internal core * * Windows components. These APIs and data structures may change * * at any time. * * * * These APIs and data structures are subject to changes from one * * Windows release to another Windows release. To maintain the * * compatiblity of your application, avoid using these APIs and * * data structures. * * * * The appropriate mechanism for accessing the functions defined in * * this header is to use LoadLibrary() for ntdll.dll and * * GetProcAddress() for the particular function. By using this * * approach, your application will be more resilient to changes * * for these functions between Windows releases. If a function * * prototype does change, then GetProcAddress() for that function * * might detect the change and fail the function call, which your * * application will be able to detect. GetProcAddress() may not * * be able to detect all signature changes, thus avoid using these * * internal functions. Instead, your application should use the * * appropriate Win32 function that provides equivalent or similiar * * functionality. * * * * Copyright (c) Microsoft Corp. All rights reserved. * * * ************************************************************************/ #ifndef _WINTERNL_ #define _WINTERNL_ #if (_WIN32_WINNT >= 0x0500) #include // // The PEB and TEB structures are subject to changes between Windows // releases, thus the fields offsets may change as well as the Reserved // fields. The Reserved fields are reserved for use only by the Windows // operating systems. Do not assume a maximum size for the structures. // // // Instead of using the BeingDebugged field, use the Win32 APIs // IsDebuggerPresent, CheckRemoteDebuggerPresent // Instead of using the SessionId field, use the Win32 APIs // GetCurrentProcessId and ProcessIdToSessionId // Sample x86 assembly code that gets the SessionId (subject to change // between Windows releases, use the Win32 APIs to make your application // resilient to changes) // mov eax,fs:[00000018] // mov eax,[eax+0x30] // mov eax,[eax+0x1d4] // typedef struct _PEB { BYTE Reserved1[2]; BYTE BeingDebugged; BYTE Reserved2[229]; PVOID Reserved3[59]; ULONG SessionId; } PEB, *PPEB; // // Instead of using the Tls fields, use the Win32 TLS APIs // TlsAlloc, TlsGetValue, TlsSetValue, TlsFree // // Instead of using the ReservedForOle field, use the COM API // CoGetContextToken // typedef struct _TEB { BYTE Reserved1[1952]; PVOID Reserved2[412]; PVOID TlsSlots[64]; BYTE Reserved3[8]; PVOID Reserved4[26]; PVOID ReservedForOle; // Windows 2000 only PVOID Reserved5[4]; PVOID TlsExpansionSlots; } TEB; typedef TEB *PTEB; // // These data structures and type definitions are needed for compilation and // use of the internal Windows APIs defined in this header. // typedef LONG NTSTATUS; typedef CONST char *PCSZ; typedef struct _STRING { USHORT Length; USHORT MaximumLength; PCHAR Buffer; } STRING; typedef STRING *PSTRING; typedef STRING ANSI_STRING; typedef PSTRING PANSI_STRING; typedef PSTRING PCANSI_STRING; typedef STRING OEM_STRING; typedef PSTRING POEM_STRING; typedef CONST STRING* PCOEM_STRING; typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING; typedef UNICODE_STRING *PUNICODE_STRING; typedef const UNICODE_STRING *PCUNICODE_STRING; typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; PUNICODE_STRING ObjectName; ULONG Attributes; PVOID SecurityDescriptor; PVOID SecurityQualityOfService; } OBJECT_ATTRIBUTES; typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; typedef struct _IO_STATUS_BLOCK { union { NTSTATUS Status; PVOID Pointer; }; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; typedef VOID (NTAPI *PIO_APC_ROUTINE) ( IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved ); #if defined(_M_IA64) typedef struct _FRAME_POINTERS { ULONGLONG MemoryStackFp; ULONGLONG BackingStoreFp; } FRAME_POINTERS, *PFRAME_POINTERS; #define UNWIND_HISTORY_TABLE_SIZE 12 typedef struct _RUNTIME_FUNCTION { ULONG BeginAddress; ULONG EndAddress; ULONG UnwindInfoAddress; } RUNTIME_FUNCTION, *PRUNTIME_FUNCTION; typedef struct _UNWIND_HISTORY_TABLE_ENTRY { ULONG64 ImageBase; ULONG64 Gp; PRUNTIME_FUNCTION FunctionEntry; } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY; typedef struct _UNWIND_HISTORY_TABLE { ULONG Count; UCHAR Search; ULONG64 LowAddress; ULONG64 HighAddress; UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; #endif // _M_IA64 typedef struct _PROCESS_BASIC_INFORMATION { PVOID Reserved1; PPEB PebBaseAddress; PVOID Reserved2[2]; ULONG_PTR UniqueProcessId; PVOID Reserved3; } PROCESS_BASIC_INFORMATION; typedef PROCESS_BASIC_INFORMATION *PPROCESS_BASIC_INFORMATION; typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION { LARGE_INTEGER IdleTime; LARGE_INTEGER KernelTime; LARGE_INTEGER UserTime; LARGE_INTEGER Reserved1[2]; ULONG Reserved2; } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; typedef struct _SYSTEM_PROCESS_INFORMATION { ULONG NextEntryOffset; BYTE Reserved1[52]; PVOID Reserved2[3]; HANDLE UniqueProcessId; PVOID Reserved3; ULONG HandleCount; BYTE Reserved4[4]; PVOID Reserved5[11]; SIZE_T PeakPagefileUsage; SIZE_T PrivatePageCount; LARGE_INTEGER Reserved6[6]; } SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION; typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION { ULONG RegistryQuotaAllowed; ULONG RegistryQuotaUsed; PVOID Reserved1; } SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION; typedef struct _SYSTEM_BASIC_INFORMATION { BYTE Reserved1[24]; PVOID Reserved2[4]; CCHAR NumberOfProcessors; } SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION; typedef struct _SYSTEM_TIMEOFDAY_INFORMATION { BYTE Reserved1[48]; } SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION; typedef struct _SYSTEM_PERFORMANCE_INFORMATION { BYTE Reserved1[312]; } SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION; typedef struct _SYSTEM_EXCEPTION_INFORMATION { BYTE Reserved1[16]; } SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION; typedef struct _SYSTEM_LOOKASIDE_INFORMATION { BYTE Reserved1[32]; } SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION; typedef struct _SYSTEM_INTERRUPT_INFORMATION { BYTE Reserved1[24]; } SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION; typedef enum _FILE_INFORMATION_CLASS { FileDirectoryInformation = 1 } FILE_INFORMATION_CLASS; typedef enum _PROCESSINFOCLASS { ProcessBasicInformation = 0, ProcessWow64Information = 26 } PROCESSINFOCLASS; typedef enum _THREADINFOCLASS { ThreadIsIoPending = 16 } THREADINFOCLASS; typedef enum _SYSTEM_INFORMATION_CLASS { SystemBasicInformation = 0, SystemPerformanceInformation = 2, SystemTimeOfDayInformation = 3, SystemProcessInformation = 5, SystemProcessorPerformanceInformation = 8, SystemInterruptInformation = 23, SystemExceptionInformation = 33, SystemRegistryQuotaInformation = 37, SystemLookasideInformation = 45 } SYSTEM_INFORMATION_CLASS; #if (_WIN32_WINNT >= 0x0501) // // use the WTS API instead // WTSGetActiveConsoleSessionId // The active console id is cached as a volatile ULONG in a constant // memory location. This x86 memory location is subject to changes between // Windows releases. Use the WTS API to make your application resilient to // changes. // #define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) ) #endif // (_WIN32_WINNT >= 0x0501) // // These functions are intended for use by internal core Windows components // since these functions may change between Windows releases. // #define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) #define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length)) #define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length)) // // use the Win32 API instead // CloseHandle // NTSTATUS NtClose ( IN HANDLE Handle ); // // use the Win32 API instead // CreateFile // NTSTATUS NtCreateFile ( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength ); // // use the Win32 API instead // CreateFile // NTSTATUS NtOpenFile ( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions ); // // use the Win32 API instead // DeviceIoControl // NTSTATUS NtDeviceIoControlFile ( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer OPTIONAL, IN ULONG InputBufferLength, OUT PVOID OutputBuffer OPTIONAL, IN ULONG OutputBufferLength ); // // use the Win32 API instead // WaitForSingleObjectEx // NTSTATUS NtWaitForSingleObject ( IN HANDLE Handle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ); // // use the Win32 API instead // CheckNameLegalDOS8Dot3 // BOOLEAN RtlIsNameLegalDOS8Dot3 ( IN PUNICODE_STRING Name, IN OUT POEM_STRING OemName OPTIONAL, IN OUT PBOOLEAN NameContainsSpaces OPTIONAL ); // // This function might be needed for some of the internal Windows functions, // defined in this header file. // ULONG RtlNtStatusToDosError ( NTSTATUS Status ); // // use the Win32 APIs instead // GetProcessHandleCount // GetProcessId // NTSTATUS NtQueryInformationProcess ( IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, OUT PVOID ProcessInformation, IN ULONG ProcessInformationLength, OUT PULONG ReturnLength OPTIONAL ); // // use the Win32 API instead // GetThreadIOPendingFlag // NTSTATUS NtQueryInformationThread ( IN HANDLE ThreadHandle, IN THREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength, OUT PULONG ReturnLength OPTIONAL ); // // use the Win32 APIs instead // GetSystemRegistryQuota // GetSystemTimes // use the CryptoAPIs instead for generating random data // CryptGenRandom // NTSTATUS NtQuerySystemInformation ( IN SYSTEM_INFORMATION_CLASS SystemInformationClass, OUT PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG ReturnLength OPTIONAL ); // // use the Win32 API instead // GetSystemTimeAsFileTime // NTSTATUS NtQuerySystemTime ( OUT PLARGE_INTEGER SystemTime ); // // use the Win32 API instead // LocalFileTimeToFileTime // NTSTATUS RtlLocalTimeToSystemTime ( IN PLARGE_INTEGER LocalTime, OUT PLARGE_INTEGER SystemTime ); // // use the Win32 API instead // SystemTimeToFileTime to convert to FILETIME structures // copy the resulting FILETIME structures to ULARGE_INTEGER structures // perform the calculation // BOOLEAN RtlTimeToSecondsSince1970 ( PLARGE_INTEGER Time, PULONG ElapsedSeconds ); // // These APIs might be need for some of the internal Windows functions, // defined in this header file. // VOID RtlFreeAnsiString ( PANSI_STRING AnsiString ); VOID RtlFreeUnicodeString ( PUNICODE_STRING UnicodeString ); VOID RtlFreeOemString( POEM_STRING OemString ); VOID RtlInitString ( PSTRING DestinationString, PCSZ SourceString ); VOID RtlInitAnsiString ( PANSI_STRING DestinationString, PCSZ SourceString ); VOID RtlInitUnicodeString ( PUNICODE_STRING DestinationString, PCWSTR SourceString ); NTSTATUS RtlAnsiStringToUnicodeString ( PUNICODE_STRING DestinationString, PCANSI_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSTATUS RtlUnicodeStringToAnsiString ( PANSI_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString ); NTSTATUS RtlUnicodeStringToOemString( POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString ); // // Use the Win32 API instead // WideCharToMultiByte // set CodePage to CP_ACP // set cbMultiByte to 0 // NTSTATUS RtlUnicodeToMultiByteSize( PULONG BytesInMultiByteString, IN PWSTR UnicodeString, ULONG BytesInUnicodeString ); // // Use the C runtime function instead // strtol // NTSTATUS RtlCharToInteger ( PCSZ String, ULONG Base, PULONG Value ); // // use the Win32 API instead // ConvertSidToStringSid // NTSTATUS RtlConvertSidToUnicodeString ( PUNICODE_STRING UnicodeString, PSID Sid, BOOLEAN AllocateDestinationString ); // // use the CryptoAPIs instead // CryptGenRandom // ULONG RtlUniform ( PULONG Seed ); // // Use the default built-in system exception handling instead of these // functions // VOID RtlUnwind ( IN PVOID TargetFrame OPTIONAL, IN PVOID TargetIp OPTIONAL, IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL, IN PVOID ReturnValue ); #if defined(_M_IA64) VOID RtlUnwind2 ( IN FRAME_POINTERS TargetFrame OPTIONAL, IN PVOID TargetIp OPTIONAL, IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL, IN PVOID ReturnValue, IN PCONTEXT ContextRecord ); VOID RtlUnwindEx ( IN FRAME_POINTERS TargetFrame OPTIONAL, IN PVOID TargetIp OPTIONAL, IN PEXCEPTION_RECORD ExceptionRecord OPTIONAL, IN PVOID ReturnValue, IN PCONTEXT ContextRecord, IN PUNWIND_HISTORY_TABLE HistoryTable OPTIONAL ); #endif // _M_IA64 #endif // (_WIN32_WINNT >= 0x0500) #define LOGONID_CURRENT ((ULONG)-1) #define SERVERNAME_CURRENT ((HANDLE)NULL) typedef enum _WINSTATIONINFOCLASS { WinStationInformation = 8 } WINSTATIONINFOCLASS; typedef struct _WINSTATIONINFORMATIONW { BYTE Reserved2[70]; ULONG LogonId; BYTE Reserved3[1140]; } WINSTATIONINFORMATIONW, * PWINSTATIONINFORMATIONW; // // this function is implemented in winsta.dll (you need to loadlibrary to call this function) // this internal function retrives the LogonId (also called SessionId) for the current process // You should avoid using this function as it can change. you can retrieve the same information // Using public api WTSQuerySessionInformation. Pass WTSSessionId as the WTSInfoClass parameter // typedef BOOLEAN (WINAPI * PWINSTATIONQUERYINFORMATIONW)( HANDLE, ULONG, WINSTATIONINFOCLASS, PVOID, ULONG, PULONG ); #endif // _WINTERNL_ ================================================ FILE: Bin/i386/Syser.cmd ================================================ ================================================ FILE: Bin/i386/Syser.idb ================================================ [File too large to display: 32.5 MB] ================================================ FILE: Bin/i386/SyserApp.cmd ================================================ ================================================ FILE: Bin/i386/mfc_sym/mfc42.def ================================================ 1 DllGetClassObject 2 DllCanUnloadNow 3 DllRegisterServer 4 DllUnregisterServer 5 CRuntimeconst CCachedDataPathProperty::classCCachedDataPathProperty 6 CRuntimeconst CDataPathProperty::classCDataPathProperty 256 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 257 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 258 _AFX_CONTROLPOS::_AFX_CONTROLPOS() 259 _AFX_DAO_STATE::_AFX_DAO_STATE() 260 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 261 _AFX_OLE_STATE::_AFX_OLE_STATE() 262 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 263 _AFX_WIN_STATE::_AFX_WIN_STATE() 264 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 265 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 266 AFX_CLASSINIT::AFX_CLASSINIT(CRuntime*) 267 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 268 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 269 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long) 270 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 271 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 272 CAnimateCtrl::CAnimateCtrl() 273 CArchive::CArchive(CFile *,unsigned int,int,void *) 274 CArchivePropExchange::CArchivePropExchange(CArchive &) 275 CArchiveStream::CArchiveStream(CArchive *) 276 CAsyncMonikerFile::CAsyncMonikerFile() 277 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 278 CAsyncSocket::CAsyncSocket() 279 CBitmap::CBitmap() 280 CBitmapButton::CBitmapButton() 281 CBlobProperty::CBlobProperty(void *) 282 CBrush::CBrush(int,unsigned long) 283 CBrush::CBrush(unsigned long) 284 CBrush::CBrush(CBitmap *) 285 CBrush::CBrush() 286 CButton::CButton() 287 CByteArray::CByteArray() 288 CCheckListBox::CCheckListBox() 289 CClientDC::CClientDC(CWnd *) 290 CCmdTarget::CCmdTarget() 291 CCmdUI::CCmdUI() 292 CColorButton::CColorButton() 293 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 294 CColorPropPage::CColorPropPage() 295 CComboBox::CComboBox() 296 CCommandLineInfo::CCommandLineInfo() 297 CConnectionPoint::CConnectionPoint() 298 CControlBar::CControlBar() 299 CControlBarInfo::CControlBarInfo() 300 COleControl::CControlDataSource::CControlDataSource(COleControl *) 301 CControlFrameWnd::CControlFrameWnd(COleControl *) 302 CCriticalSection::CCriticalSection() 303 CCtrlView::CCtrlView(char const *,unsigned long) 304 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 305 CDaoException::CDaoException() 306 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 307 CDaoIndexFieldInfo::CDaoIndexFieldInfo() 308 CDaoIndexInfo::CDaoIndexInfo() 309 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 310 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 311 CDaoRecordView::CDaoRecordView(unsigned int) 312 CDaoRecordView::CDaoRecordView(char const *) 313 CDaoRelationFieldInfo::CDaoRelationFieldInfo() 314 CDaoRelationInfo::CDaoRelationInfo() 315 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 316 CDaoWorkspace::CDaoWorkspace() 317 CDatabase::CDatabase() 318 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 319 CDataExchange::CDataExchange(CWnd *,int) 320 CDataSourceControl::CDataSourceControl(COleControlSite *) 321 CDBException::CDBException(short) 322 CDBVariant::CDBVariant() 323 CDC::CDC() 324 CDialog::CDialog(unsigned int,CWnd *) 325 CDialog::CDialog(char const *,CWnd *) 326 CDialog::CDialog() 327 CDialogBar::CDialogBar() 328 CDialogTemplate::CDialogTemplate(void *) 329 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 330 CDocItem::CDocItem() 331 CDockBar::CDockBar(int) 332 CDockContext::CDockContext(CControlBar *) 333 CDockState::CDockState() 334 CDocManager::CDocManager() 335 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 336 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 337 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 338 CDocument::CDocument() 339 CDragListBox::CDragListBox() 340 CDumpContext::CDumpContext(CFile *) 341 CDWordArray::CDWordArray() 342 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 343 CEdit::CEdit() 344 CEditView::CEditView() 345 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 346 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 347 CEnumFormatEtc::CEnumFormatEtc() 348 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 349 CException::CException(int) 350 CException::CException() 351 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 352 CFile::CFile(int) 353 CFile::CFile(char const *,unsigned int) 354 CFile::CFile() 355 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *) 356 CFileFind::CFileFind() 357 CFindReplaceDialog::CFindReplaceDialog() 358 CFont::CFont() 359 CFontComboBox::CFontComboBox() 360 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 361 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 362 CFontHolder::CFontHolder(IPropertyNotifySink *) 363 CFontPropPage::CFontPropPage() 364 CFormView::CFormView(unsigned int) 365 CFormView::CFormView(char const *) 366 CFrameWnd::CFrameWnd() 367 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 368 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 369 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 370 CGdiObject::CGdiObject() 371 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 372 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 373 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 374 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 375 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 376 CGopherLocator::CGopherLocator(char const *,unsigned long) 377 CHandleMap::CHandleMap(CRuntime*,unsigned int,int) 378 CHeaderCtrl::CHeaderCtrl() 379 CHotKeyCtrl::CHotKeyCtrl() 380 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 381 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 382 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 383 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 384 CImageList::CImageList() 385 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 386 CInternetException::CInternetException(unsigned long) 387 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 388 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 389 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 390 CListBox::CListBox() 391 CListCtrl::CListCtrl() 392 CListView::CListView() 393 CLongBinary::CLongBinary() 394 CMapPtrToPtr::CMapPtrToPtr(int) 395 CMapPtrToWord::CMapPtrToWord(int) 396 CMapStringToOb::CMapStringToOb(int) 397 CMapStringToPtr::CMapStringToPtr(int) 398 CMapStringToString::CMapStringToString(int) 399 CMapWordToOb::CMapWordToOb(int) 400 CMapWordToPtr::CMapWordToPtr(int) 401 CMDIChildWnd::CMDIChildWnd() 402 CMDIFrameWnd::CMDIFrameWnd() 403 CMemFile::CMemFile(unsigned int) 404 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 405 CMenu::CMenu() 406 CMetaFileDC::CMetaFileDC() 407 CMiniDockFrameWnd::CMiniDockFrameWnd() 408 CMiniFrameWnd::CMiniFrameWnd() 409 CMirrorFile::CMirrorFile() 410 CMonikerFile::CMonikerFile() 411 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 412 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 413 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 414 CObArray::CObArray() 415 CObList::CObList(int) 416 CODBCFieldInfo::CODBCFieldInfo() 417 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 418 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 419 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 420 COleClientItem::COleClientItem(COleDocument *) 421 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 422 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 423 COleControl::COleControl() 424 COleControlContainer::COleControlContainer(CWnd *) 425 COleControlLock::COleControlLock(_GUID const &) 426 COleControlSite::COleControlSite(COleControlContainer *) 427 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 428 COleCurrency::COleCurrency(long,long) 429 COleDataObject::COleDataObject() 430 COleDataSource::COleDataSource() 431 COleDialog::COleDialog(CWnd *) 432 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 433 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 434 COleDispatchDriver::COleDispatchDriver() 435 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 436 COleDocIPFrameWnd::COleDocIPFrameWnd() 437 COleDocument::COleDocument() 438 COleDropSource::COleDropSource() 439 COleDropTarget::COleDropTarget() 440 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 441 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 442 COleIPFrameWnd::COleIPFrameWnd() 443 COleLinkingDoc::COleLinkingDoc() 444 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 445 COleMessageFilter::COleMessageFilter() 446 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 447 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 448 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 449 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 450 COleResizeBar::COleResizeBar() 451 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 452 COleSafeArray::COleSafeArray(tagVARIANT const &) 453 COleSafeArray::COleSafeArray(COleSafeArray const &) 454 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 455 COleSafeArray::COleSafeArray(tagVARIANT const *) 456 COleServerDoc::COleServerDoc() 457 COleServerItem::COleServerItem(COleServerDoc *,int) 458 COleStreamFile::COleStreamFile(IStream *) 459 COleTemplateServer::COleTemplateServer() 460 COleUILinkInfo::COleUILinkInfo(COleDocument *) 461 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 462 COleVariant::COleVariant(tagVARIANT const &) 463 COleVariant::COleVariant(COleVariant const &) 464 COleVariant::COleVariant(short,unsigned short) 465 COleVariant::COleVariant(long,unsigned short) 466 COleVariant::COleVariant(char const *,unsigned short) 467 COleVariant::COleVariant(tagVARIANT const *) 468 COleVariant::COleVariant() 469 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 470 CPaintDC::CPaintDC(CWnd *) 471 CPalette::CPalette() 472 CPen::CPen(int,int,unsigned long) 473 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 474 CPen::CPen() 475 CPictureHolder::CPictureHolder() 476 CPicturePropPage::CPicturePropPage() 477 CPoint::CPoint(unsigned long) 478 CPoint::CPoint(tagPOINT) 479 CPreviewDC::CPreviewDC() 480 CPreviewView::CPreviewView() 481 CPrintDialog::CPrintDialog(tagPDA &) 482 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 483 CPrintInfo::CPrintInfo() 484 CPrintPreviewState::CPrintPreviewState() 485 CProgressCtrl::CProgressCtrl() 486 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 487 CProperty::CProperty(unsigned long,void * const,unsigned long) 488 CProperty::CProperty() 489 CPropertyPage::CPropertyPage(unsigned int,unsigned int) 490 CPropertyPage::CPropertyPage(char const *,unsigned int) 491 CPropertyPage::CPropertyPage() 492 CPropertySection::CPropertySection(_GUID) 493 CPropertySection::CPropertySection() 494 CPropertySet::CPropertySet(_GUID) 495 CPropertySet::CPropertySet() 496 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 497 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 498 CPropertySheet::CPropertySheet() 499 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 500 CPtrArray::CPtrArray() 501 CPtrList::CPtrList(int) 502 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 503 CRecordset::CRecordset(CDatabase *) 504 CRecordView::CRecordView(unsigned int) 505 CRecordView::CRecordView(char const *) 506 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 507 CRectTracker::CRectTracker() 508 CReObject::CReObject(CRichEditCntrItem *) 509 CReObject::CReObject() 510 CResetPropExchange::CResetPropExchange() 511 CRgn::CRgn() 512 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 513 CRichEditCtrl::CRichEditCtrl() 514 CRichEditDoc::CRichEditDoc() 515 CRichEditView::CRichEditView() 516 CScrollBar::CScrollBar() 517 CScrollView::CScrollView() 518 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 519 CSharedFile::CSharedFile(unsigned int,unsigned int) 520 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 521 CSingleLock::CSingleLock(CSyncObject *,int) 522 CSliderCtrl::CSliderCtrl() 523 CSocket::CSocket() 524 CSocketFile::CSocketFile(CSocket *,int) 525 CSocketWnd::CSocketWnd() 526 CSpinButtonCtrl::CSpinButtonCtrl() 527 CSplitterWnd::CSplitterWnd() 528 CStatic::CStatic() 529 CStatusBar::CStatusBar() 530 CStatusBarCtrl::CStatusBarCtrl() 531 CStdioFile::CStdioFile(_iobuf *) 532 CStdioFile::CStdioFile(char const *,unsigned int) 533 CStdioFile::CStdioFile() 534 CStockPropPage::CStockPropPage(unsigned int,unsigned int) 535 CString::CString(CString const &) 536 CString::CString(char,int) 537 CString::CString(char const *) 538 CString::CString(char const *,int) 539 CString::CString(unsigned short const *) 540 CString::CString() 541 CStringArray::CStringArray() 542 CStringList::CStringList(int) 543 CSyncObject::CSyncObject(char const *) 544 CTabCtrl::CTabCtrl() 545 CTestCmdUI::CTestCmdUI() 546 CThreadSlotData::CThreadSlotData() 547 CTime::CTime(_FILETIME const &,int) 548 CTime::CTime(_SYSTEMTIME const &,int) 549 CTime::CTime(CTime const &) 550 CTime::CTime(unsigned short,unsigned short,int) 551 CTime::CTime(int,int,int,int,int,int,int) 552 CTime::CTime() 553 CTimeSpan::CTimeSpan() 554 CToolBar::CToolBar() 555 CToolBarCtrl::CToolBarCtrl() 556 CToolTipCtrl::CToolTipCtrl() 557 CTreeCtrl::CTreeCtrl() 558 CTreeView::CTreeView() 559 CUIntArray::CUIntArray() 560 CView::CView() 561 CWinApp::CWinApp(char const *) 562 CWindowDC::CWindowDC(CWnd *) 563 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 564 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 565 CWinThread::CWinThread() 566 CWnd::CWnd(HWND__ *) 567 CWnd::CWnd() 568 CWordArray::CWordArray() 569 CPreviewView::PAGE_INFO::PAGE_INFO() 570 tagFONTOBJECT::tagFONTOBJECT(tagFONTOBJECT const &) 571 _CIP::~_CIP() 572 _CIP::~_CIP() 573 _CIP::~_CIP() 574 _CIP::~_CIP() 575 _CIP::~_CIP() 576 _CIP::~_CIP() 577 CIP::~CIP() 578 CIP::~CIP() 579 CIP::~CIP() 580 CIP::~CIP() 581 CIP::~CIP() 582 CIP::~CIP() 583 CThreadLocal::~CThreadLocal() 584 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 585 _AFX_CTL3D_STATE::~_AFX_CTL3D_STATE() 586 _AFX_CTL3D_THREAD::~_AFX_CTL3D_THREAD() 587 _AFX_DAO_STATE::~_AFX_DAO_STATE() 588 _AFX_DB_STATE::~_AFX_DB_STATE() 589 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 590 _AFX_EXTDLL_STATE::~_AFX_EXTDLL_STATE() 591 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 592 _AFX_OLE_STATE::~_AFX_OLE_STATE() 593 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 594 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 595 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 596 _AFX_WIN_STATE::~_AFX_WIN_STATE() 597 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 598 AFX_COM::~AFX_COM() 599 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 600 AFX_MODULE_STATE::~AFX_MODULE_STATE() 601 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 602 CAnimateCtrl::~CAnimateCtrl() 603 CArchive::~CArchive() 604 CAsyncMonikerFile::~CAsyncMonikerFile() 605 CAsyncSocket::~CAsyncSocket() 606 CBitmap::~CBitmap() 607 CBitmapButton::~CBitmapButton() 608 CBrush::~CBrush() 609 CButton::~CButton() 610 CByteArray::~CByteArray() 611 CCachedDataPathProperty::~CCachedDataPathProperty() 612 CCheckListBox::~CCheckListBox() 613 CClientDC::~CClientDC() 614 CCmdTarget::~CCmdTarget() 615 CColorButton::~CColorButton() 616 CComboBox::~CComboBox() 617 CCommandLineInfo::~CCommandLineInfo() 618 CCommonDialog::~CCommonDialog() 619 CConnectionPoint::~CConnectionPoint() 620 CControlBar::~CControlBar() 621 CCriticalSection::~CCriticalSection() 622 CCtrlView::~CCtrlView() 623 CDaoDatabase::~CDaoDatabase() 624 CDaoException::~CDaoException() 625 CDaoFieldInfo::~CDaoFieldInfo() 626 CDaoIndexFieldInfo::~CDaoIndexFieldInfo() 627 CDaoIndexInfo::~CDaoIndexInfo() 628 CDaoQueryDef::~CDaoQueryDef() 629 CDaoRecordset::~CDaoRecordset() 630 CDaoRecordView::~CDaoRecordView() 631 CDaoRelationFieldInfo::~CDaoRelationFieldInfo() 632 CDaoRelationInfo::~CDaoRelationInfo() 633 CDaoTableDef::~CDaoTableDef() 634 CDaoWorkspace::~CDaoWorkspace() 635 CDatabase::~CDatabase() 636 CDataPathProperty::~CDataPathProperty() 637 CDataSourceControl::~CDataSourceControl() 638 CDBException::~CDBException() 639 CDBVariant::~CDBVariant() 640 CDC::~CDC() 641 CDialog::~CDialog() 642 CDialogBar::~CDialogBar() 643 CDialogTemplate::~CDialogTemplate() 644 CDocItem::~CDocItem() 645 CDockBar::~CDockBar() 646 CDockContext::~CDockContext() 647 CDockState::~CDockState() 648 CDocManager::~CDocManager() 649 CDocObjectServer::~CDocObjectServer() 650 CDocObjectServerItem::~CDocObjectServerItem() 651 CDocTemplate::~CDocTemplate() 652 CDocument::~CDocument() 653 CDragListBox::~CDragListBox() 654 CDWordArray::~CDWordArray() 655 CDynLinkLibrary::~CDynLinkLibrary() 656 CEdit::~CEdit() 657 CEditView::~CEditView() 658 CEnumArray::~CEnumArray() 659 CEnumConnPoints::~CEnumConnPoints() 660 CEnumFormatEtc::~CEnumFormatEtc() 661 CEnumOleVerb::~CEnumOleVerb() 662 CEnumUnknown::~CEnumUnknown() 663 CEvent::~CEvent() 664 CException::~CException() 665 CFile::~CFile() 666 CFileDialog::~CFileDialog() 667 CFileException::~CFileException() 668 CFileFind::~CFileFind() 669 CFont::~CFont() 670 CFontComboBox::~CFontComboBox() 671 CFontDialog::~CFontDialog() 672 CFontHolder::~CFontHolder() 673 CFormView::~CFormView() 674 CFrameWnd::~CFrameWnd() 675 CFtpConnection::~CFtpConnection() 676 CFtpFileFind::~CFtpFileFind() 677 CGdiObject::~CGdiObject() 678 CGopherConnection::~CGopherConnection() 679 CGopherFile::~CGopherFile() 680 CGopherFileFind::~CGopherFileFind() 681 CGopherLocator::~CGopherLocator() 682 CHeaderCtrl::~CHeaderCtrl() 683 CHotKeyCtrl::~CHotKeyCtrl() 684 CHttpConnection::~CHttpConnection() 685 CHttpFile::~CHttpFile() 686 CImageList::~CImageList() 687 CInternetConnection::~CInternetConnection() 688 CInternetException::~CInternetException() 689 CInternetFile::~CInternetFile() 690 CInternetSession::~CInternetSession() 691 COleServerItem::CItemDataSource::~CItemDataSource() 692 CListBox::~CListBox() 693 CListCtrl::~CListCtrl() 694 CListView::~CListView() 695 CLongBinary::~CLongBinary() 696 CMapPtrToPtr::~CMapPtrToPtr() 697 CMapPtrToWord::~CMapPtrToWord() 698 CMapStringToOb::~CMapStringToOb() 699 CMapStringToPtr::~CMapStringToPtr() 700 CMapStringToString::~CMapStringToString() 701 CMapWordToOb::~CMapWordToOb() 702 CMapWordToPtr::~CMapWordToPtr() 703 CMemFile::~CMemFile() 704 CMenu::~CMenu() 705 CMetaFileDC::~CMetaFileDC() 706 CMiniFrameWnd::~CMiniFrameWnd() 707 CMirrorFile::~CMirrorFile() 708 CMonikerFile::~CMonikerFile() 709 CMultiDocTemplate::~CMultiDocTemplate() 710 CMultiLock::~CMultiLock() 711 CMutex::~CMutex() 712 CNoTrackObject::~CNoTrackObject() 713 CObArray::~CObArray() 714 CObject::~CObject() 715 CObList::~CObList() 716 CODBCFieldInfo::~CODBCFieldInfo() 717 COleBusyDialog::~COleBusyDialog() 718 COleChangeIconDialog::~COleChangeIconDialog() 719 COleChangeSourceDialog::~COleChangeSourceDialog() 720 COleClientItem::~COleClientItem() 721 COleCmdUI::~COleCmdUI() 722 COleCntrFrameWnd::~COleCntrFrameWnd() 723 COleControl::~COleControl() 724 COleControlContainer::~COleControlContainer() 725 COleControlLock::~COleControlLock() 726 COleControlSite::~COleControlSite() 727 COleConvertDialog::~COleConvertDialog() 728 COleDataObject::~COleDataObject() 729 COleDataSource::~COleDataSource() 730 COleDialog::~COleDialog() 731 COleDispatchDriver::~COleDispatchDriver() 732 COleDispatchException::~COleDispatchException() 733 COleDocIPFrameWnd::~COleDocIPFrameWnd() 734 COleDocument::~COleDocument() 735 COleDropSource::~COleDropSource() 736 COleDropTarget::~COleDropTarget() 737 COleFrameHook::~COleFrameHook() 738 COleInsertDialog::~COleInsertDialog() 739 COleIPFrameWnd::~COleIPFrameWnd() 740 COleLinkingDoc::~COleLinkingDoc() 741 COleLinksDialog::~COleLinksDialog() 742 COleMessageFilter::~COleMessageFilter() 743 COleObjectFactory::~COleObjectFactory() 744 COlePasteSpecialDialog::~COlePasteSpecialDialog() 745 COlePropertiesDialog::~COlePropertiesDialog() 746 COlePropertyPage::~COlePropertyPage() 747 COleResizeBar::~COleResizeBar() 748 COleServerDoc::~COleServerDoc() 749 COleServerItem::~COleServerItem() 750 COleStreamFile::~COleStreamFile() 751 COleTemplateServer::~COleTemplateServer() 752 COleUpdateDialog::~COleUpdateDialog() 753 COleVariant::~COleVariant() 754 CPageSetupDialog::~CPageSetupDialog() 755 CPaintDC::~CPaintDC() 756 CPalette::~CPalette() 757 CPen::~CPen() 758 CPictureHolder::~CPictureHolder() 759 CPicturePropPage::~CPicturePropPage() 760 CPreviewDC::~CPreviewDC() 761 CPreviewView::~CPreviewView() 762 CPrintDialog::~CPrintDialog() 763 CPrintInfo::~CPrintInfo() 764 CProcessLocalObject::~CProcessLocalObject() 765 CProgressCtrl::~CProgressCtrl() 766 CPropbagPropExchange::~CPropbagPropExchange() 767 CProperty::~CProperty() 768 CPropertyPage::~CPropertyPage() 769 CPropertySection::~CPropertySection() 770 CPropertySet::~CPropertySet() 771 CPropertySheet::~CPropertySheet() 772 CPtrArray::~CPtrArray() 773 CPtrList::~CPtrList() 774 CRecentFileList::~CRecentFileList() 775 CRecordset::~CRecordset() 776 CRecordView::~CRecordView() 777 CRectTracker::~CRectTracker() 778 CReObject::~CReObject() 779 CRgn::~CRgn() 780 CRichEditCntrItem::~CRichEditCntrItem() 781 CRichEditCtrl::~CRichEditCtrl() 782 CRichEditView::~CRichEditView() 783 CScrollBar::~CScrollBar() 784 CScrollView::~CScrollView() 785 CSemaphore::~CSemaphore() 786 CSharedFile::~CSharedFile() 787 CSimpleException::~CSimpleException() 788 CSingleDocTemplate::~CSingleDocTemplate() 789 CSizeComboBox::~CSizeComboBox() 790 CSliderCtrl::~CSliderCtrl() 791 CSocket::~CSocket() 792 CSocketFile::~CSocketFile() 793 CSpinButtonCtrl::~CSpinButtonCtrl() 794 CSplitterWnd::~CSplitterWnd() 795 CStatic::~CStatic() 796 CStatusBar::~CStatusBar() 797 CStatusBarCtrl::~CStatusBarCtrl() 798 CStdioFile::~CStdioFile() 799 CStockPropPage::~CStockPropPage() 800 CString::~CString() 801 CStringArray::~CStringArray() 802 CStringList::~CStringList() 803 CSyncObject::~CSyncObject() 804 CTabCtrl::~CTabCtrl() 805 CThreadLocalObject::~CThreadLocalObject() 806 CThreadSlotData::~CThreadSlotData() 807 CToolBar::~CToolBar() 808 CToolBarCtrl::~CToolBarCtrl() 809 CToolTipCtrl::~CToolTipCtrl() 810 CTreeCtrl::~CTreeCtrl() 811 CTreeView::~CTreeView() 812 CUIntArray::~CUIntArray() 813 CView::~CView() 814 CWaitCursor::~CWaitCursor() 815 CWinApp::~CWinApp() 816 CWindowDC::~CWindowDC() 817 CWinThread::~CWinThread() 818 CWnd::~CWnd() 819 CWordArray::~CWordArray() 820 tagFONTOBJECT::~tagFONTOBJECT() 821 COleControl::XEventConnPt::~XEventConnPt() 822 COleControl::XPropConnPt::~XPropConnPt() 823 void * operator new(unsigned int) 824 void * CNoTrackObject::operator new(unsigned int) 825 void operator delete(void *) 826 void CNoTrackObject::operator delete(void *) 827 void CObject::operator delete(void *) 828 _CIP & _CIP::operator=(IBindHost *) 829 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 830 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 831 COleCurrency const & COleCurrency::operator=(union tagCY) 832 COleDateTime const & COleDateTime::operator=(long const &) 833 COleDateTime const & COleDateTime::operator=(_FILETIME const &) 834 COleDateTime const & COleDateTime::operator=(_SYSTEMTIME const &) 835 COleDateTime const & COleDateTime::operator=(tagVARIANT const &) 836 COleDateTime const & COleDateTime::operator=(double) 837 COleDateTimeSpan const & COleDateTimeSpan::operator=(COleDateTimeSpan const &) 838 COleDateTimeSpan const & COleDateTimeSpan::operator=(double) 839 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 840 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 841 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 842 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 843 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 844 COleVariant const & COleVariant::operator=(tagVARIANT const &) 845 COleVariant const & COleVariant::operator=(COleVariant const &) 846 COleVariant const & COleVariant::operator=(CByteArray const &) 847 COleVariant const & COleVariant::operator=(CLongBinary const &) 848 COleVariant const & COleVariant::operator=(COleCurrency const &) 849 COleVariant const & COleVariant::operator=(COleDateTime const &) 850 COleVariant const & COleVariant::operator=(CString const &) 851 COleVariant const & COleVariant::operator=(unsigned char) 852 COleVariant const & COleVariant::operator=(short) 853 COleVariant const & COleVariant::operator=(long) 854 COleVariant const & COleVariant::operator=(float) 855 COleVariant const & COleVariant::operator=(double) 856 COleVariant const & COleVariant::operator=(tagVARIANT const *) 857 COleVariant const & COleVariant::operator=(char const * const) 858 CString const & CString::operator=(CString const &) 859 CString const & CString::operator=(char) 860 CString const & CString::operator=(char const *) 861 CString const & CString::operator=(unsigned short const *) 862 CArchive & operator>>(CArchive &,CByteArray * &) 863 CArchive & operator>>(CArchive &,CDocItem * &) 864 CArchive & operator>>(CArchive &,CDockState * &) 865 CArchive & operator>>(CArchive &,CDWordArray * &) 866 CArchive & operator>>(CArchive &,CMapStringToOb * &) 867 CArchive & operator>>(CArchive &,CMapStringToString * &) 868 CArchive & operator>>(CArchive &,CMapWordToOb * &) 869 CArchive & operator>>(CArchive &,CObArray * &) 870 CArchive & operator>>(CArchive &,CObList * &) 871 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 872 CArchive & operator>>(CArchive &,CStringArray * &) 873 CArchive & operator>>(CArchive &,CStringList * &) 874 CArchive & operator>>(CArchive &,CWordArray * &) 875 CArchive & operator>>(CArchive &,COleCurrency &) 876 CArchive & operator>>(CArchive &,COleDateTime &) 877 CArchive & operator>>(CArchive &,COleDateTimeSpan &) 878 CArchive & operator>>(CArchive &,COleVariant &) 879 CArchive & operator>>(CArchive &,CString &) 880 CArchive & operator>>(CArchive &,CTime &) 881 CArchive & operator>>(CArchive &,CTimeSpan &) 882 CArchive & operator<<(CArchive &,CString const &) 883 CArchive & operator<<(CArchive &,COleCurrency) 884 CArchive & operator<<(CArchive &,COleDateTime) 885 CArchive & operator<<(CArchive &,COleDateTimeSpan) 886 CArchive & operator<<(CArchive &,COleVariant) 887 CArchive & operator<<(CArchive &,CTime) 888 CArchive & operator<<(CArchive &,CTimeSpan) 889 CDumpContext & CDumpContext::operator<<(CObject const &) 890 CDumpContext & CDumpContext::operator<<(unsigned char) 891 CDumpContext & CDumpContext::operator<<(unsigned short) 892 CDumpContext & CDumpContext::operator<<(int) 893 CDumpContext & CDumpContext::operator<<(unsigned int) 894 CDumpContext & CDumpContext::operator<<(long) 895 CDumpContext & CDumpContext::operator<<(unsigned long) 896 CDumpContext & CDumpContext::operator<<(char const *) 897 CDumpContext & CDumpContext::operator<<(unsigned short const *) 898 CDumpContext & CDumpContext::operator<<(CObject const *) 899 CDumpContext & CDumpContext::operator<<(void const *) 900 int COleSafeArray::operator==(tagSAFEARRAY const &)const 901 int COleSafeArray::operator==(tagVARIANT const &)const 902 int COleSafeArray::operator==(COleSafeArray const &)const 903 int COleSafeArray::operator==(COleVariant const &)const 904 int COleSafeArray::operator==(tagSAFEARRAY const *)const 905 int COleSafeArray::operator==(tagVARIANT const *)const 906 int COleVariant::operator==(tagVARIANT const &)const 907 int CTime::operator==(CTime)const 908 int CTime::operator!=(CTime)const 909 void * & CMapPtrToPtr::operator[](void *) 910 unsigned short & CMapPtrToWord::operator[](void *) 911 CObject * & CMapStringToOb::operator[](char const *) 912 void * & CMapStringToPtr::operator[](char const *) 913 CString & CMapStringToString::operator[](char const *) 914 CObject * & CMapWordToOb::operator[](unsigned short) 915 void * & CMapWordToPtr::operator[](unsigned short) 916 COleCurrency COleCurrency::operator*(long)const 917 COleCurrency COleCurrency::operator-(COleCurrency const &)const 918 COleCurrency COleCurrency::operator-()const 919 COleDateTime COleDateTime::operator-(COleDateTimeSpan const &)const 920 COleDateTimeSpan COleDateTime::operator-(COleDateTime const &)const 921 COleDateTimeSpan COleDateTimeSpan::operator-(COleDateTimeSpan const &)const 922 CString operator+(CString const &,CString const &) 923 CString operator+(CString const &,char) 924 CString operator+(CString const &,char const *) 925 CString operator+(char,CString const &) 926 CString operator+(char const *,CString const &) 927 COleCurrency COleCurrency::operator+(COleCurrency const &)const 928 COleDateTime COleDateTime::operator+(COleDateTimeSpan const &)const 929 COleDateTimeSpan COleDateTimeSpan::operator+(COleDateTimeSpan const &)const 930 COleCurrency COleCurrency::operator/(long)const 931 int COleCurrency::operator<(COleCurrency const &)const 932 int COleDateTime::operator<(COleDateTime const &)const 933 int COleCurrency::operator<=(COleCurrency const &)const 934 int COleDateTime::operator<=(COleDateTime const &)const 935 int COleCurrency::operator>(COleCurrency const &)const 936 int COleDateTime::operator>(COleDateTime const &)const 937 int COleCurrency::operator>=(COleCurrency const &)const 938 int COleDateTime::operator>=(COleDateTime const &)const 939 CString const & CString::operator+=(CString const &) 940 CString const & CString::operator+=(char) 941 CString const & CString::operator+=(char const *) 942 int _AfxAbortProc(HDC__ *,int) 943 AFX_ADVAPI_CALL _afxAdvApi 944 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 945 AFX_COMDLG_CALL _afxComDlg 946 AFX_COMMCTRL_CALL _afxCommCtrl 947 int const _afxDBCS 948 AFX_ODBC_CALL _afxODBC 949 AFX_OLE_CALL _afxOLE 950 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 951 AFX_SHELL_CALL _afxShell 952 AFX_SOCK_CALL _afxSOCK 953 AFX_URLMON_CALL _afxUrlMon 954 AFX_WINSPOOL_CALL _afxWinSpool 955 int _mbstowcsz(unsigned short *,char const *,unsigned int) 956 int _wcstombsz(char *,unsigned short const *,unsigned int) 957 void CArchive::Abort() 958 void CFile::Abort() 959 void CInternetFile::Abort() 960 void CMemFile::Abort() 961 void CMirrorFile::Abort() 962 void COleStreamFile::Abort() 963 void CSocketFile::Abort() 964 void CStdioFile::Abort() 965 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 966 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 967 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 968 void COleSafeArray::AccessData(void * *) 969 void COleClientItem::Activate(long,CView *,tagMSG *) 970 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 971 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 972 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 973 void CDocObjectServer::ActivateDocObject() 974 void COleServerDoc::ActivateDocObject() 975 void CFrameWnd::ActivateFrame(int) 976 void CMDIChildWnd::ActivateFrame(int) 977 int COleServerDoc::ActivateInPlace() 978 void CSplitterWnd::ActivateNext(int) 979 void CWnd::ActivateTopParent() 980 void CRecentFileList::Add(char const *) 981 int CToolBarCtrl::AddBitmap(int,unsigned int) 982 int CToolBarCtrl::AddBitmap(int,CBitmap *) 983 void COleClientItem::AddCachedData(COleDataSource *) 984 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 985 void CDocManager::AddDocTemplate(CDocTemplate *) 986 void CWinApp::AddDocTemplate(CDocTemplate *) 987 void CDocTemplate::AddDocument(CDocument *) 988 void CMultiDocTemplate::AddDocument(CDocument *) 989 void CSingleDocTemplate::AddDocument(CDocument *) 990 int CFontComboBox::AddFont(tagLOGFONTA *,unsigned long) 991 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 992 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 993 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 994 void COleControl::AddFrameLevelUI() 995 void CFrameWnd::AddFrameWnd() 996 __POSITION * CObList::AddHead(CObject *) 997 void CObList::AddHead(CObList *) 998 __POSITION * CPtrList::AddHead(void *) 999 void CPtrList::AddHead(CPtrList *) 1000 void CSimpleList::AddHead(void *) 1001 __POSITION * CStringList::AddHead(char const *) 1002 void CStringList::AddHead(CStringList *) 1003 void COleDocument::AddItem(CDocItem *) 1004 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1005 void CDaoRecordset::AddNew() 1006 void CRecordset::AddNew() 1007 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1008 void CPropertySheet::AddPage(CPropertyPage *) 1009 void CPropertySection::AddProperty(CProperty *) 1010 void CPropertySet::AddProperty(_GUID,CProperty *) 1011 unsigned long CArchiveStream::AddRef() 1012 unsigned long CBlobProperty::AddRef() 1013 unsigned long CInnerUnknown::AddRef() 1014 unsigned long COleConnPtContainer::AddRef() 1015 unsigned long COleDispatchImpl::AddRef() 1016 unsigned long COleUILinkInfo::AddRef() 1017 unsigned long COleClientItem::XAdviseSink::AddRef() 1018 unsigned long COleControlSite::XAmbientProps::AddRef() 1019 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1020 unsigned long COleObjectFactory::XClassFactory::AddRef() 1021 unsigned long CConnectionPoint::XConnPt::AddRef() 1022 unsigned long COleControl::XDataObject::AddRef() 1023 unsigned long COleDataSource::XDataObject::AddRef() 1024 unsigned long COleServerDoc::XDataObject::AddRef() 1025 unsigned long COleServerItem::XDataObject::AddRef() 1026 unsigned long COleDropSource::XDropSource::AddRef() 1027 unsigned long COleDropTarget::XDropTarget::AddRef() 1028 unsigned long CEnumArray::XEnumVOID::AddRef() 1029 unsigned long COleControlSite::XEventSink::AddRef() 1030 unsigned long COleControl::XFontNotification::AddRef() 1031 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1032 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1033 unsigned long COleControl::XOleCache::AddRef() 1034 unsigned long COleClientItem::XOleClientSite::AddRef() 1035 unsigned long COleControlSite::XOleClientSite::AddRef() 1036 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1037 unsigned long COleControlContainer::XOleContainer::AddRef() 1038 unsigned long COleControl::XOleControl::AddRef() 1039 unsigned long COleControlSite::XOleControlSite::AddRef() 1040 unsigned long CDocObjectServer::XOleDocument::AddRef() 1041 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1042 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1043 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1044 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1045 unsigned long COleControl::XOleInPlaceObject::AddRef() 1046 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1047 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1048 unsigned long COleClientItem::XOleIPSite::AddRef() 1049 unsigned long COleControlSite::XOleIPSite::AddRef() 1050 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1051 unsigned long CDocObjectServer::XOleObject::AddRef() 1052 unsigned long COleControl::XOleObject::AddRef() 1053 unsigned long COleServerDoc::XOleObject::AddRef() 1054 unsigned long COleServerItem::XOleObject::AddRef() 1055 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1056 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1057 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1058 unsigned long COleControl::XPersistMemory::AddRef() 1059 unsigned long COleControl::XPersistPropertyBag::AddRef() 1060 unsigned long COleControl::XPersistStorage::AddRef() 1061 unsigned long COleServerDoc::XPersistStorage::AddRef() 1062 unsigned long COleControl::XPersistStreamInit::AddRef() 1063 unsigned long COleControl::XPointerInactive::AddRef() 1064 unsigned long CDocObjectServer::XPrint::AddRef() 1065 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1066 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1067 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1068 unsigned long COleControl::XProvideClassInfo::AddRef() 1069 unsigned long COleControl::XQuickActivate::AddRef() 1070 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1071 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1072 unsigned long COleControl::XViewObject::AddRef() 1073 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1074 int CHttpFile::AddRequestHeaders(CString &,unsigned long) 1075 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1076 CPropertySection * CPropertySet::AddSection(_GUID) 1077 void CPropertySet::AddSection(CPropertySection *) 1078 int CSizeComboBox::AddSize(int,long) 1079 void COlePasteSpecialDialog::AddStandardFormats(int) 1080 int CToolBarCtrl::AddString(unsigned int) 1081 __POSITION * CObList::AddTail(CObject *) 1082 void CObList::AddTail(CObList *) 1083 __POSITION * CPtrList::AddTail(void *) 1084 void CPtrList::AddTail(CPtrList *) 1085 __POSITION * CStringList::AddTail(char const *) 1086 void CStringList::AddTail(CStringList *) 1087 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1088 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1089 void CWinApp::AddToRecentFileList(char const *) 1090 void CDocument::AddView(CView *) 1091 void CMetaFileDC::AdjustCP(int) 1092 void CRichEditView::AdjustDialogPosition(CDialog *) 1093 void CRectTracker::AdjustRect(int,tagRECT *) 1094 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1095 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1096 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1097 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1098 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1099 unsigned short * AfxA2WHelper(unsigned short *,char const *,int) 1100 void AfxAbort() 1101 char * AfxAllocTaskAnsiString(char const *) 1102 char * AfxAllocTaskAnsiString(unsigned short const *) 1103 unsigned short * AfxAllocTaskWideString(char const *) 1104 unsigned short * AfxAllocTaskWideString(unsigned short const *) 1105 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1106 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1107 unsigned short * AfxBSTR2ABSTR(unsigned short *) 1108 void AfxBSTR2CString(CString *,unsigned short *) 1109 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1110 void AfxCancelModes(HWND__ *) 1111 int AfxComparePath(char const *,char const *) 1112 int AfxCompareValueByRef(void *,void *,int) 1113 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1114 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1115 void AfxCopyValueByRef(void *,void *,long *,int) 1116 void AfxCoreInitModule() 1117 HDC__ * AfxCreateDC(void *,void *) 1118 int AfxCriticalInit() 1119 int AfxCriticalNewHandler(unsigned int) 1120 void AfxCriticalTerm() 1121 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1122 void AfxDaoCheck(long,char const *,char const *,int,int,int) 1123 _DAODBEngine * AfxDaoGetEngine() 1124 void AfxDaoInit() 1125 void AfxDaoTerm() 1126 AUX_DATA afxData 1127 void AfxDeleteObject(void * *) 1128 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1129 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1130 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1131 long AfxDllCanUnloadNow() 1132 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1133 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1134 void AfxEnableControlContainer(COccManager *) 1135 void AfxEnableWin31Compatibility() 1136 void AfxEnableWin40Compatibility() 1137 int AfxEndDeferRegisterClass(long) 1138 void AfxEndThread(unsigned int,int) 1139 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1140 int AfxExtractSubString(CString &,char const *,int,char) 1141 void AfxFailMaxChars(CDataExchange *,int) 1142 void AfxFailRadio(CDataExchange *) 1143 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 1144 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1145 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1146 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1147 void AfxFormatString1(CString &,unsigned int,char const *) 1148 void AfxFormatString2(CString &,unsigned int,char const *,char const *) 1149 void AfxFormatStrings(CString &,unsigned int,char const * const *,int) 1150 void AfxFormatStrings(CString &,char const *,char const * const *,int) 1151 int AfxFreeLibrary(HINSTANCE__ *) 1152 int AfxFullPath(char *,char const *) 1153 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1154 AFX_MODULE_STATE * AfxGetAppModuleState() 1155 long AfxGetClassIDFromString(char const *,_GUID *) 1156 _AFX_CTL3D_STATE * AfxGetCtl3dState() 1157 _AFX_DAO_STATE * AfxGetDaoState() 1158 CString const & AfxGetEmptyString() 1159 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 1160 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1161 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1162 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1163 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 1164 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 1165 int AfxGetInProcServer(char const *,CString &) 1166 unsigned long AfxGetInternetHandleType(void *) 1167 void AfxGetModuleShortFileName(HINSTANCE__ *,CString &) 1168 AFX_MODULE_STATE * AfxGetModuleState() 1169 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1170 int (__cdecl*AfxGetNewHandler())(unsigned int) 1171 HWND__ * AfxGetParentOwner(HWND__ *) 1172 int AfxGetPropSheetFont(CString &,unsigned short &,int) 1173 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1174 void AfxGetRoot(char const *,CString &) 1175 CWinThread * AfxGetThread() 1176 _AFX_THREAD_STATE * AfxGetThreadState() 1177 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1178 void AfxGlobalFree(void *) 1179 int AfxHelpEnabled() 1180 void AfxHookWindowCreate(CWnd *) 1181 void AfxINetLoad(int (__stdcall**)(),char const *) 1182 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1183 void AfxInitLocalData(HINSTANCE__ *) 1184 void AfxInitThread() 1185 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1186 int AfxIsDescendant(HWND__ *,HWND__ *) 1187 int AfxIsValidAddress(void const *,unsigned int,int) 1188 int AfxIsValidString(char const *,int) 1189 int AfxIsValidString(unsigned short const *,int) 1190 HINSTANCE__ * AfxLoadDll(HINSTANCE__ * * volatile,char const *) 1191 HINSTANCE__ * AfxLoadDll(HINSTANCE__ * * volatile,char const *,int (__stdcall**)(),char const *) 1192 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1193 HINSTANCE__ * AfxLoadLibrary(char const *) 1194 int AfxLoadString(unsigned int,char *,unsigned int) 1195 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1196 void AfxLockGlobals(int) 1197 void AfxLockTempMaps() 1198 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1199 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1200 int AfxMessageBox(char const *,unsigned int,unsigned int) 1201 int AfxNewHandler(unsigned int) 1202 int AfxOleCanExitApp() 1203 int AfxOleGetUserCtrl() 1204 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1205 int AfxOleInit() 1206 void AfxOleLockApp() 1207 int AfxOleLockControl(_GUID const &) 1208 int AfxOleLockControl(char const *) 1209 void AfxOleOnReleaseAllObjects() 1210 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1211 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1212 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1213 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1214 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1215 int AfxOleRegisterServerClassCompat(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1216 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1217 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1218 void AfxOleSetUserCtrl(int) 1219 void AfxOleTerm(int) 1220 void AfxOleTermOrFreeLib(int,int) 1221 int AfxOleTypeMatchGuid(ITypeInfo *,tagTYPEDESC *,_GUID const &,unsigned long) 1222 void AfxOleUnlockAllControls() 1223 void AfxOleUnlockApp() 1224 int AfxOleUnlockControl(_GUID const &) 1225 int AfxOleUnlockControl(char const *) 1226 int AfxOleUnregisterClass(_GUID const &,char const *) 1227 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1228 int AfxParseURL(char const *,unsigned long &,CString &,CString &,unsigned short &) 1229 void AfxPostQuitMessage(int) 1230 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1231 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1232 int AfxRegisterClass(tagWNDCLASSA *) 1233 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1234 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1235 void AfxResetMsgCache() 1236 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1237 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned int) 1238 void AfxSafeArrayInit(COleSafeArray *) 1239 void AfxSetCurrentRecord(long *,long,short) 1240 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 1241 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1242 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 1243 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1244 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1245 void AfxSetRecordCount(long *,long,long,int,short) 1246 void AfxSetWindowText(HWND__ *,char const *) 1247 int AfxSocketInit(WSAData *) 1248 void AfxSocketTerm() 1249 void AfxStoreField(CRecordset &,unsigned int,void *) 1250 CString AfxStringFromCLSID(_GUID const &) 1251 unsigned short * AfxTaskStringA2W(char const *) 1252 char * AfxTaskStringW2A(unsigned short const *) 1253 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1254 void AfxTermLocalData(HINSTANCE__ *,int) 1255 void AfxTermThread(HINSTANCE__ *) 1256 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1257 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1258 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1259 void AfxThrowArchiveException(int,char const *) 1260 void AfxThrowDaoException(int,long) 1261 void AfxThrowDBException(short,CDatabase *,void *) 1262 void AfxThrowFileException(int,long,char const *) 1263 void AfxThrowInternetException(unsigned long,unsigned long) 1264 void AfxThrowLastCleanup() 1265 void AfxThrowMemoryException() 1266 void AfxThrowNotSupportedException() 1267 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1268 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1269 void AfxThrowOleException(long) 1270 void AfxThrowResourceException() 1271 void AfxThrowUserException() 1564 void AfxTimeToFileTime(CTime const &,_FILETIME *) 1565 void AfxTlsAddRef() 1566 void AfxTlsRelease() 1567 void AfxTryCleanup() 1568 int AfxUnhookWindowCreate() 1569 void AfxUnlockGlobals(int) 1570 int AfxUnlockTempMaps(int) 1571 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1572 void AfxVariantInit(tagVARIANT *) 1573 int AfxVerifyLicFile(HINSTANCE__ *,char const *,unsigned short const *,unsigned int) 1574 char * AfxW2AHelper(char *,unsigned short const *,int) 1575 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1576 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1577 void AfxWinTerm() 1578 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1579 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1580 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1581 unsigned char * CMemFile::Alloc(unsigned long) 1582 unsigned char * CSharedFile::Alloc(unsigned long) 1583 void CRecordset::AllocAndCacheFieldInfo() 1584 void CString::AllocBeforeWrite(int) 1585 void CString::AllocBuffer(int) 1586 void CDaoRecordset::AllocCache() 1587 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 1588 void CDatabase::AllocConnect(unsigned long) 1589 void CString::AllocCopy(CString &,int,int,int)const 1590 void COleSafeArray::AllocData() 1591 void CDaoRecordset::AllocDatabase() 1592 void CRecordset::AllocDataCache() 1593 void COleSafeArray::AllocDescriptor(unsigned long) 1594 int CControlBar::AllocElements(int,int) 1595 int CStatusBar::AllocElements(int,int) 1596 int CRecordset::AllocHstmt() 1597 void AllocLongBinary(CLongBinary &,unsigned long) 1598 void CRecordset::AllocRowset() 1599 int CThreadSlotData::AllocSlot() 1600 void CRecordset::AllocStatusArrays() 1601 unsigned short * CString::AllocSysString()const 1602 void * CProperty::AllocValue(unsigned long) 1603 short COleControl::AmbientAppearance() 1604 unsigned long COleControl::AmbientBackColor() 1605 CString COleControl::AmbientDisplayName() 1606 IFontDisp * COleControl::AmbientFont() 1607 unsigned long COleControl::AmbientForeColor() 1608 unsigned long COleControl::AmbientLocaleID() 1609 CString COleControl::AmbientScaleUnits() 1610 int COleControl::AmbientShowGrabHandles() 1611 int COleControl::AmbientShowHatching() 1612 short COleControl::AmbientTextAlign() 1613 int COleControl::AmbientUIDead() 1614 int COleControl::AmbientUserMode() 1615 int CByteArray::Append(CByteArray const &) 1616 void CDaoQueryDef::Append() 1617 void CDaoTableDef::Append() 1618 void CDaoWorkspace::Append() 1619 int CDWordArray::Append(CDWordArray const &) 1620 int CObArray::Append(CObArray const &) 1621 int CPtrArray::Append(CPtrArray const &) 1622 int CStringArray::Append(CStringArray const &) 1623 int CUIntArray::Append(CUIntArray const &) 1624 int CWordArray::Append(CWordArray const &) 1625 void CRecordset::AppendFilterAndSortSQL() 1626 unsigned int CRecordset::AppendNames(CString *,char const *) 1627 unsigned int CRecordset::AppendNamesValues(void *,CString *,char const *) 1628 void CDaoFieldExchange::AppendParamType(CString &,unsigned long) 1629 unsigned int CRecordset::AppendValues(void *,CString *,char const *) 1630 long COlePropertyPage::XPropertyPage::Apply() 1631 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1632 int COleDocument::ApplyPrintDevice(tagPDA const *) 1633 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1634 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1635 void CObject::AssertValid()const 1636 void CString::AssignCopy(int,char const *) 1637 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1638 int CAsyncSocket::AsyncSelect(long) 1639 int CAsyncSocket::Attach(unsigned int,long) 1640 int CDC::Attach(HDC__ *) 1641 int CGdiObject::Attach(void *) 1642 int CImageList::Attach(_IMAGELIST *) 1643 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1644 int CMenu::Attach(HMENU__ *) 1645 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1646 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1647 void COleDataObject::Attach(IDataObject *,int) 1648 void COleSafeArray::Attach(tagVARIANT &) 1649 void COleStreamFile::Attach(IStream *) 1650 void COleVariant::Attach(tagVARIANT &) 1651 int CWnd::Attach(HWND__ *) 1652 int COleDataObject::AttachClipboard() 1653 void CWnd::AttachControlSite(CHandleMap *) 1654 void CWnd::AttachControlSite(CWnd *) 1655 void COleClientItem::AttachDataObject(COleDataObject &)const 1656 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1657 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1658 CPrintDialog * CPrintDialog::AttachOnSetup() 1659 void COleControlSite::AttachWindow() 1660 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1661 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1662 void COleMessageFilter::BeginBusyState() 1663 int CDragListBox::BeginDrag(CPoint) 1664 void COleDataObject::BeginEnumFormats() 1665 void CFrameWnd::BeginModalState() 1666 void CWnd::BeginModalState() 1667 void CDaoWorkspace::BeginTrans() 1668 int CDatabase::BeginTrans() 1669 void CCmdTarget::BeginWaitCursor() 1670 int CAsyncSocket::Bind(unsigned int,char const *) 1671 void CDataSourceControl::BindColumns() 1672 void COccManager::BindControls(CWnd *) 1673 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1674 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1675 void CDaoRecordset::BindFields() 1676 void CRecordset::BindFieldsForUpdate() 1677 unsigned int CRecordset::BindFieldsToColumns() 1678 void CDaoRecordset::BindParameters() 1679 void CDatabase::BindParameters(void *) 1680 unsigned int CRecordset::BindParams(void *) 1681 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1682 void CDataSourceControl::BindProp(COleControlSite *,int) 1683 void COleControlSite::BindProperty(long,CWnd *) 1684 void CWnd::BindProperty(long,CWnd *) 1685 void COleControl::BoundPropertyChanged(long) 1686 int COleControl::BoundPropertyRequestEdit(long) 1687 void CFrameWnd::BringToTop(int) 1688 void CDBException::BuildErrorString(CDatabase *,void *,int) 1689 void CDaoRecordset::BuildParameterList() 1690 void CPropertySheet::BuildPropPageArray() 1691 void CDaoRecordset::BuildSelectList() 1692 void CRecordset::BuildSelectSQL() 1693 int COleControl::BuildSharedMenu() 1694 int COleDocIPFrameWnd::BuildSharedMenu() 1695 int COleIPFrameWnd::BuildSharedMenu() 1696 void CDaoRecordset::BuildSQL() 1697 void CRecordset::BuildSQL(char const *) 1698 void CRecordset::BuildUpdateSQL() 1699 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1700 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1701 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1702 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1703 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1704 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1705 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1706 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1707 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1708 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1709 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1710 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1711 CSize CControlBar::CalcFixedLayout(int,int) 1712 CSize CDialogBar::CalcFixedLayout(int,int) 1713 CSize CDockBar::CalcFixedLayout(int,int) 1714 CSize CStatusBar::CalcFixedLayout(int,int) 1715 CSize CToolBar::CalcFixedLayout(int,int) 1716 void CControlBar::CalcInsideRect(CRect &,int)const 1717 void CStatusBar::CalcInsideRect(CRect &,int)const 1718 CSize CToolBar::CalcLayout(unsigned long,int) 1719 int CCheckListBox::CalcMinimumItemHeight() 1720 CSize CPreviewView::CalcPageDisplaySize() 1721 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1722 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1723 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1724 void CMiniFrameWnd::CalcWindowRect(tagRECT *,unsigned int) 1725 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1726 void CView::CalcWindowRect(tagRECT *,unsigned int) 1727 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1728 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1729 int COleClientItem::CanActivate() 1730 int CRichEditCntrItem::CanActivate() 1731 int CSplitterWnd::CanActivateNext(int) 1732 int CDaoRecordset::CanAppend()const 1733 int CDaoRecordset::CanBookmark() 1734 int CRecordset::CanBookmark()const 1735 void CDatabase::Cancel() 1736 void CRecordset::Cancel() 1737 void CSocket::CancelBlockingCall() 1738 void CDragListBox::CancelDrag(CPoint) 1739 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1740 long COleUILinkInfo::CancelLink(unsigned long) 1741 void CDockContext::CancelLoop() 1742 void CPropertyPage::CancelToClose() 1743 void CWnd::CancelToolTips(int) 1744 void CDaoRecordset::CancelUpdate() 1745 void CRecordset::CancelUpdate() 1746 int CDocument::CanCloseFrame(CFrameWnd *) 1747 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1748 int COleClientItem::CanCreateFromData(COleDataObject const *) 1749 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1750 unsigned long CDockContext::CanDock() 1751 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1752 int CFrameWnd::CanEnterHelpMode() 1753 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1754 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1755 int COleClientItem::CanPaste() 1756 int CRichEditCtrl::CanPaste(unsigned int)const 1757 int CRichEditView::CanPaste()const 1758 int COleClientItem::CanPasteLink() 1759 int CDaoRecordset::CanRestart() 1760 int CDaoRecordset::CanScroll()const 1761 int CDaoDatabase::CanTransact() 1762 int CDaoRecordset::CanTransact() 1763 int CDaoDatabase::CanUpdate() 1764 int CDaoQueryDef::CanUpdate() 1765 int CDaoRecordset::CanUpdate()const 1766 int CDaoTableDef::CanUpdate() 1767 void CScrollView::CenterOnPoint(CPoint) 1768 void CWnd::CenterWindow(CWnd *) 1769 void CPicturePropPage::ChangePicture(IPicture *) 1770 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1771 int CListBox::CharToItem(unsigned int,unsigned int) 1772 void CString::CharToOemA() 1773 int CDatabase::Check(short)const 1774 int CRecordset::Check(short)const 1775 int CDialog::CheckAutoCenter() 1776 int CWnd::CheckAutoCenter() 1777 void CArchive::CheckCount() 1778 void COleControlContainer::CheckDlgButton(int,unsigned int) 1779 void CWnd::CheckDlgButton(int,unsigned int) 1780 int CCheckListBox::CheckFromPoint(CPoint,int &) 1781 void COleClientItem::CheckGeneral(long) 1782 void COleControlContainer::CheckRadioButton(int,int,int) 1783 void CWnd::CheckRadioButton(int,int,int) 1784 void COleDateTime::CheckRange() 1785 void COleDateTimeSpan::CheckRange() 1786 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1787 void CRecordset::CheckRowsetError(short) 1788 CRuntimeconst CAnimateCtrl::classCAnimateCtrl 1789 CRuntimeconst CArchiveException::classCArchiveException 1790 CRuntimeconst CAsyncMonikerFile::classCAsyncMonikerFile 1791 CRuntimeconst CAsyncSocket::classCAsyncSocket 1792 CRuntimeconst CBitmap::classCBitmap 1793 CRuntimeconst CBitmapButton::classCBitmapButton 1794 CRuntimeconst CBrush::classCBrush 1795 CRuntimeconst CButton::classCButton 1796 CRuntimeCByteArray::classCByteArray 1797 CRuntimeconst CCheckListBox::classCCheckListBox 1798 CRuntimeconst CClientDC::classCClientDC 1799 CRuntimeconst CCmdTarget::classCCmdTarget 1800 CRuntimeconst CColorDialog::classCColorDialog 1801 CRuntimeconst CColorPropPage::classCColorPropPage 1802 CRuntimeconst CComboBox::classCComboBox 1803 CRuntimeconst CControlBar::classCControlBar 1804 CRuntimeconst CCriticalSection::classCCriticalSection 1805 CRuntimeconst CCtrlView::classCCtrlView 1806 CRuntimeconst CDaoDatabase::classCDaoDatabase 1807 CRuntimeconst CDaoException::classCDaoException 1808 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 1809 CRuntimeconst CDaoRecordset::classCDaoRecordset 1810 CRuntimeconst CDaoRecordView::classCDaoRecordView 1811 CRuntimeconst CDaoTableDef::classCDaoTableDef 1812 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 1813 CRuntimeconst CDatabase::classCDatabase 1814 CRuntimeconst CDBException::classCDBException 1815 CRuntimeconst CDC::classCDC 1816 CRuntimeconst CDialog::classCDialog 1817 CRuntimeconst CDialogBar::classCDialogBar 1818 CRuntimeCDocItem::classCDocItem 1819 CRuntimeconst CDockBar::classCDockBar 1820 CRuntimeCDockState::classCDockState 1821 CRuntimeconst CDocManager::classCDocManager 1822 CRuntimeconst CDocObjectServer::classCDocObjectServer 1823 CRuntimeconst CDocObjectServerItem::classCDocObjectServerItem 1824 CRuntimeconst CDocTemplate::classCDocTemplate 1825 CRuntimeconst CDocument::classCDocument 1826 CRuntimeconst CDragListBox::classCDragListBox 1827 CRuntimeCDWordArray::classCDWordArray 1828 CRuntimeconst CDynLinkLibrary::classCDynLinkLibrary 1829 CRuntimeconst CEdit::classCEdit 1830 CRuntimeconst CEditView::classCEditView 1831 CRuntimeconst CEvent::classCEvent 1832 CRuntimeconst CException::classCException 1833 CRuntimeconst CFile::classCFile 1834 CRuntimeconst CFileDialog::classCFileDialog 1835 CRuntimeconst CFileException::classCFileException 1836 CRuntimeconst CFileFind::classCFileFind 1837 CRuntimeconst CFindReplaceDialog::classCFindReplaceDialog 1838 CRuntimeconst CFont::classCFont 1839 CRuntimeconst CFontDialog::classCFontDialog 1840 CRuntimeconst CFontPropPage::classCFontPropPage 1841 CRuntimeconst CFormView::classCFormView 1842 CRuntimeconst CFrameWnd::classCFrameWnd 1843 CRuntimeconst CGdiObject::classCGdiObject 1844 CRuntimeconst CHeaderCtrl::classCHeaderCtrl 1845 CRuntimeconst CHotKeyCtrl::classCHotKeyCtrl 1846 CRuntimeconst CImageList::classCImageList 1847 CRuntimeconst CListBox::classCListBox 1848 CRuntimeconst CListCtrl::classCListCtrl 1849 CRuntimeconst CListView::classCListView 1850 CRuntimeconst CLongBinary::classCLongBinary 1851 CRuntimeconst CMapPtrToPtr::classCMapPtrToPtr 1852 CRuntimeconst CMapPtrToWord::classCMapPtrToWord 1853 CRuntimeCMapStringToOb::classCMapStringToOb 1854 CRuntimeconst CMapStringToPtr::classCMapStringToPtr 1855 CRuntimeCMapStringToString::classCMapStringToString 1856 CRuntimeCMapWordToOb::classCMapWordToOb 1857 CRuntimeconst CMapWordToPtr::classCMapWordToPtr 1858 CRuntimeconst CMDIChildWnd::classCMDIChildWnd 1859 CRuntimeconst CMDIFrameWnd::classCMDIFrameWnd 1860 CRuntimeconst CMemFile::classCMemFile 1861 CRuntimeconst CMemoryException::classCMemoryException 1862 CRuntimeconst CMenu::classCMenu 1863 CRuntimeconst CMetaFileDC::classCMetaFileDC 1864 CRuntimeconst CMiniDockFrameWnd::classCMiniDockFrameWnd 1865 CRuntimeconst CMiniFrameWnd::classCMiniFrameWnd 1866 CRuntimeconst CMonikerFile::classCMonikerFile 1867 CRuntimeconst CMultiDocTemplate::classCMultiDocTemplate 1868 CRuntimeconst CMutex::classCMutex 1869 CRuntimeconst CNotSupportedException::classCNotSupportedException 1870 CRuntimeCObArray::classCObArray 1871 CRuntimeconst CObject::classCObject 1872 CRuntimeCObList::classCObList 1873 CRuntimeconst COleBusyDialog::classCOleBusyDialog 1874 CRuntimeconst COleChangeIconDialog::classCOleChangeIconDialog 1875 CRuntimeconst COleChangeSourceDialog::classCOleChangeSourceDialog 1876 CRuntimeconst COleClientItem::classCOleClientItem 1877 CRuntimeconst COleControl::classCOleControl 1878 CRuntimeconst COleControlModule::classCOleControlModule 1879 CRuntimeconst COleConvertDialog::classCOleConvertDialog 1880 CRuntimeconst COleDialog::classCOleDialog 1881 CRuntimeconst COleDispatchException::classCOleDispatchException 1882 CRuntimeconst COleDocIPFrameWnd::classCOleDocIPFrameWnd 1883 CRuntimeconst COleDocument::classCOleDocument 1884 CRuntimeconst COleException::classCOleException 1885 CRuntimeconst COleInsertDialog::classCOleInsertDialog 1886 CRuntimeconst COleIPFrameWnd::classCOleIPFrameWnd 1887 CRuntimeconst COleLinkingDoc::classCOleLinkingDoc 1888 CRuntimeconst COleLinksDialog::classCOleLinksDialog 1889 CRuntimeconst COleObjectFactory::classCOleObjectFactory 1890 CRuntimeconst COlePasteSpecialDialog::classCOlePasteSpecialDialog 1891 CRuntimeconst COlePropertiesDialog::classCOlePropertiesDialog 1892 CRuntimeconst COlePropertyPage::classCOlePropertyPage 1893 CRuntimeconst COleResizeBar::classCOleResizeBar 1894 CRuntimeconst COleServerDoc::classCOleServerDoc 1895 CRuntimeconst COleServerItem::classCOleServerItem 1896 CRuntimeconst COleStreamFile::classCOleStreamFile 1897 CRuntimeconst COleUpdateDialog::classCOleUpdateDialog 1898 CRuntimeconst CPageSetupDialog::classCPageSetupDialog 1899 CRuntimeconst CPaintDC::classCPaintDC 1900 CRuntimeconst CPalette::classCPalette 1901 CRuntimeconst CPen::classCPen 1902 CRuntimeconst CPicturePropPage::classCPicturePropPage 1903 CRuntimeconst CPreviewDC::classCPreviewDC 1904 CRuntimeconst CPreviewView::classCPreviewView 1905 CRuntimeconst CPrintDialog::classCPrintDialog 1906 CRuntimeconst CProgressCtrl::classCProgressCtrl 1907 CRuntimeconst CPropertyPage::classCPropertyPage 1908 CRuntimeconst CPropertySheet::classCPropertySheet 1909 CRuntimeconst CPtrArray::classCPtrArray 1910 CRuntimeconst CPtrList::classCPtrList 1911 CRuntimeconst CRecordset::classCRecordset 1912 CRuntimeconst CRecordView::classCRecordView 1913 CRuntimeconst CResourceException::classCResourceException 1914 CRuntimeconst CRgn::classCRgn 1915 CRuntimeCRichEditCntrItem::classCRichEditCntrItem 1916 CRuntimeconst CRichEditCtrl::classCRichEditCtrl 1917 CRuntimeconst CRichEditDoc::classCRichEditDoc 1918 CRuntimeconst CRichEditView::classCRichEditView 1919 CRuntimeconst CScrollBar::classCScrollBar 1920 CRuntimeconst CScrollView::classCScrollView 1921 CRuntimeconst CSemaphore::classCSemaphore 1922 CRuntimeconst CSharedFile::classCSharedFile 1923 CRuntimeconst CSingleDocTemplate::classCSingleDocTemplate 1924 CRuntimeconst CSliderCtrl::classCSliderCtrl 1925 CRuntimeconst CSocket::classCSocket 1926 CRuntimeconst CSocketFile::classCSocketFile 1927 CRuntimeconst CSpinButtonCtrl::classCSpinButtonCtrl 1928 CRuntimeconst CSplitterWnd::classCSplitterWnd 1929 CRuntimeconst CStatic::classCStatic 1930 CRuntimeconst CStatusBar::classCStatusBar 1931 CRuntimeconst CStatusBarCtrl::classCStatusBarCtrl 1932 CRuntimeconst CStdioFile::classCStdioFile 1933 CRuntimeconst CStockPropPage::classCStockPropPage 1934 CRuntimeCStringArray::classCStringArray 1935 CRuntimeCStringList::classCStringList 1936 CRuntimeconst CSyncObject::classCSyncObject 1937 CRuntimeconst CTabCtrl::classCTabCtrl 1938 CRuntimeconst CToolBar::classCToolBar 1939 CRuntimeconst CToolBarCtrl::classCToolBarCtrl 1940 CRuntimeconst CToolTipCtrl::classCToolTipCtrl 1941 CRuntimeconst CTreeCtrl::classCTreeCtrl 1942 CRuntimeconst CTreeView::classCTreeView 1943 CRuntimeconst CUIntArray::classCUIntArray 1944 CRuntimeconst CUserException::classCUserException 1945 CRuntimeconst CView::classCView 1946 CRuntimeconst CWinApp::classCWinApp 1947 CRuntimeconst CWindowDC::classCWindowDC 1948 CRuntimeconst CWinThread::classCWinThread 1949 CRuntimeconst CWnd::classCWnd 1950 CRuntimeCWordArray::classCWordArray 1951 void CPropertyPage::Cleanup() 1952 void COlePropertyPage::CleanupObjectArray() 1953 void CDBVariant::Clear() 1954 void CDockState::Clear() 1955 void COleVariant::Clear() 1956 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 1957 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1958 void CRecordset::ClearFieldStatus() 1959 void CDaoRecordset::ClearFieldStatusFlags() 1960 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 1961 void CRecordset::ClearNullFieldStatus(unsigned long) 1962 void CRecordset::ClearNullParamStatus(unsigned long) 1963 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1964 int COleControl::ClipCaretRect(tagRECT *) 1965 void CPreviewDC::ClipToPage() 1966 long CArchiveStream::Clone(IStream * *) 1967 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1968 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1969 void CArchive::Close() 1970 void CAsyncMonikerFile::Close() 1971 void CAsyncSocket::Close() 1972 void CCachedDataPathProperty::Close() 1973 void CDaoDatabase::Close() 1974 void CDaoQueryDef::Close() 1975 void CDaoRecordset::Close() 1976 void CDaoTableDef::Close() 1977 void CDaoWorkspace::Close() 1978 void CDatabase::Close() 1979 void CFile::Close() 1980 void CFileFind::Close() 1981 void CFtpConnection::Close() 1982 void CGopherConnection::Close() 1983 void CGopherFile::Close() 1984 void CHttpConnection::Close() 1985 void CHttpFile::Close() 1986 void CInternetConnection::Close() 1987 void CInternetFile::Close() 1988 void CInternetSession::Close() 1989 void CMemFile::Close() 1990 void CMirrorFile::Close() 1991 void CMonikerFile::Close() 1992 void COleClientItem::Close(enum tagOLECLOSE) 1993 void COleStreamFile::Close() 1994 void CRecordset::Close() 1995 void CSocket::Close() 1996 void CSocketFile::Close() 1997 void CStdioFile::Close() 1998 long CDocObjectServer::XOleObject::Close(unsigned long) 1999 long COleControl::XOleObject::Close(unsigned long) 2000 long COleServerDoc::XOleObject::Close(unsigned long) 2001 long COleServerItem::XOleObject::Close(unsigned long) 2002 void CDocManager::CloseAllDocuments(int) 2003 void CDocTemplate::CloseAllDocuments(int) 2004 void CWinApp::CloseAllDocuments(int) 2005 void CFileFind::CloseContext() 2006 void CFtpFileFind::CloseContext() 2007 void CGopherFileFind::CloseContext() 2008 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2009 unsigned long CColorButton::colGetFaceColor() 2010 AFX_OLECMDMAP const CCmdTarget::commandMap 2011 int CStatusBar::CommandToIndex(unsigned int)const 2012 int CToolBar::CommandToIndex(unsigned int)const 2013 long CArchiveStream::Commit(unsigned long) 2014 void COleClientItem::CommitItem(int) 2015 void COleDocument::CommitItems(int) 2016 void CDaoWorkspace::CommitTrans() 2017 int CDatabase::CommitTrans() 2018 void CPropertyPage::CommonConstruct(char const *,unsigned int) 2019 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2020 void CWinThread::CommonConstruct() 2021 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 2022 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 2023 int CComboBox::CompareItem(tagCOMPAREITEM*) 2024 int CListBox::CompareItem(tagCOMPAREITEM*) 2025 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 2026 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 2027 void CString::ConcatCopy(int,char const *,int,char const *) 2028 void CString::ConcatInPlace(int,char const *) 2029 int CAsyncSocket::Connect(char const *,unsigned int) 2030 int CDatabase::Connect(unsigned long) 2031 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2032 int CSocket::ConnectHelper(sockaddr const *,int) 2033 AFX_CONNECTIONMAP const CCmdTarget::connectionMap 2034 AFX_CONNECTIONMAP const COleControl::connectionMap 2035 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2036 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2037 void COleServerDoc::ConnectView(CWnd *,CView *) 2038 void CPropertyPage::Construct(unsigned int,unsigned int) 2039 void CPropertyPage::Construct(char const *,unsigned int) 2040 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2041 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 2042 void CRectTracker::Construct() 2043 void ConstructElements(COleVariant *,int) 2044 void ConstructElements(CString *,int) 2045 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2046 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2047 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2048 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2049 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2050 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2051 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2052 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2053 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2054 int CPropertySheet::ContinueModal() 2055 int CWnd::ContinueModal() 2056 void COleControl::ControlInfoChanged() 2057 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2058 int COleClientItem::ConvertTo(_GUID const &) 2059 int CRichEditCntrItem::ConvertTo(_GUID const &) 2060 void CByteArray::Copy(CByteArray const &) 2061 void CDWordArray::Copy(CDWordArray const &) 2062 void CObArray::Copy(CObArray const &) 2063 void COleSafeArray::Copy(tagSAFEARRAY * *) 2064 void CPtrArray::Copy(CPtrArray const &) 2065 void CStringArray::Copy(CStringArray const &) 2066 void CUIntArray::Copy(CUIntArray const &) 2067 void CWordArray::Copy(CWordArray const &) 2068 void CString::CopyBeforeWrite() 2069 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2070 void CopyElements(COleVariant *,COleVariant const *,int) 2071 void CopyElements(CString *,CString const *,int) 2072 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2073 void COleClientItem::CopyToClipboard(int) 2074 void COleServerItem::CopyToClipboard(int) 2075 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 2076 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2077 int CAsyncSocket::Create(unsigned int,int,long,char const *) 2078 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2079 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2080 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2081 int CControlFrameWnd::Create(char const *) 2082 void CDaoDatabase::Create(char const *,char const *,int) 2083 void CDaoQueryDef::Create(char const *,char const *) 2084 void CDaoTableDef::Create(char const *,long,char const *,char const *) 2085 void CDaoWorkspace::Create(char const *,char const *,char const *) 2086 int CDialog::Create(char const *,CWnd *) 2087 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 2088 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2089 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2090 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 2091 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2092 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 2093 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2094 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2095 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2096 int CImageList::Create(int,int,unsigned int,int,int) 2097 int CImageList::Create(unsigned int,int,int,unsigned long) 2098 int CImageList::Create(char const *,int,int,unsigned long) 2099 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2100 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2101 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2102 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2103 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2104 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2105 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2106 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2107 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2108 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2109 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2110 int CReflectorWnd::Create(CRect const &,HWND__ *) 2111 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2112 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2113 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2114 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2115 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2116 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2117 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2118 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2119 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2120 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2121 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2122 int CToolTipCtrl::Create(CWnd *,unsigned long) 2123 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2124 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2125 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2126 IBindHost * CMonikerFile::CreateBindHost() 2127 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 2128 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2129 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2130 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2131 void CConnectionPoint::CreateConnectionArray() 2132 COleControlContainer * COccManager::CreateContainer(CWnd *) 2133 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,unsigned short *,COleControlSite * *) 2134 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,unsigned short *) 2135 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,unsigned short *) 2136 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,unsigned short *) 2137 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2138 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2139 int CFtpConnection::CreateDirectoryA(char const *) 2140 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2141 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 2142 int CWnd::CreateDlg(char const *,CWnd *) 2143 HWND__ * COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long) 2144 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2145 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 2146 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 2147 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2148 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2149 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2150 int CPictureHolder::CreateEmpty() 2151 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2152 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2153 void CDaoTableDef::CreateField(CDaoFieldInfo &) 2154 void CDaoTableDef::CreateField(char const *,short,long,long) 2155 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2156 CControlFrameWnd * COleControl::CreateFrameWindow() 2157 int CPictureHolder::CreateFromBitmap(unsigned int) 2158 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2159 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2160 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2161 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2162 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2163 int CPictureHolder::CreateFromIcon(unsigned int) 2164 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2165 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2166 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 2167 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2168 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2169 int CDialog::CreateIndirect(void *,CWnd *) 2170 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2171 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2172 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2173 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2174 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,unsigned short *,void * *) 2175 int COleInsertDialog::CreateItem(COleClientItem *) 2176 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2177 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2178 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2179 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2180 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 2181 CGopherLocator CGopherConnection::CreateLocator(char const *) 2182 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 2183 int COleStreamFile::CreateMemoryStream(CFileException *) 2184 CDocument * CDocTemplate::CreateNewDocument() 2185 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2186 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2187 CNoTrackObject * CProcessLocal<_AFX_PROPPAGEFONTINFO>::CreateObject() 2188 CNoTrackObject * CProcessLocal<_AFX_BASE_MODULE_STATE>::CreateObject() 2189 CNoTrackObject * CProcessLocal<_AFX_CHECKLIST_STATE>::CreateObject() 2190 CNoTrackObject * CProcessLocal<_AFX_COLOR_STATE>::CreateObject() 2191 CNoTrackObject * CProcessLocal<_AFX_CTL3D_STATE>::CreateObject() 2192 CNoTrackObject * CProcessLocal<_AFX_DB_STATE>::CreateObject() 2193 CNoTrackObject * CProcessLocal<_AFX_EDIT_STATE>::CreateObject() 2194 CNoTrackObject * CProcessLocal<_AFX_EXTDLL_STATE>::CreateObject() 2195 CNoTrackObject * CProcessLocal<_AFX_MAIL_STATE>::CreateObject() 2196 CNoTrackObject * CProcessLocal<_AFX_OLE_STATE>::CreateObject() 2197 CNoTrackObject * CProcessLocal<_AFX_RICHEDIT_STATE>::CreateObject() 2198 CNoTrackObject * CProcessLocal<_AFX_SOCK_STATE>::CreateObject() 2199 CNoTrackObject * CProcessLocal<_AFX_WIN_STATE>::CreateObject() 2200 CNoTrackObject * CProcessLocal::CreateObject() 2201 CNoTrackObject * CThreadLocal<_AFX_CTL3D_THREAD>::CreateObject() 2202 CNoTrackObject * CThreadLocal<_AFX_THREAD_STATE>::CreateObject() 2203 CNoTrackObject * CThreadLocal<_AFXCTL_AMBIENT_CACHE>::CreateObject() 2204 CNoTrackObject * CThreadLocal::CreateObject() 2205 CObject * CByteArray::CreateObject() 2206 CObject * CColorPropPage::CreateObject() 2207 CObject * CDC::CreateObject() 2208 CObject * CDocItem::CreateObject() 2209 CObject * CDockState::CreateObject() 2210 CObject * CDWordArray::CreateObject() 2211 CObject * CEditView::CreateObject() 2212 CObject * CFontPropPage::CreateObject() 2213 CObject * CFrameWnd::CreateObject() 2214 CObject * CGdiObject::CreateObject() 2215 CObject * CImageList::CreateObject() 2216 CObject * CListView::CreateObject() 2217 CObject * CMapStringToOb::CreateObject() 2218 CObject * CMapStringToString::CreateObject() 2219 CObject * CMapWordToOb::CreateObject() 2220 CObject * CMDIChildWnd::CreateObject() 2221 CObject * CMDIFrameWnd::CreateObject() 2222 CObject * CMenu::CreateObject() 2223 CObject * CMiniDockFrameWnd::CreateObject() 2224 CObject * CMiniFrameWnd::CreateObject() 2225 CObject * CObArray::CreateObject() 2226 CObject * CObList::CreateObject() 2227 CObject * COleDocIPFrameWnd::CreateObject() 2228 CObject * COleIPFrameWnd::CreateObject() 2229 CObject * CPicturePropPage::CreateObject() 2230 CObject * CPreviewView::CreateObject() 2231 CObject * CRichEditCntrItem::CreateObject() 2232 CObject * CRichEditView::CreateObject() 2233 CObject * CRuntimeClass::CreateObject() 2234 CObject * CStringArray::CreateObject() 2235 CObject * CStringList::CreateObject() 2236 CObject * CTreeView::CreateObject() 2237 CObject * CWnd::CreateObject() 2238 CObject * CWordArray::CreateObject() 2239 void COleControlContainer::CreateOleFont(CFont *) 2240 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2241 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2242 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,unsigned short *) 2243 int CFont::CreatePointFont(int,char const *,CDC *) 2244 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 2245 HDC__ * CPageSetupDialog::CreatePrinterDC() 2246 HDC__ * CPrintDialog::CreatePrinterDC() 2247 int CWinApp::CreatePrinterDC(CDC &) 2248 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 2249 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 2250 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2251 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2252 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2253 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2254 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2255 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 2256 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2257 void COleControl::CreateTracker(int,int) 2258 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2259 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2260 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2261 void COleControl::CreateWindowForSubclassedControl() 2262 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2263 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2264 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2265 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2266 void DDP_Check(CDataExchange *,int,int &,char const *) 2267 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 2268 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 2269 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 2270 void DDP_EndText(CDataExchange *,int,short *,char const *) 2271 void DDP_EndText(CDataExchange *,int,int *,char const *) 2272 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 2273 void DDP_EndText(CDataExchange *,int,long *,char const *) 2274 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 2275 void DDP_EndText(CDataExchange *,int,float *,char const *) 2276 void DDP_EndText(CDataExchange *,int,double *,char const *) 2277 void DDP_EndText(CDataExchange *,int,CString *,char const *) 2278 void DDP_PostProcessing(CDataExchange *) 2279 void DDP_Radio(CDataExchange *,int,int &,char const *) 2280 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 2281 void DDP_Text(CDataExchange *,int,short &,char const *) 2282 void DDP_Text(CDataExchange *,int,int &,char const *) 2283 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 2284 void DDP_Text(CDataExchange *,int,long &,char const *) 2285 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 2286 void DDP_Text(CDataExchange *,int,float &,char const *) 2287 void DDP_Text(CDataExchange *,int,double &,char const *) 2288 void DDP_Text(CDataExchange *,int,CString &,char const *) 2289 void DDV_MaxChars(CDataExchange *,CString const &,int) 2290 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2291 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2292 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2293 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2294 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2295 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2296 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2297 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2298 void DDX_CBIndex(CDataExchange *,int,int &) 2299 void DDX_CBString(CDataExchange *,int,CString &) 2300 void DDX_CBStringExact(CDataExchange *,int,CString &) 2301 void DDX_Check(CDataExchange *,int,int &) 2302 void DDX_Control(CDataExchange *,int,CWnd &) 2303 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2304 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2305 void DDX_FieldCBString(CDataExchange *,int,CString &,CDaoRecordset *) 2306 void DDX_FieldCBString(CDataExchange *,int,CString &,CRecordset *) 2307 void DDX_FieldCBStringExact(CDataExchange *,int,CString &,CDaoRecordset *) 2308 void DDX_FieldCBStringExact(CDataExchange *,int,CString &,CRecordset *) 2309 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 2310 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2311 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2312 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2313 void DDX_FieldLBString(CDataExchange *,int,CString &,CDaoRecordset *) 2314 void DDX_FieldLBString(CDataExchange *,int,CString &,CRecordset *) 2315 void DDX_FieldLBStringExact(CDataExchange *,int,CString &,CDaoRecordset *) 2316 void DDX_FieldLBStringExact(CDataExchange *,int,CString &,CRecordset *) 2317 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 2318 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2319 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 2320 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2321 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 2322 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2323 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 2324 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 2325 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2326 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2327 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 2328 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2329 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 2330 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2331 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 2332 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2333 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 2334 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2335 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 2336 void DDX_FieldText(CDataExchange *,int,COleDateTime &,CDaoRecordset *) 2337 void DDX_FieldText(CDataExchange *,int,CString &,CDaoRecordset *) 2338 void DDX_FieldText(CDataExchange *,int,CString &,CRecordset *) 2339 void DDX_LBIndex(CDataExchange *,int,int &) 2340 void DDX_LBString(CDataExchange *,int,CString &) 2341 void DDX_LBStringExact(CDataExchange *,int,CString &) 2342 void DDX_OCBool(CDataExchange *,int,long,int &) 2343 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2344 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2345 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2346 void DDX_OCFloat(CDataExchange *,int,long,float &) 2347 void DDX_OCFloat(CDataExchange *,int,long,double &) 2348 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2349 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2350 void DDX_OCInt(CDataExchange *,int,long,int &) 2351 void DDX_OCInt(CDataExchange *,int,long,long &) 2352 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2353 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2354 void DDX_OCShort(CDataExchange *,int,long,short &) 2355 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2356 void DDX_OCText(CDataExchange *,int,long,CString &) 2357 void DDX_OCTextRO(CDataExchange *,int,long,CString &) 2358 void DDX_Radio(CDataExchange *,int,int &) 2359 void DDX_Scroll(CDataExchange *,int,int &) 2360 void DDX_Text(CDataExchange *,int,unsigned char &) 2361 void DDX_Text(CDataExchange *,int,short &) 2362 void DDX_Text(CDataExchange *,int,int &) 2363 void DDX_Text(CDataExchange *,int,unsigned int &) 2364 void DDX_Text(CDataExchange *,int,long &) 2365 void DDX_Text(CDataExchange *,int,unsigned long &) 2366 void DDX_Text(CDataExchange *,int,float &) 2367 void DDX_Text(CDataExchange *,int,double &) 2368 void DDX_Text(CDataExchange *,int,COleCurrency &) 2369 void DDX_Text(CDataExchange *,int,COleDateTime &) 2370 void DDX_Text(CDataExchange *,int,CString &) 2371 void COleClientItem::Deactivate() 2372 long COlePropertyPage::XPropertyPage::Deactivate() 2373 int COleServerDoc::DeactivateAndUndo() 2374 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2375 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2376 void COleClientItem::DeactivateUI() 2377 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 2378 void CFieldExchange::Default(char const *,void *,long *,int,unsigned int,unsigned int) 2379 long CWnd::Default() 2380 void CRect::DeflateRect(int,int,int,int) 2381 void CRect::DeflateRect(tagRECT const *) 2382 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 2383 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 2384 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 2385 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 2386 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2387 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2388 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2389 void CControlBar::DelayShow(int) 2390 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2391 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2392 void CDaoRecordset::Delete() 2393 void CException::Delete() 2394 void COleClientItem::Delete(int) 2395 void CRecordset::Delete() 2396 void CWinThread::Delete() 2397 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 2398 void CSplitterWnd::DeleteColumn(int) 2399 void CDocument::DeleteContents() 2400 void CEditView::DeleteContents() 2401 void COleDocument::DeleteContents() 2402 void COleServerDoc::DeleteContents() 2403 void CRichEditDoc::DeleteContents() 2404 void CRichEditView::DeleteContents() 2405 int CDC::DeleteDC() 2406 void CDaoTableDef::DeleteField(int) 2407 void CDaoTableDef::DeleteField(char const *) 2408 int CImageList::DeleteImageList() 2409 void CDaoTableDef::DeleteIndex(int) 2410 void CDaoTableDef::DeleteIndex(char const *) 2411 void CComboBox::DeleteItem(tagDELETEITEM*) 2412 void CFontComboBox::DeleteItem(tagDELETEITEM*) 2413 void CListBox::DeleteItem(tagDELETEITEM*) 2414 int CGdiObject::DeleteObject() 2415 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2416 void CDaoDatabase::DeleteQueryDef(char const *) 2417 void CDaoDatabase::DeleteRelation(char const *) 2418 void CSplitterWnd::DeleteRow(int) 2419 void CDaoDatabase::DeleteTableDef(char const *) 2420 void CHandleMap::DeleteTemp() 2421 void CDC::DeleteTempMap() 2422 void CGdiObject::DeleteTempMap() 2423 void CImageList::DeleteTempMap() 2424 void CMenu::DeleteTempMap() 2425 void CWnd::DeleteTempMap() 2426 void CRichEditDoc::DeleteUnmarkedItems()const 2427 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2428 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2429 void CSplitterWnd::DeleteView(int,int) 2430 long CWinApp::DelRegTree(HKEY__ *,CString const &) 2431 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2432 void COleSafeArray::Destroy() 2433 int COleControlSite::DestroyControl() 2434 void COleSafeArray::DestroyData() 2435 void COleSafeArray::DestroyDescriptor() 2436 void CFrameWnd::DestroyDockBars() 2437 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2438 int CMenu::DestroyMenu() 2439 void COleControl::DestroySharedMenu() 2440 void COleDocIPFrameWnd::DestroySharedMenu() 2441 void COleIPFrameWnd::DestroySharedMenu() 2442 int CToolTipCtrl::DestroyToolTipCtrl() 2443 void COleControl::DestroyTracker() 2444 int CControlBar::DestroyWindow() 2445 int CMDIChildWnd::DestroyWindow() 2446 int CWnd::DestroyWindow() 2447 void DestructElements(COleVariant *,int) 2448 void DestructElements(CString *,int) 2449 unsigned int CAsyncSocket::Detach() 2450 HDC__ * CDC::Detach() 2451 void * CDialogTemplate::Detach() 2452 void * CGdiObject::Detach() 2453 _IMAGELIST * CImageList::Detach() 2454 unsigned char * CMemFile::Detach() 2455 HMENU__ * CMenu::Detach() 2456 int CMonikerFile::Detach(CFileException *) 2457 IDataObject * COleDataObject::Detach() 2458 tagVARIANT COleSafeArray::Detach() 2459 IStream * COleStreamFile::Detach() 2460 tagVARIANT COleVariant::Detach() 2461 void * CSharedFile::Detach() 2462 HDC__ * CWindowlessDC::Detach() 2463 HWND__ * CWnd::Detach() 2464 IDispatch * COleDispatchDriver::DetachDispatch() 2465 void CAsyncSocket::DetachHandle(unsigned int,int) 2466 void COleControlSite::DetachWindow() 2467 void CWinApp::DevModeChange(char *) 2468 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 2469 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 2470 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 2471 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 2472 void DFX_DateTime(CDaoFieldExchange *,char const *,COleDateTime &,unsigned long) 2473 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 2474 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 2475 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 2476 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 2477 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 2478 void DFX_Text(CDaoFieldExchange *,char const *,CString &,int,unsigned long) 2479 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2480 int COleServerDoc::DiscardUndoState() 2481 long COleClientItem::XOleIPSite::DiscardUndoState() 2482 long COleControlSite::XOleIPSite::DiscardUndoState() 2483 void COleDispatchImpl::Disconnect() 2484 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2485 void CDocument::DisconnectViews() 2486 AFX_DISPMAP const CCmdTarget::dispatchMap 2487 void CWinThread::DispatchThreadMessage(tagMSG *) 2488 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 2489 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2490 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2491 void CAsyncSocket::DoCallBack(unsigned int,long) 2492 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2493 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2494 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2495 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2496 void COleControl::DoClick() 2497 int COleFrameHook::DoContextSensitiveHelp(int) 2498 int COleConvertDialog::DoConvert(COleClientItem *) 2499 void CColorPropPage::DoDataExchange(CDataExchange *) 2500 void CFontPropPage::DoDataExchange(CDataExchange *) 2501 void CPicturePropPage::DoDataExchange(CDataExchange *) 2502 void CWnd::DoDataExchange(CDataExchange *) 2503 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2504 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2505 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2506 int COleFrameHook::DoEnableModeless(int) 2507 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2508 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 2509 void CRecordset::DoFieldExchange(CFieldExchange *) 2510 int CDocument::DoFileSave() 2511 int CSplitterWnd::DoKeyboardSplit() 2512 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2513 int CColorDialog::DoModal() 2514 int CDialog::DoModal() 2515 int CFileDialog::DoModal() 2516 int CFontDialog::DoModal() 2517 int COleBusyDialog::DoModal() 2518 int COleChangeIconDialog::DoModal() 2519 int COleChangeSourceDialog::DoModal() 2520 int COleConvertDialog::DoModal() 2521 int COleInsertDialog::DoModal() 2522 int COleLinksDialog::DoModal() 2523 int COlePasteSpecialDialog::DoModal() 2524 int COlePropertiesDialog::DoModal() 2525 int COleUpdateDialog::DoModal() 2526 int CPageSetupDialog::DoModal() 2527 int CPrintDialog::DoModal() 2528 int CPropertySheet::DoModal() 2529 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2530 void CControlBar::DoPaint(CDC *) 2531 void CDockBar::DoPaint(CDC *) 2532 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2533 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2534 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2535 int CView::DoPreparePrinting(CPrintInfo *) 2536 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2537 int CWinApp::DoPrintDialog(CPrintDialog *) 2538 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2539 int CDocManager::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 2540 int CWinApp::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 2541 void COleControl::DoPropExchange(CPropExchange *) 2542 int CDocument::DoSave(char const *,int) 2543 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2544 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2545 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2546 int CCmdUI::DoUpdate(CCmdTarget *,int) 2547 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2548 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2549 long COleControlSite::DoVerb(long,tagMSG *) 2550 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2551 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2552 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2553 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2554 void CWinApp::DoWaitCursor(int) 2555 void CPreviewView::DoZoom(unsigned int,CPoint) 2556 void CDC::DPtoHIMETRIC(tagSIZE *)const 2557 void CDC::DPtoLP(tagSIZE *)const 2558 void CWnd::DragAcceptFiles(int) 2559 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2560 unsigned int CDragListBox::Dragging(CPoint) 2561 long COleDropTarget::XDropTarget::DragLeave() 2562 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2563 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2564 void CRectTracker::Draw(CDC *)const 2565 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2566 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2567 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2568 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2569 void CControlBar::DrawBorders(CDC *,CRect &) 2570 void COleControl::DrawContent(CDC *,CRect &) 2571 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2572 void CDockContext::DrawFocusRect(int) 2573 void CDragListBox::DrawInsert(int) 2574 void CBitmapButton::DrawItem(tagDRAWITEM*) 2575 void CButton::DrawItem(tagDRAWITEM*) 2576 void CCheckListBox::DrawItem(tagDRAWITEM*) 2577 void CColorButton::DrawItem(tagDRAWITEM*) 2578 void CComboBox::DrawItem(tagDRAWITEM*) 2579 void CFontComboBox::DrawItem(tagDRAWITEM*) 2580 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2581 void CListBox::DrawItem(tagDRAWITEM*) 2582 void CListCtrl::DrawItem(tagDRAWITEM*) 2583 void CListView::DrawItem(tagDRAWITEM*) 2584 void CMenu::DrawItem(tagDRAWITEM*) 2585 void CStatusBar::DrawItem(tagDRAWITEM*) 2586 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2587 void CTabCtrl::DrawItem(tagDRAWITEM*) 2588 void COleControl::DrawMetafile(CDC *,CRect &) 2589 void CDragListBox::DrawSingle(int) 2590 int CDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2591 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2592 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2593 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2594 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2595 void CDragListBox::Dropped(int,CPoint) 2596 void CObject::Dump(CDumpContext &)const 2597 long COleControl::XDataObject::DUnadvise(unsigned long) 2598 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2599 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2600 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2601 CFile * CFile::Duplicate()const 2602 CFile * CInternetFile::Duplicate()const 2603 CFile * CMemFile::Duplicate()const 2604 CFile * COleStreamFile::Duplicate()const 2605 CFile * CSocketFile::Duplicate()const 2606 CFile * CStdioFile::Duplicate()const 2607 unsigned long const CEditView::dwStyleDefault 2608 void CDaoRecordset::Edit() 2609 void CRecordset::Edit() 2610 long COlePropertyPage::XPropertyPage::EditProperty(long) 2611 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2612 void CDBException::Empty() 2613 void COleDataSource::Empty() 2614 void CString::Empty() 2615 void CCheckListBox::Enable(int,int) 2616 void CCmdUI::Enable(int) 2617 void COleCmdUI::Enable(int) 2618 void CStatusCmdUI::Enable(int) 2619 void CTestCmdUI::Enable(int) 2620 void CToolCmdUI::Enable(int) 2621 int CWinApp::Enable3dControls() 2622 void CCmdTarget::EnableAggregation() 2623 void CCmdTarget::EnableAutomation() 2624 void CRecordset::EnableBookmarks() 2625 void CCmdTarget::EnableConnections() 2626 void CControlBar::EnableDocking(unsigned long) 2627 void CFrameWnd::EnableDocking(unsigned long) 2628 void COleControlSite::EnableDSC() 2629 void CWinApp::EnableModeless(int) 2630 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2631 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2632 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2633 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2634 void CWnd::EnableScrollBarCtrl(int,int) 2635 void CWinApp::EnableShellOpen() 2636 void COleControl::EnableSimpleFrame() 2637 void CPropertySheet::EnableStackedTabs(int) 2638 int CInternetSession::EnableStatusCallback(int) 2639 int CWnd::EnableToolTips(int) 2640 void CCmdTarget::EnableTypeLib() 2641 int COleControlSite::EnableWindow(int) 2642 int CWnd::EnableWindow(int) 2643 void COleMessageFilter::EndBusyState() 2644 long COleLinkingDoc::EndDeferErrors(long) 2645 void CDialog::EndDialog(int) 2646 void CPropertySheet::EndDialog(int) 2647 void CDockContext::EndDrag() 2648 void CWnd::EndModalLoop(int) 2649 void CFrameWnd::EndModalState() 2650 void CWnd::EndModalState() 2651 void CDockContext::EndResize() 2652 void CCmdTarget::EndWaitCursor() 2653 void COleDataObject::EnsureClipboardObject() 2654 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2655 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2656 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2657 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2658 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2659 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2660 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2661 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2662 int COlePropertyPage::EnumControls(HWND__ *,long) 2663 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2664 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2665 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2666 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2667 int CFontPropPage::EnumFontFamiliesCallBack(tagENUMLOGFONTA *,tagNEWTEXTMETRICA *,int,long) 2668 int CFontPropPage::EnumFontFamiliesCallBack2(tagENUMLOGFONTA *,tagNEWTEXTMETRICA *,int,long) 2669 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2670 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2671 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2672 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2673 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2674 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2675 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2676 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2677 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2678 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2679 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2680 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2681 void CControlBar::EraseNonClient() 2682 int CFileException::ErrnoToException(int) 2683 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2684 int CDC::Escape(int,int,char const *,void *) 2685 int CMetaFileDC::Escape(int,int,char const *,void *) 2686 int CPreviewDC::Escape(int,int,char const *,void *) 2687 AFX_EVENTMAP const COleControl::eventMap 2688 AFX_EVENTSINKMAP const CCmdTarget::eventsinkMap 2689 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 2690 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2691 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2692 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2693 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2694 int COleControl::ExchangeExtent(CPropExchange *) 2695 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2696 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2697 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2698 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2699 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2700 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2701 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2702 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2703 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2704 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2705 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2706 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2707 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2708 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2709 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2710 void COleControl::ExchangeStockProps(CPropExchange *) 2711 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2712 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2713 int CDC::ExcludeClipRect(int,int,int,int) 2714 int CDC::ExcludeClipRect(tagRECT const *) 2715 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2716 void CDaoDatabase::Execute(char const *,int) 2717 void CDaoQueryDef::Execute(int) 2718 int CWnd::ExecuteDlgInit(void *) 2719 int CWnd::ExecuteDlgInit(char const *) 2720 void CRecordset::ExecuteSetPosUpdate() 2721 void CDatabase::ExecuteSQL(char const *) 2722 void CRecordset::ExecuteUpdateSQL() 2723 void CFrameWnd::ExitHelpMode() 2724 int COleControlModule::ExitInstance() 2725 int CWinApp::ExitInstance() 2726 int CWinThread::ExitInstance() 2727 unsigned long CCmdTarget::ExternalAddRef() 2728 void CCmdTarget::ExternalDisconnect() 2729 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2730 unsigned long CCmdTarget::ExternalRelease() 2731 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2732 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2733 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2734 CColorPropPage::CColorPropPageFactory CColorPropPage::factory 2735 CFontPropPage::CFontPropPageFactory CFontPropPage::factory 2736 CPicturePropPage::CPicturePropPageFactory CPicturePropPage::factory 2737 void CDataExchange::Fail() 2738 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2739 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2740 void CArchive::FillBuffer(unsigned int) 2741 void CDaoRecordset::FillCache(long *,COleVariant *) 2742 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 2743 void CDaoException::FillErrorInfo() 2744 void CFontPropPage::FillFacenameList() 2745 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2746 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2747 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2748 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 2749 void CStockPropPage::FillPropnameList(_GUID const &,int,CComboBox &) 2750 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 2751 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 2752 void CFontPropPage::FillSizeList() 2753 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2754 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2755 void CColorPropPage::FillSysColors() 2756 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 2757 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 2758 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 2759 void CWnd::FilterToolTipMessage(tagMSG *) 2760 int CDaoRecordset::Find(long,char const *) 2761 __POSITION * CObList::Find(CObject *,__POSITION *)const 2762 __POSITION * CPtrList::Find(void *,__POSITION *)const 2763 int CString::Find(char)const 2764 int CString::Find(char const *)const 2765 __POSITION * CStringList::Find(char const *,__POSITION *)const 2766 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2767 int CDockBar::FindBar(CControlBar *,int) 2768 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2769 CWnd * FindDlgItem(CWnd *,unsigned long) 2770 int CFileFind::FindFile(char const *,unsigned long) 2771 int CFtpFileFind::FindFile(char const *,unsigned long) 2772 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2773 int CGopherFileFind::FindFile(char const *,unsigned long) 2774 int CDaoRecordset::FindFirst(char const *) 2775 __POSITION * CObList::FindIndex(int)const 2776 __POSITION * CPtrList::FindIndex(int)const 2777 __POSITION * CStringList::FindIndex(int)const 2778 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2779 int CDaoRecordset::FindLast(char const *) 2780 int CDaoRecordset::FindNext(char const *) 2781 int CFileFind::FindNextFileA() 2782 int CFtpFileFind::FindNextFileA() 2783 int CGopherFileFind::FindNextFileA() 2784 int CString::FindOneOf(char const *)const 2785 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2786 int CDaoRecordset::FindPrev(char const *) 2787 char const * CRecordset::FindSQLToken(char const *,char const *) 2788 int CEditView::FindTextA(char const *,int,int) 2789 int CRichEditView::FindTextA(_AFX_RICHEDIT_STATE *) 2790 int CRichEditView::FindTextA(char const *,int,int) 2791 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 2792 int CRichEditView::FindTextSimple(char const *,int,int) 2793 int COleClientItem::FinishCreate(long) 2794 void COleControl::FireError(long,char const *,unsigned int) 2795 void COleControl::FireEvent(long,unsigned char *,...) 2796 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2797 void COleControl::FireEventV(long,unsigned char *,char *) 2798 void CDaoRecordset::Fixup() 2799 void CRecordset::Fixups() 2800 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2801 void CArchive::Flush() 2802 void CDumpContext::Flush() 2803 void CFile::Flush() 2804 void CInternetFile::Flush() 2805 void CMemFile::Flush() 2806 void COleStreamFile::Flush() 2807 void CSocketFile::Flush() 2808 void CStdioFile::Flush() 2809 void COleDataSource::FlushClipboard() 2810 int CRecordset::FlushResultSet()const 2811 CString COleCurrency::Format(unsigned long,unsigned long)const 2812 CString COleDateTime::Format(unsigned int)const 2813 CString COleDateTime::Format(unsigned long,unsigned long)const 2814 CString COleDateTime::Format(char const *)const 2815 CString COleDateTimeSpan::Format(unsigned int)const 2816 CString COleDateTimeSpan::Format(char const *)const 2817 void CString::Format(unsigned int,...) 2818 void CString::Format(char const *,...) 2819 CString CTime::Format(unsigned int)const 2820 CString CTime::Format(char const *)const 2821 CString CTimeSpan::Format(unsigned int)const 2822 CString CTimeSpan::Format(char const *)const 2823 CString CTime::FormatGmt(unsigned int)const 2824 CString CTime::FormatGmt(char const *)const 2825 void CString::FormatMessageA(unsigned int,...) 2826 void CString::FormatMessageA(char const *,...) 2827 void CString::FormatV(char const *,char *) 2828 void COleControl::ForwardActivationMsg(tagMSG *) 2829 void CDatabase::Free() 2830 void CMemFile::Free(unsigned char *) 2831 void CSharedFile::Free(unsigned char *) 2832 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2833 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2834 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2835 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2836 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2837 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2838 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2839 void CDaoRecordset::FreeCache() 2840 void CRecordset::FreeDataCache() 2841 void CPlex::FreeDataChain() 2842 void CByteArray::FreeExtra() 2843 void CDWordArray::FreeExtra() 2844 void CObArray::FreeExtra() 2845 void CPtrArray::FreeExtra() 2846 void CString::FreeExtra() 2847 void CStringArray::FreeExtra() 2848 void CUIntArray::FreeExtra() 2849 void CWordArray::FreeExtra() 2850 void CObList::FreeNode(CObList::CNode *) 2851 void CPtrList::FreeNode(CPtrList::CNode *) 2852 void CStringList::FreeNode(CStringList::CNode *) 2853 void CRecordset::FreeRowset() 2854 void CThreadSlotData::FreeSlot(int) 2855 void CProperty::FreeValue() 2856 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2857 long COleControl::XOleControl::FreezeEvents(int) 2858 int COleClientItem::FreezeLink() 2859 CDC * CDC::FromHandle(HDC__ *) 2860 CGdiObject * CGdiObject::FromHandle(void *) 2861 CObject * CHandleMap::FromHandle(void *) 2862 CImageList * CImageList::FromHandle(_IMAGELIST *) 2863 CMenu * CMenu::FromHandle(HMENU__ *) 2864 CWnd * CWnd::FromHandle(HWND__ *) 2865 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2866 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2867 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2868 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2869 void * CProperty::Get(unsigned long *) 2870 void * CProperty::Get() 2871 void * CPropertySection::Get(unsigned long) 2872 void * CPropertySection::Get(unsigned long,unsigned long *) 2873 void * CPropertySet::Get(_GUID,unsigned long) 2874 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2875 long CDaoRecordset::GetAbsolutePosition() 2876 unsigned long COleControl::GetActivationPolicy() 2877 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2878 CDocument * CFrameWnd::GetActiveDocument() 2879 CFrameWnd * CFrameWnd::GetActiveFrame() 2880 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2881 int CPropertySheet::GetActiveIndex()const 2882 CPropertyPage * CPropertySheet::GetActivePage()const 2883 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2884 CView * CFrameWnd::GetActiveView()const 2885 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2886 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2887 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2888 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2889 short COleControl::GetAppearance() 2890 HKEY__ * CWinApp::GetAppRegistryKey() 2891 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &)const 2892 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &)const 2893 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &)const 2894 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &)const 2895 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &)const 2896 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &)const 2897 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &)const 2898 CString CStringArray::GetAt(int)const 2899 int CGopherConnection::GetAttribute(CGopherLocator &,CString,CString &) 2900 long CDaoTableDef::GetAttributes() 2901 unsigned long COleControl::GetBackColor() 2902 void CControlBar::GetBarInfo(CControlBarInfo *) 2903 void CDockBar::GetBarInfo(CControlBarInfo *) 2904 unsigned long CAsyncMonikerFile::GetBindInfo()const 2905 void * CBlobProperty::GetBlob() 2906 COleVariant CDaoRecordset::GetBookmark() 2907 void CRecordset::GetBookmark(CDBVariant &) 2908 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2909 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2910 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2911 short COleControl::GetBorderStyle() 2912 long CDataSourceControl::GetBoundClientRow() 2913 int CRecordset::GetBoundFieldIndex(void *) 2914 int CRecordset::GetBoundParamIndex(void *) 2915 char * CString::GetBuffer(int) 2916 unsigned int CEditView::GetBufferLength()const 2917 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2918 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2919 char * CString::GetBufferSetLength(int) 2920 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2921 unsigned int CToolBar::GetButtonStyle(int)const 2922 CString CToolBar::GetButtonText(int)const 2923 void CToolBar::GetButtonText(int,CString &)const 2924 unsigned short CPropertySet::GetByteOrder() 2925 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2926 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2927 long CDaoRecordset::GetCacheSize() 2928 COleVariant CDaoRecordset::GetCacheStart() 2929 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 2930 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2931 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2932 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2933 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2934 CWnd * COleControl::GetCapture() 2935 void CFontDialog::GetCharFormat(_charformat &)const 2936 _charformat & CRichEditView::GetCharFormatSelection() 2937 int CCheckListBox::GetCheck(int) 2938 int CWnd::GetCheckedRadioButton(int,int) 2939 long CBlobProperty::GetClassID(_GUID *) 2940 long CColorPropPage::GetClassID(_GUID *) 2941 long CFontPropPage::GetClassID(_GUID *) 2942 void COleClientItem::GetClassID(_GUID *)const 2943 long CPicturePropPage::GetClassID(_GUID *) 2944 _GUID CPropertySet::GetClassID() 2945 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2946 long COleControl::XPersistMemory::GetClassID(_GUID *) 2947 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2948 long COleControl::XPersistStorage::GetClassID(_GUID *) 2949 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2950 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2951 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 2952 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2953 void COleControl::GetClientOffset(long *,long *)const 2954 void COleControl::GetClientRect(tagRECT *)const 2955 IOleClientSite * COleClientItem::GetClientSite() 2956 IOleClientSite * COleControl::GetClientSite() 2957 IOleClientSite * CRichEditCntrItem::GetClientSite() 2958 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2959 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2960 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2961 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2962 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2963 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2964 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2965 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2966 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2967 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2968 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2969 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2970 COleDataSource * COleDataSource::GetClipboardOwner() 2971 int CDC::GetClipBox(tagRECT *)const 2972 int CMetaFileDC::GetClipBox(tagRECT *)const 2973 int CColorPropPage::GetColorProp(CDataExchange *,unsigned long *,char const *) 2974 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2975 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2976 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2977 CString CDaoDatabase::GetConnect() 2978 CString CDaoQueryDef::GetConnect() 2979 CString CDaoTableDef::GetConnect() 2980 void CDatabase::GetConnectInfo() 2981 int CConnectionPoint::GetConnectionCount() 2982 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2983 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2984 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2985 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2986 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2987 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2988 CPtrArray const * CConnectionPoint::GetConnections() 2989 IConnectionPointContainer * CConnectionPoint::GetContainer() 2990 IOleItemContainer * COleDocument::GetContainer() 2991 IOleItemContainer * COleLinkingDoc::GetContainer() 2992 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2993 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2994 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2995 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2996 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2997 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2998 unsigned long COleControl::GetControlFlags() 2999 void COleControlSite::GetControlInfo() 3000 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3001 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3002 IUnknown * CCmdTarget::GetControllingUnknown() 3003 void COleControl::GetControlSize(int *,int *) 3004 int COlePropertyPage::GetControlStatus(unsigned int) 3005 IUnknown * CWnd::GetControlUnknown() 3006 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3007 int CPrintDialog::GetCopies()const 3008 unsigned long CPropertySection::GetCount() 3009 unsigned long CPropertySet::GetCount() 3010 int CFileFind::GetCreationTime(CTime &)const 3011 int CFileFind::GetCreationTime(_FILETIME *)const 3012 int CGopherFileFind::GetCreationTime(CTime &)const 3013 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3014 long COleLinkingDoc::XPersistFile::GetCurFile(unsigned short * *) 3015 int CFtpConnection::GetCurrentDirectoryA(CString &)const 3016 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 3017 int CFtpConnection::GetCurrentDirectoryAsURL(CString &)const 3018 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 3019 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 3020 CString CDaoRecordset::GetCurrentIndex() 3021 tagMSG const * CWnd::GetCurrentMessage() 3022 CString CFontComboBox::GetCurrentName() 3023 ICursor * CDataBoundProperty::GetCursor() 3024 ICursor * CDataSourceControl::GetCursor() 3025 long COleControlSite::GetCursor(long,ICursor * *,void * *) 3026 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3027 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3028 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3029 long CRecordset::GetData(CDatabase *,void *,short,short,void *,int,short) 3030 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3031 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3032 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3033 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3034 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3035 void CDaoRecordset::GetDataAndFixupNulls() 3036 short CDaoWorkspace::GetDatabaseCount() 3037 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 3038 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 3039 CString CDatabase::GetDatabaseName()const 3040 void * CRecordset::GetDataBuffer(CDBVariant &,short,int *,short,unsigned long) 3041 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3042 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3043 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3044 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3045 CNoTrackObject * CThreadLocalObject::GetDataNA() 3046 IDataObject * COleServerItem::GetDataObject() 3047 COleControl::CControlDataSource * COleControl::GetDataSource() 3048 COleDateTime CDaoQueryDef::GetDateCreated() 3049 COleDateTime CDaoRecordset::GetDateCreated() 3050 COleDateTime CDaoTableDef::GetDateCreated() 3051 COleDateTime CDaoQueryDef::GetDateLastUpdated() 3052 COleDateTime CDaoRecordset::GetDateLastUpdated() 3053 COleDateTime CDaoTableDef::GetDateLastUpdated() 3054 int COleDateTime::GetDay()const 3055 int COleDateTime::GetDayOfWeek()const 3056 int COleDateTime::GetDayOfYear()const 3057 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3058 HACCEL__ * CDocument::GetDefaultAccelerator() 3059 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3060 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3061 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 3062 CString CRecordset::GetDefaultConnect() 3063 CString CDaoRecordset::GetDefaultDBName() 3064 short CRecordset::GetDefaultFieldType(short) 3065 HMENU__ * CDocument::GetDefaultMenu() 3066 HMENU__ * COleServerDoc::GetDefaultMenu() 3067 int CPrintDialog::GetDefaults() 3068 CString CDaoRecordset::GetDefaultSQL() 3069 CString CRecordset::GetDefaultSQL() 3070 unsigned long COccManager::GetDefBtnCode(CWnd *) 3071 unsigned long COleControlSite::GetDefBtnCode() 3072 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3073 CString CPageSetupDialog::GetDeviceName()const 3074 CString CPrintDialog::GetDeviceName()const 3075 CPoint CScrollView::GetDeviceScrollPosition()const 3076 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3077 _devicemodeA * CPageSetupDialog::GetDevMode()const 3078 _devicemodeA * CPrintDialog::GetDevMode()const 3079 int CCmdTarget::GetDispatchIID(_GUID *) 3080 int COleControl::GetDispatchIID(_GUID *) 3081 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3082 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3083 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3084 int CRecentFileList::GetDisplayName(CString &,int,char const *,int,int)const 3085 int CFontHolder::GetDisplayString(CString &) 3086 int CPictureHolder::GetDisplayString(CString &) 3087 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,unsigned short * *) 3088 int COleControlSite::GetDlgCtrlID()const 3089 int CWnd::GetDlgCtrlID()const 3090 CWnd * COleControlContainer::GetDlgItem(int)const 3091 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3092 CWnd * CWnd::GetDlgItem(int)const 3093 void CWnd::GetDlgItem(int,HWND__ * *)const 3094 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3095 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3096 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 3097 int CWnd::GetDlgItemTextA(int,CString &)const 3098 int CWnd::GetDlgItemTextA(int,char *,int)const 3099 CDockBar * CDockContext::GetDockBar(unsigned long) 3100 CControlBar * CDockBar::GetDockedControlBar(int)const 3101 int CDockBar::GetDockedCount()const 3102 int CDockBar::GetDockedVisibleCount()const 3103 CFrameWnd * CControlBar::GetDockingFrame()const 3104 void CFrameWnd::GetDockState(CDockState &)const 3105 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3106 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3107 int CDocTemplate::GetDocString(CString &,enum CDocTemplate::DocStringIndex)const 3108 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3109 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3110 CString CPageSetupDialog::GetDriverName()const 3111 CString CPrintDialog::GetDriverName()const 3112 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3113 IUnknown * CWnd::GetDSCCursor() 3114 short CDaoRecordset::GetEditMode() 3115 void COleSafeArray::GetElement(long *,void *) 3116 COleServerItem * COleServerDoc::GetEmbeddedItem() 3117 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3118 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3119 int COleControl::GetEnabled() 3120 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3121 short CDaoException::GetErrorCount() 3122 void CDaoException::GetErrorInfo(int) 3123 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *) 3124 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *) 3125 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *) 3126 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 3127 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *) 3128 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *) 3129 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *) 3130 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *) 3131 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *) 3132 int COleControlSite::GetEventIID(_GUID *) 3133 AFX_EVENTMAP const * COleControl::GetEventMap()const 3134 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 3135 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3136 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3137 unsigned long COleControlSite::GetExStyle()const 3138 unsigned long CWnd::GetExStyle()const 3139 IDispatch * COleControl::GetExtendedControl() 3140 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3141 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3142 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3143 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3144 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3145 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3146 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3147 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3148 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3149 CString CFontDialog::GetFaceName()const 3150 short CDaoQueryDef::GetFieldCount() 3151 short CDaoRecordset::GetFieldCount() 3152 short CDaoTableDef::GetFieldCount() 3153 int CDaoRecordset::GetFieldIndex(void *) 3154 short CRecordset::GetFieldIndexByName(char const *) 3155 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 3156 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 3157 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 3158 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 3159 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 3160 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 3161 unsigned long CDaoRecordset::GetFieldLength(int) 3162 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3163 unsigned char CRecordset::GetFieldStatus(unsigned long) 3164 COleVariant CDaoRecordset::GetFieldValue(int) 3165 COleVariant CDaoRecordset::GetFieldValue(char const *) 3166 void CDaoRecordset::GetFieldValue(int,COleVariant &) 3167 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 3168 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3169 void CRecordset::GetFieldValue(short,CString &) 3170 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 3171 void CRecordset::GetFieldValue(char const *,CString &) 3172 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 3173 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 3174 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3175 CString CFileDialog::GetFileExt()const 3176 CString CFile::GetFileName()const 3177 CString CFileDialog::GetFileName()const 3178 CString CFileFind::GetFileName()const 3179 CString CGopherFileFind::GetFileName()const 3180 CString CFile::GetFilePath()const 3181 CString CFileFind::GetFilePath()const 3182 CString CGopherFileFind::GetFilePath()const 3183 CString CFile::GetFileTitle()const 3184 CString CFileDialog::GetFileTitle()const 3185 CString CFileFind::GetFileTitle()const 3186 CString CGopherFileFind::GetFileTitle()const 3187 int COleServerDoc::GetFileTypeString(CString &) 3188 CString CFileFind::GetFileURL()const 3189 CString CFtpFileFind::GetFileURL()const 3190 CString CGopherFileFind::GetFileURL()const 3191 CString CHttpFile::GetFileURL()const 3192 CString CFindReplaceDialog::GetFindString()const 3193 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3194 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3195 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3196 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3197 CFrameWnd * COleDocument::GetFirstFrame() 3198 __POSITION * CDocument::GetFirstViewPosition()const 3199 CWnd * COleControl::GetFocus() 3200 CString CFileDialog::GetFolderPath()const 3201 int CDialogTemplate::GetFont(CString &,unsigned short &)const 3202 int CDialogTemplate::GetFont(DLGTEMPLATE const *,CString &,unsigned short &) 3203 IFontDisp * COleControl::GetFont() 3204 IFontDisp * CFontHolder::GetFontDispatch() 3205 HFONT__ * CFontHolder::GetFontHandle(long,long) 3206 HFONT__ * CFontHolder::GetFontHandle() 3207 FONTITEM_PPG * CFontComboBox::GetFontItem(int) 3208 int CFontPropPage::GetFontProps(CDataExchange *,tagFONTOBJECT *,char const *,tagMERGEOBJECT *) 3209 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3210 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 3211 unsigned long CFontComboBox::GetFontType(int) 3212 unsigned long COleControl::GetForeColor() 3213 _GUID CPropertySection::GetFormatID() 3214 unsigned short CPropertySet::GetFormatVersion() 3215 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 3216 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3217 tm * CTime::GetGmtTm(tm *)const 3218 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 3219 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3220 CBrush * CDC::GetHalftoneBrush() 3221 unsigned int CRectTracker::GetHandleMask()const 3222 void CRectTracker::GetHandleRect(int,CRect *)const 3223 int CRectTracker::GetHandleSize(tagRECT const *)const 3224 long CSizeComboBox::GetHeight(int) 3225 void CSplitterWnd::GetHitRect(int,CRect &) 3226 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3227 int COleDateTime::GetHour()const 3228 long COleDateTimeSpan::GetHours()const 3229 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 3230 unsigned int COleControl::GetHwnd() 3231 void * COleClientItem::GetIconicMetafile() 3232 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3233 unsigned int COleControlSite::GetID() 3234 unsigned long CProperty::GetID() 3235 int CPropertySection::GetID(char const *,unsigned long *) 3236 IDataObject * COleDataObject::GetIDataObject(int) 3237 IDispatch * CCmdTarget::GetIDispatch(int) 3238 long COleDispatchImpl::GetIDsOfNames(_GUID const &,unsigned short * *,unsigned int,unsigned long,long *) 3239 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,unsigned short * *,unsigned int,unsigned long,long *) 3240 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,unsigned short * *,unsigned int,unsigned long,long *) 3241 _GUID const & COleControl::XEventConnPt::GetIID() 3242 _GUID const & COleControl::XPropConnPt::GetIID() 3243 short CDaoRecordset::GetIndexCount() 3244 short CDaoTableDef::GetIndexCount() 3245 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3246 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 3247 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3248 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 3249 CString CDaoWorkspace::GetIniPath() 3250 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3251 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3252 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3253 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3254 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3255 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3256 CWnd * COleClientItem::GetInPlaceWindow() 3257 void CSplitterWnd::GetInsideRect(CRect &)const 3258 IUnknown * CCmdTarget::GetInterface(void const *) 3259 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3260 IUnknown * COleControl::GetInterfaceHook(void const *) 3261 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3262 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3263 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3264 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3265 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3266 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3267 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3268 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3269 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3270 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3271 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3272 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3273 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3274 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3275 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 3276 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 3277 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 3278 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 3279 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 3280 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 3281 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 3282 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 3283 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 3284 int CDaoWorkspace::GetIsolateODBCTrans() 3285 void COleServerDoc::GetItemClipRect(tagRECT *)const 3286 unsigned long CListCtrl::GetItemData(int)const 3287 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 3288 unsigned int CStatusBar::GetItemID(int)const 3289 unsigned int CToolBar::GetItemID(int)const 3290 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 3291 void COleClientItem::GetItemName(char *)const 3292 void COleServerDoc::GetItemPosition(tagRECT *)const 3293 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 3294 void CStatusBar::GetItemRect(int,tagRECT *)const 3295 void CToolBar::GetItemRect(int,tagRECT *)const 3296 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 3297 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 3298 void COleClientItem::GetItemStorage() 3299 void COleClientItem::GetItemStorageCompound() 3300 void COleClientItem::GetItemStorageFlat() 3301 CString CListCtrl::GetItemText(int,int)const 3302 int CListCtrl::GetItemText(int,int,char *,int)const 3303 CString CTreeCtrl::GetItemText(_TREEITEM *)const 3304 int CFileFind::GetLastAccessTime(CTime &)const 3305 int CFileFind::GetLastAccessTime(_FILETIME *)const 3306 int CGopherFileFind::GetLastAccessTime(CTime &)const 3307 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 3308 COleVariant CDaoRecordset::GetLastModifiedBookmark() 3309 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 3310 int CFileFind::GetLastWriteTime(CTime &)const 3311 int CFileFind::GetLastWriteTime(_FILETIME *)const 3312 int CGopherFileFind::GetLastWriteTime(CTime &)const 3313 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 3314 long CRecordset::GetLBFetchSize(long) 3315 void COleSafeArray::GetLBound(unsigned long,long *) 3316 long CRecordset::GetLBReallocSize(long) 3317 void CComboBox::GetLBText(int,CString &)const 3318 unsigned long CFile::GetLength()const 3319 unsigned long CFileFind::GetLength()const 3320 unsigned long CGopherFileFind::GetLength()const 3321 unsigned long CInternetFile::GetLength()const 3322 unsigned long COleStreamFile::GetLength()const 3323 unsigned long CSocketFile::GetLength()const 3324 __int64 CFileFind::GetLength64()const 3325 __int64 CGopherFileFind::GetLength64()const 3326 int COleObjectFactory::GetLicenseKey(unsigned long,unsigned short * *) 3327 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 3328 int CRichEditCtrl::GetLine(int,char *)const 3329 int CRichEditCtrl::GetLine(int,char *,int)const 3330 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 3331 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 3332 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 3333 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 3334 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 3335 CPtrList * CPropertySection::GetList() 3336 CPtrList * CPropertySet::GetList() 3337 tm * CTime::GetLocalTm(tm *)const 3338 CGopherLocator CGopherFileFind::GetLocator()const 3339 int CDaoRecordset::GetLockingMode() 3340 tagLOGFONTA * CFontComboBox::GetLogFont(int) 3341 short CDaoWorkspace::GetLoginTimeout() 3342 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 3343 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,int,CDBVariant &,short) 3344 long CFieldExchange::GetLongBinarySize(int) 3345 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,int,CString &,short) 3346 CWnd * CWinThread::GetMainWnd() 3347 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 3348 int CConnectionPoint::GetMaxConnections() 3349 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 3350 CWnd * CFrameWnd::GetMessageBar() 3351 CWnd * CMDIChildWnd::GetMessageBar() 3352 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 3353 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 3354 AFX_MSGMAP const * CColorDialog::GetMessageMap()const 3355 AFX_MSGMAP const * CColorPropPage::GetMessageMap()const 3356 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 3357 AFX_MSGMAP const * CControlBar::GetMessageMap()const 3358 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 3359 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 3360 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 3361 AFX_MSGMAP const * CDialog::GetMessageMap()const 3362 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 3363 AFX_MSGMAP const * CDockBar::GetMessageMap()const 3364 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 3365 AFX_MSGMAP const * CDocument::GetMessageMap()const 3366 AFX_MSGMAP const * CEditView::GetMessageMap()const 3367 AFX_MSGMAP const * CFontPropPage::GetMessageMap()const 3368 AFX_MSGMAP const * CFormView::GetMessageMap()const 3369 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 3370 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 3371 AFX_MSGMAP const * CListView::GetMessageMap()const 3372 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 3373 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 3374 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 3375 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 3376 AFX_MSGMAP const * COleControl::GetMessageMap()const 3377 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 3378 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 3379 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 3380 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 3381 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 3382 AFX_MSGMAP const * CPicturePropPage::GetMessageMap()const 3383 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 3384 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 3385 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 3386 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 3387 AFX_MSGMAP const * CRecordView::GetMessageMap()const 3388 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 3389 AFX_MSGMAP const * CScrollView::GetMessageMap()const 3390 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 3391 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 3392 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 3393 AFX_MSGMAP const * CStockPropPage::GetMessageMap()const 3394 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 3395 AFX_MSGMAP const * CToolBar::GetMessageMap()const 3396 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 3397 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 3398 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 3399 AFX_MSGMAP const * CTreeView::GetMessageMap()const 3400 AFX_MSGMAP const * CView::GetMessageMap()const 3401 AFX_MSGMAP const * CWinApp::GetMessageMap()const 3402 AFX_MSGMAP const * CWnd::GetMessageMap()const 3403 void CFrameWnd::GetMessageString(unsigned int,CString &)const 3404 void COleControl::GetMessageString(unsigned int,CString &)const 3405 long CDataSourceControl::GetMetaData() 3406 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3407 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3408 int COleDateTime::GetMinute()const 3409 long COleDateTimeSpan::GetMinutes()const 3410 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3411 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3412 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3413 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3414 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 3415 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 3416 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 3417 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 3418 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3419 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3420 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3421 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3422 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3423 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3424 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3425 int COleDateTime::GetMonth()const 3426 CString CDaoDatabase::GetName() 3427 CString CDaoQueryDef::GetName() 3428 CString CDaoRecordset::GetName() 3429 CString CDaoTableDef::GetName() 3430 CString CDaoWorkspace::GetName() 3431 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3432 unsigned long COleClientItem::GetNewItemNumber() 3433 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3434 CDataBoundProperty * CDataBoundProperty::GetNext() 3435 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3436 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3437 void CMapStringToOb::GetNextAssoc(__POSITION * &,CString &,CObject * &)const 3438 void CMapStringToPtr::GetNextAssoc(__POSITION * &,CString &,void * &)const 3439 void CMapStringToString::GetNextAssoc(__POSITION * &,CString &,CString &)const 3440 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3441 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3442 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3443 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3444 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3445 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3446 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3447 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3448 int COleDataObject::GetNextFormat(tagFORMATETC *) 3449 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3450 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3451 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3452 CString CFileDialog::GetNextPathName(__POSITION * &)const 3453 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3454 CView * CDocument::GetNextView(__POSITION * &)const 3455 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3456 void CCmdTarget::GetNotSupported() 3457 void COleControl::GetNotSupported() 3458 CString CHttpFile::GetObjectA()const 3459 long COleLinkingDoc::XOleItemContainer::GetObjectA(unsigned short *,unsigned long,IBindCtx *,_GUID const &,void * *) 3460 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3461 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3462 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3463 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 3464 unsigned int CArchive::GetObjectSchema() 3465 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(unsigned short *,IBindCtx *,_GUID const &,void * *) 3466 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3467 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 3468 short CDaoQueryDef::GetODBCTimeout() 3469 IOleObject * COleServerItem::GetOleObject() 3470 unsigned long COleSafeArray::GetOneDimSize() 3471 int CDocManager::GetOpenDocumentCount() 3472 int CWinApp::GetOpenDocumentCount() 3473 unsigned long CPropertySet::GetOSVersion() 3474 CWnd * COleControl::GetOuterWindow()const 3475 int CPropertySheet::GetPageCount()const 3476 int CPropertySheet::GetPageIndex(CPropertyPage *) 3477 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3478 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3479 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3480 IPropertyPageSite * COlePropertyPage::GetPageSite() 3481 CWnd * CSplitterWnd::GetPane(int,int)const 3482 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3483 unsigned int CStatusBar::GetPaneStyle(int)const 3484 CString CStatusBar::GetPaneText(int)const 3485 void CStatusBar::GetPaneText(int,CString &)const 3486 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3487 _paraformat & CRichEditView::GetParaFormatSelection() 3488 short CDaoQueryDef::GetParameterCount() 3489 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 3490 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 3491 COleVariant CDaoQueryDef::GetParamValue(int) 3492 COleVariant CDaoQueryDef::GetParamValue(char const *) 3493 COleVariant CDaoRecordset::GetParamValue(int) 3494 COleVariant CDaoRecordset::GetParamValue(char const *) 3495 CFrameWnd * CWnd::GetParentFrame()const 3496 CWnd * CWnd::GetParentOwner()const 3497 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3498 CString CDataPathProperty::GetPath()const 3499 CString CFileDialog::GetPathName()const 3500 int CAsyncSocket::GetPeerName(CString &,unsigned int &) 3501 float CDaoRecordset::GetPercentPosition() 3502 IPictureDisp * CPictureHolder::GetPictureDispatch() 3503 int CPicturePropPage::GetPictureProp(CDataExchange *,IPictureDisp * *,char const *) 3504 void CSizeComboBox::GetPointSize(union tagCY &) 3505 CString CPageSetupDialog::GetPortName()const 3506 CString CPrintDialog::GetPortName()const 3507 unsigned long CFile::GetPosition()const 3508 unsigned long CMemFile::GetPosition()const 3509 unsigned long COleStreamFile::GetPosition()const 3510 unsigned long CSocketFile::GetPosition()const 3511 unsigned long CStdioFile::GetPosition()const 3512 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3513 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3514 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3515 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3516 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3517 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 3518 CFont * CEditView::GetPrinterFont()const 3519 long CAsyncMonikerFile::GetPriority()const 3520 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 3521 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 3522 CString CWinApp::GetProfileStringA(char const *,char const *,char const *) 3523 int COlePropertyPage::GetPropCheck(char const *,int *) 3524 void COleControlSite::GetProperty(long,unsigned short,void *)const 3525 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3526 CProperty * CPropertySection::GetProperty(unsigned long) 3527 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3528 void CWnd::GetProperty(long,unsigned short,void *)const 3529 int COlePropertyPage::GetPropIndex(char const *,int *) 3530 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3531 int COlePropertyPage::GetPropRadio(char const *,int *) 3532 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3533 int COlePropertyPage::GetPropText(char const *,unsigned char *) 3534 int COlePropertyPage::GetPropText(char const *,short *) 3535 int COlePropertyPage::GetPropText(char const *,int *) 3536 int COlePropertyPage::GetPropText(char const *,unsigned int *) 3537 int COlePropertyPage::GetPropText(char const *,long *) 3538 int COlePropertyPage::GetPropText(char const *,unsigned long *) 3539 int COlePropertyPage::GetPropText(char const *,float *) 3540 int COlePropertyPage::GetPropText(char const *,double *) 3541 int COlePropertyPage::GetPropText(char const *,CString *) 3542 short CDaoDatabase::GetQueryDefCount() 3543 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 3544 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 3545 short CDaoDatabase::GetQueryTimeout() 3546 void CSliderCtrl::GetRange(int &,int &)const 3547 void CSpinButtonCtrl::GetRange(int &,int &)const 3548 void * CProperty::GetRawValue() 3549 long COleControl::GetReadyState() 3550 long CDaoRecordset::GetRecordCount() 3551 long CDaoTableDef::GetRecordCount() 3552 long CDaoDatabase::GetRecordsAffected() 3553 long CDaoQueryDef::GetRecordsAffected() 3554 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3555 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3556 int COleControl::GetRectInContainer(tagRECT *) 3557 short CDaoDatabase::GetRelationCount() 3558 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 3559 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 3560 CString CFindReplaceDialog::GetReplaceString()const 3561 int CDaoQueryDef::GetReturnsRecords() 3562 CString CFileFind::GetRoot()const 3563 CString CGopherFileFind::GetRoot()const 3564 CFrameWnd * CCmdTarget::GetRoutingFrame() 3565 CView * CCmdTarget::GetRoutingView() 3566 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3567 CRuntime* CAnimateCtrl::GetRuntimeClass()const 3568 CRuntime* CArchiveException::GetRuntimeClass()const 3569 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 3570 CRuntime* CAsyncSocket::GetRuntimeClass()const 3571 CRuntime* CBitmap::GetRuntimeClass()const 3572 CRuntime* CBitmapButton::GetRuntimeClass()const 3573 CRuntime* CBrush::GetRuntimeClass()const 3574 CRuntime* CButton::GetRuntimeClass()const 3575 CRuntime* CByteArray::GetRuntimeClass()const 3576 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 3577 CRuntime* CCheckListBox::GetRuntimeClass()const 3578 CRuntime* CClientDC::GetRuntimeClass()const 3579 CRuntime* CCmdTarget::GetRuntimeClass()const 3580 CRuntime* CColorDialog::GetRuntimeClass()const 3581 CRuntime* CColorPropPage::GetRuntimeClass()const 3582 CRuntime* CComboBox::GetRuntimeClass()const 3583 CRuntime* CControlBar::GetRuntimeClass()const 3584 CRuntime* CCriticalSection::GetRuntimeClass()const 3585 CRuntime* CCtrlView::GetRuntimeClass()const 3586 CRuntime* CDaoDatabase::GetRuntimeClass()const 3587 CRuntime* CDaoException::GetRuntimeClass()const 3588 CRuntime* CDaoQueryDef::GetRuntimeClass()const 3589 CRuntime* CDaoRecordset::GetRuntimeClass()const 3590 CRuntime* CDaoRecordView::GetRuntimeClass()const 3591 CRuntime* CDaoTableDef::GetRuntimeClass()const 3592 CRuntime* CDaoWorkspace::GetRuntimeClass()const 3593 CRuntime* CDatabase::GetRuntimeClass()const 3594 CRuntime* CDataPathProperty::GetRuntimeClass()const 3595 CRuntime* CDBException::GetRuntimeClass()const 3596 CRuntime* CDC::GetRuntimeClass()const 3597 CRuntime* CDialog::GetRuntimeClass()const 3598 CRuntime* CDialogBar::GetRuntimeClass()const 3599 CRuntime* CDocItem::GetRuntimeClass()const 3600 CRuntime* CDockBar::GetRuntimeClass()const 3601 CRuntime* CDockState::GetRuntimeClass()const 3602 CRuntime* CDocManager::GetRuntimeClass()const 3603 CRuntime* CDocObjectServer::GetRuntimeClass()const 3604 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 3605 CRuntime* CDocTemplate::GetRuntimeClass()const 3606 CRuntime* CDocument::GetRuntimeClass()const 3607 CRuntime* CDragListBox::GetRuntimeClass()const 3608 CRuntime* CDWordArray::GetRuntimeClass()const 3609 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3610 CRuntime* CEdit::GetRuntimeClass()const 3611 CRuntime* CEditView::GetRuntimeClass()const 3612 CRuntime* CEvent::GetRuntimeClass()const 3613 CRuntime* CException::GetRuntimeClass()const 3614 CRuntime* CFile::GetRuntimeClass()const 3615 CRuntime* CFileDialog::GetRuntimeClass()const 3616 CRuntime* CFileException::GetRuntimeClass()const 3617 CRuntime* CFileFind::GetRuntimeClass()const 3618 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3619 CRuntime* CFont::GetRuntimeClass()const 3620 CRuntime* CFontDialog::GetRuntimeClass()const 3621 CRuntime* CFontPropPage::GetRuntimeClass()const 3622 CRuntime* CFormView::GetRuntimeClass()const 3623 CRuntime* CFrameWnd::GetRuntimeClass()const 3624 CRuntime* CFtpConnection::GetRuntimeClass()const 3625 CRuntime* CFtpFileFind::GetRuntimeClass()const 3626 CRuntime* CGdiObject::GetRuntimeClass()const 3627 CRuntime* CGopherConnection::GetRuntimeClass()const 3628 CRuntime* CGopherFile::GetRuntimeClass()const 3629 CRuntime* CGopherFileFind::GetRuntimeClass()const 3630 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3631 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3632 CRuntime* CHttpConnection::GetRuntimeClass()const 3633 CRuntime* CHttpFile::GetRuntimeClass()const 3634 CRuntime* CImageList::GetRuntimeClass()const 3635 CRuntime* CInternetConnection::GetRuntimeClass()const 3636 CRuntime* CInternetException::GetRuntimeClass()const 3637 CRuntime* CInternetFile::GetRuntimeClass()const 3638 CRuntime* CInternetSession::GetRuntimeClass()const 3639 CRuntime* CListBox::GetRuntimeClass()const 3640 CRuntime* CListCtrl::GetRuntimeClass()const 3641 CRuntime* CListView::GetRuntimeClass()const 3642 CRuntime* CLongBinary::GetRuntimeClass()const 3643 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3644 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3645 CRuntime* CMapStringToOb::GetRuntimeClass()const 3646 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3647 CRuntime* CMapStringToString::GetRuntimeClass()const 3648 CRuntime* CMapWordToOb::GetRuntimeClass()const 3649 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3650 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3651 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3652 CRuntime* CMemFile::GetRuntimeClass()const 3653 CRuntime* CMemoryException::GetRuntimeClass()const 3654 CRuntime* CMenu::GetRuntimeClass()const 3655 CRuntime* CMetaFileDC::GetRuntimeClass()const 3656 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3657 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3658 CRuntime* CMonikerFile::GetRuntimeClass()const 3659 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3660 CRuntime* CMutex::GetRuntimeClass()const 3661 CRuntime* CNotSupportedException::GetRuntimeClass()const 3662 CRuntime* CObArray::GetRuntimeClass()const 3663 CRuntime* CObject::GetRuntimeClass()const 3664 CRuntime* CObList::GetRuntimeClass()const 3665 CRuntime* COleBusyDialog::GetRuntimeClass()const 3666 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3667 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3668 CRuntime* COleClientItem::GetRuntimeClass()const 3669 CRuntime* COleControl::GetRuntimeClass()const 3670 CRuntime* COleControlModule::GetRuntimeClass()const 3671 CRuntime* COleConvertDialog::GetRuntimeClass()const 3672 CRuntime* COleDialog::GetRuntimeClass()const 3673 CRuntime* COleDispatchException::GetRuntimeClass()const 3674 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3675 CRuntime* COleDocument::GetRuntimeClass()const 3676 CRuntime* COleException::GetRuntimeClass()const 3677 CRuntime* COleInsertDialog::GetRuntimeClass()const 3678 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3679 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3680 CRuntime* COleLinksDialog::GetRuntimeClass()const 3681 CRuntime* COleObjectFactory::GetRuntimeClass()const 3682 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3683 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3684 CRuntime* COlePropertyPage::GetRuntimeClass()const 3685 CRuntime* COleResizeBar::GetRuntimeClass()const 3686 CRuntime* COleServerDoc::GetRuntimeClass()const 3687 CRuntime* COleServerItem::GetRuntimeClass()const 3688 CRuntime* COleStreamFile::GetRuntimeClass()const 3689 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3690 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3691 CRuntime* CPaintDC::GetRuntimeClass()const 3692 CRuntime* CPalette::GetRuntimeClass()const 3693 CRuntime* CPen::GetRuntimeClass()const 3694 CRuntime* CPicturePropPage::GetRuntimeClass()const 3695 CRuntime* CPreviewDC::GetRuntimeClass()const 3696 CRuntime* CPreviewView::GetRuntimeClass()const 3697 CRuntime* CPrintDialog::GetRuntimeClass()const 3698 CRuntime* CProgressCtrl::GetRuntimeClass()const 3699 CRuntime* CPropertyPage::GetRuntimeClass()const 3700 CRuntime* CPropertySheet::GetRuntimeClass()const 3701 CRuntime* CPtrArray::GetRuntimeClass()const 3702 CRuntime* CPtrList::GetRuntimeClass()const 3703 CRuntime* CRecordset::GetRuntimeClass()const 3704 CRuntime* CRecordView::GetRuntimeClass()const 3705 CRuntime* CResourceException::GetRuntimeClass()const 3706 CRuntime* CRgn::GetRuntimeClass()const 3707 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3708 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3709 CRuntime* CRichEditDoc::GetRuntimeClass()const 3710 CRuntime* CRichEditView::GetRuntimeClass()const 3711 CRuntime* CScrollBar::GetRuntimeClass()const 3712 CRuntime* CScrollView::GetRuntimeClass()const 3713 CRuntime* CSemaphore::GetRuntimeClass()const 3714 CRuntime* CSharedFile::GetRuntimeClass()const 3715 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3716 CRuntime* CSliderCtrl::GetRuntimeClass()const 3717 CRuntime* CSocket::GetRuntimeClass()const 3718 CRuntime* CSocketFile::GetRuntimeClass()const 3719 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3720 CRuntime* CSplitterWnd::GetRuntimeClass()const 3721 CRuntime* CStatic::GetRuntimeClass()const 3722 CRuntime* CStatusBar::GetRuntimeClass()const 3723 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3724 CRuntime* CStdioFile::GetRuntimeClass()const 3725 CRuntime* CStockPropPage::GetRuntimeClass()const 3726 CRuntime* CStringArray::GetRuntimeClass()const 3727 CRuntime* CStringList::GetRuntimeClass()const 3728 CRuntime* CSyncObject::GetRuntimeClass()const 3729 CRuntime* CTabCtrl::GetRuntimeClass()const 3730 CRuntime* CToolBar::GetRuntimeClass()const 3731 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3732 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3733 CRuntime* CTreeCtrl::GetRuntimeClass()const 3734 CRuntime* CTreeView::GetRuntimeClass()const 3735 CRuntime* CUIntArray::GetRuntimeClass()const 3736 CRuntime* CUserException::GetRuntimeClass()const 3737 CRuntime* CView::GetRuntimeClass()const 3738 CRuntime* CWinApp::GetRuntimeClass()const 3739 CRuntime* CWindowDC::GetRuntimeClass()const 3740 CRuntime* CWindowlessDC::GetRuntimeClass()const 3741 CRuntime* CWinThread::GetRuntimeClass()const 3742 CRuntime* CWnd::GetRuntimeClass()const 3743 CRuntime* CWordArray::GetRuntimeClass()const 3744 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3745 unsigned long * CColorDialog::GetSavedCustomColors() 3746 CString CGopherFileFind::GetScreenName()const 3747 CSize CDockState::GetScreenSize() 3748 CScrollBar * CView::GetScrollBarCtrl(int)const 3749 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3750 void CScrollView::GetScrollBarSizes(CSize &) 3751 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3752 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3753 int CWnd::GetScrollLimit(int) 3754 int CWnd::GetScrollPos(int)const 3755 CPoint CScrollView::GetScrollPosition()const 3756 void CWnd::GetScrollRange(int,int *,int *)const 3757 unsigned long CSplitterWnd::GetScrollStyle()const 3758 int COleDateTime::GetSecond()const 3759 long COleDateTimeSpan::GetSeconds()const 3760 CPropertySection * CPropertySet::GetSection(_GUID) 3761 HKEY__ * CWinApp::GetSectionKey(char const *) 3762 char const * CPropertySection::GetSectionName() 3763 void CRichEditCtrl::GetSel(long &,long &)const 3764 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3765 void CEditView::GetSelectedText(CString &)const 3766 void CSliderCtrl::GetSelection(int &,int &)const 3767 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3768 unsigned int COleConvertDialog::GetSelectionType()const 3769 unsigned int COleInsertDialog::GetSelectionType()const 3770 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3771 CString CRichEditCtrl::GetSelText()const 3772 CString CInternetConnection::GetServerName()const 3773 unsigned long CPropertySection::GetSize() 3774 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3775 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3776 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3777 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3778 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3779 CWnd * CSplitterWnd::GetSizingParent() 3780 int CAsyncSocket::GetSockName(CString &,unsigned int &) 3781 CString CDaoTableDef::GetSourceTableName() 3782 CString CDaoQueryDef::GetSQL() 3783 CString CDaoRecordset::GetSQL()const 3784 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3785 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3786 __POSITION * CConnectionPoint::GetStartPosition()const 3787 __POSITION * COleDocument::GetStartPosition()const 3788 __POSITION * CRichEditDoc::GetStartPosition()const 3789 int CFile::GetStatus(CFileStatus &)const 3790 int CFile::GetStatus(char const *,CFileStatus &) 3791 int CMemFile::GetStatus(CFileStatus &)const 3792 int COleStreamFile::GetStatus(CFileStatus &)const 3793 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 3794 CString const COleStreamFile::GetStorageName()const 3795 IStream * COleStreamFile::GetStream()const 3796 unsigned long COleControlSite::GetStyle()const 3797 unsigned long CWnd::GetStyle()const 3798 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3799 short CDaoDatabase::GetTableDefCount() 3800 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 3801 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 3802 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3803 void CListBox::GetText(int,CString &)const 3804 unsigned short * COleControl::GetText() 3805 CString CStatusBarCtrl::GetText(int,int *)const 3806 int CStatusBarCtrl::GetText(char const *,int,int *)const 3807 void CToolTipCtrl::GetText(CString &,CWnd *,unsigned int)const 3808 int CRecordset::GetTextLen(short,unsigned long) 3809 int CStatusBarCtrl::GetTextLength(int,int *)const 3810 COleDateTime COleDateTime::GetTickCount() 3811 CTime CTime::GetTickCount() 3812 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3813 CFrameWnd * CWnd::GetTopLevelFrame()const 3814 CWnd * CWnd::GetTopLevelOwner()const 3815 CWnd * CWnd::GetTopLevelParent()const 3816 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3817 void CRectTracker::GetTrueRect(tagRECT *)const 3818 short CDaoQueryDef::GetType() 3819 short CDaoRecordset::GetType() 3820 short CPictureHolder::GetType() 3821 unsigned long CProperty::GetType() 3822 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3823 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3824 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3825 unsigned int CCmdTarget::GetTypeInfoCount() 3826 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3827 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3828 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3829 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3830 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3831 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3832 void COleSafeArray::GetUBound(unsigned long,long *) 3833 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3834 long COleControl::XOleObject::GetUserClassID(_GUID *) 3835 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3836 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3837 CString CDaoWorkspace::GetUserNameA() 3838 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,CString &) 3839 void COleControl::GetUserType(char *) 3840 long CDocObjectServer::XOleObject::GetUserType(unsigned long,unsigned short * *) 3841 long COleControl::XOleObject::GetUserType(unsigned long,unsigned short * *) 3842 long COleServerDoc::XOleObject::GetUserType(unsigned long,unsigned short * *) 3843 long COleServerItem::XOleObject::GetUserType(unsigned long,unsigned short * *) 3844 CString CDaoRecordset::GetValidationRule() 3845 CString CDaoTableDef::GetValidationRule() 3846 CString CDaoRecordset::GetValidationText() 3847 CString CDaoTableDef::GetValidationText() 3848 void * CMapPtrToPtr::GetValueAt(void *)const 3849 CString CHttpFile::GetVerb()const 3850 CString CDaoDatabase::GetVersion() 3851 CString CDaoWorkspace::GetVersion() 3852 unsigned long CDockState::GetVersion() 3853 CRichEditView * CRichEditDoc::GetView()const 3854 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3855 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3856 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3857 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3858 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3859 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3860 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3861 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3862 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3863 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3864 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3865 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3866 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3867 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3868 IDropTarget * COleControl::GetWindowlessDropTarget() 3869 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3870 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3871 int COleControlSite::GetWindowTextA(char *,int)const 3872 void COleControlSite::GetWindowTextA(CString &)const 3873 int CWnd::GetWindowTextA(char *,int)const 3874 void CWnd::GetWindowTextA(CString &)const 3875 int COleControlSite::GetWindowTextLengthA()const 3876 int CWnd::GetWindowTextLengthA()const 3877 short CDaoWorkspace::GetWorkspaceCount() 3878 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 3879 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 3880 int COleDateTime::GetYear()const 3881 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3882 long COleDropSource::GiveFeedback(unsigned long) 3883 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3884 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3885 int CDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3886 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3887 void CMemFile::GrowFile(unsigned long) 3888 _GUID const CColorPropPage::guid 3889 _GUID const CFontPropPage::guid 3890 _GUID const CPicturePropPage::guid 3891 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3892 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3893 long CDialog::HandleInitDialog(unsigned int,long) 3894 long CDialogBar::HandleInitDialog(unsigned int,long) 3895 long CFormView::HandleInitDialog(unsigned int,long) 3896 long CPropertySheet::HandleInitDialog(unsigned int,long) 3897 long CDialog::HandleSetFont(unsigned int,long) 3898 long COleControl::XPersistStorage::HandsOffStorage() 3899 long COleServerDoc::XPersistStorage::HandsOffStorage() 3900 int COleDocument::HasBlankItems()const 3901 int CDialogTemplate::HasFont()const 3902 unsigned int HashKey(tagVARIANT const &) 3903 unsigned int HashKey(char const *) 3904 long COlePropertyPage::XPropertyPage::Help(unsigned short const *) 3905 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 3906 void CWinApp::HideApplication() 3907 void CFileDialog::HideControl(int) 3908 void CDC::HIMETRICtoDP(tagSIZE *)const 3909 void CDC::HIMETRICtoLP(tagSIZE *)const 3910 int CListCtrl::HitTest(CPoint,unsigned int *)const 3911 int CRectTracker::HitTest(CPoint)const 3912 int CSplitterWnd::HitTest(CPoint)const 3913 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 3914 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3915 int CRectTracker::HitTestHandles(CPoint)const 3916 int CSplitterWnd::IdFromRowCol(int,int)const 3917 void CDaoWorkspace::Idle(int) 3918 void COlePropertyPage::IgnoreApply(unsigned int) 3919 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3920 void CRect::InflateRect(int,int,int,int) 3921 void CRect::InflateRect(tagRECT const *) 3922 int CWinApp::InitApplication() 3923 long COleControl::XOleCache::InitCache(IDataObject *) 3924 int CWnd::InitControlContainer() 3925 void CDaoWorkspace::InitDatabasesCollection() 3926 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3927 void CDaoException::InitErrorsCollection() 3928 void CDaoQueryDef::InitFieldsCollection() 3929 void CDaoRecordset::InitFieldsCollection() 3930 void CDaoTableDef::InitFieldsCollection() 3931 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3932 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3933 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3934 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3935 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3936 void CMapPtrToWord::InitHashTable(unsigned int,int) 3937 void CMapStringToOb::InitHashTable(unsigned int,int) 3938 void CMapStringToPtr::InitHashTable(unsigned int,int) 3939 void CMapStringToString::InitHashTable(unsigned int,int) 3940 void CMapWordToOb::InitHashTable(unsigned int,int) 3941 void CMapWordToPtr::InitHashTable(unsigned int,int) 3942 long CDataSourceControl::Initialize() 3943 void CMiniFrameWnd::Initialize() 3944 void CDaoWorkspace::InitializeEngine() 3945 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3946 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3947 int CEditView::InitializeReplace() 3948 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3949 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3950 void CDaoRecordset::InitIndexesCollection() 3951 void CDaoTableDef::InitIndexesCollection() 3952 int COleControlModule::InitInstance() 3953 int CWinApp::InitInstance() 3954 int CWinThread::InitInstance() 3955 void CDockContext::InitLoop() 3956 int CDialog::InitModalIndirect(void *,CWnd *) 3957 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3958 long COleControl::XPersistMemory::InitNew() 3959 long COleControl::XPersistPropertyBag::InitNew() 3960 long COleControl::XPersistStorage::InitNew(IStorage *) 3961 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3962 long COleControl::XPersistStreamInit::InitNew() 3963 void CDaoQueryDef::InitParametersCollection() 3964 void CDaoDatabase::InitQueryDefsCollection() 3965 void CRecordset::InitRecord() 3966 void CDaoDatabase::InitRelationsCollection() 3967 void COleControl::InitStockEventMask() 3968 void COleControl::InitStockPropMask() 3969 void CSimpleException::InitString() 3970 void CDaoDatabase::InitTableDefsCollection() 3971 void CDaoDatabase::InitWorkspace() 3972 void CDaoWorkspace::InitWorkspacesCollection() 3973 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3974 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3975 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3976 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3977 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3978 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 3979 void CByteArray::InsertAt(int,unsigned char,int) 3980 void CByteArray::InsertAt(int,CByteArray *) 3981 void CDWordArray::InsertAt(int,unsigned long,int) 3982 void CDWordArray::InsertAt(int,CDWordArray *) 3983 void CObArray::InsertAt(int,CObArray *) 3984 void CObArray::InsertAt(int,CObject *,int) 3985 void CPtrArray::InsertAt(int,CPtrArray *) 3986 void CPtrArray::InsertAt(int,void *,int) 3987 void CStringArray::InsertAt(int,CStringArray *) 3988 void CStringArray::InsertAt(int,char const *,int) 3989 void CUIntArray::InsertAt(int,unsigned int,int) 3990 void CUIntArray::InsertAt(int,CUIntArray *) 3991 void CWordArray::InsertAt(int,unsigned short,int) 3992 void CWordArray::InsertAt(int,CWordArray *) 3993 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3994 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3995 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 3996 int CListCtrl::InsertColumn(int,char const *,int,int,int) 3997 void CRichEditView::InsertFileAsObject(char const *) 3998 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 3999 long CRichEditView::InsertItem(CRichEditCntrItem *) 4000 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 4001 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 4002 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 4003 AFX_INTERFACEMAP const CCmdTarget::interfaceMap 4004 AFX_INTERFACEMAP const CDocObjectServer::interfaceMap 4005 AFX_INTERFACEMAP const COleClientItem::interfaceMap 4006 AFX_INTERFACEMAP const COleControl::interfaceMap 4007 AFX_INTERFACEMAP const COleDataSource::interfaceMap 4008 AFX_INTERFACEMAP const COleDropSource::interfaceMap 4009 AFX_INTERFACEMAP const COleDropTarget::interfaceMap 4010 AFX_INTERFACEMAP const COleFrameHook::interfaceMap 4011 AFX_INTERFACEMAP const COleLinkingDoc::interfaceMap 4012 AFX_INTERFACEMAP const COleMessageFilter::interfaceMap 4013 AFX_INTERFACEMAP const COleObjectFactory::interfaceMap 4014 AFX_INTERFACEMAP const COlePropertyPage::interfaceMap 4015 AFX_INTERFACEMAP const COleServerDoc::interfaceMap 4016 AFX_INTERFACEMAP const COleServerItem::interfaceMap 4017 AFX_INTERFACEMAP const CRichEditView::interfaceMap 4018 CFontHolder & COleControl::InternalGetFont() 4019 CString const & COleControl::InternalGetText() 4020 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 4021 unsigned long CCmdTarget::InternalRelease() 4022 int CDC::IntersectClipRect(int,int,int,int) 4023 int CDC::IntersectClipRect(tagRECT const *) 4024 void CCheckListBox::InvalidateCheck(int) 4025 void COleControl::InvalidateControl(tagRECT const *,int) 4026 void CCheckListBox::InvalidateItem(int) 4027 void COleControl::InvalidateRgn(CRgn *,int) 4028 void CMiniFrameWnd::InvertSysMenu() 4029 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4030 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4031 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4032 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4033 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4034 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4035 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4036 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4037 int CDocItem::IsBlank()const 4038 int COleServerItem::IsBlank()const 4039 int CDaoRecordset::IsBOF()const 4040 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 4041 int COleServerItem::IsConnected()const 4042 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 4043 int COleControlSite::IsDefaultButton() 4044 int CDaoRecordset::IsDeleted()const 4045 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 4046 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 4047 int CWnd::IsDialogMessageA(tagMSG *) 4048 long CBlobProperty::IsDirty() 4049 long COleLinkingDoc::XPersistFile::IsDirty() 4050 long COleControl::XPersistMemory::IsDirty() 4051 long COleControl::XPersistStorage::IsDirty() 4052 long COleServerDoc::XPersistStorage::IsDirty() 4053 long COleControl::XPersistStreamInit::IsDirty() 4054 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 4055 unsigned int CWnd::IsDlgButtonChecked(int)const 4056 int CControlBar::IsDockBar()const 4057 int CDockBar::IsDockBar()const 4058 int CFileFind::IsDots()const 4059 int CGopherFileFind::IsDots()const 4060 int CCheckListBox::IsEnabled(int) 4061 int CDaoRecordset::IsEOF()const 4062 int CDaoRecordset::IsFieldDirty(void *) 4063 int CRecordset::IsFieldDirty(void *) 4064 int CDaoRecordset::IsFieldNull(void *) 4065 int CRecordset::IsFieldNull(void *) 4066 int CDaoRecordset::IsFieldNullable(void *) 4067 int CRecordset::IsFieldNullable(void *) 4068 int CRecordset::IsFieldNullable(unsigned long)const 4069 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 4070 int CRecordset::IsFieldStatusDirty(unsigned long)const 4071 int CDaoRecordset::IsFieldStatusNull(unsigned int) 4072 int CRecordset::IsFieldStatusNull(unsigned long)const 4073 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 4074 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 4075 int CFieldExchange::IsFieldType(unsigned int *) 4076 int CControlBar::IsFloating()const 4077 int CFrameWnd::IsFrameWnd()const 4078 int CWnd::IsFrameWnd()const 4079 int CWinThread::IsIdleMessage(tagMSG *) 4080 int CCmdTarget::IsInvokeAllowed(long) 4081 int COleControl::IsInvokeAllowed(long) 4082 int CRecordset::IsJoin(char const *) 4083 int CObject::IsKindOf(CRuntimeconst *)const 4084 int COccManager::IsLabelControl(CWnd *) 4085 int COleObjectFactory::IsLicenseValid() 4086 int CDaoRecordset::IsMatch() 4087 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 4088 int COleControlSite::IsMatchingMnemonic(tagMSG *) 4089 int CDocument::IsModified() 4090 int COleClientItem::IsModified()const 4091 int COleControl::IsModified() 4092 int COlePropertyPage::IsModified() 4093 int CRichEditDoc::IsModified() 4094 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 4095 int CDaoRecordView::IsOnFirstRecord() 4096 int CRecordView::IsOnFirstRecord() 4097 int CDaoRecordView::IsOnLastRecord() 4098 int CRecordView::IsOnLastRecord() 4099 int CRecordset::IsOpen()const 4100 long COlePropertyPage::XPropertyPage::IsPageDirty() 4101 int CRecordset::IsParamStatusNull(unsigned long)const 4102 int CRecordset::IsRecordsetUpdatable() 4103 int COleObjectFactory::IsRegistered()const 4104 int CCmdTarget::IsResultExpected() 4105 int CRichEditView::IsRichEditFormat(unsigned short) 4106 long COleLinkingDoc::XOleItemContainer::IsRunning(unsigned short *) 4107 int CRichEditView::IsSelected(CObject const *)const 4108 int CView::IsSelected(CObject const *)const 4109 int CRecordset::IsSelectQueryUpdatable(char const *) 4110 int CObject::IsSerializable()const 4111 int COleMessageFilter::IsSignificantMessage(tagMSG *) 4112 int CRecordset::IsSQLUpdatable(char const *) 4113 int COleControl::IsSubclassedControl() 4114 int CWnd::IsTopParentActive()const 4115 int CFrameWnd::IsTracking()const 4116 long CDocObjectServer::XOleObject::IsUpToDate() 4117 long COleControl::XOleObject::IsUpToDate() 4118 long COleServerDoc::XOleObject::IsUpToDate() 4119 long COleServerItem::XOleObject::IsUpToDate() 4120 int CDaoFieldExchange::IsValidOperation() 4121 int CControlBar::IsVisible()const 4122 int COleControlSite::IsWindowEnabled()const 4123 int CWnd::IsWindowEnabled()const 4124 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 4125 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 4126 void COleControl::KeyDown(unsigned short *) 4127 void COleControl::KeyUp(unsigned short *) 4128 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 4129 CString CString::Left(int)const 4130 int CRichEditCtrl::LineIndex(int)const 4131 int CRichEditCtrl::LineLength(int)const 4132 void CRichEditCtrl::LineScroll(int,int) 4133 int CDC::LineTo(int,int) 4134 unsigned long CRichEditView::lMaxSize 4135 long CBlobProperty::Load(IStream *) 4136 int CDialogTemplate::Load(char const *) 4137 void COleControl::Load(char const *,CDataPathProperty &) 4138 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4139 long COleLinkingDoc::XPersistFile::Load(unsigned short const *,unsigned long) 4140 long COleControl::XPersistMemory::Load(void *,unsigned long) 4141 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4142 long COleControl::XPersistStorage::Load(IStorage *) 4143 long COleServerDoc::XPersistStorage::Load(IStorage *) 4144 long COleControl::XPersistStreamInit::Load(IStream *) 4145 int CFrameWnd::LoadAccelTable(char const *) 4146 void CFrameWnd::LoadBarState(char const *) 4147 int CToolBar::LoadBitmapA(char const *) 4148 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 4149 void CDaoRecordset::LoadFields() 4150 void CRecordset::LoadFields() 4151 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4152 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4153 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4154 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4155 void COleDocument::LoadFromStorage() 4156 int CControlBarInfo::LoadState(char const *,int,CDockState *) 4157 void CDockState::LoadState(char const *) 4158 long COleControl::LoadState(IStream *) 4159 void CWinApp::LoadStdProfileSettings(unsigned int) 4160 int CString::LoadStringA(unsigned int) 4161 void CDocTemplate::LoadTemplate() 4162 void CMultiDocTemplate::LoadTemplate() 4163 int CToolBar::LoadToolBar(char const *) 4164 int CCriticalSection::Lock(unsigned long) 4165 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4166 void COleSafeArray::Lock() 4167 int CSingleLock::Lock(unsigned long) 4168 int CSyncObject::Lock(unsigned long) 4169 void CTypeLibCache::Lock() 4170 char const * CEditView::LockBuffer()const 4171 char * CString::LockBuffer() 4172 long COleControlContainer::XOleContainer::LockContainer(int) 4173 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4174 void COleLinkingDoc::LockExternal(int,int) 4175 int COleControl::LockInPlaceActive(int) 4176 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4177 void CFile::LockRange(unsigned long,unsigned long) 4178 void CInternetFile::LockRange(unsigned long,unsigned long) 4179 void CMemFile::LockRange(unsigned long,unsigned long) 4180 void COleStreamFile::LockRange(unsigned long,unsigned long) 4181 void CSocketFile::LockRange(unsigned long,unsigned long) 4182 void CStdioFile::LockRange(unsigned long,unsigned long) 4183 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4184 long COleObjectFactory::XClassFactory::LockServer(int) 4185 int CMapPtrToPtr::Lookup(void *,void * &)const 4186 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4187 int CMapStringToOb::Lookup(char const *,CObject * &)const 4188 int CMapStringToPtr::Lookup(char const *,void * &)const 4189 int CMapStringToString::Lookup(char const *,CString &)const 4190 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4191 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4192 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4193 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4194 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4195 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4196 int CMapStringToOb::LookupKey(char const *,char const * &)const 4197 int CMapStringToPtr::LookupKey(char const *,char const * &)const 4198 int CMapStringToString::LookupKey(char const *,char const * &)const 4199 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4200 void CDC::LPtoDP(tagSIZE *)const 4201 void CDC::LPtoHIMETRIC(tagSIZE *)const 4202 void CString::MakeLower() 4203 void CString::MakeReverse() 4204 void CString::MakeUpper() 4205 void CArchive::MapObject(CObject const *) 4206 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4207 int COleDialog::MapResult(unsigned int) 4208 long CPropertyPage::MapWizardResult(long) 4209 void CDaoRecordset::MarkForAddNew() 4210 void CRecordset::MarkForAddNew() 4211 void CDaoRecordset::MarkForEdit() 4212 void CRecordset::MarkForUpdate() 4213 void CRichEditDoc::MarkItemsClear()const 4214 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 4215 int CFileFind::MatchesMask(unsigned long)const 4216 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4217 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4218 void CComboBox::MeasureItem(tagMEASUREITEM*) 4219 void CListBox::MeasureItem(tagMEASUREITEM*) 4220 void CMenu::MeasureItem(tagMEASUREITEM*) 4221 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 4222 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned int) 4223 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 4224 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 4225 AFX_MSGMAP const CCheckListBox::messageMap 4226 AFX_MSGMAP const CCmdTarget::messageMap 4227 AFX_MSGMAP const CColorDialog::messageMap 4228 AFX_MSGMAP const CColorPropPage::messageMap 4229 AFX_MSGMAP const CCommonDialog::messageMap 4230 AFX_MSGMAP const CControlBar::messageMap 4231 AFX_MSGMAP const CControlFrameWnd::messageMap 4232 AFX_MSGMAP const CCtrlView::messageMap 4233 AFX_MSGMAP const CDaoRecordView::messageMap 4234 AFX_MSGMAP const CDialog::messageMap 4235 AFX_MSGMAP const CDialogBar::messageMap 4236 AFX_MSGMAP const CDockBar::messageMap 4237 AFX_MSGMAP const CDocObjectServer::messageMap 4238 AFX_MSGMAP const CDocument::messageMap 4239 AFX_MSGMAP const CEditView::messageMap 4240 AFX_MSGMAP const CFontPropPage::messageMap 4241 AFX_MSGMAP const CFormView::messageMap 4242 AFX_MSGMAP const CFrameWnd::messageMap 4243 AFX_MSGMAP const CListCtrl::messageMap 4244 AFX_MSGMAP const CListView::messageMap 4245 AFX_MSGMAP const CMDIChildWnd::messageMap 4246 AFX_MSGMAP const CMDIFrameWnd::messageMap 4247 AFX_MSGMAP const CMiniDockFrameWnd::messageMap 4248 AFX_MSGMAP const CMiniFrameWnd::messageMap 4249 AFX_MSGMAP const COleControl::messageMap 4250 AFX_MSGMAP const COleDocIPFrameWnd::messageMap 4251 AFX_MSGMAP const COleIPFrameWnd::messageMap 4252 AFX_MSGMAP const COlePropertyPage::messageMap 4253 AFX_MSGMAP const COleResizeBar::messageMap 4254 AFX_MSGMAP const COleServerDoc::messageMap 4255 AFX_MSGMAP const CPicturePropPage::messageMap 4256 AFX_MSGMAP const CPreviewView::messageMap 4257 AFX_MSGMAP const CPrintDialog::messageMap 4258 AFX_MSGMAP const CPropertyPage::messageMap 4259 AFX_MSGMAP const CPropertySheet::messageMap 4260 AFX_MSGMAP const CRecordView::messageMap 4261 AFX_MSGMAP const CRichEditView::messageMap 4262 AFX_MSGMAP const CScrollView::messageMap 4263 AFX_MSGMAP const CSocketWnd::messageMap 4264 AFX_MSGMAP const CSplitterWnd::messageMap 4265 AFX_MSGMAP const CStatusBar::messageMap 4266 AFX_MSGMAP const CStockPropPage::messageMap 4267 AFX_MSGMAP const CTabCtrl::messageMap 4268 AFX_MSGMAP const CToolBar::messageMap 4269 AFX_MSGMAP const CToolBarCtrl::messageMap 4270 AFX_MSGMAP const CToolTipCtrl::messageMap 4271 AFX_MSGMAP const CTreeCtrl::messageMap 4272 AFX_MSGMAP const CTreeView::messageMap 4273 AFX_MSGMAP const CView::messageMap 4274 AFX_MSGMAP const CWinApp::messageMap 4275 AFX_MSGMAP const CWnd::messageMap 4276 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4277 CString CString::Mid(int)const 4278 CString CString::Mid(int,int)const 4279 void CPreviewDC::MirrorAttributes() 4280 void CPreviewDC::MirrorFont() 4281 void CPreviewDC::MirrorMappingMode(int) 4282 void CPreviewDC::MirrorViewportOrg() 4283 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4284 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4285 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4286 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4287 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4288 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4289 void CDaoRecordset::Move(long) 4290 void CDockContext::Move(CPoint) 4291 void CRecordset::Move(long,unsigned short) 4292 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4293 void CDaoRecordset::MoveFirst() 4294 void CDaoRecordset::MoveLast() 4295 void CDaoRecordset::MoveNext() 4296 void CDaoRecordset::MovePrev() 4297 CPoint CDC::MoveTo(int,int) 4298 void COleControlSite::MoveWindow(int,int,int,int,int) 4299 void CWnd::MoveWindow(int,int,int,int,int) 4300 CRect CRect::MulDiv(int,int)const 4301 unsigned int COleDropSource::nDragDelay 4302 unsigned int COleDropSource::nDragMinDist 4303 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4304 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 4305 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 4306 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 4307 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 4308 CMapStringToString::CAssoc * CMapStringToString::NewAssoc() 4309 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 4310 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 4311 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4312 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4313 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4314 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4315 unsigned int const CEditView::nMaxSize 4316 int CRectTracker::NormalizeHit(int)const 4317 void CRect::NormalizeRect() 4318 void CDataBoundProperty::Notify() 4319 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4320 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4321 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4322 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4323 void COleServerDoc::NotifyRename(char const *) 4324 unsigned int COleDropTarget::nScrollDelay 4325 int COleDropTarget::nScrollInset 4326 unsigned int COleDropTarget::nScrollInterval 4327 void CString::OemToCharA() 4328 int CDC::OffsetClipRgn(int,int) 4329 int CDC::OffsetClipRgn(tagSIZE) 4330 CPoint CDC::OffsetViewportOrg(int,int) 4331 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4332 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4333 CPoint CDC::OffsetWindowOrg(int,int) 4334 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4335 void CAsyncSocket::OnAccept(int) 4336 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4337 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4338 void COleClientItem::OnActivate() 4339 void COleFrameHook::OnActivate(int) 4340 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4341 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4342 long COleControl::OnActivateInPlace(int,tagMSG *) 4343 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4344 long CWnd::OnActivateTopLevel(unsigned int,long) 4345 void COleClientItem::OnActivateUI() 4346 long CDocObjectServer::OnActivateView() 4347 void CFormView::OnActivateView(int,CView *,CView *) 4348 void CPreviewView::OnActivateView(int,CView *,CView *) 4349 void CView::OnActivateView(int,CView *,CView *) 4350 long CToolTipCtrl::OnAddTool(unsigned int,long) 4351 void CConnectionPoint::OnAdvise(int) 4352 void COleControl::XEventConnPt::OnAdvise(int) 4353 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4354 void COleControl::OnAmbientPropertyChange(long) 4355 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4356 void COleControl::OnAppearanceChanged() 4357 void CWinApp::OnAppExit() 4358 int CPropertyPage::OnApply() 4359 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4360 void CDocObjectServer::OnApplyViewState(CArchive &) 4361 void COleControl::OnBackColorChanged() 4362 int CFrameWnd::OnBarCheck(unsigned int) 4363 int COleIPFrameWnd::OnBarCheck(unsigned int) 4364 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4365 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4366 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4367 int COleDropSource::OnBeginDrag(CWnd *) 4368 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4369 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4370 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4371 void COleControl::OnBorderStyleChanged() 4372 void CPicturePropPage::OnBrowse() 4373 void CRichEditView::OnBullet() 4374 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4375 void CCommonDialog::OnCancel() 4376 void CDialog::OnCancel() 4377 void CPropertyPage::OnCancel() 4378 void CRichEditView::OnCancelEditCntr() 4379 void COleControl::OnCancelMode() 4380 void CSplitterWnd::OnCancelMode() 4381 void CWnd::OnCancelMode() 4382 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4383 long COleControl::XFontNotification::OnChanged(long) 4384 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4385 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4386 void CRectTracker::OnChangedRect(CRect const &) 4387 void CDocument::OnChangedViewList() 4388 int COleClientItem::OnChangeItemPosition(CRect const &) 4389 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4390 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4391 void CRichEditView::OnCharBold() 4392 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4393 void CRichEditView::OnCharItalic() 4394 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4395 void CRichEditView::OnCharUnderline() 4396 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4397 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4398 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4399 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4400 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4401 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4402 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4403 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4404 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4405 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4406 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4407 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4408 void CPicturePropPage::OnClear() 4409 void COleControl::OnClick(unsigned short) 4410 CEnumArray * CEnumArray::OnClone() 4411 void CAsyncSocket::OnClose(int) 4412 void CControlFrameWnd::OnClose() 4413 void CFrameWnd::OnClose() 4414 void CMiniDockFrameWnd::OnClose() 4415 void COleControl::OnClose(unsigned long) 4416 void COleServerDoc::OnClose(enum tagOLECLOSE) 4417 void CPropertySheet::OnClose() 4418 void COleClientItem::XAdviseSink::OnClose() 4419 void CDocObjectServer::OnCloseDocument() 4420 void CDocument::OnCloseDocument() 4421 void COleDocument::OnCloseDocument() 4422 void COleLinkingDoc::OnCloseDocument() 4423 void COleServerDoc::OnCloseDocument() 4424 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4425 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4426 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4427 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4428 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4429 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4430 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4431 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4432 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4433 void CRichEditView::OnColorDefault() 4434 int CColorDialog::OnColorOK() 4435 void CRichEditView::OnColorPick(unsigned long) 4436 int CFrameWnd::OnCommand(unsigned int,long) 4437 int CMDIFrameWnd::OnCommand(unsigned int,long) 4438 int COlePropertyPage::OnCommand(unsigned int,long) 4439 int CPropertySheet::OnCommand(unsigned int,long) 4440 int CSplitterWnd::OnCommand(unsigned int,long) 4441 int CWnd::OnCommand(unsigned int,long) 4442 long CDialog::OnCommandHelp(unsigned int,long) 4443 long CFrameWnd::OnCommandHelp(unsigned int,long) 4444 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4445 long CPropertySheet::OnCommandHelp(unsigned int,long) 4446 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4447 void CAsyncSocket::OnConnect(int) 4448 void CFrameWnd::OnContextHelp() 4449 int COleFrameHook::OnContextHelp(int) 4450 void COleIPFrameWnd::OnContextHelp() 4451 void CWinApp::OnContextHelp() 4452 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4453 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 4454 int CControlBar::OnCreate(tagCREATESTRUCTA *) 4455 int CEditView::OnCreate(tagCREATESTRUCTA *) 4456 int CFormView::OnCreate(tagCREATESTRUCTA *) 4457 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 4458 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 4459 int COleControl::OnCreate(tagCREATESTRUCTA *) 4460 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 4461 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 4462 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 4463 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 4464 int CView::OnCreate(tagCREATESTRUCTA *) 4465 int CCmdTarget::OnCreateAggregates() 4466 int COleControl::OnCreateAggregates() 4467 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4468 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4469 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4470 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4471 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 4472 CCmdTarget * COleObjectFactory::OnCreateObject() 4473 CCmdTarget * COleTemplateServer::OnCreateObject() 4474 HBRUSH__ * CColorDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 4475 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4476 HBRUSH__ * CDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 4477 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4478 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4479 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4480 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4481 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4482 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4483 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4484 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4485 int CDocManager::OnDDECommand(char *) 4486 int CWinApp::OnDDECommand(char *) 4487 long CFrameWnd::OnDDEExecute(unsigned int,long) 4488 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4489 long CFrameWnd::OnDDETerminate(unsigned int,long) 4490 void COleClientItem::OnDeactivate() 4491 void COleServerDoc::OnDeactivate() 4492 void COleClientItem::OnDeactivateAndUndo() 4493 void COleClientItem::OnDeactivateUI(int) 4494 void COleServerDoc::OnDeactivateUI(int) 4495 void CRichEditCntrItem::OnDeactivateUI(int) 4496 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4497 void CControlBar::OnDestroy() 4498 void CEditView::OnDestroy() 4499 void CFrameWnd::OnDestroy() 4500 void CMDIChildWnd::OnDestroy() 4501 void CMDIFrameWnd::OnDestroy() 4502 void COleControl::OnDestroy() 4503 void COleIPFrameWnd::OnDestroy() 4504 void CRichEditView::OnDestroy() 4505 void CTabCtrl::OnDestroy() 4506 void CTreeCtrl::OnDestroy() 4507 void CTreeView::OnDestroy() 4508 void CView::OnDestroy() 4509 void CRichEditView::OnDevModeChange(char *) 4510 void CWnd::OnDevModeChange(char *) 4511 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4512 void COleClientItem::OnDiscardUndoState() 4513 void CSplitterWnd::OnDisplayChange() 4514 long CWnd::OnDisplayChange(unsigned int,long) 4515 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4516 int COleFrameHook::OnDocActivate(int) 4517 void COleServerDoc::OnDocWindowActivate(int) 4518 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4519 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4520 void CDocObjectServerItem::OnDoVerb(long) 4521 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4522 void COleServerItem::OnDoVerb(long) 4523 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4524 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4525 void COleDropTarget::OnDragLeave(CWnd *) 4526 void CView::OnDragLeave() 4527 long CWnd::OnDragList(unsigned int,long) 4528 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4529 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4530 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4531 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4532 void CCtrlView::OnDraw(CDC *) 4533 void CFormView::OnDraw(CDC *) 4534 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4535 void CPreviewView::OnDraw(CDC *) 4536 void CView::OnDraw(CDC *) 4537 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4538 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4539 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4540 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4541 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4542 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4543 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4544 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4545 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4546 void CFrameWnd::OnDropFiles(HDROP__ *) 4547 void CRichEditView::OnDropFiles(HDROP__ *) 4548 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4549 int CEditView::OnEditChange() 4550 void CFontPropPage::OnEditchangeFontstyles() 4551 void COleDocument::OnEditChangeIcon() 4552 void CEditView::OnEditClear() 4553 void CRichEditView::OnEditClear() 4554 void COleDocument::OnEditConvert() 4555 void CEditView::OnEditCopy() 4556 void CRichEditView::OnEditCopy() 4557 void CEditView::OnEditCut() 4558 void CRichEditView::OnEditCut() 4559 void CEditView::OnEditFind() 4560 void CRichEditView::OnEditFind() 4561 void CEditView::OnEditFindReplace(int) 4562 void CRichEditView::OnEditFindReplace(int) 4563 void COleDocument::OnEditLinks() 4564 void CEditView::OnEditPaste() 4565 void CRichEditView::OnEditPaste() 4566 void CRichEditView::OnEditPasteSpecial() 4567 void CRichEditView::OnEditProperties() 4568 int CColorPropPage::OnEditProperty(long) 4569 int CFontPropPage::OnEditProperty(long) 4570 int COlePropertyPage::OnEditProperty(long) 4571 int CPicturePropPage::OnEditProperty(long) 4572 int CStockPropPage::OnEditProperty(long,CComboBox &) 4573 void CEditView::OnEditRepeat() 4574 void CRichEditView::OnEditRepeat() 4575 void CEditView::OnEditReplace() 4576 void CRichEditView::OnEditReplace() 4577 void CEditView::OnEditSelectAll() 4578 void CRichEditView::OnEditSelectAll() 4579 void CEditView::OnEditUndo() 4580 void CRichEditView::OnEditUndo() 4581 void CFontPropPage::OnEditupdateFontnames() 4582 void CFontPropPage::OnEditupdateFontsizes() 4583 void CFrameWnd::OnEnable(int) 4584 void COleControl::OnEnabledChanged() 4585 void COleFrameHook::OnEnableModeless(int) 4586 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4587 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4588 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4589 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4590 void CFrameWnd::OnEndSession(int) 4591 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4592 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4593 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4594 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4595 int CFrameWnd::OnEraseBkgnd(CDC *) 4596 int COleResizeBar::OnEraseBkgnd(CDC *) 4597 int CPreviewView::OnEraseBkgnd(CDC *) 4598 int CToolBar::OnEraseBkgnd(CDC *) 4599 int CWnd::OnEraseBkgnd(CDC *) 4600 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4601 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4602 int COleControlSite::OnEvent(AFX_EVENT *) 4603 void COleControl::OnEventAdvise(int) 4604 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4605 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4606 void CDocument::OnFileClose() 4607 void CFileDialog::OnFileNameChange() 4608 int CFileDialog::OnFileNameOK() 4609 void CDocManager::OnFileNew() 4610 void CWinApp::OnFileNew() 4611 void CDocManager::OnFileOpen() 4612 void CWinApp::OnFileOpen() 4613 void CView::OnFilePrint() 4614 void CView::OnFilePrintPreview() 4615 void CWinApp::OnFilePrintSetup() 4616 void CDocument::OnFileSave() 4617 void CDocument::OnFileSaveAs() 4618 void COleServerDoc::OnFileSaveCopyAs() 4619 void CDocument::OnFileSendMail() 4620 void COleDocument::OnFileSendMail() 4621 void COleServerDoc::OnFileUpdate() 4622 void CCmdTarget::OnFinalRelease() 4623 void CDocument::OnFinalRelease() 4624 void COleControl::OnFinalRelease() 4625 void COlePropertyPage::OnFinalRelease() 4626 void COleServerItem::OnFinalRelease() 4627 void CWnd::OnFinalRelease() 4628 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 4629 void CEditView::OnFindNext(char const *,int,int) 4630 void CRichEditView::OnFindNext(char const *,int,int,int) 4631 long CEditView::OnFindReplaceCmd(unsigned int,long) 4632 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4633 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4634 long COleControlSite::XOleControlSite::OnFocus(int) 4635 void CFileDialog::OnFolderChange() 4636 void COleControl::OnFontChanged() 4637 void COleControl::OnForeColorChanged() 4638 void CRichEditView::OnFormatFont() 4639 void COleControl::OnFrameClose() 4640 void COleServerDoc::OnFrameWindowActivate(int) 4641 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4642 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4643 void COleControl::OnFreezeEvents(int) 4644 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4645 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4646 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4647 void COleClientItem::OnGetClipRect(CRect &) 4648 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4649 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4650 int COleControl::OnGetDisplayString(long,CString &) 4651 unsigned int COleControl::OnGetDlgCode() 4652 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4653 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4654 HMENU__ * COleControl::OnGetInPlaceMenu() 4655 void COleClientItem::OnGetItemPosition(CRect &) 4656 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 4657 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 4658 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4659 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4660 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4661 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4662 long CMiniFrameWnd::OnGetText(unsigned int,long) 4663 long CStatusBar::OnGetText(unsigned int,long) 4664 long CMiniFrameWnd::OnGetTextLength(unsigned int,long) 4665 long CStatusBar::OnGetTextLength(unsigned int,long) 4666 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4667 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4668 unsigned long COleControl::OnGetViewStatus() 4669 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4670 HBRUSH__ * CWnd::OnGrayCtlColor(CDC *,CWnd *,unsigned int) 4671 void CFrameWnd::OnHelp() 4672 int COlePropertyPage::OnHelp(char const *) 4673 void CWinApp::OnHelp() 4674 void CWnd::OnHelp() 4675 void CWinApp::OnHelpFinder() 4676 void CWnd::OnHelpFinder() 4677 long CControlBar::OnHelpHitTest(unsigned int,long) 4678 long CDialog::OnHelpHitTest(unsigned int,long) 4679 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4680 void CWinApp::OnHelpIndex() 4681 void CWnd::OnHelpIndex() 4682 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4683 int CWnd::OnHelpInfo(tagHELPINFO *) 4684 void CWinApp::OnHelpUsing() 4685 void CWnd::OnHelpUsing() 4686 void CDocObjectServerItem::OnHide() 4687 long COleControl::OnHide() 4688 void COleServerItem::OnHide() 4689 void COleControl::OnHideToolBars() 4690 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4691 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4692 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4693 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4694 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4695 void CDocTemplate::OnIdle() 4696 void CDocument::OnIdle() 4697 void COleDocument::OnIdle() 4698 int CWinApp::OnIdle(long) 4699 int CWinThread::OnIdle(long) 4700 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4701 void CFrameWnd::OnIdleUpdateCmdUI() 4702 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4703 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4704 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4705 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4706 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4707 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4708 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4709 int CColorPropPage::OnInitDialog() 4710 int CDialog::OnInitDialog() 4711 int CFontPropPage::OnInitDialog() 4712 int COlePropertiesDialog::OnInitDialog() 4713 int COlePropertyPage::OnInitDialog() 4714 int CPicturePropPage::OnInitDialog() 4715 int CPropertySheet::OnInitDialog() 4716 void CFileDialog::OnInitDone() 4717 int COleServerItem::OnInitFromData(COleDataObject *,int) 4718 void CControlBar::OnInitialUpdate() 4719 void CDaoRecordView::OnInitialUpdate() 4720 void CFormView::OnInitialUpdate() 4721 void CRecordView::OnInitialUpdate() 4722 void CRichEditView::OnInitialUpdate() 4723 void CView::OnInitialUpdate() 4724 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4725 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4726 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4727 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4728 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4729 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4730 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4731 void CRichEditView::OnInsertObject() 4732 void CSplitterWnd::OnInvertTracker(CRect const &) 4733 void CDockContext::OnKey(int,int) 4734 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4735 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4736 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4737 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4738 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4739 void COleControl::OnKeyPressEvent(unsigned short) 4740 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4741 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4742 int CPropertyPage::OnKillActive() 4743 void COleControl::OnKillFocus(CWnd *) 4744 long CCheckListBox::OnLBAddString(unsigned int,long) 4745 long CCheckListBox::OnLBFindString(unsigned int,long) 4746 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4747 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4748 long CCheckListBox::OnLBGetText(unsigned int,long) 4749 long CCheckListBox::OnLBInsertString(unsigned int,long) 4750 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4751 long CCheckListBox::OnLBSelectString(unsigned int,long) 4752 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4753 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4754 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4755 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4756 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4757 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4758 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4759 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4760 void COleControl::OnLButtonDown(unsigned int,CPoint) 4761 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4762 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4763 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4764 void CMiniFrameWnd::OnLButtonUp(unsigned int,CPoint) 4765 void COleControl::OnLButtonUp(unsigned int,CPoint) 4766 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4767 void CAsyncMonikerFile::OnLowResource() 4768 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4769 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4770 void COleControl::OnMButtonDown(unsigned int,CPoint) 4771 void COleControl::OnMButtonUp(unsigned int,CPoint) 4772 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4773 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4774 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4775 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4776 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4777 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4778 int COleMessageFilter::OnMessagePending(tagMSG const *) 4779 int CSocket::OnMessagePending() 4780 void COleControl::OnMnemonic(tagMSG *) 4781 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4782 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4783 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4784 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4785 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4786 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4787 void CMiniFrameWnd::OnMouseMove(unsigned int,CPoint) 4788 void COleControl::OnMouseMove(unsigned int,CPoint) 4789 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4790 int CDaoRecordView::OnMove(unsigned int) 4791 void COleControl::OnMove(int,int) 4792 int CRecordView::OnMove(unsigned int) 4793 int CFrameWnd::OnNcActivate(int) 4794 int CMDIChildWnd::OnNcActivate(int) 4795 int CMiniFrameWnd::OnNcActivate(int) 4796 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4797 void CMiniFrameWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4798 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4799 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4800 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4801 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 4802 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 4803 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 4804 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 4805 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 4806 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 4807 void CListCtrl::OnNcDestroy() 4808 void CListView::OnNcDestroy() 4809 void CWnd::OnNcDestroy() 4810 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 4811 unsigned int COleControl::OnNcHitTest(CPoint) 4812 unsigned int CStatusBar::OnNcHitTest(CPoint) 4813 unsigned int CToolBar::OnNcHitTest(CPoint) 4814 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4815 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4816 void CMiniFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4817 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4818 void CDockBar::OnNcPaint() 4819 void CMiniFrameWnd::OnNcPaint() 4820 void COleControl::OnNcPaint() 4821 void CStatusBar::OnNcPaint() 4822 void CToolBar::OnNcPaint() 4823 int CDocument::OnNewDocument() 4824 int COleDocument::OnNewDocument() 4825 int COleLinkingDoc::OnNewDocument() 4826 void COleServerDoc::OnNewEmbedding(IStorage *) 4827 int CEnumArray::OnNext(void *) 4828 int CEnumConnPoints::OnNext(void *) 4829 int CEnumFormatEtc::OnNext(void *) 4830 int CEnumOleVerb::OnNext(void *) 4831 int CEnumUnknown::OnNext(void *) 4832 void CPreviewView::OnNextPage() 4833 int CView::OnNextPaneCmd(unsigned int) 4834 int CFileDialog::OnNotify(unsigned int,long,long *) 4835 int CPropertyPage::OnNotify(unsigned int,long,long *) 4836 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4837 int CWnd::OnNotify(unsigned int,long,long *) 4838 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4839 long CWnd::OnNTCtlColor(unsigned int,long) 4840 void CPreviewView::OnNumPageChange() 4841 void CColorPropPage::OnObjectsChanged() 4842 void CFontPropPage::OnObjectsChanged() 4843 void COlePropertyPage::OnObjectsChanged() 4844 void CPicturePropPage::OnObjectsChanged() 4845 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4846 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4847 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4848 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4849 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4850 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4851 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4852 void CCommonDialog::OnOK() 4853 void CDialog::OnOK() 4854 void CPropertyPage::OnOK() 4855 void CDocObjectServerItem::OnOpen() 4856 long COleControl::OnOpen(int,tagMSG *) 4857 void COleServerItem::OnOpen() 4858 int CDocument::OnOpenDocument(char const *) 4859 int COleDocument::OnOpenDocument(char const *) 4860 int COleLinkingDoc::OnOpenDocument(char const *) 4861 void COleServerDoc::OnOpenEmbedding(IStorage *) 4862 int CWinApp::OnOpenRecentFile(unsigned int) 4863 void CAsyncSocket::OnOutOfBandData(int) 4864 void CControlBar::OnPaint() 4865 void CCtrlView::OnPaint() 4866 void CDockBar::OnPaint() 4867 void CFontPropPage::OnPaint() 4868 void COleControl::OnPaint(CDC *) 4869 void COleResizeBar::OnPaint() 4870 void CPicturePropPage::OnPaint() 4871 void CSplitterWnd::OnPaint() 4872 void CStatusBar::OnPaint() 4873 void CToolBar::OnPaint() 4874 void CView::OnPaint() 4875 void CFrameWnd::OnPaletteChanged(CWnd *) 4876 void COleFrameHook::OnPaletteChanged(CWnd *) 4877 void CRichEditView::OnParaAlign(unsigned short) 4878 void CRichEditView::OnParaCenter() 4879 void CRichEditView::OnParaLeft() 4880 void CRichEditView::OnParaRight() 4881 void CWnd::OnParentNotify(unsigned int,long) 4882 int CRichEditView::OnPasteNativeObject(IStorage *) 4883 long CFrameWnd::OnPopMessageString(unsigned int,long) 4884 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4885 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4886 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4887 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4888 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4889 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4890 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4891 int CEditView::OnPreparePrinting(CPrintInfo *) 4892 int CView::OnPreparePrinting(CPrintInfo *) 4893 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4894 void CPreviewView::OnPreviewClose() 4895 void CPreviewView::OnPreviewPrint() 4896 void CPreviewView::OnPrevPage() 4897 void CEditView::OnPrint(CDC *,CPrintInfo *) 4898 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4899 void CView::OnPrint(CDC *,CPrintInfo *) 4900 void CRichEditView::OnPrinterChanged(CDC const &) 4901 void CPrintDialog::OnPrintSetup() 4902 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 4903 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4904 long CWnd::OnQuery3dControls(unsigned int,long) 4905 int CPropertyPage::OnQueryCancel() 4906 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4907 int CFrameWnd::OnQueryEndSession() 4908 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4909 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4910 int CFrameWnd::OnQueryNewPalette() 4911 int COleFrameHook::OnQueryNewPalette() 4912 int COleServerItem::OnQueryUpdateItems() 4913 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4914 void COleControl::OnRButtonDown(unsigned int,CPoint) 4915 void COleControl::OnRButtonUp(unsigned int,CPoint) 4916 int COleServerDoc::OnReactivateAndUndo() 4917 void COleFrameHook::OnRecalcLayout() 4918 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4919 void CAsyncSocket::OnReceive(int) 4920 void COleControl::OnReflectorDestroyed() 4921 void COleClientItem::OnRemoveMenus(CMenu *) 4922 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4923 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4924 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4925 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4926 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4927 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4928 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4929 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4930 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4931 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4932 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4933 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4934 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4935 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4936 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4937 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4938 void CEditView::OnReplaceAll(char const *,char const *,int) 4939 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 4940 void CEditView::OnReplaceSel(char const *,int,int,char const *) 4941 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 4942 long COleControl::XFontNotification::OnRequestEdit(long) 4943 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4944 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4945 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4946 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4947 void CEnumArray::OnReset() 4948 void CPropertyPage::OnReset() 4949 void COleControl::OnResetState() 4950 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4951 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4952 void COleClientItem::XAdviseSink::OnSave() 4953 int CDocument::OnSaveDocument(char const *) 4954 int COleDocument::OnSaveDocument(char const *) 4955 int COleLinkingDoc::OnSaveDocument(char const *) 4956 int COleServerDoc::OnSaveDocument(char const *) 4957 void COleServerDoc::OnSaveEmbedding(IStorage *) 4958 void COleServerItem::OnSaveEmbedding(IStorage *) 4959 void CDocObjectServer::OnSaveViewState(CArchive &) 4960 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4961 int CView::OnScroll(unsigned int,unsigned int,int) 4962 int COleClientItem::OnScrollBy(CSize) 4963 int CScrollView::OnScrollBy(CSize,int) 4964 int CView::OnScrollBy(CSize,int) 4965 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4966 void CColorPropPage::OnSelchangeColorprop() 4967 void CFontPropPage::OnSelchangeFontnames() 4968 void CFontPropPage::OnSelchangeFontprop() 4969 void CFontPropPage::OnSelchangeFontsizes() 4970 void CFontPropPage::OnSelchangeFontstyles() 4971 void CPicturePropPage::OnSelchangePictProp() 4972 void CStockPropPage::OnSelchangePropname(CComboBox &) 4973 void CColorPropPage::OnSelchangeSystemcolors() 4974 void CColorPropPage::OnSelect() 4975 void CAsyncSocket::OnSend(int) 4976 int CPropertyPage::OnSetActive() 4977 long CToolBar::OnSetBitmapSize(unsigned int,long) 4978 long CToolBar::OnSetButtonSize(unsigned int,long) 4979 void COleControl::OnSetClientSite() 4980 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4981 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4982 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4983 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4984 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4985 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4986 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4987 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4988 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4989 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4990 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4991 long CPropertySheet::OnSetDefID(unsigned int,long) 4992 int COleControl::OnSetExtent(tagSIZE *) 4993 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4994 void CFormView::OnSetFocus(CWnd *) 4995 void CFrameWnd::OnSetFocus(CWnd *) 4996 void COleControl::OnSetFocus(CWnd *) 4997 long CCheckListBox::OnSetFont(unsigned int,long) 4998 void CDialog::OnSetFont(CFont *) 4999 long CEditView::OnSetFont(unsigned int,long) 5000 void COleServerDoc::OnSetHostNames(char const *,char const *) 5001 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 5002 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 5003 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 5004 long CFrameWnd::OnSetMessageString(unsigned int,long) 5005 long COleControl::OnSetMessageString(unsigned int,long) 5006 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 5007 long CStatusBar::OnSetMinHeight(unsigned int,long) 5008 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 5009 void CDatabase::OnSetOptions(void *) 5010 void CRecordset::OnSetOptions(void *) 5011 void COlePropertyPage::OnSetPageSite() 5012 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 5013 long CMiniFrameWnd::OnSetText(unsigned int,long) 5014 long COleControl::OnSetText(unsigned int,long) 5015 long CStatusBar::OnSetText(unsigned int,long) 5016 unsigned int CFileDialog::OnShareViolation(char const *) 5017 void CDocObjectServerItem::OnShow() 5018 void COleServerItem::OnShow() 5019 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 5020 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 5021 void COleServerDoc::OnShowDocument(int) 5022 void COleClientItem::OnShowItem() 5023 void COleControl::OnShowToolBars() 5024 void COleDocument::OnShowViews(int) 5025 void COleLinkingDoc::OnShowViews(int) 5026 void COleControl::OnShowWindow(int,unsigned int) 5027 void CWnd::OnShowWindow(int,unsigned int) 5028 long COleClientItem::XOleClientSite::OnShowWindow(int) 5029 long COleControlSite::XOleClientSite::OnShowWindow(int) 5030 void CFrameWnd::OnSize(unsigned int,int,int) 5031 void CMDIChildWnd::OnSize(unsigned int,int,int) 5032 void CMDIFrameWnd::OnSize(unsigned int,int,int) 5033 void COleControl::OnSize(unsigned int,int,int) 5034 void COleIPFrameWnd::OnSize(unsigned int,int,int) 5035 void COleResizeBar::OnSize(unsigned int,int,int) 5036 void CPreviewView::OnSize(unsigned int,int,int) 5037 void CScrollView::OnSize(unsigned int,int,int) 5038 void CSplitterWnd::OnSize(unsigned int,int,int) 5039 void CStatusBar::OnSize(unsigned int,int,int) 5040 void CWnd::OnSize(unsigned int,int,int) 5041 long CControlBar::OnSizeParent(unsigned int,long) 5042 long CDockBar::OnSizeParent(unsigned int,long) 5043 long COleResizeBar::OnSizeParent(unsigned int,long) 5044 int CEnumArray::OnSkip() 5045 long CSocketWnd::OnSocketDead(unsigned int,long) 5046 long CSocketWnd::OnSocketNotify(unsigned int,long) 5047 int CView::OnSplitCmd(unsigned int) 5048 void CAsyncMonikerFile::OnStartBinding() 5049 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 5050 void CAsyncMonikerFile::OnStopBinding(long,char const *) 5051 void CFontPropPage::OnStrikeout() 5052 void CToolBar::OnSysColorChange() 5053 void CWnd::OnSysColorChange() 5054 void CFrameWnd::OnSysCommand(unsigned int,long) 5055 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 5056 void CPropertySheet::OnSysCommand(unsigned int,long) 5057 void CSplitterWnd::OnSysCommand(unsigned int,long) 5058 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 5059 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 5060 void COleControl::OnTextChanged() 5061 void CEditView::OnTextNotFound(char const *) 5062 void CRichEditView::OnTextNotFound(char const *) 5063 void CControlBar::OnTimer(unsigned int) 5064 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 5065 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 5066 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 5067 void CFileDialog::OnTypeChange() 5068 void COleControlContainer::OnUIActivate(COleControlSite *) 5069 long COleClientItem::XOleIPSite::OnUIActivate() 5070 long COleControlSite::XOleIPSite::OnUIActivate() 5071 void COleControlContainer::OnUIDeactivate(COleControlSite *) 5072 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 5073 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 5074 void CFontPropPage::OnUnderline() 5075 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 5076 void CView::OnUpdate(CView *,long,CObject *) 5077 void CRichEditView::OnUpdateBullet(CCmdUI *) 5078 void CRichEditView::OnUpdateCharBold(CCmdUI *) 5079 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 5080 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 5081 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 5082 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 5083 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 5084 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 5085 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 5086 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 5087 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 5088 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5089 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5090 int COleServerDoc::OnUpdateDocument() 5091 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 5092 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 5093 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 5094 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 5095 void CEditView::OnUpdateEditUndo(CCmdUI *) 5096 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5097 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5098 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5099 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5100 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5101 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5102 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5103 void CFrameWnd::OnUpdateFrameTitle(int) 5104 void CMDIChildWnd::OnUpdateFrameTitle(int) 5105 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5106 int COleClientItem::OnUpdateFrameTitle() 5107 int COleFrameHook::OnUpdateFrameTitle() 5108 void COleServerItem::OnUpdateItems() 5109 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5110 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5111 void CEditView::OnUpdateNeedClip(CCmdUI *) 5112 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5113 void CEditView::OnUpdateNeedFind(CCmdUI *) 5114 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5115 void CEditView::OnUpdateNeedSel(CCmdUI *) 5116 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5117 void CEditView::OnUpdateNeedText(CCmdUI *) 5118 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5119 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5120 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5121 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5122 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5123 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5124 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5125 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5126 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5127 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5128 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5129 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5130 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5131 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 5132 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5133 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 5134 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5135 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 5136 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5137 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 5138 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5139 void CView::OnUpdateSplitCmd(CCmdUI *) 5140 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5141 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5142 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5143 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5144 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5145 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5146 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5147 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5148 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5149 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5150 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5151 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5152 void CMDIFrameWnd::OnWindowNew() 5153 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5154 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5155 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5156 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5157 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5158 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5159 void CWnd::OnWinIniChange(char const *) 5160 long CPropertyPage::OnWizardBack() 5161 int CPropertyPage::OnWizardFinish() 5162 long CPropertyPage::OnWizardNext() 5163 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5164 void CPreviewView::OnZoomIn() 5165 void CPreviewView::OnZoomOut() 5166 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5167 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5168 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5169 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5170 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 5171 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 5172 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 5173 int CAsyncMonikerFile::Open(char const *,CFileException *) 5174 void CDaoDatabase::Open(char const *,int,int,char const *) 5175 void CDaoQueryDef::Open(char const *) 5176 void CDaoRecordset::Open(int,char const *,int) 5177 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 5178 void CDaoRecordset::Open(CDaoTableDef *,int,int) 5179 void CDaoTableDef::Open(char const *) 5180 void CDaoWorkspace::Open(char const *) 5181 int CDatabase::Open(char const *,int,int,char const *,int) 5182 int CDataPathProperty::Open(CFileException *) 5183 int CDataPathProperty::Open(COleControl *,CFileException *) 5184 int CDataPathProperty::Open(char const *,CFileException *) 5185 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 5186 int CFile::Open(char const *,unsigned int,CFileException *) 5187 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 5188 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5189 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5190 int CMonikerFile::Open(IMoniker *,CFileException *) 5191 int CMonikerFile::Open(char const *,CFileException *) 5192 int CRecordset::Open(unsigned int,char const *,unsigned long) 5193 int CSocketFile::Open(char const *,unsigned int,CFileException *) 5194 int CStdioFile::Open(char const *,unsigned int,CFileException *) 5195 long CDocObjectServer::XOleDocumentView::Open() 5196 CDocument * CDocManager::OpenDocumentFile(char const *) 5197 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 5198 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 5199 CDocument * CWinApp::OpenDocumentFile(char const *) 5200 int CDatabase::OpenEx(char const *,unsigned long) 5201 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 5202 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 5203 long COleUILinkInfo::OpenLinkSource(unsigned long) 5204 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5205 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5206 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 5207 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 5208 int CFileException::OsErrorToException(long) 5209 void CDumpContext::OutputString(char const *) 5210 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5211 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5212 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5213 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5214 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5215 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 5216 int COleDateTime::ParseDateTime(char const *,unsigned long,unsigned long) 5217 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,unsigned short *,unsigned long *,IMoniker * *) 5218 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,unsigned short *,unsigned long *,IMoniker * *) 5219 void CCommandLineInfo::ParseLast(int) 5220 void CCommandLineInfo::ParseParam(char const *,int,int) 5221 void CCommandLineInfo::ParseParamFlag(char const *) 5222 void CCommandLineInfo::ParseParamNotFlag(char const *) 5223 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5224 int CDC::PlayMetaFile(HMETAFILE__ *) 5225 int CDC::PolyBezierTo(tagPOINT const *,int) 5226 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5227 int CDC::PolylineTo(tagPOINT const *,int) 5228 void CPreviewView::PositionPage(unsigned int) 5229 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5230 int CMonikerFile::PostBindToStream(CFileException *) 5231 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5232 void CDialog::PostModal() 5233 void COleControl::PostModalDialog(HWND__ *) 5234 void CControlBar::PostNcDestroy() 5235 void CControlFrameWnd::PostNcDestroy() 5236 void CFindReplaceDialog::PostNcDestroy() 5237 void CFrameWnd::PostNcDestroy() 5238 void COleCntrFrameWnd::PostNcDestroy() 5239 void CReflectorWnd::PostNcDestroy() 5240 void CView::PostNcDestroy() 5241 void CWnd::PostNcDestroy() 5242 void CRecordset::PreBindFields() 5243 void CDocument::PreCloseFrame(CFrameWnd *) 5244 void COleDocument::PreCloseFrame(CFrameWnd *) 5245 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5246 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5247 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5248 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 5249 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5250 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 5251 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 5252 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5253 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 5254 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 5255 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5256 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5257 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 5258 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 5259 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 5260 int CView::PreCreateWindow(tagCREATESTRUCTA &) 5261 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 5262 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5263 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5264 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 5265 void CDialog::PreInitDialog() 5266 void COleChangeSourceDialog::PreInitDialog() 5267 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5268 HWND__ * CDialog::PreModal() 5269 void COleControl::PreModalDialog(HWND__ *) 5270 void CRecordset::PrepareAndExecute() 5271 HWND__ * CDataExchange::PrepareCtrl(int) 5272 HWND__ * CDataExchange::PrepareEditCtrl(int) 5273 CWnd * CDataExchange::PrepareOleCtrl(int) 5274 void CRecordset::PrepareUpdateHstmt() 5275 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 5276 void CDragListBox::PreSubclassWindow() 5277 void CWnd::PreSubclassWindow() 5278 int CWnd::PreTranslateInput(tagMSG *) 5279 int CControlBar::PreTranslateMessage(tagMSG *) 5280 int CDialog::PreTranslateMessage(tagMSG *) 5281 int CFormView::PreTranslateMessage(tagMSG *) 5282 int CFrameWnd::PreTranslateMessage(tagMSG *) 5283 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5284 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5285 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5286 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5287 int CPropertyPage::PreTranslateMessage(tagMSG *) 5288 int CPropertySheet::PreTranslateMessage(tagMSG *) 5289 int CWinThread::PreTranslateMessage(tagMSG *) 5290 int CWnd::PreTranslateMessage(tagMSG *) 5291 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5292 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5293 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5294 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5295 long CRichEditView::PrintPage(CDC *,long,long) 5296 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5297 long COleException::Process(CException const *) 5298 int CSocket::ProcessAuxQueue() 5299 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5300 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5301 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5302 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5303 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5304 void COleSafeArray::PtrOfIndex(long *,void * *) 5305 int CDC::PtVisible(int,int)const 5306 int CMetaFileDC::PtVisible(int,int)const 5307 int CWinThread::PumpMessage() 5308 int CSocket::PumpMessages(unsigned int) 5309 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 5310 void COleSafeArray::PutElement(long *,void *) 5311 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 5312 int PX_Blob(CPropExchange *,char const *,void * &,void *) 5313 int PX_Bool(CPropExchange *,char const *,int &) 5314 int PX_Bool(CPropExchange *,char const *,int &,int) 5315 int PX_Color(CPropExchange *,char const *,unsigned long &) 5316 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 5317 int PX_Currency(CPropExchange *,char const *,union tagCY &) 5318 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 5319 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 5320 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,CString const &) 5321 int PX_Double(CPropExchange *,char const *,double &) 5322 int PX_Double(CPropExchange *,char const *,double &,double) 5323 int PX_Float(CPropExchange *,char const *,float &) 5324 int PX_Float(CPropExchange *,char const *,float &,float) 5325 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5326 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 5327 int PX_Long(CPropExchange *,char const *,long &) 5328 int PX_Long(CPropExchange *,char const *,long &,long) 5329 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 5330 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 5331 int PX_Short(CPropExchange *,char const *,short &) 5332 int PX_Short(CPropExchange *,char const *,short &,short) 5333 int PX_String(CPropExchange *,char const *,CString &) 5334 int PX_String(CPropExchange *,char const *,CString &,char const *) 5335 int PX_String(CPropExchange *,char const *,CString &,CString const &) 5336 int PX_ULong(CPropExchange *,char const *,unsigned long &) 5337 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 5338 int PX_UShort(CPropExchange *,char const *,unsigned short &) 5339 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 5340 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5341 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5342 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5343 IUnknown * CCmdTarget::QueryAggregates(void const *) 5344 long COleDropSource::QueryContinueDrag(int,unsigned long) 5345 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5346 void * COleControl::QueryDefHandler(_GUID const &) 5347 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5348 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5349 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5350 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5351 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5352 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5353 int CHttpFile::QueryInfo(unsigned long,CString &,unsigned long *)const 5354 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5355 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5356 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5357 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5358 long _CIP::QueryInterface(IUnknown *) 5359 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5360 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5361 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5362 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5363 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5364 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5365 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 5366 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 5367 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 5368 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 5369 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 5370 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 5371 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 5372 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 5373 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 5374 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 5375 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 5376 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 5377 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 5378 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 5379 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 5380 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 5381 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 5382 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 5383 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 5384 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 5385 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 5386 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 5387 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 5388 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 5389 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 5390 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 5391 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 5392 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 5393 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 5394 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 5395 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 5396 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 5397 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 5398 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 5399 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 5400 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 5401 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 5402 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 5403 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 5404 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 5405 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 5406 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 5407 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 5408 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 5409 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 5410 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 5411 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 5412 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 5413 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 5414 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 5415 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 5416 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 5417 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 5418 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 5419 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 5420 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 5421 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5422 int CInternetConnection::QueryOption(unsigned long,CString &)const 5423 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5424 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5425 int CInternetFile::QueryOption(unsigned long,CString &)const 5426 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5427 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5428 int CInternetSession::QueryOption(unsigned long,CString &)const 5429 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5430 long CPropertyPage::QuerySiblings(unsigned int,long) 5431 IUnknown * CConnectionPoint::QuerySinkInterface(IUnknown *) 5432 IUnknown * COleControl::XEventConnPt::QuerySinkInterface(IUnknown *) 5433 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5434 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 5435 int COleControlSite::QuickActivate() 5436 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5437 int COleClientItem::ReactivateAndUndo() 5438 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5439 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5440 unsigned int CArchive::Read(void *,unsigned int) 5441 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5442 unsigned int CFile::Read(void *,unsigned int) 5443 int CImageList::Read(CArchive *) 5444 unsigned int CInternetFile::Read(void *,unsigned int) 5445 unsigned int CMemFile::Read(void *,unsigned int) 5446 unsigned int COleStreamFile::Read(void *,unsigned int) 5447 unsigned int CSocketFile::Read(void *,unsigned int) 5448 unsigned int CStdioFile::Read(void *,unsigned int) 5449 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5450 unsigned long CArchive::ReadCount() 5451 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5452 int CProperty::ReadFromStream(IStream *) 5453 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5454 int CPropertySet::ReadFromStream(IStream *) 5455 void COleClientItem::ReadItem(CArchive &) 5456 void COleClientItem::ReadItemCompound(CArchive &) 5457 void COleClientItem::ReadItemFlat(CArchive &) 5458 void CRecentFileList::ReadList() 5459 int CPropertySection::ReadNameDictFromStream(IStream *) 5460 CObject * CArchive::ReadObject(CRuntimeconst *) 5461 int CArchive::ReadString(CString &) 5462 char * CArchive::ReadString(char *,unsigned int) 5463 int CInternetFile::ReadString(CString &) 5464 char * CInternetFile::ReadString(char *,unsigned int) 5465 int CStdioFile::ReadString(CString &) 5466 char * CStdioFile::ReadString(char *,unsigned int) 5467 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5468 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5469 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5470 void CRecordset::RebindParams(void *) 5471 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5472 void CFrameWnd::RecalcLayout(int) 5473 void CMiniDockFrameWnd::RecalcLayout(int) 5474 void COleCntrFrameWnd::RecalcLayout(int) 5475 void COleDocIPFrameWnd::RecalcLayout(int) 5476 void COleIPFrameWnd::RecalcLayout(int) 5477 void CSplitterWnd::RecalcLayout() 5478 int CAsyncSocket::Receive(void *,int,int) 5479 int CSocket::Receive(void *,int,int) 5480 int CAsyncSocket::ReceiveFrom(void *,int,CString &,unsigned int &,int) 5481 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5482 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5483 void COleControl::RecreateControlWindow() 5484 CRect const CFrameWnd::rectDefault 5485 int CDC::RectVisible(tagRECT const *)const 5486 int CMetaFileDC::RectVisible(tagRECT const *)const 5487 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5488 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5489 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5490 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5491 int CWnd::ReflectLastMsg(HWND__ *,long *) 5492 void COleControl::Refresh() 5493 void CDaoTableDef::RefreshLink() 5494 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5495 int COleDropTarget::Register(CWnd *) 5496 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 5497 int COleMessageFilter::Register() 5498 int COleObjectFactory::Register() 5499 int COleTemplateServer::Register() 5500 int COleObjectFactory::RegisterAll() 5501 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 5502 void CDocManager::RegisterShellFileTypes(int) 5503 void CWinApp::RegisterShellFileTypes(int) 5504 void CWinApp::RegisterShellFileTypesCompat() 5505 unsigned long CArchiveStream::Release() 5506 unsigned long CBlobProperty::Release() 5507 unsigned long CInnerUnknown::Release() 5508 void COleClientItem::Release(enum tagOLECLOSE) 5509 unsigned long COleConnPtContainer::Release() 5510 void COleDataObject::Release() 5511 unsigned long COleDispatchImpl::Release() 5512 unsigned long COleUILinkInfo::Release() 5513 void CString::Release() 5514 void CString::Release(CStringData *) 5515 unsigned long COleClientItem::XAdviseSink::Release() 5516 unsigned long COleControlSite::XAmbientProps::Release() 5517 unsigned long COleControlSite::XBoundObjectSite::Release() 5518 unsigned long COleObjectFactory::XClassFactory::Release() 5519 unsigned long CConnectionPoint::XConnPt::Release() 5520 unsigned long COleControl::XDataObject::Release() 5521 unsigned long COleDataSource::XDataObject::Release() 5522 unsigned long COleServerDoc::XDataObject::Release() 5523 unsigned long COleServerItem::XDataObject::Release() 5524 unsigned long COleDropSource::XDropSource::Release() 5525 unsigned long COleDropTarget::XDropTarget::Release() 5526 unsigned long CEnumArray::XEnumVOID::Release() 5527 unsigned long COleControlSite::XEventSink::Release() 5528 unsigned long COleControl::XFontNotification::Release() 5529 unsigned long COleMessageFilter::XMessageFilter::Release() 5530 unsigned long COleControlSite::XNotifyDBEvents::Release() 5531 unsigned long COleControl::XOleCache::Release() 5532 unsigned long COleClientItem::XOleClientSite::Release() 5533 unsigned long COleControlSite::XOleClientSite::Release() 5534 unsigned long CDocObjectServer::XOleCommandTarget::Release() 5535 unsigned long COleControlContainer::XOleContainer::Release() 5536 unsigned long COleControl::XOleControl::Release() 5537 unsigned long COleControlSite::XOleControlSite::Release() 5538 unsigned long CDocObjectServer::XOleDocument::Release() 5539 unsigned long CDocObjectServer::XOleDocumentView::Release() 5540 unsigned long COleControl::XOleInPlaceActiveObject::Release() 5541 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 5542 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 5543 unsigned long COleControl::XOleInPlaceObject::Release() 5544 unsigned long COleServerDoc::XOleInPlaceObject::Release() 5545 unsigned long COleControlContainer::XOleIPFrame::Release() 5546 unsigned long COleClientItem::XOleIPSite::Release() 5547 unsigned long COleControlSite::XOleIPSite::Release() 5548 unsigned long COleLinkingDoc::XOleItemContainer::Release() 5549 unsigned long CDocObjectServer::XOleObject::Release() 5550 unsigned long COleControl::XOleObject::Release() 5551 unsigned long COleServerDoc::XOleObject::Release() 5552 unsigned long COleServerItem::XOleObject::Release() 5553 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 5554 unsigned long COleControl::XPerPropertyBrowsing::Release() 5555 unsigned long COleLinkingDoc::XPersistFile::Release() 5556 unsigned long COleControl::XPersistMemory::Release() 5557 unsigned long COleControl::XPersistPropertyBag::Release() 5558 unsigned long COleControl::XPersistStorage::Release() 5559 unsigned long COleServerDoc::XPersistStorage::Release() 5560 unsigned long COleControl::XPersistStreamInit::Release() 5561 unsigned long COleControl::XPointerInactive::Release() 5562 unsigned long CDocObjectServer::XPrint::Release() 5563 unsigned long COleControlSite::XPropertyNotifySink::Release() 5564 unsigned long COlePropertyPage::XPropertyPage::Release() 5565 unsigned long COlePropertyPage::XPropNotifySink::Release() 5566 unsigned long COleControl::XProvideClassInfo::Release() 5567 unsigned long COleControl::XQuickActivate::Release() 5568 unsigned long CRichEditView::XRichEditOleCallback::Release() 5569 unsigned long COleControl::XSpecifyPropertyPages::Release() 5570 unsigned long COleControl::XViewObject::Release() 5571 void CDC::ReleaseAttribDC() 5572 void CString::ReleaseBuffer(int) 5573 int COleControl::ReleaseCapture() 5574 int COleControl::ReleaseDC(CDC *) 5575 void COleDispatchDriver::ReleaseDispatch() 5576 void CDocObjectServer::ReleaseDocSite() 5577 void CDocument::ReleaseFile(CFile *,int) 5578 void CFontHolder::ReleaseFont() 5579 void CDC::ReleaseOutputDC() 5580 void CMetaFileDC::ReleaseOutputDC() 5581 void CPreviewDC::ReleaseOutputDC() 5582 int COleClientItem::Reload() 5583 void CFile::Remove(char const *) 5584 int CFtpConnection::Remove(char const *) 5585 void CPropertySection::Remove(unsigned long) 5586 void CPropertySet::Remove(_GUID) 5587 void CPropertySet::Remove(_GUID,unsigned long) 5588 void CRecentFileList::Remove(int) 5589 int CSimpleList::Remove(void *) 5590 void CMapPtrToPtr::RemoveAll() 5591 void CMapPtrToWord::RemoveAll() 5592 void CMapStringToOb::RemoveAll() 5593 void CMapStringToPtr::RemoveAll() 5594 void CMapStringToString::RemoveAll() 5595 void CMapWordToOb::RemoveAll() 5596 void CMapWordToPtr::RemoveAll() 5597 void CObList::RemoveAll() 5598 void CPropertySection::RemoveAll() 5599 void CPropertySet::RemoveAll() 5600 void CPtrList::RemoveAll() 5601 void CStringList::RemoveAll() 5602 void CByteArray::RemoveAt(int,int) 5603 void CDWordArray::RemoveAt(int,int) 5604 void CObArray::RemoveAt(int,int) 5605 void CObList::RemoveAt(__POSITION *) 5606 void CPtrArray::RemoveAt(int,int) 5607 void CPtrList::RemoveAt(__POSITION *) 5608 void CStringArray::RemoveAt(int,int) 5609 void CStringList::RemoveAt(__POSITION *) 5610 void CUIntArray::RemoveAt(int,int) 5611 void CWordArray::RemoveAt(int,int) 5612 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5613 void CFrameWnd::RemoveControlBar(CControlBar *) 5614 int CFtpConnection::RemoveDirectoryA(char const *) 5615 void CDocTemplate::RemoveDocument(CDocument *) 5616 void CMultiDocTemplate::RemoveDocument(CDocument *) 5617 void CSingleDocTemplate::RemoveDocument(CDocument *) 5618 void COleControl::RemoveFrameLevelUI() 5619 void CFrameWnd::RemoveFrameWnd() 5620 CObject * CObList::RemoveHead() 5621 void * CPtrList::RemoveHead() 5622 CString CStringList::RemoveHead() 5623 void CListCtrl::RemoveImageList(int) 5624 void CListView::RemoveImageList(int) 5625 void CTreeCtrl::RemoveImageList(int) 5626 void CTreeView::RemoveImageList(int) 5627 void COleDocument::RemoveItem(CDocItem *) 5628 int CMapPtrToPtr::RemoveKey(void *) 5629 int CMapPtrToWord::RemoveKey(void *) 5630 int CMapStringToOb::RemoveKey(char const *) 5631 int CMapStringToPtr::RemoveKey(char const *) 5632 int CMapStringToString::RemoveKey(char const *) 5633 int CMapWordToOb::RemoveKey(unsigned short) 5634 int CMapWordToPtr::RemoveKey(unsigned short) 5635 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5636 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5637 void CPropertySheet::RemovePage(int) 5638 void CPropertySheet::RemovePage(CPropertyPage *) 5639 void CDockBar::RemovePlaceHolder(CControlBar *) 5640 void CDataBoundProperty::RemoveSource() 5641 CObject * CObList::RemoveTail() 5642 void * CPtrList::RemoveTail() 5643 CString CStringList::RemoveTail() 5644 void CDocument::RemoveView(CView *) 5645 void CFile::Rename(char const *,char const *) 5646 int CFtpConnection::Rename(char const *,char const *) 5647 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5648 void CDaoWorkspace::RepairDatabase(char const *) 5649 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5650 void CDatabase::ReplaceBrackets(char *) 5651 int CException::ReportError(unsigned int,unsigned int) 5652 int COleClientItem::ReportError(long)const 5653 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5654 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5655 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5656 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5657 void CDaoRecordset::Requery() 5658 int CRecordset::Requery() 5659 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5660 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5661 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,unsigned short * *) 5662 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5663 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5664 void COleServerDoc::RequestPositionChange(tagRECT const *) 5665 long CEnumArray::XEnumVOID::Reset() 5666 void CRecordset::ResetCursor() 5667 void CCachedDataPathProperty::ResetData() 5668 void CDataPathProperty::ResetData() 5669 void COleControl::ResetStockProps() 5670 void CControlBar::ResetTimer(unsigned int,unsigned int) 5671 void COleControl::ResetVersion(unsigned long) 5672 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5673 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5674 void COleControl::ResizeFrameWindow(int,int) 5675 void COleSafeArray::ResizeOneDim(unsigned long) 5676 void COleControl::ResizeOpenControl(int,int) 5677 void CScrollView::ResizeParentToFit(int) 5678 int CDC::RestoreDC(int) 5679 int CPreviewDC::RestoreDC(int) 5680 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 5681 void CCmdTarget::RestoreWaitCursor() 5682 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5683 int CString::ReverseFind(char)const 5684 long CArchiveStream::Revert() 5685 void COleDropTarget::Revoke() 5686 void COleLinkingDoc::Revoke() 5687 void COleMessageFilter::Revoke() 5688 void COleObjectFactory::Revoke() 5689 void COleObjectFactory::RevokeAll() 5690 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 5691 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 5692 void RFX_Bool(CFieldExchange *,char const *,int &) 5693 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 5694 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 5695 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 5696 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 5697 void RFX_Date(CFieldExchange *,char const *,CTime &) 5698 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 5699 void RFX_Double(CFieldExchange *,char const *,double &) 5700 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 5701 void RFX_Int(CFieldExchange *,char const *,int &) 5702 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 5703 void RFX_Long(CFieldExchange *,char const *,long &) 5704 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 5705 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 5706 void RFX_Single(CFieldExchange *,char const *,float &) 5707 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 5708 void RFX_Text(CFieldExchange *,char const *,CString &,int,int,short) 5709 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 5710 CString CString::Right(int)const 5711 void CDaoWorkspace::Rollback() 5712 int CDatabase::Rollback() 5713 void COleClientItem::Run() 5714 int CWinApp::Run() 5715 int CWinThread::Run() 5716 int CWinApp::RunAutomated() 5717 int CWinApp::RunEmbedded() 5718 int CWnd::RunModalLoop(unsigned long) 5719 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5720 int CEditView::SameAsSelected(char const *,int) 5721 int CRichEditView::SameAsSelected(char const *,int,int) 5722 long CBlobProperty::Save(IStream *,int) 5723 long COleLinkingDoc::XPersistFile::Save(unsigned short const *,int) 5724 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5725 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5726 long COleControl::XPersistStorage::Save(IStorage *,int) 5727 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5728 long COleControl::XPersistStreamInit::Save(IStream *,int) 5729 int CDocManager::SaveAllModified() 5730 int CDocTemplate::SaveAllModified() 5731 int CWinApp::SaveAllModified() 5732 void CFrameWnd::SaveBarState(char const *)const 5733 long COleLinkingDoc::XPersistFile::SaveCompleted(unsigned short const *) 5734 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5735 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5736 int CDC::SaveDC() 5737 int CPreviewDC::SaveDC() 5738 void COleServerDoc::SaveEmbedding() 5739 int CFormView::SaveFocusControl() 5740 int CDocument::SaveModified() 5741 int COleDocument::SaveModified() 5742 int COleServerDoc::SaveModified() 5743 int COleServerDoc::SaveModifiedPrompt() 5744 long COleClientItem::XOleClientSite::SaveObject() 5745 long COleControlSite::XOleClientSite::SaveObject() 5746 int CControlBarInfo::SaveState(char const *,int) 5747 void CDockState::SaveState(char const *) 5748 long COleControl::SaveState(IStream *) 5749 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 5750 void CWinApp::SaveStdProfileSettings() 5751 void COleDocument::SaveToStorage(CObject *) 5752 void COleLinkingDoc::SaveToStorage(CObject *) 5753 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5754 void CDockState::ScalePoint(CPoint &) 5755 void CDockState::ScaleRectPos(CRect &) 5756 CSize CDC::ScaleViewportExt(int,int,int,int) 5757 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5758 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5759 CSize CDC::ScaleWindowExt(int,int,int,int) 5760 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5761 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5762 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5763 void COleControlContainer::ScrollChildren(int,int) 5764 int COleServerDoc::ScrollContainerBy(CSize) 5765 void CScrollView::ScrollToDevicePosition(tagPOINT) 5766 void CScrollView::ScrollToPosition(tagPOINT) 5767 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5768 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5769 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5770 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5771 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 5772 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 5773 long CFile::Seek(long,unsigned int) 5774 long CInternetFile::Seek(long,unsigned int) 5775 long CMemFile::Seek(long,unsigned int) 5776 long COleStreamFile::Seek(long,unsigned int) 5777 long CSocketFile::Seek(long,unsigned int) 5778 long CStdioFile::Seek(long,unsigned int) 5779 CFont * CFontHolder::Select(CDC *,long,long) 5780 int CDC::SelectClipPath(int) 5781 int CDC::SelectClipRgn(CRgn *) 5782 int CDC::SelectClipRgn(CRgn *,int) 5783 void CFontPropPage::SelectFontFromList(CString,tagMERGEOBJECT *) 5784 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5785 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5786 int CDC::SelectObject(CRgn *) 5787 CBrush * CDC::SelectObject(CBrush *) 5788 CPen * CDC::SelectObject(CPen *) 5789 CFont * CDC::SelectObject(CFont *) 5790 CFont * CPreviewDC::SelectObject(CFont *) 5791 CPalette * CDC::SelectPalette(CPalette *,int) 5792 void CWinApp::SelectPrinter(void *,void *,int) 5793 CFont * COleControl::SelectStockFont(CDC *) 5794 CGdiObject * CDC::SelectStockObject(int) 5795 CGdiObject * CPreviewDC::SelectStockObject(int) 5796 int CAsyncSocket::Send(void const *,int,int) 5797 int CSocket::Send(void const *,int,int) 5798 void COleControl::SendAdvise(unsigned int) 5799 int CWnd::SendChildNotifyLastMsg(long *) 5800 int CSocket::SendChunk(void const *,int,int) 5801 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5802 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5803 void CDocument::SendInitialUpdate() 5804 void CRecordset::SendLongBinaryData(void *) 5805 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5806 void COleControlSite::SendMnemonic(tagMSG *) 5807 int CHttpFile::SendRequest(CString &,void *,unsigned long) 5808 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 5809 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 5810 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5811 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5812 void CByteArray::Serialize(CArchive &) 5813 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5814 void CDocItem::Serialize(CArchive &) 5815 void CDockState::Serialize(CArchive &) 5816 void CDWordArray::Serialize(CArchive &) 5817 void CEditView::Serialize(CArchive &) 5818 void CMapStringToOb::Serialize(CArchive &) 5819 void CMapStringToString::Serialize(CArchive &) 5820 void CMapWordToOb::Serialize(CArchive &) 5821 void CObArray::Serialize(CArchive &) 5822 void CObject::Serialize(CArchive &) 5823 void CObList::Serialize(CArchive &) 5824 void COleClientItem::Serialize(CArchive &) 5825 void COleControl::Serialize(CArchive &) 5826 void COleDocument::Serialize(CArchive &) 5827 void CRichEditDoc::Serialize(CArchive &) 5828 void CRichEditView::Serialize(CArchive &) 5829 void CStringArray::Serialize(CArchive &) 5830 void CStringList::Serialize(CArchive &) 5831 void CWordArray::Serialize(CArchive &) 5832 void CArchive::SerializeClass(CRuntimeconst *) 5833 void SerializeElements(CArchive &,COleVariant *,int) 5834 void SerializeElements(CArchive &,CString *,int) 5835 void COleControl::SerializeExtent(CArchive &) 5836 void CEditView::SerializeRaw(CArchive &) 5837 void COleControl::SerializeStockProps(CArchive &) 5838 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5839 int CProperty::Set(unsigned long,void * const,unsigned long) 5840 int CProperty::Set(void * const) 5841 int CProperty::Set(void * const,unsigned long) 5842 int CPropertySection::Set(unsigned long,void *) 5843 int CPropertySection::Set(unsigned long,void *,unsigned long) 5844 int CPropertySet::Set(_GUID,unsigned long,void *) 5845 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5846 void CDaoRecordset::SetAbsolutePosition(long) 5847 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,unsigned short const *) 5848 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,unsigned short const *) 5849 int CPropertySheet::SetActivePage(int) 5850 int CPropertySheet::SetActivePage(CPropertyPage *) 5851 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5852 void CFrameWnd::SetActiveView(CView *,int) 5853 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5854 void COleControl::SetAppearance(short) 5855 int CDC::SetArcDirection(int) 5856 void CString::SetAt(int,char) 5857 void CByteArray::SetAtGrow(int,unsigned char) 5858 void CDWordArray::SetAtGrow(int,unsigned long) 5859 void CObArray::SetAtGrow(int,CObject *) 5860 void CPtrArray::SetAtGrow(int,void *) 5861 void CStringArray::SetAtGrow(int,char const *) 5862 void CUIntArray::SetAtGrow(int,unsigned int) 5863 void CWordArray::SetAtGrow(int,unsigned short) 5864 void CDC::SetAttribDC(HDC__ *) 5865 void CMetaFileDC::SetAttribDC(HDC__ *) 5866 void CPreviewDC::SetAttribDC(HDC__ *) 5867 void CDaoTableDef::SetAttributes(long) 5868 void COleControl::SetBackColor(unsigned long) 5869 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5870 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5871 void CControlBar::SetBarStyle(unsigned long) 5872 int CToolBar::SetBitmap(HBITMAP__ *) 5873 unsigned long CDC::SetBkColor(unsigned long) 5874 unsigned long CPreviewDC::SetBkColor(unsigned long) 5875 int CDC::SetBkMode(int) 5876 void CDaoRecordset::SetBookmark(COleVariant) 5877 void CRecordset::SetBookmark(CDBVariant const &) 5878 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5879 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5880 void COleControl::SetBorderStyle(short) 5881 void CColorPropPage::SetButton(CColorButton *) 5882 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5883 int CToolBar::SetButtons(unsigned int const *,int) 5884 void CToolBar::SetButtonStyle(int,unsigned int) 5885 int CToolBar::SetButtonText(int,char const *) 5886 void CDaoRecordset::SetCacheSize(long) 5887 void CDaoRecordset::SetCacheStart(COleVariant) 5888 CWnd * COleControl::SetCapture() 5889 void CRichEditView::SetCharFormat(_charformat) 5890 void CCheckListBox::SetCheck(int,int) 5891 void CCmdUI::SetCheck(int) 5892 void COleCmdUI::SetCheck(int) 5893 void CStatusCmdUI::SetCheck(int) 5894 void CTestCmdUI::SetCheck(int) 5895 void CToolCmdUI::SetCheck(int) 5896 void CCheckListBox::SetCheckStyle(unsigned int) 5897 void CPropertySet::SetClassID(_GUID) 5898 void CDataBoundProperty::SetClientSite(COleControlSite *) 5899 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5900 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5901 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5902 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5903 void COleDataSource::SetClipboard() 5904 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5905 int CColorPropPage::SetColorProp(CDataExchange *,unsigned long,char const *) 5906 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5907 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5908 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5909 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5910 void CSplitterWnd::SetColumnInfo(int,int,int) 5911 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5912 void CDaoQueryDef::SetConnect(char const *) 5913 void CDaoTableDef::SetConnect(char const *) 5914 void CDocTemplate::SetContainerInfo(unsigned int) 5915 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5916 void CReflectorWnd::SetControl(COleControl *) 5917 int COleControl::SetControlSize(int,int) 5918 int COlePropertyPage::SetControlStatus(unsigned int,int) 5919 void CFileDialog::SetControlText(int,char const *) 5920 void COleCurrency::SetCurrency(long,long) 5921 void CColorDialog::SetCurrentColor(unsigned long) 5922 int CFtpConnection::SetCurrentDirectoryA(char const *) 5923 void CWinApp::SetCurrentHandles() 5924 void CDaoRecordset::SetCurrentIndex(char const *) 5925 void CPreviewView::SetCurrentPage(unsigned int,int) 5926 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5927 void CDaoRecordset::SetCursorAttributes() 5928 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5929 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5930 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5931 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5932 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5933 int COleDateTime::SetDateTime(int,int,int,int,int,int) 5934 void COleDateTimeSpan::SetDateTimeSpan(long,int,int,int) 5935 void COccManager::SetDefaultButton(CWnd *,int) 5936 void COleControlSite::SetDefaultButton(int) 5937 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 5938 void CDaoWorkspace::SetDefaultPassword(char const *) 5939 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5940 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5941 void CDaoWorkspace::SetDefaultUser(char const *) 5942 void CFileDialog::SetDefExt(char const *) 5943 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 5944 void COlePropertyPage::SetDialogResource(void *) 5945 void CDaoRecordset::SetDirtyFields() 5946 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 5947 void CRecordset::SetDirtyFieldStatus(unsigned long) 5948 int COleControlSite::SetDlgCtrlID(int) 5949 int CWnd::SetDlgCtrlID(int) 5950 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5951 void CWnd::SetDlgItemInt(int,unsigned int,int) 5952 void COleControlContainer::SetDlgItemTextA(int,char const *) 5953 void CWnd::SetDlgItemTextA(int,char const *) 5954 void CFrameWnd::SetDockState(CDockState const &) 5955 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5956 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5957 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5958 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5959 void COleControl::SetEnabled(int) 5960 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5961 int COleControlSite::SetExtent() 5962 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5963 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5964 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5965 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5966 void CColorButton::SetFaceColor(unsigned long) 5967 void CDaoRecordset::SetFieldDirty(void *,int) 5968 void CRecordset::SetFieldDirty(void *,int) 5969 void CDaoRecordset::SetFieldNull(void *,int) 5970 void CRecordset::SetFieldNull(void *,int) 5971 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5972 void CDaoRecordset::SetFieldValue(int,char const *) 5973 void CDaoRecordset::SetFieldValue(char const *,char const *) 5974 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 5975 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 5976 void CDaoRecordset::SetFieldValueNull(int) 5977 void CDaoRecordset::SetFieldValueNull(char const *) 5978 void CFile::SetFilePath(char const *) 5979 CWnd * COleControl::SetFocus() 5980 CWnd * COleControlSite::SetFocus() 5981 CWnd * CWnd::SetFocus() 5982 int CDialogTemplate::SetFont(char const *,unsigned short) 5983 void CFontHolder::SetFont(IFont *) 5984 void COleControl::SetFont(IFontDisp *) 5985 int CFontPropPage::SetFontProps(CDataExchange *,tagFONTOBJECT,char const *) 5986 void COleControl::SetForeColor(unsigned long) 5987 void CPropertySection::SetFormatID(_GUID) 5988 void CPropertySet::SetFormatVersion(unsigned short) 5989 void CSharedFile::SetHandle(void *,int) 5990 void CToolBar::SetHeight(int) 5991 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5992 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 5993 void COleClientItem::SetHostNames(char const *,char const *) 5994 long CDocObjectServer::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5995 long COleControl::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5996 long COleServerDoc::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5997 long COleServerItem::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5998 int COleClientItem::SetIconicMetafile(void *) 5999 void CProperty::SetID(unsigned long) 6000 int CStatusBar::SetIndicators(unsigned int const *,int) 6001 void CDaoWorkspace::SetIniPath(char const *) 6002 void COleControl::SetInitialDataFormats() 6003 long CDocObjectServer::XPrint::SetInitialPageNum(long) 6004 void COleControl::SetInitialSize(int,int) 6005 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 6006 void CDaoWorkspace::SetIsolateODBCTrans(int) 6007 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 6008 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 6009 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 6010 void CFile::SetLength(unsigned long) 6011 void CInternetFile::SetLength(unsigned long) 6012 void CMemFile::SetLength(unsigned long) 6013 void COleStreamFile::SetLength(unsigned long) 6014 void CSocketFile::SetLength(unsigned long) 6015 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 6016 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 6017 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 6018 void CDaoRecordset::SetLockingMode(int) 6019 void CRecordset::SetLockingMode(unsigned int) 6020 void CDaoWorkspace::SetLoginTimeout(short) 6021 int CDC::SetMapMode(int) 6022 int CPreviewDC::SetMapMode(int) 6023 unsigned long CDC::SetMapperFlags(unsigned long) 6024 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6025 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6026 void CFrameWnd::SetMessageText(unsigned int) 6027 void CFrameWnd::SetMessageText(char const *) 6028 void CPropertyPage::SetModified(int) 6029 void CDocument::SetModifiedFlag(int) 6030 void COleControl::SetModifiedFlag(int) 6031 void COlePropertyPage::SetModifiedFlag(int) 6032 void CRichEditDoc::SetModifiedFlag(int) 6033 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 6034 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 6035 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 6036 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 6037 void CDaoQueryDef::SetName(char const *) 6038 void CDaoTableDef::SetName(char const *) 6039 int CPropertySection::SetName(unsigned long,char const *) 6040 void COleControl::SetNotPermitted() 6041 void CCmdTarget::SetNotSupported() 6042 void COleControl::SetNotSupported() 6043 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6044 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6045 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6046 void CRecordset::SetNullFieldStatus(unsigned long) 6047 void CRecordset::SetNullParamStatus(unsigned long) 6048 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6049 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6050 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6051 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 6052 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6053 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6054 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6055 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6056 void CDaoQueryDef::SetODBCTimeout(short) 6057 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 6058 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 6059 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 6060 void CPropertySet::SetOSVersion(unsigned long) 6061 void CDC::SetOutputDC(HDC__ *) 6062 void CMetaFileDC::SetOutputDC(HDC__ *) 6063 void CPreviewDC::SetOutputDC(HDC__ *) 6064 void CToolBar::SetOwner(CWnd *) 6065 void COlePropertyPage::SetPageName(char const *) 6066 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 6067 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 6068 void CStatusBar::SetPaneStyle(int,unsigned int) 6069 int CStatusBar::SetPaneText(int,char const *,int) 6070 int CRichEditCtrl::SetParaFormat(_paraformat &) 6071 int CRichEditView::SetParaFormat(_paraformat &) 6072 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6073 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 6074 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6075 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 6076 void CDaoQueryDef::SetParamValueNull(int) 6077 void CDaoQueryDef::SetParamValueNull(char const *) 6078 void CDaoRecordset::SetParamValueNull(int) 6079 void CDaoRecordset::SetParamValueNull(char const *) 6080 void CDocument::SetPathName(char const *,int) 6081 void COleDocument::SetPathName(char const *,int) 6082 void CRichEditDoc::SetPathName(char const *,int) 6083 void CDaoRecordset::SetPercentPosition(float) 6084 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 6085 int CPicturePropPage::SetPictureProp(CDataExchange *,IPictureDisp *,char const *) 6086 int CDC::SetPolyFillMode(int) 6087 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 6088 int COleClientItem::SetPrintDevice(tagPDA const *) 6089 void CEditView::SetPrinterFont(CFont *) 6090 int CPreviewView::SetPrintView(CView *) 6091 int COlePropertyPage::SetPropCheck(char const *,int) 6092 void COleControlSite::SetProperty(long,unsigned short,...) 6093 void COleDispatchDriver::SetProperty(long,unsigned short,...) 6094 void CWnd::SetProperty(long,unsigned short,...) 6095 void COleControlSite::SetPropertyV(long,unsigned short,char *) 6096 int COlePropertyPage::SetPropIndex(char const *,int) 6097 int COlePropertyPage::SetPropRadio(char const *,int) 6098 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 6099 int COlePropertyPage::SetPropText(char const *,unsigned char &) 6100 int COlePropertyPage::SetPropText(char const *,short &) 6101 int COlePropertyPage::SetPropText(char const *,int &) 6102 int COlePropertyPage::SetPropText(char const *,unsigned int &) 6103 int COlePropertyPage::SetPropText(char const *,long &) 6104 int COlePropertyPage::SetPropText(char const *,unsigned long &) 6105 int COlePropertyPage::SetPropText(char const *,float &) 6106 int COlePropertyPage::SetPropText(char const *,double &) 6107 int COlePropertyPage::SetPropText(char const *,CString &) 6108 void CDaoDatabase::SetQueryTimeout(short) 6109 void CCmdUI::SetRadio(int) 6110 void CTestCmdUI::SetRadio(int) 6111 void CSliderCtrl::SetRange(int,int,int) 6112 int CInternetFile::SetReadBufferSize(unsigned int) 6113 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 6114 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 6115 int COleControl::SetRectInContainer(tagRECT const *) 6116 void CWinApp::SetRegistryKey(unsigned int) 6117 void CWinApp::SetRegistryKey(char const *) 6118 void CDaoQueryDef::SetReturnsRecords(int) 6119 int CDC::SetROP2(int) 6120 void CSplitterWnd::SetRowInfo(int,int,int) 6121 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 6122 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 6123 void CRecordset::SetRowsetSize(unsigned long) 6124 void CPreviewView::SetScaledSize(unsigned int) 6125 void CPreviewDC::SetScaleRatio(int,int) 6126 void CScrollView::SetScaleToFitSize(tagSIZE) 6127 void CDockState::SetScreenSize(CSize &) 6128 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 6129 int CWnd::SetScrollPos(int,int,int) 6130 void CWnd::SetScrollRange(int,int,int,int) 6131 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 6132 void CSplitterWnd::SetScrollStyle(unsigned long) 6133 int CPropertySection::SetSectionName(char const *) 6134 void CRichEditCtrl::SetSel(long,long) 6135 void CSliderCtrl::SetSelection(int,int) 6136 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 6137 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 6138 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 6139 void CByteArray::SetSize(int,int) 6140 void CDWordArray::SetSize(int,int) 6141 void CObArray::SetSize(int,int) 6142 void CPtrArray::SetSize(int,int) 6143 void CStringArray::SetSize(int,int) 6144 void CUIntArray::SetSize(int,int) 6145 void CWordArray::SetSize(int,int) 6146 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6147 void CDaoTableDef::SetSourceTableName(char const *) 6148 void CSplitterWnd::SetSplitCursor(int) 6149 void CDaoQueryDef::SetSQL(char const *) 6150 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6151 void CColorButton::SetState(int) 6152 void CRecordset::SetState(int,char const *,unsigned long) 6153 void CFile::SetStatus(char const *,CFileStatus const &) 6154 int CControlBar::SetStatusText(int) 6155 long COleFrameHook::XOleInPlaceFrame::SetStatusText(unsigned short const *) 6156 long COleControlContainer::XOleIPFrame::SetStatusText(unsigned short const *) 6157 int CDC::SetStretchBltMode(int) 6158 void COleVariant::SetString(char const *,unsigned short) 6159 unsigned short * CString::SetSysString(unsigned short * *)const 6160 int CDialogTemplate::SetSystemFont(unsigned short) 6161 void CEditView::SetTabStops(int) 6162 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6163 void CFileDialog::SetTemplate(char const *,char const *) 6164 void CCmdUI::SetText(char const *) 6165 void COleCmdUI::SetText(char const *) 6166 void COleControl::SetText(char const *) 6167 void CStatusCmdUI::SetText(char const *) 6168 void CTestCmdUI::SetText(char const *) 6169 void CToolCmdUI::SetText(char const *) 6170 unsigned int CDC::SetTextAlign(unsigned int) 6171 int CDC::SetTextCharacterExtra(int) 6172 unsigned long CDC::SetTextColor(unsigned long) 6173 unsigned long CPreviewDC::SetTextColor(unsigned long) 6174 int CDC::SetTextJustification(int,int) 6175 void CDocument::SetTitle(char const *) 6176 void CPropertySheet::SetTitle(char const *,unsigned int) 6177 void CRichEditDoc::SetTitle(char const *) 6178 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6179 void CPreviewDC::SetTopLeftOffset(CSize) 6180 void CProperty::SetType(unsigned long) 6181 void CRecordset::SetUpdateMethod() 6182 void CDaoTableDef::SetValidationRule(char const *) 6183 void CDaoTableDef::SetValidationText(char const *) 6184 void CThreadSlotData::SetValue(int,void *) 6185 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6186 CSize CDC::SetViewportExt(int,int) 6187 CSize CMetaFileDC::SetViewportExt(int,int) 6188 CSize CPreviewDC::SetViewportExt(int,int) 6189 CPoint CDC::SetViewportOrg(int,int) 6190 CPoint CMetaFileDC::SetViewportOrg(int,int) 6191 CPoint CPreviewDC::SetViewportOrg(int,int) 6192 CSize CDC::SetWindowExt(int,int) 6193 CSize CPreviewDC::SetWindowExt(int,int) 6194 CPoint CDC::SetWindowOrg(int,int) 6195 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6196 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6197 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6198 void COleControlSite::SetWindowTextA(char const *) 6199 void CWnd::SetWindowTextA(char const *) 6200 int CRichEditCtrl::SetWordCharFormat(_charformat &) 6201 int CInternetFile::SetWriteBufferSize(unsigned int) 6202 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6203 long CDocObjectServer::XOleDocumentView::Show(int) 6204 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6205 void CDockBar::ShowAll(int) 6206 long CRichEditCntrItem::ShowContainerUI(int) 6207 long CRichEditView::ShowContainerUI(int) 6208 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6209 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6210 long COleClientItem::XOleClientSite::ShowObject() 6211 long COleControlSite::XOleClientSite::ShowObject() 6212 void CFrameWnd::ShowOwnedWindows(int) 6213 long COleControlSite::XOleControlSite::ShowPropertyFrame() 6214 int COleControlSite::ShowWindow(int) 6215 int CWnd::ShowWindow(int) 6216 tagSIZE const CScrollView::sizeDefault 6217 void CBitmapButton::SizeToContent() 6218 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6219 long CEnumArray::XEnumVOID::Skip(unsigned long) 6220 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6221 int CAsyncSocket::Socket(int,long,int,int) 6222 CString CString::SpanExcluding(char const *)const 6223 CString CString::SpanIncluding(char const *)const 6224 int CSplitterWnd::SplitColumn(int) 6225 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6226 int CSplitterWnd::SplitRow(int) 6227 int CDC::StartDocA(char const *) 6228 void CDockContext::StartDrag(CPoint) 6229 void CDockContext::StartResize(int,CPoint) 6230 void CSplitterWnd::StartTracking(int) 6231 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6232 void CSplitterWnd::StopTracking(int) 6233 void CRuntimeClass::Store(CArchive &)const 6234 void CDaoRecordset::StoreFields() 6235 void CRecordset::StoreFields() 6236 void CRichEditView::Stream(CArchive &,int) 6237 void CDockContext::Stretch(CPoint) 6238 void CDaoRecordset::StripBrackets(char const *,char *) 6239 int CWnd::SubclassCtl3d(int) 6240 int CWnd::SubclassDlg3d(unsigned long) 6241 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6242 int CWnd::SubclassWindow(HWND__ *) 6243 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6244 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6245 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6246 CSize CDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6247 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6248 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6249 void CRichEditView::TextNotFound(char const *) 6250 int CDC::TextOutA(int,int,char const *,int) 6251 int CMetaFileDC::TextOutA(int,int,char const *,int) 6252 int CPreviewDC::TextOutA(int,int,char const *,int) 6253 void CDaoDatabase::ThrowDaoException(int) 6254 void CDaoQueryDef::ThrowDaoException(int) 6255 void CDaoRecordset::ThrowDaoException(int) 6256 void CDaoTableDef::ThrowDaoException(int) 6257 void CDaoWorkspace::ThrowDaoException(int) 6258 void CDatabase::ThrowDBException(short) 6259 void CRecordset::ThrowDBException(short,void *) 6260 void CFileException::ThrowErrno(int,char const *) 6261 void COleControl::ThrowError(long,unsigned int,unsigned int) 6262 void COleControl::ThrowError(long,char const *,unsigned int) 6263 void ThrowGetRowsDaoException(long) 6264 void CFileException::ThrowOsError(long,char const *) 6265 void CDockContext::ToggleDocking() 6266 int CDockContext::Track() 6267 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6268 void CSplitterWnd::TrackColumnSize(int,int) 6269 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6270 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6271 void CSplitterWnd::TrackRowSize(int,int) 6272 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6273 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6274 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6275 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 6276 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6277 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6278 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6279 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6280 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 6281 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6282 void CString::TrimLeft() 6283 void CString::TrimRight() 6284 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6285 void COccManager::UIActivateControl(CWnd *) 6286 long COleControl::XOleInPlaceObject::UIDeactivate() 6287 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 6288 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6289 void COleSafeArray::UnaccessData() 6290 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6291 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6292 long COleControl::XOleObject::Unadvise(unsigned long) 6293 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6294 long COleServerItem::XOleObject::Unadvise(unsigned long) 6295 void CRecordset::UnbindFieldsForUpdate() 6296 long COleControl::XOleCache::Uncache(unsigned long) 6297 long COleControl::XViewObject::Unfreeze(unsigned long) 6298 int CCriticalSection::Unlock() 6299 int CEvent::Unlock() 6300 int CMultiLock::Unlock(long,long *) 6301 int CMultiLock::Unlock() 6302 int CMutex::Unlock() 6303 void COleSafeArray::Unlock() 6304 int CSemaphore::Unlock(long,long *) 6305 int CSemaphore::Unlock() 6306 int CSingleLock::Unlock(long,long *) 6307 int CSingleLock::Unlock() 6308 int CSyncObject::Unlock(long,long *) 6309 void CTypeLibCache::Unlock() 6310 void CEditView::UnlockBuffer()const 6311 void CString::UnlockBuffer() 6312 void CFile::UnlockRange(unsigned long,unsigned long) 6313 void CInternetFile::UnlockRange(unsigned long,unsigned long) 6314 void CMemFile::UnlockRange(unsigned long,unsigned long) 6315 void COleStreamFile::UnlockRange(unsigned long,unsigned long) 6316 void CSocketFile::UnlockRange(unsigned long,unsigned long) 6317 void CStdioFile::UnlockRange(unsigned long,unsigned long) 6318 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6319 int CWinApp::Unregister() 6320 HWND__ * CWnd::UnsubclassWindow() 6321 void CDaoRecordset::Update() 6322 int CRecordset::Update() 6323 long CDocObjectServer::XOleObject::Update() 6324 long COleControl::XOleObject::Update() 6325 long COleServerDoc::XOleObject::Update() 6326 long COleServerItem::XOleObject::Update() 6327 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6328 void CStatusBar::UpdateAllPanes(int,int) 6329 void CDocument::UpdateAllViews(CView *,long,CObject *) 6330 void CScrollView::UpdateBars() 6331 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6332 long CDataSourceControl::UpdateControls() 6333 long CDataSourceControl::UpdateCursor() 6334 int CWnd::UpdateData(int) 6335 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6336 void CDocument::UpdateFrameCounts() 6337 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 6338 int CRecordset::UpdateInsertDelete() 6339 void COleClientItem::UpdateItemType() 6340 int COleClientItem::UpdateLink() 6341 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6342 void CSizeComboBox::UpdateLogFont(tagLOGFONTA *,int) 6343 void CRecentFileList::UpdateMenu(CCmdUI *) 6344 void COleDocument::UpdateModifiedFlag() 6345 void CRichEditDoc::UpdateModifiedFlag() 6346 void CRichEditDoc::UpdateObjectCache() 6347 void CWinApp::UpdatePrinterSelection(int) 6348 int CColorPropPage::CColorPropPageFactory::UpdateRegistry(int) 6349 int CFontPropPage::CFontPropPageFactory::UpdateRegistry(int) 6350 int COleObjectFactory::UpdateRegistry(int) 6351 void COleObjectFactory::UpdateRegistry(char const *) 6352 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *) 6353 int CPicturePropPage::CPicturePropPageFactory::UpdateRegistry(int) 6354 int COleObjectFactory::UpdateRegistryAll(int) 6355 void CFontPropPage::UpdateSampleFont() 6356 void CDockContext::UpdateState(int *,int) 6357 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6358 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 6359 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6360 void COleLinkingDoc::UpdateVisibleLock(int,int) 6361 void CDatabase::VerifyConnect() 6362 unsigned long CRecordset::VerifyCursorSupport() 6363 void CRecordset::VerifyDriverBehavior() 6364 int COleObjectFactory::VerifyLicenseKey(unsigned short *) 6365 int COleObjectFactory::VerifyUserLicense() 6366 int CListBox::VKeyToItem(unsigned int,unsigned int) 6367 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6368 int COleControl::WillAmbientsBeValidDuringLoad() 6369 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6370 long COleControl::WindowProc(unsigned int,unsigned int,long) 6371 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6372 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6373 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6374 long CWnd::WindowProc(unsigned int,unsigned int,long) 6375 void CWinApp::WinHelpA(unsigned long,unsigned int) 6376 void CWnd::WinHelpA(unsigned long,unsigned int) 6377 CWnd const CWnd::wndBottom 6378 CWnd const CWnd::wndNoTopMost 6379 CWnd const CWnd::wndTop 6380 CWnd const CWnd::wndTopMost 6381 void CRichEditView::WrapChanged() 6382 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6383 void CArchive::Write(void const *,unsigned int) 6384 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6385 void CFile::Write(void const *,unsigned int) 6386 void CGopherFile::Write(void const *,unsigned int) 6387 int CImageList::Write(CArchive *) 6388 void CInternetFile::Write(void const *,unsigned int) 6389 void CMemFile::Write(void const *,unsigned int) 6390 void COleStreamFile::Write(void const *,unsigned int) 6391 void CSocketFile::Write(void const *,unsigned int) 6392 void CStdioFile::Write(void const *,unsigned int) 6393 void CArchive::WriteClass(CRuntimeconst *) 6394 void CArchive::WriteCount(unsigned long) 6395 void COleClientItem::WriteItem(CArchive &) 6396 void COleClientItem::WriteItemCompound(CArchive &) 6397 void COleClientItem::WriteItemFlat(CArchive &) 6398 void CRecentFileList::WriteList() 6399 int CPropertySection::WriteNameDictToStream(IStream *) 6400 void CArchive::WriteObject(CObject const *) 6401 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 6402 int CWinApp::WriteProfileInt(char const *,char const *,int) 6403 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 6404 void CArchive::WriteString(char const *) 6405 void CGopherFile::WriteString(char const *) 6406 void CInternetFile::WriteString(char const *) 6407 void CStdioFile::WriteString(char const *) 6408 void CEditView::WriteToArchive(CArchive &) 6409 int CProperty::WriteToStream(IStream *) 6410 int CPropertySection::WriteToStream(IStream *) 6411 int CPropertySet::WriteToStream(IStream *) 6412 afxChNil 6413 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 6414 _CIP::~_CIP() 6415 _CIP::~_CIP() 6416 CIP::~CIP() 6417 CIP::~CIP() 6418 int AfxParseURLEx(char const *,unsigned long &,CString &,CString &,unsigned short &,CString &,CString &,unsigned long) 6421 CRuntimeconst CInternetException::classCInternetException 6422 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 6423 int CWinThread::DispatchThreadMessageEx(tagMSG *) 6424 void CAsyncMonikerFile::EndCallbacks() 6425 void CMonikerFile::Flush() 6426 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 6427 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 6428 CEnumConnections::CEnumConnections(void const *,unsigned int) 6429 CEnumConnections::~CEnumConnections() 6430 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 6431 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 6432 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 6433 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 6434 int _AfxDeleteRegKey(char const *) 6435 void CEnumConnections::AddConnection(tagCONNECTDATA *) 6436 void AfxGetDefaultValue(_DAOField *,CString &) 6437 HINSTANCE__ * AfxGetResourceHandle() 6438 int AfxInitRichEdit() 6439 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 6440 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 6441 void AfxSetDefaultValue(_DAOField *,CString &) 6442 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 6443 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 6444 void COleControlContainer::FreezeAllEvents(int) 6445 void COleControlSite::FreezeEvents(int) 6446 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 6447 unsigned int HashKey(unsigned short const *) 6448 AFX_INTERFACEMAP const COleControlContainer::interfaceMap 6449 AFX_INTERFACEMAP const COleControlSite::interfaceMap 6450 CEnumArray * CEnumConnections::OnClone() 6451 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6452 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6453 void CWnd::OnDestroy() 6454 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6455 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6456 int CEnumConnections::OnNext(void *) 6457 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6458 void CWnd::OnSettingChange(unsigned int,char const *) 6459 void CRecordset::SetParamNull(int,int) 6460 int COleObjectFactory::Unregister() 6461 int COleTemplateServer::Unregister() 6462 int COleObjectFactory::UnregisterAll() 6463 void CDocManager::UnregisterShellFileTypes() 6464 void CWinApp::UnregisterShellFileTypes() 6465 AFX_CLASSINIT_COMPAT::AFX_CLASSINIT_COMPAT(CRuntime*) 6466 AFX_EVENT::AFX_EVENT(int) 6467 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 6468 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 6469 CColorPropPage::CColorPropPageFactory::CColorPropPageFactory(_GUID const &,CRuntime*,int,char const *) 6470 CDaoErrorInfo::CDaoErrorInfo() 6471 CDaoFieldInfo::CDaoFieldInfo() 6472 CDataPathProperty::CDataPathProperty(COleControl *) 6473 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 6474 CFileStatus::CFileStatus() 6475 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 6476 CFontPropPage::CFontPropPageFactory::CFontPropPageFactory(_GUID const &,CRuntime*,int,char const *) 6477 CGopherLocator::CGopherLocator(CGopherLocator const &) 6478 CHtmlView::CHtmlView() 6479 CMemoryException::CMemoryException(int,unsigned int) 6480 CNotSupportedException::CNotSupportedException(int,unsigned int) 6481 COleDocObjectItem::COleDocObjectItem(COleDocument *) 6482 COleVariant::COleVariant(_ITEMIDLIST const *) 6483 CParkingWnd::CParkingWnd() 6484 CPicturePropPage::CPicturePropPageFactory::CPicturePropPageFactory(_GUID const &,CRuntime*,int,char const *) 6485 CPropertyPageEx::CPropertyPageEx(unsigned int,unsigned int,unsigned int,unsigned int) 6486 CPropertyPageEx::CPropertyPageEx(char const *,unsigned int,unsigned int,unsigned int) 6487 CPropertyPageEx::CPropertyPageEx() 6488 CPropertySheetEx::CPropertySheetEx(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6489 CPropertySheetEx::CPropertySheetEx(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6490 CPropertySheetEx::CPropertySheetEx() 6491 CReBar::CReBar() 6492 CResourceException::CResourceException(int,unsigned int) 6493 CString::CString(unsigned short const *,int) 6494 CUserException::CUserException(int,unsigned int) 6495 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 6496 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 6497 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 6498 CArchiveException::~CArchiveException() 6499 CColorDialog::~CColorDialog() 6500 CColorPropPage::~CColorPropPage() 6501 CColorPropPage::CColorPropPageFactory::~CColorPropPageFactory() 6502 CComboBoxEx::~CComboBoxEx() 6503 CControlBarInfo::~CControlBarInfo() 6504 COleControl::CControlDataSource::~CControlDataSource() 6505 CControlFrameWnd::~CControlFrameWnd() 6506 CControlRectTracker::~CControlRectTracker() 6507 CDaoErrorInfo::~CDaoErrorInfo() 6508 CDateTimeCtrl::~CDateTimeCtrl() 6509 CFindReplaceDialog::~CFindReplaceDialog() 6510 CFixedAlloc::~CFixedAlloc() 6511 CFontPropPage::~CFontPropPage() 6512 CFontPropPage::CFontPropPageFactory::~CFontPropPageFactory() 6513 CHandleMap::~CHandleMap() 6514 CHtmlView::~CHtmlView() 6515 CIPAddressCtrl::~CIPAddressCtrl() 6516 CMDIChildWnd::~CMDIChildWnd() 6517 CMDIFrameWnd::~CMDIFrameWnd() 6518 CMemoryException::~CMemoryException() 6519 CMiniDockFrameWnd::~CMiniDockFrameWnd() 6520 CMonthCalCtrl::~CMonthCalCtrl() 6521 CNotSupportedException::~CNotSupportedException() 6522 COccManager::~COccManager() 6523 COleDocObjectItem::~COleDocObjectItem() 6524 COleException::~COleException() 6525 COleSafeArray::~COleSafeArray() 6526 CParkingWnd::~CParkingWnd() 6527 CPicturePropPage::CPicturePropPageFactory::~CPicturePropPageFactory() 6528 CPropertyPageEx::~CPropertyPageEx() 6529 CPropertySheetEx::~CPropertySheetEx() 6530 CPushRoutingFrame::~CPushRoutingFrame() 6531 CPushRoutingView::~CPushRoutingView() 6532 CReBar::~CReBar() 6533 CReflectorWnd::~CReflectorWnd() 6534 CResourceException::~CResourceException() 6535 CRichEditDoc::~CRichEditDoc() 6536 CSocketWnd::~CSocketWnd() 6537 CTempDC::~CTempDC() 6538 CTempGdiObject::~CTempGdiObject() 6539 CTempImageList::~CTempImageList() 6540 CTempMenu::~CTempMenu() 6541 CTempWnd::~CTempWnd() 6542 CThreadData::~CThreadData() 6543 CTypeLibCacheMap::~CTypeLibCacheMap() 6544 CUserException::~CUserException() 6545 CWindowlessDC::~CWindowlessDC() 6546 void CTempWnd::operator delete(void *) 6547 CArchive & CArchive::operator>>(unsigned char &) 6548 CArchive & CArchive::operator>>(unsigned short &) 6549 CArchive & CArchive::operator>>(long &) 6550 CArchive & CArchive::operator>>(unsigned long &) 6551 CArchive & CArchive::operator>>(float &) 6552 CArchive & CArchive::operator>>(double &) 6553 CArchive & CArchive::operator<<(unsigned char) 6554 CArchive & CArchive::operator<<(unsigned short) 6555 CArchive & CArchive::operator<<(long) 6556 CArchive & CArchive::operator<<(unsigned long) 6557 CArchive & CArchive::operator<<(float) 6558 CArchive & CArchive::operator<<(double) 6559 int operator==(_GUID const &,_GUID const &) 6560 int CTime::operator<(CTime)const 6561 int CTime::operator>(CTime)const 6562 void COleDocObjectItem::ActivateAndShow() 6563 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 6564 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 6565 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 6566 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 6567 __POSITION * CStringList::AddHead(CString const &) 6568 void CPropertySheetEx::AddPage(CPropertyPageEx *) 6569 __POSITION * CStringList::AddTail(CString const &) 6570 void AfxCheckError(long) 6571 void AfxClassInit(CRuntime*) 6572 long AfxDelRegTreeHelper(HKEY__ *,CString const &) 6573 AFX_EXCEPTION_CONTEXT * AfxGetExceptionContext() 6574 void * AfxGetHENV() 6575 CWnd * AfxGetMainWnd() 6576 HINSTANCE__ * AfxGetResourceHandleCompat() 6577 CHandleMap * afxMapHDC(int) 6578 CHandleMap * afxMapHGDIOBJ(int) 6579 CHandleMap * afxMapHIMAGELIST(int) 6580 CHandleMap * afxMapHMENU(int) 6581 CHandleMap * afxMapHWND(int) 6582 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 6583 void AfxTrackerTerm() 6584 void AfxWingdixTerm() 6585 void * CFixedAlloc::Alloc() 6586 unsigned short * AtlA2WHelper(unsigned short *,char const *,int) 6587 _devicemodeW * AtlDevModeA2W(_devicemodeW *,_devicemodeA *) 6588 _devicemodeA * AtlDevModeW2A(_devicemodeA *,_devicemodeW *) 6589 char * AtlW2AHelper(char *,unsigned short const *,int) 6590 void COleControlContainer::AttachControlSite(CWnd *) 6591 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,int *) 6592 void CPropertySheetEx::BuildPropPageArray() 6593 CSize CReBar::CalcDynamicLayout(int,unsigned long) 6594 CSize CReBar::CalcFixedLayout(int,int) 6595 int CDatabase::CheckHstmt(short,void *)const 6596 CRuntimeconst CComboBoxEx::classCComboBoxEx 6597 CRuntimeconst CHtmlView::classCHtmlView 6598 CRuntimeconst CIPAddressCtrl::classCIPAddressCtrl 6599 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6600 CRuntimeconst COleDocObjectItem::classCOleDocObjectItem 6601 CRuntimeconst CPropertyPageEx::classCPropertyPageEx 6602 CRuntimeconst CPropertySheetEx::classCPropertySheetEx 6603 CRuntimeconst CReBar::classCReBar 6604 CRuntimeconst CReBarCtrl::classCReBarCtrl 6605 void CWnd::ClientToScreen(tagRECT *)const 6606 void CPropertyPageEx::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 6607 void CPropertySheetEx::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6608 void CPropertyPageEx::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 6609 void CPropertyPageEx::Construct(char const *,unsigned int,unsigned int,unsigned int) 6610 void CPropertySheetEx::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6611 void CPropertySheetEx::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6612 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6613 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6614 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 6615 int CImageList::Create(CImageList *) 6616 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6617 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 6618 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6619 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 6620 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6621 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,unsigned short *,COleControlSite * *) 6622 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,unsigned short *) 6623 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,unsigned short *) 6624 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 6625 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 6626 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 6627 CObject * CHtmlView::CreateObject() 6628 CObject * CTempDC::CreateObject() 6629 CObject * CTempGdiObject::CreateObject() 6630 CObject * CTempImageList::CreateObject() 6631 CObject * CTempMenu::CreateObject() 6632 CObject * CTempWnd::CreateObject() 6633 void COleControl::CreateTracker(int,int,tagRECT const *) 6634 void DDV_MinMaxDateTime(CDataExchange *,COleDateTime &,COleDateTime const *,COleDateTime const *) 6635 void DDV_MinMaxDateTime(CDataExchange *,CTime &,CTime const *,CTime const *) 6636 void DDV_MinMaxMonth(CDataExchange *,COleDateTime &,COleDateTime const *,COleDateTime const *) 6637 void DDV_MinMaxMonth(CDataExchange *,CTime &,CTime const *,CTime const *) 6638 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 6639 void DDX_DateTimeCtrl(CDataExchange *,int,COleDateTime &) 6640 void DDX_DateTimeCtrl(CDataExchange *,int,CTime &) 6641 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6642 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 6643 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 6644 void DDX_MonthCalCtrl(CDataExchange *,int,COleDateTime &) 6645 void DDX_MonthCalCtrl(CDataExchange *,int,CTime &) 6646 void DDX_Slider(CDataExchange *,int,int &) 6647 void DDX_Text(CDataExchange *,int,char *,int) 6648 int CString::Delete(int,int) 6649 int CComboBoxEx::DeleteItem(int) 6650 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 6651 int COleInsertDialog::DoModal(unsigned long) 6652 void CControlBar::DrawGripper(CDC *,CRect const &) 6653 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 6654 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long) 6655 int CWnd::EnableTrackingToolTips(int) 6656 void CPropertyPage::EndDialog(int) 6657 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 6658 AFX_EVENTSINKMAP const CHtmlView::eventsinkMap 6659 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6660 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 6661 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 6662 int CString::Find(char,int)const 6663 int CString::Find(char const *,int)const 6664 int FontAttrSize(int) 6665 void CFixedAlloc::Free(void *) 6666 void CFixedAlloc::FreeAll() 6667 void __fastcall CString::FreeData(CStringData *) 6668 IOleDocumentView * COleDocObjectItem::GetActiveView()const 6669 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 6670 int CHtmlView::GetAddressBar()const 6671 IDispatch * CHtmlView::GetApplication()const 6672 int COleDateTime::GetAsSystemTime(_SYSTEMTIME &)const 6673 int CTime::GetAsSystemTime(_SYSTEMTIME &)const 6674 int CHtmlView::GetBusy()const 6675 int CListCtrl::GetCheck(int)const 6676 int CTreeCtrl::GetCheck(_TREEITEM *)const 6677 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 6678 int CListCtrl::GetColumnOrderArray(int *,int) 6679 IDispatch * CHtmlView::GetContainer()const 6680 int CInternetSession::GetCookie(char const *,char const *,CString &) 6681 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 6682 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 6683 int CListBox::GetCurSel()const 6684 int CMonthCalCtrl::GetCurSel(COleDateTime &)const 6685 int CMonthCalCtrl::GetCurSel(CTime &)const 6686 IUnknown * CDataBoundProperty::GetCursor() 6687 IUnknown * CDataSourceControl::GetCursor() 6688 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 6689 int CDocManager::GetDocumentCount() 6690 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 6691 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 6692 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 6693 CFont * CWnd::GetFont()const 6694 CString CHtmlView::GetFullName()const 6695 int CHtmlView::GetFullScreen()const 6696 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 6697 long CHtmlView::GetHeight()const 6698 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 6699 IDispatch * CHtmlView::GetHtmlDocument()const 6700 HICON__ * COleClientItem::GetIconFromRegistry()const 6701 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 6702 CImageList * CReBarCtrl::GetImageList()const 6703 IUnknown * COleFrameHook::GetInterfaceHook(void const *) 6704 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 6705 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 6706 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 6707 unsigned long CDC::GetLayout()const 6708 long CHtmlView::GetLeft()const 6709 CString CHtmlView::GetLocationName()const 6710 CString CHtmlView::GetLocationURL()const 6711 int CHtmlView::GetMenuBar()const 6712 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 6713 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 6714 AFX_MSGMAP const * CReBar::GetMessageMap()const 6715 IMoniker * CMonikerFile::GetMoniker()const 6716 int CMonthCalCtrl::GetMonthRange(COleDateTime &,COleDateTime &,unsigned long)const 6717 int CMonthCalCtrl::GetMonthRange(CTime &,CTime &,unsigned long)const 6718 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 6719 int CHtmlView::GetOffline()const 6720 int CHeaderCtrl::GetOrderArray(int *,int) 6721 CWnd * CWnd::GetOwner()const 6722 int COleDocObjectItem::GetPageCount(long *,long *) 6723 CRect CRichEditView::GetPageRect()const 6724 IDispatch * CHtmlView::GetParentBrowser()const 6725 CRect CRichEditView::GetPrintRect()const 6726 COleVariant CHtmlView::GetProperty(char const *) 6727 int CHtmlView::GetProperty(char const *,CString &) 6728 _AFX_OLDPROPSHEETHEADER * CPropertySheet::GetPropSheetHeader() 6729 unsigned long CDateTimeCtrl::GetRange(COleDateTime *,COleDateTime *)const 6730 unsigned long CDateTimeCtrl::GetRange(CTime *,CTime *)const 6731 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 6732 unsigned long CMonthCalCtrl::GetRange(COleDateTime *,COleDateTime *)const 6733 unsigned long CMonthCalCtrl::GetRange(CTime *,CTime *)const 6734 void CProgressCtrl::GetRange(int &,int &) 6735 enum tagREADYSTATE CHtmlView::GetReadyState()const 6736 int CHtmlView::GetRegisterAsBrowser()const 6737 int CHtmlView::GetRegisterAsDropTarget()const 6738 CFrameWnd * CCmdTarget::GetRoutingFrame_() 6739 CView * CCmdTarget::GetRoutingView_() 6740 CRuntime* CComboBoxEx::GetRuntimeClass()const 6741 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 6742 CRuntime* CHtmlView::GetRuntimeClass()const 6743 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 6744 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 6745 CRuntime* COleDBRecordView::GetRuntimeClass()const 6746 CRuntime* COleDocObjectItem::GetRuntimeClass()const 6747 CRuntime* CPropertyPageEx::GetRuntimeClass()const 6748 CRuntime* CPropertySheetEx::GetRuntimeClass()const 6749 CRuntime* CReBar::GetRuntimeClass()const 6750 CRuntime* CReBarCtrl::GetRuntimeClass()const 6751 CRuntime* CTempDC::GetRuntimeClass()const 6752 CRuntime* CTempGdiObject::GetRuntimeClass()const 6753 CRuntime* CTempImageList::GetRuntimeClass()const 6754 CRuntime* CTempMenu::GetRuntimeClass()const 6755 CRuntime* CTempWnd::GetRuntimeClass()const 6756 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 6757 int CMonthCalCtrl::GetSelRange(COleDateTime &,COleDateTime &)const 6758 int CMonthCalCtrl::GetSelRange(CTime &,CTime &)const 6759 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 6760 int CHtmlView::GetSilent()const 6761 int CHtmlView::GetStatusBar()const 6762 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 6763 CTabCtrl * CPropertySheet::GetTabControl()const 6764 CString CMirrorFile::GetTempName(char const *,int) 6765 int CHtmlView::GetTheaterMode()const 6766 int CDateTimeCtrl::GetTime(COleDateTime &)const 6767 unsigned long CDateTimeCtrl::GetTime(CTime &)const 6768 CString CStatusBarCtrl::GetTipText(int)const 6769 CString CFrameWnd::GetTitle()const 6770 int CMonthCalCtrl::GetToday(COleDateTime &)const 6771 int CMonthCalCtrl::GetToday(CTime &)const 6772 int CHtmlView::GetToolBar()const 6773 long CHtmlView::GetTop()const 6774 int CHtmlView::GetTopLevelContainer()const 6775 CString CHtmlView::GetType()const 6776 int CHtmlView::GetVisible()const 6777 int HasFont(DLGTEMPLATE const *) 6778 int CString::Insert(int,char) 6779 int CString::Insert(int,char const *) 6780 __POSITION * CStringList::InsertAfter(__POSITION *,CString const &) 6781 void CStringArray::InsertAt(int,CString const &,int) 6782 __POSITION * CStringList::InsertBefore(__POSITION *,CString const &) 6783 void CStringArray::InsertEmpty(int,int) 6784 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 6785 int CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 6786 int CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 6787 AFX_INTERFACEMAP const COleDocObjectItem::interfaceMap 6788 int CPropertyPage::IsButtonEnabled(int) 6789 int IsButtonUp(tagMSG *) 6790 int IsDialogEx(DLGTEMPLATE const *) 6791 int IsDirSep(char) 6792 int IsEnterKey(tagMSG *) 6793 int IsHelpKey(tagMSG *) 6794 void CToolBar::Layout() 6795 int CBitmap::LoadBitmapA(unsigned int) 6796 int CHtmlView::LoadFromResource(unsigned int) 6797 int CHtmlView::LoadFromResource(char const *) 6798 void CMDIChildWnd::MDIActivate() 6799 void CMDIChildWnd::MDIDestroy() 6800 AFX_MSGMAP const CHtmlView::messageMap 6801 AFX_MSGMAP const COleDBRecordView::messageMap 6802 AFX_MSGMAP const CReBar::messageMap 6803 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 6804 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 6805 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 6806 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 6807 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 6808 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 6809 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 6810 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 6811 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 6812 void CHtmlView::OnCommandStateChange(long,int) 6813 void CHtmlView::OnDestroy() 6814 void CHtmlView::OnDocumentComplete(char const *) 6815 void CHtmlView::OnDownloadBegin() 6816 void CHtmlView::OnDownloadComplete() 6817 void CHtmlView::OnDraw(CDC *) 6818 void CToolTipCtrl::OnEnable(int) 6819 int COleControl::OnEraseBkgnd(CDC *) 6820 int CReBar::OnEraseBkgnd(CDC *) 6821 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6822 void CHtmlView::OnFilePrint() 6823 void CHtmlView::OnFullScreen(int) 6824 void COleDocObjectItem::OnGetItemPosition(CRect &) 6825 void CReBar::OnHeightChange(tagNMHDR *,long *) 6826 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6827 void COleDBRecordView::OnInitialUpdate() 6828 void CFrameWnd::OnInitMenu(CMenu *) 6829 void COleFrameHook::OnInitMenu(CMenu *) 6830 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6831 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6832 void CHtmlView::OnMenuBar(int) 6833 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6834 int COleDBRecordView::OnMove(unsigned int) 6835 void CHtmlView::OnNavigateComplete2(char const *) 6836 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6837 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 6838 void CReBar::OnNcPaint() 6839 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6840 void CHtmlView::OnPaint() 6841 void CReBar::OnPaint() 6842 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6843 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6844 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6845 void CHtmlView::OnProgressChange(long,long) 6846 void CHtmlView::OnPropertyChange(char const *) 6847 void CHtmlView::OnQuit() 6848 void CReBar::OnRecalcParent() 6849 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6850 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6851 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6852 long CToolBar::OnSetSizeHelper(CSize &,long) 6853 long CReBar::OnShowBand(unsigned int,long) 6854 void CHtmlView::OnSize(unsigned int,int,int) 6855 void CHtmlView::OnStatusBar(int) 6856 void CHtmlView::OnStatusTextChange(char const *) 6857 void CHtmlView::OnTheaterMode(int) 6858 void CHtmlView::OnTitleChange(char const *) 6859 void CHtmlView::OnToolBar(int) 6860 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6861 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6862 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6863 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6864 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6865 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6866 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6867 void CHtmlView::OnVisible(int) 6868 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 6869 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 6870 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 6871 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 6872 void COleDocObjectItem::Release(enum tagOLECLOSE) 6873 void COleControl::ReleaseCaches() 6874 int CString::Remove(char) 6875 void CTypeLibCacheMap::RemoveAll(void *) 6876 int CString::Replace(char,char) 6877 int CString::Replace(char const *,char const *) 6878 void RFX_Date(CFieldExchange *,char const *,COleDateTime &) 6879 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 6880 void CWnd::ScreenToClient(tagRECT *)const 6881 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 6882 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 6883 void CStringArray::SetAtGrow(int,CString const &) 6884 void CAsyncMonikerFile::SetBinding(IBinding *) 6885 int CListCtrl::SetBkImage(char *,int,int,int) 6886 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 6887 void CControlBar::SetBorders(int,int,int,int) 6888 int CListCtrl::SetCheck(int,int) 6889 int CTreeCtrl::SetCheck(_TREEITEM *,int) 6890 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 6891 int CListCtrl::SetColumnOrderArray(int,int *) 6892 int CInternetSession::SetCookie(char const *,char const *,char const *) 6893 int CMonthCalCtrl::SetCurSel(COleDateTime const &) 6894 int CMonthCalCtrl::SetCurSel(CTime const &) 6895 int CMonthCalCtrl::SetDayState(int,unsigned long *) 6896 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 6897 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 6898 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 6899 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 6900 CSize CListCtrl::SetIconSpacing(int,int) 6901 CSize CListCtrl::SetIconSpacing(CSize) 6902 int CReBarCtrl::SetImageList(CImageList *) 6903 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 6904 int CListCtrl::SetItemCountEx(int,unsigned long) 6905 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 6906 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 6907 int CListCtrl::SetItemText(int,int,char const *) 6908 unsigned long CDC::SetLayout(unsigned long) 6909 int CHeaderCtrl::SetOrderArray(int,int *) 6910 int CDateTimeCtrl::SetRange(COleDateTime const *,COleDateTime const *) 6911 int CDateTimeCtrl::SetRange(CTime const *,CTime const *) 6912 int CMonthCalCtrl::SetRange(COleDateTime const *,COleDateTime const *) 6913 int CMonthCalCtrl::SetRange(CTime const *,CTime const *) 6914 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6915 void CCheckListBox::SetSelectionCheck(int) 6916 int CMonthCalCtrl::SetSelRange(COleDateTime const &,COleDateTime const &) 6917 int CMonthCalCtrl::SetSelRange(CTime const &,CTime const &) 6918 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6919 int CDateTimeCtrl::SetTime(COleDateTime const &) 6920 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6921 int CDateTimeCtrl::SetTime(CTime const *) 6922 void CMonthCalCtrl::SetToday(COleDateTime const &) 6923 void CMonthCalCtrl::SetToday(CTime const *) 6924 int CMonthCalCtrl::SizeMinReq(int) 6925 int COleDocObjectItem::SupportsIPrint() 6926 COleVariant CDataSourceControl::ToVariant(int) 6927 void CString::TrimLeft(char) 6928 void CString::TrimLeft(char const *) 6929 void CString::TrimRight(char) 6930 void CString::TrimRight(char const *) 6931 long CReBar::WindowProc(unsigned int,unsigned int,long) 6932 int CMenu::GetMenuStringA(unsigned int,CString &,unsigned int)const ================================================ FILE: Bin/i386/mfc_sym/mfc42d.def ================================================ 256 void CRect::operator&=(tagRECT const &) 257 void CRect::operator|=(tagRECT const &) 258 CEmbeddedButActsLikePtr::CEmbeddedButActsLikePtr() 259 CEmbeddedButActsLikePtr::CEmbeddedButActsLikePtr() 260 CTypedSimpleList::CTypedSimpleList(int) 261 CTypedSimpleList::CTypedSimpleList(int) 262 CTypedSimpleList::CTypedSimpleList(int) 263 CTypedSimpleList::CTypedSimpleList(int) 264 CTypedSimpleList::CTypedSimpleList(int) 265 CTypedSimpleList::CTypedSimpleList(int) 266 _AFX_BASE_MODULE_STATE::_AFX_BASE_MODULE_STATE() 267 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 268 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 269 _AFX_CONTROLPOS::_AFX_CONTROLPOS() 270 _AFX_CTL3D_STATE::_AFX_CTL3D_STATE() 271 _AFX_CTL3D_THREAD::_AFX_CTL3D_THREAD() 272 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 273 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 274 _AFX_MAIL_STATE::_AFX_MAIL_STATE() 275 _AFX_PROPPAGEFONTINFO::_AFX_PROPPAGEFONTINFO() 276 _AFX_RICHEDIT_STATE::_AFX_RICHEDIT_STATE() 277 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 278 _AFX_WIN_STATE::_AFX_WIN_STATE() 279 AFX_CHECK_DATA::AFX_CHECK_DATA() 280 AFX_CLASSINIT::AFX_CLASSINIT(CRuntime*) 281 AFX_CLASSINIT_COMPAT::AFX_CLASSINIT_COMPAT(CRuntime*) 282 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 283 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 284 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 285 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long) 286 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 287 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 288 CAnimateCtrl::CAnimateCtrl() 289 CArchive::CArchive(CArchive const &) 290 CArchive::CArchive(CFile *,unsigned int,int,void *) 291 CArchiveException::CArchiveException(int,char const *) 292 CArchiveStream::CArchiveStream(CArchive *) 293 CBitmap::CBitmap() 294 CBitmapButton::CBitmapButton() 295 CBrush::CBrush(int,unsigned long) 296 CBrush::CBrush(unsigned long) 297 CBrush::CBrush(CBitmap *) 298 CBrush::CBrush() 299 CButton::CButton() 300 CByteArray::CByteArray() 301 CCheckListBox::CCheckListBox() 302 CClientDC::CClientDC(CWnd *) 303 CCmdTarget::CCmdTarget() 304 CCmdUI::CCmdUI() 305 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 306 CComboBox::CComboBox() 307 CComboBoxEx::CComboBoxEx() 308 CCommandLineInfo::CCommandLineInfo() 309 CCommonDialog::CCommonDialog(CWnd *) 310 CControlBar::CControlBar() 311 CControlBarInfo::CControlBarInfo() 312 CCreateContext::CCreateContext() 313 CCriticalSection::CCriticalSection() 314 CCtrlView::CCtrlView(char const *,unsigned long) 315 CDataExchange::CDataExchange(CWnd *,int) 316 CDC::CDC() 317 CDialog::CDialog(unsigned int,CWnd *) 318 CDialog::CDialog(char const *,CWnd *) 319 CDialog::CDialog() 320 CDialogBar::CDialogBar() 321 CDialogTemplate::CDialogTemplate(void *) 322 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 323 CDockBar::CDockBar(int) 324 CDockContext::CDockContext(CControlBar *) 325 CDockState::CDockState() 326 CDocManager::CDocManager() 327 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 328 CDocument::CDocument() 329 CDragListBox::CDragListBox() 330 CDumpContext::CDumpContext(CDumpContext const &) 331 CDumpContext::CDumpContext(CFile *) 332 CDWordArray::CDWordArray() 333 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 334 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 335 CEdit::CEdit() 336 CEditView::CEditView() 337 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 338 CException::CException(int) 339 CException::CException() 340 CFile::CFile(int) 341 CFile::CFile(char const *,unsigned int) 342 CFile::CFile() 343 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *) 344 CFileException::CFileException(int,long,char const *) 345 CFileFind::CFileFind() 346 CFileStatus::CFileStatus() 347 CFindReplaceDialog::CFindReplaceDialog() 348 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 349 CFont::CFont() 350 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 351 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 352 CFormView::CFormView(unsigned int) 353 CFormView::CFormView(char const *) 354 CFrameWnd::CFrameWnd() 355 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 356 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 357 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 358 CGdiObject::CGdiObject() 359 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 360 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 361 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 362 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 363 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 364 CGopherLocator::CGopherLocator(char const *,unsigned long) 365 CGopherLocator::CGopherLocator(CGopherLocator const &) 366 CHandleMap::CHandleMap(CRuntime*,unsigned int,int) 367 CHeaderCtrl::CHeaderCtrl() 368 CHotKeyCtrl::CHotKeyCtrl() 369 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 370 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 371 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 372 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 373 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 374 CImageList::CImageList() 375 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 376 CInternetException::CInternetException(unsigned long) 377 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 378 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 379 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 380 CIPAddressCtrl::CIPAddressCtrl() 381 CListBox::CListBox() 382 CListCtrl::CListCtrl() 383 CListView::CListView() 384 CMapPtrToPtr::CMapPtrToPtr(int) 385 CMapPtrToWord::CMapPtrToWord(int) 386 CMapStringToOb::CMapStringToOb(int) 387 CMapStringToPtr::CMapStringToPtr(int) 388 CMapStringToString::CMapStringToString(int) 389 CMapWordToOb::CMapWordToOb(int) 390 CMapWordToPtr::CMapWordToPtr(int) 391 CMDIChildWnd::CMDIChildWnd() 392 CMDIFrameWnd::CMDIFrameWnd() 393 CMemFile::CMemFile(unsigned int) 394 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 395 CMemoryException::CMemoryException(int,unsigned int) 396 CMemoryException::CMemoryException() 397 CMemoryState::CMemoryState() 398 CMenu::CMenu() 399 CMetaFileDC::CMetaFileDC() 400 CMiniDockFrameWnd::CMiniDockFrameWnd() 401 CMiniFrameWnd::CMiniFrameWnd() 402 CMirrorFile::CMirrorFile() 403 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 404 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 405 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 406 CNoTrackObject::CNoTrackObject() 407 CNotSupportedException::CNotSupportedException(int,unsigned int) 408 CNotSupportedException::CNotSupportedException() 409 CObArray::CObArray() 410 CObject::CObject() 411 CObList::CObList(int) 412 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 413 CPaintDC::CPaintDC(CWnd *) 414 CPalette::CPalette() 415 CPen::CPen(int,int,unsigned long) 416 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 417 CPen::CPen() 418 CPoint::CPoint(int,int) 419 CPoint::CPoint(unsigned long) 420 CPoint::CPoint(tagPOINT) 421 CPoint::CPoint(tagSIZE) 422 CPoint::CPoint() 423 CPreviewDC::CPreviewDC() 424 CPreviewView::CPreviewView() 425 CPrintDialog::CPrintDialog(tagPDA &) 426 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 427 CPrintInfo::CPrintInfo() 428 CPrintPreviewState::CPrintPreviewState() 429 CProgressCtrl::CProgressCtrl() 430 CPropertyPage::CPropertyPage(unsigned int,unsigned int) 431 CPropertyPage::CPropertyPage(char const *,unsigned int) 432 CPropertyPage::CPropertyPage() 433 CPropertyPageEx::CPropertyPageEx(unsigned int,unsigned int,unsigned int,unsigned int) 434 CPropertyPageEx::CPropertyPageEx(char const *,unsigned int,unsigned int,unsigned int) 435 CPropertyPageEx::CPropertyPageEx() 436 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 437 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 438 CPropertySheet::CPropertySheet() 439 CPropertySheetEx::CPropertySheetEx(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 440 CPropertySheetEx::CPropertySheetEx(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 441 CPropertySheetEx::CPropertySheetEx() 442 CPtrArray::CPtrArray() 443 CPtrList::CPtrList(int) 444 CPushRoutingFrame::CPushRoutingFrame(CFrameWnd *) 445 CPushRoutingView::CPushRoutingView(CView *) 446 CReBar::CReBar() 447 CReBarCtrl::CReBarCtrl() 448 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 449 CRect::CRect(tagRECT const &) 450 CRect::CRect(int,int,int,int) 451 CRect::CRect(tagRECT const *) 452 CRect::CRect(tagPOINT,tagPOINT) 453 CRect::CRect(tagPOINT,tagSIZE) 454 CRect::CRect() 455 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 456 CRectTracker::CRectTracker() 457 CResourceException::CResourceException(int,unsigned int) 458 CResourceException::CResourceException() 459 CRgn::CRgn() 460 CRichEditCtrl::CRichEditCtrl() 461 CScrollBar::CScrollBar() 462 CScrollView::CScrollView() 463 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 464 CSharedFile::CSharedFile(unsigned int,unsigned int) 465 CSimpleException::CSimpleException(int) 466 CSimpleException::CSimpleException() 467 CSimpleList::CSimpleList(int) 468 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 469 CSingleLock::CSingleLock(CSyncObject *,int) 470 CSize::CSize(int,int) 471 CSize::CSize(unsigned long) 472 CSize::CSize(tagPOINT) 473 CSize::CSize(tagSIZE) 474 CSize::CSize() 475 CSliderCtrl::CSliderCtrl() 476 CSpinButtonCtrl::CSpinButtonCtrl() 477 CSplitterWnd::CSplitterWnd() 478 CStatic::CStatic() 479 CStatusBar::CStatusBar() 480 CStatusBarCtrl::CStatusBarCtrl() 481 CStatusCmdUI::CStatusCmdUI() 482 CStdioFile::CStdioFile(_iobuf *) 483 CStdioFile::CStdioFile(char const *,unsigned int) 484 CStdioFile::CStdioFile() 485 CString::CString(CString const &) 486 CString::CString(char,int) 487 CString::CString(char const *) 488 CString::CString(char const *,int) 489 CString::CString(unsigned char const *) 490 CString::CString(unsigned short const *) 491 CString::CString(unsigned short const *,int) 492 CString::CString() 493 CStringArray::CStringArray() 494 CStringList::CStringList(int) 495 CSyncObject::CSyncObject(char const *) 496 CTabCtrl::CTabCtrl() 497 CTempDC::CTempDC() 498 CTempGdiObject::CTempGdiObject() 499 CTempImageList::CTempImageList() 500 CTempMenu::CTempMenu() 501 CTempWnd::CTempWnd() 502 CTestCmdUI::CTestCmdUI() 503 CThreadData::CThreadData() 504 CThreadSlotData::CThreadSlotData() 505 CTime::CTime(_FILETIME const &,int) 506 CTime::CTime(_SYSTEMTIME const &,int) 507 CTime::CTime(CTime const &) 508 CTime::CTime(unsigned short,unsigned short,int) 509 CTime::CTime(int,int,int,int,int,int,int) 510 CTime::CTime(long) 511 CTime::CTime() 512 CTimeSpan::CTimeSpan(CTimeSpan const &) 513 CTimeSpan::CTimeSpan(long) 514 CTimeSpan::CTimeSpan(long,int,int,int) 515 CTimeSpan::CTimeSpan() 516 CToolBar::CToolBar() 517 CToolBarCtrl::CToolBarCtrl() 518 CToolCmdUI::CToolCmdUI() 519 CToolTipCtrl::CToolTipCtrl() 520 CTreeCtrl::CTreeCtrl() 521 CTreeView::CTreeView() 522 CTypeLibCache::CTypeLibCache() 523 CUIntArray::CUIntArray() 524 CUserException::CUserException(int,unsigned int) 525 CUserException::CUserException() 526 CView::CView() 527 CWaitCursor::CWaitCursor() 528 CWinApp::CWinApp(char const *) 529 CWindowDC::CWindowDC(CWnd *) 530 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 531 CWinThread::CWinThread() 532 CWnd::CWnd(HWND__ *) 533 CWnd::CWnd() 534 CWordArray::CWordArray() 535 ISequentialStream::ISequentialStream() 536 IStream::IStream() 537 CPreviewView::PAGE_INFO::PAGE_INFO() 538 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 539 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 540 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 541 _AFX_CTL3D_STATE::~_AFX_CTL3D_STATE() 542 _AFX_CTL3D_THREAD::~_AFX_CTL3D_THREAD() 543 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 544 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 545 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 546 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 547 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 548 _AFX_WIN_STATE::~_AFX_WIN_STATE() 549 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 550 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 551 AFX_MODULE_STATE::~AFX_MODULE_STATE() 552 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 553 CAnimateCtrl::~CAnimateCtrl() 554 CArchive::~CArchive() 555 CArchiveException::~CArchiveException() 556 CBitmap::~CBitmap() 557 CBitmapButton::~CBitmapButton() 558 CBrush::~CBrush() 559 CButton::~CButton() 560 CByteArray::~CByteArray() 561 CCheckListBox::~CCheckListBox() 562 CClientDC::~CClientDC() 563 CCmdTarget::~CCmdTarget() 564 CColorDialog::~CColorDialog() 565 CComboBox::~CComboBox() 566 CComboBoxEx::~CComboBoxEx() 567 CCommandLineInfo::~CCommandLineInfo() 568 CCommonDialog::~CCommonDialog() 569 CControlBar::~CControlBar() 570 CControlBarInfo::~CControlBarInfo() 571 CCriticalSection::~CCriticalSection() 572 CCtrlView::~CCtrlView() 573 CDC::~CDC() 574 CDialog::~CDialog() 575 CDialogBar::~CDialogBar() 576 CDialogTemplate::~CDialogTemplate() 577 CDockBar::~CDockBar() 578 CDockContext::~CDockContext() 579 CDockState::~CDockState() 580 CDocManager::~CDocManager() 581 CDocTemplate::~CDocTemplate() 582 CDocument::~CDocument() 583 CDragListBox::~CDragListBox() 584 CDWordArray::~CDWordArray() 585 CDynLinkLibrary::~CDynLinkLibrary() 586 CEdit::~CEdit() 587 CEditView::~CEditView() 588 CEvent::~CEvent() 589 CException::~CException() 590 CFile::~CFile() 591 CFileDialog::~CFileDialog() 592 CFileException::~CFileException() 593 CFileFind::~CFileFind() 594 CFindReplaceDialog::~CFindReplaceDialog() 595 CFixedAlloc::~CFixedAlloc() 596 CFont::~CFont() 597 CFontDialog::~CFontDialog() 598 CFormView::~CFormView() 599 CFrameWnd::~CFrameWnd() 600 CFtpConnection::~CFtpConnection() 601 CFtpFileFind::~CFtpFileFind() 602 CGdiObject::~CGdiObject() 603 CGopherConnection::~CGopherConnection() 604 CGopherFile::~CGopherFile() 605 CGopherFileFind::~CGopherFileFind() 606 CGopherLocator::~CGopherLocator() 607 CHandleMap::~CHandleMap() 608 CHeaderCtrl::~CHeaderCtrl() 609 CHotKeyCtrl::~CHotKeyCtrl() 610 CHttpConnection::~CHttpConnection() 611 CHttpFile::~CHttpFile() 612 CImageList::~CImageList() 613 CInternetConnection::~CInternetConnection() 614 CInternetException::~CInternetException() 615 CInternetFile::~CInternetFile() 616 CInternetSession::~CInternetSession() 617 CIPAddressCtrl::~CIPAddressCtrl() 618 CListBox::~CListBox() 619 CListCtrl::~CListCtrl() 620 CListView::~CListView() 621 CMapPtrToPtr::~CMapPtrToPtr() 622 CMapPtrToWord::~CMapPtrToWord() 623 CMapStringToOb::~CMapStringToOb() 624 CMapStringToPtr::~CMapStringToPtr() 625 CMapStringToString::~CMapStringToString() 626 CMapWordToOb::~CMapWordToOb() 627 CMapWordToPtr::~CMapWordToPtr() 628 CMDIChildWnd::~CMDIChildWnd() 629 CMDIFrameWnd::~CMDIFrameWnd() 630 CMemFile::~CMemFile() 631 CMemoryException::~CMemoryException() 632 CMenu::~CMenu() 633 CMetaFileDC::~CMetaFileDC() 634 CMiniDockFrameWnd::~CMiniDockFrameWnd() 635 CMiniFrameWnd::~CMiniFrameWnd() 636 CMirrorFile::~CMirrorFile() 637 CMultiDocTemplate::~CMultiDocTemplate() 638 CMultiLock::~CMultiLock() 639 CMutex::~CMutex() 640 CNoTrackObject::~CNoTrackObject() 641 CNotSupportedException::~CNotSupportedException() 642 CObArray::~CObArray() 643 CObject::~CObject() 644 CObList::~CObList() 645 CPageSetupDialog::~CPageSetupDialog() 646 CPaintDC::~CPaintDC() 647 CPalette::~CPalette() 648 CPen::~CPen() 649 CPreviewDC::~CPreviewDC() 650 CPreviewView::~CPreviewView() 651 CPrintDialog::~CPrintDialog() 652 CPrintInfo::~CPrintInfo() 653 CProcessLocalObject::~CProcessLocalObject() 654 CProgressCtrl::~CProgressCtrl() 655 CPropertyPage::~CPropertyPage() 656 CPropertyPageEx::~CPropertyPageEx() 657 CPropertySheet::~CPropertySheet() 658 CPropertySheetEx::~CPropertySheetEx() 659 CPtrArray::~CPtrArray() 660 CPtrList::~CPtrList() 661 CPushRoutingFrame::~CPushRoutingFrame() 662 CPushRoutingView::~CPushRoutingView() 663 CReBar::~CReBar() 664 CReBarCtrl::~CReBarCtrl() 665 CRecentFileList::~CRecentFileList() 666 CRectTracker::~CRectTracker() 667 CResourceException::~CResourceException() 668 CRgn::~CRgn() 669 CRichEditCtrl::~CRichEditCtrl() 670 CScrollBar::~CScrollBar() 671 CScrollView::~CScrollView() 672 CSemaphore::~CSemaphore() 673 CSharedFile::~CSharedFile() 674 CSimpleException::~CSimpleException() 675 CSingleDocTemplate::~CSingleDocTemplate() 676 CSingleLock::~CSingleLock() 677 CSliderCtrl::~CSliderCtrl() 678 CSpinButtonCtrl::~CSpinButtonCtrl() 679 CSplitterWnd::~CSplitterWnd() 680 CStatic::~CStatic() 681 CStatusBar::~CStatusBar() 682 CStatusBarCtrl::~CStatusBarCtrl() 683 CStdioFile::~CStdioFile() 684 CString::~CString() 685 CStringArray::~CStringArray() 686 CStringList::~CStringList() 687 CSyncObject::~CSyncObject() 688 CTabCtrl::~CTabCtrl() 689 CTempDC::~CTempDC() 690 CTempGdiObject::~CTempGdiObject() 691 CTempImageList::~CTempImageList() 692 CTempMenu::~CTempMenu() 693 CTempWnd::~CTempWnd() 694 CThreadData::~CThreadData() 695 CThreadLocalObject::~CThreadLocalObject() 696 CThreadSlotData::~CThreadSlotData() 697 CToolBar::~CToolBar() 698 CToolBarCtrl::~CToolBarCtrl() 699 CToolTipCtrl::~CToolTipCtrl() 700 CTreeCtrl::~CTreeCtrl() 701 CTreeView::~CTreeView() 702 CUIntArray::~CUIntArray() 703 CUserException::~CUserException() 704 CView::~CView() 705 CWaitCursor::~CWaitCursor() 706 CWinApp::~CWinApp() 707 CWindowDC::~CWindowDC() 708 CWinThread::~CWinThread() 709 CWnd::~CWnd() 710 CWordArray::~CWordArray() 711 void * operator new(unsigned int) 712 void * operator new(unsigned int,int,char const *,int) 713 void * operator new(unsigned int,void *) 714 void * operator new(unsigned int,char const *,int) 715 void * CNoTrackObject::operator new(unsigned int) 716 void * CNoTrackObject::operator new(unsigned int,char const *,int) 717 void * CObject::operator new(unsigned int) 718 void * CObject::operator new(unsigned int,void *) 719 void * CObject::operator new(unsigned int,char const *,int) 720 void * CThreadSlotData::operator new(unsigned int,void *) 721 void operator delete(void *) 722 void operator delete(void *,void *) 723 void operator delete(void *,char const *,int) 724 void CException::operator delete(void *) 725 void CException::operator delete(void *,char const *,int) 726 void CNoTrackObject::operator delete(void *) 727 void CNoTrackObject::operator delete(void *,char const *,int) 728 void CObject::operator delete(void *) 729 void CObject::operator delete(void *,void *) 730 void CObject::operator delete(void *,char const *,int) 731 void CArchive::operator=(CArchive const &) 732 void CDumpContext::operator=(CDumpContext const &) 733 void CRect::operator=(tagRECT const &) 734 CString const & CString::operator=(CString const &) 735 CString const & CString::operator=(char) 736 CString const & CString::operator=(char const *) 737 CString const & CString::operator=(unsigned char const *) 738 CString const & CString::operator=(unsigned short const *) 739 CTime const & CTime::operator=(CTime const &) 740 CTime const & CTime::operator=(long) 741 CTimeSpan const & CTimeSpan::operator=(CTimeSpan const &) 742 CArchive & operator>>(CArchive &,CByteArray * &) 743 CArchive & operator>>(CArchive &,CDockState * &) 744 CArchive & operator>>(CArchive &,CDWordArray * &) 745 CArchive & operator>>(CArchive &,CMapStringToOb * &) 746 CArchive & operator>>(CArchive &,CMapStringToString * &) 747 CArchive & operator>>(CArchive &,CMapWordToOb * &) 748 CArchive & operator>>(CArchive &,CObArray * &) 749 CArchive & operator>>(CArchive &,CObject * &) 750 CArchive & operator>>(CArchive &,CObList * &) 751 CArchive & operator>>(CArchive &,CStringArray * &) 752 CArchive & operator>>(CArchive &,CStringList * &) 753 CArchive & operator>>(CArchive &,CWordArray * &) 754 CArchive & operator>>(CArchive &,CObject const * &) 755 CArchive & operator>>(CArchive &,tagPOINT &) 756 CArchive & operator>>(CArchive &,tagRECT &) 757 CArchive & operator>>(CArchive &,tagSIZE &) 758 CArchive & operator>>(CArchive &,CString &) 759 CArchive & operator>>(CArchive &,CTime &) 760 CArchive & operator>>(CArchive &,CTimeSpan &) 761 CArchive & CArchive::operator>>(char &) 762 CArchive & CArchive::operator>>(unsigned char &) 763 CArchive & CArchive::operator>>(short &) 764 CArchive & CArchive::operator>>(unsigned short &) 765 CArchive & CArchive::operator>>(int &) 766 CArchive & CArchive::operator>>(unsigned int &) 767 CArchive & CArchive::operator>>(long &) 768 CArchive & CArchive::operator>>(unsigned long &) 769 CArchive & CArchive::operator>>(float &) 770 CArchive & CArchive::operator>>(double &) 771 CArchive & operator<<(CArchive &,tagRECT const &) 772 CArchive & operator<<(CArchive &,CString const &) 773 CArchive & operator<<(CArchive &,CObject const *) 774 CArchive & operator<<(CArchive &,tagPOINT) 775 CArchive & operator<<(CArchive &,tagSIZE) 776 CArchive & operator<<(CArchive &,CTime) 777 CArchive & operator<<(CArchive &,CTimeSpan) 778 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 779 CDumpContext & operator<<(CDumpContext &,CString const &) 780 CDumpContext & operator<<(CDumpContext &,tagPOINT) 781 CDumpContext & operator<<(CDumpContext &,tagSIZE) 782 CDumpContext & operator<<(CDumpContext &,CTime) 783 CDumpContext & operator<<(CDumpContext &,CTimeSpan) 784 CArchive & CArchive::operator<<(char) 785 CArchive & CArchive::operator<<(unsigned char) 786 CArchive & CArchive::operator<<(short) 787 CArchive & CArchive::operator<<(unsigned short) 788 CArchive & CArchive::operator<<(int) 789 CArchive & CArchive::operator<<(unsigned int) 790 CArchive & CArchive::operator<<(long) 791 CArchive & CArchive::operator<<(unsigned long) 792 CArchive & CArchive::operator<<(float) 793 CArchive & CArchive::operator<<(double) 794 CDumpContext & CDumpContext::operator<<(CObject const &) 795 CDumpContext & CDumpContext::operator<<(unsigned char) 796 CDumpContext & CDumpContext::operator<<(unsigned short) 797 CDumpContext & CDumpContext::operator<<(int) 798 CDumpContext & CDumpContext::operator<<(unsigned int) 799 CDumpContext & CDumpContext::operator<<(long) 800 CDumpContext & CDumpContext::operator<<(unsigned long) 801 CDumpContext & CDumpContext::operator<<(float) 802 CDumpContext & CDumpContext::operator<<(double) 803 CDumpContext & CDumpContext::operator<<(char const *) 804 CDumpContext & CDumpContext::operator<<(unsigned short const *) 805 CDumpContext & CDumpContext::operator<<(CObject const *) 806 CDumpContext & CDumpContext::operator<<(void const *) 807 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 808 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 809 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 810 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 811 int operator==(_GUID const &,_GUID const &) 812 bool operator==(CString const &,CString const &) 813 bool operator==(CString const &,char const *) 814 bool operator==(char const *,CString const &) 815 int CGdiObject::operator==(CGdiObject const &)const 816 int CMenu::operator==(CMenu const &)const 817 int CPoint::operator==(tagPOINT)const 818 int CRect::operator==(tagRECT const &)const 819 int CSize::operator==(tagSIZE)const 820 int CTime::operator==(CTime)const 821 int CTimeSpan::operator==(CTimeSpan)const 822 int CWnd::operator==(CWnd const &)const 823 bool operator!=(CString const &,CString const &) 824 bool operator!=(CString const &,char const *) 825 bool operator!=(char const *,CString const &) 826 int CGdiObject::operator!=(CGdiObject const &)const 827 int CMenu::operator!=(CMenu const &)const 828 int CPoint::operator!=(tagPOINT)const 829 int CRect::operator!=(tagRECT const &)const 830 int CSize::operator!=(tagSIZE)const 831 int CTime::operator!=(CTime)const 832 int CTimeSpan::operator!=(CTimeSpan)const 833 int CWnd::operator!=(CWnd const &)const 834 unsigned char & CByteArray::operator[](int) 835 unsigned char CByteArray::operator[](int)const 836 unsigned long & CDWordArray::operator[](int) 837 unsigned long CDWordArray::operator[](int)const 838 void * & CMapPtrToPtr::operator[](void *) 839 unsigned short & CMapPtrToWord::operator[](void *) 840 CObject * & CMapStringToOb::operator[](char const *) 841 void * & CMapStringToPtr::operator[](char const *) 842 CString & CMapStringToString::operator[](char const *) 843 CObject * & CMapWordToOb::operator[](unsigned short) 844 void * & CMapWordToPtr::operator[](unsigned short) 845 CObject * & CObArray::operator[](int) 846 CObject * CObArray::operator[](int)const 847 void * & CPtrArray::operator[](int) 848 void * CPtrArray::operator[](int)const 849 CString & CRecentFileList::operator[](int) 850 char CString::operator[](int)const 851 CString & CStringArray::operator[](int) 852 CString CStringArray::operator[](int)const 853 unsigned int & CUIntArray::operator[](int) 854 unsigned int CUIntArray::operator[](int)const 855 unsigned short & CWordArray::operator[](int) 856 unsigned short CWordArray::operator[](int)const 857 CEmbeddedButActsLikePtr::operator CPtrList *() 858 CTypedSimpleList::operator CRuntime*() 859 CTypedSimpleList::operator CThreadData *() 860 CTypedSimpleList::operator CDynLinkLibrary *() 861 CTypedSimpleList::operator CFrameWnd *() 862 CBitmap::operator HBITMAP__ *()const 863 CBrush::operator HBRUSH__ *()const 864 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 865 CDC::operator HDC__ *()const 866 CFile::operator int()const 867 CFont::operator HFONT__ *()const 868 CGdiObject::operator void *()const 869 CGopherLocator::operator char const *()const 870 CImageList::operator _IMAGELIST *()const 871 CInternetConnection::operator void *()const 872 CInternetFile::operator void *()const 873 CInternetSession::operator void *()const 874 CMenu::operator HMENU__ *()const 875 CPalette::operator HPALETTE__ *()const 876 CPen::operator HPEN__ *()const 877 CRect::operator tagRECT *() 878 CRect::operator tagRECT const *()const 879 CRgn::operator HRGN__ *()const 880 CString::operator char const *()const 881 CSyncObject::operator void *()const 882 CWinThread::operator void *()const 883 CWnd::operator HWND__ *()const 884 CPtrList * CEmbeddedButActsLikePtr::operator->() 885 CPoint CPoint::operator-(tagSIZE)const 886 CPoint CPoint::operator-()const 887 CRect CPoint::operator-(tagRECT const *)const 888 CSize CPoint::operator-(tagPOINT)const 889 CRect CRect::operator-(tagRECT const *)const 890 CRect CRect::operator-(tagPOINT)const 891 CRect CRect::operator-(tagSIZE)const 892 CSize CSize::operator-(tagSIZE)const 893 CSize CSize::operator-()const 894 CPoint CSize::operator-(tagPOINT)const 895 CRect CSize::operator-(tagRECT const *)const 896 CTime CTime::operator-(CTimeSpan)const 897 CTimeSpan CTime::operator-(CTime)const 898 CTimeSpan CTimeSpan::operator-(CTimeSpan)const 899 CString operator+(CString const &,CString const &) 900 CString operator+(CString const &,char) 901 CString operator+(CString const &,char const *) 902 CString operator+(char,CString const &) 903 CString operator+(char const *,CString const &) 904 CPoint CPoint::operator+(tagPOINT)const 905 CPoint CPoint::operator+(tagSIZE)const 906 CRect CPoint::operator+(tagRECT const *)const 907 CRect CRect::operator+(tagRECT const *)const 908 CRect CRect::operator+(tagPOINT)const 909 CRect CRect::operator+(tagSIZE)const 910 CSize CSize::operator+(tagSIZE)const 911 CPoint CSize::operator+(tagPOINT)const 912 CRect CSize::operator+(tagRECT const *)const 913 CTime CTime::operator+(CTimeSpan)const 914 CTimeSpan CTimeSpan::operator+(CTimeSpan)const 915 CRect CRect::operator&(tagRECT const &)const 916 bool operator<(CString const &,CString const &) 917 bool operator<(CString const &,char const *) 918 bool operator<(char const *,CString const &) 919 int CTime::operator<(CTime)const 920 int CTimeSpan::operator<(CTimeSpan)const 921 bool operator<=(CString const &,CString const &) 922 bool operator<=(CString const &,char const *) 923 bool operator<=(char const *,CString const &) 924 int CTime::operator<=(CTime)const 925 int CTimeSpan::operator<=(CTimeSpan)const 926 bool operator>(CString const &,CString const &) 927 bool operator>(CString const &,char const *) 928 bool operator>(char const *,CString const &) 929 int CTime::operator>(CTime)const 930 int CTimeSpan::operator>(CTimeSpan)const 931 bool operator>=(CString const &,CString const &) 932 bool operator>=(CString const &,char const *) 933 bool operator>=(char const *,CString const &) 934 int CTime::operator>=(CTime)const 935 int CTimeSpan::operator>=(CTimeSpan)const 936 CRect CRect::operator|(tagRECT const &)const 937 void CPoint::operator+=(tagPOINT) 938 void CPoint::operator+=(tagSIZE) 939 void CRect::operator+=(tagRECT const *) 940 void CRect::operator+=(tagPOINT) 941 void CRect::operator+=(tagSIZE) 942 void CSize::operator+=(tagSIZE) 943 CString const & CString::operator+=(CString const &) 944 CString const & CString::operator+=(char) 945 CString const & CString::operator+=(char const *) 946 CTime const & CTime::operator+=(CTimeSpan) 947 CTimeSpan const & CTimeSpan::operator+=(CTimeSpan) 948 void CPoint::operator-=(tagPOINT) 949 void CPoint::operator-=(tagSIZE) 950 void CRect::operator-=(tagRECT const *) 951 void CRect::operator-=(tagPOINT) 952 void CRect::operator-=(tagSIZE) 953 void CSize::operator-=(tagSIZE) 954 CTime const & CTime::operator-=(CTimeSpan) 955 CTimeSpan const & CTimeSpan::operator-=(CTimeSpan) 956 int _AfxAbortProc(HDC__ *,int) 957 int const _afxDBCS 958 int _AfxDeleteRegKey(char const *) 959 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 960 int _mbstowcsz(unsigned short *,char const *,unsigned int) 961 int _wcstombsz(char *,unsigned short const *,unsigned int) 962 char const * A2CT(char const *) 963 char * A2T(char *) 964 void CArchive::Abort() 965 void CFile::Abort() 966 void CInternetFile::Abort() 967 void CMemFile::Abort() 968 void CMirrorFile::Abort() 969 void CStdioFile::Abort() 970 int CDC::AbortDoc() 971 int CDC::AbortPath() 972 void CToolTipCtrl::Activate(int) 973 void CFrameWnd::ActivateFrame(int) 974 void CMDIChildWnd::ActivateFrame(int) 975 void CSplitterWnd::ActivateNext(int) 976 void CWnd::ActivateTopParent() 977 int CByteArray::Add(unsigned char) 978 int CDWordArray::Add(unsigned long) 979 int CImageList::Add(HICON__ *) 980 int CImageList::Add(CBitmap *,CBitmap *) 981 int CImageList::Add(CBitmap *,unsigned long) 982 int CObArray::Add(CObject *) 983 int CPtrArray::Add(void *) 984 void CRecentFileList::Add(char const *) 985 int CStringArray::Add(CString const &) 986 int CStringArray::Add(char const *) 987 int CUIntArray::Add(unsigned int) 988 int CWordArray::Add(unsigned short) 989 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 990 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 991 int CToolBarCtrl::AddBitmap(int,unsigned int) 992 int CToolBarCtrl::AddBitmap(int,CBitmap *) 993 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 994 void CFrameWnd::AddControlBar(CControlBar *) 995 void CDocManager::AddDocTemplate(CDocTemplate *) 996 void CWinApp::AddDocTemplate(CDocTemplate *) 997 void CDocTemplate::AddDocument(CDocument *) 998 void CMultiDocTemplate::AddDocument(CDocument *) 999 void CSingleDocTemplate::AddDocument(CDocument *) 1000 void CFrameWnd::AddFrameWnd() 1001 void CTypedSimpleList::AddHead(CRuntime*) 1002 void CTypedSimpleList::AddHead(CThreadData *) 1003 void CTypedSimpleList::AddHead(CDynLinkLibrary *) 1004 void CTypedSimpleList::AddHead(CFrameWnd *) 1005 __POSITION * CObList::AddHead(CObject *) 1006 void CObList::AddHead(CObList *) 1007 __POSITION * CPtrList::AddHead(void *) 1008 void CPtrList::AddHead(CPtrList *) 1009 void CSimpleList::AddHead(void *) 1010 __POSITION * CStringList::AddHead(CString const &) 1011 __POSITION * CStringList::AddHead(char const *) 1012 void CStringList::AddHead(CStringList *) 1013 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1014 void CPropertySheet::AddPage(CPropertyPage *) 1015 void CPropertySheetEx::AddPage(CPropertyPageEx *) 1016 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1017 int CHttpFile::AddRequestHeaders(CString &,unsigned long) 1018 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1019 int CComboBox::AddString(char const *) 1020 int CComboBoxEx::AddString(char const *) 1021 int CListBox::AddString(char const *) 1022 int CToolBarCtrl::AddString(unsigned int) 1023 int CToolBarCtrl::AddStrings(char const *) 1024 __POSITION * CObList::AddTail(CObject *) 1025 void CObList::AddTail(CObList *) 1026 __POSITION * CPtrList::AddTail(void *) 1027 void CPtrList::AddTail(CPtrList *) 1028 __POSITION * CStringList::AddTail(CString const &) 1029 __POSITION * CStringList::AddTail(char const *) 1030 void CStringList::AddTail(CStringList *) 1031 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1032 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1033 void CWinApp::AddToRecentFileList(char const *) 1034 void CDocument::AddView(CView *) 1035 void CMetaFileDC::AdjustCP(int) 1036 void CRectTracker::AdjustRect(int,tagRECT *) 1037 void CTabCtrl::AdjustRect(int,tagRECT *) 1038 unsigned short * AfxA2WHelper(unsigned short *,char const *,int) 1039 void AfxAbort() 1040 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1041 int AfxAssertFailedLine(char const *,int) 1042 void AfxAssertValidObject(CObject const *,char const *,int) 1043 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1044 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1045 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1046 void AfxCancelModes(HWND__ *) 1047 int AfxCheckMemory() 1048 void AfxClassInit(CRuntime*) 1049 int AfxComparePath(char const *,char const *) 1050 void AfxCoreInitModule() 1051 HDC__ * AfxCreateDC(void *,void *) 1052 int AfxCriticalInit() 1053 int AfxCriticalNewHandler(unsigned int) 1054 void AfxCriticalTerm() 1055 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1056 AUX_DATA afxData 1057 void AfxDeleteObject(void * *) 1058 long AfxDelRegTreeHelper(HKEY__ *,CString const &) 1059 int AfxDiagnosticInit() 1060 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1061 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1062 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1063 CDumpContext afxDump 1064 void AfxDump(CObject const *) 1065 int AfxDumpMemoryLeaks() 1066 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1067 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1068 int AfxEnableMemoryTracking(int) 1069 void AfxEnableWin31Compatibility() 1070 void AfxEnableWin40Compatibility() 1071 int AfxEndDeferRegisterClass(long) 1072 void AfxEndThread(unsigned int,int) 1073 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1074 int AfxExtractSubString(CString &,char const *,int,char) 1075 void AfxFailMaxChars(CDataExchange *,int) 1076 void AfxFailRadio(CDataExchange *) 1077 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1078 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1079 void AfxFormatString1(CString &,unsigned int,char const *) 1080 void AfxFormatString2(CString &,unsigned int,char const *,char const *) 1081 void AfxFormatStrings(CString &,unsigned int,char const * const *,int) 1082 void AfxFormatStrings(CString &,char const *,char const * const *,int) 1083 int AfxFreeLibrary(HINSTANCE__ *) 1084 void AfxFreeMemoryDebug(void *,int) 1085 int AfxFullPath(char *,char const *) 1086 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1087 CWinApp * AfxGetApp() 1088 AFX_MODULE_STATE * AfxGetAppModuleState() 1089 char const * AfxGetAppName() 1090 _AFX_CTL3D_STATE * AfxGetCtl3dState() 1091 CString const & AfxGetEmptyString() 1092 AFX_EXCEPTION_CONTEXT * AfxGetExceptionContext() 1093 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1094 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1095 int AfxGetInProcServer(char const *,CString &) 1096 HINSTANCE__ * AfxGetInstanceHandle() 1097 unsigned long AfxGetInternetHandleType(void *) 1098 CWnd * AfxGetMainWnd() 1099 void AfxGetModuleShortFileName(HINSTANCE__ *,CString &) 1100 AFX_MODULE_STATE * AfxGetModuleState() 1101 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1102 int (__cdecl*AfxGetNewHandler())(unsigned int) 1103 HWND__ * AfxGetParentOwner(HWND__ *) 1104 int AfxGetPropSheetFont(CString &,unsigned short &,int) 1105 HINSTANCE__ * AfxGetResourceHandle() 1106 HINSTANCE__ * AfxGetResourceHandleCompat() 1107 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1108 void AfxGetRoot(char const *,CString &) 1109 CWinThread * AfxGetThread() 1110 _AFX_THREAD_STATE * AfxGetThreadState() 1111 void AfxGlobalFree(void *) 1112 int AfxHelpEnabled() 1113 void AfxHookWindowCreate(CWnd *) 1114 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1115 void AfxInitLocalData(HINSTANCE__ *) 1116 int AfxInitRichEdit() 1117 void AfxInitThread() 1118 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1119 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1120 int AfxIsDescendant(HWND__ *,HWND__ *) 1121 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1122 int AfxIsValidAddress(void const *,unsigned int,int) 1123 int AfxIsValidString(char const *,int) 1124 int AfxIsValidString(unsigned short const *,int) 1125 HINSTANCE__ * AfxLoadLibrary(char const *) 1126 int AfxLoadString(unsigned int,char *,unsigned int) 1127 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1128 void AfxLockGlobals(int) 1129 void AfxLockTempMaps() 1130 CHandleMap * afxMapHDC(int) 1131 CHandleMap * afxMapHGDIOBJ(int) 1132 CHandleMap * afxMapHIMAGELIST(int) 1133 CHandleMap * afxMapHMENU(int) 1134 CHandleMap * afxMapHWND(int) 1135 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1136 int AfxMessageBox(char const *,unsigned int,unsigned int) 1137 int AfxNewHandler(unsigned int) 1138 int AfxOleCanExitApp() 1139 COleMessageFilter * AfxOleGetMessageFilter() 1140 int AfxOleGetUserCtrl() 1141 void AfxOleLockApp() 1142 void AfxOleOnReleaseAllObjects() 1143 void AfxOleSetUserCtrl(int) 1144 void AfxOleUnlockApp() 1145 int AfxParseURL(char const *,unsigned long &,CString &,CString &,unsigned short &) 1146 int AfxParseURLEx(char const *,unsigned long &,CString &,CString &,unsigned short &,CString &,CString &,unsigned long) 1147 void AfxPostQuitMessage(int) 1148 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1149 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1150 int AfxRegisterClass(tagWNDCLASSA *) 1151 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1152 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1153 void AfxResetMsgCache() 1154 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1155 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1156 void AfxSetAllocStop(long) 1157 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1158 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1159 void AfxSetResourceHandle(HINSTANCE__ *) 1160 void AfxSetWindowText(HWND__ *,char const *) 1161 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1162 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1163 CString AfxStringFromCLSID(_GUID const &) 1164 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1165 void AfxTermLocalData(HINSTANCE__ *,int) 1166 void AfxTermThread(HINSTANCE__ *) 1167 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1168 void AfxThrowArchiveException(int,char const *) 1169 void AfxThrowFileException(int,long,char const *) 1170 void AfxThrowInternetException(unsigned long,unsigned long) 1171 void AfxThrowLastCleanup() 1172 void AfxThrowMemoryException() 1173 void AfxThrowNotSupportedException() 1174 void AfxThrowResourceException() 1175 void AfxThrowUserException() 1176 void AfxTimeToFileTime(CTime const &,_FILETIME *) 1177 void AfxTlsAddRef() 1178 void AfxTlsRelease() 1179 void AfxTrace(char const *,...) 1180 int afxTraceEnabled 1181 unsigned int afxTraceFlags 1182 void AfxTrackerTerm() 1183 void AfxTryCleanup() 1184 int AfxUnhookWindowCreate() 1185 void AfxUnlockGlobals(int) 1186 int AfxUnlockTempMaps(int) 1187 char * AfxW2AHelper(char *,unsigned short const *,int) 1188 void AfxWingdixTerm() 1189 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1190 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1191 void AfxWinTerm() 1192 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1193 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1194 void * CFixedAlloc::Alloc() 1195 unsigned char * CMemFile::Alloc(unsigned long) 1196 unsigned char * CSharedFile::Alloc(unsigned long) 1197 void CString::AllocBeforeWrite(int) 1198 void CString::AllocBuffer(int) 1199 void CString::AllocCopy(CString &,int,int,int)const 1200 int CControlBar::AllocElements(int,int) 1201 int CStatusBar::AllocElements(int,int) 1202 int CThreadSlotData::AllocSlot() 1203 int CDC::AngleArc(int,int,int,float,float) 1204 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1205 int CByteArray::Append(CByteArray const &) 1206 int CDWordArray::Append(CDWordArray const &) 1207 int CObArray::Append(CObArray const &) 1208 int CPtrArray::Append(CPtrArray const &) 1209 int CStringArray::Append(CStringArray const &) 1210 int CUIntArray::Append(CUIntArray const &) 1211 int CWordArray::Append(CWordArray const &) 1212 int CMenu::AppendMenuA(unsigned int,unsigned int,char const *) 1213 int CMenu::AppendMenuA(unsigned int,unsigned int,CBitmap const *) 1214 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1215 int CDC::Arc(int,int,int,int,int,int,int,int) 1216 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1217 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1218 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1219 int CListCtrl::Arrange(unsigned int) 1220 unsigned int CWnd::ArrangeIconicWindows() 1221 void CBitmapButton::AssertValid()const 1222 void CByteArray::AssertValid()const 1223 void CClientDC::AssertValid()const 1224 void CCmdTarget::AssertValid()const 1225 void CControlBar::AssertValid()const 1226 void CCtrlView::AssertValid()const 1227 void CDC::AssertValid()const 1228 void CDialog::AssertValid()const 1229 void CDockBar::AssertValid()const 1230 void CDocManager::AssertValid()const 1231 void CDocTemplate::AssertValid()const 1232 void CDocument::AssertValid()const 1233 void CDWordArray::AssertValid()const 1234 void CDynLinkLibrary::AssertValid()const 1235 void CEditView::AssertValid()const 1236 void CFile::AssertValid()const 1237 void CFileFind::AssertValid()const 1238 void CFormView::AssertValid()const 1239 void CFrameWnd::AssertValid()const 1240 void CFtpConnection::AssertValid()const 1241 void CFtpFileFind::AssertValid()const 1242 void CGdiObject::AssertValid()const 1243 void CGopherConnection::AssertValid()const 1244 void CGopherFile::AssertValid()const 1245 void CGopherFileFind::AssertValid()const 1246 void CHttpConnection::AssertValid()const 1247 void CHttpFile::AssertValid()const 1248 void CImageList::AssertValid()const 1249 void CInternetConnection::AssertValid()const 1250 void CInternetFile::AssertValid()const 1251 void CMapPtrToPtr::AssertValid()const 1252 void CMapPtrToWord::AssertValid()const 1253 void CMapStringToOb::AssertValid()const 1254 void CMapStringToPtr::AssertValid()const 1255 void CMapStringToString::AssertValid()const 1256 void CMapWordToOb::AssertValid()const 1257 void CMapWordToPtr::AssertValid()const 1258 void CMDIChildWnd::AssertValid()const 1259 void CMDIFrameWnd::AssertValid()const 1260 void CMemFile::AssertValid()const 1261 void CMenu::AssertValid()const 1262 void CMultiDocTemplate::AssertValid()const 1263 void CObArray::AssertValid()const 1264 void CObject::AssertValid()const 1265 void CObList::AssertValid()const 1266 void CPaintDC::AssertValid()const 1267 void CPreviewDC::AssertValid()const 1268 void CPreviewView::AssertValid()const 1269 void CPropertyPage::AssertValid()const 1270 void CPropertyPageEx::AssertValid()const 1271 void CPropertySheet::AssertValid()const 1272 void CPropertySheetEx::AssertValid()const 1273 void CPtrArray::AssertValid()const 1274 void CPtrList::AssertValid()const 1275 void CScrollView::AssertValid()const 1276 void CSingleDocTemplate::AssertValid()const 1277 void CSplitterWnd::AssertValid()const 1278 void CStatusBar::AssertValid()const 1279 void CStringArray::AssertValid()const 1280 void CStringList::AssertValid()const 1281 void CSyncObject::AssertValid()const 1282 void CToolBar::AssertValid()const 1283 void CUIntArray::AssertValid()const 1284 void CView::AssertValid()const 1285 void CWinApp::AssertValid()const 1286 void CWindowDC::AssertValid()const 1287 void CWinThread::AssertValid()const 1288 void CWnd::AssertValid()const 1289 void CWordArray::AssertValid()const 1290 void CString::AssignCopy(int,char const *) 1291 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1292 unsigned short * AtlA2WHelper(unsigned short *,char const *,int) 1293 unsigned short * AtlA2WHelper(unsigned short *,char const *,int,unsigned int) 1294 int CDC::Attach(HDC__ *) 1295 int CGdiObject::Attach(void *) 1296 int CImageList::Attach(_IMAGELIST *) 1297 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1298 int CMenu::Attach(HMENU__ *) 1299 int CWnd::Attach(HWND__ *) 1300 void COleControlContainer::AttachControlSite(CWnd *) 1301 void CWnd::AttachControlSite(CHandleMap *) 1302 void CWnd::AttachControlSite(CWnd *) 1303 CPrintDialog * CPrintDialog::AttachOnSetup() 1304 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1305 void CToolBarCtrl::AutoSize() 1306 int CDragListBox::BeginDrag(CPoint) 1307 int CImageList::BeginDrag(int,CPoint) 1308 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1309 void CFrameWnd::BeginModalState() 1310 void CWnd::BeginModalState() 1311 CDC * CWnd::BeginPaint(tagPAINT*) 1312 int CDC::BeginPath() 1313 void CCmdTarget::BeginWaitCursor() 1314 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1315 void CWnd::BindProperty(long,CWnd *) 1316 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1317 CPoint & CRect::BottomRight() 1318 CPoint const & CRect::BottomRight()const 1319 void CFrameWnd::BringToTop(int) 1320 void CWnd::BringWindowToTop() 1321 void CPropertySheet::BuildPropPageArray() 1322 void CPropertySheetEx::BuildPropPageArray() 1323 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1324 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1325 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1326 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1327 CSize CControlBar::CalcFixedLayout(int,int) 1328 CSize CDialogBar::CalcFixedLayout(int,int) 1329 CSize CDockBar::CalcFixedLayout(int,int) 1330 CSize CReBar::CalcFixedLayout(int,int) 1331 CSize CStatusBar::CalcFixedLayout(int,int) 1332 CSize CToolBar::CalcFixedLayout(int,int) 1333 void CControlBar::CalcInsideRect(CRect &,int)const 1334 void CStatusBar::CalcInsideRect(CRect &,int)const 1335 CSize CToolBar::CalcLayout(unsigned long,int) 1336 int CCheckListBox::CalcMinimumItemHeight() 1337 CSize CPreviewView::CalcPageDisplaySize() 1338 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1339 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1340 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1341 void CMiniFrameWnd::CalcWindowRect(tagRECT *,unsigned int) 1342 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1343 void CView::CalcWindowRect(tagRECT *,unsigned int) 1344 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1345 int CSplitterWnd::CanActivateNext(int) 1346 void CDragListBox::CancelDrag(CPoint) 1347 void CDockContext::CancelLoop() 1348 void CPropertyPage::CancelToClose() 1349 void CWnd::CancelToolTips(int) 1350 int CDocument::CanCloseFrame(CFrameWnd *) 1351 unsigned long CDockContext::CanDock() 1352 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1353 int CFrameWnd::CanEnterHelpMode() 1354 int CRichEditCtrl::CanPaste(unsigned int)const 1355 int CEdit::CanUndo()const 1356 int CRichEditCtrl::CanUndo()const 1357 void CScrollView::CenterOnPoint(CPoint) 1358 CPoint CRect::CenterPoint()const 1359 void CWnd::CenterWindow(CWnd *) 1360 int CWnd::ChangeClipboardChain(HWND__ *) 1361 int CEdit::CharFromPos(CPoint)const 1362 int CListBox::CharToItem(unsigned int,unsigned int) 1363 void CString::CharToOemA() 1364 int CDialog::CheckAutoCenter() 1365 int CWnd::CheckAutoCenter() 1366 int CToolBarCtrl::CheckButton(int,int) 1367 void CArchive::CheckCount() 1368 void CWnd::CheckDlgButton(int,unsigned int) 1369 int CCheckListBox::CheckFromPoint(CPoint,int &) 1370 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1371 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1372 void CMemoryState::Checkpoint() 1373 void CWnd::CheckRadioButton(int,int,int) 1374 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1375 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1376 int CDC::Chord(int,int,int,int,int,int,int,int) 1377 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1378 CRuntimeconst CAnimateCtrl::classCAnimateCtrl 1379 CRuntimeconst CArchiveException::classCArchiveException 1380 CRuntimeconst CBitmap::classCBitmap 1381 CRuntimeconst CBitmapButton::classCBitmapButton 1382 CRuntimeconst CBrush::classCBrush 1383 CRuntimeconst CButton::classCButton 1384 CRuntimeCByteArray::classCByteArray 1385 CRuntimeconst CCheckListBox::classCCheckListBox 1386 CRuntimeconst CClientDC::classCClientDC 1387 CRuntimeconst CCmdTarget::classCCmdTarget 1388 CRuntimeconst CColorDialog::classCColorDialog 1389 CRuntimeconst CComboBox::classCComboBox 1390 CRuntimeconst CComboBoxEx::classCComboBoxEx 1391 CRuntimeconst CControlBar::classCControlBar 1392 CRuntimeconst CCriticalSection::classCCriticalSection 1393 CRuntimeconst CCtrlView::classCCtrlView 1394 CRuntimeconst CDC::classCDC 1395 CRuntimeconst CDialog::classCDialog 1396 CRuntimeconst CDialogBar::classCDialogBar 1397 CRuntimeconst CDockBar::classCDockBar 1398 CRuntimeCDockState::classCDockState 1399 CRuntimeconst CDocManager::classCDocManager 1400 CRuntimeconst CDocTemplate::classCDocTemplate 1401 CRuntimeconst CDocument::classCDocument 1402 CRuntimeconst CDragListBox::classCDragListBox 1403 CRuntimeCDWordArray::classCDWordArray 1404 CRuntimeconst CDynLinkLibrary::classCDynLinkLibrary 1405 CRuntimeconst CEdit::classCEdit 1406 CRuntimeconst CEditView::classCEditView 1407 CRuntimeconst CEvent::classCEvent 1408 CRuntimeconst CException::classCException 1409 CRuntimeconst CFile::classCFile 1410 CRuntimeconst CFileDialog::classCFileDialog 1411 CRuntimeconst CFileException::classCFileException 1412 CRuntimeconst CFileFind::classCFileFind 1413 CRuntimeconst CFindReplaceDialog::classCFindReplaceDialog 1414 CRuntimeconst CFont::classCFont 1415 CRuntimeconst CFontDialog::classCFontDialog 1416 CRuntimeconst CFormView::classCFormView 1417 CRuntimeconst CFrameWnd::classCFrameWnd 1418 CRuntimeconst CGdiObject::classCGdiObject 1419 CRuntimeconst CHeaderCtrl::classCHeaderCtrl 1420 CRuntimeconst CHotKeyCtrl::classCHotKeyCtrl 1421 CRuntimeconst CImageList::classCImageList 1422 CRuntimeconst CInternetException::classCInternetException 1423 CRuntimeconst CIPAddressCtrl::classCIPAddressCtrl 1424 CRuntimeconst CListBox::classCListBox 1425 CRuntimeconst CListCtrl::classCListCtrl 1426 CRuntimeconst CListView::classCListView 1427 CRuntimeconst CMapPtrToPtr::classCMapPtrToPtr 1428 CRuntimeconst CMapPtrToWord::classCMapPtrToWord 1429 CRuntimeCMapStringToOb::classCMapStringToOb 1430 CRuntimeconst CMapStringToPtr::classCMapStringToPtr 1431 CRuntimeCMapStringToString::classCMapStringToString 1432 CRuntimeCMapWordToOb::classCMapWordToOb 1433 CRuntimeconst CMapWordToPtr::classCMapWordToPtr 1434 CRuntimeconst CMDIChildWnd::classCMDIChildWnd 1435 CRuntimeconst CMDIFrameWnd::classCMDIFrameWnd 1436 CRuntimeconst CMemFile::classCMemFile 1437 CRuntimeconst CMemoryException::classCMemoryException 1438 CRuntimeconst CMenu::classCMenu 1439 CRuntimeconst CMetaFileDC::classCMetaFileDC 1440 CRuntimeconst CMiniDockFrameWnd::classCMiniDockFrameWnd 1441 CRuntimeconst CMiniFrameWnd::classCMiniFrameWnd 1442 CRuntimeconst CMultiDocTemplate::classCMultiDocTemplate 1443 CRuntimeconst CMutex::classCMutex 1444 CRuntimeconst CNotSupportedException::classCNotSupportedException 1445 CRuntimeCObArray::classCObArray 1446 CRuntimeconst CObject::classCObject 1447 CRuntimeCObList::classCObList 1448 CRuntimeconst CPageSetupDialog::classCPageSetupDialog 1449 CRuntimeconst CPaintDC::classCPaintDC 1450 CRuntimeconst CPalette::classCPalette 1451 CRuntimeconst CPen::classCPen 1452 CRuntimeconst CPreviewDC::classCPreviewDC 1453 CRuntimeconst CPreviewView::classCPreviewView 1454 CRuntimeconst CPrintDialog::classCPrintDialog 1455 CRuntimeconst CProgressCtrl::classCProgressCtrl 1456 CRuntimeconst CPropertyPage::classCPropertyPage 1457 CRuntimeconst CPropertyPageEx::classCPropertyPageEx 1458 CRuntimeconst CPropertySheet::classCPropertySheet 1459 CRuntimeconst CPropertySheetEx::classCPropertySheetEx 1460 CRuntimeconst CPtrArray::classCPtrArray 1461 CRuntimeconst CPtrList::classCPtrList 1462 CRuntimeconst CReBar::classCReBar 1463 CRuntimeconst CReBarCtrl::classCReBarCtrl 1464 CRuntimeconst CResourceException::classCResourceException 1465 CRuntimeconst CRgn::classCRgn 1466 CRuntimeconst CRichEditCtrl::classCRichEditCtrl 1467 CRuntimeconst CScrollBar::classCScrollBar 1468 CRuntimeconst CScrollView::classCScrollView 1469 CRuntimeconst CSemaphore::classCSemaphore 1470 CRuntimeconst CSharedFile::classCSharedFile 1471 CRuntimeconst CSingleDocTemplate::classCSingleDocTemplate 1472 CRuntimeconst CSliderCtrl::classCSliderCtrl 1473 CRuntimeconst CSpinButtonCtrl::classCSpinButtonCtrl 1474 CRuntimeconst CSplitterWnd::classCSplitterWnd 1475 CRuntimeconst CStatic::classCStatic 1476 CRuntimeconst CStatusBar::classCStatusBar 1477 CRuntimeconst CStatusBarCtrl::classCStatusBarCtrl 1478 CRuntimeconst CStdioFile::classCStdioFile 1479 CRuntimeCStringArray::classCStringArray 1480 CRuntimeCStringList::classCStringList 1481 CRuntimeconst CSyncObject::classCSyncObject 1482 CRuntimeconst CTabCtrl::classCTabCtrl 1483 CRuntimeconst CToolBar::classCToolBar 1484 CRuntimeconst CToolBarCtrl::classCToolBarCtrl 1485 CRuntimeconst CToolTipCtrl::classCToolTipCtrl 1486 CRuntimeconst CTreeCtrl::classCTreeCtrl 1487 CRuntimeconst CTreeView::classCTreeView 1488 CRuntimeconst CUIntArray::classCUIntArray 1489 CRuntimeconst CUserException::classCUserException 1490 CRuntimeconst CView::classCView 1491 CRuntimeconst CWinApp::classCWinApp 1492 CRuntimeconst CWindowDC::classCWindowDC 1493 CRuntimeconst CWinThread::classCWinThread 1494 CRuntimeconst CWnd::classCWnd 1495 CRuntimeCWordArray::classCWordArray 1496 void CPropertyPage::Cleanup() 1497 void CComboBox::Clear() 1498 void CDockState::Clear() 1499 void CEdit::Clear() 1500 void CRichEditCtrl::Clear() 1501 void CIPAddressCtrl::ClearAddress() 1502 void CSliderCtrl::ClearSel(int) 1503 void CSliderCtrl::ClearTics(int) 1504 void CWnd::ClientToScreen(tagPOINT *)const 1505 void CWnd::ClientToScreen(tagRECT *)const 1506 void CPreviewDC::ClipToPage() 1507 long CArchiveStream::Clone(IStream * *) 1508 int CAnimateCtrl::Close() 1509 void CArchive::Close() 1510 void CFile::Close() 1511 void CFileFind::Close() 1512 void CFtpConnection::Close() 1513 void CGopherConnection::Close() 1514 void CGopherFile::Close() 1515 void CHttpConnection::Close() 1516 void CHttpFile::Close() 1517 void CInternetConnection::Close() 1518 void CInternetFile::Close() 1519 void CInternetSession::Close() 1520 void CMemFile::Close() 1521 HMETAFILE__ * CMetaFileDC::Close() 1522 void CMirrorFile::Close() 1523 void CStdioFile::Close() 1524 void CDocManager::CloseAllDocuments(int) 1525 void CDocTemplate::CloseAllDocuments(int) 1526 void CWinApp::CloseAllDocuments(int) 1527 void CFileFind::CloseContext() 1528 void CFtpFileFind::CloseContext() 1529 void CGopherFileFind::CloseContext() 1530 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 1531 int CDC::CloseFigure() 1532 void CWnd::CloseWindow() 1533 int CString::Collate(char const *)const 1534 int CString::CollateNoCase(char const *)const 1535 int CRgn::CombineRgn(CRgn *,CRgn *,int) 1536 AFX_OLECMDMAP const CCmdTarget::commandMap 1537 int CStatusBar::CommandToIndex(unsigned int)const 1538 int CToolBar::CommandToIndex(unsigned int)const 1539 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 1540 long CArchiveStream::Commit(unsigned long) 1541 void CPropertyPage::CommonConstruct(char const *,unsigned int) 1542 void CPropertyPageEx::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 1543 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1544 void CPropertySheetEx::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1545 void CWinThread::CommonConstruct() 1546 int CString::Compare(char const *)const 1547 int CComboBox::CompareItem(tagCOMPAREITEM*) 1548 int CListBox::CompareItem(tagCOMPAREITEM*) 1549 int CString::CompareNoCase(char const *)const 1550 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 1551 void CString::ConcatCopy(int,char const *,int,char const *) 1552 void CString::ConcatInPlace(int,char const *) 1553 AFX_CONNECTIONMAP const CCmdTarget::connectionMap 1554 void CPropertyPage::Construct(unsigned int,unsigned int) 1555 void CPropertyPage::Construct(char const *,unsigned int) 1556 void CPropertyPageEx::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1557 void CPropertyPageEx::Construct(char const *,unsigned int,unsigned int,unsigned int) 1558 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1559 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 1560 void CPropertySheetEx::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1561 void CPropertySheetEx::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1562 void CRectTracker::Construct() 1563 void CSimpleList::Construct(int) 1564 void ConstructElements(CString *,int) 1565 int CPropertySheet::ContinueModal() 1566 int CWnd::ContinueModal() 1567 void CCmdUI::ContinueRouting() 1568 void CByteArray::Copy(CByteArray const &) 1569 void CComboBox::Copy() 1570 void CDWordArray::Copy(CDWordArray const &) 1571 void CEdit::Copy() 1572 int CImageList::Copy(int,int,unsigned int) 1573 int CImageList::Copy(int,CImageList *,int,unsigned int) 1574 void CObArray::Copy(CObArray const &) 1575 void CPtrArray::Copy(CPtrArray const &) 1576 void CRichEditCtrl::Copy() 1577 void CStringArray::Copy(CStringArray const &) 1578 void CUIntArray::Copy(CUIntArray const &) 1579 void CWordArray::Copy(CWordArray const &) 1580 void CString::CopyBeforeWrite() 1581 void CopyElements(CString *,CString const *,int) 1582 void CRect::CopyRect(tagRECT const *) 1583 int CRgn::CopyRgn(CRgn *) 1584 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1585 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1586 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1587 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1588 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1589 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1590 int CDialog::Create(unsigned int,CWnd *) 1591 int CDialog::Create(char const *,CWnd *) 1592 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 1593 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 1594 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1595 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1596 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 1597 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1598 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 1599 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1600 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1601 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1602 int CImageList::Create(int,int,unsigned int,int,int) 1603 int CImageList::Create(unsigned int,int,int,unsigned long) 1604 int CImageList::Create(CImageList *) 1605 int CImageList::Create(char const *,int,int,unsigned long) 1606 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1607 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1608 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1609 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1610 int CMetaFileDC::Create(char const *) 1611 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1612 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1613 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1614 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1615 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1616 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1617 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1618 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1619 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1620 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1621 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1622 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1623 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1624 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1625 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1626 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1627 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1628 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1629 int CToolTipCtrl::Create(CWnd *,unsigned long) 1630 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1631 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1632 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 1633 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 1634 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 1635 void CWnd::CreateCaret(CBitmap *) 1636 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 1637 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1638 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 1639 int CDC::CreateCompatibleDC(CDC *) 1640 int CDC::CreateDCA(char const *,char const *,char const *,void const *) 1641 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1642 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 1643 int CFtpConnection::CreateDirectoryA(char const *) 1644 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 1645 int CWnd::CreateDlg(char const *,CWnd *) 1646 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 1647 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1648 CImageList * CHeaderCtrl::CreateDragImage(int) 1649 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1650 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1651 int CRgn::CreateEllipticRgn(int,int,int,int) 1652 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 1653 int CMetaFileDC::CreateEnhanced(CDC *,char const *,tagRECT const *,char const *) 1654 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1655 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1656 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1657 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1658 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1659 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1660 int CFont::CreateFontA(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,char const *) 1661 int CFont::CreateFontIndirectA(tagLOGFONTA const *) 1662 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 1663 int CRgn::CreateFromPath(CDC *) 1664 void CWnd::CreateGrayCaret(int,int) 1665 int CPalette::CreateHalftonePalette(CDC *) 1666 int CBrush::CreateHatchBrush(int,unsigned long) 1667 int CDC::CreateICA(char const *,char const *,char const *,void const *) 1668 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1669 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1670 int CDialog::CreateIndirect(void *,CWnd *) 1671 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1672 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1673 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 1674 CGopherLocator CGopherConnection::CreateLocator(char const *) 1675 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 1676 int CMenu::CreateMenu() 1677 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1678 CDocument * CDocTemplate::CreateNewDocument() 1679 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1680 CObject * CByteArray::CreateObject() 1681 CObject * CDC::CreateObject() 1682 CObject * CDockState::CreateObject() 1683 CObject * CDWordArray::CreateObject() 1684 CObject * CEditView::CreateObject() 1685 CObject * CFrameWnd::CreateObject() 1686 CObject * CGdiObject::CreateObject() 1687 CObject * CImageList::CreateObject() 1688 CObject * CListView::CreateObject() 1689 CObject * CMapStringToOb::CreateObject() 1690 CObject * CMapStringToString::CreateObject() 1691 CObject * CMapWordToOb::CreateObject() 1692 CObject * CMDIChildWnd::CreateObject() 1693 CObject * CMDIFrameWnd::CreateObject() 1694 CObject * CMenu::CreateObject() 1695 CObject * CMiniDockFrameWnd::CreateObject() 1696 CObject * CMiniFrameWnd::CreateObject() 1697 CObject * CObArray::CreateObject() 1698 CObject * CObList::CreateObject() 1699 CObject * CPreviewView::CreateObject() 1700 CObject * CRuntimeClass::CreateObject() 1701 CObject * CStringArray::CreateObject() 1702 CObject * CStringList::CreateObject() 1703 CObject * CTempDC::CreateObject() 1704 CObject * CTempGdiObject::CreateObject() 1705 CObject * CTempImageList::CreateObject() 1706 CObject * CTempMenu::CreateObject() 1707 CObject * CTempWnd::CreateObject() 1708 CObject * CTreeView::CreateObject() 1709 CObject * CWnd::CreateObject() 1710 CObject * CWordArray::CreateObject() 1711 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1712 int CPalette::CreatePalette(tagLOGPALETTE *) 1713 int CBrush::CreatePatternBrush(CBitmap *) 1714 int CPen::CreatePen(int,int,unsigned long) 1715 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 1716 int CPen::CreatePenIndirect(tagLOGPEN *) 1717 int CFont::CreatePointFont(int,char const *,CDC *) 1718 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 1719 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 1720 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 1721 int CMenu::CreatePopupMenu() 1722 HDC__ * CPageSetupDialog::CreatePrinterDC() 1723 HDC__ * CPrintDialog::CreatePrinterDC() 1724 int CWinApp::CreatePrinterDC(CDC &) 1725 int CRgn::CreateRectRgn(int,int,int,int) 1726 int CRgn::CreateRectRgnIndirect(tagRECT const *) 1727 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 1728 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1729 int CBrush::CreateSolidBrush(unsigned long) 1730 void CWnd::CreateSolidCaret(int,int) 1731 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1732 int CGdiObject::CreateStockObject(int) 1733 int CBrush::CreateSysColorBrush(int) 1734 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1735 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1736 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1737 void CToolBarCtrl::Customize() 1738 void CComboBox::Cut() 1739 void CEdit::Cut() 1740 void CRichEditCtrl::Cut() 1741 void * CPlex::data() 1742 char * CStringData::data() 1743 void DDV_MaxChars(CDataExchange *,CString const &,int) 1744 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1745 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1746 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1747 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1748 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1749 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1750 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1751 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1752 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1753 void DDX_CBIndex(CDataExchange *,int,int &) 1754 void DDX_CBString(CDataExchange *,int,CString &) 1755 void DDX_CBStringExact(CDataExchange *,int,CString &) 1756 void DDX_Check(CDataExchange *,int,int &) 1757 void DDX_Control(CDataExchange *,int,CWnd &) 1758 void DDX_LBIndex(CDataExchange *,int,int &) 1759 void DDX_LBString(CDataExchange *,int,CString &) 1760 void DDX_LBStringExact(CDataExchange *,int,CString &) 1761 void DDX_Radio(CDataExchange *,int,int &) 1762 void DDX_Scroll(CDataExchange *,int,int &) 1763 void DDX_Slider(CDataExchange *,int,int &) 1764 void DDX_Text(CDataExchange *,int,unsigned char &) 1765 void DDX_Text(CDataExchange *,int,short &) 1766 void DDX_Text(CDataExchange *,int,int &) 1767 void DDX_Text(CDataExchange *,int,unsigned int &) 1768 void DDX_Text(CDataExchange *,int,long &) 1769 void DDX_Text(CDataExchange *,int,unsigned long &) 1770 void DDX_Text(CDataExchange *,int,float &) 1771 void DDX_Text(CDataExchange *,int,double &) 1772 void DDX_Text(CDataExchange *,int,CString &) 1773 void DDX_Text(CDataExchange *,int,char *,int) 1774 long CWnd::Default() 1775 void CRect::DeflateRect(int,int) 1776 void CRect::DeflateRect(int,int,int,int) 1777 void CRect::DeflateRect(tagRECT const *) 1778 void CRect::DeflateRect(tagSIZE) 1779 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 1780 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 1781 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 1782 void CFrameWnd::DelayRecalcLayout(int) 1783 void CControlBar::DelayShow(int) 1784 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1785 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1786 void CFrameWnd::DelayUpdateFrameTitle() 1787 void CException::Delete() 1788 int CString::Delete(int,int) 1789 void CWinThread::Delete() 1790 int CListCtrl::DeleteAllItems() 1791 int CTabCtrl::DeleteAllItems() 1792 int CTreeCtrl::DeleteAllItems() 1793 int CReBarCtrl::DeleteBand(unsigned int) 1794 int CToolBarCtrl::DeleteButton(int) 1795 int CListCtrl::DeleteColumn(int) 1796 void CSplitterWnd::DeleteColumn(int) 1797 void CDocument::DeleteContents() 1798 void CEditView::DeleteContents() 1799 int CDC::DeleteDC() 1800 int CImageList::DeleteImageList() 1801 void CComboBox::DeleteItem(tagDELETEITEM*) 1802 int CComboBoxEx::DeleteItem(int) 1803 int CHeaderCtrl::DeleteItem(int) 1804 void CListBox::DeleteItem(tagDELETEITEM*) 1805 int CListCtrl::DeleteItem(int) 1806 int CTabCtrl::DeleteItem(int) 1807 int CTreeCtrl::DeleteItem(_TREEITEM *) 1808 int CMenu::DeleteMenu(unsigned int,unsigned int) 1809 int CGdiObject::DeleteObject() 1810 void CSplitterWnd::DeleteRow(int) 1811 int CComboBox::DeleteString(unsigned int) 1812 int CListBox::DeleteString(unsigned int) 1813 void CHandleMap::DeleteTemp() 1814 void CDC::DeleteTempMap() 1815 void CGdiObject::DeleteTempMap() 1816 void CImageList::DeleteTempMap() 1817 void CMenu::DeleteTempMap() 1818 void CWnd::DeleteTempMap() 1819 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1820 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1821 void CSplitterWnd::DeleteView(int,int) 1822 long CWinApp::DelRegTree(HKEY__ *,CString const &) 1823 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1824 void CTabCtrl::DeselectAll(int) 1825 void CFrameWnd::DestroyDockBars() 1826 int CMenu::DestroyMenu() 1827 int CToolTipCtrl::DestroyToolTipCtrl() 1828 int CControlBar::DestroyWindow() 1829 int CMDIChildWnd::DestroyWindow() 1830 int CWnd::DestroyWindow() 1831 void DestructElements(CString *,int) 1832 HDC__ * CDC::Detach() 1833 void * CDialogTemplate::Detach() 1834 void * CGdiObject::Detach() 1835 _IMAGELIST * CImageList::Detach() 1836 unsigned char * CMemFile::Detach() 1837 HMENU__ * CMenu::Detach() 1838 void * CSharedFile::Detach() 1839 HWND__ * CWnd::Detach() 1840 void CWinApp::DevModeChange(char *) 1841 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 1842 int CComboBox::Dir(unsigned int,char const *) 1843 int CComboBoxEx::Dir(unsigned int,char const *) 1844 int CListBox::Dir(unsigned int,char const *) 1845 void CDocument::DisconnectViews() 1846 AFX_DISPMAP const CCmdTarget::dispatchMap 1847 void CWinThread::DispatchThreadMessage(tagMSG *) 1848 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1849 int CRichEditCtrl::DisplayBand(tagRECT *) 1850 int CWnd::DlgDirListA(char *,int,int,unsigned int) 1851 int CWnd::DlgDirListComboBoxA(char *,int,int,unsigned int) 1852 int CWnd::DlgDirSelect(char *,int) 1853 int CWnd::DlgDirSelectComboBox(char *,int) 1854 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 1855 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 1856 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 1857 void CWnd::DoDataExchange(CDataExchange *) 1858 int CDocument::DoFileSave() 1859 int CSplitterWnd::DoKeyboardSplit() 1860 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 1861 int CColorDialog::DoModal() 1862 int CDialog::DoModal() 1863 int CFileDialog::DoModal() 1864 int CFontDialog::DoModal() 1865 int CPageSetupDialog::DoModal() 1866 int CPrintDialog::DoModal() 1867 int CPropertySheet::DoModal() 1868 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 1869 void CControlBar::DoPaint(CDC *) 1870 void CDockBar::DoPaint(CDC *) 1871 int CView::DoPreparePrinting(CPrintInfo *) 1872 int CWinApp::DoPrintDialog(CPrintDialog *) 1873 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 1874 int CDocManager::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 1875 int CWinApp::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 1876 int CDocument::DoSave(char const *,int) 1877 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 1878 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 1879 int CCmdUI::DoUpdate(CCmdTarget *,int) 1880 void CWinApp::DoWaitCursor(int) 1881 void CPreviewView::DoZoom(unsigned int,CPoint) 1882 void CDC::DPtoHIMETRIC(tagSIZE *)const 1883 void CDC::DPtoLP(tagPOINT *,int)const 1884 void CDC::DPtoLP(tagRECT *)const 1885 void CDC::DPtoLP(tagSIZE *)const 1886 void CWnd::DragAcceptFiles(int) 1887 int CImageList::DragEnter(CWnd *,CPoint) 1888 unsigned int CDragListBox::Dragging(CPoint) 1889 int CImageList::DragLeave(CWnd *) 1890 int CImageList::DragMove(CPoint) 1891 void CReBarCtrl::DragMove(unsigned long) 1892 int CImageList::DragShowNolock(int) 1893 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 1894 void CRectTracker::Draw(CDC *)const 1895 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 1896 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 1897 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 1898 void CControlBar::DrawBorders(CDC *,CRect &) 1899 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 1900 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 1901 int CDC::DrawEscape(int,int,char const *) 1902 void CDC::DrawFocusRect(tagRECT const *) 1903 void CDockContext::DrawFocusRect(int) 1904 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 1905 void CControlBar::DrawGripper(CDC *,CRect const &) 1906 int CDC::DrawIcon(int,int,HICON__ *) 1907 int CDC::DrawIcon(tagPOINT,HICON__ *) 1908 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 1909 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long) 1910 void CDragListBox::DrawInsert(int) 1911 void CBitmapButton::DrawItem(tagDRAWITEM*) 1912 void CButton::DrawItem(tagDRAWITEM*) 1913 void CCheckListBox::DrawItem(tagDRAWITEM*) 1914 void CComboBox::DrawItem(tagDRAWITEM*) 1915 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 1916 void CListBox::DrawItem(tagDRAWITEM*) 1917 void CListCtrl::DrawItem(tagDRAWITEM*) 1918 void CListView::DrawItem(tagDRAWITEM*) 1919 void CMenu::DrawItem(tagDRAWITEM*) 1920 void CStatusBar::DrawItem(tagDRAWITEM*) 1921 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 1922 void CTabCtrl::DrawItem(tagDRAWITEM*) 1923 void CWnd::DrawMenuBar() 1924 void CDragListBox::DrawSingle(int) 1925 int DrawState(HDC__ *,HBRUSH__ *,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,int,int,int,int,unsigned int) 1926 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 1927 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 1928 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 1929 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 1930 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 1931 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 1932 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,HBRUSH__ *) 1933 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,CBrush *) 1934 int CDC::DrawTextA(CString const &,tagRECT *,unsigned int) 1935 int CDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 1936 int CMetaFileDC::DrawTextA(CString const &,tagRECT *,unsigned int) 1937 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 1938 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 1939 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 1940 void CDragListBox::Dropped(int,CPoint) 1941 void CArchiveException::Dump(CDumpContext &)const 1942 void CBitmap::Dump(CDumpContext &)const 1943 void CBitmapButton::Dump(CDumpContext &)const 1944 void CBrush::Dump(CDumpContext &)const 1945 void CByteArray::Dump(CDumpContext &)const 1946 void CClientDC::Dump(CDumpContext &)const 1947 void CCmdTarget::Dump(CDumpContext &)const 1948 void CColorDialog::Dump(CDumpContext &)const 1949 void CControlBar::Dump(CDumpContext &)const 1950 void CCtrlView::Dump(CDumpContext &)const 1951 void CDC::Dump(CDumpContext &)const 1952 void CDialog::Dump(CDumpContext &)const 1953 void CDockBar::Dump(CDumpContext &)const 1954 void CDocManager::Dump(CDumpContext &)const 1955 void CDocTemplate::Dump(CDumpContext &)const 1956 void CDocument::Dump(CDumpContext &)const 1957 void CDWordArray::Dump(CDumpContext &)const 1958 void CDynLinkLibrary::Dump(CDumpContext &)const 1959 void CEditView::Dump(CDumpContext &)const 1960 void CFile::Dump(CDumpContext &)const 1961 void CFileDialog::Dump(CDumpContext &)const 1962 void CFileException::Dump(CDumpContext &)const 1963 void CFileFind::Dump(CDumpContext &)const 1964 void CFileStatus::Dump(CDumpContext &)const 1965 void CFindReplaceDialog::Dump(CDumpContext &)const 1966 void CFont::Dump(CDumpContext &)const 1967 void CFontDialog::Dump(CDumpContext &)const 1968 void CFormView::Dump(CDumpContext &)const 1969 void CFrameWnd::Dump(CDumpContext &)const 1970 void CFtpConnection::Dump(CDumpContext &)const 1971 void CFtpFileFind::Dump(CDumpContext &)const 1972 void CGdiObject::Dump(CDumpContext &)const 1973 void CGopherConnection::Dump(CDumpContext &)const 1974 void CGopherFile::Dump(CDumpContext &)const 1975 void CGopherFileFind::Dump(CDumpContext &)const 1976 void CHttpConnection::Dump(CDumpContext &)const 1977 void CHttpFile::Dump(CDumpContext &)const 1978 void CImageList::Dump(CDumpContext &)const 1979 void CInternetConnection::Dump(CDumpContext &)const 1980 void CInternetException::Dump(CDumpContext &)const 1981 void CInternetFile::Dump(CDumpContext &)const 1982 void CInternetSession::Dump(CDumpContext &)const 1983 void CMapPtrToPtr::Dump(CDumpContext &)const 1984 void CMapPtrToWord::Dump(CDumpContext &)const 1985 void CMapStringToOb::Dump(CDumpContext &)const 1986 void CMapStringToPtr::Dump(CDumpContext &)const 1987 void CMapStringToString::Dump(CDumpContext &)const 1988 void CMapWordToOb::Dump(CDumpContext &)const 1989 void CMapWordToPtr::Dump(CDumpContext &)const 1990 void CMDIChildWnd::Dump(CDumpContext &)const 1991 void CMDIFrameWnd::Dump(CDumpContext &)const 1992 void CMemFile::Dump(CDumpContext &)const 1993 void CMenu::Dump(CDumpContext &)const 1994 void CMultiDocTemplate::Dump(CDumpContext &)const 1995 void CObArray::Dump(CDumpContext &)const 1996 void CObject::Dump(CDumpContext &)const 1997 void CObList::Dump(CDumpContext &)const 1998 void CPageSetupDialog::Dump(CDumpContext &)const 1999 void CPaintDC::Dump(CDumpContext &)const 2000 void CPen::Dump(CDumpContext &)const 2001 void CPreviewDC::Dump(CDumpContext &)const 2002 void CPreviewView::Dump(CDumpContext &)const 2003 void CPrintDialog::Dump(CDumpContext &)const 2004 void CPropertyPage::Dump(CDumpContext &)const 2005 void CPropertyPageEx::Dump(CDumpContext &)const 2006 void CPropertySheet::Dump(CDumpContext &)const 2007 void CPropertySheetEx::Dump(CDumpContext &)const 2008 void CPtrArray::Dump(CDumpContext &)const 2009 void CPtrList::Dump(CDumpContext &)const 2010 void CScrollView::Dump(CDumpContext &)const 2011 void CSingleDocTemplate::Dump(CDumpContext &)const 2012 void CSplitterWnd::Dump(CDumpContext &)const 2013 void CStatusBar::Dump(CDumpContext &)const 2014 void CStdioFile::Dump(CDumpContext &)const 2015 void CStringArray::Dump(CDumpContext &)const 2016 void CStringList::Dump(CDumpContext &)const 2017 void CSyncObject::Dump(CDumpContext &)const 2018 void CToolBar::Dump(CDumpContext &)const 2019 void CUIntArray::Dump(CDumpContext &)const 2020 void CView::Dump(CDumpContext &)const 2021 void CWinApp::Dump(CDumpContext &)const 2022 void CWindowDC::Dump(CDumpContext &)const 2023 void CWinThread::Dump(CDumpContext &)const 2024 void CWnd::Dump(CDumpContext &)const 2025 void CWordArray::Dump(CDumpContext &)const 2026 void CMemoryState::DumpAllObjectsSince()const 2027 void CMemoryState::DumpStatistics()const 2028 CFile * CFile::Duplicate()const 2029 CFile * CInternetFile::Duplicate()const 2030 CFile * CMemFile::Duplicate()const 2031 CFile * CStdioFile::Duplicate()const 2032 unsigned long const CEditView::dwStyleDefault 2033 CEdit * CListCtrl::EditLabel(int) 2034 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2035 unsigned char & CByteArray::ElementAt(int) 2036 unsigned long & CDWordArray::ElementAt(int) 2037 CObject * & CObArray::ElementAt(int) 2038 void * & CPtrArray::ElementAt(int) 2039 CString & CStringArray::ElementAt(int) 2040 unsigned int & CUIntArray::ElementAt(int) 2041 unsigned short & CWordArray::ElementAt(int) 2042 int CDC::Ellipse(int,int,int,int) 2043 int CDC::Ellipse(tagRECT const *) 2044 void CString::Empty() 2045 void CEdit::EmptyUndoBuffer() 2046 void CRichEditCtrl::EmptyUndoBuffer() 2047 void CCheckListBox::Enable(int,int) 2048 void CCmdUI::Enable(int) 2049 void CStatusCmdUI::Enable(int) 2050 void CTestCmdUI::Enable(int) 2051 void CToolCmdUI::Enable(int) 2052 int CWinApp::Enable3dControls() 2053 int CToolBarCtrl::EnableButton(int,int) 2054 void CControlBar::EnableDocking(unsigned long) 2055 void CFrameWnd::EnableDocking(unsigned long) 2056 void CReBar::EnableDocking(unsigned long) 2057 void CStatusBar::EnableDocking(unsigned long) 2058 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2059 void CWinApp::EnableModeless(int) 2060 int CScrollBar::EnableScrollBar(unsigned int) 2061 int CWnd::EnableScrollBar(int,unsigned int) 2062 void CWnd::EnableScrollBarCtrl(int,int) 2063 void CWinApp::EnableShellOpen() 2064 void CPropertySheet::EnableStackedTabs(int) 2065 int CInternetSession::EnableStatusCallback(int) 2066 int CWnd::EnableToolTips(int) 2067 int CWnd::EnableTrackingToolTips(int) 2068 int CWnd::EnableWindow(int) 2069 void CDialog::EndDialog(int) 2070 void CPropertyPage::EndDialog(int) 2071 void CPropertySheet::EndDialog(int) 2072 int CDC::EndDoc() 2073 void CDockContext::EndDrag() 2074 void CImageList::EndDrag() 2075 void CReBarCtrl::EndDrag() 2076 void CWnd::EndModalLoop(int) 2077 void CFrameWnd::EndModalState() 2078 void CWnd::EndModalState() 2079 int CDC::EndPage() 2080 void CWnd::EndPaint(tagPAINT*) 2081 int CDC::EndPath() 2082 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 2083 void CDockContext::EndResize() 2084 void CCmdTarget::EndWaitCursor() 2085 int CListCtrl::EnsureVisible(int,int) 2086 int CTreeCtrl::EnsureVisible(_TREEITEM *) 2087 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 2088 int CRect::EqualRect(tagRECT const *)const 2089 int CRgn::EqualRgn(CRgn *)const 2090 void CControlBar::EraseNonClient() 2091 int CFileException::ErrnoToException(int) 2092 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2093 int CDC::Escape(int,int,char const *,int,char *) 2094 int CDC::Escape(int,int,char const *,void *) 2095 int CMetaFileDC::Escape(int,int,char const *,void *) 2096 int CPreviewDC::Escape(int,int,char const *,void *) 2097 AFX_EVENTSINKMAP const CCmdTarget::eventsinkMap 2098 int CDC::ExcludeClipRect(int,int,int,int) 2099 int CDC::ExcludeClipRect(tagRECT const *) 2100 int CDC::ExcludeUpdateRgn(CWnd *) 2101 int CWnd::ExecuteDlgInit(void *) 2102 int CWnd::ExecuteDlgInit(char const *) 2103 void CFrameWnd::ExitHelpMode() 2104 int CWinApp::ExitInstance() 2105 int CWinThread::ExitInstance() 2106 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 2107 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 2108 HICON__ * CImageList::ExtractIconA(int) 2109 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,CString const &,int *) 2110 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2111 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,CString const &,int *) 2112 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2113 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2114 void CDataExchange::Fail() 2115 void CArchive::FillBuffer(unsigned int) 2116 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2117 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2118 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2119 int CDC::FillPath() 2120 void CDC::FillRect(tagRECT const *,CBrush *) 2121 int CDC::FillRgn(CRgn *,CBrush *) 2122 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2123 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2124 void CWnd::FilterToolTipMessage(tagMSG *) 2125 __POSITION * CObList::Find(CObject *,__POSITION *)const 2126 __POSITION * CPtrList::Find(void *,__POSITION *)const 2127 int CString::Find(char)const 2128 int CString::Find(char,int)const 2129 int CString::Find(char const *)const 2130 int CString::Find(char const *,int)const 2131 __POSITION * CStringList::Find(char const *,__POSITION *)const 2132 int CDockBar::FindBar(CControlBar *,int) 2133 int CFileFind::FindFile(char const *,unsigned long) 2134 int CFtpFileFind::FindFile(char const *,unsigned long) 2135 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2136 int CGopherFileFind::FindFile(char const *,unsigned long) 2137 __POSITION * CObList::FindIndex(int)const 2138 __POSITION * CPtrList::FindIndex(int)const 2139 __POSITION * CStringList::FindIndex(int)const 2140 int CListCtrl::FindItem(tagLVFINDINFOA *,int)const 2141 int CFindReplaceDialog::FindNext()const 2142 int CFileFind::FindNextFileA() 2143 int CFtpFileFind::FindNextFileA() 2144 int CGopherFileFind::FindNextFileA() 2145 int CString::FindOneOf(char const *)const 2146 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2147 int CComboBox::FindString(int,char const *)const 2148 int CComboBoxEx::FindString(int,char const *)const 2149 int CListBox::FindString(int,char const *)const 2150 int CComboBox::FindStringExact(int,char const *)const 2151 int CListBox::FindStringExact(int,char const *)const 2152 int CEditView::FindTextA(char const *,int,int) 2153 long CRichEditCtrl::FindTextA(unsigned long,_findtextexa *)const 2154 CWnd * CWnd::FindWindowA(char const *,char const *) 2155 int CWnd::FlashWindow(int) 2156 int CDC::FlattenPath() 2157 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2158 int CDC::FloodFill(int,int,unsigned long) 2159 void CArchive::Flush() 2160 void CDumpContext::Flush() 2161 void CFile::Flush() 2162 void CInternetFile::Flush() 2163 void CMemFile::Flush() 2164 void CStdioFile::Flush() 2165 int CEdit::FmtLines(int) 2166 int FontAttrSize(int) 2167 void CString::Format(unsigned int,...) 2168 void CString::Format(char const *,...) 2169 CString CTime::Format(unsigned int)const 2170 CString CTime::Format(char const *)const 2171 CString CTimeSpan::Format(unsigned int)const 2172 CString CTimeSpan::Format(char const *)const 2173 CString CTime::FormatGmt(unsigned int)const 2174 CString CTime::FormatGmt(char const *)const 2175 void CString::FormatMessageA(unsigned int,...) 2176 void CString::FormatMessageA(char const *,...) 2177 long CRichEditCtrl::FormatRange(_formatrange *,int) 2178 void CString::FormatV(char const *,char *) 2179 void CDC::FrameRect(tagRECT const *,CBrush *) 2180 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 2181 void CFixedAlloc::Free(void *) 2182 void CMemFile::Free(unsigned char *) 2183 void CSharedFile::Free(unsigned char *) 2184 void CFixedAlloc::FreeAll() 2185 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2186 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2187 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2188 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2189 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2190 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2191 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2192 void __fastcall CString::FreeData(CStringData *) 2193 void CPlex::FreeDataChain() 2194 void CByteArray::FreeExtra() 2195 void CDWordArray::FreeExtra() 2196 void CObArray::FreeExtra() 2197 void CPtrArray::FreeExtra() 2198 void CString::FreeExtra() 2199 void CStringArray::FreeExtra() 2200 void CUIntArray::FreeExtra() 2201 void CWordArray::FreeExtra() 2202 void CObList::FreeNode(CObList::CNode *) 2203 void CPtrList::FreeNode(CPtrList::CNode *) 2204 void CStringList::FreeNode(CStringList::CNode *) 2205 void CThreadSlotData::FreeSlot(int) 2206 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 2207 CBrush * CBrush::FromHandle(HBRUSH__ *) 2208 CDC * CDC::FromHandle(HDC__ *) 2209 CFont * CFont::FromHandle(HFONT__ *) 2210 CGdiObject * CGdiObject::FromHandle(void *) 2211 CObject * CHandleMap::FromHandle(void *) 2212 CImageList * CImageList::FromHandle(_IMAGELIST *) 2213 CMenu * CMenu::FromHandle(HMENU__ *) 2214 CPalette * CPalette::FromHandle(HPALETTE__ *) 2215 CPen * CPen::FromHandle(HPEN__ *) 2216 CRgn * CRgn::FromHandle(HRGN__ *) 2217 CWnd * CWnd::FromHandle(HWND__ *) 2218 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2219 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2220 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2221 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 2222 CDocument * CFrameWnd::GetActiveDocument() 2223 CFrameWnd * CFrameWnd::GetActiveFrame() 2224 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2225 int CPropertySheet::GetActiveIndex()const 2226 CPropertyPage * CPropertySheet::GetActivePage()const 2227 CWnd * CSplitterWnd::GetActivePane(int &,int &) 2228 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2229 CView * CFrameWnd::GetActiveView()const 2230 CWnd * CWnd::GetActiveWindow() 2231 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2232 int CIPAddressCtrl::GetAddress(unsigned long &) 2233 int CString::GetAllocLength()const 2234 int CToolBarCtrl::GetAnchorHighlight()const 2235 int CListBox::GetAnchorIndex()const 2236 HKEY__ * CWinApp::GetAppRegistryKey() 2237 int CDC::GetArcDirection()const 2238 CSize CDC::GetAspectRatioFilter()const 2239 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &)const 2240 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &)const 2241 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &)const 2242 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &)const 2243 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &)const 2244 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &)const 2245 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &)const 2246 int CTime::GetAsSystemTime(_SYSTEMTIME &)const 2247 unsigned char CByteArray::GetAt(int)const 2248 unsigned long CDWordArray::GetAt(int)const 2249 CObject * CObArray::GetAt(int)const 2250 CObject * & CObList::GetAt(__POSITION *) 2251 CObject * CObList::GetAt(__POSITION *)const 2252 void * CPtrArray::GetAt(int)const 2253 void * & CPtrList::GetAt(__POSITION *) 2254 void * CPtrList::GetAt(__POSITION *)const 2255 char CString::GetAt(int)const 2256 CString CStringArray::GetAt(int)const 2257 CString & CStringList::GetAt(__POSITION *) 2258 CString CStringList::GetAt(__POSITION *)const 2259 unsigned int CUIntArray::GetAt(int)const 2260 unsigned short CWordArray::GetAt(int)const 2261 int CGopherConnection::GetAttribute(CGopherLocator &,CString,CString &) 2262 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 2263 unsigned int CReBarCtrl::GetBandCount()const 2264 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOA *)const 2265 unsigned int CReBarCtrl::GetBarHeight()const 2266 void CControlBar::GetBarInfo(CControlBarInfo *) 2267 void CDockBar::GetBarInfo(CControlBarInfo *) 2268 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 2269 unsigned long CControlBar::GetBarStyle() 2270 unsigned int CSpinButtonCtrl::GetBase()const 2271 int CBitmap::GetBitmap(tagBITMAP *) 2272 HBITMAP__ * CButton::GetBitmap()const 2273 HBITMAP__ * CStatic::GetBitmap()const 2274 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 2275 CSize CBitmap::GetBitmapDimension()const 2276 unsigned int CToolBarCtrl::GetBitmapFlags()const 2277 unsigned long CDC::GetBkColor()const 2278 unsigned long CImageList::GetBkColor()const 2279 unsigned long CListCtrl::GetBkColor()const 2280 unsigned long CReBarCtrl::GetBkColor()const 2281 unsigned long CTreeCtrl::GetBkColor()const 2282 int CListCtrl::GetBkImage(tagLVBKIMAGEA *)const 2283 int CDC::GetBkMode()const 2284 CRect CControlBar::GetBorders()const 2285 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2286 int CStatusBarCtrl::GetBorders(int *)const 2287 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 2288 CPoint CDC::GetBrushOrg()const 2289 CWnd * CSliderCtrl::GetBuddy(int)const 2290 CWnd * CSpinButtonCtrl::GetBuddy()const 2291 char * CString::GetBuffer(int) 2292 unsigned int CEditView::GetBufferLength()const 2293 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2294 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2295 char * CString::GetBufferSetLength(int) 2296 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 2297 int CToolBarCtrl::GetButtonCount()const 2298 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2299 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOA *)const 2300 unsigned long CToolBarCtrl::GetButtonSize()const 2301 unsigned int CButton::GetButtonStyle()const 2302 unsigned int CToolBar::GetButtonStyle(int)const 2303 CString CToolBar::GetButtonText(int)const 2304 void CToolBar::GetButtonText(int,CString &)const 2305 unsigned int CListCtrl::GetCallbackMask()const 2306 CWnd * CWnd::GetCapture() 2307 int CListBox::GetCaretIndex()const 2308 CPoint CWnd::GetCaretPos() 2309 void CSliderCtrl::GetChannelRect(tagRECT *)const 2310 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABC *)const 2311 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABCFLOAT *)const 2312 void CFontDialog::GetCharFormat(_charformat &)const 2313 CPoint CRichEditCtrl::GetCharPos(long)const 2314 int CDC::GetCharWidthA(unsigned int,unsigned int,int *)const 2315 int CDC::GetCharWidthA(unsigned int,unsigned int,float *)const 2316 int CButton::GetCheck()const 2317 int CCheckListBox::GetCheck(int) 2318 int CListCtrl::GetCheck(int)const 2319 int CTreeCtrl::GetCheck(_TREEITEM *)const 2320 int CWnd::GetCheckedRadioButton(int,int) 2321 unsigned int CCheckListBox::GetCheckStyle() 2322 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 2323 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2324 void CWnd::GetClientRect(tagRECT *)const 2325 CWnd * CWnd::GetClipboardOwner() 2326 CWnd * CWnd::GetClipboardViewer() 2327 int CDC::GetClipBox(tagRECT *)const 2328 int CMetaFileDC::GetClipBox(tagRECT *)const 2329 unsigned long CColorDialog::GetColor()const 2330 unsigned long CFontDialog::GetColor()const 2331 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 2332 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2333 int CListCtrl::GetColumn(int,tagLVCOLUMNA *)const 2334 int CSplitterWnd::GetColumnCount()const 2335 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2336 int CListCtrl::GetColumnOrderArray(int *,int) 2337 int CListCtrl::GetColumnWidth(int)const 2338 CComboBox * CComboBoxEx::GetComboBoxCtrl() 2339 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2340 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2341 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2342 unsigned long CInternetConnection::GetContext()const 2343 unsigned long CInternetFile::GetContext()const 2344 unsigned long CInternetSession::GetContext()const 2345 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2346 IUnknown * CWnd::GetControlUnknown() 2347 int CInternetSession::GetCookie(char const *,char const *,CString &) 2348 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 2349 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 2350 int CPrintDialog::GetCopies()const 2351 int CComboBox::GetCount()const 2352 int CControlBar::GetCount()const 2353 int CListBox::GetCount()const 2354 int CMapPtrToPtr::GetCount()const 2355 int CMapPtrToWord::GetCount()const 2356 int CMapStringToOb::GetCount()const 2357 int CMapStringToPtr::GetCount()const 2358 int CMapStringToString::GetCount()const 2359 int CMapWordToOb::GetCount()const 2360 int CMapWordToPtr::GetCount()const 2361 int CObList::GetCount()const 2362 int CPtrList::GetCount()const 2363 int CStringList::GetCount()const 2364 unsigned int CTreeCtrl::GetCount()const 2365 int CListCtrl::GetCountPerPage()const 2366 int CFileFind::GetCreationTime(CTime &)const 2367 int CFileFind::GetCreationTime(_FILETIME *)const 2368 int CGopherFileFind::GetCreationTime(CTime &)const 2369 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2370 int CTabCtrl::GetCurFocus()const 2371 CBitmap * CDC::GetCurrentBitmap()const 2372 CBrush * CDC::GetCurrentBrush()const 2373 int CFtpConnection::GetCurrentDirectoryA(CString &)const 2374 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 2375 int CFtpConnection::GetCurrentDirectoryAsURL(CString &)const 2376 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 2377 CFont * CDC::GetCurrentFont()const 2378 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 2379 tagMSG const * CWnd::GetCurrentMessage() 2380 CPalette * CDC::GetCurrentPalette()const 2381 CPen * CDC::GetCurrentPen()const 2382 CPoint CDC::GetCurrentPosition()const 2383 int CComboBox::GetCurSel()const 2384 int CListBox::GetCurSel()const 2385 int CTabCtrl::GetCurSel()const 2386 HICON__ * CButton::GetCursor() 2387 HICON__ * CStatic::GetCursor() 2388 unsigned char * CByteArray::GetData() 2389 unsigned char const * CByteArray::GetData()const 2390 unsigned long * CDWordArray::GetData() 2391 unsigned long const * CDWordArray::GetData()const 2392 CObject * * CObArray::GetData() 2393 CObject const * * CObArray::GetData()const 2394 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2395 void * * CPtrArray::GetData() 2396 void const * * CPtrArray::GetData()const 2397 CStringData * CString::GetData()const 2398 CString * CStringArray::GetData() 2399 CString const * CStringArray::GetData()const 2400 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2401 unsigned int * CUIntArray::GetData() 2402 unsigned int const * CUIntArray::GetData()const 2403 unsigned short * CWordArray::GetData() 2404 unsigned short const * CWordArray::GetData()const 2405 CNoTrackObject * CThreadLocalObject::GetDataNA() 2406 int CTime::GetDay()const 2407 int CTime::GetDayOfWeek()const 2408 long CTimeSpan::GetDays()const 2409 CDC * CWnd::GetDC() 2410 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 2411 HACCEL__ * CDocument::GetDefaultAccelerator() 2412 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2413 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 2414 unsigned int CMenu::GetDefaultItem(unsigned int,int) 2415 HMENU__ * CDocument::GetDefaultMenu() 2416 int CPrintDialog::GetDefaults() 2417 unsigned long CDialog::GetDefID()const 2418 int CToolTipCtrl::GetDelayTime(unsigned long)const 2419 int CDumpContext::GetDepth()const 2420 CWnd * CWnd::GetDescendantWindow(int,int)const 2421 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2422 CWnd * CWnd::GetDesktopWindow() 2423 int CDC::GetDeviceCaps(int)const 2424 CString CPageSetupDialog::GetDeviceName()const 2425 CString CPrintDialog::GetDeviceName()const 2426 CPoint CScrollView::GetDeviceScrollPosition()const 2427 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2428 _devicemodeA * CPageSetupDialog::GetDevMode()const 2429 _devicemodeA * CPrintDialog::GetDevMode()const 2430 CImageList * CToolBarCtrl::GetDisabledImageList()const 2431 int CCmdTarget::GetDispatchIID(_GUID *) 2432 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2433 int CRecentFileList::GetDisplayName(CString &,int,char const *,int,int)const 2434 int CWnd::GetDlgCtrlID()const 2435 CWnd * CWnd::GetDlgItem(int)const 2436 void CWnd::GetDlgItem(int,HWND__ * *)const 2437 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2438 int CWnd::GetDlgItemTextA(int,CString &)const 2439 int CWnd::GetDlgItemTextA(int,char *,int)const 2440 CDockBar * CDockContext::GetDockBar(unsigned long) 2441 CControlBar * CDockBar::GetDockedControlBar(int)const 2442 int CDockBar::GetDockedCount()const 2443 int CDockBar::GetDockedVisibleCount()const 2444 CFrameWnd * CControlBar::GetDockingFrame()const 2445 void CFrameWnd::GetDockState(CDockState &)const 2446 int CDocTemplate::GetDocString(CString &,enum CDocTemplate::DocStringIndex)const 2447 CDocTemplate * CDocument::GetDocTemplate()const 2448 CDocument * CView::GetDocument()const 2449 int CDocManager::GetDocumentCount() 2450 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 2451 CString CPageSetupDialog::GetDriverName()const 2452 CString CPrintDialog::GetDriverName()const 2453 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 2454 void CComboBox::GetDroppedControlRect(tagRECT *)const 2455 int CComboBox::GetDroppedState()const 2456 int CComboBox::GetDroppedWidth()const 2457 IDropTarget * CReBarCtrl::GetDropTarget()const 2458 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2459 IUnknown * CWnd::GetDSCCursor() 2460 CEdit * CListCtrl::GetEditControl()const 2461 CEdit * CTreeCtrl::GetEditControl()const 2462 CEdit * CComboBoxEx::GetEditCtrl() 2463 CEdit & CEditView::GetEditCtrl()const 2464 unsigned long CComboBox::GetEditSel()const 2465 HENHMETAFILE__ * CStatic::GetEnhMetaFileA()const 2466 int CPalette::GetEntryCount() 2467 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *) 2468 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 2469 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *) 2470 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *) 2471 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *) 2472 long CRichEditCtrl::GetEventMask()const 2473 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2474 unsigned long CWnd::GetExStyle()const 2475 unsigned long CComboBoxEx::GetExtendedStyle()const 2476 unsigned long CListCtrl::GetExtendedStyle() 2477 unsigned long CTabCtrl::GetExtendedStyle() 2478 unsigned long CToolBarCtrl::GetExtendedStyle()const 2479 int CComboBox::GetExtendedUI()const 2480 int CPen::GetExtLogPen(tagEXTLOGPEN *) 2481 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2482 CString CFontDialog::GetFaceName()const 2483 CFile * CArchive::GetFile()const 2484 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 2485 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 2486 CString CFileDialog::GetFileExt()const 2487 CString CFile::GetFileName()const 2488 CString CFileDialog::GetFileName()const 2489 CString CFileFind::GetFileName()const 2490 CString CGopherFileFind::GetFileName()const 2491 CString CFile::GetFilePath()const 2492 CString CFileFind::GetFilePath()const 2493 CString CGopherFileFind::GetFilePath()const 2494 short GetFileTitle(char const *,char *,unsigned short) 2495 CString CFile::GetFileTitle()const 2496 CString CFileDialog::GetFileTitle()const 2497 CString CFileFind::GetFileTitle()const 2498 CString CGopherFileFind::GetFileTitle()const 2499 CString CFileFind::GetFileURL()const 2500 CString CFtpFileFind::GetFileURL()const 2501 CString CGopherFileFind::GetFileURL()const 2502 CString CHttpFile::GetFileURL()const 2503 CString CFindReplaceDialog::GetFindString()const 2504 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2505 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2506 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2507 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2508 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 2509 __POSITION * CDocument::GetFirstViewPosition()const 2510 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 2511 int CEdit::GetFirstVisibleLine()const 2512 int CRichEditCtrl::GetFirstVisibleLine()const 2513 CWnd * CWnd::GetFocus() 2514 CString CFileDialog::GetFolderPath()const 2515 int CDialogTemplate::GetFont(CString &,unsigned short &)const 2516 int CDialogTemplate::GetFont(DLGTEMPLATE const *,CString &,unsigned short &) 2517 CFont * CWnd::GetFont()const 2518 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 2519 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2520 CWnd * CWnd::GetForegroundWindow() 2521 int CPrintDialog::GetFromPage()const 2522 unsigned int CPrintInfo::GetFromPage()const 2523 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 2524 unsigned long CDC::GetGlyphOutlineA(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 2525 tm * CTime::GetGmtTm(tm *)const 2526 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 2527 CBrush * CDC::GetHalftoneBrush() 2528 void * CEdit::GetHandle()const 2529 unsigned int CRectTracker::GetHandleMask()const 2530 void CRectTracker::GetHandleRect(int,CRect *)const 2531 int CRectTracker::GetHandleSize(tagRECT const *)const 2532 unsigned int CMapPtrToPtr::GetHashTableSize()const 2533 unsigned int CMapPtrToWord::GetHashTableSize()const 2534 unsigned int CMapStringToOb::GetHashTableSize()const 2535 unsigned int CMapStringToPtr::GetHashTableSize()const 2536 unsigned int CMapStringToString::GetHashTableSize()const 2537 unsigned int CMapWordToOb::GetHashTableSize()const 2538 unsigned int CMapWordToPtr::GetHashTableSize()const 2539 CRuntime* CTypedSimpleList::GetHead() 2540 COleObjectFactory * CTypedSimpleList::GetHead() 2541 CObject * & CObList::GetHead() 2542 CObject * CObList::GetHead()const 2543 void * & CPtrList::GetHead() 2544 void * CPtrList::GetHead()const 2545 void * CSimpleList::GetHead()const 2546 CString & CStringList::GetHead() 2547 CString CStringList::GetHead()const 2548 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2549 __POSITION * CObList::GetHeadPosition()const 2550 __POSITION * CPtrList::GetHeadPosition()const 2551 __POSITION * CStringList::GetHeadPosition()const 2552 void CSplitterWnd::GetHitRect(int,CRect &) 2553 unsigned int CComboBox::GetHorizontalExtent()const 2554 int CListBox::GetHorizontalExtent()const 2555 HICON__ * CListCtrl::GetHotCursor() 2556 CImageList * CToolBarCtrl::GetHotImageList()const 2557 int CListCtrl::GetHotItem() 2558 int CToolBarCtrl::GetHotItem()const 2559 unsigned long CHotKeyCtrl::GetHotKey()const 2560 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2561 int CTime::GetHour()const 2562 int CTimeSpan::GetHours()const 2563 unsigned long CListCtrl::GetHoverTime()const 2564 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 2565 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 2566 HICON__ * CButton::GetIcon()const 2567 HICON__ * CStatic::GetIcon()const 2568 HICON__ * CWnd::GetIcon(int)const 2569 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2570 int CImageList::GetImageCount()const 2571 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 2572 CImageList * CComboBoxEx::GetImageList()const 2573 CImageList * CHeaderCtrl::GetImageList()const 2574 CImageList * CListCtrl::GetImageList(int)const 2575 CImageList * CReBarCtrl::GetImageList()const 2576 CImageList * CTabCtrl::GetImageList()const 2577 CImageList * CToolBarCtrl::GetImageList()const 2578 CImageList * CTreeCtrl::GetImageList(unsigned int)const 2579 unsigned int CTreeCtrl::GetIndent()const 2580 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 2581 unsigned long CToolBarCtrl::GetInsertMarkColor()const 2582 unsigned long CTreeCtrl::GetInsertMarkColor()const 2583 void CSplitterWnd::GetInsideRect(CRect &)const 2584 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2585 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2586 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2587 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 2588 int CHeaderCtrl::GetItem(int,_HD_ITEMA *)const 2589 int CListCtrl::GetItem(tagLVITEMA *)const 2590 int CTabCtrl::GetItem(int,tagTCITEMA *)const 2591 int CTreeCtrl::GetItem(tagTVITEMA *)const 2592 int CHeaderCtrl::GetItemCount()const 2593 int CListCtrl::GetItemCount()const 2594 int CTabCtrl::GetItemCount()const 2595 unsigned long CComboBox::GetItemData(int)const 2596 unsigned long CListBox::GetItemData(int)const 2597 unsigned long CListCtrl::GetItemData(int)const 2598 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2599 void * CComboBox::GetItemDataPtr(int)const 2600 void * CListBox::GetItemDataPtr(int)const 2601 int CComboBox::GetItemHeight(int)const 2602 int CListBox::GetItemHeight(int)const 2603 short CTreeCtrl::GetItemHeight()const 2604 unsigned int CStatusBar::GetItemID(int)const 2605 unsigned int CToolBar::GetItemID(int)const 2606 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2607 int CListCtrl::GetItemPosition(int,tagPOINT *)const 2608 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 2609 int CListBox::GetItemRect(int,tagRECT *)const 2610 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2611 void CStatusBar::GetItemRect(int,tagRECT *)const 2612 int CTabCtrl::GetItemRect(int,tagRECT *)const 2613 void CToolBar::GetItemRect(int,tagRECT *)const 2614 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 2615 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2616 unsigned int CListCtrl::GetItemState(int,unsigned int)const 2617 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2618 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2619 CString CListCtrl::GetItemText(int,int)const 2620 int CListCtrl::GetItemText(int,int,char *,int)const 2621 CString CTreeCtrl::GetItemText(_TREEITEM *)const 2622 int CDC::GetKerningPairsA(int,tagKERNINGPAIR *)const 2623 int CFileFind::GetLastAccessTime(CTime &)const 2624 int CFileFind::GetLastAccessTime(_FILETIME *)const 2625 int CGopherFileFind::GetLastAccessTime(CTime &)const 2626 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2627 CWnd * CWnd::GetLastActivePopup()const 2628 int CFileFind::GetLastWriteTime(CTime &)const 2629 int CFileFind::GetLastWriteTime(_FILETIME *)const 2630 int CGopherFileFind::GetLastWriteTime(CTime &)const 2631 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2632 unsigned long CDC::GetLayout()const 2633 int CComboBox::GetLBText(int,char *)const 2634 void CComboBox::GetLBText(int,CString &)const 2635 int CComboBox::GetLBTextLen(int)const 2636 unsigned long CFile::GetLength()const 2637 unsigned long CFileFind::GetLength()const 2638 unsigned long CGopherFileFind::GetLength()const 2639 unsigned long CInternetFile::GetLength()const 2640 int CString::GetLength()const 2641 __int64 CFileFind::GetLength64()const 2642 __int64 CGopherFileFind::GetLength64()const 2643 unsigned int CEdit::GetLimitText()const 2644 long CRichEditCtrl::GetLimitText()const 2645 int CEdit::GetLine(int,char *)const 2646 int CEdit::GetLine(int,char *,int)const 2647 int CRichEditCtrl::GetLine(int,char *)const 2648 int CRichEditCtrl::GetLine(int,char *,int)const 2649 int CEdit::GetLineCount()const 2650 int CRichEditCtrl::GetLineCount()const 2651 int CSliderCtrl::GetLineSize()const 2652 CListCtrl & CListView::GetListCtrl()const 2653 unsigned long CComboBox::GetLocale()const 2654 unsigned long CListBox::GetLocale()const 2655 tm * CTime::GetLocalTm(tm *)const 2656 CGopherLocator CGopherFileFind::GetLocator()const 2657 int CGopherLocator::GetLocatorType(unsigned long &)const 2658 int CBrush::GetLogBrush(tagLOGBRUSH *) 2659 int CFont::GetLogFont(tagLOGFONTA *) 2660 int CPen::GetLogPen(tagLOGPEN *) 2661 CWnd * CWinThread::GetMainWnd() 2662 int CDC::GetMapMode()const 2663 void CToolTipCtrl::GetMargin(tagRECT *)const 2664 unsigned long CEdit::GetMargins()const 2665 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2666 unsigned int CPrintInfo::GetMaxPage()const 2667 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 2668 int CToolBarCtrl::GetMaxTextRows()const 2669 int CToolTipCtrl::GetMaxTipWidth()const 2670 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2671 CMenu * CWnd::GetMenu()const 2672 unsigned long CMenu::GetMenuContextHelpId()const 2673 unsigned int CMenu::GetMenuItemCount()const 2674 unsigned int CMenu::GetMenuItemID(int)const 2675 int CMenu::GetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 2676 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 2677 int CMenu::GetMenuStringA(unsigned int,CString &,unsigned int)const 2678 int CMenu::GetMenuStringA(unsigned int,char *,int,unsigned int)const 2679 CWnd * CFrameWnd::GetMessageBar() 2680 CWnd * CMDIChildWnd::GetMessageBar() 2681 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2682 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2683 AFX_MSGMAP const * CColorDialog::GetMessageMap()const 2684 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2685 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2686 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2687 AFX_MSGMAP const * CDialog::GetMessageMap()const 2688 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2689 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2690 AFX_MSGMAP const * CDocument::GetMessageMap()const 2691 AFX_MSGMAP const * CEditView::GetMessageMap()const 2692 AFX_MSGMAP const * CFormView::GetMessageMap()const 2693 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2694 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2695 AFX_MSGMAP const * CListView::GetMessageMap()const 2696 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2697 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2698 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2699 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2700 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2701 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2702 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2703 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2704 AFX_MSGMAP const * CReBar::GetMessageMap()const 2705 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2706 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2707 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2708 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2709 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2710 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2711 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2712 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2713 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2714 AFX_MSGMAP const * CView::GetMessageMap()const 2715 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2716 AFX_MSGMAP const * CWnd::GetMessageMap()const 2717 void CFrameWnd::GetMessageString(unsigned int,CString &)const 2718 unsigned int CPrintInfo::GetMinPage()const 2719 int CTime::GetMinute()const 2720 int CTimeSpan::GetMinutes()const 2721 float CDC::GetMiterLimit()const 2722 int CEdit::GetModify()const 2723 int CRichEditCtrl::GetModify()const 2724 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 2725 int CTime::GetMonth()const 2726 unsigned long CDC::GetNearestColor(unsigned long)const 2727 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 2728 CObject * & CObList::GetNext(__POSITION * &) 2729 CObject * CObList::GetNext(__POSITION * &)const 2730 void * & CPtrList::GetNext(__POSITION * &) 2731 void * CPtrList::GetNext(__POSITION * &)const 2732 CString & CStringList::GetNext(__POSITION * &) 2733 CString CStringList::GetNext(__POSITION * &)const 2734 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 2735 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 2736 void CMapStringToOb::GetNextAssoc(__POSITION * &,CString &,CObject * &)const 2737 void CMapStringToPtr::GetNextAssoc(__POSITION * &,CString &,void * &)const 2738 void CMapStringToString::GetNextAssoc(__POSITION * &,CString &,CString &)const 2739 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 2740 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 2741 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 2742 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 2743 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 2744 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 2745 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 2746 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 2747 int CListCtrl::GetNextItem(int,int)const 2748 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 2749 CString CFileDialog::GetNextPathName(__POSITION * &)const 2750 void * * CSimpleList::GetNextPtr(void *)const 2751 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 2752 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 2753 CView * CDocument::GetNextView(__POSITION * &)const 2754 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 2755 HWND__ * GetNextWindow(HWND__ *,unsigned int) 2756 CWnd * CWnd::GetNextWindow(unsigned int)const 2757 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 2758 unsigned int CListCtrl::GetNumberOfWorkAreas()const 2759 unsigned int CSliderCtrl::GetNumTics()const 2760 int CGdiObject::GetObjectA(int,void *)const 2761 CString CHttpFile::GetObjectA()const 2762 unsigned int CArchive::GetObjectSchema() 2763 unsigned int CGdiObject::GetObjectType()const 2764 CWnd * CWnd::GetOpenClipboardWindow() 2765 int CDocManager::GetOpenDocumentCount() 2766 int CWinApp::GetOpenDocumentCount() 2767 int CHeaderCtrl::GetOrderArray(int *,int) 2768 int CListCtrl::GetOrigin(tagPOINT *)const 2769 unsigned int CDC::GetOutlineTextMetricsA(unsigned int,_OUTLINETEXTMETRICA *)const 2770 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 2771 CSize CDC::GetOutputTabbedTextExtent(CString const &,int,int *)const 2772 CSize CDC::GetOutputTabbedTextExtent(char const *,int,int,int *)const 2773 CSize CDC::GetOutputTextExtent(CString const &)const 2774 CSize CDC::GetOutputTextExtent(char const *,int)const 2775 int CDC::GetOutputTextMetrics(tagTEXTMETRICA *)const 2776 CWnd * CWnd::GetOwner()const 2777 CPropertyPage * CPropertySheet::GetPage(int)const 2778 int CPropertySheet::GetPageCount()const 2779 int CPropertySheet::GetPageIndex(CPropertyPage *) 2780 int CSliderCtrl::GetPageSize()const 2781 CPalette * CReBarCtrl::GetPalette()const 2782 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 2783 CWnd * CSplitterWnd::GetPane(int,int)const 2784 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 2785 unsigned int CStatusBar::GetPaneStyle(int)const 2786 CString CStatusBar::GetPaneText(int)const 2787 void CStatusBar::GetPaneText(int,CString &)const 2788 CSize CPageSetupDialog::GetPaperSize()const 2789 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 2790 CWnd * CWnd::GetParent()const 2791 CFrameWnd * CWnd::GetParentFrame()const 2792 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 2793 CWnd * CWnd::GetParentOwner()const 2794 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 2795 int CStatusBarCtrl::GetParts(int,int *)const 2796 char CEdit::GetPasswordChar()const 2797 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 2798 CString const & CDocument::GetPathName()const 2799 CString CFileDialog::GetPathName()const 2800 unsigned long CDC::GetPixel(int,int)const 2801 unsigned long CDC::GetPixel(tagPOINT)const 2802 int CDC::GetPolyFillMode()const 2803 CString CPageSetupDialog::GetPortName()const 2804 CString CPrintDialog::GetPortName()const 2805 int CProgressCtrl::GetPos() 2806 int CSliderCtrl::GetPos()const 2807 int CSpinButtonCtrl::GetPos()const 2808 unsigned long CFile::GetPosition()const 2809 unsigned long CMemFile::GetPosition()const 2810 unsigned long CStdioFile::GetPosition()const 2811 CObject * & CObList::GetPrev(__POSITION * &) 2812 CObject * CObList::GetPrev(__POSITION * &)const 2813 void * & CPtrList::GetPrev(__POSITION * &) 2814 void * CPtrList::GetPrev(__POSITION * &)const 2815 CString & CStringList::GetPrev(__POSITION * &) 2816 CString CStringList::GetPrev(__POSITION * &)const 2817 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 2818 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 2819 HDC__ * CPrintDialog::GetPrinterDC()const 2820 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 2821 CFont * CEditView::GetPrinterFont()const 2822 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 2823 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 2824 CString CWinApp::GetProfileStringA(char const *,char const *,char const *) 2825 void CWnd::GetProperty(long,unsigned short,void *)const 2826 _AFX_OLDPROPSHEETHEADER * CPropertySheet::GetPropSheetHeader() 2827 void CProgressCtrl::GetRange(int &,int &) 2828 void CSliderCtrl::GetRange(int &,int &)const 2829 unsigned long CSpinButtonCtrl::GetRange()const 2830 void CSpinButtonCtrl::GetRange(int &,int &)const 2831 void CSpinButtonCtrl::GetRange32(int &,int &)const 2832 int CSliderCtrl::GetRangeMax()const 2833 int CSliderCtrl::GetRangeMin()const 2834 int CFileDialog::GetReadOnlyPref()const 2835 CReBarCtrl & CReBar::GetReBarCtrl()const 2836 void CEdit::GetRect(tagRECT *)const 2837 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 2838 void CRichEditCtrl::GetRect(tagRECT *)const 2839 int CStatusBarCtrl::GetRect(int,tagRECT *)const 2840 int CToolBarCtrl::GetRect(int,tagRECT *)const 2841 int CRgn::GetRegionData(_RGNDATA *,int)const 2842 CString CFindReplaceDialog::GetReplaceString()const 2843 int CRgn::GetRgnBox(tagRECT *)const 2844 CString CFileFind::GetRoot()const 2845 CString CGopherFileFind::GetRoot()const 2846 _TREEITEM * CTreeCtrl::GetRootItem()const 2847 int CDC::GetROP2()const 2848 CFrameWnd * CCmdTarget::GetRoutingFrame() 2849 CFrameWnd * CCmdTarget::GetRoutingFrame_() 2850 CView * CCmdTarget::GetRoutingView() 2851 CView * CCmdTarget::GetRoutingView_() 2852 unsigned int CReBarCtrl::GetRowCount()const 2853 int CSplitterWnd::GetRowCount()const 2854 int CTabCtrl::GetRowCount()const 2855 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 2856 void CSplitterWnd::GetRowInfo(int,int &,int &)const 2857 int CToolBarCtrl::GetRows()const 2858 CRuntime* CAnimateCtrl::GetRuntimeClass()const 2859 CRuntime* CArchiveException::GetRuntimeClass()const 2860 CRuntime* CBitmap::GetRuntimeClass()const 2861 CRuntime* CBitmapButton::GetRuntimeClass()const 2862 CRuntime* CBrush::GetRuntimeClass()const 2863 CRuntime* CButton::GetRuntimeClass()const 2864 CRuntime* CByteArray::GetRuntimeClass()const 2865 CRuntime* CCheckListBox::GetRuntimeClass()const 2866 CRuntime* CClientDC::GetRuntimeClass()const 2867 CRuntime* CCmdTarget::GetRuntimeClass()const 2868 CRuntime* CColorDialog::GetRuntimeClass()const 2869 CRuntime* CComboBox::GetRuntimeClass()const 2870 CRuntime* CComboBoxEx::GetRuntimeClass()const 2871 CRuntime* CControlBar::GetRuntimeClass()const 2872 CRuntime* CCriticalSection::GetRuntimeClass()const 2873 CRuntime* CCtrlView::GetRuntimeClass()const 2874 CRuntime* CDC::GetRuntimeClass()const 2875 CRuntime* CDialog::GetRuntimeClass()const 2876 CRuntime* CDialogBar::GetRuntimeClass()const 2877 CRuntime* CDockBar::GetRuntimeClass()const 2878 CRuntime* CDockState::GetRuntimeClass()const 2879 CRuntime* CDocManager::GetRuntimeClass()const 2880 CRuntime* CDocTemplate::GetRuntimeClass()const 2881 CRuntime* CDocument::GetRuntimeClass()const 2882 CRuntime* CDragListBox::GetRuntimeClass()const 2883 CRuntime* CDWordArray::GetRuntimeClass()const 2884 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 2885 CRuntime* CEdit::GetRuntimeClass()const 2886 CRuntime* CEditView::GetRuntimeClass()const 2887 CRuntime* CEvent::GetRuntimeClass()const 2888 CRuntime* CException::GetRuntimeClass()const 2889 CRuntime* CFile::GetRuntimeClass()const 2890 CRuntime* CFileDialog::GetRuntimeClass()const 2891 CRuntime* CFileException::GetRuntimeClass()const 2892 CRuntime* CFileFind::GetRuntimeClass()const 2893 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 2894 CRuntime* CFont::GetRuntimeClass()const 2895 CRuntime* CFontDialog::GetRuntimeClass()const 2896 CRuntime* CFormView::GetRuntimeClass()const 2897 CRuntime* CFrameWnd::GetRuntimeClass()const 2898 CRuntime* CFtpConnection::GetRuntimeClass()const 2899 CRuntime* CFtpFileFind::GetRuntimeClass()const 2900 CRuntime* CGdiObject::GetRuntimeClass()const 2901 CRuntime* CGopherConnection::GetRuntimeClass()const 2902 CRuntime* CGopherFile::GetRuntimeClass()const 2903 CRuntime* CGopherFileFind::GetRuntimeClass()const 2904 CRuntime* CHeaderCtrl::GetRuntimeClass()const 2905 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 2906 CRuntime* CHttpConnection::GetRuntimeClass()const 2907 CRuntime* CHttpFile::GetRuntimeClass()const 2908 CRuntime* CImageList::GetRuntimeClass()const 2909 CRuntime* CInternetConnection::GetRuntimeClass()const 2910 CRuntime* CInternetException::GetRuntimeClass()const 2911 CRuntime* CInternetFile::GetRuntimeClass()const 2912 CRuntime* CInternetSession::GetRuntimeClass()const 2913 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 2914 CRuntime* CListBox::GetRuntimeClass()const 2915 CRuntime* CListCtrl::GetRuntimeClass()const 2916 CRuntime* CListView::GetRuntimeClass()const 2917 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 2918 CRuntime* CMapPtrToWord::GetRuntimeClass()const 2919 CRuntime* CMapStringToOb::GetRuntimeClass()const 2920 CRuntime* CMapStringToPtr::GetRuntimeClass()const 2921 CRuntime* CMapStringToString::GetRuntimeClass()const 2922 CRuntime* CMapWordToOb::GetRuntimeClass()const 2923 CRuntime* CMapWordToPtr::GetRuntimeClass()const 2924 CRuntime* CMDIChildWnd::GetRuntimeClass()const 2925 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 2926 CRuntime* CMemFile::GetRuntimeClass()const 2927 CRuntime* CMemoryException::GetRuntimeClass()const 2928 CRuntime* CMenu::GetRuntimeClass()const 2929 CRuntime* CMetaFileDC::GetRuntimeClass()const 2930 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 2931 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 2932 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 2933 CRuntime* CMutex::GetRuntimeClass()const 2934 CRuntime* CNotSupportedException::GetRuntimeClass()const 2935 CRuntime* CObArray::GetRuntimeClass()const 2936 CRuntime* CObject::GetRuntimeClass()const 2937 CRuntime* CObList::GetRuntimeClass()const 2938 CRuntime* CPageSetupDialog::GetRuntimeClass()const 2939 CRuntime* CPaintDC::GetRuntimeClass()const 2940 CRuntime* CPalette::GetRuntimeClass()const 2941 CRuntime* CPen::GetRuntimeClass()const 2942 CRuntime* CPreviewDC::GetRuntimeClass()const 2943 CRuntime* CPreviewView::GetRuntimeClass()const 2944 CRuntime* CPrintDialog::GetRuntimeClass()const 2945 CRuntime* CProgressCtrl::GetRuntimeClass()const 2946 CRuntime* CPropertyPage::GetRuntimeClass()const 2947 CRuntime* CPropertyPageEx::GetRuntimeClass()const 2948 CRuntime* CPropertySheet::GetRuntimeClass()const 2949 CRuntime* CPropertySheetEx::GetRuntimeClass()const 2950 CRuntime* CPtrArray::GetRuntimeClass()const 2951 CRuntime* CPtrList::GetRuntimeClass()const 2952 CRuntime* CReBar::GetRuntimeClass()const 2953 CRuntime* CReBarCtrl::GetRuntimeClass()const 2954 CRuntime* CResourceException::GetRuntimeClass()const 2955 CRuntime* CRgn::GetRuntimeClass()const 2956 CRuntime* CRichEditCtrl::GetRuntimeClass()const 2957 CRuntime* CScrollBar::GetRuntimeClass()const 2958 CRuntime* CScrollView::GetRuntimeClass()const 2959 CRuntime* CSemaphore::GetRuntimeClass()const 2960 CRuntime* CSharedFile::GetRuntimeClass()const 2961 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 2962 CRuntime* CSliderCtrl::GetRuntimeClass()const 2963 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 2964 CRuntime* CSplitterWnd::GetRuntimeClass()const 2965 CRuntime* CStatic::GetRuntimeClass()const 2966 CRuntime* CStatusBar::GetRuntimeClass()const 2967 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 2968 CRuntime* CStdioFile::GetRuntimeClass()const 2969 CRuntime* CStringArray::GetRuntimeClass()const 2970 CRuntime* CStringList::GetRuntimeClass()const 2971 CRuntime* CSyncObject::GetRuntimeClass()const 2972 CRuntime* CTabCtrl::GetRuntimeClass()const 2973 CRuntime* CTempDC::GetRuntimeClass()const 2974 CRuntime* CTempGdiObject::GetRuntimeClass()const 2975 CRuntime* CTempImageList::GetRuntimeClass()const 2976 CRuntime* CTempMenu::GetRuntimeClass()const 2977 CRuntime* CTempWnd::GetRuntimeClass()const 2978 CRuntime* CToolBar::GetRuntimeClass()const 2979 CRuntime* CToolBarCtrl::GetRuntimeClass()const 2980 CRuntime* CToolTipCtrl::GetRuntimeClass()const 2981 CRuntime* CTreeCtrl::GetRuntimeClass()const 2982 CRuntime* CTreeView::GetRuntimeClass()const 2983 CRuntime* CUIntArray::GetRuntimeClass()const 2984 CRuntime* CUserException::GetRuntimeClass()const 2985 CRuntime* CView::GetRuntimeClass()const 2986 CRuntime* CWinApp::GetRuntimeClass()const 2987 CRuntime* CWindowDC::GetRuntimeClass()const 2988 CRuntime* CWinThread::GetRuntimeClass()const 2989 CRuntime* CWnd::GetRuntimeClass()const 2990 CRuntime* CWordArray::GetRuntimeClass()const 2991 void * CGdiObject::GetSafeHandle()const 2992 _IMAGELIST * CImageList::GetSafeHandle()const 2993 HDC__ * CDC::GetSafeHdc()const 2994 HMENU__ * CMenu::GetSafeHmenu()const 2995 HWND__ * CWnd::GetSafeHwnd()const 2996 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 2997 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 2998 unsigned long * CColorDialog::GetSavedCustomColors() 2999 CString CGopherFileFind::GetScreenName()const 3000 CSize CDockState::GetScreenSize() 3001 CScrollBar * CView::GetScrollBarCtrl(int)const 3002 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3003 void CScrollView::GetScrollBarSizes(CSize &) 3004 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3005 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 3006 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3007 int CScrollBar::GetScrollLimit() 3008 int CWnd::GetScrollLimit(int) 3009 int CScrollBar::GetScrollPos()const 3010 int CWnd::GetScrollPos(int)const 3011 CPoint CScrollView::GetScrollPosition()const 3012 void CScrollBar::GetScrollRange(int *,int *)const 3013 void CWnd::GetScrollRange(int,int *,int *)const 3014 unsigned long CSplitterWnd::GetScrollStyle()const 3015 int CTime::GetSecond()const 3016 int CTimeSpan::GetSeconds()const 3017 HKEY__ * CWinApp::GetSectionKey(char const *) 3018 unsigned long CEdit::GetSel()const 3019 void CEdit::GetSel(int &,int &)const 3020 int CListBox::GetSel(int)const 3021 void CRichEditCtrl::GetSel(long &,long &)const 3022 void CRichEditCtrl::GetSel(_charrange &)const 3023 int CListBox::GetSelCount()const 3024 unsigned int CListCtrl::GetSelectedCount()const 3025 _TREEITEM * CTreeCtrl::GetSelectedItem()const 3026 void CEditView::GetSelectedText(CString &)const 3027 void CSliderCtrl::GetSelection(int &,int &)const 3028 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3029 int CListCtrl::GetSelectionMark() 3030 unsigned short CRichEditCtrl::GetSelectionType()const 3031 int CListBox::GetSelItems(int,int *)const 3032 CString CRichEditCtrl::GetSelText()const 3033 long CRichEditCtrl::GetSelText(char *)const 3034 CString CInternetConnection::GetServerName()const 3035 CInternetSession * CInternetConnection::GetSession()const 3036 int CByteArray::GetSize()const 3037 int CDWordArray::GetSize()const 3038 int CFontDialog::GetSize()const 3039 int CObArray::GetSize()const 3040 int CPtrArray::GetSize()const 3041 int CRecentFileList::GetSize()const 3042 int CStringArray::GetSize()const 3043 int CUIntArray::GetSize()const 3044 int CWordArray::GetSize()const 3045 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3046 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3047 CWnd * CSplitterWnd::GetSizingParent() 3048 __POSITION * CFileDialog::GetStartPosition()const 3049 __POSITION * CMapPtrToPtr::GetStartPosition()const 3050 __POSITION * CMapPtrToWord::GetStartPosition()const 3051 __POSITION * CMapStringToOb::GetStartPosition()const 3052 __POSITION * CMapStringToPtr::GetStartPosition()const 3053 __POSITION * CMapStringToString::GetStartPosition()const 3054 __POSITION * CMapWordToOb::GetStartPosition()const 3055 __POSITION * CMapWordToPtr::GetStartPosition()const 3056 unsigned int CButton::GetState()const 3057 int CToolBarCtrl::GetState(int)const 3058 int CFile::GetStatus(CFileStatus &)const 3059 int CFile::GetStatus(char const *,CFileStatus &) 3060 int CMemFile::GetStatus(CFileStatus &)const 3061 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 3062 int CDC::GetStretchBltMode()const 3063 int CListCtrl::GetStringWidth(char const *)const 3064 unsigned long CToolBarCtrl::GetStyle()const 3065 unsigned long CWnd::GetStyle()const 3066 CString CFontDialog::GetStyleName()const 3067 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3068 CMenu * CMenu::GetSubMenu(int)const 3069 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3070 CMenu * CWnd::GetSystemMenu(int)const 3071 CSize CDC::GetTabbedTextExtentA(CString const &,int,int *)const 3072 CSize CDC::GetTabbedTextExtentA(char const *,int,int,int *)const 3073 CTabCtrl * CPropertySheet::GetTabControl()const 3074 CObject * & CObList::GetTail() 3075 CObject * CObList::GetTail()const 3076 void * & CPtrList::GetTail() 3077 void * CPtrList::GetTail()const 3078 CString & CStringList::GetTail() 3079 CString CStringList::GetTail()const 3080 __POSITION * CObList::GetTailPosition()const 3081 __POSITION * CPtrList::GetTailPosition()const 3082 __POSITION * CStringList::GetTailPosition()const 3083 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3084 CString CMirrorFile::GetTempName(char const *,int) 3085 int CListBox::GetText(int,char *)const 3086 void CListBox::GetText(int,CString &)const 3087 CString CStatusBarCtrl::GetText(int,int *)const 3088 int CStatusBarCtrl::GetText(char const *,int,int *)const 3089 void CToolTipCtrl::GetText(CString &,CWnd *,unsigned int)const 3090 unsigned int CDC::GetTextAlign()const 3091 unsigned long CListCtrl::GetTextBkColor()const 3092 int CDC::GetTextCharacterExtra()const 3093 unsigned long CDC::GetTextColor()const 3094 unsigned long CListCtrl::GetTextColor()const 3095 unsigned long CReBarCtrl::GetTextColor()const 3096 unsigned long CTreeCtrl::GetTextColor()const 3097 CSize CDC::GetTextExtent(CString const &)const 3098 CSize CDC::GetTextExtent(char const *,int)const 3099 int CDC::GetTextFaceA(CString &)const 3100 int CDC::GetTextFaceA(int,char *)const 3101 int CListBox::GetTextLen(int)const 3102 long CRichEditCtrl::GetTextLength()const 3103 int CStatusBarCtrl::GetTextLength(int,int *)const 3104 int CDC::GetTextMetricsA(tagTEXTMETRICA *)const 3105 int CWinThread::GetThreadPriority() 3106 void * CThreadSlotData::GetThreadValue(int) 3107 void CSliderCtrl::GetThumbRect(tagRECT *)const 3108 int CSliderCtrl::GetTic(int)const 3109 unsigned long * CSliderCtrl::GetTicArray()const 3110 CTime CTime::GetTickCount() 3111 int CSliderCtrl::GetTicPos(int)const 3112 long CTime::GetTime()const 3113 unsigned long CToolTipCtrl::GetTipBkColor()const 3114 CString CStatusBarCtrl::GetTipText(int)const 3115 unsigned long CToolTipCtrl::GetTipTextColor()const 3116 CString const & CDocument::GetTitle()const 3117 CString CFrameWnd::GetTitle()const 3118 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 3119 int CToolTipCtrl::GetToolCount()const 3120 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3121 CToolTipCtrl * CReBarCtrl::GetToolTips()const 3122 CToolTipCtrl * CSliderCtrl::GetToolTips()const 3123 CToolTipCtrl * CTabCtrl::GetToolTips()const 3124 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 3125 CToolTipCtrl * CTreeCtrl::GetToolTips()const 3126 int CPrintDialog::GetToPage()const 3127 unsigned int CPrintInfo::GetToPage()const 3128 int CComboBox::GetTopIndex()const 3129 int CListBox::GetTopIndex()const 3130 int CListCtrl::GetTopIndex()const 3131 CFrameWnd * CWnd::GetTopLevelFrame()const 3132 CWnd * CWnd::GetTopLevelOwner()const 3133 CWnd * CWnd::GetTopLevelParent()const 3134 CWnd * CWnd::GetTopWindow()const 3135 long CTimeSpan::GetTotalHours()const 3136 long CTimeSpan::GetTotalMinutes()const 3137 long CTimeSpan::GetTotalSeconds()const 3138 CSize CScrollView::GetTotalSize()const 3139 CTreeCtrl & CTreeView::GetTreeCtrl()const 3140 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3141 void CRectTracker::GetTrueRect(tagRECT *)const 3142 unsigned int CCmdTarget::GetTypeInfoCount() 3143 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3144 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3145 int CWnd::GetUpdateRect(tagRECT *,int) 3146 int CWnd::GetUpdateRgn(CRgn *,int) 3147 int CByteArray::GetUpperBound()const 3148 int CDWordArray::GetUpperBound()const 3149 int CObArray::GetUpperBound()const 3150 int CPtrArray::GetUpperBound()const 3151 int CStringArray::GetUpperBound()const 3152 int CUIntArray::GetUpperBound()const 3153 int CWordArray::GetUpperBound()const 3154 void * CMapPtrToPtr::GetValueAt(void *)const 3155 CString CHttpFile::GetVerb()const 3156 unsigned long CDockState::GetVersion() 3157 CSize CDC::GetViewportExt()const 3158 CPoint CDC::GetViewportOrg()const 3159 int CListCtrl::GetViewRect(tagRECT *)const 3160 unsigned int CTreeCtrl::GetVisibleCount()const 3161 int CFontDialog::GetWeight()const 3162 CWnd * CDC::GetWindow()const 3163 CWnd * CWnd::GetWindow(unsigned int)const 3164 unsigned long CWnd::GetWindowContextHelpId()const 3165 CDC * CWnd::GetWindowDC() 3166 CSize CDC::GetWindowExt()const 3167 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3168 CPoint CDC::GetWindowOrg()const 3169 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3170 void CWnd::GetWindowRect(tagRECT *)const 3171 int CWnd::GetWindowRgn(HRGN__ *)const 3172 HTASK__ * GetWindowTask(HWND__ *) 3173 int CWnd::GetWindowTextA(char *,int)const 3174 void CWnd::GetWindowTextA(CString &)const 3175 int CWnd::GetWindowTextLengthA()const 3176 void CListCtrl::GetWorkAreas(int,tagRECT *)const 3177 int CTime::GetYear()const 3178 void CDialog::GotoDlgCtrl(CWnd *) 3179 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3180 int CDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3181 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3182 void CMemFile::GrowFile(unsigned long) 3183 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3184 long CDialog::HandleInitDialog(unsigned int,long) 3185 long CDialogBar::HandleInitDialog(unsigned int,long) 3186 long CFormView::HandleInitDialog(unsigned int,long) 3187 long CPropertySheet::HandleInitDialog(unsigned int,long) 3188 long CDialog::HandleSetFont(unsigned int,long) 3189 int CComboBoxEx::HasEditChanged() 3190 int HasFont(DLGTEMPLATE const *) 3191 int CDialogTemplate::HasFont()const 3192 unsigned int HashKey(char const *) 3193 unsigned int HashKey(unsigned short const *) 3194 unsigned int CMapPtrToPtr::HashKey(void *)const 3195 unsigned int CMapPtrToWord::HashKey(void *)const 3196 unsigned int CMapStringToOb::HashKey(char const *)const 3197 unsigned int CMapStringToPtr::HashKey(char const *)const 3198 unsigned int CMapStringToString::HashKey(char const *)const 3199 unsigned int CMapWordToOb::HashKey(unsigned short)const 3200 unsigned int CMapWordToPtr::HashKey(unsigned short)const 3201 int CRect::Height()const 3202 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 3203 void CWinApp::HideApplication() 3204 int CToolBarCtrl::HideButton(int,int) 3205 void CWnd::HideCaret() 3206 void CFileDialog::HideControl(int) 3207 void CRichEditCtrl::HideSelection(int,int) 3208 int CTabCtrl::HighlightItem(int,int) 3209 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 3210 void CDC::HIMETRICtoDP(tagSIZE *)const 3211 void CDC::HIMETRICtoLP(tagSIZE *)const 3212 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 3213 int CListCtrl::HitTest(CPoint,unsigned int *)const 3214 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 3215 int CRectTracker::HitTest(CPoint)const 3216 int CSplitterWnd::HitTest(CPoint)const 3217 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 3218 int CToolBarCtrl::HitTest(tagPOINT *)const 3219 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 3220 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 3221 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3222 int CRectTracker::HitTestHandles(CPoint)const 3223 int CSplitterWnd::IdFromRowCol(int,int)const 3224 int CReBarCtrl::IDToIndex(unsigned int)const 3225 int CToolBarCtrl::Indeterminate(int,int) 3226 void CRect::InflateRect(int,int) 3227 void CRect::InflateRect(int,int,int,int) 3228 void CRect::InflateRect(tagRECT const *) 3229 void CRect::InflateRect(tagSIZE) 3230 void CString::Init() 3231 int CWinApp::InitApplication() 3232 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3233 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3234 void CMapPtrToWord::InitHashTable(unsigned int,int) 3235 void CMapStringToOb::InitHashTable(unsigned int,int) 3236 void CMapStringToPtr::InitHashTable(unsigned int,int) 3237 void CMapStringToString::InitHashTable(unsigned int,int) 3238 void CMapWordToOb::InitHashTable(unsigned int,int) 3239 void CMapWordToPtr::InitHashTable(unsigned int,int) 3240 void CMiniFrameWnd::Initialize() 3241 int CEditView::InitializeReplace() 3242 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3243 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3244 int CWinApp::InitInstance() 3245 int CWinThread::InitInstance() 3246 void CDockContext::InitLoop() 3247 int CDialog::InitModalIndirect(void *,CWnd *) 3248 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3249 int CComboBox::InitStorage(int,unsigned int) 3250 int CListBox::InitStorage(int,unsigned int) 3251 void CSimpleException::InitString() 3252 int CFrameWnd::InModalState()const 3253 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3254 int CString::Insert(int,char) 3255 int CString::Insert(int,char const *) 3256 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3257 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3258 __POSITION * CStringList::InsertAfter(__POSITION *,CString const &) 3259 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 3260 void CByteArray::InsertAt(int,unsigned char,int) 3261 void CByteArray::InsertAt(int,CByteArray *) 3262 void CDWordArray::InsertAt(int,unsigned long,int) 3263 void CDWordArray::InsertAt(int,CDWordArray *) 3264 void CObArray::InsertAt(int,CObArray *) 3265 void CObArray::InsertAt(int,CObject *,int) 3266 void CPtrArray::InsertAt(int,CPtrArray *) 3267 void CPtrArray::InsertAt(int,void *,int) 3268 void CStringArray::InsertAt(int,CString const &,int) 3269 void CStringArray::InsertAt(int,CStringArray *) 3270 void CStringArray::InsertAt(int,char const *,int) 3271 void CUIntArray::InsertAt(int,unsigned int,int) 3272 void CUIntArray::InsertAt(int,CUIntArray *) 3273 void CWordArray::InsertAt(int,unsigned short,int) 3274 void CWordArray::InsertAt(int,CWordArray *) 3275 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOA *) 3276 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3277 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3278 __POSITION * CStringList::InsertBefore(__POSITION *,CString const &) 3279 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 3280 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 3281 int CListCtrl::InsertColumn(int,char const *,int,int,int) 3282 int CListCtrl::InsertColumn(int,tagLVCOLUMNA const *) 3283 void CStringArray::InsertEmpty(int,int) 3284 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 3285 int CHeaderCtrl::InsertItem(int,_HD_ITEMA *) 3286 int CListCtrl::InsertItem(int,char const *) 3287 int CListCtrl::InsertItem(int,char const *,int) 3288 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 3289 int CListCtrl::InsertItem(tagLVITEMA const *) 3290 int CTabCtrl::InsertItem(int,tagTCITEMA *) 3291 int CTabCtrl::InsertItem(int,char const *) 3292 int CTabCtrl::InsertItem(int,char const *,int) 3293 int CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 3294 int CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 3295 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3296 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTA *) 3297 _TREEITEM * CTreeCtrl::InsertItem(char const *,int,int,_TREEITEM *,_TREEITEM *) 3298 _TREEITEM * CTreeCtrl::InsertItem(char const *,_TREEITEM *,_TREEITEM *) 3299 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 3300 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,char const *) 3301 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 3302 int CComboBox::InsertString(int,char const *) 3303 int CComboBoxEx::InsertString(int,char const *) 3304 int CListBox::InsertString(int,char const *) 3305 AFX_INTERFACEMAP const CCmdTarget::interfaceMap 3306 int CDC::IntersectClipRect(int,int,int,int) 3307 int CDC::IntersectClipRect(tagRECT const *) 3308 int CRect::IntersectRect(tagRECT const *,tagRECT const *) 3309 void CWnd::Invalidate(int) 3310 void CCheckListBox::InvalidateCheck(int) 3311 void CCheckListBox::InvalidateItem(int) 3312 void CWnd::InvalidateRect(tagRECT const *,int) 3313 void CWnd::InvalidateRgn(CRgn *,int) 3314 void CDC::InvertRect(tagRECT const *) 3315 int CDC::InvertRgn(CRgn *) 3316 void CMiniFrameWnd::InvertSysMenu() 3317 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3318 int CFileFind::IsArchived()const 3319 int CIPAddressCtrl::IsBlank()const 3320 int CFontDialog::IsBold()const 3321 int CArchive::IsBufferEmpty()const 3322 int CToolBarCtrl::IsButtonChecked(int)const 3323 int CPropertyPage::IsButtonEnabled(int) 3324 int CToolBarCtrl::IsButtonEnabled(int)const 3325 int CToolBarCtrl::IsButtonHidden(int)const 3326 int CToolBarCtrl::IsButtonHighlighted(int)const 3327 int CToolBarCtrl::IsButtonIndeterminate(int)const 3328 int CToolBarCtrl::IsButtonPressed(int)const 3329 int IsButtonUp(tagMSG *) 3330 int CArchive::IsByteSwapping()const 3331 int CWnd::IsChild(CWnd const *)const 3332 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 3333 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3334 int CFileFind::IsCompressed()const 3335 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3336 int IsDialogEx(DLGTEMPLATE const *) 3337 int CWnd::IsDialogMessageA(tagMSG *) 3338 int CFileFind::IsDirectory()const 3339 int IsDirSep(char) 3340 unsigned int CWnd::IsDlgButtonChecked(int)const 3341 int CControlBar::IsDockBar()const 3342 int CDockBar::IsDockBar()const 3343 int CFileFind::IsDots()const 3344 int CGopherFileFind::IsDots()const 3345 int CMapPtrToPtr::IsEmpty()const 3346 int CMapPtrToWord::IsEmpty()const 3347 int CMapStringToOb::IsEmpty()const 3348 int CMapStringToPtr::IsEmpty()const 3349 int CMapStringToString::IsEmpty()const 3350 int CMapWordToOb::IsEmpty()const 3351 int CMapWordToPtr::IsEmpty()const 3352 int CObList::IsEmpty()const 3353 int CPtrList::IsEmpty()const 3354 int CSimpleList::IsEmpty()const 3355 int CString::IsEmpty()const 3356 int CStringList::IsEmpty()const 3357 int CCheckListBox::IsEnabled(int) 3358 int IsEnterKey(tagMSG *) 3359 int IsEqualGUID(_GUID const &,_GUID const &) 3360 int CControlBar::IsFloating()const 3361 int CFrameWnd::IsFrameWnd()const 3362 int CWnd::IsFrameWnd()const 3363 int IsHelpKey(tagMSG *) 3364 int CFileFind::IsHidden()const 3365 int CWnd::IsIconic()const 3366 int CWinThread::IsIdleMessage(tagMSG *) 3367 int CCmdTarget::IsInvokeAllowed(long) 3368 int CFontDialog::IsItalic()const 3369 int CObject::IsKindOf(CRuntimeconst *)const 3370 int CArchive::IsLoading()const 3371 int CMultiLock::IsLocked(unsigned long) 3372 int CSingleLock::IsLocked() 3373 int CDocument::IsModified() 3374 int CFileFind::IsNormal()const 3375 int CDC::IsPrinting()const 3376 int CFileFind::IsReadOnly()const 3377 int CRect::IsRectEmpty()const 3378 int CRect::IsRectNull()const 3379 int CView::IsSelected(CObject const *)const 3380 int CObject::IsSerializable()const 3381 int CStatusBarCtrl::IsSimple()const 3382 int CArchive::IsStoring()const 3383 int CFontDialog::IsStrikeOut()const 3384 int CFileFind::IsSystem()const 3385 int CFileFind::IsTemporary()const 3386 int CFindReplaceDialog::IsTerminating()const 3387 int CWnd::IsTopParentActive()const 3388 int CFrameWnd::IsTracking()const 3389 int CSplitterWnd::IsTracking() 3390 int CFontDialog::IsUnderline()const 3391 int CControlBar::IsVisible()const 3392 int CWnd::IsWindowEnabled()const 3393 int CWnd::IsWindowVisible()const 3394 int CPropertySheet::IsWizard()const 3395 int CWnd::IsZoomed()const 3396 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3397 int CDragListBox::ItemFromPt(CPoint,int)const 3398 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3399 unsigned short * CToolBarData::items() 3400 int CWnd::KillTimer(int) 3401 int CHeaderCtrl::Layout(_HD_LAYOUT *) 3402 void CToolBar::Layout() 3403 CString CString::Left(int)const 3404 int CComboBox::LimitText(int) 3405 void CEdit::LimitText(int) 3406 void CRichEditCtrl::LimitText(long) 3407 int CEdit::LineFromChar(int)const 3408 long CRichEditCtrl::LineFromChar(long)const 3409 int CEdit::LineIndex(int)const 3410 int CRichEditCtrl::LineIndex(int)const 3411 int CEdit::LineLength(int)const 3412 int CRichEditCtrl::LineLength(int)const 3413 void CEdit::LineScroll(int,int) 3414 void CRichEditCtrl::LineScroll(int,int) 3415 int CDC::LineTo(int,int) 3416 int CDC::LineTo(tagPOINT) 3417 int CDialogTemplate::Load(char const *) 3418 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 3419 int CFrameWnd::LoadAccelTable(char const *) 3420 void CFrameWnd::LoadBarState(char const *) 3421 int CBitmap::LoadBitmapA(unsigned int) 3422 int CBitmap::LoadBitmapA(char const *) 3423 int CToolBar::LoadBitmapA(unsigned int) 3424 int CToolBar::LoadBitmapA(char const *) 3425 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 3426 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 3427 HICON__ * CWinApp::LoadCursorA(unsigned int)const 3428 HICON__ * CWinApp::LoadCursorA(char const *)const 3429 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3430 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3431 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3432 HICON__ * CWinApp::LoadIconA(unsigned int)const 3433 HICON__ * CWinApp::LoadIconA(char const *)const 3434 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 3435 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 3436 int CMenu::LoadMenuA(unsigned int) 3437 int CMenu::LoadMenuA(char const *) 3438 int CMenu::LoadMenuIndirectA(void const *) 3439 int CBitmap::LoadOEMBitmap(unsigned int) 3440 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 3441 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 3442 HICON__ * CWinApp::LoadStandardCursor(char const *)const 3443 HICON__ * CWinApp::LoadStandardIcon(char const *)const 3444 int CControlBarInfo::LoadState(char const *,int,CDockState *) 3445 void CDockState::LoadState(char const *) 3446 void CWinApp::LoadStdProfileSettings(unsigned int) 3447 int CString::LoadStringA(unsigned int) 3448 void CDocTemplate::LoadTemplate() 3449 void CMultiDocTemplate::LoadTemplate() 3450 int CToolBar::LoadToolBar(unsigned int) 3451 int CToolBar::LoadToolBar(char const *) 3452 int CCriticalSection::Lock() 3453 int CCriticalSection::Lock(unsigned long) 3454 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 3455 int CSingleLock::Lock(unsigned long) 3456 int CSyncObject::Lock(unsigned long) 3457 char const * CEditView::LockBuffer()const 3458 char * CString::LockBuffer() 3459 void CFile::LockRange(unsigned long,unsigned long) 3460 void CInternetFile::LockRange(unsigned long,unsigned long) 3461 void CMemFile::LockRange(unsigned long,unsigned long) 3462 void CStdioFile::LockRange(unsigned long,unsigned long) 3463 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 3464 int CWnd::LockWindowUpdate() 3465 int CMapPtrToPtr::Lookup(void *,void * &)const 3466 int CMapPtrToWord::Lookup(void *,unsigned short &)const 3467 int CMapStringToOb::Lookup(char const *,CObject * &)const 3468 int CMapStringToPtr::Lookup(char const *,void * &)const 3469 int CMapStringToString::Lookup(char const *,CString &)const 3470 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 3471 int CMapWordToPtr::Lookup(unsigned short,void * &)const 3472 int CMapStringToOb::LookupKey(char const *,char const * &)const 3473 int CMapStringToPtr::LookupKey(char const *,char const * &)const 3474 int CMapStringToString::LookupKey(char const *,char const * &)const 3475 CObject * CHandleMap::LookupPermanent(void *) 3476 CObject * CHandleMap::LookupTemporary(void *) 3477 void CDC::LPtoDP(tagPOINT *,int)const 3478 void CDC::LPtoDP(tagRECT *)const 3479 void CDC::LPtoDP(tagSIZE *)const 3480 void CDC::LPtoHIMETRIC(tagSIZE *)const 3481 void CString::MakeLower() 3482 void CString::MakeReverse() 3483 void CString::MakeUpper() 3484 int CToolBarCtrl::MapAccelerator(char,unsigned int *) 3485 void CDialog::MapDialogRect(tagRECT *)const 3486 void CArchive::MapObject(CObject const *) 3487 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 3488 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 3489 long CPropertyPage::MapWizardResult(long) 3490 int CToolBarCtrl::MarkButton(int,int) 3491 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 3492 int CFindReplaceDialog::MatchCase()const 3493 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 3494 int CFileFind::MatchesMask(unsigned long)const 3495 int CFindReplaceDialog::MatchWholeWord()const 3496 void CReBarCtrl::MaximizeBand(unsigned int) 3497 void CMDIChildWnd::MDIActivate() 3498 void CMDIFrameWnd::MDIActivate(CWnd *) 3499 void CMDIFrameWnd::MDICascade(int) 3500 void CMDIFrameWnd::MDICascade() 3501 void CMDIChildWnd::MDIDestroy() 3502 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 3503 void CMDIFrameWnd::MDIIconArrange() 3504 void CMDIChildWnd::MDIMaximize() 3505 void CMDIFrameWnd::MDIMaximize(CWnd *) 3506 void CMDIFrameWnd::MDINext() 3507 void CMDIChildWnd::MDIRestore() 3508 void CMDIFrameWnd::MDIRestore(CWnd *) 3509 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 3510 void CMDIFrameWnd::MDITile(int) 3511 void CMDIFrameWnd::MDITile() 3512 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 3513 void CComboBox::MeasureItem(tagMEASUREITEM*) 3514 void CListBox::MeasureItem(tagMEASUREITEM*) 3515 void CMenu::MeasureItem(tagMEASUREITEM*) 3516 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned int) 3517 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 3518 AFX_MSGMAP const CCheckListBox::messageMap 3519 AFX_MSGMAP const CCmdTarget::messageMap 3520 AFX_MSGMAP const CColorDialog::messageMap 3521 AFX_MSGMAP const CCommonDialog::messageMap 3522 AFX_MSGMAP const CControlBar::messageMap 3523 AFX_MSGMAP const CCtrlView::messageMap 3524 AFX_MSGMAP const CDialog::messageMap 3525 AFX_MSGMAP const CDialogBar::messageMap 3526 AFX_MSGMAP const CDockBar::messageMap 3527 AFX_MSGMAP const CDocument::messageMap 3528 AFX_MSGMAP const CEditView::messageMap 3529 AFX_MSGMAP const CFormView::messageMap 3530 AFX_MSGMAP const CFrameWnd::messageMap 3531 AFX_MSGMAP const CListCtrl::messageMap 3532 AFX_MSGMAP const CListView::messageMap 3533 AFX_MSGMAP const CMDIChildWnd::messageMap 3534 AFX_MSGMAP const CMDIFrameWnd::messageMap 3535 AFX_MSGMAP const CMiniDockFrameWnd::messageMap 3536 AFX_MSGMAP const CMiniFrameWnd::messageMap 3537 AFX_MSGMAP const CPreviewView::messageMap 3538 AFX_MSGMAP const CPrintDialog::messageMap 3539 AFX_MSGMAP const CPropertyPage::messageMap 3540 AFX_MSGMAP const CPropertySheet::messageMap 3541 AFX_MSGMAP const CReBar::messageMap 3542 AFX_MSGMAP const CScrollView::messageMap 3543 AFX_MSGMAP const CSplitterWnd::messageMap 3544 AFX_MSGMAP const CStatusBar::messageMap 3545 AFX_MSGMAP const CTabCtrl::messageMap 3546 AFX_MSGMAP const CToolBar::messageMap 3547 AFX_MSGMAP const CToolBarCtrl::messageMap 3548 AFX_MSGMAP const CToolTipCtrl::messageMap 3549 AFX_MSGMAP const CTreeCtrl::messageMap 3550 AFX_MSGMAP const CTreeView::messageMap 3551 AFX_MSGMAP const CView::messageMap 3552 AFX_MSGMAP const CWinApp::messageMap 3553 AFX_MSGMAP const CWnd::messageMap 3554 CString CString::Mid(int)const 3555 CString CString::Mid(int,int)const 3556 void CReBarCtrl::MinimizeBand(unsigned int) 3557 void CPreviewDC::MirrorAttributes() 3558 void CPreviewDC::MirrorFont() 3559 void CPreviewDC::MirrorMappingMode(int) 3560 void CPreviewDC::MirrorViewportOrg() 3561 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,char const *) 3562 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 3563 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 3564 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 3565 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 3566 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 3567 void CDockContext::Move(CPoint) 3568 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 3569 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 3570 CPoint CDC::MoveTo(int,int) 3571 CPoint CDC::MoveTo(tagPOINT) 3572 void CWnd::MoveWindow(int,int,int,int,int) 3573 void CWnd::MoveWindow(tagRECT const *,int) 3574 CRect CRect::MulDiv(int,int)const 3575 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 3576 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 3577 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 3578 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 3579 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 3580 CMapStringToString::CAssoc * CMapStringToString::NewAssoc() 3581 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 3582 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 3583 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 3584 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 3585 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 3586 void CDialog::NextDlgCtrl()const 3587 unsigned int const CEditView::nMaxSize 3588 int CRectTracker::NormalizeHit(int)const 3589 void CRect::NormalizeRect() 3590 void CFrameWnd::NotifyFloatingWindows(unsigned long) 3591 void CString::OemToCharA() 3592 void CPoint::Offset(int,int) 3593 void CPoint::Offset(tagPOINT) 3594 void CPoint::Offset(tagSIZE) 3595 int CDC::OffsetClipRgn(int,int) 3596 int CDC::OffsetClipRgn(tagSIZE) 3597 int CProgressCtrl::OffsetPos(int) 3598 void CRect::OffsetRect(int,int) 3599 void CRect::OffsetRect(tagPOINT) 3600 void CRect::OffsetRect(tagSIZE) 3601 int CRgn::OffsetRgn(int,int) 3602 int CRgn::OffsetRgn(tagPOINT) 3603 CPoint CDC::OffsetViewportOrg(int,int) 3604 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 3605 CPoint CPreviewDC::OffsetViewportOrg(int,int) 3606 CPoint CDC::OffsetWindowOrg(int,int) 3607 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 3608 void CWnd::OnActivate(unsigned int,CWnd *,int) 3609 void CWnd::OnActivateApp(int,HTASK__ *) 3610 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 3611 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 3612 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 3613 long CWnd::OnActivateTopLevel(unsigned int,long) 3614 void CFormView::OnActivateView(int,CView *,CView *) 3615 void CPreviewView::OnActivateView(int,CView *,CView *) 3616 void CView::OnActivateView(int,CView *,CView *) 3617 long CToolTipCtrl::OnAddTool(unsigned int,long) 3618 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 3619 void CWinApp::OnAppExit() 3620 int CPropertyPage::OnApply() 3621 void CWnd::OnAskCbFormatName(unsigned int,char *) 3622 int CFrameWnd::OnBarCheck(unsigned int) 3623 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 3624 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 3625 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 3626 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 3627 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 3628 void CCommonDialog::OnCancel() 3629 void CDialog::OnCancel() 3630 void CPropertyPage::OnCancel() 3631 void CSplitterWnd::OnCancelMode() 3632 void CWnd::OnCancelMode() 3633 void CWnd::OnCaptureChanged(CWnd *) 3634 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 3635 void CRectTracker::OnChangedRect(CRect const &) 3636 void CDocument::OnChangedViewList() 3637 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 3638 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 3639 void CWnd::OnChildActivate() 3640 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 3641 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3642 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3643 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3644 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3645 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3646 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3647 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 3648 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 3649 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3650 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3651 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 3652 void CFrameWnd::OnClose() 3653 void CMiniDockFrameWnd::OnClose() 3654 void CPropertySheet::OnClose() 3655 void CWnd::OnClose() 3656 void CDocument::OnCloseDocument() 3657 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3658 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3659 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3660 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3661 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3662 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3663 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3664 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3665 int CColorDialog::OnColorOK() 3666 int CFrameWnd::OnCommand(unsigned int,long) 3667 int CMDIFrameWnd::OnCommand(unsigned int,long) 3668 int CPropertySheet::OnCommand(unsigned int,long) 3669 int CSplitterWnd::OnCommand(unsigned int,long) 3670 int CWnd::OnCommand(unsigned int,long) 3671 long CDialog::OnCommandHelp(unsigned int,long) 3672 long CFrameWnd::OnCommandHelp(unsigned int,long) 3673 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 3674 long CPropertySheet::OnCommandHelp(unsigned int,long) 3675 void CWnd::OnCompacting(unsigned int) 3676 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 3677 void CFrameWnd::OnContextHelp() 3678 void CWinApp::OnContextHelp() 3679 void CWnd::OnContextMenu(CWnd *,CPoint) 3680 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 3681 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 3682 int CControlBar::OnCreate(tagCREATESTRUCTA *) 3683 int CEditView::OnCreate(tagCREATESTRUCTA *) 3684 int CFormView::OnCreate(tagCREATESTRUCTA *) 3685 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 3686 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 3687 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 3688 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 3689 int CView::OnCreate(tagCREATESTRUCTA *) 3690 int CWnd::OnCreate(tagCREATESTRUCTA *) 3691 int CCmdTarget::OnCreateAggregates() 3692 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 3693 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 3694 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 3695 HBRUSH__ * CColorDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 3696 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 3697 HBRUSH__ * CDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 3698 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 3699 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 3700 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 3701 int CDocManager::OnDDECommand(char *) 3702 int CWinApp::OnDDECommand(char *) 3703 long CFrameWnd::OnDDEExecute(unsigned int,long) 3704 long CFrameWnd::OnDDEInitiate(unsigned int,long) 3705 long CFrameWnd::OnDDETerminate(unsigned int,long) 3706 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 3707 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 3708 void CControlBar::OnDestroy() 3709 void CEditView::OnDestroy() 3710 void CFrameWnd::OnDestroy() 3711 void CMDIChildWnd::OnDestroy() 3712 void CMDIFrameWnd::OnDestroy() 3713 void CTabCtrl::OnDestroy() 3714 void CTreeCtrl::OnDestroy() 3715 void CTreeView::OnDestroy() 3716 void CView::OnDestroy() 3717 void CWnd::OnDestroy() 3718 void CWnd::OnDestroyClipboard() 3719 int CWnd::OnDeviceChange(unsigned int,unsigned long) 3720 void CWnd::OnDevModeChange(char *) 3721 long CToolTipCtrl::OnDisableModal(unsigned int,long) 3722 void CSplitterWnd::OnDisplayChange() 3723 long CWnd::OnDisplayChange(unsigned int,long) 3724 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 3725 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 3726 void CView::OnDragLeave() 3727 long CWnd::OnDragList(unsigned int,long) 3728 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 3729 unsigned long CView::OnDragScroll(unsigned long,CPoint) 3730 void CCtrlView::OnDraw(CDC *) 3731 void CFormView::OnDraw(CDC *) 3732 void CPreviewView::OnDraw(CDC *) 3733 void CView::OnDraw(CDC *) 3734 void CWnd::OnDrawClipboard() 3735 void CWnd::OnDrawItem(int,tagDRAWITEM*) 3736 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 3737 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 3738 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 3739 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 3740 void CFrameWnd::OnDropFiles(HDROP__ *) 3741 void CWnd::OnDropFiles(HDROP__ *) 3742 int CEditView::OnEditChange() 3743 void CEditView::OnEditClear() 3744 void CEditView::OnEditCopy() 3745 void CEditView::OnEditCut() 3746 void CEditView::OnEditFind() 3747 void CEditView::OnEditFindReplace(int) 3748 void CEditView::OnEditPaste() 3749 void CEditView::OnEditRepeat() 3750 void CEditView::OnEditReplace() 3751 void CEditView::OnEditSelectAll() 3752 void CEditView::OnEditUndo() 3753 void CFrameWnd::OnEnable(int) 3754 void CToolTipCtrl::OnEnable(int) 3755 void CWnd::OnEnable(int) 3756 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 3757 void CView::OnEndPrinting(CDC *,CPrintInfo *) 3758 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 3759 void CFrameWnd::OnEndSession(int) 3760 void CWnd::OnEndSession(int) 3761 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 3762 void CWnd::OnEnterIdle(unsigned int,CWnd *) 3763 void CWnd::OnEnterMenuLoop(int) 3764 int CFrameWnd::OnEraseBkgnd(CDC *) 3765 int CPreviewView::OnEraseBkgnd(CDC *) 3766 int CReBar::OnEraseBkgnd(CDC *) 3767 int CToolBar::OnEraseBkgnd(CDC *) 3768 int CWnd::OnEraseBkgnd(CDC *) 3769 void CWnd::OnExitMenuLoop(int) 3770 void CDocument::OnFileClose() 3771 void CFileDialog::OnFileNameChange() 3772 int CFileDialog::OnFileNameOK() 3773 void CDocManager::OnFileNew() 3774 void CWinApp::OnFileNew() 3775 void CDocManager::OnFileOpen() 3776 void CWinApp::OnFileOpen() 3777 void CView::OnFilePrint() 3778 void CView::OnFilePrintPreview() 3779 void CWinApp::OnFilePrintSetup() 3780 void CDocument::OnFileSave() 3781 void CDocument::OnFileSaveAs() 3782 void CDocument::OnFileSendMail() 3783 void COleDocument::OnFileSendMail() 3784 void CCmdTarget::OnFinalRelease() 3785 void CDocument::OnFinalRelease() 3786 void CWnd::OnFinalRelease() 3787 void CEditView::OnFindNext(char const *,int,int) 3788 long CEditView::OnFindReplaceCmd(unsigned int,long) 3789 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 3790 void CFileDialog::OnFolderChange() 3791 void CWnd::OnFontChange() 3792 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 3793 unsigned int CWnd::OnGetDlgCode() 3794 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 3795 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 3796 long CMiniFrameWnd::OnGetText(unsigned int,long) 3797 long CStatusBar::OnGetText(unsigned int,long) 3798 long CMiniFrameWnd::OnGetTextLength(unsigned int,long) 3799 long CStatusBar::OnGetTextLength(unsigned int,long) 3800 HBRUSH__ * CWnd::OnGrayCtlColor(CDC *,CWnd *,unsigned int) 3801 void CReBar::OnHeightChange(tagNMHDR *,long *) 3802 void CFrameWnd::OnHelp() 3803 void CWinApp::OnHelp() 3804 void CWnd::OnHelp() 3805 void CWinApp::OnHelpFinder() 3806 void CWnd::OnHelpFinder() 3807 long CControlBar::OnHelpHitTest(unsigned int,long) 3808 long CDialog::OnHelpHitTest(unsigned int,long) 3809 long CFrameWnd::OnHelpHitTest(unsigned int,long) 3810 void CWinApp::OnHelpIndex() 3811 void CWnd::OnHelpIndex() 3812 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 3813 int CWnd::OnHelpInfo(tagHELPINFO *) 3814 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 3815 void CWinApp::OnHelpUsing() 3816 void CWnd::OnHelpUsing() 3817 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3818 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3819 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3820 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3821 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3822 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 3823 void CWnd::OnIconEraseBkgnd(CDC *) 3824 void CDocTemplate::OnIdle() 3825 void CDocument::OnIdle() 3826 int CWinApp::OnIdle(long) 3827 int CWinThread::OnIdle(long) 3828 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 3829 void CFrameWnd::OnIdleUpdateCmdUI() 3830 void CMDIFrameWnd::OnIdleUpdateCmdUI() 3831 int CDialog::OnInitDialog() 3832 int CPropertySheet::OnInitDialog() 3833 void CFileDialog::OnInitDone() 3834 void CControlBar::OnInitialUpdate() 3835 void CFormView::OnInitialUpdate() 3836 void CView::OnInitialUpdate() 3837 void CFrameWnd::OnInitMenu(CMenu *) 3838 void CWnd::OnInitMenu(CMenu *) 3839 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 3840 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 3841 void CSplitterWnd::OnInvertTracker(CRect const &) 3842 void CDockContext::OnKey(int,int) 3843 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 3844 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 3845 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 3846 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 3847 int CPropertyPage::OnKillActive() 3848 void CWnd::OnKillFocus(CWnd *) 3849 long CCheckListBox::OnLBAddString(unsigned int,long) 3850 long CCheckListBox::OnLBFindString(unsigned int,long) 3851 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 3852 long CCheckListBox::OnLBGetItemData(unsigned int,long) 3853 long CCheckListBox::OnLBGetText(unsigned int,long) 3854 long CCheckListBox::OnLBInsertString(unsigned int,long) 3855 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 3856 long CCheckListBox::OnLBSelectString(unsigned int,long) 3857 long CCheckListBox::OnLBSetItemData(unsigned int,long) 3858 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 3859 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 3860 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 3861 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 3862 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 3863 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 3864 void CControlBar::OnLButtonDown(unsigned int,CPoint) 3865 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 3866 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 3867 void CWnd::OnLButtonDown(unsigned int,CPoint) 3868 void CMiniFrameWnd::OnLButtonUp(unsigned int,CPoint) 3869 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 3870 void CWnd::OnLButtonUp(unsigned int,CPoint) 3871 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 3872 void CWnd::OnMButtonDown(unsigned int,CPoint) 3873 void CWnd::OnMButtonUp(unsigned int,CPoint) 3874 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 3875 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 3876 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 3877 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 3878 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 3879 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 3880 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 3881 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 3882 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3883 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3884 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3885 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3886 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3887 void CMiniFrameWnd::OnMouseMove(unsigned int,CPoint) 3888 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 3889 void CWnd::OnMouseMove(unsigned int,CPoint) 3890 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 3891 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 3892 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 3893 void CWnd::OnMove(int,int) 3894 void CWnd::OnMoving(unsigned int,tagRECT *) 3895 int CFrameWnd::OnNcActivate(int) 3896 int CMDIChildWnd::OnNcActivate(int) 3897 int CMiniFrameWnd::OnNcActivate(int) 3898 int CWnd::OnNcActivate(int) 3899 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3900 void CMiniFrameWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3901 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3902 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3903 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3904 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3905 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 3906 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 3907 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 3908 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 3909 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 3910 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 3911 int CWnd::OnNcCreate(tagCREATESTRUCTA *) 3912 void CListCtrl::OnNcDestroy() 3913 void CListView::OnNcDestroy() 3914 void CWnd::OnNcDestroy() 3915 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 3916 unsigned int CStatusBar::OnNcHitTest(CPoint) 3917 unsigned int CToolBar::OnNcHitTest(CPoint) 3918 unsigned int CWnd::OnNcHitTest(CPoint) 3919 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 3920 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 3921 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 3922 void CMiniFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 3923 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 3924 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 3925 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 3926 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 3927 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 3928 void CWnd::OnNcMouseMove(unsigned int,CPoint) 3929 void CDockBar::OnNcPaint() 3930 void CMiniFrameWnd::OnNcPaint() 3931 void CReBar::OnNcPaint() 3932 void CStatusBar::OnNcPaint() 3933 void CToolBar::OnNcPaint() 3934 void CWnd::OnNcPaint() 3935 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 3936 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 3937 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 3938 int CDocument::OnNewDocument() 3939 void CPreviewView::OnNextPage() 3940 int CView::OnNextPaneCmd(unsigned int) 3941 int CFileDialog::OnNotify(unsigned int,long,long *) 3942 int CPropertyPage::OnNotify(unsigned int,long,long *) 3943 int CSplitterWnd::OnNotify(unsigned int,long,long *) 3944 int CWnd::OnNotify(unsigned int,long,long *) 3945 long CWnd::OnNTCtlColor(unsigned int,long) 3946 void CPreviewView::OnNumPageChange() 3947 void CCommonDialog::OnOK() 3948 void CDialog::OnOK() 3949 void CPropertyPage::OnOK() 3950 int CDocument::OnOpenDocument(char const *) 3951 int CWinApp::OnOpenRecentFile(unsigned int) 3952 void CControlBar::OnPaint() 3953 void CCtrlView::OnPaint() 3954 void CDockBar::OnPaint() 3955 void CReBar::OnPaint() 3956 void CSplitterWnd::OnPaint() 3957 void CStatusBar::OnPaint() 3958 void CToolBar::OnPaint() 3959 void CView::OnPaint() 3960 void CWnd::OnPaint() 3961 void CWnd::OnPaintClipboard(CWnd *,void *) 3962 void CFrameWnd::OnPaletteChanged(CWnd *) 3963 void CWnd::OnPaletteChanged(CWnd *) 3964 void CWnd::OnPaletteIsChanging(CWnd *) 3965 void CWnd::OnParentNotify(unsigned int,long) 3966 long CFrameWnd::OnPopMessageString(unsigned int,long) 3967 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 3968 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 3969 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 3970 void CView::OnPrepareDC(CDC *,CPrintInfo *) 3971 int CEditView::OnPreparePrinting(CPrintInfo *) 3972 int CView::OnPreparePrinting(CPrintInfo *) 3973 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 3974 void CPreviewView::OnPreviewClose() 3975 void CPreviewView::OnPreviewPrint() 3976 void CPreviewView::OnPrevPage() 3977 void CEditView::OnPrint(CDC *,CPrintInfo *) 3978 void CView::OnPrint(CDC *,CPrintInfo *) 3979 void CPrintDialog::OnPrintSetup() 3980 long CWnd::OnQuery3dControls(unsigned int,long) 3981 int CPropertyPage::OnQueryCancel() 3982 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 3983 HICON__ * CWnd::OnQueryDragIcon() 3984 int CFrameWnd::OnQueryEndSession() 3985 int CWnd::OnQueryEndSession() 3986 int CFrameWnd::OnQueryNewPalette() 3987 int CWnd::OnQueryNewPalette() 3988 int CWnd::OnQueryOpen() 3989 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 3990 void CWnd::OnRButtonDown(unsigned int,CPoint) 3991 void CWnd::OnRButtonUp(unsigned int,CPoint) 3992 void CReBar::OnRecalcParent() 3993 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 3994 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 3995 void CWnd::OnRenderAllFormats() 3996 void CWnd::OnRenderFormat(unsigned int) 3997 void CEditView::OnReplaceAll(char const *,char const *,int) 3998 void CEditView::OnReplaceSel(char const *,int,int,char const *) 3999 void CPropertyPage::OnReset() 4000 int CDocument::OnSaveDocument(char const *) 4001 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4002 int CView::OnScroll(unsigned int,unsigned int,int) 4003 int CScrollView::OnScrollBy(CSize,int) 4004 int CView::OnScrollBy(CSize,int) 4005 int CPropertyPage::OnSetActive() 4006 long CToolBar::OnSetBitmapSize(unsigned int,long) 4007 long CToolBar::OnSetButtonSize(unsigned int,long) 4008 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4009 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4010 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4011 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4012 long CPropertySheet::OnSetDefID(unsigned int,long) 4013 void CFormView::OnSetFocus(CWnd *) 4014 void CFrameWnd::OnSetFocus(CWnd *) 4015 void CWnd::OnSetFocus(CWnd *) 4016 long CCheckListBox::OnSetFont(unsigned int,long) 4017 void CDialog::OnSetFont(CFont *) 4018 long CEditView::OnSetFont(unsigned int,long) 4019 long CFrameWnd::OnSetMessageString(unsigned int,long) 4020 long CStatusBar::OnSetMinHeight(unsigned int,long) 4021 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4022 long CToolBar::OnSetSizeHelper(CSize &,long) 4023 long CMiniFrameWnd::OnSetText(unsigned int,long) 4024 long CStatusBar::OnSetText(unsigned int,long) 4025 void CWnd::OnSettingChange(unsigned int,char const *) 4026 unsigned int CFileDialog::OnShareViolation(char const *) 4027 long CReBar::OnShowBand(unsigned int,long) 4028 void CWnd::OnShowWindow(int,unsigned int) 4029 void CFrameWnd::OnSize(unsigned int,int,int) 4030 void CMDIChildWnd::OnSize(unsigned int,int,int) 4031 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4032 void CPreviewView::OnSize(unsigned int,int,int) 4033 void CScrollView::OnSize(unsigned int,int,int) 4034 void CSplitterWnd::OnSize(unsigned int,int,int) 4035 void CStatusBar::OnSize(unsigned int,int,int) 4036 void CWnd::OnSize(unsigned int,int,int) 4037 void CWnd::OnSizeClipboard(CWnd *,void *) 4038 long CControlBar::OnSizeParent(unsigned int,long) 4039 long CDockBar::OnSizeParent(unsigned int,long) 4040 void CWnd::OnSizing(unsigned int,tagRECT *) 4041 int CView::OnSplitCmd(unsigned int) 4042 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 4043 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4044 void CWnd::OnStyleChanged(int,tagSTYLE*) 4045 void CWnd::OnStyleChanging(int,tagSTYLE*) 4046 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 4047 void CToolBar::OnSysColorChange() 4048 void CWnd::OnSysColorChange() 4049 void CFrameWnd::OnSysCommand(unsigned int,long) 4050 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4051 void CPropertySheet::OnSysCommand(unsigned int,long) 4052 void CSplitterWnd::OnSysCommand(unsigned int,long) 4053 void CWnd::OnSysCommand(unsigned int,long) 4054 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 4055 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4056 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4057 void CWnd::OnTCard(unsigned int,unsigned long) 4058 void CEditView::OnTextNotFound(char const *) 4059 void CWnd::OnTimeChange() 4060 void CControlBar::OnTimer(unsigned int) 4061 void CWnd::OnTimer(unsigned int) 4062 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4063 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4064 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4065 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4066 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4067 void CFileDialog::OnTypeChange() 4068 void CView::OnUpdate(CView *,long,CObject *) 4069 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4070 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4071 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4072 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4073 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4074 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4075 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4076 void CEditView::OnUpdateEditUndo(CCmdUI *) 4077 void CDocument::OnUpdateFileSendMail(CCmdUI *) 4078 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4079 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 4080 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4081 void CFrameWnd::OnUpdateFrameTitle(int) 4082 void CMDIChildWnd::OnUpdateFrameTitle(int) 4083 void CMDIFrameWnd::OnUpdateFrameTitle(int) 4084 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 4085 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 4086 void CEditView::OnUpdateNeedClip(CCmdUI *) 4087 void CEditView::OnUpdateNeedFind(CCmdUI *) 4088 void CEditView::OnUpdateNeedSel(CCmdUI *) 4089 void CEditView::OnUpdateNeedText(CCmdUI *) 4090 void CPreviewView::OnUpdateNextPage(CCmdUI *) 4091 void CView::OnUpdateNextPaneMenu(CCmdUI *) 4092 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 4093 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 4094 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 4095 void CView::OnUpdateSplitCmd(CCmdUI *) 4096 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 4097 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 4098 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 4099 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4100 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4101 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4102 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4103 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4104 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 4105 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 4106 void CMDIFrameWnd::OnWindowNew() 4107 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 4108 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 4109 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 4110 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 4111 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 4112 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 4113 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 4114 void CWnd::OnWinIniChange(char const *) 4115 long CPropertyPage::OnWizardBack() 4116 int CPropertyPage::OnWizardFinish() 4117 long CPropertyPage::OnWizardNext() 4118 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 4119 void CPreviewView::OnZoomIn() 4120 void CPreviewView::OnZoomOut() 4121 int CAnimateCtrl::Open(unsigned int) 4122 int CAnimateCtrl::Open(char const *) 4123 int CFile::Open(char const *,unsigned int,CFileException *) 4124 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 4125 int CStdioFile::Open(char const *,unsigned int,CFileException *) 4126 int CWnd::OpenClipboard() 4127 CDocument * CDocManager::OpenDocumentFile(char const *) 4128 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 4129 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 4130 CDocument * CWinApp::OpenDocumentFile(char const *) 4131 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 4132 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 4133 int CWnd::OpenIcon() 4134 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 4135 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 4136 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 4137 int CHeaderCtrl::OrderToIndex(int)const 4138 int CFileException::OsErrorToException(long) 4139 void CDumpContext::OutputString(char const *) 4140 int CEditView::PaginateTo(CDC *,CPrintInfo *) 4141 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 4142 int CDC::PaintRgn(CRgn *) 4143 void CWinApp::ParseCommandLine(CCommandLineInfo &) 4144 void CCommandLineInfo::ParseLast(int) 4145 void CCommandLineInfo::ParseParam(char const *,int,int) 4146 void CCommandLineInfo::ParseParamFlag(char const *) 4147 void CCommandLineInfo::ParseParamNotFlag(char const *) 4148 void CComboBox::Paste() 4149 void CEdit::Paste() 4150 void CRichEditCtrl::Paste() 4151 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 4152 int CDC::PatBlt(int,int,int,int,unsigned long) 4153 int CDC::Pie(int,int,int,int,int,int,int,int) 4154 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 4155 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 4156 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 4157 int CDC::PlayMetaFile(HMETAFILE__ *) 4158 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 4159 int CDC::PolyBezier(tagPOINT const *,int) 4160 int CDC::PolyBezierTo(tagPOINT const *,int) 4161 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 4162 int CDC::Polygon(tagPOINT *,int) 4163 int CDC::Polyline(tagPOINT *,int) 4164 int CDC::PolylineTo(tagPOINT const *,int) 4165 int CDC::PolyPolygon(tagPOINT *,int *,int) 4166 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 4167 void CToolTipCtrl::Pop() 4168 CPoint CEdit::PosFromChar(unsigned int)const 4169 void CPreviewView::PositionPage(unsigned int) 4170 int CWnd::PostMessageA(unsigned int,unsigned int,long) 4171 void CDialog::PostModal() 4172 void CControlBar::PostNcDestroy() 4173 void CFindReplaceDialog::PostNcDestroy() 4174 void CFrameWnd::PostNcDestroy() 4175 void CView::PostNcDestroy() 4176 void CWnd::PostNcDestroy() 4177 int CWinThread::PostThreadMessageA(unsigned int,unsigned int,long) 4178 void CDocument::PreCloseFrame(CFrameWnd *) 4179 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 4180 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 4181 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 4182 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 4183 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4184 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 4185 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 4186 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4187 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4188 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 4189 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 4190 int CView::PreCreateWindow(tagCREATESTRUCTA &) 4191 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 4192 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 4193 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 4194 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 4195 void CDialog::PreInitDialog() 4196 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 4197 HWND__ * CDialog::PreModal() 4198 HWND__ * CDataExchange::PrepareCtrl(int) 4199 HWND__ * CDataExchange::PrepareEditCtrl(int) 4200 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 4201 int CPropertySheet::PressButton(int) 4202 int CToolBarCtrl::PressButton(int,int) 4203 void CCheckListBox::PreSubclassWindow() 4204 void CDragListBox::PreSubclassWindow() 4205 void CWnd::PreSubclassWindow() 4206 int CWnd::PreTranslateInput(tagMSG *) 4207 int CControlBar::PreTranslateMessage(tagMSG *) 4208 int CDialog::PreTranslateMessage(tagMSG *) 4209 int CFormView::PreTranslateMessage(tagMSG *) 4210 int CFrameWnd::PreTranslateMessage(tagMSG *) 4211 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 4212 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 4213 int CPropertyPage::PreTranslateMessage(tagMSG *) 4214 int CPropertySheet::PreTranslateMessage(tagMSG *) 4215 int CWinThread::PreTranslateMessage(tagMSG *) 4216 int CWnd::PreTranslateMessage(tagMSG *) 4217 void CDialog::PrevDlgCtrl()const 4218 void CWnd::Print(CDC *,unsigned long)const 4219 int CPrintDialog::PrintAll()const 4220 void CWnd::PrintClient(CDC *,unsigned long)const 4221 int CPrintDialog::PrintCollate()const 4222 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 4223 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 4224 int CPrintDialog::PrintRange()const 4225 int CPrintDialog::PrintSelection()const 4226 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 4227 int CWinThread::ProcessMessageFilter(int,tagMSG *) 4228 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 4229 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 4230 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 4231 int CRect::PtInRect(tagPOINT)const 4232 int CRgn::PtInRegion(int,int)const 4233 int CRgn::PtInRegion(tagPOINT)const 4234 int CDC::PtVisible(tagPOINT)const 4235 int CDC::PtVisible(int,int)const 4236 int CMetaFileDC::PtVisible(tagPOINT)const 4237 int CMetaFileDC::PtVisible(int,int)const 4238 int CEvent::PulseEvent() 4239 int CWinThread::PumpMessage() 4240 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 4241 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 4242 int CHttpFile::QueryInfo(unsigned long,CString &,unsigned long *)const 4243 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 4244 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 4245 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 4246 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 4247 int CInternetConnection::QueryOption(unsigned long,CString &)const 4248 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 4249 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 4250 int CInternetFile::QueryOption(unsigned long,CString &)const 4251 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 4252 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 4253 int CInternetSession::QueryOption(unsigned long,CString &)const 4254 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 4255 long CPropertyPage::QuerySiblings(unsigned int,long) 4256 unsigned int CArchive::Read(void *,unsigned int) 4257 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 4258 unsigned int CFile::Read(void *,unsigned int) 4259 int CImageList::Read(CArchive *) 4260 unsigned int CInternetFile::Read(void *,unsigned int) 4261 unsigned int CMemFile::Read(void *,unsigned int) 4262 unsigned int CStdioFile::Read(void *,unsigned int) 4263 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 4264 unsigned long CArchive::ReadCount() 4265 void CEditView::ReadFromArchive(CArchive &,unsigned int) 4266 unsigned long CFile::ReadHuge(void *,unsigned long) 4267 void CRecentFileList::ReadList() 4268 CObject * CArchive::ReadObject(CRuntimeconst *) 4269 int CArchive::ReadString(CString &) 4270 char * CArchive::ReadString(char *,unsigned int) 4271 int CInternetFile::ReadString(CString &) 4272 char * CInternetFile::ReadString(char *,unsigned int) 4273 int CStdioFile::ReadString(CString &) 4274 char * CStdioFile::ReadString(char *,unsigned int) 4275 unsigned int CDC::RealizePalette() 4276 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 4277 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 4278 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 4279 void CFrameWnd::RecalcLayout(int) 4280 void CMiniDockFrameWnd::RecalcLayout(int) 4281 void CSplitterWnd::RecalcLayout() 4282 int CDC::Rectangle(int,int,int,int) 4283 int CDC::Rectangle(tagRECT const *) 4284 CRect const CFrameWnd::rectDefault 4285 int CRgn::RectInRegion(tagRECT const *)const 4286 int CDC::RectVisible(tagRECT const *)const 4287 int CMetaFileDC::RectVisible(tagRECT const *)const 4288 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 4289 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 4290 int CListCtrl::RedrawItems(int,int) 4291 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 4292 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 4293 int CWnd::ReflectLastMsg(HWND__ *,long *) 4294 void CDocManager::RegisterShellFileTypes(int) 4295 void CWinApp::RegisterShellFileTypes(int) 4296 void CWinApp::RegisterShellFileTypesCompat() 4297 void CToolTipCtrl::RelayEvent(tagMSG *) 4298 unsigned long CArchiveStream::Release() 4299 void CString::Release() 4300 void CString::Release(CStringData *) 4301 void CDC::ReleaseAttribDC() 4302 void CString::ReleaseBuffer(int) 4303 int CWnd::ReleaseDC(CDC *) 4304 void CDocument::ReleaseFile(CFile *,int) 4305 void CDC::ReleaseOutputDC() 4306 void CMetaFileDC::ReleaseOutputDC() 4307 void CPreviewDC::ReleaseOutputDC() 4308 int CTypedSimpleList::Remove(CThreadData *) 4309 int CTypedSimpleList::Remove(CDynLinkLibrary *) 4310 int CTypedSimpleList::Remove(CFrameWnd *) 4311 void CFile::Remove(char const *) 4312 int CFtpConnection::Remove(char const *) 4313 int CImageList::Remove(int) 4314 void CRecentFileList::Remove(int) 4315 int CSimpleList::Remove(void *) 4316 int CString::Remove(char) 4317 void CByteArray::RemoveAll() 4318 void CDWordArray::RemoveAll() 4319 void CMapPtrToPtr::RemoveAll() 4320 void CMapPtrToWord::RemoveAll() 4321 void CMapStringToOb::RemoveAll() 4322 void CMapStringToPtr::RemoveAll() 4323 void CMapStringToString::RemoveAll() 4324 void CMapWordToOb::RemoveAll() 4325 void CMapWordToPtr::RemoveAll() 4326 void CObArray::RemoveAll() 4327 void CObList::RemoveAll() 4328 void CPtrArray::RemoveAll() 4329 void CPtrList::RemoveAll() 4330 void CStringArray::RemoveAll() 4331 void CStringList::RemoveAll() 4332 void CTypeLibCacheMap::RemoveAll(void *) 4333 void CUIntArray::RemoveAll() 4334 void CWordArray::RemoveAll() 4335 void CByteArray::RemoveAt(int,int) 4336 void CDWordArray::RemoveAt(int,int) 4337 void CObArray::RemoveAt(int,int) 4338 void CObList::RemoveAt(__POSITION *) 4339 void CPtrArray::RemoveAt(int,int) 4340 void CPtrList::RemoveAt(__POSITION *) 4341 void CStringArray::RemoveAt(int,int) 4342 void CStringList::RemoveAt(__POSITION *) 4343 void CUIntArray::RemoveAt(int,int) 4344 void CWordArray::RemoveAt(int,int) 4345 int CDockBar::RemoveControlBar(CControlBar *,int,int) 4346 void CFrameWnd::RemoveControlBar(CControlBar *) 4347 int CFtpConnection::RemoveDirectoryA(char const *) 4348 void CDocTemplate::RemoveDocument(CDocument *) 4349 void CMultiDocTemplate::RemoveDocument(CDocument *) 4350 void CSingleDocTemplate::RemoveDocument(CDocument *) 4351 void CFrameWnd::RemoveFrameWnd() 4352 void CHandleMap::RemoveHandle(void *) 4353 CObject * CObList::RemoveHead() 4354 void * CPtrList::RemoveHead() 4355 CString CStringList::RemoveHead() 4356 void CTabCtrl::RemoveImage(int) 4357 void CListCtrl::RemoveImageList(int) 4358 void CListView::RemoveImageList(int) 4359 void CTreeCtrl::RemoveImageList(int) 4360 void CTreeView::RemoveImageList(int) 4361 int CMapPtrToPtr::RemoveKey(void *) 4362 int CMapPtrToWord::RemoveKey(void *) 4363 int CMapStringToOb::RemoveKey(char const *) 4364 int CMapStringToPtr::RemoveKey(char const *) 4365 int CMapStringToString::RemoveKey(char const *) 4366 int CMapWordToOb::RemoveKey(unsigned short) 4367 int CMapWordToPtr::RemoveKey(unsigned short) 4368 int CMenu::RemoveMenu(unsigned int,unsigned int) 4369 void CPropertySheet::RemovePage(int) 4370 void CPropertySheet::RemovePage(CPropertyPage *) 4371 void CDockBar::RemovePlaceHolder(CControlBar *) 4372 CObject * CObList::RemoveTail() 4373 void * CPtrList::RemoveTail() 4374 CString CStringList::RemoveTail() 4375 void CDocument::RemoveView(CView *) 4376 void CFile::Rename(char const *,char const *) 4377 int CFtpConnection::Rename(char const *,char const *) 4378 int CImageList::Replace(int,HICON__ *) 4379 int CImageList::Replace(int,CBitmap *,CBitmap *) 4380 int CString::Replace(char,char) 4381 int CString::Replace(char const *,char const *) 4382 int CFindReplaceDialog::ReplaceAll()const 4383 int CFindReplaceDialog::ReplaceCurrent()const 4384 void CEdit::ReplaceSel(char const *,int) 4385 void CRichEditCtrl::ReplaceSel(char const *,int) 4386 int CException::ReportError(unsigned int,unsigned int) 4387 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 4388 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 4389 void CRichEditCtrl::RequestResize() 4390 void CComboBox::ResetContent() 4391 void CListBox::ResetContent() 4392 int CDC::ResetDCA(_devicemodeA const *) 4393 int CEvent::ResetEvent() 4394 void CControlBar::ResetTimer(unsigned int,unsigned int) 4395 int CPalette::ResizePalette(unsigned int) 4396 void CScrollView::ResizeParentToFit(int) 4397 void CWaitCursor::Restore() 4398 int CDC::RestoreDC(int) 4399 int CPreviewDC::RestoreDC(int) 4400 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 4401 void CCmdTarget::RestoreWaitCursor() 4402 unsigned long CWinThread::ResumeThread() 4403 int CString::ReverseFind(char)const 4404 long CArchiveStream::Revert() 4405 CString CString::Right(int)const 4406 int CDC::RoundRect(int,int,int,int,int,int) 4407 int CDC::RoundRect(tagRECT const *,tagPOINT) 4408 int CWinApp::Run() 4409 int CWinThread::Run() 4410 int CWnd::RunModalLoop(unsigned long) 4411 int CString::SafeStrlen(char const *) 4412 int CEditView::SameAsSelected(char const *,int) 4413 int CDocManager::SaveAllModified() 4414 int CDocTemplate::SaveAllModified() 4415 int CWinApp::SaveAllModified() 4416 void CFrameWnd::SaveBarState(char const *)const 4417 int CDC::SaveDC() 4418 int CPreviewDC::SaveDC() 4419 int CFormView::SaveFocusControl() 4420 int CDocument::SaveModified() 4421 int CControlBarInfo::SaveState(char const *,int) 4422 void CDockState::SaveState(char const *) 4423 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 4424 void CWinApp::SaveStdProfileSettings() 4425 void CDockState::ScalePoint(CPoint &) 4426 void CDockState::ScaleRectPos(CRect &) 4427 CSize CDC::ScaleViewportExt(int,int,int,int) 4428 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 4429 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 4430 CSize CDC::ScaleWindowExt(int,int,int,int) 4431 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 4432 void CWnd::ScreenToClient(tagPOINT *)const 4433 void CWnd::ScreenToClient(tagRECT *)const 4434 int CListCtrl::Scroll(CSize) 4435 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 4436 void CScrollView::ScrollToDevicePosition(tagPOINT) 4437 void CScrollView::ScrollToPosition(tagPOINT) 4438 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 4439 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 4440 int CFindReplaceDialog::SearchDown()const 4441 int CAnimateCtrl::Seek(unsigned int) 4442 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 4443 long CFile::Seek(long,unsigned int) 4444 long CInternetFile::Seek(long,unsigned int) 4445 long CMemFile::Seek(long,unsigned int) 4446 long CStdioFile::Seek(long,unsigned int) 4447 void CFile::SeekToBegin() 4448 unsigned long CFile::SeekToEnd() 4449 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 4450 int CDC::SelectClipPath(int) 4451 int CDC::SelectClipRgn(CRgn *) 4452 int CDC::SelectClipRgn(CRgn *,int) 4453 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 4454 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 4455 int CTreeCtrl::SelectItem(_TREEITEM *) 4456 int CDC::SelectObject(CRgn *) 4457 CBitmap * CDC::SelectObject(CBitmap *) 4458 CBrush * CDC::SelectObject(CBrush *) 4459 CGdiObject * CDC::SelectObject(CGdiObject *) 4460 CPen * CDC::SelectObject(CPen *) 4461 void * CDC::SelectObject(void *) 4462 CFont * CDC::SelectObject(CFont *) 4463 CFont * CPreviewDC::SelectObject(CFont *) 4464 CPalette * CDC::SelectPalette(CPalette *,int) 4465 void CWinApp::SelectPrinter(void *,void *,int) 4466 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 4467 CGdiObject * CDC::SelectStockObject(int) 4468 CGdiObject * CPreviewDC::SelectStockObject(int) 4469 int CComboBox::SelectString(int,char const *) 4470 int CListBox::SelectString(int,char const *) 4471 int CListBox::SelItemRange(int,int,int) 4472 int CWnd::SendChildNotifyLastMsg(long *) 4473 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 4474 void CDocument::SendInitialUpdate() 4475 long CWnd::SendMessageA(unsigned int,unsigned int,long) 4476 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 4477 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 4478 int CWnd::SendNotifyMessageA(unsigned int,unsigned int,long) 4479 int CHttpFile::SendRequest(CString &,void *,unsigned long) 4480 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 4481 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 4482 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 4483 void CByteArray::Serialize(CArchive &) 4484 void CControlBarInfo::Serialize(CArchive &,CDockState *) 4485 void CDockState::Serialize(CArchive &) 4486 void CDWordArray::Serialize(CArchive &) 4487 void CEditView::Serialize(CArchive &) 4488 void CMapStringToOb::Serialize(CArchive &) 4489 void CMapStringToString::Serialize(CArchive &) 4490 void CMapWordToOb::Serialize(CArchive &) 4491 void CObArray::Serialize(CArchive &) 4492 void CObject::Serialize(CArchive &) 4493 void CObList::Serialize(CArchive &) 4494 void CStringArray::Serialize(CArchive &) 4495 void CStringList::Serialize(CArchive &) 4496 void CWordArray::Serialize(CArchive &) 4497 void CArchive::SerializeClass(CRuntimeconst *) 4498 void SerializeElements(CArchive &,CString *,int) 4499 void CEditView::SerializeRaw(CArchive &) 4500 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 4501 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 4502 int CPropertySheet::SetActivePage(int) 4503 int CPropertySheet::SetActivePage(CPropertyPage *) 4504 void CSplitterWnd::SetActivePane(int,int,CWnd *) 4505 void CFrameWnd::SetActiveView(CView *,int) 4506 CWnd * CWnd::SetActiveWindow() 4507 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 4508 void CIPAddressCtrl::SetAddress(unsigned long) 4509 int CToolBarCtrl::SetAnchorHighlight(int) 4510 void CListBox::SetAnchorIndex(int) 4511 int CDC::SetArcDirection(int) 4512 void CByteArray::SetAt(int,unsigned char) 4513 void CDWordArray::SetAt(int,unsigned long) 4514 void CMapPtrToPtr::SetAt(void *,void *) 4515 void CMapPtrToWord::SetAt(void *,unsigned short) 4516 void CMapStringToOb::SetAt(char const *,CObject *) 4517 void CMapStringToPtr::SetAt(char const *,void *) 4518 void CMapStringToString::SetAt(char const *,char const *) 4519 void CMapWordToOb::SetAt(unsigned short,CObject *) 4520 void CMapWordToPtr::SetAt(unsigned short,void *) 4521 void CObArray::SetAt(int,CObject *) 4522 void CObList::SetAt(__POSITION *,CObject *) 4523 void CPtrArray::SetAt(int,void *) 4524 void CPtrList::SetAt(__POSITION *,void *) 4525 void CString::SetAt(int,char) 4526 void CStringArray::SetAt(int,CString const &) 4527 void CStringArray::SetAt(int,char const *) 4528 void CStringList::SetAt(__POSITION *,CString const &) 4529 void CStringList::SetAt(__POSITION *,char const *) 4530 void CUIntArray::SetAt(int,unsigned int) 4531 void CWordArray::SetAt(int,unsigned short) 4532 void CByteArray::SetAtGrow(int,unsigned char) 4533 void CDWordArray::SetAtGrow(int,unsigned long) 4534 void CObArray::SetAtGrow(int,CObject *) 4535 void CPtrArray::SetAtGrow(int,void *) 4536 void CStringArray::SetAtGrow(int,CString const &) 4537 void CStringArray::SetAtGrow(int,char const *) 4538 void CUIntArray::SetAtGrow(int,unsigned int) 4539 void CWordArray::SetAtGrow(int,unsigned short) 4540 void CDC::SetAttribDC(HDC__ *) 4541 void CMetaFileDC::SetAttribDC(HDC__ *) 4542 void CPreviewDC::SetAttribDC(HDC__ *) 4543 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 4544 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOA *) 4545 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 4546 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 4547 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 4548 void CControlBar::SetBarStyle(unsigned long) 4549 int CSpinButtonCtrl::SetBase(int) 4550 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 4551 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 4552 int CToolBar::SetBitmap(HBITMAP__ *) 4553 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 4554 CSize CBitmap::SetBitmapDimension(int,int) 4555 int CToolBarCtrl::SetBitmapSize(CSize) 4556 unsigned long CDC::SetBkColor(unsigned long) 4557 unsigned long CImageList::SetBkColor(unsigned long) 4558 int CListCtrl::SetBkColor(unsigned long) 4559 unsigned long CPreviewDC::SetBkColor(unsigned long) 4560 unsigned long CReBarCtrl::SetBkColor(unsigned long) 4561 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 4562 unsigned long CTreeCtrl::SetBkColor(unsigned long) 4563 int CListCtrl::SetBkImage(char *,int,int,int) 4564 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 4565 int CListCtrl::SetBkImage(tagLVBKIMAGEA *) 4566 int CDC::SetBkMode(int) 4567 void CControlBar::SetBorders(int,int,int,int) 4568 void CControlBar::SetBorders(tagRECT const *) 4569 void CStatusBar::SetBorders(int,int,int,int) 4570 void CStatusBar::SetBorders(tagRECT const *) 4571 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 4572 CPoint CDC::SetBrushOrg(int,int) 4573 CPoint CDC::SetBrushOrg(tagPOINT) 4574 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 4575 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 4576 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 4577 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOA *) 4578 int CToolBar::SetButtons(unsigned int const *,int) 4579 int CToolBarCtrl::SetButtonSize(CSize) 4580 void CToolBarCtrl::SetButtonStructSize(int) 4581 void CButton::SetButtonStyle(unsigned int,int) 4582 void CToolBar::SetButtonStyle(int,unsigned int) 4583 int CToolBar::SetButtonText(int,char const *) 4584 int CToolBarCtrl::SetButtonWidth(int,int) 4585 int CListCtrl::SetCallbackMask(unsigned int) 4586 CWnd * CWnd::SetCapture() 4587 int CListBox::SetCaretIndex(int,int) 4588 void CWnd::SetCaretPos(tagPOINT) 4589 void CButton::SetCheck(int) 4590 void CCheckListBox::SetCheck(int,int) 4591 void CCmdUI::SetCheck(int) 4592 int CListCtrl::SetCheck(int,int) 4593 void CStatusCmdUI::SetCheck(int) 4594 void CTestCmdUI::SetCheck(int) 4595 void CToolCmdUI::SetCheck(int) 4596 int CTreeCtrl::SetCheck(_TREEITEM *,int) 4597 void CCheckListBox::SetCheckStyle(unsigned int) 4598 HWND__ * CWnd::SetClipboardViewer() 4599 int CToolBarCtrl::SetCmdID(int,unsigned int) 4600 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 4601 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 4602 int CListCtrl::SetColumn(int,tagLVCOLUMNA const *) 4603 void CSplitterWnd::SetColumnInfo(int,int,int) 4604 int CListCtrl::SetColumnOrderArray(int,int *) 4605 void CListBox::SetColumnWidth(int) 4606 int CListCtrl::SetColumnWidth(int,int) 4607 void CDocTemplate::SetContainerInfo(unsigned int) 4608 void CFileDialog::SetControlText(int,char const *) 4609 int CInternetSession::SetCookie(char const *,char const *,char const *) 4610 void CTabCtrl::SetCurFocus(int) 4611 void CColorDialog::SetCurrentColor(unsigned long) 4612 int CFtpConnection::SetCurrentDirectoryA(char const *) 4613 void CWinApp::SetCurrentHandles() 4614 void CPreviewView::SetCurrentPage(unsigned int,int) 4615 int CComboBox::SetCurSel(int) 4616 int CListBox::SetCurSel(int) 4617 int CTabCtrl::SetCurSel(int) 4618 HICON__ * CButton::SetCursor(HICON__ *) 4619 int CRectTracker::SetCursor(CWnd *,unsigned int)const 4620 HICON__ * CStatic::SetCursor(HICON__ *) 4621 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 4622 int CMenu::SetDefaultItem(unsigned int,int) 4623 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 4624 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 4625 void CFileDialog::SetDefExt(char const *) 4626 void CDialog::SetDefID(unsigned int) 4627 void CToolTipCtrl::SetDelayTime(unsigned int) 4628 void CToolTipCtrl::SetDelayTime(unsigned long,int) 4629 void CDumpContext::SetDepth(int) 4630 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 4631 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 4632 int CWnd::SetDlgCtrlID(int) 4633 void CWnd::SetDlgItemInt(int,unsigned int,int) 4634 void CWnd::SetDlgItemTextA(int,char const *) 4635 void CFrameWnd::SetDockState(CDockState const &) 4636 int CImageList::SetDragCursorImage(int,CPoint) 4637 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 4638 int CComboBox::SetDroppedWidth(unsigned int) 4639 int CComboBox::SetEditSel(int,int) 4640 int CComboBoxEx::SetEditSel(int,int) 4641 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 4642 int CEvent::SetEvent() 4643 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 4644 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 4645 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 4646 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 4647 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 4648 int CComboBox::SetExtendedUI(int) 4649 void CIPAddressCtrl::SetFieldFocus(unsigned short) 4650 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 4651 void CFile::SetFilePath(char const *) 4652 void CPropertySheet::SetFinishText(char const *) 4653 CWnd * CWnd::SetFocus() 4654 int CDialogTemplate::SetFont(char const *,unsigned short) 4655 void CWnd::SetFont(CFont *,int) 4656 int CWnd::SetForegroundWindow() 4657 void CEdit::SetHandle(void *) 4658 void CSharedFile::SetHandle(void *,int) 4659 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 4660 void CToolBar::SetHeight(int) 4661 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 4662 void CDialog::SetHelpID(unsigned int) 4663 void CComboBox::SetHorizontalExtent(unsigned int) 4664 void CListBox::SetHorizontalExtent(int) 4665 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 4666 int CHeaderCtrl::SetHotDivider(int) 4667 int CHeaderCtrl::SetHotDivider(CPoint) 4668 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 4669 int CListCtrl::SetHotItem(int) 4670 int CToolBarCtrl::SetHotItem(int) 4671 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 4672 unsigned long CListCtrl::SetHoverTime(unsigned long) 4673 HICON__ * CButton::SetIcon(HICON__ *) 4674 HICON__ * CStatic::SetIcon(HICON__ *) 4675 int CStatusBarCtrl::SetIcon(int,HICON__ *) 4676 HICON__ * CWnd::SetIcon(HICON__ *,int) 4677 CSize CListCtrl::SetIconSpacing(int,int) 4678 CSize CListCtrl::SetIconSpacing(CSize) 4679 int CImageList::SetImageCount(unsigned int) 4680 CImageList * CComboBoxEx::SetImageList(CImageList *) 4681 CImageList * CHeaderCtrl::SetImageList(CImageList *) 4682 CImageList * CListCtrl::SetImageList(CImageList *,int) 4683 int CReBarCtrl::SetImageList(CImageList *) 4684 CImageList * CTabCtrl::SetImageList(CImageList *) 4685 CImageList * CToolBarCtrl::SetImageList(CImageList *) 4686 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 4687 int CToolBarCtrl::SetIndent(int) 4688 void CTreeCtrl::SetIndent(unsigned int) 4689 int CStatusBar::SetIndicators(unsigned int const *,int) 4690 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 4691 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 4692 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 4693 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 4694 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 4695 int CHeaderCtrl::SetItem(int,_HD_ITEMA *) 4696 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 4697 int CListCtrl::SetItem(tagLVITEMA const *) 4698 int CTabCtrl::SetItem(int,tagTCITEMA *) 4699 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 4700 int CTreeCtrl::SetItem(tagTVITEMA *) 4701 void CListCtrl::SetItemCount(int) 4702 int CListCtrl::SetItemCountEx(int,unsigned long) 4703 int CComboBox::SetItemData(int,unsigned long) 4704 int CListBox::SetItemData(int,unsigned long) 4705 int CListCtrl::SetItemData(int,unsigned long) 4706 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 4707 int CComboBox::SetItemDataPtr(int,void *) 4708 int CListBox::SetItemDataPtr(int,void *) 4709 int CTabCtrl::SetItemExtra(int) 4710 int CComboBox::SetItemHeight(int,unsigned int) 4711 int CListBox::SetItemHeight(int,unsigned int) 4712 short CTreeCtrl::SetItemHeight(short) 4713 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 4714 int CListCtrl::SetItemPosition(int,tagPOINT) 4715 CSize CTabCtrl::SetItemSize(CSize) 4716 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 4717 int CListCtrl::SetItemState(int,tagLVITEMA *) 4718 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 4719 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 4720 int CListCtrl::SetItemText(int,int,char const *) 4721 int CTreeCtrl::SetItemText(_TREEITEM *,char const *) 4722 unsigned long CDC::SetLayout(unsigned long) 4723 void CFile::SetLength(unsigned long) 4724 void CInternetFile::SetLength(unsigned long) 4725 void CMemFile::SetLength(unsigned long) 4726 void CEdit::SetLimitText(unsigned int) 4727 int CSliderCtrl::SetLineSize(int) 4728 void CArchive::SetLoadParams(unsigned int) 4729 unsigned long CComboBox::SetLocale(unsigned long) 4730 unsigned long CListBox::SetLocale(unsigned long) 4731 int CDC::SetMapMode(int) 4732 int CPreviewDC::SetMapMode(int) 4733 unsigned long CDC::SetMapperFlags(unsigned long) 4734 void CToolTipCtrl::SetMargin(tagRECT *) 4735 void CEdit::SetMargins(unsigned int,unsigned int) 4736 void CPrintInfo::SetMaxPage(unsigned int) 4737 int CToolBarCtrl::SetMaxTextRows(int) 4738 int CToolTipCtrl::SetMaxTipWidth(int) 4739 int CWnd::SetMenu(CMenu *) 4740 int CMenu::SetMenuContextHelpId(unsigned long) 4741 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 4742 void CFrameWnd::SetMessageText(unsigned int) 4743 void CFrameWnd::SetMessageText(char const *) 4744 void CStatusBarCtrl::SetMinHeight(int) 4745 void CPrintInfo::SetMinPage(unsigned int) 4746 int CTabCtrl::SetMinTabWidth(int) 4747 int CDC::SetMiterLimit(float) 4748 void CPropertyPage::SetModified(int) 4749 void CDocument::SetModifiedFlag(int) 4750 void CEdit::SetModify(int) 4751 void CRichEditCtrl::SetModify(int) 4752 void CArchive::SetObjectSchema(unsigned int) 4753 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4754 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4755 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4756 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4757 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 4758 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 4759 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 4760 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 4761 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 4762 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 4763 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 4764 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 4765 int CHeaderCtrl::SetOrderArray(int,int *) 4766 void CDC::SetOutputDC(HDC__ *) 4767 void CMetaFileDC::SetOutputDC(HDC__ *) 4768 void CPreviewDC::SetOutputDC(HDC__ *) 4769 int CImageList::SetOverlayImage(int,int) 4770 CWnd * CReBarCtrl::SetOwner(CWnd *) 4771 void CToolBar::SetOwner(CWnd *) 4772 void CToolBarCtrl::SetOwner(CWnd *) 4773 void CWnd::SetOwner(CWnd *) 4774 void CTabCtrl::SetPadding(CSize) 4775 int CSliderCtrl::SetPageSize(int) 4776 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 4777 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 4778 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 4779 void CStatusBar::SetPaneStyle(int,unsigned int) 4780 int CStatusBar::SetPaneText(int,char const *,int) 4781 int CRichEditCtrl::SetParaFormat(_paraformat &) 4782 CWnd * CWnd::SetParent(CWnd *) 4783 int CStatusBarCtrl::SetParts(int,int *) 4784 void CEdit::SetPasswordChar(char) 4785 void CDocument::SetPathName(char const *,int) 4786 void CHandleMap::SetPermanent(void *,CObject *) 4787 unsigned long CDC::SetPixel(int,int,unsigned long) 4788 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 4789 int CDC::SetPixelV(int,int,unsigned long) 4790 int CDC::SetPixelV(tagPOINT,unsigned long) 4791 int CDC::SetPolyFillMode(int) 4792 int CProgressCtrl::SetPos(int) 4793 void CSliderCtrl::SetPos(int) 4794 int CSpinButtonCtrl::SetPos(int) 4795 void CEditView::SetPrinterFont(CFont *) 4796 int CPreviewView::SetPrintView(CView *) 4797 void CWnd::SetProperty(long,unsigned short,...) 4798 void CCmdUI::SetRadio(int) 4799 void CTestCmdUI::SetRadio(int) 4800 void CProgressCtrl::SetRange(short,short) 4801 void CSliderCtrl::SetRange(int,int,int) 4802 void CSpinButtonCtrl::SetRange(int,int) 4803 void CProgressCtrl::SetRange32(int,int) 4804 void CSpinButtonCtrl::SetRange32(int,int) 4805 void CSliderCtrl::SetRangeMax(int,int) 4806 void CSliderCtrl::SetRangeMin(int,int) 4807 int CInternetFile::SetReadBufferSize(unsigned int) 4808 int CEdit::SetReadOnly(int) 4809 int CRichEditCtrl::SetReadOnly(int) 4810 void CEdit::SetRect(tagRECT const *) 4811 void CRect::SetRect(int,int,int,int) 4812 void CRect::SetRect(tagPOINT,tagPOINT) 4813 void CRichEditCtrl::SetRect(tagRECT const *) 4814 void CRect::SetRectEmpty() 4815 void CEdit::SetRectNP(tagRECT const *) 4816 void CRgn::SetRectRgn(int,int,int,int) 4817 void CRgn::SetRectRgn(tagRECT const *) 4818 void CWnd::SetRedraw(int) 4819 void CWinApp::SetRegistryKey(unsigned int) 4820 void CWinApp::SetRegistryKey(char const *) 4821 int CDC::SetROP2(int) 4822 void CSplitterWnd::SetRowInfo(int,int,int) 4823 void CToolBarCtrl::SetRows(int,int,tagRECT *) 4824 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 4825 void CPreviewView::SetScaledSize(unsigned int) 4826 void CPreviewDC::SetScaleRatio(int,int) 4827 void CScrollView::SetScaleToFitSize(tagSIZE) 4828 void CDockState::SetScreenSize(CSize &) 4829 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 4830 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 4831 int CScrollBar::SetScrollPos(int,int) 4832 int CWnd::SetScrollPos(int,int,int) 4833 void CScrollBar::SetScrollRange(int,int,int) 4834 void CWnd::SetScrollRange(int,int,int,int) 4835 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 4836 void CSplitterWnd::SetScrollStyle(unsigned long) 4837 void CEdit::SetSel(int,int,int) 4838 void CEdit::SetSel(unsigned long,int) 4839 int CListBox::SetSel(int,int) 4840 void CRichEditCtrl::SetSel(_charrange &) 4841 void CRichEditCtrl::SetSel(long,long) 4842 void CSliderCtrl::SetSelection(int,int) 4843 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 4844 void CCheckListBox::SetSelectionCheck(int) 4845 int CListCtrl::SetSelectionMark(int) 4846 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 4847 int CStatusBarCtrl::SetSimple(int) 4848 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 4849 void CByteArray::SetSize(int,int) 4850 void CDWordArray::SetSize(int,int) 4851 void CObArray::SetSize(int,int) 4852 void CPtrArray::SetSize(int,int) 4853 void CStringArray::SetSize(int,int) 4854 void CUIntArray::SetSize(int,int) 4855 void CWordArray::SetSize(int,int) 4856 void CToolBar::SetSizes(tagSIZE,tagSIZE) 4857 void CSplitterWnd::SetSplitCursor(int) 4858 void CButton::SetState(int) 4859 int CToolBarCtrl::SetState(int,unsigned int) 4860 void CFile::SetStatus(char const *,CFileStatus const &) 4861 int CControlBar::SetStatusText(int) 4862 int CProgressCtrl::SetStep(int) 4863 void CArchive::SetStoreParams(unsigned int,unsigned int) 4864 int CDC::SetStretchBltMode(int) 4865 void CToolBarCtrl::SetStyle(unsigned long) 4866 int CDialogTemplate::SetSystemFont(unsigned short) 4867 int CEdit::SetTabStops(int const &) 4868 int CEdit::SetTabStops(int,int *) 4869 void CEdit::SetTabStops() 4870 void CEditView::SetTabStops(int) 4871 int CListBox::SetTabStops(int const &) 4872 int CListBox::SetTabStops(int,int *) 4873 void CListBox::SetTabStops() 4874 int CRichEditCtrl::SetTargetDevice(CDC &,long) 4875 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 4876 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 4877 void CFileDialog::SetTemplate(unsigned int,unsigned int) 4878 void CFileDialog::SetTemplate(char const *,char const *) 4879 void CCmdUI::SetText(char const *) 4880 int CStatusBarCtrl::SetText(char const *,int,int) 4881 void CStatusCmdUI::SetText(char const *) 4882 void CTestCmdUI::SetText(char const *) 4883 void CToolCmdUI::SetText(char const *) 4884 unsigned int CDC::SetTextAlign(unsigned int) 4885 int CListCtrl::SetTextBkColor(unsigned long) 4886 int CDC::SetTextCharacterExtra(int) 4887 unsigned long CDC::SetTextColor(unsigned long) 4888 int CListCtrl::SetTextColor(unsigned long) 4889 unsigned long CPreviewDC::SetTextColor(unsigned long) 4890 unsigned long CReBarCtrl::SetTextColor(unsigned long) 4891 unsigned long CTreeCtrl::SetTextColor(unsigned long) 4892 int CDC::SetTextJustification(int,int) 4893 int CWinThread::SetThreadPriority(int) 4894 int CSliderCtrl::SetTic(int) 4895 void CSliderCtrl::SetTicFreq(int) 4896 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 4897 void CToolTipCtrl::SetTipBkColor(unsigned long) 4898 int CSliderCtrl::SetTipSide(int) 4899 void CStatusBarCtrl::SetTipText(int,char const *) 4900 void CToolTipCtrl::SetTipTextColor(unsigned long) 4901 void CDocument::SetTitle(char const *) 4902 void CFrameWnd::SetTitle(char const *) 4903 void CPropertySheet::SetTitle(char const *,unsigned int) 4904 void CToolTipCtrl::SetToolInfo(tagTOOLINFOA *) 4905 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 4906 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 4907 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 4908 void CTabCtrl::SetToolTips(CToolTipCtrl *) 4909 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 4910 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 4911 int CComboBox::SetTopIndex(int) 4912 int CListBox::SetTopIndex(int) 4913 void CPreviewDC::SetTopLeftOffset(CSize) 4914 void CThreadSlotData::SetValue(int,void *) 4915 CSize CDC::SetViewportExt(tagSIZE) 4916 CSize CDC::SetViewportExt(int,int) 4917 CSize CMetaFileDC::SetViewportExt(tagSIZE) 4918 CSize CMetaFileDC::SetViewportExt(int,int) 4919 CSize CPreviewDC::SetViewportExt(int,int) 4920 CPoint CDC::SetViewportOrg(tagPOINT) 4921 CPoint CDC::SetViewportOrg(int,int) 4922 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 4923 CPoint CMetaFileDC::SetViewportOrg(int,int) 4924 CPoint CPreviewDC::SetViewportOrg(int,int) 4925 int CWnd::SetWindowContextHelpId(unsigned long) 4926 CSize CDC::SetWindowExt(tagSIZE) 4927 CSize CDC::SetWindowExt(int,int) 4928 CSize CPreviewDC::SetWindowExt(int,int) 4929 CPoint CDC::SetWindowOrg(int,int) 4930 CPoint CDC::SetWindowOrg(tagPOINT) 4931 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 4932 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 4933 int CWnd::SetWindowRgn(HRGN__ *,int) 4934 void CWnd::SetWindowTextA(char const *) 4935 void CPropertySheet::SetWizardButtons(unsigned long) 4936 void CPropertySheet::SetWizardMode() 4937 void CPropertySheetEx::SetWizardMode() 4938 int CRichEditCtrl::SetWordCharFormat(_charformat &) 4939 void CListCtrl::SetWorkAreas(int,tagRECT *) 4940 int CInternetFile::SetWriteBufferSize(unsigned int) 4941 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 4942 void CDockBar::ShowAll(int) 4943 int CReBarCtrl::ShowBand(unsigned int,int) 4944 void CWnd::ShowCaret() 4945 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 4946 void CComboBox::ShowDropDown(int) 4947 void CWnd::ShowOwnedPopups(int) 4948 void CFrameWnd::ShowOwnedWindows(int) 4949 void CScrollBar::ShowScrollBar(int) 4950 void CWnd::ShowScrollBar(unsigned int,int) 4951 int CWnd::ShowWindow(int) 4952 CSize CRect::Size()const 4953 tagSIZE const CScrollView::sizeDefault 4954 void CBitmapButton::SizeToContent() 4955 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 4956 int CReBarCtrl::SizeToRect(CRect &) 4957 int CTreeCtrl::SortChildren(_TREEITEM *) 4958 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 4959 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 4960 CString CString::SpanExcluding(char const *)const 4961 CString CString::SpanIncluding(char const *)const 4962 int CSplitterWnd::SplitColumn(int) 4963 int CSplitterWnd::SplitRow(int) 4964 int CDC::StartDocA(_DOCINFOA *) 4965 int CDC::StartDocA(char const *) 4966 void CDockContext::StartDrag(CPoint) 4967 int CDC::StartPage() 4968 void CDockContext::StartResize(int,CPoint) 4969 void CSplitterWnd::StartTracking(int) 4970 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 4971 int CProgressCtrl::StepIt() 4972 int CAnimateCtrl::Stop() 4973 void CSplitterWnd::StopTracking(int) 4974 void CRuntimeClass::Store(CArchive &)const 4975 long CRichEditCtrl::StreamIn(int,_editstream &) 4976 long CRichEditCtrl::StreamOut(int,_editstream &) 4977 void CDockContext::Stretch(CPoint) 4978 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 4979 int CDC::StrokeAndFillPath() 4980 int CDC::StrokePath() 4981 int CWnd::SubclassCtl3d(int) 4982 int CWnd::SubclassDlg3d(unsigned long) 4983 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 4984 int CWnd::SubclassWindow(HWND__ *) 4985 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 4986 int CRect::SubtractRect(tagRECT const *,tagRECT const *) 4987 unsigned long CWinThread::SuspendThread() 4988 void CRect::SwapLeftRight() 4989 void CRect::SwapLeftRight(tagRECT *) 4990 char * T2A(char *) 4991 char const * T2CA(char const *) 4992 CSize CDC::TabbedTextOutA(int,int,CString const &,int,int *,int) 4993 CSize CDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 4994 CSize CMetaFileDC::TabbedTextOutA(int,int,CString const &,int,int *,int) 4995 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 4996 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 4997 int CDC::TextOutA(int,int,CString const &) 4998 int CDC::TextOutA(int,int,char const *,int) 4999 int CMetaFileDC::TextOutA(int,int,CString const &) 5000 int CMetaFileDC::TextOutA(int,int,char const *,int) 5001 int CPreviewDC::TextOutA(int,int,char const *,int) 5002 void CFileException::ThrowErrno(int,char const *) 5003 void CFileException::ThrowOsError(long,char const *) 5004 void CDockContext::ToggleDocking() 5005 CPoint & CRect::TopLeft() 5006 CPoint const & CRect::TopLeft()const 5007 int CDockContext::Track() 5008 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 5009 void CSplitterWnd::TrackColumnSize(int,int) 5010 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 5011 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 5012 void CSplitterWnd::TrackRowSize(int,int) 5013 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 5014 void CString::TrimLeft(char) 5015 void CString::TrimLeft(char const *) 5016 void CString::TrimLeft() 5017 void CString::TrimRight(char) 5018 void CString::TrimRight(char const *) 5019 void CString::TrimRight() 5020 int CEdit::Undo() 5021 int CRichEditCtrl::Undo() 5022 int CRect::UnionRect(tagRECT const *,tagRECT const *) 5023 int CCriticalSection::Unlock() 5024 int CEvent::Unlock() 5025 int CMultiLock::Unlock(long,long *) 5026 int CMultiLock::Unlock() 5027 int CMutex::Unlock() 5028 int CSemaphore::Unlock(long,long *) 5029 int CSemaphore::Unlock() 5030 int CSingleLock::Unlock(long,long *) 5031 int CSingleLock::Unlock() 5032 int CSyncObject::Unlock(long,long *) 5033 void CTypeLibCache::Unlock() 5034 void CEditView::UnlockBuffer()const 5035 void CString::UnlockBuffer() 5036 void CFile::UnlockRange(unsigned long,unsigned long) 5037 void CInternetFile::UnlockRange(unsigned long,unsigned long) 5038 void CMemFile::UnlockRange(unsigned long,unsigned long) 5039 void CStdioFile::UnlockRange(unsigned long,unsigned long) 5040 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5041 int UnlockResource(void *) 5042 void CWnd::UnlockWindowUpdate() 5043 int CGdiObject::UnrealizeObject() 5044 int CWinApp::Unregister() 5045 void CDocManager::UnregisterShellFileTypes() 5046 void CWinApp::UnregisterShellFileTypes() 5047 HWND__ * CWnd::UnsubclassWindow() 5048 int CListCtrl::Update(int) 5049 void CToolTipCtrl::Update() 5050 void CStatusBar::UpdateAllPanes(int,int) 5051 void CDocument::UpdateAllViews(CView *,long,CObject *) 5052 void CScrollView::UpdateBars() 5053 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 5054 void CDC::UpdateColors() 5055 void CMemoryState::UpdateData() 5056 int CWnd::UpdateData(int) 5057 void CWnd::UpdateDialogControls(CCmdTarget *,int) 5058 void CDocument::UpdateFrameCounts() 5059 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 5060 void CRecentFileList::UpdateMenu(CCmdUI *) 5061 void CWinApp::UpdatePrinterSelection(int) 5062 void CDockContext::UpdateState(int *,int) 5063 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 5064 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 5065 void CWnd::UpdateWindow() 5066 void CWnd::ValidateRect(tagRECT const *) 5067 void CWnd::ValidateRgn(CRgn *) 5068 void CSliderCtrl::VerifyPos() 5069 int CListBox::VKeyToItem(unsigned int,unsigned int) 5070 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 5071 int CDC::WidenPath() 5072 int CRect::Width()const 5073 CWnd * CWnd::WindowFromPoint(tagPOINT) 5074 long CControlBar::WindowProc(unsigned int,unsigned int,long) 5075 long CReBar::WindowProc(unsigned int,unsigned int,long) 5076 long CWnd::WindowProc(unsigned int,unsigned int,long) 5077 void CWinApp::WinHelpA(unsigned long,unsigned int) 5078 void CWnd::WinHelpA(unsigned long,unsigned int) 5079 CWnd const CWnd::wndBottom 5080 CWnd const CWnd::wndNoTopMost 5081 CWnd const CWnd::wndTop 5082 CWnd const CWnd::wndTopMost 5083 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 5084 void CArchive::Write(void const *,unsigned int) 5085 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 5086 void CFile::Write(void const *,unsigned int) 5087 void CGopherFile::Write(void const *,unsigned int) 5088 int CImageList::Write(CArchive *) 5089 void CInternetFile::Write(void const *,unsigned int) 5090 void CMemFile::Write(void const *,unsigned int) 5091 void CStdioFile::Write(void const *,unsigned int) 5092 void CArchive::WriteClass(CRuntimeconst *) 5093 void CArchive::WriteCount(unsigned long) 5094 void CFile::WriteHuge(void const *,unsigned long) 5095 void CRecentFileList::WriteList() 5096 void CArchive::WriteObject(CObject const *) 5097 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 5098 int CWinApp::WriteProfileInt(char const *,char const *,int) 5099 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 5100 void CArchive::WriteString(char const *) 5101 void CGopherFile::WriteString(char const *) 5102 void CInternetFile::WriteString(char const *) 5103 void CStdioFile::WriteString(char const *) 5104 void CEditView::WriteToArchive(CArchive &) 5105 afxChNil ================================================ FILE: Bin/i386/mfc_sym/mfc42u.def ================================================ 1 DllGetClassObject 2 DllCanUnloadNow 3 DllRegisterServer 4 DllUnregisterServer 5 CRuntimeconst CCachedDataPathProperty::classCCachedDataPathProperty 6 CRuntimeconst CDataPathProperty::classCDataPathProperty 256 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 257 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 258 _AFX_CONTROLPOS::_AFX_CONTROLPOS() 259 _AFX_DAO_STATE::_AFX_DAO_STATE() 260 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 261 _AFX_OLE_STATE::_AFX_OLE_STATE() 262 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 263 _AFX_WIN_STATE::_AFX_WIN_STATE() 264 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 265 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 266 AFX_CLASSINIT::AFX_CLASSINIT(CRuntime*) 267 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,unsigned short const *) 268 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 269 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long) 270 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 271 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 272 CAnimateCtrl::CAnimateCtrl() 273 CArchive::CArchive(CFile *,unsigned int,int,void *) 274 CArchivePropExchange::CArchivePropExchange(CArchive &) 275 CArchiveStream::CArchiveStream(CArchive *) 276 CAsyncMonikerFile::CAsyncMonikerFile() 277 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 278 CAsyncSocket::CAsyncSocket() 279 CBitmap::CBitmap() 280 CBitmapButton::CBitmapButton() 281 CBlobProperty::CBlobProperty(void *) 282 CBrush::CBrush(int,unsigned long) 283 CBrush::CBrush(unsigned long) 284 CBrush::CBrush(CBitmap *) 285 CBrush::CBrush() 286 CButton::CButton() 287 CByteArray::CByteArray() 288 CCheckListBox::CCheckListBox() 289 CClientDC::CClientDC(CWnd *) 290 CCmdTarget::CCmdTarget() 291 CCmdUI::CCmdUI() 292 CColorButton::CColorButton() 293 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 294 CColorPropPage::CColorPropPage() 295 CComboBox::CComboBox() 296 CCommandLineInfo::CCommandLineInfo() 297 CConnectionPoint::CConnectionPoint() 298 CControlBar::CControlBar() 299 CControlBarInfo::CControlBarInfo() 300 COleControl::CControlDataSource::CControlDataSource(COleControl *) 301 CControlFrameWnd::CControlFrameWnd(COleControl *) 302 CCriticalSection::CCriticalSection() 303 CCtrlView::CCtrlView(unsigned short const *,unsigned long) 304 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 305 CDaoException::CDaoException() 306 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 307 CDaoIndexFieldInfo::CDaoIndexFieldInfo() 308 CDaoIndexInfo::CDaoIndexInfo() 309 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 310 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 311 CDaoRecordView::CDaoRecordView(unsigned int) 312 CDaoRecordView::CDaoRecordView(unsigned short const *) 313 CDaoRelationFieldInfo::CDaoRelationFieldInfo() 314 CDaoRelationInfo::CDaoRelationInfo() 315 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 316 CDaoWorkspace::CDaoWorkspace() 317 CDatabase::CDatabase() 318 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 319 CDataExchange::CDataExchange(CWnd *,int) 320 CDataSourceControl::CDataSourceControl(COleControlSite *) 321 CDBException::CDBException(short) 322 CDBVariant::CDBVariant() 323 CDC::CDC() 324 CDialog::CDialog(unsigned int,CWnd *) 325 CDialog::CDialog(unsigned short const *,CWnd *) 326 CDialog::CDialog() 327 CDialogBar::CDialogBar() 328 CDialogTemplate::CDialogTemplate(void *) 329 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 330 CDocItem::CDocItem() 331 CDockBar::CDockBar(int) 332 CDockContext::CDockContext(CControlBar *) 333 CDockState::CDockState() 334 CDocManager::CDocManager() 335 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 336 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 337 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 338 CDocument::CDocument() 339 CDragListBox::CDragListBox() 340 CDumpContext::CDumpContext(CFile *) 341 CDWordArray::CDWordArray() 342 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 343 CEdit::CEdit() 344 CEditView::CEditView() 345 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 346 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 347 CEnumFormatEtc::CEnumFormatEtc() 348 CEvent::CEvent(int,int,unsigned short const *,_SECURITY_ATTRIBUTES *) 349 CException::CException(int) 350 CException::CException() 351 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 352 CFile::CFile(int) 353 CFile::CFile(unsigned short const *,unsigned int) 354 CFile::CFile() 355 CFileDialog::CFileDialog(int,unsigned short const *,unsigned short const *,unsigned long,unsigned short const *,CWnd *) 356 CFileFind::CFileFind() 357 CFindReplaceDialog::CFindReplaceDialog() 358 CFont::CFont() 359 CFontComboBox::CFontComboBox() 360 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 361 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 362 CFontHolder::CFontHolder(IPropertyNotifySink *) 363 CFontPropPage::CFontPropPage() 364 CFormView::CFormView(unsigned int) 365 CFormView::CFormView(unsigned short const *) 366 CFrameWnd::CFrameWnd() 367 CFtpConnection::CFtpConnection(CInternetSession *,void *,unsigned short const *,unsigned long) 368 CFtpConnection::CFtpConnection(CInternetSession *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short,int) 369 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 370 CGdiObject::CGdiObject() 371 CGopherConnection::CGopherConnection(CInternetSession *,void *,unsigned short const *,unsigned long) 372 CGopherConnection::CGopherConnection(CInternetSession *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short) 373 CGopherFile::CGopherFile(void *,void *,unsigned short const *,unsigned long,unsigned long) 374 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 375 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 376 CGopherLocator::CGopherLocator(unsigned short const *,unsigned long) 377 CHandleMap::CHandleMap(CRuntime*,unsigned int,int) 378 CHeaderCtrl::CHeaderCtrl() 379 CHotKeyCtrl::CHotKeyCtrl() 380 CHttpConnection::CHttpConnection(CInternetSession *,void *,unsigned short const *,unsigned long) 381 CHttpConnection::CHttpConnection(CInternetSession *,unsigned short const *,unsigned short,unsigned short const *,unsigned short const *,unsigned long) 382 CHttpFile::CHttpFile(void *,void *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long) 383 CHttpFile::CHttpFile(void *,unsigned short const *,unsigned short const *,CHttpConnection *) 384 CImageList::CImageList() 385 CInternetConnection::CInternetConnection(CInternetSession *,unsigned short const *,unsigned short,unsigned long) 386 CInternetException::CInternetException(unsigned long) 387 CInternetFile::CInternetFile(void *,void *,unsigned short const *,unsigned short const *,unsigned long,int) 388 CInternetFile::CInternetFile(void *,unsigned short const *,CInternetConnection *,int) 389 CInternetSession::CInternetSession(unsigned short const *,unsigned long,unsigned long,unsigned short const *,unsigned short const *,unsigned long) 390 CListBox::CListBox() 391 CListCtrl::CListCtrl() 392 CListView::CListView() 393 CLongBinary::CLongBinary() 394 CMapPtrToPtr::CMapPtrToPtr(int) 395 CMapPtrToWord::CMapPtrToWord(int) 396 CMapStringToOb::CMapStringToOb(int) 397 CMapStringToPtr::CMapStringToPtr(int) 398 CMapStringToString::CMapStringToString(int) 399 CMapWordToOb::CMapWordToOb(int) 400 CMapWordToPtr::CMapWordToPtr(int) 401 CMDIChildWnd::CMDIChildWnd() 402 CMDIFrameWnd::CMDIFrameWnd() 403 CMemFile::CMemFile(unsigned int) 404 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 405 CMenu::CMenu() 406 CMetaFileDC::CMetaFileDC() 407 CMiniDockFrameWnd::CMiniDockFrameWnd() 408 CMiniFrameWnd::CMiniFrameWnd() 409 CMirrorFile::CMirrorFile() 410 CMonikerFile::CMonikerFile() 411 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 412 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 413 CMutex::CMutex(int,unsigned short const *,_SECURITY_ATTRIBUTES *) 414 CObArray::CObArray() 415 CObList::CObList(int) 416 CODBCFieldInfo::CODBCFieldInfo() 417 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 418 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 419 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 420 COleClientItem::COleClientItem(COleDocument *) 421 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 422 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 423 COleControl::COleControl() 424 COleControlContainer::COleControlContainer(CWnd *) 425 COleControlLock::COleControlLock(_GUID const &) 426 COleControlSite::COleControlSite(COleControlContainer *) 427 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 428 COleCurrency::COleCurrency(long,long) 429 COleDataObject::COleDataObject() 430 COleDataSource::COleDataSource() 431 COleDialog::COleDialog(CWnd *) 432 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 433 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 434 COleDispatchDriver::COleDispatchDriver() 435 COleDispatchException::COleDispatchException(unsigned short const *,unsigned int,unsigned short) 436 COleDocIPFrameWnd::COleDocIPFrameWnd() 437 COleDocument::COleDocument() 438 COleDropSource::COleDropSource() 439 COleDropTarget::COleDropTarget() 440 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 441 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 442 COleIPFrameWnd::COleIPFrameWnd() 443 COleLinkingDoc::COleLinkingDoc() 444 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 445 COleMessageFilter::COleMessageFilter() 446 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,unsigned short const *) 447 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 448 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 449 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 450 COleResizeBar::COleResizeBar() 451 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 452 COleSafeArray::COleSafeArray(tagVARIANT const &) 453 COleSafeArray::COleSafeArray(COleSafeArray const &) 454 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 455 COleSafeArray::COleSafeArray(tagVARIANT const *) 456 COleServerDoc::COleServerDoc() 457 COleServerItem::COleServerItem(COleServerDoc *,int) 458 COleStreamFile::COleStreamFile(IStream *) 459 COleTemplateServer::COleTemplateServer() 460 COleUILinkInfo::COleUILinkInfo(COleDocument *) 461 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 462 COleVariant::COleVariant(tagVARIANT const &) 463 COleVariant::COleVariant(COleVariant const &) 464 COleVariant::COleVariant(short,unsigned short) 465 COleVariant::COleVariant(long,unsigned short) 466 COleVariant::COleVariant(unsigned short const *,unsigned short) 467 COleVariant::COleVariant(tagVARIANT const *) 468 COleVariant::COleVariant() 469 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 470 CPaintDC::CPaintDC(CWnd *) 471 CPalette::CPalette() 472 CPen::CPen(int,int,unsigned long) 473 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 474 CPen::CPen() 475 CPictureHolder::CPictureHolder() 476 CPicturePropPage::CPicturePropPage() 477 CPoint::CPoint(unsigned long) 478 CPoint::CPoint(tagPOINT) 479 CPreviewDC::CPreviewDC() 480 CPreviewView::CPreviewView() 481 CPrintDialog::CPrintDialog(tagPDW &) 482 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 483 CPrintInfo::CPrintInfo() 484 CPrintPreviewState::CPrintPreviewState() 485 CProgressCtrl::CProgressCtrl() 486 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 487 CProperty::CProperty(unsigned long,void * const,unsigned long) 488 CProperty::CProperty() 489 CPropertyPage::CPropertyPage(unsigned int,unsigned int) 490 CPropertyPage::CPropertyPage(unsigned short const *,unsigned int) 491 CPropertyPage::CPropertyPage() 492 CPropertySection::CPropertySection(_GUID) 493 CPropertySection::CPropertySection() 494 CPropertySet::CPropertySet(_GUID) 495 CPropertySet::CPropertySet() 496 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 497 CPropertySheet::CPropertySheet(unsigned short const *,CWnd *,unsigned int) 498 CPropertySheet::CPropertySheet() 499 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 500 CPtrArray::CPtrArray() 501 CPtrList::CPtrList(int) 502 CRecentFileList::CRecentFileList(unsigned int,unsigned short const *,unsigned short const *,int,int) 503 CRecordset::CRecordset(CDatabase *) 504 CRecordView::CRecordView(unsigned int) 505 CRecordView::CRecordView(unsigned short const *) 506 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 507 CRectTracker::CRectTracker() 508 CReObject::CReObject(CRichEditCntrItem *) 509 CReObject::CReObject() 510 CResetPropExchange::CResetPropExchange() 511 CRgn::CRgn() 512 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 513 CRichEditCtrl::CRichEditCtrl() 514 CRichEditDoc::CRichEditDoc() 515 CRichEditView::CRichEditView() 516 CScrollBar::CScrollBar() 517 CScrollView::CScrollView() 518 CSemaphore::CSemaphore(long,long,unsigned short const *,_SECURITY_ATTRIBUTES *) 519 CSharedFile::CSharedFile(unsigned int,unsigned int) 520 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 521 CSingleLock::CSingleLock(CSyncObject *,int) 522 CSliderCtrl::CSliderCtrl() 523 CSocket::CSocket() 524 CSocketFile::CSocketFile(CSocket *,int) 525 CSocketWnd::CSocketWnd() 526 CSpinButtonCtrl::CSpinButtonCtrl() 527 CSplitterWnd::CSplitterWnd() 528 CStatic::CStatic() 529 CStatusBar::CStatusBar() 530 CStatusBarCtrl::CStatusBarCtrl() 531 CStdioFile::CStdioFile(_iobuf *) 532 CStdioFile::CStdioFile(unsigned short const *,unsigned int) 533 CStdioFile::CStdioFile() 534 CStockPropPage::CStockPropPage(unsigned int,unsigned int) 535 CString::CString(CString const &) 536 CString::CString(unsigned short,int) 537 CString::CString(char const *) 538 CString::CString(unsigned short const *) 539 CString::CString(unsigned short const *,int) 540 CString::CString() 541 CStringArray::CStringArray() 542 CStringList::CStringList(int) 543 CSyncObject::CSyncObject(unsigned short const *) 544 CTabCtrl::CTabCtrl() 545 CTestCmdUI::CTestCmdUI() 546 CThreadSlotData::CThreadSlotData() 547 CTime::CTime(_FILETIME const &,int) 548 CTime::CTime(_SYSTEMTIME const &,int) 549 CTime::CTime(CTime const &) 550 CTime::CTime(unsigned short,unsigned short,int) 551 CTime::CTime(int,int,int,int,int,int,int) 552 CTime::CTime() 553 CTimeSpan::CTimeSpan() 554 CToolBar::CToolBar() 555 CToolBarCtrl::CToolBarCtrl() 556 CToolTipCtrl::CToolTipCtrl() 557 CTreeCtrl::CTreeCtrl() 558 CTreeView::CTreeView() 559 CUIntArray::CUIntArray() 560 CView::CView() 561 CWinApp::CWinApp(unsigned short const *) 562 CWindowDC::CWindowDC(CWnd *) 563 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 564 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 565 CWinThread::CWinThread() 566 CWnd::CWnd(HWND__ *) 567 CWnd::CWnd() 568 CWordArray::CWordArray() 569 CPreviewView::PAGE_INFO::PAGE_INFO() 570 tagFONTOBJECT::tagFONTOBJECT(tagFONTOBJECT const &) 571 _CIP::~_CIP() 572 _CIP::~_CIP() 573 _CIP::~_CIP() 574 _CIP::~_CIP() 575 _CIP::~_CIP() 576 _CIP::~_CIP() 577 CIP::~CIP() 578 CIP::~CIP() 579 CIP::~CIP() 580 CIP::~CIP() 581 CIP::~CIP() 582 CIP::~CIP() 583 CThreadLocal::~CThreadLocal() 584 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 585 _AFX_CTL3D_STATE::~_AFX_CTL3D_STATE() 586 _AFX_CTL3D_THREAD::~_AFX_CTL3D_THREAD() 587 _AFX_DAO_STATE::~_AFX_DAO_STATE() 588 _AFX_DB_STATE::~_AFX_DB_STATE() 589 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 590 _AFX_EXTDLL_STATE::~_AFX_EXTDLL_STATE() 591 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 592 _AFX_OLE_STATE::~_AFX_OLE_STATE() 593 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 594 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 595 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 596 _AFX_WIN_STATE::~_AFX_WIN_STATE() 597 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 598 AFX_COM::~AFX_COM() 599 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 600 AFX_MODULE_STATE::~AFX_MODULE_STATE() 601 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 602 CAnimateCtrl::~CAnimateCtrl() 603 CArchive::~CArchive() 604 CAsyncMonikerFile::~CAsyncMonikerFile() 605 CAsyncSocket::~CAsyncSocket() 606 CBitmap::~CBitmap() 607 CBitmapButton::~CBitmapButton() 608 CBrush::~CBrush() 609 CButton::~CButton() 610 CByteArray::~CByteArray() 611 CCachedDataPathProperty::~CCachedDataPathProperty() 612 CCheckListBox::~CCheckListBox() 613 CClientDC::~CClientDC() 614 CCmdTarget::~CCmdTarget() 615 CColorButton::~CColorButton() 616 CComboBox::~CComboBox() 617 CCommandLineInfo::~CCommandLineInfo() 618 CCommonDialog::~CCommonDialog() 619 CConnectionPoint::~CConnectionPoint() 620 CControlBar::~CControlBar() 621 CCriticalSection::~CCriticalSection() 622 CCtrlView::~CCtrlView() 623 CDaoDatabase::~CDaoDatabase() 624 CDaoException::~CDaoException() 625 CDaoFieldInfo::~CDaoFieldInfo() 626 CDaoIndexFieldInfo::~CDaoIndexFieldInfo() 627 CDaoIndexInfo::~CDaoIndexInfo() 628 CDaoQueryDef::~CDaoQueryDef() 629 CDaoRecordset::~CDaoRecordset() 630 CDaoRecordView::~CDaoRecordView() 631 CDaoRelationFieldInfo::~CDaoRelationFieldInfo() 632 CDaoRelationInfo::~CDaoRelationInfo() 633 CDaoTableDef::~CDaoTableDef() 634 CDaoWorkspace::~CDaoWorkspace() 635 CDatabase::~CDatabase() 636 CDataPathProperty::~CDataPathProperty() 637 CDataSourceControl::~CDataSourceControl() 638 CDBException::~CDBException() 639 CDBVariant::~CDBVariant() 640 CDC::~CDC() 641 CDialog::~CDialog() 642 CDialogBar::~CDialogBar() 643 CDialogTemplate::~CDialogTemplate() 644 CDocItem::~CDocItem() 645 CDockBar::~CDockBar() 646 CDockContext::~CDockContext() 647 CDockState::~CDockState() 648 CDocManager::~CDocManager() 649 CDocObjectServer::~CDocObjectServer() 650 CDocObjectServerItem::~CDocObjectServerItem() 651 CDocTemplate::~CDocTemplate() 652 CDocument::~CDocument() 653 CDragListBox::~CDragListBox() 654 CDWordArray::~CDWordArray() 655 CDynLinkLibrary::~CDynLinkLibrary() 656 CEdit::~CEdit() 657 CEditView::~CEditView() 658 CEnumArray::~CEnumArray() 659 CEnumConnPoints::~CEnumConnPoints() 660 CEnumFormatEtc::~CEnumFormatEtc() 661 CEnumOleVerb::~CEnumOleVerb() 662 CEnumUnknown::~CEnumUnknown() 663 CEvent::~CEvent() 664 CException::~CException() 665 CFile::~CFile() 666 CFileDialog::~CFileDialog() 667 CFileException::~CFileException() 668 CFileFind::~CFileFind() 669 CFont::~CFont() 670 CFontComboBox::~CFontComboBox() 671 CFontDialog::~CFontDialog() 672 CFontHolder::~CFontHolder() 673 CFormView::~CFormView() 674 CFrameWnd::~CFrameWnd() 675 CFtpConnection::~CFtpConnection() 676 CFtpFileFind::~CFtpFileFind() 677 CGdiObject::~CGdiObject() 678 CGopherConnection::~CGopherConnection() 679 CGopherFile::~CGopherFile() 680 CGopherFileFind::~CGopherFileFind() 681 CGopherLocator::~CGopherLocator() 682 CHeaderCtrl::~CHeaderCtrl() 683 CHotKeyCtrl::~CHotKeyCtrl() 684 CHttpConnection::~CHttpConnection() 685 CHttpFile::~CHttpFile() 686 CImageList::~CImageList() 687 CInternetConnection::~CInternetConnection() 688 CInternetException::~CInternetException() 689 CInternetFile::~CInternetFile() 690 CInternetSession::~CInternetSession() 691 COleServerItem::CItemDataSource::~CItemDataSource() 692 CListBox::~CListBox() 693 CListCtrl::~CListCtrl() 694 CListView::~CListView() 695 CLongBinary::~CLongBinary() 696 CMapPtrToPtr::~CMapPtrToPtr() 697 CMapPtrToWord::~CMapPtrToWord() 698 CMapStringToOb::~CMapStringToOb() 699 CMapStringToPtr::~CMapStringToPtr() 700 CMapStringToString::~CMapStringToString() 701 CMapWordToOb::~CMapWordToOb() 702 CMapWordToPtr::~CMapWordToPtr() 703 CMemFile::~CMemFile() 704 CMenu::~CMenu() 705 CMetaFileDC::~CMetaFileDC() 706 CMiniFrameWnd::~CMiniFrameWnd() 707 CMirrorFile::~CMirrorFile() 708 CMonikerFile::~CMonikerFile() 709 CMultiDocTemplate::~CMultiDocTemplate() 710 CMultiLock::~CMultiLock() 711 CMutex::~CMutex() 712 CNoTrackObject::~CNoTrackObject() 713 CObArray::~CObArray() 714 CObject::~CObject() 715 CObList::~CObList() 716 CODBCFieldInfo::~CODBCFieldInfo() 717 COleBusyDialog::~COleBusyDialog() 718 COleChangeIconDialog::~COleChangeIconDialog() 719 COleChangeSourceDialog::~COleChangeSourceDialog() 720 COleClientItem::~COleClientItem() 721 COleCmdUI::~COleCmdUI() 722 COleCntrFrameWnd::~COleCntrFrameWnd() 723 COleControl::~COleControl() 724 COleControlContainer::~COleControlContainer() 725 COleControlLock::~COleControlLock() 726 COleControlSite::~COleControlSite() 727 COleConvertDialog::~COleConvertDialog() 728 COleDataObject::~COleDataObject() 729 COleDataSource::~COleDataSource() 730 COleDialog::~COleDialog() 731 COleDispatchDriver::~COleDispatchDriver() 732 COleDispatchException::~COleDispatchException() 733 COleDocIPFrameWnd::~COleDocIPFrameWnd() 734 COleDocument::~COleDocument() 735 COleDropSource::~COleDropSource() 736 COleDropTarget::~COleDropTarget() 737 COleFrameHook::~COleFrameHook() 738 COleInsertDialog::~COleInsertDialog() 739 COleIPFrameWnd::~COleIPFrameWnd() 740 COleLinkingDoc::~COleLinkingDoc() 741 COleLinksDialog::~COleLinksDialog() 742 COleMessageFilter::~COleMessageFilter() 743 COleObjectFactory::~COleObjectFactory() 744 COlePasteSpecialDialog::~COlePasteSpecialDialog() 745 COlePropertiesDialog::~COlePropertiesDialog() 746 COlePropertyPage::~COlePropertyPage() 747 COleResizeBar::~COleResizeBar() 748 COleServerDoc::~COleServerDoc() 749 COleServerItem::~COleServerItem() 750 COleStreamFile::~COleStreamFile() 751 COleTemplateServer::~COleTemplateServer() 752 COleUpdateDialog::~COleUpdateDialog() 753 COleVariant::~COleVariant() 754 CPageSetupDialog::~CPageSetupDialog() 755 CPaintDC::~CPaintDC() 756 CPalette::~CPalette() 757 CPen::~CPen() 758 CPictureHolder::~CPictureHolder() 759 CPicturePropPage::~CPicturePropPage() 760 CPreviewDC::~CPreviewDC() 761 CPreviewView::~CPreviewView() 762 CPrintDialog::~CPrintDialog() 763 CPrintInfo::~CPrintInfo() 764 CProcessLocalObject::~CProcessLocalObject() 765 CProgressCtrl::~CProgressCtrl() 766 CPropbagPropExchange::~CPropbagPropExchange() 767 CProperty::~CProperty() 768 CPropertyPage::~CPropertyPage() 769 CPropertySection::~CPropertySection() 770 CPropertySet::~CPropertySet() 771 CPropertySheet::~CPropertySheet() 772 CPtrArray::~CPtrArray() 773 CPtrList::~CPtrList() 774 CRecentFileList::~CRecentFileList() 775 CRecordset::~CRecordset() 776 CRecordView::~CRecordView() 777 CRectTracker::~CRectTracker() 778 CReObject::~CReObject() 779 CRgn::~CRgn() 780 CRichEditCntrItem::~CRichEditCntrItem() 781 CRichEditCtrl::~CRichEditCtrl() 782 CRichEditView::~CRichEditView() 783 CScrollBar::~CScrollBar() 784 CScrollView::~CScrollView() 785 CSemaphore::~CSemaphore() 786 CSharedFile::~CSharedFile() 787 CSimpleException::~CSimpleException() 788 CSingleDocTemplate::~CSingleDocTemplate() 789 CSizeComboBox::~CSizeComboBox() 790 CSliderCtrl::~CSliderCtrl() 791 CSocket::~CSocket() 792 CSocketFile::~CSocketFile() 793 CSpinButtonCtrl::~CSpinButtonCtrl() 794 CSplitterWnd::~CSplitterWnd() 795 CStatic::~CStatic() 796 CStatusBar::~CStatusBar() 797 CStatusBarCtrl::~CStatusBarCtrl() 798 CStdioFile::~CStdioFile() 799 CStockPropPage::~CStockPropPage() 800 CString::~CString() 801 CStringArray::~CStringArray() 802 CStringList::~CStringList() 803 CSyncObject::~CSyncObject() 804 CTabCtrl::~CTabCtrl() 805 CThreadLocalObject::~CThreadLocalObject() 806 CThreadSlotData::~CThreadSlotData() 807 CToolBar::~CToolBar() 808 CToolBarCtrl::~CToolBarCtrl() 809 CToolTipCtrl::~CToolTipCtrl() 810 CTreeCtrl::~CTreeCtrl() 811 CTreeView::~CTreeView() 812 CUIntArray::~CUIntArray() 813 CView::~CView() 814 CWaitCursor::~CWaitCursor() 815 CWinApp::~CWinApp() 816 CWindowDC::~CWindowDC() 817 CWinThread::~CWinThread() 818 CWnd::~CWnd() 819 CWordArray::~CWordArray() 820 tagFONTOBJECT::~tagFONTOBJECT() 821 COleControl::XEventConnPt::~XEventConnPt() 822 COleControl::XPropConnPt::~XPropConnPt() 823 void * operator new(unsigned int) 824 void * CNoTrackObject::operator new(unsigned int) 825 void operator delete(void *) 826 void CNoTrackObject::operator delete(void *) 827 void CObject::operator delete(void *) 828 _CIP & _CIP::operator=(IBindHost *) 829 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 830 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 831 COleCurrency const & COleCurrency::operator=(union tagCY) 832 COleDateTime const & COleDateTime::operator=(long const &) 833 COleDateTime const & COleDateTime::operator=(_FILETIME const &) 834 COleDateTime const & COleDateTime::operator=(_SYSTEMTIME const &) 835 COleDateTime const & COleDateTime::operator=(tagVARIANT const &) 836 COleDateTime const & COleDateTime::operator=(double) 837 COleDateTimeSpan const & COleDateTimeSpan::operator=(COleDateTimeSpan const &) 838 COleDateTimeSpan const & COleDateTimeSpan::operator=(double) 839 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 840 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 841 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 842 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 843 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 844 COleVariant const & COleVariant::operator=(tagVARIANT const &) 845 COleVariant const & COleVariant::operator=(COleVariant const &) 846 COleVariant const & COleVariant::operator=(CByteArray const &) 847 COleVariant const & COleVariant::operator=(CLongBinary const &) 848 COleVariant const & COleVariant::operator=(COleCurrency const &) 849 COleVariant const & COleVariant::operator=(COleDateTime const &) 850 COleVariant const & COleVariant::operator=(CString const &) 851 COleVariant const & COleVariant::operator=(unsigned char) 852 COleVariant const & COleVariant::operator=(short) 853 COleVariant const & COleVariant::operator=(long) 854 COleVariant const & COleVariant::operator=(float) 855 COleVariant const & COleVariant::operator=(double) 856 COleVariant const & COleVariant::operator=(tagVARIANT const *) 857 COleVariant const & COleVariant::operator=(unsigned short const * const) 858 CString const & CString::operator=(CString const &) 859 CString const & CString::operator=(unsigned short) 860 CString const & CString::operator=(char const *) 861 CString const & CString::operator=(unsigned short const *) 862 CArchive & operator>>(CArchive &,CByteArray * &) 863 CArchive & operator>>(CArchive &,CDocItem * &) 864 CArchive & operator>>(CArchive &,CDockState * &) 865 CArchive & operator>>(CArchive &,CDWordArray * &) 866 CArchive & operator>>(CArchive &,CMapStringToOb * &) 867 CArchive & operator>>(CArchive &,CMapStringToString * &) 868 CArchive & operator>>(CArchive &,CMapWordToOb * &) 869 CArchive & operator>>(CArchive &,CObArray * &) 870 CArchive & operator>>(CArchive &,CObList * &) 871 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 872 CArchive & operator>>(CArchive &,CStringArray * &) 873 CArchive & operator>>(CArchive &,CStringList * &) 874 CArchive & operator>>(CArchive &,CWordArray * &) 875 CArchive & operator>>(CArchive &,COleCurrency &) 876 CArchive & operator>>(CArchive &,COleDateTime &) 877 CArchive & operator>>(CArchive &,COleDateTimeSpan &) 878 CArchive & operator>>(CArchive &,COleVariant &) 879 CArchive & operator>>(CArchive &,CString &) 880 CArchive & operator>>(CArchive &,CTime &) 881 CArchive & operator>>(CArchive &,CTimeSpan &) 882 CArchive & operator<<(CArchive &,CString const &) 883 CArchive & operator<<(CArchive &,COleCurrency) 884 CArchive & operator<<(CArchive &,COleDateTime) 885 CArchive & operator<<(CArchive &,COleDateTimeSpan) 886 CArchive & operator<<(CArchive &,COleVariant) 887 CArchive & operator<<(CArchive &,CTime) 888 CArchive & operator<<(CArchive &,CTimeSpan) 889 CDumpContext & CDumpContext::operator<<(CObject const &) 890 CDumpContext & CDumpContext::operator<<(unsigned char) 891 CDumpContext & CDumpContext::operator<<(unsigned short) 892 CDumpContext & CDumpContext::operator<<(int) 893 CDumpContext & CDumpContext::operator<<(unsigned int) 894 CDumpContext & CDumpContext::operator<<(long) 895 CDumpContext & CDumpContext::operator<<(unsigned long) 896 CDumpContext & CDumpContext::operator<<(char const *) 897 CDumpContext & CDumpContext::operator<<(unsigned short const *) 898 CDumpContext & CDumpContext::operator<<(CObject const *) 899 CDumpContext & CDumpContext::operator<<(void const *) 900 int COleSafeArray::operator==(tagSAFEARRAY const &)const 901 int COleSafeArray::operator==(tagVARIANT const &)const 902 int COleSafeArray::operator==(COleSafeArray const &)const 903 int COleSafeArray::operator==(COleVariant const &)const 904 int COleSafeArray::operator==(tagSAFEARRAY const *)const 905 int COleSafeArray::operator==(tagVARIANT const *)const 906 int COleVariant::operator==(tagVARIANT const &)const 907 int CTime::operator==(CTime)const 908 int CTime::operator!=(CTime)const 909 void * & CMapPtrToPtr::operator[](void *) 910 unsigned short & CMapPtrToWord::operator[](void *) 911 CObject * & CMapStringToOb::operator[](unsigned short const *) 912 void * & CMapStringToPtr::operator[](unsigned short const *) 913 CString & CMapStringToString::operator[](unsigned short const *) 914 CObject * & CMapWordToOb::operator[](unsigned short) 915 void * & CMapWordToPtr::operator[](unsigned short) 916 COleCurrency COleCurrency::operator*(long)const 917 COleCurrency COleCurrency::operator-(COleCurrency const &)const 918 COleCurrency COleCurrency::operator-()const 919 COleDateTime COleDateTime::operator-(COleDateTimeSpan const &)const 920 COleDateTimeSpan COleDateTime::operator-(COleDateTime const &)const 921 COleDateTimeSpan COleDateTimeSpan::operator-(COleDateTimeSpan const &)const 922 CString operator+(CString const &,CString const &) 923 CString operator+(CString const &,char) 924 CString operator+(CString const &,unsigned short) 925 CString operator+(CString const &,unsigned short const *) 926 CString operator+(unsigned short,CString const &) 927 CString operator+(unsigned short const *,CString const &) 928 COleCurrency COleCurrency::operator+(COleCurrency const &)const 929 COleDateTime COleDateTime::operator+(COleDateTimeSpan const &)const 930 COleDateTimeSpan COleDateTimeSpan::operator+(COleDateTimeSpan const &)const 931 COleCurrency COleCurrency::operator/(long)const 932 int COleCurrency::operator<(COleCurrency const &)const 933 int COleDateTime::operator<(COleDateTime const &)const 934 int COleCurrency::operator<=(COleCurrency const &)const 935 int COleDateTime::operator<=(COleDateTime const &)const 936 int COleCurrency::operator>(COleCurrency const &)const 937 int COleDateTime::operator>(COleDateTime const &)const 938 int COleCurrency::operator>=(COleCurrency const &)const 939 int COleDateTime::operator>=(COleDateTime const &)const 940 CString const & CString::operator+=(CString const &) 941 CString const & CString::operator+=(unsigned short) 942 CString const & CString::operator+=(unsigned short const *) 943 int _AfxAbortProc(HDC__ *,int) 944 AFX_ADVAPI_CALL _afxAdvApi 945 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 946 AFX_COMDLG_CALL _afxComDlg 947 AFX_COMMCTRL_CALL _afxCommCtrl 948 AFX_ODBC_CALL _afxODBC 949 AFX_OLE_CALL _afxOLE 950 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 951 AFX_SHELL_CALL _afxShell 952 AFX_SOCK_CALL _afxSOCK 953 AFX_URLMON_CALL _afxUrlMon 954 AFX_WINSPOOL_CALL _afxWinSpool 955 int _mbstowcsz(unsigned short *,char const *,unsigned int) 956 int _wcstombsz(char *,unsigned short const *,unsigned int) 957 void CArchive::Abort() 958 void CFile::Abort() 959 void CInternetFile::Abort() 960 void CMemFile::Abort() 961 void CMirrorFile::Abort() 962 void COleStreamFile::Abort() 963 void CSocketFile::Abort() 964 void CStdioFile::Abort() 965 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 966 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 967 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 968 void COleSafeArray::AccessData(void * *) 969 void COleClientItem::Activate(long,CView *,tagMSG *) 970 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 971 int COleClientItem::ActivateAs(unsigned short const *,_GUID const &,_GUID const &) 972 int CRichEditCntrItem::ActivateAs(unsigned short const *,_GUID const &,_GUID const &) 973 void CDocObjectServer::ActivateDocObject() 974 void COleServerDoc::ActivateDocObject() 975 void CFrameWnd::ActivateFrame(int) 976 void CMDIChildWnd::ActivateFrame(int) 977 int COleServerDoc::ActivateInPlace() 978 void CSplitterWnd::ActivateNext(int) 979 void CWnd::ActivateTopParent() 980 void CRecentFileList::Add(unsigned short const *) 981 int CToolBarCtrl::AddBitmap(int,unsigned int) 982 int CToolBarCtrl::AddBitmap(int,CBitmap *) 983 void COleClientItem::AddCachedData(COleDataSource *) 984 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 985 void CDocManager::AddDocTemplate(CDocTemplate *) 986 void CWinApp::AddDocTemplate(CDocTemplate *) 987 void CDocTemplate::AddDocument(CDocument *) 988 void CMultiDocTemplate::AddDocument(CDocument *) 989 void CSingleDocTemplate::AddDocument(CDocument *) 990 int CFontComboBox::AddFont(tagLOGFONTW *,unsigned long) 991 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 992 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,unsigned short *,unsigned short *,unsigned long) 993 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 994 void COleControl::AddFrameLevelUI() 995 void CFrameWnd::AddFrameWnd() 996 __POSITION * CObList::AddHead(CObject *) 997 void CObList::AddHead(CObList *) 998 __POSITION * CPtrList::AddHead(void *) 999 void CPtrList::AddHead(CPtrList *) 1000 void CSimpleList::AddHead(void *) 1001 __POSITION * CStringList::AddHead(unsigned short const *) 1002 void CStringList::AddHead(CStringList *) 1003 void COleDocument::AddItem(CDocItem *) 1004 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1005 void CDaoRecordset::AddNew() 1006 void CRecordset::AddNew() 1007 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1008 void CPropertySheet::AddPage(CPropertyPage *) 1009 void CPropertySection::AddProperty(CProperty *) 1010 void CPropertySet::AddProperty(_GUID,CProperty *) 1011 unsigned long CArchiveStream::AddRef() 1012 unsigned long CBlobProperty::AddRef() 1013 unsigned long CInnerUnknown::AddRef() 1014 unsigned long COleConnPtContainer::AddRef() 1015 unsigned long COleDispatchImpl::AddRef() 1016 unsigned long COleUILinkInfo::AddRef() 1017 unsigned long COleClientItem::XAdviseSink::AddRef() 1018 unsigned long COleControlSite::XAmbientProps::AddRef() 1019 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1020 unsigned long COleObjectFactory::XClassFactory::AddRef() 1021 unsigned long CConnectionPoint::XConnPt::AddRef() 1022 unsigned long COleControl::XDataObject::AddRef() 1023 unsigned long COleDataSource::XDataObject::AddRef() 1024 unsigned long COleServerDoc::XDataObject::AddRef() 1025 unsigned long COleServerItem::XDataObject::AddRef() 1026 unsigned long COleDropSource::XDropSource::AddRef() 1027 unsigned long COleDropTarget::XDropTarget::AddRef() 1028 unsigned long CEnumArray::XEnumVOID::AddRef() 1029 unsigned long COleControlSite::XEventSink::AddRef() 1030 unsigned long COleControl::XFontNotification::AddRef() 1031 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1032 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1033 unsigned long COleControl::XOleCache::AddRef() 1034 unsigned long COleClientItem::XOleClientSite::AddRef() 1035 unsigned long COleControlSite::XOleClientSite::AddRef() 1036 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1037 unsigned long COleControlContainer::XOleContainer::AddRef() 1038 unsigned long COleControl::XOleControl::AddRef() 1039 unsigned long COleControlSite::XOleControlSite::AddRef() 1040 unsigned long CDocObjectServer::XOleDocument::AddRef() 1041 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1042 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1043 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1044 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1045 unsigned long COleControl::XOleInPlaceObject::AddRef() 1046 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1047 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1048 unsigned long COleClientItem::XOleIPSite::AddRef() 1049 unsigned long COleControlSite::XOleIPSite::AddRef() 1050 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1051 unsigned long CDocObjectServer::XOleObject::AddRef() 1052 unsigned long COleControl::XOleObject::AddRef() 1053 unsigned long COleServerDoc::XOleObject::AddRef() 1054 unsigned long COleServerItem::XOleObject::AddRef() 1055 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1056 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1057 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1058 unsigned long COleControl::XPersistMemory::AddRef() 1059 unsigned long COleControl::XPersistPropertyBag::AddRef() 1060 unsigned long COleControl::XPersistStorage::AddRef() 1061 unsigned long COleServerDoc::XPersistStorage::AddRef() 1062 unsigned long COleControl::XPersistStreamInit::AddRef() 1063 unsigned long COleControl::XPointerInactive::AddRef() 1064 unsigned long CDocObjectServer::XPrint::AddRef() 1065 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1066 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1067 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1068 unsigned long COleControl::XProvideClassInfo::AddRef() 1069 unsigned long COleControl::XQuickActivate::AddRef() 1070 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1071 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1072 unsigned long COleControl::XViewObject::AddRef() 1073 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1074 int CHttpFile::AddRequestHeaders(CString &,unsigned long) 1075 int CHttpFile::AddRequestHeaders(unsigned short const *,unsigned long,int) 1076 CPropertySection * CPropertySet::AddSection(_GUID) 1077 void CPropertySet::AddSection(CPropertySection *) 1078 int CSizeComboBox::AddSize(int,long) 1079 void COlePasteSpecialDialog::AddStandardFormats(int) 1080 int CToolBarCtrl::AddString(unsigned int) 1081 __POSITION * CObList::AddTail(CObject *) 1082 void CObList::AddTail(CObList *) 1083 __POSITION * CPtrList::AddTail(void *) 1084 void CPtrList::AddTail(CPtrList *) 1085 __POSITION * CStringList::AddTail(unsigned short const *) 1086 void CStringList::AddTail(CStringList *) 1087 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1088 int CToolTipCtrl::AddTool(CWnd *,unsigned short const *,tagRECT const *,unsigned int) 1089 void CWinApp::AddToRecentFileList(unsigned short const *) 1090 void CDocument::AddView(CView *) 1091 void CMetaFileDC::AdjustCP(int) 1092 void CRichEditView::AdjustDialogPosition(CDialog *) 1093 void CRectTracker::AdjustRect(int,tagRECT *) 1094 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1095 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1096 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1097 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1098 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1099 unsigned short * AfxA2WHelper(unsigned short *,char const *,int) 1100 void AfxAbort() 1101 char * AfxAllocTaskAnsiString(char const *) 1102 char * AfxAllocTaskAnsiString(unsigned short const *) 1103 unsigned short * AfxAllocTaskWideString(char const *) 1104 unsigned short * AfxAllocTaskWideString(unsigned short const *) 1105 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1106 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1107 void AfxBSTR2CString(CString *,unsigned short *) 1108 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1109 void AfxCancelModes(HWND__ *) 1110 int AfxComparePath(unsigned short const *,unsigned short const *) 1111 int AfxCompareValueByRef(void *,void *,int) 1112 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1113 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1114 void AfxCopyValueByRef(void *,void *,long *,int) 1115 void AfxCoreInitModule() 1116 HDC__ * AfxCreateDC(void *,void *) 1117 int AfxCriticalInit() 1118 int AfxCriticalNewHandler(unsigned int) 1119 void AfxCriticalTerm() 1120 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1121 void AfxDaoCheck(long,char const *,char const *,int,int,int) 1122 _DAODBEngine * AfxDaoGetEngine() 1123 void AfxDaoInit() 1124 void AfxDaoTerm() 1125 AUX_DATA afxData 1126 void AfxDeleteObject(void * *) 1127 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1128 long AfxDllCanUnloadNow() 1129 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1130 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1131 void AfxEnableControlContainer(COccManager *) 1132 void AfxEnableWin31Compatibility() 1133 void AfxEnableWin40Compatibility() 1134 int AfxEndDeferRegisterClass(long) 1135 void AfxEndThread(unsigned int,int) 1136 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1137 int AfxExtractSubString(CString &,unsigned short const *,int,unsigned short) 1138 void AfxFailMaxChars(CDataExchange *,int) 1139 void AfxFailRadio(CDataExchange *) 1140 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 1141 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1142 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1143 HINSTANCE__ * AfxFindResourceHandle(unsigned short const *,unsigned short const *) 1144 void AfxFormatString1(CString &,unsigned int,unsigned short const *) 1145 void AfxFormatString2(CString &,unsigned int,unsigned short const *,unsigned short const *) 1146 void AfxFormatStrings(CString &,unsigned int,unsigned short const * const *,int) 1147 void AfxFormatStrings(CString &,unsigned short const *,unsigned short const * const *,int) 1148 int AfxFreeLibrary(HINSTANCE__ *) 1149 int AfxFullPath(unsigned short *,unsigned short const *) 1150 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1151 AFX_MODULE_STATE * AfxGetAppModuleState() 1152 long AfxGetClassIDFromString(unsigned short const *,_GUID *) 1153 _AFX_CTL3D_STATE * AfxGetCtl3dState() 1154 _AFX_DAO_STATE * AfxGetDaoState() 1155 CString const & AfxGetEmptyString() 1156 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 1157 unsigned int AfxGetFileName(unsigned short const *,unsigned short *,unsigned int) 1158 unsigned int AfxGetFileTitle(unsigned short const *,unsigned short *,unsigned int) 1159 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1160 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 1161 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 1162 int AfxGetInProcServer(unsigned short const *,CString &) 1163 unsigned long AfxGetInternetHandleType(void *) 1164 void AfxGetModuleShortFileName(HINSTANCE__ *,CString &) 1165 AFX_MODULE_STATE * AfxGetModuleState() 1166 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1167 int (__cdecl*AfxGetNewHandler())(unsigned int) 1168 HWND__ * AfxGetParentOwner(HWND__ *) 1169 int AfxGetPropSheetFont(CString &,unsigned short &,int) 1170 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1171 void AfxGetRoot(unsigned short const *,CString &) 1172 CWinThread * AfxGetThread() 1173 _AFX_THREAD_STATE * AfxGetThreadState() 1174 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1175 void AfxGlobalFree(void *) 1176 int AfxHelpEnabled() 1177 void AfxHookWindowCreate(CWnd *) 1178 void AfxINetLoad(int (__stdcall**)(),char const *) 1179 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1180 void AfxInitLocalData(HINSTANCE__ *) 1181 void AfxInitThread() 1182 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1183 int AfxIsDescendant(HWND__ *,HWND__ *) 1184 int AfxIsValidAddress(void const *,unsigned int,int) 1185 int AfxIsValidString(char const *,int) 1186 int AfxIsValidString(unsigned short const *,int) 1187 HINSTANCE__ * AfxLoadDll(HINSTANCE__ * * volatile,char const *) 1188 HINSTANCE__ * AfxLoadDll(HINSTANCE__ * * volatile,char const *,int (__stdcall**)(),char const *) 1189 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1190 HINSTANCE__ * AfxLoadLibrary(unsigned short const *) 1191 int AfxLoadString(unsigned int,unsigned short *,unsigned int) 1192 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1193 void AfxLockGlobals(int) 1194 void AfxLockTempMaps() 1195 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1196 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1197 int AfxMessageBox(unsigned short const *,unsigned int,unsigned int) 1198 int AfxNewHandler(unsigned int) 1199 int AfxOleCanExitApp() 1200 int AfxOleGetUserCtrl() 1201 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1202 int AfxOleInit() 1203 void AfxOleLockApp() 1204 int AfxOleLockControl(_GUID const &) 1205 int AfxOleLockControl(unsigned short const *) 1206 void AfxOleOnReleaseAllObjects() 1207 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,unsigned short const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1208 int AfxOleRegisterHelper(unsigned short const * const *,unsigned short const * const *,int,int,HKEY__ *) 1209 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1210 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1211 int AfxOleRegisterServerClass(_GUID const &,unsigned short const *,unsigned short const *,unsigned short const *,enum OLE_APPTYPE,unsigned short const * *,unsigned short const * *,int,unsigned short const *) 1212 int AfxOleRegisterServerClassCompat(_GUID const &,unsigned short const *,unsigned short const *,unsigned short const *,enum OLE_APPTYPE,unsigned short const * *,unsigned short const * *) 1213 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,unsigned short const *,unsigned short const *) 1214 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1215 void AfxOleSetUserCtrl(int) 1216 void AfxOleTerm(int) 1217 void AfxOleTermOrFreeLib(int,int) 1218 int AfxOleTypeMatchGuid(ITypeInfo *,tagTYPEDESC *,_GUID const &,unsigned long) 1219 void AfxOleUnlockAllControls() 1220 void AfxOleUnlockApp() 1221 int AfxOleUnlockControl(_GUID const &) 1222 int AfxOleUnlockControl(unsigned short const *) 1223 int AfxOleUnregisterClass(_GUID const &,unsigned short const *) 1224 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1225 int AfxParseURL(unsigned short const *,unsigned long &,CString &,CString &,unsigned short &) 1226 void AfxPostQuitMessage(int) 1227 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1228 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1229 int AfxRegisterClass(tagWNDCLASSW *) 1230 unsigned short const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1231 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1232 void AfxResetMsgCache() 1233 int AfxResolveShortcut(CWnd *,unsigned short const *,unsigned short *,int) 1234 void AfxRFXBulkDefault(CFieldExchange *,unsigned short const *,void *,long *,int,unsigned int) 1235 void AfxSafeArrayInit(COleSafeArray *) 1236 void AfxSetCurrentRecord(long *,long,short) 1237 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 1238 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1239 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 1240 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1241 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1242 void AfxSetRecordCount(long *,long,long,int,short) 1243 void AfxSetWindowText(HWND__ *,unsigned short const *) 1244 int AfxSocketInit(WSAData *) 1245 void AfxSocketTerm() 1246 void AfxStoreField(CRecordset &,unsigned int,void *) 1247 CString AfxStringFromCLSID(_GUID const &) 1248 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1249 void AfxTermLocalData(HINSTANCE__ *,int) 1250 void AfxTermThread(HINSTANCE__ *) 1251 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1252 void AfxThrowArchiveException(int,unsigned short const *) 1253 void AfxThrowDaoException(int,long) 1254 void AfxThrowDBException(short,CDatabase *,void *) 1255 void AfxThrowFileException(int,long,unsigned short const *) 1256 void AfxThrowInternetException(unsigned long,unsigned long) 1257 void AfxThrowLastCleanup() 1258 void AfxThrowMemoryException() 1259 void AfxThrowNotSupportedException() 1260 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1261 void AfxThrowOleDispatchException(unsigned short,unsigned short const *,unsigned int) 1262 void AfxThrowOleException(long) 1263 void AfxThrowResourceException() 1264 void AfxThrowUserException() 1557 void AfxTimeToFileTime(CTime const &,_FILETIME *) 1558 void AfxTlsAddRef() 1559 void AfxTlsRelease() 1560 void AfxTryCleanup() 1561 int AfxUnhookWindowCreate() 1562 void AfxUnlockGlobals(int) 1563 int AfxUnlockTempMaps(int) 1564 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1565 void AfxVariantInit(tagVARIANT *) 1566 int AfxVerifyLicFile(HINSTANCE__ *,unsigned short const *,unsigned short const *,unsigned int) 1567 char * AfxW2AHelper(char *,unsigned short const *,int) 1568 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,unsigned short *,int) 1569 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,unsigned short *,int) 1570 void AfxWinTerm() 1571 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1572 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1573 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1574 unsigned char * CMemFile::Alloc(unsigned long) 1575 unsigned char * CSharedFile::Alloc(unsigned long) 1576 void CRecordset::AllocAndCacheFieldInfo() 1577 void CString::AllocBeforeWrite(int) 1578 void CString::AllocBuffer(int) 1579 void CDaoRecordset::AllocCache() 1580 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 1581 void CDatabase::AllocConnect(unsigned long) 1582 void CString::AllocCopy(CString &,int,int,int)const 1583 void COleSafeArray::AllocData() 1584 void CDaoRecordset::AllocDatabase() 1585 void CRecordset::AllocDataCache() 1586 void COleSafeArray::AllocDescriptor(unsigned long) 1587 int CControlBar::AllocElements(int,int) 1588 int CStatusBar::AllocElements(int,int) 1589 int CRecordset::AllocHstmt() 1590 void AllocLongBinary(CLongBinary &,unsigned long) 1591 void CRecordset::AllocRowset() 1592 int CThreadSlotData::AllocSlot() 1593 void CRecordset::AllocStatusArrays() 1594 unsigned short * CString::AllocSysString()const 1595 void * CProperty::AllocValue(unsigned long) 1596 short COleControl::AmbientAppearance() 1597 unsigned long COleControl::AmbientBackColor() 1598 CString COleControl::AmbientDisplayName() 1599 IFontDisp * COleControl::AmbientFont() 1600 unsigned long COleControl::AmbientForeColor() 1601 unsigned long COleControl::AmbientLocaleID() 1602 CString COleControl::AmbientScaleUnits() 1603 int COleControl::AmbientShowGrabHandles() 1604 int COleControl::AmbientShowHatching() 1605 short COleControl::AmbientTextAlign() 1606 int COleControl::AmbientUIDead() 1607 int COleControl::AmbientUserMode() 1608 int CByteArray::Append(CByteArray const &) 1609 void CDaoQueryDef::Append() 1610 void CDaoTableDef::Append() 1611 void CDaoWorkspace::Append() 1612 int CDWordArray::Append(CDWordArray const &) 1613 int CObArray::Append(CObArray const &) 1614 int CPtrArray::Append(CPtrArray const &) 1615 int CStringArray::Append(CStringArray const &) 1616 int CUIntArray::Append(CUIntArray const &) 1617 int CWordArray::Append(CWordArray const &) 1618 void CRecordset::AppendFilterAndSortSQL() 1619 unsigned int CRecordset::AppendNames(CString *,unsigned short const *) 1620 unsigned int CRecordset::AppendNamesValues(void *,CString *,unsigned short const *) 1621 void CDaoFieldExchange::AppendParamType(CString &,unsigned long) 1622 unsigned int CRecordset::AppendValues(void *,CString *,unsigned short const *) 1623 long COlePropertyPage::XPropertyPage::Apply() 1624 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1625 int COleDocument::ApplyPrintDevice(tagPDW const *) 1626 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1627 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1628 void CObject::AssertValid()const 1629 void CString::AssignCopy(int,unsigned short const *) 1630 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1631 int CAsyncSocket::AsyncSelect(long) 1632 int CAsyncSocket::Attach(unsigned int,long) 1633 int CDC::Attach(HDC__ *) 1634 int CGdiObject::Attach(void *) 1635 int CImageList::Attach(_IMAGELIST *) 1636 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1637 int CMenu::Attach(HMENU__ *) 1638 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1639 int CMonikerFile::Attach(unsigned short const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1640 void COleDataObject::Attach(IDataObject *,int) 1641 void COleSafeArray::Attach(tagVARIANT &) 1642 void COleStreamFile::Attach(IStream *) 1643 void COleVariant::Attach(tagVARIANT &) 1644 int CWnd::Attach(HWND__ *) 1645 int COleDataObject::AttachClipboard() 1646 void CWnd::AttachControlSite(CHandleMap *) 1647 void CWnd::AttachControlSite(CWnd *) 1648 void COleClientItem::AttachDataObject(COleDataObject &)const 1649 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1650 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1651 CPrintDialog * CPrintDialog::AttachOnSetup() 1652 void COleControlSite::AttachWindow() 1653 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1654 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1655 void COleMessageFilter::BeginBusyState() 1656 int CDragListBox::BeginDrag(CPoint) 1657 void COleDataObject::BeginEnumFormats() 1658 void CFrameWnd::BeginModalState() 1659 void CWnd::BeginModalState() 1660 void CDaoWorkspace::BeginTrans() 1661 int CDatabase::BeginTrans() 1662 void CCmdTarget::BeginWaitCursor() 1663 int CAsyncSocket::Bind(unsigned int,unsigned short const *) 1664 void CDataSourceControl::BindColumns() 1665 void COccManager::BindControls(CWnd *) 1666 void COleControlSite::BindDefaultProperty(long,unsigned short,unsigned short const *,CWnd *) 1667 void CWnd::BindDefaultProperty(long,unsigned short,unsigned short const *,CWnd *) 1668 void CDaoRecordset::BindFields() 1669 void CRecordset::BindFieldsForUpdate() 1670 unsigned int CRecordset::BindFieldsToColumns() 1671 void CDaoRecordset::BindParameters() 1672 void CDatabase::BindParameters(void *) 1673 unsigned int CRecordset::BindParams(void *) 1674 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1675 void CDataSourceControl::BindProp(COleControlSite *,int) 1676 void COleControlSite::BindProperty(long,CWnd *) 1677 void CWnd::BindProperty(long,CWnd *) 1678 void COleControl::BoundPropertyChanged(long) 1679 int COleControl::BoundPropertyRequestEdit(long) 1680 void CFrameWnd::BringToTop(int) 1681 void CDBException::BuildErrorString(CDatabase *,void *,int) 1682 void CDaoRecordset::BuildParameterList() 1683 void CPropertySheet::BuildPropPageArray() 1684 void CDaoRecordset::BuildSelectList() 1685 void CRecordset::BuildSelectSQL() 1686 int COleControl::BuildSharedMenu() 1687 int COleDocIPFrameWnd::BuildSharedMenu() 1688 int COleIPFrameWnd::BuildSharedMenu() 1689 void CDaoRecordset::BuildSQL() 1690 void CRecordset::BuildSQL(unsigned short const *) 1691 void CRecordset::BuildUpdateSQL() 1692 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1693 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1694 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1695 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1696 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1697 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1698 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1699 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1700 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1701 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1702 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1703 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1704 CSize CControlBar::CalcFixedLayout(int,int) 1705 CSize CDialogBar::CalcFixedLayout(int,int) 1706 CSize CDockBar::CalcFixedLayout(int,int) 1707 CSize CStatusBar::CalcFixedLayout(int,int) 1708 CSize CToolBar::CalcFixedLayout(int,int) 1709 void CControlBar::CalcInsideRect(CRect &,int)const 1710 void CStatusBar::CalcInsideRect(CRect &,int)const 1711 CSize CToolBar::CalcLayout(unsigned long,int) 1712 int CCheckListBox::CalcMinimumItemHeight() 1713 CSize CPreviewView::CalcPageDisplaySize() 1714 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1715 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1716 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1717 void CMiniFrameWnd::CalcWindowRect(tagRECT *,unsigned int) 1718 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1719 void CView::CalcWindowRect(tagRECT *,unsigned int) 1720 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1721 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1722 int COleClientItem::CanActivate() 1723 int CRichEditCntrItem::CanActivate() 1724 int CSplitterWnd::CanActivateNext(int) 1725 int CDaoRecordset::CanAppend()const 1726 int CDaoRecordset::CanBookmark() 1727 int CRecordset::CanBookmark()const 1728 void CDatabase::Cancel() 1729 void CRecordset::Cancel() 1730 void CSocket::CancelBlockingCall() 1731 void CDragListBox::CancelDrag(CPoint) 1732 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1733 long COleUILinkInfo::CancelLink(unsigned long) 1734 void CDockContext::CancelLoop() 1735 void CPropertyPage::CancelToClose() 1736 void CWnd::CancelToolTips(int) 1737 void CDaoRecordset::CancelUpdate() 1738 void CRecordset::CancelUpdate() 1739 int CDocument::CanCloseFrame(CFrameWnd *) 1740 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1741 int COleClientItem::CanCreateFromData(COleDataObject const *) 1742 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1743 unsigned long CDockContext::CanDock() 1744 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1745 int CFrameWnd::CanEnterHelpMode() 1746 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1747 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1748 int COleClientItem::CanPaste() 1749 int CRichEditCtrl::CanPaste(unsigned int)const 1750 int CRichEditView::CanPaste()const 1751 int COleClientItem::CanPasteLink() 1752 int CDaoRecordset::CanRestart() 1753 int CDaoRecordset::CanScroll()const 1754 int CDaoDatabase::CanTransact() 1755 int CDaoRecordset::CanTransact() 1756 int CDaoDatabase::CanUpdate() 1757 int CDaoQueryDef::CanUpdate() 1758 int CDaoRecordset::CanUpdate()const 1759 int CDaoTableDef::CanUpdate() 1760 void CScrollView::CenterOnPoint(CPoint) 1761 void CWnd::CenterWindow(CWnd *) 1762 void CPicturePropPage::ChangePicture(IPicture *) 1763 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1764 int CListBox::CharToItem(unsigned int,unsigned int) 1765 int CDatabase::Check(short)const 1766 int CRecordset::Check(short)const 1767 int CDialog::CheckAutoCenter() 1768 int CWnd::CheckAutoCenter() 1769 void CArchive::CheckCount() 1770 void COleControlContainer::CheckDlgButton(int,unsigned int) 1771 void CWnd::CheckDlgButton(int,unsigned int) 1772 int CCheckListBox::CheckFromPoint(CPoint,int &) 1773 void COleClientItem::CheckGeneral(long) 1774 void COleControlContainer::CheckRadioButton(int,int,int) 1775 void CWnd::CheckRadioButton(int,int,int) 1776 void COleDateTime::CheckRange() 1777 void COleDateTimeSpan::CheckRange() 1778 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1779 void CRecordset::CheckRowsetError(short) 1780 CRuntimeconst CAnimateCtrl::classCAnimateCtrl 1781 CRuntimeconst CArchiveException::classCArchiveException 1782 CRuntimeconst CAsyncMonikerFile::classCAsyncMonikerFile 1783 CRuntimeconst CAsyncSocket::classCAsyncSocket 1784 CRuntimeconst CBitmap::classCBitmap 1785 CRuntimeconst CBitmapButton::classCBitmapButton 1786 CRuntimeconst CBrush::classCBrush 1787 CRuntimeconst CButton::classCButton 1788 CRuntimeCByteArray::classCByteArray 1789 CRuntimeconst CCheckListBox::classCCheckListBox 1790 CRuntimeconst CClientDC::classCClientDC 1791 CRuntimeconst CCmdTarget::classCCmdTarget 1792 CRuntimeconst CColorDialog::classCColorDialog 1793 CRuntimeconst CColorPropPage::classCColorPropPage 1794 CRuntimeconst CComboBox::classCComboBox 1795 CRuntimeconst CControlBar::classCControlBar 1796 CRuntimeconst CCriticalSection::classCCriticalSection 1797 CRuntimeconst CCtrlView::classCCtrlView 1798 CRuntimeconst CDaoDatabase::classCDaoDatabase 1799 CRuntimeconst CDaoException::classCDaoException 1800 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 1801 CRuntimeconst CDaoRecordset::classCDaoRecordset 1802 CRuntimeconst CDaoRecordView::classCDaoRecordView 1803 CRuntimeconst CDaoTableDef::classCDaoTableDef 1804 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 1805 CRuntimeconst CDatabase::classCDatabase 1806 CRuntimeconst CDBException::classCDBException 1807 CRuntimeconst CDC::classCDC 1808 CRuntimeconst CDialog::classCDialog 1809 CRuntimeconst CDialogBar::classCDialogBar 1810 CRuntimeCDocItem::classCDocItem 1811 CRuntimeconst CDockBar::classCDockBar 1812 CRuntimeCDockState::classCDockState 1813 CRuntimeconst CDocManager::classCDocManager 1814 CRuntimeconst CDocObjectServer::classCDocObjectServer 1815 CRuntimeconst CDocObjectServerItem::classCDocObjectServerItem 1816 CRuntimeconst CDocTemplate::classCDocTemplate 1817 CRuntimeconst CDocument::classCDocument 1818 CRuntimeconst CDragListBox::classCDragListBox 1819 CRuntimeCDWordArray::classCDWordArray 1820 CRuntimeconst CDynLinkLibrary::classCDynLinkLibrary 1821 CRuntimeconst CEdit::classCEdit 1822 CRuntimeconst CEditView::classCEditView 1823 CRuntimeconst CEvent::classCEvent 1824 CRuntimeconst CException::classCException 1825 CRuntimeconst CFile::classCFile 1826 CRuntimeconst CFileDialog::classCFileDialog 1827 CRuntimeconst CFileException::classCFileException 1828 CRuntimeconst CFileFind::classCFileFind 1829 CRuntimeconst CFindReplaceDialog::classCFindReplaceDialog 1830 CRuntimeconst CFont::classCFont 1831 CRuntimeconst CFontDialog::classCFontDialog 1832 CRuntimeconst CFontPropPage::classCFontPropPage 1833 CRuntimeconst CFormView::classCFormView 1834 CRuntimeconst CFrameWnd::classCFrameWnd 1835 CRuntimeconst CGdiObject::classCGdiObject 1836 CRuntimeconst CHeaderCtrl::classCHeaderCtrl 1837 CRuntimeconst CHotKeyCtrl::classCHotKeyCtrl 1838 CRuntimeconst CImageList::classCImageList 1839 CRuntimeconst CListBox::classCListBox 1840 CRuntimeconst CListCtrl::classCListCtrl 1841 CRuntimeconst CListView::classCListView 1842 CRuntimeconst CLongBinary::classCLongBinary 1843 CRuntimeconst CMapPtrToPtr::classCMapPtrToPtr 1844 CRuntimeconst CMapPtrToWord::classCMapPtrToWord 1845 CRuntimeCMapStringToOb::classCMapStringToOb 1846 CRuntimeconst CMapStringToPtr::classCMapStringToPtr 1847 CRuntimeCMapStringToString::classCMapStringToString 1848 CRuntimeCMapWordToOb::classCMapWordToOb 1849 CRuntimeconst CMapWordToPtr::classCMapWordToPtr 1850 CRuntimeconst CMDIChildWnd::classCMDIChildWnd 1851 CRuntimeconst CMDIFrameWnd::classCMDIFrameWnd 1852 CRuntimeconst CMemFile::classCMemFile 1853 CRuntimeconst CMemoryException::classCMemoryException 1854 CRuntimeconst CMenu::classCMenu 1855 CRuntimeconst CMetaFileDC::classCMetaFileDC 1856 CRuntimeconst CMiniDockFrameWnd::classCMiniDockFrameWnd 1857 CRuntimeconst CMiniFrameWnd::classCMiniFrameWnd 1858 CRuntimeconst CMonikerFile::classCMonikerFile 1859 CRuntimeconst CMultiDocTemplate::classCMultiDocTemplate 1860 CRuntimeconst CMutex::classCMutex 1861 CRuntimeconst CNotSupportedException::classCNotSupportedException 1862 CRuntimeCObArray::classCObArray 1863 CRuntimeconst CObject::classCObject 1864 CRuntimeCObList::classCObList 1865 CRuntimeconst COleBusyDialog::classCOleBusyDialog 1866 CRuntimeconst COleChangeIconDialog::classCOleChangeIconDialog 1867 CRuntimeconst COleChangeSourceDialog::classCOleChangeSourceDialog 1868 CRuntimeconst COleClientItem::classCOleClientItem 1869 CRuntimeconst COleControl::classCOleControl 1870 CRuntimeconst COleControlModule::classCOleControlModule 1871 CRuntimeconst COleConvertDialog::classCOleConvertDialog 1872 CRuntimeconst COleDialog::classCOleDialog 1873 CRuntimeconst COleDispatchException::classCOleDispatchException 1874 CRuntimeconst COleDocIPFrameWnd::classCOleDocIPFrameWnd 1875 CRuntimeconst COleDocument::classCOleDocument 1876 CRuntimeconst COleException::classCOleException 1877 CRuntimeconst COleInsertDialog::classCOleInsertDialog 1878 CRuntimeconst COleIPFrameWnd::classCOleIPFrameWnd 1879 CRuntimeconst COleLinkingDoc::classCOleLinkingDoc 1880 CRuntimeconst COleLinksDialog::classCOleLinksDialog 1881 CRuntimeconst COleObjectFactory::classCOleObjectFactory 1882 CRuntimeconst COlePasteSpecialDialog::classCOlePasteSpecialDialog 1883 CRuntimeconst COlePropertiesDialog::classCOlePropertiesDialog 1884 CRuntimeconst COlePropertyPage::classCOlePropertyPage 1885 CRuntimeconst COleResizeBar::classCOleResizeBar 1886 CRuntimeconst COleServerDoc::classCOleServerDoc 1887 CRuntimeconst COleServerItem::classCOleServerItem 1888 CRuntimeconst COleStreamFile::classCOleStreamFile 1889 CRuntimeconst COleUpdateDialog::classCOleUpdateDialog 1890 CRuntimeconst CPageSetupDialog::classCPageSetupDialog 1891 CRuntimeconst CPaintDC::classCPaintDC 1892 CRuntimeconst CPalette::classCPalette 1893 CRuntimeconst CPen::classCPen 1894 CRuntimeconst CPicturePropPage::classCPicturePropPage 1895 CRuntimeconst CPreviewDC::classCPreviewDC 1896 CRuntimeconst CPreviewView::classCPreviewView 1897 CRuntimeconst CPrintDialog::classCPrintDialog 1898 CRuntimeconst CProgressCtrl::classCProgressCtrl 1899 CRuntimeconst CPropertyPage::classCPropertyPage 1900 CRuntimeconst CPropertySheet::classCPropertySheet 1901 CRuntimeconst CPtrArray::classCPtrArray 1902 CRuntimeconst CPtrList::classCPtrList 1903 CRuntimeconst CRecordset::classCRecordset 1904 CRuntimeconst CRecordView::classCRecordView 1905 CRuntimeconst CResourceException::classCResourceException 1906 CRuntimeconst CRgn::classCRgn 1907 CRuntimeCRichEditCntrItem::classCRichEditCntrItem 1908 CRuntimeconst CRichEditCtrl::classCRichEditCtrl 1909 CRuntimeconst CRichEditDoc::classCRichEditDoc 1910 CRuntimeconst CRichEditView::classCRichEditView 1911 CRuntimeconst CScrollBar::classCScrollBar 1912 CRuntimeconst CScrollView::classCScrollView 1913 CRuntimeconst CSemaphore::classCSemaphore 1914 CRuntimeconst CSharedFile::classCSharedFile 1915 CRuntimeconst CSingleDocTemplate::classCSingleDocTemplate 1916 CRuntimeconst CSliderCtrl::classCSliderCtrl 1917 CRuntimeconst CSocket::classCSocket 1918 CRuntimeconst CSocketFile::classCSocketFile 1919 CRuntimeconst CSpinButtonCtrl::classCSpinButtonCtrl 1920 CRuntimeconst CSplitterWnd::classCSplitterWnd 1921 CRuntimeconst CStatic::classCStatic 1922 CRuntimeconst CStatusBar::classCStatusBar 1923 CRuntimeconst CStatusBarCtrl::classCStatusBarCtrl 1924 CRuntimeconst CStdioFile::classCStdioFile 1925 CRuntimeconst CStockPropPage::classCStockPropPage 1926 CRuntimeCStringArray::classCStringArray 1927 CRuntimeCStringList::classCStringList 1928 CRuntimeconst CSyncObject::classCSyncObject 1929 CRuntimeconst CTabCtrl::classCTabCtrl 1930 CRuntimeconst CToolBar::classCToolBar 1931 CRuntimeconst CToolBarCtrl::classCToolBarCtrl 1932 CRuntimeconst CToolTipCtrl::classCToolTipCtrl 1933 CRuntimeconst CTreeCtrl::classCTreeCtrl 1934 CRuntimeconst CTreeView::classCTreeView 1935 CRuntimeconst CUIntArray::classCUIntArray 1936 CRuntimeconst CUserException::classCUserException 1937 CRuntimeconst CView::classCView 1938 CRuntimeconst CWinApp::classCWinApp 1939 CRuntimeconst CWindowDC::classCWindowDC 1940 CRuntimeconst CWinThread::classCWinThread 1941 CRuntimeconst CWnd::classCWnd 1942 CRuntimeCWordArray::classCWordArray 1943 void CPropertyPage::Cleanup() 1944 void COlePropertyPage::CleanupObjectArray() 1945 void CDBVariant::Clear() 1946 void CDockState::Clear() 1947 void COleVariant::Clear() 1948 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 1949 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1950 void CRecordset::ClearFieldStatus() 1951 void CDaoRecordset::ClearFieldStatusFlags() 1952 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 1953 void CRecordset::ClearNullFieldStatus(unsigned long) 1954 void CRecordset::ClearNullParamStatus(unsigned long) 1955 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1956 int COleControl::ClipCaretRect(tagRECT *) 1957 void CPreviewDC::ClipToPage() 1958 long CArchiveStream::Clone(IStream * *) 1959 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1960 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1961 void CArchive::Close() 1962 void CAsyncMonikerFile::Close() 1963 void CAsyncSocket::Close() 1964 void CCachedDataPathProperty::Close() 1965 void CDaoDatabase::Close() 1966 void CDaoQueryDef::Close() 1967 void CDaoRecordset::Close() 1968 void CDaoTableDef::Close() 1969 void CDaoWorkspace::Close() 1970 void CDatabase::Close() 1971 void CFile::Close() 1972 void CFileFind::Close() 1973 void CFtpConnection::Close() 1974 void CGopherConnection::Close() 1975 void CGopherFile::Close() 1976 void CHttpConnection::Close() 1977 void CHttpFile::Close() 1978 void CInternetConnection::Close() 1979 void CInternetFile::Close() 1980 void CInternetSession::Close() 1981 void CMemFile::Close() 1982 void CMirrorFile::Close() 1983 void CMonikerFile::Close() 1984 void COleClientItem::Close(enum tagOLECLOSE) 1985 void COleStreamFile::Close() 1986 void CRecordset::Close() 1987 void CSocket::Close() 1988 void CSocketFile::Close() 1989 void CStdioFile::Close() 1990 long CDocObjectServer::XOleObject::Close(unsigned long) 1991 long COleControl::XOleObject::Close(unsigned long) 1992 long COleServerDoc::XOleObject::Close(unsigned long) 1993 long COleServerItem::XOleObject::Close(unsigned long) 1994 void CDocManager::CloseAllDocuments(int) 1995 void CDocTemplate::CloseAllDocuments(int) 1996 void CWinApp::CloseAllDocuments(int) 1997 void CFileFind::CloseContext() 1998 void CFtpFileFind::CloseContext() 1999 void CGopherFileFind::CloseContext() 2000 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2001 unsigned long CColorButton::colGetFaceColor() 2002 AFX_OLECMDMAP const CCmdTarget::commandMap 2003 int CStatusBar::CommandToIndex(unsigned int)const 2004 int CToolBar::CommandToIndex(unsigned int)const 2005 long CArchiveStream::Commit(unsigned long) 2006 void COleClientItem::CommitItem(int) 2007 void COleDocument::CommitItems(int) 2008 void CDaoWorkspace::CommitTrans() 2009 int CDatabase::CommitTrans() 2010 void CPropertyPage::CommonConstruct(unsigned short const *,unsigned int) 2011 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2012 void CWinThread::CommonConstruct() 2013 void CDaoWorkspace::CompactDatabase(unsigned short const *,unsigned short const *,unsigned short const *,int) 2014 void CDaoWorkspace::CompactDatabase(unsigned short const *,unsigned short const *,unsigned short const *,int,unsigned short const *) 2015 int CComboBox::CompareItem(tagCOMPAREITEM*) 2016 int CListBox::CompareItem(tagCOMPAREITEM*) 2017 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 2018 CSize CPreviewDC::ComputeDeltas(int &,unsigned short const *,unsigned int &,int,unsigned int,int *,int,unsigned short *,int *,int &) 2019 void CString::ConcatCopy(int,unsigned short const *,int,unsigned short const *) 2020 void CString::ConcatInPlace(int,unsigned short const *) 2021 int CAsyncSocket::Connect(unsigned short const *,unsigned int) 2022 int CDatabase::Connect(unsigned long) 2023 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2024 int CSocket::ConnectHelper(sockaddr const *,int) 2025 AFX_CONNECTIONMAP const CCmdTarget::connectionMap 2026 AFX_CONNECTIONMAP const COleControl::connectionMap 2027 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2028 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2029 void COleServerDoc::ConnectView(CWnd *,CView *) 2030 void CPropertyPage::Construct(unsigned int,unsigned int) 2031 void CPropertyPage::Construct(unsigned short const *,unsigned int) 2032 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2033 void CPropertySheet::Construct(unsigned short const *,CWnd *,unsigned int) 2034 void CRectTracker::Construct() 2035 void ConstructElements(COleVariant *,int) 2036 void ConstructElements(CString *,int) 2037 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2038 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2039 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2040 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2041 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2042 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2043 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2044 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2045 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2046 int CPropertySheet::ContinueModal() 2047 int CWnd::ContinueModal() 2048 void COleControl::ControlInfoChanged() 2049 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2050 int COleClientItem::ConvertTo(_GUID const &) 2051 int CRichEditCntrItem::ConvertTo(_GUID const &) 2052 void CByteArray::Copy(CByteArray const &) 2053 void CDWordArray::Copy(CDWordArray const &) 2054 void CObArray::Copy(CObArray const &) 2055 void COleSafeArray::Copy(tagSAFEARRAY * *) 2056 void CPtrArray::Copy(CPtrArray const &) 2057 void CStringArray::Copy(CStringArray const &) 2058 void CUIntArray::Copy(CUIntArray const &) 2059 void CWordArray::Copy(CWordArray const &) 2060 void CString::CopyBeforeWrite() 2061 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2062 void CopyElements(COleVariant *,COleVariant const *,int) 2063 void CopyElements(CString *,CString const *,int) 2064 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2065 void COleClientItem::CopyToClipboard(int) 2066 void COleServerItem::CopyToClipboard(int) 2067 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 2068 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2069 int CAsyncSocket::Create(unsigned int,int,long,unsigned short const *) 2070 int CButton::Create(unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2071 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2072 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2073 int CControlFrameWnd::Create(unsigned short const *) 2074 void CDaoDatabase::Create(unsigned short const *,unsigned short const *,int) 2075 void CDaoQueryDef::Create(unsigned short const *,unsigned short const *) 2076 void CDaoTableDef::Create(unsigned short const *,long,unsigned short const *,unsigned short const *) 2077 void CDaoWorkspace::Create(unsigned short const *,unsigned short const *,unsigned short const *) 2078 int CDialog::Create(unsigned short const *,CWnd *) 2079 int CDialogBar::Create(CWnd *,unsigned short const *,unsigned int,unsigned int) 2080 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2081 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2082 int CFindReplaceDialog::Create(int,unsigned short const *,unsigned short const *,unsigned long,CWnd *) 2083 int CFormView::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2084 int CFrameWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned short const *,unsigned long,CCreateContext *) 2085 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2086 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2087 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2088 int CImageList::Create(int,int,unsigned int,int,int) 2089 int CImageList::Create(unsigned int,int,int,unsigned long) 2090 int CImageList::Create(unsigned short const *,int,int,unsigned long) 2091 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2092 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2093 int CMDIChildWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2094 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2095 int CMiniFrameWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2096 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2097 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2098 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2099 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2100 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2101 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2102 int CReflectorWnd::Create(CRect const &,HWND__ *) 2103 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2104 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2105 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2106 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2107 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2108 int CStatic::Create(unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2109 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2110 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2111 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2112 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2113 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2114 int CToolTipCtrl::Create(CWnd *,unsigned long) 2115 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2116 int CWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2117 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2118 IBindHost * CMonikerFile::CreateBindHost() 2119 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 2120 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2121 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2122 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2123 void CConnectionPoint::CreateConnectionArray() 2124 COleControlContainer * COccManager::CreateContainer(CWnd *) 2125 int COleControlContainer::CreateControl(CWnd *,_GUID const &,unsigned short const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,unsigned short *,COleControlSite * *) 2126 long COleControlSite::CreateControl(CWnd *,_GUID const &,unsigned short const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,unsigned short *) 2127 int CWnd::CreateControl(_GUID const &,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,unsigned short *) 2128 int CWnd::CreateControl(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,unsigned short *) 2129 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2130 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2131 int CFtpConnection::CreateDirectoryW(unsigned short const *) 2132 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2133 int COleDispatchDriver::CreateDispatch(unsigned short const *,COleException *) 2134 int CWnd::CreateDlg(unsigned short const *,CWnd *) 2135 HWND__ * COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long) 2136 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2137 int COccManager::CreateDlgControls(CWnd *,unsigned short const *,_AFX_OCC_DIALOG_INFO *) 2138 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 2139 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2140 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2141 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2142 int CPictureHolder::CreateEmpty() 2143 int CMiniFrameWnd::CreateEx(unsigned long,unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2144 int CWnd::CreateEx(unsigned long,unsigned short const *,unsigned short const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2145 void CDaoTableDef::CreateField(CDaoFieldInfo &) 2146 void CDaoTableDef::CreateField(unsigned short const *,short,long,long) 2147 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2148 CControlFrameWnd * COleControl::CreateFrameWindow() 2149 int CPictureHolder::CreateFromBitmap(unsigned int) 2150 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2151 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2152 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2153 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2154 int COleClientItem::CreateFromFile(unsigned short const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2155 int CPictureHolder::CreateFromIcon(unsigned int) 2156 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2157 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2158 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 2159 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2160 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2161 int CDialog::CreateIndirect(void *,CWnd *) 2162 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2163 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2164 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2165 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2166 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,unsigned short *,void * *) 2167 int COleInsertDialog::CreateItem(COleClientItem *) 2168 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2169 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2170 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2171 int COleClientItem::CreateLinkFromFile(unsigned short const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2172 CGopherLocator CGopherConnection::CreateLocator(unsigned short const *,unsigned short const *,unsigned long) 2173 CGopherLocator CGopherConnection::CreateLocator(unsigned short const *) 2174 CGopherLocator CGopherConnection::CreateLocator(unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short) 2175 int COleStreamFile::CreateMemoryStream(CFileException *) 2176 CDocument * CDocTemplate::CreateNewDocument() 2177 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2178 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2179 CNoTrackObject * CProcessLocal<_AFX_PROPPAGEFONTINFO>::CreateObject() 2180 CNoTrackObject * CProcessLocal<_AFX_BASE_MODULE_STATE>::CreateObject() 2181 CNoTrackObject * CProcessLocal<_AFX_CHECKLIST_STATE>::CreateObject() 2182 CNoTrackObject * CProcessLocal<_AFX_COLOR_STATE>::CreateObject() 2183 CNoTrackObject * CProcessLocal<_AFX_CTL3D_STATE>::CreateObject() 2184 CNoTrackObject * CProcessLocal<_AFX_DB_STATE>::CreateObject() 2185 CNoTrackObject * CProcessLocal<_AFX_EDIT_STATE>::CreateObject() 2186 CNoTrackObject * CProcessLocal<_AFX_EXTDLL_STATE>::CreateObject() 2187 CNoTrackObject * CProcessLocal<_AFX_MAIL_STATE>::CreateObject() 2188 CNoTrackObject * CProcessLocal<_AFX_OLE_STATE>::CreateObject() 2189 CNoTrackObject * CProcessLocal<_AFX_RICHEDIT_STATE>::CreateObject() 2190 CNoTrackObject * CProcessLocal<_AFX_SOCK_STATE>::CreateObject() 2191 CNoTrackObject * CProcessLocal<_AFX_WIN_STATE>::CreateObject() 2192 CNoTrackObject * CProcessLocal::CreateObject() 2193 CNoTrackObject * CThreadLocal<_AFX_CTL3D_THREAD>::CreateObject() 2194 CNoTrackObject * CThreadLocal<_AFX_THREAD_STATE>::CreateObject() 2195 CNoTrackObject * CThreadLocal<_AFXCTL_AMBIENT_CACHE>::CreateObject() 2196 CNoTrackObject * CThreadLocal::CreateObject() 2197 CObject * CByteArray::CreateObject() 2198 CObject * CColorPropPage::CreateObject() 2199 CObject * CDC::CreateObject() 2200 CObject * CDocItem::CreateObject() 2201 CObject * CDockState::CreateObject() 2202 CObject * CDWordArray::CreateObject() 2203 CObject * CEditView::CreateObject() 2204 CObject * CFontPropPage::CreateObject() 2205 CObject * CFrameWnd::CreateObject() 2206 CObject * CGdiObject::CreateObject() 2207 CObject * CImageList::CreateObject() 2208 CObject * CListView::CreateObject() 2209 CObject * CMapStringToOb::CreateObject() 2210 CObject * CMapStringToString::CreateObject() 2211 CObject * CMapWordToOb::CreateObject() 2212 CObject * CMDIChildWnd::CreateObject() 2213 CObject * CMDIFrameWnd::CreateObject() 2214 CObject * CMenu::CreateObject() 2215 CObject * CMiniDockFrameWnd::CreateObject() 2216 CObject * CMiniFrameWnd::CreateObject() 2217 CObject * CObArray::CreateObject() 2218 CObject * CObList::CreateObject() 2219 CObject * COleDocIPFrameWnd::CreateObject() 2220 CObject * COleIPFrameWnd::CreateObject() 2221 CObject * CPicturePropPage::CreateObject() 2222 CObject * CPreviewView::CreateObject() 2223 CObject * CRichEditCntrItem::CreateObject() 2224 CObject * CRichEditView::CreateObject() 2225 CObject * CRuntimeClass::CreateObject() 2226 CObject * CStringArray::CreateObject() 2227 CObject * CStringList::CreateObject() 2228 CObject * CTreeView::CreateObject() 2229 CObject * CWnd::CreateObject() 2230 CObject * CWordArray::CreateObject() 2231 void COleControlContainer::CreateOleFont(CFont *) 2232 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2233 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2234 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,unsigned short *) 2235 int CFont::CreatePointFont(int,unsigned short const *,CDC *) 2236 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 2237 HDC__ * CPageSetupDialog::CreatePrinterDC() 2238 HDC__ * CPrintDialog::CreatePrinterDC() 2239 int CWinApp::CreatePrinterDC(CDC &) 2240 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 2241 void CDaoDatabase::CreateRelation(unsigned short const *,unsigned short const *,unsigned short const *,long,unsigned short const *,unsigned short const *) 2242 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2243 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2244 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2245 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2246 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2247 int COleStreamFile::CreateStream(IStorage *,unsigned short const *,unsigned long,CFileException *) 2248 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2249 void COleControl::CreateTracker(int,int) 2250 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2251 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2252 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2253 void COleControl::CreateWindowForSubclassedControl() 2254 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2255 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2256 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2257 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2258 void DDP_Check(CDataExchange *,int,int &,unsigned short const *) 2259 void DDP_EndCheck(CDataExchange *,int,int *,unsigned short const *) 2260 void DDP_EndRadio(CDataExchange *,int,int *,unsigned short const *) 2261 void DDP_EndText(CDataExchange *,int,unsigned char *,unsigned short const *) 2262 void DDP_EndText(CDataExchange *,int,short *,unsigned short const *) 2263 void DDP_EndText(CDataExchange *,int,int *,unsigned short const *) 2264 void DDP_EndText(CDataExchange *,int,unsigned int *,unsigned short const *) 2265 void DDP_EndText(CDataExchange *,int,long *,unsigned short const *) 2266 void DDP_EndText(CDataExchange *,int,unsigned long *,unsigned short const *) 2267 void DDP_EndText(CDataExchange *,int,float *,unsigned short const *) 2268 void DDP_EndText(CDataExchange *,int,double *,unsigned short const *) 2269 void DDP_EndText(CDataExchange *,int,CString *,unsigned short const *) 2270 void DDP_PostProcessing(CDataExchange *) 2271 void DDP_Radio(CDataExchange *,int,int &,unsigned short const *) 2272 void DDP_Text(CDataExchange *,int,unsigned char &,unsigned short const *) 2273 void DDP_Text(CDataExchange *,int,short &,unsigned short const *) 2274 void DDP_Text(CDataExchange *,int,int &,unsigned short const *) 2275 void DDP_Text(CDataExchange *,int,unsigned int &,unsigned short const *) 2276 void DDP_Text(CDataExchange *,int,long &,unsigned short const *) 2277 void DDP_Text(CDataExchange *,int,unsigned long &,unsigned short const *) 2278 void DDP_Text(CDataExchange *,int,float &,unsigned short const *) 2279 void DDP_Text(CDataExchange *,int,double &,unsigned short const *) 2280 void DDP_Text(CDataExchange *,int,CString &,unsigned short const *) 2281 void DDV_MaxChars(CDataExchange *,CString const &,int) 2282 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2283 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2284 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2285 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2286 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2287 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2288 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2289 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2290 void DDX_CBIndex(CDataExchange *,int,int &) 2291 void DDX_CBString(CDataExchange *,int,CString &) 2292 void DDX_CBStringExact(CDataExchange *,int,CString &) 2293 void DDX_Check(CDataExchange *,int,int &) 2294 void DDX_Control(CDataExchange *,int,CWnd &) 2295 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2296 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2297 void DDX_FieldCBString(CDataExchange *,int,CString &,CDaoRecordset *) 2298 void DDX_FieldCBString(CDataExchange *,int,CString &,CRecordset *) 2299 void DDX_FieldCBStringExact(CDataExchange *,int,CString &,CDaoRecordset *) 2300 void DDX_FieldCBStringExact(CDataExchange *,int,CString &,CRecordset *) 2301 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 2302 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2303 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2304 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2305 void DDX_FieldLBString(CDataExchange *,int,CString &,CDaoRecordset *) 2306 void DDX_FieldLBString(CDataExchange *,int,CString &,CRecordset *) 2307 void DDX_FieldLBStringExact(CDataExchange *,int,CString &,CDaoRecordset *) 2308 void DDX_FieldLBStringExact(CDataExchange *,int,CString &,CRecordset *) 2309 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 2310 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2311 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 2312 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2313 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 2314 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2315 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 2316 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 2317 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2318 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2319 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 2320 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2321 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 2322 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2323 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 2324 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2325 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 2326 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2327 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 2328 void DDX_FieldText(CDataExchange *,int,COleDateTime &,CDaoRecordset *) 2329 void DDX_FieldText(CDataExchange *,int,CString &,CDaoRecordset *) 2330 void DDX_FieldText(CDataExchange *,int,CString &,CRecordset *) 2331 void DDX_LBIndex(CDataExchange *,int,int &) 2332 void DDX_LBString(CDataExchange *,int,CString &) 2333 void DDX_LBStringExact(CDataExchange *,int,CString &) 2334 void DDX_OCBool(CDataExchange *,int,long,int &) 2335 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2336 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2337 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2338 void DDX_OCFloat(CDataExchange *,int,long,float &) 2339 void DDX_OCFloat(CDataExchange *,int,long,double &) 2340 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2341 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2342 void DDX_OCInt(CDataExchange *,int,long,int &) 2343 void DDX_OCInt(CDataExchange *,int,long,long &) 2344 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2345 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2346 void DDX_OCShort(CDataExchange *,int,long,short &) 2347 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2348 void DDX_OCText(CDataExchange *,int,long,CString &) 2349 void DDX_OCTextRO(CDataExchange *,int,long,CString &) 2350 void DDX_Radio(CDataExchange *,int,int &) 2351 void DDX_Scroll(CDataExchange *,int,int &) 2352 void DDX_Text(CDataExchange *,int,unsigned char &) 2353 void DDX_Text(CDataExchange *,int,short &) 2354 void DDX_Text(CDataExchange *,int,int &) 2355 void DDX_Text(CDataExchange *,int,unsigned int &) 2356 void DDX_Text(CDataExchange *,int,long &) 2357 void DDX_Text(CDataExchange *,int,unsigned long &) 2358 void DDX_Text(CDataExchange *,int,float &) 2359 void DDX_Text(CDataExchange *,int,double &) 2360 void DDX_Text(CDataExchange *,int,COleCurrency &) 2361 void DDX_Text(CDataExchange *,int,COleDateTime &) 2362 void DDX_Text(CDataExchange *,int,CString &) 2363 void COleClientItem::Deactivate() 2364 long COlePropertyPage::XPropertyPage::Deactivate() 2365 int COleServerDoc::DeactivateAndUndo() 2366 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2367 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2368 void COleClientItem::DeactivateUI() 2369 void CDaoFieldExchange::Default(unsigned short const *,void *,unsigned long,unsigned long) 2370 void CFieldExchange::Default(unsigned short const *,void *,long *,int,unsigned int,unsigned int) 2371 long CWnd::Default() 2372 void CRect::DeflateRect(int,int,int,int) 2373 void CRect::DeflateRect(tagRECT const *) 2374 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 2375 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 2376 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 2377 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 2378 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2379 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2380 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2381 void CControlBar::DelayShow(int) 2382 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2383 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2384 void CDaoRecordset::Delete() 2385 void CException::Delete() 2386 void COleClientItem::Delete(int) 2387 void CRecordset::Delete() 2388 void CWinThread::Delete() 2389 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 2390 void CSplitterWnd::DeleteColumn(int) 2391 void CDocument::DeleteContents() 2392 void CEditView::DeleteContents() 2393 void COleDocument::DeleteContents() 2394 void COleServerDoc::DeleteContents() 2395 void CRichEditDoc::DeleteContents() 2396 void CRichEditView::DeleteContents() 2397 int CDC::DeleteDC() 2398 void CDaoTableDef::DeleteField(int) 2399 void CDaoTableDef::DeleteField(unsigned short const *) 2400 int CImageList::DeleteImageList() 2401 void CDaoTableDef::DeleteIndex(int) 2402 void CDaoTableDef::DeleteIndex(unsigned short const *) 2403 void CComboBox::DeleteItem(tagDELETEITEM*) 2404 void CFontComboBox::DeleteItem(tagDELETEITEM*) 2405 void CListBox::DeleteItem(tagDELETEITEM*) 2406 int CGdiObject::DeleteObject() 2407 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2408 void CDaoDatabase::DeleteQueryDef(unsigned short const *) 2409 void CDaoDatabase::DeleteRelation(unsigned short const *) 2410 void CSplitterWnd::DeleteRow(int) 2411 void CDaoDatabase::DeleteTableDef(unsigned short const *) 2412 void CHandleMap::DeleteTemp() 2413 void CDC::DeleteTempMap() 2414 void CGdiObject::DeleteTempMap() 2415 void CImageList::DeleteTempMap() 2416 void CMenu::DeleteTempMap() 2417 void CWnd::DeleteTempMap() 2418 void CRichEditDoc::DeleteUnmarkedItems()const 2419 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2420 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2421 void CSplitterWnd::DeleteView(int,int) 2422 long CWinApp::DelRegTree(HKEY__ *,CString const &) 2423 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2424 void COleSafeArray::Destroy() 2425 int COleControlSite::DestroyControl() 2426 void COleSafeArray::DestroyData() 2427 void COleSafeArray::DestroyDescriptor() 2428 void CFrameWnd::DestroyDockBars() 2429 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2430 int CMenu::DestroyMenu() 2431 void COleControl::DestroySharedMenu() 2432 void COleDocIPFrameWnd::DestroySharedMenu() 2433 void COleIPFrameWnd::DestroySharedMenu() 2434 int CToolTipCtrl::DestroyToolTipCtrl() 2435 void COleControl::DestroyTracker() 2436 int CControlBar::DestroyWindow() 2437 int CMDIChildWnd::DestroyWindow() 2438 int CWnd::DestroyWindow() 2439 void DestructElements(COleVariant *,int) 2440 void DestructElements(CString *,int) 2441 unsigned int CAsyncSocket::Detach() 2442 HDC__ * CDC::Detach() 2443 void * CDialogTemplate::Detach() 2444 void * CGdiObject::Detach() 2445 _IMAGELIST * CImageList::Detach() 2446 unsigned char * CMemFile::Detach() 2447 HMENU__ * CMenu::Detach() 2448 int CMonikerFile::Detach(CFileException *) 2449 IDataObject * COleDataObject::Detach() 2450 tagVARIANT COleSafeArray::Detach() 2451 IStream * COleStreamFile::Detach() 2452 tagVARIANT COleVariant::Detach() 2453 void * CSharedFile::Detach() 2454 HDC__ * CWindowlessDC::Detach() 2455 HWND__ * CWnd::Detach() 2456 IDispatch * COleDispatchDriver::DetachDispatch() 2457 void CAsyncSocket::DetachHandle(unsigned int,int) 2458 void COleControlSite::DetachWindow() 2459 void CWinApp::DevModeChange(unsigned short *) 2460 void DFX_Binary(CDaoFieldExchange *,unsigned short const *,CByteArray &,int,unsigned long) 2461 void DFX_Bool(CDaoFieldExchange *,unsigned short const *,int &,unsigned long) 2462 void DFX_Byte(CDaoFieldExchange *,unsigned short const *,unsigned char &,unsigned long) 2463 void DFX_Currency(CDaoFieldExchange *,unsigned short const *,COleCurrency &,unsigned long) 2464 void DFX_DateTime(CDaoFieldExchange *,unsigned short const *,COleDateTime &,unsigned long) 2465 void DFX_Double(CDaoFieldExchange *,unsigned short const *,double &,unsigned long) 2466 void DFX_Long(CDaoFieldExchange *,unsigned short const *,long &,unsigned long) 2467 void DFX_LongBinary(CDaoFieldExchange *,unsigned short const *,CLongBinary &,unsigned long,unsigned long) 2468 void DFX_Short(CDaoFieldExchange *,unsigned short const *,short &,unsigned long) 2469 void DFX_Single(CDaoFieldExchange *,unsigned short const *,float &,unsigned long) 2470 void DFX_Text(CDaoFieldExchange *,unsigned short const *,CString &,int,unsigned long) 2471 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2472 int COleServerDoc::DiscardUndoState() 2473 long COleClientItem::XOleIPSite::DiscardUndoState() 2474 long COleControlSite::XOleIPSite::DiscardUndoState() 2475 void COleDispatchImpl::Disconnect() 2476 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2477 void CDocument::DisconnectViews() 2478 AFX_DISPMAP const CCmdTarget::dispatchMap 2479 void CWinThread::DispatchThreadMessage(tagMSG *) 2480 void COleControl::DisplayError(long,unsigned short const *,unsigned short const *,unsigned short const *,unsigned int) 2481 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2482 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2483 void CAsyncSocket::DoCallBack(unsigned int,long) 2484 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2485 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2486 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2487 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2488 void COleControl::DoClick() 2489 int COleFrameHook::DoContextSensitiveHelp(int) 2490 int COleConvertDialog::DoConvert(COleClientItem *) 2491 void CColorPropPage::DoDataExchange(CDataExchange *) 2492 void CFontPropPage::DoDataExchange(CDataExchange *) 2493 void CPicturePropPage::DoDataExchange(CDataExchange *) 2494 void CWnd::DoDataExchange(CDataExchange *) 2495 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2496 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2497 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2498 int COleFrameHook::DoEnableModeless(int) 2499 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2500 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 2501 void CRecordset::DoFieldExchange(CFieldExchange *) 2502 int CDocument::DoFileSave() 2503 int CSplitterWnd::DoKeyboardSplit() 2504 int CWinApp::DoMessageBox(unsigned short const *,unsigned int,unsigned int) 2505 int CColorDialog::DoModal() 2506 int CDialog::DoModal() 2507 int CFileDialog::DoModal() 2508 int CFontDialog::DoModal() 2509 int COleBusyDialog::DoModal() 2510 int COleChangeIconDialog::DoModal() 2511 int COleChangeSourceDialog::DoModal() 2512 int COleConvertDialog::DoModal() 2513 int COleInsertDialog::DoModal() 2514 int COleLinksDialog::DoModal() 2515 int COlePasteSpecialDialog::DoModal() 2516 int COlePropertiesDialog::DoModal() 2517 int COleUpdateDialog::DoModal() 2518 int CPageSetupDialog::DoModal() 2519 int CPrintDialog::DoModal() 2520 int CPropertySheet::DoModal() 2521 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2522 void CControlBar::DoPaint(CDC *) 2523 void CDockBar::DoPaint(CDC *) 2524 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2525 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2526 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2527 int CView::DoPreparePrinting(CPrintInfo *) 2528 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2529 int CWinApp::DoPrintDialog(CPrintDialog *) 2530 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2531 int CDocManager::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 2532 int CWinApp::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 2533 void COleControl::DoPropExchange(CPropExchange *) 2534 int CDocument::DoSave(unsigned short const *,int) 2535 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2536 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2537 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2538 int CCmdUI::DoUpdate(CCmdTarget *,int) 2539 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2540 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2541 long COleControlSite::DoVerb(long,tagMSG *) 2542 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2543 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2544 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2545 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2546 void CWinApp::DoWaitCursor(int) 2547 void CPreviewView::DoZoom(unsigned int,CPoint) 2548 void CDC::DPtoHIMETRIC(tagSIZE *)const 2549 void CDC::DPtoLP(tagSIZE *)const 2550 void CWnd::DragAcceptFiles(int) 2551 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2552 unsigned int CDragListBox::Dragging(CPoint) 2553 long COleDropTarget::XDropTarget::DragLeave() 2554 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2555 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2556 void CRectTracker::Draw(CDC *)const 2557 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2558 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2559 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2560 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2561 void CControlBar::DrawBorders(CDC *,CRect &) 2562 void COleControl::DrawContent(CDC *,CRect &) 2563 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2564 void CDockContext::DrawFocusRect(int) 2565 void CDragListBox::DrawInsert(int) 2566 void CBitmapButton::DrawItem(tagDRAWITEM*) 2567 void CButton::DrawItem(tagDRAWITEM*) 2568 void CCheckListBox::DrawItem(tagDRAWITEM*) 2569 void CColorButton::DrawItem(tagDRAWITEM*) 2570 void CComboBox::DrawItem(tagDRAWITEM*) 2571 void CFontComboBox::DrawItem(tagDRAWITEM*) 2572 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2573 void CListBox::DrawItem(tagDRAWITEM*) 2574 void CListCtrl::DrawItem(tagDRAWITEM*) 2575 void CListView::DrawItem(tagDRAWITEM*) 2576 void CMenu::DrawItem(tagDRAWITEM*) 2577 void CStatusBar::DrawItem(tagDRAWITEM*) 2578 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2579 void CTabCtrl::DrawItem(tagDRAWITEM*) 2580 void COleControl::DrawMetafile(CDC *,CRect &) 2581 void CDragListBox::DrawSingle(int) 2582 int CDC::DrawTextW(unsigned short const *,int,tagRECT *,unsigned int) 2583 int CMetaFileDC::DrawTextW(unsigned short const *,int,tagRECT *,unsigned int) 2584 int CPreviewDC::DrawTextW(unsigned short const *,int,tagRECT *,unsigned int) 2585 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2586 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2587 void CDragListBox::Dropped(int,CPoint) 2588 void CObject::Dump(CDumpContext &)const 2589 long COleControl::XDataObject::DUnadvise(unsigned long) 2590 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2591 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2592 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2593 CFile * CFile::Duplicate()const 2594 CFile * CInternetFile::Duplicate()const 2595 CFile * CMemFile::Duplicate()const 2596 CFile * COleStreamFile::Duplicate()const 2597 CFile * CSocketFile::Duplicate()const 2598 CFile * CStdioFile::Duplicate()const 2599 unsigned long const CEditView::dwStyleDefault 2600 void CDaoRecordset::Edit() 2601 void CRecordset::Edit() 2602 long COlePropertyPage::XPropertyPage::EditProperty(long) 2603 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2604 void CDBException::Empty() 2605 void COleDataSource::Empty() 2606 void CString::Empty() 2607 void CCheckListBox::Enable(int,int) 2608 void CCmdUI::Enable(int) 2609 void COleCmdUI::Enable(int) 2610 void CStatusCmdUI::Enable(int) 2611 void CTestCmdUI::Enable(int) 2612 void CToolCmdUI::Enable(int) 2613 int CWinApp::Enable3dControls() 2614 void CCmdTarget::EnableAggregation() 2615 void CCmdTarget::EnableAutomation() 2616 void CRecordset::EnableBookmarks() 2617 void CCmdTarget::EnableConnections() 2618 void CControlBar::EnableDocking(unsigned long) 2619 void CFrameWnd::EnableDocking(unsigned long) 2620 void COleControlSite::EnableDSC() 2621 void CWinApp::EnableModeless(int) 2622 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2623 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2624 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2625 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2626 void CWnd::EnableScrollBarCtrl(int,int) 2627 void CWinApp::EnableShellOpen() 2628 void COleControl::EnableSimpleFrame() 2629 void CPropertySheet::EnableStackedTabs(int) 2630 int CInternetSession::EnableStatusCallback(int) 2631 int CWnd::EnableToolTips(int) 2632 void CCmdTarget::EnableTypeLib() 2633 int COleControlSite::EnableWindow(int) 2634 int CWnd::EnableWindow(int) 2635 void COleMessageFilter::EndBusyState() 2636 long COleLinkingDoc::EndDeferErrors(long) 2637 void CDialog::EndDialog(int) 2638 void CPropertySheet::EndDialog(int) 2639 void CDockContext::EndDrag() 2640 void CWnd::EndModalLoop(int) 2641 void CFrameWnd::EndModalState() 2642 void CWnd::EndModalState() 2643 void CDockContext::EndResize() 2644 void CCmdTarget::EndWaitCursor() 2645 void COleDataObject::EnsureClipboardObject() 2646 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2647 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2648 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2649 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2650 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2651 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2652 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2653 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2654 int COlePropertyPage::EnumControls(HWND__ *,long) 2655 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2656 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2657 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2658 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2659 int CFontPropPage::EnumFontFamiliesCallBack(tagENUMLOGFONTW *,tagNEWTEXTMETRICW *,int,long) 2660 int CFontPropPage::EnumFontFamiliesCallBack2(tagENUMLOGFONTW *,tagNEWTEXTMETRICW *,int,long) 2661 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2662 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2663 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2664 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2665 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2666 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2667 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2668 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2669 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2670 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2671 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2672 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2673 void CControlBar::EraseNonClient() 2674 int CFileException::ErrnoToException(int) 2675 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2676 int CDC::Escape(int,int,char const *,void *) 2677 int CMetaFileDC::Escape(int,int,char const *,void *) 2678 int CPreviewDC::Escape(int,int,char const *,void *) 2679 AFX_EVENTMAP const COleControl::eventMap 2680 AFX_EVENTSINKMAP const CCmdTarget::eventsinkMap 2681 int CArchivePropExchange::ExchangeBlobProp(unsigned short const *,void * *,void *) 2682 int CAsyncPropExchange::ExchangeBlobProp(unsigned short const *,void * *,void *) 2683 int CPropbagPropExchange::ExchangeBlobProp(unsigned short const *,void * *,void *) 2684 int CPropsetPropExchange::ExchangeBlobProp(unsigned short const *,void * *,void *) 2685 int CResetPropExchange::ExchangeBlobProp(unsigned short const *,void * *,void *) 2686 int COleControl::ExchangeExtent(CPropExchange *) 2687 int CArchivePropExchange::ExchangeFontProp(unsigned short const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2688 int CAsyncPropExchange::ExchangeFontProp(unsigned short const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2689 int CPropbagPropExchange::ExchangeFontProp(unsigned short const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2690 int CPropsetPropExchange::ExchangeFontProp(unsigned short const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2691 int CResetPropExchange::ExchangeFontProp(unsigned short const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2692 int CArchivePropExchange::ExchangePersistentProp(unsigned short const *,IUnknown * *,_GUID const &,IUnknown *) 2693 int CAsyncPropExchange::ExchangePersistentProp(unsigned short const *,IUnknown * *,_GUID const &,IUnknown *) 2694 int CPropbagPropExchange::ExchangePersistentProp(unsigned short const *,IUnknown * *,_GUID const &,IUnknown *) 2695 int CPropsetPropExchange::ExchangePersistentProp(unsigned short const *,IUnknown * *,_GUID const &,IUnknown *) 2696 int CResetPropExchange::ExchangePersistentProp(unsigned short const *,IUnknown * *,_GUID const &,IUnknown *) 2697 int CArchivePropExchange::ExchangeProp(unsigned short const *,unsigned short,void *,void const *) 2698 int CAsyncPropExchange::ExchangeProp(unsigned short const *,unsigned short,void *,void const *) 2699 int CPropbagPropExchange::ExchangeProp(unsigned short const *,unsigned short,void *,void const *) 2700 int CPropsetPropExchange::ExchangeProp(unsigned short const *,unsigned short,void *,void const *) 2701 int CResetPropExchange::ExchangeProp(unsigned short const *,unsigned short,void *,void const *) 2702 void COleControl::ExchangeStockProps(CPropExchange *) 2703 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2704 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2705 int CDC::ExcludeClipRect(int,int,int,int) 2706 int CDC::ExcludeClipRect(tagRECT const *) 2707 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2708 void CDaoDatabase::Execute(unsigned short const *,int) 2709 void CDaoQueryDef::Execute(int) 2710 int CWnd::ExecuteDlgInit(void *) 2711 int CWnd::ExecuteDlgInit(unsigned short const *) 2712 void CRecordset::ExecuteSetPosUpdate() 2713 void CDatabase::ExecuteSQL(unsigned short const *) 2714 void CRecordset::ExecuteUpdateSQL() 2715 void CFrameWnd::ExitHelpMode() 2716 int COleControlModule::ExitInstance() 2717 int CWinApp::ExitInstance() 2718 int CWinThread::ExitInstance() 2719 unsigned long CCmdTarget::ExternalAddRef() 2720 void CCmdTarget::ExternalDisconnect() 2721 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2722 unsigned long CCmdTarget::ExternalRelease() 2723 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,unsigned short const *,unsigned int,int *) 2724 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,unsigned short const *,unsigned int,int *) 2725 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,unsigned short const *,unsigned int,int *) 2726 CColorPropPage::CColorPropPageFactory CColorPropPage::factory 2727 CFontPropPage::CFontPropPageFactory CFontPropPage::factory 2728 CPicturePropPage::CPicturePropPageFactory CPicturePropPage::factory 2729 void CDataExchange::Fail() 2730 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2731 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2732 void CArchive::FillBuffer(unsigned int) 2733 void CDaoRecordset::FillCache(long *,COleVariant *) 2734 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 2735 void CDaoException::FillErrorInfo() 2736 void CFontPropPage::FillFacenameList() 2737 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2738 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2739 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2740 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 2741 void CStockPropPage::FillPropnameList(_GUID const &,int,CComboBox &) 2742 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 2743 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 2744 void CFontPropPage::FillSizeList() 2745 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2746 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2747 void CColorPropPage::FillSysColors() 2748 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 2749 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 2750 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 2751 void CWnd::FilterToolTipMessage(tagMSG *) 2752 int CDaoRecordset::Find(long,unsigned short const *) 2753 __POSITION * CObList::Find(CObject *,__POSITION *)const 2754 __POSITION * CPtrList::Find(void *,__POSITION *)const 2755 int CString::Find(unsigned short)const 2756 int CString::Find(unsigned short const *)const 2757 __POSITION * CStringList::Find(unsigned short const *,__POSITION *)const 2758 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2759 int CDockBar::FindBar(CControlBar *,int) 2760 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2761 CWnd * FindDlgItem(CWnd *,unsigned long) 2762 int CFileFind::FindFile(unsigned short const *,unsigned long) 2763 int CFtpFileFind::FindFile(unsigned short const *,unsigned long) 2764 int CGopherFileFind::FindFile(CGopherLocator &,unsigned short const *,unsigned long) 2765 int CGopherFileFind::FindFile(unsigned short const *,unsigned long) 2766 int CDaoRecordset::FindFirst(unsigned short const *) 2767 __POSITION * CObList::FindIndex(int)const 2768 __POSITION * CPtrList::FindIndex(int)const 2769 __POSITION * CStringList::FindIndex(int)const 2770 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2771 int CDaoRecordset::FindLast(unsigned short const *) 2772 int CDaoRecordset::FindNext(unsigned short const *) 2773 int CFileFind::FindNextFileW() 2774 int CFtpFileFind::FindNextFileW() 2775 int CGopherFileFind::FindNextFileW() 2776 int CString::FindOneOf(unsigned short const *)const 2777 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2778 int CDaoRecordset::FindPrev(unsigned short const *) 2779 unsigned short const * CRecordset::FindSQLToken(unsigned short const *,unsigned short const *) 2780 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 2781 int CRichEditView::FindTextSimple(unsigned short const *,int,int) 2782 int CEditView::FindTextW(unsigned short const *,int,int) 2783 int CRichEditView::FindTextW(_AFX_RICHEDIT_STATE *) 2784 int CRichEditView::FindTextW(unsigned short const *,int,int) 2785 int COleClientItem::FinishCreate(long) 2786 void COleControl::FireError(long,unsigned short const *,unsigned int) 2787 void COleControl::FireEvent(long,unsigned char *,...) 2788 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2789 void COleControl::FireEventV(long,unsigned char *,char *) 2790 void CDaoRecordset::Fixup() 2791 void CRecordset::Fixups() 2792 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2793 void CArchive::Flush() 2794 void CDumpContext::Flush() 2795 void CFile::Flush() 2796 void CInternetFile::Flush() 2797 void CMemFile::Flush() 2798 void COleStreamFile::Flush() 2799 void CSocketFile::Flush() 2800 void CStdioFile::Flush() 2801 void COleDataSource::FlushClipboard() 2802 int CRecordset::FlushResultSet()const 2803 CString COleCurrency::Format(unsigned long,unsigned long)const 2804 CString COleDateTime::Format(unsigned int)const 2805 CString COleDateTime::Format(unsigned long,unsigned long)const 2806 CString COleDateTime::Format(unsigned short const *)const 2807 CString COleDateTimeSpan::Format(unsigned int)const 2808 CString COleDateTimeSpan::Format(unsigned short const *)const 2809 void CString::Format(unsigned int,...) 2810 void CString::Format(unsigned short const *,...) 2811 CString CTime::Format(unsigned int)const 2812 CString CTime::Format(char const *)const 2813 CString CTime::Format(unsigned short const *)const 2814 CString CTimeSpan::Format(unsigned int)const 2815 CString CTimeSpan::Format(char const *)const 2816 CString CTimeSpan::Format(unsigned short const *)const 2817 CString CTime::FormatGmt(unsigned int)const 2818 CString CTime::FormatGmt(char const *)const 2819 CString CTime::FormatGmt(unsigned short const *)const 2820 void CString::FormatMessageW(unsigned int,...) 2821 void CString::FormatMessageW(unsigned short const *,...) 2822 void CString::FormatV(unsigned short const *,char *) 2823 void COleControl::ForwardActivationMsg(tagMSG *) 2824 void CDatabase::Free() 2825 void CMemFile::Free(unsigned char *) 2826 void CSharedFile::Free(unsigned char *) 2827 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2828 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2829 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2830 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2831 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2832 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2833 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2834 void CDaoRecordset::FreeCache() 2835 void CRecordset::FreeDataCache() 2836 void CPlex::FreeDataChain() 2837 void CByteArray::FreeExtra() 2838 void CDWordArray::FreeExtra() 2839 void CObArray::FreeExtra() 2840 void CPtrArray::FreeExtra() 2841 void CString::FreeExtra() 2842 void CStringArray::FreeExtra() 2843 void CUIntArray::FreeExtra() 2844 void CWordArray::FreeExtra() 2845 void CObList::FreeNode(CObList::CNode *) 2846 void CPtrList::FreeNode(CPtrList::CNode *) 2847 void CStringList::FreeNode(CStringList::CNode *) 2848 void CRecordset::FreeRowset() 2849 void CThreadSlotData::FreeSlot(int) 2850 void CProperty::FreeValue() 2851 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2852 long COleControl::XOleControl::FreezeEvents(int) 2853 int COleClientItem::FreezeLink() 2854 CDC * CDC::FromHandle(HDC__ *) 2855 CGdiObject * CGdiObject::FromHandle(void *) 2856 CObject * CHandleMap::FromHandle(void *) 2857 CImageList * CImageList::FromHandle(_IMAGELIST *) 2858 CMenu * CMenu::FromHandle(HMENU__ *) 2859 CWnd * CWnd::FromHandle(HWND__ *) 2860 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2861 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2862 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2863 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2864 void * CProperty::Get(unsigned long *) 2865 void * CProperty::Get() 2866 void * CPropertySection::Get(unsigned long) 2867 void * CPropertySection::Get(unsigned long,unsigned long *) 2868 void * CPropertySet::Get(_GUID,unsigned long) 2869 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2870 long CDaoRecordset::GetAbsolutePosition() 2871 unsigned long COleControl::GetActivationPolicy() 2872 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2873 CDocument * CFrameWnd::GetActiveDocument() 2874 CFrameWnd * CFrameWnd::GetActiveFrame() 2875 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2876 int CPropertySheet::GetActiveIndex()const 2877 CPropertyPage * CPropertySheet::GetActivePage()const 2878 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2879 CView * CFrameWnd::GetActiveView()const 2880 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2881 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2882 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2883 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2884 short COleControl::GetAppearance() 2885 HKEY__ * CWinApp::GetAppRegistryKey() 2886 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &)const 2887 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &)const 2888 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(unsigned short const *,unsigned int &)const 2889 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(unsigned short const *,unsigned int &)const 2890 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(unsigned short const *,unsigned int &)const 2891 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &)const 2892 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &)const 2893 CString CStringArray::GetAt(int)const 2894 int CGopherConnection::GetAttribute(CGopherLocator &,CString,CString &) 2895 long CDaoTableDef::GetAttributes() 2896 unsigned long COleControl::GetBackColor() 2897 void CControlBar::GetBarInfo(CControlBarInfo *) 2898 void CDockBar::GetBarInfo(CControlBarInfo *) 2899 unsigned long CAsyncMonikerFile::GetBindInfo()const 2900 void * CBlobProperty::GetBlob() 2901 COleVariant CDaoRecordset::GetBookmark() 2902 void CRecordset::GetBookmark(CDBVariant &) 2903 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2904 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2905 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2906 short COleControl::GetBorderStyle() 2907 long CDataSourceControl::GetBoundClientRow() 2908 int CRecordset::GetBoundFieldIndex(void *) 2909 int CRecordset::GetBoundParamIndex(void *) 2910 unsigned short * CString::GetBuffer(int) 2911 unsigned int CEditView::GetBufferLength()const 2912 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2913 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2914 unsigned short * CString::GetBufferSetLength(int) 2915 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2916 unsigned int CToolBar::GetButtonStyle(int)const 2917 CString CToolBar::GetButtonText(int)const 2918 void CToolBar::GetButtonText(int,CString &)const 2919 unsigned short CPropertySet::GetByteOrder() 2920 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2921 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2922 long CDaoRecordset::GetCacheSize() 2923 COleVariant CDaoRecordset::GetCacheStart() 2924 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 2925 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2926 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2927 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2928 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2929 CWnd * COleControl::GetCapture() 2930 void CFontDialog::GetCharFormat(_charformat &)const 2931 _charformat & CRichEditView::GetCharFormatSelection() 2932 int CCheckListBox::GetCheck(int) 2933 int CWnd::GetCheckedRadioButton(int,int) 2934 long CBlobProperty::GetClassID(_GUID *) 2935 long CColorPropPage::GetClassID(_GUID *) 2936 long CFontPropPage::GetClassID(_GUID *) 2937 void COleClientItem::GetClassID(_GUID *)const 2938 long CPicturePropPage::GetClassID(_GUID *) 2939 _GUID CPropertySet::GetClassID() 2940 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2941 long COleControl::XPersistMemory::GetClassID(_GUID *) 2942 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2943 long COleControl::XPersistStorage::GetClassID(_GUID *) 2944 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2945 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2946 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 2947 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2948 void COleControl::GetClientOffset(long *,long *)const 2949 void COleControl::GetClientRect(tagRECT *)const 2950 IOleClientSite * COleClientItem::GetClientSite() 2951 IOleClientSite * COleControl::GetClientSite() 2952 IOleClientSite * CRichEditCntrItem::GetClientSite() 2953 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2954 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2955 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2956 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2957 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2958 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2959 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2960 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2961 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2962 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2963 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2964 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2965 COleDataSource * COleDataSource::GetClipboardOwner() 2966 int CDC::GetClipBox(tagRECT *)const 2967 int CMetaFileDC::GetClipBox(tagRECT *)const 2968 int CColorPropPage::GetColorProp(CDataExchange *,unsigned long *,unsigned short const *) 2969 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2970 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2971 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2972 CString CDaoDatabase::GetConnect() 2973 CString CDaoQueryDef::GetConnect() 2974 CString CDaoTableDef::GetConnect() 2975 void CDatabase::GetConnectInfo() 2976 int CConnectionPoint::GetConnectionCount() 2977 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2978 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2979 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2980 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2981 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2982 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2983 CPtrArray const * CConnectionPoint::GetConnections() 2984 IConnectionPointContainer * CConnectionPoint::GetContainer() 2985 IOleItemContainer * COleDocument::GetContainer() 2986 IOleItemContainer * COleLinkingDoc::GetContainer() 2987 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2988 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2989 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2990 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2991 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2992 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2993 unsigned long COleControl::GetControlFlags() 2994 void COleControlSite::GetControlInfo() 2995 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2996 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2997 IUnknown * CCmdTarget::GetControllingUnknown() 2998 void COleControl::GetControlSize(int *,int *) 2999 int COlePropertyPage::GetControlStatus(unsigned int) 3000 IUnknown * CWnd::GetControlUnknown() 3001 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3002 int CPrintDialog::GetCopies()const 3003 unsigned long CPropertySection::GetCount() 3004 unsigned long CPropertySet::GetCount() 3005 int CFileFind::GetCreationTime(CTime &)const 3006 int CFileFind::GetCreationTime(_FILETIME *)const 3007 int CGopherFileFind::GetCreationTime(CTime &)const 3008 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3009 long COleLinkingDoc::XPersistFile::GetCurFile(unsigned short * *) 3010 int CFtpConnection::GetCurrentDirectoryAsURL(CString &)const 3011 int CFtpConnection::GetCurrentDirectoryAsURL(unsigned short *,unsigned long *)const 3012 int CFtpConnection::GetCurrentDirectoryW(CString &)const 3013 int CFtpConnection::GetCurrentDirectoryW(unsigned short *,unsigned long *)const 3014 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 3015 CString CDaoRecordset::GetCurrentIndex() 3016 tagMSG const * CWnd::GetCurrentMessage() 3017 CString CFontComboBox::GetCurrentName() 3018 ICursor * CDataBoundProperty::GetCursor() 3019 ICursor * CDataSourceControl::GetCursor() 3020 long COleControlSite::GetCursor(long,ICursor * *,void * *) 3021 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3022 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3023 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3024 long CRecordset::GetData(CDatabase *,void *,short,short,void *,int,short) 3025 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3026 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3027 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3028 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3029 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3030 void CDaoRecordset::GetDataAndFixupNulls() 3031 short CDaoWorkspace::GetDatabaseCount() 3032 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 3033 void CDaoWorkspace::GetDatabaseInfo(unsigned short const *,CDaoDatabaseInfo &,unsigned long) 3034 CString CDatabase::GetDatabaseName()const 3035 void * CRecordset::GetDataBuffer(CDBVariant &,short,int *,short,unsigned long) 3036 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3037 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3038 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3039 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3040 CNoTrackObject * CThreadLocalObject::GetDataNA() 3041 IDataObject * COleServerItem::GetDataObject() 3042 COleControl::CControlDataSource * COleControl::GetDataSource() 3043 COleDateTime CDaoQueryDef::GetDateCreated() 3044 COleDateTime CDaoRecordset::GetDateCreated() 3045 COleDateTime CDaoTableDef::GetDateCreated() 3046 COleDateTime CDaoQueryDef::GetDateLastUpdated() 3047 COleDateTime CDaoRecordset::GetDateLastUpdated() 3048 COleDateTime CDaoTableDef::GetDateLastUpdated() 3049 int COleDateTime::GetDay()const 3050 int COleDateTime::GetDayOfWeek()const 3051 int COleDateTime::GetDayOfYear()const 3052 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3053 HACCEL__ * CDocument::GetDefaultAccelerator() 3054 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3055 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3056 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 3057 CString CRecordset::GetDefaultConnect() 3058 CString CDaoRecordset::GetDefaultDBName() 3059 short CRecordset::GetDefaultFieldType(short) 3060 HMENU__ * CDocument::GetDefaultMenu() 3061 HMENU__ * COleServerDoc::GetDefaultMenu() 3062 int CPrintDialog::GetDefaults() 3063 CString CDaoRecordset::GetDefaultSQL() 3064 CString CRecordset::GetDefaultSQL() 3065 unsigned long COccManager::GetDefBtnCode(CWnd *) 3066 unsigned long COleControlSite::GetDefBtnCode() 3067 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3068 CString CPageSetupDialog::GetDeviceName()const 3069 CString CPrintDialog::GetDeviceName()const 3070 CPoint CScrollView::GetDeviceScrollPosition()const 3071 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3072 _devicemodeW * CPageSetupDialog::GetDevMode()const 3073 _devicemodeW * CPrintDialog::GetDevMode()const 3074 int CCmdTarget::GetDispatchIID(_GUID *) 3075 int COleControl::GetDispatchIID(_GUID *) 3076 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3077 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3078 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3079 int CRecentFileList::GetDisplayName(CString &,int,unsigned short const *,int,int)const 3080 int CFontHolder::GetDisplayString(CString &) 3081 int CPictureHolder::GetDisplayString(CString &) 3082 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,unsigned short * *) 3083 int COleControlSite::GetDlgCtrlID()const 3084 int CWnd::GetDlgCtrlID()const 3085 CWnd * COleControlContainer::GetDlgItem(int)const 3086 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3087 CWnd * CWnd::GetDlgItem(int)const 3088 void CWnd::GetDlgItem(int,HWND__ * *)const 3089 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3090 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3091 int COleControlContainer::GetDlgItemTextW(int,unsigned short *,int)const 3092 int CWnd::GetDlgItemTextW(int,CString &)const 3093 int CWnd::GetDlgItemTextW(int,unsigned short *,int)const 3094 CDockBar * CDockContext::GetDockBar(unsigned long) 3095 CControlBar * CDockBar::GetDockedControlBar(int)const 3096 int CDockBar::GetDockedCount()const 3097 int CDockBar::GetDockedVisibleCount()const 3098 CFrameWnd * CControlBar::GetDockingFrame()const 3099 void CFrameWnd::GetDockState(CDockState &)const 3100 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3101 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3102 int CDocTemplate::GetDocString(CString &,enum CDocTemplate::DocStringIndex)const 3103 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3104 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3105 CString CPageSetupDialog::GetDriverName()const 3106 CString CPrintDialog::GetDriverName()const 3107 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3108 IUnknown * CWnd::GetDSCCursor() 3109 short CDaoRecordset::GetEditMode() 3110 void COleSafeArray::GetElement(long *,void *) 3111 COleServerItem * COleServerDoc::GetEmbeddedItem() 3112 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3113 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3114 int COleControl::GetEnabled() 3115 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3116 short CDaoException::GetErrorCount() 3117 void CDaoException::GetErrorInfo(int) 3118 int CArchiveException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3119 int CDaoException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3120 int CDBException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3121 int CException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3122 int CFileException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3123 int CInternetException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3124 int COleDispatchException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3125 int COleException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3126 int CSimpleException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 3127 int COleControlSite::GetEventIID(_GUID *) 3128 AFX_EVENTMAP const * COleControl::GetEventMap()const 3129 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(unsigned short const *,long *)const 3130 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3131 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3132 unsigned long COleControlSite::GetExStyle()const 3133 unsigned long CWnd::GetExStyle()const 3134 IDispatch * COleControl::GetExtendedControl() 3135 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3136 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3137 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3138 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3139 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3140 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3141 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3142 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3143 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3144 CString CFontDialog::GetFaceName()const 3145 short CDaoQueryDef::GetFieldCount() 3146 short CDaoRecordset::GetFieldCount() 3147 short CDaoTableDef::GetFieldCount() 3148 int CDaoRecordset::GetFieldIndex(void *) 3149 short CRecordset::GetFieldIndexByName(unsigned short const *) 3150 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 3151 void CDaoQueryDef::GetFieldInfo(unsigned short const *,CDaoFieldInfo &,unsigned long) 3152 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 3153 void CDaoRecordset::GetFieldInfo(unsigned short const *,CDaoFieldInfo &,unsigned long) 3154 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 3155 void CDaoTableDef::GetFieldInfo(unsigned short const *,CDaoFieldInfo &,unsigned long) 3156 unsigned long CDaoRecordset::GetFieldLength(int) 3157 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3158 unsigned char CRecordset::GetFieldStatus(unsigned long) 3159 COleVariant CDaoRecordset::GetFieldValue(int) 3160 COleVariant CDaoRecordset::GetFieldValue(unsigned short const *) 3161 void CDaoRecordset::GetFieldValue(int,COleVariant &) 3162 void CDaoRecordset::GetFieldValue(unsigned short const *,COleVariant &) 3163 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3164 void CRecordset::GetFieldValue(short,CString &) 3165 void CRecordset::GetFieldValue(unsigned short const *,CDBVariant &,short) 3166 void CRecordset::GetFieldValue(unsigned short const *,CString &) 3167 CFile * CDocument::GetFile(unsigned short const *,unsigned int,CFileException *) 3168 int CFtpConnection::GetFile(unsigned short const *,unsigned short const *,int,unsigned long,unsigned long,unsigned long) 3169 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3170 CString CFileDialog::GetFileExt()const 3171 CString CFile::GetFileName()const 3172 CString CFileDialog::GetFileName()const 3173 CString CFileFind::GetFileName()const 3174 CString CGopherFileFind::GetFileName()const 3175 CString CFile::GetFilePath()const 3176 CString CFileFind::GetFilePath()const 3177 CString CGopherFileFind::GetFilePath()const 3178 CString CFile::GetFileTitle()const 3179 CString CFileDialog::GetFileTitle()const 3180 CString CFileFind::GetFileTitle()const 3181 CString CGopherFileFind::GetFileTitle()const 3182 int COleServerDoc::GetFileTypeString(CString &) 3183 CString CFileFind::GetFileURL()const 3184 CString CFtpFileFind::GetFileURL()const 3185 CString CGopherFileFind::GetFileURL()const 3186 CString CHttpFile::GetFileURL()const 3187 CString CFindReplaceDialog::GetFindString()const 3188 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3189 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3190 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3191 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3192 CFrameWnd * COleDocument::GetFirstFrame() 3193 __POSITION * CDocument::GetFirstViewPosition()const 3194 CWnd * COleControl::GetFocus() 3195 CString CFileDialog::GetFolderPath()const 3196 int CDialogTemplate::GetFont(CString &,unsigned short &)const 3197 int CDialogTemplate::GetFont(DLGTEMPLATE const *,CString &,unsigned short &) 3198 IFontDisp * COleControl::GetFont() 3199 IFontDisp * CFontHolder::GetFontDispatch() 3200 HFONT__ * CFontHolder::GetFontHandle(long,long) 3201 HFONT__ * CFontHolder::GetFontHandle() 3202 FONTITEM_PPG * CFontComboBox::GetFontItem(int) 3203 int CFontPropPage::GetFontProps(CDataExchange *,tagFONTOBJECT *,unsigned short const *,tagMERGEOBJECT *) 3204 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3205 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 3206 unsigned long CFontComboBox::GetFontType(int) 3207 unsigned long COleControl::GetForeColor() 3208 _GUID CPropertySection::GetFormatID() 3209 unsigned short CPropertySet::GetFormatVersion() 3210 CFtpConnection * CInternetSession::GetFtpConnection(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short,int) 3211 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3212 tm * CTime::GetGmtTm(tm *)const 3213 CGopherConnection * CInternetSession::GetGopherConnection(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short) 3214 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3215 CBrush * CDC::GetHalftoneBrush() 3216 unsigned int CRectTracker::GetHandleMask()const 3217 void CRectTracker::GetHandleRect(int,CRect *)const 3218 int CRectTracker::GetHandleSize(tagRECT const *)const 3219 long CSizeComboBox::GetHeight(int) 3220 void CSplitterWnd::GetHitRect(int,CRect &) 3221 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3222 int COleDateTime::GetHour()const 3223 long COleDateTimeSpan::GetHours()const 3224 CHttpConnection * CInternetSession::GetHttpConnection(unsigned short const *,unsigned short,unsigned short const *,unsigned short const *) 3225 unsigned int COleControl::GetHwnd() 3226 void * COleClientItem::GetIconicMetafile() 3227 unsigned short const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3228 unsigned int COleControlSite::GetID() 3229 unsigned long CProperty::GetID() 3230 int CPropertySection::GetID(unsigned short const *,unsigned long *) 3231 IDataObject * COleDataObject::GetIDataObject(int) 3232 IDispatch * CCmdTarget::GetIDispatch(int) 3233 long COleDispatchImpl::GetIDsOfNames(_GUID const &,unsigned short * *,unsigned int,unsigned long,long *) 3234 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,unsigned short * *,unsigned int,unsigned long,long *) 3235 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,unsigned short * *,unsigned int,unsigned long,long *) 3236 _GUID const & COleControl::XEventConnPt::GetIID() 3237 _GUID const & COleControl::XPropConnPt::GetIID() 3238 short CDaoRecordset::GetIndexCount() 3239 short CDaoTableDef::GetIndexCount() 3240 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3241 void CDaoRecordset::GetIndexInfo(unsigned short const *,CDaoIndexInfo &,unsigned long) 3242 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3243 void CDaoTableDef::GetIndexInfo(unsigned short const *,CDaoIndexInfo &,unsigned long) 3244 CString CDaoWorkspace::GetIniPath() 3245 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3246 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3247 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3248 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3249 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3250 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3251 CWnd * COleClientItem::GetInPlaceWindow() 3252 void CSplitterWnd::GetInsideRect(CRect &)const 3253 IUnknown * CCmdTarget::GetInterface(void const *) 3254 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3255 IUnknown * COleControl::GetInterfaceHook(void const *) 3256 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3257 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3258 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3259 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3260 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3261 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3262 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3263 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3264 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3265 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3266 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3267 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3268 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3269 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3270 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 3271 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 3272 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 3273 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 3274 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 3275 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 3276 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 3277 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 3278 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 3279 int CDaoWorkspace::GetIsolateODBCTrans() 3280 void COleServerDoc::GetItemClipRect(tagRECT *)const 3281 unsigned long CListCtrl::GetItemData(int)const 3282 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 3283 unsigned int CStatusBar::GetItemID(int)const 3284 unsigned int CToolBar::GetItemID(int)const 3285 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 3286 void COleClientItem::GetItemName(unsigned short *)const 3287 void COleServerDoc::GetItemPosition(tagRECT *)const 3288 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 3289 void CStatusBar::GetItemRect(int,tagRECT *)const 3290 void CToolBar::GetItemRect(int,tagRECT *)const 3291 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 3292 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 3293 void COleClientItem::GetItemStorage() 3294 void COleClientItem::GetItemStorageCompound() 3295 void COleClientItem::GetItemStorageFlat() 3296 CString CListCtrl::GetItemText(int,int)const 3297 int CListCtrl::GetItemText(int,int,unsigned short *,int)const 3298 CString CTreeCtrl::GetItemText(_TREEITEM *)const 3299 int CFileFind::GetLastAccessTime(CTime &)const 3300 int CFileFind::GetLastAccessTime(_FILETIME *)const 3301 int CGopherFileFind::GetLastAccessTime(CTime &)const 3302 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 3303 COleVariant CDaoRecordset::GetLastModifiedBookmark() 3304 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 3305 int CFileFind::GetLastWriteTime(CTime &)const 3306 int CFileFind::GetLastWriteTime(_FILETIME *)const 3307 int CGopherFileFind::GetLastWriteTime(CTime &)const 3308 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 3309 long CRecordset::GetLBFetchSize(long) 3310 void COleSafeArray::GetLBound(unsigned long,long *) 3311 long CRecordset::GetLBReallocSize(long) 3312 void CComboBox::GetLBText(int,CString &)const 3313 unsigned long CFile::GetLength()const 3314 unsigned long CFileFind::GetLength()const 3315 unsigned long CGopherFileFind::GetLength()const 3316 unsigned long CInternetFile::GetLength()const 3317 unsigned long COleStreamFile::GetLength()const 3318 unsigned long CSocketFile::GetLength()const 3319 __int64 CFileFind::GetLength64()const 3320 __int64 CGopherFileFind::GetLength64()const 3321 int COleObjectFactory::GetLicenseKey(unsigned long,unsigned short * *) 3322 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 3323 int CRichEditCtrl::GetLine(int,unsigned short *)const 3324 int CRichEditCtrl::GetLine(int,unsigned short *,int)const 3325 long COleUILinkInfo::GetLinkSource(unsigned long,unsigned short * *,unsigned long *,unsigned short * *,unsigned short * *,int *,int *) 3326 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 3327 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 3328 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 3329 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 3330 CPtrList * CPropertySection::GetList() 3331 CPtrList * CPropertySet::GetList() 3332 tm * CTime::GetLocalTm(tm *)const 3333 CGopherLocator CGopherFileFind::GetLocator()const 3334 int CDaoRecordset::GetLockingMode() 3335 tagLOGFONTW * CFontComboBox::GetLogFont(int) 3336 short CDaoWorkspace::GetLoginTimeout() 3337 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 3338 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,int,CDBVariant &,short) 3339 long CFieldExchange::GetLongBinarySize(int) 3340 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,int,CString &,short) 3341 CWnd * CWinThread::GetMainWnd() 3342 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 3343 int CConnectionPoint::GetMaxConnections() 3344 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 3345 CWnd * CFrameWnd::GetMessageBar() 3346 CWnd * CMDIChildWnd::GetMessageBar() 3347 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 3348 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 3349 AFX_MSGMAP const * CColorDialog::GetMessageMap()const 3350 AFX_MSGMAP const * CColorPropPage::GetMessageMap()const 3351 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 3352 AFX_MSGMAP const * CControlBar::GetMessageMap()const 3353 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 3354 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 3355 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 3356 AFX_MSGMAP const * CDialog::GetMessageMap()const 3357 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 3358 AFX_MSGMAP const * CDockBar::GetMessageMap()const 3359 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 3360 AFX_MSGMAP const * CDocument::GetMessageMap()const 3361 AFX_MSGMAP const * CEditView::GetMessageMap()const 3362 AFX_MSGMAP const * CFontPropPage::GetMessageMap()const 3363 AFX_MSGMAP const * CFormView::GetMessageMap()const 3364 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 3365 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 3366 AFX_MSGMAP const * CListView::GetMessageMap()const 3367 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 3368 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 3369 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 3370 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 3371 AFX_MSGMAP const * COleControl::GetMessageMap()const 3372 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 3373 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 3374 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 3375 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 3376 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 3377 AFX_MSGMAP const * CPicturePropPage::GetMessageMap()const 3378 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 3379 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 3380 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 3381 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 3382 AFX_MSGMAP const * CRecordView::GetMessageMap()const 3383 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 3384 AFX_MSGMAP const * CScrollView::GetMessageMap()const 3385 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 3386 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 3387 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 3388 AFX_MSGMAP const * CStockPropPage::GetMessageMap()const 3389 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 3390 AFX_MSGMAP const * CToolBar::GetMessageMap()const 3391 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 3392 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 3393 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 3394 AFX_MSGMAP const * CTreeView::GetMessageMap()const 3395 AFX_MSGMAP const * CView::GetMessageMap()const 3396 AFX_MSGMAP const * CWinApp::GetMessageMap()const 3397 AFX_MSGMAP const * CWnd::GetMessageMap()const 3398 void CFrameWnd::GetMessageString(unsigned int,CString &)const 3399 void COleControl::GetMessageString(unsigned int,CString &)const 3400 long CDataSourceControl::GetMetaData() 3401 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3402 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3403 int COleDateTime::GetMinute()const 3404 long COleDateTimeSpan::GetMinutes()const 3405 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3406 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3407 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3408 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3409 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 3410 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 3411 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 3412 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 3413 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3414 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3415 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3416 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3417 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3418 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3419 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3420 int COleDateTime::GetMonth()const 3421 CString CDaoDatabase::GetName() 3422 CString CDaoQueryDef::GetName() 3423 CString CDaoRecordset::GetName() 3424 CString CDaoTableDef::GetName() 3425 CString CDaoWorkspace::GetName() 3426 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3427 unsigned long COleClientItem::GetNewItemNumber() 3428 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3429 CDataBoundProperty * CDataBoundProperty::GetNext() 3430 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3431 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3432 void CMapStringToOb::GetNextAssoc(__POSITION * &,CString &,CObject * &)const 3433 void CMapStringToPtr::GetNextAssoc(__POSITION * &,CString &,void * &)const 3434 void CMapStringToString::GetNextAssoc(__POSITION * &,CString &,CString &)const 3435 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3436 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3437 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3438 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3439 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3440 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3441 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3442 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3443 int COleDataObject::GetNextFormat(tagFORMATETC *) 3444 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3445 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3446 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3447 CString CFileDialog::GetNextPathName(__POSITION * &)const 3448 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3449 CView * CDocument::GetNextView(__POSITION * &)const 3450 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3451 void CCmdTarget::GetNotSupported() 3452 void COleControl::GetNotSupported() 3453 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3454 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3455 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3456 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,unsigned short * *,unsigned short * *,unsigned short * *,unsigned short * *) 3457 unsigned int CArchive::GetObjectSchema() 3458 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(unsigned short *,IBindCtx *,_GUID const &,void * *) 3459 CString CHttpFile::GetObjectW()const 3460 long COleLinkingDoc::XOleItemContainer::GetObjectW(unsigned short *,unsigned long,IBindCtx *,_GUID const &,void * *) 3461 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3462 void CRecordset::GetODBCFieldInfo(unsigned short const *,CODBCFieldInfo &) 3463 short CDaoQueryDef::GetODBCTimeout() 3464 IOleObject * COleServerItem::GetOleObject() 3465 unsigned long COleSafeArray::GetOneDimSize() 3466 int CDocManager::GetOpenDocumentCount() 3467 int CWinApp::GetOpenDocumentCount() 3468 unsigned long CPropertySet::GetOSVersion() 3469 CWnd * COleControl::GetOuterWindow()const 3470 int CPropertySheet::GetPageCount()const 3471 int CPropertySheet::GetPageIndex(CPropertyPage *) 3472 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3473 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3474 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3475 IPropertyPageSite * COlePropertyPage::GetPageSite() 3476 CWnd * CSplitterWnd::GetPane(int,int)const 3477 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3478 unsigned int CStatusBar::GetPaneStyle(int)const 3479 CString CStatusBar::GetPaneText(int)const 3480 void CStatusBar::GetPaneText(int,CString &)const 3481 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3482 _paraformat & CRichEditView::GetParaFormatSelection() 3483 short CDaoQueryDef::GetParameterCount() 3484 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 3485 void CDaoQueryDef::GetParameterInfo(unsigned short const *,CDaoParameterInfo &,unsigned long) 3486 COleVariant CDaoQueryDef::GetParamValue(int) 3487 COleVariant CDaoQueryDef::GetParamValue(unsigned short const *) 3488 COleVariant CDaoRecordset::GetParamValue(int) 3489 COleVariant CDaoRecordset::GetParamValue(unsigned short const *) 3490 CFrameWnd * CWnd::GetParentFrame()const 3491 CWnd * CWnd::GetParentOwner()const 3492 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3493 CString CDataPathProperty::GetPath()const 3494 CString CFileDialog::GetPathName()const 3495 int CAsyncSocket::GetPeerName(CString &,unsigned int &) 3496 float CDaoRecordset::GetPercentPosition() 3497 IPictureDisp * CPictureHolder::GetPictureDispatch() 3498 int CPicturePropPage::GetPictureProp(CDataExchange *,IPictureDisp * *,unsigned short const *) 3499 void CSizeComboBox::GetPointSize(union tagCY &) 3500 CString CPageSetupDialog::GetPortName()const 3501 CString CPrintDialog::GetPortName()const 3502 unsigned long CFile::GetPosition()const 3503 unsigned long CMemFile::GetPosition()const 3504 unsigned long COleStreamFile::GetPosition()const 3505 unsigned long CSocketFile::GetPosition()const 3506 unsigned long CStdioFile::GetPosition()const 3507 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3508 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3509 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3510 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3511 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3512 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 3513 CFont * CEditView::GetPrinterFont()const 3514 long CAsyncMonikerFile::GetPriority()const 3515 int CWinApp::GetProfileBinary(unsigned short const *,unsigned short const *,unsigned char * *,unsigned int *) 3516 unsigned int CWinApp::GetProfileIntW(unsigned short const *,unsigned short const *,int) 3517 CString CWinApp::GetProfileStringW(unsigned short const *,unsigned short const *,unsigned short const *) 3518 int COlePropertyPage::GetPropCheck(unsigned short const *,int *) 3519 void COleControlSite::GetProperty(long,unsigned short,void *)const 3520 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3521 CProperty * CPropertySection::GetProperty(unsigned long) 3522 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3523 void CWnd::GetProperty(long,unsigned short,void *)const 3524 int COlePropertyPage::GetPropIndex(unsigned short const *,int *) 3525 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3526 int COlePropertyPage::GetPropRadio(unsigned short const *,int *) 3527 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3528 int COlePropertyPage::GetPropText(unsigned short const *,unsigned char *) 3529 int COlePropertyPage::GetPropText(unsigned short const *,short *) 3530 int COlePropertyPage::GetPropText(unsigned short const *,int *) 3531 int COlePropertyPage::GetPropText(unsigned short const *,unsigned int *) 3532 int COlePropertyPage::GetPropText(unsigned short const *,long *) 3533 int COlePropertyPage::GetPropText(unsigned short const *,unsigned long *) 3534 int COlePropertyPage::GetPropText(unsigned short const *,float *) 3535 int COlePropertyPage::GetPropText(unsigned short const *,double *) 3536 int COlePropertyPage::GetPropText(unsigned short const *,CString *) 3537 short CDaoDatabase::GetQueryDefCount() 3538 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 3539 void CDaoDatabase::GetQueryDefInfo(unsigned short const *,CDaoQueryDefInfo &,unsigned long) 3540 short CDaoDatabase::GetQueryTimeout() 3541 void CSliderCtrl::GetRange(int &,int &)const 3542 void CSpinButtonCtrl::GetRange(int &,int &)const 3543 void * CProperty::GetRawValue() 3544 long COleControl::GetReadyState() 3545 long CDaoRecordset::GetRecordCount() 3546 long CDaoTableDef::GetRecordCount() 3547 long CDaoDatabase::GetRecordsAffected() 3548 long CDaoQueryDef::GetRecordsAffected() 3549 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3550 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3551 int COleControl::GetRectInContainer(tagRECT *) 3552 short CDaoDatabase::GetRelationCount() 3553 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 3554 void CDaoDatabase::GetRelationInfo(unsigned short const *,CDaoRelationInfo &,unsigned long) 3555 CString CFindReplaceDialog::GetReplaceString()const 3556 int CDaoQueryDef::GetReturnsRecords() 3557 CString CFileFind::GetRoot()const 3558 CString CGopherFileFind::GetRoot()const 3559 CFrameWnd * CCmdTarget::GetRoutingFrame() 3560 CView * CCmdTarget::GetRoutingView() 3561 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3562 CRuntime* CAnimateCtrl::GetRuntimeClass()const 3563 CRuntime* CArchiveException::GetRuntimeClass()const 3564 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 3565 CRuntime* CAsyncSocket::GetRuntimeClass()const 3566 CRuntime* CBitmap::GetRuntimeClass()const 3567 CRuntime* CBitmapButton::GetRuntimeClass()const 3568 CRuntime* CBrush::GetRuntimeClass()const 3569 CRuntime* CButton::GetRuntimeClass()const 3570 CRuntime* CByteArray::GetRuntimeClass()const 3571 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 3572 CRuntime* CCheckListBox::GetRuntimeClass()const 3573 CRuntime* CClientDC::GetRuntimeClass()const 3574 CRuntime* CCmdTarget::GetRuntimeClass()const 3575 CRuntime* CColorDialog::GetRuntimeClass()const 3576 CRuntime* CColorPropPage::GetRuntimeClass()const 3577 CRuntime* CComboBox::GetRuntimeClass()const 3578 CRuntime* CControlBar::GetRuntimeClass()const 3579 CRuntime* CCriticalSection::GetRuntimeClass()const 3580 CRuntime* CCtrlView::GetRuntimeClass()const 3581 CRuntime* CDaoDatabase::GetRuntimeClass()const 3582 CRuntime* CDaoException::GetRuntimeClass()const 3583 CRuntime* CDaoQueryDef::GetRuntimeClass()const 3584 CRuntime* CDaoRecordset::GetRuntimeClass()const 3585 CRuntime* CDaoRecordView::GetRuntimeClass()const 3586 CRuntime* CDaoTableDef::GetRuntimeClass()const 3587 CRuntime* CDaoWorkspace::GetRuntimeClass()const 3588 CRuntime* CDatabase::GetRuntimeClass()const 3589 CRuntime* CDataPathProperty::GetRuntimeClass()const 3590 CRuntime* CDBException::GetRuntimeClass()const 3591 CRuntime* CDC::GetRuntimeClass()const 3592 CRuntime* CDialog::GetRuntimeClass()const 3593 CRuntime* CDialogBar::GetRuntimeClass()const 3594 CRuntime* CDocItem::GetRuntimeClass()const 3595 CRuntime* CDockBar::GetRuntimeClass()const 3596 CRuntime* CDockState::GetRuntimeClass()const 3597 CRuntime* CDocManager::GetRuntimeClass()const 3598 CRuntime* CDocObjectServer::GetRuntimeClass()const 3599 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 3600 CRuntime* CDocTemplate::GetRuntimeClass()const 3601 CRuntime* CDocument::GetRuntimeClass()const 3602 CRuntime* CDragListBox::GetRuntimeClass()const 3603 CRuntime* CDWordArray::GetRuntimeClass()const 3604 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3605 CRuntime* CEdit::GetRuntimeClass()const 3606 CRuntime* CEditView::GetRuntimeClass()const 3607 CRuntime* CEvent::GetRuntimeClass()const 3608 CRuntime* CException::GetRuntimeClass()const 3609 CRuntime* CFile::GetRuntimeClass()const 3610 CRuntime* CFileDialog::GetRuntimeClass()const 3611 CRuntime* CFileException::GetRuntimeClass()const 3612 CRuntime* CFileFind::GetRuntimeClass()const 3613 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3614 CRuntime* CFont::GetRuntimeClass()const 3615 CRuntime* CFontDialog::GetRuntimeClass()const 3616 CRuntime* CFontPropPage::GetRuntimeClass()const 3617 CRuntime* CFormView::GetRuntimeClass()const 3618 CRuntime* CFrameWnd::GetRuntimeClass()const 3619 CRuntime* CFtpConnection::GetRuntimeClass()const 3620 CRuntime* CFtpFileFind::GetRuntimeClass()const 3621 CRuntime* CGdiObject::GetRuntimeClass()const 3622 CRuntime* CGopherConnection::GetRuntimeClass()const 3623 CRuntime* CGopherFile::GetRuntimeClass()const 3624 CRuntime* CGopherFileFind::GetRuntimeClass()const 3625 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3626 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3627 CRuntime* CHttpConnection::GetRuntimeClass()const 3628 CRuntime* CHttpFile::GetRuntimeClass()const 3629 CRuntime* CImageList::GetRuntimeClass()const 3630 CRuntime* CInternetConnection::GetRuntimeClass()const 3631 CRuntime* CInternetException::GetRuntimeClass()const 3632 CRuntime* CInternetFile::GetRuntimeClass()const 3633 CRuntime* CInternetSession::GetRuntimeClass()const 3634 CRuntime* CListBox::GetRuntimeClass()const 3635 CRuntime* CListCtrl::GetRuntimeClass()const 3636 CRuntime* CListView::GetRuntimeClass()const 3637 CRuntime* CLongBinary::GetRuntimeClass()const 3638 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3639 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3640 CRuntime* CMapStringToOb::GetRuntimeClass()const 3641 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3642 CRuntime* CMapStringToString::GetRuntimeClass()const 3643 CRuntime* CMapWordToOb::GetRuntimeClass()const 3644 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3645 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3646 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3647 CRuntime* CMemFile::GetRuntimeClass()const 3648 CRuntime* CMemoryException::GetRuntimeClass()const 3649 CRuntime* CMenu::GetRuntimeClass()const 3650 CRuntime* CMetaFileDC::GetRuntimeClass()const 3651 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3652 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3653 CRuntime* CMonikerFile::GetRuntimeClass()const 3654 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3655 CRuntime* CMutex::GetRuntimeClass()const 3656 CRuntime* CNotSupportedException::GetRuntimeClass()const 3657 CRuntime* CObArray::GetRuntimeClass()const 3658 CRuntime* CObject::GetRuntimeClass()const 3659 CRuntime* CObList::GetRuntimeClass()const 3660 CRuntime* COleBusyDialog::GetRuntimeClass()const 3661 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3662 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3663 CRuntime* COleClientItem::GetRuntimeClass()const 3664 CRuntime* COleControl::GetRuntimeClass()const 3665 CRuntime* COleControlModule::GetRuntimeClass()const 3666 CRuntime* COleConvertDialog::GetRuntimeClass()const 3667 CRuntime* COleDialog::GetRuntimeClass()const 3668 CRuntime* COleDispatchException::GetRuntimeClass()const 3669 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3670 CRuntime* COleDocument::GetRuntimeClass()const 3671 CRuntime* COleException::GetRuntimeClass()const 3672 CRuntime* COleInsertDialog::GetRuntimeClass()const 3673 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3674 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3675 CRuntime* COleLinksDialog::GetRuntimeClass()const 3676 CRuntime* COleObjectFactory::GetRuntimeClass()const 3677 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3678 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3679 CRuntime* COlePropertyPage::GetRuntimeClass()const 3680 CRuntime* COleResizeBar::GetRuntimeClass()const 3681 CRuntime* COleServerDoc::GetRuntimeClass()const 3682 CRuntime* COleServerItem::GetRuntimeClass()const 3683 CRuntime* COleStreamFile::GetRuntimeClass()const 3684 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3685 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3686 CRuntime* CPaintDC::GetRuntimeClass()const 3687 CRuntime* CPalette::GetRuntimeClass()const 3688 CRuntime* CPen::GetRuntimeClass()const 3689 CRuntime* CPicturePropPage::GetRuntimeClass()const 3690 CRuntime* CPreviewDC::GetRuntimeClass()const 3691 CRuntime* CPreviewView::GetRuntimeClass()const 3692 CRuntime* CPrintDialog::GetRuntimeClass()const 3693 CRuntime* CProgressCtrl::GetRuntimeClass()const 3694 CRuntime* CPropertyPage::GetRuntimeClass()const 3695 CRuntime* CPropertySheet::GetRuntimeClass()const 3696 CRuntime* CPtrArray::GetRuntimeClass()const 3697 CRuntime* CPtrList::GetRuntimeClass()const 3698 CRuntime* CRecordset::GetRuntimeClass()const 3699 CRuntime* CRecordView::GetRuntimeClass()const 3700 CRuntime* CResourceException::GetRuntimeClass()const 3701 CRuntime* CRgn::GetRuntimeClass()const 3702 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3703 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3704 CRuntime* CRichEditDoc::GetRuntimeClass()const 3705 CRuntime* CRichEditView::GetRuntimeClass()const 3706 CRuntime* CScrollBar::GetRuntimeClass()const 3707 CRuntime* CScrollView::GetRuntimeClass()const 3708 CRuntime* CSemaphore::GetRuntimeClass()const 3709 CRuntime* CSharedFile::GetRuntimeClass()const 3710 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3711 CRuntime* CSliderCtrl::GetRuntimeClass()const 3712 CRuntime* CSocket::GetRuntimeClass()const 3713 CRuntime* CSocketFile::GetRuntimeClass()const 3714 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3715 CRuntime* CSplitterWnd::GetRuntimeClass()const 3716 CRuntime* CStatic::GetRuntimeClass()const 3717 CRuntime* CStatusBar::GetRuntimeClass()const 3718 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3719 CRuntime* CStdioFile::GetRuntimeClass()const 3720 CRuntime* CStockPropPage::GetRuntimeClass()const 3721 CRuntime* CStringArray::GetRuntimeClass()const 3722 CRuntime* CStringList::GetRuntimeClass()const 3723 CRuntime* CSyncObject::GetRuntimeClass()const 3724 CRuntime* CTabCtrl::GetRuntimeClass()const 3725 CRuntime* CToolBar::GetRuntimeClass()const 3726 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3727 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3728 CRuntime* CTreeCtrl::GetRuntimeClass()const 3729 CRuntime* CTreeView::GetRuntimeClass()const 3730 CRuntime* CUIntArray::GetRuntimeClass()const 3731 CRuntime* CUserException::GetRuntimeClass()const 3732 CRuntime* CView::GetRuntimeClass()const 3733 CRuntime* CWinApp::GetRuntimeClass()const 3734 CRuntime* CWindowDC::GetRuntimeClass()const 3735 CRuntime* CWindowlessDC::GetRuntimeClass()const 3736 CRuntime* CWinThread::GetRuntimeClass()const 3737 CRuntime* CWnd::GetRuntimeClass()const 3738 CRuntime* CWordArray::GetRuntimeClass()const 3739 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3740 unsigned long * CColorDialog::GetSavedCustomColors() 3741 CString CGopherFileFind::GetScreenName()const 3742 CSize CDockState::GetScreenSize() 3743 CScrollBar * CView::GetScrollBarCtrl(int)const 3744 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3745 void CScrollView::GetScrollBarSizes(CSize &) 3746 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3747 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3748 int CWnd::GetScrollLimit(int) 3749 int CWnd::GetScrollPos(int)const 3750 CPoint CScrollView::GetScrollPosition()const 3751 void CWnd::GetScrollRange(int,int *,int *)const 3752 unsigned long CSplitterWnd::GetScrollStyle()const 3753 int COleDateTime::GetSecond()const 3754 long COleDateTimeSpan::GetSeconds()const 3755 CPropertySection * CPropertySet::GetSection(_GUID) 3756 HKEY__ * CWinApp::GetSectionKey(unsigned short const *) 3757 unsigned short const * CPropertySection::GetSectionName() 3758 void CRichEditCtrl::GetSel(long &,long &)const 3759 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3760 void CEditView::GetSelectedText(CString &)const 3761 void CSliderCtrl::GetSelection(int &,int &)const 3762 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3763 unsigned int COleConvertDialog::GetSelectionType()const 3764 unsigned int COleInsertDialog::GetSelectionType()const 3765 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3766 CString CRichEditCtrl::GetSelText()const 3767 CString CInternetConnection::GetServerName()const 3768 unsigned long CPropertySection::GetSize() 3769 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3770 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3771 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3772 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3773 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3774 CWnd * CSplitterWnd::GetSizingParent() 3775 int CAsyncSocket::GetSockName(CString &,unsigned int &) 3776 CString CDaoTableDef::GetSourceTableName() 3777 CString CDaoQueryDef::GetSQL() 3778 CString CDaoRecordset::GetSQL()const 3779 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3780 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3781 __POSITION * CConnectionPoint::GetStartPosition()const 3782 __POSITION * COleDocument::GetStartPosition()const 3783 __POSITION * CRichEditDoc::GetStartPosition()const 3784 int CFile::GetStatus(CFileStatus &)const 3785 int CFile::GetStatus(unsigned short const *,CFileStatus &) 3786 int CMemFile::GetStatus(CFileStatus &)const 3787 int COleStreamFile::GetStatus(CFileStatus &)const 3788 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 3789 CString const COleStreamFile::GetStorageName()const 3790 IStream * COleStreamFile::GetStream()const 3791 unsigned long COleControlSite::GetStyle()const 3792 unsigned long CWnd::GetStyle()const 3793 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3794 short CDaoDatabase::GetTableDefCount() 3795 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 3796 void CDaoDatabase::GetTableDefInfo(unsigned short const *,CDaoTableDefInfo &,unsigned long) 3797 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3798 void CListBox::GetText(int,CString &)const 3799 unsigned short * COleControl::GetText() 3800 CString CStatusBarCtrl::GetText(int,int *)const 3801 int CStatusBarCtrl::GetText(unsigned short const *,int,int *)const 3802 void CToolTipCtrl::GetText(CString &,CWnd *,unsigned int)const 3803 int CRecordset::GetTextLen(short,unsigned long) 3804 int CStatusBarCtrl::GetTextLength(int,int *)const 3805 COleDateTime COleDateTime::GetTickCount() 3806 CTime CTime::GetTickCount() 3807 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3808 CFrameWnd * CWnd::GetTopLevelFrame()const 3809 CWnd * CWnd::GetTopLevelOwner()const 3810 CWnd * CWnd::GetTopLevelParent()const 3811 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3812 void CRectTracker::GetTrueRect(tagRECT *)const 3813 short CDaoQueryDef::GetType() 3814 short CDaoRecordset::GetType() 3815 short CPictureHolder::GetType() 3816 unsigned long CProperty::GetType() 3817 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3818 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3819 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3820 unsigned int CCmdTarget::GetTypeInfoCount() 3821 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3822 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3823 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3824 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3825 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3826 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3827 void COleSafeArray::GetUBound(unsigned long,long *) 3828 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3829 long COleControl::XOleObject::GetUserClassID(_GUID *) 3830 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3831 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3832 CString CDaoWorkspace::GetUserNameW() 3833 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,CString &) 3834 void COleControl::GetUserType(unsigned short *) 3835 long CDocObjectServer::XOleObject::GetUserType(unsigned long,unsigned short * *) 3836 long COleControl::XOleObject::GetUserType(unsigned long,unsigned short * *) 3837 long COleServerDoc::XOleObject::GetUserType(unsigned long,unsigned short * *) 3838 long COleServerItem::XOleObject::GetUserType(unsigned long,unsigned short * *) 3839 CString CDaoRecordset::GetValidationRule() 3840 CString CDaoTableDef::GetValidationRule() 3841 CString CDaoRecordset::GetValidationText() 3842 CString CDaoTableDef::GetValidationText() 3843 void * CMapPtrToPtr::GetValueAt(void *)const 3844 CString CHttpFile::GetVerb()const 3845 CString CDaoDatabase::GetVersion() 3846 CString CDaoWorkspace::GetVersion() 3847 unsigned long CDockState::GetVersion() 3848 CRichEditView * CRichEditDoc::GetView()const 3849 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3850 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3851 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3852 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3853 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3854 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3855 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3856 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3857 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3858 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3859 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3860 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3861 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3862 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3863 IDropTarget * COleControl::GetWindowlessDropTarget() 3864 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3865 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3866 int COleControlSite::GetWindowTextLengthW()const 3867 int CWnd::GetWindowTextLengthW()const 3868 int COleControlSite::GetWindowTextW(unsigned short *,int)const 3869 void COleControlSite::GetWindowTextW(CString &)const 3870 int CWnd::GetWindowTextW(unsigned short *,int)const 3871 void CWnd::GetWindowTextW(CString &)const 3872 short CDaoWorkspace::GetWorkspaceCount() 3873 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 3874 void CDaoWorkspace::GetWorkspaceInfo(unsigned short const *,CDaoWorkspaceInfo &,unsigned long) 3875 int COleDateTime::GetYear()const 3876 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3877 long COleDropSource::GiveFeedback(unsigned long) 3878 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3879 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3880 int CDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3881 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3882 void CMemFile::GrowFile(unsigned long) 3883 _GUID const CColorPropPage::guid 3884 _GUID const CFontPropPage::guid 3885 _GUID const CPicturePropPage::guid 3886 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3887 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3888 long CDialog::HandleInitDialog(unsigned int,long) 3889 long CDialogBar::HandleInitDialog(unsigned int,long) 3890 long CFormView::HandleInitDialog(unsigned int,long) 3891 long CPropertySheet::HandleInitDialog(unsigned int,long) 3892 long CDialog::HandleSetFont(unsigned int,long) 3893 long COleControl::XPersistStorage::HandsOffStorage() 3894 long COleServerDoc::XPersistStorage::HandsOffStorage() 3895 int COleDocument::HasBlankItems()const 3896 int CDialogTemplate::HasFont()const 3897 unsigned int HashKey(tagVARIANT const &) 3898 unsigned int HashKey(unsigned short const *) 3899 long COlePropertyPage::XPropertyPage::Help(unsigned short const *) 3900 void CDumpContext::HexDump(unsigned short const *,unsigned char *,int,int) 3901 void CWinApp::HideApplication() 3902 void CFileDialog::HideControl(int) 3903 void CDC::HIMETRICtoDP(tagSIZE *)const 3904 void CDC::HIMETRICtoLP(tagSIZE *)const 3905 int CListCtrl::HitTest(CPoint,unsigned int *)const 3906 int CRectTracker::HitTest(CPoint)const 3907 int CSplitterWnd::HitTest(CPoint)const 3908 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 3909 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3910 int CRectTracker::HitTestHandles(CPoint)const 3911 int CSplitterWnd::IdFromRowCol(int,int)const 3912 void CDaoWorkspace::Idle(int) 3913 void COlePropertyPage::IgnoreApply(unsigned int) 3914 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3915 void CRect::InflateRect(int,int,int,int) 3916 void CRect::InflateRect(tagRECT const *) 3917 int CWinApp::InitApplication() 3918 long COleControl::XOleCache::InitCache(IDataObject *) 3919 int CWnd::InitControlContainer() 3920 void CDaoWorkspace::InitDatabasesCollection() 3921 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3922 void CDaoException::InitErrorsCollection() 3923 void CDaoQueryDef::InitFieldsCollection() 3924 void CDaoRecordset::InitFieldsCollection() 3925 void CDaoTableDef::InitFieldsCollection() 3926 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3927 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3928 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3929 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3930 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3931 void CMapPtrToWord::InitHashTable(unsigned int,int) 3932 void CMapStringToOb::InitHashTable(unsigned int,int) 3933 void CMapStringToPtr::InitHashTable(unsigned int,int) 3934 void CMapStringToString::InitHashTable(unsigned int,int) 3935 void CMapWordToOb::InitHashTable(unsigned int,int) 3936 void CMapWordToPtr::InitHashTable(unsigned int,int) 3937 long CDataSourceControl::Initialize() 3938 void CMiniFrameWnd::Initialize() 3939 void CDaoWorkspace::InitializeEngine() 3940 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3941 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3942 int CEditView::InitializeReplace() 3943 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3944 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3945 void CDaoRecordset::InitIndexesCollection() 3946 void CDaoTableDef::InitIndexesCollection() 3947 int COleControlModule::InitInstance() 3948 int CWinApp::InitInstance() 3949 int CWinThread::InitInstance() 3950 void CDockContext::InitLoop() 3951 int CDialog::InitModalIndirect(void *,CWnd *) 3952 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3953 long COleControl::XPersistMemory::InitNew() 3954 long COleControl::XPersistPropertyBag::InitNew() 3955 long COleControl::XPersistStorage::InitNew(IStorage *) 3956 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3957 long COleControl::XPersistStreamInit::InitNew() 3958 void CDaoQueryDef::InitParametersCollection() 3959 void CDaoDatabase::InitQueryDefsCollection() 3960 void CRecordset::InitRecord() 3961 void CDaoDatabase::InitRelationsCollection() 3962 void COleControl::InitStockEventMask() 3963 void COleControl::InitStockPropMask() 3964 void CSimpleException::InitString() 3965 void CDaoDatabase::InitTableDefsCollection() 3966 void CDaoDatabase::InitWorkspace() 3967 void CDaoWorkspace::InitWorkspacesCollection() 3968 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3969 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3970 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3971 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3972 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3973 __POSITION * CStringList::InsertAfter(__POSITION *,unsigned short const *) 3974 void CByteArray::InsertAt(int,unsigned char,int) 3975 void CByteArray::InsertAt(int,CByteArray *) 3976 void CDWordArray::InsertAt(int,unsigned long,int) 3977 void CDWordArray::InsertAt(int,CDWordArray *) 3978 void CObArray::InsertAt(int,CObArray *) 3979 void CObArray::InsertAt(int,CObject *,int) 3980 void CPtrArray::InsertAt(int,CPtrArray *) 3981 void CPtrArray::InsertAt(int,void *,int) 3982 void CStringArray::InsertAt(int,CStringArray *) 3983 void CStringArray::InsertAt(int,unsigned short const *,int) 3984 void CUIntArray::InsertAt(int,unsigned int,int) 3985 void CUIntArray::InsertAt(int,CUIntArray *) 3986 void CWordArray::InsertAt(int,unsigned short,int) 3987 void CWordArray::InsertAt(int,CWordArray *) 3988 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3989 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3990 __POSITION * CStringList::InsertBefore(__POSITION *,unsigned short const *) 3991 int CListCtrl::InsertColumn(int,unsigned short const *,int,int,int) 3992 void CRichEditView::InsertFileAsObject(unsigned short const *) 3993 int CListCtrl::InsertItem(unsigned int,int,unsigned short const *,unsigned int,unsigned int,int,long) 3994 long CRichEditView::InsertItem(CRichEditCntrItem *) 3995 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,unsigned short const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3996 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3997 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3998 AFX_INTERFACEMAP const CCmdTarget::interfaceMap 3999 AFX_INTERFACEMAP const CDocObjectServer::interfaceMap 4000 AFX_INTERFACEMAP const COleClientItem::interfaceMap 4001 AFX_INTERFACEMAP const COleControl::interfaceMap 4002 AFX_INTERFACEMAP const COleDataSource::interfaceMap 4003 AFX_INTERFACEMAP const COleDropSource::interfaceMap 4004 AFX_INTERFACEMAP const COleDropTarget::interfaceMap 4005 AFX_INTERFACEMAP const COleFrameHook::interfaceMap 4006 AFX_INTERFACEMAP const COleLinkingDoc::interfaceMap 4007 AFX_INTERFACEMAP const COleMessageFilter::interfaceMap 4008 AFX_INTERFACEMAP const COleObjectFactory::interfaceMap 4009 AFX_INTERFACEMAP const COlePropertyPage::interfaceMap 4010 AFX_INTERFACEMAP const COleServerDoc::interfaceMap 4011 AFX_INTERFACEMAP const COleServerItem::interfaceMap 4012 AFX_INTERFACEMAP const CRichEditView::interfaceMap 4013 CFontHolder & COleControl::InternalGetFont() 4014 CString const & COleControl::InternalGetText() 4015 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 4016 unsigned long CCmdTarget::InternalRelease() 4017 int CDC::IntersectClipRect(int,int,int,int) 4018 int CDC::IntersectClipRect(tagRECT const *) 4019 void CCheckListBox::InvalidateCheck(int) 4020 void COleControl::InvalidateControl(tagRECT const *,int) 4021 void CCheckListBox::InvalidateItem(int) 4022 void COleControl::InvalidateRgn(CRgn *,int) 4023 void CMiniFrameWnd::InvertSysMenu() 4024 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4025 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4026 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4027 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4028 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4029 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4030 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4031 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4032 int CDocItem::IsBlank()const 4033 int COleServerItem::IsBlank()const 4034 int CDaoRecordset::IsBOF()const 4035 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 4036 int COleServerItem::IsConnected()const 4037 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 4038 int COleControlSite::IsDefaultButton() 4039 int CDaoRecordset::IsDeleted()const 4040 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 4041 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 4042 int CWnd::IsDialogMessageW(tagMSG *) 4043 long CBlobProperty::IsDirty() 4044 long COleLinkingDoc::XPersistFile::IsDirty() 4045 long COleControl::XPersistMemory::IsDirty() 4046 long COleControl::XPersistStorage::IsDirty() 4047 long COleServerDoc::XPersistStorage::IsDirty() 4048 long COleControl::XPersistStreamInit::IsDirty() 4049 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 4050 unsigned int CWnd::IsDlgButtonChecked(int)const 4051 int CControlBar::IsDockBar()const 4052 int CDockBar::IsDockBar()const 4053 int CFileFind::IsDots()const 4054 int CGopherFileFind::IsDots()const 4055 int CCheckListBox::IsEnabled(int) 4056 int CDaoRecordset::IsEOF()const 4057 int CDaoRecordset::IsFieldDirty(void *) 4058 int CRecordset::IsFieldDirty(void *) 4059 int CDaoRecordset::IsFieldNull(void *) 4060 int CRecordset::IsFieldNull(void *) 4061 int CDaoRecordset::IsFieldNullable(void *) 4062 int CRecordset::IsFieldNullable(void *) 4063 int CRecordset::IsFieldNullable(unsigned long)const 4064 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 4065 int CRecordset::IsFieldStatusDirty(unsigned long)const 4066 int CDaoRecordset::IsFieldStatusNull(unsigned int) 4067 int CRecordset::IsFieldStatusNull(unsigned long)const 4068 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 4069 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 4070 int CFieldExchange::IsFieldType(unsigned int *) 4071 int CControlBar::IsFloating()const 4072 int CFrameWnd::IsFrameWnd()const 4073 int CWnd::IsFrameWnd()const 4074 int CWinThread::IsIdleMessage(tagMSG *) 4075 int CCmdTarget::IsInvokeAllowed(long) 4076 int COleControl::IsInvokeAllowed(long) 4077 int CRecordset::IsJoin(unsigned short const *) 4078 int CObject::IsKindOf(CRuntimeconst *)const 4079 int COccManager::IsLabelControl(CWnd *) 4080 int COleObjectFactory::IsLicenseValid() 4081 int CDaoRecordset::IsMatch() 4082 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 4083 int COleControlSite::IsMatchingMnemonic(tagMSG *) 4084 int CDocument::IsModified() 4085 int COleClientItem::IsModified()const 4086 int COleControl::IsModified() 4087 int COlePropertyPage::IsModified() 4088 int CRichEditDoc::IsModified() 4089 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 4090 int CDaoRecordView::IsOnFirstRecord() 4091 int CRecordView::IsOnFirstRecord() 4092 int CDaoRecordView::IsOnLastRecord() 4093 int CRecordView::IsOnLastRecord() 4094 int CRecordset::IsOpen()const 4095 long COlePropertyPage::XPropertyPage::IsPageDirty() 4096 int CRecordset::IsParamStatusNull(unsigned long)const 4097 int CRecordset::IsRecordsetUpdatable() 4098 int COleObjectFactory::IsRegistered()const 4099 int CCmdTarget::IsResultExpected() 4100 int CRichEditView::IsRichEditFormat(unsigned short) 4101 long COleLinkingDoc::XOleItemContainer::IsRunning(unsigned short *) 4102 int CRichEditView::IsSelected(CObject const *)const 4103 int CView::IsSelected(CObject const *)const 4104 int CRecordset::IsSelectQueryUpdatable(unsigned short const *) 4105 int CObject::IsSerializable()const 4106 int COleMessageFilter::IsSignificantMessage(tagMSG *) 4107 int CRecordset::IsSQLUpdatable(unsigned short const *) 4108 int COleControl::IsSubclassedControl() 4109 int CWnd::IsTopParentActive()const 4110 int CFrameWnd::IsTracking()const 4111 long CDocObjectServer::XOleObject::IsUpToDate() 4112 long COleControl::XOleObject::IsUpToDate() 4113 long COleServerDoc::XOleObject::IsUpToDate() 4114 long COleServerItem::XOleObject::IsUpToDate() 4115 int CDaoFieldExchange::IsValidOperation() 4116 int CControlBar::IsVisible()const 4117 int COleControlSite::IsWindowEnabled()const 4118 int CWnd::IsWindowEnabled()const 4119 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 4120 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 4121 void COleControl::KeyDown(unsigned short *) 4122 void COleControl::KeyUp(unsigned short *) 4123 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 4124 CString CString::Left(int)const 4125 int CRichEditCtrl::LineIndex(int)const 4126 int CRichEditCtrl::LineLength(int)const 4127 void CRichEditCtrl::LineScroll(int,int) 4128 int CDC::LineTo(int,int) 4129 unsigned long CRichEditView::lMaxSize 4130 long CBlobProperty::Load(IStream *) 4131 int CDialogTemplate::Load(unsigned short const *) 4132 void COleControl::Load(unsigned short const *,CDataPathProperty &) 4133 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4134 long COleLinkingDoc::XPersistFile::Load(unsigned short const *,unsigned long) 4135 long COleControl::XPersistMemory::Load(void *,unsigned long) 4136 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4137 long COleControl::XPersistStorage::Load(IStorage *) 4138 long COleServerDoc::XPersistStorage::Load(IStorage *) 4139 long COleControl::XPersistStreamInit::Load(IStream *) 4140 int CFrameWnd::LoadAccelTable(unsigned short const *) 4141 void CFrameWnd::LoadBarState(unsigned short const *) 4142 int CBitmapButton::LoadBitmaps(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *) 4143 int CToolBar::LoadBitmapW(unsigned short const *) 4144 void CDaoRecordset::LoadFields() 4145 void CRecordset::LoadFields() 4146 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4147 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4148 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4149 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4150 void COleDocument::LoadFromStorage() 4151 int CControlBarInfo::LoadState(unsigned short const *,int,CDockState *) 4152 void CDockState::LoadState(unsigned short const *) 4153 long COleControl::LoadState(IStream *) 4154 void CWinApp::LoadStdProfileSettings(unsigned int) 4155 int CString::LoadStringW(unsigned int) 4156 void CDocTemplate::LoadTemplate() 4157 void CMultiDocTemplate::LoadTemplate() 4158 int CToolBar::LoadToolBar(unsigned short const *) 4159 int CCriticalSection::Lock(unsigned long) 4160 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4161 void COleSafeArray::Lock() 4162 int CSingleLock::Lock(unsigned long) 4163 int CSyncObject::Lock(unsigned long) 4164 void CTypeLibCache::Lock() 4165 unsigned short const * CEditView::LockBuffer()const 4166 unsigned short * CString::LockBuffer() 4167 long COleControlContainer::XOleContainer::LockContainer(int) 4168 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4169 void COleLinkingDoc::LockExternal(int,int) 4170 int COleControl::LockInPlaceActive(int) 4171 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4172 void CFile::LockRange(unsigned long,unsigned long) 4173 void CInternetFile::LockRange(unsigned long,unsigned long) 4174 void CMemFile::LockRange(unsigned long,unsigned long) 4175 void COleStreamFile::LockRange(unsigned long,unsigned long) 4176 void CSocketFile::LockRange(unsigned long,unsigned long) 4177 void CStdioFile::LockRange(unsigned long,unsigned long) 4178 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4179 long COleObjectFactory::XClassFactory::LockServer(int) 4180 int CMapPtrToPtr::Lookup(void *,void * &)const 4181 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4182 int CMapStringToOb::Lookup(unsigned short const *,CObject * &)const 4183 int CMapStringToPtr::Lookup(unsigned short const *,void * &)const 4184 int CMapStringToString::Lookup(unsigned short const *,CString &)const 4185 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4186 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4187 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4188 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4189 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4190 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4191 int CMapStringToOb::LookupKey(unsigned short const *,unsigned short const * &)const 4192 int CMapStringToPtr::LookupKey(unsigned short const *,unsigned short const * &)const 4193 int CMapStringToString::LookupKey(unsigned short const *,unsigned short const * &)const 4194 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4195 void CDC::LPtoDP(tagSIZE *)const 4196 void CDC::LPtoHIMETRIC(tagSIZE *)const 4197 void CString::MakeLower() 4198 void CString::MakeReverse() 4199 void CString::MakeUpper() 4200 void CArchive::MapObject(CObject const *) 4201 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4202 int COleDialog::MapResult(unsigned int) 4203 long CPropertyPage::MapWizardResult(long) 4204 void CDaoRecordset::MarkForAddNew() 4205 void CRecordset::MarkForAddNew() 4206 void CDaoRecordset::MarkForEdit() 4207 void CRecordset::MarkForUpdate() 4208 void CRichEditDoc::MarkItemsClear()const 4209 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(unsigned short const *,CDocument * &) 4210 int CFileFind::MatchesMask(unsigned long)const 4211 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4212 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4213 void CComboBox::MeasureItem(tagMEASUREITEM*) 4214 void CListBox::MeasureItem(tagMEASUREITEM*) 4215 void CMenu::MeasureItem(tagMEASUREITEM*) 4216 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,unsigned short const *) 4217 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned int) 4218 int COlePropertyPage::MessageBoxW(unsigned short const *,unsigned short const *,unsigned int) 4219 int CWnd::MessageBoxW(unsigned short const *,unsigned short const *,unsigned int) 4220 AFX_MSGMAP const CCheckListBox::messageMap 4221 AFX_MSGMAP const CCmdTarget::messageMap 4222 AFX_MSGMAP const CColorDialog::messageMap 4223 AFX_MSGMAP const CColorPropPage::messageMap 4224 AFX_MSGMAP const CCommonDialog::messageMap 4225 AFX_MSGMAP const CControlBar::messageMap 4226 AFX_MSGMAP const CControlFrameWnd::messageMap 4227 AFX_MSGMAP const CCtrlView::messageMap 4228 AFX_MSGMAP const CDaoRecordView::messageMap 4229 AFX_MSGMAP const CDialog::messageMap 4230 AFX_MSGMAP const CDialogBar::messageMap 4231 AFX_MSGMAP const CDockBar::messageMap 4232 AFX_MSGMAP const CDocObjectServer::messageMap 4233 AFX_MSGMAP const CDocument::messageMap 4234 AFX_MSGMAP const CEditView::messageMap 4235 AFX_MSGMAP const CFontPropPage::messageMap 4236 AFX_MSGMAP const CFormView::messageMap 4237 AFX_MSGMAP const CFrameWnd::messageMap 4238 AFX_MSGMAP const CListCtrl::messageMap 4239 AFX_MSGMAP const CListView::messageMap 4240 AFX_MSGMAP const CMDIChildWnd::messageMap 4241 AFX_MSGMAP const CMDIFrameWnd::messageMap 4242 AFX_MSGMAP const CMiniDockFrameWnd::messageMap 4243 AFX_MSGMAP const CMiniFrameWnd::messageMap 4244 AFX_MSGMAP const COleControl::messageMap 4245 AFX_MSGMAP const COleDocIPFrameWnd::messageMap 4246 AFX_MSGMAP const COleIPFrameWnd::messageMap 4247 AFX_MSGMAP const COlePropertyPage::messageMap 4248 AFX_MSGMAP const COleResizeBar::messageMap 4249 AFX_MSGMAP const COleServerDoc::messageMap 4250 AFX_MSGMAP const CPicturePropPage::messageMap 4251 AFX_MSGMAP const CPreviewView::messageMap 4252 AFX_MSGMAP const CPrintDialog::messageMap 4253 AFX_MSGMAP const CPropertyPage::messageMap 4254 AFX_MSGMAP const CPropertySheet::messageMap 4255 AFX_MSGMAP const CRecordView::messageMap 4256 AFX_MSGMAP const CRichEditView::messageMap 4257 AFX_MSGMAP const CScrollView::messageMap 4258 AFX_MSGMAP const CSocketWnd::messageMap 4259 AFX_MSGMAP const CSplitterWnd::messageMap 4260 AFX_MSGMAP const CStatusBar::messageMap 4261 AFX_MSGMAP const CStockPropPage::messageMap 4262 AFX_MSGMAP const CTabCtrl::messageMap 4263 AFX_MSGMAP const CToolBar::messageMap 4264 AFX_MSGMAP const CToolBarCtrl::messageMap 4265 AFX_MSGMAP const CToolTipCtrl::messageMap 4266 AFX_MSGMAP const CTreeCtrl::messageMap 4267 AFX_MSGMAP const CTreeView::messageMap 4268 AFX_MSGMAP const CView::messageMap 4269 AFX_MSGMAP const CWinApp::messageMap 4270 AFX_MSGMAP const CWnd::messageMap 4271 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4272 CString CString::Mid(int)const 4273 CString CString::Mid(int,int)const 4274 void CPreviewDC::MirrorAttributes() 4275 void CPreviewDC::MirrorFont() 4276 void CPreviewDC::MirrorMappingMode(int) 4277 void CPreviewDC::MirrorViewportOrg() 4278 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4279 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4280 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4281 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4282 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4283 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4284 void CDaoRecordset::Move(long) 4285 void CDockContext::Move(CPoint) 4286 void CRecordset::Move(long,unsigned short) 4287 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4288 void CDaoRecordset::MoveFirst() 4289 void CDaoRecordset::MoveLast() 4290 void CDaoRecordset::MoveNext() 4291 void CDaoRecordset::MovePrev() 4292 CPoint CDC::MoveTo(int,int) 4293 void COleControlSite::MoveWindow(int,int,int,int,int) 4294 void CWnd::MoveWindow(int,int,int,int,int) 4295 CRect CRect::MulDiv(int,int)const 4296 unsigned int COleDropSource::nDragDelay 4297 unsigned int COleDropSource::nDragMinDist 4298 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4299 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 4300 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 4301 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 4302 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 4303 CMapStringToString::CAssoc * CMapStringToString::NewAssoc() 4304 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 4305 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 4306 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4307 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4308 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4309 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4310 unsigned int const CEditView::nMaxSize 4311 int CRectTracker::NormalizeHit(int)const 4312 void CRect::NormalizeRect() 4313 void CDataBoundProperty::Notify() 4314 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4315 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4316 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4317 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4318 void COleServerDoc::NotifyRename(unsigned short const *) 4319 unsigned int COleDropTarget::nScrollDelay 4320 int COleDropTarget::nScrollInset 4321 unsigned int COleDropTarget::nScrollInterval 4322 int CDC::OffsetClipRgn(int,int) 4323 int CDC::OffsetClipRgn(tagSIZE) 4324 CPoint CDC::OffsetViewportOrg(int,int) 4325 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4326 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4327 CPoint CDC::OffsetWindowOrg(int,int) 4328 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4329 void CAsyncSocket::OnAccept(int) 4330 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4331 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4332 void COleClientItem::OnActivate() 4333 void COleFrameHook::OnActivate(int) 4334 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4335 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4336 long COleControl::OnActivateInPlace(int,tagMSG *) 4337 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4338 long CWnd::OnActivateTopLevel(unsigned int,long) 4339 void COleClientItem::OnActivateUI() 4340 long CDocObjectServer::OnActivateView() 4341 void CFormView::OnActivateView(int,CView *,CView *) 4342 void CPreviewView::OnActivateView(int,CView *,CView *) 4343 void CView::OnActivateView(int,CView *,CView *) 4344 long CToolTipCtrl::OnAddTool(unsigned int,long) 4345 void CConnectionPoint::OnAdvise(int) 4346 void COleControl::XEventConnPt::OnAdvise(int) 4347 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4348 void COleControl::OnAmbientPropertyChange(long) 4349 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4350 void COleControl::OnAppearanceChanged() 4351 void CWinApp::OnAppExit() 4352 int CPropertyPage::OnApply() 4353 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4354 void CDocObjectServer::OnApplyViewState(CArchive &) 4355 void COleControl::OnBackColorChanged() 4356 int CFrameWnd::OnBarCheck(unsigned int) 4357 int COleIPFrameWnd::OnBarCheck(unsigned int) 4358 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4359 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4360 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4361 int COleDropSource::OnBeginDrag(CWnd *) 4362 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4363 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4364 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4365 void COleControl::OnBorderStyleChanged() 4366 void CPicturePropPage::OnBrowse() 4367 void CRichEditView::OnBullet() 4368 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4369 void CCommonDialog::OnCancel() 4370 void CDialog::OnCancel() 4371 void CPropertyPage::OnCancel() 4372 void CRichEditView::OnCancelEditCntr() 4373 void COleControl::OnCancelMode() 4374 void CSplitterWnd::OnCancelMode() 4375 void CWnd::OnCancelMode() 4376 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4377 long COleControl::XFontNotification::OnChanged(long) 4378 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4379 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4380 void CRectTracker::OnChangedRect(CRect const &) 4381 void CDocument::OnChangedViewList() 4382 int COleClientItem::OnChangeItemPosition(CRect const &) 4383 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4384 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4385 void CRichEditView::OnCharBold() 4386 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4387 void CRichEditView::OnCharItalic() 4388 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4389 void CRichEditView::OnCharUnderline() 4390 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4391 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4392 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4393 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4394 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4395 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4396 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4397 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4398 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4399 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4400 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4401 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4402 void CPicturePropPage::OnClear() 4403 void COleControl::OnClick(unsigned short) 4404 CEnumArray * CEnumArray::OnClone() 4405 void CAsyncSocket::OnClose(int) 4406 void CControlFrameWnd::OnClose() 4407 void CFrameWnd::OnClose() 4408 void CMiniDockFrameWnd::OnClose() 4409 void COleControl::OnClose(unsigned long) 4410 void COleServerDoc::OnClose(enum tagOLECLOSE) 4411 void CPropertySheet::OnClose() 4412 void COleClientItem::XAdviseSink::OnClose() 4413 void CDocObjectServer::OnCloseDocument() 4414 void CDocument::OnCloseDocument() 4415 void COleDocument::OnCloseDocument() 4416 void COleLinkingDoc::OnCloseDocument() 4417 void COleServerDoc::OnCloseDocument() 4418 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4419 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4420 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4421 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4422 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4423 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4424 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4425 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4426 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4427 void CRichEditView::OnColorDefault() 4428 int CColorDialog::OnColorOK() 4429 void CRichEditView::OnColorPick(unsigned long) 4430 int CFrameWnd::OnCommand(unsigned int,long) 4431 int CMDIFrameWnd::OnCommand(unsigned int,long) 4432 int COlePropertyPage::OnCommand(unsigned int,long) 4433 int CPropertySheet::OnCommand(unsigned int,long) 4434 int CSplitterWnd::OnCommand(unsigned int,long) 4435 int CWnd::OnCommand(unsigned int,long) 4436 long CDialog::OnCommandHelp(unsigned int,long) 4437 long CFrameWnd::OnCommandHelp(unsigned int,long) 4438 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4439 long CPropertySheet::OnCommandHelp(unsigned int,long) 4440 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4441 void CAsyncSocket::OnConnect(int) 4442 void CFrameWnd::OnContextHelp() 4443 int COleFrameHook::OnContextHelp(int) 4444 void COleIPFrameWnd::OnContextHelp() 4445 void CWinApp::OnContextHelp() 4446 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4447 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 4448 int CControlBar::OnCreate(tagCREATESTRUCTW *) 4449 int CEditView::OnCreate(tagCREATESTRUCTW *) 4450 int CFormView::OnCreate(tagCREATESTRUCTW *) 4451 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 4452 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 4453 int COleControl::OnCreate(tagCREATESTRUCTW *) 4454 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 4455 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 4456 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 4457 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 4458 int CView::OnCreate(tagCREATESTRUCTW *) 4459 int CCmdTarget::OnCreateAggregates() 4460 int COleControl::OnCreateAggregates() 4461 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4462 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4463 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4464 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4465 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 4466 CCmdTarget * COleObjectFactory::OnCreateObject() 4467 CCmdTarget * COleTemplateServer::OnCreateObject() 4468 HBRUSH__ * CColorDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 4469 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4470 HBRUSH__ * CDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 4471 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4472 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4473 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4474 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4475 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4476 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4477 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4478 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4479 int CDocManager::OnDDECommand(unsigned short *) 4480 int CWinApp::OnDDECommand(unsigned short *) 4481 long CFrameWnd::OnDDEExecute(unsigned int,long) 4482 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4483 long CFrameWnd::OnDDETerminate(unsigned int,long) 4484 void COleClientItem::OnDeactivate() 4485 void COleServerDoc::OnDeactivate() 4486 void COleClientItem::OnDeactivateAndUndo() 4487 void COleClientItem::OnDeactivateUI(int) 4488 void COleServerDoc::OnDeactivateUI(int) 4489 void CRichEditCntrItem::OnDeactivateUI(int) 4490 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4491 void CControlBar::OnDestroy() 4492 void CEditView::OnDestroy() 4493 void CFrameWnd::OnDestroy() 4494 void CMDIChildWnd::OnDestroy() 4495 void CMDIFrameWnd::OnDestroy() 4496 void COleControl::OnDestroy() 4497 void COleIPFrameWnd::OnDestroy() 4498 void CRichEditView::OnDestroy() 4499 void CTabCtrl::OnDestroy() 4500 void CTreeCtrl::OnDestroy() 4501 void CTreeView::OnDestroy() 4502 void CView::OnDestroy() 4503 void CRichEditView::OnDevModeChange(unsigned short *) 4504 void CWnd::OnDevModeChange(unsigned short *) 4505 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4506 void COleClientItem::OnDiscardUndoState() 4507 void CSplitterWnd::OnDisplayChange() 4508 long CWnd::OnDisplayChange(unsigned int,long) 4509 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4510 int COleFrameHook::OnDocActivate(int) 4511 void COleServerDoc::OnDocWindowActivate(int) 4512 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4513 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4514 void CDocObjectServerItem::OnDoVerb(long) 4515 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4516 void COleServerItem::OnDoVerb(long) 4517 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4518 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4519 void COleDropTarget::OnDragLeave(CWnd *) 4520 void CView::OnDragLeave() 4521 long CWnd::OnDragList(unsigned int,long) 4522 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4523 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4524 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4525 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4526 void CCtrlView::OnDraw(CDC *) 4527 void CFormView::OnDraw(CDC *) 4528 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4529 void CPreviewView::OnDraw(CDC *) 4530 void CView::OnDraw(CDC *) 4531 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4532 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4533 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4534 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4535 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4536 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4537 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4538 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4539 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4540 void CFrameWnd::OnDropFiles(HDROP__ *) 4541 void CRichEditView::OnDropFiles(HDROP__ *) 4542 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4543 int CEditView::OnEditChange() 4544 void CFontPropPage::OnEditchangeFontstyles() 4545 void COleDocument::OnEditChangeIcon() 4546 void CEditView::OnEditClear() 4547 void CRichEditView::OnEditClear() 4548 void COleDocument::OnEditConvert() 4549 void CEditView::OnEditCopy() 4550 void CRichEditView::OnEditCopy() 4551 void CEditView::OnEditCut() 4552 void CRichEditView::OnEditCut() 4553 void CEditView::OnEditFind() 4554 void CRichEditView::OnEditFind() 4555 void CEditView::OnEditFindReplace(int) 4556 void CRichEditView::OnEditFindReplace(int) 4557 void COleDocument::OnEditLinks() 4558 void CEditView::OnEditPaste() 4559 void CRichEditView::OnEditPaste() 4560 void CRichEditView::OnEditPasteSpecial() 4561 void CRichEditView::OnEditProperties() 4562 int CColorPropPage::OnEditProperty(long) 4563 int CFontPropPage::OnEditProperty(long) 4564 int COlePropertyPage::OnEditProperty(long) 4565 int CPicturePropPage::OnEditProperty(long) 4566 int CStockPropPage::OnEditProperty(long,CComboBox &) 4567 void CEditView::OnEditRepeat() 4568 void CRichEditView::OnEditRepeat() 4569 void CEditView::OnEditReplace() 4570 void CRichEditView::OnEditReplace() 4571 void CEditView::OnEditSelectAll() 4572 void CRichEditView::OnEditSelectAll() 4573 void CEditView::OnEditUndo() 4574 void CRichEditView::OnEditUndo() 4575 void CFontPropPage::OnEditupdateFontnames() 4576 void CFontPropPage::OnEditupdateFontsizes() 4577 void CFrameWnd::OnEnable(int) 4578 void COleControl::OnEnabledChanged() 4579 void COleFrameHook::OnEnableModeless(int) 4580 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4581 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4582 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4583 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4584 void CFrameWnd::OnEndSession(int) 4585 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4586 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4587 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4588 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4589 int CFrameWnd::OnEraseBkgnd(CDC *) 4590 int COleResizeBar::OnEraseBkgnd(CDC *) 4591 int CPreviewView::OnEraseBkgnd(CDC *) 4592 int CToolBar::OnEraseBkgnd(CDC *) 4593 int CWnd::OnEraseBkgnd(CDC *) 4594 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4595 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4596 int COleControlSite::OnEvent(AFX_EVENT *) 4597 void COleControl::OnEventAdvise(int) 4598 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4599 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4600 void CDocument::OnFileClose() 4601 void CFileDialog::OnFileNameChange() 4602 int CFileDialog::OnFileNameOK() 4603 void CDocManager::OnFileNew() 4604 void CWinApp::OnFileNew() 4605 void CDocManager::OnFileOpen() 4606 void CWinApp::OnFileOpen() 4607 void CView::OnFilePrint() 4608 void CView::OnFilePrintPreview() 4609 void CWinApp::OnFilePrintSetup() 4610 void CDocument::OnFileSave() 4611 void CDocument::OnFileSaveAs() 4612 void COleServerDoc::OnFileSaveCopyAs() 4613 void CDocument::OnFileSendMail() 4614 void COleDocument::OnFileSendMail() 4615 void COleServerDoc::OnFileUpdate() 4616 void CCmdTarget::OnFinalRelease() 4617 void CDocument::OnFinalRelease() 4618 void COleControl::OnFinalRelease() 4619 void COlePropertyPage::OnFinalRelease() 4620 void COleServerItem::OnFinalRelease() 4621 void CWnd::OnFinalRelease() 4622 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(unsigned short const *) 4623 void CEditView::OnFindNext(unsigned short const *,int,int) 4624 void CRichEditView::OnFindNext(unsigned short const *,int,int,int) 4625 long CEditView::OnFindReplaceCmd(unsigned int,long) 4626 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4627 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4628 long COleControlSite::XOleControlSite::OnFocus(int) 4629 void CFileDialog::OnFolderChange() 4630 void COleControl::OnFontChanged() 4631 void COleControl::OnForeColorChanged() 4632 void CRichEditView::OnFormatFont() 4633 void COleControl::OnFrameClose() 4634 void COleServerDoc::OnFrameWindowActivate(int) 4635 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4636 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4637 void COleControl::OnFreezeEvents(int) 4638 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4639 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4640 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4641 void COleClientItem::OnGetClipRect(CRect &) 4642 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4643 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4644 int COleControl::OnGetDisplayString(long,CString &) 4645 unsigned int COleControl::OnGetDlgCode() 4646 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4647 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4648 HMENU__ * COleControl::OnGetInPlaceMenu() 4649 void COleClientItem::OnGetItemPosition(CRect &) 4650 COleServerItem * COleLinkingDoc::OnGetLinkedItem(unsigned short const *) 4651 COleServerItem * COleServerDoc::OnGetLinkedItem(unsigned short const *) 4652 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4653 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4654 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4655 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4656 long CMiniFrameWnd::OnGetText(unsigned int,long) 4657 long CStatusBar::OnGetText(unsigned int,long) 4658 long CMiniFrameWnd::OnGetTextLength(unsigned int,long) 4659 long CStatusBar::OnGetTextLength(unsigned int,long) 4660 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4661 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4662 unsigned long COleControl::OnGetViewStatus() 4663 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4664 HBRUSH__ * CWnd::OnGrayCtlColor(CDC *,CWnd *,unsigned int) 4665 void CFrameWnd::OnHelp() 4666 int COlePropertyPage::OnHelp(unsigned short const *) 4667 void CWinApp::OnHelp() 4668 void CWnd::OnHelp() 4669 void CWinApp::OnHelpFinder() 4670 void CWnd::OnHelpFinder() 4671 long CControlBar::OnHelpHitTest(unsigned int,long) 4672 long CDialog::OnHelpHitTest(unsigned int,long) 4673 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4674 void CWinApp::OnHelpIndex() 4675 void CWnd::OnHelpIndex() 4676 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4677 int CWnd::OnHelpInfo(tagHELPINFO *) 4678 void CWinApp::OnHelpUsing() 4679 void CWnd::OnHelpUsing() 4680 void CDocObjectServerItem::OnHide() 4681 long COleControl::OnHide() 4682 void COleServerItem::OnHide() 4683 void COleControl::OnHideToolBars() 4684 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4685 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4686 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4687 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4688 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4689 void CDocTemplate::OnIdle() 4690 void CDocument::OnIdle() 4691 void COleDocument::OnIdle() 4692 int CWinApp::OnIdle(long) 4693 int CWinThread::OnIdle(long) 4694 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4695 void CFrameWnd::OnIdleUpdateCmdUI() 4696 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4697 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4698 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4699 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4700 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4701 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4702 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4703 int CColorPropPage::OnInitDialog() 4704 int CDialog::OnInitDialog() 4705 int CFontPropPage::OnInitDialog() 4706 int COlePropertiesDialog::OnInitDialog() 4707 int COlePropertyPage::OnInitDialog() 4708 int CPicturePropPage::OnInitDialog() 4709 int CPropertySheet::OnInitDialog() 4710 void CFileDialog::OnInitDone() 4711 int COleServerItem::OnInitFromData(COleDataObject *,int) 4712 void CControlBar::OnInitialUpdate() 4713 void CDaoRecordView::OnInitialUpdate() 4714 void CFormView::OnInitialUpdate() 4715 void CRecordView::OnInitialUpdate() 4716 void CRichEditView::OnInitialUpdate() 4717 void CView::OnInitialUpdate() 4718 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4719 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4720 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4721 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4722 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4723 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4724 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4725 void CRichEditView::OnInsertObject() 4726 void CSplitterWnd::OnInvertTracker(CRect const &) 4727 void CDockContext::OnKey(int,int) 4728 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4729 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4730 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4731 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4732 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4733 void COleControl::OnKeyPressEvent(unsigned short) 4734 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4735 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4736 int CPropertyPage::OnKillActive() 4737 void COleControl::OnKillFocus(CWnd *) 4738 long CCheckListBox::OnLBAddString(unsigned int,long) 4739 long CCheckListBox::OnLBFindString(unsigned int,long) 4740 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4741 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4742 long CCheckListBox::OnLBGetText(unsigned int,long) 4743 long CCheckListBox::OnLBInsertString(unsigned int,long) 4744 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4745 long CCheckListBox::OnLBSelectString(unsigned int,long) 4746 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4747 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4748 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4749 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4750 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4751 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4752 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4753 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4754 void COleControl::OnLButtonDown(unsigned int,CPoint) 4755 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4756 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4757 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4758 void CMiniFrameWnd::OnLButtonUp(unsigned int,CPoint) 4759 void COleControl::OnLButtonUp(unsigned int,CPoint) 4760 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4761 void CAsyncMonikerFile::OnLowResource() 4762 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4763 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4764 void COleControl::OnMButtonDown(unsigned int,CPoint) 4765 void COleControl::OnMButtonUp(unsigned int,CPoint) 4766 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4767 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4768 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4769 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4770 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4771 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4772 int COleMessageFilter::OnMessagePending(tagMSG const *) 4773 int CSocket::OnMessagePending() 4774 void COleControl::OnMnemonic(tagMSG *) 4775 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4776 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4777 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4778 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4779 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4780 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4781 void CMiniFrameWnd::OnMouseMove(unsigned int,CPoint) 4782 void COleControl::OnMouseMove(unsigned int,CPoint) 4783 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4784 int CDaoRecordView::OnMove(unsigned int) 4785 void COleControl::OnMove(int,int) 4786 int CRecordView::OnMove(unsigned int) 4787 int CFrameWnd::OnNcActivate(int) 4788 int CMDIChildWnd::OnNcActivate(int) 4789 int CMiniFrameWnd::OnNcActivate(int) 4790 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4791 void CMiniFrameWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4792 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4793 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4794 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4795 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 4796 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 4797 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 4798 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 4799 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 4800 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 4801 void CListCtrl::OnNcDestroy() 4802 void CListView::OnNcDestroy() 4803 void CWnd::OnNcDestroy() 4804 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 4805 unsigned int COleControl::OnNcHitTest(CPoint) 4806 unsigned int CStatusBar::OnNcHitTest(CPoint) 4807 unsigned int CToolBar::OnNcHitTest(CPoint) 4808 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4809 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4810 void CMiniFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4811 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4812 void CDockBar::OnNcPaint() 4813 void CMiniFrameWnd::OnNcPaint() 4814 void COleControl::OnNcPaint() 4815 void CStatusBar::OnNcPaint() 4816 void CToolBar::OnNcPaint() 4817 int CDocument::OnNewDocument() 4818 int COleDocument::OnNewDocument() 4819 int COleLinkingDoc::OnNewDocument() 4820 void COleServerDoc::OnNewEmbedding(IStorage *) 4821 int CEnumArray::OnNext(void *) 4822 int CEnumConnPoints::OnNext(void *) 4823 int CEnumFormatEtc::OnNext(void *) 4824 int CEnumOleVerb::OnNext(void *) 4825 int CEnumUnknown::OnNext(void *) 4826 void CPreviewView::OnNextPage() 4827 int CView::OnNextPaneCmd(unsigned int) 4828 int CFileDialog::OnNotify(unsigned int,long,long *) 4829 int CPropertyPage::OnNotify(unsigned int,long,long *) 4830 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4831 int CWnd::OnNotify(unsigned int,long,long *) 4832 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4833 long CWnd::OnNTCtlColor(unsigned int,long) 4834 void CPreviewView::OnNumPageChange() 4835 void CColorPropPage::OnObjectsChanged() 4836 void CFontPropPage::OnObjectsChanged() 4837 void COlePropertyPage::OnObjectsChanged() 4838 void CPicturePropPage::OnObjectsChanged() 4839 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4840 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4841 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4842 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4843 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4844 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4845 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4846 void CCommonDialog::OnOK() 4847 void CDialog::OnOK() 4848 void CPropertyPage::OnOK() 4849 void CDocObjectServerItem::OnOpen() 4850 long COleControl::OnOpen(int,tagMSG *) 4851 void COleServerItem::OnOpen() 4852 int CDocument::OnOpenDocument(unsigned short const *) 4853 int COleDocument::OnOpenDocument(unsigned short const *) 4854 int COleLinkingDoc::OnOpenDocument(unsigned short const *) 4855 void COleServerDoc::OnOpenEmbedding(IStorage *) 4856 int CWinApp::OnOpenRecentFile(unsigned int) 4857 void CAsyncSocket::OnOutOfBandData(int) 4858 void CControlBar::OnPaint() 4859 void CCtrlView::OnPaint() 4860 void CDockBar::OnPaint() 4861 void CFontPropPage::OnPaint() 4862 void COleControl::OnPaint(CDC *) 4863 void COleResizeBar::OnPaint() 4864 void CPicturePropPage::OnPaint() 4865 void CSplitterWnd::OnPaint() 4866 void CStatusBar::OnPaint() 4867 void CToolBar::OnPaint() 4868 void CView::OnPaint() 4869 void CFrameWnd::OnPaletteChanged(CWnd *) 4870 void COleFrameHook::OnPaletteChanged(CWnd *) 4871 void CRichEditView::OnParaAlign(unsigned short) 4872 void CRichEditView::OnParaCenter() 4873 void CRichEditView::OnParaLeft() 4874 void CRichEditView::OnParaRight() 4875 void CWnd::OnParentNotify(unsigned int,long) 4876 int CRichEditView::OnPasteNativeObject(IStorage *) 4877 long CFrameWnd::OnPopMessageString(unsigned int,long) 4878 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4879 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4880 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4881 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4882 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4883 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4884 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4885 int CEditView::OnPreparePrinting(CPrintInfo *) 4886 int CView::OnPreparePrinting(CPrintInfo *) 4887 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4888 void CPreviewView::OnPreviewClose() 4889 void CPreviewView::OnPreviewPrint() 4890 void CPreviewView::OnPrevPage() 4891 void CEditView::OnPrint(CDC *,CPrintInfo *) 4892 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4893 void CView::OnPrint(CDC *,CPrintInfo *) 4894 void CRichEditView::OnPrinterChanged(CDC const &) 4895 void CPrintDialog::OnPrintSetup() 4896 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,unsigned short const *) 4897 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4898 long CWnd::OnQuery3dControls(unsigned int,long) 4899 int CPropertyPage::OnQueryCancel() 4900 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4901 int CFrameWnd::OnQueryEndSession() 4902 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4903 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4904 int CFrameWnd::OnQueryNewPalette() 4905 int COleFrameHook::OnQueryNewPalette() 4906 int COleServerItem::OnQueryUpdateItems() 4907 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4908 void COleControl::OnRButtonDown(unsigned int,CPoint) 4909 void COleControl::OnRButtonUp(unsigned int,CPoint) 4910 int COleServerDoc::OnReactivateAndUndo() 4911 void COleFrameHook::OnRecalcLayout() 4912 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4913 void CAsyncSocket::OnReceive(int) 4914 void COleControl::OnReflectorDestroyed() 4915 void COleClientItem::OnRemoveMenus(CMenu *) 4916 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4917 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4918 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4919 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4920 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4921 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4922 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4923 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4924 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4925 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4926 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4927 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4928 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4929 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4930 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4931 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4932 void CEditView::OnReplaceAll(unsigned short const *,unsigned short const *,int) 4933 void CRichEditView::OnReplaceAll(unsigned short const *,unsigned short const *,int,int) 4934 void CEditView::OnReplaceSel(unsigned short const *,int,int,unsigned short const *) 4935 void CRichEditView::OnReplaceSel(unsigned short const *,int,int,int,unsigned short const *) 4936 long COleControl::XFontNotification::OnRequestEdit(long) 4937 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4938 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4939 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4940 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4941 void CEnumArray::OnReset() 4942 void CPropertyPage::OnReset() 4943 void COleControl::OnResetState() 4944 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4945 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4946 void COleClientItem::XAdviseSink::OnSave() 4947 int CDocument::OnSaveDocument(unsigned short const *) 4948 int COleDocument::OnSaveDocument(unsigned short const *) 4949 int COleLinkingDoc::OnSaveDocument(unsigned short const *) 4950 int COleServerDoc::OnSaveDocument(unsigned short const *) 4951 void COleServerDoc::OnSaveEmbedding(IStorage *) 4952 void COleServerItem::OnSaveEmbedding(IStorage *) 4953 void CDocObjectServer::OnSaveViewState(CArchive &) 4954 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4955 int CView::OnScroll(unsigned int,unsigned int,int) 4956 int COleClientItem::OnScrollBy(CSize) 4957 int CScrollView::OnScrollBy(CSize,int) 4958 int CView::OnScrollBy(CSize,int) 4959 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4960 void CColorPropPage::OnSelchangeColorprop() 4961 void CFontPropPage::OnSelchangeFontnames() 4962 void CFontPropPage::OnSelchangeFontprop() 4963 void CFontPropPage::OnSelchangeFontsizes() 4964 void CFontPropPage::OnSelchangeFontstyles() 4965 void CPicturePropPage::OnSelchangePictProp() 4966 void CStockPropPage::OnSelchangePropname(CComboBox &) 4967 void CColorPropPage::OnSelchangeSystemcolors() 4968 void CColorPropPage::OnSelect() 4969 void CAsyncSocket::OnSend(int) 4970 int CPropertyPage::OnSetActive() 4971 long CToolBar::OnSetBitmapSize(unsigned int,long) 4972 long CToolBar::OnSetButtonSize(unsigned int,long) 4973 void COleControl::OnSetClientSite() 4974 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4975 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4976 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4977 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4978 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4979 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4980 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4981 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4982 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4983 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4984 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4985 long CPropertySheet::OnSetDefID(unsigned int,long) 4986 int COleControl::OnSetExtent(tagSIZE *) 4987 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4988 void CFormView::OnSetFocus(CWnd *) 4989 void CFrameWnd::OnSetFocus(CWnd *) 4990 void COleControl::OnSetFocus(CWnd *) 4991 long CCheckListBox::OnSetFont(unsigned int,long) 4992 void CDialog::OnSetFont(CFont *) 4993 long CEditView::OnSetFont(unsigned int,long) 4994 void COleServerDoc::OnSetHostNames(unsigned short const *,unsigned short const *) 4995 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4996 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4997 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4998 long CFrameWnd::OnSetMessageString(unsigned int,long) 4999 long COleControl::OnSetMessageString(unsigned int,long) 5000 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 5001 long CStatusBar::OnSetMinHeight(unsigned int,long) 5002 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 5003 void CDatabase::OnSetOptions(void *) 5004 void CRecordset::OnSetOptions(void *) 5005 void COlePropertyPage::OnSetPageSite() 5006 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 5007 long CMiniFrameWnd::OnSetText(unsigned int,long) 5008 long COleControl::OnSetText(unsigned int,long) 5009 long CStatusBar::OnSetText(unsigned int,long) 5010 unsigned int CFileDialog::OnShareViolation(unsigned short const *) 5011 void CDocObjectServerItem::OnShow() 5012 void COleServerItem::OnShow() 5013 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 5014 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 5015 void COleServerDoc::OnShowDocument(int) 5016 void COleClientItem::OnShowItem() 5017 void COleControl::OnShowToolBars() 5018 void COleDocument::OnShowViews(int) 5019 void COleLinkingDoc::OnShowViews(int) 5020 void COleControl::OnShowWindow(int,unsigned int) 5021 void CWnd::OnShowWindow(int,unsigned int) 5022 long COleClientItem::XOleClientSite::OnShowWindow(int) 5023 long COleControlSite::XOleClientSite::OnShowWindow(int) 5024 void CFrameWnd::OnSize(unsigned int,int,int) 5025 void CMDIChildWnd::OnSize(unsigned int,int,int) 5026 void CMDIFrameWnd::OnSize(unsigned int,int,int) 5027 void COleControl::OnSize(unsigned int,int,int) 5028 void COleIPFrameWnd::OnSize(unsigned int,int,int) 5029 void COleResizeBar::OnSize(unsigned int,int,int) 5030 void CPreviewView::OnSize(unsigned int,int,int) 5031 void CScrollView::OnSize(unsigned int,int,int) 5032 void CSplitterWnd::OnSize(unsigned int,int,int) 5033 void CStatusBar::OnSize(unsigned int,int,int) 5034 void CWnd::OnSize(unsigned int,int,int) 5035 long CControlBar::OnSizeParent(unsigned int,long) 5036 long CDockBar::OnSizeParent(unsigned int,long) 5037 long COleResizeBar::OnSizeParent(unsigned int,long) 5038 int CEnumArray::OnSkip() 5039 long CSocketWnd::OnSocketDead(unsigned int,long) 5040 long CSocketWnd::OnSocketNotify(unsigned int,long) 5041 int CView::OnSplitCmd(unsigned int) 5042 void CAsyncMonikerFile::OnStartBinding() 5043 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 5044 void CAsyncMonikerFile::OnStopBinding(long,unsigned short const *) 5045 void CFontPropPage::OnStrikeout() 5046 void CToolBar::OnSysColorChange() 5047 void CWnd::OnSysColorChange() 5048 void CFrameWnd::OnSysCommand(unsigned int,long) 5049 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 5050 void CPropertySheet::OnSysCommand(unsigned int,long) 5051 void CSplitterWnd::OnSysCommand(unsigned int,long) 5052 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 5053 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 5054 void COleControl::OnTextChanged() 5055 void CEditView::OnTextNotFound(unsigned short const *) 5056 void CRichEditView::OnTextNotFound(unsigned short const *) 5057 void CControlBar::OnTimer(unsigned int) 5058 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 5059 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 5060 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 5061 void CFileDialog::OnTypeChange() 5062 void COleControlContainer::OnUIActivate(COleControlSite *) 5063 long COleClientItem::XOleIPSite::OnUIActivate() 5064 long COleControlSite::XOleIPSite::OnUIActivate() 5065 void COleControlContainer::OnUIDeactivate(COleControlSite *) 5066 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 5067 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 5068 void CFontPropPage::OnUnderline() 5069 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 5070 void CView::OnUpdate(CView *,long,CObject *) 5071 void CRichEditView::OnUpdateBullet(CCmdUI *) 5072 void CRichEditView::OnUpdateCharBold(CCmdUI *) 5073 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 5074 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 5075 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 5076 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 5077 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 5078 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 5079 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 5080 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 5081 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 5082 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5083 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5084 int COleServerDoc::OnUpdateDocument() 5085 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 5086 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 5087 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 5088 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 5089 void CEditView::OnUpdateEditUndo(CCmdUI *) 5090 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5091 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5092 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5093 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5094 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5095 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5096 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5097 void CFrameWnd::OnUpdateFrameTitle(int) 5098 void CMDIChildWnd::OnUpdateFrameTitle(int) 5099 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5100 int COleClientItem::OnUpdateFrameTitle() 5101 int COleFrameHook::OnUpdateFrameTitle() 5102 void COleServerItem::OnUpdateItems() 5103 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5104 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5105 void CEditView::OnUpdateNeedClip(CCmdUI *) 5106 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5107 void CEditView::OnUpdateNeedFind(CCmdUI *) 5108 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5109 void CEditView::OnUpdateNeedSel(CCmdUI *) 5110 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5111 void CEditView::OnUpdateNeedText(CCmdUI *) 5112 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5113 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5114 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5115 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5116 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5117 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5118 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5119 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5120 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5121 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5122 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5123 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5124 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5125 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 5126 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5127 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 5128 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5129 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 5130 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5131 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 5132 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5133 void CView::OnUpdateSplitCmd(CCmdUI *) 5134 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5135 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5136 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5137 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5138 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5139 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5140 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5141 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5142 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5143 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5144 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5145 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5146 void CMDIFrameWnd::OnWindowNew() 5147 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5148 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5149 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5150 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5151 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5152 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5153 void CWnd::OnWinIniChange(unsigned short const *) 5154 long CPropertyPage::OnWizardBack() 5155 int CPropertyPage::OnWizardFinish() 5156 long CPropertyPage::OnWizardNext() 5157 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5158 void CPreviewView::OnZoomIn() 5159 void CPreviewView::OnZoomOut() 5160 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5161 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5162 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5163 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5164 int CAsyncMonikerFile::Open(unsigned short const *,IBindHost *,CFileException *) 5165 int CAsyncMonikerFile::Open(unsigned short const *,IServiceProvider *,CFileException *) 5166 int CAsyncMonikerFile::Open(unsigned short const *,IUnknown *,CFileException *) 5167 int CAsyncMonikerFile::Open(unsigned short const *,CFileException *) 5168 void CDaoDatabase::Open(unsigned short const *,int,int,unsigned short const *) 5169 void CDaoQueryDef::Open(unsigned short const *) 5170 void CDaoRecordset::Open(int,unsigned short const *,int) 5171 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 5172 void CDaoRecordset::Open(CDaoTableDef *,int,int) 5173 void CDaoTableDef::Open(unsigned short const *) 5174 void CDaoWorkspace::Open(unsigned short const *) 5175 int CDatabase::Open(unsigned short const *,int,int,unsigned short const *,int) 5176 int CDataPathProperty::Open(CFileException *) 5177 int CDataPathProperty::Open(COleControl *,CFileException *) 5178 int CDataPathProperty::Open(unsigned short const *,CFileException *) 5179 int CDataPathProperty::Open(unsigned short const *,COleControl *,CFileException *) 5180 int CFile::Open(unsigned short const *,unsigned int,CFileException *) 5181 int CMirrorFile::Open(unsigned short const *,unsigned int,CFileException *) 5182 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5183 int CMonikerFile::Open(unsigned short const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5184 int CMonikerFile::Open(IMoniker *,CFileException *) 5185 int CMonikerFile::Open(unsigned short const *,CFileException *) 5186 int CRecordset::Open(unsigned int,unsigned short const *,unsigned long) 5187 int CSocketFile::Open(unsigned short const *,unsigned int,CFileException *) 5188 int CStdioFile::Open(unsigned short const *,unsigned int,CFileException *) 5189 long CDocObjectServer::XOleDocumentView::Open() 5190 CDocument * CDocManager::OpenDocumentFile(unsigned short const *) 5191 CDocument * CMultiDocTemplate::OpenDocumentFile(unsigned short const *,int) 5192 CDocument * CSingleDocTemplate::OpenDocumentFile(unsigned short const *,int) 5193 CDocument * CWinApp::OpenDocumentFile(unsigned short const *) 5194 int CDatabase::OpenEx(unsigned short const *,unsigned long) 5195 CInternetFile * CFtpConnection::OpenFile(unsigned short const *,unsigned long,unsigned long,unsigned long) 5196 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,unsigned short const *,unsigned long) 5197 long COleUILinkInfo::OpenLinkSource(unsigned long) 5198 CHttpFile * CHttpConnection::OpenRequest(int,unsigned short const *,unsigned short const *,unsigned long,unsigned short const * *,unsigned short const *,unsigned long) 5199 CHttpFile * CHttpConnection::OpenRequest(unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short const * *,unsigned short const *,unsigned long) 5200 int COleStreamFile::OpenStream(IStorage *,unsigned short const *,unsigned long,CFileException *) 5201 CStdioFile * CInternetSession::OpenURL(unsigned short const *,unsigned long,unsigned long,unsigned short const *,unsigned long) 5202 int CFileException::OsErrorToException(long) 5203 void CDumpContext::OutputString(unsigned short const *) 5204 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5205 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5206 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5207 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5208 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5209 int COleCurrency::ParseCurrency(unsigned short const *,unsigned long,unsigned long) 5210 int COleDateTime::ParseDateTime(unsigned short const *,unsigned long,unsigned long) 5211 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,unsigned short *,unsigned long *,IMoniker * *) 5212 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,unsigned short *,unsigned long *,IMoniker * *) 5213 void CCommandLineInfo::ParseLast(int) 5214 void CCommandLineInfo::ParseParam(char const *,int,int) 5215 void CCommandLineInfo::ParseParam(unsigned short const *,int,int) 5216 void CCommandLineInfo::ParseParamFlag(char const *) 5217 void CCommandLineInfo::ParseParamNotFlag(char const *) 5218 void CCommandLineInfo::ParseParamNotFlag(unsigned short const *) 5219 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5220 int CDC::PlayMetaFile(HMETAFILE__ *) 5221 int CDC::PolyBezierTo(tagPOINT const *,int) 5222 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5223 int CDC::PolylineTo(tagPOINT const *,int) 5224 void CPreviewView::PositionPage(unsigned int) 5225 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5226 int CMonikerFile::PostBindToStream(CFileException *) 5227 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5228 void CDialog::PostModal() 5229 void COleControl::PostModalDialog(HWND__ *) 5230 void CControlBar::PostNcDestroy() 5231 void CControlFrameWnd::PostNcDestroy() 5232 void CFindReplaceDialog::PostNcDestroy() 5233 void CFrameWnd::PostNcDestroy() 5234 void COleCntrFrameWnd::PostNcDestroy() 5235 void CReflectorWnd::PostNcDestroy() 5236 void CView::PostNcDestroy() 5237 void CWnd::PostNcDestroy() 5238 void CRecordset::PreBindFields() 5239 void CDocument::PreCloseFrame(CFrameWnd *) 5240 void COleDocument::PreCloseFrame(CFrameWnd *) 5241 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5242 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5243 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5244 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 5245 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5246 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 5247 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 5248 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5249 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 5250 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 5251 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5252 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5253 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 5254 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 5255 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 5256 int CView::PreCreateWindow(tagCREATESTRUCTW &) 5257 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 5258 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5259 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5260 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 5261 void CDialog::PreInitDialog() 5262 void COleChangeSourceDialog::PreInitDialog() 5263 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5264 HWND__ * CDialog::PreModal() 5265 void COleControl::PreModalDialog(HWND__ *) 5266 void CRecordset::PrepareAndExecute() 5267 HWND__ * CDataExchange::PrepareCtrl(int) 5268 HWND__ * CDataExchange::PrepareEditCtrl(int) 5269 CWnd * CDataExchange::PrepareOleCtrl(int) 5270 void CRecordset::PrepareUpdateHstmt() 5271 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 5272 void CDragListBox::PreSubclassWindow() 5273 void CWnd::PreSubclassWindow() 5274 int CWnd::PreTranslateInput(tagMSG *) 5275 int CControlBar::PreTranslateMessage(tagMSG *) 5276 int CDialog::PreTranslateMessage(tagMSG *) 5277 int CFormView::PreTranslateMessage(tagMSG *) 5278 int CFrameWnd::PreTranslateMessage(tagMSG *) 5279 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5280 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5281 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5282 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5283 int CPropertyPage::PreTranslateMessage(tagMSG *) 5284 int CPropertySheet::PreTranslateMessage(tagMSG *) 5285 int CWinThread::PreTranslateMessage(tagMSG *) 5286 int CWnd::PreTranslateMessage(tagMSG *) 5287 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5288 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5289 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5290 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5291 long CRichEditView::PrintPage(CDC *,long,long) 5292 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5293 long COleException::Process(CException const *) 5294 int CSocket::ProcessAuxQueue() 5295 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5296 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5297 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5298 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5299 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5300 void COleSafeArray::PtrOfIndex(long *,void * *) 5301 int CDC::PtVisible(int,int)const 5302 int CMetaFileDC::PtVisible(int,int)const 5303 int CWinThread::PumpMessage() 5304 int CSocket::PumpMessages(unsigned int) 5305 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 5306 void COleSafeArray::PutElement(long *,void *) 5307 int CFtpConnection::PutFile(unsigned short const *,unsigned short const *,unsigned long,unsigned long) 5308 int PX_Blob(CPropExchange *,unsigned short const *,void * &,void *) 5309 int PX_Bool(CPropExchange *,unsigned short const *,int &) 5310 int PX_Bool(CPropExchange *,unsigned short const *,int &,int) 5311 int PX_Color(CPropExchange *,unsigned short const *,unsigned long &) 5312 int PX_Color(CPropExchange *,unsigned short const *,unsigned long &,unsigned long) 5313 int PX_Currency(CPropExchange *,unsigned short const *,union tagCY &) 5314 int PX_Currency(CPropExchange *,unsigned short const *,union tagCY &,union tagCY) 5315 int PX_DataPath(CPropExchange *,unsigned short const *,CDataPathProperty &,unsigned short const *) 5316 int PX_DataPath(CPropExchange *,unsigned short const *,CDataPathProperty &,CString const &) 5317 int PX_Double(CPropExchange *,unsigned short const *,double &) 5318 int PX_Double(CPropExchange *,unsigned short const *,double &,double) 5319 int PX_Float(CPropExchange *,unsigned short const *,float &) 5320 int PX_Float(CPropExchange *,unsigned short const *,float &,float) 5321 int PX_Font(CPropExchange *,unsigned short const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5322 int PX_IUnknown(CPropExchange *,unsigned short const *,IUnknown * &,_GUID const &,IUnknown *) 5323 int PX_Long(CPropExchange *,unsigned short const *,long &) 5324 int PX_Long(CPropExchange *,unsigned short const *,long &,long) 5325 int PX_Picture(CPropExchange *,unsigned short const *,CPictureHolder &) 5326 int PX_Picture(CPropExchange *,unsigned short const *,CPictureHolder &,CPictureHolder &) 5327 int PX_Short(CPropExchange *,unsigned short const *,short &) 5328 int PX_Short(CPropExchange *,unsigned short const *,short &,short) 5329 int PX_String(CPropExchange *,unsigned short const *,CString &) 5330 int PX_String(CPropExchange *,unsigned short const *,CString &,unsigned short const *) 5331 int PX_String(CPropExchange *,unsigned short const *,CString &,CString const &) 5332 int PX_ULong(CPropExchange *,unsigned short const *,unsigned long &) 5333 int PX_ULong(CPropExchange *,unsigned short const *,unsigned long &,unsigned long) 5334 int PX_UShort(CPropExchange *,unsigned short const *,unsigned short &) 5335 int PX_UShort(CPropExchange *,unsigned short const *,unsigned short &,unsigned short) 5336 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5337 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5338 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5339 IUnknown * CCmdTarget::QueryAggregates(void const *) 5340 long COleDropSource::QueryContinueDrag(int,unsigned long) 5341 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5342 void * COleControl::QueryDefHandler(_GUID const &) 5343 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5344 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5345 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5346 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5347 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5348 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5349 int CHttpFile::QueryInfo(unsigned long,CString &,unsigned long *)const 5350 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5351 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5352 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5353 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5354 long _CIP::QueryInterface(IUnknown *) 5355 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5356 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5357 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5358 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5359 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5360 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5361 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 5362 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 5363 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 5364 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 5365 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 5366 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 5367 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 5368 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 5369 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 5370 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 5371 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 5372 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 5373 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 5374 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 5375 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 5376 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 5377 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 5378 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 5379 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 5380 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 5381 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 5382 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 5383 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 5384 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 5385 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 5386 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 5387 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 5388 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 5389 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 5390 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 5391 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 5392 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 5393 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 5394 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 5395 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 5396 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 5397 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 5398 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 5399 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 5400 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 5401 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 5402 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 5403 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 5404 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 5405 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 5406 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 5407 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 5408 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 5409 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 5410 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 5411 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 5412 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 5413 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 5414 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 5415 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 5416 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 5417 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5418 int CInternetConnection::QueryOption(unsigned long,CString &)const 5419 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5420 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5421 int CInternetFile::QueryOption(unsigned long,CString &)const 5422 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5423 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5424 int CInternetSession::QueryOption(unsigned long,CString &)const 5425 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5426 long CPropertyPage::QuerySiblings(unsigned int,long) 5427 IUnknown * CConnectionPoint::QuerySinkInterface(IUnknown *) 5428 IUnknown * COleControl::XEventConnPt::QuerySinkInterface(IUnknown *) 5429 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5430 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 5431 int COleControlSite::QuickActivate() 5432 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5433 int COleClientItem::ReactivateAndUndo() 5434 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5435 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5436 unsigned int CArchive::Read(void *,unsigned int) 5437 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5438 unsigned int CFile::Read(void *,unsigned int) 5439 int CImageList::Read(CArchive *) 5440 unsigned int CInternetFile::Read(void *,unsigned int) 5441 unsigned int CMemFile::Read(void *,unsigned int) 5442 unsigned int COleStreamFile::Read(void *,unsigned int) 5443 unsigned int CSocketFile::Read(void *,unsigned int) 5444 unsigned int CStdioFile::Read(void *,unsigned int) 5445 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5446 unsigned long CArchive::ReadCount() 5447 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5448 int CProperty::ReadFromStream(IStream *) 5449 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5450 int CPropertySet::ReadFromStream(IStream *) 5451 void COleClientItem::ReadItem(CArchive &) 5452 void COleClientItem::ReadItemCompound(CArchive &) 5453 void COleClientItem::ReadItemFlat(CArchive &) 5454 void CRecentFileList::ReadList() 5455 int CPropertySection::ReadNameDictFromStream(IStream *) 5456 CObject * CArchive::ReadObject(CRuntimeconst *) 5457 int CArchive::ReadString(CString &) 5458 unsigned short * CArchive::ReadString(unsigned short *,unsigned int) 5459 int CInternetFile::ReadString(CString &) 5460 unsigned short * CInternetFile::ReadString(unsigned short *,unsigned int) 5461 int CStdioFile::ReadString(CString &) 5462 unsigned short * CStdioFile::ReadString(unsigned short *,unsigned int) 5463 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5464 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5465 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5466 void CRecordset::RebindParams(void *) 5467 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5468 void CFrameWnd::RecalcLayout(int) 5469 void CMiniDockFrameWnd::RecalcLayout(int) 5470 void COleCntrFrameWnd::RecalcLayout(int) 5471 void COleDocIPFrameWnd::RecalcLayout(int) 5472 void COleIPFrameWnd::RecalcLayout(int) 5473 void CSplitterWnd::RecalcLayout() 5474 int CAsyncSocket::Receive(void *,int,int) 5475 int CSocket::Receive(void *,int,int) 5476 int CAsyncSocket::ReceiveFrom(void *,int,CString &,unsigned int &,int) 5477 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5478 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5479 void COleControl::RecreateControlWindow() 5480 CRect const CFrameWnd::rectDefault 5481 int CDC::RectVisible(tagRECT const *)const 5482 int CMetaFileDC::RectVisible(tagRECT const *)const 5483 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5484 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5485 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5486 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5487 int CWnd::ReflectLastMsg(HWND__ *,long *) 5488 void COleControl::Refresh() 5489 void CDaoTableDef::RefreshLink() 5490 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5491 int COleDropTarget::Register(CWnd *) 5492 int COleLinkingDoc::Register(COleObjectFactory *,unsigned short const *) 5493 int COleMessageFilter::Register() 5494 int COleObjectFactory::Register() 5495 int COleTemplateServer::Register() 5496 int COleObjectFactory::RegisterAll() 5497 int COleLinkingDoc::RegisterIfServerAttached(unsigned short const *,int) 5498 void CDocManager::RegisterShellFileTypes(int) 5499 void CWinApp::RegisterShellFileTypes(int) 5500 void CWinApp::RegisterShellFileTypesCompat() 5501 unsigned long CArchiveStream::Release() 5502 unsigned long CBlobProperty::Release() 5503 unsigned long CInnerUnknown::Release() 5504 void COleClientItem::Release(enum tagOLECLOSE) 5505 unsigned long COleConnPtContainer::Release() 5506 void COleDataObject::Release() 5507 unsigned long COleDispatchImpl::Release() 5508 unsigned long COleUILinkInfo::Release() 5509 void CString::Release() 5510 void CString::Release(CStringData *) 5511 unsigned long COleClientItem::XAdviseSink::Release() 5512 unsigned long COleControlSite::XAmbientProps::Release() 5513 unsigned long COleControlSite::XBoundObjectSite::Release() 5514 unsigned long COleObjectFactory::XClassFactory::Release() 5515 unsigned long CConnectionPoint::XConnPt::Release() 5516 unsigned long COleControl::XDataObject::Release() 5517 unsigned long COleDataSource::XDataObject::Release() 5518 unsigned long COleServerDoc::XDataObject::Release() 5519 unsigned long COleServerItem::XDataObject::Release() 5520 unsigned long COleDropSource::XDropSource::Release() 5521 unsigned long COleDropTarget::XDropTarget::Release() 5522 unsigned long CEnumArray::XEnumVOID::Release() 5523 unsigned long COleControlSite::XEventSink::Release() 5524 unsigned long COleControl::XFontNotification::Release() 5525 unsigned long COleMessageFilter::XMessageFilter::Release() 5526 unsigned long COleControlSite::XNotifyDBEvents::Release() 5527 unsigned long COleControl::XOleCache::Release() 5528 unsigned long COleClientItem::XOleClientSite::Release() 5529 unsigned long COleControlSite::XOleClientSite::Release() 5530 unsigned long CDocObjectServer::XOleCommandTarget::Release() 5531 unsigned long COleControlContainer::XOleContainer::Release() 5532 unsigned long COleControl::XOleControl::Release() 5533 unsigned long COleControlSite::XOleControlSite::Release() 5534 unsigned long CDocObjectServer::XOleDocument::Release() 5535 unsigned long CDocObjectServer::XOleDocumentView::Release() 5536 unsigned long COleControl::XOleInPlaceActiveObject::Release() 5537 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 5538 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 5539 unsigned long COleControl::XOleInPlaceObject::Release() 5540 unsigned long COleServerDoc::XOleInPlaceObject::Release() 5541 unsigned long COleControlContainer::XOleIPFrame::Release() 5542 unsigned long COleClientItem::XOleIPSite::Release() 5543 unsigned long COleControlSite::XOleIPSite::Release() 5544 unsigned long COleLinkingDoc::XOleItemContainer::Release() 5545 unsigned long CDocObjectServer::XOleObject::Release() 5546 unsigned long COleControl::XOleObject::Release() 5547 unsigned long COleServerDoc::XOleObject::Release() 5548 unsigned long COleServerItem::XOleObject::Release() 5549 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 5550 unsigned long COleControl::XPerPropertyBrowsing::Release() 5551 unsigned long COleLinkingDoc::XPersistFile::Release() 5552 unsigned long COleControl::XPersistMemory::Release() 5553 unsigned long COleControl::XPersistPropertyBag::Release() 5554 unsigned long COleControl::XPersistStorage::Release() 5555 unsigned long COleServerDoc::XPersistStorage::Release() 5556 unsigned long COleControl::XPersistStreamInit::Release() 5557 unsigned long COleControl::XPointerInactive::Release() 5558 unsigned long CDocObjectServer::XPrint::Release() 5559 unsigned long COleControlSite::XPropertyNotifySink::Release() 5560 unsigned long COlePropertyPage::XPropertyPage::Release() 5561 unsigned long COlePropertyPage::XPropNotifySink::Release() 5562 unsigned long COleControl::XProvideClassInfo::Release() 5563 unsigned long COleControl::XQuickActivate::Release() 5564 unsigned long CRichEditView::XRichEditOleCallback::Release() 5565 unsigned long COleControl::XSpecifyPropertyPages::Release() 5566 unsigned long COleControl::XViewObject::Release() 5567 void CDC::ReleaseAttribDC() 5568 void CString::ReleaseBuffer(int) 5569 int COleControl::ReleaseCapture() 5570 int COleControl::ReleaseDC(CDC *) 5571 void COleDispatchDriver::ReleaseDispatch() 5572 void CDocObjectServer::ReleaseDocSite() 5573 void CDocument::ReleaseFile(CFile *,int) 5574 void CFontHolder::ReleaseFont() 5575 void CDC::ReleaseOutputDC() 5576 void CMetaFileDC::ReleaseOutputDC() 5577 void CPreviewDC::ReleaseOutputDC() 5578 int COleClientItem::Reload() 5579 void CFile::Remove(unsigned short const *) 5580 int CFtpConnection::Remove(unsigned short const *) 5581 void CPropertySection::Remove(unsigned long) 5582 void CPropertySet::Remove(_GUID) 5583 void CPropertySet::Remove(_GUID,unsigned long) 5584 void CRecentFileList::Remove(int) 5585 int CSimpleList::Remove(void *) 5586 void CMapPtrToPtr::RemoveAll() 5587 void CMapPtrToWord::RemoveAll() 5588 void CMapStringToOb::RemoveAll() 5589 void CMapStringToPtr::RemoveAll() 5590 void CMapStringToString::RemoveAll() 5591 void CMapWordToOb::RemoveAll() 5592 void CMapWordToPtr::RemoveAll() 5593 void CObList::RemoveAll() 5594 void CPropertySection::RemoveAll() 5595 void CPropertySet::RemoveAll() 5596 void CPtrList::RemoveAll() 5597 void CStringList::RemoveAll() 5598 void CByteArray::RemoveAt(int,int) 5599 void CDWordArray::RemoveAt(int,int) 5600 void CObArray::RemoveAt(int,int) 5601 void CObList::RemoveAt(__POSITION *) 5602 void CPtrArray::RemoveAt(int,int) 5603 void CPtrList::RemoveAt(__POSITION *) 5604 void CStringArray::RemoveAt(int,int) 5605 void CStringList::RemoveAt(__POSITION *) 5606 void CUIntArray::RemoveAt(int,int) 5607 void CWordArray::RemoveAt(int,int) 5608 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5609 void CFrameWnd::RemoveControlBar(CControlBar *) 5610 int CFtpConnection::RemoveDirectoryW(unsigned short const *) 5611 void CDocTemplate::RemoveDocument(CDocument *) 5612 void CMultiDocTemplate::RemoveDocument(CDocument *) 5613 void CSingleDocTemplate::RemoveDocument(CDocument *) 5614 void COleControl::RemoveFrameLevelUI() 5615 void CFrameWnd::RemoveFrameWnd() 5616 CObject * CObList::RemoveHead() 5617 void * CPtrList::RemoveHead() 5618 CString CStringList::RemoveHead() 5619 void CListCtrl::RemoveImageList(int) 5620 void CListView::RemoveImageList(int) 5621 void CTreeCtrl::RemoveImageList(int) 5622 void CTreeView::RemoveImageList(int) 5623 void COleDocument::RemoveItem(CDocItem *) 5624 int CMapPtrToPtr::RemoveKey(void *) 5625 int CMapPtrToWord::RemoveKey(void *) 5626 int CMapStringToOb::RemoveKey(unsigned short const *) 5627 int CMapStringToPtr::RemoveKey(unsigned short const *) 5628 int CMapStringToString::RemoveKey(unsigned short const *) 5629 int CMapWordToOb::RemoveKey(unsigned short) 5630 int CMapWordToPtr::RemoveKey(unsigned short) 5631 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5632 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5633 void CPropertySheet::RemovePage(int) 5634 void CPropertySheet::RemovePage(CPropertyPage *) 5635 void CDockBar::RemovePlaceHolder(CControlBar *) 5636 void CDataBoundProperty::RemoveSource() 5637 CObject * CObList::RemoveTail() 5638 void * CPtrList::RemoveTail() 5639 CString CStringList::RemoveTail() 5640 void CDocument::RemoveView(CView *) 5641 void CFile::Rename(unsigned short const *,unsigned short const *) 5642 int CFtpConnection::Rename(unsigned short const *,unsigned short const *) 5643 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5644 void CDaoWorkspace::RepairDatabase(unsigned short const *) 5645 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5646 void CDatabase::ReplaceBrackets(unsigned short *) 5647 int CException::ReportError(unsigned int,unsigned int) 5648 int COleClientItem::ReportError(long)const 5649 void CDocument::ReportSaveLoadException(unsigned short const *,CException *,int,unsigned int) 5650 void COleLinkingDoc::ReportSaveLoadException(unsigned short const *,CException *,int,unsigned int) 5651 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5652 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5653 void CDaoRecordset::Requery() 5654 int CRecordset::Requery() 5655 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5656 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5657 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,unsigned short * *) 5658 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5659 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5660 void COleServerDoc::RequestPositionChange(tagRECT const *) 5661 long CEnumArray::XEnumVOID::Reset() 5662 void CRecordset::ResetCursor() 5663 void CCachedDataPathProperty::ResetData() 5664 void CDataPathProperty::ResetData() 5665 void COleControl::ResetStockProps() 5666 void CControlBar::ResetTimer(unsigned int,unsigned int) 5667 void COleControl::ResetVersion(unsigned long) 5668 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5669 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5670 void COleControl::ResizeFrameWindow(int,int) 5671 void COleSafeArray::ResizeOneDim(unsigned long) 5672 void COleControl::ResizeOpenControl(int,int) 5673 void CScrollView::ResizeParentToFit(int) 5674 int CDC::RestoreDC(int) 5675 int CPreviewDC::RestoreDC(int) 5676 void CToolBarCtrl::RestoreState(HKEY__ *,unsigned short const *,unsigned short const *) 5677 void CCmdTarget::RestoreWaitCursor() 5678 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5679 int CString::ReverseFind(unsigned short)const 5680 long CArchiveStream::Revert() 5681 void COleDropTarget::Revoke() 5682 void COleLinkingDoc::Revoke() 5683 void COleMessageFilter::Revoke() 5684 void COleObjectFactory::Revoke() 5685 void COleObjectFactory::RevokeAll() 5686 void RFX_Binary(CFieldExchange *,unsigned short const *,CByteArray &,int) 5687 void RFX_Binary_Bulk(CFieldExchange *,unsigned short const *,unsigned char * *,long * *,int) 5688 void RFX_Bool(CFieldExchange *,unsigned short const *,int &) 5689 void RFX_Bool_Bulk(CFieldExchange *,unsigned short const *,int * *,long * *) 5690 void RFX_Byte(CFieldExchange *,unsigned short const *,unsigned char &) 5691 void RFX_Byte_Bulk(CFieldExchange *,unsigned short const *,unsigned char * *,long * *) 5692 void RFX_Date(CFieldExchange *,unsigned short const *,tagTIMESTAMP_&) 5693 void RFX_Date(CFieldExchange *,unsigned short const *,CTime &) 5694 void RFX_Date_Bulk(CFieldExchange *,unsigned short const *,tagTIMESTAMP_* *,long * *) 5695 void RFX_Double(CFieldExchange *,unsigned short const *,double &) 5696 void RFX_Double_Bulk(CFieldExchange *,unsigned short const *,double * *,long * *) 5697 void RFX_Int(CFieldExchange *,unsigned short const *,int &) 5698 void RFX_Int_Bulk(CFieldExchange *,unsigned short const *,int * *,long * *) 5699 void RFX_Long(CFieldExchange *,unsigned short const *,long &) 5700 void RFX_Long_Bulk(CFieldExchange *,unsigned short const *,long * *,long * *) 5701 void RFX_LongBinary(CFieldExchange *,unsigned short const *,CLongBinary &) 5702 void RFX_Single(CFieldExchange *,unsigned short const *,float &) 5703 void RFX_Single_Bulk(CFieldExchange *,unsigned short const *,float * *,long * *) 5704 void RFX_Text(CFieldExchange *,unsigned short const *,CString &,int,int,short) 5705 void RFX_Text_Bulk(CFieldExchange *,unsigned short const *,char * *,long * *,int) 5706 CString CString::Right(int)const 5707 void CDaoWorkspace::Rollback() 5708 int CDatabase::Rollback() 5709 void COleClientItem::Run() 5710 int CWinApp::Run() 5711 int CWinThread::Run() 5712 int CWinApp::RunAutomated() 5713 int CWinApp::RunEmbedded() 5714 int CWnd::RunModalLoop(unsigned long) 5715 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5716 int CEditView::SameAsSelected(unsigned short const *,int) 5717 int CRichEditView::SameAsSelected(unsigned short const *,int,int) 5718 long CBlobProperty::Save(IStream *,int) 5719 long COleLinkingDoc::XPersistFile::Save(unsigned short const *,int) 5720 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5721 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5722 long COleControl::XPersistStorage::Save(IStorage *,int) 5723 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5724 long COleControl::XPersistStreamInit::Save(IStream *,int) 5725 int CDocManager::SaveAllModified() 5726 int CDocTemplate::SaveAllModified() 5727 int CWinApp::SaveAllModified() 5728 void CFrameWnd::SaveBarState(unsigned short const *)const 5729 long COleLinkingDoc::XPersistFile::SaveCompleted(unsigned short const *) 5730 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5731 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5732 int CDC::SaveDC() 5733 int CPreviewDC::SaveDC() 5734 void COleServerDoc::SaveEmbedding() 5735 int CFormView::SaveFocusControl() 5736 int CDocument::SaveModified() 5737 int COleDocument::SaveModified() 5738 int COleServerDoc::SaveModified() 5739 int COleServerDoc::SaveModifiedPrompt() 5740 long COleClientItem::XOleClientSite::SaveObject() 5741 long COleControlSite::XOleClientSite::SaveObject() 5742 int CControlBarInfo::SaveState(unsigned short const *,int) 5743 void CDockState::SaveState(unsigned short const *) 5744 long COleControl::SaveState(IStream *) 5745 void CToolBarCtrl::SaveState(HKEY__ *,unsigned short const *,unsigned short const *) 5746 void CWinApp::SaveStdProfileSettings() 5747 void COleDocument::SaveToStorage(CObject *) 5748 void COleLinkingDoc::SaveToStorage(CObject *) 5749 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5750 void CDockState::ScalePoint(CPoint &) 5751 void CDockState::ScaleRectPos(CRect &) 5752 CSize CDC::ScaleViewportExt(int,int,int,int) 5753 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5754 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5755 CSize CDC::ScaleWindowExt(int,int,int,int) 5756 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5757 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5758 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5759 void COleControlContainer::ScrollChildren(int,int) 5760 int COleServerDoc::ScrollContainerBy(CSize) 5761 void CScrollView::ScrollToDevicePosition(tagPOINT) 5762 void CScrollView::ScrollToPosition(tagPOINT) 5763 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5764 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5765 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5766 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5767 int CDaoRecordset::Seek(unsigned short const *,COleVariant *,COleVariant *,COleVariant *) 5768 int CDaoRecordset::Seek(unsigned short const *,COleVariant *,unsigned short) 5769 long CFile::Seek(long,unsigned int) 5770 long CInternetFile::Seek(long,unsigned int) 5771 long CMemFile::Seek(long,unsigned int) 5772 long COleStreamFile::Seek(long,unsigned int) 5773 long CSocketFile::Seek(long,unsigned int) 5774 long CStdioFile::Seek(long,unsigned int) 5775 CFont * CFontHolder::Select(CDC *,long,long) 5776 int CDC::SelectClipPath(int) 5777 int CDC::SelectClipRgn(CRgn *) 5778 int CDC::SelectClipRgn(CRgn *,int) 5779 void CFontPropPage::SelectFontFromList(CString,tagMERGEOBJECT *) 5780 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5781 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5782 int CDC::SelectObject(CRgn *) 5783 CBrush * CDC::SelectObject(CBrush *) 5784 CPen * CDC::SelectObject(CPen *) 5785 CFont * CDC::SelectObject(CFont *) 5786 CFont * CPreviewDC::SelectObject(CFont *) 5787 CPalette * CDC::SelectPalette(CPalette *,int) 5788 void CWinApp::SelectPrinter(void *,void *,int) 5789 CFont * COleControl::SelectStockFont(CDC *) 5790 CGdiObject * CDC::SelectStockObject(int) 5791 CGdiObject * CPreviewDC::SelectStockObject(int) 5792 int CAsyncSocket::Send(void const *,int,int) 5793 int CSocket::Send(void const *,int,int) 5794 void COleControl::SendAdvise(unsigned int) 5795 int CWnd::SendChildNotifyLastMsg(long *) 5796 int CSocket::SendChunk(void const *,int,int) 5797 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5798 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5799 void CDocument::SendInitialUpdate() 5800 void CRecordset::SendLongBinaryData(void *) 5801 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5802 void COleControlSite::SendMnemonic(tagMSG *) 5803 int CHttpFile::SendRequest(CString &,void *,unsigned long) 5804 int CHttpFile::SendRequest(unsigned short const *,unsigned long,void *,unsigned long) 5805 int CAsyncSocket::SendTo(void const *,int,unsigned int,unsigned short const *,int) 5806 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5807 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5808 void CByteArray::Serialize(CArchive &) 5809 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5810 void CDocItem::Serialize(CArchive &) 5811 void CDockState::Serialize(CArchive &) 5812 void CDWordArray::Serialize(CArchive &) 5813 void CEditView::Serialize(CArchive &) 5814 void CMapStringToOb::Serialize(CArchive &) 5815 void CMapStringToString::Serialize(CArchive &) 5816 void CMapWordToOb::Serialize(CArchive &) 5817 void CObArray::Serialize(CArchive &) 5818 void CObject::Serialize(CArchive &) 5819 void CObList::Serialize(CArchive &) 5820 void COleClientItem::Serialize(CArchive &) 5821 void COleControl::Serialize(CArchive &) 5822 void COleDocument::Serialize(CArchive &) 5823 void CRichEditDoc::Serialize(CArchive &) 5824 void CRichEditView::Serialize(CArchive &) 5825 void CStringArray::Serialize(CArchive &) 5826 void CStringList::Serialize(CArchive &) 5827 void CWordArray::Serialize(CArchive &) 5828 void CArchive::SerializeClass(CRuntimeconst *) 5829 void SerializeElements(CArchive &,COleVariant *,int) 5830 void SerializeElements(CArchive &,CString *,int) 5831 void COleControl::SerializeExtent(CArchive &) 5832 void CEditView::SerializeRaw(CArchive &) 5833 void COleControl::SerializeStockProps(CArchive &) 5834 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5835 int CProperty::Set(unsigned long,void * const,unsigned long) 5836 int CProperty::Set(void * const) 5837 int CProperty::Set(void * const,unsigned long) 5838 int CPropertySection::Set(unsigned long,void *) 5839 int CPropertySection::Set(unsigned long,void *,unsigned long) 5840 int CPropertySet::Set(_GUID,unsigned long,void *) 5841 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5842 void CDaoRecordset::SetAbsolutePosition(long) 5843 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,unsigned short const *) 5844 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,unsigned short const *) 5845 int CPropertySheet::SetActivePage(int) 5846 int CPropertySheet::SetActivePage(CPropertyPage *) 5847 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5848 void CFrameWnd::SetActiveView(CView *,int) 5849 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5850 void COleControl::SetAppearance(short) 5851 int CDC::SetArcDirection(int) 5852 void CString::SetAt(int,unsigned short) 5853 void CByteArray::SetAtGrow(int,unsigned char) 5854 void CDWordArray::SetAtGrow(int,unsigned long) 5855 void CObArray::SetAtGrow(int,CObject *) 5856 void CPtrArray::SetAtGrow(int,void *) 5857 void CStringArray::SetAtGrow(int,unsigned short const *) 5858 void CUIntArray::SetAtGrow(int,unsigned int) 5859 void CWordArray::SetAtGrow(int,unsigned short) 5860 void CDC::SetAttribDC(HDC__ *) 5861 void CMetaFileDC::SetAttribDC(HDC__ *) 5862 void CPreviewDC::SetAttribDC(HDC__ *) 5863 void CDaoTableDef::SetAttributes(long) 5864 void COleControl::SetBackColor(unsigned long) 5865 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5866 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5867 void CControlBar::SetBarStyle(unsigned long) 5868 int CToolBar::SetBitmap(HBITMAP__ *) 5869 unsigned long CDC::SetBkColor(unsigned long) 5870 unsigned long CPreviewDC::SetBkColor(unsigned long) 5871 int CDC::SetBkMode(int) 5872 void CDaoRecordset::SetBookmark(COleVariant) 5873 void CRecordset::SetBookmark(CDBVariant const &) 5874 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5875 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5876 void COleControl::SetBorderStyle(short) 5877 void CColorPropPage::SetButton(CColorButton *) 5878 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5879 int CToolBar::SetButtons(unsigned int const *,int) 5880 void CToolBar::SetButtonStyle(int,unsigned int) 5881 int CToolBar::SetButtonText(int,unsigned short const *) 5882 void CDaoRecordset::SetCacheSize(long) 5883 void CDaoRecordset::SetCacheStart(COleVariant) 5884 CWnd * COleControl::SetCapture() 5885 void CRichEditView::SetCharFormat(_charformat) 5886 void CCheckListBox::SetCheck(int,int) 5887 void CCmdUI::SetCheck(int) 5888 void COleCmdUI::SetCheck(int) 5889 void CStatusCmdUI::SetCheck(int) 5890 void CTestCmdUI::SetCheck(int) 5891 void CToolCmdUI::SetCheck(int) 5892 void CCheckListBox::SetCheckStyle(unsigned int) 5893 void CPropertySet::SetClassID(_GUID) 5894 void CDataBoundProperty::SetClientSite(COleControlSite *) 5895 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5896 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5897 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5898 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5899 void COleDataSource::SetClipboard() 5900 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5901 int CColorPropPage::SetColorProp(CDataExchange *,unsigned long,unsigned short const *) 5902 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5903 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5904 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5905 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5906 void CSplitterWnd::SetColumnInfo(int,int,int) 5907 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5908 void CDaoQueryDef::SetConnect(unsigned short const *) 5909 void CDaoTableDef::SetConnect(unsigned short const *) 5910 void CDocTemplate::SetContainerInfo(unsigned int) 5911 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5912 void CReflectorWnd::SetControl(COleControl *) 5913 int COleControl::SetControlSize(int,int) 5914 int COlePropertyPage::SetControlStatus(unsigned int,int) 5915 void CFileDialog::SetControlText(int,char const *) 5916 void COleCurrency::SetCurrency(long,long) 5917 void CColorDialog::SetCurrentColor(unsigned long) 5918 int CFtpConnection::SetCurrentDirectoryW(unsigned short const *) 5919 void CWinApp::SetCurrentHandles() 5920 void CDaoRecordset::SetCurrentIndex(unsigned short const *) 5921 void CPreviewView::SetCurrentPage(unsigned int,int) 5922 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5923 void CDaoRecordset::SetCursorAttributes() 5924 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5925 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5926 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5927 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5928 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5929 int COleDateTime::SetDateTime(int,int,int,int,int,int) 5930 void COleDateTimeSpan::SetDateTimeSpan(long,int,int,int) 5931 void COccManager::SetDefaultButton(CWnd *,int) 5932 void COleControlSite::SetDefaultButton(int) 5933 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 5934 void CDaoWorkspace::SetDefaultPassword(unsigned short const *) 5935 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5936 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5937 void CDaoWorkspace::SetDefaultUser(unsigned short const *) 5938 void CFileDialog::SetDefExt(char const *) 5939 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 5940 void COlePropertyPage::SetDialogResource(void *) 5941 void CDaoRecordset::SetDirtyFields() 5942 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 5943 void CRecordset::SetDirtyFieldStatus(unsigned long) 5944 int COleControlSite::SetDlgCtrlID(int) 5945 int CWnd::SetDlgCtrlID(int) 5946 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5947 void CWnd::SetDlgItemInt(int,unsigned int,int) 5948 void COleControlContainer::SetDlgItemTextW(int,unsigned short const *) 5949 void CWnd::SetDlgItemTextW(int,unsigned short const *) 5950 void CFrameWnd::SetDockState(CDockState const &) 5951 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5952 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5953 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5954 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5955 void COleControl::SetEnabled(int) 5956 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5957 int COleControlSite::SetExtent() 5958 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5959 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5960 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5961 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5962 void CColorButton::SetFaceColor(unsigned long) 5963 void CDaoRecordset::SetFieldDirty(void *,int) 5964 void CRecordset::SetFieldDirty(void *,int) 5965 void CDaoRecordset::SetFieldNull(void *,int) 5966 void CRecordset::SetFieldNull(void *,int) 5967 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5968 void CDaoRecordset::SetFieldValue(int,unsigned short const *) 5969 void CDaoRecordset::SetFieldValue(unsigned short const *,unsigned short const *) 5970 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 5971 void CDaoRecordset::SetFieldValue(unsigned short const *,COleVariant const &) 5972 void CDaoRecordset::SetFieldValueNull(int) 5973 void CDaoRecordset::SetFieldValueNull(unsigned short const *) 5974 void CFile::SetFilePath(unsigned short const *) 5975 CWnd * COleControl::SetFocus() 5976 CWnd * COleControlSite::SetFocus() 5977 CWnd * CWnd::SetFocus() 5978 int CDialogTemplate::SetFont(unsigned short const *,unsigned short) 5979 void CFontHolder::SetFont(IFont *) 5980 void COleControl::SetFont(IFontDisp *) 5981 int CFontPropPage::SetFontProps(CDataExchange *,tagFONTOBJECT,unsigned short const *) 5982 void COleControl::SetForeColor(unsigned long) 5983 void CPropertySection::SetFormatID(_GUID) 5984 void CPropertySet::SetFormatVersion(unsigned short) 5985 void CSharedFile::SetHandle(void *,int) 5986 void CToolBar::SetHeight(int) 5987 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5988 void COlePropertyPage::SetHelpInfo(unsigned short const *,unsigned short const *,unsigned long) 5989 void COleClientItem::SetHostNames(unsigned short const *,unsigned short const *) 5990 long CDocObjectServer::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5991 long COleControl::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5992 long COleServerDoc::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5993 long COleServerItem::XOleObject::SetHostNames(unsigned short const *,unsigned short const *) 5994 int COleClientItem::SetIconicMetafile(void *) 5995 void CProperty::SetID(unsigned long) 5996 int CStatusBar::SetIndicators(unsigned int const *,int) 5997 void CDaoWorkspace::SetIniPath(unsigned short const *) 5998 void COleControl::SetInitialDataFormats() 5999 long CDocObjectServer::XPrint::SetInitialPageNum(long) 6000 void COleControl::SetInitialSize(int,int) 6001 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 6002 void CDaoWorkspace::SetIsolateODBCTrans(int) 6003 int CListCtrl::SetItem(int,int,unsigned int,unsigned short const *,int,unsigned int,unsigned int,long) 6004 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,unsigned short const *,int,int,unsigned int,unsigned int,long) 6005 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 6006 void CFile::SetLength(unsigned long) 6007 void CInternetFile::SetLength(unsigned long) 6008 void CMemFile::SetLength(unsigned long) 6009 void COleStreamFile::SetLength(unsigned long) 6010 void CSocketFile::SetLength(unsigned long) 6011 long COleUILinkInfo::SetLinkSource(unsigned long,unsigned short *,unsigned long,unsigned long *,int) 6012 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 6013 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 6014 void CDaoRecordset::SetLockingMode(int) 6015 void CRecordset::SetLockingMode(unsigned int) 6016 void CDaoWorkspace::SetLoginTimeout(short) 6017 int CDC::SetMapMode(int) 6018 int CPreviewDC::SetMapMode(int) 6019 unsigned long CDC::SetMapperFlags(unsigned long) 6020 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6021 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6022 void CFrameWnd::SetMessageText(unsigned int) 6023 void CFrameWnd::SetMessageText(unsigned short const *) 6024 void CPropertyPage::SetModified(int) 6025 void CDocument::SetModifiedFlag(int) 6026 void COleControl::SetModifiedFlag(int) 6027 void COlePropertyPage::SetModifiedFlag(int) 6028 void CRichEditDoc::SetModifiedFlag(int) 6029 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 6030 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 6031 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 6032 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 6033 void CDaoQueryDef::SetName(unsigned short const *) 6034 void CDaoTableDef::SetName(unsigned short const *) 6035 int CPropertySection::SetName(unsigned long,unsigned short const *) 6036 void COleControl::SetNotPermitted() 6037 void CCmdTarget::SetNotSupported() 6038 void COleControl::SetNotSupported() 6039 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6040 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6041 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6042 void CRecordset::SetNullFieldStatus(unsigned long) 6043 void CRecordset::SetNullParamStatus(unsigned long) 6044 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6045 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6046 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6047 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 6048 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6049 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6050 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6051 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6052 void CDaoQueryDef::SetODBCTimeout(short) 6053 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 6054 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 6055 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 6056 void CPropertySet::SetOSVersion(unsigned long) 6057 void CDC::SetOutputDC(HDC__ *) 6058 void CMetaFileDC::SetOutputDC(HDC__ *) 6059 void CPreviewDC::SetOutputDC(HDC__ *) 6060 void CToolBar::SetOwner(CWnd *) 6061 void COlePropertyPage::SetPageName(unsigned short const *) 6062 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 6063 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 6064 void CStatusBar::SetPaneStyle(int,unsigned int) 6065 int CStatusBar::SetPaneText(int,unsigned short const *,int) 6066 int CRichEditCtrl::SetParaFormat(_paraformat &) 6067 int CRichEditView::SetParaFormat(_paraformat &) 6068 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6069 void CDaoQueryDef::SetParamValue(unsigned short const *,COleVariant const &) 6070 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6071 void CDaoRecordset::SetParamValue(unsigned short const *,COleVariant const &) 6072 void CDaoQueryDef::SetParamValueNull(int) 6073 void CDaoQueryDef::SetParamValueNull(unsigned short const *) 6074 void CDaoRecordset::SetParamValueNull(int) 6075 void CDaoRecordset::SetParamValueNull(unsigned short const *) 6076 void CDocument::SetPathName(unsigned short const *,int) 6077 void COleDocument::SetPathName(unsigned short const *,int) 6078 void CRichEditDoc::SetPathName(unsigned short const *,int) 6079 void CDaoRecordset::SetPercentPosition(float) 6080 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 6081 int CPicturePropPage::SetPictureProp(CDataExchange *,IPictureDisp *,unsigned short const *) 6082 int CDC::SetPolyFillMode(int) 6083 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 6084 int COleClientItem::SetPrintDevice(tagPDW const *) 6085 void CEditView::SetPrinterFont(CFont *) 6086 int CPreviewView::SetPrintView(CView *) 6087 int COlePropertyPage::SetPropCheck(unsigned short const *,int) 6088 void COleControlSite::SetProperty(long,unsigned short,...) 6089 void COleDispatchDriver::SetProperty(long,unsigned short,...) 6090 void CWnd::SetProperty(long,unsigned short,...) 6091 void COleControlSite::SetPropertyV(long,unsigned short,char *) 6092 int COlePropertyPage::SetPropIndex(unsigned short const *,int) 6093 int COlePropertyPage::SetPropRadio(unsigned short const *,int) 6094 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 6095 int COlePropertyPage::SetPropText(unsigned short const *,unsigned char &) 6096 int COlePropertyPage::SetPropText(unsigned short const *,short &) 6097 int COlePropertyPage::SetPropText(unsigned short const *,int &) 6098 int COlePropertyPage::SetPropText(unsigned short const *,unsigned int &) 6099 int COlePropertyPage::SetPropText(unsigned short const *,long &) 6100 int COlePropertyPage::SetPropText(unsigned short const *,unsigned long &) 6101 int COlePropertyPage::SetPropText(unsigned short const *,float &) 6102 int COlePropertyPage::SetPropText(unsigned short const *,double &) 6103 int COlePropertyPage::SetPropText(unsigned short const *,CString &) 6104 void CDaoDatabase::SetQueryTimeout(short) 6105 void CCmdUI::SetRadio(int) 6106 void CTestCmdUI::SetRadio(int) 6107 void CSliderCtrl::SetRange(int,int,int) 6108 int CInternetFile::SetReadBufferSize(unsigned int) 6109 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 6110 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 6111 int COleControl::SetRectInContainer(tagRECT const *) 6112 void CWinApp::SetRegistryKey(unsigned int) 6113 void CWinApp::SetRegistryKey(unsigned short const *) 6114 void CDaoQueryDef::SetReturnsRecords(int) 6115 int CDC::SetROP2(int) 6116 void CSplitterWnd::SetRowInfo(int,int,int) 6117 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 6118 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 6119 void CRecordset::SetRowsetSize(unsigned long) 6120 void CPreviewView::SetScaledSize(unsigned int) 6121 void CPreviewDC::SetScaleRatio(int,int) 6122 void CScrollView::SetScaleToFitSize(tagSIZE) 6123 void CDockState::SetScreenSize(CSize &) 6124 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 6125 int CWnd::SetScrollPos(int,int,int) 6126 void CWnd::SetScrollRange(int,int,int,int) 6127 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 6128 void CSplitterWnd::SetScrollStyle(unsigned long) 6129 int CPropertySection::SetSectionName(unsigned short const *) 6130 void CRichEditCtrl::SetSel(long,long) 6131 void CSliderCtrl::SetSelection(int,int) 6132 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 6133 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 6134 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 6135 void CByteArray::SetSize(int,int) 6136 void CDWordArray::SetSize(int,int) 6137 void CObArray::SetSize(int,int) 6138 void CPtrArray::SetSize(int,int) 6139 void CStringArray::SetSize(int,int) 6140 void CUIntArray::SetSize(int,int) 6141 void CWordArray::SetSize(int,int) 6142 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6143 void CDaoTableDef::SetSourceTableName(unsigned short const *) 6144 void CSplitterWnd::SetSplitCursor(int) 6145 void CDaoQueryDef::SetSQL(unsigned short const *) 6146 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6147 void CColorButton::SetState(int) 6148 void CRecordset::SetState(int,unsigned short const *,unsigned long) 6149 void CFile::SetStatus(unsigned short const *,CFileStatus const &) 6150 int CControlBar::SetStatusText(int) 6151 long COleFrameHook::XOleInPlaceFrame::SetStatusText(unsigned short const *) 6152 long COleControlContainer::XOleIPFrame::SetStatusText(unsigned short const *) 6153 int CDC::SetStretchBltMode(int) 6154 void COleVariant::SetString(unsigned short const *,unsigned short) 6155 unsigned short * CString::SetSysString(unsigned short * *)const 6156 int CDialogTemplate::SetSystemFont(unsigned short) 6157 void CEditView::SetTabStops(int) 6158 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6159 void CFileDialog::SetTemplate(unsigned short const *,unsigned short const *) 6160 void CCmdUI::SetText(unsigned short const *) 6161 void COleCmdUI::SetText(unsigned short const *) 6162 void COleControl::SetText(unsigned short const *) 6163 void CStatusCmdUI::SetText(unsigned short const *) 6164 void CTestCmdUI::SetText(unsigned short const *) 6165 void CToolCmdUI::SetText(unsigned short const *) 6166 unsigned int CDC::SetTextAlign(unsigned int) 6167 int CDC::SetTextCharacterExtra(int) 6168 unsigned long CDC::SetTextColor(unsigned long) 6169 unsigned long CPreviewDC::SetTextColor(unsigned long) 6170 int CDC::SetTextJustification(int,int) 6171 void CDocument::SetTitle(unsigned short const *) 6172 void CPropertySheet::SetTitle(unsigned short const *,unsigned int) 6173 void CRichEditDoc::SetTitle(unsigned short const *) 6174 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6175 void CPreviewDC::SetTopLeftOffset(CSize) 6176 void CProperty::SetType(unsigned long) 6177 void CRecordset::SetUpdateMethod() 6178 void CDaoTableDef::SetValidationRule(unsigned short const *) 6179 void CDaoTableDef::SetValidationText(unsigned short const *) 6180 void CThreadSlotData::SetValue(int,void *) 6181 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6182 CSize CDC::SetViewportExt(int,int) 6183 CSize CMetaFileDC::SetViewportExt(int,int) 6184 CSize CPreviewDC::SetViewportExt(int,int) 6185 CPoint CDC::SetViewportOrg(int,int) 6186 CPoint CMetaFileDC::SetViewportOrg(int,int) 6187 CPoint CPreviewDC::SetViewportOrg(int,int) 6188 CSize CDC::SetWindowExt(int,int) 6189 CSize CPreviewDC::SetWindowExt(int,int) 6190 CPoint CDC::SetWindowOrg(int,int) 6191 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6192 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6193 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6194 void COleControlSite::SetWindowTextW(unsigned short const *) 6195 void CWnd::SetWindowTextW(unsigned short const *) 6196 int CRichEditCtrl::SetWordCharFormat(_charformat &) 6197 int CInternetFile::SetWriteBufferSize(unsigned int) 6198 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6199 long CDocObjectServer::XOleDocumentView::Show(int) 6200 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6201 void CDockBar::ShowAll(int) 6202 long CRichEditCntrItem::ShowContainerUI(int) 6203 long CRichEditView::ShowContainerUI(int) 6204 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6205 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6206 long COleClientItem::XOleClientSite::ShowObject() 6207 long COleControlSite::XOleClientSite::ShowObject() 6208 void CFrameWnd::ShowOwnedWindows(int) 6209 long COleControlSite::XOleControlSite::ShowPropertyFrame() 6210 int COleControlSite::ShowWindow(int) 6211 int CWnd::ShowWindow(int) 6212 tagSIZE const CScrollView::sizeDefault 6213 void CBitmapButton::SizeToContent() 6214 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6215 long CEnumArray::XEnumVOID::Skip(unsigned long) 6216 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6217 int CAsyncSocket::Socket(int,long,int,int) 6218 CString CString::SpanExcluding(unsigned short const *)const 6219 CString CString::SpanIncluding(unsigned short const *)const 6220 int CSplitterWnd::SplitColumn(int) 6221 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6222 int CSplitterWnd::SplitRow(int) 6223 int CDC::StartDocW(unsigned short const *) 6224 void CDockContext::StartDrag(CPoint) 6225 void CDockContext::StartResize(int,CPoint) 6226 void CSplitterWnd::StartTracking(int) 6227 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6228 void CSplitterWnd::StopTracking(int) 6229 void CRuntimeClass::Store(CArchive &)const 6230 void CDaoRecordset::StoreFields() 6231 void CRecordset::StoreFields() 6232 void CRichEditView::Stream(CArchive &,int) 6233 void CDockContext::Stretch(CPoint) 6234 void CDaoRecordset::StripBrackets(unsigned short const *,unsigned short *) 6235 int CWnd::SubclassCtl3d(int) 6236 int CWnd::SubclassDlg3d(unsigned long) 6237 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6238 int CWnd::SubclassWindow(HWND__ *) 6239 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6240 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6241 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6242 CSize CDC::TabbedTextOutW(int,int,unsigned short const *,int,int,int *,int) 6243 CSize CMetaFileDC::TabbedTextOutW(int,int,unsigned short const *,int,int,int *,int) 6244 CSize CPreviewDC::TabbedTextOutW(int,int,unsigned short const *,int,int,int *,int) 6245 void CRichEditView::TextNotFound(unsigned short const *) 6246 int CDC::TextOutW(int,int,unsigned short const *,int) 6247 int CMetaFileDC::TextOutW(int,int,unsigned short const *,int) 6248 int CPreviewDC::TextOutW(int,int,unsigned short const *,int) 6249 void CDaoDatabase::ThrowDaoException(int) 6250 void CDaoQueryDef::ThrowDaoException(int) 6251 void CDaoRecordset::ThrowDaoException(int) 6252 void CDaoTableDef::ThrowDaoException(int) 6253 void CDaoWorkspace::ThrowDaoException(int) 6254 void CDatabase::ThrowDBException(short) 6255 void CRecordset::ThrowDBException(short,void *) 6256 void CFileException::ThrowErrno(int,unsigned short const *) 6257 void COleControl::ThrowError(long,unsigned int,unsigned int) 6258 void COleControl::ThrowError(long,unsigned short const *,unsigned int) 6259 void ThrowGetRowsDaoException(long) 6260 void CFileException::ThrowOsError(long,unsigned short const *) 6261 void CDockContext::ToggleDocking() 6262 int CDockContext::Track() 6263 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6264 void CSplitterWnd::TrackColumnSize(int,int) 6265 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6266 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6267 void CSplitterWnd::TrackRowSize(int,int) 6268 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6269 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6270 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6271 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 6272 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6273 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6274 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6275 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6276 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 6277 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6278 void CString::TrimLeft() 6279 void CString::TrimRight() 6280 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6281 void COccManager::UIActivateControl(CWnd *) 6282 long COleControl::XOleInPlaceObject::UIDeactivate() 6283 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 6284 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6285 void COleSafeArray::UnaccessData() 6286 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6287 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6288 long COleControl::XOleObject::Unadvise(unsigned long) 6289 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6290 long COleServerItem::XOleObject::Unadvise(unsigned long) 6291 void CRecordset::UnbindFieldsForUpdate() 6292 long COleControl::XOleCache::Uncache(unsigned long) 6293 long COleControl::XViewObject::Unfreeze(unsigned long) 6294 int CCriticalSection::Unlock() 6295 int CEvent::Unlock() 6296 int CMultiLock::Unlock(long,long *) 6297 int CMultiLock::Unlock() 6298 int CMutex::Unlock() 6299 void COleSafeArray::Unlock() 6300 int CSemaphore::Unlock(long,long *) 6301 int CSemaphore::Unlock() 6302 int CSingleLock::Unlock(long,long *) 6303 int CSingleLock::Unlock() 6304 int CSyncObject::Unlock(long,long *) 6305 void CTypeLibCache::Unlock() 6306 void CEditView::UnlockBuffer()const 6307 void CString::UnlockBuffer() 6308 void CFile::UnlockRange(unsigned long,unsigned long) 6309 void CInternetFile::UnlockRange(unsigned long,unsigned long) 6310 void CMemFile::UnlockRange(unsigned long,unsigned long) 6311 void COleStreamFile::UnlockRange(unsigned long,unsigned long) 6312 void CSocketFile::UnlockRange(unsigned long,unsigned long) 6313 void CStdioFile::UnlockRange(unsigned long,unsigned long) 6314 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6315 int CWinApp::Unregister() 6316 HWND__ * CWnd::UnsubclassWindow() 6317 void CDaoRecordset::Update() 6318 int CRecordset::Update() 6319 long CDocObjectServer::XOleObject::Update() 6320 long COleControl::XOleObject::Update() 6321 long COleServerDoc::XOleObject::Update() 6322 long COleServerItem::XOleObject::Update() 6323 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6324 void CStatusBar::UpdateAllPanes(int,int) 6325 void CDocument::UpdateAllViews(CView *,long,CObject *) 6326 void CScrollView::UpdateBars() 6327 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6328 long CDataSourceControl::UpdateControls() 6329 long CDataSourceControl::UpdateCursor() 6330 int CWnd::UpdateData(int) 6331 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6332 void CDocument::UpdateFrameCounts() 6333 void CFrameWnd::UpdateFrameTitleForDocument(unsigned short const *) 6334 int CRecordset::UpdateInsertDelete() 6335 void COleClientItem::UpdateItemType() 6336 int COleClientItem::UpdateLink() 6337 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6338 void CSizeComboBox::UpdateLogFont(tagLOGFONTW *,int) 6339 void CRecentFileList::UpdateMenu(CCmdUI *) 6340 void COleDocument::UpdateModifiedFlag() 6341 void CRichEditDoc::UpdateModifiedFlag() 6342 void CRichEditDoc::UpdateObjectCache() 6343 void CWinApp::UpdatePrinterSelection(int) 6344 int CColorPropPage::CColorPropPageFactory::UpdateRegistry(int) 6345 int CFontPropPage::CFontPropPageFactory::UpdateRegistry(int) 6346 int COleObjectFactory::UpdateRegistry(int) 6347 void COleObjectFactory::UpdateRegistry(unsigned short const *) 6348 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,unsigned short const * *,unsigned short const * *) 6349 int CPicturePropPage::CPicturePropPageFactory::UpdateRegistry(int) 6350 int COleObjectFactory::UpdateRegistryAll(int) 6351 void CFontPropPage::UpdateSampleFont() 6352 void CDockContext::UpdateState(int *,int) 6353 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6354 void CToolTipCtrl::UpdateTipText(unsigned short const *,CWnd *,unsigned int) 6355 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6356 void COleLinkingDoc::UpdateVisibleLock(int,int) 6357 void CDatabase::VerifyConnect() 6358 unsigned long CRecordset::VerifyCursorSupport() 6359 void CRecordset::VerifyDriverBehavior() 6360 int COleObjectFactory::VerifyLicenseKey(unsigned short *) 6361 int COleObjectFactory::VerifyUserLicense() 6362 int CListBox::VKeyToItem(unsigned int,unsigned int) 6363 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6364 int COleControl::WillAmbientsBeValidDuringLoad() 6365 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6366 long COleControl::WindowProc(unsigned int,unsigned int,long) 6367 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6368 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6369 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6370 long CWnd::WindowProc(unsigned int,unsigned int,long) 6371 void CWinApp::WinHelpW(unsigned long,unsigned int) 6372 void CWnd::WinHelpW(unsigned long,unsigned int) 6373 CWnd const CWnd::wndBottom 6374 CWnd const CWnd::wndNoTopMost 6375 CWnd const CWnd::wndTop 6376 CWnd const CWnd::wndTopMost 6377 void CRichEditView::WrapChanged() 6378 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6379 void CArchive::Write(void const *,unsigned int) 6380 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6381 void CFile::Write(void const *,unsigned int) 6382 void CGopherFile::Write(void const *,unsigned int) 6383 int CImageList::Write(CArchive *) 6384 void CInternetFile::Write(void const *,unsigned int) 6385 void CMemFile::Write(void const *,unsigned int) 6386 void COleStreamFile::Write(void const *,unsigned int) 6387 void CSocketFile::Write(void const *,unsigned int) 6388 void CStdioFile::Write(void const *,unsigned int) 6389 void CArchive::WriteClass(CRuntimeconst *) 6390 void CArchive::WriteCount(unsigned long) 6391 void COleClientItem::WriteItem(CArchive &) 6392 void COleClientItem::WriteItemCompound(CArchive &) 6393 void COleClientItem::WriteItemFlat(CArchive &) 6394 void CRecentFileList::WriteList() 6395 int CPropertySection::WriteNameDictToStream(IStream *) 6396 void CArchive::WriteObject(CObject const *) 6397 int CWinApp::WriteProfileBinary(unsigned short const *,unsigned short const *,unsigned char *,unsigned int) 6398 int CWinApp::WriteProfileInt(unsigned short const *,unsigned short const *,int) 6399 int CWinApp::WriteProfileStringW(unsigned short const *,unsigned short const *,unsigned short const *) 6400 void CArchive::WriteString(unsigned short const *) 6401 void CGopherFile::WriteString(unsigned short const *) 6402 void CInternetFile::WriteString(unsigned short const *) 6403 void CStdioFile::WriteString(unsigned short const *) 6404 void CEditView::WriteToArchive(CArchive &) 6405 int CProperty::WriteToStream(IStream *) 6406 int CPropertySection::WriteToStream(IStream *) 6407 int CPropertySet::WriteToStream(IStream *) 6408 afxChNil 6409 CHttpConnection::CHttpConnection(CInternetSession *,unsigned short const *,unsigned long,unsigned short,unsigned short const *,unsigned short const *,unsigned long) 6410 _CIP::~_CIP() 6411 _CIP::~_CIP() 6412 CIP::~CIP() 6413 CIP::~CIP() 6414 int AfxParseURLEx(unsigned short const *,unsigned long &,CString &,CString &,unsigned short &,CString &,CString &,unsigned long) 6417 CRuntimeconst CInternetException::classCInternetException 6418 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 6419 int CWinThread::DispatchThreadMessageEx(tagMSG *) 6420 void CAsyncMonikerFile::EndCallbacks() 6421 void CMonikerFile::Flush() 6422 CHttpConnection * CInternetSession::GetHttpConnection(unsigned short const *,unsigned long,unsigned short,unsigned short const *,unsigned short const *) 6423 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 6424 CColorPropPage::CColorPropPageFactory::CColorPropPageFactory(_GUID const &,CRuntime*,int,unsigned short const *) 6425 CEnumConnections::CEnumConnections(void const *,unsigned int) 6426 CFontPropPage::CFontPropPageFactory::CFontPropPageFactory(_GUID const &,CRuntime*,int,unsigned short const *) 6427 CPicturePropPage::CPicturePropPageFactory::CPicturePropPageFactory(_GUID const &,CRuntime*,int,unsigned short const *) 6428 Duplicate1_??1?$CIP@UIStream@@$1?IID_IStream@@3U_GUID@@B@@QAE@XZ 6429 CEnumConnections::~CEnumConnections() 6430 int _AfxDeleteRegKey(unsigned short const *) 6431 void CEnumConnections::AddConnection(tagCONNECTDATA *) 6432 void AfxGetDefaultValue(_DAOField *,CString &) 6433 int AfxInitRichEdit() 6434 int AfxOleUnregisterHelper(unsigned short const * const *,unsigned short const * const *,int,HKEY__ *) 6435 int AfxOleUnregisterServerClass(_GUID const &,unsigned short const *,unsigned short const *,unsigned short const *,enum OLE_APPTYPE,unsigned short const * *,unsigned short const * *) 6436 void AfxSetDefaultValue(_DAOField *,CString &) 6437 int CWnd::CreateEx(unsigned long,unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 6438 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 6439 Duplicate1_?FindAndSelect@CRichEditView@@QAEJKAAU_findtextexa@@@Z 6440 void COleControlContainer::FreezeAllEvents(int) 6441 void COleControlSite::FreezeEvents(int) 6442 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 6443 unsigned int HashKey(char const *) 6444 AFX_INTERFACEMAP const COleControlContainer::interfaceMap 6445 AFX_INTERFACEMAP const COleControlSite::interfaceMap 6446 int CBitmap::LoadBitmapW(unsigned int) 6447 unsigned short const * OLE2CT(unsigned short const *) 6448 CEnumArray * CEnumConnections::OnClone() 6449 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6450 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6451 void CWnd::OnDestroy() 6452 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6453 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6454 int CEnumConnections::OnNext(void *) 6455 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6456 void CWnd::OnSettingChange(unsigned int,unsigned short const *) 6457 void CRecordset::SetParamNull(int,int) 6458 unsigned short * T2OLE(unsigned short *) 6459 int COleObjectFactory::Unregister() 6460 int COleTemplateServer::Unregister() 6461 int COleObjectFactory::UnregisterAll() 6462 void CDocManager::UnregisterShellFileTypes() 6463 void CWinApp::UnregisterShellFileTypes() 6464 AFX_CLASSINIT_COMPAT::AFX_CLASSINIT_COMPAT(CRuntime*) 6465 AFX_EVENT::AFX_EVENT(int) 6466 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 6467 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 6468 CDaoErrorInfo::CDaoErrorInfo() 6469 CDaoFieldInfo::CDaoFieldInfo() 6470 CDataPathProperty::CDataPathProperty(COleControl *) 6471 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 6472 CFileStatus::CFileStatus() 6473 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 6474 CGopherLocator::CGopherLocator(CGopherLocator const &) 6475 CHtmlView::CHtmlView() 6476 CMemoryException::CMemoryException(int,unsigned int) 6477 CNotSupportedException::CNotSupportedException(int,unsigned int) 6478 COleDocObjectItem::COleDocObjectItem(COleDocument *) 6479 COleVariant::COleVariant(_ITEMIDLIST const *) 6480 CParkingWnd::CParkingWnd() 6481 CPropertyPageEx::CPropertyPageEx(unsigned int,unsigned int,unsigned int,unsigned int) 6482 CPropertyPageEx::CPropertyPageEx(unsigned short const *,unsigned int,unsigned int,unsigned int) 6483 CPropertyPageEx::CPropertyPageEx() 6484 CPropertySheetEx::CPropertySheetEx(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6485 CPropertySheetEx::CPropertySheetEx(unsigned short const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6486 CPropertySheetEx::CPropertySheetEx() 6487 CReBar::CReBar() 6488 CResourceException::CResourceException(int,unsigned int) 6489 CString::CString(char const *,int) 6490 CUserException::CUserException(int,unsigned int) 6491 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 6492 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 6493 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 6494 CArchiveException::~CArchiveException() 6495 CColorDialog::~CColorDialog() 6496 CColorPropPage::~CColorPropPage() 6497 CColorPropPage::CColorPropPageFactory::~CColorPropPageFactory() 6498 CComboBoxEx::~CComboBoxEx() 6499 CControlBarInfo::~CControlBarInfo() 6500 COleControl::CControlDataSource::~CControlDataSource() 6501 CControlFrameWnd::~CControlFrameWnd() 6502 CControlRectTracker::~CControlRectTracker() 6503 CDaoErrorInfo::~CDaoErrorInfo() 6504 CDateTimeCtrl::~CDateTimeCtrl() 6505 CFindReplaceDialog::~CFindReplaceDialog() 6506 CFixedAlloc::~CFixedAlloc() 6507 CFontPropPage::~CFontPropPage() 6508 CFontPropPage::CFontPropPageFactory::~CFontPropPageFactory() 6509 CHandleMap::~CHandleMap() 6510 CHtmlView::~CHtmlView() 6511 CIPAddressCtrl::~CIPAddressCtrl() 6512 CMDIChildWnd::~CMDIChildWnd() 6513 CMDIFrameWnd::~CMDIFrameWnd() 6514 CMemoryException::~CMemoryException() 6515 CMiniDockFrameWnd::~CMiniDockFrameWnd() 6516 CMonthCalCtrl::~CMonthCalCtrl() 6517 CNotSupportedException::~CNotSupportedException() 6518 COccManager::~COccManager() 6519 COleDocObjectItem::~COleDocObjectItem() 6520 COleException::~COleException() 6521 COleSafeArray::~COleSafeArray() 6522 CParkingWnd::~CParkingWnd() 6523 CPicturePropPage::CPicturePropPageFactory::~CPicturePropPageFactory() 6524 CPropertyPageEx::~CPropertyPageEx() 6525 CPropertySheetEx::~CPropertySheetEx() 6526 CPushRoutingFrame::~CPushRoutingFrame() 6527 CPushRoutingView::~CPushRoutingView() 6528 CReBar::~CReBar() 6529 CReflectorWnd::~CReflectorWnd() 6530 CResourceException::~CResourceException() 6531 CRichEditDoc::~CRichEditDoc() 6532 CSocketWnd::~CSocketWnd() 6533 CTempDC::~CTempDC() 6534 CTempGdiObject::~CTempGdiObject() 6535 CTempImageList::~CTempImageList() 6536 CTempMenu::~CTempMenu() 6537 CTempWnd::~CTempWnd() 6538 CThreadData::~CThreadData() 6539 CTypeLibCacheMap::~CTypeLibCacheMap() 6540 CUserException::~CUserException() 6541 CWindowlessDC::~CWindowlessDC() 6542 void CTempWnd::operator delete(void *) 6543 CArchive & CArchive::operator>>(unsigned char &) 6544 CArchive & CArchive::operator>>(unsigned short &) 6545 CArchive & CArchive::operator>>(long &) 6546 CArchive & CArchive::operator>>(unsigned long &) 6547 CArchive & CArchive::operator>>(float &) 6548 CArchive & CArchive::operator>>(double &) 6549 CArchive & CArchive::operator<<(unsigned char) 6550 CArchive & CArchive::operator<<(unsigned short) 6551 CArchive & CArchive::operator<<(long) 6552 CArchive & CArchive::operator<<(unsigned long) 6553 CArchive & CArchive::operator<<(float) 6554 CArchive & CArchive::operator<<(double) 6555 int operator==(_GUID const &,_GUID const &) 6556 int CTime::operator<(CTime)const 6557 int CTime::operator>(CTime)const 6558 void COleDocObjectItem::ActivateAndShow() 6559 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 6560 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,unsigned short const *,unsigned long) 6561 int CReBar::AddBar(CWnd *,unsigned short const *,CBitmap *,unsigned long) 6562 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 6563 __POSITION * CStringList::AddHead(CString const &) 6564 void CPropertySheetEx::AddPage(CPropertyPageEx *) 6565 __POSITION * CStringList::AddTail(CString const &) 6566 void AfxCheckError(long) 6567 void AfxClassInit(CRuntime*) 6568 long AfxDelRegTreeHelper(HKEY__ *,CString const &) 6569 void AfxEditviewTerm() 6570 AFX_EXCEPTION_CONTEXT * AfxGetExceptionContext() 6571 void * AfxGetHENV() 6572 CWnd * AfxGetMainWnd() 6573 CHandleMap * afxMapHDC(int) 6574 CHandleMap * afxMapHGDIOBJ(int) 6575 CHandleMap * afxMapHIMAGELIST(int) 6576 CHandleMap * afxMapHMENU(int) 6577 CHandleMap * afxMapHWND(int) 6578 int AfxOleRegisterServerClass(_GUID const &,unsigned short const *,unsigned short const *,unsigned short const *,enum OLE_APPTYPE,unsigned short const * *,unsigned short const * *,int,unsigned short const *,unsigned short const *) 6579 void AfxTrackerTerm() 6580 void AfxWingdixTerm() 6581 void * CFixedAlloc::Alloc() 6582 void COleControlContainer::AttachControlSite(CWnd *) 6583 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,int *) 6584 void CPropertySheetEx::BuildPropPageArray() 6585 CSize CReBar::CalcDynamicLayout(int,unsigned long) 6586 CSize CReBar::CalcFixedLayout(int,int) 6587 int CDatabase::CheckHstmt(short,void *)const 6588 CRuntimeconst CComboBoxEx::classCComboBoxEx 6589 CRuntimeconst CHtmlView::classCHtmlView 6590 CRuntimeconst CIPAddressCtrl::classCIPAddressCtrl 6591 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6592 CRuntimeconst COleDocObjectItem::classCOleDocObjectItem 6593 CRuntimeconst CPropertyPageEx::classCPropertyPageEx 6594 CRuntimeconst CPropertySheetEx::classCPropertySheetEx 6595 CRuntimeconst CReBar::classCReBar 6596 CRuntimeconst CReBarCtrl::classCReBarCtrl 6597 void CWnd::ClientToScreen(tagRECT *)const 6598 void CPropertyPageEx::CommonConstruct(unsigned short const *,unsigned int,unsigned int,unsigned int) 6599 void CPropertySheetEx::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6600 void CPropertyPageEx::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 6601 void CPropertyPageEx::Construct(unsigned short const *,unsigned int,unsigned int,unsigned int) 6602 void CPropertySheetEx::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6603 void CPropertySheetEx::Construct(unsigned short const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 6604 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6605 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6606 int CHtmlView::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 6607 int CImageList::Create(CImageList *) 6608 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6609 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 6610 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6611 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 6612 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 6613 int COleControlContainer::CreateControl(CWnd *,_GUID const &,unsigned short const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,unsigned short *,COleControlSite * *) 6614 long COleControlSite::CreateControl(CWnd *,_GUID const &,unsigned short const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,unsigned short *) 6615 int CWnd::CreateControl(_GUID const &,unsigned short const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,unsigned short *) 6616 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 6617 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 6618 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 6619 CObject * CHtmlView::CreateObject() 6620 CObject * CTempDC::CreateObject() 6621 CObject * CTempGdiObject::CreateObject() 6622 CObject * CTempImageList::CreateObject() 6623 CObject * CTempMenu::CreateObject() 6624 CObject * CTempWnd::CreateObject() 6625 void COleControl::CreateTracker(int,int,tagRECT const *) 6626 void DDV_MinMaxDateTime(CDataExchange *,COleDateTime &,COleDateTime const *,COleDateTime const *) 6627 void DDV_MinMaxDateTime(CDataExchange *,CTime &,CTime const *,CTime const *) 6628 void DDV_MinMaxMonth(CDataExchange *,COleDateTime &,COleDateTime const *,COleDateTime const *) 6629 void DDV_MinMaxMonth(CDataExchange *,CTime &,CTime const *,CTime const *) 6630 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 6631 void DDX_DateTimeCtrl(CDataExchange *,int,COleDateTime &) 6632 void DDX_DateTimeCtrl(CDataExchange *,int,CTime &) 6633 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6634 void DDX_FieldText(CDataExchange *,int,unsigned short *,int,CDaoRecordset *) 6635 void DDX_FieldText(CDataExchange *,int,unsigned short *,int,CRecordset *) 6636 void DDX_MonthCalCtrl(CDataExchange *,int,COleDateTime &) 6637 void DDX_MonthCalCtrl(CDataExchange *,int,CTime &) 6638 void DDX_Slider(CDataExchange *,int,int &) 6639 void DDX_Text(CDataExchange *,int,unsigned short *,int) 6640 int CString::Delete(int,int) 6641 int CComboBoxEx::DeleteItem(int) 6642 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 6643 int COleInsertDialog::DoModal(unsigned long) 6644 void CControlBar::DrawGripper(CDC *,CRect const &) 6645 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 6646 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long) 6647 int CWnd::EnableTrackingToolTips(int) 6648 void CPropertyPage::EndDialog(int) 6649 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 6650 AFX_EVENTSINKMAP const CHtmlView::eventsinkMap 6651 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6652 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 6653 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 6654 int CString::Find(unsigned short,int)const 6655 int CString::Find(unsigned short const *,int)const 6656 int FontAttrSize(int) 6657 void CFixedAlloc::Free(void *) 6658 void CFixedAlloc::FreeAll() 6659 void __fastcall CString::FreeData(CStringData *) 6660 IOleDocumentView * COleDocObjectItem::GetActiveView()const 6661 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 6662 int CHtmlView::GetAddressBar()const 6663 IDispatch * CHtmlView::GetApplication()const 6664 int COleDateTime::GetAsSystemTime(_SYSTEMTIME &)const 6665 int CTime::GetAsSystemTime(_SYSTEMTIME &)const 6666 int CHtmlView::GetBusy()const 6667 int CListCtrl::GetCheck(int)const 6668 int CTreeCtrl::GetCheck(_TREEITEM *)const 6669 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 6670 int CListCtrl::GetColumnOrderArray(int *,int) 6671 IDispatch * CHtmlView::GetContainer()const 6672 int CInternetSession::GetCookie(char const *,unsigned short const *,CString &) 6673 int CInternetSession::GetCookie(char const *,unsigned short const *,unsigned short *,unsigned long) 6674 unsigned long CInternetSession::GetCookieLength(char const *,unsigned short const *) 6675 int CListBox::GetCurSel()const 6676 int CMonthCalCtrl::GetCurSel(COleDateTime &)const 6677 int CMonthCalCtrl::GetCurSel(CTime &)const 6678 IUnknown * CDataBoundProperty::GetCursor() 6679 IUnknown * CDataSourceControl::GetCursor() 6680 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 6681 int CDocManager::GetDocumentCount() 6682 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 6683 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 6684 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 6685 CFont * CWnd::GetFont()const 6686 CString CHtmlView::GetFullName()const 6687 int CHtmlView::GetFullScreen()const 6688 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 6689 long CHtmlView::GetHeight()const 6690 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 6691 IDispatch * CHtmlView::GetHtmlDocument()const 6692 HICON__ * COleClientItem::GetIconFromRegistry()const 6693 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 6694 CImageList * CReBarCtrl::GetImageList()const 6695 IUnknown * COleFrameHook::GetInterfaceHook(void const *) 6696 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 6697 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 6698 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 6699 unsigned long CDC::GetLayout()const 6700 long CHtmlView::GetLeft()const 6701 CString CHtmlView::GetLocationName()const 6702 CString CHtmlView::GetLocationURL()const 6703 int CHtmlView::GetMenuBar()const 6704 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 6705 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 6706 AFX_MSGMAP const * CReBar::GetMessageMap()const 6707 IMoniker * CMonikerFile::GetMoniker()const 6708 int CMonthCalCtrl::GetMonthRange(COleDateTime &,COleDateTime &,unsigned long)const 6709 int CMonthCalCtrl::GetMonthRange(CTime &,CTime &,unsigned long)const 6710 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 6711 int CHtmlView::GetOffline()const 6712 int CHeaderCtrl::GetOrderArray(int *,int) 6713 CWnd * CWnd::GetOwner()const 6714 int COleDocObjectItem::GetPageCount(long *,long *) 6715 CRect CRichEditView::GetPageRect()const 6716 IDispatch * CHtmlView::GetParentBrowser()const 6717 CRect CRichEditView::GetPrintRect()const 6718 COleVariant CHtmlView::GetProperty(unsigned short const *) 6719 int CHtmlView::GetProperty(unsigned short const *,CString &) 6720 _AFX_OLDPROPSHEETHEADER * CPropertySheet::GetPropSheetHeader() 6721 unsigned long CDateTimeCtrl::GetRange(COleDateTime *,COleDateTime *)const 6722 unsigned long CDateTimeCtrl::GetRange(CTime *,CTime *)const 6723 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 6724 unsigned long CMonthCalCtrl::GetRange(COleDateTime *,COleDateTime *)const 6725 unsigned long CMonthCalCtrl::GetRange(CTime *,CTime *)const 6726 void CProgressCtrl::GetRange(int &,int &) 6727 enum tagREADYSTATE CHtmlView::GetReadyState()const 6728 int CHtmlView::GetRegisterAsBrowser()const 6729 int CHtmlView::GetRegisterAsDropTarget()const 6730 CFrameWnd * CCmdTarget::GetRoutingFrame_() 6731 CView * CCmdTarget::GetRoutingView_() 6732 CRuntime* CComboBoxEx::GetRuntimeClass()const 6733 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 6734 CRuntime* CHtmlView::GetRuntimeClass()const 6735 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 6736 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 6737 CRuntime* COleDBRecordView::GetRuntimeClass()const 6738 CRuntime* COleDocObjectItem::GetRuntimeClass()const 6739 CRuntime* CPropertyPageEx::GetRuntimeClass()const 6740 CRuntime* CPropertySheetEx::GetRuntimeClass()const 6741 CRuntime* CReBar::GetRuntimeClass()const 6742 CRuntime* CReBarCtrl::GetRuntimeClass()const 6743 CRuntime* CTempDC::GetRuntimeClass()const 6744 CRuntime* CTempGdiObject::GetRuntimeClass()const 6745 CRuntime* CTempImageList::GetRuntimeClass()const 6746 CRuntime* CTempMenu::GetRuntimeClass()const 6747 CRuntime* CTempWnd::GetRuntimeClass()const 6748 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 6749 int CMonthCalCtrl::GetSelRange(COleDateTime &,COleDateTime &)const 6750 int CMonthCalCtrl::GetSelRange(CTime &,CTime &)const 6751 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 6752 int CHtmlView::GetSilent()const 6753 int CHtmlView::GetStatusBar()const 6754 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 6755 CTabCtrl * CPropertySheet::GetTabControl()const 6756 CString CMirrorFile::GetTempName(unsigned short const *,int) 6757 int CHtmlView::GetTheaterMode()const 6758 int CDateTimeCtrl::GetTime(COleDateTime &)const 6759 unsigned long CDateTimeCtrl::GetTime(CTime &)const 6760 CString CStatusBarCtrl::GetTipText(int)const 6761 CString CFrameWnd::GetTitle()const 6762 int CMonthCalCtrl::GetToday(COleDateTime &)const 6763 int CMonthCalCtrl::GetToday(CTime &)const 6764 int CHtmlView::GetToolBar()const 6765 long CHtmlView::GetTop()const 6766 int CHtmlView::GetTopLevelContainer()const 6767 CString CHtmlView::GetType()const 6768 int CHtmlView::GetVisible()const 6769 int HasFont(DLGTEMPLATE const *) 6770 int CString::Insert(int,unsigned short) 6771 int CString::Insert(int,unsigned short const *) 6772 __POSITION * CStringList::InsertAfter(__POSITION *,CString const &) 6773 void CStringArray::InsertAt(int,CString const &,int) 6774 __POSITION * CStringList::InsertBefore(__POSITION *,CString const &) 6775 void CStringArray::InsertEmpty(int,int) 6776 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 6777 int CTabCtrl::InsertItem(unsigned int,int,unsigned short const *,int,long) 6778 int CTabCtrl::InsertItem(unsigned int,int,unsigned short const *,int,long,unsigned long,unsigned long) 6779 AFX_INTERFACEMAP const COleDocObjectItem::interfaceMap 6780 int CPropertyPage::IsButtonEnabled(int) 6781 int IsButtonUp(tagMSG *) 6782 int IsDialogEx(DLGTEMPLATE const *) 6783 int IsDirSep(unsigned short) 6784 int IsEnterKey(tagMSG *) 6785 int IsHelpKey(tagMSG *) 6786 void CToolBar::Layout() 6787 int CHtmlView::LoadFromResource(unsigned int) 6788 int CHtmlView::LoadFromResource(unsigned short const *) 6789 void CMDIChildWnd::MDIActivate() 6790 void CMDIChildWnd::MDIDestroy() 6791 AFX_MSGMAP const CHtmlView::messageMap 6792 AFX_MSGMAP const COleDBRecordView::messageMap 6793 AFX_MSGMAP const CReBar::messageMap 6794 void CHtmlView::Navigate(unsigned short const *,unsigned long,unsigned short const *,unsigned short const *,void *,unsigned long) 6795 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,unsigned short const *) 6796 void CHtmlView::Navigate2(unsigned short const *,unsigned long,unsigned short const *,unsigned short const *,void *,unsigned long) 6797 void CHtmlView::Navigate2(unsigned short const *,unsigned long,CByteArray &,unsigned short const *,unsigned short const *) 6798 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 6799 void CHtmlView::OnBeforeNavigate2(unsigned short const *,unsigned long,unsigned short const *,CByteArray &,unsigned short const *,int *) 6800 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 6801 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 6802 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 6803 void CHtmlView::OnCommandStateChange(long,int) 6804 void CHtmlView::OnDestroy() 6805 void CHtmlView::OnDocumentComplete(unsigned short const *) 6806 void CHtmlView::OnDownloadBegin() 6807 void CHtmlView::OnDownloadComplete() 6808 void CHtmlView::OnDraw(CDC *) 6809 void CToolTipCtrl::OnEnable(int) 6810 int COleControl::OnEraseBkgnd(CDC *) 6811 int CReBar::OnEraseBkgnd(CDC *) 6812 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6813 void CHtmlView::OnFilePrint() 6814 void CHtmlView::OnFullScreen(int) 6815 void COleDocObjectItem::OnGetItemPosition(CRect &) 6816 void CReBar::OnHeightChange(tagNMHDR *,long *) 6817 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6818 void COleDBRecordView::OnInitialUpdate() 6819 void CFrameWnd::OnInitMenu(CMenu *) 6820 void COleFrameHook::OnInitMenu(CMenu *) 6821 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6822 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6823 void CHtmlView::OnMenuBar(int) 6824 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6825 int COleDBRecordView::OnMove(unsigned int) 6826 void CHtmlView::OnNavigateComplete2(unsigned short const *) 6827 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6828 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 6829 void CReBar::OnNcPaint() 6830 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6831 void CHtmlView::OnPaint() 6832 void CReBar::OnPaint() 6833 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6834 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6835 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6836 void CHtmlView::OnProgressChange(long,long) 6837 void CHtmlView::OnPropertyChange(unsigned short const *) 6838 void CHtmlView::OnQuit() 6839 void CReBar::OnRecalcParent() 6840 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6841 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6842 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6843 long CToolBar::OnSetSizeHelper(CSize &,long) 6844 long CReBar::OnShowBand(unsigned int,long) 6845 void CHtmlView::OnSize(unsigned int,int,int) 6846 void CHtmlView::OnStatusBar(int) 6847 void CHtmlView::OnStatusTextChange(unsigned short const *) 6848 void CHtmlView::OnTheaterMode(int) 6849 void CHtmlView::OnTitleChange(unsigned short const *) 6850 void CHtmlView::OnToolBar(int) 6851 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6852 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6853 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6854 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6855 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6856 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6857 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6858 void CHtmlView::OnVisible(int) 6859 void CHtmlView::PutProperty(unsigned short const *,tagVARIANT const &) 6860 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 6861 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 6862 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 6863 void COleDocObjectItem::Release(enum tagOLECLOSE) 6864 void COleControl::ReleaseCaches() 6865 int CString::Remove(unsigned short) 6866 void CTypeLibCacheMap::RemoveAll(void *) 6867 int CString::Replace(unsigned short,unsigned short) 6868 int CString::Replace(unsigned short const *,unsigned short const *) 6869 void RFX_Date(CFieldExchange *,unsigned short const *,COleDateTime &) 6870 void RFX_Text(CFieldExchange *,unsigned short const *,unsigned short *,int,int,short) 6871 void CWnd::ScreenToClient(tagRECT *)const 6872 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 6873 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 6874 void CStringArray::SetAtGrow(int,CString const &) 6875 void CAsyncMonikerFile::SetBinding(IBinding *) 6876 int CListCtrl::SetBkImage(unsigned short *,int,int,int) 6877 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 6878 void CControlBar::SetBorders(int,int,int,int) 6879 int CListCtrl::SetCheck(int,int) 6880 int CTreeCtrl::SetCheck(_TREEITEM *,int) 6881 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 6882 int CListCtrl::SetColumnOrderArray(int,int *) 6883 int CInternetSession::SetCookie(char const *,unsigned short const *,unsigned short const *) 6884 int CMonthCalCtrl::SetCurSel(COleDateTime const &) 6885 int CMonthCalCtrl::SetCurSel(CTime const &) 6886 int CMonthCalCtrl::SetDayState(int,unsigned long *) 6887 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 6888 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 6889 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 6890 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 6891 CSize CListCtrl::SetIconSpacing(int,int) 6892 CSize CListCtrl::SetIconSpacing(CSize) 6893 int CReBarCtrl::SetImageList(CImageList *) 6894 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 6895 int CListCtrl::SetItemCountEx(int,unsigned long) 6896 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 6897 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 6898 int CListCtrl::SetItemText(int,int,unsigned short const *) 6899 unsigned long CDC::SetLayout(unsigned long) 6900 int CHeaderCtrl::SetOrderArray(int,int *) 6901 int CDateTimeCtrl::SetRange(COleDateTime const *,COleDateTime const *) 6902 int CDateTimeCtrl::SetRange(CTime const *,CTime const *) 6903 int CMonthCalCtrl::SetRange(COleDateTime const *,COleDateTime const *) 6904 int CMonthCalCtrl::SetRange(CTime const *,CTime const *) 6905 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6906 void CCheckListBox::SetSelectionCheck(int) 6907 int CMonthCalCtrl::SetSelRange(COleDateTime const &,COleDateTime const &) 6908 int CMonthCalCtrl::SetSelRange(CTime const &,CTime const &) 6909 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6910 int CDateTimeCtrl::SetTime(COleDateTime const &) 6911 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6912 int CDateTimeCtrl::SetTime(CTime const *) 6913 void CMonthCalCtrl::SetToday(COleDateTime const &) 6914 void CMonthCalCtrl::SetToday(CTime const *) 6915 int CMonthCalCtrl::SizeMinReq(int) 6916 int COleDocObjectItem::SupportsIPrint() 6917 COleVariant CDataSourceControl::ToVariant(int) 6918 void CString::TrimLeft(unsigned short) 6919 void CString::TrimLeft(unsigned short const *) 6920 void CString::TrimRight(unsigned short) 6921 void CString::TrimRight(unsigned short const *) 6922 long CReBar::WindowProc(unsigned int,unsigned int,long) 6923 int CMenu::GetMenuStringW(unsigned int,CString &,unsigned int)const ================================================ FILE: Bin/i386/mfc_sym/mfc42ud.def ================================================ 256 void CRect::operator&=(tagRECT const &) 257 void CRect::operator|=(tagRECT const &) 258 CEmbeddedButActsLikePtr::CEmbeddedButActsLikePtr() 259 CEmbeddedButActsLikePtr::CEmbeddedButActsLikePtr() 260 CTypedSimpleList::CTypedSimpleList(int) 261 CTypedSimpleList::CTypedSimpleList(int) 262 CTypedSimpleList::CTypedSimpleList(int) 263 CTypedSimpleList::CTypedSimpleList(int) 264 CTypedSimpleList::CTypedSimpleList(int) 265 CTypedSimpleList::CTypedSimpleList(int) 266 _AFX_BASE_MODULE_STATE::_AFX_BASE_MODULE_STATE() 267 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 268 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 269 _AFX_CONTROLPOS::_AFX_CONTROLPOS() 270 _AFX_CTL3D_STATE::_AFX_CTL3D_STATE() 271 _AFX_CTL3D_THREAD::_AFX_CTL3D_THREAD() 272 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 273 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 274 _AFX_MAIL_STATE::_AFX_MAIL_STATE() 275 _AFX_PROPPAGEFONTINFO::_AFX_PROPPAGEFONTINFO() 276 _AFX_RICHEDIT_STATE::_AFX_RICHEDIT_STATE() 277 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 278 _AFX_WIN_STATE::_AFX_WIN_STATE() 279 AFX_CHECK_DATA::AFX_CHECK_DATA() 280 AFX_CLASSINIT::AFX_CLASSINIT(CRuntime*) 281 AFX_CLASSINIT_COMPAT::AFX_CLASSINIT_COMPAT(CRuntime*) 282 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 283 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 284 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 285 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long) 286 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 287 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 288 CAnimateCtrl::CAnimateCtrl() 289 CArchive::CArchive(CArchive const &) 290 CArchive::CArchive(CFile *,unsigned int,int,void *) 291 CArchiveException::CArchiveException(int,unsigned short const *) 292 CArchiveStream::CArchiveStream(CArchive *) 293 CBitmap::CBitmap() 294 CBitmapButton::CBitmapButton() 295 CBrush::CBrush(int,unsigned long) 296 CBrush::CBrush(unsigned long) 297 CBrush::CBrush(CBitmap *) 298 CBrush::CBrush() 299 CButton::CButton() 300 CByteArray::CByteArray() 301 CCheckListBox::CCheckListBox() 302 CClientDC::CClientDC(CWnd *) 303 CCmdTarget::CCmdTarget() 304 CCmdUI::CCmdUI() 305 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 306 CComboBox::CComboBox() 307 CComboBoxEx::CComboBoxEx() 308 CCommandLineInfo::CCommandLineInfo() 309 CCommonDialog::CCommonDialog(CWnd *) 310 CControlBar::CControlBar() 311 CControlBarInfo::CControlBarInfo() 312 CCreateContext::CCreateContext() 313 CCriticalSection::CCriticalSection() 314 CCtrlView::CCtrlView(unsigned short const *,unsigned long) 315 CDataExchange::CDataExchange(CWnd *,int) 316 CDC::CDC() 317 CDialog::CDialog(unsigned int,CWnd *) 318 CDialog::CDialog(unsigned short const *,CWnd *) 319 CDialog::CDialog() 320 CDialogBar::CDialogBar() 321 CDialogTemplate::CDialogTemplate(void *) 322 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 323 CDockBar::CDockBar(int) 324 CDockContext::CDockContext(CControlBar *) 325 CDockState::CDockState() 326 CDocManager::CDocManager() 327 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 328 CDocument::CDocument() 329 CDragListBox::CDragListBox() 330 CDumpContext::CDumpContext(CDumpContext const &) 331 CDumpContext::CDumpContext(CFile *) 332 CDWordArray::CDWordArray() 333 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 334 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 335 CEdit::CEdit() 336 CEditView::CEditView() 337 CEvent::CEvent(int,int,unsigned short const *,_SECURITY_ATTRIBUTES *) 338 CException::CException(int) 339 CException::CException() 340 CFile::CFile(int) 341 CFile::CFile(unsigned short const *,unsigned int) 342 CFile::CFile() 343 CFileDialog::CFileDialog(int,unsigned short const *,unsigned short const *,unsigned long,unsigned short const *,CWnd *) 344 CFileException::CFileException(int,long,unsigned short const *) 345 CFileFind::CFileFind() 346 CFileStatus::CFileStatus() 347 CFindReplaceDialog::CFindReplaceDialog() 348 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 349 CFont::CFont() 350 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 351 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 352 CFormView::CFormView(unsigned int) 353 CFormView::CFormView(unsigned short const *) 354 CFrameWnd::CFrameWnd() 355 CFtpConnection::CFtpConnection(CInternetSession *,void *,unsigned short const *,unsigned long) 356 CFtpConnection::CFtpConnection(CInternetSession *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short,int) 357 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 358 CGdiObject::CGdiObject() 359 CGopherConnection::CGopherConnection(CInternetSession *,void *,unsigned short const *,unsigned long) 360 CGopherConnection::CGopherConnection(CInternetSession *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short) 361 CGopherFile::CGopherFile(void *,void *,unsigned short const *,unsigned long,unsigned long) 362 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 363 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 364 CGopherLocator::CGopherLocator(unsigned short const *,unsigned long) 365 CGopherLocator::CGopherLocator(CGopherLocator const &) 366 CHandleMap::CHandleMap(CRuntime*,unsigned int,int) 367 CHeaderCtrl::CHeaderCtrl() 368 CHotKeyCtrl::CHotKeyCtrl() 369 CHttpConnection::CHttpConnection(CInternetSession *,void *,unsigned short const *,unsigned long) 370 CHttpConnection::CHttpConnection(CInternetSession *,unsigned short const *,unsigned short,unsigned short const *,unsigned short const *,unsigned long) 371 CHttpConnection::CHttpConnection(CInternetSession *,unsigned short const *,unsigned long,unsigned short,unsigned short const *,unsigned short const *,unsigned long) 372 CHttpFile::CHttpFile(void *,void *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long) 373 CHttpFile::CHttpFile(void *,unsigned short const *,unsigned short const *,CHttpConnection *) 374 CImageList::CImageList() 375 CInternetConnection::CInternetConnection(CInternetSession *,unsigned short const *,unsigned short,unsigned long) 376 CInternetException::CInternetException(unsigned long) 377 CInternetFile::CInternetFile(void *,void *,unsigned short const *,unsigned short const *,unsigned long,int) 378 CInternetFile::CInternetFile(void *,unsigned short const *,CInternetConnection *,int) 379 CInternetSession::CInternetSession(unsigned short const *,unsigned long,unsigned long,unsigned short const *,unsigned short const *,unsigned long) 380 CIPAddressCtrl::CIPAddressCtrl() 381 CListBox::CListBox() 382 CListCtrl::CListCtrl() 383 CListView::CListView() 384 CMapPtrToPtr::CMapPtrToPtr(int) 385 CMapPtrToWord::CMapPtrToWord(int) 386 CMapStringToOb::CMapStringToOb(int) 387 CMapStringToPtr::CMapStringToPtr(int) 388 CMapStringToString::CMapStringToString(int) 389 CMapWordToOb::CMapWordToOb(int) 390 CMapWordToPtr::CMapWordToPtr(int) 391 CMDIChildWnd::CMDIChildWnd() 392 CMDIFrameWnd::CMDIFrameWnd() 393 CMemFile::CMemFile(unsigned int) 394 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 395 CMemoryException::CMemoryException(int,unsigned int) 396 CMemoryException::CMemoryException() 397 CMemoryState::CMemoryState() 398 CMenu::CMenu() 399 CMetaFileDC::CMetaFileDC() 400 CMiniDockFrameWnd::CMiniDockFrameWnd() 401 CMiniFrameWnd::CMiniFrameWnd() 402 CMirrorFile::CMirrorFile() 403 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 404 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 405 CMutex::CMutex(int,unsigned short const *,_SECURITY_ATTRIBUTES *) 406 CNoTrackObject::CNoTrackObject() 407 CNotSupportedException::CNotSupportedException(int,unsigned int) 408 CNotSupportedException::CNotSupportedException() 409 CObArray::CObArray() 410 CObject::CObject() 411 CObList::CObList(int) 412 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 413 CPaintDC::CPaintDC(CWnd *) 414 CPalette::CPalette() 415 CPen::CPen(int,int,unsigned long) 416 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 417 CPen::CPen() 418 CPoint::CPoint(int,int) 419 CPoint::CPoint(unsigned long) 420 CPoint::CPoint(tagPOINT) 421 CPoint::CPoint(tagSIZE) 422 CPoint::CPoint() 423 CPreviewDC::CPreviewDC() 424 CPreviewView::CPreviewView() 425 CPrintDialog::CPrintDialog(tagPDW &) 426 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 427 CPrintInfo::CPrintInfo() 428 CPrintPreviewState::CPrintPreviewState() 429 CProgressCtrl::CProgressCtrl() 430 CPropertyPage::CPropertyPage(unsigned int,unsigned int) 431 CPropertyPage::CPropertyPage(unsigned short const *,unsigned int) 432 CPropertyPage::CPropertyPage() 433 CPropertyPageEx::CPropertyPageEx(unsigned int,unsigned int,unsigned int,unsigned int) 434 CPropertyPageEx::CPropertyPageEx(unsigned short const *,unsigned int,unsigned int,unsigned int) 435 CPropertyPageEx::CPropertyPageEx() 436 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 437 CPropertySheet::CPropertySheet(unsigned short const *,CWnd *,unsigned int) 438 CPropertySheet::CPropertySheet() 439 CPropertySheetEx::CPropertySheetEx(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 440 CPropertySheetEx::CPropertySheetEx(unsigned short const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 441 CPropertySheetEx::CPropertySheetEx() 442 CPtrArray::CPtrArray() 443 CPtrList::CPtrList(int) 444 CPushRoutingFrame::CPushRoutingFrame(CFrameWnd *) 445 CPushRoutingView::CPushRoutingView(CView *) 446 CReBar::CReBar() 447 CReBarCtrl::CReBarCtrl() 448 CRecentFileList::CRecentFileList(unsigned int,unsigned short const *,unsigned short const *,int,int) 449 CRect::CRect(tagRECT const &) 450 CRect::CRect(int,int,int,int) 451 CRect::CRect(tagRECT const *) 452 CRect::CRect(tagPOINT,tagPOINT) 453 CRect::CRect(tagPOINT,tagSIZE) 454 CRect::CRect() 455 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 456 CRectTracker::CRectTracker() 457 CResourceException::CResourceException(int,unsigned int) 458 CResourceException::CResourceException() 459 CRgn::CRgn() 460 CRichEditCtrl::CRichEditCtrl() 461 CScrollBar::CScrollBar() 462 CScrollView::CScrollView() 463 CSemaphore::CSemaphore(long,long,unsigned short const *,_SECURITY_ATTRIBUTES *) 464 CSharedFile::CSharedFile(unsigned int,unsigned int) 465 CSimpleException::CSimpleException(int) 466 CSimpleException::CSimpleException() 467 CSimpleList::CSimpleList(int) 468 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 469 CSingleLock::CSingleLock(CSyncObject *,int) 470 CSize::CSize(int,int) 471 CSize::CSize(unsigned long) 472 CSize::CSize(tagPOINT) 473 CSize::CSize(tagSIZE) 474 CSize::CSize() 475 CSliderCtrl::CSliderCtrl() 476 CSpinButtonCtrl::CSpinButtonCtrl() 477 CSplitterWnd::CSplitterWnd() 478 CStatic::CStatic() 479 CStatusBar::CStatusBar() 480 CStatusBarCtrl::CStatusBarCtrl() 481 CStatusCmdUI::CStatusCmdUI() 482 CStdioFile::CStdioFile(_iobuf *) 483 CStdioFile::CStdioFile(unsigned short const *,unsigned int) 484 CStdioFile::CStdioFile() 485 CString::CString(CString const &) 486 CString::CString(unsigned short,int) 487 CString::CString(char const *) 488 CString::CString(char const *,int) 489 CString::CString(unsigned char const *) 490 CString::CString(unsigned short const *) 491 CString::CString(unsigned short const *,int) 492 CString::CString() 493 CStringArray::CStringArray() 494 CStringList::CStringList(int) 495 CSyncObject::CSyncObject(unsigned short const *) 496 CTabCtrl::CTabCtrl() 497 CTempDC::CTempDC() 498 CTempGdiObject::CTempGdiObject() 499 CTempImageList::CTempImageList() 500 CTempMenu::CTempMenu() 501 CTempWnd::CTempWnd() 502 CTestCmdUI::CTestCmdUI() 503 CThreadData::CThreadData() 504 CThreadSlotData::CThreadSlotData() 505 CTime::CTime(_FILETIME const &,int) 506 CTime::CTime(_SYSTEMTIME const &,int) 507 CTime::CTime(CTime const &) 508 CTime::CTime(unsigned short,unsigned short,int) 509 CTime::CTime(int,int,int,int,int,int,int) 510 CTime::CTime(long) 511 CTime::CTime() 512 CTimeSpan::CTimeSpan(CTimeSpan const &) 513 CTimeSpan::CTimeSpan(long) 514 CTimeSpan::CTimeSpan(long,int,int,int) 515 CTimeSpan::CTimeSpan() 516 CToolBar::CToolBar() 517 CToolBarCtrl::CToolBarCtrl() 518 CToolCmdUI::CToolCmdUI() 519 CToolTipCtrl::CToolTipCtrl() 520 CTreeCtrl::CTreeCtrl() 521 CTreeView::CTreeView() 522 CTypeLibCache::CTypeLibCache() 523 CUIntArray::CUIntArray() 524 CUserException::CUserException(int,unsigned int) 525 CUserException::CUserException() 526 CView::CView() 527 CWaitCursor::CWaitCursor() 528 CWinApp::CWinApp(unsigned short const *) 529 CWindowDC::CWindowDC(CWnd *) 530 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 531 CWinThread::CWinThread() 532 CWnd::CWnd(HWND__ *) 533 CWnd::CWnd() 534 CWordArray::CWordArray() 535 ISequentialStream::ISequentialStream() 536 IStream::IStream() 537 CPreviewView::PAGE_INFO::PAGE_INFO() 538 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 539 CEmbeddedButActsLikePtr::~CEmbeddedButActsLikePtr() 540 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 541 _AFX_CTL3D_STATE::~_AFX_CTL3D_STATE() 542 _AFX_CTL3D_THREAD::~_AFX_CTL3D_THREAD() 543 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 544 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 545 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 546 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 547 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 548 _AFX_WIN_STATE::~_AFX_WIN_STATE() 549 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 550 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 551 AFX_MODULE_STATE::~AFX_MODULE_STATE() 552 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 553 CAnimateCtrl::~CAnimateCtrl() 554 CArchive::~CArchive() 555 CArchiveException::~CArchiveException() 556 CBitmap::~CBitmap() 557 CBitmapButton::~CBitmapButton() 558 CBrush::~CBrush() 559 CButton::~CButton() 560 CByteArray::~CByteArray() 561 CCheckListBox::~CCheckListBox() 562 CClientDC::~CClientDC() 563 CCmdTarget::~CCmdTarget() 564 CColorDialog::~CColorDialog() 565 CComboBox::~CComboBox() 566 CComboBoxEx::~CComboBoxEx() 567 CCommandLineInfo::~CCommandLineInfo() 568 CCommonDialog::~CCommonDialog() 569 CControlBar::~CControlBar() 570 CControlBarInfo::~CControlBarInfo() 571 CCriticalSection::~CCriticalSection() 572 CCtrlView::~CCtrlView() 573 CDC::~CDC() 574 CDialog::~CDialog() 575 CDialogBar::~CDialogBar() 576 CDialogTemplate::~CDialogTemplate() 577 CDockBar::~CDockBar() 578 CDockContext::~CDockContext() 579 CDockState::~CDockState() 580 CDocManager::~CDocManager() 581 CDocTemplate::~CDocTemplate() 582 CDocument::~CDocument() 583 CDragListBox::~CDragListBox() 584 CDWordArray::~CDWordArray() 585 CDynLinkLibrary::~CDynLinkLibrary() 586 CEdit::~CEdit() 587 CEditView::~CEditView() 588 CEvent::~CEvent() 589 CException::~CException() 590 CFile::~CFile() 591 CFileDialog::~CFileDialog() 592 CFileException::~CFileException() 593 CFileFind::~CFileFind() 594 CFindReplaceDialog::~CFindReplaceDialog() 595 CFixedAlloc::~CFixedAlloc() 596 CFont::~CFont() 597 CFontDialog::~CFontDialog() 598 CFormView::~CFormView() 599 CFrameWnd::~CFrameWnd() 600 CFtpConnection::~CFtpConnection() 601 CFtpFileFind::~CFtpFileFind() 602 CGdiObject::~CGdiObject() 603 CGopherConnection::~CGopherConnection() 604 CGopherFile::~CGopherFile() 605 CGopherFileFind::~CGopherFileFind() 606 CGopherLocator::~CGopherLocator() 607 CHandleMap::~CHandleMap() 608 CHeaderCtrl::~CHeaderCtrl() 609 CHotKeyCtrl::~CHotKeyCtrl() 610 CHttpConnection::~CHttpConnection() 611 CHttpFile::~CHttpFile() 612 CImageList::~CImageList() 613 CInternetConnection::~CInternetConnection() 614 CInternetException::~CInternetException() 615 CInternetFile::~CInternetFile() 616 CInternetSession::~CInternetSession() 617 CIPAddressCtrl::~CIPAddressCtrl() 618 CListBox::~CListBox() 619 CListCtrl::~CListCtrl() 620 CListView::~CListView() 621 CMapPtrToPtr::~CMapPtrToPtr() 622 CMapPtrToWord::~CMapPtrToWord() 623 CMapStringToOb::~CMapStringToOb() 624 CMapStringToPtr::~CMapStringToPtr() 625 CMapStringToString::~CMapStringToString() 626 CMapWordToOb::~CMapWordToOb() 627 CMapWordToPtr::~CMapWordToPtr() 628 CMDIChildWnd::~CMDIChildWnd() 629 CMDIFrameWnd::~CMDIFrameWnd() 630 CMemFile::~CMemFile() 631 CMemoryException::~CMemoryException() 632 CMenu::~CMenu() 633 CMetaFileDC::~CMetaFileDC() 634 CMiniDockFrameWnd::~CMiniDockFrameWnd() 635 CMiniFrameWnd::~CMiniFrameWnd() 636 CMirrorFile::~CMirrorFile() 637 CMultiDocTemplate::~CMultiDocTemplate() 638 CMultiLock::~CMultiLock() 639 CMutex::~CMutex() 640 CNoTrackObject::~CNoTrackObject() 641 CNotSupportedException::~CNotSupportedException() 642 CObArray::~CObArray() 643 CObject::~CObject() 644 CObList::~CObList() 645 CPageSetupDialog::~CPageSetupDialog() 646 CPaintDC::~CPaintDC() 647 CPalette::~CPalette() 648 CPen::~CPen() 649 CPreviewDC::~CPreviewDC() 650 CPreviewView::~CPreviewView() 651 CPrintDialog::~CPrintDialog() 652 CPrintInfo::~CPrintInfo() 653 CProcessLocalObject::~CProcessLocalObject() 654 CProgressCtrl::~CProgressCtrl() 655 CPropertyPage::~CPropertyPage() 656 CPropertyPageEx::~CPropertyPageEx() 657 CPropertySheet::~CPropertySheet() 658 CPropertySheetEx::~CPropertySheetEx() 659 CPtrArray::~CPtrArray() 660 CPtrList::~CPtrList() 661 CPushRoutingFrame::~CPushRoutingFrame() 662 CPushRoutingView::~CPushRoutingView() 663 CReBar::~CReBar() 664 CReBarCtrl::~CReBarCtrl() 665 CRecentFileList::~CRecentFileList() 666 CRectTracker::~CRectTracker() 667 CResourceException::~CResourceException() 668 CRgn::~CRgn() 669 CRichEditCtrl::~CRichEditCtrl() 670 CScrollBar::~CScrollBar() 671 CScrollView::~CScrollView() 672 CSemaphore::~CSemaphore() 673 CSharedFile::~CSharedFile() 674 CSimpleException::~CSimpleException() 675 CSingleDocTemplate::~CSingleDocTemplate() 676 CSingleLock::~CSingleLock() 677 CSliderCtrl::~CSliderCtrl() 678 CSpinButtonCtrl::~CSpinButtonCtrl() 679 CSplitterWnd::~CSplitterWnd() 680 CStatic::~CStatic() 681 CStatusBar::~CStatusBar() 682 CStatusBarCtrl::~CStatusBarCtrl() 683 CStdioFile::~CStdioFile() 684 CString::~CString() 685 CStringArray::~CStringArray() 686 CStringList::~CStringList() 687 CSyncObject::~CSyncObject() 688 CTabCtrl::~CTabCtrl() 689 CTempDC::~CTempDC() 690 CTempGdiObject::~CTempGdiObject() 691 CTempImageList::~CTempImageList() 692 CTempMenu::~CTempMenu() 693 CTempWnd::~CTempWnd() 694 CThreadData::~CThreadData() 695 CThreadLocalObject::~CThreadLocalObject() 696 CThreadSlotData::~CThreadSlotData() 697 CToolBar::~CToolBar() 698 CToolBarCtrl::~CToolBarCtrl() 699 CToolTipCtrl::~CToolTipCtrl() 700 CTreeCtrl::~CTreeCtrl() 701 CTreeView::~CTreeView() 702 CUIntArray::~CUIntArray() 703 CUserException::~CUserException() 704 CView::~CView() 705 CWaitCursor::~CWaitCursor() 706 CWinApp::~CWinApp() 707 CWindowDC::~CWindowDC() 708 CWinThread::~CWinThread() 709 CWnd::~CWnd() 710 CWordArray::~CWordArray() 711 void * operator new(unsigned int) 712 void * operator new(unsigned int,int,char const *,int) 713 void * operator new(unsigned int,void *) 714 void * operator new(unsigned int,char const *,int) 715 void * CNoTrackObject::operator new(unsigned int) 716 void * CNoTrackObject::operator new(unsigned int,char const *,int) 717 void * CObject::operator new(unsigned int) 718 void * CObject::operator new(unsigned int,void *) 719 void * CObject::operator new(unsigned int,char const *,int) 720 void * CThreadSlotData::operator new(unsigned int,void *) 721 void operator delete(void *) 722 void operator delete(void *,void *) 723 void operator delete(void *,char const *,int) 724 void CException::operator delete(void *) 725 void CException::operator delete(void *,char const *,int) 726 void CNoTrackObject::operator delete(void *) 727 void CNoTrackObject::operator delete(void *,char const *,int) 728 void CObject::operator delete(void *) 729 void CObject::operator delete(void *,void *) 730 void CObject::operator delete(void *,char const *,int) 731 void CArchive::operator=(CArchive const &) 732 void CDumpContext::operator=(CDumpContext const &) 733 void CRect::operator=(tagRECT const &) 734 CString const & CString::operator=(CString const &) 735 CString const & CString::operator=(char) 736 CString const & CString::operator=(unsigned short) 737 CString const & CString::operator=(char const *) 738 CString const & CString::operator=(unsigned char const *) 739 CString const & CString::operator=(unsigned short const *) 740 CTime const & CTime::operator=(CTime const &) 741 CTime const & CTime::operator=(long) 742 CTimeSpan const & CTimeSpan::operator=(CTimeSpan const &) 743 CArchive & operator>>(CArchive &,CByteArray * &) 744 CArchive & operator>>(CArchive &,CDockState * &) 745 CArchive & operator>>(CArchive &,CDWordArray * &) 746 CArchive & operator>>(CArchive &,CMapStringToOb * &) 747 CArchive & operator>>(CArchive &,CMapStringToString * &) 748 CArchive & operator>>(CArchive &,CMapWordToOb * &) 749 CArchive & operator>>(CArchive &,CObArray * &) 750 CArchive & operator>>(CArchive &,CObject * &) 751 CArchive & operator>>(CArchive &,CObList * &) 752 CArchive & operator>>(CArchive &,CStringArray * &) 753 CArchive & operator>>(CArchive &,CStringList * &) 754 CArchive & operator>>(CArchive &,CWordArray * &) 755 CArchive & operator>>(CArchive &,CObject const * &) 756 CArchive & operator>>(CArchive &,tagPOINT &) 757 CArchive & operator>>(CArchive &,tagRECT &) 758 CArchive & operator>>(CArchive &,tagSIZE &) 759 CArchive & operator>>(CArchive &,CString &) 760 CArchive & operator>>(CArchive &,CTime &) 761 CArchive & operator>>(CArchive &,CTimeSpan &) 762 CArchive & CArchive::operator>>(char &) 763 CArchive & CArchive::operator>>(unsigned char &) 764 CArchive & CArchive::operator>>(short &) 765 CArchive & CArchive::operator>>(unsigned short &) 766 CArchive & CArchive::operator>>(int &) 767 CArchive & CArchive::operator>>(unsigned int &) 768 CArchive & CArchive::operator>>(long &) 769 CArchive & CArchive::operator>>(unsigned long &) 770 CArchive & CArchive::operator>>(float &) 771 CArchive & CArchive::operator>>(double &) 772 CArchive & operator<<(CArchive &,tagRECT const &) 773 CArchive & operator<<(CArchive &,CString const &) 774 CArchive & operator<<(CArchive &,CObject const *) 775 CArchive & operator<<(CArchive &,tagPOINT) 776 CArchive & operator<<(CArchive &,tagSIZE) 777 CArchive & operator<<(CArchive &,CTime) 778 CArchive & operator<<(CArchive &,CTimeSpan) 779 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 780 CDumpContext & operator<<(CDumpContext &,CString const &) 781 CDumpContext & operator<<(CDumpContext &,tagPOINT) 782 CDumpContext & operator<<(CDumpContext &,tagSIZE) 783 CDumpContext & operator<<(CDumpContext &,CTime) 784 CDumpContext & operator<<(CDumpContext &,CTimeSpan) 785 CArchive & CArchive::operator<<(char) 786 CArchive & CArchive::operator<<(unsigned char) 787 CArchive & CArchive::operator<<(short) 788 CArchive & CArchive::operator<<(unsigned short) 789 CArchive & CArchive::operator<<(int) 790 CArchive & CArchive::operator<<(unsigned int) 791 CArchive & CArchive::operator<<(long) 792 CArchive & CArchive::operator<<(unsigned long) 793 CArchive & CArchive::operator<<(float) 794 CArchive & CArchive::operator<<(double) 795 CDumpContext & CDumpContext::operator<<(CObject const &) 796 CDumpContext & CDumpContext::operator<<(unsigned char) 797 CDumpContext & CDumpContext::operator<<(unsigned short) 798 CDumpContext & CDumpContext::operator<<(int) 799 CDumpContext & CDumpContext::operator<<(unsigned int) 800 CDumpContext & CDumpContext::operator<<(long) 801 CDumpContext & CDumpContext::operator<<(unsigned long) 802 CDumpContext & CDumpContext::operator<<(float) 803 CDumpContext & CDumpContext::operator<<(double) 804 CDumpContext & CDumpContext::operator<<(char const *) 805 CDumpContext & CDumpContext::operator<<(unsigned short const *) 806 CDumpContext & CDumpContext::operator<<(CObject const *) 807 CDumpContext & CDumpContext::operator<<(void const *) 808 int operator==(_GUID const &,_GUID const &) 809 bool operator==(CString const &,CString const &) 810 bool operator==(CString const &,unsigned short const *) 811 bool operator==(unsigned short const *,CString const &) 812 int CGdiObject::operator==(CGdiObject const &)const 813 int CMenu::operator==(CMenu const &)const 814 int CPoint::operator==(tagPOINT)const 815 int CRect::operator==(tagRECT const &)const 816 int CSize::operator==(tagSIZE)const 817 int CTime::operator==(CTime)const 818 int CTimeSpan::operator==(CTimeSpan)const 819 int CWnd::operator==(CWnd const &)const 820 bool operator!=(CString const &,CString const &) 821 bool operator!=(CString const &,unsigned short const *) 822 bool operator!=(unsigned short const *,CString const &) 823 int CGdiObject::operator!=(CGdiObject const &)const 824 int CMenu::operator!=(CMenu const &)const 825 int CPoint::operator!=(tagPOINT)const 826 int CRect::operator!=(tagRECT const &)const 827 int CSize::operator!=(tagSIZE)const 828 int CTime::operator!=(CTime)const 829 int CTimeSpan::operator!=(CTimeSpan)const 830 int CWnd::operator!=(CWnd const &)const 831 unsigned char & CByteArray::operator[](int) 832 unsigned char CByteArray::operator[](int)const 833 unsigned long & CDWordArray::operator[](int) 834 unsigned long CDWordArray::operator[](int)const 835 void * & CMapPtrToPtr::operator[](void *) 836 unsigned short & CMapPtrToWord::operator[](void *) 837 CObject * & CMapStringToOb::operator[](unsigned short const *) 838 void * & CMapStringToPtr::operator[](unsigned short const *) 839 CString & CMapStringToString::operator[](unsigned short const *) 840 CObject * & CMapWordToOb::operator[](unsigned short) 841 void * & CMapWordToPtr::operator[](unsigned short) 842 CObject * & CObArray::operator[](int) 843 CObject * CObArray::operator[](int)const 844 void * & CPtrArray::operator[](int) 845 void * CPtrArray::operator[](int)const 846 CString & CRecentFileList::operator[](int) 847 unsigned short CString::operator[](int)const 848 CString & CStringArray::operator[](int) 849 CString CStringArray::operator[](int)const 850 unsigned int & CUIntArray::operator[](int) 851 unsigned int CUIntArray::operator[](int)const 852 unsigned short & CWordArray::operator[](int) 853 unsigned short CWordArray::operator[](int)const 854 CEmbeddedButActsLikePtr::operator CPtrList *() 855 CTypedSimpleList::operator CRuntime*() 856 CTypedSimpleList::operator CThreadData *() 857 CTypedSimpleList::operator CDynLinkLibrary *() 858 CTypedSimpleList::operator CFrameWnd *() 859 CBitmap::operator HBITMAP__ *()const 860 CBrush::operator HBRUSH__ *()const 861 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 862 CDC::operator HDC__ *()const 863 CFile::operator int()const 864 CFont::operator HFONT__ *()const 865 CGdiObject::operator void *()const 866 CGopherLocator::operator unsigned short const *()const 867 CImageList::operator _IMAGELIST *()const 868 CInternetConnection::operator void *()const 869 CInternetFile::operator void *()const 870 CInternetSession::operator void *()const 871 CMenu::operator HMENU__ *()const 872 CPalette::operator HPALETTE__ *()const 873 CPen::operator HPEN__ *()const 874 CRect::operator tagRECT *() 875 CRect::operator tagRECT const *()const 876 CRgn::operator HRGN__ *()const 877 CString::operator unsigned short const *()const 878 CSyncObject::operator void *()const 879 CWinThread::operator void *()const 880 CWnd::operator HWND__ *()const 881 CPtrList * CEmbeddedButActsLikePtr::operator->() 882 CPoint CPoint::operator-(tagSIZE)const 883 CPoint CPoint::operator-()const 884 CRect CPoint::operator-(tagRECT const *)const 885 CSize CPoint::operator-(tagPOINT)const 886 CRect CRect::operator-(tagRECT const *)const 887 CRect CRect::operator-(tagPOINT)const 888 CRect CRect::operator-(tagSIZE)const 889 CSize CSize::operator-(tagSIZE)const 890 CSize CSize::operator-()const 891 CPoint CSize::operator-(tagPOINT)const 892 CRect CSize::operator-(tagRECT const *)const 893 CTime CTime::operator-(CTimeSpan)const 894 CTimeSpan CTime::operator-(CTime)const 895 CTimeSpan CTimeSpan::operator-(CTimeSpan)const 896 CString operator+(CString const &,CString const &) 897 CString operator+(CString const &,char) 898 CString operator+(CString const &,unsigned short) 899 CString operator+(CString const &,unsigned short const *) 900 CString operator+(char,CString const &) 901 CString operator+(unsigned short,CString const &) 902 CString operator+(unsigned short const *,CString const &) 903 CPoint CPoint::operator+(tagPOINT)const 904 CPoint CPoint::operator+(tagSIZE)const 905 CRect CPoint::operator+(tagRECT const *)const 906 CRect CRect::operator+(tagRECT const *)const 907 CRect CRect::operator+(tagPOINT)const 908 CRect CRect::operator+(tagSIZE)const 909 CSize CSize::operator+(tagSIZE)const 910 CPoint CSize::operator+(tagPOINT)const 911 CRect CSize::operator+(tagRECT const *)const 912 CTime CTime::operator+(CTimeSpan)const 913 CTimeSpan CTimeSpan::operator+(CTimeSpan)const 914 CRect CRect::operator&(tagRECT const &)const 915 bool operator<(CString const &,CString const &) 916 bool operator<(CString const &,unsigned short const *) 917 bool operator<(unsigned short const *,CString const &) 918 int CTime::operator<(CTime)const 919 int CTimeSpan::operator<(CTimeSpan)const 920 bool operator<=(CString const &,CString const &) 921 bool operator<=(CString const &,unsigned short const *) 922 bool operator<=(unsigned short const *,CString const &) 923 int CTime::operator<=(CTime)const 924 int CTimeSpan::operator<=(CTimeSpan)const 925 bool operator>(CString const &,CString const &) 926 bool operator>(CString const &,unsigned short const *) 927 bool operator>(unsigned short const *,CString const &) 928 int CTime::operator>(CTime)const 929 int CTimeSpan::operator>(CTimeSpan)const 930 bool operator>=(CString const &,CString const &) 931 bool operator>=(CString const &,unsigned short const *) 932 bool operator>=(unsigned short const *,CString const &) 933 int CTime::operator>=(CTime)const 934 int CTimeSpan::operator>=(CTimeSpan)const 935 CRect CRect::operator|(tagRECT const &)const 936 void CPoint::operator+=(tagPOINT) 937 void CPoint::operator+=(tagSIZE) 938 void CRect::operator+=(tagRECT const *) 939 void CRect::operator+=(tagPOINT) 940 void CRect::operator+=(tagSIZE) 941 void CSize::operator+=(tagSIZE) 942 CString const & CString::operator+=(CString const &) 943 CString const & CString::operator+=(char) 944 CString const & CString::operator+=(unsigned short) 945 CString const & CString::operator+=(unsigned short const *) 946 CTime const & CTime::operator+=(CTimeSpan) 947 CTimeSpan const & CTimeSpan::operator+=(CTimeSpan) 948 void CPoint::operator-=(tagPOINT) 949 void CPoint::operator-=(tagSIZE) 950 void CRect::operator-=(tagRECT const *) 951 void CRect::operator-=(tagPOINT) 952 void CRect::operator-=(tagSIZE) 953 void CSize::operator-=(tagSIZE) 954 CTime const & CTime::operator-=(CTimeSpan) 955 CTimeSpan const & CTimeSpan::operator-=(CTimeSpan) 956 int _AfxAbortProc(HDC__ *,int) 957 int _AfxDeleteRegKey(unsigned short const *) 958 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 959 int _mbstowcsz(unsigned short *,char const *,unsigned int) 960 int _wcstombsz(char *,unsigned short const *,unsigned int) 961 void CArchive::Abort() 962 void CFile::Abort() 963 void CInternetFile::Abort() 964 void CMemFile::Abort() 965 void CMirrorFile::Abort() 966 void CStdioFile::Abort() 967 int CDC::AbortDoc() 968 int CDC::AbortPath() 969 void CToolTipCtrl::Activate(int) 970 void CFrameWnd::ActivateFrame(int) 971 void CMDIChildWnd::ActivateFrame(int) 972 void CSplitterWnd::ActivateNext(int) 973 void CWnd::ActivateTopParent() 974 int CByteArray::Add(unsigned char) 975 int CDWordArray::Add(unsigned long) 976 int CImageList::Add(HICON__ *) 977 int CImageList::Add(CBitmap *,CBitmap *) 978 int CImageList::Add(CBitmap *,unsigned long) 979 int CObArray::Add(CObject *) 980 int CPtrArray::Add(void *) 981 void CRecentFileList::Add(unsigned short const *) 982 int CStringArray::Add(CString const &) 983 int CStringArray::Add(unsigned short const *) 984 int CUIntArray::Add(unsigned int) 985 int CWordArray::Add(unsigned short) 986 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,unsigned short const *,unsigned long) 987 int CReBar::AddBar(CWnd *,unsigned short const *,CBitmap *,unsigned long) 988 int CToolBarCtrl::AddBitmap(int,unsigned int) 989 int CToolBarCtrl::AddBitmap(int,CBitmap *) 990 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 991 void CFrameWnd::AddControlBar(CControlBar *) 992 void CDocManager::AddDocTemplate(CDocTemplate *) 993 void CWinApp::AddDocTemplate(CDocTemplate *) 994 void CDocTemplate::AddDocument(CDocument *) 995 void CMultiDocTemplate::AddDocument(CDocument *) 996 void CSingleDocTemplate::AddDocument(CDocument *) 997 void CFrameWnd::AddFrameWnd() 998 void CTypedSimpleList::AddHead(CRuntime*) 999 void CTypedSimpleList::AddHead(CThreadData *) 1000 void CTypedSimpleList::AddHead(CDynLinkLibrary *) 1001 void CTypedSimpleList::AddHead(CFrameWnd *) 1002 __POSITION * CObList::AddHead(CObject *) 1003 void CObList::AddHead(CObList *) 1004 __POSITION * CPtrList::AddHead(void *) 1005 void CPtrList::AddHead(CPtrList *) 1006 void CSimpleList::AddHead(void *) 1007 __POSITION * CStringList::AddHead(CString const &) 1008 __POSITION * CStringList::AddHead(unsigned short const *) 1009 void CStringList::AddHead(CStringList *) 1010 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1011 void CPropertySheet::AddPage(CPropertyPage *) 1012 void CPropertySheetEx::AddPage(CPropertyPageEx *) 1013 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1014 int CHttpFile::AddRequestHeaders(CString &,unsigned long) 1015 int CHttpFile::AddRequestHeaders(unsigned short const *,unsigned long,int) 1016 int CComboBox::AddString(unsigned short const *) 1017 int CComboBoxEx::AddString(unsigned short const *) 1018 int CListBox::AddString(unsigned short const *) 1019 int CToolBarCtrl::AddString(unsigned int) 1020 int CToolBarCtrl::AddStrings(unsigned short const *) 1021 __POSITION * CObList::AddTail(CObject *) 1022 void CObList::AddTail(CObList *) 1023 __POSITION * CPtrList::AddTail(void *) 1024 void CPtrList::AddTail(CPtrList *) 1025 __POSITION * CStringList::AddTail(CString const &) 1026 __POSITION * CStringList::AddTail(unsigned short const *) 1027 void CStringList::AddTail(CStringList *) 1028 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1029 int CToolTipCtrl::AddTool(CWnd *,unsigned short const *,tagRECT const *,unsigned int) 1030 void CWinApp::AddToRecentFileList(unsigned short const *) 1031 void CDocument::AddView(CView *) 1032 void CMetaFileDC::AdjustCP(int) 1033 void CRectTracker::AdjustRect(int,tagRECT *) 1034 void CTabCtrl::AdjustRect(int,tagRECT *) 1035 unsigned short * AfxA2WHelper(unsigned short *,char const *,int) 1036 void AfxAbort() 1037 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1038 int AfxAssertFailedLine(char const *,int) 1039 void AfxAssertValidObject(CObject const *,char const *,int) 1040 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1041 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1042 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1043 void AfxCancelModes(HWND__ *) 1044 int AfxCheckMemory() 1045 void AfxClassInit(CRuntime*) 1046 int AfxComparePath(unsigned short const *,unsigned short const *) 1047 void AfxCoreInitModule() 1048 HDC__ * AfxCreateDC(void *,void *) 1049 int AfxCriticalInit() 1050 int AfxCriticalNewHandler(unsigned int) 1051 void AfxCriticalTerm() 1052 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1053 AUX_DATA afxData 1054 void AfxDeleteObject(void * *) 1055 long AfxDelRegTreeHelper(HKEY__ *,CString const &) 1056 int AfxDiagnosticInit() 1057 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1058 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1059 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1060 CDumpContext afxDump 1061 void AfxDump(CObject const *) 1062 int AfxDumpMemoryLeaks() 1063 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1064 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1065 void AfxEditviewTerm() 1066 int AfxEnableMemoryTracking(int) 1067 void AfxEnableWin31Compatibility() 1068 void AfxEnableWin40Compatibility() 1069 int AfxEndDeferRegisterClass(long) 1070 void AfxEndThread(unsigned int,int) 1071 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1072 int AfxExtractSubString(CString &,unsigned short const *,int,unsigned short) 1073 void AfxFailMaxChars(CDataExchange *,int) 1074 void AfxFailRadio(CDataExchange *) 1075 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1076 HINSTANCE__ * AfxFindResourceHandle(unsigned short const *,unsigned short const *) 1077 void AfxFormatString1(CString &,unsigned int,unsigned short const *) 1078 void AfxFormatString2(CString &,unsigned int,unsigned short const *,unsigned short const *) 1079 void AfxFormatStrings(CString &,unsigned int,unsigned short const * const *,int) 1080 void AfxFormatStrings(CString &,unsigned short const *,unsigned short const * const *,int) 1081 int AfxFreeLibrary(HINSTANCE__ *) 1082 void AfxFreeMemoryDebug(void *,int) 1083 int AfxFullPath(unsigned short *,unsigned short const *) 1084 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1085 CWinApp * AfxGetApp() 1086 AFX_MODULE_STATE * AfxGetAppModuleState() 1087 unsigned short const * AfxGetAppName() 1088 _AFX_CTL3D_STATE * AfxGetCtl3dState() 1089 CString const & AfxGetEmptyString() 1090 AFX_EXCEPTION_CONTEXT * AfxGetExceptionContext() 1091 unsigned int AfxGetFileName(unsigned short const *,unsigned short *,unsigned int) 1092 unsigned int AfxGetFileTitle(unsigned short const *,unsigned short *,unsigned int) 1093 int AfxGetInProcServer(unsigned short const *,CString &) 1094 HINSTANCE__ * AfxGetInstanceHandle() 1095 unsigned long AfxGetInternetHandleType(void *) 1096 CWnd * AfxGetMainWnd() 1097 void AfxGetModuleShortFileName(HINSTANCE__ *,CString &) 1098 AFX_MODULE_STATE * AfxGetModuleState() 1099 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1100 int (__cdecl*AfxGetNewHandler())(unsigned int) 1101 HWND__ * AfxGetParentOwner(HWND__ *) 1102 int AfxGetPropSheetFont(CString &,unsigned short &,int) 1103 HINSTANCE__ * AfxGetResourceHandle() 1104 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1105 void AfxGetRoot(unsigned short const *,CString &) 1106 CWinThread * AfxGetThread() 1107 _AFX_THREAD_STATE * AfxGetThreadState() 1108 void AfxGlobalFree(void *) 1109 int AfxHelpEnabled() 1110 void AfxHookWindowCreate(CWnd *) 1111 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1112 void AfxInitLocalData(HINSTANCE__ *) 1113 int AfxInitRichEdit() 1114 void AfxInitThread() 1115 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1116 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1117 int AfxIsDescendant(HWND__ *,HWND__ *) 1118 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1119 int AfxIsValidAddress(void const *,unsigned int,int) 1120 int AfxIsValidString(char const *,int) 1121 int AfxIsValidString(unsigned short const *,int) 1122 HINSTANCE__ * AfxLoadLibrary(unsigned short const *) 1123 int AfxLoadString(unsigned int,unsigned short *,unsigned int) 1124 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1125 void AfxLockGlobals(int) 1126 void AfxLockTempMaps() 1127 CHandleMap * afxMapHDC(int) 1128 CHandleMap * afxMapHGDIOBJ(int) 1129 CHandleMap * afxMapHIMAGELIST(int) 1130 CHandleMap * afxMapHMENU(int) 1131 CHandleMap * afxMapHWND(int) 1132 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1133 int AfxMessageBox(unsigned short const *,unsigned int,unsigned int) 1134 int AfxNewHandler(unsigned int) 1135 int AfxOleCanExitApp() 1136 COleMessageFilter * AfxOleGetMessageFilter() 1137 int AfxOleGetUserCtrl() 1138 void AfxOleLockApp() 1139 void AfxOleOnReleaseAllObjects() 1140 void AfxOleSetUserCtrl(int) 1141 void AfxOleUnlockApp() 1142 int AfxParseURL(unsigned short const *,unsigned long &,CString &,CString &,unsigned short &) 1143 int AfxParseURLEx(unsigned short const *,unsigned long &,CString &,CString &,unsigned short &,CString &,CString &,unsigned long) 1144 void AfxPostQuitMessage(int) 1145 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1146 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1147 int AfxRegisterClass(tagWNDCLASSW *) 1148 unsigned short const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1149 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1150 void AfxResetMsgCache() 1151 int AfxResolveShortcut(CWnd *,unsigned short const *,unsigned short *,int) 1152 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1153 void AfxSetAllocStop(long) 1154 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1155 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1156 void AfxSetResourceHandle(HINSTANCE__ *) 1157 void AfxSetWindowText(HWND__ *,unsigned short const *) 1158 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1159 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1160 CString AfxStringFromCLSID(_GUID const &) 1161 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1162 void AfxTermLocalData(HINSTANCE__ *,int) 1163 void AfxTermThread(HINSTANCE__ *) 1164 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1165 void AfxThrowArchiveException(int,unsigned short const *) 1166 void AfxThrowFileException(int,long,unsigned short const *) 1167 void AfxThrowInternetException(unsigned long,unsigned long) 1168 void AfxThrowLastCleanup() 1169 void AfxThrowMemoryException() 1170 void AfxThrowNotSupportedException() 1171 void AfxThrowResourceException() 1172 void AfxThrowUserException() 1173 void AfxTimeToFileTime(CTime const &,_FILETIME *) 1174 void AfxTlsAddRef() 1175 void AfxTlsRelease() 1176 void AfxTrace(unsigned short const *,...) 1177 int afxTraceEnabled 1178 unsigned int afxTraceFlags 1179 void AfxTrackerTerm() 1180 void AfxTryCleanup() 1181 int AfxUnhookWindowCreate() 1182 void AfxUnlockGlobals(int) 1183 int AfxUnlockTempMaps(int) 1184 char * AfxW2AHelper(char *,unsigned short const *,int) 1185 void AfxWingdixTerm() 1186 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,unsigned short *,int) 1187 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,unsigned short *,int) 1188 void AfxWinTerm() 1189 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1190 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1191 void * CFixedAlloc::Alloc() 1192 unsigned char * CMemFile::Alloc(unsigned long) 1193 unsigned char * CSharedFile::Alloc(unsigned long) 1194 void CString::AllocBeforeWrite(int) 1195 void CString::AllocBuffer(int) 1196 void CString::AllocCopy(CString &,int,int,int)const 1197 int CControlBar::AllocElements(int,int) 1198 int CStatusBar::AllocElements(int,int) 1199 int CThreadSlotData::AllocSlot() 1200 int CDC::AngleArc(int,int,int,float,float) 1201 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1202 int CByteArray::Append(CByteArray const &) 1203 int CDWordArray::Append(CDWordArray const &) 1204 int CObArray::Append(CObArray const &) 1205 int CPtrArray::Append(CPtrArray const &) 1206 int CStringArray::Append(CStringArray const &) 1207 int CUIntArray::Append(CUIntArray const &) 1208 int CWordArray::Append(CWordArray const &) 1209 int CMenu::AppendMenuW(unsigned int,unsigned int,unsigned short const *) 1210 int CMenu::AppendMenuW(unsigned int,unsigned int,CBitmap const *) 1211 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1212 int CDC::Arc(int,int,int,int,int,int,int,int) 1213 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1214 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1215 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1216 int CListCtrl::Arrange(unsigned int) 1217 unsigned int CWnd::ArrangeIconicWindows() 1218 void CBitmapButton::AssertValid()const 1219 void CByteArray::AssertValid()const 1220 void CClientDC::AssertValid()const 1221 void CCmdTarget::AssertValid()const 1222 void CControlBar::AssertValid()const 1223 void CCtrlView::AssertValid()const 1224 void CDC::AssertValid()const 1225 void CDialog::AssertValid()const 1226 void CDockBar::AssertValid()const 1227 void CDocManager::AssertValid()const 1228 void CDocTemplate::AssertValid()const 1229 void CDocument::AssertValid()const 1230 void CDWordArray::AssertValid()const 1231 void CDynLinkLibrary::AssertValid()const 1232 void CEditView::AssertValid()const 1233 void CFile::AssertValid()const 1234 void CFileFind::AssertValid()const 1235 void CFormView::AssertValid()const 1236 void CFrameWnd::AssertValid()const 1237 void CFtpConnection::AssertValid()const 1238 void CFtpFileFind::AssertValid()const 1239 void CGdiObject::AssertValid()const 1240 void CGopherConnection::AssertValid()const 1241 void CGopherFile::AssertValid()const 1242 void CGopherFileFind::AssertValid()const 1243 void CHttpConnection::AssertValid()const 1244 void CHttpFile::AssertValid()const 1245 void CImageList::AssertValid()const 1246 void CInternetConnection::AssertValid()const 1247 void CInternetFile::AssertValid()const 1248 void CMapPtrToPtr::AssertValid()const 1249 void CMapPtrToWord::AssertValid()const 1250 void CMapStringToOb::AssertValid()const 1251 void CMapStringToPtr::AssertValid()const 1252 void CMapStringToString::AssertValid()const 1253 void CMapWordToOb::AssertValid()const 1254 void CMapWordToPtr::AssertValid()const 1255 void CMDIChildWnd::AssertValid()const 1256 void CMDIFrameWnd::AssertValid()const 1257 void CMemFile::AssertValid()const 1258 void CMenu::AssertValid()const 1259 void CMultiDocTemplate::AssertValid()const 1260 void CObArray::AssertValid()const 1261 void CObject::AssertValid()const 1262 void CObList::AssertValid()const 1263 void CPaintDC::AssertValid()const 1264 void CPreviewDC::AssertValid()const 1265 void CPreviewView::AssertValid()const 1266 void CPropertyPage::AssertValid()const 1267 void CPropertyPageEx::AssertValid()const 1268 void CPropertySheet::AssertValid()const 1269 void CPropertySheetEx::AssertValid()const 1270 void CPtrArray::AssertValid()const 1271 void CPtrList::AssertValid()const 1272 void CScrollView::AssertValid()const 1273 void CSingleDocTemplate::AssertValid()const 1274 void CSplitterWnd::AssertValid()const 1275 void CStatusBar::AssertValid()const 1276 void CStringArray::AssertValid()const 1277 void CStringList::AssertValid()const 1278 void CSyncObject::AssertValid()const 1279 void CToolBar::AssertValid()const 1280 void CUIntArray::AssertValid()const 1281 void CView::AssertValid()const 1282 void CWinApp::AssertValid()const 1283 void CWindowDC::AssertValid()const 1284 void CWinThread::AssertValid()const 1285 void CWnd::AssertValid()const 1286 void CWordArray::AssertValid()const 1287 void CString::AssignCopy(int,unsigned short const *) 1288 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1289 unsigned short * AtlA2WHelper(unsigned short *,char const *,int) 1290 unsigned short * AtlA2WHelper(unsigned short *,char const *,int,unsigned int) 1291 char * AtlW2AHelper(char *,unsigned short const *,int) 1292 char * AtlW2AHelper(char *,unsigned short const *,int,unsigned int) 1293 int CDC::Attach(HDC__ *) 1294 int CGdiObject::Attach(void *) 1295 int CImageList::Attach(_IMAGELIST *) 1296 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1297 int CMenu::Attach(HMENU__ *) 1298 int CWnd::Attach(HWND__ *) 1299 void COleControlContainer::AttachControlSite(CWnd *) 1300 void CWnd::AttachControlSite(CHandleMap *) 1301 void CWnd::AttachControlSite(CWnd *) 1302 CPrintDialog * CPrintDialog::AttachOnSetup() 1303 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1304 void CToolBarCtrl::AutoSize() 1305 int CDragListBox::BeginDrag(CPoint) 1306 int CImageList::BeginDrag(int,CPoint) 1307 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1308 void CFrameWnd::BeginModalState() 1309 void CWnd::BeginModalState() 1310 CDC * CWnd::BeginPaint(tagPAINT*) 1311 int CDC::BeginPath() 1312 void CCmdTarget::BeginWaitCursor() 1313 void CWnd::BindDefaultProperty(long,unsigned short,unsigned short const *,CWnd *) 1314 void CWnd::BindProperty(long,CWnd *) 1315 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1316 CPoint & CRect::BottomRight() 1317 CPoint const & CRect::BottomRight()const 1318 void CFrameWnd::BringToTop(int) 1319 void CWnd::BringWindowToTop() 1320 void CPropertySheet::BuildPropPageArray() 1321 void CPropertySheetEx::BuildPropPageArray() 1322 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1323 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1324 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1325 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1326 CSize CControlBar::CalcFixedLayout(int,int) 1327 CSize CDialogBar::CalcFixedLayout(int,int) 1328 CSize CDockBar::CalcFixedLayout(int,int) 1329 CSize CReBar::CalcFixedLayout(int,int) 1330 CSize CStatusBar::CalcFixedLayout(int,int) 1331 CSize CToolBar::CalcFixedLayout(int,int) 1332 void CControlBar::CalcInsideRect(CRect &,int)const 1333 void CStatusBar::CalcInsideRect(CRect &,int)const 1334 CSize CToolBar::CalcLayout(unsigned long,int) 1335 int CCheckListBox::CalcMinimumItemHeight() 1336 CSize CPreviewView::CalcPageDisplaySize() 1337 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1338 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1339 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1340 void CMiniFrameWnd::CalcWindowRect(tagRECT *,unsigned int) 1341 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1342 void CView::CalcWindowRect(tagRECT *,unsigned int) 1343 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1344 int CSplitterWnd::CanActivateNext(int) 1345 void CDragListBox::CancelDrag(CPoint) 1346 void CDockContext::CancelLoop() 1347 void CPropertyPage::CancelToClose() 1348 void CWnd::CancelToolTips(int) 1349 int CDocument::CanCloseFrame(CFrameWnd *) 1350 unsigned long CDockContext::CanDock() 1351 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1352 int CFrameWnd::CanEnterHelpMode() 1353 int CRichEditCtrl::CanPaste(unsigned int)const 1354 int CEdit::CanUndo()const 1355 int CRichEditCtrl::CanUndo()const 1356 void CScrollView::CenterOnPoint(CPoint) 1357 CPoint CRect::CenterPoint()const 1358 void CWnd::CenterWindow(CWnd *) 1359 int CWnd::ChangeClipboardChain(HWND__ *) 1360 int CEdit::CharFromPos(CPoint)const 1361 int CListBox::CharToItem(unsigned int,unsigned int) 1362 int CDialog::CheckAutoCenter() 1363 int CWnd::CheckAutoCenter() 1364 int CToolBarCtrl::CheckButton(int,int) 1365 void CArchive::CheckCount() 1366 void CWnd::CheckDlgButton(int,unsigned int) 1367 int CCheckListBox::CheckFromPoint(CPoint,int &) 1368 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1369 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1370 void CMemoryState::Checkpoint() 1371 void CWnd::CheckRadioButton(int,int,int) 1372 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1373 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1374 int CDC::Chord(int,int,int,int,int,int,int,int) 1375 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1376 CRuntimeconst CAnimateCtrl::classCAnimateCtrl 1377 CRuntimeconst CArchiveException::classCArchiveException 1378 CRuntimeconst CBitmap::classCBitmap 1379 CRuntimeconst CBitmapButton::classCBitmapButton 1380 CRuntimeconst CBrush::classCBrush 1381 CRuntimeconst CButton::classCButton 1382 CRuntimeCByteArray::classCByteArray 1383 CRuntimeconst CCheckListBox::classCCheckListBox 1384 CRuntimeconst CClientDC::classCClientDC 1385 CRuntimeconst CCmdTarget::classCCmdTarget 1386 CRuntimeconst CColorDialog::classCColorDialog 1387 CRuntimeconst CComboBox::classCComboBox 1388 CRuntimeconst CComboBoxEx::classCComboBoxEx 1389 CRuntimeconst CControlBar::classCControlBar 1390 CRuntimeconst CCriticalSection::classCCriticalSection 1391 CRuntimeconst CCtrlView::classCCtrlView 1392 CRuntimeconst CDC::classCDC 1393 CRuntimeconst CDialog::classCDialog 1394 CRuntimeconst CDialogBar::classCDialogBar 1395 CRuntimeconst CDockBar::classCDockBar 1396 CRuntimeCDockState::classCDockState 1397 CRuntimeconst CDocManager::classCDocManager 1398 CRuntimeconst CDocTemplate::classCDocTemplate 1399 CRuntimeconst CDocument::classCDocument 1400 CRuntimeconst CDragListBox::classCDragListBox 1401 CRuntimeCDWordArray::classCDWordArray 1402 CRuntimeconst CDynLinkLibrary::classCDynLinkLibrary 1403 CRuntimeconst CEdit::classCEdit 1404 CRuntimeconst CEditView::classCEditView 1405 CRuntimeconst CEvent::classCEvent 1406 CRuntimeconst CException::classCException 1407 CRuntimeconst CFile::classCFile 1408 CRuntimeconst CFileDialog::classCFileDialog 1409 CRuntimeconst CFileException::classCFileException 1410 CRuntimeconst CFileFind::classCFileFind 1411 CRuntimeconst CFindReplaceDialog::classCFindReplaceDialog 1412 CRuntimeconst CFont::classCFont 1413 CRuntimeconst CFontDialog::classCFontDialog 1414 CRuntimeconst CFormView::classCFormView 1415 CRuntimeconst CFrameWnd::classCFrameWnd 1416 CRuntimeconst CGdiObject::classCGdiObject 1417 CRuntimeconst CHeaderCtrl::classCHeaderCtrl 1418 CRuntimeconst CHotKeyCtrl::classCHotKeyCtrl 1419 CRuntimeconst CImageList::classCImageList 1420 CRuntimeconst CInternetException::classCInternetException 1421 CRuntimeconst CIPAddressCtrl::classCIPAddressCtrl 1422 CRuntimeconst CListBox::classCListBox 1423 CRuntimeconst CListCtrl::classCListCtrl 1424 CRuntimeconst CListView::classCListView 1425 CRuntimeconst CMapPtrToPtr::classCMapPtrToPtr 1426 CRuntimeconst CMapPtrToWord::classCMapPtrToWord 1427 CRuntimeCMapStringToOb::classCMapStringToOb 1428 CRuntimeconst CMapStringToPtr::classCMapStringToPtr 1429 CRuntimeCMapStringToString::classCMapStringToString 1430 CRuntimeCMapWordToOb::classCMapWordToOb 1431 CRuntimeconst CMapWordToPtr::classCMapWordToPtr 1432 CRuntimeconst CMDIChildWnd::classCMDIChildWnd 1433 CRuntimeconst CMDIFrameWnd::classCMDIFrameWnd 1434 CRuntimeconst CMemFile::classCMemFile 1435 CRuntimeconst CMemoryException::classCMemoryException 1436 CRuntimeconst CMenu::classCMenu 1437 CRuntimeconst CMetaFileDC::classCMetaFileDC 1438 CRuntimeconst CMiniDockFrameWnd::classCMiniDockFrameWnd 1439 CRuntimeconst CMiniFrameWnd::classCMiniFrameWnd 1440 CRuntimeconst CMultiDocTemplate::classCMultiDocTemplate 1441 CRuntimeconst CMutex::classCMutex 1442 CRuntimeconst CNotSupportedException::classCNotSupportedException 1443 CRuntimeCObArray::classCObArray 1444 CRuntimeconst CObject::classCObject 1445 CRuntimeCObList::classCObList 1446 CRuntimeconst CPageSetupDialog::classCPageSetupDialog 1447 CRuntimeconst CPaintDC::classCPaintDC 1448 CRuntimeconst CPalette::classCPalette 1449 CRuntimeconst CPen::classCPen 1450 CRuntimeconst CPreviewDC::classCPreviewDC 1451 CRuntimeconst CPreviewView::classCPreviewView 1452 CRuntimeconst CPrintDialog::classCPrintDialog 1453 CRuntimeconst CProgressCtrl::classCProgressCtrl 1454 CRuntimeconst CPropertyPage::classCPropertyPage 1455 CRuntimeconst CPropertyPageEx::classCPropertyPageEx 1456 CRuntimeconst CPropertySheet::classCPropertySheet 1457 CRuntimeconst CPropertySheetEx::classCPropertySheetEx 1458 CRuntimeconst CPtrArray::classCPtrArray 1459 CRuntimeconst CPtrList::classCPtrList 1460 CRuntimeconst CReBar::classCReBar 1461 CRuntimeconst CReBarCtrl::classCReBarCtrl 1462 CRuntimeconst CResourceException::classCResourceException 1463 CRuntimeconst CRgn::classCRgn 1464 CRuntimeconst CRichEditCtrl::classCRichEditCtrl 1465 CRuntimeconst CScrollBar::classCScrollBar 1466 CRuntimeconst CScrollView::classCScrollView 1467 CRuntimeconst CSemaphore::classCSemaphore 1468 CRuntimeconst CSharedFile::classCSharedFile 1469 CRuntimeconst CSingleDocTemplate::classCSingleDocTemplate 1470 CRuntimeconst CSliderCtrl::classCSliderCtrl 1471 CRuntimeconst CSpinButtonCtrl::classCSpinButtonCtrl 1472 CRuntimeconst CSplitterWnd::classCSplitterWnd 1473 CRuntimeconst CStatic::classCStatic 1474 CRuntimeconst CStatusBar::classCStatusBar 1475 CRuntimeconst CStatusBarCtrl::classCStatusBarCtrl 1476 CRuntimeconst CStdioFile::classCStdioFile 1477 CRuntimeCStringArray::classCStringArray 1478 CRuntimeCStringList::classCStringList 1479 CRuntimeconst CSyncObject::classCSyncObject 1480 CRuntimeconst CTabCtrl::classCTabCtrl 1481 CRuntimeconst CToolBar::classCToolBar 1482 CRuntimeconst CToolBarCtrl::classCToolBarCtrl 1483 CRuntimeconst CToolTipCtrl::classCToolTipCtrl 1484 CRuntimeconst CTreeCtrl::classCTreeCtrl 1485 CRuntimeconst CTreeView::classCTreeView 1486 CRuntimeconst CUIntArray::classCUIntArray 1487 CRuntimeconst CUserException::classCUserException 1488 CRuntimeconst CView::classCView 1489 CRuntimeconst CWinApp::classCWinApp 1490 CRuntimeconst CWindowDC::classCWindowDC 1491 CRuntimeconst CWinThread::classCWinThread 1492 CRuntimeconst CWnd::classCWnd 1493 CRuntimeCWordArray::classCWordArray 1494 void CPropertyPage::Cleanup() 1495 void CComboBox::Clear() 1496 void CDockState::Clear() 1497 void CEdit::Clear() 1498 void CRichEditCtrl::Clear() 1499 void CIPAddressCtrl::ClearAddress() 1500 void CSliderCtrl::ClearSel(int) 1501 void CSliderCtrl::ClearTics(int) 1502 void CWnd::ClientToScreen(tagPOINT *)const 1503 void CWnd::ClientToScreen(tagRECT *)const 1504 void CPreviewDC::ClipToPage() 1505 long CArchiveStream::Clone(IStream * *) 1506 int CAnimateCtrl::Close() 1507 void CArchive::Close() 1508 void CFile::Close() 1509 void CFileFind::Close() 1510 void CFtpConnection::Close() 1511 void CGopherConnection::Close() 1512 void CGopherFile::Close() 1513 void CHttpConnection::Close() 1514 void CHttpFile::Close() 1515 void CInternetConnection::Close() 1516 void CInternetFile::Close() 1517 void CInternetSession::Close() 1518 void CMemFile::Close() 1519 HMETAFILE__ * CMetaFileDC::Close() 1520 void CMirrorFile::Close() 1521 void CStdioFile::Close() 1522 void CDocManager::CloseAllDocuments(int) 1523 void CDocTemplate::CloseAllDocuments(int) 1524 void CWinApp::CloseAllDocuments(int) 1525 void CFileFind::CloseContext() 1526 void CFtpFileFind::CloseContext() 1527 void CGopherFileFind::CloseContext() 1528 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 1529 int CDC::CloseFigure() 1530 void CWnd::CloseWindow() 1531 int CString::Collate(unsigned short const *)const 1532 int CString::CollateNoCase(unsigned short const *)const 1533 int CRgn::CombineRgn(CRgn *,CRgn *,int) 1534 AFX_OLECMDMAP const CCmdTarget::commandMap 1535 int CStatusBar::CommandToIndex(unsigned int)const 1536 int CToolBar::CommandToIndex(unsigned int)const 1537 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 1538 long CArchiveStream::Commit(unsigned long) 1539 void CPropertyPage::CommonConstruct(unsigned short const *,unsigned int) 1540 void CPropertyPageEx::CommonConstruct(unsigned short const *,unsigned int,unsigned int,unsigned int) 1541 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1542 void CPropertySheetEx::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1543 void CWinThread::CommonConstruct() 1544 int CString::Compare(unsigned short const *)const 1545 int CComboBox::CompareItem(tagCOMPAREITEM*) 1546 int CListBox::CompareItem(tagCOMPAREITEM*) 1547 int CString::CompareNoCase(unsigned short const *)const 1548 CSize CPreviewDC::ComputeDeltas(int &,unsigned short const *,unsigned int &,int,unsigned int,int *,int,unsigned short *,int *,int &) 1549 void CString::ConcatCopy(int,unsigned short const *,int,unsigned short const *) 1550 void CString::ConcatInPlace(int,unsigned short const *) 1551 AFX_CONNECTIONMAP const CCmdTarget::connectionMap 1552 void CPropertyPage::Construct(unsigned int,unsigned int) 1553 void CPropertyPage::Construct(unsigned short const *,unsigned int) 1554 void CPropertyPageEx::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1555 void CPropertyPageEx::Construct(unsigned short const *,unsigned int,unsigned int,unsigned int) 1556 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1557 void CPropertySheet::Construct(unsigned short const *,CWnd *,unsigned int) 1558 void CPropertySheetEx::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1559 void CPropertySheetEx::Construct(unsigned short const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1560 void CRectTracker::Construct() 1561 void CSimpleList::Construct(int) 1562 void ConstructElements(CString *,int) 1563 int CPropertySheet::ContinueModal() 1564 int CWnd::ContinueModal() 1565 void CCmdUI::ContinueRouting() 1566 void CByteArray::Copy(CByteArray const &) 1567 void CComboBox::Copy() 1568 void CDWordArray::Copy(CDWordArray const &) 1569 void CEdit::Copy() 1570 int CImageList::Copy(int,int,unsigned int) 1571 int CImageList::Copy(int,CImageList *,int,unsigned int) 1572 void CObArray::Copy(CObArray const &) 1573 void CPtrArray::Copy(CPtrArray const &) 1574 void CRichEditCtrl::Copy() 1575 void CStringArray::Copy(CStringArray const &) 1576 void CUIntArray::Copy(CUIntArray const &) 1577 void CWordArray::Copy(CWordArray const &) 1578 void CString::CopyBeforeWrite() 1579 void CopyElements(CString *,CString const *,int) 1580 void CRect::CopyRect(tagRECT const *) 1581 int CRgn::CopyRgn(CRgn *) 1582 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1583 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1584 int CButton::Create(unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1585 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1586 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1587 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1588 int CDialog::Create(unsigned int,CWnd *) 1589 int CDialog::Create(unsigned short const *,CWnd *) 1590 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 1591 int CDialogBar::Create(CWnd *,unsigned short const *,unsigned int,unsigned int) 1592 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1593 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1594 int CFindReplaceDialog::Create(int,unsigned short const *,unsigned short const *,unsigned long,CWnd *) 1595 int CFormView::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1596 int CFrameWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned short const *,unsigned long,CCreateContext *) 1597 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1598 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1599 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1600 int CImageList::Create(int,int,unsigned int,int,int) 1601 int CImageList::Create(unsigned int,int,int,unsigned long) 1602 int CImageList::Create(CImageList *) 1603 int CImageList::Create(unsigned short const *,int,int,unsigned long) 1604 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1605 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1606 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1607 int CMDIChildWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1608 int CMetaFileDC::Create(unsigned short const *) 1609 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1610 int CMiniFrameWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1611 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1612 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1613 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1614 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1615 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1616 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1617 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1618 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1619 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1620 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1621 int CStatic::Create(unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1622 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1623 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1624 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1625 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1626 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1627 int CToolTipCtrl::Create(CWnd *,unsigned long) 1628 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1629 int CWnd::Create(unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1630 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 1631 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 1632 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 1633 void CWnd::CreateCaret(CBitmap *) 1634 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 1635 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1636 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 1637 int CDC::CreateCompatibleDC(CDC *) 1638 int CDC::CreateDCW(unsigned short const *,unsigned short const *,unsigned short const *,void const *) 1639 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1640 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 1641 int CFtpConnection::CreateDirectoryW(unsigned short const *) 1642 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 1643 int CWnd::CreateDlg(unsigned short const *,CWnd *) 1644 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 1645 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1646 CImageList * CHeaderCtrl::CreateDragImage(int) 1647 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1648 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1649 int CRgn::CreateEllipticRgn(int,int,int,int) 1650 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 1651 int CMetaFileDC::CreateEnhanced(CDC *,unsigned short const *,tagRECT const *,unsigned short const *) 1652 int CMiniFrameWnd::CreateEx(unsigned long,unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1653 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1654 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1655 int CWnd::CreateEx(unsigned long,unsigned short const *,unsigned short const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1656 int CWnd::CreateEx(unsigned long,unsigned short const *,unsigned short const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1657 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1658 int CFont::CreateFontIndirectW(tagLOGFONTW const *) 1659 int CFont::CreateFontW(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned short const *) 1660 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 1661 int CRgn::CreateFromPath(CDC *) 1662 void CWnd::CreateGrayCaret(int,int) 1663 int CPalette::CreateHalftonePalette(CDC *) 1664 int CBrush::CreateHatchBrush(int,unsigned long) 1665 int CDC::CreateICW(unsigned short const *,unsigned short const *,unsigned short const *,void const *) 1666 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1667 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1668 int CDialog::CreateIndirect(void *,CWnd *) 1669 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1670 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1671 CGopherLocator CGopherConnection::CreateLocator(unsigned short const *,unsigned short const *,unsigned long) 1672 CGopherLocator CGopherConnection::CreateLocator(unsigned short const *) 1673 CGopherLocator CGopherConnection::CreateLocator(unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short) 1674 int CMenu::CreateMenu() 1675 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1676 CDocument * CDocTemplate::CreateNewDocument() 1677 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1678 CObject * CByteArray::CreateObject() 1679 CObject * CDC::CreateObject() 1680 CObject * CDockState::CreateObject() 1681 CObject * CDWordArray::CreateObject() 1682 CObject * CEditView::CreateObject() 1683 CObject * CFrameWnd::CreateObject() 1684 CObject * CGdiObject::CreateObject() 1685 CObject * CImageList::CreateObject() 1686 CObject * CListView::CreateObject() 1687 CObject * CMapStringToOb::CreateObject() 1688 CObject * CMapStringToString::CreateObject() 1689 CObject * CMapWordToOb::CreateObject() 1690 CObject * CMDIChildWnd::CreateObject() 1691 CObject * CMDIFrameWnd::CreateObject() 1692 CObject * CMenu::CreateObject() 1693 CObject * CMiniDockFrameWnd::CreateObject() 1694 CObject * CMiniFrameWnd::CreateObject() 1695 CObject * CObArray::CreateObject() 1696 CObject * CObList::CreateObject() 1697 CObject * CPreviewView::CreateObject() 1698 CObject * CRuntimeClass::CreateObject() 1699 CObject * CStringArray::CreateObject() 1700 CObject * CStringList::CreateObject() 1701 CObject * CTempDC::CreateObject() 1702 CObject * CTempGdiObject::CreateObject() 1703 CObject * CTempImageList::CreateObject() 1704 CObject * CTempMenu::CreateObject() 1705 CObject * CTempWnd::CreateObject() 1706 CObject * CTreeView::CreateObject() 1707 CObject * CWnd::CreateObject() 1708 CObject * CWordArray::CreateObject() 1709 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1710 int CPalette::CreatePalette(tagLOGPALETTE *) 1711 int CBrush::CreatePatternBrush(CBitmap *) 1712 int CPen::CreatePen(int,int,unsigned long) 1713 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 1714 int CPen::CreatePenIndirect(tagLOGPEN *) 1715 int CFont::CreatePointFont(int,unsigned short const *,CDC *) 1716 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 1717 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 1718 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 1719 int CMenu::CreatePopupMenu() 1720 HDC__ * CPageSetupDialog::CreatePrinterDC() 1721 HDC__ * CPrintDialog::CreatePrinterDC() 1722 int CWinApp::CreatePrinterDC(CDC &) 1723 int CRgn::CreateRectRgn(int,int,int,int) 1724 int CRgn::CreateRectRgnIndirect(tagRECT const *) 1725 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 1726 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1727 int CBrush::CreateSolidBrush(unsigned long) 1728 void CWnd::CreateSolidCaret(int,int) 1729 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1730 int CGdiObject::CreateStockObject(int) 1731 int CBrush::CreateSysColorBrush(int) 1732 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1733 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1734 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1735 void CToolBarCtrl::Customize() 1736 void CComboBox::Cut() 1737 void CEdit::Cut() 1738 void CRichEditCtrl::Cut() 1739 void * CPlex::data() 1740 unsigned short * CStringData::data() 1741 void DDV_MaxChars(CDataExchange *,CString const &,int) 1742 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1743 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1744 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1745 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1746 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1747 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1748 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1749 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1750 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1751 void DDX_CBIndex(CDataExchange *,int,int &) 1752 void DDX_CBString(CDataExchange *,int,CString &) 1753 void DDX_CBStringExact(CDataExchange *,int,CString &) 1754 void DDX_Check(CDataExchange *,int,int &) 1755 void DDX_Control(CDataExchange *,int,CWnd &) 1756 void DDX_LBIndex(CDataExchange *,int,int &) 1757 void DDX_LBString(CDataExchange *,int,CString &) 1758 void DDX_LBStringExact(CDataExchange *,int,CString &) 1759 void DDX_Radio(CDataExchange *,int,int &) 1760 void DDX_Scroll(CDataExchange *,int,int &) 1761 void DDX_Slider(CDataExchange *,int,int &) 1762 void DDX_Text(CDataExchange *,int,unsigned char &) 1763 void DDX_Text(CDataExchange *,int,short &) 1764 void DDX_Text(CDataExchange *,int,int &) 1765 void DDX_Text(CDataExchange *,int,unsigned int &) 1766 void DDX_Text(CDataExchange *,int,long &) 1767 void DDX_Text(CDataExchange *,int,unsigned long &) 1768 void DDX_Text(CDataExchange *,int,float &) 1769 void DDX_Text(CDataExchange *,int,double &) 1770 void DDX_Text(CDataExchange *,int,CString &) 1771 void DDX_Text(CDataExchange *,int,unsigned short *,int) 1772 long CWnd::Default() 1773 void CRect::DeflateRect(int,int) 1774 void CRect::DeflateRect(int,int,int,int) 1775 void CRect::DeflateRect(tagRECT const *) 1776 void CRect::DeflateRect(tagSIZE) 1777 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 1778 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 1779 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 1780 void CFrameWnd::DelayRecalcLayout(int) 1781 void CControlBar::DelayShow(int) 1782 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1783 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1784 void CFrameWnd::DelayUpdateFrameTitle() 1785 void CException::Delete() 1786 int CString::Delete(int,int) 1787 void CWinThread::Delete() 1788 int CListCtrl::DeleteAllItems() 1789 int CTabCtrl::DeleteAllItems() 1790 int CTreeCtrl::DeleteAllItems() 1791 int CReBarCtrl::DeleteBand(unsigned int) 1792 int CToolBarCtrl::DeleteButton(int) 1793 int CListCtrl::DeleteColumn(int) 1794 void CSplitterWnd::DeleteColumn(int) 1795 void CDocument::DeleteContents() 1796 void CEditView::DeleteContents() 1797 int CDC::DeleteDC() 1798 int CImageList::DeleteImageList() 1799 void CComboBox::DeleteItem(tagDELETEITEM*) 1800 int CComboBoxEx::DeleteItem(int) 1801 int CHeaderCtrl::DeleteItem(int) 1802 void CListBox::DeleteItem(tagDELETEITEM*) 1803 int CListCtrl::DeleteItem(int) 1804 int CTabCtrl::DeleteItem(int) 1805 int CTreeCtrl::DeleteItem(_TREEITEM *) 1806 int CMenu::DeleteMenu(unsigned int,unsigned int) 1807 int CGdiObject::DeleteObject() 1808 void CSplitterWnd::DeleteRow(int) 1809 int CComboBox::DeleteString(unsigned int) 1810 int CListBox::DeleteString(unsigned int) 1811 void CHandleMap::DeleteTemp() 1812 void CDC::DeleteTempMap() 1813 void CGdiObject::DeleteTempMap() 1814 void CImageList::DeleteTempMap() 1815 void CMenu::DeleteTempMap() 1816 void CWnd::DeleteTempMap() 1817 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1818 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1819 void CSplitterWnd::DeleteView(int,int) 1820 long CWinApp::DelRegTree(HKEY__ *,CString const &) 1821 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1822 void CTabCtrl::DeselectAll(int) 1823 void CFrameWnd::DestroyDockBars() 1824 int CMenu::DestroyMenu() 1825 int CToolTipCtrl::DestroyToolTipCtrl() 1826 int CControlBar::DestroyWindow() 1827 int CMDIChildWnd::DestroyWindow() 1828 int CWnd::DestroyWindow() 1829 void DestructElements(CString *,int) 1830 HDC__ * CDC::Detach() 1831 void * CDialogTemplate::Detach() 1832 void * CGdiObject::Detach() 1833 _IMAGELIST * CImageList::Detach() 1834 unsigned char * CMemFile::Detach() 1835 HMENU__ * CMenu::Detach() 1836 void * CSharedFile::Detach() 1837 HWND__ * CWnd::Detach() 1838 void CWinApp::DevModeChange(unsigned short *) 1839 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 1840 int CComboBox::Dir(unsigned int,unsigned short const *) 1841 int CComboBoxEx::Dir(unsigned int,unsigned short const *) 1842 int CListBox::Dir(unsigned int,unsigned short const *) 1843 void CDocument::DisconnectViews() 1844 AFX_DISPMAP const CCmdTarget::dispatchMap 1845 void CWinThread::DispatchThreadMessage(tagMSG *) 1846 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1847 int CRichEditCtrl::DisplayBand(tagRECT *) 1848 int CWnd::DlgDirListComboBoxW(unsigned short *,int,int,unsigned int) 1849 int CWnd::DlgDirListW(unsigned short *,int,int,unsigned int) 1850 int CWnd::DlgDirSelect(unsigned short *,int) 1851 int CWnd::DlgDirSelectComboBox(unsigned short *,int) 1852 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 1853 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 1854 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 1855 void CWnd::DoDataExchange(CDataExchange *) 1856 int CDocument::DoFileSave() 1857 int CSplitterWnd::DoKeyboardSplit() 1858 int CWinApp::DoMessageBox(unsigned short const *,unsigned int,unsigned int) 1859 int CColorDialog::DoModal() 1860 int CDialog::DoModal() 1861 int CFileDialog::DoModal() 1862 int CFontDialog::DoModal() 1863 int CPageSetupDialog::DoModal() 1864 int CPrintDialog::DoModal() 1865 int CPropertySheet::DoModal() 1866 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 1867 void CControlBar::DoPaint(CDC *) 1868 void CDockBar::DoPaint(CDC *) 1869 int CView::DoPreparePrinting(CPrintInfo *) 1870 int CWinApp::DoPrintDialog(CPrintDialog *) 1871 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 1872 int CDocManager::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 1873 int CWinApp::DoPromptFileName(CString &,unsigned int,unsigned long,int,CDocTemplate *) 1874 int CDocument::DoSave(unsigned short const *,int) 1875 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 1876 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 1877 int CCmdUI::DoUpdate(CCmdTarget *,int) 1878 void CWinApp::DoWaitCursor(int) 1879 void CPreviewView::DoZoom(unsigned int,CPoint) 1880 void CDC::DPtoHIMETRIC(tagSIZE *)const 1881 void CDC::DPtoLP(tagPOINT *,int)const 1882 void CDC::DPtoLP(tagRECT *)const 1883 void CDC::DPtoLP(tagSIZE *)const 1884 void CWnd::DragAcceptFiles(int) 1885 int CImageList::DragEnter(CWnd *,CPoint) 1886 unsigned int CDragListBox::Dragging(CPoint) 1887 int CImageList::DragLeave(CWnd *) 1888 int CImageList::DragMove(CPoint) 1889 void CReBarCtrl::DragMove(unsigned long) 1890 int CImageList::DragShowNolock(int) 1891 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 1892 void CRectTracker::Draw(CDC *)const 1893 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 1894 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 1895 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 1896 void CControlBar::DrawBorders(CDC *,CRect &) 1897 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 1898 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 1899 int CDC::DrawEscape(int,int,char const *) 1900 void CDC::DrawFocusRect(tagRECT const *) 1901 void CDockContext::DrawFocusRect(int) 1902 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 1903 void CControlBar::DrawGripper(CDC *,CRect const &) 1904 int CDC::DrawIcon(int,int,HICON__ *) 1905 int CDC::DrawIcon(tagPOINT,HICON__ *) 1906 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 1907 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long) 1908 void CDragListBox::DrawInsert(int) 1909 void CBitmapButton::DrawItem(tagDRAWITEM*) 1910 void CButton::DrawItem(tagDRAWITEM*) 1911 void CCheckListBox::DrawItem(tagDRAWITEM*) 1912 void CComboBox::DrawItem(tagDRAWITEM*) 1913 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 1914 void CListBox::DrawItem(tagDRAWITEM*) 1915 void CListCtrl::DrawItem(tagDRAWITEM*) 1916 void CListView::DrawItem(tagDRAWITEM*) 1917 void CMenu::DrawItem(tagDRAWITEM*) 1918 void CStatusBar::DrawItem(tagDRAWITEM*) 1919 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 1920 void CTabCtrl::DrawItem(tagDRAWITEM*) 1921 void CWnd::DrawMenuBar() 1922 void CDragListBox::DrawSingle(int) 1923 int DrawState(HDC__ *,HBRUSH__ *,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,int,int,int,int,unsigned int) 1924 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 1925 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 1926 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 1927 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 1928 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 1929 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 1930 int CDC::DrawState(CPoint,CSize,unsigned short const *,unsigned int,int,int,HBRUSH__ *) 1931 int CDC::DrawState(CPoint,CSize,unsigned short const *,unsigned int,int,int,CBrush *) 1932 int CDC::DrawTextW(CString const &,tagRECT *,unsigned int) 1933 int CDC::DrawTextW(unsigned short const *,int,tagRECT *,unsigned int) 1934 int CMetaFileDC::DrawTextW(CString const &,tagRECT *,unsigned int) 1935 int CMetaFileDC::DrawTextW(unsigned short const *,int,tagRECT *,unsigned int) 1936 int CPreviewDC::DrawTextW(unsigned short const *,int,tagRECT *,unsigned int) 1937 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 1938 void CDragListBox::Dropped(int,CPoint) 1939 void CArchiveException::Dump(CDumpContext &)const 1940 void CBitmap::Dump(CDumpContext &)const 1941 void CBitmapButton::Dump(CDumpContext &)const 1942 void CBrush::Dump(CDumpContext &)const 1943 void CByteArray::Dump(CDumpContext &)const 1944 void CClientDC::Dump(CDumpContext &)const 1945 void CCmdTarget::Dump(CDumpContext &)const 1946 void CColorDialog::Dump(CDumpContext &)const 1947 void CControlBar::Dump(CDumpContext &)const 1948 void CCtrlView::Dump(CDumpContext &)const 1949 void CDC::Dump(CDumpContext &)const 1950 void CDialog::Dump(CDumpContext &)const 1951 void CDockBar::Dump(CDumpContext &)const 1952 void CDocManager::Dump(CDumpContext &)const 1953 void CDocTemplate::Dump(CDumpContext &)const 1954 void CDocument::Dump(CDumpContext &)const 1955 void CDWordArray::Dump(CDumpContext &)const 1956 void CDynLinkLibrary::Dump(CDumpContext &)const 1957 void CEditView::Dump(CDumpContext &)const 1958 void CFile::Dump(CDumpContext &)const 1959 void CFileDialog::Dump(CDumpContext &)const 1960 void CFileException::Dump(CDumpContext &)const 1961 void CFileFind::Dump(CDumpContext &)const 1962 void CFileStatus::Dump(CDumpContext &)const 1963 void CFindReplaceDialog::Dump(CDumpContext &)const 1964 void CFont::Dump(CDumpContext &)const 1965 void CFontDialog::Dump(CDumpContext &)const 1966 void CFormView::Dump(CDumpContext &)const 1967 void CFrameWnd::Dump(CDumpContext &)const 1968 void CFtpConnection::Dump(CDumpContext &)const 1969 void CFtpFileFind::Dump(CDumpContext &)const 1970 void CGdiObject::Dump(CDumpContext &)const 1971 void CGopherConnection::Dump(CDumpContext &)const 1972 void CGopherFile::Dump(CDumpContext &)const 1973 void CGopherFileFind::Dump(CDumpContext &)const 1974 void CHttpConnection::Dump(CDumpContext &)const 1975 void CHttpFile::Dump(CDumpContext &)const 1976 void CImageList::Dump(CDumpContext &)const 1977 void CInternetConnection::Dump(CDumpContext &)const 1978 void CInternetException::Dump(CDumpContext &)const 1979 void CInternetFile::Dump(CDumpContext &)const 1980 void CInternetSession::Dump(CDumpContext &)const 1981 void CMapPtrToPtr::Dump(CDumpContext &)const 1982 void CMapPtrToWord::Dump(CDumpContext &)const 1983 void CMapStringToOb::Dump(CDumpContext &)const 1984 void CMapStringToPtr::Dump(CDumpContext &)const 1985 void CMapStringToString::Dump(CDumpContext &)const 1986 void CMapWordToOb::Dump(CDumpContext &)const 1987 void CMapWordToPtr::Dump(CDumpContext &)const 1988 void CMDIChildWnd::Dump(CDumpContext &)const 1989 void CMDIFrameWnd::Dump(CDumpContext &)const 1990 void CMemFile::Dump(CDumpContext &)const 1991 void CMenu::Dump(CDumpContext &)const 1992 void CMultiDocTemplate::Dump(CDumpContext &)const 1993 void CObArray::Dump(CDumpContext &)const 1994 void CObject::Dump(CDumpContext &)const 1995 void CObList::Dump(CDumpContext &)const 1996 void CPageSetupDialog::Dump(CDumpContext &)const 1997 void CPaintDC::Dump(CDumpContext &)const 1998 void CPen::Dump(CDumpContext &)const 1999 void CPreviewDC::Dump(CDumpContext &)const 2000 void CPreviewView::Dump(CDumpContext &)const 2001 void CPrintDialog::Dump(CDumpContext &)const 2002 void CPropertyPage::Dump(CDumpContext &)const 2003 void CPropertyPageEx::Dump(CDumpContext &)const 2004 void CPropertySheet::Dump(CDumpContext &)const 2005 void CPropertySheetEx::Dump(CDumpContext &)const 2006 void CPtrArray::Dump(CDumpContext &)const 2007 void CPtrList::Dump(CDumpContext &)const 2008 void CScrollView::Dump(CDumpContext &)const 2009 void CSingleDocTemplate::Dump(CDumpContext &)const 2010 void CSplitterWnd::Dump(CDumpContext &)const 2011 void CStatusBar::Dump(CDumpContext &)const 2012 void CStdioFile::Dump(CDumpContext &)const 2013 void CStringArray::Dump(CDumpContext &)const 2014 void CStringList::Dump(CDumpContext &)const 2015 void CSyncObject::Dump(CDumpContext &)const 2016 void CToolBar::Dump(CDumpContext &)const 2017 void CUIntArray::Dump(CDumpContext &)const 2018 void CView::Dump(CDumpContext &)const 2019 void CWinApp::Dump(CDumpContext &)const 2020 void CWindowDC::Dump(CDumpContext &)const 2021 void CWinThread::Dump(CDumpContext &)const 2022 void CWnd::Dump(CDumpContext &)const 2023 void CWordArray::Dump(CDumpContext &)const 2024 void CMemoryState::DumpAllObjectsSince()const 2025 void CMemoryState::DumpStatistics()const 2026 CFile * CFile::Duplicate()const 2027 CFile * CInternetFile::Duplicate()const 2028 CFile * CMemFile::Duplicate()const 2029 CFile * CStdioFile::Duplicate()const 2030 unsigned long const CEditView::dwStyleDefault 2031 CEdit * CListCtrl::EditLabel(int) 2032 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2033 unsigned char & CByteArray::ElementAt(int) 2034 unsigned long & CDWordArray::ElementAt(int) 2035 CObject * & CObArray::ElementAt(int) 2036 void * & CPtrArray::ElementAt(int) 2037 CString & CStringArray::ElementAt(int) 2038 unsigned int & CUIntArray::ElementAt(int) 2039 unsigned short & CWordArray::ElementAt(int) 2040 int CDC::Ellipse(int,int,int,int) 2041 int CDC::Ellipse(tagRECT const *) 2042 void CString::Empty() 2043 void CEdit::EmptyUndoBuffer() 2044 void CRichEditCtrl::EmptyUndoBuffer() 2045 void CCheckListBox::Enable(int,int) 2046 void CCmdUI::Enable(int) 2047 void CStatusCmdUI::Enable(int) 2048 void CTestCmdUI::Enable(int) 2049 void CToolCmdUI::Enable(int) 2050 int CWinApp::Enable3dControls() 2051 int CToolBarCtrl::EnableButton(int,int) 2052 void CControlBar::EnableDocking(unsigned long) 2053 void CFrameWnd::EnableDocking(unsigned long) 2054 void CReBar::EnableDocking(unsigned long) 2055 void CStatusBar::EnableDocking(unsigned long) 2056 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2057 void CWinApp::EnableModeless(int) 2058 int CScrollBar::EnableScrollBar(unsigned int) 2059 int CWnd::EnableScrollBar(int,unsigned int) 2060 void CWnd::EnableScrollBarCtrl(int,int) 2061 void CWinApp::EnableShellOpen() 2062 void CPropertySheet::EnableStackedTabs(int) 2063 int CInternetSession::EnableStatusCallback(int) 2064 int CWnd::EnableToolTips(int) 2065 int CWnd::EnableTrackingToolTips(int) 2066 int CWnd::EnableWindow(int) 2067 void CDialog::EndDialog(int) 2068 void CPropertyPage::EndDialog(int) 2069 void CPropertySheet::EndDialog(int) 2070 int CDC::EndDoc() 2071 void CDockContext::EndDrag() 2072 void CImageList::EndDrag() 2073 void CReBarCtrl::EndDrag() 2074 void CWnd::EndModalLoop(int) 2075 void CFrameWnd::EndModalState() 2076 void CWnd::EndModalState() 2077 int CDC::EndPage() 2078 void CWnd::EndPaint(tagPAINT*) 2079 int CDC::EndPath() 2080 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2081 void CDockContext::EndResize() 2082 void CCmdTarget::EndWaitCursor() 2083 int CListCtrl::EnsureVisible(int,int) 2084 int CTreeCtrl::EnsureVisible(_TREEITEM *) 2085 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 2086 int CRect::EqualRect(tagRECT const *)const 2087 int CRgn::EqualRgn(CRgn *)const 2088 void CControlBar::EraseNonClient() 2089 int CFileException::ErrnoToException(int) 2090 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2091 int CDC::Escape(int,int,char const *,int,char *) 2092 int CDC::Escape(int,int,char const *,void *) 2093 int CMetaFileDC::Escape(int,int,char const *,void *) 2094 int CPreviewDC::Escape(int,int,char const *,void *) 2095 AFX_EVENTSINKMAP const CCmdTarget::eventsinkMap 2096 int CDC::ExcludeClipRect(int,int,int,int) 2097 int CDC::ExcludeClipRect(tagRECT const *) 2098 int CDC::ExcludeUpdateRgn(CWnd *) 2099 int CWnd::ExecuteDlgInit(void *) 2100 int CWnd::ExecuteDlgInit(unsigned short const *) 2101 void CFrameWnd::ExitHelpMode() 2102 int CWinApp::ExitInstance() 2103 int CWinThread::ExitInstance() 2104 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 2105 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 2106 HICON__ * CImageList::ExtractIconW(int) 2107 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,CString const &,int *) 2108 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,unsigned short const *,unsigned int,int *) 2109 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,CString const &,int *) 2110 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,unsigned short const *,unsigned int,int *) 2111 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,unsigned short const *,unsigned int,int *) 2112 void CDataExchange::Fail() 2113 void CArchive::FillBuffer(unsigned int) 2114 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2115 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2116 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2117 int CDC::FillPath() 2118 void CDC::FillRect(tagRECT const *,CBrush *) 2119 int CDC::FillRgn(CRgn *,CBrush *) 2120 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2121 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2122 void CWnd::FilterToolTipMessage(tagMSG *) 2123 __POSITION * CObList::Find(CObject *,__POSITION *)const 2124 __POSITION * CPtrList::Find(void *,__POSITION *)const 2125 int CString::Find(unsigned short)const 2126 int CString::Find(unsigned short,int)const 2127 int CString::Find(unsigned short const *)const 2128 int CString::Find(unsigned short const *,int)const 2129 __POSITION * CStringList::Find(unsigned short const *,__POSITION *)const 2130 int CDockBar::FindBar(CControlBar *,int) 2131 int CFileFind::FindFile(unsigned short const *,unsigned long) 2132 int CFtpFileFind::FindFile(unsigned short const *,unsigned long) 2133 int CGopherFileFind::FindFile(CGopherLocator &,unsigned short const *,unsigned long) 2134 int CGopherFileFind::FindFile(unsigned short const *,unsigned long) 2135 __POSITION * CObList::FindIndex(int)const 2136 __POSITION * CPtrList::FindIndex(int)const 2137 __POSITION * CStringList::FindIndex(int)const 2138 int CListCtrl::FindItem(tagLVFINDINFOW *,int)const 2139 int CFindReplaceDialog::FindNext()const 2140 int CFileFind::FindNextFileW() 2141 int CFtpFileFind::FindNextFileW() 2142 int CGopherFileFind::FindNextFileW() 2143 int CString::FindOneOf(unsigned short const *)const 2144 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2145 int CComboBox::FindString(int,unsigned short const *)const 2146 int CComboBoxEx::FindString(int,unsigned short const *)const 2147 int CListBox::FindString(int,unsigned short const *)const 2148 int CComboBox::FindStringExact(int,unsigned short const *)const 2149 int CListBox::FindStringExact(int,unsigned short const *)const 2150 int CEditView::FindTextW(unsigned short const *,int,int) 2151 long CRichEditCtrl::FindTextW(unsigned long,_findtextexa *)const 2152 CWnd * CWnd::FindWindowW(unsigned short const *,unsigned short const *) 2153 int CWnd::FlashWindow(int) 2154 int CDC::FlattenPath() 2155 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2156 int CDC::FloodFill(int,int,unsigned long) 2157 void CArchive::Flush() 2158 void CDumpContext::Flush() 2159 void CFile::Flush() 2160 void CInternetFile::Flush() 2161 void CMemFile::Flush() 2162 void CStdioFile::Flush() 2163 int CEdit::FmtLines(int) 2164 int FontAttrSize(int) 2165 void CString::Format(unsigned int,...) 2166 void CString::Format(unsigned short const *,...) 2167 CString CTime::Format(unsigned int)const 2168 CString CTime::Format(char const *)const 2169 CString CTime::Format(unsigned short const *)const 2170 CString CTimeSpan::Format(unsigned int)const 2171 CString CTimeSpan::Format(char const *)const 2172 CString CTimeSpan::Format(unsigned short const *)const 2173 CString CTime::FormatGmt(unsigned int)const 2174 CString CTime::FormatGmt(char const *)const 2175 CString CTime::FormatGmt(unsigned short const *)const 2176 void CString::FormatMessageW(unsigned int,...) 2177 void CString::FormatMessageW(unsigned short const *,...) 2178 long CRichEditCtrl::FormatRange(_formatrange *,int) 2179 void CString::FormatV(unsigned short const *,char *) 2180 void CDC::FrameRect(tagRECT const *,CBrush *) 2181 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 2182 void CFixedAlloc::Free(void *) 2183 void CMemFile::Free(unsigned char *) 2184 void CSharedFile::Free(unsigned char *) 2185 void CFixedAlloc::FreeAll() 2186 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2187 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2188 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2189 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2190 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2191 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2192 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2193 void __fastcall CString::FreeData(CStringData *) 2194 void CPlex::FreeDataChain() 2195 void CByteArray::FreeExtra() 2196 void CDWordArray::FreeExtra() 2197 void CObArray::FreeExtra() 2198 void CPtrArray::FreeExtra() 2199 void CString::FreeExtra() 2200 void CStringArray::FreeExtra() 2201 void CUIntArray::FreeExtra() 2202 void CWordArray::FreeExtra() 2203 void CObList::FreeNode(CObList::CNode *) 2204 void CPtrList::FreeNode(CPtrList::CNode *) 2205 void CStringList::FreeNode(CStringList::CNode *) 2206 void CThreadSlotData::FreeSlot(int) 2207 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 2208 CBrush * CBrush::FromHandle(HBRUSH__ *) 2209 CDC * CDC::FromHandle(HDC__ *) 2210 CFont * CFont::FromHandle(HFONT__ *) 2211 CGdiObject * CGdiObject::FromHandle(void *) 2212 CObject * CHandleMap::FromHandle(void *) 2213 CImageList * CImageList::FromHandle(_IMAGELIST *) 2214 CMenu * CMenu::FromHandle(HMENU__ *) 2215 CPalette * CPalette::FromHandle(HPALETTE__ *) 2216 CPen * CPen::FromHandle(HPEN__ *) 2217 CRgn * CRgn::FromHandle(HRGN__ *) 2218 CWnd * CWnd::FromHandle(HWND__ *) 2219 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2220 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2221 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2222 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 2223 CDocument * CFrameWnd::GetActiveDocument() 2224 CFrameWnd * CFrameWnd::GetActiveFrame() 2225 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2226 int CPropertySheet::GetActiveIndex()const 2227 CPropertyPage * CPropertySheet::GetActivePage()const 2228 CWnd * CSplitterWnd::GetActivePane(int &,int &) 2229 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2230 CView * CFrameWnd::GetActiveView()const 2231 CWnd * CWnd::GetActiveWindow() 2232 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2233 int CIPAddressCtrl::GetAddress(unsigned long &) 2234 int CString::GetAllocLength()const 2235 int CToolBarCtrl::GetAnchorHighlight()const 2236 int CListBox::GetAnchorIndex()const 2237 HKEY__ * CWinApp::GetAppRegistryKey() 2238 int CDC::GetArcDirection()const 2239 CSize CDC::GetAspectRatioFilter()const 2240 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &)const 2241 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &)const 2242 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(unsigned short const *,unsigned int &)const 2243 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(unsigned short const *,unsigned int &)const 2244 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(unsigned short const *,unsigned int &)const 2245 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &)const 2246 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &)const 2247 int CTime::GetAsSystemTime(_SYSTEMTIME &)const 2248 unsigned char CByteArray::GetAt(int)const 2249 unsigned long CDWordArray::GetAt(int)const 2250 CObject * CObArray::GetAt(int)const 2251 CObject * & CObList::GetAt(__POSITION *) 2252 CObject * CObList::GetAt(__POSITION *)const 2253 void * CPtrArray::GetAt(int)const 2254 void * & CPtrList::GetAt(__POSITION *) 2255 void * CPtrList::GetAt(__POSITION *)const 2256 unsigned short CString::GetAt(int)const 2257 CString CStringArray::GetAt(int)const 2258 CString & CStringList::GetAt(__POSITION *) 2259 CString CStringList::GetAt(__POSITION *)const 2260 unsigned int CUIntArray::GetAt(int)const 2261 unsigned short CWordArray::GetAt(int)const 2262 int CGopherConnection::GetAttribute(CGopherLocator &,CString,CString &) 2263 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 2264 unsigned int CReBarCtrl::GetBandCount()const 2265 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOW *)const 2266 unsigned int CReBarCtrl::GetBarHeight()const 2267 void CControlBar::GetBarInfo(CControlBarInfo *) 2268 void CDockBar::GetBarInfo(CControlBarInfo *) 2269 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 2270 unsigned long CControlBar::GetBarStyle() 2271 unsigned int CSpinButtonCtrl::GetBase()const 2272 int CBitmap::GetBitmap(tagBITMAP *) 2273 HBITMAP__ * CButton::GetBitmap()const 2274 HBITMAP__ * CStatic::GetBitmap()const 2275 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 2276 CSize CBitmap::GetBitmapDimension()const 2277 unsigned int CToolBarCtrl::GetBitmapFlags()const 2278 unsigned long CDC::GetBkColor()const 2279 unsigned long CImageList::GetBkColor()const 2280 unsigned long CListCtrl::GetBkColor()const 2281 unsigned long CReBarCtrl::GetBkColor()const 2282 unsigned long CTreeCtrl::GetBkColor()const 2283 int CListCtrl::GetBkImage(tagLVBKIMAGEW *)const 2284 int CDC::GetBkMode()const 2285 CRect CControlBar::GetBorders()const 2286 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2287 int CStatusBarCtrl::GetBorders(int *)const 2288 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 2289 CPoint CDC::GetBrushOrg()const 2290 CWnd * CSliderCtrl::GetBuddy(int)const 2291 CWnd * CSpinButtonCtrl::GetBuddy()const 2292 unsigned short * CString::GetBuffer(int) 2293 unsigned int CEditView::GetBufferLength()const 2294 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2295 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2296 unsigned short * CString::GetBufferSetLength(int) 2297 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 2298 int CToolBarCtrl::GetButtonCount()const 2299 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2300 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOW *)const 2301 unsigned long CToolBarCtrl::GetButtonSize()const 2302 unsigned int CButton::GetButtonStyle()const 2303 unsigned int CToolBar::GetButtonStyle(int)const 2304 CString CToolBar::GetButtonText(int)const 2305 void CToolBar::GetButtonText(int,CString &)const 2306 unsigned int CListCtrl::GetCallbackMask()const 2307 CWnd * CWnd::GetCapture() 2308 int CListBox::GetCaretIndex()const 2309 CPoint CWnd::GetCaretPos() 2310 void CSliderCtrl::GetChannelRect(tagRECT *)const 2311 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABC *)const 2312 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABCFLOAT *)const 2313 void CFontDialog::GetCharFormat(_charformat &)const 2314 CPoint CRichEditCtrl::GetCharPos(long)const 2315 int CDC::GetCharWidthW(unsigned int,unsigned int,int *)const 2316 int CDC::GetCharWidthW(unsigned int,unsigned int,float *)const 2317 int CButton::GetCheck()const 2318 int CCheckListBox::GetCheck(int) 2319 int CListCtrl::GetCheck(int)const 2320 int CTreeCtrl::GetCheck(_TREEITEM *)const 2321 int CWnd::GetCheckedRadioButton(int,int) 2322 unsigned int CCheckListBox::GetCheckStyle() 2323 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 2324 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2325 void CWnd::GetClientRect(tagRECT *)const 2326 CWnd * CWnd::GetClipboardOwner() 2327 CWnd * CWnd::GetClipboardViewer() 2328 int CDC::GetClipBox(tagRECT *)const 2329 int CMetaFileDC::GetClipBox(tagRECT *)const 2330 unsigned long CColorDialog::GetColor()const 2331 unsigned long CFontDialog::GetColor()const 2332 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 2333 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2334 int CListCtrl::GetColumn(int,tagLVCOLUMNW *)const 2335 int CSplitterWnd::GetColumnCount()const 2336 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2337 int CListCtrl::GetColumnOrderArray(int *,int) 2338 int CListCtrl::GetColumnWidth(int)const 2339 CComboBox * CComboBoxEx::GetComboBoxCtrl() 2340 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2341 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2342 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2343 unsigned long CInternetConnection::GetContext()const 2344 unsigned long CInternetFile::GetContext()const 2345 unsigned long CInternetSession::GetContext()const 2346 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2347 IUnknown * CWnd::GetControlUnknown() 2348 int CInternetSession::GetCookie(char const *,unsigned short const *,CString &) 2349 int CInternetSession::GetCookie(char const *,unsigned short const *,unsigned short *,unsigned long) 2350 unsigned long CInternetSession::GetCookieLength(char const *,unsigned short const *) 2351 int CPrintDialog::GetCopies()const 2352 int CComboBox::GetCount()const 2353 int CControlBar::GetCount()const 2354 int CListBox::GetCount()const 2355 int CMapPtrToPtr::GetCount()const 2356 int CMapPtrToWord::GetCount()const 2357 int CMapStringToOb::GetCount()const 2358 int CMapStringToPtr::GetCount()const 2359 int CMapStringToString::GetCount()const 2360 int CMapWordToOb::GetCount()const 2361 int CMapWordToPtr::GetCount()const 2362 int CObList::GetCount()const 2363 int CPtrList::GetCount()const 2364 int CStringList::GetCount()const 2365 unsigned int CTreeCtrl::GetCount()const 2366 int CListCtrl::GetCountPerPage()const 2367 int CFileFind::GetCreationTime(CTime &)const 2368 int CFileFind::GetCreationTime(_FILETIME *)const 2369 int CGopherFileFind::GetCreationTime(CTime &)const 2370 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2371 int CTabCtrl::GetCurFocus()const 2372 CBitmap * CDC::GetCurrentBitmap()const 2373 CBrush * CDC::GetCurrentBrush()const 2374 int CFtpConnection::GetCurrentDirectoryAsURL(CString &)const 2375 int CFtpConnection::GetCurrentDirectoryAsURL(unsigned short *,unsigned long *)const 2376 int CFtpConnection::GetCurrentDirectoryW(CString &)const 2377 int CFtpConnection::GetCurrentDirectoryW(unsigned short *,unsigned long *)const 2378 CFont * CDC::GetCurrentFont()const 2379 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 2380 tagMSG const * CWnd::GetCurrentMessage() 2381 CPalette * CDC::GetCurrentPalette()const 2382 CPen * CDC::GetCurrentPen()const 2383 CPoint CDC::GetCurrentPosition()const 2384 int CComboBox::GetCurSel()const 2385 int CListBox::GetCurSel()const 2386 int CTabCtrl::GetCurSel()const 2387 HICON__ * CButton::GetCursor() 2388 HICON__ * CStatic::GetCursor() 2389 unsigned char * CByteArray::GetData() 2390 unsigned char const * CByteArray::GetData()const 2391 unsigned long * CDWordArray::GetData() 2392 unsigned long const * CDWordArray::GetData()const 2393 CObject * * CObArray::GetData() 2394 CObject const * * CObArray::GetData()const 2395 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2396 void * * CPtrArray::GetData() 2397 void const * * CPtrArray::GetData()const 2398 CStringData * CString::GetData()const 2399 CString * CStringArray::GetData() 2400 CString const * CStringArray::GetData()const 2401 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2402 unsigned int * CUIntArray::GetData() 2403 unsigned int const * CUIntArray::GetData()const 2404 unsigned short * CWordArray::GetData() 2405 unsigned short const * CWordArray::GetData()const 2406 CNoTrackObject * CThreadLocalObject::GetDataNA() 2407 int CTime::GetDay()const 2408 int CTime::GetDayOfWeek()const 2409 long CTimeSpan::GetDays()const 2410 CDC * CWnd::GetDC() 2411 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 2412 HACCEL__ * CDocument::GetDefaultAccelerator() 2413 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2414 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 2415 unsigned int CMenu::GetDefaultItem(unsigned int,int) 2416 HMENU__ * CDocument::GetDefaultMenu() 2417 int CPrintDialog::GetDefaults() 2418 unsigned long CDialog::GetDefID()const 2419 int CToolTipCtrl::GetDelayTime(unsigned long)const 2420 int CDumpContext::GetDepth()const 2421 CWnd * CWnd::GetDescendantWindow(int,int)const 2422 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2423 CWnd * CWnd::GetDesktopWindow() 2424 int CDC::GetDeviceCaps(int)const 2425 CString CPageSetupDialog::GetDeviceName()const 2426 CString CPrintDialog::GetDeviceName()const 2427 CPoint CScrollView::GetDeviceScrollPosition()const 2428 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2429 _devicemodeW * CPageSetupDialog::GetDevMode()const 2430 _devicemodeW * CPrintDialog::GetDevMode()const 2431 CImageList * CToolBarCtrl::GetDisabledImageList()const 2432 int CCmdTarget::GetDispatchIID(_GUID *) 2433 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2434 int CRecentFileList::GetDisplayName(CString &,int,unsigned short const *,int,int)const 2435 int CWnd::GetDlgCtrlID()const 2436 CWnd * CWnd::GetDlgItem(int)const 2437 void CWnd::GetDlgItem(int,HWND__ * *)const 2438 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2439 int CWnd::GetDlgItemTextW(int,CString &)const 2440 int CWnd::GetDlgItemTextW(int,unsigned short *,int)const 2441 CDockBar * CDockContext::GetDockBar(unsigned long) 2442 CControlBar * CDockBar::GetDockedControlBar(int)const 2443 int CDockBar::GetDockedCount()const 2444 int CDockBar::GetDockedVisibleCount()const 2445 CFrameWnd * CControlBar::GetDockingFrame()const 2446 void CFrameWnd::GetDockState(CDockState &)const 2447 int CDocTemplate::GetDocString(CString &,enum CDocTemplate::DocStringIndex)const 2448 CDocTemplate * CDocument::GetDocTemplate()const 2449 CDocument * CView::GetDocument()const 2450 int CDocManager::GetDocumentCount() 2451 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 2452 CString CPageSetupDialog::GetDriverName()const 2453 CString CPrintDialog::GetDriverName()const 2454 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 2455 void CComboBox::GetDroppedControlRect(tagRECT *)const 2456 int CComboBox::GetDroppedState()const 2457 int CComboBox::GetDroppedWidth()const 2458 IDropTarget * CReBarCtrl::GetDropTarget()const 2459 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2460 IUnknown * CWnd::GetDSCCursor() 2461 CEdit * CListCtrl::GetEditControl()const 2462 CEdit * CTreeCtrl::GetEditControl()const 2463 CEdit * CComboBoxEx::GetEditCtrl() 2464 CEdit & CEditView::GetEditCtrl()const 2465 unsigned long CComboBox::GetEditSel()const 2466 HENHMETAFILE__ * CStatic::GetEnhMetaFileW()const 2467 int CPalette::GetEntryCount() 2468 int CArchiveException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 2469 int CException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 2470 int CFileException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 2471 int CInternetException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 2472 int CSimpleException::GetErrorMessage(unsigned short *,unsigned int,unsigned int *) 2473 long CRichEditCtrl::GetEventMask()const 2474 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2475 unsigned long CWnd::GetExStyle()const 2476 unsigned long CComboBoxEx::GetExtendedStyle()const 2477 unsigned long CListCtrl::GetExtendedStyle() 2478 unsigned long CTabCtrl::GetExtendedStyle() 2479 unsigned long CToolBarCtrl::GetExtendedStyle()const 2480 int CComboBox::GetExtendedUI()const 2481 int CPen::GetExtLogPen(tagEXTLOGPEN *) 2482 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2483 CString CFontDialog::GetFaceName()const 2484 CFile * CArchive::GetFile()const 2485 CFile * CDocument::GetFile(unsigned short const *,unsigned int,CFileException *) 2486 int CFtpConnection::GetFile(unsigned short const *,unsigned short const *,int,unsigned long,unsigned long,unsigned long) 2487 CString CFileDialog::GetFileExt()const 2488 CString CFile::GetFileName()const 2489 CString CFileDialog::GetFileName()const 2490 CString CFileFind::GetFileName()const 2491 CString CGopherFileFind::GetFileName()const 2492 CString CFile::GetFilePath()const 2493 CString CFileFind::GetFilePath()const 2494 CString CGopherFileFind::GetFilePath()const 2495 short GetFileTitle(unsigned short const *,unsigned short *,unsigned short) 2496 CString CFile::GetFileTitle()const 2497 CString CFileDialog::GetFileTitle()const 2498 CString CFileFind::GetFileTitle()const 2499 CString CGopherFileFind::GetFileTitle()const 2500 CString CFileFind::GetFileURL()const 2501 CString CFtpFileFind::GetFileURL()const 2502 CString CGopherFileFind::GetFileURL()const 2503 CString CHttpFile::GetFileURL()const 2504 CString CFindReplaceDialog::GetFindString()const 2505 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2506 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2507 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2508 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2509 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 2510 __POSITION * CDocument::GetFirstViewPosition()const 2511 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 2512 int CEdit::GetFirstVisibleLine()const 2513 int CRichEditCtrl::GetFirstVisibleLine()const 2514 CWnd * CWnd::GetFocus() 2515 CString CFileDialog::GetFolderPath()const 2516 int CDialogTemplate::GetFont(CString &,unsigned short &)const 2517 int CDialogTemplate::GetFont(DLGTEMPLATE const *,CString &,unsigned short &) 2518 CFont * CWnd::GetFont()const 2519 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 2520 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2521 CWnd * CWnd::GetForegroundWindow() 2522 int CPrintDialog::GetFromPage()const 2523 unsigned int CPrintInfo::GetFromPage()const 2524 CFtpConnection * CInternetSession::GetFtpConnection(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short,int) 2525 unsigned long CDC::GetGlyphOutlineW(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 2526 tm * CTime::GetGmtTm(tm *)const 2527 CGopherConnection * CInternetSession::GetGopherConnection(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short) 2528 CBrush * CDC::GetHalftoneBrush() 2529 void * CEdit::GetHandle()const 2530 unsigned int CRectTracker::GetHandleMask()const 2531 void CRectTracker::GetHandleRect(int,CRect *)const 2532 int CRectTracker::GetHandleSize(tagRECT const *)const 2533 unsigned int CMapPtrToPtr::GetHashTableSize()const 2534 unsigned int CMapPtrToWord::GetHashTableSize()const 2535 unsigned int CMapStringToOb::GetHashTableSize()const 2536 unsigned int CMapStringToPtr::GetHashTableSize()const 2537 unsigned int CMapStringToString::GetHashTableSize()const 2538 unsigned int CMapWordToOb::GetHashTableSize()const 2539 unsigned int CMapWordToPtr::GetHashTableSize()const 2540 CRuntime* CTypedSimpleList::GetHead() 2541 COleObjectFactory * CTypedSimpleList::GetHead() 2542 CObject * & CObList::GetHead() 2543 CObject * CObList::GetHead()const 2544 void * & CPtrList::GetHead() 2545 void * CPtrList::GetHead()const 2546 void * CSimpleList::GetHead()const 2547 CString & CStringList::GetHead() 2548 CString CStringList::GetHead()const 2549 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2550 __POSITION * CObList::GetHeadPosition()const 2551 __POSITION * CPtrList::GetHeadPosition()const 2552 __POSITION * CStringList::GetHeadPosition()const 2553 void CSplitterWnd::GetHitRect(int,CRect &) 2554 unsigned int CComboBox::GetHorizontalExtent()const 2555 int CListBox::GetHorizontalExtent()const 2556 HICON__ * CListCtrl::GetHotCursor() 2557 CImageList * CToolBarCtrl::GetHotImageList()const 2558 int CListCtrl::GetHotItem() 2559 int CToolBarCtrl::GetHotItem()const 2560 unsigned long CHotKeyCtrl::GetHotKey()const 2561 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2562 int CTime::GetHour()const 2563 int CTimeSpan::GetHours()const 2564 unsigned long CListCtrl::GetHoverTime()const 2565 CHttpConnection * CInternetSession::GetHttpConnection(unsigned short const *,unsigned short,unsigned short const *,unsigned short const *) 2566 CHttpConnection * CInternetSession::GetHttpConnection(unsigned short const *,unsigned long,unsigned short,unsigned short const *,unsigned short const *) 2567 HICON__ * CButton::GetIcon()const 2568 HICON__ * CStatic::GetIcon()const 2569 HICON__ * CWnd::GetIcon(int)const 2570 unsigned short const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2571 int CImageList::GetImageCount()const 2572 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 2573 CImageList * CComboBoxEx::GetImageList()const 2574 CImageList * CHeaderCtrl::GetImageList()const 2575 CImageList * CListCtrl::GetImageList(int)const 2576 CImageList * CReBarCtrl::GetImageList()const 2577 CImageList * CTabCtrl::GetImageList()const 2578 CImageList * CToolBarCtrl::GetImageList()const 2579 CImageList * CTreeCtrl::GetImageList(unsigned int)const 2580 unsigned int CTreeCtrl::GetIndent()const 2581 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 2582 unsigned long CToolBarCtrl::GetInsertMarkColor()const 2583 unsigned long CTreeCtrl::GetInsertMarkColor()const 2584 void CSplitterWnd::GetInsideRect(CRect &)const 2585 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2586 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2587 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2588 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 2589 int CHeaderCtrl::GetItem(int,_HD_ITEMW *)const 2590 int CListCtrl::GetItem(tagLVITEMW *)const 2591 int CTabCtrl::GetItem(int,tagTCITEMW *)const 2592 int CTreeCtrl::GetItem(tagTVITEMW *)const 2593 int CHeaderCtrl::GetItemCount()const 2594 int CListCtrl::GetItemCount()const 2595 int CTabCtrl::GetItemCount()const 2596 unsigned long CComboBox::GetItemData(int)const 2597 unsigned long CListBox::GetItemData(int)const 2598 unsigned long CListCtrl::GetItemData(int)const 2599 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2600 void * CComboBox::GetItemDataPtr(int)const 2601 void * CListBox::GetItemDataPtr(int)const 2602 int CComboBox::GetItemHeight(int)const 2603 int CListBox::GetItemHeight(int)const 2604 short CTreeCtrl::GetItemHeight()const 2605 unsigned int CStatusBar::GetItemID(int)const 2606 unsigned int CToolBar::GetItemID(int)const 2607 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2608 int CListCtrl::GetItemPosition(int,tagPOINT *)const 2609 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 2610 int CListBox::GetItemRect(int,tagRECT *)const 2611 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2612 void CStatusBar::GetItemRect(int,tagRECT *)const 2613 int CTabCtrl::GetItemRect(int,tagRECT *)const 2614 void CToolBar::GetItemRect(int,tagRECT *)const 2615 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 2616 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2617 unsigned int CListCtrl::GetItemState(int,unsigned int)const 2618 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2619 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2620 CString CListCtrl::GetItemText(int,int)const 2621 int CListCtrl::GetItemText(int,int,unsigned short *,int)const 2622 CString CTreeCtrl::GetItemText(_TREEITEM *)const 2623 int CDC::GetKerningPairsW(int,tagKERNINGPAIR *)const 2624 int CFileFind::GetLastAccessTime(CTime &)const 2625 int CFileFind::GetLastAccessTime(_FILETIME *)const 2626 int CGopherFileFind::GetLastAccessTime(CTime &)const 2627 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2628 CWnd * CWnd::GetLastActivePopup()const 2629 int CFileFind::GetLastWriteTime(CTime &)const 2630 int CFileFind::GetLastWriteTime(_FILETIME *)const 2631 int CGopherFileFind::GetLastWriteTime(CTime &)const 2632 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2633 unsigned long CDC::GetLayout()const 2634 int CComboBox::GetLBText(int,unsigned short *)const 2635 void CComboBox::GetLBText(int,CString &)const 2636 int CComboBox::GetLBTextLen(int)const 2637 unsigned long CFile::GetLength()const 2638 unsigned long CFileFind::GetLength()const 2639 unsigned long CGopherFileFind::GetLength()const 2640 unsigned long CInternetFile::GetLength()const 2641 int CString::GetLength()const 2642 __int64 CFileFind::GetLength64()const 2643 __int64 CGopherFileFind::GetLength64()const 2644 unsigned int CEdit::GetLimitText()const 2645 long CRichEditCtrl::GetLimitText()const 2646 int CEdit::GetLine(int,unsigned short *)const 2647 int CEdit::GetLine(int,unsigned short *,int)const 2648 int CRichEditCtrl::GetLine(int,unsigned short *)const 2649 int CRichEditCtrl::GetLine(int,unsigned short *,int)const 2650 int CEdit::GetLineCount()const 2651 int CRichEditCtrl::GetLineCount()const 2652 int CSliderCtrl::GetLineSize()const 2653 CListCtrl & CListView::GetListCtrl()const 2654 unsigned long CComboBox::GetLocale()const 2655 unsigned long CListBox::GetLocale()const 2656 tm * CTime::GetLocalTm(tm *)const 2657 CGopherLocator CGopherFileFind::GetLocator()const 2658 int CGopherLocator::GetLocatorType(unsigned long &)const 2659 int CBrush::GetLogBrush(tagLOGBRUSH *) 2660 int CFont::GetLogFont(tagLOGFONTW *) 2661 int CPen::GetLogPen(tagLOGPEN *) 2662 CWnd * CWinThread::GetMainWnd() 2663 int CDC::GetMapMode()const 2664 void CToolTipCtrl::GetMargin(tagRECT *)const 2665 unsigned long CEdit::GetMargins()const 2666 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2667 unsigned int CPrintInfo::GetMaxPage()const 2668 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 2669 int CToolBarCtrl::GetMaxTextRows()const 2670 int CToolTipCtrl::GetMaxTipWidth()const 2671 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2672 CMenu * CWnd::GetMenu()const 2673 unsigned long CMenu::GetMenuContextHelpId()const 2674 unsigned int CMenu::GetMenuItemCount()const 2675 unsigned int CMenu::GetMenuItemID(int)const 2676 int CMenu::GetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 2677 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 2678 int CMenu::GetMenuStringW(unsigned int,CString &,unsigned int)const 2679 int CMenu::GetMenuStringW(unsigned int,unsigned short *,int,unsigned int)const 2680 CWnd * CFrameWnd::GetMessageBar() 2681 CWnd * CMDIChildWnd::GetMessageBar() 2682 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2683 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2684 AFX_MSGMAP const * CColorDialog::GetMessageMap()const 2685 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2686 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2687 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2688 AFX_MSGMAP const * CDialog::GetMessageMap()const 2689 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2690 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2691 AFX_MSGMAP const * CDocument::GetMessageMap()const 2692 AFX_MSGMAP const * CEditView::GetMessageMap()const 2693 AFX_MSGMAP const * CFormView::GetMessageMap()const 2694 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2695 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2696 AFX_MSGMAP const * CListView::GetMessageMap()const 2697 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2698 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2699 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2700 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2701 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2702 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2703 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2704 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2705 AFX_MSGMAP const * CReBar::GetMessageMap()const 2706 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2707 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2708 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2709 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2710 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2711 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2712 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2713 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2714 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2715 AFX_MSGMAP const * CView::GetMessageMap()const 2716 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2717 AFX_MSGMAP const * CWnd::GetMessageMap()const 2718 void CFrameWnd::GetMessageString(unsigned int,CString &)const 2719 unsigned int CPrintInfo::GetMinPage()const 2720 int CTime::GetMinute()const 2721 int CTimeSpan::GetMinutes()const 2722 float CDC::GetMiterLimit()const 2723 int CEdit::GetModify()const 2724 int CRichEditCtrl::GetModify()const 2725 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 2726 int CTime::GetMonth()const 2727 unsigned long CDC::GetNearestColor(unsigned long)const 2728 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 2729 CObject * & CObList::GetNext(__POSITION * &) 2730 CObject * CObList::GetNext(__POSITION * &)const 2731 void * & CPtrList::GetNext(__POSITION * &) 2732 void * CPtrList::GetNext(__POSITION * &)const 2733 CString & CStringList::GetNext(__POSITION * &) 2734 CString CStringList::GetNext(__POSITION * &)const 2735 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 2736 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 2737 void CMapStringToOb::GetNextAssoc(__POSITION * &,CString &,CObject * &)const 2738 void CMapStringToPtr::GetNextAssoc(__POSITION * &,CString &,void * &)const 2739 void CMapStringToString::GetNextAssoc(__POSITION * &,CString &,CString &)const 2740 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 2741 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 2742 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 2743 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 2744 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 2745 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 2746 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 2747 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 2748 int CListCtrl::GetNextItem(int,int)const 2749 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 2750 CString CFileDialog::GetNextPathName(__POSITION * &)const 2751 void * * CSimpleList::GetNextPtr(void *)const 2752 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 2753 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 2754 CView * CDocument::GetNextView(__POSITION * &)const 2755 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 2756 HWND__ * GetNextWindow(HWND__ *,unsigned int) 2757 CWnd * CWnd::GetNextWindow(unsigned int)const 2758 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 2759 unsigned int CListCtrl::GetNumberOfWorkAreas()const 2760 unsigned int CSliderCtrl::GetNumTics()const 2761 unsigned int CArchive::GetObjectSchema() 2762 unsigned int CGdiObject::GetObjectType()const 2763 int CGdiObject::GetObjectW(int,void *)const 2764 CString CHttpFile::GetObjectW()const 2765 CWnd * CWnd::GetOpenClipboardWindow() 2766 int CDocManager::GetOpenDocumentCount() 2767 int CWinApp::GetOpenDocumentCount() 2768 int CHeaderCtrl::GetOrderArray(int *,int) 2769 int CListCtrl::GetOrigin(tagPOINT *)const 2770 unsigned int CDC::GetOutlineTextMetricsW(unsigned int,_OUTLINETEXTMETRICW *)const 2771 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 2772 CSize CDC::GetOutputTabbedTextExtent(CString const &,int,int *)const 2773 CSize CDC::GetOutputTabbedTextExtent(unsigned short const *,int,int,int *)const 2774 CSize CDC::GetOutputTextExtent(CString const &)const 2775 CSize CDC::GetOutputTextExtent(unsigned short const *,int)const 2776 int CDC::GetOutputTextMetrics(tagTEXTMETRICW *)const 2777 CWnd * CWnd::GetOwner()const 2778 CPropertyPage * CPropertySheet::GetPage(int)const 2779 int CPropertySheet::GetPageCount()const 2780 int CPropertySheet::GetPageIndex(CPropertyPage *) 2781 int CSliderCtrl::GetPageSize()const 2782 CPalette * CReBarCtrl::GetPalette()const 2783 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 2784 CWnd * CSplitterWnd::GetPane(int,int)const 2785 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 2786 unsigned int CStatusBar::GetPaneStyle(int)const 2787 CString CStatusBar::GetPaneText(int)const 2788 void CStatusBar::GetPaneText(int,CString &)const 2789 CSize CPageSetupDialog::GetPaperSize()const 2790 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 2791 CWnd * CWnd::GetParent()const 2792 CFrameWnd * CWnd::GetParentFrame()const 2793 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 2794 CWnd * CWnd::GetParentOwner()const 2795 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 2796 int CStatusBarCtrl::GetParts(int,int *)const 2797 unsigned short CEdit::GetPasswordChar()const 2798 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 2799 CString const & CDocument::GetPathName()const 2800 CString CFileDialog::GetPathName()const 2801 unsigned long CDC::GetPixel(int,int)const 2802 unsigned long CDC::GetPixel(tagPOINT)const 2803 int CDC::GetPolyFillMode()const 2804 CString CPageSetupDialog::GetPortName()const 2805 CString CPrintDialog::GetPortName()const 2806 int CProgressCtrl::GetPos() 2807 int CSliderCtrl::GetPos()const 2808 int CSpinButtonCtrl::GetPos()const 2809 unsigned long CFile::GetPosition()const 2810 unsigned long CMemFile::GetPosition()const 2811 unsigned long CStdioFile::GetPosition()const 2812 CObject * & CObList::GetPrev(__POSITION * &) 2813 CObject * CObList::GetPrev(__POSITION * &)const 2814 void * & CPtrList::GetPrev(__POSITION * &) 2815 void * CPtrList::GetPrev(__POSITION * &)const 2816 CString & CStringList::GetPrev(__POSITION * &) 2817 CString CStringList::GetPrev(__POSITION * &)const 2818 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 2819 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 2820 HDC__ * CPrintDialog::GetPrinterDC()const 2821 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 2822 CFont * CEditView::GetPrinterFont()const 2823 int CWinApp::GetProfileBinary(unsigned short const *,unsigned short const *,unsigned char * *,unsigned int *) 2824 unsigned int CWinApp::GetProfileIntW(unsigned short const *,unsigned short const *,int) 2825 CString CWinApp::GetProfileStringW(unsigned short const *,unsigned short const *,unsigned short const *) 2826 void CWnd::GetProperty(long,unsigned short,void *)const 2827 _AFX_OLDPROPSHEETHEADER * CPropertySheet::GetPropSheetHeader() 2828 void CProgressCtrl::GetRange(int &,int &) 2829 void CSliderCtrl::GetRange(int &,int &)const 2830 unsigned long CSpinButtonCtrl::GetRange()const 2831 void CSpinButtonCtrl::GetRange(int &,int &)const 2832 void CSpinButtonCtrl::GetRange32(int &,int &)const 2833 int CSliderCtrl::GetRangeMax()const 2834 int CSliderCtrl::GetRangeMin()const 2835 int CFileDialog::GetReadOnlyPref()const 2836 CReBarCtrl & CReBar::GetReBarCtrl()const 2837 void CEdit::GetRect(tagRECT *)const 2838 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 2839 void CRichEditCtrl::GetRect(tagRECT *)const 2840 int CStatusBarCtrl::GetRect(int,tagRECT *)const 2841 int CToolBarCtrl::GetRect(int,tagRECT *)const 2842 int CRgn::GetRegionData(_RGNDATA *,int)const 2843 CString CFindReplaceDialog::GetReplaceString()const 2844 int CRgn::GetRgnBox(tagRECT *)const 2845 CString CFileFind::GetRoot()const 2846 CString CGopherFileFind::GetRoot()const 2847 _TREEITEM * CTreeCtrl::GetRootItem()const 2848 int CDC::GetROP2()const 2849 CFrameWnd * CCmdTarget::GetRoutingFrame() 2850 CFrameWnd * CCmdTarget::GetRoutingFrame_() 2851 CView * CCmdTarget::GetRoutingView() 2852 CView * CCmdTarget::GetRoutingView_() 2853 unsigned int CReBarCtrl::GetRowCount()const 2854 int CSplitterWnd::GetRowCount()const 2855 int CTabCtrl::GetRowCount()const 2856 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 2857 void CSplitterWnd::GetRowInfo(int,int &,int &)const 2858 int CToolBarCtrl::GetRows()const 2859 CRuntime* CAnimateCtrl::GetRuntimeClass()const 2860 CRuntime* CArchiveException::GetRuntimeClass()const 2861 CRuntime* CBitmap::GetRuntimeClass()const 2862 CRuntime* CBitmapButton::GetRuntimeClass()const 2863 CRuntime* CBrush::GetRuntimeClass()const 2864 CRuntime* CButton::GetRuntimeClass()const 2865 CRuntime* CByteArray::GetRuntimeClass()const 2866 CRuntime* CCheckListBox::GetRuntimeClass()const 2867 CRuntime* CClientDC::GetRuntimeClass()const 2868 CRuntime* CCmdTarget::GetRuntimeClass()const 2869 CRuntime* CColorDialog::GetRuntimeClass()const 2870 CRuntime* CComboBox::GetRuntimeClass()const 2871 CRuntime* CComboBoxEx::GetRuntimeClass()const 2872 CRuntime* CControlBar::GetRuntimeClass()const 2873 CRuntime* CCriticalSection::GetRuntimeClass()const 2874 CRuntime* CCtrlView::GetRuntimeClass()const 2875 CRuntime* CDC::GetRuntimeClass()const 2876 CRuntime* CDialog::GetRuntimeClass()const 2877 CRuntime* CDialogBar::GetRuntimeClass()const 2878 CRuntime* CDockBar::GetRuntimeClass()const 2879 CRuntime* CDockState::GetRuntimeClass()const 2880 CRuntime* CDocManager::GetRuntimeClass()const 2881 CRuntime* CDocTemplate::GetRuntimeClass()const 2882 CRuntime* CDocument::GetRuntimeClass()const 2883 CRuntime* CDragListBox::GetRuntimeClass()const 2884 CRuntime* CDWordArray::GetRuntimeClass()const 2885 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 2886 CRuntime* CEdit::GetRuntimeClass()const 2887 CRuntime* CEditView::GetRuntimeClass()const 2888 CRuntime* CEvent::GetRuntimeClass()const 2889 CRuntime* CException::GetRuntimeClass()const 2890 CRuntime* CFile::GetRuntimeClass()const 2891 CRuntime* CFileDialog::GetRuntimeClass()const 2892 CRuntime* CFileException::GetRuntimeClass()const 2893 CRuntime* CFileFind::GetRuntimeClass()const 2894 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 2895 CRuntime* CFont::GetRuntimeClass()const 2896 CRuntime* CFontDialog::GetRuntimeClass()const 2897 CRuntime* CFormView::GetRuntimeClass()const 2898 CRuntime* CFrameWnd::GetRuntimeClass()const 2899 CRuntime* CFtpConnection::GetRuntimeClass()const 2900 CRuntime* CFtpFileFind::GetRuntimeClass()const 2901 CRuntime* CGdiObject::GetRuntimeClass()const 2902 CRuntime* CGopherConnection::GetRuntimeClass()const 2903 CRuntime* CGopherFile::GetRuntimeClass()const 2904 CRuntime* CGopherFileFind::GetRuntimeClass()const 2905 CRuntime* CHeaderCtrl::GetRuntimeClass()const 2906 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 2907 CRuntime* CHttpConnection::GetRuntimeClass()const 2908 CRuntime* CHttpFile::GetRuntimeClass()const 2909 CRuntime* CImageList::GetRuntimeClass()const 2910 CRuntime* CInternetConnection::GetRuntimeClass()const 2911 CRuntime* CInternetException::GetRuntimeClass()const 2912 CRuntime* CInternetFile::GetRuntimeClass()const 2913 CRuntime* CInternetSession::GetRuntimeClass()const 2914 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 2915 CRuntime* CListBox::GetRuntimeClass()const 2916 CRuntime* CListCtrl::GetRuntimeClass()const 2917 CRuntime* CListView::GetRuntimeClass()const 2918 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 2919 CRuntime* CMapPtrToWord::GetRuntimeClass()const 2920 CRuntime* CMapStringToOb::GetRuntimeClass()const 2921 CRuntime* CMapStringToPtr::GetRuntimeClass()const 2922 CRuntime* CMapStringToString::GetRuntimeClass()const 2923 CRuntime* CMapWordToOb::GetRuntimeClass()const 2924 CRuntime* CMapWordToPtr::GetRuntimeClass()const 2925 CRuntime* CMDIChildWnd::GetRuntimeClass()const 2926 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 2927 CRuntime* CMemFile::GetRuntimeClass()const 2928 CRuntime* CMemoryException::GetRuntimeClass()const 2929 CRuntime* CMenu::GetRuntimeClass()const 2930 CRuntime* CMetaFileDC::GetRuntimeClass()const 2931 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 2932 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 2933 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 2934 CRuntime* CMutex::GetRuntimeClass()const 2935 CRuntime* CNotSupportedException::GetRuntimeClass()const 2936 CRuntime* CObArray::GetRuntimeClass()const 2937 CRuntime* CObject::GetRuntimeClass()const 2938 CRuntime* CObList::GetRuntimeClass()const 2939 CRuntime* CPageSetupDialog::GetRuntimeClass()const 2940 CRuntime* CPaintDC::GetRuntimeClass()const 2941 CRuntime* CPalette::GetRuntimeClass()const 2942 CRuntime* CPen::GetRuntimeClass()const 2943 CRuntime* CPreviewDC::GetRuntimeClass()const 2944 CRuntime* CPreviewView::GetRuntimeClass()const 2945 CRuntime* CPrintDialog::GetRuntimeClass()const 2946 CRuntime* CProgressCtrl::GetRuntimeClass()const 2947 CRuntime* CPropertyPage::GetRuntimeClass()const 2948 CRuntime* CPropertyPageEx::GetRuntimeClass()const 2949 CRuntime* CPropertySheet::GetRuntimeClass()const 2950 CRuntime* CPropertySheetEx::GetRuntimeClass()const 2951 CRuntime* CPtrArray::GetRuntimeClass()const 2952 CRuntime* CPtrList::GetRuntimeClass()const 2953 CRuntime* CReBar::GetRuntimeClass()const 2954 CRuntime* CReBarCtrl::GetRuntimeClass()const 2955 CRuntime* CResourceException::GetRuntimeClass()const 2956 CRuntime* CRgn::GetRuntimeClass()const 2957 CRuntime* CRichEditCtrl::GetRuntimeClass()const 2958 CRuntime* CScrollBar::GetRuntimeClass()const 2959 CRuntime* CScrollView::GetRuntimeClass()const 2960 CRuntime* CSemaphore::GetRuntimeClass()const 2961 CRuntime* CSharedFile::GetRuntimeClass()const 2962 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 2963 CRuntime* CSliderCtrl::GetRuntimeClass()const 2964 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 2965 CRuntime* CSplitterWnd::GetRuntimeClass()const 2966 CRuntime* CStatic::GetRuntimeClass()const 2967 CRuntime* CStatusBar::GetRuntimeClass()const 2968 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 2969 CRuntime* CStdioFile::GetRuntimeClass()const 2970 CRuntime* CStringArray::GetRuntimeClass()const 2971 CRuntime* CStringList::GetRuntimeClass()const 2972 CRuntime* CSyncObject::GetRuntimeClass()const 2973 CRuntime* CTabCtrl::GetRuntimeClass()const 2974 CRuntime* CTempDC::GetRuntimeClass()const 2975 CRuntime* CTempGdiObject::GetRuntimeClass()const 2976 CRuntime* CTempImageList::GetRuntimeClass()const 2977 CRuntime* CTempMenu::GetRuntimeClass()const 2978 CRuntime* CTempWnd::GetRuntimeClass()const 2979 CRuntime* CToolBar::GetRuntimeClass()const 2980 CRuntime* CToolBarCtrl::GetRuntimeClass()const 2981 CRuntime* CToolTipCtrl::GetRuntimeClass()const 2982 CRuntime* CTreeCtrl::GetRuntimeClass()const 2983 CRuntime* CTreeView::GetRuntimeClass()const 2984 CRuntime* CUIntArray::GetRuntimeClass()const 2985 CRuntime* CUserException::GetRuntimeClass()const 2986 CRuntime* CView::GetRuntimeClass()const 2987 CRuntime* CWinApp::GetRuntimeClass()const 2988 CRuntime* CWindowDC::GetRuntimeClass()const 2989 CRuntime* CWinThread::GetRuntimeClass()const 2990 CRuntime* CWnd::GetRuntimeClass()const 2991 CRuntime* CWordArray::GetRuntimeClass()const 2992 void * CGdiObject::GetSafeHandle()const 2993 _IMAGELIST * CImageList::GetSafeHandle()const 2994 HDC__ * CDC::GetSafeHdc()const 2995 HMENU__ * CMenu::GetSafeHmenu()const 2996 HWND__ * CWnd::GetSafeHwnd()const 2997 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 2998 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 2999 unsigned long * CColorDialog::GetSavedCustomColors() 3000 CString CGopherFileFind::GetScreenName()const 3001 CSize CDockState::GetScreenSize() 3002 CScrollBar * CView::GetScrollBarCtrl(int)const 3003 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3004 void CScrollView::GetScrollBarSizes(CSize &) 3005 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3006 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 3007 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3008 int CScrollBar::GetScrollLimit() 3009 int CWnd::GetScrollLimit(int) 3010 int CScrollBar::GetScrollPos()const 3011 int CWnd::GetScrollPos(int)const 3012 CPoint CScrollView::GetScrollPosition()const 3013 void CScrollBar::GetScrollRange(int *,int *)const 3014 void CWnd::GetScrollRange(int,int *,int *)const 3015 unsigned long CSplitterWnd::GetScrollStyle()const 3016 int CTime::GetSecond()const 3017 int CTimeSpan::GetSeconds()const 3018 HKEY__ * CWinApp::GetSectionKey(unsigned short const *) 3019 unsigned long CEdit::GetSel()const 3020 void CEdit::GetSel(int &,int &)const 3021 int CListBox::GetSel(int)const 3022 void CRichEditCtrl::GetSel(long &,long &)const 3023 void CRichEditCtrl::GetSel(_charrange &)const 3024 int CListBox::GetSelCount()const 3025 unsigned int CListCtrl::GetSelectedCount()const 3026 _TREEITEM * CTreeCtrl::GetSelectedItem()const 3027 void CEditView::GetSelectedText(CString &)const 3028 void CSliderCtrl::GetSelection(int &,int &)const 3029 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3030 int CListCtrl::GetSelectionMark() 3031 unsigned short CRichEditCtrl::GetSelectionType()const 3032 int CListBox::GetSelItems(int,int *)const 3033 CString CRichEditCtrl::GetSelText()const 3034 long CRichEditCtrl::GetSelText(char *)const 3035 CString CInternetConnection::GetServerName()const 3036 CInternetSession * CInternetConnection::GetSession()const 3037 int CByteArray::GetSize()const 3038 int CDWordArray::GetSize()const 3039 int CFontDialog::GetSize()const 3040 int CObArray::GetSize()const 3041 int CPtrArray::GetSize()const 3042 int CRecentFileList::GetSize()const 3043 int CStringArray::GetSize()const 3044 int CUIntArray::GetSize()const 3045 int CWordArray::GetSize()const 3046 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3047 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3048 CWnd * CSplitterWnd::GetSizingParent() 3049 __POSITION * CFileDialog::GetStartPosition()const 3050 __POSITION * CMapPtrToPtr::GetStartPosition()const 3051 __POSITION * CMapPtrToWord::GetStartPosition()const 3052 __POSITION * CMapStringToOb::GetStartPosition()const 3053 __POSITION * CMapStringToPtr::GetStartPosition()const 3054 __POSITION * CMapStringToString::GetStartPosition()const 3055 __POSITION * CMapWordToOb::GetStartPosition()const 3056 __POSITION * CMapWordToPtr::GetStartPosition()const 3057 unsigned int CButton::GetState()const 3058 int CToolBarCtrl::GetState(int)const 3059 int CFile::GetStatus(CFileStatus &)const 3060 int CFile::GetStatus(unsigned short const *,CFileStatus &) 3061 int CMemFile::GetStatus(CFileStatus &)const 3062 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 3063 int CDC::GetStretchBltMode()const 3064 int CListCtrl::GetStringWidth(unsigned short const *)const 3065 unsigned long CToolBarCtrl::GetStyle()const 3066 unsigned long CWnd::GetStyle()const 3067 CString CFontDialog::GetStyleName()const 3068 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3069 CMenu * CMenu::GetSubMenu(int)const 3070 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3071 CMenu * CWnd::GetSystemMenu(int)const 3072 CSize CDC::GetTabbedTextExtentW(CString const &,int,int *)const 3073 CSize CDC::GetTabbedTextExtentW(unsigned short const *,int,int,int *)const 3074 CTabCtrl * CPropertySheet::GetTabControl()const 3075 CObject * & CObList::GetTail() 3076 CObject * CObList::GetTail()const 3077 void * & CPtrList::GetTail() 3078 void * CPtrList::GetTail()const 3079 CString & CStringList::GetTail() 3080 CString CStringList::GetTail()const 3081 __POSITION * CObList::GetTailPosition()const 3082 __POSITION * CPtrList::GetTailPosition()const 3083 __POSITION * CStringList::GetTailPosition()const 3084 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3085 CString CMirrorFile::GetTempName(unsigned short const *,int) 3086 int CListBox::GetText(int,unsigned short *)const 3087 void CListBox::GetText(int,CString &)const 3088 CString CStatusBarCtrl::GetText(int,int *)const 3089 int CStatusBarCtrl::GetText(unsigned short const *,int,int *)const 3090 void CToolTipCtrl::GetText(CString &,CWnd *,unsigned int)const 3091 unsigned int CDC::GetTextAlign()const 3092 unsigned long CListCtrl::GetTextBkColor()const 3093 int CDC::GetTextCharacterExtra()const 3094 unsigned long CDC::GetTextColor()const 3095 unsigned long CListCtrl::GetTextColor()const 3096 unsigned long CReBarCtrl::GetTextColor()const 3097 unsigned long CTreeCtrl::GetTextColor()const 3098 CSize CDC::GetTextExtent(CString const &)const 3099 CSize CDC::GetTextExtent(unsigned short const *,int)const 3100 int CDC::GetTextFaceW(CString &)const 3101 int CDC::GetTextFaceW(int,unsigned short *)const 3102 int CListBox::GetTextLen(int)const 3103 long CRichEditCtrl::GetTextLength()const 3104 int CStatusBarCtrl::GetTextLength(int,int *)const 3105 int CDC::GetTextMetricsW(tagTEXTMETRICW *)const 3106 int CWinThread::GetThreadPriority() 3107 void * CThreadSlotData::GetThreadValue(int) 3108 void CSliderCtrl::GetThumbRect(tagRECT *)const 3109 int CSliderCtrl::GetTic(int)const 3110 unsigned long * CSliderCtrl::GetTicArray()const 3111 CTime CTime::GetTickCount() 3112 int CSliderCtrl::GetTicPos(int)const 3113 long CTime::GetTime()const 3114 unsigned long CToolTipCtrl::GetTipBkColor()const 3115 CString CStatusBarCtrl::GetTipText(int)const 3116 unsigned long CToolTipCtrl::GetTipTextColor()const 3117 CString const & CDocument::GetTitle()const 3118 CString CFrameWnd::GetTitle()const 3119 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 3120 int CToolTipCtrl::GetToolCount()const 3121 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3122 CToolTipCtrl * CReBarCtrl::GetToolTips()const 3123 CToolTipCtrl * CSliderCtrl::GetToolTips()const 3124 CToolTipCtrl * CTabCtrl::GetToolTips()const 3125 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 3126 CToolTipCtrl * CTreeCtrl::GetToolTips()const 3127 int CPrintDialog::GetToPage()const 3128 unsigned int CPrintInfo::GetToPage()const 3129 int CComboBox::GetTopIndex()const 3130 int CListBox::GetTopIndex()const 3131 int CListCtrl::GetTopIndex()const 3132 CFrameWnd * CWnd::GetTopLevelFrame()const 3133 CWnd * CWnd::GetTopLevelOwner()const 3134 CWnd * CWnd::GetTopLevelParent()const 3135 CWnd * CWnd::GetTopWindow()const 3136 long CTimeSpan::GetTotalHours()const 3137 long CTimeSpan::GetTotalMinutes()const 3138 long CTimeSpan::GetTotalSeconds()const 3139 CSize CScrollView::GetTotalSize()const 3140 CTreeCtrl & CTreeView::GetTreeCtrl()const 3141 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3142 void CRectTracker::GetTrueRect(tagRECT *)const 3143 unsigned int CCmdTarget::GetTypeInfoCount() 3144 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3145 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3146 int CWnd::GetUpdateRect(tagRECT *,int) 3147 int CWnd::GetUpdateRgn(CRgn *,int) 3148 int CByteArray::GetUpperBound()const 3149 int CDWordArray::GetUpperBound()const 3150 int CObArray::GetUpperBound()const 3151 int CPtrArray::GetUpperBound()const 3152 int CStringArray::GetUpperBound()const 3153 int CUIntArray::GetUpperBound()const 3154 int CWordArray::GetUpperBound()const 3155 void * CMapPtrToPtr::GetValueAt(void *)const 3156 CString CHttpFile::GetVerb()const 3157 unsigned long CDockState::GetVersion() 3158 CSize CDC::GetViewportExt()const 3159 CPoint CDC::GetViewportOrg()const 3160 int CListCtrl::GetViewRect(tagRECT *)const 3161 unsigned int CTreeCtrl::GetVisibleCount()const 3162 int CFontDialog::GetWeight()const 3163 CWnd * CDC::GetWindow()const 3164 CWnd * CWnd::GetWindow(unsigned int)const 3165 unsigned long CWnd::GetWindowContextHelpId()const 3166 CDC * CWnd::GetWindowDC() 3167 CSize CDC::GetWindowExt()const 3168 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3169 CPoint CDC::GetWindowOrg()const 3170 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3171 void CWnd::GetWindowRect(tagRECT *)const 3172 int CWnd::GetWindowRgn(HRGN__ *)const 3173 HTASK__ * GetWindowTask(HWND__ *) 3174 int CWnd::GetWindowTextLengthW()const 3175 int CWnd::GetWindowTextW(unsigned short *,int)const 3176 void CWnd::GetWindowTextW(CString &)const 3177 void CListCtrl::GetWorkAreas(int,tagRECT *)const 3178 int CTime::GetYear()const 3179 void CDialog::GotoDlgCtrl(CWnd *) 3180 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3181 int CDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3182 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3183 void CMemFile::GrowFile(unsigned long) 3184 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3185 long CDialog::HandleInitDialog(unsigned int,long) 3186 long CDialogBar::HandleInitDialog(unsigned int,long) 3187 long CFormView::HandleInitDialog(unsigned int,long) 3188 long CPropertySheet::HandleInitDialog(unsigned int,long) 3189 long CDialog::HandleSetFont(unsigned int,long) 3190 int CComboBoxEx::HasEditChanged() 3191 int HasFont(DLGTEMPLATE const *) 3192 int CDialogTemplate::HasFont()const 3193 unsigned int HashKey(char const *) 3194 unsigned int HashKey(unsigned short const *) 3195 unsigned int CMapPtrToPtr::HashKey(void *)const 3196 unsigned int CMapPtrToWord::HashKey(void *)const 3197 unsigned int CMapStringToOb::HashKey(unsigned short const *)const 3198 unsigned int CMapStringToPtr::HashKey(unsigned short const *)const 3199 unsigned int CMapStringToString::HashKey(unsigned short const *)const 3200 unsigned int CMapWordToOb::HashKey(unsigned short)const 3201 unsigned int CMapWordToPtr::HashKey(unsigned short)const 3202 int CRect::Height()const 3203 void CDumpContext::HexDump(unsigned short const *,unsigned char *,int,int) 3204 void CWinApp::HideApplication() 3205 int CToolBarCtrl::HideButton(int,int) 3206 void CWnd::HideCaret() 3207 void CFileDialog::HideControl(int) 3208 void CRichEditCtrl::HideSelection(int,int) 3209 int CTabCtrl::HighlightItem(int,int) 3210 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 3211 void CDC::HIMETRICtoDP(tagSIZE *)const 3212 void CDC::HIMETRICtoLP(tagSIZE *)const 3213 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 3214 int CListCtrl::HitTest(CPoint,unsigned int *)const 3215 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 3216 int CRectTracker::HitTest(CPoint)const 3217 int CSplitterWnd::HitTest(CPoint)const 3218 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 3219 int CToolBarCtrl::HitTest(tagPOINT *)const 3220 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 3221 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 3222 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3223 int CRectTracker::HitTestHandles(CPoint)const 3224 int CSplitterWnd::IdFromRowCol(int,int)const 3225 int CReBarCtrl::IDToIndex(unsigned int)const 3226 int CToolBarCtrl::Indeterminate(int,int) 3227 void CRect::InflateRect(int,int) 3228 void CRect::InflateRect(int,int,int,int) 3229 void CRect::InflateRect(tagRECT const *) 3230 void CRect::InflateRect(tagSIZE) 3231 void CString::Init() 3232 int CWinApp::InitApplication() 3233 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3234 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3235 void CMapPtrToWord::InitHashTable(unsigned int,int) 3236 void CMapStringToOb::InitHashTable(unsigned int,int) 3237 void CMapStringToPtr::InitHashTable(unsigned int,int) 3238 void CMapStringToString::InitHashTable(unsigned int,int) 3239 void CMapWordToOb::InitHashTable(unsigned int,int) 3240 void CMapWordToPtr::InitHashTable(unsigned int,int) 3241 void CMiniFrameWnd::Initialize() 3242 int CEditView::InitializeReplace() 3243 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3244 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3245 int CWinApp::InitInstance() 3246 int CWinThread::InitInstance() 3247 void CDockContext::InitLoop() 3248 int CDialog::InitModalIndirect(void *,CWnd *) 3249 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3250 int CComboBox::InitStorage(int,unsigned int) 3251 int CListBox::InitStorage(int,unsigned int) 3252 void CSimpleException::InitString() 3253 int CFrameWnd::InModalState()const 3254 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3255 int CString::Insert(int,unsigned short) 3256 int CString::Insert(int,unsigned short const *) 3257 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3258 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3259 __POSITION * CStringList::InsertAfter(__POSITION *,CString const &) 3260 __POSITION * CStringList::InsertAfter(__POSITION *,unsigned short const *) 3261 void CByteArray::InsertAt(int,unsigned char,int) 3262 void CByteArray::InsertAt(int,CByteArray *) 3263 void CDWordArray::InsertAt(int,unsigned long,int) 3264 void CDWordArray::InsertAt(int,CDWordArray *) 3265 void CObArray::InsertAt(int,CObArray *) 3266 void CObArray::InsertAt(int,CObject *,int) 3267 void CPtrArray::InsertAt(int,CPtrArray *) 3268 void CPtrArray::InsertAt(int,void *,int) 3269 void CStringArray::InsertAt(int,CString const &,int) 3270 void CStringArray::InsertAt(int,CStringArray *) 3271 void CStringArray::InsertAt(int,unsigned short const *,int) 3272 void CUIntArray::InsertAt(int,unsigned int,int) 3273 void CUIntArray::InsertAt(int,CUIntArray *) 3274 void CWordArray::InsertAt(int,unsigned short,int) 3275 void CWordArray::InsertAt(int,CWordArray *) 3276 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOW *) 3277 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3278 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3279 __POSITION * CStringList::InsertBefore(__POSITION *,CString const &) 3280 __POSITION * CStringList::InsertBefore(__POSITION *,unsigned short const *) 3281 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 3282 int CListCtrl::InsertColumn(int,unsigned short const *,int,int,int) 3283 int CListCtrl::InsertColumn(int,tagLVCOLUMNW const *) 3284 void CStringArray::InsertEmpty(int,int) 3285 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 3286 int CHeaderCtrl::InsertItem(int,_HD_ITEMW *) 3287 int CListCtrl::InsertItem(int,unsigned short const *) 3288 int CListCtrl::InsertItem(int,unsigned short const *,int) 3289 int CListCtrl::InsertItem(unsigned int,int,unsigned short const *,unsigned int,unsigned int,int,long) 3290 int CListCtrl::InsertItem(tagLVITEMW const *) 3291 int CTabCtrl::InsertItem(int,tagTCITEMW *) 3292 int CTabCtrl::InsertItem(int,unsigned short const *) 3293 int CTabCtrl::InsertItem(int,unsigned short const *,int) 3294 int CTabCtrl::InsertItem(unsigned int,int,unsigned short const *,int,long) 3295 int CTabCtrl::InsertItem(unsigned int,int,unsigned short const *,int,long,unsigned long,unsigned long) 3296 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,unsigned short const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3297 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTW *) 3298 _TREEITEM * CTreeCtrl::InsertItem(unsigned short const *,int,int,_TREEITEM *,_TREEITEM *) 3299 _TREEITEM * CTreeCtrl::InsertItem(unsigned short const *,_TREEITEM *,_TREEITEM *) 3300 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 3301 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,unsigned short const *) 3302 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 3303 int CComboBox::InsertString(int,unsigned short const *) 3304 int CComboBoxEx::InsertString(int,unsigned short const *) 3305 int CListBox::InsertString(int,unsigned short const *) 3306 AFX_INTERFACEMAP const CCmdTarget::interfaceMap 3307 int CDC::IntersectClipRect(int,int,int,int) 3308 int CDC::IntersectClipRect(tagRECT const *) 3309 int CRect::IntersectRect(tagRECT const *,tagRECT const *) 3310 void CWnd::Invalidate(int) 3311 void CCheckListBox::InvalidateCheck(int) 3312 void CCheckListBox::InvalidateItem(int) 3313 void CWnd::InvalidateRect(tagRECT const *,int) 3314 void CWnd::InvalidateRgn(CRgn *,int) 3315 void CDC::InvertRect(tagRECT const *) 3316 int CDC::InvertRgn(CRgn *) 3317 void CMiniFrameWnd::InvertSysMenu() 3318 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3319 int CFileFind::IsArchived()const 3320 int CIPAddressCtrl::IsBlank()const 3321 int CFontDialog::IsBold()const 3322 int CArchive::IsBufferEmpty()const 3323 int CToolBarCtrl::IsButtonChecked(int)const 3324 int CPropertyPage::IsButtonEnabled(int) 3325 int CToolBarCtrl::IsButtonEnabled(int)const 3326 int CToolBarCtrl::IsButtonHidden(int)const 3327 int CToolBarCtrl::IsButtonHighlighted(int)const 3328 int CToolBarCtrl::IsButtonIndeterminate(int)const 3329 int CToolBarCtrl::IsButtonPressed(int)const 3330 int IsButtonUp(tagMSG *) 3331 int CArchive::IsByteSwapping()const 3332 int CWnd::IsChild(CWnd const *)const 3333 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 3334 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3335 int CFileFind::IsCompressed()const 3336 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3337 int IsDialogEx(DLGTEMPLATE const *) 3338 int CWnd::IsDialogMessageW(tagMSG *) 3339 int CFileFind::IsDirectory()const 3340 int IsDirSep(unsigned short) 3341 unsigned int CWnd::IsDlgButtonChecked(int)const 3342 int CControlBar::IsDockBar()const 3343 int CDockBar::IsDockBar()const 3344 int CFileFind::IsDots()const 3345 int CGopherFileFind::IsDots()const 3346 int CMapPtrToPtr::IsEmpty()const 3347 int CMapPtrToWord::IsEmpty()const 3348 int CMapStringToOb::IsEmpty()const 3349 int CMapStringToPtr::IsEmpty()const 3350 int CMapStringToString::IsEmpty()const 3351 int CMapWordToOb::IsEmpty()const 3352 int CMapWordToPtr::IsEmpty()const 3353 int CObList::IsEmpty()const 3354 int CPtrList::IsEmpty()const 3355 int CSimpleList::IsEmpty()const 3356 int CString::IsEmpty()const 3357 int CStringList::IsEmpty()const 3358 int CCheckListBox::IsEnabled(int) 3359 int IsEnterKey(tagMSG *) 3360 int IsEqualGUID(_GUID const &,_GUID const &) 3361 int CControlBar::IsFloating()const 3362 int CFrameWnd::IsFrameWnd()const 3363 int CWnd::IsFrameWnd()const 3364 int IsHelpKey(tagMSG *) 3365 int CFileFind::IsHidden()const 3366 int CWnd::IsIconic()const 3367 int CWinThread::IsIdleMessage(tagMSG *) 3368 int CCmdTarget::IsInvokeAllowed(long) 3369 int CFontDialog::IsItalic()const 3370 int CObject::IsKindOf(CRuntimeconst *)const 3371 int CArchive::IsLoading()const 3372 int CMultiLock::IsLocked(unsigned long) 3373 int CSingleLock::IsLocked() 3374 int CDocument::IsModified() 3375 int CFileFind::IsNormal()const 3376 int CDC::IsPrinting()const 3377 int CFileFind::IsReadOnly()const 3378 int CRect::IsRectEmpty()const 3379 int CRect::IsRectNull()const 3380 int CView::IsSelected(CObject const *)const 3381 int CObject::IsSerializable()const 3382 int CStatusBarCtrl::IsSimple()const 3383 int CArchive::IsStoring()const 3384 int CFontDialog::IsStrikeOut()const 3385 int CFileFind::IsSystem()const 3386 int CFileFind::IsTemporary()const 3387 int CFindReplaceDialog::IsTerminating()const 3388 int CWnd::IsTopParentActive()const 3389 int CFrameWnd::IsTracking()const 3390 int CSplitterWnd::IsTracking() 3391 int CFontDialog::IsUnderline()const 3392 int CControlBar::IsVisible()const 3393 int CWnd::IsWindowEnabled()const 3394 int CWnd::IsWindowVisible()const 3395 int CPropertySheet::IsWizard()const 3396 int CWnd::IsZoomed()const 3397 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3398 int CDragListBox::ItemFromPt(CPoint,int)const 3399 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3400 unsigned short * CToolBarData::items() 3401 int CWnd::KillTimer(int) 3402 int CHeaderCtrl::Layout(_HD_LAYOUT *) 3403 void CToolBar::Layout() 3404 CString CString::Left(int)const 3405 int CComboBox::LimitText(int) 3406 void CEdit::LimitText(int) 3407 void CRichEditCtrl::LimitText(long) 3408 int CEdit::LineFromChar(int)const 3409 long CRichEditCtrl::LineFromChar(long)const 3410 int CEdit::LineIndex(int)const 3411 int CRichEditCtrl::LineIndex(int)const 3412 int CEdit::LineLength(int)const 3413 int CRichEditCtrl::LineLength(int)const 3414 void CEdit::LineScroll(int,int) 3415 void CRichEditCtrl::LineScroll(int,int) 3416 int CDC::LineTo(int,int) 3417 int CDC::LineTo(tagPOINT) 3418 int CDialogTemplate::Load(unsigned short const *) 3419 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 3420 int CFrameWnd::LoadAccelTable(unsigned short const *) 3421 void CFrameWnd::LoadBarState(unsigned short const *) 3422 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 3423 int CBitmapButton::LoadBitmaps(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *) 3424 int CBitmap::LoadBitmapW(unsigned int) 3425 int CBitmap::LoadBitmapW(unsigned short const *) 3426 int CToolBar::LoadBitmapW(unsigned int) 3427 int CToolBar::LoadBitmapW(unsigned short const *) 3428 HICON__ * CWinApp::LoadCursorW(unsigned int)const 3429 HICON__ * CWinApp::LoadCursorW(unsigned short const *)const 3430 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3431 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3432 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3433 HICON__ * CWinApp::LoadIconW(unsigned int)const 3434 HICON__ * CWinApp::LoadIconW(unsigned short const *)const 3435 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 3436 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 3437 int CMenu::LoadMenuIndirectW(void const *) 3438 int CMenu::LoadMenuW(unsigned int) 3439 int CMenu::LoadMenuW(unsigned short const *) 3440 int CBitmap::LoadOEMBitmap(unsigned int) 3441 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 3442 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 3443 HICON__ * CWinApp::LoadStandardCursor(unsigned short const *)const 3444 HICON__ * CWinApp::LoadStandardIcon(unsigned short const *)const 3445 int CControlBarInfo::LoadState(unsigned short const *,int,CDockState *) 3446 void CDockState::LoadState(unsigned short const *) 3447 void CWinApp::LoadStdProfileSettings(unsigned int) 3448 int CString::LoadStringW(unsigned int) 3449 void CDocTemplate::LoadTemplate() 3450 void CMultiDocTemplate::LoadTemplate() 3451 int CToolBar::LoadToolBar(unsigned int) 3452 int CToolBar::LoadToolBar(unsigned short const *) 3453 int CCriticalSection::Lock() 3454 int CCriticalSection::Lock(unsigned long) 3455 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 3456 int CSingleLock::Lock(unsigned long) 3457 int CSyncObject::Lock(unsigned long) 3458 unsigned short const * CEditView::LockBuffer()const 3459 unsigned short * CString::LockBuffer() 3460 void CFile::LockRange(unsigned long,unsigned long) 3461 void CInternetFile::LockRange(unsigned long,unsigned long) 3462 void CMemFile::LockRange(unsigned long,unsigned long) 3463 void CStdioFile::LockRange(unsigned long,unsigned long) 3464 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 3465 int CWnd::LockWindowUpdate() 3466 int CMapPtrToPtr::Lookup(void *,void * &)const 3467 int CMapPtrToWord::Lookup(void *,unsigned short &)const 3468 int CMapStringToOb::Lookup(unsigned short const *,CObject * &)const 3469 int CMapStringToPtr::Lookup(unsigned short const *,void * &)const 3470 int CMapStringToString::Lookup(unsigned short const *,CString &)const 3471 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 3472 int CMapWordToPtr::Lookup(unsigned short,void * &)const 3473 int CMapStringToOb::LookupKey(unsigned short const *,unsigned short const * &)const 3474 int CMapStringToPtr::LookupKey(unsigned short const *,unsigned short const * &)const 3475 int CMapStringToString::LookupKey(unsigned short const *,unsigned short const * &)const 3476 CObject * CHandleMap::LookupPermanent(void *) 3477 CObject * CHandleMap::LookupTemporary(void *) 3478 void CDC::LPtoDP(tagPOINT *,int)const 3479 void CDC::LPtoDP(tagRECT *)const 3480 void CDC::LPtoDP(tagSIZE *)const 3481 void CDC::LPtoHIMETRIC(tagSIZE *)const 3482 void CString::MakeLower() 3483 void CString::MakeReverse() 3484 void CString::MakeUpper() 3485 int CToolBarCtrl::MapAccelerator(unsigned short,unsigned int *) 3486 void CDialog::MapDialogRect(tagRECT *)const 3487 void CArchive::MapObject(CObject const *) 3488 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 3489 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 3490 long CPropertyPage::MapWizardResult(long) 3491 int CToolBarCtrl::MarkButton(int,int) 3492 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 3493 int CFindReplaceDialog::MatchCase()const 3494 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(unsigned short const *,CDocument * &) 3495 int CFileFind::MatchesMask(unsigned long)const 3496 int CFindReplaceDialog::MatchWholeWord()const 3497 void CReBarCtrl::MaximizeBand(unsigned int) 3498 void CMDIChildWnd::MDIActivate() 3499 void CMDIFrameWnd::MDIActivate(CWnd *) 3500 void CMDIFrameWnd::MDICascade(int) 3501 void CMDIFrameWnd::MDICascade() 3502 void CMDIChildWnd::MDIDestroy() 3503 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 3504 void CMDIFrameWnd::MDIIconArrange() 3505 void CMDIChildWnd::MDIMaximize() 3506 void CMDIFrameWnd::MDIMaximize(CWnd *) 3507 void CMDIFrameWnd::MDINext() 3508 void CMDIChildWnd::MDIRestore() 3509 void CMDIFrameWnd::MDIRestore(CWnd *) 3510 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 3511 void CMDIFrameWnd::MDITile(int) 3512 void CMDIFrameWnd::MDITile() 3513 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 3514 void CComboBox::MeasureItem(tagMEASUREITEM*) 3515 void CListBox::MeasureItem(tagMEASUREITEM*) 3516 void CMenu::MeasureItem(tagMEASUREITEM*) 3517 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned int) 3518 int CWnd::MessageBoxW(unsigned short const *,unsigned short const *,unsigned int) 3519 AFX_MSGMAP const CCheckListBox::messageMap 3520 AFX_MSGMAP const CCmdTarget::messageMap 3521 AFX_MSGMAP const CColorDialog::messageMap 3522 AFX_MSGMAP const CCommonDialog::messageMap 3523 AFX_MSGMAP const CControlBar::messageMap 3524 AFX_MSGMAP const CCtrlView::messageMap 3525 AFX_MSGMAP const CDialog::messageMap 3526 AFX_MSGMAP const CDialogBar::messageMap 3527 AFX_MSGMAP const CDockBar::messageMap 3528 AFX_MSGMAP const CDocument::messageMap 3529 AFX_MSGMAP const CEditView::messageMap 3530 AFX_MSGMAP const CFormView::messageMap 3531 AFX_MSGMAP const CFrameWnd::messageMap 3532 AFX_MSGMAP const CListCtrl::messageMap 3533 AFX_MSGMAP const CListView::messageMap 3534 AFX_MSGMAP const CMDIChildWnd::messageMap 3535 AFX_MSGMAP const CMDIFrameWnd::messageMap 3536 AFX_MSGMAP const CMiniDockFrameWnd::messageMap 3537 AFX_MSGMAP const CMiniFrameWnd::messageMap 3538 AFX_MSGMAP const CPreviewView::messageMap 3539 AFX_MSGMAP const CPrintDialog::messageMap 3540 AFX_MSGMAP const CPropertyPage::messageMap 3541 AFX_MSGMAP const CPropertySheet::messageMap 3542 AFX_MSGMAP const CReBar::messageMap 3543 AFX_MSGMAP const CScrollView::messageMap 3544 AFX_MSGMAP const CSplitterWnd::messageMap 3545 AFX_MSGMAP const CStatusBar::messageMap 3546 AFX_MSGMAP const CTabCtrl::messageMap 3547 AFX_MSGMAP const CToolBar::messageMap 3548 AFX_MSGMAP const CToolBarCtrl::messageMap 3549 AFX_MSGMAP const CToolTipCtrl::messageMap 3550 AFX_MSGMAP const CTreeCtrl::messageMap 3551 AFX_MSGMAP const CTreeView::messageMap 3552 AFX_MSGMAP const CView::messageMap 3553 AFX_MSGMAP const CWinApp::messageMap 3554 AFX_MSGMAP const CWnd::messageMap 3555 CString CString::Mid(int)const 3556 CString CString::Mid(int,int)const 3557 void CReBarCtrl::MinimizeBand(unsigned int) 3558 void CPreviewDC::MirrorAttributes() 3559 void CPreviewDC::MirrorFont() 3560 void CPreviewDC::MirrorMappingMode(int) 3561 void CPreviewDC::MirrorViewportOrg() 3562 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,unsigned short const *) 3563 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 3564 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 3565 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 3566 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 3567 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 3568 void CDockContext::Move(CPoint) 3569 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 3570 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 3571 CPoint CDC::MoveTo(int,int) 3572 CPoint CDC::MoveTo(tagPOINT) 3573 void CWnd::MoveWindow(int,int,int,int,int) 3574 void CWnd::MoveWindow(tagRECT const *,int) 3575 CRect CRect::MulDiv(int,int)const 3576 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 3577 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 3578 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 3579 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 3580 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 3581 CMapStringToString::CAssoc * CMapStringToString::NewAssoc() 3582 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 3583 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 3584 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 3585 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 3586 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 3587 void CDialog::NextDlgCtrl()const 3588 unsigned int const CEditView::nMaxSize 3589 int CRectTracker::NormalizeHit(int)const 3590 void CRect::NormalizeRect() 3591 void CFrameWnd::NotifyFloatingWindows(unsigned long) 3592 void CPoint::Offset(int,int) 3593 void CPoint::Offset(tagPOINT) 3594 void CPoint::Offset(tagSIZE) 3595 int CDC::OffsetClipRgn(int,int) 3596 int CDC::OffsetClipRgn(tagSIZE) 3597 int CProgressCtrl::OffsetPos(int) 3598 void CRect::OffsetRect(int,int) 3599 void CRect::OffsetRect(tagPOINT) 3600 void CRect::OffsetRect(tagSIZE) 3601 int CRgn::OffsetRgn(int,int) 3602 int CRgn::OffsetRgn(tagPOINT) 3603 CPoint CDC::OffsetViewportOrg(int,int) 3604 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 3605 CPoint CPreviewDC::OffsetViewportOrg(int,int) 3606 CPoint CDC::OffsetWindowOrg(int,int) 3607 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 3608 void CWnd::OnActivate(unsigned int,CWnd *,int) 3609 void CWnd::OnActivateApp(int,HTASK__ *) 3610 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 3611 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 3612 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 3613 long CWnd::OnActivateTopLevel(unsigned int,long) 3614 void CFormView::OnActivateView(int,CView *,CView *) 3615 void CPreviewView::OnActivateView(int,CView *,CView *) 3616 void CView::OnActivateView(int,CView *,CView *) 3617 long CToolTipCtrl::OnAddTool(unsigned int,long) 3618 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 3619 void CWinApp::OnAppExit() 3620 int CPropertyPage::OnApply() 3621 void CWnd::OnAskCbFormatName(unsigned int,unsigned short *) 3622 int CFrameWnd::OnBarCheck(unsigned int) 3623 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 3624 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 3625 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 3626 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 3627 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 3628 void CCommonDialog::OnCancel() 3629 void CDialog::OnCancel() 3630 void CPropertyPage::OnCancel() 3631 void CSplitterWnd::OnCancelMode() 3632 void CWnd::OnCancelMode() 3633 void CWnd::OnCaptureChanged(CWnd *) 3634 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 3635 void CRectTracker::OnChangedRect(CRect const &) 3636 void CDocument::OnChangedViewList() 3637 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 3638 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 3639 void CWnd::OnChildActivate() 3640 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 3641 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3642 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3643 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3644 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3645 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 3646 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3647 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 3648 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 3649 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3650 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 3651 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 3652 void CFrameWnd::OnClose() 3653 void CMiniDockFrameWnd::OnClose() 3654 void CPropertySheet::OnClose() 3655 void CWnd::OnClose() 3656 void CDocument::OnCloseDocument() 3657 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3658 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3659 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3660 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3661 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3662 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3663 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3664 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 3665 int CColorDialog::OnColorOK() 3666 int CFrameWnd::OnCommand(unsigned int,long) 3667 int CMDIFrameWnd::OnCommand(unsigned int,long) 3668 int CPropertySheet::OnCommand(unsigned int,long) 3669 int CSplitterWnd::OnCommand(unsigned int,long) 3670 int CWnd::OnCommand(unsigned int,long) 3671 long CDialog::OnCommandHelp(unsigned int,long) 3672 long CFrameWnd::OnCommandHelp(unsigned int,long) 3673 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 3674 long CPropertySheet::OnCommandHelp(unsigned int,long) 3675 void CWnd::OnCompacting(unsigned int) 3676 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 3677 void CFrameWnd::OnContextHelp() 3678 void CWinApp::OnContextHelp() 3679 void CWnd::OnContextMenu(CWnd *,CPoint) 3680 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 3681 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 3682 int CControlBar::OnCreate(tagCREATESTRUCTW *) 3683 int CEditView::OnCreate(tagCREATESTRUCTW *) 3684 int CFormView::OnCreate(tagCREATESTRUCTW *) 3685 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 3686 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 3687 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 3688 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 3689 int CView::OnCreate(tagCREATESTRUCTW *) 3690 int CWnd::OnCreate(tagCREATESTRUCTW *) 3691 int CCmdTarget::OnCreateAggregates() 3692 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 3693 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 3694 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 3695 HBRUSH__ * CColorDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 3696 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 3697 HBRUSH__ * CDialog::OnCtlColor(CDC *,CWnd *,unsigned int) 3698 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 3699 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 3700 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 3701 int CDocManager::OnDDECommand(unsigned short *) 3702 int CWinApp::OnDDECommand(unsigned short *) 3703 long CFrameWnd::OnDDEExecute(unsigned int,long) 3704 long CFrameWnd::OnDDEInitiate(unsigned int,long) 3705 long CFrameWnd::OnDDETerminate(unsigned int,long) 3706 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 3707 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 3708 void CControlBar::OnDestroy() 3709 void CEditView::OnDestroy() 3710 void CFrameWnd::OnDestroy() 3711 void CMDIChildWnd::OnDestroy() 3712 void CMDIFrameWnd::OnDestroy() 3713 void CTabCtrl::OnDestroy() 3714 void CTreeCtrl::OnDestroy() 3715 void CTreeView::OnDestroy() 3716 void CView::OnDestroy() 3717 void CWnd::OnDestroy() 3718 void CWnd::OnDestroyClipboard() 3719 int CWnd::OnDeviceChange(unsigned int,unsigned long) 3720 void CWnd::OnDevModeChange(unsigned short *) 3721 long CToolTipCtrl::OnDisableModal(unsigned int,long) 3722 void CSplitterWnd::OnDisplayChange() 3723 long CWnd::OnDisplayChange(unsigned int,long) 3724 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 3725 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 3726 void CView::OnDragLeave() 3727 long CWnd::OnDragList(unsigned int,long) 3728 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 3729 unsigned long CView::OnDragScroll(unsigned long,CPoint) 3730 void CCtrlView::OnDraw(CDC *) 3731 void CFormView::OnDraw(CDC *) 3732 void CPreviewView::OnDraw(CDC *) 3733 void CView::OnDraw(CDC *) 3734 void CWnd::OnDrawClipboard() 3735 void CWnd::OnDrawItem(int,tagDRAWITEM*) 3736 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 3737 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 3738 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 3739 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 3740 void CFrameWnd::OnDropFiles(HDROP__ *) 3741 void CWnd::OnDropFiles(HDROP__ *) 3742 int CEditView::OnEditChange() 3743 void CEditView::OnEditClear() 3744 void CEditView::OnEditCopy() 3745 void CEditView::OnEditCut() 3746 void CEditView::OnEditFind() 3747 void CEditView::OnEditFindReplace(int) 3748 void CEditView::OnEditPaste() 3749 void CEditView::OnEditRepeat() 3750 void CEditView::OnEditReplace() 3751 void CEditView::OnEditSelectAll() 3752 void CEditView::OnEditUndo() 3753 void CFrameWnd::OnEnable(int) 3754 void CToolTipCtrl::OnEnable(int) 3755 void CWnd::OnEnable(int) 3756 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 3757 void CView::OnEndPrinting(CDC *,CPrintInfo *) 3758 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 3759 void CFrameWnd::OnEndSession(int) 3760 void CWnd::OnEndSession(int) 3761 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 3762 void CWnd::OnEnterIdle(unsigned int,CWnd *) 3763 void CWnd::OnEnterMenuLoop(int) 3764 int CFrameWnd::OnEraseBkgnd(CDC *) 3765 int CPreviewView::OnEraseBkgnd(CDC *) 3766 int CReBar::OnEraseBkgnd(CDC *) 3767 int CToolBar::OnEraseBkgnd(CDC *) 3768 int CWnd::OnEraseBkgnd(CDC *) 3769 void CWnd::OnExitMenuLoop(int) 3770 void CDocument::OnFileClose() 3771 void CFileDialog::OnFileNameChange() 3772 int CFileDialog::OnFileNameOK() 3773 void CDocManager::OnFileNew() 3774 void CWinApp::OnFileNew() 3775 void CDocManager::OnFileOpen() 3776 void CWinApp::OnFileOpen() 3777 void CView::OnFilePrint() 3778 void CView::OnFilePrintPreview() 3779 void CWinApp::OnFilePrintSetup() 3780 void CDocument::OnFileSave() 3781 void CDocument::OnFileSaveAs() 3782 void CDocument::OnFileSendMail() 3783 void COleDocument::OnFileSendMail() 3784 void CCmdTarget::OnFinalRelease() 3785 void CDocument::OnFinalRelease() 3786 void CWnd::OnFinalRelease() 3787 void CEditView::OnFindNext(unsigned short const *,int,int) 3788 long CEditView::OnFindReplaceCmd(unsigned int,long) 3789 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 3790 void CFileDialog::OnFolderChange() 3791 void CWnd::OnFontChange() 3792 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 3793 unsigned int CWnd::OnGetDlgCode() 3794 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 3795 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 3796 long CMiniFrameWnd::OnGetText(unsigned int,long) 3797 long CStatusBar::OnGetText(unsigned int,long) 3798 long CMiniFrameWnd::OnGetTextLength(unsigned int,long) 3799 long CStatusBar::OnGetTextLength(unsigned int,long) 3800 HBRUSH__ * CWnd::OnGrayCtlColor(CDC *,CWnd *,unsigned int) 3801 void CReBar::OnHeightChange(tagNMHDR *,long *) 3802 void CFrameWnd::OnHelp() 3803 void CWinApp::OnHelp() 3804 void CWnd::OnHelp() 3805 void CWinApp::OnHelpFinder() 3806 void CWnd::OnHelpFinder() 3807 long CControlBar::OnHelpHitTest(unsigned int,long) 3808 long CDialog::OnHelpHitTest(unsigned int,long) 3809 long CFrameWnd::OnHelpHitTest(unsigned int,long) 3810 void CWinApp::OnHelpIndex() 3811 void CWnd::OnHelpIndex() 3812 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 3813 int CWnd::OnHelpInfo(tagHELPINFO *) 3814 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 3815 void CWinApp::OnHelpUsing() 3816 void CWnd::OnHelpUsing() 3817 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3818 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3819 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3820 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3821 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 3822 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 3823 void CWnd::OnIconEraseBkgnd(CDC *) 3824 void CDocTemplate::OnIdle() 3825 void CDocument::OnIdle() 3826 int CWinApp::OnIdle(long) 3827 int CWinThread::OnIdle(long) 3828 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 3829 void CFrameWnd::OnIdleUpdateCmdUI() 3830 void CMDIFrameWnd::OnIdleUpdateCmdUI() 3831 int CDialog::OnInitDialog() 3832 int CPropertySheet::OnInitDialog() 3833 void CFileDialog::OnInitDone() 3834 void CControlBar::OnInitialUpdate() 3835 void CFormView::OnInitialUpdate() 3836 void CView::OnInitialUpdate() 3837 void CFrameWnd::OnInitMenu(CMenu *) 3838 void CWnd::OnInitMenu(CMenu *) 3839 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 3840 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 3841 void CSplitterWnd::OnInvertTracker(CRect const &) 3842 void CDockContext::OnKey(int,int) 3843 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 3844 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 3845 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 3846 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 3847 int CPropertyPage::OnKillActive() 3848 void CWnd::OnKillFocus(CWnd *) 3849 long CCheckListBox::OnLBAddString(unsigned int,long) 3850 long CCheckListBox::OnLBFindString(unsigned int,long) 3851 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 3852 long CCheckListBox::OnLBGetItemData(unsigned int,long) 3853 long CCheckListBox::OnLBGetText(unsigned int,long) 3854 long CCheckListBox::OnLBInsertString(unsigned int,long) 3855 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 3856 long CCheckListBox::OnLBSelectString(unsigned int,long) 3857 long CCheckListBox::OnLBSetItemData(unsigned int,long) 3858 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 3859 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 3860 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 3861 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 3862 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 3863 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 3864 void CControlBar::OnLButtonDown(unsigned int,CPoint) 3865 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 3866 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 3867 void CWnd::OnLButtonDown(unsigned int,CPoint) 3868 void CMiniFrameWnd::OnLButtonUp(unsigned int,CPoint) 3869 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 3870 void CWnd::OnLButtonUp(unsigned int,CPoint) 3871 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 3872 void CWnd::OnMButtonDown(unsigned int,CPoint) 3873 void CWnd::OnMButtonUp(unsigned int,CPoint) 3874 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 3875 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 3876 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 3877 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 3878 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 3879 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 3880 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 3881 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 3882 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3883 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3884 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3885 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3886 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 3887 void CMiniFrameWnd::OnMouseMove(unsigned int,CPoint) 3888 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 3889 void CWnd::OnMouseMove(unsigned int,CPoint) 3890 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 3891 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 3892 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 3893 void CWnd::OnMove(int,int) 3894 void CWnd::OnMoving(unsigned int,tagRECT *) 3895 int CFrameWnd::OnNcActivate(int) 3896 int CMDIChildWnd::OnNcActivate(int) 3897 int CMiniFrameWnd::OnNcActivate(int) 3898 int CWnd::OnNcActivate(int) 3899 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3900 void CMiniFrameWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3901 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3902 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3903 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3904 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 3905 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 3906 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 3907 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 3908 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 3909 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 3910 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 3911 int CWnd::OnNcCreate(tagCREATESTRUCTW *) 3912 void CListCtrl::OnNcDestroy() 3913 void CListView::OnNcDestroy() 3914 void CWnd::OnNcDestroy() 3915 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 3916 unsigned int CStatusBar::OnNcHitTest(CPoint) 3917 unsigned int CToolBar::OnNcHitTest(CPoint) 3918 unsigned int CWnd::OnNcHitTest(CPoint) 3919 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 3920 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 3921 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 3922 void CMiniFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 3923 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 3924 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 3925 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 3926 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 3927 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 3928 void CWnd::OnNcMouseMove(unsigned int,CPoint) 3929 void CDockBar::OnNcPaint() 3930 void CMiniFrameWnd::OnNcPaint() 3931 void CReBar::OnNcPaint() 3932 void CStatusBar::OnNcPaint() 3933 void CToolBar::OnNcPaint() 3934 void CWnd::OnNcPaint() 3935 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 3936 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 3937 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 3938 int CDocument::OnNewDocument() 3939 void CPreviewView::OnNextPage() 3940 int CView::OnNextPaneCmd(unsigned int) 3941 int CFileDialog::OnNotify(unsigned int,long,long *) 3942 int CPropertyPage::OnNotify(unsigned int,long,long *) 3943 int CSplitterWnd::OnNotify(unsigned int,long,long *) 3944 int CWnd::OnNotify(unsigned int,long,long *) 3945 long CWnd::OnNTCtlColor(unsigned int,long) 3946 void CPreviewView::OnNumPageChange() 3947 void CCommonDialog::OnOK() 3948 void CDialog::OnOK() 3949 void CPropertyPage::OnOK() 3950 int CDocument::OnOpenDocument(unsigned short const *) 3951 int CWinApp::OnOpenRecentFile(unsigned int) 3952 void CControlBar::OnPaint() 3953 void CCtrlView::OnPaint() 3954 void CDockBar::OnPaint() 3955 void CReBar::OnPaint() 3956 void CSplitterWnd::OnPaint() 3957 void CStatusBar::OnPaint() 3958 void CToolBar::OnPaint() 3959 void CView::OnPaint() 3960 void CWnd::OnPaint() 3961 void CWnd::OnPaintClipboard(CWnd *,void *) 3962 void CFrameWnd::OnPaletteChanged(CWnd *) 3963 void CWnd::OnPaletteChanged(CWnd *) 3964 void CWnd::OnPaletteIsChanging(CWnd *) 3965 void CWnd::OnParentNotify(unsigned int,long) 3966 long CFrameWnd::OnPopMessageString(unsigned int,long) 3967 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 3968 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 3969 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 3970 void CView::OnPrepareDC(CDC *,CPrintInfo *) 3971 int CEditView::OnPreparePrinting(CPrintInfo *) 3972 int CView::OnPreparePrinting(CPrintInfo *) 3973 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 3974 void CPreviewView::OnPreviewClose() 3975 void CPreviewView::OnPreviewPrint() 3976 void CPreviewView::OnPrevPage() 3977 void CEditView::OnPrint(CDC *,CPrintInfo *) 3978 void CView::OnPrint(CDC *,CPrintInfo *) 3979 void CPrintDialog::OnPrintSetup() 3980 long CWnd::OnQuery3dControls(unsigned int,long) 3981 int CPropertyPage::OnQueryCancel() 3982 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 3983 HICON__ * CWnd::OnQueryDragIcon() 3984 int CFrameWnd::OnQueryEndSession() 3985 int CWnd::OnQueryEndSession() 3986 int CFrameWnd::OnQueryNewPalette() 3987 int CWnd::OnQueryNewPalette() 3988 int CWnd::OnQueryOpen() 3989 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 3990 void CWnd::OnRButtonDown(unsigned int,CPoint) 3991 void CWnd::OnRButtonUp(unsigned int,CPoint) 3992 void CReBar::OnRecalcParent() 3993 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 3994 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 3995 void CWnd::OnRenderAllFormats() 3996 void CWnd::OnRenderFormat(unsigned int) 3997 void CEditView::OnReplaceAll(unsigned short const *,unsigned short const *,int) 3998 void CEditView::OnReplaceSel(unsigned short const *,int,int,unsigned short const *) 3999 void CPropertyPage::OnReset() 4000 int CDocument::OnSaveDocument(unsigned short const *) 4001 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4002 int CView::OnScroll(unsigned int,unsigned int,int) 4003 int CScrollView::OnScrollBy(CSize,int) 4004 int CView::OnScrollBy(CSize,int) 4005 int CPropertyPage::OnSetActive() 4006 long CToolBar::OnSetBitmapSize(unsigned int,long) 4007 long CToolBar::OnSetButtonSize(unsigned int,long) 4008 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4009 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4010 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4011 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4012 long CPropertySheet::OnSetDefID(unsigned int,long) 4013 void CFormView::OnSetFocus(CWnd *) 4014 void CFrameWnd::OnSetFocus(CWnd *) 4015 void CWnd::OnSetFocus(CWnd *) 4016 long CCheckListBox::OnSetFont(unsigned int,long) 4017 void CDialog::OnSetFont(CFont *) 4018 long CEditView::OnSetFont(unsigned int,long) 4019 long CFrameWnd::OnSetMessageString(unsigned int,long) 4020 long CStatusBar::OnSetMinHeight(unsigned int,long) 4021 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4022 long CToolBar::OnSetSizeHelper(CSize &,long) 4023 long CMiniFrameWnd::OnSetText(unsigned int,long) 4024 long CStatusBar::OnSetText(unsigned int,long) 4025 void CWnd::OnSettingChange(unsigned int,unsigned short const *) 4026 unsigned int CFileDialog::OnShareViolation(unsigned short const *) 4027 long CReBar::OnShowBand(unsigned int,long) 4028 void CWnd::OnShowWindow(int,unsigned int) 4029 void CFrameWnd::OnSize(unsigned int,int,int) 4030 void CMDIChildWnd::OnSize(unsigned int,int,int) 4031 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4032 void CPreviewView::OnSize(unsigned int,int,int) 4033 void CScrollView::OnSize(unsigned int,int,int) 4034 void CSplitterWnd::OnSize(unsigned int,int,int) 4035 void CStatusBar::OnSize(unsigned int,int,int) 4036 void CWnd::OnSize(unsigned int,int,int) 4037 void CWnd::OnSizeClipboard(CWnd *,void *) 4038 long CControlBar::OnSizeParent(unsigned int,long) 4039 long CDockBar::OnSizeParent(unsigned int,long) 4040 void CWnd::OnSizing(unsigned int,tagRECT *) 4041 int CView::OnSplitCmd(unsigned int) 4042 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 4043 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4044 void CWnd::OnStyleChanged(int,tagSTYLE*) 4045 void CWnd::OnStyleChanging(int,tagSTYLE*) 4046 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 4047 void CToolBar::OnSysColorChange() 4048 void CWnd::OnSysColorChange() 4049 void CFrameWnd::OnSysCommand(unsigned int,long) 4050 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4051 void CPropertySheet::OnSysCommand(unsigned int,long) 4052 void CSplitterWnd::OnSysCommand(unsigned int,long) 4053 void CWnd::OnSysCommand(unsigned int,long) 4054 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 4055 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4056 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4057 void CWnd::OnTCard(unsigned int,unsigned long) 4058 void CEditView::OnTextNotFound(unsigned short const *) 4059 void CWnd::OnTimeChange() 4060 void CControlBar::OnTimer(unsigned int) 4061 void CWnd::OnTimer(unsigned int) 4062 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4063 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4064 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4065 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4066 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4067 void CFileDialog::OnTypeChange() 4068 void CView::OnUpdate(CView *,long,CObject *) 4069 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4070 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4071 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4072 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4073 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4074 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4075 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4076 void CEditView::OnUpdateEditUndo(CCmdUI *) 4077 void CDocument::OnUpdateFileSendMail(CCmdUI *) 4078 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4079 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 4080 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4081 void CFrameWnd::OnUpdateFrameTitle(int) 4082 void CMDIChildWnd::OnUpdateFrameTitle(int) 4083 void CMDIFrameWnd::OnUpdateFrameTitle(int) 4084 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 4085 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 4086 void CEditView::OnUpdateNeedClip(CCmdUI *) 4087 void CEditView::OnUpdateNeedFind(CCmdUI *) 4088 void CEditView::OnUpdateNeedSel(CCmdUI *) 4089 void CEditView::OnUpdateNeedText(CCmdUI *) 4090 void CPreviewView::OnUpdateNextPage(CCmdUI *) 4091 void CView::OnUpdateNextPaneMenu(CCmdUI *) 4092 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 4093 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 4094 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 4095 void CView::OnUpdateSplitCmd(CCmdUI *) 4096 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 4097 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 4098 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 4099 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4100 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4101 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4102 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4103 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4104 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 4105 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 4106 void CMDIFrameWnd::OnWindowNew() 4107 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 4108 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 4109 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 4110 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 4111 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 4112 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 4113 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 4114 void CWnd::OnWinIniChange(unsigned short const *) 4115 long CPropertyPage::OnWizardBack() 4116 int CPropertyPage::OnWizardFinish() 4117 long CPropertyPage::OnWizardNext() 4118 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 4119 void CPreviewView::OnZoomIn() 4120 void CPreviewView::OnZoomOut() 4121 int CAnimateCtrl::Open(unsigned int) 4122 int CAnimateCtrl::Open(unsigned short const *) 4123 int CFile::Open(unsigned short const *,unsigned int,CFileException *) 4124 int CMirrorFile::Open(unsigned short const *,unsigned int,CFileException *) 4125 int CStdioFile::Open(unsigned short const *,unsigned int,CFileException *) 4126 int CWnd::OpenClipboard() 4127 CDocument * CDocManager::OpenDocumentFile(unsigned short const *) 4128 CDocument * CMultiDocTemplate::OpenDocumentFile(unsigned short const *,int) 4129 CDocument * CSingleDocTemplate::OpenDocumentFile(unsigned short const *,int) 4130 CDocument * CWinApp::OpenDocumentFile(unsigned short const *) 4131 CInternetFile * CFtpConnection::OpenFile(unsigned short const *,unsigned long,unsigned long,unsigned long) 4132 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,unsigned short const *,unsigned long) 4133 int CWnd::OpenIcon() 4134 CHttpFile * CHttpConnection::OpenRequest(int,unsigned short const *,unsigned short const *,unsigned long,unsigned short const * *,unsigned short const *,unsigned long) 4135 CHttpFile * CHttpConnection::OpenRequest(unsigned short const *,unsigned short const *,unsigned short const *,unsigned long,unsigned short const * *,unsigned short const *,unsigned long) 4136 CStdioFile * CInternetSession::OpenURL(unsigned short const *,unsigned long,unsigned long,unsigned short const *,unsigned long) 4137 int CHeaderCtrl::OrderToIndex(int)const 4138 int CFileException::OsErrorToException(long) 4139 void CDumpContext::OutputString(unsigned short const *) 4140 int CEditView::PaginateTo(CDC *,CPrintInfo *) 4141 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 4142 int CDC::PaintRgn(CRgn *) 4143 void CWinApp::ParseCommandLine(CCommandLineInfo &) 4144 void CCommandLineInfo::ParseLast(int) 4145 void CCommandLineInfo::ParseParam(char const *,int,int) 4146 void CCommandLineInfo::ParseParam(unsigned short const *,int,int) 4147 void CCommandLineInfo::ParseParamFlag(char const *) 4148 void CCommandLineInfo::ParseParamNotFlag(char const *) 4149 void CCommandLineInfo::ParseParamNotFlag(unsigned short const *) 4150 void CComboBox::Paste() 4151 void CEdit::Paste() 4152 void CRichEditCtrl::Paste() 4153 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 4154 int CDC::PatBlt(int,int,int,int,unsigned long) 4155 int CDC::Pie(int,int,int,int,int,int,int,int) 4156 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 4157 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 4158 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 4159 int CDC::PlayMetaFile(HMETAFILE__ *) 4160 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 4161 int CDC::PolyBezier(tagPOINT const *,int) 4162 int CDC::PolyBezierTo(tagPOINT const *,int) 4163 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 4164 int CDC::Polygon(tagPOINT *,int) 4165 int CDC::Polyline(tagPOINT *,int) 4166 int CDC::PolylineTo(tagPOINT const *,int) 4167 int CDC::PolyPolygon(tagPOINT *,int *,int) 4168 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 4169 void CToolTipCtrl::Pop() 4170 CPoint CEdit::PosFromChar(unsigned int)const 4171 void CPreviewView::PositionPage(unsigned int) 4172 int CWnd::PostMessageW(unsigned int,unsigned int,long) 4173 void CDialog::PostModal() 4174 void CControlBar::PostNcDestroy() 4175 void CFindReplaceDialog::PostNcDestroy() 4176 void CFrameWnd::PostNcDestroy() 4177 void CView::PostNcDestroy() 4178 void CWnd::PostNcDestroy() 4179 int CWinThread::PostThreadMessageW(unsigned int,unsigned int,long) 4180 void CDocument::PreCloseFrame(CFrameWnd *) 4181 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 4182 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 4183 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 4184 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 4185 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4186 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 4187 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 4188 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4189 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4190 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 4191 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 4192 int CView::PreCreateWindow(tagCREATESTRUCTW &) 4193 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 4194 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 4195 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 4196 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 4197 void CDialog::PreInitDialog() 4198 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 4199 HWND__ * CDialog::PreModal() 4200 HWND__ * CDataExchange::PrepareCtrl(int) 4201 HWND__ * CDataExchange::PrepareEditCtrl(int) 4202 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 4203 int CPropertySheet::PressButton(int) 4204 int CToolBarCtrl::PressButton(int,int) 4205 void CCheckListBox::PreSubclassWindow() 4206 void CDragListBox::PreSubclassWindow() 4207 void CWnd::PreSubclassWindow() 4208 int CWnd::PreTranslateInput(tagMSG *) 4209 int CControlBar::PreTranslateMessage(tagMSG *) 4210 int CDialog::PreTranslateMessage(tagMSG *) 4211 int CFormView::PreTranslateMessage(tagMSG *) 4212 int CFrameWnd::PreTranslateMessage(tagMSG *) 4213 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 4214 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 4215 int CPropertyPage::PreTranslateMessage(tagMSG *) 4216 int CPropertySheet::PreTranslateMessage(tagMSG *) 4217 int CWinThread::PreTranslateMessage(tagMSG *) 4218 int CWnd::PreTranslateMessage(tagMSG *) 4219 void CDialog::PrevDlgCtrl()const 4220 void CWnd::Print(CDC *,unsigned long)const 4221 int CPrintDialog::PrintAll()const 4222 void CWnd::PrintClient(CDC *,unsigned long)const 4223 int CPrintDialog::PrintCollate()const 4224 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 4225 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 4226 int CPrintDialog::PrintRange()const 4227 int CPrintDialog::PrintSelection()const 4228 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 4229 int CWinThread::ProcessMessageFilter(int,tagMSG *) 4230 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 4231 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 4232 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 4233 int CRect::PtInRect(tagPOINT)const 4234 int CRgn::PtInRegion(int,int)const 4235 int CRgn::PtInRegion(tagPOINT)const 4236 int CDC::PtVisible(tagPOINT)const 4237 int CDC::PtVisible(int,int)const 4238 int CMetaFileDC::PtVisible(tagPOINT)const 4239 int CMetaFileDC::PtVisible(int,int)const 4240 int CEvent::PulseEvent() 4241 int CWinThread::PumpMessage() 4242 int CFtpConnection::PutFile(unsigned short const *,unsigned short const *,unsigned long,unsigned long) 4243 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 4244 int CHttpFile::QueryInfo(unsigned long,CString &,unsigned long *)const 4245 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 4246 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 4247 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 4248 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 4249 int CInternetConnection::QueryOption(unsigned long,CString &)const 4250 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 4251 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 4252 int CInternetFile::QueryOption(unsigned long,CString &)const 4253 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 4254 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 4255 int CInternetSession::QueryOption(unsigned long,CString &)const 4256 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 4257 long CPropertyPage::QuerySiblings(unsigned int,long) 4258 unsigned int CArchive::Read(void *,unsigned int) 4259 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 4260 unsigned int CFile::Read(void *,unsigned int) 4261 int CImageList::Read(CArchive *) 4262 unsigned int CInternetFile::Read(void *,unsigned int) 4263 unsigned int CMemFile::Read(void *,unsigned int) 4264 unsigned int CStdioFile::Read(void *,unsigned int) 4265 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 4266 unsigned long CArchive::ReadCount() 4267 void CEditView::ReadFromArchive(CArchive &,unsigned int) 4268 unsigned long CFile::ReadHuge(void *,unsigned long) 4269 void CRecentFileList::ReadList() 4270 CObject * CArchive::ReadObject(CRuntimeconst *) 4271 int CArchive::ReadString(CString &) 4272 unsigned short * CArchive::ReadString(unsigned short *,unsigned int) 4273 int CInternetFile::ReadString(CString &) 4274 unsigned short * CInternetFile::ReadString(unsigned short *,unsigned int) 4275 int CStdioFile::ReadString(CString &) 4276 unsigned short * CStdioFile::ReadString(unsigned short *,unsigned int) 4277 unsigned int CDC::RealizePalette() 4278 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 4279 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 4280 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 4281 void CFrameWnd::RecalcLayout(int) 4282 void CMiniDockFrameWnd::RecalcLayout(int) 4283 void CSplitterWnd::RecalcLayout() 4284 int CDC::Rectangle(int,int,int,int) 4285 int CDC::Rectangle(tagRECT const *) 4286 CRect const CFrameWnd::rectDefault 4287 int CRgn::RectInRegion(tagRECT const *)const 4288 int CDC::RectVisible(tagRECT const *)const 4289 int CMetaFileDC::RectVisible(tagRECT const *)const 4290 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 4291 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 4292 int CListCtrl::RedrawItems(int,int) 4293 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 4294 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 4295 int CWnd::ReflectLastMsg(HWND__ *,long *) 4296 void CDocManager::RegisterShellFileTypes(int) 4297 void CWinApp::RegisterShellFileTypes(int) 4298 void CWinApp::RegisterShellFileTypesCompat() 4299 void CToolTipCtrl::RelayEvent(tagMSG *) 4300 unsigned long CArchiveStream::Release() 4301 void CString::Release() 4302 void CString::Release(CStringData *) 4303 void CDC::ReleaseAttribDC() 4304 void CString::ReleaseBuffer(int) 4305 int CWnd::ReleaseDC(CDC *) 4306 void CDocument::ReleaseFile(CFile *,int) 4307 void CDC::ReleaseOutputDC() 4308 void CMetaFileDC::ReleaseOutputDC() 4309 void CPreviewDC::ReleaseOutputDC() 4310 int CTypedSimpleList::Remove(CThreadData *) 4311 int CTypedSimpleList::Remove(CDynLinkLibrary *) 4312 int CTypedSimpleList::Remove(CFrameWnd *) 4313 void CFile::Remove(unsigned short const *) 4314 int CFtpConnection::Remove(unsigned short const *) 4315 int CImageList::Remove(int) 4316 void CRecentFileList::Remove(int) 4317 int CSimpleList::Remove(void *) 4318 int CString::Remove(unsigned short) 4319 void CByteArray::RemoveAll() 4320 void CDWordArray::RemoveAll() 4321 void CMapPtrToPtr::RemoveAll() 4322 void CMapPtrToWord::RemoveAll() 4323 void CMapStringToOb::RemoveAll() 4324 void CMapStringToPtr::RemoveAll() 4325 void CMapStringToString::RemoveAll() 4326 void CMapWordToOb::RemoveAll() 4327 void CMapWordToPtr::RemoveAll() 4328 void CObArray::RemoveAll() 4329 void CObList::RemoveAll() 4330 void CPtrArray::RemoveAll() 4331 void CPtrList::RemoveAll() 4332 void CStringArray::RemoveAll() 4333 void CStringList::RemoveAll() 4334 void CTypeLibCacheMap::RemoveAll(void *) 4335 void CUIntArray::RemoveAll() 4336 void CWordArray::RemoveAll() 4337 void CByteArray::RemoveAt(int,int) 4338 void CDWordArray::RemoveAt(int,int) 4339 void CObArray::RemoveAt(int,int) 4340 void CObList::RemoveAt(__POSITION *) 4341 void CPtrArray::RemoveAt(int,int) 4342 void CPtrList::RemoveAt(__POSITION *) 4343 void CStringArray::RemoveAt(int,int) 4344 void CStringList::RemoveAt(__POSITION *) 4345 void CUIntArray::RemoveAt(int,int) 4346 void CWordArray::RemoveAt(int,int) 4347 int CDockBar::RemoveControlBar(CControlBar *,int,int) 4348 void CFrameWnd::RemoveControlBar(CControlBar *) 4349 int CFtpConnection::RemoveDirectoryW(unsigned short const *) 4350 void CDocTemplate::RemoveDocument(CDocument *) 4351 void CMultiDocTemplate::RemoveDocument(CDocument *) 4352 void CSingleDocTemplate::RemoveDocument(CDocument *) 4353 void CFrameWnd::RemoveFrameWnd() 4354 void CHandleMap::RemoveHandle(void *) 4355 CObject * CObList::RemoveHead() 4356 void * CPtrList::RemoveHead() 4357 CString CStringList::RemoveHead() 4358 void CTabCtrl::RemoveImage(int) 4359 void CListCtrl::RemoveImageList(int) 4360 void CListView::RemoveImageList(int) 4361 void CTreeCtrl::RemoveImageList(int) 4362 void CTreeView::RemoveImageList(int) 4363 int CMapPtrToPtr::RemoveKey(void *) 4364 int CMapPtrToWord::RemoveKey(void *) 4365 int CMapStringToOb::RemoveKey(unsigned short const *) 4366 int CMapStringToPtr::RemoveKey(unsigned short const *) 4367 int CMapStringToString::RemoveKey(unsigned short const *) 4368 int CMapWordToOb::RemoveKey(unsigned short) 4369 int CMapWordToPtr::RemoveKey(unsigned short) 4370 int CMenu::RemoveMenu(unsigned int,unsigned int) 4371 void CPropertySheet::RemovePage(int) 4372 void CPropertySheet::RemovePage(CPropertyPage *) 4373 void CDockBar::RemovePlaceHolder(CControlBar *) 4374 CObject * CObList::RemoveTail() 4375 void * CPtrList::RemoveTail() 4376 CString CStringList::RemoveTail() 4377 void CDocument::RemoveView(CView *) 4378 void CFile::Rename(unsigned short const *,unsigned short const *) 4379 int CFtpConnection::Rename(unsigned short const *,unsigned short const *) 4380 int CImageList::Replace(int,HICON__ *) 4381 int CImageList::Replace(int,CBitmap *,CBitmap *) 4382 int CString::Replace(unsigned short,unsigned short) 4383 int CString::Replace(unsigned short const *,unsigned short const *) 4384 int CFindReplaceDialog::ReplaceAll()const 4385 int CFindReplaceDialog::ReplaceCurrent()const 4386 void CEdit::ReplaceSel(unsigned short const *,int) 4387 void CRichEditCtrl::ReplaceSel(unsigned short const *,int) 4388 int CException::ReportError(unsigned int,unsigned int) 4389 void CDocument::ReportSaveLoadException(unsigned short const *,CException *,int,unsigned int) 4390 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 4391 void CRichEditCtrl::RequestResize() 4392 void CComboBox::ResetContent() 4393 void CListBox::ResetContent() 4394 int CDC::ResetDCW(_devicemodeW const *) 4395 int CEvent::ResetEvent() 4396 void CControlBar::ResetTimer(unsigned int,unsigned int) 4397 int CPalette::ResizePalette(unsigned int) 4398 void CScrollView::ResizeParentToFit(int) 4399 void CWaitCursor::Restore() 4400 int CDC::RestoreDC(int) 4401 int CPreviewDC::RestoreDC(int) 4402 void CToolBarCtrl::RestoreState(HKEY__ *,unsigned short const *,unsigned short const *) 4403 void CCmdTarget::RestoreWaitCursor() 4404 unsigned long CWinThread::ResumeThread() 4405 int CString::ReverseFind(unsigned short)const 4406 long CArchiveStream::Revert() 4407 CString CString::Right(int)const 4408 int CDC::RoundRect(int,int,int,int,int,int) 4409 int CDC::RoundRect(tagRECT const *,tagPOINT) 4410 int CWinApp::Run() 4411 int CWinThread::Run() 4412 int CWnd::RunModalLoop(unsigned long) 4413 int CString::SafeStrlen(unsigned short const *) 4414 int CEditView::SameAsSelected(unsigned short const *,int) 4415 int CDocManager::SaveAllModified() 4416 int CDocTemplate::SaveAllModified() 4417 int CWinApp::SaveAllModified() 4418 void CFrameWnd::SaveBarState(unsigned short const *)const 4419 int CDC::SaveDC() 4420 int CPreviewDC::SaveDC() 4421 int CFormView::SaveFocusControl() 4422 int CDocument::SaveModified() 4423 int CControlBarInfo::SaveState(unsigned short const *,int) 4424 void CDockState::SaveState(unsigned short const *) 4425 void CToolBarCtrl::SaveState(HKEY__ *,unsigned short const *,unsigned short const *) 4426 void CWinApp::SaveStdProfileSettings() 4427 void CDockState::ScalePoint(CPoint &) 4428 void CDockState::ScaleRectPos(CRect &) 4429 CSize CDC::ScaleViewportExt(int,int,int,int) 4430 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 4431 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 4432 CSize CDC::ScaleWindowExt(int,int,int,int) 4433 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 4434 void CWnd::ScreenToClient(tagPOINT *)const 4435 void CWnd::ScreenToClient(tagRECT *)const 4436 int CListCtrl::Scroll(CSize) 4437 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 4438 void CScrollView::ScrollToDevicePosition(tagPOINT) 4439 void CScrollView::ScrollToPosition(tagPOINT) 4440 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 4441 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 4442 int CFindReplaceDialog::SearchDown()const 4443 int CAnimateCtrl::Seek(unsigned int) 4444 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 4445 long CFile::Seek(long,unsigned int) 4446 long CInternetFile::Seek(long,unsigned int) 4447 long CMemFile::Seek(long,unsigned int) 4448 long CStdioFile::Seek(long,unsigned int) 4449 void CFile::SeekToBegin() 4450 unsigned long CFile::SeekToEnd() 4451 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 4452 int CDC::SelectClipPath(int) 4453 int CDC::SelectClipRgn(CRgn *) 4454 int CDC::SelectClipRgn(CRgn *,int) 4455 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 4456 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 4457 int CTreeCtrl::SelectItem(_TREEITEM *) 4458 int CDC::SelectObject(CRgn *) 4459 CBitmap * CDC::SelectObject(CBitmap *) 4460 CBrush * CDC::SelectObject(CBrush *) 4461 CGdiObject * CDC::SelectObject(CGdiObject *) 4462 CPen * CDC::SelectObject(CPen *) 4463 void * CDC::SelectObject(void *) 4464 CFont * CDC::SelectObject(CFont *) 4465 CFont * CPreviewDC::SelectObject(CFont *) 4466 CPalette * CDC::SelectPalette(CPalette *,int) 4467 void CWinApp::SelectPrinter(void *,void *,int) 4468 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 4469 CGdiObject * CDC::SelectStockObject(int) 4470 CGdiObject * CPreviewDC::SelectStockObject(int) 4471 int CComboBox::SelectString(int,unsigned short const *) 4472 int CListBox::SelectString(int,unsigned short const *) 4473 int CListBox::SelItemRange(int,int,int) 4474 int CWnd::SendChildNotifyLastMsg(long *) 4475 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 4476 void CDocument::SendInitialUpdate() 4477 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 4478 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 4479 long CWnd::SendMessageW(unsigned int,unsigned int,long) 4480 int CWnd::SendNotifyMessageW(unsigned int,unsigned int,long) 4481 int CHttpFile::SendRequest(CString &,void *,unsigned long) 4482 int CHttpFile::SendRequest(unsigned short const *,unsigned long,void *,unsigned long) 4483 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 4484 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 4485 void CByteArray::Serialize(CArchive &) 4486 void CControlBarInfo::Serialize(CArchive &,CDockState *) 4487 void CDockState::Serialize(CArchive &) 4488 void CDWordArray::Serialize(CArchive &) 4489 void CEditView::Serialize(CArchive &) 4490 void CMapStringToOb::Serialize(CArchive &) 4491 void CMapStringToString::Serialize(CArchive &) 4492 void CMapWordToOb::Serialize(CArchive &) 4493 void CObArray::Serialize(CArchive &) 4494 void CObject::Serialize(CArchive &) 4495 void CObList::Serialize(CArchive &) 4496 void CStringArray::Serialize(CArchive &) 4497 void CStringList::Serialize(CArchive &) 4498 void CWordArray::Serialize(CArchive &) 4499 void CArchive::SerializeClass(CRuntimeconst *) 4500 void SerializeElements(CArchive &,CString *,int) 4501 void CEditView::SerializeRaw(CArchive &) 4502 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 4503 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 4504 int CPropertySheet::SetActivePage(int) 4505 int CPropertySheet::SetActivePage(CPropertyPage *) 4506 void CSplitterWnd::SetActivePane(int,int,CWnd *) 4507 void CFrameWnd::SetActiveView(CView *,int) 4508 CWnd * CWnd::SetActiveWindow() 4509 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 4510 void CIPAddressCtrl::SetAddress(unsigned long) 4511 int CToolBarCtrl::SetAnchorHighlight(int) 4512 void CListBox::SetAnchorIndex(int) 4513 int CDC::SetArcDirection(int) 4514 void CByteArray::SetAt(int,unsigned char) 4515 void CDWordArray::SetAt(int,unsigned long) 4516 void CMapPtrToPtr::SetAt(void *,void *) 4517 void CMapPtrToWord::SetAt(void *,unsigned short) 4518 void CMapStringToOb::SetAt(unsigned short const *,CObject *) 4519 void CMapStringToPtr::SetAt(unsigned short const *,void *) 4520 void CMapStringToString::SetAt(unsigned short const *,unsigned short const *) 4521 void CMapWordToOb::SetAt(unsigned short,CObject *) 4522 void CMapWordToPtr::SetAt(unsigned short,void *) 4523 void CObArray::SetAt(int,CObject *) 4524 void CObList::SetAt(__POSITION *,CObject *) 4525 void CPtrArray::SetAt(int,void *) 4526 void CPtrList::SetAt(__POSITION *,void *) 4527 void CString::SetAt(int,unsigned short) 4528 void CStringArray::SetAt(int,CString const &) 4529 void CStringArray::SetAt(int,unsigned short const *) 4530 void CStringList::SetAt(__POSITION *,CString const &) 4531 void CStringList::SetAt(__POSITION *,unsigned short const *) 4532 void CUIntArray::SetAt(int,unsigned int) 4533 void CWordArray::SetAt(int,unsigned short) 4534 void CByteArray::SetAtGrow(int,unsigned char) 4535 void CDWordArray::SetAtGrow(int,unsigned long) 4536 void CObArray::SetAtGrow(int,CObject *) 4537 void CPtrArray::SetAtGrow(int,void *) 4538 void CStringArray::SetAtGrow(int,CString const &) 4539 void CStringArray::SetAtGrow(int,unsigned short const *) 4540 void CUIntArray::SetAtGrow(int,unsigned int) 4541 void CWordArray::SetAtGrow(int,unsigned short) 4542 void CDC::SetAttribDC(HDC__ *) 4543 void CMetaFileDC::SetAttribDC(HDC__ *) 4544 void CPreviewDC::SetAttribDC(HDC__ *) 4545 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 4546 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOW *) 4547 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 4548 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 4549 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 4550 void CControlBar::SetBarStyle(unsigned long) 4551 int CSpinButtonCtrl::SetBase(int) 4552 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 4553 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 4554 int CToolBar::SetBitmap(HBITMAP__ *) 4555 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 4556 CSize CBitmap::SetBitmapDimension(int,int) 4557 int CToolBarCtrl::SetBitmapSize(CSize) 4558 unsigned long CDC::SetBkColor(unsigned long) 4559 unsigned long CImageList::SetBkColor(unsigned long) 4560 int CListCtrl::SetBkColor(unsigned long) 4561 unsigned long CPreviewDC::SetBkColor(unsigned long) 4562 unsigned long CReBarCtrl::SetBkColor(unsigned long) 4563 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 4564 unsigned long CTreeCtrl::SetBkColor(unsigned long) 4565 int CListCtrl::SetBkImage(unsigned short *,int,int,int) 4566 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 4567 int CListCtrl::SetBkImage(tagLVBKIMAGEW *) 4568 int CDC::SetBkMode(int) 4569 void CControlBar::SetBorders(int,int,int,int) 4570 void CControlBar::SetBorders(tagRECT const *) 4571 void CStatusBar::SetBorders(int,int,int,int) 4572 void CStatusBar::SetBorders(tagRECT const *) 4573 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 4574 CPoint CDC::SetBrushOrg(int,int) 4575 CPoint CDC::SetBrushOrg(tagPOINT) 4576 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 4577 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 4578 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 4579 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOW *) 4580 int CToolBar::SetButtons(unsigned int const *,int) 4581 int CToolBarCtrl::SetButtonSize(CSize) 4582 void CToolBarCtrl::SetButtonStructSize(int) 4583 void CButton::SetButtonStyle(unsigned int,int) 4584 void CToolBar::SetButtonStyle(int,unsigned int) 4585 int CToolBar::SetButtonText(int,unsigned short const *) 4586 int CToolBarCtrl::SetButtonWidth(int,int) 4587 int CListCtrl::SetCallbackMask(unsigned int) 4588 CWnd * CWnd::SetCapture() 4589 int CListBox::SetCaretIndex(int,int) 4590 void CWnd::SetCaretPos(tagPOINT) 4591 void CButton::SetCheck(int) 4592 void CCheckListBox::SetCheck(int,int) 4593 void CCmdUI::SetCheck(int) 4594 int CListCtrl::SetCheck(int,int) 4595 void CStatusCmdUI::SetCheck(int) 4596 void CTestCmdUI::SetCheck(int) 4597 void CToolCmdUI::SetCheck(int) 4598 int CTreeCtrl::SetCheck(_TREEITEM *,int) 4599 void CCheckListBox::SetCheckStyle(unsigned int) 4600 HWND__ * CWnd::SetClipboardViewer() 4601 int CToolBarCtrl::SetCmdID(int,unsigned int) 4602 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 4603 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 4604 int CListCtrl::SetColumn(int,tagLVCOLUMNW const *) 4605 void CSplitterWnd::SetColumnInfo(int,int,int) 4606 int CListCtrl::SetColumnOrderArray(int,int *) 4607 void CListBox::SetColumnWidth(int) 4608 int CListCtrl::SetColumnWidth(int,int) 4609 void CDocTemplate::SetContainerInfo(unsigned int) 4610 void CFileDialog::SetControlText(int,char const *) 4611 int CInternetSession::SetCookie(char const *,unsigned short const *,unsigned short const *) 4612 void CTabCtrl::SetCurFocus(int) 4613 void CColorDialog::SetCurrentColor(unsigned long) 4614 int CFtpConnection::SetCurrentDirectoryW(unsigned short const *) 4615 void CWinApp::SetCurrentHandles() 4616 void CPreviewView::SetCurrentPage(unsigned int,int) 4617 int CComboBox::SetCurSel(int) 4618 int CListBox::SetCurSel(int) 4619 int CTabCtrl::SetCurSel(int) 4620 HICON__ * CButton::SetCursor(HICON__ *) 4621 int CRectTracker::SetCursor(CWnd *,unsigned int)const 4622 HICON__ * CStatic::SetCursor(HICON__ *) 4623 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 4624 int CMenu::SetDefaultItem(unsigned int,int) 4625 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 4626 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 4627 void CFileDialog::SetDefExt(char const *) 4628 void CDialog::SetDefID(unsigned int) 4629 void CToolTipCtrl::SetDelayTime(unsigned int) 4630 void CToolTipCtrl::SetDelayTime(unsigned long,int) 4631 void CDumpContext::SetDepth(int) 4632 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 4633 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 4634 int CWnd::SetDlgCtrlID(int) 4635 void CWnd::SetDlgItemInt(int,unsigned int,int) 4636 void CWnd::SetDlgItemTextW(int,unsigned short const *) 4637 void CFrameWnd::SetDockState(CDockState const &) 4638 int CImageList::SetDragCursorImage(int,CPoint) 4639 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 4640 int CComboBox::SetDroppedWidth(unsigned int) 4641 int CComboBox::SetEditSel(int,int) 4642 int CComboBoxEx::SetEditSel(int,int) 4643 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 4644 int CEvent::SetEvent() 4645 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 4646 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 4647 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 4648 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 4649 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 4650 int CComboBox::SetExtendedUI(int) 4651 void CIPAddressCtrl::SetFieldFocus(unsigned short) 4652 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 4653 void CFile::SetFilePath(unsigned short const *) 4654 void CPropertySheet::SetFinishText(unsigned short const *) 4655 CWnd * CWnd::SetFocus() 4656 int CDialogTemplate::SetFont(unsigned short const *,unsigned short) 4657 void CWnd::SetFont(CFont *,int) 4658 int CWnd::SetForegroundWindow() 4659 void CEdit::SetHandle(void *) 4660 void CSharedFile::SetHandle(void *,int) 4661 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 4662 void CToolBar::SetHeight(int) 4663 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 4664 void CDialog::SetHelpID(unsigned int) 4665 void CComboBox::SetHorizontalExtent(unsigned int) 4666 void CListBox::SetHorizontalExtent(int) 4667 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 4668 int CHeaderCtrl::SetHotDivider(int) 4669 int CHeaderCtrl::SetHotDivider(CPoint) 4670 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 4671 int CListCtrl::SetHotItem(int) 4672 int CToolBarCtrl::SetHotItem(int) 4673 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 4674 unsigned long CListCtrl::SetHoverTime(unsigned long) 4675 HICON__ * CButton::SetIcon(HICON__ *) 4676 HICON__ * CStatic::SetIcon(HICON__ *) 4677 int CStatusBarCtrl::SetIcon(int,HICON__ *) 4678 HICON__ * CWnd::SetIcon(HICON__ *,int) 4679 CSize CListCtrl::SetIconSpacing(int,int) 4680 CSize CListCtrl::SetIconSpacing(CSize) 4681 int CImageList::SetImageCount(unsigned int) 4682 CImageList * CComboBoxEx::SetImageList(CImageList *) 4683 CImageList * CHeaderCtrl::SetImageList(CImageList *) 4684 CImageList * CListCtrl::SetImageList(CImageList *,int) 4685 int CReBarCtrl::SetImageList(CImageList *) 4686 CImageList * CTabCtrl::SetImageList(CImageList *) 4687 CImageList * CToolBarCtrl::SetImageList(CImageList *) 4688 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 4689 int CToolBarCtrl::SetIndent(int) 4690 void CTreeCtrl::SetIndent(unsigned int) 4691 int CStatusBar::SetIndicators(unsigned int const *,int) 4692 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 4693 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 4694 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 4695 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 4696 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 4697 int CHeaderCtrl::SetItem(int,_HD_ITEMW *) 4698 int CListCtrl::SetItem(int,int,unsigned int,unsigned short const *,int,unsigned int,unsigned int,long) 4699 int CListCtrl::SetItem(tagLVITEMW const *) 4700 int CTabCtrl::SetItem(int,tagTCITEMW *) 4701 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,unsigned short const *,int,int,unsigned int,unsigned int,long) 4702 int CTreeCtrl::SetItem(tagTVITEMW *) 4703 void CListCtrl::SetItemCount(int) 4704 int CListCtrl::SetItemCountEx(int,unsigned long) 4705 int CComboBox::SetItemData(int,unsigned long) 4706 int CListBox::SetItemData(int,unsigned long) 4707 int CListCtrl::SetItemData(int,unsigned long) 4708 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 4709 int CComboBox::SetItemDataPtr(int,void *) 4710 int CListBox::SetItemDataPtr(int,void *) 4711 int CTabCtrl::SetItemExtra(int) 4712 int CComboBox::SetItemHeight(int,unsigned int) 4713 int CListBox::SetItemHeight(int,unsigned int) 4714 short CTreeCtrl::SetItemHeight(short) 4715 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 4716 int CListCtrl::SetItemPosition(int,tagPOINT) 4717 CSize CTabCtrl::SetItemSize(CSize) 4718 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 4719 int CListCtrl::SetItemState(int,tagLVITEMW *) 4720 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 4721 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 4722 int CListCtrl::SetItemText(int,int,unsigned short const *) 4723 int CTreeCtrl::SetItemText(_TREEITEM *,unsigned short const *) 4724 unsigned long CDC::SetLayout(unsigned long) 4725 void CFile::SetLength(unsigned long) 4726 void CInternetFile::SetLength(unsigned long) 4727 void CMemFile::SetLength(unsigned long) 4728 void CEdit::SetLimitText(unsigned int) 4729 int CSliderCtrl::SetLineSize(int) 4730 void CArchive::SetLoadParams(unsigned int) 4731 unsigned long CComboBox::SetLocale(unsigned long) 4732 unsigned long CListBox::SetLocale(unsigned long) 4733 int CDC::SetMapMode(int) 4734 int CPreviewDC::SetMapMode(int) 4735 unsigned long CDC::SetMapperFlags(unsigned long) 4736 void CToolTipCtrl::SetMargin(tagRECT *) 4737 void CEdit::SetMargins(unsigned int,unsigned int) 4738 void CPrintInfo::SetMaxPage(unsigned int) 4739 int CToolBarCtrl::SetMaxTextRows(int) 4740 int CToolTipCtrl::SetMaxTipWidth(int) 4741 int CWnd::SetMenu(CMenu *) 4742 int CMenu::SetMenuContextHelpId(unsigned long) 4743 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 4744 void CFrameWnd::SetMessageText(unsigned int) 4745 void CFrameWnd::SetMessageText(unsigned short const *) 4746 void CStatusBarCtrl::SetMinHeight(int) 4747 void CPrintInfo::SetMinPage(unsigned int) 4748 int CTabCtrl::SetMinTabWidth(int) 4749 int CDC::SetMiterLimit(float) 4750 void CPropertyPage::SetModified(int) 4751 void CDocument::SetModifiedFlag(int) 4752 void CEdit::SetModify(int) 4753 void CRichEditCtrl::SetModify(int) 4754 void CArchive::SetObjectSchema(unsigned int) 4755 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4756 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4757 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4758 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 4759 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 4760 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 4761 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 4762 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 4763 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 4764 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 4765 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 4766 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 4767 int CHeaderCtrl::SetOrderArray(int,int *) 4768 void CDC::SetOutputDC(HDC__ *) 4769 void CMetaFileDC::SetOutputDC(HDC__ *) 4770 void CPreviewDC::SetOutputDC(HDC__ *) 4771 int CImageList::SetOverlayImage(int,int) 4772 CWnd * CReBarCtrl::SetOwner(CWnd *) 4773 void CToolBar::SetOwner(CWnd *) 4774 void CToolBarCtrl::SetOwner(CWnd *) 4775 void CWnd::SetOwner(CWnd *) 4776 void CTabCtrl::SetPadding(CSize) 4777 int CSliderCtrl::SetPageSize(int) 4778 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 4779 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 4780 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 4781 void CStatusBar::SetPaneStyle(int,unsigned int) 4782 int CStatusBar::SetPaneText(int,unsigned short const *,int) 4783 int CRichEditCtrl::SetParaFormat(_paraformat &) 4784 CWnd * CWnd::SetParent(CWnd *) 4785 int CStatusBarCtrl::SetParts(int,int *) 4786 void CEdit::SetPasswordChar(unsigned short) 4787 void CDocument::SetPathName(unsigned short const *,int) 4788 void CHandleMap::SetPermanent(void *,CObject *) 4789 unsigned long CDC::SetPixel(int,int,unsigned long) 4790 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 4791 int CDC::SetPixelV(int,int,unsigned long) 4792 int CDC::SetPixelV(tagPOINT,unsigned long) 4793 int CDC::SetPolyFillMode(int) 4794 int CProgressCtrl::SetPos(int) 4795 void CSliderCtrl::SetPos(int) 4796 int CSpinButtonCtrl::SetPos(int) 4797 void CEditView::SetPrinterFont(CFont *) 4798 int CPreviewView::SetPrintView(CView *) 4799 void CWnd::SetProperty(long,unsigned short,...) 4800 void CCmdUI::SetRadio(int) 4801 void CTestCmdUI::SetRadio(int) 4802 void CProgressCtrl::SetRange(short,short) 4803 void CSliderCtrl::SetRange(int,int,int) 4804 void CSpinButtonCtrl::SetRange(int,int) 4805 void CProgressCtrl::SetRange32(int,int) 4806 void CSpinButtonCtrl::SetRange32(int,int) 4807 void CSliderCtrl::SetRangeMax(int,int) 4808 void CSliderCtrl::SetRangeMin(int,int) 4809 int CInternetFile::SetReadBufferSize(unsigned int) 4810 int CEdit::SetReadOnly(int) 4811 int CRichEditCtrl::SetReadOnly(int) 4812 void CEdit::SetRect(tagRECT const *) 4813 void CRect::SetRect(int,int,int,int) 4814 void CRect::SetRect(tagPOINT,tagPOINT) 4815 void CRichEditCtrl::SetRect(tagRECT const *) 4816 void CRect::SetRectEmpty() 4817 void CEdit::SetRectNP(tagRECT const *) 4818 void CRgn::SetRectRgn(int,int,int,int) 4819 void CRgn::SetRectRgn(tagRECT const *) 4820 void CWnd::SetRedraw(int) 4821 void CWinApp::SetRegistryKey(unsigned int) 4822 void CWinApp::SetRegistryKey(unsigned short const *) 4823 int CDC::SetROP2(int) 4824 void CSplitterWnd::SetRowInfo(int,int,int) 4825 void CToolBarCtrl::SetRows(int,int,tagRECT *) 4826 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 4827 void CPreviewView::SetScaledSize(unsigned int) 4828 void CPreviewDC::SetScaleRatio(int,int) 4829 void CScrollView::SetScaleToFitSize(tagSIZE) 4830 void CDockState::SetScreenSize(CSize &) 4831 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 4832 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 4833 int CScrollBar::SetScrollPos(int,int) 4834 int CWnd::SetScrollPos(int,int,int) 4835 void CScrollBar::SetScrollRange(int,int,int) 4836 void CWnd::SetScrollRange(int,int,int,int) 4837 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 4838 void CSplitterWnd::SetScrollStyle(unsigned long) 4839 void CEdit::SetSel(int,int,int) 4840 void CEdit::SetSel(unsigned long,int) 4841 int CListBox::SetSel(int,int) 4842 void CRichEditCtrl::SetSel(_charrange &) 4843 void CRichEditCtrl::SetSel(long,long) 4844 void CSliderCtrl::SetSelection(int,int) 4845 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 4846 void CCheckListBox::SetSelectionCheck(int) 4847 int CListCtrl::SetSelectionMark(int) 4848 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 4849 int CStatusBarCtrl::SetSimple(int) 4850 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 4851 void CByteArray::SetSize(int,int) 4852 void CDWordArray::SetSize(int,int) 4853 void CObArray::SetSize(int,int) 4854 void CPtrArray::SetSize(int,int) 4855 void CStringArray::SetSize(int,int) 4856 void CUIntArray::SetSize(int,int) 4857 void CWordArray::SetSize(int,int) 4858 void CToolBar::SetSizes(tagSIZE,tagSIZE) 4859 void CSplitterWnd::SetSplitCursor(int) 4860 void CButton::SetState(int) 4861 int CToolBarCtrl::SetState(int,unsigned int) 4862 void CFile::SetStatus(unsigned short const *,CFileStatus const &) 4863 int CControlBar::SetStatusText(int) 4864 int CProgressCtrl::SetStep(int) 4865 void CArchive::SetStoreParams(unsigned int,unsigned int) 4866 int CDC::SetStretchBltMode(int) 4867 void CToolBarCtrl::SetStyle(unsigned long) 4868 int CDialogTemplate::SetSystemFont(unsigned short) 4869 int CEdit::SetTabStops(int const &) 4870 int CEdit::SetTabStops(int,int *) 4871 void CEdit::SetTabStops() 4872 void CEditView::SetTabStops(int) 4873 int CListBox::SetTabStops(int const &) 4874 int CListBox::SetTabStops(int,int *) 4875 void CListBox::SetTabStops() 4876 int CRichEditCtrl::SetTargetDevice(CDC &,long) 4877 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 4878 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 4879 void CFileDialog::SetTemplate(unsigned int,unsigned int) 4880 void CFileDialog::SetTemplate(unsigned short const *,unsigned short const *) 4881 void CCmdUI::SetText(unsigned short const *) 4882 int CStatusBarCtrl::SetText(unsigned short const *,int,int) 4883 void CStatusCmdUI::SetText(unsigned short const *) 4884 void CTestCmdUI::SetText(unsigned short const *) 4885 void CToolCmdUI::SetText(unsigned short const *) 4886 unsigned int CDC::SetTextAlign(unsigned int) 4887 int CListCtrl::SetTextBkColor(unsigned long) 4888 int CDC::SetTextCharacterExtra(int) 4889 unsigned long CDC::SetTextColor(unsigned long) 4890 int CListCtrl::SetTextColor(unsigned long) 4891 unsigned long CPreviewDC::SetTextColor(unsigned long) 4892 unsigned long CReBarCtrl::SetTextColor(unsigned long) 4893 unsigned long CTreeCtrl::SetTextColor(unsigned long) 4894 int CDC::SetTextJustification(int,int) 4895 int CWinThread::SetThreadPriority(int) 4896 int CSliderCtrl::SetTic(int) 4897 void CSliderCtrl::SetTicFreq(int) 4898 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 4899 void CToolTipCtrl::SetTipBkColor(unsigned long) 4900 int CSliderCtrl::SetTipSide(int) 4901 void CStatusBarCtrl::SetTipText(int,unsigned short const *) 4902 void CToolTipCtrl::SetTipTextColor(unsigned long) 4903 void CDocument::SetTitle(unsigned short const *) 4904 void CFrameWnd::SetTitle(unsigned short const *) 4905 void CPropertySheet::SetTitle(unsigned short const *,unsigned int) 4906 void CToolTipCtrl::SetToolInfo(tagTOOLINFOW *) 4907 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 4908 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 4909 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 4910 void CTabCtrl::SetToolTips(CToolTipCtrl *) 4911 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 4912 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 4913 int CComboBox::SetTopIndex(int) 4914 int CListBox::SetTopIndex(int) 4915 void CPreviewDC::SetTopLeftOffset(CSize) 4916 void CThreadSlotData::SetValue(int,void *) 4917 CSize CDC::SetViewportExt(tagSIZE) 4918 CSize CDC::SetViewportExt(int,int) 4919 CSize CMetaFileDC::SetViewportExt(tagSIZE) 4920 CSize CMetaFileDC::SetViewportExt(int,int) 4921 CSize CPreviewDC::SetViewportExt(int,int) 4922 CPoint CDC::SetViewportOrg(tagPOINT) 4923 CPoint CDC::SetViewportOrg(int,int) 4924 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 4925 CPoint CMetaFileDC::SetViewportOrg(int,int) 4926 CPoint CPreviewDC::SetViewportOrg(int,int) 4927 int CWnd::SetWindowContextHelpId(unsigned long) 4928 CSize CDC::SetWindowExt(tagSIZE) 4929 CSize CDC::SetWindowExt(int,int) 4930 CSize CPreviewDC::SetWindowExt(int,int) 4931 CPoint CDC::SetWindowOrg(int,int) 4932 CPoint CDC::SetWindowOrg(tagPOINT) 4933 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 4934 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 4935 int CWnd::SetWindowRgn(HRGN__ *,int) 4936 void CWnd::SetWindowTextW(unsigned short const *) 4937 void CPropertySheet::SetWizardButtons(unsigned long) 4938 void CPropertySheet::SetWizardMode() 4939 void CPropertySheetEx::SetWizardMode() 4940 int CRichEditCtrl::SetWordCharFormat(_charformat &) 4941 void CListCtrl::SetWorkAreas(int,tagRECT *) 4942 int CInternetFile::SetWriteBufferSize(unsigned int) 4943 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 4944 void CDockBar::ShowAll(int) 4945 int CReBarCtrl::ShowBand(unsigned int,int) 4946 void CWnd::ShowCaret() 4947 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 4948 void CComboBox::ShowDropDown(int) 4949 void CWnd::ShowOwnedPopups(int) 4950 void CFrameWnd::ShowOwnedWindows(int) 4951 void CScrollBar::ShowScrollBar(int) 4952 void CWnd::ShowScrollBar(unsigned int,int) 4953 int CWnd::ShowWindow(int) 4954 CSize CRect::Size()const 4955 tagSIZE const CScrollView::sizeDefault 4956 void CBitmapButton::SizeToContent() 4957 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 4958 int CReBarCtrl::SizeToRect(CRect &) 4959 int CTreeCtrl::SortChildren(_TREEITEM *) 4960 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 4961 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 4962 CString CString::SpanExcluding(unsigned short const *)const 4963 CString CString::SpanIncluding(unsigned short const *)const 4964 int CSplitterWnd::SplitColumn(int) 4965 int CSplitterWnd::SplitRow(int) 4966 int CDC::StartDocW(_DOCINFOW *) 4967 int CDC::StartDocW(unsigned short const *) 4968 void CDockContext::StartDrag(CPoint) 4969 int CDC::StartPage() 4970 void CDockContext::StartResize(int,CPoint) 4971 void CSplitterWnd::StartTracking(int) 4972 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 4973 int CProgressCtrl::StepIt() 4974 int CAnimateCtrl::Stop() 4975 void CSplitterWnd::StopTracking(int) 4976 void CRuntimeClass::Store(CArchive &)const 4977 long CRichEditCtrl::StreamIn(int,_editstream &) 4978 long CRichEditCtrl::StreamOut(int,_editstream &) 4979 void CDockContext::Stretch(CPoint) 4980 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 4981 int CDC::StrokeAndFillPath() 4982 int CDC::StrokePath() 4983 int CWnd::SubclassCtl3d(int) 4984 int CWnd::SubclassDlg3d(unsigned long) 4985 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 4986 int CWnd::SubclassWindow(HWND__ *) 4987 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 4988 int CRect::SubtractRect(tagRECT const *,tagRECT const *) 4989 unsigned long CWinThread::SuspendThread() 4990 void CRect::SwapLeftRight() 4991 void CRect::SwapLeftRight(tagRECT *) 4992 unsigned short const * T2COLE(unsigned short const *) 4993 unsigned short * T2W(unsigned short *) 4994 CSize CDC::TabbedTextOutW(int,int,CString const &,int,int *,int) 4995 CSize CDC::TabbedTextOutW(int,int,unsigned short const *,int,int,int *,int) 4996 CSize CMetaFileDC::TabbedTextOutW(int,int,CString const &,int,int *,int) 4997 CSize CMetaFileDC::TabbedTextOutW(int,int,unsigned short const *,int,int,int *,int) 4998 CSize CPreviewDC::TabbedTextOutW(int,int,unsigned short const *,int,int,int *,int) 4999 int CDC::TextOutW(int,int,CString const &) 5000 int CDC::TextOutW(int,int,unsigned short const *,int) 5001 int CMetaFileDC::TextOutW(int,int,CString const &) 5002 int CMetaFileDC::TextOutW(int,int,unsigned short const *,int) 5003 int CPreviewDC::TextOutW(int,int,unsigned short const *,int) 5004 void CFileException::ThrowErrno(int,unsigned short const *) 5005 void CFileException::ThrowOsError(long,unsigned short const *) 5006 void CDockContext::ToggleDocking() 5007 CPoint & CRect::TopLeft() 5008 CPoint const & CRect::TopLeft()const 5009 int CDockContext::Track() 5010 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 5011 void CSplitterWnd::TrackColumnSize(int,int) 5012 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 5013 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 5014 void CSplitterWnd::TrackRowSize(int,int) 5015 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 5016 void CString::TrimLeft(unsigned short) 5017 void CString::TrimLeft(unsigned short const *) 5018 void CString::TrimLeft() 5019 void CString::TrimRight(unsigned short) 5020 void CString::TrimRight(unsigned short const *) 5021 void CString::TrimRight() 5022 int CEdit::Undo() 5023 int CRichEditCtrl::Undo() 5024 int CRect::UnionRect(tagRECT const *,tagRECT const *) 5025 int CCriticalSection::Unlock() 5026 int CEvent::Unlock() 5027 int CMultiLock::Unlock(long,long *) 5028 int CMultiLock::Unlock() 5029 int CMutex::Unlock() 5030 int CSemaphore::Unlock(long,long *) 5031 int CSemaphore::Unlock() 5032 int CSingleLock::Unlock(long,long *) 5033 int CSingleLock::Unlock() 5034 int CSyncObject::Unlock(long,long *) 5035 void CTypeLibCache::Unlock() 5036 void CEditView::UnlockBuffer()const 5037 void CString::UnlockBuffer() 5038 void CFile::UnlockRange(unsigned long,unsigned long) 5039 void CInternetFile::UnlockRange(unsigned long,unsigned long) 5040 void CMemFile::UnlockRange(unsigned long,unsigned long) 5041 void CStdioFile::UnlockRange(unsigned long,unsigned long) 5042 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5043 int UnlockResource(void *) 5044 void CWnd::UnlockWindowUpdate() 5045 int CGdiObject::UnrealizeObject() 5046 int CWinApp::Unregister() 5047 void CDocManager::UnregisterShellFileTypes() 5048 void CWinApp::UnregisterShellFileTypes() 5049 HWND__ * CWnd::UnsubclassWindow() 5050 int CListCtrl::Update(int) 5051 void CToolTipCtrl::Update() 5052 void CStatusBar::UpdateAllPanes(int,int) 5053 void CDocument::UpdateAllViews(CView *,long,CObject *) 5054 void CScrollView::UpdateBars() 5055 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 5056 void CDC::UpdateColors() 5057 void CMemoryState::UpdateData() 5058 int CWnd::UpdateData(int) 5059 void CWnd::UpdateDialogControls(CCmdTarget *,int) 5060 void CDocument::UpdateFrameCounts() 5061 void CFrameWnd::UpdateFrameTitleForDocument(unsigned short const *) 5062 void CRecentFileList::UpdateMenu(CCmdUI *) 5063 void CWinApp::UpdatePrinterSelection(int) 5064 void CDockContext::UpdateState(int *,int) 5065 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 5066 void CToolTipCtrl::UpdateTipText(unsigned short const *,CWnd *,unsigned int) 5067 void CWnd::UpdateWindow() 5068 void CWnd::ValidateRect(tagRECT const *) 5069 void CWnd::ValidateRgn(CRgn *) 5070 void CSliderCtrl::VerifyPos() 5071 int CListBox::VKeyToItem(unsigned int,unsigned int) 5072 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 5073 unsigned short * wcschr(unsigned short *,unsigned short) 5074 unsigned short * wcspbrk(unsigned short *,unsigned short const *) 5075 unsigned short * wcsrchr(unsigned short *,unsigned short) 5076 unsigned short * wcsstr(unsigned short *,unsigned short const *) 5077 int CDC::WidenPath() 5078 int CRect::Width()const 5079 CWnd * CWnd::WindowFromPoint(tagPOINT) 5080 long CControlBar::WindowProc(unsigned int,unsigned int,long) 5081 long CReBar::WindowProc(unsigned int,unsigned int,long) 5082 long CWnd::WindowProc(unsigned int,unsigned int,long) 5083 void CWinApp::WinHelpW(unsigned long,unsigned int) 5084 void CWnd::WinHelpW(unsigned long,unsigned int) 5085 CWnd const CWnd::wndBottom 5086 CWnd const CWnd::wndNoTopMost 5087 CWnd const CWnd::wndTop 5088 CWnd const CWnd::wndTopMost 5089 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 5090 void CArchive::Write(void const *,unsigned int) 5091 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 5092 void CFile::Write(void const *,unsigned int) 5093 void CGopherFile::Write(void const *,unsigned int) 5094 int CImageList::Write(CArchive *) 5095 void CInternetFile::Write(void const *,unsigned int) 5096 void CMemFile::Write(void const *,unsigned int) 5097 void CStdioFile::Write(void const *,unsigned int) 5098 void CArchive::WriteClass(CRuntimeconst *) 5099 void CArchive::WriteCount(unsigned long) 5100 void CFile::WriteHuge(void const *,unsigned long) 5101 void CRecentFileList::WriteList() 5102 void CArchive::WriteObject(CObject const *) 5103 int CWinApp::WriteProfileBinary(unsigned short const *,unsigned short const *,unsigned char *,unsigned int) 5104 int CWinApp::WriteProfileInt(unsigned short const *,unsigned short const *,int) 5105 int CWinApp::WriteProfileStringW(unsigned short const *,unsigned short const *,unsigned short const *) 5106 void CArchive::WriteString(unsigned short const *) 5107 void CGopherFile::WriteString(unsigned short const *) 5108 void CInternetFile::WriteString(unsigned short const *) 5109 void CStdioFile::WriteString(unsigned short const *) 5110 void CEditView::WriteToArchive(CArchive &) 5111 afxChNil ================================================ FILE: Bin/i386/mfc_sym/mfc70.def ================================================ 256 void * operator new[](unsigned int) 257 void operator delete[](void *) 258 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 259 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 260 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 261 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 262 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 263 CArchive::CArchive(CFile *,unsigned int,int,void *) 264 CArchivePropExchange::CArchivePropExchange(CArchive &) 265 CArchiveStream::CArchiveStream(CArchive *) 266 CAsyncMonikerFile::CAsyncMonikerFile() 267 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 268 CAsyncSocket::CAsyncSocket() 269 CBlobProperty::CBlobProperty(void *) 270 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 271 CBrush::CBrush(int,unsigned long) 272 CBrush::CBrush(unsigned long) 273 CBrush::CBrush(CBitmap *) 274 CByteArray::CByteArray() 275 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 276 CClientDC::CClientDC(CWnd *) 277 CCmdTarget::CCmdTarget() 278 CCmdUI::CCmdUI() 279 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 280 CCommandLineInfo::CCommandLineInfo() 281 CConnectionPoint::CConnectionPoint() 282 CControlBar::CControlBar() 283 CControlBarInfo::CControlBarInfo() 284 COleControl::CControlDataSource::CControlDataSource(COleControl *) 285 CControlFrameWnd::CControlFrameWnd(COleControl *) 286 CCtrlView::CCtrlView(char const *,unsigned long) 287 CDatabase::CDatabase() 288 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 289 CDataExchange::CDataExchange(CWnd *,int) 290 CDataSourceControl::CDataSourceControl(COleControlSite *) 291 CDBException::CDBException(short) 292 CDBVariant::CDBVariant() 293 CDC::CDC() 294 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 295 CDHtmlControlSink::CDHtmlControlSink() 296 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 297 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 298 CDHtmlDialog::CDHtmlDialog() 299 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 300 CDialog::CDialog(unsigned int,CWnd *) 301 CDialog::CDialog(char const *,CWnd *) 302 CDialog::CDialog() 303 CDialogBar::CDialogBar() 304 CDialogTemplate::CDialogTemplate(void *) 305 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 306 CDocItem::CDocItem() 307 CDockBar::CDockBar(int) 308 CDockContext::CDockContext(CControlBar *) 309 CDockState::CDockState() 310 CDocManager::CDocManager() 311 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 312 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 313 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 314 CDocument::CDocument() 315 CDumpContext::CDumpContext(CFile *) 316 CDWordArray::CDWordArray() 317 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 318 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 319 CEditView::CEditView() 320 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 321 CEnumConnections::CEnumConnections(void const *,unsigned int) 322 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 323 CEnumFormatEtc::CEnumFormatEtc() 324 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 325 CException::CException(int) 326 CException::CException() 327 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 328 CFile::CFile(void *) 329 CFile::CFile(char const *,unsigned int) 330 CFile::CFile() 331 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long) 332 CFileFind::CFileFind() 333 CFindReplaceDialog::CFindReplaceDialog() 334 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 335 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 336 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 337 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 338 CFontHolder::CFontHolder(IPropertyNotifySink *) 339 CFormView::CFormView(unsigned int) 340 CFormView::CFormView(char const *) 341 CFrameWnd::CFrameWnd() 342 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 343 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 344 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 345 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 346 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 347 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 348 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 349 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 350 CGopherLocator::CGopherLocator(char const *,unsigned long) 351 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 352 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 353 CHtmlEditCtrl::CHtmlEditCtrl() 354 CHtmlEditDoc::CHtmlEditDoc() 355 CHtmlEditView::CHtmlEditView() 356 CHtmlView::CHtmlView() 357 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 358 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 359 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 360 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 361 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 362 CImageList::CImageList() 363 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 364 CInternetException::CInternetException(unsigned long) 365 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 366 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 367 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 368 CLongBinary::CLongBinary() 369 CMapPtrToPtr::CMapPtrToPtr(int) 370 CMapPtrToWord::CMapPtrToWord(int) 371 CMapStringToOb::CMapStringToOb(int) 372 CMapStringToPtr::CMapStringToPtr(int) 373 CMapStringToString::CMapStringToString(int) 374 CMapWordToOb::CMapWordToOb(int) 375 CMapWordToPtr::CMapWordToPtr(int) 376 CMDIChildWnd::CMDIChildWnd() 377 CMDIFrameWnd::CMDIFrameWnd() 378 CMemFile::CMemFile(unsigned int) 379 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 380 CMetaFileDC::CMetaFileDC() 381 CMiniDockFrameWnd::CMiniDockFrameWnd() 382 CMiniFrameWnd::CMiniFrameWnd() 383 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 384 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 385 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 386 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 387 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 388 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 389 CObArray::CObArray() 390 CObList::CObList(int) 391 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 392 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 393 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 394 COleClientItem::COleClientItem(COleDocument *) 395 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 396 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 397 COleControl::COleControl() 398 COleControlContainer::COleControlContainer(CWnd *) 399 COleControlLock::COleControlLock(_GUID const &) 400 COleControlSite::COleControlSite(COleControlContainer *) 401 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 402 COleCurrency::COleCurrency(long,long) 403 COleDataObject::COleDataObject() 404 COleDataSource::COleDataSource() 405 COleDialog::COleDialog(CWnd *) 406 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 407 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 408 COleDispatchDriver::COleDispatchDriver() 409 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 410 COleDocIPFrameWnd::COleDocIPFrameWnd() 411 COleDocObjectItem::COleDocObjectItem(COleDocument *) 412 COleDocument::COleDocument() 413 COleDropSource::COleDropSource() 414 COleDropTarget::COleDropTarget() 415 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 416 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 417 COleIPFrameWnd::COleIPFrameWnd() 418 COleLinkingDoc::COleLinkingDoc() 419 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 420 COleMessageFilter::COleMessageFilter() 421 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 422 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 423 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 424 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 425 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 426 COleResizeBar::COleResizeBar() 427 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 428 COleSafeArray::COleSafeArray(tagVARIANT const &) 429 COleSafeArray::COleSafeArray(COleSafeArray const &) 430 COleSafeArray::COleSafeArray(COleVariant const &) 431 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 432 COleSafeArray::COleSafeArray(tagVARIANT const *) 433 COleServerDoc::COleServerDoc() 434 COleServerItem::COleServerItem(COleServerDoc *,int) 435 COleStreamFile::COleStreamFile(IStream *) 436 COleTemplateServer::COleTemplateServer() 437 COleUILinkInfo::COleUILinkInfo(COleDocument *) 438 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 439 COleVariant::COleVariant(tagVARIANT const &) 440 COleVariant::COleVariant(COleVariant const &) 441 COleVariant::COleVariant(short,unsigned short) 442 COleVariant::COleVariant(long,unsigned short) 443 COleVariant::COleVariant(char const *,unsigned short) 444 COleVariant::COleVariant(_ITEMIDLIST const *) 445 COleVariant::COleVariant(tagVARIANT const *) 446 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 447 CPaintDC::CPaintDC(CWnd *) 448 CPen::CPen(int,int,unsigned long) 449 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 450 CPictureHolder::CPictureHolder() 451 CPreviewDC::CPreviewDC() 452 CPreviewView::CPreviewView() 453 CPrintDialog::CPrintDialog(tagPDA &) 454 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 455 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 456 CPrintInfo::CPrintInfo() 457 CPrintPreviewState::CPrintPreviewState() 458 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 459 CProperty::CProperty(unsigned long,void * const,unsigned long) 460 CProperty::CProperty() 461 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 462 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 463 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 464 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 465 CPropertyPage::CPropertyPage() 466 CPropertySection::CPropertySection(_GUID) 467 CPropertySection::CPropertySection() 468 CPropertySet::CPropertySet(_GUID) 469 CPropertySet::CPropertySet() 470 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 471 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 472 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 473 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 474 CPropertySheet::CPropertySheet() 475 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 476 CPtrArray::CPtrArray() 477 CPtrList::CPtrList(int) 478 CReBar::CReBar() 479 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 480 CRecordset::CRecordset(CDatabase *) 481 CRecordView::CRecordView(unsigned int) 482 CRecordView::CRecordView(char const *) 483 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 484 CReObject::CReObject(CRichEditCntrItem *) 485 CReObject::CReObject() 486 CResetPropExchange::CResetPropExchange() 487 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 488 CRichEditDoc::CRichEditDoc() 489 CRichEditView::CRichEditView() 490 CScrollView::CScrollView() 491 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 492 CSharedFile::CSharedFile(unsigned int,unsigned int) 493 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 494 CSingleLock::CSingleLock(CSyncObject *,int) 495 CSocket::CSocket() 496 CSocketFile::CSocketFile(CSocket *,int) 497 CSocketWnd::CSocketWnd() 498 CSplitterWnd::CSplitterWnd() 499 CStatusBar::CStatusBar() 500 CStdioFile::CStdioFile(_iobuf *) 501 CStdioFile::CStdioFile(char const *,unsigned int) 502 CStdioFile::CStdioFile() 503 CStringArray::CStringArray() 504 CStringList::CStringList(int) 505 CSyncObject::CSyncObject(char const *) 506 CTestCmdUI::CTestCmdUI() 507 CThreadSlotData::CThreadSlotData() 508 CToolBar::CToolBar() 509 CToolTipCtrl::CToolTipCtrl() 510 CUIntArray::CUIntArray() 511 CView::CView() 512 CWinApp::CWinApp(char const *) 513 CWindowDC::CWindowDC(CWnd *) 514 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 515 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 516 CWinThread::CWinThread() 517 CWnd::CWnd(HWND__ *) 518 CWnd::CWnd() 519 CWordArray::CWordArray() 520 CPreviewView::PAGE_INFO::PAGE_INFO() 521 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 522 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 523 AFX_MODULE_STATE::~AFX_MODULE_STATE() 524 CAnimateCtrl::~CAnimateCtrl() 525 CArchive::~CArchive() 526 CAsyncMonikerFile::~CAsyncMonikerFile() 527 CAsyncSocket::~CAsyncSocket() 528 CButton::~CButton() 529 CByteArray::~CByteArray() 530 CClientDC::~CClientDC() 531 CCmdTarget::~CCmdTarget() 532 CComboBox::~CComboBox() 533 CComboBoxEx::~CComboBoxEx() 534 CCommandLineInfo::~CCommandLineInfo() 535 CConnectionPoint::~CConnectionPoint() 536 CControlBar::~CControlBar() 537 CCtrlView::~CCtrlView() 538 CDatabase::~CDatabase() 539 CDataSourceControl::~CDataSourceControl() 540 CDateTimeCtrl::~CDateTimeCtrl() 541 CDBException::~CDBException() 542 CDBVariant::~CDBVariant() 543 CDC::~CDC() 544 CDHtmlControlSink::~CDHtmlControlSink() 545 CDHtmlDialog::~CDHtmlDialog() 546 CDialog::~CDialog() 547 CDialogBar::~CDialogBar() 548 CDialogTemplate::~CDialogTemplate() 549 CDocItem::~CDocItem() 550 CDockBar::~CDockBar() 551 CDockContext::~CDockContext() 552 CDockState::~CDockState() 553 CDocManager::~CDocManager() 554 CDocObjectServer::~CDocObjectServer() 555 CDocObjectServerItem::~CDocObjectServerItem() 556 CDocTemplate::~CDocTemplate() 557 CDocument::~CDocument() 558 CDragListBox::~CDragListBox() 559 CDWordArray::~CDWordArray() 560 CDynLinkLibrary::~CDynLinkLibrary() 561 CEdit::~CEdit() 562 CEditView::~CEditView() 563 CEnumArray::~CEnumArray() 564 CEnumConnections::~CEnumConnections() 565 CEnumConnPoints::~CEnumConnPoints() 566 CEnumFormatEtc::~CEnumFormatEtc() 567 CEnumOleVerb::~CEnumOleVerb() 568 CEnumUnknown::~CEnumUnknown() 569 CEvent::~CEvent() 570 CFile::~CFile() 571 CFileDialog::~CFileDialog() 572 CFileFind::~CFileFind() 573 CFixedAlloc::~CFixedAlloc() 574 CFixedAllocNoSync::~CFixedAllocNoSync() 575 CFontHolder::~CFontHolder() 576 CFrameWnd::~CFrameWnd() 577 CFtpConnection::~CFtpConnection() 578 CFtpFileFind::~CFtpFileFind() 579 CGopherConnection::~CGopherConnection() 580 CGopherFile::~CGopherFile() 581 CGopherFileFind::~CGopherFileFind() 582 CGopherLocator::~CGopherLocator() 583 CHeaderCtrl::~CHeaderCtrl() 584 CHotKeyCtrl::~CHotKeyCtrl() 585 CHtmlControlSite::~CHtmlControlSite() 586 CHtmlEditCtrl::~CHtmlEditCtrl() 587 CHtmlEditDoc::~CHtmlEditDoc() 588 CHtmlEditView::~CHtmlEditView() 589 CHtmlView::~CHtmlView() 590 CHttpConnection::~CHttpConnection() 591 CHttpFile::~CHttpFile() 592 CImageList::~CImageList() 593 CInternetConnection::~CInternetConnection() 594 CInternetException::~CInternetException() 595 CInternetFile::~CInternetFile() 596 CInternetSession::~CInternetSession() 597 CIPAddressCtrl::~CIPAddressCtrl() 598 CListBox::~CListBox() 599 CListCtrl::~CListCtrl() 600 CLongBinary::~CLongBinary() 601 CMapPtrToPtr::~CMapPtrToPtr() 602 CMapPtrToWord::~CMapPtrToWord() 603 CMapStringToOb::~CMapStringToOb() 604 CMapStringToPtr::~CMapStringToPtr() 605 CMapStringToString::~CMapStringToString() 606 CMapWordToOb::~CMapWordToOb() 607 CMapWordToPtr::~CMapWordToPtr() 608 CMemFile::~CMemFile() 609 CMetaFileDC::~CMetaFileDC() 610 CMiniFrameWnd::~CMiniFrameWnd() 611 CMonikerFile::~CMonikerFile() 612 CMonthCalCtrl::~CMonthCalCtrl() 613 CMultiDocTemplate::~CMultiDocTemplate() 614 CMultiLock::~CMultiLock() 615 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 616 CMutex::~CMutex() 617 CObArray::~CObArray() 618 CObList::~CObList() 619 COleBusyDialog::~COleBusyDialog() 620 COleChangeIconDialog::~COleChangeIconDialog() 621 COleChangeSourceDialog::~COleChangeSourceDialog() 622 COleClientItem::~COleClientItem() 623 COleCntrFrameWnd::~COleCntrFrameWnd() 624 COleControl::~COleControl() 625 COleControlContainer::~COleControlContainer() 626 COleControlLock::~COleControlLock() 627 COleControlSite::~COleControlSite() 628 COleControlSiteOrWnd::~COleControlSiteOrWnd() 629 COleConvertDialog::~COleConvertDialog() 630 COleDataSource::~COleDataSource() 631 COleDispatchException::~COleDispatchException() 632 COleDocIPFrameWnd::~COleDocIPFrameWnd() 633 COleDocObjectItem::~COleDocObjectItem() 634 COleDocument::~COleDocument() 635 COleDropTarget::~COleDropTarget() 636 COleFrameHook::~COleFrameHook() 637 COleInsertDialog::~COleInsertDialog() 638 COleIPFrameWnd::~COleIPFrameWnd() 639 COleLinkingDoc::~COleLinkingDoc() 640 COleLinksDialog::~COleLinksDialog() 641 COleMessageFilter::~COleMessageFilter() 642 COleObjectFactory::~COleObjectFactory() 643 COlePasteSpecialDialog::~COlePasteSpecialDialog() 644 COlePropertyPage::~COlePropertyPage() 645 COleResizeBar::~COleResizeBar() 646 COleServerDoc::~COleServerDoc() 647 COleServerItem::~COleServerItem() 648 COleStreamFile::~COleStreamFile() 649 COleUpdateDialog::~COleUpdateDialog() 650 CPaintDC::~CPaintDC() 651 CPictureHolder::~CPictureHolder() 652 CPreviewDC::~CPreviewDC() 653 CPreviewView::~CPreviewView() 654 CPrintInfo::~CPrintInfo() 655 CProcessLocalObject::~CProcessLocalObject() 656 CProgressCtrl::~CProgressCtrl() 657 CPropbagPropExchange::~CPropbagPropExchange() 658 CProperty::~CProperty() 659 CPropertyPage::~CPropertyPage() 660 CPropertySection::~CPropertySection() 661 CPropertySet::~CPropertySet() 662 CPropertySheet::~CPropertySheet() 663 CPtrArray::~CPtrArray() 664 CPtrList::~CPtrList() 665 CRecentFileList::~CRecentFileList() 666 CRecordset::~CRecordset() 667 CRecordView::~CRecordView() 668 CRectTracker::~CRectTracker() 669 CReObject::~CReObject() 670 CRichEditCntrItem::~CRichEditCntrItem() 671 CRichEditCtrl::~CRichEditCtrl() 672 CScrollBar::~CScrollBar() 673 CScrollView::~CScrollView() 674 CSemaphore::~CSemaphore() 675 CSharedFile::~CSharedFile() 676 CSingleDocTemplate::~CSingleDocTemplate() 677 CSliderCtrl::~CSliderCtrl() 678 CSocket::~CSocket() 679 CSocketFile::~CSocketFile() 680 CSpinButtonCtrl::~CSpinButtonCtrl() 681 CSplitterWnd::~CSplitterWnd() 682 CStatic::~CStatic() 683 CStatusBar::~CStatusBar() 684 CStatusBarCtrl::~CStatusBarCtrl() 685 CStdioFile::~CStdioFile() 686 CStringArray::~CStringArray() 687 CStringList::~CStringList() 688 CSyncObject::~CSyncObject() 689 CTabCtrl::~CTabCtrl() 690 CThreadLocalObject::~CThreadLocalObject() 691 CThreadSlotData::~CThreadSlotData() 692 CToolBar::~CToolBar() 693 CToolBarCtrl::~CToolBarCtrl() 694 CToolTipCtrl::~CToolTipCtrl() 695 CTreeCtrl::~CTreeCtrl() 696 CUIntArray::~CUIntArray() 697 CView::~CView() 698 CWinApp::~CWinApp() 699 CWindowDC::~CWindowDC() 700 CWinThread::~CWinThread() 701 CWnd::~CWnd() 702 CWordArray::~CWordArray() 703 void * operator new(unsigned int) 704 void * CNoTrackObject::operator new(unsigned int) 705 void operator delete(void *) 706 void CNoTrackObject::operator delete(void *) 707 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 708 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 709 COleCurrency const & COleCurrency::operator=(union tagCY) 710 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 711 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 712 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 713 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 714 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 715 COleVariant const & COleVariant::operator=(tagVARIANT const &) 716 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 717 COleVariant const & COleVariant::operator=(COleVariant const &) 718 COleVariant const & COleVariant::operator=(CByteArray const &) 719 COleVariant const & COleVariant::operator=(CLongBinary const &) 720 COleVariant const & COleVariant::operator=(COleCurrency const &) 721 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 722 COleVariant const & COleVariant::operator=(unsigned char) 723 COleVariant const & COleVariant::operator=(short) 724 COleVariant const & COleVariant::operator=(long) 725 COleVariant const & COleVariant::operator=(float) 726 COleVariant const & COleVariant::operator=(double) 727 COleVariant const & COleVariant::operator=(tagVARIANT const *) 728 COleVariant const & COleVariant::operator=(char const * const) 729 CArchive & operator>>(CArchive &,CByteArray * &) 730 CArchive & operator>>(CArchive &,CDocItem * &) 731 CArchive & operator>>(CArchive &,CDockState * &) 732 CArchive & operator>>(CArchive &,CDWordArray * &) 733 CArchive & operator>>(CArchive &,CMapStringToOb * &) 734 CArchive & operator>>(CArchive &,CMapStringToString * &) 735 CArchive & operator>>(CArchive &,CMapWordToOb * &) 736 CArchive & operator>>(CArchive &,CObArray * &) 737 CArchive & operator>>(CArchive &,CObList * &) 738 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 739 CArchive & operator>>(CArchive &,CStringArray * &) 740 CArchive & operator>>(CArchive &,CStringList * &) 741 CArchive & operator>>(CArchive &,CWordArray * &) 742 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 743 CArchive & operator>>(CArchive &,COleCurrency &) 744 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 745 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 746 CArchive & operator>>(CArchive &,COleVariant &) 747 CArchive & operator>>(CArchive &,ATL::CTime &) 748 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 749 CArchive & operator<<(CArchive &,ATL::CComBSTR) 750 CArchive & operator<<(CArchive &,COleCurrency) 751 CArchive & operator<<(CArchive &,ATL::COleDateTime) 752 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 753 CArchive & operator<<(CArchive &,COleVariant) 754 CArchive & operator<<(CArchive &,ATL::CTime) 755 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 756 CDumpContext & CDumpContext::operator<<(__int64) 757 CDumpContext & CDumpContext::operator<<(unsigned __int64) 758 CDumpContext & CDumpContext::operator<<(CObject const &) 759 CDumpContext & CDumpContext::operator<<(unsigned char) 760 CDumpContext & CDumpContext::operator<<(unsigned short) 761 CDumpContext & CDumpContext::operator<<(int) 762 CDumpContext & CDumpContext::operator<<(unsigned int) 763 CDumpContext & CDumpContext::operator<<(long) 764 CDumpContext & CDumpContext::operator<<(unsigned long) 765 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 766 CDumpContext & CDumpContext::operator<<(HDC__ *) 767 CDumpContext & CDumpContext::operator<<(HFONT__ *) 768 CDumpContext & CDumpContext::operator<<(HMENU__ *) 769 CDumpContext & CDumpContext::operator<<(HWND__ *) 770 CDumpContext & CDumpContext::operator<<(wchar_t const *) 771 CDumpContext & CDumpContext::operator<<(char const *) 772 CDumpContext & CDumpContext::operator<<(CObject const *) 773 CDumpContext & CDumpContext::operator<<(void const *) 774 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 775 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 776 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 777 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 778 int COleSafeArray::operator==(tagSAFEARRAY const &)const 779 int COleSafeArray::operator==(tagVARIANT const &)const 780 int COleSafeArray::operator==(COleSafeArray const &)const 781 int COleSafeArray::operator==(COleVariant const &)const 782 int COleSafeArray::operator==(tagSAFEARRAY const *)const 783 int COleSafeArray::operator==(tagVARIANT const *)const 784 int COleVariant::operator==(tagVARIANT const &)const 785 void * & CMapPtrToPtr::operator[](void *) 786 unsigned short & CMapPtrToWord::operator[](void *) 787 CObject * & CMapStringToOb::operator[](char const *) 788 void * & CMapStringToPtr::operator[](char const *) 789 ATL::CStringT > > & CMapStringToString::operator[](char const *) 790 CObject * & CMapWordToOb::operator[](unsigned short) 791 void * & CMapWordToPtr::operator[](unsigned short) 792 COleCurrency COleCurrency::operator*(long)const 793 COleCurrency COleCurrency::operator-(COleCurrency const &)const 794 COleCurrency COleCurrency::operator-()const 795 COleCurrency COleCurrency::operator+(COleCurrency const &)const 796 COleCurrency COleCurrency::operator/(long)const 797 int COleCurrency::operator<(COleCurrency const &)const 798 int COleCurrency::operator<=(COleCurrency const &)const 799 int COleCurrency::operator>(COleCurrency const &)const 800 int COleCurrency::operator>=(COleCurrency const &)const 801 int _AfxSocketInit(WSAData *) 802 void CArchive::Abort() 803 void CFile::Abort() 804 void CInternetFile::Abort() 805 void CMemFile::Abort() 806 void CMirrorFile::Abort() 807 void COleStreamFile::Abort() 808 void CSocketFile::Abort() 809 void CStdioFile::Abort() 810 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 811 long CCheckListBox::accDoDefaultAction(tagVARIANT) 812 long CWnd::accDoDefaultAction(tagVARIANT) 813 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 814 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 815 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 816 void COleSafeArray::AccessData(void * *) 817 long CWnd::accHitTest(long,long,tagVARIANT *) 818 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 819 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 820 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 821 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 822 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 823 long CWnd::accSelect(long,tagVARIANT) 824 long CWnd::XAccessible::accSelect(long,tagVARIANT) 825 void COleClientItem::Activate(long,CView *,tagMSG *) 826 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 827 void COleDocObjectItem::ActivateAndShow() 828 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 829 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 830 void CDocObjectServer::ActivateDocObject() 831 void COleServerDoc::ActivateDocObject() 832 void CFrameWnd::ActivateFrame(int) 833 void CMDIChildWnd::ActivateFrame(int) 834 int COleServerDoc::ActivateInPlace() 835 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 836 void CSplitterWnd::ActivateNext(int) 837 void CWnd::ActivateTopParent() 838 void CRecentFileList::Add(char const *) 839 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 840 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 841 int CToolBarCtrl::AddBitmap(int,unsigned int) 842 int CToolBarCtrl::AddBitmap(int,CBitmap *) 843 void COleClientItem::AddCachedData(COleDataSource *) 844 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 845 void CEnumConnections::AddConnection(tagCONNECTDATA *) 846 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 847 void CDocManager::AddDocTemplate(CDocTemplate *) 848 void CWinApp::AddDocTemplate(CDocTemplate *) 849 void CDocTemplate::AddDocument(CDocument *) 850 void CMultiDocTemplate::AddDocument(CDocument *) 851 void CSingleDocTemplate::AddDocument(CDocument *) 852 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 853 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 854 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 855 void COleControl::AddFrameLevelUI() 856 void CFrameWnd::AddFrameWnd() 857 __POSITION * CObList::AddHead(CObject *) 858 void CObList::AddHead(CObList *) 859 __POSITION * CPtrList::AddHead(void *) 860 void CPtrList::AddHead(CPtrList *) 861 void CSimpleList::AddHead(void *) 862 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 863 __POSITION * CStringList::AddHead(char const *) 864 void CStringList::AddHead(CStringList *) 865 void COleDocument::AddItem(CDocItem *) 866 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 867 void CRecordset::AddNew() 868 void COleServerItem::AddOtherClipboardData(COleDataSource *) 869 void CPropertySheet::AddPage(CPropertyPage *) 870 void CPropertySection::AddProperty(CProperty *) 871 void CPropertySet::AddProperty(_GUID,CProperty *) 872 unsigned long CArchiveStream::AddRef() 873 unsigned long CBlobProperty::AddRef() 874 unsigned long CBrowserControlSite::AddRef() 875 unsigned long CDHtmlControlSink::AddRef() 876 unsigned long CDHtmlElementEventSink::AddRef() 877 unsigned long CDHtmlEventSink::AddRef() 878 unsigned long CInnerUnknown::AddRef() 879 unsigned long COleConnPtContainer::AddRef() 880 unsigned long COleDispatchImpl::AddRef() 881 unsigned long COleUILinkInfo::AddRef() 882 unsigned long CPrintDialogEx::AddRef() 883 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 884 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 885 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 886 CPropertySection * CPropertySet::AddSection(_GUID) 887 void CPropertySet::AddSection(CPropertySection *) 888 void COlePasteSpecialDialog::AddStandardFormats(int) 889 int CToolBarCtrl::AddString(unsigned int) 890 __POSITION * CObList::AddTail(CObject *) 891 void CObList::AddTail(CObList *) 892 __POSITION * CPtrList::AddTail(void *) 893 void CPtrList::AddTail(CPtrList *) 894 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 895 __POSITION * CStringList::AddTail(char const *) 896 void CStringList::AddTail(CStringList *) 897 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 898 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 899 void CWinApp::AddToRecentFileList(char const *) 900 void CDocument::AddView(CView *) 901 void CMetaFileDC::AdjustCP(int) 902 void CRichEditView::AdjustDialogPosition(CDialog *) 903 void CRectTracker::AdjustRect(int,tagRECT *) 904 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 905 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 906 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 907 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 908 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 909 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 910 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 911 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 912 void AfxAbort() 917 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 918 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 919 wchar_t * AfxBSTR2ABSTR(wchar_t *) 920 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 921 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 922 void AfxCancelModes(HWND__ *) 923 void AfxCheckError(long) 924 void AfxClassInit(CRuntime*) 925 int AfxComparePath(char const *,char const *) 926 int AfxCompareValueByRef(void *,void *,int) 927 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 928 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 929 void AfxCopyValueByRef(void *,void *,long *,int) 930 void AfxCoreInitModule() 931 HDC__ * AfxCreateDC(void *,void *) 932 int AfxCriticalInit() 933 int AfxCriticalNewHandler(unsigned int) 934 void AfxCriticalTerm() 935 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 936 AUX_DATA afxData 937 void AfxDeleteObject(void * *) 938 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 939 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 940 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 941 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 942 long AfxDllCanUnloadNow() 943 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 944 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 945 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 946 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 947 void AfxEnableControlContainer(COccManager *) 948 int AfxEndDeferRegisterClass(long) 949 void AfxEndThread(unsigned int,int) 950 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 951 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 952 void AfxFailMaxChars(CDataExchange *,int) 953 void AfxFailRadio(CDataExchange *) 954 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 955 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 956 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 957 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 958 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 959 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 960 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 961 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 962 int AfxFreeLibrary(HINSTANCE__ *) 963 int AfxFullPath(char *,char const *) 964 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 965 AFX_MODULE_STATE * AfxGetAppModuleState() 966 long AfxGetClassIDFromString(char const *,_GUID *) 967 tagMSG * AfxGetCurrentMessage() 968 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 969 unsigned long AfxGetDllVersion() 970 unsigned int AfxGetFileName(char const *,char *,unsigned int) 971 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 972 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 973 void * AfxGetHENV() 974 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 975 unsigned long AfxGetInternetHandleType(void *) 976 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 977 AFX_MODULE_STATE * AfxGetModuleState() 978 int (__cdecl*AfxGetNewHandler())(unsigned int) 979 HWND__ * AfxGetParentOwner(HWND__ *) 980 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 981 void AfxGetRoot(char const *,ATL::CStringT > > &) 982 ATL::IAtlStringMgr * AfxGetStringManager() 983 CWinThread * AfxGetThread() 984 _AFX_THREAD_STATE * AfxGetThreadState() 985 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 986 void AfxGlobalFree(void *) 987 int AfxHelpEnabled() 988 void AfxHookWindowCreate(CWnd *) 989 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 990 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 991 void AfxInitLocalData(HINSTANCE__ *) 992 int AfxInitRichEdit() 993 void AfxInitThread() 994 int AfxInternalIsIdleMessage(tagMSG *) 995 int AfxInternalPreTranslateMessage(tagMSG *) 996 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 997 int AfxInternalPumpMessage() 998 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 999 int AfxIsDescendant(HWND__ *,HWND__ *) 1000 int AfxIsIdleMessage(tagMSG *) 1001 int AfxIsValidAddress(void const *,unsigned int,int) 1002 int AfxIsValidString(wchar_t const *,int) 1003 int AfxIsValidString(char const *,int) 1004 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1005 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1006 HINSTANCE__ * AfxLoadLibrary(char const *) 1007 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1008 int AfxLoadString(unsigned int,char *,unsigned int) 1009 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1010 void AfxLockGlobals(int) 1011 void AfxLockTempMaps() 1012 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1013 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1014 int AfxMessageBox(char const *,unsigned int,unsigned int) 1015 int AfxOleCanExitApp() 1016 int AfxOleGetUserCtrl() 1017 int AfxOleInit() 1018 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1019 void AfxOleLockApp() 1020 int AfxOleLockControl(_GUID const &) 1021 int AfxOleLockControl(char const *) 1022 void AfxOleOnReleaseAllObjects() 1023 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1024 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1025 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1026 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1027 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1028 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1029 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1030 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1031 void AfxOleSetUserCtrl(int) 1032 void AfxOleTerm(int) 1033 void AfxOleTermOrFreeLib(int,int) 1034 void AfxOleUnlockAllControls() 1035 void AfxOleUnlockApp() 1036 int AfxOleUnlockControl(_GUID const &) 1037 int AfxOleUnlockControl(char const *) 1038 int AfxOleUnregisterClass(_GUID const &,char const *) 1039 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1040 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1041 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1042 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1043 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1044 void AfxPostQuitMessage(int) 1045 int AfxPreTranslateMessage(tagMSG *) 1046 long AfxProcessWndProcException(CException *,tagMSG const *) 1047 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1048 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1049 int AfxPumpMessage() 1050 unsigned int AfxReadStringLength(CArchive &,int &) 1051 int AfxRegisterClass(tagWNDCLASSA *) 1052 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1053 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1054 void AfxResetMsgCache() 1055 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1056 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1057 void AfxSafeArrayInit(COleSafeArray *) 1058 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1059 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1060 void AfxSetWindowText(HWND__ *,char const *) 1061 void AfxSocketTerm() 1062 void AfxStoreField(CRecordset &,unsigned int,void *) 1063 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1064 wchar_t * AfxTaskStringA2W(char const *) 1065 char * AfxTaskStringW2A(wchar_t const *) 1066 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1067 void AfxTermLocalData(HINSTANCE__ *,int) 1068 void AfxTermThread(HINSTANCE__ *) 1069 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1070 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1071 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1072 void AfxThrowArchiveException(int,char const *) 1073 void AfxThrowDBException(short,CDatabase *,void *) 1074 void AfxThrowFileException(int,long,char const *) 1075 void AfxThrowInternetException(unsigned long,unsigned long) 1076 void AfxThrowLastCleanup() 1077 void AfxThrowMemoryException() 1078 void AfxThrowNotSupportedException() 1079 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1080 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1081 void AfxThrowOleException(long) 1082 void AfxThrowResourceException() 1083 void AfxThrowUserException() 1084 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1085 void AfxTlsAddRef() 1086 void AfxTlsRelease() 1087 void AfxTrackerTerm() 1088 void AfxTryCleanup() 1089 int AfxUnhookWindowCreate() 1090 void AfxUnlockGlobals(int) 1091 int AfxUnlockTempMaps(int) 1092 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1093 void AfxVariantInit(tagVARIANT *) 1094 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1095 char * AfxW2AHelper(char *,wchar_t const *,int) 1096 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1097 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1098 void AfxWinTerm() 1099 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1100 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1101 void AfxWriteStringLength(CArchive &,unsigned int,int) 1102 void * CFixedAlloc::Alloc() 1103 void * CFixedAllocNoSync::Alloc() 1104 unsigned char * CMemFile::Alloc(unsigned long) 1105 unsigned char * CSharedFile::Alloc(unsigned long) 1106 void CRecordset::AllocAndCacheFieldInfo() 1107 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1108 void CDatabase::AllocConnect(unsigned long) 1109 void COleSafeArray::AllocData() 1110 void CRecordset::AllocDataCache() 1111 void COleSafeArray::AllocDescriptor(unsigned long) 1112 int CControlBar::AllocElements(int,int) 1113 int CStatusBar::AllocElements(int,int) 1114 int CRecordset::AllocHstmt() 1115 void CPropertyPage::AllocPSP(unsigned long) 1116 void CRecordset::AllocRowset() 1117 int CThreadSlotData::AllocSlot() 1118 void CRecordset::AllocStatusArrays() 1119 void * CProperty::AllocValue(unsigned long) 1120 short COleControl::AmbientAppearance() 1121 unsigned long COleControl::AmbientBackColor() 1122 ATL::CStringT > > COleControl::AmbientDisplayName() 1123 IFontDisp * COleControl::AmbientFont() 1124 unsigned long COleControl::AmbientForeColor() 1125 unsigned long COleControl::AmbientLocaleID() 1126 ATL::CStringT > > COleControl::AmbientScaleUnits() 1127 int COleControl::AmbientShowGrabHandles() 1128 int COleControl::AmbientShowHatching() 1129 short COleControl::AmbientTextAlign() 1130 int COleControl::AmbientUIDead() 1131 int COleControl::AmbientUserMode() 1132 int CByteArray::Append(CByteArray const &) 1133 int CDWordArray::Append(CDWordArray const &) 1134 int CObArray::Append(CObArray const &) 1135 int CPtrArray::Append(CPtrArray const &) 1136 int CStringArray::Append(CStringArray const &) 1137 int CUIntArray::Append(CUIntArray const &) 1138 int CWordArray::Append(CWordArray const &) 1139 void CRecordset::AppendFilterAndSortSQL() 1140 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1141 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1142 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1143 long COlePropertyPage::XPropertyPage::Apply() 1144 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1145 int COleDocument::ApplyPrintDevice(tagPDA const *) 1146 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1147 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1148 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1149 int CAsyncSocket::AsyncSelect(long) 1150 int CAsyncSocket::Attach(unsigned int,long) 1151 int CDC::Attach(HDC__ *) 1152 int CGdiObject::Attach(void *) 1153 int CImageList::Attach(_IMAGELIST *) 1154 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1155 int CMenu::Attach(HMENU__ *) 1156 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1157 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1158 void COleDataObject::Attach(IDataObject *,int) 1159 void COleSafeArray::Attach(tagVARIANT &) 1160 void COleStreamFile::Attach(IStream *) 1161 void COleVariant::Attach(tagVARIANT &) 1162 int CWnd::Attach(HWND__ *) 1163 int COleDataObject::AttachClipboard() 1164 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1165 void CWnd::AttachControlSite(CHandleMap *) 1166 void CWnd::AttachControlSite(CWnd *,unsigned int) 1167 void COleClientItem::AttachDataObject(COleDataObject &)const 1168 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1169 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1170 CPrintDialog * CPrintDialog::AttachOnSetup() 1171 void COleControlSite::AttachWindow() 1172 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1173 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1174 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1175 void COleMessageFilter::BeginBusyState() 1176 int CDragListBox::BeginDrag(CPoint) 1177 void COleDataObject::BeginEnumFormats() 1178 void CFrameWnd::BeginModalState() 1179 int CDatabase::BeginTrans() 1180 void CCmdTarget::BeginWaitCursor() 1181 int CAsyncSocket::Bind(unsigned int,char const *) 1182 void CDataSourceControl::BindColumns() 1183 void COccManager::BindControls(CWnd *) 1184 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1185 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1186 void CRecordset::BindFieldsForUpdate() 1187 unsigned int CRecordset::BindFieldsToColumns() 1188 void CDatabase::BindParameters(void *) 1189 unsigned int CRecordset::BindParams(void *) 1190 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1191 void CDataSourceControl::BindProp(COleControlSite *,int) 1192 void COleControlSite::BindProperty(long,CWnd *) 1193 void CWnd::BindProperty(long,CWnd *) 1194 void COleControl::BoundPropertyChanged(long) 1195 int COleControl::BoundPropertyRequestEdit(long) 1196 void CFrameWnd::BringToTop(int) 1197 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1198 void CDBException::BuildErrorString(CDatabase *,void *,int) 1199 void CPropertySheet::BuildPropPageArray() 1200 void CRecordset::BuildSelectSQL() 1201 int COleControl::BuildSharedMenu() 1202 int COleDocIPFrameWnd::BuildSharedMenu() 1203 int COleIPFrameWnd::BuildSharedMenu() 1204 void CRecordset::BuildSQL(char const *) 1205 void CRecordset::BuildUpdateSQL() 1206 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1207 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1208 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1209 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1210 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1211 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1212 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1213 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1214 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1215 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1216 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1217 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1218 CSize CControlBar::CalcFixedLayout(int,int) 1219 CSize CDialogBar::CalcFixedLayout(int,int) 1220 CSize CDockBar::CalcFixedLayout(int,int) 1221 CSize CReBar::CalcFixedLayout(int,int) 1222 CSize CStatusBar::CalcFixedLayout(int,int) 1223 CSize CToolBar::CalcFixedLayout(int,int) 1224 void CControlBar::CalcInsideRect(CRect &,int)const 1225 void CStatusBar::CalcInsideRect(CRect &,int)const 1226 CSize CToolBar::CalcLayout(unsigned long,int) 1227 int CCheckListBox::CalcMinimumItemHeight() 1228 CSize CPreviewView::CalcPageDisplaySize() 1229 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1230 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1231 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1232 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1233 void CView::CalcWindowRect(tagRECT *,unsigned int) 1234 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1235 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1236 int CDHtmlDialog::CanAccessExternal() 1237 int COleClientItem::CanActivate() 1238 int CRichEditCntrItem::CanActivate() 1239 int CSplitterWnd::CanActivateNext(int) 1240 int CRecordset::CanBookmark()const 1241 void CDatabase::Cancel() 1242 void CRecordset::Cancel() 1243 void CSocket::CancelBlockingCall() 1244 void CDragListBox::CancelDrag(CPoint) 1245 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1246 long COleUILinkInfo::CancelLink(unsigned long) 1247 void CDockContext::CancelLoop() 1248 void CPropertyPage::CancelToClose() 1249 void CWnd::CancelToolTips(int) 1250 void CRecordset::CancelUpdate() 1251 int CDocument::CanCloseFrame(CFrameWnd *) 1252 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1253 int COleClientItem::CanCreateFromData(COleDataObject const *) 1254 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1255 unsigned long CDockContext::CanDock() 1256 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1257 int CFrameWnd::CanEnterHelpMode() 1258 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1259 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1260 int COleClientItem::CanPaste() 1261 int CRichEditCtrl::CanPaste(unsigned int)const 1262 int CRichEditView::CanPaste()const 1263 int COleClientItem::CanPasteLink() 1264 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1265 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1266 void CScrollView::CenterOnPoint(CPoint) 1267 void CWnd::CenterWindow(CWnd *) 1268 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1269 int CListBox::CharToItem(unsigned int,unsigned int) 1270 int CDatabase::Check(short)const 1271 int CRecordset::Check(short)const 1272 int CDialog::CheckAutoCenter() 1273 int CWnd::CheckAutoCenter() 1274 void CArchive::CheckCount() 1275 void COleControlContainer::CheckDlgButton(int,unsigned int) 1276 void CWnd::CheckDlgButton(int,unsigned int) 1277 int CCheckListBox::CheckFromPoint(CPoint,int &) 1278 void COleClientItem::CheckGeneral(long) 1279 int CDatabase::CheckHstmt(short,void *)const 1280 void COleControlContainer::CheckRadioButton(int,int,int) 1281 void CWnd::CheckRadioButton(int,int,int) 1282 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1283 void CRecordset::CheckRowsetError(short) 1284 void CScrollView::CheckScrollBars(int &,int &)const 1285 void CPropertyPage::Cleanup() 1286 void COlePropertyPage::CleanupObjectArray() 1287 void CDBVariant::Clear() 1288 void CDockState::Clear() 1289 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1290 void CRecordset::ClearFieldStatus() 1291 void CRecordset::ClearNullFieldStatus(unsigned long) 1292 void CRecordset::ClearNullParamStatus(unsigned long) 1293 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1294 void CWnd::ClientToScreen(tagRECT *)const 1295 int COleControl::ClipCaretRect(tagRECT *) 1296 void CPreviewDC::ClipToPage() 1297 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1298 long CArchiveStream::Clone(IStream * *) 1299 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1300 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1301 void CArchive::Close() 1302 void CAsyncMonikerFile::Close() 1303 void CAsyncSocket::Close() 1304 void CCachedDataPathProperty::Close() 1305 void CDatabase::Close() 1306 void CFile::Close() 1307 void CFileFind::Close() 1308 void CInternetConnection::Close() 1309 void CInternetFile::Close() 1310 void CInternetSession::Close() 1311 void CMemFile::Close() 1312 void CMirrorFile::Close() 1313 void CMonikerFile::Close() 1314 void COleClientItem::Close(enum tagOLECLOSE) 1315 void COleStreamFile::Close() 1316 void CRecordset::Close() 1317 void CSocket::Close() 1318 void CSocketFile::Close() 1319 void CStdioFile::Close() 1320 long CDocObjectServer::XOleObject::Close(unsigned long) 1321 long COleControl::XOleObject::Close(unsigned long) 1322 long COleServerDoc::XOleObject::Close(unsigned long) 1323 long COleServerItem::XOleObject::Close(unsigned long) 1324 void CDocManager::CloseAllDocuments(int) 1325 void CDocTemplate::CloseAllDocuments(int) 1326 void CWinApp::CloseAllDocuments(int) 1327 void CFileFind::CloseContext() 1328 void CFtpFileFind::CloseContext() 1329 void CGopherFileFind::CloseContext() 1330 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1331 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1332 int CStatusBar::CommandToIndex(unsigned int)const 1333 int CToolBar::CommandToIndex(unsigned int)const 1334 long CArchiveStream::Commit(unsigned long) 1335 void COleClientItem::CommitItem(int) 1336 void COleDocument::CommitItems(int,IStorage *) 1337 int CDatabase::CommitTrans() 1338 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 1339 void CPropertyPage::CommonConstruct(char const *,unsigned int) 1340 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 1341 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1342 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1343 void CWinThread::CommonConstruct() 1344 int CComboBox::CompareItem(tagCOMPAREITEM*) 1345 int CListBox::CompareItem(tagCOMPAREITEM*) 1346 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 1347 int CAsyncSocket::Connect(char const *,unsigned int) 1348 int CDatabase::Connect(unsigned long) 1349 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1350 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1351 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1352 int CSocket::ConnectHelper(sockaddr const *,int) 1353 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1354 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1355 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1356 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1357 void COleServerDoc::ConnectView(CWnd *,CView *) 1358 void CPropertyPage::Construct(unsigned int,unsigned int) 1359 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1360 void CPropertyPage::Construct(char const *,unsigned int) 1361 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 1362 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1363 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1364 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 1365 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1366 void CRectTracker::Construct() 1367 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1368 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1369 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1370 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1371 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1372 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1373 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1374 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1375 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1376 int CPropertySheet::ContinueModal() 1377 int CWnd::ContinueModal() 1378 void COleControl::ControlInfoChanged() 1379 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1380 int COleClientItem::ConvertTo(_GUID const &) 1381 int CRichEditCntrItem::ConvertTo(_GUID const &) 1382 void CByteArray::Copy(CByteArray const &) 1383 void CDWordArray::Copy(CDWordArray const &) 1384 void CObArray::Copy(CObArray const &) 1385 void COleSafeArray::Copy(tagSAFEARRAY * *) 1386 void CPtrArray::Copy(CPtrArray const &) 1387 void CStringArray::Copy(CStringArray const &) 1388 void CUIntArray::Copy(CUIntArray const &) 1389 void CWordArray::Copy(CWordArray const &) 1390 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1391 void CopyElements(COleVariant *,COleVariant const *,int) 1392 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1393 void COleClientItem::CopyToClipboard(int) 1394 void COleServerItem::CopyToClipboard(int) 1395 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1396 int CAsyncSocket::Create(unsigned int,int,long,char const *) 1397 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1398 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1399 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1400 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1401 int CControlFrameWnd::Create(char const *) 1402 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1403 int CDialog::Create(char const *,CWnd *) 1404 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 1405 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1406 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1407 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 1408 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1409 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 1410 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1411 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1412 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1413 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1414 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1415 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1416 int CImageList::Create(int,int,unsigned int,int,int) 1417 int CImageList::Create(unsigned int,int,int,unsigned long) 1418 int CImageList::Create(CImageList *) 1419 int CImageList::Create(char const *,int,int,unsigned long) 1420 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1421 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1422 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1423 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1424 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1425 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1426 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1427 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1428 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1429 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1430 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1431 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1432 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1433 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1434 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1435 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1436 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1437 int CReflectorWnd::Create(CRect const &,HWND__ *) 1438 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1439 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1440 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1441 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1442 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1443 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1444 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1445 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1446 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1447 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1448 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1449 int CToolTipCtrl::Create(CWnd *,unsigned long) 1450 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1451 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1452 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1453 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1454 IBindHost * CMonikerFile::CreateBindHost() 1455 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1456 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 1457 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1458 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1459 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1460 void CConnectionPoint::CreateConnectionArray() 1461 COleControlContainer * COccManager::CreateContainer(CWnd *) 1462 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1463 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1464 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1465 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1466 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1467 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1468 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1469 int CWnd::CreateControlContainer(COleControlContainer * *) 1470 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1471 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1472 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1473 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1474 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1475 int CFtpConnection::CreateDirectoryA(char const *) 1476 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1477 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 1478 int CWnd::CreateDlg(char const *,CWnd *) 1479 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1480 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1481 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 1482 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 1483 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1484 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1485 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1486 int CPictureHolder::CreateEmpty() 1487 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1488 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1489 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1490 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1491 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1492 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1493 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1494 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1495 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1496 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1497 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1498 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1499 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1500 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1501 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1502 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1503 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1504 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1505 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1506 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1507 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1508 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1509 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1510 CControlFrameWnd * COleControl::CreateFrameWindow() 1511 int CPictureHolder::CreateFromBitmap(unsigned int) 1512 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1513 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1514 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1515 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1516 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1517 int CPictureHolder::CreateFromIcon(unsigned int) 1518 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1519 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1520 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1521 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1522 int CDialog::CreateIndirect(void *,CWnd *) 1523 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1524 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1525 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1526 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1527 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1528 int COleInsertDialog::CreateItem(COleClientItem *) 1529 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1530 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1531 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1532 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1533 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 1534 CGopherLocator CGopherConnection::CreateLocator(char const *) 1535 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 1536 int COleStreamFile::CreateMemoryStream(CFileException *) 1537 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1538 CDocument * CDocTemplate::CreateNewDocument() 1539 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1540 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1541 CObject * CByteArray::CreateObject() 1542 CObject * CDC::CreateObject() 1543 CObject * CDocItem::CreateObject() 1544 CObject * CDockState::CreateObject() 1545 CObject * CDWordArray::CreateObject() 1546 CObject * CEditView::CreateObject() 1547 CObject * CFrameWnd::CreateObject() 1548 CObject * CGdiObject::CreateObject() 1549 CObject * CHtmlEditView::CreateObject() 1550 CObject * CHtmlView::CreateObject() 1551 CObject * CImageList::CreateObject() 1552 CObject * CListView::CreateObject() 1553 CObject * CMapStringToOb::CreateObject() 1554 CObject * CMapStringToString::CreateObject() 1555 CObject * CMapWordToOb::CreateObject() 1556 CObject * CMDIChildWnd::CreateObject() 1557 CObject * CMDIFrameWnd::CreateObject() 1558 CObject * CMenu::CreateObject() 1559 CObject * CMiniDockFrameWnd::CreateObject() 1560 CObject * CMiniFrameWnd::CreateObject() 1561 CObject * CObArray::CreateObject() 1562 CObject * CObList::CreateObject() 1563 CObject * COleDocIPFrameWnd::CreateObject() 1564 CObject * COleIPFrameWnd::CreateObject() 1565 CObject * CPreviewView::CreateObject() 1566 CObject * CRichEditCntrItem::CreateObject() 1567 CObject * CRichEditView::CreateObject() 1568 CObject * CRuntimeClass::CreateObject() 1569 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1570 CObject * CRuntimeClass::CreateObject(char const *) 1571 CObject * CStringArray::CreateObject() 1572 CObject * CStringList::CreateObject() 1573 CObject * CTreeView::CreateObject() 1574 CObject * CWnd::CreateObject() 1575 CObject * CWordArray::CreateObject() 1576 void COleControlContainer::CreateOleFont(CFont *) 1577 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1578 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1579 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1580 int CFont::CreatePointFont(int,char const *,CDC *) 1581 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 1582 HDC__ * CPageSetupDialog::CreatePrinterDC() 1583 HDC__ * CPrintDialog::CreatePrinterDC() 1584 HDC__ * CPrintDialogEx::CreatePrinterDC() 1585 int CWinApp::CreatePrinterDC(CDC &) 1586 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1587 COleControlSite * COccManager::CreateSite(COleControlContainer *) 1588 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1589 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1590 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1591 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 1592 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1593 void COleControl::CreateTracker(int,int) 1594 void COleControl::CreateTracker(int,int,tagRECT const *) 1595 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1596 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1597 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1598 void COleControl::CreateWindowForSubclassedControl() 1599 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1600 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1601 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1602 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1603 void DDP_Check(CDataExchange *,int,int &,char const *) 1604 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 1605 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 1606 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 1607 void DDP_EndText(CDataExchange *,int,short *,char const *) 1608 void DDP_EndText(CDataExchange *,int,int *,char const *) 1609 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 1610 void DDP_EndText(CDataExchange *,int,long *,char const *) 1611 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 1612 void DDP_EndText(CDataExchange *,int,float *,char const *) 1613 void DDP_EndText(CDataExchange *,int,double *,char const *) 1614 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 1615 void DDP_PostProcessing(CDataExchange *) 1616 void DDP_Radio(CDataExchange *,int,int &,char const *) 1617 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 1618 void DDP_Text(CDataExchange *,int,short &,char const *) 1619 void DDP_Text(CDataExchange *,int,int &,char const *) 1620 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 1621 void DDP_Text(CDataExchange *,int,long &,char const *) 1622 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 1623 void DDP_Text(CDataExchange *,int,float &,char const *) 1624 void DDP_Text(CDataExchange *,int,double &,char const *) 1625 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 1626 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1627 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1628 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1629 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1630 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1631 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1632 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1633 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1634 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1635 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1636 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1637 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1638 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1639 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1640 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1641 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1642 void DDX_CBIndex(CDataExchange *,int,int &) 1643 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1644 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1645 void DDX_Check(CDataExchange *,int,int &) 1646 void DDX_Control(CDataExchange *,int,CWnd &) 1647 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1648 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1649 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1650 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1651 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1652 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1653 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 1654 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 1655 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 1656 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 1657 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 1658 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 1659 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 1660 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 1661 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 1662 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 1663 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 1664 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 1665 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 1666 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 1667 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 1668 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 1669 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 1670 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 1671 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 1672 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 1673 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 1674 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 1675 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 1676 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 1677 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 1678 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 1679 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 1680 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 1681 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 1682 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 1683 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1684 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1685 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1686 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1687 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1688 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1689 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1690 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1691 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1692 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1693 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1694 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 1695 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 1696 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 1697 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 1698 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 1699 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1700 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 1701 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 1702 void DDX_LBIndex(CDataExchange *,int,int &) 1703 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 1704 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1705 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 1706 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 1707 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 1708 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 1709 void DDX_OCBool(CDataExchange *,int,long,int &) 1710 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 1711 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 1712 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 1713 void DDX_OCFloat(CDataExchange *,int,long,float &) 1714 void DDX_OCFloat(CDataExchange *,int,long,double &) 1715 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 1716 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 1717 void DDX_OCInt(CDataExchange *,int,long,int &) 1718 void DDX_OCInt(CDataExchange *,int,long,long &) 1719 void DDX_OCIntRO(CDataExchange *,int,long,int &) 1720 void DDX_OCIntRO(CDataExchange *,int,long,long &) 1721 void DDX_OCShort(CDataExchange *,int,long,short &) 1722 void DDX_OCShortRO(CDataExchange *,int,long,short &) 1723 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 1724 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 1725 void DDX_Radio(CDataExchange *,int,int &) 1726 void DDX_Scroll(CDataExchange *,int,int &) 1727 void DDX_Slider(CDataExchange *,int,int &) 1728 void DDX_Text(CDataExchange *,int,__int64 &) 1729 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 1730 void DDX_Text(CDataExchange *,int,unsigned char &) 1731 void DDX_Text(CDataExchange *,int,short &) 1732 void DDX_Text(CDataExchange *,int,int &) 1733 void DDX_Text(CDataExchange *,int,unsigned int &) 1734 void DDX_Text(CDataExchange *,int,long &) 1735 void DDX_Text(CDataExchange *,int,unsigned long &) 1736 void DDX_Text(CDataExchange *,int,float &) 1737 void DDX_Text(CDataExchange *,int,double &) 1738 void DDX_Text(CDataExchange *,int,_FILETIME &) 1739 void DDX_Text(CDataExchange *,int,_GUID &) 1740 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 1741 void DDX_Text(CDataExchange *,int,tagDBDATE &) 1742 void DDX_Text(CDataExchange *,int,tagDBTIME &) 1743 void DDX_Text(CDataExchange *,int,tagDEC &) 1744 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 1745 void DDX_Text(CDataExchange *,int,COleCurrency &) 1746 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 1747 void DDX_Text(CDataExchange *,int,char *,int) 1748 void COleClientItem::Deactivate() 1749 long COlePropertyPage::XPropertyPage::Deactivate() 1750 int COleServerDoc::DeactivateAndUndo() 1751 long COleClientItem::XOleIPSite::DeactivateAndUndo() 1752 long COleControlSite::XOleIPSite::DeactivateAndUndo() 1753 void COleClientItem::DeactivateUI() 1754 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 1755 long CWnd::Default() 1756 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 1757 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 1758 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 1759 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 1760 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 1761 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 1762 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 1763 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 1764 void CControlBar::DelayShow(int) 1765 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1766 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1767 void CException::Delete() 1768 void COleClientItem::Delete(int) 1769 void CRecordset::Delete() 1770 void CWinThread::Delete() 1771 void CSplitterWnd::DeleteColumn(int) 1772 void CDocument::DeleteContents() 1773 void CEditView::DeleteContents() 1774 void CHtmlEditDoc::DeleteContents() 1775 void COleDocument::DeleteContents() 1776 void COleServerDoc::DeleteContents() 1777 void CRichEditDoc::DeleteContents() 1778 void CRichEditView::DeleteContents() 1779 int CDC::DeleteDC() 1780 int CImageList::DeleteImageList() 1781 void CComboBox::DeleteItem(tagDELETEITEM*) 1782 int CComboBoxEx::DeleteItem(int) 1783 void CListBox::DeleteItem(tagDELETEITEM*) 1784 int CGdiObject::DeleteObject() 1785 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 1786 void CSplitterWnd::DeleteRow(int) 1787 void CHandleMap::DeleteTemp() 1788 void CDC::DeleteTempMap() 1789 void CGdiObject::DeleteTempMap() 1790 void CImageList::DeleteTempMap() 1791 void CMenu::DeleteTempMap() 1792 void CWnd::DeleteTempMap() 1793 void CRichEditDoc::DeleteUnmarkedItems()const 1794 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1795 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1796 void CSplitterWnd::DeleteView(int,int) 1797 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 1798 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1799 void COleSafeArray::Destroy() 1800 int COleControlSite::DestroyControl() 1801 void COleSafeArray::DestroyData() 1802 void COleSafeArray::DestroyDescriptor() 1803 void CFrameWnd::DestroyDockBars() 1804 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 1805 int CMenu::DestroyMenu() 1806 void CDHtmlDialog::DestroyModeless() 1807 void COleControl::DestroySharedMenu() 1808 void COleDocIPFrameWnd::DestroySharedMenu() 1809 void COleIPFrameWnd::DestroySharedMenu() 1810 int CToolTipCtrl::DestroyToolTipCtrl() 1811 void COleControl::DestroyTracker() 1812 int CControlBar::DestroyWindow() 1813 int CMDIChildWnd::DestroyWindow() 1814 int CWnd::DestroyWindow() 1815 unsigned int CAsyncSocket::Detach() 1816 HDC__ * CDC::Detach() 1817 void * CDialogTemplate::Detach() 1818 void * CGdiObject::Detach() 1819 _IMAGELIST * CImageList::Detach() 1820 unsigned char * CMemFile::Detach() 1821 HMENU__ * CMenu::Detach() 1822 int CMonikerFile::Detach(CFileException *) 1823 IDataObject * COleDataObject::Detach() 1824 tagVARIANT COleSafeArray::Detach() 1825 IStream * COleStreamFile::Detach() 1826 tagVARIANT COleVariant::Detach() 1827 void * CSharedFile::Detach() 1828 HDC__ * CWindowlessDC::Detach() 1829 HWND__ * CWnd::Detach() 1830 IDispatch * COleDispatchDriver::DetachDispatch() 1831 void CAsyncSocket::DetachHandle(unsigned int,int) 1832 void COleControlSite::DetachWindow() 1833 void CWinApp::DevModeChange(char *) 1834 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1835 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1836 int COleServerDoc::DiscardUndoState() 1837 long COleClientItem::XOleIPSite::DiscardUndoState() 1838 long COleControlSite::XOleIPSite::DiscardUndoState() 1839 void COleDispatchImpl::Disconnect() 1840 void CDHtmlDialog::DisconnectDHtmlElementEvents() 1841 void CDHtmlDialog::DisconnectDHtmlEvents() 1842 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 1843 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 1844 void CDocument::DisconnectViews() 1845 void CWinThread::DispatchThreadMessage(tagMSG *) 1846 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1847 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 1848 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 1849 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 1850 void CAsyncSocket::DoCallBack(unsigned int,long) 1851 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 1852 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 1853 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 1854 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 1855 void COleControl::DoClick() 1856 int COleFrameHook::DoContextSensitiveHelp(int) 1857 int COleConvertDialog::DoConvert(COleClientItem *) 1858 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 1859 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 1860 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 1861 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 1862 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 1863 int COleFrameHook::DoEnableModeless(int) 1864 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 1865 void CRecordset::DoFieldExchange(CFieldExchange *) 1866 int CDocument::DoFileSave() 1867 int CSplitterWnd::DoKeyboardSplit() 1868 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 1869 int CColorDialog::DoModal() 1870 int CDialog::DoModal() 1871 int CFileDialog::DoModal() 1872 int CFontDialog::DoModal() 1873 int COleBusyDialog::DoModal() 1874 int COleChangeIconDialog::DoModal() 1875 int COleChangeSourceDialog::DoModal() 1876 int COleConvertDialog::DoModal() 1877 int COleInsertDialog::DoModal(unsigned long) 1878 int COleInsertDialog::DoModal() 1879 int COleLinksDialog::DoModal() 1880 int COlePasteSpecialDialog::DoModal() 1881 int COlePropertiesDialog::DoModal() 1882 int COleUpdateDialog::DoModal() 1883 int CPageSetupDialog::DoModal() 1884 int CPrintDialog::DoModal() 1885 int CPrintDialogEx::DoModal() 1886 int CPropertySheet::DoModal() 1887 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 1888 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 1889 void CControlBar::DoPaint(CDC *) 1890 void CDockBar::DoPaint(CDC *) 1891 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 1892 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 1893 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 1894 int CView::DoPreparePrinting(CPrintInfo *) 1895 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 1896 int CWinApp::DoPrintDialog(CPrintDialog *) 1897 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 1898 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 1899 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 1900 void COleControl::DoPropExchange(CPropExchange *) 1901 int CDocument::DoSave(char const *,int) 1902 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 1903 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 1904 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 1905 int CCmdUI::DoUpdate(CCmdTarget *,int) 1906 int COleCmdUI::DoUpdate(CCmdTarget *,int) 1907 int COleClientItem::DoVerb(long,CView *,tagMSG *) 1908 long COleControlSite::DoVerb(long,tagMSG *) 1909 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1910 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1911 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1912 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1913 void CWinApp::DoWaitCursor(int) 1914 void CPreviewView::DoZoom(unsigned int,CPoint) 1915 void CDC::DPtoHIMETRIC(tagSIZE *)const 1916 void CDC::DPtoLP(tagSIZE *)const 1917 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 1918 unsigned int CDragListBox::Dragging(CPoint) 1919 long COleDropTarget::XDropTarget::DragLeave() 1920 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 1921 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 1922 void CRectTracker::Draw(CDC *)const 1923 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 1924 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 1925 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 1926 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 1927 void CControlBar::DrawBorders(CDC *,CRect &) 1928 void COleControl::DrawContent(CDC *,CRect &) 1929 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 1930 void CDockContext::DrawFocusRect(int) 1931 void CControlBar::DrawGripper(CDC *,CRect const &) 1932 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 1933 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 1934 void CDragListBox::DrawInsert(int) 1935 void CBitmapButton::DrawItem(tagDRAWITEM*) 1936 void CButton::DrawItem(tagDRAWITEM*) 1937 void CCheckListBox::DrawItem(tagDRAWITEM*) 1938 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 1939 void CComboBox::DrawItem(tagDRAWITEM*) 1940 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 1941 void CListBox::DrawItem(tagDRAWITEM*) 1942 void CListCtrl::DrawItem(tagDRAWITEM*) 1943 void CListView::DrawItem(tagDRAWITEM*) 1944 void CMenu::DrawItem(tagDRAWITEM*) 1945 void CStatic::DrawItem(tagDRAWITEM*) 1946 void CStatusBar::DrawItem(tagDRAWITEM*) 1947 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 1948 void CTabCtrl::DrawItem(tagDRAWITEM*) 1949 void COleControl::DrawMetafile(CDC *,CRect &) 1950 void CDragListBox::DrawSingle(int) 1951 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 1952 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 1953 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 1954 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 1955 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 1956 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 1957 void CDragListBox::Dropped(int,CPoint) 1958 CDumpContext & CDumpContext::DumpAsHex(__int64) 1959 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 1960 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 1961 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 1962 CDumpContext & CDumpContext::DumpAsHex(int) 1963 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 1964 CDumpContext & CDumpContext::DumpAsHex(long) 1965 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 1966 long COleControl::XDataObject::DUnadvise(unsigned long) 1967 long COleDataSource::XDataObject::DUnadvise(unsigned long) 1968 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 1969 long COleServerItem::XDataObject::DUnadvise(unsigned long) 1970 CFile * CFile::Duplicate()const 1971 CFile * CInternetFile::Duplicate()const 1972 CFile * CMemFile::Duplicate()const 1973 CFile * COleStreamFile::Duplicate()const 1974 CFile * CSocketFile::Duplicate()const 1975 CFile * CStdioFile::Duplicate()const 1976 unsigned long const CEditView::dwStyleDefault 1977 void CRecordset::Edit() 1978 long COlePropertyPage::XPropertyPage::EditProperty(long) 1979 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 1980 void CDBException::Empty() 1981 void COleDataSource::Empty() 1982 void CCheckListBox::Enable(int,int) 1983 void CCmdUI::Enable(int) 1984 void COleCmdUI::Enable(int) 1985 void CStatusCmdUI::Enable(int) 1986 void CTestCmdUI::Enable(int) 1987 void CToolCmdUI::Enable(int) 1988 void CCmdTarget::EnableAggregation() 1989 void CCmdTarget::EnableAutomation() 1990 void CRecordset::EnableBookmarks() 1991 void CCmdTarget::EnableConnections() 1992 void CControlBar::EnableDocking(unsigned long) 1993 void CFrameWnd::EnableDocking(unsigned long) 1994 void COleControlSite::EnableDSC() 1995 long CBrowserControlSite::EnableModeless(int) 1996 long CDHtmlDialog::EnableModeless(int) 1997 void CWinApp::EnableModeless(int) 1998 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 1999 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2000 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2001 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2002 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2003 void CWnd::EnableScrollBarCtrl(int,int) 2004 void CWinApp::EnableShellOpen() 2005 void COleControl::EnableSimpleFrame() 2006 void CPropertySheet::EnableStackedTabs(int) 2007 int CInternetSession::EnableStatusCallback(int) 2008 int CWnd::EnableToolTips(int) 2009 int CWnd::EnableTrackingToolTips(int) 2010 void CCmdTarget::EnableTypeLib() 2011 int COleControlSite::EnableWindow(int) 2012 int CWnd::EnableWindow(int) 2013 void COleMessageFilter::EndBusyState() 2014 void CAsyncMonikerFile::EndCallbacks() 2015 long COleLinkingDoc::EndDeferErrors(long) 2016 void CDialog::EndDialog(int) 2017 void CPropertyPage::EndDialog(int) 2018 void CPropertySheet::EndDialog(int) 2019 void CDockContext::EndDrag() 2020 void CWnd::EndModalLoop(int) 2021 void CFrameWnd::EndModalState() 2022 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 2023 void CDockContext::EndResize() 2024 void CCmdTarget::EndWaitCursor() 2025 void COleDataObject::EnsureClipboardObject() 2026 long CWnd::EnsureStdObj() 2027 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2028 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2029 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2030 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2031 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2032 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2033 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2034 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2035 int COlePropertyPage::EnumControls(HWND__ *,long) 2036 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2037 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2038 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2039 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2040 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2041 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2042 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2043 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2044 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2045 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2046 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2047 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2048 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2049 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2050 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2051 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2052 void CControlBar::EraseNonClient() 2053 int CFileException::ErrnoToException(int) 2054 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2055 int CMetaFileDC::Escape(int,int,char const *,void *) 2056 int CPreviewDC::Escape(int,int,char const *,void *) 2057 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 2058 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2059 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2060 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2061 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2062 int COleControl::ExchangeExtent(CPropExchange *) 2063 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2064 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2065 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2066 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2067 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2068 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2069 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2070 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2071 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2072 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2073 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2074 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2075 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2076 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2077 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2078 void COleControl::ExchangeStockProps(CPropExchange *) 2079 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2080 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2081 int CDC::ExcludeClipRect(int,int,int,int) 2082 int CDC::ExcludeClipRect(tagRECT const *) 2083 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2084 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2085 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2086 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2087 int CHtmlEditView::ExecHandler(unsigned int) 2088 int CWnd::ExecuteDlgInit(void *) 2089 int CWnd::ExecuteDlgInit(char const *) 2090 void CRecordset::ExecuteSetPosUpdate() 2091 void CDatabase::ExecuteSQL(char const *) 2092 void CRecordset::ExecuteUpdateSQL() 2093 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2094 void CFrameWnd::ExitHelpMode() 2095 int COleControlModule::ExitInstance() 2096 int CWinApp::ExitInstance() 2097 int CWinThread::ExitInstance() 2098 unsigned long CCmdTarget::ExternalAddRef() 2099 void CCmdTarget::ExternalDisconnect() 2100 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2101 unsigned long CCmdTarget::ExternalRelease() 2102 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2103 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2104 void CDataExchange::Fail() 2105 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2106 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2107 void CArchive::FillBuffer(unsigned int) 2108 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2109 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2110 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2111 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2112 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2113 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2114 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2115 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2116 void CWnd::FilterToolTipMessage(tagMSG *) 2117 __POSITION * CObList::Find(CObject *,__POSITION *)const 2118 __POSITION * CPtrList::Find(void *,__POSITION *)const 2119 __POSITION * CStringList::Find(char const *,__POSITION *)const 2120 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2121 int CDockBar::FindBar(CControlBar *,int) 2122 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2123 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2124 int CFileFind::FindFile(char const *,unsigned long) 2125 int CFtpFileFind::FindFile(char const *,unsigned long) 2126 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2127 int CGopherFileFind::FindFile(char const *,unsigned long) 2128 __POSITION * CObList::FindIndex(int)const 2129 __POSITION * CPtrList::FindIndex(int)const 2130 __POSITION * CStringList::FindIndex(int)const 2131 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2132 int CFileFind::FindNextFileA() 2133 int CFtpFileFind::FindNextFileA() 2134 int CGopherFileFind::FindNextFileA() 2135 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2136 int CDHtmlDialog::FindSinkForObject(char const *) 2137 char const * CRecordset::FindSQLToken(char const *,char const *) 2138 int CEditView::FindTextA(char const *,int,int) 2139 int CRichEditView::FindTextA(char const *,int,int,int) 2140 int CRichEditView::FindTextSimple(char const *,int,int,int) 2141 int COleClientItem::FinishCreate(long) 2142 void COleControl::FireError(long,char const *,unsigned int) 2143 void COleControl::FireEvent(long,unsigned char *,...) 2144 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2145 void COleControl::FireEventV(long,unsigned char *,char *) 2146 void CRecordset::Fixups() 2147 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2148 void CArchive::Flush() 2149 void CDumpContext::Flush() 2150 void CFile::Flush() 2151 void CInternetFile::Flush() 2152 void CMemFile::Flush() 2153 void CMonikerFile::Flush() 2154 void COleStreamFile::Flush() 2155 void CSocketFile::Flush() 2156 void CStdioFile::Flush() 2157 void COleDataSource::FlushClipboard() 2158 int CRecordset::FlushResultSet() 2159 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2160 void COleControl::ForwardActivationMsg(tagMSG *) 2161 void CAfxStringMgr::Free(ATL::CStringData *) 2162 void CDatabase::Free() 2163 void CFixedAlloc::Free(void *) 2164 void CFixedAllocNoSync::Free(void *) 2165 void CMemFile::Free(unsigned char *) 2166 void CSharedFile::Free(unsigned char *) 2167 void CFixedAlloc::FreeAll() 2168 void CFixedAllocNoSync::FreeAll() 2169 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2170 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2171 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2172 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2173 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2174 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2175 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2176 void CRecordset::FreeDataCache() 2177 void CPlex::FreeDataChain() 2178 void CByteArray::FreeExtra() 2179 void CDWordArray::FreeExtra() 2180 void CObArray::FreeExtra() 2181 void CPtrArray::FreeExtra() 2182 void CStringArray::FreeExtra() 2183 void CUIntArray::FreeExtra() 2184 void CWordArray::FreeExtra() 2185 void CObList::FreeNode(CObList::CNode *) 2186 void CPtrList::FreeNode(CPtrList::CNode *) 2187 void CStringList::FreeNode(CStringList::CNode *) 2188 void CRecordset::FreeRowset() 2189 void CThreadSlotData::FreeSlot(int) 2190 void CProperty::FreeValue() 2191 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2192 void COleControlContainer::FreezeAllEvents(int) 2193 void COleControlSite::FreezeEvents(int) 2194 long COleControl::XOleControl::FreezeEvents(int) 2195 int COleClientItem::FreezeLink() 2196 CDC * CDC::FromHandle(HDC__ *) 2197 CGdiObject * CGdiObject::FromHandle(void *) 2198 CObject * CHandleMap::FromHandle(void *) 2199 CImageList * CImageList::FromHandle(_IMAGELIST *) 2200 CMenu * CMenu::FromHandle(HMENU__ *) 2201 CWnd * CWnd::FromHandle(HWND__ *) 2202 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2203 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2204 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2205 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2206 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2207 CRuntime* CRuntimeClass::FromName(char const *) 2208 void * CProperty::Get(unsigned long *) 2209 void * CProperty::Get() 2210 void * CPropertySection::Get(unsigned long) 2211 void * CPropertySection::Get(unsigned long,unsigned long *) 2212 void * CPropertySet::Get(_GUID,unsigned long) 2213 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2214 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2215 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2216 long CWnd::get_accChildCount(long *) 2217 long CWnd::XAccessible::get_accChildCount(long *) 2218 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2219 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2220 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2221 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2222 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2223 long CWnd::get_accFocus(tagVARIANT *) 2224 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2225 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2226 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2227 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2228 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2229 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2230 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2231 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2232 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2233 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2234 long CWnd::get_accParent(IDispatch * *) 2235 long CWnd::XAccessible::get_accParent(IDispatch * *) 2236 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2237 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2238 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2239 long CWnd::get_accSelection(tagVARIANT *) 2240 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2241 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2242 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2243 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2244 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2245 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2246 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2247 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2248 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2249 long CWnd::GetAccessibleChildCount() 2250 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2251 unsigned long COleControl::GetActivationPolicy() 2252 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2253 CDocument * CFrameWnd::GetActiveDocument() 2254 CFrameWnd * CFrameWnd::GetActiveFrame() 2255 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2256 int CPropertySheet::GetActiveIndex()const 2257 CPropertyPage * CPropertySheet::GetActivePage()const 2258 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2259 CView * CFrameWnd::GetActiveView()const 2260 IOleDocumentView * COleDocObjectItem::GetActiveView()const 2261 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2262 int CHtmlView::GetAddressBar()const 2263 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2264 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2265 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2266 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2267 short COleControl::GetAppearance() 2268 IDispatch * CHtmlView::GetApplication()const 2269 HKEY__ * CWinApp::GetAppRegistryKey() 2270 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2271 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2272 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2273 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2274 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2275 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2276 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2277 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2278 unsigned long COleControl::GetBackColor() 2279 void CControlBar::GetBarInfo(CControlBarInfo *) 2280 void CDockBar::GetBarInfo(CControlBarInfo *) 2281 unsigned long CAsyncMonikerFile::GetBindInfo()const 2282 void * CBlobProperty::GetBlob() 2283 void CRecordset::GetBookmark(CDBVariant &) 2284 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2285 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2286 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2287 short COleControl::GetBorderStyle() 2288 long CDataSourceControl::GetBoundClientRow() 2289 int CRecordset::GetBoundFieldIndex(void *) 2290 int CRecordset::GetBoundParamIndex(void *) 2291 unsigned int CEditView::GetBufferLength()const 2292 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2293 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2294 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2295 int CHtmlView::GetBusy()const 2296 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2297 unsigned int CToolBar::GetButtonStyle(int)const 2298 ATL::CStringT > > CToolBar::GetButtonText(int)const 2299 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2300 void COleSafeArray::GetByteArray(CByteArray &) 2301 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2302 unsigned short CPropertySet::GetByteOrder() 2303 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2304 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2305 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2306 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2307 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2308 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2309 CWnd * COleControl::GetCapture() 2310 long COleControlSite::XOleIPSite::GetCapture() 2311 void CFontDialog::GetCharFormat(_charformat &)const 2312 CHARFORMAT2A & CRichEditView::GetCharFormatSelection() 2313 int CCheckListBox::GetCheck(int) 2314 int CListCtrl::GetCheck(int)const 2315 int CTreeCtrl::GetCheck(_TREEITEM *)const 2316 int CWnd::GetCheckedRadioButton(int,int) 2317 long CBlobProperty::GetClassID(_GUID *) 2318 void COleClientItem::GetClassID(_GUID *)const 2319 _GUID CPropertySet::GetClassID() 2320 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2321 long COleControl::XPersistMemory::GetClassID(_GUID *) 2322 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2323 long COleControl::XPersistStorage::GetClassID(_GUID *) 2324 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2325 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2326 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 2327 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2328 void COleControl::GetClientOffset(long *,long *)const 2329 void COleControl::GetClientRect(tagRECT *)const 2330 IOleClientSite * COleClientItem::GetClientSite() 2331 IOleClientSite * COleControl::GetClientSite() 2332 IOleClientSite * CRichEditCntrItem::GetClientSite() 2333 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2334 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2335 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2336 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2337 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2338 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2339 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2340 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2341 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2342 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2343 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2344 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2345 COleDataSource * COleDataSource::GetClipboardOwner() 2346 int CDC::GetClipBox(tagRECT *)const 2347 int CMetaFileDC::GetClipBox(tagRECT *)const 2348 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2349 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2350 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2351 int CListCtrl::GetColumnOrderArray(int *,int) 2352 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2353 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 2354 void CDatabase::GetConnectInfo() 2355 int CConnectionPoint::GetConnectionCount() 2356 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2357 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2358 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2359 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2360 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2361 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2362 CPtrArray const * CConnectionPoint::GetConnections() 2363 IConnectionPointContainer * CConnectionPoint::GetContainer() 2364 IDispatch * CHtmlView::GetContainer()const 2365 IOleItemContainer * COleDocument::GetContainer() 2366 IOleItemContainer * COleLinkingDoc::GetContainer() 2367 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2368 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2369 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2370 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2371 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2372 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2373 COleControlContainer * CWnd::GetControlContainer() 2374 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 2375 unsigned long COleControl::GetControlFlags() 2376 void COleControlSite::GetControlInfo() 2377 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2378 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2379 IUnknown * CCmdTarget::GetControllingUnknown() 2380 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2381 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 2382 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 2383 void COleControl::GetControlSize(int *,int *) 2384 int COlePropertyPage::GetControlStatus(unsigned int) 2385 IUnknown * CWnd::GetControlUnknown() 2386 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2387 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 2388 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 2389 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 2390 int CPrintDialog::GetCopies()const 2391 int CPrintDialogEx::GetCopies()const 2392 unsigned long CPropertySection::GetCount() 2393 unsigned long CPropertySet::GetCount() 2394 int CFileFind::GetCreationTime(ATL::CTime &)const 2395 int CFileFind::GetCreationTime(_FILETIME *)const 2396 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2397 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2398 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2399 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 2400 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 2401 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2402 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 2403 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 2404 tagMSG const * CWnd::GetCurrentMessage() 2405 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2406 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2407 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2408 IUnknown * CDataBoundProperty::GetCursor() 2409 IUnknown * CDataSourceControl::GetCursor() 2410 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2411 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2412 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2413 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2414 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2415 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2416 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2417 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2418 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2419 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2420 ATL::CStringT > > CDatabase::GetDatabaseName()const 2421 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2422 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2423 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2424 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2425 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2426 CNoTrackObject * CThreadLocalObject::GetDataNA() 2427 IDataObject * COleServerItem::GetDataObject() 2428 COleControl::CControlDataSource * COleControl::GetDataSource() 2429 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2430 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2431 HACCEL__ * CDocument::GetDefaultAccelerator() 2432 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2433 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 2434 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 2435 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 2436 ATL::CStringT > > CRecordset::GetDefaultConnect() 2437 short CRecordset::GetDefaultFieldType(short) 2438 HMENU__ * CDocument::GetDefaultMenu() 2439 HMENU__ * COleServerDoc::GetDefaultMenu() 2440 int CPrintDialog::GetDefaults() 2441 int CPrintDialogEx::GetDefaults() 2442 ATL::CStringT > > CRecordset::GetDefaultSQL() 2443 unsigned long COccManager::GetDefBtnCode(CWnd *) 2444 unsigned long COleControlSite::GetDefBtnCode() 2445 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2446 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 2447 ATL::CStringT > > CPrintDialog::GetDeviceName()const 2448 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 2449 CPoint CScrollView::GetDeviceScrollPosition()const 2450 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2451 _devicemodeA * CPageSetupDialog::GetDevMode()const 2452 _devicemodeA * CPrintDialog::GetDevMode()const 2453 _devicemodeA * CPrintDialogEx::GetDevMode()const 2454 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2455 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2456 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2457 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2458 DHtmlEventMapEntry const * GetDHtmlEventMap() 2459 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 2460 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 2461 int CCmdTarget::GetDispatchIID(_GUID *) 2462 int COleControl::GetDispatchIID(_GUID *) 2463 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2464 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 2465 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2466 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 2467 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2468 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2469 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2470 int COleControlSite::GetDlgCtrlID()const 2471 int CWnd::GetDlgCtrlID()const 2472 CWnd * COleControlContainer::GetDlgItem(int)const 2473 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2474 CWnd * CWnd::GetDlgItem(int)const 2475 void CWnd::GetDlgItem(int,HWND__ * *)const 2476 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2477 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2478 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 2479 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 2480 int CWnd::GetDlgItemTextA(int,char *,int)const 2481 CDockBar * CDockContext::GetDockBar(unsigned long) 2482 CControlBar * CDockBar::GetDockedControlBar(int)const 2483 int CDockBar::GetDockedCount()const 2484 int CDockBar::GetDockedVisibleCount()const 2485 CFrameWnd * CControlBar::GetDockingFrame()const 2486 void CFrameWnd::GetDockState(CDockState &)const 2487 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2488 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2489 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2490 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2491 int CDocManager::GetDocumentCount() 2492 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2493 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 2494 ATL::CStringT > > CPrintDialog::GetDriverName()const 2495 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 2496 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2497 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2498 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2499 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2500 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2501 IUnknown * CWnd::GetDSCCursor() 2502 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 2503 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 2504 void COleSafeArray::GetElement(long *,void *) 2505 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 2506 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 2507 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 2508 wchar_t * CDHtmlDialog::GetElementText(char const *) 2509 COleServerItem * COleServerDoc::GetEmbeddedItem() 2510 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2511 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2512 int COleControl::GetEnabled() 2513 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2514 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2515 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *) 2516 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *) 2517 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 2518 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *) 2519 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *) 2520 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *) 2521 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *) 2522 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *) 2523 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2524 int COleControlSite::GetEventIID(_GUID *) 2525 AFX_EVENTMAP const * COleControl::GetEventMap()const 2526 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 2527 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 2528 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2529 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2530 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 2531 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 2532 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 2533 unsigned long COleControlSite::GetExStyle()const 2534 unsigned long CWnd::GetExStyle()const 2535 IDispatch * COleControl::GetExtendedControl() 2536 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2537 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2538 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2539 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2540 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2541 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2542 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2543 long CBrowserControlSite::GetExternal(IDispatch * *) 2544 long CDHtmlDialog::GetExternal(IDispatch * *) 2545 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2546 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2547 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2548 short CRecordset::GetFieldIndexByName(char const *) 2549 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2550 unsigned char CRecordset::GetFieldStatus(unsigned long) 2551 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2552 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2553 void CRecordset::GetFieldValue(short,CDBVariant &,short) 2554 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 2555 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 2556 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 2557 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 2558 ATL::CStringT > > CFileDialog::GetFileExt()const 2559 ATL::CStringT > > CFile::GetFileName()const 2560 ATL::CStringT > > CFileDialog::GetFileName()const 2561 ATL::CStringT > > CFileFind::GetFileName()const 2562 ATL::CStringT > > CGopherFileFind::GetFileName()const 2563 ATL::CStringT > > CFile::GetFilePath()const 2564 ATL::CStringT > > CFileFind::GetFilePath()const 2565 ATL::CStringT > > CGopherFileFind::GetFilePath()const 2566 ATL::CStringT > > CFile::GetFileTitle()const 2567 ATL::CStringT > > CFileDialog::GetFileTitle()const 2568 ATL::CStringT > > CFileFind::GetFileTitle()const 2569 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 2570 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 2571 ATL::CStringT > > CFileFind::GetFileURL()const 2572 ATL::CStringT > > CFtpFileFind::GetFileURL()const 2573 ATL::CStringT > > CGopherFileFind::GetFileURL()const 2574 ATL::CStringT > > CHttpFile::GetFileURL()const 2575 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 2576 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2577 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2578 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2579 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2580 CFrameWnd * COleDocument::GetFirstFrame() 2581 __POSITION * CDocument::GetFirstViewPosition()const 2582 CWnd * COleControl::GetFocus() 2583 long COleControlSite::XOleIPSite::GetFocus() 2584 ATL::CStringT > > CFileDialog::GetFolderPath()const 2585 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 2586 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 2587 IFontDisp * COleControl::GetFont() 2588 IFontDisp * CFontHolder::GetFontDispatch() 2589 HFONT__ * CFontHolder::GetFontHandle(long,long) 2590 HFONT__ * CFontHolder::GetFontHandle() 2591 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2592 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 2593 unsigned long COleControl::GetForeColor() 2594 _GUID CPropertySection::GetFormatID() 2595 unsigned short CPropertySet::GetFormatVersion() 2596 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 2597 ATL::CStringT > > CHtmlView::GetFullName()const 2598 int CHtmlView::GetFullScreen()const 2599 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 2600 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 2601 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 2602 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 2603 CBrush * CDC::GetHalftoneBrush() 2604 unsigned int CRectTracker::GetHandleMask()const 2605 void CRectTracker::GetHandleRect(int,CRect *)const 2606 int CRectTracker::GetHandleSize(tagRECT const *)const 2607 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2608 long CHtmlView::GetHeight()const 2609 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 2610 void CSplitterWnd::GetHitRect(int,CRect &) 2611 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 2612 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 2613 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 2614 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2615 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 2616 IDispatch * CHtmlView::GetHtmlDocument()const 2617 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 2618 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 2619 unsigned int COleControl::GetHwnd() 2620 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 2621 HICON__ * COleClientItem::GetIconFromRegistry()const 2622 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 2623 void * COleClientItem::GetIconicMetafile() 2624 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2625 unsigned long CProperty::GetID() 2626 int CPropertySection::GetID(char const *,unsigned long *) 2627 IDataObject * COleDataObject::GetIDataObject(int) 2628 IDispatch * CCmdTarget::GetIDispatch(int) 2629 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2630 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2631 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2632 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2633 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2634 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2635 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2636 _GUID const & COleControl::XEventConnPt::GetIID() 2637 CImageList * CReBarCtrl::GetImageList()const 2638 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 2639 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 2640 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 2641 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 2642 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 2643 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 2644 CWnd * COleClientItem::GetInPlaceWindow() 2645 void CSplitterWnd::GetInsideRect(CRect &)const 2646 IUnknown * CCmdTarget::GetInterface(void const *) 2647 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 2648 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2649 IUnknown * COleControl::GetInterfaceHook(void const *) 2650 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 2651 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2652 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 2653 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 2654 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 2655 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 2656 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 2657 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 2658 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 2659 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 2660 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 2661 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 2662 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 2663 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 2664 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 2665 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 2666 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 2667 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 2668 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 2669 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 2670 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 2671 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 2672 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 2673 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 2674 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 2675 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 2676 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2677 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 2678 void COleServerDoc::GetItemClipRect(tagRECT *)const 2679 unsigned long CListCtrl::GetItemData(int)const 2680 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2681 unsigned int CStatusBar::GetItemID(int)const 2682 unsigned int CToolBar::GetItemID(int)const 2683 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2684 void COleClientItem::GetItemName(char *)const 2685 void COleServerDoc::GetItemPosition(tagRECT *)const 2686 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2687 void CStatusBar::GetItemRect(int,tagRECT *)const 2688 void CToolBar::GetItemRect(int,tagRECT *)const 2689 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2690 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2691 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2692 void COleClientItem::GetItemStorage() 2693 void COleClientItem::GetItemStorageCompound() 2694 void COleClientItem::GetItemStorageFlat() 2695 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 2696 int CListCtrl::GetItemText(int,int,char *,int)const 2697 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 2698 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 2699 int CFileFind::GetLastAccessTime(ATL::CTime &)const 2700 int CFileFind::GetLastAccessTime(_FILETIME *)const 2701 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 2702 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2703 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 2704 int CFileFind::GetLastWriteTime(ATL::CTime &)const 2705 int CFileFind::GetLastWriteTime(_FILETIME *)const 2706 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 2707 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2708 unsigned long CDC::GetLayout()const 2709 long CRecordset::GetLBFetchSize(long) 2710 void COleSafeArray::GetLBound(unsigned long,long *) 2711 long CRecordset::GetLBReallocSize(long) 2712 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 2713 long CHtmlView::GetLeft()const 2714 unsigned __int64 CFile::GetLength()const 2715 unsigned __int64 CFileFind::GetLength()const 2716 unsigned __int64 CGopherFileFind::GetLength()const 2717 unsigned __int64 CInternetFile::GetLength()const 2718 unsigned __int64 CMemFile::GetLength()const 2719 unsigned __int64 COleStreamFile::GetLength()const 2720 unsigned __int64 CSocketFile::GetLength()const 2721 unsigned __int64 CStdioFile::GetLength()const 2722 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 2723 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 2724 int CRichEditCtrl::GetLine(int,char *)const 2725 int CRichEditCtrl::GetLine(int,char *,int)const 2726 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 2727 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 2728 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 2729 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 2730 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 2731 CPtrList * CPropertySection::GetList() 2732 CPtrList * CPropertySet::GetList() 2733 ATL::CStringT > > CHtmlView::GetLocationName()const 2734 ATL::CStringT > > CHtmlView::GetLocationURL()const 2735 CGopherLocator CGopherFileFind::GetLocator()const 2736 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 2737 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 2738 long CFieldExchange::GetLongBinarySize(int) 2739 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2740 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2741 CWnd * CWinThread::GetMainWnd() 2742 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2743 int CConnectionPoint::GetMaxConnections() 2744 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2745 int CHtmlView::GetMenuBar()const 2746 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 2747 CWnd * CFrameWnd::GetMessageBar() 2748 CWnd * CMDIChildWnd::GetMessageBar() 2749 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2750 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2751 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2752 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2753 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 2754 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2755 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 2756 AFX_MSGMAP const * CDialog::GetMessageMap()const 2757 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2758 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2759 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 2760 AFX_MSGMAP const * CDocument::GetMessageMap()const 2761 AFX_MSGMAP const * CEditView::GetMessageMap()const 2762 AFX_MSGMAP const * CFormView::GetMessageMap()const 2763 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2764 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 2765 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 2766 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2767 AFX_MSGMAP const * CListView::GetMessageMap()const 2768 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2769 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2770 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2771 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2772 AFX_MSGMAP const * COleControl::GetMessageMap()const 2773 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 2774 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 2775 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 2776 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 2777 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 2778 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 2779 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2780 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2781 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 2782 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2783 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2784 AFX_MSGMAP const * CReBar::GetMessageMap()const 2785 AFX_MSGMAP const * CRecordView::GetMessageMap()const 2786 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 2787 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2788 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 2789 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2790 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2791 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2792 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2793 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2794 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2795 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2796 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2797 AFX_MSGMAP const * CView::GetMessageMap()const 2798 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2799 AFX_MSGMAP const * CWnd::GetMessageMap()const 2800 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 2801 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 2802 long CDataSourceControl::GetMetaData() 2803 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2804 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2805 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2806 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2807 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2808 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2809 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 2810 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 2811 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 2812 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 2813 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 2814 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2815 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2816 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2817 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2818 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2819 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2820 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 2821 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 2822 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 2823 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 2824 unsigned long COleClientItem::GetNewItemNumber() 2825 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 2826 CDataBoundProperty * CDataBoundProperty::GetNext() 2827 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 2828 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 2829 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 2830 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 2831 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 2832 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 2833 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 2834 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 2835 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 2836 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 2837 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 2838 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 2839 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 2840 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 2841 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 2842 int COleDataObject::GetNextFormat(tagFORMATETC *) 2843 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 2844 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 2845 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 2846 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 2847 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 2848 CView * CDocument::GetNextView(__POSITION * &)const 2849 ATL::CStringData * CAfxStringMgr::GetNilString() 2850 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 2851 void CCmdTarget::GetNotSupported() 2852 void COleControl::GetNotSupported() 2853 ATL::CStringT > > CHttpFile::GetObjectA()const 2854 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 2855 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 2856 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 2857 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 2858 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 2859 unsigned int CArchive::GetObjectSchema() 2860 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 2861 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 2862 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 2863 int CHtmlView::GetOffline()const 2864 tagOFNA & CFileDialog::GetOFN() 2865 tagOFNA const & CFileDialog::GetOFN()const 2866 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 2867 IOleObject * COleServerItem::GetOleObject() 2868 unsigned long COleSafeArray::GetOneDimSize() 2869 int CDocManager::GetOpenDocumentCount() 2870 int CWinApp::GetOpenDocumentCount() 2871 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 2872 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 2873 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 2874 int CHeaderCtrl::GetOrderArray(int *,int) 2875 unsigned long CPropertySet::GetOSVersion() 2876 CWnd * COleControl::GetOuterWindow()const 2877 int COleDocObjectItem::GetPageCount(long *,long *) 2878 int CPropertySheet::GetPageCount()const 2879 int CPropertySheet::GetPageIndex(CPropertyPage *) 2880 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 2881 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 2882 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 2883 IPropertyPageSite * COlePropertyPage::GetPageSite() 2884 CWnd * CSplitterWnd::GetPane(int,int)const 2885 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 2886 unsigned int CStatusBar::GetPaneStyle(int)const 2887 ATL::CStringT > > CStatusBar::GetPaneText(int)const 2888 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 2889 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 2890 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 2891 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 2892 IDispatch * CHtmlView::GetParentBrowser()const 2893 CFrameWnd * CWnd::GetParentFrame()const 2894 CWnd * CWnd::GetParentOwner()const 2895 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 2896 ATL::CStringT > > CFileDialog::GetPathName()const 2897 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 2898 IPictureDisp * CPictureHolder::GetPictureDispatch() 2899 ATL::CStringT > > CPageSetupDialog::GetPortName()const 2900 ATL::CStringT > > CPrintDialog::GetPortName()const 2901 ATL::CStringT > > CPrintDialogEx::GetPortName()const 2902 unsigned __int64 CFile::GetPosition()const 2903 unsigned __int64 CMemFile::GetPosition()const 2904 unsigned __int64 COleStreamFile::GetPosition()const 2905 unsigned __int64 CSocketFile::GetPosition()const 2906 unsigned __int64 CStdioFile::GetPosition()const 2907 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 2908 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 2909 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 2910 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 2911 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 2912 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 2913 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 2914 CFont * CEditView::GetPrinterFont()const 2915 long CAsyncMonikerFile::GetPriority()const 2916 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 2917 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 2918 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 2919 int COlePropertyPage::GetPropCheck(char const *,int *) 2920 COleVariant CHtmlView::GetProperty(char const *) 2921 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 2922 void COleControlSite::GetProperty(long,unsigned short,void *)const 2923 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 2924 CProperty * CPropertySection::GetProperty(unsigned long) 2925 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 2926 void CWnd::GetProperty(long,unsigned short,void *)const 2927 int COlePropertyPage::GetPropIndex(char const *,int *) 2928 _GUID * COleControl::GetPropPageIDs(unsigned long &) 2929 int COlePropertyPage::GetPropRadio(char const *,int *) 2930 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 2931 int COlePropertyPage::GetPropText(char const *,unsigned char *) 2932 int COlePropertyPage::GetPropText(char const *,short *) 2933 int COlePropertyPage::GetPropText(char const *,int *) 2934 int COlePropertyPage::GetPropText(char const *,unsigned int *) 2935 int COlePropertyPage::GetPropText(char const *,long *) 2936 int COlePropertyPage::GetPropText(char const *,unsigned long *) 2937 int COlePropertyPage::GetPropText(char const *,float *) 2938 int COlePropertyPage::GetPropText(char const *,double *) 2939 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 2940 _PROPSHEETPAGEA & CPropertyPage::GetPSP() 2941 _PROPSHEETPAGEA const & CPropertyPage::GetPSP()const 2942 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 2943 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 2944 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 2945 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 2946 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 2947 void CProgressCtrl::GetRange(int &,int &) 2948 void CSliderCtrl::GetRange(int &,int &)const 2949 void CSpinButtonCtrl::GetRange(int &,int &)const 2950 void * CProperty::GetRawValue() 2951 enum tagREADYSTATE CHtmlView::GetReadyState()const 2952 long COleControl::GetReadyState() 2953 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 2954 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 2955 int COleControl::GetRectInContainer(tagRECT *) 2956 int CHtmlView::GetRegisterAsBrowser()const 2957 int CHtmlView::GetRegisterAsDropTarget()const 2958 ATL::CStringT > > CFileFind::GetRoot()const 2959 ATL::CStringT > > CGopherFileFind::GetRoot()const 2960 CFrameWnd * CCmdTarget::GetRoutingFrame() 2961 CFrameWnd * CCmdTarget::GetRoutingFrame_() 2962 CView * CCmdTarget::GetRoutingView() 2963 CView * CCmdTarget::GetRoutingView_() 2964 void CSplitterWnd::GetRowInfo(int,int &,int &)const 2965 CRuntime* CAnimateCtrl::GetRuntimeClass()const 2966 CRuntime* CArchiveException::GetRuntimeClass()const 2967 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 2968 CRuntime* CAsyncSocket::GetRuntimeClass()const 2969 CRuntime* CBitmap::GetRuntimeClass()const 2970 CRuntime* CBitmapButton::GetRuntimeClass()const 2971 CRuntime* CBrush::GetRuntimeClass()const 2972 CRuntime* CButton::GetRuntimeClass()const 2973 CRuntime* CByteArray::GetRuntimeClass()const 2974 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 2975 CRuntime* CCheckListBox::GetRuntimeClass()const 2976 CRuntime* CClientDC::GetRuntimeClass()const 2977 CRuntime* CCmdTarget::GetRuntimeClass()const 2978 CRuntime* CColorDialog::GetRuntimeClass()const 2979 CRuntime* CComboBox::GetRuntimeClass()const 2980 CRuntime* CComboBoxEx::GetRuntimeClass()const 2981 CRuntime* CControlBar::GetRuntimeClass()const 2982 CRuntime* CCriticalSection::GetRuntimeClass()const 2983 CRuntime* CCtrlView::GetRuntimeClass()const 2984 CRuntime* CDatabase::GetRuntimeClass()const 2985 CRuntime* CDataPathProperty::GetRuntimeClass()const 2986 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 2987 CRuntime* CDBException::GetRuntimeClass()const 2988 CRuntime* CDC::GetRuntimeClass()const 2989 CRuntime* CDHtmlDialog::GetRuntimeClass()const 2990 CRuntime* CDialog::GetRuntimeClass()const 2991 CRuntime* CDialogBar::GetRuntimeClass()const 2992 CRuntime* CDocItem::GetRuntimeClass()const 2993 CRuntime* CDockBar::GetRuntimeClass()const 2994 CRuntime* CDockState::GetRuntimeClass()const 2995 CRuntime* CDocManager::GetRuntimeClass()const 2996 CRuntime* CDocObjectServer::GetRuntimeClass()const 2997 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 2998 CRuntime* CDocTemplate::GetRuntimeClass()const 2999 CRuntime* CDocument::GetRuntimeClass()const 3000 CRuntime* CDragListBox::GetRuntimeClass()const 3001 CRuntime* CDWordArray::GetRuntimeClass()const 3002 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3003 CRuntime* CEdit::GetRuntimeClass()const 3004 CRuntime* CEditView::GetRuntimeClass()const 3005 CRuntime* CEvent::GetRuntimeClass()const 3006 CRuntime* CException::GetRuntimeClass()const 3007 CRuntime* CFile::GetRuntimeClass()const 3008 CRuntime* CFileDialog::GetRuntimeClass()const 3009 CRuntime* CFileException::GetRuntimeClass()const 3010 CRuntime* CFileFind::GetRuntimeClass()const 3011 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3012 CRuntime* CFont::GetRuntimeClass()const 3013 CRuntime* CFontDialog::GetRuntimeClass()const 3014 CRuntime* CFormView::GetRuntimeClass()const 3015 CRuntime* CFrameWnd::GetRuntimeClass()const 3016 CRuntime* CFtpConnection::GetRuntimeClass()const 3017 CRuntime* CFtpFileFind::GetRuntimeClass()const 3018 CRuntime* CGdiObject::GetRuntimeClass()const 3019 CRuntime* CGopherConnection::GetRuntimeClass()const 3020 CRuntime* CGopherFile::GetRuntimeClass()const 3021 CRuntime* CGopherFileFind::GetRuntimeClass()const 3022 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3023 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3024 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 3025 CRuntime* CHtmlEditView::GetRuntimeClass()const 3026 CRuntime* CHtmlView::GetRuntimeClass()const 3027 CRuntime* CHttpConnection::GetRuntimeClass()const 3028 CRuntime* CHttpFile::GetRuntimeClass()const 3029 CRuntime* CImageList::GetRuntimeClass()const 3030 CRuntime* CInternetConnection::GetRuntimeClass()const 3031 CRuntime* CInternetException::GetRuntimeClass()const 3032 CRuntime* CInternetFile::GetRuntimeClass()const 3033 CRuntime* CInternetSession::GetRuntimeClass()const 3034 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 3035 CRuntime* CLinkCtrl::GetRuntimeClass()const 3036 CRuntime* CListBox::GetRuntimeClass()const 3037 CRuntime* CListCtrl::GetRuntimeClass()const 3038 CRuntime* CListView::GetRuntimeClass()const 3039 CRuntime* CLongBinary::GetRuntimeClass()const 3040 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3041 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3042 CRuntime* CMapStringToOb::GetRuntimeClass()const 3043 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3044 CRuntime* CMapStringToString::GetRuntimeClass()const 3045 CRuntime* CMapWordToOb::GetRuntimeClass()const 3046 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3047 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3048 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3049 CRuntime* CMemFile::GetRuntimeClass()const 3050 CRuntime* CMemoryException::GetRuntimeClass()const 3051 CRuntime* CMenu::GetRuntimeClass()const 3052 CRuntime* CMetaFileDC::GetRuntimeClass()const 3053 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3054 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3055 CRuntime* CMonikerFile::GetRuntimeClass()const 3056 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 3057 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3058 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 3059 CRuntime* CMutex::GetRuntimeClass()const 3060 CRuntime* CNotSupportedException::GetRuntimeClass()const 3061 CRuntime* CObArray::GetRuntimeClass()const 3062 CRuntime* CObject::GetRuntimeClass()const 3063 CRuntime* CObList::GetRuntimeClass()const 3064 CRuntime* COleBusyDialog::GetRuntimeClass()const 3065 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3066 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3067 CRuntime* COleClientItem::GetRuntimeClass()const 3068 CRuntime* COleControl::GetRuntimeClass()const 3069 CRuntime* COleControlModule::GetRuntimeClass()const 3070 CRuntime* COleConvertDialog::GetRuntimeClass()const 3071 CRuntime* COleDBRecordView::GetRuntimeClass()const 3072 CRuntime* COleDialog::GetRuntimeClass()const 3073 CRuntime* COleDispatchException::GetRuntimeClass()const 3074 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3075 CRuntime* COleDocObjectItem::GetRuntimeClass()const 3076 CRuntime* COleDocument::GetRuntimeClass()const 3077 CRuntime* COleException::GetRuntimeClass()const 3078 CRuntime* COleInsertDialog::GetRuntimeClass()const 3079 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3080 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3081 CRuntime* COleLinksDialog::GetRuntimeClass()const 3082 CRuntime* COleObjectFactory::GetRuntimeClass()const 3083 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3084 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3085 CRuntime* COlePropertyPage::GetRuntimeClass()const 3086 CRuntime* COleResizeBar::GetRuntimeClass()const 3087 CRuntime* COleServerDoc::GetRuntimeClass()const 3088 CRuntime* COleServerItem::GetRuntimeClass()const 3089 CRuntime* COleStreamFile::GetRuntimeClass()const 3090 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3091 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3092 CRuntime* CPaintDC::GetRuntimeClass()const 3093 CRuntime* CPalette::GetRuntimeClass()const 3094 CRuntime* CPen::GetRuntimeClass()const 3095 CRuntime* CPreviewDC::GetRuntimeClass()const 3096 CRuntime* CPreviewView::GetRuntimeClass()const 3097 CRuntime* CPrintDialog::GetRuntimeClass()const 3098 CRuntime* CPrintDialogEx::GetRuntimeClass()const 3099 CRuntime* CProgressCtrl::GetRuntimeClass()const 3100 CRuntime* CPropertyPage::GetRuntimeClass()const 3101 CRuntime* CPropertySheet::GetRuntimeClass()const 3102 CRuntime* CPtrArray::GetRuntimeClass()const 3103 CRuntime* CPtrList::GetRuntimeClass()const 3104 CRuntime* CReBar::GetRuntimeClass()const 3105 CRuntime* CReBarCtrl::GetRuntimeClass()const 3106 CRuntime* CRecordset::GetRuntimeClass()const 3107 CRuntime* CRecordView::GetRuntimeClass()const 3108 CRuntime* CResourceException::GetRuntimeClass()const 3109 CRuntime* CRgn::GetRuntimeClass()const 3110 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3111 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3112 CRuntime* CRichEditDoc::GetRuntimeClass()const 3113 CRuntime* CRichEditView::GetRuntimeClass()const 3114 CRuntime* CScrollBar::GetRuntimeClass()const 3115 CRuntime* CScrollView::GetRuntimeClass()const 3116 CRuntime* CSemaphore::GetRuntimeClass()const 3117 CRuntime* CSharedFile::GetRuntimeClass()const 3118 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3119 CRuntime* CSliderCtrl::GetRuntimeClass()const 3120 CRuntime* CSocket::GetRuntimeClass()const 3121 CRuntime* CSocketFile::GetRuntimeClass()const 3122 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3123 CRuntime* CSplitterWnd::GetRuntimeClass()const 3124 CRuntime* CStatic::GetRuntimeClass()const 3125 CRuntime* CStatusBar::GetRuntimeClass()const 3126 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3127 CRuntime* CStdioFile::GetRuntimeClass()const 3128 CRuntime* CStringArray::GetRuntimeClass()const 3129 CRuntime* CStringList::GetRuntimeClass()const 3130 CRuntime* CSyncObject::GetRuntimeClass()const 3131 CRuntime* CTabCtrl::GetRuntimeClass()const 3132 CRuntime* CToolBar::GetRuntimeClass()const 3133 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3134 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3135 CRuntime* CTreeCtrl::GetRuntimeClass()const 3136 CRuntime* CTreeView::GetRuntimeClass()const 3137 CRuntime* CUIntArray::GetRuntimeClass()const 3138 CRuntime* CUserException::GetRuntimeClass()const 3139 CRuntime* CView::GetRuntimeClass()const 3140 CRuntime* CWinApp::GetRuntimeClass()const 3141 CRuntime* CWindowDC::GetRuntimeClass()const 3142 CRuntime* CWindowlessDC::GetRuntimeClass()const 3143 CRuntime* CWinThread::GetRuntimeClass()const 3144 CRuntime* CWnd::GetRuntimeClass()const 3145 CRuntime* CWordArray::GetRuntimeClass()const 3146 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3147 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3148 unsigned long * CColorDialog::GetSavedCustomColors() 3149 ATL::CStringT > > CGopherFileFind::GetScreenName()const 3150 CSize CDockState::GetScreenSize() 3151 CScrollBar * CView::GetScrollBarCtrl(int)const 3152 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3153 void CScrollView::GetScrollBarSizes(CSize &) 3154 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3155 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3156 int CWnd::GetScrollLimit(int) 3157 int CWnd::GetScrollPos(int)const 3158 CPoint CScrollView::GetScrollPosition()const 3159 void CWnd::GetScrollRange(int,int *,int *)const 3160 unsigned long CSplitterWnd::GetScrollStyle()const 3161 CPropertySection * CPropertySet::GetSection(_GUID) 3162 HKEY__ * CWinApp::GetSectionKey(char const *) 3163 char const * CPropertySection::GetSectionName() 3164 void CRichEditCtrl::GetSel(long &,long &)const 3165 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3166 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3167 void CSliderCtrl::GetSelection(int &,int &)const 3168 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3169 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 3170 unsigned int COleConvertDialog::GetSelectionType()const 3171 unsigned int COleInsertDialog::GetSelectionType()const 3172 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3173 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3174 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3175 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3176 ATL::CStringT > > CRichEditCtrl::GetSelText()const 3177 int CHtmlView::GetSilent()const 3178 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3179 unsigned long CPropertySection::GetSize() 3180 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3181 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3182 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3183 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3184 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3185 CWnd * CSplitterWnd::GetSizingParent() 3186 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3187 int CHtmlView::GetSource(ATL::CStringT > > &) 3188 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3189 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3190 char const * CHtmlEditCtrl::GetStartDocument() 3191 char const * CHtmlEditView::GetStartDocument() 3192 __POSITION * CConnectionPoint::GetStartPosition()const 3193 __POSITION * COleDocument::GetStartPosition()const 3194 __POSITION * CRichEditDoc::GetStartPosition()const 3195 int CFile::GetStatus(CFileStatus &)const 3196 int CFile::GetStatus(char const *,CFileStatus &) 3197 int CMemFile::GetStatus(CFileStatus &)const 3198 int COleStreamFile::GetStatus(CFileStatus &)const 3199 int CHtmlView::GetStatusBar()const 3200 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 3201 ATL::CStringT > > const COleStreamFile::GetStorageName()const 3202 IStream * COleStreamFile::GetStream()const 3203 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3204 unsigned long COleControlSite::GetStyle()const 3205 unsigned long COleControlSiteOrWnd::GetStyle()const 3206 unsigned long CWnd::GetStyle()const 3207 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3208 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3209 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3210 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3211 void CListBox::GetText(int,ATL::CStringT > > &)const 3212 wchar_t * COleControl::GetText() 3213 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3214 int CStatusBarCtrl::GetText(char const *,int,int *)const 3215 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3216 long CRecordset::GetTextLen(short,unsigned long) 3217 int CStatusBarCtrl::GetTextLength(int,int *)const 3218 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3219 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3220 int CHtmlView::GetTheaterMode()const 3221 CRuntime* CAnimateCtrl::GetThisClass() 3222 CRuntime* CArchiveException::GetThisClass() 3223 CRuntime* CAsyncMonikerFile::GetThisClass() 3224 CRuntime* CAsyncSocket::GetThisClass() 3225 CRuntime* CBitmap::GetThisClass() 3226 CRuntime* CBitmapButton::GetThisClass() 3227 CRuntime* CBrush::GetThisClass() 3228 CRuntime* CButton::GetThisClass() 3229 CRuntime* CByteArray::GetThisClass() 3230 CRuntime* CCachedDataPathProperty::GetThisClass() 3231 CRuntime* CCheckListBox::GetThisClass() 3232 CRuntime* CClientDC::GetThisClass() 3233 CRuntime* CCmdTarget::GetThisClass() 3234 CRuntime* CColorDialog::GetThisClass() 3235 CRuntime* CComboBox::GetThisClass() 3236 CRuntime* CComboBoxEx::GetThisClass() 3237 CRuntime* CControlBar::GetThisClass() 3238 CRuntime* CCriticalSection::GetThisClass() 3239 CRuntime* CCtrlView::GetThisClass() 3240 CRuntime* CDatabase::GetThisClass() 3241 CRuntime* CDataPathProperty::GetThisClass() 3242 CRuntime* CDateTimeCtrl::GetThisClass() 3243 CRuntime* CDBException::GetThisClass() 3244 CRuntime* CDC::GetThisClass() 3245 CRuntime* CDHtmlDialog::GetThisClass() 3246 CRuntime* CDialog::GetThisClass() 3247 CRuntime* CDialogBar::GetThisClass() 3248 CRuntime* CDocItem::GetThisClass() 3249 CRuntime* CDockBar::GetThisClass() 3250 CRuntime* CDockState::GetThisClass() 3251 CRuntime* CDocManager::GetThisClass() 3252 CRuntime* CDocObjectServer::GetThisClass() 3253 CRuntime* CDocObjectServerItem::GetThisClass() 3254 CRuntime* CDocTemplate::GetThisClass() 3255 CRuntime* CDocument::GetThisClass() 3256 CRuntime* CDragListBox::GetThisClass() 3257 CRuntime* CDWordArray::GetThisClass() 3258 CRuntime* CDynLinkLibrary::GetThisClass() 3259 CRuntime* CEdit::GetThisClass() 3260 CRuntime* CEditView::GetThisClass() 3261 CRuntime* CEvent::GetThisClass() 3262 CRuntime* CException::GetThisClass() 3263 CRuntime* CFile::GetThisClass() 3264 CRuntime* CFileDialog::GetThisClass() 3265 CRuntime* CFileException::GetThisClass() 3266 CRuntime* CFileFind::GetThisClass() 3267 CRuntime* CFindReplaceDialog::GetThisClass() 3268 CRuntime* CFont::GetThisClass() 3269 CRuntime* CFontDialog::GetThisClass() 3270 CRuntime* CFormView::GetThisClass() 3271 CRuntime* CFrameWnd::GetThisClass() 3272 CRuntime* CFtpConnection::GetThisClass() 3273 CRuntime* CFtpFileFind::GetThisClass() 3274 CRuntime* CGdiObject::GetThisClass() 3275 CRuntime* CGopherConnection::GetThisClass() 3276 CRuntime* CGopherFile::GetThisClass() 3277 CRuntime* CGopherFileFind::GetThisClass() 3278 CRuntime* CHeaderCtrl::GetThisClass() 3279 CRuntime* CHotKeyCtrl::GetThisClass() 3280 CRuntime* CHtmlEditDoc::GetThisClass() 3281 CRuntime* CHtmlEditView::GetThisClass() 3282 CRuntime* CHtmlView::GetThisClass() 3283 CRuntime* CHttpConnection::GetThisClass() 3284 CRuntime* CHttpFile::GetThisClass() 3285 CRuntime* CImageList::GetThisClass() 3286 CRuntime* CInternetConnection::GetThisClass() 3287 CRuntime* CInternetException::GetThisClass() 3288 CRuntime* CInternetFile::GetThisClass() 3289 CRuntime* CInternetSession::GetThisClass() 3290 CRuntime* CIPAddressCtrl::GetThisClass() 3291 CRuntime* CLinkCtrl::GetThisClass() 3292 CRuntime* CListBox::GetThisClass() 3293 CRuntime* CListCtrl::GetThisClass() 3294 CRuntime* CListView::GetThisClass() 3295 CRuntime* CLongBinary::GetThisClass() 3296 CRuntime* CMapPtrToPtr::GetThisClass() 3297 CRuntime* CMapPtrToWord::GetThisClass() 3298 CRuntime* CMapStringToOb::GetThisClass() 3299 CRuntime* CMapStringToPtr::GetThisClass() 3300 CRuntime* CMapStringToString::GetThisClass() 3301 CRuntime* CMapWordToOb::GetThisClass() 3302 CRuntime* CMapWordToPtr::GetThisClass() 3303 CRuntime* CMDIChildWnd::GetThisClass() 3304 CRuntime* CMDIFrameWnd::GetThisClass() 3305 CRuntime* CMemFile::GetThisClass() 3306 CRuntime* CMemoryException::GetThisClass() 3307 CRuntime* CMenu::GetThisClass() 3308 CRuntime* CMetaFileDC::GetThisClass() 3309 CRuntime* CMiniDockFrameWnd::GetThisClass() 3310 CRuntime* CMiniFrameWnd::GetThisClass() 3311 CRuntime* CMonikerFile::GetThisClass() 3312 CRuntime* CMonthCalCtrl::GetThisClass() 3313 CRuntime* CMultiDocTemplate::GetThisClass() 3314 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 3315 CRuntime* CMutex::GetThisClass() 3316 CRuntime* CNotSupportedException::GetThisClass() 3317 CRuntime* CObArray::GetThisClass() 3318 CRuntime* CObject::GetThisClass() 3319 CRuntime* CObList::GetThisClass() 3320 CRuntime* COleBusyDialog::GetThisClass() 3321 CRuntime* COleChangeIconDialog::GetThisClass() 3322 CRuntime* COleChangeSourceDialog::GetThisClass() 3323 CRuntime* COleClientItem::GetThisClass() 3324 CRuntime* COleControl::GetThisClass() 3325 CRuntime* COleControlModule::GetThisClass() 3326 CRuntime* COleConvertDialog::GetThisClass() 3327 CRuntime* COleDBRecordView::GetThisClass() 3328 CRuntime* COleDialog::GetThisClass() 3329 CRuntime* COleDispatchException::GetThisClass() 3330 CRuntime* COleDocIPFrameWnd::GetThisClass() 3331 CRuntime* COleDocObjectItem::GetThisClass() 3332 CRuntime* COleDocument::GetThisClass() 3333 CRuntime* COleException::GetThisClass() 3334 CRuntime* COleInsertDialog::GetThisClass() 3335 CRuntime* COleIPFrameWnd::GetThisClass() 3336 CRuntime* COleLinkingDoc::GetThisClass() 3337 CRuntime* COleLinksDialog::GetThisClass() 3338 CRuntime* COleObjectFactory::GetThisClass() 3339 CRuntime* COlePasteSpecialDialog::GetThisClass() 3340 CRuntime* COlePropertiesDialog::GetThisClass() 3341 CRuntime* COlePropertyPage::GetThisClass() 3342 CRuntime* COleResizeBar::GetThisClass() 3343 CRuntime* COleServerDoc::GetThisClass() 3344 CRuntime* COleServerItem::GetThisClass() 3345 CRuntime* COleStreamFile::GetThisClass() 3346 CRuntime* COleUpdateDialog::GetThisClass() 3347 CRuntime* CPageSetupDialog::GetThisClass() 3348 CRuntime* CPaintDC::GetThisClass() 3349 CRuntime* CPalette::GetThisClass() 3350 CRuntime* CPen::GetThisClass() 3351 CRuntime* CPreviewDC::GetThisClass() 3352 CRuntime* CPreviewView::GetThisClass() 3353 CRuntime* CPrintDialog::GetThisClass() 3354 CRuntime* CPrintDialogEx::GetThisClass() 3355 CRuntime* CProgressCtrl::GetThisClass() 3356 CRuntime* CPropertyPage::GetThisClass() 3357 CRuntime* CPropertySheet::GetThisClass() 3358 CRuntime* CPtrArray::GetThisClass() 3359 CRuntime* CPtrList::GetThisClass() 3360 CRuntime* CReBar::GetThisClass() 3361 CRuntime* CReBarCtrl::GetThisClass() 3362 CRuntime* CRecordset::GetThisClass() 3363 CRuntime* CRecordView::GetThisClass() 3364 CRuntime* CResourceException::GetThisClass() 3365 CRuntime* CRgn::GetThisClass() 3366 CRuntime* CRichEditCntrItem::GetThisClass() 3367 CRuntime* CRichEditCtrl::GetThisClass() 3368 CRuntime* CRichEditDoc::GetThisClass() 3369 CRuntime* CRichEditView::GetThisClass() 3370 CRuntime* CScrollBar::GetThisClass() 3371 CRuntime* CScrollView::GetThisClass() 3372 CRuntime* CSemaphore::GetThisClass() 3373 CRuntime* CSharedFile::GetThisClass() 3374 CRuntime* CSingleDocTemplate::GetThisClass() 3375 CRuntime* CSliderCtrl::GetThisClass() 3376 CRuntime* CSocket::GetThisClass() 3377 CRuntime* CSocketFile::GetThisClass() 3378 CRuntime* CSpinButtonCtrl::GetThisClass() 3379 CRuntime* CSplitterWnd::GetThisClass() 3380 CRuntime* CStatic::GetThisClass() 3381 CRuntime* CStatusBar::GetThisClass() 3382 CRuntime* CStatusBarCtrl::GetThisClass() 3383 CRuntime* CStdioFile::GetThisClass() 3384 CRuntime* CStringArray::GetThisClass() 3385 CRuntime* CStringList::GetThisClass() 3386 CRuntime* CSyncObject::GetThisClass() 3387 CRuntime* CTabCtrl::GetThisClass() 3388 CRuntime* CToolBar::GetThisClass() 3389 CRuntime* CToolBarCtrl::GetThisClass() 3390 CRuntime* CToolTipCtrl::GetThisClass() 3391 CRuntime* CTreeCtrl::GetThisClass() 3392 CRuntime* CTreeView::GetThisClass() 3393 CRuntime* CUIntArray::GetThisClass() 3394 CRuntime* CUserException::GetThisClass() 3395 CRuntime* CView::GetThisClass() 3396 CRuntime* CWinApp::GetThisClass() 3397 CRuntime* CWindowDC::GetThisClass() 3398 CRuntime* CWindowlessDC::GetThisClass() 3399 CRuntime* CWinThread::GetThisClass() 3400 CRuntime* CWnd::GetThisClass() 3401 CRuntime* CWordArray::GetThisClass() 3402 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 3403 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 3404 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 3405 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 3406 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 3407 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 3408 AFX_EVENTMAP const * COleControl::GetThisEventMap() 3409 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 3410 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 3411 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 3412 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 3413 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 3414 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 3415 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 3416 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 3417 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 3418 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 3419 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 3420 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 3421 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 3422 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 3423 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 3424 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 3425 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 3426 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 3427 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 3428 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 3429 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 3430 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 3431 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 3432 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 3433 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 3434 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 3435 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 3436 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 3437 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 3438 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 3439 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 3440 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 3441 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 3442 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 3443 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 3444 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 3445 AFX_MSGMAP const * CDialog::GetThisMessageMap() 3446 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 3447 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 3448 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 3449 AFX_MSGMAP const * CDocument::GetThisMessageMap() 3450 AFX_MSGMAP const * CEditView::GetThisMessageMap() 3451 AFX_MSGMAP const * CFormView::GetThisMessageMap() 3452 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 3453 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 3454 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 3455 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 3456 AFX_MSGMAP const * CListView::GetThisMessageMap() 3457 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 3458 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 3459 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 3460 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 3461 AFX_MSGMAP const * COleControl::GetThisMessageMap() 3462 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 3463 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 3464 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 3465 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 3466 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 3467 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 3468 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 3469 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 3470 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 3471 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 3472 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 3473 AFX_MSGMAP const * CReBar::GetThisMessageMap() 3474 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 3475 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 3476 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 3477 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 3478 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 3479 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 3480 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 3481 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 3482 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 3483 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 3484 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 3485 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 3486 AFX_MSGMAP const * CView::GetThisMessageMap() 3487 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 3488 AFX_MSGMAP const * CWnd::GetThisMessageMap() 3489 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 3490 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 3491 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 3492 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 3493 int CMonthCalCtrl::GetToday(ATL::CTime &)const 3494 int CHtmlView::GetToolBar()const 3495 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3496 long CHtmlView::GetTop()const 3497 int CHtmlView::GetTopLevelContainer()const 3498 CFrameWnd * CWnd::GetTopLevelFrame()const 3499 CWnd * CWnd::GetTopLevelOwner()const 3500 CWnd * CWnd::GetTopLevelParent()const 3501 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3502 void CRectTracker::GetTrueRect(tagRECT *)const 3503 ATL::CStringT > > CHtmlView::GetType()const 3504 short CPictureHolder::GetType() 3505 unsigned long CProperty::GetType() 3506 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3507 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3508 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3509 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3510 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3511 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3512 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3513 unsigned int CCmdTarget::GetTypeInfoCount() 3514 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 3515 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 3516 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 3517 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3518 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 3519 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3520 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3521 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3522 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3523 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3524 void COleSafeArray::GetUBound(unsigned long,long *) 3525 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3526 long COleControl::XOleObject::GetUserClassID(_GUID *) 3527 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3528 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3529 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 3530 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 3531 void COleControl::GetUserType(char *) 3532 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 3533 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 3534 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 3535 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 3536 void * CMapPtrToPtr::GetValueAt(void *)const 3537 ATL::CStringT > > CHttpFile::GetVerb()const 3538 unsigned long CDockState::GetVersion() 3539 CHtmlEditView * CHtmlEditDoc::GetView()const 3540 CRichEditView * CRichEditDoc::GetView()const 3541 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3542 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3543 int CHtmlView::GetVisible()const 3544 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 3545 long CHtmlView::GetWidth()const 3546 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3547 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3548 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3549 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3550 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3551 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3552 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3553 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3554 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3555 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3556 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3557 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3558 long CWnd::GetWindowedChildCount() 3559 long CWnd::GetWindowLessChildCount() 3560 IDropTarget * COleControl::GetWindowlessDropTarget() 3561 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3562 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3563 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 3564 int CWnd::GetWindowTextA(char *,int)const 3565 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 3566 int CWnd::GetWindowTextLengthA()const 3567 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3568 long COleDropSource::GiveFeedback(unsigned long) 3569 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3570 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3571 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3572 void CMemFile::GrowFile(unsigned long) 3573 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3574 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3575 long CDialog::HandleInitDialog(unsigned int,long) 3576 long CDialogBar::HandleInitDialog(unsigned int,long) 3577 long CFormView::HandleInitDialog(unsigned int,long) 3578 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 3579 long CPropertySheet::HandleInitDialog(unsigned int,long) 3580 long CScrollView::HandleMButtonDown(unsigned int,long) 3581 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 3582 int COleControlContainer::HandleSetFocus() 3583 long CDialog::HandleSetFont(unsigned int,long) 3584 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 3585 long COleControl::XPersistStorage::HandsOffStorage() 3586 long COleServerDoc::XPersistStorage::HandsOffStorage() 3587 int COleDocument::HasBlankItems()const 3588 int CDialogTemplate::HasFont()const 3589 unsigned int HashKey(tagVARIANT const &) 3590 unsigned int HashKey(wchar_t const *) 3591 unsigned int HashKey(char const *) 3592 unsigned int HashKey(ATL::CComBSTR) 3593 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 3594 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 3595 void * CFile::hFileNull 3596 void CWinApp::HideApplication() 3597 void CFileDialog::HideControl(int) 3598 long CBrowserControlSite::HideUI() 3599 long CDHtmlDialog::HideUI() 3600 long CHtmlControlSite::XDocHostUIHandler::HideUI() 3601 void CDC::HIMETRICtoDP(tagSIZE *)const 3602 void CDC::HIMETRICtoLP(tagSIZE *)const 3603 int CListCtrl::HitTest(CPoint,unsigned int *)const 3604 int CRectTracker::HitTest(CPoint)const 3605 int CSplitterWnd::HitTest(CPoint)const 3606 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 3607 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3608 int CRectTracker::HitTestHandles(CPoint)const 3609 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 3610 void CWnd::HtmlHelpA(unsigned long,unsigned int) 3611 int CSplitterWnd::IdFromRowCol(int,int)const 3612 void COlePropertyPage::IgnoreApply(unsigned int) 3613 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3614 int CWinApp::InitApplication() 3615 long COleControl::XOleCache::InitCache(IDataObject *) 3616 int CWnd::InitControlContainer() 3617 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3618 long CPrintDialogEx::InitDone() 3619 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3620 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3621 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3622 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3623 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3624 void CMapPtrToWord::InitHashTable(unsigned int,int) 3625 void CMapStringToOb::InitHashTable(unsigned int,int) 3626 void CMapStringToPtr::InitHashTable(unsigned int,int) 3627 void CMapStringToString::InitHashTable(unsigned int,int) 3628 void CMapWordToOb::InitHashTable(unsigned int,int) 3629 void CMapWordToPtr::InitHashTable(unsigned int,int) 3630 long CDataSourceControl::Initialize() 3631 void CDHtmlDialog::Initialize() 3632 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3633 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3634 int CEditView::InitializeReplace() 3635 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3636 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3637 int COleControlModule::InitInstance() 3638 int CWinApp::InitInstance() 3639 int CWinThread::InitInstance() 3640 void CWinApp::InitLibId() 3641 void CDockContext::InitLoop() 3642 int CDialog::InitModalIndirect(void *,CWnd *) 3643 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3644 long COleControl::XPersistMemory::InitNew() 3645 long COleControl::XPersistPropertyBag::InitNew() 3646 long COleControl::XPersistStorage::InitNew(IStorage *) 3647 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3648 long COleControl::XPersistStreamInit::InitNew() 3649 void CRecordset::InitRecord() 3650 void COleControl::InitStockEventMask() 3651 void COleControl::InitStockPropMask() 3652 void CSimpleException::InitString() 3653 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3654 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3655 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3656 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3657 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3658 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 3659 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 3660 void CByteArray::InsertAt(int,unsigned char,int) 3661 void CByteArray::InsertAt(int,CByteArray *) 3662 void CDWordArray::InsertAt(int,unsigned long,int) 3663 void CDWordArray::InsertAt(int,CDWordArray *) 3664 void CObArray::InsertAt(int,CObArray *) 3665 void CObArray::InsertAt(int,CObject *,int) 3666 void CPtrArray::InsertAt(int,CPtrArray *) 3667 void CPtrArray::InsertAt(int,void *,int) 3668 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 3669 void CStringArray::InsertAt(int,CStringArray *) 3670 void CStringArray::InsertAt(int,char const *,int) 3671 void CUIntArray::InsertAt(int,unsigned int,int) 3672 void CUIntArray::InsertAt(int,CUIntArray *) 3673 void CWordArray::InsertAt(int,unsigned short,int) 3674 void CWordArray::InsertAt(int,CWordArray *) 3675 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3676 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3677 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 3678 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 3679 int CListCtrl::InsertColumn(int,char const *,int,int,int) 3680 void CStringArray::InsertEmpty(int,int) 3681 void CRichEditView::InsertFileAsObject(char const *) 3682 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 3683 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 3684 long CRichEditView::InsertItem(CRichEditCntrItem *) 3685 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 3686 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 3687 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3688 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3689 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3690 CFontHolder & COleControl::InternalGetFont() 3691 ATL::CStringT > > const & COleControl::InternalGetText() 3692 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 3693 unsigned long CCmdTarget::InternalRelease() 3694 int CDC::IntersectClipRect(int,int,int,int) 3695 int CDC::IntersectClipRect(tagRECT const *) 3696 void CCheckListBox::InvalidateCheck(int) 3697 void COleControl::InvalidateControl(tagRECT const *,int) 3698 void CCheckListBox::InvalidateItem(int) 3699 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 3700 void COleControl::InvalidateRgn(CRgn *,int) 3701 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 3702 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3703 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3704 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3705 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3706 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3707 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3708 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3709 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 3710 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3711 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3712 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3713 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3714 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3715 int CDocItem::IsBlank()const 3716 int COleServerItem::IsBlank()const 3717 int CPropertyPage::IsButtonEnabled(int) 3718 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3719 int COleServerItem::IsConnected()const 3720 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 3721 int COleControlSite::IsDefaultButton() 3722 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3723 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 3724 int CWnd::IsDialogMessageA(tagMSG *) 3725 long CBlobProperty::IsDirty() 3726 long COleLinkingDoc::XPersistFile::IsDirty() 3727 long COleControl::XPersistMemory::IsDirty() 3728 long COleControl::XPersistStorage::IsDirty() 3729 long COleServerDoc::XPersistStorage::IsDirty() 3730 long COleControl::XPersistStreamInit::IsDirty() 3731 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 3732 unsigned int CWnd::IsDlgButtonChecked(int)const 3733 int CControlBar::IsDockBar()const 3734 int CDockBar::IsDockBar()const 3735 int CFileFind::IsDots()const 3736 int CGopherFileFind::IsDots()const 3737 int CCheckListBox::IsEnabled(int) 3738 int CDHtmlDialog::IsExternalDispatchSafe() 3739 int CRecordset::IsFieldDirty(void *) 3740 int CRecordset::IsFieldNull(void *) 3741 int CRecordset::IsFieldNullable(void *) 3742 int CRecordset::IsFieldNullable(unsigned long)const 3743 int CRecordset::IsFieldStatusDirty(unsigned long)const 3744 int CRecordset::IsFieldStatusNull(unsigned long)const 3745 int CFieldExchange::IsFieldType(unsigned int *) 3746 int CControlBar::IsFloating()const 3747 int CFrameWnd::IsFrameWnd()const 3748 int CWnd::IsFrameWnd()const 3749 int IsHelpKey(tagMSG *) 3750 int CWinThread::IsIdleMessage(tagMSG *) 3751 int CCmdTarget::IsInvokeAllowed(long) 3752 int COleControl::IsInvokeAllowed(long) 3753 int CRecordset::IsJoin(char const *) 3754 int CObject::IsKindOf(CRuntimeconst *)const 3755 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 3756 int COccManager::IsLabelControl(CWnd *) 3757 int COleObjectFactory::IsLicenseValid() 3758 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 3759 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 3760 int COleControlSite::IsMatchingMnemonic(tagMSG *) 3761 int CHtmlEditDoc::IsModified() 3762 int COleClientItem::IsModified()const 3763 int COleControl::IsModified() 3764 int COlePropertyPage::IsModified() 3765 int CRichEditDoc::IsModified() 3766 int CRecordView::IsOnFirstRecord() 3767 int CRecordView::IsOnLastRecord() 3768 int CRecordset::IsOpen()const 3769 long COlePropertyPage::XPropertyPage::IsPageDirty() 3770 int CRecordset::IsParamStatusNull(unsigned long)const 3771 int CRecordset::IsRecordsetUpdatable() 3772 int CCmdTarget::IsResultExpected() 3773 int CRichEditView::IsRichEditFormat(unsigned short) 3774 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 3775 int CRichEditView::IsSelected(CObject const *)const 3776 int CView::IsSelected(CObject const *)const 3777 int CRecordset::IsSelectQueryUpdatable(char const *) 3778 int CObject::IsSerializable()const 3779 int COleMessageFilter::IsSignificantMessage(tagMSG *) 3780 int CDHtmlDialog::IsSinkedElement(IDispatch *) 3781 int CRecordset::IsSQLUpdatable(char const *) 3782 int COleControl::IsSubclassedControl() 3783 int CWnd::IsTopParentActive()const 3784 int CFrameWnd::IsTracking()const 3785 long CDocObjectServer::XOleObject::IsUpToDate() 3786 long COleControl::XOleObject::IsUpToDate() 3787 long COleServerDoc::XOleObject::IsUpToDate() 3788 long COleServerItem::XOleObject::IsUpToDate() 3789 int CControlBar::IsVisible()const 3790 int COleControlSite::IsWindowEnabled()const 3791 int CWnd::IsWindowEnabled()const 3792 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3793 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3794 void COleControl::KeyDown(unsigned short *) 3795 void COleControl::KeyUp(unsigned short *) 3796 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 3797 void CToolBar::Layout() 3798 int CRichEditCtrl::LineIndex(int)const 3799 int CRichEditCtrl::LineLength(int)const 3800 void CRichEditCtrl::LineScroll(int,int) 3801 int CDC::LineTo(int,int) 3802 unsigned long CRichEditView::lMaxSize 3803 long CBlobProperty::Load(IStream *) 3804 int CDialogTemplate::Load(char const *) 3805 void COleControl::Load(char const *,CDataPathProperty &) 3806 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 3807 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 3808 long COleControl::XPersistMemory::Load(void *,unsigned long) 3809 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 3810 long COleControl::XPersistStorage::Load(IStorage *) 3811 long COleServerDoc::XPersistStorage::Load(IStorage *) 3812 long COleControl::XPersistStreamInit::Load(IStream *) 3813 int CFrameWnd::LoadAccelTable(char const *) 3814 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 3815 void CFrameWnd::LoadBarState(char const *) 3816 int CToolBar::LoadBitmapA(char const *) 3817 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 3818 void CRecordset::LoadFields() 3819 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3820 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3821 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3822 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3823 int CDHtmlDialog::LoadFromResource(unsigned int) 3824 int CDHtmlDialog::LoadFromResource(char const *) 3825 int CHtmlView::LoadFromResource(unsigned int) 3826 int CHtmlView::LoadFromResource(char const *) 3827 void COleDocument::LoadFromStorage() 3828 int CControlBarInfo::LoadState(char const *,int,CDockState *) 3829 void CDockState::LoadState(char const *) 3830 long COleControl::LoadState(IStream *) 3831 void CWinApp::LoadStdProfileSettings(unsigned int) 3832 int CWinApp::LoadSysPolicies() 3833 void CDocTemplate::LoadTemplate() 3834 void CMultiDocTemplate::LoadTemplate() 3835 int CToolBar::LoadToolBar(char const *) 3836 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 3837 void COleSafeArray::Lock() 3838 int CSingleLock::Lock(unsigned long) 3839 int CSyncObject::Lock(unsigned long) 3840 void CTypeLibCache::Lock() 3841 char const * CEditView::LockBuffer()const 3842 long COleControlContainer::XOleContainer::LockContainer(int) 3843 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 3844 void COleLinkingDoc::LockExternal(int,int) 3845 int COleControl::LockInPlaceActive(int) 3846 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 3847 void CFile::LockRange(unsigned __int64,unsigned __int64) 3848 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 3849 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 3850 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 3851 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 3852 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 3853 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 3854 long COleObjectFactory::XClassFactory::LockServer(int) 3855 int CMapPtrToPtr::Lookup(void *,void * &)const 3856 int CMapPtrToWord::Lookup(void *,unsigned short &)const 3857 int CMapStringToOb::Lookup(char const *,CObject * &)const 3858 int CMapStringToPtr::Lookup(char const *,void * &)const 3859 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 3860 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 3861 int CMapWordToPtr::Lookup(unsigned short,void * &)const 3862 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 3863 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 3864 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 3865 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 3866 int CMapStringToOb::LookupKey(char const *,char const * &)const 3867 int CMapStringToPtr::LookupKey(char const *,char const * &)const 3868 int CMapStringToString::LookupKey(char const *,char const * &)const 3869 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 3870 void CDC::LPtoDP(tagSIZE *)const 3871 void CDC::LPtoHIMETRIC(tagSIZE *)const 3872 void CArchive::MapObject(CObject const *) 3873 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 3874 int COleDialog::MapResult(unsigned int) 3875 long CPropertyPage::MapWizardResult(long) 3876 void CRecordset::MarkForAddNew() 3877 void CRecordset::MarkForUpdate() 3878 void CRichEditDoc::MarkItemsClear()const 3879 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 3880 int CFileFind::MatchesMask(unsigned long)const 3881 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 3882 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 3883 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 3884 void CComboBox::MeasureItem(tagMEASUREITEM*) 3885 void CListBox::MeasureItem(tagMEASUREITEM*) 3886 void CMenu::MeasureItem(tagMEASUREITEM*) 3887 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 3888 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 3889 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 3890 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 3891 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 3892 void CPreviewDC::MirrorAttributes() 3893 void CPreviewDC::MirrorFont() 3894 void CPreviewDC::MirrorMappingMode(int) 3895 void CPreviewDC::MirrorViewportOrg() 3896 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 3897 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 3898 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 3899 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 3900 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 3901 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 3902 void CDockContext::Move(CPoint) 3903 void CRecordset::Move(long,unsigned short) 3904 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 3905 CPoint CDC::MoveTo(int,int) 3906 void COleControlSite::MoveWindow(int,int,int,int) 3907 void CWnd::MoveWindow(int,int,int,int,int) 3908 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 3909 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 3910 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 3911 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 3912 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 3913 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 3914 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 3915 unsigned int COleDropSource::nDragDelay 3916 unsigned int COleDropSource::nDragMinDist 3917 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 3918 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 3919 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 3920 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 3921 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 3922 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 3923 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 3924 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 3925 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 3926 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 3927 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 3928 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 3929 unsigned int const CEditView::nMaxSize 3930 int CRectTracker::NormalizeHit(int)const 3931 void CDataBoundProperty::Notify() 3932 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 3933 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 3934 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 3935 void CFrameWnd::NotifyFloatingWindows(unsigned long) 3936 void COleServerDoc::NotifyRename(char const *) 3937 unsigned int COleDropTarget::nScrollDelay 3938 int COleDropTarget::nScrollInset 3939 unsigned int COleDropTarget::nScrollInterval 3940 int CDC::OffsetClipRgn(int,int) 3941 int CDC::OffsetClipRgn(tagSIZE) 3942 CPoint CDC::OffsetViewportOrg(int,int) 3943 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 3944 CPoint CPreviewDC::OffsetViewportOrg(int,int) 3945 CPoint CDC::OffsetWindowOrg(int,int) 3946 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3947 void CAsyncSocket::OnAccept(int) 3948 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 3949 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 3950 void COleClientItem::OnActivate() 3951 void COleFrameHook::OnActivate(int) 3952 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 3953 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 3954 long COleControl::OnActivateInPlace(int,tagMSG *) 3955 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 3956 long CWnd::OnActivateTopLevel(unsigned int,long) 3957 void COleClientItem::OnActivateUI() 3958 long CDocObjectServer::OnActivateView() 3959 void CFormView::OnActivateView(int,CView *,CView *) 3960 void CPreviewView::OnActivateView(int,CView *,CView *) 3961 void CRichEditView::OnActivateView(int,CView *,CView *) 3962 void CView::OnActivateView(int,CView *,CView *) 3963 long CToolTipCtrl::OnAddTool(unsigned int,long) 3964 void CConnectionPoint::OnAdvise(int) 3965 void COleControl::XEventConnPt::OnAdvise(int) 3966 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 3967 void COleControl::OnAmbientPropertyChange(long) 3968 long COleControl::XOleControl::OnAmbientPropertyChange(long) 3969 void COleControl::OnAppearanceChanged() 3970 void CWinApp::OnAppExit() 3971 int CPropertyPage::OnApply() 3972 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 3973 void CDocObjectServer::OnApplyViewState(CArchive &) 3974 void COleControl::OnBackColorChanged() 3975 int CFrameWnd::OnBarCheck(unsigned int) 3976 int COleIPFrameWnd::OnBarCheck(unsigned int) 3977 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 3978 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 3979 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 3980 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 3981 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 3982 int COleDropSource::OnBeginDrag(CWnd *) 3983 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 3984 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 3985 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 3986 void COleControl::OnBorderStyleChanged() 3987 void CRichEditView::OnBullet() 3988 int COleMessageFilter::OnBusyDialog(HTASK__ *) 3989 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 3990 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 3991 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 3992 void CCommonDialog::OnCancel() 3993 void CDialog::OnCancel() 3994 void CPropertyPage::OnCancel() 3995 void CRichEditView::OnCancelEditCntr() 3996 void COleControl::OnCancelMode() 3997 void CSplitterWnd::OnCancelMode() 3998 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 3999 long COleControl::XFontNotification::OnChanged(long) 4000 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4001 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4002 void CRectTracker::OnChangedRect(CRect const &) 4003 void CDocument::OnChangedViewList() 4004 int COleClientItem::OnChangeItemPosition(CRect const &) 4005 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4006 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4007 void CRichEditView::OnCharBold() 4008 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4009 void CRichEditView::OnCharItalic() 4010 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4011 void CRichEditView::OnCharUnderline() 4012 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4013 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4014 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4015 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4016 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4017 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4018 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4019 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4020 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4021 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4022 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4023 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4024 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4025 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4026 void COleControl::OnClick(unsigned short) 4027 CEnumArray * CEnumArray::OnClone() 4028 CEnumArray * CEnumConnections::OnClone() 4029 void CAsyncSocket::OnClose(int) 4030 void CControlFrameWnd::OnClose() 4031 void CFrameWnd::OnClose() 4032 void CMiniDockFrameWnd::OnClose() 4033 void COleControl::OnClose(unsigned long) 4034 void COleServerDoc::OnClose(enum tagOLECLOSE) 4035 void CPropertySheet::OnClose() 4036 void COleClientItem::XAdviseSink::OnClose() 4037 void CDocObjectServer::OnCloseDocument() 4038 void CDocument::OnCloseDocument() 4039 void COleDocument::OnCloseDocument() 4040 void COleLinkingDoc::OnCloseDocument() 4041 void COleServerDoc::OnCloseDocument() 4042 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4043 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4044 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4045 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4046 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4047 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4048 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4049 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4050 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4051 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4052 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4053 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4054 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4055 void CRichEditView::OnColorDefault() 4056 int CColorDialog::OnColorOK() 4057 void CRichEditView::OnColorPick(unsigned long) 4058 int CFrameWnd::OnCommand(unsigned int,long) 4059 int CMDIFrameWnd::OnCommand(unsigned int,long) 4060 int COlePropertyPage::OnCommand(unsigned int,long) 4061 int CPropertySheet::OnCommand(unsigned int,long) 4062 int CSplitterWnd::OnCommand(unsigned int,long) 4063 int CWnd::OnCommand(unsigned int,long) 4064 long CDialog::OnCommandHelp(unsigned int,long) 4065 long CFrameWnd::OnCommandHelp(unsigned int,long) 4066 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4067 long CPropertySheet::OnCommandHelp(unsigned int,long) 4068 void CHtmlView::OnCommandStateChange(long,int) 4069 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4070 void CAsyncSocket::OnConnect(int) 4071 void CFrameWnd::OnContextHelp() 4072 int COleFrameHook::OnContextHelp(int) 4073 void COleIPFrameWnd::OnContextHelp() 4074 void CWinApp::OnContextHelp() 4075 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4076 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 4077 int CControlBar::OnCreate(tagCREATESTRUCTA *) 4078 int CEditView::OnCreate(tagCREATESTRUCTA *) 4079 int CFormView::OnCreate(tagCREATESTRUCTA *) 4080 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 4081 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 4082 int COleControl::OnCreate(tagCREATESTRUCTA *) 4083 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 4084 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 4085 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 4086 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 4087 int CView::OnCreate(tagCREATESTRUCTA *) 4088 int CCmdTarget::OnCreateAggregates() 4089 int COleControl::OnCreateAggregates() 4090 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4091 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4092 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4093 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4094 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 4095 CCmdTarget * COleObjectFactory::OnCreateObject() 4096 CCmdTarget * COleTemplateServer::OnCreateObject() 4097 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4098 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4099 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4100 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4101 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4102 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4103 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4104 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4105 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4106 int CDocManager::OnDDECommand(char *) 4107 int CWinApp::OnDDECommand(char *) 4108 long CFrameWnd::OnDDEExecute(unsigned int,long) 4109 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4110 long CFrameWnd::OnDDETerminate(unsigned int,long) 4111 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 4112 void COleClientItem::OnDeactivate() 4113 void COleServerDoc::OnDeactivate() 4114 void COleClientItem::OnDeactivateAndUndo() 4115 void COleClientItem::OnDeactivateUI(int) 4116 void COleServerDoc::OnDeactivateUI(int) 4117 void CRichEditCntrItem::OnDeactivateUI(int) 4118 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4119 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4120 void CControlBar::OnDestroy() 4121 void CDHtmlDialog::OnDestroy() 4122 void CEditView::OnDestroy() 4123 void CFrameWnd::OnDestroy() 4124 void CHtmlView::OnDestroy() 4125 void CMDIChildWnd::OnDestroy() 4126 void CMDIFrameWnd::OnDestroy() 4127 void COleControl::OnDestroy() 4128 void COleIPFrameWnd::OnDestroy() 4129 void CRichEditView::OnDestroy() 4130 void CTabCtrl::OnDestroy() 4131 void CTreeCtrl::OnDestroy() 4132 void CTreeView::OnDestroy() 4133 void CView::OnDestroy() 4134 void CWnd::OnDestroy() 4135 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4136 void CRichEditView::OnDevModeChange(char *) 4137 void CWnd::OnDevModeChange(char *) 4138 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4139 void COleClientItem::OnDiscardUndoState() 4140 void CSplitterWnd::OnDisplayChange() 4141 long CWnd::OnDisplayChange(unsigned int,long) 4142 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4143 int COleFrameHook::OnDocActivate(int) 4144 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 4145 void CHtmlView::OnDocumentComplete(char const *) 4146 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4147 long CBrowserControlSite::OnDocWindowActivate(int) 4148 long CDHtmlDialog::OnDocWindowActivate(int) 4149 long CHtmlView::OnDocWindowActivate(int) 4150 void COleServerDoc::OnDocWindowActivate(int) 4151 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4152 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4153 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4154 void CDocObjectServerItem::OnDoVerb(long) 4155 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4156 void COleServerItem::OnDoVerb(long) 4157 void CHtmlView::OnDownloadBegin() 4158 void CHtmlView::OnDownloadComplete() 4159 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4160 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4161 void COleDropTarget::OnDragLeave(CWnd *) 4162 void CView::OnDragLeave() 4163 long CWnd::OnDragList(unsigned int,long) 4164 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4165 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4166 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4167 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4168 void CCtrlView::OnDraw(CDC *) 4169 void CFormView::OnDraw(CDC *) 4170 void CHtmlView::OnDraw(CDC *) 4171 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4172 void CPreviewView::OnDraw(CDC *) 4173 void CView::OnDraw(CDC *) 4174 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4175 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4176 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4177 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4178 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4179 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4180 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4181 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4182 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4183 void CFrameWnd::OnDropFiles(HDROP__ *) 4184 void CRichEditView::OnDropFiles(HDROP__ *) 4185 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4186 int CEditView::OnEditChange() 4187 void COleDocument::OnEditChangeIcon() 4188 void CEditView::OnEditClear() 4189 void CRichEditView::OnEditClear() 4190 void COleDocument::OnEditConvert() 4191 void CEditView::OnEditCopy() 4192 void CHtmlView::OnEditCopy() 4193 void CRichEditView::OnEditCopy() 4194 void CEditView::OnEditCut() 4195 void CHtmlView::OnEditCut() 4196 void CRichEditView::OnEditCut() 4197 void CEditView::OnEditFind() 4198 void CRichEditView::OnEditFind() 4199 void CEditView::OnEditFindReplace(int) 4200 void CRichEditView::OnEditFindReplace(int) 4201 void COleDocument::OnEditLinks() 4202 void CEditView::OnEditPaste() 4203 void CHtmlView::OnEditPaste() 4204 void CRichEditView::OnEditPaste() 4205 void CRichEditView::OnEditPasteSpecial() 4206 void CRichEditView::OnEditProperties() 4207 int COlePropertyPage::OnEditProperty(long) 4208 void CRichEditView::OnEditRedo() 4209 void CEditView::OnEditRepeat() 4210 void CRichEditView::OnEditRepeat() 4211 void CEditView::OnEditReplace() 4212 void CRichEditView::OnEditReplace() 4213 void CEditView::OnEditSelectAll() 4214 void CRichEditView::OnEditSelectAll() 4215 void CEditView::OnEditUndo() 4216 void CRichEditView::OnEditUndo() 4217 void CFrameWnd::OnEnable(int) 4218 void CToolTipCtrl::OnEnable(int) 4219 void COleControl::OnEnabledChanged() 4220 long CHtmlView::OnEnableModeless(int) 4221 void COleFrameHook::OnEnableModeless(int) 4222 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4223 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4224 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4225 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4226 void CFrameWnd::OnEndSession(int) 4227 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4228 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4229 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4230 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4231 int CFrameWnd::OnEraseBkgnd(CDC *) 4232 int COleControl::OnEraseBkgnd(CDC *) 4233 int COleResizeBar::OnEraseBkgnd(CDC *) 4234 int CPreviewView::OnEraseBkgnd(CDC *) 4235 int CReBar::OnEraseBkgnd(CDC *) 4236 int CToolBar::OnEraseBkgnd(CDC *) 4237 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4238 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4239 int COleControlSite::OnEvent(AFX_EVENT *) 4240 void COleControl::OnEventAdvise(int) 4241 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4242 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4243 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4244 void CDocument::OnFileClose() 4245 void CFileDialog::OnFileNameChange() 4246 int CFileDialog::OnFileNameOK() 4247 void CDocManager::OnFileNew() 4248 void CWinApp::OnFileNew() 4249 void CDocManager::OnFileOpen() 4250 void CWinApp::OnFileOpen() 4251 void CHtmlView::OnFilePrint() 4252 void CView::OnFilePrint() 4253 void CView::OnFilePrintPreview() 4254 void CWinApp::OnFilePrintSetup() 4255 void CDocument::OnFileSave() 4256 void CDocument::OnFileSaveAs() 4257 void COleServerDoc::OnFileSaveCopyAs() 4258 void CDocument::OnFileSendMail() 4259 void COleDocument::OnFileSendMail() 4260 void COleServerDoc::OnFileUpdate() 4261 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4262 void CCmdTarget::OnFinalRelease() 4263 void CDocument::OnFinalRelease() 4264 void COleControl::OnFinalRelease() 4265 void COlePropertyPage::OnFinalRelease() 4266 void COleServerItem::OnFinalRelease() 4267 void CWnd::OnFinalRelease() 4268 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 4269 void CEditView::OnFindNext(char const *,int,int) 4270 void CRichEditView::OnFindNext(char const *,int,int,int) 4271 long CEditView::OnFindReplaceCmd(unsigned int,long) 4272 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4273 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4274 long COleControlSite::XOleControlSite::OnFocus(int) 4275 void CFileDialog::OnFolderChange() 4276 void COleControl::OnFontChanged() 4277 void COleControl::OnForeColorChanged() 4278 void CRichEditView::OnFormatFont() 4279 void COleControl::OnFrameClose() 4280 long CBrowserControlSite::OnFrameWindowActivate(int) 4281 long CDHtmlDialog::OnFrameWindowActivate(int) 4282 long CHtmlView::OnFrameWindowActivate(int) 4283 void COleServerDoc::OnFrameWindowActivate(int) 4284 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4285 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4286 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4287 void COleControl::OnFreezeEvents(int) 4288 void CHtmlView::OnFullScreen(int) 4289 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4290 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4291 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4292 void COleClientItem::OnGetClipRect(CRect &) 4293 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4294 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4295 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4296 unsigned int COleControl::OnGetDlgCode() 4297 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4298 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4299 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4300 long CHtmlView::OnGetExternal(IDispatch * *) 4301 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4302 HMENU__ * COleControl::OnGetInPlaceMenu() 4303 void COleClientItem::OnGetItemPosition(CRect &) 4304 void COleDocObjectItem::OnGetItemPosition(CRect &) 4305 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 4306 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 4307 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4308 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4309 long CWnd::OnGetObject(unsigned int,long) 4310 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4311 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4312 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4313 long CStatusBar::OnGetText(unsigned int,long) 4314 long CStatusBar::OnGetTextLength(unsigned int,long) 4315 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4316 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4317 unsigned long COleControl::OnGetViewStatus() 4318 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4319 void CReBar::OnHeightChange(tagNMHDR *,long *) 4320 void CFrameWnd::OnHelp() 4321 int COlePropertyPage::OnHelp(char const *) 4322 void CWinApp::OnHelp() 4323 void CWnd::OnHelp() 4324 void CWinApp::OnHelpFinder() 4325 void CWnd::OnHelpFinder() 4326 long CControlBar::OnHelpHitTest(unsigned int,long) 4327 long CDialog::OnHelpHitTest(unsigned int,long) 4328 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4329 void CWinApp::OnHelpIndex() 4330 void CWnd::OnHelpIndex() 4331 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4332 int CWnd::OnHelpInfo(tagHELPINFO *) 4333 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4334 void CWinApp::OnHelpUsing() 4335 void CWnd::OnHelpUsing() 4336 void CDocObjectServerItem::OnHide() 4337 long COleControl::OnHide() 4338 void COleServerItem::OnHide() 4339 void COleControl::OnHideToolBars() 4340 long CHtmlView::OnHideUI() 4341 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4342 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4343 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4344 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4345 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4346 void CDocTemplate::OnIdle() 4347 void CDocument::OnIdle() 4348 void COleDocument::OnIdle() 4349 int CWinApp::OnIdle(long) 4350 int CWinThread::OnIdle(long) 4351 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4352 void CFrameWnd::OnIdleUpdateCmdUI() 4353 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4354 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4355 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4356 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4357 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4358 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4359 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4360 int CDHtmlDialog::OnInitDialog() 4361 int CDialog::OnInitDialog() 4362 int COlePropertiesDialog::OnInitDialog() 4363 int COlePropertyPage::OnInitDialog() 4364 int CPropertySheet::OnInitDialog() 4365 void CFileDialog::OnInitDone() 4366 int COleServerItem::OnInitFromData(COleDataObject *,int) 4367 void CControlBar::OnInitialUpdate() 4368 void CFormView::OnInitialUpdate() 4369 void COleDBRecordView::OnInitialUpdate() 4370 void CRecordView::OnInitialUpdate() 4371 void CRichEditView::OnInitialUpdate() 4372 void CView::OnInitialUpdate() 4373 void CFrameWnd::OnInitMenu(CMenu *) 4374 void COleFrameHook::OnInitMenu(CMenu *) 4375 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4376 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4377 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 4378 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4379 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4380 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 4381 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4382 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4383 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 4384 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4385 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4386 void CRichEditView::OnInsertObject() 4387 void CSplitterWnd::OnInvertTracker(CRect const &) 4388 void CDockContext::OnKey(int,int) 4389 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4390 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4391 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4392 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4393 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4394 void COleControl::OnKeyPressEvent(unsigned short) 4395 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4396 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4397 long CPropertySheet::OnKickIdle(unsigned int,long) 4398 int CPropertyPage::OnKillActive() 4399 void COleControl::OnKillFocus(CWnd *) 4400 long CCheckListBox::OnLBAddString(unsigned int,long) 4401 long CCheckListBox::OnLBFindString(unsigned int,long) 4402 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4403 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4404 long CCheckListBox::OnLBGetText(unsigned int,long) 4405 long CCheckListBox::OnLBInsertString(unsigned int,long) 4406 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4407 long CCheckListBox::OnLBSelectString(unsigned int,long) 4408 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4409 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4410 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4411 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4412 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4413 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4414 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4415 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4416 void COleControl::OnLButtonDown(unsigned int,CPoint) 4417 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4418 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4419 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4420 void COleControl::OnLButtonUp(unsigned int,CPoint) 4421 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4422 void CAsyncMonikerFile::OnLowResource() 4423 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4424 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4425 void COleControl::OnMButtonDown(unsigned int,CPoint) 4426 void COleControl::OnMButtonUp(unsigned int,CPoint) 4427 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4428 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4429 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4430 void CHtmlView::OnMenuBar(int) 4431 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4432 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4433 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4434 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4435 int COleMessageFilter::OnMessagePending(tagMSG const *) 4436 int CSocket::OnMessagePending() 4437 void COleControl::OnMnemonic(tagMSG *) 4438 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4439 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4440 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4441 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4442 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4443 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4444 void COleControl::OnMouseMove(unsigned int,CPoint) 4445 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4446 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 4447 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 4448 void COleControl::OnMove(int,int) 4449 int COleDBRecordView::OnMove(unsigned int) 4450 int CRecordView::OnMove(unsigned int) 4451 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 4452 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 4453 void CHtmlEditView::OnNavigateComplete2(char const *) 4454 void CHtmlView::OnNavigateComplete2(char const *) 4455 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 4456 int CFrameWnd::OnNcActivate(int) 4457 int CMDIChildWnd::OnNcActivate(int) 4458 int CMiniFrameWnd::OnNcActivate(int) 4459 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4460 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4461 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4462 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4463 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4464 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 4465 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 4466 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 4467 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 4468 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 4469 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 4470 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 4471 void CListCtrl::OnNcDestroy() 4472 void CListView::OnNcDestroy() 4473 void CWnd::OnNcDestroy() 4474 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 4475 unsigned int COleControl::OnNcHitTest(CPoint) 4476 unsigned int CStatusBar::OnNcHitTest(CPoint) 4477 unsigned int CToolBar::OnNcHitTest(CPoint) 4478 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4479 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4480 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4481 void CDockBar::OnNcPaint() 4482 void COleControl::OnNcPaint() 4483 void CReBar::OnNcPaint() 4484 void CStatusBar::OnNcPaint() 4485 void CToolBar::OnNcPaint() 4486 int CDocument::OnNewDocument() 4487 int CHtmlEditDoc::OnNewDocument() 4488 int COleDocument::OnNewDocument() 4489 int COleLinkingDoc::OnNewDocument() 4490 void COleServerDoc::OnNewEmbedding(IStorage *) 4491 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 4492 int CEnumArray::OnNext(void *) 4493 int CEnumConnections::OnNext(void *) 4494 int CEnumConnPoints::OnNext(void *) 4495 int CEnumFormatEtc::OnNext(void *) 4496 int CEnumOleVerb::OnNext(void *) 4497 int CEnumUnknown::OnNext(void *) 4498 void CPreviewView::OnNextPage() 4499 int CView::OnNextPaneCmd(unsigned int) 4500 int CFileDialog::OnNotify(unsigned int,long,long *) 4501 int CPropertyPage::OnNotify(unsigned int,long,long *) 4502 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4503 int CWnd::OnNotify(unsigned int,long,long *) 4504 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4505 long CWnd::OnNTCtlColor(unsigned int,long) 4506 void CPreviewView::OnNumPageChange() 4507 void COlePropertyPage::OnObjectsChanged() 4508 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4509 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4510 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4511 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4512 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4513 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4514 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4515 void CCommonDialog::OnOK() 4516 void CDialog::OnOK() 4517 void CPropertyPage::OnOK() 4518 long COleControl::OnOpen(int,tagMSG *) 4519 void COleServerItem::OnOpen() 4520 int CDocument::OnOpenDocument(char const *) 4521 int CHtmlEditDoc::OnOpenDocument(char const *) 4522 int COleDocument::OnOpenDocument(char const *) 4523 int COleLinkingDoc::OnOpenDocument(char const *) 4524 void COleServerDoc::OnOpenEmbedding(IStorage *) 4525 int CWinApp::OnOpenRecentFile(unsigned int) 4526 void CAsyncSocket::OnOutOfBandData(int) 4527 void CCommonDialog::OnPaint() 4528 void CControlBar::OnPaint() 4529 void CCtrlView::OnPaint() 4530 void CDialog::OnPaint() 4531 void CDockBar::OnPaint() 4532 void CHtmlEditView::OnPaint() 4533 void CHtmlView::OnPaint() 4534 void COleControl::OnPaint(CDC *) 4535 int COleControlContainer::OnPaint(CDC *) 4536 void COleResizeBar::OnPaint() 4537 void CReBar::OnPaint() 4538 void CSplitterWnd::OnPaint() 4539 void CStatusBar::OnPaint() 4540 void CToolBar::OnPaint() 4541 void CView::OnPaint() 4542 void CWnd::OnPaint() 4543 void CFrameWnd::OnPaletteChanged(CWnd *) 4544 void COleFrameHook::OnPaletteChanged(CWnd *) 4545 void CRichEditView::OnParaAlign(unsigned short) 4546 void CRichEditView::OnParaCenter() 4547 void CRichEditView::OnParaLeft() 4548 void CRichEditView::OnParaRight() 4549 void CWnd::OnParentNotify(unsigned int,long) 4550 int CRichEditView::OnPasteNativeObject(IStorage *) 4551 long CFrameWnd::OnPopMessageString(unsigned int,long) 4552 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4553 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4554 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4555 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4556 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4557 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4558 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4559 int CEditView::OnPreparePrinting(CPrintInfo *) 4560 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 4561 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 4562 int CView::OnPreparePrinting(CPrintInfo *) 4563 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 4564 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4565 void CPreviewView::OnPreviewClose() 4566 void CPreviewView::OnPreviewPrint() 4567 void CPreviewView::OnPrevPage() 4568 void CEditView::OnPrint(CDC *,CPrintInfo *) 4569 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 4570 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4571 void CView::OnPrint(CDC *,CPrintInfo *) 4572 void CRichEditView::OnPrinterChanged(CDC const &) 4573 void CPrintDialog::OnPrintSetup() 4574 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 4575 void CHtmlView::OnProgressChange(long,long) 4576 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4577 void CHtmlView::OnPropertyChange(char const *) 4578 int CPropertyPage::OnQueryCancel() 4579 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4580 int CFrameWnd::OnQueryEndSession() 4581 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4582 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4583 int CFrameWnd::OnQueryNewPalette() 4584 int COleFrameHook::OnQueryNewPalette() 4585 int COleServerItem::OnQueryUpdateItems() 4586 void CHtmlView::OnQuit() 4587 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4588 void COleControl::OnRButtonDown(unsigned int,CPoint) 4589 void COleControl::OnRButtonUp(unsigned int,CPoint) 4590 int COleServerDoc::OnReactivateAndUndo() 4591 void COleFrameHook::OnRecalcLayout() 4592 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4593 void CReBar::OnRecalcParent() 4594 void CAsyncSocket::OnReceive(int) 4595 void COleControl::OnReflectorDestroyed() 4596 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 4597 void COleClientItem::OnRemoveMenus(CMenu *) 4598 void COleDocObjectItem::OnRemoveMenus(CMenu *) 4599 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4600 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4601 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4602 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4603 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4604 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4605 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4606 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4607 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4608 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4609 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4610 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4611 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4612 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4613 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4614 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4615 void CEditView::OnReplaceAll(char const *,char const *,int) 4616 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 4617 void CEditView::OnReplaceSel(char const *,int,int,char const *) 4618 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 4619 long COleControl::XFontNotification::OnRequestEdit(long) 4620 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4621 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4622 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4623 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4624 void CEnumArray::OnReset() 4625 void CPropertyPage::OnReset() 4626 void COleControl::OnResetState() 4627 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4628 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4629 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4630 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 4631 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 4632 void COleClientItem::XAdviseSink::OnSave() 4633 int CDocument::OnSaveDocument(char const *) 4634 int CHtmlEditDoc::OnSaveDocument(char const *) 4635 int COleDocument::OnSaveDocument(char const *) 4636 int COleLinkingDoc::OnSaveDocument(char const *) 4637 int COleServerDoc::OnSaveDocument(char const *) 4638 void COleServerDoc::OnSaveEmbedding(IStorage *) 4639 void COleServerItem::OnSaveEmbedding(IStorage *) 4640 void CDocObjectServer::OnSaveViewState(CArchive &) 4641 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4642 int CView::OnScroll(unsigned int,unsigned int,int) 4643 int COleClientItem::OnScrollBy(CSize) 4644 int CScrollView::OnScrollBy(CSize,int) 4645 int CView::OnScrollBy(CSize,int) 4646 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4647 void CAsyncSocket::OnSend(int) 4648 int CPropertyPage::OnSetActive() 4649 long CToolBar::OnSetBitmapSize(unsigned int,long) 4650 long CToolBar::OnSetButtonSize(unsigned int,long) 4651 void COleControl::OnSetClientSite() 4652 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4653 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4654 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4655 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4656 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4657 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4658 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4659 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4660 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4661 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4662 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4663 long CPropertySheet::OnSetDefID(unsigned int,long) 4664 int COleControl::OnSetExtent(tagSIZE *) 4665 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4666 void CFormView::OnSetFocus(CWnd *) 4667 void CFrameWnd::OnSetFocus(CWnd *) 4668 void COleControl::OnSetFocus(CWnd *) 4669 void CWnd::OnSetFocus(CWnd *) 4670 long CCheckListBox::OnSetFont(unsigned int,long) 4671 void CDialog::OnSetFont(CFont *) 4672 long CEditView::OnSetFont(unsigned int,long) 4673 void COleServerDoc::OnSetHostNames(char const *,char const *) 4674 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4675 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4676 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4677 long CFrameWnd::OnSetMessageString(unsigned int,long) 4678 long COleControl::OnSetMessageString(unsigned int,long) 4679 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 4680 long CStatusBar::OnSetMinHeight(unsigned int,long) 4681 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 4682 void CDatabase::OnSetOptions(void *) 4683 void CRecordset::OnSetOptions(void *) 4684 void COlePropertyPage::OnSetPageSite() 4685 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4686 long CToolBar::OnSetSizeHelper(CSize &,long) 4687 long COleControl::OnSetText(unsigned int,long) 4688 long CStatusBar::OnSetText(unsigned int,long) 4689 void CWnd::OnSettingChange(unsigned int,char const *) 4690 void CRecordset::OnSetUpdateOptions(void *) 4691 unsigned int CFileDialog::OnShareViolation(char const *) 4692 void CDocObjectServerItem::OnShow() 4693 void COleServerItem::OnShow() 4694 long CReBar::OnShowBand(unsigned int,long) 4695 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 4696 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 4697 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 4698 void COleServerDoc::OnShowDocument(int) 4699 void COleClientItem::OnShowItem() 4700 void COleControl::OnShowToolBars() 4701 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 4702 void COleDocument::OnShowViews(int) 4703 void COleLinkingDoc::OnShowViews(int) 4704 void COleControl::OnShowWindow(int,unsigned int) 4705 long COleClientItem::XOleClientSite::OnShowWindow(int) 4706 long COleControlSite::XOleClientSite::OnShowWindow(int) 4707 void CDHtmlDialog::OnSize(unsigned int,int,int) 4708 void CFrameWnd::OnSize(unsigned int,int,int) 4709 void CHtmlView::OnSize(unsigned int,int,int) 4710 void CMDIChildWnd::OnSize(unsigned int,int,int) 4711 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4712 void COleControl::OnSize(unsigned int,int,int) 4713 void COleIPFrameWnd::OnSize(unsigned int,int,int) 4714 void COleResizeBar::OnSize(unsigned int,int,int) 4715 void CPreviewView::OnSize(unsigned int,int,int) 4716 void CScrollView::OnSize(unsigned int,int,int) 4717 void CSplitterWnd::OnSize(unsigned int,int,int) 4718 void CStatusBar::OnSize(unsigned int,int,int) 4719 long CControlBar::OnSizeParent(unsigned int,long) 4720 long CDockBar::OnSizeParent(unsigned int,long) 4721 long COleResizeBar::OnSizeParent(unsigned int,long) 4722 int CEnumArray::OnSkip() 4723 long CSocketWnd::OnSocketDead(unsigned int,long) 4724 long CSocketWnd::OnSocketNotify(unsigned int,long) 4725 int CView::OnSplitCmd(unsigned int) 4726 void CAsyncMonikerFile::OnStartBinding() 4727 void CHtmlView::OnStatusBar(int) 4728 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4729 void CHtmlView::OnStatusTextChange(char const *) 4730 void CAsyncMonikerFile::OnStopBinding(long,char const *) 4731 void CToolBar::OnSysColorChange() 4732 void CWnd::OnSysColorChange() 4733 void CFrameWnd::OnSysCommand(unsigned int,long) 4734 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4735 void CPropertySheet::OnSysCommand(unsigned int,long) 4736 void CSplitterWnd::OnSysCommand(unsigned int,long) 4737 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4738 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4739 void COleControl::OnTextChanged() 4740 void CEditView::OnTextNotFound(char const *) 4741 void CRichEditView::OnTextNotFound(char const *) 4742 void CHtmlView::OnTheaterMode(int) 4743 void CControlBar::OnTimer(unsigned int) 4744 void CHtmlView::OnTitleChange(char const *) 4745 void CHtmlView::OnToolBar(int) 4746 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4747 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4748 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4749 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4750 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4751 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 4752 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 4753 void CFileDialog::OnTypeChange() 4754 void COleControlContainer::OnUIActivate(COleControlSite *) 4755 long COleClientItem::XOleIPSite::OnUIActivate() 4756 long COleControlSite::XOleIPSite::OnUIActivate() 4757 void COleControlContainer::OnUIDeactivate(COleControlSite *) 4758 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 4759 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 4760 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 4761 void CView::OnUpdate(CView *,long,CObject *) 4762 void CRichEditView::OnUpdateBullet(CCmdUI *) 4763 void CRichEditView::OnUpdateCharBold(CCmdUI *) 4764 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 4765 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 4766 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 4767 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4768 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4769 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 4770 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4771 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4772 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4773 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4774 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4775 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4776 int COleServerDoc::OnUpdateDocument() 4777 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 4778 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 4779 void CHtmlView::OnUpdateEditCut(CCmdUI *) 4780 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 4781 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 4782 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 4783 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 4784 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 4785 void CEditView::OnUpdateEditUndo(CCmdUI *) 4786 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 4787 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 4788 void CDocument::OnUpdateFileSendMail(CCmdUI *) 4789 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 4790 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4791 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 4792 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4793 void CFrameWnd::OnUpdateFrameTitle(int) 4794 void CMDIChildWnd::OnUpdateFrameTitle(int) 4795 void CMDIFrameWnd::OnUpdateFrameTitle(int) 4796 int COleClientItem::OnUpdateFrameTitle() 4797 int COleFrameHook::OnUpdateFrameTitle() 4798 void COleServerItem::OnUpdateItems() 4799 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 4800 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 4801 void CEditView::OnUpdateNeedClip(CCmdUI *) 4802 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 4803 void CEditView::OnUpdateNeedFind(CCmdUI *) 4804 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 4805 void CEditView::OnUpdateNeedSel(CCmdUI *) 4806 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 4807 void CEditView::OnUpdateNeedText(CCmdUI *) 4808 void CRichEditView::OnUpdateNeedText(CCmdUI *) 4809 void CPreviewView::OnUpdateNextPage(CCmdUI *) 4810 void CView::OnUpdateNextPaneMenu(CCmdUI *) 4811 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 4812 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 4813 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 4814 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 4815 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 4816 void CRichEditView::OnUpdateParaRight(CCmdUI *) 4817 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 4818 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 4819 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 4820 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 4821 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 4822 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 4823 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 4824 void CRecordView::OnUpdateRecordLast(CCmdUI *) 4825 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 4826 void CRecordView::OnUpdateRecordNext(CCmdUI *) 4827 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 4828 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 4829 void CView::OnUpdateSplitCmd(CCmdUI *) 4830 long CHtmlView::OnUpdateUI() 4831 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 4832 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 4833 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 4834 void CHtmlView::OnVisible(int) 4835 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 4836 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4837 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4838 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4839 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4840 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4841 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 4842 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 4843 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 4844 void CMDIFrameWnd::OnWindowNew() 4845 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 4846 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 4847 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 4848 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 4849 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 4850 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 4851 long CPropertyPage::OnWizardBack() 4852 int CPropertyPage::OnWizardFinish() 4853 long CPropertyPage::OnWizardNext() 4854 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 4855 void CPreviewView::OnZoomIn() 4856 void CPreviewView::OnZoomOut() 4857 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 4858 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 4859 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 4860 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 4861 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 4862 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 4863 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 4864 int CAsyncMonikerFile::Open(char const *,CFileException *) 4865 int CDatabase::Open(char const *,int,int,char const *,int) 4866 int CDataPathProperty::Open(CFileException *) 4867 int CDataPathProperty::Open(COleControl *,CFileException *) 4868 int CDataPathProperty::Open(char const *,CFileException *) 4869 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 4870 int CFile::Open(char const *,unsigned int,CFileException *) 4871 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 4872 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 4873 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 4874 int CMonikerFile::Open(IMoniker *,CFileException *) 4875 int CMonikerFile::Open(char const *,CFileException *) 4876 int CRecordset::Open(unsigned int,char const *,unsigned long) 4877 int CSocketFile::Open(char const *,unsigned int,CFileException *) 4878 int CStdioFile::Open(char const *,unsigned int,CFileException *) 4879 long CDocObjectServer::XOleDocumentView::Open() 4880 CDocument * CDocManager::OpenDocumentFile(char const *) 4881 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 4882 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 4883 CDocument * CWinApp::OpenDocumentFile(char const *) 4884 int CDatabase::OpenEx(char const *,unsigned long) 4885 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 4886 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 4887 long COleUILinkInfo::OpenLinkSource(unsigned long) 4888 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 4889 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 4890 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 4891 int CHtmlEditDoc::OpenURL(char const *) 4892 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 4893 int CFileException::OsErrorToException(long) 4894 void CDumpContext::OutputString(char const *) 4895 int CEditView::PaginateTo(CDC *,CPrintInfo *) 4896 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 4897 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 4898 int CWnd::PaintWindowlessControls(CDC *) 4899 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 4900 void CWinApp::ParseCommandLine(CCommandLineInfo &) 4901 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 4902 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 4903 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 4904 void CCommandLineInfo::ParseLast(int) 4905 void CCommandLineInfo::ParseParam(char const *,int,int) 4906 void CCommandLineInfo::ParseParamFlag(char const *) 4907 void CCommandLineInfo::ParseParamNotFlag(char const *) 4908 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 4909 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 4910 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 4911 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 4912 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 4913 int CDC::PlayMetaFile(HMETAFILE__ *) 4914 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 4915 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 4916 int CDC::PolyBezierTo(tagPOINT const *,int) 4917 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 4918 int CDC::PolylineTo(tagPOINT const *,int) 4919 void CPreviewView::PositionPage(unsigned int) 4920 int CAsyncMonikerFile::PostBindToStream(CFileException *) 4921 int CMonikerFile::PostBindToStream(CFileException *) 4922 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 4923 void CDialog::PostModal() 4924 void CPrintDialogEx::PostModal() 4925 void COleControl::PostModalDialog(HWND__ *) 4926 void CControlBar::PostNcDestroy() 4927 void CControlFrameWnd::PostNcDestroy() 4928 void CFindReplaceDialog::PostNcDestroy() 4929 void CFrameWnd::PostNcDestroy() 4930 void COleCntrFrameWnd::PostNcDestroy() 4931 void CReflectorWnd::PostNcDestroy() 4932 void CView::PostNcDestroy() 4933 void CWnd::PostNcDestroy() 4934 void CRecordset::PreBindFields() 4935 void CDocument::PreCloseFrame(CFrameWnd *) 4936 void COleDocument::PreCloseFrame(CFrameWnd *) 4937 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 4938 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 4939 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 4940 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 4941 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4942 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 4943 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 4944 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4945 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 4946 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 4947 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 4948 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4949 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 4950 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 4951 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 4952 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 4953 int CView::PreCreateWindow(tagCREATESTRUCTA &) 4954 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 4955 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 4956 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 4957 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 4958 void CDialog::PreInitDialog() 4959 void COleChangeSourceDialog::PreInitDialog() 4960 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 4961 HWND__ * CDialog::PreModal() 4962 HWND__ * CPrintDialogEx::PreModal() 4963 void COleControl::PreModalDialog(HWND__ *) 4964 void CRecordset::PrepareAndExecute() 4965 HWND__ * CDataExchange::PrepareCtrl(int) 4966 HWND__ * CDataExchange::PrepareEditCtrl(int) 4967 void CWnd::PrepareForHelp() 4968 COleControlSite * CDataExchange::PrepareOleCtrl(int) 4969 void CRecordset::PrepareUpdateHstmt() 4970 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 4971 void CDragListBox::PreSubclassWindow() 4972 void CWnd::PreSubclassWindow() 4973 int CWnd::PreTranslateInput(tagMSG *) 4974 int CControlBar::PreTranslateMessage(tagMSG *) 4975 int CDialog::PreTranslateMessage(tagMSG *) 4976 int CFormView::PreTranslateMessage(tagMSG *) 4977 int CFrameWnd::PreTranslateMessage(tagMSG *) 4978 int CHtmlView::PreTranslateMessage(tagMSG *) 4979 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 4980 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 4981 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 4982 int COlePropertyPage::PreTranslateMessage(tagMSG *) 4983 int CPropertyPage::PreTranslateMessage(tagMSG *) 4984 int CPropertySheet::PreTranslateMessage(tagMSG *) 4985 int CWinThread::PreTranslateMessage(tagMSG *) 4986 int CWnd::PreTranslateMessage(tagMSG *) 4987 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 4988 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 4989 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 4990 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 4991 long CRichEditView::PrintPage(CDC *,long,long) 4992 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 4993 long COleException::Process(CException const *) 4994 int CSocket::ProcessAuxQueue() 4995 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 4996 int CWinThread::ProcessMessageFilter(int,tagMSG *) 4997 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 4998 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 4999 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5000 void COleSafeArray::PtrOfIndex(long *,void * *) 5001 int CMetaFileDC::PtVisible(int,int)const 5002 int CWinThread::PumpMessage() 5003 int CSocket::PumpMessages(unsigned int) 5004 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 5005 long CWnd::put_accName(tagVARIANT,wchar_t *) 5006 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5007 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5008 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5009 void COleSafeArray::PutElement(long *,void *) 5010 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 5011 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 5012 int PX_Blob(CPropExchange *,char const *,void * &,void *) 5013 int PX_Bool(CPropExchange *,char const *,int &) 5014 int PX_Bool(CPropExchange *,char const *,int &,int) 5015 int PX_Color(CPropExchange *,char const *,unsigned long &) 5016 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 5017 int PX_Currency(CPropExchange *,char const *,union tagCY &) 5018 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 5019 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 5020 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 5021 int PX_Double(CPropExchange *,char const *,double &) 5022 int PX_Double(CPropExchange *,char const *,double &,double) 5023 int PX_Float(CPropExchange *,char const *,float &) 5024 int PX_Float(CPropExchange *,char const *,float &,float) 5025 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5026 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 5027 int PX_Long(CPropExchange *,char const *,long &) 5028 int PX_Long(CPropExchange *,char const *,long &,long) 5029 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 5030 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 5031 int PX_Short(CPropExchange *,char const *,short &) 5032 int PX_Short(CPropExchange *,char const *,short &,short) 5033 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 5034 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 5035 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5036 int PX_ULong(CPropExchange *,char const *,unsigned long &) 5037 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 5038 int PX_UShort(CPropExchange *,char const *,unsigned short &) 5039 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 5040 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5041 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5042 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5043 IUnknown * CCmdTarget::QueryAggregates(void const *) 5044 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5045 long COleDropSource::QueryContinueDrag(int,unsigned long) 5046 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5047 void * COleControl::QueryDefHandler(_GUID const &) 5048 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5049 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5050 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5051 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5052 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5053 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5054 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5055 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5056 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5057 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5058 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5059 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5060 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5061 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5062 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5063 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5064 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5065 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5066 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5067 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5068 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5069 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5070 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5071 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5072 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 5073 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5074 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5075 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 5076 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5077 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5078 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 5079 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5080 long CPropertyPage::QuerySiblings(unsigned int,long) 5081 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5082 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5083 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5084 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5085 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5086 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 5087 int COleControlSite::QuickActivate() 5088 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5089 int COleClientItem::ReactivateAndUndo() 5090 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5091 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5092 unsigned int CArchive::Read(void *,unsigned int) 5093 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5094 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5095 unsigned int CFile::Read(void *,unsigned int) 5096 int CImageList::Read(CArchive *) 5097 unsigned int CInternetFile::Read(void *,unsigned int) 5098 unsigned int CMemFile::Read(void *,unsigned int) 5099 unsigned int COleStreamFile::Read(void *,unsigned int) 5100 unsigned int CSocketFile::Read(void *,unsigned int) 5101 unsigned int CStdioFile::Read(void *,unsigned int) 5102 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5103 unsigned long CArchive::ReadCount() 5104 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5105 int CProperty::ReadFromStream(IStream *) 5106 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5107 int CPropertySet::ReadFromStream(IStream *) 5108 void COleClientItem::ReadItem(CArchive &) 5109 void COleClientItem::ReadItemCompound(CArchive &) 5110 void COleClientItem::ReadItemFlat(CArchive &) 5111 void CRecentFileList::ReadList() 5112 int CPropertySection::ReadNameDictFromStream(IStream *) 5113 CObject * CArchive::ReadObject(CRuntimeconst *) 5114 int CArchive::ReadString(ATL::CStringT > > &) 5115 char * CArchive::ReadString(char *,unsigned int) 5116 int CInternetFile::ReadString(ATL::CStringT > > &) 5117 char * CInternetFile::ReadString(char *,unsigned int) 5118 int CStdioFile::ReadString(ATL::CStringT > > &) 5119 char * CStdioFile::ReadString(char *,unsigned int) 5120 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5121 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5122 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5123 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5124 void CRecordset::RebindParams(void *) 5125 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5126 void CFrameWnd::RecalcLayout(int) 5127 void CMiniDockFrameWnd::RecalcLayout(int) 5128 void COleCntrFrameWnd::RecalcLayout(int) 5129 void COleDocIPFrameWnd::RecalcLayout(int) 5130 void COleIPFrameWnd::RecalcLayout(int) 5131 void CSplitterWnd::RecalcLayout() 5132 int CAsyncSocket::Receive(void *,int,int) 5133 int CSocket::Receive(void *,int,int) 5134 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5135 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5136 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5137 void COleControl::RecreateControlWindow() 5138 CRect const CFrameWnd::rectDefault 5139 int CMetaFileDC::RectVisible(tagRECT const *)const 5140 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5141 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5142 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5143 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5144 int CWnd::ReflectLastMsg(HWND__ *,long *) 5145 void COleControl::Refresh() 5146 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5147 int COleDropTarget::Register(CWnd *) 5148 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 5149 int COleMessageFilter::Register() 5150 int COleObjectFactory::Register() 5151 int COleTemplateServer::Register() 5152 int CWinApp::Register() 5153 int COleObjectFactory::RegisterAll() 5154 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 5155 void CDocManager::RegisterShellFileTypes(int) 5156 void CWinApp::RegisterShellFileTypes(int) 5157 unsigned long CArchiveStream::Release() 5158 unsigned long CBlobProperty::Release() 5159 unsigned long CBrowserControlSite::Release() 5160 unsigned long CDHtmlControlSink::Release() 5161 unsigned long CDHtmlElementEventSink::Release() 5162 unsigned long CDHtmlEventSink::Release() 5163 unsigned long CInnerUnknown::Release() 5164 void COleClientItem::Release(enum tagOLECLOSE) 5165 unsigned long COleConnPtContainer::Release() 5166 void COleDataObject::Release() 5167 unsigned long COleDispatchImpl::Release() 5168 void COleDocObjectItem::Release(enum tagOLECLOSE) 5169 unsigned long COleUILinkInfo::Release() 5170 unsigned long CPrintDialogEx::Release() 5171 void CDC::ReleaseAttribDC() 5172 void COleControl::ReleaseCaches() 5173 int COleControl::ReleaseCapture() 5174 int COleControl::ReleaseDC(CDC *) 5175 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5176 void COleDispatchDriver::ReleaseDispatch() 5177 void CDocObjectServer::ReleaseDocSite() 5178 void CDocument::ReleaseFile(CFile *,int) 5179 void CFontHolder::ReleaseFont() 5180 void CDC::ReleaseOutputDC() 5181 void CMetaFileDC::ReleaseOutputDC() 5182 void CPreviewDC::ReleaseOutputDC() 5183 int COleClientItem::Reload() 5184 void CFile::Remove(char const *) 5185 int CFtpConnection::Remove(char const *) 5186 void CPropertySection::Remove(unsigned long) 5187 void CPropertySet::Remove(_GUID) 5188 void CPropertySet::Remove(_GUID,unsigned long) 5189 void CRecentFileList::Remove(int) 5190 int CSimpleList::Remove(void *) 5191 void CMapPtrToPtr::RemoveAll() 5192 void CMapPtrToWord::RemoveAll() 5193 void CMapStringToOb::RemoveAll() 5194 void CMapStringToPtr::RemoveAll() 5195 void CMapStringToString::RemoveAll() 5196 void CMapWordToOb::RemoveAll() 5197 void CMapWordToPtr::RemoveAll() 5198 void CObList::RemoveAll() 5199 void CPropertySection::RemoveAll() 5200 void CPropertySet::RemoveAll() 5201 void CPtrList::RemoveAll() 5202 void CStringList::RemoveAll() 5203 void CTypeLibCacheMap::RemoveAll(void *) 5204 void CByteArray::RemoveAt(int,int) 5205 void CDWordArray::RemoveAt(int,int) 5206 void CObArray::RemoveAt(int,int) 5207 void CObList::RemoveAt(__POSITION *) 5208 void CPtrArray::RemoveAt(int,int) 5209 void CPtrList::RemoveAt(__POSITION *) 5210 void CStringArray::RemoveAt(int,int) 5211 void CStringList::RemoveAt(__POSITION *) 5212 void CUIntArray::RemoveAt(int,int) 5213 void CWordArray::RemoveAt(int,int) 5214 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5215 void CFrameWnd::RemoveControlBar(CControlBar *) 5216 int CFtpConnection::RemoveDirectoryA(char const *) 5217 void CDocTemplate::RemoveDocument(CDocument *) 5218 void CMultiDocTemplate::RemoveDocument(CDocument *) 5219 void CSingleDocTemplate::RemoveDocument(CDocument *) 5220 void COleControl::RemoveFrameLevelUI() 5221 void CFrameWnd::RemoveFrameWnd() 5222 CObject * CObList::RemoveHead() 5223 void * CPtrList::RemoveHead() 5224 ATL::CStringT > > CStringList::RemoveHead() 5225 void CListCtrl::RemoveImageList(int) 5226 void CListView::RemoveImageList(int) 5227 void CTreeCtrl::RemoveImageList(int) 5228 void CTreeView::RemoveImageList(int) 5229 void COleDocument::RemoveItem(CDocItem *) 5230 int CMapPtrToPtr::RemoveKey(void *) 5231 int CMapPtrToWord::RemoveKey(void *) 5232 int CMapStringToOb::RemoveKey(char const *) 5233 int CMapStringToPtr::RemoveKey(char const *) 5234 int CMapStringToString::RemoveKey(char const *) 5235 int CMapWordToOb::RemoveKey(unsigned short) 5236 int CMapWordToPtr::RemoveKey(unsigned short) 5237 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5238 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5239 void CPropertySheet::RemovePage(int) 5240 void CPropertySheet::RemovePage(CPropertyPage *) 5241 void CDockBar::RemovePlaceHolder(CControlBar *) 5242 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5243 void CDataBoundProperty::RemoveSource() 5244 CObject * CObList::RemoveTail() 5245 void * CPtrList::RemoveTail() 5246 ATL::CStringT > > CStringList::RemoveTail() 5247 void CDocument::RemoveView(CView *) 5248 void CFile::Rename(char const *,char const *) 5249 int CFtpConnection::Rename(char const *,char const *) 5250 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5251 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5252 void CDatabase::ReplaceBrackets(char *) 5253 int CException::ReportError(unsigned int,unsigned int) 5254 int COleClientItem::ReportError(long)const 5255 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5256 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5257 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5258 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5259 int CRecordset::Requery() 5260 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5261 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5262 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5263 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5264 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5265 void COleServerDoc::RequestPositionChange(tagRECT const *) 5266 long COleControlSite::XOleIPSite::RequestUIActivate() 5267 long CEnumArray::XEnumVOID::Reset() 5268 void CRecordset::ResetCursor() 5269 void CCachedDataPathProperty::ResetData() 5270 void CDataPathProperty::ResetData() 5271 void COleControl::ResetStockProps() 5272 void CControlBar::ResetTimer(unsigned int,unsigned int) 5273 void COleControl::ResetVersion(unsigned long) 5274 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5275 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5276 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5277 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5278 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5279 void COleControl::ResizeFrameWindow(int,int) 5280 void COleSafeArray::ResizeOneDim(unsigned long) 5281 void COleControl::ResizeOpenControl(int,int) 5282 void CScrollView::ResizeParentToFit(int) 5283 int CDC::RestoreDC(int) 5284 int CPreviewDC::RestoreDC(int) 5285 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 5286 void CCmdTarget::RestoreWaitCursor() 5287 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5288 long CArchiveStream::Revert() 5289 void COleDropTarget::Revoke() 5290 void COleLinkingDoc::Revoke() 5291 void COleMessageFilter::Revoke() 5292 void COleObjectFactory::Revoke() 5293 void COleObjectFactory::RevokeAll() 5294 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 5295 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 5296 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 5297 void RFX_Bool(CFieldExchange *,char const *,int &) 5298 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 5299 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 5300 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 5301 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 5302 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 5303 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 5304 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 5305 void RFX_Double(CFieldExchange *,char const *,double &) 5306 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 5307 void RFX_Int(CFieldExchange *,char const *,int &) 5308 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 5309 void RFX_Long(CFieldExchange *,char const *,long &) 5310 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 5311 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 5312 void RFX_Single(CFieldExchange *,char const *,float &) 5313 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 5314 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5315 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5316 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 5317 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 5318 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 5319 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 5320 int CDatabase::Rollback() 5321 void COleClientItem::Run() 5322 int CWinApp::Run() 5323 int CWinThread::Run() 5324 int CWinApp::RunAutomated() 5325 int CWinApp::RunEmbedded() 5326 int CWnd::RunModalLoop(unsigned long) 5327 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5328 int CEditView::SameAsSelected(char const *,int) 5329 int CRichEditView::SameAsSelected(char const *,int,int) 5330 long CBlobProperty::Save(IStream *,int) 5331 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 5332 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5333 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5334 long COleControl::XPersistStorage::Save(IStorage *,int) 5335 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5336 long COleControl::XPersistStreamInit::Save(IStream *,int) 5337 int CDocManager::SaveAllModified() 5338 int CDocTemplate::SaveAllModified() 5339 int CWinApp::SaveAllModified() 5340 void CFrameWnd::SaveBarState(char const *)const 5341 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 5342 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5343 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5344 int CDC::SaveDC() 5345 int CPreviewDC::SaveDC() 5346 void COleServerDoc::SaveEmbedding() 5347 int CFormView::SaveFocusControl() 5348 int CDocument::SaveModified() 5349 int COleDocument::SaveModified() 5350 int COleServerDoc::SaveModified() 5351 int COleServerDoc::SaveModifiedPrompt() 5352 long COleClientItem::XOleClientSite::SaveObject() 5353 long COleControlSite::XOleClientSite::SaveObject() 5354 int CControlBarInfo::SaveState(char const *,int) 5355 void CDockState::SaveState(char const *) 5356 long COleControl::SaveState(IStream *) 5357 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 5358 void CWinApp::SaveStdProfileSettings() 5359 void COleDocument::SaveToStorage(CObject *) 5360 void COleLinkingDoc::SaveToStorage(CObject *) 5361 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5362 void CDockState::ScalePoint(CPoint &) 5363 void CDockState::ScaleRectPos(CRect &) 5364 CSize CDC::ScaleViewportExt(int,int,int,int) 5365 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5366 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5367 CSize CDC::ScaleWindowExt(int,int,int,int) 5368 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5369 void CWnd::ScreenToClient(tagRECT *)const 5370 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5371 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5372 void COleControlContainer::ScrollChildren(int,int) 5373 int COleServerDoc::ScrollContainerBy(CSize) 5374 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 5375 void CScrollView::ScrollToDevicePosition(tagPOINT) 5376 void CScrollView::ScrollToPosition(tagPOINT) 5377 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5378 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5379 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5380 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5381 unsigned __int64 CFile::Seek(__int64,unsigned int) 5382 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 5383 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 5384 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 5385 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 5386 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 5387 CFont * CFontHolder::Select(CDC *,long,long) 5388 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 5389 int CDC::SelectClipPath(int) 5390 int CDC::SelectClipRgn(CRgn *) 5391 int CDC::SelectClipRgn(CRgn *,int) 5392 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5393 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5394 long CPrintDialogEx::SelectionChange() 5395 int CDC::SelectObject(CRgn *) 5396 CBrush * CDC::SelectObject(CBrush *) 5397 CPen * CDC::SelectObject(CPen *) 5398 CFont * CDC::SelectObject(CFont *) 5399 CFont * CPreviewDC::SelectObject(CFont *) 5400 CPalette * CDC::SelectPalette(CPalette *,int) 5401 void CWinApp::SelectPrinter(void *,void *,int) 5402 CFont * COleControl::SelectStockFont(CDC *) 5403 CGdiObject * CDC::SelectStockObject(int) 5404 CGdiObject * CPreviewDC::SelectStockObject(int) 5405 int CAsyncSocket::Send(void const *,int,int) 5406 int CSocket::Send(void const *,int,int) 5407 void COleControl::SendAdvise(unsigned int) 5408 int CWnd::SendChildNotifyLastMsg(long *) 5409 int CSocket::SendChunk(void const *,int,int) 5410 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5411 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5412 void CDocument::SendInitialUpdate() 5413 void CRecordset::SendLongBinaryData(void *) 5414 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5415 void COleControlSite::SendMnemonic(tagMSG *) 5416 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 5417 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 5418 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 5419 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 5420 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 5421 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5422 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5423 void CByteArray::Serialize(CArchive &) 5424 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5425 void CDocItem::Serialize(CArchive &) 5426 void CDockState::Serialize(CArchive &) 5427 void CDWordArray::Serialize(CArchive &) 5428 void CEditView::Serialize(CArchive &) 5429 void CMapStringToOb::Serialize(CArchive &) 5430 void CMapStringToString::Serialize(CArchive &) 5431 void CMapWordToOb::Serialize(CArchive &) 5432 void CObArray::Serialize(CArchive &) 5433 void CObList::Serialize(CArchive &) 5434 void COleClientItem::Serialize(CArchive &) 5435 void COleControl::Serialize(CArchive &) 5436 void COleDocument::Serialize(CArchive &) 5437 void CRichEditDoc::Serialize(CArchive &) 5438 void CRichEditView::Serialize(CArchive &) 5439 void CStringArray::Serialize(CArchive &) 5440 void CStringList::Serialize(CArchive &) 5441 void CWordArray::Serialize(CArchive &) 5442 CArchive & ATL::CTime::Serialize64(CArchive &) 5443 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 5444 void CArchive::SerializeClass(CRuntimeconst *) 5445 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 5446 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 5447 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 5448 void SerializeElements(CArchive &,COleVariant *,int) 5449 void COleControl::SerializeExtent(CArchive &) 5450 void CEditView::SerializeRaw(CArchive &) 5451 void COleControl::SerializeStockProps(CArchive &) 5452 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5453 int CProperty::Set(unsigned long,void * const,unsigned long) 5454 int CProperty::Set(void * const) 5455 int CProperty::Set(void * const,unsigned long) 5456 int CPropertySection::Set(unsigned long,void *) 5457 int CPropertySection::Set(unsigned long,void *,unsigned long) 5458 int CPropertySet::Set(_GUID,unsigned long,void *) 5459 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5460 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5461 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5462 int CPropertySheet::SetActivePage(int) 5463 int CPropertySheet::SetActivePage(CPropertyPage *) 5464 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5465 void CFrameWnd::SetActiveView(CView *,int) 5466 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5467 void COleControl::SetAppearance(short) 5468 int CDC::SetArcDirection(int) 5469 void CByteArray::SetAtGrow(int,unsigned char) 5470 void CDWordArray::SetAtGrow(int,unsigned long) 5471 void CObArray::SetAtGrow(int,CObject *) 5472 void CPtrArray::SetAtGrow(int,void *) 5473 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 5474 void CStringArray::SetAtGrow(int,char const *) 5475 void CUIntArray::SetAtGrow(int,unsigned int) 5476 void CWordArray::SetAtGrow(int,unsigned short) 5477 void CDC::SetAttribDC(HDC__ *) 5478 void CMetaFileDC::SetAttribDC(HDC__ *) 5479 void CPreviewDC::SetAttribDC(HDC__ *) 5480 void COleControl::SetBackColor(unsigned long) 5481 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5482 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5483 void CControlBar::SetBarStyle(unsigned long) 5484 int CToolBar::SetBitmap(HBITMAP__ *) 5485 unsigned long CDC::SetBkColor(unsigned long) 5486 unsigned long CPreviewDC::SetBkColor(unsigned long) 5487 int CListCtrl::SetBkImage(char *,int,int,int) 5488 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 5489 int CDC::SetBkMode(int) 5490 void CRecordset::SetBookmark(CDBVariant const &) 5491 void CControlBar::SetBorders(int,int,int,int) 5492 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5493 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5494 void COleControl::SetBorderStyle(short) 5495 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5496 int CToolBar::SetButtons(unsigned int const *,int) 5497 void CToolBar::SetButtonStyle(int,unsigned int) 5498 int CToolBar::SetButtonText(int,char const *) 5499 CWnd * COleControl::SetCapture() 5500 long COleControlSite::XOleIPSite::SetCapture(int) 5501 void CRichEditView::SetCharFormat(CHARFORMAT2A) 5502 void CCheckListBox::SetCheck(int,int) 5503 void CCmdUI::SetCheck(int) 5504 int CListCtrl::SetCheck(int,int) 5505 void COleCmdUI::SetCheck(int) 5506 void CStatusCmdUI::SetCheck(int) 5507 void CTestCmdUI::SetCheck(int) 5508 void CToolCmdUI::SetCheck(int) 5509 int CTreeCtrl::SetCheck(_TREEITEM *,int) 5510 void CCheckListBox::SetCheckStyle(unsigned int) 5511 void CPropertySet::SetClassID(_GUID) 5512 void CDataBoundProperty::SetClientSite(COleControlSite *) 5513 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5514 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5515 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5516 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5517 void COleDataSource::SetClipboard() 5518 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5519 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 5520 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5521 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5522 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5523 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5524 void CSplitterWnd::SetColumnInfo(int,int,int) 5525 int CListCtrl::SetColumnOrderArray(int,int *) 5526 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5527 void CDocTemplate::SetContainerInfo(unsigned int) 5528 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5529 void CReflectorWnd::SetControl(COleControl *) 5530 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 5531 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 5532 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 5533 int COleControl::SetControlSize(int,int) 5534 int COlePropertyPage::SetControlStatus(unsigned int,int) 5535 void CFileDialog::SetControlText(int,char const *) 5536 int CInternetSession::SetCookie(char const *,char const *,char const *) 5537 void COleCurrency::SetCurrency(long,long) 5538 void CColorDialog::SetCurrentColor(unsigned long) 5539 int CFtpConnection::SetCurrentDirectoryA(char const *) 5540 void CWinApp::SetCurrentHandles() 5541 void CPreviewView::SetCurrentPage(unsigned int,int) 5542 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 5543 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 5544 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5545 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5546 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5547 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5548 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5549 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5550 int CMonthCalCtrl::SetDayState(int,unsigned long *) 5551 void COccManager::SetDefaultButton(CWnd *,int) 5552 void COleControlSite::SetDefaultButton(int) 5553 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 5554 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 5555 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5556 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5557 void CFileDialog::SetDefExt(char const *) 5558 void COlePropertyPage::SetDialogResource(void *) 5559 void CRecordset::SetDirtyFieldStatus(unsigned long) 5560 int COleControlSite::SetDlgCtrlID(int) 5561 int CWnd::SetDlgCtrlID(int) 5562 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5563 void CWnd::SetDlgItemInt(int,unsigned int,int) 5564 void COleControlContainer::SetDlgItemTextA(int,char const *) 5565 void CWnd::SetDlgItemTextA(int,char const *) 5566 void CFrameWnd::SetDockState(CDockState const &) 5567 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5568 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5569 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5570 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5571 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 5572 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 5573 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 5574 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 5575 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 5576 void COleControl::SetEnabled(int) 5577 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5578 int COleControlSite::SetExtent() 5579 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5580 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5581 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5582 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5583 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 5584 void CRecordset::SetFieldDirty(void *,int) 5585 void CRecordset::SetFieldNull(void *,int) 5586 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5587 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 5588 CWnd * COleControl::SetFocus() 5589 CWnd * COleControlSite::SetFocus(tagMSG *) 5590 CWnd * COleControlSite::SetFocus() 5591 CWnd * CWnd::SetFocus() 5592 long COleControlSite::XOleIPSite::SetFocus(int) 5593 void CDHtmlDialog::SetFocusToElement(char const *) 5594 int CDialogTemplate::SetFont(char const *,unsigned short) 5595 void CFontHolder::SetFont(IFont *) 5596 void COleControl::SetFont(IFontDisp *) 5597 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 5598 void COleControl::SetForeColor(unsigned long) 5599 void CPropertySection::SetFormatID(_GUID) 5600 void CPropertySet::SetFormatVersion(unsigned short) 5601 void CSharedFile::SetHandle(void *,int) 5602 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 5603 void CToolBar::SetHeight(int) 5604 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5605 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 5606 void CDHtmlDialog::SetHostFlags(unsigned long) 5607 void COleClientItem::SetHostNames(char const *,char const *) 5608 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5609 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5610 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5611 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5612 int COleClientItem::SetIconicMetafile(void *) 5613 CSize CListCtrl::SetIconSpacing(int,int) 5614 CSize CListCtrl::SetIconSpacing(CSize) 5615 void CProperty::SetID(unsigned long) 5616 int CReBarCtrl::SetImageList(CImageList *) 5617 int CStatusBar::SetIndicators(unsigned int const *,int) 5618 void COleControl::SetInitialDataFormats() 5619 long CDocObjectServer::XPrint::SetInitialPageNum(long) 5620 void COleControl::SetInitialSize(int,int) 5621 void CControlBar::SetInPlaceOwner(CWnd *) 5622 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 5623 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 5624 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 5625 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 5626 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 5627 int CListCtrl::SetItemCountEx(int,unsigned long) 5628 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 5629 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 5630 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 5631 int CListCtrl::SetItemText(int,int,char const *) 5632 unsigned long CDC::SetLayout(unsigned long) 5633 void CFile::SetLength(unsigned __int64) 5634 void CInternetFile::SetLength(unsigned __int64) 5635 void CMemFile::SetLength(unsigned __int64) 5636 void COleStreamFile::SetLength(unsigned __int64) 5637 void CSocketFile::SetLength(unsigned __int64) 5638 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 5639 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 5640 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 5641 void CRecordset::SetLockingMode(unsigned int) 5642 int CDC::SetMapMode(int) 5643 int CPreviewDC::SetMapMode(int) 5644 unsigned long CDC::SetMapperFlags(unsigned long) 5645 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5646 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5647 void CFrameWnd::SetMessageText(unsigned int) 5648 void CFrameWnd::SetMessageText(char const *) 5649 void CPropertyPage::SetModified(int) 5650 void COleControl::SetModifiedFlag(int) 5651 void COlePropertyPage::SetModifiedFlag(int) 5652 void CRichEditDoc::SetModifiedFlag(int) 5653 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 5654 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 5655 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 5656 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 5657 int CPropertySection::SetName(unsigned long,char const *) 5658 void COleControl::SetNotPermitted() 5659 void CCmdTarget::SetNotSupported() 5660 void COleControl::SetNotSupported() 5661 void CRecordset::SetNullFieldStatus(unsigned long) 5662 void CRecordset::SetNullParamStatus(unsigned long) 5663 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5664 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5665 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 5666 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5667 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5668 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5669 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5670 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 5671 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 5672 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 5673 int CHeaderCtrl::SetOrderArray(int,int *) 5674 void CPropertySet::SetOSVersion(unsigned long) 5675 void CDC::SetOutputDC(HDC__ *) 5676 void CMetaFileDC::SetOutputDC(HDC__ *) 5677 void CPreviewDC::SetOutputDC(HDC__ *) 5678 void CToolBar::SetOwner(CWnd *) 5679 void COlePropertyPage::SetPageName(char const *) 5680 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 5681 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 5682 void CStatusBar::SetPaneStyle(int,unsigned int) 5683 int CStatusBar::SetPaneText(int,char const *,int) 5684 int CRichEditCtrl::SetParaFormat(_paraformat &) 5685 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 5686 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 5687 void CRecordset::SetParamNull(int,int) 5688 void CDocument::SetPathName(char const *,int) 5689 void COleDocument::SetPathName(char const *,int) 5690 void CRichEditDoc::SetPathName(char const *,int) 5691 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 5692 int CDC::SetPolyFillMode(int) 5693 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 5694 int COleClientItem::SetPrintDevice(tagPDA const *) 5695 void CEditView::SetPrinterFont(CFont *) 5696 int CPreviewView::SetPrintView(CView *) 5697 int COlePropertyPage::SetPropCheck(char const *,int) 5698 void COleControlSite::SetProperty(long,unsigned short,...) 5699 void COleDispatchDriver::SetProperty(long,unsigned short,...) 5700 void CWnd::SetProperty(long,unsigned short,...) 5701 void COleControlSite::SetPropertyV(long,unsigned short,char *) 5702 int COlePropertyPage::SetPropIndex(char const *,int) 5703 int COlePropertyPage::SetPropRadio(char const *,int) 5704 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 5705 int COlePropertyPage::SetPropText(char const *,unsigned char &) 5706 int COlePropertyPage::SetPropText(char const *,short &) 5707 int COlePropertyPage::SetPropText(char const *,int &) 5708 int COlePropertyPage::SetPropText(char const *,unsigned int &) 5709 int COlePropertyPage::SetPropText(char const *,long &) 5710 int COlePropertyPage::SetPropText(char const *,unsigned long &) 5711 int COlePropertyPage::SetPropText(char const *,float &) 5712 int COlePropertyPage::SetPropText(char const *,double &) 5713 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 5714 long CWnd::SetProxy(IAccessibleProxy *) 5715 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 5716 void CCmdUI::SetRadio(int) 5717 void CTestCmdUI::SetRadio(int) 5718 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5719 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5720 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5721 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5722 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5723 void CSliderCtrl::SetRange(int,int,int) 5724 int CInternetFile::SetReadBufferSize(unsigned int) 5725 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 5726 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 5727 int COleControl::SetRectInContainer(tagRECT const *) 5728 void CWinApp::SetRegistryKey(unsigned int) 5729 void CWinApp::SetRegistryKey(char const *) 5730 int CDC::SetROP2(int) 5731 void CSplitterWnd::SetRowInfo(int,int,int) 5732 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 5733 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 5734 void CRecordset::SetRowsetSize(unsigned long) 5735 void CPreviewView::SetScaledSize(unsigned int) 5736 void CPreviewDC::SetScaleRatio(int,int) 5737 void CScrollView::SetScaleToFitSize(tagSIZE) 5738 void CDockState::SetScreenSize(CSize &) 5739 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 5740 int CWnd::SetScrollPos(int,int,int) 5741 void CWnd::SetScrollRange(int,int,int,int) 5742 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 5743 void CSplitterWnd::SetScrollStyle(unsigned long) 5744 int CPropertySection::SetSectionName(char const *) 5745 void CRichEditCtrl::SetSel(long,long) 5746 void CSliderCtrl::SetSelection(int,int) 5747 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 5748 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 5749 void CCheckListBox::SetSelectionCheck(int) 5750 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 5751 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 5752 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5753 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 5754 long CPrintDialogEx::SetSite(IUnknown *) 5755 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 5756 void CByteArray::SetSize(int,int) 5757 void CDWordArray::SetSize(int,int) 5758 void CObArray::SetSize(int,int) 5759 void CPtrArray::SetSize(int,int) 5760 void CStringArray::SetSize(int,int) 5761 void CUIntArray::SetSize(int,int) 5762 void CWordArray::SetSize(int,int) 5763 void CToolBar::SetSizes(tagSIZE,tagSIZE) 5764 void CSplitterWnd::SetSplitCursor(int) 5765 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 5766 void CRecordset::SetState(int,char const *,unsigned long) 5767 void CFile::SetStatus(char const *,CFileStatus const &) 5768 int CControlBar::SetStatusText(int) 5769 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 5770 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 5771 int CDC::SetStretchBltMode(int) 5772 void COleVariant::SetString(char const *,unsigned short) 5773 int CDialogTemplate::SetSystemFont(unsigned short) 5774 void CEditView::SetTabStops(int) 5775 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 5776 void CFileDialog::SetTemplate(char const *,char const *) 5777 void CCmdUI::SetText(char const *) 5778 void COleCmdUI::SetText(char const *) 5779 void COleControl::SetText(char const *) 5780 void CStatusCmdUI::SetText(char const *) 5781 void CTestCmdUI::SetText(char const *) 5782 void CToolCmdUI::SetText(char const *) 5783 unsigned int CDC::SetTextAlign(unsigned int) 5784 int CDC::SetTextCharacterExtra(int) 5785 unsigned long CDC::SetTextColor(unsigned long) 5786 unsigned long CPreviewDC::SetTextColor(unsigned long) 5787 int CDC::SetTextJustification(int,int) 5788 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 5789 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 5790 int CDateTimeCtrl::SetTime(ATL::CTime const *) 5791 void CDocument::SetTitle(char const *) 5792 void CPropertySheet::SetTitle(char const *,unsigned int) 5793 void CRichEditDoc::SetTitle(char const *) 5794 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 5795 void CMonthCalCtrl::SetToday(ATL::CTime const *) 5796 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 5797 void CPreviewDC::SetTopLeftOffset(CSize) 5798 void CProperty::SetType(unsigned long) 5799 void CRecordset::SetUpdateMethod() 5800 void CThreadSlotData::SetValue(int,void *) 5801 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 5802 CSize CDC::SetViewportExt(int,int) 5803 CSize CMetaFileDC::SetViewportExt(int,int) 5804 CSize CPreviewDC::SetViewportExt(int,int) 5805 CPoint CDC::SetViewportOrg(int,int) 5806 CPoint CMetaFileDC::SetViewportOrg(int,int) 5807 CPoint CPreviewDC::SetViewportOrg(int,int) 5808 CSize CDC::SetWindowExt(int,int) 5809 CSize CPreviewDC::SetWindowExt(int,int) 5810 CPoint CDC::SetWindowOrg(int,int) 5811 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 5812 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 5813 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 5814 void COleControlSite::SetWindowTextA(char const *) 5815 void CWnd::SetWindowTextA(char const *) 5816 int CRichEditCtrl::SetWordCharFormat(_charformat &) 5817 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 5818 int CInternetFile::SetWriteBufferSize(unsigned int) 5819 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 5820 long CDocObjectServer::XOleDocumentView::Show(int) 5821 long COlePropertyPage::XPropertyPage::Show(unsigned int) 5822 void CDockBar::ShowAll(int) 5823 long CRichEditCntrItem::ShowContainerUI(int) 5824 long CRichEditView::ShowContainerUI(int) 5825 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 5826 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5827 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5828 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5829 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 5830 long COleClientItem::XOleClientSite::ShowObject() 5831 long COleControlSite::XOleClientSite::ShowObject() 5832 void CFrameWnd::ShowOwnedWindows(int) 5833 long COleControlSite::XOleControlSite::ShowPropertyFrame() 5834 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5835 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5836 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5837 int COleControlSite::ShowWindow(int) 5838 int CWnd::ShowWindow(int) 5839 tagSIZE const CScrollView::sizeDefault 5840 int CMonthCalCtrl::SizeMinReq(int) 5841 void CBitmapButton::SizeToContent() 5842 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 5843 long CEnumArray::XEnumVOID::Skip(unsigned long) 5844 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 5845 int CAsyncSocket::Socket(int,long,int,int) 5846 int CSplitterWnd::SplitColumn(int) 5847 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 5848 int CSplitterWnd::SplitRow(int) 5849 int CDC::StartDocA(char const *) 5850 void CDockContext::StartDrag(CPoint) 5851 void CDockContext::StartResize(int,CPoint) 5852 void CSplitterWnd::StartTracking(int) 5853 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 5854 void CSplitterWnd::StopTracking(int) 5855 void CRuntimeClass::Store(CArchive &)const 5856 void CRecordset::StoreFields() 5857 void CRichEditView::Stream(CArchive &,int) 5858 void CDockContext::Stretch(CPoint) 5859 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 5860 int CWnd::SubclassWindow(HWND__ *) 5861 int COleDocObjectItem::SupportsIPrint() 5862 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5863 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5864 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 5865 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 5866 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 5867 void CRichEditView::TextNotFound(char const *) 5868 int CMetaFileDC::TextOutA(int,int,char const *,int) 5869 int CPreviewDC::TextOutA(int,int,char const *,int) 5870 void CFileException::ThrowErrno(int,char const *) 5871 void COleControl::ThrowError(long,unsigned int,unsigned int) 5872 void COleControl::ThrowError(long,char const *,unsigned int) 5873 void CFileException::ThrowOsError(long,char const *) 5874 void CDockContext::ToggleDocking() 5875 COleVariant CDataSourceControl::ToVariant(int) 5876 int CDockContext::Track() 5877 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 5878 void CSplitterWnd::TrackColumnSize(int,int) 5879 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 5880 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 5881 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 5882 void CSplitterWnd::TrackRowSize(int,int) 5883 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 5884 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 5885 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 5886 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 5887 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 5888 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 5889 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 5890 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 5891 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 5892 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 5893 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 5894 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 5895 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 5896 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5897 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5898 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5899 long CDocObjectServer::XOleDocumentView::UIActivate(int) 5900 void COccManager::UIActivateControl(CWnd *) 5901 long COleControl::XOleInPlaceObject::UIDeactivate() 5902 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 5903 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 5904 void COleSafeArray::UnaccessData() 5905 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 5906 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 5907 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 5908 long COleControl::XOleObject::Unadvise(unsigned long) 5909 long COleServerDoc::XOleObject::Unadvise(unsigned long) 5910 long COleServerItem::XOleObject::Unadvise(unsigned long) 5911 void CRecordset::UnbindFieldsForUpdate() 5912 long COleControl::XOleCache::Uncache(unsigned long) 5913 long COleControl::XViewObject::Unfreeze(unsigned long) 5914 int CEvent::Unlock() 5915 int CMultiLock::Unlock(long,long *) 5916 int CMultiLock::Unlock() 5917 int CMutex::Unlock() 5918 void COleSafeArray::Unlock() 5919 int CSemaphore::Unlock(long,long *) 5920 int CSingleLock::Unlock(long,long *) 5921 int CSingleLock::Unlock() 5922 void CTypeLibCache::Unlock() 5923 void CEditView::UnlockBuffer()const 5924 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 5925 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 5926 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 5927 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 5928 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 5929 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 5930 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5931 int COleObjectFactory::Unregister() 5932 int COleTemplateServer::Unregister() 5933 int CWinApp::Unregister() 5934 int COleObjectFactory::UnregisterAll() 5935 void CDocManager::UnregisterShellFileTypes() 5936 void CWinApp::UnregisterShellFileTypes() 5937 HWND__ * CWnd::UnsubclassWindow() 5938 int CRecordset::Update() 5939 long CDocObjectServer::XOleObject::Update() 5940 long COleControl::XOleObject::Update() 5941 long COleServerDoc::XOleObject::Update() 5942 long COleServerItem::XOleObject::Update() 5943 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 5944 void CStatusBar::UpdateAllPanes(int,int) 5945 void CDocument::UpdateAllViews(CView *,long,CObject *) 5946 void CScrollView::UpdateBars() 5947 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 5948 long CDataSourceControl::UpdateControls() 5949 long CDataSourceControl::UpdateCursor() 5950 int CWnd::UpdateData(int) 5951 void CWnd::UpdateDialogControls(CCmdTarget *,int) 5952 void CDocument::UpdateFrameCounts() 5953 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 5954 int CRecordset::UpdateInsertDelete() 5955 void COleClientItem::UpdateItemType() 5956 int COleClientItem::UpdateLink() 5957 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 5958 void CRecentFileList::UpdateMenu(CCmdUI *) 5959 void COleDocument::UpdateModifiedFlag() 5960 void CRichEditDoc::UpdateModifiedFlag() 5961 void CRichEditDoc::UpdateObjectCache() 5962 void CWinApp::UpdatePrinterSelection(int) 5963 int COleObjectFactory::UpdateRegistry(int) 5964 void COleObjectFactory::UpdateRegistry(char const *) 5965 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 5966 int COleObjectFactory::UpdateRegistryAll(int) 5967 void CDockContext::UpdateState(int *,int) 5968 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 5969 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 5970 long CBrowserControlSite::UpdateUI() 5971 long CDHtmlDialog::UpdateUI() 5972 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 5973 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 5974 void COleLinkingDoc::UpdateVisibleLock(int,int) 5975 void CDatabase::VerifyConnect() 5976 unsigned long CRecordset::VerifyCursorSupport() 5977 void CRecordset::VerifyDriverBehavior() 5978 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 5979 int COleObjectFactory::VerifyUserLicense() 5980 int CListBox::VKeyToItem(unsigned int,unsigned int) 5981 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 5982 int COleControl::WillAmbientsBeValidDuringLoad() 5983 long CControlBar::WindowProc(unsigned int,unsigned int,long) 5984 long COleControl::WindowProc(unsigned int,unsigned int,long) 5985 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 5986 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 5987 long CReBar::WindowProc(unsigned int,unsigned int,long) 5988 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 5989 long CWnd::WindowProc(unsigned int,unsigned int,long) 5990 void CWinApp::WinHelpA(unsigned long,unsigned int) 5991 void CWnd::WinHelpA(unsigned long,unsigned int) 5992 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 5993 void CWnd::WinHelpInternal(unsigned long,unsigned int) 5994 CWnd const CWnd::wndBottom 5995 CWnd const CWnd::wndNoTopMost 5996 CWnd const CWnd::wndTop 5997 CWnd const CWnd::wndTopMost 5998 void CRichEditView::WrapChanged() 5999 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6000 void CArchive::Write(void const *,unsigned int) 6001 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6002 void CFile::Write(void const *,unsigned int) 6003 void CGopherFile::Write(void const *,unsigned int) 6004 int CImageList::Write(CArchive *) 6005 void CInternetFile::Write(void const *,unsigned int) 6006 void CMemFile::Write(void const *,unsigned int) 6007 void COleStreamFile::Write(void const *,unsigned int) 6008 void CSocketFile::Write(void const *,unsigned int) 6009 void CStdioFile::Write(void const *,unsigned int) 6010 void CArchive::WriteClass(CRuntimeconst *) 6011 void CArchive::WriteCount(unsigned long) 6012 void COleClientItem::WriteItem(CArchive &) 6013 void COleClientItem::WriteItemCompound(CArchive &) 6014 void COleClientItem::WriteItemFlat(CArchive &) 6015 void CRecentFileList::WriteList() 6016 int CPropertySection::WriteNameDictToStream(IStream *) 6017 void CArchive::WriteObject(CObject const *) 6018 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 6019 int CWinApp::WriteProfileInt(char const *,char const *,int) 6020 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 6021 void CArchive::WriteString(char const *) 6022 void CGopherFile::WriteString(char const *) 6023 void CInternetFile::WriteString(char const *) 6024 void CStdioFile::WriteString(char const *) 6025 void CEditView::WriteToArchive(CArchive &) 6026 int CProperty::WriteToStream(IStream *) 6027 int CPropertySection::WriteToStream(IStream *) 6028 int CPropertySet::WriteToStream(IStream *) 6029 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 6030 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 6031 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 6032 int AfxInitRichEdit2() 6033 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 6034 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 6035 CDaoException::CDaoException() 6036 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 6037 CDaoIndexInfo::CDaoIndexInfo() 6038 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 6039 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 6040 CDaoRecordView::CDaoRecordView(unsigned int) 6041 CDaoRecordView::CDaoRecordView(char const *) 6042 CDaoRelationInfo::CDaoRelationInfo() 6043 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 6044 CDaoWorkspace::CDaoWorkspace() 6045 CDaoDatabase::~CDaoDatabase() 6046 CDaoException::~CDaoException() 6047 CDaoIndexInfo::~CDaoIndexInfo() 6048 CDaoQueryDef::~CDaoQueryDef() 6049 CDaoRecordset::~CDaoRecordset() 6050 CDaoRecordView::~CDaoRecordView() 6051 CDaoRelationInfo::~CDaoRelationInfo() 6052 CDaoTableDef::~CDaoTableDef() 6053 CDaoWorkspace::~CDaoWorkspace() 6054 void CDaoRecordset::AddNew() 6055 void AfxDaoCheck(long,char const *,char const *,int,int,int) 6056 _DAODBEngine * AfxDaoGetEngine() 6057 void AfxDaoInit() 6058 void AfxDaoTerm() 6059 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 6060 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 6061 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 6062 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6063 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 6064 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 6065 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 6066 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 6067 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6068 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 6069 void AfxThrowDaoException(int,long) 6070 void CDaoRecordset::AllocCache() 6071 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 6072 void CDaoRecordset::AllocDatabase() 6073 void AllocLongBinary(CLongBinary &,unsigned long) 6074 void CDaoQueryDef::Append() 6075 void CDaoTableDef::Append() 6076 void CDaoWorkspace::Append() 6077 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 6078 void CDaoWorkspace::BeginTrans() 6079 void CDaoRecordset::BindFields() 6080 void CDaoRecordset::BindParameters() 6081 void CDaoRecordset::BuildParameterList() 6082 void CDaoRecordset::BuildSelectList() 6083 void CDaoRecordset::BuildSQL() 6084 int CDaoRecordset::CanAppend()const 6085 int CDaoRecordset::CanBookmark() 6086 void CDaoRecordset::CancelUpdate() 6087 int CDaoRecordset::CanRestart() 6088 int CDaoRecordset::CanScroll()const 6089 int CDaoDatabase::CanTransact() 6090 int CDaoRecordset::CanTransact() 6091 int CDaoDatabase::CanUpdate() 6092 int CDaoQueryDef::CanUpdate() 6093 int CDaoRecordset::CanUpdate()const 6094 int CDaoTableDef::CanUpdate() 6095 CRuntimeconst CDaoDatabase::classCDaoDatabase 6096 CRuntimeconst CDaoException::classCDaoException 6097 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 6098 CRuntimeconst CDaoRecordset::classCDaoRecordset 6099 CRuntimeconst CDaoRecordView::classCDaoRecordView 6100 CRuntimeconst CDaoTableDef::classCDaoTableDef 6101 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 6102 CRuntimeconst CDatabase::classCDatabase 6103 CRuntimeconst CDBException::classCDBException 6104 CRuntimeconst CLongBinary::classCLongBinary 6105 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6106 CRuntimeconst CRecordset::classCRecordset 6107 CRuntimeconst CRecordView::classCRecordView 6108 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 6109 void CDaoRecordset::ClearFieldStatusFlags() 6110 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 6111 void CDaoDatabase::Close() 6112 void CDaoQueryDef::Close() 6113 void CDaoRecordset::Close() 6114 void CDaoTableDef::Close() 6115 void CDaoWorkspace::Close() 6116 void CDaoWorkspace::CommitTrans() 6117 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 6118 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 6119 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 6120 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 6121 void CDaoDatabase::Create(char const *,char const *,int) 6122 void CDaoQueryDef::Create(char const *,char const *) 6123 void CDaoTableDef::Create(char const *,long,char const *,char const *) 6124 void CDaoWorkspace::Create(char const *,char const *,char const *) 6125 void CDaoTableDef::CreateField(CDaoFieldInfo &) 6126 void CDaoTableDef::CreateField(char const *,short,long,long) 6127 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 6128 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 6129 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 6130 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6131 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6132 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6133 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 6134 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6135 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6136 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6137 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 6138 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 6139 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6140 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 6141 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 6142 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 6143 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 6144 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 6145 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 6146 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 6147 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6148 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 6149 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 6150 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 6151 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 6152 void CDaoRecordset::Delete() 6153 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 6154 void CDaoTableDef::DeleteField(int) 6155 void CDaoTableDef::DeleteField(char const *) 6156 void CDaoTableDef::DeleteIndex(int) 6157 void CDaoTableDef::DeleteIndex(char const *) 6158 void CDaoDatabase::DeleteQueryDef(char const *) 6159 void CDaoDatabase::DeleteRelation(char const *) 6160 void CDaoDatabase::DeleteTableDef(char const *) 6161 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 6162 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 6163 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 6164 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 6165 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 6166 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 6167 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 6168 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 6169 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 6170 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 6171 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 6172 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 6173 void CDaoRecordset::Edit() 6174 void CDaoDatabase::Execute(char const *,int) 6175 void CDaoQueryDef::Execute(int) 6176 void CDaoRecordset::FillCache(long *,COleVariant *) 6177 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 6178 void CDaoException::FillErrorInfo() 6179 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 6180 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 6181 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 6182 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 6183 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 6184 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 6185 int CDaoRecordset::Find(long,char const *) 6186 int CDaoRecordset::FindFirst(char const *) 6187 int CDaoRecordset::FindLast(char const *) 6188 int CDaoRecordset::FindNext(char const *) 6189 int CDaoRecordset::FindPrev(char const *) 6190 void CDaoRecordset::Fixup() 6191 void CDaoRecordset::FreeCache() 6192 long CDaoRecordset::GetAbsolutePosition() 6193 long CDaoTableDef::GetAttributes() 6194 COleVariant CDaoRecordset::GetBookmark() 6195 long CDaoRecordset::GetCacheSize() 6196 COleVariant CDaoRecordset::GetCacheStart() 6197 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 6198 ATL::CStringT > > CDaoDatabase::GetConnect() 6199 ATL::CStringT > > CDaoQueryDef::GetConnect() 6200 ATL::CStringT > > CDaoTableDef::GetConnect() 6201 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 6202 void CDaoRecordset::GetDataAndFixupNulls() 6203 short CDaoWorkspace::GetDatabaseCount() 6204 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 6205 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 6206 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 6207 ATL::COleDateTime CDaoRecordset::GetDateCreated() 6208 ATL::COleDateTime CDaoTableDef::GetDateCreated() 6209 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 6210 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 6211 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 6212 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 6213 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 6214 short CDaoRecordset::GetEditMode() 6215 short CDaoException::GetErrorCount() 6216 void CDaoException::GetErrorInfo(int) 6217 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *) 6218 short CDaoQueryDef::GetFieldCount() 6219 short CDaoRecordset::GetFieldCount() 6220 short CDaoTableDef::GetFieldCount() 6221 int CDaoRecordset::GetFieldIndex(void *) 6222 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6223 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6224 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6225 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6226 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6227 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6228 unsigned long CDaoRecordset::GetFieldLength(int) 6229 COleVariant CDaoRecordset::GetFieldValue(int) 6230 COleVariant CDaoRecordset::GetFieldValue(char const *) 6231 void CDaoRecordset::GetFieldValue(int,COleVariant &) 6232 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 6233 short CDaoRecordset::GetIndexCount() 6234 short CDaoTableDef::GetIndexCount() 6235 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6236 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 6237 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6238 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 6239 ATL::CStringT > > CDaoWorkspace::GetIniPath() 6240 int CDaoWorkspace::GetIsolateODBCTrans() 6241 COleVariant CDaoRecordset::GetLastModifiedBookmark() 6242 int CDaoRecordset::GetLockingMode() 6243 short CDaoWorkspace::GetLoginTimeout() 6244 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 6245 ATL::CStringT > > CDaoDatabase::GetName() 6246 ATL::CStringT > > CDaoQueryDef::GetName() 6247 ATL::CStringT > > CDaoRecordset::GetName() 6248 ATL::CStringT > > CDaoTableDef::GetName() 6249 ATL::CStringT > > CDaoWorkspace::GetName() 6250 short CDaoQueryDef::GetODBCTimeout() 6251 short CDaoQueryDef::GetParameterCount() 6252 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 6253 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 6254 COleVariant CDaoQueryDef::GetParamValue(int) 6255 COleVariant CDaoQueryDef::GetParamValue(char const *) 6256 COleVariant CDaoRecordset::GetParamValue(int) 6257 COleVariant CDaoRecordset::GetParamValue(char const *) 6258 float CDaoRecordset::GetPercentPosition() 6259 short CDaoDatabase::GetQueryDefCount() 6260 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 6261 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 6262 short CDaoDatabase::GetQueryTimeout() 6263 long CDaoRecordset::GetRecordCount() 6264 long CDaoTableDef::GetRecordCount() 6265 long CDaoDatabase::GetRecordsAffected() 6266 long CDaoQueryDef::GetRecordsAffected() 6267 short CDaoDatabase::GetRelationCount() 6268 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 6269 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 6270 int CDaoQueryDef::GetReturnsRecords() 6271 CRuntime* CDaoDatabase::GetRuntimeClass()const 6272 CRuntime* CDaoException::GetRuntimeClass()const 6273 CRuntime* CDaoQueryDef::GetRuntimeClass()const 6274 CRuntime* CDaoRecordset::GetRuntimeClass()const 6275 CRuntime* CDaoRecordView::GetRuntimeClass()const 6276 CRuntime* CDaoTableDef::GetRuntimeClass()const 6277 CRuntime* CDaoWorkspace::GetRuntimeClass()const 6278 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 6279 ATL::CStringT > > CDaoQueryDef::GetSQL() 6280 ATL::CStringT > > CDaoRecordset::GetSQL()const 6281 short CDaoDatabase::GetTableDefCount() 6282 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 6283 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 6284 CRuntime* CDaoDatabase::GetThisClass() 6285 CRuntime* CDaoException::GetThisClass() 6286 CRuntime* CDaoQueryDef::GetThisClass() 6287 CRuntime* CDaoRecordset::GetThisClass() 6288 CRuntime* CDaoRecordView::GetThisClass() 6289 CRuntime* CDaoTableDef::GetThisClass() 6290 CRuntime* CDaoWorkspace::GetThisClass() 6291 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 6292 short CDaoQueryDef::GetType() 6293 short CDaoRecordset::GetType() 6294 ATL::CStringT > > CDaoWorkspace::GetUserNameA() 6295 ATL::CStringT > > CDaoRecordset::GetValidationRule() 6296 ATL::CStringT > > CDaoTableDef::GetValidationRule() 6297 ATL::CStringT > > CDaoRecordset::GetValidationText() 6298 ATL::CStringT > > CDaoTableDef::GetValidationText() 6299 ATL::CStringT > > CDaoDatabase::GetVersion() 6300 ATL::CStringT > > CDaoWorkspace::GetVersion() 6301 short CDaoWorkspace::GetWorkspaceCount() 6302 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 6303 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 6304 void CDaoWorkspace::Idle(int) 6305 void CDaoWorkspace::InitDatabasesCollection() 6306 void CDaoException::InitErrorsCollection() 6307 void CDaoQueryDef::InitFieldsCollection() 6308 void CDaoRecordset::InitFieldsCollection() 6309 void CDaoTableDef::InitFieldsCollection() 6310 void CDaoWorkspace::InitializeEngine() 6311 void CDaoRecordset::InitIndexesCollection() 6312 void CDaoTableDef::InitIndexesCollection() 6313 void CDaoQueryDef::InitParametersCollection() 6314 void CDaoDatabase::InitQueryDefsCollection() 6315 void CDaoDatabase::InitRelationsCollection() 6316 void CDaoDatabase::InitTableDefsCollection() 6317 void CDaoDatabase::InitWorkspace() 6318 void CDaoWorkspace::InitWorkspacesCollection() 6319 int CDaoRecordset::IsBOF()const 6320 int CDaoRecordset::IsDeleted()const 6321 int CDaoRecordset::IsEOF()const 6322 int CDaoRecordset::IsFieldDirty(void *) 6323 int CDaoRecordset::IsFieldNull(void *) 6324 int CDaoRecordset::IsFieldNullable(void *) 6325 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 6326 int CDaoRecordset::IsFieldStatusNull(unsigned int) 6327 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 6328 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 6329 int CDaoRecordset::IsMatch() 6330 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6331 int CDaoRecordView::IsOnFirstRecord() 6332 int CDaoRecordView::IsOnLastRecord() 6333 int CDaoFieldExchange::IsValidOperation() 6334 void CDaoRecordset::LoadFields() 6335 void CDaoRecordset::MarkForAddNew() 6336 void CDaoRecordset::MarkForEdit() 6337 AFX_MSGMAP const CDaoRecordView::messageMap 6338 AFX_MSGMAP const COleDBRecordView::messageMap 6339 AFX_MSGMAP const CRecordView::messageMap 6340 void CDaoRecordset::Move(long) 6341 void CDaoRecordset::MoveFirst() 6342 void CDaoRecordset::MoveLast() 6343 void CDaoRecordset::MoveNext() 6344 void CDaoRecordset::MovePrev() 6345 void CDaoRecordView::OnInitialUpdate() 6346 int CDaoRecordView::OnMove(unsigned int) 6347 void CDaoDatabase::Open(char const *,int,int,char const *) 6348 void CDaoQueryDef::Open(char const *) 6349 void CDaoRecordset::Open(int,char const *,int) 6350 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 6351 void CDaoRecordset::Open(CDaoTableDef *,int,int) 6352 void CDaoTableDef::Open(char const *) 6353 void CDaoWorkspace::Open(char const *) 6354 void CDaoTableDef::RefreshLink() 6355 void CDaoWorkspace::RepairDatabase(char const *) 6356 void CDaoRecordset::Requery() 6357 void CDaoWorkspace::Rollback() 6358 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 6359 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 6360 void CDaoRecordset::SetAbsolutePosition(long) 6361 void CDaoTableDef::SetAttributes(long) 6362 void CDaoRecordset::SetBookmark(COleVariant) 6363 void CDaoRecordset::SetCacheSize(long) 6364 void CDaoRecordset::SetCacheStart(COleVariant) 6365 void CDaoQueryDef::SetConnect(char const *) 6366 void CDaoTableDef::SetConnect(char const *) 6367 void CDaoRecordset::SetCurrentIndex(char const *) 6368 void CDaoRecordset::SetCursorAttributes() 6369 void CDaoWorkspace::SetDefaultPassword(char const *) 6370 void CDaoWorkspace::SetDefaultUser(char const *) 6371 void CDaoRecordset::SetDirtyFields() 6372 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6373 void CDaoRecordset::SetFieldDirty(void *,int) 6374 void CDaoRecordset::SetFieldNull(void *,int) 6375 void CDaoRecordset::SetFieldValue(int,char const *) 6376 void CDaoRecordset::SetFieldValue(char const *,char const *) 6377 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6378 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 6379 void CDaoRecordset::SetFieldValueNull(int) 6380 void CDaoRecordset::SetFieldValueNull(char const *) 6381 void CDaoWorkspace::SetIniPath(char const *) 6382 void CDaoWorkspace::SetIsolateODBCTrans(int) 6383 void CDaoRecordset::SetLockingMode(int) 6384 void CDaoWorkspace::SetLoginTimeout(short) 6385 void CDaoQueryDef::SetName(char const *) 6386 void CDaoTableDef::SetName(char const *) 6387 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6388 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6389 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6390 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6391 void CDaoQueryDef::SetODBCTimeout(short) 6392 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6393 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 6394 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6395 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 6396 void CDaoQueryDef::SetParamValueNull(int) 6397 void CDaoQueryDef::SetParamValueNull(char const *) 6398 void CDaoRecordset::SetParamValueNull(int) 6399 void CDaoRecordset::SetParamValueNull(char const *) 6400 void CDaoRecordset::SetPercentPosition(float) 6401 void CDaoDatabase::SetQueryTimeout(short) 6402 void CDaoQueryDef::SetReturnsRecords(int) 6403 void CDaoTableDef::SetSourceTableName(char const *) 6404 void CDaoQueryDef::SetSQL(char const *) 6405 void CDaoTableDef::SetValidationRule(char const *) 6406 void CDaoTableDef::SetValidationText(char const *) 6407 void CDaoRecordset::StoreFields() 6408 void CDaoRecordset::StripBrackets(char const *,char *) 6409 void CDaoDatabase::ThrowDaoException(int) 6410 void CDaoQueryDef::ThrowDaoException(int) 6411 void CDaoRecordset::ThrowDaoException(int) 6412 void CDaoTableDef::ThrowDaoException(int) 6413 void CDaoWorkspace::ThrowDaoException(int) 6414 void ThrowGetRowsDaoException(long) 6415 void CDaoRecordset::Update() 6416 _AFX_DAO_STATE * AfxGetDaoState() 6417 _AFX_DAO_STATE::~_AFX_DAO_STATE() 6418 _AFX_DAO_STATE::_AFX_DAO_STATE() ================================================ FILE: Bin/i386/mfc_sym/mfc70d.def ================================================ 256 COleCurrency const & COleCurrency::operator/=(long) 257 void * operator new[](unsigned int) 258 void * operator new[](unsigned int,int,char const *,int) 259 void * operator new[](unsigned int,char const *,int) 260 void operator delete[](void *) 261 void operator delete[](void *,int,char const *,int) 262 void operator delete[](void *,char const *,int) 263 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 264 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 265 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 266 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 267 _AFX_OLE_STATE::_AFX_OLE_STATE() 268 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 269 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 270 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 271 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 272 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 273 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 274 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 275 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 276 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 277 CAnimateCtrl::CAnimateCtrl() 278 CArchive::CArchive(CArchive const &) 279 CArchive::CArchive(CFile *,unsigned int,int,void *) 280 CArchiveException::CArchiveException(int,char const *) 281 CArchivePropExchange::CArchivePropExchange(CArchive &) 282 CArchiveStream::CArchiveStream(CArchive *) 283 CAsyncMonikerFile::CAsyncMonikerFile() 284 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 285 CAsyncSocket::CAsyncSocket() 286 CBitmap::CBitmap() 287 CBitmapButton::CBitmapButton() 288 CBlobProperty::CBlobProperty(void *) 289 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 290 CBrush::CBrush(int,unsigned long) 291 CBrush::CBrush(unsigned long) 292 CBrush::CBrush(CBitmap *) 293 CBrush::CBrush() 294 CButton::CButton() 295 CByteArray::CByteArray() 296 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 297 CCachedDataPathProperty::CCachedDataPathProperty(char const *,COleControl *) 298 CCheckListBox::CCheckListBox() 299 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 300 CClientDC::CClientDC(CWnd *) 301 CCmdTarget::CCmdTarget() 302 CCmdUI::CCmdUI() 303 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 304 CComboBox::CComboBox() 305 CComboBoxEx::CComboBoxEx() 306 CCommandLineInfo::CCommandLineInfo() 307 CCommonDialog::CCommonDialog(CWnd *) 308 CConnectionPoint::CConnectionPoint() 309 CControlBar::CControlBar() 310 CControlBarInfo::CControlBarInfo() 311 COleControl::CControlDataSource::CControlDataSource(COleControl *) 312 CControlFrameWnd::CControlFrameWnd(COleControl *) 313 CCreateContext::CCreateContext() 314 CCriticalSection::CCriticalSection() 315 CCtrlView::CCtrlView(char const *,unsigned long) 316 CDatabase::CDatabase() 317 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 318 CDataExchange::CDataExchange(CWnd *,int) 319 CDataPathProperty::CDataPathProperty(COleControl *) 320 CDataPathProperty::CDataPathProperty(char const *,COleControl *) 321 CDataSourceControl::CDataSourceControl(COleControlSite *) 322 CDateTimeCtrl::CDateTimeCtrl() 323 CDBException::CDBException(short) 324 CDBVariant::CDBVariant() 325 CDC::CDC() 326 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 327 CDHtmlControlSink::CDHtmlControlSink() 328 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 329 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 330 CDHtmlDialog::CDHtmlDialog() 331 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 332 CDialog::CDialog(unsigned int,CWnd *) 333 CDialog::CDialog(char const *,CWnd *) 334 CDialog::CDialog() 335 CDialogBar::CDialogBar() 336 CDialogTemplate::CDialogTemplate(void *) 337 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 338 CDocItem::CDocItem() 339 CDockBar::CDockBar(int) 340 CDockContext::CDockContext(CControlBar *) 341 CDockState::CDockState() 342 CDocManager::CDocManager() 343 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 344 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 345 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 346 CDocument::CDocument() 347 CDragListBox::CDragListBox() 348 CDumpContext::CDumpContext(CDumpContext const &) 349 CDumpContext::CDumpContext(CFile *) 350 CDWordArray::CDWordArray() 351 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 352 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 353 CEdit::CEdit() 354 CEditView::CEditView() 355 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 356 CEnumConnections::CEnumConnections(void const *,unsigned int) 357 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 358 CEnumFormatEtc::CEnumFormatEtc() 359 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 360 CException::CException(int) 361 CException::CException() 362 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 363 CFile::CFile(void *) 364 CFile::CFile(char const *,unsigned int) 365 CFile::CFile() 366 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long) 367 CFileException::CFileException(int,long,char const *) 368 CFileFind::CFileFind() 369 CFindReplaceDialog::CFindReplaceDialog() 370 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 371 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 372 CFont::CFont() 373 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 374 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 375 CFontHolder::CFontHolder(IPropertyNotifySink *) 376 CFormView::CFormView(unsigned int) 377 CFormView::CFormView(char const *) 378 CFrameWnd::CFrameWnd() 379 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 380 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 381 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 382 CGdiObject::CGdiObject() 383 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 384 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 385 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 386 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 387 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 388 CGopherLocator::CGopherLocator(char const *,unsigned long) 389 CGopherLocator::CGopherLocator(CGopherLocator const &) 390 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 391 CHeaderCtrl::CHeaderCtrl() 392 CHotKeyCtrl::CHotKeyCtrl() 393 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 394 CHtmlEditCtrl::CHtmlEditCtrl() 395 CHtmlEditDoc::CHtmlEditDoc() 396 CHtmlEditView::CHtmlEditView() 397 CHtmlView::CHtmlView() 398 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 399 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 400 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 401 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 402 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 403 CImageList::CImageList() 404 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 405 CInternetException::CInternetException(unsigned long) 406 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 407 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 408 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 409 CIPAddressCtrl::CIPAddressCtrl() 410 CListBox::CListBox() 411 CListCtrl::CListCtrl() 412 CListView::CListView() 413 CLongBinary::CLongBinary() 414 CMapPtrToPtr::CMapPtrToPtr(int) 415 CMapPtrToWord::CMapPtrToWord(int) 416 CMapStringToOb::CMapStringToOb(int) 417 CMapStringToPtr::CMapStringToPtr(int) 418 CMapStringToString::CMapStringToString(int) 419 CMapWordToOb::CMapWordToOb(int) 420 CMapWordToPtr::CMapWordToPtr(int) 421 CMDIChildWnd::CMDIChildWnd() 422 CMDIFrameWnd::CMDIFrameWnd() 423 CMemFile::CMemFile(unsigned int) 424 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 425 CMemoryException::CMemoryException(int,unsigned int) 426 CMemoryException::CMemoryException() 427 CMemoryState::CMemoryState() 428 CMenu::CMenu() 429 CMetaFileDC::CMetaFileDC() 430 CMiniDockFrameWnd::CMiniDockFrameWnd() 431 CMiniFrameWnd::CMiniFrameWnd() 432 CMonikerFile::CMonikerFile() 433 CMonthCalCtrl::CMonthCalCtrl() 434 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 435 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 436 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 437 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 438 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 439 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 440 CNotSupportedException::CNotSupportedException(int,unsigned int) 441 CNotSupportedException::CNotSupportedException() 442 CObArray::CObArray() 443 CObject::CObject() 444 CObList::CObList(int) 445 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 446 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 447 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 448 COleClientItem::COleClientItem(COleDocument *) 449 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 450 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 451 COleControl::COleControl() 452 COleControlContainer::COleControlContainer(CWnd *) 453 COleControlLock::COleControlLock(_GUID const &) 454 COleControlSite::COleControlSite(COleControlContainer *) 455 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 456 COleCurrency::COleCurrency(tagVARIANT const &) 457 COleCurrency::COleCurrency(COleCurrency const &) 458 COleCurrency::COleCurrency(long,long) 459 COleCurrency::COleCurrency(union tagCY) 460 COleCurrency::COleCurrency() 461 COleDataObject::COleDataObject() 462 COleDataSource::COleDataSource() 463 COleDialog::COleDialog(CWnd *) 464 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 465 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 466 COleDispatchDriver::COleDispatchDriver() 467 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 468 COleDocIPFrameWnd::COleDocIPFrameWnd() 469 COleDocObjectItem::COleDocObjectItem(COleDocument *) 470 COleDocument::COleDocument() 471 COleDropSource::COleDropSource() 472 COleDropTarget::COleDropTarget() 473 COleException::COleException() 474 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 475 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 476 COleIPFrameWnd::COleIPFrameWnd() 477 COleLinkingDoc::COleLinkingDoc() 478 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 479 COleMessageFilter::COleMessageFilter() 480 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 481 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 482 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 483 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 484 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 485 COleResizeBar::COleResizeBar() 486 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 487 COleSafeArray::COleSafeArray(tagVARIANT const &) 488 COleSafeArray::COleSafeArray(COleSafeArray const &) 489 COleSafeArray::COleSafeArray(COleVariant const &) 490 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 491 COleSafeArray::COleSafeArray(tagVARIANT const *) 492 COleSafeArray::COleSafeArray() 493 COleServerDoc::COleServerDoc() 494 COleServerItem::COleServerItem(COleServerDoc *,int) 495 COleStreamFile::COleStreamFile(IStream *) 496 COleTemplateServer::COleTemplateServer() 497 COleUILinkInfo::COleUILinkInfo(COleDocument *) 498 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 499 COleVariant::COleVariant(ATL::CStringT > > &) 500 COleVariant::COleVariant(tagVARIANT const &) 501 COleVariant::COleVariant(COleVariant const &) 502 COleVariant::COleVariant(CByteArray const &) 503 COleVariant::COleVariant(CLongBinary const &) 504 COleVariant::COleVariant(COleCurrency const &) 505 COleVariant::COleVariant(ATL::COleDateTime const &) 506 COleVariant::COleVariant(unsigned char) 507 COleVariant::COleVariant(short,unsigned short) 508 COleVariant::COleVariant(long,unsigned short) 509 COleVariant::COleVariant(float) 510 COleVariant::COleVariant(double) 511 COleVariant::COleVariant(char const *) 512 COleVariant::COleVariant(char const *,unsigned short) 513 COleVariant::COleVariant(_ITEMIDLIST const *) 514 COleVariant::COleVariant(tagVARIANT const *) 515 COleVariant::COleVariant() 516 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 517 CPaintDC::CPaintDC(CWnd *) 518 CPalette::CPalette() 519 CPen::CPen(int,int,unsigned long) 520 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 521 CPen::CPen() 522 CPictureHolder::CPictureHolder() 523 CPreviewDC::CPreviewDC() 524 CPreviewView::CPreviewView() 525 CPrintDialog::CPrintDialog(tagPDA &) 526 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 527 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 528 CPrintInfo::CPrintInfo() 529 CPrintPreviewState::CPrintPreviewState() 530 CProgressCtrl::CProgressCtrl() 531 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 532 CProperty::CProperty(unsigned long,void * const,unsigned long) 533 CProperty::CProperty() 534 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 535 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 536 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 537 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 538 CPropertyPage::CPropertyPage() 539 CPropertySection::CPropertySection(_GUID) 540 CPropertySection::CPropertySection() 541 CPropertySet::CPropertySet(_GUID) 542 CPropertySet::CPropertySet() 543 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 544 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 545 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 546 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 547 CPropertySheet::CPropertySheet() 548 CPropExchange::CPropExchange() 549 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 550 CPtrArray::CPtrArray() 551 CPtrList::CPtrList(int) 552 CReBar::CReBar() 553 CReBarCtrl::CReBarCtrl() 554 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 555 CRecordset::CRecordset(CDatabase *) 556 CRecordView::CRecordView(unsigned int) 557 CRecordView::CRecordView(char const *) 558 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 559 CRectTracker::CRectTracker() 560 CReObject::CReObject(CRichEditCntrItem *) 561 CReObject::CReObject() 562 CResetPropExchange::CResetPropExchange() 563 CResourceException::CResourceException(int,unsigned int) 564 CResourceException::CResourceException() 565 CRgn::CRgn() 566 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 567 CRichEditCtrl::CRichEditCtrl() 568 CRichEditDoc::CRichEditDoc() 569 CRichEditView::CRichEditView() 570 CScrollBar::CScrollBar() 571 CScrollView::CScrollView() 572 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 573 CSharedFile::CSharedFile(unsigned int,unsigned int) 574 CSimpleException::CSimpleException(int) 575 CSimpleException::CSimpleException() 576 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 577 CSingleLock::CSingleLock(CSyncObject *,int) 578 CSliderCtrl::CSliderCtrl() 579 CSocket::CSocket() 580 CSocketFile::CSocketFile(CSocket *,int) 581 CSocketWnd::CSocketWnd() 582 CSpinButtonCtrl::CSpinButtonCtrl() 583 CSplitterWnd::CSplitterWnd() 584 CStatic::CStatic() 585 CStatusBar::CStatusBar() 586 CStatusBarCtrl::CStatusBarCtrl() 587 CStdioFile::CStdioFile(_iobuf *) 588 CStdioFile::CStdioFile(char const *,unsigned int) 589 CStdioFile::CStdioFile() 590 CStringArray::CStringArray() 591 CStringList::CStringList(int) 592 CSyncObject::CSyncObject(char const *) 593 CTabCtrl::CTabCtrl() 594 CTestCmdUI::CTestCmdUI() 595 CThreadSlotData::CThreadSlotData() 596 CToolBar::CToolBar() 597 CToolBarCtrl::CToolBarCtrl() 598 CToolTipCtrl::CToolTipCtrl() 599 CTreeCtrl::CTreeCtrl() 600 CTreeView::CTreeView() 601 CUIntArray::CUIntArray() 602 CUserException::CUserException(int,unsigned int) 603 CUserException::CUserException() 604 CView::CView() 605 CWaitCursor::CWaitCursor() 606 CWinApp::CWinApp(char const *) 607 CWindowDC::CWindowDC(CWnd *) 608 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 609 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 610 CWinThread::CWinThread() 611 CWnd::CWnd(HWND__ *) 612 CWnd::CWnd() 613 CWordArray::CWordArray() 614 CPreviewView::PAGE_INFO::PAGE_INFO() 615 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 616 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 617 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 618 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 619 _AFX_OLE_STATE::~_AFX_OLE_STATE() 620 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 621 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 622 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 623 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 624 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 625 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 626 AFX_MODULE_STATE::~AFX_MODULE_STATE() 627 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 628 CAnimateCtrl::~CAnimateCtrl() 629 CArchive::~CArchive() 630 CArchiveException::~CArchiveException() 631 CAsyncMonikerFile::~CAsyncMonikerFile() 632 CAsyncSocket::~CAsyncSocket() 633 CBitmap::~CBitmap() 634 CBrush::~CBrush() 635 CButton::~CButton() 636 CByteArray::~CByteArray() 637 CClientDC::~CClientDC() 638 CCmdTarget::~CCmdTarget() 639 CComboBox::~CComboBox() 640 CComboBoxEx::~CComboBoxEx() 641 CCommandLineInfo::~CCommandLineInfo() 642 CConnectionPoint::~CConnectionPoint() 643 CControlBar::~CControlBar() 644 CCriticalSection::~CCriticalSection() 645 CCtrlView::~CCtrlView() 646 CDatabase::~CDatabase() 647 CDataSourceControl::~CDataSourceControl() 648 CDateTimeCtrl::~CDateTimeCtrl() 649 CDBException::~CDBException() 650 CDBVariant::~CDBVariant() 651 CDC::~CDC() 652 CDHtmlControlSink::~CDHtmlControlSink() 653 CDHtmlDialog::~CDHtmlDialog() 654 CDialog::~CDialog() 655 CDialogBar::~CDialogBar() 656 CDialogTemplate::~CDialogTemplate() 657 CDocItem::~CDocItem() 658 CDockBar::~CDockBar() 659 CDockContext::~CDockContext() 660 CDockState::~CDockState() 661 CDocManager::~CDocManager() 662 CDocObjectServer::~CDocObjectServer() 663 CDocObjectServerItem::~CDocObjectServerItem() 664 CDocTemplate::~CDocTemplate() 665 CDocument::~CDocument() 666 CDragListBox::~CDragListBox() 667 CDWordArray::~CDWordArray() 668 CDynLinkLibrary::~CDynLinkLibrary() 669 CEdit::~CEdit() 670 CEditView::~CEditView() 671 CEnumArray::~CEnumArray() 672 CEnumConnections::~CEnumConnections() 673 CEnumConnPoints::~CEnumConnPoints() 674 CEnumFormatEtc::~CEnumFormatEtc() 675 CEnumOleVerb::~CEnumOleVerb() 676 CEnumUnknown::~CEnumUnknown() 677 CEvent::~CEvent() 678 CException::~CException() 679 CFile::~CFile() 680 CFileDialog::~CFileDialog() 681 CFileException::~CFileException() 682 CFileFind::~CFileFind() 683 CFixedAlloc::~CFixedAlloc() 684 CFixedAllocNoSync::~CFixedAllocNoSync() 685 CFont::~CFont() 686 CFontHolder::~CFontHolder() 687 CFrameWnd::~CFrameWnd() 688 CFtpConnection::~CFtpConnection() 689 CFtpFileFind::~CFtpFileFind() 690 CGdiObject::~CGdiObject() 691 CGopherConnection::~CGopherConnection() 692 CGopherFile::~CGopherFile() 693 CGopherFileFind::~CGopherFileFind() 694 CGopherLocator::~CGopherLocator() 695 CHeaderCtrl::~CHeaderCtrl() 696 CHotKeyCtrl::~CHotKeyCtrl() 697 CHtmlControlSite::~CHtmlControlSite() 698 CHtmlEditCtrl::~CHtmlEditCtrl() 699 CHtmlEditDoc::~CHtmlEditDoc() 700 CHtmlEditView::~CHtmlEditView() 701 CHtmlView::~CHtmlView() 702 CHttpConnection::~CHttpConnection() 703 CHttpFile::~CHttpFile() 704 CImageList::~CImageList() 705 CInternetConnection::~CInternetConnection() 706 CInternetException::~CInternetException() 707 CInternetFile::~CInternetFile() 708 CInternetSession::~CInternetSession() 709 CIPAddressCtrl::~CIPAddressCtrl() 710 CListBox::~CListBox() 711 CListCtrl::~CListCtrl() 712 CLongBinary::~CLongBinary() 713 CMapPtrToPtr::~CMapPtrToPtr() 714 CMapPtrToWord::~CMapPtrToWord() 715 CMapStringToOb::~CMapStringToOb() 716 CMapStringToPtr::~CMapStringToPtr() 717 CMapStringToString::~CMapStringToString() 718 CMapWordToOb::~CMapWordToOb() 719 CMapWordToPtr::~CMapWordToPtr() 720 CMemFile::~CMemFile() 721 CMemoryException::~CMemoryException() 722 CMenu::~CMenu() 723 CMetaFileDC::~CMetaFileDC() 724 CMiniFrameWnd::~CMiniFrameWnd() 725 CMonikerFile::~CMonikerFile() 726 CMonthCalCtrl::~CMonthCalCtrl() 727 CMultiDocTemplate::~CMultiDocTemplate() 728 CMultiLock::~CMultiLock() 729 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 730 CMutex::~CMutex() 731 CNotSupportedException::~CNotSupportedException() 732 CObArray::~CObArray() 733 CObject::~CObject() 734 CObList::~CObList() 735 COleBusyDialog::~COleBusyDialog() 736 COleChangeIconDialog::~COleChangeIconDialog() 737 COleChangeSourceDialog::~COleChangeSourceDialog() 738 COleClientItem::~COleClientItem() 739 COleCntrFrameWnd::~COleCntrFrameWnd() 740 COleControl::~COleControl() 741 COleControlContainer::~COleControlContainer() 742 COleControlLock::~COleControlLock() 743 COleControlSite::~COleControlSite() 744 COleControlSiteOrWnd::~COleControlSiteOrWnd() 745 COleConvertDialog::~COleConvertDialog() 746 COleDataObject::~COleDataObject() 747 COleDataSource::~COleDataSource() 748 COleDispatchDriver::~COleDispatchDriver() 749 COleDispatchException::~COleDispatchException() 750 COleDocIPFrameWnd::~COleDocIPFrameWnd() 751 COleDocObjectItem::~COleDocObjectItem() 752 COleDocument::~COleDocument() 753 COleDropTarget::~COleDropTarget() 754 COleException::~COleException() 755 COleFrameHook::~COleFrameHook() 756 COleInsertDialog::~COleInsertDialog() 757 COleIPFrameWnd::~COleIPFrameWnd() 758 COleLinkingDoc::~COleLinkingDoc() 759 COleLinksDialog::~COleLinksDialog() 760 COleMessageFilter::~COleMessageFilter() 761 COleObjectFactory::~COleObjectFactory() 762 COlePasteSpecialDialog::~COlePasteSpecialDialog() 763 COlePropertyPage::~COlePropertyPage() 764 COleResizeBar::~COleResizeBar() 765 COleSafeArray::~COleSafeArray() 766 COleServerDoc::~COleServerDoc() 767 COleServerItem::~COleServerItem() 768 COleStreamFile::~COleStreamFile() 769 COleUpdateDialog::~COleUpdateDialog() 770 COleVariant::~COleVariant() 771 CPaintDC::~CPaintDC() 772 CPalette::~CPalette() 773 CPen::~CPen() 774 CPictureHolder::~CPictureHolder() 775 CPreviewDC::~CPreviewDC() 776 CPreviewView::~CPreviewView() 777 CPrintInfo::~CPrintInfo() 778 CProcessLocalObject::~CProcessLocalObject() 779 CProgressCtrl::~CProgressCtrl() 780 CPropbagPropExchange::~CPropbagPropExchange() 781 CProperty::~CProperty() 782 CPropertyPage::~CPropertyPage() 783 CPropertySection::~CPropertySection() 784 CPropertySet::~CPropertySet() 785 CPropertySheet::~CPropertySheet() 786 CPtrArray::~CPtrArray() 787 CPtrList::~CPtrList() 788 CRecentFileList::~CRecentFileList() 789 CRecordset::~CRecordset() 790 CRecordView::~CRecordView() 791 CRectTracker::~CRectTracker() 792 CReObject::~CReObject() 793 CResourceException::~CResourceException() 794 CRgn::~CRgn() 795 CRichEditCntrItem::~CRichEditCntrItem() 796 CRichEditCtrl::~CRichEditCtrl() 797 CScrollBar::~CScrollBar() 798 CScrollView::~CScrollView() 799 CSemaphore::~CSemaphore() 800 CSharedFile::~CSharedFile() 801 CSimpleException::~CSimpleException() 802 CSingleDocTemplate::~CSingleDocTemplate() 803 CSingleLock::~CSingleLock() 804 CSliderCtrl::~CSliderCtrl() 805 CSocket::~CSocket() 806 CSocketFile::~CSocketFile() 807 CSpinButtonCtrl::~CSpinButtonCtrl() 808 CSplitterWnd::~CSplitterWnd() 809 CStatic::~CStatic() 810 CStatusBar::~CStatusBar() 811 CStatusBarCtrl::~CStatusBarCtrl() 812 CStdioFile::~CStdioFile() 813 CStringArray::~CStringArray() 814 CStringList::~CStringList() 815 CSyncObject::~CSyncObject() 816 CTabCtrl::~CTabCtrl() 817 CThreadLocalObject::~CThreadLocalObject() 818 CThreadSlotData::~CThreadSlotData() 819 CToolBar::~CToolBar() 820 CToolBarCtrl::~CToolBarCtrl() 821 CToolTipCtrl::~CToolTipCtrl() 822 CTreeCtrl::~CTreeCtrl() 823 CUIntArray::~CUIntArray() 824 CUserException::~CUserException() 825 CView::~CView() 826 CWaitCursor::~CWaitCursor() 827 CWinApp::~CWinApp() 828 CWindowDC::~CWindowDC() 829 CWinThread::~CWinThread() 830 CWnd::~CWnd() 831 CWordArray::~CWordArray() 832 void * operator new(unsigned int) 833 void * operator new(unsigned int,int,char const *,int) 834 void * operator new(unsigned int,char const *,int) 835 void * CNoTrackObject::operator new(unsigned int) 836 void * CNoTrackObject::operator new(unsigned int,char const *,int) 837 void * CObject::operator new(unsigned int) 838 void * CObject::operator new(unsigned int,void *) 839 void * CObject::operator new(unsigned int,char const *,int) 840 void operator delete(void *) 841 void operator delete(void *,int,char const *,int) 842 void operator delete(void *,char const *,int) 843 void CException::operator delete(void *) 844 void CException::operator delete(void *,char const *,int) 845 void CNoTrackObject::operator delete(void *) 846 void CNoTrackObject::operator delete(void *,char const *,int) 847 void CObject::operator delete(void *) 848 void CObject::operator delete(void *,void *) 849 void CObject::operator delete(void *,char const *,int) 850 void CArchive::operator=(CArchive const &) 851 void CDumpContext::operator=(CDumpContext const &) 852 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 853 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 854 COleCurrency const & COleCurrency::operator=(union tagCY) 855 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 856 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 857 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 858 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 859 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 860 COleVariant const & COleVariant::operator=(tagVARIANT const &) 861 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 862 COleVariant const & COleVariant::operator=(COleVariant const &) 863 COleVariant const & COleVariant::operator=(CByteArray const &) 864 COleVariant const & COleVariant::operator=(CLongBinary const &) 865 COleVariant const & COleVariant::operator=(COleCurrency const &) 866 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 867 COleVariant const & COleVariant::operator=(unsigned char) 868 COleVariant const & COleVariant::operator=(short) 869 COleVariant const & COleVariant::operator=(long) 870 COleVariant const & COleVariant::operator=(float) 871 COleVariant const & COleVariant::operator=(double) 872 COleVariant const & COleVariant::operator=(tagVARIANT const *) 873 COleVariant const & COleVariant::operator=(char const * const) 874 CArchive & operator>>(CArchive &,CByteArray * &) 875 CArchive & operator>>(CArchive &,CDocItem * &) 876 CArchive & operator>>(CArchive &,CDockState * &) 877 CArchive & operator>>(CArchive &,CDWordArray * &) 878 CArchive & operator>>(CArchive &,CMapStringToOb * &) 879 CArchive & operator>>(CArchive &,CMapStringToString * &) 880 CArchive & operator>>(CArchive &,CMapWordToOb * &) 881 CArchive & operator>>(CArchive &,CObArray * &) 882 CArchive & operator>>(CArchive &,CObject * &) 883 CArchive & operator>>(CArchive &,CObList * &) 884 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 885 CArchive & operator>>(CArchive &,CStringArray * &) 886 CArchive & operator>>(CArchive &,CStringList * &) 887 CArchive & operator>>(CArchive &,CWordArray * &) 888 CArchive & operator>>(CArchive &,CObject const * &) 889 CArchive & operator>>(CArchive &,tagPOINT &) 890 CArchive & operator>>(CArchive &,tagRECT &) 891 CArchive & operator>>(CArchive &,tagSIZE &) 892 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 893 CArchive & operator>>(CArchive &,COleCurrency &) 894 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 895 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 896 CArchive & operator>>(CArchive &,COleVariant &) 897 CArchive & operator>>(CArchive &,ATL::CTime &) 898 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 899 CArchive & CArchive::operator>>(__int64 &) 900 CArchive & CArchive::operator>>(unsigned __int64 &) 901 CArchive & CArchive::operator>>(bool &) 902 CArchive & CArchive::operator>>(wchar_t &) 903 CArchive & CArchive::operator>>(char &) 904 CArchive & CArchive::operator>>(unsigned char &) 905 CArchive & CArchive::operator>>(short &) 906 CArchive & CArchive::operator>>(unsigned short &) 907 CArchive & CArchive::operator>>(int &) 908 CArchive & CArchive::operator>>(unsigned int &) 909 CArchive & CArchive::operator>>(long &) 910 CArchive & CArchive::operator>>(unsigned long &) 911 CArchive & CArchive::operator>>(float &) 912 CArchive & CArchive::operator>>(double &) 913 CArchive & operator<<(CArchive &,tagRECT const &) 914 CArchive & operator<<(CArchive &,CObject const *) 915 CArchive & operator<<(CArchive &,tagPOINT) 916 CArchive & operator<<(CArchive &,tagSIZE) 917 CArchive & operator<<(CArchive &,ATL::CComBSTR) 918 CArchive & operator<<(CArchive &,COleCurrency) 919 CArchive & operator<<(CArchive &,ATL::COleDateTime) 920 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 921 CArchive & operator<<(CArchive &,COleVariant) 922 CArchive & operator<<(CArchive &,ATL::CTime) 923 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 924 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 925 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 926 CDumpContext & operator<<(CDumpContext &,tagPOINT) 927 CDumpContext & operator<<(CDumpContext &,tagSIZE) 928 CDumpContext & operator<<(CDumpContext &,COleCurrency) 929 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 930 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 931 CDumpContext & operator<<(CDumpContext &,COleVariant) 932 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 933 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 934 CArchive & CArchive::operator<<(__int64) 935 CArchive & CArchive::operator<<(unsigned __int64) 936 CArchive & CArchive::operator<<(bool) 937 CArchive & CArchive::operator<<(wchar_t) 938 CArchive & CArchive::operator<<(char) 939 CArchive & CArchive::operator<<(unsigned char) 940 CArchive & CArchive::operator<<(short) 941 CArchive & CArchive::operator<<(unsigned short) 942 CArchive & CArchive::operator<<(int) 943 CArchive & CArchive::operator<<(unsigned int) 944 CArchive & CArchive::operator<<(long) 945 CArchive & CArchive::operator<<(unsigned long) 946 CArchive & CArchive::operator<<(float) 947 CArchive & CArchive::operator<<(double) 948 CDumpContext & CDumpContext::operator<<(__int64) 949 CDumpContext & CDumpContext::operator<<(unsigned __int64) 950 CDumpContext & CDumpContext::operator<<(CObject const &) 951 CDumpContext & CDumpContext::operator<<(unsigned char) 952 CDumpContext & CDumpContext::operator<<(unsigned short) 953 CDumpContext & CDumpContext::operator<<(int) 954 CDumpContext & CDumpContext::operator<<(unsigned int) 955 CDumpContext & CDumpContext::operator<<(long) 956 CDumpContext & CDumpContext::operator<<(unsigned long) 957 CDumpContext & CDumpContext::operator<<(float) 958 CDumpContext & CDumpContext::operator<<(double) 959 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 960 CDumpContext & CDumpContext::operator<<(HDC__ *) 961 CDumpContext & CDumpContext::operator<<(HFONT__ *) 962 CDumpContext & CDumpContext::operator<<(HMENU__ *) 963 CDumpContext & CDumpContext::operator<<(HWND__ *) 964 CDumpContext & CDumpContext::operator<<(wchar_t const *) 965 CDumpContext & CDumpContext::operator<<(char const *) 966 CDumpContext & CDumpContext::operator<<(CObject const *) 967 CDumpContext & CDumpContext::operator<<(void const *) 968 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 969 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 970 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 971 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 972 int CGdiObject::operator==(CGdiObject const &)const 973 int CMenu::operator==(CMenu const &)const 974 int COleCurrency::operator==(COleCurrency const &)const 975 int COleSafeArray::operator==(tagSAFEARRAY const &)const 976 int COleSafeArray::operator==(tagVARIANT const &)const 977 int COleSafeArray::operator==(COleSafeArray const &)const 978 int COleSafeArray::operator==(COleVariant const &)const 979 int COleSafeArray::operator==(tagSAFEARRAY const *)const 980 int COleSafeArray::operator==(tagVARIANT const *)const 981 int COleVariant::operator==(tagVARIANT const &)const 982 int COleVariant::operator==(tagVARIANT const *)const 983 int CWnd::operator==(CWnd const &)const 984 int CGdiObject::operator!=(CGdiObject const &)const 985 int CMenu::operator!=(CMenu const &)const 986 int COleCurrency::operator!=(COleCurrency const &)const 987 int CWnd::operator!=(CWnd const &)const 988 unsigned char & CByteArray::operator[](int) 989 unsigned char CByteArray::operator[](int)const 990 unsigned long & CDWordArray::operator[](int) 991 unsigned long CDWordArray::operator[](int)const 992 void * & CMapPtrToPtr::operator[](void *) 993 unsigned short & CMapPtrToWord::operator[](void *) 994 CObject * & CMapStringToOb::operator[](char const *) 995 void * & CMapStringToPtr::operator[](char const *) 996 ATL::CStringT > > & CMapStringToString::operator[](char const *) 997 CObject * & CMapWordToOb::operator[](unsigned short) 998 void * & CMapWordToPtr::operator[](unsigned short) 999 CObject * & CObArray::operator[](int) 1000 CObject * CObArray::operator[](int)const 1001 void * & CPtrArray::operator[](int) 1002 void * CPtrArray::operator[](int)const 1003 ATL::CStringT > > & CStringArray::operator[](int) 1004 ATL::CStringT > > const & CStringArray::operator[](int)const 1005 unsigned int & CUIntArray::operator[](int) 1006 unsigned int CUIntArray::operator[](int)const 1007 unsigned short & CWordArray::operator[](int) 1008 unsigned short CWordArray::operator[](int)const 1009 CAsyncSocket::operator unsigned int()const 1010 CBitmap::operator HBITMAP__ *()const 1011 CBrush::operator HBRUSH__ *()const 1012 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 1013 CDC::operator HDC__ *()const 1014 CFile::operator void *()const 1015 CFont::operator HFONT__ *()const 1016 CGdiObject::operator void *()const 1017 CGopherLocator::operator char const *()const 1018 CImageList::operator _IMAGELIST *()const 1019 CInternetConnection::operator void *()const 1020 CInternetFile::operator void *()const 1021 CInternetSession::operator void *()const 1022 CMenu::operator HMENU__ *()const 1023 COleCurrency::operator union tagCY()const 1024 COleDispatchDriver::operator IDispatch *() 1025 COleSafeArray::operator tagVARIANT *() 1026 COleSafeArray::operator tagVARIANT const *()const 1027 COleVariant::operator tagVARIANT *() 1028 COleVariant::operator tagVARIANT const *()const 1029 CPalette::operator HPALETTE__ *()const 1030 CPen::operator HPEN__ *()const 1031 CRgn::operator HRGN__ *()const 1032 CSyncObject::operator void *()const 1033 CWinThread::operator void *()const 1034 CWnd::operator HWND__ *()const 1035 COleCurrency COleCurrency::operator*(long)const 1036 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1037 COleCurrency COleCurrency::operator-()const 1038 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1039 COleCurrency COleCurrency::operator/(long)const 1040 int COleCurrency::operator<(COleCurrency const &)const 1041 int COleCurrency::operator<=(COleCurrency const &)const 1042 int COleCurrency::operator>(COleCurrency const &)const 1043 int COleCurrency::operator>=(COleCurrency const &)const 1044 COleCurrency const & COleCurrency::operator*=(long) 1045 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1046 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1047 int _AfxAbortProc(HDC__ *,int) 1048 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1049 int const _afxDBCS 1050 int _AfxDeleteRegKey(char const *) 1051 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1052 int _AfxSocketInit(WSAData *) 1053 void CArchive::Abort() 1054 void CFile::Abort() 1055 void CInternetFile::Abort() 1056 void CMemFile::Abort() 1057 void CMirrorFile::Abort() 1058 void COleStreamFile::Abort() 1059 void CSocketFile::Abort() 1060 void CStdioFile::Abort() 1061 int CDC::AbortDoc() 1062 int CDC::AbortPath() 1063 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1064 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1065 long CWnd::accDoDefaultAction(tagVARIANT) 1066 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1067 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1068 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1069 void COleSafeArray::AccessData(void * *) 1070 long CWnd::accHitTest(long,long,tagVARIANT *) 1071 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1072 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1073 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1074 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1075 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1076 long CWnd::accSelect(long,tagVARIANT) 1077 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1078 void COleClientItem::Activate(long,CView *,tagMSG *) 1079 void CToolTipCtrl::Activate(int) 1080 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1081 void COleDocObjectItem::ActivateAndShow() 1082 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1083 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1084 void CDocObjectServer::ActivateDocObject() 1085 void COleServerDoc::ActivateDocObject() 1086 void CFrameWnd::ActivateFrame(int) 1087 void CMDIChildWnd::ActivateFrame(int) 1088 int COleServerDoc::ActivateInPlace() 1089 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1090 void CSplitterWnd::ActivateNext(int) 1091 void CWnd::ActivateTopParent() 1092 int CByteArray::Add(unsigned char) 1093 int CDWordArray::Add(unsigned long) 1094 int CImageList::Add(HICON__ *) 1095 int CImageList::Add(CBitmap *,CBitmap *) 1096 int CImageList::Add(CBitmap *,unsigned long) 1097 int CObArray::Add(CObject *) 1098 int CPtrArray::Add(void *) 1099 void CRecentFileList::Add(char const *) 1100 int CStringArray::Add(ATL::CStringT > > const &) 1101 int CStringArray::Add(char const *) 1102 int CUIntArray::Add(unsigned int) 1103 int CWordArray::Add(unsigned short) 1104 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 1105 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 1106 int CToolBarCtrl::AddBitmap(int,unsigned int) 1107 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1108 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1109 void COleClientItem::AddCachedData(COleDataSource *) 1110 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1111 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1112 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1113 void CFrameWnd::AddControlBar(CControlBar *) 1114 void CDocManager::AddDocTemplate(CDocTemplate *) 1115 void CWinApp::AddDocTemplate(CDocTemplate *) 1116 void CDocTemplate::AddDocument(CDocument *) 1117 void CMultiDocTemplate::AddDocument(CDocument *) 1118 void CSingleDocTemplate::AddDocument(CDocument *) 1119 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1120 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 1121 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1122 void COleControl::AddFrameLevelUI() 1123 void CFrameWnd::AddFrameWnd() 1124 __POSITION * CObList::AddHead(CObject *) 1125 void CObList::AddHead(CObList *) 1126 __POSITION * CPtrList::AddHead(void *) 1127 void CPtrList::AddHead(CPtrList *) 1128 void CSimpleList::AddHead(void *) 1129 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1130 __POSITION * CStringList::AddHead(char const *) 1131 void CStringList::AddHead(CStringList *) 1132 void COleDocument::AddItem(CDocItem *) 1133 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1134 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1135 void CRecordset::AddNew() 1136 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1137 void CPropertySheet::AddPage(CPropertyPage *) 1138 void CPropertySection::AddProperty(CProperty *) 1139 void CPropertySet::AddProperty(_GUID,CProperty *) 1140 unsigned long CArchiveStream::AddRef() 1141 unsigned long CBlobProperty::AddRef() 1142 unsigned long CBrowserControlSite::AddRef() 1143 unsigned long CDHtmlControlSink::AddRef() 1144 unsigned long CDHtmlElementEventSink::AddRef() 1145 unsigned long CDHtmlEventSink::AddRef() 1146 unsigned long CInnerUnknown::AddRef() 1147 unsigned long COleConnPtContainer::AddRef() 1148 unsigned long COleDispatchImpl::AddRef() 1149 unsigned long COleUILinkInfo::AddRef() 1150 unsigned long CPrintDialogEx::AddRef() 1151 unsigned long CWnd::XAccessible::AddRef() 1152 unsigned long CWnd::XAccessibleServer::AddRef() 1153 unsigned long COleClientItem::XAdviseSink::AddRef() 1154 unsigned long COleControlSite::XAmbientProps::AddRef() 1155 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1156 unsigned long COleObjectFactory::XClassFactory::AddRef() 1157 unsigned long CConnectionPoint::XConnPt::AddRef() 1158 unsigned long COleControl::XDataObject::AddRef() 1159 unsigned long COleDataSource::XDataObject::AddRef() 1160 unsigned long COleServerDoc::XDataObject::AddRef() 1161 unsigned long COleServerItem::XDataObject::AddRef() 1162 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef() 1163 unsigned long COleDropSource::XDropSource::AddRef() 1164 unsigned long COleDropTarget::XDropTarget::AddRef() 1165 unsigned long CEnumArray::XEnumVOID::AddRef() 1166 unsigned long COleControlSite::XEventSink::AddRef() 1167 unsigned long COleControl::XFontNotification::AddRef() 1168 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1169 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1170 unsigned long COleControl::XOleCache::AddRef() 1171 unsigned long COleClientItem::XOleClientSite::AddRef() 1172 unsigned long COleControlSite::XOleClientSite::AddRef() 1173 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1174 unsigned long COleFrameHook::XOleCommandTarget::AddRef() 1175 unsigned long COleControlContainer::XOleContainer::AddRef() 1176 unsigned long COleControl::XOleControl::AddRef() 1177 unsigned long COleControlSite::XOleControlSite::AddRef() 1178 unsigned long CDocObjectServer::XOleDocument::AddRef() 1179 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef() 1180 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1181 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1182 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1183 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1184 unsigned long COleControl::XOleInPlaceObject::AddRef() 1185 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1186 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1187 unsigned long COleClientItem::XOleIPSite::AddRef() 1188 unsigned long COleControlSite::XOleIPSite::AddRef() 1189 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1190 unsigned long CDocObjectServer::XOleObject::AddRef() 1191 unsigned long COleControl::XOleObject::AddRef() 1192 unsigned long COleServerDoc::XOleObject::AddRef() 1193 unsigned long COleServerItem::XOleObject::AddRef() 1194 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1195 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1196 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1197 unsigned long COleControl::XPersistMemory::AddRef() 1198 unsigned long COleControl::XPersistPropertyBag::AddRef() 1199 unsigned long COleControl::XPersistStorage::AddRef() 1200 unsigned long COleServerDoc::XPersistStorage::AddRef() 1201 unsigned long COleControl::XPersistStreamInit::AddRef() 1202 unsigned long COleControl::XPointerInactive::AddRef() 1203 unsigned long CDocObjectServer::XPrint::AddRef() 1204 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1205 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1206 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1207 unsigned long COleControl::XProvideClassInfo::AddRef() 1208 unsigned long COleControl::XQuickActivate::AddRef() 1209 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1210 unsigned long COleControlSite::XRowsetNotify::AddRef() 1211 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1212 unsigned long COleControl::XViewObject::AddRef() 1213 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1214 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1215 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1216 CPropertySection * CPropertySet::AddSection(_GUID) 1217 void CPropertySet::AddSection(CPropertySection *) 1218 void COlePasteSpecialDialog::AddStandardFormats(int) 1219 int CComboBox::AddString(char const *) 1220 int CComboBoxEx::AddString(char const *) 1221 int CListBox::AddString(char const *) 1222 int CToolBarCtrl::AddString(unsigned int) 1223 int CToolBarCtrl::AddStrings(char const *) 1224 __POSITION * CObList::AddTail(CObject *) 1225 void CObList::AddTail(CObList *) 1226 __POSITION * CPtrList::AddTail(void *) 1227 void CPtrList::AddTail(CPtrList *) 1228 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1229 __POSITION * CStringList::AddTail(char const *) 1230 void CStringList::AddTail(CStringList *) 1231 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1232 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1233 void CWinApp::AddToRecentFileList(char const *) 1234 void CDocument::AddView(CView *) 1235 void CMetaFileDC::AdjustCP(int) 1236 void CRichEditView::AdjustDialogPosition(CDialog *) 1237 void CRectTracker::AdjustRect(int,tagRECT *) 1238 void CTabCtrl::AdjustRect(int,tagRECT *) 1239 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1240 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1241 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1242 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1243 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1244 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1245 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1246 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1247 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1248 void AfxAbort() 1249 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1254 int AfxAssertFailedLine(char const *,int) 1255 void AfxAssertValidObject(CObject const *,char const *,int) 1256 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1257 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1258 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1259 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1260 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1261 void AfxCancelModes(HWND__ *) 1262 void AfxCheckError(long) 1263 int AfxCheckMemory() 1264 void AfxClassInit(CRuntime*) 1265 int AfxComparePath(char const *,char const *) 1266 int AfxCompareValueByRef(void *,void *,int) 1267 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1268 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1269 void AfxCopyValueByRef(void *,void *,long *,int) 1270 void AfxCoreInitModule() 1271 HDC__ * AfxCreateDC(void *,void *) 1272 int AfxCriticalInit() 1273 int AfxCriticalNewHandler(unsigned int) 1274 void AfxCriticalTerm() 1275 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1276 AUX_DATA afxData 1277 void AfxDeleteObject(void * *) 1278 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1279 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1280 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1281 int AfxDiagnosticInit() 1282 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1283 long AfxDllCanUnloadNow() 1284 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1285 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1286 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1287 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1288 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1289 CDumpContext afxDump 1290 void AfxDump(CObject const *) 1291 int AfxDumpMemoryLeaks() 1292 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1293 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1294 void AfxEnableControlContainer(COccManager *) 1295 int AfxEnableMemoryTracking(int) 1296 int AfxEndDeferRegisterClass(long) 1297 void AfxEndThread(unsigned int,int) 1298 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1299 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1300 void AfxFailMaxChars(CDataExchange *,int) 1301 void AfxFailRadio(CDataExchange *) 1302 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1303 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1304 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1305 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1306 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1307 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1308 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1309 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1310 int AfxFreeLibrary(HINSTANCE__ *) 1311 void AfxFreeMemoryDebug(void *,int) 1312 int AfxFullPath(char *,char const *) 1313 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1314 CWinApp * AfxGetApp() 1315 AFX_MODULE_STATE * AfxGetAppModuleState() 1316 char const * AfxGetAppName() 1317 long AfxGetClassIDFromString(char const *,_GUID *) 1318 tagMSG * AfxGetCurrentMessage() 1319 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1320 unsigned long AfxGetDllVersion() 1321 char const * AfxGetFacilityString(long) 1322 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1323 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1324 char const * AfxGetFullScodeString(long) 1325 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1326 void * AfxGetHENV() 1327 char const * AfxGetIIDString(_GUID const &) 1328 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1329 HINSTANCE__ * AfxGetInstanceHandle() 1330 unsigned long AfxGetInternetHandleType(void *) 1331 CWnd * AfxGetMainWnd() 1332 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1333 AFX_MODULE_STATE * AfxGetModuleState() 1334 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1335 int (__cdecl*AfxGetNewHandler())(unsigned int) 1336 HWND__ * AfxGetParentOwner(HWND__ *) 1337 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1338 HINSTANCE__ * AfxGetResourceHandle() 1339 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1340 void AfxGetRoot(char const *,ATL::CStringT > > &) 1341 char const * AfxGetScodeRangeString(long) 1342 char const * AfxGetScodeString(long) 1343 char const * AfxGetSeverityString(long) 1344 ATL::IAtlStringMgr * AfxGetStringManager() 1345 CWinThread * AfxGetThread() 1346 _AFX_THREAD_STATE * AfxGetThreadState() 1347 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1348 void AfxGlobalFree(void *) 1349 int AfxHelpEnabled() 1350 void AfxHookWindowCreate(CWnd *) 1351 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1352 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1353 void AfxInitLocalData(HINSTANCE__ *) 1354 int AfxInitRichEdit() 1355 void AfxInitThread() 1356 int AfxInternalIsIdleMessage(tagMSG *) 1357 int AfxInternalPreTranslateMessage(tagMSG *) 1358 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1359 int AfxInternalPumpMessage() 1360 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1361 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1362 int AfxIsDescendant(HWND__ *,HWND__ *) 1363 int AfxIsIdleMessage(tagMSG *) 1364 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1365 int AfxIsValidAddress(void const *,unsigned int,int) 1366 int AfxIsValidString(wchar_t const *,int) 1367 int AfxIsValidString(char const *,int) 1368 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1369 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1370 HINSTANCE__ * AfxLoadLibrary(char const *) 1371 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1372 int AfxLoadString(unsigned int,char *,unsigned int) 1373 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1374 void AfxLockGlobals(int) 1375 void AfxLockTempMaps() 1376 CHandleMap * afxMapHDC(int) 1377 CHandleMap * afxMapHGDIOBJ(int) 1378 CHandleMap * afxMapHIMAGELIST(int) 1379 CHandleMap * afxMapHMENU(int) 1380 CHandleMap * afxMapHWND(int) 1381 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1382 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1383 int AfxMessageBox(char const *,unsigned int,unsigned int) 1384 int AfxNewHandler(unsigned int) 1385 int AfxOleCanExitApp() 1386 COleMessageFilter * AfxOleGetMessageFilter() 1387 int AfxOleGetUserCtrl() 1388 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1389 int AfxOleInit() 1390 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1391 void AfxOleLockApp() 1392 int AfxOleLockControl(_GUID const &) 1393 int AfxOleLockControl(char const *) 1394 void AfxOleOnReleaseAllObjects() 1395 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1396 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1397 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1398 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1399 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1400 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1401 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1402 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1403 void AfxOleSetUserCtrl(int) 1404 void AfxOleTerm(int) 1405 void AfxOleTermOrFreeLib(int,int) 1406 void AfxOleUnlockAllControls() 1407 void AfxOleUnlockApp() 1408 int AfxOleUnlockControl(_GUID const &) 1409 int AfxOleUnlockControl(char const *) 1410 int AfxOleUnregisterClass(_GUID const &,char const *) 1411 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1412 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1413 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1414 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1415 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1416 void AfxPostQuitMessage(int) 1417 int AfxPreTranslateMessage(tagMSG *) 1418 long AfxProcessWndProcException(CException *,tagMSG const *) 1419 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1420 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1421 int AfxPumpMessage() 1422 unsigned int AfxReadStringLength(CArchive &,int &) 1423 int AfxRegisterClass(tagWNDCLASSA *) 1424 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1425 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1426 void AfxResetMsgCache() 1427 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1428 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1429 void AfxSafeArrayInit(COleSafeArray *) 1430 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1431 void AfxSetAllocStop(long) 1432 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1433 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1434 void AfxSetResourceHandle(HINSTANCE__ *) 1435 void AfxSetWindowText(HWND__ *,char const *) 1436 void AfxSocketTerm() 1437 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1438 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1439 void AfxStoreField(CRecordset &,unsigned int,void *) 1440 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1441 wchar_t * AfxTaskStringA2W(char const *) 1442 char * AfxTaskStringW2A(wchar_t const *) 1443 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1444 void AfxTermLocalData(HINSTANCE__ *,int) 1445 void AfxTermThread(HINSTANCE__ *) 1446 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1447 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1448 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1449 void AfxThrowArchiveException(int,char const *) 1450 void AfxThrowDBException(short,CDatabase *,void *) 1451 void AfxThrowFileException(int,long,char const *) 1452 void AfxThrowInternetException(unsigned long,unsigned long) 1453 void AfxThrowLastCleanup() 1454 void AfxThrowMemoryException() 1455 void AfxThrowNotSupportedException() 1456 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1457 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1458 void AfxThrowOleException(long) 1459 void AfxThrowResourceException() 1460 void AfxThrowUserException() 1461 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1462 void AfxTlsAddRef() 1463 void AfxTlsRelease() 1464 void AfxTrace(char const *,...) 1465 int afxTraceEnabled 1466 unsigned int afxTraceFlags 1467 void AfxTrackerTerm() 1468 void AfxTryCleanup() 1469 int AfxUnhookWindowCreate() 1470 void AfxUnlockGlobals(int) 1471 int AfxUnlockTempMaps(int) 1472 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1473 void AfxVariantInit(tagVARIANT *) 1474 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1475 char * AfxW2AHelper(char *,wchar_t const *,int) 1476 void AfxWingdixTerm() 1477 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1478 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1479 void AfxWinTerm() 1480 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1481 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1482 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1483 void AfxWriteStringLength(CArchive &,unsigned int,int) 1484 void * CFixedAlloc::Alloc() 1485 void * CFixedAllocNoSync::Alloc() 1486 unsigned char * CMemFile::Alloc(unsigned long) 1487 unsigned char * CSharedFile::Alloc(unsigned long) 1488 void CRecordset::AllocAndCacheFieldInfo() 1489 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1490 void CDatabase::AllocConnect(unsigned long) 1491 void COleSafeArray::AllocData() 1492 void CRecordset::AllocDataCache() 1493 void COleSafeArray::AllocDescriptor(unsigned long) 1494 int CControlBar::AllocElements(int,int) 1495 int CStatusBar::AllocElements(int,int) 1496 int CRecordset::AllocHstmt() 1497 void CPropertyPage::AllocPSP(unsigned long) 1498 void CRecordset::AllocRowset() 1499 int CThreadSlotData::AllocSlot() 1500 void CRecordset::AllocStatusArrays() 1501 void * CProperty::AllocValue(unsigned long) 1502 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1503 short COleControl::AmbientAppearance() 1504 unsigned long COleControl::AmbientBackColor() 1505 ATL::CStringT > > COleControl::AmbientDisplayName() 1506 IFontDisp * COleControl::AmbientFont() 1507 unsigned long COleControl::AmbientForeColor() 1508 unsigned long COleControl::AmbientLocaleID() 1509 ATL::CStringT > > COleControl::AmbientScaleUnits() 1510 int COleControl::AmbientShowGrabHandles() 1511 int COleControl::AmbientShowHatching() 1512 short COleControl::AmbientTextAlign() 1513 int COleControl::AmbientUIDead() 1514 int COleControl::AmbientUserMode() 1515 int CDC::AngleArc(int,int,int,float,float) 1516 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1517 int CByteArray::Append(CByteArray const &) 1518 int CDWordArray::Append(CDWordArray const &) 1519 int CObArray::Append(CObArray const &) 1520 int CPtrArray::Append(CPtrArray const &) 1521 int CStringArray::Append(CStringArray const &) 1522 int CUIntArray::Append(CUIntArray const &) 1523 int CWordArray::Append(CWordArray const &) 1524 void CRecordset::AppendFilterAndSortSQL() 1525 int CMenu::AppendMenuA(unsigned int,unsigned int,char const *) 1526 int CMenu::AppendMenuA(unsigned int,unsigned int,CBitmap const *) 1527 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1528 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1529 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1530 long COlePropertyPage::XPropertyPage::Apply() 1531 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1532 int COleDocument::ApplyPrintDevice(tagPDA const *) 1533 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1534 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1535 int CDC::Arc(int,int,int,int,int,int,int,int) 1536 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1537 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1538 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1539 int CListCtrl::Arrange(unsigned int) 1540 unsigned int CWnd::ArrangeIconicWindows() 1541 void CAsyncMonikerFile::AssertValid()const 1542 void CAsyncSocket::AssertValid()const 1543 void CBitmapButton::AssertValid()const 1544 void CByteArray::AssertValid()const 1545 void CCachedDataPathProperty::AssertValid()const 1546 void CClientDC::AssertValid()const 1547 void CCmdTarget::AssertValid()const 1548 void CControlBar::AssertValid()const 1549 void CCtrlView::AssertValid()const 1550 void CDatabase::AssertValid()const 1551 void CDataPathProperty::AssertValid()const 1552 void CDC::AssertValid()const 1553 void CDialog::AssertValid()const 1554 void CDocItem::AssertValid()const 1555 void CDockBar::AssertValid()const 1556 void CDocManager::AssertValid()const 1557 void CDocObjectServer::AssertValid()const 1558 void CDocObjectServerItem::AssertValid()const 1559 void CDocTemplate::AssertValid()const 1560 void CDocument::AssertValid()const 1561 void CDWordArray::AssertValid()const 1562 void CDynLinkLibrary::AssertValid()const 1563 void CEditView::AssertValid()const 1564 void CFile::AssertValid()const 1565 void CFileFind::AssertValid()const 1566 void CFormView::AssertValid()const 1567 void CFrameWnd::AssertValid()const 1568 void CFtpConnection::AssertValid()const 1569 void CFtpFileFind::AssertValid()const 1570 void CGdiObject::AssertValid()const 1571 void CGopherConnection::AssertValid()const 1572 void CGopherFile::AssertValid()const 1573 void CGopherFileFind::AssertValid()const 1574 void CHtmlEditDoc::AssertValid()const 1575 void CHtmlEditView::AssertValid()const 1576 void CHtmlView::AssertValid()const 1577 void CHttpConnection::AssertValid()const 1578 void CHttpFile::AssertValid()const 1579 void CImageList::AssertValid()const 1580 void CInternetConnection::AssertValid()const 1581 void CInternetFile::AssertValid()const 1582 void CLongBinary::AssertValid()const 1583 void CMapPtrToPtr::AssertValid()const 1584 void CMapPtrToWord::AssertValid()const 1585 void CMapStringToOb::AssertValid()const 1586 void CMapStringToPtr::AssertValid()const 1587 void CMapStringToString::AssertValid()const 1588 void CMapWordToOb::AssertValid()const 1589 void CMapWordToPtr::AssertValid()const 1590 void CMDIChildWnd::AssertValid()const 1591 void CMDIFrameWnd::AssertValid()const 1592 void CMemFile::AssertValid()const 1593 void CMenu::AssertValid()const 1594 void CMonikerFile::AssertValid()const 1595 void CMultiDocTemplate::AssertValid()const 1596 void CObArray::AssertValid()const 1597 void CObject::AssertValid()const 1598 void CObList::AssertValid()const 1599 void COleChangeSourceDialog::AssertValid()const 1600 void COleClientItem::AssertValid()const 1601 void COleCntrFrameWnd::AssertValid()const 1602 void COleControl::AssertValid()const 1603 void COleDataSource::AssertValid()const 1604 void COleDocIPFrameWnd::AssertValid()const 1605 void COleDocument::AssertValid()const 1606 void COleDropTarget::AssertValid()const 1607 void COleIPFrameWnd::AssertValid()const 1608 void COleLinkingDoc::AssertValid()const 1609 void COleLinksDialog::AssertValid()const 1610 void COleMessageFilter::AssertValid()const 1611 void COleObjectFactory::AssertValid()const 1612 void COlePasteSpecialDialog::AssertValid()const 1613 void COlePropertiesDialog::AssertValid()const 1614 void COleServerDoc::AssertValid()const 1615 void COleServerItem::AssertValid()const 1616 void COleStreamFile::AssertValid()const 1617 void CPaintDC::AssertValid()const 1618 void CPreviewDC::AssertValid()const 1619 void CPreviewView::AssertValid()const 1620 void CPropertyPage::AssertValid()const 1621 void CPropertySheet::AssertValid()const 1622 void CPtrArray::AssertValid()const 1623 void CPtrList::AssertValid()const 1624 void CRecordset::AssertValid()const 1625 void CRecordView::AssertValid()const 1626 void CRichEditCntrItem::AssertValid()const 1627 void CRichEditDoc::AssertValid()const 1628 void CRichEditView::AssertValid()const 1629 void CScrollView::AssertValid()const 1630 void CSingleDocTemplate::AssertValid()const 1631 void CSocket::AssertValid()const 1632 void CSocketFile::AssertValid()const 1633 void CSplitterWnd::AssertValid()const 1634 void CStatusBar::AssertValid()const 1635 void CStringArray::AssertValid()const 1636 void CStringList::AssertValid()const 1637 void CSyncObject::AssertValid()const 1638 void CToolBar::AssertValid()const 1639 void CUIntArray::AssertValid()const 1640 void CView::AssertValid()const 1641 void CWinApp::AssertValid()const 1642 void CWindowDC::AssertValid()const 1643 void CWinThread::AssertValid()const 1644 void CWnd::AssertValid()const 1645 void CWordArray::AssertValid()const 1646 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1647 int CAsyncSocket::AsyncSelect(long) 1648 int CAsyncSocket::Attach(unsigned int,long) 1649 int CDC::Attach(HDC__ *) 1650 int CGdiObject::Attach(void *) 1651 int CImageList::Attach(_IMAGELIST *) 1652 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1653 int CMenu::Attach(HMENU__ *) 1654 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1655 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1656 void COleDataObject::Attach(IDataObject *,int) 1657 void COleSafeArray::Attach(tagVARIANT &) 1658 void COleStreamFile::Attach(IStream *) 1659 void COleVariant::Attach(tagVARIANT &) 1660 int CSocket::Attach(unsigned int) 1661 int CWnd::Attach(HWND__ *) 1662 int COleDataObject::AttachClipboard() 1663 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1664 void CWnd::AttachControlSite(CHandleMap *) 1665 void CWnd::AttachControlSite(CWnd *,unsigned int) 1666 void COleClientItem::AttachDataObject(COleDataObject &)const 1667 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1668 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1669 CPrintDialog * CPrintDialog::AttachOnSetup() 1670 void COleControlSite::AttachWindow() 1671 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1672 void CToolBarCtrl::AutoSize() 1673 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1674 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1675 void COleMessageFilter::BeginBusyState() 1676 void COleLinkingDoc::BeginDeferErrors() 1677 int CDragListBox::BeginDrag(CPoint) 1678 int CImageList::BeginDrag(int,CPoint) 1679 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1680 void COleDataObject::BeginEnumFormats() 1681 void CFrameWnd::BeginModalState() 1682 void CWnd::BeginModalState() 1683 CDC * CWnd::BeginPaint(tagPAINT*) 1684 int CDC::BeginPath() 1685 int CDatabase::BeginTrans() 1686 void CCmdTarget::BeginWaitCursor() 1687 int CAsyncSocket::Bind(unsigned int,char const *) 1688 int CAsyncSocket::Bind(sockaddr const *,int) 1689 void CDataSourceControl::BindColumns() 1690 void COccManager::BindControls(CWnd *) 1691 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1692 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1693 void CRecordset::BindFieldsForUpdate() 1694 unsigned int CRecordset::BindFieldsToColumns() 1695 void CDatabase::BindParameters(void *) 1696 unsigned int CRecordset::BindParams(void *) 1697 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1698 void CDataSourceControl::BindProp(COleControlSite *,int) 1699 void COleControlSite::BindProperty(long,CWnd *) 1700 void CWnd::BindProperty(long,CWnd *) 1701 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1702 void COleControl::BoundPropertyChanged(long) 1703 int COleControl::BoundPropertyRequestEdit(long) 1704 void CFrameWnd::BringToTop(int) 1705 void CWnd::BringWindowToTop() 1706 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1707 void CDBException::BuildErrorString(CDatabase *,void *,int) 1708 void CPropertySheet::BuildPropPageArray() 1709 void CRecordset::BuildSelectSQL() 1710 int COleControl::BuildSharedMenu() 1711 int COleDocIPFrameWnd::BuildSharedMenu() 1712 int COleIPFrameWnd::BuildSharedMenu() 1713 void CRecordset::BuildSQL(char const *) 1714 void CRecordset::BuildUpdateSQL() 1715 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1716 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1717 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1718 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1719 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1720 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1721 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1722 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1723 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1724 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1725 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1726 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1727 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1728 CSize CControlBar::CalcFixedLayout(int,int) 1729 CSize CDialogBar::CalcFixedLayout(int,int) 1730 CSize CDockBar::CalcFixedLayout(int,int) 1731 CSize CReBar::CalcFixedLayout(int,int) 1732 CSize CStatusBar::CalcFixedLayout(int,int) 1733 CSize CToolBar::CalcFixedLayout(int,int) 1734 void CControlBar::CalcInsideRect(CRect &,int)const 1735 void CStatusBar::CalcInsideRect(CRect &,int)const 1736 CSize CToolBar::CalcLayout(unsigned long,int) 1737 int CCheckListBox::CalcMinimumItemHeight() 1738 CSize CPreviewView::CalcPageDisplaySize() 1739 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1740 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1741 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1742 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1743 void CView::CalcWindowRect(tagRECT *,unsigned int) 1744 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1745 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1746 int CDHtmlDialog::CanAccessExternal() 1747 int COleClientItem::CanActivate() 1748 int CRichEditCntrItem::CanActivate() 1749 int CSplitterWnd::CanActivateNext(int) 1750 int CRecordset::CanAppend()const 1751 int CRecordset::CanBookmark()const 1752 void CDatabase::Cancel() 1753 void CRecordset::Cancel() 1754 void CSocket::CancelBlockingCall() 1755 void CDragListBox::CancelDrag(CPoint) 1756 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1757 long COleUILinkInfo::CancelLink(unsigned long) 1758 void CDockContext::CancelLoop() 1759 void CPropertyPage::CancelToClose() 1760 void CWnd::CancelToolTips(int) 1761 void CRecordset::CancelUpdate() 1762 int CDocument::CanCloseFrame(CFrameWnd *) 1763 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1764 int COleClientItem::CanCreateFromData(COleDataObject const *) 1765 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1766 unsigned long CDockContext::CanDock() 1767 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1768 int CFrameWnd::CanEnterHelpMode() 1769 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1770 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1771 int COleClientItem::CanPaste() 1772 int CRichEditCtrl::CanPaste(unsigned int)const 1773 int CRichEditView::CanPaste()const 1774 int COleClientItem::CanPasteLink() 1775 int CRichEditCtrl::CanRedo()const 1776 int CRecordset::CanRestart()const 1777 int CRecordset::CanScroll()const 1778 int CDatabase::CanTransact()const 1779 int CRecordset::CanTransact()const 1780 int CEdit::CanUndo()const 1781 int CRichEditCtrl::CanUndo()const 1782 int CDatabase::CanUpdate()const 1783 int CRecordset::CanUpdate()const 1784 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1785 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1786 void CScrollView::CenterOnPoint(CPoint) 1787 void CWnd::CenterWindow(CWnd *) 1788 int CWnd::ChangeClipboardChain(HWND__ *) 1789 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1790 int CEdit::CharFromPos(CPoint)const 1791 int CRichEditCtrl::CharFromPos(CPoint)const 1792 int CListBox::CharToItem(unsigned int,unsigned int) 1793 int CDatabase::Check(short)const 1794 int CRecordset::Check(short)const 1795 int CDialog::CheckAutoCenter() 1796 int CWnd::CheckAutoCenter() 1797 int CToolBarCtrl::CheckButton(int,int) 1798 void CArchive::CheckCount() 1799 void COleControlContainer::CheckDlgButton(int,unsigned int) 1800 void CWnd::CheckDlgButton(int,unsigned int) 1801 int CCheckListBox::CheckFromPoint(CPoint,int &) 1802 void COleClientItem::CheckGeneral(long) 1803 int CDatabase::CheckHstmt(short,void *)const 1804 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1805 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1806 void CMemoryState::Checkpoint() 1807 void COleControlContainer::CheckRadioButton(int,int,int) 1808 void CWnd::CheckRadioButton(int,int,int) 1809 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1810 void CRecordset::CheckRowsetError(short) 1811 void CScrollView::CheckScrollBars(int &,int &)const 1812 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1813 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1814 int CDC::Chord(int,int,int,int,int,int,int,int) 1815 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1816 void CPropertyPage::Cleanup() 1817 void COlePropertyPage::CleanupObjectArray() 1818 void CComboBox::Clear() 1819 void CDBVariant::Clear() 1820 void CDockState::Clear() 1821 void CEdit::Clear() 1822 void COleSafeArray::Clear() 1823 void COleVariant::Clear() 1824 void CRichEditCtrl::Clear() 1825 void CIPAddressCtrl::ClearAddress() 1826 int CHeaderCtrl::ClearAllFilters() 1827 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1828 void CRecordset::ClearFieldStatus() 1829 int CHeaderCtrl::ClearFilter(int) 1830 void CRecordset::ClearNullFieldStatus(unsigned long) 1831 void CRecordset::ClearNullParamStatus(unsigned long) 1832 void CSliderCtrl::ClearSel(int) 1833 void CSliderCtrl::ClearTics(int) 1834 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1835 void CWnd::ClientToScreen(tagPOINT *)const 1836 void CWnd::ClientToScreen(tagRECT *)const 1837 int COleControl::ClipCaretRect(tagRECT *) 1838 void CPreviewDC::ClipToPage() 1839 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1840 long CArchiveStream::Clone(IStream * *) 1841 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1842 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1843 int CAnimateCtrl::Close() 1844 void CArchive::Close() 1845 void CAsyncMonikerFile::Close() 1846 void CAsyncSocket::Close() 1847 void CCachedDataPathProperty::Close() 1848 void CDatabase::Close() 1849 void CFile::Close() 1850 void CFileFind::Close() 1851 void CInternetConnection::Close() 1852 void CInternetFile::Close() 1853 void CInternetSession::Close() 1854 void CMemFile::Close() 1855 HMETAFILE__ * CMetaFileDC::Close() 1856 void CMirrorFile::Close() 1857 void CMonikerFile::Close() 1858 void COleClientItem::Close(enum tagOLECLOSE) 1859 void COleStreamFile::Close() 1860 void CRecordset::Close() 1861 void CSocket::Close() 1862 void CSocketFile::Close() 1863 void CStdioFile::Close() 1864 long CDocObjectServer::XOleObject::Close(unsigned long) 1865 long COleControl::XOleObject::Close(unsigned long) 1866 long COleServerDoc::XOleObject::Close(unsigned long) 1867 long COleServerItem::XOleObject::Close(unsigned long) 1868 void CDocManager::CloseAllDocuments(int) 1869 void CDocTemplate::CloseAllDocuments(int) 1870 void CWinApp::CloseAllDocuments(int) 1871 void CFileFind::CloseContext() 1872 void CFtpFileFind::CloseContext() 1873 void CGopherFileFind::CloseContext() 1874 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 1875 int CDC::CloseFigure() 1876 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1877 void CWnd::CloseWindow() 1878 int CRgn::CombineRgn(CRgn *,CRgn *,int) 1879 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1880 int CStatusBar::CommandToIndex(unsigned int)const 1881 int CToolBar::CommandToIndex(unsigned int)const 1882 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 1883 long CArchiveStream::Commit(unsigned long) 1884 void COleClientItem::CommitItem(int) 1885 void COleDocument::CommitItems(int,IStorage *) 1886 int CDatabase::CommitTrans() 1887 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 1888 void CPropertyPage::CommonConstruct(char const *,unsigned int) 1889 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 1890 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1891 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1892 void CWinThread::CommonConstruct() 1893 int CComboBox::CompareItem(tagCOMPAREITEM*) 1894 int CListBox::CompareItem(tagCOMPAREITEM*) 1895 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 1896 int CAsyncSocket::Connect(char const *,unsigned int) 1897 int CAsyncSocket::Connect(sockaddr const *,int) 1898 int CDatabase::Connect(unsigned long) 1899 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1900 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1901 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1902 int CSocket::ConnectHelper(sockaddr const *,int) 1903 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1904 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1905 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1906 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1907 void COleServerDoc::ConnectView(CWnd *,CView *) 1908 void CPropertyPage::Construct(unsigned int,unsigned int) 1909 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1910 void CPropertyPage::Construct(char const *,unsigned int) 1911 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 1912 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1913 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1914 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 1915 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1916 void CRectTracker::Construct() 1917 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1918 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1919 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1920 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1921 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1922 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1923 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1924 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1925 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1926 int CPropertySheet::ContinueModal() 1927 int CWnd::ContinueModal() 1928 void CCmdUI::ContinueRouting() 1929 void COleControl::ControlInfoChanged() 1930 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1931 int COleClientItem::ConvertTo(_GUID const &) 1932 int CRichEditCntrItem::ConvertTo(_GUID const &) 1933 void CByteArray::Copy(CByteArray const &) 1934 void CComboBox::Copy() 1935 void CDWordArray::Copy(CDWordArray const &) 1936 void CEdit::Copy() 1937 int CImageList::Copy(int,int,unsigned int) 1938 int CImageList::Copy(int,CImageList *,int,unsigned int) 1939 void CObArray::Copy(CObArray const &) 1940 void COleSafeArray::Copy(tagSAFEARRAY * *) 1941 void CPtrArray::Copy(CPtrArray const &) 1942 void CRichEditCtrl::Copy() 1943 void CStringArray::Copy(CStringArray const &) 1944 void CUIntArray::Copy(CUIntArray const &) 1945 void CWordArray::Copy(CWordArray const &) 1946 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1947 void CopyElements(COleVariant *,COleVariant const *,int) 1948 int CRgn::CopyRgn(CRgn *) 1949 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1950 void COleClientItem::CopyToClipboard(int) 1951 void COleServerItem::CopyToClipboard(int) 1952 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1953 int CAsyncSocket::Create(unsigned int,int,long,char const *) 1954 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1955 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1956 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1957 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1958 int CControlFrameWnd::Create(char const *) 1959 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1960 int CDialog::Create(unsigned int,CWnd *) 1961 int CDialog::Create(char const *,CWnd *) 1962 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 1963 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 1964 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1965 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1966 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 1967 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1968 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 1969 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1970 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1971 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1972 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1973 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1974 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1975 int CImageList::Create(int,int,unsigned int,int,int) 1976 int CImageList::Create(unsigned int,int,int,unsigned long) 1977 int CImageList::Create(CImageList *) 1978 int CImageList::Create(char const *,int,int,unsigned long) 1979 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1980 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1981 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1982 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1983 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1984 int CMetaFileDC::Create(char const *) 1985 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1986 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1987 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1988 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1989 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1990 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1991 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1992 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1993 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1994 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1995 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1996 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1997 int CReflectorWnd::Create(CRect const &,HWND__ *) 1998 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1999 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2000 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2001 int CSocket::Create(unsigned int,int,char const *) 2002 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2003 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2004 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2005 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2006 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2007 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2008 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2009 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2010 int CToolTipCtrl::Create(CWnd *,unsigned long) 2011 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2012 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2013 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2014 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2015 IBindHost * CMonikerFile::CreateBindHost() 2016 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2017 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2018 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2019 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2020 void CWnd::CreateCaret(CBitmap *) 2021 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 2022 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2023 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2024 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2025 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2026 int CDC::CreateCompatibleDC(CDC *) 2027 void CConnectionPoint::CreateConnectionArray() 2028 COleControlContainer * COccManager::CreateContainer(CWnd *) 2029 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2030 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2031 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2032 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2033 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2034 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2035 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2036 int CWnd::CreateControlContainer(COleControlContainer * *) 2037 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2038 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2039 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2040 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2041 int CDC::CreateDCA(char const *,char const *,char const *,void const *) 2042 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2043 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2044 int CFtpConnection::CreateDirectoryA(char const *) 2045 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2046 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2047 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 2048 int CWnd::CreateDlg(char const *,CWnd *) 2049 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2050 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2051 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 2052 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 2053 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2054 CImageList * CHeaderCtrl::CreateDragImage(int) 2055 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2056 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2057 int CRgn::CreateEllipticRgn(int,int,int,int) 2058 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2059 int CPictureHolder::CreateEmpty() 2060 int CMetaFileDC::CreateEnhanced(CDC *,char const *,tagRECT const *,char const *) 2061 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2062 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2063 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2064 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2065 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2066 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2067 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2068 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2069 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2070 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2071 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2072 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2073 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2074 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2075 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2076 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2077 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2078 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2079 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2080 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2081 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2082 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2083 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2084 int CFont::CreateFontA(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,char const *) 2085 int CFont::CreateFontIndirectA(tagLOGFONTA const *) 2086 CControlFrameWnd * COleControl::CreateFrameWindow() 2087 int CPictureHolder::CreateFromBitmap(unsigned int) 2088 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2089 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2090 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2091 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2092 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2093 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2094 int CPictureHolder::CreateFromIcon(unsigned int) 2095 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2096 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2097 int CRgn::CreateFromPath(CDC *) 2098 void CWnd::CreateGrayCaret(int,int) 2099 int CPalette::CreateHalftonePalette(CDC *) 2100 int CBrush::CreateHatchBrush(int,unsigned long) 2101 int CDC::CreateICA(char const *,char const *,char const *,void const *) 2102 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2103 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2104 int CDialog::CreateIndirect(void *,CWnd *) 2105 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2106 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2107 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2108 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2109 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2110 int COleInsertDialog::CreateItem(COleClientItem *) 2111 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2112 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2113 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2114 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2115 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 2116 CGopherLocator CGopherConnection::CreateLocator(char const *) 2117 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 2118 int COleStreamFile::CreateMemoryStream(CFileException *) 2119 int CMenu::CreateMenu() 2120 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2121 CDocument * CDocTemplate::CreateNewDocument() 2122 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2123 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2124 CObject * CByteArray::CreateObject() 2125 CObject * CDC::CreateObject() 2126 CObject * CDocItem::CreateObject() 2127 CObject * CDockState::CreateObject() 2128 CObject * CDWordArray::CreateObject() 2129 CObject * CEditView::CreateObject() 2130 CObject * CFrameWnd::CreateObject() 2131 CObject * CGdiObject::CreateObject() 2132 CObject * CHtmlEditView::CreateObject() 2133 CObject * CHtmlView::CreateObject() 2134 CObject * CImageList::CreateObject() 2135 CObject * CListView::CreateObject() 2136 CObject * CMapStringToOb::CreateObject() 2137 CObject * CMapStringToString::CreateObject() 2138 CObject * CMapWordToOb::CreateObject() 2139 CObject * CMDIChildWnd::CreateObject() 2140 CObject * CMDIFrameWnd::CreateObject() 2141 CObject * CMenu::CreateObject() 2142 CObject * CMiniDockFrameWnd::CreateObject() 2143 CObject * CMiniFrameWnd::CreateObject() 2144 CObject * CObArray::CreateObject() 2145 CObject * CObList::CreateObject() 2146 CObject * COleDocIPFrameWnd::CreateObject() 2147 CObject * COleIPFrameWnd::CreateObject() 2148 CObject * CPreviewView::CreateObject() 2149 CObject * CRichEditCntrItem::CreateObject() 2150 CObject * CRichEditView::CreateObject() 2151 CObject * CRuntimeClass::CreateObject() 2152 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2153 CObject * CRuntimeClass::CreateObject(char const *) 2154 CObject * CStringArray::CreateObject() 2155 CObject * CStringList::CreateObject() 2156 CObject * CTreeView::CreateObject() 2157 CObject * CWnd::CreateObject() 2158 CObject * CWordArray::CreateObject() 2159 void COleControlContainer::CreateOleFont(CFont *) 2160 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2161 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2162 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2163 int CPalette::CreatePalette(tagLOGPALETTE *) 2164 int CBrush::CreatePatternBrush(CBitmap *) 2165 int CPen::CreatePen(int,int,unsigned long) 2166 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2167 int CPen::CreatePenIndirect(tagLOGPEN *) 2168 int CFont::CreatePointFont(int,char const *,CDC *) 2169 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 2170 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2171 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2172 int CMenu::CreatePopupMenu() 2173 HDC__ * CPageSetupDialog::CreatePrinterDC() 2174 HDC__ * CPrintDialog::CreatePrinterDC() 2175 HDC__ * CPrintDialogEx::CreatePrinterDC() 2176 int CWinApp::CreatePrinterDC(CDC &) 2177 int CRgn::CreateRectRgn(int,int,int,int) 2178 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2179 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2180 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2181 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2182 int CBrush::CreateSolidBrush(unsigned long) 2183 void CWnd::CreateSolidCaret(int,int) 2184 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2185 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2186 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2187 int CGdiObject::CreateStockObject(int) 2188 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 2189 int CBrush::CreateSysColorBrush(int) 2190 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2191 void COleControl::CreateTracker(int,int) 2192 void COleControl::CreateTracker(int,int,tagRECT const *) 2193 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2194 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2195 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2196 void COleControl::CreateWindowForSubclassedControl() 2197 void CToolBarCtrl::Customize() 2198 void CComboBox::Cut() 2199 void CEdit::Cut() 2200 void CRichEditCtrl::Cut() 2201 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2202 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2203 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2204 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2205 void DDP_CBIndex(CDataExchange *,int,int &,char const *) 2206 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2207 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2208 void DDP_Check(CDataExchange *,int,int &,char const *) 2209 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 2210 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 2211 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 2212 void DDP_EndText(CDataExchange *,int,short *,char const *) 2213 void DDP_EndText(CDataExchange *,int,int *,char const *) 2214 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 2215 void DDP_EndText(CDataExchange *,int,long *,char const *) 2216 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 2217 void DDP_EndText(CDataExchange *,int,float *,char const *) 2218 void DDP_EndText(CDataExchange *,int,double *,char const *) 2219 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 2220 void DDP_LBIndex(CDataExchange *,int,int &,char const *) 2221 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2222 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2223 void DDP_PostProcessing(CDataExchange *) 2224 void DDP_Radio(CDataExchange *,int,int &,char const *) 2225 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 2226 void DDP_Text(CDataExchange *,int,short &,char const *) 2227 void DDP_Text(CDataExchange *,int,int &,char const *) 2228 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 2229 void DDP_Text(CDataExchange *,int,long &,char const *) 2230 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 2231 void DDP_Text(CDataExchange *,int,float &,char const *) 2232 void DDP_Text(CDataExchange *,int,double &,char const *) 2233 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 2234 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2235 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2236 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2237 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2238 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2239 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2240 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2241 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2242 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2243 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2244 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2245 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2246 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2247 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2248 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2249 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2250 void DDX_CBIndex(CDataExchange *,int,int &) 2251 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2252 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2253 void DDX_Check(CDataExchange *,int,int &) 2254 void DDX_Control(CDataExchange *,int,CWnd &) 2255 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2256 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2257 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2258 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2259 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2260 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2261 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 2262 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 2263 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 2264 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 2265 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 2266 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 2267 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 2268 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 2269 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 2270 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 2271 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 2272 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 2273 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 2274 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 2275 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 2276 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 2277 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 2278 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 2279 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 2280 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 2281 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 2282 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 2283 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 2284 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 2285 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 2286 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 2287 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 2288 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 2289 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 2290 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 2291 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2292 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2293 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2294 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2295 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2296 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2297 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2298 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2299 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2300 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2301 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2302 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2303 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2304 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2305 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2306 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2307 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2308 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 2309 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2310 void DDX_LBIndex(CDataExchange *,int,int &) 2311 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2312 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2313 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2314 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2315 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2316 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2317 void DDX_OCBool(CDataExchange *,int,long,int &) 2318 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2319 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2320 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2321 void DDX_OCFloat(CDataExchange *,int,long,float &) 2322 void DDX_OCFloat(CDataExchange *,int,long,double &) 2323 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2324 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2325 void DDX_OCInt(CDataExchange *,int,long,int &) 2326 void DDX_OCInt(CDataExchange *,int,long,long &) 2327 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2328 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2329 void DDX_OCShort(CDataExchange *,int,long,short &) 2330 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2331 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2332 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2333 void DDX_Radio(CDataExchange *,int,int &) 2334 void DDX_Scroll(CDataExchange *,int,int &) 2335 void DDX_Slider(CDataExchange *,int,int &) 2336 void DDX_Text(CDataExchange *,int,__int64 &) 2337 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2338 void DDX_Text(CDataExchange *,int,unsigned char &) 2339 void DDX_Text(CDataExchange *,int,short &) 2340 void DDX_Text(CDataExchange *,int,int &) 2341 void DDX_Text(CDataExchange *,int,unsigned int &) 2342 void DDX_Text(CDataExchange *,int,long &) 2343 void DDX_Text(CDataExchange *,int,unsigned long &) 2344 void DDX_Text(CDataExchange *,int,float &) 2345 void DDX_Text(CDataExchange *,int,double &) 2346 void DDX_Text(CDataExchange *,int,_FILETIME &) 2347 void DDX_Text(CDataExchange *,int,_GUID &) 2348 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2349 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2350 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2351 void DDX_Text(CDataExchange *,int,tagDEC &) 2352 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2353 void DDX_Text(CDataExchange *,int,COleCurrency &) 2354 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2355 void DDX_Text(CDataExchange *,int,char *,int) 2356 void COleClientItem::Deactivate() 2357 long COlePropertyPage::XPropertyPage::Deactivate() 2358 int COleServerDoc::DeactivateAndUndo() 2359 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2360 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2361 void COleClientItem::DeactivateUI() 2362 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 2363 long CWnd::Default() 2364 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 2365 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 2366 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 2367 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 2368 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 2369 void CFrameWnd::DelayRecalcLayout(int) 2370 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2371 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2372 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2373 void CControlBar::DelayShow(int) 2374 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2375 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2376 void CFrameWnd::DelayUpdateFrameTitle() 2377 void CException::Delete() 2378 void COleClientItem::Delete(int) 2379 void CRecordset::Delete() 2380 void CWinThread::Delete() 2381 int CListCtrl::DeleteAllItems() 2382 int CTabCtrl::DeleteAllItems() 2383 int CTreeCtrl::DeleteAllItems() 2384 int CReBarCtrl::DeleteBand(unsigned int) 2385 int CToolBarCtrl::DeleteButton(int) 2386 int CListCtrl::DeleteColumn(int) 2387 void CSplitterWnd::DeleteColumn(int) 2388 void CDocument::DeleteContents() 2389 void CEditView::DeleteContents() 2390 void CHtmlEditDoc::DeleteContents() 2391 void COleDocument::DeleteContents() 2392 void COleServerDoc::DeleteContents() 2393 void CRichEditDoc::DeleteContents() 2394 void CRichEditView::DeleteContents() 2395 int CDC::DeleteDC() 2396 int CImageList::DeleteImageList() 2397 void CComboBox::DeleteItem(tagDELETEITEM*) 2398 int CComboBoxEx::DeleteItem(int) 2399 int CHeaderCtrl::DeleteItem(int) 2400 void CListBox::DeleteItem(tagDELETEITEM*) 2401 int CListCtrl::DeleteItem(int) 2402 int CTabCtrl::DeleteItem(int) 2403 int CTreeCtrl::DeleteItem(_TREEITEM *) 2404 int CMenu::DeleteMenu(unsigned int,unsigned int) 2405 int CGdiObject::DeleteObject() 2406 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2407 void CSplitterWnd::DeleteRow(int) 2408 int CComboBox::DeleteString(unsigned int) 2409 int CListBox::DeleteString(unsigned int) 2410 void CHandleMap::DeleteTemp() 2411 void CDC::DeleteTempMap() 2412 void CGdiObject::DeleteTempMap() 2413 void CImageList::DeleteTempMap() 2414 void CMenu::DeleteTempMap() 2415 void CWnd::DeleteTempMap() 2416 void CRichEditDoc::DeleteUnmarkedItems()const 2417 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2418 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2419 void CSplitterWnd::DeleteView(int,int) 2420 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2421 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2422 void CTabCtrl::DeselectAll(int) 2423 void COleSafeArray::Destroy() 2424 int COleControlSite::DestroyControl() 2425 void COleSafeArray::DestroyData() 2426 void COleSafeArray::DestroyDescriptor() 2427 void CFrameWnd::DestroyDockBars() 2428 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2429 int CMenu::DestroyMenu() 2430 void CDHtmlDialog::DestroyModeless() 2431 void COleControl::DestroySharedMenu() 2432 void COleDocIPFrameWnd::DestroySharedMenu() 2433 void COleIPFrameWnd::DestroySharedMenu() 2434 int CToolTipCtrl::DestroyToolTipCtrl() 2435 void COleControl::DestroyTracker() 2436 int CControlBar::DestroyWindow() 2437 int CMDIChildWnd::DestroyWindow() 2438 int CWnd::DestroyWindow() 2439 unsigned int CAsyncSocket::Detach() 2440 HDC__ * CDC::Detach() 2441 void * CDialogTemplate::Detach() 2442 void * CGdiObject::Detach() 2443 _IMAGELIST * CImageList::Detach() 2444 unsigned char * CMemFile::Detach() 2445 HMENU__ * CMenu::Detach() 2446 int CMonikerFile::Detach(CFileException *) 2447 IDataObject * COleDataObject::Detach() 2448 tagVARIANT COleSafeArray::Detach() 2449 IStream * COleStreamFile::Detach() 2450 tagVARIANT COleVariant::Detach() 2451 void * CSharedFile::Detach() 2452 HDC__ * CWindowlessDC::Detach() 2453 HWND__ * CWnd::Detach() 2454 IDispatch * COleDispatchDriver::DetachDispatch() 2455 void CAsyncSocket::DetachHandle(unsigned int,int) 2456 void COleControlSite::DetachWindow() 2457 void CWinApp::DevModeChange(char *) 2458 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2459 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2460 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2461 int CComboBox::Dir(unsigned int,char const *) 2462 int CComboBoxEx::Dir(unsigned int,char const *) 2463 int CListBox::Dir(unsigned int,char const *) 2464 int COleServerDoc::DiscardUndoState() 2465 long COleClientItem::XOleIPSite::DiscardUndoState() 2466 long COleControlSite::XOleIPSite::DiscardUndoState() 2467 void COleDispatchImpl::Disconnect() 2468 void CDHtmlDialog::DisconnectDHtmlElementEvents() 2469 void CDHtmlDialog::DisconnectDHtmlEvents() 2470 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2471 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2472 void CDocument::DisconnectViews() 2473 void CWinThread::DispatchThreadMessage(tagMSG *) 2474 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2475 int CRichEditCtrl::DisplayBand(tagRECT *) 2476 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 2477 int CWnd::DlgDirListA(char *,int,int,unsigned int) 2478 int CWnd::DlgDirListComboBoxA(char *,int,int,unsigned int) 2479 int CWnd::DlgDirSelect(char *,int) 2480 int CWnd::DlgDirSelectComboBox(char *,int) 2481 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2482 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2483 void CAsyncSocket::DoCallBack(unsigned int,long) 2484 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2485 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2486 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2487 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2488 void COleControl::DoClick() 2489 int COleFrameHook::DoContextSensitiveHelp(int) 2490 int COleConvertDialog::DoConvert(COleClientItem *) 2491 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2492 void CWnd::DoDataExchange(CDataExchange *) 2493 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2494 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2495 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2496 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2497 int COleFrameHook::DoEnableModeless(int) 2498 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2499 void CRecordset::DoFieldExchange(CFieldExchange *) 2500 int CDocument::DoFileSave() 2501 int CSplitterWnd::DoKeyboardSplit() 2502 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2503 int CColorDialog::DoModal() 2504 int CDialog::DoModal() 2505 int CFileDialog::DoModal() 2506 int CFontDialog::DoModal() 2507 int COleBusyDialog::DoModal() 2508 int COleChangeIconDialog::DoModal() 2509 int COleChangeSourceDialog::DoModal() 2510 int COleConvertDialog::DoModal() 2511 int COleInsertDialog::DoModal(unsigned long) 2512 int COleInsertDialog::DoModal() 2513 int COleLinksDialog::DoModal() 2514 int COlePasteSpecialDialog::DoModal() 2515 int COlePropertiesDialog::DoModal() 2516 int COleUpdateDialog::DoModal() 2517 int CPageSetupDialog::DoModal() 2518 int CPrintDialog::DoModal() 2519 int CPrintDialogEx::DoModal() 2520 int CPropertySheet::DoModal() 2521 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2522 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2523 void CControlBar::DoPaint(CDC *) 2524 void CDockBar::DoPaint(CDC *) 2525 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2526 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2527 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2528 int CView::DoPreparePrinting(CPrintInfo *) 2529 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2530 int CWinApp::DoPrintDialog(CPrintDialog *) 2531 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2532 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2533 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2534 void COleControl::DoPropExchange(CPropExchange *) 2535 int CDocument::DoSave(char const *,int) 2536 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2537 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2538 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2539 int CCmdUI::DoUpdate(CCmdTarget *,int) 2540 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2541 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2542 long COleControlSite::DoVerb(long,tagMSG *) 2543 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2544 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2545 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2546 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2547 void CWinApp::DoWaitCursor(int) 2548 void CPreviewView::DoZoom(unsigned int,CPoint) 2549 void CDC::DPtoHIMETRIC(tagSIZE *)const 2550 void CDC::DPtoLP(tagPOINT *,int)const 2551 void CDC::DPtoLP(tagRECT *)const 2552 void CDC::DPtoLP(tagSIZE *)const 2553 void CWnd::DragAcceptFiles(int) 2554 int CWnd::DragDetect(tagPOINT)const 2555 int CImageList::DragEnter(CWnd *,CPoint) 2556 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2557 unsigned int CDragListBox::Dragging(CPoint) 2558 int CImageList::DragLeave(CWnd *) 2559 long COleDropTarget::XDropTarget::DragLeave() 2560 int CImageList::DragMove(CPoint) 2561 void CReBarCtrl::DragMove(unsigned long) 2562 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2563 int CImageList::DragShowNolock(int) 2564 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2565 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2566 void CRectTracker::Draw(CDC *)const 2567 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2568 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2569 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2570 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2571 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2572 void CControlBar::DrawBorders(CDC *,CRect &) 2573 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2574 void COleControl::DrawContent(CDC *,CRect &) 2575 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2576 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2577 int CDC::DrawEscape(int,int,char const *) 2578 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2579 void CDC::DrawFocusRect(tagRECT const *) 2580 void CDockContext::DrawFocusRect(int) 2581 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2582 void CControlBar::DrawGripper(CDC *,CRect const &) 2583 int CDC::DrawIcon(int,int,HICON__ *) 2584 int CDC::DrawIcon(tagPOINT,HICON__ *) 2585 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2586 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2587 void CDragListBox::DrawInsert(int) 2588 void CBitmapButton::DrawItem(tagDRAWITEM*) 2589 void CButton::DrawItem(tagDRAWITEM*) 2590 void CCheckListBox::DrawItem(tagDRAWITEM*) 2591 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2592 void CComboBox::DrawItem(tagDRAWITEM*) 2593 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2594 void CListBox::DrawItem(tagDRAWITEM*) 2595 void CListCtrl::DrawItem(tagDRAWITEM*) 2596 void CListView::DrawItem(tagDRAWITEM*) 2597 void CMenu::DrawItem(tagDRAWITEM*) 2598 void CStatic::DrawItem(tagDRAWITEM*) 2599 void CStatusBar::DrawItem(tagDRAWITEM*) 2600 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2601 void CTabCtrl::DrawItem(tagDRAWITEM*) 2602 void CWnd::DrawMenuBar() 2603 void COleControl::DrawMetafile(CDC *,CRect &) 2604 void CDragListBox::DrawSingle(int) 2605 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2606 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2607 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2608 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2609 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2610 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2611 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,HBRUSH__ *) 2612 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,CBrush *) 2613 int CDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2614 int CDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2615 int CMetaFileDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2616 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2617 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2618 int CDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2619 int CDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2620 int CMetaFileDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2621 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2622 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2623 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2624 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2625 void CDragListBox::Dropped(int,CPoint) 2626 void CArchiveException::Dump(CDumpContext &)const 2627 void CAsyncMonikerFile::Dump(CDumpContext &)const 2628 void CAsyncSocket::Dump(CDumpContext &)const 2629 void CBitmap::Dump(CDumpContext &)const 2630 void CBitmapButton::Dump(CDumpContext &)const 2631 void CBrush::Dump(CDumpContext &)const 2632 void CByteArray::Dump(CDumpContext &)const 2633 void CCachedDataPathProperty::Dump(CDumpContext &)const 2634 void CClientDC::Dump(CDumpContext &)const 2635 void CCmdTarget::Dump(CDumpContext &)const 2636 void CColorDialog::Dump(CDumpContext &)const 2637 void CControlBar::Dump(CDumpContext &)const 2638 void CCtrlView::Dump(CDumpContext &)const 2639 void CDatabase::Dump(CDumpContext &)const 2640 void CDataPathProperty::Dump(CDumpContext &)const 2641 void CDC::Dump(CDumpContext &)const 2642 void CDialog::Dump(CDumpContext &)const 2643 void CDocItem::Dump(CDumpContext &)const 2644 void CDockBar::Dump(CDumpContext &)const 2645 void CDocManager::Dump(CDumpContext &)const 2646 void CDocObjectServer::Dump(CDumpContext &)const 2647 void CDocObjectServerItem::Dump(CDumpContext &)const 2648 void CDocTemplate::Dump(CDumpContext &)const 2649 void CDocument::Dump(CDumpContext &)const 2650 void CDWordArray::Dump(CDumpContext &)const 2651 void CDynLinkLibrary::Dump(CDumpContext &)const 2652 void CEditView::Dump(CDumpContext &)const 2653 void CFile::Dump(CDumpContext &)const 2654 void CFileDialog::Dump(CDumpContext &)const 2655 void CFileException::Dump(CDumpContext &)const 2656 void CFileFind::Dump(CDumpContext &)const 2657 void CFileStatus::Dump(CDumpContext &)const 2658 void CFindReplaceDialog::Dump(CDumpContext &)const 2659 void CFont::Dump(CDumpContext &)const 2660 void CFontDialog::Dump(CDumpContext &)const 2661 void CFormView::Dump(CDumpContext &)const 2662 void CFrameWnd::Dump(CDumpContext &)const 2663 void CFtpConnection::Dump(CDumpContext &)const 2664 void CFtpFileFind::Dump(CDumpContext &)const 2665 void CGdiObject::Dump(CDumpContext &)const 2666 void CGopherConnection::Dump(CDumpContext &)const 2667 void CGopherFile::Dump(CDumpContext &)const 2668 void CGopherFileFind::Dump(CDumpContext &)const 2669 void CHtmlEditDoc::Dump(CDumpContext &)const 2670 void CHtmlEditView::Dump(CDumpContext &)const 2671 void CHtmlView::Dump(CDumpContext &)const 2672 void CHttpConnection::Dump(CDumpContext &)const 2673 void CHttpFile::Dump(CDumpContext &)const 2674 void CImageList::Dump(CDumpContext &)const 2675 void CInternetConnection::Dump(CDumpContext &)const 2676 void CInternetException::Dump(CDumpContext &)const 2677 void CInternetFile::Dump(CDumpContext &)const 2678 void CInternetSession::Dump(CDumpContext &)const 2679 void CLongBinary::Dump(CDumpContext &)const 2680 void CMapPtrToPtr::Dump(CDumpContext &)const 2681 void CMapPtrToWord::Dump(CDumpContext &)const 2682 void CMapStringToOb::Dump(CDumpContext &)const 2683 void CMapStringToPtr::Dump(CDumpContext &)const 2684 void CMapStringToString::Dump(CDumpContext &)const 2685 void CMapWordToOb::Dump(CDumpContext &)const 2686 void CMapWordToPtr::Dump(CDumpContext &)const 2687 void CMDIChildWnd::Dump(CDumpContext &)const 2688 void CMDIFrameWnd::Dump(CDumpContext &)const 2689 void CMemFile::Dump(CDumpContext &)const 2690 void CMenu::Dump(CDumpContext &)const 2691 void CMonikerFile::Dump(CDumpContext &)const 2692 void CMultiDocTemplate::Dump(CDumpContext &)const 2693 void CObArray::Dump(CDumpContext &)const 2694 void CObject::Dump(CDumpContext &)const 2695 void CObList::Dump(CDumpContext &)const 2696 void COleBusyDialog::Dump(CDumpContext &)const 2697 void COleChangeIconDialog::Dump(CDumpContext &)const 2698 void COleChangeSourceDialog::Dump(CDumpContext &)const 2699 void COleClientItem::Dump(CDumpContext &)const 2700 void COleControl::Dump(CDumpContext &)const 2701 void COleConvertDialog::Dump(CDumpContext &)const 2702 void COleDataSource::Dump(CDumpContext &)const 2703 void COleDialog::Dump(CDumpContext &)const 2704 void COleDocIPFrameWnd::Dump(CDumpContext &)const 2705 void COleDocument::Dump(CDumpContext &)const 2706 void COleDropSource::Dump(CDumpContext &)const 2707 void COleDropTarget::Dump(CDumpContext &)const 2708 void COleInsertDialog::Dump(CDumpContext &)const 2709 void COleIPFrameWnd::Dump(CDumpContext &)const 2710 void COleLinkingDoc::Dump(CDumpContext &)const 2711 void COleLinksDialog::Dump(CDumpContext &)const 2712 void COleMessageFilter::Dump(CDumpContext &)const 2713 void COleObjectFactory::Dump(CDumpContext &)const 2714 void COlePasteSpecialDialog::Dump(CDumpContext &)const 2715 void COlePropertiesDialog::Dump(CDumpContext &)const 2716 void COleServerDoc::Dump(CDumpContext &)const 2717 void COleServerItem::Dump(CDumpContext &)const 2718 void COleStreamFile::Dump(CDumpContext &)const 2719 void COleUpdateDialog::Dump(CDumpContext &)const 2720 void CPageSetupDialog::Dump(CDumpContext &)const 2721 void CPaintDC::Dump(CDumpContext &)const 2722 void CPen::Dump(CDumpContext &)const 2723 void CPreviewDC::Dump(CDumpContext &)const 2724 void CPreviewView::Dump(CDumpContext &)const 2725 void CPrintDialog::Dump(CDumpContext &)const 2726 void CPrintDialogEx::Dump(CDumpContext &)const 2727 void CPropertyPage::Dump(CDumpContext &)const 2728 void CPropertySheet::Dump(CDumpContext &)const 2729 void CPtrArray::Dump(CDumpContext &)const 2730 void CPtrList::Dump(CDumpContext &)const 2731 void CRecordset::Dump(CDumpContext &)const 2732 void CRecordView::Dump(CDumpContext &)const 2733 void CRichEditCntrItem::Dump(CDumpContext &)const 2734 void CRichEditDoc::Dump(CDumpContext &)const 2735 void CRichEditView::Dump(CDumpContext &)const 2736 void CScrollView::Dump(CDumpContext &)const 2737 void CSingleDocTemplate::Dump(CDumpContext &)const 2738 void CSocket::Dump(CDumpContext &)const 2739 void CSocketFile::Dump(CDumpContext &)const 2740 void CSplitterWnd::Dump(CDumpContext &)const 2741 void CStatusBar::Dump(CDumpContext &)const 2742 void CStdioFile::Dump(CDumpContext &)const 2743 void CStringArray::Dump(CDumpContext &)const 2744 void CStringList::Dump(CDumpContext &)const 2745 void CSyncObject::Dump(CDumpContext &)const 2746 void CToolBar::Dump(CDumpContext &)const 2747 void CUIntArray::Dump(CDumpContext &)const 2748 void CView::Dump(CDumpContext &)const 2749 void CWinApp::Dump(CDumpContext &)const 2750 void CWindowDC::Dump(CDumpContext &)const 2751 void CWinThread::Dump(CDumpContext &)const 2752 void CWnd::Dump(CDumpContext &)const 2753 void CWordArray::Dump(CDumpContext &)const 2754 void CMemoryState::DumpAllObjectsSince()const 2755 CDumpContext & CDumpContext::DumpAsHex(__int64) 2756 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2757 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2758 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2759 CDumpContext & CDumpContext::DumpAsHex(int) 2760 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2761 CDumpContext & CDumpContext::DumpAsHex(long) 2762 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2763 void DumpElements(CDumpContext &,COleVariant const *,int) 2764 void CRecordset::DumpFields(CDumpContext &)const 2765 void CMemoryState::DumpStatistics()const 2766 long COleControl::XDataObject::DUnadvise(unsigned long) 2767 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2768 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2769 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2770 CFile * CFile::Duplicate()const 2771 CFile * CInternetFile::Duplicate()const 2772 CFile * CMemFile::Duplicate()const 2773 CFile * COleStreamFile::Duplicate()const 2774 CFile * CSocketFile::Duplicate()const 2775 CFile * CStdioFile::Duplicate()const 2776 unsigned long const CEditView::dwStyleDefault 2777 void CRecordset::Edit() 2778 int CHeaderCtrl::EditFilter(int,int) 2779 CEdit * CListCtrl::EditLabel(int) 2780 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2781 long COlePropertyPage::XPropertyPage::EditProperty(long) 2782 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2783 unsigned char & CByteArray::ElementAt(int) 2784 unsigned long & CDWordArray::ElementAt(int) 2785 CObject * & CObArray::ElementAt(int) 2786 void * & CPtrArray::ElementAt(int) 2787 ATL::CStringT > > & CStringArray::ElementAt(int) 2788 unsigned int & CUIntArray::ElementAt(int) 2789 unsigned short & CWordArray::ElementAt(int) 2790 int CDC::Ellipse(int,int,int,int) 2791 int CDC::Ellipse(tagRECT const *) 2792 void CDBException::Empty() 2793 void COleDataSource::Empty() 2794 void CEdit::EmptyUndoBuffer() 2795 void CRichEditCtrl::EmptyUndoBuffer() 2796 void CCheckListBox::Enable(int,int) 2797 void CCmdUI::Enable(int) 2798 void COleCmdUI::Enable(int) 2799 void CStatusCmdUI::Enable(int) 2800 void CTestCmdUI::Enable(int) 2801 void CToolCmdUI::Enable(int) 2802 int CWinApp::Enable3dControls() 2803 void CWnd::EnableActiveAccessibility() 2804 void CCmdTarget::EnableAggregation() 2805 void CCmdTarget::EnableAutomation() 2806 void CRecordset::EnableBookmarks() 2807 void COleMessageFilter::EnableBusyDialog(int) 2808 int CToolBarCtrl::EnableButton(int,int) 2809 void COleDocument::EnableCompoundFile(int) 2810 void CCmdTarget::EnableConnections() 2811 void CControlBar::EnableDocking(unsigned long) 2812 void CFrameWnd::EnableDocking(unsigned long) 2813 void CReBar::EnableDocking(unsigned long) 2814 void CStatusBar::EnableDocking(unsigned long) 2815 void COleControlSite::EnableDSC() 2816 void CWinApp::EnableHtmlHelp() 2817 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2818 long CBrowserControlSite::EnableModeless(int) 2819 long CDHtmlDialog::EnableModeless(int) 2820 void CWinApp::EnableModeless(int) 2821 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2822 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2823 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2824 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2825 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2826 void COleMessageFilter::EnableNotRespondingDialog(int) 2827 int CScrollBar::EnableScrollBar(unsigned int) 2828 int CWnd::EnableScrollBar(int,unsigned int) 2829 void CWnd::EnableScrollBarCtrl(int,int) 2830 void CWinApp::EnableShellOpen() 2831 void COleControl::EnableSimpleFrame() 2832 void CPropertySheet::EnableStackedTabs(int) 2833 int CInternetSession::EnableStatusCallback(int) 2834 int CWnd::EnableToolTips(int) 2835 int CWnd::EnableTrackingToolTips(int) 2836 void CCmdTarget::EnableTypeLib() 2837 int COleControlSite::EnableWindow(int) 2838 int CWnd::EnableWindow(int) 2839 void COleMessageFilter::EndBusyState() 2840 void CAsyncMonikerFile::EndCallbacks() 2841 long COleLinkingDoc::EndDeferErrors(long) 2842 void CDialog::EndDialog(int) 2843 void CPropertyPage::EndDialog(int) 2844 void CPropertySheet::EndDialog(int) 2845 int CDC::EndDoc() 2846 void CDockContext::EndDrag() 2847 void CImageList::EndDrag() 2848 void CReBarCtrl::EndDrag() 2849 void CWnd::EndModalLoop(int) 2850 void CFrameWnd::EndModalState() 2851 void CWnd::EndModalState() 2852 int CDC::EndPage() 2853 void CWnd::EndPaint(tagPAINT*) 2854 int CDC::EndPath() 2855 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 2856 void CDockContext::EndResize() 2857 void CCmdTarget::EndWaitCursor() 2858 void COleDataObject::EnsureClipboardObject() 2859 long CWnd::EnsureStdObj() 2860 int CListCtrl::EnsureVisible(int,int) 2861 int CTreeCtrl::EnsureVisible(_TREEITEM *) 2862 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2863 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2864 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2865 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2866 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2867 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2868 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2869 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2870 int COlePropertyPage::EnumControls(HWND__ *,long) 2871 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2872 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2873 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2874 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2875 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2876 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2877 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2878 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2879 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 2880 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2881 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2882 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2883 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2884 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2885 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2886 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2887 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2888 int CRgn::EqualRgn(CRgn *)const 2889 void CControlBar::EraseNonClient() 2890 int CFileException::ErrnoToException(int) 2891 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2892 int CDC::Escape(int,int,char const *,int,char *) 2893 int CDC::Escape(int,int,char const *,void *) 2894 int CMetaFileDC::Escape(int,int,char const *,void *) 2895 int CPreviewDC::Escape(int,int,char const *,void *) 2896 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 2897 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2898 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2899 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2900 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2901 int COleControl::ExchangeExtent(CPropExchange *) 2902 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2903 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2904 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2905 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2906 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2907 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2908 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2909 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2910 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2911 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2912 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2913 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2914 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2915 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2916 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2917 void COleControl::ExchangeStockProps(CPropExchange *) 2918 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2919 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 2920 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2921 int CDC::ExcludeClipRect(int,int,int,int) 2922 int CDC::ExcludeClipRect(tagRECT const *) 2923 int CDC::ExcludeUpdateRgn(CWnd *) 2924 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2925 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2926 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2927 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2928 int CHtmlEditView::ExecHandler(unsigned int) 2929 int CWnd::ExecuteDlgInit(void *) 2930 int CWnd::ExecuteDlgInit(char const *) 2931 void CRecordset::ExecuteSetPosUpdate() 2932 void CDatabase::ExecuteSQL(char const *) 2933 void CRecordset::ExecuteUpdateSQL() 2934 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2935 void CFrameWnd::ExitHelpMode() 2936 int COleControlModule::ExitInstance() 2937 int CWinApp::ExitInstance() 2938 int CWinThread::ExitInstance() 2939 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 2940 unsigned long CCmdTarget::ExternalAddRef() 2941 void CCmdTarget::ExternalDisconnect() 2942 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2943 unsigned long CCmdTarget::ExternalRelease() 2944 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 2945 HICON__ * CImageList::ExtractIconA(int) 2946 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 2947 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2948 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 2949 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2950 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2951 void CDataExchange::Fail() 2952 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2953 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2954 void CArchive::FillBuffer(unsigned int) 2955 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2956 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2957 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2958 int CDC::FillPath() 2959 void CDC::FillRect(tagRECT const *,CBrush *) 2960 int CDC::FillRgn(CRgn *,CBrush *) 2961 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2962 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2963 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2964 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2965 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2966 void CWnd::FilterToolTipMessage(tagMSG *) 2967 __POSITION * CObList::Find(CObject *,__POSITION *)const 2968 __POSITION * CPtrList::Find(void *,__POSITION *)const 2969 __POSITION * CStringList::Find(char const *,__POSITION *)const 2970 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2971 int CDockBar::FindBar(CControlBar *,int) 2972 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2973 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2974 int CFileFind::FindFile(char const *,unsigned long) 2975 int CFtpFileFind::FindFile(char const *,unsigned long) 2976 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2977 int CGopherFileFind::FindFile(char const *,unsigned long) 2978 __POSITION * CObList::FindIndex(int)const 2979 __POSITION * CPtrList::FindIndex(int)const 2980 __POSITION * CStringList::FindIndex(int)const 2981 int CListCtrl::FindItem(tagLVFINDINFOA *,int)const 2982 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2983 int CFindReplaceDialog::FindNext()const 2984 int CFileFind::FindNextFileA() 2985 int CFtpFileFind::FindNextFileA() 2986 int CGopherFileFind::FindNextFileA() 2987 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2988 int CDHtmlDialog::FindSinkForObject(char const *) 2989 char const * CRecordset::FindSQLToken(char const *,char const *) 2990 int CComboBox::FindString(int,char const *)const 2991 int CComboBoxEx::FindString(int,char const *)const 2992 int CListBox::FindString(int,char const *)const 2993 int CComboBox::FindStringExact(int,char const *)const 2994 int CListBox::FindStringExact(int,char const *)const 2995 int CEditView::FindTextA(char const *,int,int) 2996 long CRichEditCtrl::FindTextA(unsigned long,_findtextexa *)const 2997 int CRichEditView::FindTextA(_AFX_RICHEDIT_STATE *) 2998 int CRichEditView::FindTextA(char const *,int,int,int) 2999 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3000 int CRichEditView::FindTextSimple(char const *,int,int,int) 3001 CWnd * CWnd::FindWindowA(char const *,char const *) 3002 CWnd * CWnd::FindWindowExA(HWND__ *,HWND__ *,char const *,char const *) 3003 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3004 int COleClientItem::FinishCreate(long) 3005 void COleControl::FireClick() 3006 void COleControl::FireDblClick() 3007 void COleControl::FireError(long,char const *,unsigned int) 3008 void COleControl::FireEvent(long,unsigned char *,...) 3009 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3010 void COleControl::FireEventV(long,unsigned char *,char *) 3011 void COleControl::FireKeyDown(unsigned short *,short) 3012 void COleControl::FireKeyPress(unsigned short *) 3013 void COleControl::FireKeyUp(unsigned short *,short) 3014 void COleControl::FireMouseDown(short,short,long,long) 3015 void COleControl::FireMouseMove(short,short,long,long) 3016 void COleControl::FireMouseUp(short,short,long,long) 3017 void COleControl::FireReadyStateChange() 3018 void CRecordset::Fixups() 3019 int CWnd::FlashWindow(int) 3020 int CDC::FlattenPath() 3021 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3022 int CDC::FloodFill(int,int,unsigned long) 3023 void CArchive::Flush() 3024 void CDumpContext::Flush() 3025 void CFile::Flush() 3026 void CInternetFile::Flush() 3027 void CMemFile::Flush() 3028 void CMonikerFile::Flush() 3029 void COleStreamFile::Flush() 3030 void CSocketFile::Flush() 3031 void CStdioFile::Flush() 3032 void COleDataSource::FlushClipboard() 3033 int CRecordset::FlushResultSet() 3034 int CEdit::FmtLines(int) 3035 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3036 long CRichEditCtrl::FormatRange(_formatrange *,int) 3037 void COleControl::ForwardActivationMsg(tagMSG *) 3038 void CDC::FrameRect(tagRECT const *,CBrush *) 3039 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3040 void CAfxStringMgr::Free(ATL::CStringData *) 3041 void CDatabase::Free() 3042 void CFixedAlloc::Free(void *) 3043 void CFixedAllocNoSync::Free(void *) 3044 void CMemFile::Free(unsigned char *) 3045 void CSharedFile::Free(unsigned char *) 3046 void CFixedAlloc::FreeAll() 3047 void CFixedAllocNoSync::FreeAll() 3048 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3049 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3050 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3051 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3052 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3053 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3054 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3055 void CRecordset::FreeDataCache() 3056 void CPlex::FreeDataChain() 3057 void CByteArray::FreeExtra() 3058 void CDWordArray::FreeExtra() 3059 void CObArray::FreeExtra() 3060 void CPtrArray::FreeExtra() 3061 void CStringArray::FreeExtra() 3062 void CUIntArray::FreeExtra() 3063 void CWordArray::FreeExtra() 3064 void CObList::FreeNode(CObList::CNode *) 3065 void CPtrList::FreeNode(CPtrList::CNode *) 3066 void CStringList::FreeNode(CStringList::CNode *) 3067 void CRecordset::FreeRowset() 3068 void CThreadSlotData::FreeSlot(int) 3069 void CProperty::FreeValue() 3070 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3071 void COleControlContainer::FreezeAllEvents(int) 3072 void COleControlSite::FreezeEvents(int) 3073 long COleControl::XOleControl::FreezeEvents(int) 3074 int COleClientItem::FreezeLink() 3075 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3076 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3077 CBrush * CBrush::FromHandle(HBRUSH__ *) 3078 CDC * CDC::FromHandle(HDC__ *) 3079 CFont * CFont::FromHandle(HFONT__ *) 3080 CGdiObject * CGdiObject::FromHandle(void *) 3081 CObject * CHandleMap::FromHandle(void *) 3082 CImageList * CImageList::FromHandle(_IMAGELIST *) 3083 CMenu * CMenu::FromHandle(HMENU__ *) 3084 CPalette * CPalette::FromHandle(HPALETTE__ *) 3085 CPen * CPen::FromHandle(HPEN__ *) 3086 CRgn * CRgn::FromHandle(HRGN__ *) 3087 CSocket * CSocket::FromHandle(unsigned int) 3088 CWnd * CWnd::FromHandle(HWND__ *) 3089 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3090 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3091 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3092 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3093 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3094 CRuntime* CRuntimeClass::FromName(char const *) 3095 void * CProperty::Get(unsigned long *) 3096 void * CProperty::Get() 3097 void * CPropertySection::Get(unsigned long) 3098 void * CPropertySection::Get(unsigned long,unsigned long *) 3099 void * CPropertySet::Get(_GUID,unsigned long) 3100 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3101 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3102 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3103 long CWnd::get_accChildCount(long *) 3104 long CWnd::XAccessible::get_accChildCount(long *) 3105 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3106 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3107 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3108 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3109 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3110 long CWnd::get_accFocus(tagVARIANT *) 3111 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3112 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3113 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3114 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3115 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3116 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3117 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3118 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3119 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3120 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3121 long CWnd::get_accParent(IDispatch * *) 3122 long CWnd::XAccessible::get_accParent(IDispatch * *) 3123 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3124 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3125 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3126 long CWnd::get_accSelection(tagVARIANT *) 3127 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3128 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3129 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3130 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3131 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3132 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3133 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3134 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3135 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3136 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3137 long CWnd::GetAccessibleChildCount() 3138 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3139 unsigned long COleControl::GetActivationPolicy() 3140 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3141 CDocument * CFrameWnd::GetActiveDocument() 3142 CFrameWnd * CFrameWnd::GetActiveFrame() 3143 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 3144 int CPropertySheet::GetActiveIndex()const 3145 CPropertyPage * CPropertySheet::GetActivePage()const 3146 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3147 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3148 CView * CFrameWnd::GetActiveView()const 3149 CView * COleClientItem::GetActiveView()const 3150 IOleDocumentView * COleDocObjectItem::GetActiveView()const 3151 CRichEditView * CRichEditCntrItem::GetActiveView() 3152 CWnd * CWnd::GetActiveWindow() 3153 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 3154 int CIPAddressCtrl::GetAddress(unsigned long &) 3155 int CHtmlView::GetAddressBar()const 3156 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3157 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 3158 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3159 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3160 int CToolBarCtrl::GetAnchorHighlight()const 3161 int CListBox::GetAnchorIndex()const 3162 short COleControl::GetAppearance() 3163 IDispatch * CHtmlView::GetApplication()const 3164 HKEY__ * CWinApp::GetAppRegistryKey() 3165 int CDC::GetArcDirection()const 3166 CSize CDC::GetAspectRatioFilter()const 3167 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3168 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3169 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3170 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3171 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3172 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3173 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3174 unsigned char CByteArray::GetAt(int)const 3175 unsigned long CDWordArray::GetAt(int)const 3176 CObject * CObArray::GetAt(int)const 3177 CObject * & CObList::GetAt(__POSITION *) 3178 CObject const * & CObList::GetAt(__POSITION *)const 3179 void * CPtrArray::GetAt(int)const 3180 void * & CPtrList::GetAt(__POSITION *) 3181 void const * & CPtrList::GetAt(__POSITION *)const 3182 ATL::CStringT > > const & CStringArray::GetAt(int)const 3183 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3184 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3185 unsigned int CUIntArray::GetAt(int)const 3186 unsigned short CWordArray::GetAt(int)const 3187 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3188 unsigned long COleControl::GetBackColor() 3189 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3190 unsigned int CReBarCtrl::GetBandCount()const 3191 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOA *)const 3192 unsigned int CReBarCtrl::GetBarHeight()const 3193 void CControlBar::GetBarInfo(CControlBarInfo *) 3194 void CDockBar::GetBarInfo(CControlBarInfo *) 3195 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3196 unsigned long CControlBar::GetBarStyle() 3197 unsigned int CSpinButtonCtrl::GetBase()const 3198 unsigned long CAsyncMonikerFile::GetBindInfo()const 3199 IBinding * CAsyncMonikerFile::GetBinding()const 3200 int CBitmap::GetBitmap(tagBITMAP *) 3201 HBITMAP__ * CButton::GetBitmap()const 3202 HBITMAP__ * CStatic::GetBitmap()const 3203 int CToolBarCtrl::GetBitmap(int)const 3204 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3205 CSize CBitmap::GetBitmapDimension()const 3206 unsigned int CToolBarCtrl::GetBitmapFlags()const 3207 int CHeaderCtrl::GetBitmapMargin()const 3208 unsigned long CDC::GetBkColor()const 3209 unsigned long CImageList::GetBkColor()const 3210 unsigned long CListCtrl::GetBkColor()const 3211 unsigned long CReBarCtrl::GetBkColor()const 3212 unsigned long CTreeCtrl::GetBkColor()const 3213 int CListCtrl::GetBkImage(tagLVBKIMAGEA *)const 3214 int CDC::GetBkMode()const 3215 void * CBlobProperty::GetBlob() 3216 void CRecordset::GetBookmark(CDBVariant &) 3217 unsigned long CDatabase::GetBookmarkPersistence()const 3218 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3219 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3220 CRect CControlBar::GetBorders()const 3221 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3222 int CStatusBarCtrl::GetBorders(int *)const 3223 short COleControl::GetBorderStyle() 3224 long CDataSourceControl::GetBoundClientRow() 3225 int CRecordset::GetBoundFieldIndex(void *) 3226 int CRecordset::GetBoundParamIndex(void *) 3227 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3228 CPoint CDC::GetBrushOrg()const 3229 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOA *)const 3230 CWnd * CSliderCtrl::GetBuddy(int)const 3231 CWnd * CSpinButtonCtrl::GetBuddy()const 3232 unsigned int CEditView::GetBufferLength()const 3233 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3234 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3235 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3236 int CHtmlView::GetBusy()const 3237 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3238 int CToolBarCtrl::GetButtonCount()const 3239 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3240 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOA *)const 3241 unsigned long CToolBarCtrl::GetButtonSize()const 3242 unsigned int CButton::GetButtonStyle()const 3243 unsigned int CToolBar::GetButtonStyle(int)const 3244 ATL::CStringT > > CToolBar::GetButtonText(int)const 3245 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3246 void COleSafeArray::GetByteArray(CByteArray &) 3247 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3248 unsigned short CPropertySet::GetByteOrder() 3249 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3250 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3251 unsigned int CListCtrl::GetCallbackMask()const 3252 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3253 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3254 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3255 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3256 CWnd * COleControl::GetCapture() 3257 CWnd * CWnd::GetCapture() 3258 long COleControlSite::XOleIPSite::GetCapture() 3259 int CListBox::GetCaretIndex()const 3260 CPoint CWnd::GetCaretPos() 3261 void CSliderCtrl::GetChannelRect(tagRECT *)const 3262 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABC *)const 3263 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABCFLOAT *)const 3264 unsigned long CDC::GetCharacterPlacementA(ATL::CStringT > > &,int,tagGCP_RESULTSA *,unsigned long)const 3265 unsigned long CDC::GetCharacterPlacementA(char const *,int,int,tagGCP_RESULTSA *,unsigned long)const 3266 void CFontDialog::GetCharFormat(_charformat &)const 3267 CHARFORMAT2A & CRichEditView::GetCharFormatSelection() 3268 CPoint CRichEditCtrl::GetCharPos(long)const 3269 int CDC::GetCharWidthA(unsigned int,unsigned int,int *)const 3270 int CDC::GetCharWidthA(unsigned int,unsigned int,float *)const 3271 int CButton::GetCheck()const 3272 int CCheckListBox::GetCheck(int) 3273 int CListCtrl::GetCheck(int)const 3274 int CTreeCtrl::GetCheck(_TREEITEM *)const 3275 int CWnd::GetCheckedRadioButton(int,int) 3276 unsigned int CCheckListBox::GetCheckStyle() 3277 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3278 long CBlobProperty::GetClassID(_GUID *) 3279 void COleClientItem::GetClassID(_GUID *)const 3280 _GUID const & COleConvertDialog::GetClassID()const 3281 _GUID const & COleInsertDialog::GetClassID()const 3282 _GUID const & COleObjectFactory::GetClassID()const 3283 _GUID CPropertySet::GetClassID() 3284 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3285 long COleControl::XPersistMemory::GetClassID(_GUID *) 3286 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3287 long COleControl::XPersistStorage::GetClassID(_GUID *) 3288 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3289 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3290 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 3291 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3292 void COleControl::GetClientOffset(long *,long *)const 3293 void COleControl::GetClientRect(tagRECT *)const 3294 void CWnd::GetClientRect(tagRECT *)const 3295 IOleClientSite * COleClientItem::GetClientSite() 3296 IOleClientSite * COleControl::GetClientSite() 3297 IOleClientSite * COleServerDoc::GetClientSite()const 3298 IOleClientSite * CRichEditCntrItem::GetClientSite() 3299 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3300 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3301 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3302 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3303 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3304 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3305 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3306 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3307 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3308 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3309 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3310 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3311 COleDataSource * COleDataSource::GetClipboardOwner() 3312 CWnd * CWnd::GetClipboardOwner() 3313 CWnd * CWnd::GetClipboardViewer() 3314 int CDC::GetClipBox(tagRECT *)const 3315 int CMetaFileDC::GetClipBox(tagRECT *)const 3316 unsigned long CColorDialog::GetColor()const 3317 unsigned long CFontDialog::GetColor()const 3318 unsigned long CMonthCalCtrl::GetColor(int)const 3319 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3320 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 3321 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3322 int CListCtrl::GetColumn(int,tagLVCOLUMNA *)const 3323 int CSplitterWnd::GetColumnCount()const 3324 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3325 int CListCtrl::GetColumnOrderArray(int *,int) 3326 int CListCtrl::GetColumnWidth(int)const 3327 CComboBox * CComboBoxEx::GetComboBoxCtrl() 3328 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 3329 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 3330 ATL::CStringT > > const & CDatabase::GetConnect()const 3331 void CDatabase::GetConnectInfo() 3332 int CConnectionPoint::GetConnectionCount() 3333 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3334 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3335 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3336 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 3337 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 3338 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3339 CPtrArray const * CConnectionPoint::GetConnections() 3340 IConnectionPointContainer * CConnectionPoint::GetContainer() 3341 IDispatch * CHtmlView::GetContainer()const 3342 IOleItemContainer * COleDocument::GetContainer() 3343 IOleItemContainer * COleLinkingDoc::GetContainer() 3344 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3345 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3346 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3347 unsigned long CInternetConnection::GetContext()const 3348 unsigned long CInternetFile::GetContext()const 3349 unsigned long CInternetSession::GetContext()const 3350 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3351 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3352 COleControl * CDataPathProperty::GetControl() 3353 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3354 COleControlContainer * CWnd::GetControlContainer() 3355 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 3356 unsigned long COleControl::GetControlFlags() 3357 void COleControlSite::GetControlInfo() 3358 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3359 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3360 IUnknown * CCmdTarget::GetControllingUnknown() 3361 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3362 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 3363 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 3364 void COleControl::GetControlSize(int *,int *) 3365 int COlePropertyPage::GetControlStatus(unsigned int) 3366 IUnknown * CWnd::GetControlUnknown() 3367 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3368 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 3369 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 3370 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 3371 int CPrintDialog::GetCopies()const 3372 int CPrintDialogEx::GetCopies()const 3373 int CByteArray::GetCount()const 3374 int CComboBox::GetCount()const 3375 int CControlBar::GetCount()const 3376 int CDWordArray::GetCount()const 3377 int CListBox::GetCount()const 3378 int CMapPtrToPtr::GetCount()const 3379 int CMapPtrToWord::GetCount()const 3380 int CMapStringToOb::GetCount()const 3381 int CMapStringToPtr::GetCount()const 3382 int CMapStringToString::GetCount()const 3383 int CMapWordToOb::GetCount()const 3384 int CMapWordToPtr::GetCount()const 3385 int CObArray::GetCount()const 3386 int CObList::GetCount()const 3387 unsigned long CPropertySection::GetCount() 3388 unsigned long CPropertySet::GetCount() 3389 int CPtrArray::GetCount()const 3390 int CPtrList::GetCount()const 3391 int CStringArray::GetCount()const 3392 int CStringList::GetCount()const 3393 unsigned int CTreeCtrl::GetCount()const 3394 int CUIntArray::GetCount()const 3395 int CWordArray::GetCount()const 3396 int CListCtrl::GetCountPerPage()const 3397 int CFileFind::GetCreationTime(ATL::CTime &)const 3398 int CFileFind::GetCreationTime(_FILETIME *)const 3399 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3400 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3401 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3402 int CTabCtrl::GetCurFocus()const 3403 CBitmap * CDC::GetCurrentBitmap()const 3404 CBrush * CDC::GetCurrentBrush()const 3405 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 3406 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 3407 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3408 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 3409 CFont * CDC::GetCurrentFont()const 3410 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 3411 tagMSG const * CWnd::GetCurrentMessage() 3412 CPalette * CDC::GetCurrentPalette()const 3413 CPen * CDC::GetCurrentPen()const 3414 CPoint CDC::GetCurrentPosition()const 3415 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3416 int CComboBox::GetCurSel()const 3417 int CListBox::GetCurSel()const 3418 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3419 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3420 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3421 int CTabCtrl::GetCurSel()const 3422 HICON__ * CButton::GetCursor() 3423 IUnknown * CDataBoundProperty::GetCursor() 3424 IUnknown * CDataSourceControl::GetCursor() 3425 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3426 HICON__ * CStatic::GetCursor() 3427 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3428 int CDatabase::GetCursorCommitBehavior()const 3429 int CDatabase::GetCursorRollbackBehavior()const 3430 unsigned char * CByteArray::GetData() 3431 unsigned char const * CByteArray::GetData()const 3432 unsigned long * CDWordArray::GetData() 3433 unsigned long const * CDWordArray::GetData()const 3434 CObject * * CObArray::GetData() 3435 CObject const * * CObArray::GetData()const 3436 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3437 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3438 void * * CPtrArray::GetData() 3439 void const * * CPtrArray::GetData()const 3440 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3441 ATL::CStringT > > * CStringArray::GetData() 3442 ATL::CStringT > > const * CStringArray::GetData()const 3443 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3444 unsigned int * CUIntArray::GetData() 3445 unsigned int const * CUIntArray::GetData()const 3446 unsigned short * CWordArray::GetData() 3447 unsigned short const * CWordArray::GetData()const 3448 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3449 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3450 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3451 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3452 ATL::CStringT > > CDatabase::GetDatabaseName()const 3453 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3454 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3455 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3456 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3457 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3458 CNoTrackObject * CThreadLocalObject::GetDataNA() 3459 IDataObject * COleServerItem::GetDataObject() 3460 COleControl::CControlDataSource * COleControl::GetDataSource() 3461 COleDataSource * COleServerItem::GetDataSource() 3462 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3463 CDC * CWnd::GetDC() 3464 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3465 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3466 HACCEL__ * CDocument::GetDefaultAccelerator() 3467 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3468 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3469 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 3470 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 3471 ATL::CStringT > > CRecordset::GetDefaultConnect() 3472 short CRecordset::GetDefaultFieldType(short) 3473 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3474 HMENU__ * CDocument::GetDefaultMenu() 3475 HMENU__ * COleServerDoc::GetDefaultMenu() 3476 int CPrintDialog::GetDefaults() 3477 int CPrintDialogEx::GetDefaults() 3478 ATL::CStringT > > CRecordset::GetDefaultSQL() 3479 unsigned long COccManager::GetDefBtnCode(CWnd *) 3480 unsigned long COleControlSite::GetDefBtnCode() 3481 unsigned long CDialog::GetDefID()const 3482 int CToolTipCtrl::GetDelayTime(unsigned long)const 3483 int CDumpContext::GetDepth()const 3484 CWnd * CWnd::GetDescendantWindow(int,int)const 3485 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3486 CWnd * CWnd::GetDesktopWindow() 3487 int CDC::GetDeviceCaps(int)const 3488 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 3489 ATL::CStringT > > CPrintDialog::GetDeviceName()const 3490 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 3491 CPoint CScrollView::GetDeviceScrollPosition()const 3492 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3493 _devicemodeA * CPageSetupDialog::GetDevMode()const 3494 _devicemodeA * CPrintDialog::GetDevMode()const 3495 _devicemodeA * CPrintDialogEx::GetDevMode()const 3496 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3497 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3498 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3499 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3500 DHtmlEventMapEntry const * GetDHtmlEventMap() 3501 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 3502 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 3503 unsigned long COleSafeArray::GetDim() 3504 CImageList * CToolBarCtrl::GetDisabledImageList()const 3505 int CCmdTarget::GetDispatchIID(_GUID *) 3506 int COleControl::GetDispatchIID(_GUID *) 3507 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3508 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3509 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3510 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName() 3511 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 3512 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3513 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3514 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3515 int COleControlSite::GetDlgCtrlID()const 3516 int CWnd::GetDlgCtrlID()const 3517 CWnd * COleControlContainer::GetDlgItem(int)const 3518 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3519 CWnd * CWnd::GetDlgItem(int)const 3520 void CWnd::GetDlgItem(int,HWND__ * *)const 3521 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3522 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3523 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 3524 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 3525 int CWnd::GetDlgItemTextA(int,char *,int)const 3526 CFrameWnd * COleIPFrameWnd::GetDocFrame() 3527 CDockBar * CDockContext::GetDockBar(unsigned long) 3528 CControlBar * CDockBar::GetDockedControlBar(int)const 3529 int CDockBar::GetDockedCount()const 3530 int CDockBar::GetDockedVisibleCount()const 3531 CFrameWnd * CControlBar::GetDockingFrame()const 3532 void CFrameWnd::GetDockState(CDockState &)const 3533 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3534 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3535 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 3536 CDocTemplate * CDocument::GetDocTemplate()const 3537 CDocument * CDocItem::GetDocument()const 3538 COleDocument * COleClientItem::GetDocument()const 3539 COleServerDoc * COleServerItem::GetDocument()const 3540 CRichEditDoc * CRichEditCntrItem::GetDocument() 3541 CRichEditDoc * CRichEditView::GetDocument()const 3542 CDocument * CView::GetDocument()const 3543 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3544 int CDocManager::GetDocumentCount() 3545 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3546 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 3547 enum tagDVASPECT COleClientItem::GetDrawAspect()const 3548 enum tagDVASPECT COleConvertDialog::GetDrawAspect()const 3549 enum tagDVASPECT COleInsertDialog::GetDrawAspect()const 3550 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect()const 3551 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 3552 ATL::CStringT > > CPrintDialog::GetDriverName()const 3553 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 3554 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 3555 void CComboBox::GetDroppedControlRect(tagRECT *)const 3556 int CComboBox::GetDroppedState()const 3557 int CComboBox::GetDroppedWidth()const 3558 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 3559 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 3560 IDropTarget * CReBarCtrl::GetDropTarget()const 3561 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 3562 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 3563 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3564 IUnknown * CWnd::GetDSCCursor() 3565 CEdit * CListCtrl::GetEditControl()const 3566 CEdit * CTreeCtrl::GetEditControl()const 3567 CEdit * CComboBoxEx::GetEditCtrl() 3568 CEdit & CEditView::GetEditCtrl()const 3569 unsigned long CComboBox::GetEditSel()const 3570 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 3571 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 3572 void COleSafeArray::GetElement(long *,void *) 3573 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 3574 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 3575 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 3576 wchar_t * CDHtmlDialog::GetElementText(char const *) 3577 unsigned long COleSafeArray::GetElemSize() 3578 COleServerItem * COleServerDoc::GetEmbeddedItem() 3579 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3580 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3581 int COleControl::GetEnabled() 3582 HENHMETAFILE__ * CStatic::GetEnhMetaFileA()const 3583 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3584 int CPalette::GetEntryCount() 3585 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 3586 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *) 3587 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *) 3588 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 3589 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *) 3590 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *) 3591 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *) 3592 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *) 3593 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *) 3594 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 3595 int COleControlSite::GetEventIID(_GUID *) 3596 AFX_EVENTMAP const * COleControl::GetEventMap()const 3597 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 3598 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 3599 long CRichEditCtrl::GetEventMask()const 3600 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3601 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3602 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 3603 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 3604 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 3605 unsigned long COleControlSite::GetExStyle()const 3606 unsigned long CWnd::GetExStyle()const 3607 IDispatch * COleControl::GetExtendedControl() 3608 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3609 unsigned long CComboBoxEx::GetExtendedStyle()const 3610 unsigned long CListCtrl::GetExtendedStyle() 3611 unsigned long CTabCtrl::GetExtendedStyle() 3612 unsigned long CToolBarCtrl::GetExtendedStyle()const 3613 int CComboBox::GetExtendedUI()const 3614 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3615 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3616 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3617 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3618 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3619 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3620 long CBrowserControlSite::GetExternal(IDispatch * *) 3621 long CDHtmlDialog::GetExternal(IDispatch * *) 3622 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 3623 int CPen::GetExtLogPen(tagEXTLOGPEN *) 3624 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3625 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3626 ATL::CStringT > > CFontDialog::GetFaceName()const 3627 short CRecordset::GetFieldIndexByName(char const *) 3628 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3629 unsigned char CRecordset::GetFieldStatus(unsigned long) 3630 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3631 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3632 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3633 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 3634 CFile * CArchive::GetFile()const 3635 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 3636 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 3637 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3638 ATL::CStringT > > CFileDialog::GetFileExt()const 3639 ATL::CStringT > > CFile::GetFileName()const 3640 ATL::CStringT > > CFileDialog::GetFileName()const 3641 ATL::CStringT > > CFileFind::GetFileName()const 3642 ATL::CStringT > > CGopherFileFind::GetFileName()const 3643 ATL::CStringT > > COleChangeSourceDialog::GetFileName() 3644 ATL::CStringT > > CFile::GetFilePath()const 3645 ATL::CStringT > > CFileFind::GetFilePath()const 3646 ATL::CStringT > > CGopherFileFind::GetFilePath()const 3647 ATL::CStringT > > CFile::GetFileTitle()const 3648 ATL::CStringT > > CFileDialog::GetFileTitle()const 3649 ATL::CStringT > > CFileFind::GetFileTitle()const 3650 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 3651 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3652 ATL::CStringT > > CFileFind::GetFileURL()const 3653 ATL::CStringT > > CFtpFileFind::GetFileURL()const 3654 ATL::CStringT > > CGopherFileFind::GetFileURL()const 3655 ATL::CStringT > > CHttpFile::GetFileURL()const 3656 ATL::CStringT > > CFindReplaceDialog::GetFindString()const 3657 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3658 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3659 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3660 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3661 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3662 CFrameWnd * COleDocument::GetFirstFrame() 3663 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 3664 __POSITION * CDocument::GetFirstViewPosition()const 3665 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 3666 int CEdit::GetFirstVisibleLine()const 3667 int CRichEditCtrl::GetFirstVisibleLine()const 3668 CWnd * COleControl::GetFocus() 3669 CWnd * CWnd::GetFocus() 3670 long COleControlSite::XOleIPSite::GetFocus() 3671 ATL::CStringT > > CFileDialog::GetFolderPath()const 3672 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3673 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3674 IFontDisp * COleControl::GetFont() 3675 CFont * CWnd::GetFont()const 3676 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 3677 IFontDisp * CFontHolder::GetFontDispatch() 3678 HFONT__ * CFontHolder::GetFontHandle(long,long) 3679 HFONT__ * CFontHolder::GetFontHandle() 3680 unsigned long CDC::GetFontLanguageInfo()const 3681 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3682 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 3683 unsigned long COleControl::GetForeColor() 3684 CWnd * CWnd::GetForegroundWindow() 3685 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc()const 3686 _GUID CPropertySection::GetFormatID() 3687 unsigned short CPropertySet::GetFormatVersion() 3688 int CPrintDialog::GetFromPage()const 3689 unsigned int CPrintInfo::GetFromPage()const 3690 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix() 3691 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 3692 ATL::CStringT > > CHtmlView::GetFullName()const 3693 int CHtmlView::GetFullScreen()const 3694 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3695 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3696 unsigned long CDC::GetGlyphOutlineA(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 3697 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 3698 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3699 CBrush * CDC::GetHalftoneBrush() 3700 void * CEdit::GetHandle()const 3701 unsigned int CRectTracker::GetHandleMask()const 3702 void CRectTracker::GetHandleRect(int,CRect *)const 3703 int CRectTracker::GetHandleSize(tagRECT const *)const 3704 unsigned int CMapPtrToPtr::GetHashTableSize()const 3705 unsigned int CMapPtrToWord::GetHashTableSize()const 3706 unsigned int CMapStringToOb::GetHashTableSize()const 3707 unsigned int CMapStringToPtr::GetHashTableSize()const 3708 unsigned int CMapStringToString::GetHashTableSize()const 3709 unsigned int CMapWordToOb::GetHashTableSize()const 3710 unsigned int CMapWordToPtr::GetHashTableSize()const 3711 CObject * & CObList::GetHead() 3712 CObject const * & CObList::GetHead()const 3713 void * & CPtrList::GetHead() 3714 void const * & CPtrList::GetHead()const 3715 ATL::CStringT > > & CStringList::GetHead() 3716 ATL::CStringT > > const & CStringList::GetHead()const 3717 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 3718 __POSITION * CObList::GetHeadPosition()const 3719 __POSITION * CPtrList::GetHeadPosition()const 3720 __POSITION * CStringList::GetHeadPosition()const 3721 long CHtmlView::GetHeight()const 3722 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3723 void CSplitterWnd::GetHitRect(int,CRect &) 3724 unsigned int CComboBox::GetHorizontalExtent()const 3725 int CListBox::GetHorizontalExtent()const 3726 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3727 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3728 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3729 HICON__ * CListCtrl::GetHotCursor() 3730 CImageList * CToolBarCtrl::GetHotImageList()const 3731 int CListCtrl::GetHotItem() 3732 int CToolBarCtrl::GetHotItem()const 3733 unsigned long CHotKeyCtrl::GetHotKey()const 3734 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3735 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 3736 unsigned long CListCtrl::GetHoverTime()const 3737 IDispatch * CHtmlView::GetHtmlDocument()const 3738 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 3739 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 3740 unsigned int COleControl::GetHwnd() 3741 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3742 HICON__ * CButton::GetIcon()const 3743 HICON__ * CStatic::GetIcon()const 3744 HICON__ * CWnd::GetIcon(int)const 3745 HICON__ * COleClientItem::GetIconFromRegistry()const 3746 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3747 void * COleChangeIconDialog::GetIconicMetafile()const 3748 void * COleClientItem::GetIconicMetafile() 3749 void * COleConvertDialog::GetIconicMetafile()const 3750 void * COleInsertDialog::GetIconicMetafile()const 3751 void * COlePasteSpecialDialog::GetIconicMetafile()const 3752 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3753 unsigned long CProperty::GetID() 3754 int CPropertySection::GetID(char const *,unsigned long *) 3755 IDataObject * COleDataObject::GetIDataObject(int) 3756 IDispatch * CCmdTarget::GetIDispatch(int) 3757 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3758 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3759 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3760 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3761 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3762 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3763 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3764 _GUID const & COleControl::XEventConnPt::GetIID() 3765 int CImageList::GetImageCount()const 3766 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 3767 CImageList * CComboBoxEx::GetImageList()const 3768 CImageList * CHeaderCtrl::GetImageList()const 3769 CImageList * CListCtrl::GetImageList(int)const 3770 CImageList * CReBarCtrl::GetImageList()const 3771 CImageList * CTabCtrl::GetImageList()const 3772 CImageList * CToolBarCtrl::GetImageList()const 3773 CImageList * CTreeCtrl::GetImageList(unsigned int)const 3774 unsigned int CTreeCtrl::GetIndent()const 3775 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3776 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3777 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3778 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3779 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 3780 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 3781 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3782 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3783 CWnd * COleClientItem::GetInPlaceWindow() 3784 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 3785 unsigned long CToolBarCtrl::GetInsertMarkColor()const 3786 unsigned long CTreeCtrl::GetInsertMarkColor()const 3787 void CSplitterWnd::GetInsideRect(CRect &)const 3788 IUnknown * CCmdTarget::GetInterface(void const *) 3789 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3790 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3791 IUnknown * COleControl::GetInterfaceHook(void const *) 3792 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3793 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3794 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3795 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 3796 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3797 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3798 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3799 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3800 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 3801 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3802 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3803 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3804 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3805 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3806 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 3807 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3808 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3809 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 3810 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 3811 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 3812 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 3813 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 3814 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 3815 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 3816 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 3817 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 3818 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 3819 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 3820 int CHeaderCtrl::GetItem(int,_HD_ITEMA *)const 3821 int CListCtrl::GetItem(tagLVITEMA *)const 3822 int CTabCtrl::GetItem(int,tagTCITEMA *)const 3823 int CTreeCtrl::GetItem(tagTVITEMA *)const 3824 void COleServerDoc::GetItemClipRect(tagRECT *)const 3825 int CHeaderCtrl::GetItemCount()const 3826 int CListCtrl::GetItemCount()const 3827 int CTabCtrl::GetItemCount()const 3828 unsigned long CComboBox::GetItemData(int)const 3829 unsigned long CListBox::GetItemData(int)const 3830 unsigned long CListCtrl::GetItemData(int)const 3831 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 3832 void * CComboBox::GetItemDataPtr(int)const 3833 void * CListBox::GetItemDataPtr(int)const 3834 int CComboBox::GetItemHeight(int)const 3835 int CListBox::GetItemHeight(int)const 3836 short CTreeCtrl::GetItemHeight()const 3837 unsigned int CStatusBar::GetItemID(int)const 3838 unsigned int CToolBar::GetItemID(int)const 3839 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 3840 ATL::CStringT > > COleChangeSourceDialog::GetItemName() 3841 void COleClientItem::GetItemName(char *)const 3842 ATL::CStringT > > const & COleServerItem::GetItemName()const 3843 int CListCtrl::GetItemPosition(int,tagPOINT *)const 3844 void COleServerDoc::GetItemPosition(tagRECT *)const 3845 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 3846 int CListBox::GetItemRect(int,tagRECT *)const 3847 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 3848 void CStatusBar::GetItemRect(int,tagRECT *)const 3849 int CTabCtrl::GetItemRect(int,tagRECT *)const 3850 void CToolBar::GetItemRect(int,tagRECT *)const 3851 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 3852 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 3853 unsigned int CListCtrl::GetItemState(int,unsigned int)const 3854 unsigned int COleClientItem::GetItemState()const 3855 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 3856 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 3857 void COleClientItem::GetItemStorage() 3858 void COleClientItem::GetItemStorageCompound() 3859 void COleClientItem::GetItemStorageFlat() 3860 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 3861 int CListCtrl::GetItemText(int,int,char *,int)const 3862 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 3863 int CDC::GetKerningPairsA(int,tagKERNINGPAIR *)const 3864 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 3865 int CFileFind::GetLastAccessTime(ATL::CTime &)const 3866 int CFileFind::GetLastAccessTime(_FILETIME *)const 3867 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 3868 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 3869 CWnd * CWnd::GetLastActivePopup()const 3870 int CAsyncSocket::GetLastError() 3871 unsigned int COleDialog::GetLastError()const 3872 long COleClientItem::GetLastStatus()const 3873 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 3874 int CFileFind::GetLastWriteTime(ATL::CTime &)const 3875 int CFileFind::GetLastWriteTime(_FILETIME *)const 3876 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 3877 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 3878 unsigned long CDC::GetLayout()const 3879 long CRecordset::GetLBFetchSize(long) 3880 void COleSafeArray::GetLBound(unsigned long,long *) 3881 long CRecordset::GetLBReallocSize(long) 3882 int CComboBox::GetLBText(int,char *)const 3883 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 3884 int CComboBox::GetLBTextLen(int)const 3885 long CHtmlView::GetLeft()const 3886 unsigned __int64 CFile::GetLength()const 3887 unsigned __int64 CFileFind::GetLength()const 3888 unsigned __int64 CGopherFileFind::GetLength()const 3889 unsigned __int64 CInternetFile::GetLength()const 3890 unsigned __int64 CMemFile::GetLength()const 3891 unsigned __int64 COleStreamFile::GetLength()const 3892 unsigned __int64 CSocketFile::GetLength()const 3893 unsigned __int64 CStdioFile::GetLength()const 3894 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 3895 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 3896 unsigned int CEdit::GetLimitText()const 3897 long CRichEditCtrl::GetLimitText()const 3898 int CEdit::GetLine(int,char *)const 3899 int CEdit::GetLine(int,char *,int)const 3900 int CRichEditCtrl::GetLine(int,char *)const 3901 int CRichEditCtrl::GetLine(int,char *,int)const 3902 unsigned long CTreeCtrl::GetLineColor()const 3903 int CEdit::GetLineCount()const 3904 int CRichEditCtrl::GetLineCount()const 3905 int CSliderCtrl::GetLineSize()const 3906 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 3907 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 3908 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 3909 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 3910 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 3911 CPtrList * CPropertySection::GetList() 3912 CPtrList * CPropertySet::GetList() 3913 CListCtrl & CListView::GetListCtrl()const 3914 unsigned long CComboBox::GetLocale()const 3915 unsigned long CListBox::GetLocale()const 3916 ATL::CStringT > > CHtmlView::GetLocationName()const 3917 ATL::CStringT > > CHtmlView::GetLocationURL()const 3918 CGopherLocator CGopherFileFind::GetLocator()const 3919 int CGopherLocator::GetLocatorType(unsigned long &)const 3920 int CBrush::GetLogBrush(tagLOGBRUSH *) 3921 int CFont::GetLogFont(tagLOGFONTA *) 3922 int CPen::GetLogPen(tagLOGPEN *) 3923 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 3924 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 3925 long CFieldExchange::GetLongBinarySize(int) 3926 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3927 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3928 CFrameWnd * COleIPFrameWnd::GetMainFrame() 3929 CWnd * CWinThread::GetMainWnd() 3930 int CDC::GetMapMode()const 3931 void CToolTipCtrl::GetMargin(tagRECT *)const 3932 unsigned long CEdit::GetMargins()const 3933 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 3934 CRect CRichEditView::GetMargins()const 3935 int CConnectionPoint::GetMaxConnections() 3936 unsigned int CPrintInfo::GetMaxPage()const 3937 int CMonthCalCtrl::GetMaxSelCount()const 3938 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 3939 int CToolBarCtrl::GetMaxTextRows()const 3940 int CToolTipCtrl::GetMaxTipWidth()const 3941 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 3942 CMenu * CWnd::GetMenu()const 3943 int CHtmlView::GetMenuBar()const 3944 unsigned long CMenu::GetMenuContextHelpId()const 3945 unsigned int CMenu::GetMenuItemCount()const 3946 unsigned int CMenu::GetMenuItemID(int)const 3947 int CMenu::GetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 3948 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 3949 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 3950 int CMenu::GetMenuStringA(unsigned int,char *,int,unsigned int)const 3951 CWnd * CFrameWnd::GetMessageBar() 3952 CWnd * CMDIChildWnd::GetMessageBar() 3953 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 3954 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 3955 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 3956 AFX_MSGMAP const * CControlBar::GetMessageMap()const 3957 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 3958 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 3959 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 3960 AFX_MSGMAP const * CDialog::GetMessageMap()const 3961 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 3962 AFX_MSGMAP const * CDockBar::GetMessageMap()const 3963 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 3964 AFX_MSGMAP const * CDocument::GetMessageMap()const 3965 AFX_MSGMAP const * CEditView::GetMessageMap()const 3966 AFX_MSGMAP const * CFormView::GetMessageMap()const 3967 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 3968 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 3969 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 3970 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 3971 AFX_MSGMAP const * CListView::GetMessageMap()const 3972 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 3973 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 3974 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 3975 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 3976 AFX_MSGMAP const * COleControl::GetMessageMap()const 3977 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 3978 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 3979 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 3980 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 3981 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 3982 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 3983 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 3984 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 3985 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 3986 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 3987 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 3988 AFX_MSGMAP const * CReBar::GetMessageMap()const 3989 AFX_MSGMAP const * CRecordView::GetMessageMap()const 3990 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 3991 AFX_MSGMAP const * CScrollView::GetMessageMap()const 3992 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 3993 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 3994 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 3995 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 3996 AFX_MSGMAP const * CToolBar::GetMessageMap()const 3997 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 3998 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 3999 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 4000 AFX_MSGMAP const * CTreeView::GetMessageMap()const 4001 AFX_MSGMAP const * CView::GetMessageMap()const 4002 AFX_MSGMAP const * CWinApp::GetMessageMap()const 4003 AFX_MSGMAP const * CWnd::GetMessageMap()const 4004 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4005 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4006 long CDataSourceControl::GetMetaData() 4007 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4008 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4009 unsigned int CPrintInfo::GetMinPage()const 4010 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4011 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4012 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4013 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4014 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4015 float CDC::GetMiterLimit()const 4016 int CEdit::GetModify()const 4017 int CRichEditCtrl::GetModify()const 4018 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4019 IMoniker * CMonikerFile::GetMoniker()const 4020 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4021 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4022 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4023 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4024 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4025 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4026 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4027 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4028 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4029 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4030 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4031 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl()const 4032 CFont * CDateTimeCtrl::GetMonthCalFont()const 4033 int CMonthCalCtrl::GetMonthDelta()const 4034 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4035 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4036 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4037 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4038 unsigned long CDC::GetNearestColor(unsigned long)const 4039 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4040 unsigned long COleClientItem::GetNewItemNumber() 4041 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4042 CDataBoundProperty * CDataBoundProperty::GetNext() 4043 CObject * & CObList::GetNext(__POSITION * &) 4044 CObject const * & CObList::GetNext(__POSITION * &)const 4045 void * & CPtrList::GetNext(__POSITION * &) 4046 void const * & CPtrList::GetNext(__POSITION * &)const 4047 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4048 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4049 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4050 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4051 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4052 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4053 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4054 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4055 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4056 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4057 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4058 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4059 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4060 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4061 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4062 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4063 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4064 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4065 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4066 int COleDataObject::GetNextFormat(tagFORMATETC *) 4067 int CListCtrl::GetNextItem(int,int)const 4068 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4069 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4070 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4071 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4072 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4073 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4074 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4075 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4076 CView * CDocument::GetNextView(__POSITION * &)const 4077 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4078 CWnd * CWnd::GetNextWindow(unsigned int)const 4079 ATL::CStringData * CAfxStringMgr::GetNilString() 4080 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4081 void CCmdTarget::GetNotSupported() 4082 void COleControl::GetNotSupported() 4083 unsigned int CListCtrl::GetNumberOfWorkAreas()const 4084 unsigned int CSliderCtrl::GetNumTics()const 4085 int CGdiObject::GetObjectA(int,void *)const 4086 ATL::CStringT > > CHttpFile::GetObjectA()const 4087 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4088 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4089 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4090 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4091 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 4092 unsigned int CArchive::GetObjectSchema() 4093 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4094 unsigned int CGdiObject::GetObjectType()const 4095 short CRecordset::GetODBCFieldCount()const 4096 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4097 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 4098 int CHtmlView::GetOffline()const 4099 tagOFNA & CFileDialog::GetOFN() 4100 tagOFNA const & CFileDialog::GetOFN()const 4101 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4102 IOleObject * COleServerItem::GetOleObject() 4103 unsigned long COleSafeArray::GetOneDimSize() 4104 CWnd * CWnd::GetOpenClipboardWindow() 4105 int CDocManager::GetOpenDocumentCount() 4106 int CWinApp::GetOpenDocumentCount() 4107 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4108 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4109 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4110 unsigned int CRichEditCtrl::GetOptions()const 4111 int CHeaderCtrl::GetOrderArray(int *,int) 4112 int CListCtrl::GetOrigin(tagPOINT *)const 4113 unsigned long CPropertySet::GetOSVersion() 4114 CWnd * COleControl::GetOuterWindow()const 4115 unsigned int CDC::GetOutlineTextMetricsA(unsigned int,_OUTLINETEXTMETRICA *)const 4116 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4117 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4118 CSize CDC::GetOutputTabbedTextExtent(char const *,int,int,int *)const 4119 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4120 CSize CDC::GetOutputTextExtent(char const *,int)const 4121 int CDC::GetOutputTextMetrics(tagTEXTMETRICA *)const 4122 CWnd * CWnd::GetOwner()const 4123 CPropertyPage * CPropertySheet::GetPage(int)const 4124 int COleDocObjectItem::GetPageCount(long *,long *) 4125 int CPropertySheet::GetPageCount()const 4126 int CPropertySheet::GetPageIndex(CPropertyPage *) 4127 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4128 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4129 CRect CRichEditView::GetPageRect()const 4130 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4131 IPropertyPageSite * COlePropertyPage::GetPageSite() 4132 int CSliderCtrl::GetPageSize()const 4133 CPalette * CReBarCtrl::GetPalette()const 4134 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4135 CWnd * CSplitterWnd::GetPane(int,int)const 4136 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4137 unsigned int CStatusBar::GetPaneStyle(int)const 4138 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4139 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4140 CSize CPageSetupDialog::GetPaperSize()const 4141 CSize CRichEditView::GetPaperSize()const 4142 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4143 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4144 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 4145 CWnd * CWnd::GetParent()const 4146 IDispatch * CHtmlView::GetParentBrowser()const 4147 CFrameWnd * CWnd::GetParentFrame()const 4148 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4149 CWnd * CWnd::GetParentOwner()const 4150 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4151 int CStatusBarCtrl::GetParts(int,int *)const 4152 char CEdit::GetPasswordChar()const 4153 int COlePasteSpecialDialog::GetPasteIndex()const 4154 ATL::CStringT > > CDataPathProperty::GetPath()const 4155 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4156 ATL::CStringT > > const & CDocument::GetPathName()const 4157 ATL::CStringT > > CFileDialog::GetPathName()const 4158 ATL::CStringT > > COleInsertDialog::GetPathName()const 4159 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4160 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4161 IPictureDisp * CPictureHolder::GetPictureDispatch() 4162 unsigned long CDC::GetPixel(int,int)const 4163 unsigned long CDC::GetPixel(tagPOINT)const 4164 int CDC::GetPolyFillMode()const 4165 ATL::CStringT > > CPageSetupDialog::GetPortName()const 4166 ATL::CStringT > > CPrintDialog::GetPortName()const 4167 ATL::CStringT > > CPrintDialogEx::GetPortName()const 4168 int CProgressCtrl::GetPos() 4169 int CSliderCtrl::GetPos()const 4170 int CSpinButtonCtrl::GetPos()const 4171 int CSpinButtonCtrl::GetPos32(int *)const 4172 unsigned __int64 CFile::GetPosition()const 4173 unsigned __int64 CMemFile::GetPosition()const 4174 unsigned __int64 COleStreamFile::GetPosition()const 4175 unsigned __int64 CSocketFile::GetPosition()const 4176 unsigned __int64 CStdioFile::GetPosition()const 4177 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4178 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4179 CObject * & CObList::GetPrev(__POSITION * &) 4180 CObject const * & CObList::GetPrev(__POSITION * &)const 4181 void * & CPtrList::GetPrev(__POSITION * &) 4182 void const * & CPtrList::GetPrev(__POSITION * &)const 4183 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4184 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4185 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4186 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4187 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4188 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4189 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4190 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4191 HDC__ * CPrintDialog::GetPrinterDC()const 4192 HDC__ * CPrintDialogEx::GetPrinterDC()const 4193 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 4194 CFont * CEditView::GetPrinterFont()const 4195 CRect CRichEditView::GetPrintRect()const 4196 int CRichEditView::GetPrintWidth()const 4197 long CAsyncMonikerFile::GetPriority()const 4198 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 4199 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 4200 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 4201 int COlePropertyPage::GetPropCheck(char const *,int *) 4202 COleVariant CHtmlView::GetProperty(char const *) 4203 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 4204 void COleControlSite::GetProperty(long,unsigned short,void *)const 4205 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4206 CProperty * CPropertySection::GetProperty(unsigned long) 4207 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4208 void CWnd::GetProperty(long,unsigned short,void *)const 4209 int COlePropertyPage::GetPropIndex(char const *,int *) 4210 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4211 int COlePropertyPage::GetPropRadio(char const *,int *) 4212 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4213 int COlePropertyPage::GetPropText(char const *,unsigned char *) 4214 int COlePropertyPage::GetPropText(char const *,short *) 4215 int COlePropertyPage::GetPropText(char const *,int *) 4216 int COlePropertyPage::GetPropText(char const *,unsigned int *) 4217 int COlePropertyPage::GetPropText(char const *,long *) 4218 int COlePropertyPage::GetPropText(char const *,unsigned long *) 4219 int COlePropertyPage::GetPropText(char const *,float *) 4220 int COlePropertyPage::GetPropText(char const *,double *) 4221 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 4222 _PROPSHEETPAGEA & CPropertyPage::GetPSP() 4223 _PROPSHEETPAGEA const & CPropertyPage::GetPSP()const 4224 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4225 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4226 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4227 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4228 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4229 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4230 void CProgressCtrl::GetRange(int &,int &) 4231 void CSliderCtrl::GetRange(int &,int &)const 4232 unsigned long CSpinButtonCtrl::GetRange()const 4233 void CSpinButtonCtrl::GetRange(int &,int &)const 4234 void CSpinButtonCtrl::GetRange32(int &,int &)const 4235 int CSliderCtrl::GetRangeMax()const 4236 int CSliderCtrl::GetRangeMin()const 4237 void * CProperty::GetRawValue() 4238 int CFileDialog::GetReadOnlyPref()const 4239 enum tagREADYSTATE CHtmlView::GetReadyState()const 4240 long COleControl::GetReadyState() 4241 CReBarCtrl & CReBar::GetReBarCtrl()const 4242 long CRecordset::GetRecordCount()const 4243 void CEdit::GetRect(tagRECT *)const 4244 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4245 void CRichEditCtrl::GetRect(tagRECT *)const 4246 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4247 int CToolBarCtrl::GetRect(int,tagRECT *)const 4248 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4249 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4250 int COleControl::GetRectInContainer(tagRECT *) 4251 enum _undonameid CRichEditCtrl::GetRedoName()const 4252 int CRgn::GetRegionData(_RGNDATA *,int)const 4253 int CHtmlView::GetRegisterAsBrowser()const 4254 int CHtmlView::GetRegisterAsDropTarget()const 4255 ATL::CStringT > > CFindReplaceDialog::GetReplaceString()const 4256 int CRgn::GetRgnBox(tagRECT *)const 4257 CRichEditCtrl & CRichEditView::GetRichEditCtrl()const 4258 ATL::CStringT > > CFileFind::GetRoot()const 4259 ATL::CStringT > > CGopherFileFind::GetRoot()const 4260 _TREEITEM * CTreeCtrl::GetRootItem()const 4261 int CDC::GetROP2()const 4262 CFrameWnd * CCmdTarget::GetRoutingFrame() 4263 CFrameWnd * CCmdTarget::GetRoutingFrame_() 4264 CView * CCmdTarget::GetRoutingView() 4265 CView * CCmdTarget::GetRoutingView_() 4266 unsigned int CReBarCtrl::GetRowCount()const 4267 int CSplitterWnd::GetRowCount()const 4268 int CTabCtrl::GetRowCount()const 4269 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4270 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4271 int CToolBarCtrl::GetRows()const 4272 unsigned long CRecordset::GetRowsetSize()const 4273 unsigned long CRecordset::GetRowsFetched()const 4274 unsigned short CRecordset::GetRowStatus(unsigned short)const 4275 CRuntime* CAnimateCtrl::GetRuntimeClass()const 4276 CRuntime* CArchiveException::GetRuntimeClass()const 4277 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 4278 CRuntime* CAsyncSocket::GetRuntimeClass()const 4279 CRuntime* CBitmap::GetRuntimeClass()const 4280 CRuntime* CBitmapButton::GetRuntimeClass()const 4281 CRuntime* CBrush::GetRuntimeClass()const 4282 CRuntime* CButton::GetRuntimeClass()const 4283 CRuntime* CByteArray::GetRuntimeClass()const 4284 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 4285 CRuntime* CCheckListBox::GetRuntimeClass()const 4286 CRuntime* CClientDC::GetRuntimeClass()const 4287 CRuntime* CCmdTarget::GetRuntimeClass()const 4288 CRuntime* CColorDialog::GetRuntimeClass()const 4289 CRuntime* CComboBox::GetRuntimeClass()const 4290 CRuntime* CComboBoxEx::GetRuntimeClass()const 4291 CRuntime* CControlBar::GetRuntimeClass()const 4292 CRuntime* CCriticalSection::GetRuntimeClass()const 4293 CRuntime* CCtrlView::GetRuntimeClass()const 4294 CRuntime* CDatabase::GetRuntimeClass()const 4295 CRuntime* CDataPathProperty::GetRuntimeClass()const 4296 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 4297 CRuntime* CDBException::GetRuntimeClass()const 4298 CRuntime* CDC::GetRuntimeClass()const 4299 CRuntime* CDHtmlDialog::GetRuntimeClass()const 4300 CRuntime* CDialog::GetRuntimeClass()const 4301 CRuntime* CDialogBar::GetRuntimeClass()const 4302 CRuntime* CDocItem::GetRuntimeClass()const 4303 CRuntime* CDockBar::GetRuntimeClass()const 4304 CRuntime* CDockState::GetRuntimeClass()const 4305 CRuntime* CDocManager::GetRuntimeClass()const 4306 CRuntime* CDocObjectServer::GetRuntimeClass()const 4307 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 4308 CRuntime* CDocTemplate::GetRuntimeClass()const 4309 CRuntime* CDocument::GetRuntimeClass()const 4310 CRuntime* CDragListBox::GetRuntimeClass()const 4311 CRuntime* CDWordArray::GetRuntimeClass()const 4312 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 4313 CRuntime* CEdit::GetRuntimeClass()const 4314 CRuntime* CEditView::GetRuntimeClass()const 4315 CRuntime* CEvent::GetRuntimeClass()const 4316 CRuntime* CException::GetRuntimeClass()const 4317 CRuntime* CFile::GetRuntimeClass()const 4318 CRuntime* CFileDialog::GetRuntimeClass()const 4319 CRuntime* CFileException::GetRuntimeClass()const 4320 CRuntime* CFileFind::GetRuntimeClass()const 4321 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 4322 CRuntime* CFont::GetRuntimeClass()const 4323 CRuntime* CFontDialog::GetRuntimeClass()const 4324 CRuntime* CFormView::GetRuntimeClass()const 4325 CRuntime* CFrameWnd::GetRuntimeClass()const 4326 CRuntime* CFtpConnection::GetRuntimeClass()const 4327 CRuntime* CFtpFileFind::GetRuntimeClass()const 4328 CRuntime* CGdiObject::GetRuntimeClass()const 4329 CRuntime* CGopherConnection::GetRuntimeClass()const 4330 CRuntime* CGopherFile::GetRuntimeClass()const 4331 CRuntime* CGopherFileFind::GetRuntimeClass()const 4332 CRuntime* CHeaderCtrl::GetRuntimeClass()const 4333 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 4334 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 4335 CRuntime* CHtmlEditView::GetRuntimeClass()const 4336 CRuntime* CHtmlView::GetRuntimeClass()const 4337 CRuntime* CHttpConnection::GetRuntimeClass()const 4338 CRuntime* CHttpFile::GetRuntimeClass()const 4339 CRuntime* CImageList::GetRuntimeClass()const 4340 CRuntime* CInternetConnection::GetRuntimeClass()const 4341 CRuntime* CInternetException::GetRuntimeClass()const 4342 CRuntime* CInternetFile::GetRuntimeClass()const 4343 CRuntime* CInternetSession::GetRuntimeClass()const 4344 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 4345 CRuntime* CLinkCtrl::GetRuntimeClass()const 4346 CRuntime* CListBox::GetRuntimeClass()const 4347 CRuntime* CListCtrl::GetRuntimeClass()const 4348 CRuntime* CListView::GetRuntimeClass()const 4349 CRuntime* CLongBinary::GetRuntimeClass()const 4350 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 4351 CRuntime* CMapPtrToWord::GetRuntimeClass()const 4352 CRuntime* CMapStringToOb::GetRuntimeClass()const 4353 CRuntime* CMapStringToPtr::GetRuntimeClass()const 4354 CRuntime* CMapStringToString::GetRuntimeClass()const 4355 CRuntime* CMapWordToOb::GetRuntimeClass()const 4356 CRuntime* CMapWordToPtr::GetRuntimeClass()const 4357 CRuntime* CMDIChildWnd::GetRuntimeClass()const 4358 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 4359 CRuntime* CMemFile::GetRuntimeClass()const 4360 CRuntime* CMemoryException::GetRuntimeClass()const 4361 CRuntime* CMenu::GetRuntimeClass()const 4362 CRuntime* CMetaFileDC::GetRuntimeClass()const 4363 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 4364 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 4365 CRuntime* CMonikerFile::GetRuntimeClass()const 4366 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 4367 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 4368 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 4369 CRuntime* CMutex::GetRuntimeClass()const 4370 CRuntime* CNotSupportedException::GetRuntimeClass()const 4371 CRuntime* CObArray::GetRuntimeClass()const 4372 CRuntime* CObject::GetRuntimeClass()const 4373 CRuntime* CObList::GetRuntimeClass()const 4374 CRuntime* COleBusyDialog::GetRuntimeClass()const 4375 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 4376 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 4377 CRuntime* COleClientItem::GetRuntimeClass()const 4378 CRuntime* COleControl::GetRuntimeClass()const 4379 CRuntime* COleControlModule::GetRuntimeClass()const 4380 CRuntime* COleConvertDialog::GetRuntimeClass()const 4381 CRuntime* COleDBRecordView::GetRuntimeClass()const 4382 CRuntime* COleDialog::GetRuntimeClass()const 4383 CRuntime* COleDispatchException::GetRuntimeClass()const 4384 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 4385 CRuntime* COleDocObjectItem::GetRuntimeClass()const 4386 CRuntime* COleDocument::GetRuntimeClass()const 4387 CRuntime* COleException::GetRuntimeClass()const 4388 CRuntime* COleInsertDialog::GetRuntimeClass()const 4389 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 4390 CRuntime* COleLinkingDoc::GetRuntimeClass()const 4391 CRuntime* COleLinksDialog::GetRuntimeClass()const 4392 CRuntime* COleObjectFactory::GetRuntimeClass()const 4393 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 4394 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 4395 CRuntime* COlePropertyPage::GetRuntimeClass()const 4396 CRuntime* COleResizeBar::GetRuntimeClass()const 4397 CRuntime* COleServerDoc::GetRuntimeClass()const 4398 CRuntime* COleServerItem::GetRuntimeClass()const 4399 CRuntime* COleStreamFile::GetRuntimeClass()const 4400 CRuntime* COleUpdateDialog::GetRuntimeClass()const 4401 CRuntime* CPageSetupDialog::GetRuntimeClass()const 4402 CRuntime* CPaintDC::GetRuntimeClass()const 4403 CRuntime* CPalette::GetRuntimeClass()const 4404 CRuntime* CPen::GetRuntimeClass()const 4405 CRuntime* CPreviewDC::GetRuntimeClass()const 4406 CRuntime* CPreviewView::GetRuntimeClass()const 4407 CRuntime* CPrintDialog::GetRuntimeClass()const 4408 CRuntime* CPrintDialogEx::GetRuntimeClass()const 4409 CRuntime* CProgressCtrl::GetRuntimeClass()const 4410 CRuntime* CPropertyPage::GetRuntimeClass()const 4411 CRuntime* CPropertySheet::GetRuntimeClass()const 4412 CRuntime* CPtrArray::GetRuntimeClass()const 4413 CRuntime* CPtrList::GetRuntimeClass()const 4414 CRuntime* CReBar::GetRuntimeClass()const 4415 CRuntime* CReBarCtrl::GetRuntimeClass()const 4416 CRuntime* CRecordset::GetRuntimeClass()const 4417 CRuntime* CRecordView::GetRuntimeClass()const 4418 CRuntime* CResourceException::GetRuntimeClass()const 4419 CRuntime* CRgn::GetRuntimeClass()const 4420 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 4421 CRuntime* CRichEditCtrl::GetRuntimeClass()const 4422 CRuntime* CRichEditDoc::GetRuntimeClass()const 4423 CRuntime* CRichEditView::GetRuntimeClass()const 4424 CRuntime* CScrollBar::GetRuntimeClass()const 4425 CRuntime* CScrollView::GetRuntimeClass()const 4426 CRuntime* CSemaphore::GetRuntimeClass()const 4427 CRuntime* CSharedFile::GetRuntimeClass()const 4428 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 4429 CRuntime* CSliderCtrl::GetRuntimeClass()const 4430 CRuntime* CSocket::GetRuntimeClass()const 4431 CRuntime* CSocketFile::GetRuntimeClass()const 4432 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 4433 CRuntime* CSplitterWnd::GetRuntimeClass()const 4434 CRuntime* CStatic::GetRuntimeClass()const 4435 CRuntime* CStatusBar::GetRuntimeClass()const 4436 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 4437 CRuntime* CStdioFile::GetRuntimeClass()const 4438 CRuntime* CStringArray::GetRuntimeClass()const 4439 CRuntime* CStringList::GetRuntimeClass()const 4440 CRuntime* CSyncObject::GetRuntimeClass()const 4441 CRuntime* CTabCtrl::GetRuntimeClass()const 4442 CRuntime* CToolBar::GetRuntimeClass()const 4443 CRuntime* CToolBarCtrl::GetRuntimeClass()const 4444 CRuntime* CToolTipCtrl::GetRuntimeClass()const 4445 CRuntime* CTreeCtrl::GetRuntimeClass()const 4446 CRuntime* CTreeView::GetRuntimeClass()const 4447 CRuntime* CUIntArray::GetRuntimeClass()const 4448 CRuntime* CUserException::GetRuntimeClass()const 4449 CRuntime* CView::GetRuntimeClass()const 4450 CRuntime* CWinApp::GetRuntimeClass()const 4451 CRuntime* CWindowDC::GetRuntimeClass()const 4452 CRuntime* CWindowlessDC::GetRuntimeClass()const 4453 CRuntime* CWinThread::GetRuntimeClass()const 4454 CRuntime* CWnd::GetRuntimeClass()const 4455 CRuntime* CWordArray::GetRuntimeClass()const 4456 void * CGdiObject::GetSafeHandle()const 4457 _IMAGELIST * CImageList::GetSafeHandle()const 4458 HDC__ * CDC::GetSafeHdc()const 4459 HMENU__ * CMenu::GetSafeHmenu()const 4460 HWND__ * CWnd::GetSafeHwnd()const 4461 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 4462 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 4463 unsigned long * CColorDialog::GetSavedCustomColors() 4464 ATL::CStringT > > CGopherFileFind::GetScreenName()const 4465 CSize CDockState::GetScreenSize() 4466 CScrollBar * CView::GetScrollBarCtrl(int)const 4467 CScrollBar * CWnd::GetScrollBarCtrl(int)const 4468 void CScrollView::GetScrollBarSizes(CSize &) 4469 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 4470 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 4471 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 4472 int CScrollBar::GetScrollLimit() 4473 int CWnd::GetScrollLimit(int) 4474 int CScrollBar::GetScrollPos()const 4475 int CWnd::GetScrollPos(int)const 4476 CPoint CScrollView::GetScrollPosition()const 4477 void CScrollBar::GetScrollRange(int *,int *)const 4478 void CWnd::GetScrollRange(int,int *,int *)const 4479 unsigned long CSplitterWnd::GetScrollStyle()const 4480 unsigned int CTreeCtrl::GetScrollTime()const 4481 CPropertySection * CPropertySet::GetSection(_GUID) 4482 HKEY__ * CWinApp::GetSectionKey(char const *) 4483 char const * CPropertySection::GetSectionName() 4484 unsigned long CEdit::GetSel()const 4485 void CEdit::GetSel(int &,int &)const 4486 int CListBox::GetSel(int)const 4487 void CRichEditCtrl::GetSel(long &,long &)const 4488 void CRichEditCtrl::GetSel(_charrange &)const 4489 int CListBox::GetSelCount()const 4490 unsigned int CListCtrl::GetSelectedCount()const 4491 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 4492 _TREEITEM * CTreeCtrl::GetSelectedItem()const 4493 void CEditView::GetSelectedText(ATL::CStringT > > &)const 4494 void CSliderCtrl::GetSelection(int &,int &)const 4495 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 4496 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 4497 int CListCtrl::GetSelectionMark() 4498 unsigned int COleBusyDialog::GetSelectionType()const 4499 unsigned int COleConvertDialog::GetSelectionType()const 4500 unsigned int COleInsertDialog::GetSelectionType()const 4501 unsigned int COlePasteSpecialDialog::GetSelectionType()const 4502 unsigned short CRichEditCtrl::GetSelectionType()const 4503 int CListBox::GetSelItems(int,int *)const 4504 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 4505 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 4506 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4507 ATL::CStringT > > CRichEditCtrl::GetSelText()const 4508 long CRichEditCtrl::GetSelText(char *)const 4509 ATL::CStringT > > CInternetConnection::GetServerName()const 4510 CInternetSession * CInternetConnection::GetSession()const 4511 int CHtmlView::GetSilent()const 4512 long CPrintDialogEx::GetSite(_GUID const &,void * *) 4513 int CByteArray::GetSize()const 4514 int CDWordArray::GetSize()const 4515 int CFontDialog::GetSize()const 4516 int CMapPtrToPtr::GetSize()const 4517 int CMapPtrToWord::GetSize()const 4518 int CMapStringToOb::GetSize()const 4519 int CMapStringToPtr::GetSize()const 4520 int CMapStringToString::GetSize()const 4521 int CMapWordToOb::GetSize()const 4522 int CMapWordToPtr::GetSize()const 4523 int CObArray::GetSize()const 4524 int CObList::GetSize()const 4525 unsigned long CPropertySection::GetSize() 4526 int CPtrArray::GetSize()const 4527 int CPtrList::GetSize()const 4528 int CStringArray::GetSize()const 4529 int CStringList::GetSize()const 4530 int CUIntArray::GetSize()const 4531 int CWordArray::GetSize()const 4532 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 4533 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 4534 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 4535 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 4536 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 4537 CWnd * CSplitterWnd::GetSizingParent() 4538 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 4539 int CAsyncSocket::GetSockName(sockaddr *,int *) 4540 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 4541 int CHtmlView::GetSource(ATL::CStringT > > &) 4542 ATL::CStringT > > const & CRecordset::GetSQL()const 4543 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 4544 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 4545 char const * CHtmlEditCtrl::GetStartDocument() 4546 char const * CHtmlEditView::GetStartDocument() 4547 __POSITION * CConnectionPoint::GetStartPosition()const 4548 __POSITION * CFileDialog::GetStartPosition()const 4549 __POSITION * CMapPtrToPtr::GetStartPosition()const 4550 __POSITION * CMapPtrToWord::GetStartPosition()const 4551 __POSITION * CMapStringToOb::GetStartPosition()const 4552 __POSITION * CMapStringToPtr::GetStartPosition()const 4553 __POSITION * CMapStringToString::GetStartPosition()const 4554 __POSITION * CMapWordToOb::GetStartPosition()const 4555 __POSITION * CMapWordToPtr::GetStartPosition()const 4556 __POSITION * COleDocument::GetStartPosition()const 4557 __POSITION * CRichEditDoc::GetStartPosition()const 4558 unsigned int CButton::GetState()const 4559 int CToolBarCtrl::GetState(int)const 4560 int CFile::GetStatus(CFileStatus &)const 4561 int CFile::GetStatus(char const *,CFileStatus &) 4562 int CMemFile::GetStatus(CFileStatus &)const 4563 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus()const 4564 int COleStreamFile::GetStatus(CFileStatus &)const 4565 void CRecordset::GetStatus(CRecordsetStatus &)const 4566 int CHtmlView::GetStatusBar()const 4567 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 4568 unsigned long COleControl::GetStockEventMask()const 4569 unsigned long COleControl::GetStockPropMask()const 4570 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 4571 ATL::CStringT > > const COleStreamFile::GetStorageName()const 4572 IStream * COleStreamFile::GetStream()const 4573 int CRichEditDoc::GetStreamFormat()const 4574 int CDC::GetStretchBltMode()const 4575 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 4576 int CToolBarCtrl::GetString(int,char *,int)const 4577 int CListCtrl::GetStringWidth(char const *)const 4578 unsigned long COleControlSite::GetStyle()const 4579 unsigned long COleControlSiteOrWnd::GetStyle()const 4580 unsigned long CToolBarCtrl::GetStyle()const 4581 unsigned long CWnd::GetStyle()const 4582 ATL::CStringT > > CFontDialog::GetStyleName()const 4583 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 4584 CMenu * CMenu::GetSubMenu(int)const 4585 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 4586 int CWinApp::GetSysPolicyValue(unsigned long,int *) 4587 CMenu * CWnd::GetSystemMenu(int)const 4588 CSize CDC::GetTabbedTextExtentA(ATL::CStringT > > const &,int,int *)const 4589 CSize CDC::GetTabbedTextExtentA(char const *,int,int,int *)const 4590 CTabCtrl * CPropertySheet::GetTabControl()const 4591 ATL::CStringT > > const & CRecordset::GetTableName()const 4592 CObject * & CObList::GetTail() 4593 CObject const * & CObList::GetTail()const 4594 void * & CPtrList::GetTail() 4595 void const * & CPtrList::GetTail()const 4596 ATL::CStringT > > & CStringList::GetTail() 4597 ATL::CStringT > > const & CStringList::GetTail()const 4598 __POSITION * CObList::GetTailPosition()const 4599 __POSITION * CPtrList::GetTailPosition()const 4600 __POSITION * CStringList::GetTailPosition()const 4601 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 4602 int CListBox::GetText(int,char *)const 4603 void CListBox::GetText(int,ATL::CStringT > > &)const 4604 wchar_t * COleControl::GetText() 4605 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 4606 int CStatusBarCtrl::GetText(char const *,int,int *)const 4607 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 4608 unsigned int CDC::GetTextAlign()const 4609 unsigned long CListCtrl::GetTextBkColor()const 4610 int CDC::GetTextCharacterExtra()const 4611 unsigned long CDC::GetTextColor()const 4612 unsigned long CListCtrl::GetTextColor()const 4613 unsigned long CReBarCtrl::GetTextColor()const 4614 unsigned long CTreeCtrl::GetTextColor()const 4615 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 4616 CSize CDC::GetTextExtent(char const *,int)const 4617 int CDC::GetTextFaceA(ATL::CStringT > > &)const 4618 int CDC::GetTextFaceA(int,char *)const 4619 int CListBox::GetTextLen(int)const 4620 long CRecordset::GetTextLen(short,unsigned long) 4621 long CRichEditCtrl::GetTextLength()const 4622 long CRichEditView::GetTextLength()const 4623 int CStatusBarCtrl::GetTextLength(int,int *)const 4624 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 4625 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 4626 int CDC::GetTextMetricsA(tagTEXTMETRICA *)const 4627 unsigned int CRichEditCtrl::GetTextMode()const 4628 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 4629 int CHtmlView::GetTheaterMode()const 4630 CRuntime* CAnimateCtrl::GetThisClass() 4631 CRuntime* CArchiveException::GetThisClass() 4632 CRuntime* CAsyncMonikerFile::GetThisClass() 4633 CRuntime* CAsyncSocket::GetThisClass() 4634 CRuntime* CBitmap::GetThisClass() 4635 CRuntime* CBitmapButton::GetThisClass() 4636 CRuntime* CBrush::GetThisClass() 4637 CRuntime* CButton::GetThisClass() 4638 CRuntime* CByteArray::GetThisClass() 4639 CRuntime* CCachedDataPathProperty::GetThisClass() 4640 CRuntime* CCheckListBox::GetThisClass() 4641 CRuntime* CClientDC::GetThisClass() 4642 CRuntime* CCmdTarget::GetThisClass() 4643 CRuntime* CColorDialog::GetThisClass() 4644 CRuntime* CComboBox::GetThisClass() 4645 CRuntime* CComboBoxEx::GetThisClass() 4646 CRuntime* CControlBar::GetThisClass() 4647 CRuntime* CCriticalSection::GetThisClass() 4648 CRuntime* CCtrlView::GetThisClass() 4649 CRuntime* CDatabase::GetThisClass() 4650 CRuntime* CDataPathProperty::GetThisClass() 4651 CRuntime* CDateTimeCtrl::GetThisClass() 4652 CRuntime* CDBException::GetThisClass() 4653 CRuntime* CDC::GetThisClass() 4654 CRuntime* CDHtmlDialog::GetThisClass() 4655 CRuntime* CDialog::GetThisClass() 4656 CRuntime* CDialogBar::GetThisClass() 4657 CRuntime* CDocItem::GetThisClass() 4658 CRuntime* CDockBar::GetThisClass() 4659 CRuntime* CDockState::GetThisClass() 4660 CRuntime* CDocManager::GetThisClass() 4661 CRuntime* CDocObjectServer::GetThisClass() 4662 CRuntime* CDocObjectServerItem::GetThisClass() 4663 CRuntime* CDocTemplate::GetThisClass() 4664 CRuntime* CDocument::GetThisClass() 4665 CRuntime* CDragListBox::GetThisClass() 4666 CRuntime* CDWordArray::GetThisClass() 4667 CRuntime* CDynLinkLibrary::GetThisClass() 4668 CRuntime* CEdit::GetThisClass() 4669 CRuntime* CEditView::GetThisClass() 4670 CRuntime* CEvent::GetThisClass() 4671 CRuntime* CException::GetThisClass() 4672 CRuntime* CFile::GetThisClass() 4673 CRuntime* CFileDialog::GetThisClass() 4674 CRuntime* CFileException::GetThisClass() 4675 CRuntime* CFileFind::GetThisClass() 4676 CRuntime* CFindReplaceDialog::GetThisClass() 4677 CRuntime* CFont::GetThisClass() 4678 CRuntime* CFontDialog::GetThisClass() 4679 CRuntime* CFormView::GetThisClass() 4680 CRuntime* CFrameWnd::GetThisClass() 4681 CRuntime* CFtpConnection::GetThisClass() 4682 CRuntime* CFtpFileFind::GetThisClass() 4683 CRuntime* CGdiObject::GetThisClass() 4684 CRuntime* CGopherConnection::GetThisClass() 4685 CRuntime* CGopherFile::GetThisClass() 4686 CRuntime* CGopherFileFind::GetThisClass() 4687 CRuntime* CHeaderCtrl::GetThisClass() 4688 CRuntime* CHotKeyCtrl::GetThisClass() 4689 CRuntime* CHtmlEditDoc::GetThisClass() 4690 CRuntime* CHtmlEditView::GetThisClass() 4691 CRuntime* CHtmlView::GetThisClass() 4692 CRuntime* CHttpConnection::GetThisClass() 4693 CRuntime* CHttpFile::GetThisClass() 4694 CRuntime* CImageList::GetThisClass() 4695 CRuntime* CInternetConnection::GetThisClass() 4696 CRuntime* CInternetException::GetThisClass() 4697 CRuntime* CInternetFile::GetThisClass() 4698 CRuntime* CInternetSession::GetThisClass() 4699 CRuntime* CIPAddressCtrl::GetThisClass() 4700 CRuntime* CLinkCtrl::GetThisClass() 4701 CRuntime* CListBox::GetThisClass() 4702 CRuntime* CListCtrl::GetThisClass() 4703 CRuntime* CListView::GetThisClass() 4704 CRuntime* CLongBinary::GetThisClass() 4705 CRuntime* CMapPtrToPtr::GetThisClass() 4706 CRuntime* CMapPtrToWord::GetThisClass() 4707 CRuntime* CMapStringToOb::GetThisClass() 4708 CRuntime* CMapStringToPtr::GetThisClass() 4709 CRuntime* CMapStringToString::GetThisClass() 4710 CRuntime* CMapWordToOb::GetThisClass() 4711 CRuntime* CMapWordToPtr::GetThisClass() 4712 CRuntime* CMDIChildWnd::GetThisClass() 4713 CRuntime* CMDIFrameWnd::GetThisClass() 4714 CRuntime* CMemFile::GetThisClass() 4715 CRuntime* CMemoryException::GetThisClass() 4716 CRuntime* CMenu::GetThisClass() 4717 CRuntime* CMetaFileDC::GetThisClass() 4718 CRuntime* CMiniDockFrameWnd::GetThisClass() 4719 CRuntime* CMiniFrameWnd::GetThisClass() 4720 CRuntime* CMonikerFile::GetThisClass() 4721 CRuntime* CMonthCalCtrl::GetThisClass() 4722 CRuntime* CMultiDocTemplate::GetThisClass() 4723 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 4724 CRuntime* CMutex::GetThisClass() 4725 CRuntime* CNotSupportedException::GetThisClass() 4726 CRuntime* CObArray::GetThisClass() 4727 CRuntime* CObject::GetThisClass() 4728 CRuntime* CObList::GetThisClass() 4729 CRuntime* COleBusyDialog::GetThisClass() 4730 CRuntime* COleChangeIconDialog::GetThisClass() 4731 CRuntime* COleChangeSourceDialog::GetThisClass() 4732 CRuntime* COleClientItem::GetThisClass() 4733 CRuntime* COleControl::GetThisClass() 4734 CRuntime* COleControlModule::GetThisClass() 4735 CRuntime* COleConvertDialog::GetThisClass() 4736 CRuntime* COleDBRecordView::GetThisClass() 4737 CRuntime* COleDialog::GetThisClass() 4738 CRuntime* COleDispatchException::GetThisClass() 4739 CRuntime* COleDocIPFrameWnd::GetThisClass() 4740 CRuntime* COleDocObjectItem::GetThisClass() 4741 CRuntime* COleDocument::GetThisClass() 4742 CRuntime* COleException::GetThisClass() 4743 CRuntime* COleInsertDialog::GetThisClass() 4744 CRuntime* COleIPFrameWnd::GetThisClass() 4745 CRuntime* COleLinkingDoc::GetThisClass() 4746 CRuntime* COleLinksDialog::GetThisClass() 4747 CRuntime* COleObjectFactory::GetThisClass() 4748 CRuntime* COlePasteSpecialDialog::GetThisClass() 4749 CRuntime* COlePropertiesDialog::GetThisClass() 4750 CRuntime* COlePropertyPage::GetThisClass() 4751 CRuntime* COleResizeBar::GetThisClass() 4752 CRuntime* COleServerDoc::GetThisClass() 4753 CRuntime* COleServerItem::GetThisClass() 4754 CRuntime* COleStreamFile::GetThisClass() 4755 CRuntime* COleUpdateDialog::GetThisClass() 4756 CRuntime* CPageSetupDialog::GetThisClass() 4757 CRuntime* CPaintDC::GetThisClass() 4758 CRuntime* CPalette::GetThisClass() 4759 CRuntime* CPen::GetThisClass() 4760 CRuntime* CPreviewDC::GetThisClass() 4761 CRuntime* CPreviewView::GetThisClass() 4762 CRuntime* CPrintDialog::GetThisClass() 4763 CRuntime* CPrintDialogEx::GetThisClass() 4764 CRuntime* CProgressCtrl::GetThisClass() 4765 CRuntime* CPropertyPage::GetThisClass() 4766 CRuntime* CPropertySheet::GetThisClass() 4767 CRuntime* CPtrArray::GetThisClass() 4768 CRuntime* CPtrList::GetThisClass() 4769 CRuntime* CReBar::GetThisClass() 4770 CRuntime* CReBarCtrl::GetThisClass() 4771 CRuntime* CRecordset::GetThisClass() 4772 CRuntime* CRecordView::GetThisClass() 4773 CRuntime* CResourceException::GetThisClass() 4774 CRuntime* CRgn::GetThisClass() 4775 CRuntime* CRichEditCntrItem::GetThisClass() 4776 CRuntime* CRichEditCtrl::GetThisClass() 4777 CRuntime* CRichEditDoc::GetThisClass() 4778 CRuntime* CRichEditView::GetThisClass() 4779 CRuntime* CScrollBar::GetThisClass() 4780 CRuntime* CScrollView::GetThisClass() 4781 CRuntime* CSemaphore::GetThisClass() 4782 CRuntime* CSharedFile::GetThisClass() 4783 CRuntime* CSingleDocTemplate::GetThisClass() 4784 CRuntime* CSliderCtrl::GetThisClass() 4785 CRuntime* CSocket::GetThisClass() 4786 CRuntime* CSocketFile::GetThisClass() 4787 CRuntime* CSpinButtonCtrl::GetThisClass() 4788 CRuntime* CSplitterWnd::GetThisClass() 4789 CRuntime* CStatic::GetThisClass() 4790 CRuntime* CStatusBar::GetThisClass() 4791 CRuntime* CStatusBarCtrl::GetThisClass() 4792 CRuntime* CStdioFile::GetThisClass() 4793 CRuntime* CStringArray::GetThisClass() 4794 CRuntime* CStringList::GetThisClass() 4795 CRuntime* CSyncObject::GetThisClass() 4796 CRuntime* CTabCtrl::GetThisClass() 4797 CRuntime* CToolBar::GetThisClass() 4798 CRuntime* CToolBarCtrl::GetThisClass() 4799 CRuntime* CToolTipCtrl::GetThisClass() 4800 CRuntime* CTreeCtrl::GetThisClass() 4801 CRuntime* CTreeView::GetThisClass() 4802 CRuntime* CUIntArray::GetThisClass() 4803 CRuntime* CUserException::GetThisClass() 4804 CRuntime* CView::GetThisClass() 4805 CRuntime* CWinApp::GetThisClass() 4806 CRuntime* CWindowDC::GetThisClass() 4807 CRuntime* CWindowlessDC::GetThisClass() 4808 CRuntime* CWinThread::GetThisClass() 4809 CRuntime* CWnd::GetThisClass() 4810 CRuntime* CWordArray::GetThisClass() 4811 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 4812 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 4813 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 4814 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 4815 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 4816 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 4817 AFX_EVENTMAP const * COleControl::GetThisEventMap() 4818 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 4819 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 4820 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 4821 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 4822 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 4823 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 4824 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 4825 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 4826 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 4827 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 4828 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 4829 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 4830 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 4831 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 4832 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 4833 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 4834 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 4835 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 4836 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 4837 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 4838 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 4839 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 4840 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 4841 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 4842 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 4843 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 4844 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 4845 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 4846 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 4847 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 4848 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 4849 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 4850 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 4851 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 4852 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 4853 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 4854 AFX_MSGMAP const * CDialog::GetThisMessageMap() 4855 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 4856 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 4857 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 4858 AFX_MSGMAP const * CDocument::GetThisMessageMap() 4859 AFX_MSGMAP const * CEditView::GetThisMessageMap() 4860 AFX_MSGMAP const * CFormView::GetThisMessageMap() 4861 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 4862 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 4863 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 4864 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 4865 AFX_MSGMAP const * CListView::GetThisMessageMap() 4866 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 4867 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 4868 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 4869 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 4870 AFX_MSGMAP const * COleControl::GetThisMessageMap() 4871 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 4872 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 4873 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 4874 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 4875 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 4876 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 4877 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 4878 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 4879 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 4880 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 4881 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 4882 AFX_MSGMAP const * CReBar::GetThisMessageMap() 4883 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 4884 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 4885 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 4886 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 4887 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 4888 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 4889 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 4890 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 4891 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 4892 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 4893 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 4894 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 4895 AFX_MSGMAP const * CView::GetThisMessageMap() 4896 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 4897 AFX_MSGMAP const * CWnd::GetThisMessageMap() 4898 int CWinThread::GetThreadPriority() 4899 void CSliderCtrl::GetThumbRect(tagRECT *)const 4900 int CSliderCtrl::GetTic(int)const 4901 unsigned long * CSliderCtrl::GetTicArray()const 4902 int CSliderCtrl::GetTicPos(int)const 4903 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 4904 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 4905 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 4906 unsigned long CToolTipCtrl::GetTipBkColor()const 4907 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 4908 unsigned long CToolTipCtrl::GetTipTextColor()const 4909 ATL::CStringT > > const & CDocument::GetTitle()const 4910 ATL::CStringT > > CFrameWnd::GetTitle()const 4911 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 4912 int CMonthCalCtrl::GetToday(ATL::CTime &)const 4913 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 4914 int CHtmlView::GetToolBar()const 4915 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 4916 int CToolTipCtrl::GetToolCount()const 4917 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 4918 CToolTipCtrl * CListCtrl::GetToolTips()const 4919 CToolTipCtrl * CReBarCtrl::GetToolTips()const 4920 CToolTipCtrl * CSliderCtrl::GetToolTips()const 4921 CToolTipCtrl * CTabCtrl::GetToolTips()const 4922 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 4923 CToolTipCtrl * CTreeCtrl::GetToolTips()const 4924 long CHtmlView::GetTop()const 4925 int CPrintDialog::GetToPage()const 4926 unsigned int CPrintInfo::GetToPage()const 4927 int CComboBox::GetTopIndex()const 4928 int CListBox::GetTopIndex()const 4929 int CListCtrl::GetTopIndex()const 4930 int CHtmlView::GetTopLevelContainer()const 4931 CFrameWnd * CWnd::GetTopLevelFrame()const 4932 CWnd * CWnd::GetTopLevelOwner()const 4933 CWnd * CWnd::GetTopLevelParent()const 4934 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix() 4935 CWnd * CWnd::GetTopWindow()const 4936 CSize CScrollView::GetTotalSize()const 4937 CTreeCtrl & CTreeView::GetTreeCtrl()const 4938 int CScrollView::GetTrueClientSize(CSize &,CSize &) 4939 void CRectTracker::GetTrueRect(tagRECT *)const 4940 ATL::CStringT > > CHtmlView::GetType()const 4941 enum OLE_OBJTYPE COleClientItem::GetType()const 4942 short CPictureHolder::GetType() 4943 unsigned long CProperty::GetType() 4944 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4945 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4946 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4947 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4948 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4949 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4950 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4951 unsigned int CCmdTarget::GetTypeInfoCount() 4952 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 4953 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 4954 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 4955 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 4956 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 4957 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 4958 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 4959 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 4960 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 4961 CTypeLibCache * CCmdTarget::GetTypeLibCache() 4962 void COleSafeArray::GetUBound(unsigned long,long *) 4963 enum _undonameid CRichEditCtrl::GetUndoName()const 4964 int CWnd::GetUpdateRect(tagRECT *,int) 4965 int CWnd::GetUpdateRgn(CRgn *,int) 4966 int CByteArray::GetUpperBound()const 4967 int CDWordArray::GetUpperBound()const 4968 int CObArray::GetUpperBound()const 4969 int CPtrArray::GetUpperBound()const 4970 int CStringArray::GetUpperBound()const 4971 int CUIntArray::GetUpperBound()const 4972 int CWordArray::GetUpperBound()const 4973 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 4974 long COleControl::XOleObject::GetUserClassID(_GUID *) 4975 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 4976 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 4977 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 4978 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 4979 void COleControl::GetUserType(char *) 4980 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 4981 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 4982 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 4983 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 4984 void * CMapPtrToPtr::GetValueAt(void *)const 4985 ATL::CStringT > > CHttpFile::GetVerb()const 4986 unsigned long CDockState::GetVersion() 4987 unsigned long CPropExchange::GetVersion() 4988 CHtmlEditView * CHtmlEditDoc::GetView()const 4989 CRichEditView * CRichEditDoc::GetView()const 4990 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 4991 CSize CDC::GetViewportExt()const 4992 CPoint CDC::GetViewportOrg()const 4993 int CListCtrl::GetViewRect(tagRECT *)const 4994 long COleControl::XViewObject::GetViewStatus(unsigned long *) 4995 int CHtmlView::GetVisible()const 4996 unsigned int CTreeCtrl::GetVisibleCount()const 4997 int CFontDialog::GetWeight()const 4998 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 4999 long CHtmlView::GetWidth()const 5000 CWnd * CDC::GetWindow()const 5001 CWnd * CWnd::GetWindow(unsigned int)const 5002 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5003 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5004 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5005 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5006 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5007 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5008 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5009 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5010 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5011 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5012 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5013 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5014 unsigned long CWnd::GetWindowContextHelpId()const 5015 CDC * CWnd::GetWindowDC() 5016 long CWnd::GetWindowedChildCount() 5017 CSize CDC::GetWindowExt()const 5018 long CWnd::GetWindowLessChildCount() 5019 IDropTarget * COleControl::GetWindowlessDropTarget() 5020 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5021 CPoint CDC::GetWindowOrg()const 5022 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5023 void CWnd::GetWindowRect(tagRECT *)const 5024 int CWnd::GetWindowRgn(HRGN__ *)const 5025 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 5026 int CWnd::GetWindowTextA(char *,int)const 5027 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 5028 int CWnd::GetWindowTextLengthA()const 5029 unsigned int CRichEditCtrl::GetWordWrapMode()const 5030 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5031 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5032 long COleDropSource::GiveFeedback(unsigned long) 5033 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5034 void CHtmlView::GoBack() 5035 void CHtmlView::GoForward() 5036 void CHtmlView::GoHome() 5037 void CHtmlView::GoSearch() 5038 void CDialog::GotoDlgCtrl(CWnd *) 5039 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5040 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5041 int CDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5042 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5043 void CMemFile::GrowFile(unsigned long) 5044 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5045 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5046 long CDialog::HandleInitDialog(unsigned int,long) 5047 long CDialogBar::HandleInitDialog(unsigned int,long) 5048 long CFormView::HandleInitDialog(unsigned int,long) 5049 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5050 long CPropertySheet::HandleInitDialog(unsigned int,long) 5051 long CScrollView::HandleMButtonDown(unsigned int,long) 5052 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5053 int COleControlContainer::HandleSetFocus() 5054 long CDialog::HandleSetFont(unsigned int,long) 5055 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5056 long COleControl::XPersistStorage::HandsOffStorage() 5057 long COleServerDoc::XPersistStorage::HandsOffStorage() 5058 int COleDocument::HasBlankItems()const 5059 int CComboBoxEx::HasEditChanged() 5060 int CDialogTemplate::HasFont()const 5061 unsigned int HashKey(tagVARIANT const &) 5062 unsigned int HashKey(wchar_t const *) 5063 unsigned int HashKey(char const *) 5064 unsigned int HashKey(ATL::CComBSTR) 5065 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5066 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 5067 void * CFile::hFileNull 5068 void CWinApp::HideApplication() 5069 int CToolBarCtrl::HideButton(int,int) 5070 void CWnd::HideCaret() 5071 void CFileDialog::HideControl(int) 5072 void CRichEditCtrl::HideSelection(int,int) 5073 long CBrowserControlSite::HideUI() 5074 long CDHtmlDialog::HideUI() 5075 long CHtmlControlSite::XDocHostUIHandler::HideUI() 5076 int CTabCtrl::HighlightItem(int,int) 5077 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5078 void CDC::HIMETRICtoDP(tagSIZE *)const 5079 void CDC::HIMETRICtoLP(tagSIZE *)const 5080 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5081 int CListCtrl::HitTest(CPoint,unsigned int *)const 5082 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5083 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5084 int CRectTracker::HitTest(CPoint)const 5085 int CSplitterWnd::HitTest(CPoint)const 5086 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5087 int CToolBarCtrl::HitTest(tagPOINT *)const 5088 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 5089 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5090 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5091 int CRectTracker::HitTestHandles(CPoint)const 5092 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 5093 void CWnd::HtmlHelpA(unsigned long,unsigned int) 5094 int CSplitterWnd::IdFromRowCol(int,int)const 5095 int CReBarCtrl::IDToIndex(unsigned int)const 5096 void COlePropertyPage::IgnoreApply(unsigned int) 5097 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5098 int CToolBarCtrl::Indeterminate(int,int) 5099 int CCriticalSection::Init() 5100 int CWinApp::InitApplication() 5101 long COleControl::XOleCache::InitCache(IDataObject *) 5102 int CWnd::InitControlContainer() 5103 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5104 long CPrintDialogEx::InitDone() 5105 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5106 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5107 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5108 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5109 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5110 void CMapPtrToWord::InitHashTable(unsigned int,int) 5111 void CMapStringToOb::InitHashTable(unsigned int,int) 5112 void CMapStringToPtr::InitHashTable(unsigned int,int) 5113 void CMapStringToString::InitHashTable(unsigned int,int) 5114 void CMapWordToOb::InitHashTable(unsigned int,int) 5115 void CMapWordToPtr::InitHashTable(unsigned int,int) 5116 long CDataSourceControl::Initialize() 5117 void CDHtmlDialog::Initialize() 5118 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5119 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5120 int CEditView::InitializeReplace() 5121 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5122 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5123 int COleControlModule::InitInstance() 5124 int CWinApp::InitInstance() 5125 int CWinThread::InitInstance() 5126 void CWinApp::InitLibId() 5127 void CDockContext::InitLoop() 5128 int CDialog::InitModalIndirect(void *,CWnd *) 5129 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5130 long COleControl::XPersistMemory::InitNew() 5131 long COleControl::XPersistPropertyBag::InitNew() 5132 long COleControl::XPersistStorage::InitNew(IStorage *) 5133 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5134 long COleControl::XPersistStreamInit::InitNew() 5135 void CRecordset::InitRecord() 5136 void COleControl::InitStockEventMask() 5137 void COleControl::InitStockPropMask() 5138 int CComboBox::InitStorage(int,unsigned int) 5139 int CListBox::InitStorage(int,unsigned int) 5140 void CSimpleException::InitString() 5141 int CFrameWnd::InModalState()const 5142 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 5143 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 5144 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5145 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5146 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5147 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5148 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 5149 void CByteArray::InsertAt(int,unsigned char,int) 5150 void CByteArray::InsertAt(int,CByteArray *) 5151 void CDWordArray::InsertAt(int,unsigned long,int) 5152 void CDWordArray::InsertAt(int,CDWordArray *) 5153 void CObArray::InsertAt(int,CObArray *) 5154 void CObArray::InsertAt(int,CObject *,int) 5155 void CPtrArray::InsertAt(int,CPtrArray *) 5156 void CPtrArray::InsertAt(int,void *,int) 5157 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5158 void CStringArray::InsertAt(int,CStringArray *) 5159 void CStringArray::InsertAt(int,char const *,int) 5160 void CUIntArray::InsertAt(int,unsigned int,int) 5161 void CUIntArray::InsertAt(int,CUIntArray *) 5162 void CWordArray::InsertAt(int,unsigned short,int) 5163 void CWordArray::InsertAt(int,CWordArray *) 5164 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOA *) 5165 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5166 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5167 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5168 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 5169 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5170 int CListCtrl::InsertColumn(int,char const *,int,int,int) 5171 int CListCtrl::InsertColumn(int,tagLVCOLUMNA const *) 5172 void CStringArray::InsertEmpty(int,int) 5173 void CRichEditView::InsertFileAsObject(char const *) 5174 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 5175 int CHeaderCtrl::InsertItem(int,_HD_ITEMA *) 5176 int CListCtrl::InsertItem(int,char const *) 5177 int CListCtrl::InsertItem(int,char const *,int) 5178 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 5179 int CListCtrl::InsertItem(tagLVITEMA const *) 5180 long CRichEditView::InsertItem(CRichEditCntrItem *) 5181 long CTabCtrl::InsertItem(int,tagTCITEMA *) 5182 long CTabCtrl::InsertItem(int,char const *) 5183 long CTabCtrl::InsertItem(int,char const *,int) 5184 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 5185 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 5186 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5187 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTA *) 5188 _TREEITEM * CTreeCtrl::InsertItem(char const *,int,int,_TREEITEM *,_TREEITEM *) 5189 _TREEITEM * CTreeCtrl::InsertItem(char const *,_TREEITEM *,_TREEITEM *) 5190 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5191 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,char const *) 5192 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5193 int CMenu::InsertMenuItemA(unsigned int,tagMENUITEMINFOA *,int) 5194 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5195 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5196 int CComboBox::InsertString(int,char const *) 5197 int CComboBoxEx::InsertString(int,char const *) 5198 int CListBox::InsertString(int,char const *) 5199 unsigned long CCmdTarget::InternalAddRef() 5200 CFontHolder & COleControl::InternalGetFont() 5201 ATL::CStringT > > const & COleControl::InternalGetText() 5202 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5203 unsigned long CCmdTarget::InternalRelease() 5204 void COleControl::InternalSetReadyState(long) 5205 int CDC::IntersectClipRect(int,int,int,int) 5206 int CDC::IntersectClipRect(tagRECT const *) 5207 void CWnd::Invalidate(int) 5208 void CCheckListBox::InvalidateCheck(int) 5209 void COleControl::InvalidateControl(tagRECT const *,int) 5210 void CCheckListBox::InvalidateItem(int) 5211 void CRichEditDoc::InvalidateObjectCache() 5212 void CWnd::InvalidateRect(tagRECT const *,int) 5213 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5214 void COleControl::InvalidateRgn(CRgn *,int) 5215 void CWnd::InvalidateRgn(CRgn *,int) 5216 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5217 void CDC::InvertRect(tagRECT const *) 5218 int CDC::InvertRgn(CRgn *) 5219 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5220 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5221 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5222 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5223 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5224 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5225 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5226 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5227 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5228 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5229 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5230 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5231 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5232 int CAsyncSocket::IOCtl(long,unsigned long *) 5233 int CFileFind::IsArchived()const 5234 int CPropExchange::IsAsynchronous() 5235 int CDocItem::IsBlank()const 5236 int CIPAddressCtrl::IsBlank()const 5237 int COleServerItem::IsBlank()const 5238 int CSocket::IsBlocking() 5239 int CRecordset::IsBOF()const 5240 int CFontDialog::IsBold()const 5241 int CArchive::IsBufferEmpty()const 5242 int CToolBarCtrl::IsButtonChecked(int)const 5243 int CPropertyPage::IsButtonEnabled(int) 5244 int CToolBarCtrl::IsButtonEnabled(int)const 5245 int CToolBarCtrl::IsButtonHidden(int)const 5246 int CToolBarCtrl::IsButtonHighlighted(int)const 5247 int CToolBarCtrl::IsButtonIndeterminate(int)const 5248 int CToolBarCtrl::IsButtonPressed(int)const 5249 int CArchive::IsByteSwapping()const 5250 int CWnd::IsChild(CWnd const *)const 5251 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5252 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5253 int CFileFind::IsCompressed()const 5254 int COleServerItem::IsConnected()const 5255 int COleControl::IsConvertingVBX() 5256 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5257 int COleControlSite::IsDefaultButton() 5258 int CRecordset::IsDeleted()const 5259 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5260 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 5261 int CWnd::IsDialogMessageA(tagMSG *) 5262 int CFileFind::IsDirectory()const 5263 long CBlobProperty::IsDirty() 5264 long COleLinkingDoc::XPersistFile::IsDirty() 5265 long COleControl::XPersistMemory::IsDirty() 5266 long COleControl::XPersistStorage::IsDirty() 5267 long COleServerDoc::XPersistStorage::IsDirty() 5268 long COleControl::XPersistStreamInit::IsDirty() 5269 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5270 unsigned int CWnd::IsDlgButtonChecked(int)const 5271 int CControlBar::IsDockBar()const 5272 int CDockBar::IsDockBar()const 5273 int COleServerDoc::IsDocObject()const 5274 int CFileFind::IsDots()const 5275 int CGopherFileFind::IsDots()const 5276 int COleServerDoc::IsEmbedded()const 5277 int CByteArray::IsEmpty()const 5278 int CDWordArray::IsEmpty()const 5279 int CMapPtrToPtr::IsEmpty()const 5280 int CMapPtrToWord::IsEmpty()const 5281 int CMapStringToOb::IsEmpty()const 5282 int CMapStringToPtr::IsEmpty()const 5283 int CMapStringToString::IsEmpty()const 5284 int CMapWordToOb::IsEmpty()const 5285 int CMapWordToPtr::IsEmpty()const 5286 int CObArray::IsEmpty()const 5287 int CObList::IsEmpty()const 5288 int CPtrArray::IsEmpty()const 5289 int CPtrList::IsEmpty()const 5290 int CStringArray::IsEmpty()const 5291 int CStringList::IsEmpty()const 5292 int CUIntArray::IsEmpty()const 5293 int CWordArray::IsEmpty()const 5294 int CCheckListBox::IsEnabled(int) 5295 int CRecordset::IsEOF()const 5296 int CDHtmlDialog::IsExternalDispatchSafe() 5297 int CRecordset::IsFieldDirty(void *) 5298 int CRecordset::IsFieldNull(void *) 5299 int CRecordset::IsFieldNullable(void *) 5300 int CRecordset::IsFieldNullable(unsigned long)const 5301 int CRecordset::IsFieldStatusDirty(unsigned long)const 5302 int CRecordset::IsFieldStatusNull(unsigned long)const 5303 int CFieldExchange::IsFieldType(unsigned int *) 5304 int CControlBar::IsFloating()const 5305 int CFrameWnd::IsFrameWnd()const 5306 int CWnd::IsFrameWnd()const 5307 int IsHelpKey(tagMSG *) 5308 int CFileFind::IsHidden()const 5309 int CWnd::IsIconic()const 5310 int CWinThread::IsIdleMessage(tagMSG *) 5311 int COleClientItem::IsInPlaceActive()const 5312 int COleServerDoc::IsInPlaceActive()const 5313 int CCmdTarget::IsInvokeAllowed(long) 5314 int COleControl::IsInvokeAllowed(long) 5315 int CFontDialog::IsItalic()const 5316 int CRecordset::IsJoin(char const *) 5317 int CObject::IsKindOf(CRuntimeconst *)const 5318 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5319 int COccManager::IsLabelControl(CWnd *) 5320 int COleObjectFactory::IsLicenseValid() 5321 int COleServerItem::IsLinkedItem()const 5322 int COleClientItem::IsLinkUpToDate()const 5323 int CArchive::IsLoading()const 5324 int CPropExchange::IsLoading() 5325 int CMultiLock::IsLocked(unsigned long) 5326 int CSingleLock::IsLocked() 5327 int CRichEditCntrItem::IsMarked() 5328 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5329 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5330 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5331 int CDocument::IsModified() 5332 int CHtmlEditDoc::IsModified() 5333 int COleClientItem::IsModified()const 5334 int COleControl::IsModified() 5335 int COlePropertyPage::IsModified() 5336 int CRichEditDoc::IsModified() 5337 int CFileFind::IsNormal()const 5338 int CRecordView::IsOnFirstRecord() 5339 int CRecordView::IsOnLastRecord() 5340 int CDatabase::IsOpen()const 5341 int COleClientItem::IsOpen()const 5342 int CRecordset::IsOpen()const 5343 int COleControl::IsOptimizedDraw() 5344 long COlePropertyPage::XPropertyPage::IsPageDirty() 5345 int CRecordset::IsParamStatusNull(unsigned long)const 5346 int CDC::IsPrinting()const 5347 int CFileFind::IsReadOnly()const 5348 int CRecordset::IsRecordsetUpdatable() 5349 int COleObjectFactory::IsRegistered()const 5350 int CCmdTarget::IsResultExpected() 5351 int CRichEditView::IsRichEditFormat(unsigned short) 5352 int COleClientItem::IsRunning()const 5353 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 5354 int CRichEditView::IsSelected(CObject const *)const 5355 int CView::IsSelected(CObject const *)const 5356 int CRecordset::IsSelectQueryUpdatable(char const *) 5357 int CObject::IsSerializable()const 5358 int COleMessageFilter::IsSignificantMessage(tagMSG *) 5359 int CStatusBarCtrl::IsSimple()const 5360 int CDHtmlDialog::IsSinkedElement(IDispatch *) 5361 int CRecordset::IsSQLUpdatable(char const *) 5362 int CArchive::IsStoring()const 5363 int CFontDialog::IsStrikeOut()const 5364 int COleControl::IsSubclassedControl() 5365 int CFileFind::IsSystem()const 5366 int CFileFind::IsTemporary()const 5367 int CFindReplaceDialog::IsTerminating()const 5368 int CWnd::IsTopParentActive()const 5369 int CFrameWnd::IsTracking()const 5370 int CSplitterWnd::IsTracking() 5371 int CFontDialog::IsUnderline()const 5372 long CDocObjectServer::XOleObject::IsUpToDate() 5373 long COleControl::XOleObject::IsUpToDate() 5374 long COleServerDoc::XOleObject::IsUpToDate() 5375 long COleServerItem::XOleObject::IsUpToDate() 5376 int COleChangeSourceDialog::IsValidSource() 5377 int CControlBar::IsVisible()const 5378 int COleControlSite::IsWindowEnabled()const 5379 int CWnd::IsWindowEnabled()const 5380 int CWnd::IsWindowVisible()const 5381 int CPropertySheet::IsWizard()const 5382 int CWnd::IsZoomed()const 5383 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 5384 int CDragListBox::ItemFromPt(CPoint,int)const 5385 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 5386 void COleControl::KeyDown(unsigned short *) 5387 void COleControl::KeyUp(unsigned short *) 5388 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 5389 int CWnd::KillTimer(unsigned int) 5390 int CHeaderCtrl::Layout(_HD_LAYOUT *) 5391 void CToolBar::Layout() 5392 int CComboBox::LimitText(int) 5393 void CEdit::LimitText(int) 5394 void CRichEditCtrl::LimitText(long) 5395 int CEdit::LineFromChar(int)const 5396 long CRichEditCtrl::LineFromChar(long)const 5397 int CEdit::LineIndex(int)const 5398 int CRichEditCtrl::LineIndex(int)const 5399 int CEdit::LineLength(int)const 5400 int CRichEditCtrl::LineLength(int)const 5401 void CEdit::LineScroll(int,int) 5402 void CRichEditCtrl::LineScroll(int,int) 5403 int CDC::LineTo(int,int) 5404 int CDC::LineTo(tagPOINT) 5405 int CAsyncSocket::Listen(int) 5406 unsigned long CRichEditView::lMaxSize 5407 long CBlobProperty::Load(IStream *) 5408 int CDialogTemplate::Load(char const *) 5409 void COleControl::Load(char const *,CDataPathProperty &) 5410 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 5411 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 5412 long COleControl::XPersistMemory::Load(void *,unsigned long) 5413 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 5414 long COleControl::XPersistStorage::Load(IStorage *) 5415 long COleServerDoc::XPersistStorage::Load(IStorage *) 5416 long COleControl::XPersistStreamInit::Load(IStream *) 5417 int CFrameWnd::LoadAccelTable(char const *) 5418 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 5419 void CFrameWnd::LoadBarState(char const *) 5420 int CBitmap::LoadBitmapA(unsigned int) 5421 int CBitmap::LoadBitmapA(char const *) 5422 int CToolBar::LoadBitmapA(unsigned int) 5423 int CToolBar::LoadBitmapA(char const *) 5424 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 5425 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 5426 HICON__ * CWinApp::LoadCursorA(unsigned int)const 5427 HICON__ * CWinApp::LoadCursorA(char const *)const 5428 void CRecordset::LoadFields() 5429 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5430 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5431 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5432 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5433 int CDHtmlDialog::LoadFromResource(unsigned int) 5434 int CDHtmlDialog::LoadFromResource(char const *) 5435 int CHtmlView::LoadFromResource(unsigned int) 5436 int CHtmlView::LoadFromResource(char const *) 5437 void COleDocument::LoadFromStorage() 5438 HICON__ * CWinApp::LoadIconA(unsigned int)const 5439 HICON__ * CWinApp::LoadIconA(char const *)const 5440 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 5441 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 5442 int CMenu::LoadMenuA(unsigned int) 5443 int CMenu::LoadMenuA(char const *) 5444 int CMenu::LoadMenuIndirectA(void const *) 5445 int CBitmap::LoadOEMBitmap(unsigned int) 5446 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 5447 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 5448 HICON__ * CWinApp::LoadStandardCursor(char const *)const 5449 HICON__ * CWinApp::LoadStandardIcon(char const *)const 5450 int CControlBarInfo::LoadState(char const *,int,CDockState *) 5451 void CDockState::LoadState(char const *) 5452 long COleControl::LoadState(IStream *) 5453 void CWinApp::LoadStdProfileSettings(unsigned int) 5454 int CWinApp::LoadSysPolicies() 5455 void CDocTemplate::LoadTemplate() 5456 void CMultiDocTemplate::LoadTemplate() 5457 int CToolBar::LoadToolBar(unsigned int) 5458 int CToolBar::LoadToolBar(char const *) 5459 int CCriticalSection::Lock() 5460 int CCriticalSection::Lock(unsigned long) 5461 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 5462 void COleSafeArray::Lock() 5463 int CSingleLock::Lock(unsigned long) 5464 int CSyncObject::Lock(unsigned long) 5465 void CTypeLibCache::Lock() 5466 char const * CEditView::LockBuffer()const 5467 long COleControlContainer::XOleContainer::LockContainer(int) 5468 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 5469 void COleLinkingDoc::LockExternal(int,int) 5470 int COleControl::LockInPlaceActive(int) 5471 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 5472 void CFile::LockRange(unsigned __int64,unsigned __int64) 5473 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 5474 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 5475 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 5476 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 5477 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 5478 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5479 long COleObjectFactory::XClassFactory::LockServer(int) 5480 int CWnd::LockWindowUpdate() 5481 int CMapPtrToPtr::Lookup(void *,void * &)const 5482 int CMapPtrToWord::Lookup(void *,unsigned short &)const 5483 int CMapStringToOb::Lookup(char const *,CObject * &)const 5484 int CMapStringToPtr::Lookup(char const *,void * &)const 5485 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 5486 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 5487 int CMapWordToPtr::Lookup(unsigned short,void * &)const 5488 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 5489 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 5490 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 5491 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 5492 int CMapStringToOb::LookupKey(char const *,char const * &)const 5493 int CMapStringToPtr::LookupKey(char const *,char const * &)const 5494 int CMapStringToString::LookupKey(char const *,char const * &)const 5495 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 5496 void CDC::LPtoDP(tagPOINT *,int)const 5497 void CDC::LPtoDP(tagRECT *)const 5498 void CDC::LPtoDP(tagSIZE *)const 5499 void CDC::LPtoHIMETRIC(tagSIZE *)const 5500 int CToolBarCtrl::MapAccelerator(char,unsigned int *) 5501 void CDialog::MapDialogRect(tagRECT *)const 5502 void CPropertySheet::MapDialogRect(tagRECT *)const 5503 void CArchive::MapObject(CObject const *) 5504 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 5505 int COleDialog::MapResult(unsigned int) 5506 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 5507 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 5508 long CPropertyPage::MapWizardResult(long) 5509 void CRichEditCntrItem::Mark(int) 5510 int CToolBarCtrl::MarkButton(int,int) 5511 void CRecordset::MarkForAddNew() 5512 void CRecordset::MarkForUpdate() 5513 void CRichEditDoc::MarkItemsClear()const 5514 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 5515 int CFindReplaceDialog::MatchCase()const 5516 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 5517 int CFileFind::MatchesMask(unsigned long)const 5518 int CFindReplaceDialog::MatchWholeWord()const 5519 void CReBarCtrl::MaximizeBand(unsigned int) 5520 void CMDIChildWnd::MDIActivate() 5521 void CMDIFrameWnd::MDIActivate(CWnd *) 5522 void CMDIFrameWnd::MDICascade(int) 5523 void CMDIFrameWnd::MDICascade() 5524 void CMDIChildWnd::MDIDestroy() 5525 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 5526 void CMDIFrameWnd::MDIIconArrange() 5527 void CMDIChildWnd::MDIMaximize() 5528 void CMDIFrameWnd::MDIMaximize(CWnd *) 5529 void CMDIFrameWnd::MDINext() 5530 void CMDIFrameWnd::MDIPrev() 5531 void CMDIChildWnd::MDIRestore() 5532 void CMDIFrameWnd::MDIRestore(CWnd *) 5533 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 5534 void CMDIFrameWnd::MDITile(int) 5535 void CMDIFrameWnd::MDITile() 5536 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 5537 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 5538 void CComboBox::MeasureItem(tagMEASUREITEM*) 5539 void CListBox::MeasureItem(tagMEASUREITEM*) 5540 void CMenu::MeasureItem(tagMEASUREITEM*) 5541 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 5542 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 5543 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 5544 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 5545 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 5546 void CReBarCtrl::MinimizeBand(unsigned int) 5547 void CPreviewDC::MirrorAttributes() 5548 void CPreviewDC::MirrorFont() 5549 void CPreviewDC::MirrorMappingMode(int) 5550 void CPreviewDC::MirrorViewportOrg() 5551 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,char const *) 5552 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5553 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 5554 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 5555 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 5556 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5557 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5558 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 5559 void CDockContext::Move(CPoint) 5560 void CRecordset::Move(long,unsigned short) 5561 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 5562 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 5563 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 5564 void CRecordset::MoveFirst() 5565 void CRecordset::MoveLast() 5566 void CRecordset::MoveNext() 5567 void CRecordset::MovePrev() 5568 CPoint CDC::MoveTo(int,int) 5569 CPoint CDC::MoveTo(tagPOINT) 5570 void COleControlSite::MoveWindow(int,int,int,int) 5571 void CWnd::MoveWindow(int,int,int,int,int) 5572 void CWnd::MoveWindow(tagRECT const *,int) 5573 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5574 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5575 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 5576 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5577 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 5578 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 5579 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 5580 unsigned int COleDropSource::nDragDelay 5581 unsigned int COleDropSource::nDragMinDist 5582 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 5583 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 5584 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 5585 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 5586 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 5587 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 5588 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 5589 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 5590 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 5591 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 5592 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 5593 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 5594 void CDialog::NextDlgCtrl()const 5595 unsigned int const CEditView::nMaxSize 5596 int CRectTracker::NormalizeHit(int)const 5597 void CDataBoundProperty::Notify() 5598 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 5599 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 5600 void COleServerDoc::NotifyChanged() 5601 void COleServerItem::NotifyChanged(enum tagDVASPECT) 5602 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 5603 void COleServerDoc::NotifyClosed() 5604 void CFrameWnd::NotifyFloatingWindows(unsigned long) 5605 void COleServerDoc::NotifyRename(char const *) 5606 void COleServerDoc::NotifySaved() 5607 void CWnd::NotifyWinEvent(unsigned long,long,long) 5608 unsigned int COleDropTarget::nScrollDelay 5609 int COleDropTarget::nScrollInset 5610 unsigned int COleDropTarget::nScrollInterval 5611 int CDC::OffsetClipRgn(int,int) 5612 int CDC::OffsetClipRgn(tagSIZE) 5613 int CProgressCtrl::OffsetPos(int) 5614 int CRgn::OffsetRgn(int,int) 5615 int CRgn::OffsetRgn(tagPOINT) 5616 CPoint CDC::OffsetViewportOrg(int,int) 5617 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 5618 CPoint CPreviewDC::OffsetViewportOrg(int,int) 5619 CPoint CDC::OffsetWindowOrg(int,int) 5620 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5621 void CAsyncSocket::OnAccept(int) 5622 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 5623 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 5624 void COleClientItem::OnActivate() 5625 void COleFrameHook::OnActivate(int) 5626 void CWnd::OnActivate(unsigned int,CWnd *,int) 5627 void CWnd::OnActivateApp(int,unsigned long) 5628 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 5629 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 5630 long COleControl::OnActivateInPlace(int,tagMSG *) 5631 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 5632 long CWnd::OnActivateTopLevel(unsigned int,long) 5633 void COleClientItem::OnActivateUI() 5634 long CDocObjectServer::OnActivateView() 5635 void CFormView::OnActivateView(int,CView *,CView *) 5636 void CPreviewView::OnActivateView(int,CView *,CView *) 5637 void CRichEditView::OnActivateView(int,CView *,CView *) 5638 void CView::OnActivateView(int,CView *,CView *) 5639 long CToolTipCtrl::OnAddTool(unsigned int,long) 5640 void CConnectionPoint::OnAdvise(int) 5641 void COleControl::XEventConnPt::OnAdvise(int) 5642 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 5643 void COleControl::OnAmbientPropertyChange(long) 5644 long COleControl::XOleControl::OnAmbientPropertyChange(long) 5645 void COleControl::OnAppearanceChanged() 5646 void CWinApp::OnAppExit() 5647 int CPropertyPage::OnApply() 5648 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 5649 void CDocObjectServer::OnApplyViewState(CArchive &) 5650 void CWnd::OnAskCbFormatName(unsigned int,char *) 5651 void COleControl::OnBackColorChanged() 5652 int CFrameWnd::OnBarCheck(unsigned int) 5653 int COleIPFrameWnd::OnBarCheck(unsigned int) 5654 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 5655 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 5656 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 5657 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 5658 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 5659 int COleDropSource::OnBeginDrag(CWnd *) 5660 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5661 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5662 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 5663 void COleControl::OnBorderStyleChanged() 5664 void CRichEditView::OnBullet() 5665 int COleMessageFilter::OnBusyDialog(HTASK__ *) 5666 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 5667 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 5668 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 5669 void CCommonDialog::OnCancel() 5670 void CDialog::OnCancel() 5671 void CPropertyPage::OnCancel() 5672 void CRichEditView::OnCancelEditCntr() 5673 void COleControl::OnCancelMode() 5674 void CSplitterWnd::OnCancelMode() 5675 void CWnd::OnCancelMode() 5676 void CWnd::OnCaptureChanged(CWnd *) 5677 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 5678 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 5679 long COleControl::XFontNotification::OnChanged(long) 5680 long COleControlSite::XPropertyNotifySink::OnChanged(long) 5681 long COlePropertyPage::XPropNotifySink::OnChanged(long) 5682 void CRectTracker::OnChangedRect(CRect const &) 5683 void CDocument::OnChangedViewList() 5684 int COleClientItem::OnChangeItemPosition(CRect const &) 5685 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 5686 void CWnd::OnChangeUIState(unsigned int,unsigned int) 5687 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 5688 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 5689 void CRichEditView::OnCharBold() 5690 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 5691 void CRichEditView::OnCharItalic() 5692 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 5693 void CRichEditView::OnCharUnderline() 5694 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 5695 void CWnd::OnChildActivate() 5696 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 5697 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5698 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5699 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5700 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5701 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5702 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5703 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 5704 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 5705 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 5706 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5707 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5708 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 5709 void COleControl::OnClick(unsigned short) 5710 CEnumArray * CEnumArray::OnClone() 5711 CEnumArray * CEnumConnections::OnClone() 5712 void CAsyncSocket::OnClose(int) 5713 void CControlFrameWnd::OnClose() 5714 void CFrameWnd::OnClose() 5715 void CMiniDockFrameWnd::OnClose() 5716 void COleControl::OnClose(unsigned long) 5717 void COleServerDoc::OnClose(enum tagOLECLOSE) 5718 void CPropertySheet::OnClose() 5719 void CWnd::OnClose() 5720 void COleClientItem::XAdviseSink::OnClose() 5721 void CDocObjectServer::OnCloseDocument() 5722 void CDocument::OnCloseDocument() 5723 void COleDocument::OnCloseDocument() 5724 void COleLinkingDoc::OnCloseDocument() 5725 void COleServerDoc::OnCloseDocument() 5726 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5727 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5728 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5729 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5730 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5731 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5732 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5733 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5734 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5735 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5736 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5737 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5738 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5739 void CRichEditView::OnColorDefault() 5740 int CColorDialog::OnColorOK() 5741 void CRichEditView::OnColorPick(unsigned long) 5742 int CFrameWnd::OnCommand(unsigned int,long) 5743 int CMDIFrameWnd::OnCommand(unsigned int,long) 5744 int COlePropertyPage::OnCommand(unsigned int,long) 5745 int CPropertySheet::OnCommand(unsigned int,long) 5746 int CSplitterWnd::OnCommand(unsigned int,long) 5747 int CWnd::OnCommand(unsigned int,long) 5748 long CDialog::OnCommandHelp(unsigned int,long) 5749 long CFrameWnd::OnCommandHelp(unsigned int,long) 5750 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 5751 long CPropertySheet::OnCommandHelp(unsigned int,long) 5752 void CHtmlView::OnCommandStateChange(long,int) 5753 void CWnd::OnCompacting(unsigned int) 5754 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 5755 void CAsyncSocket::OnConnect(int) 5756 void CFrameWnd::OnContextHelp() 5757 int COleFrameHook::OnContextHelp(int) 5758 void COleIPFrameWnd::OnContextHelp() 5759 void CWinApp::OnContextHelp() 5760 void CWnd::OnContextMenu(CWnd *,CPoint) 5761 long COleControlSite::XOleControlSite::OnControlInfoChanged() 5762 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 5763 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 5764 int CControlBar::OnCreate(tagCREATESTRUCTA *) 5765 int CEditView::OnCreate(tagCREATESTRUCTA *) 5766 int CFormView::OnCreate(tagCREATESTRUCTA *) 5767 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 5768 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 5769 int COleControl::OnCreate(tagCREATESTRUCTA *) 5770 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 5771 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 5772 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 5773 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 5774 int CView::OnCreate(tagCREATESTRUCTA *) 5775 int CWnd::OnCreate(tagCREATESTRUCTA *) 5776 int CCmdTarget::OnCreateAggregates() 5777 int COleControl::OnCreateAggregates() 5778 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 5779 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 5780 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 5781 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 5782 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 5783 CCmdTarget * COleObjectFactory::OnCreateObject() 5784 CCmdTarget * COleTemplateServer::OnCreateObject() 5785 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 5786 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 5787 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 5788 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 5789 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 5790 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 5791 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 5792 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 5793 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 5794 int CDocManager::OnDDECommand(char *) 5795 int CWinApp::OnDDECommand(char *) 5796 long CFrameWnd::OnDDEExecute(unsigned int,long) 5797 long CFrameWnd::OnDDEInitiate(unsigned int,long) 5798 long CFrameWnd::OnDDETerminate(unsigned int,long) 5799 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 5800 void COleClientItem::OnDeactivate() 5801 void COleServerDoc::OnDeactivate() 5802 void COleClientItem::OnDeactivateAndUndo() 5803 void COleClientItem::OnDeactivateUI(int) 5804 void COleServerDoc::OnDeactivateUI(int) 5805 void CRichEditCntrItem::OnDeactivateUI(int) 5806 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 5807 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 5808 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 5809 void CControlBar::OnDestroy() 5810 void CDHtmlDialog::OnDestroy() 5811 void CEditView::OnDestroy() 5812 void CFrameWnd::OnDestroy() 5813 void CHtmlView::OnDestroy() 5814 void CMDIChildWnd::OnDestroy() 5815 void CMDIFrameWnd::OnDestroy() 5816 void COleControl::OnDestroy() 5817 void COleIPFrameWnd::OnDestroy() 5818 void CRichEditView::OnDestroy() 5819 void CTabCtrl::OnDestroy() 5820 void CTreeCtrl::OnDestroy() 5821 void CTreeView::OnDestroy() 5822 void CView::OnDestroy() 5823 void CWnd::OnDestroy() 5824 void CWnd::OnDestroyClipboard() 5825 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 5826 int CWnd::OnDeviceChange(unsigned int,unsigned long) 5827 void CRichEditView::OnDevModeChange(char *) 5828 void CWnd::OnDevModeChange(char *) 5829 long CToolTipCtrl::OnDisableModal(unsigned int,long) 5830 void COleClientItem::OnDiscardUndoState() 5831 void CSplitterWnd::OnDisplayChange() 5832 long CWnd::OnDisplayChange(unsigned int,long) 5833 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 5834 int COleFrameHook::OnDocActivate(int) 5835 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 5836 void CHtmlView::OnDocumentComplete(char const *) 5837 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 5838 long CBrowserControlSite::OnDocWindowActivate(int) 5839 long CDHtmlDialog::OnDocWindowActivate(int) 5840 long CHtmlView::OnDocWindowActivate(int) 5841 void COleServerDoc::OnDocWindowActivate(int) 5842 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 5843 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 5844 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 5845 void CDocObjectServerItem::OnDoVerb(long) 5846 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 5847 void COleServerItem::OnDoVerb(long) 5848 void CHtmlView::OnDownloadBegin() 5849 void CHtmlView::OnDownloadComplete() 5850 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 5851 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 5852 void COleDropTarget::OnDragLeave(CWnd *) 5853 void CView::OnDragLeave() 5854 long CWnd::OnDragList(unsigned int,long) 5855 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 5856 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 5857 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 5858 unsigned long CView::OnDragScroll(unsigned long,CPoint) 5859 void CCtrlView::OnDraw(CDC *) 5860 void CFormView::OnDraw(CDC *) 5861 void CHtmlView::OnDraw(CDC *) 5862 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 5863 void CPreviewView::OnDraw(CDC *) 5864 void CView::OnDraw(CDC *) 5865 void CWnd::OnDrawClipboard() 5866 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 5867 void CWnd::OnDrawItem(int,tagDRAWITEM*) 5868 void COleControl::OnDrawMetafile(CDC *,CRect const &) 5869 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 5870 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 5871 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 5872 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 5873 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 5874 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 5875 void CFrameWnd::OnDropFiles(HDROP__ *) 5876 void CRichEditView::OnDropFiles(HDROP__ *) 5877 void CWnd::OnDropFiles(HDROP__ *) 5878 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 5879 int CEditView::OnEditChange() 5880 void COleDocument::OnEditChangeIcon() 5881 void CEditView::OnEditClear() 5882 void CRichEditView::OnEditClear() 5883 void COleDocument::OnEditConvert() 5884 void CEditView::OnEditCopy() 5885 void CHtmlView::OnEditCopy() 5886 void CRichEditView::OnEditCopy() 5887 void CEditView::OnEditCut() 5888 void CHtmlView::OnEditCut() 5889 void CRichEditView::OnEditCut() 5890 void CEditView::OnEditFind() 5891 void CRichEditView::OnEditFind() 5892 void CEditView::OnEditFindReplace(int) 5893 void CRichEditView::OnEditFindReplace(int) 5894 void COleDocument::OnEditLinks() 5895 void CEditView::OnEditPaste() 5896 void CHtmlView::OnEditPaste() 5897 void CRichEditView::OnEditPaste() 5898 void CRichEditView::OnEditPasteSpecial() 5899 void CRichEditView::OnEditProperties() 5900 int COlePropertyPage::OnEditProperty(long) 5901 void CRichEditView::OnEditRedo() 5902 void CEditView::OnEditRepeat() 5903 void CRichEditView::OnEditRepeat() 5904 void CEditView::OnEditReplace() 5905 void CRichEditView::OnEditReplace() 5906 void CEditView::OnEditSelectAll() 5907 void CRichEditView::OnEditSelectAll() 5908 void CEditView::OnEditUndo() 5909 void CRichEditView::OnEditUndo() 5910 void CFrameWnd::OnEnable(int) 5911 void CToolTipCtrl::OnEnable(int) 5912 void CWnd::OnEnable(int) 5913 void COleControl::OnEnabledChanged() 5914 long CHtmlView::OnEnableModeless(int) 5915 void COleFrameHook::OnEnableModeless(int) 5916 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 5917 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 5918 void CView::OnEndPrinting(CDC *,CPrintInfo *) 5919 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 5920 void CFrameWnd::OnEndSession(int) 5921 void CWnd::OnEndSession(int) 5922 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 5923 void COleControl::OnEnterIdle(unsigned int,CWnd *) 5924 void CWnd::OnEnterIdle(unsigned int,CWnd *) 5925 void CWnd::OnEnterMenuLoop(int) 5926 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 5927 int CFrameWnd::OnEraseBkgnd(CDC *) 5928 int COleControl::OnEraseBkgnd(CDC *) 5929 int COleResizeBar::OnEraseBkgnd(CDC *) 5930 int CPreviewView::OnEraseBkgnd(CDC *) 5931 int CReBar::OnEraseBkgnd(CDC *) 5932 int CToolBar::OnEraseBkgnd(CDC *) 5933 int CWnd::OnEraseBkgnd(CDC *) 5934 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 5935 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 5936 int COleControlSite::OnEvent(AFX_EVENT *) 5937 void COleControl::OnEventAdvise(int) 5938 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 5939 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 5940 void CWnd::OnExitMenuLoop(int) 5941 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 5942 void CDocument::OnFileClose() 5943 void CFileDialog::OnFileNameChange() 5944 int CFileDialog::OnFileNameOK() 5945 void CDocManager::OnFileNew() 5946 void CWinApp::OnFileNew() 5947 void CDocManager::OnFileOpen() 5948 void CWinApp::OnFileOpen() 5949 void CHtmlView::OnFilePrint() 5950 void CView::OnFilePrint() 5951 void CView::OnFilePrintPreview() 5952 void CWinApp::OnFilePrintSetup() 5953 void CDocument::OnFileSave() 5954 void CDocument::OnFileSaveAs() 5955 void COleServerDoc::OnFileSaveCopyAs() 5956 void CDocument::OnFileSendMail() 5957 void COleDocument::OnFileSendMail() 5958 void COleServerDoc::OnFileUpdate() 5959 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 5960 void CCmdTarget::OnFinalRelease() 5961 void CDocument::OnFinalRelease() 5962 void COleControl::OnFinalRelease() 5963 void COlePropertyPage::OnFinalRelease() 5964 void COleServerItem::OnFinalRelease() 5965 void CWnd::OnFinalRelease() 5966 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 5967 void CEditView::OnFindNext(char const *,int,int) 5968 void CRichEditView::OnFindNext(char const *,int,int,int) 5969 long CEditView::OnFindReplaceCmd(unsigned int,long) 5970 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 5971 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 5972 long COleControlSite::XOleControlSite::OnFocus(int) 5973 void CFileDialog::OnFolderChange() 5974 void CWnd::OnFontChange() 5975 void COleControl::OnFontChanged() 5976 void COleControl::OnForeColorChanged() 5977 void CRichEditView::OnFormatFont() 5978 void COleControl::OnFrameClose() 5979 long CBrowserControlSite::OnFrameWindowActivate(int) 5980 long CDHtmlDialog::OnFrameWindowActivate(int) 5981 long CHtmlView::OnFrameWindowActivate(int) 5982 void COleServerDoc::OnFrameWindowActivate(int) 5983 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 5984 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 5985 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 5986 void COleControl::OnFreezeEvents(int) 5987 void CHtmlView::OnFullScreen(int) 5988 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 5989 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 5990 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 5991 void COleClientItem::OnGetClipRect(CRect &) 5992 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 5993 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 5994 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 5995 unsigned int COleControl::OnGetDlgCode() 5996 unsigned int CWnd::OnGetDlgCode() 5997 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 5998 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 5999 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6000 long CHtmlView::OnGetExternal(IDispatch * *) 6001 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6002 HMENU__ * COleControl::OnGetInPlaceMenu() 6003 void COleClientItem::OnGetItemPosition(CRect &) 6004 void COleDocObjectItem::OnGetItemPosition(CRect &) 6005 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 6006 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 6007 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6008 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6009 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6010 long CWnd::OnGetObject(unsigned int,long) 6011 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6012 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6013 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6014 long CStatusBar::OnGetText(unsigned int,long) 6015 long CStatusBar::OnGetTextLength(unsigned int,long) 6016 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6017 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6018 unsigned long COleControl::OnGetViewStatus() 6019 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6020 void CReBar::OnHeightChange(tagNMHDR *,long *) 6021 void CFrameWnd::OnHelp() 6022 int COlePropertyPage::OnHelp(char const *) 6023 void CWinApp::OnHelp() 6024 void CWnd::OnHelp() 6025 void CWinApp::OnHelpFinder() 6026 void CWnd::OnHelpFinder() 6027 long CControlBar::OnHelpHitTest(unsigned int,long) 6028 long CDialog::OnHelpHitTest(unsigned int,long) 6029 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6030 void CWinApp::OnHelpIndex() 6031 void CWnd::OnHelpIndex() 6032 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6033 int CWnd::OnHelpInfo(tagHELPINFO *) 6034 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6035 void CWinApp::OnHelpUsing() 6036 void CWnd::OnHelpUsing() 6037 void CDocObjectServerItem::OnHide() 6038 long COleControl::OnHide() 6039 void COleServerItem::OnHide() 6040 void COleControl::OnHideToolBars() 6041 long CHtmlView::OnHideUI() 6042 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6043 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6044 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6045 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6046 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6047 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6048 void CWnd::OnIconEraseBkgnd(CDC *) 6049 void CDocTemplate::OnIdle() 6050 void CDocument::OnIdle() 6051 void COleDocument::OnIdle() 6052 int CWinApp::OnIdle(long) 6053 int CWinThread::OnIdle(long) 6054 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6055 void CFrameWnd::OnIdleUpdateCmdUI() 6056 void CMDIFrameWnd::OnIdleUpdateCmdUI() 6057 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 6058 void COleIPFrameWnd::OnIdleUpdateCmdUI() 6059 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6060 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6061 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6062 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6063 int CDHtmlDialog::OnInitDialog() 6064 int CDialog::OnInitDialog() 6065 int COlePropertiesDialog::OnInitDialog() 6066 int COlePropertyPage::OnInitDialog() 6067 int CPropertySheet::OnInitDialog() 6068 void CFileDialog::OnInitDone() 6069 int COleServerItem::OnInitFromData(COleDataObject *,int) 6070 void CControlBar::OnInitialUpdate() 6071 void CFormView::OnInitialUpdate() 6072 void COleDBRecordView::OnInitialUpdate() 6073 void CRecordView::OnInitialUpdate() 6074 void CRichEditView::OnInitialUpdate() 6075 void CView::OnInitialUpdate() 6076 void CFrameWnd::OnInitMenu(CMenu *) 6077 void COleFrameHook::OnInitMenu(CMenu *) 6078 void CWnd::OnInitMenu(CMenu *) 6079 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6080 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6081 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6082 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6083 long COleClientItem::XOleIPSite::OnInPlaceActivate() 6084 long COleControlSite::XOleIPSite::OnInPlaceActivate() 6085 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6086 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 6087 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 6088 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6089 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6090 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6091 void CRichEditView::OnInsertObject() 6092 void CSplitterWnd::OnInvertTracker(CRect const &) 6093 void CDockContext::OnKey(int,int) 6094 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6095 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6096 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6097 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6098 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6099 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6100 void COleControl::OnKeyPressEvent(unsigned short) 6101 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6102 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6103 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6104 long CPropertySheet::OnKickIdle(unsigned int,long) 6105 int CPropertyPage::OnKillActive() 6106 void COleControl::OnKillFocus(CWnd *) 6107 void CWnd::OnKillFocus(CWnd *) 6108 long CCheckListBox::OnLBAddString(unsigned int,long) 6109 long CCheckListBox::OnLBFindString(unsigned int,long) 6110 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6111 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6112 long CCheckListBox::OnLBGetText(unsigned int,long) 6113 long CCheckListBox::OnLBInsertString(unsigned int,long) 6114 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6115 long CCheckListBox::OnLBSelectString(unsigned int,long) 6116 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6117 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6118 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6119 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6120 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6121 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6122 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6123 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6124 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6125 void COleControl::OnLButtonDown(unsigned int,CPoint) 6126 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6127 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6128 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6129 void CWnd::OnLButtonDown(unsigned int,CPoint) 6130 void COleControl::OnLButtonUp(unsigned int,CPoint) 6131 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6132 void CWnd::OnLButtonUp(unsigned int,CPoint) 6133 void CAsyncMonikerFile::OnLowResource() 6134 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6135 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6136 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6137 void COleControl::OnMButtonDown(unsigned int,CPoint) 6138 void CWnd::OnMButtonDown(unsigned int,CPoint) 6139 void COleControl::OnMButtonUp(unsigned int,CPoint) 6140 void CWnd::OnMButtonUp(unsigned int,CPoint) 6141 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6142 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6143 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6144 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6145 void CHtmlView::OnMenuBar(int) 6146 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6147 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6148 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6149 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6150 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6151 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6152 int COleMessageFilter::OnMessagePending(tagMSG const *) 6153 int CSocket::OnMessagePending() 6154 void COleControl::OnMnemonic(tagMSG *) 6155 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6156 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6157 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6158 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6159 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6160 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6161 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6162 void COleControl::OnMouseMove(unsigned int,CPoint) 6163 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6164 void CWnd::OnMouseMove(unsigned int,CPoint) 6165 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6166 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6167 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6168 void COleControl::OnMove(int,int) 6169 int COleDBRecordView::OnMove(unsigned int) 6170 void CRecordView::OnMove(int,int) 6171 int CRecordView::OnMove(unsigned int) 6172 void CWnd::OnMove(int,int) 6173 void CWnd::OnMoving(unsigned int,tagRECT *) 6174 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6175 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6176 void CHtmlEditView::OnNavigateComplete2(char const *) 6177 void CHtmlView::OnNavigateComplete2(char const *) 6178 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 6179 int CFrameWnd::OnNcActivate(int) 6180 int CMDIChildWnd::OnNcActivate(int) 6181 int CMiniFrameWnd::OnNcActivate(int) 6182 int CWnd::OnNcActivate(int) 6183 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6184 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6185 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6186 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6187 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6188 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6189 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 6190 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 6191 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 6192 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 6193 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 6194 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 6195 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 6196 int CWnd::OnNcCreate(tagCREATESTRUCTA *) 6197 void CListCtrl::OnNcDestroy() 6198 void CListView::OnNcDestroy() 6199 void CWnd::OnNcDestroy() 6200 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 6201 unsigned int COleControl::OnNcHitTest(CPoint) 6202 unsigned int CStatusBar::OnNcHitTest(CPoint) 6203 unsigned int CToolBar::OnNcHitTest(CPoint) 6204 unsigned int CWnd::OnNcHitTest(CPoint) 6205 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6206 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6207 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6208 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6209 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6210 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6211 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6212 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6213 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6214 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6215 void CDockBar::OnNcPaint() 6216 void COleControl::OnNcPaint() 6217 void CReBar::OnNcPaint() 6218 void CStatusBar::OnNcPaint() 6219 void CToolBar::OnNcPaint() 6220 void CWnd::OnNcPaint() 6221 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6222 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6223 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6224 int CDocument::OnNewDocument() 6225 int CHtmlEditDoc::OnNewDocument() 6226 int COleDocument::OnNewDocument() 6227 int COleLinkingDoc::OnNewDocument() 6228 void COleServerDoc::OnNewEmbedding(IStorage *) 6229 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6230 int CEnumArray::OnNext(void *) 6231 int CEnumConnections::OnNext(void *) 6232 int CEnumConnPoints::OnNext(void *) 6233 int CEnumFormatEtc::OnNext(void *) 6234 int CEnumOleVerb::OnNext(void *) 6235 int CEnumUnknown::OnNext(void *) 6236 void CPreviewView::OnNextPage() 6237 int CView::OnNextPaneCmd(unsigned int) 6238 int CFileDialog::OnNotify(unsigned int,long,long *) 6239 int CPropertyPage::OnNotify(unsigned int,long,long *) 6240 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6241 int CWnd::OnNotify(unsigned int,long,long *) 6242 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6243 long CWnd::OnNTCtlColor(unsigned int,long) 6244 void CPreviewView::OnNumPageChange() 6245 void COlePropertyPage::OnObjectsChanged() 6246 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6247 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6248 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6249 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6250 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6251 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6252 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6253 void CCommonDialog::OnOK() 6254 void CDialog::OnOK() 6255 void CPropertyPage::OnOK() 6256 long COleControl::OnOpen(int,tagMSG *) 6257 void COleServerItem::OnOpen() 6258 int CDocument::OnOpenDocument(char const *) 6259 int CHtmlEditDoc::OnOpenDocument(char const *) 6260 int COleDocument::OnOpenDocument(char const *) 6261 int COleLinkingDoc::OnOpenDocument(char const *) 6262 void COleServerDoc::OnOpenEmbedding(IStorage *) 6263 int CWinApp::OnOpenRecentFile(unsigned int) 6264 void CAsyncSocket::OnOutOfBandData(int) 6265 void CCommonDialog::OnPaint() 6266 void CControlBar::OnPaint() 6267 void CCtrlView::OnPaint() 6268 void CDialog::OnPaint() 6269 void CDockBar::OnPaint() 6270 void CHtmlEditView::OnPaint() 6271 void CHtmlView::OnPaint() 6272 void COleControl::OnPaint(CDC *) 6273 int COleControlContainer::OnPaint(CDC *) 6274 void COleResizeBar::OnPaint() 6275 void CReBar::OnPaint() 6276 void CSplitterWnd::OnPaint() 6277 void CStatusBar::OnPaint() 6278 void CToolBar::OnPaint() 6279 void CView::OnPaint() 6280 void CWnd::OnPaint() 6281 void CWnd::OnPaintClipboard(CWnd *,void *) 6282 void CFrameWnd::OnPaletteChanged(CWnd *) 6283 void COleFrameHook::OnPaletteChanged(CWnd *) 6284 void CWnd::OnPaletteChanged(CWnd *) 6285 void CWnd::OnPaletteIsChanging(CWnd *) 6286 void CRichEditView::OnParaAlign(unsigned short) 6287 void CRichEditView::OnParaCenter() 6288 void CRichEditView::OnParaLeft() 6289 void CRichEditView::OnParaRight() 6290 void CWnd::OnParentNotify(unsigned int,long) 6291 int CRichEditView::OnPasteNativeObject(IStorage *) 6292 long CFrameWnd::OnPopMessageString(unsigned int,long) 6293 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 6294 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 6295 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 6296 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 6297 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 6298 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 6299 void CView::OnPrepareDC(CDC *,CPrintInfo *) 6300 int CEditView::OnPreparePrinting(CPrintInfo *) 6301 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 6302 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6303 int CView::OnPreparePrinting(CPrintInfo *) 6304 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6305 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 6306 void CPreviewView::OnPreviewClose() 6307 void CPreviewView::OnPreviewPrint() 6308 void CPreviewView::OnPrevPage() 6309 void CEditView::OnPrint(CDC *,CPrintInfo *) 6310 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6311 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 6312 void CView::OnPrint(CDC *,CPrintInfo *) 6313 void CRichEditView::OnPrinterChanged(CDC const &) 6314 void CPrintDialog::OnPrintSetup() 6315 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 6316 void CHtmlView::OnProgressChange(long,long) 6317 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 6318 void CHtmlView::OnPropertyChange(char const *) 6319 int CPropertyPage::OnQueryCancel() 6320 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 6321 HICON__ * CWnd::OnQueryDragIcon() 6322 int CFrameWnd::OnQueryEndSession() 6323 int CWnd::OnQueryEndSession() 6324 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6325 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6326 int CFrameWnd::OnQueryNewPalette() 6327 int COleFrameHook::OnQueryNewPalette() 6328 int CWnd::OnQueryNewPalette() 6329 int CWnd::OnQueryOpen() 6330 unsigned int CWnd::OnQueryUIState() 6331 int COleServerItem::OnQueryUpdateItems() 6332 void CHtmlView::OnQuit() 6333 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 6334 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 6335 void COleControl::OnRButtonDown(unsigned int,CPoint) 6336 void CWnd::OnRButtonDown(unsigned int,CPoint) 6337 void COleControl::OnRButtonUp(unsigned int,CPoint) 6338 void CWnd::OnRButtonUp(unsigned int,CPoint) 6339 int COleServerDoc::OnReactivateAndUndo() 6340 void COleFrameHook::OnRecalcLayout() 6341 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 6342 void CReBar::OnRecalcParent() 6343 void CAsyncSocket::OnReceive(int) 6344 void COleControl::OnReflectorDestroyed() 6345 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6346 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 6347 void COleClientItem::OnRemoveMenus(CMenu *) 6348 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6349 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 6350 void CWnd::OnRenderAllFormats() 6351 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6352 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6353 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6354 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6355 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6356 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6357 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6358 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 6359 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6360 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 6361 void CWnd::OnRenderFormat(unsigned int) 6362 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6363 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6364 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 6365 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6366 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 6367 void CEditView::OnReplaceAll(char const *,char const *,int) 6368 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 6369 void CEditView::OnReplaceSel(char const *,int,int,char const *) 6370 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 6371 long COleControl::XFontNotification::OnRequestEdit(long) 6372 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 6373 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 6374 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6375 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6376 void CEnumArray::OnReset() 6377 void CPropertyPage::OnReset() 6378 void COleControl::OnResetState() 6379 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6380 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6381 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 6382 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6383 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6384 void COleClientItem::XAdviseSink::OnSave() 6385 int CDocument::OnSaveDocument(char const *) 6386 int CHtmlEditDoc::OnSaveDocument(char const *) 6387 int COleDocument::OnSaveDocument(char const *) 6388 int COleLinkingDoc::OnSaveDocument(char const *) 6389 int COleServerDoc::OnSaveDocument(char const *) 6390 void COleServerDoc::OnSaveEmbedding(IStorage *) 6391 void COleServerItem::OnSaveEmbedding(IStorage *) 6392 void CDocObjectServer::OnSaveViewState(CArchive &) 6393 int CScrollView::OnScroll(unsigned int,unsigned int,int) 6394 int CView::OnScroll(unsigned int,unsigned int,int) 6395 int COleClientItem::OnScrollBy(CSize) 6396 int CScrollView::OnScrollBy(CSize,int) 6397 int CView::OnScrollBy(CSize,int) 6398 void CRichEditView::OnSelChange(tagNMHDR *,long *) 6399 void CAsyncSocket::OnSend(int) 6400 int CPropertyPage::OnSetActive() 6401 long CToolBar::OnSetBitmapSize(unsigned int,long) 6402 long CToolBar::OnSetButtonSize(unsigned int,long) 6403 void COleControl::OnSetClientSite() 6404 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 6405 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6406 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 6407 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 6408 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 6409 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6410 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6411 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6412 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6413 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6414 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6415 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6416 long CPropertySheet::OnSetDefID(unsigned int,long) 6417 int COleControl::OnSetExtent(tagSIZE *) 6418 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 6419 void CFormView::OnSetFocus(CWnd *) 6420 void CFrameWnd::OnSetFocus(CWnd *) 6421 void COleControl::OnSetFocus(CWnd *) 6422 void CWnd::OnSetFocus(CWnd *) 6423 long CCheckListBox::OnSetFont(unsigned int,long) 6424 void CDialog::OnSetFont(CFont *) 6425 long CEditView::OnSetFont(unsigned int,long) 6426 void COleServerDoc::OnSetHostNames(char const *,char const *) 6427 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 6428 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 6429 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 6430 long CFrameWnd::OnSetMessageString(unsigned int,long) 6431 long COleControl::OnSetMessageString(unsigned int,long) 6432 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 6433 long CStatusBar::OnSetMinHeight(unsigned int,long) 6434 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 6435 void CDatabase::OnSetOptions(void *) 6436 void CRecordset::OnSetOptions(void *) 6437 void COlePropertyPage::OnSetPageSite() 6438 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 6439 long CToolBar::OnSetSizeHelper(CSize &,long) 6440 long COleControl::OnSetText(unsigned int,long) 6441 long CStatusBar::OnSetText(unsigned int,long) 6442 void CWnd::OnSettingChange(unsigned int,char const *) 6443 void CRecordset::OnSetUpdateOptions(void *) 6444 unsigned int CFileDialog::OnShareViolation(char const *) 6445 void CDocObjectServerItem::OnShow() 6446 void COleServerItem::OnShow() 6447 long CReBar::OnShowBand(unsigned int,long) 6448 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6449 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 6450 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 6451 void COleServerDoc::OnShowDocument(int) 6452 void COleClientItem::OnShowItem() 6453 void COleControl::OnShowToolBars() 6454 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6455 void COleDocument::OnShowViews(int) 6456 void COleLinkingDoc::OnShowViews(int) 6457 void COleControl::OnShowWindow(int,unsigned int) 6458 void CWnd::OnShowWindow(int,unsigned int) 6459 long COleClientItem::XOleClientSite::OnShowWindow(int) 6460 long COleControlSite::XOleClientSite::OnShowWindow(int) 6461 void CDHtmlDialog::OnSize(unsigned int,int,int) 6462 void CFrameWnd::OnSize(unsigned int,int,int) 6463 void CHtmlView::OnSize(unsigned int,int,int) 6464 void CMDIChildWnd::OnSize(unsigned int,int,int) 6465 void CMDIFrameWnd::OnSize(unsigned int,int,int) 6466 void COleControl::OnSize(unsigned int,int,int) 6467 void COleIPFrameWnd::OnSize(unsigned int,int,int) 6468 void COleResizeBar::OnSize(unsigned int,int,int) 6469 void CPreviewView::OnSize(unsigned int,int,int) 6470 void CScrollView::OnSize(unsigned int,int,int) 6471 void CSplitterWnd::OnSize(unsigned int,int,int) 6472 void CStatusBar::OnSize(unsigned int,int,int) 6473 void CWnd::OnSize(unsigned int,int,int) 6474 void CWnd::OnSizeClipboard(CWnd *,void *) 6475 long CControlBar::OnSizeParent(unsigned int,long) 6476 long CDockBar::OnSizeParent(unsigned int,long) 6477 long COleResizeBar::OnSizeParent(unsigned int,long) 6478 void CWnd::OnSizing(unsigned int,tagRECT *) 6479 int CEnumArray::OnSkip() 6480 long CSocketWnd::OnSocketDead(unsigned int,long) 6481 long CSocketWnd::OnSocketNotify(unsigned int,long) 6482 int CView::OnSplitCmd(unsigned int) 6483 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 6484 void CAsyncMonikerFile::OnStartBinding() 6485 void CHtmlView::OnStatusBar(int) 6486 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 6487 void CHtmlView::OnStatusTextChange(char const *) 6488 void CAsyncMonikerFile::OnStopBinding(long,char const *) 6489 void CWnd::OnStyleChanged(int,tagSTYLE*) 6490 void CWnd::OnStyleChanging(int,tagSTYLE*) 6491 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 6492 void CToolBar::OnSysColorChange() 6493 void CWnd::OnSysColorChange() 6494 void CFrameWnd::OnSysCommand(unsigned int,long) 6495 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 6496 void CPropertySheet::OnSysCommand(unsigned int,long) 6497 void CSplitterWnd::OnSysCommand(unsigned int,long) 6498 void CWnd::OnSysCommand(unsigned int,long) 6499 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 6500 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6501 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6502 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6503 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6504 void CWnd::OnTCard(unsigned int,unsigned long) 6505 void COleControl::OnTextChanged() 6506 void CEditView::OnTextNotFound(char const *) 6507 void CRichEditView::OnTextNotFound(char const *) 6508 void CHtmlView::OnTheaterMode(int) 6509 void CWnd::OnTimeChange() 6510 void CControlBar::OnTimer(unsigned int) 6511 void CWnd::OnTimer(unsigned int) 6512 void CHtmlView::OnTitleChange(char const *) 6513 void CHtmlView::OnToolBar(int) 6514 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6515 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6516 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6517 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6518 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6519 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 6520 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6521 void CFileDialog::OnTypeChange() 6522 void COleControlContainer::OnUIActivate(COleControlSite *) 6523 long COleClientItem::XOleIPSite::OnUIActivate() 6524 long COleControlSite::XOleIPSite::OnUIActivate() 6525 void COleControlContainer::OnUIDeactivate(COleControlSite *) 6526 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 6527 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 6528 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 6529 void CView::OnUpdate(CView *,long,CObject *) 6530 void CRichEditView::OnUpdateBullet(CCmdUI *) 6531 void CRichEditView::OnUpdateCharBold(CCmdUI *) 6532 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 6533 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 6534 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 6535 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 6536 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 6537 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 6538 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6539 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 6540 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 6541 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 6542 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6543 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6544 int COleServerDoc::OnUpdateDocument() 6545 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 6546 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 6547 void CHtmlView::OnUpdateEditCut(CCmdUI *) 6548 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 6549 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 6550 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 6551 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 6552 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 6553 void CEditView::OnUpdateEditUndo(CCmdUI *) 6554 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 6555 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 6556 void CDocument::OnUpdateFileSendMail(CCmdUI *) 6557 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 6558 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6559 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 6560 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6561 void CFrameWnd::OnUpdateFrameTitle(int) 6562 void CMDIChildWnd::OnUpdateFrameTitle(int) 6563 void CMDIFrameWnd::OnUpdateFrameTitle(int) 6564 int COleClientItem::OnUpdateFrameTitle() 6565 int COleFrameHook::OnUpdateFrameTitle() 6566 void COleServerItem::OnUpdateItems() 6567 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 6568 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 6569 void CEditView::OnUpdateNeedClip(CCmdUI *) 6570 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 6571 void CEditView::OnUpdateNeedFind(CCmdUI *) 6572 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 6573 void CEditView::OnUpdateNeedSel(CCmdUI *) 6574 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 6575 void CEditView::OnUpdateNeedText(CCmdUI *) 6576 void CRichEditView::OnUpdateNeedText(CCmdUI *) 6577 void CPreviewView::OnUpdateNextPage(CCmdUI *) 6578 void CView::OnUpdateNextPaneMenu(CCmdUI *) 6579 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 6580 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 6581 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 6582 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 6583 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 6584 void CRichEditView::OnUpdateParaRight(CCmdUI *) 6585 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 6586 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 6587 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 6588 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 6589 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6590 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 6591 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6592 void CRecordView::OnUpdateRecordLast(CCmdUI *) 6593 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6594 void CRecordView::OnUpdateRecordNext(CCmdUI *) 6595 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6596 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 6597 void CView::OnUpdateSplitCmd(CCmdUI *) 6598 long CHtmlView::OnUpdateUI() 6599 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 6600 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 6601 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 6602 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 6603 void CHtmlView::OnVisible(int) 6604 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 6605 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6606 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6607 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6608 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6609 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6610 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 6611 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 6612 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 6613 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 6614 void CMDIFrameWnd::OnWindowNew() 6615 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 6616 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 6617 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 6618 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 6619 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 6620 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 6621 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 6622 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 6623 void CWnd::OnWinIniChange(char const *) 6624 long CPropertyPage::OnWizardBack() 6625 int CPropertyPage::OnWizardFinish() 6626 long CPropertyPage::OnWizardNext() 6627 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 6628 void CPreviewView::OnZoomIn() 6629 void CPreviewView::OnZoomOut() 6630 int CAnimateCtrl::Open(unsigned int) 6631 int CAnimateCtrl::Open(char const *) 6632 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 6633 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 6634 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 6635 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 6636 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 6637 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 6638 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 6639 int CAsyncMonikerFile::Open(char const *,CFileException *) 6640 int CDatabase::Open(char const *,int,int,char const *,int) 6641 int CDataPathProperty::Open(CFileException *) 6642 int CDataPathProperty::Open(COleControl *,CFileException *) 6643 int CDataPathProperty::Open(char const *,CFileException *) 6644 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 6645 int CFile::Open(char const *,unsigned int,CFileException *) 6646 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 6647 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6648 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6649 int CMonikerFile::Open(IMoniker *,CFileException *) 6650 int CMonikerFile::Open(char const *,CFileException *) 6651 int CRecordset::Open(unsigned int,char const *,unsigned long) 6652 int CSocketFile::Open(char const *,unsigned int,CFileException *) 6653 int CStdioFile::Open(char const *,unsigned int,CFileException *) 6654 long CDocObjectServer::XOleDocumentView::Open() 6655 int CWnd::OpenClipboard() 6656 CDocument * CDocManager::OpenDocumentFile(char const *) 6657 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 6658 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 6659 CDocument * CWinApp::OpenDocumentFile(char const *) 6660 int CDatabase::OpenEx(char const *,unsigned long) 6661 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 6662 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 6663 int CWnd::OpenIcon() 6664 long COleUILinkInfo::OpenLinkSource(unsigned long) 6665 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 6666 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 6667 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 6668 int CHtmlEditDoc::OpenURL(char const *) 6669 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 6670 int CHeaderCtrl::OrderToIndex(int)const 6671 int CFileException::OsErrorToException(long) 6672 void CDumpContext::OutputString(char const *) 6673 int CEditView::PaginateTo(CDC *,CPrintInfo *) 6674 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 6675 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 6676 int CDC::PaintRgn(CRgn *) 6677 int CWnd::PaintWindowlessControls(CDC *) 6678 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 6679 void CWinApp::ParseCommandLine(CCommandLineInfo &) 6680 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 6681 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6682 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6683 void CCommandLineInfo::ParseLast(int) 6684 void CCommandLineInfo::ParseParam(char const *,int,int) 6685 void CCommandLineInfo::ParseParamFlag(char const *) 6686 void CCommandLineInfo::ParseParamNotFlag(char const *) 6687 void CComboBox::Paste() 6688 void CEdit::Paste() 6689 void CRichEditCtrl::Paste() 6690 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 6691 int CDC::PatBlt(int,int,int,int,unsigned long) 6692 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 6693 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 6694 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 6695 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 6696 int CDC::Pie(int,int,int,int,int,int,int,int) 6697 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 6698 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 6699 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 6700 int CDC::PlayMetaFile(HMETAFILE__ *) 6701 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 6702 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 6703 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 6704 int CDC::PolyBezier(tagPOINT const *,int) 6705 int CDC::PolyBezierTo(tagPOINT const *,int) 6706 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 6707 int CDC::Polygon(tagPOINT *,int) 6708 int CDC::Polyline(tagPOINT *,int) 6709 int CDC::PolylineTo(tagPOINT const *,int) 6710 int CDC::PolyPolygon(tagPOINT *,int *,int) 6711 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 6712 void CToolTipCtrl::Pop() 6713 CPoint CEdit::PosFromChar(unsigned int)const 6714 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 6715 void CPreviewView::PositionPage(unsigned int) 6716 int CAsyncMonikerFile::PostBindToStream(CFileException *) 6717 int CMonikerFile::PostBindToStream(CFileException *) 6718 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 6719 int CWnd::PostMessageA(unsigned int,unsigned int,long) 6720 void CDialog::PostModal() 6721 void CPrintDialogEx::PostModal() 6722 void COleControl::PostModalDialog(HWND__ *) 6723 void CControlBar::PostNcDestroy() 6724 void CControlFrameWnd::PostNcDestroy() 6725 void CFindReplaceDialog::PostNcDestroy() 6726 void CFrameWnd::PostNcDestroy() 6727 void COleCntrFrameWnd::PostNcDestroy() 6728 void CReflectorWnd::PostNcDestroy() 6729 void CView::PostNcDestroy() 6730 void CWnd::PostNcDestroy() 6731 int CWinThread::PostThreadMessageA(unsigned int,unsigned int,long) 6732 void CRecordset::PreBindFields() 6733 void CDocument::PreCloseFrame(CFrameWnd *) 6734 void COleDocument::PreCloseFrame(CFrameWnd *) 6735 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 6736 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 6737 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 6738 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 6739 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6740 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 6741 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 6742 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6743 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 6744 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 6745 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 6746 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6747 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6748 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 6749 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 6750 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 6751 int CView::PreCreateWindow(tagCREATESTRUCTA &) 6752 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 6753 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 6754 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 6755 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 6756 void CDialog::PreInitDialog() 6757 void COleChangeSourceDialog::PreInitDialog() 6758 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 6759 HWND__ * CDialog::PreModal() 6760 HWND__ * CPrintDialogEx::PreModal() 6761 void COleControl::PreModalDialog(HWND__ *) 6762 void CRecordset::PrepareAndExecute() 6763 HWND__ * CDataExchange::PrepareCtrl(int) 6764 HWND__ * CDataExchange::PrepareEditCtrl(int) 6765 void CWnd::PrepareForHelp() 6766 COleControlSite * CDataExchange::PrepareOleCtrl(int) 6767 void CRecordset::PrepareUpdateHstmt() 6768 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 6769 void CPropertySheet::PressButton(int) 6770 int CToolBarCtrl::PressButton(int,int) 6771 void CCheckListBox::PreSubclassWindow() 6772 void CDragListBox::PreSubclassWindow() 6773 void CWnd::PreSubclassWindow() 6774 int CWnd::PreTranslateInput(tagMSG *) 6775 int CControlBar::PreTranslateMessage(tagMSG *) 6776 int CDialog::PreTranslateMessage(tagMSG *) 6777 int CFormView::PreTranslateMessage(tagMSG *) 6778 int CFrameWnd::PreTranslateMessage(tagMSG *) 6779 int CHtmlView::PreTranslateMessage(tagMSG *) 6780 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 6781 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 6782 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 6783 int COlePropertyPage::PreTranslateMessage(tagMSG *) 6784 int CPropertyPage::PreTranslateMessage(tagMSG *) 6785 int CPropertySheet::PreTranslateMessage(tagMSG *) 6786 int CWinThread::PreTranslateMessage(tagMSG *) 6787 int CWnd::PreTranslateMessage(tagMSG *) 6788 void CDialog::PrevDlgCtrl()const 6789 void CWnd::Print(CDC *,unsigned long)const 6790 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 6791 int CPrintDialog::PrintAll()const 6792 int CPrintDialogEx::PrintAll()const 6793 void CWnd::PrintClient(CDC *,unsigned long)const 6794 int CPrintDialog::PrintCollate()const 6795 int CPrintDialogEx::PrintCollate()const 6796 int CPrintDialogEx::PrintCurrentPage()const 6797 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 6798 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 6799 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 6800 long CRichEditView::PrintPage(CDC *,long,long) 6801 int CPrintDialog::PrintRange()const 6802 int CPrintDialogEx::PrintRange()const 6803 int CPrintDialog::PrintSelection()const 6804 int CPrintDialogEx::PrintSelection()const 6805 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 6806 long COleException::Process(CException const *) 6807 int CSocket::ProcessAuxQueue() 6808 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 6809 int CWinThread::ProcessMessageFilter(int,tagMSG *) 6810 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 6811 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 6812 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 6813 int CRgn::PtInRegion(int,int)const 6814 int CRgn::PtInRegion(tagPOINT)const 6815 void COleSafeArray::PtrOfIndex(long *,void * *) 6816 int CDC::PtVisible(tagPOINT)const 6817 int CDC::PtVisible(int,int)const 6818 int CMetaFileDC::PtVisible(tagPOINT)const 6819 int CMetaFileDC::PtVisible(int,int)const 6820 int CEvent::PulseEvent() 6821 int CWinThread::PumpMessage() 6822 int CSocket::PumpMessages(unsigned int) 6823 void CReBarCtrl::PushChevron(unsigned int,long) 6824 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 6825 long CWnd::put_accName(tagVARIANT,wchar_t *) 6826 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 6827 long CWnd::put_accValue(tagVARIANT,wchar_t *) 6828 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 6829 void COleSafeArray::PutElement(long *,void *) 6830 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 6831 void CHtmlView::PutProperty(char const *,char const *) 6832 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 6833 void CHtmlView::PutProperty(char const *,short) 6834 void CHtmlView::PutProperty(char const *,long) 6835 void CHtmlView::PutProperty(char const *,double) 6836 int PX_Blob(CPropExchange *,char const *,void * &,void *) 6837 int PX_Bool(CPropExchange *,char const *,int &) 6838 int PX_Bool(CPropExchange *,char const *,int &,int) 6839 int PX_Color(CPropExchange *,char const *,unsigned long &) 6840 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 6841 int PX_Currency(CPropExchange *,char const *,union tagCY &) 6842 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 6843 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 6844 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 6845 int PX_Double(CPropExchange *,char const *,double &) 6846 int PX_Double(CPropExchange *,char const *,double &,double) 6847 int PX_Float(CPropExchange *,char const *,float &) 6848 int PX_Float(CPropExchange *,char const *,float &,float) 6849 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 6850 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 6851 int PX_Long(CPropExchange *,char const *,long &) 6852 int PX_Long(CPropExchange *,char const *,long &,long) 6853 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 6854 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 6855 int PX_Short(CPropExchange *,char const *,short &) 6856 int PX_Short(CPropExchange *,char const *,short &,short) 6857 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 6858 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 6859 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 6860 int PX_ULong(CPropExchange *,char const *,unsigned long &) 6861 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 6862 int PX_UShort(CPropExchange *,char const *,unsigned short &) 6863 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 6864 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 6865 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 6866 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 6867 IUnknown * CCmdTarget::QueryAggregates(void const *) 6868 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 6869 long COleDropSource::QueryContinueDrag(int,unsigned long) 6870 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 6871 void * COleControl::QueryDefHandler(_GUID const &) 6872 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 6873 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 6874 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 6875 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 6876 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 6877 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6878 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6879 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 6880 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 6881 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 6882 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 6883 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 6884 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 6885 long CArchiveStream::QueryInterface(_GUID const &,void * *) 6886 long CBlobProperty::QueryInterface(_GUID const &,void * *) 6887 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 6888 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 6889 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 6890 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 6891 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 6892 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 6893 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 6894 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 6895 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 6896 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 6897 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 6898 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 6899 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 6900 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 6901 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 6902 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 6903 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 6904 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 6905 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 6906 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 6907 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 6908 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 6909 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 6910 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 6911 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 6912 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 6913 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 6914 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 6915 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 6916 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 6917 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 6918 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 6919 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 6920 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 6921 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 6922 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 6923 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 6924 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 6925 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 6926 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 6927 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 6928 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 6929 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 6930 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 6931 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 6932 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 6933 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 6934 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 6935 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 6936 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 6937 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 6938 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 6939 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 6940 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 6941 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 6942 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 6943 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 6944 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 6945 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 6946 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 6947 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 6948 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 6949 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 6950 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 6951 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 6952 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 6953 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 6954 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 6955 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 6956 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 6957 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 6958 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 6959 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 6960 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 6961 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 6962 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 6963 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 6964 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 6965 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 6966 long CPropertyPage::QuerySiblings(unsigned int,long) 6967 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 6968 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 6969 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 6970 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 6971 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 6972 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 6973 int COleControlSite::QuickActivate() 6974 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 6975 int COleClientItem::ReactivateAndUndo() 6976 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 6977 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 6978 unsigned int CArchive::Read(void *,unsigned int) 6979 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 6980 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 6981 unsigned int CFile::Read(void *,unsigned int) 6982 int CImageList::Read(CArchive *) 6983 unsigned int CInternetFile::Read(void *,unsigned int) 6984 unsigned int CMemFile::Read(void *,unsigned int) 6985 unsigned int COleStreamFile::Read(void *,unsigned int) 6986 unsigned int CSocketFile::Read(void *,unsigned int) 6987 unsigned int CStdioFile::Read(void *,unsigned int) 6988 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 6989 unsigned long CArchive::ReadCount() 6990 void CEditView::ReadFromArchive(CArchive &,unsigned int) 6991 int CProperty::ReadFromStream(IStream *) 6992 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 6993 int CPropertySet::ReadFromStream(IStream *) 6994 void COleClientItem::ReadItem(CArchive &) 6995 void COleClientItem::ReadItemCompound(CArchive &) 6996 void COleClientItem::ReadItemFlat(CArchive &) 6997 void CRecentFileList::ReadList() 6998 int CPropertySection::ReadNameDictFromStream(IStream *) 6999 CObject * CArchive::ReadObject(CRuntimeconst *) 7000 int CArchive::ReadString(ATL::CStringT > > &) 7001 char * CArchive::ReadString(char *,unsigned int) 7002 int CInternetFile::ReadString(ATL::CStringT > > &) 7003 char * CInternetFile::ReadString(char *,unsigned int) 7004 int CStdioFile::ReadString(ATL::CStringT > > &) 7005 char * CStdioFile::ReadString(char *,unsigned int) 7006 unsigned int CDC::RealizePalette() 7007 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7008 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7009 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7010 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7011 void CRecordset::RebindParams(void *) 7012 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7013 void CFrameWnd::RecalcLayout(int) 7014 void CMiniDockFrameWnd::RecalcLayout(int) 7015 void COleCntrFrameWnd::RecalcLayout(int) 7016 void COleDocIPFrameWnd::RecalcLayout(int) 7017 void COleIPFrameWnd::RecalcLayout(int) 7018 void CSplitterWnd::RecalcLayout() 7019 int CAsyncSocket::Receive(void *,int,int) 7020 int CSocket::Receive(void *,int,int) 7021 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7022 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7023 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7024 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7025 void COleControl::RecreateControlWindow() 7026 int CDC::Rectangle(int,int,int,int) 7027 int CDC::Rectangle(tagRECT const *) 7028 CRect const CFrameWnd::rectDefault 7029 int CRgn::RectInRegion(tagRECT const *)const 7030 int CDC::RectVisible(tagRECT const *)const 7031 int CMetaFileDC::RectVisible(tagRECT const *)const 7032 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7033 int CRichEditCtrl::Redo() 7034 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7035 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7036 int CListCtrl::RedrawItems(int,int) 7037 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7038 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7039 int CWnd::ReflectLastMsg(HWND__ *,long *) 7040 void CHtmlView::Refresh() 7041 void COleControl::Refresh() 7042 void CHtmlView::Refresh2(int) 7043 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7044 int COleDropTarget::Register(CWnd *) 7045 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 7046 int COleMessageFilter::Register() 7047 int COleObjectFactory::Register() 7048 int COleTemplateServer::Register() 7049 int CWinApp::Register() 7050 int COleObjectFactory::RegisterAll() 7051 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 7052 void CDocManager::RegisterShellFileTypes(int) 7053 void CWinApp::RegisterShellFileTypes(int) 7054 void CToolTipCtrl::RelayEvent(tagMSG *) 7055 unsigned long CArchiveStream::Release() 7056 unsigned long CBlobProperty::Release() 7057 unsigned long CBrowserControlSite::Release() 7058 unsigned long CDHtmlControlSink::Release() 7059 unsigned long CDHtmlElementEventSink::Release() 7060 unsigned long CDHtmlEventSink::Release() 7061 unsigned long CInnerUnknown::Release() 7062 void COleClientItem::Release(enum tagOLECLOSE) 7063 unsigned long COleConnPtContainer::Release() 7064 void COleDataObject::Release() 7065 unsigned long COleDispatchImpl::Release() 7066 void COleDocObjectItem::Release(enum tagOLECLOSE) 7067 unsigned long COleUILinkInfo::Release() 7068 unsigned long CPrintDialogEx::Release() 7069 unsigned long CWnd::XAccessible::Release() 7070 unsigned long CWnd::XAccessibleServer::Release() 7071 unsigned long COleClientItem::XAdviseSink::Release() 7072 unsigned long COleControlSite::XAmbientProps::Release() 7073 unsigned long COleControlSite::XBoundObjectSite::Release() 7074 unsigned long COleObjectFactory::XClassFactory::Release() 7075 unsigned long CConnectionPoint::XConnPt::Release() 7076 unsigned long COleControl::XDataObject::Release() 7077 unsigned long COleDataSource::XDataObject::Release() 7078 unsigned long COleServerDoc::XDataObject::Release() 7079 unsigned long COleServerItem::XDataObject::Release() 7080 unsigned long CHtmlControlSite::XDocHostUIHandler::Release() 7081 unsigned long COleDropSource::XDropSource::Release() 7082 unsigned long COleDropTarget::XDropTarget::Release() 7083 unsigned long CEnumArray::XEnumVOID::Release() 7084 unsigned long COleControlSite::XEventSink::Release() 7085 unsigned long COleControl::XFontNotification::Release() 7086 unsigned long COleMessageFilter::XMessageFilter::Release() 7087 unsigned long COleControlSite::XNotifyDBEvents::Release() 7088 unsigned long COleControl::XOleCache::Release() 7089 unsigned long COleClientItem::XOleClientSite::Release() 7090 unsigned long COleControlSite::XOleClientSite::Release() 7091 unsigned long CDocObjectServer::XOleCommandTarget::Release() 7092 unsigned long COleFrameHook::XOleCommandTarget::Release() 7093 unsigned long COleControlContainer::XOleContainer::Release() 7094 unsigned long COleControl::XOleControl::Release() 7095 unsigned long COleControlSite::XOleControlSite::Release() 7096 unsigned long CDocObjectServer::XOleDocument::Release() 7097 unsigned long COleDocObjectItem::XOleDocumentSite::Release() 7098 unsigned long CDocObjectServer::XOleDocumentView::Release() 7099 unsigned long COleControl::XOleInPlaceActiveObject::Release() 7100 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 7101 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 7102 unsigned long COleControl::XOleInPlaceObject::Release() 7103 unsigned long COleServerDoc::XOleInPlaceObject::Release() 7104 unsigned long COleControlContainer::XOleIPFrame::Release() 7105 unsigned long COleClientItem::XOleIPSite::Release() 7106 unsigned long COleControlSite::XOleIPSite::Release() 7107 unsigned long COleLinkingDoc::XOleItemContainer::Release() 7108 unsigned long CDocObjectServer::XOleObject::Release() 7109 unsigned long COleControl::XOleObject::Release() 7110 unsigned long COleServerDoc::XOleObject::Release() 7111 unsigned long COleServerItem::XOleObject::Release() 7112 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 7113 unsigned long COleControl::XPerPropertyBrowsing::Release() 7114 unsigned long COleLinkingDoc::XPersistFile::Release() 7115 unsigned long COleControl::XPersistMemory::Release() 7116 unsigned long COleControl::XPersistPropertyBag::Release() 7117 unsigned long COleControl::XPersistStorage::Release() 7118 unsigned long COleServerDoc::XPersistStorage::Release() 7119 unsigned long COleControl::XPersistStreamInit::Release() 7120 unsigned long COleControl::XPointerInactive::Release() 7121 unsigned long CDocObjectServer::XPrint::Release() 7122 unsigned long COleControlSite::XPropertyNotifySink::Release() 7123 unsigned long COlePropertyPage::XPropertyPage::Release() 7124 unsigned long COlePropertyPage::XPropNotifySink::Release() 7125 unsigned long COleControl::XProvideClassInfo::Release() 7126 unsigned long COleControl::XQuickActivate::Release() 7127 unsigned long CRichEditView::XRichEditOleCallback::Release() 7128 unsigned long COleControlSite::XRowsetNotify::Release() 7129 unsigned long COleControl::XSpecifyPropertyPages::Release() 7130 unsigned long COleControl::XViewObject::Release() 7131 void CDC::ReleaseAttribDC() 7132 void COleControl::ReleaseCaches() 7133 int COleControl::ReleaseCapture() 7134 int COleControl::ReleaseDC(CDC *) 7135 int CWnd::ReleaseDC(CDC *) 7136 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7137 void COleDispatchDriver::ReleaseDispatch() 7138 void CDocObjectServer::ReleaseDocSite() 7139 void CDocument::ReleaseFile(CFile *,int) 7140 void CFontHolder::ReleaseFont() 7141 void CDC::ReleaseOutputDC() 7142 void CMetaFileDC::ReleaseOutputDC() 7143 void CPreviewDC::ReleaseOutputDC() 7144 int COleClientItem::Reload() 7145 void CFile::Remove(char const *) 7146 int CFtpConnection::Remove(char const *) 7147 int CImageList::Remove(int) 7148 void CPropertySection::Remove(unsigned long) 7149 void CPropertySet::Remove(_GUID) 7150 void CPropertySet::Remove(_GUID,unsigned long) 7151 void CRecentFileList::Remove(int) 7152 int CSimpleList::Remove(void *) 7153 void CByteArray::RemoveAll() 7154 void CDWordArray::RemoveAll() 7155 void CMapPtrToPtr::RemoveAll() 7156 void CMapPtrToWord::RemoveAll() 7157 void CMapStringToOb::RemoveAll() 7158 void CMapStringToPtr::RemoveAll() 7159 void CMapStringToString::RemoveAll() 7160 void CMapWordToOb::RemoveAll() 7161 void CMapWordToPtr::RemoveAll() 7162 void CObArray::RemoveAll() 7163 void CObList::RemoveAll() 7164 void CPropertySection::RemoveAll() 7165 void CPropertySet::RemoveAll() 7166 void CPtrArray::RemoveAll() 7167 void CPtrList::RemoveAll() 7168 void CStringArray::RemoveAll() 7169 void CStringList::RemoveAll() 7170 void CTypeLibCacheMap::RemoveAll(void *) 7171 void CUIntArray::RemoveAll() 7172 void CWordArray::RemoveAll() 7173 void CByteArray::RemoveAt(int,int) 7174 void CDWordArray::RemoveAt(int,int) 7175 void CObArray::RemoveAt(int,int) 7176 void CObList::RemoveAt(__POSITION *) 7177 void CPtrArray::RemoveAt(int,int) 7178 void CPtrList::RemoveAt(__POSITION *) 7179 void CStringArray::RemoveAt(int,int) 7180 void CStringList::RemoveAt(__POSITION *) 7181 void CUIntArray::RemoveAt(int,int) 7182 void CWordArray::RemoveAt(int,int) 7183 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7184 void CFrameWnd::RemoveControlBar(CControlBar *) 7185 int CFtpConnection::RemoveDirectoryA(char const *) 7186 void CDocTemplate::RemoveDocument(CDocument *) 7187 void CMultiDocTemplate::RemoveDocument(CDocument *) 7188 void CSingleDocTemplate::RemoveDocument(CDocument *) 7189 void COleControl::RemoveFrameLevelUI() 7190 void CFrameWnd::RemoveFrameWnd() 7191 void CHandleMap::RemoveHandle(void *) 7192 CObject * CObList::RemoveHead() 7193 void * CPtrList::RemoveHead() 7194 ATL::CStringT > > CStringList::RemoveHead() 7195 void CTabCtrl::RemoveImage(int) 7196 void CListCtrl::RemoveImageList(int) 7197 void CListView::RemoveImageList(int) 7198 void CTreeCtrl::RemoveImageList(int) 7199 void CTreeView::RemoveImageList(int) 7200 void COleDocument::RemoveItem(CDocItem *) 7201 int CMapPtrToPtr::RemoveKey(void *) 7202 int CMapPtrToWord::RemoveKey(void *) 7203 int CMapStringToOb::RemoveKey(char const *) 7204 int CMapStringToPtr::RemoveKey(char const *) 7205 int CMapStringToString::RemoveKey(char const *) 7206 int CMapWordToOb::RemoveKey(unsigned short) 7207 int CMapWordToPtr::RemoveKey(unsigned short) 7208 int CMenu::RemoveMenu(unsigned int,unsigned int) 7209 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7210 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7211 void CPropertySheet::RemovePage(int) 7212 void CPropertySheet::RemovePage(CPropertyPage *) 7213 void CDockBar::RemovePlaceHolder(CControlBar *) 7214 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7215 void CDataBoundProperty::RemoveSource() 7216 CObject * CObList::RemoveTail() 7217 void * CPtrList::RemoveTail() 7218 ATL::CStringT > > CStringList::RemoveTail() 7219 void CDocument::RemoveView(CView *) 7220 void CFile::Rename(char const *,char const *) 7221 int CFtpConnection::Rename(char const *,char const *) 7222 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 7223 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 7224 int CImageList::Replace(int,HICON__ *) 7225 int CImageList::Replace(int,CBitmap *,CBitmap *) 7226 int CFindReplaceDialog::ReplaceAll()const 7227 void CDatabase::ReplaceBrackets(char *) 7228 int CFindReplaceDialog::ReplaceCurrent()const 7229 void CEdit::ReplaceSel(char const *,int) 7230 void CRichEditCtrl::ReplaceSel(char const *,int) 7231 int CException::ReportError(unsigned int,unsigned int) 7232 int COleClientItem::ReportError(long)const 7233 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 7234 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 7235 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 7236 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 7237 int CRecordset::Requery() 7238 void COleControl::RequestAsynchronousExchange(unsigned long) 7239 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 7240 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 7241 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 7242 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 7243 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 7244 void COleServerDoc::RequestPositionChange(tagRECT const *) 7245 void CRichEditCtrl::RequestResize() 7246 long COleControlSite::XOleIPSite::RequestUIActivate() 7247 long CEnumArray::XEnumVOID::Reset() 7248 void CComboBox::ResetContent() 7249 void CListBox::ResetContent() 7250 void CRecordset::ResetCursor() 7251 void CCachedDataPathProperty::ResetData() 7252 void CDataPathProperty::ResetData() 7253 int CDC::ResetDCA(_devicemodeA const *) 7254 int CEvent::ResetEvent() 7255 void COleControl::ResetStockProps() 7256 void CControlBar::ResetTimer(unsigned int,unsigned int) 7257 void COleControl::ResetVersion(unsigned long) 7258 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7259 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7260 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7261 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7262 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7263 void COleControl::ResizeFrameWindow(int,int) 7264 void COleSafeArray::ResizeOneDim(unsigned long) 7265 void COleControl::ResizeOpenControl(int,int) 7266 int CPalette::ResizePalette(unsigned int) 7267 void CScrollView::ResizeParentToFit(int) 7268 void CWaitCursor::Restore() 7269 void CReBarCtrl::RestoreBand(unsigned int) 7270 int CDC::RestoreDC(int) 7271 int CPreviewDC::RestoreDC(int) 7272 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 7273 void CCmdTarget::RestoreWaitCursor() 7274 unsigned long CWinThread::ResumeThread() 7275 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 7276 long CArchiveStream::Revert() 7277 void COleDropTarget::Revoke() 7278 void COleLinkingDoc::Revoke() 7279 void COleMessageFilter::Revoke() 7280 void COleObjectFactory::Revoke() 7281 void COleObjectFactory::RevokeAll() 7282 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 7283 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 7284 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 7285 void RFX_Bool(CFieldExchange *,char const *,int &) 7286 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 7287 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 7288 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 7289 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 7290 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 7291 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 7292 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 7293 void RFX_Double(CFieldExchange *,char const *,double &) 7294 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 7295 void RFX_Int(CFieldExchange *,char const *,int &) 7296 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 7297 void RFX_Long(CFieldExchange *,char const *,long &) 7298 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 7299 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 7300 void RFX_Single(CFieldExchange *,char const *,float &) 7301 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 7302 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 7303 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 7304 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 7305 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 7306 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 7307 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 7308 int CDatabase::Rollback() 7309 int CDC::RoundRect(int,int,int,int,int,int) 7310 int CDC::RoundRect(tagRECT const *,tagPOINT) 7311 void COleClientItem::Run() 7312 int CWinApp::Run() 7313 int CWinThread::Run() 7314 int CWinApp::RunAutomated() 7315 int CWinApp::RunEmbedded() 7316 int CWnd::RunModalLoop(unsigned long) 7317 int COleControlSite::SafeSetProperty(long,unsigned short,...) 7318 int CEditView::SameAsSelected(char const *,int) 7319 int CRichEditView::SameAsSelected(char const *,int,int) 7320 long CBlobProperty::Save(IStream *,int) 7321 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 7322 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 7323 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 7324 long COleControl::XPersistStorage::Save(IStorage *,int) 7325 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 7326 long COleControl::XPersistStreamInit::Save(IStream *,int) 7327 int CDocManager::SaveAllModified() 7328 int CDocTemplate::SaveAllModified() 7329 int CWinApp::SaveAllModified() 7330 void CFrameWnd::SaveBarState(char const *)const 7331 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 7332 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 7333 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 7334 int CDC::SaveDC() 7335 int CPreviewDC::SaveDC() 7336 void COleServerDoc::SaveEmbedding() 7337 int CFormView::SaveFocusControl() 7338 int CDocument::SaveModified() 7339 int COleDocument::SaveModified() 7340 int COleServerDoc::SaveModified() 7341 int COleServerDoc::SaveModifiedPrompt() 7342 long COleClientItem::XOleClientSite::SaveObject() 7343 long COleControlSite::XOleClientSite::SaveObject() 7344 int CControlBarInfo::SaveState(char const *,int) 7345 void CDockState::SaveState(char const *) 7346 long COleControl::SaveState(IStream *) 7347 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 7348 void CWinApp::SaveStdProfileSettings() 7349 void COleDocument::SaveToStorage(CObject *) 7350 void COleLinkingDoc::SaveToStorage(CObject *) 7351 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 7352 void CDockState::ScalePoint(CPoint &) 7353 void CDockState::ScaleRectPos(CRect &) 7354 CSize CDC::ScaleViewportExt(int,int,int,int) 7355 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 7356 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 7357 CSize CDC::ScaleWindowExt(int,int,int,int) 7358 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 7359 void CWnd::ScreenToClient(tagPOINT *)const 7360 void CWnd::ScreenToClient(tagRECT *)const 7361 int CListCtrl::Scroll(CSize) 7362 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 7363 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 7364 void COleControlContainer::ScrollChildren(int,int) 7365 int COleServerDoc::ScrollContainerBy(CSize) 7366 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 7367 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 7368 void CScrollView::ScrollToDevicePosition(tagPOINT) 7369 void CScrollView::ScrollToPosition(tagPOINT) 7370 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7371 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7372 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 7373 int CFindReplaceDialog::SearchDown()const 7374 int CAnimateCtrl::Seek(unsigned int) 7375 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 7376 unsigned __int64 CFile::Seek(__int64,unsigned int) 7377 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 7378 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 7379 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 7380 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 7381 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 7382 void CFile::SeekToBegin() 7383 unsigned __int64 CFile::SeekToEnd() 7384 CFont * CFontHolder::Select(CDC *,long,long) 7385 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 7386 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 7387 int CDC::SelectClipPath(int) 7388 int CDC::SelectClipRgn(CRgn *) 7389 int CDC::SelectClipRgn(CRgn *,int) 7390 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 7391 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 7392 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 7393 long CPrintDialogEx::SelectionChange() 7394 int CTreeCtrl::SelectItem(_TREEITEM *) 7395 int CDC::SelectObject(CRgn *) 7396 CBitmap * CDC::SelectObject(CBitmap *) 7397 CBrush * CDC::SelectObject(CBrush *) 7398 CGdiObject * CDC::SelectObject(CGdiObject *) 7399 CPen * CDC::SelectObject(CPen *) 7400 void * CDC::SelectObject(void *) 7401 CFont * CDC::SelectObject(CFont *) 7402 CFont * CPreviewDC::SelectObject(CFont *) 7403 CPalette * CDC::SelectPalette(CPalette *,int) 7404 void CWinApp::SelectPrinter(void *,void *,int) 7405 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 7406 CFont * COleControl::SelectStockFont(CDC *) 7407 CGdiObject * CDC::SelectStockObject(int) 7408 CGdiObject * CPreviewDC::SelectStockObject(int) 7409 int CComboBox::SelectString(int,char const *) 7410 int CListBox::SelectString(int,char const *) 7411 int CListBox::SelItemRange(int,int,int) 7412 int CAsyncSocket::Send(void const *,int,int) 7413 int CSocket::Send(void const *,int,int) 7414 void COleControl::SendAdvise(unsigned int) 7415 int CWnd::SendChildNotifyLastMsg(long *) 7416 int CSocket::SendChunk(void const *,int,int) 7417 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 7418 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 7419 void CDocument::SendInitialUpdate() 7420 void CRecordset::SendLongBinaryData(void *) 7421 long CWnd::SendMessageA(unsigned int,unsigned int,long) 7422 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 7423 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 7424 void COleControlSite::SendMnemonic(tagMSG *) 7425 int CWnd::SendNotifyMessageA(unsigned int,unsigned int,long) 7426 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 7427 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 7428 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 7429 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 7430 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 7431 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 7432 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7433 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7434 void CByteArray::Serialize(CArchive &) 7435 void CControlBarInfo::Serialize(CArchive &,CDockState *) 7436 void CDocItem::Serialize(CArchive &) 7437 void CDockState::Serialize(CArchive &) 7438 void CDWordArray::Serialize(CArchive &) 7439 void CEditView::Serialize(CArchive &) 7440 void CMapStringToOb::Serialize(CArchive &) 7441 void CMapStringToString::Serialize(CArchive &) 7442 void CMapWordToOb::Serialize(CArchive &) 7443 void CObArray::Serialize(CArchive &) 7444 void CObject::Serialize(CArchive &) 7445 void CObList::Serialize(CArchive &) 7446 void COleClientItem::Serialize(CArchive &) 7447 void COleControl::Serialize(CArchive &) 7448 void COleDocument::Serialize(CArchive &) 7449 void CRichEditDoc::Serialize(CArchive &) 7450 void CRichEditView::Serialize(CArchive &) 7451 void CStringArray::Serialize(CArchive &) 7452 void CStringList::Serialize(CArchive &) 7453 void CWordArray::Serialize(CArchive &) 7454 CArchive & ATL::CTime::Serialize64(CArchive &) 7455 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 7456 void CArchive::SerializeClass(CRuntimeconst *) 7457 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 7458 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 7459 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 7460 void SerializeElements(CArchive &,COleVariant *,int) 7461 void COleControl::SerializeExtent(CArchive &) 7462 void CEditView::SerializeRaw(CArchive &) 7463 void COleControl::SerializeStockProps(CArchive &) 7464 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 7465 int CProperty::Set(unsigned long,void * const,unsigned long) 7466 int CProperty::Set(void * const) 7467 int CProperty::Set(void * const,unsigned long) 7468 int CPropertySection::Set(unsigned long,void *) 7469 int CPropertySection::Set(unsigned long,void *,unsigned long) 7470 int CPropertySet::Set(_GUID,unsigned long,void *) 7471 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 7472 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 7473 void CRecordset::SetAbsolutePosition(long) 7474 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 7475 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7476 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7477 int CPropertySheet::SetActivePage(int) 7478 int CPropertySheet::SetActivePage(CPropertyPage *) 7479 void CSplitterWnd::SetActivePane(int,int,CWnd *) 7480 void CFrameWnd::SetActiveView(CView *,int) 7481 CWnd * CWnd::SetActiveWindow() 7482 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 7483 void CIPAddressCtrl::SetAddress(unsigned long) 7484 void CHtmlView::SetAddressBar(int) 7485 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 7486 int CToolBarCtrl::SetAnchorHighlight(int) 7487 void CListBox::SetAnchorIndex(int) 7488 void COleControl::SetAppearance(short) 7489 int CDC::SetArcDirection(int) 7490 void CByteArray::SetAt(int,unsigned char) 7491 void CDWordArray::SetAt(int,unsigned long) 7492 void CMapPtrToPtr::SetAt(void *,void *) 7493 void CMapPtrToWord::SetAt(void *,unsigned short) 7494 void CMapStringToOb::SetAt(char const *,CObject *) 7495 void CMapStringToPtr::SetAt(char const *,void *) 7496 void CMapStringToString::SetAt(char const *,char const *) 7497 void CMapWordToOb::SetAt(unsigned short,CObject *) 7498 void CMapWordToPtr::SetAt(unsigned short,void *) 7499 void CObArray::SetAt(int,CObject *) 7500 void CObList::SetAt(__POSITION *,CObject *) 7501 void CPtrArray::SetAt(int,void *) 7502 void CPtrList::SetAt(__POSITION *,void *) 7503 void CStringArray::SetAt(int,ATL::CStringT > > const &) 7504 void CStringArray::SetAt(int,char const *) 7505 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 7506 void CStringList::SetAt(__POSITION *,char const *) 7507 void CUIntArray::SetAt(int,unsigned int) 7508 void CWordArray::SetAt(int,unsigned short) 7509 void CByteArray::SetAtGrow(int,unsigned char) 7510 void CDWordArray::SetAtGrow(int,unsigned long) 7511 void CObArray::SetAtGrow(int,CObject *) 7512 void CPtrArray::SetAtGrow(int,void *) 7513 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 7514 void CStringArray::SetAtGrow(int,char const *) 7515 void CUIntArray::SetAtGrow(int,unsigned int) 7516 void CWordArray::SetAtGrow(int,unsigned short) 7517 void CDC::SetAttribDC(HDC__ *) 7518 void CMetaFileDC::SetAttribDC(HDC__ *) 7519 void CPreviewDC::SetAttribDC(HDC__ *) 7520 int CRichEditCtrl::SetAutoURLDetect(int) 7521 void COleControl::SetBackColor(unsigned long) 7522 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 7523 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOA *) 7524 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7525 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7526 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 7527 void CControlBar::SetBarStyle(unsigned long) 7528 int CSpinButtonCtrl::SetBase(int) 7529 void CAsyncMonikerFile::SetBinding(IBinding *) 7530 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 7531 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 7532 int CToolBar::SetBitmap(HBITMAP__ *) 7533 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 7534 CSize CBitmap::SetBitmapDimension(int,int) 7535 int CHeaderCtrl::SetBitmapMargin(int) 7536 int CToolBarCtrl::SetBitmapSize(CSize) 7537 unsigned long CDC::SetBkColor(unsigned long) 7538 unsigned long CImageList::SetBkColor(unsigned long) 7539 int CListCtrl::SetBkColor(unsigned long) 7540 unsigned long CPreviewDC::SetBkColor(unsigned long) 7541 unsigned long CProgressCtrl::SetBkColor(unsigned long) 7542 unsigned long CReBarCtrl::SetBkColor(unsigned long) 7543 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 7544 unsigned long CTreeCtrl::SetBkColor(unsigned long) 7545 int CListCtrl::SetBkImage(char *,int,int,int) 7546 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 7547 int CListCtrl::SetBkImage(tagLVBKIMAGEA *) 7548 int CDC::SetBkMode(int) 7549 void CRecordset::SetBookmark(CDBVariant const &) 7550 void CControlBar::SetBorders(int,int,int,int) 7551 void CControlBar::SetBorders(tagRECT const *) 7552 void CStatusBar::SetBorders(int,int,int,int) 7553 void CStatusBar::SetBorders(tagRECT const *) 7554 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 7555 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 7556 void COleControl::SetBorderStyle(short) 7557 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 7558 CPoint CDC::SetBrushOrg(int,int) 7559 CPoint CDC::SetBrushOrg(tagPOINT) 7560 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 7561 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 7562 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 7563 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 7564 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOA *) 7565 int CToolBar::SetButtons(unsigned int const *,int) 7566 int CToolBarCtrl::SetButtonSize(CSize) 7567 void CToolBarCtrl::SetButtonStructSize(int) 7568 void CButton::SetButtonStyle(unsigned int,int) 7569 void CToolBar::SetButtonStyle(int,unsigned int) 7570 int CToolBar::SetButtonText(int,char const *) 7571 int CToolBarCtrl::SetButtonWidth(int,int) 7572 int CListCtrl::SetCallbackMask(unsigned int) 7573 CWnd * COleControl::SetCapture() 7574 CWnd * CWnd::SetCapture() 7575 long COleControlSite::XOleIPSite::SetCapture(int) 7576 int CListBox::SetCaretIndex(int,int) 7577 void CWnd::SetCaretPos(tagPOINT) 7578 void CRichEditView::SetCharFormat(CHARFORMAT2A) 7579 void CButton::SetCheck(int) 7580 void CCheckListBox::SetCheck(int,int) 7581 void CCmdUI::SetCheck(int) 7582 int CListCtrl::SetCheck(int,int) 7583 void COleCmdUI::SetCheck(int) 7584 void CStatusCmdUI::SetCheck(int) 7585 void CTestCmdUI::SetCheck(int) 7586 void CToolCmdUI::SetCheck(int) 7587 int CTreeCtrl::SetCheck(_TREEITEM *,int) 7588 void CCheckListBox::SetCheckStyle(unsigned int) 7589 void CPropertySet::SetClassID(_GUID) 7590 void CDataBoundProperty::SetClientSite(COleControlSite *) 7591 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 7592 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 7593 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 7594 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 7595 void COleDataSource::SetClipboard() 7596 HWND__ * CWnd::SetClipboardViewer() 7597 int CToolBarCtrl::SetCmdID(int,unsigned int) 7598 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 7599 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 7600 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 7601 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 7602 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 7603 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 7604 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 7605 int CListCtrl::SetColumn(int,tagLVCOLUMNA const *) 7606 void CSplitterWnd::SetColumnInfo(int,int,int) 7607 int CListCtrl::SetColumnOrderArray(int,int *) 7608 void CListBox::SetColumnWidth(int) 7609 int CListCtrl::SetColumnWidth(int,int) 7610 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 7611 void CDocTemplate::SetContainerInfo(unsigned int) 7612 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 7613 void CDataPathProperty::SetControl(COleControl *) 7614 void CReflectorWnd::SetControl(COleControl *) 7615 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 7616 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 7617 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 7618 int COleControl::SetControlSize(int,int) 7619 int COlePropertyPage::SetControlStatus(unsigned int,int) 7620 void CFileDialog::SetControlText(int,char const *) 7621 int CInternetSession::SetCookie(char const *,char const *,char const *) 7622 void CTabCtrl::SetCurFocus(int) 7623 void COleCurrency::SetCurrency(long,long) 7624 void CColorDialog::SetCurrentColor(unsigned long) 7625 int CFtpConnection::SetCurrentDirectoryA(char const *) 7626 void CWinApp::SetCurrentHandles() 7627 void CPreviewView::SetCurrentPage(unsigned int,int) 7628 int CComboBox::SetCurSel(int) 7629 int CListBox::SetCurSel(int) 7630 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 7631 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 7632 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 7633 int CTabCtrl::SetCurSel(int) 7634 HICON__ * CButton::SetCursor(HICON__ *) 7635 int CRectTracker::SetCursor(CWnd *,unsigned int)const 7636 HICON__ * CStatic::SetCursor(HICON__ *) 7637 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7638 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7639 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7640 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7641 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7642 int CMonthCalCtrl::SetDayState(int,unsigned long *) 7643 void COccManager::SetDefaultButton(CWnd *,int) 7644 void COleControlSite::SetDefaultButton(int) 7645 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 7646 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 7647 int CMenu::SetDefaultItem(unsigned int,int) 7648 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 7649 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 7650 void CFileDialog::SetDefExt(char const *) 7651 void CDialog::SetDefID(unsigned int) 7652 void CToolTipCtrl::SetDelayTime(unsigned int) 7653 void CToolTipCtrl::SetDelayTime(unsigned long,int) 7654 void CDumpContext::SetDepth(int) 7655 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 7656 void COlePropertyPage::SetDialogResource(void *) 7657 void CRecordset::SetDirtyFieldStatus(unsigned long) 7658 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 7659 int COleControlSite::SetDlgCtrlID(int) 7660 int CWnd::SetDlgCtrlID(int) 7661 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 7662 void CWnd::SetDlgItemInt(int,unsigned int,int) 7663 void COleControlContainer::SetDlgItemTextA(int,char const *) 7664 void CWnd::SetDlgItemTextA(int,char const *) 7665 void CFrameWnd::SetDockState(CDockState const &) 7666 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 7667 int CImageList::SetDragCursorImage(int,CPoint) 7668 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 7669 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 7670 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 7671 int CComboBox::SetDroppedWidth(unsigned int) 7672 void CDataBoundProperty::SetDSCSite(COleControlSite *) 7673 int CComboBox::SetEditSel(int,int) 7674 int CComboBoxEx::SetEditSel(int,int) 7675 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 7676 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 7677 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 7678 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 7679 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 7680 void COleControl::SetEnabled(int) 7681 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 7682 int CEvent::SetEvent() 7683 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 7684 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 7685 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 7686 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 7687 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 7688 int CComboBox::SetExtendedUI(int) 7689 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 7690 int COleControlSite::SetExtent() 7691 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 7692 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 7693 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 7694 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 7695 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 7696 void CRecordset::SetFieldDirty(void *,int) 7697 void CIPAddressCtrl::SetFieldFocus(unsigned short) 7698 void CRecordset::SetFieldNull(void *,int) 7699 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 7700 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 7701 void CFieldExchange::SetFieldType(unsigned int) 7702 void CFile::SetFilePath(char const *) 7703 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 7704 void CPropertySheet::SetFinishText(char const *) 7705 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 7706 CWnd * COleControl::SetFocus() 7707 CWnd * COleControlSite::SetFocus(tagMSG *) 7708 CWnd * COleControlSite::SetFocus() 7709 CWnd * CWnd::SetFocus() 7710 long COleControlSite::XOleIPSite::SetFocus(int) 7711 void CDHtmlDialog::SetFocusToElement(char const *) 7712 int CDialogTemplate::SetFont(char const *,unsigned short) 7713 void CFontHolder::SetFont(IFont *) 7714 void COleControl::SetFont(IFontDisp *) 7715 void CWnd::SetFont(CFont *,int) 7716 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 7717 void COleControl::SetForeColor(unsigned long) 7718 int CWnd::SetForegroundWindow() 7719 int CDateTimeCtrl::SetFormat(char const *) 7720 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 7721 void CPropertySection::SetFormatID(_GUID) 7722 void CPropertySet::SetFormatVersion(unsigned short) 7723 void CHtmlView::SetFullScreen(int) 7724 void CEdit::SetHandle(void *) 7725 void CSharedFile::SetHandle(void *,int) 7726 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 7727 void CHtmlView::SetHeight(long) 7728 void CToolBar::SetHeight(int) 7729 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 7730 void CDialog::SetHelpID(unsigned int) 7731 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 7732 void CComboBox::SetHorizontalExtent(unsigned int) 7733 void CListBox::SetHorizontalExtent(int) 7734 void CDHtmlDialog::SetHostFlags(unsigned long) 7735 void COleClientItem::SetHostNames(char const *,char const *) 7736 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7737 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7738 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7739 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7740 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 7741 int CHeaderCtrl::SetHotDivider(int) 7742 int CHeaderCtrl::SetHotDivider(CPoint) 7743 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 7744 int CListCtrl::SetHotItem(int) 7745 int CToolBarCtrl::SetHotItem(int) 7746 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 7747 unsigned long CListCtrl::SetHoverTime(unsigned long) 7748 HICON__ * CButton::SetIcon(HICON__ *) 7749 HICON__ * CStatic::SetIcon(HICON__ *) 7750 int CStatusBarCtrl::SetIcon(int,HICON__ *) 7751 HICON__ * CWnd::SetIcon(HICON__ *,int) 7752 int COleClientItem::SetIconicMetafile(void *) 7753 CSize CListCtrl::SetIconSpacing(int,int) 7754 CSize CListCtrl::SetIconSpacing(CSize) 7755 void CProperty::SetID(unsigned long) 7756 int CImageList::SetImageCount(unsigned int) 7757 CImageList * CComboBoxEx::SetImageList(CImageList *) 7758 CImageList * CHeaderCtrl::SetImageList(CImageList *) 7759 CImageList * CListCtrl::SetImageList(CImageList *,int) 7760 int CReBarCtrl::SetImageList(CImageList *) 7761 CImageList * CTabCtrl::SetImageList(CImageList *) 7762 CImageList * CToolBarCtrl::SetImageList(CImageList *) 7763 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 7764 int CToolBarCtrl::SetIndent(int) 7765 void CTreeCtrl::SetIndent(unsigned int) 7766 int CStatusBar::SetIndicators(unsigned int const *,int) 7767 void COleControl::SetInitialDataFormats() 7768 long CDocObjectServer::XPrint::SetInitialPageNum(long) 7769 void COleControl::SetInitialSize(int,int) 7770 void CControlBar::SetInPlaceOwner(CWnd *) 7771 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 7772 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 7773 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 7774 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 7775 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 7776 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 7777 int CHeaderCtrl::SetItem(int,_HD_ITEMA *) 7778 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 7779 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 7780 int CListCtrl::SetItem(tagLVITEMA const *) 7781 int CTabCtrl::SetItem(int,tagTCITEMA *) 7782 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 7783 int CTreeCtrl::SetItem(tagTVITEMA *) 7784 void CListCtrl::SetItemCount(int) 7785 int CListCtrl::SetItemCountEx(int,unsigned long) 7786 int CComboBox::SetItemData(int,unsigned long) 7787 int CListBox::SetItemData(int,unsigned long) 7788 int CListCtrl::SetItemData(int,unsigned long) 7789 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 7790 int CComboBox::SetItemDataPtr(int,void *) 7791 int CListBox::SetItemDataPtr(int,void *) 7792 int CTabCtrl::SetItemExtra(int) 7793 int CComboBox::SetItemHeight(int,unsigned int) 7794 int CListBox::SetItemHeight(int,unsigned int) 7795 short CTreeCtrl::SetItemHeight(short) 7796 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 7797 void COleServerItem::SetItemName(char const *) 7798 int CListCtrl::SetItemPosition(int,tagPOINT) 7799 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 7800 CSize CTabCtrl::SetItemSize(CSize) 7801 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 7802 int CListCtrl::SetItemState(int,tagLVITEMA *) 7803 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 7804 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 7805 int CListCtrl::SetItemText(int,int,char const *) 7806 int CTreeCtrl::SetItemText(_TREEITEM *,char const *) 7807 unsigned long CDC::SetLayout(unsigned long) 7808 void CHtmlView::SetLeft(long) 7809 void CFile::SetLength(unsigned __int64) 7810 void CInternetFile::SetLength(unsigned __int64) 7811 void CMemFile::SetLength(unsigned __int64) 7812 void COleStreamFile::SetLength(unsigned __int64) 7813 void CSocketFile::SetLength(unsigned __int64) 7814 void CEdit::SetLimitText(unsigned int) 7815 unsigned long CTreeCtrl::SetLineColor(unsigned long) 7816 int CSliderCtrl::SetLineSize(int) 7817 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 7818 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 7819 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 7820 void CArchive::SetLoadParams(unsigned int) 7821 unsigned long CComboBox::SetLocale(unsigned long) 7822 unsigned long CListBox::SetLocale(unsigned long) 7823 void CRecordset::SetLockingMode(unsigned int) 7824 void CDatabase::SetLoginTimeout(unsigned long) 7825 int CDC::SetMapMode(int) 7826 int CPreviewDC::SetMapMode(int) 7827 unsigned long CDC::SetMapperFlags(unsigned long) 7828 void CToolTipCtrl::SetMargin(tagRECT *) 7829 void CEdit::SetMargins(unsigned int,unsigned int) 7830 void CRichEditView::SetMargins(CRect const &) 7831 void CPrintInfo::SetMaxPage(unsigned int) 7832 int CMonthCalCtrl::SetMaxSelCount(int) 7833 int CToolBarCtrl::SetMaxTextRows(int) 7834 int CToolTipCtrl::SetMaxTipWidth(int) 7835 int CWnd::SetMenu(CMenu *) 7836 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 7837 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 7838 void CHtmlView::SetMenuBar(int) 7839 int CMenu::SetMenuContextHelpId(unsigned long) 7840 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 7841 int CMenu::SetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 7842 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 7843 void CFrameWnd::SetMessageText(unsigned int) 7844 void CFrameWnd::SetMessageText(char const *) 7845 void CStatusBarCtrl::SetMinHeight(int) 7846 void CPrintInfo::SetMinPage(unsigned int) 7847 int CTabCtrl::SetMinTabWidth(int) 7848 int CDC::SetMiterLimit(float) 7849 void CPropertyPage::SetModified(int) 7850 void CDocument::SetModifiedFlag(int) 7851 void COleControl::SetModifiedFlag(int) 7852 void COlePropertyPage::SetModifiedFlag(int) 7853 void CRichEditDoc::SetModifiedFlag(int) 7854 void CEdit::SetModify(int) 7855 void CRichEditCtrl::SetModify(int) 7856 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 7857 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 7858 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 7859 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 7860 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 7861 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 7862 int CMonthCalCtrl::SetMonthDelta(int) 7863 int CPropertySection::SetName(unsigned long,char const *) 7864 void COleControl::SetNotPermitted() 7865 void CCmdTarget::SetNotSupported() 7866 void COleControl::SetNotSupported() 7867 void CRecordset::SetNullFieldStatus(unsigned long) 7868 void CRecordset::SetNullParamStatus(unsigned long) 7869 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 7870 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 7871 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 7872 void CArchive::SetObjectSchema(unsigned int) 7873 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7874 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7875 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7876 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7877 void CHtmlView::SetOffline(int) 7878 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 7879 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 7880 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 7881 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 7882 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 7883 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 7884 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 7885 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 7886 int CHeaderCtrl::SetOrderArray(int,int *) 7887 void CPropertySet::SetOSVersion(unsigned long) 7888 void CDC::SetOutputDC(HDC__ *) 7889 void CMetaFileDC::SetOutputDC(HDC__ *) 7890 void CPreviewDC::SetOutputDC(HDC__ *) 7891 int CImageList::SetOverlayImage(int,int) 7892 CWnd * CReBarCtrl::SetOwner(CWnd *) 7893 void CToolBar::SetOwner(CWnd *) 7894 void CToolBarCtrl::SetOwner(CWnd *) 7895 void CWnd::SetOwner(CWnd *) 7896 void CTabCtrl::SetPadding(CSize) 7897 void COlePropertyPage::SetPageName(char const *) 7898 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 7899 int CSliderCtrl::SetPageSize(int) 7900 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 7901 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 7902 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 7903 void CStatusBar::SetPaneStyle(int,unsigned int) 7904 int CStatusBar::SetPaneText(int,char const *,int) 7905 void CRichEditView::SetPaperSize(CSize) 7906 int CRichEditCtrl::SetParaFormat(_paraformat &) 7907 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 7908 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 7909 void CRecordset::SetParamNull(int,int) 7910 CWnd * CWnd::SetParent(CWnd *) 7911 int CStatusBarCtrl::SetParts(int,int *) 7912 void CEdit::SetPasswordChar(char) 7913 void CDataPathProperty::SetPath(char const *) 7914 void CDocument::SetPathName(char const *,int) 7915 void COleDocument::SetPathName(char const *,int) 7916 void CRichEditDoc::SetPathName(char const *,int) 7917 void CHandleMap::SetPermanent(void *,CObject *) 7918 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 7919 unsigned long CDC::SetPixel(int,int,unsigned long) 7920 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 7921 int CDC::SetPixelV(int,int,unsigned long) 7922 int CDC::SetPixelV(tagPOINT,unsigned long) 7923 int CDC::SetPolyFillMode(int) 7924 int CProgressCtrl::SetPos(int) 7925 void CSliderCtrl::SetPos(int) 7926 int CSpinButtonCtrl::SetPos(int) 7927 int CSpinButtonCtrl::SetPos32(int) 7928 void COleIPFrameWnd::SetPreviewMode(int) 7929 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 7930 int COleClientItem::SetPrintDevice(tagPDA const *) 7931 void CEditView::SetPrinterFont(CFont *) 7932 int CPreviewView::SetPrintView(CView *) 7933 int COlePropertyPage::SetPropCheck(char const *,int) 7934 void COleControlSite::SetProperty(long,unsigned short,...) 7935 void COleDispatchDriver::SetProperty(long,unsigned short,...) 7936 void CWnd::SetProperty(long,unsigned short,...) 7937 void COleControlSite::SetPropertyV(long,unsigned short,char *) 7938 int COlePropertyPage::SetPropIndex(char const *,int) 7939 int COlePropertyPage::SetPropRadio(char const *,int) 7940 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 7941 int COlePropertyPage::SetPropText(char const *,unsigned char &) 7942 int COlePropertyPage::SetPropText(char const *,short &) 7943 int COlePropertyPage::SetPropText(char const *,int &) 7944 int COlePropertyPage::SetPropText(char const *,unsigned int &) 7945 int COlePropertyPage::SetPropText(char const *,long &) 7946 int COlePropertyPage::SetPropText(char const *,unsigned long &) 7947 int COlePropertyPage::SetPropText(char const *,float &) 7948 int COlePropertyPage::SetPropText(char const *,double &) 7949 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 7950 long CWnd::SetProxy(IAccessibleProxy *) 7951 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 7952 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 7953 void CDatabase::SetQueryTimeout(unsigned long) 7954 void CCmdUI::SetRadio(int) 7955 void CTestCmdUI::SetRadio(int) 7956 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 7957 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 7958 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 7959 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 7960 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 7961 void CProgressCtrl::SetRange(short,short) 7962 void CSliderCtrl::SetRange(int,int,int) 7963 void CSpinButtonCtrl::SetRange(short,short) 7964 void CProgressCtrl::SetRange32(int,int) 7965 void CSpinButtonCtrl::SetRange32(int,int) 7966 void CSliderCtrl::SetRangeMax(int,int) 7967 void CSliderCtrl::SetRangeMin(int,int) 7968 int CInternetFile::SetReadBufferSize(unsigned int) 7969 int CEdit::SetReadOnly(int) 7970 int CRichEditCtrl::SetReadOnly(int) 7971 void CEdit::SetRect(tagRECT const *) 7972 void CRichEditCtrl::SetRect(tagRECT const *) 7973 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 7974 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 7975 int COleControl::SetRectInContainer(tagRECT const *) 7976 void CEdit::SetRectNP(tagRECT const *) 7977 void CRgn::SetRectRgn(int,int,int,int) 7978 void CRgn::SetRectRgn(tagRECT const *) 7979 void CWnd::SetRedraw(int) 7980 void CHtmlView::SetRegisterAsBrowser(int) 7981 void CHtmlView::SetRegisterAsDropTarget(int) 7982 void CWinApp::SetRegistryKey(unsigned int) 7983 void CWinApp::SetRegistryKey(char const *) 7984 void COleMessageFilter::SetRetryReply(unsigned long) 7985 int CDC::SetROP2(int) 7986 void CSplitterWnd::SetRowInfo(int,int,int) 7987 void CToolBarCtrl::SetRows(int,int,tagRECT *) 7988 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 7989 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 7990 void CRecordset::SetRowsetSize(unsigned long) 7991 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 7992 void CPreviewView::SetScaledSize(unsigned int) 7993 void CPreviewDC::SetScaleRatio(int,int) 7994 void CScrollView::SetScaleToFitSize(tagSIZE) 7995 void CDockState::SetScreenSize(CSize &) 7996 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 7997 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 7998 int CScrollBar::SetScrollPos(int,int) 7999 int CWnd::SetScrollPos(int,int,int) 8000 void CScrollBar::SetScrollRange(int,int,int) 8001 void CWnd::SetScrollRange(int,int,int,int) 8002 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8003 void CSplitterWnd::SetScrollStyle(unsigned long) 8004 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8005 int CPropertySection::SetSectionName(char const *) 8006 void CEdit::SetSel(int,int,int) 8007 void CEdit::SetSel(unsigned long,int) 8008 int CListBox::SetSel(int,int) 8009 void CRichEditCtrl::SetSel(_charrange &) 8010 void CRichEditCtrl::SetSel(long,long) 8011 void CSliderCtrl::SetSelection(int,int) 8012 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 8013 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 8014 void CCheckListBox::SetSelectionCheck(int) 8015 int CListCtrl::SetSelectionMark(int) 8016 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8017 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8018 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8019 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8020 void CHtmlView::SetSilent(int) 8021 int CStatusBarCtrl::SetSimple(int) 8022 long CPrintDialogEx::SetSite(IUnknown *) 8023 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8024 void CByteArray::SetSize(int,int) 8025 void CDWordArray::SetSize(int,int) 8026 void CObArray::SetSize(int,int) 8027 void CPtrArray::SetSize(int,int) 8028 void CStringArray::SetSize(int,int) 8029 void CUIntArray::SetSize(int,int) 8030 void CWordArray::SetSize(int,int) 8031 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8032 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8033 void CSplitterWnd::SetSplitCursor(int) 8034 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8035 void CButton::SetState(int) 8036 void CRecordset::SetState(int,char const *,unsigned long) 8037 int CToolBarCtrl::SetState(int,unsigned int) 8038 void CFile::SetStatus(char const *,CFileStatus const &) 8039 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8040 void CHtmlView::SetStatusBar(int) 8041 int CControlBar::SetStatusText(int) 8042 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8043 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8044 int CProgressCtrl::SetStep(int) 8045 void CArchive::SetStoreParams(unsigned int,unsigned int) 8046 int CDC::SetStretchBltMode(int) 8047 void COleVariant::SetString(char const *,unsigned short) 8048 void CToolBarCtrl::SetStyle(unsigned long) 8049 void CDatabase::SetSynchronousMode(int) 8050 int CDialogTemplate::SetSystemFont(unsigned short) 8051 int CEdit::SetTabStops(int const &) 8052 int CEdit::SetTabStops(int,int *) 8053 void CEdit::SetTabStops() 8054 void CEditView::SetTabStops(int) 8055 int CListBox::SetTabStops(int const &) 8056 int CListBox::SetTabStops(int,int *) 8057 void CListBox::SetTabStops() 8058 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8059 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8060 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8061 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8062 void CFileDialog::SetTemplate(char const *,char const *) 8063 void CCmdUI::SetText(char const *) 8064 void COleCmdUI::SetText(char const *) 8065 void COleControl::SetText(char const *) 8066 int CStatusBarCtrl::SetText(char const *,int,int) 8067 void CStatusCmdUI::SetText(char const *) 8068 void CTestCmdUI::SetText(char const *) 8069 void CToolCmdUI::SetText(char const *) 8070 unsigned int CDC::SetTextAlign(unsigned int) 8071 int CListCtrl::SetTextBkColor(unsigned long) 8072 int CDC::SetTextCharacterExtra(int) 8073 unsigned long CDC::SetTextColor(unsigned long) 8074 int CListCtrl::SetTextColor(unsigned long) 8075 unsigned long CPreviewDC::SetTextColor(unsigned long) 8076 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8077 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8078 int CDC::SetTextJustification(int,int) 8079 int CRichEditCtrl::SetTextMode(unsigned int) 8080 void CHtmlView::SetTheaterMode(int) 8081 int CWinThread::SetThreadPriority(int) 8082 int CSliderCtrl::SetTic(int) 8083 void CSliderCtrl::SetTicFreq(int) 8084 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8085 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8086 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8087 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8088 void CToolTipCtrl::SetTipBkColor(unsigned long) 8089 int CSliderCtrl::SetTipSide(int) 8090 void CStatusBarCtrl::SetTipText(int,char const *) 8091 void CToolTipCtrl::SetTipTextColor(unsigned long) 8092 void CDocument::SetTitle(char const *) 8093 void CFrameWnd::SetTitle(char const *) 8094 void CPropertySheet::SetTitle(char const *,unsigned int) 8095 void CRichEditDoc::SetTitle(char const *) 8096 int CToolTipCtrl::SetTitle(unsigned int,char const *) 8097 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8098 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8099 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8100 void CHtmlView::SetToolBar(int) 8101 void CToolTipCtrl::SetToolInfo(tagTOOLINFOA *) 8102 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8103 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8104 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8105 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8106 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8107 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8108 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8109 void CHtmlView::SetTop(long) 8110 int CComboBox::SetTopIndex(int) 8111 int CListBox::SetTopIndex(int) 8112 void CPreviewDC::SetTopLeftOffset(CSize) 8113 void CProperty::SetType(unsigned long) 8114 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8115 void CRecordset::SetUpdateMethod() 8116 void CThreadSlotData::SetValue(int,void *) 8117 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8118 CSize CDC::SetViewportExt(tagSIZE) 8119 CSize CDC::SetViewportExt(int,int) 8120 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8121 CSize CMetaFileDC::SetViewportExt(int,int) 8122 CSize CPreviewDC::SetViewportExt(int,int) 8123 CPoint CDC::SetViewportOrg(tagPOINT) 8124 CPoint CDC::SetViewportOrg(int,int) 8125 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8126 CPoint CMetaFileDC::SetViewportOrg(int,int) 8127 CPoint CPreviewDC::SetViewportOrg(int,int) 8128 void CHtmlView::SetVisible(int) 8129 void CHtmlView::SetWidth(long) 8130 int CWnd::SetWindowContextHelpId(unsigned long) 8131 CSize CDC::SetWindowExt(tagSIZE) 8132 CSize CDC::SetWindowExt(int,int) 8133 CSize CPreviewDC::SetWindowExt(int,int) 8134 CPoint CDC::SetWindowOrg(int,int) 8135 CPoint CDC::SetWindowOrg(tagPOINT) 8136 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 8137 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8138 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8139 int CWnd::SetWindowRgn(HRGN__ *,int) 8140 void COleControlSite::SetWindowTextA(char const *) 8141 void CWnd::SetWindowTextA(char const *) 8142 void CPropertySheet::SetWizardButtons(unsigned long) 8143 void CPropertySheet::SetWizardMode() 8144 int CRichEditCtrl::SetWordCharFormat(_charformat &) 8145 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 8146 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 8147 void CListCtrl::SetWorkAreas(int,tagRECT *) 8148 int CInternetFile::SetWriteBufferSize(unsigned int) 8149 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 8150 long CDocObjectServer::XOleDocumentView::Show(int) 8151 long COlePropertyPage::XPropertyPage::Show(unsigned int) 8152 void CDockBar::ShowAll(int) 8153 int CReBarCtrl::ShowBand(unsigned int,int) 8154 void CWnd::ShowCaret() 8155 long CRichEditCntrItem::ShowContainerUI(int) 8156 long CRichEditView::ShowContainerUI(int) 8157 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 8158 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8159 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8160 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8161 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 8162 void CComboBox::ShowDropDown(int) 8163 long COleClientItem::XOleClientSite::ShowObject() 8164 long COleControlSite::XOleClientSite::ShowObject() 8165 void CWnd::ShowOwnedPopups(int) 8166 void CFrameWnd::ShowOwnedWindows(int) 8167 long COleControlSite::XOleControlSite::ShowPropertyFrame() 8168 void CScrollBar::ShowScrollBar(int) 8169 void CWnd::ShowScrollBar(unsigned int,int) 8170 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8171 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8172 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8173 int COleControlSite::ShowWindow(int) 8174 int CWnd::ShowWindow(int) 8175 int CAsyncSocket::ShutDown(int) 8176 tagSIZE const CScrollView::sizeDefault 8177 int CMonthCalCtrl::SizeMinReq(int) 8178 void CBitmapButton::SizeToContent() 8179 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 8180 int CReBarCtrl::SizeToRect(CRect &) 8181 long CEnumArray::XEnumVOID::Skip(unsigned long) 8182 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 8183 int CAsyncSocket::Socket(int,long,int,int) 8184 int CTreeCtrl::SortChildren(_TREEITEM *) 8185 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 8186 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 8187 int CSplitterWnd::SplitColumn(int) 8188 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 8189 int CSplitterWnd::SplitRow(int) 8190 int CDC::StartDocA(_DOCINFOA *) 8191 int CDC::StartDocA(char const *) 8192 void CDockContext::StartDrag(CPoint) 8193 int CDC::StartPage() 8194 void CDockContext::StartResize(int,CPoint) 8195 void CSplitterWnd::StartTracking(int) 8196 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 8197 int CProgressCtrl::StepIt() 8198 int CAnimateCtrl::Stop() 8199 void CHtmlView::Stop() 8200 void CRichEditCtrl::StopGroupTyping() 8201 void CSplitterWnd::StopTracking(int) 8202 void CRuntimeClass::Store(CArchive &)const 8203 void CRecordset::StoreFields() 8204 void CRichEditView::Stream(CArchive &,int) 8205 long CRichEditCtrl::StreamIn(int,_editstream &) 8206 long CRichEditCtrl::StreamOut(int,_editstream &) 8207 void CDockContext::Stretch(CPoint) 8208 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 8209 int CDC::StrokeAndFillPath() 8210 int CDC::StrokePath() 8211 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 8212 int CWnd::SubclassWindow(HWND__ *) 8213 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 8214 int COleDocObjectItem::SupportsIPrint() 8215 unsigned long CWinThread::SuspendThread() 8216 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8217 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8218 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 8219 CSize CDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 8220 CSize CDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8221 CSize CMetaFileDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 8222 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8223 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8224 void CRichEditView::TextNotFound(char const *) 8225 int CDC::TextOutA(int,int,ATL::CStringT > > const &) 8226 int CDC::TextOutA(int,int,char const *,int) 8227 int CMetaFileDC::TextOutA(int,int,ATL::CStringT > > const &) 8228 int CMetaFileDC::TextOutA(int,int,char const *,int) 8229 int CPreviewDC::TextOutA(int,int,char const *,int) 8230 void CDatabase::ThrowDBException(short) 8231 void CRecordset::ThrowDBException(short,void *) 8232 void CFileException::ThrowErrno(int,char const *) 8233 void COleControl::ThrowError(long,unsigned int,unsigned int) 8234 void COleControl::ThrowError(long,char const *,unsigned int) 8235 void CFileException::ThrowOsError(long,char const *) 8236 void CDockContext::ToggleDocking() 8237 COleVariant CDataSourceControl::ToVariant(int) 8238 ATL::CTraceCategory traceAppMsg 8239 ATL::CTraceCategory traceCmdRouting 8240 ATL::CTraceCategory traceDatabase 8241 ATL::CTraceCategory traceDumpContext 8242 void CDBException::TraceErrorMessage(char const *)const 8243 ATL::CTraceCategory traceGdi 8244 ATL::CTraceCategory traceHtml 8245 ATL::CTraceCategory traceInternet 8246 ATL::CTraceCategory traceKernel 8247 ATL::CTraceCategory traceMemory 8248 ATL::CTraceCategory traceMultiApp 8249 ATL::CTraceCategory traceOle 8250 ATL::CTraceCategory traceSocket 8251 ATL::CTraceCategory traceUser 8252 ATL::CTraceCategory traceWinMsg 8253 int CDockContext::Track() 8254 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 8255 void CSplitterWnd::TrackColumnSize(int,int) 8256 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 8257 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 8258 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 8259 void CSplitterWnd::TrackRowSize(int,int) 8260 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 8261 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8262 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8263 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8264 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8265 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8266 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 8267 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 8268 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 8269 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 8270 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 8271 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 8272 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 8273 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8274 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8275 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8276 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 8277 long CDocObjectServer::XOleDocumentView::UIActivate(int) 8278 void COccManager::UIActivateControl(CWnd *) 8279 long COleControl::XOleInPlaceObject::UIDeactivate() 8280 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 8281 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 8282 void COleSafeArray::UnaccessData() 8283 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 8284 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 8285 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 8286 long COleControl::XOleObject::Unadvise(unsigned long) 8287 long COleServerDoc::XOleObject::Unadvise(unsigned long) 8288 long COleServerItem::XOleObject::Unadvise(unsigned long) 8289 void CRecordset::UnbindFieldsForUpdate() 8290 long COleControl::XOleCache::Uncache(unsigned long) 8291 int CEdit::Undo() 8292 int CRichEditCtrl::Undo() 8293 long COleControl::XViewObject::Unfreeze(unsigned long) 8294 int CCriticalSection::Unlock() 8295 int CEvent::Unlock() 8296 int CMultiLock::Unlock(long,long *) 8297 int CMultiLock::Unlock() 8298 int CMutex::Unlock() 8299 void COleSafeArray::Unlock() 8300 int CSemaphore::Unlock(long,long *) 8301 int CSemaphore::Unlock() 8302 int CSingleLock::Unlock(long,long *) 8303 int CSingleLock::Unlock() 8304 void CTypeLibCache::Unlock() 8305 void CEditView::UnlockBuffer()const 8306 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 8307 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 8308 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 8309 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 8310 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 8311 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 8312 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 8313 void CWnd::UnlockWindowUpdate() 8314 int CGdiObject::UnrealizeObject() 8315 int COleObjectFactory::Unregister() 8316 int COleTemplateServer::Unregister() 8317 int CWinApp::Unregister() 8318 int COleObjectFactory::UnregisterAll() 8319 void CDocManager::UnregisterShellFileTypes() 8320 void CWinApp::UnregisterShellFileTypes() 8321 HWND__ * CWnd::UnsubclassWindow() 8322 int CListCtrl::Update(int) 8323 int CRecordset::Update() 8324 void CToolTipCtrl::Update() 8325 long CDocObjectServer::XOleObject::Update() 8326 long COleControl::XOleObject::Update() 8327 long COleServerDoc::XOleObject::Update() 8328 long COleServerItem::XOleObject::Update() 8329 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 8330 void CStatusBar::UpdateAllPanes(int,int) 8331 void CDocument::UpdateAllViews(CView *,long,CObject *) 8332 void CScrollView::UpdateBars() 8333 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 8334 void CDC::UpdateColors() 8335 long CDataSourceControl::UpdateControls() 8336 long CDataSourceControl::UpdateCursor() 8337 void CMemoryState::UpdateData() 8338 int CWnd::UpdateData(int) 8339 void CWnd::UpdateDialogControls(CCmdTarget *,int) 8340 void CDocument::UpdateFrameCounts() 8341 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 8342 int CRecordset::UpdateInsertDelete() 8343 void COleClientItem::UpdateItemType() 8344 int COleClientItem::UpdateLink() 8345 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 8346 void CRecentFileList::UpdateMenu(CCmdUI *) 8347 void COleDocument::UpdateModifiedFlag() 8348 void CRichEditDoc::UpdateModifiedFlag() 8349 void CRichEditDoc::UpdateObjectCache() 8350 void CWinApp::UpdatePrinterSelection(int) 8351 int COleObjectFactory::UpdateRegistry(int) 8352 void COleObjectFactory::UpdateRegistry(char const *) 8353 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 8354 int COleObjectFactory::UpdateRegistryAll(int) 8355 void CDockContext::UpdateState(int *,int) 8356 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 8357 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 8358 long CBrowserControlSite::UpdateUI() 8359 long CDHtmlDialog::UpdateUI() 8360 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 8361 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 8362 void COleLinkingDoc::UpdateVisibleLock(int,int) 8363 void CWnd::UpdateWindow() 8364 void CWnd::ValidateRect(tagRECT const *) 8365 void CWnd::ValidateRgn(CRgn *) 8366 void CDatabase::VerifyConnect() 8367 unsigned long CRecordset::VerifyCursorSupport() 8368 void CRecordset::VerifyDriverBehavior() 8369 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 8370 int COleObjectFactory::VerifyUserLicense() 8371 int CListBox::VKeyToItem(unsigned int,unsigned int) 8372 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 8373 int CDC::WidenPath() 8374 int COleControl::WillAmbientsBeValidDuringLoad() 8375 CWnd * CWnd::WindowFromPoint(tagPOINT) 8376 long CControlBar::WindowProc(unsigned int,unsigned int,long) 8377 long COleControl::WindowProc(unsigned int,unsigned int,long) 8378 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 8379 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 8380 long CReBar::WindowProc(unsigned int,unsigned int,long) 8381 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 8382 long CWnd::WindowProc(unsigned int,unsigned int,long) 8383 void CWinApp::WinHelpA(unsigned long,unsigned int) 8384 void CWnd::WinHelpA(unsigned long,unsigned int) 8385 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 8386 void CWnd::WinHelpInternal(unsigned long,unsigned int) 8387 CWnd const CWnd::wndBottom 8388 CWnd const CWnd::wndNoTopMost 8389 CWnd const CWnd::wndTop 8390 CWnd const CWnd::wndTopMost 8391 void CRichEditView::WrapChanged() 8392 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 8393 void CArchive::Write(void const *,unsigned int) 8394 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 8395 void CFile::Write(void const *,unsigned int) 8396 void CGopherFile::Write(void const *,unsigned int) 8397 int CImageList::Write(CArchive *) 8398 void CInternetFile::Write(void const *,unsigned int) 8399 void CMemFile::Write(void const *,unsigned int) 8400 void COleStreamFile::Write(void const *,unsigned int) 8401 void CSocketFile::Write(void const *,unsigned int) 8402 void CStdioFile::Write(void const *,unsigned int) 8403 void CArchive::WriteClass(CRuntimeconst *) 8404 void CArchive::WriteCount(unsigned long) 8405 void COleClientItem::WriteItem(CArchive &) 8406 void COleClientItem::WriteItemCompound(CArchive &) 8407 void COleClientItem::WriteItemFlat(CArchive &) 8408 void CRecentFileList::WriteList() 8409 int CPropertySection::WriteNameDictToStream(IStream *) 8410 void CArchive::WriteObject(CObject const *) 8411 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 8412 int CWinApp::WriteProfileInt(char const *,char const *,int) 8413 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 8414 void CArchive::WriteString(char const *) 8415 void CGopherFile::WriteString(char const *) 8416 void CInternetFile::WriteString(char const *) 8417 void CStdioFile::WriteString(char const *) 8418 void CEditView::WriteToArchive(CArchive &) 8419 int CProperty::WriteToStream(IStream *) 8420 int CPropertySection::WriteToStream(IStream *) 8421 int CPropertySet::WriteToStream(IStream *) 8422 long ATL::AtlIAccessibleGetIDsOfNamesHelper(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 8423 long ATL::AtlIAccessibleInvokeHelper(IAccessible *,long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 8424 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 8425 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 8426 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 8427 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 8428 int AfxInitRichEdit2() 8429 enum AFX_HELP_TYPE CWinApp::GetHelpMode() 8430 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 8431 _AFX_DAO_STATE::_AFX_DAO_STATE() 8432 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 8433 CDaoException::CDaoException() 8434 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 8435 CDaoIndexInfo::CDaoIndexInfo() 8436 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 8437 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 8438 CDaoRecordView::CDaoRecordView(unsigned int) 8439 CDaoRecordView::CDaoRecordView(char const *) 8440 CDaoRelationInfo::CDaoRelationInfo() 8441 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 8442 CDaoWorkspace::CDaoWorkspace() 8443 _AFX_DAO_STATE::~_AFX_DAO_STATE() 8444 CDaoDatabase::~CDaoDatabase() 8445 CDaoException::~CDaoException() 8446 CDaoIndexInfo::~CDaoIndexInfo() 8447 CDaoQueryDef::~CDaoQueryDef() 8448 CDaoRecordset::~CDaoRecordset() 8449 CDaoRecordView::~CDaoRecordView() 8450 CDaoRelationInfo::~CDaoRelationInfo() 8451 CDaoTableDef::~CDaoTableDef() 8452 CDaoWorkspace::~CDaoWorkspace() 8453 void CDaoRecordset::AddNew() 8454 void AfxDaoCheck(long,char const *,char const *,int,int,int) 8455 _DAODBEngine * AfxDaoGetEngine() 8456 void AfxDaoInit() 8457 void AfxDaoTerm() 8458 void AfxDaoTrace(long,char const *,char const *,int) 8459 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 8460 _AFX_DAO_STATE * AfxGetDaoState() 8461 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 8462 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 8463 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8464 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 8465 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 8466 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 8467 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 8468 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8469 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 8470 void AfxThrowDaoException(int,long) 8471 void CDaoRecordset::AllocCache() 8472 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 8473 void CDaoRecordset::AllocDatabase() 8474 void AllocLongBinary(CLongBinary &,unsigned long) 8475 void CDaoQueryDef::Append() 8476 void CDaoTableDef::Append() 8477 void CDaoWorkspace::Append() 8478 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 8479 void CDaoDatabase::AssertValid()const 8480 void CDaoQueryDef::AssertValid()const 8481 void CDaoRecordset::AssertValid()const 8482 void CDaoRecordView::AssertValid()const 8483 void CDaoTableDef::AssertValid()const 8484 void CDaoWorkspace::AssertValid()const 8485 void CDaoWorkspace::BeginTrans() 8486 void CDaoRecordset::BindFields() 8487 void CDaoRecordset::BindParameters() 8488 void CDaoRecordset::BuildParameterList() 8489 void CDaoRecordset::BuildSelectList() 8490 void CDaoRecordset::BuildSQL() 8491 int CDaoRecordset::CanAppend()const 8492 int CDaoRecordset::CanBookmark() 8493 void CDaoRecordset::CancelUpdate() 8494 int CDaoRecordset::CanRestart() 8495 int CDaoRecordset::CanScroll()const 8496 int CDaoDatabase::CanTransact() 8497 int CDaoRecordset::CanTransact() 8498 int CDaoDatabase::CanUpdate() 8499 int CDaoQueryDef::CanUpdate() 8500 int CDaoRecordset::CanUpdate()const 8501 int CDaoTableDef::CanUpdate() 8502 CRuntimeconst CDaoDatabase::classCDaoDatabase 8503 CRuntimeconst CDaoException::classCDaoException 8504 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 8505 CRuntimeconst CDaoRecordset::classCDaoRecordset 8506 CRuntimeconst CDaoRecordView::classCDaoRecordView 8507 CRuntimeconst CDaoTableDef::classCDaoTableDef 8508 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 8509 CRuntimeconst CDatabase::classCDatabase 8510 CRuntimeconst CDBException::classCDBException 8511 CRuntimeconst CLongBinary::classCLongBinary 8512 CRuntimeconst COleDBRecordView::classCOleDBRecordView 8513 CRuntimeconst CRecordset::classCRecordset 8514 CRuntimeconst CRecordView::classCRecordView 8515 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 8516 void CDaoRecordset::ClearFieldStatusFlags() 8517 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 8518 void CDaoDatabase::Close() 8519 void CDaoQueryDef::Close() 8520 void CDaoRecordset::Close() 8521 void CDaoTableDef::Close() 8522 void CDaoWorkspace::Close() 8523 void CDaoWorkspace::CommitTrans() 8524 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 8525 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 8526 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 8527 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 8528 void CDaoDatabase::Create(char const *,char const *,int) 8529 void CDaoQueryDef::Create(char const *,char const *) 8530 void CDaoTableDef::Create(char const *,long,char const *,char const *) 8531 void CDaoWorkspace::Create(char const *,char const *,char const *) 8532 void CDaoTableDef::CreateField(CDaoFieldInfo &) 8533 void CDaoTableDef::CreateField(char const *,short,long,long) 8534 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 8535 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 8536 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 8537 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8538 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8539 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8540 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 8541 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8542 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8543 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8544 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 8545 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 8546 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 8547 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 8548 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 8549 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 8550 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 8551 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 8552 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 8553 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 8554 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8555 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 8556 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 8557 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 8558 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 8559 void CDaoRecordset::Delete() 8560 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 8561 void CDaoTableDef::DeleteField(int) 8562 void CDaoTableDef::DeleteField(char const *) 8563 void CDaoTableDef::DeleteIndex(int) 8564 void CDaoTableDef::DeleteIndex(char const *) 8565 void CDaoDatabase::DeleteQueryDef(char const *) 8566 void CDaoDatabase::DeleteRelation(char const *) 8567 void CDaoDatabase::DeleteTableDef(char const *) 8568 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 8569 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 8570 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 8571 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 8572 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 8573 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 8574 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 8575 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 8576 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 8577 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 8578 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 8579 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 8580 void CDaoDatabase::Dump(CDumpContext &)const 8581 void CDaoDatabaseInfo::Dump(CDumpContext &)const 8582 void CDaoErrorInfo::Dump(CDumpContext &)const 8583 void CDaoFieldInfo::Dump(CDumpContext &)const 8584 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 8585 void CDaoIndexInfo::Dump(CDumpContext &)const 8586 void CDaoParameterInfo::Dump(CDumpContext &)const 8587 void CDaoQueryDef::Dump(CDumpContext &)const 8588 void CDaoQueryDefInfo::Dump(CDumpContext &)const 8589 void CDaoRecordset::Dump(CDumpContext &)const 8590 void CDaoRecordView::Dump(CDumpContext &)const 8591 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 8592 void CDaoRelationInfo::Dump(CDumpContext &)const 8593 void CDaoTableDef::Dump(CDumpContext &)const 8594 void CDaoTableDefInfo::Dump(CDumpContext &)const 8595 void CDaoWorkspace::Dump(CDumpContext &)const 8596 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 8597 void CDaoRecordset::Edit() 8598 void CDaoDatabase::Execute(char const *,int) 8599 void CDaoQueryDef::Execute(int) 8600 void CDaoRecordset::FillCache(long *,COleVariant *) 8601 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 8602 void CDaoException::FillErrorInfo() 8603 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 8604 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 8605 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 8606 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 8607 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 8608 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 8609 int CDaoRecordset::Find(long,char const *) 8610 int CDaoRecordset::FindFirst(char const *) 8611 int CDaoRecordset::FindLast(char const *) 8612 int CDaoRecordset::FindNext(char const *) 8613 int CDaoRecordset::FindPrev(char const *) 8614 void CDaoRecordset::Fixup() 8615 void CDaoRecordset::FreeCache() 8616 long CDaoRecordset::GetAbsolutePosition() 8617 long CDaoTableDef::GetAttributes() 8618 COleVariant CDaoRecordset::GetBookmark() 8619 long CDaoRecordset::GetCacheSize() 8620 COleVariant CDaoRecordset::GetCacheStart() 8621 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 8622 ATL::CStringT > > CDaoDatabase::GetConnect() 8623 ATL::CStringT > > CDaoQueryDef::GetConnect() 8624 ATL::CStringT > > CDaoTableDef::GetConnect() 8625 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 8626 void CDaoRecordset::GetDataAndFixupNulls() 8627 short CDaoWorkspace::GetDatabaseCount() 8628 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 8629 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 8630 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 8631 ATL::COleDateTime CDaoRecordset::GetDateCreated() 8632 ATL::COleDateTime CDaoTableDef::GetDateCreated() 8633 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 8634 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 8635 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 8636 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 8637 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 8638 short CDaoRecordset::GetEditMode() 8639 short CDaoException::GetErrorCount() 8640 void CDaoException::GetErrorInfo(int) 8641 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *) 8642 short CDaoQueryDef::GetFieldCount() 8643 short CDaoRecordset::GetFieldCount() 8644 short CDaoTableDef::GetFieldCount() 8645 int CDaoRecordset::GetFieldIndex(void *) 8646 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8647 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8648 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8649 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8650 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8651 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8652 unsigned long CDaoRecordset::GetFieldLength(int) 8653 COleVariant CDaoRecordset::GetFieldValue(int) 8654 COleVariant CDaoRecordset::GetFieldValue(char const *) 8655 void CDaoRecordset::GetFieldValue(int,COleVariant &) 8656 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 8657 short CDaoRecordset::GetIndexCount() 8658 short CDaoTableDef::GetIndexCount() 8659 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8660 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 8661 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8662 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 8663 ATL::CStringT > > CDaoWorkspace::GetIniPath() 8664 int CDaoWorkspace::GetIsolateODBCTrans() 8665 COleVariant CDaoRecordset::GetLastModifiedBookmark() 8666 int CDaoRecordset::GetLockingMode() 8667 short CDaoWorkspace::GetLoginTimeout() 8668 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 8669 ATL::CStringT > > CDaoDatabase::GetName() 8670 ATL::CStringT > > CDaoQueryDef::GetName() 8671 ATL::CStringT > > CDaoRecordset::GetName() 8672 ATL::CStringT > > CDaoTableDef::GetName() 8673 ATL::CStringT > > CDaoWorkspace::GetName() 8674 short CDaoQueryDef::GetODBCTimeout() 8675 short CDaoQueryDef::GetParameterCount() 8676 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 8677 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 8678 COleVariant CDaoQueryDef::GetParamValue(int) 8679 COleVariant CDaoQueryDef::GetParamValue(char const *) 8680 COleVariant CDaoRecordset::GetParamValue(int) 8681 COleVariant CDaoRecordset::GetParamValue(char const *) 8682 float CDaoRecordset::GetPercentPosition() 8683 short CDaoDatabase::GetQueryDefCount() 8684 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 8685 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 8686 short CDaoDatabase::GetQueryTimeout() 8687 long CDaoRecordset::GetRecordCount() 8688 long CDaoTableDef::GetRecordCount() 8689 long CDaoDatabase::GetRecordsAffected() 8690 long CDaoQueryDef::GetRecordsAffected() 8691 short CDaoDatabase::GetRelationCount() 8692 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 8693 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 8694 int CDaoQueryDef::GetReturnsRecords() 8695 CRuntime* CDaoDatabase::GetRuntimeClass()const 8696 CRuntime* CDaoException::GetRuntimeClass()const 8697 CRuntime* CDaoQueryDef::GetRuntimeClass()const 8698 CRuntime* CDaoRecordset::GetRuntimeClass()const 8699 CRuntime* CDaoRecordView::GetRuntimeClass()const 8700 CRuntime* CDaoTableDef::GetRuntimeClass()const 8701 CRuntime* CDaoWorkspace::GetRuntimeClass()const 8702 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 8703 ATL::CStringT > > CDaoQueryDef::GetSQL() 8704 ATL::CStringT > > CDaoRecordset::GetSQL()const 8705 short CDaoDatabase::GetTableDefCount() 8706 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 8707 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 8708 CRuntime* CDaoDatabase::GetThisClass() 8709 CRuntime* CDaoException::GetThisClass() 8710 CRuntime* CDaoQueryDef::GetThisClass() 8711 CRuntime* CDaoRecordset::GetThisClass() 8712 CRuntime* CDaoRecordView::GetThisClass() 8713 CRuntime* CDaoTableDef::GetThisClass() 8714 CRuntime* CDaoWorkspace::GetThisClass() 8715 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 8716 short CDaoQueryDef::GetType() 8717 short CDaoRecordset::GetType() 8718 ATL::CStringT > > CDaoWorkspace::GetUserNameA() 8719 ATL::CStringT > > CDaoRecordset::GetValidationRule() 8720 ATL::CStringT > > CDaoTableDef::GetValidationRule() 8721 ATL::CStringT > > CDaoRecordset::GetValidationText() 8722 ATL::CStringT > > CDaoTableDef::GetValidationText() 8723 ATL::CStringT > > CDaoDatabase::GetVersion() 8724 ATL::CStringT > > CDaoWorkspace::GetVersion() 8725 short CDaoWorkspace::GetWorkspaceCount() 8726 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 8727 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 8728 void CDaoWorkspace::Idle(int) 8729 void CDaoWorkspace::InitDatabasesCollection() 8730 void CDaoException::InitErrorsCollection() 8731 void CDaoQueryDef::InitFieldsCollection() 8732 void CDaoRecordset::InitFieldsCollection() 8733 void CDaoTableDef::InitFieldsCollection() 8734 void CDaoWorkspace::InitializeEngine() 8735 void CDaoRecordset::InitIndexesCollection() 8736 void CDaoTableDef::InitIndexesCollection() 8737 void CDaoQueryDef::InitParametersCollection() 8738 void CDaoDatabase::InitQueryDefsCollection() 8739 void CDaoDatabase::InitRelationsCollection() 8740 void CDaoDatabase::InitTableDefsCollection() 8741 void CDaoDatabase::InitWorkspace() 8742 void CDaoWorkspace::InitWorkspacesCollection() 8743 int CDaoRecordset::IsBOF()const 8744 int CDaoRecordset::IsDeleted()const 8745 int CDaoRecordset::IsEOF()const 8746 int CDaoRecordset::IsFieldDirty(void *) 8747 int CDaoRecordset::IsFieldNull(void *) 8748 int CDaoRecordset::IsFieldNullable(void *) 8749 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 8750 int CDaoRecordset::IsFieldStatusNull(unsigned int) 8751 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 8752 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 8753 int CDaoRecordset::IsMatch() 8754 int CDaoWorkspace::IsNew()const 8755 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 8756 int CDaoRecordView::IsOnFirstRecord() 8757 int CDaoRecordView::IsOnLastRecord() 8758 int CDaoDatabase::IsOpen()const 8759 int CDaoQueryDef::IsOpen()const 8760 int CDaoRecordset::IsOpen()const 8761 int CDaoTableDef::IsOpen()const 8762 int CDaoWorkspace::IsOpen()const 8763 int CDaoFieldExchange::IsValidOperation() 8764 void CDaoRecordset::LoadFields() 8765 void CDaoRecordset::MarkForAddNew() 8766 void CDaoRecordset::MarkForEdit() 8767 AFX_MSGMAP const CDaoRecordView::messageMap 8768 AFX_MSGMAP const COleDBRecordView::messageMap 8769 AFX_MSGMAP const CRecordView::messageMap 8770 void CDaoRecordset::Move(long) 8771 void CDaoRecordset::MoveFirst() 8772 void CDaoRecordset::MoveLast() 8773 void CDaoRecordset::MoveNext() 8774 void CDaoRecordset::MovePrev() 8775 void CDaoRecordView::OnInitialUpdate() 8776 void CDaoRecordView::OnMove(int,int) 8777 int CDaoRecordView::OnMove(unsigned int) 8778 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 8779 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 8780 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 8781 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 8782 void CDaoDatabase::Open(char const *,int,int,char const *) 8783 void CDaoQueryDef::Open(char const *) 8784 void CDaoRecordset::Open(int,char const *,int) 8785 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 8786 void CDaoRecordset::Open(CDaoTableDef *,int,int) 8787 void CDaoTableDef::Open(char const *) 8788 void CDaoWorkspace::Open(char const *) 8789 void CDaoTableDef::RefreshLink() 8790 void CDaoWorkspace::RepairDatabase(char const *) 8791 void CDaoRecordset::Requery() 8792 void CDaoWorkspace::Rollback() 8793 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 8794 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 8795 void CDaoRecordset::SetAbsolutePosition(long) 8796 void CDaoTableDef::SetAttributes(long) 8797 void CDaoRecordset::SetBookmark(COleVariant) 8798 void CDaoRecordset::SetCacheSize(long) 8799 void CDaoRecordset::SetCacheStart(COleVariant) 8800 void CDaoQueryDef::SetConnect(char const *) 8801 void CDaoTableDef::SetConnect(char const *) 8802 void CDaoRecordset::SetCurrentIndex(char const *) 8803 void CDaoRecordset::SetCursorAttributes() 8804 void CDaoWorkspace::SetDefaultPassword(char const *) 8805 void CDaoWorkspace::SetDefaultUser(char const *) 8806 void CDaoRecordset::SetDirtyFields() 8807 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 8808 void CDaoRecordset::SetFieldDirty(void *,int) 8809 void CDaoRecordset::SetFieldNull(void *,int) 8810 void CDaoFieldExchange::SetFieldType(unsigned int) 8811 void CDaoRecordset::SetFieldValue(int,char const *) 8812 void CDaoRecordset::SetFieldValue(char const *,char const *) 8813 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 8814 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 8815 void CDaoRecordset::SetFieldValueNull(int) 8816 void CDaoRecordset::SetFieldValueNull(char const *) 8817 void CDaoWorkspace::SetIniPath(char const *) 8818 void CDaoWorkspace::SetIsolateODBCTrans(int) 8819 void CDaoRecordset::SetLockingMode(int) 8820 void CDaoWorkspace::SetLoginTimeout(short) 8821 void CDaoQueryDef::SetName(char const *) 8822 void CDaoTableDef::SetName(char const *) 8823 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 8824 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 8825 void CDaoRecordset::SetNullFieldStatus(unsigned int) 8826 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 8827 void CDaoQueryDef::SetODBCTimeout(short) 8828 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 8829 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 8830 void CDaoRecordset::SetParamValue(int,COleVariant const &) 8831 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 8832 void CDaoQueryDef::SetParamValueNull(int) 8833 void CDaoQueryDef::SetParamValueNull(char const *) 8834 void CDaoRecordset::SetParamValueNull(int) 8835 void CDaoRecordset::SetParamValueNull(char const *) 8836 void CDaoRecordset::SetPercentPosition(float) 8837 void CDaoDatabase::SetQueryTimeout(short) 8838 void CDaoQueryDef::SetReturnsRecords(int) 8839 void CDaoTableDef::SetSourceTableName(char const *) 8840 void CDaoQueryDef::SetSQL(char const *) 8841 void CDaoTableDef::SetValidationRule(char const *) 8842 void CDaoTableDef::SetValidationText(char const *) 8843 void CDaoRecordset::StoreFields() 8844 void CDaoRecordset::StripBrackets(char const *,char *) 8845 void CDaoDatabase::ThrowDaoException(int) 8846 void CDaoQueryDef::ThrowDaoException(int) 8847 void CDaoRecordset::ThrowDaoException(int) 8848 void CDaoTableDef::ThrowDaoException(int) 8849 void CDaoWorkspace::ThrowDaoException(int) 8850 void ThrowGetRowsDaoException(long) 8851 void CDaoRecordset::Update() ================================================ FILE: Bin/i386/mfc_sym/mfc70u.def ================================================ 256 void * operator new[](unsigned int) 257 void operator delete[](void *) 258 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 259 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 260 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 261 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 262 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 263 CArchive::CArchive(CFile *,unsigned int,int,void *) 264 CArchivePropExchange::CArchivePropExchange(CArchive &) 265 CArchiveStream::CArchiveStream(CArchive *) 266 CAsyncMonikerFile::CAsyncMonikerFile() 267 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 268 CAsyncSocket::CAsyncSocket() 269 CBlobProperty::CBlobProperty(void *) 270 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 271 CBrush::CBrush(int,unsigned long) 272 CBrush::CBrush(unsigned long) 273 CBrush::CBrush(CBitmap *) 274 CByteArray::CByteArray() 275 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 276 CClientDC::CClientDC(CWnd *) 277 CCmdTarget::CCmdTarget() 278 CCmdUI::CCmdUI() 279 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 280 CCommandLineInfo::CCommandLineInfo() 281 CConnectionPoint::CConnectionPoint() 282 CControlBar::CControlBar() 283 CControlBarInfo::CControlBarInfo() 284 COleControl::CControlDataSource::CControlDataSource(COleControl *) 285 CControlFrameWnd::CControlFrameWnd(COleControl *) 286 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 287 CDatabase::CDatabase() 288 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 289 CDataExchange::CDataExchange(CWnd *,int) 290 CDataSourceControl::CDataSourceControl(COleControlSite *) 291 CDBException::CDBException(short) 292 CDBVariant::CDBVariant() 293 CDC::CDC() 294 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 295 CDHtmlControlSink::CDHtmlControlSink() 296 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 297 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 298 CDHtmlDialog::CDHtmlDialog() 299 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 300 CDialog::CDialog(unsigned int,CWnd *) 301 CDialog::CDialog(wchar_t const *,CWnd *) 302 CDialog::CDialog() 303 CDialogBar::CDialogBar() 304 CDialogTemplate::CDialogTemplate(void *) 305 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 306 CDocItem::CDocItem() 307 CDockBar::CDockBar(int) 308 CDockContext::CDockContext(CControlBar *) 309 CDockState::CDockState() 310 CDocManager::CDocManager() 311 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 312 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 313 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 314 CDocument::CDocument() 315 CDumpContext::CDumpContext(CFile *) 316 CDWordArray::CDWordArray() 317 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 318 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 319 CEditView::CEditView() 320 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 321 CEnumConnections::CEnumConnections(void const *,unsigned int) 322 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 323 CEnumFormatEtc::CEnumFormatEtc() 324 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 325 CException::CException(int) 326 CException::CException() 327 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 328 CFile::CFile(void *) 329 CFile::CFile(wchar_t const *,unsigned int) 330 CFile::CFile() 331 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long) 332 CFileFind::CFileFind() 333 CFindReplaceDialog::CFindReplaceDialog() 334 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 335 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 336 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 337 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 338 CFontHolder::CFontHolder(IPropertyNotifySink *) 339 CFormView::CFormView(unsigned int) 340 CFormView::CFormView(wchar_t const *) 341 CFrameWnd::CFrameWnd() 342 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 343 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 344 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 345 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 346 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 347 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 348 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 349 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 350 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 351 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 352 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 353 CHtmlEditCtrl::CHtmlEditCtrl() 354 CHtmlEditDoc::CHtmlEditDoc() 355 CHtmlEditView::CHtmlEditView() 356 CHtmlView::CHtmlView() 357 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 358 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 359 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 360 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 361 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 362 CImageList::CImageList() 363 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 364 CInternetException::CInternetException(unsigned long) 365 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 366 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 367 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 368 CLongBinary::CLongBinary() 369 CMapPtrToPtr::CMapPtrToPtr(int) 370 CMapPtrToWord::CMapPtrToWord(int) 371 CMapStringToOb::CMapStringToOb(int) 372 CMapStringToPtr::CMapStringToPtr(int) 373 CMapStringToString::CMapStringToString(int) 374 CMapWordToOb::CMapWordToOb(int) 375 CMapWordToPtr::CMapWordToPtr(int) 376 CMDIChildWnd::CMDIChildWnd() 377 CMDIFrameWnd::CMDIFrameWnd() 378 CMemFile::CMemFile(unsigned int) 379 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 380 CMetaFileDC::CMetaFileDC() 381 CMiniDockFrameWnd::CMiniDockFrameWnd() 382 CMiniFrameWnd::CMiniFrameWnd() 383 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 384 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 385 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 386 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 387 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 388 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 389 CObArray::CObArray() 390 CObList::CObList(int) 391 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 392 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 393 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 394 COleClientItem::COleClientItem(COleDocument *) 395 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 396 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 397 COleControl::COleControl() 398 COleControlContainer::COleControlContainer(CWnd *) 399 COleControlLock::COleControlLock(_GUID const &) 400 COleControlSite::COleControlSite(COleControlContainer *) 401 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 402 COleCurrency::COleCurrency(long,long) 403 COleDataObject::COleDataObject() 404 COleDataSource::COleDataSource() 405 COleDialog::COleDialog(CWnd *) 406 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 407 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 408 COleDispatchDriver::COleDispatchDriver() 409 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 410 COleDocIPFrameWnd::COleDocIPFrameWnd() 411 COleDocObjectItem::COleDocObjectItem(COleDocument *) 412 COleDocument::COleDocument() 413 COleDropSource::COleDropSource() 414 COleDropTarget::COleDropTarget() 415 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 416 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 417 COleIPFrameWnd::COleIPFrameWnd() 418 COleLinkingDoc::COleLinkingDoc() 419 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 420 COleMessageFilter::COleMessageFilter() 421 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 422 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 423 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 424 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 425 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 426 COleResizeBar::COleResizeBar() 427 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 428 COleSafeArray::COleSafeArray(tagVARIANT const &) 429 COleSafeArray::COleSafeArray(COleSafeArray const &) 430 COleSafeArray::COleSafeArray(COleVariant const &) 431 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 432 COleSafeArray::COleSafeArray(tagVARIANT const *) 433 COleServerDoc::COleServerDoc() 434 COleServerItem::COleServerItem(COleServerDoc *,int) 435 COleStreamFile::COleStreamFile(IStream *) 436 COleTemplateServer::COleTemplateServer() 437 COleUILinkInfo::COleUILinkInfo(COleDocument *) 438 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 439 COleVariant::COleVariant(tagVARIANT const &) 440 COleVariant::COleVariant(COleVariant const &) 441 COleVariant::COleVariant(short,unsigned short) 442 COleVariant::COleVariant(long,unsigned short) 443 COleVariant::COleVariant(wchar_t const *,unsigned short) 444 COleVariant::COleVariant(_ITEMIDLIST const *) 445 COleVariant::COleVariant(tagVARIANT const *) 446 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 447 CPaintDC::CPaintDC(CWnd *) 448 CPen::CPen(int,int,unsigned long) 449 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 450 CPictureHolder::CPictureHolder() 451 CPreviewDC::CPreviewDC() 452 CPreviewView::CPreviewView() 453 CPrintDialog::CPrintDialog(tagPDW &) 454 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 455 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 456 CPrintInfo::CPrintInfo() 457 CPrintPreviewState::CPrintPreviewState() 458 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 459 CProperty::CProperty(unsigned long,void * const,unsigned long) 460 CProperty::CProperty() 461 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 462 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 463 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 464 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 465 CPropertyPage::CPropertyPage() 466 CPropertySection::CPropertySection(_GUID) 467 CPropertySection::CPropertySection() 468 CPropertySet::CPropertySet(_GUID) 469 CPropertySet::CPropertySet() 470 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 471 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 472 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 473 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 474 CPropertySheet::CPropertySheet() 475 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 476 CPtrArray::CPtrArray() 477 CPtrList::CPtrList(int) 478 CReBar::CReBar() 479 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 480 CRecordset::CRecordset(CDatabase *) 481 CRecordView::CRecordView(unsigned int) 482 CRecordView::CRecordView(wchar_t const *) 483 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 484 CReObject::CReObject(CRichEditCntrItem *) 485 CReObject::CReObject() 486 CResetPropExchange::CResetPropExchange() 487 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 488 CRichEditDoc::CRichEditDoc() 489 CRichEditView::CRichEditView() 490 CScrollView::CScrollView() 491 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 492 CSharedFile::CSharedFile(unsigned int,unsigned int) 493 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 494 CSingleLock::CSingleLock(CSyncObject *,int) 495 CSocket::CSocket() 496 CSocketFile::CSocketFile(CSocket *,int) 497 CSocketWnd::CSocketWnd() 498 CSplitterWnd::CSplitterWnd() 499 CStatusBar::CStatusBar() 500 CStdioFile::CStdioFile(_iobuf *) 501 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 502 CStdioFile::CStdioFile() 503 CStringArray::CStringArray() 504 CStringList::CStringList(int) 505 CSyncObject::CSyncObject(wchar_t const *) 506 CTestCmdUI::CTestCmdUI() 507 CThreadSlotData::CThreadSlotData() 508 CToolBar::CToolBar() 509 CToolTipCtrl::CToolTipCtrl() 510 CUIntArray::CUIntArray() 511 CView::CView() 512 CWinApp::CWinApp(wchar_t const *) 513 CWindowDC::CWindowDC(CWnd *) 514 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 515 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 516 CWinThread::CWinThread() 517 CWnd::CWnd(HWND__ *) 518 CWnd::CWnd() 519 CWordArray::CWordArray() 520 CPreviewView::PAGE_INFO::PAGE_INFO() 521 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 522 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 523 AFX_MODULE_STATE::~AFX_MODULE_STATE() 524 CAnimateCtrl::~CAnimateCtrl() 525 CArchive::~CArchive() 526 CAsyncMonikerFile::~CAsyncMonikerFile() 527 CAsyncSocket::~CAsyncSocket() 528 CButton::~CButton() 529 CByteArray::~CByteArray() 530 CClientDC::~CClientDC() 531 CCmdTarget::~CCmdTarget() 532 CComboBox::~CComboBox() 533 CComboBoxEx::~CComboBoxEx() 534 CCommandLineInfo::~CCommandLineInfo() 535 CConnectionPoint::~CConnectionPoint() 536 CControlBar::~CControlBar() 537 CCtrlView::~CCtrlView() 538 CDatabase::~CDatabase() 539 CDataSourceControl::~CDataSourceControl() 540 CDateTimeCtrl::~CDateTimeCtrl() 541 CDBException::~CDBException() 542 CDBVariant::~CDBVariant() 543 CDC::~CDC() 544 CDHtmlControlSink::~CDHtmlControlSink() 545 CDHtmlDialog::~CDHtmlDialog() 546 CDialog::~CDialog() 547 CDialogBar::~CDialogBar() 548 CDialogTemplate::~CDialogTemplate() 549 CDocItem::~CDocItem() 550 CDockBar::~CDockBar() 551 CDockContext::~CDockContext() 552 CDockState::~CDockState() 553 CDocManager::~CDocManager() 554 CDocObjectServer::~CDocObjectServer() 555 CDocObjectServerItem::~CDocObjectServerItem() 556 CDocTemplate::~CDocTemplate() 557 CDocument::~CDocument() 558 CDragListBox::~CDragListBox() 559 CDWordArray::~CDWordArray() 560 CDynLinkLibrary::~CDynLinkLibrary() 561 CEdit::~CEdit() 562 CEditView::~CEditView() 563 CEnumArray::~CEnumArray() 564 CEnumConnections::~CEnumConnections() 565 CEnumConnPoints::~CEnumConnPoints() 566 CEnumFormatEtc::~CEnumFormatEtc() 567 CEnumOleVerb::~CEnumOleVerb() 568 CEnumUnknown::~CEnumUnknown() 569 CEvent::~CEvent() 570 CFile::~CFile() 571 CFileDialog::~CFileDialog() 572 CFileFind::~CFileFind() 573 CFixedAlloc::~CFixedAlloc() 574 CFixedAllocNoSync::~CFixedAllocNoSync() 575 CFontHolder::~CFontHolder() 576 CFrameWnd::~CFrameWnd() 577 CFtpConnection::~CFtpConnection() 578 CFtpFileFind::~CFtpFileFind() 579 CGopherConnection::~CGopherConnection() 580 CGopherFile::~CGopherFile() 581 CGopherFileFind::~CGopherFileFind() 582 CGopherLocator::~CGopherLocator() 583 CHeaderCtrl::~CHeaderCtrl() 584 CHotKeyCtrl::~CHotKeyCtrl() 585 CHtmlControlSite::~CHtmlControlSite() 586 CHtmlEditCtrl::~CHtmlEditCtrl() 587 CHtmlEditDoc::~CHtmlEditDoc() 588 CHtmlEditView::~CHtmlEditView() 589 CHtmlView::~CHtmlView() 590 CHttpConnection::~CHttpConnection() 591 CHttpFile::~CHttpFile() 592 CImageList::~CImageList() 593 CInternetConnection::~CInternetConnection() 594 CInternetException::~CInternetException() 595 CInternetFile::~CInternetFile() 596 CInternetSession::~CInternetSession() 597 CIPAddressCtrl::~CIPAddressCtrl() 598 CListBox::~CListBox() 599 CListCtrl::~CListCtrl() 600 CLongBinary::~CLongBinary() 601 CMapPtrToPtr::~CMapPtrToPtr() 602 CMapPtrToWord::~CMapPtrToWord() 603 CMapStringToOb::~CMapStringToOb() 604 CMapStringToPtr::~CMapStringToPtr() 605 CMapStringToString::~CMapStringToString() 606 CMapWordToOb::~CMapWordToOb() 607 CMapWordToPtr::~CMapWordToPtr() 608 CMemFile::~CMemFile() 609 CMetaFileDC::~CMetaFileDC() 610 CMiniFrameWnd::~CMiniFrameWnd() 611 CMonikerFile::~CMonikerFile() 612 CMonthCalCtrl::~CMonthCalCtrl() 613 CMultiDocTemplate::~CMultiDocTemplate() 614 CMultiLock::~CMultiLock() 615 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 616 CMutex::~CMutex() 617 CObArray::~CObArray() 618 CObList::~CObList() 619 COleBusyDialog::~COleBusyDialog() 620 COleChangeIconDialog::~COleChangeIconDialog() 621 COleChangeSourceDialog::~COleChangeSourceDialog() 622 COleClientItem::~COleClientItem() 623 COleCntrFrameWnd::~COleCntrFrameWnd() 624 COleControl::~COleControl() 625 COleControlContainer::~COleControlContainer() 626 COleControlLock::~COleControlLock() 627 COleControlSite::~COleControlSite() 628 COleControlSiteOrWnd::~COleControlSiteOrWnd() 629 COleConvertDialog::~COleConvertDialog() 630 COleDataSource::~COleDataSource() 631 COleDispatchException::~COleDispatchException() 632 COleDocIPFrameWnd::~COleDocIPFrameWnd() 633 COleDocObjectItem::~COleDocObjectItem() 634 COleDocument::~COleDocument() 635 COleDropTarget::~COleDropTarget() 636 COleFrameHook::~COleFrameHook() 637 COleInsertDialog::~COleInsertDialog() 638 COleIPFrameWnd::~COleIPFrameWnd() 639 COleLinkingDoc::~COleLinkingDoc() 640 COleLinksDialog::~COleLinksDialog() 641 COleMessageFilter::~COleMessageFilter() 642 COleObjectFactory::~COleObjectFactory() 643 COlePasteSpecialDialog::~COlePasteSpecialDialog() 644 COlePropertyPage::~COlePropertyPage() 645 COleResizeBar::~COleResizeBar() 646 COleServerDoc::~COleServerDoc() 647 COleServerItem::~COleServerItem() 648 COleStreamFile::~COleStreamFile() 649 COleUpdateDialog::~COleUpdateDialog() 650 CPaintDC::~CPaintDC() 651 CPictureHolder::~CPictureHolder() 652 CPreviewDC::~CPreviewDC() 653 CPreviewView::~CPreviewView() 654 CPrintInfo::~CPrintInfo() 655 CProcessLocalObject::~CProcessLocalObject() 656 CProgressCtrl::~CProgressCtrl() 657 CPropbagPropExchange::~CPropbagPropExchange() 658 CProperty::~CProperty() 659 CPropertyPage::~CPropertyPage() 660 CPropertySection::~CPropertySection() 661 CPropertySet::~CPropertySet() 662 CPropertySheet::~CPropertySheet() 663 CPtrArray::~CPtrArray() 664 CPtrList::~CPtrList() 665 CRecentFileList::~CRecentFileList() 666 CRecordset::~CRecordset() 667 CRecordView::~CRecordView() 668 CRectTracker::~CRectTracker() 669 CReObject::~CReObject() 670 CRichEditCntrItem::~CRichEditCntrItem() 671 CRichEditCtrl::~CRichEditCtrl() 672 CScrollBar::~CScrollBar() 673 CScrollView::~CScrollView() 674 CSemaphore::~CSemaphore() 675 CSharedFile::~CSharedFile() 676 CSingleDocTemplate::~CSingleDocTemplate() 677 CSliderCtrl::~CSliderCtrl() 678 CSocket::~CSocket() 679 CSocketFile::~CSocketFile() 680 CSpinButtonCtrl::~CSpinButtonCtrl() 681 CSplitterWnd::~CSplitterWnd() 682 CStatic::~CStatic() 683 CStatusBar::~CStatusBar() 684 CStatusBarCtrl::~CStatusBarCtrl() 685 CStdioFile::~CStdioFile() 686 CStringArray::~CStringArray() 687 CStringList::~CStringList() 688 CSyncObject::~CSyncObject() 689 CTabCtrl::~CTabCtrl() 690 CThreadLocalObject::~CThreadLocalObject() 691 CThreadSlotData::~CThreadSlotData() 692 CToolBar::~CToolBar() 693 CToolBarCtrl::~CToolBarCtrl() 694 CToolTipCtrl::~CToolTipCtrl() 695 CTreeCtrl::~CTreeCtrl() 696 CUIntArray::~CUIntArray() 697 CView::~CView() 698 CWinApp::~CWinApp() 699 CWindowDC::~CWindowDC() 700 CWinThread::~CWinThread() 701 CWnd::~CWnd() 702 CWordArray::~CWordArray() 703 void * operator new(unsigned int) 704 void * CNoTrackObject::operator new(unsigned int) 705 void operator delete(void *) 706 void CNoTrackObject::operator delete(void *) 707 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 708 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 709 COleCurrency const & COleCurrency::operator=(union tagCY) 710 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 711 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 712 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 713 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 714 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 715 COleVariant const & COleVariant::operator=(tagVARIANT const &) 716 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 717 COleVariant const & COleVariant::operator=(COleVariant const &) 718 COleVariant const & COleVariant::operator=(CByteArray const &) 719 COleVariant const & COleVariant::operator=(CLongBinary const &) 720 COleVariant const & COleVariant::operator=(COleCurrency const &) 721 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 722 COleVariant const & COleVariant::operator=(unsigned char) 723 COleVariant const & COleVariant::operator=(short) 724 COleVariant const & COleVariant::operator=(long) 725 COleVariant const & COleVariant::operator=(float) 726 COleVariant const & COleVariant::operator=(double) 727 COleVariant const & COleVariant::operator=(tagVARIANT const *) 728 COleVariant const & COleVariant::operator=(wchar_t const * const) 729 CArchive & operator>>(CArchive &,CByteArray * &) 730 CArchive & operator>>(CArchive &,CDocItem * &) 731 CArchive & operator>>(CArchive &,CDockState * &) 732 CArchive & operator>>(CArchive &,CDWordArray * &) 733 CArchive & operator>>(CArchive &,CMapStringToOb * &) 734 CArchive & operator>>(CArchive &,CMapStringToString * &) 735 CArchive & operator>>(CArchive &,CMapWordToOb * &) 736 CArchive & operator>>(CArchive &,CObArray * &) 737 CArchive & operator>>(CArchive &,CObList * &) 738 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 739 CArchive & operator>>(CArchive &,CStringArray * &) 740 CArchive & operator>>(CArchive &,CStringList * &) 741 CArchive & operator>>(CArchive &,CWordArray * &) 742 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 743 CArchive & operator>>(CArchive &,COleCurrency &) 744 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 745 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 746 CArchive & operator>>(CArchive &,COleVariant &) 747 CArchive & operator>>(CArchive &,ATL::CTime &) 748 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 749 CArchive & operator<<(CArchive &,ATL::CComBSTR) 750 CArchive & operator<<(CArchive &,COleCurrency) 751 CArchive & operator<<(CArchive &,ATL::COleDateTime) 752 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 753 CArchive & operator<<(CArchive &,COleVariant) 754 CArchive & operator<<(CArchive &,ATL::CTime) 755 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 756 CDumpContext & CDumpContext::operator<<(__int64) 757 CDumpContext & CDumpContext::operator<<(unsigned __int64) 758 CDumpContext & CDumpContext::operator<<(CObject const &) 759 CDumpContext & CDumpContext::operator<<(unsigned char) 760 CDumpContext & CDumpContext::operator<<(unsigned short) 761 CDumpContext & CDumpContext::operator<<(int) 762 CDumpContext & CDumpContext::operator<<(unsigned int) 763 CDumpContext & CDumpContext::operator<<(long) 764 CDumpContext & CDumpContext::operator<<(unsigned long) 765 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 766 CDumpContext & CDumpContext::operator<<(HDC__ *) 767 CDumpContext & CDumpContext::operator<<(HFONT__ *) 768 CDumpContext & CDumpContext::operator<<(HMENU__ *) 769 CDumpContext & CDumpContext::operator<<(HWND__ *) 770 CDumpContext & CDumpContext::operator<<(wchar_t const *) 771 CDumpContext & CDumpContext::operator<<(char const *) 772 CDumpContext & CDumpContext::operator<<(CObject const *) 773 CDumpContext & CDumpContext::operator<<(void const *) 774 int COleSafeArray::operator==(tagSAFEARRAY const &)const 775 int COleSafeArray::operator==(tagVARIANT const &)const 776 int COleSafeArray::operator==(COleSafeArray const &)const 777 int COleSafeArray::operator==(COleVariant const &)const 778 int COleSafeArray::operator==(tagSAFEARRAY const *)const 779 int COleSafeArray::operator==(tagVARIANT const *)const 780 int COleVariant::operator==(tagVARIANT const &)const 781 void * & CMapPtrToPtr::operator[](void *) 782 unsigned short & CMapPtrToWord::operator[](void *) 783 CObject * & CMapStringToOb::operator[](wchar_t const *) 784 void * & CMapStringToPtr::operator[](wchar_t const *) 785 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 786 CObject * & CMapWordToOb::operator[](unsigned short) 787 void * & CMapWordToPtr::operator[](unsigned short) 788 COleCurrency COleCurrency::operator*(long)const 789 COleCurrency COleCurrency::operator-(COleCurrency const &)const 790 COleCurrency COleCurrency::operator-()const 791 COleCurrency COleCurrency::operator+(COleCurrency const &)const 792 COleCurrency COleCurrency::operator/(long)const 793 int COleCurrency::operator<(COleCurrency const &)const 794 int COleCurrency::operator<=(COleCurrency const &)const 795 int COleCurrency::operator>(COleCurrency const &)const 796 int COleCurrency::operator>=(COleCurrency const &)const 797 int _AfxDeleteRegKey(wchar_t const *) 798 int _AfxSocketInit(WSAData *) 799 void CArchive::Abort() 800 void CFile::Abort() 801 void CInternetFile::Abort() 802 void CMemFile::Abort() 803 void CMirrorFile::Abort() 804 void COleStreamFile::Abort() 805 void CSocketFile::Abort() 806 void CStdioFile::Abort() 807 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 808 long CCheckListBox::accDoDefaultAction(tagVARIANT) 809 long CWnd::accDoDefaultAction(tagVARIANT) 810 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 811 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 812 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 813 void COleSafeArray::AccessData(void * *) 814 long CWnd::accHitTest(long,long,tagVARIANT *) 815 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 816 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 817 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 818 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 819 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 820 long CWnd::accSelect(long,tagVARIANT) 821 long CWnd::XAccessible::accSelect(long,tagVARIANT) 822 void COleClientItem::Activate(long,CView *,tagMSG *) 823 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 824 void COleDocObjectItem::ActivateAndShow() 825 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 826 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 827 void CDocObjectServer::ActivateDocObject() 828 void COleServerDoc::ActivateDocObject() 829 void CFrameWnd::ActivateFrame(int) 830 void CMDIChildWnd::ActivateFrame(int) 831 int COleServerDoc::ActivateInPlace() 832 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 833 void CSplitterWnd::ActivateNext(int) 834 void CWnd::ActivateTopParent() 835 void CRecentFileList::Add(wchar_t const *) 836 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 837 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 838 int CToolBarCtrl::AddBitmap(int,unsigned int) 839 int CToolBarCtrl::AddBitmap(int,CBitmap *) 840 void COleClientItem::AddCachedData(COleDataSource *) 841 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 842 void CEnumConnections::AddConnection(tagCONNECTDATA *) 843 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 844 void CDocManager::AddDocTemplate(CDocTemplate *) 845 void CWinApp::AddDocTemplate(CDocTemplate *) 846 void CDocTemplate::AddDocument(CDocument *) 847 void CMultiDocTemplate::AddDocument(CDocument *) 848 void CSingleDocTemplate::AddDocument(CDocument *) 849 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 850 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 851 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 852 void COleControl::AddFrameLevelUI() 853 void CFrameWnd::AddFrameWnd() 854 __POSITION * CObList::AddHead(CObject *) 855 void CObList::AddHead(CObList *) 856 __POSITION * CPtrList::AddHead(void *) 857 void CPtrList::AddHead(CPtrList *) 858 void CSimpleList::AddHead(void *) 859 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 860 __POSITION * CStringList::AddHead(wchar_t const *) 861 void CStringList::AddHead(CStringList *) 862 void COleDocument::AddItem(CDocItem *) 863 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 864 void CRecordset::AddNew() 865 void COleServerItem::AddOtherClipboardData(COleDataSource *) 866 void CPropertySheet::AddPage(CPropertyPage *) 867 void CPropertySection::AddProperty(CProperty *) 868 void CPropertySet::AddProperty(_GUID,CProperty *) 869 unsigned long CArchiveStream::AddRef() 870 unsigned long CBlobProperty::AddRef() 871 unsigned long CBrowserControlSite::AddRef() 872 unsigned long CDHtmlControlSink::AddRef() 873 unsigned long CDHtmlElementEventSink::AddRef() 874 unsigned long CDHtmlEventSink::AddRef() 875 unsigned long CInnerUnknown::AddRef() 876 unsigned long COleConnPtContainer::AddRef() 877 unsigned long COleDispatchImpl::AddRef() 878 unsigned long COleUILinkInfo::AddRef() 879 unsigned long CPrintDialogEx::AddRef() 880 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 881 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 882 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 883 CPropertySection * CPropertySet::AddSection(_GUID) 884 void CPropertySet::AddSection(CPropertySection *) 885 void COlePasteSpecialDialog::AddStandardFormats(int) 886 int CToolBarCtrl::AddString(unsigned int) 887 __POSITION * CObList::AddTail(CObject *) 888 void CObList::AddTail(CObList *) 889 __POSITION * CPtrList::AddTail(void *) 890 void CPtrList::AddTail(CPtrList *) 891 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 892 __POSITION * CStringList::AddTail(wchar_t const *) 893 void CStringList::AddTail(CStringList *) 894 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 895 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 896 void CWinApp::AddToRecentFileList(wchar_t const *) 897 void CDocument::AddView(CView *) 898 void CMetaFileDC::AdjustCP(int) 899 void CRichEditView::AdjustDialogPosition(CDialog *) 900 void CRectTracker::AdjustRect(int,tagRECT *) 901 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 902 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 903 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 904 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 905 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 906 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 907 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 908 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 909 void AfxAbort() 914 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 915 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 916 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 917 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 918 void AfxCancelModes(HWND__ *) 919 void AfxCheckError(long) 920 void AfxClassInit(CRuntime*) 921 int AfxComparePath(wchar_t const *,wchar_t const *) 922 int AfxCompareValueByRef(void *,void *,int) 923 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 924 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 925 void AfxCopyValueByRef(void *,void *,long *,int) 926 void AfxCoreInitModule() 927 HDC__ * AfxCreateDC(void *,void *) 928 int AfxCriticalInit() 929 int AfxCriticalNewHandler(unsigned int) 930 void AfxCriticalTerm() 931 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 932 AUX_DATA afxData 933 void AfxDeleteObject(void * *) 934 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 935 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 936 long AfxDllCanUnloadNow() 937 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 938 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 939 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 940 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 941 void AfxEditviewTerm() 942 void AfxEnableControlContainer(COccManager *) 943 int AfxEndDeferRegisterClass(long) 944 void AfxEndThread(unsigned int,int) 945 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 946 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 947 void AfxFailMaxChars(CDataExchange *,int) 948 void AfxFailRadio(CDataExchange *) 949 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 950 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 951 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 952 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 953 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 954 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 955 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 956 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 957 int AfxFreeLibrary(HINSTANCE__ *) 958 int AfxFullPath(wchar_t *,wchar_t const *) 959 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 960 AFX_MODULE_STATE * AfxGetAppModuleState() 961 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 962 tagMSG * AfxGetCurrentMessage() 963 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 964 unsigned long AfxGetDllVersion() 965 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 966 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 967 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 968 void * AfxGetHENV() 969 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 970 unsigned long AfxGetInternetHandleType(void *) 971 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 972 AFX_MODULE_STATE * AfxGetModuleState() 973 int (__cdecl*AfxGetNewHandler())(unsigned int) 974 HWND__ * AfxGetParentOwner(HWND__ *) 975 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 976 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 977 ATL::IAtlStringMgr * AfxGetStringManager() 978 CWinThread * AfxGetThread() 979 _AFX_THREAD_STATE * AfxGetThreadState() 980 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 981 void AfxGlobalFree(void *) 982 int AfxHelpEnabled() 983 void AfxHookWindowCreate(CWnd *) 984 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 985 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 986 void AfxInitLocalData(HINSTANCE__ *) 987 int AfxInitRichEdit() 988 void AfxInitThread() 989 int AfxInternalIsIdleMessage(tagMSG *) 990 int AfxInternalPreTranslateMessage(tagMSG *) 991 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 992 int AfxInternalPumpMessage() 993 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 994 int AfxIsDescendant(HWND__ *,HWND__ *) 995 int AfxIsIdleMessage(tagMSG *) 996 int AfxIsValidAddress(void const *,unsigned int,int) 997 int AfxIsValidString(wchar_t const *,int) 998 int AfxIsValidString(char const *,int) 999 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1000 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1001 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1002 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1003 int AfxLoadString(unsigned int,char *,unsigned int) 1004 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1005 void AfxLockGlobals(int) 1006 void AfxLockTempMaps() 1007 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1008 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1009 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1010 int AfxOleCanExitApp() 1011 int AfxOleGetUserCtrl() 1012 int AfxOleInit() 1013 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1014 void AfxOleLockApp() 1015 int AfxOleLockControl(_GUID const &) 1016 int AfxOleLockControl(wchar_t const *) 1017 void AfxOleOnReleaseAllObjects() 1018 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1019 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1020 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1021 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1022 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1023 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1024 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1025 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1026 void AfxOleSetUserCtrl(int) 1027 void AfxOleTerm(int) 1028 void AfxOleTermOrFreeLib(int,int) 1029 void AfxOleUnlockAllControls() 1030 void AfxOleUnlockApp() 1031 int AfxOleUnlockControl(_GUID const &) 1032 int AfxOleUnlockControl(wchar_t const *) 1033 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1034 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1035 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1036 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1037 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1038 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1039 void AfxPostQuitMessage(int) 1040 int AfxPreTranslateMessage(tagMSG *) 1041 long AfxProcessWndProcException(CException *,tagMSG const *) 1042 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1043 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1044 int AfxPumpMessage() 1045 unsigned int AfxReadStringLength(CArchive &,int &) 1046 int AfxRegisterClass(tagWNDCLASSW *) 1047 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1048 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1049 void AfxResetMsgCache() 1050 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1051 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1052 void AfxSafeArrayInit(COleSafeArray *) 1053 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1054 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1055 void AfxSetWindowText(HWND__ *,wchar_t const *) 1056 void AfxSocketTerm() 1057 void AfxStoreField(CRecordset &,unsigned int,void *) 1058 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1059 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1060 void AfxTermLocalData(HINSTANCE__ *,int) 1061 void AfxTermThread(HINSTANCE__ *) 1062 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1063 void AfxThrowArchiveException(int,wchar_t const *) 1064 void AfxThrowDBException(short,CDatabase *,void *) 1065 void AfxThrowFileException(int,long,wchar_t const *) 1066 void AfxThrowInternetException(unsigned long,unsigned long) 1067 void AfxThrowLastCleanup() 1068 void AfxThrowMemoryException() 1069 void AfxThrowNotSupportedException() 1070 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1071 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1072 void AfxThrowOleException(long) 1073 void AfxThrowResourceException() 1074 void AfxThrowUserException() 1075 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1076 void AfxTlsAddRef() 1077 void AfxTlsRelease() 1078 void AfxTrackerTerm() 1079 void AfxTryCleanup() 1080 int AfxUnhookWindowCreate() 1081 void AfxUnlockGlobals(int) 1082 int AfxUnlockTempMaps(int) 1083 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1084 void AfxVariantInit(tagVARIANT *) 1085 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1086 char * AfxW2AHelper(char *,wchar_t const *,int) 1087 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1088 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1089 void AfxWinTerm() 1090 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1091 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1092 void AfxWriteStringLength(CArchive &,unsigned int,int) 1093 void * CFixedAlloc::Alloc() 1094 void * CFixedAllocNoSync::Alloc() 1095 unsigned char * CMemFile::Alloc(unsigned long) 1096 unsigned char * CSharedFile::Alloc(unsigned long) 1097 void CRecordset::AllocAndCacheFieldInfo() 1098 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1099 void CDatabase::AllocConnect(unsigned long) 1100 void COleSafeArray::AllocData() 1101 void CRecordset::AllocDataCache() 1102 void COleSafeArray::AllocDescriptor(unsigned long) 1103 int CControlBar::AllocElements(int,int) 1104 int CStatusBar::AllocElements(int,int) 1105 int CRecordset::AllocHstmt() 1106 void CPropertyPage::AllocPSP(unsigned long) 1107 void CRecordset::AllocRowset() 1108 int CThreadSlotData::AllocSlot() 1109 void CRecordset::AllocStatusArrays() 1110 void * CProperty::AllocValue(unsigned long) 1111 short COleControl::AmbientAppearance() 1112 unsigned long COleControl::AmbientBackColor() 1113 ATL::CStringT > > COleControl::AmbientDisplayName() 1114 IFontDisp * COleControl::AmbientFont() 1115 unsigned long COleControl::AmbientForeColor() 1116 unsigned long COleControl::AmbientLocaleID() 1117 ATL::CStringT > > COleControl::AmbientScaleUnits() 1118 int COleControl::AmbientShowGrabHandles() 1119 int COleControl::AmbientShowHatching() 1120 short COleControl::AmbientTextAlign() 1121 int COleControl::AmbientUIDead() 1122 int COleControl::AmbientUserMode() 1123 int CByteArray::Append(CByteArray const &) 1124 int CDWordArray::Append(CDWordArray const &) 1125 int CObArray::Append(CObArray const &) 1126 int CPtrArray::Append(CPtrArray const &) 1127 int CStringArray::Append(CStringArray const &) 1128 int CUIntArray::Append(CUIntArray const &) 1129 int CWordArray::Append(CWordArray const &) 1130 void CRecordset::AppendFilterAndSortSQL() 1131 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1132 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1133 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1134 long COlePropertyPage::XPropertyPage::Apply() 1135 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1136 int COleDocument::ApplyPrintDevice(tagPDW const *) 1137 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1138 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1139 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1140 int CAsyncSocket::AsyncSelect(long) 1141 int CAsyncSocket::Attach(unsigned int,long) 1142 int CDC::Attach(HDC__ *) 1143 int CGdiObject::Attach(void *) 1144 int CImageList::Attach(_IMAGELIST *) 1145 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1146 int CMenu::Attach(HMENU__ *) 1147 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1148 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1149 void COleDataObject::Attach(IDataObject *,int) 1150 void COleSafeArray::Attach(tagVARIANT &) 1151 void COleStreamFile::Attach(IStream *) 1152 void COleVariant::Attach(tagVARIANT &) 1153 int CWnd::Attach(HWND__ *) 1154 int COleDataObject::AttachClipboard() 1155 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1156 void CWnd::AttachControlSite(CHandleMap *) 1157 void CWnd::AttachControlSite(CWnd *,unsigned int) 1158 void COleClientItem::AttachDataObject(COleDataObject &)const 1159 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1160 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1161 CPrintDialog * CPrintDialog::AttachOnSetup() 1162 void COleControlSite::AttachWindow() 1163 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1164 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1165 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1166 void COleMessageFilter::BeginBusyState() 1167 int CDragListBox::BeginDrag(CPoint) 1168 void COleDataObject::BeginEnumFormats() 1169 void CFrameWnd::BeginModalState() 1170 int CDatabase::BeginTrans() 1171 void CCmdTarget::BeginWaitCursor() 1172 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1173 void CDataSourceControl::BindColumns() 1174 void COccManager::BindControls(CWnd *) 1175 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1176 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1177 void CRecordset::BindFieldsForUpdate() 1178 unsigned int CRecordset::BindFieldsToColumns() 1179 void CDatabase::BindParameters(void *) 1180 unsigned int CRecordset::BindParams(void *) 1181 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1182 void CDataSourceControl::BindProp(COleControlSite *,int) 1183 void COleControlSite::BindProperty(long,CWnd *) 1184 void CWnd::BindProperty(long,CWnd *) 1185 void COleControl::BoundPropertyChanged(long) 1186 int COleControl::BoundPropertyRequestEdit(long) 1187 void CFrameWnd::BringToTop(int) 1188 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1189 void CDBException::BuildErrorString(CDatabase *,void *,int) 1190 void CPropertySheet::BuildPropPageArray() 1191 void CRecordset::BuildSelectSQL() 1192 int COleControl::BuildSharedMenu() 1193 int COleDocIPFrameWnd::BuildSharedMenu() 1194 int COleIPFrameWnd::BuildSharedMenu() 1195 void CRecordset::BuildSQL(wchar_t const *) 1196 void CRecordset::BuildUpdateSQL() 1197 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1198 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1199 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1200 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1201 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1202 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1203 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1204 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1205 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1206 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1207 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1208 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1209 CSize CControlBar::CalcFixedLayout(int,int) 1210 CSize CDialogBar::CalcFixedLayout(int,int) 1211 CSize CDockBar::CalcFixedLayout(int,int) 1212 CSize CReBar::CalcFixedLayout(int,int) 1213 CSize CStatusBar::CalcFixedLayout(int,int) 1214 CSize CToolBar::CalcFixedLayout(int,int) 1215 void CControlBar::CalcInsideRect(CRect &,int)const 1216 void CStatusBar::CalcInsideRect(CRect &,int)const 1217 CSize CToolBar::CalcLayout(unsigned long,int) 1218 int CCheckListBox::CalcMinimumItemHeight() 1219 CSize CPreviewView::CalcPageDisplaySize() 1220 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1221 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1222 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1223 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1224 void CView::CalcWindowRect(tagRECT *,unsigned int) 1225 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1226 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1227 int CDHtmlDialog::CanAccessExternal() 1228 int COleClientItem::CanActivate() 1229 int CRichEditCntrItem::CanActivate() 1230 int CSplitterWnd::CanActivateNext(int) 1231 int CRecordset::CanBookmark()const 1232 void CDatabase::Cancel() 1233 void CRecordset::Cancel() 1234 void CSocket::CancelBlockingCall() 1235 void CDragListBox::CancelDrag(CPoint) 1236 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1237 long COleUILinkInfo::CancelLink(unsigned long) 1238 void CDockContext::CancelLoop() 1239 void CPropertyPage::CancelToClose() 1240 void CWnd::CancelToolTips(int) 1241 void CRecordset::CancelUpdate() 1242 int CDocument::CanCloseFrame(CFrameWnd *) 1243 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1244 int COleClientItem::CanCreateFromData(COleDataObject const *) 1245 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1246 unsigned long CDockContext::CanDock() 1247 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1248 int CFrameWnd::CanEnterHelpMode() 1249 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1250 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1251 int COleClientItem::CanPaste() 1252 int CRichEditCtrl::CanPaste(unsigned int)const 1253 int CRichEditView::CanPaste()const 1254 int COleClientItem::CanPasteLink() 1255 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1256 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1257 void CScrollView::CenterOnPoint(CPoint) 1258 void CWnd::CenterWindow(CWnd *) 1259 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1260 int CListBox::CharToItem(unsigned int,unsigned int) 1261 int CDatabase::Check(short)const 1262 int CRecordset::Check(short)const 1263 int CDialog::CheckAutoCenter() 1264 int CWnd::CheckAutoCenter() 1265 void CArchive::CheckCount() 1266 void COleControlContainer::CheckDlgButton(int,unsigned int) 1267 void CWnd::CheckDlgButton(int,unsigned int) 1268 int CCheckListBox::CheckFromPoint(CPoint,int &) 1269 void COleClientItem::CheckGeneral(long) 1270 int CDatabase::CheckHstmt(short,void *)const 1271 void COleControlContainer::CheckRadioButton(int,int,int) 1272 void CWnd::CheckRadioButton(int,int,int) 1273 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1274 void CRecordset::CheckRowsetError(short) 1275 void CScrollView::CheckScrollBars(int &,int &)const 1276 void CPropertyPage::Cleanup() 1277 void COlePropertyPage::CleanupObjectArray() 1278 void CDBVariant::Clear() 1279 void CDockState::Clear() 1280 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1281 void CRecordset::ClearFieldStatus() 1282 void CRecordset::ClearNullFieldStatus(unsigned long) 1283 void CRecordset::ClearNullParamStatus(unsigned long) 1284 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1285 void CWnd::ClientToScreen(tagRECT *)const 1286 int COleControl::ClipCaretRect(tagRECT *) 1287 void CPreviewDC::ClipToPage() 1288 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1289 long CArchiveStream::Clone(IStream * *) 1290 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1291 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1292 void CArchive::Close() 1293 void CAsyncMonikerFile::Close() 1294 void CAsyncSocket::Close() 1295 void CCachedDataPathProperty::Close() 1296 void CDatabase::Close() 1297 void CFile::Close() 1298 void CFileFind::Close() 1299 void CInternetConnection::Close() 1300 void CInternetFile::Close() 1301 void CInternetSession::Close() 1302 void CMemFile::Close() 1303 void CMirrorFile::Close() 1304 void CMonikerFile::Close() 1305 void COleClientItem::Close(enum tagOLECLOSE) 1306 void COleStreamFile::Close() 1307 void CRecordset::Close() 1308 void CSocket::Close() 1309 void CSocketFile::Close() 1310 void CStdioFile::Close() 1311 long CDocObjectServer::XOleObject::Close(unsigned long) 1312 long COleControl::XOleObject::Close(unsigned long) 1313 long COleServerDoc::XOleObject::Close(unsigned long) 1314 long COleServerItem::XOleObject::Close(unsigned long) 1315 void CDocManager::CloseAllDocuments(int) 1316 void CDocTemplate::CloseAllDocuments(int) 1317 void CWinApp::CloseAllDocuments(int) 1318 void CFileFind::CloseContext() 1319 void CFtpFileFind::CloseContext() 1320 void CGopherFileFind::CloseContext() 1321 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1322 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1323 int CStatusBar::CommandToIndex(unsigned int)const 1324 int CToolBar::CommandToIndex(unsigned int)const 1325 long CArchiveStream::Commit(unsigned long) 1326 void COleClientItem::CommitItem(int) 1327 void COleDocument::CommitItems(int,IStorage *) 1328 int CDatabase::CommitTrans() 1329 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 1330 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 1331 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1332 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1333 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1334 void CWinThread::CommonConstruct() 1335 int CComboBox::CompareItem(tagCOMPAREITEM*) 1336 int CListBox::CompareItem(tagCOMPAREITEM*) 1337 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 1338 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 1339 int CDatabase::Connect(unsigned long) 1340 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1341 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1342 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1343 int CSocket::ConnectHelper(sockaddr const *,int) 1344 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1345 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1346 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1347 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1348 void COleServerDoc::ConnectView(CWnd *,CView *) 1349 void CPropertyPage::Construct(unsigned int,unsigned int) 1350 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1351 void CPropertyPage::Construct(wchar_t const *,unsigned int) 1352 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1353 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1354 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1355 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 1356 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1357 void CRectTracker::Construct() 1358 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1359 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1360 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1361 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1362 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1363 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1364 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1365 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1366 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1367 int CPropertySheet::ContinueModal() 1368 int CWnd::ContinueModal() 1369 void COleControl::ControlInfoChanged() 1370 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1371 int COleClientItem::ConvertTo(_GUID const &) 1372 int CRichEditCntrItem::ConvertTo(_GUID const &) 1373 void CByteArray::Copy(CByteArray const &) 1374 void CDWordArray::Copy(CDWordArray const &) 1375 void CObArray::Copy(CObArray const &) 1376 void COleSafeArray::Copy(tagSAFEARRAY * *) 1377 void CPtrArray::Copy(CPtrArray const &) 1378 void CStringArray::Copy(CStringArray const &) 1379 void CUIntArray::Copy(CUIntArray const &) 1380 void CWordArray::Copy(CWordArray const &) 1381 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1382 void CopyElements(COleVariant *,COleVariant const *,int) 1383 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1384 void COleClientItem::CopyToClipboard(int) 1385 void COleServerItem::CopyToClipboard(int) 1386 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1387 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 1388 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1389 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1390 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1391 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1392 int CControlFrameWnd::Create(wchar_t const *) 1393 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1394 int CDialog::Create(wchar_t const *,CWnd *) 1395 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 1396 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1397 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1398 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 1399 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1400 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 1401 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1402 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1403 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1404 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1405 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1406 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1407 int CImageList::Create(int,int,unsigned int,int,int) 1408 int CImageList::Create(unsigned int,int,int,unsigned long) 1409 int CImageList::Create(CImageList *) 1410 int CImageList::Create(wchar_t const *,int,int,unsigned long) 1411 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1412 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1413 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1414 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1415 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1416 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1417 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1418 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1419 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1420 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1421 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1422 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1423 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1424 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1425 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1426 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1427 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1428 int CReflectorWnd::Create(CRect const &,HWND__ *) 1429 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1430 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1431 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1432 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1433 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1434 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1435 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1436 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1437 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1438 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1439 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1440 int CToolTipCtrl::Create(CWnd *,unsigned long) 1441 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1442 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1443 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1444 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1445 IBindHost * CMonikerFile::CreateBindHost() 1446 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1447 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 1448 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1449 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1450 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1451 void CConnectionPoint::CreateConnectionArray() 1452 COleControlContainer * COccManager::CreateContainer(CWnd *) 1453 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1454 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1455 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1456 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1457 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1458 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1459 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1460 int CWnd::CreateControlContainer(COleControlContainer * *) 1461 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1462 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1463 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1464 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1465 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1466 int CFtpConnection::CreateDirectoryW(wchar_t const *) 1467 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1468 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 1469 int CWnd::CreateDlg(wchar_t const *,CWnd *) 1470 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1471 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1472 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 1473 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 1474 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1475 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1476 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1477 int CPictureHolder::CreateEmpty() 1478 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1479 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1480 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1481 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1482 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1483 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1484 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1485 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1486 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1487 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1488 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1489 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1490 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1491 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1492 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1493 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1494 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1495 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1496 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1497 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1498 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1499 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1500 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1501 CControlFrameWnd * COleControl::CreateFrameWindow() 1502 int CPictureHolder::CreateFromBitmap(unsigned int) 1503 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1504 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1505 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1506 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1507 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1508 int CPictureHolder::CreateFromIcon(unsigned int) 1509 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1510 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1511 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1512 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1513 int CDialog::CreateIndirect(void *,CWnd *) 1514 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1515 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1516 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1517 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1518 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1519 int COleInsertDialog::CreateItem(COleClientItem *) 1520 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1521 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1522 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1523 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1524 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 1525 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 1526 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 1527 int COleStreamFile::CreateMemoryStream(CFileException *) 1528 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1529 CDocument * CDocTemplate::CreateNewDocument() 1530 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1531 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1532 CObject * CByteArray::CreateObject() 1533 CObject * CDC::CreateObject() 1534 CObject * CDocItem::CreateObject() 1535 CObject * CDockState::CreateObject() 1536 CObject * CDWordArray::CreateObject() 1537 CObject * CEditView::CreateObject() 1538 CObject * CFrameWnd::CreateObject() 1539 CObject * CGdiObject::CreateObject() 1540 CObject * CHtmlEditView::CreateObject() 1541 CObject * CHtmlView::CreateObject() 1542 CObject * CImageList::CreateObject() 1543 CObject * CListView::CreateObject() 1544 CObject * CMapStringToOb::CreateObject() 1545 CObject * CMapStringToString::CreateObject() 1546 CObject * CMapWordToOb::CreateObject() 1547 CObject * CMDIChildWnd::CreateObject() 1548 CObject * CMDIFrameWnd::CreateObject() 1549 CObject * CMenu::CreateObject() 1550 CObject * CMiniDockFrameWnd::CreateObject() 1551 CObject * CMiniFrameWnd::CreateObject() 1552 CObject * CObArray::CreateObject() 1553 CObject * CObList::CreateObject() 1554 CObject * COleDocIPFrameWnd::CreateObject() 1555 CObject * COleIPFrameWnd::CreateObject() 1556 CObject * CPreviewView::CreateObject() 1557 CObject * CRichEditCntrItem::CreateObject() 1558 CObject * CRichEditView::CreateObject() 1559 CObject * CRuntimeClass::CreateObject() 1560 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1561 CObject * CRuntimeClass::CreateObject(char const *) 1562 CObject * CStringArray::CreateObject() 1563 CObject * CStringList::CreateObject() 1564 CObject * CTreeView::CreateObject() 1565 CObject * CWnd::CreateObject() 1566 CObject * CWordArray::CreateObject() 1567 void COleControlContainer::CreateOleFont(CFont *) 1568 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1569 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1570 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1571 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 1572 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 1573 HDC__ * CPageSetupDialog::CreatePrinterDC() 1574 HDC__ * CPrintDialog::CreatePrinterDC() 1575 HDC__ * CPrintDialogEx::CreatePrinterDC() 1576 int CWinApp::CreatePrinterDC(CDC &) 1577 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1578 COleControlSite * COccManager::CreateSite(COleControlContainer *) 1579 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1580 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1581 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1582 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 1583 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1584 void COleControl::CreateTracker(int,int) 1585 void COleControl::CreateTracker(int,int,tagRECT const *) 1586 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1587 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1588 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1589 void COleControl::CreateWindowForSubclassedControl() 1590 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1591 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1592 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1593 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1594 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 1595 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 1596 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 1597 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 1598 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 1599 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 1600 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 1601 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 1602 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 1603 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 1604 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 1605 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 1606 void DDP_PostProcessing(CDataExchange *) 1607 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 1608 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 1609 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 1610 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 1611 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 1612 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 1613 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 1614 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 1615 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 1616 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 1617 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1618 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1619 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1620 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1621 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1622 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1623 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1624 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1625 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1626 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1627 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1628 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1629 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1630 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1631 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1632 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1633 void DDX_CBIndex(CDataExchange *,int,int &) 1634 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1635 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1636 void DDX_Check(CDataExchange *,int,int &) 1637 void DDX_Control(CDataExchange *,int,CWnd &) 1638 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1639 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1640 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1641 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1642 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1643 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1644 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 1645 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 1646 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 1647 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 1648 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 1649 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 1650 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 1651 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 1652 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 1653 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 1654 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 1655 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 1656 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 1657 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 1658 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 1659 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 1660 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 1661 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 1662 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 1663 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 1664 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 1665 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 1666 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 1667 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 1668 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 1669 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 1670 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 1671 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1672 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 1673 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1674 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1675 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1676 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1677 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1678 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1679 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1680 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1681 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1682 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1683 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1684 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1685 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 1686 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 1687 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 1688 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 1689 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 1690 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1691 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 1692 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 1693 void DDX_LBIndex(CDataExchange *,int,int &) 1694 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 1695 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1696 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 1697 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 1698 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 1699 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 1700 void DDX_OCBool(CDataExchange *,int,long,int &) 1701 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 1702 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 1703 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 1704 void DDX_OCFloat(CDataExchange *,int,long,float &) 1705 void DDX_OCFloat(CDataExchange *,int,long,double &) 1706 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 1707 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 1708 void DDX_OCInt(CDataExchange *,int,long,int &) 1709 void DDX_OCInt(CDataExchange *,int,long,long &) 1710 void DDX_OCIntRO(CDataExchange *,int,long,int &) 1711 void DDX_OCIntRO(CDataExchange *,int,long,long &) 1712 void DDX_OCShort(CDataExchange *,int,long,short &) 1713 void DDX_OCShortRO(CDataExchange *,int,long,short &) 1714 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 1715 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 1716 void DDX_Radio(CDataExchange *,int,int &) 1717 void DDX_Scroll(CDataExchange *,int,int &) 1718 void DDX_Slider(CDataExchange *,int,int &) 1719 void DDX_Text(CDataExchange *,int,__int64 &) 1720 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 1721 void DDX_Text(CDataExchange *,int,unsigned char &) 1722 void DDX_Text(CDataExchange *,int,short &) 1723 void DDX_Text(CDataExchange *,int,int &) 1724 void DDX_Text(CDataExchange *,int,unsigned int &) 1725 void DDX_Text(CDataExchange *,int,long &) 1726 void DDX_Text(CDataExchange *,int,unsigned long &) 1727 void DDX_Text(CDataExchange *,int,float &) 1728 void DDX_Text(CDataExchange *,int,double &) 1729 void DDX_Text(CDataExchange *,int,_FILETIME &) 1730 void DDX_Text(CDataExchange *,int,_GUID &) 1731 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 1732 void DDX_Text(CDataExchange *,int,tagDBDATE &) 1733 void DDX_Text(CDataExchange *,int,tagDBTIME &) 1734 void DDX_Text(CDataExchange *,int,tagDEC &) 1735 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 1736 void DDX_Text(CDataExchange *,int,COleCurrency &) 1737 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 1738 void DDX_Text(CDataExchange *,int,wchar_t *,int) 1739 void COleClientItem::Deactivate() 1740 long COlePropertyPage::XPropertyPage::Deactivate() 1741 int COleServerDoc::DeactivateAndUndo() 1742 long COleClientItem::XOleIPSite::DeactivateAndUndo() 1743 long COleControlSite::XOleIPSite::DeactivateAndUndo() 1744 void COleClientItem::DeactivateUI() 1745 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 1746 long CWnd::Default() 1747 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 1748 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 1749 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 1750 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 1751 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 1752 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 1753 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 1754 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 1755 void CControlBar::DelayShow(int) 1756 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1757 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1758 void CException::Delete() 1759 void COleClientItem::Delete(int) 1760 void CRecordset::Delete() 1761 void CWinThread::Delete() 1762 void CSplitterWnd::DeleteColumn(int) 1763 void CDocument::DeleteContents() 1764 void CEditView::DeleteContents() 1765 void CHtmlEditDoc::DeleteContents() 1766 void COleDocument::DeleteContents() 1767 void COleServerDoc::DeleteContents() 1768 void CRichEditDoc::DeleteContents() 1769 void CRichEditView::DeleteContents() 1770 int CDC::DeleteDC() 1771 int CImageList::DeleteImageList() 1772 void CComboBox::DeleteItem(tagDELETEITEM*) 1773 int CComboBoxEx::DeleteItem(int) 1774 void CListBox::DeleteItem(tagDELETEITEM*) 1775 int CGdiObject::DeleteObject() 1776 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 1777 void CSplitterWnd::DeleteRow(int) 1778 void CHandleMap::DeleteTemp() 1779 void CDC::DeleteTempMap() 1780 void CGdiObject::DeleteTempMap() 1781 void CImageList::DeleteTempMap() 1782 void CMenu::DeleteTempMap() 1783 void CWnd::DeleteTempMap() 1784 void CRichEditDoc::DeleteUnmarkedItems()const 1785 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1786 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1787 void CSplitterWnd::DeleteView(int,int) 1788 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 1789 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1790 void COleSafeArray::Destroy() 1791 int COleControlSite::DestroyControl() 1792 void COleSafeArray::DestroyData() 1793 void COleSafeArray::DestroyDescriptor() 1794 void CFrameWnd::DestroyDockBars() 1795 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 1796 int CMenu::DestroyMenu() 1797 void CDHtmlDialog::DestroyModeless() 1798 void COleControl::DestroySharedMenu() 1799 void COleDocIPFrameWnd::DestroySharedMenu() 1800 void COleIPFrameWnd::DestroySharedMenu() 1801 int CToolTipCtrl::DestroyToolTipCtrl() 1802 void COleControl::DestroyTracker() 1803 int CControlBar::DestroyWindow() 1804 int CMDIChildWnd::DestroyWindow() 1805 int CWnd::DestroyWindow() 1806 unsigned int CAsyncSocket::Detach() 1807 HDC__ * CDC::Detach() 1808 void * CDialogTemplate::Detach() 1809 void * CGdiObject::Detach() 1810 _IMAGELIST * CImageList::Detach() 1811 unsigned char * CMemFile::Detach() 1812 HMENU__ * CMenu::Detach() 1813 int CMonikerFile::Detach(CFileException *) 1814 IDataObject * COleDataObject::Detach() 1815 tagVARIANT COleSafeArray::Detach() 1816 IStream * COleStreamFile::Detach() 1817 tagVARIANT COleVariant::Detach() 1818 void * CSharedFile::Detach() 1819 HDC__ * CWindowlessDC::Detach() 1820 HWND__ * CWnd::Detach() 1821 IDispatch * COleDispatchDriver::DetachDispatch() 1822 void CAsyncSocket::DetachHandle(unsigned int,int) 1823 void COleControlSite::DetachWindow() 1824 void CWinApp::DevModeChange(wchar_t *) 1825 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1826 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1827 int COleServerDoc::DiscardUndoState() 1828 long COleClientItem::XOleIPSite::DiscardUndoState() 1829 long COleControlSite::XOleIPSite::DiscardUndoState() 1830 void COleDispatchImpl::Disconnect() 1831 void CDHtmlDialog::DisconnectDHtmlElementEvents() 1832 void CDHtmlDialog::DisconnectDHtmlEvents() 1833 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 1834 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 1835 void CDocument::DisconnectViews() 1836 void CWinThread::DispatchThreadMessage(tagMSG *) 1837 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1838 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 1839 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 1840 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 1841 void CAsyncSocket::DoCallBack(unsigned int,long) 1842 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 1843 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 1844 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 1845 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 1846 void COleControl::DoClick() 1847 int COleFrameHook::DoContextSensitiveHelp(int) 1848 int COleConvertDialog::DoConvert(COleClientItem *) 1849 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 1850 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 1851 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 1852 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 1853 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 1854 int COleFrameHook::DoEnableModeless(int) 1855 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 1856 void CRecordset::DoFieldExchange(CFieldExchange *) 1857 int CDocument::DoFileSave() 1858 int CSplitterWnd::DoKeyboardSplit() 1859 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 1860 int CColorDialog::DoModal() 1861 int CDialog::DoModal() 1862 int CFileDialog::DoModal() 1863 int CFontDialog::DoModal() 1864 int COleBusyDialog::DoModal() 1865 int COleChangeIconDialog::DoModal() 1866 int COleChangeSourceDialog::DoModal() 1867 int COleConvertDialog::DoModal() 1868 int COleInsertDialog::DoModal(unsigned long) 1869 int COleInsertDialog::DoModal() 1870 int COleLinksDialog::DoModal() 1871 int COlePasteSpecialDialog::DoModal() 1872 int COlePropertiesDialog::DoModal() 1873 int COleUpdateDialog::DoModal() 1874 int CPageSetupDialog::DoModal() 1875 int CPrintDialog::DoModal() 1876 int CPrintDialogEx::DoModal() 1877 int CPropertySheet::DoModal() 1878 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 1879 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 1880 void CControlBar::DoPaint(CDC *) 1881 void CDockBar::DoPaint(CDC *) 1882 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 1883 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 1884 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 1885 int CView::DoPreparePrinting(CPrintInfo *) 1886 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 1887 int CWinApp::DoPrintDialog(CPrintDialog *) 1888 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 1889 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 1890 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 1891 void COleControl::DoPropExchange(CPropExchange *) 1892 int CDocument::DoSave(wchar_t const *,int) 1893 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 1894 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 1895 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 1896 int CCmdUI::DoUpdate(CCmdTarget *,int) 1897 int COleCmdUI::DoUpdate(CCmdTarget *,int) 1898 int COleClientItem::DoVerb(long,CView *,tagMSG *) 1899 long COleControlSite::DoVerb(long,tagMSG *) 1900 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1901 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1902 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1903 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 1904 void CWinApp::DoWaitCursor(int) 1905 void CPreviewView::DoZoom(unsigned int,CPoint) 1906 void CDC::DPtoHIMETRIC(tagSIZE *)const 1907 void CDC::DPtoLP(tagSIZE *)const 1908 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 1909 unsigned int CDragListBox::Dragging(CPoint) 1910 long COleDropTarget::XDropTarget::DragLeave() 1911 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 1912 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 1913 void CRectTracker::Draw(CDC *)const 1914 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 1915 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 1916 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 1917 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 1918 void CControlBar::DrawBorders(CDC *,CRect &) 1919 void COleControl::DrawContent(CDC *,CRect &) 1920 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 1921 void CDockContext::DrawFocusRect(int) 1922 void CControlBar::DrawGripper(CDC *,CRect const &) 1923 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 1924 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 1925 void CDragListBox::DrawInsert(int) 1926 void CBitmapButton::DrawItem(tagDRAWITEM*) 1927 void CButton::DrawItem(tagDRAWITEM*) 1928 void CCheckListBox::DrawItem(tagDRAWITEM*) 1929 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 1930 void CComboBox::DrawItem(tagDRAWITEM*) 1931 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 1932 void CListBox::DrawItem(tagDRAWITEM*) 1933 void CListCtrl::DrawItem(tagDRAWITEM*) 1934 void CListView::DrawItem(tagDRAWITEM*) 1935 void CMenu::DrawItem(tagDRAWITEM*) 1936 void CStatic::DrawItem(tagDRAWITEM*) 1937 void CStatusBar::DrawItem(tagDRAWITEM*) 1938 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 1939 void CTabCtrl::DrawItem(tagDRAWITEM*) 1940 void COleControl::DrawMetafile(CDC *,CRect &) 1941 void CDragListBox::DrawSingle(int) 1942 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 1943 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 1944 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 1945 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 1946 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 1947 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 1948 void CDragListBox::Dropped(int,CPoint) 1949 CDumpContext & CDumpContext::DumpAsHex(__int64) 1950 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 1951 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 1952 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 1953 CDumpContext & CDumpContext::DumpAsHex(int) 1954 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 1955 CDumpContext & CDumpContext::DumpAsHex(long) 1956 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 1957 long COleControl::XDataObject::DUnadvise(unsigned long) 1958 long COleDataSource::XDataObject::DUnadvise(unsigned long) 1959 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 1960 long COleServerItem::XDataObject::DUnadvise(unsigned long) 1961 CFile * CFile::Duplicate()const 1962 CFile * CInternetFile::Duplicate()const 1963 CFile * CMemFile::Duplicate()const 1964 CFile * COleStreamFile::Duplicate()const 1965 CFile * CSocketFile::Duplicate()const 1966 CFile * CStdioFile::Duplicate()const 1967 unsigned long const CEditView::dwStyleDefault 1968 void CRecordset::Edit() 1969 long COlePropertyPage::XPropertyPage::EditProperty(long) 1970 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 1971 void CDBException::Empty() 1972 void COleDataSource::Empty() 1973 void CCheckListBox::Enable(int,int) 1974 void CCmdUI::Enable(int) 1975 void COleCmdUI::Enable(int) 1976 void CStatusCmdUI::Enable(int) 1977 void CTestCmdUI::Enable(int) 1978 void CToolCmdUI::Enable(int) 1979 void CCmdTarget::EnableAggregation() 1980 void CCmdTarget::EnableAutomation() 1981 void CRecordset::EnableBookmarks() 1982 void CCmdTarget::EnableConnections() 1983 void CControlBar::EnableDocking(unsigned long) 1984 void CFrameWnd::EnableDocking(unsigned long) 1985 void COleControlSite::EnableDSC() 1986 long CBrowserControlSite::EnableModeless(int) 1987 long CDHtmlDialog::EnableModeless(int) 1988 void CWinApp::EnableModeless(int) 1989 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 1990 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 1991 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 1992 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 1993 long COleControlContainer::XOleIPFrame::EnableModeless(int) 1994 void CWnd::EnableScrollBarCtrl(int,int) 1995 void CWinApp::EnableShellOpen() 1996 void COleControl::EnableSimpleFrame() 1997 void CPropertySheet::EnableStackedTabs(int) 1998 int CInternetSession::EnableStatusCallback(int) 1999 int CWnd::EnableToolTips(int) 2000 int CWnd::EnableTrackingToolTips(int) 2001 void CCmdTarget::EnableTypeLib() 2002 int COleControlSite::EnableWindow(int) 2003 int CWnd::EnableWindow(int) 2004 void COleMessageFilter::EndBusyState() 2005 void CAsyncMonikerFile::EndCallbacks() 2006 long COleLinkingDoc::EndDeferErrors(long) 2007 void CDialog::EndDialog(int) 2008 void CPropertyPage::EndDialog(int) 2009 void CPropertySheet::EndDialog(int) 2010 void CDockContext::EndDrag() 2011 void CWnd::EndModalLoop(int) 2012 void CFrameWnd::EndModalState() 2013 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2014 void CDockContext::EndResize() 2015 void CCmdTarget::EndWaitCursor() 2016 void COleDataObject::EnsureClipboardObject() 2017 long CWnd::EnsureStdObj() 2018 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2019 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2020 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2021 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2022 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2023 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2024 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2025 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2026 int COlePropertyPage::EnumControls(HWND__ *,long) 2027 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2028 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2029 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2030 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2031 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2032 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2033 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2034 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2035 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2036 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2037 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2038 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2039 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2040 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2041 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2042 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2043 void CControlBar::EraseNonClient() 2044 int CFileException::ErrnoToException(int) 2045 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2046 int CMetaFileDC::Escape(int,int,char const *,void *) 2047 int CPreviewDC::Escape(int,int,char const *,void *) 2048 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2049 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2050 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2051 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2052 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2053 int COleControl::ExchangeExtent(CPropExchange *) 2054 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2055 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2056 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2057 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2058 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2059 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2060 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2061 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2062 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2063 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2064 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2065 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2066 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2067 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2068 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2069 void COleControl::ExchangeStockProps(CPropExchange *) 2070 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2071 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2072 int CDC::ExcludeClipRect(int,int,int,int) 2073 int CDC::ExcludeClipRect(tagRECT const *) 2074 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2075 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2076 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2077 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2078 int CHtmlEditView::ExecHandler(unsigned int) 2079 int CWnd::ExecuteDlgInit(void *) 2080 int CWnd::ExecuteDlgInit(wchar_t const *) 2081 void CRecordset::ExecuteSetPosUpdate() 2082 void CDatabase::ExecuteSQL(wchar_t const *) 2083 void CRecordset::ExecuteUpdateSQL() 2084 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2085 void CFrameWnd::ExitHelpMode() 2086 int COleControlModule::ExitInstance() 2087 int CWinApp::ExitInstance() 2088 int CWinThread::ExitInstance() 2089 unsigned long CCmdTarget::ExternalAddRef() 2090 void CCmdTarget::ExternalDisconnect() 2091 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2092 unsigned long CCmdTarget::ExternalRelease() 2093 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2094 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2095 void CDataExchange::Fail() 2096 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2097 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2098 void CArchive::FillBuffer(unsigned int) 2099 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 2100 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2101 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2102 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2103 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2104 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2105 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2106 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2107 void CWnd::FilterToolTipMessage(tagMSG *) 2108 __POSITION * CObList::Find(CObject *,__POSITION *)const 2109 __POSITION * CPtrList::Find(void *,__POSITION *)const 2110 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 2111 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 2112 int CDockBar::FindBar(CControlBar *,int) 2113 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2114 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2115 int CFileFind::FindFile(wchar_t const *,unsigned long) 2116 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 2117 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 2118 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 2119 __POSITION * CObList::FindIndex(int)const 2120 __POSITION * CPtrList::FindIndex(int)const 2121 __POSITION * CStringList::FindIndex(int)const 2122 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2123 int CFileFind::FindNextFileW() 2124 int CFtpFileFind::FindNextFileW() 2125 int CGopherFileFind::FindNextFileW() 2126 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2127 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 2128 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 2129 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 2130 int CEditView::FindTextW(wchar_t const *,int,int) 2131 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 2132 int COleClientItem::FinishCreate(long) 2133 void COleControl::FireError(long,wchar_t const *,unsigned int) 2134 void COleControl::FireEvent(long,unsigned char *,...) 2135 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2136 void COleControl::FireEventV(long,unsigned char *,char *) 2137 void CRecordset::Fixups() 2138 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2139 void CArchive::Flush() 2140 void CDumpContext::Flush() 2141 void CFile::Flush() 2142 void CInternetFile::Flush() 2143 void CMemFile::Flush() 2144 void CMonikerFile::Flush() 2145 void COleStreamFile::Flush() 2146 void CSocketFile::Flush() 2147 void CStdioFile::Flush() 2148 void COleDataSource::FlushClipboard() 2149 int CRecordset::FlushResultSet() 2150 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2151 void COleControl::ForwardActivationMsg(tagMSG *) 2152 void CAfxStringMgr::Free(ATL::CStringData *) 2153 void CDatabase::Free() 2154 void CFixedAlloc::Free(void *) 2155 void CFixedAllocNoSync::Free(void *) 2156 void CMemFile::Free(unsigned char *) 2157 void CSharedFile::Free(unsigned char *) 2158 void CFixedAlloc::FreeAll() 2159 void CFixedAllocNoSync::FreeAll() 2160 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2161 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2162 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2163 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2164 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2165 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2166 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2167 void CRecordset::FreeDataCache() 2168 void CPlex::FreeDataChain() 2169 void CByteArray::FreeExtra() 2170 void CDWordArray::FreeExtra() 2171 void CObArray::FreeExtra() 2172 void CPtrArray::FreeExtra() 2173 void CStringArray::FreeExtra() 2174 void CUIntArray::FreeExtra() 2175 void CWordArray::FreeExtra() 2176 void CObList::FreeNode(CObList::CNode *) 2177 void CPtrList::FreeNode(CPtrList::CNode *) 2178 void CStringList::FreeNode(CStringList::CNode *) 2179 void CRecordset::FreeRowset() 2180 void CThreadSlotData::FreeSlot(int) 2181 void CProperty::FreeValue() 2182 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2183 void COleControlContainer::FreezeAllEvents(int) 2184 void COleControlSite::FreezeEvents(int) 2185 long COleControl::XOleControl::FreezeEvents(int) 2186 int COleClientItem::FreezeLink() 2187 CDC * CDC::FromHandle(HDC__ *) 2188 CGdiObject * CGdiObject::FromHandle(void *) 2189 CObject * CHandleMap::FromHandle(void *) 2190 CImageList * CImageList::FromHandle(_IMAGELIST *) 2191 CMenu * CMenu::FromHandle(HMENU__ *) 2192 CWnd * CWnd::FromHandle(HWND__ *) 2193 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2194 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2195 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2196 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2197 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2198 CRuntime* CRuntimeClass::FromName(char const *) 2199 void * CProperty::Get(unsigned long *) 2200 void * CProperty::Get() 2201 void * CPropertySection::Get(unsigned long) 2202 void * CPropertySection::Get(unsigned long,unsigned long *) 2203 void * CPropertySet::Get(_GUID,unsigned long) 2204 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2205 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2206 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2207 long CWnd::get_accChildCount(long *) 2208 long CWnd::XAccessible::get_accChildCount(long *) 2209 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2210 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2211 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2212 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2213 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2214 long CWnd::get_accFocus(tagVARIANT *) 2215 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2216 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2217 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2218 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2219 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2220 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2221 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2222 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2223 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2224 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2225 long CWnd::get_accParent(IDispatch * *) 2226 long CWnd::XAccessible::get_accParent(IDispatch * *) 2227 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2228 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2229 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2230 long CWnd::get_accSelection(tagVARIANT *) 2231 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2232 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2233 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2234 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2235 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2236 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2237 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2238 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2239 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2240 long CWnd::GetAccessibleChildCount() 2241 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2242 unsigned long COleControl::GetActivationPolicy() 2243 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2244 CDocument * CFrameWnd::GetActiveDocument() 2245 CFrameWnd * CFrameWnd::GetActiveFrame() 2246 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2247 int CPropertySheet::GetActiveIndex()const 2248 CPropertyPage * CPropertySheet::GetActivePage()const 2249 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2250 CView * CFrameWnd::GetActiveView()const 2251 IOleDocumentView * COleDocObjectItem::GetActiveView()const 2252 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2253 int CHtmlView::GetAddressBar()const 2254 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2255 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2256 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2257 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2258 short COleControl::GetAppearance() 2259 IDispatch * CHtmlView::GetApplication()const 2260 HKEY__ * CWinApp::GetAppRegistryKey() 2261 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2262 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2263 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2264 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2265 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2266 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2267 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2268 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2269 unsigned long COleControl::GetBackColor() 2270 void CControlBar::GetBarInfo(CControlBarInfo *) 2271 void CDockBar::GetBarInfo(CControlBarInfo *) 2272 unsigned long CAsyncMonikerFile::GetBindInfo()const 2273 void * CBlobProperty::GetBlob() 2274 void CRecordset::GetBookmark(CDBVariant &) 2275 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2276 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2277 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2278 short COleControl::GetBorderStyle() 2279 long CDataSourceControl::GetBoundClientRow() 2280 int CRecordset::GetBoundFieldIndex(void *) 2281 int CRecordset::GetBoundParamIndex(void *) 2282 unsigned int CEditView::GetBufferLength()const 2283 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2284 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2285 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2286 int CHtmlView::GetBusy()const 2287 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2288 unsigned int CToolBar::GetButtonStyle(int)const 2289 ATL::CStringT > > CToolBar::GetButtonText(int)const 2290 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2291 void COleSafeArray::GetByteArray(CByteArray &) 2292 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2293 unsigned short CPropertySet::GetByteOrder() 2294 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2295 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2296 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2297 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2298 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2299 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2300 CWnd * COleControl::GetCapture() 2301 long COleControlSite::XOleIPSite::GetCapture() 2302 void CFontDialog::GetCharFormat(_charformatw &)const 2303 CHARFORMAT2W & CRichEditView::GetCharFormatSelection() 2304 int CCheckListBox::GetCheck(int) 2305 int CListCtrl::GetCheck(int)const 2306 int CTreeCtrl::GetCheck(_TREEITEM *)const 2307 int CWnd::GetCheckedRadioButton(int,int) 2308 long CBlobProperty::GetClassID(_GUID *) 2309 void COleClientItem::GetClassID(_GUID *)const 2310 _GUID CPropertySet::GetClassID() 2311 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2312 long COleControl::XPersistMemory::GetClassID(_GUID *) 2313 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2314 long COleControl::XPersistStorage::GetClassID(_GUID *) 2315 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2316 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2317 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 2318 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2319 void COleControl::GetClientOffset(long *,long *)const 2320 void COleControl::GetClientRect(tagRECT *)const 2321 IOleClientSite * COleClientItem::GetClientSite() 2322 IOleClientSite * COleControl::GetClientSite() 2323 IOleClientSite * CRichEditCntrItem::GetClientSite() 2324 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2325 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2326 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2327 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2328 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2329 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2330 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2331 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2332 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2333 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2334 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2335 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2336 COleDataSource * COleDataSource::GetClipboardOwner() 2337 int CDC::GetClipBox(tagRECT *)const 2338 int CMetaFileDC::GetClipBox(tagRECT *)const 2339 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2340 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2341 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2342 int CListCtrl::GetColumnOrderArray(int *,int) 2343 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2344 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 2345 void CDatabase::GetConnectInfo() 2346 int CConnectionPoint::GetConnectionCount() 2347 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2348 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2349 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2350 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2351 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2352 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2353 CPtrArray const * CConnectionPoint::GetConnections() 2354 IConnectionPointContainer * CConnectionPoint::GetContainer() 2355 IDispatch * CHtmlView::GetContainer()const 2356 IOleItemContainer * COleDocument::GetContainer() 2357 IOleItemContainer * COleLinkingDoc::GetContainer() 2358 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2359 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2360 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2361 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2362 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2363 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2364 COleControlContainer * CWnd::GetControlContainer() 2365 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 2366 unsigned long COleControl::GetControlFlags() 2367 void COleControlSite::GetControlInfo() 2368 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2369 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2370 IUnknown * CCmdTarget::GetControllingUnknown() 2371 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2372 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 2373 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 2374 void COleControl::GetControlSize(int *,int *) 2375 int COlePropertyPage::GetControlStatus(unsigned int) 2376 IUnknown * CWnd::GetControlUnknown() 2377 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2378 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 2379 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 2380 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 2381 int CPrintDialog::GetCopies()const 2382 int CPrintDialogEx::GetCopies()const 2383 unsigned long CPropertySection::GetCount() 2384 unsigned long CPropertySet::GetCount() 2385 int CFileFind::GetCreationTime(ATL::CTime &)const 2386 int CFileFind::GetCreationTime(_FILETIME *)const 2387 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2388 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2389 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2390 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2391 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 2392 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 2393 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 2394 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 2395 tagMSG const * CWnd::GetCurrentMessage() 2396 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2397 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2398 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2399 IUnknown * CDataBoundProperty::GetCursor() 2400 IUnknown * CDataSourceControl::GetCursor() 2401 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2402 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2403 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2404 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2405 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2406 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2407 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2408 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2409 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2410 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2411 ATL::CStringT > > CDatabase::GetDatabaseName()const 2412 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2413 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2414 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2415 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2416 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2417 CNoTrackObject * CThreadLocalObject::GetDataNA() 2418 IDataObject * COleServerItem::GetDataObject() 2419 COleControl::CControlDataSource * COleControl::GetDataSource() 2420 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2421 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2422 HACCEL__ * CDocument::GetDefaultAccelerator() 2423 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2424 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 2425 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 2426 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 2427 ATL::CStringT > > CRecordset::GetDefaultConnect() 2428 short CRecordset::GetDefaultFieldType(short) 2429 HMENU__ * CDocument::GetDefaultMenu() 2430 HMENU__ * COleServerDoc::GetDefaultMenu() 2431 int CPrintDialog::GetDefaults() 2432 int CPrintDialogEx::GetDefaults() 2433 ATL::CStringT > > CRecordset::GetDefaultSQL() 2434 unsigned long COccManager::GetDefBtnCode(CWnd *) 2435 unsigned long COleControlSite::GetDefBtnCode() 2436 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2437 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 2438 ATL::CStringT > > CPrintDialog::GetDeviceName()const 2439 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 2440 CPoint CScrollView::GetDeviceScrollPosition()const 2441 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2442 _devicemodeW * CPageSetupDialog::GetDevMode()const 2443 _devicemodeW * CPrintDialog::GetDevMode()const 2444 _devicemodeW * CPrintDialogEx::GetDevMode()const 2445 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2446 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2447 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2448 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2449 DHtmlEventMapEntry const * GetDHtmlEventMap() 2450 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 2451 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 2452 int CCmdTarget::GetDispatchIID(_GUID *) 2453 int COleControl::GetDispatchIID(_GUID *) 2454 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2455 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 2456 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2457 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 2458 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2459 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2460 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2461 int COleControlSite::GetDlgCtrlID()const 2462 int CWnd::GetDlgCtrlID()const 2463 CWnd * COleControlContainer::GetDlgItem(int)const 2464 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2465 CWnd * CWnd::GetDlgItem(int)const 2466 void CWnd::GetDlgItem(int,HWND__ * *)const 2467 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2468 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2469 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 2470 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 2471 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 2472 CDockBar * CDockContext::GetDockBar(unsigned long) 2473 CControlBar * CDockBar::GetDockedControlBar(int)const 2474 int CDockBar::GetDockedCount()const 2475 int CDockBar::GetDockedVisibleCount()const 2476 CFrameWnd * CControlBar::GetDockingFrame()const 2477 void CFrameWnd::GetDockState(CDockState &)const 2478 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2479 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2480 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2481 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2482 int CDocManager::GetDocumentCount() 2483 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2484 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 2485 ATL::CStringT > > CPrintDialog::GetDriverName()const 2486 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 2487 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2488 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2489 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2490 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2491 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2492 IUnknown * CWnd::GetDSCCursor() 2493 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 2494 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 2495 void COleSafeArray::GetElement(long *,void *) 2496 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 2497 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 2498 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 2499 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 2500 COleServerItem * COleServerDoc::GetEmbeddedItem() 2501 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2502 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2503 int COleControl::GetEnabled() 2504 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2505 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2506 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2507 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2508 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2509 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2510 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2511 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2512 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2513 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2514 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2515 int COleControlSite::GetEventIID(_GUID *) 2516 AFX_EVENTMAP const * COleControl::GetEventMap()const 2517 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 2518 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 2519 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2520 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2521 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 2522 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 2523 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 2524 unsigned long COleControlSite::GetExStyle()const 2525 unsigned long CWnd::GetExStyle()const 2526 IDispatch * COleControl::GetExtendedControl() 2527 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2528 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2529 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2530 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2531 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2532 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2533 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2534 long CBrowserControlSite::GetExternal(IDispatch * *) 2535 long CDHtmlDialog::GetExternal(IDispatch * *) 2536 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2537 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2538 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2539 short CRecordset::GetFieldIndexByName(wchar_t const *) 2540 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2541 unsigned char CRecordset::GetFieldStatus(unsigned long) 2542 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2543 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2544 void CRecordset::GetFieldValue(short,CDBVariant &,short) 2545 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 2546 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 2547 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 2548 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 2549 ATL::CStringT > > CFileDialog::GetFileExt()const 2550 ATL::CStringT > > CFile::GetFileName()const 2551 ATL::CStringT > > CFileDialog::GetFileName()const 2552 ATL::CStringT > > CFileFind::GetFileName()const 2553 ATL::CStringT > > CGopherFileFind::GetFileName()const 2554 ATL::CStringT > > CFile::GetFilePath()const 2555 ATL::CStringT > > CFileFind::GetFilePath()const 2556 ATL::CStringT > > CGopherFileFind::GetFilePath()const 2557 ATL::CStringT > > CFile::GetFileTitle()const 2558 ATL::CStringT > > CFileDialog::GetFileTitle()const 2559 ATL::CStringT > > CFileFind::GetFileTitle()const 2560 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 2561 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 2562 ATL::CStringT > > CFileFind::GetFileURL()const 2563 ATL::CStringT > > CFtpFileFind::GetFileURL()const 2564 ATL::CStringT > > CGopherFileFind::GetFileURL()const 2565 ATL::CStringT > > CHttpFile::GetFileURL()const 2566 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 2567 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2568 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2569 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2570 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2571 CFrameWnd * COleDocument::GetFirstFrame() 2572 __POSITION * CDocument::GetFirstViewPosition()const 2573 CWnd * COleControl::GetFocus() 2574 long COleControlSite::XOleIPSite::GetFocus() 2575 ATL::CStringT > > CFileDialog::GetFolderPath()const 2576 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 2577 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 2578 IFontDisp * COleControl::GetFont() 2579 IFontDisp * CFontHolder::GetFontDispatch() 2580 HFONT__ * CFontHolder::GetFontHandle(long,long) 2581 HFONT__ * CFontHolder::GetFontHandle() 2582 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2583 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 2584 unsigned long COleControl::GetForeColor() 2585 _GUID CPropertySection::GetFormatID() 2586 unsigned short CPropertySet::GetFormatVersion() 2587 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 2588 ATL::CStringT > > CHtmlView::GetFullName()const 2589 int CHtmlView::GetFullScreen()const 2590 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 2591 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 2592 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 2593 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 2594 CBrush * CDC::GetHalftoneBrush() 2595 unsigned int CRectTracker::GetHandleMask()const 2596 void CRectTracker::GetHandleRect(int,CRect *)const 2597 int CRectTracker::GetHandleSize(tagRECT const *)const 2598 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2599 long CHtmlView::GetHeight()const 2600 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 2601 void CSplitterWnd::GetHitRect(int,CRect &) 2602 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 2603 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 2604 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 2605 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2606 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 2607 IDispatch * CHtmlView::GetHtmlDocument()const 2608 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 2609 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 2610 unsigned int COleControl::GetHwnd() 2611 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 2612 HICON__ * COleClientItem::GetIconFromRegistry()const 2613 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 2614 void * COleClientItem::GetIconicMetafile() 2615 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2616 unsigned long CProperty::GetID() 2617 int CPropertySection::GetID(wchar_t const *,unsigned long *) 2618 IDataObject * COleDataObject::GetIDataObject(int) 2619 IDispatch * CCmdTarget::GetIDispatch(int) 2620 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2621 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2622 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2623 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2624 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2625 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2626 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2627 _GUID const & COleControl::XEventConnPt::GetIID() 2628 CImageList * CReBarCtrl::GetImageList()const 2629 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 2630 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 2631 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 2632 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 2633 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 2634 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 2635 CWnd * COleClientItem::GetInPlaceWindow() 2636 void CSplitterWnd::GetInsideRect(CRect &)const 2637 IUnknown * CCmdTarget::GetInterface(void const *) 2638 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 2639 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2640 IUnknown * COleControl::GetInterfaceHook(void const *) 2641 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 2642 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2643 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 2644 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 2645 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 2646 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 2647 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 2648 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 2649 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 2650 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 2651 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 2652 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 2653 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 2654 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 2655 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 2656 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 2657 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 2658 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 2659 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 2660 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 2661 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 2662 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 2663 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 2664 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 2665 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 2666 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 2667 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2668 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 2669 void COleServerDoc::GetItemClipRect(tagRECT *)const 2670 unsigned long CListCtrl::GetItemData(int)const 2671 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2672 unsigned int CStatusBar::GetItemID(int)const 2673 unsigned int CToolBar::GetItemID(int)const 2674 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2675 void COleClientItem::GetItemName(wchar_t *)const 2676 void COleServerDoc::GetItemPosition(tagRECT *)const 2677 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2678 void CStatusBar::GetItemRect(int,tagRECT *)const 2679 void CToolBar::GetItemRect(int,tagRECT *)const 2680 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2681 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2682 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2683 void COleClientItem::GetItemStorage() 2684 void COleClientItem::GetItemStorageCompound() 2685 void COleClientItem::GetItemStorageFlat() 2686 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 2687 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 2688 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 2689 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 2690 int CFileFind::GetLastAccessTime(ATL::CTime &)const 2691 int CFileFind::GetLastAccessTime(_FILETIME *)const 2692 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 2693 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2694 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 2695 int CFileFind::GetLastWriteTime(ATL::CTime &)const 2696 int CFileFind::GetLastWriteTime(_FILETIME *)const 2697 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 2698 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2699 unsigned long CDC::GetLayout()const 2700 long CRecordset::GetLBFetchSize(long) 2701 void COleSafeArray::GetLBound(unsigned long,long *) 2702 long CRecordset::GetLBReallocSize(long) 2703 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 2704 long CHtmlView::GetLeft()const 2705 unsigned __int64 CFile::GetLength()const 2706 unsigned __int64 CFileFind::GetLength()const 2707 unsigned __int64 CGopherFileFind::GetLength()const 2708 unsigned __int64 CInternetFile::GetLength()const 2709 unsigned __int64 CMemFile::GetLength()const 2710 unsigned __int64 COleStreamFile::GetLength()const 2711 unsigned __int64 CSocketFile::GetLength()const 2712 unsigned __int64 CStdioFile::GetLength()const 2713 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 2714 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 2715 int CRichEditCtrl::GetLine(int,wchar_t *)const 2716 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 2717 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 2718 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 2719 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 2720 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 2721 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 2722 CPtrList * CPropertySection::GetList() 2723 CPtrList * CPropertySet::GetList() 2724 ATL::CStringT > > CHtmlView::GetLocationName()const 2725 ATL::CStringT > > CHtmlView::GetLocationURL()const 2726 CGopherLocator CGopherFileFind::GetLocator()const 2727 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 2728 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 2729 long CFieldExchange::GetLongBinarySize(int) 2730 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2731 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2732 CWnd * CWinThread::GetMainWnd() 2733 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2734 int CConnectionPoint::GetMaxConnections() 2735 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2736 int CHtmlView::GetMenuBar()const 2737 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 2738 CWnd * CFrameWnd::GetMessageBar() 2739 CWnd * CMDIChildWnd::GetMessageBar() 2740 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2741 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2742 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2743 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2744 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 2745 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2746 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 2747 AFX_MSGMAP const * CDialog::GetMessageMap()const 2748 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2749 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2750 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 2751 AFX_MSGMAP const * CDocument::GetMessageMap()const 2752 AFX_MSGMAP const * CEditView::GetMessageMap()const 2753 AFX_MSGMAP const * CFormView::GetMessageMap()const 2754 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2755 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 2756 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 2757 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2758 AFX_MSGMAP const * CListView::GetMessageMap()const 2759 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2760 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2761 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2762 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2763 AFX_MSGMAP const * COleControl::GetMessageMap()const 2764 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 2765 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 2766 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 2767 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 2768 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 2769 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 2770 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2771 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2772 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 2773 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2774 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2775 AFX_MSGMAP const * CReBar::GetMessageMap()const 2776 AFX_MSGMAP const * CRecordView::GetMessageMap()const 2777 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 2778 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2779 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 2780 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2781 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2782 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2783 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2784 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2785 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2786 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2787 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2788 AFX_MSGMAP const * CView::GetMessageMap()const 2789 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2790 AFX_MSGMAP const * CWnd::GetMessageMap()const 2791 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 2792 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 2793 long CDataSourceControl::GetMetaData() 2794 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2795 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2796 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2797 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2798 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2799 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2800 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 2801 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 2802 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 2803 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 2804 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 2805 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2806 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2807 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2808 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2809 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2810 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 2811 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 2812 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 2813 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 2814 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 2815 unsigned long COleClientItem::GetNewItemNumber() 2816 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 2817 CDataBoundProperty * CDataBoundProperty::GetNext() 2818 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 2819 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 2820 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 2821 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 2822 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 2823 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 2824 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 2825 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 2826 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 2827 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 2828 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 2829 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 2830 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 2831 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 2832 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 2833 int COleDataObject::GetNextFormat(tagFORMATETC *) 2834 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 2835 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 2836 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 2837 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 2838 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 2839 CView * CDocument::GetNextView(__POSITION * &)const 2840 ATL::CStringData * CAfxStringMgr::GetNilString() 2841 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 2842 void CCmdTarget::GetNotSupported() 2843 void COleControl::GetNotSupported() 2844 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 2845 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 2846 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 2847 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 2848 unsigned int CArchive::GetObjectSchema() 2849 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 2850 ATL::CStringT > > CHttpFile::GetObjectW()const 2851 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 2852 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 2853 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 2854 int CHtmlView::GetOffline()const 2855 tagOFNW & CFileDialog::GetOFN() 2856 tagOFNW const & CFileDialog::GetOFN()const 2857 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 2858 IOleObject * COleServerItem::GetOleObject() 2859 unsigned long COleSafeArray::GetOneDimSize() 2860 int CDocManager::GetOpenDocumentCount() 2861 int CWinApp::GetOpenDocumentCount() 2862 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 2863 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 2864 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 2865 int CHeaderCtrl::GetOrderArray(int *,int) 2866 unsigned long CPropertySet::GetOSVersion() 2867 CWnd * COleControl::GetOuterWindow()const 2868 int COleDocObjectItem::GetPageCount(long *,long *) 2869 int CPropertySheet::GetPageCount()const 2870 int CPropertySheet::GetPageIndex(CPropertyPage *) 2871 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 2872 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 2873 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 2874 IPropertyPageSite * COlePropertyPage::GetPageSite() 2875 CWnd * CSplitterWnd::GetPane(int,int)const 2876 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 2877 unsigned int CStatusBar::GetPaneStyle(int)const 2878 ATL::CStringT > > CStatusBar::GetPaneText(int)const 2879 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 2880 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 2881 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 2882 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 2883 IDispatch * CHtmlView::GetParentBrowser()const 2884 CFrameWnd * CWnd::GetParentFrame()const 2885 CWnd * CWnd::GetParentOwner()const 2886 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 2887 ATL::CStringT > > CFileDialog::GetPathName()const 2888 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 2889 IPictureDisp * CPictureHolder::GetPictureDispatch() 2890 ATL::CStringT > > CPageSetupDialog::GetPortName()const 2891 ATL::CStringT > > CPrintDialog::GetPortName()const 2892 ATL::CStringT > > CPrintDialogEx::GetPortName()const 2893 unsigned __int64 CFile::GetPosition()const 2894 unsigned __int64 CMemFile::GetPosition()const 2895 unsigned __int64 COleStreamFile::GetPosition()const 2896 unsigned __int64 CSocketFile::GetPosition()const 2897 unsigned __int64 CStdioFile::GetPosition()const 2898 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 2899 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 2900 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 2901 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 2902 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 2903 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 2904 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 2905 CFont * CEditView::GetPrinterFont()const 2906 long CAsyncMonikerFile::GetPriority()const 2907 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 2908 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 2909 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 2910 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 2911 COleVariant CHtmlView::GetProperty(wchar_t const *) 2912 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 2913 void COleControlSite::GetProperty(long,unsigned short,void *)const 2914 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 2915 CProperty * CPropertySection::GetProperty(unsigned long) 2916 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 2917 void CWnd::GetProperty(long,unsigned short,void *)const 2918 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 2919 _GUID * COleControl::GetPropPageIDs(unsigned long &) 2920 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 2921 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 2922 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 2923 int COlePropertyPage::GetPropText(wchar_t const *,short *) 2924 int COlePropertyPage::GetPropText(wchar_t const *,int *) 2925 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 2926 int COlePropertyPage::GetPropText(wchar_t const *,long *) 2927 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 2928 int COlePropertyPage::GetPropText(wchar_t const *,float *) 2929 int COlePropertyPage::GetPropText(wchar_t const *,double *) 2930 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 2931 _PROPSHEETPAGEW & CPropertyPage::GetPSP() 2932 _PROPSHEETPAGEW const & CPropertyPage::GetPSP()const 2933 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 2934 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 2935 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 2936 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 2937 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 2938 void CProgressCtrl::GetRange(int &,int &) 2939 void CSliderCtrl::GetRange(int &,int &)const 2940 void CSpinButtonCtrl::GetRange(int &,int &)const 2941 void * CProperty::GetRawValue() 2942 enum tagREADYSTATE CHtmlView::GetReadyState()const 2943 long COleControl::GetReadyState() 2944 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 2945 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 2946 int COleControl::GetRectInContainer(tagRECT *) 2947 int CHtmlView::GetRegisterAsBrowser()const 2948 int CHtmlView::GetRegisterAsDropTarget()const 2949 ATL::CStringT > > CFileFind::GetRoot()const 2950 ATL::CStringT > > CGopherFileFind::GetRoot()const 2951 CFrameWnd * CCmdTarget::GetRoutingFrame() 2952 CFrameWnd * CCmdTarget::GetRoutingFrame_() 2953 CView * CCmdTarget::GetRoutingView() 2954 CView * CCmdTarget::GetRoutingView_() 2955 void CSplitterWnd::GetRowInfo(int,int &,int &)const 2956 CRuntime* CAnimateCtrl::GetRuntimeClass()const 2957 CRuntime* CArchiveException::GetRuntimeClass()const 2958 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 2959 CRuntime* CAsyncSocket::GetRuntimeClass()const 2960 CRuntime* CBitmap::GetRuntimeClass()const 2961 CRuntime* CBitmapButton::GetRuntimeClass()const 2962 CRuntime* CBrush::GetRuntimeClass()const 2963 CRuntime* CButton::GetRuntimeClass()const 2964 CRuntime* CByteArray::GetRuntimeClass()const 2965 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 2966 CRuntime* CCheckListBox::GetRuntimeClass()const 2967 CRuntime* CClientDC::GetRuntimeClass()const 2968 CRuntime* CCmdTarget::GetRuntimeClass()const 2969 CRuntime* CColorDialog::GetRuntimeClass()const 2970 CRuntime* CComboBox::GetRuntimeClass()const 2971 CRuntime* CComboBoxEx::GetRuntimeClass()const 2972 CRuntime* CControlBar::GetRuntimeClass()const 2973 CRuntime* CCriticalSection::GetRuntimeClass()const 2974 CRuntime* CCtrlView::GetRuntimeClass()const 2975 CRuntime* CDatabase::GetRuntimeClass()const 2976 CRuntime* CDataPathProperty::GetRuntimeClass()const 2977 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 2978 CRuntime* CDBException::GetRuntimeClass()const 2979 CRuntime* CDC::GetRuntimeClass()const 2980 CRuntime* CDHtmlDialog::GetRuntimeClass()const 2981 CRuntime* CDialog::GetRuntimeClass()const 2982 CRuntime* CDialogBar::GetRuntimeClass()const 2983 CRuntime* CDocItem::GetRuntimeClass()const 2984 CRuntime* CDockBar::GetRuntimeClass()const 2985 CRuntime* CDockState::GetRuntimeClass()const 2986 CRuntime* CDocManager::GetRuntimeClass()const 2987 CRuntime* CDocObjectServer::GetRuntimeClass()const 2988 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 2989 CRuntime* CDocTemplate::GetRuntimeClass()const 2990 CRuntime* CDocument::GetRuntimeClass()const 2991 CRuntime* CDragListBox::GetRuntimeClass()const 2992 CRuntime* CDWordArray::GetRuntimeClass()const 2993 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 2994 CRuntime* CEdit::GetRuntimeClass()const 2995 CRuntime* CEditView::GetRuntimeClass()const 2996 CRuntime* CEvent::GetRuntimeClass()const 2997 CRuntime* CException::GetRuntimeClass()const 2998 CRuntime* CFile::GetRuntimeClass()const 2999 CRuntime* CFileDialog::GetRuntimeClass()const 3000 CRuntime* CFileException::GetRuntimeClass()const 3001 CRuntime* CFileFind::GetRuntimeClass()const 3002 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3003 CRuntime* CFont::GetRuntimeClass()const 3004 CRuntime* CFontDialog::GetRuntimeClass()const 3005 CRuntime* CFormView::GetRuntimeClass()const 3006 CRuntime* CFrameWnd::GetRuntimeClass()const 3007 CRuntime* CFtpConnection::GetRuntimeClass()const 3008 CRuntime* CFtpFileFind::GetRuntimeClass()const 3009 CRuntime* CGdiObject::GetRuntimeClass()const 3010 CRuntime* CGopherConnection::GetRuntimeClass()const 3011 CRuntime* CGopherFile::GetRuntimeClass()const 3012 CRuntime* CGopherFileFind::GetRuntimeClass()const 3013 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3014 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3015 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 3016 CRuntime* CHtmlEditView::GetRuntimeClass()const 3017 CRuntime* CHtmlView::GetRuntimeClass()const 3018 CRuntime* CHttpConnection::GetRuntimeClass()const 3019 CRuntime* CHttpFile::GetRuntimeClass()const 3020 CRuntime* CImageList::GetRuntimeClass()const 3021 CRuntime* CInternetConnection::GetRuntimeClass()const 3022 CRuntime* CInternetException::GetRuntimeClass()const 3023 CRuntime* CInternetFile::GetRuntimeClass()const 3024 CRuntime* CInternetSession::GetRuntimeClass()const 3025 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 3026 CRuntime* CLinkCtrl::GetRuntimeClass()const 3027 CRuntime* CListBox::GetRuntimeClass()const 3028 CRuntime* CListCtrl::GetRuntimeClass()const 3029 CRuntime* CListView::GetRuntimeClass()const 3030 CRuntime* CLongBinary::GetRuntimeClass()const 3031 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3032 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3033 CRuntime* CMapStringToOb::GetRuntimeClass()const 3034 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3035 CRuntime* CMapStringToString::GetRuntimeClass()const 3036 CRuntime* CMapWordToOb::GetRuntimeClass()const 3037 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3038 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3039 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3040 CRuntime* CMemFile::GetRuntimeClass()const 3041 CRuntime* CMemoryException::GetRuntimeClass()const 3042 CRuntime* CMenu::GetRuntimeClass()const 3043 CRuntime* CMetaFileDC::GetRuntimeClass()const 3044 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3045 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3046 CRuntime* CMonikerFile::GetRuntimeClass()const 3047 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 3048 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3049 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 3050 CRuntime* CMutex::GetRuntimeClass()const 3051 CRuntime* CNotSupportedException::GetRuntimeClass()const 3052 CRuntime* CObArray::GetRuntimeClass()const 3053 CRuntime* CObject::GetRuntimeClass()const 3054 CRuntime* CObList::GetRuntimeClass()const 3055 CRuntime* COleBusyDialog::GetRuntimeClass()const 3056 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3057 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3058 CRuntime* COleClientItem::GetRuntimeClass()const 3059 CRuntime* COleControl::GetRuntimeClass()const 3060 CRuntime* COleControlModule::GetRuntimeClass()const 3061 CRuntime* COleConvertDialog::GetRuntimeClass()const 3062 CRuntime* COleDBRecordView::GetRuntimeClass()const 3063 CRuntime* COleDialog::GetRuntimeClass()const 3064 CRuntime* COleDispatchException::GetRuntimeClass()const 3065 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3066 CRuntime* COleDocObjectItem::GetRuntimeClass()const 3067 CRuntime* COleDocument::GetRuntimeClass()const 3068 CRuntime* COleException::GetRuntimeClass()const 3069 CRuntime* COleInsertDialog::GetRuntimeClass()const 3070 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3071 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3072 CRuntime* COleLinksDialog::GetRuntimeClass()const 3073 CRuntime* COleObjectFactory::GetRuntimeClass()const 3074 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3075 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3076 CRuntime* COlePropertyPage::GetRuntimeClass()const 3077 CRuntime* COleResizeBar::GetRuntimeClass()const 3078 CRuntime* COleServerDoc::GetRuntimeClass()const 3079 CRuntime* COleServerItem::GetRuntimeClass()const 3080 CRuntime* COleStreamFile::GetRuntimeClass()const 3081 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3082 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3083 CRuntime* CPaintDC::GetRuntimeClass()const 3084 CRuntime* CPalette::GetRuntimeClass()const 3085 CRuntime* CPen::GetRuntimeClass()const 3086 CRuntime* CPreviewDC::GetRuntimeClass()const 3087 CRuntime* CPreviewView::GetRuntimeClass()const 3088 CRuntime* CPrintDialog::GetRuntimeClass()const 3089 CRuntime* CPrintDialogEx::GetRuntimeClass()const 3090 CRuntime* CProgressCtrl::GetRuntimeClass()const 3091 CRuntime* CPropertyPage::GetRuntimeClass()const 3092 CRuntime* CPropertySheet::GetRuntimeClass()const 3093 CRuntime* CPtrArray::GetRuntimeClass()const 3094 CRuntime* CPtrList::GetRuntimeClass()const 3095 CRuntime* CReBar::GetRuntimeClass()const 3096 CRuntime* CReBarCtrl::GetRuntimeClass()const 3097 CRuntime* CRecordset::GetRuntimeClass()const 3098 CRuntime* CRecordView::GetRuntimeClass()const 3099 CRuntime* CResourceException::GetRuntimeClass()const 3100 CRuntime* CRgn::GetRuntimeClass()const 3101 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3102 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3103 CRuntime* CRichEditDoc::GetRuntimeClass()const 3104 CRuntime* CRichEditView::GetRuntimeClass()const 3105 CRuntime* CScrollBar::GetRuntimeClass()const 3106 CRuntime* CScrollView::GetRuntimeClass()const 3107 CRuntime* CSemaphore::GetRuntimeClass()const 3108 CRuntime* CSharedFile::GetRuntimeClass()const 3109 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3110 CRuntime* CSliderCtrl::GetRuntimeClass()const 3111 CRuntime* CSocket::GetRuntimeClass()const 3112 CRuntime* CSocketFile::GetRuntimeClass()const 3113 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3114 CRuntime* CSplitterWnd::GetRuntimeClass()const 3115 CRuntime* CStatic::GetRuntimeClass()const 3116 CRuntime* CStatusBar::GetRuntimeClass()const 3117 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3118 CRuntime* CStdioFile::GetRuntimeClass()const 3119 CRuntime* CStringArray::GetRuntimeClass()const 3120 CRuntime* CStringList::GetRuntimeClass()const 3121 CRuntime* CSyncObject::GetRuntimeClass()const 3122 CRuntime* CTabCtrl::GetRuntimeClass()const 3123 CRuntime* CToolBar::GetRuntimeClass()const 3124 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3125 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3126 CRuntime* CTreeCtrl::GetRuntimeClass()const 3127 CRuntime* CTreeView::GetRuntimeClass()const 3128 CRuntime* CUIntArray::GetRuntimeClass()const 3129 CRuntime* CUserException::GetRuntimeClass()const 3130 CRuntime* CView::GetRuntimeClass()const 3131 CRuntime* CWinApp::GetRuntimeClass()const 3132 CRuntime* CWindowDC::GetRuntimeClass()const 3133 CRuntime* CWindowlessDC::GetRuntimeClass()const 3134 CRuntime* CWinThread::GetRuntimeClass()const 3135 CRuntime* CWnd::GetRuntimeClass()const 3136 CRuntime* CWordArray::GetRuntimeClass()const 3137 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3138 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3139 unsigned long * CColorDialog::GetSavedCustomColors() 3140 ATL::CStringT > > CGopherFileFind::GetScreenName()const 3141 CSize CDockState::GetScreenSize() 3142 CScrollBar * CView::GetScrollBarCtrl(int)const 3143 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3144 void CScrollView::GetScrollBarSizes(CSize &) 3145 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3146 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3147 int CWnd::GetScrollLimit(int) 3148 int CWnd::GetScrollPos(int)const 3149 CPoint CScrollView::GetScrollPosition()const 3150 void CWnd::GetScrollRange(int,int *,int *)const 3151 unsigned long CSplitterWnd::GetScrollStyle()const 3152 CPropertySection * CPropertySet::GetSection(_GUID) 3153 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 3154 wchar_t const * CPropertySection::GetSectionName() 3155 void CRichEditCtrl::GetSel(long &,long &)const 3156 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3157 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3158 void CSliderCtrl::GetSelection(int &,int &)const 3159 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 3160 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 3161 unsigned int COleConvertDialog::GetSelectionType()const 3162 unsigned int COleInsertDialog::GetSelectionType()const 3163 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3164 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3165 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3166 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3167 ATL::CStringT > > CRichEditCtrl::GetSelText()const 3168 int CHtmlView::GetSilent()const 3169 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3170 unsigned long CPropertySection::GetSize() 3171 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3172 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3173 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3174 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3175 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3176 CWnd * CSplitterWnd::GetSizingParent() 3177 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3178 int CHtmlView::GetSource(ATL::CStringT > > &) 3179 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3180 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3181 wchar_t const * CHtmlEditCtrl::GetStartDocument() 3182 wchar_t const * CHtmlEditView::GetStartDocument() 3183 __POSITION * CConnectionPoint::GetStartPosition()const 3184 __POSITION * COleDocument::GetStartPosition()const 3185 __POSITION * CRichEditDoc::GetStartPosition()const 3186 int CFile::GetStatus(CFileStatus &)const 3187 int CFile::GetStatus(wchar_t const *,CFileStatus &) 3188 int CMemFile::GetStatus(CFileStatus &)const 3189 int COleStreamFile::GetStatus(CFileStatus &)const 3190 int CHtmlView::GetStatusBar()const 3191 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 3192 ATL::CStringT > > const COleStreamFile::GetStorageName()const 3193 IStream * COleStreamFile::GetStream()const 3194 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3195 unsigned long COleControlSite::GetStyle()const 3196 unsigned long COleControlSiteOrWnd::GetStyle()const 3197 unsigned long CWnd::GetStyle()const 3198 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3199 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3200 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3201 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3202 void CListBox::GetText(int,ATL::CStringT > > &)const 3203 wchar_t * COleControl::GetText() 3204 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3205 int CStatusBarCtrl::GetText(wchar_t const *,int,int *)const 3206 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3207 long CRecordset::GetTextLen(short,unsigned long) 3208 int CStatusBarCtrl::GetTextLength(int,int *)const 3209 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3210 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3211 int CHtmlView::GetTheaterMode()const 3212 CRuntime* CAnimateCtrl::GetThisClass() 3213 CRuntime* CArchiveException::GetThisClass() 3214 CRuntime* CAsyncMonikerFile::GetThisClass() 3215 CRuntime* CAsyncSocket::GetThisClass() 3216 CRuntime* CBitmap::GetThisClass() 3217 CRuntime* CBitmapButton::GetThisClass() 3218 CRuntime* CBrush::GetThisClass() 3219 CRuntime* CButton::GetThisClass() 3220 CRuntime* CByteArray::GetThisClass() 3221 CRuntime* CCachedDataPathProperty::GetThisClass() 3222 CRuntime* CCheckListBox::GetThisClass() 3223 CRuntime* CClientDC::GetThisClass() 3224 CRuntime* CCmdTarget::GetThisClass() 3225 CRuntime* CColorDialog::GetThisClass() 3226 CRuntime* CComboBox::GetThisClass() 3227 CRuntime* CComboBoxEx::GetThisClass() 3228 CRuntime* CControlBar::GetThisClass() 3229 CRuntime* CCriticalSection::GetThisClass() 3230 CRuntime* CCtrlView::GetThisClass() 3231 CRuntime* CDatabase::GetThisClass() 3232 CRuntime* CDataPathProperty::GetThisClass() 3233 CRuntime* CDateTimeCtrl::GetThisClass() 3234 CRuntime* CDBException::GetThisClass() 3235 CRuntime* CDC::GetThisClass() 3236 CRuntime* CDHtmlDialog::GetThisClass() 3237 CRuntime* CDialog::GetThisClass() 3238 CRuntime* CDialogBar::GetThisClass() 3239 CRuntime* CDocItem::GetThisClass() 3240 CRuntime* CDockBar::GetThisClass() 3241 CRuntime* CDockState::GetThisClass() 3242 CRuntime* CDocManager::GetThisClass() 3243 CRuntime* CDocObjectServer::GetThisClass() 3244 CRuntime* CDocObjectServerItem::GetThisClass() 3245 CRuntime* CDocTemplate::GetThisClass() 3246 CRuntime* CDocument::GetThisClass() 3247 CRuntime* CDragListBox::GetThisClass() 3248 CRuntime* CDWordArray::GetThisClass() 3249 CRuntime* CDynLinkLibrary::GetThisClass() 3250 CRuntime* CEdit::GetThisClass() 3251 CRuntime* CEditView::GetThisClass() 3252 CRuntime* CEvent::GetThisClass() 3253 CRuntime* CException::GetThisClass() 3254 CRuntime* CFile::GetThisClass() 3255 CRuntime* CFileDialog::GetThisClass() 3256 CRuntime* CFileException::GetThisClass() 3257 CRuntime* CFileFind::GetThisClass() 3258 CRuntime* CFindReplaceDialog::GetThisClass() 3259 CRuntime* CFont::GetThisClass() 3260 CRuntime* CFontDialog::GetThisClass() 3261 CRuntime* CFormView::GetThisClass() 3262 CRuntime* CFrameWnd::GetThisClass() 3263 CRuntime* CFtpConnection::GetThisClass() 3264 CRuntime* CFtpFileFind::GetThisClass() 3265 CRuntime* CGdiObject::GetThisClass() 3266 CRuntime* CGopherConnection::GetThisClass() 3267 CRuntime* CGopherFile::GetThisClass() 3268 CRuntime* CGopherFileFind::GetThisClass() 3269 CRuntime* CHeaderCtrl::GetThisClass() 3270 CRuntime* CHotKeyCtrl::GetThisClass() 3271 CRuntime* CHtmlEditDoc::GetThisClass() 3272 CRuntime* CHtmlEditView::GetThisClass() 3273 CRuntime* CHtmlView::GetThisClass() 3274 CRuntime* CHttpConnection::GetThisClass() 3275 CRuntime* CHttpFile::GetThisClass() 3276 CRuntime* CImageList::GetThisClass() 3277 CRuntime* CInternetConnection::GetThisClass() 3278 CRuntime* CInternetException::GetThisClass() 3279 CRuntime* CInternetFile::GetThisClass() 3280 CRuntime* CInternetSession::GetThisClass() 3281 CRuntime* CIPAddressCtrl::GetThisClass() 3282 CRuntime* CLinkCtrl::GetThisClass() 3283 CRuntime* CListBox::GetThisClass() 3284 CRuntime* CListCtrl::GetThisClass() 3285 CRuntime* CListView::GetThisClass() 3286 CRuntime* CLongBinary::GetThisClass() 3287 CRuntime* CMapPtrToPtr::GetThisClass() 3288 CRuntime* CMapPtrToWord::GetThisClass() 3289 CRuntime* CMapStringToOb::GetThisClass() 3290 CRuntime* CMapStringToPtr::GetThisClass() 3291 CRuntime* CMapStringToString::GetThisClass() 3292 CRuntime* CMapWordToOb::GetThisClass() 3293 CRuntime* CMapWordToPtr::GetThisClass() 3294 CRuntime* CMDIChildWnd::GetThisClass() 3295 CRuntime* CMDIFrameWnd::GetThisClass() 3296 CRuntime* CMemFile::GetThisClass() 3297 CRuntime* CMemoryException::GetThisClass() 3298 CRuntime* CMenu::GetThisClass() 3299 CRuntime* CMetaFileDC::GetThisClass() 3300 CRuntime* CMiniDockFrameWnd::GetThisClass() 3301 CRuntime* CMiniFrameWnd::GetThisClass() 3302 CRuntime* CMonikerFile::GetThisClass() 3303 CRuntime* CMonthCalCtrl::GetThisClass() 3304 CRuntime* CMultiDocTemplate::GetThisClass() 3305 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 3306 CRuntime* CMutex::GetThisClass() 3307 CRuntime* CNotSupportedException::GetThisClass() 3308 CRuntime* CObArray::GetThisClass() 3309 CRuntime* CObject::GetThisClass() 3310 CRuntime* CObList::GetThisClass() 3311 CRuntime* COleBusyDialog::GetThisClass() 3312 CRuntime* COleChangeIconDialog::GetThisClass() 3313 CRuntime* COleChangeSourceDialog::GetThisClass() 3314 CRuntime* COleClientItem::GetThisClass() 3315 CRuntime* COleControl::GetThisClass() 3316 CRuntime* COleControlModule::GetThisClass() 3317 CRuntime* COleConvertDialog::GetThisClass() 3318 CRuntime* COleDBRecordView::GetThisClass() 3319 CRuntime* COleDialog::GetThisClass() 3320 CRuntime* COleDispatchException::GetThisClass() 3321 CRuntime* COleDocIPFrameWnd::GetThisClass() 3322 CRuntime* COleDocObjectItem::GetThisClass() 3323 CRuntime* COleDocument::GetThisClass() 3324 CRuntime* COleException::GetThisClass() 3325 CRuntime* COleInsertDialog::GetThisClass() 3326 CRuntime* COleIPFrameWnd::GetThisClass() 3327 CRuntime* COleLinkingDoc::GetThisClass() 3328 CRuntime* COleLinksDialog::GetThisClass() 3329 CRuntime* COleObjectFactory::GetThisClass() 3330 CRuntime* COlePasteSpecialDialog::GetThisClass() 3331 CRuntime* COlePropertiesDialog::GetThisClass() 3332 CRuntime* COlePropertyPage::GetThisClass() 3333 CRuntime* COleResizeBar::GetThisClass() 3334 CRuntime* COleServerDoc::GetThisClass() 3335 CRuntime* COleServerItem::GetThisClass() 3336 CRuntime* COleStreamFile::GetThisClass() 3337 CRuntime* COleUpdateDialog::GetThisClass() 3338 CRuntime* CPageSetupDialog::GetThisClass() 3339 CRuntime* CPaintDC::GetThisClass() 3340 CRuntime* CPalette::GetThisClass() 3341 CRuntime* CPen::GetThisClass() 3342 CRuntime* CPreviewDC::GetThisClass() 3343 CRuntime* CPreviewView::GetThisClass() 3344 CRuntime* CPrintDialog::GetThisClass() 3345 CRuntime* CPrintDialogEx::GetThisClass() 3346 CRuntime* CProgressCtrl::GetThisClass() 3347 CRuntime* CPropertyPage::GetThisClass() 3348 CRuntime* CPropertySheet::GetThisClass() 3349 CRuntime* CPtrArray::GetThisClass() 3350 CRuntime* CPtrList::GetThisClass() 3351 CRuntime* CReBar::GetThisClass() 3352 CRuntime* CReBarCtrl::GetThisClass() 3353 CRuntime* CRecordset::GetThisClass() 3354 CRuntime* CRecordView::GetThisClass() 3355 CRuntime* CResourceException::GetThisClass() 3356 CRuntime* CRgn::GetThisClass() 3357 CRuntime* CRichEditCntrItem::GetThisClass() 3358 CRuntime* CRichEditCtrl::GetThisClass() 3359 CRuntime* CRichEditDoc::GetThisClass() 3360 CRuntime* CRichEditView::GetThisClass() 3361 CRuntime* CScrollBar::GetThisClass() 3362 CRuntime* CScrollView::GetThisClass() 3363 CRuntime* CSemaphore::GetThisClass() 3364 CRuntime* CSharedFile::GetThisClass() 3365 CRuntime* CSingleDocTemplate::GetThisClass() 3366 CRuntime* CSliderCtrl::GetThisClass() 3367 CRuntime* CSocket::GetThisClass() 3368 CRuntime* CSocketFile::GetThisClass() 3369 CRuntime* CSpinButtonCtrl::GetThisClass() 3370 CRuntime* CSplitterWnd::GetThisClass() 3371 CRuntime* CStatic::GetThisClass() 3372 CRuntime* CStatusBar::GetThisClass() 3373 CRuntime* CStatusBarCtrl::GetThisClass() 3374 CRuntime* CStdioFile::GetThisClass() 3375 CRuntime* CStringArray::GetThisClass() 3376 CRuntime* CStringList::GetThisClass() 3377 CRuntime* CSyncObject::GetThisClass() 3378 CRuntime* CTabCtrl::GetThisClass() 3379 CRuntime* CToolBar::GetThisClass() 3380 CRuntime* CToolBarCtrl::GetThisClass() 3381 CRuntime* CToolTipCtrl::GetThisClass() 3382 CRuntime* CTreeCtrl::GetThisClass() 3383 CRuntime* CTreeView::GetThisClass() 3384 CRuntime* CUIntArray::GetThisClass() 3385 CRuntime* CUserException::GetThisClass() 3386 CRuntime* CView::GetThisClass() 3387 CRuntime* CWinApp::GetThisClass() 3388 CRuntime* CWindowDC::GetThisClass() 3389 CRuntime* CWindowlessDC::GetThisClass() 3390 CRuntime* CWinThread::GetThisClass() 3391 CRuntime* CWnd::GetThisClass() 3392 CRuntime* CWordArray::GetThisClass() 3393 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 3394 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 3395 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 3396 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 3397 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 3398 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 3399 AFX_EVENTMAP const * COleControl::GetThisEventMap() 3400 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 3401 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 3402 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 3403 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 3404 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 3405 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 3406 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 3407 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 3408 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 3409 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 3410 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 3411 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 3412 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 3413 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 3414 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 3415 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 3416 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 3417 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 3418 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 3419 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 3420 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 3421 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 3422 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 3423 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 3424 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 3425 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 3426 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 3427 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 3428 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 3429 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 3430 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 3431 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 3432 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 3433 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 3434 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 3435 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 3436 AFX_MSGMAP const * CDialog::GetThisMessageMap() 3437 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 3438 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 3439 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 3440 AFX_MSGMAP const * CDocument::GetThisMessageMap() 3441 AFX_MSGMAP const * CEditView::GetThisMessageMap() 3442 AFX_MSGMAP const * CFormView::GetThisMessageMap() 3443 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 3444 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 3445 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 3446 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 3447 AFX_MSGMAP const * CListView::GetThisMessageMap() 3448 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 3449 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 3450 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 3451 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 3452 AFX_MSGMAP const * COleControl::GetThisMessageMap() 3453 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 3454 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 3455 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 3456 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 3457 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 3458 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 3459 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 3460 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 3461 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 3462 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 3463 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 3464 AFX_MSGMAP const * CReBar::GetThisMessageMap() 3465 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 3466 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 3467 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 3468 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 3469 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 3470 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 3471 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 3472 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 3473 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 3474 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 3475 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 3476 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 3477 AFX_MSGMAP const * CView::GetThisMessageMap() 3478 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 3479 AFX_MSGMAP const * CWnd::GetThisMessageMap() 3480 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 3481 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 3482 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 3483 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 3484 int CMonthCalCtrl::GetToday(ATL::CTime &)const 3485 int CHtmlView::GetToolBar()const 3486 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3487 long CHtmlView::GetTop()const 3488 int CHtmlView::GetTopLevelContainer()const 3489 CFrameWnd * CWnd::GetTopLevelFrame()const 3490 CWnd * CWnd::GetTopLevelOwner()const 3491 CWnd * CWnd::GetTopLevelParent()const 3492 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3493 void CRectTracker::GetTrueRect(tagRECT *)const 3494 ATL::CStringT > > CHtmlView::GetType()const 3495 short CPictureHolder::GetType() 3496 unsigned long CProperty::GetType() 3497 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3498 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3499 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3500 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3501 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3502 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3503 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3504 unsigned int CCmdTarget::GetTypeInfoCount() 3505 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 3506 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 3507 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 3508 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3509 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 3510 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3511 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3512 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3513 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3514 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3515 void COleSafeArray::GetUBound(unsigned long,long *) 3516 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3517 long COleControl::XOleObject::GetUserClassID(_GUID *) 3518 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3519 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3520 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 3521 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 3522 void COleControl::GetUserType(wchar_t *) 3523 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 3524 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 3525 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 3526 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 3527 void * CMapPtrToPtr::GetValueAt(void *)const 3528 ATL::CStringT > > CHttpFile::GetVerb()const 3529 unsigned long CDockState::GetVersion() 3530 CHtmlEditView * CHtmlEditDoc::GetView()const 3531 CRichEditView * CRichEditDoc::GetView()const 3532 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3533 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3534 int CHtmlView::GetVisible()const 3535 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 3536 long CHtmlView::GetWidth()const 3537 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3538 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3539 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3540 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3541 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3542 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3543 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3544 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3545 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3546 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3547 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3548 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3549 long CWnd::GetWindowedChildCount() 3550 long CWnd::GetWindowLessChildCount() 3551 IDropTarget * COleControl::GetWindowlessDropTarget() 3552 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3553 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3554 int CWnd::GetWindowTextLengthW()const 3555 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 3556 int CWnd::GetWindowTextW(wchar_t *,int)const 3557 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 3558 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3559 long COleDropSource::GiveFeedback(unsigned long) 3560 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3561 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3562 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3563 void CMemFile::GrowFile(unsigned long) 3564 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3565 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3566 long CDialog::HandleInitDialog(unsigned int,long) 3567 long CDialogBar::HandleInitDialog(unsigned int,long) 3568 long CFormView::HandleInitDialog(unsigned int,long) 3569 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 3570 long CPropertySheet::HandleInitDialog(unsigned int,long) 3571 long CScrollView::HandleMButtonDown(unsigned int,long) 3572 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 3573 int COleControlContainer::HandleSetFocus() 3574 long CDialog::HandleSetFont(unsigned int,long) 3575 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 3576 long COleControl::XPersistStorage::HandsOffStorage() 3577 long COleServerDoc::XPersistStorage::HandsOffStorage() 3578 int COleDocument::HasBlankItems()const 3579 int CDialogTemplate::HasFont()const 3580 unsigned int HashKey(tagVARIANT const &) 3581 unsigned int HashKey(wchar_t const *) 3582 unsigned int HashKey(char const *) 3583 unsigned int HashKey(ATL::CComBSTR) 3584 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 3585 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 3586 void * CFile::hFileNull 3587 void CWinApp::HideApplication() 3588 void CFileDialog::HideControl(int) 3589 long CBrowserControlSite::HideUI() 3590 long CDHtmlDialog::HideUI() 3591 long CHtmlControlSite::XDocHostUIHandler::HideUI() 3592 void CDC::HIMETRICtoDP(tagSIZE *)const 3593 void CDC::HIMETRICtoLP(tagSIZE *)const 3594 int CListCtrl::HitTest(CPoint,unsigned int *)const 3595 int CRectTracker::HitTest(CPoint)const 3596 int CSplitterWnd::HitTest(CPoint)const 3597 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 3598 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3599 int CRectTracker::HitTestHandles(CPoint)const 3600 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 3601 void CWnd::HtmlHelpW(unsigned long,unsigned int) 3602 int CSplitterWnd::IdFromRowCol(int,int)const 3603 void COlePropertyPage::IgnoreApply(unsigned int) 3604 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3605 int CWinApp::InitApplication() 3606 long COleControl::XOleCache::InitCache(IDataObject *) 3607 int CWnd::InitControlContainer() 3608 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3609 long CPrintDialogEx::InitDone() 3610 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3611 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3612 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3613 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3614 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3615 void CMapPtrToWord::InitHashTable(unsigned int,int) 3616 void CMapStringToOb::InitHashTable(unsigned int,int) 3617 void CMapStringToPtr::InitHashTable(unsigned int,int) 3618 void CMapStringToString::InitHashTable(unsigned int,int) 3619 void CMapWordToOb::InitHashTable(unsigned int,int) 3620 void CMapWordToPtr::InitHashTable(unsigned int,int) 3621 long CDataSourceControl::Initialize() 3622 void CDHtmlDialog::Initialize() 3623 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3624 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3625 int CEditView::InitializeReplace() 3626 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3627 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3628 int COleControlModule::InitInstance() 3629 int CWinApp::InitInstance() 3630 int CWinThread::InitInstance() 3631 void CWinApp::InitLibId() 3632 void CDockContext::InitLoop() 3633 int CDialog::InitModalIndirect(void *,CWnd *) 3634 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3635 long COleControl::XPersistMemory::InitNew() 3636 long COleControl::XPersistPropertyBag::InitNew() 3637 long COleControl::XPersistStorage::InitNew(IStorage *) 3638 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3639 long COleControl::XPersistStreamInit::InitNew() 3640 void CRecordset::InitRecord() 3641 void COleControl::InitStockEventMask() 3642 void COleControl::InitStockPropMask() 3643 void CSimpleException::InitString() 3644 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3645 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3646 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3647 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3648 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3649 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 3650 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 3651 void CByteArray::InsertAt(int,unsigned char,int) 3652 void CByteArray::InsertAt(int,CByteArray *) 3653 void CDWordArray::InsertAt(int,unsigned long,int) 3654 void CDWordArray::InsertAt(int,CDWordArray *) 3655 void CObArray::InsertAt(int,CObArray *) 3656 void CObArray::InsertAt(int,CObject *,int) 3657 void CPtrArray::InsertAt(int,CPtrArray *) 3658 void CPtrArray::InsertAt(int,void *,int) 3659 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 3660 void CStringArray::InsertAt(int,CStringArray *) 3661 void CStringArray::InsertAt(int,wchar_t const *,int) 3662 void CUIntArray::InsertAt(int,unsigned int,int) 3663 void CUIntArray::InsertAt(int,CUIntArray *) 3664 void CWordArray::InsertAt(int,unsigned short,int) 3665 void CWordArray::InsertAt(int,CWordArray *) 3666 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3667 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3668 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 3669 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 3670 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 3671 void CStringArray::InsertEmpty(int,int) 3672 void CRichEditView::InsertFileAsObject(wchar_t const *) 3673 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 3674 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 3675 long CRichEditView::InsertItem(CRichEditCntrItem *) 3676 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 3677 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 3678 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3679 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3680 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3681 CFontHolder & COleControl::InternalGetFont() 3682 ATL::CStringT > > const & COleControl::InternalGetText() 3683 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 3684 unsigned long CCmdTarget::InternalRelease() 3685 int CDC::IntersectClipRect(int,int,int,int) 3686 int CDC::IntersectClipRect(tagRECT const *) 3687 void CCheckListBox::InvalidateCheck(int) 3688 void COleControl::InvalidateControl(tagRECT const *,int) 3689 void CCheckListBox::InvalidateItem(int) 3690 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 3691 void COleControl::InvalidateRgn(CRgn *,int) 3692 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 3693 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3694 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3695 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3696 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3697 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3698 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3699 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3700 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 3701 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3702 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3703 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3704 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3705 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3706 int CDocItem::IsBlank()const 3707 int COleServerItem::IsBlank()const 3708 int CPropertyPage::IsButtonEnabled(int) 3709 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3710 int COleServerItem::IsConnected()const 3711 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 3712 int COleControlSite::IsDefaultButton() 3713 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3714 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 3715 int CWnd::IsDialogMessageW(tagMSG *) 3716 long CBlobProperty::IsDirty() 3717 long COleLinkingDoc::XPersistFile::IsDirty() 3718 long COleControl::XPersistMemory::IsDirty() 3719 long COleControl::XPersistStorage::IsDirty() 3720 long COleServerDoc::XPersistStorage::IsDirty() 3721 long COleControl::XPersistStreamInit::IsDirty() 3722 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 3723 unsigned int CWnd::IsDlgButtonChecked(int)const 3724 int CControlBar::IsDockBar()const 3725 int CDockBar::IsDockBar()const 3726 int CFileFind::IsDots()const 3727 int CGopherFileFind::IsDots()const 3728 int CCheckListBox::IsEnabled(int) 3729 int CDHtmlDialog::IsExternalDispatchSafe() 3730 int CRecordset::IsFieldDirty(void *) 3731 int CRecordset::IsFieldNull(void *) 3732 int CRecordset::IsFieldNullable(void *) 3733 int CRecordset::IsFieldNullable(unsigned long)const 3734 int CRecordset::IsFieldStatusDirty(unsigned long)const 3735 int CRecordset::IsFieldStatusNull(unsigned long)const 3736 int CFieldExchange::IsFieldType(unsigned int *) 3737 int CControlBar::IsFloating()const 3738 int CFrameWnd::IsFrameWnd()const 3739 int CWnd::IsFrameWnd()const 3740 int IsHelpKey(tagMSG *) 3741 int CWinThread::IsIdleMessage(tagMSG *) 3742 int CCmdTarget::IsInvokeAllowed(long) 3743 int COleControl::IsInvokeAllowed(long) 3744 int CRecordset::IsJoin(wchar_t const *) 3745 int CObject::IsKindOf(CRuntimeconst *)const 3746 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 3747 int COccManager::IsLabelControl(CWnd *) 3748 int COleObjectFactory::IsLicenseValid() 3749 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 3750 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 3751 int COleControlSite::IsMatchingMnemonic(tagMSG *) 3752 int CHtmlEditDoc::IsModified() 3753 int COleClientItem::IsModified()const 3754 int COleControl::IsModified() 3755 int COlePropertyPage::IsModified() 3756 int CRichEditDoc::IsModified() 3757 int CRecordView::IsOnFirstRecord() 3758 int CRecordView::IsOnLastRecord() 3759 int CRecordset::IsOpen()const 3760 long COlePropertyPage::XPropertyPage::IsPageDirty() 3761 int CRecordset::IsParamStatusNull(unsigned long)const 3762 int CRecordset::IsRecordsetUpdatable() 3763 int CCmdTarget::IsResultExpected() 3764 int CRichEditView::IsRichEditFormat(unsigned short) 3765 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 3766 int CRichEditView::IsSelected(CObject const *)const 3767 int CView::IsSelected(CObject const *)const 3768 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 3769 int CObject::IsSerializable()const 3770 int COleMessageFilter::IsSignificantMessage(tagMSG *) 3771 int CDHtmlDialog::IsSinkedElement(IDispatch *) 3772 int CRecordset::IsSQLUpdatable(wchar_t const *) 3773 int COleControl::IsSubclassedControl() 3774 int CWnd::IsTopParentActive()const 3775 int CFrameWnd::IsTracking()const 3776 long CDocObjectServer::XOleObject::IsUpToDate() 3777 long COleControl::XOleObject::IsUpToDate() 3778 long COleServerDoc::XOleObject::IsUpToDate() 3779 long COleServerItem::XOleObject::IsUpToDate() 3780 int CControlBar::IsVisible()const 3781 int COleControlSite::IsWindowEnabled()const 3782 int CWnd::IsWindowEnabled()const 3783 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3784 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3785 void COleControl::KeyDown(unsigned short *) 3786 void COleControl::KeyUp(unsigned short *) 3787 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 3788 void CToolBar::Layout() 3789 int CRichEditCtrl::LineIndex(int)const 3790 int CRichEditCtrl::LineLength(int)const 3791 void CRichEditCtrl::LineScroll(int,int) 3792 int CDC::LineTo(int,int) 3793 unsigned long CRichEditView::lMaxSize 3794 long CBlobProperty::Load(IStream *) 3795 int CDialogTemplate::Load(wchar_t const *) 3796 void COleControl::Load(wchar_t const *,CDataPathProperty &) 3797 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 3798 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 3799 long COleControl::XPersistMemory::Load(void *,unsigned long) 3800 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 3801 long COleControl::XPersistStorage::Load(IStorage *) 3802 long COleServerDoc::XPersistStorage::Load(IStorage *) 3803 long COleControl::XPersistStreamInit::Load(IStream *) 3804 int CFrameWnd::LoadAccelTable(wchar_t const *) 3805 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 3806 void CFrameWnd::LoadBarState(wchar_t const *) 3807 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 3808 int CToolBar::LoadBitmapW(wchar_t const *) 3809 void CRecordset::LoadFields() 3810 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3811 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3812 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3813 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 3814 int CDHtmlDialog::LoadFromResource(unsigned int) 3815 int CDHtmlDialog::LoadFromResource(wchar_t const *) 3816 int CHtmlView::LoadFromResource(unsigned int) 3817 int CHtmlView::LoadFromResource(wchar_t const *) 3818 void COleDocument::LoadFromStorage() 3819 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 3820 void CDockState::LoadState(wchar_t const *) 3821 long COleControl::LoadState(IStream *) 3822 void CWinApp::LoadStdProfileSettings(unsigned int) 3823 int CWinApp::LoadSysPolicies() 3824 void CDocTemplate::LoadTemplate() 3825 void CMultiDocTemplate::LoadTemplate() 3826 int CToolBar::LoadToolBar(wchar_t const *) 3827 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 3828 void COleSafeArray::Lock() 3829 int CSingleLock::Lock(unsigned long) 3830 int CSyncObject::Lock(unsigned long) 3831 void CTypeLibCache::Lock() 3832 wchar_t const * CEditView::LockBuffer()const 3833 long COleControlContainer::XOleContainer::LockContainer(int) 3834 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 3835 void COleLinkingDoc::LockExternal(int,int) 3836 int COleControl::LockInPlaceActive(int) 3837 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 3838 void CFile::LockRange(unsigned __int64,unsigned __int64) 3839 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 3840 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 3841 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 3842 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 3843 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 3844 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 3845 long COleObjectFactory::XClassFactory::LockServer(int) 3846 int CMapPtrToPtr::Lookup(void *,void * &)const 3847 int CMapPtrToWord::Lookup(void *,unsigned short &)const 3848 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 3849 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 3850 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 3851 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 3852 int CMapWordToPtr::Lookup(unsigned short,void * &)const 3853 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 3854 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 3855 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 3856 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 3857 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 3858 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 3859 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 3860 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 3861 void CDC::LPtoDP(tagSIZE *)const 3862 void CDC::LPtoHIMETRIC(tagSIZE *)const 3863 void CArchive::MapObject(CObject const *) 3864 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 3865 int COleDialog::MapResult(unsigned int) 3866 long CPropertyPage::MapWizardResult(long) 3867 void CRecordset::MarkForAddNew() 3868 void CRecordset::MarkForUpdate() 3869 void CRichEditDoc::MarkItemsClear()const 3870 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 3871 int CFileFind::MatchesMask(unsigned long)const 3872 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 3873 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 3874 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 3875 void CComboBox::MeasureItem(tagMEASUREITEM*) 3876 void CListBox::MeasureItem(tagMEASUREITEM*) 3877 void CMenu::MeasureItem(tagMEASUREITEM*) 3878 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 3879 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 3880 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 3881 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 3882 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 3883 void CPreviewDC::MirrorAttributes() 3884 void CPreviewDC::MirrorFont() 3885 void CPreviewDC::MirrorMappingMode(int) 3886 void CPreviewDC::MirrorViewportOrg() 3887 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 3888 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 3889 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 3890 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 3891 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 3892 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 3893 void CDockContext::Move(CPoint) 3894 void CRecordset::Move(long,unsigned short) 3895 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 3896 CPoint CDC::MoveTo(int,int) 3897 void COleControlSite::MoveWindow(int,int,int,int) 3898 void CWnd::MoveWindow(int,int,int,int,int) 3899 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 3900 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 3901 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 3902 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 3903 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 3904 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 3905 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 3906 unsigned int COleDropSource::nDragDelay 3907 unsigned int COleDropSource::nDragMinDist 3908 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 3909 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 3910 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 3911 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 3912 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 3913 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 3914 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 3915 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 3916 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 3917 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 3918 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 3919 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 3920 unsigned int const CEditView::nMaxSize 3921 int CRectTracker::NormalizeHit(int)const 3922 void CDataBoundProperty::Notify() 3923 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 3924 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 3925 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 3926 void CFrameWnd::NotifyFloatingWindows(unsigned long) 3927 void COleServerDoc::NotifyRename(wchar_t const *) 3928 unsigned int COleDropTarget::nScrollDelay 3929 int COleDropTarget::nScrollInset 3930 unsigned int COleDropTarget::nScrollInterval 3931 int CDC::OffsetClipRgn(int,int) 3932 int CDC::OffsetClipRgn(tagSIZE) 3933 CPoint CDC::OffsetViewportOrg(int,int) 3934 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 3935 CPoint CPreviewDC::OffsetViewportOrg(int,int) 3936 CPoint CDC::OffsetWindowOrg(int,int) 3937 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3938 void CAsyncSocket::OnAccept(int) 3939 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 3940 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 3941 void COleClientItem::OnActivate() 3942 void COleFrameHook::OnActivate(int) 3943 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 3944 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 3945 long COleControl::OnActivateInPlace(int,tagMSG *) 3946 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 3947 long CWnd::OnActivateTopLevel(unsigned int,long) 3948 void COleClientItem::OnActivateUI() 3949 long CDocObjectServer::OnActivateView() 3950 void CFormView::OnActivateView(int,CView *,CView *) 3951 void CPreviewView::OnActivateView(int,CView *,CView *) 3952 void CRichEditView::OnActivateView(int,CView *,CView *) 3953 void CView::OnActivateView(int,CView *,CView *) 3954 long CToolTipCtrl::OnAddTool(unsigned int,long) 3955 void CConnectionPoint::OnAdvise(int) 3956 void COleControl::XEventConnPt::OnAdvise(int) 3957 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 3958 void COleControl::OnAmbientPropertyChange(long) 3959 long COleControl::XOleControl::OnAmbientPropertyChange(long) 3960 void COleControl::OnAppearanceChanged() 3961 void CWinApp::OnAppExit() 3962 int CPropertyPage::OnApply() 3963 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 3964 void CDocObjectServer::OnApplyViewState(CArchive &) 3965 void COleControl::OnBackColorChanged() 3966 int CFrameWnd::OnBarCheck(unsigned int) 3967 int COleIPFrameWnd::OnBarCheck(unsigned int) 3968 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 3969 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 3970 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 3971 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 3972 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 3973 int COleDropSource::OnBeginDrag(CWnd *) 3974 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 3975 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 3976 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 3977 void COleControl::OnBorderStyleChanged() 3978 void CRichEditView::OnBullet() 3979 int COleMessageFilter::OnBusyDialog(HTASK__ *) 3980 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 3981 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 3982 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 3983 void CCommonDialog::OnCancel() 3984 void CDialog::OnCancel() 3985 void CPropertyPage::OnCancel() 3986 void CRichEditView::OnCancelEditCntr() 3987 void COleControl::OnCancelMode() 3988 void CSplitterWnd::OnCancelMode() 3989 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 3990 long COleControl::XFontNotification::OnChanged(long) 3991 long COleControlSite::XPropertyNotifySink::OnChanged(long) 3992 long COlePropertyPage::XPropNotifySink::OnChanged(long) 3993 void CRectTracker::OnChangedRect(CRect const &) 3994 void CDocument::OnChangedViewList() 3995 int COleClientItem::OnChangeItemPosition(CRect const &) 3996 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 3997 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 3998 void CRichEditView::OnCharBold() 3999 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4000 void CRichEditView::OnCharItalic() 4001 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4002 void CRichEditView::OnCharUnderline() 4003 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4004 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4005 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4006 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4007 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4008 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4009 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4010 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4011 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4012 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4013 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4014 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4015 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4016 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4017 void COleControl::OnClick(unsigned short) 4018 CEnumArray * CEnumArray::OnClone() 4019 CEnumArray * CEnumConnections::OnClone() 4020 void CAsyncSocket::OnClose(int) 4021 void CControlFrameWnd::OnClose() 4022 void CFrameWnd::OnClose() 4023 void CMiniDockFrameWnd::OnClose() 4024 void COleControl::OnClose(unsigned long) 4025 void COleServerDoc::OnClose(enum tagOLECLOSE) 4026 void CPropertySheet::OnClose() 4027 void COleClientItem::XAdviseSink::OnClose() 4028 void CDocObjectServer::OnCloseDocument() 4029 void CDocument::OnCloseDocument() 4030 void COleDocument::OnCloseDocument() 4031 void COleLinkingDoc::OnCloseDocument() 4032 void COleServerDoc::OnCloseDocument() 4033 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4034 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4035 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4036 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4037 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4038 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4039 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4040 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4041 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4042 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4043 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4044 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4045 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4046 void CRichEditView::OnColorDefault() 4047 int CColorDialog::OnColorOK() 4048 void CRichEditView::OnColorPick(unsigned long) 4049 int CFrameWnd::OnCommand(unsigned int,long) 4050 int CMDIFrameWnd::OnCommand(unsigned int,long) 4051 int COlePropertyPage::OnCommand(unsigned int,long) 4052 int CPropertySheet::OnCommand(unsigned int,long) 4053 int CSplitterWnd::OnCommand(unsigned int,long) 4054 int CWnd::OnCommand(unsigned int,long) 4055 long CDialog::OnCommandHelp(unsigned int,long) 4056 long CFrameWnd::OnCommandHelp(unsigned int,long) 4057 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4058 long CPropertySheet::OnCommandHelp(unsigned int,long) 4059 void CHtmlView::OnCommandStateChange(long,int) 4060 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4061 void CAsyncSocket::OnConnect(int) 4062 void CFrameWnd::OnContextHelp() 4063 int COleFrameHook::OnContextHelp(int) 4064 void COleIPFrameWnd::OnContextHelp() 4065 void CWinApp::OnContextHelp() 4066 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4067 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 4068 int CControlBar::OnCreate(tagCREATESTRUCTW *) 4069 int CEditView::OnCreate(tagCREATESTRUCTW *) 4070 int CFormView::OnCreate(tagCREATESTRUCTW *) 4071 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 4072 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 4073 int COleControl::OnCreate(tagCREATESTRUCTW *) 4074 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 4075 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 4076 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 4077 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 4078 int CView::OnCreate(tagCREATESTRUCTW *) 4079 int CCmdTarget::OnCreateAggregates() 4080 int COleControl::OnCreateAggregates() 4081 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4082 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4083 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4084 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4085 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 4086 CCmdTarget * COleObjectFactory::OnCreateObject() 4087 CCmdTarget * COleTemplateServer::OnCreateObject() 4088 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4089 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4090 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4091 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4092 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4093 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4094 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4095 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4096 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4097 int CDocManager::OnDDECommand(wchar_t *) 4098 int CWinApp::OnDDECommand(wchar_t *) 4099 long CFrameWnd::OnDDEExecute(unsigned int,long) 4100 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4101 long CFrameWnd::OnDDETerminate(unsigned int,long) 4102 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 4103 void COleClientItem::OnDeactivate() 4104 void COleServerDoc::OnDeactivate() 4105 void COleClientItem::OnDeactivateAndUndo() 4106 void COleClientItem::OnDeactivateUI(int) 4107 void COleServerDoc::OnDeactivateUI(int) 4108 void CRichEditCntrItem::OnDeactivateUI(int) 4109 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4110 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4111 void CControlBar::OnDestroy() 4112 void CDHtmlDialog::OnDestroy() 4113 void CEditView::OnDestroy() 4114 void CFrameWnd::OnDestroy() 4115 void CHtmlView::OnDestroy() 4116 void CMDIChildWnd::OnDestroy() 4117 void CMDIFrameWnd::OnDestroy() 4118 void COleControl::OnDestroy() 4119 void COleIPFrameWnd::OnDestroy() 4120 void CRichEditView::OnDestroy() 4121 void CTabCtrl::OnDestroy() 4122 void CTreeCtrl::OnDestroy() 4123 void CTreeView::OnDestroy() 4124 void CView::OnDestroy() 4125 void CWnd::OnDestroy() 4126 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4127 void CRichEditView::OnDevModeChange(wchar_t *) 4128 void CWnd::OnDevModeChange(wchar_t *) 4129 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4130 void COleClientItem::OnDiscardUndoState() 4131 void CSplitterWnd::OnDisplayChange() 4132 long CWnd::OnDisplayChange(unsigned int,long) 4133 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4134 int COleFrameHook::OnDocActivate(int) 4135 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 4136 void CHtmlView::OnDocumentComplete(wchar_t const *) 4137 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4138 long CBrowserControlSite::OnDocWindowActivate(int) 4139 long CDHtmlDialog::OnDocWindowActivate(int) 4140 long CHtmlView::OnDocWindowActivate(int) 4141 void COleServerDoc::OnDocWindowActivate(int) 4142 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4143 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4144 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4145 void CDocObjectServerItem::OnDoVerb(long) 4146 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4147 void COleServerItem::OnDoVerb(long) 4148 void CHtmlView::OnDownloadBegin() 4149 void CHtmlView::OnDownloadComplete() 4150 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4151 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4152 void COleDropTarget::OnDragLeave(CWnd *) 4153 void CView::OnDragLeave() 4154 long CWnd::OnDragList(unsigned int,long) 4155 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4156 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4157 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4158 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4159 void CCtrlView::OnDraw(CDC *) 4160 void CFormView::OnDraw(CDC *) 4161 void CHtmlView::OnDraw(CDC *) 4162 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4163 void CPreviewView::OnDraw(CDC *) 4164 void CView::OnDraw(CDC *) 4165 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4166 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4167 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4168 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4169 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4170 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4171 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4172 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4173 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4174 void CFrameWnd::OnDropFiles(HDROP__ *) 4175 void CRichEditView::OnDropFiles(HDROP__ *) 4176 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4177 int CEditView::OnEditChange() 4178 void COleDocument::OnEditChangeIcon() 4179 void CEditView::OnEditClear() 4180 void CRichEditView::OnEditClear() 4181 void COleDocument::OnEditConvert() 4182 void CEditView::OnEditCopy() 4183 void CHtmlView::OnEditCopy() 4184 void CRichEditView::OnEditCopy() 4185 void CEditView::OnEditCut() 4186 void CHtmlView::OnEditCut() 4187 void CRichEditView::OnEditCut() 4188 void CEditView::OnEditFind() 4189 void CRichEditView::OnEditFind() 4190 void CEditView::OnEditFindReplace(int) 4191 void CRichEditView::OnEditFindReplace(int) 4192 void COleDocument::OnEditLinks() 4193 void CEditView::OnEditPaste() 4194 void CHtmlView::OnEditPaste() 4195 void CRichEditView::OnEditPaste() 4196 void CRichEditView::OnEditPasteSpecial() 4197 void CRichEditView::OnEditProperties() 4198 int COlePropertyPage::OnEditProperty(long) 4199 void CRichEditView::OnEditRedo() 4200 void CEditView::OnEditRepeat() 4201 void CRichEditView::OnEditRepeat() 4202 void CEditView::OnEditReplace() 4203 void CRichEditView::OnEditReplace() 4204 void CEditView::OnEditSelectAll() 4205 void CRichEditView::OnEditSelectAll() 4206 void CEditView::OnEditUndo() 4207 void CRichEditView::OnEditUndo() 4208 void CFrameWnd::OnEnable(int) 4209 void CToolTipCtrl::OnEnable(int) 4210 void COleControl::OnEnabledChanged() 4211 long CHtmlView::OnEnableModeless(int) 4212 void COleFrameHook::OnEnableModeless(int) 4213 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4214 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4215 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4216 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4217 void CFrameWnd::OnEndSession(int) 4218 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4219 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4220 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4221 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4222 int CFrameWnd::OnEraseBkgnd(CDC *) 4223 int COleControl::OnEraseBkgnd(CDC *) 4224 int COleResizeBar::OnEraseBkgnd(CDC *) 4225 int CPreviewView::OnEraseBkgnd(CDC *) 4226 int CReBar::OnEraseBkgnd(CDC *) 4227 int CToolBar::OnEraseBkgnd(CDC *) 4228 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4229 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4230 int COleControlSite::OnEvent(AFX_EVENT *) 4231 void COleControl::OnEventAdvise(int) 4232 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4233 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4234 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4235 void CDocument::OnFileClose() 4236 void CFileDialog::OnFileNameChange() 4237 int CFileDialog::OnFileNameOK() 4238 void CDocManager::OnFileNew() 4239 void CWinApp::OnFileNew() 4240 void CDocManager::OnFileOpen() 4241 void CWinApp::OnFileOpen() 4242 void CHtmlView::OnFilePrint() 4243 void CView::OnFilePrint() 4244 void CView::OnFilePrintPreview() 4245 void CWinApp::OnFilePrintSetup() 4246 void CDocument::OnFileSave() 4247 void CDocument::OnFileSaveAs() 4248 void COleServerDoc::OnFileSaveCopyAs() 4249 void CDocument::OnFileSendMail() 4250 void COleDocument::OnFileSendMail() 4251 void COleServerDoc::OnFileUpdate() 4252 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4253 void CCmdTarget::OnFinalRelease() 4254 void CDocument::OnFinalRelease() 4255 void COleControl::OnFinalRelease() 4256 void COlePropertyPage::OnFinalRelease() 4257 void COleServerItem::OnFinalRelease() 4258 void CWnd::OnFinalRelease() 4259 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 4260 void CEditView::OnFindNext(wchar_t const *,int,int) 4261 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 4262 long CEditView::OnFindReplaceCmd(unsigned int,long) 4263 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4264 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4265 long COleControlSite::XOleControlSite::OnFocus(int) 4266 void CFileDialog::OnFolderChange() 4267 void COleControl::OnFontChanged() 4268 void COleControl::OnForeColorChanged() 4269 void CRichEditView::OnFormatFont() 4270 void COleControl::OnFrameClose() 4271 long CBrowserControlSite::OnFrameWindowActivate(int) 4272 long CDHtmlDialog::OnFrameWindowActivate(int) 4273 long CHtmlView::OnFrameWindowActivate(int) 4274 void COleServerDoc::OnFrameWindowActivate(int) 4275 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4276 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4277 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4278 void COleControl::OnFreezeEvents(int) 4279 void CHtmlView::OnFullScreen(int) 4280 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4281 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4282 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4283 void COleClientItem::OnGetClipRect(CRect &) 4284 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4285 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4286 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4287 unsigned int COleControl::OnGetDlgCode() 4288 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4289 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4290 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4291 long CHtmlView::OnGetExternal(IDispatch * *) 4292 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4293 HMENU__ * COleControl::OnGetInPlaceMenu() 4294 void COleClientItem::OnGetItemPosition(CRect &) 4295 void COleDocObjectItem::OnGetItemPosition(CRect &) 4296 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 4297 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 4298 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4299 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4300 long CWnd::OnGetObject(unsigned int,long) 4301 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4302 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4303 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4304 long CStatusBar::OnGetText(unsigned int,long) 4305 long CStatusBar::OnGetTextLength(unsigned int,long) 4306 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4307 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4308 unsigned long COleControl::OnGetViewStatus() 4309 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4310 void CReBar::OnHeightChange(tagNMHDR *,long *) 4311 void CFrameWnd::OnHelp() 4312 int COlePropertyPage::OnHelp(wchar_t const *) 4313 void CWinApp::OnHelp() 4314 void CWnd::OnHelp() 4315 void CWinApp::OnHelpFinder() 4316 void CWnd::OnHelpFinder() 4317 long CControlBar::OnHelpHitTest(unsigned int,long) 4318 long CDialog::OnHelpHitTest(unsigned int,long) 4319 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4320 void CWinApp::OnHelpIndex() 4321 void CWnd::OnHelpIndex() 4322 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4323 int CWnd::OnHelpInfo(tagHELPINFO *) 4324 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4325 void CWinApp::OnHelpUsing() 4326 void CWnd::OnHelpUsing() 4327 void CDocObjectServerItem::OnHide() 4328 long COleControl::OnHide() 4329 void COleServerItem::OnHide() 4330 void COleControl::OnHideToolBars() 4331 long CHtmlView::OnHideUI() 4332 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4333 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4334 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4335 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4336 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4337 void CDocTemplate::OnIdle() 4338 void CDocument::OnIdle() 4339 void COleDocument::OnIdle() 4340 int CWinApp::OnIdle(long) 4341 int CWinThread::OnIdle(long) 4342 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4343 void CFrameWnd::OnIdleUpdateCmdUI() 4344 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4345 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4346 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4347 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4348 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4349 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4350 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4351 int CDHtmlDialog::OnInitDialog() 4352 int CDialog::OnInitDialog() 4353 int COlePropertiesDialog::OnInitDialog() 4354 int COlePropertyPage::OnInitDialog() 4355 int CPropertySheet::OnInitDialog() 4356 void CFileDialog::OnInitDone() 4357 int COleServerItem::OnInitFromData(COleDataObject *,int) 4358 void CControlBar::OnInitialUpdate() 4359 void CFormView::OnInitialUpdate() 4360 void COleDBRecordView::OnInitialUpdate() 4361 void CRecordView::OnInitialUpdate() 4362 void CRichEditView::OnInitialUpdate() 4363 void CView::OnInitialUpdate() 4364 void CFrameWnd::OnInitMenu(CMenu *) 4365 void COleFrameHook::OnInitMenu(CMenu *) 4366 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4367 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4368 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 4369 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4370 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4371 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 4372 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4373 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4374 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 4375 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4376 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4377 void CRichEditView::OnInsertObject() 4378 void CSplitterWnd::OnInvertTracker(CRect const &) 4379 void CDockContext::OnKey(int,int) 4380 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4381 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4382 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4383 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4384 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4385 void COleControl::OnKeyPressEvent(unsigned short) 4386 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4387 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4388 long CPropertySheet::OnKickIdle(unsigned int,long) 4389 int CPropertyPage::OnKillActive() 4390 void COleControl::OnKillFocus(CWnd *) 4391 long CCheckListBox::OnLBAddString(unsigned int,long) 4392 long CCheckListBox::OnLBFindString(unsigned int,long) 4393 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4394 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4395 long CCheckListBox::OnLBGetText(unsigned int,long) 4396 long CCheckListBox::OnLBInsertString(unsigned int,long) 4397 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4398 long CCheckListBox::OnLBSelectString(unsigned int,long) 4399 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4400 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4401 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4402 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4403 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4404 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4405 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4406 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4407 void COleControl::OnLButtonDown(unsigned int,CPoint) 4408 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4409 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4410 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4411 void COleControl::OnLButtonUp(unsigned int,CPoint) 4412 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4413 void CAsyncMonikerFile::OnLowResource() 4414 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4415 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4416 void COleControl::OnMButtonDown(unsigned int,CPoint) 4417 void COleControl::OnMButtonUp(unsigned int,CPoint) 4418 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4419 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4420 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4421 void CHtmlView::OnMenuBar(int) 4422 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4423 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4424 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4425 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4426 int COleMessageFilter::OnMessagePending(tagMSG const *) 4427 int CSocket::OnMessagePending() 4428 void COleControl::OnMnemonic(tagMSG *) 4429 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4430 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4431 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4432 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4433 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4434 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4435 void COleControl::OnMouseMove(unsigned int,CPoint) 4436 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4437 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 4438 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 4439 void COleControl::OnMove(int,int) 4440 int COleDBRecordView::OnMove(unsigned int) 4441 int CRecordView::OnMove(unsigned int) 4442 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 4443 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 4444 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 4445 void CHtmlView::OnNavigateComplete2(wchar_t const *) 4446 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 4447 int CFrameWnd::OnNcActivate(int) 4448 int CMDIChildWnd::OnNcActivate(int) 4449 int CMiniFrameWnd::OnNcActivate(int) 4450 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4451 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4452 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4453 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4454 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4455 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 4456 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 4457 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 4458 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 4459 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 4460 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 4461 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 4462 void CListCtrl::OnNcDestroy() 4463 void CListView::OnNcDestroy() 4464 void CWnd::OnNcDestroy() 4465 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 4466 unsigned int COleControl::OnNcHitTest(CPoint) 4467 unsigned int CStatusBar::OnNcHitTest(CPoint) 4468 unsigned int CToolBar::OnNcHitTest(CPoint) 4469 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4470 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4471 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4472 void CDockBar::OnNcPaint() 4473 void COleControl::OnNcPaint() 4474 void CReBar::OnNcPaint() 4475 void CStatusBar::OnNcPaint() 4476 void CToolBar::OnNcPaint() 4477 int CDocument::OnNewDocument() 4478 int CHtmlEditDoc::OnNewDocument() 4479 int COleDocument::OnNewDocument() 4480 int COleLinkingDoc::OnNewDocument() 4481 void COleServerDoc::OnNewEmbedding(IStorage *) 4482 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 4483 int CEnumArray::OnNext(void *) 4484 int CEnumConnections::OnNext(void *) 4485 int CEnumConnPoints::OnNext(void *) 4486 int CEnumFormatEtc::OnNext(void *) 4487 int CEnumOleVerb::OnNext(void *) 4488 int CEnumUnknown::OnNext(void *) 4489 void CPreviewView::OnNextPage() 4490 int CView::OnNextPaneCmd(unsigned int) 4491 int CFileDialog::OnNotify(unsigned int,long,long *) 4492 int CPropertyPage::OnNotify(unsigned int,long,long *) 4493 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4494 int CWnd::OnNotify(unsigned int,long,long *) 4495 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4496 long CWnd::OnNTCtlColor(unsigned int,long) 4497 void CPreviewView::OnNumPageChange() 4498 void COlePropertyPage::OnObjectsChanged() 4499 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4500 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4501 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4502 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4503 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4504 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4505 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4506 void CCommonDialog::OnOK() 4507 void CDialog::OnOK() 4508 void CPropertyPage::OnOK() 4509 long COleControl::OnOpen(int,tagMSG *) 4510 void COleServerItem::OnOpen() 4511 int CDocument::OnOpenDocument(wchar_t const *) 4512 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 4513 int COleDocument::OnOpenDocument(wchar_t const *) 4514 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 4515 void COleServerDoc::OnOpenEmbedding(IStorage *) 4516 int CWinApp::OnOpenRecentFile(unsigned int) 4517 void CAsyncSocket::OnOutOfBandData(int) 4518 void CCommonDialog::OnPaint() 4519 void CControlBar::OnPaint() 4520 void CCtrlView::OnPaint() 4521 void CDialog::OnPaint() 4522 void CDockBar::OnPaint() 4523 void CHtmlEditView::OnPaint() 4524 void CHtmlView::OnPaint() 4525 void COleControl::OnPaint(CDC *) 4526 int COleControlContainer::OnPaint(CDC *) 4527 void COleResizeBar::OnPaint() 4528 void CReBar::OnPaint() 4529 void CSplitterWnd::OnPaint() 4530 void CStatusBar::OnPaint() 4531 void CToolBar::OnPaint() 4532 void CView::OnPaint() 4533 void CWnd::OnPaint() 4534 void CFrameWnd::OnPaletteChanged(CWnd *) 4535 void COleFrameHook::OnPaletteChanged(CWnd *) 4536 void CRichEditView::OnParaAlign(unsigned short) 4537 void CRichEditView::OnParaCenter() 4538 void CRichEditView::OnParaLeft() 4539 void CRichEditView::OnParaRight() 4540 void CWnd::OnParentNotify(unsigned int,long) 4541 int CRichEditView::OnPasteNativeObject(IStorage *) 4542 long CFrameWnd::OnPopMessageString(unsigned int,long) 4543 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4544 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4545 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4546 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4547 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4548 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4549 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4550 int CEditView::OnPreparePrinting(CPrintInfo *) 4551 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 4552 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 4553 int CView::OnPreparePrinting(CPrintInfo *) 4554 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 4555 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4556 void CPreviewView::OnPreviewClose() 4557 void CPreviewView::OnPreviewPrint() 4558 void CPreviewView::OnPrevPage() 4559 void CEditView::OnPrint(CDC *,CPrintInfo *) 4560 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 4561 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4562 void CView::OnPrint(CDC *,CPrintInfo *) 4563 void CRichEditView::OnPrinterChanged(CDC const &) 4564 void CPrintDialog::OnPrintSetup() 4565 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 4566 void CHtmlView::OnProgressChange(long,long) 4567 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4568 void CHtmlView::OnPropertyChange(wchar_t const *) 4569 int CPropertyPage::OnQueryCancel() 4570 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4571 int CFrameWnd::OnQueryEndSession() 4572 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4573 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4574 int CFrameWnd::OnQueryNewPalette() 4575 int COleFrameHook::OnQueryNewPalette() 4576 int COleServerItem::OnQueryUpdateItems() 4577 void CHtmlView::OnQuit() 4578 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4579 void COleControl::OnRButtonDown(unsigned int,CPoint) 4580 void COleControl::OnRButtonUp(unsigned int,CPoint) 4581 int COleServerDoc::OnReactivateAndUndo() 4582 void COleFrameHook::OnRecalcLayout() 4583 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4584 void CReBar::OnRecalcParent() 4585 void CAsyncSocket::OnReceive(int) 4586 void COleControl::OnReflectorDestroyed() 4587 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 4588 void COleClientItem::OnRemoveMenus(CMenu *) 4589 void COleDocObjectItem::OnRemoveMenus(CMenu *) 4590 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4591 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4592 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4593 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4594 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4595 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4596 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4597 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4598 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4599 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4600 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4601 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4602 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4603 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4604 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4605 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4606 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 4607 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 4608 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 4609 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 4610 long COleControl::XFontNotification::OnRequestEdit(long) 4611 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4612 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4613 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4614 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4615 void CEnumArray::OnReset() 4616 void CPropertyPage::OnReset() 4617 void COleControl::OnResetState() 4618 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4619 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4620 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4621 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 4622 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 4623 void COleClientItem::XAdviseSink::OnSave() 4624 int CDocument::OnSaveDocument(wchar_t const *) 4625 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 4626 int COleDocument::OnSaveDocument(wchar_t const *) 4627 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 4628 int COleServerDoc::OnSaveDocument(wchar_t const *) 4629 void COleServerDoc::OnSaveEmbedding(IStorage *) 4630 void COleServerItem::OnSaveEmbedding(IStorage *) 4631 void CDocObjectServer::OnSaveViewState(CArchive &) 4632 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4633 int CView::OnScroll(unsigned int,unsigned int,int) 4634 int COleClientItem::OnScrollBy(CSize) 4635 int CScrollView::OnScrollBy(CSize,int) 4636 int CView::OnScrollBy(CSize,int) 4637 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4638 void CAsyncSocket::OnSend(int) 4639 int CPropertyPage::OnSetActive() 4640 long CToolBar::OnSetBitmapSize(unsigned int,long) 4641 long CToolBar::OnSetButtonSize(unsigned int,long) 4642 void COleControl::OnSetClientSite() 4643 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4644 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4645 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4646 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4647 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4648 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4649 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4650 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4651 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4652 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4653 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4654 long CPropertySheet::OnSetDefID(unsigned int,long) 4655 int COleControl::OnSetExtent(tagSIZE *) 4656 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4657 void CFormView::OnSetFocus(CWnd *) 4658 void CFrameWnd::OnSetFocus(CWnd *) 4659 void COleControl::OnSetFocus(CWnd *) 4660 void CWnd::OnSetFocus(CWnd *) 4661 long CCheckListBox::OnSetFont(unsigned int,long) 4662 void CDialog::OnSetFont(CFont *) 4663 long CEditView::OnSetFont(unsigned int,long) 4664 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 4665 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4666 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4667 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4668 long CFrameWnd::OnSetMessageString(unsigned int,long) 4669 long COleControl::OnSetMessageString(unsigned int,long) 4670 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 4671 long CStatusBar::OnSetMinHeight(unsigned int,long) 4672 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 4673 void CDatabase::OnSetOptions(void *) 4674 void CRecordset::OnSetOptions(void *) 4675 void COlePropertyPage::OnSetPageSite() 4676 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4677 long CToolBar::OnSetSizeHelper(CSize &,long) 4678 long COleControl::OnSetText(unsigned int,long) 4679 long CStatusBar::OnSetText(unsigned int,long) 4680 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 4681 void CRecordset::OnSetUpdateOptions(void *) 4682 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 4683 void CDocObjectServerItem::OnShow() 4684 void COleServerItem::OnShow() 4685 long CReBar::OnShowBand(unsigned int,long) 4686 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 4687 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 4688 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 4689 void COleServerDoc::OnShowDocument(int) 4690 void COleClientItem::OnShowItem() 4691 void COleControl::OnShowToolBars() 4692 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 4693 void COleDocument::OnShowViews(int) 4694 void COleLinkingDoc::OnShowViews(int) 4695 void COleControl::OnShowWindow(int,unsigned int) 4696 long COleClientItem::XOleClientSite::OnShowWindow(int) 4697 long COleControlSite::XOleClientSite::OnShowWindow(int) 4698 void CDHtmlDialog::OnSize(unsigned int,int,int) 4699 void CFrameWnd::OnSize(unsigned int,int,int) 4700 void CHtmlView::OnSize(unsigned int,int,int) 4701 void CMDIChildWnd::OnSize(unsigned int,int,int) 4702 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4703 void COleControl::OnSize(unsigned int,int,int) 4704 void COleIPFrameWnd::OnSize(unsigned int,int,int) 4705 void COleResizeBar::OnSize(unsigned int,int,int) 4706 void CPreviewView::OnSize(unsigned int,int,int) 4707 void CScrollView::OnSize(unsigned int,int,int) 4708 void CSplitterWnd::OnSize(unsigned int,int,int) 4709 void CStatusBar::OnSize(unsigned int,int,int) 4710 long CControlBar::OnSizeParent(unsigned int,long) 4711 long CDockBar::OnSizeParent(unsigned int,long) 4712 long COleResizeBar::OnSizeParent(unsigned int,long) 4713 int CEnumArray::OnSkip() 4714 long CSocketWnd::OnSocketDead(unsigned int,long) 4715 long CSocketWnd::OnSocketNotify(unsigned int,long) 4716 int CView::OnSplitCmd(unsigned int) 4717 void CAsyncMonikerFile::OnStartBinding() 4718 void CHtmlView::OnStatusBar(int) 4719 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4720 void CHtmlView::OnStatusTextChange(wchar_t const *) 4721 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 4722 void CToolBar::OnSysColorChange() 4723 void CWnd::OnSysColorChange() 4724 void CFrameWnd::OnSysCommand(unsigned int,long) 4725 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4726 void CPropertySheet::OnSysCommand(unsigned int,long) 4727 void CSplitterWnd::OnSysCommand(unsigned int,long) 4728 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4729 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4730 void COleControl::OnTextChanged() 4731 void CEditView::OnTextNotFound(wchar_t const *) 4732 void CRichEditView::OnTextNotFound(wchar_t const *) 4733 void CHtmlView::OnTheaterMode(int) 4734 void CControlBar::OnTimer(unsigned int) 4735 void CHtmlView::OnTitleChange(wchar_t const *) 4736 void CHtmlView::OnToolBar(int) 4737 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4738 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4739 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4740 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4741 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4742 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 4743 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 4744 void CFileDialog::OnTypeChange() 4745 void COleControlContainer::OnUIActivate(COleControlSite *) 4746 long COleClientItem::XOleIPSite::OnUIActivate() 4747 long COleControlSite::XOleIPSite::OnUIActivate() 4748 void COleControlContainer::OnUIDeactivate(COleControlSite *) 4749 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 4750 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 4751 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 4752 void CView::OnUpdate(CView *,long,CObject *) 4753 void CRichEditView::OnUpdateBullet(CCmdUI *) 4754 void CRichEditView::OnUpdateCharBold(CCmdUI *) 4755 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 4756 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 4757 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 4758 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4759 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4760 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 4761 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4762 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4763 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4764 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4765 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4766 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4767 int COleServerDoc::OnUpdateDocument() 4768 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 4769 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 4770 void CHtmlView::OnUpdateEditCut(CCmdUI *) 4771 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 4772 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 4773 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 4774 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 4775 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 4776 void CEditView::OnUpdateEditUndo(CCmdUI *) 4777 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 4778 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 4779 void CDocument::OnUpdateFileSendMail(CCmdUI *) 4780 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 4781 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4782 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 4783 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 4784 void CFrameWnd::OnUpdateFrameTitle(int) 4785 void CMDIChildWnd::OnUpdateFrameTitle(int) 4786 void CMDIFrameWnd::OnUpdateFrameTitle(int) 4787 int COleClientItem::OnUpdateFrameTitle() 4788 int COleFrameHook::OnUpdateFrameTitle() 4789 void COleServerItem::OnUpdateItems() 4790 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 4791 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 4792 void CEditView::OnUpdateNeedClip(CCmdUI *) 4793 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 4794 void CEditView::OnUpdateNeedFind(CCmdUI *) 4795 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 4796 void CEditView::OnUpdateNeedSel(CCmdUI *) 4797 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 4798 void CEditView::OnUpdateNeedText(CCmdUI *) 4799 void CRichEditView::OnUpdateNeedText(CCmdUI *) 4800 void CPreviewView::OnUpdateNextPage(CCmdUI *) 4801 void CView::OnUpdateNextPaneMenu(CCmdUI *) 4802 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 4803 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 4804 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 4805 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 4806 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 4807 void CRichEditView::OnUpdateParaRight(CCmdUI *) 4808 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 4809 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 4810 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 4811 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 4812 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 4813 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 4814 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 4815 void CRecordView::OnUpdateRecordLast(CCmdUI *) 4816 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 4817 void CRecordView::OnUpdateRecordNext(CCmdUI *) 4818 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 4819 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 4820 void CView::OnUpdateSplitCmd(CCmdUI *) 4821 long CHtmlView::OnUpdateUI() 4822 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 4823 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 4824 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 4825 void CHtmlView::OnVisible(int) 4826 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 4827 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4828 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4829 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4830 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4831 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 4832 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 4833 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 4834 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 4835 void CMDIFrameWnd::OnWindowNew() 4836 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 4837 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 4838 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 4839 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 4840 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 4841 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 4842 long CPropertyPage::OnWizardBack() 4843 int CPropertyPage::OnWizardFinish() 4844 long CPropertyPage::OnWizardNext() 4845 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 4846 void CPreviewView::OnZoomIn() 4847 void CPreviewView::OnZoomOut() 4848 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 4849 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 4850 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 4851 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 4852 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 4853 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 4854 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 4855 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 4856 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 4857 int CDataPathProperty::Open(CFileException *) 4858 int CDataPathProperty::Open(COleControl *,CFileException *) 4859 int CDataPathProperty::Open(wchar_t const *,CFileException *) 4860 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 4861 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 4862 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 4863 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 4864 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 4865 int CMonikerFile::Open(IMoniker *,CFileException *) 4866 int CMonikerFile::Open(wchar_t const *,CFileException *) 4867 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 4868 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 4869 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 4870 long CDocObjectServer::XOleDocumentView::Open() 4871 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 4872 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 4873 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 4874 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 4875 int CDatabase::OpenEx(wchar_t const *,unsigned long) 4876 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 4877 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 4878 long COleUILinkInfo::OpenLinkSource(unsigned long) 4879 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 4880 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 4881 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 4882 int CHtmlEditDoc::OpenURL(wchar_t const *) 4883 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 4884 int CFileException::OsErrorToException(long) 4885 void CDumpContext::OutputString(wchar_t const *) 4886 int CEditView::PaginateTo(CDC *,CPrintInfo *) 4887 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 4888 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 4889 int CWnd::PaintWindowlessControls(CDC *) 4890 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 4891 void CWinApp::ParseCommandLine(CCommandLineInfo &) 4892 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 4893 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 4894 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 4895 void CCommandLineInfo::ParseLast(int) 4896 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 4897 void CCommandLineInfo::ParseParam(char const *,int,int) 4898 void CCommandLineInfo::ParseParamFlag(char const *) 4899 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 4900 void CCommandLineInfo::ParseParamNotFlag(char const *) 4901 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 4902 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 4903 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 4904 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 4905 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 4906 int CDC::PlayMetaFile(HMETAFILE__ *) 4907 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 4908 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 4909 int CDC::PolyBezierTo(tagPOINT const *,int) 4910 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 4911 int CDC::PolylineTo(tagPOINT const *,int) 4912 void CPreviewView::PositionPage(unsigned int) 4913 int CAsyncMonikerFile::PostBindToStream(CFileException *) 4914 int CMonikerFile::PostBindToStream(CFileException *) 4915 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 4916 void CDialog::PostModal() 4917 void CPrintDialogEx::PostModal() 4918 void COleControl::PostModalDialog(HWND__ *) 4919 void CControlBar::PostNcDestroy() 4920 void CControlFrameWnd::PostNcDestroy() 4921 void CFindReplaceDialog::PostNcDestroy() 4922 void CFrameWnd::PostNcDestroy() 4923 void COleCntrFrameWnd::PostNcDestroy() 4924 void CReflectorWnd::PostNcDestroy() 4925 void CView::PostNcDestroy() 4926 void CWnd::PostNcDestroy() 4927 void CRecordset::PreBindFields() 4928 void CDocument::PreCloseFrame(CFrameWnd *) 4929 void COleDocument::PreCloseFrame(CFrameWnd *) 4930 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 4931 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 4932 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 4933 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 4934 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4935 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 4936 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 4937 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4938 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 4939 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 4940 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 4941 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4942 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 4943 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 4944 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 4945 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 4946 int CView::PreCreateWindow(tagCREATESTRUCTW &) 4947 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 4948 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 4949 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 4950 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 4951 void CDialog::PreInitDialog() 4952 void COleChangeSourceDialog::PreInitDialog() 4953 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 4954 HWND__ * CDialog::PreModal() 4955 HWND__ * CPrintDialogEx::PreModal() 4956 void COleControl::PreModalDialog(HWND__ *) 4957 void CRecordset::PrepareAndExecute() 4958 HWND__ * CDataExchange::PrepareCtrl(int) 4959 HWND__ * CDataExchange::PrepareEditCtrl(int) 4960 void CWnd::PrepareForHelp() 4961 COleControlSite * CDataExchange::PrepareOleCtrl(int) 4962 void CRecordset::PrepareUpdateHstmt() 4963 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 4964 void CDragListBox::PreSubclassWindow() 4965 void CWnd::PreSubclassWindow() 4966 int CWnd::PreTranslateInput(tagMSG *) 4967 int CControlBar::PreTranslateMessage(tagMSG *) 4968 int CDialog::PreTranslateMessage(tagMSG *) 4969 int CFormView::PreTranslateMessage(tagMSG *) 4970 int CFrameWnd::PreTranslateMessage(tagMSG *) 4971 int CHtmlView::PreTranslateMessage(tagMSG *) 4972 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 4973 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 4974 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 4975 int COlePropertyPage::PreTranslateMessage(tagMSG *) 4976 int CPropertyPage::PreTranslateMessage(tagMSG *) 4977 int CPropertySheet::PreTranslateMessage(tagMSG *) 4978 int CWinThread::PreTranslateMessage(tagMSG *) 4979 int CWnd::PreTranslateMessage(tagMSG *) 4980 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 4981 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 4982 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 4983 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 4984 long CRichEditView::PrintPage(CDC *,long,long) 4985 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 4986 long COleException::Process(CException const *) 4987 int CSocket::ProcessAuxQueue() 4988 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 4989 int CWinThread::ProcessMessageFilter(int,tagMSG *) 4990 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 4991 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 4992 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 4993 void COleSafeArray::PtrOfIndex(long *,void * *) 4994 int CMetaFileDC::PtVisible(int,int)const 4995 int CWinThread::PumpMessage() 4996 int CSocket::PumpMessages(unsigned int) 4997 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 4998 long CWnd::put_accName(tagVARIANT,wchar_t *) 4999 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5000 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5001 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5002 void COleSafeArray::PutElement(long *,void *) 5003 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 5004 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 5005 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 5006 int PX_Bool(CPropExchange *,wchar_t const *,int &) 5007 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 5008 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 5009 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5010 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 5011 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 5012 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 5013 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 5014 int PX_Double(CPropExchange *,wchar_t const *,double &) 5015 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 5016 int PX_Float(CPropExchange *,wchar_t const *,float &) 5017 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 5018 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5019 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 5020 int PX_Long(CPropExchange *,wchar_t const *,long &) 5021 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 5022 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 5023 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 5024 int PX_Short(CPropExchange *,wchar_t const *,short &) 5025 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 5026 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 5027 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 5028 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5029 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 5030 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5031 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 5032 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 5033 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5034 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5035 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5036 IUnknown * CCmdTarget::QueryAggregates(void const *) 5037 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5038 long COleDropSource::QueryContinueDrag(int,unsigned long) 5039 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5040 void * COleControl::QueryDefHandler(_GUID const &) 5041 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5042 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5043 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5044 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5045 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5046 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5047 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5048 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5049 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5050 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5051 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5052 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5053 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5054 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5055 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5056 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5057 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5058 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5059 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5060 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5061 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5062 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5063 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5064 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5065 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 5066 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5067 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5068 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 5069 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5070 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5071 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 5072 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5073 long CPropertyPage::QuerySiblings(unsigned int,long) 5074 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5075 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5076 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5077 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5078 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5079 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 5080 int COleControlSite::QuickActivate() 5081 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5082 int COleClientItem::ReactivateAndUndo() 5083 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5084 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5085 unsigned int CArchive::Read(void *,unsigned int) 5086 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5087 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5088 unsigned int CFile::Read(void *,unsigned int) 5089 int CImageList::Read(CArchive *) 5090 unsigned int CInternetFile::Read(void *,unsigned int) 5091 unsigned int CMemFile::Read(void *,unsigned int) 5092 unsigned int COleStreamFile::Read(void *,unsigned int) 5093 unsigned int CSocketFile::Read(void *,unsigned int) 5094 unsigned int CStdioFile::Read(void *,unsigned int) 5095 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5096 unsigned long CArchive::ReadCount() 5097 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5098 int CProperty::ReadFromStream(IStream *) 5099 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5100 int CPropertySet::ReadFromStream(IStream *) 5101 void COleClientItem::ReadItem(CArchive &) 5102 void COleClientItem::ReadItemCompound(CArchive &) 5103 void COleClientItem::ReadItemFlat(CArchive &) 5104 void CRecentFileList::ReadList() 5105 int CPropertySection::ReadNameDictFromStream(IStream *) 5106 CObject * CArchive::ReadObject(CRuntimeconst *) 5107 int CArchive::ReadString(ATL::CStringT > > &) 5108 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 5109 int CInternetFile::ReadString(ATL::CStringT > > &) 5110 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 5111 int CStdioFile::ReadString(ATL::CStringT > > &) 5112 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 5113 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5114 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5115 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5116 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5117 void CRecordset::RebindParams(void *) 5118 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5119 void CFrameWnd::RecalcLayout(int) 5120 void CMiniDockFrameWnd::RecalcLayout(int) 5121 void COleCntrFrameWnd::RecalcLayout(int) 5122 void COleDocIPFrameWnd::RecalcLayout(int) 5123 void COleIPFrameWnd::RecalcLayout(int) 5124 void CSplitterWnd::RecalcLayout() 5125 int CAsyncSocket::Receive(void *,int,int) 5126 int CSocket::Receive(void *,int,int) 5127 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5128 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5129 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5130 void COleControl::RecreateControlWindow() 5131 CRect const CFrameWnd::rectDefault 5132 int CMetaFileDC::RectVisible(tagRECT const *)const 5133 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5134 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5135 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5136 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5137 int CWnd::ReflectLastMsg(HWND__ *,long *) 5138 void COleControl::Refresh() 5139 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5140 int COleDropTarget::Register(CWnd *) 5141 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 5142 int COleMessageFilter::Register() 5143 int COleObjectFactory::Register() 5144 int COleTemplateServer::Register() 5145 int CWinApp::Register() 5146 int COleObjectFactory::RegisterAll() 5147 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 5148 void CDocManager::RegisterShellFileTypes(int) 5149 void CWinApp::RegisterShellFileTypes(int) 5150 unsigned long CArchiveStream::Release() 5151 unsigned long CBlobProperty::Release() 5152 unsigned long CBrowserControlSite::Release() 5153 unsigned long CDHtmlControlSink::Release() 5154 unsigned long CDHtmlElementEventSink::Release() 5155 unsigned long CDHtmlEventSink::Release() 5156 unsigned long CInnerUnknown::Release() 5157 void COleClientItem::Release(enum tagOLECLOSE) 5158 unsigned long COleConnPtContainer::Release() 5159 void COleDataObject::Release() 5160 unsigned long COleDispatchImpl::Release() 5161 void COleDocObjectItem::Release(enum tagOLECLOSE) 5162 unsigned long COleUILinkInfo::Release() 5163 unsigned long CPrintDialogEx::Release() 5164 void CDC::ReleaseAttribDC() 5165 void COleControl::ReleaseCaches() 5166 int COleControl::ReleaseCapture() 5167 int COleControl::ReleaseDC(CDC *) 5168 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5169 void COleDispatchDriver::ReleaseDispatch() 5170 void CDocObjectServer::ReleaseDocSite() 5171 void CDocument::ReleaseFile(CFile *,int) 5172 void CFontHolder::ReleaseFont() 5173 void CDC::ReleaseOutputDC() 5174 void CMetaFileDC::ReleaseOutputDC() 5175 void CPreviewDC::ReleaseOutputDC() 5176 int COleClientItem::Reload() 5177 void CFile::Remove(wchar_t const *) 5178 int CFtpConnection::Remove(wchar_t const *) 5179 void CPropertySection::Remove(unsigned long) 5180 void CPropertySet::Remove(_GUID) 5181 void CPropertySet::Remove(_GUID,unsigned long) 5182 void CRecentFileList::Remove(int) 5183 int CSimpleList::Remove(void *) 5184 void CMapPtrToPtr::RemoveAll() 5185 void CMapPtrToWord::RemoveAll() 5186 void CMapStringToOb::RemoveAll() 5187 void CMapStringToPtr::RemoveAll() 5188 void CMapStringToString::RemoveAll() 5189 void CMapWordToOb::RemoveAll() 5190 void CMapWordToPtr::RemoveAll() 5191 void CObList::RemoveAll() 5192 void CPropertySection::RemoveAll() 5193 void CPropertySet::RemoveAll() 5194 void CPtrList::RemoveAll() 5195 void CStringList::RemoveAll() 5196 void CTypeLibCacheMap::RemoveAll(void *) 5197 void CByteArray::RemoveAt(int,int) 5198 void CDWordArray::RemoveAt(int,int) 5199 void CObArray::RemoveAt(int,int) 5200 void CObList::RemoveAt(__POSITION *) 5201 void CPtrArray::RemoveAt(int,int) 5202 void CPtrList::RemoveAt(__POSITION *) 5203 void CStringArray::RemoveAt(int,int) 5204 void CStringList::RemoveAt(__POSITION *) 5205 void CUIntArray::RemoveAt(int,int) 5206 void CWordArray::RemoveAt(int,int) 5207 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5208 void CFrameWnd::RemoveControlBar(CControlBar *) 5209 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 5210 void CDocTemplate::RemoveDocument(CDocument *) 5211 void CMultiDocTemplate::RemoveDocument(CDocument *) 5212 void CSingleDocTemplate::RemoveDocument(CDocument *) 5213 void COleControl::RemoveFrameLevelUI() 5214 void CFrameWnd::RemoveFrameWnd() 5215 CObject * CObList::RemoveHead() 5216 void * CPtrList::RemoveHead() 5217 ATL::CStringT > > CStringList::RemoveHead() 5218 void CListCtrl::RemoveImageList(int) 5219 void CListView::RemoveImageList(int) 5220 void CTreeCtrl::RemoveImageList(int) 5221 void CTreeView::RemoveImageList(int) 5222 void COleDocument::RemoveItem(CDocItem *) 5223 int CMapPtrToPtr::RemoveKey(void *) 5224 int CMapPtrToWord::RemoveKey(void *) 5225 int CMapStringToOb::RemoveKey(wchar_t const *) 5226 int CMapStringToPtr::RemoveKey(wchar_t const *) 5227 int CMapStringToString::RemoveKey(wchar_t const *) 5228 int CMapWordToOb::RemoveKey(unsigned short) 5229 int CMapWordToPtr::RemoveKey(unsigned short) 5230 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5231 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5232 void CPropertySheet::RemovePage(int) 5233 void CPropertySheet::RemovePage(CPropertyPage *) 5234 void CDockBar::RemovePlaceHolder(CControlBar *) 5235 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5236 void CDataBoundProperty::RemoveSource() 5237 CObject * CObList::RemoveTail() 5238 void * CPtrList::RemoveTail() 5239 ATL::CStringT > > CStringList::RemoveTail() 5240 void CDocument::RemoveView(CView *) 5241 void CFile::Rename(wchar_t const *,wchar_t const *) 5242 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 5243 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5244 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5245 void CDatabase::ReplaceBrackets(wchar_t *) 5246 int CException::ReportError(unsigned int,unsigned int) 5247 int COleClientItem::ReportError(long)const 5248 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5249 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5250 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5251 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5252 int CRecordset::Requery() 5253 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5254 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5255 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5256 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5257 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5258 void COleServerDoc::RequestPositionChange(tagRECT const *) 5259 long COleControlSite::XOleIPSite::RequestUIActivate() 5260 long CEnumArray::XEnumVOID::Reset() 5261 void CRecordset::ResetCursor() 5262 void CCachedDataPathProperty::ResetData() 5263 void CDataPathProperty::ResetData() 5264 void COleControl::ResetStockProps() 5265 void CControlBar::ResetTimer(unsigned int,unsigned int) 5266 void COleControl::ResetVersion(unsigned long) 5267 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5268 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5269 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5270 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5271 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5272 void COleControl::ResizeFrameWindow(int,int) 5273 void COleSafeArray::ResizeOneDim(unsigned long) 5274 void COleControl::ResizeOpenControl(int,int) 5275 void CScrollView::ResizeParentToFit(int) 5276 int CDC::RestoreDC(int) 5277 int CPreviewDC::RestoreDC(int) 5278 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 5279 void CCmdTarget::RestoreWaitCursor() 5280 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5281 long CArchiveStream::Revert() 5282 void COleDropTarget::Revoke() 5283 void COleLinkingDoc::Revoke() 5284 void COleMessageFilter::Revoke() 5285 void COleObjectFactory::Revoke() 5286 void COleObjectFactory::RevokeAll() 5287 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 5288 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 5289 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 5290 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 5291 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5292 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 5293 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 5294 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 5295 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 5296 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 5297 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 5298 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 5299 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 5300 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 5301 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5302 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 5303 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 5304 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 5305 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 5306 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 5307 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 5308 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 5309 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 5310 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 5311 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 5312 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 5313 int CDatabase::Rollback() 5314 void COleClientItem::Run() 5315 int CWinApp::Run() 5316 int CWinThread::Run() 5317 int CWinApp::RunAutomated() 5318 int CWinApp::RunEmbedded() 5319 int CWnd::RunModalLoop(unsigned long) 5320 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5321 int CEditView::SameAsSelected(wchar_t const *,int) 5322 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 5323 long CBlobProperty::Save(IStream *,int) 5324 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 5325 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5326 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5327 long COleControl::XPersistStorage::Save(IStorage *,int) 5328 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5329 long COleControl::XPersistStreamInit::Save(IStream *,int) 5330 int CDocManager::SaveAllModified() 5331 int CDocTemplate::SaveAllModified() 5332 int CWinApp::SaveAllModified() 5333 void CFrameWnd::SaveBarState(wchar_t const *)const 5334 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 5335 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5336 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5337 int CDC::SaveDC() 5338 int CPreviewDC::SaveDC() 5339 void COleServerDoc::SaveEmbedding() 5340 int CFormView::SaveFocusControl() 5341 int CDocument::SaveModified() 5342 int COleDocument::SaveModified() 5343 int COleServerDoc::SaveModified() 5344 int COleServerDoc::SaveModifiedPrompt() 5345 long COleClientItem::XOleClientSite::SaveObject() 5346 long COleControlSite::XOleClientSite::SaveObject() 5347 int CControlBarInfo::SaveState(wchar_t const *,int) 5348 void CDockState::SaveState(wchar_t const *) 5349 long COleControl::SaveState(IStream *) 5350 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 5351 void CWinApp::SaveStdProfileSettings() 5352 void COleDocument::SaveToStorage(CObject *) 5353 void COleLinkingDoc::SaveToStorage(CObject *) 5354 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5355 void CDockState::ScalePoint(CPoint &) 5356 void CDockState::ScaleRectPos(CRect &) 5357 CSize CDC::ScaleViewportExt(int,int,int,int) 5358 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5359 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5360 CSize CDC::ScaleWindowExt(int,int,int,int) 5361 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5362 void CWnd::ScreenToClient(tagRECT *)const 5363 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5364 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5365 void COleControlContainer::ScrollChildren(int,int) 5366 int COleServerDoc::ScrollContainerBy(CSize) 5367 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 5368 void CScrollView::ScrollToDevicePosition(tagPOINT) 5369 void CScrollView::ScrollToPosition(tagPOINT) 5370 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5371 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5372 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5373 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5374 unsigned __int64 CFile::Seek(__int64,unsigned int) 5375 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 5376 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 5377 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 5378 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 5379 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 5380 CFont * CFontHolder::Select(CDC *,long,long) 5381 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 5382 int CDC::SelectClipPath(int) 5383 int CDC::SelectClipRgn(CRgn *) 5384 int CDC::SelectClipRgn(CRgn *,int) 5385 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5386 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5387 long CPrintDialogEx::SelectionChange() 5388 int CDC::SelectObject(CRgn *) 5389 CBrush * CDC::SelectObject(CBrush *) 5390 CPen * CDC::SelectObject(CPen *) 5391 CFont * CDC::SelectObject(CFont *) 5392 CFont * CPreviewDC::SelectObject(CFont *) 5393 CPalette * CDC::SelectPalette(CPalette *,int) 5394 void CWinApp::SelectPrinter(void *,void *,int) 5395 CFont * COleControl::SelectStockFont(CDC *) 5396 CGdiObject * CDC::SelectStockObject(int) 5397 CGdiObject * CPreviewDC::SelectStockObject(int) 5398 int CAsyncSocket::Send(void const *,int,int) 5399 int CSocket::Send(void const *,int,int) 5400 void COleControl::SendAdvise(unsigned int) 5401 int CWnd::SendChildNotifyLastMsg(long *) 5402 int CSocket::SendChunk(void const *,int,int) 5403 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5404 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5405 void CDocument::SendInitialUpdate() 5406 void CRecordset::SendLongBinaryData(void *) 5407 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5408 void COleControlSite::SendMnemonic(tagMSG *) 5409 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 5410 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 5411 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 5412 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 5413 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 5414 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5415 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5416 void CByteArray::Serialize(CArchive &) 5417 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5418 void CDocItem::Serialize(CArchive &) 5419 void CDockState::Serialize(CArchive &) 5420 void CDWordArray::Serialize(CArchive &) 5421 void CEditView::Serialize(CArchive &) 5422 void CMapStringToOb::Serialize(CArchive &) 5423 void CMapStringToString::Serialize(CArchive &) 5424 void CMapWordToOb::Serialize(CArchive &) 5425 void CObArray::Serialize(CArchive &) 5426 void CObList::Serialize(CArchive &) 5427 void COleClientItem::Serialize(CArchive &) 5428 void COleControl::Serialize(CArchive &) 5429 void COleDocument::Serialize(CArchive &) 5430 void CRichEditDoc::Serialize(CArchive &) 5431 void CRichEditView::Serialize(CArchive &) 5432 void CStringArray::Serialize(CArchive &) 5433 void CStringList::Serialize(CArchive &) 5434 void CWordArray::Serialize(CArchive &) 5435 CArchive & ATL::CTime::Serialize64(CArchive &) 5436 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 5437 void CArchive::SerializeClass(CRuntimeconst *) 5438 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 5439 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 5440 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 5441 void SerializeElements(CArchive &,COleVariant *,int) 5442 void COleControl::SerializeExtent(CArchive &) 5443 void CEditView::SerializeRaw(CArchive &) 5444 void COleControl::SerializeStockProps(CArchive &) 5445 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5446 int CProperty::Set(unsigned long,void * const,unsigned long) 5447 int CProperty::Set(void * const) 5448 int CProperty::Set(void * const,unsigned long) 5449 int CPropertySection::Set(unsigned long,void *) 5450 int CPropertySection::Set(unsigned long,void *,unsigned long) 5451 int CPropertySet::Set(_GUID,unsigned long,void *) 5452 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5453 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5454 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5455 int CPropertySheet::SetActivePage(int) 5456 int CPropertySheet::SetActivePage(CPropertyPage *) 5457 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5458 void CFrameWnd::SetActiveView(CView *,int) 5459 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5460 void COleControl::SetAppearance(short) 5461 int CDC::SetArcDirection(int) 5462 void CByteArray::SetAtGrow(int,unsigned char) 5463 void CDWordArray::SetAtGrow(int,unsigned long) 5464 void CObArray::SetAtGrow(int,CObject *) 5465 void CPtrArray::SetAtGrow(int,void *) 5466 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 5467 void CStringArray::SetAtGrow(int,wchar_t const *) 5468 void CUIntArray::SetAtGrow(int,unsigned int) 5469 void CWordArray::SetAtGrow(int,unsigned short) 5470 void CDC::SetAttribDC(HDC__ *) 5471 void CMetaFileDC::SetAttribDC(HDC__ *) 5472 void CPreviewDC::SetAttribDC(HDC__ *) 5473 void COleControl::SetBackColor(unsigned long) 5474 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5475 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5476 void CControlBar::SetBarStyle(unsigned long) 5477 int CToolBar::SetBitmap(HBITMAP__ *) 5478 unsigned long CDC::SetBkColor(unsigned long) 5479 unsigned long CPreviewDC::SetBkColor(unsigned long) 5480 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 5481 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 5482 int CDC::SetBkMode(int) 5483 void CRecordset::SetBookmark(CDBVariant const &) 5484 void CControlBar::SetBorders(int,int,int,int) 5485 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5486 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5487 void COleControl::SetBorderStyle(short) 5488 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5489 int CToolBar::SetButtons(unsigned int const *,int) 5490 void CToolBar::SetButtonStyle(int,unsigned int) 5491 int CToolBar::SetButtonText(int,wchar_t const *) 5492 CWnd * COleControl::SetCapture() 5493 long COleControlSite::XOleIPSite::SetCapture(int) 5494 void CRichEditView::SetCharFormat(CHARFORMAT2W) 5495 void CCheckListBox::SetCheck(int,int) 5496 void CCmdUI::SetCheck(int) 5497 int CListCtrl::SetCheck(int,int) 5498 void COleCmdUI::SetCheck(int) 5499 void CStatusCmdUI::SetCheck(int) 5500 void CTestCmdUI::SetCheck(int) 5501 void CToolCmdUI::SetCheck(int) 5502 int CTreeCtrl::SetCheck(_TREEITEM *,int) 5503 void CCheckListBox::SetCheckStyle(unsigned int) 5504 void CPropertySet::SetClassID(_GUID) 5505 void CDataBoundProperty::SetClientSite(COleControlSite *) 5506 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5507 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5508 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5509 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5510 void COleDataSource::SetClipboard() 5511 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5512 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 5513 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5514 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5515 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5516 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5517 void CSplitterWnd::SetColumnInfo(int,int,int) 5518 int CListCtrl::SetColumnOrderArray(int,int *) 5519 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5520 void CDocTemplate::SetContainerInfo(unsigned int) 5521 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5522 void CReflectorWnd::SetControl(COleControl *) 5523 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 5524 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 5525 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 5526 int COleControl::SetControlSize(int,int) 5527 int COlePropertyPage::SetControlStatus(unsigned int,int) 5528 void CFileDialog::SetControlText(int,char const *) 5529 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 5530 void COleCurrency::SetCurrency(long,long) 5531 void CColorDialog::SetCurrentColor(unsigned long) 5532 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 5533 void CWinApp::SetCurrentHandles() 5534 void CPreviewView::SetCurrentPage(unsigned int,int) 5535 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 5536 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 5537 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5538 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5539 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5540 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5541 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5542 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5543 int CMonthCalCtrl::SetDayState(int,unsigned long *) 5544 void COccManager::SetDefaultButton(CWnd *,int) 5545 void COleControlSite::SetDefaultButton(int) 5546 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 5547 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 5548 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5549 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5550 void CFileDialog::SetDefExt(char const *) 5551 void COlePropertyPage::SetDialogResource(void *) 5552 void CRecordset::SetDirtyFieldStatus(unsigned long) 5553 int COleControlSite::SetDlgCtrlID(int) 5554 int CWnd::SetDlgCtrlID(int) 5555 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5556 void CWnd::SetDlgItemInt(int,unsigned int,int) 5557 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 5558 void CWnd::SetDlgItemTextW(int,wchar_t const *) 5559 void CFrameWnd::SetDockState(CDockState const &) 5560 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5561 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5562 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5563 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5564 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 5565 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 5566 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 5567 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 5568 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 5569 void COleControl::SetEnabled(int) 5570 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5571 int COleControlSite::SetExtent() 5572 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5573 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5574 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5575 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5576 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 5577 void CRecordset::SetFieldDirty(void *,int) 5578 void CRecordset::SetFieldNull(void *,int) 5579 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5580 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 5581 CWnd * COleControl::SetFocus() 5582 CWnd * COleControlSite::SetFocus(tagMSG *) 5583 CWnd * COleControlSite::SetFocus() 5584 CWnd * CWnd::SetFocus() 5585 long COleControlSite::XOleIPSite::SetFocus(int) 5586 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 5587 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 5588 void CFontHolder::SetFont(IFont *) 5589 void COleControl::SetFont(IFontDisp *) 5590 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 5591 void COleControl::SetForeColor(unsigned long) 5592 void CPropertySection::SetFormatID(_GUID) 5593 void CPropertySet::SetFormatVersion(unsigned short) 5594 void CSharedFile::SetHandle(void *,int) 5595 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 5596 void CToolBar::SetHeight(int) 5597 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5598 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 5599 void CDHtmlDialog::SetHostFlags(unsigned long) 5600 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 5601 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5602 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5603 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5604 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5605 int COleClientItem::SetIconicMetafile(void *) 5606 CSize CListCtrl::SetIconSpacing(int,int) 5607 CSize CListCtrl::SetIconSpacing(CSize) 5608 void CProperty::SetID(unsigned long) 5609 int CReBarCtrl::SetImageList(CImageList *) 5610 int CStatusBar::SetIndicators(unsigned int const *,int) 5611 void COleControl::SetInitialDataFormats() 5612 long CDocObjectServer::XPrint::SetInitialPageNum(long) 5613 void COleControl::SetInitialSize(int,int) 5614 void CControlBar::SetInPlaceOwner(CWnd *) 5615 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 5616 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 5617 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 5618 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 5619 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 5620 int CListCtrl::SetItemCountEx(int,unsigned long) 5621 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 5622 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 5623 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 5624 int CListCtrl::SetItemText(int,int,wchar_t const *) 5625 unsigned long CDC::SetLayout(unsigned long) 5626 void CFile::SetLength(unsigned __int64) 5627 void CInternetFile::SetLength(unsigned __int64) 5628 void CMemFile::SetLength(unsigned __int64) 5629 void COleStreamFile::SetLength(unsigned __int64) 5630 void CSocketFile::SetLength(unsigned __int64) 5631 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 5632 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 5633 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 5634 void CRecordset::SetLockingMode(unsigned int) 5635 int CDC::SetMapMode(int) 5636 int CPreviewDC::SetMapMode(int) 5637 unsigned long CDC::SetMapperFlags(unsigned long) 5638 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5639 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5640 void CFrameWnd::SetMessageText(unsigned int) 5641 void CFrameWnd::SetMessageText(wchar_t const *) 5642 void CPropertyPage::SetModified(int) 5643 void COleControl::SetModifiedFlag(int) 5644 void COlePropertyPage::SetModifiedFlag(int) 5645 void CRichEditDoc::SetModifiedFlag(int) 5646 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 5647 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 5648 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 5649 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 5650 int CPropertySection::SetName(unsigned long,wchar_t const *) 5651 void COleControl::SetNotPermitted() 5652 void CCmdTarget::SetNotSupported() 5653 void COleControl::SetNotSupported() 5654 void CRecordset::SetNullFieldStatus(unsigned long) 5655 void CRecordset::SetNullParamStatus(unsigned long) 5656 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5657 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5658 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 5659 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5660 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5661 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5662 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5663 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 5664 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 5665 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 5666 int CHeaderCtrl::SetOrderArray(int,int *) 5667 void CPropertySet::SetOSVersion(unsigned long) 5668 void CDC::SetOutputDC(HDC__ *) 5669 void CMetaFileDC::SetOutputDC(HDC__ *) 5670 void CPreviewDC::SetOutputDC(HDC__ *) 5671 void CToolBar::SetOwner(CWnd *) 5672 void COlePropertyPage::SetPageName(wchar_t const *) 5673 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 5674 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 5675 void CStatusBar::SetPaneStyle(int,unsigned int) 5676 int CStatusBar::SetPaneText(int,wchar_t const *,int) 5677 int CRichEditCtrl::SetParaFormat(_paraformat &) 5678 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 5679 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 5680 void CRecordset::SetParamNull(int,int) 5681 void CDocument::SetPathName(wchar_t const *,int) 5682 void COleDocument::SetPathName(wchar_t const *,int) 5683 void CRichEditDoc::SetPathName(wchar_t const *,int) 5684 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 5685 int CDC::SetPolyFillMode(int) 5686 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 5687 int COleClientItem::SetPrintDevice(tagPDW const *) 5688 void CEditView::SetPrinterFont(CFont *) 5689 int CPreviewView::SetPrintView(CView *) 5690 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 5691 void COleControlSite::SetProperty(long,unsigned short,...) 5692 void COleDispatchDriver::SetProperty(long,unsigned short,...) 5693 void CWnd::SetProperty(long,unsigned short,...) 5694 void COleControlSite::SetPropertyV(long,unsigned short,char *) 5695 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 5696 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 5697 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 5698 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 5699 int COlePropertyPage::SetPropText(wchar_t const *,short &) 5700 int COlePropertyPage::SetPropText(wchar_t const *,int &) 5701 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 5702 int COlePropertyPage::SetPropText(wchar_t const *,long &) 5703 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 5704 int COlePropertyPage::SetPropText(wchar_t const *,float &) 5705 int COlePropertyPage::SetPropText(wchar_t const *,double &) 5706 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 5707 long CWnd::SetProxy(IAccessibleProxy *) 5708 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 5709 void CCmdUI::SetRadio(int) 5710 void CTestCmdUI::SetRadio(int) 5711 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5712 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5713 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5714 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5715 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5716 void CSliderCtrl::SetRange(int,int,int) 5717 int CInternetFile::SetReadBufferSize(unsigned int) 5718 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 5719 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 5720 int COleControl::SetRectInContainer(tagRECT const *) 5721 void CWinApp::SetRegistryKey(unsigned int) 5722 void CWinApp::SetRegistryKey(wchar_t const *) 5723 int CDC::SetROP2(int) 5724 void CSplitterWnd::SetRowInfo(int,int,int) 5725 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 5726 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 5727 void CRecordset::SetRowsetSize(unsigned long) 5728 void CPreviewView::SetScaledSize(unsigned int) 5729 void CPreviewDC::SetScaleRatio(int,int) 5730 void CScrollView::SetScaleToFitSize(tagSIZE) 5731 void CDockState::SetScreenSize(CSize &) 5732 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 5733 int CWnd::SetScrollPos(int,int,int) 5734 void CWnd::SetScrollRange(int,int,int,int) 5735 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 5736 void CSplitterWnd::SetScrollStyle(unsigned long) 5737 int CPropertySection::SetSectionName(wchar_t const *) 5738 void CRichEditCtrl::SetSel(long,long) 5739 void CSliderCtrl::SetSelection(int,int) 5740 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 5741 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 5742 void CCheckListBox::SetSelectionCheck(int) 5743 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 5744 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 5745 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5746 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 5747 long CPrintDialogEx::SetSite(IUnknown *) 5748 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 5749 void CByteArray::SetSize(int,int) 5750 void CDWordArray::SetSize(int,int) 5751 void CObArray::SetSize(int,int) 5752 void CPtrArray::SetSize(int,int) 5753 void CStringArray::SetSize(int,int) 5754 void CUIntArray::SetSize(int,int) 5755 void CWordArray::SetSize(int,int) 5756 void CToolBar::SetSizes(tagSIZE,tagSIZE) 5757 void CSplitterWnd::SetSplitCursor(int) 5758 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 5759 void CRecordset::SetState(int,wchar_t const *,unsigned long) 5760 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 5761 int CControlBar::SetStatusText(int) 5762 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 5763 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 5764 int CDC::SetStretchBltMode(int) 5765 void COleVariant::SetString(wchar_t const *,unsigned short) 5766 int CDialogTemplate::SetSystemFont(unsigned short) 5767 void CEditView::SetTabStops(int) 5768 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 5769 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 5770 void CCmdUI::SetText(wchar_t const *) 5771 void COleCmdUI::SetText(wchar_t const *) 5772 void COleControl::SetText(wchar_t const *) 5773 void CStatusCmdUI::SetText(wchar_t const *) 5774 void CTestCmdUI::SetText(wchar_t const *) 5775 void CToolCmdUI::SetText(wchar_t const *) 5776 unsigned int CDC::SetTextAlign(unsigned int) 5777 int CDC::SetTextCharacterExtra(int) 5778 unsigned long CDC::SetTextColor(unsigned long) 5779 unsigned long CPreviewDC::SetTextColor(unsigned long) 5780 int CDC::SetTextJustification(int,int) 5781 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 5782 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 5783 int CDateTimeCtrl::SetTime(ATL::CTime const *) 5784 void CDocument::SetTitle(wchar_t const *) 5785 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 5786 void CRichEditDoc::SetTitle(wchar_t const *) 5787 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 5788 void CMonthCalCtrl::SetToday(ATL::CTime const *) 5789 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 5790 void CPreviewDC::SetTopLeftOffset(CSize) 5791 void CProperty::SetType(unsigned long) 5792 void CRecordset::SetUpdateMethod() 5793 void CThreadSlotData::SetValue(int,void *) 5794 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 5795 CSize CDC::SetViewportExt(int,int) 5796 CSize CMetaFileDC::SetViewportExt(int,int) 5797 CSize CPreviewDC::SetViewportExt(int,int) 5798 CPoint CDC::SetViewportOrg(int,int) 5799 CPoint CMetaFileDC::SetViewportOrg(int,int) 5800 CPoint CPreviewDC::SetViewportOrg(int,int) 5801 CSize CDC::SetWindowExt(int,int) 5802 CSize CPreviewDC::SetWindowExt(int,int) 5803 CPoint CDC::SetWindowOrg(int,int) 5804 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 5805 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 5806 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 5807 void COleControlSite::SetWindowTextW(wchar_t const *) 5808 void CWnd::SetWindowTextW(wchar_t const *) 5809 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 5810 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 5811 int CInternetFile::SetWriteBufferSize(unsigned int) 5812 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 5813 long CDocObjectServer::XOleDocumentView::Show(int) 5814 long COlePropertyPage::XPropertyPage::Show(unsigned int) 5815 void CDockBar::ShowAll(int) 5816 long CRichEditCntrItem::ShowContainerUI(int) 5817 long CRichEditView::ShowContainerUI(int) 5818 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 5819 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5820 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5821 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5822 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 5823 long COleClientItem::XOleClientSite::ShowObject() 5824 long COleControlSite::XOleClientSite::ShowObject() 5825 void CFrameWnd::ShowOwnedWindows(int) 5826 long COleControlSite::XOleControlSite::ShowPropertyFrame() 5827 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5828 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5829 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5830 int COleControlSite::ShowWindow(int) 5831 int CWnd::ShowWindow(int) 5832 tagSIZE const CScrollView::sizeDefault 5833 int CMonthCalCtrl::SizeMinReq(int) 5834 void CBitmapButton::SizeToContent() 5835 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 5836 long CEnumArray::XEnumVOID::Skip(unsigned long) 5837 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 5838 int CAsyncSocket::Socket(int,long,int,int) 5839 int CSplitterWnd::SplitColumn(int) 5840 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 5841 int CSplitterWnd::SplitRow(int) 5842 int CDC::StartDocW(wchar_t const *) 5843 void CDockContext::StartDrag(CPoint) 5844 void CDockContext::StartResize(int,CPoint) 5845 void CSplitterWnd::StartTracking(int) 5846 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 5847 void CSplitterWnd::StopTracking(int) 5848 void CRuntimeClass::Store(CArchive &)const 5849 void CRecordset::StoreFields() 5850 void CRichEditView::Stream(CArchive &,int) 5851 void CDockContext::Stretch(CPoint) 5852 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 5853 int CWnd::SubclassWindow(HWND__ *) 5854 int COleDocObjectItem::SupportsIPrint() 5855 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5856 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5857 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 5858 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 5859 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 5860 void CRichEditView::TextNotFound(wchar_t const *) 5861 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 5862 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 5863 void CFileException::ThrowErrno(int,wchar_t const *) 5864 void COleControl::ThrowError(long,unsigned int,unsigned int) 5865 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 5866 void CFileException::ThrowOsError(long,wchar_t const *) 5867 void CDockContext::ToggleDocking() 5868 COleVariant CDataSourceControl::ToVariant(int) 5869 int CDockContext::Track() 5870 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 5871 void CSplitterWnd::TrackColumnSize(int,int) 5872 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 5873 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 5874 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 5875 void CSplitterWnd::TrackRowSize(int,int) 5876 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 5877 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 5878 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 5879 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 5880 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 5881 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 5882 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 5883 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 5884 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 5885 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 5886 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 5887 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 5888 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 5889 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5890 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5891 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5892 long CDocObjectServer::XOleDocumentView::UIActivate(int) 5893 void COccManager::UIActivateControl(CWnd *) 5894 long COleControl::XOleInPlaceObject::UIDeactivate() 5895 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 5896 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 5897 void COleSafeArray::UnaccessData() 5898 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 5899 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 5900 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 5901 long COleControl::XOleObject::Unadvise(unsigned long) 5902 long COleServerDoc::XOleObject::Unadvise(unsigned long) 5903 long COleServerItem::XOleObject::Unadvise(unsigned long) 5904 void CRecordset::UnbindFieldsForUpdate() 5905 long COleControl::XOleCache::Uncache(unsigned long) 5906 long COleControl::XViewObject::Unfreeze(unsigned long) 5907 int CEvent::Unlock() 5908 int CMultiLock::Unlock(long,long *) 5909 int CMultiLock::Unlock() 5910 int CMutex::Unlock() 5911 void COleSafeArray::Unlock() 5912 int CSemaphore::Unlock(long,long *) 5913 int CSingleLock::Unlock(long,long *) 5914 int CSingleLock::Unlock() 5915 void CTypeLibCache::Unlock() 5916 void CEditView::UnlockBuffer()const 5917 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 5918 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 5919 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 5920 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 5921 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 5922 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 5923 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5924 int COleObjectFactory::Unregister() 5925 int COleTemplateServer::Unregister() 5926 int CWinApp::Unregister() 5927 int COleObjectFactory::UnregisterAll() 5928 void CDocManager::UnregisterShellFileTypes() 5929 void CWinApp::UnregisterShellFileTypes() 5930 HWND__ * CWnd::UnsubclassWindow() 5931 int CRecordset::Update() 5932 long CDocObjectServer::XOleObject::Update() 5933 long COleControl::XOleObject::Update() 5934 long COleServerDoc::XOleObject::Update() 5935 long COleServerItem::XOleObject::Update() 5936 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 5937 void CStatusBar::UpdateAllPanes(int,int) 5938 void CDocument::UpdateAllViews(CView *,long,CObject *) 5939 void CScrollView::UpdateBars() 5940 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 5941 long CDataSourceControl::UpdateControls() 5942 long CDataSourceControl::UpdateCursor() 5943 int CWnd::UpdateData(int) 5944 void CWnd::UpdateDialogControls(CCmdTarget *,int) 5945 void CDocument::UpdateFrameCounts() 5946 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 5947 int CRecordset::UpdateInsertDelete() 5948 void COleClientItem::UpdateItemType() 5949 int COleClientItem::UpdateLink() 5950 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 5951 void CRecentFileList::UpdateMenu(CCmdUI *) 5952 void COleDocument::UpdateModifiedFlag() 5953 void CRichEditDoc::UpdateModifiedFlag() 5954 void CRichEditDoc::UpdateObjectCache() 5955 void CWinApp::UpdatePrinterSelection(int) 5956 int COleObjectFactory::UpdateRegistry(int) 5957 void COleObjectFactory::UpdateRegistry(wchar_t const *) 5958 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 5959 int COleObjectFactory::UpdateRegistryAll(int) 5960 void CDockContext::UpdateState(int *,int) 5961 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 5962 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 5963 long CBrowserControlSite::UpdateUI() 5964 long CDHtmlDialog::UpdateUI() 5965 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 5966 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 5967 void COleLinkingDoc::UpdateVisibleLock(int,int) 5968 void CDatabase::VerifyConnect() 5969 unsigned long CRecordset::VerifyCursorSupport() 5970 void CRecordset::VerifyDriverBehavior() 5971 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 5972 int COleObjectFactory::VerifyUserLicense() 5973 int CListBox::VKeyToItem(unsigned int,unsigned int) 5974 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 5975 int COleControl::WillAmbientsBeValidDuringLoad() 5976 long CControlBar::WindowProc(unsigned int,unsigned int,long) 5977 long COleControl::WindowProc(unsigned int,unsigned int,long) 5978 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 5979 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 5980 long CReBar::WindowProc(unsigned int,unsigned int,long) 5981 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 5982 long CWnd::WindowProc(unsigned int,unsigned int,long) 5983 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 5984 void CWnd::WinHelpInternal(unsigned long,unsigned int) 5985 void CWinApp::WinHelpW(unsigned long,unsigned int) 5986 void CWnd::WinHelpW(unsigned long,unsigned int) 5987 CWnd const CWnd::wndBottom 5988 CWnd const CWnd::wndNoTopMost 5989 CWnd const CWnd::wndTop 5990 CWnd const CWnd::wndTopMost 5991 void CRichEditView::WrapChanged() 5992 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 5993 void CArchive::Write(void const *,unsigned int) 5994 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 5995 void CFile::Write(void const *,unsigned int) 5996 void CGopherFile::Write(void const *,unsigned int) 5997 int CImageList::Write(CArchive *) 5998 void CInternetFile::Write(void const *,unsigned int) 5999 void CMemFile::Write(void const *,unsigned int) 6000 void COleStreamFile::Write(void const *,unsigned int) 6001 void CSocketFile::Write(void const *,unsigned int) 6002 void CStdioFile::Write(void const *,unsigned int) 6003 void CArchive::WriteClass(CRuntimeconst *) 6004 void CArchive::WriteCount(unsigned long) 6005 void COleClientItem::WriteItem(CArchive &) 6006 void COleClientItem::WriteItemCompound(CArchive &) 6007 void COleClientItem::WriteItemFlat(CArchive &) 6008 void CRecentFileList::WriteList() 6009 int CPropertySection::WriteNameDictToStream(IStream *) 6010 void CArchive::WriteObject(CObject const *) 6011 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 6012 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 6013 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 6014 void CArchive::WriteString(wchar_t const *) 6015 void CGopherFile::WriteString(wchar_t const *) 6016 void CInternetFile::WriteString(wchar_t const *) 6017 void CStdioFile::WriteString(wchar_t const *) 6018 void CEditView::WriteToArchive(CArchive &) 6019 int CProperty::WriteToStream(IStream *) 6020 int CPropertySection::WriteToStream(IStream *) 6021 int CPropertySet::WriteToStream(IStream *) 6022 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 6023 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 6024 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 6025 int AfxInitRichEdit2() 6026 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 6027 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 6028 CDaoException::CDaoException() 6029 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 6030 CDaoIndexInfo::CDaoIndexInfo() 6031 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 6032 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 6033 CDaoRecordView::CDaoRecordView(unsigned int) 6034 CDaoRecordView::CDaoRecordView(wchar_t const *) 6035 CDaoRelationInfo::CDaoRelationInfo() 6036 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 6037 CDaoWorkspace::CDaoWorkspace() 6038 CDaoDatabase::~CDaoDatabase() 6039 CDaoException::~CDaoException() 6040 CDaoIndexInfo::~CDaoIndexInfo() 6041 CDaoQueryDef::~CDaoQueryDef() 6042 CDaoRecordset::~CDaoRecordset() 6043 CDaoRecordView::~CDaoRecordView() 6044 CDaoRelationInfo::~CDaoRelationInfo() 6045 CDaoTableDef::~CDaoTableDef() 6046 CDaoWorkspace::~CDaoWorkspace() 6047 void CDaoRecordset::AddNew() 6048 void AfxDaoCheck(long,char const *,char const *,int,int,int) 6049 _DAODBEngine * AfxDaoGetEngine() 6050 void AfxDaoInit() 6051 void AfxDaoTerm() 6052 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 6053 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 6054 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 6055 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6056 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 6057 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 6058 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 6059 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 6060 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6061 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 6062 void AfxThrowDaoException(int,long) 6063 void CDaoRecordset::AllocCache() 6064 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 6065 void CDaoRecordset::AllocDatabase() 6066 void AllocLongBinary(CLongBinary &,unsigned long) 6067 void CDaoQueryDef::Append() 6068 void CDaoTableDef::Append() 6069 void CDaoWorkspace::Append() 6070 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 6071 void CDaoWorkspace::BeginTrans() 6072 void CDaoRecordset::BindFields() 6073 void CDaoRecordset::BindParameters() 6074 void CDaoRecordset::BuildParameterList() 6075 void CDaoRecordset::BuildSelectList() 6076 void CDaoRecordset::BuildSQL() 6077 int CDaoRecordset::CanAppend()const 6078 int CDaoRecordset::CanBookmark() 6079 void CDaoRecordset::CancelUpdate() 6080 int CDaoRecordset::CanRestart() 6081 int CDaoRecordset::CanScroll()const 6082 int CDaoDatabase::CanTransact() 6083 int CDaoRecordset::CanTransact() 6084 int CDaoDatabase::CanUpdate() 6085 int CDaoQueryDef::CanUpdate() 6086 int CDaoRecordset::CanUpdate()const 6087 int CDaoTableDef::CanUpdate() 6088 CRuntimeconst CDaoDatabase::classCDaoDatabase 6089 CRuntimeconst CDaoException::classCDaoException 6090 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 6091 CRuntimeconst CDaoRecordset::classCDaoRecordset 6092 CRuntimeconst CDaoRecordView::classCDaoRecordView 6093 CRuntimeconst CDaoTableDef::classCDaoTableDef 6094 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 6095 CRuntimeconst CDatabase::classCDatabase 6096 CRuntimeconst CDBException::classCDBException 6097 CRuntimeconst CLongBinary::classCLongBinary 6098 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6099 CRuntimeconst CRecordset::classCRecordset 6100 CRuntimeconst CRecordView::classCRecordView 6101 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 6102 void CDaoRecordset::ClearFieldStatusFlags() 6103 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 6104 void CDaoDatabase::Close() 6105 void CDaoQueryDef::Close() 6106 void CDaoRecordset::Close() 6107 void CDaoTableDef::Close() 6108 void CDaoWorkspace::Close() 6109 void CDaoWorkspace::CommitTrans() 6110 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 6111 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 6112 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 6113 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 6114 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 6115 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 6116 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 6117 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 6118 void CDaoTableDef::CreateField(CDaoFieldInfo &) 6119 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 6120 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 6121 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 6122 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 6123 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6124 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6125 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6126 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 6127 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6128 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6129 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6130 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 6131 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 6132 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6133 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 6134 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 6135 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 6136 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 6137 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 6138 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 6139 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 6140 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6141 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 6142 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 6143 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 6144 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 6145 void CDaoRecordset::Delete() 6146 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 6147 void CDaoTableDef::DeleteField(int) 6148 void CDaoTableDef::DeleteField(wchar_t const *) 6149 void CDaoTableDef::DeleteIndex(int) 6150 void CDaoTableDef::DeleteIndex(wchar_t const *) 6151 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 6152 void CDaoDatabase::DeleteRelation(wchar_t const *) 6153 void CDaoDatabase::DeleteTableDef(wchar_t const *) 6154 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 6155 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 6156 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 6157 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 6158 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 6159 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 6160 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 6161 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 6162 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 6163 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 6164 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 6165 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 6166 void CDaoRecordset::Edit() 6167 void CDaoDatabase::Execute(wchar_t const *,int) 6168 void CDaoQueryDef::Execute(int) 6169 void CDaoRecordset::FillCache(long *,COleVariant *) 6170 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 6171 void CDaoException::FillErrorInfo() 6172 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 6173 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 6174 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 6175 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 6176 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 6177 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 6178 int CDaoRecordset::Find(long,wchar_t const *) 6179 int CDaoRecordset::FindFirst(wchar_t const *) 6180 int CDaoRecordset::FindLast(wchar_t const *) 6181 int CDaoRecordset::FindNext(wchar_t const *) 6182 int CDaoRecordset::FindPrev(wchar_t const *) 6183 void CDaoRecordset::Fixup() 6184 void CDaoRecordset::FreeCache() 6185 long CDaoRecordset::GetAbsolutePosition() 6186 long CDaoTableDef::GetAttributes() 6187 COleVariant CDaoRecordset::GetBookmark() 6188 long CDaoRecordset::GetCacheSize() 6189 COleVariant CDaoRecordset::GetCacheStart() 6190 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 6191 ATL::CStringT > > CDaoDatabase::GetConnect() 6192 ATL::CStringT > > CDaoQueryDef::GetConnect() 6193 ATL::CStringT > > CDaoTableDef::GetConnect() 6194 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 6195 void CDaoRecordset::GetDataAndFixupNulls() 6196 short CDaoWorkspace::GetDatabaseCount() 6197 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 6198 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 6199 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 6200 ATL::COleDateTime CDaoRecordset::GetDateCreated() 6201 ATL::COleDateTime CDaoTableDef::GetDateCreated() 6202 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 6203 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 6204 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 6205 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 6206 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 6207 short CDaoRecordset::GetEditMode() 6208 short CDaoException::GetErrorCount() 6209 void CDaoException::GetErrorInfo(int) 6210 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 6211 short CDaoQueryDef::GetFieldCount() 6212 short CDaoRecordset::GetFieldCount() 6213 short CDaoTableDef::GetFieldCount() 6214 int CDaoRecordset::GetFieldIndex(void *) 6215 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6216 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6217 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6218 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6219 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6220 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6221 unsigned long CDaoRecordset::GetFieldLength(int) 6222 COleVariant CDaoRecordset::GetFieldValue(int) 6223 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 6224 void CDaoRecordset::GetFieldValue(int,COleVariant &) 6225 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 6226 short CDaoRecordset::GetIndexCount() 6227 short CDaoTableDef::GetIndexCount() 6228 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6229 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 6230 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6231 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 6232 ATL::CStringT > > CDaoWorkspace::GetIniPath() 6233 int CDaoWorkspace::GetIsolateODBCTrans() 6234 COleVariant CDaoRecordset::GetLastModifiedBookmark() 6235 int CDaoRecordset::GetLockingMode() 6236 short CDaoWorkspace::GetLoginTimeout() 6237 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 6238 ATL::CStringT > > CDaoDatabase::GetName() 6239 ATL::CStringT > > CDaoQueryDef::GetName() 6240 ATL::CStringT > > CDaoRecordset::GetName() 6241 ATL::CStringT > > CDaoTableDef::GetName() 6242 ATL::CStringT > > CDaoWorkspace::GetName() 6243 short CDaoQueryDef::GetODBCTimeout() 6244 short CDaoQueryDef::GetParameterCount() 6245 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 6246 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 6247 COleVariant CDaoQueryDef::GetParamValue(int) 6248 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 6249 COleVariant CDaoRecordset::GetParamValue(int) 6250 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 6251 float CDaoRecordset::GetPercentPosition() 6252 short CDaoDatabase::GetQueryDefCount() 6253 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 6254 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 6255 short CDaoDatabase::GetQueryTimeout() 6256 long CDaoRecordset::GetRecordCount() 6257 long CDaoTableDef::GetRecordCount() 6258 long CDaoDatabase::GetRecordsAffected() 6259 long CDaoQueryDef::GetRecordsAffected() 6260 short CDaoDatabase::GetRelationCount() 6261 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 6262 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 6263 int CDaoQueryDef::GetReturnsRecords() 6264 CRuntime* CDaoDatabase::GetRuntimeClass()const 6265 CRuntime* CDaoException::GetRuntimeClass()const 6266 CRuntime* CDaoQueryDef::GetRuntimeClass()const 6267 CRuntime* CDaoRecordset::GetRuntimeClass()const 6268 CRuntime* CDaoRecordView::GetRuntimeClass()const 6269 CRuntime* CDaoTableDef::GetRuntimeClass()const 6270 CRuntime* CDaoWorkspace::GetRuntimeClass()const 6271 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 6272 ATL::CStringT > > CDaoQueryDef::GetSQL() 6273 ATL::CStringT > > CDaoRecordset::GetSQL()const 6274 short CDaoDatabase::GetTableDefCount() 6275 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 6276 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 6277 CRuntime* CDaoDatabase::GetThisClass() 6278 CRuntime* CDaoException::GetThisClass() 6279 CRuntime* CDaoQueryDef::GetThisClass() 6280 CRuntime* CDaoRecordset::GetThisClass() 6281 CRuntime* CDaoRecordView::GetThisClass() 6282 CRuntime* CDaoTableDef::GetThisClass() 6283 CRuntime* CDaoWorkspace::GetThisClass() 6284 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 6285 short CDaoQueryDef::GetType() 6286 short CDaoRecordset::GetType() 6287 ATL::CStringT > > CDaoWorkspace::GetUserNameW() 6288 ATL::CStringT > > CDaoRecordset::GetValidationRule() 6289 ATL::CStringT > > CDaoTableDef::GetValidationRule() 6290 ATL::CStringT > > CDaoRecordset::GetValidationText() 6291 ATL::CStringT > > CDaoTableDef::GetValidationText() 6292 ATL::CStringT > > CDaoDatabase::GetVersion() 6293 ATL::CStringT > > CDaoWorkspace::GetVersion() 6294 short CDaoWorkspace::GetWorkspaceCount() 6295 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 6296 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 6297 void CDaoWorkspace::Idle(int) 6298 void CDaoWorkspace::InitDatabasesCollection() 6299 void CDaoException::InitErrorsCollection() 6300 void CDaoQueryDef::InitFieldsCollection() 6301 void CDaoRecordset::InitFieldsCollection() 6302 void CDaoTableDef::InitFieldsCollection() 6303 void CDaoWorkspace::InitializeEngine() 6304 void CDaoRecordset::InitIndexesCollection() 6305 void CDaoTableDef::InitIndexesCollection() 6306 void CDaoQueryDef::InitParametersCollection() 6307 void CDaoDatabase::InitQueryDefsCollection() 6308 void CDaoDatabase::InitRelationsCollection() 6309 void CDaoDatabase::InitTableDefsCollection() 6310 void CDaoDatabase::InitWorkspace() 6311 void CDaoWorkspace::InitWorkspacesCollection() 6312 int CDaoRecordset::IsBOF()const 6313 int CDaoRecordset::IsDeleted()const 6314 int CDaoRecordset::IsEOF()const 6315 int CDaoRecordset::IsFieldDirty(void *) 6316 int CDaoRecordset::IsFieldNull(void *) 6317 int CDaoRecordset::IsFieldNullable(void *) 6318 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 6319 int CDaoRecordset::IsFieldStatusNull(unsigned int) 6320 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 6321 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 6322 int CDaoRecordset::IsMatch() 6323 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6324 int CDaoRecordView::IsOnFirstRecord() 6325 int CDaoRecordView::IsOnLastRecord() 6326 int CDaoFieldExchange::IsValidOperation() 6327 void CDaoRecordset::LoadFields() 6328 void CDaoRecordset::MarkForAddNew() 6329 void CDaoRecordset::MarkForEdit() 6330 AFX_MSGMAP const CDaoRecordView::messageMap 6331 AFX_MSGMAP const COleDBRecordView::messageMap 6332 AFX_MSGMAP const CRecordView::messageMap 6333 void CDaoRecordset::Move(long) 6334 void CDaoRecordset::MoveFirst() 6335 void CDaoRecordset::MoveLast() 6336 void CDaoRecordset::MoveNext() 6337 void CDaoRecordset::MovePrev() 6338 void CDaoRecordView::OnInitialUpdate() 6339 int CDaoRecordView::OnMove(unsigned int) 6340 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 6341 void CDaoQueryDef::Open(wchar_t const *) 6342 void CDaoRecordset::Open(int,wchar_t const *,int) 6343 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 6344 void CDaoRecordset::Open(CDaoTableDef *,int,int) 6345 void CDaoTableDef::Open(wchar_t const *) 6346 void CDaoWorkspace::Open(wchar_t const *) 6347 void CDaoTableDef::RefreshLink() 6348 void CDaoWorkspace::RepairDatabase(wchar_t const *) 6349 void CDaoRecordset::Requery() 6350 void CDaoWorkspace::Rollback() 6351 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 6352 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 6353 void CDaoRecordset::SetAbsolutePosition(long) 6354 void CDaoTableDef::SetAttributes(long) 6355 void CDaoRecordset::SetBookmark(COleVariant) 6356 void CDaoRecordset::SetCacheSize(long) 6357 void CDaoRecordset::SetCacheStart(COleVariant) 6358 void CDaoQueryDef::SetConnect(wchar_t const *) 6359 void CDaoTableDef::SetConnect(wchar_t const *) 6360 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 6361 void CDaoRecordset::SetCursorAttributes() 6362 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 6363 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 6364 void CDaoRecordset::SetDirtyFields() 6365 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6366 void CDaoRecordset::SetFieldDirty(void *,int) 6367 void CDaoRecordset::SetFieldNull(void *,int) 6368 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 6369 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 6370 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6371 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 6372 void CDaoRecordset::SetFieldValueNull(int) 6373 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 6374 void CDaoWorkspace::SetIniPath(wchar_t const *) 6375 void CDaoWorkspace::SetIsolateODBCTrans(int) 6376 void CDaoRecordset::SetLockingMode(int) 6377 void CDaoWorkspace::SetLoginTimeout(short) 6378 void CDaoQueryDef::SetName(wchar_t const *) 6379 void CDaoTableDef::SetName(wchar_t const *) 6380 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6381 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6382 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6383 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6384 void CDaoQueryDef::SetODBCTimeout(short) 6385 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6386 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 6387 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6388 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 6389 void CDaoQueryDef::SetParamValueNull(int) 6390 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 6391 void CDaoRecordset::SetParamValueNull(int) 6392 void CDaoRecordset::SetParamValueNull(wchar_t const *) 6393 void CDaoRecordset::SetPercentPosition(float) 6394 void CDaoDatabase::SetQueryTimeout(short) 6395 void CDaoQueryDef::SetReturnsRecords(int) 6396 void CDaoTableDef::SetSourceTableName(wchar_t const *) 6397 void CDaoQueryDef::SetSQL(wchar_t const *) 6398 void CDaoTableDef::SetValidationRule(wchar_t const *) 6399 void CDaoTableDef::SetValidationText(wchar_t const *) 6400 void CDaoRecordset::StoreFields() 6401 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 6402 void CDaoDatabase::ThrowDaoException(int) 6403 void CDaoQueryDef::ThrowDaoException(int) 6404 void CDaoRecordset::ThrowDaoException(int) 6405 void CDaoTableDef::ThrowDaoException(int) 6406 void CDaoWorkspace::ThrowDaoException(int) 6407 void ThrowGetRowsDaoException(long) 6408 void CDaoRecordset::Update() 6409 _AFX_DAO_STATE * AfxGetDaoState() 6410 _AFX_DAO_STATE::~_AFX_DAO_STATE() 6411 _AFX_DAO_STATE::_AFX_DAO_STATE() ================================================ FILE: Bin/i386/mfc_sym/mfc70ud.def ================================================ 256 CDumpContext afxDump 257 COleCurrency const & COleCurrency::operator/=(long) 258 void * operator new[](unsigned int) 259 void * operator new[](unsigned int,int,char const *,int) 260 void * operator new[](unsigned int,char const *,int) 261 void operator delete[](void *) 262 void operator delete[](void *,int,char const *,int) 263 void operator delete[](void *,char const *,int) 264 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 265 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 266 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 267 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 268 _AFX_OLE_STATE::_AFX_OLE_STATE() 269 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 270 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 271 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 272 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 273 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 274 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 275 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 276 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 277 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 278 CAnimateCtrl::CAnimateCtrl() 279 CArchive::CArchive(CArchive const &) 280 CArchive::CArchive(CFile *,unsigned int,int,void *) 281 CArchiveException::CArchiveException(int,wchar_t const *) 282 CArchivePropExchange::CArchivePropExchange(CArchive &) 283 CArchiveStream::CArchiveStream(CArchive *) 284 CAsyncMonikerFile::CAsyncMonikerFile() 285 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 286 CAsyncSocket::CAsyncSocket() 287 CBitmap::CBitmap() 288 CBitmapButton::CBitmapButton() 289 CBlobProperty::CBlobProperty(void *) 290 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 291 CBrush::CBrush(int,unsigned long) 292 CBrush::CBrush(unsigned long) 293 CBrush::CBrush(CBitmap *) 294 CBrush::CBrush() 295 CButton::CButton() 296 CByteArray::CByteArray() 297 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 298 CCachedDataPathProperty::CCachedDataPathProperty(wchar_t const *,COleControl *) 299 CCheckListBox::CCheckListBox() 300 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 301 CClientDC::CClientDC(CWnd *) 302 CCmdTarget::CCmdTarget() 303 CCmdUI::CCmdUI() 304 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 305 CComboBox::CComboBox() 306 CComboBoxEx::CComboBoxEx() 307 CCommandLineInfo::CCommandLineInfo() 308 CCommonDialog::CCommonDialog(CWnd *) 309 CConnectionPoint::CConnectionPoint() 310 CControlBar::CControlBar() 311 CControlBarInfo::CControlBarInfo() 312 COleControl::CControlDataSource::CControlDataSource(COleControl *) 313 CControlFrameWnd::CControlFrameWnd(COleControl *) 314 CCreateContext::CCreateContext() 315 CCriticalSection::CCriticalSection() 316 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 317 CDatabase::CDatabase() 318 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 319 CDataExchange::CDataExchange(CWnd *,int) 320 CDataPathProperty::CDataPathProperty(COleControl *) 321 CDataPathProperty::CDataPathProperty(wchar_t const *,COleControl *) 322 CDataSourceControl::CDataSourceControl(COleControlSite *) 323 CDateTimeCtrl::CDateTimeCtrl() 324 CDBException::CDBException(short) 325 CDBVariant::CDBVariant() 326 CDC::CDC() 327 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 328 CDHtmlControlSink::CDHtmlControlSink() 329 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 330 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 331 CDHtmlDialog::CDHtmlDialog() 332 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 333 CDialog::CDialog(unsigned int,CWnd *) 334 CDialog::CDialog(wchar_t const *,CWnd *) 335 CDialog::CDialog() 336 CDialogBar::CDialogBar() 337 CDialogTemplate::CDialogTemplate(void *) 338 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 339 CDocItem::CDocItem() 340 CDockBar::CDockBar(int) 341 CDockContext::CDockContext(CControlBar *) 342 CDockState::CDockState() 343 CDocManager::CDocManager() 344 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 345 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 346 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 347 CDocument::CDocument() 348 CDragListBox::CDragListBox() 349 CDumpContext::CDumpContext(CDumpContext const &) 350 CDumpContext::CDumpContext(CFile *) 351 CDWordArray::CDWordArray() 352 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 353 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 354 CEdit::CEdit() 355 CEditView::CEditView() 356 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 357 CEnumConnections::CEnumConnections(void const *,unsigned int) 358 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 359 CEnumFormatEtc::CEnumFormatEtc() 360 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 361 CException::CException(int) 362 CException::CException() 363 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 364 CFile::CFile(void *) 365 CFile::CFile(wchar_t const *,unsigned int) 366 CFile::CFile() 367 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long) 368 CFileException::CFileException(int,long,wchar_t const *) 369 CFileFind::CFileFind() 370 CFindReplaceDialog::CFindReplaceDialog() 371 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 372 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 373 CFont::CFont() 374 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 375 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 376 CFontHolder::CFontHolder(IPropertyNotifySink *) 377 CFormView::CFormView(unsigned int) 378 CFormView::CFormView(wchar_t const *) 379 CFrameWnd::CFrameWnd() 380 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 381 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 382 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 383 CGdiObject::CGdiObject() 384 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 385 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 386 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 387 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 388 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 389 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 390 CGopherLocator::CGopherLocator(CGopherLocator const &) 391 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 392 CHeaderCtrl::CHeaderCtrl() 393 CHotKeyCtrl::CHotKeyCtrl() 394 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 395 CHtmlEditCtrl::CHtmlEditCtrl() 396 CHtmlEditDoc::CHtmlEditDoc() 397 CHtmlEditView::CHtmlEditView() 398 CHtmlView::CHtmlView() 399 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 400 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 401 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 402 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 403 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 404 CImageList::CImageList() 405 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 406 CInternetException::CInternetException(unsigned long) 407 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 408 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 409 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 410 CIPAddressCtrl::CIPAddressCtrl() 411 CListBox::CListBox() 412 CListCtrl::CListCtrl() 413 CListView::CListView() 414 CLongBinary::CLongBinary() 415 CMapPtrToPtr::CMapPtrToPtr(int) 416 CMapPtrToWord::CMapPtrToWord(int) 417 CMapStringToOb::CMapStringToOb(int) 418 CMapStringToPtr::CMapStringToPtr(int) 419 CMapStringToString::CMapStringToString(int) 420 CMapWordToOb::CMapWordToOb(int) 421 CMapWordToPtr::CMapWordToPtr(int) 422 CMDIChildWnd::CMDIChildWnd() 423 CMDIFrameWnd::CMDIFrameWnd() 424 CMemFile::CMemFile(unsigned int) 425 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 426 CMemoryException::CMemoryException(int,unsigned int) 427 CMemoryException::CMemoryException() 428 CMemoryState::CMemoryState() 429 CMenu::CMenu() 430 CMetaFileDC::CMetaFileDC() 431 CMiniDockFrameWnd::CMiniDockFrameWnd() 432 CMiniFrameWnd::CMiniFrameWnd() 433 CMonikerFile::CMonikerFile() 434 CMonthCalCtrl::CMonthCalCtrl() 435 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 436 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 437 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 438 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 439 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 440 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 441 CNotSupportedException::CNotSupportedException(int,unsigned int) 442 CNotSupportedException::CNotSupportedException() 443 CObArray::CObArray() 444 CObject::CObject() 445 CObList::CObList(int) 446 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 447 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 448 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 449 COleClientItem::COleClientItem(COleDocument *) 450 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 451 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 452 COleControl::COleControl() 453 COleControlContainer::COleControlContainer(CWnd *) 454 COleControlLock::COleControlLock(_GUID const &) 455 COleControlSite::COleControlSite(COleControlContainer *) 456 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 457 COleCurrency::COleCurrency(tagVARIANT const &) 458 COleCurrency::COleCurrency(COleCurrency const &) 459 COleCurrency::COleCurrency(long,long) 460 COleCurrency::COleCurrency(union tagCY) 461 COleCurrency::COleCurrency() 462 COleDataObject::COleDataObject() 463 COleDataSource::COleDataSource() 464 COleDialog::COleDialog(CWnd *) 465 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 466 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 467 COleDispatchDriver::COleDispatchDriver() 468 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 469 COleDocIPFrameWnd::COleDocIPFrameWnd() 470 COleDocObjectItem::COleDocObjectItem(COleDocument *) 471 COleDocument::COleDocument() 472 COleDropSource::COleDropSource() 473 COleDropTarget::COleDropTarget() 474 COleException::COleException() 475 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 476 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 477 COleIPFrameWnd::COleIPFrameWnd() 478 COleLinkingDoc::COleLinkingDoc() 479 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 480 COleMessageFilter::COleMessageFilter() 481 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 482 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 483 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 484 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 485 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 486 COleResizeBar::COleResizeBar() 487 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 488 COleSafeArray::COleSafeArray(tagVARIANT const &) 489 COleSafeArray::COleSafeArray(COleSafeArray const &) 490 COleSafeArray::COleSafeArray(COleVariant const &) 491 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 492 COleSafeArray::COleSafeArray(tagVARIANT const *) 493 COleSafeArray::COleSafeArray() 494 COleServerDoc::COleServerDoc() 495 COleServerItem::COleServerItem(COleServerDoc *,int) 496 COleStreamFile::COleStreamFile(IStream *) 497 COleTemplateServer::COleTemplateServer() 498 COleUILinkInfo::COleUILinkInfo(COleDocument *) 499 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 500 COleVariant::COleVariant(ATL::CStringT > > &) 501 COleVariant::COleVariant(tagVARIANT const &) 502 COleVariant::COleVariant(COleVariant const &) 503 COleVariant::COleVariant(CByteArray const &) 504 COleVariant::COleVariant(CLongBinary const &) 505 COleVariant::COleVariant(COleCurrency const &) 506 COleVariant::COleVariant(ATL::COleDateTime const &) 507 COleVariant::COleVariant(unsigned char) 508 COleVariant::COleVariant(short,unsigned short) 509 COleVariant::COleVariant(long,unsigned short) 510 COleVariant::COleVariant(float) 511 COleVariant::COleVariant(double) 512 COleVariant::COleVariant(wchar_t const *) 513 COleVariant::COleVariant(wchar_t const *,unsigned short) 514 COleVariant::COleVariant(_ITEMIDLIST const *) 515 COleVariant::COleVariant(tagVARIANT const *) 516 COleVariant::COleVariant() 517 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 518 CPaintDC::CPaintDC(CWnd *) 519 CPalette::CPalette() 520 CPen::CPen(int,int,unsigned long) 521 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 522 CPen::CPen() 523 CPictureHolder::CPictureHolder() 524 CPreviewDC::CPreviewDC() 525 CPreviewView::CPreviewView() 526 CPrintDialog::CPrintDialog(tagPDW &) 527 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 528 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 529 CPrintInfo::CPrintInfo() 530 CPrintPreviewState::CPrintPreviewState() 531 CProgressCtrl::CProgressCtrl() 532 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 533 CProperty::CProperty(unsigned long,void * const,unsigned long) 534 CProperty::CProperty() 535 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 536 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 537 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 538 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 539 CPropertyPage::CPropertyPage() 540 CPropertySection::CPropertySection(_GUID) 541 CPropertySection::CPropertySection() 542 CPropertySet::CPropertySet(_GUID) 543 CPropertySet::CPropertySet() 544 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 545 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 546 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 547 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 548 CPropertySheet::CPropertySheet() 549 CPropExchange::CPropExchange() 550 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 551 CPtrArray::CPtrArray() 552 CPtrList::CPtrList(int) 553 CReBar::CReBar() 554 CReBarCtrl::CReBarCtrl() 555 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 556 CRecordset::CRecordset(CDatabase *) 557 CRecordView::CRecordView(unsigned int) 558 CRecordView::CRecordView(wchar_t const *) 559 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 560 CRectTracker::CRectTracker() 561 CReObject::CReObject(CRichEditCntrItem *) 562 CReObject::CReObject() 563 CResetPropExchange::CResetPropExchange() 564 CResourceException::CResourceException(int,unsigned int) 565 CResourceException::CResourceException() 566 CRgn::CRgn() 567 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 568 CRichEditCtrl::CRichEditCtrl() 569 CRichEditDoc::CRichEditDoc() 570 CRichEditView::CRichEditView() 571 CScrollBar::CScrollBar() 572 CScrollView::CScrollView() 573 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 574 CSharedFile::CSharedFile(unsigned int,unsigned int) 575 CSimpleException::CSimpleException(int) 576 CSimpleException::CSimpleException() 577 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 578 CSingleLock::CSingleLock(CSyncObject *,int) 579 CSliderCtrl::CSliderCtrl() 580 CSocket::CSocket() 581 CSocketFile::CSocketFile(CSocket *,int) 582 CSocketWnd::CSocketWnd() 583 CSpinButtonCtrl::CSpinButtonCtrl() 584 CSplitterWnd::CSplitterWnd() 585 CStatic::CStatic() 586 CStatusBar::CStatusBar() 587 CStatusBarCtrl::CStatusBarCtrl() 588 CStdioFile::CStdioFile(_iobuf *) 589 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 590 CStdioFile::CStdioFile() 591 CStringArray::CStringArray() 592 CStringList::CStringList(int) 593 CSyncObject::CSyncObject(wchar_t const *) 594 CTabCtrl::CTabCtrl() 595 CTestCmdUI::CTestCmdUI() 596 CThreadSlotData::CThreadSlotData() 597 CToolBar::CToolBar() 598 CToolBarCtrl::CToolBarCtrl() 599 CToolTipCtrl::CToolTipCtrl() 600 CTreeCtrl::CTreeCtrl() 601 CTreeView::CTreeView() 602 CUIntArray::CUIntArray() 603 CUserException::CUserException(int,unsigned int) 604 CUserException::CUserException() 605 CView::CView() 606 CWaitCursor::CWaitCursor() 607 CWinApp::CWinApp(wchar_t const *) 608 CWindowDC::CWindowDC(CWnd *) 609 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 610 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 611 CWinThread::CWinThread() 612 CWnd::CWnd(HWND__ *) 613 CWnd::CWnd() 614 CWordArray::CWordArray() 615 CPreviewView::PAGE_INFO::PAGE_INFO() 616 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 617 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 618 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 619 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 620 _AFX_OLE_STATE::~_AFX_OLE_STATE() 621 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 622 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 623 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 624 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 625 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 626 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 627 AFX_MODULE_STATE::~AFX_MODULE_STATE() 628 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 629 CAnimateCtrl::~CAnimateCtrl() 630 CArchive::~CArchive() 631 CArchiveException::~CArchiveException() 632 CAsyncMonikerFile::~CAsyncMonikerFile() 633 CAsyncSocket::~CAsyncSocket() 634 CBitmap::~CBitmap() 635 CBrush::~CBrush() 636 CButton::~CButton() 637 CByteArray::~CByteArray() 638 CClientDC::~CClientDC() 639 CCmdTarget::~CCmdTarget() 640 CComboBox::~CComboBox() 641 CComboBoxEx::~CComboBoxEx() 642 CCommandLineInfo::~CCommandLineInfo() 643 CConnectionPoint::~CConnectionPoint() 644 CControlBar::~CControlBar() 645 CCriticalSection::~CCriticalSection() 646 CCtrlView::~CCtrlView() 647 CDatabase::~CDatabase() 648 CDataSourceControl::~CDataSourceControl() 649 CDateTimeCtrl::~CDateTimeCtrl() 650 CDBException::~CDBException() 651 CDBVariant::~CDBVariant() 652 CDC::~CDC() 653 CDHtmlControlSink::~CDHtmlControlSink() 654 CDHtmlDialog::~CDHtmlDialog() 655 CDialog::~CDialog() 656 CDialogBar::~CDialogBar() 657 CDialogTemplate::~CDialogTemplate() 658 CDocItem::~CDocItem() 659 CDockBar::~CDockBar() 660 CDockContext::~CDockContext() 661 CDockState::~CDockState() 662 CDocManager::~CDocManager() 663 CDocObjectServer::~CDocObjectServer() 664 CDocObjectServerItem::~CDocObjectServerItem() 665 CDocTemplate::~CDocTemplate() 666 CDocument::~CDocument() 667 CDragListBox::~CDragListBox() 668 CDWordArray::~CDWordArray() 669 CDynLinkLibrary::~CDynLinkLibrary() 670 CEdit::~CEdit() 671 CEditView::~CEditView() 672 CEnumArray::~CEnumArray() 673 CEnumConnections::~CEnumConnections() 674 CEnumConnPoints::~CEnumConnPoints() 675 CEnumFormatEtc::~CEnumFormatEtc() 676 CEnumOleVerb::~CEnumOleVerb() 677 CEnumUnknown::~CEnumUnknown() 678 CEvent::~CEvent() 679 CException::~CException() 680 CFile::~CFile() 681 CFileDialog::~CFileDialog() 682 CFileException::~CFileException() 683 CFileFind::~CFileFind() 684 CFixedAlloc::~CFixedAlloc() 685 CFixedAllocNoSync::~CFixedAllocNoSync() 686 CFont::~CFont() 687 CFontHolder::~CFontHolder() 688 CFrameWnd::~CFrameWnd() 689 CFtpConnection::~CFtpConnection() 690 CFtpFileFind::~CFtpFileFind() 691 CGdiObject::~CGdiObject() 692 CGopherConnection::~CGopherConnection() 693 CGopherFile::~CGopherFile() 694 CGopherFileFind::~CGopherFileFind() 695 CGopherLocator::~CGopherLocator() 696 CHeaderCtrl::~CHeaderCtrl() 697 CHotKeyCtrl::~CHotKeyCtrl() 698 CHtmlControlSite::~CHtmlControlSite() 699 CHtmlEditCtrl::~CHtmlEditCtrl() 700 CHtmlEditDoc::~CHtmlEditDoc() 701 CHtmlEditView::~CHtmlEditView() 702 CHtmlView::~CHtmlView() 703 CHttpConnection::~CHttpConnection() 704 CHttpFile::~CHttpFile() 705 CImageList::~CImageList() 706 CInternetConnection::~CInternetConnection() 707 CInternetException::~CInternetException() 708 CInternetFile::~CInternetFile() 709 CInternetSession::~CInternetSession() 710 CIPAddressCtrl::~CIPAddressCtrl() 711 CListBox::~CListBox() 712 CListCtrl::~CListCtrl() 713 CLongBinary::~CLongBinary() 714 CMapPtrToPtr::~CMapPtrToPtr() 715 CMapPtrToWord::~CMapPtrToWord() 716 CMapStringToOb::~CMapStringToOb() 717 CMapStringToPtr::~CMapStringToPtr() 718 CMapStringToString::~CMapStringToString() 719 CMapWordToOb::~CMapWordToOb() 720 CMapWordToPtr::~CMapWordToPtr() 721 CMemFile::~CMemFile() 722 CMemoryException::~CMemoryException() 723 CMenu::~CMenu() 724 CMetaFileDC::~CMetaFileDC() 725 CMiniFrameWnd::~CMiniFrameWnd() 726 CMonikerFile::~CMonikerFile() 727 CMonthCalCtrl::~CMonthCalCtrl() 728 CMultiDocTemplate::~CMultiDocTemplate() 729 CMultiLock::~CMultiLock() 730 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 731 CMutex::~CMutex() 732 CNotSupportedException::~CNotSupportedException() 733 CObArray::~CObArray() 734 CObject::~CObject() 735 CObList::~CObList() 736 COleBusyDialog::~COleBusyDialog() 737 COleChangeIconDialog::~COleChangeIconDialog() 738 COleChangeSourceDialog::~COleChangeSourceDialog() 739 COleClientItem::~COleClientItem() 740 COleCntrFrameWnd::~COleCntrFrameWnd() 741 COleControl::~COleControl() 742 COleControlContainer::~COleControlContainer() 743 COleControlLock::~COleControlLock() 744 COleControlSite::~COleControlSite() 745 COleControlSiteOrWnd::~COleControlSiteOrWnd() 746 COleConvertDialog::~COleConvertDialog() 747 COleDataObject::~COleDataObject() 748 COleDataSource::~COleDataSource() 749 COleDispatchDriver::~COleDispatchDriver() 750 COleDispatchException::~COleDispatchException() 751 COleDocIPFrameWnd::~COleDocIPFrameWnd() 752 COleDocObjectItem::~COleDocObjectItem() 753 COleDocument::~COleDocument() 754 COleDropTarget::~COleDropTarget() 755 COleException::~COleException() 756 COleFrameHook::~COleFrameHook() 757 COleInsertDialog::~COleInsertDialog() 758 COleIPFrameWnd::~COleIPFrameWnd() 759 COleLinkingDoc::~COleLinkingDoc() 760 COleLinksDialog::~COleLinksDialog() 761 COleMessageFilter::~COleMessageFilter() 762 COleObjectFactory::~COleObjectFactory() 763 COlePasteSpecialDialog::~COlePasteSpecialDialog() 764 COlePropertyPage::~COlePropertyPage() 765 COleResizeBar::~COleResizeBar() 766 COleSafeArray::~COleSafeArray() 767 COleServerDoc::~COleServerDoc() 768 COleServerItem::~COleServerItem() 769 COleStreamFile::~COleStreamFile() 770 COleUpdateDialog::~COleUpdateDialog() 771 COleVariant::~COleVariant() 772 CPaintDC::~CPaintDC() 773 CPalette::~CPalette() 774 CPen::~CPen() 775 CPictureHolder::~CPictureHolder() 776 CPreviewDC::~CPreviewDC() 777 CPreviewView::~CPreviewView() 778 CPrintInfo::~CPrintInfo() 779 CProcessLocalObject::~CProcessLocalObject() 780 CProgressCtrl::~CProgressCtrl() 781 CPropbagPropExchange::~CPropbagPropExchange() 782 CProperty::~CProperty() 783 CPropertyPage::~CPropertyPage() 784 CPropertySection::~CPropertySection() 785 CPropertySet::~CPropertySet() 786 CPropertySheet::~CPropertySheet() 787 CPtrArray::~CPtrArray() 788 CPtrList::~CPtrList() 789 CRecentFileList::~CRecentFileList() 790 CRecordset::~CRecordset() 791 CRecordView::~CRecordView() 792 CRectTracker::~CRectTracker() 793 CReObject::~CReObject() 794 CResourceException::~CResourceException() 795 CRgn::~CRgn() 796 CRichEditCntrItem::~CRichEditCntrItem() 797 CRichEditCtrl::~CRichEditCtrl() 798 CScrollBar::~CScrollBar() 799 CScrollView::~CScrollView() 800 CSemaphore::~CSemaphore() 801 CSharedFile::~CSharedFile() 802 CSimpleException::~CSimpleException() 803 CSingleDocTemplate::~CSingleDocTemplate() 804 CSingleLock::~CSingleLock() 805 CSliderCtrl::~CSliderCtrl() 806 CSocket::~CSocket() 807 CSocketFile::~CSocketFile() 808 CSpinButtonCtrl::~CSpinButtonCtrl() 809 CSplitterWnd::~CSplitterWnd() 810 CStatic::~CStatic() 811 CStatusBar::~CStatusBar() 812 CStatusBarCtrl::~CStatusBarCtrl() 813 CStdioFile::~CStdioFile() 814 CStringArray::~CStringArray() 815 CStringList::~CStringList() 816 CSyncObject::~CSyncObject() 817 CTabCtrl::~CTabCtrl() 818 CThreadLocalObject::~CThreadLocalObject() 819 CThreadSlotData::~CThreadSlotData() 820 CToolBar::~CToolBar() 821 CToolBarCtrl::~CToolBarCtrl() 822 CToolTipCtrl::~CToolTipCtrl() 823 CTreeCtrl::~CTreeCtrl() 824 CUIntArray::~CUIntArray() 825 CUserException::~CUserException() 826 CView::~CView() 827 CWaitCursor::~CWaitCursor() 828 CWinApp::~CWinApp() 829 CWindowDC::~CWindowDC() 830 CWinThread::~CWinThread() 831 CWnd::~CWnd() 832 CWordArray::~CWordArray() 833 void * operator new(unsigned int) 834 void * operator new(unsigned int,int,char const *,int) 835 void * operator new(unsigned int,char const *,int) 836 void * CNoTrackObject::operator new(unsigned int) 837 void * CNoTrackObject::operator new(unsigned int,char const *,int) 838 void * CObject::operator new(unsigned int) 839 void * CObject::operator new(unsigned int,void *) 840 void * CObject::operator new(unsigned int,char const *,int) 841 void operator delete(void *) 842 void operator delete(void *,int,char const *,int) 843 void operator delete(void *,char const *,int) 844 void CException::operator delete(void *) 845 void CException::operator delete(void *,char const *,int) 846 void CNoTrackObject::operator delete(void *) 847 void CNoTrackObject::operator delete(void *,char const *,int) 848 void CObject::operator delete(void *) 849 void CObject::operator delete(void *,void *) 850 void CObject::operator delete(void *,char const *,int) 851 void CArchive::operator=(CArchive const &) 852 void CDumpContext::operator=(CDumpContext const &) 853 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 854 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 855 COleCurrency const & COleCurrency::operator=(union tagCY) 856 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 857 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 858 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 859 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 860 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 861 COleVariant const & COleVariant::operator=(tagVARIANT const &) 862 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 863 COleVariant const & COleVariant::operator=(COleVariant const &) 864 COleVariant const & COleVariant::operator=(CByteArray const &) 865 COleVariant const & COleVariant::operator=(CLongBinary const &) 866 COleVariant const & COleVariant::operator=(COleCurrency const &) 867 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 868 COleVariant const & COleVariant::operator=(unsigned char) 869 COleVariant const & COleVariant::operator=(short) 870 COleVariant const & COleVariant::operator=(long) 871 COleVariant const & COleVariant::operator=(float) 872 COleVariant const & COleVariant::operator=(double) 873 COleVariant const & COleVariant::operator=(tagVARIANT const *) 874 COleVariant const & COleVariant::operator=(wchar_t const * const) 875 CArchive & operator>>(CArchive &,CByteArray * &) 876 CArchive & operator>>(CArchive &,CDocItem * &) 877 CArchive & operator>>(CArchive &,CDockState * &) 878 CArchive & operator>>(CArchive &,CDWordArray * &) 879 CArchive & operator>>(CArchive &,CMapStringToOb * &) 880 CArchive & operator>>(CArchive &,CMapStringToString * &) 881 CArchive & operator>>(CArchive &,CMapWordToOb * &) 882 CArchive & operator>>(CArchive &,CObArray * &) 883 CArchive & operator>>(CArchive &,CObject * &) 884 CArchive & operator>>(CArchive &,CObList * &) 885 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 886 CArchive & operator>>(CArchive &,CStringArray * &) 887 CArchive & operator>>(CArchive &,CStringList * &) 888 CArchive & operator>>(CArchive &,CWordArray * &) 889 CArchive & operator>>(CArchive &,CObject const * &) 890 CArchive & operator>>(CArchive &,tagPOINT &) 891 CArchive & operator>>(CArchive &,tagRECT &) 892 CArchive & operator>>(CArchive &,tagSIZE &) 893 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 894 CArchive & operator>>(CArchive &,COleCurrency &) 895 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 896 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 897 CArchive & operator>>(CArchive &,COleVariant &) 898 CArchive & operator>>(CArchive &,ATL::CTime &) 899 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 900 CArchive & CArchive::operator>>(__int64 &) 901 CArchive & CArchive::operator>>(unsigned __int64 &) 902 CArchive & CArchive::operator>>(bool &) 903 CArchive & CArchive::operator>>(wchar_t &) 904 CArchive & CArchive::operator>>(char &) 905 CArchive & CArchive::operator>>(unsigned char &) 906 CArchive & CArchive::operator>>(short &) 907 CArchive & CArchive::operator>>(unsigned short &) 908 CArchive & CArchive::operator>>(int &) 909 CArchive & CArchive::operator>>(unsigned int &) 910 CArchive & CArchive::operator>>(long &) 911 CArchive & CArchive::operator>>(unsigned long &) 912 CArchive & CArchive::operator>>(float &) 913 CArchive & CArchive::operator>>(double &) 914 CArchive & operator<<(CArchive &,tagRECT const &) 915 CArchive & operator<<(CArchive &,CObject const *) 916 CArchive & operator<<(CArchive &,tagPOINT) 917 CArchive & operator<<(CArchive &,tagSIZE) 918 CArchive & operator<<(CArchive &,ATL::CComBSTR) 919 CArchive & operator<<(CArchive &,COleCurrency) 920 CArchive & operator<<(CArchive &,ATL::COleDateTime) 921 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 922 CArchive & operator<<(CArchive &,COleVariant) 923 CArchive & operator<<(CArchive &,ATL::CTime) 924 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 925 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 926 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 927 CDumpContext & operator<<(CDumpContext &,tagPOINT) 928 CDumpContext & operator<<(CDumpContext &,tagSIZE) 929 CDumpContext & operator<<(CDumpContext &,COleCurrency) 930 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 931 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 932 CDumpContext & operator<<(CDumpContext &,COleVariant) 933 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 934 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 935 CArchive & CArchive::operator<<(__int64) 936 CArchive & CArchive::operator<<(unsigned __int64) 937 CArchive & CArchive::operator<<(bool) 938 CArchive & CArchive::operator<<(wchar_t) 939 CArchive & CArchive::operator<<(char) 940 CArchive & CArchive::operator<<(unsigned char) 941 CArchive & CArchive::operator<<(short) 942 CArchive & CArchive::operator<<(unsigned short) 943 CArchive & CArchive::operator<<(int) 944 CArchive & CArchive::operator<<(unsigned int) 945 CArchive & CArchive::operator<<(long) 946 CArchive & CArchive::operator<<(unsigned long) 947 CArchive & CArchive::operator<<(float) 948 CArchive & CArchive::operator<<(double) 949 CDumpContext & CDumpContext::operator<<(__int64) 950 CDumpContext & CDumpContext::operator<<(unsigned __int64) 951 CDumpContext & CDumpContext::operator<<(CObject const &) 952 CDumpContext & CDumpContext::operator<<(unsigned char) 953 CDumpContext & CDumpContext::operator<<(unsigned short) 954 CDumpContext & CDumpContext::operator<<(int) 955 CDumpContext & CDumpContext::operator<<(unsigned int) 956 CDumpContext & CDumpContext::operator<<(long) 957 CDumpContext & CDumpContext::operator<<(unsigned long) 958 CDumpContext & CDumpContext::operator<<(float) 959 CDumpContext & CDumpContext::operator<<(double) 960 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 961 CDumpContext & CDumpContext::operator<<(HDC__ *) 962 CDumpContext & CDumpContext::operator<<(HFONT__ *) 963 CDumpContext & CDumpContext::operator<<(HMENU__ *) 964 CDumpContext & CDumpContext::operator<<(HWND__ *) 965 CDumpContext & CDumpContext::operator<<(wchar_t const *) 966 CDumpContext & CDumpContext::operator<<(char const *) 967 CDumpContext & CDumpContext::operator<<(CObject const *) 968 CDumpContext & CDumpContext::operator<<(void const *) 969 int CGdiObject::operator==(CGdiObject const &)const 970 int CMenu::operator==(CMenu const &)const 971 int COleCurrency::operator==(COleCurrency const &)const 972 int COleSafeArray::operator==(tagSAFEARRAY const &)const 973 int COleSafeArray::operator==(tagVARIANT const &)const 974 int COleSafeArray::operator==(COleSafeArray const &)const 975 int COleSafeArray::operator==(COleVariant const &)const 976 int COleSafeArray::operator==(tagSAFEARRAY const *)const 977 int COleSafeArray::operator==(tagVARIANT const *)const 978 int COleVariant::operator==(tagVARIANT const &)const 979 int COleVariant::operator==(tagVARIANT const *)const 980 int CWnd::operator==(CWnd const &)const 981 int CGdiObject::operator!=(CGdiObject const &)const 982 int CMenu::operator!=(CMenu const &)const 983 int COleCurrency::operator!=(COleCurrency const &)const 984 int CWnd::operator!=(CWnd const &)const 985 unsigned char & CByteArray::operator[](int) 986 unsigned char CByteArray::operator[](int)const 987 unsigned long & CDWordArray::operator[](int) 988 unsigned long CDWordArray::operator[](int)const 989 void * & CMapPtrToPtr::operator[](void *) 990 unsigned short & CMapPtrToWord::operator[](void *) 991 CObject * & CMapStringToOb::operator[](wchar_t const *) 992 void * & CMapStringToPtr::operator[](wchar_t const *) 993 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 994 CObject * & CMapWordToOb::operator[](unsigned short) 995 void * & CMapWordToPtr::operator[](unsigned short) 996 CObject * & CObArray::operator[](int) 997 CObject * CObArray::operator[](int)const 998 void * & CPtrArray::operator[](int) 999 void * CPtrArray::operator[](int)const 1000 ATL::CStringT > > & CStringArray::operator[](int) 1001 ATL::CStringT > > const & CStringArray::operator[](int)const 1002 unsigned int & CUIntArray::operator[](int) 1003 unsigned int CUIntArray::operator[](int)const 1004 unsigned short & CWordArray::operator[](int) 1005 unsigned short CWordArray::operator[](int)const 1006 CAsyncSocket::operator unsigned int()const 1007 CBitmap::operator HBITMAP__ *()const 1008 CBrush::operator HBRUSH__ *()const 1009 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 1010 CDC::operator HDC__ *()const 1011 CFile::operator void *()const 1012 CFont::operator HFONT__ *()const 1013 CGdiObject::operator void *()const 1014 CGopherLocator::operator wchar_t const *()const 1015 CImageList::operator _IMAGELIST *()const 1016 CInternetConnection::operator void *()const 1017 CInternetFile::operator void *()const 1018 CInternetSession::operator void *()const 1019 CMenu::operator HMENU__ *()const 1020 COleCurrency::operator union tagCY()const 1021 COleDispatchDriver::operator IDispatch *() 1022 COleSafeArray::operator tagVARIANT *() 1023 COleSafeArray::operator tagVARIANT const *()const 1024 COleVariant::operator tagVARIANT *() 1025 COleVariant::operator tagVARIANT const *()const 1026 CPalette::operator HPALETTE__ *()const 1027 CPen::operator HPEN__ *()const 1028 CRgn::operator HRGN__ *()const 1029 CSyncObject::operator void *()const 1030 CWinThread::operator void *()const 1031 CWnd::operator HWND__ *()const 1032 COleCurrency COleCurrency::operator*(long)const 1033 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1034 COleCurrency COleCurrency::operator-()const 1035 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1036 COleCurrency COleCurrency::operator/(long)const 1037 int COleCurrency::operator<(COleCurrency const &)const 1038 int COleCurrency::operator<=(COleCurrency const &)const 1039 int COleCurrency::operator>(COleCurrency const &)const 1040 int COleCurrency::operator>=(COleCurrency const &)const 1041 COleCurrency const & COleCurrency::operator*=(long) 1042 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1043 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1044 int _AfxAbortProc(HDC__ *,int) 1045 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1046 int _AfxDeleteRegKey(wchar_t const *) 1047 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1048 int _AfxSocketInit(WSAData *) 1049 void CArchive::Abort() 1050 void CFile::Abort() 1051 void CInternetFile::Abort() 1052 void CMemFile::Abort() 1053 void CMirrorFile::Abort() 1054 void COleStreamFile::Abort() 1055 void CSocketFile::Abort() 1056 void CStdioFile::Abort() 1057 int CDC::AbortDoc() 1058 int CDC::AbortPath() 1059 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1060 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1061 long CWnd::accDoDefaultAction(tagVARIANT) 1062 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1063 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1064 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1065 void COleSafeArray::AccessData(void * *) 1066 long CWnd::accHitTest(long,long,tagVARIANT *) 1067 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1068 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1069 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1070 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1071 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1072 long CWnd::accSelect(long,tagVARIANT) 1073 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1074 void COleClientItem::Activate(long,CView *,tagMSG *) 1075 void CToolTipCtrl::Activate(int) 1076 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1077 void COleDocObjectItem::ActivateAndShow() 1078 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1079 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1080 void CDocObjectServer::ActivateDocObject() 1081 void COleServerDoc::ActivateDocObject() 1082 void CFrameWnd::ActivateFrame(int) 1083 void CMDIChildWnd::ActivateFrame(int) 1084 int COleServerDoc::ActivateInPlace() 1085 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1086 void CSplitterWnd::ActivateNext(int) 1087 void CWnd::ActivateTopParent() 1088 int CByteArray::Add(unsigned char) 1089 int CDWordArray::Add(unsigned long) 1090 int CImageList::Add(HICON__ *) 1091 int CImageList::Add(CBitmap *,CBitmap *) 1092 int CImageList::Add(CBitmap *,unsigned long) 1093 int CObArray::Add(CObject *) 1094 int CPtrArray::Add(void *) 1095 void CRecentFileList::Add(wchar_t const *) 1096 int CStringArray::Add(ATL::CStringT > > const &) 1097 int CStringArray::Add(wchar_t const *) 1098 int CUIntArray::Add(unsigned int) 1099 int CWordArray::Add(unsigned short) 1100 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 1101 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 1102 int CToolBarCtrl::AddBitmap(int,unsigned int) 1103 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1104 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1105 void COleClientItem::AddCachedData(COleDataSource *) 1106 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1107 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1108 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1109 void CFrameWnd::AddControlBar(CControlBar *) 1110 void CDocManager::AddDocTemplate(CDocTemplate *) 1111 void CWinApp::AddDocTemplate(CDocTemplate *) 1112 void CDocTemplate::AddDocument(CDocument *) 1113 void CMultiDocTemplate::AddDocument(CDocument *) 1114 void CSingleDocTemplate::AddDocument(CDocument *) 1115 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1116 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 1117 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1118 void COleControl::AddFrameLevelUI() 1119 void CFrameWnd::AddFrameWnd() 1120 __POSITION * CObList::AddHead(CObject *) 1121 void CObList::AddHead(CObList *) 1122 __POSITION * CPtrList::AddHead(void *) 1123 void CPtrList::AddHead(CPtrList *) 1124 void CSimpleList::AddHead(void *) 1125 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1126 __POSITION * CStringList::AddHead(wchar_t const *) 1127 void CStringList::AddHead(CStringList *) 1128 void COleDocument::AddItem(CDocItem *) 1129 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1130 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1131 void CRecordset::AddNew() 1132 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1133 void CPropertySheet::AddPage(CPropertyPage *) 1134 void CPropertySection::AddProperty(CProperty *) 1135 void CPropertySet::AddProperty(_GUID,CProperty *) 1136 unsigned long CArchiveStream::AddRef() 1137 unsigned long CBlobProperty::AddRef() 1138 unsigned long CBrowserControlSite::AddRef() 1139 unsigned long CDHtmlControlSink::AddRef() 1140 unsigned long CDHtmlElementEventSink::AddRef() 1141 unsigned long CDHtmlEventSink::AddRef() 1142 unsigned long CInnerUnknown::AddRef() 1143 unsigned long COleConnPtContainer::AddRef() 1144 unsigned long COleDispatchImpl::AddRef() 1145 unsigned long COleUILinkInfo::AddRef() 1146 unsigned long CPrintDialogEx::AddRef() 1147 unsigned long CWnd::XAccessible::AddRef() 1148 unsigned long CWnd::XAccessibleServer::AddRef() 1149 unsigned long COleClientItem::XAdviseSink::AddRef() 1150 unsigned long COleControlSite::XAmbientProps::AddRef() 1151 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1152 unsigned long COleObjectFactory::XClassFactory::AddRef() 1153 unsigned long CConnectionPoint::XConnPt::AddRef() 1154 unsigned long COleControl::XDataObject::AddRef() 1155 unsigned long COleDataSource::XDataObject::AddRef() 1156 unsigned long COleServerDoc::XDataObject::AddRef() 1157 unsigned long COleServerItem::XDataObject::AddRef() 1158 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef() 1159 unsigned long COleDropSource::XDropSource::AddRef() 1160 unsigned long COleDropTarget::XDropTarget::AddRef() 1161 unsigned long CEnumArray::XEnumVOID::AddRef() 1162 unsigned long COleControlSite::XEventSink::AddRef() 1163 unsigned long COleControl::XFontNotification::AddRef() 1164 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1165 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1166 unsigned long COleControl::XOleCache::AddRef() 1167 unsigned long COleClientItem::XOleClientSite::AddRef() 1168 unsigned long COleControlSite::XOleClientSite::AddRef() 1169 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1170 unsigned long COleFrameHook::XOleCommandTarget::AddRef() 1171 unsigned long COleControlContainer::XOleContainer::AddRef() 1172 unsigned long COleControl::XOleControl::AddRef() 1173 unsigned long COleControlSite::XOleControlSite::AddRef() 1174 unsigned long CDocObjectServer::XOleDocument::AddRef() 1175 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef() 1176 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1177 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1178 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1179 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1180 unsigned long COleControl::XOleInPlaceObject::AddRef() 1181 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1182 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1183 unsigned long COleClientItem::XOleIPSite::AddRef() 1184 unsigned long COleControlSite::XOleIPSite::AddRef() 1185 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1186 unsigned long CDocObjectServer::XOleObject::AddRef() 1187 unsigned long COleControl::XOleObject::AddRef() 1188 unsigned long COleServerDoc::XOleObject::AddRef() 1189 unsigned long COleServerItem::XOleObject::AddRef() 1190 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1191 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1192 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1193 unsigned long COleControl::XPersistMemory::AddRef() 1194 unsigned long COleControl::XPersistPropertyBag::AddRef() 1195 unsigned long COleControl::XPersistStorage::AddRef() 1196 unsigned long COleServerDoc::XPersistStorage::AddRef() 1197 unsigned long COleControl::XPersistStreamInit::AddRef() 1198 unsigned long COleControl::XPointerInactive::AddRef() 1199 unsigned long CDocObjectServer::XPrint::AddRef() 1200 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1201 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1202 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1203 unsigned long COleControl::XProvideClassInfo::AddRef() 1204 unsigned long COleControl::XQuickActivate::AddRef() 1205 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1206 unsigned long COleControlSite::XRowsetNotify::AddRef() 1207 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1208 unsigned long COleControl::XViewObject::AddRef() 1209 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1210 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1211 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 1212 CPropertySection * CPropertySet::AddSection(_GUID) 1213 void CPropertySet::AddSection(CPropertySection *) 1214 void COlePasteSpecialDialog::AddStandardFormats(int) 1215 int CComboBox::AddString(wchar_t const *) 1216 int CComboBoxEx::AddString(wchar_t const *) 1217 int CListBox::AddString(wchar_t const *) 1218 int CToolBarCtrl::AddString(unsigned int) 1219 int CToolBarCtrl::AddStrings(wchar_t const *) 1220 __POSITION * CObList::AddTail(CObject *) 1221 void CObList::AddTail(CObList *) 1222 __POSITION * CPtrList::AddTail(void *) 1223 void CPtrList::AddTail(CPtrList *) 1224 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1225 __POSITION * CStringList::AddTail(wchar_t const *) 1226 void CStringList::AddTail(CStringList *) 1227 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1228 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1229 void CWinApp::AddToRecentFileList(wchar_t const *) 1230 void CDocument::AddView(CView *) 1231 void CMetaFileDC::AdjustCP(int) 1232 void CRichEditView::AdjustDialogPosition(CDialog *) 1233 void CRectTracker::AdjustRect(int,tagRECT *) 1234 void CTabCtrl::AdjustRect(int,tagRECT *) 1235 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1236 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1237 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1238 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1239 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1240 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1241 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1242 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1243 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1244 void AfxAbort() 1245 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1250 int AfxAssertFailedLine(char const *,int) 1251 void AfxAssertValidObject(CObject const *,char const *,int) 1252 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1253 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1254 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1255 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1256 void AfxCancelModes(HWND__ *) 1257 void AfxCheckError(long) 1258 int AfxCheckMemory() 1259 void AfxClassInit(CRuntime*) 1260 int AfxComparePath(wchar_t const *,wchar_t const *) 1261 int AfxCompareValueByRef(void *,void *,int) 1262 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1263 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1264 void AfxCopyValueByRef(void *,void *,long *,int) 1265 void AfxCoreInitModule() 1266 HDC__ * AfxCreateDC(void *,void *) 1267 int AfxCriticalInit() 1268 int AfxCriticalNewHandler(unsigned int) 1269 void AfxCriticalTerm() 1270 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1271 AUX_DATA afxData 1272 void AfxDeleteObject(void * *) 1273 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1274 int AfxDiagnosticInit() 1275 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1276 long AfxDllCanUnloadNow() 1277 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1278 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1279 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1280 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1281 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1282 void AfxDump(CObject const *) 1283 int AfxDumpMemoryLeaks() 1284 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1285 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1286 void AfxEditviewTerm() 1287 void AfxEnableControlContainer(COccManager *) 1288 int AfxEnableMemoryTracking(int) 1289 int AfxEndDeferRegisterClass(long) 1290 void AfxEndThread(unsigned int,int) 1291 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1292 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1293 void AfxFailMaxChars(CDataExchange *,int) 1294 void AfxFailRadio(CDataExchange *) 1295 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1296 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1297 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1298 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1299 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1300 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1301 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1302 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1303 int AfxFreeLibrary(HINSTANCE__ *) 1304 void AfxFreeMemoryDebug(void *,int) 1305 int AfxFullPath(wchar_t *,wchar_t const *) 1306 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1307 CWinApp * AfxGetApp() 1308 AFX_MODULE_STATE * AfxGetAppModuleState() 1309 wchar_t const * AfxGetAppName() 1310 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1311 tagMSG * AfxGetCurrentMessage() 1312 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1313 unsigned long AfxGetDllVersion() 1314 wchar_t const * AfxGetFacilityString(long) 1315 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1316 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1317 wchar_t const * AfxGetFullScodeString(long) 1318 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1319 void * AfxGetHENV() 1320 wchar_t const * AfxGetIIDString(_GUID const &) 1321 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1322 HINSTANCE__ * AfxGetInstanceHandle() 1323 unsigned long AfxGetInternetHandleType(void *) 1324 CWnd * AfxGetMainWnd() 1325 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1326 AFX_MODULE_STATE * AfxGetModuleState() 1327 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1328 int (__cdecl*AfxGetNewHandler())(unsigned int) 1329 HWND__ * AfxGetParentOwner(HWND__ *) 1330 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1331 HINSTANCE__ * AfxGetResourceHandle() 1332 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1333 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1334 wchar_t const * AfxGetScodeRangeString(long) 1335 wchar_t const * AfxGetScodeString(long) 1336 wchar_t const * AfxGetSeverityString(long) 1337 ATL::IAtlStringMgr * AfxGetStringManager() 1338 CWinThread * AfxGetThread() 1339 _AFX_THREAD_STATE * AfxGetThreadState() 1340 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1341 void AfxGlobalFree(void *) 1342 int AfxHelpEnabled() 1343 void AfxHookWindowCreate(CWnd *) 1344 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1345 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1346 void AfxInitLocalData(HINSTANCE__ *) 1347 int AfxInitRichEdit() 1348 void AfxInitThread() 1349 int AfxInternalIsIdleMessage(tagMSG *) 1350 int AfxInternalPreTranslateMessage(tagMSG *) 1351 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1352 int AfxInternalPumpMessage() 1353 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1354 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1355 int AfxIsDescendant(HWND__ *,HWND__ *) 1356 int AfxIsIdleMessage(tagMSG *) 1357 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1358 int AfxIsValidAddress(void const *,unsigned int,int) 1359 int AfxIsValidString(wchar_t const *,int) 1360 int AfxIsValidString(char const *,int) 1361 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1362 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1363 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1364 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1365 int AfxLoadString(unsigned int,char *,unsigned int) 1366 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1367 void AfxLockGlobals(int) 1368 void AfxLockTempMaps() 1369 CHandleMap * afxMapHDC(int) 1370 CHandleMap * afxMapHGDIOBJ(int) 1371 CHandleMap * afxMapHIMAGELIST(int) 1372 CHandleMap * afxMapHMENU(int) 1373 CHandleMap * afxMapHWND(int) 1374 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1375 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1376 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1377 int AfxNewHandler(unsigned int) 1378 int AfxOleCanExitApp() 1379 COleMessageFilter * AfxOleGetMessageFilter() 1380 int AfxOleGetUserCtrl() 1381 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1382 int AfxOleInit() 1383 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1384 void AfxOleLockApp() 1385 int AfxOleLockControl(_GUID const &) 1386 int AfxOleLockControl(wchar_t const *) 1387 void AfxOleOnReleaseAllObjects() 1388 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1389 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1390 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1391 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1392 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1393 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1394 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1395 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1396 void AfxOleSetUserCtrl(int) 1397 void AfxOleTerm(int) 1398 void AfxOleTermOrFreeLib(int,int) 1399 void AfxOleUnlockAllControls() 1400 void AfxOleUnlockApp() 1401 int AfxOleUnlockControl(_GUID const &) 1402 int AfxOleUnlockControl(wchar_t const *) 1403 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1404 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1405 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1406 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1407 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1408 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1409 void AfxPostQuitMessage(int) 1410 int AfxPreTranslateMessage(tagMSG *) 1411 long AfxProcessWndProcException(CException *,tagMSG const *) 1412 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1413 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1414 int AfxPumpMessage() 1415 unsigned int AfxReadStringLength(CArchive &,int &) 1416 int AfxRegisterClass(tagWNDCLASSW *) 1417 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1418 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1419 void AfxResetMsgCache() 1420 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1421 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1422 void AfxSafeArrayInit(COleSafeArray *) 1423 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1424 void AfxSetAllocStop(long) 1425 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1426 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1427 void AfxSetResourceHandle(HINSTANCE__ *) 1428 void AfxSetWindowText(HWND__ *,wchar_t const *) 1429 void AfxSocketTerm() 1430 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1431 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1432 void AfxStoreField(CRecordset &,unsigned int,void *) 1433 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1434 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1435 void AfxTermLocalData(HINSTANCE__ *,int) 1436 void AfxTermThread(HINSTANCE__ *) 1437 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1438 void AfxThrowArchiveException(int,wchar_t const *) 1439 void AfxThrowDBException(short,CDatabase *,void *) 1440 void AfxThrowFileException(int,long,wchar_t const *) 1441 void AfxThrowInternetException(unsigned long,unsigned long) 1442 void AfxThrowLastCleanup() 1443 void AfxThrowMemoryException() 1444 void AfxThrowNotSupportedException() 1445 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1446 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1447 void AfxThrowOleException(long) 1448 void AfxThrowResourceException() 1449 void AfxThrowUserException() 1450 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1451 void AfxTlsAddRef() 1452 void AfxTlsRelease() 1453 void AfxTrace(wchar_t const *,...) 1454 int afxTraceEnabled 1455 unsigned int afxTraceFlags 1456 void AfxTrackerTerm() 1457 void AfxTryCleanup() 1458 int AfxUnhookWindowCreate() 1459 void AfxUnlockGlobals(int) 1460 int AfxUnlockTempMaps(int) 1461 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1462 void AfxVariantInit(tagVARIANT *) 1463 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1464 char * AfxW2AHelper(char *,wchar_t const *,int) 1465 void AfxWingdixTerm() 1466 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1467 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1468 void AfxWinTerm() 1469 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1470 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1471 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1472 void AfxWriteStringLength(CArchive &,unsigned int,int) 1473 void * CFixedAlloc::Alloc() 1474 void * CFixedAllocNoSync::Alloc() 1475 unsigned char * CMemFile::Alloc(unsigned long) 1476 unsigned char * CSharedFile::Alloc(unsigned long) 1477 void CRecordset::AllocAndCacheFieldInfo() 1478 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1479 void CDatabase::AllocConnect(unsigned long) 1480 void COleSafeArray::AllocData() 1481 void CRecordset::AllocDataCache() 1482 void COleSafeArray::AllocDescriptor(unsigned long) 1483 int CControlBar::AllocElements(int,int) 1484 int CStatusBar::AllocElements(int,int) 1485 int CRecordset::AllocHstmt() 1486 void CPropertyPage::AllocPSP(unsigned long) 1487 void CRecordset::AllocRowset() 1488 int CThreadSlotData::AllocSlot() 1489 void CRecordset::AllocStatusArrays() 1490 void * CProperty::AllocValue(unsigned long) 1491 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1492 short COleControl::AmbientAppearance() 1493 unsigned long COleControl::AmbientBackColor() 1494 ATL::CStringT > > COleControl::AmbientDisplayName() 1495 IFontDisp * COleControl::AmbientFont() 1496 unsigned long COleControl::AmbientForeColor() 1497 unsigned long COleControl::AmbientLocaleID() 1498 ATL::CStringT > > COleControl::AmbientScaleUnits() 1499 int COleControl::AmbientShowGrabHandles() 1500 int COleControl::AmbientShowHatching() 1501 short COleControl::AmbientTextAlign() 1502 int COleControl::AmbientUIDead() 1503 int COleControl::AmbientUserMode() 1504 int CDC::AngleArc(int,int,int,float,float) 1505 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1506 int CByteArray::Append(CByteArray const &) 1507 int CDWordArray::Append(CDWordArray const &) 1508 int CObArray::Append(CObArray const &) 1509 int CPtrArray::Append(CPtrArray const &) 1510 int CStringArray::Append(CStringArray const &) 1511 int CUIntArray::Append(CUIntArray const &) 1512 int CWordArray::Append(CWordArray const &) 1513 void CRecordset::AppendFilterAndSortSQL() 1514 int CMenu::AppendMenuW(unsigned int,unsigned int,wchar_t const *) 1515 int CMenu::AppendMenuW(unsigned int,unsigned int,CBitmap const *) 1516 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1517 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1518 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1519 long COlePropertyPage::XPropertyPage::Apply() 1520 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1521 int COleDocument::ApplyPrintDevice(tagPDW const *) 1522 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1523 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1524 int CDC::Arc(int,int,int,int,int,int,int,int) 1525 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1526 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1527 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1528 int CListCtrl::Arrange(unsigned int) 1529 unsigned int CWnd::ArrangeIconicWindows() 1530 void CAsyncMonikerFile::AssertValid()const 1531 void CAsyncSocket::AssertValid()const 1532 void CBitmapButton::AssertValid()const 1533 void CByteArray::AssertValid()const 1534 void CCachedDataPathProperty::AssertValid()const 1535 void CClientDC::AssertValid()const 1536 void CCmdTarget::AssertValid()const 1537 void CControlBar::AssertValid()const 1538 void CCtrlView::AssertValid()const 1539 void CDatabase::AssertValid()const 1540 void CDataPathProperty::AssertValid()const 1541 void CDC::AssertValid()const 1542 void CDialog::AssertValid()const 1543 void CDocItem::AssertValid()const 1544 void CDockBar::AssertValid()const 1545 void CDocManager::AssertValid()const 1546 void CDocObjectServer::AssertValid()const 1547 void CDocObjectServerItem::AssertValid()const 1548 void CDocTemplate::AssertValid()const 1549 void CDocument::AssertValid()const 1550 void CDWordArray::AssertValid()const 1551 void CDynLinkLibrary::AssertValid()const 1552 void CEditView::AssertValid()const 1553 void CFile::AssertValid()const 1554 void CFileFind::AssertValid()const 1555 void CFormView::AssertValid()const 1556 void CFrameWnd::AssertValid()const 1557 void CFtpConnection::AssertValid()const 1558 void CFtpFileFind::AssertValid()const 1559 void CGdiObject::AssertValid()const 1560 void CGopherConnection::AssertValid()const 1561 void CGopherFile::AssertValid()const 1562 void CGopherFileFind::AssertValid()const 1563 void CHtmlEditDoc::AssertValid()const 1564 void CHtmlEditView::AssertValid()const 1565 void CHtmlView::AssertValid()const 1566 void CHttpConnection::AssertValid()const 1567 void CHttpFile::AssertValid()const 1568 void CImageList::AssertValid()const 1569 void CInternetConnection::AssertValid()const 1570 void CInternetFile::AssertValid()const 1571 void CLongBinary::AssertValid()const 1572 void CMapPtrToPtr::AssertValid()const 1573 void CMapPtrToWord::AssertValid()const 1574 void CMapStringToOb::AssertValid()const 1575 void CMapStringToPtr::AssertValid()const 1576 void CMapStringToString::AssertValid()const 1577 void CMapWordToOb::AssertValid()const 1578 void CMapWordToPtr::AssertValid()const 1579 void CMDIChildWnd::AssertValid()const 1580 void CMDIFrameWnd::AssertValid()const 1581 void CMemFile::AssertValid()const 1582 void CMenu::AssertValid()const 1583 void CMonikerFile::AssertValid()const 1584 void CMultiDocTemplate::AssertValid()const 1585 void CObArray::AssertValid()const 1586 void CObject::AssertValid()const 1587 void CObList::AssertValid()const 1588 void COleChangeSourceDialog::AssertValid()const 1589 void COleClientItem::AssertValid()const 1590 void COleCntrFrameWnd::AssertValid()const 1591 void COleControl::AssertValid()const 1592 void COleDataSource::AssertValid()const 1593 void COleDocIPFrameWnd::AssertValid()const 1594 void COleDocument::AssertValid()const 1595 void COleDropTarget::AssertValid()const 1596 void COleIPFrameWnd::AssertValid()const 1597 void COleLinkingDoc::AssertValid()const 1598 void COleLinksDialog::AssertValid()const 1599 void COleMessageFilter::AssertValid()const 1600 void COleObjectFactory::AssertValid()const 1601 void COlePasteSpecialDialog::AssertValid()const 1602 void COlePropertiesDialog::AssertValid()const 1603 void COleServerDoc::AssertValid()const 1604 void COleServerItem::AssertValid()const 1605 void COleStreamFile::AssertValid()const 1606 void CPaintDC::AssertValid()const 1607 void CPreviewDC::AssertValid()const 1608 void CPreviewView::AssertValid()const 1609 void CPropertyPage::AssertValid()const 1610 void CPropertySheet::AssertValid()const 1611 void CPtrArray::AssertValid()const 1612 void CPtrList::AssertValid()const 1613 void CRecordset::AssertValid()const 1614 void CRecordView::AssertValid()const 1615 void CRichEditCntrItem::AssertValid()const 1616 void CRichEditDoc::AssertValid()const 1617 void CRichEditView::AssertValid()const 1618 void CScrollView::AssertValid()const 1619 void CSingleDocTemplate::AssertValid()const 1620 void CSocket::AssertValid()const 1621 void CSocketFile::AssertValid()const 1622 void CSplitterWnd::AssertValid()const 1623 void CStatusBar::AssertValid()const 1624 void CStringArray::AssertValid()const 1625 void CStringList::AssertValid()const 1626 void CSyncObject::AssertValid()const 1627 void CToolBar::AssertValid()const 1628 void CUIntArray::AssertValid()const 1629 void CView::AssertValid()const 1630 void CWinApp::AssertValid()const 1631 void CWindowDC::AssertValid()const 1632 void CWinThread::AssertValid()const 1633 void CWnd::AssertValid()const 1634 void CWordArray::AssertValid()const 1635 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1636 int CAsyncSocket::AsyncSelect(long) 1637 int CAsyncSocket::Attach(unsigned int,long) 1638 int CDC::Attach(HDC__ *) 1639 int CGdiObject::Attach(void *) 1640 int CImageList::Attach(_IMAGELIST *) 1641 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1642 int CMenu::Attach(HMENU__ *) 1643 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1644 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1645 void COleDataObject::Attach(IDataObject *,int) 1646 void COleSafeArray::Attach(tagVARIANT &) 1647 void COleStreamFile::Attach(IStream *) 1648 void COleVariant::Attach(tagVARIANT &) 1649 int CSocket::Attach(unsigned int) 1650 int CWnd::Attach(HWND__ *) 1651 int COleDataObject::AttachClipboard() 1652 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1653 void CWnd::AttachControlSite(CHandleMap *) 1654 void CWnd::AttachControlSite(CWnd *,unsigned int) 1655 void COleClientItem::AttachDataObject(COleDataObject &)const 1656 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1657 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1658 CPrintDialog * CPrintDialog::AttachOnSetup() 1659 void COleControlSite::AttachWindow() 1660 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1661 void CToolBarCtrl::AutoSize() 1662 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1663 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1664 void COleMessageFilter::BeginBusyState() 1665 void COleLinkingDoc::BeginDeferErrors() 1666 int CDragListBox::BeginDrag(CPoint) 1667 int CImageList::BeginDrag(int,CPoint) 1668 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1669 void COleDataObject::BeginEnumFormats() 1670 void CFrameWnd::BeginModalState() 1671 void CWnd::BeginModalState() 1672 CDC * CWnd::BeginPaint(tagPAINT*) 1673 int CDC::BeginPath() 1674 int CDatabase::BeginTrans() 1675 void CCmdTarget::BeginWaitCursor() 1676 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1677 int CAsyncSocket::Bind(sockaddr const *,int) 1678 void CDataSourceControl::BindColumns() 1679 void COccManager::BindControls(CWnd *) 1680 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1681 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1682 void CRecordset::BindFieldsForUpdate() 1683 unsigned int CRecordset::BindFieldsToColumns() 1684 void CDatabase::BindParameters(void *) 1685 unsigned int CRecordset::BindParams(void *) 1686 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1687 void CDataSourceControl::BindProp(COleControlSite *,int) 1688 void COleControlSite::BindProperty(long,CWnd *) 1689 void CWnd::BindProperty(long,CWnd *) 1690 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1691 void COleControl::BoundPropertyChanged(long) 1692 int COleControl::BoundPropertyRequestEdit(long) 1693 void CFrameWnd::BringToTop(int) 1694 void CWnd::BringWindowToTop() 1695 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1696 void CDBException::BuildErrorString(CDatabase *,void *,int) 1697 void CPropertySheet::BuildPropPageArray() 1698 void CRecordset::BuildSelectSQL() 1699 int COleControl::BuildSharedMenu() 1700 int COleDocIPFrameWnd::BuildSharedMenu() 1701 int COleIPFrameWnd::BuildSharedMenu() 1702 void CRecordset::BuildSQL(wchar_t const *) 1703 void CRecordset::BuildUpdateSQL() 1704 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1705 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1706 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1707 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1708 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1709 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1710 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1711 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1712 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1713 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1714 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1715 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1716 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1717 CSize CControlBar::CalcFixedLayout(int,int) 1718 CSize CDialogBar::CalcFixedLayout(int,int) 1719 CSize CDockBar::CalcFixedLayout(int,int) 1720 CSize CReBar::CalcFixedLayout(int,int) 1721 CSize CStatusBar::CalcFixedLayout(int,int) 1722 CSize CToolBar::CalcFixedLayout(int,int) 1723 void CControlBar::CalcInsideRect(CRect &,int)const 1724 void CStatusBar::CalcInsideRect(CRect &,int)const 1725 CSize CToolBar::CalcLayout(unsigned long,int) 1726 int CCheckListBox::CalcMinimumItemHeight() 1727 CSize CPreviewView::CalcPageDisplaySize() 1728 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1729 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1730 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1731 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1732 void CView::CalcWindowRect(tagRECT *,unsigned int) 1733 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1734 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1735 int CDHtmlDialog::CanAccessExternal() 1736 int COleClientItem::CanActivate() 1737 int CRichEditCntrItem::CanActivate() 1738 int CSplitterWnd::CanActivateNext(int) 1739 int CRecordset::CanAppend()const 1740 int CRecordset::CanBookmark()const 1741 void CDatabase::Cancel() 1742 void CRecordset::Cancel() 1743 void CSocket::CancelBlockingCall() 1744 void CDragListBox::CancelDrag(CPoint) 1745 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1746 long COleUILinkInfo::CancelLink(unsigned long) 1747 void CDockContext::CancelLoop() 1748 void CPropertyPage::CancelToClose() 1749 void CWnd::CancelToolTips(int) 1750 void CRecordset::CancelUpdate() 1751 int CDocument::CanCloseFrame(CFrameWnd *) 1752 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1753 int COleClientItem::CanCreateFromData(COleDataObject const *) 1754 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1755 unsigned long CDockContext::CanDock() 1756 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1757 int CFrameWnd::CanEnterHelpMode() 1758 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1759 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1760 int COleClientItem::CanPaste() 1761 int CRichEditCtrl::CanPaste(unsigned int)const 1762 int CRichEditView::CanPaste()const 1763 int COleClientItem::CanPasteLink() 1764 int CRichEditCtrl::CanRedo()const 1765 int CRecordset::CanRestart()const 1766 int CRecordset::CanScroll()const 1767 int CDatabase::CanTransact()const 1768 int CRecordset::CanTransact()const 1769 int CEdit::CanUndo()const 1770 int CRichEditCtrl::CanUndo()const 1771 int CDatabase::CanUpdate()const 1772 int CRecordset::CanUpdate()const 1773 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1774 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1775 void CScrollView::CenterOnPoint(CPoint) 1776 void CWnd::CenterWindow(CWnd *) 1777 int CWnd::ChangeClipboardChain(HWND__ *) 1778 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1779 int CEdit::CharFromPos(CPoint)const 1780 int CRichEditCtrl::CharFromPos(CPoint)const 1781 int CListBox::CharToItem(unsigned int,unsigned int) 1782 int CDatabase::Check(short)const 1783 int CRecordset::Check(short)const 1784 int CDialog::CheckAutoCenter() 1785 int CWnd::CheckAutoCenter() 1786 int CToolBarCtrl::CheckButton(int,int) 1787 void CArchive::CheckCount() 1788 void COleControlContainer::CheckDlgButton(int,unsigned int) 1789 void CWnd::CheckDlgButton(int,unsigned int) 1790 int CCheckListBox::CheckFromPoint(CPoint,int &) 1791 void COleClientItem::CheckGeneral(long) 1792 int CDatabase::CheckHstmt(short,void *)const 1793 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1794 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1795 void CMemoryState::Checkpoint() 1796 void COleControlContainer::CheckRadioButton(int,int,int) 1797 void CWnd::CheckRadioButton(int,int,int) 1798 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1799 void CRecordset::CheckRowsetError(short) 1800 void CScrollView::CheckScrollBars(int &,int &)const 1801 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1802 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1803 int CDC::Chord(int,int,int,int,int,int,int,int) 1804 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1805 void CPropertyPage::Cleanup() 1806 void COlePropertyPage::CleanupObjectArray() 1807 void CComboBox::Clear() 1808 void CDBVariant::Clear() 1809 void CDockState::Clear() 1810 void CEdit::Clear() 1811 void COleSafeArray::Clear() 1812 void COleVariant::Clear() 1813 void CRichEditCtrl::Clear() 1814 void CIPAddressCtrl::ClearAddress() 1815 int CHeaderCtrl::ClearAllFilters() 1816 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1817 void CRecordset::ClearFieldStatus() 1818 int CHeaderCtrl::ClearFilter(int) 1819 void CRecordset::ClearNullFieldStatus(unsigned long) 1820 void CRecordset::ClearNullParamStatus(unsigned long) 1821 void CSliderCtrl::ClearSel(int) 1822 void CSliderCtrl::ClearTics(int) 1823 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1824 void CWnd::ClientToScreen(tagPOINT *)const 1825 void CWnd::ClientToScreen(tagRECT *)const 1826 int COleControl::ClipCaretRect(tagRECT *) 1827 void CPreviewDC::ClipToPage() 1828 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1829 long CArchiveStream::Clone(IStream * *) 1830 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1831 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1832 int CAnimateCtrl::Close() 1833 void CArchive::Close() 1834 void CAsyncMonikerFile::Close() 1835 void CAsyncSocket::Close() 1836 void CCachedDataPathProperty::Close() 1837 void CDatabase::Close() 1838 void CFile::Close() 1839 void CFileFind::Close() 1840 void CInternetConnection::Close() 1841 void CInternetFile::Close() 1842 void CInternetSession::Close() 1843 void CMemFile::Close() 1844 HMETAFILE__ * CMetaFileDC::Close() 1845 void CMirrorFile::Close() 1846 void CMonikerFile::Close() 1847 void COleClientItem::Close(enum tagOLECLOSE) 1848 void COleStreamFile::Close() 1849 void CRecordset::Close() 1850 void CSocket::Close() 1851 void CSocketFile::Close() 1852 void CStdioFile::Close() 1853 long CDocObjectServer::XOleObject::Close(unsigned long) 1854 long COleControl::XOleObject::Close(unsigned long) 1855 long COleServerDoc::XOleObject::Close(unsigned long) 1856 long COleServerItem::XOleObject::Close(unsigned long) 1857 void CDocManager::CloseAllDocuments(int) 1858 void CDocTemplate::CloseAllDocuments(int) 1859 void CWinApp::CloseAllDocuments(int) 1860 void CFileFind::CloseContext() 1861 void CFtpFileFind::CloseContext() 1862 void CGopherFileFind::CloseContext() 1863 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 1864 int CDC::CloseFigure() 1865 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1866 void CWnd::CloseWindow() 1867 int CRgn::CombineRgn(CRgn *,CRgn *,int) 1868 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1869 int CStatusBar::CommandToIndex(unsigned int)const 1870 int CToolBar::CommandToIndex(unsigned int)const 1871 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 1872 long CArchiveStream::Commit(unsigned long) 1873 void COleClientItem::CommitItem(int) 1874 void COleDocument::CommitItems(int,IStorage *) 1875 int CDatabase::CommitTrans() 1876 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 1877 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 1878 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1879 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1880 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1881 void CWinThread::CommonConstruct() 1882 int CComboBox::CompareItem(tagCOMPAREITEM*) 1883 int CListBox::CompareItem(tagCOMPAREITEM*) 1884 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 1885 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 1886 int CAsyncSocket::Connect(sockaddr const *,int) 1887 int CDatabase::Connect(unsigned long) 1888 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1889 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1890 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1891 int CSocket::ConnectHelper(sockaddr const *,int) 1892 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1893 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1894 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1895 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1896 void COleServerDoc::ConnectView(CWnd *,CView *) 1897 void CPropertyPage::Construct(unsigned int,unsigned int) 1898 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1899 void CPropertyPage::Construct(wchar_t const *,unsigned int) 1900 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1901 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1902 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1903 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 1904 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1905 void CRectTracker::Construct() 1906 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1907 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1908 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1909 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1910 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1911 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1912 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1913 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1914 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1915 int CPropertySheet::ContinueModal() 1916 int CWnd::ContinueModal() 1917 void CCmdUI::ContinueRouting() 1918 void COleControl::ControlInfoChanged() 1919 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1920 int COleClientItem::ConvertTo(_GUID const &) 1921 int CRichEditCntrItem::ConvertTo(_GUID const &) 1922 void CByteArray::Copy(CByteArray const &) 1923 void CComboBox::Copy() 1924 void CDWordArray::Copy(CDWordArray const &) 1925 void CEdit::Copy() 1926 int CImageList::Copy(int,int,unsigned int) 1927 int CImageList::Copy(int,CImageList *,int,unsigned int) 1928 void CObArray::Copy(CObArray const &) 1929 void COleSafeArray::Copy(tagSAFEARRAY * *) 1930 void CPtrArray::Copy(CPtrArray const &) 1931 void CRichEditCtrl::Copy() 1932 void CStringArray::Copy(CStringArray const &) 1933 void CUIntArray::Copy(CUIntArray const &) 1934 void CWordArray::Copy(CWordArray const &) 1935 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1936 void CopyElements(COleVariant *,COleVariant const *,int) 1937 int CRgn::CopyRgn(CRgn *) 1938 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1939 void COleClientItem::CopyToClipboard(int) 1940 void COleServerItem::CopyToClipboard(int) 1941 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1942 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 1943 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1944 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1945 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1946 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1947 int CControlFrameWnd::Create(wchar_t const *) 1948 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1949 int CDialog::Create(unsigned int,CWnd *) 1950 int CDialog::Create(wchar_t const *,CWnd *) 1951 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 1952 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 1953 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1954 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1955 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 1956 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1957 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 1958 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1959 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1960 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1961 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1962 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1963 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1964 int CImageList::Create(int,int,unsigned int,int,int) 1965 int CImageList::Create(unsigned int,int,int,unsigned long) 1966 int CImageList::Create(CImageList *) 1967 int CImageList::Create(wchar_t const *,int,int,unsigned long) 1968 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1969 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1970 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1971 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1972 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1973 int CMetaFileDC::Create(wchar_t const *) 1974 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1975 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1976 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1977 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1978 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1979 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1980 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1981 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1982 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1983 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1984 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1985 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1986 int CReflectorWnd::Create(CRect const &,HWND__ *) 1987 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1988 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1989 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1990 int CSocket::Create(unsigned int,int,wchar_t const *) 1991 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1992 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1993 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1994 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1995 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1996 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1997 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1998 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1999 int CToolTipCtrl::Create(CWnd *,unsigned long) 2000 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2001 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2002 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2003 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2004 IBindHost * CMonikerFile::CreateBindHost() 2005 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2006 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2007 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2008 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2009 void CWnd::CreateCaret(CBitmap *) 2010 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 2011 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2012 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2013 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2014 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2015 int CDC::CreateCompatibleDC(CDC *) 2016 void CConnectionPoint::CreateConnectionArray() 2017 COleControlContainer * COccManager::CreateContainer(CWnd *) 2018 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2019 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2020 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2021 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2022 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2023 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2024 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2025 int CWnd::CreateControlContainer(COleControlContainer * *) 2026 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2027 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2028 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2029 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2030 int CDC::CreateDCW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2031 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2032 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2033 int CFtpConnection::CreateDirectoryW(wchar_t const *) 2034 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2035 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2036 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 2037 int CWnd::CreateDlg(wchar_t const *,CWnd *) 2038 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2039 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2040 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 2041 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *) 2042 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2043 CImageList * CHeaderCtrl::CreateDragImage(int) 2044 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2045 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2046 int CRgn::CreateEllipticRgn(int,int,int,int) 2047 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2048 int CPictureHolder::CreateEmpty() 2049 int CMetaFileDC::CreateEnhanced(CDC *,wchar_t const *,tagRECT const *,wchar_t const *) 2050 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2051 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2052 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2053 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2054 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2055 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2056 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2057 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2058 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2059 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2060 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2061 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2062 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2063 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2064 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2065 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2066 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2067 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2068 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2069 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2070 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2071 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2072 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2073 int CFont::CreateFontIndirectW(tagLOGFONTW const *) 2074 int CFont::CreateFontW(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,wchar_t const *) 2075 CControlFrameWnd * COleControl::CreateFrameWindow() 2076 int CPictureHolder::CreateFromBitmap(unsigned int) 2077 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2078 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2079 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2080 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2081 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2082 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2083 int CPictureHolder::CreateFromIcon(unsigned int) 2084 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2085 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2086 int CRgn::CreateFromPath(CDC *) 2087 void CWnd::CreateGrayCaret(int,int) 2088 int CPalette::CreateHalftonePalette(CDC *) 2089 int CBrush::CreateHatchBrush(int,unsigned long) 2090 int CDC::CreateICW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2091 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2092 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2093 int CDialog::CreateIndirect(void *,CWnd *) 2094 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2095 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2096 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2097 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2098 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2099 int COleInsertDialog::CreateItem(COleClientItem *) 2100 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2101 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2102 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2103 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2104 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 2105 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 2106 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 2107 int COleStreamFile::CreateMemoryStream(CFileException *) 2108 int CMenu::CreateMenu() 2109 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2110 CDocument * CDocTemplate::CreateNewDocument() 2111 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2112 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2113 CObject * CByteArray::CreateObject() 2114 CObject * CDC::CreateObject() 2115 CObject * CDocItem::CreateObject() 2116 CObject * CDockState::CreateObject() 2117 CObject * CDWordArray::CreateObject() 2118 CObject * CEditView::CreateObject() 2119 CObject * CFrameWnd::CreateObject() 2120 CObject * CGdiObject::CreateObject() 2121 CObject * CHtmlEditView::CreateObject() 2122 CObject * CHtmlView::CreateObject() 2123 CObject * CImageList::CreateObject() 2124 CObject * CListView::CreateObject() 2125 CObject * CMapStringToOb::CreateObject() 2126 CObject * CMapStringToString::CreateObject() 2127 CObject * CMapWordToOb::CreateObject() 2128 CObject * CMDIChildWnd::CreateObject() 2129 CObject * CMDIFrameWnd::CreateObject() 2130 CObject * CMenu::CreateObject() 2131 CObject * CMiniDockFrameWnd::CreateObject() 2132 CObject * CMiniFrameWnd::CreateObject() 2133 CObject * CObArray::CreateObject() 2134 CObject * CObList::CreateObject() 2135 CObject * COleDocIPFrameWnd::CreateObject() 2136 CObject * COleIPFrameWnd::CreateObject() 2137 CObject * CPreviewView::CreateObject() 2138 CObject * CRichEditCntrItem::CreateObject() 2139 CObject * CRichEditView::CreateObject() 2140 CObject * CRuntimeClass::CreateObject() 2141 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2142 CObject * CRuntimeClass::CreateObject(char const *) 2143 CObject * CStringArray::CreateObject() 2144 CObject * CStringList::CreateObject() 2145 CObject * CTreeView::CreateObject() 2146 CObject * CWnd::CreateObject() 2147 CObject * CWordArray::CreateObject() 2148 void COleControlContainer::CreateOleFont(CFont *) 2149 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2150 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2151 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2152 int CPalette::CreatePalette(tagLOGPALETTE *) 2153 int CBrush::CreatePatternBrush(CBitmap *) 2154 int CPen::CreatePen(int,int,unsigned long) 2155 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2156 int CPen::CreatePenIndirect(tagLOGPEN *) 2157 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 2158 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 2159 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2160 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2161 int CMenu::CreatePopupMenu() 2162 HDC__ * CPageSetupDialog::CreatePrinterDC() 2163 HDC__ * CPrintDialog::CreatePrinterDC() 2164 HDC__ * CPrintDialogEx::CreatePrinterDC() 2165 int CWinApp::CreatePrinterDC(CDC &) 2166 int CRgn::CreateRectRgn(int,int,int,int) 2167 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2168 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2169 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2170 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2171 int CBrush::CreateSolidBrush(unsigned long) 2172 void CWnd::CreateSolidCaret(int,int) 2173 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2174 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2175 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2176 int CGdiObject::CreateStockObject(int) 2177 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 2178 int CBrush::CreateSysColorBrush(int) 2179 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2180 void COleControl::CreateTracker(int,int) 2181 void COleControl::CreateTracker(int,int,tagRECT const *) 2182 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2183 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2184 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2185 void COleControl::CreateWindowForSubclassedControl() 2186 void CToolBarCtrl::Customize() 2187 void CComboBox::Cut() 2188 void CEdit::Cut() 2189 void CRichEditCtrl::Cut() 2190 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2191 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2192 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2193 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2194 void DDP_CBIndex(CDataExchange *,int,int &,wchar_t const *) 2195 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2196 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2197 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 2198 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 2199 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 2200 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 2201 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 2202 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 2203 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 2204 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 2205 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 2206 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 2207 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 2208 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 2209 void DDP_LBIndex(CDataExchange *,int,int &,wchar_t const *) 2210 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2211 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2212 void DDP_PostProcessing(CDataExchange *) 2213 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 2214 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 2215 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 2216 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 2217 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 2218 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 2219 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 2220 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 2221 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 2222 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2223 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2224 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2225 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2226 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2227 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2228 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2229 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2230 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2231 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2232 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2233 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2234 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2235 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2236 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2237 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2238 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2239 void DDX_CBIndex(CDataExchange *,int,int &) 2240 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2241 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2242 void DDX_Check(CDataExchange *,int,int &) 2243 void DDX_Control(CDataExchange *,int,CWnd &) 2244 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2245 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2246 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2247 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2248 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2249 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2250 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 2251 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 2252 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 2253 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 2254 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 2255 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 2256 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 2257 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 2258 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 2259 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 2260 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 2261 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 2262 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 2263 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 2264 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 2265 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 2266 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 2267 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 2268 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 2269 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 2270 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 2271 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 2272 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 2273 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 2274 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 2275 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 2276 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 2277 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2278 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 2279 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2280 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2281 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2282 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2283 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2284 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2285 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2286 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2287 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2288 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2289 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2290 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2291 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2292 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2293 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2294 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2295 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2296 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2297 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 2298 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2299 void DDX_LBIndex(CDataExchange *,int,int &) 2300 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2301 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2302 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2303 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2304 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2305 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2306 void DDX_OCBool(CDataExchange *,int,long,int &) 2307 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2308 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2309 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2310 void DDX_OCFloat(CDataExchange *,int,long,float &) 2311 void DDX_OCFloat(CDataExchange *,int,long,double &) 2312 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2313 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2314 void DDX_OCInt(CDataExchange *,int,long,int &) 2315 void DDX_OCInt(CDataExchange *,int,long,long &) 2316 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2317 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2318 void DDX_OCShort(CDataExchange *,int,long,short &) 2319 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2320 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2321 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2322 void DDX_Radio(CDataExchange *,int,int &) 2323 void DDX_Scroll(CDataExchange *,int,int &) 2324 void DDX_Slider(CDataExchange *,int,int &) 2325 void DDX_Text(CDataExchange *,int,__int64 &) 2326 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2327 void DDX_Text(CDataExchange *,int,unsigned char &) 2328 void DDX_Text(CDataExchange *,int,short &) 2329 void DDX_Text(CDataExchange *,int,int &) 2330 void DDX_Text(CDataExchange *,int,unsigned int &) 2331 void DDX_Text(CDataExchange *,int,long &) 2332 void DDX_Text(CDataExchange *,int,unsigned long &) 2333 void DDX_Text(CDataExchange *,int,float &) 2334 void DDX_Text(CDataExchange *,int,double &) 2335 void DDX_Text(CDataExchange *,int,_FILETIME &) 2336 void DDX_Text(CDataExchange *,int,_GUID &) 2337 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2338 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2339 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2340 void DDX_Text(CDataExchange *,int,tagDEC &) 2341 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2342 void DDX_Text(CDataExchange *,int,COleCurrency &) 2343 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2344 void DDX_Text(CDataExchange *,int,wchar_t *,int) 2345 void COleClientItem::Deactivate() 2346 long COlePropertyPage::XPropertyPage::Deactivate() 2347 int COleServerDoc::DeactivateAndUndo() 2348 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2349 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2350 void COleClientItem::DeactivateUI() 2351 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 2352 long CWnd::Default() 2353 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 2354 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 2355 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 2356 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 2357 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 2358 void CFrameWnd::DelayRecalcLayout(int) 2359 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2360 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2361 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2362 void CControlBar::DelayShow(int) 2363 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2364 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2365 void CFrameWnd::DelayUpdateFrameTitle() 2366 void CException::Delete() 2367 void COleClientItem::Delete(int) 2368 void CRecordset::Delete() 2369 void CWinThread::Delete() 2370 int CListCtrl::DeleteAllItems() 2371 int CTabCtrl::DeleteAllItems() 2372 int CTreeCtrl::DeleteAllItems() 2373 int CReBarCtrl::DeleteBand(unsigned int) 2374 int CToolBarCtrl::DeleteButton(int) 2375 int CListCtrl::DeleteColumn(int) 2376 void CSplitterWnd::DeleteColumn(int) 2377 void CDocument::DeleteContents() 2378 void CEditView::DeleteContents() 2379 void CHtmlEditDoc::DeleteContents() 2380 void COleDocument::DeleteContents() 2381 void COleServerDoc::DeleteContents() 2382 void CRichEditDoc::DeleteContents() 2383 void CRichEditView::DeleteContents() 2384 int CDC::DeleteDC() 2385 int CImageList::DeleteImageList() 2386 void CComboBox::DeleteItem(tagDELETEITEM*) 2387 int CComboBoxEx::DeleteItem(int) 2388 int CHeaderCtrl::DeleteItem(int) 2389 void CListBox::DeleteItem(tagDELETEITEM*) 2390 int CListCtrl::DeleteItem(int) 2391 int CTabCtrl::DeleteItem(int) 2392 int CTreeCtrl::DeleteItem(_TREEITEM *) 2393 int CMenu::DeleteMenu(unsigned int,unsigned int) 2394 int CGdiObject::DeleteObject() 2395 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2396 void CSplitterWnd::DeleteRow(int) 2397 int CComboBox::DeleteString(unsigned int) 2398 int CListBox::DeleteString(unsigned int) 2399 void CHandleMap::DeleteTemp() 2400 void CDC::DeleteTempMap() 2401 void CGdiObject::DeleteTempMap() 2402 void CImageList::DeleteTempMap() 2403 void CMenu::DeleteTempMap() 2404 void CWnd::DeleteTempMap() 2405 void CRichEditDoc::DeleteUnmarkedItems()const 2406 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2407 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2408 void CSplitterWnd::DeleteView(int,int) 2409 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2410 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2411 void CTabCtrl::DeselectAll(int) 2412 void COleSafeArray::Destroy() 2413 int COleControlSite::DestroyControl() 2414 void COleSafeArray::DestroyData() 2415 void COleSafeArray::DestroyDescriptor() 2416 void CFrameWnd::DestroyDockBars() 2417 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2418 int CMenu::DestroyMenu() 2419 void CDHtmlDialog::DestroyModeless() 2420 void COleControl::DestroySharedMenu() 2421 void COleDocIPFrameWnd::DestroySharedMenu() 2422 void COleIPFrameWnd::DestroySharedMenu() 2423 int CToolTipCtrl::DestroyToolTipCtrl() 2424 void COleControl::DestroyTracker() 2425 int CControlBar::DestroyWindow() 2426 int CMDIChildWnd::DestroyWindow() 2427 int CWnd::DestroyWindow() 2428 unsigned int CAsyncSocket::Detach() 2429 HDC__ * CDC::Detach() 2430 void * CDialogTemplate::Detach() 2431 void * CGdiObject::Detach() 2432 _IMAGELIST * CImageList::Detach() 2433 unsigned char * CMemFile::Detach() 2434 HMENU__ * CMenu::Detach() 2435 int CMonikerFile::Detach(CFileException *) 2436 IDataObject * COleDataObject::Detach() 2437 tagVARIANT COleSafeArray::Detach() 2438 IStream * COleStreamFile::Detach() 2439 tagVARIANT COleVariant::Detach() 2440 void * CSharedFile::Detach() 2441 HDC__ * CWindowlessDC::Detach() 2442 HWND__ * CWnd::Detach() 2443 IDispatch * COleDispatchDriver::DetachDispatch() 2444 void CAsyncSocket::DetachHandle(unsigned int,int) 2445 void COleControlSite::DetachWindow() 2446 void CWinApp::DevModeChange(wchar_t *) 2447 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2448 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2449 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2450 int CComboBox::Dir(unsigned int,wchar_t const *) 2451 int CComboBoxEx::Dir(unsigned int,wchar_t const *) 2452 int CListBox::Dir(unsigned int,wchar_t const *) 2453 int COleServerDoc::DiscardUndoState() 2454 long COleClientItem::XOleIPSite::DiscardUndoState() 2455 long COleControlSite::XOleIPSite::DiscardUndoState() 2456 void COleDispatchImpl::Disconnect() 2457 void CDHtmlDialog::DisconnectDHtmlElementEvents() 2458 void CDHtmlDialog::DisconnectDHtmlEvents() 2459 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2460 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2461 void CDocument::DisconnectViews() 2462 void CWinThread::DispatchThreadMessage(tagMSG *) 2463 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2464 int CRichEditCtrl::DisplayBand(tagRECT *) 2465 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 2466 int CWnd::DlgDirListComboBoxW(wchar_t *,int,int,unsigned int) 2467 int CWnd::DlgDirListW(wchar_t *,int,int,unsigned int) 2468 int CWnd::DlgDirSelect(wchar_t *,int) 2469 int CWnd::DlgDirSelectComboBox(wchar_t *,int) 2470 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2471 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2472 void CAsyncSocket::DoCallBack(unsigned int,long) 2473 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2474 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2475 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2476 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2477 void COleControl::DoClick() 2478 int COleFrameHook::DoContextSensitiveHelp(int) 2479 int COleConvertDialog::DoConvert(COleClientItem *) 2480 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2481 void CWnd::DoDataExchange(CDataExchange *) 2482 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2483 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2484 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2485 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2486 int COleFrameHook::DoEnableModeless(int) 2487 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2488 void CRecordset::DoFieldExchange(CFieldExchange *) 2489 int CDocument::DoFileSave() 2490 int CSplitterWnd::DoKeyboardSplit() 2491 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2492 int CColorDialog::DoModal() 2493 int CDialog::DoModal() 2494 int CFileDialog::DoModal() 2495 int CFontDialog::DoModal() 2496 int COleBusyDialog::DoModal() 2497 int COleChangeIconDialog::DoModal() 2498 int COleChangeSourceDialog::DoModal() 2499 int COleConvertDialog::DoModal() 2500 int COleInsertDialog::DoModal(unsigned long) 2501 int COleInsertDialog::DoModal() 2502 int COleLinksDialog::DoModal() 2503 int COlePasteSpecialDialog::DoModal() 2504 int COlePropertiesDialog::DoModal() 2505 int COleUpdateDialog::DoModal() 2506 int CPageSetupDialog::DoModal() 2507 int CPrintDialog::DoModal() 2508 int CPrintDialogEx::DoModal() 2509 int CPropertySheet::DoModal() 2510 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2511 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2512 void CControlBar::DoPaint(CDC *) 2513 void CDockBar::DoPaint(CDC *) 2514 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2515 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2516 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2517 int CView::DoPreparePrinting(CPrintInfo *) 2518 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2519 int CWinApp::DoPrintDialog(CPrintDialog *) 2520 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2521 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2522 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2523 void COleControl::DoPropExchange(CPropExchange *) 2524 int CDocument::DoSave(wchar_t const *,int) 2525 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2526 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2527 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2528 int CCmdUI::DoUpdate(CCmdTarget *,int) 2529 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2530 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2531 long COleControlSite::DoVerb(long,tagMSG *) 2532 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2533 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2534 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2535 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2536 void CWinApp::DoWaitCursor(int) 2537 void CPreviewView::DoZoom(unsigned int,CPoint) 2538 void CDC::DPtoHIMETRIC(tagSIZE *)const 2539 void CDC::DPtoLP(tagPOINT *,int)const 2540 void CDC::DPtoLP(tagRECT *)const 2541 void CDC::DPtoLP(tagSIZE *)const 2542 void CWnd::DragAcceptFiles(int) 2543 int CWnd::DragDetect(tagPOINT)const 2544 int CImageList::DragEnter(CWnd *,CPoint) 2545 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2546 unsigned int CDragListBox::Dragging(CPoint) 2547 int CImageList::DragLeave(CWnd *) 2548 long COleDropTarget::XDropTarget::DragLeave() 2549 int CImageList::DragMove(CPoint) 2550 void CReBarCtrl::DragMove(unsigned long) 2551 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2552 int CImageList::DragShowNolock(int) 2553 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2554 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2555 void CRectTracker::Draw(CDC *)const 2556 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2557 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2558 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2559 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2560 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2561 void CControlBar::DrawBorders(CDC *,CRect &) 2562 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2563 void COleControl::DrawContent(CDC *,CRect &) 2564 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2565 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2566 int CDC::DrawEscape(int,int,char const *) 2567 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2568 void CDC::DrawFocusRect(tagRECT const *) 2569 void CDockContext::DrawFocusRect(int) 2570 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2571 void CControlBar::DrawGripper(CDC *,CRect const &) 2572 int CDC::DrawIcon(int,int,HICON__ *) 2573 int CDC::DrawIcon(tagPOINT,HICON__ *) 2574 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2575 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2576 void CDragListBox::DrawInsert(int) 2577 void CBitmapButton::DrawItem(tagDRAWITEM*) 2578 void CButton::DrawItem(tagDRAWITEM*) 2579 void CCheckListBox::DrawItem(tagDRAWITEM*) 2580 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2581 void CComboBox::DrawItem(tagDRAWITEM*) 2582 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2583 void CListBox::DrawItem(tagDRAWITEM*) 2584 void CListCtrl::DrawItem(tagDRAWITEM*) 2585 void CListView::DrawItem(tagDRAWITEM*) 2586 void CMenu::DrawItem(tagDRAWITEM*) 2587 void CStatic::DrawItem(tagDRAWITEM*) 2588 void CStatusBar::DrawItem(tagDRAWITEM*) 2589 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2590 void CTabCtrl::DrawItem(tagDRAWITEM*) 2591 void CWnd::DrawMenuBar() 2592 void COleControl::DrawMetafile(CDC *,CRect &) 2593 void CDragListBox::DrawSingle(int) 2594 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2595 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2596 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2597 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2598 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2599 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2600 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,HBRUSH__ *) 2601 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,CBrush *) 2602 int CDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2603 int CDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2604 int CMetaFileDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2605 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2606 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2607 int CDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2608 int CDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2609 int CMetaFileDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2610 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2611 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2612 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2613 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2614 void CDragListBox::Dropped(int,CPoint) 2615 void CArchiveException::Dump(CDumpContext &)const 2616 void CAsyncMonikerFile::Dump(CDumpContext &)const 2617 void CAsyncSocket::Dump(CDumpContext &)const 2618 void CBitmap::Dump(CDumpContext &)const 2619 void CBitmapButton::Dump(CDumpContext &)const 2620 void CBrush::Dump(CDumpContext &)const 2621 void CByteArray::Dump(CDumpContext &)const 2622 void CCachedDataPathProperty::Dump(CDumpContext &)const 2623 void CClientDC::Dump(CDumpContext &)const 2624 void CCmdTarget::Dump(CDumpContext &)const 2625 void CColorDialog::Dump(CDumpContext &)const 2626 void CControlBar::Dump(CDumpContext &)const 2627 void CCtrlView::Dump(CDumpContext &)const 2628 void CDatabase::Dump(CDumpContext &)const 2629 void CDataPathProperty::Dump(CDumpContext &)const 2630 void CDC::Dump(CDumpContext &)const 2631 void CDialog::Dump(CDumpContext &)const 2632 void CDocItem::Dump(CDumpContext &)const 2633 void CDockBar::Dump(CDumpContext &)const 2634 void CDocManager::Dump(CDumpContext &)const 2635 void CDocObjectServer::Dump(CDumpContext &)const 2636 void CDocObjectServerItem::Dump(CDumpContext &)const 2637 void CDocTemplate::Dump(CDumpContext &)const 2638 void CDocument::Dump(CDumpContext &)const 2639 void CDWordArray::Dump(CDumpContext &)const 2640 void CDynLinkLibrary::Dump(CDumpContext &)const 2641 void CEditView::Dump(CDumpContext &)const 2642 void CFile::Dump(CDumpContext &)const 2643 void CFileDialog::Dump(CDumpContext &)const 2644 void CFileException::Dump(CDumpContext &)const 2645 void CFileFind::Dump(CDumpContext &)const 2646 void CFileStatus::Dump(CDumpContext &)const 2647 void CFindReplaceDialog::Dump(CDumpContext &)const 2648 void CFont::Dump(CDumpContext &)const 2649 void CFontDialog::Dump(CDumpContext &)const 2650 void CFormView::Dump(CDumpContext &)const 2651 void CFrameWnd::Dump(CDumpContext &)const 2652 void CFtpConnection::Dump(CDumpContext &)const 2653 void CFtpFileFind::Dump(CDumpContext &)const 2654 void CGdiObject::Dump(CDumpContext &)const 2655 void CGopherConnection::Dump(CDumpContext &)const 2656 void CGopherFile::Dump(CDumpContext &)const 2657 void CGopherFileFind::Dump(CDumpContext &)const 2658 void CHtmlEditDoc::Dump(CDumpContext &)const 2659 void CHtmlEditView::Dump(CDumpContext &)const 2660 void CHtmlView::Dump(CDumpContext &)const 2661 void CHttpConnection::Dump(CDumpContext &)const 2662 void CHttpFile::Dump(CDumpContext &)const 2663 void CImageList::Dump(CDumpContext &)const 2664 void CInternetConnection::Dump(CDumpContext &)const 2665 void CInternetException::Dump(CDumpContext &)const 2666 void CInternetFile::Dump(CDumpContext &)const 2667 void CInternetSession::Dump(CDumpContext &)const 2668 void CLongBinary::Dump(CDumpContext &)const 2669 void CMapPtrToPtr::Dump(CDumpContext &)const 2670 void CMapPtrToWord::Dump(CDumpContext &)const 2671 void CMapStringToOb::Dump(CDumpContext &)const 2672 void CMapStringToPtr::Dump(CDumpContext &)const 2673 void CMapStringToString::Dump(CDumpContext &)const 2674 void CMapWordToOb::Dump(CDumpContext &)const 2675 void CMapWordToPtr::Dump(CDumpContext &)const 2676 void CMDIChildWnd::Dump(CDumpContext &)const 2677 void CMDIFrameWnd::Dump(CDumpContext &)const 2678 void CMemFile::Dump(CDumpContext &)const 2679 void CMenu::Dump(CDumpContext &)const 2680 void CMonikerFile::Dump(CDumpContext &)const 2681 void CMultiDocTemplate::Dump(CDumpContext &)const 2682 void CObArray::Dump(CDumpContext &)const 2683 void CObject::Dump(CDumpContext &)const 2684 void CObList::Dump(CDumpContext &)const 2685 void COleBusyDialog::Dump(CDumpContext &)const 2686 void COleChangeIconDialog::Dump(CDumpContext &)const 2687 void COleChangeSourceDialog::Dump(CDumpContext &)const 2688 void COleClientItem::Dump(CDumpContext &)const 2689 void COleControl::Dump(CDumpContext &)const 2690 void COleConvertDialog::Dump(CDumpContext &)const 2691 void COleDataSource::Dump(CDumpContext &)const 2692 void COleDialog::Dump(CDumpContext &)const 2693 void COleDocIPFrameWnd::Dump(CDumpContext &)const 2694 void COleDocument::Dump(CDumpContext &)const 2695 void COleDropSource::Dump(CDumpContext &)const 2696 void COleDropTarget::Dump(CDumpContext &)const 2697 void COleInsertDialog::Dump(CDumpContext &)const 2698 void COleIPFrameWnd::Dump(CDumpContext &)const 2699 void COleLinkingDoc::Dump(CDumpContext &)const 2700 void COleLinksDialog::Dump(CDumpContext &)const 2701 void COleMessageFilter::Dump(CDumpContext &)const 2702 void COleObjectFactory::Dump(CDumpContext &)const 2703 void COlePasteSpecialDialog::Dump(CDumpContext &)const 2704 void COlePropertiesDialog::Dump(CDumpContext &)const 2705 void COleServerDoc::Dump(CDumpContext &)const 2706 void COleServerItem::Dump(CDumpContext &)const 2707 void COleStreamFile::Dump(CDumpContext &)const 2708 void COleUpdateDialog::Dump(CDumpContext &)const 2709 void CPageSetupDialog::Dump(CDumpContext &)const 2710 void CPaintDC::Dump(CDumpContext &)const 2711 void CPen::Dump(CDumpContext &)const 2712 void CPreviewDC::Dump(CDumpContext &)const 2713 void CPreviewView::Dump(CDumpContext &)const 2714 void CPrintDialog::Dump(CDumpContext &)const 2715 void CPrintDialogEx::Dump(CDumpContext &)const 2716 void CPropertyPage::Dump(CDumpContext &)const 2717 void CPropertySheet::Dump(CDumpContext &)const 2718 void CPtrArray::Dump(CDumpContext &)const 2719 void CPtrList::Dump(CDumpContext &)const 2720 void CRecordset::Dump(CDumpContext &)const 2721 void CRecordView::Dump(CDumpContext &)const 2722 void CRichEditCntrItem::Dump(CDumpContext &)const 2723 void CRichEditDoc::Dump(CDumpContext &)const 2724 void CRichEditView::Dump(CDumpContext &)const 2725 void CScrollView::Dump(CDumpContext &)const 2726 void CSingleDocTemplate::Dump(CDumpContext &)const 2727 void CSocket::Dump(CDumpContext &)const 2728 void CSocketFile::Dump(CDumpContext &)const 2729 void CSplitterWnd::Dump(CDumpContext &)const 2730 void CStatusBar::Dump(CDumpContext &)const 2731 void CStdioFile::Dump(CDumpContext &)const 2732 void CStringArray::Dump(CDumpContext &)const 2733 void CStringList::Dump(CDumpContext &)const 2734 void CSyncObject::Dump(CDumpContext &)const 2735 void CToolBar::Dump(CDumpContext &)const 2736 void CUIntArray::Dump(CDumpContext &)const 2737 void CView::Dump(CDumpContext &)const 2738 void CWinApp::Dump(CDumpContext &)const 2739 void CWindowDC::Dump(CDumpContext &)const 2740 void CWinThread::Dump(CDumpContext &)const 2741 void CWnd::Dump(CDumpContext &)const 2742 void CWordArray::Dump(CDumpContext &)const 2743 void CMemoryState::DumpAllObjectsSince()const 2744 CDumpContext & CDumpContext::DumpAsHex(__int64) 2745 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2746 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2747 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2748 CDumpContext & CDumpContext::DumpAsHex(int) 2749 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2750 CDumpContext & CDumpContext::DumpAsHex(long) 2751 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2752 void DumpElements(CDumpContext &,COleVariant const *,int) 2753 void CRecordset::DumpFields(CDumpContext &)const 2754 void CMemoryState::DumpStatistics()const 2755 long COleControl::XDataObject::DUnadvise(unsigned long) 2756 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2757 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2758 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2759 CFile * CFile::Duplicate()const 2760 CFile * CInternetFile::Duplicate()const 2761 CFile * CMemFile::Duplicate()const 2762 CFile * COleStreamFile::Duplicate()const 2763 CFile * CSocketFile::Duplicate()const 2764 CFile * CStdioFile::Duplicate()const 2765 unsigned long const CEditView::dwStyleDefault 2766 void CRecordset::Edit() 2767 int CHeaderCtrl::EditFilter(int,int) 2768 CEdit * CListCtrl::EditLabel(int) 2769 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2770 long COlePropertyPage::XPropertyPage::EditProperty(long) 2771 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2772 unsigned char & CByteArray::ElementAt(int) 2773 unsigned long & CDWordArray::ElementAt(int) 2774 CObject * & CObArray::ElementAt(int) 2775 void * & CPtrArray::ElementAt(int) 2776 ATL::CStringT > > & CStringArray::ElementAt(int) 2777 unsigned int & CUIntArray::ElementAt(int) 2778 unsigned short & CWordArray::ElementAt(int) 2779 int CDC::Ellipse(int,int,int,int) 2780 int CDC::Ellipse(tagRECT const *) 2781 void CDBException::Empty() 2782 void COleDataSource::Empty() 2783 void CEdit::EmptyUndoBuffer() 2784 void CRichEditCtrl::EmptyUndoBuffer() 2785 void CCheckListBox::Enable(int,int) 2786 void CCmdUI::Enable(int) 2787 void COleCmdUI::Enable(int) 2788 void CStatusCmdUI::Enable(int) 2789 void CTestCmdUI::Enable(int) 2790 void CToolCmdUI::Enable(int) 2791 int CWinApp::Enable3dControls() 2792 void CWnd::EnableActiveAccessibility() 2793 void CCmdTarget::EnableAggregation() 2794 void CCmdTarget::EnableAutomation() 2795 void CRecordset::EnableBookmarks() 2796 void COleMessageFilter::EnableBusyDialog(int) 2797 int CToolBarCtrl::EnableButton(int,int) 2798 void COleDocument::EnableCompoundFile(int) 2799 void CCmdTarget::EnableConnections() 2800 void CControlBar::EnableDocking(unsigned long) 2801 void CFrameWnd::EnableDocking(unsigned long) 2802 void CReBar::EnableDocking(unsigned long) 2803 void CStatusBar::EnableDocking(unsigned long) 2804 void COleControlSite::EnableDSC() 2805 void CWinApp::EnableHtmlHelp() 2806 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2807 long CBrowserControlSite::EnableModeless(int) 2808 long CDHtmlDialog::EnableModeless(int) 2809 void CWinApp::EnableModeless(int) 2810 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2811 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2812 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2813 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2814 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2815 void COleMessageFilter::EnableNotRespondingDialog(int) 2816 int CScrollBar::EnableScrollBar(unsigned int) 2817 int CWnd::EnableScrollBar(int,unsigned int) 2818 void CWnd::EnableScrollBarCtrl(int,int) 2819 void CWinApp::EnableShellOpen() 2820 void COleControl::EnableSimpleFrame() 2821 void CPropertySheet::EnableStackedTabs(int) 2822 int CInternetSession::EnableStatusCallback(int) 2823 int CWnd::EnableToolTips(int) 2824 int CWnd::EnableTrackingToolTips(int) 2825 void CCmdTarget::EnableTypeLib() 2826 int COleControlSite::EnableWindow(int) 2827 int CWnd::EnableWindow(int) 2828 void COleMessageFilter::EndBusyState() 2829 void CAsyncMonikerFile::EndCallbacks() 2830 long COleLinkingDoc::EndDeferErrors(long) 2831 void CDialog::EndDialog(int) 2832 void CPropertyPage::EndDialog(int) 2833 void CPropertySheet::EndDialog(int) 2834 int CDC::EndDoc() 2835 void CDockContext::EndDrag() 2836 void CImageList::EndDrag() 2837 void CReBarCtrl::EndDrag() 2838 void CWnd::EndModalLoop(int) 2839 void CFrameWnd::EndModalState() 2840 void CWnd::EndModalState() 2841 int CDC::EndPage() 2842 void CWnd::EndPaint(tagPAINT*) 2843 int CDC::EndPath() 2844 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2845 void CDockContext::EndResize() 2846 void CCmdTarget::EndWaitCursor() 2847 void COleDataObject::EnsureClipboardObject() 2848 long CWnd::EnsureStdObj() 2849 int CListCtrl::EnsureVisible(int,int) 2850 int CTreeCtrl::EnsureVisible(_TREEITEM *) 2851 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2852 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2853 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2854 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2855 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2856 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2857 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2858 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2859 int COlePropertyPage::EnumControls(HWND__ *,long) 2860 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2861 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2862 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2863 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2864 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2865 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2866 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2867 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2868 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 2869 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2870 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2871 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2872 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2873 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2874 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2875 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2876 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2877 int CRgn::EqualRgn(CRgn *)const 2878 void CControlBar::EraseNonClient() 2879 int CFileException::ErrnoToException(int) 2880 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2881 int CDC::Escape(int,int,char const *,int,char *) 2882 int CDC::Escape(int,int,char const *,void *) 2883 int CMetaFileDC::Escape(int,int,char const *,void *) 2884 int CPreviewDC::Escape(int,int,char const *,void *) 2885 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2886 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2887 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2888 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2889 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2890 int COleControl::ExchangeExtent(CPropExchange *) 2891 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2892 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2893 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2894 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2895 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2896 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2897 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2898 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2899 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2900 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2901 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2902 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2903 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2904 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2905 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2906 void COleControl::ExchangeStockProps(CPropExchange *) 2907 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2908 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 2909 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2910 int CDC::ExcludeClipRect(int,int,int,int) 2911 int CDC::ExcludeClipRect(tagRECT const *) 2912 int CDC::ExcludeUpdateRgn(CWnd *) 2913 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2914 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2915 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2916 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2917 int CHtmlEditView::ExecHandler(unsigned int) 2918 int CWnd::ExecuteDlgInit(void *) 2919 int CWnd::ExecuteDlgInit(wchar_t const *) 2920 void CRecordset::ExecuteSetPosUpdate() 2921 void CDatabase::ExecuteSQL(wchar_t const *) 2922 void CRecordset::ExecuteUpdateSQL() 2923 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2924 void CFrameWnd::ExitHelpMode() 2925 int COleControlModule::ExitInstance() 2926 int CWinApp::ExitInstance() 2927 int CWinThread::ExitInstance() 2928 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 2929 unsigned long CCmdTarget::ExternalAddRef() 2930 void CCmdTarget::ExternalDisconnect() 2931 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2932 unsigned long CCmdTarget::ExternalRelease() 2933 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 2934 HICON__ * CImageList::ExtractIconW(int) 2935 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 2936 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2937 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 2938 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2939 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2940 void CDataExchange::Fail() 2941 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2942 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2943 void CArchive::FillBuffer(unsigned int) 2944 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 2945 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2946 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2947 int CDC::FillPath() 2948 void CDC::FillRect(tagRECT const *,CBrush *) 2949 int CDC::FillRgn(CRgn *,CBrush *) 2950 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2951 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2952 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2953 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2954 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2955 void CWnd::FilterToolTipMessage(tagMSG *) 2956 __POSITION * CObList::Find(CObject *,__POSITION *)const 2957 __POSITION * CPtrList::Find(void *,__POSITION *)const 2958 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 2959 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 2960 int CDockBar::FindBar(CControlBar *,int) 2961 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2962 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2963 int CFileFind::FindFile(wchar_t const *,unsigned long) 2964 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 2965 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 2966 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 2967 __POSITION * CObList::FindIndex(int)const 2968 __POSITION * CPtrList::FindIndex(int)const 2969 __POSITION * CStringList::FindIndex(int)const 2970 int CListCtrl::FindItem(tagLVFINDINFOW *,int)const 2971 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2972 int CFindReplaceDialog::FindNext()const 2973 int CFileFind::FindNextFileW() 2974 int CFtpFileFind::FindNextFileW() 2975 int CGopherFileFind::FindNextFileW() 2976 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2977 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 2978 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 2979 int CComboBox::FindString(int,wchar_t const *)const 2980 int CComboBoxEx::FindString(int,wchar_t const *)const 2981 int CListBox::FindString(int,wchar_t const *)const 2982 int CComboBox::FindStringExact(int,wchar_t const *)const 2983 int CListBox::FindStringExact(int,wchar_t const *)const 2984 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 2985 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 2986 int CEditView::FindTextW(wchar_t const *,int,int) 2987 long CRichEditCtrl::FindTextW(unsigned long,_findtextexw *)const 2988 int CRichEditView::FindTextW(_AFX_RICHEDIT_STATE *) 2989 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 2990 CWnd * CWnd::FindWindowExW(HWND__ *,HWND__ *,wchar_t const *,wchar_t const *) 2991 CWnd * CWnd::FindWindowW(wchar_t const *,wchar_t const *) 2992 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 2993 int COleClientItem::FinishCreate(long) 2994 void COleControl::FireClick() 2995 void COleControl::FireDblClick() 2996 void COleControl::FireError(long,wchar_t const *,unsigned int) 2997 void COleControl::FireEvent(long,unsigned char *,...) 2998 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2999 void COleControl::FireEventV(long,unsigned char *,char *) 3000 void COleControl::FireKeyDown(unsigned short *,short) 3001 void COleControl::FireKeyPress(unsigned short *) 3002 void COleControl::FireKeyUp(unsigned short *,short) 3003 void COleControl::FireMouseDown(short,short,long,long) 3004 void COleControl::FireMouseMove(short,short,long,long) 3005 void COleControl::FireMouseUp(short,short,long,long) 3006 void COleControl::FireReadyStateChange() 3007 void CRecordset::Fixups() 3008 int CWnd::FlashWindow(int) 3009 int CDC::FlattenPath() 3010 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3011 int CDC::FloodFill(int,int,unsigned long) 3012 void CArchive::Flush() 3013 void CDumpContext::Flush() 3014 void CFile::Flush() 3015 void CInternetFile::Flush() 3016 void CMemFile::Flush() 3017 void CMonikerFile::Flush() 3018 void COleStreamFile::Flush() 3019 void CSocketFile::Flush() 3020 void CStdioFile::Flush() 3021 void COleDataSource::FlushClipboard() 3022 int CRecordset::FlushResultSet() 3023 int CEdit::FmtLines(int) 3024 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3025 long CRichEditCtrl::FormatRange(_formatrange *,int) 3026 void COleControl::ForwardActivationMsg(tagMSG *) 3027 void CDC::FrameRect(tagRECT const *,CBrush *) 3028 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3029 void CAfxStringMgr::Free(ATL::CStringData *) 3030 void CDatabase::Free() 3031 void CFixedAlloc::Free(void *) 3032 void CFixedAllocNoSync::Free(void *) 3033 void CMemFile::Free(unsigned char *) 3034 void CSharedFile::Free(unsigned char *) 3035 void CFixedAlloc::FreeAll() 3036 void CFixedAllocNoSync::FreeAll() 3037 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3038 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3039 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3040 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3041 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3042 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3043 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3044 void CRecordset::FreeDataCache() 3045 void CPlex::FreeDataChain() 3046 void CByteArray::FreeExtra() 3047 void CDWordArray::FreeExtra() 3048 void CObArray::FreeExtra() 3049 void CPtrArray::FreeExtra() 3050 void CStringArray::FreeExtra() 3051 void CUIntArray::FreeExtra() 3052 void CWordArray::FreeExtra() 3053 void CObList::FreeNode(CObList::CNode *) 3054 void CPtrList::FreeNode(CPtrList::CNode *) 3055 void CStringList::FreeNode(CStringList::CNode *) 3056 void CRecordset::FreeRowset() 3057 void CThreadSlotData::FreeSlot(int) 3058 void CProperty::FreeValue() 3059 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3060 void COleControlContainer::FreezeAllEvents(int) 3061 void COleControlSite::FreezeEvents(int) 3062 long COleControl::XOleControl::FreezeEvents(int) 3063 int COleClientItem::FreezeLink() 3064 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3065 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3066 CBrush * CBrush::FromHandle(HBRUSH__ *) 3067 CDC * CDC::FromHandle(HDC__ *) 3068 CFont * CFont::FromHandle(HFONT__ *) 3069 CGdiObject * CGdiObject::FromHandle(void *) 3070 CObject * CHandleMap::FromHandle(void *) 3071 CImageList * CImageList::FromHandle(_IMAGELIST *) 3072 CMenu * CMenu::FromHandle(HMENU__ *) 3073 CPalette * CPalette::FromHandle(HPALETTE__ *) 3074 CPen * CPen::FromHandle(HPEN__ *) 3075 CRgn * CRgn::FromHandle(HRGN__ *) 3076 CSocket * CSocket::FromHandle(unsigned int) 3077 CWnd * CWnd::FromHandle(HWND__ *) 3078 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3079 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3080 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3081 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3082 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3083 CRuntime* CRuntimeClass::FromName(char const *) 3084 void * CProperty::Get(unsigned long *) 3085 void * CProperty::Get() 3086 void * CPropertySection::Get(unsigned long) 3087 void * CPropertySection::Get(unsigned long,unsigned long *) 3088 void * CPropertySet::Get(_GUID,unsigned long) 3089 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3090 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3091 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3092 long CWnd::get_accChildCount(long *) 3093 long CWnd::XAccessible::get_accChildCount(long *) 3094 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3095 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3096 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3097 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3098 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3099 long CWnd::get_accFocus(tagVARIANT *) 3100 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3101 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3102 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3103 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3104 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3105 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3106 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3107 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3108 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3109 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3110 long CWnd::get_accParent(IDispatch * *) 3111 long CWnd::XAccessible::get_accParent(IDispatch * *) 3112 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3113 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3114 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3115 long CWnd::get_accSelection(tagVARIANT *) 3116 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3117 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3118 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3119 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3120 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3121 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3122 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3123 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3124 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3125 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3126 long CWnd::GetAccessibleChildCount() 3127 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3128 unsigned long COleControl::GetActivationPolicy() 3129 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3130 CDocument * CFrameWnd::GetActiveDocument() 3131 CFrameWnd * CFrameWnd::GetActiveFrame() 3132 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 3133 int CPropertySheet::GetActiveIndex()const 3134 CPropertyPage * CPropertySheet::GetActivePage()const 3135 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3136 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3137 CView * CFrameWnd::GetActiveView()const 3138 CView * COleClientItem::GetActiveView()const 3139 IOleDocumentView * COleDocObjectItem::GetActiveView()const 3140 CRichEditView * CRichEditCntrItem::GetActiveView() 3141 CWnd * CWnd::GetActiveWindow() 3142 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 3143 int CIPAddressCtrl::GetAddress(unsigned long &) 3144 int CHtmlView::GetAddressBar()const 3145 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3146 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 3147 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3148 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3149 int CToolBarCtrl::GetAnchorHighlight()const 3150 int CListBox::GetAnchorIndex()const 3151 short COleControl::GetAppearance() 3152 IDispatch * CHtmlView::GetApplication()const 3153 HKEY__ * CWinApp::GetAppRegistryKey() 3154 int CDC::GetArcDirection()const 3155 CSize CDC::GetAspectRatioFilter()const 3156 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3157 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3158 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3159 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3160 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3161 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3162 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3163 unsigned char CByteArray::GetAt(int)const 3164 unsigned long CDWordArray::GetAt(int)const 3165 CObject * CObArray::GetAt(int)const 3166 CObject * & CObList::GetAt(__POSITION *) 3167 CObject const * & CObList::GetAt(__POSITION *)const 3168 void * CPtrArray::GetAt(int)const 3169 void * & CPtrList::GetAt(__POSITION *) 3170 void const * & CPtrList::GetAt(__POSITION *)const 3171 ATL::CStringT > > const & CStringArray::GetAt(int)const 3172 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3173 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3174 unsigned int CUIntArray::GetAt(int)const 3175 unsigned short CWordArray::GetAt(int)const 3176 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3177 unsigned long COleControl::GetBackColor() 3178 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3179 unsigned int CReBarCtrl::GetBandCount()const 3180 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOW *)const 3181 unsigned int CReBarCtrl::GetBarHeight()const 3182 void CControlBar::GetBarInfo(CControlBarInfo *) 3183 void CDockBar::GetBarInfo(CControlBarInfo *) 3184 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3185 unsigned long CControlBar::GetBarStyle() 3186 unsigned int CSpinButtonCtrl::GetBase()const 3187 unsigned long CAsyncMonikerFile::GetBindInfo()const 3188 IBinding * CAsyncMonikerFile::GetBinding()const 3189 int CBitmap::GetBitmap(tagBITMAP *) 3190 HBITMAP__ * CButton::GetBitmap()const 3191 HBITMAP__ * CStatic::GetBitmap()const 3192 int CToolBarCtrl::GetBitmap(int)const 3193 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3194 CSize CBitmap::GetBitmapDimension()const 3195 unsigned int CToolBarCtrl::GetBitmapFlags()const 3196 int CHeaderCtrl::GetBitmapMargin()const 3197 unsigned long CDC::GetBkColor()const 3198 unsigned long CImageList::GetBkColor()const 3199 unsigned long CListCtrl::GetBkColor()const 3200 unsigned long CReBarCtrl::GetBkColor()const 3201 unsigned long CTreeCtrl::GetBkColor()const 3202 int CListCtrl::GetBkImage(tagLVBKIMAGEW *)const 3203 int CDC::GetBkMode()const 3204 void * CBlobProperty::GetBlob() 3205 void CRecordset::GetBookmark(CDBVariant &) 3206 unsigned long CDatabase::GetBookmarkPersistence()const 3207 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3208 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3209 CRect CControlBar::GetBorders()const 3210 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3211 int CStatusBarCtrl::GetBorders(int *)const 3212 short COleControl::GetBorderStyle() 3213 long CDataSourceControl::GetBoundClientRow() 3214 int CRecordset::GetBoundFieldIndex(void *) 3215 int CRecordset::GetBoundParamIndex(void *) 3216 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3217 CPoint CDC::GetBrushOrg()const 3218 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOW *)const 3219 CWnd * CSliderCtrl::GetBuddy(int)const 3220 CWnd * CSpinButtonCtrl::GetBuddy()const 3221 unsigned int CEditView::GetBufferLength()const 3222 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3223 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3224 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3225 int CHtmlView::GetBusy()const 3226 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3227 int CToolBarCtrl::GetButtonCount()const 3228 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3229 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOW *)const 3230 unsigned long CToolBarCtrl::GetButtonSize()const 3231 unsigned int CButton::GetButtonStyle()const 3232 unsigned int CToolBar::GetButtonStyle(int)const 3233 ATL::CStringT > > CToolBar::GetButtonText(int)const 3234 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3235 void COleSafeArray::GetByteArray(CByteArray &) 3236 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3237 unsigned short CPropertySet::GetByteOrder() 3238 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3239 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3240 unsigned int CListCtrl::GetCallbackMask()const 3241 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3242 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3243 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3244 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3245 CWnd * COleControl::GetCapture() 3246 CWnd * CWnd::GetCapture() 3247 long COleControlSite::XOleIPSite::GetCapture() 3248 int CListBox::GetCaretIndex()const 3249 CPoint CWnd::GetCaretPos() 3250 void CSliderCtrl::GetChannelRect(tagRECT *)const 3251 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABC *)const 3252 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABCFLOAT *)const 3253 unsigned long CDC::GetCharacterPlacementW(ATL::CStringT > > &,int,tagGCP_RESULTSW *,unsigned long)const 3254 unsigned long CDC::GetCharacterPlacementW(wchar_t const *,int,int,tagGCP_RESULTSW *,unsigned long)const 3255 void CFontDialog::GetCharFormat(_charformatw &)const 3256 CHARFORMAT2W & CRichEditView::GetCharFormatSelection() 3257 CPoint CRichEditCtrl::GetCharPos(long)const 3258 int CDC::GetCharWidthW(unsigned int,unsigned int,int *)const 3259 int CDC::GetCharWidthW(unsigned int,unsigned int,float *)const 3260 int CButton::GetCheck()const 3261 int CCheckListBox::GetCheck(int) 3262 int CListCtrl::GetCheck(int)const 3263 int CTreeCtrl::GetCheck(_TREEITEM *)const 3264 int CWnd::GetCheckedRadioButton(int,int) 3265 unsigned int CCheckListBox::GetCheckStyle() 3266 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3267 long CBlobProperty::GetClassID(_GUID *) 3268 void COleClientItem::GetClassID(_GUID *)const 3269 _GUID const & COleConvertDialog::GetClassID()const 3270 _GUID const & COleInsertDialog::GetClassID()const 3271 _GUID const & COleObjectFactory::GetClassID()const 3272 _GUID CPropertySet::GetClassID() 3273 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3274 long COleControl::XPersistMemory::GetClassID(_GUID *) 3275 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3276 long COleControl::XPersistStorage::GetClassID(_GUID *) 3277 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3278 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3279 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 3280 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3281 void COleControl::GetClientOffset(long *,long *)const 3282 void COleControl::GetClientRect(tagRECT *)const 3283 void CWnd::GetClientRect(tagRECT *)const 3284 IOleClientSite * COleClientItem::GetClientSite() 3285 IOleClientSite * COleControl::GetClientSite() 3286 IOleClientSite * COleServerDoc::GetClientSite()const 3287 IOleClientSite * CRichEditCntrItem::GetClientSite() 3288 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3289 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3290 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3291 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3292 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3293 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3294 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3295 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3296 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3297 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3298 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3299 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3300 COleDataSource * COleDataSource::GetClipboardOwner() 3301 CWnd * CWnd::GetClipboardOwner() 3302 CWnd * CWnd::GetClipboardViewer() 3303 int CDC::GetClipBox(tagRECT *)const 3304 int CMetaFileDC::GetClipBox(tagRECT *)const 3305 unsigned long CColorDialog::GetColor()const 3306 unsigned long CFontDialog::GetColor()const 3307 unsigned long CMonthCalCtrl::GetColor(int)const 3308 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3309 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 3310 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3311 int CListCtrl::GetColumn(int,tagLVCOLUMNW *)const 3312 int CSplitterWnd::GetColumnCount()const 3313 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3314 int CListCtrl::GetColumnOrderArray(int *,int) 3315 int CListCtrl::GetColumnWidth(int)const 3316 CComboBox * CComboBoxEx::GetComboBoxCtrl() 3317 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 3318 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 3319 ATL::CStringT > > const & CDatabase::GetConnect()const 3320 void CDatabase::GetConnectInfo() 3321 int CConnectionPoint::GetConnectionCount() 3322 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3323 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3324 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3325 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 3326 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 3327 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3328 CPtrArray const * CConnectionPoint::GetConnections() 3329 IConnectionPointContainer * CConnectionPoint::GetContainer() 3330 IDispatch * CHtmlView::GetContainer()const 3331 IOleItemContainer * COleDocument::GetContainer() 3332 IOleItemContainer * COleLinkingDoc::GetContainer() 3333 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3334 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3335 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3336 unsigned long CInternetConnection::GetContext()const 3337 unsigned long CInternetFile::GetContext()const 3338 unsigned long CInternetSession::GetContext()const 3339 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3340 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3341 COleControl * CDataPathProperty::GetControl() 3342 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3343 COleControlContainer * CWnd::GetControlContainer() 3344 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 3345 unsigned long COleControl::GetControlFlags() 3346 void COleControlSite::GetControlInfo() 3347 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3348 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3349 IUnknown * CCmdTarget::GetControllingUnknown() 3350 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3351 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 3352 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 3353 void COleControl::GetControlSize(int *,int *) 3354 int COlePropertyPage::GetControlStatus(unsigned int) 3355 IUnknown * CWnd::GetControlUnknown() 3356 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3357 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 3358 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 3359 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 3360 int CPrintDialog::GetCopies()const 3361 int CPrintDialogEx::GetCopies()const 3362 int CByteArray::GetCount()const 3363 int CComboBox::GetCount()const 3364 int CControlBar::GetCount()const 3365 int CDWordArray::GetCount()const 3366 int CListBox::GetCount()const 3367 int CMapPtrToPtr::GetCount()const 3368 int CMapPtrToWord::GetCount()const 3369 int CMapStringToOb::GetCount()const 3370 int CMapStringToPtr::GetCount()const 3371 int CMapStringToString::GetCount()const 3372 int CMapWordToOb::GetCount()const 3373 int CMapWordToPtr::GetCount()const 3374 int CObArray::GetCount()const 3375 int CObList::GetCount()const 3376 unsigned long CPropertySection::GetCount() 3377 unsigned long CPropertySet::GetCount() 3378 int CPtrArray::GetCount()const 3379 int CPtrList::GetCount()const 3380 int CStringArray::GetCount()const 3381 int CStringList::GetCount()const 3382 unsigned int CTreeCtrl::GetCount()const 3383 int CUIntArray::GetCount()const 3384 int CWordArray::GetCount()const 3385 int CListCtrl::GetCountPerPage()const 3386 int CFileFind::GetCreationTime(ATL::CTime &)const 3387 int CFileFind::GetCreationTime(_FILETIME *)const 3388 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3389 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3390 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3391 int CTabCtrl::GetCurFocus()const 3392 CBitmap * CDC::GetCurrentBitmap()const 3393 CBrush * CDC::GetCurrentBrush()const 3394 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3395 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 3396 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 3397 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 3398 CFont * CDC::GetCurrentFont()const 3399 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 3400 tagMSG const * CWnd::GetCurrentMessage() 3401 CPalette * CDC::GetCurrentPalette()const 3402 CPen * CDC::GetCurrentPen()const 3403 CPoint CDC::GetCurrentPosition()const 3404 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3405 int CComboBox::GetCurSel()const 3406 int CListBox::GetCurSel()const 3407 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3408 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3409 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3410 int CTabCtrl::GetCurSel()const 3411 HICON__ * CButton::GetCursor() 3412 IUnknown * CDataBoundProperty::GetCursor() 3413 IUnknown * CDataSourceControl::GetCursor() 3414 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3415 HICON__ * CStatic::GetCursor() 3416 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3417 int CDatabase::GetCursorCommitBehavior()const 3418 int CDatabase::GetCursorRollbackBehavior()const 3419 unsigned char * CByteArray::GetData() 3420 unsigned char const * CByteArray::GetData()const 3421 unsigned long * CDWordArray::GetData() 3422 unsigned long const * CDWordArray::GetData()const 3423 CObject * * CObArray::GetData() 3424 CObject const * * CObArray::GetData()const 3425 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3426 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3427 void * * CPtrArray::GetData() 3428 void const * * CPtrArray::GetData()const 3429 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3430 ATL::CStringT > > * CStringArray::GetData() 3431 ATL::CStringT > > const * CStringArray::GetData()const 3432 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3433 unsigned int * CUIntArray::GetData() 3434 unsigned int const * CUIntArray::GetData()const 3435 unsigned short * CWordArray::GetData() 3436 unsigned short const * CWordArray::GetData()const 3437 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3438 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3439 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3440 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3441 ATL::CStringT > > CDatabase::GetDatabaseName()const 3442 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3443 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3444 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3445 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3446 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3447 CNoTrackObject * CThreadLocalObject::GetDataNA() 3448 IDataObject * COleServerItem::GetDataObject() 3449 COleControl::CControlDataSource * COleControl::GetDataSource() 3450 COleDataSource * COleServerItem::GetDataSource() 3451 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3452 CDC * CWnd::GetDC() 3453 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3454 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3455 HACCEL__ * CDocument::GetDefaultAccelerator() 3456 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3457 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3458 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 3459 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 3460 ATL::CStringT > > CRecordset::GetDefaultConnect() 3461 short CRecordset::GetDefaultFieldType(short) 3462 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3463 HMENU__ * CDocument::GetDefaultMenu() 3464 HMENU__ * COleServerDoc::GetDefaultMenu() 3465 int CPrintDialog::GetDefaults() 3466 int CPrintDialogEx::GetDefaults() 3467 ATL::CStringT > > CRecordset::GetDefaultSQL() 3468 unsigned long COccManager::GetDefBtnCode(CWnd *) 3469 unsigned long COleControlSite::GetDefBtnCode() 3470 unsigned long CDialog::GetDefID()const 3471 int CToolTipCtrl::GetDelayTime(unsigned long)const 3472 int CDumpContext::GetDepth()const 3473 CWnd * CWnd::GetDescendantWindow(int,int)const 3474 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3475 CWnd * CWnd::GetDesktopWindow() 3476 int CDC::GetDeviceCaps(int)const 3477 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 3478 ATL::CStringT > > CPrintDialog::GetDeviceName()const 3479 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 3480 CPoint CScrollView::GetDeviceScrollPosition()const 3481 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3482 _devicemodeW * CPageSetupDialog::GetDevMode()const 3483 _devicemodeW * CPrintDialog::GetDevMode()const 3484 _devicemodeW * CPrintDialogEx::GetDevMode()const 3485 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3486 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3487 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3488 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3489 DHtmlEventMapEntry const * GetDHtmlEventMap() 3490 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 3491 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 3492 unsigned long COleSafeArray::GetDim() 3493 CImageList * CToolBarCtrl::GetDisabledImageList()const 3494 int CCmdTarget::GetDispatchIID(_GUID *) 3495 int COleControl::GetDispatchIID(_GUID *) 3496 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3497 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3498 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3499 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName() 3500 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 3501 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3502 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3503 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3504 int COleControlSite::GetDlgCtrlID()const 3505 int CWnd::GetDlgCtrlID()const 3506 CWnd * COleControlContainer::GetDlgItem(int)const 3507 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3508 CWnd * CWnd::GetDlgItem(int)const 3509 void CWnd::GetDlgItem(int,HWND__ * *)const 3510 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3511 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3512 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 3513 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 3514 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 3515 CFrameWnd * COleIPFrameWnd::GetDocFrame() 3516 CDockBar * CDockContext::GetDockBar(unsigned long) 3517 CControlBar * CDockBar::GetDockedControlBar(int)const 3518 int CDockBar::GetDockedCount()const 3519 int CDockBar::GetDockedVisibleCount()const 3520 CFrameWnd * CControlBar::GetDockingFrame()const 3521 void CFrameWnd::GetDockState(CDockState &)const 3522 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3523 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3524 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 3525 CDocTemplate * CDocument::GetDocTemplate()const 3526 CDocument * CDocItem::GetDocument()const 3527 COleDocument * COleClientItem::GetDocument()const 3528 COleServerDoc * COleServerItem::GetDocument()const 3529 CRichEditDoc * CRichEditCntrItem::GetDocument() 3530 CRichEditDoc * CRichEditView::GetDocument()const 3531 CDocument * CView::GetDocument()const 3532 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3533 int CDocManager::GetDocumentCount() 3534 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3535 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 3536 enum tagDVASPECT COleClientItem::GetDrawAspect()const 3537 enum tagDVASPECT COleConvertDialog::GetDrawAspect()const 3538 enum tagDVASPECT COleInsertDialog::GetDrawAspect()const 3539 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect()const 3540 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 3541 ATL::CStringT > > CPrintDialog::GetDriverName()const 3542 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 3543 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 3544 void CComboBox::GetDroppedControlRect(tagRECT *)const 3545 int CComboBox::GetDroppedState()const 3546 int CComboBox::GetDroppedWidth()const 3547 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 3548 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 3549 IDropTarget * CReBarCtrl::GetDropTarget()const 3550 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 3551 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 3552 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3553 IUnknown * CWnd::GetDSCCursor() 3554 CEdit * CListCtrl::GetEditControl()const 3555 CEdit * CTreeCtrl::GetEditControl()const 3556 CEdit * CComboBoxEx::GetEditCtrl() 3557 CEdit & CEditView::GetEditCtrl()const 3558 unsigned long CComboBox::GetEditSel()const 3559 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 3560 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 3561 void COleSafeArray::GetElement(long *,void *) 3562 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 3563 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 3564 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 3565 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 3566 unsigned long COleSafeArray::GetElemSize() 3567 COleServerItem * COleServerDoc::GetEmbeddedItem() 3568 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3569 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3570 int COleControl::GetEnabled() 3571 HENHMETAFILE__ * CStatic::GetEnhMetaFileW()const 3572 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3573 int CPalette::GetEntryCount() 3574 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 3575 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3576 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3577 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3578 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3579 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3580 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3581 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3582 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3583 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 3584 int COleControlSite::GetEventIID(_GUID *) 3585 AFX_EVENTMAP const * COleControl::GetEventMap()const 3586 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 3587 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 3588 long CRichEditCtrl::GetEventMask()const 3589 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3590 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3591 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 3592 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 3593 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 3594 unsigned long COleControlSite::GetExStyle()const 3595 unsigned long CWnd::GetExStyle()const 3596 IDispatch * COleControl::GetExtendedControl() 3597 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3598 unsigned long CComboBoxEx::GetExtendedStyle()const 3599 unsigned long CListCtrl::GetExtendedStyle() 3600 unsigned long CTabCtrl::GetExtendedStyle() 3601 unsigned long CToolBarCtrl::GetExtendedStyle()const 3602 int CComboBox::GetExtendedUI()const 3603 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3604 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3605 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3606 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3607 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3608 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3609 long CBrowserControlSite::GetExternal(IDispatch * *) 3610 long CDHtmlDialog::GetExternal(IDispatch * *) 3611 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 3612 int CPen::GetExtLogPen(tagEXTLOGPEN *) 3613 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3614 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3615 ATL::CStringT > > CFontDialog::GetFaceName()const 3616 short CRecordset::GetFieldIndexByName(wchar_t const *) 3617 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3618 unsigned char CRecordset::GetFieldStatus(unsigned long) 3619 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3620 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3621 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3622 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 3623 CFile * CArchive::GetFile()const 3624 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 3625 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 3626 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3627 ATL::CStringT > > CFileDialog::GetFileExt()const 3628 ATL::CStringT > > CFile::GetFileName()const 3629 ATL::CStringT > > CFileDialog::GetFileName()const 3630 ATL::CStringT > > CFileFind::GetFileName()const 3631 ATL::CStringT > > CGopherFileFind::GetFileName()const 3632 ATL::CStringT > > COleChangeSourceDialog::GetFileName() 3633 ATL::CStringT > > CFile::GetFilePath()const 3634 ATL::CStringT > > CFileFind::GetFilePath()const 3635 ATL::CStringT > > CGopherFileFind::GetFilePath()const 3636 ATL::CStringT > > CFile::GetFileTitle()const 3637 ATL::CStringT > > CFileDialog::GetFileTitle()const 3638 ATL::CStringT > > CFileFind::GetFileTitle()const 3639 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 3640 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3641 ATL::CStringT > > CFileFind::GetFileURL()const 3642 ATL::CStringT > > CFtpFileFind::GetFileURL()const 3643 ATL::CStringT > > CGopherFileFind::GetFileURL()const 3644 ATL::CStringT > > CHttpFile::GetFileURL()const 3645 ATL::CStringT > > CFindReplaceDialog::GetFindString()const 3646 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3647 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3648 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3649 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3650 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3651 CFrameWnd * COleDocument::GetFirstFrame() 3652 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 3653 __POSITION * CDocument::GetFirstViewPosition()const 3654 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 3655 int CEdit::GetFirstVisibleLine()const 3656 int CRichEditCtrl::GetFirstVisibleLine()const 3657 CWnd * COleControl::GetFocus() 3658 CWnd * CWnd::GetFocus() 3659 long COleControlSite::XOleIPSite::GetFocus() 3660 ATL::CStringT > > CFileDialog::GetFolderPath()const 3661 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3662 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3663 IFontDisp * COleControl::GetFont() 3664 CFont * CWnd::GetFont()const 3665 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 3666 IFontDisp * CFontHolder::GetFontDispatch() 3667 HFONT__ * CFontHolder::GetFontHandle(long,long) 3668 HFONT__ * CFontHolder::GetFontHandle() 3669 unsigned long CDC::GetFontLanguageInfo()const 3670 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3671 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 3672 unsigned long COleControl::GetForeColor() 3673 CWnd * CWnd::GetForegroundWindow() 3674 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc()const 3675 _GUID CPropertySection::GetFormatID() 3676 unsigned short CPropertySet::GetFormatVersion() 3677 int CPrintDialog::GetFromPage()const 3678 unsigned int CPrintInfo::GetFromPage()const 3679 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix() 3680 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 3681 ATL::CStringT > > CHtmlView::GetFullName()const 3682 int CHtmlView::GetFullScreen()const 3683 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3684 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3685 unsigned long CDC::GetGlyphOutlineW(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 3686 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 3687 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3688 CBrush * CDC::GetHalftoneBrush() 3689 void * CEdit::GetHandle()const 3690 unsigned int CRectTracker::GetHandleMask()const 3691 void CRectTracker::GetHandleRect(int,CRect *)const 3692 int CRectTracker::GetHandleSize(tagRECT const *)const 3693 unsigned int CMapPtrToPtr::GetHashTableSize()const 3694 unsigned int CMapPtrToWord::GetHashTableSize()const 3695 unsigned int CMapStringToOb::GetHashTableSize()const 3696 unsigned int CMapStringToPtr::GetHashTableSize()const 3697 unsigned int CMapStringToString::GetHashTableSize()const 3698 unsigned int CMapWordToOb::GetHashTableSize()const 3699 unsigned int CMapWordToPtr::GetHashTableSize()const 3700 CObject * & CObList::GetHead() 3701 CObject const * & CObList::GetHead()const 3702 void * & CPtrList::GetHead() 3703 void const * & CPtrList::GetHead()const 3704 ATL::CStringT > > & CStringList::GetHead() 3705 ATL::CStringT > > const & CStringList::GetHead()const 3706 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 3707 __POSITION * CObList::GetHeadPosition()const 3708 __POSITION * CPtrList::GetHeadPosition()const 3709 __POSITION * CStringList::GetHeadPosition()const 3710 long CHtmlView::GetHeight()const 3711 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3712 void CSplitterWnd::GetHitRect(int,CRect &) 3713 unsigned int CComboBox::GetHorizontalExtent()const 3714 int CListBox::GetHorizontalExtent()const 3715 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3716 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3717 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3718 HICON__ * CListCtrl::GetHotCursor() 3719 CImageList * CToolBarCtrl::GetHotImageList()const 3720 int CListCtrl::GetHotItem() 3721 int CToolBarCtrl::GetHotItem()const 3722 unsigned long CHotKeyCtrl::GetHotKey()const 3723 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3724 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 3725 unsigned long CListCtrl::GetHoverTime()const 3726 IDispatch * CHtmlView::GetHtmlDocument()const 3727 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 3728 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 3729 unsigned int COleControl::GetHwnd() 3730 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3731 HICON__ * CButton::GetIcon()const 3732 HICON__ * CStatic::GetIcon()const 3733 HICON__ * CWnd::GetIcon(int)const 3734 HICON__ * COleClientItem::GetIconFromRegistry()const 3735 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3736 void * COleChangeIconDialog::GetIconicMetafile()const 3737 void * COleClientItem::GetIconicMetafile() 3738 void * COleConvertDialog::GetIconicMetafile()const 3739 void * COleInsertDialog::GetIconicMetafile()const 3740 void * COlePasteSpecialDialog::GetIconicMetafile()const 3741 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3742 unsigned long CProperty::GetID() 3743 int CPropertySection::GetID(wchar_t const *,unsigned long *) 3744 IDataObject * COleDataObject::GetIDataObject(int) 3745 IDispatch * CCmdTarget::GetIDispatch(int) 3746 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3747 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3748 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3749 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3750 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3751 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3752 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3753 _GUID const & COleControl::XEventConnPt::GetIID() 3754 int CImageList::GetImageCount()const 3755 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 3756 CImageList * CComboBoxEx::GetImageList()const 3757 CImageList * CHeaderCtrl::GetImageList()const 3758 CImageList * CListCtrl::GetImageList(int)const 3759 CImageList * CReBarCtrl::GetImageList()const 3760 CImageList * CTabCtrl::GetImageList()const 3761 CImageList * CToolBarCtrl::GetImageList()const 3762 CImageList * CTreeCtrl::GetImageList(unsigned int)const 3763 unsigned int CTreeCtrl::GetIndent()const 3764 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3765 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3766 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3767 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3768 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 3769 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 3770 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3771 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3772 CWnd * COleClientItem::GetInPlaceWindow() 3773 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 3774 unsigned long CToolBarCtrl::GetInsertMarkColor()const 3775 unsigned long CTreeCtrl::GetInsertMarkColor()const 3776 void CSplitterWnd::GetInsideRect(CRect &)const 3777 IUnknown * CCmdTarget::GetInterface(void const *) 3778 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3779 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3780 IUnknown * COleControl::GetInterfaceHook(void const *) 3781 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3782 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3783 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3784 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 3785 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3786 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3787 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3788 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3789 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 3790 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3791 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3792 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3793 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3794 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3795 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 3796 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3797 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3798 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 3799 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 3800 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 3801 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 3802 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 3803 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 3804 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 3805 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 3806 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 3807 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 3808 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 3809 int CHeaderCtrl::GetItem(int,_HD_ITEMW *)const 3810 int CListCtrl::GetItem(tagLVITEMW *)const 3811 int CTabCtrl::GetItem(int,tagTCITEMW *)const 3812 int CTreeCtrl::GetItem(tagTVITEMW *)const 3813 void COleServerDoc::GetItemClipRect(tagRECT *)const 3814 int CHeaderCtrl::GetItemCount()const 3815 int CListCtrl::GetItemCount()const 3816 int CTabCtrl::GetItemCount()const 3817 unsigned long CComboBox::GetItemData(int)const 3818 unsigned long CListBox::GetItemData(int)const 3819 unsigned long CListCtrl::GetItemData(int)const 3820 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 3821 void * CComboBox::GetItemDataPtr(int)const 3822 void * CListBox::GetItemDataPtr(int)const 3823 int CComboBox::GetItemHeight(int)const 3824 int CListBox::GetItemHeight(int)const 3825 short CTreeCtrl::GetItemHeight()const 3826 unsigned int CStatusBar::GetItemID(int)const 3827 unsigned int CToolBar::GetItemID(int)const 3828 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 3829 ATL::CStringT > > COleChangeSourceDialog::GetItemName() 3830 void COleClientItem::GetItemName(wchar_t *)const 3831 ATL::CStringT > > const & COleServerItem::GetItemName()const 3832 int CListCtrl::GetItemPosition(int,tagPOINT *)const 3833 void COleServerDoc::GetItemPosition(tagRECT *)const 3834 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 3835 int CListBox::GetItemRect(int,tagRECT *)const 3836 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 3837 void CStatusBar::GetItemRect(int,tagRECT *)const 3838 int CTabCtrl::GetItemRect(int,tagRECT *)const 3839 void CToolBar::GetItemRect(int,tagRECT *)const 3840 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 3841 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 3842 unsigned int CListCtrl::GetItemState(int,unsigned int)const 3843 unsigned int COleClientItem::GetItemState()const 3844 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 3845 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 3846 void COleClientItem::GetItemStorage() 3847 void COleClientItem::GetItemStorageCompound() 3848 void COleClientItem::GetItemStorageFlat() 3849 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 3850 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 3851 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 3852 int CDC::GetKerningPairsW(int,tagKERNINGPAIR *)const 3853 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 3854 int CFileFind::GetLastAccessTime(ATL::CTime &)const 3855 int CFileFind::GetLastAccessTime(_FILETIME *)const 3856 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 3857 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 3858 CWnd * CWnd::GetLastActivePopup()const 3859 int CAsyncSocket::GetLastError() 3860 unsigned int COleDialog::GetLastError()const 3861 long COleClientItem::GetLastStatus()const 3862 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 3863 int CFileFind::GetLastWriteTime(ATL::CTime &)const 3864 int CFileFind::GetLastWriteTime(_FILETIME *)const 3865 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 3866 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 3867 unsigned long CDC::GetLayout()const 3868 long CRecordset::GetLBFetchSize(long) 3869 void COleSafeArray::GetLBound(unsigned long,long *) 3870 long CRecordset::GetLBReallocSize(long) 3871 int CComboBox::GetLBText(int,wchar_t *)const 3872 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 3873 int CComboBox::GetLBTextLen(int)const 3874 long CHtmlView::GetLeft()const 3875 unsigned __int64 CFile::GetLength()const 3876 unsigned __int64 CFileFind::GetLength()const 3877 unsigned __int64 CGopherFileFind::GetLength()const 3878 unsigned __int64 CInternetFile::GetLength()const 3879 unsigned __int64 CMemFile::GetLength()const 3880 unsigned __int64 COleStreamFile::GetLength()const 3881 unsigned __int64 CSocketFile::GetLength()const 3882 unsigned __int64 CStdioFile::GetLength()const 3883 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 3884 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 3885 unsigned int CEdit::GetLimitText()const 3886 long CRichEditCtrl::GetLimitText()const 3887 int CEdit::GetLine(int,wchar_t *)const 3888 int CEdit::GetLine(int,wchar_t *,int)const 3889 int CRichEditCtrl::GetLine(int,wchar_t *)const 3890 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 3891 unsigned long CTreeCtrl::GetLineColor()const 3892 int CEdit::GetLineCount()const 3893 int CRichEditCtrl::GetLineCount()const 3894 int CSliderCtrl::GetLineSize()const 3895 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 3896 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 3897 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 3898 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 3899 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 3900 CPtrList * CPropertySection::GetList() 3901 CPtrList * CPropertySet::GetList() 3902 CListCtrl & CListView::GetListCtrl()const 3903 unsigned long CComboBox::GetLocale()const 3904 unsigned long CListBox::GetLocale()const 3905 ATL::CStringT > > CHtmlView::GetLocationName()const 3906 ATL::CStringT > > CHtmlView::GetLocationURL()const 3907 CGopherLocator CGopherFileFind::GetLocator()const 3908 int CGopherLocator::GetLocatorType(unsigned long &)const 3909 int CBrush::GetLogBrush(tagLOGBRUSH *) 3910 int CFont::GetLogFont(tagLOGFONTW *) 3911 int CPen::GetLogPen(tagLOGPEN *) 3912 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 3913 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 3914 long CFieldExchange::GetLongBinarySize(int) 3915 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3916 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3917 CFrameWnd * COleIPFrameWnd::GetMainFrame() 3918 CWnd * CWinThread::GetMainWnd() 3919 int CDC::GetMapMode()const 3920 void CToolTipCtrl::GetMargin(tagRECT *)const 3921 unsigned long CEdit::GetMargins()const 3922 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 3923 CRect CRichEditView::GetMargins()const 3924 int CConnectionPoint::GetMaxConnections() 3925 unsigned int CPrintInfo::GetMaxPage()const 3926 int CMonthCalCtrl::GetMaxSelCount()const 3927 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 3928 int CToolBarCtrl::GetMaxTextRows()const 3929 int CToolTipCtrl::GetMaxTipWidth()const 3930 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 3931 CMenu * CWnd::GetMenu()const 3932 int CHtmlView::GetMenuBar()const 3933 unsigned long CMenu::GetMenuContextHelpId()const 3934 unsigned int CMenu::GetMenuItemCount()const 3935 unsigned int CMenu::GetMenuItemID(int)const 3936 int CMenu::GetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 3937 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 3938 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 3939 int CMenu::GetMenuStringW(unsigned int,wchar_t *,int,unsigned int)const 3940 CWnd * CFrameWnd::GetMessageBar() 3941 CWnd * CMDIChildWnd::GetMessageBar() 3942 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 3943 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 3944 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 3945 AFX_MSGMAP const * CControlBar::GetMessageMap()const 3946 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 3947 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 3948 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 3949 AFX_MSGMAP const * CDialog::GetMessageMap()const 3950 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 3951 AFX_MSGMAP const * CDockBar::GetMessageMap()const 3952 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 3953 AFX_MSGMAP const * CDocument::GetMessageMap()const 3954 AFX_MSGMAP const * CEditView::GetMessageMap()const 3955 AFX_MSGMAP const * CFormView::GetMessageMap()const 3956 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 3957 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 3958 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 3959 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 3960 AFX_MSGMAP const * CListView::GetMessageMap()const 3961 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 3962 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 3963 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 3964 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 3965 AFX_MSGMAP const * COleControl::GetMessageMap()const 3966 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 3967 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 3968 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 3969 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 3970 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 3971 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 3972 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 3973 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 3974 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 3975 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 3976 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 3977 AFX_MSGMAP const * CReBar::GetMessageMap()const 3978 AFX_MSGMAP const * CRecordView::GetMessageMap()const 3979 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 3980 AFX_MSGMAP const * CScrollView::GetMessageMap()const 3981 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 3982 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 3983 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 3984 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 3985 AFX_MSGMAP const * CToolBar::GetMessageMap()const 3986 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 3987 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 3988 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 3989 AFX_MSGMAP const * CTreeView::GetMessageMap()const 3990 AFX_MSGMAP const * CView::GetMessageMap()const 3991 AFX_MSGMAP const * CWinApp::GetMessageMap()const 3992 AFX_MSGMAP const * CWnd::GetMessageMap()const 3993 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 3994 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 3995 long CDataSourceControl::GetMetaData() 3996 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3997 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3998 unsigned int CPrintInfo::GetMinPage()const 3999 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4000 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4001 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4002 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4003 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4004 float CDC::GetMiterLimit()const 4005 int CEdit::GetModify()const 4006 int CRichEditCtrl::GetModify()const 4007 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4008 IMoniker * CMonikerFile::GetMoniker()const 4009 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4010 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4011 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4012 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4013 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4014 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4015 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4016 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4017 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4018 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4019 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4020 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl()const 4021 CFont * CDateTimeCtrl::GetMonthCalFont()const 4022 int CMonthCalCtrl::GetMonthDelta()const 4023 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4024 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4025 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4026 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4027 unsigned long CDC::GetNearestColor(unsigned long)const 4028 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4029 unsigned long COleClientItem::GetNewItemNumber() 4030 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4031 CDataBoundProperty * CDataBoundProperty::GetNext() 4032 CObject * & CObList::GetNext(__POSITION * &) 4033 CObject const * & CObList::GetNext(__POSITION * &)const 4034 void * & CPtrList::GetNext(__POSITION * &) 4035 void const * & CPtrList::GetNext(__POSITION * &)const 4036 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4037 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4038 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4039 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4040 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4041 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4042 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4043 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4044 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4045 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4046 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4047 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4048 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4049 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4050 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4051 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4052 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4053 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4054 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4055 int COleDataObject::GetNextFormat(tagFORMATETC *) 4056 int CListCtrl::GetNextItem(int,int)const 4057 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4058 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4059 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4060 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4061 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4062 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4063 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4064 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4065 CView * CDocument::GetNextView(__POSITION * &)const 4066 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4067 CWnd * CWnd::GetNextWindow(unsigned int)const 4068 ATL::CStringData * CAfxStringMgr::GetNilString() 4069 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4070 void CCmdTarget::GetNotSupported() 4071 void COleControl::GetNotSupported() 4072 unsigned int CListCtrl::GetNumberOfWorkAreas()const 4073 unsigned int CSliderCtrl::GetNumTics()const 4074 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4075 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4076 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4077 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 4078 unsigned int CArchive::GetObjectSchema() 4079 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4080 unsigned int CGdiObject::GetObjectType()const 4081 int CGdiObject::GetObjectW(int,void *)const 4082 ATL::CStringT > > CHttpFile::GetObjectW()const 4083 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4084 short CRecordset::GetODBCFieldCount()const 4085 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4086 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 4087 int CHtmlView::GetOffline()const 4088 tagOFNW & CFileDialog::GetOFN() 4089 tagOFNW const & CFileDialog::GetOFN()const 4090 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4091 IOleObject * COleServerItem::GetOleObject() 4092 unsigned long COleSafeArray::GetOneDimSize() 4093 CWnd * CWnd::GetOpenClipboardWindow() 4094 int CDocManager::GetOpenDocumentCount() 4095 int CWinApp::GetOpenDocumentCount() 4096 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4097 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4098 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4099 unsigned int CRichEditCtrl::GetOptions()const 4100 int CHeaderCtrl::GetOrderArray(int *,int) 4101 int CListCtrl::GetOrigin(tagPOINT *)const 4102 unsigned long CPropertySet::GetOSVersion() 4103 CWnd * COleControl::GetOuterWindow()const 4104 unsigned int CDC::GetOutlineTextMetricsW(unsigned int,_OUTLINETEXTMETRICW *)const 4105 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4106 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4107 CSize CDC::GetOutputTabbedTextExtent(wchar_t const *,int,int,int *)const 4108 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4109 CSize CDC::GetOutputTextExtent(wchar_t const *,int)const 4110 int CDC::GetOutputTextMetrics(tagTEXTMETRICW *)const 4111 CWnd * CWnd::GetOwner()const 4112 CPropertyPage * CPropertySheet::GetPage(int)const 4113 int COleDocObjectItem::GetPageCount(long *,long *) 4114 int CPropertySheet::GetPageCount()const 4115 int CPropertySheet::GetPageIndex(CPropertyPage *) 4116 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4117 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4118 CRect CRichEditView::GetPageRect()const 4119 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4120 IPropertyPageSite * COlePropertyPage::GetPageSite() 4121 int CSliderCtrl::GetPageSize()const 4122 CPalette * CReBarCtrl::GetPalette()const 4123 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4124 CWnd * CSplitterWnd::GetPane(int,int)const 4125 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4126 unsigned int CStatusBar::GetPaneStyle(int)const 4127 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4128 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4129 CSize CPageSetupDialog::GetPaperSize()const 4130 CSize CRichEditView::GetPaperSize()const 4131 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4132 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4133 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 4134 CWnd * CWnd::GetParent()const 4135 IDispatch * CHtmlView::GetParentBrowser()const 4136 CFrameWnd * CWnd::GetParentFrame()const 4137 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4138 CWnd * CWnd::GetParentOwner()const 4139 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4140 int CStatusBarCtrl::GetParts(int,int *)const 4141 wchar_t CEdit::GetPasswordChar()const 4142 int COlePasteSpecialDialog::GetPasteIndex()const 4143 ATL::CStringT > > CDataPathProperty::GetPath()const 4144 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4145 ATL::CStringT > > const & CDocument::GetPathName()const 4146 ATL::CStringT > > CFileDialog::GetPathName()const 4147 ATL::CStringT > > COleInsertDialog::GetPathName()const 4148 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4149 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4150 IPictureDisp * CPictureHolder::GetPictureDispatch() 4151 unsigned long CDC::GetPixel(int,int)const 4152 unsigned long CDC::GetPixel(tagPOINT)const 4153 int CDC::GetPolyFillMode()const 4154 ATL::CStringT > > CPageSetupDialog::GetPortName()const 4155 ATL::CStringT > > CPrintDialog::GetPortName()const 4156 ATL::CStringT > > CPrintDialogEx::GetPortName()const 4157 int CProgressCtrl::GetPos() 4158 int CSliderCtrl::GetPos()const 4159 int CSpinButtonCtrl::GetPos()const 4160 int CSpinButtonCtrl::GetPos32(int *)const 4161 unsigned __int64 CFile::GetPosition()const 4162 unsigned __int64 CMemFile::GetPosition()const 4163 unsigned __int64 COleStreamFile::GetPosition()const 4164 unsigned __int64 CSocketFile::GetPosition()const 4165 unsigned __int64 CStdioFile::GetPosition()const 4166 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4167 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4168 CObject * & CObList::GetPrev(__POSITION * &) 4169 CObject const * & CObList::GetPrev(__POSITION * &)const 4170 void * & CPtrList::GetPrev(__POSITION * &) 4171 void const * & CPtrList::GetPrev(__POSITION * &)const 4172 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4173 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4174 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4175 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4176 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4177 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4178 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4179 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4180 HDC__ * CPrintDialog::GetPrinterDC()const 4181 HDC__ * CPrintDialogEx::GetPrinterDC()const 4182 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 4183 CFont * CEditView::GetPrinterFont()const 4184 CRect CRichEditView::GetPrintRect()const 4185 int CRichEditView::GetPrintWidth()const 4186 long CAsyncMonikerFile::GetPriority()const 4187 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 4188 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 4189 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 4190 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 4191 COleVariant CHtmlView::GetProperty(wchar_t const *) 4192 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 4193 void COleControlSite::GetProperty(long,unsigned short,void *)const 4194 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4195 CProperty * CPropertySection::GetProperty(unsigned long) 4196 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4197 void CWnd::GetProperty(long,unsigned short,void *)const 4198 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 4199 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4200 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 4201 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4202 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 4203 int COlePropertyPage::GetPropText(wchar_t const *,short *) 4204 int COlePropertyPage::GetPropText(wchar_t const *,int *) 4205 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 4206 int COlePropertyPage::GetPropText(wchar_t const *,long *) 4207 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 4208 int COlePropertyPage::GetPropText(wchar_t const *,float *) 4209 int COlePropertyPage::GetPropText(wchar_t const *,double *) 4210 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 4211 _PROPSHEETPAGEW & CPropertyPage::GetPSP() 4212 _PROPSHEETPAGEW const & CPropertyPage::GetPSP()const 4213 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4214 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4215 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4216 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4217 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4218 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4219 void CProgressCtrl::GetRange(int &,int &) 4220 void CSliderCtrl::GetRange(int &,int &)const 4221 unsigned long CSpinButtonCtrl::GetRange()const 4222 void CSpinButtonCtrl::GetRange(int &,int &)const 4223 void CSpinButtonCtrl::GetRange32(int &,int &)const 4224 int CSliderCtrl::GetRangeMax()const 4225 int CSliderCtrl::GetRangeMin()const 4226 void * CProperty::GetRawValue() 4227 int CFileDialog::GetReadOnlyPref()const 4228 enum tagREADYSTATE CHtmlView::GetReadyState()const 4229 long COleControl::GetReadyState() 4230 CReBarCtrl & CReBar::GetReBarCtrl()const 4231 long CRecordset::GetRecordCount()const 4232 void CEdit::GetRect(tagRECT *)const 4233 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4234 void CRichEditCtrl::GetRect(tagRECT *)const 4235 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4236 int CToolBarCtrl::GetRect(int,tagRECT *)const 4237 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4238 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4239 int COleControl::GetRectInContainer(tagRECT *) 4240 enum _undonameid CRichEditCtrl::GetRedoName()const 4241 int CRgn::GetRegionData(_RGNDATA *,int)const 4242 int CHtmlView::GetRegisterAsBrowser()const 4243 int CHtmlView::GetRegisterAsDropTarget()const 4244 ATL::CStringT > > CFindReplaceDialog::GetReplaceString()const 4245 int CRgn::GetRgnBox(tagRECT *)const 4246 CRichEditCtrl & CRichEditView::GetRichEditCtrl()const 4247 ATL::CStringT > > CFileFind::GetRoot()const 4248 ATL::CStringT > > CGopherFileFind::GetRoot()const 4249 _TREEITEM * CTreeCtrl::GetRootItem()const 4250 int CDC::GetROP2()const 4251 CFrameWnd * CCmdTarget::GetRoutingFrame() 4252 CFrameWnd * CCmdTarget::GetRoutingFrame_() 4253 CView * CCmdTarget::GetRoutingView() 4254 CView * CCmdTarget::GetRoutingView_() 4255 unsigned int CReBarCtrl::GetRowCount()const 4256 int CSplitterWnd::GetRowCount()const 4257 int CTabCtrl::GetRowCount()const 4258 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4259 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4260 int CToolBarCtrl::GetRows()const 4261 unsigned long CRecordset::GetRowsetSize()const 4262 unsigned long CRecordset::GetRowsFetched()const 4263 unsigned short CRecordset::GetRowStatus(unsigned short)const 4264 CRuntime* CAnimateCtrl::GetRuntimeClass()const 4265 CRuntime* CArchiveException::GetRuntimeClass()const 4266 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 4267 CRuntime* CAsyncSocket::GetRuntimeClass()const 4268 CRuntime* CBitmap::GetRuntimeClass()const 4269 CRuntime* CBitmapButton::GetRuntimeClass()const 4270 CRuntime* CBrush::GetRuntimeClass()const 4271 CRuntime* CButton::GetRuntimeClass()const 4272 CRuntime* CByteArray::GetRuntimeClass()const 4273 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 4274 CRuntime* CCheckListBox::GetRuntimeClass()const 4275 CRuntime* CClientDC::GetRuntimeClass()const 4276 CRuntime* CCmdTarget::GetRuntimeClass()const 4277 CRuntime* CColorDialog::GetRuntimeClass()const 4278 CRuntime* CComboBox::GetRuntimeClass()const 4279 CRuntime* CComboBoxEx::GetRuntimeClass()const 4280 CRuntime* CControlBar::GetRuntimeClass()const 4281 CRuntime* CCriticalSection::GetRuntimeClass()const 4282 CRuntime* CCtrlView::GetRuntimeClass()const 4283 CRuntime* CDatabase::GetRuntimeClass()const 4284 CRuntime* CDataPathProperty::GetRuntimeClass()const 4285 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 4286 CRuntime* CDBException::GetRuntimeClass()const 4287 CRuntime* CDC::GetRuntimeClass()const 4288 CRuntime* CDHtmlDialog::GetRuntimeClass()const 4289 CRuntime* CDialog::GetRuntimeClass()const 4290 CRuntime* CDialogBar::GetRuntimeClass()const 4291 CRuntime* CDocItem::GetRuntimeClass()const 4292 CRuntime* CDockBar::GetRuntimeClass()const 4293 CRuntime* CDockState::GetRuntimeClass()const 4294 CRuntime* CDocManager::GetRuntimeClass()const 4295 CRuntime* CDocObjectServer::GetRuntimeClass()const 4296 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 4297 CRuntime* CDocTemplate::GetRuntimeClass()const 4298 CRuntime* CDocument::GetRuntimeClass()const 4299 CRuntime* CDragListBox::GetRuntimeClass()const 4300 CRuntime* CDWordArray::GetRuntimeClass()const 4301 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 4302 CRuntime* CEdit::GetRuntimeClass()const 4303 CRuntime* CEditView::GetRuntimeClass()const 4304 CRuntime* CEvent::GetRuntimeClass()const 4305 CRuntime* CException::GetRuntimeClass()const 4306 CRuntime* CFile::GetRuntimeClass()const 4307 CRuntime* CFileDialog::GetRuntimeClass()const 4308 CRuntime* CFileException::GetRuntimeClass()const 4309 CRuntime* CFileFind::GetRuntimeClass()const 4310 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 4311 CRuntime* CFont::GetRuntimeClass()const 4312 CRuntime* CFontDialog::GetRuntimeClass()const 4313 CRuntime* CFormView::GetRuntimeClass()const 4314 CRuntime* CFrameWnd::GetRuntimeClass()const 4315 CRuntime* CFtpConnection::GetRuntimeClass()const 4316 CRuntime* CFtpFileFind::GetRuntimeClass()const 4317 CRuntime* CGdiObject::GetRuntimeClass()const 4318 CRuntime* CGopherConnection::GetRuntimeClass()const 4319 CRuntime* CGopherFile::GetRuntimeClass()const 4320 CRuntime* CGopherFileFind::GetRuntimeClass()const 4321 CRuntime* CHeaderCtrl::GetRuntimeClass()const 4322 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 4323 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 4324 CRuntime* CHtmlEditView::GetRuntimeClass()const 4325 CRuntime* CHtmlView::GetRuntimeClass()const 4326 CRuntime* CHttpConnection::GetRuntimeClass()const 4327 CRuntime* CHttpFile::GetRuntimeClass()const 4328 CRuntime* CImageList::GetRuntimeClass()const 4329 CRuntime* CInternetConnection::GetRuntimeClass()const 4330 CRuntime* CInternetException::GetRuntimeClass()const 4331 CRuntime* CInternetFile::GetRuntimeClass()const 4332 CRuntime* CInternetSession::GetRuntimeClass()const 4333 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 4334 CRuntime* CLinkCtrl::GetRuntimeClass()const 4335 CRuntime* CListBox::GetRuntimeClass()const 4336 CRuntime* CListCtrl::GetRuntimeClass()const 4337 CRuntime* CListView::GetRuntimeClass()const 4338 CRuntime* CLongBinary::GetRuntimeClass()const 4339 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 4340 CRuntime* CMapPtrToWord::GetRuntimeClass()const 4341 CRuntime* CMapStringToOb::GetRuntimeClass()const 4342 CRuntime* CMapStringToPtr::GetRuntimeClass()const 4343 CRuntime* CMapStringToString::GetRuntimeClass()const 4344 CRuntime* CMapWordToOb::GetRuntimeClass()const 4345 CRuntime* CMapWordToPtr::GetRuntimeClass()const 4346 CRuntime* CMDIChildWnd::GetRuntimeClass()const 4347 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 4348 CRuntime* CMemFile::GetRuntimeClass()const 4349 CRuntime* CMemoryException::GetRuntimeClass()const 4350 CRuntime* CMenu::GetRuntimeClass()const 4351 CRuntime* CMetaFileDC::GetRuntimeClass()const 4352 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 4353 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 4354 CRuntime* CMonikerFile::GetRuntimeClass()const 4355 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 4356 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 4357 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 4358 CRuntime* CMutex::GetRuntimeClass()const 4359 CRuntime* CNotSupportedException::GetRuntimeClass()const 4360 CRuntime* CObArray::GetRuntimeClass()const 4361 CRuntime* CObject::GetRuntimeClass()const 4362 CRuntime* CObList::GetRuntimeClass()const 4363 CRuntime* COleBusyDialog::GetRuntimeClass()const 4364 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 4365 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 4366 CRuntime* COleClientItem::GetRuntimeClass()const 4367 CRuntime* COleControl::GetRuntimeClass()const 4368 CRuntime* COleControlModule::GetRuntimeClass()const 4369 CRuntime* COleConvertDialog::GetRuntimeClass()const 4370 CRuntime* COleDBRecordView::GetRuntimeClass()const 4371 CRuntime* COleDialog::GetRuntimeClass()const 4372 CRuntime* COleDispatchException::GetRuntimeClass()const 4373 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 4374 CRuntime* COleDocObjectItem::GetRuntimeClass()const 4375 CRuntime* COleDocument::GetRuntimeClass()const 4376 CRuntime* COleException::GetRuntimeClass()const 4377 CRuntime* COleInsertDialog::GetRuntimeClass()const 4378 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 4379 CRuntime* COleLinkingDoc::GetRuntimeClass()const 4380 CRuntime* COleLinksDialog::GetRuntimeClass()const 4381 CRuntime* COleObjectFactory::GetRuntimeClass()const 4382 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 4383 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 4384 CRuntime* COlePropertyPage::GetRuntimeClass()const 4385 CRuntime* COleResizeBar::GetRuntimeClass()const 4386 CRuntime* COleServerDoc::GetRuntimeClass()const 4387 CRuntime* COleServerItem::GetRuntimeClass()const 4388 CRuntime* COleStreamFile::GetRuntimeClass()const 4389 CRuntime* COleUpdateDialog::GetRuntimeClass()const 4390 CRuntime* CPageSetupDialog::GetRuntimeClass()const 4391 CRuntime* CPaintDC::GetRuntimeClass()const 4392 CRuntime* CPalette::GetRuntimeClass()const 4393 CRuntime* CPen::GetRuntimeClass()const 4394 CRuntime* CPreviewDC::GetRuntimeClass()const 4395 CRuntime* CPreviewView::GetRuntimeClass()const 4396 CRuntime* CPrintDialog::GetRuntimeClass()const 4397 CRuntime* CPrintDialogEx::GetRuntimeClass()const 4398 CRuntime* CProgressCtrl::GetRuntimeClass()const 4399 CRuntime* CPropertyPage::GetRuntimeClass()const 4400 CRuntime* CPropertySheet::GetRuntimeClass()const 4401 CRuntime* CPtrArray::GetRuntimeClass()const 4402 CRuntime* CPtrList::GetRuntimeClass()const 4403 CRuntime* CReBar::GetRuntimeClass()const 4404 CRuntime* CReBarCtrl::GetRuntimeClass()const 4405 CRuntime* CRecordset::GetRuntimeClass()const 4406 CRuntime* CRecordView::GetRuntimeClass()const 4407 CRuntime* CResourceException::GetRuntimeClass()const 4408 CRuntime* CRgn::GetRuntimeClass()const 4409 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 4410 CRuntime* CRichEditCtrl::GetRuntimeClass()const 4411 CRuntime* CRichEditDoc::GetRuntimeClass()const 4412 CRuntime* CRichEditView::GetRuntimeClass()const 4413 CRuntime* CScrollBar::GetRuntimeClass()const 4414 CRuntime* CScrollView::GetRuntimeClass()const 4415 CRuntime* CSemaphore::GetRuntimeClass()const 4416 CRuntime* CSharedFile::GetRuntimeClass()const 4417 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 4418 CRuntime* CSliderCtrl::GetRuntimeClass()const 4419 CRuntime* CSocket::GetRuntimeClass()const 4420 CRuntime* CSocketFile::GetRuntimeClass()const 4421 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 4422 CRuntime* CSplitterWnd::GetRuntimeClass()const 4423 CRuntime* CStatic::GetRuntimeClass()const 4424 CRuntime* CStatusBar::GetRuntimeClass()const 4425 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 4426 CRuntime* CStdioFile::GetRuntimeClass()const 4427 CRuntime* CStringArray::GetRuntimeClass()const 4428 CRuntime* CStringList::GetRuntimeClass()const 4429 CRuntime* CSyncObject::GetRuntimeClass()const 4430 CRuntime* CTabCtrl::GetRuntimeClass()const 4431 CRuntime* CToolBar::GetRuntimeClass()const 4432 CRuntime* CToolBarCtrl::GetRuntimeClass()const 4433 CRuntime* CToolTipCtrl::GetRuntimeClass()const 4434 CRuntime* CTreeCtrl::GetRuntimeClass()const 4435 CRuntime* CTreeView::GetRuntimeClass()const 4436 CRuntime* CUIntArray::GetRuntimeClass()const 4437 CRuntime* CUserException::GetRuntimeClass()const 4438 CRuntime* CView::GetRuntimeClass()const 4439 CRuntime* CWinApp::GetRuntimeClass()const 4440 CRuntime* CWindowDC::GetRuntimeClass()const 4441 CRuntime* CWindowlessDC::GetRuntimeClass()const 4442 CRuntime* CWinThread::GetRuntimeClass()const 4443 CRuntime* CWnd::GetRuntimeClass()const 4444 CRuntime* CWordArray::GetRuntimeClass()const 4445 void * CGdiObject::GetSafeHandle()const 4446 _IMAGELIST * CImageList::GetSafeHandle()const 4447 HDC__ * CDC::GetSafeHdc()const 4448 HMENU__ * CMenu::GetSafeHmenu()const 4449 HWND__ * CWnd::GetSafeHwnd()const 4450 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 4451 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 4452 unsigned long * CColorDialog::GetSavedCustomColors() 4453 ATL::CStringT > > CGopherFileFind::GetScreenName()const 4454 CSize CDockState::GetScreenSize() 4455 CScrollBar * CView::GetScrollBarCtrl(int)const 4456 CScrollBar * CWnd::GetScrollBarCtrl(int)const 4457 void CScrollView::GetScrollBarSizes(CSize &) 4458 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 4459 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 4460 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 4461 int CScrollBar::GetScrollLimit() 4462 int CWnd::GetScrollLimit(int) 4463 int CScrollBar::GetScrollPos()const 4464 int CWnd::GetScrollPos(int)const 4465 CPoint CScrollView::GetScrollPosition()const 4466 void CScrollBar::GetScrollRange(int *,int *)const 4467 void CWnd::GetScrollRange(int,int *,int *)const 4468 unsigned long CSplitterWnd::GetScrollStyle()const 4469 unsigned int CTreeCtrl::GetScrollTime()const 4470 CPropertySection * CPropertySet::GetSection(_GUID) 4471 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 4472 wchar_t const * CPropertySection::GetSectionName() 4473 unsigned long CEdit::GetSel()const 4474 void CEdit::GetSel(int &,int &)const 4475 int CListBox::GetSel(int)const 4476 void CRichEditCtrl::GetSel(long &,long &)const 4477 void CRichEditCtrl::GetSel(_charrange &)const 4478 int CListBox::GetSelCount()const 4479 unsigned int CListCtrl::GetSelectedCount()const 4480 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 4481 _TREEITEM * CTreeCtrl::GetSelectedItem()const 4482 void CEditView::GetSelectedText(ATL::CStringT > > &)const 4483 void CSliderCtrl::GetSelection(int &,int &)const 4484 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 4485 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 4486 int CListCtrl::GetSelectionMark() 4487 unsigned int COleBusyDialog::GetSelectionType()const 4488 unsigned int COleConvertDialog::GetSelectionType()const 4489 unsigned int COleInsertDialog::GetSelectionType()const 4490 unsigned int COlePasteSpecialDialog::GetSelectionType()const 4491 unsigned short CRichEditCtrl::GetSelectionType()const 4492 int CListBox::GetSelItems(int,int *)const 4493 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 4494 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 4495 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4496 ATL::CStringT > > CRichEditCtrl::GetSelText()const 4497 long CRichEditCtrl::GetSelText(char *)const 4498 ATL::CStringT > > CInternetConnection::GetServerName()const 4499 CInternetSession * CInternetConnection::GetSession()const 4500 int CHtmlView::GetSilent()const 4501 long CPrintDialogEx::GetSite(_GUID const &,void * *) 4502 int CByteArray::GetSize()const 4503 int CDWordArray::GetSize()const 4504 int CFontDialog::GetSize()const 4505 int CMapPtrToPtr::GetSize()const 4506 int CMapPtrToWord::GetSize()const 4507 int CMapStringToOb::GetSize()const 4508 int CMapStringToPtr::GetSize()const 4509 int CMapStringToString::GetSize()const 4510 int CMapWordToOb::GetSize()const 4511 int CMapWordToPtr::GetSize()const 4512 int CObArray::GetSize()const 4513 int CObList::GetSize()const 4514 unsigned long CPropertySection::GetSize() 4515 int CPtrArray::GetSize()const 4516 int CPtrList::GetSize()const 4517 int CStringArray::GetSize()const 4518 int CStringList::GetSize()const 4519 int CUIntArray::GetSize()const 4520 int CWordArray::GetSize()const 4521 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 4522 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 4523 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 4524 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 4525 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 4526 CWnd * CSplitterWnd::GetSizingParent() 4527 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 4528 int CAsyncSocket::GetSockName(sockaddr *,int *) 4529 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 4530 int CHtmlView::GetSource(ATL::CStringT > > &) 4531 ATL::CStringT > > const & CRecordset::GetSQL()const 4532 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 4533 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 4534 wchar_t const * CHtmlEditCtrl::GetStartDocument() 4535 wchar_t const * CHtmlEditView::GetStartDocument() 4536 __POSITION * CConnectionPoint::GetStartPosition()const 4537 __POSITION * CFileDialog::GetStartPosition()const 4538 __POSITION * CMapPtrToPtr::GetStartPosition()const 4539 __POSITION * CMapPtrToWord::GetStartPosition()const 4540 __POSITION * CMapStringToOb::GetStartPosition()const 4541 __POSITION * CMapStringToPtr::GetStartPosition()const 4542 __POSITION * CMapStringToString::GetStartPosition()const 4543 __POSITION * CMapWordToOb::GetStartPosition()const 4544 __POSITION * CMapWordToPtr::GetStartPosition()const 4545 __POSITION * COleDocument::GetStartPosition()const 4546 __POSITION * CRichEditDoc::GetStartPosition()const 4547 unsigned int CButton::GetState()const 4548 int CToolBarCtrl::GetState(int)const 4549 int CFile::GetStatus(CFileStatus &)const 4550 int CFile::GetStatus(wchar_t const *,CFileStatus &) 4551 int CMemFile::GetStatus(CFileStatus &)const 4552 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus()const 4553 int COleStreamFile::GetStatus(CFileStatus &)const 4554 void CRecordset::GetStatus(CRecordsetStatus &)const 4555 int CHtmlView::GetStatusBar()const 4556 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 4557 unsigned long COleControl::GetStockEventMask()const 4558 unsigned long COleControl::GetStockPropMask()const 4559 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 4560 ATL::CStringT > > const COleStreamFile::GetStorageName()const 4561 IStream * COleStreamFile::GetStream()const 4562 int CRichEditDoc::GetStreamFormat()const 4563 int CDC::GetStretchBltMode()const 4564 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 4565 int CToolBarCtrl::GetString(int,wchar_t *,int)const 4566 int CListCtrl::GetStringWidth(wchar_t const *)const 4567 unsigned long COleControlSite::GetStyle()const 4568 unsigned long COleControlSiteOrWnd::GetStyle()const 4569 unsigned long CToolBarCtrl::GetStyle()const 4570 unsigned long CWnd::GetStyle()const 4571 ATL::CStringT > > CFontDialog::GetStyleName()const 4572 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 4573 CMenu * CMenu::GetSubMenu(int)const 4574 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 4575 int CWinApp::GetSysPolicyValue(unsigned long,int *) 4576 CMenu * CWnd::GetSystemMenu(int)const 4577 CSize CDC::GetTabbedTextExtentW(ATL::CStringT > > const &,int,int *)const 4578 CSize CDC::GetTabbedTextExtentW(wchar_t const *,int,int,int *)const 4579 CTabCtrl * CPropertySheet::GetTabControl()const 4580 ATL::CStringT > > const & CRecordset::GetTableName()const 4581 CObject * & CObList::GetTail() 4582 CObject const * & CObList::GetTail()const 4583 void * & CPtrList::GetTail() 4584 void const * & CPtrList::GetTail()const 4585 ATL::CStringT > > & CStringList::GetTail() 4586 ATL::CStringT > > const & CStringList::GetTail()const 4587 __POSITION * CObList::GetTailPosition()const 4588 __POSITION * CPtrList::GetTailPosition()const 4589 __POSITION * CStringList::GetTailPosition()const 4590 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 4591 int CListBox::GetText(int,wchar_t *)const 4592 void CListBox::GetText(int,ATL::CStringT > > &)const 4593 wchar_t * COleControl::GetText() 4594 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 4595 int CStatusBarCtrl::GetText(wchar_t const *,int,int *)const 4596 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 4597 unsigned int CDC::GetTextAlign()const 4598 unsigned long CListCtrl::GetTextBkColor()const 4599 int CDC::GetTextCharacterExtra()const 4600 unsigned long CDC::GetTextColor()const 4601 unsigned long CListCtrl::GetTextColor()const 4602 unsigned long CReBarCtrl::GetTextColor()const 4603 unsigned long CTreeCtrl::GetTextColor()const 4604 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 4605 CSize CDC::GetTextExtent(wchar_t const *,int)const 4606 int CDC::GetTextFaceW(ATL::CStringT > > &)const 4607 int CDC::GetTextFaceW(int,wchar_t *)const 4608 int CListBox::GetTextLen(int)const 4609 long CRecordset::GetTextLen(short,unsigned long) 4610 long CRichEditCtrl::GetTextLength()const 4611 long CRichEditView::GetTextLength()const 4612 int CStatusBarCtrl::GetTextLength(int,int *)const 4613 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 4614 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 4615 int CDC::GetTextMetricsW(tagTEXTMETRICW *)const 4616 unsigned int CRichEditCtrl::GetTextMode()const 4617 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 4618 int CHtmlView::GetTheaterMode()const 4619 CRuntime* CAnimateCtrl::GetThisClass() 4620 CRuntime* CArchiveException::GetThisClass() 4621 CRuntime* CAsyncMonikerFile::GetThisClass() 4622 CRuntime* CAsyncSocket::GetThisClass() 4623 CRuntime* CBitmap::GetThisClass() 4624 CRuntime* CBitmapButton::GetThisClass() 4625 CRuntime* CBrush::GetThisClass() 4626 CRuntime* CButton::GetThisClass() 4627 CRuntime* CByteArray::GetThisClass() 4628 CRuntime* CCachedDataPathProperty::GetThisClass() 4629 CRuntime* CCheckListBox::GetThisClass() 4630 CRuntime* CClientDC::GetThisClass() 4631 CRuntime* CCmdTarget::GetThisClass() 4632 CRuntime* CColorDialog::GetThisClass() 4633 CRuntime* CComboBox::GetThisClass() 4634 CRuntime* CComboBoxEx::GetThisClass() 4635 CRuntime* CControlBar::GetThisClass() 4636 CRuntime* CCriticalSection::GetThisClass() 4637 CRuntime* CCtrlView::GetThisClass() 4638 CRuntime* CDatabase::GetThisClass() 4639 CRuntime* CDataPathProperty::GetThisClass() 4640 CRuntime* CDateTimeCtrl::GetThisClass() 4641 CRuntime* CDBException::GetThisClass() 4642 CRuntime* CDC::GetThisClass() 4643 CRuntime* CDHtmlDialog::GetThisClass() 4644 CRuntime* CDialog::GetThisClass() 4645 CRuntime* CDialogBar::GetThisClass() 4646 CRuntime* CDocItem::GetThisClass() 4647 CRuntime* CDockBar::GetThisClass() 4648 CRuntime* CDockState::GetThisClass() 4649 CRuntime* CDocManager::GetThisClass() 4650 CRuntime* CDocObjectServer::GetThisClass() 4651 CRuntime* CDocObjectServerItem::GetThisClass() 4652 CRuntime* CDocTemplate::GetThisClass() 4653 CRuntime* CDocument::GetThisClass() 4654 CRuntime* CDragListBox::GetThisClass() 4655 CRuntime* CDWordArray::GetThisClass() 4656 CRuntime* CDynLinkLibrary::GetThisClass() 4657 CRuntime* CEdit::GetThisClass() 4658 CRuntime* CEditView::GetThisClass() 4659 CRuntime* CEvent::GetThisClass() 4660 CRuntime* CException::GetThisClass() 4661 CRuntime* CFile::GetThisClass() 4662 CRuntime* CFileDialog::GetThisClass() 4663 CRuntime* CFileException::GetThisClass() 4664 CRuntime* CFileFind::GetThisClass() 4665 CRuntime* CFindReplaceDialog::GetThisClass() 4666 CRuntime* CFont::GetThisClass() 4667 CRuntime* CFontDialog::GetThisClass() 4668 CRuntime* CFormView::GetThisClass() 4669 CRuntime* CFrameWnd::GetThisClass() 4670 CRuntime* CFtpConnection::GetThisClass() 4671 CRuntime* CFtpFileFind::GetThisClass() 4672 CRuntime* CGdiObject::GetThisClass() 4673 CRuntime* CGopherConnection::GetThisClass() 4674 CRuntime* CGopherFile::GetThisClass() 4675 CRuntime* CGopherFileFind::GetThisClass() 4676 CRuntime* CHeaderCtrl::GetThisClass() 4677 CRuntime* CHotKeyCtrl::GetThisClass() 4678 CRuntime* CHtmlEditDoc::GetThisClass() 4679 CRuntime* CHtmlEditView::GetThisClass() 4680 CRuntime* CHtmlView::GetThisClass() 4681 CRuntime* CHttpConnection::GetThisClass() 4682 CRuntime* CHttpFile::GetThisClass() 4683 CRuntime* CImageList::GetThisClass() 4684 CRuntime* CInternetConnection::GetThisClass() 4685 CRuntime* CInternetException::GetThisClass() 4686 CRuntime* CInternetFile::GetThisClass() 4687 CRuntime* CInternetSession::GetThisClass() 4688 CRuntime* CIPAddressCtrl::GetThisClass() 4689 CRuntime* CLinkCtrl::GetThisClass() 4690 CRuntime* CListBox::GetThisClass() 4691 CRuntime* CListCtrl::GetThisClass() 4692 CRuntime* CListView::GetThisClass() 4693 CRuntime* CLongBinary::GetThisClass() 4694 CRuntime* CMapPtrToPtr::GetThisClass() 4695 CRuntime* CMapPtrToWord::GetThisClass() 4696 CRuntime* CMapStringToOb::GetThisClass() 4697 CRuntime* CMapStringToPtr::GetThisClass() 4698 CRuntime* CMapStringToString::GetThisClass() 4699 CRuntime* CMapWordToOb::GetThisClass() 4700 CRuntime* CMapWordToPtr::GetThisClass() 4701 CRuntime* CMDIChildWnd::GetThisClass() 4702 CRuntime* CMDIFrameWnd::GetThisClass() 4703 CRuntime* CMemFile::GetThisClass() 4704 CRuntime* CMemoryException::GetThisClass() 4705 CRuntime* CMenu::GetThisClass() 4706 CRuntime* CMetaFileDC::GetThisClass() 4707 CRuntime* CMiniDockFrameWnd::GetThisClass() 4708 CRuntime* CMiniFrameWnd::GetThisClass() 4709 CRuntime* CMonikerFile::GetThisClass() 4710 CRuntime* CMonthCalCtrl::GetThisClass() 4711 CRuntime* CMultiDocTemplate::GetThisClass() 4712 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 4713 CRuntime* CMutex::GetThisClass() 4714 CRuntime* CNotSupportedException::GetThisClass() 4715 CRuntime* CObArray::GetThisClass() 4716 CRuntime* CObject::GetThisClass() 4717 CRuntime* CObList::GetThisClass() 4718 CRuntime* COleBusyDialog::GetThisClass() 4719 CRuntime* COleChangeIconDialog::GetThisClass() 4720 CRuntime* COleChangeSourceDialog::GetThisClass() 4721 CRuntime* COleClientItem::GetThisClass() 4722 CRuntime* COleControl::GetThisClass() 4723 CRuntime* COleControlModule::GetThisClass() 4724 CRuntime* COleConvertDialog::GetThisClass() 4725 CRuntime* COleDBRecordView::GetThisClass() 4726 CRuntime* COleDialog::GetThisClass() 4727 CRuntime* COleDispatchException::GetThisClass() 4728 CRuntime* COleDocIPFrameWnd::GetThisClass() 4729 CRuntime* COleDocObjectItem::GetThisClass() 4730 CRuntime* COleDocument::GetThisClass() 4731 CRuntime* COleException::GetThisClass() 4732 CRuntime* COleInsertDialog::GetThisClass() 4733 CRuntime* COleIPFrameWnd::GetThisClass() 4734 CRuntime* COleLinkingDoc::GetThisClass() 4735 CRuntime* COleLinksDialog::GetThisClass() 4736 CRuntime* COleObjectFactory::GetThisClass() 4737 CRuntime* COlePasteSpecialDialog::GetThisClass() 4738 CRuntime* COlePropertiesDialog::GetThisClass() 4739 CRuntime* COlePropertyPage::GetThisClass() 4740 CRuntime* COleResizeBar::GetThisClass() 4741 CRuntime* COleServerDoc::GetThisClass() 4742 CRuntime* COleServerItem::GetThisClass() 4743 CRuntime* COleStreamFile::GetThisClass() 4744 CRuntime* COleUpdateDialog::GetThisClass() 4745 CRuntime* CPageSetupDialog::GetThisClass() 4746 CRuntime* CPaintDC::GetThisClass() 4747 CRuntime* CPalette::GetThisClass() 4748 CRuntime* CPen::GetThisClass() 4749 CRuntime* CPreviewDC::GetThisClass() 4750 CRuntime* CPreviewView::GetThisClass() 4751 CRuntime* CPrintDialog::GetThisClass() 4752 CRuntime* CPrintDialogEx::GetThisClass() 4753 CRuntime* CProgressCtrl::GetThisClass() 4754 CRuntime* CPropertyPage::GetThisClass() 4755 CRuntime* CPropertySheet::GetThisClass() 4756 CRuntime* CPtrArray::GetThisClass() 4757 CRuntime* CPtrList::GetThisClass() 4758 CRuntime* CReBar::GetThisClass() 4759 CRuntime* CReBarCtrl::GetThisClass() 4760 CRuntime* CRecordset::GetThisClass() 4761 CRuntime* CRecordView::GetThisClass() 4762 CRuntime* CResourceException::GetThisClass() 4763 CRuntime* CRgn::GetThisClass() 4764 CRuntime* CRichEditCntrItem::GetThisClass() 4765 CRuntime* CRichEditCtrl::GetThisClass() 4766 CRuntime* CRichEditDoc::GetThisClass() 4767 CRuntime* CRichEditView::GetThisClass() 4768 CRuntime* CScrollBar::GetThisClass() 4769 CRuntime* CScrollView::GetThisClass() 4770 CRuntime* CSemaphore::GetThisClass() 4771 CRuntime* CSharedFile::GetThisClass() 4772 CRuntime* CSingleDocTemplate::GetThisClass() 4773 CRuntime* CSliderCtrl::GetThisClass() 4774 CRuntime* CSocket::GetThisClass() 4775 CRuntime* CSocketFile::GetThisClass() 4776 CRuntime* CSpinButtonCtrl::GetThisClass() 4777 CRuntime* CSplitterWnd::GetThisClass() 4778 CRuntime* CStatic::GetThisClass() 4779 CRuntime* CStatusBar::GetThisClass() 4780 CRuntime* CStatusBarCtrl::GetThisClass() 4781 CRuntime* CStdioFile::GetThisClass() 4782 CRuntime* CStringArray::GetThisClass() 4783 CRuntime* CStringList::GetThisClass() 4784 CRuntime* CSyncObject::GetThisClass() 4785 CRuntime* CTabCtrl::GetThisClass() 4786 CRuntime* CToolBar::GetThisClass() 4787 CRuntime* CToolBarCtrl::GetThisClass() 4788 CRuntime* CToolTipCtrl::GetThisClass() 4789 CRuntime* CTreeCtrl::GetThisClass() 4790 CRuntime* CTreeView::GetThisClass() 4791 CRuntime* CUIntArray::GetThisClass() 4792 CRuntime* CUserException::GetThisClass() 4793 CRuntime* CView::GetThisClass() 4794 CRuntime* CWinApp::GetThisClass() 4795 CRuntime* CWindowDC::GetThisClass() 4796 CRuntime* CWindowlessDC::GetThisClass() 4797 CRuntime* CWinThread::GetThisClass() 4798 CRuntime* CWnd::GetThisClass() 4799 CRuntime* CWordArray::GetThisClass() 4800 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 4801 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 4802 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 4803 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 4804 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 4805 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 4806 AFX_EVENTMAP const * COleControl::GetThisEventMap() 4807 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 4808 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 4809 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 4810 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 4811 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 4812 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 4813 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 4814 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 4815 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 4816 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 4817 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 4818 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 4819 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 4820 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 4821 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 4822 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 4823 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 4824 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 4825 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 4826 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 4827 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 4828 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 4829 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 4830 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 4831 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 4832 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 4833 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 4834 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 4835 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 4836 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 4837 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 4838 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 4839 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 4840 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 4841 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 4842 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 4843 AFX_MSGMAP const * CDialog::GetThisMessageMap() 4844 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 4845 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 4846 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 4847 AFX_MSGMAP const * CDocument::GetThisMessageMap() 4848 AFX_MSGMAP const * CEditView::GetThisMessageMap() 4849 AFX_MSGMAP const * CFormView::GetThisMessageMap() 4850 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 4851 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 4852 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 4853 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 4854 AFX_MSGMAP const * CListView::GetThisMessageMap() 4855 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 4856 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 4857 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 4858 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 4859 AFX_MSGMAP const * COleControl::GetThisMessageMap() 4860 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 4861 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 4862 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 4863 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 4864 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 4865 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 4866 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 4867 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 4868 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 4869 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 4870 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 4871 AFX_MSGMAP const * CReBar::GetThisMessageMap() 4872 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 4873 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 4874 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 4875 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 4876 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 4877 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 4878 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 4879 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 4880 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 4881 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 4882 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 4883 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 4884 AFX_MSGMAP const * CView::GetThisMessageMap() 4885 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 4886 AFX_MSGMAP const * CWnd::GetThisMessageMap() 4887 int CWinThread::GetThreadPriority() 4888 void CSliderCtrl::GetThumbRect(tagRECT *)const 4889 int CSliderCtrl::GetTic(int)const 4890 unsigned long * CSliderCtrl::GetTicArray()const 4891 int CSliderCtrl::GetTicPos(int)const 4892 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 4893 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 4894 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 4895 unsigned long CToolTipCtrl::GetTipBkColor()const 4896 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 4897 unsigned long CToolTipCtrl::GetTipTextColor()const 4898 ATL::CStringT > > const & CDocument::GetTitle()const 4899 ATL::CStringT > > CFrameWnd::GetTitle()const 4900 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 4901 int CMonthCalCtrl::GetToday(ATL::CTime &)const 4902 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 4903 int CHtmlView::GetToolBar()const 4904 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 4905 int CToolTipCtrl::GetToolCount()const 4906 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 4907 CToolTipCtrl * CListCtrl::GetToolTips()const 4908 CToolTipCtrl * CReBarCtrl::GetToolTips()const 4909 CToolTipCtrl * CSliderCtrl::GetToolTips()const 4910 CToolTipCtrl * CTabCtrl::GetToolTips()const 4911 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 4912 CToolTipCtrl * CTreeCtrl::GetToolTips()const 4913 long CHtmlView::GetTop()const 4914 int CPrintDialog::GetToPage()const 4915 unsigned int CPrintInfo::GetToPage()const 4916 int CComboBox::GetTopIndex()const 4917 int CListBox::GetTopIndex()const 4918 int CListCtrl::GetTopIndex()const 4919 int CHtmlView::GetTopLevelContainer()const 4920 CFrameWnd * CWnd::GetTopLevelFrame()const 4921 CWnd * CWnd::GetTopLevelOwner()const 4922 CWnd * CWnd::GetTopLevelParent()const 4923 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix() 4924 CWnd * CWnd::GetTopWindow()const 4925 CSize CScrollView::GetTotalSize()const 4926 CTreeCtrl & CTreeView::GetTreeCtrl()const 4927 int CScrollView::GetTrueClientSize(CSize &,CSize &) 4928 void CRectTracker::GetTrueRect(tagRECT *)const 4929 ATL::CStringT > > CHtmlView::GetType()const 4930 enum OLE_OBJTYPE COleClientItem::GetType()const 4931 short CPictureHolder::GetType() 4932 unsigned long CProperty::GetType() 4933 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4934 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4935 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4936 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4937 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4938 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4939 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4940 unsigned int CCmdTarget::GetTypeInfoCount() 4941 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 4942 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 4943 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 4944 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 4945 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 4946 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 4947 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 4948 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 4949 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 4950 CTypeLibCache * CCmdTarget::GetTypeLibCache() 4951 void COleSafeArray::GetUBound(unsigned long,long *) 4952 enum _undonameid CRichEditCtrl::GetUndoName()const 4953 int CWnd::GetUpdateRect(tagRECT *,int) 4954 int CWnd::GetUpdateRgn(CRgn *,int) 4955 int CByteArray::GetUpperBound()const 4956 int CDWordArray::GetUpperBound()const 4957 int CObArray::GetUpperBound()const 4958 int CPtrArray::GetUpperBound()const 4959 int CStringArray::GetUpperBound()const 4960 int CUIntArray::GetUpperBound()const 4961 int CWordArray::GetUpperBound()const 4962 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 4963 long COleControl::XOleObject::GetUserClassID(_GUID *) 4964 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 4965 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 4966 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 4967 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 4968 void COleControl::GetUserType(wchar_t *) 4969 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 4970 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 4971 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 4972 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 4973 void * CMapPtrToPtr::GetValueAt(void *)const 4974 ATL::CStringT > > CHttpFile::GetVerb()const 4975 unsigned long CDockState::GetVersion() 4976 unsigned long CPropExchange::GetVersion() 4977 CHtmlEditView * CHtmlEditDoc::GetView()const 4978 CRichEditView * CRichEditDoc::GetView()const 4979 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 4980 CSize CDC::GetViewportExt()const 4981 CPoint CDC::GetViewportOrg()const 4982 int CListCtrl::GetViewRect(tagRECT *)const 4983 long COleControl::XViewObject::GetViewStatus(unsigned long *) 4984 int CHtmlView::GetVisible()const 4985 unsigned int CTreeCtrl::GetVisibleCount()const 4986 int CFontDialog::GetWeight()const 4987 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 4988 long CHtmlView::GetWidth()const 4989 CWnd * CDC::GetWindow()const 4990 CWnd * CWnd::GetWindow(unsigned int)const 4991 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 4992 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 4993 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 4994 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 4995 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 4996 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 4997 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 4998 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 4999 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5000 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5001 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5002 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5003 unsigned long CWnd::GetWindowContextHelpId()const 5004 CDC * CWnd::GetWindowDC() 5005 long CWnd::GetWindowedChildCount() 5006 CSize CDC::GetWindowExt()const 5007 long CWnd::GetWindowLessChildCount() 5008 IDropTarget * COleControl::GetWindowlessDropTarget() 5009 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5010 CPoint CDC::GetWindowOrg()const 5011 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5012 void CWnd::GetWindowRect(tagRECT *)const 5013 int CWnd::GetWindowRgn(HRGN__ *)const 5014 int CWnd::GetWindowTextLengthW()const 5015 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 5016 int CWnd::GetWindowTextW(wchar_t *,int)const 5017 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 5018 unsigned int CRichEditCtrl::GetWordWrapMode()const 5019 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5020 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5021 long COleDropSource::GiveFeedback(unsigned long) 5022 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5023 void CHtmlView::GoBack() 5024 void CHtmlView::GoForward() 5025 void CHtmlView::GoHome() 5026 void CHtmlView::GoSearch() 5027 void CDialog::GotoDlgCtrl(CWnd *) 5028 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5029 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5030 int CDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5031 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5032 void CMemFile::GrowFile(unsigned long) 5033 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5034 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5035 long CDialog::HandleInitDialog(unsigned int,long) 5036 long CDialogBar::HandleInitDialog(unsigned int,long) 5037 long CFormView::HandleInitDialog(unsigned int,long) 5038 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5039 long CPropertySheet::HandleInitDialog(unsigned int,long) 5040 long CScrollView::HandleMButtonDown(unsigned int,long) 5041 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5042 int COleControlContainer::HandleSetFocus() 5043 long CDialog::HandleSetFont(unsigned int,long) 5044 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5045 long COleControl::XPersistStorage::HandsOffStorage() 5046 long COleServerDoc::XPersistStorage::HandsOffStorage() 5047 int COleDocument::HasBlankItems()const 5048 int CComboBoxEx::HasEditChanged() 5049 int CDialogTemplate::HasFont()const 5050 unsigned int HashKey(tagVARIANT const &) 5051 unsigned int HashKey(wchar_t const *) 5052 unsigned int HashKey(char const *) 5053 unsigned int HashKey(ATL::CComBSTR) 5054 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5055 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 5056 void * CFile::hFileNull 5057 void CWinApp::HideApplication() 5058 int CToolBarCtrl::HideButton(int,int) 5059 void CWnd::HideCaret() 5060 void CFileDialog::HideControl(int) 5061 void CRichEditCtrl::HideSelection(int,int) 5062 long CBrowserControlSite::HideUI() 5063 long CDHtmlDialog::HideUI() 5064 long CHtmlControlSite::XDocHostUIHandler::HideUI() 5065 int CTabCtrl::HighlightItem(int,int) 5066 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5067 void CDC::HIMETRICtoDP(tagSIZE *)const 5068 void CDC::HIMETRICtoLP(tagSIZE *)const 5069 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5070 int CListCtrl::HitTest(CPoint,unsigned int *)const 5071 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5072 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5073 int CRectTracker::HitTest(CPoint)const 5074 int CSplitterWnd::HitTest(CPoint)const 5075 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5076 int CToolBarCtrl::HitTest(tagPOINT *)const 5077 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 5078 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5079 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5080 int CRectTracker::HitTestHandles(CPoint)const 5081 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 5082 void CWnd::HtmlHelpW(unsigned long,unsigned int) 5083 int CSplitterWnd::IdFromRowCol(int,int)const 5084 int CReBarCtrl::IDToIndex(unsigned int)const 5085 void COlePropertyPage::IgnoreApply(unsigned int) 5086 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5087 int CToolBarCtrl::Indeterminate(int,int) 5088 int CCriticalSection::Init() 5089 int CWinApp::InitApplication() 5090 long COleControl::XOleCache::InitCache(IDataObject *) 5091 int CWnd::InitControlContainer() 5092 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5093 long CPrintDialogEx::InitDone() 5094 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5095 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5096 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5097 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5098 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5099 void CMapPtrToWord::InitHashTable(unsigned int,int) 5100 void CMapStringToOb::InitHashTable(unsigned int,int) 5101 void CMapStringToPtr::InitHashTable(unsigned int,int) 5102 void CMapStringToString::InitHashTable(unsigned int,int) 5103 void CMapWordToOb::InitHashTable(unsigned int,int) 5104 void CMapWordToPtr::InitHashTable(unsigned int,int) 5105 long CDataSourceControl::Initialize() 5106 void CDHtmlDialog::Initialize() 5107 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5108 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5109 int CEditView::InitializeReplace() 5110 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5111 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5112 int COleControlModule::InitInstance() 5113 int CWinApp::InitInstance() 5114 int CWinThread::InitInstance() 5115 void CWinApp::InitLibId() 5116 void CDockContext::InitLoop() 5117 int CDialog::InitModalIndirect(void *,CWnd *) 5118 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5119 long COleControl::XPersistMemory::InitNew() 5120 long COleControl::XPersistPropertyBag::InitNew() 5121 long COleControl::XPersistStorage::InitNew(IStorage *) 5122 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5123 long COleControl::XPersistStreamInit::InitNew() 5124 void CRecordset::InitRecord() 5125 void COleControl::InitStockEventMask() 5126 void COleControl::InitStockPropMask() 5127 int CComboBox::InitStorage(int,unsigned int) 5128 int CListBox::InitStorage(int,unsigned int) 5129 void CSimpleException::InitString() 5130 int CFrameWnd::InModalState()const 5131 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 5132 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 5133 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5134 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5135 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5136 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5137 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 5138 void CByteArray::InsertAt(int,unsigned char,int) 5139 void CByteArray::InsertAt(int,CByteArray *) 5140 void CDWordArray::InsertAt(int,unsigned long,int) 5141 void CDWordArray::InsertAt(int,CDWordArray *) 5142 void CObArray::InsertAt(int,CObArray *) 5143 void CObArray::InsertAt(int,CObject *,int) 5144 void CPtrArray::InsertAt(int,CPtrArray *) 5145 void CPtrArray::InsertAt(int,void *,int) 5146 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5147 void CStringArray::InsertAt(int,CStringArray *) 5148 void CStringArray::InsertAt(int,wchar_t const *,int) 5149 void CUIntArray::InsertAt(int,unsigned int,int) 5150 void CUIntArray::InsertAt(int,CUIntArray *) 5151 void CWordArray::InsertAt(int,unsigned short,int) 5152 void CWordArray::InsertAt(int,CWordArray *) 5153 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOW *) 5154 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5155 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5156 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5157 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 5158 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5159 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 5160 int CListCtrl::InsertColumn(int,tagLVCOLUMNW const *) 5161 void CStringArray::InsertEmpty(int,int) 5162 void CRichEditView::InsertFileAsObject(wchar_t const *) 5163 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 5164 int CHeaderCtrl::InsertItem(int,_HD_ITEMW *) 5165 int CListCtrl::InsertItem(int,wchar_t const *) 5166 int CListCtrl::InsertItem(int,wchar_t const *,int) 5167 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 5168 int CListCtrl::InsertItem(tagLVITEMW const *) 5169 long CRichEditView::InsertItem(CRichEditCntrItem *) 5170 long CTabCtrl::InsertItem(int,tagTCITEMW *) 5171 long CTabCtrl::InsertItem(int,wchar_t const *) 5172 long CTabCtrl::InsertItem(int,wchar_t const *,int) 5173 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 5174 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 5175 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5176 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTW *) 5177 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,int,int,_TREEITEM *,_TREEITEM *) 5178 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,_TREEITEM *,_TREEITEM *) 5179 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5180 int CMenu::InsertMenuItemW(unsigned int,tagMENUITEMINFOW *,int) 5181 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5182 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5183 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5184 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5185 int CComboBox::InsertString(int,wchar_t const *) 5186 int CComboBoxEx::InsertString(int,wchar_t const *) 5187 int CListBox::InsertString(int,wchar_t const *) 5188 unsigned long CCmdTarget::InternalAddRef() 5189 CFontHolder & COleControl::InternalGetFont() 5190 ATL::CStringT > > const & COleControl::InternalGetText() 5191 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5192 unsigned long CCmdTarget::InternalRelease() 5193 void COleControl::InternalSetReadyState(long) 5194 int CDC::IntersectClipRect(int,int,int,int) 5195 int CDC::IntersectClipRect(tagRECT const *) 5196 void CWnd::Invalidate(int) 5197 void CCheckListBox::InvalidateCheck(int) 5198 void COleControl::InvalidateControl(tagRECT const *,int) 5199 void CCheckListBox::InvalidateItem(int) 5200 void CRichEditDoc::InvalidateObjectCache() 5201 void CWnd::InvalidateRect(tagRECT const *,int) 5202 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5203 void COleControl::InvalidateRgn(CRgn *,int) 5204 void CWnd::InvalidateRgn(CRgn *,int) 5205 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5206 void CDC::InvertRect(tagRECT const *) 5207 int CDC::InvertRgn(CRgn *) 5208 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5209 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5210 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5211 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5212 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5213 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5214 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5215 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5216 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5217 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5218 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5219 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5220 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5221 int CAsyncSocket::IOCtl(long,unsigned long *) 5222 int CFileFind::IsArchived()const 5223 int CPropExchange::IsAsynchronous() 5224 int CDocItem::IsBlank()const 5225 int CIPAddressCtrl::IsBlank()const 5226 int COleServerItem::IsBlank()const 5227 int CSocket::IsBlocking() 5228 int CRecordset::IsBOF()const 5229 int CFontDialog::IsBold()const 5230 int CArchive::IsBufferEmpty()const 5231 int CToolBarCtrl::IsButtonChecked(int)const 5232 int CPropertyPage::IsButtonEnabled(int) 5233 int CToolBarCtrl::IsButtonEnabled(int)const 5234 int CToolBarCtrl::IsButtonHidden(int)const 5235 int CToolBarCtrl::IsButtonHighlighted(int)const 5236 int CToolBarCtrl::IsButtonIndeterminate(int)const 5237 int CToolBarCtrl::IsButtonPressed(int)const 5238 int CArchive::IsByteSwapping()const 5239 int CWnd::IsChild(CWnd const *)const 5240 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5241 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5242 int CFileFind::IsCompressed()const 5243 int COleServerItem::IsConnected()const 5244 int COleControl::IsConvertingVBX() 5245 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5246 int COleControlSite::IsDefaultButton() 5247 int CRecordset::IsDeleted()const 5248 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5249 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 5250 int CWnd::IsDialogMessageW(tagMSG *) 5251 int CFileFind::IsDirectory()const 5252 long CBlobProperty::IsDirty() 5253 long COleLinkingDoc::XPersistFile::IsDirty() 5254 long COleControl::XPersistMemory::IsDirty() 5255 long COleControl::XPersistStorage::IsDirty() 5256 long COleServerDoc::XPersistStorage::IsDirty() 5257 long COleControl::XPersistStreamInit::IsDirty() 5258 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5259 unsigned int CWnd::IsDlgButtonChecked(int)const 5260 int CControlBar::IsDockBar()const 5261 int CDockBar::IsDockBar()const 5262 int COleServerDoc::IsDocObject()const 5263 int CFileFind::IsDots()const 5264 int CGopherFileFind::IsDots()const 5265 int COleServerDoc::IsEmbedded()const 5266 int CByteArray::IsEmpty()const 5267 int CDWordArray::IsEmpty()const 5268 int CMapPtrToPtr::IsEmpty()const 5269 int CMapPtrToWord::IsEmpty()const 5270 int CMapStringToOb::IsEmpty()const 5271 int CMapStringToPtr::IsEmpty()const 5272 int CMapStringToString::IsEmpty()const 5273 int CMapWordToOb::IsEmpty()const 5274 int CMapWordToPtr::IsEmpty()const 5275 int CObArray::IsEmpty()const 5276 int CObList::IsEmpty()const 5277 int CPtrArray::IsEmpty()const 5278 int CPtrList::IsEmpty()const 5279 int CStringArray::IsEmpty()const 5280 int CStringList::IsEmpty()const 5281 int CUIntArray::IsEmpty()const 5282 int CWordArray::IsEmpty()const 5283 int CCheckListBox::IsEnabled(int) 5284 int CRecordset::IsEOF()const 5285 int CDHtmlDialog::IsExternalDispatchSafe() 5286 int CRecordset::IsFieldDirty(void *) 5287 int CRecordset::IsFieldNull(void *) 5288 int CRecordset::IsFieldNullable(void *) 5289 int CRecordset::IsFieldNullable(unsigned long)const 5290 int CRecordset::IsFieldStatusDirty(unsigned long)const 5291 int CRecordset::IsFieldStatusNull(unsigned long)const 5292 int CFieldExchange::IsFieldType(unsigned int *) 5293 int CControlBar::IsFloating()const 5294 int CFrameWnd::IsFrameWnd()const 5295 int CWnd::IsFrameWnd()const 5296 int IsHelpKey(tagMSG *) 5297 int CFileFind::IsHidden()const 5298 int CWnd::IsIconic()const 5299 int CWinThread::IsIdleMessage(tagMSG *) 5300 int COleClientItem::IsInPlaceActive()const 5301 int COleServerDoc::IsInPlaceActive()const 5302 int CCmdTarget::IsInvokeAllowed(long) 5303 int COleControl::IsInvokeAllowed(long) 5304 int CFontDialog::IsItalic()const 5305 int CRecordset::IsJoin(wchar_t const *) 5306 int CObject::IsKindOf(CRuntimeconst *)const 5307 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5308 int COccManager::IsLabelControl(CWnd *) 5309 int COleObjectFactory::IsLicenseValid() 5310 int COleServerItem::IsLinkedItem()const 5311 int COleClientItem::IsLinkUpToDate()const 5312 int CArchive::IsLoading()const 5313 int CPropExchange::IsLoading() 5314 int CMultiLock::IsLocked(unsigned long) 5315 int CSingleLock::IsLocked() 5316 int CRichEditCntrItem::IsMarked() 5317 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5318 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5319 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5320 int CDocument::IsModified() 5321 int CHtmlEditDoc::IsModified() 5322 int COleClientItem::IsModified()const 5323 int COleControl::IsModified() 5324 int COlePropertyPage::IsModified() 5325 int CRichEditDoc::IsModified() 5326 int CFileFind::IsNormal()const 5327 int CRecordView::IsOnFirstRecord() 5328 int CRecordView::IsOnLastRecord() 5329 int CDatabase::IsOpen()const 5330 int COleClientItem::IsOpen()const 5331 int CRecordset::IsOpen()const 5332 int COleControl::IsOptimizedDraw() 5333 long COlePropertyPage::XPropertyPage::IsPageDirty() 5334 int CRecordset::IsParamStatusNull(unsigned long)const 5335 int CDC::IsPrinting()const 5336 int CFileFind::IsReadOnly()const 5337 int CRecordset::IsRecordsetUpdatable() 5338 int COleObjectFactory::IsRegistered()const 5339 int CCmdTarget::IsResultExpected() 5340 int CRichEditView::IsRichEditFormat(unsigned short) 5341 int COleClientItem::IsRunning()const 5342 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 5343 int CRichEditView::IsSelected(CObject const *)const 5344 int CView::IsSelected(CObject const *)const 5345 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 5346 int CObject::IsSerializable()const 5347 int COleMessageFilter::IsSignificantMessage(tagMSG *) 5348 int CStatusBarCtrl::IsSimple()const 5349 int CDHtmlDialog::IsSinkedElement(IDispatch *) 5350 int CRecordset::IsSQLUpdatable(wchar_t const *) 5351 int CArchive::IsStoring()const 5352 int CFontDialog::IsStrikeOut()const 5353 int COleControl::IsSubclassedControl() 5354 int CFileFind::IsSystem()const 5355 int CFileFind::IsTemporary()const 5356 int CFindReplaceDialog::IsTerminating()const 5357 int CWnd::IsTopParentActive()const 5358 int CFrameWnd::IsTracking()const 5359 int CSplitterWnd::IsTracking() 5360 int CFontDialog::IsUnderline()const 5361 long CDocObjectServer::XOleObject::IsUpToDate() 5362 long COleControl::XOleObject::IsUpToDate() 5363 long COleServerDoc::XOleObject::IsUpToDate() 5364 long COleServerItem::XOleObject::IsUpToDate() 5365 int COleChangeSourceDialog::IsValidSource() 5366 int CControlBar::IsVisible()const 5367 int COleControlSite::IsWindowEnabled()const 5368 int CWnd::IsWindowEnabled()const 5369 int CWnd::IsWindowVisible()const 5370 int CPropertySheet::IsWizard()const 5371 int CWnd::IsZoomed()const 5372 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 5373 int CDragListBox::ItemFromPt(CPoint,int)const 5374 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 5375 void COleControl::KeyDown(unsigned short *) 5376 void COleControl::KeyUp(unsigned short *) 5377 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 5378 int CWnd::KillTimer(unsigned int) 5379 int CHeaderCtrl::Layout(_HD_LAYOUT *) 5380 void CToolBar::Layout() 5381 int CComboBox::LimitText(int) 5382 void CEdit::LimitText(int) 5383 void CRichEditCtrl::LimitText(long) 5384 int CEdit::LineFromChar(int)const 5385 long CRichEditCtrl::LineFromChar(long)const 5386 int CEdit::LineIndex(int)const 5387 int CRichEditCtrl::LineIndex(int)const 5388 int CEdit::LineLength(int)const 5389 int CRichEditCtrl::LineLength(int)const 5390 void CEdit::LineScroll(int,int) 5391 void CRichEditCtrl::LineScroll(int,int) 5392 int CDC::LineTo(int,int) 5393 int CDC::LineTo(tagPOINT) 5394 int CAsyncSocket::Listen(int) 5395 unsigned long CRichEditView::lMaxSize 5396 long CBlobProperty::Load(IStream *) 5397 int CDialogTemplate::Load(wchar_t const *) 5398 void COleControl::Load(wchar_t const *,CDataPathProperty &) 5399 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 5400 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 5401 long COleControl::XPersistMemory::Load(void *,unsigned long) 5402 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 5403 long COleControl::XPersistStorage::Load(IStorage *) 5404 long COleServerDoc::XPersistStorage::Load(IStorage *) 5405 long COleControl::XPersistStreamInit::Load(IStream *) 5406 int CFrameWnd::LoadAccelTable(wchar_t const *) 5407 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 5408 void CFrameWnd::LoadBarState(wchar_t const *) 5409 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 5410 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 5411 int CBitmap::LoadBitmapW(unsigned int) 5412 int CBitmap::LoadBitmapW(wchar_t const *) 5413 int CToolBar::LoadBitmapW(unsigned int) 5414 int CToolBar::LoadBitmapW(wchar_t const *) 5415 HICON__ * CWinApp::LoadCursorW(unsigned int)const 5416 HICON__ * CWinApp::LoadCursorW(wchar_t const *)const 5417 void CRecordset::LoadFields() 5418 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5419 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5420 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5421 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5422 int CDHtmlDialog::LoadFromResource(unsigned int) 5423 int CDHtmlDialog::LoadFromResource(wchar_t const *) 5424 int CHtmlView::LoadFromResource(unsigned int) 5425 int CHtmlView::LoadFromResource(wchar_t const *) 5426 void COleDocument::LoadFromStorage() 5427 HICON__ * CWinApp::LoadIconW(unsigned int)const 5428 HICON__ * CWinApp::LoadIconW(wchar_t const *)const 5429 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 5430 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 5431 int CMenu::LoadMenuIndirectW(void const *) 5432 int CMenu::LoadMenuW(unsigned int) 5433 int CMenu::LoadMenuW(wchar_t const *) 5434 int CBitmap::LoadOEMBitmap(unsigned int) 5435 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 5436 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 5437 HICON__ * CWinApp::LoadStandardCursor(wchar_t const *)const 5438 HICON__ * CWinApp::LoadStandardIcon(wchar_t const *)const 5439 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 5440 void CDockState::LoadState(wchar_t const *) 5441 long COleControl::LoadState(IStream *) 5442 void CWinApp::LoadStdProfileSettings(unsigned int) 5443 int CWinApp::LoadSysPolicies() 5444 void CDocTemplate::LoadTemplate() 5445 void CMultiDocTemplate::LoadTemplate() 5446 int CToolBar::LoadToolBar(unsigned int) 5447 int CToolBar::LoadToolBar(wchar_t const *) 5448 int CCriticalSection::Lock() 5449 int CCriticalSection::Lock(unsigned long) 5450 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 5451 void COleSafeArray::Lock() 5452 int CSingleLock::Lock(unsigned long) 5453 int CSyncObject::Lock(unsigned long) 5454 void CTypeLibCache::Lock() 5455 wchar_t const * CEditView::LockBuffer()const 5456 long COleControlContainer::XOleContainer::LockContainer(int) 5457 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 5458 void COleLinkingDoc::LockExternal(int,int) 5459 int COleControl::LockInPlaceActive(int) 5460 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 5461 void CFile::LockRange(unsigned __int64,unsigned __int64) 5462 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 5463 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 5464 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 5465 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 5466 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 5467 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5468 long COleObjectFactory::XClassFactory::LockServer(int) 5469 int CWnd::LockWindowUpdate() 5470 int CMapPtrToPtr::Lookup(void *,void * &)const 5471 int CMapPtrToWord::Lookup(void *,unsigned short &)const 5472 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 5473 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 5474 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 5475 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 5476 int CMapWordToPtr::Lookup(unsigned short,void * &)const 5477 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 5478 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 5479 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 5480 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 5481 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 5482 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 5483 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 5484 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 5485 void CDC::LPtoDP(tagPOINT *,int)const 5486 void CDC::LPtoDP(tagRECT *)const 5487 void CDC::LPtoDP(tagSIZE *)const 5488 void CDC::LPtoHIMETRIC(tagSIZE *)const 5489 int CToolBarCtrl::MapAccelerator(wchar_t,unsigned int *) 5490 void CDialog::MapDialogRect(tagRECT *)const 5491 void CPropertySheet::MapDialogRect(tagRECT *)const 5492 void CArchive::MapObject(CObject const *) 5493 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 5494 int COleDialog::MapResult(unsigned int) 5495 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 5496 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 5497 long CPropertyPage::MapWizardResult(long) 5498 void CRichEditCntrItem::Mark(int) 5499 int CToolBarCtrl::MarkButton(int,int) 5500 void CRecordset::MarkForAddNew() 5501 void CRecordset::MarkForUpdate() 5502 void CRichEditDoc::MarkItemsClear()const 5503 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 5504 int CFindReplaceDialog::MatchCase()const 5505 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 5506 int CFileFind::MatchesMask(unsigned long)const 5507 int CFindReplaceDialog::MatchWholeWord()const 5508 void CReBarCtrl::MaximizeBand(unsigned int) 5509 void CMDIChildWnd::MDIActivate() 5510 void CMDIFrameWnd::MDIActivate(CWnd *) 5511 void CMDIFrameWnd::MDICascade(int) 5512 void CMDIFrameWnd::MDICascade() 5513 void CMDIChildWnd::MDIDestroy() 5514 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 5515 void CMDIFrameWnd::MDIIconArrange() 5516 void CMDIChildWnd::MDIMaximize() 5517 void CMDIFrameWnd::MDIMaximize(CWnd *) 5518 void CMDIFrameWnd::MDINext() 5519 void CMDIFrameWnd::MDIPrev() 5520 void CMDIChildWnd::MDIRestore() 5521 void CMDIFrameWnd::MDIRestore(CWnd *) 5522 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 5523 void CMDIFrameWnd::MDITile(int) 5524 void CMDIFrameWnd::MDITile() 5525 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 5526 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 5527 void CComboBox::MeasureItem(tagMEASUREITEM*) 5528 void CListBox::MeasureItem(tagMEASUREITEM*) 5529 void CMenu::MeasureItem(tagMEASUREITEM*) 5530 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 5531 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 5532 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 5533 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 5534 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 5535 void CReBarCtrl::MinimizeBand(unsigned int) 5536 void CPreviewDC::MirrorAttributes() 5537 void CPreviewDC::MirrorFont() 5538 void CPreviewDC::MirrorMappingMode(int) 5539 void CPreviewDC::MirrorViewportOrg() 5540 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5541 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5542 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 5543 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 5544 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 5545 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5546 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5547 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 5548 void CDockContext::Move(CPoint) 5549 void CRecordset::Move(long,unsigned short) 5550 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 5551 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 5552 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 5553 void CRecordset::MoveFirst() 5554 void CRecordset::MoveLast() 5555 void CRecordset::MoveNext() 5556 void CRecordset::MovePrev() 5557 CPoint CDC::MoveTo(int,int) 5558 CPoint CDC::MoveTo(tagPOINT) 5559 void COleControlSite::MoveWindow(int,int,int,int) 5560 void CWnd::MoveWindow(int,int,int,int,int) 5561 void CWnd::MoveWindow(tagRECT const *,int) 5562 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5563 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5564 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 5565 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5566 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 5567 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 5568 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 5569 unsigned int COleDropSource::nDragDelay 5570 unsigned int COleDropSource::nDragMinDist 5571 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 5572 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 5573 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 5574 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 5575 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 5576 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 5577 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 5578 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 5579 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 5580 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 5581 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 5582 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 5583 void CDialog::NextDlgCtrl()const 5584 unsigned int const CEditView::nMaxSize 5585 int CRectTracker::NormalizeHit(int)const 5586 void CDataBoundProperty::Notify() 5587 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 5588 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 5589 void COleServerDoc::NotifyChanged() 5590 void COleServerItem::NotifyChanged(enum tagDVASPECT) 5591 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 5592 void COleServerDoc::NotifyClosed() 5593 void CFrameWnd::NotifyFloatingWindows(unsigned long) 5594 void COleServerDoc::NotifyRename(wchar_t const *) 5595 void COleServerDoc::NotifySaved() 5596 void CWnd::NotifyWinEvent(unsigned long,long,long) 5597 unsigned int COleDropTarget::nScrollDelay 5598 int COleDropTarget::nScrollInset 5599 unsigned int COleDropTarget::nScrollInterval 5600 int CDC::OffsetClipRgn(int,int) 5601 int CDC::OffsetClipRgn(tagSIZE) 5602 int CProgressCtrl::OffsetPos(int) 5603 int CRgn::OffsetRgn(int,int) 5604 int CRgn::OffsetRgn(tagPOINT) 5605 CPoint CDC::OffsetViewportOrg(int,int) 5606 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 5607 CPoint CPreviewDC::OffsetViewportOrg(int,int) 5608 CPoint CDC::OffsetWindowOrg(int,int) 5609 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5610 void CAsyncSocket::OnAccept(int) 5611 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 5612 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 5613 void COleClientItem::OnActivate() 5614 void COleFrameHook::OnActivate(int) 5615 void CWnd::OnActivate(unsigned int,CWnd *,int) 5616 void CWnd::OnActivateApp(int,unsigned long) 5617 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 5618 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 5619 long COleControl::OnActivateInPlace(int,tagMSG *) 5620 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 5621 long CWnd::OnActivateTopLevel(unsigned int,long) 5622 void COleClientItem::OnActivateUI() 5623 long CDocObjectServer::OnActivateView() 5624 void CFormView::OnActivateView(int,CView *,CView *) 5625 void CPreviewView::OnActivateView(int,CView *,CView *) 5626 void CRichEditView::OnActivateView(int,CView *,CView *) 5627 void CView::OnActivateView(int,CView *,CView *) 5628 long CToolTipCtrl::OnAddTool(unsigned int,long) 5629 void CConnectionPoint::OnAdvise(int) 5630 void COleControl::XEventConnPt::OnAdvise(int) 5631 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 5632 void COleControl::OnAmbientPropertyChange(long) 5633 long COleControl::XOleControl::OnAmbientPropertyChange(long) 5634 void COleControl::OnAppearanceChanged() 5635 void CWinApp::OnAppExit() 5636 int CPropertyPage::OnApply() 5637 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 5638 void CDocObjectServer::OnApplyViewState(CArchive &) 5639 void CWnd::OnAskCbFormatName(unsigned int,wchar_t *) 5640 void COleControl::OnBackColorChanged() 5641 int CFrameWnd::OnBarCheck(unsigned int) 5642 int COleIPFrameWnd::OnBarCheck(unsigned int) 5643 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 5644 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 5645 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 5646 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 5647 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 5648 int COleDropSource::OnBeginDrag(CWnd *) 5649 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5650 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5651 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 5652 void COleControl::OnBorderStyleChanged() 5653 void CRichEditView::OnBullet() 5654 int COleMessageFilter::OnBusyDialog(HTASK__ *) 5655 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 5656 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 5657 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 5658 void CCommonDialog::OnCancel() 5659 void CDialog::OnCancel() 5660 void CPropertyPage::OnCancel() 5661 void CRichEditView::OnCancelEditCntr() 5662 void COleControl::OnCancelMode() 5663 void CSplitterWnd::OnCancelMode() 5664 void CWnd::OnCancelMode() 5665 void CWnd::OnCaptureChanged(CWnd *) 5666 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 5667 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 5668 long COleControl::XFontNotification::OnChanged(long) 5669 long COleControlSite::XPropertyNotifySink::OnChanged(long) 5670 long COlePropertyPage::XPropNotifySink::OnChanged(long) 5671 void CRectTracker::OnChangedRect(CRect const &) 5672 void CDocument::OnChangedViewList() 5673 int COleClientItem::OnChangeItemPosition(CRect const &) 5674 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 5675 void CWnd::OnChangeUIState(unsigned int,unsigned int) 5676 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 5677 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 5678 void CRichEditView::OnCharBold() 5679 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 5680 void CRichEditView::OnCharItalic() 5681 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 5682 void CRichEditView::OnCharUnderline() 5683 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 5684 void CWnd::OnChildActivate() 5685 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 5686 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5687 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5688 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5689 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5690 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5691 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5692 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 5693 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 5694 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 5695 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5696 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5697 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 5698 void COleControl::OnClick(unsigned short) 5699 CEnumArray * CEnumArray::OnClone() 5700 CEnumArray * CEnumConnections::OnClone() 5701 void CAsyncSocket::OnClose(int) 5702 void CControlFrameWnd::OnClose() 5703 void CFrameWnd::OnClose() 5704 void CMiniDockFrameWnd::OnClose() 5705 void COleControl::OnClose(unsigned long) 5706 void COleServerDoc::OnClose(enum tagOLECLOSE) 5707 void CPropertySheet::OnClose() 5708 void CWnd::OnClose() 5709 void COleClientItem::XAdviseSink::OnClose() 5710 void CDocObjectServer::OnCloseDocument() 5711 void CDocument::OnCloseDocument() 5712 void COleDocument::OnCloseDocument() 5713 void COleLinkingDoc::OnCloseDocument() 5714 void COleServerDoc::OnCloseDocument() 5715 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5716 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5717 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5718 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5719 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5720 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5721 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5722 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5723 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5724 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5725 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5726 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5727 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5728 void CRichEditView::OnColorDefault() 5729 int CColorDialog::OnColorOK() 5730 void CRichEditView::OnColorPick(unsigned long) 5731 int CFrameWnd::OnCommand(unsigned int,long) 5732 int CMDIFrameWnd::OnCommand(unsigned int,long) 5733 int COlePropertyPage::OnCommand(unsigned int,long) 5734 int CPropertySheet::OnCommand(unsigned int,long) 5735 int CSplitterWnd::OnCommand(unsigned int,long) 5736 int CWnd::OnCommand(unsigned int,long) 5737 long CDialog::OnCommandHelp(unsigned int,long) 5738 long CFrameWnd::OnCommandHelp(unsigned int,long) 5739 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 5740 long CPropertySheet::OnCommandHelp(unsigned int,long) 5741 void CHtmlView::OnCommandStateChange(long,int) 5742 void CWnd::OnCompacting(unsigned int) 5743 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 5744 void CAsyncSocket::OnConnect(int) 5745 void CFrameWnd::OnContextHelp() 5746 int COleFrameHook::OnContextHelp(int) 5747 void COleIPFrameWnd::OnContextHelp() 5748 void CWinApp::OnContextHelp() 5749 void CWnd::OnContextMenu(CWnd *,CPoint) 5750 long COleControlSite::XOleControlSite::OnControlInfoChanged() 5751 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 5752 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 5753 int CControlBar::OnCreate(tagCREATESTRUCTW *) 5754 int CEditView::OnCreate(tagCREATESTRUCTW *) 5755 int CFormView::OnCreate(tagCREATESTRUCTW *) 5756 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 5757 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 5758 int COleControl::OnCreate(tagCREATESTRUCTW *) 5759 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 5760 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 5761 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 5762 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 5763 int CView::OnCreate(tagCREATESTRUCTW *) 5764 int CWnd::OnCreate(tagCREATESTRUCTW *) 5765 int CCmdTarget::OnCreateAggregates() 5766 int COleControl::OnCreateAggregates() 5767 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 5768 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 5769 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 5770 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 5771 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 5772 CCmdTarget * COleObjectFactory::OnCreateObject() 5773 CCmdTarget * COleTemplateServer::OnCreateObject() 5774 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 5775 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 5776 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 5777 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 5778 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 5779 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 5780 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 5781 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 5782 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 5783 int CDocManager::OnDDECommand(wchar_t *) 5784 int CWinApp::OnDDECommand(wchar_t *) 5785 long CFrameWnd::OnDDEExecute(unsigned int,long) 5786 long CFrameWnd::OnDDEInitiate(unsigned int,long) 5787 long CFrameWnd::OnDDETerminate(unsigned int,long) 5788 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 5789 void COleClientItem::OnDeactivate() 5790 void COleServerDoc::OnDeactivate() 5791 void COleClientItem::OnDeactivateAndUndo() 5792 void COleClientItem::OnDeactivateUI(int) 5793 void COleServerDoc::OnDeactivateUI(int) 5794 void CRichEditCntrItem::OnDeactivateUI(int) 5795 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 5796 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 5797 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 5798 void CControlBar::OnDestroy() 5799 void CDHtmlDialog::OnDestroy() 5800 void CEditView::OnDestroy() 5801 void CFrameWnd::OnDestroy() 5802 void CHtmlView::OnDestroy() 5803 void CMDIChildWnd::OnDestroy() 5804 void CMDIFrameWnd::OnDestroy() 5805 void COleControl::OnDestroy() 5806 void COleIPFrameWnd::OnDestroy() 5807 void CRichEditView::OnDestroy() 5808 void CTabCtrl::OnDestroy() 5809 void CTreeCtrl::OnDestroy() 5810 void CTreeView::OnDestroy() 5811 void CView::OnDestroy() 5812 void CWnd::OnDestroy() 5813 void CWnd::OnDestroyClipboard() 5814 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 5815 int CWnd::OnDeviceChange(unsigned int,unsigned long) 5816 void CRichEditView::OnDevModeChange(wchar_t *) 5817 void CWnd::OnDevModeChange(wchar_t *) 5818 long CToolTipCtrl::OnDisableModal(unsigned int,long) 5819 void COleClientItem::OnDiscardUndoState() 5820 void CSplitterWnd::OnDisplayChange() 5821 long CWnd::OnDisplayChange(unsigned int,long) 5822 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 5823 int COleFrameHook::OnDocActivate(int) 5824 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 5825 void CHtmlView::OnDocumentComplete(wchar_t const *) 5826 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 5827 long CBrowserControlSite::OnDocWindowActivate(int) 5828 long CDHtmlDialog::OnDocWindowActivate(int) 5829 long CHtmlView::OnDocWindowActivate(int) 5830 void COleServerDoc::OnDocWindowActivate(int) 5831 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 5832 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 5833 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 5834 void CDocObjectServerItem::OnDoVerb(long) 5835 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 5836 void COleServerItem::OnDoVerb(long) 5837 void CHtmlView::OnDownloadBegin() 5838 void CHtmlView::OnDownloadComplete() 5839 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 5840 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 5841 void COleDropTarget::OnDragLeave(CWnd *) 5842 void CView::OnDragLeave() 5843 long CWnd::OnDragList(unsigned int,long) 5844 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 5845 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 5846 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 5847 unsigned long CView::OnDragScroll(unsigned long,CPoint) 5848 void CCtrlView::OnDraw(CDC *) 5849 void CFormView::OnDraw(CDC *) 5850 void CHtmlView::OnDraw(CDC *) 5851 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 5852 void CPreviewView::OnDraw(CDC *) 5853 void CView::OnDraw(CDC *) 5854 void CWnd::OnDrawClipboard() 5855 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 5856 void CWnd::OnDrawItem(int,tagDRAWITEM*) 5857 void COleControl::OnDrawMetafile(CDC *,CRect const &) 5858 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 5859 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 5860 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 5861 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 5862 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 5863 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 5864 void CFrameWnd::OnDropFiles(HDROP__ *) 5865 void CRichEditView::OnDropFiles(HDROP__ *) 5866 void CWnd::OnDropFiles(HDROP__ *) 5867 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 5868 int CEditView::OnEditChange() 5869 void COleDocument::OnEditChangeIcon() 5870 void CEditView::OnEditClear() 5871 void CRichEditView::OnEditClear() 5872 void COleDocument::OnEditConvert() 5873 void CEditView::OnEditCopy() 5874 void CHtmlView::OnEditCopy() 5875 void CRichEditView::OnEditCopy() 5876 void CEditView::OnEditCut() 5877 void CHtmlView::OnEditCut() 5878 void CRichEditView::OnEditCut() 5879 void CEditView::OnEditFind() 5880 void CRichEditView::OnEditFind() 5881 void CEditView::OnEditFindReplace(int) 5882 void CRichEditView::OnEditFindReplace(int) 5883 void COleDocument::OnEditLinks() 5884 void CEditView::OnEditPaste() 5885 void CHtmlView::OnEditPaste() 5886 void CRichEditView::OnEditPaste() 5887 void CRichEditView::OnEditPasteSpecial() 5888 void CRichEditView::OnEditProperties() 5889 int COlePropertyPage::OnEditProperty(long) 5890 void CRichEditView::OnEditRedo() 5891 void CEditView::OnEditRepeat() 5892 void CRichEditView::OnEditRepeat() 5893 void CEditView::OnEditReplace() 5894 void CRichEditView::OnEditReplace() 5895 void CEditView::OnEditSelectAll() 5896 void CRichEditView::OnEditSelectAll() 5897 void CEditView::OnEditUndo() 5898 void CRichEditView::OnEditUndo() 5899 void CFrameWnd::OnEnable(int) 5900 void CToolTipCtrl::OnEnable(int) 5901 void CWnd::OnEnable(int) 5902 void COleControl::OnEnabledChanged() 5903 long CHtmlView::OnEnableModeless(int) 5904 void COleFrameHook::OnEnableModeless(int) 5905 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 5906 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 5907 void CView::OnEndPrinting(CDC *,CPrintInfo *) 5908 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 5909 void CFrameWnd::OnEndSession(int) 5910 void CWnd::OnEndSession(int) 5911 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 5912 void COleControl::OnEnterIdle(unsigned int,CWnd *) 5913 void CWnd::OnEnterIdle(unsigned int,CWnd *) 5914 void CWnd::OnEnterMenuLoop(int) 5915 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 5916 int CFrameWnd::OnEraseBkgnd(CDC *) 5917 int COleControl::OnEraseBkgnd(CDC *) 5918 int COleResizeBar::OnEraseBkgnd(CDC *) 5919 int CPreviewView::OnEraseBkgnd(CDC *) 5920 int CReBar::OnEraseBkgnd(CDC *) 5921 int CToolBar::OnEraseBkgnd(CDC *) 5922 int CWnd::OnEraseBkgnd(CDC *) 5923 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 5924 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 5925 int COleControlSite::OnEvent(AFX_EVENT *) 5926 void COleControl::OnEventAdvise(int) 5927 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 5928 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 5929 void CWnd::OnExitMenuLoop(int) 5930 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 5931 void CDocument::OnFileClose() 5932 void CFileDialog::OnFileNameChange() 5933 int CFileDialog::OnFileNameOK() 5934 void CDocManager::OnFileNew() 5935 void CWinApp::OnFileNew() 5936 void CDocManager::OnFileOpen() 5937 void CWinApp::OnFileOpen() 5938 void CHtmlView::OnFilePrint() 5939 void CView::OnFilePrint() 5940 void CView::OnFilePrintPreview() 5941 void CWinApp::OnFilePrintSetup() 5942 void CDocument::OnFileSave() 5943 void CDocument::OnFileSaveAs() 5944 void COleServerDoc::OnFileSaveCopyAs() 5945 void CDocument::OnFileSendMail() 5946 void COleDocument::OnFileSendMail() 5947 void COleServerDoc::OnFileUpdate() 5948 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 5949 void CCmdTarget::OnFinalRelease() 5950 void CDocument::OnFinalRelease() 5951 void COleControl::OnFinalRelease() 5952 void COlePropertyPage::OnFinalRelease() 5953 void COleServerItem::OnFinalRelease() 5954 void CWnd::OnFinalRelease() 5955 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 5956 void CEditView::OnFindNext(wchar_t const *,int,int) 5957 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 5958 long CEditView::OnFindReplaceCmd(unsigned int,long) 5959 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 5960 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 5961 long COleControlSite::XOleControlSite::OnFocus(int) 5962 void CFileDialog::OnFolderChange() 5963 void CWnd::OnFontChange() 5964 void COleControl::OnFontChanged() 5965 void COleControl::OnForeColorChanged() 5966 void CRichEditView::OnFormatFont() 5967 void COleControl::OnFrameClose() 5968 long CBrowserControlSite::OnFrameWindowActivate(int) 5969 long CDHtmlDialog::OnFrameWindowActivate(int) 5970 long CHtmlView::OnFrameWindowActivate(int) 5971 void COleServerDoc::OnFrameWindowActivate(int) 5972 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 5973 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 5974 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 5975 void COleControl::OnFreezeEvents(int) 5976 void CHtmlView::OnFullScreen(int) 5977 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 5978 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 5979 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 5980 void COleClientItem::OnGetClipRect(CRect &) 5981 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 5982 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 5983 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 5984 unsigned int COleControl::OnGetDlgCode() 5985 unsigned int CWnd::OnGetDlgCode() 5986 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 5987 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 5988 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 5989 long CHtmlView::OnGetExternal(IDispatch * *) 5990 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 5991 HMENU__ * COleControl::OnGetInPlaceMenu() 5992 void COleClientItem::OnGetItemPosition(CRect &) 5993 void COleDocObjectItem::OnGetItemPosition(CRect &) 5994 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 5995 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 5996 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 5997 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 5998 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 5999 long CWnd::OnGetObject(unsigned int,long) 6000 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6001 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6002 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6003 long CStatusBar::OnGetText(unsigned int,long) 6004 long CStatusBar::OnGetTextLength(unsigned int,long) 6005 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6006 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6007 unsigned long COleControl::OnGetViewStatus() 6008 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6009 void CReBar::OnHeightChange(tagNMHDR *,long *) 6010 void CFrameWnd::OnHelp() 6011 int COlePropertyPage::OnHelp(wchar_t const *) 6012 void CWinApp::OnHelp() 6013 void CWnd::OnHelp() 6014 void CWinApp::OnHelpFinder() 6015 void CWnd::OnHelpFinder() 6016 long CControlBar::OnHelpHitTest(unsigned int,long) 6017 long CDialog::OnHelpHitTest(unsigned int,long) 6018 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6019 void CWinApp::OnHelpIndex() 6020 void CWnd::OnHelpIndex() 6021 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6022 int CWnd::OnHelpInfo(tagHELPINFO *) 6023 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6024 void CWinApp::OnHelpUsing() 6025 void CWnd::OnHelpUsing() 6026 void CDocObjectServerItem::OnHide() 6027 long COleControl::OnHide() 6028 void COleServerItem::OnHide() 6029 void COleControl::OnHideToolBars() 6030 long CHtmlView::OnHideUI() 6031 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6032 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6033 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6034 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6035 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6036 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6037 void CWnd::OnIconEraseBkgnd(CDC *) 6038 void CDocTemplate::OnIdle() 6039 void CDocument::OnIdle() 6040 void COleDocument::OnIdle() 6041 int CWinApp::OnIdle(long) 6042 int CWinThread::OnIdle(long) 6043 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6044 void CFrameWnd::OnIdleUpdateCmdUI() 6045 void CMDIFrameWnd::OnIdleUpdateCmdUI() 6046 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 6047 void COleIPFrameWnd::OnIdleUpdateCmdUI() 6048 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6049 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6050 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6051 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6052 int CDHtmlDialog::OnInitDialog() 6053 int CDialog::OnInitDialog() 6054 int COlePropertiesDialog::OnInitDialog() 6055 int COlePropertyPage::OnInitDialog() 6056 int CPropertySheet::OnInitDialog() 6057 void CFileDialog::OnInitDone() 6058 int COleServerItem::OnInitFromData(COleDataObject *,int) 6059 void CControlBar::OnInitialUpdate() 6060 void CFormView::OnInitialUpdate() 6061 void COleDBRecordView::OnInitialUpdate() 6062 void CRecordView::OnInitialUpdate() 6063 void CRichEditView::OnInitialUpdate() 6064 void CView::OnInitialUpdate() 6065 void CFrameWnd::OnInitMenu(CMenu *) 6066 void COleFrameHook::OnInitMenu(CMenu *) 6067 void CWnd::OnInitMenu(CMenu *) 6068 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6069 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6070 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6071 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6072 long COleClientItem::XOleIPSite::OnInPlaceActivate() 6073 long COleControlSite::XOleIPSite::OnInPlaceActivate() 6074 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6075 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 6076 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 6077 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6078 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6079 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6080 void CRichEditView::OnInsertObject() 6081 void CSplitterWnd::OnInvertTracker(CRect const &) 6082 void CDockContext::OnKey(int,int) 6083 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6084 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6085 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6086 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6087 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6088 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6089 void COleControl::OnKeyPressEvent(unsigned short) 6090 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6091 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6092 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6093 long CPropertySheet::OnKickIdle(unsigned int,long) 6094 int CPropertyPage::OnKillActive() 6095 void COleControl::OnKillFocus(CWnd *) 6096 void CWnd::OnKillFocus(CWnd *) 6097 long CCheckListBox::OnLBAddString(unsigned int,long) 6098 long CCheckListBox::OnLBFindString(unsigned int,long) 6099 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6100 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6101 long CCheckListBox::OnLBGetText(unsigned int,long) 6102 long CCheckListBox::OnLBInsertString(unsigned int,long) 6103 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6104 long CCheckListBox::OnLBSelectString(unsigned int,long) 6105 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6106 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6107 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6108 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6109 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6110 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6111 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6112 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6113 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6114 void COleControl::OnLButtonDown(unsigned int,CPoint) 6115 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6116 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6117 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6118 void CWnd::OnLButtonDown(unsigned int,CPoint) 6119 void COleControl::OnLButtonUp(unsigned int,CPoint) 6120 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6121 void CWnd::OnLButtonUp(unsigned int,CPoint) 6122 void CAsyncMonikerFile::OnLowResource() 6123 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6124 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6125 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6126 void COleControl::OnMButtonDown(unsigned int,CPoint) 6127 void CWnd::OnMButtonDown(unsigned int,CPoint) 6128 void COleControl::OnMButtonUp(unsigned int,CPoint) 6129 void CWnd::OnMButtonUp(unsigned int,CPoint) 6130 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6131 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6132 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6133 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6134 void CHtmlView::OnMenuBar(int) 6135 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6136 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6137 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6138 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6139 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6140 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6141 int COleMessageFilter::OnMessagePending(tagMSG const *) 6142 int CSocket::OnMessagePending() 6143 void COleControl::OnMnemonic(tagMSG *) 6144 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6145 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6146 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6147 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6148 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6149 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6150 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6151 void COleControl::OnMouseMove(unsigned int,CPoint) 6152 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6153 void CWnd::OnMouseMove(unsigned int,CPoint) 6154 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6155 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6156 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6157 void COleControl::OnMove(int,int) 6158 int COleDBRecordView::OnMove(unsigned int) 6159 void CRecordView::OnMove(int,int) 6160 int CRecordView::OnMove(unsigned int) 6161 void CWnd::OnMove(int,int) 6162 void CWnd::OnMoving(unsigned int,tagRECT *) 6163 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6164 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6165 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 6166 void CHtmlView::OnNavigateComplete2(wchar_t const *) 6167 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 6168 int CFrameWnd::OnNcActivate(int) 6169 int CMDIChildWnd::OnNcActivate(int) 6170 int CMiniFrameWnd::OnNcActivate(int) 6171 int CWnd::OnNcActivate(int) 6172 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6173 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6174 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6175 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6176 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6177 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6178 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 6179 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 6180 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 6181 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 6182 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 6183 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 6184 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 6185 int CWnd::OnNcCreate(tagCREATESTRUCTW *) 6186 void CListCtrl::OnNcDestroy() 6187 void CListView::OnNcDestroy() 6188 void CWnd::OnNcDestroy() 6189 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 6190 unsigned int COleControl::OnNcHitTest(CPoint) 6191 unsigned int CStatusBar::OnNcHitTest(CPoint) 6192 unsigned int CToolBar::OnNcHitTest(CPoint) 6193 unsigned int CWnd::OnNcHitTest(CPoint) 6194 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6195 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6196 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6197 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6198 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6199 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6200 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6201 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6202 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6203 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6204 void CDockBar::OnNcPaint() 6205 void COleControl::OnNcPaint() 6206 void CReBar::OnNcPaint() 6207 void CStatusBar::OnNcPaint() 6208 void CToolBar::OnNcPaint() 6209 void CWnd::OnNcPaint() 6210 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6211 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6212 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6213 int CDocument::OnNewDocument() 6214 int CHtmlEditDoc::OnNewDocument() 6215 int COleDocument::OnNewDocument() 6216 int COleLinkingDoc::OnNewDocument() 6217 void COleServerDoc::OnNewEmbedding(IStorage *) 6218 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6219 int CEnumArray::OnNext(void *) 6220 int CEnumConnections::OnNext(void *) 6221 int CEnumConnPoints::OnNext(void *) 6222 int CEnumFormatEtc::OnNext(void *) 6223 int CEnumOleVerb::OnNext(void *) 6224 int CEnumUnknown::OnNext(void *) 6225 void CPreviewView::OnNextPage() 6226 int CView::OnNextPaneCmd(unsigned int) 6227 int CFileDialog::OnNotify(unsigned int,long,long *) 6228 int CPropertyPage::OnNotify(unsigned int,long,long *) 6229 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6230 int CWnd::OnNotify(unsigned int,long,long *) 6231 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6232 long CWnd::OnNTCtlColor(unsigned int,long) 6233 void CPreviewView::OnNumPageChange() 6234 void COlePropertyPage::OnObjectsChanged() 6235 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6236 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6237 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6238 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6239 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6240 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6241 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6242 void CCommonDialog::OnOK() 6243 void CDialog::OnOK() 6244 void CPropertyPage::OnOK() 6245 long COleControl::OnOpen(int,tagMSG *) 6246 void COleServerItem::OnOpen() 6247 int CDocument::OnOpenDocument(wchar_t const *) 6248 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 6249 int COleDocument::OnOpenDocument(wchar_t const *) 6250 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 6251 void COleServerDoc::OnOpenEmbedding(IStorage *) 6252 int CWinApp::OnOpenRecentFile(unsigned int) 6253 void CAsyncSocket::OnOutOfBandData(int) 6254 void CCommonDialog::OnPaint() 6255 void CControlBar::OnPaint() 6256 void CCtrlView::OnPaint() 6257 void CDialog::OnPaint() 6258 void CDockBar::OnPaint() 6259 void CHtmlEditView::OnPaint() 6260 void CHtmlView::OnPaint() 6261 void COleControl::OnPaint(CDC *) 6262 int COleControlContainer::OnPaint(CDC *) 6263 void COleResizeBar::OnPaint() 6264 void CReBar::OnPaint() 6265 void CSplitterWnd::OnPaint() 6266 void CStatusBar::OnPaint() 6267 void CToolBar::OnPaint() 6268 void CView::OnPaint() 6269 void CWnd::OnPaint() 6270 void CWnd::OnPaintClipboard(CWnd *,void *) 6271 void CFrameWnd::OnPaletteChanged(CWnd *) 6272 void COleFrameHook::OnPaletteChanged(CWnd *) 6273 void CWnd::OnPaletteChanged(CWnd *) 6274 void CWnd::OnPaletteIsChanging(CWnd *) 6275 void CRichEditView::OnParaAlign(unsigned short) 6276 void CRichEditView::OnParaCenter() 6277 void CRichEditView::OnParaLeft() 6278 void CRichEditView::OnParaRight() 6279 void CWnd::OnParentNotify(unsigned int,long) 6280 int CRichEditView::OnPasteNativeObject(IStorage *) 6281 long CFrameWnd::OnPopMessageString(unsigned int,long) 6282 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 6283 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 6284 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 6285 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 6286 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 6287 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 6288 void CView::OnPrepareDC(CDC *,CPrintInfo *) 6289 int CEditView::OnPreparePrinting(CPrintInfo *) 6290 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 6291 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6292 int CView::OnPreparePrinting(CPrintInfo *) 6293 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6294 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 6295 void CPreviewView::OnPreviewClose() 6296 void CPreviewView::OnPreviewPrint() 6297 void CPreviewView::OnPrevPage() 6298 void CEditView::OnPrint(CDC *,CPrintInfo *) 6299 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6300 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 6301 void CView::OnPrint(CDC *,CPrintInfo *) 6302 void CRichEditView::OnPrinterChanged(CDC const &) 6303 void CPrintDialog::OnPrintSetup() 6304 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 6305 void CHtmlView::OnProgressChange(long,long) 6306 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 6307 void CHtmlView::OnPropertyChange(wchar_t const *) 6308 int CPropertyPage::OnQueryCancel() 6309 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 6310 HICON__ * CWnd::OnQueryDragIcon() 6311 int CFrameWnd::OnQueryEndSession() 6312 int CWnd::OnQueryEndSession() 6313 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6314 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6315 int CFrameWnd::OnQueryNewPalette() 6316 int COleFrameHook::OnQueryNewPalette() 6317 int CWnd::OnQueryNewPalette() 6318 int CWnd::OnQueryOpen() 6319 unsigned int CWnd::OnQueryUIState() 6320 int COleServerItem::OnQueryUpdateItems() 6321 void CHtmlView::OnQuit() 6322 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 6323 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 6324 void COleControl::OnRButtonDown(unsigned int,CPoint) 6325 void CWnd::OnRButtonDown(unsigned int,CPoint) 6326 void COleControl::OnRButtonUp(unsigned int,CPoint) 6327 void CWnd::OnRButtonUp(unsigned int,CPoint) 6328 int COleServerDoc::OnReactivateAndUndo() 6329 void COleFrameHook::OnRecalcLayout() 6330 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 6331 void CReBar::OnRecalcParent() 6332 void CAsyncSocket::OnReceive(int) 6333 void COleControl::OnReflectorDestroyed() 6334 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6335 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 6336 void COleClientItem::OnRemoveMenus(CMenu *) 6337 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6338 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 6339 void CWnd::OnRenderAllFormats() 6340 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6341 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6342 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6343 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6344 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6345 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6346 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6347 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 6348 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6349 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 6350 void CWnd::OnRenderFormat(unsigned int) 6351 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6352 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6353 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 6354 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6355 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 6356 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 6357 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 6358 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 6359 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 6360 long COleControl::XFontNotification::OnRequestEdit(long) 6361 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 6362 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 6363 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6364 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6365 void CEnumArray::OnReset() 6366 void CPropertyPage::OnReset() 6367 void COleControl::OnResetState() 6368 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6369 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6370 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 6371 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6372 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6373 void COleClientItem::XAdviseSink::OnSave() 6374 int CDocument::OnSaveDocument(wchar_t const *) 6375 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 6376 int COleDocument::OnSaveDocument(wchar_t const *) 6377 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 6378 int COleServerDoc::OnSaveDocument(wchar_t const *) 6379 void COleServerDoc::OnSaveEmbedding(IStorage *) 6380 void COleServerItem::OnSaveEmbedding(IStorage *) 6381 void CDocObjectServer::OnSaveViewState(CArchive &) 6382 int CScrollView::OnScroll(unsigned int,unsigned int,int) 6383 int CView::OnScroll(unsigned int,unsigned int,int) 6384 int COleClientItem::OnScrollBy(CSize) 6385 int CScrollView::OnScrollBy(CSize,int) 6386 int CView::OnScrollBy(CSize,int) 6387 void CRichEditView::OnSelChange(tagNMHDR *,long *) 6388 void CAsyncSocket::OnSend(int) 6389 int CPropertyPage::OnSetActive() 6390 long CToolBar::OnSetBitmapSize(unsigned int,long) 6391 long CToolBar::OnSetButtonSize(unsigned int,long) 6392 void COleControl::OnSetClientSite() 6393 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 6394 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6395 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 6396 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 6397 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 6398 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6399 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6400 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6401 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6402 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6403 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6404 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6405 long CPropertySheet::OnSetDefID(unsigned int,long) 6406 int COleControl::OnSetExtent(tagSIZE *) 6407 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 6408 void CFormView::OnSetFocus(CWnd *) 6409 void CFrameWnd::OnSetFocus(CWnd *) 6410 void COleControl::OnSetFocus(CWnd *) 6411 void CWnd::OnSetFocus(CWnd *) 6412 long CCheckListBox::OnSetFont(unsigned int,long) 6413 void CDialog::OnSetFont(CFont *) 6414 long CEditView::OnSetFont(unsigned int,long) 6415 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 6416 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 6417 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 6418 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 6419 long CFrameWnd::OnSetMessageString(unsigned int,long) 6420 long COleControl::OnSetMessageString(unsigned int,long) 6421 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 6422 long CStatusBar::OnSetMinHeight(unsigned int,long) 6423 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 6424 void CDatabase::OnSetOptions(void *) 6425 void CRecordset::OnSetOptions(void *) 6426 void COlePropertyPage::OnSetPageSite() 6427 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 6428 long CToolBar::OnSetSizeHelper(CSize &,long) 6429 long COleControl::OnSetText(unsigned int,long) 6430 long CStatusBar::OnSetText(unsigned int,long) 6431 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 6432 void CRecordset::OnSetUpdateOptions(void *) 6433 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 6434 void CDocObjectServerItem::OnShow() 6435 void COleServerItem::OnShow() 6436 long CReBar::OnShowBand(unsigned int,long) 6437 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6438 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 6439 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 6440 void COleServerDoc::OnShowDocument(int) 6441 void COleClientItem::OnShowItem() 6442 void COleControl::OnShowToolBars() 6443 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6444 void COleDocument::OnShowViews(int) 6445 void COleLinkingDoc::OnShowViews(int) 6446 void COleControl::OnShowWindow(int,unsigned int) 6447 void CWnd::OnShowWindow(int,unsigned int) 6448 long COleClientItem::XOleClientSite::OnShowWindow(int) 6449 long COleControlSite::XOleClientSite::OnShowWindow(int) 6450 void CDHtmlDialog::OnSize(unsigned int,int,int) 6451 void CFrameWnd::OnSize(unsigned int,int,int) 6452 void CHtmlView::OnSize(unsigned int,int,int) 6453 void CMDIChildWnd::OnSize(unsigned int,int,int) 6454 void CMDIFrameWnd::OnSize(unsigned int,int,int) 6455 void COleControl::OnSize(unsigned int,int,int) 6456 void COleIPFrameWnd::OnSize(unsigned int,int,int) 6457 void COleResizeBar::OnSize(unsigned int,int,int) 6458 void CPreviewView::OnSize(unsigned int,int,int) 6459 void CScrollView::OnSize(unsigned int,int,int) 6460 void CSplitterWnd::OnSize(unsigned int,int,int) 6461 void CStatusBar::OnSize(unsigned int,int,int) 6462 void CWnd::OnSize(unsigned int,int,int) 6463 void CWnd::OnSizeClipboard(CWnd *,void *) 6464 long CControlBar::OnSizeParent(unsigned int,long) 6465 long CDockBar::OnSizeParent(unsigned int,long) 6466 long COleResizeBar::OnSizeParent(unsigned int,long) 6467 void CWnd::OnSizing(unsigned int,tagRECT *) 6468 int CEnumArray::OnSkip() 6469 long CSocketWnd::OnSocketDead(unsigned int,long) 6470 long CSocketWnd::OnSocketNotify(unsigned int,long) 6471 int CView::OnSplitCmd(unsigned int) 6472 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 6473 void CAsyncMonikerFile::OnStartBinding() 6474 void CHtmlView::OnStatusBar(int) 6475 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 6476 void CHtmlView::OnStatusTextChange(wchar_t const *) 6477 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 6478 void CWnd::OnStyleChanged(int,tagSTYLE*) 6479 void CWnd::OnStyleChanging(int,tagSTYLE*) 6480 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 6481 void CToolBar::OnSysColorChange() 6482 void CWnd::OnSysColorChange() 6483 void CFrameWnd::OnSysCommand(unsigned int,long) 6484 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 6485 void CPropertySheet::OnSysCommand(unsigned int,long) 6486 void CSplitterWnd::OnSysCommand(unsigned int,long) 6487 void CWnd::OnSysCommand(unsigned int,long) 6488 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 6489 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6490 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6491 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6492 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6493 void CWnd::OnTCard(unsigned int,unsigned long) 6494 void COleControl::OnTextChanged() 6495 void CEditView::OnTextNotFound(wchar_t const *) 6496 void CRichEditView::OnTextNotFound(wchar_t const *) 6497 void CHtmlView::OnTheaterMode(int) 6498 void CWnd::OnTimeChange() 6499 void CControlBar::OnTimer(unsigned int) 6500 void CWnd::OnTimer(unsigned int) 6501 void CHtmlView::OnTitleChange(wchar_t const *) 6502 void CHtmlView::OnToolBar(int) 6503 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6504 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6505 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6506 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6507 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6508 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 6509 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6510 void CFileDialog::OnTypeChange() 6511 void COleControlContainer::OnUIActivate(COleControlSite *) 6512 long COleClientItem::XOleIPSite::OnUIActivate() 6513 long COleControlSite::XOleIPSite::OnUIActivate() 6514 void COleControlContainer::OnUIDeactivate(COleControlSite *) 6515 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 6516 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 6517 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 6518 void CView::OnUpdate(CView *,long,CObject *) 6519 void CRichEditView::OnUpdateBullet(CCmdUI *) 6520 void CRichEditView::OnUpdateCharBold(CCmdUI *) 6521 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 6522 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 6523 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 6524 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 6525 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 6526 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 6527 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6528 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 6529 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 6530 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 6531 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6532 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6533 int COleServerDoc::OnUpdateDocument() 6534 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 6535 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 6536 void CHtmlView::OnUpdateEditCut(CCmdUI *) 6537 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 6538 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 6539 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 6540 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 6541 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 6542 void CEditView::OnUpdateEditUndo(CCmdUI *) 6543 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 6544 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 6545 void CDocument::OnUpdateFileSendMail(CCmdUI *) 6546 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 6547 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6548 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 6549 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6550 void CFrameWnd::OnUpdateFrameTitle(int) 6551 void CMDIChildWnd::OnUpdateFrameTitle(int) 6552 void CMDIFrameWnd::OnUpdateFrameTitle(int) 6553 int COleClientItem::OnUpdateFrameTitle() 6554 int COleFrameHook::OnUpdateFrameTitle() 6555 void COleServerItem::OnUpdateItems() 6556 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 6557 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 6558 void CEditView::OnUpdateNeedClip(CCmdUI *) 6559 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 6560 void CEditView::OnUpdateNeedFind(CCmdUI *) 6561 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 6562 void CEditView::OnUpdateNeedSel(CCmdUI *) 6563 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 6564 void CEditView::OnUpdateNeedText(CCmdUI *) 6565 void CRichEditView::OnUpdateNeedText(CCmdUI *) 6566 void CPreviewView::OnUpdateNextPage(CCmdUI *) 6567 void CView::OnUpdateNextPaneMenu(CCmdUI *) 6568 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 6569 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 6570 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 6571 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 6572 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 6573 void CRichEditView::OnUpdateParaRight(CCmdUI *) 6574 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 6575 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 6576 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 6577 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 6578 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6579 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 6580 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6581 void CRecordView::OnUpdateRecordLast(CCmdUI *) 6582 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6583 void CRecordView::OnUpdateRecordNext(CCmdUI *) 6584 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6585 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 6586 void CView::OnUpdateSplitCmd(CCmdUI *) 6587 long CHtmlView::OnUpdateUI() 6588 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 6589 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 6590 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 6591 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 6592 void CHtmlView::OnVisible(int) 6593 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 6594 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6595 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6596 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6597 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6598 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6599 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 6600 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 6601 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 6602 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 6603 void CMDIFrameWnd::OnWindowNew() 6604 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 6605 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 6606 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 6607 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 6608 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 6609 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 6610 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 6611 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 6612 void CWnd::OnWinIniChange(wchar_t const *) 6613 long CPropertyPage::OnWizardBack() 6614 int CPropertyPage::OnWizardFinish() 6615 long CPropertyPage::OnWizardNext() 6616 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 6617 void CPreviewView::OnZoomIn() 6618 void CPreviewView::OnZoomOut() 6619 int CAnimateCtrl::Open(unsigned int) 6620 int CAnimateCtrl::Open(wchar_t const *) 6621 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 6622 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 6623 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 6624 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 6625 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 6626 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 6627 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 6628 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 6629 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 6630 int CDataPathProperty::Open(CFileException *) 6631 int CDataPathProperty::Open(COleControl *,CFileException *) 6632 int CDataPathProperty::Open(wchar_t const *,CFileException *) 6633 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 6634 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 6635 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 6636 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6637 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6638 int CMonikerFile::Open(IMoniker *,CFileException *) 6639 int CMonikerFile::Open(wchar_t const *,CFileException *) 6640 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 6641 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 6642 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 6643 long CDocObjectServer::XOleDocumentView::Open() 6644 int CWnd::OpenClipboard() 6645 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 6646 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 6647 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 6648 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 6649 int CDatabase::OpenEx(wchar_t const *,unsigned long) 6650 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 6651 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 6652 int CWnd::OpenIcon() 6653 long COleUILinkInfo::OpenLinkSource(unsigned long) 6654 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 6655 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 6656 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 6657 int CHtmlEditDoc::OpenURL(wchar_t const *) 6658 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 6659 int CHeaderCtrl::OrderToIndex(int)const 6660 int CFileException::OsErrorToException(long) 6661 void CDumpContext::OutputString(wchar_t const *) 6662 int CEditView::PaginateTo(CDC *,CPrintInfo *) 6663 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 6664 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 6665 int CDC::PaintRgn(CRgn *) 6666 int CWnd::PaintWindowlessControls(CDC *) 6667 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 6668 void CWinApp::ParseCommandLine(CCommandLineInfo &) 6669 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 6670 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6671 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6672 void CCommandLineInfo::ParseLast(int) 6673 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 6674 void CCommandLineInfo::ParseParam(char const *,int,int) 6675 void CCommandLineInfo::ParseParamFlag(char const *) 6676 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 6677 void CCommandLineInfo::ParseParamNotFlag(char const *) 6678 void CComboBox::Paste() 6679 void CEdit::Paste() 6680 void CRichEditCtrl::Paste() 6681 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 6682 int CDC::PatBlt(int,int,int,int,unsigned long) 6683 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 6684 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 6685 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 6686 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 6687 int CDC::Pie(int,int,int,int,int,int,int,int) 6688 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 6689 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 6690 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 6691 int CDC::PlayMetaFile(HMETAFILE__ *) 6692 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 6693 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 6694 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 6695 int CDC::PolyBezier(tagPOINT const *,int) 6696 int CDC::PolyBezierTo(tagPOINT const *,int) 6697 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 6698 int CDC::Polygon(tagPOINT *,int) 6699 int CDC::Polyline(tagPOINT *,int) 6700 int CDC::PolylineTo(tagPOINT const *,int) 6701 int CDC::PolyPolygon(tagPOINT *,int *,int) 6702 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 6703 void CToolTipCtrl::Pop() 6704 CPoint CEdit::PosFromChar(unsigned int)const 6705 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 6706 void CPreviewView::PositionPage(unsigned int) 6707 int CAsyncMonikerFile::PostBindToStream(CFileException *) 6708 int CMonikerFile::PostBindToStream(CFileException *) 6709 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 6710 int CWnd::PostMessageW(unsigned int,unsigned int,long) 6711 void CDialog::PostModal() 6712 void CPrintDialogEx::PostModal() 6713 void COleControl::PostModalDialog(HWND__ *) 6714 void CControlBar::PostNcDestroy() 6715 void CControlFrameWnd::PostNcDestroy() 6716 void CFindReplaceDialog::PostNcDestroy() 6717 void CFrameWnd::PostNcDestroy() 6718 void COleCntrFrameWnd::PostNcDestroy() 6719 void CReflectorWnd::PostNcDestroy() 6720 void CView::PostNcDestroy() 6721 void CWnd::PostNcDestroy() 6722 int CWinThread::PostThreadMessageW(unsigned int,unsigned int,long) 6723 void CRecordset::PreBindFields() 6724 void CDocument::PreCloseFrame(CFrameWnd *) 6725 void COleDocument::PreCloseFrame(CFrameWnd *) 6726 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 6727 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 6728 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 6729 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 6730 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6731 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 6732 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 6733 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6734 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 6735 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 6736 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 6737 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6738 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6739 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 6740 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 6741 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 6742 int CView::PreCreateWindow(tagCREATESTRUCTW &) 6743 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 6744 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 6745 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 6746 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 6747 void CDialog::PreInitDialog() 6748 void COleChangeSourceDialog::PreInitDialog() 6749 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 6750 HWND__ * CDialog::PreModal() 6751 HWND__ * CPrintDialogEx::PreModal() 6752 void COleControl::PreModalDialog(HWND__ *) 6753 void CRecordset::PrepareAndExecute() 6754 HWND__ * CDataExchange::PrepareCtrl(int) 6755 HWND__ * CDataExchange::PrepareEditCtrl(int) 6756 void CWnd::PrepareForHelp() 6757 COleControlSite * CDataExchange::PrepareOleCtrl(int) 6758 void CRecordset::PrepareUpdateHstmt() 6759 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 6760 void CPropertySheet::PressButton(int) 6761 int CToolBarCtrl::PressButton(int,int) 6762 void CCheckListBox::PreSubclassWindow() 6763 void CDragListBox::PreSubclassWindow() 6764 void CWnd::PreSubclassWindow() 6765 int CWnd::PreTranslateInput(tagMSG *) 6766 int CControlBar::PreTranslateMessage(tagMSG *) 6767 int CDialog::PreTranslateMessage(tagMSG *) 6768 int CFormView::PreTranslateMessage(tagMSG *) 6769 int CFrameWnd::PreTranslateMessage(tagMSG *) 6770 int CHtmlView::PreTranslateMessage(tagMSG *) 6771 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 6772 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 6773 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 6774 int COlePropertyPage::PreTranslateMessage(tagMSG *) 6775 int CPropertyPage::PreTranslateMessage(tagMSG *) 6776 int CPropertySheet::PreTranslateMessage(tagMSG *) 6777 int CWinThread::PreTranslateMessage(tagMSG *) 6778 int CWnd::PreTranslateMessage(tagMSG *) 6779 void CDialog::PrevDlgCtrl()const 6780 void CWnd::Print(CDC *,unsigned long)const 6781 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 6782 int CPrintDialog::PrintAll()const 6783 int CPrintDialogEx::PrintAll()const 6784 void CWnd::PrintClient(CDC *,unsigned long)const 6785 int CPrintDialog::PrintCollate()const 6786 int CPrintDialogEx::PrintCollate()const 6787 int CPrintDialogEx::PrintCurrentPage()const 6788 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 6789 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 6790 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 6791 long CRichEditView::PrintPage(CDC *,long,long) 6792 int CPrintDialog::PrintRange()const 6793 int CPrintDialogEx::PrintRange()const 6794 int CPrintDialog::PrintSelection()const 6795 int CPrintDialogEx::PrintSelection()const 6796 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 6797 long COleException::Process(CException const *) 6798 int CSocket::ProcessAuxQueue() 6799 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 6800 int CWinThread::ProcessMessageFilter(int,tagMSG *) 6801 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 6802 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 6803 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 6804 int CRgn::PtInRegion(int,int)const 6805 int CRgn::PtInRegion(tagPOINT)const 6806 void COleSafeArray::PtrOfIndex(long *,void * *) 6807 int CDC::PtVisible(tagPOINT)const 6808 int CDC::PtVisible(int,int)const 6809 int CMetaFileDC::PtVisible(tagPOINT)const 6810 int CMetaFileDC::PtVisible(int,int)const 6811 int CEvent::PulseEvent() 6812 int CWinThread::PumpMessage() 6813 int CSocket::PumpMessages(unsigned int) 6814 void CReBarCtrl::PushChevron(unsigned int,long) 6815 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 6816 long CWnd::put_accName(tagVARIANT,wchar_t *) 6817 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 6818 long CWnd::put_accValue(tagVARIANT,wchar_t *) 6819 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 6820 void COleSafeArray::PutElement(long *,void *) 6821 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 6822 void CHtmlView::PutProperty(wchar_t const *,wchar_t const *) 6823 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 6824 void CHtmlView::PutProperty(wchar_t const *,short) 6825 void CHtmlView::PutProperty(wchar_t const *,long) 6826 void CHtmlView::PutProperty(wchar_t const *,double) 6827 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 6828 int PX_Bool(CPropExchange *,wchar_t const *,int &) 6829 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 6830 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 6831 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 6832 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 6833 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 6834 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 6835 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 6836 int PX_Double(CPropExchange *,wchar_t const *,double &) 6837 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 6838 int PX_Float(CPropExchange *,wchar_t const *,float &) 6839 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 6840 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 6841 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 6842 int PX_Long(CPropExchange *,wchar_t const *,long &) 6843 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 6844 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 6845 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 6846 int PX_Short(CPropExchange *,wchar_t const *,short &) 6847 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 6848 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 6849 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 6850 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 6851 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 6852 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 6853 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 6854 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 6855 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 6856 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 6857 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 6858 IUnknown * CCmdTarget::QueryAggregates(void const *) 6859 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 6860 long COleDropSource::QueryContinueDrag(int,unsigned long) 6861 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 6862 void * COleControl::QueryDefHandler(_GUID const &) 6863 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 6864 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 6865 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 6866 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 6867 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 6868 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6869 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6870 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 6871 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 6872 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 6873 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 6874 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 6875 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 6876 long CArchiveStream::QueryInterface(_GUID const &,void * *) 6877 long CBlobProperty::QueryInterface(_GUID const &,void * *) 6878 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 6879 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 6880 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 6881 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 6882 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 6883 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 6884 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 6885 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 6886 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 6887 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 6888 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 6889 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 6890 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 6891 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 6892 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 6893 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 6894 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 6895 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 6896 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 6897 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 6898 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 6899 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 6900 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 6901 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 6902 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 6903 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 6904 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 6905 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 6906 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 6907 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 6908 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 6909 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 6910 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 6911 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 6912 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 6913 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 6914 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 6915 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 6916 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 6917 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 6918 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 6919 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 6920 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 6921 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 6922 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 6923 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 6924 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 6925 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 6926 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 6927 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 6928 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 6929 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 6930 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 6931 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 6932 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 6933 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 6934 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 6935 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 6936 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 6937 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 6938 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 6939 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 6940 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 6941 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 6942 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 6943 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 6944 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 6945 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 6946 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 6947 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 6948 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 6949 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 6950 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 6951 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 6952 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 6953 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 6954 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 6955 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 6956 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 6957 long CPropertyPage::QuerySiblings(unsigned int,long) 6958 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 6959 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 6960 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 6961 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 6962 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 6963 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 6964 int COleControlSite::QuickActivate() 6965 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 6966 int COleClientItem::ReactivateAndUndo() 6967 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 6968 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 6969 unsigned int CArchive::Read(void *,unsigned int) 6970 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 6971 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 6972 unsigned int CFile::Read(void *,unsigned int) 6973 int CImageList::Read(CArchive *) 6974 unsigned int CInternetFile::Read(void *,unsigned int) 6975 unsigned int CMemFile::Read(void *,unsigned int) 6976 unsigned int COleStreamFile::Read(void *,unsigned int) 6977 unsigned int CSocketFile::Read(void *,unsigned int) 6978 unsigned int CStdioFile::Read(void *,unsigned int) 6979 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 6980 unsigned long CArchive::ReadCount() 6981 void CEditView::ReadFromArchive(CArchive &,unsigned int) 6982 int CProperty::ReadFromStream(IStream *) 6983 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 6984 int CPropertySet::ReadFromStream(IStream *) 6985 void COleClientItem::ReadItem(CArchive &) 6986 void COleClientItem::ReadItemCompound(CArchive &) 6987 void COleClientItem::ReadItemFlat(CArchive &) 6988 void CRecentFileList::ReadList() 6989 int CPropertySection::ReadNameDictFromStream(IStream *) 6990 CObject * CArchive::ReadObject(CRuntimeconst *) 6991 int CArchive::ReadString(ATL::CStringT > > &) 6992 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 6993 int CInternetFile::ReadString(ATL::CStringT > > &) 6994 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 6995 int CStdioFile::ReadString(ATL::CStringT > > &) 6996 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 6997 unsigned int CDC::RealizePalette() 6998 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 6999 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7000 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7001 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7002 void CRecordset::RebindParams(void *) 7003 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7004 void CFrameWnd::RecalcLayout(int) 7005 void CMiniDockFrameWnd::RecalcLayout(int) 7006 void COleCntrFrameWnd::RecalcLayout(int) 7007 void COleDocIPFrameWnd::RecalcLayout(int) 7008 void COleIPFrameWnd::RecalcLayout(int) 7009 void CSplitterWnd::RecalcLayout() 7010 int CAsyncSocket::Receive(void *,int,int) 7011 int CSocket::Receive(void *,int,int) 7012 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7013 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7014 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7015 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7016 void COleControl::RecreateControlWindow() 7017 int CDC::Rectangle(int,int,int,int) 7018 int CDC::Rectangle(tagRECT const *) 7019 CRect const CFrameWnd::rectDefault 7020 int CRgn::RectInRegion(tagRECT const *)const 7021 int CDC::RectVisible(tagRECT const *)const 7022 int CMetaFileDC::RectVisible(tagRECT const *)const 7023 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7024 int CRichEditCtrl::Redo() 7025 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7026 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7027 int CListCtrl::RedrawItems(int,int) 7028 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7029 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7030 int CWnd::ReflectLastMsg(HWND__ *,long *) 7031 void CHtmlView::Refresh() 7032 void COleControl::Refresh() 7033 void CHtmlView::Refresh2(int) 7034 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7035 int COleDropTarget::Register(CWnd *) 7036 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 7037 int COleMessageFilter::Register() 7038 int COleObjectFactory::Register() 7039 int COleTemplateServer::Register() 7040 int CWinApp::Register() 7041 int COleObjectFactory::RegisterAll() 7042 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 7043 void CDocManager::RegisterShellFileTypes(int) 7044 void CWinApp::RegisterShellFileTypes(int) 7045 void CToolTipCtrl::RelayEvent(tagMSG *) 7046 unsigned long CArchiveStream::Release() 7047 unsigned long CBlobProperty::Release() 7048 unsigned long CBrowserControlSite::Release() 7049 unsigned long CDHtmlControlSink::Release() 7050 unsigned long CDHtmlElementEventSink::Release() 7051 unsigned long CDHtmlEventSink::Release() 7052 unsigned long CInnerUnknown::Release() 7053 void COleClientItem::Release(enum tagOLECLOSE) 7054 unsigned long COleConnPtContainer::Release() 7055 void COleDataObject::Release() 7056 unsigned long COleDispatchImpl::Release() 7057 void COleDocObjectItem::Release(enum tagOLECLOSE) 7058 unsigned long COleUILinkInfo::Release() 7059 unsigned long CPrintDialogEx::Release() 7060 unsigned long CWnd::XAccessible::Release() 7061 unsigned long CWnd::XAccessibleServer::Release() 7062 unsigned long COleClientItem::XAdviseSink::Release() 7063 unsigned long COleControlSite::XAmbientProps::Release() 7064 unsigned long COleControlSite::XBoundObjectSite::Release() 7065 unsigned long COleObjectFactory::XClassFactory::Release() 7066 unsigned long CConnectionPoint::XConnPt::Release() 7067 unsigned long COleControl::XDataObject::Release() 7068 unsigned long COleDataSource::XDataObject::Release() 7069 unsigned long COleServerDoc::XDataObject::Release() 7070 unsigned long COleServerItem::XDataObject::Release() 7071 unsigned long CHtmlControlSite::XDocHostUIHandler::Release() 7072 unsigned long COleDropSource::XDropSource::Release() 7073 unsigned long COleDropTarget::XDropTarget::Release() 7074 unsigned long CEnumArray::XEnumVOID::Release() 7075 unsigned long COleControlSite::XEventSink::Release() 7076 unsigned long COleControl::XFontNotification::Release() 7077 unsigned long COleMessageFilter::XMessageFilter::Release() 7078 unsigned long COleControlSite::XNotifyDBEvents::Release() 7079 unsigned long COleControl::XOleCache::Release() 7080 unsigned long COleClientItem::XOleClientSite::Release() 7081 unsigned long COleControlSite::XOleClientSite::Release() 7082 unsigned long CDocObjectServer::XOleCommandTarget::Release() 7083 unsigned long COleFrameHook::XOleCommandTarget::Release() 7084 unsigned long COleControlContainer::XOleContainer::Release() 7085 unsigned long COleControl::XOleControl::Release() 7086 unsigned long COleControlSite::XOleControlSite::Release() 7087 unsigned long CDocObjectServer::XOleDocument::Release() 7088 unsigned long COleDocObjectItem::XOleDocumentSite::Release() 7089 unsigned long CDocObjectServer::XOleDocumentView::Release() 7090 unsigned long COleControl::XOleInPlaceActiveObject::Release() 7091 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 7092 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 7093 unsigned long COleControl::XOleInPlaceObject::Release() 7094 unsigned long COleServerDoc::XOleInPlaceObject::Release() 7095 unsigned long COleControlContainer::XOleIPFrame::Release() 7096 unsigned long COleClientItem::XOleIPSite::Release() 7097 unsigned long COleControlSite::XOleIPSite::Release() 7098 unsigned long COleLinkingDoc::XOleItemContainer::Release() 7099 unsigned long CDocObjectServer::XOleObject::Release() 7100 unsigned long COleControl::XOleObject::Release() 7101 unsigned long COleServerDoc::XOleObject::Release() 7102 unsigned long COleServerItem::XOleObject::Release() 7103 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 7104 unsigned long COleControl::XPerPropertyBrowsing::Release() 7105 unsigned long COleLinkingDoc::XPersistFile::Release() 7106 unsigned long COleControl::XPersistMemory::Release() 7107 unsigned long COleControl::XPersistPropertyBag::Release() 7108 unsigned long COleControl::XPersistStorage::Release() 7109 unsigned long COleServerDoc::XPersistStorage::Release() 7110 unsigned long COleControl::XPersistStreamInit::Release() 7111 unsigned long COleControl::XPointerInactive::Release() 7112 unsigned long CDocObjectServer::XPrint::Release() 7113 unsigned long COleControlSite::XPropertyNotifySink::Release() 7114 unsigned long COlePropertyPage::XPropertyPage::Release() 7115 unsigned long COlePropertyPage::XPropNotifySink::Release() 7116 unsigned long COleControl::XProvideClassInfo::Release() 7117 unsigned long COleControl::XQuickActivate::Release() 7118 unsigned long CRichEditView::XRichEditOleCallback::Release() 7119 unsigned long COleControlSite::XRowsetNotify::Release() 7120 unsigned long COleControl::XSpecifyPropertyPages::Release() 7121 unsigned long COleControl::XViewObject::Release() 7122 void CDC::ReleaseAttribDC() 7123 void COleControl::ReleaseCaches() 7124 int COleControl::ReleaseCapture() 7125 int COleControl::ReleaseDC(CDC *) 7126 int CWnd::ReleaseDC(CDC *) 7127 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7128 void COleDispatchDriver::ReleaseDispatch() 7129 void CDocObjectServer::ReleaseDocSite() 7130 void CDocument::ReleaseFile(CFile *,int) 7131 void CFontHolder::ReleaseFont() 7132 void CDC::ReleaseOutputDC() 7133 void CMetaFileDC::ReleaseOutputDC() 7134 void CPreviewDC::ReleaseOutputDC() 7135 int COleClientItem::Reload() 7136 void CFile::Remove(wchar_t const *) 7137 int CFtpConnection::Remove(wchar_t const *) 7138 int CImageList::Remove(int) 7139 void CPropertySection::Remove(unsigned long) 7140 void CPropertySet::Remove(_GUID) 7141 void CPropertySet::Remove(_GUID,unsigned long) 7142 void CRecentFileList::Remove(int) 7143 int CSimpleList::Remove(void *) 7144 void CByteArray::RemoveAll() 7145 void CDWordArray::RemoveAll() 7146 void CMapPtrToPtr::RemoveAll() 7147 void CMapPtrToWord::RemoveAll() 7148 void CMapStringToOb::RemoveAll() 7149 void CMapStringToPtr::RemoveAll() 7150 void CMapStringToString::RemoveAll() 7151 void CMapWordToOb::RemoveAll() 7152 void CMapWordToPtr::RemoveAll() 7153 void CObArray::RemoveAll() 7154 void CObList::RemoveAll() 7155 void CPropertySection::RemoveAll() 7156 void CPropertySet::RemoveAll() 7157 void CPtrArray::RemoveAll() 7158 void CPtrList::RemoveAll() 7159 void CStringArray::RemoveAll() 7160 void CStringList::RemoveAll() 7161 void CTypeLibCacheMap::RemoveAll(void *) 7162 void CUIntArray::RemoveAll() 7163 void CWordArray::RemoveAll() 7164 void CByteArray::RemoveAt(int,int) 7165 void CDWordArray::RemoveAt(int,int) 7166 void CObArray::RemoveAt(int,int) 7167 void CObList::RemoveAt(__POSITION *) 7168 void CPtrArray::RemoveAt(int,int) 7169 void CPtrList::RemoveAt(__POSITION *) 7170 void CStringArray::RemoveAt(int,int) 7171 void CStringList::RemoveAt(__POSITION *) 7172 void CUIntArray::RemoveAt(int,int) 7173 void CWordArray::RemoveAt(int,int) 7174 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7175 void CFrameWnd::RemoveControlBar(CControlBar *) 7176 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 7177 void CDocTemplate::RemoveDocument(CDocument *) 7178 void CMultiDocTemplate::RemoveDocument(CDocument *) 7179 void CSingleDocTemplate::RemoveDocument(CDocument *) 7180 void COleControl::RemoveFrameLevelUI() 7181 void CFrameWnd::RemoveFrameWnd() 7182 void CHandleMap::RemoveHandle(void *) 7183 CObject * CObList::RemoveHead() 7184 void * CPtrList::RemoveHead() 7185 ATL::CStringT > > CStringList::RemoveHead() 7186 void CTabCtrl::RemoveImage(int) 7187 void CListCtrl::RemoveImageList(int) 7188 void CListView::RemoveImageList(int) 7189 void CTreeCtrl::RemoveImageList(int) 7190 void CTreeView::RemoveImageList(int) 7191 void COleDocument::RemoveItem(CDocItem *) 7192 int CMapPtrToPtr::RemoveKey(void *) 7193 int CMapPtrToWord::RemoveKey(void *) 7194 int CMapStringToOb::RemoveKey(wchar_t const *) 7195 int CMapStringToPtr::RemoveKey(wchar_t const *) 7196 int CMapStringToString::RemoveKey(wchar_t const *) 7197 int CMapWordToOb::RemoveKey(unsigned short) 7198 int CMapWordToPtr::RemoveKey(unsigned short) 7199 int CMenu::RemoveMenu(unsigned int,unsigned int) 7200 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7201 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7202 void CPropertySheet::RemovePage(int) 7203 void CPropertySheet::RemovePage(CPropertyPage *) 7204 void CDockBar::RemovePlaceHolder(CControlBar *) 7205 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7206 void CDataBoundProperty::RemoveSource() 7207 CObject * CObList::RemoveTail() 7208 void * CPtrList::RemoveTail() 7209 ATL::CStringT > > CStringList::RemoveTail() 7210 void CDocument::RemoveView(CView *) 7211 void CFile::Rename(wchar_t const *,wchar_t const *) 7212 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 7213 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 7214 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 7215 int CImageList::Replace(int,HICON__ *) 7216 int CImageList::Replace(int,CBitmap *,CBitmap *) 7217 int CFindReplaceDialog::ReplaceAll()const 7218 void CDatabase::ReplaceBrackets(wchar_t *) 7219 int CFindReplaceDialog::ReplaceCurrent()const 7220 void CEdit::ReplaceSel(wchar_t const *,int) 7221 void CRichEditCtrl::ReplaceSel(wchar_t const *,int) 7222 int CException::ReportError(unsigned int,unsigned int) 7223 int COleClientItem::ReportError(long)const 7224 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 7225 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 7226 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 7227 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 7228 int CRecordset::Requery() 7229 void COleControl::RequestAsynchronousExchange(unsigned long) 7230 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 7231 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 7232 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 7233 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 7234 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 7235 void COleServerDoc::RequestPositionChange(tagRECT const *) 7236 void CRichEditCtrl::RequestResize() 7237 long COleControlSite::XOleIPSite::RequestUIActivate() 7238 long CEnumArray::XEnumVOID::Reset() 7239 void CComboBox::ResetContent() 7240 void CListBox::ResetContent() 7241 void CRecordset::ResetCursor() 7242 void CCachedDataPathProperty::ResetData() 7243 void CDataPathProperty::ResetData() 7244 int CDC::ResetDCW(_devicemodeW const *) 7245 int CEvent::ResetEvent() 7246 void COleControl::ResetStockProps() 7247 void CControlBar::ResetTimer(unsigned int,unsigned int) 7248 void COleControl::ResetVersion(unsigned long) 7249 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7250 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7251 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7252 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7253 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7254 void COleControl::ResizeFrameWindow(int,int) 7255 void COleSafeArray::ResizeOneDim(unsigned long) 7256 void COleControl::ResizeOpenControl(int,int) 7257 int CPalette::ResizePalette(unsigned int) 7258 void CScrollView::ResizeParentToFit(int) 7259 void CWaitCursor::Restore() 7260 void CReBarCtrl::RestoreBand(unsigned int) 7261 int CDC::RestoreDC(int) 7262 int CPreviewDC::RestoreDC(int) 7263 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 7264 void CCmdTarget::RestoreWaitCursor() 7265 unsigned long CWinThread::ResumeThread() 7266 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 7267 long CArchiveStream::Revert() 7268 void COleDropTarget::Revoke() 7269 void COleLinkingDoc::Revoke() 7270 void COleMessageFilter::Revoke() 7271 void COleObjectFactory::Revoke() 7272 void COleObjectFactory::RevokeAll() 7273 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 7274 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 7275 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 7276 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 7277 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 7278 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 7279 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 7280 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 7281 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 7282 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 7283 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 7284 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 7285 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 7286 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 7287 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 7288 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 7289 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 7290 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 7291 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 7292 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 7293 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 7294 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 7295 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 7296 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 7297 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 7298 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 7299 int CDatabase::Rollback() 7300 int CDC::RoundRect(int,int,int,int,int,int) 7301 int CDC::RoundRect(tagRECT const *,tagPOINT) 7302 void COleClientItem::Run() 7303 int CWinApp::Run() 7304 int CWinThread::Run() 7305 int CWinApp::RunAutomated() 7306 int CWinApp::RunEmbedded() 7307 int CWnd::RunModalLoop(unsigned long) 7308 int COleControlSite::SafeSetProperty(long,unsigned short,...) 7309 int CEditView::SameAsSelected(wchar_t const *,int) 7310 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 7311 long CBlobProperty::Save(IStream *,int) 7312 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 7313 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 7314 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 7315 long COleControl::XPersistStorage::Save(IStorage *,int) 7316 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 7317 long COleControl::XPersistStreamInit::Save(IStream *,int) 7318 int CDocManager::SaveAllModified() 7319 int CDocTemplate::SaveAllModified() 7320 int CWinApp::SaveAllModified() 7321 void CFrameWnd::SaveBarState(wchar_t const *)const 7322 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 7323 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 7324 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 7325 int CDC::SaveDC() 7326 int CPreviewDC::SaveDC() 7327 void COleServerDoc::SaveEmbedding() 7328 int CFormView::SaveFocusControl() 7329 int CDocument::SaveModified() 7330 int COleDocument::SaveModified() 7331 int COleServerDoc::SaveModified() 7332 int COleServerDoc::SaveModifiedPrompt() 7333 long COleClientItem::XOleClientSite::SaveObject() 7334 long COleControlSite::XOleClientSite::SaveObject() 7335 int CControlBarInfo::SaveState(wchar_t const *,int) 7336 void CDockState::SaveState(wchar_t const *) 7337 long COleControl::SaveState(IStream *) 7338 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 7339 void CWinApp::SaveStdProfileSettings() 7340 void COleDocument::SaveToStorage(CObject *) 7341 void COleLinkingDoc::SaveToStorage(CObject *) 7342 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 7343 void CDockState::ScalePoint(CPoint &) 7344 void CDockState::ScaleRectPos(CRect &) 7345 CSize CDC::ScaleViewportExt(int,int,int,int) 7346 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 7347 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 7348 CSize CDC::ScaleWindowExt(int,int,int,int) 7349 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 7350 void CWnd::ScreenToClient(tagPOINT *)const 7351 void CWnd::ScreenToClient(tagRECT *)const 7352 int CListCtrl::Scroll(CSize) 7353 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 7354 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 7355 void COleControlContainer::ScrollChildren(int,int) 7356 int COleServerDoc::ScrollContainerBy(CSize) 7357 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 7358 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 7359 void CScrollView::ScrollToDevicePosition(tagPOINT) 7360 void CScrollView::ScrollToPosition(tagPOINT) 7361 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7362 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7363 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 7364 int CFindReplaceDialog::SearchDown()const 7365 int CAnimateCtrl::Seek(unsigned int) 7366 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 7367 unsigned __int64 CFile::Seek(__int64,unsigned int) 7368 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 7369 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 7370 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 7371 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 7372 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 7373 void CFile::SeekToBegin() 7374 unsigned __int64 CFile::SeekToEnd() 7375 CFont * CFontHolder::Select(CDC *,long,long) 7376 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 7377 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 7378 int CDC::SelectClipPath(int) 7379 int CDC::SelectClipRgn(CRgn *) 7380 int CDC::SelectClipRgn(CRgn *,int) 7381 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 7382 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 7383 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 7384 long CPrintDialogEx::SelectionChange() 7385 int CTreeCtrl::SelectItem(_TREEITEM *) 7386 int CDC::SelectObject(CRgn *) 7387 CBitmap * CDC::SelectObject(CBitmap *) 7388 CBrush * CDC::SelectObject(CBrush *) 7389 CGdiObject * CDC::SelectObject(CGdiObject *) 7390 CPen * CDC::SelectObject(CPen *) 7391 void * CDC::SelectObject(void *) 7392 CFont * CDC::SelectObject(CFont *) 7393 CFont * CPreviewDC::SelectObject(CFont *) 7394 CPalette * CDC::SelectPalette(CPalette *,int) 7395 void CWinApp::SelectPrinter(void *,void *,int) 7396 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 7397 CFont * COleControl::SelectStockFont(CDC *) 7398 CGdiObject * CDC::SelectStockObject(int) 7399 CGdiObject * CPreviewDC::SelectStockObject(int) 7400 int CComboBox::SelectString(int,wchar_t const *) 7401 int CListBox::SelectString(int,wchar_t const *) 7402 int CListBox::SelItemRange(int,int,int) 7403 int CAsyncSocket::Send(void const *,int,int) 7404 int CSocket::Send(void const *,int,int) 7405 void COleControl::SendAdvise(unsigned int) 7406 int CWnd::SendChildNotifyLastMsg(long *) 7407 int CSocket::SendChunk(void const *,int,int) 7408 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 7409 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 7410 void CDocument::SendInitialUpdate() 7411 void CRecordset::SendLongBinaryData(void *) 7412 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 7413 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 7414 long CWnd::SendMessageW(unsigned int,unsigned int,long) 7415 void COleControlSite::SendMnemonic(tagMSG *) 7416 int CWnd::SendNotifyMessageW(unsigned int,unsigned int,long) 7417 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 7418 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 7419 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 7420 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 7421 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 7422 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 7423 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7424 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7425 void CByteArray::Serialize(CArchive &) 7426 void CControlBarInfo::Serialize(CArchive &,CDockState *) 7427 void CDocItem::Serialize(CArchive &) 7428 void CDockState::Serialize(CArchive &) 7429 void CDWordArray::Serialize(CArchive &) 7430 void CEditView::Serialize(CArchive &) 7431 void CMapStringToOb::Serialize(CArchive &) 7432 void CMapStringToString::Serialize(CArchive &) 7433 void CMapWordToOb::Serialize(CArchive &) 7434 void CObArray::Serialize(CArchive &) 7435 void CObject::Serialize(CArchive &) 7436 void CObList::Serialize(CArchive &) 7437 void COleClientItem::Serialize(CArchive &) 7438 void COleControl::Serialize(CArchive &) 7439 void COleDocument::Serialize(CArchive &) 7440 void CRichEditDoc::Serialize(CArchive &) 7441 void CRichEditView::Serialize(CArchive &) 7442 void CStringArray::Serialize(CArchive &) 7443 void CStringList::Serialize(CArchive &) 7444 void CWordArray::Serialize(CArchive &) 7445 CArchive & ATL::CTime::Serialize64(CArchive &) 7446 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 7447 void CArchive::SerializeClass(CRuntimeconst *) 7448 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 7449 void SerializeElements(CArchive &,ATL::CStringT > > *,int) 7450 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 7451 void SerializeElements(CArchive &,COleVariant *,int) 7452 void COleControl::SerializeExtent(CArchive &) 7453 void CEditView::SerializeRaw(CArchive &) 7454 void COleControl::SerializeStockProps(CArchive &) 7455 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 7456 int CProperty::Set(unsigned long,void * const,unsigned long) 7457 int CProperty::Set(void * const) 7458 int CProperty::Set(void * const,unsigned long) 7459 int CPropertySection::Set(unsigned long,void *) 7460 int CPropertySection::Set(unsigned long,void *,unsigned long) 7461 int CPropertySet::Set(_GUID,unsigned long,void *) 7462 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 7463 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 7464 void CRecordset::SetAbsolutePosition(long) 7465 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 7466 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7467 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7468 int CPropertySheet::SetActivePage(int) 7469 int CPropertySheet::SetActivePage(CPropertyPage *) 7470 void CSplitterWnd::SetActivePane(int,int,CWnd *) 7471 void CFrameWnd::SetActiveView(CView *,int) 7472 CWnd * CWnd::SetActiveWindow() 7473 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 7474 void CIPAddressCtrl::SetAddress(unsigned long) 7475 void CHtmlView::SetAddressBar(int) 7476 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 7477 int CToolBarCtrl::SetAnchorHighlight(int) 7478 void CListBox::SetAnchorIndex(int) 7479 void COleControl::SetAppearance(short) 7480 int CDC::SetArcDirection(int) 7481 void CByteArray::SetAt(int,unsigned char) 7482 void CDWordArray::SetAt(int,unsigned long) 7483 void CMapPtrToPtr::SetAt(void *,void *) 7484 void CMapPtrToWord::SetAt(void *,unsigned short) 7485 void CMapStringToOb::SetAt(wchar_t const *,CObject *) 7486 void CMapStringToPtr::SetAt(wchar_t const *,void *) 7487 void CMapStringToString::SetAt(wchar_t const *,wchar_t const *) 7488 void CMapWordToOb::SetAt(unsigned short,CObject *) 7489 void CMapWordToPtr::SetAt(unsigned short,void *) 7490 void CObArray::SetAt(int,CObject *) 7491 void CObList::SetAt(__POSITION *,CObject *) 7492 void CPtrArray::SetAt(int,void *) 7493 void CPtrList::SetAt(__POSITION *,void *) 7494 void CStringArray::SetAt(int,ATL::CStringT > > const &) 7495 void CStringArray::SetAt(int,wchar_t const *) 7496 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 7497 void CStringList::SetAt(__POSITION *,wchar_t const *) 7498 void CUIntArray::SetAt(int,unsigned int) 7499 void CWordArray::SetAt(int,unsigned short) 7500 void CByteArray::SetAtGrow(int,unsigned char) 7501 void CDWordArray::SetAtGrow(int,unsigned long) 7502 void CObArray::SetAtGrow(int,CObject *) 7503 void CPtrArray::SetAtGrow(int,void *) 7504 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 7505 void CStringArray::SetAtGrow(int,wchar_t const *) 7506 void CUIntArray::SetAtGrow(int,unsigned int) 7507 void CWordArray::SetAtGrow(int,unsigned short) 7508 void CDC::SetAttribDC(HDC__ *) 7509 void CMetaFileDC::SetAttribDC(HDC__ *) 7510 void CPreviewDC::SetAttribDC(HDC__ *) 7511 int CRichEditCtrl::SetAutoURLDetect(int) 7512 void COleControl::SetBackColor(unsigned long) 7513 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 7514 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOW *) 7515 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7516 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7517 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 7518 void CControlBar::SetBarStyle(unsigned long) 7519 int CSpinButtonCtrl::SetBase(int) 7520 void CAsyncMonikerFile::SetBinding(IBinding *) 7521 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 7522 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 7523 int CToolBar::SetBitmap(HBITMAP__ *) 7524 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 7525 CSize CBitmap::SetBitmapDimension(int,int) 7526 int CHeaderCtrl::SetBitmapMargin(int) 7527 int CToolBarCtrl::SetBitmapSize(CSize) 7528 unsigned long CDC::SetBkColor(unsigned long) 7529 unsigned long CImageList::SetBkColor(unsigned long) 7530 int CListCtrl::SetBkColor(unsigned long) 7531 unsigned long CPreviewDC::SetBkColor(unsigned long) 7532 unsigned long CProgressCtrl::SetBkColor(unsigned long) 7533 unsigned long CReBarCtrl::SetBkColor(unsigned long) 7534 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 7535 unsigned long CTreeCtrl::SetBkColor(unsigned long) 7536 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 7537 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 7538 int CListCtrl::SetBkImage(tagLVBKIMAGEW *) 7539 int CDC::SetBkMode(int) 7540 void CRecordset::SetBookmark(CDBVariant const &) 7541 void CControlBar::SetBorders(int,int,int,int) 7542 void CControlBar::SetBorders(tagRECT const *) 7543 void CStatusBar::SetBorders(int,int,int,int) 7544 void CStatusBar::SetBorders(tagRECT const *) 7545 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 7546 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 7547 void COleControl::SetBorderStyle(short) 7548 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 7549 CPoint CDC::SetBrushOrg(int,int) 7550 CPoint CDC::SetBrushOrg(tagPOINT) 7551 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 7552 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 7553 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 7554 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 7555 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOW *) 7556 int CToolBar::SetButtons(unsigned int const *,int) 7557 int CToolBarCtrl::SetButtonSize(CSize) 7558 void CToolBarCtrl::SetButtonStructSize(int) 7559 void CButton::SetButtonStyle(unsigned int,int) 7560 void CToolBar::SetButtonStyle(int,unsigned int) 7561 int CToolBar::SetButtonText(int,wchar_t const *) 7562 int CToolBarCtrl::SetButtonWidth(int,int) 7563 int CListCtrl::SetCallbackMask(unsigned int) 7564 CWnd * COleControl::SetCapture() 7565 CWnd * CWnd::SetCapture() 7566 long COleControlSite::XOleIPSite::SetCapture(int) 7567 int CListBox::SetCaretIndex(int,int) 7568 void CWnd::SetCaretPos(tagPOINT) 7569 void CRichEditView::SetCharFormat(CHARFORMAT2W) 7570 void CButton::SetCheck(int) 7571 void CCheckListBox::SetCheck(int,int) 7572 void CCmdUI::SetCheck(int) 7573 int CListCtrl::SetCheck(int,int) 7574 void COleCmdUI::SetCheck(int) 7575 void CStatusCmdUI::SetCheck(int) 7576 void CTestCmdUI::SetCheck(int) 7577 void CToolCmdUI::SetCheck(int) 7578 int CTreeCtrl::SetCheck(_TREEITEM *,int) 7579 void CCheckListBox::SetCheckStyle(unsigned int) 7580 void CPropertySet::SetClassID(_GUID) 7581 void CDataBoundProperty::SetClientSite(COleControlSite *) 7582 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 7583 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 7584 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 7585 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 7586 void COleDataSource::SetClipboard() 7587 HWND__ * CWnd::SetClipboardViewer() 7588 int CToolBarCtrl::SetCmdID(int,unsigned int) 7589 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 7590 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 7591 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 7592 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 7593 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 7594 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 7595 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 7596 int CListCtrl::SetColumn(int,tagLVCOLUMNW const *) 7597 void CSplitterWnd::SetColumnInfo(int,int,int) 7598 int CListCtrl::SetColumnOrderArray(int,int *) 7599 void CListBox::SetColumnWidth(int) 7600 int CListCtrl::SetColumnWidth(int,int) 7601 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 7602 void CDocTemplate::SetContainerInfo(unsigned int) 7603 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 7604 void CDataPathProperty::SetControl(COleControl *) 7605 void CReflectorWnd::SetControl(COleControl *) 7606 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 7607 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 7608 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 7609 int COleControl::SetControlSize(int,int) 7610 int COlePropertyPage::SetControlStatus(unsigned int,int) 7611 void CFileDialog::SetControlText(int,char const *) 7612 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 7613 void CTabCtrl::SetCurFocus(int) 7614 void COleCurrency::SetCurrency(long,long) 7615 void CColorDialog::SetCurrentColor(unsigned long) 7616 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 7617 void CWinApp::SetCurrentHandles() 7618 void CPreviewView::SetCurrentPage(unsigned int,int) 7619 int CComboBox::SetCurSel(int) 7620 int CListBox::SetCurSel(int) 7621 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 7622 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 7623 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 7624 int CTabCtrl::SetCurSel(int) 7625 HICON__ * CButton::SetCursor(HICON__ *) 7626 int CRectTracker::SetCursor(CWnd *,unsigned int)const 7627 HICON__ * CStatic::SetCursor(HICON__ *) 7628 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7629 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7630 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7631 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7632 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7633 int CMonthCalCtrl::SetDayState(int,unsigned long *) 7634 void COccManager::SetDefaultButton(CWnd *,int) 7635 void COleControlSite::SetDefaultButton(int) 7636 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 7637 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 7638 int CMenu::SetDefaultItem(unsigned int,int) 7639 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 7640 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 7641 void CFileDialog::SetDefExt(char const *) 7642 void CDialog::SetDefID(unsigned int) 7643 void CToolTipCtrl::SetDelayTime(unsigned int) 7644 void CToolTipCtrl::SetDelayTime(unsigned long,int) 7645 void CDumpContext::SetDepth(int) 7646 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 7647 void COlePropertyPage::SetDialogResource(void *) 7648 void CRecordset::SetDirtyFieldStatus(unsigned long) 7649 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 7650 int COleControlSite::SetDlgCtrlID(int) 7651 int CWnd::SetDlgCtrlID(int) 7652 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 7653 void CWnd::SetDlgItemInt(int,unsigned int,int) 7654 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 7655 void CWnd::SetDlgItemTextW(int,wchar_t const *) 7656 void CFrameWnd::SetDockState(CDockState const &) 7657 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 7658 int CImageList::SetDragCursorImage(int,CPoint) 7659 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 7660 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 7661 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 7662 int CComboBox::SetDroppedWidth(unsigned int) 7663 void CDataBoundProperty::SetDSCSite(COleControlSite *) 7664 int CComboBox::SetEditSel(int,int) 7665 int CComboBoxEx::SetEditSel(int,int) 7666 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 7667 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 7668 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 7669 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 7670 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 7671 void COleControl::SetEnabled(int) 7672 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 7673 int CEvent::SetEvent() 7674 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 7675 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 7676 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 7677 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 7678 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 7679 int CComboBox::SetExtendedUI(int) 7680 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 7681 int COleControlSite::SetExtent() 7682 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 7683 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 7684 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 7685 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 7686 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 7687 void CRecordset::SetFieldDirty(void *,int) 7688 void CIPAddressCtrl::SetFieldFocus(unsigned short) 7689 void CRecordset::SetFieldNull(void *,int) 7690 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 7691 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 7692 void CFieldExchange::SetFieldType(unsigned int) 7693 void CFile::SetFilePath(wchar_t const *) 7694 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 7695 void CPropertySheet::SetFinishText(wchar_t const *) 7696 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 7697 CWnd * COleControl::SetFocus() 7698 CWnd * COleControlSite::SetFocus(tagMSG *) 7699 CWnd * COleControlSite::SetFocus() 7700 CWnd * CWnd::SetFocus() 7701 long COleControlSite::XOleIPSite::SetFocus(int) 7702 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 7703 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 7704 void CFontHolder::SetFont(IFont *) 7705 void COleControl::SetFont(IFontDisp *) 7706 void CWnd::SetFont(CFont *,int) 7707 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 7708 void COleControl::SetForeColor(unsigned long) 7709 int CWnd::SetForegroundWindow() 7710 int CDateTimeCtrl::SetFormat(wchar_t const *) 7711 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 7712 void CPropertySection::SetFormatID(_GUID) 7713 void CPropertySet::SetFormatVersion(unsigned short) 7714 void CHtmlView::SetFullScreen(int) 7715 void CEdit::SetHandle(void *) 7716 void CSharedFile::SetHandle(void *,int) 7717 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 7718 void CHtmlView::SetHeight(long) 7719 void CToolBar::SetHeight(int) 7720 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 7721 void CDialog::SetHelpID(unsigned int) 7722 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 7723 void CComboBox::SetHorizontalExtent(unsigned int) 7724 void CListBox::SetHorizontalExtent(int) 7725 void CDHtmlDialog::SetHostFlags(unsigned long) 7726 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 7727 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7728 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7729 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7730 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7731 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 7732 int CHeaderCtrl::SetHotDivider(int) 7733 int CHeaderCtrl::SetHotDivider(CPoint) 7734 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 7735 int CListCtrl::SetHotItem(int) 7736 int CToolBarCtrl::SetHotItem(int) 7737 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 7738 unsigned long CListCtrl::SetHoverTime(unsigned long) 7739 HICON__ * CButton::SetIcon(HICON__ *) 7740 HICON__ * CStatic::SetIcon(HICON__ *) 7741 int CStatusBarCtrl::SetIcon(int,HICON__ *) 7742 HICON__ * CWnd::SetIcon(HICON__ *,int) 7743 int COleClientItem::SetIconicMetafile(void *) 7744 CSize CListCtrl::SetIconSpacing(int,int) 7745 CSize CListCtrl::SetIconSpacing(CSize) 7746 void CProperty::SetID(unsigned long) 7747 int CImageList::SetImageCount(unsigned int) 7748 CImageList * CComboBoxEx::SetImageList(CImageList *) 7749 CImageList * CHeaderCtrl::SetImageList(CImageList *) 7750 CImageList * CListCtrl::SetImageList(CImageList *,int) 7751 int CReBarCtrl::SetImageList(CImageList *) 7752 CImageList * CTabCtrl::SetImageList(CImageList *) 7753 CImageList * CToolBarCtrl::SetImageList(CImageList *) 7754 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 7755 int CToolBarCtrl::SetIndent(int) 7756 void CTreeCtrl::SetIndent(unsigned int) 7757 int CStatusBar::SetIndicators(unsigned int const *,int) 7758 void COleControl::SetInitialDataFormats() 7759 long CDocObjectServer::XPrint::SetInitialPageNum(long) 7760 void COleControl::SetInitialSize(int,int) 7761 void CControlBar::SetInPlaceOwner(CWnd *) 7762 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 7763 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 7764 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 7765 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 7766 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 7767 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 7768 int CHeaderCtrl::SetItem(int,_HD_ITEMW *) 7769 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 7770 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 7771 int CListCtrl::SetItem(tagLVITEMW const *) 7772 int CTabCtrl::SetItem(int,tagTCITEMW *) 7773 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 7774 int CTreeCtrl::SetItem(tagTVITEMW *) 7775 void CListCtrl::SetItemCount(int) 7776 int CListCtrl::SetItemCountEx(int,unsigned long) 7777 int CComboBox::SetItemData(int,unsigned long) 7778 int CListBox::SetItemData(int,unsigned long) 7779 int CListCtrl::SetItemData(int,unsigned long) 7780 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 7781 int CComboBox::SetItemDataPtr(int,void *) 7782 int CListBox::SetItemDataPtr(int,void *) 7783 int CTabCtrl::SetItemExtra(int) 7784 int CComboBox::SetItemHeight(int,unsigned int) 7785 int CListBox::SetItemHeight(int,unsigned int) 7786 short CTreeCtrl::SetItemHeight(short) 7787 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 7788 void COleServerItem::SetItemName(wchar_t const *) 7789 int CListCtrl::SetItemPosition(int,tagPOINT) 7790 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 7791 CSize CTabCtrl::SetItemSize(CSize) 7792 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 7793 int CListCtrl::SetItemState(int,tagLVITEMW *) 7794 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 7795 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 7796 int CListCtrl::SetItemText(int,int,wchar_t const *) 7797 int CTreeCtrl::SetItemText(_TREEITEM *,wchar_t const *) 7798 unsigned long CDC::SetLayout(unsigned long) 7799 void CHtmlView::SetLeft(long) 7800 void CFile::SetLength(unsigned __int64) 7801 void CInternetFile::SetLength(unsigned __int64) 7802 void CMemFile::SetLength(unsigned __int64) 7803 void COleStreamFile::SetLength(unsigned __int64) 7804 void CSocketFile::SetLength(unsigned __int64) 7805 void CEdit::SetLimitText(unsigned int) 7806 unsigned long CTreeCtrl::SetLineColor(unsigned long) 7807 int CSliderCtrl::SetLineSize(int) 7808 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 7809 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 7810 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 7811 void CArchive::SetLoadParams(unsigned int) 7812 unsigned long CComboBox::SetLocale(unsigned long) 7813 unsigned long CListBox::SetLocale(unsigned long) 7814 void CRecordset::SetLockingMode(unsigned int) 7815 void CDatabase::SetLoginTimeout(unsigned long) 7816 int CDC::SetMapMode(int) 7817 int CPreviewDC::SetMapMode(int) 7818 unsigned long CDC::SetMapperFlags(unsigned long) 7819 void CToolTipCtrl::SetMargin(tagRECT *) 7820 void CEdit::SetMargins(unsigned int,unsigned int) 7821 void CRichEditView::SetMargins(CRect const &) 7822 void CPrintInfo::SetMaxPage(unsigned int) 7823 int CMonthCalCtrl::SetMaxSelCount(int) 7824 int CToolBarCtrl::SetMaxTextRows(int) 7825 int CToolTipCtrl::SetMaxTipWidth(int) 7826 int CWnd::SetMenu(CMenu *) 7827 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 7828 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 7829 void CHtmlView::SetMenuBar(int) 7830 int CMenu::SetMenuContextHelpId(unsigned long) 7831 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 7832 int CMenu::SetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 7833 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 7834 void CFrameWnd::SetMessageText(unsigned int) 7835 void CFrameWnd::SetMessageText(wchar_t const *) 7836 void CStatusBarCtrl::SetMinHeight(int) 7837 void CPrintInfo::SetMinPage(unsigned int) 7838 int CTabCtrl::SetMinTabWidth(int) 7839 int CDC::SetMiterLimit(float) 7840 void CPropertyPage::SetModified(int) 7841 void CDocument::SetModifiedFlag(int) 7842 void COleControl::SetModifiedFlag(int) 7843 void COlePropertyPage::SetModifiedFlag(int) 7844 void CRichEditDoc::SetModifiedFlag(int) 7845 void CEdit::SetModify(int) 7846 void CRichEditCtrl::SetModify(int) 7847 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 7848 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 7849 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 7850 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 7851 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 7852 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 7853 int CMonthCalCtrl::SetMonthDelta(int) 7854 int CPropertySection::SetName(unsigned long,wchar_t const *) 7855 void COleControl::SetNotPermitted() 7856 void CCmdTarget::SetNotSupported() 7857 void COleControl::SetNotSupported() 7858 void CRecordset::SetNullFieldStatus(unsigned long) 7859 void CRecordset::SetNullParamStatus(unsigned long) 7860 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 7861 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 7862 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 7863 void CArchive::SetObjectSchema(unsigned int) 7864 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7865 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7866 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7867 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 7868 void CHtmlView::SetOffline(int) 7869 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 7870 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 7871 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 7872 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 7873 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 7874 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 7875 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 7876 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 7877 int CHeaderCtrl::SetOrderArray(int,int *) 7878 void CPropertySet::SetOSVersion(unsigned long) 7879 void CDC::SetOutputDC(HDC__ *) 7880 void CMetaFileDC::SetOutputDC(HDC__ *) 7881 void CPreviewDC::SetOutputDC(HDC__ *) 7882 int CImageList::SetOverlayImage(int,int) 7883 CWnd * CReBarCtrl::SetOwner(CWnd *) 7884 void CToolBar::SetOwner(CWnd *) 7885 void CToolBarCtrl::SetOwner(CWnd *) 7886 void CWnd::SetOwner(CWnd *) 7887 void CTabCtrl::SetPadding(CSize) 7888 void COlePropertyPage::SetPageName(wchar_t const *) 7889 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 7890 int CSliderCtrl::SetPageSize(int) 7891 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 7892 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 7893 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 7894 void CStatusBar::SetPaneStyle(int,unsigned int) 7895 int CStatusBar::SetPaneText(int,wchar_t const *,int) 7896 void CRichEditView::SetPaperSize(CSize) 7897 int CRichEditCtrl::SetParaFormat(_paraformat &) 7898 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 7899 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 7900 void CRecordset::SetParamNull(int,int) 7901 CWnd * CWnd::SetParent(CWnd *) 7902 int CStatusBarCtrl::SetParts(int,int *) 7903 void CEdit::SetPasswordChar(wchar_t) 7904 void CDataPathProperty::SetPath(wchar_t const *) 7905 void CDocument::SetPathName(wchar_t const *,int) 7906 void COleDocument::SetPathName(wchar_t const *,int) 7907 void CRichEditDoc::SetPathName(wchar_t const *,int) 7908 void CHandleMap::SetPermanent(void *,CObject *) 7909 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 7910 unsigned long CDC::SetPixel(int,int,unsigned long) 7911 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 7912 int CDC::SetPixelV(int,int,unsigned long) 7913 int CDC::SetPixelV(tagPOINT,unsigned long) 7914 int CDC::SetPolyFillMode(int) 7915 int CProgressCtrl::SetPos(int) 7916 void CSliderCtrl::SetPos(int) 7917 int CSpinButtonCtrl::SetPos(int) 7918 int CSpinButtonCtrl::SetPos32(int) 7919 void COleIPFrameWnd::SetPreviewMode(int) 7920 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 7921 int COleClientItem::SetPrintDevice(tagPDW const *) 7922 void CEditView::SetPrinterFont(CFont *) 7923 int CPreviewView::SetPrintView(CView *) 7924 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 7925 void COleControlSite::SetProperty(long,unsigned short,...) 7926 void COleDispatchDriver::SetProperty(long,unsigned short,...) 7927 void CWnd::SetProperty(long,unsigned short,...) 7928 void COleControlSite::SetPropertyV(long,unsigned short,char *) 7929 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 7930 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 7931 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 7932 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 7933 int COlePropertyPage::SetPropText(wchar_t const *,short &) 7934 int COlePropertyPage::SetPropText(wchar_t const *,int &) 7935 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 7936 int COlePropertyPage::SetPropText(wchar_t const *,long &) 7937 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 7938 int COlePropertyPage::SetPropText(wchar_t const *,float &) 7939 int COlePropertyPage::SetPropText(wchar_t const *,double &) 7940 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 7941 long CWnd::SetProxy(IAccessibleProxy *) 7942 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 7943 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 7944 void CDatabase::SetQueryTimeout(unsigned long) 7945 void CCmdUI::SetRadio(int) 7946 void CTestCmdUI::SetRadio(int) 7947 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 7948 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 7949 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 7950 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 7951 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 7952 void CProgressCtrl::SetRange(short,short) 7953 void CSliderCtrl::SetRange(int,int,int) 7954 void CSpinButtonCtrl::SetRange(short,short) 7955 void CProgressCtrl::SetRange32(int,int) 7956 void CSpinButtonCtrl::SetRange32(int,int) 7957 void CSliderCtrl::SetRangeMax(int,int) 7958 void CSliderCtrl::SetRangeMin(int,int) 7959 int CInternetFile::SetReadBufferSize(unsigned int) 7960 int CEdit::SetReadOnly(int) 7961 int CRichEditCtrl::SetReadOnly(int) 7962 void CEdit::SetRect(tagRECT const *) 7963 void CRichEditCtrl::SetRect(tagRECT const *) 7964 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 7965 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 7966 int COleControl::SetRectInContainer(tagRECT const *) 7967 void CEdit::SetRectNP(tagRECT const *) 7968 void CRgn::SetRectRgn(int,int,int,int) 7969 void CRgn::SetRectRgn(tagRECT const *) 7970 void CWnd::SetRedraw(int) 7971 void CHtmlView::SetRegisterAsBrowser(int) 7972 void CHtmlView::SetRegisterAsDropTarget(int) 7973 void CWinApp::SetRegistryKey(unsigned int) 7974 void CWinApp::SetRegistryKey(wchar_t const *) 7975 void COleMessageFilter::SetRetryReply(unsigned long) 7976 int CDC::SetROP2(int) 7977 void CSplitterWnd::SetRowInfo(int,int,int) 7978 void CToolBarCtrl::SetRows(int,int,tagRECT *) 7979 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 7980 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 7981 void CRecordset::SetRowsetSize(unsigned long) 7982 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 7983 void CPreviewView::SetScaledSize(unsigned int) 7984 void CPreviewDC::SetScaleRatio(int,int) 7985 void CScrollView::SetScaleToFitSize(tagSIZE) 7986 void CDockState::SetScreenSize(CSize &) 7987 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 7988 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 7989 int CScrollBar::SetScrollPos(int,int) 7990 int CWnd::SetScrollPos(int,int,int) 7991 void CScrollBar::SetScrollRange(int,int,int) 7992 void CWnd::SetScrollRange(int,int,int,int) 7993 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 7994 void CSplitterWnd::SetScrollStyle(unsigned long) 7995 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 7996 int CPropertySection::SetSectionName(wchar_t const *) 7997 void CEdit::SetSel(int,int,int) 7998 void CEdit::SetSel(unsigned long,int) 7999 int CListBox::SetSel(int,int) 8000 void CRichEditCtrl::SetSel(_charrange &) 8001 void CRichEditCtrl::SetSel(long,long) 8002 void CSliderCtrl::SetSelection(int,int) 8003 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 8004 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 8005 void CCheckListBox::SetSelectionCheck(int) 8006 int CListCtrl::SetSelectionMark(int) 8007 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8008 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8009 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8010 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8011 void CHtmlView::SetSilent(int) 8012 int CStatusBarCtrl::SetSimple(int) 8013 long CPrintDialogEx::SetSite(IUnknown *) 8014 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8015 void CByteArray::SetSize(int,int) 8016 void CDWordArray::SetSize(int,int) 8017 void CObArray::SetSize(int,int) 8018 void CPtrArray::SetSize(int,int) 8019 void CStringArray::SetSize(int,int) 8020 void CUIntArray::SetSize(int,int) 8021 void CWordArray::SetSize(int,int) 8022 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8023 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8024 void CSplitterWnd::SetSplitCursor(int) 8025 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8026 void CButton::SetState(int) 8027 void CRecordset::SetState(int,wchar_t const *,unsigned long) 8028 int CToolBarCtrl::SetState(int,unsigned int) 8029 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 8030 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8031 void CHtmlView::SetStatusBar(int) 8032 int CControlBar::SetStatusText(int) 8033 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8034 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8035 int CProgressCtrl::SetStep(int) 8036 void CArchive::SetStoreParams(unsigned int,unsigned int) 8037 int CDC::SetStretchBltMode(int) 8038 void COleVariant::SetString(wchar_t const *,unsigned short) 8039 void CToolBarCtrl::SetStyle(unsigned long) 8040 void CDatabase::SetSynchronousMode(int) 8041 int CDialogTemplate::SetSystemFont(unsigned short) 8042 int CEdit::SetTabStops(int const &) 8043 int CEdit::SetTabStops(int,int *) 8044 void CEdit::SetTabStops() 8045 void CEditView::SetTabStops(int) 8046 int CListBox::SetTabStops(int const &) 8047 int CListBox::SetTabStops(int,int *) 8048 void CListBox::SetTabStops() 8049 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8050 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8051 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8052 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8053 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 8054 void CCmdUI::SetText(wchar_t const *) 8055 void COleCmdUI::SetText(wchar_t const *) 8056 void COleControl::SetText(wchar_t const *) 8057 int CStatusBarCtrl::SetText(wchar_t const *,int,int) 8058 void CStatusCmdUI::SetText(wchar_t const *) 8059 void CTestCmdUI::SetText(wchar_t const *) 8060 void CToolCmdUI::SetText(wchar_t const *) 8061 unsigned int CDC::SetTextAlign(unsigned int) 8062 int CListCtrl::SetTextBkColor(unsigned long) 8063 int CDC::SetTextCharacterExtra(int) 8064 unsigned long CDC::SetTextColor(unsigned long) 8065 int CListCtrl::SetTextColor(unsigned long) 8066 unsigned long CPreviewDC::SetTextColor(unsigned long) 8067 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8068 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8069 int CDC::SetTextJustification(int,int) 8070 int CRichEditCtrl::SetTextMode(unsigned int) 8071 void CHtmlView::SetTheaterMode(int) 8072 int CWinThread::SetThreadPriority(int) 8073 int CSliderCtrl::SetTic(int) 8074 void CSliderCtrl::SetTicFreq(int) 8075 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8076 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8077 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8078 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8079 void CToolTipCtrl::SetTipBkColor(unsigned long) 8080 int CSliderCtrl::SetTipSide(int) 8081 void CStatusBarCtrl::SetTipText(int,wchar_t const *) 8082 void CToolTipCtrl::SetTipTextColor(unsigned long) 8083 void CDocument::SetTitle(wchar_t const *) 8084 void CFrameWnd::SetTitle(wchar_t const *) 8085 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 8086 void CRichEditDoc::SetTitle(wchar_t const *) 8087 int CToolTipCtrl::SetTitle(unsigned int,wchar_t const *) 8088 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8089 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8090 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8091 void CHtmlView::SetToolBar(int) 8092 void CToolTipCtrl::SetToolInfo(tagTOOLINFOW *) 8093 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8094 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8095 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8096 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8097 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8098 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8099 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8100 void CHtmlView::SetTop(long) 8101 int CComboBox::SetTopIndex(int) 8102 int CListBox::SetTopIndex(int) 8103 void CPreviewDC::SetTopLeftOffset(CSize) 8104 void CProperty::SetType(unsigned long) 8105 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8106 void CRecordset::SetUpdateMethod() 8107 void CThreadSlotData::SetValue(int,void *) 8108 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8109 CSize CDC::SetViewportExt(tagSIZE) 8110 CSize CDC::SetViewportExt(int,int) 8111 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8112 CSize CMetaFileDC::SetViewportExt(int,int) 8113 CSize CPreviewDC::SetViewportExt(int,int) 8114 CPoint CDC::SetViewportOrg(tagPOINT) 8115 CPoint CDC::SetViewportOrg(int,int) 8116 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8117 CPoint CMetaFileDC::SetViewportOrg(int,int) 8118 CPoint CPreviewDC::SetViewportOrg(int,int) 8119 void CHtmlView::SetVisible(int) 8120 void CHtmlView::SetWidth(long) 8121 int CWnd::SetWindowContextHelpId(unsigned long) 8122 CSize CDC::SetWindowExt(tagSIZE) 8123 CSize CDC::SetWindowExt(int,int) 8124 CSize CPreviewDC::SetWindowExt(int,int) 8125 CPoint CDC::SetWindowOrg(int,int) 8126 CPoint CDC::SetWindowOrg(tagPOINT) 8127 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 8128 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8129 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8130 int CWnd::SetWindowRgn(HRGN__ *,int) 8131 void COleControlSite::SetWindowTextW(wchar_t const *) 8132 void CWnd::SetWindowTextW(wchar_t const *) 8133 void CPropertySheet::SetWizardButtons(unsigned long) 8134 void CPropertySheet::SetWizardMode() 8135 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 8136 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 8137 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 8138 void CListCtrl::SetWorkAreas(int,tagRECT *) 8139 int CInternetFile::SetWriteBufferSize(unsigned int) 8140 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 8141 long CDocObjectServer::XOleDocumentView::Show(int) 8142 long COlePropertyPage::XPropertyPage::Show(unsigned int) 8143 void CDockBar::ShowAll(int) 8144 int CReBarCtrl::ShowBand(unsigned int,int) 8145 void CWnd::ShowCaret() 8146 long CRichEditCntrItem::ShowContainerUI(int) 8147 long CRichEditView::ShowContainerUI(int) 8148 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 8149 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8150 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8151 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8152 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 8153 void CComboBox::ShowDropDown(int) 8154 long COleClientItem::XOleClientSite::ShowObject() 8155 long COleControlSite::XOleClientSite::ShowObject() 8156 void CWnd::ShowOwnedPopups(int) 8157 void CFrameWnd::ShowOwnedWindows(int) 8158 long COleControlSite::XOleControlSite::ShowPropertyFrame() 8159 void CScrollBar::ShowScrollBar(int) 8160 void CWnd::ShowScrollBar(unsigned int,int) 8161 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8162 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8163 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8164 int COleControlSite::ShowWindow(int) 8165 int CWnd::ShowWindow(int) 8166 int CAsyncSocket::ShutDown(int) 8167 tagSIZE const CScrollView::sizeDefault 8168 int CMonthCalCtrl::SizeMinReq(int) 8169 void CBitmapButton::SizeToContent() 8170 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 8171 int CReBarCtrl::SizeToRect(CRect &) 8172 long CEnumArray::XEnumVOID::Skip(unsigned long) 8173 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 8174 int CAsyncSocket::Socket(int,long,int,int) 8175 int CTreeCtrl::SortChildren(_TREEITEM *) 8176 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 8177 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 8178 int CSplitterWnd::SplitColumn(int) 8179 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 8180 int CSplitterWnd::SplitRow(int) 8181 int CDC::StartDocW(_DOCINFOW *) 8182 int CDC::StartDocW(wchar_t const *) 8183 void CDockContext::StartDrag(CPoint) 8184 int CDC::StartPage() 8185 void CDockContext::StartResize(int,CPoint) 8186 void CSplitterWnd::StartTracking(int) 8187 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 8188 int CProgressCtrl::StepIt() 8189 int CAnimateCtrl::Stop() 8190 void CHtmlView::Stop() 8191 void CRichEditCtrl::StopGroupTyping() 8192 void CSplitterWnd::StopTracking(int) 8193 void CRuntimeClass::Store(CArchive &)const 8194 void CRecordset::StoreFields() 8195 void CRichEditView::Stream(CArchive &,int) 8196 long CRichEditCtrl::StreamIn(int,_editstream &) 8197 long CRichEditCtrl::StreamOut(int,_editstream &) 8198 void CDockContext::Stretch(CPoint) 8199 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 8200 int CDC::StrokeAndFillPath() 8201 int CDC::StrokePath() 8202 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 8203 int CWnd::SubclassWindow(HWND__ *) 8204 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 8205 int COleDocObjectItem::SupportsIPrint() 8206 unsigned long CWinThread::SuspendThread() 8207 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8208 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8209 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 8210 CSize CDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 8211 CSize CDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8212 CSize CMetaFileDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 8213 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8214 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8215 void CRichEditView::TextNotFound(wchar_t const *) 8216 int CDC::TextOutW(int,int,ATL::CStringT > > const &) 8217 int CDC::TextOutW(int,int,wchar_t const *,int) 8218 int CMetaFileDC::TextOutW(int,int,ATL::CStringT > > const &) 8219 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 8220 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 8221 void CDatabase::ThrowDBException(short) 8222 void CRecordset::ThrowDBException(short,void *) 8223 void CFileException::ThrowErrno(int,wchar_t const *) 8224 void COleControl::ThrowError(long,unsigned int,unsigned int) 8225 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 8226 void CFileException::ThrowOsError(long,wchar_t const *) 8227 void CDockContext::ToggleDocking() 8228 COleVariant CDataSourceControl::ToVariant(int) 8229 ATL::CTraceCategory traceAppMsg 8230 ATL::CTraceCategory traceCmdRouting 8231 ATL::CTraceCategory traceDatabase 8232 ATL::CTraceCategory traceDumpContext 8233 void CDBException::TraceErrorMessage(wchar_t const *)const 8234 ATL::CTraceCategory traceGdi 8235 ATL::CTraceCategory traceHtml 8236 ATL::CTraceCategory traceInternet 8237 ATL::CTraceCategory traceKernel 8238 ATL::CTraceCategory traceMemory 8239 ATL::CTraceCategory traceMultiApp 8240 ATL::CTraceCategory traceOle 8241 ATL::CTraceCategory traceSocket 8242 ATL::CTraceCategory traceUser 8243 ATL::CTraceCategory traceWinMsg 8244 int CDockContext::Track() 8245 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 8246 void CSplitterWnd::TrackColumnSize(int,int) 8247 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 8248 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 8249 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 8250 void CSplitterWnd::TrackRowSize(int,int) 8251 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 8252 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8253 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8254 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8255 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8256 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8257 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 8258 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 8259 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 8260 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 8261 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 8262 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 8263 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 8264 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8265 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8266 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8267 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 8268 long CDocObjectServer::XOleDocumentView::UIActivate(int) 8269 void COccManager::UIActivateControl(CWnd *) 8270 long COleControl::XOleInPlaceObject::UIDeactivate() 8271 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 8272 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 8273 void COleSafeArray::UnaccessData() 8274 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 8275 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 8276 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 8277 long COleControl::XOleObject::Unadvise(unsigned long) 8278 long COleServerDoc::XOleObject::Unadvise(unsigned long) 8279 long COleServerItem::XOleObject::Unadvise(unsigned long) 8280 void CRecordset::UnbindFieldsForUpdate() 8281 long COleControl::XOleCache::Uncache(unsigned long) 8282 int CEdit::Undo() 8283 int CRichEditCtrl::Undo() 8284 long COleControl::XViewObject::Unfreeze(unsigned long) 8285 int CCriticalSection::Unlock() 8286 int CEvent::Unlock() 8287 int CMultiLock::Unlock(long,long *) 8288 int CMultiLock::Unlock() 8289 int CMutex::Unlock() 8290 void COleSafeArray::Unlock() 8291 int CSemaphore::Unlock(long,long *) 8292 int CSemaphore::Unlock() 8293 int CSingleLock::Unlock(long,long *) 8294 int CSingleLock::Unlock() 8295 void CTypeLibCache::Unlock() 8296 void CEditView::UnlockBuffer()const 8297 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 8298 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 8299 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 8300 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 8301 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 8302 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 8303 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 8304 void CWnd::UnlockWindowUpdate() 8305 int CGdiObject::UnrealizeObject() 8306 int COleObjectFactory::Unregister() 8307 int COleTemplateServer::Unregister() 8308 int CWinApp::Unregister() 8309 int COleObjectFactory::UnregisterAll() 8310 void CDocManager::UnregisterShellFileTypes() 8311 void CWinApp::UnregisterShellFileTypes() 8312 HWND__ * CWnd::UnsubclassWindow() 8313 int CListCtrl::Update(int) 8314 int CRecordset::Update() 8315 void CToolTipCtrl::Update() 8316 long CDocObjectServer::XOleObject::Update() 8317 long COleControl::XOleObject::Update() 8318 long COleServerDoc::XOleObject::Update() 8319 long COleServerItem::XOleObject::Update() 8320 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 8321 void CStatusBar::UpdateAllPanes(int,int) 8322 void CDocument::UpdateAllViews(CView *,long,CObject *) 8323 void CScrollView::UpdateBars() 8324 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 8325 void CDC::UpdateColors() 8326 long CDataSourceControl::UpdateControls() 8327 long CDataSourceControl::UpdateCursor() 8328 void CMemoryState::UpdateData() 8329 int CWnd::UpdateData(int) 8330 void CWnd::UpdateDialogControls(CCmdTarget *,int) 8331 void CDocument::UpdateFrameCounts() 8332 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 8333 int CRecordset::UpdateInsertDelete() 8334 void COleClientItem::UpdateItemType() 8335 int COleClientItem::UpdateLink() 8336 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 8337 void CRecentFileList::UpdateMenu(CCmdUI *) 8338 void COleDocument::UpdateModifiedFlag() 8339 void CRichEditDoc::UpdateModifiedFlag() 8340 void CRichEditDoc::UpdateObjectCache() 8341 void CWinApp::UpdatePrinterSelection(int) 8342 int COleObjectFactory::UpdateRegistry(int) 8343 void COleObjectFactory::UpdateRegistry(wchar_t const *) 8344 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 8345 int COleObjectFactory::UpdateRegistryAll(int) 8346 void CDockContext::UpdateState(int *,int) 8347 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 8348 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 8349 long CBrowserControlSite::UpdateUI() 8350 long CDHtmlDialog::UpdateUI() 8351 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 8352 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 8353 void COleLinkingDoc::UpdateVisibleLock(int,int) 8354 void CWnd::UpdateWindow() 8355 void CWnd::ValidateRect(tagRECT const *) 8356 void CWnd::ValidateRgn(CRgn *) 8357 void CDatabase::VerifyConnect() 8358 unsigned long CRecordset::VerifyCursorSupport() 8359 void CRecordset::VerifyDriverBehavior() 8360 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 8361 int COleObjectFactory::VerifyUserLicense() 8362 int CListBox::VKeyToItem(unsigned int,unsigned int) 8363 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 8364 int CDC::WidenPath() 8365 int COleControl::WillAmbientsBeValidDuringLoad() 8366 CWnd * CWnd::WindowFromPoint(tagPOINT) 8367 long CControlBar::WindowProc(unsigned int,unsigned int,long) 8368 long COleControl::WindowProc(unsigned int,unsigned int,long) 8369 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 8370 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 8371 long CReBar::WindowProc(unsigned int,unsigned int,long) 8372 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 8373 long CWnd::WindowProc(unsigned int,unsigned int,long) 8374 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 8375 void CWnd::WinHelpInternal(unsigned long,unsigned int) 8376 void CWinApp::WinHelpW(unsigned long,unsigned int) 8377 void CWnd::WinHelpW(unsigned long,unsigned int) 8378 CWnd const CWnd::wndBottom 8379 CWnd const CWnd::wndNoTopMost 8380 CWnd const CWnd::wndTop 8381 CWnd const CWnd::wndTopMost 8382 void CRichEditView::WrapChanged() 8383 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 8384 void CArchive::Write(void const *,unsigned int) 8385 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 8386 void CFile::Write(void const *,unsigned int) 8387 void CGopherFile::Write(void const *,unsigned int) 8388 int CImageList::Write(CArchive *) 8389 void CInternetFile::Write(void const *,unsigned int) 8390 void CMemFile::Write(void const *,unsigned int) 8391 void COleStreamFile::Write(void const *,unsigned int) 8392 void CSocketFile::Write(void const *,unsigned int) 8393 void CStdioFile::Write(void const *,unsigned int) 8394 void CArchive::WriteClass(CRuntimeconst *) 8395 void CArchive::WriteCount(unsigned long) 8396 void COleClientItem::WriteItem(CArchive &) 8397 void COleClientItem::WriteItemCompound(CArchive &) 8398 void COleClientItem::WriteItemFlat(CArchive &) 8399 void CRecentFileList::WriteList() 8400 int CPropertySection::WriteNameDictToStream(IStream *) 8401 void CArchive::WriteObject(CObject const *) 8402 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 8403 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 8404 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 8405 void CArchive::WriteString(wchar_t const *) 8406 void CGopherFile::WriteString(wchar_t const *) 8407 void CInternetFile::WriteString(wchar_t const *) 8408 void CStdioFile::WriteString(wchar_t const *) 8409 void CEditView::WriteToArchive(CArchive &) 8410 int CProperty::WriteToStream(IStream *) 8411 int CPropertySection::WriteToStream(IStream *) 8412 int CPropertySet::WriteToStream(IStream *) 8413 long ATL::AtlIAccessibleGetIDsOfNamesHelper(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 8414 long ATL::AtlIAccessibleInvokeHelper(IAccessible *,long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 8415 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 8416 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 8417 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 8418 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 8419 int AfxInitRichEdit2() 8420 enum AFX_HELP_TYPE CWinApp::GetHelpMode() 8421 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 8422 _AFX_DAO_STATE::_AFX_DAO_STATE() 8423 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 8424 CDaoException::CDaoException() 8425 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 8426 CDaoIndexInfo::CDaoIndexInfo() 8427 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 8428 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 8429 CDaoRecordView::CDaoRecordView(unsigned int) 8430 CDaoRecordView::CDaoRecordView(wchar_t const *) 8431 CDaoRelationInfo::CDaoRelationInfo() 8432 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 8433 CDaoWorkspace::CDaoWorkspace() 8434 _AFX_DAO_STATE::~_AFX_DAO_STATE() 8435 CDaoDatabase::~CDaoDatabase() 8436 CDaoException::~CDaoException() 8437 CDaoIndexInfo::~CDaoIndexInfo() 8438 CDaoQueryDef::~CDaoQueryDef() 8439 CDaoRecordset::~CDaoRecordset() 8440 CDaoRecordView::~CDaoRecordView() 8441 CDaoRelationInfo::~CDaoRelationInfo() 8442 CDaoTableDef::~CDaoTableDef() 8443 CDaoWorkspace::~CDaoWorkspace() 8444 void CDaoRecordset::AddNew() 8445 void AfxDaoCheck(long,char const *,char const *,int,int,int) 8446 _DAODBEngine * AfxDaoGetEngine() 8447 void AfxDaoInit() 8448 void AfxDaoTerm() 8449 void AfxDaoTrace(long,char const *,char const *,int) 8450 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 8451 _AFX_DAO_STATE * AfxGetDaoState() 8452 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 8453 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 8454 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8455 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 8456 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 8457 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 8458 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 8459 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8460 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 8461 void AfxThrowDaoException(int,long) 8462 void CDaoRecordset::AllocCache() 8463 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 8464 void CDaoRecordset::AllocDatabase() 8465 void AllocLongBinary(CLongBinary &,unsigned long) 8466 void CDaoQueryDef::Append() 8467 void CDaoTableDef::Append() 8468 void CDaoWorkspace::Append() 8469 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 8470 void CDaoDatabase::AssertValid()const 8471 void CDaoQueryDef::AssertValid()const 8472 void CDaoRecordset::AssertValid()const 8473 void CDaoRecordView::AssertValid()const 8474 void CDaoTableDef::AssertValid()const 8475 void CDaoWorkspace::AssertValid()const 8476 void CDaoWorkspace::BeginTrans() 8477 void CDaoRecordset::BindFields() 8478 void CDaoRecordset::BindParameters() 8479 void CDaoRecordset::BuildParameterList() 8480 void CDaoRecordset::BuildSelectList() 8481 void CDaoRecordset::BuildSQL() 8482 int CDaoRecordset::CanAppend()const 8483 int CDaoRecordset::CanBookmark() 8484 void CDaoRecordset::CancelUpdate() 8485 int CDaoRecordset::CanRestart() 8486 int CDaoRecordset::CanScroll()const 8487 int CDaoDatabase::CanTransact() 8488 int CDaoRecordset::CanTransact() 8489 int CDaoDatabase::CanUpdate() 8490 int CDaoQueryDef::CanUpdate() 8491 int CDaoRecordset::CanUpdate()const 8492 int CDaoTableDef::CanUpdate() 8493 CRuntimeconst CDaoDatabase::classCDaoDatabase 8494 CRuntimeconst CDaoException::classCDaoException 8495 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 8496 CRuntimeconst CDaoRecordset::classCDaoRecordset 8497 CRuntimeconst CDaoRecordView::classCDaoRecordView 8498 CRuntimeconst CDaoTableDef::classCDaoTableDef 8499 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 8500 CRuntimeconst CDatabase::classCDatabase 8501 CRuntimeconst CDBException::classCDBException 8502 CRuntimeconst CLongBinary::classCLongBinary 8503 CRuntimeconst COleDBRecordView::classCOleDBRecordView 8504 CRuntimeconst CRecordset::classCRecordset 8505 CRuntimeconst CRecordView::classCRecordView 8506 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 8507 void CDaoRecordset::ClearFieldStatusFlags() 8508 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 8509 void CDaoDatabase::Close() 8510 void CDaoQueryDef::Close() 8511 void CDaoRecordset::Close() 8512 void CDaoTableDef::Close() 8513 void CDaoWorkspace::Close() 8514 void CDaoWorkspace::CommitTrans() 8515 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 8516 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 8517 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 8518 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 8519 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 8520 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 8521 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 8522 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 8523 void CDaoTableDef::CreateField(CDaoFieldInfo &) 8524 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 8525 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 8526 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 8527 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 8528 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8529 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8530 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8531 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 8532 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8533 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8534 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8535 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 8536 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 8537 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 8538 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 8539 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 8540 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 8541 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 8542 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 8543 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 8544 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 8545 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8546 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 8547 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 8548 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 8549 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 8550 void CDaoRecordset::Delete() 8551 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 8552 void CDaoTableDef::DeleteField(int) 8553 void CDaoTableDef::DeleteField(wchar_t const *) 8554 void CDaoTableDef::DeleteIndex(int) 8555 void CDaoTableDef::DeleteIndex(wchar_t const *) 8556 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 8557 void CDaoDatabase::DeleteRelation(wchar_t const *) 8558 void CDaoDatabase::DeleteTableDef(wchar_t const *) 8559 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 8560 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 8561 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 8562 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 8563 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 8564 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 8565 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 8566 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 8567 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 8568 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 8569 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 8570 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 8571 void CDaoDatabase::Dump(CDumpContext &)const 8572 void CDaoDatabaseInfo::Dump(CDumpContext &)const 8573 void CDaoErrorInfo::Dump(CDumpContext &)const 8574 void CDaoFieldInfo::Dump(CDumpContext &)const 8575 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 8576 void CDaoIndexInfo::Dump(CDumpContext &)const 8577 void CDaoParameterInfo::Dump(CDumpContext &)const 8578 void CDaoQueryDef::Dump(CDumpContext &)const 8579 void CDaoQueryDefInfo::Dump(CDumpContext &)const 8580 void CDaoRecordset::Dump(CDumpContext &)const 8581 void CDaoRecordView::Dump(CDumpContext &)const 8582 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 8583 void CDaoRelationInfo::Dump(CDumpContext &)const 8584 void CDaoTableDef::Dump(CDumpContext &)const 8585 void CDaoTableDefInfo::Dump(CDumpContext &)const 8586 void CDaoWorkspace::Dump(CDumpContext &)const 8587 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 8588 void CDaoRecordset::Edit() 8589 void CDaoDatabase::Execute(wchar_t const *,int) 8590 void CDaoQueryDef::Execute(int) 8591 void CDaoRecordset::FillCache(long *,COleVariant *) 8592 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 8593 void CDaoException::FillErrorInfo() 8594 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 8595 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 8596 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 8597 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 8598 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 8599 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 8600 int CDaoRecordset::Find(long,wchar_t const *) 8601 int CDaoRecordset::FindFirst(wchar_t const *) 8602 int CDaoRecordset::FindLast(wchar_t const *) 8603 int CDaoRecordset::FindNext(wchar_t const *) 8604 int CDaoRecordset::FindPrev(wchar_t const *) 8605 void CDaoRecordset::Fixup() 8606 void CDaoRecordset::FreeCache() 8607 long CDaoRecordset::GetAbsolutePosition() 8608 long CDaoTableDef::GetAttributes() 8609 COleVariant CDaoRecordset::GetBookmark() 8610 long CDaoRecordset::GetCacheSize() 8611 COleVariant CDaoRecordset::GetCacheStart() 8612 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 8613 ATL::CStringT > > CDaoDatabase::GetConnect() 8614 ATL::CStringT > > CDaoQueryDef::GetConnect() 8615 ATL::CStringT > > CDaoTableDef::GetConnect() 8616 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 8617 void CDaoRecordset::GetDataAndFixupNulls() 8618 short CDaoWorkspace::GetDatabaseCount() 8619 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 8620 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 8621 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 8622 ATL::COleDateTime CDaoRecordset::GetDateCreated() 8623 ATL::COleDateTime CDaoTableDef::GetDateCreated() 8624 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 8625 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 8626 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 8627 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 8628 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 8629 short CDaoRecordset::GetEditMode() 8630 short CDaoException::GetErrorCount() 8631 void CDaoException::GetErrorInfo(int) 8632 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 8633 short CDaoQueryDef::GetFieldCount() 8634 short CDaoRecordset::GetFieldCount() 8635 short CDaoTableDef::GetFieldCount() 8636 int CDaoRecordset::GetFieldIndex(void *) 8637 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8638 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8639 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8640 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8641 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8642 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8643 unsigned long CDaoRecordset::GetFieldLength(int) 8644 COleVariant CDaoRecordset::GetFieldValue(int) 8645 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 8646 void CDaoRecordset::GetFieldValue(int,COleVariant &) 8647 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 8648 short CDaoRecordset::GetIndexCount() 8649 short CDaoTableDef::GetIndexCount() 8650 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8651 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 8652 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8653 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 8654 ATL::CStringT > > CDaoWorkspace::GetIniPath() 8655 int CDaoWorkspace::GetIsolateODBCTrans() 8656 COleVariant CDaoRecordset::GetLastModifiedBookmark() 8657 int CDaoRecordset::GetLockingMode() 8658 short CDaoWorkspace::GetLoginTimeout() 8659 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 8660 ATL::CStringT > > CDaoDatabase::GetName() 8661 ATL::CStringT > > CDaoQueryDef::GetName() 8662 ATL::CStringT > > CDaoRecordset::GetName() 8663 ATL::CStringT > > CDaoTableDef::GetName() 8664 ATL::CStringT > > CDaoWorkspace::GetName() 8665 short CDaoQueryDef::GetODBCTimeout() 8666 short CDaoQueryDef::GetParameterCount() 8667 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 8668 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 8669 COleVariant CDaoQueryDef::GetParamValue(int) 8670 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 8671 COleVariant CDaoRecordset::GetParamValue(int) 8672 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 8673 float CDaoRecordset::GetPercentPosition() 8674 short CDaoDatabase::GetQueryDefCount() 8675 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 8676 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 8677 short CDaoDatabase::GetQueryTimeout() 8678 long CDaoRecordset::GetRecordCount() 8679 long CDaoTableDef::GetRecordCount() 8680 long CDaoDatabase::GetRecordsAffected() 8681 long CDaoQueryDef::GetRecordsAffected() 8682 short CDaoDatabase::GetRelationCount() 8683 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 8684 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 8685 int CDaoQueryDef::GetReturnsRecords() 8686 CRuntime* CDaoDatabase::GetRuntimeClass()const 8687 CRuntime* CDaoException::GetRuntimeClass()const 8688 CRuntime* CDaoQueryDef::GetRuntimeClass()const 8689 CRuntime* CDaoRecordset::GetRuntimeClass()const 8690 CRuntime* CDaoRecordView::GetRuntimeClass()const 8691 CRuntime* CDaoTableDef::GetRuntimeClass()const 8692 CRuntime* CDaoWorkspace::GetRuntimeClass()const 8693 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 8694 ATL::CStringT > > CDaoQueryDef::GetSQL() 8695 ATL::CStringT > > CDaoRecordset::GetSQL()const 8696 short CDaoDatabase::GetTableDefCount() 8697 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 8698 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 8699 CRuntime* CDaoDatabase::GetThisClass() 8700 CRuntime* CDaoException::GetThisClass() 8701 CRuntime* CDaoQueryDef::GetThisClass() 8702 CRuntime* CDaoRecordset::GetThisClass() 8703 CRuntime* CDaoRecordView::GetThisClass() 8704 CRuntime* CDaoTableDef::GetThisClass() 8705 CRuntime* CDaoWorkspace::GetThisClass() 8706 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 8707 short CDaoQueryDef::GetType() 8708 short CDaoRecordset::GetType() 8709 ATL::CStringT > > CDaoWorkspace::GetUserNameW() 8710 ATL::CStringT > > CDaoRecordset::GetValidationRule() 8711 ATL::CStringT > > CDaoTableDef::GetValidationRule() 8712 ATL::CStringT > > CDaoRecordset::GetValidationText() 8713 ATL::CStringT > > CDaoTableDef::GetValidationText() 8714 ATL::CStringT > > CDaoDatabase::GetVersion() 8715 ATL::CStringT > > CDaoWorkspace::GetVersion() 8716 short CDaoWorkspace::GetWorkspaceCount() 8717 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 8718 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 8719 void CDaoWorkspace::Idle(int) 8720 void CDaoWorkspace::InitDatabasesCollection() 8721 void CDaoException::InitErrorsCollection() 8722 void CDaoQueryDef::InitFieldsCollection() 8723 void CDaoRecordset::InitFieldsCollection() 8724 void CDaoTableDef::InitFieldsCollection() 8725 void CDaoWorkspace::InitializeEngine() 8726 void CDaoRecordset::InitIndexesCollection() 8727 void CDaoTableDef::InitIndexesCollection() 8728 void CDaoQueryDef::InitParametersCollection() 8729 void CDaoDatabase::InitQueryDefsCollection() 8730 void CDaoDatabase::InitRelationsCollection() 8731 void CDaoDatabase::InitTableDefsCollection() 8732 void CDaoDatabase::InitWorkspace() 8733 void CDaoWorkspace::InitWorkspacesCollection() 8734 int CDaoRecordset::IsBOF()const 8735 int CDaoRecordset::IsDeleted()const 8736 int CDaoRecordset::IsEOF()const 8737 int CDaoRecordset::IsFieldDirty(void *) 8738 int CDaoRecordset::IsFieldNull(void *) 8739 int CDaoRecordset::IsFieldNullable(void *) 8740 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 8741 int CDaoRecordset::IsFieldStatusNull(unsigned int) 8742 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 8743 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 8744 int CDaoRecordset::IsMatch() 8745 int CDaoWorkspace::IsNew()const 8746 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 8747 int CDaoRecordView::IsOnFirstRecord() 8748 int CDaoRecordView::IsOnLastRecord() 8749 int CDaoDatabase::IsOpen()const 8750 int CDaoQueryDef::IsOpen()const 8751 int CDaoRecordset::IsOpen()const 8752 int CDaoTableDef::IsOpen()const 8753 int CDaoWorkspace::IsOpen()const 8754 int CDaoFieldExchange::IsValidOperation() 8755 void CDaoRecordset::LoadFields() 8756 void CDaoRecordset::MarkForAddNew() 8757 void CDaoRecordset::MarkForEdit() 8758 AFX_MSGMAP const CDaoRecordView::messageMap 8759 AFX_MSGMAP const COleDBRecordView::messageMap 8760 AFX_MSGMAP const CRecordView::messageMap 8761 void CDaoRecordset::Move(long) 8762 void CDaoRecordset::MoveFirst() 8763 void CDaoRecordset::MoveLast() 8764 void CDaoRecordset::MoveNext() 8765 void CDaoRecordset::MovePrev() 8766 void CDaoRecordView::OnInitialUpdate() 8767 void CDaoRecordView::OnMove(int,int) 8768 int CDaoRecordView::OnMove(unsigned int) 8769 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 8770 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 8771 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 8772 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 8773 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 8774 void CDaoQueryDef::Open(wchar_t const *) 8775 void CDaoRecordset::Open(int,wchar_t const *,int) 8776 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 8777 void CDaoRecordset::Open(CDaoTableDef *,int,int) 8778 void CDaoTableDef::Open(wchar_t const *) 8779 void CDaoWorkspace::Open(wchar_t const *) 8780 void CDaoTableDef::RefreshLink() 8781 void CDaoWorkspace::RepairDatabase(wchar_t const *) 8782 void CDaoRecordset::Requery() 8783 void CDaoWorkspace::Rollback() 8784 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 8785 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 8786 void CDaoRecordset::SetAbsolutePosition(long) 8787 void CDaoTableDef::SetAttributes(long) 8788 void CDaoRecordset::SetBookmark(COleVariant) 8789 void CDaoRecordset::SetCacheSize(long) 8790 void CDaoRecordset::SetCacheStart(COleVariant) 8791 void CDaoQueryDef::SetConnect(wchar_t const *) 8792 void CDaoTableDef::SetConnect(wchar_t const *) 8793 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 8794 void CDaoRecordset::SetCursorAttributes() 8795 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 8796 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 8797 void CDaoRecordset::SetDirtyFields() 8798 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 8799 void CDaoRecordset::SetFieldDirty(void *,int) 8800 void CDaoRecordset::SetFieldNull(void *,int) 8801 void CDaoFieldExchange::SetFieldType(unsigned int) 8802 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 8803 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 8804 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 8805 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 8806 void CDaoRecordset::SetFieldValueNull(int) 8807 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 8808 void CDaoWorkspace::SetIniPath(wchar_t const *) 8809 void CDaoWorkspace::SetIsolateODBCTrans(int) 8810 void CDaoRecordset::SetLockingMode(int) 8811 void CDaoWorkspace::SetLoginTimeout(short) 8812 void CDaoQueryDef::SetName(wchar_t const *) 8813 void CDaoTableDef::SetName(wchar_t const *) 8814 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 8815 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 8816 void CDaoRecordset::SetNullFieldStatus(unsigned int) 8817 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 8818 void CDaoQueryDef::SetODBCTimeout(short) 8819 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 8820 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 8821 void CDaoRecordset::SetParamValue(int,COleVariant const &) 8822 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 8823 void CDaoQueryDef::SetParamValueNull(int) 8824 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 8825 void CDaoRecordset::SetParamValueNull(int) 8826 void CDaoRecordset::SetParamValueNull(wchar_t const *) 8827 void CDaoRecordset::SetPercentPosition(float) 8828 void CDaoDatabase::SetQueryTimeout(short) 8829 void CDaoQueryDef::SetReturnsRecords(int) 8830 void CDaoTableDef::SetSourceTableName(wchar_t const *) 8831 void CDaoQueryDef::SetSQL(wchar_t const *) 8832 void CDaoTableDef::SetValidationRule(wchar_t const *) 8833 void CDaoTableDef::SetValidationText(wchar_t const *) 8834 void CDaoRecordset::StoreFields() 8835 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 8836 void CDaoDatabase::ThrowDaoException(int) 8837 void CDaoQueryDef::ThrowDaoException(int) 8838 void CDaoRecordset::ThrowDaoException(int) 8839 void CDaoTableDef::ThrowDaoException(int) 8840 void CDaoWorkspace::ThrowDaoException(int) 8841 void ThrowGetRowsDaoException(long) 8842 void CDaoRecordset::Update() ================================================ FILE: Bin/i386/mfc_sym/mfc71.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 unsigned int HashKey(tagVARIANT const &) 258 unsigned int HashKey(wchar_t const *) 259 unsigned int HashKey(char const *) 260 unsigned int HashKey(ATL::CComBSTR) 261 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 264 void SerializeElements(CArchive &,COleVariant *,int) 265 void * operator new[](unsigned int) 266 void operator delete[](void *) 267 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 268 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 269 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 270 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 271 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 272 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 275 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 277 ATL::CStringT > >::CStringT > >(wchar_t,int) 278 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 279 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 280 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 281 ATL::CStringT > >::CStringT > >(char,int) 282 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t const *) 284 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 285 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 287 ATL::CStringT > >::CStringT > >(char const *) 288 ATL::CStringT > >::CStringT > >(char const *,int) 289 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 290 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 291 ATL::CStringT > >::CStringT > >(unsigned char const *) 292 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >() 294 ATL::CStringT > >::CStringT > >(wchar_t,int) 295 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 296 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 298 ATL::CStringT > >::CStringT > >(char,int) 299 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(wchar_t const *) 301 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 302 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 304 ATL::CStringT > >::CStringT > >(char const *) 305 ATL::CStringT > >::CStringT > >(char const *,int) 306 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 307 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 308 ATL::CStringT > >::CStringT > >(unsigned char const *) 309 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >() 311 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 312 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 313 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 314 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 315 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 316 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 317 CArchive::CArchive(CFile *,unsigned int,int,void *) 318 CArchivePropExchange::CArchivePropExchange(CArchive &) 319 CArchiveStream::CArchiveStream(CArchive *) 320 CAsyncMonikerFile::CAsyncMonikerFile() 321 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 322 CAsyncSocket::CAsyncSocket() 323 CBlobProperty::CBlobProperty(void *) 324 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 325 CBrush::CBrush(int,unsigned long) 326 CBrush::CBrush(unsigned long) 327 CBrush::CBrush(CBitmap *) 328 CByteArray::CByteArray() 329 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 330 CClientDC::CClientDC(CWnd *) 331 CCmdTarget::CCmdTarget() 332 CCmdUI::CCmdUI() 333 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 334 CCommandLineInfo::CCommandLineInfo() 335 CConnectionPoint::CConnectionPoint() 336 CControlBar::CControlBar() 337 CControlBarInfo::CControlBarInfo() 338 COleControl::CControlDataSource::CControlDataSource(COleControl *) 339 CControlFrameWnd::CControlFrameWnd(COleControl *) 340 CCtrlView::CCtrlView(char const *,unsigned long) 341 CDatabase::CDatabase() 342 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 343 CDataExchange::CDataExchange(CWnd *,int) 344 CDataSourceControl::CDataSourceControl(COleControlSite *) 345 CDBException::CDBException(short) 346 CDBVariant::CDBVariant() 347 CDC::CDC() 348 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 349 CDHtmlControlSink::CDHtmlControlSink() 350 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 351 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 352 CDHtmlDialog::CDHtmlDialog() 353 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 354 CDialog::CDialog(unsigned int,CWnd *) 355 CDialog::CDialog(char const *,CWnd *) 356 CDialog::CDialog() 357 CDialogBar::CDialogBar() 358 CDialogTemplate::CDialogTemplate(void *) 359 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 360 CDocItem::CDocItem() 361 CDockBar::CDockBar(int) 362 CDockContext::CDockContext(CControlBar *) 363 CDockState::CDockState() 364 CDocManager::CDocManager() 365 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 366 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 367 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 368 CDocument::CDocument() 369 CDumpContext::CDumpContext(CFile *) 370 CDWordArray::CDWordArray() 371 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 372 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 373 CEditView::CEditView() 374 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 375 CEnumConnections::CEnumConnections(void const *,unsigned int) 376 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 377 CEnumFormatEtc::CEnumFormatEtc() 378 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 379 CException::CException(int) 380 CException::CException() 381 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 382 CFile::CFile(void *) 383 CFile::CFile(char const *,unsigned int) 384 CFile::CFile() 385 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long) 386 CFileFind::CFileFind() 387 CFindReplaceDialog::CFindReplaceDialog() 388 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 389 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 390 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 391 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 392 CFontHolder::CFontHolder(IPropertyNotifySink *) 393 CFormView::CFormView(unsigned int) 394 CFormView::CFormView(char const *) 395 CFrameWnd::CFrameWnd() 396 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 397 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 398 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 399 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 400 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 401 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 402 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 403 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 404 private: CGopherLocator::CGopherLocator(char const *,unsigned long) 405 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 406 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 407 CHtmlEditCtrl::CHtmlEditCtrl() 408 CHtmlEditDoc::CHtmlEditDoc() 409 CHtmlEditView::CHtmlEditView() 410 CHtmlView::CHtmlView() 411 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 412 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 413 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 414 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 415 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 416 CImageList::CImageList() 417 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 418 CInternetException::CInternetException(unsigned long) 419 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 420 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 421 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 422 CLongBinary::CLongBinary() 423 CMapPtrToPtr::CMapPtrToPtr(int) 424 CMapPtrToWord::CMapPtrToWord(int) 425 CMapStringToOb::CMapStringToOb(int) 426 CMapStringToPtr::CMapStringToPtr(int) 427 CMapStringToString::CMapStringToString(int) 428 CMapWordToOb::CMapWordToOb(int) 429 CMapWordToPtr::CMapWordToPtr(int) 430 CMDIChildWnd::CMDIChildWnd() 431 CMDIFrameWnd::CMDIFrameWnd() 432 CMemFile::CMemFile(unsigned int) 433 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 434 CMetaFileDC::CMetaFileDC() 435 CMiniDockFrameWnd::CMiniDockFrameWnd() 436 CMiniFrameWnd::CMiniFrameWnd() 437 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 438 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 439 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 440 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 441 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 442 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 443 CObArray::CObArray() 444 CObList::CObList(int) 445 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 446 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 447 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 448 COleClientItem::COleClientItem(COleDocument *) 449 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 450 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 451 COleControl::COleControl() 452 COleControlContainer::COleControlContainer(CWnd *) 453 COleControlLock::COleControlLock(_GUID const &) 454 COleControlSite::COleControlSite(COleControlContainer *) 455 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 456 COleCurrency::COleCurrency(long,long) 457 COleDataObject::COleDataObject() 458 COleDataSource::COleDataSource() 459 COleDialog::COleDialog(CWnd *) 460 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 461 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 462 COleDispatchDriver::COleDispatchDriver() 463 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 464 COleDocIPFrameWnd::COleDocIPFrameWnd() 465 COleDocObjectItem::COleDocObjectItem(COleDocument *) 466 COleDocument::COleDocument() 467 COleDropSource::COleDropSource() 468 COleDropTarget::COleDropTarget() 469 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 470 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 471 COleIPFrameWnd::COleIPFrameWnd() 472 COleLinkingDoc::COleLinkingDoc() 473 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 474 COleMessageFilter::COleMessageFilter() 475 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 476 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 477 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 478 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 479 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 480 COleResizeBar::COleResizeBar() 481 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 482 COleSafeArray::COleSafeArray(tagVARIANT const &) 483 COleSafeArray::COleSafeArray(COleSafeArray const &) 484 COleSafeArray::COleSafeArray(COleVariant const &) 485 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 486 COleSafeArray::COleSafeArray(tagVARIANT const *) 487 COleServerDoc::COleServerDoc() 488 COleServerItem::COleServerItem(COleServerDoc *,int) 489 COleStreamFile::COleStreamFile(IStream *) 490 COleTemplateServer::COleTemplateServer() 491 COleUILinkInfo::COleUILinkInfo(COleDocument *) 492 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 493 COleVariant::COleVariant(tagVARIANT const &) 494 COleVariant::COleVariant(COleVariant const &) 495 COleVariant::COleVariant(short,unsigned short) 496 COleVariant::COleVariant(long,unsigned short) 497 COleVariant::COleVariant(char const *,unsigned short) 498 COleVariant::COleVariant(_ITEMIDLIST const *) 499 COleVariant::COleVariant(tagVARIANT const *) 500 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 501 CPaintDC::CPaintDC(CWnd *) 502 CPen::CPen(int,int,unsigned long) 503 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 504 CPictureHolder::CPictureHolder() 505 CPreviewDC::CPreviewDC() 506 CPreviewView::CPreviewView() 507 CPrintDialog::CPrintDialog(tagPDA &) 508 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 509 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 510 CPrintInfo::CPrintInfo() 511 CPrintPreviewState::CPrintPreviewState() 512 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 513 CProperty::CProperty(unsigned long,void * const,unsigned long) 514 CProperty::CProperty() 515 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 516 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 517 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 518 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 519 CPropertyPage::CPropertyPage() 520 CPropertySection::CPropertySection(_GUID) 521 CPropertySection::CPropertySection() 522 CPropertySet::CPropertySet(_GUID) 523 CPropertySet::CPropertySet() 524 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 525 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 526 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 527 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 528 CPropertySheet::CPropertySheet() 529 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 530 CPtrArray::CPtrArray() 531 CPtrList::CPtrList(int) 532 CReBar::CReBar() 533 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 534 CRecordset::CRecordset(CDatabase *) 535 CRecordView::CRecordView(unsigned int) 536 CRecordView::CRecordView(char const *) 537 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 538 CReObject::CReObject(CRichEditCntrItem *) 539 CReObject::CReObject() 540 CResetPropExchange::CResetPropExchange() 541 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 542 CRichEditDoc::CRichEditDoc() 543 CRichEditView::CRichEditView() 544 CScrollView::CScrollView() 545 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 546 CSharedFile::CSharedFile(unsigned int,unsigned int) 547 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 548 CSingleLock::CSingleLock(CSyncObject *,int) 549 CSocket::CSocket() 550 CSocketFile::CSocketFile(CSocket *,int) 551 CSocketWnd::CSocketWnd() 552 CSplitterWnd::CSplitterWnd() 553 CStatusBar::CStatusBar() 554 CStdioFile::CStdioFile(_iobuf *) 555 CStdioFile::CStdioFile(char const *,unsigned int) 556 CStdioFile::CStdioFile() 557 CStringArray::CStringArray() 558 CStringList::CStringList(int) 559 CSyncObject::CSyncObject(char const *) 560 CTestCmdUI::CTestCmdUI() 561 CThreadSlotData::CThreadSlotData() 562 CToolBar::CToolBar() 563 CToolTipCtrl::CToolTipCtrl() 564 CUIntArray::CUIntArray() 565 CView::CView() 566 CWinApp::CWinApp(char const *) 567 CWindowDC::CWindowDC(CWnd *) 568 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 569 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 570 CWinThread::CWinThread() 571 private: CWnd::CWnd(HWND__ *) 572 CWnd::CWnd() 573 CWordArray::CWordArray() 574 CPreviewView::PAGE_INFO::PAGE_INFO() 575 ATL::CSimpleStringT::~CSimpleStringT() 576 ATL::CSimpleStringT::~CSimpleStringT() 577 ATL::CStringT > >::~CStringT > >() 578 ATL::CStringT > >::~CStringT > >() 579 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 580 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 581 AFX_MODULE_STATE::~AFX_MODULE_STATE() 582 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 583 CAnimateCtrl::~CAnimateCtrl() 584 CArchive::~CArchive() 585 CAsyncMonikerFile::~CAsyncMonikerFile() 586 CAsyncSocket::~CAsyncSocket() 587 CButton::~CButton() 588 CByteArray::~CByteArray() 589 CClientDC::~CClientDC() 590 CCmdTarget::~CCmdTarget() 591 CComboBox::~CComboBox() 592 CComboBoxEx::~CComboBoxEx() 593 CCommandLineInfo::~CCommandLineInfo() 594 CConnectionPoint::~CConnectionPoint() 595 CControlBar::~CControlBar() 596 CCtrlView::~CCtrlView() 597 CDatabase::~CDatabase() 598 CDataSourceControl::~CDataSourceControl() 599 CDateTimeCtrl::~CDateTimeCtrl() 600 CDBException::~CDBException() 601 CDBVariant::~CDBVariant() 602 CDC::~CDC() 603 CDHtmlControlSink::~CDHtmlControlSink() 604 CDHtmlDialog::~CDHtmlDialog() 605 CDialog::~CDialog() 606 CDialogBar::~CDialogBar() 607 CDialogTemplate::~CDialogTemplate() 608 CDocItem::~CDocItem() 609 CDockBar::~CDockBar() 610 CDockContext::~CDockContext() 611 CDockState::~CDockState() 612 CDocManager::~CDocManager() 613 CDocObjectServer::~CDocObjectServer() 614 CDocObjectServerItem::~CDocObjectServerItem() 615 CDocTemplate::~CDocTemplate() 616 CDocument::~CDocument() 617 CDragListBox::~CDragListBox() 618 CDWordArray::~CDWordArray() 619 CDynLinkLibrary::~CDynLinkLibrary() 620 CEdit::~CEdit() 621 CEditView::~CEditView() 622 CEnumArray::~CEnumArray() 623 CEnumConnections::~CEnumConnections() 624 CEnumConnPoints::~CEnumConnPoints() 625 CEnumFormatEtc::~CEnumFormatEtc() 626 CEnumOleVerb::~CEnumOleVerb() 627 CEnumUnknown::~CEnumUnknown() 628 CEvent::~CEvent() 629 CFile::~CFile() 630 CFileDialog::~CFileDialog() 631 CFileFind::~CFileFind() 632 CFixedAlloc::~CFixedAlloc() 633 CFixedAllocNoSync::~CFixedAllocNoSync() 634 CFontHolder::~CFontHolder() 635 CFrameWnd::~CFrameWnd() 636 CFtpConnection::~CFtpConnection() 637 CFtpFileFind::~CFtpFileFind() 638 CGopherConnection::~CGopherConnection() 639 CGopherFile::~CGopherFile() 640 CGopherFileFind::~CGopherFileFind() 641 CGopherLocator::~CGopherLocator() 642 CHeaderCtrl::~CHeaderCtrl() 643 CHotKeyCtrl::~CHotKeyCtrl() 644 CHtmlControlSite::~CHtmlControlSite() 645 CHtmlEditCtrl::~CHtmlEditCtrl() 646 CHtmlEditDoc::~CHtmlEditDoc() 647 CHtmlEditView::~CHtmlEditView() 648 CHtmlView::~CHtmlView() 649 CHttpConnection::~CHttpConnection() 650 CHttpFile::~CHttpFile() 651 CImageList::~CImageList() 652 CInternetConnection::~CInternetConnection() 653 CInternetException::~CInternetException() 654 CInternetFile::~CInternetFile() 655 CInternetSession::~CInternetSession() 656 CIPAddressCtrl::~CIPAddressCtrl() 657 CListBox::~CListBox() 658 CListCtrl::~CListCtrl() 659 CLongBinary::~CLongBinary() 660 CMapPtrToPtr::~CMapPtrToPtr() 661 CMapPtrToWord::~CMapPtrToWord() 662 CMapStringToOb::~CMapStringToOb() 663 CMapStringToPtr::~CMapStringToPtr() 664 CMapStringToString::~CMapStringToString() 665 CMapWordToOb::~CMapWordToOb() 666 CMapWordToPtr::~CMapWordToPtr() 667 CMemFile::~CMemFile() 668 CMetaFileDC::~CMetaFileDC() 669 CMiniFrameWnd::~CMiniFrameWnd() 670 CMonikerFile::~CMonikerFile() 671 CMonthCalCtrl::~CMonthCalCtrl() 672 CMultiDocTemplate::~CMultiDocTemplate() 673 CMultiLock::~CMultiLock() 674 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 675 CMutex::~CMutex() 676 CObArray::~CObArray() 677 CObList::~CObList() 678 COleBusyDialog::~COleBusyDialog() 679 COleChangeIconDialog::~COleChangeIconDialog() 680 COleChangeSourceDialog::~COleChangeSourceDialog() 681 COleClientItem::~COleClientItem() 682 COleCntrFrameWnd::~COleCntrFrameWnd() 683 COleControl::~COleControl() 684 COleControlContainer::~COleControlContainer() 685 COleControlLock::~COleControlLock() 686 COleControlSite::~COleControlSite() 687 COleControlSiteOrWnd::~COleControlSiteOrWnd() 688 COleConvertDialog::~COleConvertDialog() 689 COleDataSource::~COleDataSource() 690 COleDispatchException::~COleDispatchException() 691 COleDocIPFrameWnd::~COleDocIPFrameWnd() 692 COleDocObjectItem::~COleDocObjectItem() 693 COleDocument::~COleDocument() 694 COleDropTarget::~COleDropTarget() 695 COleFrameHook::~COleFrameHook() 696 COleInsertDialog::~COleInsertDialog() 697 COleIPFrameWnd::~COleIPFrameWnd() 698 COleLinkingDoc::~COleLinkingDoc() 699 COleLinksDialog::~COleLinksDialog() 700 COleMessageFilter::~COleMessageFilter() 701 COleObjectFactory::~COleObjectFactory() 702 COlePasteSpecialDialog::~COlePasteSpecialDialog() 703 COlePropertyPage::~COlePropertyPage() 704 COleResizeBar::~COleResizeBar() 705 COleServerDoc::~COleServerDoc() 706 COleServerItem::~COleServerItem() 707 COleStreamFile::~COleStreamFile() 708 COleUpdateDialog::~COleUpdateDialog() 709 CPaintDC::~CPaintDC() 710 CPictureHolder::~CPictureHolder() 711 CPreviewDC::~CPreviewDC() 712 CPreviewView::~CPreviewView() 713 CPrintInfo::~CPrintInfo() 714 CProcessLocalObject::~CProcessLocalObject() 715 CProgressCtrl::~CProgressCtrl() 716 CPropbagPropExchange::~CPropbagPropExchange() 717 CProperty::~CProperty() 718 CPropertyPage::~CPropertyPage() 719 CPropertySection::~CPropertySection() 720 CPropertySet::~CPropertySet() 721 CPropertySheet::~CPropertySheet() 722 CPtrArray::~CPtrArray() 723 CPtrList::~CPtrList() 724 CRecentFileList::~CRecentFileList() 725 CRecordset::~CRecordset() 726 CRecordView::~CRecordView() 727 CRectTracker::~CRectTracker() 728 CReObject::~CReObject() 729 CRichEditCntrItem::~CRichEditCntrItem() 730 CRichEditCtrl::~CRichEditCtrl() 731 CScrollBar::~CScrollBar() 732 CScrollView::~CScrollView() 733 CSemaphore::~CSemaphore() 734 CSharedFile::~CSharedFile() 735 CSingleDocTemplate::~CSingleDocTemplate() 736 CSliderCtrl::~CSliderCtrl() 737 CSocket::~CSocket() 738 CSocketFile::~CSocketFile() 739 CSpinButtonCtrl::~CSpinButtonCtrl() 740 CSplitterWnd::~CSplitterWnd() 741 CStatic::~CStatic() 742 CStatusBar::~CStatusBar() 743 CStatusBarCtrl::~CStatusBarCtrl() 744 CStdioFile::~CStdioFile() 745 CStringArray::~CStringArray() 746 CStringList::~CStringList() 747 CSyncObject::~CSyncObject() 748 CTabCtrl::~CTabCtrl() 749 CThreadLocalObject::~CThreadLocalObject() 750 CThreadSlotData::~CThreadSlotData() 751 CToolBar::~CToolBar() 752 CToolBarCtrl::~CToolBarCtrl() 753 CToolTipCtrl::~CToolTipCtrl() 754 CTreeCtrl::~CTreeCtrl() 755 CUIntArray::~CUIntArray() 756 CView::~CView() 757 CWinApp::~CWinApp() 758 CWindowDC::~CWindowDC() 759 CWinThread::~CWinThread() 760 CWnd::~CWnd() 761 CWordArray::~CWordArray() 762 void * operator new(unsigned int) 763 void * CNoTrackObject::operator new(unsigned int) 764 void operator delete(void *) 765 void CNoTrackObject::operator delete(void *) 766 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 767 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 768 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 769 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 770 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 771 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 772 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 773 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 774 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 775 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 776 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 777 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 778 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 779 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 780 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 781 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 782 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 783 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 784 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 785 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 786 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 787 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 788 COleCurrency const & COleCurrency::operator=(union tagCY) 789 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 790 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 791 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 792 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 793 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 794 COleVariant const & COleVariant::operator=(tagVARIANT const &) 795 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 796 COleVariant const & COleVariant::operator=(COleVariant const &) 797 COleVariant const & COleVariant::operator=(CByteArray const &) 798 COleVariant const & COleVariant::operator=(CLongBinary const &) 799 COleVariant const & COleVariant::operator=(COleCurrency const &) 800 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 801 COleVariant const & COleVariant::operator=(unsigned char) 802 COleVariant const & COleVariant::operator=(short) 803 COleVariant const & COleVariant::operator=(long) 804 COleVariant const & COleVariant::operator=(float) 805 COleVariant const & COleVariant::operator=(double) 806 COleVariant const & COleVariant::operator=(tagVARIANT const *) 807 COleVariant const & COleVariant::operator=(char const * const) 808 CArchive & operator>>(CArchive &,CByteArray * &) 809 CArchive & operator>>(CArchive &,CDocItem * &) 810 CArchive & operator>>(CArchive &,CDockState * &) 811 CArchive & operator>>(CArchive &,CDWordArray * &) 812 CArchive & operator>>(CArchive &,CMapStringToOb * &) 813 CArchive & operator>>(CArchive &,CMapStringToString * &) 814 CArchive & operator>>(CArchive &,CMapWordToOb * &) 815 CArchive & operator>>(CArchive &,CObArray * &) 816 CArchive & operator>>(CArchive &,CObList * &) 817 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 818 CArchive & operator>>(CArchive &,CStringArray * &) 819 CArchive & operator>>(CArchive &,CStringList * &) 820 CArchive & operator>>(CArchive &,CWordArray * &) 821 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 822 CArchive & operator>>(CArchive &,COleCurrency &) 823 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 824 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 825 CArchive & operator>>(CArchive &,COleVariant &) 826 CArchive & operator>>(CArchive &,ATL::CTime &) 827 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 828 CArchive & operator<<(CArchive &,ATL::CComBSTR) 829 CArchive & operator<<(CArchive &,COleCurrency) 830 CArchive & operator<<(CArchive &,ATL::COleDateTime) 831 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 832 CArchive & operator<<(CArchive &,COleVariant) 833 CArchive & operator<<(CArchive &,ATL::CTime) 834 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 835 CDumpContext & CDumpContext::operator<<(__int64) 836 CDumpContext & CDumpContext::operator<<(unsigned __int64) 837 CDumpContext & CDumpContext::operator<<(CObject const &) 838 CDumpContext & CDumpContext::operator<<(unsigned char) 839 CDumpContext & CDumpContext::operator<<(unsigned short) 840 CDumpContext & CDumpContext::operator<<(int) 841 CDumpContext & CDumpContext::operator<<(unsigned int) 842 CDumpContext & CDumpContext::operator<<(long) 843 CDumpContext & CDumpContext::operator<<(unsigned long) 844 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 845 CDumpContext & CDumpContext::operator<<(HDC__ *) 846 CDumpContext & CDumpContext::operator<<(HFONT__ *) 847 CDumpContext & CDumpContext::operator<<(HMENU__ *) 848 CDumpContext & CDumpContext::operator<<(HWND__ *) 849 CDumpContext & CDumpContext::operator<<(wchar_t const *) 850 CDumpContext & CDumpContext::operator<<(char const *) 851 CDumpContext & CDumpContext::operator<<(CObject const *) 852 CDumpContext & CDumpContext::operator<<(void const *) 853 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 854 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 855 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 856 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 857 int COleSafeArray::operator==(tagSAFEARRAY const &)const 858 int COleSafeArray::operator==(tagVARIANT const &)const 859 int COleSafeArray::operator==(COleSafeArray const &)const 860 int COleSafeArray::operator==(COleVariant const &)const 861 int COleSafeArray::operator==(tagSAFEARRAY const *)const 862 int COleSafeArray::operator==(tagVARIANT const *)const 863 int COleVariant::operator==(tagVARIANT const &)const 864 wchar_t ATL::CSimpleStringT::operator[](int)const 865 char ATL::CSimpleStringT::operator[](int)const 866 void * & CMapPtrToPtr::operator[](void *) 867 unsigned short & CMapPtrToWord::operator[](void *) 868 CObject * & CMapStringToOb::operator[](char const *) 869 void * & CMapStringToPtr::operator[](char const *) 870 ATL::CStringT > > & CMapStringToString::operator[](char const *) 871 CObject * & CMapWordToOb::operator[](unsigned short) 872 void * & CMapWordToPtr::operator[](unsigned short) 873 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 874 ATL::CSimpleStringT::operator wchar_t const *()const 875 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 876 ATL::CSimpleStringT::operator char const *()const 877 ATL::CStringT > >::operator ATL::CSimpleStringT &() 878 ATL::CStringT > >::operator ATL::CSimpleStringT &() 879 COleCurrency COleCurrency::operator*(long)const 880 COleCurrency COleCurrency::operator-(COleCurrency const &)const 881 COleCurrency COleCurrency::operator-()const 882 COleCurrency COleCurrency::operator+(COleCurrency const &)const 883 COleCurrency COleCurrency::operator/(long)const 884 int COleCurrency::operator<(COleCurrency const &)const 885 int COleCurrency::operator<=(COleCurrency const &)const 886 int COleCurrency::operator>(COleCurrency const &)const 887 int COleCurrency::operator>=(COleCurrency const &)const 888 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 889 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 890 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 891 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 892 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 893 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 894 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 895 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 896 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 897 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 898 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 899 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 900 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 901 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 902 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 903 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 904 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 905 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 906 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 907 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 908 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 909 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 910 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 911 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 912 int _AfxSocketInit(WSAData *) 913 void CArchive::Abort() 914 void CFile::Abort() 915 void CInternetFile::Abort() 916 void CMemFile::Abort() 917 void CMirrorFile::Abort() 918 void COleStreamFile::Abort() 919 void CSocketFile::Abort() 920 void CStdioFile::Abort() 921 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 922 long CCheckListBox::accDoDefaultAction(tagVARIANT) 923 long CWnd::accDoDefaultAction(tagVARIANT) 924 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 925 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 926 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 927 void COleSafeArray::AccessData(void * *) 928 long CWnd::accHitTest(long,long,tagVARIANT *) 929 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 930 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 931 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 932 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 933 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 934 long CWnd::accSelect(long,tagVARIANT) 935 long CWnd::XAccessible::accSelect(long,tagVARIANT) 936 void COleClientItem::Activate(long,CView *,tagMSG *) 937 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 938 void COleDocObjectItem::ActivateAndShow() 939 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 940 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 941 void CDocObjectServer::ActivateDocObject() 942 void COleServerDoc::ActivateDocObject() 943 void CFrameWnd::ActivateFrame(int) 944 void CMDIChildWnd::ActivateFrame(int) 945 int COleServerDoc::ActivateInPlace() 946 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 947 void CSplitterWnd::ActivateNext(int) 948 void CWnd::ActivateTopParent() 949 void CRecentFileList::Add(char const *) 950 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 951 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 952 int CToolBarCtrl::AddBitmap(int,unsigned int) 953 int CToolBarCtrl::AddBitmap(int,CBitmap *) 954 void COleClientItem::AddCachedData(COleDataSource *) 955 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 956 void CEnumConnections::AddConnection(tagCONNECTDATA *) 957 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 958 void CDocManager::AddDocTemplate(CDocTemplate *) 959 void CWinApp::AddDocTemplate(CDocTemplate *) 960 void CDocTemplate::AddDocument(CDocument *) 961 void CMultiDocTemplate::AddDocument(CDocument *) 962 void CSingleDocTemplate::AddDocument(CDocument *) 963 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 964 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 965 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 966 void COleControl::AddFrameLevelUI() 967 void CFrameWnd::AddFrameWnd() 968 __POSITION * CObList::AddHead(CObject *) 969 void CObList::AddHead(CObList *) 970 __POSITION * CPtrList::AddHead(void *) 971 void CPtrList::AddHead(CPtrList *) 972 void CSimpleList::AddHead(void *) 973 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 974 __POSITION * CStringList::AddHead(char const *) 975 void CStringList::AddHead(CStringList *) 976 void COleDocument::AddItem(CDocItem *) 977 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 978 void CRecordset::AddNew() 979 void COleServerItem::AddOtherClipboardData(COleDataSource *) 980 void CPropertySheet::AddPage(CPropertyPage *) 981 void CPropertySection::AddProperty(CProperty *) 982 void CPropertySet::AddProperty(_GUID,CProperty *) 983 unsigned long CArchiveStream::AddRef() 984 unsigned long CBlobProperty::AddRef() 985 unsigned long CBrowserControlSite::AddRef() 986 unsigned long CDHtmlControlSink::AddRef() 987 unsigned long CDHtmlElementEventSink::AddRef() 988 unsigned long CDHtmlEventSink::AddRef() 989 unsigned long CInnerUnknown::AddRef() 990 unsigned long COleConnPtContainer::AddRef() 991 unsigned long COleDispatchImpl::AddRef() 992 unsigned long COleUILinkInfo::AddRef() 993 unsigned long CPrintDialogEx::AddRef() 994 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 995 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 996 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 997 CPropertySection * CPropertySet::AddSection(_GUID) 998 void CPropertySet::AddSection(CPropertySection *) 999 void COlePasteSpecialDialog::AddStandardFormats(int) 1000 int CToolBarCtrl::AddString(unsigned int) 1001 __POSITION * CObList::AddTail(CObject *) 1002 void CObList::AddTail(CObList *) 1003 __POSITION * CPtrList::AddTail(void *) 1004 void CPtrList::AddTail(CPtrList *) 1005 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1006 __POSITION * CStringList::AddTail(char const *) 1007 void CStringList::AddTail(CStringList *) 1008 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1009 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1010 void CWinApp::AddToRecentFileList(char const *) 1011 void CDocument::AddView(CView *) 1012 void CMetaFileDC::AdjustCP(int) 1013 void CRichEditView::AdjustDialogPosition(CDialog *) 1014 void CRectTracker::AdjustRect(int,tagRECT *) 1015 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1016 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1017 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1018 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1019 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1020 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1021 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1022 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1023 void AfxAbort() 1024 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1025 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1026 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1027 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1028 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1029 void AfxCancelModes(HWND__ *) 1030 void AfxCheckError(long) 1031 void AfxClassInit(CRuntime*) 1032 int AfxComparePath(char const *,char const *) 1033 int AfxCompareValueByRef(void *,void *,int) 1034 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1035 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1036 void AfxCopyValueByRef(void *,void *,long *,int) 1037 void AfxCoreInitModule() 1038 HDC__ * AfxCreateDC(void *,void *) 1039 int AfxCriticalInit() 1040 int AfxCriticalNewHandler(unsigned int) 1041 void AfxCriticalTerm() 1042 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1043 AUX_DATA afxData 1044 void AfxDeleteObject(void * *) 1045 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1046 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1047 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1048 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1049 long AfxDllCanUnloadNow() 1050 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1051 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1052 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1053 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1054 void AfxEnableControlContainer(COccManager *) 1055 int AfxEndDeferRegisterClass(long) 1056 void AfxEndThread(unsigned int,int) 1057 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1058 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1059 void AfxFailMaxChars(CDataExchange *,int) 1060 void AfxFailRadio(CDataExchange *) 1061 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1062 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1063 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1064 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1065 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1066 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1067 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1068 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1069 int AfxFreeLibrary(HINSTANCE__ *) 1070 int AfxFullPath(char *,char const *) 1071 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1072 AFX_MODULE_STATE * AfxGetAppModuleState() 1073 long AfxGetClassIDFromString(char const *,_GUID *) 1074 tagMSG * AfxGetCurrentMessage() 1075 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1076 unsigned long AfxGetDllVersion() 1077 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1078 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1079 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1080 void * AfxGetHENV() 1081 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1082 unsigned long AfxGetInternetHandleType(void *) 1083 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1084 AFX_MODULE_STATE * AfxGetModuleState() 1085 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1086 int (__cdecl*AfxGetNewHandler())(unsigned int) 1087 HWND__ * AfxGetParentOwner(HWND__ *) 1088 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1089 void AfxGetRoot(char const *,ATL::CStringT > > &) 1090 ATL::IAtlStringMgr * AfxGetStringManager() 1091 CWinThread * AfxGetThread() 1092 _AFX_THREAD_STATE * AfxGetThreadState() 1093 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1094 void AfxGlobalFree(void *) 1095 int AfxHelpEnabled() 1096 void AfxHookWindowCreate(CWnd *) 1097 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1098 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1099 void AfxInitLocalData(HINSTANCE__ *) 1100 int AfxInitRichEdit() 1101 int AfxInitRichEdit2() 1102 void AfxInitThread() 1103 int AfxInternalIsIdleMessage(tagMSG *) 1104 int AfxInternalPreTranslateMessage(tagMSG *) 1105 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1106 int AfxInternalPumpMessage() 1107 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1108 int AfxIsDescendant(HWND__ *,HWND__ *) 1109 int AfxIsIdleMessage(tagMSG *) 1110 int AfxIsValidAddress(void const *,unsigned int,int) 1111 int AfxIsValidString(wchar_t const *,int) 1112 int AfxIsValidString(char const *,int) 1113 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1114 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1115 HINSTANCE__ * AfxLoadLibrary(char const *) 1116 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1117 int AfxLoadString(unsigned int,char *,unsigned int) 1118 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1119 void AfxLockGlobals(int) 1120 void AfxLockTempMaps() 1121 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1122 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1123 int AfxMessageBox(char const *,unsigned int,unsigned int) 1124 int AfxOleCanExitApp() 1125 int AfxOleGetUserCtrl() 1126 int AfxOleInit() 1127 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1128 void AfxOleLockApp() 1129 int AfxOleLockControl(_GUID const &) 1130 int AfxOleLockControl(char const *) 1131 void AfxOleOnReleaseAllObjects() 1132 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1133 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1134 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1135 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1136 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1137 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1138 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1139 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1140 void AfxOleSetUserCtrl(int) 1141 void AfxOleTerm(int) 1142 void AfxOleTermOrFreeLib(int,int) 1143 void AfxOleUnlockAllControls() 1144 void AfxOleUnlockApp() 1145 int AfxOleUnlockControl(_GUID const &) 1146 int AfxOleUnlockControl(char const *) 1147 int AfxOleUnregisterClass(_GUID const &,char const *) 1148 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1149 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1150 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1151 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1152 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1153 void AfxPostQuitMessage(int) 1154 int AfxPreTranslateMessage(tagMSG *) 1155 long AfxProcessWndProcException(CException *,tagMSG const *) 1156 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1157 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1158 int AfxPumpMessage() 1159 unsigned int AfxReadStringLength(CArchive &,int &) 1160 int AfxRegisterClass(tagWNDCLASSA *) 1161 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1162 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1163 void AfxResetMsgCache() 1164 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1165 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1166 void AfxSafeArrayInit(COleSafeArray *) 1167 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1168 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1169 void AfxSetWindowText(HWND__ *,char const *) 1170 void AfxSocketTerm() 1171 void AfxStoreField(CRecordset &,unsigned int,void *) 1172 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1173 wchar_t * AfxTaskStringA2W(char const *) 1174 char * AfxTaskStringW2A(wchar_t const *) 1175 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1176 void AfxTermLocalData(HINSTANCE__ *,int) 1177 void AfxTermThread(HINSTANCE__ *) 1178 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1179 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1180 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1181 void AfxThrowArchiveException(int,char const *) 1182 void AfxThrowDBException(short,CDatabase *,void *) 1183 void AfxThrowFileException(int,long,char const *) 1184 void AfxThrowInternetException(unsigned long,unsigned long) 1185 void AfxThrowInvalidArgException() 1186 void AfxThrowLastCleanup() 1187 void AfxThrowMemoryException() 1188 void AfxThrowNotSupportedException() 1189 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1190 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1191 void AfxThrowOleException(long) 1192 void AfxThrowResourceException() 1193 void AfxThrowUserException() 1194 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1195 void AfxTlsAddRef() 1196 void AfxTlsRelease() 1197 void AfxTrackerTerm() 1198 void AfxTryCleanup() 1199 int AfxUnhookWindowCreate() 1200 void AfxUnlockGlobals(int) 1201 int AfxUnlockTempMaps(int) 1202 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1203 void AfxVariantInit(tagVARIANT *) 1204 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1205 char * AfxW2AHelper(char *,wchar_t const *,int) 1206 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1207 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1208 void AfxWinTerm() 1209 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1210 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1211 void AfxWriteStringLength(CArchive &,unsigned int,int) 1212 void * CFixedAlloc::Alloc() 1213 void * CFixedAllocNoSync::Alloc() 1214 unsigned char * CMemFile::Alloc(unsigned long) 1215 unsigned char * CSharedFile::Alloc(unsigned long) 1216 void CRecordset::AllocAndCacheFieldInfo() 1217 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1218 void CDatabase::AllocConnect(unsigned long) 1219 void COleSafeArray::AllocData() 1220 void CRecordset::AllocDataCache() 1221 void COleSafeArray::AllocDescriptor(unsigned long) 1222 int CControlBar::AllocElements(int,int) 1223 int CStatusBar::AllocElements(int,int) 1224 int CRecordset::AllocHstmt() 1225 void CPropertyPage::AllocPSP(unsigned long) 1226 void CRecordset::AllocRowset() 1227 int CThreadSlotData::AllocSlot() 1228 void CRecordset::AllocStatusArrays() 1229 wchar_t * ATL::CStringT > >::AllocSysString()const 1230 wchar_t * ATL::CStringT > >::AllocSysString()const 1231 private: void * CProperty::AllocValue(unsigned long) 1232 short COleControl::AmbientAppearance() 1233 unsigned long COleControl::AmbientBackColor() 1234 ATL::CStringT > > COleControl::AmbientDisplayName() 1235 IFontDisp * COleControl::AmbientFont() 1236 unsigned long COleControl::AmbientForeColor() 1237 unsigned long COleControl::AmbientLocaleID() 1238 ATL::CStringT > > COleControl::AmbientScaleUnits() 1239 int COleControl::AmbientShowGrabHandles() 1240 int COleControl::AmbientShowHatching() 1241 short COleControl::AmbientTextAlign() 1242 int COleControl::AmbientUIDead() 1243 int COleControl::AmbientUserMode() 1244 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1245 void ATL::CSimpleStringT::Append(wchar_t const *) 1246 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1247 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1248 void ATL::CSimpleStringT::Append(char const *) 1249 void ATL::CSimpleStringT::Append(char const *,int) 1250 int CByteArray::Append(CByteArray const &) 1251 int CDWordArray::Append(CDWordArray const &) 1252 int CObArray::Append(CObArray const &) 1253 int CPtrArray::Append(CPtrArray const &) 1254 int CStringArray::Append(CStringArray const &) 1255 int CUIntArray::Append(CUIntArray const &) 1256 int CWordArray::Append(CWordArray const &) 1257 void ATL::CSimpleStringT::AppendChar(wchar_t) 1258 void ATL::CSimpleStringT::AppendChar(char) 1259 void CRecordset::AppendFilterAndSortSQL() 1260 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1261 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1262 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1263 void ATL::CStringT > >::AppendFormat(char const *,...) 1264 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1265 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1266 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1267 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1268 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1269 long COlePropertyPage::XPropertyPage::Apply() 1270 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1271 int COleDocument::ApplyPrintDevice(tagPDA const *) 1272 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1273 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1274 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1275 int CAsyncSocket::AsyncSelect(long) 1276 private: void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1277 private: void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1278 int CAsyncSocket::Attach(unsigned int,long) 1279 int CDC::Attach(HDC__ *) 1280 int CGdiObject::Attach(void *) 1281 int CImageList::Attach(_IMAGELIST *) 1282 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1283 int CMenu::Attach(HMENU__ *) 1284 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1285 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1286 void COleDataObject::Attach(IDataObject *,int) 1287 void COleSafeArray::Attach(tagVARIANT &) 1288 void COleStreamFile::Attach(IStream *) 1289 void COleVariant::Attach(tagVARIANT &) 1290 int CWnd::Attach(HWND__ *) 1291 int COleDataObject::AttachClipboard() 1292 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1293 void CWnd::AttachControlSite(CHandleMap *) 1294 void CWnd::AttachControlSite(CWnd *,unsigned int) 1295 void COleClientItem::AttachDataObject(COleDataObject &)const 1296 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1297 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1298 CPrintDialog * CPrintDialog::AttachOnSetup() 1299 void COleControlSite::AttachWindow() 1300 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1301 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1302 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1303 void COleMessageFilter::BeginBusyState() 1304 int CDragListBox::BeginDrag(CPoint) 1305 void COleDataObject::BeginEnumFormats() 1306 void CFrameWnd::BeginModalState() 1307 int CDatabase::BeginTrans() 1308 void CCmdTarget::BeginWaitCursor() 1309 int CAsyncSocket::Bind(unsigned int,char const *) 1310 void CDataSourceControl::BindColumns() 1311 void COccManager::BindControls(CWnd *) 1312 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1313 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1314 void CRecordset::BindFieldsForUpdate() 1315 unsigned int CRecordset::BindFieldsToColumns() 1316 void CDatabase::BindParameters(void *) 1317 unsigned int CRecordset::BindParams(void *) 1318 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1319 void CDataSourceControl::BindProp(COleControlSite *,int) 1320 void COleControlSite::BindProperty(long,CWnd *) 1321 void CWnd::BindProperty(long,CWnd *) 1322 void COleControl::BoundPropertyChanged(long) 1323 int COleControl::BoundPropertyRequestEdit(long) 1324 void CFrameWnd::BringToTop(int) 1325 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1326 void CDBException::BuildErrorString(CDatabase *,void *,int) 1327 void CPropertySheet::BuildPropPageArray() 1328 void CRecordset::BuildSelectSQL() 1329 int COleControl::BuildSharedMenu() 1330 int COleDocIPFrameWnd::BuildSharedMenu() 1331 int COleIPFrameWnd::BuildSharedMenu() 1332 void CRecordset::BuildSQL(char const *) 1333 void CRecordset::BuildUpdateSQL() 1334 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1335 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1336 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1337 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1338 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1339 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1340 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1341 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1342 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1343 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1344 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1345 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1346 CSize CControlBar::CalcFixedLayout(int,int) 1347 CSize CDialogBar::CalcFixedLayout(int,int) 1348 CSize CDockBar::CalcFixedLayout(int,int) 1349 CSize CReBar::CalcFixedLayout(int,int) 1350 CSize CStatusBar::CalcFixedLayout(int,int) 1351 CSize CToolBar::CalcFixedLayout(int,int) 1352 void CControlBar::CalcInsideRect(CRect &,int)const 1353 void CStatusBar::CalcInsideRect(CRect &,int)const 1354 CSize CToolBar::CalcLayout(unsigned long,int) 1355 int CCheckListBox::CalcMinimumItemHeight() 1356 CSize CPreviewView::CalcPageDisplaySize() 1357 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1358 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1359 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1360 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1361 void CView::CalcWindowRect(tagRECT *,unsigned int) 1362 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1363 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1364 int CDHtmlDialog::CanAccessExternal() 1365 int COleClientItem::CanActivate() 1366 int CRichEditCntrItem::CanActivate() 1367 int CSplitterWnd::CanActivateNext(int) 1368 int CRecordset::CanBookmark()const 1369 void CDatabase::Cancel() 1370 void CRecordset::Cancel() 1371 void CSocket::CancelBlockingCall() 1372 void CDragListBox::CancelDrag(CPoint) 1373 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1374 long COleUILinkInfo::CancelLink(unsigned long) 1375 void CDockContext::CancelLoop() 1376 void CPropertyPage::CancelToClose() 1377 void CWnd::CancelToolTips(int) 1378 void CRecordset::CancelUpdate() 1379 int CDocument::CanCloseFrame(CFrameWnd *) 1380 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1381 int COleClientItem::CanCreateFromData(COleDataObject const *) 1382 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1383 unsigned long CDockContext::CanDock() 1384 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1385 int CFrameWnd::CanEnterHelpMode() 1386 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1387 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1388 int COleClientItem::CanPaste() 1389 int CRichEditCtrl::CanPaste(unsigned int)const 1390 int CRichEditView::CanPaste()const 1391 int COleClientItem::CanPasteLink() 1392 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1393 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1394 void CScrollView::CenterOnPoint(CPoint) 1395 void CWnd::CenterWindow(CWnd *) 1396 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1397 int CListBox::CharToItem(unsigned int,unsigned int) 1398 void ATL::CStringT > >::CharToOemA() 1399 int CDatabase::Check(short)const 1400 int CRecordset::Check(short)const 1401 int CDialog::CheckAutoCenter() 1402 int CWnd::CheckAutoCenter() 1403 void CArchive::CheckCount() 1404 void COleControlContainer::CheckDlgButton(int,unsigned int) 1405 void CWnd::CheckDlgButton(int,unsigned int) 1406 int CCheckListBox::CheckFromPoint(CPoint,int &) 1407 void COleClientItem::CheckGeneral(long) 1408 int CDatabase::CheckHstmt(short,void *)const 1409 private: bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1410 private: bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1411 void COleControlContainer::CheckRadioButton(int,int,int) 1412 void CWnd::CheckRadioButton(int,int,int) 1413 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1414 void CRecordset::CheckRowsetError(short) 1415 void CScrollView::CheckScrollBars(int &,int &)const 1416 void CPropertyPage::Cleanup() 1417 void COlePropertyPage::CleanupObjectArray() 1418 void CDBVariant::Clear() 1419 void CDockState::Clear() 1420 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1421 void CRecordset::ClearFieldStatus() 1422 void CRecordset::ClearNullFieldStatus(unsigned long) 1423 void CRecordset::ClearNullParamStatus(unsigned long) 1424 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1425 void CWnd::ClientToScreen(tagRECT *)const 1426 int COleControl::ClipCaretRect(tagRECT *) 1427 void CPreviewDC::ClipToPage() 1428 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1429 long CArchiveStream::Clone(IStream * *) 1430 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1431 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1432 private: ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1433 private: ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1434 void CArchive::Close() 1435 void CAsyncMonikerFile::Close() 1436 void CAsyncSocket::Close() 1437 void CCachedDataPathProperty::Close() 1438 void CDatabase::Close() 1439 void CFile::Close() 1440 void CFileFind::Close() 1441 void CInternetConnection::Close() 1442 void CInternetFile::Close() 1443 void CInternetSession::Close() 1444 void CMemFile::Close() 1445 void CMirrorFile::Close() 1446 void CMonikerFile::Close() 1447 void COleClientItem::Close(enum tagOLECLOSE) 1448 void COleStreamFile::Close() 1449 void CRecordset::Close() 1450 void CSocket::Close() 1451 void CSocketFile::Close() 1452 void CStdioFile::Close() 1453 long CDocObjectServer::XOleObject::Close(unsigned long) 1454 long COleControl::XOleObject::Close(unsigned long) 1455 long COleServerDoc::XOleObject::Close(unsigned long) 1456 long COleServerItem::XOleObject::Close(unsigned long) 1457 void CDocManager::CloseAllDocuments(int) 1458 void CDocTemplate::CloseAllDocuments(int) 1459 void CWinApp::CloseAllDocuments(int) 1460 void CFileFind::CloseContext() 1461 void CFtpFileFind::CloseContext() 1462 void CGopherFileFind::CloseContext() 1463 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1464 int ATL::CStringT > >::Collate(wchar_t const *)const 1465 int ATL::CStringT > >::Collate(char const *)const 1466 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 1467 int ATL::CStringT > >::CollateNoCase(char const *)const 1468 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1469 int CStatusBar::CommandToIndex(unsigned int)const 1470 int CToolBar::CommandToIndex(unsigned int)const 1471 long CArchiveStream::Commit(unsigned long) 1472 void COleClientItem::CommitItem(int) 1473 void COleDocument::CommitItems(int,IStorage *) 1474 int CDatabase::CommitTrans() 1475 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 1476 void CPropertyPage::CommonConstruct(char const *,unsigned int) 1477 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 1478 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1479 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1480 void CWinThread::CommonConstruct() 1481 int ATL::CStringT > >::Compare(wchar_t const *)const 1482 int ATL::CStringT > >::Compare(char const *)const 1483 int CComboBox::CompareItem(tagCOMPAREITEM*) 1484 int CListBox::CompareItem(tagCOMPAREITEM*) 1485 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 1486 int ATL::CStringT > >::CompareNoCase(char const *)const 1487 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 1488 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 1489 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 1490 int CAsyncSocket::Connect(char const *,unsigned int) 1491 int CDatabase::Connect(unsigned long) 1492 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1493 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1494 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1495 int CSocket::ConnectHelper(sockaddr const *,int) 1496 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1497 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1498 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1499 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1500 void COleServerDoc::ConnectView(CWnd *,CView *) 1501 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1502 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1503 void CPropertyPage::Construct(unsigned int,unsigned int) 1504 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1505 void CPropertyPage::Construct(char const *,unsigned int) 1506 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 1507 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1508 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1509 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 1510 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1511 void CRectTracker::Construct() 1512 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1513 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1514 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1515 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1516 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1517 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1518 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1519 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1520 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1521 int CPropertySheet::ContinueModal() 1522 int CWnd::ContinueModal() 1523 void COleControl::ControlInfoChanged() 1524 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1525 int COleClientItem::ConvertTo(_GUID const &) 1526 int CRichEditCntrItem::ConvertTo(_GUID const &) 1527 void CByteArray::Copy(CByteArray const &) 1528 void CDWordArray::Copy(CDWordArray const &) 1529 void CObArray::Copy(CObArray const &) 1530 void COleSafeArray::Copy(tagSAFEARRAY * *) 1531 void CPtrArray::Copy(CPtrArray const &) 1532 void CStringArray::Copy(CStringArray const &) 1533 void CUIntArray::Copy(CUIntArray const &) 1534 void CWordArray::Copy(CWordArray const &) 1535 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 1536 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 1537 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 1538 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 1539 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1540 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1541 void COleClientItem::CopyToClipboard(int) 1542 void COleServerItem::CopyToClipboard(int) 1543 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1544 int CAsyncSocket::Create(unsigned int,int,long,char const *) 1545 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1546 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1547 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1548 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1549 int CControlFrameWnd::Create(char const *) 1550 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1551 int CDialog::Create(char const *,CWnd *) 1552 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 1553 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1554 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1555 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 1556 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1557 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 1558 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1559 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1560 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1561 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1562 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1563 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1564 int CImageList::Create(int,int,unsigned int,int,int) 1565 int CImageList::Create(unsigned int,int,int,unsigned long) 1566 int CImageList::Create(CImageList *) 1567 int CImageList::Create(char const *,int,int,unsigned long) 1568 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1569 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1570 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1571 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1572 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1573 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1574 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1575 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1576 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1577 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1578 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1579 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1580 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1581 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1582 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1583 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1584 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1585 int CReflectorWnd::Create(CRect const &,HWND__ *) 1586 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1587 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1588 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1589 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1590 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1591 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1592 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1593 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1594 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1595 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1596 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1597 int CToolTipCtrl::Create(CWnd *,unsigned long) 1598 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1599 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1600 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1601 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1602 IBindHost * CMonikerFile::CreateBindHost() 1603 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1604 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 1605 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1606 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1607 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1608 void CConnectionPoint::CreateConnectionArray() 1609 COleControlContainer * COccManager::CreateContainer(CWnd *) 1610 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1611 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1612 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1613 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1614 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1615 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1616 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1617 int CWnd::CreateControlContainer(COleControlContainer * *) 1618 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1619 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1620 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1621 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1622 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1623 int CFtpConnection::CreateDirectoryA(char const *) 1624 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1625 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 1626 int CWnd::CreateDlg(char const *,CWnd *) 1627 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1628 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1629 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 1631 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1632 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1633 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1634 int CPictureHolder::CreateEmpty() 1635 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1636 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1637 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1638 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1639 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1640 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1641 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1642 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1643 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1644 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1645 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1646 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1647 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1648 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1649 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1650 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1651 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1652 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1653 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1654 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1655 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1656 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1657 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1658 CControlFrameWnd * COleControl::CreateFrameWindow() 1659 int CPictureHolder::CreateFromBitmap(unsigned int) 1660 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1661 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1662 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1663 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1664 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1665 int CPictureHolder::CreateFromIcon(unsigned int) 1666 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1667 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1668 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1669 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1670 int CDialog::CreateIndirect(void *,CWnd *) 1671 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1672 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1673 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1674 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1675 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1676 int COleInsertDialog::CreateItem(COleClientItem *) 1677 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1678 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1679 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1680 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1681 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 1682 CGopherLocator CGopherConnection::CreateLocator(char const *) 1683 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 1684 int COleStreamFile::CreateMemoryStream(CFileException *) 1685 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1686 CDocument * CDocTemplate::CreateNewDocument() 1687 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1688 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1689 CObject * CByteArray::CreateObject() 1690 CObject * CDC::CreateObject() 1691 CObject * CDocItem::CreateObject() 1692 CObject * CDockState::CreateObject() 1693 CObject * CDWordArray::CreateObject() 1694 CObject * CEditView::CreateObject() 1695 CObject * CFrameWnd::CreateObject() 1696 CObject * CGdiObject::CreateObject() 1697 CObject * CHtmlEditView::CreateObject() 1698 CObject * CHtmlView::CreateObject() 1699 CObject * CImageList::CreateObject() 1700 CObject * CListView::CreateObject() 1701 CObject * CMapStringToOb::CreateObject() 1702 CObject * CMapStringToString::CreateObject() 1703 CObject * CMapWordToOb::CreateObject() 1704 CObject * CMDIChildWnd::CreateObject() 1705 CObject * CMDIFrameWnd::CreateObject() 1706 CObject * CMenu::CreateObject() 1707 CObject * CMiniDockFrameWnd::CreateObject() 1708 CObject * CMiniFrameWnd::CreateObject() 1709 CObject * CObArray::CreateObject() 1710 CObject * CObList::CreateObject() 1711 CObject * COleDocIPFrameWnd::CreateObject() 1712 CObject * COleIPFrameWnd::CreateObject() 1713 CObject * CPreviewView::CreateObject() 1714 CObject * CRichEditCntrItem::CreateObject() 1715 CObject * CRichEditView::CreateObject() 1716 CObject * CRuntimeClass::CreateObject() 1717 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1718 CObject * CRuntimeClass::CreateObject(char const *) 1719 CObject * CStringArray::CreateObject() 1720 CObject * CStringList::CreateObject() 1721 CObject * CTreeView::CreateObject() 1722 CObject * CWnd::CreateObject() 1723 CObject * CWordArray::CreateObject() 1724 void COleControlContainer::CreateOleFont(CFont *) 1725 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1726 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1727 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1728 int CFont::CreatePointFont(int,char const *,CDC *) 1729 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 1730 HDC__ * CPageSetupDialog::CreatePrinterDC() 1731 HDC__ * CPrintDialog::CreatePrinterDC() 1732 HDC__ * CPrintDialogEx::CreatePrinterDC() 1733 int CWinApp::CreatePrinterDC(CDC &) 1734 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1735 COleControlSite * COccManager::CreateSite(COleControlContainer *) 1736 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1737 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1738 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1739 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 1740 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1741 void COleControl::CreateTracker(int,int) 1742 void COleControl::CreateTracker(int,int,tagRECT const *) 1743 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1744 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1745 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1746 void COleControl::CreateWindowForSubclassedControl() 1747 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1748 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1749 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1750 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1751 void DDP_Check(CDataExchange *,int,int &,char const *) 1752 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 1753 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 1754 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 1755 void DDP_EndText(CDataExchange *,int,short *,char const *) 1756 void DDP_EndText(CDataExchange *,int,int *,char const *) 1757 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 1758 void DDP_EndText(CDataExchange *,int,long *,char const *) 1759 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 1760 void DDP_EndText(CDataExchange *,int,float *,char const *) 1761 void DDP_EndText(CDataExchange *,int,double *,char const *) 1762 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 1763 void DDP_PostProcessing(CDataExchange *) 1764 void DDP_Radio(CDataExchange *,int,int &,char const *) 1765 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 1766 void DDP_Text(CDataExchange *,int,short &,char const *) 1767 void DDP_Text(CDataExchange *,int,int &,char const *) 1768 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 1769 void DDP_Text(CDataExchange *,int,long &,char const *) 1770 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 1771 void DDP_Text(CDataExchange *,int,float &,char const *) 1772 void DDP_Text(CDataExchange *,int,double &,char const *) 1773 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 1774 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1775 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1776 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1777 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1778 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1779 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1780 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1781 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1782 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1783 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1784 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1785 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1786 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1787 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1788 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1789 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1790 void DDX_CBIndex(CDataExchange *,int,int &) 1791 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1792 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1793 void DDX_Check(CDataExchange *,int,int &) 1794 void DDX_Control(CDataExchange *,int,CWnd &) 1795 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1796 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1797 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1798 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1799 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1800 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1801 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 1802 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 1803 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 1804 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 1805 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 1806 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 1807 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 1808 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 1809 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 1810 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 1811 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 1812 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 1813 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 1814 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 1815 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 1816 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 1817 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 1818 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 1819 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 1820 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 1821 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 1822 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 1823 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 1824 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 1825 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 1826 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 1827 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 1828 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 1829 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 1830 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 1831 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1832 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1833 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1834 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1835 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1836 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1837 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1838 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1839 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1840 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1841 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1842 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 1843 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 1844 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 1845 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 1846 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 1847 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1848 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 1849 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 1850 void DDX_LBIndex(CDataExchange *,int,int &) 1851 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 1852 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1853 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 1854 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 1855 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 1856 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 1857 void DDX_OCBool(CDataExchange *,int,long,int &) 1858 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 1859 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 1860 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 1861 void DDX_OCFloat(CDataExchange *,int,long,float &) 1862 void DDX_OCFloat(CDataExchange *,int,long,double &) 1863 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 1864 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 1865 void DDX_OCInt(CDataExchange *,int,long,int &) 1866 void DDX_OCInt(CDataExchange *,int,long,long &) 1867 void DDX_OCIntRO(CDataExchange *,int,long,int &) 1868 void DDX_OCIntRO(CDataExchange *,int,long,long &) 1869 void DDX_OCShort(CDataExchange *,int,long,short &) 1870 void DDX_OCShortRO(CDataExchange *,int,long,short &) 1871 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 1872 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 1873 void DDX_Radio(CDataExchange *,int,int &) 1874 void DDX_Scroll(CDataExchange *,int,int &) 1875 void DDX_Slider(CDataExchange *,int,int &) 1876 void DDX_Text(CDataExchange *,int,__int64 &) 1877 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 1878 void DDX_Text(CDataExchange *,int,unsigned char &) 1879 void DDX_Text(CDataExchange *,int,short &) 1880 void DDX_Text(CDataExchange *,int,int &) 1881 void DDX_Text(CDataExchange *,int,unsigned int &) 1882 void DDX_Text(CDataExchange *,int,long &) 1883 void DDX_Text(CDataExchange *,int,unsigned long &) 1884 void DDX_Text(CDataExchange *,int,float &) 1885 void DDX_Text(CDataExchange *,int,double &) 1886 void DDX_Text(CDataExchange *,int,_FILETIME &) 1887 void DDX_Text(CDataExchange *,int,_GUID &) 1888 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 1889 void DDX_Text(CDataExchange *,int,tagDBDATE &) 1890 void DDX_Text(CDataExchange *,int,tagDBTIME &) 1891 void DDX_Text(CDataExchange *,int,tagDEC &) 1892 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 1893 void DDX_Text(CDataExchange *,int,COleCurrency &) 1894 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 1895 void DDX_Text(CDataExchange *,int,char *,int) 1896 void COleClientItem::Deactivate() 1897 long COlePropertyPage::XPropertyPage::Deactivate() 1898 int COleServerDoc::DeactivateAndUndo() 1899 long COleClientItem::XOleIPSite::DeactivateAndUndo() 1900 long COleControlSite::XOleIPSite::DeactivateAndUndo() 1901 void COleClientItem::DeactivateUI() 1902 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 1903 long CWnd::Default() 1904 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 1905 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 1906 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 1907 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 1908 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 1909 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 1910 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 1911 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 1912 void CControlBar::DelayShow(int) 1913 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1914 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1915 int ATL::CStringT > >::Delete(int,int) 1916 int ATL::CStringT > >::Delete(int,int) 1917 void CException::Delete() 1918 void COleClientItem::Delete(int) 1919 void CRecordset::Delete() 1920 void CWinThread::Delete() 1921 void CSplitterWnd::DeleteColumn(int) 1922 void CDocument::DeleteContents() 1923 void CEditView::DeleteContents() 1924 void CHtmlEditDoc::DeleteContents() 1925 void COleDocument::DeleteContents() 1926 void COleServerDoc::DeleteContents() 1927 void CRichEditDoc::DeleteContents() 1928 void CRichEditView::DeleteContents() 1929 int CDC::DeleteDC() 1930 int CImageList::DeleteImageList() 1931 void CComboBox::DeleteItem(tagDELETEITEM*) 1932 int CComboBoxEx::DeleteItem(int) 1933 void CListBox::DeleteItem(tagDELETEITEM*) 1934 int CGdiObject::DeleteObject() 1935 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 1936 void CSplitterWnd::DeleteRow(int) 1937 void CHandleMap::DeleteTemp() 1938 void CDC::DeleteTempMap() 1939 void CGdiObject::DeleteTempMap() 1940 void CImageList::DeleteTempMap() 1941 void CMenu::DeleteTempMap() 1942 void CWnd::DeleteTempMap() 1943 void CRichEditDoc::DeleteUnmarkedItems()const 1944 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1945 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1946 void CSplitterWnd::DeleteView(int,int) 1947 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 1948 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1949 void COleSafeArray::Destroy() 1950 int COleControlSite::DestroyControl() 1951 void COleSafeArray::DestroyData() 1952 void COleSafeArray::DestroyDescriptor() 1953 void CFrameWnd::DestroyDockBars() 1954 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 1955 int CMenu::DestroyMenu() 1956 void CDHtmlDialog::DestroyModeless() 1957 void COleControl::DestroySharedMenu() 1958 void COleDocIPFrameWnd::DestroySharedMenu() 1959 void COleIPFrameWnd::DestroySharedMenu() 1960 int CToolTipCtrl::DestroyToolTipCtrl() 1961 void COleControl::DestroyTracker() 1962 int CControlBar::DestroyWindow() 1963 int CMDIChildWnd::DestroyWindow() 1964 int CWnd::DestroyWindow() 1965 unsigned int CAsyncSocket::Detach() 1966 HDC__ * CDC::Detach() 1967 void * CDialogTemplate::Detach() 1968 void * CGdiObject::Detach() 1969 _IMAGELIST * CImageList::Detach() 1970 unsigned char * CMemFile::Detach() 1971 HMENU__ * CMenu::Detach() 1972 int CMonikerFile::Detach(CFileException *) 1973 IDataObject * COleDataObject::Detach() 1974 tagVARIANT COleSafeArray::Detach() 1975 IStream * COleStreamFile::Detach() 1976 tagVARIANT COleVariant::Detach() 1977 void * CSharedFile::Detach() 1978 HDC__ * CWindowlessDC::Detach() 1979 HWND__ * CWnd::Detach() 1980 IDispatch * COleDispatchDriver::DetachDispatch() 1981 void CAsyncSocket::DetachHandle(unsigned int,int) 1982 void COleControlSite::DetachWindow() 1983 void CWinApp::DevModeChange(char *) 1984 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1985 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1986 int COleServerDoc::DiscardUndoState() 1987 long COleClientItem::XOleIPSite::DiscardUndoState() 1988 long COleControlSite::XOleIPSite::DiscardUndoState() 1989 void COleDispatchImpl::Disconnect() 1990 void CDHtmlDialog::DisconnectDHtmlElementEvents() 1991 void CDHtmlDialog::DisconnectDHtmlEvents() 1992 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 1993 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 1994 void CDocument::DisconnectViews() 1995 void CWinThread::DispatchThreadMessage(tagMSG *) 1996 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1997 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 1998 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 1999 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2000 void CAsyncSocket::DoCallBack(unsigned int,long) 2001 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2002 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2003 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2004 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2005 void COleControl::DoClick() 2006 int COleFrameHook::DoContextSensitiveHelp(int) 2007 int COleConvertDialog::DoConvert(COleClientItem *) 2008 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2009 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2010 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2011 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2012 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2013 int COleFrameHook::DoEnableModeless(int) 2014 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2015 void CRecordset::DoFieldExchange(CFieldExchange *) 2016 int CDocument::DoFileSave() 2017 int CSplitterWnd::DoKeyboardSplit() 2018 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2019 int CColorDialog::DoModal() 2020 int CDialog::DoModal() 2021 int CFileDialog::DoModal() 2022 int CFontDialog::DoModal() 2023 int COleBusyDialog::DoModal() 2024 int COleChangeIconDialog::DoModal() 2025 int COleChangeSourceDialog::DoModal() 2026 int COleConvertDialog::DoModal() 2027 int COleInsertDialog::DoModal(unsigned long) 2028 int COleInsertDialog::DoModal() 2029 int COleLinksDialog::DoModal() 2030 int COlePasteSpecialDialog::DoModal() 2031 int COlePropertiesDialog::DoModal() 2032 int COleUpdateDialog::DoModal() 2033 int CPageSetupDialog::DoModal() 2034 int CPrintDialog::DoModal() 2035 int CPrintDialogEx::DoModal() 2036 int CPropertySheet::DoModal() 2037 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2038 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2039 void CControlBar::DoPaint(CDC *) 2040 void CDockBar::DoPaint(CDC *) 2041 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2042 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2043 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2044 int CView::DoPreparePrinting(CPrintInfo *) 2045 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2046 int CWinApp::DoPrintDialog(CPrintDialog *) 2047 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2048 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2049 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2050 void COleControl::DoPropExchange(CPropExchange *) 2051 int CDocument::DoSave(char const *,int) 2052 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2053 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2054 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2055 int CCmdUI::DoUpdate(CCmdTarget *,int) 2056 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2057 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2058 long COleControlSite::DoVerb(long,tagMSG *) 2059 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2060 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2061 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2062 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2063 void CWinApp::DoWaitCursor(int) 2064 void CPreviewView::DoZoom(unsigned int,CPoint) 2065 void CDC::DPtoHIMETRIC(tagSIZE *)const 2066 void CDC::DPtoLP(tagSIZE *)const 2067 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2068 unsigned int CDragListBox::Dragging(CPoint) 2069 long COleDropTarget::XDropTarget::DragLeave() 2070 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2071 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2072 void CRectTracker::Draw(CDC *)const 2073 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2074 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2075 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2076 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2077 void CControlBar::DrawBorders(CDC *,CRect &) 2078 void COleControl::DrawContent(CDC *,CRect &) 2079 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2080 void CDockContext::DrawFocusRect(int) 2081 void CControlBar::DrawGripper(CDC *,CRect const &) 2082 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2083 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2084 void CDragListBox::DrawInsert(int) 2085 void CBitmapButton::DrawItem(tagDRAWITEM*) 2086 void CButton::DrawItem(tagDRAWITEM*) 2087 void CCheckListBox::DrawItem(tagDRAWITEM*) 2088 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2089 void CComboBox::DrawItem(tagDRAWITEM*) 2090 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2091 void CListBox::DrawItem(tagDRAWITEM*) 2092 void CListCtrl::DrawItem(tagDRAWITEM*) 2093 void CListView::DrawItem(tagDRAWITEM*) 2094 void CMenu::DrawItem(tagDRAWITEM*) 2095 void CStatic::DrawItem(tagDRAWITEM*) 2096 void CStatusBar::DrawItem(tagDRAWITEM*) 2097 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2098 void CTabCtrl::DrawItem(tagDRAWITEM*) 2099 void COleControl::DrawMetafile(CDC *,CRect &) 2100 void CDragListBox::DrawSingle(int) 2101 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2102 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2103 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2104 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2105 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2106 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2107 void CDragListBox::Dropped(int,CPoint) 2108 CDumpContext & CDumpContext::DumpAsHex(__int64) 2109 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2110 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2111 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2112 CDumpContext & CDumpContext::DumpAsHex(int) 2113 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2114 CDumpContext & CDumpContext::DumpAsHex(long) 2115 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2116 long COleControl::XDataObject::DUnadvise(unsigned long) 2117 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2118 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2119 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2120 CFile * CFile::Duplicate()const 2121 CFile * CInternetFile::Duplicate()const 2122 CFile * CMemFile::Duplicate()const 2123 CFile * COleStreamFile::Duplicate()const 2124 CFile * CSocketFile::Duplicate()const 2125 CFile * CStdioFile::Duplicate()const 2126 unsigned long const CEditView::dwStyleDefault 2127 void CRecordset::Edit() 2128 long COlePropertyPage::XPropertyPage::EditProperty(long) 2129 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2130 void ATL::CSimpleStringT::Empty() 2131 void ATL::CSimpleStringT::Empty() 2132 void CDBException::Empty() 2133 void COleDataSource::Empty() 2134 void CCheckListBox::Enable(int,int) 2135 void CCmdUI::Enable(int) 2136 void COleCmdUI::Enable(int) 2137 void CStatusCmdUI::Enable(int) 2138 void CTestCmdUI::Enable(int) 2139 void CToolCmdUI::Enable(int) 2140 void CCmdTarget::EnableAggregation() 2141 void CCmdTarget::EnableAutomation() 2142 void CRecordset::EnableBookmarks() 2143 void CCmdTarget::EnableConnections() 2144 void CControlBar::EnableDocking(unsigned long) 2145 void CFrameWnd::EnableDocking(unsigned long) 2146 void COleControlSite::EnableDSC() 2147 long CBrowserControlSite::EnableModeless(int) 2148 long CDHtmlDialog::EnableModeless(int) 2149 void CWinApp::EnableModeless(int) 2150 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2151 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2152 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2153 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2154 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2155 void CWnd::EnableScrollBarCtrl(int,int) 2156 void CWinApp::EnableShellOpen() 2157 void COleControl::EnableSimpleFrame() 2158 void CPropertySheet::EnableStackedTabs(int) 2159 int CInternetSession::EnableStatusCallback(int) 2160 int CWnd::EnableToolTips(int) 2161 int CWnd::EnableTrackingToolTips(int) 2162 void CCmdTarget::EnableTypeLib() 2163 int COleControlSite::EnableWindow(int) 2164 int CWnd::EnableWindow(int) 2165 void COleMessageFilter::EndBusyState() 2166 void CAsyncMonikerFile::EndCallbacks() 2167 long COleLinkingDoc::EndDeferErrors(long) 2168 void CDialog::EndDialog(int) 2169 void CPropertyPage::EndDialog(int) 2170 void CPropertySheet::EndDialog(int) 2171 void CDockContext::EndDrag() 2172 void CWnd::EndModalLoop(int) 2173 void CFrameWnd::EndModalState() 2174 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 2175 void CDockContext::EndResize() 2176 void CCmdTarget::EndWaitCursor() 2177 void COleDataObject::EnsureClipboardObject() 2178 long CWnd::EnsureStdObj() 2179 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2180 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2181 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2182 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2183 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2184 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2185 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2186 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2187 int COlePropertyPage::EnumControls(HWND__ *,long) 2188 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2189 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2190 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2191 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2192 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2193 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2194 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2195 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2196 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2197 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2198 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2199 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2200 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2201 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2202 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2203 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2204 void CControlBar::EraseNonClient() 2205 int CFileException::ErrnoToException(int) 2206 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2207 int CMetaFileDC::Escape(int,int,char const *,void *) 2208 int CPreviewDC::Escape(int,int,char const *,void *) 2209 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 2210 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2211 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2212 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2213 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2214 int COleControl::ExchangeExtent(CPropExchange *) 2215 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2216 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2217 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2218 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2219 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2220 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2221 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2222 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2223 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2224 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2225 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2226 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2227 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2228 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2229 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2230 void COleControl::ExchangeStockProps(CPropExchange *) 2231 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2232 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2233 int CDC::ExcludeClipRect(int,int,int,int) 2234 int CDC::ExcludeClipRect(tagRECT const *) 2235 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2236 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2237 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2238 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2239 int CHtmlEditView::ExecHandler(unsigned int) 2240 int CWnd::ExecuteDlgInit(void *) 2241 int CWnd::ExecuteDlgInit(char const *) 2242 void CRecordset::ExecuteSetPosUpdate() 2243 void CDatabase::ExecuteSQL(char const *) 2244 void CRecordset::ExecuteUpdateSQL() 2245 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2246 void CFrameWnd::ExitHelpMode() 2247 int COleControlModule::ExitInstance() 2248 int CWinApp::ExitInstance() 2249 int CWinThread::ExitInstance() 2250 unsigned long CCmdTarget::ExternalAddRef() 2251 void CCmdTarget::ExternalDisconnect() 2252 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2253 unsigned long CCmdTarget::ExternalRelease() 2254 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2255 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2256 void CDataExchange::Fail() 2257 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2258 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2259 void CArchive::FillBuffer(unsigned int) 2260 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2261 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2262 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2263 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2264 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2265 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2266 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2267 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2268 void CWnd::FilterToolTipMessage(tagMSG *) 2269 int ATL::CStringT > >::Find(wchar_t,int)const 2270 int ATL::CStringT > >::Find(wchar_t const *,int)const 2271 int ATL::CStringT > >::Find(char,int)const 2272 int ATL::CStringT > >::Find(char const *,int)const 2273 __POSITION * CObList::Find(CObject *,__POSITION *)const 2274 __POSITION * CPtrList::Find(void *,__POSITION *)const 2275 __POSITION * CStringList::Find(char const *,__POSITION *)const 2276 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2277 int CDockBar::FindBar(CControlBar *,int) 2278 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2279 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2280 int CFileFind::FindFile(char const *,unsigned long) 2281 int CFtpFileFind::FindFile(char const *,unsigned long) 2282 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2283 int CGopherFileFind::FindFile(char const *,unsigned long) 2284 __POSITION * CObList::FindIndex(int)const 2285 __POSITION * CPtrList::FindIndex(int)const 2286 __POSITION * CStringList::FindIndex(int)const 2287 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2288 int CFileFind::FindNextFileA() 2289 int CFtpFileFind::FindNextFileA() 2290 int CGopherFileFind::FindNextFileA() 2291 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 2292 int ATL::CStringT > >::FindOneOf(char const *)const 2293 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2294 int CDHtmlDialog::FindSinkForObject(char const *) 2295 char const * CRecordset::FindSQLToken(char const *,char const *) 2296 int CEditView::FindTextA(char const *,int,int) 2297 int CRichEditView::FindTextA(char const *,int,int,int) 2298 int CRichEditView::FindTextSimple(char const *,int,int,int) 2299 int COleClientItem::FinishCreate(long) 2300 void COleControl::FireError(long,char const *,unsigned int) 2301 void COleControl::FireEvent(long,unsigned char *,...) 2302 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2303 void COleControl::FireEventV(long,unsigned char *,char *) 2304 void CRecordset::Fixups() 2305 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2306 void CArchive::Flush() 2307 void CDumpContext::Flush() 2308 void CFile::Flush() 2309 void CInternetFile::Flush() 2310 void CMemFile::Flush() 2311 void CMonikerFile::Flush() 2312 void COleStreamFile::Flush() 2313 void CSocketFile::Flush() 2314 void CStdioFile::Flush() 2315 void COleDataSource::FlushClipboard() 2316 int CRecordset::FlushResultSet() 2317 private: void ATL::CSimpleStringT::Fork(int) 2318 private: void ATL::CSimpleStringT::Fork(int) 2319 void ATL::CStringT > >::Format(unsigned int,...) 2320 void ATL::CStringT > >::Format(wchar_t const *,...) 2321 void ATL::CStringT > >::Format(unsigned int,...) 2322 void ATL::CStringT > >::Format(char const *,...) 2323 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2324 void ATL::CStringT > >::FormatMessageA(unsigned int,...) 2325 void ATL::CStringT > >::FormatMessageA(char const *,...) 2326 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 2327 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 2328 void ATL::CStringT > >::FormatV(char const *,char *) 2329 void COleControl::ForwardActivationMsg(tagMSG *) 2330 void CAfxStringMgr::Free(ATL::CStringData *) 2331 void CDatabase::Free() 2332 void CFixedAlloc::Free(void *) 2333 void CFixedAllocNoSync::Free(void *) 2334 void CMemFile::Free(unsigned char *) 2335 void CSharedFile::Free(unsigned char *) 2336 void CFixedAlloc::FreeAll() 2337 void CFixedAllocNoSync::FreeAll() 2338 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2339 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2340 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2341 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2342 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2343 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2344 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2345 void CRecordset::FreeDataCache() 2346 void CPlex::FreeDataChain() 2347 void ATL::CSimpleStringT::FreeExtra() 2348 void ATL::CSimpleStringT::FreeExtra() 2349 void CByteArray::FreeExtra() 2350 void CDWordArray::FreeExtra() 2351 void CObArray::FreeExtra() 2352 void CPtrArray::FreeExtra() 2353 void CStringArray::FreeExtra() 2354 void CUIntArray::FreeExtra() 2355 void CWordArray::FreeExtra() 2356 void CObList::FreeNode(CObList::CNode *) 2357 void CPtrList::FreeNode(CPtrList::CNode *) 2358 void CStringList::FreeNode(CStringList::CNode *) 2359 void CRecordset::FreeRowset() 2360 void CThreadSlotData::FreeSlot(int) 2361 private: void CProperty::FreeValue() 2362 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2363 void COleControlContainer::FreezeAllEvents(int) 2364 void COleControlSite::FreezeEvents(int) 2365 long COleControl::XOleControl::FreezeEvents(int) 2366 int COleClientItem::FreezeLink() 2367 CDC * CDC::FromHandle(HDC__ *) 2368 CGdiObject * CGdiObject::FromHandle(void *) 2369 CObject * CHandleMap::FromHandle(void *) 2370 CImageList * CImageList::FromHandle(_IMAGELIST *) 2371 CMenu * CMenu::FromHandle(HMENU__ *) 2372 CWnd * CWnd::FromHandle(HWND__ *) 2373 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2374 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2375 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2376 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2377 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2378 CRuntime* CRuntimeClass::FromName(char const *) 2379 void * CProperty::Get(unsigned long *) 2380 void * CProperty::Get() 2381 void * CPropertySection::Get(unsigned long) 2382 void * CPropertySection::Get(unsigned long,unsigned long *) 2383 void * CPropertySet::Get(_GUID,unsigned long) 2384 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2385 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2386 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2387 long CWnd::get_accChildCount(long *) 2388 long CWnd::XAccessible::get_accChildCount(long *) 2389 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2390 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2391 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2392 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2393 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2394 long CWnd::get_accFocus(tagVARIANT *) 2395 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2396 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2397 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2398 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2399 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2400 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2401 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2402 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2403 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2404 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2405 long CWnd::get_accParent(IDispatch * *) 2406 long CWnd::XAccessible::get_accParent(IDispatch * *) 2407 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2408 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2409 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2410 long CWnd::get_accSelection(tagVARIANT *) 2411 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2412 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2413 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2414 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2415 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2416 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2417 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2418 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2419 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2420 long CWnd::GetAccessibleChildCount() 2421 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2422 unsigned long COleControl::GetActivationPolicy() 2423 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2424 CDocument * CFrameWnd::GetActiveDocument() 2425 CFrameWnd * CFrameWnd::GetActiveFrame() 2426 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2427 int CPropertySheet::GetActiveIndex()const 2428 CPropertyPage * CPropertySheet::GetActivePage()const 2429 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2430 CView * CFrameWnd::GetActiveView()const 2431 IOleDocumentView * COleDocObjectItem::GetActiveView()const 2432 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2433 int CHtmlView::GetAddressBar()const 2434 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2435 int ATL::CSimpleStringT::GetAllocLength()const 2436 int ATL::CSimpleStringT::GetAllocLength()const 2437 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2438 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2439 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2440 short COleControl::GetAppearance() 2441 IDispatch * CHtmlView::GetApplication()const 2442 HKEY__ * CWinApp::GetAppRegistryKey() 2443 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2444 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2445 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2446 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2447 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2448 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2449 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2450 wchar_t ATL::CSimpleStringT::GetAt(int)const 2451 char ATL::CSimpleStringT::GetAt(int)const 2452 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2453 unsigned long COleControl::GetBackColor() 2454 void CControlBar::GetBarInfo(CControlBarInfo *) 2455 void CDockBar::GetBarInfo(CControlBarInfo *) 2456 unsigned long CAsyncMonikerFile::GetBindInfo()const 2457 void * CBlobProperty::GetBlob() 2458 void CRecordset::GetBookmark(CDBVariant &) 2459 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2460 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2461 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2462 short COleControl::GetBorderStyle() 2463 long CDataSourceControl::GetBoundClientRow() 2464 int CRecordset::GetBoundFieldIndex(void *) 2465 int CRecordset::GetBoundParamIndex(void *) 2466 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 2467 wchar_t * ATL::CSimpleStringT::GetBuffer() 2468 char * ATL::CSimpleStringT::GetBuffer(int) 2469 char * ATL::CSimpleStringT::GetBuffer() 2470 unsigned int CEditView::GetBufferLength()const 2471 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2472 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2473 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2474 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 2475 char * ATL::CSimpleStringT::GetBufferSetLength(int) 2476 int CHtmlView::GetBusy()const 2477 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2478 unsigned int CToolBar::GetButtonStyle(int)const 2479 ATL::CStringT > > CToolBar::GetButtonText(int)const 2480 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2481 void COleSafeArray::GetByteArray(CByteArray &) 2482 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2483 unsigned short CPropertySet::GetByteOrder() 2484 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2485 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2486 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2487 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2488 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2489 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2490 CWnd * COleControl::GetCapture() 2491 long COleControlSite::XOleIPSite::GetCapture() 2492 void CFontDialog::GetCharFormat(_charformat &)const 2493 CHARFORMAT2A & CRichEditView::GetCharFormatSelection() 2494 int CCheckListBox::GetCheck(int) 2495 int CListCtrl::GetCheck(int)const 2496 int CTreeCtrl::GetCheck(_TREEITEM *)const 2497 int CWnd::GetCheckedRadioButton(int,int) 2498 long CBlobProperty::GetClassID(_GUID *) 2499 void COleClientItem::GetClassID(_GUID *)const 2500 _GUID CPropertySet::GetClassID() 2501 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2502 long COleControl::XPersistMemory::GetClassID(_GUID *) 2503 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2504 long COleControl::XPersistStorage::GetClassID(_GUID *) 2505 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2506 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2507 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 2508 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2509 void COleControl::GetClientOffset(long *,long *)const 2510 void COleControl::GetClientRect(tagRECT *)const 2511 IOleClientSite * COleClientItem::GetClientSite() 2512 IOleClientSite * COleControl::GetClientSite() 2513 IOleClientSite * CRichEditCntrItem::GetClientSite() 2514 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2515 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2516 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2517 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2518 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2519 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2520 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2521 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2522 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2523 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2524 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2525 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2526 COleDataSource * COleDataSource::GetClipboardOwner() 2527 int CDC::GetClipBox(tagRECT *)const 2528 int CMetaFileDC::GetClipBox(tagRECT *)const 2529 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2530 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2531 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2532 int CListCtrl::GetColumnOrderArray(int *,int) 2533 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2534 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 2535 void CDatabase::GetConnectInfo() 2536 int CConnectionPoint::GetConnectionCount() 2537 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2538 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2539 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2540 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2541 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2542 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2543 CPtrArray const * CConnectionPoint::GetConnections() 2544 IConnectionPointContainer * CConnectionPoint::GetContainer() 2545 IDispatch * CHtmlView::GetContainer()const 2546 IOleItemContainer * COleDocument::GetContainer() 2547 IOleItemContainer * COleLinkingDoc::GetContainer() 2548 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2549 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2550 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2551 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2552 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2553 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2554 COleControlContainer * CWnd::GetControlContainer() 2555 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 2556 unsigned long COleControl::GetControlFlags() 2557 void COleControlSite::GetControlInfo() 2558 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2559 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2560 IUnknown * CCmdTarget::GetControllingUnknown() 2561 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2562 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 2563 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 2564 void COleControl::GetControlSize(int *,int *) 2565 int COlePropertyPage::GetControlStatus(unsigned int) 2566 IUnknown * CWnd::GetControlUnknown() 2567 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2568 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 2569 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 2570 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 2571 int CPrintDialog::GetCopies()const 2572 int CPrintDialogEx::GetCopies()const 2573 unsigned long CPropertySection::GetCount() 2574 unsigned long CPropertySet::GetCount() 2575 int CFileFind::GetCreationTime(ATL::CTime &)const 2576 int CFileFind::GetCreationTime(_FILETIME *)const 2577 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2578 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2579 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2580 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 2581 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 2582 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2583 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 2584 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 2585 tagMSG const * CWnd::GetCurrentMessage() 2586 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2587 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2588 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2589 IUnknown * CDataBoundProperty::GetCursor() 2590 IUnknown * CDataSourceControl::GetCursor() 2591 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2592 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2593 private: ATL::CStringData * ATL::CSimpleStringT::GetData()const 2594 private: ATL::CStringData * ATL::CSimpleStringT::GetData()const 2595 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2596 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2597 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2598 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2599 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2600 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2601 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2602 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2603 ATL::CStringT > > CDatabase::GetDatabaseName()const 2604 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2605 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2606 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2607 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2608 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2609 CNoTrackObject * CThreadLocalObject::GetDataNA() 2610 IDataObject * COleServerItem::GetDataObject() 2611 COleControl::CControlDataSource * COleControl::GetDataSource() 2612 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2613 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2614 HACCEL__ * CDocument::GetDefaultAccelerator() 2615 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2616 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 2617 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 2618 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 2619 ATL::CStringT > > CRecordset::GetDefaultConnect() 2620 short CRecordset::GetDefaultFieldType(short) 2621 HMENU__ * CDocument::GetDefaultMenu() 2622 HMENU__ * COleServerDoc::GetDefaultMenu() 2623 int CPrintDialog::GetDefaults() 2624 int CPrintDialogEx::GetDefaults() 2625 ATL::CStringT > > CRecordset::GetDefaultSQL() 2626 unsigned long COccManager::GetDefBtnCode(CWnd *) 2627 unsigned long COleControlSite::GetDefBtnCode() 2628 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2629 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 2630 ATL::CStringT > > CPrintDialog::GetDeviceName()const 2631 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 2632 CPoint CScrollView::GetDeviceScrollPosition()const 2633 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2634 _devicemodeA * CPageSetupDialog::GetDevMode()const 2635 _devicemodeA * CPrintDialog::GetDevMode()const 2636 _devicemodeA * CPrintDialogEx::GetDevMode()const 2637 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2638 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2639 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2640 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2641 DHtmlEventMapEntry const * GetDHtmlEventMap() 2642 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 2643 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 2644 int CCmdTarget::GetDispatchIID(_GUID *) 2645 int COleControl::GetDispatchIID(_GUID *) 2646 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2647 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 2648 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2649 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 2650 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2651 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2652 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2653 int COleControlSite::GetDlgCtrlID()const 2654 int CWnd::GetDlgCtrlID()const 2655 CWnd * COleControlContainer::GetDlgItem(int)const 2656 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2657 CWnd * CWnd::GetDlgItem(int)const 2658 void CWnd::GetDlgItem(int,HWND__ * *)const 2659 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2660 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2661 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 2662 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 2663 int CWnd::GetDlgItemTextA(int,char *,int)const 2664 CDockBar * CDockContext::GetDockBar(unsigned long) 2665 CControlBar * CDockBar::GetDockedControlBar(int)const 2666 int CDockBar::GetDockedCount()const 2667 int CDockBar::GetDockedVisibleCount()const 2668 CFrameWnd * CControlBar::GetDockingFrame()const 2669 void CFrameWnd::GetDockState(CDockState &)const 2670 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2671 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2672 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2673 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2674 int CDocManager::GetDocumentCount() 2675 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2676 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 2677 ATL::CStringT > > CPrintDialog::GetDriverName()const 2678 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 2679 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2680 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2681 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2682 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2683 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2684 IUnknown * CWnd::GetDSCCursor() 2685 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 2686 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 2687 void COleSafeArray::GetElement(long *,void *) 2688 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 2689 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 2690 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 2691 wchar_t * CDHtmlDialog::GetElementText(char const *) 2692 COleServerItem * COleServerDoc::GetEmbeddedItem() 2693 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2694 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2695 int COleControl::GetEnabled() 2696 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2697 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2698 int ATL::CStringT > >::GetEnvironmentVariableA(wchar_t const *) 2699 int ATL::CStringT > >::GetEnvironmentVariableA(char const *) 2700 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *) 2701 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *) 2702 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 2703 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *) 2704 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *) 2705 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *) 2706 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *) 2707 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *) 2708 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2709 int COleControlSite::GetEventIID(_GUID *) 2710 AFX_EVENTMAP const * COleControl::GetEventMap()const 2711 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 2712 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 2713 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2714 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2715 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 2716 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 2717 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 2718 unsigned long COleControlSite::GetExStyle()const 2719 unsigned long CWnd::GetExStyle()const 2720 IDispatch * COleControl::GetExtendedControl() 2721 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2722 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2723 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2724 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2725 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2726 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2727 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2728 long CBrowserControlSite::GetExternal(IDispatch * *) 2729 long CDHtmlDialog::GetExternal(IDispatch * *) 2730 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2731 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2732 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2733 short CRecordset::GetFieldIndexByName(char const *) 2734 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2735 unsigned char CRecordset::GetFieldStatus(unsigned long) 2736 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2737 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2738 void CRecordset::GetFieldValue(short,CDBVariant &,short) 2739 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 2740 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 2741 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 2742 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 2743 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 2744 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 2745 ATL::CStringT > > CFileDialog::GetFileExt()const 2746 ATL::CStringT > > CFile::GetFileName()const 2747 ATL::CStringT > > CFileDialog::GetFileName()const 2748 ATL::CStringT > > CFileFind::GetFileName()const 2749 ATL::CStringT > > CGopherFileFind::GetFileName()const 2750 ATL::CStringT > > CFile::GetFilePath()const 2751 ATL::CStringT > > CFileFind::GetFilePath()const 2752 ATL::CStringT > > CGopherFileFind::GetFilePath()const 2753 ATL::CStringT > > CFile::GetFileTitle()const 2754 ATL::CStringT > > CFileDialog::GetFileTitle()const 2755 ATL::CStringT > > CFileFind::GetFileTitle()const 2756 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 2757 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 2758 ATL::CStringT > > CFileFind::GetFileURL()const 2759 ATL::CStringT > > CFtpFileFind::GetFileURL()const 2760 ATL::CStringT > > CGopherFileFind::GetFileURL()const 2761 ATL::CStringT > > CHttpFile::GetFileURL()const 2762 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 2763 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2764 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2765 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2766 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2767 CFrameWnd * COleDocument::GetFirstFrame() 2768 __POSITION * CDocument::GetFirstViewPosition()const 2769 CWnd * COleControl::GetFocus() 2770 long COleControlSite::XOleIPSite::GetFocus() 2771 ATL::CStringT > > CFileDialog::GetFolderPath()const 2772 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 2773 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 2774 IFontDisp * COleControl::GetFont() 2775 IFontDisp * CFontHolder::GetFontDispatch() 2776 HFONT__ * CFontHolder::GetFontHandle(long,long) 2777 HFONT__ * CFontHolder::GetFontHandle() 2778 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2779 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 2780 unsigned long COleControl::GetForeColor() 2781 _GUID CPropertySection::GetFormatID() 2782 unsigned short CPropertySet::GetFormatVersion() 2783 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 2784 ATL::CStringT > > CHtmlView::GetFullName()const 2785 int CHtmlView::GetFullScreen()const 2786 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 2787 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 2788 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 2789 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 2790 CBrush * CDC::GetHalftoneBrush() 2791 unsigned int CRectTracker::GetHandleMask()const 2792 void CRectTracker::GetHandleRect(int,CRect *)const 2793 int CRectTracker::GetHandleSize(tagRECT const *)const 2794 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2795 long CHtmlView::GetHeight()const 2796 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 2797 void CSplitterWnd::GetHitRect(int,CRect &) 2798 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 2799 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 2800 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 2801 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2802 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 2803 IDispatch * CHtmlView::GetHtmlDocument()const 2804 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 2805 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 2806 unsigned int COleControl::GetHwnd() 2807 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 2808 HICON__ * COleClientItem::GetIconFromRegistry()const 2809 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 2810 void * COleClientItem::GetIconicMetafile() 2811 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2812 unsigned long CProperty::GetID() 2813 int CPropertySection::GetID(char const *,unsigned long *) 2814 IDataObject * COleDataObject::GetIDataObject(int) 2815 IDispatch * CCmdTarget::GetIDispatch(int) 2816 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2817 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2818 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2819 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2820 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2821 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2822 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2823 _GUID const & COleControl::XEventConnPt::GetIID() 2824 CImageList * CReBarCtrl::GetImageList()const 2825 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 2826 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 2827 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 2828 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 2829 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 2830 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 2831 CWnd * COleClientItem::GetInPlaceWindow() 2832 void CSplitterWnd::GetInsideRect(CRect &)const 2833 IUnknown * CCmdTarget::GetInterface(void const *) 2834 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 2835 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2836 IUnknown * COleControl::GetInterfaceHook(void const *) 2837 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 2838 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2839 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 2840 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 2841 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 2842 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 2843 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 2844 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 2845 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 2846 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 2847 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 2848 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 2849 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 2850 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 2851 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 2852 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 2853 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 2854 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 2855 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 2856 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 2857 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 2858 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 2859 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 2860 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 2861 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 2862 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 2863 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2864 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 2865 void COleServerDoc::GetItemClipRect(tagRECT *)const 2866 unsigned long CListCtrl::GetItemData(int)const 2867 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2868 unsigned int CStatusBar::GetItemID(int)const 2869 unsigned int CToolBar::GetItemID(int)const 2870 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2871 void COleClientItem::GetItemName(char *)const 2872 void COleServerDoc::GetItemPosition(tagRECT *)const 2873 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2874 void CStatusBar::GetItemRect(int,tagRECT *)const 2875 void CToolBar::GetItemRect(int,tagRECT *)const 2876 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2877 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2878 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2879 void COleClientItem::GetItemStorage() 2880 void COleClientItem::GetItemStorageCompound() 2881 void COleClientItem::GetItemStorageFlat() 2882 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 2883 int CListCtrl::GetItemText(int,int,char *,int)const 2884 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 2885 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 2886 int CFileFind::GetLastAccessTime(ATL::CTime &)const 2887 int CFileFind::GetLastAccessTime(_FILETIME *)const 2888 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 2889 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2890 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 2891 int CFileFind::GetLastWriteTime(ATL::CTime &)const 2892 int CFileFind::GetLastWriteTime(_FILETIME *)const 2893 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 2894 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2895 unsigned long CDC::GetLayout()const 2896 long CRecordset::GetLBFetchSize(long) 2897 void COleSafeArray::GetLBound(unsigned long,long *) 2898 long CRecordset::GetLBReallocSize(long) 2899 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 2900 long CHtmlView::GetLeft()const 2901 int ATL::CSimpleStringT::GetLength()const 2902 int ATL::CSimpleStringT::GetLength()const 2903 unsigned __int64 CFile::GetLength()const 2904 unsigned __int64 CFileFind::GetLength()const 2905 unsigned __int64 CGopherFileFind::GetLength()const 2906 unsigned __int64 CInternetFile::GetLength()const 2907 unsigned __int64 CMemFile::GetLength()const 2908 unsigned __int64 COleStreamFile::GetLength()const 2909 unsigned __int64 CSocketFile::GetLength()const 2910 unsigned __int64 CStdioFile::GetLength()const 2911 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 2912 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 2913 int CRichEditCtrl::GetLine(int,char *)const 2914 int CRichEditCtrl::GetLine(int,char *,int)const 2915 private: COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 2916 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 2917 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 2918 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 2919 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 2920 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 2921 CPtrList * CPropertySection::GetList() 2922 CPtrList * CPropertySet::GetList() 2923 ATL::CStringT > > CHtmlView::GetLocationName()const 2924 ATL::CStringT > > CHtmlView::GetLocationURL()const 2925 CGopherLocator CGopherFileFind::GetLocator()const 2926 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 2927 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 2928 long CFieldExchange::GetLongBinarySize(int) 2929 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2930 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2931 CWnd * CWinThread::GetMainWnd() 2932 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2933 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2934 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2935 int CConnectionPoint::GetMaxConnections() 2936 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2937 int CHtmlView::GetMenuBar()const 2938 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 2939 CWnd * CFrameWnd::GetMessageBar() 2940 CWnd * CMDIChildWnd::GetMessageBar() 2941 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2942 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2943 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2944 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2945 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 2946 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2947 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 2948 AFX_MSGMAP const * CDialog::GetMessageMap()const 2949 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2950 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2951 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 2952 AFX_MSGMAP const * CDocument::GetMessageMap()const 2953 AFX_MSGMAP const * CEditView::GetMessageMap()const 2954 AFX_MSGMAP const * CFormView::GetMessageMap()const 2955 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2956 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 2957 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 2958 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2959 AFX_MSGMAP const * CListView::GetMessageMap()const 2960 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2961 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2962 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2963 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2964 AFX_MSGMAP const * COleControl::GetMessageMap()const 2965 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 2966 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 2967 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 2968 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 2969 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 2970 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 2971 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2972 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2973 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 2974 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2975 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2976 AFX_MSGMAP const * CReBar::GetMessageMap()const 2977 AFX_MSGMAP const * CRecordView::GetMessageMap()const 2978 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 2979 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2980 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 2981 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2982 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2983 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2984 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2985 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2986 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2987 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2988 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2989 AFX_MSGMAP const * CView::GetMessageMap()const 2990 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2991 AFX_MSGMAP const * CWnd::GetMessageMap()const 2992 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 2993 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 2994 long CDataSourceControl::GetMetaData() 2995 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2996 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2997 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2998 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2999 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3000 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3001 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 3002 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 3003 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 3004 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 3005 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3006 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3007 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3008 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3009 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3010 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3011 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3012 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 3013 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 3014 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 3015 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3016 unsigned long COleClientItem::GetNewItemNumber() 3017 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3018 CDataBoundProperty * CDataBoundProperty::GetNext() 3019 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3020 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3021 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 3022 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 3023 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 3024 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3025 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3026 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3027 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3028 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 3029 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 3030 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3031 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3032 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3033 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3034 int COleDataObject::GetNextFormat(tagFORMATETC *) 3035 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3036 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3037 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3038 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 3039 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3040 CView * CDocument::GetNextView(__POSITION * &)const 3041 ATL::CStringData * CAfxStringMgr::GetNilString() 3042 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3043 void CCmdTarget::GetNotSupported() 3044 void COleControl::GetNotSupported() 3045 ATL::CStringT > > CHttpFile::GetObjectA()const 3046 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 3047 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3048 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3049 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3050 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 3051 unsigned int CArchive::GetObjectSchema() 3052 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 3053 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3054 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 3055 int CHtmlView::GetOffline()const 3056 tagOFNA & CFileDialog::GetOFN() 3057 tagOFNA const & CFileDialog::GetOFN()const 3058 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 3059 IOleObject * COleServerItem::GetOleObject() 3060 unsigned long COleSafeArray::GetOneDimSize() 3061 int CDocManager::GetOpenDocumentCount() 3062 int CWinApp::GetOpenDocumentCount() 3063 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 3064 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 3065 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 3066 int CHeaderCtrl::GetOrderArray(int *,int) 3067 unsigned long CPropertySet::GetOSVersion() 3068 CWnd * COleControl::GetOuterWindow()const 3069 int COleDocObjectItem::GetPageCount(long *,long *) 3070 int CPropertySheet::GetPageCount()const 3071 int CPropertySheet::GetPageIndex(CPropertyPage *) 3072 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3073 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3074 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3075 IPropertyPageSite * COlePropertyPage::GetPageSite() 3076 CWnd * CSplitterWnd::GetPane(int,int)const 3077 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3078 unsigned int CStatusBar::GetPaneStyle(int)const 3079 ATL::CStringT > > CStatusBar::GetPaneText(int)const 3080 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 3081 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3082 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 3083 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 3084 IDispatch * CHtmlView::GetParentBrowser()const 3085 CFrameWnd * CWnd::GetParentFrame()const 3086 CWnd * CWnd::GetParentOwner()const 3087 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3088 ATL::CStringT > > CFileDialog::GetPathName()const 3089 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 3090 IPictureDisp * CPictureHolder::GetPictureDispatch() 3091 ATL::CStringT > > CPageSetupDialog::GetPortName()const 3092 ATL::CStringT > > CPrintDialog::GetPortName()const 3093 ATL::CStringT > > CPrintDialogEx::GetPortName()const 3094 unsigned __int64 CFile::GetPosition()const 3095 unsigned __int64 CMemFile::GetPosition()const 3096 unsigned __int64 COleStreamFile::GetPosition()const 3097 unsigned __int64 CSocketFile::GetPosition()const 3098 unsigned __int64 CStdioFile::GetPosition()const 3099 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3100 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3101 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 3102 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3103 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3104 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3105 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 3106 CFont * CEditView::GetPrinterFont()const 3107 long CAsyncMonikerFile::GetPriority()const 3108 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 3109 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 3110 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 3111 int COlePropertyPage::GetPropCheck(char const *,int *) 3112 COleVariant CHtmlView::GetProperty(char const *) 3113 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 3114 void COleControlSite::GetProperty(long,unsigned short,void *)const 3115 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3116 CProperty * CPropertySection::GetProperty(unsigned long) 3117 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3118 void CWnd::GetProperty(long,unsigned short,void *)const 3119 int COlePropertyPage::GetPropIndex(char const *,int *) 3120 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3121 int COlePropertyPage::GetPropRadio(char const *,int *) 3122 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3123 int COlePropertyPage::GetPropText(char const *,unsigned char *) 3124 int COlePropertyPage::GetPropText(char const *,short *) 3125 int COlePropertyPage::GetPropText(char const *,int *) 3126 int COlePropertyPage::GetPropText(char const *,unsigned int *) 3127 int COlePropertyPage::GetPropText(char const *,long *) 3128 int COlePropertyPage::GetPropText(char const *,unsigned long *) 3129 int COlePropertyPage::GetPropText(char const *,float *) 3130 int COlePropertyPage::GetPropText(char const *,double *) 3131 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 3132 _PROPSHEETPAGEA & CPropertyPage::GetPSP() 3133 _PROPSHEETPAGEA const & CPropertyPage::GetPSP()const 3134 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3135 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3136 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3137 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3138 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3139 void CProgressCtrl::GetRange(int &,int &) 3140 void CSliderCtrl::GetRange(int &,int &)const 3141 void CSpinButtonCtrl::GetRange(int &,int &)const 3142 void * CProperty::GetRawValue() 3143 enum tagREADYSTATE CHtmlView::GetReadyState()const 3144 long COleControl::GetReadyState() 3145 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3146 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3147 int COleControl::GetRectInContainer(tagRECT *) 3148 int CHtmlView::GetRegisterAsBrowser()const 3149 int CHtmlView::GetRegisterAsDropTarget()const 3150 ATL::CStringT > > CFileFind::GetRoot()const 3151 ATL::CStringT > > CGopherFileFind::GetRoot()const 3152 CFrameWnd * CCmdTarget::GetRoutingFrame() 3153 CFrameWnd * CCmdTarget::GetRoutingFrame_() 3154 CView * CCmdTarget::GetRoutingView() 3155 CView * CCmdTarget::GetRoutingView_() 3156 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3157 CRuntime* CAnimateCtrl::GetRuntimeClass()const 3158 CRuntime* CArchiveException::GetRuntimeClass()const 3159 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 3160 CRuntime* CAsyncSocket::GetRuntimeClass()const 3161 CRuntime* CBitmap::GetRuntimeClass()const 3162 CRuntime* CBitmapButton::GetRuntimeClass()const 3163 CRuntime* CBrush::GetRuntimeClass()const 3164 CRuntime* CButton::GetRuntimeClass()const 3165 CRuntime* CByteArray::GetRuntimeClass()const 3166 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 3167 CRuntime* CCheckListBox::GetRuntimeClass()const 3168 CRuntime* CClientDC::GetRuntimeClass()const 3169 CRuntime* CCmdTarget::GetRuntimeClass()const 3170 CRuntime* CColorDialog::GetRuntimeClass()const 3171 CRuntime* CComboBox::GetRuntimeClass()const 3172 CRuntime* CComboBoxEx::GetRuntimeClass()const 3173 CRuntime* CControlBar::GetRuntimeClass()const 3174 CRuntime* CCriticalSection::GetRuntimeClass()const 3175 CRuntime* CCtrlView::GetRuntimeClass()const 3176 CRuntime* CDatabase::GetRuntimeClass()const 3177 CRuntime* CDataPathProperty::GetRuntimeClass()const 3178 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 3179 CRuntime* CDBException::GetRuntimeClass()const 3180 CRuntime* CDC::GetRuntimeClass()const 3181 CRuntime* CDHtmlDialog::GetRuntimeClass()const 3182 CRuntime* CDialog::GetRuntimeClass()const 3183 CRuntime* CDialogBar::GetRuntimeClass()const 3184 CRuntime* CDocItem::GetRuntimeClass()const 3185 CRuntime* CDockBar::GetRuntimeClass()const 3186 CRuntime* CDockState::GetRuntimeClass()const 3187 CRuntime* CDocManager::GetRuntimeClass()const 3188 CRuntime* CDocObjectServer::GetRuntimeClass()const 3189 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 3190 CRuntime* CDocTemplate::GetRuntimeClass()const 3191 CRuntime* CDocument::GetRuntimeClass()const 3192 CRuntime* CDragListBox::GetRuntimeClass()const 3193 CRuntime* CDWordArray::GetRuntimeClass()const 3194 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3195 CRuntime* CEdit::GetRuntimeClass()const 3196 CRuntime* CEditView::GetRuntimeClass()const 3197 CRuntime* CEvent::GetRuntimeClass()const 3198 CRuntime* CException::GetRuntimeClass()const 3199 CRuntime* CFile::GetRuntimeClass()const 3200 CRuntime* CFileDialog::GetRuntimeClass()const 3201 CRuntime* CFileException::GetRuntimeClass()const 3202 CRuntime* CFileFind::GetRuntimeClass()const 3203 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3204 CRuntime* CFont::GetRuntimeClass()const 3205 CRuntime* CFontDialog::GetRuntimeClass()const 3206 CRuntime* CFormView::GetRuntimeClass()const 3207 CRuntime* CFrameWnd::GetRuntimeClass()const 3208 CRuntime* CFtpConnection::GetRuntimeClass()const 3209 CRuntime* CFtpFileFind::GetRuntimeClass()const 3210 CRuntime* CGdiObject::GetRuntimeClass()const 3211 CRuntime* CGopherConnection::GetRuntimeClass()const 3212 CRuntime* CGopherFile::GetRuntimeClass()const 3213 CRuntime* CGopherFileFind::GetRuntimeClass()const 3214 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3215 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3216 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 3217 CRuntime* CHtmlEditView::GetRuntimeClass()const 3218 CRuntime* CHtmlView::GetRuntimeClass()const 3219 CRuntime* CHttpConnection::GetRuntimeClass()const 3220 CRuntime* CHttpFile::GetRuntimeClass()const 3221 CRuntime* CImageList::GetRuntimeClass()const 3222 CRuntime* CInternetConnection::GetRuntimeClass()const 3223 CRuntime* CInternetException::GetRuntimeClass()const 3224 CRuntime* CInternetFile::GetRuntimeClass()const 3225 CRuntime* CInternetSession::GetRuntimeClass()const 3226 CRuntime* CInvalidArgException::GetRuntimeClass()const 3227 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 3228 CRuntime* CLinkCtrl::GetRuntimeClass()const 3229 CRuntime* CListBox::GetRuntimeClass()const 3230 CRuntime* CListCtrl::GetRuntimeClass()const 3231 CRuntime* CListView::GetRuntimeClass()const 3232 CRuntime* CLongBinary::GetRuntimeClass()const 3233 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3234 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3235 CRuntime* CMapStringToOb::GetRuntimeClass()const 3236 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3237 CRuntime* CMapStringToString::GetRuntimeClass()const 3238 CRuntime* CMapWordToOb::GetRuntimeClass()const 3239 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3240 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3241 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3242 CRuntime* CMemFile::GetRuntimeClass()const 3243 CRuntime* CMemoryException::GetRuntimeClass()const 3244 CRuntime* CMenu::GetRuntimeClass()const 3245 CRuntime* CMetaFileDC::GetRuntimeClass()const 3246 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3247 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3248 CRuntime* CMonikerFile::GetRuntimeClass()const 3249 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 3250 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3251 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 3252 CRuntime* CMutex::GetRuntimeClass()const 3253 CRuntime* CNotSupportedException::GetRuntimeClass()const 3254 CRuntime* CObArray::GetRuntimeClass()const 3255 CRuntime* CObject::GetRuntimeClass()const 3256 CRuntime* CObList::GetRuntimeClass()const 3257 CRuntime* COleBusyDialog::GetRuntimeClass()const 3258 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3259 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3260 CRuntime* COleClientItem::GetRuntimeClass()const 3261 CRuntime* COleControl::GetRuntimeClass()const 3262 CRuntime* COleControlModule::GetRuntimeClass()const 3263 CRuntime* COleConvertDialog::GetRuntimeClass()const 3264 CRuntime* COleDBRecordView::GetRuntimeClass()const 3265 CRuntime* COleDialog::GetRuntimeClass()const 3266 CRuntime* COleDispatchException::GetRuntimeClass()const 3267 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3268 CRuntime* COleDocObjectItem::GetRuntimeClass()const 3269 CRuntime* COleDocument::GetRuntimeClass()const 3270 CRuntime* COleException::GetRuntimeClass()const 3271 CRuntime* COleInsertDialog::GetRuntimeClass()const 3272 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3273 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3274 CRuntime* COleLinksDialog::GetRuntimeClass()const 3275 CRuntime* COleObjectFactory::GetRuntimeClass()const 3276 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3277 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3278 CRuntime* COlePropertyPage::GetRuntimeClass()const 3279 CRuntime* COleResizeBar::GetRuntimeClass()const 3280 CRuntime* COleServerDoc::GetRuntimeClass()const 3281 CRuntime* COleServerItem::GetRuntimeClass()const 3282 CRuntime* COleStreamFile::GetRuntimeClass()const 3283 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3284 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3285 CRuntime* CPaintDC::GetRuntimeClass()const 3286 CRuntime* CPalette::GetRuntimeClass()const 3287 CRuntime* CPen::GetRuntimeClass()const 3288 CRuntime* CPreviewDC::GetRuntimeClass()const 3289 CRuntime* CPreviewView::GetRuntimeClass()const 3290 CRuntime* CPrintDialog::GetRuntimeClass()const 3291 CRuntime* CPrintDialogEx::GetRuntimeClass()const 3292 CRuntime* CProgressCtrl::GetRuntimeClass()const 3293 CRuntime* CPropertyPage::GetRuntimeClass()const 3294 CRuntime* CPropertySheet::GetRuntimeClass()const 3295 CRuntime* CPtrArray::GetRuntimeClass()const 3296 CRuntime* CPtrList::GetRuntimeClass()const 3297 CRuntime* CReBar::GetRuntimeClass()const 3298 CRuntime* CReBarCtrl::GetRuntimeClass()const 3299 CRuntime* CRecordset::GetRuntimeClass()const 3300 CRuntime* CRecordView::GetRuntimeClass()const 3301 CRuntime* CResourceException::GetRuntimeClass()const 3302 CRuntime* CRgn::GetRuntimeClass()const 3303 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3304 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3305 CRuntime* CRichEditDoc::GetRuntimeClass()const 3306 CRuntime* CRichEditView::GetRuntimeClass()const 3307 CRuntime* CScrollBar::GetRuntimeClass()const 3308 CRuntime* CScrollView::GetRuntimeClass()const 3309 CRuntime* CSemaphore::GetRuntimeClass()const 3310 CRuntime* CSharedFile::GetRuntimeClass()const 3311 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3312 CRuntime* CSliderCtrl::GetRuntimeClass()const 3313 CRuntime* CSocket::GetRuntimeClass()const 3314 CRuntime* CSocketFile::GetRuntimeClass()const 3315 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3316 CRuntime* CSplitterWnd::GetRuntimeClass()const 3317 CRuntime* CStatic::GetRuntimeClass()const 3318 CRuntime* CStatusBar::GetRuntimeClass()const 3319 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3320 CRuntime* CStdioFile::GetRuntimeClass()const 3321 CRuntime* CStringArray::GetRuntimeClass()const 3322 CRuntime* CStringList::GetRuntimeClass()const 3323 CRuntime* CSyncObject::GetRuntimeClass()const 3324 CRuntime* CTabCtrl::GetRuntimeClass()const 3325 CRuntime* CToolBar::GetRuntimeClass()const 3326 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3327 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3328 CRuntime* CTreeCtrl::GetRuntimeClass()const 3329 CRuntime* CTreeView::GetRuntimeClass()const 3330 CRuntime* CUIntArray::GetRuntimeClass()const 3331 CRuntime* CUserException::GetRuntimeClass()const 3332 CRuntime* CView::GetRuntimeClass()const 3333 CRuntime* CWinApp::GetRuntimeClass()const 3334 CRuntime* CWindowDC::GetRuntimeClass()const 3335 CRuntime* CWindowlessDC::GetRuntimeClass()const 3336 CRuntime* CWinThread::GetRuntimeClass()const 3337 CRuntime* CWnd::GetRuntimeClass()const 3338 CRuntime* CWordArray::GetRuntimeClass()const 3339 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3340 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3341 unsigned long * CColorDialog::GetSavedCustomColors() 3342 ATL::CStringT > > CGopherFileFind::GetScreenName()const 3343 CSize CDockState::GetScreenSize() 3344 CScrollBar * CView::GetScrollBarCtrl(int)const 3345 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3346 void CScrollView::GetScrollBarSizes(CSize &) 3347 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3348 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3349 int CWnd::GetScrollLimit(int) 3350 int CWnd::GetScrollPos(int)const 3351 CPoint CScrollView::GetScrollPosition()const 3352 void CWnd::GetScrollRange(int,int *,int *)const 3353 unsigned long CSplitterWnd::GetScrollStyle()const 3354 CPropertySection * CPropertySet::GetSection(_GUID) 3355 HKEY__ * CWinApp::GetSectionKey(char const *) 3356 char const * CPropertySection::GetSectionName() 3357 void CRichEditCtrl::GetSel(long &,long &)const 3358 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3359 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3360 void CSliderCtrl::GetSelection(int &,int &)const 3361 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3362 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 3363 unsigned int COleConvertDialog::GetSelectionType()const 3364 unsigned int COleInsertDialog::GetSelectionType()const 3365 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3366 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3367 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3368 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3369 ATL::CStringT > > CRichEditCtrl::GetSelText()const 3370 int CHtmlView::GetSilent()const 3371 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3372 unsigned long CPropertySection::GetSize() 3373 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3374 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3375 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3376 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3377 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3378 CWnd * CSplitterWnd::GetSizingParent() 3379 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3380 int CHtmlView::GetSource(ATL::CStringT > > &) 3381 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3382 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3383 char const * CHtmlEditCtrl::GetStartDocument() 3384 char const * CHtmlEditView::GetStartDocument() 3385 __POSITION * CConnectionPoint::GetStartPosition()const 3386 __POSITION * COleDocument::GetStartPosition()const 3387 __POSITION * CRichEditDoc::GetStartPosition()const 3388 int CFile::GetStatus(CFileStatus &)const 3389 int CFile::GetStatus(char const *,CFileStatus &) 3390 int CMemFile::GetStatus(CFileStatus &)const 3391 int COleStreamFile::GetStatus(CFileStatus &)const 3392 int CHtmlView::GetStatusBar()const 3393 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 3394 ATL::CStringT > > const COleStreamFile::GetStorageName()const 3395 IStream * COleStreamFile::GetStream()const 3396 wchar_t const * ATL::CSimpleStringT::GetString()const 3397 char const * ATL::CSimpleStringT::GetString()const 3398 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3399 unsigned long COleControlSite::GetStyle()const 3400 unsigned long COleControlSiteOrWnd::GetStyle()const 3401 unsigned long CWnd::GetStyle()const 3402 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3403 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3404 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3405 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3406 void CListBox::GetText(int,ATL::CStringT > > &)const 3407 wchar_t * COleControl::GetText() 3408 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3409 int CStatusBarCtrl::GetText(char const *,int,int *)const 3410 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3411 long CRecordset::GetTextLen(short,unsigned long) 3412 int CStatusBarCtrl::GetTextLength(int,int *)const 3413 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3414 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3415 int CHtmlView::GetTheaterMode()const 3416 CRuntime* CAnimateCtrl::GetThisClass() 3417 CRuntime* CArchiveException::GetThisClass() 3418 CRuntime* CAsyncMonikerFile::GetThisClass() 3419 CRuntime* CAsyncSocket::GetThisClass() 3420 CRuntime* CBitmap::GetThisClass() 3421 CRuntime* CBitmapButton::GetThisClass() 3422 CRuntime* CBrush::GetThisClass() 3423 CRuntime* CButton::GetThisClass() 3424 CRuntime* CByteArray::GetThisClass() 3425 CRuntime* CCachedDataPathProperty::GetThisClass() 3426 CRuntime* CCheckListBox::GetThisClass() 3427 CRuntime* CClientDC::GetThisClass() 3428 CRuntime* CCmdTarget::GetThisClass() 3429 CRuntime* CColorDialog::GetThisClass() 3430 CRuntime* CComboBox::GetThisClass() 3431 CRuntime* CComboBoxEx::GetThisClass() 3432 CRuntime* CControlBar::GetThisClass() 3433 CRuntime* CCriticalSection::GetThisClass() 3434 CRuntime* CCtrlView::GetThisClass() 3435 CRuntime* CDatabase::GetThisClass() 3436 CRuntime* CDataPathProperty::GetThisClass() 3437 CRuntime* CDateTimeCtrl::GetThisClass() 3438 CRuntime* CDBException::GetThisClass() 3439 CRuntime* CDC::GetThisClass() 3440 CRuntime* CDHtmlDialog::GetThisClass() 3441 CRuntime* CDialog::GetThisClass() 3442 CRuntime* CDialogBar::GetThisClass() 3443 CRuntime* CDocItem::GetThisClass() 3444 CRuntime* CDockBar::GetThisClass() 3445 CRuntime* CDockState::GetThisClass() 3446 CRuntime* CDocManager::GetThisClass() 3447 CRuntime* CDocObjectServer::GetThisClass() 3448 CRuntime* CDocObjectServerItem::GetThisClass() 3449 CRuntime* CDocTemplate::GetThisClass() 3450 CRuntime* CDocument::GetThisClass() 3451 CRuntime* CDragListBox::GetThisClass() 3452 CRuntime* CDWordArray::GetThisClass() 3453 CRuntime* CDynLinkLibrary::GetThisClass() 3454 CRuntime* CEdit::GetThisClass() 3455 CRuntime* CEditView::GetThisClass() 3456 CRuntime* CEvent::GetThisClass() 3457 CRuntime* CException::GetThisClass() 3458 CRuntime* CFile::GetThisClass() 3459 CRuntime* CFileDialog::GetThisClass() 3460 CRuntime* CFileException::GetThisClass() 3461 CRuntime* CFileFind::GetThisClass() 3462 CRuntime* CFindReplaceDialog::GetThisClass() 3463 CRuntime* CFont::GetThisClass() 3464 CRuntime* CFontDialog::GetThisClass() 3465 CRuntime* CFormView::GetThisClass() 3466 CRuntime* CFrameWnd::GetThisClass() 3467 CRuntime* CFtpConnection::GetThisClass() 3468 CRuntime* CFtpFileFind::GetThisClass() 3469 CRuntime* CGdiObject::GetThisClass() 3470 CRuntime* CGopherConnection::GetThisClass() 3471 CRuntime* CGopherFile::GetThisClass() 3472 CRuntime* CGopherFileFind::GetThisClass() 3473 CRuntime* CHeaderCtrl::GetThisClass() 3474 CRuntime* CHotKeyCtrl::GetThisClass() 3475 CRuntime* CHtmlEditDoc::GetThisClass() 3476 CRuntime* CHtmlEditView::GetThisClass() 3477 CRuntime* CHtmlView::GetThisClass() 3478 CRuntime* CHttpConnection::GetThisClass() 3479 CRuntime* CHttpFile::GetThisClass() 3480 CRuntime* CImageList::GetThisClass() 3481 CRuntime* CInternetConnection::GetThisClass() 3482 CRuntime* CInternetException::GetThisClass() 3483 CRuntime* CInternetFile::GetThisClass() 3484 CRuntime* CInternetSession::GetThisClass() 3485 CRuntime* CInvalidArgException::GetThisClass() 3486 CRuntime* CIPAddressCtrl::GetThisClass() 3487 CRuntime* CLinkCtrl::GetThisClass() 3488 CRuntime* CListBox::GetThisClass() 3489 CRuntime* CListCtrl::GetThisClass() 3490 CRuntime* CListView::GetThisClass() 3491 CRuntime* CLongBinary::GetThisClass() 3492 CRuntime* CMapPtrToPtr::GetThisClass() 3493 CRuntime* CMapPtrToWord::GetThisClass() 3494 CRuntime* CMapStringToOb::GetThisClass() 3495 CRuntime* CMapStringToPtr::GetThisClass() 3496 CRuntime* CMapStringToString::GetThisClass() 3497 CRuntime* CMapWordToOb::GetThisClass() 3498 CRuntime* CMapWordToPtr::GetThisClass() 3499 CRuntime* CMDIChildWnd::GetThisClass() 3500 CRuntime* CMDIFrameWnd::GetThisClass() 3501 CRuntime* CMemFile::GetThisClass() 3502 CRuntime* CMemoryException::GetThisClass() 3503 CRuntime* CMenu::GetThisClass() 3504 CRuntime* CMetaFileDC::GetThisClass() 3505 CRuntime* CMiniDockFrameWnd::GetThisClass() 3506 CRuntime* CMiniFrameWnd::GetThisClass() 3507 CRuntime* CMonikerFile::GetThisClass() 3508 CRuntime* CMonthCalCtrl::GetThisClass() 3509 CRuntime* CMultiDocTemplate::GetThisClass() 3510 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 3511 CRuntime* CMutex::GetThisClass() 3512 CRuntime* CNotSupportedException::GetThisClass() 3513 CRuntime* CObArray::GetThisClass() 3514 CRuntime* CObject::GetThisClass() 3515 CRuntime* CObList::GetThisClass() 3516 CRuntime* COleBusyDialog::GetThisClass() 3517 CRuntime* COleChangeIconDialog::GetThisClass() 3518 CRuntime* COleChangeSourceDialog::GetThisClass() 3519 CRuntime* COleClientItem::GetThisClass() 3520 CRuntime* COleControl::GetThisClass() 3521 CRuntime* COleControlModule::GetThisClass() 3522 CRuntime* COleConvertDialog::GetThisClass() 3523 CRuntime* COleDBRecordView::GetThisClass() 3524 CRuntime* COleDialog::GetThisClass() 3525 CRuntime* COleDispatchException::GetThisClass() 3526 CRuntime* COleDocIPFrameWnd::GetThisClass() 3527 CRuntime* COleDocObjectItem::GetThisClass() 3528 CRuntime* COleDocument::GetThisClass() 3529 CRuntime* COleException::GetThisClass() 3530 CRuntime* COleInsertDialog::GetThisClass() 3531 CRuntime* COleIPFrameWnd::GetThisClass() 3532 CRuntime* COleLinkingDoc::GetThisClass() 3533 CRuntime* COleLinksDialog::GetThisClass() 3534 CRuntime* COleObjectFactory::GetThisClass() 3535 CRuntime* COlePasteSpecialDialog::GetThisClass() 3536 CRuntime* COlePropertiesDialog::GetThisClass() 3537 CRuntime* COlePropertyPage::GetThisClass() 3538 CRuntime* COleResizeBar::GetThisClass() 3539 CRuntime* COleServerDoc::GetThisClass() 3540 CRuntime* COleServerItem::GetThisClass() 3541 CRuntime* COleStreamFile::GetThisClass() 3542 CRuntime* COleUpdateDialog::GetThisClass() 3543 CRuntime* CPageSetupDialog::GetThisClass() 3544 CRuntime* CPaintDC::GetThisClass() 3545 CRuntime* CPalette::GetThisClass() 3546 CRuntime* CPen::GetThisClass() 3547 CRuntime* CPreviewDC::GetThisClass() 3548 CRuntime* CPreviewView::GetThisClass() 3549 CRuntime* CPrintDialog::GetThisClass() 3550 CRuntime* CPrintDialogEx::GetThisClass() 3551 CRuntime* CProgressCtrl::GetThisClass() 3552 CRuntime* CPropertyPage::GetThisClass() 3553 CRuntime* CPropertySheet::GetThisClass() 3554 CRuntime* CPtrArray::GetThisClass() 3555 CRuntime* CPtrList::GetThisClass() 3556 CRuntime* CReBar::GetThisClass() 3557 CRuntime* CReBarCtrl::GetThisClass() 3558 CRuntime* CRecordset::GetThisClass() 3559 CRuntime* CRecordView::GetThisClass() 3560 CRuntime* CResourceException::GetThisClass() 3561 CRuntime* CRgn::GetThisClass() 3562 CRuntime* CRichEditCntrItem::GetThisClass() 3563 CRuntime* CRichEditCtrl::GetThisClass() 3564 CRuntime* CRichEditDoc::GetThisClass() 3565 CRuntime* CRichEditView::GetThisClass() 3566 CRuntime* CScrollBar::GetThisClass() 3567 CRuntime* CScrollView::GetThisClass() 3568 CRuntime* CSemaphore::GetThisClass() 3569 CRuntime* CSharedFile::GetThisClass() 3570 CRuntime* CSingleDocTemplate::GetThisClass() 3571 CRuntime* CSliderCtrl::GetThisClass() 3572 CRuntime* CSocket::GetThisClass() 3573 CRuntime* CSocketFile::GetThisClass() 3574 CRuntime* CSpinButtonCtrl::GetThisClass() 3575 CRuntime* CSplitterWnd::GetThisClass() 3576 CRuntime* CStatic::GetThisClass() 3577 CRuntime* CStatusBar::GetThisClass() 3578 CRuntime* CStatusBarCtrl::GetThisClass() 3579 CRuntime* CStdioFile::GetThisClass() 3580 CRuntime* CStringArray::GetThisClass() 3581 CRuntime* CStringList::GetThisClass() 3582 CRuntime* CSyncObject::GetThisClass() 3583 CRuntime* CTabCtrl::GetThisClass() 3584 CRuntime* CToolBar::GetThisClass() 3585 CRuntime* CToolBarCtrl::GetThisClass() 3586 CRuntime* CToolTipCtrl::GetThisClass() 3587 CRuntime* CTreeCtrl::GetThisClass() 3588 CRuntime* CTreeView::GetThisClass() 3589 CRuntime* CUIntArray::GetThisClass() 3590 CRuntime* CUserException::GetThisClass() 3591 CRuntime* CView::GetThisClass() 3592 CRuntime* CWinApp::GetThisClass() 3593 CRuntime* CWindowDC::GetThisClass() 3594 CRuntime* CWindowlessDC::GetThisClass() 3595 CRuntime* CWinThread::GetThisClass() 3596 CRuntime* CWnd::GetThisClass() 3597 CRuntime* CWordArray::GetThisClass() 3598 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 3599 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 3600 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 3601 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 3602 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 3603 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 3604 AFX_EVENTMAP const * COleControl::GetThisEventMap() 3605 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 3606 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 3607 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 3608 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 3609 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 3610 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 3611 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 3612 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 3613 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 3614 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 3615 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 3616 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 3617 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 3618 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 3619 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 3620 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 3621 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 3622 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 3623 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 3624 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 3625 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 3626 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 3627 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 3628 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 3629 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 3630 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 3631 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 3632 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 3633 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 3634 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 3635 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 3636 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 3637 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 3638 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 3639 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 3640 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 3641 AFX_MSGMAP const * CDialog::GetThisMessageMap() 3642 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 3643 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 3644 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 3645 AFX_MSGMAP const * CDocument::GetThisMessageMap() 3646 AFX_MSGMAP const * CEditView::GetThisMessageMap() 3647 AFX_MSGMAP const * CFormView::GetThisMessageMap() 3648 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 3649 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 3650 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 3651 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 3652 AFX_MSGMAP const * CListView::GetThisMessageMap() 3653 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 3654 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 3655 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 3656 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 3657 AFX_MSGMAP const * COleControl::GetThisMessageMap() 3658 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 3659 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 3660 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 3661 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 3662 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 3663 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 3664 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 3665 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 3666 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 3667 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 3668 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 3669 AFX_MSGMAP const * CReBar::GetThisMessageMap() 3670 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 3671 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 3672 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 3673 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 3674 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 3675 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 3676 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 3677 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 3678 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 3679 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 3680 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 3681 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 3682 AFX_MSGMAP const * CView::GetThisMessageMap() 3683 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 3684 AFX_MSGMAP const * CWnd::GetThisMessageMap() 3685 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 3686 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 3687 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 3688 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 3689 int CMonthCalCtrl::GetToday(ATL::CTime &)const 3690 int CHtmlView::GetToolBar()const 3691 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3692 long CHtmlView::GetTop()const 3693 int CHtmlView::GetTopLevelContainer()const 3694 CFrameWnd * CWnd::GetTopLevelFrame()const 3695 CWnd * CWnd::GetTopLevelOwner()const 3696 CWnd * CWnd::GetTopLevelParent()const 3697 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3698 void CRectTracker::GetTrueRect(tagRECT *)const 3699 ATL::CStringT > > CHtmlView::GetType()const 3700 short CPictureHolder::GetType() 3701 unsigned long CProperty::GetType() 3702 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3703 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3704 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3705 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3706 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3707 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3708 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3709 unsigned int CCmdTarget::GetTypeInfoCount() 3710 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 3711 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 3712 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 3713 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3714 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 3715 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3716 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3717 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3718 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3719 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3720 void COleSafeArray::GetUBound(unsigned long,long *) 3721 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3722 long COleControl::XOleObject::GetUserClassID(_GUID *) 3723 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3724 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3725 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 3726 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 3727 void COleControl::GetUserType(char *) 3728 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 3729 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 3730 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 3731 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 3732 void * CMapPtrToPtr::GetValueAt(void *)const 3733 ATL::CStringT > > CHttpFile::GetVerb()const 3734 unsigned long CDockState::GetVersion() 3735 CHtmlEditView * CHtmlEditDoc::GetView()const 3736 CRichEditView * CRichEditDoc::GetView()const 3737 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3738 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3739 int CHtmlView::GetVisible()const 3740 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 3741 long CHtmlView::GetWidth()const 3742 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3743 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3744 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3745 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3746 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3747 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3748 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3749 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3750 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3751 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3752 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3753 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3754 long CWnd::GetWindowedChildCount() 3755 long CWnd::GetWindowLessChildCount() 3756 IDropTarget * COleControl::GetWindowlessDropTarget() 3757 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3758 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3759 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 3760 int CWnd::GetWindowTextA(char *,int)const 3761 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 3762 int CWnd::GetWindowTextLengthA()const 3763 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3764 long COleDropSource::GiveFeedback(unsigned long) 3765 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3766 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3767 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3768 void CMemFile::GrowFile(unsigned long) 3769 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3770 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3771 long CDialog::HandleInitDialog(unsigned int,long) 3772 long CDialogBar::HandleInitDialog(unsigned int,long) 3773 long CFormView::HandleInitDialog(unsigned int,long) 3774 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 3775 long CPropertySheet::HandleInitDialog(unsigned int,long) 3776 long CScrollView::HandleMButtonDown(unsigned int,long) 3777 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 3778 int COleControlContainer::HandleSetFocus() 3779 long CDialog::HandleSetFont(unsigned int,long) 3780 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 3781 long COleControl::XPersistStorage::HandsOffStorage() 3782 long COleServerDoc::XPersistStorage::HandsOffStorage() 3783 int COleDocument::HasBlankItems()const 3784 int CDialogTemplate::HasFont()const 3785 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 3786 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 3787 void * CFile::hFileNull 3788 void CWinApp::HideApplication() 3789 void CFileDialog::HideControl(int) 3790 long CBrowserControlSite::HideUI() 3791 long CDHtmlDialog::HideUI() 3792 long CHtmlControlSite::XDocHostUIHandler::HideUI() 3793 void CDC::HIMETRICtoDP(tagSIZE *)const 3794 void CDC::HIMETRICtoLP(tagSIZE *)const 3795 int CListCtrl::HitTest(CPoint,unsigned int *)const 3796 int CRectTracker::HitTest(CPoint)const 3797 int CSplitterWnd::HitTest(CPoint)const 3798 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 3799 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3800 int CRectTracker::HitTestHandles(CPoint)const 3801 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 3802 void CWnd::HtmlHelpA(unsigned long,unsigned int) 3803 int CSplitterWnd::IdFromRowCol(int,int)const 3804 void COlePropertyPage::IgnoreApply(unsigned int) 3805 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3806 int CWinApp::InitApplication() 3807 long COleControl::XOleCache::InitCache(IDataObject *) 3808 int CWnd::InitControlContainer() 3809 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3810 long CPrintDialogEx::InitDone() 3811 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3812 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3813 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3814 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3815 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3816 void CMapPtrToWord::InitHashTable(unsigned int,int) 3817 void CMapStringToOb::InitHashTable(unsigned int,int) 3818 void CMapStringToPtr::InitHashTable(unsigned int,int) 3819 void CMapStringToString::InitHashTable(unsigned int,int) 3820 void CMapWordToOb::InitHashTable(unsigned int,int) 3821 void CMapWordToPtr::InitHashTable(unsigned int,int) 3822 long CDataSourceControl::Initialize() 3823 void CDHtmlDialog::Initialize() 3824 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3825 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3826 int CEditView::InitializeReplace() 3827 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3828 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3829 int COleControlModule::InitInstance() 3830 int CWinApp::InitInstance() 3831 int CWinThread::InitInstance() 3832 void CWinApp::InitLibId() 3833 void CDockContext::InitLoop() 3834 int CDialog::InitModalIndirect(void *,CWnd *) 3835 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3836 long COleControl::XPersistMemory::InitNew() 3837 long COleControl::XPersistPropertyBag::InitNew() 3838 long COleControl::XPersistStorage::InitNew(IStorage *) 3839 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3840 long COleControl::XPersistStreamInit::InitNew() 3841 void CRecordset::InitRecord() 3842 void COleControl::InitStockEventMask() 3843 void COleControl::InitStockPropMask() 3844 void CSimpleException::InitString() 3845 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3846 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3847 int ATL::CStringT > >::Insert(int,wchar_t) 3848 int ATL::CStringT > >::Insert(int,wchar_t const *) 3849 int ATL::CStringT > >::Insert(int,char) 3850 int ATL::CStringT > >::Insert(int,char const *) 3851 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3852 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3853 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3854 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 3855 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 3856 void CByteArray::InsertAt(int,unsigned char,int) 3857 void CByteArray::InsertAt(int,CByteArray *) 3858 void CDWordArray::InsertAt(int,unsigned long,int) 3859 void CDWordArray::InsertAt(int,CDWordArray *) 3860 void CObArray::InsertAt(int,CObArray *) 3861 void CObArray::InsertAt(int,CObject *,int) 3862 void CPtrArray::InsertAt(int,CPtrArray *) 3863 void CPtrArray::InsertAt(int,void *,int) 3864 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 3865 void CStringArray::InsertAt(int,CStringArray *) 3866 void CStringArray::InsertAt(int,char const *,int) 3867 void CUIntArray::InsertAt(int,unsigned int,int) 3868 void CUIntArray::InsertAt(int,CUIntArray *) 3869 void CWordArray::InsertAt(int,unsigned short,int) 3870 void CWordArray::InsertAt(int,CWordArray *) 3871 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3872 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3873 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 3874 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 3875 int CListCtrl::InsertColumn(int,char const *,int,int,int) 3876 void CStringArray::InsertEmpty(int,int) 3877 void CRichEditView::InsertFileAsObject(char const *) 3878 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 3879 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 3880 long CRichEditView::InsertItem(CRichEditCntrItem *) 3881 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 3882 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 3883 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3884 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3885 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3886 CFontHolder & COleControl::InternalGetFont() 3887 ATL::CStringT > > const & COleControl::InternalGetText() 3888 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 3889 unsigned long CCmdTarget::InternalRelease() 3890 int CDC::IntersectClipRect(int,int,int,int) 3891 int CDC::IntersectClipRect(tagRECT const *) 3892 void CCheckListBox::InvalidateCheck(int) 3893 void COleControl::InvalidateControl(tagRECT const *,int) 3894 void CCheckListBox::InvalidateItem(int) 3895 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 3896 void COleControl::InvalidateRgn(CRgn *,int) 3897 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 3898 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3899 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3900 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3901 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3902 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3903 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3904 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3905 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 3906 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3907 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3908 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3909 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3910 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3911 int CDocItem::IsBlank()const 3912 int COleServerItem::IsBlank()const 3913 int CPropertyPage::IsButtonEnabled(int) 3914 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3915 int COleServerItem::IsConnected()const 3916 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 3917 int COleControlSite::IsDefaultButton() 3918 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3919 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 3920 int CWnd::IsDialogMessageA(tagMSG *) 3921 long CBlobProperty::IsDirty() 3922 long COleLinkingDoc::XPersistFile::IsDirty() 3923 long COleControl::XPersistMemory::IsDirty() 3924 long COleControl::XPersistStorage::IsDirty() 3925 long COleServerDoc::XPersistStorage::IsDirty() 3926 long COleControl::XPersistStreamInit::IsDirty() 3927 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 3928 unsigned int CWnd::IsDlgButtonChecked(int)const 3929 int CControlBar::IsDockBar()const 3930 int CDockBar::IsDockBar()const 3931 int CFileFind::IsDots()const 3932 int CGopherFileFind::IsDots()const 3933 bool ATL::CSimpleStringT::IsEmpty()const 3934 bool ATL::CSimpleStringT::IsEmpty()const 3935 int CCheckListBox::IsEnabled(int) 3936 int CDHtmlDialog::IsExternalDispatchSafe() 3937 int CRecordset::IsFieldDirty(void *) 3938 int CRecordset::IsFieldNull(void *) 3939 int CRecordset::IsFieldNullable(void *) 3940 int CRecordset::IsFieldNullable(unsigned long)const 3941 int CRecordset::IsFieldStatusDirty(unsigned long)const 3942 int CRecordset::IsFieldStatusNull(unsigned long)const 3943 int CFieldExchange::IsFieldType(unsigned int *) 3944 int CControlBar::IsFloating()const 3945 int CFrameWnd::IsFrameWnd()const 3946 int CWnd::IsFrameWnd()const 3947 int IsHelpKey(tagMSG *) 3948 int CWinThread::IsIdleMessage(tagMSG *) 3949 int CCmdTarget::IsInvokeAllowed(long) 3950 int COleControl::IsInvokeAllowed(long) 3951 int CRecordset::IsJoin(char const *) 3952 int CObject::IsKindOf(CRuntimeconst *)const 3953 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 3954 int COccManager::IsLabelControl(CWnd *) 3955 int COleObjectFactory::IsLicenseValid() 3956 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 3957 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 3958 int COleControlSite::IsMatchingMnemonic(tagMSG *) 3959 int CHtmlEditDoc::IsModified() 3960 int COleClientItem::IsModified()const 3961 int COleControl::IsModified() 3962 int COlePropertyPage::IsModified() 3963 int CRichEditDoc::IsModified() 3964 int CRecordView::IsOnFirstRecord() 3965 int CRecordView::IsOnLastRecord() 3966 int CRecordset::IsOpen()const 3967 long COlePropertyPage::XPropertyPage::IsPageDirty() 3968 int CRecordset::IsParamStatusNull(unsigned long)const 3969 int CRecordset::IsRecordsetUpdatable() 3970 int CCmdTarget::IsResultExpected() 3971 int CRichEditView::IsRichEditFormat(unsigned short) 3972 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 3973 int CRichEditView::IsSelected(CObject const *)const 3974 int CView::IsSelected(CObject const *)const 3975 int CRecordset::IsSelectQueryUpdatable(char const *) 3976 int CObject::IsSerializable()const 3977 int COleMessageFilter::IsSignificantMessage(tagMSG *) 3978 int CDHtmlDialog::IsSinkedElement(IDispatch *) 3979 int CRecordset::IsSQLUpdatable(char const *) 3980 int COleControl::IsSubclassedControl() 3981 int CWnd::IsTopParentActive()const 3982 int CFrameWnd::IsTracking()const 3983 long CDocObjectServer::XOleObject::IsUpToDate() 3984 long COleControl::XOleObject::IsUpToDate() 3985 long COleServerDoc::XOleObject::IsUpToDate() 3986 long COleServerItem::XOleObject::IsUpToDate() 3987 int CControlBar::IsVisible()const 3988 int COleControlSite::IsWindowEnabled()const 3989 int CWnd::IsWindowEnabled()const 3990 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3991 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3992 void COleControl::KeyDown(unsigned short *) 3993 void COleControl::KeyUp(unsigned short *) 3994 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 3995 void CToolBar::Layout() 3996 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3997 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3998 int CRichEditCtrl::LineIndex(int)const 3999 int CRichEditCtrl::LineLength(int)const 4000 void CRichEditCtrl::LineScroll(int,int) 4001 int CDC::LineTo(int,int) 4002 unsigned long CRichEditView::lMaxSize 4003 long CBlobProperty::Load(IStream *) 4004 int CDialogTemplate::Load(char const *) 4005 void COleControl::Load(char const *,CDataPathProperty &) 4006 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4007 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 4008 long COleControl::XPersistMemory::Load(void *,unsigned long) 4009 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4010 long COleControl::XPersistStorage::Load(IStorage *) 4011 long COleServerDoc::XPersistStorage::Load(IStorage *) 4012 long COleControl::XPersistStreamInit::Load(IStream *) 4013 int CFrameWnd::LoadAccelTable(char const *) 4014 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 4015 void CFrameWnd::LoadBarState(char const *) 4016 int CToolBar::LoadBitmapA(char const *) 4017 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 4018 void CRecordset::LoadFields() 4019 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4020 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4021 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4022 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4023 int CDHtmlDialog::LoadFromResource(unsigned int) 4024 int CDHtmlDialog::LoadFromResource(char const *) 4025 int CHtmlView::LoadFromResource(unsigned int) 4026 int CHtmlView::LoadFromResource(char const *) 4027 void COleDocument::LoadFromStorage() 4028 int CControlBarInfo::LoadState(char const *,int,CDockState *) 4029 void CDockState::LoadState(char const *) 4030 long COleControl::LoadState(IStream *) 4031 void CWinApp::LoadStdProfileSettings(unsigned int) 4032 int ATL::CStringT > >::LoadStringA(unsigned int) 4033 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 4034 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 4035 int ATL::CStringT > >::LoadStringA(unsigned int) 4036 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 4037 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 4038 int CWinApp::LoadSysPolicies() 4039 void CDocTemplate::LoadTemplate() 4040 void CMultiDocTemplate::LoadTemplate() 4041 int CToolBar::LoadToolBar(char const *) 4042 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4043 void COleSafeArray::Lock() 4044 int CSingleLock::Lock(unsigned long) 4045 int CSyncObject::Lock(unsigned long) 4046 void CTypeLibCache::Lock() 4047 wchar_t * ATL::CSimpleStringT::LockBuffer() 4048 char * ATL::CSimpleStringT::LockBuffer() 4049 char const * CEditView::LockBuffer()const 4050 long COleControlContainer::XOleContainer::LockContainer(int) 4051 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4052 void COleLinkingDoc::LockExternal(int,int) 4053 int COleControl::LockInPlaceActive(int) 4054 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4055 void CFile::LockRange(unsigned __int64,unsigned __int64) 4056 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 4057 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 4058 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 4059 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 4060 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 4061 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4062 long COleObjectFactory::XClassFactory::LockServer(int) 4063 int CMapPtrToPtr::Lookup(void *,void * &)const 4064 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4065 int CMapStringToOb::Lookup(char const *,CObject * &)const 4066 int CMapStringToPtr::Lookup(char const *,void * &)const 4067 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 4068 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4069 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4070 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4071 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4072 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4073 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4074 int CMapStringToOb::LookupKey(char const *,char const * &)const 4075 int CMapStringToPtr::LookupKey(char const *,char const * &)const 4076 int CMapStringToString::LookupKey(char const *,char const * &)const 4077 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4078 void CDC::LPtoDP(tagSIZE *)const 4079 void CDC::LPtoHIMETRIC(tagSIZE *)const 4080 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4081 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4082 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4083 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4084 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4085 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4086 void CArchive::MapObject(CObject const *) 4087 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4088 int COleDialog::MapResult(unsigned int) 4089 long CPropertyPage::MapWizardResult(long) 4090 void CRecordset::MarkForAddNew() 4091 void CRecordset::MarkForUpdate() 4092 void CRichEditDoc::MarkItemsClear()const 4093 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 4094 int CFileFind::MatchesMask(unsigned long)const 4095 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4096 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4097 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 4098 void CComboBox::MeasureItem(tagMEASUREITEM*) 4099 void CListBox::MeasureItem(tagMEASUREITEM*) 4100 void CMenu::MeasureItem(tagMEASUREITEM*) 4101 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 4102 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 4103 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 4104 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 4105 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4106 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4107 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4108 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4109 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4110 void CPreviewDC::MirrorAttributes() 4111 void CPreviewDC::MirrorFont() 4112 void CPreviewDC::MirrorMappingMode(int) 4113 void CPreviewDC::MirrorViewportOrg() 4114 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4115 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4116 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4117 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4118 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4119 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4120 void CDockContext::Move(CPoint) 4121 void CRecordset::Move(long,unsigned short) 4122 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4123 CPoint CDC::MoveTo(int,int) 4124 void COleControlSite::MoveWindow(int,int,int,int) 4125 void CWnd::MoveWindow(int,int,int,int,int) 4126 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4127 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4128 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 4129 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4130 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 4131 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 4132 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 4133 unsigned int COleDropSource::nDragDelay 4134 unsigned int COleDropSource::nDragMinDist 4135 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4136 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 4137 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 4138 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 4139 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 4140 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 4141 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 4142 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 4143 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4144 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4145 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4146 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4147 unsigned int const CEditView::nMaxSize 4148 int CRectTracker::NormalizeHit(int)const 4149 void CDataBoundProperty::Notify() 4150 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4151 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4152 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4153 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4154 void COleServerDoc::NotifyRename(char const *) 4155 unsigned int COleDropTarget::nScrollDelay 4156 int COleDropTarget::nScrollInset 4157 unsigned int COleDropTarget::nScrollInterval 4158 void ATL::CStringT > >::OemToCharA() 4159 int CDC::OffsetClipRgn(int,int) 4160 int CDC::OffsetClipRgn(tagSIZE) 4161 CPoint CDC::OffsetViewportOrg(int,int) 4162 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4163 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4164 CPoint CDC::OffsetWindowOrg(int,int) 4165 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4166 void CAsyncSocket::OnAccept(int) 4167 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4168 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4169 void COleClientItem::OnActivate() 4170 void COleFrameHook::OnActivate(int) 4171 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4172 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4173 long COleControl::OnActivateInPlace(int,tagMSG *) 4174 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4175 long CWnd::OnActivateTopLevel(unsigned int,long) 4176 void COleClientItem::OnActivateUI() 4177 long CDocObjectServer::OnActivateView() 4178 void CFormView::OnActivateView(int,CView *,CView *) 4179 void CPreviewView::OnActivateView(int,CView *,CView *) 4180 void CRichEditView::OnActivateView(int,CView *,CView *) 4181 void CView::OnActivateView(int,CView *,CView *) 4182 long CToolTipCtrl::OnAddTool(unsigned int,long) 4183 void CConnectionPoint::OnAdvise(int) 4184 void COleControl::XEventConnPt::OnAdvise(int) 4185 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4186 void COleControl::OnAmbientPropertyChange(long) 4187 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4188 void COleControl::OnAppearanceChanged() 4189 void CWinApp::OnAppExit() 4190 int CPropertyPage::OnApply() 4191 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4192 void CDocObjectServer::OnApplyViewState(CArchive &) 4193 void COleControl::OnBackColorChanged() 4194 int CFrameWnd::OnBarCheck(unsigned int) 4195 int COleIPFrameWnd::OnBarCheck(unsigned int) 4196 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4197 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4198 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4199 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 4200 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 4201 int COleDropSource::OnBeginDrag(CWnd *) 4202 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4203 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4204 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4205 void COleControl::OnBorderStyleChanged() 4206 void CRichEditView::OnBullet() 4207 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4208 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 4209 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 4210 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 4211 void CCommonDialog::OnCancel() 4212 void CDialog::OnCancel() 4213 void CPropertyPage::OnCancel() 4214 void CRichEditView::OnCancelEditCntr() 4215 void COleControl::OnCancelMode() 4216 void CSplitterWnd::OnCancelMode() 4217 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4218 long COleControl::XFontNotification::OnChanged(long) 4219 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4220 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4221 void CRectTracker::OnChangedRect(CRect const &) 4222 void CDocument::OnChangedViewList() 4223 int COleClientItem::OnChangeItemPosition(CRect const &) 4224 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4225 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4226 void CRichEditView::OnCharBold() 4227 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4228 void CRichEditView::OnCharItalic() 4229 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4230 void CRichEditView::OnCharUnderline() 4231 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4232 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4233 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4234 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4235 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4236 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4237 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4238 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4239 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4240 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4241 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4242 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4243 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4244 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4245 void COleControl::OnClick(unsigned short) 4246 CEnumArray * CEnumArray::OnClone() 4247 CEnumArray * CEnumConnections::OnClone() 4248 void CAsyncSocket::OnClose(int) 4249 void CControlFrameWnd::OnClose() 4250 void CFrameWnd::OnClose() 4251 void CMiniDockFrameWnd::OnClose() 4252 void COleControl::OnClose(unsigned long) 4253 void COleServerDoc::OnClose(enum tagOLECLOSE) 4254 void CPropertySheet::OnClose() 4255 void COleClientItem::XAdviseSink::OnClose() 4256 void CDocObjectServer::OnCloseDocument() 4257 void CDocument::OnCloseDocument() 4258 void COleDocument::OnCloseDocument() 4259 void COleLinkingDoc::OnCloseDocument() 4260 void COleServerDoc::OnCloseDocument() 4261 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4262 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4263 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4264 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4265 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4266 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4267 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4268 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4269 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4270 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4271 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4272 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4273 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4274 void CRichEditView::OnColorDefault() 4275 int CColorDialog::OnColorOK() 4276 void CRichEditView::OnColorPick(unsigned long) 4277 int CFrameWnd::OnCommand(unsigned int,long) 4278 int CMDIFrameWnd::OnCommand(unsigned int,long) 4279 int COlePropertyPage::OnCommand(unsigned int,long) 4280 int CPropertySheet::OnCommand(unsigned int,long) 4281 int CSplitterWnd::OnCommand(unsigned int,long) 4282 int CWnd::OnCommand(unsigned int,long) 4283 long CDialog::OnCommandHelp(unsigned int,long) 4284 long CFrameWnd::OnCommandHelp(unsigned int,long) 4285 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4286 long CPropertySheet::OnCommandHelp(unsigned int,long) 4287 void CHtmlView::OnCommandStateChange(long,int) 4288 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4289 void CAsyncSocket::OnConnect(int) 4290 void CFrameWnd::OnContextHelp() 4291 int COleFrameHook::OnContextHelp(int) 4292 void COleIPFrameWnd::OnContextHelp() 4293 void CWinApp::OnContextHelp() 4294 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4295 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 4296 int CControlBar::OnCreate(tagCREATESTRUCTA *) 4297 int CEditView::OnCreate(tagCREATESTRUCTA *) 4298 int CFormView::OnCreate(tagCREATESTRUCTA *) 4299 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 4300 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 4301 int COleControl::OnCreate(tagCREATESTRUCTA *) 4302 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 4303 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 4304 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 4305 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 4306 int CView::OnCreate(tagCREATESTRUCTA *) 4307 int CCmdTarget::OnCreateAggregates() 4308 int COleControl::OnCreateAggregates() 4309 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4310 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4311 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4312 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4313 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 4314 CCmdTarget * COleObjectFactory::OnCreateObject() 4315 CCmdTarget * COleTemplateServer::OnCreateObject() 4316 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4317 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4318 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4319 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4320 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4321 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4322 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4323 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4324 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4325 int CDocManager::OnDDECommand(char *) 4326 int CWinApp::OnDDECommand(char *) 4327 long CFrameWnd::OnDDEExecute(unsigned int,long) 4328 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4329 long CFrameWnd::OnDDETerminate(unsigned int,long) 4330 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 4331 void COleClientItem::OnDeactivate() 4332 void COleServerDoc::OnDeactivate() 4333 void COleClientItem::OnDeactivateAndUndo() 4334 void COleClientItem::OnDeactivateUI(int) 4335 void COleServerDoc::OnDeactivateUI(int) 4336 void CRichEditCntrItem::OnDeactivateUI(int) 4337 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4338 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4339 void CControlBar::OnDestroy() 4340 void CDHtmlDialog::OnDestroy() 4341 void CEditView::OnDestroy() 4342 void CFrameWnd::OnDestroy() 4343 void CHtmlView::OnDestroy() 4344 void CMDIChildWnd::OnDestroy() 4345 void CMDIFrameWnd::OnDestroy() 4346 void COleControl::OnDestroy() 4347 void COleIPFrameWnd::OnDestroy() 4348 void CRichEditView::OnDestroy() 4349 void CTabCtrl::OnDestroy() 4350 void CTreeCtrl::OnDestroy() 4351 void CTreeView::OnDestroy() 4352 void CView::OnDestroy() 4353 void CWnd::OnDestroy() 4354 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4355 void CRichEditView::OnDevModeChange(char *) 4356 void CWnd::OnDevModeChange(char *) 4357 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4358 void COleClientItem::OnDiscardUndoState() 4359 void CSplitterWnd::OnDisplayChange() 4360 long CWnd::OnDisplayChange(unsigned int,long) 4361 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4362 int COleFrameHook::OnDocActivate(int) 4363 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 4364 void CHtmlView::OnDocumentComplete(char const *) 4365 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4366 long CBrowserControlSite::OnDocWindowActivate(int) 4367 long CDHtmlDialog::OnDocWindowActivate(int) 4368 long CHtmlView::OnDocWindowActivate(int) 4369 void COleServerDoc::OnDocWindowActivate(int) 4370 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4371 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4372 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4373 void CDocObjectServerItem::OnDoVerb(long) 4374 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4375 void COleServerItem::OnDoVerb(long) 4376 void CHtmlView::OnDownloadBegin() 4377 void CHtmlView::OnDownloadComplete() 4378 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4379 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4380 void COleDropTarget::OnDragLeave(CWnd *) 4381 void CView::OnDragLeave() 4382 long CWnd::OnDragList(unsigned int,long) 4383 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4384 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4385 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4386 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4387 void CCtrlView::OnDraw(CDC *) 4388 void CFormView::OnDraw(CDC *) 4389 void CHtmlView::OnDraw(CDC *) 4390 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4391 void CPreviewView::OnDraw(CDC *) 4392 void CView::OnDraw(CDC *) 4393 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4394 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4395 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4396 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4397 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4398 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4399 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4400 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4401 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4402 void CFrameWnd::OnDropFiles(HDROP__ *) 4403 void CRichEditView::OnDropFiles(HDROP__ *) 4404 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4405 int CEditView::OnEditChange() 4406 void COleDocument::OnEditChangeIcon() 4407 void CEditView::OnEditClear() 4408 void CRichEditView::OnEditClear() 4409 void COleDocument::OnEditConvert() 4410 void CEditView::OnEditCopy() 4411 void CHtmlView::OnEditCopy() 4412 void CRichEditView::OnEditCopy() 4413 void CEditView::OnEditCut() 4414 void CHtmlView::OnEditCut() 4415 void CRichEditView::OnEditCut() 4416 void CEditView::OnEditFind() 4417 void CRichEditView::OnEditFind() 4418 void CEditView::OnEditFindReplace(int) 4419 void CRichEditView::OnEditFindReplace(int) 4420 void COleDocument::OnEditLinks() 4421 void CEditView::OnEditPaste() 4422 void CHtmlView::OnEditPaste() 4423 void CRichEditView::OnEditPaste() 4424 void CRichEditView::OnEditPasteSpecial() 4425 void CRichEditView::OnEditProperties() 4426 int COlePropertyPage::OnEditProperty(long) 4427 void CRichEditView::OnEditRedo() 4428 void CEditView::OnEditRepeat() 4429 void CRichEditView::OnEditRepeat() 4430 void CEditView::OnEditReplace() 4431 void CRichEditView::OnEditReplace() 4432 void CEditView::OnEditSelectAll() 4433 void CRichEditView::OnEditSelectAll() 4434 void CEditView::OnEditUndo() 4435 void CRichEditView::OnEditUndo() 4436 void CFrameWnd::OnEnable(int) 4437 void CToolTipCtrl::OnEnable(int) 4438 void COleControl::OnEnabledChanged() 4439 long CHtmlView::OnEnableModeless(int) 4440 void COleFrameHook::OnEnableModeless(int) 4441 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4442 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4443 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4444 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4445 void CFrameWnd::OnEndSession(int) 4446 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4447 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4448 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4449 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4450 int CFrameWnd::OnEraseBkgnd(CDC *) 4451 int COleControl::OnEraseBkgnd(CDC *) 4452 int COleResizeBar::OnEraseBkgnd(CDC *) 4453 int CPreviewView::OnEraseBkgnd(CDC *) 4454 int CReBar::OnEraseBkgnd(CDC *) 4455 int CToolBar::OnEraseBkgnd(CDC *) 4456 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4457 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4458 int COleControlSite::OnEvent(AFX_EVENT *) 4459 void COleControl::OnEventAdvise(int) 4460 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4461 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4462 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4463 void CDocument::OnFileClose() 4464 void CFileDialog::OnFileNameChange() 4465 int CFileDialog::OnFileNameOK() 4466 void CDocManager::OnFileNew() 4467 void CWinApp::OnFileNew() 4468 void CDocManager::OnFileOpen() 4469 void CWinApp::OnFileOpen() 4470 void CHtmlView::OnFilePrint() 4471 void CView::OnFilePrint() 4472 void CView::OnFilePrintPreview() 4473 void CWinApp::OnFilePrintSetup() 4474 void CDocument::OnFileSave() 4475 void CDocument::OnFileSaveAs() 4476 void COleServerDoc::OnFileSaveCopyAs() 4477 void CDocument::OnFileSendMail() 4478 void COleDocument::OnFileSendMail() 4479 void COleServerDoc::OnFileUpdate() 4480 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4481 void CCmdTarget::OnFinalRelease() 4482 void CDocument::OnFinalRelease() 4483 void COleControl::OnFinalRelease() 4484 void COlePropertyPage::OnFinalRelease() 4485 void COleServerItem::OnFinalRelease() 4486 void CWnd::OnFinalRelease() 4487 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 4488 void CEditView::OnFindNext(char const *,int,int) 4489 void CRichEditView::OnFindNext(char const *,int,int,int) 4490 long CEditView::OnFindReplaceCmd(unsigned int,long) 4491 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4492 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4493 long COleControlSite::XOleControlSite::OnFocus(int) 4494 void CFileDialog::OnFolderChange() 4495 void COleControl::OnFontChanged() 4496 void COleControl::OnForeColorChanged() 4497 void CRichEditView::OnFormatFont() 4498 void COleControl::OnFrameClose() 4499 long CBrowserControlSite::OnFrameWindowActivate(int) 4500 long CDHtmlDialog::OnFrameWindowActivate(int) 4501 long CHtmlView::OnFrameWindowActivate(int) 4502 void COleServerDoc::OnFrameWindowActivate(int) 4503 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4504 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4505 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4506 void COleControl::OnFreezeEvents(int) 4507 void CHtmlView::OnFullScreen(int) 4508 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4509 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4510 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4511 void COleClientItem::OnGetClipRect(CRect &) 4512 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4513 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4514 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4515 unsigned int COleControl::OnGetDlgCode() 4516 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4517 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4518 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4519 long CHtmlView::OnGetExternal(IDispatch * *) 4520 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4521 HMENU__ * COleControl::OnGetInPlaceMenu() 4522 void COleClientItem::OnGetItemPosition(CRect &) 4523 void COleDocObjectItem::OnGetItemPosition(CRect &) 4524 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 4525 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 4526 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4527 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4528 long CWnd::OnGetObject(unsigned int,long) 4529 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4530 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4531 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4532 long CStatusBar::OnGetText(unsigned int,long) 4533 long CStatusBar::OnGetTextLength(unsigned int,long) 4534 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4535 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4536 unsigned long COleControl::OnGetViewStatus() 4537 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4538 void CReBar::OnHeightChange(tagNMHDR *,long *) 4539 void CFrameWnd::OnHelp() 4540 int COlePropertyPage::OnHelp(char const *) 4541 void CWinApp::OnHelp() 4542 void CWnd::OnHelp() 4543 void CWinApp::OnHelpFinder() 4544 void CWnd::OnHelpFinder() 4545 long CControlBar::OnHelpHitTest(unsigned int,long) 4546 long CDialog::OnHelpHitTest(unsigned int,long) 4547 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4548 void CWinApp::OnHelpIndex() 4549 void CWnd::OnHelpIndex() 4550 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4551 int CWnd::OnHelpInfo(tagHELPINFO *) 4552 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4553 void CWinApp::OnHelpUsing() 4554 void CWnd::OnHelpUsing() 4555 void CDocObjectServerItem::OnHide() 4556 long COleControl::OnHide() 4557 void COleServerItem::OnHide() 4558 void COleControl::OnHideToolBars() 4559 long CHtmlView::OnHideUI() 4560 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4561 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4562 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4563 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4564 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4565 void CDocTemplate::OnIdle() 4566 void CDocument::OnIdle() 4567 void COleDocument::OnIdle() 4568 int CWinApp::OnIdle(long) 4569 int CWinThread::OnIdle(long) 4570 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4571 void CFrameWnd::OnIdleUpdateCmdUI() 4572 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4573 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4574 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4575 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4576 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4577 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4578 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4579 int CDHtmlDialog::OnInitDialog() 4580 int CDialog::OnInitDialog() 4581 int COlePropertiesDialog::OnInitDialog() 4582 int COlePropertyPage::OnInitDialog() 4583 int CPropertySheet::OnInitDialog() 4584 void CFileDialog::OnInitDone() 4585 int COleServerItem::OnInitFromData(COleDataObject *,int) 4586 void CControlBar::OnInitialUpdate() 4587 void CFormView::OnInitialUpdate() 4588 void COleDBRecordView::OnInitialUpdate() 4589 void CRecordView::OnInitialUpdate() 4590 void CRichEditView::OnInitialUpdate() 4591 void CView::OnInitialUpdate() 4592 void CFrameWnd::OnInitMenu(CMenu *) 4593 void COleFrameHook::OnInitMenu(CMenu *) 4594 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4595 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4596 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 4597 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4598 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4599 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 4600 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4601 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4602 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 4603 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4604 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4605 void CRichEditView::OnInsertObject() 4606 void CSplitterWnd::OnInvertTracker(CRect const &) 4607 void CDockContext::OnKey(int,int) 4608 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4609 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4610 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4611 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4612 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4613 void COleControl::OnKeyPressEvent(unsigned short) 4614 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4615 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4616 long CPropertySheet::OnKickIdle(unsigned int,long) 4617 int CPropertyPage::OnKillActive() 4618 void COleControl::OnKillFocus(CWnd *) 4619 long CCheckListBox::OnLBAddString(unsigned int,long) 4620 long CCheckListBox::OnLBFindString(unsigned int,long) 4621 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4622 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4623 long CCheckListBox::OnLBGetText(unsigned int,long) 4624 long CCheckListBox::OnLBInsertString(unsigned int,long) 4625 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4626 long CCheckListBox::OnLBSelectString(unsigned int,long) 4627 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4628 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4629 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4630 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4631 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4632 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4633 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4634 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4635 void COleControl::OnLButtonDown(unsigned int,CPoint) 4636 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4637 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4638 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4639 void COleControl::OnLButtonUp(unsigned int,CPoint) 4640 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4641 void CAsyncMonikerFile::OnLowResource() 4642 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4643 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4644 void COleControl::OnMButtonDown(unsigned int,CPoint) 4645 void COleControl::OnMButtonUp(unsigned int,CPoint) 4646 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4647 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4648 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4649 void CHtmlView::OnMenuBar(int) 4650 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4651 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4652 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4653 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4654 int COleMessageFilter::OnMessagePending(tagMSG const *) 4655 int CSocket::OnMessagePending() 4656 void COleControl::OnMnemonic(tagMSG *) 4657 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4658 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4659 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4660 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4661 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4662 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4663 void COleControl::OnMouseMove(unsigned int,CPoint) 4664 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4665 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 4666 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 4667 void COleControl::OnMove(int,int) 4668 int COleDBRecordView::OnMove(unsigned int) 4669 int CRecordView::OnMove(unsigned int) 4670 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 4671 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 4672 void CHtmlEditView::OnNavigateComplete2(char const *) 4673 void CHtmlView::OnNavigateComplete2(char const *) 4674 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 4675 int CFrameWnd::OnNcActivate(int) 4676 int CMDIChildWnd::OnNcActivate(int) 4677 int CMiniFrameWnd::OnNcActivate(int) 4678 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4679 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4680 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4681 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4682 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4683 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 4684 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 4685 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 4686 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 4687 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 4688 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 4689 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 4690 void CListCtrl::OnNcDestroy() 4691 void CListView::OnNcDestroy() 4692 void CWnd::OnNcDestroy() 4693 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 4694 unsigned int COleControl::OnNcHitTest(CPoint) 4695 unsigned int CStatusBar::OnNcHitTest(CPoint) 4696 unsigned int CToolBar::OnNcHitTest(CPoint) 4697 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4698 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4699 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4700 void CDockBar::OnNcPaint() 4701 void COleControl::OnNcPaint() 4702 void CReBar::OnNcPaint() 4703 void CStatusBar::OnNcPaint() 4704 void CToolBar::OnNcPaint() 4705 int CDocument::OnNewDocument() 4706 int CHtmlEditDoc::OnNewDocument() 4707 int COleDocument::OnNewDocument() 4708 int COleLinkingDoc::OnNewDocument() 4709 void COleServerDoc::OnNewEmbedding(IStorage *) 4710 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 4711 int CEnumArray::OnNext(void *) 4712 int CEnumConnections::OnNext(void *) 4713 int CEnumConnPoints::OnNext(void *) 4714 int CEnumFormatEtc::OnNext(void *) 4715 int CEnumOleVerb::OnNext(void *) 4716 int CEnumUnknown::OnNext(void *) 4717 void CPreviewView::OnNextPage() 4718 int CView::OnNextPaneCmd(unsigned int) 4719 int CFileDialog::OnNotify(unsigned int,long,long *) 4720 int CPropertyPage::OnNotify(unsigned int,long,long *) 4721 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4722 int CWnd::OnNotify(unsigned int,long,long *) 4723 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4724 long CWnd::OnNTCtlColor(unsigned int,long) 4725 void CPreviewView::OnNumPageChange() 4726 void COlePropertyPage::OnObjectsChanged() 4727 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4728 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4729 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4730 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4731 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4732 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4733 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4734 void CCommonDialog::OnOK() 4735 void CDialog::OnOK() 4736 void CPropertyPage::OnOK() 4737 long COleControl::OnOpen(int,tagMSG *) 4738 void COleServerItem::OnOpen() 4739 int CDocument::OnOpenDocument(char const *) 4740 int CHtmlEditDoc::OnOpenDocument(char const *) 4741 int COleDocument::OnOpenDocument(char const *) 4742 int COleLinkingDoc::OnOpenDocument(char const *) 4743 void COleServerDoc::OnOpenEmbedding(IStorage *) 4744 int CWinApp::OnOpenRecentFile(unsigned int) 4745 void CAsyncSocket::OnOutOfBandData(int) 4746 void CCommonDialog::OnPaint() 4747 void CControlBar::OnPaint() 4748 void CCtrlView::OnPaint() 4749 void CDialog::OnPaint() 4750 void CDockBar::OnPaint() 4751 void CHtmlEditView::OnPaint() 4752 void CHtmlView::OnPaint() 4753 void COleControl::OnPaint(CDC *) 4754 int COleControlContainer::OnPaint(CDC *) 4755 void COleResizeBar::OnPaint() 4756 void CReBar::OnPaint() 4757 void CSplitterWnd::OnPaint() 4758 void CStatusBar::OnPaint() 4759 void CToolBar::OnPaint() 4760 void CView::OnPaint() 4761 void CWnd::OnPaint() 4762 void CFrameWnd::OnPaletteChanged(CWnd *) 4763 void COleFrameHook::OnPaletteChanged(CWnd *) 4764 void CRichEditView::OnParaAlign(unsigned short) 4765 void CRichEditView::OnParaCenter() 4766 void CRichEditView::OnParaLeft() 4767 void CRichEditView::OnParaRight() 4768 void CWnd::OnParentNotify(unsigned int,long) 4769 int CRichEditView::OnPasteNativeObject(IStorage *) 4770 long CFrameWnd::OnPopMessageString(unsigned int,long) 4771 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4772 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4773 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4774 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4775 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4776 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4777 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4778 int CEditView::OnPreparePrinting(CPrintInfo *) 4779 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 4780 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 4781 int CView::OnPreparePrinting(CPrintInfo *) 4782 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 4783 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4784 void CPreviewView::OnPreviewClose() 4785 void CPreviewView::OnPreviewPrint() 4786 void CPreviewView::OnPrevPage() 4787 void CEditView::OnPrint(CDC *,CPrintInfo *) 4788 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 4789 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4790 void CView::OnPrint(CDC *,CPrintInfo *) 4791 void CRichEditView::OnPrinterChanged(CDC const &) 4792 void CPrintDialog::OnPrintSetup() 4793 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 4794 void CHtmlView::OnProgressChange(long,long) 4795 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4796 void CHtmlView::OnPropertyChange(char const *) 4797 int CPropertyPage::OnQueryCancel() 4798 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4799 int CFrameWnd::OnQueryEndSession() 4800 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4801 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4802 int CFrameWnd::OnQueryNewPalette() 4803 int COleFrameHook::OnQueryNewPalette() 4804 int COleServerItem::OnQueryUpdateItems() 4805 void CHtmlView::OnQuit() 4806 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4807 void COleControl::OnRButtonDown(unsigned int,CPoint) 4808 void COleControl::OnRButtonUp(unsigned int,CPoint) 4809 int COleServerDoc::OnReactivateAndUndo() 4810 void COleFrameHook::OnRecalcLayout() 4811 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4812 void CReBar::OnRecalcParent() 4813 void CAsyncSocket::OnReceive(int) 4814 void COleControl::OnReflectorDestroyed() 4815 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 4816 void COleClientItem::OnRemoveMenus(CMenu *) 4817 void COleDocObjectItem::OnRemoveMenus(CMenu *) 4818 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4819 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4820 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4821 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4822 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4823 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4824 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4825 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4826 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4827 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4828 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4829 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4830 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4831 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4832 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4833 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4834 void CEditView::OnReplaceAll(char const *,char const *,int) 4835 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 4836 void CEditView::OnReplaceSel(char const *,int,int,char const *) 4837 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 4838 long COleControl::XFontNotification::OnRequestEdit(long) 4839 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4840 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4841 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4842 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4843 void CEnumArray::OnReset() 4844 void CPropertyPage::OnReset() 4845 void COleControl::OnResetState() 4846 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4847 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4848 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4849 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 4850 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 4851 void COleClientItem::XAdviseSink::OnSave() 4852 int CDocument::OnSaveDocument(char const *) 4853 int CHtmlEditDoc::OnSaveDocument(char const *) 4854 int COleDocument::OnSaveDocument(char const *) 4855 int COleLinkingDoc::OnSaveDocument(char const *) 4856 int COleServerDoc::OnSaveDocument(char const *) 4857 void COleServerDoc::OnSaveEmbedding(IStorage *) 4858 void COleServerItem::OnSaveEmbedding(IStorage *) 4859 void CDocObjectServer::OnSaveViewState(CArchive &) 4860 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4861 int CView::OnScroll(unsigned int,unsigned int,int) 4862 int COleClientItem::OnScrollBy(CSize) 4863 int CScrollView::OnScrollBy(CSize,int) 4864 int CView::OnScrollBy(CSize,int) 4865 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4866 void CAsyncSocket::OnSend(int) 4867 int CPropertyPage::OnSetActive() 4868 long CToolBar::OnSetBitmapSize(unsigned int,long) 4869 long CToolBar::OnSetButtonSize(unsigned int,long) 4870 void COleControl::OnSetClientSite() 4871 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4872 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4873 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4874 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4875 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4876 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4877 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4878 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4879 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4880 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4881 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4882 long CPropertySheet::OnSetDefID(unsigned int,long) 4883 int COleControl::OnSetExtent(tagSIZE *) 4884 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4885 void CFormView::OnSetFocus(CWnd *) 4886 void CFrameWnd::OnSetFocus(CWnd *) 4887 void COleControl::OnSetFocus(CWnd *) 4888 void CWnd::OnSetFocus(CWnd *) 4889 long CCheckListBox::OnSetFont(unsigned int,long) 4890 void CDialog::OnSetFont(CFont *) 4891 long CEditView::OnSetFont(unsigned int,long) 4892 void COleServerDoc::OnSetHostNames(char const *,char const *) 4893 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4894 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4895 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4896 long CFrameWnd::OnSetMessageString(unsigned int,long) 4897 long COleControl::OnSetMessageString(unsigned int,long) 4898 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 4899 long CStatusBar::OnSetMinHeight(unsigned int,long) 4900 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 4901 void CDatabase::OnSetOptions(void *) 4902 void CRecordset::OnSetOptions(void *) 4903 void COlePropertyPage::OnSetPageSite() 4904 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4905 long CToolBar::OnSetSizeHelper(CSize &,long) 4906 long COleControl::OnSetText(unsigned int,long) 4907 long CStatusBar::OnSetText(unsigned int,long) 4908 void CWnd::OnSettingChange(unsigned int,char const *) 4909 void CRecordset::OnSetUpdateOptions(void *) 4910 unsigned int CFileDialog::OnShareViolation(char const *) 4911 void CDocObjectServerItem::OnShow() 4912 void COleServerItem::OnShow() 4913 long CReBar::OnShowBand(unsigned int,long) 4914 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 4915 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 4916 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 4917 void COleServerDoc::OnShowDocument(int) 4918 void COleClientItem::OnShowItem() 4919 void COleControl::OnShowToolBars() 4920 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 4921 void COleDocument::OnShowViews(int) 4922 void COleLinkingDoc::OnShowViews(int) 4923 void COleControl::OnShowWindow(int,unsigned int) 4924 long COleClientItem::XOleClientSite::OnShowWindow(int) 4925 long COleControlSite::XOleClientSite::OnShowWindow(int) 4926 void CDHtmlDialog::OnSize(unsigned int,int,int) 4927 void CFrameWnd::OnSize(unsigned int,int,int) 4928 void CHtmlView::OnSize(unsigned int,int,int) 4929 void CMDIChildWnd::OnSize(unsigned int,int,int) 4930 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4931 void COleControl::OnSize(unsigned int,int,int) 4932 void COleIPFrameWnd::OnSize(unsigned int,int,int) 4933 void COleResizeBar::OnSize(unsigned int,int,int) 4934 void CPreviewView::OnSize(unsigned int,int,int) 4935 void CScrollView::OnSize(unsigned int,int,int) 4936 void CSplitterWnd::OnSize(unsigned int,int,int) 4937 void CStatusBar::OnSize(unsigned int,int,int) 4938 long CControlBar::OnSizeParent(unsigned int,long) 4939 long CDockBar::OnSizeParent(unsigned int,long) 4940 long COleResizeBar::OnSizeParent(unsigned int,long) 4941 int CEnumArray::OnSkip() 4942 long CSocketWnd::OnSocketDead(unsigned int,long) 4943 long CSocketWnd::OnSocketNotify(unsigned int,long) 4944 int CView::OnSplitCmd(unsigned int) 4945 void CAsyncMonikerFile::OnStartBinding() 4946 void CHtmlView::OnStatusBar(int) 4947 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4948 void CHtmlView::OnStatusTextChange(char const *) 4949 void CAsyncMonikerFile::OnStopBinding(long,char const *) 4950 void CToolBar::OnSysColorChange() 4951 void CWnd::OnSysColorChange() 4952 void CFrameWnd::OnSysCommand(unsigned int,long) 4953 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4954 void CPropertySheet::OnSysCommand(unsigned int,long) 4955 void CSplitterWnd::OnSysCommand(unsigned int,long) 4956 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4957 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4958 void COleControl::OnTextChanged() 4959 void CEditView::OnTextNotFound(char const *) 4960 void CRichEditView::OnTextNotFound(char const *) 4961 void CHtmlView::OnTheaterMode(int) 4962 void CControlBar::OnTimer(unsigned int) 4963 void CHtmlView::OnTitleChange(char const *) 4964 void CHtmlView::OnToolBar(int) 4965 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4966 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4967 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4968 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4969 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4970 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 4971 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 4972 void CFileDialog::OnTypeChange() 4973 void COleControlContainer::OnUIActivate(COleControlSite *) 4974 long COleClientItem::XOleIPSite::OnUIActivate() 4975 long COleControlSite::XOleIPSite::OnUIActivate() 4976 void COleControlContainer::OnUIDeactivate(COleControlSite *) 4977 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 4978 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 4979 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 4980 void CView::OnUpdate(CView *,long,CObject *) 4981 void CRichEditView::OnUpdateBullet(CCmdUI *) 4982 void CRichEditView::OnUpdateCharBold(CCmdUI *) 4983 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 4984 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 4985 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 4986 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4987 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4988 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 4989 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4990 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4991 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4992 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4993 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4994 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4995 int COleServerDoc::OnUpdateDocument() 4996 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 4997 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 4998 void CHtmlView::OnUpdateEditCut(CCmdUI *) 4999 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 5000 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 5001 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 5002 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 5003 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 5004 void CEditView::OnUpdateEditUndo(CCmdUI *) 5005 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5006 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5007 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5008 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5009 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5010 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5011 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5012 void CFrameWnd::OnUpdateFrameTitle(int) 5013 void CMDIChildWnd::OnUpdateFrameTitle(int) 5014 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5015 int COleClientItem::OnUpdateFrameTitle() 5016 int COleFrameHook::OnUpdateFrameTitle() 5017 void COleServerItem::OnUpdateItems() 5018 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5019 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5020 void CEditView::OnUpdateNeedClip(CCmdUI *) 5021 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5022 void CEditView::OnUpdateNeedFind(CCmdUI *) 5023 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5024 void CEditView::OnUpdateNeedSel(CCmdUI *) 5025 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5026 void CEditView::OnUpdateNeedText(CCmdUI *) 5027 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5028 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5029 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5030 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5031 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5032 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5033 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5034 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5035 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5036 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5037 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5038 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5039 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5040 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 5041 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5042 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 5043 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5044 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 5045 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5046 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 5047 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5048 void CView::OnUpdateSplitCmd(CCmdUI *) 5049 long CHtmlView::OnUpdateUI() 5050 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5051 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5052 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5053 void CHtmlView::OnVisible(int) 5054 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5055 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5056 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5057 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5058 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5059 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5060 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5061 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5062 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5063 void CMDIFrameWnd::OnWindowNew() 5064 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5065 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5066 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5067 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5068 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5069 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5070 long CPropertyPage::OnWizardBack() 5071 int CPropertyPage::OnWizardFinish() 5072 long CPropertyPage::OnWizardNext() 5073 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5074 void CPreviewView::OnZoomIn() 5075 void CPreviewView::OnZoomOut() 5076 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5077 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5078 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5079 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5080 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 5081 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 5082 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 5083 int CAsyncMonikerFile::Open(char const *,CFileException *) 5084 int CDatabase::Open(char const *,int,int,char const *,int) 5085 int CDataPathProperty::Open(CFileException *) 5086 int CDataPathProperty::Open(COleControl *,CFileException *) 5087 int CDataPathProperty::Open(char const *,CFileException *) 5088 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 5089 int CFile::Open(char const *,unsigned int,CFileException *) 5090 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 5091 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5092 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5093 int CMonikerFile::Open(IMoniker *,CFileException *) 5094 int CMonikerFile::Open(char const *,CFileException *) 5095 int CRecordset::Open(unsigned int,char const *,unsigned long) 5096 int CSocketFile::Open(char const *,unsigned int,CFileException *) 5097 int CStdioFile::Open(char const *,unsigned int,CFileException *) 5098 long CDocObjectServer::XOleDocumentView::Open() 5099 CDocument * CDocManager::OpenDocumentFile(char const *) 5100 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 5101 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 5102 CDocument * CWinApp::OpenDocumentFile(char const *) 5103 int CDatabase::OpenEx(char const *,unsigned long) 5104 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 5105 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 5106 long COleUILinkInfo::OpenLinkSource(unsigned long) 5107 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5108 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5109 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 5110 int CHtmlEditDoc::OpenURL(char const *) 5111 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 5112 int CFileException::OsErrorToException(long) 5113 void CDumpContext::OutputString(char const *) 5114 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5115 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5116 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5117 int CWnd::PaintWindowlessControls(CDC *) 5118 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5119 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5120 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 5121 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5122 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5123 void CCommandLineInfo::ParseLast(int) 5124 void CCommandLineInfo::ParseParam(char const *,int,int) 5125 void CCommandLineInfo::ParseParamFlag(char const *) 5126 void CCommandLineInfo::ParseParamNotFlag(char const *) 5127 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5128 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 5129 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 5130 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 5131 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 5132 int CDC::PlayMetaFile(HMETAFILE__ *) 5133 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 5134 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 5135 int CDC::PolyBezierTo(tagPOINT const *,int) 5136 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5137 int CDC::PolylineTo(tagPOINT const *,int) 5138 void CPreviewView::PositionPage(unsigned int) 5139 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5140 int CMonikerFile::PostBindToStream(CFileException *) 5141 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5142 void CDialog::PostModal() 5143 void CPrintDialogEx::PostModal() 5144 void COleControl::PostModalDialog(HWND__ *) 5145 void CControlBar::PostNcDestroy() 5146 void CControlFrameWnd::PostNcDestroy() 5147 void CFindReplaceDialog::PostNcDestroy() 5148 void CFrameWnd::PostNcDestroy() 5149 void COleCntrFrameWnd::PostNcDestroy() 5150 void CReflectorWnd::PostNcDestroy() 5151 void CView::PostNcDestroy() 5152 void CWnd::PostNcDestroy() 5153 void ATL::CSimpleStringT::Preallocate(int) 5154 void ATL::CSimpleStringT::Preallocate(int) 5155 void CRecordset::PreBindFields() 5156 void CDocument::PreCloseFrame(CFrameWnd *) 5157 void COleDocument::PreCloseFrame(CFrameWnd *) 5158 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5159 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5160 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5161 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 5162 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5163 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 5164 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 5165 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5166 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 5167 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 5168 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 5169 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5170 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5171 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 5172 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 5173 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 5174 int CView::PreCreateWindow(tagCREATESTRUCTA &) 5175 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 5176 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5177 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5178 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 5179 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 5180 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 5181 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 5182 void CDialog::PreInitDialog() 5183 void COleChangeSourceDialog::PreInitDialog() 5184 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5185 HWND__ * CDialog::PreModal() 5186 HWND__ * CPrintDialogEx::PreModal() 5187 void COleControl::PreModalDialog(HWND__ *) 5188 void CRecordset::PrepareAndExecute() 5189 HWND__ * CDataExchange::PrepareCtrl(int) 5190 HWND__ * CDataExchange::PrepareEditCtrl(int) 5191 void CWnd::PrepareForHelp() 5192 COleControlSite * CDataExchange::PrepareOleCtrl(int) 5193 void CRecordset::PrepareUpdateHstmt() 5194 private: wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 5195 private: char * ATL::CSimpleStringT::PrepareWrite(int) 5196 private: void ATL::CSimpleStringT::PrepareWrite2(int) 5197 private: void ATL::CSimpleStringT::PrepareWrite2(int) 5198 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 5199 void CDragListBox::PreSubclassWindow() 5200 void CWnd::PreSubclassWindow() 5201 int CWnd::PreTranslateInput(tagMSG *) 5202 int CControlBar::PreTranslateMessage(tagMSG *) 5203 int CDialog::PreTranslateMessage(tagMSG *) 5204 int CFormView::PreTranslateMessage(tagMSG *) 5205 int CFrameWnd::PreTranslateMessage(tagMSG *) 5206 int CHtmlView::PreTranslateMessage(tagMSG *) 5207 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5208 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5209 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5210 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5211 int CPropertyPage::PreTranslateMessage(tagMSG *) 5212 int CPropertySheet::PreTranslateMessage(tagMSG *) 5213 int CWinThread::PreTranslateMessage(tagMSG *) 5214 int CWnd::PreTranslateMessage(tagMSG *) 5215 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5216 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5217 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5218 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5219 long CRichEditView::PrintPage(CDC *,long,long) 5220 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5221 long COleException::Process(CException const *) 5222 int CSocket::ProcessAuxQueue() 5223 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5224 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5225 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5226 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5227 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5228 void COleSafeArray::PtrOfIndex(long *,void * *) 5229 int CMetaFileDC::PtVisible(int,int)const 5230 int CWinThread::PumpMessage() 5231 int CSocket::PumpMessages(unsigned int) 5232 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 5233 long CWnd::put_accName(tagVARIANT,wchar_t *) 5234 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5235 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5236 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5237 void COleSafeArray::PutElement(long *,void *) 5238 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 5239 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 5240 int PX_Blob(CPropExchange *,char const *,void * &,void *) 5241 int PX_Bool(CPropExchange *,char const *,int &) 5242 int PX_Bool(CPropExchange *,char const *,int &,int) 5243 int PX_Color(CPropExchange *,char const *,unsigned long &) 5244 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 5245 int PX_Currency(CPropExchange *,char const *,union tagCY &) 5246 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 5247 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 5248 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 5249 int PX_Double(CPropExchange *,char const *,double &) 5250 int PX_Double(CPropExchange *,char const *,double &,double) 5251 int PX_Float(CPropExchange *,char const *,float &) 5252 int PX_Float(CPropExchange *,char const *,float &,float) 5253 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5254 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 5255 int PX_Long(CPropExchange *,char const *,long &) 5256 int PX_Long(CPropExchange *,char const *,long &,long) 5257 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 5258 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 5259 int PX_Short(CPropExchange *,char const *,short &) 5260 int PX_Short(CPropExchange *,char const *,short &,short) 5261 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 5262 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 5263 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5264 int PX_ULong(CPropExchange *,char const *,unsigned long &) 5265 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 5266 int PX_UShort(CPropExchange *,char const *,unsigned short &) 5267 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 5268 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5269 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5270 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5271 IUnknown * CCmdTarget::QueryAggregates(void const *) 5272 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5273 long COleDropSource::QueryContinueDrag(int,unsigned long) 5274 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5275 void * COleControl::QueryDefHandler(_GUID const &) 5276 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5277 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5278 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5279 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5280 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5281 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5282 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5283 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5284 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5285 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5286 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5287 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5288 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5289 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5290 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5291 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5292 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5293 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5294 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5295 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5296 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5297 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5298 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5299 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5300 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 5301 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5302 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5303 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 5304 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5305 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5306 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 5307 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5308 long CPropertyPage::QuerySiblings(unsigned int,long) 5309 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5310 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5311 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5312 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5313 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5314 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 5315 int COleControlSite::QuickActivate() 5316 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5317 int COleClientItem::ReactivateAndUndo() 5318 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5319 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5320 unsigned int CArchive::Read(void *,unsigned int) 5321 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5322 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5323 unsigned int CFile::Read(void *,unsigned int) 5324 int CImageList::Read(CArchive *) 5325 unsigned int CInternetFile::Read(void *,unsigned int) 5326 unsigned int CMemFile::Read(void *,unsigned int) 5327 unsigned int COleStreamFile::Read(void *,unsigned int) 5328 unsigned int CSocketFile::Read(void *,unsigned int) 5329 unsigned int CStdioFile::Read(void *,unsigned int) 5330 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5331 unsigned long CArchive::ReadCount() 5332 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5333 int CProperty::ReadFromStream(IStream *) 5334 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5335 int CPropertySet::ReadFromStream(IStream *) 5336 void COleClientItem::ReadItem(CArchive &) 5337 void COleClientItem::ReadItemCompound(CArchive &) 5338 void COleClientItem::ReadItemFlat(CArchive &) 5339 void CRecentFileList::ReadList() 5340 int CPropertySection::ReadNameDictFromStream(IStream *) 5341 CObject * CArchive::ReadObject(CRuntimeconst *) 5342 int CArchive::ReadString(ATL::CStringT > > &) 5343 char * CArchive::ReadString(char *,unsigned int) 5344 int CInternetFile::ReadString(ATL::CStringT > > &) 5345 char * CInternetFile::ReadString(char *,unsigned int) 5346 int CStdioFile::ReadString(ATL::CStringT > > &) 5347 char * CStdioFile::ReadString(char *,unsigned int) 5348 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5349 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5350 private: void ATL::CSimpleStringT::Reallocate(int) 5351 private: void ATL::CSimpleStringT::Reallocate(int) 5352 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5353 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5354 void CRecordset::RebindParams(void *) 5355 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5356 void CFrameWnd::RecalcLayout(int) 5357 void CMiniDockFrameWnd::RecalcLayout(int) 5358 void COleCntrFrameWnd::RecalcLayout(int) 5359 void COleDocIPFrameWnd::RecalcLayout(int) 5360 void COleIPFrameWnd::RecalcLayout(int) 5361 void CSplitterWnd::RecalcLayout() 5362 int CAsyncSocket::Receive(void *,int,int) 5363 int CSocket::Receive(void *,int,int) 5364 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5365 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5366 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5367 void COleControl::RecreateControlWindow() 5368 CRect const CFrameWnd::rectDefault 5369 int CMetaFileDC::RectVisible(tagRECT const *)const 5370 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5371 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5372 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5373 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5374 int CWnd::ReflectLastMsg(HWND__ *,long *) 5375 void COleControl::Refresh() 5376 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5377 int COleDropTarget::Register(CWnd *) 5378 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 5379 int COleMessageFilter::Register() 5380 int COleObjectFactory::Register() 5381 int COleTemplateServer::Register() 5382 int CWinApp::Register() 5383 int COleObjectFactory::RegisterAll() 5384 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 5385 void CDocManager::RegisterShellFileTypes(int) 5386 void CWinApp::RegisterShellFileTypes(int) 5387 unsigned long CArchiveStream::Release() 5388 unsigned long CBlobProperty::Release() 5389 unsigned long CBrowserControlSite::Release() 5390 unsigned long CDHtmlControlSink::Release() 5391 unsigned long CDHtmlElementEventSink::Release() 5392 unsigned long CDHtmlEventSink::Release() 5393 unsigned long CInnerUnknown::Release() 5394 void COleClientItem::Release(enum tagOLECLOSE) 5395 unsigned long COleConnPtContainer::Release() 5396 void COleDataObject::Release() 5397 unsigned long COleDispatchImpl::Release() 5398 void COleDocObjectItem::Release(enum tagOLECLOSE) 5399 unsigned long COleUILinkInfo::Release() 5400 unsigned long CPrintDialogEx::Release() 5401 void CDC::ReleaseAttribDC() 5402 void ATL::CSimpleStringT::ReleaseBuffer(int) 5403 void ATL::CSimpleStringT::ReleaseBuffer(int) 5404 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5405 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5406 void COleControl::ReleaseCaches() 5407 int COleControl::ReleaseCapture() 5408 int COleControl::ReleaseDC(CDC *) 5409 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5410 void COleDispatchDriver::ReleaseDispatch() 5411 void CDocObjectServer::ReleaseDocSite() 5412 void CDocument::ReleaseFile(CFile *,int) 5413 void CFontHolder::ReleaseFont() 5414 void CDC::ReleaseOutputDC() 5415 void CMetaFileDC::ReleaseOutputDC() 5416 void CPreviewDC::ReleaseOutputDC() 5417 int COleClientItem::Reload() 5418 int ATL::CStringT > >::Remove(wchar_t) 5419 int ATL::CStringT > >::Remove(char) 5420 void CFile::Remove(char const *) 5421 int CFtpConnection::Remove(char const *) 5422 void CPropertySection::Remove(unsigned long) 5423 void CPropertySet::Remove(_GUID) 5424 void CPropertySet::Remove(_GUID,unsigned long) 5425 void CRecentFileList::Remove(int) 5426 int CSimpleList::Remove(void *) 5427 void CMapPtrToPtr::RemoveAll() 5428 void CMapPtrToWord::RemoveAll() 5429 void CMapStringToOb::RemoveAll() 5430 void CMapStringToPtr::RemoveAll() 5431 void CMapStringToString::RemoveAll() 5432 void CMapWordToOb::RemoveAll() 5433 void CMapWordToPtr::RemoveAll() 5434 void CObList::RemoveAll() 5435 void CPropertySection::RemoveAll() 5436 void CPropertySet::RemoveAll() 5437 void CPtrList::RemoveAll() 5438 void CStringList::RemoveAll() 5439 void CTypeLibCacheMap::RemoveAll(void *) 5440 void CByteArray::RemoveAt(int,int) 5441 void CDWordArray::RemoveAt(int,int) 5442 void CObArray::RemoveAt(int,int) 5443 void CObList::RemoveAt(__POSITION *) 5444 void CPtrArray::RemoveAt(int,int) 5445 void CPtrList::RemoveAt(__POSITION *) 5446 void CStringArray::RemoveAt(int,int) 5447 void CStringList::RemoveAt(__POSITION *) 5448 void CUIntArray::RemoveAt(int,int) 5449 void CWordArray::RemoveAt(int,int) 5450 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5451 void CFrameWnd::RemoveControlBar(CControlBar *) 5452 int CFtpConnection::RemoveDirectoryA(char const *) 5453 void CDocTemplate::RemoveDocument(CDocument *) 5454 void CMultiDocTemplate::RemoveDocument(CDocument *) 5455 void CSingleDocTemplate::RemoveDocument(CDocument *) 5456 void COleControl::RemoveFrameLevelUI() 5457 void CFrameWnd::RemoveFrameWnd() 5458 CObject * CObList::RemoveHead() 5459 void * CPtrList::RemoveHead() 5460 ATL::CStringT > > CStringList::RemoveHead() 5461 void CListCtrl::RemoveImageList(int) 5462 void CListView::RemoveImageList(int) 5463 void CTreeCtrl::RemoveImageList(int) 5464 void CTreeView::RemoveImageList(int) 5465 void COleDocument::RemoveItem(CDocItem *) 5466 int CMapPtrToPtr::RemoveKey(void *) 5467 int CMapPtrToWord::RemoveKey(void *) 5468 int CMapStringToOb::RemoveKey(char const *) 5469 int CMapStringToPtr::RemoveKey(char const *) 5470 int CMapStringToString::RemoveKey(char const *) 5471 int CMapWordToOb::RemoveKey(unsigned short) 5472 int CMapWordToPtr::RemoveKey(unsigned short) 5473 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5474 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5475 void CPropertySheet::RemovePage(int) 5476 void CPropertySheet::RemovePage(CPropertyPage *) 5477 void CDockBar::RemovePlaceHolder(CControlBar *) 5478 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5479 void CDataBoundProperty::RemoveSource() 5480 CObject * CObList::RemoveTail() 5481 void * CPtrList::RemoveTail() 5482 ATL::CStringT > > CStringList::RemoveTail() 5483 void CDocument::RemoveView(CView *) 5484 void CFile::Rename(char const *,char const *) 5485 int CFtpConnection::Rename(char const *,char const *) 5486 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5487 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5488 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 5489 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 5490 int ATL::CStringT > >::Replace(char,char) 5491 int ATL::CStringT > >::Replace(char const *,char const *) 5492 void CDatabase::ReplaceBrackets(char *) 5493 int CException::ReportError(unsigned int,unsigned int) 5494 int COleClientItem::ReportError(long)const 5495 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5496 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5497 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5498 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5499 int CRecordset::Requery() 5500 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5501 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5502 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5503 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5504 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5505 void COleServerDoc::RequestPositionChange(tagRECT const *) 5506 long COleControlSite::XOleIPSite::RequestUIActivate() 5507 long CEnumArray::XEnumVOID::Reset() 5508 void CRecordset::ResetCursor() 5509 void CCachedDataPathProperty::ResetData() 5510 void CDataPathProperty::ResetData() 5511 void COleControl::ResetStockProps() 5512 void CControlBar::ResetTimer(unsigned int,unsigned int) 5513 void COleControl::ResetVersion(unsigned long) 5514 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5515 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5516 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5517 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5518 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5519 void COleControl::ResizeFrameWindow(int,int) 5520 void COleSafeArray::ResizeOneDim(unsigned long) 5521 void COleControl::ResizeOpenControl(int,int) 5522 void CScrollView::ResizeParentToFit(int) 5523 int CDC::RestoreDC(int) 5524 int CPreviewDC::RestoreDC(int) 5525 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 5526 void CCmdTarget::RestoreWaitCursor() 5527 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5528 int ATL::CStringT > >::ReverseFind(wchar_t)const 5529 int ATL::CStringT > >::ReverseFind(char)const 5530 long CArchiveStream::Revert() 5531 void COleDropTarget::Revoke() 5532 void COleLinkingDoc::Revoke() 5533 void COleMessageFilter::Revoke() 5534 void COleObjectFactory::Revoke() 5535 void COleObjectFactory::RevokeAll() 5536 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 5537 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 5538 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 5539 void RFX_Bool(CFieldExchange *,char const *,int &) 5540 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 5541 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 5542 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 5543 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 5544 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 5545 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 5546 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 5547 void RFX_Double(CFieldExchange *,char const *,double &) 5548 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 5549 void RFX_Int(CFieldExchange *,char const *,int &) 5550 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 5551 void RFX_Long(CFieldExchange *,char const *,long &) 5552 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 5553 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 5554 void RFX_Single(CFieldExchange *,char const *,float &) 5555 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 5556 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5557 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5558 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 5559 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 5560 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 5561 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 5562 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5563 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5564 int CDatabase::Rollback() 5565 void COleClientItem::Run() 5566 int CWinApp::Run() 5567 int CWinThread::Run() 5568 int CWinApp::RunAutomated() 5569 int CWinApp::RunEmbedded() 5570 int CWnd::RunModalLoop(unsigned long) 5571 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5572 int CEditView::SameAsSelected(char const *,int) 5573 int CRichEditView::SameAsSelected(char const *,int,int) 5574 long CBlobProperty::Save(IStream *,int) 5575 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 5576 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5577 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5578 long COleControl::XPersistStorage::Save(IStorage *,int) 5579 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5580 long COleControl::XPersistStreamInit::Save(IStream *,int) 5581 int CDocManager::SaveAllModified() 5582 int CDocTemplate::SaveAllModified() 5583 int CWinApp::SaveAllModified() 5584 void CFrameWnd::SaveBarState(char const *)const 5585 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 5586 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5587 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5588 int CDC::SaveDC() 5589 int CPreviewDC::SaveDC() 5590 void COleServerDoc::SaveEmbedding() 5591 int CFormView::SaveFocusControl() 5592 int CDocument::SaveModified() 5593 int COleDocument::SaveModified() 5594 int COleServerDoc::SaveModified() 5595 int COleServerDoc::SaveModifiedPrompt() 5596 long COleClientItem::XOleClientSite::SaveObject() 5597 long COleControlSite::XOleClientSite::SaveObject() 5598 int CControlBarInfo::SaveState(char const *,int) 5599 void CDockState::SaveState(char const *) 5600 long COleControl::SaveState(IStream *) 5601 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 5602 void CWinApp::SaveStdProfileSettings() 5603 void COleDocument::SaveToStorage(CObject *) 5604 void COleLinkingDoc::SaveToStorage(CObject *) 5605 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5606 void CDockState::ScalePoint(CPoint &) 5607 void CDockState::ScaleRectPos(CRect &) 5608 CSize CDC::ScaleViewportExt(int,int,int,int) 5609 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5610 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5611 CSize CDC::ScaleWindowExt(int,int,int,int) 5612 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5613 void CWnd::ScreenToClient(tagRECT *)const 5614 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5615 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5616 void COleControlContainer::ScrollChildren(int,int) 5617 int COleServerDoc::ScrollContainerBy(CSize) 5618 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 5619 void CScrollView::ScrollToDevicePosition(tagPOINT) 5620 void CScrollView::ScrollToPosition(tagPOINT) 5621 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5622 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5623 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5624 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5625 unsigned __int64 CFile::Seek(__int64,unsigned int) 5626 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 5627 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 5628 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 5629 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 5630 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 5631 CFont * CFontHolder::Select(CDC *,long,long) 5632 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 5633 int CDC::SelectClipPath(int) 5634 int CDC::SelectClipRgn(CRgn *) 5635 int CDC::SelectClipRgn(CRgn *,int) 5636 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5637 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5638 long CPrintDialogEx::SelectionChange() 5639 int CDC::SelectObject(CRgn *) 5640 CBrush * CDC::SelectObject(CBrush *) 5641 CPen * CDC::SelectObject(CPen *) 5642 CFont * CDC::SelectObject(CFont *) 5643 CFont * CPreviewDC::SelectObject(CFont *) 5644 CPalette * CDC::SelectPalette(CPalette *,int) 5645 void CWinApp::SelectPrinter(void *,void *,int) 5646 CFont * COleControl::SelectStockFont(CDC *) 5647 CGdiObject * CDC::SelectStockObject(int) 5648 CGdiObject * CPreviewDC::SelectStockObject(int) 5649 int CAsyncSocket::Send(void const *,int,int) 5650 int CSocket::Send(void const *,int,int) 5651 void COleControl::SendAdvise(unsigned int) 5652 int CWnd::SendChildNotifyLastMsg(long *) 5653 int CSocket::SendChunk(void const *,int,int) 5654 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5655 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5656 void CDocument::SendInitialUpdate() 5657 void CRecordset::SendLongBinaryData(void *) 5658 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5659 void COleControlSite::SendMnemonic(tagMSG *) 5660 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 5661 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 5662 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 5663 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 5664 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 5665 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5666 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5667 void CByteArray::Serialize(CArchive &) 5668 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5669 void CDocItem::Serialize(CArchive &) 5670 void CDockState::Serialize(CArchive &) 5671 void CDWordArray::Serialize(CArchive &) 5672 void CEditView::Serialize(CArchive &) 5673 void CMapStringToOb::Serialize(CArchive &) 5674 void CMapStringToString::Serialize(CArchive &) 5675 void CMapWordToOb::Serialize(CArchive &) 5676 void CObArray::Serialize(CArchive &) 5677 void CObList::Serialize(CArchive &) 5678 void COleClientItem::Serialize(CArchive &) 5679 void COleControl::Serialize(CArchive &) 5680 void COleDocument::Serialize(CArchive &) 5681 void CRichEditDoc::Serialize(CArchive &) 5682 void CRichEditView::Serialize(CArchive &) 5683 void CStringArray::Serialize(CArchive &) 5684 void CStringList::Serialize(CArchive &) 5685 void CWordArray::Serialize(CArchive &) 5686 CArchive & ATL::CTime::Serialize64(CArchive &) 5687 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 5688 void CArchive::SerializeClass(CRuntimeconst *) 5689 void COleControl::SerializeExtent(CArchive &) 5690 void CEditView::SerializeRaw(CArchive &) 5691 void COleControl::SerializeStockProps(CArchive &) 5692 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5693 int CProperty::Set(unsigned long,void * const,unsigned long) 5694 int CProperty::Set(void * const) 5695 int CProperty::Set(void * const,unsigned long) 5696 int CPropertySection::Set(unsigned long,void *) 5697 int CPropertySection::Set(unsigned long,void *,unsigned long) 5698 int CPropertySet::Set(_GUID,unsigned long,void *) 5699 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5700 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5701 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5702 int CPropertySheet::SetActivePage(int) 5703 int CPropertySheet::SetActivePage(CPropertyPage *) 5704 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5705 void CFrameWnd::SetActiveView(CView *,int) 5706 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5707 void COleControl::SetAppearance(short) 5708 int CDC::SetArcDirection(int) 5709 void ATL::CSimpleStringT::SetAt(int,wchar_t) 5710 void ATL::CSimpleStringT::SetAt(int,char) 5711 void CByteArray::SetAtGrow(int,unsigned char) 5712 void CDWordArray::SetAtGrow(int,unsigned long) 5713 void CObArray::SetAtGrow(int,CObject *) 5714 void CPtrArray::SetAtGrow(int,void *) 5715 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 5716 void CStringArray::SetAtGrow(int,char const *) 5717 void CUIntArray::SetAtGrow(int,unsigned int) 5718 void CWordArray::SetAtGrow(int,unsigned short) 5719 void CDC::SetAttribDC(HDC__ *) 5720 void CMetaFileDC::SetAttribDC(HDC__ *) 5721 void CPreviewDC::SetAttribDC(HDC__ *) 5722 void COleControl::SetBackColor(unsigned long) 5723 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5724 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5725 void CControlBar::SetBarStyle(unsigned long) 5726 int CToolBar::SetBitmap(HBITMAP__ *) 5727 unsigned long CDC::SetBkColor(unsigned long) 5728 unsigned long CPreviewDC::SetBkColor(unsigned long) 5729 int CListCtrl::SetBkImage(char *,int,int,int) 5730 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 5731 int CDC::SetBkMode(int) 5732 void CRecordset::SetBookmark(CDBVariant const &) 5733 void CControlBar::SetBorders(int,int,int,int) 5734 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5735 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5736 void COleControl::SetBorderStyle(short) 5737 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5738 int CToolBar::SetButtons(unsigned int const *,int) 5739 void CToolBar::SetButtonStyle(int,unsigned int) 5740 int CToolBar::SetButtonText(int,char const *) 5741 CWnd * COleControl::SetCapture() 5742 long COleControlSite::XOleIPSite::SetCapture(int) 5743 void CRichEditView::SetCharFormat(CHARFORMAT2A) 5744 void CCheckListBox::SetCheck(int,int) 5745 void CCmdUI::SetCheck(int) 5746 int CListCtrl::SetCheck(int,int) 5747 void COleCmdUI::SetCheck(int) 5748 void CStatusCmdUI::SetCheck(int) 5749 void CTestCmdUI::SetCheck(int) 5750 void CToolCmdUI::SetCheck(int) 5751 int CTreeCtrl::SetCheck(_TREEITEM *,int) 5752 void CCheckListBox::SetCheckStyle(unsigned int) 5753 void CPropertySet::SetClassID(_GUID) 5754 void CDataBoundProperty::SetClientSite(COleControlSite *) 5755 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5756 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5757 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5758 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5759 void COleDataSource::SetClipboard() 5760 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5761 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 5762 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5763 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5764 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5765 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5766 void CSplitterWnd::SetColumnInfo(int,int,int) 5767 int CListCtrl::SetColumnOrderArray(int,int *) 5768 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5769 void CDocTemplate::SetContainerInfo(unsigned int) 5770 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5771 void CReflectorWnd::SetControl(COleControl *) 5772 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 5773 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 5774 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 5775 int COleControl::SetControlSize(int,int) 5776 int COlePropertyPage::SetControlStatus(unsigned int,int) 5777 void CFileDialog::SetControlText(int,char const *) 5778 int CInternetSession::SetCookie(char const *,char const *,char const *) 5779 void COleCurrency::SetCurrency(long,long) 5780 void CColorDialog::SetCurrentColor(unsigned long) 5781 int CFtpConnection::SetCurrentDirectoryA(char const *) 5782 void CWinApp::SetCurrentHandles() 5783 void CPreviewView::SetCurrentPage(unsigned int,int) 5784 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 5785 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 5786 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5787 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5788 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5789 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5790 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5791 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5792 int CMonthCalCtrl::SetDayState(int,unsigned long *) 5793 void COccManager::SetDefaultButton(CWnd *,int) 5794 void COleControlSite::SetDefaultButton(int) 5795 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 5796 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 5797 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5798 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5799 void CFileDialog::SetDefExt(char const *) 5800 void COlePropertyPage::SetDialogResource(void *) 5801 void CRecordset::SetDirtyFieldStatus(unsigned long) 5802 int COleControlSite::SetDlgCtrlID(int) 5803 int CWnd::SetDlgCtrlID(int) 5804 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5805 void CWnd::SetDlgItemInt(int,unsigned int,int) 5806 void COleControlContainer::SetDlgItemTextA(int,char const *) 5807 void CWnd::SetDlgItemTextA(int,char const *) 5808 void CFrameWnd::SetDockState(CDockState const &) 5809 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5810 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5811 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5812 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5813 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 5814 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 5815 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 5816 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 5817 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 5818 void COleControl::SetEnabled(int) 5819 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5820 int COleControlSite::SetExtent() 5821 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5822 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5823 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5824 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5825 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 5826 void CRecordset::SetFieldDirty(void *,int) 5827 void CRecordset::SetFieldNull(void *,int) 5828 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5829 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 5830 CWnd * COleControl::SetFocus() 5831 CWnd * COleControlSite::SetFocus(tagMSG *) 5832 CWnd * COleControlSite::SetFocus() 5833 CWnd * CWnd::SetFocus() 5834 long COleControlSite::XOleIPSite::SetFocus(int) 5835 void CDHtmlDialog::SetFocusToElement(char const *) 5836 int CDialogTemplate::SetFont(char const *,unsigned short) 5837 void CFontHolder::SetFont(IFont *) 5838 void COleControl::SetFont(IFontDisp *) 5839 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 5840 void COleControl::SetForeColor(unsigned long) 5841 void CPropertySection::SetFormatID(_GUID) 5842 void CPropertySet::SetFormatVersion(unsigned short) 5843 void CSharedFile::SetHandle(void *,int) 5844 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 5845 void CToolBar::SetHeight(int) 5846 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5847 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 5848 void CDHtmlDialog::SetHostFlags(unsigned long) 5849 void COleClientItem::SetHostNames(char const *,char const *) 5850 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5851 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5852 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5853 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5854 int COleClientItem::SetIconicMetafile(void *) 5855 CSize CListCtrl::SetIconSpacing(int,int) 5856 CSize CListCtrl::SetIconSpacing(CSize) 5857 void CProperty::SetID(unsigned long) 5858 int CReBarCtrl::SetImageList(CImageList *) 5859 int CStatusBar::SetIndicators(unsigned int const *,int) 5860 void COleControl::SetInitialDataFormats() 5861 long CDocObjectServer::XPrint::SetInitialPageNum(long) 5862 void COleControl::SetInitialSize(int,int) 5863 void CControlBar::SetInPlaceOwner(CWnd *) 5864 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 5865 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 5866 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 5867 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 5868 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 5869 int CListCtrl::SetItemCountEx(int,unsigned long) 5870 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 5871 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 5872 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 5873 int CListCtrl::SetItemText(int,int,char const *) 5874 unsigned long CDC::SetLayout(unsigned long) 5875 private: void ATL::CSimpleStringT::SetLength(int) 5876 private: void ATL::CSimpleStringT::SetLength(int) 5877 void CFile::SetLength(unsigned __int64) 5878 void CInternetFile::SetLength(unsigned __int64) 5879 void CMemFile::SetLength(unsigned __int64) 5880 void COleStreamFile::SetLength(unsigned __int64) 5881 void CSocketFile::SetLength(unsigned __int64) 5882 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 5883 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 5884 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 5885 void CRecordset::SetLockingMode(unsigned int) 5886 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5887 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5888 int CDC::SetMapMode(int) 5889 int CPreviewDC::SetMapMode(int) 5890 unsigned long CDC::SetMapperFlags(unsigned long) 5891 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5892 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5893 void CFrameWnd::SetMessageText(unsigned int) 5894 void CFrameWnd::SetMessageText(char const *) 5895 void CPropertyPage::SetModified(int) 5896 void COleControl::SetModifiedFlag(int) 5897 void COlePropertyPage::SetModifiedFlag(int) 5898 void CRichEditDoc::SetModifiedFlag(int) 5899 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 5900 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 5901 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 5902 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 5903 int CPropertySection::SetName(unsigned long,char const *) 5904 void COleControl::SetNotPermitted() 5905 void CCmdTarget::SetNotSupported() 5906 void COleControl::SetNotSupported() 5907 void CRecordset::SetNullFieldStatus(unsigned long) 5908 void CRecordset::SetNullParamStatus(unsigned long) 5909 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5910 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5911 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 5912 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5913 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5914 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5915 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5916 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 5917 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 5918 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 5919 int CHeaderCtrl::SetOrderArray(int,int *) 5920 void CPropertySet::SetOSVersion(unsigned long) 5921 void CDC::SetOutputDC(HDC__ *) 5922 void CMetaFileDC::SetOutputDC(HDC__ *) 5923 void CPreviewDC::SetOutputDC(HDC__ *) 5924 void CToolBar::SetOwner(CWnd *) 5925 void COlePropertyPage::SetPageName(char const *) 5926 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 5927 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 5928 void CStatusBar::SetPaneStyle(int,unsigned int) 5929 int CStatusBar::SetPaneText(int,char const *,int) 5930 int CRichEditCtrl::SetParaFormat(_paraformat &) 5931 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 5932 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 5933 void CRecordset::SetParamNull(int,int) 5934 void CDocument::SetPathName(char const *,int) 5935 void COleDocument::SetPathName(char const *,int) 5936 void CRichEditDoc::SetPathName(char const *,int) 5937 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 5938 int CDC::SetPolyFillMode(int) 5939 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 5940 int COleClientItem::SetPrintDevice(tagPDA const *) 5941 void CEditView::SetPrinterFont(CFont *) 5942 int CPreviewView::SetPrintView(CView *) 5943 int COlePropertyPage::SetPropCheck(char const *,int) 5944 void COleControlSite::SetProperty(long,unsigned short,...) 5945 void COleDispatchDriver::SetProperty(long,unsigned short,...) 5946 void CWnd::SetProperty(long,unsigned short,...) 5947 void COleControlSite::SetPropertyV(long,unsigned short,char *) 5948 int COlePropertyPage::SetPropIndex(char const *,int) 5949 int COlePropertyPage::SetPropRadio(char const *,int) 5950 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 5951 int COlePropertyPage::SetPropText(char const *,unsigned char &) 5952 int COlePropertyPage::SetPropText(char const *,short &) 5953 int COlePropertyPage::SetPropText(char const *,int &) 5954 int COlePropertyPage::SetPropText(char const *,unsigned int &) 5955 int COlePropertyPage::SetPropText(char const *,long &) 5956 int COlePropertyPage::SetPropText(char const *,unsigned long &) 5957 int COlePropertyPage::SetPropText(char const *,float &) 5958 int COlePropertyPage::SetPropText(char const *,double &) 5959 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 5960 long CWnd::SetProxy(IAccessibleProxy *) 5961 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 5962 void CCmdUI::SetRadio(int) 5963 void CTestCmdUI::SetRadio(int) 5964 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5965 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5966 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5967 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5968 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5969 void CSliderCtrl::SetRange(int,int,int) 5970 int CInternetFile::SetReadBufferSize(unsigned int) 5971 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 5972 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 5973 int COleControl::SetRectInContainer(tagRECT const *) 5974 void CWinApp::SetRegistryKey(unsigned int) 5975 void CWinApp::SetRegistryKey(char const *) 5976 int CDC::SetROP2(int) 5977 void CSplitterWnd::SetRowInfo(int,int,int) 5978 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 5979 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 5980 void CRecordset::SetRowsetSize(unsigned long) 5981 void CPreviewView::SetScaledSize(unsigned int) 5982 void CPreviewDC::SetScaleRatio(int,int) 5983 void CScrollView::SetScaleToFitSize(tagSIZE) 5984 void CDockState::SetScreenSize(CSize &) 5985 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 5986 int CWnd::SetScrollPos(int,int,int) 5987 void CWnd::SetScrollRange(int,int,int,int) 5988 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 5989 void CSplitterWnd::SetScrollStyle(unsigned long) 5990 int CPropertySection::SetSectionName(char const *) 5991 void CRichEditCtrl::SetSel(long,long) 5992 void CSliderCtrl::SetSelection(int,int) 5993 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 5994 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 5995 void CCheckListBox::SetSelectionCheck(int) 5996 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 5997 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 5998 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5999 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 6000 long CPrintDialogEx::SetSite(IUnknown *) 6001 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 6002 void CByteArray::SetSize(int,int) 6003 void CDWordArray::SetSize(int,int) 6004 void CObArray::SetSize(int,int) 6005 void CPtrArray::SetSize(int,int) 6006 void CStringArray::SetSize(int,int) 6007 void CUIntArray::SetSize(int,int) 6008 void CWordArray::SetSize(int,int) 6009 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6010 void CSplitterWnd::SetSplitCursor(int) 6011 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6012 void CRecordset::SetState(int,char const *,unsigned long) 6013 void CFile::SetStatus(char const *,CFileStatus const &) 6014 int CControlBar::SetStatusText(int) 6015 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 6016 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 6017 int CDC::SetStretchBltMode(int) 6018 void ATL::CSimpleStringT::SetString(wchar_t const *) 6019 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 6020 void ATL::CSimpleStringT::SetString(char const *) 6021 void ATL::CSimpleStringT::SetString(char const *,int) 6022 void COleVariant::SetString(char const *,unsigned short) 6023 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6024 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6025 int CDialogTemplate::SetSystemFont(unsigned short) 6026 void CEditView::SetTabStops(int) 6027 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6028 void CFileDialog::SetTemplate(char const *,char const *) 6029 void CCmdUI::SetText(char const *) 6030 void COleCmdUI::SetText(char const *) 6031 void COleControl::SetText(char const *) 6032 void CStatusCmdUI::SetText(char const *) 6033 void CTestCmdUI::SetText(char const *) 6034 void CToolCmdUI::SetText(char const *) 6035 unsigned int CDC::SetTextAlign(unsigned int) 6036 int CDC::SetTextCharacterExtra(int) 6037 unsigned long CDC::SetTextColor(unsigned long) 6038 unsigned long CPreviewDC::SetTextColor(unsigned long) 6039 int CDC::SetTextJustification(int,int) 6040 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 6041 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6042 int CDateTimeCtrl::SetTime(ATL::CTime const *) 6043 void CDocument::SetTitle(char const *) 6044 void CPropertySheet::SetTitle(char const *,unsigned int) 6045 void CRichEditDoc::SetTitle(char const *) 6046 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 6047 void CMonthCalCtrl::SetToday(ATL::CTime const *) 6048 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6049 void CPreviewDC::SetTopLeftOffset(CSize) 6050 void CProperty::SetType(unsigned long) 6051 void CRecordset::SetUpdateMethod() 6052 void CThreadSlotData::SetValue(int,void *) 6053 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6054 CSize CDC::SetViewportExt(int,int) 6055 CSize CMetaFileDC::SetViewportExt(int,int) 6056 CSize CPreviewDC::SetViewportExt(int,int) 6057 CPoint CDC::SetViewportOrg(int,int) 6058 CPoint CMetaFileDC::SetViewportOrg(int,int) 6059 CPoint CPreviewDC::SetViewportOrg(int,int) 6060 CSize CDC::SetWindowExt(int,int) 6061 CSize CPreviewDC::SetWindowExt(int,int) 6062 CPoint CDC::SetWindowOrg(int,int) 6063 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6064 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6065 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6066 void COleControlSite::SetWindowTextA(char const *) 6067 void CWnd::SetWindowTextA(char const *) 6068 int CRichEditCtrl::SetWordCharFormat(_charformat &) 6069 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 6070 int CInternetFile::SetWriteBufferSize(unsigned int) 6071 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6072 long CDocObjectServer::XOleDocumentView::Show(int) 6073 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6074 void CDockBar::ShowAll(int) 6075 long CRichEditCntrItem::ShowContainerUI(int) 6076 long CRichEditView::ShowContainerUI(int) 6077 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6078 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6079 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6080 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6081 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6082 long COleClientItem::XOleClientSite::ShowObject() 6083 long COleControlSite::XOleClientSite::ShowObject() 6084 void CFrameWnd::ShowOwnedWindows(int) 6085 long COleControlSite::XOleControlSite::ShowPropertyFrame() 6086 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6087 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6088 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6089 int COleControlSite::ShowWindow(int) 6090 int CWnd::ShowWindow(int) 6091 tagSIZE const CScrollView::sizeDefault 6092 int CMonthCalCtrl::SizeMinReq(int) 6093 void CBitmapButton::SizeToContent() 6094 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6095 long CEnumArray::XEnumVOID::Skip(unsigned long) 6096 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6097 int CAsyncSocket::Socket(int,long,int,int) 6098 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 6099 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 6100 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 6101 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 6102 int CSplitterWnd::SplitColumn(int) 6103 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6104 int CSplitterWnd::SplitRow(int) 6105 int CDC::StartDocA(char const *) 6106 void CDockContext::StartDrag(CPoint) 6107 void CDockContext::StartResize(int,CPoint) 6108 void CSplitterWnd::StartTracking(int) 6109 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6110 void CSplitterWnd::StopTracking(int) 6111 void CRuntimeClass::Store(CArchive &)const 6112 void CRecordset::StoreFields() 6113 void CRichEditView::Stream(CArchive &,int) 6114 void CDockContext::Stretch(CPoint) 6115 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6116 int ATL::CSimpleStringT::StringLength(char const *) 6117 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6118 int ATL::CSimpleStringT::StringLength(char const *) 6119 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6120 int CWnd::SubclassWindow(HWND__ *) 6121 int COleDocObjectItem::SupportsIPrint() 6122 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6123 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6124 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6125 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6126 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6127 void CRichEditView::TextNotFound(char const *) 6128 int CMetaFileDC::TextOutA(int,int,char const *,int) 6129 int CPreviewDC::TextOutA(int,int,char const *,int) 6130 void CFileException::ThrowErrno(int,char const *) 6131 void COleControl::ThrowError(long,unsigned int,unsigned int) 6132 void COleControl::ThrowError(long,char const *,unsigned int) 6133 void ATL::CSimpleStringT::ThrowMemoryException() 6134 void ATL::CSimpleStringT::ThrowMemoryException() 6135 void CFileException::ThrowOsError(long,char const *) 6136 void CDockContext::ToggleDocking() 6137 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 6138 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 6139 COleVariant CDataSourceControl::ToVariant(int) 6140 int CDockContext::Track() 6141 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6142 void CSplitterWnd::TrackColumnSize(int,int) 6143 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6144 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6145 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 6146 void CSplitterWnd::TrackRowSize(int,int) 6147 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6148 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6149 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6150 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6151 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6152 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6153 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 6154 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6155 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6156 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6157 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6158 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 6159 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6160 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6161 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6162 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6163 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 6164 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 6165 ATL::CStringT > > & ATL::CStringT > >::Trim() 6166 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 6167 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 6168 ATL::CStringT > > & ATL::CStringT > >::Trim() 6169 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 6170 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 6171 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6172 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 6173 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 6174 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6175 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 6176 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 6177 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6178 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 6179 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 6180 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6181 void ATL::CSimpleStringT::Truncate(int) 6182 void ATL::CSimpleStringT::Truncate(int) 6183 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6184 void COccManager::UIActivateControl(CWnd *) 6185 long COleControl::XOleInPlaceObject::UIDeactivate() 6186 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 6187 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6188 void COleSafeArray::UnaccessData() 6189 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 6190 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6191 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6192 long COleControl::XOleObject::Unadvise(unsigned long) 6193 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6194 long COleServerItem::XOleObject::Unadvise(unsigned long) 6195 void CRecordset::UnbindFieldsForUpdate() 6196 long COleControl::XOleCache::Uncache(unsigned long) 6197 long COleControl::XViewObject::Unfreeze(unsigned long) 6198 int CEvent::Unlock() 6199 int CMultiLock::Unlock(long,long *) 6200 int CMultiLock::Unlock() 6201 int CMutex::Unlock() 6202 void COleSafeArray::Unlock() 6203 int CSemaphore::Unlock(long,long *) 6204 int CSingleLock::Unlock(long,long *) 6205 int CSingleLock::Unlock() 6206 void CTypeLibCache::Unlock() 6207 void ATL::CSimpleStringT::UnlockBuffer() 6208 void ATL::CSimpleStringT::UnlockBuffer() 6209 void CEditView::UnlockBuffer()const 6210 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 6211 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 6212 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 6213 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 6214 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 6215 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 6216 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6217 int COleObjectFactory::Unregister() 6218 int COleTemplateServer::Unregister() 6219 int CWinApp::Unregister() 6220 int COleObjectFactory::UnregisterAll() 6221 void CDocManager::UnregisterShellFileTypes() 6222 void CWinApp::UnregisterShellFileTypes() 6223 HWND__ * CWnd::UnsubclassWindow() 6224 int CRecordset::Update() 6225 long CDocObjectServer::XOleObject::Update() 6226 long COleControl::XOleObject::Update() 6227 long COleServerDoc::XOleObject::Update() 6228 long COleServerItem::XOleObject::Update() 6229 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6230 void CStatusBar::UpdateAllPanes(int,int) 6231 void CDocument::UpdateAllViews(CView *,long,CObject *) 6232 void CScrollView::UpdateBars() 6233 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6234 long CDataSourceControl::UpdateControls() 6235 long CDataSourceControl::UpdateCursor() 6236 int CWnd::UpdateData(int) 6237 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6238 void CDocument::UpdateFrameCounts() 6239 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 6240 int CRecordset::UpdateInsertDelete() 6241 void COleClientItem::UpdateItemType() 6242 int COleClientItem::UpdateLink() 6243 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6244 void CRecentFileList::UpdateMenu(CCmdUI *) 6245 void COleDocument::UpdateModifiedFlag() 6246 void CRichEditDoc::UpdateModifiedFlag() 6247 void CRichEditDoc::UpdateObjectCache() 6248 void CWinApp::UpdatePrinterSelection(int) 6249 int COleObjectFactory::UpdateRegistry(int) 6250 void COleObjectFactory::UpdateRegistry(char const *) 6251 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 6252 int COleObjectFactory::UpdateRegistryAll(int) 6253 void CDockContext::UpdateState(int *,int) 6254 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6255 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 6256 long CBrowserControlSite::UpdateUI() 6257 long CDHtmlDialog::UpdateUI() 6258 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 6259 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6260 void COleLinkingDoc::UpdateVisibleLock(int,int) 6261 void CDatabase::VerifyConnect() 6262 unsigned long CRecordset::VerifyCursorSupport() 6263 void CRecordset::VerifyDriverBehavior() 6264 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 6265 int COleObjectFactory::VerifyUserLicense() 6266 int CListBox::VKeyToItem(unsigned int,unsigned int) 6267 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6268 int COleControl::WillAmbientsBeValidDuringLoad() 6269 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6270 long COleControl::WindowProc(unsigned int,unsigned int,long) 6271 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6272 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6273 long CReBar::WindowProc(unsigned int,unsigned int,long) 6274 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6275 long CWnd::WindowProc(unsigned int,unsigned int,long) 6276 void CWinApp::WinHelpA(unsigned long,unsigned int) 6277 void CWnd::WinHelpA(unsigned long,unsigned int) 6278 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 6279 void CWnd::WinHelpInternal(unsigned long,unsigned int) 6280 CWnd const CWnd::wndBottom 6281 CWnd const CWnd::wndNoTopMost 6282 CWnd const CWnd::wndTop 6283 CWnd const CWnd::wndTopMost 6284 void CRichEditView::WrapChanged() 6285 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6286 void CArchive::Write(void const *,unsigned int) 6287 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6288 void CFile::Write(void const *,unsigned int) 6289 void CGopherFile::Write(void const *,unsigned int) 6290 int CImageList::Write(CArchive *) 6291 void CInternetFile::Write(void const *,unsigned int) 6292 void CMemFile::Write(void const *,unsigned int) 6293 void COleStreamFile::Write(void const *,unsigned int) 6294 void CSocketFile::Write(void const *,unsigned int) 6295 void CStdioFile::Write(void const *,unsigned int) 6296 void CArchive::WriteClass(CRuntimeconst *) 6297 void CArchive::WriteCount(unsigned long) 6298 void COleClientItem::WriteItem(CArchive &) 6299 void COleClientItem::WriteItemCompound(CArchive &) 6300 void COleClientItem::WriteItemFlat(CArchive &) 6301 void CRecentFileList::WriteList() 6302 int CPropertySection::WriteNameDictToStream(IStream *) 6303 void CArchive::WriteObject(CObject const *) 6304 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 6305 int CWinApp::WriteProfileInt(char const *,char const *,int) 6306 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 6307 void CArchive::WriteString(char const *) 6308 void CGopherFile::WriteString(char const *) 6309 void CInternetFile::WriteString(char const *) 6310 void CStdioFile::WriteString(char const *) 6311 void CEditView::WriteToArchive(CArchive &) 6312 int CProperty::WriteToStream(IStream *) 6313 int CPropertySection::WriteToStream(IStream *) 6314 int CPropertySet::WriteToStream(IStream *) 6315 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 6316 CDaoException::CDaoException() 6317 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 6318 CDaoIndexInfo::CDaoIndexInfo() 6319 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 6320 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 6321 CDaoRecordView::CDaoRecordView(unsigned int) 6322 CDaoRecordView::CDaoRecordView(char const *) 6323 CDaoRelationInfo::CDaoRelationInfo() 6324 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 6325 CDaoWorkspace::CDaoWorkspace() 6326 CDaoDatabase::~CDaoDatabase() 6327 CDaoException::~CDaoException() 6328 CDaoIndexInfo::~CDaoIndexInfo() 6329 CDaoQueryDef::~CDaoQueryDef() 6330 CDaoRecordset::~CDaoRecordset() 6331 CDaoRecordView::~CDaoRecordView() 6332 CDaoRelationInfo::~CDaoRelationInfo() 6333 CDaoTableDef::~CDaoTableDef() 6334 CDaoWorkspace::~CDaoWorkspace() 6335 void CDaoRecordset::AddNew() 6336 void AfxDaoCheck(long,char const *,char const *,int,int,int) 6337 _DAODBEngine * AfxDaoGetEngine() 6338 void AfxDaoInit() 6339 void AfxDaoTerm() 6340 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 6341 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 6342 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 6343 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6344 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 6345 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 6346 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 6347 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 6348 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6349 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 6350 void AfxThrowDaoException(int,long) 6351 void CDaoRecordset::AllocCache() 6352 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 6353 void CDaoRecordset::AllocDatabase() 6354 void AllocLongBinary(CLongBinary &,unsigned long) 6355 void CDaoQueryDef::Append() 6356 void CDaoTableDef::Append() 6357 void CDaoWorkspace::Append() 6358 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 6359 void CDaoWorkspace::BeginTrans() 6360 void CDaoRecordset::BindFields() 6361 void CDaoRecordset::BindParameters() 6362 void CDaoRecordset::BuildParameterList() 6363 void CDaoRecordset::BuildSelectList() 6364 void CDaoRecordset::BuildSQL() 6365 int CDaoRecordset::CanAppend()const 6366 int CDaoRecordset::CanBookmark() 6367 void CDaoRecordset::CancelUpdate() 6368 int CDaoRecordset::CanRestart() 6369 int CDaoRecordset::CanScroll()const 6370 int CDaoDatabase::CanTransact() 6371 int CDaoRecordset::CanTransact() 6372 int CDaoDatabase::CanUpdate() 6373 int CDaoQueryDef::CanUpdate() 6374 int CDaoRecordset::CanUpdate()const 6375 int CDaoTableDef::CanUpdate() 6376 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 6377 void CDaoRecordset::ClearFieldStatusFlags() 6378 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 6379 void CDaoDatabase::Close() 6380 void CDaoQueryDef::Close() 6381 void CDaoRecordset::Close() 6382 void CDaoTableDef::Close() 6383 void CDaoWorkspace::Close() 6384 void CDaoWorkspace::CommitTrans() 6385 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 6386 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 6387 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 6388 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 6389 void CDaoDatabase::Create(char const *,char const *,int) 6390 void CDaoQueryDef::Create(char const *,char const *) 6391 void CDaoTableDef::Create(char const *,long,char const *,char const *) 6392 void CDaoWorkspace::Create(char const *,char const *,char const *) 6393 void CDaoTableDef::CreateField(CDaoFieldInfo &) 6394 void CDaoTableDef::CreateField(char const *,short,long,long) 6395 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 6396 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 6397 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 6398 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6399 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6400 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6401 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 6402 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6403 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6404 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6405 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 6406 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 6407 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6408 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 6409 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 6410 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 6411 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 6412 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 6413 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 6414 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 6415 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6416 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 6417 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 6418 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 6419 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 6420 void CDaoRecordset::Delete() 6421 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 6422 void CDaoTableDef::DeleteField(int) 6423 void CDaoTableDef::DeleteField(char const *) 6424 void CDaoTableDef::DeleteIndex(int) 6425 void CDaoTableDef::DeleteIndex(char const *) 6426 void CDaoDatabase::DeleteQueryDef(char const *) 6427 void CDaoDatabase::DeleteRelation(char const *) 6428 void CDaoDatabase::DeleteTableDef(char const *) 6429 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 6430 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 6431 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 6432 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 6433 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 6434 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 6435 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 6436 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 6437 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 6438 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 6439 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 6440 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 6441 void CDaoRecordset::Edit() 6442 void CDaoDatabase::Execute(char const *,int) 6443 void CDaoQueryDef::Execute(int) 6444 void CDaoRecordset::FillCache(long *,COleVariant *) 6445 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 6446 void CDaoException::FillErrorInfo() 6447 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 6448 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 6449 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 6450 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 6451 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 6452 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 6453 int CDaoRecordset::Find(long,char const *) 6454 int CDaoRecordset::FindFirst(char const *) 6455 int CDaoRecordset::FindLast(char const *) 6456 int CDaoRecordset::FindNext(char const *) 6457 int CDaoRecordset::FindPrev(char const *) 6458 void CDaoRecordset::Fixup() 6459 void CDaoRecordset::FreeCache() 6460 long CDaoRecordset::GetAbsolutePosition() 6461 long CDaoTableDef::GetAttributes() 6462 COleVariant CDaoRecordset::GetBookmark() 6463 long CDaoRecordset::GetCacheSize() 6464 COleVariant CDaoRecordset::GetCacheStart() 6465 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 6466 ATL::CStringT > > CDaoDatabase::GetConnect() 6467 ATL::CStringT > > CDaoQueryDef::GetConnect() 6468 ATL::CStringT > > CDaoTableDef::GetConnect() 6469 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 6470 void CDaoRecordset::GetDataAndFixupNulls() 6471 short CDaoWorkspace::GetDatabaseCount() 6472 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 6473 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 6474 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 6475 ATL::COleDateTime CDaoRecordset::GetDateCreated() 6476 ATL::COleDateTime CDaoTableDef::GetDateCreated() 6477 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 6478 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 6479 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 6480 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 6481 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 6482 short CDaoRecordset::GetEditMode() 6483 short CDaoException::GetErrorCount() 6484 void CDaoException::GetErrorInfo(int) 6485 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *) 6486 short CDaoQueryDef::GetFieldCount() 6487 short CDaoRecordset::GetFieldCount() 6488 short CDaoTableDef::GetFieldCount() 6489 int CDaoRecordset::GetFieldIndex(void *) 6490 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6491 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6492 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6493 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6494 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6495 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6496 unsigned long CDaoRecordset::GetFieldLength(int) 6497 COleVariant CDaoRecordset::GetFieldValue(int) 6498 COleVariant CDaoRecordset::GetFieldValue(char const *) 6499 void CDaoRecordset::GetFieldValue(int,COleVariant &) 6500 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 6501 short CDaoRecordset::GetIndexCount() 6502 short CDaoTableDef::GetIndexCount() 6503 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6504 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 6505 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6506 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 6507 ATL::CStringT > > CDaoWorkspace::GetIniPath() 6508 int CDaoWorkspace::GetIsolateODBCTrans() 6509 COleVariant CDaoRecordset::GetLastModifiedBookmark() 6510 int CDaoRecordset::GetLockingMode() 6511 short CDaoWorkspace::GetLoginTimeout() 6512 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 6513 ATL::CStringT > > CDaoDatabase::GetName() 6514 ATL::CStringT > > CDaoQueryDef::GetName() 6515 ATL::CStringT > > CDaoRecordset::GetName() 6516 ATL::CStringT > > CDaoTableDef::GetName() 6517 ATL::CStringT > > CDaoWorkspace::GetName() 6518 short CDaoQueryDef::GetODBCTimeout() 6519 short CDaoQueryDef::GetParameterCount() 6520 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 6521 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 6522 COleVariant CDaoQueryDef::GetParamValue(int) 6523 COleVariant CDaoQueryDef::GetParamValue(char const *) 6524 COleVariant CDaoRecordset::GetParamValue(int) 6525 COleVariant CDaoRecordset::GetParamValue(char const *) 6526 float CDaoRecordset::GetPercentPosition() 6527 short CDaoDatabase::GetQueryDefCount() 6528 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 6529 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 6530 short CDaoDatabase::GetQueryTimeout() 6531 long CDaoRecordset::GetRecordCount() 6532 long CDaoTableDef::GetRecordCount() 6533 long CDaoDatabase::GetRecordsAffected() 6534 long CDaoQueryDef::GetRecordsAffected() 6535 short CDaoDatabase::GetRelationCount() 6536 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 6537 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 6538 int CDaoQueryDef::GetReturnsRecords() 6539 CRuntime* CDaoDatabase::GetRuntimeClass()const 6540 CRuntime* CDaoException::GetRuntimeClass()const 6541 CRuntime* CDaoQueryDef::GetRuntimeClass()const 6542 CRuntime* CDaoRecordset::GetRuntimeClass()const 6543 CRuntime* CDaoRecordView::GetRuntimeClass()const 6544 CRuntime* CDaoTableDef::GetRuntimeClass()const 6545 CRuntime* CDaoWorkspace::GetRuntimeClass()const 6546 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 6547 ATL::CStringT > > CDaoQueryDef::GetSQL() 6548 ATL::CStringT > > CDaoRecordset::GetSQL()const 6549 short CDaoDatabase::GetTableDefCount() 6550 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 6551 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 6552 CRuntime* CDaoDatabase::GetThisClass() 6553 CRuntime* CDaoException::GetThisClass() 6554 CRuntime* CDaoQueryDef::GetThisClass() 6555 CRuntime* CDaoRecordset::GetThisClass() 6556 CRuntime* CDaoRecordView::GetThisClass() 6557 CRuntime* CDaoTableDef::GetThisClass() 6558 CRuntime* CDaoWorkspace::GetThisClass() 6559 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 6560 short CDaoQueryDef::GetType() 6561 short CDaoRecordset::GetType() 6562 ATL::CStringT > > CDaoWorkspace::GetUserNameA() 6563 ATL::CStringT > > CDaoRecordset::GetValidationRule() 6564 ATL::CStringT > > CDaoTableDef::GetValidationRule() 6565 ATL::CStringT > > CDaoRecordset::GetValidationText() 6566 ATL::CStringT > > CDaoTableDef::GetValidationText() 6567 ATL::CStringT > > CDaoDatabase::GetVersion() 6568 ATL::CStringT > > CDaoWorkspace::GetVersion() 6569 short CDaoWorkspace::GetWorkspaceCount() 6570 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 6571 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 6572 void CDaoWorkspace::Idle(int) 6573 void CDaoWorkspace::InitDatabasesCollection() 6574 void CDaoException::InitErrorsCollection() 6575 void CDaoQueryDef::InitFieldsCollection() 6576 void CDaoRecordset::InitFieldsCollection() 6577 void CDaoTableDef::InitFieldsCollection() 6578 void CDaoWorkspace::InitializeEngine() 6579 void CDaoRecordset::InitIndexesCollection() 6580 void CDaoTableDef::InitIndexesCollection() 6581 void CDaoQueryDef::InitParametersCollection() 6582 void CDaoDatabase::InitQueryDefsCollection() 6583 void CDaoDatabase::InitRelationsCollection() 6584 void CDaoDatabase::InitTableDefsCollection() 6585 void CDaoDatabase::InitWorkspace() 6586 void CDaoWorkspace::InitWorkspacesCollection() 6587 int CDaoRecordset::IsBOF()const 6588 int CDaoRecordset::IsDeleted()const 6589 int CDaoRecordset::IsEOF()const 6590 int CDaoRecordset::IsFieldDirty(void *) 6591 int CDaoRecordset::IsFieldNull(void *) 6592 int CDaoRecordset::IsFieldNullable(void *) 6593 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 6594 int CDaoRecordset::IsFieldStatusNull(unsigned int) 6595 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 6596 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 6597 int CDaoRecordset::IsMatch() 6598 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6599 int CDaoRecordView::IsOnFirstRecord() 6600 int CDaoRecordView::IsOnLastRecord() 6601 int CDaoFieldExchange::IsValidOperation() 6602 void CDaoRecordset::LoadFields() 6603 void CDaoRecordset::MarkForAddNew() 6604 void CDaoRecordset::MarkForEdit() 6605 void CDaoRecordset::Move(long) 6606 void CDaoRecordset::MoveFirst() 6607 void CDaoRecordset::MoveLast() 6608 void CDaoRecordset::MoveNext() 6609 void CDaoRecordset::MovePrev() 6610 void CDaoRecordView::OnInitialUpdate() 6611 int CDaoRecordView::OnMove(unsigned int) 6612 void CDaoDatabase::Open(char const *,int,int,char const *) 6613 void CDaoQueryDef::Open(char const *) 6614 void CDaoRecordset::Open(int,char const *,int) 6615 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 6616 void CDaoRecordset::Open(CDaoTableDef *,int,int) 6617 void CDaoTableDef::Open(char const *) 6618 void CDaoWorkspace::Open(char const *) 6619 void CDaoTableDef::RefreshLink() 6620 void CDaoWorkspace::RepairDatabase(char const *) 6621 void CDaoRecordset::Requery() 6622 void CDaoWorkspace::Rollback() 6623 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 6624 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 6625 void CDaoRecordset::SetAbsolutePosition(long) 6626 void CDaoTableDef::SetAttributes(long) 6627 void CDaoRecordset::SetBookmark(COleVariant) 6628 void CDaoRecordset::SetCacheSize(long) 6629 void CDaoRecordset::SetCacheStart(COleVariant) 6630 void CDaoQueryDef::SetConnect(char const *) 6631 void CDaoTableDef::SetConnect(char const *) 6632 void CDaoRecordset::SetCurrentIndex(char const *) 6633 void CDaoRecordset::SetCursorAttributes() 6634 void CDaoWorkspace::SetDefaultPassword(char const *) 6635 void CDaoWorkspace::SetDefaultUser(char const *) 6636 void CDaoRecordset::SetDirtyFields() 6637 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6638 void CDaoRecordset::SetFieldDirty(void *,int) 6639 void CDaoRecordset::SetFieldNull(void *,int) 6640 void CDaoRecordset::SetFieldValue(int,char const *) 6641 void CDaoRecordset::SetFieldValue(char const *,char const *) 6642 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6643 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 6644 void CDaoRecordset::SetFieldValueNull(int) 6645 void CDaoRecordset::SetFieldValueNull(char const *) 6646 void CDaoWorkspace::SetIniPath(char const *) 6647 void CDaoWorkspace::SetIsolateODBCTrans(int) 6648 void CDaoRecordset::SetLockingMode(int) 6649 void CDaoWorkspace::SetLoginTimeout(short) 6650 void CDaoQueryDef::SetName(char const *) 6651 void CDaoTableDef::SetName(char const *) 6652 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6653 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6654 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6655 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6656 void CDaoQueryDef::SetODBCTimeout(short) 6657 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6658 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 6659 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6660 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 6661 void CDaoQueryDef::SetParamValueNull(int) 6662 void CDaoQueryDef::SetParamValueNull(char const *) 6663 void CDaoRecordset::SetParamValueNull(int) 6664 void CDaoRecordset::SetParamValueNull(char const *) 6665 void CDaoRecordset::SetPercentPosition(float) 6666 void CDaoDatabase::SetQueryTimeout(short) 6667 void CDaoQueryDef::SetReturnsRecords(int) 6668 void CDaoTableDef::SetSourceTableName(char const *) 6669 void CDaoQueryDef::SetSQL(char const *) 6670 void CDaoTableDef::SetValidationRule(char const *) 6671 void CDaoTableDef::SetValidationText(char const *) 6672 void CDaoRecordset::StoreFields() 6673 void CDaoRecordset::StripBrackets(char const *,char *) 6674 void CDaoDatabase::ThrowDaoException(int) 6675 void CDaoQueryDef::ThrowDaoException(int) 6676 void CDaoRecordset::ThrowDaoException(int) 6677 void CDaoTableDef::ThrowDaoException(int) 6678 void CDaoWorkspace::ThrowDaoException(int) 6679 void ThrowGetRowsDaoException(long) 6680 void CDaoRecordset::Update() 6681 CRuntimeconst CDaoDatabase::classCDaoDatabase 6682 CRuntimeconst CDaoException::classCDaoException 6683 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 6684 CRuntimeconst CDaoRecordset::classCDaoRecordset 6685 CRuntimeconst CDaoRecordView::classCDaoRecordView 6686 CRuntimeconst CDaoTableDef::classCDaoTableDef 6687 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 6688 CRuntimeconst CDatabase::classCDatabase 6689 CRuntimeconst CDBException::classCDBException 6690 CRuntimeconst CLongBinary::classCLongBinary 6691 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6692 CRuntimeconst CRecordset::classCRecordset 6693 CRuntimeconst CRecordView::classCRecordView 6694 AFX_MSGMAP const CDaoRecordView::messageMap 6695 AFX_MSGMAP const COleDBRecordView::messageMap 6696 AFX_MSGMAP const CRecordView::messageMap 6697 _AFX_DAO_STATE * AfxGetDaoState() 6698 _AFX_DAO_STATE::~_AFX_DAO_STATE() 6699 _AFX_DAO_STATE::_AFX_DAO_STATE() ================================================ FILE: Bin/i386/mfc_sym/mfc71d.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 void DumpElements(CDumpContext &,COleVariant const *,int) 258 unsigned int HashKey(tagVARIANT const &) 259 unsigned int HashKey(wchar_t const *) 260 unsigned int HashKey(char const *) 261 unsigned int HashKey(ATL::CComBSTR) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 264 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 265 void SerializeElements(CArchive &,COleVariant *,int) 266 COleCurrency const & COleCurrency::operator/=(long) 267 void * operator new[](unsigned int) 268 void * operator new[](unsigned int,int,char const *,int) 269 void * operator new[](unsigned int,char const *,int) 270 void operator delete[](void *) 271 void operator delete[](void *,int,char const *,int) 272 void operator delete[](void *,char const *,int) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 275 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 277 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 278 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 279 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 280 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 281 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 282 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t,int) 284 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 285 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 287 ATL::CStringT > >::CStringT > >(char,int) 288 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 289 ATL::CStringT > >::CStringT > >(wchar_t const *) 290 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 291 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 292 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >(char const *) 294 ATL::CStringT > >::CStringT > >(char const *,int) 295 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(unsigned char const *) 298 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 299 ATL::CStringT > >::CStringT > >() 300 ATL::CStringT > >::CStringT > >(wchar_t,int) 301 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 302 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 304 ATL::CStringT > >::CStringT > >(char,int) 305 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(wchar_t const *) 307 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 308 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 309 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >(char const *) 311 ATL::CStringT > >::CStringT > >(char const *,int) 312 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 313 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 314 ATL::CStringT > >::CStringT > >(unsigned char const *) 315 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >() 317 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 318 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 319 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 320 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 321 _AFX_OLE_STATE::_AFX_OLE_STATE() 322 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 323 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 324 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 325 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 326 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 327 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 328 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 329 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 330 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 331 CAnimateCtrl::CAnimateCtrl() 332 CArchive::CArchive(CArchive const &) 333 CArchive::CArchive(CFile *,unsigned int,int,void *) 334 CArchiveException::CArchiveException(int,char const *) 335 CArchivePropExchange::CArchivePropExchange(CArchive &) 336 CArchiveStream::CArchiveStream(CArchive *) 337 CAsyncMonikerFile::CAsyncMonikerFile() 338 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 339 CAsyncSocket::CAsyncSocket() 340 CBitmap::CBitmap() 341 CBitmapButton::CBitmapButton() 342 CBlobProperty::CBlobProperty(void *) 343 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 344 CBrush::CBrush(int,unsigned long) 345 CBrush::CBrush(unsigned long) 346 CBrush::CBrush(CBitmap *) 347 CBrush::CBrush() 348 CButton::CButton() 349 CByteArray::CByteArray() 350 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 351 CCachedDataPathProperty::CCachedDataPathProperty(char const *,COleControl *) 352 CCheckListBox::CCheckListBox() 353 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 354 CClientDC::CClientDC(CWnd *) 355 CCmdTarget::CCmdTarget() 356 CCmdUI::CCmdUI() 357 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 358 CComboBox::CComboBox() 359 CComboBoxEx::CComboBoxEx() 360 CCommandLineInfo::CCommandLineInfo() 361 CCommonDialog::CCommonDialog(CWnd *) 362 CConnectionPoint::CConnectionPoint() 363 CControlBar::CControlBar() 364 CControlBarInfo::CControlBarInfo() 365 COleControl::CControlDataSource::CControlDataSource(COleControl *) 366 CControlFrameWnd::CControlFrameWnd(COleControl *) 367 CCreateContext::CCreateContext() 368 CCriticalSection::CCriticalSection() 369 CCtrlView::CCtrlView(char const *,unsigned long) 370 CDatabase::CDatabase() 371 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 372 CDataExchange::CDataExchange(CWnd *,int) 373 CDataPathProperty::CDataPathProperty(COleControl *) 374 CDataPathProperty::CDataPathProperty(char const *,COleControl *) 375 CDataSourceControl::CDataSourceControl(COleControlSite *) 376 CDateTimeCtrl::CDateTimeCtrl() 377 CDBException::CDBException(short) 378 CDBVariant::CDBVariant() 379 CDC::CDC() 380 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 381 CDHtmlControlSink::CDHtmlControlSink() 382 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 383 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 384 CDHtmlDialog::CDHtmlDialog() 385 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 386 CDialog::CDialog(unsigned int,CWnd *) 387 CDialog::CDialog(char const *,CWnd *) 388 CDialog::CDialog() 389 CDialogBar::CDialogBar() 390 CDialogTemplate::CDialogTemplate(void *) 391 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 392 CDocItem::CDocItem() 393 CDockBar::CDockBar(int) 394 CDockContext::CDockContext(CControlBar *) 395 CDockState::CDockState() 396 CDocManager::CDocManager() 397 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 398 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 399 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 400 CDocument::CDocument() 401 CDragListBox::CDragListBox() 402 CDumpContext::CDumpContext(CDumpContext const &) 403 CDumpContext::CDumpContext(CFile *) 404 CDWordArray::CDWordArray() 405 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 406 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 407 CEdit::CEdit() 408 CEditView::CEditView() 409 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 410 CEnumConnections::CEnumConnections(void const *,unsigned int) 411 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 412 CEnumFormatEtc::CEnumFormatEtc() 413 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 414 CException::CException(int) 415 CException::CException() 416 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 417 CFile::CFile(void *) 418 CFile::CFile(char const *,unsigned int) 419 CFile::CFile() 420 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long) 421 CFileException::CFileException(int,long,char const *) 422 CFileFind::CFileFind() 423 CFindReplaceDialog::CFindReplaceDialog() 424 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 425 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 426 CFont::CFont() 427 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 428 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 429 CFontHolder::CFontHolder(IPropertyNotifySink *) 430 CFormView::CFormView(unsigned int) 431 CFormView::CFormView(char const *) 432 CFrameWnd::CFrameWnd() 433 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 434 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 435 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 436 CGdiObject::CGdiObject() 437 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 438 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 439 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 440 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 441 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 442 CGopherLocator::CGopherLocator(char const *,unsigned long) 443 CGopherLocator::CGopherLocator(CGopherLocator const &) 444 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 445 CHeaderCtrl::CHeaderCtrl() 446 CHotKeyCtrl::CHotKeyCtrl() 447 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 448 CHtmlEditCtrl::CHtmlEditCtrl() 449 CHtmlEditDoc::CHtmlEditDoc() 450 CHtmlEditView::CHtmlEditView() 451 CHtmlView::CHtmlView() 452 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 453 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 454 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 455 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 456 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 457 CImageList::CImageList() 458 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 459 CInternetException::CInternetException(unsigned long) 460 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 461 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 462 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 463 CInvalidArgException::CInvalidArgException(int,unsigned int) 464 CInvalidArgException::CInvalidArgException() 465 CIPAddressCtrl::CIPAddressCtrl() 466 CListBox::CListBox() 467 CListCtrl::CListCtrl() 468 CListView::CListView() 469 CLongBinary::CLongBinary() 470 CMapPtrToPtr::CMapPtrToPtr(int) 471 CMapPtrToWord::CMapPtrToWord(int) 472 CMapStringToOb::CMapStringToOb(int) 473 CMapStringToPtr::CMapStringToPtr(int) 474 CMapStringToString::CMapStringToString(int) 475 CMapWordToOb::CMapWordToOb(int) 476 CMapWordToPtr::CMapWordToPtr(int) 477 CMDIChildWnd::CMDIChildWnd() 478 CMDIFrameWnd::CMDIFrameWnd() 479 CMemFile::CMemFile(unsigned int) 480 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 481 CMemoryException::CMemoryException(int,unsigned int) 482 CMemoryException::CMemoryException() 483 CMemoryState::CMemoryState() 484 CMenu::CMenu() 485 CMetaFileDC::CMetaFileDC() 486 CMiniDockFrameWnd::CMiniDockFrameWnd() 487 CMiniFrameWnd::CMiniFrameWnd() 488 CMonikerFile::CMonikerFile() 489 CMonthCalCtrl::CMonthCalCtrl() 490 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 491 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 492 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 493 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 494 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 495 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 496 CNotSupportedException::CNotSupportedException(int,unsigned int) 497 CNotSupportedException::CNotSupportedException() 498 CObArray::CObArray() 499 CObject::CObject() 500 CObList::CObList(int) 501 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 502 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 503 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 504 COleClientItem::COleClientItem(COleDocument *) 505 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 506 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 507 COleControl::COleControl() 508 COleControlContainer::COleControlContainer(CWnd *) 509 COleControlLock::COleControlLock(_GUID const &) 510 COleControlSite::COleControlSite(COleControlContainer *) 511 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 512 COleCurrency::COleCurrency(tagVARIANT const &) 513 COleCurrency::COleCurrency(COleCurrency const &) 514 COleCurrency::COleCurrency(long,long) 515 COleCurrency::COleCurrency(union tagCY) 516 COleCurrency::COleCurrency() 517 COleDataObject::COleDataObject() 518 COleDataSource::COleDataSource() 519 COleDialog::COleDialog(CWnd *) 520 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 521 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 522 COleDispatchDriver::COleDispatchDriver() 523 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 524 COleDocIPFrameWnd::COleDocIPFrameWnd() 525 COleDocObjectItem::COleDocObjectItem(COleDocument *) 526 COleDocument::COleDocument() 527 COleDropSource::COleDropSource() 528 COleDropTarget::COleDropTarget() 529 COleException::COleException() 530 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 531 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 532 COleIPFrameWnd::COleIPFrameWnd() 533 COleLinkingDoc::COleLinkingDoc() 534 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 535 COleMessageFilter::COleMessageFilter() 536 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 537 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 538 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 539 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 540 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 541 COleResizeBar::COleResizeBar() 542 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 543 COleSafeArray::COleSafeArray(tagVARIANT const &) 544 COleSafeArray::COleSafeArray(COleSafeArray const &) 545 COleSafeArray::COleSafeArray(COleVariant const &) 546 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 547 COleSafeArray::COleSafeArray(tagVARIANT const *) 548 COleSafeArray::COleSafeArray() 549 COleServerDoc::COleServerDoc() 550 COleServerItem::COleServerItem(COleServerDoc *,int) 551 COleStreamFile::COleStreamFile(IStream *) 552 COleTemplateServer::COleTemplateServer() 553 COleUILinkInfo::COleUILinkInfo(COleDocument *) 554 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 555 COleVariant::COleVariant(ATL::CStringT > > &) 556 COleVariant::COleVariant(tagVARIANT const &) 557 COleVariant::COleVariant(COleVariant const &) 558 COleVariant::COleVariant(CByteArray const &) 559 COleVariant::COleVariant(CLongBinary const &) 560 COleVariant::COleVariant(COleCurrency const &) 561 COleVariant::COleVariant(ATL::COleDateTime const &) 562 COleVariant::COleVariant(unsigned char) 563 COleVariant::COleVariant(short,unsigned short) 564 COleVariant::COleVariant(long,unsigned short) 565 COleVariant::COleVariant(float) 566 COleVariant::COleVariant(double) 567 COleVariant::COleVariant(char const *) 568 COleVariant::COleVariant(char const *,unsigned short) 569 COleVariant::COleVariant(_ITEMIDLIST const *) 570 COleVariant::COleVariant(tagVARIANT const *) 571 COleVariant::COleVariant() 572 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 573 CPaintDC::CPaintDC(CWnd *) 574 CPalette::CPalette() 575 CPen::CPen(int,int,unsigned long) 576 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 577 CPen::CPen() 578 CPictureHolder::CPictureHolder() 579 CPreviewDC::CPreviewDC() 580 CPreviewView::CPreviewView() 581 CPrintDialog::CPrintDialog(tagPDA &) 582 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 583 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 584 CPrintInfo::CPrintInfo() 585 CPrintPreviewState::CPrintPreviewState() 586 CProgressCtrl::CProgressCtrl() 587 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 588 CProperty::CProperty(unsigned long,void * const,unsigned long) 589 CProperty::CProperty() 590 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 591 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 592 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 593 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 594 CPropertyPage::CPropertyPage() 595 CPropertySection::CPropertySection(_GUID) 596 CPropertySection::CPropertySection() 597 CPropertySet::CPropertySet(_GUID) 598 CPropertySet::CPropertySet() 599 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 600 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 601 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 602 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 603 CPropertySheet::CPropertySheet() 604 CPropExchange::CPropExchange() 605 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 606 CPtrArray::CPtrArray() 607 CPtrList::CPtrList(int) 608 CReBar::CReBar() 609 CReBarCtrl::CReBarCtrl() 610 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 611 CRecordset::CRecordset(CDatabase *) 612 CRecordView::CRecordView(unsigned int) 613 CRecordView::CRecordView(char const *) 614 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 615 CRectTracker::CRectTracker() 616 CReObject::CReObject(CRichEditCntrItem *) 617 CReObject::CReObject() 618 CResetPropExchange::CResetPropExchange() 619 CResourceException::CResourceException(int,unsigned int) 620 CResourceException::CResourceException() 621 CRgn::CRgn() 622 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 623 CRichEditCtrl::CRichEditCtrl() 624 CRichEditDoc::CRichEditDoc() 625 CRichEditView::CRichEditView() 626 CScrollBar::CScrollBar() 627 CScrollView::CScrollView() 628 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 629 CSharedFile::CSharedFile(unsigned int,unsigned int) 630 CSimpleException::CSimpleException(int) 631 CSimpleException::CSimpleException() 632 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 633 CSingleLock::CSingleLock(CSyncObject *,int) 634 CSliderCtrl::CSliderCtrl() 635 CSocket::CSocket() 636 CSocketFile::CSocketFile(CSocket *,int) 637 CSocketWnd::CSocketWnd() 638 CSpinButtonCtrl::CSpinButtonCtrl() 639 CSplitterWnd::CSplitterWnd() 640 CStatic::CStatic() 641 CStatusBar::CStatusBar() 642 CStatusBarCtrl::CStatusBarCtrl() 643 CStdioFile::CStdioFile(_iobuf *) 644 CStdioFile::CStdioFile(char const *,unsigned int) 645 CStdioFile::CStdioFile() 646 CStringArray::CStringArray() 647 CStringList::CStringList(int) 648 CSyncObject::CSyncObject(char const *) 649 CTabCtrl::CTabCtrl() 650 CTestCmdUI::CTestCmdUI() 651 CThreadSlotData::CThreadSlotData() 652 CToolBar::CToolBar() 653 CToolBarCtrl::CToolBarCtrl() 654 CToolTipCtrl::CToolTipCtrl() 655 CTreeCtrl::CTreeCtrl() 656 CTreeView::CTreeView() 657 CUIntArray::CUIntArray() 658 CUserException::CUserException(int,unsigned int) 659 CUserException::CUserException() 660 CView::CView() 661 CWaitCursor::CWaitCursor() 662 CWinApp::CWinApp(char const *) 663 CWindowDC::CWindowDC(CWnd *) 664 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 665 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 666 CWinThread::CWinThread() 667 CWnd::CWnd(HWND__ *) 668 CWnd::CWnd() 669 CWordArray::CWordArray() 670 CPreviewView::PAGE_INFO::PAGE_INFO() 671 ATL::CSimpleStringT::~CSimpleStringT() 672 ATL::CSimpleStringT::~CSimpleStringT() 673 ATL::CStringT > >::~CStringT > >() 674 ATL::CStringT > >::~CStringT > >() 675 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 676 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 677 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 678 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 679 _AFX_OLE_STATE::~_AFX_OLE_STATE() 680 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 681 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 682 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 683 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 684 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 685 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 686 AFX_MODULE_STATE::~AFX_MODULE_STATE() 687 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 688 CAnimateCtrl::~CAnimateCtrl() 689 CArchive::~CArchive() 690 CArchiveException::~CArchiveException() 691 CAsyncMonikerFile::~CAsyncMonikerFile() 692 CAsyncSocket::~CAsyncSocket() 693 CBitmap::~CBitmap() 694 CBrush::~CBrush() 695 CButton::~CButton() 696 CByteArray::~CByteArray() 697 CClientDC::~CClientDC() 698 CCmdTarget::~CCmdTarget() 699 CComboBox::~CComboBox() 700 CComboBoxEx::~CComboBoxEx() 701 CCommandLineInfo::~CCommandLineInfo() 702 CConnectionPoint::~CConnectionPoint() 703 CControlBar::~CControlBar() 704 CCriticalSection::~CCriticalSection() 705 CCtrlView::~CCtrlView() 706 CDatabase::~CDatabase() 707 CDataSourceControl::~CDataSourceControl() 708 CDateTimeCtrl::~CDateTimeCtrl() 709 CDBException::~CDBException() 710 CDBVariant::~CDBVariant() 711 CDC::~CDC() 712 CDHtmlControlSink::~CDHtmlControlSink() 713 CDHtmlDialog::~CDHtmlDialog() 714 CDialog::~CDialog() 715 CDialogBar::~CDialogBar() 716 CDialogTemplate::~CDialogTemplate() 717 CDocItem::~CDocItem() 718 CDockBar::~CDockBar() 719 CDockContext::~CDockContext() 720 CDockState::~CDockState() 721 CDocManager::~CDocManager() 722 CDocObjectServer::~CDocObjectServer() 723 CDocObjectServerItem::~CDocObjectServerItem() 724 CDocTemplate::~CDocTemplate() 725 CDocument::~CDocument() 726 CDragListBox::~CDragListBox() 727 CDWordArray::~CDWordArray() 728 CDynLinkLibrary::~CDynLinkLibrary() 729 CEdit::~CEdit() 730 CEditView::~CEditView() 731 CEnumArray::~CEnumArray() 732 CEnumConnections::~CEnumConnections() 733 CEnumConnPoints::~CEnumConnPoints() 734 CEnumFormatEtc::~CEnumFormatEtc() 735 CEnumOleVerb::~CEnumOleVerb() 736 CEnumUnknown::~CEnumUnknown() 737 CEvent::~CEvent() 738 CException::~CException() 739 CFile::~CFile() 740 CFileDialog::~CFileDialog() 741 CFileException::~CFileException() 742 CFileFind::~CFileFind() 743 CFixedAlloc::~CFixedAlloc() 744 CFixedAllocNoSync::~CFixedAllocNoSync() 745 CFont::~CFont() 746 CFontHolder::~CFontHolder() 747 CFrameWnd::~CFrameWnd() 748 CFtpConnection::~CFtpConnection() 749 CFtpFileFind::~CFtpFileFind() 750 CGdiObject::~CGdiObject() 751 CGopherConnection::~CGopherConnection() 752 CGopherFile::~CGopherFile() 753 CGopherFileFind::~CGopherFileFind() 754 CGopherLocator::~CGopherLocator() 755 CHeaderCtrl::~CHeaderCtrl() 756 CHotKeyCtrl::~CHotKeyCtrl() 757 CHtmlControlSite::~CHtmlControlSite() 758 CHtmlEditCtrl::~CHtmlEditCtrl() 759 CHtmlEditDoc::~CHtmlEditDoc() 760 CHtmlEditView::~CHtmlEditView() 761 CHtmlView::~CHtmlView() 762 CHttpConnection::~CHttpConnection() 763 CHttpFile::~CHttpFile() 764 CImageList::~CImageList() 765 CInternetConnection::~CInternetConnection() 766 CInternetException::~CInternetException() 767 CInternetFile::~CInternetFile() 768 CInternetSession::~CInternetSession() 769 CInvalidArgException::~CInvalidArgException() 770 CIPAddressCtrl::~CIPAddressCtrl() 771 CListBox::~CListBox() 772 CListCtrl::~CListCtrl() 773 CLongBinary::~CLongBinary() 774 CMapPtrToPtr::~CMapPtrToPtr() 775 CMapPtrToWord::~CMapPtrToWord() 776 CMapStringToOb::~CMapStringToOb() 777 CMapStringToPtr::~CMapStringToPtr() 778 CMapStringToString::~CMapStringToString() 779 CMapWordToOb::~CMapWordToOb() 780 CMapWordToPtr::~CMapWordToPtr() 781 CMemFile::~CMemFile() 782 CMemoryException::~CMemoryException() 783 CMenu::~CMenu() 784 CMetaFileDC::~CMetaFileDC() 785 CMiniFrameWnd::~CMiniFrameWnd() 786 CMonikerFile::~CMonikerFile() 787 CMonthCalCtrl::~CMonthCalCtrl() 788 CMultiDocTemplate::~CMultiDocTemplate() 789 CMultiLock::~CMultiLock() 790 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 791 CMutex::~CMutex() 792 CNotSupportedException::~CNotSupportedException() 793 CObArray::~CObArray() 794 CObject::~CObject() 795 CObList::~CObList() 796 COleBusyDialog::~COleBusyDialog() 797 COleChangeIconDialog::~COleChangeIconDialog() 798 COleChangeSourceDialog::~COleChangeSourceDialog() 799 COleClientItem::~COleClientItem() 800 COleCntrFrameWnd::~COleCntrFrameWnd() 801 COleControl::~COleControl() 802 COleControlContainer::~COleControlContainer() 803 COleControlLock::~COleControlLock() 804 COleControlSite::~COleControlSite() 805 COleControlSiteOrWnd::~COleControlSiteOrWnd() 806 COleConvertDialog::~COleConvertDialog() 807 COleDataObject::~COleDataObject() 808 COleDataSource::~COleDataSource() 809 COleDispatchDriver::~COleDispatchDriver() 810 COleDispatchException::~COleDispatchException() 811 COleDocIPFrameWnd::~COleDocIPFrameWnd() 812 COleDocObjectItem::~COleDocObjectItem() 813 COleDocument::~COleDocument() 814 COleDropTarget::~COleDropTarget() 815 COleException::~COleException() 816 COleFrameHook::~COleFrameHook() 817 COleInsertDialog::~COleInsertDialog() 818 COleIPFrameWnd::~COleIPFrameWnd() 819 COleLinkingDoc::~COleLinkingDoc() 820 COleLinksDialog::~COleLinksDialog() 821 COleMessageFilter::~COleMessageFilter() 822 COleObjectFactory::~COleObjectFactory() 823 COlePasteSpecialDialog::~COlePasteSpecialDialog() 824 COlePropertyPage::~COlePropertyPage() 825 COleResizeBar::~COleResizeBar() 826 COleSafeArray::~COleSafeArray() 827 COleServerDoc::~COleServerDoc() 828 COleServerItem::~COleServerItem() 829 COleStreamFile::~COleStreamFile() 830 COleUpdateDialog::~COleUpdateDialog() 831 COleVariant::~COleVariant() 832 CPaintDC::~CPaintDC() 833 CPalette::~CPalette() 834 CPen::~CPen() 835 CPictureHolder::~CPictureHolder() 836 CPreviewDC::~CPreviewDC() 837 CPreviewView::~CPreviewView() 838 CPrintInfo::~CPrintInfo() 839 CProcessLocalObject::~CProcessLocalObject() 840 CProgressCtrl::~CProgressCtrl() 841 CPropbagPropExchange::~CPropbagPropExchange() 842 CProperty::~CProperty() 843 CPropertyPage::~CPropertyPage() 844 CPropertySection::~CPropertySection() 845 CPropertySet::~CPropertySet() 846 CPropertySheet::~CPropertySheet() 847 CPtrArray::~CPtrArray() 848 CPtrList::~CPtrList() 849 CRecentFileList::~CRecentFileList() 850 CRecordset::~CRecordset() 851 CRecordView::~CRecordView() 852 CRectTracker::~CRectTracker() 853 CReObject::~CReObject() 854 CResourceException::~CResourceException() 855 CRgn::~CRgn() 856 CRichEditCntrItem::~CRichEditCntrItem() 857 CRichEditCtrl::~CRichEditCtrl() 858 CScrollBar::~CScrollBar() 859 CScrollView::~CScrollView() 860 CSemaphore::~CSemaphore() 861 CSharedFile::~CSharedFile() 862 CSimpleException::~CSimpleException() 863 CSingleDocTemplate::~CSingleDocTemplate() 864 CSingleLock::~CSingleLock() 865 CSliderCtrl::~CSliderCtrl() 866 CSocket::~CSocket() 867 CSocketFile::~CSocketFile() 868 CSpinButtonCtrl::~CSpinButtonCtrl() 869 CSplitterWnd::~CSplitterWnd() 870 CStatic::~CStatic() 871 CStatusBar::~CStatusBar() 872 CStatusBarCtrl::~CStatusBarCtrl() 873 CStdioFile::~CStdioFile() 874 CStringArray::~CStringArray() 875 CStringList::~CStringList() 876 CSyncObject::~CSyncObject() 877 CTabCtrl::~CTabCtrl() 878 CThreadLocalObject::~CThreadLocalObject() 879 CThreadSlotData::~CThreadSlotData() 880 CToolBar::~CToolBar() 881 CToolBarCtrl::~CToolBarCtrl() 882 CToolTipCtrl::~CToolTipCtrl() 883 CTreeCtrl::~CTreeCtrl() 884 CUIntArray::~CUIntArray() 885 CUserException::~CUserException() 886 CView::~CView() 887 CWaitCursor::~CWaitCursor() 888 CWinApp::~CWinApp() 889 CWindowDC::~CWindowDC() 890 CWinThread::~CWinThread() 891 CWnd::~CWnd() 892 CWordArray::~CWordArray() 893 void * operator new(unsigned int) 894 void * operator new(unsigned int,int,char const *,int) 895 void * operator new(unsigned int,char const *,int) 896 void * CNoTrackObject::operator new(unsigned int) 897 void * CNoTrackObject::operator new(unsigned int,char const *,int) 898 void * CObject::operator new(unsigned int) 899 void * CObject::operator new(unsigned int,void *) 900 void * CObject::operator new(unsigned int,char const *,int) 901 void operator delete(void *) 902 void operator delete(void *,int,char const *,int) 903 void operator delete(void *,char const *,int) 904 void CException::operator delete(void *) 905 void CException::operator delete(void *,char const *,int) 906 void CNoTrackObject::operator delete(void *) 907 void CNoTrackObject::operator delete(void *,char const *,int) 908 void CObject::operator delete(void *) 909 void CObject::operator delete(void *,void *) 910 void CObject::operator delete(void *,char const *,int) 911 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 912 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 913 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 914 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 915 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 916 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 917 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 918 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 919 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 920 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 921 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 922 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 923 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 924 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 925 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 926 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 927 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 928 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 929 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 930 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 931 void CArchive::operator=(CArchive const &) 932 void CDumpContext::operator=(CDumpContext const &) 933 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 934 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 935 COleCurrency const & COleCurrency::operator=(union tagCY) 936 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 937 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 938 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 939 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 940 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 941 COleVariant const & COleVariant::operator=(tagVARIANT const &) 942 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 943 COleVariant const & COleVariant::operator=(COleVariant const &) 944 COleVariant const & COleVariant::operator=(CByteArray const &) 945 COleVariant const & COleVariant::operator=(CLongBinary const &) 946 COleVariant const & COleVariant::operator=(COleCurrency const &) 947 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 948 COleVariant const & COleVariant::operator=(unsigned char) 949 COleVariant const & COleVariant::operator=(short) 950 COleVariant const & COleVariant::operator=(long) 951 COleVariant const & COleVariant::operator=(float) 952 COleVariant const & COleVariant::operator=(double) 953 COleVariant const & COleVariant::operator=(tagVARIANT const *) 954 COleVariant const & COleVariant::operator=(char const * const) 955 CArchive & operator>>(CArchive &,CByteArray * &) 956 CArchive & operator>>(CArchive &,CDocItem * &) 957 CArchive & operator>>(CArchive &,CDockState * &) 958 CArchive & operator>>(CArchive &,CDWordArray * &) 959 CArchive & operator>>(CArchive &,CMapStringToOb * &) 960 CArchive & operator>>(CArchive &,CMapStringToString * &) 961 CArchive & operator>>(CArchive &,CMapWordToOb * &) 962 CArchive & operator>>(CArchive &,CObArray * &) 963 CArchive & operator>>(CArchive &,CObject * &) 964 CArchive & operator>>(CArchive &,CObList * &) 965 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 966 CArchive & operator>>(CArchive &,CStringArray * &) 967 CArchive & operator>>(CArchive &,CStringList * &) 968 CArchive & operator>>(CArchive &,CWordArray * &) 969 CArchive & operator>>(CArchive &,CObject const * &) 970 CArchive & operator>>(CArchive &,tagPOINT &) 971 CArchive & operator>>(CArchive &,tagRECT &) 972 CArchive & operator>>(CArchive &,tagSIZE &) 973 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 974 CArchive & operator>>(CArchive &,COleCurrency &) 975 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 976 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 977 CArchive & operator>>(CArchive &,COleVariant &) 978 CArchive & operator>>(CArchive &,ATL::CTime &) 979 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 980 CArchive & CArchive::operator>>(__int64 &) 981 CArchive & CArchive::operator>>(unsigned __int64 &) 982 CArchive & CArchive::operator>>(bool &) 983 CArchive & CArchive::operator>>(wchar_t &) 984 CArchive & CArchive::operator>>(char &) 985 CArchive & CArchive::operator>>(unsigned char &) 986 CArchive & CArchive::operator>>(short &) 987 CArchive & CArchive::operator>>(unsigned short &) 988 CArchive & CArchive::operator>>(int &) 989 CArchive & CArchive::operator>>(unsigned int &) 990 CArchive & CArchive::operator>>(long &) 991 CArchive & CArchive::operator>>(unsigned long &) 992 CArchive & CArchive::operator>>(float &) 993 CArchive & CArchive::operator>>(double &) 994 CArchive & operator<<(CArchive &,tagRECT const &) 995 CArchive & operator<<(CArchive &,CObject const *) 996 CArchive & operator<<(CArchive &,tagPOINT) 997 CArchive & operator<<(CArchive &,tagSIZE) 998 CArchive & operator<<(CArchive &,ATL::CComBSTR) 999 CArchive & operator<<(CArchive &,COleCurrency) 1000 CArchive & operator<<(CArchive &,ATL::COleDateTime) 1001 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 1002 CArchive & operator<<(CArchive &,COleVariant) 1003 CArchive & operator<<(CArchive &,ATL::CTime) 1004 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 1005 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 1006 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 1007 CDumpContext & operator<<(CDumpContext &,tagPOINT) 1008 CDumpContext & operator<<(CDumpContext &,tagSIZE) 1009 CDumpContext & operator<<(CDumpContext &,COleCurrency) 1010 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 1011 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 1012 CDumpContext & operator<<(CDumpContext &,COleVariant) 1013 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 1014 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 1015 CArchive & CArchive::operator<<(__int64) 1016 CArchive & CArchive::operator<<(unsigned __int64) 1017 CArchive & CArchive::operator<<(bool) 1018 CArchive & CArchive::operator<<(wchar_t) 1019 CArchive & CArchive::operator<<(char) 1020 CArchive & CArchive::operator<<(unsigned char) 1021 CArchive & CArchive::operator<<(short) 1022 CArchive & CArchive::operator<<(unsigned short) 1023 CArchive & CArchive::operator<<(int) 1024 CArchive & CArchive::operator<<(unsigned int) 1025 CArchive & CArchive::operator<<(long) 1026 CArchive & CArchive::operator<<(unsigned long) 1027 CArchive & CArchive::operator<<(float) 1028 CArchive & CArchive::operator<<(double) 1029 CDumpContext & CDumpContext::operator<<(__int64) 1030 CDumpContext & CDumpContext::operator<<(unsigned __int64) 1031 CDumpContext & CDumpContext::operator<<(CObject const &) 1032 CDumpContext & CDumpContext::operator<<(unsigned char) 1033 CDumpContext & CDumpContext::operator<<(unsigned short) 1034 CDumpContext & CDumpContext::operator<<(int) 1035 CDumpContext & CDumpContext::operator<<(unsigned int) 1036 CDumpContext & CDumpContext::operator<<(long) 1037 CDumpContext & CDumpContext::operator<<(unsigned long) 1038 CDumpContext & CDumpContext::operator<<(float) 1039 CDumpContext & CDumpContext::operator<<(double) 1040 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 1041 CDumpContext & CDumpContext::operator<<(HDC__ *) 1042 CDumpContext & CDumpContext::operator<<(HFONT__ *) 1043 CDumpContext & CDumpContext::operator<<(HMENU__ *) 1044 CDumpContext & CDumpContext::operator<<(HWND__ *) 1045 CDumpContext & CDumpContext::operator<<(wchar_t const *) 1046 CDumpContext & CDumpContext::operator<<(char const *) 1047 CDumpContext & CDumpContext::operator<<(CObject const *) 1048 CDumpContext & CDumpContext::operator<<(void const *) 1049 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 1050 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 1051 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 1052 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 1053 int CGdiObject::operator==(CGdiObject const &)const 1054 int CMenu::operator==(CMenu const &)const 1055 int COleCurrency::operator==(COleCurrency const &)const 1056 int COleSafeArray::operator==(tagSAFEARRAY const &)const 1057 int COleSafeArray::operator==(tagVARIANT const &)const 1058 int COleSafeArray::operator==(COleSafeArray const &)const 1059 int COleSafeArray::operator==(COleVariant const &)const 1060 int COleSafeArray::operator==(tagSAFEARRAY const *)const 1061 int COleSafeArray::operator==(tagVARIANT const *)const 1062 int COleVariant::operator==(tagVARIANT const &)const 1063 int COleVariant::operator==(tagVARIANT const *)const 1064 int CWnd::operator==(CWnd const &)const 1065 int CGdiObject::operator!=(CGdiObject const &)const 1066 int CMenu::operator!=(CMenu const &)const 1067 int COleCurrency::operator!=(COleCurrency const &)const 1068 int CWnd::operator!=(CWnd const &)const 1069 wchar_t ATL::CSimpleStringT::operator[](int)const 1070 char ATL::CSimpleStringT::operator[](int)const 1071 unsigned char & CByteArray::operator[](int) 1072 unsigned char CByteArray::operator[](int)const 1073 unsigned long & CDWordArray::operator[](int) 1074 unsigned long CDWordArray::operator[](int)const 1075 void * & CMapPtrToPtr::operator[](void *) 1076 unsigned short & CMapPtrToWord::operator[](void *) 1077 CObject * & CMapStringToOb::operator[](char const *) 1078 void * & CMapStringToPtr::operator[](char const *) 1079 ATL::CStringT > > & CMapStringToString::operator[](char const *) 1080 CObject * & CMapWordToOb::operator[](unsigned short) 1081 void * & CMapWordToPtr::operator[](unsigned short) 1082 CObject * & CObArray::operator[](int) 1083 CObject * CObArray::operator[](int)const 1084 void * & CPtrArray::operator[](int) 1085 void * CPtrArray::operator[](int)const 1086 ATL::CStringT > > & CStringArray::operator[](int) 1087 ATL::CStringT > > const & CStringArray::operator[](int)const 1088 unsigned int & CUIntArray::operator[](int) 1089 unsigned int CUIntArray::operator[](int)const 1090 unsigned short & CWordArray::operator[](int) 1091 unsigned short CWordArray::operator[](int)const 1092 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1093 ATL::CSimpleStringT::operator wchar_t const *()const 1094 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1095 ATL::CSimpleStringT::operator char const *()const 1096 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1097 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1098 CAsyncSocket::operator unsigned int()const 1099 CBitmap::operator HBITMAP__ *()const 1100 CBrush::operator HBRUSH__ *()const 1101 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 1102 CDC::operator HDC__ *()const 1103 CFile::operator void *()const 1104 CFont::operator HFONT__ *()const 1105 CGdiObject::operator void *()const 1106 CGopherLocator::operator char const *()const 1107 CImageList::operator _IMAGELIST *()const 1108 CInternetConnection::operator void *()const 1109 CInternetFile::operator void *()const 1110 CInternetSession::operator void *()const 1111 CMenu::operator HMENU__ *()const 1112 COleCurrency::operator union tagCY()const 1113 COleDispatchDriver::operator IDispatch *() 1114 COleSafeArray::operator tagVARIANT *() 1115 COleSafeArray::operator tagVARIANT const *()const 1116 COleVariant::operator tagVARIANT *() 1117 COleVariant::operator tagVARIANT const *()const 1118 CPalette::operator HPALETTE__ *()const 1119 CPen::operator HPEN__ *()const 1120 CRgn::operator HRGN__ *()const 1121 CSyncObject::operator void *()const 1122 CWinThread::operator void *()const 1123 CWnd::operator HWND__ *()const 1124 COleCurrency COleCurrency::operator*(long)const 1125 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1126 COleCurrency COleCurrency::operator-()const 1127 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1128 COleCurrency COleCurrency::operator/(long)const 1129 int COleCurrency::operator<(COleCurrency const &)const 1130 int COleCurrency::operator<=(COleCurrency const &)const 1131 int COleCurrency::operator>(COleCurrency const &)const 1132 int COleCurrency::operator>=(COleCurrency const &)const 1133 COleCurrency const & COleCurrency::operator*=(long) 1134 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1135 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1136 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1137 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1138 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 1139 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1140 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1141 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1142 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1143 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 1144 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1145 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1146 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1147 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1148 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1149 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1150 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1151 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1152 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1153 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1154 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1155 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1156 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1157 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1158 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1159 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1160 int _AfxAbortProc(HDC__ *,int) 1161 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1162 int const _afxDBCS 1163 int _AfxDeleteRegKey(char const *) 1164 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1165 int _AfxSocketInit(WSAData *) 1166 void CArchive::Abort() 1167 void CFile::Abort() 1168 void CInternetFile::Abort() 1169 void CMemFile::Abort() 1170 void CMirrorFile::Abort() 1171 void COleStreamFile::Abort() 1172 void CSocketFile::Abort() 1173 void CStdioFile::Abort() 1174 int CDC::AbortDoc() 1175 int CDC::AbortPath() 1176 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1177 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1178 long CWnd::accDoDefaultAction(tagVARIANT) 1179 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1180 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1181 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1182 void COleSafeArray::AccessData(void * *) 1183 long CWnd::accHitTest(long,long,tagVARIANT *) 1184 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1185 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1186 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1187 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1188 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1189 long CWnd::accSelect(long,tagVARIANT) 1190 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1191 void COleClientItem::Activate(long,CView *,tagMSG *) 1192 void CToolTipCtrl::Activate(int) 1193 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1194 void COleDocObjectItem::ActivateAndShow() 1195 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1196 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1197 void CDocObjectServer::ActivateDocObject() 1198 void COleServerDoc::ActivateDocObject() 1199 void CFrameWnd::ActivateFrame(int) 1200 void CMDIChildWnd::ActivateFrame(int) 1201 int COleServerDoc::ActivateInPlace() 1202 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1203 void CSplitterWnd::ActivateNext(int) 1204 void CWnd::ActivateTopParent() 1205 int CByteArray::Add(unsigned char) 1206 int CDWordArray::Add(unsigned long) 1207 int CImageList::Add(HICON__ *) 1208 int CImageList::Add(CBitmap *,CBitmap *) 1209 int CImageList::Add(CBitmap *,unsigned long) 1210 int CObArray::Add(CObject *) 1211 int CPtrArray::Add(void *) 1212 void CRecentFileList::Add(char const *) 1213 int CStringArray::Add(ATL::CStringT > > const &) 1214 int CStringArray::Add(char const *) 1215 int CUIntArray::Add(unsigned int) 1216 int CWordArray::Add(unsigned short) 1217 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 1218 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 1219 int CToolBarCtrl::AddBitmap(int,unsigned int) 1220 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1221 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1222 void COleClientItem::AddCachedData(COleDataSource *) 1223 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1224 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1225 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1226 void CFrameWnd::AddControlBar(CControlBar *) 1227 void CDocManager::AddDocTemplate(CDocTemplate *) 1228 void CWinApp::AddDocTemplate(CDocTemplate *) 1229 void CDocTemplate::AddDocument(CDocument *) 1230 void CMultiDocTemplate::AddDocument(CDocument *) 1231 void CSingleDocTemplate::AddDocument(CDocument *) 1232 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1233 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 1234 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1235 void COleControl::AddFrameLevelUI() 1236 void CFrameWnd::AddFrameWnd() 1237 __POSITION * CObList::AddHead(CObject *) 1238 void CObList::AddHead(CObList *) 1239 __POSITION * CPtrList::AddHead(void *) 1240 void CPtrList::AddHead(CPtrList *) 1241 void CSimpleList::AddHead(void *) 1242 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1243 __POSITION * CStringList::AddHead(char const *) 1244 void CStringList::AddHead(CStringList *) 1245 void COleDocument::AddItem(CDocItem *) 1246 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1247 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1248 void CRecordset::AddNew() 1249 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1250 void CPropertySheet::AddPage(CPropertyPage *) 1251 void CPropertySection::AddProperty(CProperty *) 1252 void CPropertySet::AddProperty(_GUID,CProperty *) 1253 unsigned long CArchiveStream::AddRef() 1254 unsigned long CBlobProperty::AddRef() 1255 unsigned long CBrowserControlSite::AddRef() 1256 unsigned long CDHtmlControlSink::AddRef() 1257 unsigned long CDHtmlElementEventSink::AddRef() 1258 unsigned long CDHtmlEventSink::AddRef() 1259 unsigned long CInnerUnknown::AddRef() 1260 unsigned long COleConnPtContainer::AddRef() 1261 unsigned long COleDispatchImpl::AddRef() 1262 unsigned long COleUILinkInfo::AddRef() 1263 unsigned long CPrintDialogEx::AddRef() 1264 unsigned long CWnd::XAccessible::AddRef() 1265 unsigned long CWnd::XAccessibleServer::AddRef() 1266 unsigned long COleClientItem::XAdviseSink::AddRef() 1267 unsigned long COleControlSite::XAmbientProps::AddRef() 1268 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1269 unsigned long COleObjectFactory::XClassFactory::AddRef() 1270 unsigned long CConnectionPoint::XConnPt::AddRef() 1271 unsigned long COleControl::XDataObject::AddRef() 1272 unsigned long COleDataSource::XDataObject::AddRef() 1273 unsigned long COleServerDoc::XDataObject::AddRef() 1274 unsigned long COleServerItem::XDataObject::AddRef() 1275 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef() 1276 unsigned long COleDropSource::XDropSource::AddRef() 1277 unsigned long COleDropTarget::XDropTarget::AddRef() 1278 unsigned long CEnumArray::XEnumVOID::AddRef() 1279 unsigned long COleControlSite::XEventSink::AddRef() 1280 unsigned long COleControl::XFontNotification::AddRef() 1281 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1282 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1283 unsigned long COleControl::XOleCache::AddRef() 1284 unsigned long COleClientItem::XOleClientSite::AddRef() 1285 unsigned long COleControlSite::XOleClientSite::AddRef() 1286 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1287 unsigned long COleFrameHook::XOleCommandTarget::AddRef() 1288 unsigned long COleControlContainer::XOleContainer::AddRef() 1289 unsigned long COleControl::XOleControl::AddRef() 1290 unsigned long COleControlSite::XOleControlSite::AddRef() 1291 unsigned long CDocObjectServer::XOleDocument::AddRef() 1292 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef() 1293 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1294 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1295 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1296 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1297 unsigned long COleControl::XOleInPlaceObject::AddRef() 1298 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1299 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1300 unsigned long COleClientItem::XOleIPSite::AddRef() 1301 unsigned long COleControlSite::XOleIPSite::AddRef() 1302 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1303 unsigned long CDocObjectServer::XOleObject::AddRef() 1304 unsigned long COleControl::XOleObject::AddRef() 1305 unsigned long COleServerDoc::XOleObject::AddRef() 1306 unsigned long COleServerItem::XOleObject::AddRef() 1307 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1308 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1309 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1310 unsigned long COleControl::XPersistMemory::AddRef() 1311 unsigned long COleControl::XPersistPropertyBag::AddRef() 1312 unsigned long COleControl::XPersistStorage::AddRef() 1313 unsigned long COleServerDoc::XPersistStorage::AddRef() 1314 unsigned long COleControl::XPersistStreamInit::AddRef() 1315 unsigned long COleControl::XPointerInactive::AddRef() 1316 unsigned long CDocObjectServer::XPrint::AddRef() 1317 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1318 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1319 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1320 unsigned long COleControl::XProvideClassInfo::AddRef() 1321 unsigned long COleControl::XQuickActivate::AddRef() 1322 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1323 unsigned long COleControlSite::XRowsetNotify::AddRef() 1324 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1325 unsigned long COleControl::XViewObject::AddRef() 1326 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1327 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1328 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1329 CPropertySection * CPropertySet::AddSection(_GUID) 1330 void CPropertySet::AddSection(CPropertySection *) 1331 void COlePasteSpecialDialog::AddStandardFormats(int) 1332 int CComboBox::AddString(char const *) 1333 int CComboBoxEx::AddString(char const *) 1334 int CListBox::AddString(char const *) 1335 int CToolBarCtrl::AddString(unsigned int) 1336 int CToolBarCtrl::AddStrings(char const *) 1337 __POSITION * CObList::AddTail(CObject *) 1338 void CObList::AddTail(CObList *) 1339 __POSITION * CPtrList::AddTail(void *) 1340 void CPtrList::AddTail(CPtrList *) 1341 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1342 __POSITION * CStringList::AddTail(char const *) 1343 void CStringList::AddTail(CStringList *) 1344 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1345 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1346 void CWinApp::AddToRecentFileList(char const *) 1347 void CDocument::AddView(CView *) 1348 void CMetaFileDC::AdjustCP(int) 1349 void CRichEditView::AdjustDialogPosition(CDialog *) 1350 void CRectTracker::AdjustRect(int,tagRECT *) 1351 void CTabCtrl::AdjustRect(int,tagRECT *) 1352 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1353 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1354 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1355 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1356 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1357 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1358 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1359 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1360 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1361 void AfxAbort() 1362 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1363 int AfxAssertFailedLine(char const *,int) 1364 void AfxAssertValidObject(CObject const *,char const *,int) 1365 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1366 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1367 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1368 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1369 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1370 void AfxCancelModes(HWND__ *) 1371 void AfxCheckError(long) 1372 int AfxCheckMemory() 1373 void AfxClassInit(CRuntime*) 1374 int AfxComparePath(char const *,char const *) 1375 int AfxCompareValueByRef(void *,void *,int) 1376 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1377 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1378 void AfxCopyValueByRef(void *,void *,long *,int) 1379 void AfxCoreInitModule() 1380 HDC__ * AfxCreateDC(void *,void *) 1381 int AfxCriticalInit() 1382 int AfxCriticalNewHandler(unsigned int) 1383 void AfxCriticalTerm() 1384 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1385 AUX_DATA afxData 1386 void AfxDeleteObject(void * *) 1387 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1388 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1389 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1390 int AfxDiagnosticInit() 1391 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1392 long AfxDllCanUnloadNow() 1393 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1394 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1395 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1396 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1397 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1398 CDumpContext afxDump 1399 void AfxDump(CObject const *) 1400 int AfxDumpMemoryLeaks() 1401 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1402 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1403 void AfxEnableControlContainer(COccManager *) 1404 int AfxEnableMemoryTracking(int) 1405 int AfxEndDeferRegisterClass(long) 1406 void AfxEndThread(unsigned int,int) 1407 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1408 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1409 void AfxFailMaxChars(CDataExchange *,int) 1410 void AfxFailRadio(CDataExchange *) 1411 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1412 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1413 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1414 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1415 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1416 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1417 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1418 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1419 int AfxFreeLibrary(HINSTANCE__ *) 1420 void AfxFreeMemoryDebug(void *,int) 1421 int AfxFullPath(char *,char const *) 1422 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1423 CWinApp * AfxGetApp() 1424 AFX_MODULE_STATE * AfxGetAppModuleState() 1425 char const * AfxGetAppName() 1426 long AfxGetClassIDFromString(char const *,_GUID *) 1427 tagMSG * AfxGetCurrentMessage() 1428 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1429 unsigned long AfxGetDllVersion() 1430 char const * AfxGetFacilityString(long) 1431 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1432 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1433 char const * AfxGetFullScodeString(long) 1434 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1435 void * AfxGetHENV() 1436 char const * AfxGetIIDString(_GUID const &) 1437 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1438 HINSTANCE__ * AfxGetInstanceHandle() 1439 unsigned long AfxGetInternetHandleType(void *) 1440 CWnd * AfxGetMainWnd() 1441 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1442 AFX_MODULE_STATE * AfxGetModuleState() 1443 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1444 int (__cdecl*AfxGetNewHandler())(unsigned int) 1445 HWND__ * AfxGetParentOwner(HWND__ *) 1446 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1447 HINSTANCE__ * AfxGetResourceHandle() 1448 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1449 void AfxGetRoot(char const *,ATL::CStringT > > &) 1450 char const * AfxGetScodeRangeString(long) 1451 char const * AfxGetScodeString(long) 1452 char const * AfxGetSeverityString(long) 1453 ATL::IAtlStringMgr * AfxGetStringManager() 1454 CWinThread * AfxGetThread() 1455 _AFX_THREAD_STATE * AfxGetThreadState() 1456 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1457 void AfxGlobalFree(void *) 1458 int AfxHelpEnabled() 1459 void AfxHookWindowCreate(CWnd *) 1460 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1461 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1462 void AfxInitLocalData(HINSTANCE__ *) 1463 int AfxInitRichEdit() 1464 int AfxInitRichEdit2() 1465 void AfxInitThread() 1466 int AfxInternalIsIdleMessage(tagMSG *) 1467 int AfxInternalPreTranslateMessage(tagMSG *) 1468 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1469 int AfxInternalPumpMessage() 1470 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1471 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1472 int AfxIsDescendant(HWND__ *,HWND__ *) 1473 int AfxIsIdleMessage(tagMSG *) 1474 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1475 int AfxIsValidAddress(void const *,unsigned int,int) 1476 int AfxIsValidString(wchar_t const *,int) 1477 int AfxIsValidString(char const *,int) 1478 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1479 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1480 HINSTANCE__ * AfxLoadLibrary(char const *) 1481 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1482 int AfxLoadString(unsigned int,char *,unsigned int) 1483 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1484 void AfxLockGlobals(int) 1485 void AfxLockTempMaps() 1486 CHandleMap * afxMapHDC(int) 1487 CHandleMap * afxMapHGDIOBJ(int) 1488 CHandleMap * afxMapHIMAGELIST(int) 1489 CHandleMap * afxMapHMENU(int) 1490 CHandleMap * afxMapHWND(int) 1491 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1492 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1493 int AfxMessageBox(char const *,unsigned int,unsigned int) 1494 int AfxNewHandler(unsigned int) 1495 int AfxOleCanExitApp() 1496 COleMessageFilter * AfxOleGetMessageFilter() 1497 int AfxOleGetUserCtrl() 1498 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1499 int AfxOleInit() 1500 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1501 void AfxOleLockApp() 1502 int AfxOleLockControl(_GUID const &) 1503 int AfxOleLockControl(char const *) 1504 void AfxOleOnReleaseAllObjects() 1505 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1506 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1507 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1508 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1509 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1510 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1511 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1512 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1513 void AfxOleSetUserCtrl(int) 1514 void AfxOleTerm(int) 1515 void AfxOleTermOrFreeLib(int,int) 1516 void AfxOleUnlockAllControls() 1517 void AfxOleUnlockApp() 1518 int AfxOleUnlockControl(_GUID const &) 1519 int AfxOleUnlockControl(char const *) 1520 int AfxOleUnregisterClass(_GUID const &,char const *) 1521 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1522 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1523 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1524 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1525 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1526 void AfxPostQuitMessage(int) 1527 int AfxPreTranslateMessage(tagMSG *) 1528 long AfxProcessWndProcException(CException *,tagMSG const *) 1529 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1530 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1531 int AfxPumpMessage() 1532 unsigned int AfxReadStringLength(CArchive &,int &) 1533 int AfxRegisterClass(tagWNDCLASSA *) 1534 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1535 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1536 void AfxResetMsgCache() 1537 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1538 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1539 void AfxSafeArrayInit(COleSafeArray *) 1540 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1541 void AfxSetAllocStop(long) 1542 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1543 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1544 void AfxSetResourceHandle(HINSTANCE__ *) 1545 void AfxSetWindowText(HWND__ *,char const *) 1546 void AfxSocketTerm() 1547 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1548 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1549 void AfxStoreField(CRecordset &,unsigned int,void *) 1550 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1551 wchar_t * AfxTaskStringA2W(char const *) 1552 char * AfxTaskStringW2A(wchar_t const *) 1553 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1554 void AfxTermLocalData(HINSTANCE__ *,int) 1555 void AfxTermThread(HINSTANCE__ *) 1556 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1557 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1558 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1559 void AfxThrowArchiveException(int,char const *) 1560 void AfxThrowDBException(short,CDatabase *,void *) 1561 void AfxThrowFileException(int,long,char const *) 1562 void AfxThrowInternetException(unsigned long,unsigned long) 1563 void AfxThrowInvalidArgException() 1564 void AfxThrowLastCleanup() 1565 void AfxThrowMemoryException() 1566 void AfxThrowNotSupportedException() 1567 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1568 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1569 void AfxThrowOleException(long) 1570 void AfxThrowResourceException() 1571 void AfxThrowUserException() 1572 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1573 void AfxTlsAddRef() 1574 void AfxTlsRelease() 1575 void AfxTrace(char const *,...) 1576 int afxTraceEnabled 1577 unsigned int afxTraceFlags 1578 void AfxTrackerTerm() 1579 void AfxTryCleanup() 1580 int AfxUnhookWindowCreate() 1581 void AfxUnlockGlobals(int) 1582 int AfxUnlockTempMaps(int) 1583 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1584 void AfxVariantInit(tagVARIANT *) 1585 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1586 char * AfxW2AHelper(char *,wchar_t const *,int) 1587 void AfxWingdixTerm() 1588 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1589 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1590 void AfxWinTerm() 1591 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1592 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1593 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1594 void AfxWriteStringLength(CArchive &,unsigned int,int) 1595 void * CFixedAlloc::Alloc() 1596 void * CFixedAllocNoSync::Alloc() 1597 unsigned char * CMemFile::Alloc(unsigned long) 1598 unsigned char * CSharedFile::Alloc(unsigned long) 1599 void CRecordset::AllocAndCacheFieldInfo() 1600 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1601 void CDatabase::AllocConnect(unsigned long) 1602 void COleSafeArray::AllocData() 1603 void CRecordset::AllocDataCache() 1604 void COleSafeArray::AllocDescriptor(unsigned long) 1605 int CControlBar::AllocElements(int,int) 1606 int CStatusBar::AllocElements(int,int) 1607 int CRecordset::AllocHstmt() 1608 void CPropertyPage::AllocPSP(unsigned long) 1609 void CRecordset::AllocRowset() 1610 int CThreadSlotData::AllocSlot() 1611 void CRecordset::AllocStatusArrays() 1612 wchar_t * ATL::CStringT > >::AllocSysString()const 1613 wchar_t * ATL::CStringT > >::AllocSysString()const 1614 void * CProperty::AllocValue(unsigned long) 1615 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1616 short COleControl::AmbientAppearance() 1617 unsigned long COleControl::AmbientBackColor() 1618 ATL::CStringT > > COleControl::AmbientDisplayName() 1619 IFontDisp * COleControl::AmbientFont() 1620 unsigned long COleControl::AmbientForeColor() 1621 unsigned long COleControl::AmbientLocaleID() 1622 ATL::CStringT > > COleControl::AmbientScaleUnits() 1623 int COleControl::AmbientShowGrabHandles() 1624 int COleControl::AmbientShowHatching() 1625 short COleControl::AmbientTextAlign() 1626 int COleControl::AmbientUIDead() 1627 int COleControl::AmbientUserMode() 1628 int CDC::AngleArc(int,int,int,float,float) 1629 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1630 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1631 void ATL::CSimpleStringT::Append(wchar_t const *) 1632 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1633 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1634 void ATL::CSimpleStringT::Append(char const *) 1635 void ATL::CSimpleStringT::Append(char const *,int) 1636 int CByteArray::Append(CByteArray const &) 1637 int CDWordArray::Append(CDWordArray const &) 1638 int CObArray::Append(CObArray const &) 1639 int CPtrArray::Append(CPtrArray const &) 1640 int CStringArray::Append(CStringArray const &) 1641 int CUIntArray::Append(CUIntArray const &) 1642 int CWordArray::Append(CWordArray const &) 1643 void ATL::CSimpleStringT::AppendChar(wchar_t) 1644 void ATL::CSimpleStringT::AppendChar(char) 1645 void CRecordset::AppendFilterAndSortSQL() 1646 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1647 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1648 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1649 void ATL::CStringT > >::AppendFormat(char const *,...) 1650 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1651 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1652 int CMenu::AppendMenuA(unsigned int,unsigned int,char const *) 1653 int CMenu::AppendMenuA(unsigned int,unsigned int,CBitmap const *) 1654 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1655 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1656 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1657 long COlePropertyPage::XPropertyPage::Apply() 1658 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1659 int COleDocument::ApplyPrintDevice(tagPDA const *) 1660 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1661 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1662 int CDC::Arc(int,int,int,int,int,int,int,int) 1663 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1664 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1665 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1666 int CListCtrl::Arrange(unsigned int) 1667 unsigned int CWnd::ArrangeIconicWindows() 1668 void CAsyncMonikerFile::AssertValid()const 1669 void CAsyncSocket::AssertValid()const 1670 void CBitmapButton::AssertValid()const 1671 void CByteArray::AssertValid()const 1672 void CCachedDataPathProperty::AssertValid()const 1673 void CClientDC::AssertValid()const 1674 void CCmdTarget::AssertValid()const 1675 void CControlBar::AssertValid()const 1676 void CCtrlView::AssertValid()const 1677 void CDatabase::AssertValid()const 1678 void CDataPathProperty::AssertValid()const 1679 void CDC::AssertValid()const 1680 void CDialog::AssertValid()const 1681 void CDocItem::AssertValid()const 1682 void CDockBar::AssertValid()const 1683 void CDocManager::AssertValid()const 1684 void CDocObjectServer::AssertValid()const 1685 void CDocObjectServerItem::AssertValid()const 1686 void CDocTemplate::AssertValid()const 1687 void CDocument::AssertValid()const 1688 void CDWordArray::AssertValid()const 1689 void CDynLinkLibrary::AssertValid()const 1690 void CEditView::AssertValid()const 1691 void CFile::AssertValid()const 1692 void CFileFind::AssertValid()const 1693 void CFormView::AssertValid()const 1694 void CFrameWnd::AssertValid()const 1695 void CFtpConnection::AssertValid()const 1696 void CFtpFileFind::AssertValid()const 1697 void CGdiObject::AssertValid()const 1698 void CGopherConnection::AssertValid()const 1699 void CGopherFile::AssertValid()const 1700 void CGopherFileFind::AssertValid()const 1701 void CHtmlEditDoc::AssertValid()const 1702 void CHtmlEditView::AssertValid()const 1703 void CHtmlView::AssertValid()const 1704 void CHttpConnection::AssertValid()const 1705 void CHttpFile::AssertValid()const 1706 void CImageList::AssertValid()const 1707 void CInternetConnection::AssertValid()const 1708 void CInternetFile::AssertValid()const 1709 void CLongBinary::AssertValid()const 1710 void CMapPtrToPtr::AssertValid()const 1711 void CMapPtrToWord::AssertValid()const 1712 void CMapStringToOb::AssertValid()const 1713 void CMapStringToPtr::AssertValid()const 1714 void CMapStringToString::AssertValid()const 1715 void CMapWordToOb::AssertValid()const 1716 void CMapWordToPtr::AssertValid()const 1717 void CMDIChildWnd::AssertValid()const 1718 void CMDIFrameWnd::AssertValid()const 1719 void CMemFile::AssertValid()const 1720 void CMenu::AssertValid()const 1721 void CMonikerFile::AssertValid()const 1722 void CMultiDocTemplate::AssertValid()const 1723 void CObArray::AssertValid()const 1724 void CObject::AssertValid()const 1725 void CObList::AssertValid()const 1726 void COleChangeSourceDialog::AssertValid()const 1727 void COleClientItem::AssertValid()const 1728 void COleCntrFrameWnd::AssertValid()const 1729 void COleControl::AssertValid()const 1730 void COleDataSource::AssertValid()const 1731 void COleDocIPFrameWnd::AssertValid()const 1732 void COleDocument::AssertValid()const 1733 void COleDropTarget::AssertValid()const 1734 void COleIPFrameWnd::AssertValid()const 1735 void COleLinkingDoc::AssertValid()const 1736 void COleLinksDialog::AssertValid()const 1737 void COleMessageFilter::AssertValid()const 1738 void COleObjectFactory::AssertValid()const 1739 void COlePasteSpecialDialog::AssertValid()const 1740 void COlePropertiesDialog::AssertValid()const 1741 void COleServerDoc::AssertValid()const 1742 void COleServerItem::AssertValid()const 1743 void COleStreamFile::AssertValid()const 1744 void CPaintDC::AssertValid()const 1745 void CPreviewDC::AssertValid()const 1746 void CPreviewView::AssertValid()const 1747 void CPropertyPage::AssertValid()const 1748 void CPropertySheet::AssertValid()const 1749 void CPtrArray::AssertValid()const 1750 void CPtrList::AssertValid()const 1751 void CRecordset::AssertValid()const 1752 void CRecordView::AssertValid()const 1753 void CRichEditCntrItem::AssertValid()const 1754 void CRichEditDoc::AssertValid()const 1755 void CRichEditView::AssertValid()const 1756 void CScrollView::AssertValid()const 1757 void CSingleDocTemplate::AssertValid()const 1758 void CSocket::AssertValid()const 1759 void CSocketFile::AssertValid()const 1760 void CSplitterWnd::AssertValid()const 1761 void CStatusBar::AssertValid()const 1762 void CStringArray::AssertValid()const 1763 void CStringList::AssertValid()const 1764 void CSyncObject::AssertValid()const 1765 void CToolBar::AssertValid()const 1766 void CUIntArray::AssertValid()const 1767 void CView::AssertValid()const 1768 void CWinApp::AssertValid()const 1769 void CWindowDC::AssertValid()const 1770 void CWinThread::AssertValid()const 1771 void CWnd::AssertValid()const 1772 void CWordArray::AssertValid()const 1773 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1774 int CAsyncSocket::AsyncSelect(long) 1775 long ATL::AtlIAccessibleGetIDsOfNamesHelper(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 1776 long ATL::AtlIAccessibleInvokeHelper(IAccessible *,long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1777 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1778 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1779 int CAsyncSocket::Attach(unsigned int,long) 1780 int CDC::Attach(HDC__ *) 1781 int CGdiObject::Attach(void *) 1782 int CImageList::Attach(_IMAGELIST *) 1783 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1784 int CMenu::Attach(HMENU__ *) 1785 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1786 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1787 void COleDataObject::Attach(IDataObject *,int) 1788 void COleSafeArray::Attach(tagVARIANT &) 1789 void COleStreamFile::Attach(IStream *) 1790 void COleVariant::Attach(tagVARIANT &) 1791 int CSocket::Attach(unsigned int) 1792 int CWnd::Attach(HWND__ *) 1793 int COleDataObject::AttachClipboard() 1794 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1795 void CWnd::AttachControlSite(CHandleMap *) 1796 void CWnd::AttachControlSite(CWnd *,unsigned int) 1797 void COleClientItem::AttachDataObject(COleDataObject &)const 1798 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1799 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1800 CPrintDialog * CPrintDialog::AttachOnSetup() 1801 void COleControlSite::AttachWindow() 1802 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1803 void CToolBarCtrl::AutoSize() 1804 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1805 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1806 void COleMessageFilter::BeginBusyState() 1807 void COleLinkingDoc::BeginDeferErrors() 1808 int CDragListBox::BeginDrag(CPoint) 1809 int CImageList::BeginDrag(int,CPoint) 1810 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1811 void COleDataObject::BeginEnumFormats() 1812 void CFrameWnd::BeginModalState() 1813 void CWnd::BeginModalState() 1814 CDC * CWnd::BeginPaint(tagPAINT*) 1815 int CDC::BeginPath() 1816 int CDatabase::BeginTrans() 1817 void CCmdTarget::BeginWaitCursor() 1818 int CAsyncSocket::Bind(unsigned int,char const *) 1819 int CAsyncSocket::Bind(sockaddr const *,int) 1820 void CDataSourceControl::BindColumns() 1821 void COccManager::BindControls(CWnd *) 1822 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1823 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1824 void CRecordset::BindFieldsForUpdate() 1825 unsigned int CRecordset::BindFieldsToColumns() 1826 void CDatabase::BindParameters(void *) 1827 unsigned int CRecordset::BindParams(void *) 1828 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1829 void CDataSourceControl::BindProp(COleControlSite *,int) 1830 void COleControlSite::BindProperty(long,CWnd *) 1831 void CWnd::BindProperty(long,CWnd *) 1832 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1833 void COleControl::BoundPropertyChanged(long) 1834 int COleControl::BoundPropertyRequestEdit(long) 1835 void CFrameWnd::BringToTop(int) 1836 void CWnd::BringWindowToTop() 1837 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1838 void CDBException::BuildErrorString(CDatabase *,void *,int) 1839 void CPropertySheet::BuildPropPageArray() 1840 void CRecordset::BuildSelectSQL() 1841 int COleControl::BuildSharedMenu() 1842 int COleDocIPFrameWnd::BuildSharedMenu() 1843 int COleIPFrameWnd::BuildSharedMenu() 1844 void CRecordset::BuildSQL(char const *) 1845 void CRecordset::BuildUpdateSQL() 1846 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1847 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1848 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1849 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1850 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1851 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1852 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1853 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1854 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1855 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1856 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1857 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1858 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1859 CSize CControlBar::CalcFixedLayout(int,int) 1860 CSize CDialogBar::CalcFixedLayout(int,int) 1861 CSize CDockBar::CalcFixedLayout(int,int) 1862 CSize CReBar::CalcFixedLayout(int,int) 1863 CSize CStatusBar::CalcFixedLayout(int,int) 1864 CSize CToolBar::CalcFixedLayout(int,int) 1865 void CControlBar::CalcInsideRect(CRect &,int)const 1866 void CStatusBar::CalcInsideRect(CRect &,int)const 1867 CSize CToolBar::CalcLayout(unsigned long,int) 1868 int CCheckListBox::CalcMinimumItemHeight() 1869 CSize CPreviewView::CalcPageDisplaySize() 1870 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1871 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1872 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1873 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1874 void CView::CalcWindowRect(tagRECT *,unsigned int) 1875 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1876 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1877 int CDHtmlDialog::CanAccessExternal() 1878 int COleClientItem::CanActivate() 1879 int CRichEditCntrItem::CanActivate() 1880 int CSplitterWnd::CanActivateNext(int) 1881 int CRecordset::CanAppend()const 1882 int CRecordset::CanBookmark()const 1883 void CDatabase::Cancel() 1884 void CRecordset::Cancel() 1885 void CSocket::CancelBlockingCall() 1886 void CDragListBox::CancelDrag(CPoint) 1887 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1888 long COleUILinkInfo::CancelLink(unsigned long) 1889 void CDockContext::CancelLoop() 1890 void CPropertyPage::CancelToClose() 1891 void CWnd::CancelToolTips(int) 1892 void CRecordset::CancelUpdate() 1893 int CDocument::CanCloseFrame(CFrameWnd *) 1894 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1895 int COleClientItem::CanCreateFromData(COleDataObject const *) 1896 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1897 unsigned long CDockContext::CanDock() 1898 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1899 int CFrameWnd::CanEnterHelpMode() 1900 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1901 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1902 int COleClientItem::CanPaste() 1903 int CRichEditCtrl::CanPaste(unsigned int)const 1904 int CRichEditView::CanPaste()const 1905 int COleClientItem::CanPasteLink() 1906 int CRichEditCtrl::CanRedo()const 1907 int CRecordset::CanRestart()const 1908 int CRecordset::CanScroll()const 1909 int CDatabase::CanTransact()const 1910 int CRecordset::CanTransact()const 1911 int CEdit::CanUndo()const 1912 int CRichEditCtrl::CanUndo()const 1913 int CDatabase::CanUpdate()const 1914 int CRecordset::CanUpdate()const 1915 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1916 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1917 void CScrollView::CenterOnPoint(CPoint) 1918 void CWnd::CenterWindow(CWnd *) 1919 int CWnd::ChangeClipboardChain(HWND__ *) 1920 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1921 int CEdit::CharFromPos(CPoint)const 1922 int CRichEditCtrl::CharFromPos(CPoint)const 1923 int CListBox::CharToItem(unsigned int,unsigned int) 1924 void ATL::CStringT > >::CharToOemA() 1925 int CDatabase::Check(short)const 1926 int CRecordset::Check(short)const 1927 int CDialog::CheckAutoCenter() 1928 int CWnd::CheckAutoCenter() 1929 int CToolBarCtrl::CheckButton(int,int) 1930 void CArchive::CheckCount() 1931 void COleControlContainer::CheckDlgButton(int,unsigned int) 1932 void CWnd::CheckDlgButton(int,unsigned int) 1933 int CCheckListBox::CheckFromPoint(CPoint,int &) 1934 void COleClientItem::CheckGeneral(long) 1935 int CDatabase::CheckHstmt(short,void *)const 1936 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1937 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1938 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1939 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1940 void CMemoryState::Checkpoint() 1941 void COleControlContainer::CheckRadioButton(int,int,int) 1942 void CWnd::CheckRadioButton(int,int,int) 1943 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1944 void CRecordset::CheckRowsetError(short) 1945 void CScrollView::CheckScrollBars(int &,int &)const 1946 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1947 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1948 int CDC::Chord(int,int,int,int,int,int,int,int) 1949 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1950 void CPropertyPage::Cleanup() 1951 void COlePropertyPage::CleanupObjectArray() 1952 void CComboBox::Clear() 1953 void CDBVariant::Clear() 1954 void CDockState::Clear() 1955 void CEdit::Clear() 1956 void COleSafeArray::Clear() 1957 void COleVariant::Clear() 1958 void CRichEditCtrl::Clear() 1959 void CIPAddressCtrl::ClearAddress() 1960 int CHeaderCtrl::ClearAllFilters() 1961 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1962 void CRecordset::ClearFieldStatus() 1963 int CHeaderCtrl::ClearFilter(int) 1964 void CRecordset::ClearNullFieldStatus(unsigned long) 1965 void CRecordset::ClearNullParamStatus(unsigned long) 1966 void CSliderCtrl::ClearSel(int) 1967 void CSliderCtrl::ClearTics(int) 1968 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1969 void CWnd::ClientToScreen(tagPOINT *)const 1970 void CWnd::ClientToScreen(tagRECT *)const 1971 int COleControl::ClipCaretRect(tagRECT *) 1972 void CPreviewDC::ClipToPage() 1973 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1974 long CArchiveStream::Clone(IStream * *) 1975 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1976 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1977 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1978 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1979 int CAnimateCtrl::Close() 1980 void CArchive::Close() 1981 void CAsyncMonikerFile::Close() 1982 void CAsyncSocket::Close() 1983 void CCachedDataPathProperty::Close() 1984 void CDatabase::Close() 1985 void CFile::Close() 1986 void CFileFind::Close() 1987 void CInternetConnection::Close() 1988 void CInternetFile::Close() 1989 void CInternetSession::Close() 1990 void CMemFile::Close() 1991 HMETAFILE__ * CMetaFileDC::Close() 1992 void CMirrorFile::Close() 1993 void CMonikerFile::Close() 1994 void COleClientItem::Close(enum tagOLECLOSE) 1995 void COleStreamFile::Close() 1996 void CRecordset::Close() 1997 void CSocket::Close() 1998 void CSocketFile::Close() 1999 void CStdioFile::Close() 2000 long CDocObjectServer::XOleObject::Close(unsigned long) 2001 long COleControl::XOleObject::Close(unsigned long) 2002 long COleServerDoc::XOleObject::Close(unsigned long) 2003 long COleServerItem::XOleObject::Close(unsigned long) 2004 void CDocManager::CloseAllDocuments(int) 2005 void CDocTemplate::CloseAllDocuments(int) 2006 void CWinApp::CloseAllDocuments(int) 2007 void CFileFind::CloseContext() 2008 void CFtpFileFind::CloseContext() 2009 void CGopherFileFind::CloseContext() 2010 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 2011 int CDC::CloseFigure() 2012 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2013 void CWnd::CloseWindow() 2014 int ATL::CStringT > >::Collate(wchar_t const *)const 2015 int ATL::CStringT > >::Collate(char const *)const 2016 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 2017 int ATL::CStringT > >::CollateNoCase(char const *)const 2018 int CRgn::CombineRgn(CRgn *,CRgn *,int) 2019 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 2020 int CStatusBar::CommandToIndex(unsigned int)const 2021 int CToolBar::CommandToIndex(unsigned int)const 2022 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 2023 long CArchiveStream::Commit(unsigned long) 2024 void COleClientItem::CommitItem(int) 2025 void COleDocument::CommitItems(int,IStorage *) 2026 int CDatabase::CommitTrans() 2027 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 2028 void CPropertyPage::CommonConstruct(char const *,unsigned int) 2029 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 2030 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2031 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2032 void CWinThread::CommonConstruct() 2033 int ATL::CStringT > >::Compare(wchar_t const *)const 2034 int ATL::CStringT > >::Compare(char const *)const 2035 int CComboBox::CompareItem(tagCOMPAREITEM*) 2036 int CListBox::CompareItem(tagCOMPAREITEM*) 2037 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 2038 int ATL::CStringT > >::CompareNoCase(char const *)const 2039 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 2040 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 2041 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 2042 int CAsyncSocket::Connect(char const *,unsigned int) 2043 int CAsyncSocket::Connect(sockaddr const *,int) 2044 int CDatabase::Connect(unsigned long) 2045 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 2046 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 2047 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2048 int CSocket::ConnectHelper(sockaddr const *,int) 2049 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2050 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2051 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 2052 long CDHtmlControlSink::ConnectToControl(IUnknown *) 2053 void COleServerDoc::ConnectView(CWnd *,CView *) 2054 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2055 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2056 void CPropertyPage::Construct(unsigned int,unsigned int) 2057 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 2058 void CPropertyPage::Construct(char const *,unsigned int) 2059 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 2060 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2061 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2062 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 2063 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2064 void CRectTracker::Construct() 2065 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2066 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2067 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2068 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2069 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2070 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2071 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2072 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2073 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2074 int CPropertySheet::ContinueModal() 2075 int CWnd::ContinueModal() 2076 void CCmdUI::ContinueRouting() 2077 void COleControl::ControlInfoChanged() 2078 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2079 int COleClientItem::ConvertTo(_GUID const &) 2080 int CRichEditCntrItem::ConvertTo(_GUID const &) 2081 void CByteArray::Copy(CByteArray const &) 2082 void CComboBox::Copy() 2083 void CDWordArray::Copy(CDWordArray const &) 2084 void CEdit::Copy() 2085 int CImageList::Copy(int,int,unsigned int) 2086 int CImageList::Copy(int,CImageList *,int,unsigned int) 2087 void CObArray::Copy(CObArray const &) 2088 void COleSafeArray::Copy(tagSAFEARRAY * *) 2089 void CPtrArray::Copy(CPtrArray const &) 2090 void CRichEditCtrl::Copy() 2091 void CStringArray::Copy(CStringArray const &) 2092 void CUIntArray::Copy(CUIntArray const &) 2093 void CWordArray::Copy(CWordArray const &) 2094 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 2095 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 2096 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 2097 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 2098 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2099 int CRgn::CopyRgn(CRgn *) 2100 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2101 void COleClientItem::CopyToClipboard(int) 2102 void COleServerItem::CopyToClipboard(int) 2103 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2104 int CAsyncSocket::Create(unsigned int,int,long,char const *) 2105 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2106 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2107 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2108 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2109 int CControlFrameWnd::Create(char const *) 2110 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2111 int CDialog::Create(unsigned int,CWnd *) 2112 int CDialog::Create(char const *,CWnd *) 2113 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 2114 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 2115 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2116 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2117 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 2118 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2119 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 2120 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2121 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2122 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 2123 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2124 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2125 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2126 int CImageList::Create(int,int,unsigned int,int,int) 2127 int CImageList::Create(unsigned int,int,int,unsigned long) 2128 int CImageList::Create(CImageList *) 2129 int CImageList::Create(char const *,int,int,unsigned long) 2130 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2131 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2132 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2133 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2134 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2135 int CMetaFileDC::Create(char const *) 2136 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2137 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2138 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 2139 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2140 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2141 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2142 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2143 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2144 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2145 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2146 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 2147 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2148 int CReflectorWnd::Create(CRect const &,HWND__ *) 2149 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2150 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2151 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2152 int CSocket::Create(unsigned int,int,char const *) 2153 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2154 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2155 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2156 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2157 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2158 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2159 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2160 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2161 int CToolTipCtrl::Create(CWnd *,unsigned long) 2162 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2163 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2164 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2165 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2166 IBindHost * CMonikerFile::CreateBindHost() 2167 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2168 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2169 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2170 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2171 void CWnd::CreateCaret(CBitmap *) 2172 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 2173 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2174 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2175 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2176 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2177 int CDC::CreateCompatibleDC(CDC *) 2178 void CConnectionPoint::CreateConnectionArray() 2179 COleControlContainer * COccManager::CreateContainer(CWnd *) 2180 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2181 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2182 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2183 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2184 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2185 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2186 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2187 int CWnd::CreateControlContainer(COleControlContainer * *) 2188 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2189 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2190 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2191 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2192 int CDC::CreateDCA(char const *,char const *,char const *,void const *) 2193 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2194 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2195 int CFtpConnection::CreateDirectoryA(char const *) 2196 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2197 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2198 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 2199 int CWnd::CreateDlg(char const *,CWnd *) 2200 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2201 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2202 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 2204 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2205 CImageList * CHeaderCtrl::CreateDragImage(int) 2206 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2207 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2208 int CRgn::CreateEllipticRgn(int,int,int,int) 2209 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2210 int CPictureHolder::CreateEmpty() 2211 int CMetaFileDC::CreateEnhanced(CDC *,char const *,tagRECT const *,char const *) 2212 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2213 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2214 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2215 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2216 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2217 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2218 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2219 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2220 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2221 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2222 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2223 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2224 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2225 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2226 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2227 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2228 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2229 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2230 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2231 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2232 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2233 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2234 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2235 int CFont::CreateFontA(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,char const *) 2236 int CFont::CreateFontIndirectA(tagLOGFONTA const *) 2237 CControlFrameWnd * COleControl::CreateFrameWindow() 2238 int CPictureHolder::CreateFromBitmap(unsigned int) 2239 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2240 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2241 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2242 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2243 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2244 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2245 int CPictureHolder::CreateFromIcon(unsigned int) 2246 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2247 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2248 int CRgn::CreateFromPath(CDC *) 2249 void CWnd::CreateGrayCaret(int,int) 2250 int CPalette::CreateHalftonePalette(CDC *) 2251 int CBrush::CreateHatchBrush(int,unsigned long) 2252 int CDC::CreateICA(char const *,char const *,char const *,void const *) 2253 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2254 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2255 int CDialog::CreateIndirect(void *,CWnd *) 2256 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2257 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2258 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2259 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2260 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2261 int COleInsertDialog::CreateItem(COleClientItem *) 2262 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2263 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2264 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2265 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2266 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 2267 CGopherLocator CGopherConnection::CreateLocator(char const *) 2268 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 2269 int COleStreamFile::CreateMemoryStream(CFileException *) 2270 int CMenu::CreateMenu() 2271 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2272 CDocument * CDocTemplate::CreateNewDocument() 2273 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2274 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2275 CObject * CByteArray::CreateObject() 2276 CObject * CDC::CreateObject() 2277 CObject * CDocItem::CreateObject() 2278 CObject * CDockState::CreateObject() 2279 CObject * CDWordArray::CreateObject() 2280 CObject * CEditView::CreateObject() 2281 CObject * CFrameWnd::CreateObject() 2282 CObject * CGdiObject::CreateObject() 2283 CObject * CHtmlEditView::CreateObject() 2284 CObject * CHtmlView::CreateObject() 2285 CObject * CImageList::CreateObject() 2286 CObject * CListView::CreateObject() 2287 CObject * CMapStringToOb::CreateObject() 2288 CObject * CMapStringToString::CreateObject() 2289 CObject * CMapWordToOb::CreateObject() 2290 CObject * CMDIChildWnd::CreateObject() 2291 CObject * CMDIFrameWnd::CreateObject() 2292 CObject * CMenu::CreateObject() 2293 CObject * CMiniDockFrameWnd::CreateObject() 2294 CObject * CMiniFrameWnd::CreateObject() 2295 CObject * CObArray::CreateObject() 2296 CObject * CObList::CreateObject() 2297 CObject * COleDocIPFrameWnd::CreateObject() 2298 CObject * COleIPFrameWnd::CreateObject() 2299 CObject * CPreviewView::CreateObject() 2300 CObject * CRichEditCntrItem::CreateObject() 2301 CObject * CRichEditView::CreateObject() 2302 CObject * CRuntimeClass::CreateObject() 2303 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2304 CObject * CRuntimeClass::CreateObject(char const *) 2305 CObject * CStringArray::CreateObject() 2306 CObject * CStringList::CreateObject() 2307 CObject * CTreeView::CreateObject() 2308 CObject * CWnd::CreateObject() 2309 CObject * CWordArray::CreateObject() 2310 void COleControlContainer::CreateOleFont(CFont *) 2311 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2312 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2313 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2314 int CPalette::CreatePalette(tagLOGPALETTE *) 2315 int CBrush::CreatePatternBrush(CBitmap *) 2316 int CPen::CreatePen(int,int,unsigned long) 2317 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2318 int CPen::CreatePenIndirect(tagLOGPEN *) 2319 int CFont::CreatePointFont(int,char const *,CDC *) 2320 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 2321 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2322 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2323 int CMenu::CreatePopupMenu() 2324 HDC__ * CPageSetupDialog::CreatePrinterDC() 2325 HDC__ * CPrintDialog::CreatePrinterDC() 2326 HDC__ * CPrintDialogEx::CreatePrinterDC() 2327 int CWinApp::CreatePrinterDC(CDC &) 2328 int CRgn::CreateRectRgn(int,int,int,int) 2329 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2330 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2331 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2332 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2333 int CBrush::CreateSolidBrush(unsigned long) 2334 void CWnd::CreateSolidCaret(int,int) 2335 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2336 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2337 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2338 int CGdiObject::CreateStockObject(int) 2339 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 2340 int CBrush::CreateSysColorBrush(int) 2341 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2342 void COleControl::CreateTracker(int,int) 2343 void COleControl::CreateTracker(int,int,tagRECT const *) 2344 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2345 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2346 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2347 void COleControl::CreateWindowForSubclassedControl() 2348 void CToolBarCtrl::Customize() 2349 void CComboBox::Cut() 2350 void CEdit::Cut() 2351 void CRichEditCtrl::Cut() 2352 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2353 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2354 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2355 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2356 void DDP_CBIndex(CDataExchange *,int,int &,char const *) 2357 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2358 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2359 void DDP_Check(CDataExchange *,int,int &,char const *) 2360 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 2361 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 2362 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 2363 void DDP_EndText(CDataExchange *,int,short *,char const *) 2364 void DDP_EndText(CDataExchange *,int,int *,char const *) 2365 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 2366 void DDP_EndText(CDataExchange *,int,long *,char const *) 2367 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 2368 void DDP_EndText(CDataExchange *,int,float *,char const *) 2369 void DDP_EndText(CDataExchange *,int,double *,char const *) 2370 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 2371 void DDP_LBIndex(CDataExchange *,int,int &,char const *) 2372 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2373 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2374 void DDP_PostProcessing(CDataExchange *) 2375 void DDP_Radio(CDataExchange *,int,int &,char const *) 2376 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 2377 void DDP_Text(CDataExchange *,int,short &,char const *) 2378 void DDP_Text(CDataExchange *,int,int &,char const *) 2379 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 2380 void DDP_Text(CDataExchange *,int,long &,char const *) 2381 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 2382 void DDP_Text(CDataExchange *,int,float &,char const *) 2383 void DDP_Text(CDataExchange *,int,double &,char const *) 2384 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 2385 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2386 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2387 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2388 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2389 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2390 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2391 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2392 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2393 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2394 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2395 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2396 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2397 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2398 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2399 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2400 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2401 void DDX_CBIndex(CDataExchange *,int,int &) 2402 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2403 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2404 void DDX_Check(CDataExchange *,int,int &) 2405 void DDX_Control(CDataExchange *,int,CWnd &) 2406 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2407 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2408 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2409 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2410 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2411 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2412 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 2413 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 2414 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 2415 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 2416 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 2417 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 2418 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 2419 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 2420 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 2421 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 2422 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 2423 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 2424 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 2425 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 2426 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 2427 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 2428 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 2429 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 2430 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 2431 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 2432 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 2433 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 2434 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 2435 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 2436 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 2437 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 2438 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 2439 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 2440 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 2441 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 2442 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2443 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2444 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2445 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2446 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2447 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2448 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2449 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2450 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2451 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2452 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2453 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2454 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2455 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2456 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2457 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2458 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2459 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 2460 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2461 void DDX_LBIndex(CDataExchange *,int,int &) 2462 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2463 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2464 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2465 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2466 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2467 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2468 void DDX_OCBool(CDataExchange *,int,long,int &) 2469 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2470 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2471 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2472 void DDX_OCFloat(CDataExchange *,int,long,float &) 2473 void DDX_OCFloat(CDataExchange *,int,long,double &) 2474 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2475 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2476 void DDX_OCInt(CDataExchange *,int,long,int &) 2477 void DDX_OCInt(CDataExchange *,int,long,long &) 2478 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2479 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2480 void DDX_OCShort(CDataExchange *,int,long,short &) 2481 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2482 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2483 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2484 void DDX_Radio(CDataExchange *,int,int &) 2485 void DDX_Scroll(CDataExchange *,int,int &) 2486 void DDX_Slider(CDataExchange *,int,int &) 2487 void DDX_Text(CDataExchange *,int,__int64 &) 2488 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2489 void DDX_Text(CDataExchange *,int,unsigned char &) 2490 void DDX_Text(CDataExchange *,int,short &) 2491 void DDX_Text(CDataExchange *,int,int &) 2492 void DDX_Text(CDataExchange *,int,unsigned int &) 2493 void DDX_Text(CDataExchange *,int,long &) 2494 void DDX_Text(CDataExchange *,int,unsigned long &) 2495 void DDX_Text(CDataExchange *,int,float &) 2496 void DDX_Text(CDataExchange *,int,double &) 2497 void DDX_Text(CDataExchange *,int,_FILETIME &) 2498 void DDX_Text(CDataExchange *,int,_GUID &) 2499 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2500 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2501 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2502 void DDX_Text(CDataExchange *,int,tagDEC &) 2503 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2504 void DDX_Text(CDataExchange *,int,COleCurrency &) 2505 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2506 void DDX_Text(CDataExchange *,int,char *,int) 2507 void COleClientItem::Deactivate() 2508 long COlePropertyPage::XPropertyPage::Deactivate() 2509 int COleServerDoc::DeactivateAndUndo() 2510 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2511 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2512 void COleClientItem::DeactivateUI() 2513 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 2514 long CWnd::Default() 2515 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 2516 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 2517 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 2518 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 2519 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 2520 void CFrameWnd::DelayRecalcLayout(int) 2521 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2522 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2523 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2524 void CControlBar::DelayShow(int) 2525 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2526 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2527 void CFrameWnd::DelayUpdateFrameTitle() 2528 int ATL::CStringT > >::Delete(int,int) 2529 int ATL::CStringT > >::Delete(int,int) 2530 void CException::Delete() 2531 void COleClientItem::Delete(int) 2532 void CRecordset::Delete() 2533 void CWinThread::Delete() 2534 int CListCtrl::DeleteAllItems() 2535 int CTabCtrl::DeleteAllItems() 2536 int CTreeCtrl::DeleteAllItems() 2537 int CReBarCtrl::DeleteBand(unsigned int) 2538 int CToolBarCtrl::DeleteButton(int) 2539 int CListCtrl::DeleteColumn(int) 2540 void CSplitterWnd::DeleteColumn(int) 2541 void CDocument::DeleteContents() 2542 void CEditView::DeleteContents() 2543 void CHtmlEditDoc::DeleteContents() 2544 void COleDocument::DeleteContents() 2545 void COleServerDoc::DeleteContents() 2546 void CRichEditDoc::DeleteContents() 2547 void CRichEditView::DeleteContents() 2548 int CDC::DeleteDC() 2549 int CImageList::DeleteImageList() 2550 void CComboBox::DeleteItem(tagDELETEITEM*) 2551 int CComboBoxEx::DeleteItem(int) 2552 int CHeaderCtrl::DeleteItem(int) 2553 void CListBox::DeleteItem(tagDELETEITEM*) 2554 int CListCtrl::DeleteItem(int) 2555 int CTabCtrl::DeleteItem(int) 2556 int CTreeCtrl::DeleteItem(_TREEITEM *) 2557 int CMenu::DeleteMenu(unsigned int,unsigned int) 2558 int CGdiObject::DeleteObject() 2559 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2560 void CSplitterWnd::DeleteRow(int) 2561 int CComboBox::DeleteString(unsigned int) 2562 int CListBox::DeleteString(unsigned int) 2563 void CHandleMap::DeleteTemp() 2564 void CDC::DeleteTempMap() 2565 void CGdiObject::DeleteTempMap() 2566 void CImageList::DeleteTempMap() 2567 void CMenu::DeleteTempMap() 2568 void CWnd::DeleteTempMap() 2569 void CRichEditDoc::DeleteUnmarkedItems()const 2570 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2571 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2572 void CSplitterWnd::DeleteView(int,int) 2573 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2574 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2575 void CTabCtrl::DeselectAll(int) 2576 void COleSafeArray::Destroy() 2577 int COleControlSite::DestroyControl() 2578 void COleSafeArray::DestroyData() 2579 void COleSafeArray::DestroyDescriptor() 2580 void CFrameWnd::DestroyDockBars() 2581 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2582 int CMenu::DestroyMenu() 2583 void CDHtmlDialog::DestroyModeless() 2584 void COleControl::DestroySharedMenu() 2585 void COleDocIPFrameWnd::DestroySharedMenu() 2586 void COleIPFrameWnd::DestroySharedMenu() 2587 int CToolTipCtrl::DestroyToolTipCtrl() 2588 void COleControl::DestroyTracker() 2589 int CControlBar::DestroyWindow() 2590 int CMDIChildWnd::DestroyWindow() 2591 int CWnd::DestroyWindow() 2592 unsigned int CAsyncSocket::Detach() 2593 HDC__ * CDC::Detach() 2594 void * CDialogTemplate::Detach() 2595 void * CGdiObject::Detach() 2596 _IMAGELIST * CImageList::Detach() 2597 unsigned char * CMemFile::Detach() 2598 HMENU__ * CMenu::Detach() 2599 int CMonikerFile::Detach(CFileException *) 2600 IDataObject * COleDataObject::Detach() 2601 tagVARIANT COleSafeArray::Detach() 2602 IStream * COleStreamFile::Detach() 2603 tagVARIANT COleVariant::Detach() 2604 void * CSharedFile::Detach() 2605 HDC__ * CWindowlessDC::Detach() 2606 HWND__ * CWnd::Detach() 2607 IDispatch * COleDispatchDriver::DetachDispatch() 2608 void CAsyncSocket::DetachHandle(unsigned int,int) 2609 void COleControlSite::DetachWindow() 2610 void CWinApp::DevModeChange(char *) 2611 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2612 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2613 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2614 int CComboBox::Dir(unsigned int,char const *) 2615 int CComboBoxEx::Dir(unsigned int,char const *) 2616 int CListBox::Dir(unsigned int,char const *) 2617 int COleServerDoc::DiscardUndoState() 2618 long COleClientItem::XOleIPSite::DiscardUndoState() 2619 long COleControlSite::XOleIPSite::DiscardUndoState() 2620 void COleDispatchImpl::Disconnect() 2621 void CDHtmlDialog::DisconnectDHtmlElementEvents() 2622 void CDHtmlDialog::DisconnectDHtmlEvents() 2623 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2624 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2625 void CDocument::DisconnectViews() 2626 void CWinThread::DispatchThreadMessage(tagMSG *) 2627 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2628 int CRichEditCtrl::DisplayBand(tagRECT *) 2629 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 2630 int CWnd::DlgDirListA(char *,int,int,unsigned int) 2631 int CWnd::DlgDirListComboBoxA(char *,int,int,unsigned int) 2632 int CWnd::DlgDirSelect(char *,int) 2633 int CWnd::DlgDirSelectComboBox(char *,int) 2634 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2635 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2636 void CAsyncSocket::DoCallBack(unsigned int,long) 2637 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2638 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2639 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2640 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2641 void COleControl::DoClick() 2642 int COleFrameHook::DoContextSensitiveHelp(int) 2643 int COleConvertDialog::DoConvert(COleClientItem *) 2644 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2645 void CWnd::DoDataExchange(CDataExchange *) 2646 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2647 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2648 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2649 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2650 int COleFrameHook::DoEnableModeless(int) 2651 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2652 void CRecordset::DoFieldExchange(CFieldExchange *) 2653 int CDocument::DoFileSave() 2654 int CSplitterWnd::DoKeyboardSplit() 2655 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2656 int CColorDialog::DoModal() 2657 int CDialog::DoModal() 2658 int CFileDialog::DoModal() 2659 int CFontDialog::DoModal() 2660 int COleBusyDialog::DoModal() 2661 int COleChangeIconDialog::DoModal() 2662 int COleChangeSourceDialog::DoModal() 2663 int COleConvertDialog::DoModal() 2664 int COleInsertDialog::DoModal(unsigned long) 2665 int COleInsertDialog::DoModal() 2666 int COleLinksDialog::DoModal() 2667 int COlePasteSpecialDialog::DoModal() 2668 int COlePropertiesDialog::DoModal() 2669 int COleUpdateDialog::DoModal() 2670 int CPageSetupDialog::DoModal() 2671 int CPrintDialog::DoModal() 2672 int CPrintDialogEx::DoModal() 2673 int CPropertySheet::DoModal() 2674 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2675 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2676 void CControlBar::DoPaint(CDC *) 2677 void CDockBar::DoPaint(CDC *) 2678 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2679 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2680 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2681 int CView::DoPreparePrinting(CPrintInfo *) 2682 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2683 int CWinApp::DoPrintDialog(CPrintDialog *) 2684 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2685 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2686 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2687 void COleControl::DoPropExchange(CPropExchange *) 2688 int CDocument::DoSave(char const *,int) 2689 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2690 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2691 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2692 int CCmdUI::DoUpdate(CCmdTarget *,int) 2693 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2694 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2695 long COleControlSite::DoVerb(long,tagMSG *) 2696 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2697 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2698 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2699 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2700 void CWinApp::DoWaitCursor(int) 2701 void CPreviewView::DoZoom(unsigned int,CPoint) 2702 void CDC::DPtoHIMETRIC(tagSIZE *)const 2703 void CDC::DPtoLP(tagPOINT *,int)const 2704 void CDC::DPtoLP(tagRECT *)const 2705 void CDC::DPtoLP(tagSIZE *)const 2706 void CWnd::DragAcceptFiles(int) 2707 int CWnd::DragDetect(tagPOINT)const 2708 int CImageList::DragEnter(CWnd *,CPoint) 2709 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2710 unsigned int CDragListBox::Dragging(CPoint) 2711 int CImageList::DragLeave(CWnd *) 2712 long COleDropTarget::XDropTarget::DragLeave() 2713 int CImageList::DragMove(CPoint) 2714 void CReBarCtrl::DragMove(unsigned long) 2715 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2716 int CImageList::DragShowNolock(int) 2717 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2718 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2719 void CRectTracker::Draw(CDC *)const 2720 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2721 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2722 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2723 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2724 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2725 void CControlBar::DrawBorders(CDC *,CRect &) 2726 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2727 void COleControl::DrawContent(CDC *,CRect &) 2728 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2729 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2730 int CDC::DrawEscape(int,int,char const *) 2731 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2732 void CDC::DrawFocusRect(tagRECT const *) 2733 void CDockContext::DrawFocusRect(int) 2734 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2735 void CControlBar::DrawGripper(CDC *,CRect const &) 2736 int CDC::DrawIcon(int,int,HICON__ *) 2737 int CDC::DrawIcon(tagPOINT,HICON__ *) 2738 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2739 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2740 void CDragListBox::DrawInsert(int) 2741 void CBitmapButton::DrawItem(tagDRAWITEM*) 2742 void CButton::DrawItem(tagDRAWITEM*) 2743 void CCheckListBox::DrawItem(tagDRAWITEM*) 2744 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2745 void CComboBox::DrawItem(tagDRAWITEM*) 2746 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2747 void CListBox::DrawItem(tagDRAWITEM*) 2748 void CListCtrl::DrawItem(tagDRAWITEM*) 2749 void CListView::DrawItem(tagDRAWITEM*) 2750 void CMenu::DrawItem(tagDRAWITEM*) 2751 void CStatic::DrawItem(tagDRAWITEM*) 2752 void CStatusBar::DrawItem(tagDRAWITEM*) 2753 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2754 void CTabCtrl::DrawItem(tagDRAWITEM*) 2755 void CWnd::DrawMenuBar() 2756 void COleControl::DrawMetafile(CDC *,CRect &) 2757 void CDragListBox::DrawSingle(int) 2758 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2759 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2760 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2761 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2762 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2763 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2764 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,HBRUSH__ *) 2765 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,CBrush *) 2766 int CDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2767 int CDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2768 int CMetaFileDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2769 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2770 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2771 int CDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2772 int CDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2773 int CMetaFileDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2774 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2775 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2776 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2777 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2778 void CDragListBox::Dropped(int,CPoint) 2779 void CArchiveException::Dump(CDumpContext &)const 2780 void CAsyncMonikerFile::Dump(CDumpContext &)const 2781 void CAsyncSocket::Dump(CDumpContext &)const 2782 void CBitmap::Dump(CDumpContext &)const 2783 void CBitmapButton::Dump(CDumpContext &)const 2784 void CBrush::Dump(CDumpContext &)const 2785 void CByteArray::Dump(CDumpContext &)const 2786 void CCachedDataPathProperty::Dump(CDumpContext &)const 2787 void CClientDC::Dump(CDumpContext &)const 2788 void CCmdTarget::Dump(CDumpContext &)const 2789 void CColorDialog::Dump(CDumpContext &)const 2790 void CControlBar::Dump(CDumpContext &)const 2791 void CCtrlView::Dump(CDumpContext &)const 2792 void CDatabase::Dump(CDumpContext &)const 2793 void CDataPathProperty::Dump(CDumpContext &)const 2794 void CDC::Dump(CDumpContext &)const 2795 void CDialog::Dump(CDumpContext &)const 2796 void CDocItem::Dump(CDumpContext &)const 2797 void CDockBar::Dump(CDumpContext &)const 2798 void CDocManager::Dump(CDumpContext &)const 2799 void CDocObjectServer::Dump(CDumpContext &)const 2800 void CDocObjectServerItem::Dump(CDumpContext &)const 2801 void CDocTemplate::Dump(CDumpContext &)const 2802 void CDocument::Dump(CDumpContext &)const 2803 void CDWordArray::Dump(CDumpContext &)const 2804 void CDynLinkLibrary::Dump(CDumpContext &)const 2805 void CEditView::Dump(CDumpContext &)const 2806 void CFile::Dump(CDumpContext &)const 2807 void CFileDialog::Dump(CDumpContext &)const 2808 void CFileException::Dump(CDumpContext &)const 2809 void CFileFind::Dump(CDumpContext &)const 2810 void CFileStatus::Dump(CDumpContext &)const 2811 void CFindReplaceDialog::Dump(CDumpContext &)const 2812 void CFont::Dump(CDumpContext &)const 2813 void CFontDialog::Dump(CDumpContext &)const 2814 void CFormView::Dump(CDumpContext &)const 2815 void CFrameWnd::Dump(CDumpContext &)const 2816 void CFtpConnection::Dump(CDumpContext &)const 2817 void CFtpFileFind::Dump(CDumpContext &)const 2818 void CGdiObject::Dump(CDumpContext &)const 2819 void CGopherConnection::Dump(CDumpContext &)const 2820 void CGopherFile::Dump(CDumpContext &)const 2821 void CGopherFileFind::Dump(CDumpContext &)const 2822 void CHtmlEditDoc::Dump(CDumpContext &)const 2823 void CHtmlEditView::Dump(CDumpContext &)const 2824 void CHtmlView::Dump(CDumpContext &)const 2825 void CHttpConnection::Dump(CDumpContext &)const 2826 void CHttpFile::Dump(CDumpContext &)const 2827 void CImageList::Dump(CDumpContext &)const 2828 void CInternetConnection::Dump(CDumpContext &)const 2829 void CInternetException::Dump(CDumpContext &)const 2830 void CInternetFile::Dump(CDumpContext &)const 2831 void CInternetSession::Dump(CDumpContext &)const 2832 void CLongBinary::Dump(CDumpContext &)const 2833 void CMapPtrToPtr::Dump(CDumpContext &)const 2834 void CMapPtrToWord::Dump(CDumpContext &)const 2835 void CMapStringToOb::Dump(CDumpContext &)const 2836 void CMapStringToPtr::Dump(CDumpContext &)const 2837 void CMapStringToString::Dump(CDumpContext &)const 2838 void CMapWordToOb::Dump(CDumpContext &)const 2839 void CMapWordToPtr::Dump(CDumpContext &)const 2840 void CMDIChildWnd::Dump(CDumpContext &)const 2841 void CMDIFrameWnd::Dump(CDumpContext &)const 2842 void CMemFile::Dump(CDumpContext &)const 2843 void CMenu::Dump(CDumpContext &)const 2844 void CMonikerFile::Dump(CDumpContext &)const 2845 void CMultiDocTemplate::Dump(CDumpContext &)const 2846 void CObArray::Dump(CDumpContext &)const 2847 void CObject::Dump(CDumpContext &)const 2848 void CObList::Dump(CDumpContext &)const 2849 void COleBusyDialog::Dump(CDumpContext &)const 2850 void COleChangeIconDialog::Dump(CDumpContext &)const 2851 void COleChangeSourceDialog::Dump(CDumpContext &)const 2852 void COleClientItem::Dump(CDumpContext &)const 2853 void COleControl::Dump(CDumpContext &)const 2854 void COleConvertDialog::Dump(CDumpContext &)const 2855 void COleDataSource::Dump(CDumpContext &)const 2856 void COleDialog::Dump(CDumpContext &)const 2857 void COleDocIPFrameWnd::Dump(CDumpContext &)const 2858 void COleDocument::Dump(CDumpContext &)const 2859 void COleDropSource::Dump(CDumpContext &)const 2860 void COleDropTarget::Dump(CDumpContext &)const 2861 void COleInsertDialog::Dump(CDumpContext &)const 2862 void COleIPFrameWnd::Dump(CDumpContext &)const 2863 void COleLinkingDoc::Dump(CDumpContext &)const 2864 void COleLinksDialog::Dump(CDumpContext &)const 2865 void COleMessageFilter::Dump(CDumpContext &)const 2866 void COleObjectFactory::Dump(CDumpContext &)const 2867 void COlePasteSpecialDialog::Dump(CDumpContext &)const 2868 void COlePropertiesDialog::Dump(CDumpContext &)const 2869 void COleServerDoc::Dump(CDumpContext &)const 2870 void COleServerItem::Dump(CDumpContext &)const 2871 void COleStreamFile::Dump(CDumpContext &)const 2872 void COleUpdateDialog::Dump(CDumpContext &)const 2873 void CPageSetupDialog::Dump(CDumpContext &)const 2874 void CPaintDC::Dump(CDumpContext &)const 2875 void CPen::Dump(CDumpContext &)const 2876 void CPreviewDC::Dump(CDumpContext &)const 2877 void CPreviewView::Dump(CDumpContext &)const 2878 void CPrintDialog::Dump(CDumpContext &)const 2879 void CPrintDialogEx::Dump(CDumpContext &)const 2880 void CPropertyPage::Dump(CDumpContext &)const 2881 void CPropertySheet::Dump(CDumpContext &)const 2882 void CPtrArray::Dump(CDumpContext &)const 2883 void CPtrList::Dump(CDumpContext &)const 2884 void CRecordset::Dump(CDumpContext &)const 2885 void CRecordView::Dump(CDumpContext &)const 2886 void CRichEditCntrItem::Dump(CDumpContext &)const 2887 void CRichEditDoc::Dump(CDumpContext &)const 2888 void CRichEditView::Dump(CDumpContext &)const 2889 void CScrollView::Dump(CDumpContext &)const 2890 void CSingleDocTemplate::Dump(CDumpContext &)const 2891 void CSocket::Dump(CDumpContext &)const 2892 void CSocketFile::Dump(CDumpContext &)const 2893 void CSplitterWnd::Dump(CDumpContext &)const 2894 void CStatusBar::Dump(CDumpContext &)const 2895 void CStdioFile::Dump(CDumpContext &)const 2896 void CStringArray::Dump(CDumpContext &)const 2897 void CStringList::Dump(CDumpContext &)const 2898 void CSyncObject::Dump(CDumpContext &)const 2899 void CToolBar::Dump(CDumpContext &)const 2900 void CUIntArray::Dump(CDumpContext &)const 2901 void CView::Dump(CDumpContext &)const 2902 void CWinApp::Dump(CDumpContext &)const 2903 void CWindowDC::Dump(CDumpContext &)const 2904 void CWinThread::Dump(CDumpContext &)const 2905 void CWnd::Dump(CDumpContext &)const 2906 void CWordArray::Dump(CDumpContext &)const 2907 void CMemoryState::DumpAllObjectsSince()const 2908 CDumpContext & CDumpContext::DumpAsHex(__int64) 2909 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2910 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2911 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2912 CDumpContext & CDumpContext::DumpAsHex(int) 2913 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2914 CDumpContext & CDumpContext::DumpAsHex(long) 2915 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2916 void CRecordset::DumpFields(CDumpContext &)const 2917 void CMemoryState::DumpStatistics()const 2918 long COleControl::XDataObject::DUnadvise(unsigned long) 2919 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2920 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2921 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2922 CFile * CFile::Duplicate()const 2923 CFile * CInternetFile::Duplicate()const 2924 CFile * CMemFile::Duplicate()const 2925 CFile * COleStreamFile::Duplicate()const 2926 CFile * CSocketFile::Duplicate()const 2927 CFile * CStdioFile::Duplicate()const 2928 unsigned long const CEditView::dwStyleDefault 2929 void CRecordset::Edit() 2930 int CHeaderCtrl::EditFilter(int,int) 2931 CEdit * CListCtrl::EditLabel(int) 2932 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2933 long COlePropertyPage::XPropertyPage::EditProperty(long) 2934 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2935 unsigned char & CByteArray::ElementAt(int) 2936 unsigned long & CDWordArray::ElementAt(int) 2937 CObject * & CObArray::ElementAt(int) 2938 void * & CPtrArray::ElementAt(int) 2939 ATL::CStringT > > & CStringArray::ElementAt(int) 2940 unsigned int & CUIntArray::ElementAt(int) 2941 unsigned short & CWordArray::ElementAt(int) 2942 int CDC::Ellipse(int,int,int,int) 2943 int CDC::Ellipse(tagRECT const *) 2944 void ATL::CSimpleStringT::Empty() 2945 void ATL::CSimpleStringT::Empty() 2946 void CDBException::Empty() 2947 void COleDataSource::Empty() 2948 void CEdit::EmptyUndoBuffer() 2949 void CRichEditCtrl::EmptyUndoBuffer() 2950 void CCheckListBox::Enable(int,int) 2951 void CCmdUI::Enable(int) 2952 void COleCmdUI::Enable(int) 2953 void CStatusCmdUI::Enable(int) 2954 void CTestCmdUI::Enable(int) 2955 void CToolCmdUI::Enable(int) 2956 int CWinApp::Enable3dControls() 2957 void CWnd::EnableActiveAccessibility() 2958 void CCmdTarget::EnableAggregation() 2959 void CCmdTarget::EnableAutomation() 2960 void CRecordset::EnableBookmarks() 2961 void COleMessageFilter::EnableBusyDialog(int) 2962 int CToolBarCtrl::EnableButton(int,int) 2963 void COleDocument::EnableCompoundFile(int) 2964 void CCmdTarget::EnableConnections() 2965 void CControlBar::EnableDocking(unsigned long) 2966 void CFrameWnd::EnableDocking(unsigned long) 2967 void CReBar::EnableDocking(unsigned long) 2968 void CStatusBar::EnableDocking(unsigned long) 2969 void COleControlSite::EnableDSC() 2970 void CWinApp::EnableHtmlHelp() 2971 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2972 long CBrowserControlSite::EnableModeless(int) 2973 long CDHtmlDialog::EnableModeless(int) 2974 void CWinApp::EnableModeless(int) 2975 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2976 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2977 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2978 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2979 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2980 void COleMessageFilter::EnableNotRespondingDialog(int) 2981 int CScrollBar::EnableScrollBar(unsigned int) 2982 int CWnd::EnableScrollBar(int,unsigned int) 2983 void CWnd::EnableScrollBarCtrl(int,int) 2984 void CWinApp::EnableShellOpen() 2985 void COleControl::EnableSimpleFrame() 2986 void CPropertySheet::EnableStackedTabs(int) 2987 int CInternetSession::EnableStatusCallback(int) 2988 int CWnd::EnableToolTips(int) 2989 int CWnd::EnableTrackingToolTips(int) 2990 void CCmdTarget::EnableTypeLib() 2991 int COleControlSite::EnableWindow(int) 2992 int CWnd::EnableWindow(int) 2993 void COleMessageFilter::EndBusyState() 2994 void CAsyncMonikerFile::EndCallbacks() 2995 long COleLinkingDoc::EndDeferErrors(long) 2996 void CDialog::EndDialog(int) 2997 void CPropertyPage::EndDialog(int) 2998 void CPropertySheet::EndDialog(int) 2999 int CDC::EndDoc() 3000 void CDockContext::EndDrag() 3001 void CImageList::EndDrag() 3002 void CReBarCtrl::EndDrag() 3003 void CWnd::EndModalLoop(int) 3004 void CFrameWnd::EndModalState() 3005 void CWnd::EndModalState() 3006 int CDC::EndPage() 3007 void CWnd::EndPaint(tagPAINT*) 3008 int CDC::EndPath() 3009 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 3010 void CDockContext::EndResize() 3011 void CCmdTarget::EndWaitCursor() 3012 void COleDataObject::EnsureClipboardObject() 3013 long CWnd::EnsureStdObj() 3014 int CListCtrl::EnsureVisible(int,int) 3015 int CTreeCtrl::EnsureVisible(_TREEITEM *) 3016 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3017 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3018 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3019 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3020 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 3021 int COlePropertyPage::EnumChildProc(HWND__ *,long) 3022 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 3023 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 3024 int COlePropertyPage::EnumControls(HWND__ *,long) 3025 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3026 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3027 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3028 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3029 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3030 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3031 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3032 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3033 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 3034 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3035 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3036 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 3037 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3038 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3039 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3040 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3041 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 3042 int CRgn::EqualRgn(CRgn *)const 3043 void CControlBar::EraseNonClient() 3044 int CFileException::ErrnoToException(int) 3045 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 3046 int CDC::Escape(int,int,char const *,int,char *) 3047 int CDC::Escape(int,int,char const *,void *) 3048 int CMetaFileDC::Escape(int,int,char const *,void *) 3049 int CPreviewDC::Escape(int,int,char const *,void *) 3050 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 3051 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3052 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3053 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3054 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3055 int COleControl::ExchangeExtent(CPropExchange *) 3056 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3057 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3058 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3059 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3060 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3061 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3062 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3063 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3064 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3065 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3066 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3067 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3068 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3069 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3070 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3071 void COleControl::ExchangeStockProps(CPropExchange *) 3072 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3073 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 3074 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3075 int CDC::ExcludeClipRect(int,int,int,int) 3076 int CDC::ExcludeClipRect(tagRECT const *) 3077 int CDC::ExcludeUpdateRgn(CWnd *) 3078 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3079 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3080 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 3081 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 3082 int CHtmlEditView::ExecHandler(unsigned int) 3083 int CWnd::ExecuteDlgInit(void *) 3084 int CWnd::ExecuteDlgInit(char const *) 3085 void CRecordset::ExecuteSetPosUpdate() 3086 void CDatabase::ExecuteSQL(char const *) 3087 void CRecordset::ExecuteUpdateSQL() 3088 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 3089 void CFrameWnd::ExitHelpMode() 3090 int COleControlModule::ExitInstance() 3091 int CWinApp::ExitInstance() 3092 int CWinThread::ExitInstance() 3093 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 3094 unsigned long CCmdTarget::ExternalAddRef() 3095 void CCmdTarget::ExternalDisconnect() 3096 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 3097 unsigned long CCmdTarget::ExternalRelease() 3098 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 3099 HICON__ * CImageList::ExtractIconA(int) 3100 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3101 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3102 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3103 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3104 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3105 void CDataExchange::Fail() 3106 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3107 short CRecordset::FetchData(unsigned short,long,unsigned long *) 3108 void CArchive::FillBuffer(unsigned int) 3109 unsigned long CFontDialog::FillInLogFont(_charformat const &) 3110 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 3111 void CScrollView::FillOutsideRect(CDC *,CBrush *) 3112 int CDC::FillPath() 3113 void CDC::FillRect(tagRECT const *,CBrush *) 3114 int CDC::FillRgn(CRgn *,CBrush *) 3115 void CDC::FillSolidRect(int,int,int,int,unsigned long) 3116 void CDC::FillSolidRect(tagRECT const *,unsigned long) 3117 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 3118 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 3119 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 3120 void CWnd::FilterToolTipMessage(tagMSG *) 3121 int ATL::CStringT > >::Find(wchar_t,int)const 3122 int ATL::CStringT > >::Find(wchar_t const *,int)const 3123 int ATL::CStringT > >::Find(char,int)const 3124 int ATL::CStringT > >::Find(char const *,int)const 3125 __POSITION * CObList::Find(CObject *,__POSITION *)const 3126 __POSITION * CPtrList::Find(void *,__POSITION *)const 3127 __POSITION * CStringList::Find(char const *,__POSITION *)const 3128 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 3129 int CDockBar::FindBar(CControlBar *,int) 3130 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 3131 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 3132 int CFileFind::FindFile(char const *,unsigned long) 3133 int CFtpFileFind::FindFile(char const *,unsigned long) 3134 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 3135 int CGopherFileFind::FindFile(char const *,unsigned long) 3136 __POSITION * CObList::FindIndex(int)const 3137 __POSITION * CPtrList::FindIndex(int)const 3138 __POSITION * CStringList::FindIndex(int)const 3139 int CListCtrl::FindItem(tagLVFINDINFOA *,int)const 3140 COleControlSite * COleControlContainer::FindItem(unsigned int)const 3141 int CFindReplaceDialog::FindNext()const 3142 int CFileFind::FindNextFileA() 3143 int CFtpFileFind::FindNextFileA() 3144 int CGopherFileFind::FindNextFileA() 3145 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 3146 int ATL::CStringT > >::FindOneOf(char const *)const 3147 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 3148 int CDHtmlDialog::FindSinkForObject(char const *) 3149 char const * CRecordset::FindSQLToken(char const *,char const *) 3150 int CComboBox::FindString(int,char const *)const 3151 int CComboBoxEx::FindString(int,char const *)const 3152 int CListBox::FindString(int,char const *)const 3153 int CComboBox::FindStringExact(int,char const *)const 3154 int CListBox::FindStringExact(int,char const *)const 3155 int CEditView::FindTextA(char const *,int,int) 3156 long CRichEditCtrl::FindTextA(unsigned long,_findtextexa *)const 3157 int CRichEditView::FindTextA(_AFX_RICHEDIT_STATE *) 3158 int CRichEditView::FindTextA(char const *,int,int,int) 3159 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3160 int CRichEditView::FindTextSimple(char const *,int,int,int) 3161 CWnd * CWnd::FindWindowA(char const *,char const *) 3162 CWnd * CWnd::FindWindowExA(HWND__ *,HWND__ *,char const *,char const *) 3163 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3164 int COleClientItem::FinishCreate(long) 3165 void COleControl::FireClick() 3166 void COleControl::FireDblClick() 3167 void COleControl::FireError(long,char const *,unsigned int) 3168 void COleControl::FireEvent(long,unsigned char *,...) 3169 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3170 void COleControl::FireEventV(long,unsigned char *,char *) 3171 void COleControl::FireKeyDown(unsigned short *,short) 3172 void COleControl::FireKeyPress(unsigned short *) 3173 void COleControl::FireKeyUp(unsigned short *,short) 3174 void COleControl::FireMouseDown(short,short,long,long) 3175 void COleControl::FireMouseMove(short,short,long,long) 3176 void COleControl::FireMouseUp(short,short,long,long) 3177 void COleControl::FireReadyStateChange() 3178 void CRecordset::Fixups() 3179 int CWnd::FlashWindow(int) 3180 int CDC::FlattenPath() 3181 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3182 int CDC::FloodFill(int,int,unsigned long) 3183 void CArchive::Flush() 3184 void CDumpContext::Flush() 3185 void CFile::Flush() 3186 void CInternetFile::Flush() 3187 void CMemFile::Flush() 3188 void CMonikerFile::Flush() 3189 void COleStreamFile::Flush() 3190 void CSocketFile::Flush() 3191 void CStdioFile::Flush() 3192 void COleDataSource::FlushClipboard() 3193 int CRecordset::FlushResultSet() 3194 int CEdit::FmtLines(int) 3195 void ATL::CSimpleStringT::Fork(int) 3196 void ATL::CSimpleStringT::Fork(int) 3197 void ATL::CStringT > >::Format(unsigned int,...) 3198 void ATL::CStringT > >::Format(wchar_t const *,...) 3199 void ATL::CStringT > >::Format(unsigned int,...) 3200 void ATL::CStringT > >::Format(char const *,...) 3201 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3202 void ATL::CStringT > >::FormatMessageA(unsigned int,...) 3203 void ATL::CStringT > >::FormatMessageA(char const *,...) 3204 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 3205 long CRichEditCtrl::FormatRange(_formatrange *,int) 3206 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 3207 void ATL::CStringT > >::FormatV(char const *,char *) 3208 void COleControl::ForwardActivationMsg(tagMSG *) 3209 void CDC::FrameRect(tagRECT const *,CBrush *) 3210 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3211 void CAfxStringMgr::Free(ATL::CStringData *) 3212 void CDatabase::Free() 3213 void CFixedAlloc::Free(void *) 3214 void CFixedAllocNoSync::Free(void *) 3215 void CMemFile::Free(unsigned char *) 3216 void CSharedFile::Free(unsigned char *) 3217 void CFixedAlloc::FreeAll() 3218 void CFixedAllocNoSync::FreeAll() 3219 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3220 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3221 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3222 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3223 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3224 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3225 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3226 void CRecordset::FreeDataCache() 3227 void CPlex::FreeDataChain() 3228 void ATL::CSimpleStringT::FreeExtra() 3229 void ATL::CSimpleStringT::FreeExtra() 3230 void CByteArray::FreeExtra() 3231 void CDWordArray::FreeExtra() 3232 void CObArray::FreeExtra() 3233 void CPtrArray::FreeExtra() 3234 void CStringArray::FreeExtra() 3235 void CUIntArray::FreeExtra() 3236 void CWordArray::FreeExtra() 3237 void CObList::FreeNode(CObList::CNode *) 3238 void CPtrList::FreeNode(CPtrList::CNode *) 3239 void CStringList::FreeNode(CStringList::CNode *) 3240 void CRecordset::FreeRowset() 3241 void CThreadSlotData::FreeSlot(int) 3242 void CProperty::FreeValue() 3243 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3244 void COleControlContainer::FreezeAllEvents(int) 3245 void COleControlSite::FreezeEvents(int) 3246 long COleControl::XOleControl::FreezeEvents(int) 3247 int COleClientItem::FreezeLink() 3248 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3249 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3250 CBrush * CBrush::FromHandle(HBRUSH__ *) 3251 CDC * CDC::FromHandle(HDC__ *) 3252 CFont * CFont::FromHandle(HFONT__ *) 3253 CGdiObject * CGdiObject::FromHandle(void *) 3254 CObject * CHandleMap::FromHandle(void *) 3255 CImageList * CImageList::FromHandle(_IMAGELIST *) 3256 CMenu * CMenu::FromHandle(HMENU__ *) 3257 CPalette * CPalette::FromHandle(HPALETTE__ *) 3258 CPen * CPen::FromHandle(HPEN__ *) 3259 CRgn * CRgn::FromHandle(HRGN__ *) 3260 CSocket * CSocket::FromHandle(unsigned int) 3261 CWnd * CWnd::FromHandle(HWND__ *) 3262 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3263 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3264 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3265 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3266 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3267 CRuntime* CRuntimeClass::FromName(char const *) 3268 void * CProperty::Get(unsigned long *) 3269 void * CProperty::Get() 3270 void * CPropertySection::Get(unsigned long) 3271 void * CPropertySection::Get(unsigned long,unsigned long *) 3272 void * CPropertySet::Get(_GUID,unsigned long) 3273 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3274 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3275 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3276 long CWnd::get_accChildCount(long *) 3277 long CWnd::XAccessible::get_accChildCount(long *) 3278 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3279 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3280 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3281 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3282 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3283 long CWnd::get_accFocus(tagVARIANT *) 3284 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3285 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3286 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3287 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3288 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3289 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3290 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3291 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3292 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3293 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3294 long CWnd::get_accParent(IDispatch * *) 3295 long CWnd::XAccessible::get_accParent(IDispatch * *) 3296 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3297 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3298 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3299 long CWnd::get_accSelection(tagVARIANT *) 3300 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3301 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3302 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3303 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3304 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3305 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3306 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3307 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3308 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3309 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3310 long CWnd::GetAccessibleChildCount() 3311 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3312 unsigned long COleControl::GetActivationPolicy() 3313 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3314 CDocument * CFrameWnd::GetActiveDocument() 3315 CFrameWnd * CFrameWnd::GetActiveFrame() 3316 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 3317 int CPropertySheet::GetActiveIndex()const 3318 CPropertyPage * CPropertySheet::GetActivePage()const 3319 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3320 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3321 CView * CFrameWnd::GetActiveView()const 3322 CView * COleClientItem::GetActiveView()const 3323 IOleDocumentView * COleDocObjectItem::GetActiveView()const 3324 CRichEditView * CRichEditCntrItem::GetActiveView() 3325 CWnd * CWnd::GetActiveWindow() 3326 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 3327 int CIPAddressCtrl::GetAddress(unsigned long &) 3328 int CHtmlView::GetAddressBar()const 3329 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3330 int ATL::CSimpleStringT::GetAllocLength()const 3331 int ATL::CSimpleStringT::GetAllocLength()const 3332 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 3333 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3334 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3335 int CToolBarCtrl::GetAnchorHighlight()const 3336 int CListBox::GetAnchorIndex()const 3337 short COleControl::GetAppearance() 3338 IDispatch * CHtmlView::GetApplication()const 3339 HKEY__ * CWinApp::GetAppRegistryKey() 3340 int CDC::GetArcDirection()const 3341 CSize CDC::GetAspectRatioFilter()const 3342 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3343 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3344 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3345 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3346 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3347 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3348 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3349 wchar_t ATL::CSimpleStringT::GetAt(int)const 3350 char ATL::CSimpleStringT::GetAt(int)const 3351 unsigned char CByteArray::GetAt(int)const 3352 unsigned long CDWordArray::GetAt(int)const 3353 CObject * CObArray::GetAt(int)const 3354 CObject * & CObList::GetAt(__POSITION *) 3355 CObject const * & CObList::GetAt(__POSITION *)const 3356 void * CPtrArray::GetAt(int)const 3357 void * & CPtrList::GetAt(__POSITION *) 3358 void const * & CPtrList::GetAt(__POSITION *)const 3359 ATL::CStringT > > const & CStringArray::GetAt(int)const 3360 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3361 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3362 unsigned int CUIntArray::GetAt(int)const 3363 unsigned short CWordArray::GetAt(int)const 3364 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3365 unsigned long COleControl::GetBackColor() 3366 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3367 unsigned int CReBarCtrl::GetBandCount()const 3368 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOA *)const 3369 unsigned int CReBarCtrl::GetBarHeight()const 3370 void CControlBar::GetBarInfo(CControlBarInfo *) 3371 void CDockBar::GetBarInfo(CControlBarInfo *) 3372 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3373 unsigned long CControlBar::GetBarStyle() 3374 unsigned int CSpinButtonCtrl::GetBase()const 3375 unsigned long CAsyncMonikerFile::GetBindInfo()const 3376 IBinding * CAsyncMonikerFile::GetBinding()const 3377 int CBitmap::GetBitmap(tagBITMAP *) 3378 HBITMAP__ * CButton::GetBitmap()const 3379 HBITMAP__ * CStatic::GetBitmap()const 3380 int CToolBarCtrl::GetBitmap(int)const 3381 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3382 CSize CBitmap::GetBitmapDimension()const 3383 unsigned int CToolBarCtrl::GetBitmapFlags()const 3384 int CHeaderCtrl::GetBitmapMargin()const 3385 unsigned long CDC::GetBkColor()const 3386 unsigned long CImageList::GetBkColor()const 3387 unsigned long CListCtrl::GetBkColor()const 3388 unsigned long CReBarCtrl::GetBkColor()const 3389 unsigned long CTreeCtrl::GetBkColor()const 3390 int CListCtrl::GetBkImage(tagLVBKIMAGEA *)const 3391 int CDC::GetBkMode()const 3392 void * CBlobProperty::GetBlob() 3393 void CRecordset::GetBookmark(CDBVariant &) 3394 unsigned long CDatabase::GetBookmarkPersistence()const 3395 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3396 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3397 CRect CControlBar::GetBorders()const 3398 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3399 int CStatusBarCtrl::GetBorders(int *)const 3400 short COleControl::GetBorderStyle() 3401 long CDataSourceControl::GetBoundClientRow() 3402 int CRecordset::GetBoundFieldIndex(void *) 3403 int CRecordset::GetBoundParamIndex(void *) 3404 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3405 CPoint CDC::GetBrushOrg()const 3406 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOA *)const 3407 CWnd * CSliderCtrl::GetBuddy(int)const 3408 CWnd * CSpinButtonCtrl::GetBuddy()const 3409 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 3410 wchar_t * ATL::CSimpleStringT::GetBuffer() 3411 char * ATL::CSimpleStringT::GetBuffer(int) 3412 char * ATL::CSimpleStringT::GetBuffer() 3413 unsigned int CEditView::GetBufferLength()const 3414 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3415 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3416 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3417 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 3418 char * ATL::CSimpleStringT::GetBufferSetLength(int) 3419 int CHtmlView::GetBusy()const 3420 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3421 int CToolBarCtrl::GetButtonCount()const 3422 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3423 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOA *)const 3424 unsigned long CToolBarCtrl::GetButtonSize()const 3425 unsigned int CButton::GetButtonStyle()const 3426 unsigned int CToolBar::GetButtonStyle(int)const 3427 ATL::CStringT > > CToolBar::GetButtonText(int)const 3428 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3429 void COleSafeArray::GetByteArray(CByteArray &) 3430 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3431 unsigned short CPropertySet::GetByteOrder() 3432 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3433 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3434 unsigned int CListCtrl::GetCallbackMask()const 3435 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3436 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3437 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3438 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3439 CWnd * COleControl::GetCapture() 3440 CWnd * CWnd::GetCapture() 3441 long COleControlSite::XOleIPSite::GetCapture() 3442 int CListBox::GetCaretIndex()const 3443 CPoint CWnd::GetCaretPos() 3444 void CSliderCtrl::GetChannelRect(tagRECT *)const 3445 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABC *)const 3446 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABCFLOAT *)const 3447 unsigned long CDC::GetCharacterPlacementA(ATL::CStringT > > &,int,tagGCP_RESULTSA *,unsigned long)const 3448 unsigned long CDC::GetCharacterPlacementA(char const *,int,int,tagGCP_RESULTSA *,unsigned long)const 3449 void CFontDialog::GetCharFormat(_charformat &)const 3450 CHARFORMAT2A & CRichEditView::GetCharFormatSelection() 3451 CPoint CRichEditCtrl::GetCharPos(long)const 3452 int CDC::GetCharWidthA(unsigned int,unsigned int,int *)const 3453 int CDC::GetCharWidthA(unsigned int,unsigned int,float *)const 3454 int CButton::GetCheck()const 3455 int CCheckListBox::GetCheck(int) 3456 int CListCtrl::GetCheck(int)const 3457 int CTreeCtrl::GetCheck(_TREEITEM *)const 3458 int CWnd::GetCheckedRadioButton(int,int) 3459 unsigned int CCheckListBox::GetCheckStyle() 3460 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3461 long CBlobProperty::GetClassID(_GUID *) 3462 void COleClientItem::GetClassID(_GUID *)const 3463 _GUID const & COleConvertDialog::GetClassID()const 3464 _GUID const & COleInsertDialog::GetClassID()const 3465 _GUID const & COleObjectFactory::GetClassID()const 3466 _GUID CPropertySet::GetClassID() 3467 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3468 long COleControl::XPersistMemory::GetClassID(_GUID *) 3469 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3470 long COleControl::XPersistStorage::GetClassID(_GUID *) 3471 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3472 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3473 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 3474 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3475 void COleControl::GetClientOffset(long *,long *)const 3476 void COleControl::GetClientRect(tagRECT *)const 3477 void CWnd::GetClientRect(tagRECT *)const 3478 IOleClientSite * COleClientItem::GetClientSite() 3479 IOleClientSite * COleControl::GetClientSite() 3480 IOleClientSite * COleServerDoc::GetClientSite()const 3481 IOleClientSite * CRichEditCntrItem::GetClientSite() 3482 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3483 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3484 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3485 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3486 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3487 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3488 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3489 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3490 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3491 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3492 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3493 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3494 COleDataSource * COleDataSource::GetClipboardOwner() 3495 CWnd * CWnd::GetClipboardOwner() 3496 CWnd * CWnd::GetClipboardViewer() 3497 int CDC::GetClipBox(tagRECT *)const 3498 int CMetaFileDC::GetClipBox(tagRECT *)const 3499 unsigned long CColorDialog::GetColor()const 3500 unsigned long CFontDialog::GetColor()const 3501 unsigned long CMonthCalCtrl::GetColor(int)const 3502 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3503 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 3504 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3505 int CListCtrl::GetColumn(int,tagLVCOLUMNA *)const 3506 int CSplitterWnd::GetColumnCount()const 3507 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3508 int CListCtrl::GetColumnOrderArray(int *,int) 3509 int CListCtrl::GetColumnWidth(int)const 3510 CComboBox * CComboBoxEx::GetComboBoxCtrl() 3511 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 3512 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 3513 ATL::CStringT > > const & CDatabase::GetConnect()const 3514 void CDatabase::GetConnectInfo() 3515 int CConnectionPoint::GetConnectionCount() 3516 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3517 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3518 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3519 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 3520 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 3521 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3522 CPtrArray const * CConnectionPoint::GetConnections() 3523 IConnectionPointContainer * CConnectionPoint::GetContainer() 3524 IDispatch * CHtmlView::GetContainer()const 3525 IOleItemContainer * COleDocument::GetContainer() 3526 IOleItemContainer * COleLinkingDoc::GetContainer() 3527 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3528 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3529 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3530 unsigned long CInternetConnection::GetContext()const 3531 unsigned long CInternetFile::GetContext()const 3532 unsigned long CInternetSession::GetContext()const 3533 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3534 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3535 COleControl * CDataPathProperty::GetControl() 3536 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3537 COleControlContainer * CWnd::GetControlContainer() 3538 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 3539 unsigned long COleControl::GetControlFlags() 3540 void COleControlSite::GetControlInfo() 3541 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3542 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3543 IUnknown * CCmdTarget::GetControllingUnknown() 3544 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3545 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 3546 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 3547 void COleControl::GetControlSize(int *,int *) 3548 int COlePropertyPage::GetControlStatus(unsigned int) 3549 IUnknown * CWnd::GetControlUnknown() 3550 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3551 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 3552 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 3553 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 3554 int CPrintDialog::GetCopies()const 3555 int CPrintDialogEx::GetCopies()const 3556 int CByteArray::GetCount()const 3557 int CComboBox::GetCount()const 3558 int CControlBar::GetCount()const 3559 int CDWordArray::GetCount()const 3560 int CListBox::GetCount()const 3561 int CMapPtrToPtr::GetCount()const 3562 int CMapPtrToWord::GetCount()const 3563 int CMapStringToOb::GetCount()const 3564 int CMapStringToPtr::GetCount()const 3565 int CMapStringToString::GetCount()const 3566 int CMapWordToOb::GetCount()const 3567 int CMapWordToPtr::GetCount()const 3568 int CObArray::GetCount()const 3569 int CObList::GetCount()const 3570 unsigned long CPropertySection::GetCount() 3571 unsigned long CPropertySet::GetCount() 3572 int CPtrArray::GetCount()const 3573 int CPtrList::GetCount()const 3574 int CStringArray::GetCount()const 3575 int CStringList::GetCount()const 3576 unsigned int CTreeCtrl::GetCount()const 3577 int CUIntArray::GetCount()const 3578 int CWordArray::GetCount()const 3579 int CListCtrl::GetCountPerPage()const 3580 int CFileFind::GetCreationTime(ATL::CTime &)const 3581 int CFileFind::GetCreationTime(_FILETIME *)const 3582 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3583 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3584 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3585 int CTabCtrl::GetCurFocus()const 3586 CBitmap * CDC::GetCurrentBitmap()const 3587 CBrush * CDC::GetCurrentBrush()const 3588 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 3589 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 3590 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3591 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 3592 CFont * CDC::GetCurrentFont()const 3593 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 3594 tagMSG const * CWnd::GetCurrentMessage() 3595 CPalette * CDC::GetCurrentPalette()const 3596 CPen * CDC::GetCurrentPen()const 3597 CPoint CDC::GetCurrentPosition()const 3598 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3599 int CComboBox::GetCurSel()const 3600 int CListBox::GetCurSel()const 3601 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3602 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3603 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3604 int CTabCtrl::GetCurSel()const 3605 HICON__ * CButton::GetCursor() 3606 IUnknown * CDataBoundProperty::GetCursor() 3607 IUnknown * CDataSourceControl::GetCursor() 3608 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3609 HICON__ * CStatic::GetCursor() 3610 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3611 int CDatabase::GetCursorCommitBehavior()const 3612 int CDatabase::GetCursorRollbackBehavior()const 3613 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3614 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3615 unsigned char * CByteArray::GetData() 3616 unsigned char const * CByteArray::GetData()const 3617 unsigned long * CDWordArray::GetData() 3618 unsigned long const * CDWordArray::GetData()const 3619 CObject * * CObArray::GetData() 3620 CObject const * * CObArray::GetData()const 3621 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3622 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3623 void * * CPtrArray::GetData() 3624 void const * * CPtrArray::GetData()const 3625 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3626 ATL::CStringT > > * CStringArray::GetData() 3627 ATL::CStringT > > const * CStringArray::GetData()const 3628 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3629 unsigned int * CUIntArray::GetData() 3630 unsigned int const * CUIntArray::GetData()const 3631 unsigned short * CWordArray::GetData() 3632 unsigned short const * CWordArray::GetData()const 3633 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3634 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3635 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3636 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3637 ATL::CStringT > > CDatabase::GetDatabaseName()const 3638 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3639 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3640 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3641 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3642 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3643 CNoTrackObject * CThreadLocalObject::GetDataNA() 3644 IDataObject * COleServerItem::GetDataObject() 3645 COleControl::CControlDataSource * COleControl::GetDataSource() 3646 COleDataSource * COleServerItem::GetDataSource() 3647 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3648 CDC * CWnd::GetDC() 3649 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3650 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3651 HACCEL__ * CDocument::GetDefaultAccelerator() 3652 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3653 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3654 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 3655 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 3656 ATL::CStringT > > CRecordset::GetDefaultConnect() 3657 short CRecordset::GetDefaultFieldType(short) 3658 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3659 HMENU__ * CDocument::GetDefaultMenu() 3660 HMENU__ * COleServerDoc::GetDefaultMenu() 3661 int CPrintDialog::GetDefaults() 3662 int CPrintDialogEx::GetDefaults() 3663 ATL::CStringT > > CRecordset::GetDefaultSQL() 3664 unsigned long COccManager::GetDefBtnCode(CWnd *) 3665 unsigned long COleControlSite::GetDefBtnCode() 3666 unsigned long CDialog::GetDefID()const 3667 int CToolTipCtrl::GetDelayTime(unsigned long)const 3668 int CDumpContext::GetDepth()const 3669 CWnd * CWnd::GetDescendantWindow(int,int)const 3670 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3671 CWnd * CWnd::GetDesktopWindow() 3672 int CDC::GetDeviceCaps(int)const 3673 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 3674 ATL::CStringT > > CPrintDialog::GetDeviceName()const 3675 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 3676 CPoint CScrollView::GetDeviceScrollPosition()const 3677 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3678 _devicemodeA * CPageSetupDialog::GetDevMode()const 3679 _devicemodeA * CPrintDialog::GetDevMode()const 3680 _devicemodeA * CPrintDialogEx::GetDevMode()const 3681 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3682 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3683 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3684 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3685 DHtmlEventMapEntry const * GetDHtmlEventMap() 3686 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 3687 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 3688 unsigned long COleSafeArray::GetDim() 3689 CImageList * CToolBarCtrl::GetDisabledImageList()const 3690 int CCmdTarget::GetDispatchIID(_GUID *) 3691 int COleControl::GetDispatchIID(_GUID *) 3692 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3693 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3694 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3695 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName() 3696 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 3697 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3698 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3699 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3700 int COleControlSite::GetDlgCtrlID()const 3701 int CWnd::GetDlgCtrlID()const 3702 CWnd * COleControlContainer::GetDlgItem(int)const 3703 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3704 CWnd * CWnd::GetDlgItem(int)const 3705 void CWnd::GetDlgItem(int,HWND__ * *)const 3706 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3707 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3708 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 3709 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 3710 int CWnd::GetDlgItemTextA(int,char *,int)const 3711 CFrameWnd * COleIPFrameWnd::GetDocFrame() 3712 CDockBar * CDockContext::GetDockBar(unsigned long) 3713 CControlBar * CDockBar::GetDockedControlBar(int)const 3714 int CDockBar::GetDockedCount()const 3715 int CDockBar::GetDockedVisibleCount()const 3716 CFrameWnd * CControlBar::GetDockingFrame()const 3717 void CFrameWnd::GetDockState(CDockState &)const 3718 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3719 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3720 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 3721 CDocTemplate * CDocument::GetDocTemplate()const 3722 CDocument * CDocItem::GetDocument()const 3723 COleDocument * COleClientItem::GetDocument()const 3724 COleServerDoc * COleServerItem::GetDocument()const 3725 CRichEditDoc * CRichEditCntrItem::GetDocument() 3726 CRichEditDoc * CRichEditView::GetDocument()const 3727 CDocument * CView::GetDocument()const 3728 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3729 int CDocManager::GetDocumentCount() 3730 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3731 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 3732 enum tagDVASPECT COleClientItem::GetDrawAspect()const 3733 enum tagDVASPECT COleConvertDialog::GetDrawAspect()const 3734 enum tagDVASPECT COleInsertDialog::GetDrawAspect()const 3735 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect()const 3736 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 3737 ATL::CStringT > > CPrintDialog::GetDriverName()const 3738 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 3739 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 3740 void CComboBox::GetDroppedControlRect(tagRECT *)const 3741 int CComboBox::GetDroppedState()const 3742 int CComboBox::GetDroppedWidth()const 3743 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 3744 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 3745 IDropTarget * CReBarCtrl::GetDropTarget()const 3746 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 3747 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 3748 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3749 IUnknown * CWnd::GetDSCCursor() 3750 CEdit * CListCtrl::GetEditControl()const 3751 CEdit * CTreeCtrl::GetEditControl()const 3752 CEdit * CComboBoxEx::GetEditCtrl() 3753 CEdit & CEditView::GetEditCtrl()const 3754 unsigned long CComboBox::GetEditSel()const 3755 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 3756 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 3757 void COleSafeArray::GetElement(long *,void *) 3758 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 3759 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 3760 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 3761 wchar_t * CDHtmlDialog::GetElementText(char const *) 3762 unsigned long COleSafeArray::GetElemSize() 3763 COleServerItem * COleServerDoc::GetEmbeddedItem() 3764 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3765 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3766 int COleControl::GetEnabled() 3767 HENHMETAFILE__ * CStatic::GetEnhMetaFileA()const 3768 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3769 int CPalette::GetEntryCount() 3770 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 3771 int ATL::CStringT > >::GetEnvironmentVariableA(wchar_t const *) 3772 int ATL::CStringT > >::GetEnvironmentVariableA(char const *) 3773 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *) 3774 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *) 3775 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 3776 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *) 3777 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *) 3778 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *) 3779 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *) 3780 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *) 3781 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 3782 int COleControlSite::GetEventIID(_GUID *) 3783 AFX_EVENTMAP const * COleControl::GetEventMap()const 3784 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 3785 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 3786 long CRichEditCtrl::GetEventMask()const 3787 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3788 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3789 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 3790 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 3791 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 3792 unsigned long COleControlSite::GetExStyle()const 3793 unsigned long CWnd::GetExStyle()const 3794 IDispatch * COleControl::GetExtendedControl() 3795 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3796 unsigned long CComboBoxEx::GetExtendedStyle()const 3797 unsigned long CListCtrl::GetExtendedStyle() 3798 unsigned long CTabCtrl::GetExtendedStyle() 3799 unsigned long CToolBarCtrl::GetExtendedStyle()const 3800 int CComboBox::GetExtendedUI()const 3801 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3802 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3803 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3804 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3805 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3806 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3807 long CBrowserControlSite::GetExternal(IDispatch * *) 3808 long CDHtmlDialog::GetExternal(IDispatch * *) 3809 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 3810 int CPen::GetExtLogPen(tagEXTLOGPEN *) 3811 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3812 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3813 ATL::CStringT > > CFontDialog::GetFaceName()const 3814 short CRecordset::GetFieldIndexByName(char const *) 3815 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3816 unsigned char CRecordset::GetFieldStatus(unsigned long) 3817 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3818 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3819 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3820 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 3821 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 3822 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 3823 CFile * CArchive::GetFile()const 3824 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 3825 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 3826 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3827 ATL::CStringT > > CFileDialog::GetFileExt()const 3828 ATL::CStringT > > CFile::GetFileName()const 3829 ATL::CStringT > > CFileDialog::GetFileName()const 3830 ATL::CStringT > > CFileFind::GetFileName()const 3831 ATL::CStringT > > CGopherFileFind::GetFileName()const 3832 ATL::CStringT > > COleChangeSourceDialog::GetFileName() 3833 ATL::CStringT > > CFile::GetFilePath()const 3834 ATL::CStringT > > CFileFind::GetFilePath()const 3835 ATL::CStringT > > CGopherFileFind::GetFilePath()const 3836 ATL::CStringT > > CFile::GetFileTitle()const 3837 ATL::CStringT > > CFileDialog::GetFileTitle()const 3838 ATL::CStringT > > CFileFind::GetFileTitle()const 3839 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 3840 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3841 ATL::CStringT > > CFileFind::GetFileURL()const 3842 ATL::CStringT > > CFtpFileFind::GetFileURL()const 3843 ATL::CStringT > > CGopherFileFind::GetFileURL()const 3844 ATL::CStringT > > CHttpFile::GetFileURL()const 3845 ATL::CStringT > > CFindReplaceDialog::GetFindString()const 3846 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3847 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3848 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3849 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3850 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3851 CFrameWnd * COleDocument::GetFirstFrame() 3852 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 3853 __POSITION * CDocument::GetFirstViewPosition()const 3854 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 3855 int CEdit::GetFirstVisibleLine()const 3856 int CRichEditCtrl::GetFirstVisibleLine()const 3857 CWnd * COleControl::GetFocus() 3858 CWnd * CWnd::GetFocus() 3859 long COleControlSite::XOleIPSite::GetFocus() 3860 ATL::CStringT > > CFileDialog::GetFolderPath()const 3861 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3862 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3863 IFontDisp * COleControl::GetFont() 3864 CFont * CWnd::GetFont()const 3865 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 3866 IFontDisp * CFontHolder::GetFontDispatch() 3867 HFONT__ * CFontHolder::GetFontHandle(long,long) 3868 HFONT__ * CFontHolder::GetFontHandle() 3869 unsigned long CDC::GetFontLanguageInfo()const 3870 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3871 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 3872 unsigned long COleControl::GetForeColor() 3873 CWnd * CWnd::GetForegroundWindow() 3874 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc()const 3875 _GUID CPropertySection::GetFormatID() 3876 unsigned short CPropertySet::GetFormatVersion() 3877 int CPrintDialog::GetFromPage()const 3878 unsigned int CPrintInfo::GetFromPage()const 3879 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix() 3880 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 3881 ATL::CStringT > > CHtmlView::GetFullName()const 3882 int CHtmlView::GetFullScreen()const 3883 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3884 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3885 unsigned long CDC::GetGlyphOutlineA(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 3886 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 3887 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3888 CBrush * CDC::GetHalftoneBrush() 3889 void * CEdit::GetHandle()const 3890 unsigned int CRectTracker::GetHandleMask()const 3891 void CRectTracker::GetHandleRect(int,CRect *)const 3892 int CRectTracker::GetHandleSize(tagRECT const *)const 3893 unsigned int CMapPtrToPtr::GetHashTableSize()const 3894 unsigned int CMapPtrToWord::GetHashTableSize()const 3895 unsigned int CMapStringToOb::GetHashTableSize()const 3896 unsigned int CMapStringToPtr::GetHashTableSize()const 3897 unsigned int CMapStringToString::GetHashTableSize()const 3898 unsigned int CMapWordToOb::GetHashTableSize()const 3899 unsigned int CMapWordToPtr::GetHashTableSize()const 3900 CObject * & CObList::GetHead() 3901 CObject const * & CObList::GetHead()const 3902 void * & CPtrList::GetHead() 3903 void const * & CPtrList::GetHead()const 3904 ATL::CStringT > > & CStringList::GetHead() 3905 ATL::CStringT > > const & CStringList::GetHead()const 3906 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 3907 __POSITION * CObList::GetHeadPosition()const 3908 __POSITION * CPtrList::GetHeadPosition()const 3909 __POSITION * CStringList::GetHeadPosition()const 3910 long CHtmlView::GetHeight()const 3911 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3912 enum AFX_HELP_TYPE CWinApp::GetHelpMode() 3913 void CSplitterWnd::GetHitRect(int,CRect &) 3914 unsigned int CComboBox::GetHorizontalExtent()const 3915 int CListBox::GetHorizontalExtent()const 3916 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3917 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3918 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3919 HICON__ * CListCtrl::GetHotCursor() 3920 CImageList * CToolBarCtrl::GetHotImageList()const 3921 int CListCtrl::GetHotItem() 3922 int CToolBarCtrl::GetHotItem()const 3923 unsigned long CHotKeyCtrl::GetHotKey()const 3924 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3925 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 3926 unsigned long CListCtrl::GetHoverTime()const 3927 IDispatch * CHtmlView::GetHtmlDocument()const 3928 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 3929 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 3930 unsigned int COleControl::GetHwnd() 3931 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3932 HICON__ * CButton::GetIcon()const 3933 HICON__ * CStatic::GetIcon()const 3934 HICON__ * CWnd::GetIcon(int)const 3935 HICON__ * COleClientItem::GetIconFromRegistry()const 3936 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3937 void * COleChangeIconDialog::GetIconicMetafile()const 3938 void * COleClientItem::GetIconicMetafile() 3939 void * COleConvertDialog::GetIconicMetafile()const 3940 void * COleInsertDialog::GetIconicMetafile()const 3941 void * COlePasteSpecialDialog::GetIconicMetafile()const 3942 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3943 unsigned long CProperty::GetID() 3944 int CPropertySection::GetID(char const *,unsigned long *) 3945 IDataObject * COleDataObject::GetIDataObject(int) 3946 IDispatch * CCmdTarget::GetIDispatch(int) 3947 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3948 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3949 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3950 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3951 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3952 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3953 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3954 _GUID const & COleControl::XEventConnPt::GetIID() 3955 int CImageList::GetImageCount()const 3956 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 3957 CImageList * CComboBoxEx::GetImageList()const 3958 CImageList * CHeaderCtrl::GetImageList()const 3959 CImageList * CListCtrl::GetImageList(int)const 3960 CImageList * CReBarCtrl::GetImageList()const 3961 CImageList * CTabCtrl::GetImageList()const 3962 CImageList * CToolBarCtrl::GetImageList()const 3963 CImageList * CTreeCtrl::GetImageList(unsigned int)const 3964 unsigned int CTreeCtrl::GetIndent()const 3965 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3966 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3967 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3968 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3969 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 3970 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 3971 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3972 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3973 CWnd * COleClientItem::GetInPlaceWindow() 3974 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 3975 unsigned long CToolBarCtrl::GetInsertMarkColor()const 3976 unsigned long CTreeCtrl::GetInsertMarkColor()const 3977 void CSplitterWnd::GetInsideRect(CRect &)const 3978 IUnknown * CCmdTarget::GetInterface(void const *) 3979 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3980 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3981 IUnknown * COleControl::GetInterfaceHook(void const *) 3982 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3983 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3984 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3985 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 3986 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3987 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3988 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3989 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3990 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 3991 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3992 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3993 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3994 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3995 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3996 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 3997 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3998 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3999 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 4000 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 4001 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 4002 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 4003 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 4004 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 4005 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 4006 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 4007 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 4008 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 4009 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 4010 int CHeaderCtrl::GetItem(int,_HD_ITEMA *)const 4011 int CListCtrl::GetItem(tagLVITEMA *)const 4012 int CTabCtrl::GetItem(int,tagTCITEMA *)const 4013 int CTreeCtrl::GetItem(tagTVITEMA *)const 4014 void COleServerDoc::GetItemClipRect(tagRECT *)const 4015 int CHeaderCtrl::GetItemCount()const 4016 int CListCtrl::GetItemCount()const 4017 int CTabCtrl::GetItemCount()const 4018 unsigned long CComboBox::GetItemData(int)const 4019 unsigned long CListBox::GetItemData(int)const 4020 unsigned long CListCtrl::GetItemData(int)const 4021 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 4022 void * CComboBox::GetItemDataPtr(int)const 4023 void * CListBox::GetItemDataPtr(int)const 4024 int CComboBox::GetItemHeight(int)const 4025 int CListBox::GetItemHeight(int)const 4026 short CTreeCtrl::GetItemHeight()const 4027 unsigned int CStatusBar::GetItemID(int)const 4028 unsigned int CToolBar::GetItemID(int)const 4029 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 4030 ATL::CStringT > > COleChangeSourceDialog::GetItemName() 4031 void COleClientItem::GetItemName(char *)const 4032 ATL::CStringT > > const & COleServerItem::GetItemName()const 4033 int CListCtrl::GetItemPosition(int,tagPOINT *)const 4034 void COleServerDoc::GetItemPosition(tagRECT *)const 4035 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 4036 int CListBox::GetItemRect(int,tagRECT *)const 4037 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 4038 void CStatusBar::GetItemRect(int,tagRECT *)const 4039 int CTabCtrl::GetItemRect(int,tagRECT *)const 4040 void CToolBar::GetItemRect(int,tagRECT *)const 4041 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 4042 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 4043 unsigned int CListCtrl::GetItemState(int,unsigned int)const 4044 unsigned int COleClientItem::GetItemState()const 4045 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 4046 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 4047 void COleClientItem::GetItemStorage() 4048 void COleClientItem::GetItemStorageCompound() 4049 void COleClientItem::GetItemStorageFlat() 4050 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 4051 int CListCtrl::GetItemText(int,int,char *,int)const 4052 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 4053 int CDC::GetKerningPairsA(int,tagKERNINGPAIR *)const 4054 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 4055 int CFileFind::GetLastAccessTime(ATL::CTime &)const 4056 int CFileFind::GetLastAccessTime(_FILETIME *)const 4057 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 4058 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 4059 CWnd * CWnd::GetLastActivePopup()const 4060 int CAsyncSocket::GetLastError() 4061 unsigned int COleDialog::GetLastError()const 4062 long COleClientItem::GetLastStatus()const 4063 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 4064 int CFileFind::GetLastWriteTime(ATL::CTime &)const 4065 int CFileFind::GetLastWriteTime(_FILETIME *)const 4066 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 4067 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 4068 unsigned long CDC::GetLayout()const 4069 long CRecordset::GetLBFetchSize(long) 4070 void COleSafeArray::GetLBound(unsigned long,long *) 4071 long CRecordset::GetLBReallocSize(long) 4072 int CComboBox::GetLBText(int,char *)const 4073 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 4074 int CComboBox::GetLBTextLen(int)const 4075 long CHtmlView::GetLeft()const 4076 int ATL::CSimpleStringT::GetLength()const 4077 int ATL::CSimpleStringT::GetLength()const 4078 unsigned __int64 CFile::GetLength()const 4079 unsigned __int64 CFileFind::GetLength()const 4080 unsigned __int64 CGopherFileFind::GetLength()const 4081 unsigned __int64 CInternetFile::GetLength()const 4082 unsigned __int64 CMemFile::GetLength()const 4083 unsigned __int64 COleStreamFile::GetLength()const 4084 unsigned __int64 CSocketFile::GetLength()const 4085 unsigned __int64 CStdioFile::GetLength()const 4086 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 4087 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 4088 unsigned int CEdit::GetLimitText()const 4089 long CRichEditCtrl::GetLimitText()const 4090 int CEdit::GetLine(int,char *)const 4091 int CEdit::GetLine(int,char *,int)const 4092 int CRichEditCtrl::GetLine(int,char *)const 4093 int CRichEditCtrl::GetLine(int,char *,int)const 4094 unsigned long CTreeCtrl::GetLineColor()const 4095 int CEdit::GetLineCount()const 4096 int CRichEditCtrl::GetLineCount()const 4097 int CSliderCtrl::GetLineSize()const 4098 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 4099 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 4100 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 4101 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 4102 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 4103 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 4104 CPtrList * CPropertySection::GetList() 4105 CPtrList * CPropertySet::GetList() 4106 CListCtrl & CListView::GetListCtrl()const 4107 unsigned long CComboBox::GetLocale()const 4108 unsigned long CListBox::GetLocale()const 4109 ATL::CStringT > > CHtmlView::GetLocationName()const 4110 ATL::CStringT > > CHtmlView::GetLocationURL()const 4111 CGopherLocator CGopherFileFind::GetLocator()const 4112 int CGopherLocator::GetLocatorType(unsigned long &)const 4113 int CBrush::GetLogBrush(tagLOGBRUSH *) 4114 int CFont::GetLogFont(tagLOGFONTA *) 4115 int CPen::GetLogPen(tagLOGPEN *) 4116 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 4117 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 4118 long CFieldExchange::GetLongBinarySize(int) 4119 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4120 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4121 CFrameWnd * COleIPFrameWnd::GetMainFrame() 4122 CWnd * CWinThread::GetMainWnd() 4123 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4124 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4125 int CDC::GetMapMode()const 4126 void CToolTipCtrl::GetMargin(tagRECT *)const 4127 unsigned long CEdit::GetMargins()const 4128 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 4129 CRect CRichEditView::GetMargins()const 4130 int CConnectionPoint::GetMaxConnections() 4131 unsigned int CPrintInfo::GetMaxPage()const 4132 int CMonthCalCtrl::GetMaxSelCount()const 4133 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 4134 int CToolBarCtrl::GetMaxTextRows()const 4135 int CToolTipCtrl::GetMaxTipWidth()const 4136 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 4137 CMenu * CWnd::GetMenu()const 4138 int CHtmlView::GetMenuBar()const 4139 unsigned long CMenu::GetMenuContextHelpId()const 4140 unsigned int CMenu::GetMenuItemCount()const 4141 unsigned int CMenu::GetMenuItemID(int)const 4142 int CMenu::GetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 4143 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 4144 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 4145 int CMenu::GetMenuStringA(unsigned int,char *,int,unsigned int)const 4146 CWnd * CFrameWnd::GetMessageBar() 4147 CWnd * CMDIChildWnd::GetMessageBar() 4148 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 4149 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 4150 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 4151 AFX_MSGMAP const * CControlBar::GetMessageMap()const 4152 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 4153 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 4154 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 4155 AFX_MSGMAP const * CDialog::GetMessageMap()const 4156 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 4157 AFX_MSGMAP const * CDockBar::GetMessageMap()const 4158 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 4159 AFX_MSGMAP const * CDocument::GetMessageMap()const 4160 AFX_MSGMAP const * CEditView::GetMessageMap()const 4161 AFX_MSGMAP const * CFormView::GetMessageMap()const 4162 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 4163 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 4164 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 4165 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 4166 AFX_MSGMAP const * CListView::GetMessageMap()const 4167 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 4168 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 4169 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 4170 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 4171 AFX_MSGMAP const * COleControl::GetMessageMap()const 4172 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 4173 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 4174 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 4175 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 4176 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 4177 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 4178 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 4179 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 4180 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 4181 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 4182 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 4183 AFX_MSGMAP const * CReBar::GetMessageMap()const 4184 AFX_MSGMAP const * CRecordView::GetMessageMap()const 4185 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 4186 AFX_MSGMAP const * CScrollView::GetMessageMap()const 4187 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 4188 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 4189 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 4190 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 4191 AFX_MSGMAP const * CToolBar::GetMessageMap()const 4192 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 4193 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 4194 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 4195 AFX_MSGMAP const * CTreeView::GetMessageMap()const 4196 AFX_MSGMAP const * CView::GetMessageMap()const 4197 AFX_MSGMAP const * CWinApp::GetMessageMap()const 4198 AFX_MSGMAP const * CWnd::GetMessageMap()const 4199 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4200 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4201 long CDataSourceControl::GetMetaData() 4202 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4203 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4204 unsigned int CPrintInfo::GetMinPage()const 4205 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4206 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4207 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4208 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4209 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4210 float CDC::GetMiterLimit()const 4211 int CEdit::GetModify()const 4212 int CRichEditCtrl::GetModify()const 4213 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4214 IMoniker * CMonikerFile::GetMoniker()const 4215 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4216 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4217 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4218 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4219 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4220 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4221 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4222 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4223 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4224 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4225 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4226 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl()const 4227 CFont * CDateTimeCtrl::GetMonthCalFont()const 4228 int CMonthCalCtrl::GetMonthDelta()const 4229 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4230 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4231 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4232 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4233 unsigned long CDC::GetNearestColor(unsigned long)const 4234 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4235 unsigned long COleClientItem::GetNewItemNumber() 4236 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4237 CDataBoundProperty * CDataBoundProperty::GetNext() 4238 CObject * & CObList::GetNext(__POSITION * &) 4239 CObject const * & CObList::GetNext(__POSITION * &)const 4240 void * & CPtrList::GetNext(__POSITION * &) 4241 void const * & CPtrList::GetNext(__POSITION * &)const 4242 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4243 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4244 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4245 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4246 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4247 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4248 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4249 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4250 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4251 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4252 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4253 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4254 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4255 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4256 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4257 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4258 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4259 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4260 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4261 int COleDataObject::GetNextFormat(tagFORMATETC *) 4262 int CListCtrl::GetNextItem(int,int)const 4263 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4264 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4265 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4266 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4267 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4268 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4269 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4270 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4271 CView * CDocument::GetNextView(__POSITION * &)const 4272 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4273 CWnd * CWnd::GetNextWindow(unsigned int)const 4274 ATL::CStringData * CAfxStringMgr::GetNilString() 4275 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4276 void CCmdTarget::GetNotSupported() 4277 void COleControl::GetNotSupported() 4278 unsigned int CListCtrl::GetNumberOfWorkAreas()const 4279 unsigned int CSliderCtrl::GetNumTics()const 4280 int CGdiObject::GetObjectA(int,void *)const 4281 ATL::CStringT > > CHttpFile::GetObjectA()const 4282 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4283 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4284 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4285 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4286 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 4287 unsigned int CArchive::GetObjectSchema() 4288 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4289 unsigned int CGdiObject::GetObjectType()const 4290 short CRecordset::GetODBCFieldCount()const 4291 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4292 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 4293 int CHtmlView::GetOffline()const 4294 tagOFNA & CFileDialog::GetOFN() 4295 tagOFNA const & CFileDialog::GetOFN()const 4296 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4297 IOleObject * COleServerItem::GetOleObject() 4298 unsigned long COleSafeArray::GetOneDimSize() 4299 CWnd * CWnd::GetOpenClipboardWindow() 4300 int CDocManager::GetOpenDocumentCount() 4301 int CWinApp::GetOpenDocumentCount() 4302 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4303 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4304 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4305 unsigned int CRichEditCtrl::GetOptions()const 4306 int CHeaderCtrl::GetOrderArray(int *,int) 4307 int CListCtrl::GetOrigin(tagPOINT *)const 4308 unsigned long CPropertySet::GetOSVersion() 4309 CWnd * COleControl::GetOuterWindow()const 4310 unsigned int CDC::GetOutlineTextMetricsA(unsigned int,_OUTLINETEXTMETRICA *)const 4311 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4312 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4313 CSize CDC::GetOutputTabbedTextExtent(char const *,int,int,int *)const 4314 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4315 CSize CDC::GetOutputTextExtent(char const *,int)const 4316 int CDC::GetOutputTextMetrics(tagTEXTMETRICA *)const 4317 CWnd * CWnd::GetOwner()const 4318 CPropertyPage * CPropertySheet::GetPage(int)const 4319 int COleDocObjectItem::GetPageCount(long *,long *) 4320 int CPropertySheet::GetPageCount()const 4321 int CPropertySheet::GetPageIndex(CPropertyPage *) 4322 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4323 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4324 CRect CRichEditView::GetPageRect()const 4325 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4326 IPropertyPageSite * COlePropertyPage::GetPageSite() 4327 int CSliderCtrl::GetPageSize()const 4328 CPalette * CReBarCtrl::GetPalette()const 4329 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4330 CWnd * CSplitterWnd::GetPane(int,int)const 4331 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4332 unsigned int CStatusBar::GetPaneStyle(int)const 4333 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4334 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4335 CSize CPageSetupDialog::GetPaperSize()const 4336 CSize CRichEditView::GetPaperSize()const 4337 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4338 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4339 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 4340 CWnd * CWnd::GetParent()const 4341 IDispatch * CHtmlView::GetParentBrowser()const 4342 CFrameWnd * CWnd::GetParentFrame()const 4343 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4344 CWnd * CWnd::GetParentOwner()const 4345 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4346 int CStatusBarCtrl::GetParts(int,int *)const 4347 char CEdit::GetPasswordChar()const 4348 int COlePasteSpecialDialog::GetPasteIndex()const 4349 ATL::CStringT > > CDataPathProperty::GetPath()const 4350 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4351 ATL::CStringT > > const & CDocument::GetPathName()const 4352 ATL::CStringT > > CFileDialog::GetPathName()const 4353 ATL::CStringT > > COleInsertDialog::GetPathName()const 4354 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4355 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4356 IPictureDisp * CPictureHolder::GetPictureDispatch() 4357 unsigned long CDC::GetPixel(int,int)const 4358 unsigned long CDC::GetPixel(tagPOINT)const 4359 int CDC::GetPolyFillMode()const 4360 ATL::CStringT > > CPageSetupDialog::GetPortName()const 4361 ATL::CStringT > > CPrintDialog::GetPortName()const 4362 ATL::CStringT > > CPrintDialogEx::GetPortName()const 4363 int CProgressCtrl::GetPos() 4364 int CSliderCtrl::GetPos()const 4365 int CSpinButtonCtrl::GetPos()const 4366 int CSpinButtonCtrl::GetPos32(int *)const 4367 unsigned __int64 CFile::GetPosition()const 4368 unsigned __int64 CMemFile::GetPosition()const 4369 unsigned __int64 COleStreamFile::GetPosition()const 4370 unsigned __int64 CSocketFile::GetPosition()const 4371 unsigned __int64 CStdioFile::GetPosition()const 4372 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4373 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4374 CObject * & CObList::GetPrev(__POSITION * &) 4375 CObject const * & CObList::GetPrev(__POSITION * &)const 4376 void * & CPtrList::GetPrev(__POSITION * &) 4377 void const * & CPtrList::GetPrev(__POSITION * &)const 4378 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4379 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4380 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4381 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4382 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4383 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4384 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4385 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4386 HDC__ * CPrintDialog::GetPrinterDC()const 4387 HDC__ * CPrintDialogEx::GetPrinterDC()const 4388 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 4389 CFont * CEditView::GetPrinterFont()const 4390 CRect CRichEditView::GetPrintRect()const 4391 int CRichEditView::GetPrintWidth()const 4392 long CAsyncMonikerFile::GetPriority()const 4393 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 4394 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 4395 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 4396 int COlePropertyPage::GetPropCheck(char const *,int *) 4397 COleVariant CHtmlView::GetProperty(char const *) 4398 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 4399 void COleControlSite::GetProperty(long,unsigned short,void *)const 4400 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4401 CProperty * CPropertySection::GetProperty(unsigned long) 4402 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4403 void CWnd::GetProperty(long,unsigned short,void *)const 4404 int COlePropertyPage::GetPropIndex(char const *,int *) 4405 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4406 int COlePropertyPage::GetPropRadio(char const *,int *) 4407 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4408 int COlePropertyPage::GetPropText(char const *,unsigned char *) 4409 int COlePropertyPage::GetPropText(char const *,short *) 4410 int COlePropertyPage::GetPropText(char const *,int *) 4411 int COlePropertyPage::GetPropText(char const *,unsigned int *) 4412 int COlePropertyPage::GetPropText(char const *,long *) 4413 int COlePropertyPage::GetPropText(char const *,unsigned long *) 4414 int COlePropertyPage::GetPropText(char const *,float *) 4415 int COlePropertyPage::GetPropText(char const *,double *) 4416 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 4417 _PROPSHEETPAGEA & CPropertyPage::GetPSP() 4418 _PROPSHEETPAGEA const & CPropertyPage::GetPSP()const 4419 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4420 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4421 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4422 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4423 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4424 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4425 void CProgressCtrl::GetRange(int &,int &) 4426 void CSliderCtrl::GetRange(int &,int &)const 4427 unsigned long CSpinButtonCtrl::GetRange()const 4428 void CSpinButtonCtrl::GetRange(int &,int &)const 4429 void CSpinButtonCtrl::GetRange32(int &,int &)const 4430 int CSliderCtrl::GetRangeMax()const 4431 int CSliderCtrl::GetRangeMin()const 4432 void * CProperty::GetRawValue() 4433 int CFileDialog::GetReadOnlyPref()const 4434 enum tagREADYSTATE CHtmlView::GetReadyState()const 4435 long COleControl::GetReadyState() 4436 CReBarCtrl & CReBar::GetReBarCtrl()const 4437 long CRecordset::GetRecordCount()const 4438 void CEdit::GetRect(tagRECT *)const 4439 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4440 void CRichEditCtrl::GetRect(tagRECT *)const 4441 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4442 int CToolBarCtrl::GetRect(int,tagRECT *)const 4443 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4444 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4445 int COleControl::GetRectInContainer(tagRECT *) 4446 enum _undonameid CRichEditCtrl::GetRedoName()const 4447 int CRgn::GetRegionData(_RGNDATA *,int)const 4448 int CHtmlView::GetRegisterAsBrowser()const 4449 int CHtmlView::GetRegisterAsDropTarget()const 4450 ATL::CStringT > > CFindReplaceDialog::GetReplaceString()const 4451 int CRgn::GetRgnBox(tagRECT *)const 4452 CRichEditCtrl & CRichEditView::GetRichEditCtrl()const 4453 ATL::CStringT > > CFileFind::GetRoot()const 4454 ATL::CStringT > > CGopherFileFind::GetRoot()const 4455 _TREEITEM * CTreeCtrl::GetRootItem()const 4456 int CDC::GetROP2()const 4457 CFrameWnd * CCmdTarget::GetRoutingFrame() 4458 CFrameWnd * CCmdTarget::GetRoutingFrame_() 4459 CView * CCmdTarget::GetRoutingView() 4460 CView * CCmdTarget::GetRoutingView_() 4461 unsigned int CReBarCtrl::GetRowCount()const 4462 int CSplitterWnd::GetRowCount()const 4463 int CTabCtrl::GetRowCount()const 4464 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4465 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4466 int CToolBarCtrl::GetRows()const 4467 unsigned long CRecordset::GetRowsetSize()const 4468 unsigned long CRecordset::GetRowsFetched()const 4469 unsigned short CRecordset::GetRowStatus(unsigned short)const 4470 CRuntime* CAnimateCtrl::GetRuntimeClass()const 4471 CRuntime* CArchiveException::GetRuntimeClass()const 4472 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 4473 CRuntime* CAsyncSocket::GetRuntimeClass()const 4474 CRuntime* CBitmap::GetRuntimeClass()const 4475 CRuntime* CBitmapButton::GetRuntimeClass()const 4476 CRuntime* CBrush::GetRuntimeClass()const 4477 CRuntime* CButton::GetRuntimeClass()const 4478 CRuntime* CByteArray::GetRuntimeClass()const 4479 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 4480 CRuntime* CCheckListBox::GetRuntimeClass()const 4481 CRuntime* CClientDC::GetRuntimeClass()const 4482 CRuntime* CCmdTarget::GetRuntimeClass()const 4483 CRuntime* CColorDialog::GetRuntimeClass()const 4484 CRuntime* CComboBox::GetRuntimeClass()const 4485 CRuntime* CComboBoxEx::GetRuntimeClass()const 4486 CRuntime* CControlBar::GetRuntimeClass()const 4487 CRuntime* CCriticalSection::GetRuntimeClass()const 4488 CRuntime* CCtrlView::GetRuntimeClass()const 4489 CRuntime* CDatabase::GetRuntimeClass()const 4490 CRuntime* CDataPathProperty::GetRuntimeClass()const 4491 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 4492 CRuntime* CDBException::GetRuntimeClass()const 4493 CRuntime* CDC::GetRuntimeClass()const 4494 CRuntime* CDHtmlDialog::GetRuntimeClass()const 4495 CRuntime* CDialog::GetRuntimeClass()const 4496 CRuntime* CDialogBar::GetRuntimeClass()const 4497 CRuntime* CDocItem::GetRuntimeClass()const 4498 CRuntime* CDockBar::GetRuntimeClass()const 4499 CRuntime* CDockState::GetRuntimeClass()const 4500 CRuntime* CDocManager::GetRuntimeClass()const 4501 CRuntime* CDocObjectServer::GetRuntimeClass()const 4502 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 4503 CRuntime* CDocTemplate::GetRuntimeClass()const 4504 CRuntime* CDocument::GetRuntimeClass()const 4505 CRuntime* CDragListBox::GetRuntimeClass()const 4506 CRuntime* CDWordArray::GetRuntimeClass()const 4507 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 4508 CRuntime* CEdit::GetRuntimeClass()const 4509 CRuntime* CEditView::GetRuntimeClass()const 4510 CRuntime* CEvent::GetRuntimeClass()const 4511 CRuntime* CException::GetRuntimeClass()const 4512 CRuntime* CFile::GetRuntimeClass()const 4513 CRuntime* CFileDialog::GetRuntimeClass()const 4514 CRuntime* CFileException::GetRuntimeClass()const 4515 CRuntime* CFileFind::GetRuntimeClass()const 4516 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 4517 CRuntime* CFont::GetRuntimeClass()const 4518 CRuntime* CFontDialog::GetRuntimeClass()const 4519 CRuntime* CFormView::GetRuntimeClass()const 4520 CRuntime* CFrameWnd::GetRuntimeClass()const 4521 CRuntime* CFtpConnection::GetRuntimeClass()const 4522 CRuntime* CFtpFileFind::GetRuntimeClass()const 4523 CRuntime* CGdiObject::GetRuntimeClass()const 4524 CRuntime* CGopherConnection::GetRuntimeClass()const 4525 CRuntime* CGopherFile::GetRuntimeClass()const 4526 CRuntime* CGopherFileFind::GetRuntimeClass()const 4527 CRuntime* CHeaderCtrl::GetRuntimeClass()const 4528 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 4529 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 4530 CRuntime* CHtmlEditView::GetRuntimeClass()const 4531 CRuntime* CHtmlView::GetRuntimeClass()const 4532 CRuntime* CHttpConnection::GetRuntimeClass()const 4533 CRuntime* CHttpFile::GetRuntimeClass()const 4534 CRuntime* CImageList::GetRuntimeClass()const 4535 CRuntime* CInternetConnection::GetRuntimeClass()const 4536 CRuntime* CInternetException::GetRuntimeClass()const 4537 CRuntime* CInternetFile::GetRuntimeClass()const 4538 CRuntime* CInternetSession::GetRuntimeClass()const 4539 CRuntime* CInvalidArgException::GetRuntimeClass()const 4540 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 4541 CRuntime* CLinkCtrl::GetRuntimeClass()const 4542 CRuntime* CListBox::GetRuntimeClass()const 4543 CRuntime* CListCtrl::GetRuntimeClass()const 4544 CRuntime* CListView::GetRuntimeClass()const 4545 CRuntime* CLongBinary::GetRuntimeClass()const 4546 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 4547 CRuntime* CMapPtrToWord::GetRuntimeClass()const 4548 CRuntime* CMapStringToOb::GetRuntimeClass()const 4549 CRuntime* CMapStringToPtr::GetRuntimeClass()const 4550 CRuntime* CMapStringToString::GetRuntimeClass()const 4551 CRuntime* CMapWordToOb::GetRuntimeClass()const 4552 CRuntime* CMapWordToPtr::GetRuntimeClass()const 4553 CRuntime* CMDIChildWnd::GetRuntimeClass()const 4554 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 4555 CRuntime* CMemFile::GetRuntimeClass()const 4556 CRuntime* CMemoryException::GetRuntimeClass()const 4557 CRuntime* CMenu::GetRuntimeClass()const 4558 CRuntime* CMetaFileDC::GetRuntimeClass()const 4559 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 4560 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 4561 CRuntime* CMonikerFile::GetRuntimeClass()const 4562 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 4563 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 4564 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 4565 CRuntime* CMutex::GetRuntimeClass()const 4566 CRuntime* CNotSupportedException::GetRuntimeClass()const 4567 CRuntime* CObArray::GetRuntimeClass()const 4568 CRuntime* CObject::GetRuntimeClass()const 4569 CRuntime* CObList::GetRuntimeClass()const 4570 CRuntime* COleBusyDialog::GetRuntimeClass()const 4571 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 4572 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 4573 CRuntime* COleClientItem::GetRuntimeClass()const 4574 CRuntime* COleControl::GetRuntimeClass()const 4575 CRuntime* COleControlModule::GetRuntimeClass()const 4576 CRuntime* COleConvertDialog::GetRuntimeClass()const 4577 CRuntime* COleDBRecordView::GetRuntimeClass()const 4578 CRuntime* COleDialog::GetRuntimeClass()const 4579 CRuntime* COleDispatchException::GetRuntimeClass()const 4580 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 4581 CRuntime* COleDocObjectItem::GetRuntimeClass()const 4582 CRuntime* COleDocument::GetRuntimeClass()const 4583 CRuntime* COleException::GetRuntimeClass()const 4584 CRuntime* COleInsertDialog::GetRuntimeClass()const 4585 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 4586 CRuntime* COleLinkingDoc::GetRuntimeClass()const 4587 CRuntime* COleLinksDialog::GetRuntimeClass()const 4588 CRuntime* COleObjectFactory::GetRuntimeClass()const 4589 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 4590 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 4591 CRuntime* COlePropertyPage::GetRuntimeClass()const 4592 CRuntime* COleResizeBar::GetRuntimeClass()const 4593 CRuntime* COleServerDoc::GetRuntimeClass()const 4594 CRuntime* COleServerItem::GetRuntimeClass()const 4595 CRuntime* COleStreamFile::GetRuntimeClass()const 4596 CRuntime* COleUpdateDialog::GetRuntimeClass()const 4597 CRuntime* CPageSetupDialog::GetRuntimeClass()const 4598 CRuntime* CPaintDC::GetRuntimeClass()const 4599 CRuntime* CPalette::GetRuntimeClass()const 4600 CRuntime* CPen::GetRuntimeClass()const 4601 CRuntime* CPreviewDC::GetRuntimeClass()const 4602 CRuntime* CPreviewView::GetRuntimeClass()const 4603 CRuntime* CPrintDialog::GetRuntimeClass()const 4604 CRuntime* CPrintDialogEx::GetRuntimeClass()const 4605 CRuntime* CProgressCtrl::GetRuntimeClass()const 4606 CRuntime* CPropertyPage::GetRuntimeClass()const 4607 CRuntime* CPropertySheet::GetRuntimeClass()const 4608 CRuntime* CPtrArray::GetRuntimeClass()const 4609 CRuntime* CPtrList::GetRuntimeClass()const 4610 CRuntime* CReBar::GetRuntimeClass()const 4611 CRuntime* CReBarCtrl::GetRuntimeClass()const 4612 CRuntime* CRecordset::GetRuntimeClass()const 4613 CRuntime* CRecordView::GetRuntimeClass()const 4614 CRuntime* CResourceException::GetRuntimeClass()const 4615 CRuntime* CRgn::GetRuntimeClass()const 4616 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 4617 CRuntime* CRichEditCtrl::GetRuntimeClass()const 4618 CRuntime* CRichEditDoc::GetRuntimeClass()const 4619 CRuntime* CRichEditView::GetRuntimeClass()const 4620 CRuntime* CScrollBar::GetRuntimeClass()const 4621 CRuntime* CScrollView::GetRuntimeClass()const 4622 CRuntime* CSemaphore::GetRuntimeClass()const 4623 CRuntime* CSharedFile::GetRuntimeClass()const 4624 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 4625 CRuntime* CSliderCtrl::GetRuntimeClass()const 4626 CRuntime* CSocket::GetRuntimeClass()const 4627 CRuntime* CSocketFile::GetRuntimeClass()const 4628 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 4629 CRuntime* CSplitterWnd::GetRuntimeClass()const 4630 CRuntime* CStatic::GetRuntimeClass()const 4631 CRuntime* CStatusBar::GetRuntimeClass()const 4632 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 4633 CRuntime* CStdioFile::GetRuntimeClass()const 4634 CRuntime* CStringArray::GetRuntimeClass()const 4635 CRuntime* CStringList::GetRuntimeClass()const 4636 CRuntime* CSyncObject::GetRuntimeClass()const 4637 CRuntime* CTabCtrl::GetRuntimeClass()const 4638 CRuntime* CToolBar::GetRuntimeClass()const 4639 CRuntime* CToolBarCtrl::GetRuntimeClass()const 4640 CRuntime* CToolTipCtrl::GetRuntimeClass()const 4641 CRuntime* CTreeCtrl::GetRuntimeClass()const 4642 CRuntime* CTreeView::GetRuntimeClass()const 4643 CRuntime* CUIntArray::GetRuntimeClass()const 4644 CRuntime* CUserException::GetRuntimeClass()const 4645 CRuntime* CView::GetRuntimeClass()const 4646 CRuntime* CWinApp::GetRuntimeClass()const 4647 CRuntime* CWindowDC::GetRuntimeClass()const 4648 CRuntime* CWindowlessDC::GetRuntimeClass()const 4649 CRuntime* CWinThread::GetRuntimeClass()const 4650 CRuntime* CWnd::GetRuntimeClass()const 4651 CRuntime* CWordArray::GetRuntimeClass()const 4652 void * CGdiObject::GetSafeHandle()const 4653 _IMAGELIST * CImageList::GetSafeHandle()const 4654 HDC__ * CDC::GetSafeHdc()const 4655 HMENU__ * CMenu::GetSafeHmenu()const 4656 HWND__ * CWnd::GetSafeHwnd()const 4657 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 4658 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 4659 unsigned long * CColorDialog::GetSavedCustomColors() 4660 ATL::CStringT > > CGopherFileFind::GetScreenName()const 4661 CSize CDockState::GetScreenSize() 4662 CScrollBar * CView::GetScrollBarCtrl(int)const 4663 CScrollBar * CWnd::GetScrollBarCtrl(int)const 4664 void CScrollView::GetScrollBarSizes(CSize &) 4665 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 4666 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 4667 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 4668 int CScrollBar::GetScrollLimit() 4669 int CWnd::GetScrollLimit(int) 4670 int CScrollBar::GetScrollPos()const 4671 int CWnd::GetScrollPos(int)const 4672 CPoint CScrollView::GetScrollPosition()const 4673 void CScrollBar::GetScrollRange(int *,int *)const 4674 void CWnd::GetScrollRange(int,int *,int *)const 4675 unsigned long CSplitterWnd::GetScrollStyle()const 4676 unsigned int CTreeCtrl::GetScrollTime()const 4677 CPropertySection * CPropertySet::GetSection(_GUID) 4678 HKEY__ * CWinApp::GetSectionKey(char const *) 4679 char const * CPropertySection::GetSectionName() 4680 unsigned long CEdit::GetSel()const 4681 void CEdit::GetSel(int &,int &)const 4682 int CListBox::GetSel(int)const 4683 void CRichEditCtrl::GetSel(long &,long &)const 4684 void CRichEditCtrl::GetSel(_charrange &)const 4685 int CListBox::GetSelCount()const 4686 unsigned int CListCtrl::GetSelectedCount()const 4687 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 4688 _TREEITEM * CTreeCtrl::GetSelectedItem()const 4689 void CEditView::GetSelectedText(ATL::CStringT > > &)const 4690 void CSliderCtrl::GetSelection(int &,int &)const 4691 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 4692 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 4693 int CListCtrl::GetSelectionMark() 4694 unsigned int COleBusyDialog::GetSelectionType()const 4695 unsigned int COleConvertDialog::GetSelectionType()const 4696 unsigned int COleInsertDialog::GetSelectionType()const 4697 unsigned int COlePasteSpecialDialog::GetSelectionType()const 4698 unsigned short CRichEditCtrl::GetSelectionType()const 4699 int CListBox::GetSelItems(int,int *)const 4700 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 4701 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 4702 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4703 ATL::CStringT > > CRichEditCtrl::GetSelText()const 4704 long CRichEditCtrl::GetSelText(char *)const 4705 ATL::CStringT > > CInternetConnection::GetServerName()const 4706 CInternetSession * CInternetConnection::GetSession()const 4707 int CHtmlView::GetSilent()const 4708 long CPrintDialogEx::GetSite(_GUID const &,void * *) 4709 int CByteArray::GetSize()const 4710 int CDWordArray::GetSize()const 4711 int CFontDialog::GetSize()const 4712 int CMapPtrToPtr::GetSize()const 4713 int CMapPtrToWord::GetSize()const 4714 int CMapStringToOb::GetSize()const 4715 int CMapStringToPtr::GetSize()const 4716 int CMapStringToString::GetSize()const 4717 int CMapWordToOb::GetSize()const 4718 int CMapWordToPtr::GetSize()const 4719 int CObArray::GetSize()const 4720 int CObList::GetSize()const 4721 unsigned long CPropertySection::GetSize() 4722 int CPtrArray::GetSize()const 4723 int CPtrList::GetSize()const 4724 int CStringArray::GetSize()const 4725 int CStringList::GetSize()const 4726 int CUIntArray::GetSize()const 4727 int CWordArray::GetSize()const 4728 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 4729 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 4730 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 4731 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 4732 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 4733 CWnd * CSplitterWnd::GetSizingParent() 4734 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 4735 int CAsyncSocket::GetSockName(sockaddr *,int *) 4736 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 4737 int CHtmlView::GetSource(ATL::CStringT > > &) 4738 ATL::CStringT > > const & CRecordset::GetSQL()const 4739 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 4740 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 4741 char const * CHtmlEditCtrl::GetStartDocument() 4742 char const * CHtmlEditView::GetStartDocument() 4743 __POSITION * CConnectionPoint::GetStartPosition()const 4744 __POSITION * CFileDialog::GetStartPosition()const 4745 __POSITION * CMapPtrToPtr::GetStartPosition()const 4746 __POSITION * CMapPtrToWord::GetStartPosition()const 4747 __POSITION * CMapStringToOb::GetStartPosition()const 4748 __POSITION * CMapStringToPtr::GetStartPosition()const 4749 __POSITION * CMapStringToString::GetStartPosition()const 4750 __POSITION * CMapWordToOb::GetStartPosition()const 4751 __POSITION * CMapWordToPtr::GetStartPosition()const 4752 __POSITION * COleDocument::GetStartPosition()const 4753 __POSITION * CRichEditDoc::GetStartPosition()const 4754 unsigned int CButton::GetState()const 4755 int CToolBarCtrl::GetState(int)const 4756 int CFile::GetStatus(CFileStatus &)const 4757 int CFile::GetStatus(char const *,CFileStatus &) 4758 int CMemFile::GetStatus(CFileStatus &)const 4759 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus()const 4760 int COleStreamFile::GetStatus(CFileStatus &)const 4761 void CRecordset::GetStatus(CRecordsetStatus &)const 4762 int CHtmlView::GetStatusBar()const 4763 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 4764 unsigned long COleControl::GetStockEventMask()const 4765 unsigned long COleControl::GetStockPropMask()const 4766 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 4767 ATL::CStringT > > const COleStreamFile::GetStorageName()const 4768 IStream * COleStreamFile::GetStream()const 4769 int CRichEditDoc::GetStreamFormat()const 4770 int CDC::GetStretchBltMode()const 4771 wchar_t const * ATL::CSimpleStringT::GetString()const 4772 char const * ATL::CSimpleStringT::GetString()const 4773 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 4774 int CToolBarCtrl::GetString(int,char *,int)const 4775 int CListCtrl::GetStringWidth(char const *)const 4776 unsigned long COleControlSite::GetStyle()const 4777 unsigned long COleControlSiteOrWnd::GetStyle()const 4778 unsigned long CToolBarCtrl::GetStyle()const 4779 unsigned long CWnd::GetStyle()const 4780 ATL::CStringT > > CFontDialog::GetStyleName()const 4781 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 4782 CMenu * CMenu::GetSubMenu(int)const 4783 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 4784 int CWinApp::GetSysPolicyValue(unsigned long,int *) 4785 CMenu * CWnd::GetSystemMenu(int)const 4786 CSize CDC::GetTabbedTextExtentA(ATL::CStringT > > const &,int,int *)const 4787 CSize CDC::GetTabbedTextExtentA(char const *,int,int,int *)const 4788 CTabCtrl * CPropertySheet::GetTabControl()const 4789 ATL::CStringT > > const & CRecordset::GetTableName()const 4790 CObject * & CObList::GetTail() 4791 CObject const * & CObList::GetTail()const 4792 void * & CPtrList::GetTail() 4793 void const * & CPtrList::GetTail()const 4794 ATL::CStringT > > & CStringList::GetTail() 4795 ATL::CStringT > > const & CStringList::GetTail()const 4796 __POSITION * CObList::GetTailPosition()const 4797 __POSITION * CPtrList::GetTailPosition()const 4798 __POSITION * CStringList::GetTailPosition()const 4799 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 4800 int CListBox::GetText(int,char *)const 4801 void CListBox::GetText(int,ATL::CStringT > > &)const 4802 wchar_t * COleControl::GetText() 4803 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 4804 int CStatusBarCtrl::GetText(char const *,int,int *)const 4805 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 4806 unsigned int CDC::GetTextAlign()const 4807 unsigned long CListCtrl::GetTextBkColor()const 4808 int CDC::GetTextCharacterExtra()const 4809 unsigned long CDC::GetTextColor()const 4810 unsigned long CListCtrl::GetTextColor()const 4811 unsigned long CReBarCtrl::GetTextColor()const 4812 unsigned long CTreeCtrl::GetTextColor()const 4813 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 4814 CSize CDC::GetTextExtent(char const *,int)const 4815 int CDC::GetTextFaceA(ATL::CStringT > > &)const 4816 int CDC::GetTextFaceA(int,char *)const 4817 int CListBox::GetTextLen(int)const 4818 long CRecordset::GetTextLen(short,unsigned long) 4819 long CRichEditCtrl::GetTextLength()const 4820 long CRichEditView::GetTextLength()const 4821 int CStatusBarCtrl::GetTextLength(int,int *)const 4822 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 4823 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 4824 int CDC::GetTextMetricsA(tagTEXTMETRICA *)const 4825 unsigned int CRichEditCtrl::GetTextMode()const 4826 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 4827 int CHtmlView::GetTheaterMode()const 4828 CRuntime* CAnimateCtrl::GetThisClass() 4829 CRuntime* CArchiveException::GetThisClass() 4830 CRuntime* CAsyncMonikerFile::GetThisClass() 4831 CRuntime* CAsyncSocket::GetThisClass() 4832 CRuntime* CBitmap::GetThisClass() 4833 CRuntime* CBitmapButton::GetThisClass() 4834 CRuntime* CBrush::GetThisClass() 4835 CRuntime* CButton::GetThisClass() 4836 CRuntime* CByteArray::GetThisClass() 4837 CRuntime* CCachedDataPathProperty::GetThisClass() 4838 CRuntime* CCheckListBox::GetThisClass() 4839 CRuntime* CClientDC::GetThisClass() 4840 CRuntime* CCmdTarget::GetThisClass() 4841 CRuntime* CColorDialog::GetThisClass() 4842 CRuntime* CComboBox::GetThisClass() 4843 CRuntime* CComboBoxEx::GetThisClass() 4844 CRuntime* CControlBar::GetThisClass() 4845 CRuntime* CCriticalSection::GetThisClass() 4846 CRuntime* CCtrlView::GetThisClass() 4847 CRuntime* CDatabase::GetThisClass() 4848 CRuntime* CDataPathProperty::GetThisClass() 4849 CRuntime* CDateTimeCtrl::GetThisClass() 4850 CRuntime* CDBException::GetThisClass() 4851 CRuntime* CDC::GetThisClass() 4852 CRuntime* CDHtmlDialog::GetThisClass() 4853 CRuntime* CDialog::GetThisClass() 4854 CRuntime* CDialogBar::GetThisClass() 4855 CRuntime* CDocItem::GetThisClass() 4856 CRuntime* CDockBar::GetThisClass() 4857 CRuntime* CDockState::GetThisClass() 4858 CRuntime* CDocManager::GetThisClass() 4859 CRuntime* CDocObjectServer::GetThisClass() 4860 CRuntime* CDocObjectServerItem::GetThisClass() 4861 CRuntime* CDocTemplate::GetThisClass() 4862 CRuntime* CDocument::GetThisClass() 4863 CRuntime* CDragListBox::GetThisClass() 4864 CRuntime* CDWordArray::GetThisClass() 4865 CRuntime* CDynLinkLibrary::GetThisClass() 4866 CRuntime* CEdit::GetThisClass() 4867 CRuntime* CEditView::GetThisClass() 4868 CRuntime* CEvent::GetThisClass() 4869 CRuntime* CException::GetThisClass() 4870 CRuntime* CFile::GetThisClass() 4871 CRuntime* CFileDialog::GetThisClass() 4872 CRuntime* CFileException::GetThisClass() 4873 CRuntime* CFileFind::GetThisClass() 4874 CRuntime* CFindReplaceDialog::GetThisClass() 4875 CRuntime* CFont::GetThisClass() 4876 CRuntime* CFontDialog::GetThisClass() 4877 CRuntime* CFormView::GetThisClass() 4878 CRuntime* CFrameWnd::GetThisClass() 4879 CRuntime* CFtpConnection::GetThisClass() 4880 CRuntime* CFtpFileFind::GetThisClass() 4881 CRuntime* CGdiObject::GetThisClass() 4882 CRuntime* CGopherConnection::GetThisClass() 4883 CRuntime* CGopherFile::GetThisClass() 4884 CRuntime* CGopherFileFind::GetThisClass() 4885 CRuntime* CHeaderCtrl::GetThisClass() 4886 CRuntime* CHotKeyCtrl::GetThisClass() 4887 CRuntime* CHtmlEditDoc::GetThisClass() 4888 CRuntime* CHtmlEditView::GetThisClass() 4889 CRuntime* CHtmlView::GetThisClass() 4890 CRuntime* CHttpConnection::GetThisClass() 4891 CRuntime* CHttpFile::GetThisClass() 4892 CRuntime* CImageList::GetThisClass() 4893 CRuntime* CInternetConnection::GetThisClass() 4894 CRuntime* CInternetException::GetThisClass() 4895 CRuntime* CInternetFile::GetThisClass() 4896 CRuntime* CInternetSession::GetThisClass() 4897 CRuntime* CInvalidArgException::GetThisClass() 4898 CRuntime* CIPAddressCtrl::GetThisClass() 4899 CRuntime* CLinkCtrl::GetThisClass() 4900 CRuntime* CListBox::GetThisClass() 4901 CRuntime* CListCtrl::GetThisClass() 4902 CRuntime* CListView::GetThisClass() 4903 CRuntime* CLongBinary::GetThisClass() 4904 CRuntime* CMapPtrToPtr::GetThisClass() 4905 CRuntime* CMapPtrToWord::GetThisClass() 4906 CRuntime* CMapStringToOb::GetThisClass() 4907 CRuntime* CMapStringToPtr::GetThisClass() 4908 CRuntime* CMapStringToString::GetThisClass() 4909 CRuntime* CMapWordToOb::GetThisClass() 4910 CRuntime* CMapWordToPtr::GetThisClass() 4911 CRuntime* CMDIChildWnd::GetThisClass() 4912 CRuntime* CMDIFrameWnd::GetThisClass() 4913 CRuntime* CMemFile::GetThisClass() 4914 CRuntime* CMemoryException::GetThisClass() 4915 CRuntime* CMenu::GetThisClass() 4916 CRuntime* CMetaFileDC::GetThisClass() 4917 CRuntime* CMiniDockFrameWnd::GetThisClass() 4918 CRuntime* CMiniFrameWnd::GetThisClass() 4919 CRuntime* CMonikerFile::GetThisClass() 4920 CRuntime* CMonthCalCtrl::GetThisClass() 4921 CRuntime* CMultiDocTemplate::GetThisClass() 4922 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 4923 CRuntime* CMutex::GetThisClass() 4924 CRuntime* CNotSupportedException::GetThisClass() 4925 CRuntime* CObArray::GetThisClass() 4926 CRuntime* CObject::GetThisClass() 4927 CRuntime* CObList::GetThisClass() 4928 CRuntime* COleBusyDialog::GetThisClass() 4929 CRuntime* COleChangeIconDialog::GetThisClass() 4930 CRuntime* COleChangeSourceDialog::GetThisClass() 4931 CRuntime* COleClientItem::GetThisClass() 4932 CRuntime* COleControl::GetThisClass() 4933 CRuntime* COleControlModule::GetThisClass() 4934 CRuntime* COleConvertDialog::GetThisClass() 4935 CRuntime* COleDBRecordView::GetThisClass() 4936 CRuntime* COleDialog::GetThisClass() 4937 CRuntime* COleDispatchException::GetThisClass() 4938 CRuntime* COleDocIPFrameWnd::GetThisClass() 4939 CRuntime* COleDocObjectItem::GetThisClass() 4940 CRuntime* COleDocument::GetThisClass() 4941 CRuntime* COleException::GetThisClass() 4942 CRuntime* COleInsertDialog::GetThisClass() 4943 CRuntime* COleIPFrameWnd::GetThisClass() 4944 CRuntime* COleLinkingDoc::GetThisClass() 4945 CRuntime* COleLinksDialog::GetThisClass() 4946 CRuntime* COleObjectFactory::GetThisClass() 4947 CRuntime* COlePasteSpecialDialog::GetThisClass() 4948 CRuntime* COlePropertiesDialog::GetThisClass() 4949 CRuntime* COlePropertyPage::GetThisClass() 4950 CRuntime* COleResizeBar::GetThisClass() 4951 CRuntime* COleServerDoc::GetThisClass() 4952 CRuntime* COleServerItem::GetThisClass() 4953 CRuntime* COleStreamFile::GetThisClass() 4954 CRuntime* COleUpdateDialog::GetThisClass() 4955 CRuntime* CPageSetupDialog::GetThisClass() 4956 CRuntime* CPaintDC::GetThisClass() 4957 CRuntime* CPalette::GetThisClass() 4958 CRuntime* CPen::GetThisClass() 4959 CRuntime* CPreviewDC::GetThisClass() 4960 CRuntime* CPreviewView::GetThisClass() 4961 CRuntime* CPrintDialog::GetThisClass() 4962 CRuntime* CPrintDialogEx::GetThisClass() 4963 CRuntime* CProgressCtrl::GetThisClass() 4964 CRuntime* CPropertyPage::GetThisClass() 4965 CRuntime* CPropertySheet::GetThisClass() 4966 CRuntime* CPtrArray::GetThisClass() 4967 CRuntime* CPtrList::GetThisClass() 4968 CRuntime* CReBar::GetThisClass() 4969 CRuntime* CReBarCtrl::GetThisClass() 4970 CRuntime* CRecordset::GetThisClass() 4971 CRuntime* CRecordView::GetThisClass() 4972 CRuntime* CResourceException::GetThisClass() 4973 CRuntime* CRgn::GetThisClass() 4974 CRuntime* CRichEditCntrItem::GetThisClass() 4975 CRuntime* CRichEditCtrl::GetThisClass() 4976 CRuntime* CRichEditDoc::GetThisClass() 4977 CRuntime* CRichEditView::GetThisClass() 4978 CRuntime* CScrollBar::GetThisClass() 4979 CRuntime* CScrollView::GetThisClass() 4980 CRuntime* CSemaphore::GetThisClass() 4981 CRuntime* CSharedFile::GetThisClass() 4982 CRuntime* CSingleDocTemplate::GetThisClass() 4983 CRuntime* CSliderCtrl::GetThisClass() 4984 CRuntime* CSocket::GetThisClass() 4985 CRuntime* CSocketFile::GetThisClass() 4986 CRuntime* CSpinButtonCtrl::GetThisClass() 4987 CRuntime* CSplitterWnd::GetThisClass() 4988 CRuntime* CStatic::GetThisClass() 4989 CRuntime* CStatusBar::GetThisClass() 4990 CRuntime* CStatusBarCtrl::GetThisClass() 4991 CRuntime* CStdioFile::GetThisClass() 4992 CRuntime* CStringArray::GetThisClass() 4993 CRuntime* CStringList::GetThisClass() 4994 CRuntime* CSyncObject::GetThisClass() 4995 CRuntime* CTabCtrl::GetThisClass() 4996 CRuntime* CToolBar::GetThisClass() 4997 CRuntime* CToolBarCtrl::GetThisClass() 4998 CRuntime* CToolTipCtrl::GetThisClass() 4999 CRuntime* CTreeCtrl::GetThisClass() 5000 CRuntime* CTreeView::GetThisClass() 5001 CRuntime* CUIntArray::GetThisClass() 5002 CRuntime* CUserException::GetThisClass() 5003 CRuntime* CView::GetThisClass() 5004 CRuntime* CWinApp::GetThisClass() 5005 CRuntime* CWindowDC::GetThisClass() 5006 CRuntime* CWindowlessDC::GetThisClass() 5007 CRuntime* CWinThread::GetThisClass() 5008 CRuntime* CWnd::GetThisClass() 5009 CRuntime* CWordArray::GetThisClass() 5010 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 5011 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 5012 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 5013 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 5014 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 5015 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 5016 AFX_EVENTMAP const * COleControl::GetThisEventMap() 5017 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 5018 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 5019 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 5020 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 5021 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 5022 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 5023 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 5024 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 5025 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 5026 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 5027 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 5028 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 5029 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 5030 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 5031 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 5032 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 5033 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 5034 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 5035 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 5036 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 5037 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 5038 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 5039 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 5040 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 5041 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 5042 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 5043 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 5044 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 5045 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 5046 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 5047 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 5048 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 5049 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 5050 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 5051 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 5052 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 5053 AFX_MSGMAP const * CDialog::GetThisMessageMap() 5054 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 5055 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 5056 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 5057 AFX_MSGMAP const * CDocument::GetThisMessageMap() 5058 AFX_MSGMAP const * CEditView::GetThisMessageMap() 5059 AFX_MSGMAP const * CFormView::GetThisMessageMap() 5060 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 5061 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 5062 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 5063 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 5064 AFX_MSGMAP const * CListView::GetThisMessageMap() 5065 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 5066 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 5067 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 5068 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 5069 AFX_MSGMAP const * COleControl::GetThisMessageMap() 5070 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 5071 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 5072 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 5073 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 5074 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 5075 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 5076 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 5077 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 5078 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 5079 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 5080 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 5081 AFX_MSGMAP const * CReBar::GetThisMessageMap() 5082 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 5083 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 5084 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 5085 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 5086 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 5087 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 5088 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 5089 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 5090 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 5091 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 5092 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 5093 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 5094 AFX_MSGMAP const * CView::GetThisMessageMap() 5095 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 5096 AFX_MSGMAP const * CWnd::GetThisMessageMap() 5097 int CWinThread::GetThreadPriority() 5098 void CSliderCtrl::GetThumbRect(tagRECT *)const 5099 int CSliderCtrl::GetTic(int)const 5100 unsigned long * CSliderCtrl::GetTicArray()const 5101 int CSliderCtrl::GetTicPos(int)const 5102 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 5103 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 5104 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 5105 unsigned long CToolTipCtrl::GetTipBkColor()const 5106 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 5107 unsigned long CToolTipCtrl::GetTipTextColor()const 5108 ATL::CStringT > > const & CDocument::GetTitle()const 5109 ATL::CStringT > > CFrameWnd::GetTitle()const 5110 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 5111 int CMonthCalCtrl::GetToday(ATL::CTime &)const 5112 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 5113 int CHtmlView::GetToolBar()const 5114 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 5115 int CToolTipCtrl::GetToolCount()const 5116 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 5117 CToolTipCtrl * CListCtrl::GetToolTips()const 5118 CToolTipCtrl * CReBarCtrl::GetToolTips()const 5119 CToolTipCtrl * CSliderCtrl::GetToolTips()const 5120 CToolTipCtrl * CTabCtrl::GetToolTips()const 5121 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 5122 CToolTipCtrl * CTreeCtrl::GetToolTips()const 5123 long CHtmlView::GetTop()const 5124 int CPrintDialog::GetToPage()const 5125 unsigned int CPrintInfo::GetToPage()const 5126 int CComboBox::GetTopIndex()const 5127 int CListBox::GetTopIndex()const 5128 int CListCtrl::GetTopIndex()const 5129 int CHtmlView::GetTopLevelContainer()const 5130 CFrameWnd * CWnd::GetTopLevelFrame()const 5131 CWnd * CWnd::GetTopLevelOwner()const 5132 CWnd * CWnd::GetTopLevelParent()const 5133 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix() 5134 CWnd * CWnd::GetTopWindow()const 5135 CSize CScrollView::GetTotalSize()const 5136 CTreeCtrl & CTreeView::GetTreeCtrl()const 5137 int CScrollView::GetTrueClientSize(CSize &,CSize &) 5138 void CRectTracker::GetTrueRect(tagRECT *)const 5139 ATL::CStringT > > CHtmlView::GetType()const 5140 enum OLE_OBJTYPE COleClientItem::GetType()const 5141 short CPictureHolder::GetType() 5142 unsigned long CProperty::GetType() 5143 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5144 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5145 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5146 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5147 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5148 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5149 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5150 unsigned int CCmdTarget::GetTypeInfoCount() 5151 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 5152 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 5153 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 5154 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 5155 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 5156 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 5157 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 5158 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 5159 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 5160 CTypeLibCache * CCmdTarget::GetTypeLibCache() 5161 void COleSafeArray::GetUBound(unsigned long,long *) 5162 enum _undonameid CRichEditCtrl::GetUndoName()const 5163 int CWnd::GetUpdateRect(tagRECT *,int) 5164 int CWnd::GetUpdateRgn(CRgn *,int) 5165 int CByteArray::GetUpperBound()const 5166 int CDWordArray::GetUpperBound()const 5167 int CObArray::GetUpperBound()const 5168 int CPtrArray::GetUpperBound()const 5169 int CStringArray::GetUpperBound()const 5170 int CUIntArray::GetUpperBound()const 5171 int CWordArray::GetUpperBound()const 5172 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 5173 long COleControl::XOleObject::GetUserClassID(_GUID *) 5174 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 5175 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 5176 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 5177 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 5178 void COleControl::GetUserType(char *) 5179 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 5180 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 5181 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 5182 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 5183 void * CMapPtrToPtr::GetValueAt(void *)const 5184 ATL::CStringT > > CHttpFile::GetVerb()const 5185 unsigned long CDockState::GetVersion() 5186 unsigned long CPropExchange::GetVersion() 5187 CHtmlEditView * CHtmlEditDoc::GetView()const 5188 CRichEditView * CRichEditDoc::GetView()const 5189 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 5190 CSize CDC::GetViewportExt()const 5191 CPoint CDC::GetViewportOrg()const 5192 int CListCtrl::GetViewRect(tagRECT *)const 5193 long COleControl::XViewObject::GetViewStatus(unsigned long *) 5194 int CHtmlView::GetVisible()const 5195 unsigned int CTreeCtrl::GetVisibleCount()const 5196 int CFontDialog::GetWeight()const 5197 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 5198 long CHtmlView::GetWidth()const 5199 CWnd * CDC::GetWindow()const 5200 CWnd * CWnd::GetWindow(unsigned int)const 5201 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5202 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5203 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5204 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5205 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5206 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5207 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5208 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5209 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5210 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5211 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5212 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5213 unsigned long CWnd::GetWindowContextHelpId()const 5214 CDC * CWnd::GetWindowDC() 5215 long CWnd::GetWindowedChildCount() 5216 CSize CDC::GetWindowExt()const 5217 long CWnd::GetWindowLessChildCount() 5218 IDropTarget * COleControl::GetWindowlessDropTarget() 5219 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5220 CPoint CDC::GetWindowOrg()const 5221 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5222 void CWnd::GetWindowRect(tagRECT *)const 5223 int CWnd::GetWindowRgn(HRGN__ *)const 5224 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 5225 int CWnd::GetWindowTextA(char *,int)const 5226 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 5227 int CWnd::GetWindowTextLengthA()const 5228 unsigned int CRichEditCtrl::GetWordWrapMode()const 5229 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5230 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5231 long COleDropSource::GiveFeedback(unsigned long) 5232 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5233 void CHtmlView::GoBack() 5234 void CHtmlView::GoForward() 5235 void CHtmlView::GoHome() 5236 void CHtmlView::GoSearch() 5237 void CDialog::GotoDlgCtrl(CWnd *) 5238 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5239 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5240 int CDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5241 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5242 void CMemFile::GrowFile(unsigned long) 5243 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5244 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5245 long CDialog::HandleInitDialog(unsigned int,long) 5246 long CDialogBar::HandleInitDialog(unsigned int,long) 5247 long CFormView::HandleInitDialog(unsigned int,long) 5248 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5249 long CPropertySheet::HandleInitDialog(unsigned int,long) 5250 long CScrollView::HandleMButtonDown(unsigned int,long) 5251 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5252 int COleControlContainer::HandleSetFocus() 5253 long CDialog::HandleSetFont(unsigned int,long) 5254 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5255 long COleControl::XPersistStorage::HandsOffStorage() 5256 long COleServerDoc::XPersistStorage::HandsOffStorage() 5257 int COleDocument::HasBlankItems()const 5258 int CComboBoxEx::HasEditChanged() 5259 int CDialogTemplate::HasFont()const 5260 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5261 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 5262 void * CFile::hFileNull 5263 void CWinApp::HideApplication() 5264 int CToolBarCtrl::HideButton(int,int) 5265 void CWnd::HideCaret() 5266 void CFileDialog::HideControl(int) 5267 void CRichEditCtrl::HideSelection(int,int) 5268 long CBrowserControlSite::HideUI() 5269 long CDHtmlDialog::HideUI() 5270 long CHtmlControlSite::XDocHostUIHandler::HideUI() 5271 int CTabCtrl::HighlightItem(int,int) 5272 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5273 void CDC::HIMETRICtoDP(tagSIZE *)const 5274 void CDC::HIMETRICtoLP(tagSIZE *)const 5275 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5276 int CListCtrl::HitTest(CPoint,unsigned int *)const 5277 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5278 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5279 int CRectTracker::HitTest(CPoint)const 5280 int CSplitterWnd::HitTest(CPoint)const 5281 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5282 int CToolBarCtrl::HitTest(tagPOINT *)const 5283 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 5284 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5285 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5286 int CRectTracker::HitTestHandles(CPoint)const 5287 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 5288 void CWnd::HtmlHelpA(unsigned long,unsigned int) 5289 int CSplitterWnd::IdFromRowCol(int,int)const 5290 int CReBarCtrl::IDToIndex(unsigned int)const 5291 void COlePropertyPage::IgnoreApply(unsigned int) 5292 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5293 int CToolBarCtrl::Indeterminate(int,int) 5294 int CCriticalSection::Init() 5295 int CWinApp::InitApplication() 5296 long COleControl::XOleCache::InitCache(IDataObject *) 5297 int CWnd::InitControlContainer() 5298 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5299 long CPrintDialogEx::InitDone() 5300 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5301 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5302 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5303 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5304 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5305 void CMapPtrToWord::InitHashTable(unsigned int,int) 5306 void CMapStringToOb::InitHashTable(unsigned int,int) 5307 void CMapStringToPtr::InitHashTable(unsigned int,int) 5308 void CMapStringToString::InitHashTable(unsigned int,int) 5309 void CMapWordToOb::InitHashTable(unsigned int,int) 5310 void CMapWordToPtr::InitHashTable(unsigned int,int) 5311 long CDataSourceControl::Initialize() 5312 void CDHtmlDialog::Initialize() 5313 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5314 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5315 int CEditView::InitializeReplace() 5316 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5317 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5318 int COleControlModule::InitInstance() 5319 int CWinApp::InitInstance() 5320 int CWinThread::InitInstance() 5321 void CWinApp::InitLibId() 5322 void CDockContext::InitLoop() 5323 int CDialog::InitModalIndirect(void *,CWnd *) 5324 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5325 long COleControl::XPersistMemory::InitNew() 5326 long COleControl::XPersistPropertyBag::InitNew() 5327 long COleControl::XPersistStorage::InitNew(IStorage *) 5328 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5329 long COleControl::XPersistStreamInit::InitNew() 5330 void CRecordset::InitRecord() 5331 void COleControl::InitStockEventMask() 5332 void COleControl::InitStockPropMask() 5333 int CComboBox::InitStorage(int,unsigned int) 5334 int CListBox::InitStorage(int,unsigned int) 5335 void CSimpleException::InitString() 5336 int CFrameWnd::InModalState()const 5337 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 5338 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 5339 int ATL::CStringT > >::Insert(int,wchar_t) 5340 int ATL::CStringT > >::Insert(int,wchar_t const *) 5341 int ATL::CStringT > >::Insert(int,char) 5342 int ATL::CStringT > >::Insert(int,char const *) 5343 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5344 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5345 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5346 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5347 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 5348 void CByteArray::InsertAt(int,unsigned char,int) 5349 void CByteArray::InsertAt(int,CByteArray *) 5350 void CDWordArray::InsertAt(int,unsigned long,int) 5351 void CDWordArray::InsertAt(int,CDWordArray *) 5352 void CObArray::InsertAt(int,CObArray *) 5353 void CObArray::InsertAt(int,CObject *,int) 5354 void CPtrArray::InsertAt(int,CPtrArray *) 5355 void CPtrArray::InsertAt(int,void *,int) 5356 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5357 void CStringArray::InsertAt(int,CStringArray *) 5358 void CStringArray::InsertAt(int,char const *,int) 5359 void CUIntArray::InsertAt(int,unsigned int,int) 5360 void CUIntArray::InsertAt(int,CUIntArray *) 5361 void CWordArray::InsertAt(int,unsigned short,int) 5362 void CWordArray::InsertAt(int,CWordArray *) 5363 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOA *) 5364 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5365 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5366 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5367 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 5368 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5369 int CListCtrl::InsertColumn(int,char const *,int,int,int) 5370 int CListCtrl::InsertColumn(int,tagLVCOLUMNA const *) 5371 void CStringArray::InsertEmpty(int,int) 5372 void CRichEditView::InsertFileAsObject(char const *) 5373 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 5374 int CHeaderCtrl::InsertItem(int,_HD_ITEMA *) 5375 int CListCtrl::InsertItem(int,char const *) 5376 int CListCtrl::InsertItem(int,char const *,int) 5377 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 5378 int CListCtrl::InsertItem(tagLVITEMA const *) 5379 long CRichEditView::InsertItem(CRichEditCntrItem *) 5380 long CTabCtrl::InsertItem(int,tagTCITEMA *) 5381 long CTabCtrl::InsertItem(int,char const *) 5382 long CTabCtrl::InsertItem(int,char const *,int) 5383 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 5384 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 5385 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5386 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTA *) 5387 _TREEITEM * CTreeCtrl::InsertItem(char const *,int,int,_TREEITEM *,_TREEITEM *) 5388 _TREEITEM * CTreeCtrl::InsertItem(char const *,_TREEITEM *,_TREEITEM *) 5389 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5390 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,char const *) 5391 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5392 int CMenu::InsertMenuItemA(unsigned int,tagMENUITEMINFOA *,int) 5393 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5394 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5395 int CComboBox::InsertString(int,char const *) 5396 int CComboBoxEx::InsertString(int,char const *) 5397 int CListBox::InsertString(int,char const *) 5398 unsigned long CCmdTarget::InternalAddRef() 5399 CFontHolder & COleControl::InternalGetFont() 5400 ATL::CStringT > > const & COleControl::InternalGetText() 5401 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5402 unsigned long CCmdTarget::InternalRelease() 5403 void COleControl::InternalSetReadyState(long) 5404 int CDC::IntersectClipRect(int,int,int,int) 5405 int CDC::IntersectClipRect(tagRECT const *) 5406 void CWnd::Invalidate(int) 5407 void CCheckListBox::InvalidateCheck(int) 5408 void COleControl::InvalidateControl(tagRECT const *,int) 5409 void CCheckListBox::InvalidateItem(int) 5410 void CRichEditDoc::InvalidateObjectCache() 5411 void CWnd::InvalidateRect(tagRECT const *,int) 5412 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5413 void COleControl::InvalidateRgn(CRgn *,int) 5414 void CWnd::InvalidateRgn(CRgn *,int) 5415 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5416 void CDC::InvertRect(tagRECT const *) 5417 int CDC::InvertRgn(CRgn *) 5418 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5419 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5420 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5421 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5422 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5423 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5424 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5425 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5426 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5427 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5428 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5429 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5430 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5431 int CAsyncSocket::IOCtl(long,unsigned long *) 5432 int CFileFind::IsArchived()const 5433 int CPropExchange::IsAsynchronous() 5434 int CDocItem::IsBlank()const 5435 int CIPAddressCtrl::IsBlank()const 5436 int COleServerItem::IsBlank()const 5437 int CSocket::IsBlocking() 5438 int CRecordset::IsBOF()const 5439 int CFontDialog::IsBold()const 5440 int CArchive::IsBufferEmpty()const 5441 int CToolBarCtrl::IsButtonChecked(int)const 5442 int CPropertyPage::IsButtonEnabled(int) 5443 int CToolBarCtrl::IsButtonEnabled(int)const 5444 int CToolBarCtrl::IsButtonHidden(int)const 5445 int CToolBarCtrl::IsButtonHighlighted(int)const 5446 int CToolBarCtrl::IsButtonIndeterminate(int)const 5447 int CToolBarCtrl::IsButtonPressed(int)const 5448 int CArchive::IsByteSwapping()const 5449 int CWnd::IsChild(CWnd const *)const 5450 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5451 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5452 int CFileFind::IsCompressed()const 5453 int COleServerItem::IsConnected()const 5454 int COleControl::IsConvertingVBX() 5455 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5456 int COleControlSite::IsDefaultButton() 5457 int CRecordset::IsDeleted()const 5458 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5459 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 5460 int CWnd::IsDialogMessageA(tagMSG *) 5461 int CFileFind::IsDirectory()const 5462 long CBlobProperty::IsDirty() 5463 long COleLinkingDoc::XPersistFile::IsDirty() 5464 long COleControl::XPersistMemory::IsDirty() 5465 long COleControl::XPersistStorage::IsDirty() 5466 long COleServerDoc::XPersistStorage::IsDirty() 5467 long COleControl::XPersistStreamInit::IsDirty() 5468 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5469 unsigned int CWnd::IsDlgButtonChecked(int)const 5470 int CControlBar::IsDockBar()const 5471 int CDockBar::IsDockBar()const 5472 int COleServerDoc::IsDocObject()const 5473 int CFileFind::IsDots()const 5474 int CGopherFileFind::IsDots()const 5475 int COleServerDoc::IsEmbedded()const 5476 bool ATL::CSimpleStringT::IsEmpty()const 5477 bool ATL::CSimpleStringT::IsEmpty()const 5478 int CByteArray::IsEmpty()const 5479 int CDWordArray::IsEmpty()const 5480 int CMapPtrToPtr::IsEmpty()const 5481 int CMapPtrToWord::IsEmpty()const 5482 int CMapStringToOb::IsEmpty()const 5483 int CMapStringToPtr::IsEmpty()const 5484 int CMapStringToString::IsEmpty()const 5485 int CMapWordToOb::IsEmpty()const 5486 int CMapWordToPtr::IsEmpty()const 5487 int CObArray::IsEmpty()const 5488 int CObList::IsEmpty()const 5489 int CPtrArray::IsEmpty()const 5490 int CPtrList::IsEmpty()const 5491 int CStringArray::IsEmpty()const 5492 int CStringList::IsEmpty()const 5493 int CUIntArray::IsEmpty()const 5494 int CWordArray::IsEmpty()const 5495 int CCheckListBox::IsEnabled(int) 5496 int CRecordset::IsEOF()const 5497 int CDHtmlDialog::IsExternalDispatchSafe() 5498 int CRecordset::IsFieldDirty(void *) 5499 int CRecordset::IsFieldNull(void *) 5500 int CRecordset::IsFieldNullable(void *) 5501 int CRecordset::IsFieldNullable(unsigned long)const 5502 int CRecordset::IsFieldStatusDirty(unsigned long)const 5503 int CRecordset::IsFieldStatusNull(unsigned long)const 5504 int CFieldExchange::IsFieldType(unsigned int *) 5505 int CControlBar::IsFloating()const 5506 int CFrameWnd::IsFrameWnd()const 5507 int CWnd::IsFrameWnd()const 5508 int IsHelpKey(tagMSG *) 5509 int CFileFind::IsHidden()const 5510 int CWnd::IsIconic()const 5511 int CWinThread::IsIdleMessage(tagMSG *) 5512 int COleClientItem::IsInPlaceActive()const 5513 int COleServerDoc::IsInPlaceActive()const 5514 int CCmdTarget::IsInvokeAllowed(long) 5515 int COleControl::IsInvokeAllowed(long) 5516 int CFontDialog::IsItalic()const 5517 int CRecordset::IsJoin(char const *) 5518 int CObject::IsKindOf(CRuntimeconst *)const 5519 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5520 int COccManager::IsLabelControl(CWnd *) 5521 int COleObjectFactory::IsLicenseValid() 5522 int COleServerItem::IsLinkedItem()const 5523 int COleClientItem::IsLinkUpToDate()const 5524 int CArchive::IsLoading()const 5525 int CPropExchange::IsLoading() 5526 int CMultiLock::IsLocked(unsigned long) 5527 int CSingleLock::IsLocked() 5528 int CRichEditCntrItem::IsMarked() 5529 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5530 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5531 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5532 int CDocument::IsModified() 5533 int CHtmlEditDoc::IsModified() 5534 int COleClientItem::IsModified()const 5535 int COleControl::IsModified() 5536 int COlePropertyPage::IsModified() 5537 int CRichEditDoc::IsModified() 5538 int CFileFind::IsNormal()const 5539 int CRecordView::IsOnFirstRecord() 5540 int CRecordView::IsOnLastRecord() 5541 int CDatabase::IsOpen()const 5542 int COleClientItem::IsOpen()const 5543 int CRecordset::IsOpen()const 5544 int COleControl::IsOptimizedDraw() 5545 long COlePropertyPage::XPropertyPage::IsPageDirty() 5546 int CRecordset::IsParamStatusNull(unsigned long)const 5547 int CDC::IsPrinting()const 5548 int CFileFind::IsReadOnly()const 5549 int CRecordset::IsRecordsetUpdatable() 5550 int COleObjectFactory::IsRegistered()const 5551 int CCmdTarget::IsResultExpected() 5552 int CRichEditView::IsRichEditFormat(unsigned short) 5553 int COleClientItem::IsRunning()const 5554 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 5555 int CRichEditView::IsSelected(CObject const *)const 5556 int CView::IsSelected(CObject const *)const 5557 int CRecordset::IsSelectQueryUpdatable(char const *) 5558 int CObject::IsSerializable()const 5559 int COleMessageFilter::IsSignificantMessage(tagMSG *) 5560 int CStatusBarCtrl::IsSimple()const 5561 int CDHtmlDialog::IsSinkedElement(IDispatch *) 5562 int CRecordset::IsSQLUpdatable(char const *) 5563 int CArchive::IsStoring()const 5564 int CFontDialog::IsStrikeOut()const 5565 int COleControl::IsSubclassedControl() 5566 int CFileFind::IsSystem()const 5567 int CFileFind::IsTemporary()const 5568 int CFindReplaceDialog::IsTerminating()const 5569 int CWnd::IsTopParentActive()const 5570 int CFrameWnd::IsTracking()const 5571 int CSplitterWnd::IsTracking() 5572 int CFontDialog::IsUnderline()const 5573 long CDocObjectServer::XOleObject::IsUpToDate() 5574 long COleControl::XOleObject::IsUpToDate() 5575 long COleServerDoc::XOleObject::IsUpToDate() 5576 long COleServerItem::XOleObject::IsUpToDate() 5577 int COleChangeSourceDialog::IsValidSource() 5578 int CControlBar::IsVisible()const 5579 int COleControlSite::IsWindowEnabled()const 5580 int CWnd::IsWindowEnabled()const 5581 int CWnd::IsWindowVisible()const 5582 int CPropertySheet::IsWizard()const 5583 int CWnd::IsZoomed()const 5584 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 5585 int CDragListBox::ItemFromPt(CPoint,int)const 5586 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 5587 void COleControl::KeyDown(unsigned short *) 5588 void COleControl::KeyUp(unsigned short *) 5589 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 5590 int CWnd::KillTimer(unsigned int) 5591 int CHeaderCtrl::Layout(_HD_LAYOUT *) 5592 void CToolBar::Layout() 5593 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5594 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5595 int CComboBox::LimitText(int) 5596 void CEdit::LimitText(int) 5597 void CRichEditCtrl::LimitText(long) 5598 int CEdit::LineFromChar(int)const 5599 long CRichEditCtrl::LineFromChar(long)const 5600 int CEdit::LineIndex(int)const 5601 int CRichEditCtrl::LineIndex(int)const 5602 int CEdit::LineLength(int)const 5603 int CRichEditCtrl::LineLength(int)const 5604 void CEdit::LineScroll(int,int) 5605 void CRichEditCtrl::LineScroll(int,int) 5606 int CDC::LineTo(int,int) 5607 int CDC::LineTo(tagPOINT) 5608 int CAsyncSocket::Listen(int) 5609 unsigned long CRichEditView::lMaxSize 5610 long CBlobProperty::Load(IStream *) 5611 int CDialogTemplate::Load(char const *) 5612 void COleControl::Load(char const *,CDataPathProperty &) 5613 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 5614 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 5615 long COleControl::XPersistMemory::Load(void *,unsigned long) 5616 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 5617 long COleControl::XPersistStorage::Load(IStorage *) 5618 long COleServerDoc::XPersistStorage::Load(IStorage *) 5619 long COleControl::XPersistStreamInit::Load(IStream *) 5620 int CFrameWnd::LoadAccelTable(char const *) 5621 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 5622 void CFrameWnd::LoadBarState(char const *) 5623 int CBitmap::LoadBitmapA(unsigned int) 5624 int CBitmap::LoadBitmapA(char const *) 5625 int CToolBar::LoadBitmapA(unsigned int) 5626 int CToolBar::LoadBitmapA(char const *) 5627 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 5628 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 5629 HICON__ * CWinApp::LoadCursorA(unsigned int)const 5630 HICON__ * CWinApp::LoadCursorA(char const *)const 5631 void CRecordset::LoadFields() 5632 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5633 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5634 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5635 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5636 int CDHtmlDialog::LoadFromResource(unsigned int) 5637 int CDHtmlDialog::LoadFromResource(char const *) 5638 int CHtmlView::LoadFromResource(unsigned int) 5639 int CHtmlView::LoadFromResource(char const *) 5640 void COleDocument::LoadFromStorage() 5641 HICON__ * CWinApp::LoadIconA(unsigned int)const 5642 HICON__ * CWinApp::LoadIconA(char const *)const 5643 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 5644 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 5645 int CMenu::LoadMenuA(unsigned int) 5646 int CMenu::LoadMenuA(char const *) 5647 int CMenu::LoadMenuIndirectA(void const *) 5648 int CBitmap::LoadOEMBitmap(unsigned int) 5649 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 5650 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 5651 HICON__ * CWinApp::LoadStandardCursor(char const *)const 5652 HICON__ * CWinApp::LoadStandardIcon(char const *)const 5653 int CControlBarInfo::LoadState(char const *,int,CDockState *) 5654 void CDockState::LoadState(char const *) 5655 long COleControl::LoadState(IStream *) 5656 void CWinApp::LoadStdProfileSettings(unsigned int) 5657 int ATL::CStringT > >::LoadStringA(unsigned int) 5658 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 5659 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 5660 int ATL::CStringT > >::LoadStringA(unsigned int) 5661 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 5662 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 5663 int CWinApp::LoadSysPolicies() 5664 void CDocTemplate::LoadTemplate() 5665 void CMultiDocTemplate::LoadTemplate() 5666 int CToolBar::LoadToolBar(unsigned int) 5667 int CToolBar::LoadToolBar(char const *) 5668 int CCriticalSection::Lock() 5669 int CCriticalSection::Lock(unsigned long) 5670 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 5671 void COleSafeArray::Lock() 5672 int CSingleLock::Lock(unsigned long) 5673 int CSyncObject::Lock(unsigned long) 5674 void CTypeLibCache::Lock() 5675 wchar_t * ATL::CSimpleStringT::LockBuffer() 5676 char * ATL::CSimpleStringT::LockBuffer() 5677 char const * CEditView::LockBuffer()const 5678 long COleControlContainer::XOleContainer::LockContainer(int) 5679 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 5680 void COleLinkingDoc::LockExternal(int,int) 5681 int COleControl::LockInPlaceActive(int) 5682 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 5683 void CFile::LockRange(unsigned __int64,unsigned __int64) 5684 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 5685 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 5686 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 5687 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 5688 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 5689 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5690 long COleObjectFactory::XClassFactory::LockServer(int) 5691 int CWnd::LockWindowUpdate() 5692 int CMapPtrToPtr::Lookup(void *,void * &)const 5693 int CMapPtrToWord::Lookup(void *,unsigned short &)const 5694 int CMapStringToOb::Lookup(char const *,CObject * &)const 5695 int CMapStringToPtr::Lookup(char const *,void * &)const 5696 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 5697 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 5698 int CMapWordToPtr::Lookup(unsigned short,void * &)const 5699 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 5700 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 5701 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 5702 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 5703 int CMapStringToOb::LookupKey(char const *,char const * &)const 5704 int CMapStringToPtr::LookupKey(char const *,char const * &)const 5705 int CMapStringToString::LookupKey(char const *,char const * &)const 5706 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 5707 void CDC::LPtoDP(tagPOINT *,int)const 5708 void CDC::LPtoDP(tagRECT *)const 5709 void CDC::LPtoDP(tagSIZE *)const 5710 void CDC::LPtoHIMETRIC(tagSIZE *)const 5711 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5712 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5713 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5714 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5715 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5716 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5717 int CToolBarCtrl::MapAccelerator(char,unsigned int *) 5718 void CDialog::MapDialogRect(tagRECT *)const 5719 void CPropertySheet::MapDialogRect(tagRECT *)const 5720 void CArchive::MapObject(CObject const *) 5721 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 5722 int COleDialog::MapResult(unsigned int) 5723 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 5724 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 5725 long CPropertyPage::MapWizardResult(long) 5726 void CRichEditCntrItem::Mark(int) 5727 int CToolBarCtrl::MarkButton(int,int) 5728 void CRecordset::MarkForAddNew() 5729 void CRecordset::MarkForUpdate() 5730 void CRichEditDoc::MarkItemsClear()const 5731 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 5732 int CFindReplaceDialog::MatchCase()const 5733 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 5734 int CFileFind::MatchesMask(unsigned long)const 5735 int CFindReplaceDialog::MatchWholeWord()const 5736 void CReBarCtrl::MaximizeBand(unsigned int) 5737 void CMDIChildWnd::MDIActivate() 5738 void CMDIFrameWnd::MDIActivate(CWnd *) 5739 void CMDIFrameWnd::MDICascade(int) 5740 void CMDIFrameWnd::MDICascade() 5741 void CMDIChildWnd::MDIDestroy() 5742 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 5743 void CMDIFrameWnd::MDIIconArrange() 5744 void CMDIChildWnd::MDIMaximize() 5745 void CMDIFrameWnd::MDIMaximize(CWnd *) 5746 void CMDIFrameWnd::MDINext() 5747 void CMDIFrameWnd::MDIPrev() 5748 void CMDIChildWnd::MDIRestore() 5749 void CMDIFrameWnd::MDIRestore(CWnd *) 5750 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 5751 void CMDIFrameWnd::MDITile(int) 5752 void CMDIFrameWnd::MDITile() 5753 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 5754 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 5755 void CComboBox::MeasureItem(tagMEASUREITEM*) 5756 void CListBox::MeasureItem(tagMEASUREITEM*) 5757 void CMenu::MeasureItem(tagMEASUREITEM*) 5758 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 5759 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 5760 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 5761 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 5762 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 5763 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5764 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5765 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5766 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5767 void CReBarCtrl::MinimizeBand(unsigned int) 5768 void CPreviewDC::MirrorAttributes() 5769 void CPreviewDC::MirrorFont() 5770 void CPreviewDC::MirrorMappingMode(int) 5771 void CPreviewDC::MirrorViewportOrg() 5772 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,char const *) 5773 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5774 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 5775 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 5776 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 5777 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5778 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5779 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 5780 void CDockContext::Move(CPoint) 5781 void CRecordset::Move(long,unsigned short) 5782 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 5783 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 5784 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 5785 void CRecordset::MoveFirst() 5786 void CRecordset::MoveLast() 5787 void CRecordset::MoveNext() 5788 void CRecordset::MovePrev() 5789 CPoint CDC::MoveTo(int,int) 5790 CPoint CDC::MoveTo(tagPOINT) 5791 void COleControlSite::MoveWindow(int,int,int,int) 5792 void CWnd::MoveWindow(int,int,int,int,int) 5793 void CWnd::MoveWindow(tagRECT const *,int) 5794 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5795 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5796 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 5797 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5798 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 5799 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 5800 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 5801 unsigned int COleDropSource::nDragDelay 5802 unsigned int COleDropSource::nDragMinDist 5803 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 5804 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 5805 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 5806 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 5807 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 5808 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 5809 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 5810 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 5811 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 5812 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 5813 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 5814 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 5815 void CDialog::NextDlgCtrl()const 5816 unsigned int const CEditView::nMaxSize 5817 int CRectTracker::NormalizeHit(int)const 5818 void CDataBoundProperty::Notify() 5819 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 5820 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 5821 void COleServerDoc::NotifyChanged() 5822 void COleServerItem::NotifyChanged(enum tagDVASPECT) 5823 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 5824 void COleServerDoc::NotifyClosed() 5825 void CFrameWnd::NotifyFloatingWindows(unsigned long) 5826 void COleServerDoc::NotifyRename(char const *) 5827 void COleServerDoc::NotifySaved() 5828 void CWnd::NotifyWinEvent(unsigned long,long,long) 5829 unsigned int COleDropTarget::nScrollDelay 5830 int COleDropTarget::nScrollInset 5831 unsigned int COleDropTarget::nScrollInterval 5832 void ATL::CStringT > >::OemToCharA() 5833 int CDC::OffsetClipRgn(int,int) 5834 int CDC::OffsetClipRgn(tagSIZE) 5835 int CProgressCtrl::OffsetPos(int) 5836 int CRgn::OffsetRgn(int,int) 5837 int CRgn::OffsetRgn(tagPOINT) 5838 CPoint CDC::OffsetViewportOrg(int,int) 5839 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 5840 CPoint CPreviewDC::OffsetViewportOrg(int,int) 5841 CPoint CDC::OffsetWindowOrg(int,int) 5842 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5843 void CAsyncSocket::OnAccept(int) 5844 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 5845 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 5846 void COleClientItem::OnActivate() 5847 void COleFrameHook::OnActivate(int) 5848 void CWnd::OnActivate(unsigned int,CWnd *,int) 5849 void CWnd::OnActivateApp(int,unsigned long) 5850 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 5851 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 5852 long COleControl::OnActivateInPlace(int,tagMSG *) 5853 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 5854 long CWnd::OnActivateTopLevel(unsigned int,long) 5855 void COleClientItem::OnActivateUI() 5856 long CDocObjectServer::OnActivateView() 5857 void CFormView::OnActivateView(int,CView *,CView *) 5858 void CPreviewView::OnActivateView(int,CView *,CView *) 5859 void CRichEditView::OnActivateView(int,CView *,CView *) 5860 void CView::OnActivateView(int,CView *,CView *) 5861 long CToolTipCtrl::OnAddTool(unsigned int,long) 5862 void CConnectionPoint::OnAdvise(int) 5863 void COleControl::XEventConnPt::OnAdvise(int) 5864 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 5865 void COleControl::OnAmbientPropertyChange(long) 5866 long COleControl::XOleControl::OnAmbientPropertyChange(long) 5867 void COleControl::OnAppearanceChanged() 5868 void CWinApp::OnAppExit() 5869 int CPropertyPage::OnApply() 5870 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 5871 void CDocObjectServer::OnApplyViewState(CArchive &) 5872 void CWnd::OnAskCbFormatName(unsigned int,char *) 5873 void COleControl::OnBackColorChanged() 5874 int CFrameWnd::OnBarCheck(unsigned int) 5875 int COleIPFrameWnd::OnBarCheck(unsigned int) 5876 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 5877 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 5878 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 5879 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 5880 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 5881 int COleDropSource::OnBeginDrag(CWnd *) 5882 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5883 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5884 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 5885 void COleControl::OnBorderStyleChanged() 5886 void CRichEditView::OnBullet() 5887 int COleMessageFilter::OnBusyDialog(HTASK__ *) 5888 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 5889 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 5890 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 5891 void CCommonDialog::OnCancel() 5892 void CDialog::OnCancel() 5893 void CPropertyPage::OnCancel() 5894 void CRichEditView::OnCancelEditCntr() 5895 void COleControl::OnCancelMode() 5896 void CSplitterWnd::OnCancelMode() 5897 void CWnd::OnCancelMode() 5898 void CWnd::OnCaptureChanged(CWnd *) 5899 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 5900 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 5901 long COleControl::XFontNotification::OnChanged(long) 5902 long COleControlSite::XPropertyNotifySink::OnChanged(long) 5903 long COlePropertyPage::XPropNotifySink::OnChanged(long) 5904 void CRectTracker::OnChangedRect(CRect const &) 5905 void CDocument::OnChangedViewList() 5906 int COleClientItem::OnChangeItemPosition(CRect const &) 5907 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 5908 void CWnd::OnChangeUIState(unsigned int,unsigned int) 5909 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 5910 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 5911 void CRichEditView::OnCharBold() 5912 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 5913 void CRichEditView::OnCharItalic() 5914 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 5915 void CRichEditView::OnCharUnderline() 5916 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 5917 void CWnd::OnChildActivate() 5918 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 5919 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5920 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5921 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5922 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5923 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5924 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5925 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 5926 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 5927 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 5928 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5929 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5930 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 5931 void COleControl::OnClick(unsigned short) 5932 CEnumArray * CEnumArray::OnClone() 5933 CEnumArray * CEnumConnections::OnClone() 5934 void CAsyncSocket::OnClose(int) 5935 void CControlFrameWnd::OnClose() 5936 void CFrameWnd::OnClose() 5937 void CMiniDockFrameWnd::OnClose() 5938 void COleControl::OnClose(unsigned long) 5939 void COleServerDoc::OnClose(enum tagOLECLOSE) 5940 void CPropertySheet::OnClose() 5941 void CWnd::OnClose() 5942 void COleClientItem::XAdviseSink::OnClose() 5943 void CDocObjectServer::OnCloseDocument() 5944 void CDocument::OnCloseDocument() 5945 void COleDocument::OnCloseDocument() 5946 void COleLinkingDoc::OnCloseDocument() 5947 void COleServerDoc::OnCloseDocument() 5948 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5949 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5950 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5951 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5952 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5953 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5954 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5955 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5956 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5957 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5958 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5959 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5960 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5961 void CRichEditView::OnColorDefault() 5962 int CColorDialog::OnColorOK() 5963 void CRichEditView::OnColorPick(unsigned long) 5964 int CFrameWnd::OnCommand(unsigned int,long) 5965 int CMDIFrameWnd::OnCommand(unsigned int,long) 5966 int COlePropertyPage::OnCommand(unsigned int,long) 5967 int CPropertySheet::OnCommand(unsigned int,long) 5968 int CSplitterWnd::OnCommand(unsigned int,long) 5969 int CWnd::OnCommand(unsigned int,long) 5970 long CDialog::OnCommandHelp(unsigned int,long) 5971 long CFrameWnd::OnCommandHelp(unsigned int,long) 5972 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 5973 long CPropertySheet::OnCommandHelp(unsigned int,long) 5974 void CHtmlView::OnCommandStateChange(long,int) 5975 void CWnd::OnCompacting(unsigned int) 5976 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 5977 void CAsyncSocket::OnConnect(int) 5978 void CFrameWnd::OnContextHelp() 5979 int COleFrameHook::OnContextHelp(int) 5980 void COleIPFrameWnd::OnContextHelp() 5981 void CWinApp::OnContextHelp() 5982 void CWnd::OnContextMenu(CWnd *,CPoint) 5983 long COleControlSite::XOleControlSite::OnControlInfoChanged() 5984 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 5985 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 5986 int CControlBar::OnCreate(tagCREATESTRUCTA *) 5987 int CEditView::OnCreate(tagCREATESTRUCTA *) 5988 int CFormView::OnCreate(tagCREATESTRUCTA *) 5989 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 5990 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 5991 int COleControl::OnCreate(tagCREATESTRUCTA *) 5992 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 5993 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 5994 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 5995 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 5996 int CView::OnCreate(tagCREATESTRUCTA *) 5997 int CWnd::OnCreate(tagCREATESTRUCTA *) 5998 int CCmdTarget::OnCreateAggregates() 5999 int COleControl::OnCreateAggregates() 6000 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 6001 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 6002 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 6003 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 6004 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 6005 CCmdTarget * COleObjectFactory::OnCreateObject() 6006 CCmdTarget * COleTemplateServer::OnCreateObject() 6007 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 6008 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6009 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6010 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 6011 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 6012 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 6013 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 6014 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6015 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6016 int CDocManager::OnDDECommand(char *) 6017 int CWinApp::OnDDECommand(char *) 6018 long CFrameWnd::OnDDEExecute(unsigned int,long) 6019 long CFrameWnd::OnDDEInitiate(unsigned int,long) 6020 long CFrameWnd::OnDDETerminate(unsigned int,long) 6021 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 6022 void COleClientItem::OnDeactivate() 6023 void COleServerDoc::OnDeactivate() 6024 void COleClientItem::OnDeactivateAndUndo() 6025 void COleClientItem::OnDeactivateUI(int) 6026 void COleServerDoc::OnDeactivateUI(int) 6027 void CRichEditCntrItem::OnDeactivateUI(int) 6028 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 6029 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 6030 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 6031 void CControlBar::OnDestroy() 6032 void CDHtmlDialog::OnDestroy() 6033 void CEditView::OnDestroy() 6034 void CFrameWnd::OnDestroy() 6035 void CHtmlView::OnDestroy() 6036 void CMDIChildWnd::OnDestroy() 6037 void CMDIFrameWnd::OnDestroy() 6038 void COleControl::OnDestroy() 6039 void COleIPFrameWnd::OnDestroy() 6040 void CRichEditView::OnDestroy() 6041 void CTabCtrl::OnDestroy() 6042 void CTreeCtrl::OnDestroy() 6043 void CTreeView::OnDestroy() 6044 void CView::OnDestroy() 6045 void CWnd::OnDestroy() 6046 void CWnd::OnDestroyClipboard() 6047 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 6048 int CWnd::OnDeviceChange(unsigned int,unsigned long) 6049 void CRichEditView::OnDevModeChange(char *) 6050 void CWnd::OnDevModeChange(char *) 6051 long CToolTipCtrl::OnDisableModal(unsigned int,long) 6052 void COleClientItem::OnDiscardUndoState() 6053 void CSplitterWnd::OnDisplayChange() 6054 long CWnd::OnDisplayChange(unsigned int,long) 6055 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 6056 int COleFrameHook::OnDocActivate(int) 6057 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 6058 void CHtmlView::OnDocumentComplete(char const *) 6059 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 6060 long CBrowserControlSite::OnDocWindowActivate(int) 6061 long CDHtmlDialog::OnDocWindowActivate(int) 6062 long CHtmlView::OnDocWindowActivate(int) 6063 void COleServerDoc::OnDocWindowActivate(int) 6064 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 6065 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6066 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6067 void CDocObjectServerItem::OnDoVerb(long) 6068 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 6069 void COleServerItem::OnDoVerb(long) 6070 void CHtmlView::OnDownloadBegin() 6071 void CHtmlView::OnDownloadComplete() 6072 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 6073 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 6074 void COleDropTarget::OnDragLeave(CWnd *) 6075 void CView::OnDragLeave() 6076 long CWnd::OnDragList(unsigned int,long) 6077 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 6078 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 6079 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 6080 unsigned long CView::OnDragScroll(unsigned long,CPoint) 6081 void CCtrlView::OnDraw(CDC *) 6082 void CFormView::OnDraw(CDC *) 6083 void CHtmlView::OnDraw(CDC *) 6084 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 6085 void CPreviewView::OnDraw(CDC *) 6086 void CView::OnDraw(CDC *) 6087 void CWnd::OnDrawClipboard() 6088 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 6089 void CWnd::OnDrawItem(int,tagDRAWITEM*) 6090 void COleControl::OnDrawMetafile(CDC *,CRect const &) 6091 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 6092 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 6093 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 6094 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 6095 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 6096 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 6097 void CFrameWnd::OnDropFiles(HDROP__ *) 6098 void CRichEditView::OnDropFiles(HDROP__ *) 6099 void CWnd::OnDropFiles(HDROP__ *) 6100 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 6101 int CEditView::OnEditChange() 6102 void COleDocument::OnEditChangeIcon() 6103 void CEditView::OnEditClear() 6104 void CRichEditView::OnEditClear() 6105 void COleDocument::OnEditConvert() 6106 void CEditView::OnEditCopy() 6107 void CHtmlView::OnEditCopy() 6108 void CRichEditView::OnEditCopy() 6109 void CEditView::OnEditCut() 6110 void CHtmlView::OnEditCut() 6111 void CRichEditView::OnEditCut() 6112 void CEditView::OnEditFind() 6113 void CRichEditView::OnEditFind() 6114 void CEditView::OnEditFindReplace(int) 6115 void CRichEditView::OnEditFindReplace(int) 6116 void COleDocument::OnEditLinks() 6117 void CEditView::OnEditPaste() 6118 void CHtmlView::OnEditPaste() 6119 void CRichEditView::OnEditPaste() 6120 void CRichEditView::OnEditPasteSpecial() 6121 void CRichEditView::OnEditProperties() 6122 int COlePropertyPage::OnEditProperty(long) 6123 void CRichEditView::OnEditRedo() 6124 void CEditView::OnEditRepeat() 6125 void CRichEditView::OnEditRepeat() 6126 void CEditView::OnEditReplace() 6127 void CRichEditView::OnEditReplace() 6128 void CEditView::OnEditSelectAll() 6129 void CRichEditView::OnEditSelectAll() 6130 void CEditView::OnEditUndo() 6131 void CRichEditView::OnEditUndo() 6132 void CFrameWnd::OnEnable(int) 6133 void CToolTipCtrl::OnEnable(int) 6134 void CWnd::OnEnable(int) 6135 void COleControl::OnEnabledChanged() 6136 long CHtmlView::OnEnableModeless(int) 6137 void COleFrameHook::OnEnableModeless(int) 6138 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 6139 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 6140 void CView::OnEndPrinting(CDC *,CPrintInfo *) 6141 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 6142 void CFrameWnd::OnEndSession(int) 6143 void CWnd::OnEndSession(int) 6144 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 6145 void COleControl::OnEnterIdle(unsigned int,CWnd *) 6146 void CWnd::OnEnterIdle(unsigned int,CWnd *) 6147 void CWnd::OnEnterMenuLoop(int) 6148 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 6149 int CFrameWnd::OnEraseBkgnd(CDC *) 6150 int COleControl::OnEraseBkgnd(CDC *) 6151 int COleResizeBar::OnEraseBkgnd(CDC *) 6152 int CPreviewView::OnEraseBkgnd(CDC *) 6153 int CReBar::OnEraseBkgnd(CDC *) 6154 int CToolBar::OnEraseBkgnd(CDC *) 6155 int CWnd::OnEraseBkgnd(CDC *) 6156 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6157 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6158 int COleControlSite::OnEvent(AFX_EVENT *) 6159 void COleControl::OnEventAdvise(int) 6160 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6161 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6162 void CWnd::OnExitMenuLoop(int) 6163 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6164 void CDocument::OnFileClose() 6165 void CFileDialog::OnFileNameChange() 6166 int CFileDialog::OnFileNameOK() 6167 void CDocManager::OnFileNew() 6168 void CWinApp::OnFileNew() 6169 void CDocManager::OnFileOpen() 6170 void CWinApp::OnFileOpen() 6171 void CHtmlView::OnFilePrint() 6172 void CView::OnFilePrint() 6173 void CView::OnFilePrintPreview() 6174 void CWinApp::OnFilePrintSetup() 6175 void CDocument::OnFileSave() 6176 void CDocument::OnFileSaveAs() 6177 void COleServerDoc::OnFileSaveCopyAs() 6178 void CDocument::OnFileSendMail() 6179 void COleDocument::OnFileSendMail() 6180 void COleServerDoc::OnFileUpdate() 6181 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 6182 void CCmdTarget::OnFinalRelease() 6183 void CDocument::OnFinalRelease() 6184 void COleControl::OnFinalRelease() 6185 void COlePropertyPage::OnFinalRelease() 6186 void COleServerItem::OnFinalRelease() 6187 void CWnd::OnFinalRelease() 6188 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 6189 void CEditView::OnFindNext(char const *,int,int) 6190 void CRichEditView::OnFindNext(char const *,int,int,int) 6191 long CEditView::OnFindReplaceCmd(unsigned int,long) 6192 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 6193 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 6194 long COleControlSite::XOleControlSite::OnFocus(int) 6195 void CFileDialog::OnFolderChange() 6196 void CWnd::OnFontChange() 6197 void COleControl::OnFontChanged() 6198 void COleControl::OnForeColorChanged() 6199 void CRichEditView::OnFormatFont() 6200 void COleControl::OnFrameClose() 6201 long CBrowserControlSite::OnFrameWindowActivate(int) 6202 long CDHtmlDialog::OnFrameWindowActivate(int) 6203 long CHtmlView::OnFrameWindowActivate(int) 6204 void COleServerDoc::OnFrameWindowActivate(int) 6205 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 6206 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6207 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6208 void COleControl::OnFreezeEvents(int) 6209 void CHtmlView::OnFullScreen(int) 6210 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 6211 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6212 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6213 void COleClientItem::OnGetClipRect(CRect &) 6214 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 6215 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 6216 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 6217 unsigned int COleControl::OnGetDlgCode() 6218 unsigned int CWnd::OnGetDlgCode() 6219 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 6220 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 6221 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6222 long CHtmlView::OnGetExternal(IDispatch * *) 6223 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6224 HMENU__ * COleControl::OnGetInPlaceMenu() 6225 void COleClientItem::OnGetItemPosition(CRect &) 6226 void COleDocObjectItem::OnGetItemPosition(CRect &) 6227 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 6228 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 6229 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6230 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6231 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6232 long CWnd::OnGetObject(unsigned int,long) 6233 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6234 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6235 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6236 long CStatusBar::OnGetText(unsigned int,long) 6237 long CStatusBar::OnGetTextLength(unsigned int,long) 6238 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6239 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6240 unsigned long COleControl::OnGetViewStatus() 6241 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6242 void CReBar::OnHeightChange(tagNMHDR *,long *) 6243 void CFrameWnd::OnHelp() 6244 int COlePropertyPage::OnHelp(char const *) 6245 void CWinApp::OnHelp() 6246 void CWnd::OnHelp() 6247 void CWinApp::OnHelpFinder() 6248 void CWnd::OnHelpFinder() 6249 long CControlBar::OnHelpHitTest(unsigned int,long) 6250 long CDialog::OnHelpHitTest(unsigned int,long) 6251 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6252 void CWinApp::OnHelpIndex() 6253 void CWnd::OnHelpIndex() 6254 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6255 int CWnd::OnHelpInfo(tagHELPINFO *) 6256 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6257 void CWinApp::OnHelpUsing() 6258 void CWnd::OnHelpUsing() 6259 void CDocObjectServerItem::OnHide() 6260 long COleControl::OnHide() 6261 void COleServerItem::OnHide() 6262 void COleControl::OnHideToolBars() 6263 long CHtmlView::OnHideUI() 6264 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6265 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6266 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6267 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6268 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6269 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6270 void CWnd::OnIconEraseBkgnd(CDC *) 6271 void CDocTemplate::OnIdle() 6272 void CDocument::OnIdle() 6273 void COleDocument::OnIdle() 6274 int CWinApp::OnIdle(long) 6275 int CWinThread::OnIdle(long) 6276 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6277 void CFrameWnd::OnIdleUpdateCmdUI() 6278 void CMDIFrameWnd::OnIdleUpdateCmdUI() 6279 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 6280 void COleIPFrameWnd::OnIdleUpdateCmdUI() 6281 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6282 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6283 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6284 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6285 int CDHtmlDialog::OnInitDialog() 6286 int CDialog::OnInitDialog() 6287 int COlePropertiesDialog::OnInitDialog() 6288 int COlePropertyPage::OnInitDialog() 6289 int CPropertySheet::OnInitDialog() 6290 void CFileDialog::OnInitDone() 6291 int COleServerItem::OnInitFromData(COleDataObject *,int) 6292 void CControlBar::OnInitialUpdate() 6293 void CFormView::OnInitialUpdate() 6294 void COleDBRecordView::OnInitialUpdate() 6295 void CRecordView::OnInitialUpdate() 6296 void CRichEditView::OnInitialUpdate() 6297 void CView::OnInitialUpdate() 6298 void CFrameWnd::OnInitMenu(CMenu *) 6299 void COleFrameHook::OnInitMenu(CMenu *) 6300 void CWnd::OnInitMenu(CMenu *) 6301 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6302 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6303 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6304 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6305 long COleClientItem::XOleIPSite::OnInPlaceActivate() 6306 long COleControlSite::XOleIPSite::OnInPlaceActivate() 6307 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6308 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 6309 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 6310 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6311 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6312 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6313 void CRichEditView::OnInsertObject() 6314 void CSplitterWnd::OnInvertTracker(CRect const &) 6315 void CDockContext::OnKey(int,int) 6316 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6317 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6318 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6319 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6320 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6321 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6322 void COleControl::OnKeyPressEvent(unsigned short) 6323 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6324 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6325 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6326 long CPropertySheet::OnKickIdle(unsigned int,long) 6327 int CPropertyPage::OnKillActive() 6328 void COleControl::OnKillFocus(CWnd *) 6329 void CWnd::OnKillFocus(CWnd *) 6330 long CCheckListBox::OnLBAddString(unsigned int,long) 6331 long CCheckListBox::OnLBFindString(unsigned int,long) 6332 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6333 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6334 long CCheckListBox::OnLBGetText(unsigned int,long) 6335 long CCheckListBox::OnLBInsertString(unsigned int,long) 6336 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6337 long CCheckListBox::OnLBSelectString(unsigned int,long) 6338 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6339 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6340 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6341 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6342 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6343 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6344 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6345 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6346 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6347 void COleControl::OnLButtonDown(unsigned int,CPoint) 6348 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6349 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6350 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6351 void CWnd::OnLButtonDown(unsigned int,CPoint) 6352 void COleControl::OnLButtonUp(unsigned int,CPoint) 6353 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6354 void CWnd::OnLButtonUp(unsigned int,CPoint) 6355 void CAsyncMonikerFile::OnLowResource() 6356 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6357 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6358 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6359 void COleControl::OnMButtonDown(unsigned int,CPoint) 6360 void CWnd::OnMButtonDown(unsigned int,CPoint) 6361 void COleControl::OnMButtonUp(unsigned int,CPoint) 6362 void CWnd::OnMButtonUp(unsigned int,CPoint) 6363 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6364 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6365 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6366 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6367 void CHtmlView::OnMenuBar(int) 6368 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6369 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6370 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6371 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6372 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6373 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6374 int COleMessageFilter::OnMessagePending(tagMSG const *) 6375 int CSocket::OnMessagePending() 6376 void COleControl::OnMnemonic(tagMSG *) 6377 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6378 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6379 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6380 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6381 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6382 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6383 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6384 void COleControl::OnMouseMove(unsigned int,CPoint) 6385 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6386 void CWnd::OnMouseMove(unsigned int,CPoint) 6387 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6388 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6389 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6390 void COleControl::OnMove(int,int) 6391 int COleDBRecordView::OnMove(unsigned int) 6392 void CRecordView::OnMove(int,int) 6393 int CRecordView::OnMove(unsigned int) 6394 void CWnd::OnMove(int,int) 6395 void CWnd::OnMoving(unsigned int,tagRECT *) 6396 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6397 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6398 void CHtmlEditView::OnNavigateComplete2(char const *) 6399 void CHtmlView::OnNavigateComplete2(char const *) 6400 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 6401 int CFrameWnd::OnNcActivate(int) 6402 int CMDIChildWnd::OnNcActivate(int) 6403 int CMiniFrameWnd::OnNcActivate(int) 6404 int CWnd::OnNcActivate(int) 6405 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6406 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6407 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6408 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6409 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6410 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6411 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 6412 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 6413 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 6414 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 6415 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 6416 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 6417 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 6418 int CWnd::OnNcCreate(tagCREATESTRUCTA *) 6419 void CListCtrl::OnNcDestroy() 6420 void CListView::OnNcDestroy() 6421 void CWnd::OnNcDestroy() 6422 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 6423 unsigned int COleControl::OnNcHitTest(CPoint) 6424 unsigned int CStatusBar::OnNcHitTest(CPoint) 6425 unsigned int CToolBar::OnNcHitTest(CPoint) 6426 unsigned int CWnd::OnNcHitTest(CPoint) 6427 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6428 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6429 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6430 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6431 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6432 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6433 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6434 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6435 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6436 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6437 void CDockBar::OnNcPaint() 6438 void COleControl::OnNcPaint() 6439 void CReBar::OnNcPaint() 6440 void CStatusBar::OnNcPaint() 6441 void CToolBar::OnNcPaint() 6442 void CWnd::OnNcPaint() 6443 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6444 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6445 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6446 int CDocument::OnNewDocument() 6447 int CHtmlEditDoc::OnNewDocument() 6448 int COleDocument::OnNewDocument() 6449 int COleLinkingDoc::OnNewDocument() 6450 void COleServerDoc::OnNewEmbedding(IStorage *) 6451 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6452 int CEnumArray::OnNext(void *) 6453 int CEnumConnections::OnNext(void *) 6454 int CEnumConnPoints::OnNext(void *) 6455 int CEnumFormatEtc::OnNext(void *) 6456 int CEnumOleVerb::OnNext(void *) 6457 int CEnumUnknown::OnNext(void *) 6458 void CPreviewView::OnNextPage() 6459 int CView::OnNextPaneCmd(unsigned int) 6460 int CFileDialog::OnNotify(unsigned int,long,long *) 6461 int CPropertyPage::OnNotify(unsigned int,long,long *) 6462 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6463 int CWnd::OnNotify(unsigned int,long,long *) 6464 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6465 long CWnd::OnNTCtlColor(unsigned int,long) 6466 void CPreviewView::OnNumPageChange() 6467 void COlePropertyPage::OnObjectsChanged() 6468 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6469 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6470 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6471 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6472 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6473 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6474 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6475 void CCommonDialog::OnOK() 6476 void CDialog::OnOK() 6477 void CPropertyPage::OnOK() 6478 long COleControl::OnOpen(int,tagMSG *) 6479 void COleServerItem::OnOpen() 6480 int CDocument::OnOpenDocument(char const *) 6481 int CHtmlEditDoc::OnOpenDocument(char const *) 6482 int COleDocument::OnOpenDocument(char const *) 6483 int COleLinkingDoc::OnOpenDocument(char const *) 6484 void COleServerDoc::OnOpenEmbedding(IStorage *) 6485 int CWinApp::OnOpenRecentFile(unsigned int) 6486 void CAsyncSocket::OnOutOfBandData(int) 6487 void CCommonDialog::OnPaint() 6488 void CControlBar::OnPaint() 6489 void CCtrlView::OnPaint() 6490 void CDialog::OnPaint() 6491 void CDockBar::OnPaint() 6492 void CHtmlEditView::OnPaint() 6493 void CHtmlView::OnPaint() 6494 void COleControl::OnPaint(CDC *) 6495 int COleControlContainer::OnPaint(CDC *) 6496 void COleResizeBar::OnPaint() 6497 void CReBar::OnPaint() 6498 void CSplitterWnd::OnPaint() 6499 void CStatusBar::OnPaint() 6500 void CToolBar::OnPaint() 6501 void CView::OnPaint() 6502 void CWnd::OnPaint() 6503 void CWnd::OnPaintClipboard(CWnd *,void *) 6504 void CFrameWnd::OnPaletteChanged(CWnd *) 6505 void COleFrameHook::OnPaletteChanged(CWnd *) 6506 void CWnd::OnPaletteChanged(CWnd *) 6507 void CWnd::OnPaletteIsChanging(CWnd *) 6508 void CRichEditView::OnParaAlign(unsigned short) 6509 void CRichEditView::OnParaCenter() 6510 void CRichEditView::OnParaLeft() 6511 void CRichEditView::OnParaRight() 6512 void CWnd::OnParentNotify(unsigned int,long) 6513 int CRichEditView::OnPasteNativeObject(IStorage *) 6514 long CFrameWnd::OnPopMessageString(unsigned int,long) 6515 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 6516 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 6517 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 6518 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 6519 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 6520 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 6521 void CView::OnPrepareDC(CDC *,CPrintInfo *) 6522 int CEditView::OnPreparePrinting(CPrintInfo *) 6523 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 6524 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6525 int CView::OnPreparePrinting(CPrintInfo *) 6526 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6527 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 6528 void CPreviewView::OnPreviewClose() 6529 void CPreviewView::OnPreviewPrint() 6530 void CPreviewView::OnPrevPage() 6531 void CEditView::OnPrint(CDC *,CPrintInfo *) 6532 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6533 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 6534 void CView::OnPrint(CDC *,CPrintInfo *) 6535 void CRichEditView::OnPrinterChanged(CDC const &) 6536 void CPrintDialog::OnPrintSetup() 6537 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 6538 void CHtmlView::OnProgressChange(long,long) 6539 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 6540 void CHtmlView::OnPropertyChange(char const *) 6541 int CPropertyPage::OnQueryCancel() 6542 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 6543 HICON__ * CWnd::OnQueryDragIcon() 6544 int CFrameWnd::OnQueryEndSession() 6545 int CWnd::OnQueryEndSession() 6546 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6547 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6548 int CFrameWnd::OnQueryNewPalette() 6549 int COleFrameHook::OnQueryNewPalette() 6550 int CWnd::OnQueryNewPalette() 6551 int CWnd::OnQueryOpen() 6552 unsigned int CWnd::OnQueryUIState() 6553 int COleServerItem::OnQueryUpdateItems() 6554 void CHtmlView::OnQuit() 6555 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 6556 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 6557 void COleControl::OnRButtonDown(unsigned int,CPoint) 6558 void CWnd::OnRButtonDown(unsigned int,CPoint) 6559 void COleControl::OnRButtonUp(unsigned int,CPoint) 6560 void CWnd::OnRButtonUp(unsigned int,CPoint) 6561 int COleServerDoc::OnReactivateAndUndo() 6562 void COleFrameHook::OnRecalcLayout() 6563 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 6564 void CReBar::OnRecalcParent() 6565 void CAsyncSocket::OnReceive(int) 6566 void COleControl::OnReflectorDestroyed() 6567 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6568 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 6569 void COleClientItem::OnRemoveMenus(CMenu *) 6570 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6571 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 6572 void CWnd::OnRenderAllFormats() 6573 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6574 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6575 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6576 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6577 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6578 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6579 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6580 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 6581 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6582 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 6583 void CWnd::OnRenderFormat(unsigned int) 6584 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6585 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6586 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 6587 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6588 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 6589 void CEditView::OnReplaceAll(char const *,char const *,int) 6590 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 6591 void CEditView::OnReplaceSel(char const *,int,int,char const *) 6592 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 6593 long COleControl::XFontNotification::OnRequestEdit(long) 6594 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 6595 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 6596 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6597 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6598 void CEnumArray::OnReset() 6599 void CPropertyPage::OnReset() 6600 void COleControl::OnResetState() 6601 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6602 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6603 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 6604 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6605 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6606 void COleClientItem::XAdviseSink::OnSave() 6607 int CDocument::OnSaveDocument(char const *) 6608 int CHtmlEditDoc::OnSaveDocument(char const *) 6609 int COleDocument::OnSaveDocument(char const *) 6610 int COleLinkingDoc::OnSaveDocument(char const *) 6611 int COleServerDoc::OnSaveDocument(char const *) 6612 void COleServerDoc::OnSaveEmbedding(IStorage *) 6613 void COleServerItem::OnSaveEmbedding(IStorage *) 6614 void CDocObjectServer::OnSaveViewState(CArchive &) 6615 int CScrollView::OnScroll(unsigned int,unsigned int,int) 6616 int CView::OnScroll(unsigned int,unsigned int,int) 6617 int COleClientItem::OnScrollBy(CSize) 6618 int CScrollView::OnScrollBy(CSize,int) 6619 int CView::OnScrollBy(CSize,int) 6620 void CRichEditView::OnSelChange(tagNMHDR *,long *) 6621 void CAsyncSocket::OnSend(int) 6622 int CPropertyPage::OnSetActive() 6623 long CToolBar::OnSetBitmapSize(unsigned int,long) 6624 long CToolBar::OnSetButtonSize(unsigned int,long) 6625 void COleControl::OnSetClientSite() 6626 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 6627 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6628 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 6629 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 6630 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 6631 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6632 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6633 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6634 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6635 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6636 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6637 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6638 long CPropertySheet::OnSetDefID(unsigned int,long) 6639 int COleControl::OnSetExtent(tagSIZE *) 6640 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 6641 void CFormView::OnSetFocus(CWnd *) 6642 void CFrameWnd::OnSetFocus(CWnd *) 6643 void COleControl::OnSetFocus(CWnd *) 6644 void CWnd::OnSetFocus(CWnd *) 6645 long CCheckListBox::OnSetFont(unsigned int,long) 6646 void CDialog::OnSetFont(CFont *) 6647 long CEditView::OnSetFont(unsigned int,long) 6648 void COleServerDoc::OnSetHostNames(char const *,char const *) 6649 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 6650 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 6651 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 6652 long CFrameWnd::OnSetMessageString(unsigned int,long) 6653 long COleControl::OnSetMessageString(unsigned int,long) 6654 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 6655 long CStatusBar::OnSetMinHeight(unsigned int,long) 6656 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 6657 void CDatabase::OnSetOptions(void *) 6658 void CRecordset::OnSetOptions(void *) 6659 void COlePropertyPage::OnSetPageSite() 6660 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 6661 long CToolBar::OnSetSizeHelper(CSize &,long) 6662 long COleControl::OnSetText(unsigned int,long) 6663 long CStatusBar::OnSetText(unsigned int,long) 6664 void CWnd::OnSettingChange(unsigned int,char const *) 6665 void CRecordset::OnSetUpdateOptions(void *) 6666 unsigned int CFileDialog::OnShareViolation(char const *) 6667 void CDocObjectServerItem::OnShow() 6668 void COleServerItem::OnShow() 6669 long CReBar::OnShowBand(unsigned int,long) 6670 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6671 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 6672 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 6673 void COleServerDoc::OnShowDocument(int) 6674 void COleClientItem::OnShowItem() 6675 void COleControl::OnShowToolBars() 6676 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6677 void COleDocument::OnShowViews(int) 6678 void COleLinkingDoc::OnShowViews(int) 6679 void COleControl::OnShowWindow(int,unsigned int) 6680 void CWnd::OnShowWindow(int,unsigned int) 6681 long COleClientItem::XOleClientSite::OnShowWindow(int) 6682 long COleControlSite::XOleClientSite::OnShowWindow(int) 6683 void CDHtmlDialog::OnSize(unsigned int,int,int) 6684 void CFrameWnd::OnSize(unsigned int,int,int) 6685 void CHtmlView::OnSize(unsigned int,int,int) 6686 void CMDIChildWnd::OnSize(unsigned int,int,int) 6687 void CMDIFrameWnd::OnSize(unsigned int,int,int) 6688 void COleControl::OnSize(unsigned int,int,int) 6689 void COleIPFrameWnd::OnSize(unsigned int,int,int) 6690 void COleResizeBar::OnSize(unsigned int,int,int) 6691 void CPreviewView::OnSize(unsigned int,int,int) 6692 void CScrollView::OnSize(unsigned int,int,int) 6693 void CSplitterWnd::OnSize(unsigned int,int,int) 6694 void CStatusBar::OnSize(unsigned int,int,int) 6695 void CWnd::OnSize(unsigned int,int,int) 6696 void CWnd::OnSizeClipboard(CWnd *,void *) 6697 long CControlBar::OnSizeParent(unsigned int,long) 6698 long CDockBar::OnSizeParent(unsigned int,long) 6699 long COleResizeBar::OnSizeParent(unsigned int,long) 6700 void CWnd::OnSizing(unsigned int,tagRECT *) 6701 int CEnumArray::OnSkip() 6702 long CSocketWnd::OnSocketDead(unsigned int,long) 6703 long CSocketWnd::OnSocketNotify(unsigned int,long) 6704 int CView::OnSplitCmd(unsigned int) 6705 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 6706 void CAsyncMonikerFile::OnStartBinding() 6707 void CHtmlView::OnStatusBar(int) 6708 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 6709 void CHtmlView::OnStatusTextChange(char const *) 6710 void CAsyncMonikerFile::OnStopBinding(long,char const *) 6711 void CWnd::OnStyleChanged(int,tagSTYLE*) 6712 void CWnd::OnStyleChanging(int,tagSTYLE*) 6713 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 6714 void CToolBar::OnSysColorChange() 6715 void CWnd::OnSysColorChange() 6716 void CFrameWnd::OnSysCommand(unsigned int,long) 6717 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 6718 void CPropertySheet::OnSysCommand(unsigned int,long) 6719 void CSplitterWnd::OnSysCommand(unsigned int,long) 6720 void CWnd::OnSysCommand(unsigned int,long) 6721 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 6722 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6723 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6724 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6725 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6726 void CWnd::OnTCard(unsigned int,unsigned long) 6727 void COleControl::OnTextChanged() 6728 void CEditView::OnTextNotFound(char const *) 6729 void CRichEditView::OnTextNotFound(char const *) 6730 void CHtmlView::OnTheaterMode(int) 6731 void CWnd::OnTimeChange() 6732 void CControlBar::OnTimer(unsigned int) 6733 void CWnd::OnTimer(unsigned int) 6734 void CHtmlView::OnTitleChange(char const *) 6735 void CHtmlView::OnToolBar(int) 6736 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6737 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6738 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6739 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6740 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6741 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 6742 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6743 void CFileDialog::OnTypeChange() 6744 void COleControlContainer::OnUIActivate(COleControlSite *) 6745 long COleClientItem::XOleIPSite::OnUIActivate() 6746 long COleControlSite::XOleIPSite::OnUIActivate() 6747 void COleControlContainer::OnUIDeactivate(COleControlSite *) 6748 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 6749 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 6750 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 6751 void CView::OnUpdate(CView *,long,CObject *) 6752 void CRichEditView::OnUpdateBullet(CCmdUI *) 6753 void CRichEditView::OnUpdateCharBold(CCmdUI *) 6754 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 6755 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 6756 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 6757 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 6758 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 6759 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 6760 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6761 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 6762 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 6763 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 6764 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6765 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6766 int COleServerDoc::OnUpdateDocument() 6767 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 6768 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 6769 void CHtmlView::OnUpdateEditCut(CCmdUI *) 6770 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 6771 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 6772 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 6773 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 6774 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 6775 void CEditView::OnUpdateEditUndo(CCmdUI *) 6776 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 6777 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 6778 void CDocument::OnUpdateFileSendMail(CCmdUI *) 6779 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 6780 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6781 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 6782 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6783 void CFrameWnd::OnUpdateFrameTitle(int) 6784 void CMDIChildWnd::OnUpdateFrameTitle(int) 6785 void CMDIFrameWnd::OnUpdateFrameTitle(int) 6786 int COleClientItem::OnUpdateFrameTitle() 6787 int COleFrameHook::OnUpdateFrameTitle() 6788 void COleServerItem::OnUpdateItems() 6789 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 6790 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 6791 void CEditView::OnUpdateNeedClip(CCmdUI *) 6792 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 6793 void CEditView::OnUpdateNeedFind(CCmdUI *) 6794 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 6795 void CEditView::OnUpdateNeedSel(CCmdUI *) 6796 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 6797 void CEditView::OnUpdateNeedText(CCmdUI *) 6798 void CRichEditView::OnUpdateNeedText(CCmdUI *) 6799 void CPreviewView::OnUpdateNextPage(CCmdUI *) 6800 void CView::OnUpdateNextPaneMenu(CCmdUI *) 6801 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 6802 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 6803 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 6804 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 6805 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 6806 void CRichEditView::OnUpdateParaRight(CCmdUI *) 6807 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 6808 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 6809 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 6810 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 6811 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6812 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 6813 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6814 void CRecordView::OnUpdateRecordLast(CCmdUI *) 6815 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6816 void CRecordView::OnUpdateRecordNext(CCmdUI *) 6817 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6818 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 6819 void CView::OnUpdateSplitCmd(CCmdUI *) 6820 long CHtmlView::OnUpdateUI() 6821 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 6822 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 6823 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 6824 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 6825 void CHtmlView::OnVisible(int) 6826 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 6827 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6828 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6829 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6830 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6831 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6832 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 6833 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 6834 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 6835 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 6836 void CMDIFrameWnd::OnWindowNew() 6837 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 6838 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 6839 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 6840 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 6841 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 6842 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 6843 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 6844 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 6845 void CWnd::OnWinIniChange(char const *) 6846 long CPropertyPage::OnWizardBack() 6847 int CPropertyPage::OnWizardFinish() 6848 long CPropertyPage::OnWizardNext() 6849 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 6850 void CPreviewView::OnZoomIn() 6851 void CPreviewView::OnZoomOut() 6852 int CAnimateCtrl::Open(unsigned int) 6853 int CAnimateCtrl::Open(char const *) 6854 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 6855 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 6856 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 6857 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 6858 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 6859 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 6860 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 6861 int CAsyncMonikerFile::Open(char const *,CFileException *) 6862 int CDatabase::Open(char const *,int,int,char const *,int) 6863 int CDataPathProperty::Open(CFileException *) 6864 int CDataPathProperty::Open(COleControl *,CFileException *) 6865 int CDataPathProperty::Open(char const *,CFileException *) 6866 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 6867 int CFile::Open(char const *,unsigned int,CFileException *) 6868 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 6869 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6870 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6871 int CMonikerFile::Open(IMoniker *,CFileException *) 6872 int CMonikerFile::Open(char const *,CFileException *) 6873 int CRecordset::Open(unsigned int,char const *,unsigned long) 6874 int CSocketFile::Open(char const *,unsigned int,CFileException *) 6875 int CStdioFile::Open(char const *,unsigned int,CFileException *) 6876 long CDocObjectServer::XOleDocumentView::Open() 6877 int CWnd::OpenClipboard() 6878 CDocument * CDocManager::OpenDocumentFile(char const *) 6879 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 6880 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 6881 CDocument * CWinApp::OpenDocumentFile(char const *) 6882 int CDatabase::OpenEx(char const *,unsigned long) 6883 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 6884 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 6885 int CWnd::OpenIcon() 6886 long COleUILinkInfo::OpenLinkSource(unsigned long) 6887 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 6888 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 6889 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 6890 int CHtmlEditDoc::OpenURL(char const *) 6891 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 6892 int CHeaderCtrl::OrderToIndex(int)const 6893 int CFileException::OsErrorToException(long) 6894 void CDumpContext::OutputString(char const *) 6895 int CEditView::PaginateTo(CDC *,CPrintInfo *) 6896 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 6897 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 6898 int CDC::PaintRgn(CRgn *) 6899 int CWnd::PaintWindowlessControls(CDC *) 6900 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 6901 void CWinApp::ParseCommandLine(CCommandLineInfo &) 6902 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 6903 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6904 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6905 void CCommandLineInfo::ParseLast(int) 6906 void CCommandLineInfo::ParseParam(char const *,int,int) 6907 void CCommandLineInfo::ParseParamFlag(char const *) 6908 void CCommandLineInfo::ParseParamNotFlag(char const *) 6909 void CComboBox::Paste() 6910 void CEdit::Paste() 6911 void CRichEditCtrl::Paste() 6912 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 6913 int CDC::PatBlt(int,int,int,int,unsigned long) 6914 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 6915 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 6916 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 6917 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 6918 int CDC::Pie(int,int,int,int,int,int,int,int) 6919 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 6920 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 6921 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 6922 int CDC::PlayMetaFile(HMETAFILE__ *) 6923 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 6924 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 6925 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 6926 int CDC::PolyBezier(tagPOINT const *,int) 6927 int CDC::PolyBezierTo(tagPOINT const *,int) 6928 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 6929 int CDC::Polygon(tagPOINT *,int) 6930 int CDC::Polyline(tagPOINT *,int) 6931 int CDC::PolylineTo(tagPOINT const *,int) 6932 int CDC::PolyPolygon(tagPOINT *,int *,int) 6933 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 6934 void CToolTipCtrl::Pop() 6935 CPoint CEdit::PosFromChar(unsigned int)const 6936 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 6937 void CPreviewView::PositionPage(unsigned int) 6938 int CAsyncMonikerFile::PostBindToStream(CFileException *) 6939 int CMonikerFile::PostBindToStream(CFileException *) 6940 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 6941 int CWnd::PostMessageA(unsigned int,unsigned int,long) 6942 void CDialog::PostModal() 6943 void CPrintDialogEx::PostModal() 6944 void COleControl::PostModalDialog(HWND__ *) 6945 void CControlBar::PostNcDestroy() 6946 void CControlFrameWnd::PostNcDestroy() 6947 void CFindReplaceDialog::PostNcDestroy() 6948 void CFrameWnd::PostNcDestroy() 6949 void COleCntrFrameWnd::PostNcDestroy() 6950 void CReflectorWnd::PostNcDestroy() 6951 void CView::PostNcDestroy() 6952 void CWnd::PostNcDestroy() 6953 int CWinThread::PostThreadMessageA(unsigned int,unsigned int,long) 6954 void ATL::CSimpleStringT::Preallocate(int) 6955 void ATL::CSimpleStringT::Preallocate(int) 6956 void CRecordset::PreBindFields() 6957 void CDocument::PreCloseFrame(CFrameWnd *) 6958 void COleDocument::PreCloseFrame(CFrameWnd *) 6959 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 6960 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 6961 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 6962 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 6963 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6964 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 6965 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 6966 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6967 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 6968 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 6969 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 6970 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6971 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6972 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 6973 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 6974 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 6975 int CView::PreCreateWindow(tagCREATESTRUCTA &) 6976 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 6977 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 6978 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 6979 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 6980 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 6981 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 6982 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 6983 void CDialog::PreInitDialog() 6984 void COleChangeSourceDialog::PreInitDialog() 6985 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 6986 HWND__ * CDialog::PreModal() 6987 HWND__ * CPrintDialogEx::PreModal() 6988 void COleControl::PreModalDialog(HWND__ *) 6989 void CRecordset::PrepareAndExecute() 6990 HWND__ * CDataExchange::PrepareCtrl(int) 6991 HWND__ * CDataExchange::PrepareEditCtrl(int) 6992 void CWnd::PrepareForHelp() 6993 COleControlSite * CDataExchange::PrepareOleCtrl(int) 6994 void CRecordset::PrepareUpdateHstmt() 6995 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 6996 char * ATL::CSimpleStringT::PrepareWrite(int) 6997 void ATL::CSimpleStringT::PrepareWrite2(int) 6998 void ATL::CSimpleStringT::PrepareWrite2(int) 6999 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 7000 void CPropertySheet::PressButton(int) 7001 int CToolBarCtrl::PressButton(int,int) 7002 void CCheckListBox::PreSubclassWindow() 7003 void CDragListBox::PreSubclassWindow() 7004 void CWnd::PreSubclassWindow() 7005 int CWnd::PreTranslateInput(tagMSG *) 7006 int CControlBar::PreTranslateMessage(tagMSG *) 7007 int CDialog::PreTranslateMessage(tagMSG *) 7008 int CFormView::PreTranslateMessage(tagMSG *) 7009 int CFrameWnd::PreTranslateMessage(tagMSG *) 7010 int CHtmlView::PreTranslateMessage(tagMSG *) 7011 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 7012 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 7013 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 7014 int COlePropertyPage::PreTranslateMessage(tagMSG *) 7015 int CPropertyPage::PreTranslateMessage(tagMSG *) 7016 int CPropertySheet::PreTranslateMessage(tagMSG *) 7017 int CWinThread::PreTranslateMessage(tagMSG *) 7018 int CWnd::PreTranslateMessage(tagMSG *) 7019 void CDialog::PrevDlgCtrl()const 7020 void CWnd::Print(CDC *,unsigned long)const 7021 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 7022 int CPrintDialog::PrintAll()const 7023 int CPrintDialogEx::PrintAll()const 7024 void CWnd::PrintClient(CDC *,unsigned long)const 7025 int CPrintDialog::PrintCollate()const 7026 int CPrintDialogEx::PrintCollate()const 7027 int CPrintDialogEx::PrintCurrentPage()const 7028 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 7029 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 7030 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 7031 long CRichEditView::PrintPage(CDC *,long,long) 7032 int CPrintDialog::PrintRange()const 7033 int CPrintDialogEx::PrintRange()const 7034 int CPrintDialog::PrintSelection()const 7035 int CPrintDialogEx::PrintSelection()const 7036 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 7037 long COleException::Process(CException const *) 7038 int CSocket::ProcessAuxQueue() 7039 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 7040 int CWinThread::ProcessMessageFilter(int,tagMSG *) 7041 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 7042 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 7043 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 7044 int CRgn::PtInRegion(int,int)const 7045 int CRgn::PtInRegion(tagPOINT)const 7046 void COleSafeArray::PtrOfIndex(long *,void * *) 7047 int CDC::PtVisible(tagPOINT)const 7048 int CDC::PtVisible(int,int)const 7049 int CMetaFileDC::PtVisible(tagPOINT)const 7050 int CMetaFileDC::PtVisible(int,int)const 7051 int CEvent::PulseEvent() 7052 int CWinThread::PumpMessage() 7053 int CSocket::PumpMessages(unsigned int) 7054 void CReBarCtrl::PushChevron(unsigned int,long) 7055 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 7056 long CWnd::put_accName(tagVARIANT,wchar_t *) 7057 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 7058 long CWnd::put_accValue(tagVARIANT,wchar_t *) 7059 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 7060 void COleSafeArray::PutElement(long *,void *) 7061 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 7062 void CHtmlView::PutProperty(char const *,char const *) 7063 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 7064 void CHtmlView::PutProperty(char const *,short) 7065 void CHtmlView::PutProperty(char const *,long) 7066 void CHtmlView::PutProperty(char const *,double) 7067 int PX_Blob(CPropExchange *,char const *,void * &,void *) 7068 int PX_Bool(CPropExchange *,char const *,int &) 7069 int PX_Bool(CPropExchange *,char const *,int &,int) 7070 int PX_Color(CPropExchange *,char const *,unsigned long &) 7071 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 7072 int PX_Currency(CPropExchange *,char const *,union tagCY &) 7073 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 7074 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 7075 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 7076 int PX_Double(CPropExchange *,char const *,double &) 7077 int PX_Double(CPropExchange *,char const *,double &,double) 7078 int PX_Float(CPropExchange *,char const *,float &) 7079 int PX_Float(CPropExchange *,char const *,float &,float) 7080 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 7081 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 7082 int PX_Long(CPropExchange *,char const *,long &) 7083 int PX_Long(CPropExchange *,char const *,long &,long) 7084 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 7085 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 7086 int PX_Short(CPropExchange *,char const *,short &) 7087 int PX_Short(CPropExchange *,char const *,short &,short) 7088 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 7089 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 7090 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 7091 int PX_ULong(CPropExchange *,char const *,unsigned long &) 7092 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 7093 int PX_UShort(CPropExchange *,char const *,unsigned short &) 7094 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 7095 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 7096 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7097 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7098 IUnknown * CCmdTarget::QueryAggregates(void const *) 7099 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 7100 long COleDropSource::QueryContinueDrag(int,unsigned long) 7101 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 7102 void * COleControl::QueryDefHandler(_GUID const &) 7103 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 7104 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 7105 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 7106 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 7107 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 7108 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7109 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7110 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 7111 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 7112 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 7113 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 7114 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 7115 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 7116 long CArchiveStream::QueryInterface(_GUID const &,void * *) 7117 long CBlobProperty::QueryInterface(_GUID const &,void * *) 7118 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 7119 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 7120 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 7121 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 7122 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 7123 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 7124 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 7125 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 7126 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 7127 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 7128 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 7129 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 7130 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 7131 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 7132 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 7133 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 7134 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 7135 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 7136 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 7137 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 7138 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 7139 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 7140 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 7141 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 7142 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 7143 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 7144 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 7145 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 7146 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 7147 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 7148 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7149 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7150 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 7151 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 7152 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 7153 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 7154 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 7155 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 7156 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7157 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7158 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 7159 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7160 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7161 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 7162 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 7163 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 7164 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 7165 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 7166 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 7167 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 7168 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 7169 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 7170 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 7171 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 7172 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 7173 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 7174 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 7175 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 7176 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 7177 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 7178 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 7179 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 7180 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 7181 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 7182 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 7183 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 7184 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 7185 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 7186 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 7187 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 7188 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 7189 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 7190 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 7191 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 7192 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 7193 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 7194 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 7195 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 7196 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 7197 long CPropertyPage::QuerySiblings(unsigned int,long) 7198 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 7199 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 7200 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7201 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7202 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 7203 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 7204 int COleControlSite::QuickActivate() 7205 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 7206 int COleClientItem::ReactivateAndUndo() 7207 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 7208 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 7209 unsigned int CArchive::Read(void *,unsigned int) 7210 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 7211 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 7212 unsigned int CFile::Read(void *,unsigned int) 7213 int CImageList::Read(CArchive *) 7214 unsigned int CInternetFile::Read(void *,unsigned int) 7215 unsigned int CMemFile::Read(void *,unsigned int) 7216 unsigned int COleStreamFile::Read(void *,unsigned int) 7217 unsigned int CSocketFile::Read(void *,unsigned int) 7218 unsigned int CStdioFile::Read(void *,unsigned int) 7219 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 7220 unsigned long CArchive::ReadCount() 7221 void CEditView::ReadFromArchive(CArchive &,unsigned int) 7222 int CProperty::ReadFromStream(IStream *) 7223 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 7224 int CPropertySet::ReadFromStream(IStream *) 7225 void COleClientItem::ReadItem(CArchive &) 7226 void COleClientItem::ReadItemCompound(CArchive &) 7227 void COleClientItem::ReadItemFlat(CArchive &) 7228 void CRecentFileList::ReadList() 7229 int CPropertySection::ReadNameDictFromStream(IStream *) 7230 CObject * CArchive::ReadObject(CRuntimeconst *) 7231 int CArchive::ReadString(ATL::CStringT > > &) 7232 char * CArchive::ReadString(char *,unsigned int) 7233 int CInternetFile::ReadString(ATL::CStringT > > &) 7234 char * CInternetFile::ReadString(char *,unsigned int) 7235 int CStdioFile::ReadString(ATL::CStringT > > &) 7236 char * CStdioFile::ReadString(char *,unsigned int) 7237 unsigned int CDC::RealizePalette() 7238 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7239 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7240 void ATL::CSimpleStringT::Reallocate(int) 7241 void ATL::CSimpleStringT::Reallocate(int) 7242 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7243 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7244 void CRecordset::RebindParams(void *) 7245 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7246 void CFrameWnd::RecalcLayout(int) 7247 void CMiniDockFrameWnd::RecalcLayout(int) 7248 void COleCntrFrameWnd::RecalcLayout(int) 7249 void COleDocIPFrameWnd::RecalcLayout(int) 7250 void COleIPFrameWnd::RecalcLayout(int) 7251 void CSplitterWnd::RecalcLayout() 7252 int CAsyncSocket::Receive(void *,int,int) 7253 int CSocket::Receive(void *,int,int) 7254 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7255 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7256 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7257 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7258 void COleControl::RecreateControlWindow() 7259 int CDC::Rectangle(int,int,int,int) 7260 int CDC::Rectangle(tagRECT const *) 7261 CRect const CFrameWnd::rectDefault 7262 int CRgn::RectInRegion(tagRECT const *)const 7263 int CDC::RectVisible(tagRECT const *)const 7264 int CMetaFileDC::RectVisible(tagRECT const *)const 7265 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7266 int CRichEditCtrl::Redo() 7267 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7268 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7269 int CListCtrl::RedrawItems(int,int) 7270 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7271 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7272 int CWnd::ReflectLastMsg(HWND__ *,long *) 7273 void CHtmlView::Refresh() 7274 void COleControl::Refresh() 7275 void CHtmlView::Refresh2(int) 7276 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7277 int COleDropTarget::Register(CWnd *) 7278 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 7279 int COleMessageFilter::Register() 7280 int COleObjectFactory::Register() 7281 int COleTemplateServer::Register() 7282 int CWinApp::Register() 7283 int COleObjectFactory::RegisterAll() 7284 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 7285 void CDocManager::RegisterShellFileTypes(int) 7286 void CWinApp::RegisterShellFileTypes(int) 7287 void CToolTipCtrl::RelayEvent(tagMSG *) 7288 unsigned long CArchiveStream::Release() 7289 unsigned long CBlobProperty::Release() 7290 unsigned long CBrowserControlSite::Release() 7291 unsigned long CDHtmlControlSink::Release() 7292 unsigned long CDHtmlElementEventSink::Release() 7293 unsigned long CDHtmlEventSink::Release() 7294 unsigned long CInnerUnknown::Release() 7295 void COleClientItem::Release(enum tagOLECLOSE) 7296 unsigned long COleConnPtContainer::Release() 7297 void COleDataObject::Release() 7298 unsigned long COleDispatchImpl::Release() 7299 void COleDocObjectItem::Release(enum tagOLECLOSE) 7300 unsigned long COleUILinkInfo::Release() 7301 unsigned long CPrintDialogEx::Release() 7302 unsigned long CWnd::XAccessible::Release() 7303 unsigned long CWnd::XAccessibleServer::Release() 7304 unsigned long COleClientItem::XAdviseSink::Release() 7305 unsigned long COleControlSite::XAmbientProps::Release() 7306 unsigned long COleControlSite::XBoundObjectSite::Release() 7307 unsigned long COleObjectFactory::XClassFactory::Release() 7308 unsigned long CConnectionPoint::XConnPt::Release() 7309 unsigned long COleControl::XDataObject::Release() 7310 unsigned long COleDataSource::XDataObject::Release() 7311 unsigned long COleServerDoc::XDataObject::Release() 7312 unsigned long COleServerItem::XDataObject::Release() 7313 unsigned long CHtmlControlSite::XDocHostUIHandler::Release() 7314 unsigned long COleDropSource::XDropSource::Release() 7315 unsigned long COleDropTarget::XDropTarget::Release() 7316 unsigned long CEnumArray::XEnumVOID::Release() 7317 unsigned long COleControlSite::XEventSink::Release() 7318 unsigned long COleControl::XFontNotification::Release() 7319 unsigned long COleMessageFilter::XMessageFilter::Release() 7320 unsigned long COleControlSite::XNotifyDBEvents::Release() 7321 unsigned long COleControl::XOleCache::Release() 7322 unsigned long COleClientItem::XOleClientSite::Release() 7323 unsigned long COleControlSite::XOleClientSite::Release() 7324 unsigned long CDocObjectServer::XOleCommandTarget::Release() 7325 unsigned long COleFrameHook::XOleCommandTarget::Release() 7326 unsigned long COleControlContainer::XOleContainer::Release() 7327 unsigned long COleControl::XOleControl::Release() 7328 unsigned long COleControlSite::XOleControlSite::Release() 7329 unsigned long CDocObjectServer::XOleDocument::Release() 7330 unsigned long COleDocObjectItem::XOleDocumentSite::Release() 7331 unsigned long CDocObjectServer::XOleDocumentView::Release() 7332 unsigned long COleControl::XOleInPlaceActiveObject::Release() 7333 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 7334 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 7335 unsigned long COleControl::XOleInPlaceObject::Release() 7336 unsigned long COleServerDoc::XOleInPlaceObject::Release() 7337 unsigned long COleControlContainer::XOleIPFrame::Release() 7338 unsigned long COleClientItem::XOleIPSite::Release() 7339 unsigned long COleControlSite::XOleIPSite::Release() 7340 unsigned long COleLinkingDoc::XOleItemContainer::Release() 7341 unsigned long CDocObjectServer::XOleObject::Release() 7342 unsigned long COleControl::XOleObject::Release() 7343 unsigned long COleServerDoc::XOleObject::Release() 7344 unsigned long COleServerItem::XOleObject::Release() 7345 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 7346 unsigned long COleControl::XPerPropertyBrowsing::Release() 7347 unsigned long COleLinkingDoc::XPersistFile::Release() 7348 unsigned long COleControl::XPersistMemory::Release() 7349 unsigned long COleControl::XPersistPropertyBag::Release() 7350 unsigned long COleControl::XPersistStorage::Release() 7351 unsigned long COleServerDoc::XPersistStorage::Release() 7352 unsigned long COleControl::XPersistStreamInit::Release() 7353 unsigned long COleControl::XPointerInactive::Release() 7354 unsigned long CDocObjectServer::XPrint::Release() 7355 unsigned long COleControlSite::XPropertyNotifySink::Release() 7356 unsigned long COlePropertyPage::XPropertyPage::Release() 7357 unsigned long COlePropertyPage::XPropNotifySink::Release() 7358 unsigned long COleControl::XProvideClassInfo::Release() 7359 unsigned long COleControl::XQuickActivate::Release() 7360 unsigned long CRichEditView::XRichEditOleCallback::Release() 7361 unsigned long COleControlSite::XRowsetNotify::Release() 7362 unsigned long COleControl::XSpecifyPropertyPages::Release() 7363 unsigned long COleControl::XViewObject::Release() 7364 void CDC::ReleaseAttribDC() 7365 void ATL::CSimpleStringT::ReleaseBuffer(int) 7366 void ATL::CSimpleStringT::ReleaseBuffer(int) 7367 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7368 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7369 void COleControl::ReleaseCaches() 7370 int COleControl::ReleaseCapture() 7371 int COleControl::ReleaseDC(CDC *) 7372 int CWnd::ReleaseDC(CDC *) 7373 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7374 void COleDispatchDriver::ReleaseDispatch() 7375 void CDocObjectServer::ReleaseDocSite() 7376 void CDocument::ReleaseFile(CFile *,int) 7377 void CFontHolder::ReleaseFont() 7378 void CDC::ReleaseOutputDC() 7379 void CMetaFileDC::ReleaseOutputDC() 7380 void CPreviewDC::ReleaseOutputDC() 7381 int COleClientItem::Reload() 7382 int ATL::CStringT > >::Remove(wchar_t) 7383 int ATL::CStringT > >::Remove(char) 7384 void CFile::Remove(char const *) 7385 int CFtpConnection::Remove(char const *) 7386 int CImageList::Remove(int) 7387 void CPropertySection::Remove(unsigned long) 7388 void CPropertySet::Remove(_GUID) 7389 void CPropertySet::Remove(_GUID,unsigned long) 7390 void CRecentFileList::Remove(int) 7391 int CSimpleList::Remove(void *) 7392 void CByteArray::RemoveAll() 7393 void CDWordArray::RemoveAll() 7394 void CMapPtrToPtr::RemoveAll() 7395 void CMapPtrToWord::RemoveAll() 7396 void CMapStringToOb::RemoveAll() 7397 void CMapStringToPtr::RemoveAll() 7398 void CMapStringToString::RemoveAll() 7399 void CMapWordToOb::RemoveAll() 7400 void CMapWordToPtr::RemoveAll() 7401 void CObArray::RemoveAll() 7402 void CObList::RemoveAll() 7403 void CPropertySection::RemoveAll() 7404 void CPropertySet::RemoveAll() 7405 void CPtrArray::RemoveAll() 7406 void CPtrList::RemoveAll() 7407 void CStringArray::RemoveAll() 7408 void CStringList::RemoveAll() 7409 void CTypeLibCacheMap::RemoveAll(void *) 7410 void CUIntArray::RemoveAll() 7411 void CWordArray::RemoveAll() 7412 void CByteArray::RemoveAt(int,int) 7413 void CDWordArray::RemoveAt(int,int) 7414 void CObArray::RemoveAt(int,int) 7415 void CObList::RemoveAt(__POSITION *) 7416 void CPtrArray::RemoveAt(int,int) 7417 void CPtrList::RemoveAt(__POSITION *) 7418 void CStringArray::RemoveAt(int,int) 7419 void CStringList::RemoveAt(__POSITION *) 7420 void CUIntArray::RemoveAt(int,int) 7421 void CWordArray::RemoveAt(int,int) 7422 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7423 void CFrameWnd::RemoveControlBar(CControlBar *) 7424 int CFtpConnection::RemoveDirectoryA(char const *) 7425 void CDocTemplate::RemoveDocument(CDocument *) 7426 void CMultiDocTemplate::RemoveDocument(CDocument *) 7427 void CSingleDocTemplate::RemoveDocument(CDocument *) 7428 void COleControl::RemoveFrameLevelUI() 7429 void CFrameWnd::RemoveFrameWnd() 7430 void CHandleMap::RemoveHandle(void *) 7431 CObject * CObList::RemoveHead() 7432 void * CPtrList::RemoveHead() 7433 ATL::CStringT > > CStringList::RemoveHead() 7434 void CTabCtrl::RemoveImage(int) 7435 void CListCtrl::RemoveImageList(int) 7436 void CListView::RemoveImageList(int) 7437 void CTreeCtrl::RemoveImageList(int) 7438 void CTreeView::RemoveImageList(int) 7439 void COleDocument::RemoveItem(CDocItem *) 7440 int CMapPtrToPtr::RemoveKey(void *) 7441 int CMapPtrToWord::RemoveKey(void *) 7442 int CMapStringToOb::RemoveKey(char const *) 7443 int CMapStringToPtr::RemoveKey(char const *) 7444 int CMapStringToString::RemoveKey(char const *) 7445 int CMapWordToOb::RemoveKey(unsigned short) 7446 int CMapWordToPtr::RemoveKey(unsigned short) 7447 int CMenu::RemoveMenu(unsigned int,unsigned int) 7448 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7449 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7450 void CPropertySheet::RemovePage(int) 7451 void CPropertySheet::RemovePage(CPropertyPage *) 7452 void CDockBar::RemovePlaceHolder(CControlBar *) 7453 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7454 void CDataBoundProperty::RemoveSource() 7455 CObject * CObList::RemoveTail() 7456 void * CPtrList::RemoveTail() 7457 ATL::CStringT > > CStringList::RemoveTail() 7458 void CDocument::RemoveView(CView *) 7459 void CFile::Rename(char const *,char const *) 7460 int CFtpConnection::Rename(char const *,char const *) 7461 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 7462 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 7463 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 7464 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 7465 int ATL::CStringT > >::Replace(char,char) 7466 int ATL::CStringT > >::Replace(char const *,char const *) 7467 int CImageList::Replace(int,HICON__ *) 7468 int CImageList::Replace(int,CBitmap *,CBitmap *) 7469 int CFindReplaceDialog::ReplaceAll()const 7470 void CDatabase::ReplaceBrackets(char *) 7471 int CFindReplaceDialog::ReplaceCurrent()const 7472 void CEdit::ReplaceSel(char const *,int) 7473 void CRichEditCtrl::ReplaceSel(char const *,int) 7474 int CException::ReportError(unsigned int,unsigned int) 7475 int COleClientItem::ReportError(long)const 7476 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 7477 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 7478 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 7479 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 7480 int CRecordset::Requery() 7481 void COleControl::RequestAsynchronousExchange(unsigned long) 7482 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 7483 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 7484 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 7485 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 7486 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 7487 void COleServerDoc::RequestPositionChange(tagRECT const *) 7488 void CRichEditCtrl::RequestResize() 7489 long COleControlSite::XOleIPSite::RequestUIActivate() 7490 long CEnumArray::XEnumVOID::Reset() 7491 void CComboBox::ResetContent() 7492 void CListBox::ResetContent() 7493 void CRecordset::ResetCursor() 7494 void CCachedDataPathProperty::ResetData() 7495 void CDataPathProperty::ResetData() 7496 int CDC::ResetDCA(_devicemodeA const *) 7497 int CEvent::ResetEvent() 7498 void COleControl::ResetStockProps() 7499 void CControlBar::ResetTimer(unsigned int,unsigned int) 7500 void COleControl::ResetVersion(unsigned long) 7501 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7502 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7503 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7504 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7505 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7506 void COleControl::ResizeFrameWindow(int,int) 7507 void COleSafeArray::ResizeOneDim(unsigned long) 7508 void COleControl::ResizeOpenControl(int,int) 7509 int CPalette::ResizePalette(unsigned int) 7510 void CScrollView::ResizeParentToFit(int) 7511 void CWaitCursor::Restore() 7512 void CReBarCtrl::RestoreBand(unsigned int) 7513 int CDC::RestoreDC(int) 7514 int CPreviewDC::RestoreDC(int) 7515 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 7516 void CCmdTarget::RestoreWaitCursor() 7517 unsigned long CWinThread::ResumeThread() 7518 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 7519 int ATL::CStringT > >::ReverseFind(wchar_t)const 7520 int ATL::CStringT > >::ReverseFind(char)const 7521 long CArchiveStream::Revert() 7522 void COleDropTarget::Revoke() 7523 void COleLinkingDoc::Revoke() 7524 void COleMessageFilter::Revoke() 7525 void COleObjectFactory::Revoke() 7526 void COleObjectFactory::RevokeAll() 7527 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 7528 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 7529 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 7530 void RFX_Bool(CFieldExchange *,char const *,int &) 7531 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 7532 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 7533 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 7534 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 7535 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 7536 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 7537 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 7538 void RFX_Double(CFieldExchange *,char const *,double &) 7539 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 7540 void RFX_Int(CFieldExchange *,char const *,int &) 7541 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 7542 void RFX_Long(CFieldExchange *,char const *,long &) 7543 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 7544 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 7545 void RFX_Single(CFieldExchange *,char const *,float &) 7546 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 7547 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 7548 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 7549 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 7550 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 7551 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 7552 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 7553 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7554 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7555 int CDatabase::Rollback() 7556 int CDC::RoundRect(int,int,int,int,int,int) 7557 int CDC::RoundRect(tagRECT const *,tagPOINT) 7558 void COleClientItem::Run() 7559 int CWinApp::Run() 7560 int CWinThread::Run() 7561 int CWinApp::RunAutomated() 7562 int CWinApp::RunEmbedded() 7563 int CWnd::RunModalLoop(unsigned long) 7564 int COleControlSite::SafeSetProperty(long,unsigned short,...) 7565 int CEditView::SameAsSelected(char const *,int) 7566 int CRichEditView::SameAsSelected(char const *,int,int) 7567 long CBlobProperty::Save(IStream *,int) 7568 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 7569 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 7570 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 7571 long COleControl::XPersistStorage::Save(IStorage *,int) 7572 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 7573 long COleControl::XPersistStreamInit::Save(IStream *,int) 7574 int CDocManager::SaveAllModified() 7575 int CDocTemplate::SaveAllModified() 7576 int CWinApp::SaveAllModified() 7577 void CFrameWnd::SaveBarState(char const *)const 7578 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 7579 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 7580 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 7581 int CDC::SaveDC() 7582 int CPreviewDC::SaveDC() 7583 void COleServerDoc::SaveEmbedding() 7584 int CFormView::SaveFocusControl() 7585 int CDocument::SaveModified() 7586 int COleDocument::SaveModified() 7587 int COleServerDoc::SaveModified() 7588 int COleServerDoc::SaveModifiedPrompt() 7589 long COleClientItem::XOleClientSite::SaveObject() 7590 long COleControlSite::XOleClientSite::SaveObject() 7591 int CControlBarInfo::SaveState(char const *,int) 7592 void CDockState::SaveState(char const *) 7593 long COleControl::SaveState(IStream *) 7594 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 7595 void CWinApp::SaveStdProfileSettings() 7596 void COleDocument::SaveToStorage(CObject *) 7597 void COleLinkingDoc::SaveToStorage(CObject *) 7598 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 7599 void CDockState::ScalePoint(CPoint &) 7600 void CDockState::ScaleRectPos(CRect &) 7601 CSize CDC::ScaleViewportExt(int,int,int,int) 7602 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 7603 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 7604 CSize CDC::ScaleWindowExt(int,int,int,int) 7605 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 7606 void CWnd::ScreenToClient(tagPOINT *)const 7607 void CWnd::ScreenToClient(tagRECT *)const 7608 int CListCtrl::Scroll(CSize) 7609 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 7610 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 7611 void COleControlContainer::ScrollChildren(int,int) 7612 int COleServerDoc::ScrollContainerBy(CSize) 7613 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 7614 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 7615 void CScrollView::ScrollToDevicePosition(tagPOINT) 7616 void CScrollView::ScrollToPosition(tagPOINT) 7617 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7618 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7619 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 7620 int CFindReplaceDialog::SearchDown()const 7621 int CAnimateCtrl::Seek(unsigned int) 7622 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 7623 unsigned __int64 CFile::Seek(__int64,unsigned int) 7624 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 7625 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 7626 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 7627 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 7628 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 7629 void CFile::SeekToBegin() 7630 unsigned __int64 CFile::SeekToEnd() 7631 CFont * CFontHolder::Select(CDC *,long,long) 7632 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 7633 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 7634 int CDC::SelectClipPath(int) 7635 int CDC::SelectClipRgn(CRgn *) 7636 int CDC::SelectClipRgn(CRgn *,int) 7637 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 7638 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 7639 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 7640 long CPrintDialogEx::SelectionChange() 7641 int CTreeCtrl::SelectItem(_TREEITEM *) 7642 int CDC::SelectObject(CRgn *) 7643 CBitmap * CDC::SelectObject(CBitmap *) 7644 CBrush * CDC::SelectObject(CBrush *) 7645 CGdiObject * CDC::SelectObject(CGdiObject *) 7646 CPen * CDC::SelectObject(CPen *) 7647 void * CDC::SelectObject(void *) 7648 CFont * CDC::SelectObject(CFont *) 7649 CFont * CPreviewDC::SelectObject(CFont *) 7650 CPalette * CDC::SelectPalette(CPalette *,int) 7651 void CWinApp::SelectPrinter(void *,void *,int) 7652 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 7653 CFont * COleControl::SelectStockFont(CDC *) 7654 CGdiObject * CDC::SelectStockObject(int) 7655 CGdiObject * CPreviewDC::SelectStockObject(int) 7656 int CComboBox::SelectString(int,char const *) 7657 int CListBox::SelectString(int,char const *) 7658 int CListBox::SelItemRange(int,int,int) 7659 int CAsyncSocket::Send(void const *,int,int) 7660 int CSocket::Send(void const *,int,int) 7661 void COleControl::SendAdvise(unsigned int) 7662 int CWnd::SendChildNotifyLastMsg(long *) 7663 int CSocket::SendChunk(void const *,int,int) 7664 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 7665 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 7666 void CDocument::SendInitialUpdate() 7667 void CRecordset::SendLongBinaryData(void *) 7668 long CWnd::SendMessageA(unsigned int,unsigned int,long) 7669 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 7670 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 7671 void COleControlSite::SendMnemonic(tagMSG *) 7672 int CWnd::SendNotifyMessageA(unsigned int,unsigned int,long) 7673 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 7674 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 7675 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 7676 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 7677 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 7678 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 7679 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7680 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7681 void CByteArray::Serialize(CArchive &) 7682 void CControlBarInfo::Serialize(CArchive &,CDockState *) 7683 void CDocItem::Serialize(CArchive &) 7684 void CDockState::Serialize(CArchive &) 7685 void CDWordArray::Serialize(CArchive &) 7686 void CEditView::Serialize(CArchive &) 7687 void CMapStringToOb::Serialize(CArchive &) 7688 void CMapStringToString::Serialize(CArchive &) 7689 void CMapWordToOb::Serialize(CArchive &) 7690 void CObArray::Serialize(CArchive &) 7691 void CObject::Serialize(CArchive &) 7692 void CObList::Serialize(CArchive &) 7693 void COleClientItem::Serialize(CArchive &) 7694 void COleControl::Serialize(CArchive &) 7695 void COleDocument::Serialize(CArchive &) 7696 void CRichEditDoc::Serialize(CArchive &) 7697 void CRichEditView::Serialize(CArchive &) 7698 void CStringArray::Serialize(CArchive &) 7699 void CStringList::Serialize(CArchive &) 7700 void CWordArray::Serialize(CArchive &) 7701 CArchive & ATL::CTime::Serialize64(CArchive &) 7702 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 7703 void CArchive::SerializeClass(CRuntimeconst *) 7704 void COleControl::SerializeExtent(CArchive &) 7705 void CEditView::SerializeRaw(CArchive &) 7706 void COleControl::SerializeStockProps(CArchive &) 7707 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 7708 int CProperty::Set(unsigned long,void * const,unsigned long) 7709 int CProperty::Set(void * const) 7710 int CProperty::Set(void * const,unsigned long) 7711 int CPropertySection::Set(unsigned long,void *) 7712 int CPropertySection::Set(unsigned long,void *,unsigned long) 7713 int CPropertySet::Set(_GUID,unsigned long,void *) 7714 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 7715 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 7716 void CRecordset::SetAbsolutePosition(long) 7717 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 7718 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7719 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7720 int CPropertySheet::SetActivePage(int) 7721 int CPropertySheet::SetActivePage(CPropertyPage *) 7722 void CSplitterWnd::SetActivePane(int,int,CWnd *) 7723 void CFrameWnd::SetActiveView(CView *,int) 7724 CWnd * CWnd::SetActiveWindow() 7725 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 7726 void CIPAddressCtrl::SetAddress(unsigned long) 7727 void CHtmlView::SetAddressBar(int) 7728 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 7729 int CToolBarCtrl::SetAnchorHighlight(int) 7730 void CListBox::SetAnchorIndex(int) 7731 void COleControl::SetAppearance(short) 7732 int CDC::SetArcDirection(int) 7733 void ATL::CSimpleStringT::SetAt(int,wchar_t) 7734 void ATL::CSimpleStringT::SetAt(int,char) 7735 void CByteArray::SetAt(int,unsigned char) 7736 void CDWordArray::SetAt(int,unsigned long) 7737 void CMapPtrToPtr::SetAt(void *,void *) 7738 void CMapPtrToWord::SetAt(void *,unsigned short) 7739 void CMapStringToOb::SetAt(char const *,CObject *) 7740 void CMapStringToPtr::SetAt(char const *,void *) 7741 void CMapStringToString::SetAt(char const *,char const *) 7742 void CMapWordToOb::SetAt(unsigned short,CObject *) 7743 void CMapWordToPtr::SetAt(unsigned short,void *) 7744 void CObArray::SetAt(int,CObject *) 7745 void CObList::SetAt(__POSITION *,CObject *) 7746 void CPtrArray::SetAt(int,void *) 7747 void CPtrList::SetAt(__POSITION *,void *) 7748 void CStringArray::SetAt(int,ATL::CStringT > > const &) 7749 void CStringArray::SetAt(int,char const *) 7750 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 7751 void CStringList::SetAt(__POSITION *,char const *) 7752 void CUIntArray::SetAt(int,unsigned int) 7753 void CWordArray::SetAt(int,unsigned short) 7754 void CByteArray::SetAtGrow(int,unsigned char) 7755 void CDWordArray::SetAtGrow(int,unsigned long) 7756 void CObArray::SetAtGrow(int,CObject *) 7757 void CPtrArray::SetAtGrow(int,void *) 7758 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 7759 void CStringArray::SetAtGrow(int,char const *) 7760 void CUIntArray::SetAtGrow(int,unsigned int) 7761 void CWordArray::SetAtGrow(int,unsigned short) 7762 void CDC::SetAttribDC(HDC__ *) 7763 void CMetaFileDC::SetAttribDC(HDC__ *) 7764 void CPreviewDC::SetAttribDC(HDC__ *) 7765 int CRichEditCtrl::SetAutoURLDetect(int) 7766 void COleControl::SetBackColor(unsigned long) 7767 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 7768 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOA *) 7769 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7770 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7771 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 7772 void CControlBar::SetBarStyle(unsigned long) 7773 int CSpinButtonCtrl::SetBase(int) 7774 void CAsyncMonikerFile::SetBinding(IBinding *) 7775 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 7776 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 7777 int CToolBar::SetBitmap(HBITMAP__ *) 7778 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 7779 CSize CBitmap::SetBitmapDimension(int,int) 7780 int CHeaderCtrl::SetBitmapMargin(int) 7781 int CToolBarCtrl::SetBitmapSize(CSize) 7782 unsigned long CDC::SetBkColor(unsigned long) 7783 unsigned long CImageList::SetBkColor(unsigned long) 7784 int CListCtrl::SetBkColor(unsigned long) 7785 unsigned long CPreviewDC::SetBkColor(unsigned long) 7786 unsigned long CProgressCtrl::SetBkColor(unsigned long) 7787 unsigned long CReBarCtrl::SetBkColor(unsigned long) 7788 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 7789 unsigned long CTreeCtrl::SetBkColor(unsigned long) 7790 int CListCtrl::SetBkImage(char *,int,int,int) 7791 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 7792 int CListCtrl::SetBkImage(tagLVBKIMAGEA *) 7793 int CDC::SetBkMode(int) 7794 void CRecordset::SetBookmark(CDBVariant const &) 7795 void CControlBar::SetBorders(int,int,int,int) 7796 void CControlBar::SetBorders(tagRECT const *) 7797 void CStatusBar::SetBorders(int,int,int,int) 7798 void CStatusBar::SetBorders(tagRECT const *) 7799 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 7800 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 7801 void COleControl::SetBorderStyle(short) 7802 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 7803 CPoint CDC::SetBrushOrg(int,int) 7804 CPoint CDC::SetBrushOrg(tagPOINT) 7805 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 7806 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 7807 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 7808 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 7809 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOA *) 7810 int CToolBar::SetButtons(unsigned int const *,int) 7811 int CToolBarCtrl::SetButtonSize(CSize) 7812 void CToolBarCtrl::SetButtonStructSize(int) 7813 void CButton::SetButtonStyle(unsigned int,int) 7814 void CToolBar::SetButtonStyle(int,unsigned int) 7815 int CToolBar::SetButtonText(int,char const *) 7816 int CToolBarCtrl::SetButtonWidth(int,int) 7817 int CListCtrl::SetCallbackMask(unsigned int) 7818 CWnd * COleControl::SetCapture() 7819 CWnd * CWnd::SetCapture() 7820 long COleControlSite::XOleIPSite::SetCapture(int) 7821 int CListBox::SetCaretIndex(int,int) 7822 void CWnd::SetCaretPos(tagPOINT) 7823 void CRichEditView::SetCharFormat(CHARFORMAT2A) 7824 void CButton::SetCheck(int) 7825 void CCheckListBox::SetCheck(int,int) 7826 void CCmdUI::SetCheck(int) 7827 int CListCtrl::SetCheck(int,int) 7828 void COleCmdUI::SetCheck(int) 7829 void CStatusCmdUI::SetCheck(int) 7830 void CTestCmdUI::SetCheck(int) 7831 void CToolCmdUI::SetCheck(int) 7832 int CTreeCtrl::SetCheck(_TREEITEM *,int) 7833 void CCheckListBox::SetCheckStyle(unsigned int) 7834 void CPropertySet::SetClassID(_GUID) 7835 void CDataBoundProperty::SetClientSite(COleControlSite *) 7836 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 7837 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 7838 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 7839 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 7840 void COleDataSource::SetClipboard() 7841 HWND__ * CWnd::SetClipboardViewer() 7842 int CToolBarCtrl::SetCmdID(int,unsigned int) 7843 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 7844 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 7845 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 7846 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 7847 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 7848 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 7849 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 7850 int CListCtrl::SetColumn(int,tagLVCOLUMNA const *) 7851 void CSplitterWnd::SetColumnInfo(int,int,int) 7852 int CListCtrl::SetColumnOrderArray(int,int *) 7853 void CListBox::SetColumnWidth(int) 7854 int CListCtrl::SetColumnWidth(int,int) 7855 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 7856 void CDocTemplate::SetContainerInfo(unsigned int) 7857 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 7858 void CDataPathProperty::SetControl(COleControl *) 7859 void CReflectorWnd::SetControl(COleControl *) 7860 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 7861 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 7862 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 7863 int COleControl::SetControlSize(int,int) 7864 int COlePropertyPage::SetControlStatus(unsigned int,int) 7865 void CFileDialog::SetControlText(int,char const *) 7866 int CInternetSession::SetCookie(char const *,char const *,char const *) 7867 void CTabCtrl::SetCurFocus(int) 7868 void COleCurrency::SetCurrency(long,long) 7869 void CColorDialog::SetCurrentColor(unsigned long) 7870 int CFtpConnection::SetCurrentDirectoryA(char const *) 7871 void CWinApp::SetCurrentHandles() 7872 void CPreviewView::SetCurrentPage(unsigned int,int) 7873 int CComboBox::SetCurSel(int) 7874 int CListBox::SetCurSel(int) 7875 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 7876 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 7877 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 7878 int CTabCtrl::SetCurSel(int) 7879 HICON__ * CButton::SetCursor(HICON__ *) 7880 int CRectTracker::SetCursor(CWnd *,unsigned int)const 7881 HICON__ * CStatic::SetCursor(HICON__ *) 7882 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7883 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7884 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7885 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7886 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7887 int CMonthCalCtrl::SetDayState(int,unsigned long *) 7888 void COccManager::SetDefaultButton(CWnd *,int) 7889 void COleControlSite::SetDefaultButton(int) 7890 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 7891 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 7892 int CMenu::SetDefaultItem(unsigned int,int) 7893 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 7894 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 7895 void CFileDialog::SetDefExt(char const *) 7896 void CDialog::SetDefID(unsigned int) 7897 void CToolTipCtrl::SetDelayTime(unsigned int) 7898 void CToolTipCtrl::SetDelayTime(unsigned long,int) 7899 void CDumpContext::SetDepth(int) 7900 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 7901 void COlePropertyPage::SetDialogResource(void *) 7902 void CRecordset::SetDirtyFieldStatus(unsigned long) 7903 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 7904 int COleControlSite::SetDlgCtrlID(int) 7905 int CWnd::SetDlgCtrlID(int) 7906 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 7907 void CWnd::SetDlgItemInt(int,unsigned int,int) 7908 void COleControlContainer::SetDlgItemTextA(int,char const *) 7909 void CWnd::SetDlgItemTextA(int,char const *) 7910 void CFrameWnd::SetDockState(CDockState const &) 7911 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 7912 int CImageList::SetDragCursorImage(int,CPoint) 7913 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 7914 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 7915 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 7916 int CComboBox::SetDroppedWidth(unsigned int) 7917 void CDataBoundProperty::SetDSCSite(COleControlSite *) 7918 int CComboBox::SetEditSel(int,int) 7919 int CComboBoxEx::SetEditSel(int,int) 7920 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 7921 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 7922 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 7923 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 7924 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 7925 void COleControl::SetEnabled(int) 7926 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 7927 int CEvent::SetEvent() 7928 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 7929 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 7930 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 7931 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 7932 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 7933 int CComboBox::SetExtendedUI(int) 7934 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 7935 int COleControlSite::SetExtent() 7936 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 7937 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 7938 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 7939 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 7940 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 7941 void CRecordset::SetFieldDirty(void *,int) 7942 void CIPAddressCtrl::SetFieldFocus(unsigned short) 7943 void CRecordset::SetFieldNull(void *,int) 7944 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 7945 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 7946 void CFieldExchange::SetFieldType(unsigned int) 7947 void CFile::SetFilePath(char const *) 7948 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 7949 void CPropertySheet::SetFinishText(char const *) 7950 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 7951 CWnd * COleControl::SetFocus() 7952 CWnd * COleControlSite::SetFocus(tagMSG *) 7953 CWnd * COleControlSite::SetFocus() 7954 CWnd * CWnd::SetFocus() 7955 long COleControlSite::XOleIPSite::SetFocus(int) 7956 void CDHtmlDialog::SetFocusToElement(char const *) 7957 int CDialogTemplate::SetFont(char const *,unsigned short) 7958 void CFontHolder::SetFont(IFont *) 7959 void COleControl::SetFont(IFontDisp *) 7960 void CWnd::SetFont(CFont *,int) 7961 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 7962 void COleControl::SetForeColor(unsigned long) 7963 int CWnd::SetForegroundWindow() 7964 int CDateTimeCtrl::SetFormat(char const *) 7965 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 7966 void CPropertySection::SetFormatID(_GUID) 7967 void CPropertySet::SetFormatVersion(unsigned short) 7968 void CHtmlView::SetFullScreen(int) 7969 void CEdit::SetHandle(void *) 7970 void CSharedFile::SetHandle(void *,int) 7971 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 7972 void CHtmlView::SetHeight(long) 7973 void CToolBar::SetHeight(int) 7974 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 7975 void CDialog::SetHelpID(unsigned int) 7976 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 7977 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 7978 void CComboBox::SetHorizontalExtent(unsigned int) 7979 void CListBox::SetHorizontalExtent(int) 7980 void CDHtmlDialog::SetHostFlags(unsigned long) 7981 void COleClientItem::SetHostNames(char const *,char const *) 7982 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7983 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7984 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7985 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7986 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 7987 int CHeaderCtrl::SetHotDivider(int) 7988 int CHeaderCtrl::SetHotDivider(CPoint) 7989 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 7990 int CListCtrl::SetHotItem(int) 7991 int CToolBarCtrl::SetHotItem(int) 7992 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 7993 unsigned long CListCtrl::SetHoverTime(unsigned long) 7994 HICON__ * CButton::SetIcon(HICON__ *) 7995 HICON__ * CStatic::SetIcon(HICON__ *) 7996 int CStatusBarCtrl::SetIcon(int,HICON__ *) 7997 HICON__ * CWnd::SetIcon(HICON__ *,int) 7998 int COleClientItem::SetIconicMetafile(void *) 7999 CSize CListCtrl::SetIconSpacing(int,int) 8000 CSize CListCtrl::SetIconSpacing(CSize) 8001 void CProperty::SetID(unsigned long) 8002 int CImageList::SetImageCount(unsigned int) 8003 CImageList * CComboBoxEx::SetImageList(CImageList *) 8004 CImageList * CHeaderCtrl::SetImageList(CImageList *) 8005 CImageList * CListCtrl::SetImageList(CImageList *,int) 8006 int CReBarCtrl::SetImageList(CImageList *) 8007 CImageList * CTabCtrl::SetImageList(CImageList *) 8008 CImageList * CToolBarCtrl::SetImageList(CImageList *) 8009 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 8010 int CToolBarCtrl::SetIndent(int) 8011 void CTreeCtrl::SetIndent(unsigned int) 8012 int CStatusBar::SetIndicators(unsigned int const *,int) 8013 void COleControl::SetInitialDataFormats() 8014 long CDocObjectServer::XPrint::SetInitialPageNum(long) 8015 void COleControl::SetInitialSize(int,int) 8016 void CControlBar::SetInPlaceOwner(CWnd *) 8017 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 8018 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 8019 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 8020 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 8021 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 8022 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 8023 int CHeaderCtrl::SetItem(int,_HD_ITEMA *) 8024 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 8025 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 8026 int CListCtrl::SetItem(tagLVITEMA const *) 8027 int CTabCtrl::SetItem(int,tagTCITEMA *) 8028 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 8029 int CTreeCtrl::SetItem(tagTVITEMA *) 8030 void CListCtrl::SetItemCount(int) 8031 int CListCtrl::SetItemCountEx(int,unsigned long) 8032 int CComboBox::SetItemData(int,unsigned long) 8033 int CListBox::SetItemData(int,unsigned long) 8034 int CListCtrl::SetItemData(int,unsigned long) 8035 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 8036 int CComboBox::SetItemDataPtr(int,void *) 8037 int CListBox::SetItemDataPtr(int,void *) 8038 int CTabCtrl::SetItemExtra(int) 8039 int CComboBox::SetItemHeight(int,unsigned int) 8040 int CListBox::SetItemHeight(int,unsigned int) 8041 short CTreeCtrl::SetItemHeight(short) 8042 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 8043 void COleServerItem::SetItemName(char const *) 8044 int CListCtrl::SetItemPosition(int,tagPOINT) 8045 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 8046 CSize CTabCtrl::SetItemSize(CSize) 8047 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 8048 int CListCtrl::SetItemState(int,tagLVITEMA *) 8049 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 8050 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 8051 int CListCtrl::SetItemText(int,int,char const *) 8052 int CTreeCtrl::SetItemText(_TREEITEM *,char const *) 8053 unsigned long CDC::SetLayout(unsigned long) 8054 void CHtmlView::SetLeft(long) 8055 void ATL::CSimpleStringT::SetLength(int) 8056 void ATL::CSimpleStringT::SetLength(int) 8057 void CFile::SetLength(unsigned __int64) 8058 void CInternetFile::SetLength(unsigned __int64) 8059 void CMemFile::SetLength(unsigned __int64) 8060 void COleStreamFile::SetLength(unsigned __int64) 8061 void CSocketFile::SetLength(unsigned __int64) 8062 void CEdit::SetLimitText(unsigned int) 8063 unsigned long CTreeCtrl::SetLineColor(unsigned long) 8064 int CSliderCtrl::SetLineSize(int) 8065 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 8066 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 8067 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 8068 void CArchive::SetLoadParams(unsigned int) 8069 unsigned long CComboBox::SetLocale(unsigned long) 8070 unsigned long CListBox::SetLocale(unsigned long) 8071 void CRecordset::SetLockingMode(unsigned int) 8072 void CDatabase::SetLoginTimeout(unsigned long) 8073 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8074 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8075 int CDC::SetMapMode(int) 8076 int CPreviewDC::SetMapMode(int) 8077 unsigned long CDC::SetMapperFlags(unsigned long) 8078 void CToolTipCtrl::SetMargin(tagRECT *) 8079 void CEdit::SetMargins(unsigned int,unsigned int) 8080 void CRichEditView::SetMargins(CRect const &) 8081 void CPrintInfo::SetMaxPage(unsigned int) 8082 int CMonthCalCtrl::SetMaxSelCount(int) 8083 int CToolBarCtrl::SetMaxTextRows(int) 8084 int CToolTipCtrl::SetMaxTipWidth(int) 8085 int CWnd::SetMenu(CMenu *) 8086 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8087 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8088 void CHtmlView::SetMenuBar(int) 8089 int CMenu::SetMenuContextHelpId(unsigned long) 8090 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 8091 int CMenu::SetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 8092 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 8093 void CFrameWnd::SetMessageText(unsigned int) 8094 void CFrameWnd::SetMessageText(char const *) 8095 void CStatusBarCtrl::SetMinHeight(int) 8096 void CPrintInfo::SetMinPage(unsigned int) 8097 int CTabCtrl::SetMinTabWidth(int) 8098 int CDC::SetMiterLimit(float) 8099 void CPropertyPage::SetModified(int) 8100 void CDocument::SetModifiedFlag(int) 8101 void COleControl::SetModifiedFlag(int) 8102 void COlePropertyPage::SetModifiedFlag(int) 8103 void CRichEditDoc::SetModifiedFlag(int) 8104 void CEdit::SetModify(int) 8105 void CRichEditCtrl::SetModify(int) 8106 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 8107 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 8108 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 8109 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 8110 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 8111 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 8112 int CMonthCalCtrl::SetMonthDelta(int) 8113 int CPropertySection::SetName(unsigned long,char const *) 8114 void COleControl::SetNotPermitted() 8115 void CCmdTarget::SetNotSupported() 8116 void COleControl::SetNotSupported() 8117 void CRecordset::SetNullFieldStatus(unsigned long) 8118 void CRecordset::SetNullParamStatus(unsigned long) 8119 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8120 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8121 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 8122 void CArchive::SetObjectSchema(unsigned int) 8123 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8124 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8125 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8126 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8127 void CHtmlView::SetOffline(int) 8128 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 8129 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 8130 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 8131 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 8132 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 8133 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 8134 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 8135 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 8136 int CHeaderCtrl::SetOrderArray(int,int *) 8137 void CPropertySet::SetOSVersion(unsigned long) 8138 void CDC::SetOutputDC(HDC__ *) 8139 void CMetaFileDC::SetOutputDC(HDC__ *) 8140 void CPreviewDC::SetOutputDC(HDC__ *) 8141 int CImageList::SetOverlayImage(int,int) 8142 CWnd * CReBarCtrl::SetOwner(CWnd *) 8143 void CToolBar::SetOwner(CWnd *) 8144 void CToolBarCtrl::SetOwner(CWnd *) 8145 void CWnd::SetOwner(CWnd *) 8146 void CTabCtrl::SetPadding(CSize) 8147 void COlePropertyPage::SetPageName(char const *) 8148 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 8149 int CSliderCtrl::SetPageSize(int) 8150 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 8151 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 8152 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 8153 void CStatusBar::SetPaneStyle(int,unsigned int) 8154 int CStatusBar::SetPaneText(int,char const *,int) 8155 void CRichEditView::SetPaperSize(CSize) 8156 int CRichEditCtrl::SetParaFormat(_paraformat &) 8157 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 8158 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 8159 void CRecordset::SetParamNull(int,int) 8160 CWnd * CWnd::SetParent(CWnd *) 8161 int CStatusBarCtrl::SetParts(int,int *) 8162 void CEdit::SetPasswordChar(char) 8163 void CDataPathProperty::SetPath(char const *) 8164 void CDocument::SetPathName(char const *,int) 8165 void COleDocument::SetPathName(char const *,int) 8166 void CRichEditDoc::SetPathName(char const *,int) 8167 void CHandleMap::SetPermanent(void *,CObject *) 8168 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 8169 unsigned long CDC::SetPixel(int,int,unsigned long) 8170 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 8171 int CDC::SetPixelV(int,int,unsigned long) 8172 int CDC::SetPixelV(tagPOINT,unsigned long) 8173 int CDC::SetPolyFillMode(int) 8174 int CProgressCtrl::SetPos(int) 8175 void CSliderCtrl::SetPos(int) 8176 int CSpinButtonCtrl::SetPos(int) 8177 int CSpinButtonCtrl::SetPos32(int) 8178 void COleIPFrameWnd::SetPreviewMode(int) 8179 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 8180 int COleClientItem::SetPrintDevice(tagPDA const *) 8181 void CEditView::SetPrinterFont(CFont *) 8182 int CPreviewView::SetPrintView(CView *) 8183 int COlePropertyPage::SetPropCheck(char const *,int) 8184 void COleControlSite::SetProperty(long,unsigned short,...) 8185 void COleDispatchDriver::SetProperty(long,unsigned short,...) 8186 void CWnd::SetProperty(long,unsigned short,...) 8187 void COleControlSite::SetPropertyV(long,unsigned short,char *) 8188 int COlePropertyPage::SetPropIndex(char const *,int) 8189 int COlePropertyPage::SetPropRadio(char const *,int) 8190 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 8191 int COlePropertyPage::SetPropText(char const *,unsigned char &) 8192 int COlePropertyPage::SetPropText(char const *,short &) 8193 int COlePropertyPage::SetPropText(char const *,int &) 8194 int COlePropertyPage::SetPropText(char const *,unsigned int &) 8195 int COlePropertyPage::SetPropText(char const *,long &) 8196 int COlePropertyPage::SetPropText(char const *,unsigned long &) 8197 int COlePropertyPage::SetPropText(char const *,float &) 8198 int COlePropertyPage::SetPropText(char const *,double &) 8199 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 8200 long CWnd::SetProxy(IAccessibleProxy *) 8201 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 8202 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 8203 void CDatabase::SetQueryTimeout(unsigned long) 8204 void CCmdUI::SetRadio(int) 8205 void CTestCmdUI::SetRadio(int) 8206 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8207 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8208 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8209 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8210 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8211 void CProgressCtrl::SetRange(short,short) 8212 void CSliderCtrl::SetRange(int,int,int) 8213 void CSpinButtonCtrl::SetRange(short,short) 8214 void CProgressCtrl::SetRange32(int,int) 8215 void CSpinButtonCtrl::SetRange32(int,int) 8216 void CSliderCtrl::SetRangeMax(int,int) 8217 void CSliderCtrl::SetRangeMin(int,int) 8218 int CInternetFile::SetReadBufferSize(unsigned int) 8219 int CEdit::SetReadOnly(int) 8220 int CRichEditCtrl::SetReadOnly(int) 8221 void CEdit::SetRect(tagRECT const *) 8222 void CRichEditCtrl::SetRect(tagRECT const *) 8223 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 8224 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 8225 int COleControl::SetRectInContainer(tagRECT const *) 8226 void CEdit::SetRectNP(tagRECT const *) 8227 void CRgn::SetRectRgn(int,int,int,int) 8228 void CRgn::SetRectRgn(tagRECT const *) 8229 void CWnd::SetRedraw(int) 8230 void CHtmlView::SetRegisterAsBrowser(int) 8231 void CHtmlView::SetRegisterAsDropTarget(int) 8232 void CWinApp::SetRegistryKey(unsigned int) 8233 void CWinApp::SetRegistryKey(char const *) 8234 void COleMessageFilter::SetRetryReply(unsigned long) 8235 int CDC::SetROP2(int) 8236 void CSplitterWnd::SetRowInfo(int,int,int) 8237 void CToolBarCtrl::SetRows(int,int,tagRECT *) 8238 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 8239 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 8240 void CRecordset::SetRowsetSize(unsigned long) 8241 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 8242 void CPreviewView::SetScaledSize(unsigned int) 8243 void CPreviewDC::SetScaleRatio(int,int) 8244 void CScrollView::SetScaleToFitSize(tagSIZE) 8245 void CDockState::SetScreenSize(CSize &) 8246 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 8247 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 8248 int CScrollBar::SetScrollPos(int,int) 8249 int CWnd::SetScrollPos(int,int,int) 8250 void CScrollBar::SetScrollRange(int,int,int) 8251 void CWnd::SetScrollRange(int,int,int,int) 8252 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8253 void CSplitterWnd::SetScrollStyle(unsigned long) 8254 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8255 int CPropertySection::SetSectionName(char const *) 8256 void CEdit::SetSel(int,int,int) 8257 void CEdit::SetSel(unsigned long,int) 8258 int CListBox::SetSel(int,int) 8259 void CRichEditCtrl::SetSel(_charrange &) 8260 void CRichEditCtrl::SetSel(long,long) 8261 void CSliderCtrl::SetSelection(int,int) 8262 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 8263 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 8264 void CCheckListBox::SetSelectionCheck(int) 8265 int CListCtrl::SetSelectionMark(int) 8266 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8267 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8268 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8269 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8270 void CHtmlView::SetSilent(int) 8271 int CStatusBarCtrl::SetSimple(int) 8272 long CPrintDialogEx::SetSite(IUnknown *) 8273 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8274 void CByteArray::SetSize(int,int) 8275 void CDWordArray::SetSize(int,int) 8276 void CObArray::SetSize(int,int) 8277 void CPtrArray::SetSize(int,int) 8278 void CStringArray::SetSize(int,int) 8279 void CUIntArray::SetSize(int,int) 8280 void CWordArray::SetSize(int,int) 8281 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8282 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8283 void CSplitterWnd::SetSplitCursor(int) 8284 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8285 void CButton::SetState(int) 8286 void CRecordset::SetState(int,char const *,unsigned long) 8287 int CToolBarCtrl::SetState(int,unsigned int) 8288 void CFile::SetStatus(char const *,CFileStatus const &) 8289 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8290 void CHtmlView::SetStatusBar(int) 8291 int CControlBar::SetStatusText(int) 8292 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8293 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8294 int CProgressCtrl::SetStep(int) 8295 void CArchive::SetStoreParams(unsigned int,unsigned int) 8296 int CDC::SetStretchBltMode(int) 8297 void ATL::CSimpleStringT::SetString(wchar_t const *) 8298 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 8299 void ATL::CSimpleStringT::SetString(char const *) 8300 void ATL::CSimpleStringT::SetString(char const *,int) 8301 void COleVariant::SetString(char const *,unsigned short) 8302 void CToolBarCtrl::SetStyle(unsigned long) 8303 void CDatabase::SetSynchronousMode(int) 8304 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8305 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8306 int CDialogTemplate::SetSystemFont(unsigned short) 8307 int CEdit::SetTabStops(int const &) 8308 int CEdit::SetTabStops(int,int *) 8309 void CEdit::SetTabStops() 8310 void CEditView::SetTabStops(int) 8311 int CListBox::SetTabStops(int const &) 8312 int CListBox::SetTabStops(int,int *) 8313 void CListBox::SetTabStops() 8314 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8315 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8316 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8317 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8318 void CFileDialog::SetTemplate(char const *,char const *) 8319 void CCmdUI::SetText(char const *) 8320 void COleCmdUI::SetText(char const *) 8321 void COleControl::SetText(char const *) 8322 int CStatusBarCtrl::SetText(char const *,int,int) 8323 void CStatusCmdUI::SetText(char const *) 8324 void CTestCmdUI::SetText(char const *) 8325 void CToolCmdUI::SetText(char const *) 8326 unsigned int CDC::SetTextAlign(unsigned int) 8327 int CListCtrl::SetTextBkColor(unsigned long) 8328 int CDC::SetTextCharacterExtra(int) 8329 unsigned long CDC::SetTextColor(unsigned long) 8330 int CListCtrl::SetTextColor(unsigned long) 8331 unsigned long CPreviewDC::SetTextColor(unsigned long) 8332 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8333 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8334 int CDC::SetTextJustification(int,int) 8335 int CRichEditCtrl::SetTextMode(unsigned int) 8336 void CHtmlView::SetTheaterMode(int) 8337 int CWinThread::SetThreadPriority(int) 8338 int CSliderCtrl::SetTic(int) 8339 void CSliderCtrl::SetTicFreq(int) 8340 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8341 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8342 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8343 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8344 void CToolTipCtrl::SetTipBkColor(unsigned long) 8345 int CSliderCtrl::SetTipSide(int) 8346 void CStatusBarCtrl::SetTipText(int,char const *) 8347 void CToolTipCtrl::SetTipTextColor(unsigned long) 8348 void CDocument::SetTitle(char const *) 8349 void CFrameWnd::SetTitle(char const *) 8350 void CPropertySheet::SetTitle(char const *,unsigned int) 8351 void CRichEditDoc::SetTitle(char const *) 8352 int CToolTipCtrl::SetTitle(unsigned int,char const *) 8353 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8354 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8355 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8356 void CHtmlView::SetToolBar(int) 8357 void CToolTipCtrl::SetToolInfo(tagTOOLINFOA *) 8358 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8359 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8360 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8361 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8362 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8363 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8364 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8365 void CHtmlView::SetTop(long) 8366 int CComboBox::SetTopIndex(int) 8367 int CListBox::SetTopIndex(int) 8368 void CPreviewDC::SetTopLeftOffset(CSize) 8369 void CProperty::SetType(unsigned long) 8370 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8371 void CRecordset::SetUpdateMethod() 8372 void CThreadSlotData::SetValue(int,void *) 8373 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8374 CSize CDC::SetViewportExt(tagSIZE) 8375 CSize CDC::SetViewportExt(int,int) 8376 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8377 CSize CMetaFileDC::SetViewportExt(int,int) 8378 CSize CPreviewDC::SetViewportExt(int,int) 8379 CPoint CDC::SetViewportOrg(tagPOINT) 8380 CPoint CDC::SetViewportOrg(int,int) 8381 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8382 CPoint CMetaFileDC::SetViewportOrg(int,int) 8383 CPoint CPreviewDC::SetViewportOrg(int,int) 8384 void CHtmlView::SetVisible(int) 8385 void CHtmlView::SetWidth(long) 8386 int CWnd::SetWindowContextHelpId(unsigned long) 8387 CSize CDC::SetWindowExt(tagSIZE) 8388 CSize CDC::SetWindowExt(int,int) 8389 CSize CPreviewDC::SetWindowExt(int,int) 8390 CPoint CDC::SetWindowOrg(int,int) 8391 CPoint CDC::SetWindowOrg(tagPOINT) 8392 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 8393 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8394 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8395 int CWnd::SetWindowRgn(HRGN__ *,int) 8396 void COleControlSite::SetWindowTextA(char const *) 8397 void CWnd::SetWindowTextA(char const *) 8398 void CPropertySheet::SetWizardButtons(unsigned long) 8399 void CPropertySheet::SetWizardMode() 8400 int CRichEditCtrl::SetWordCharFormat(_charformat &) 8401 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 8402 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 8403 void CListCtrl::SetWorkAreas(int,tagRECT *) 8404 int CInternetFile::SetWriteBufferSize(unsigned int) 8405 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 8406 long CDocObjectServer::XOleDocumentView::Show(int) 8407 long COlePropertyPage::XPropertyPage::Show(unsigned int) 8408 void CDockBar::ShowAll(int) 8409 int CReBarCtrl::ShowBand(unsigned int,int) 8410 void CWnd::ShowCaret() 8411 long CRichEditCntrItem::ShowContainerUI(int) 8412 long CRichEditView::ShowContainerUI(int) 8413 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 8414 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8415 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8416 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8417 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 8418 void CComboBox::ShowDropDown(int) 8419 long COleClientItem::XOleClientSite::ShowObject() 8420 long COleControlSite::XOleClientSite::ShowObject() 8421 void CWnd::ShowOwnedPopups(int) 8422 void CFrameWnd::ShowOwnedWindows(int) 8423 long COleControlSite::XOleControlSite::ShowPropertyFrame() 8424 void CScrollBar::ShowScrollBar(int) 8425 void CWnd::ShowScrollBar(unsigned int,int) 8426 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8427 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8428 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8429 int COleControlSite::ShowWindow(int) 8430 int CWnd::ShowWindow(int) 8431 int CAsyncSocket::ShutDown(int) 8432 tagSIZE const CScrollView::sizeDefault 8433 int CMonthCalCtrl::SizeMinReq(int) 8434 void CBitmapButton::SizeToContent() 8435 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 8436 int CReBarCtrl::SizeToRect(CRect &) 8437 long CEnumArray::XEnumVOID::Skip(unsigned long) 8438 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 8439 int CAsyncSocket::Socket(int,long,int,int) 8440 int CTreeCtrl::SortChildren(_TREEITEM *) 8441 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 8442 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 8443 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 8444 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 8445 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 8446 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 8447 int CSplitterWnd::SplitColumn(int) 8448 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 8449 int CSplitterWnd::SplitRow(int) 8450 int CDC::StartDocA(_DOCINFOA *) 8451 int CDC::StartDocA(char const *) 8452 void CDockContext::StartDrag(CPoint) 8453 int CDC::StartPage() 8454 void CDockContext::StartResize(int,CPoint) 8455 void CSplitterWnd::StartTracking(int) 8456 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 8457 int CProgressCtrl::StepIt() 8458 int CAnimateCtrl::Stop() 8459 void CHtmlView::Stop() 8460 void CRichEditCtrl::StopGroupTyping() 8461 void CSplitterWnd::StopTracking(int) 8462 void CRuntimeClass::Store(CArchive &)const 8463 void CRecordset::StoreFields() 8464 void CRichEditView::Stream(CArchive &,int) 8465 long CRichEditCtrl::StreamIn(int,_editstream &) 8466 long CRichEditCtrl::StreamOut(int,_editstream &) 8467 void CDockContext::Stretch(CPoint) 8468 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 8469 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8470 int ATL::CSimpleStringT::StringLength(char const *) 8471 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8472 int ATL::CSimpleStringT::StringLength(char const *) 8473 int CDC::StrokeAndFillPath() 8474 int CDC::StrokePath() 8475 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 8476 int CWnd::SubclassWindow(HWND__ *) 8477 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 8478 int COleDocObjectItem::SupportsIPrint() 8479 unsigned long CWinThread::SuspendThread() 8480 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8481 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8482 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 8483 CSize CDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 8484 CSize CDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8485 CSize CMetaFileDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 8486 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8487 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8488 void CRichEditView::TextNotFound(char const *) 8489 int CDC::TextOutA(int,int,ATL::CStringT > > const &) 8490 int CDC::TextOutA(int,int,char const *,int) 8491 int CMetaFileDC::TextOutA(int,int,ATL::CStringT > > const &) 8492 int CMetaFileDC::TextOutA(int,int,char const *,int) 8493 int CPreviewDC::TextOutA(int,int,char const *,int) 8494 void CDatabase::ThrowDBException(short) 8495 void CRecordset::ThrowDBException(short,void *) 8496 void CFileException::ThrowErrno(int,char const *) 8497 void COleControl::ThrowError(long,unsigned int,unsigned int) 8498 void COleControl::ThrowError(long,char const *,unsigned int) 8499 void ATL::CSimpleStringT::ThrowMemoryException() 8500 void ATL::CSimpleStringT::ThrowMemoryException() 8501 void CFileException::ThrowOsError(long,char const *) 8502 void CDockContext::ToggleDocking() 8503 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 8504 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 8505 COleVariant CDataSourceControl::ToVariant(int) 8506 ATL::CTraceCategory traceAppMsg 8507 ATL::CTraceCategory traceCmdRouting 8508 ATL::CTraceCategory traceDatabase 8509 ATL::CTraceCategory traceDumpContext 8510 void CDBException::TraceErrorMessage(char const *)const 8511 ATL::CTraceCategory traceGdi 8512 ATL::CTraceCategory traceHtml 8513 ATL::CTraceCategory traceInternet 8514 ATL::CTraceCategory traceKernel 8515 ATL::CTraceCategory traceMemory 8516 ATL::CTraceCategory traceMultiApp 8517 ATL::CTraceCategory traceOle 8518 ATL::CTraceCategory traceSocket 8519 ATL::CTraceCategory traceUser 8520 ATL::CTraceCategory traceWinMsg 8521 int CDockContext::Track() 8522 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 8523 void CSplitterWnd::TrackColumnSize(int,int) 8524 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 8525 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 8526 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 8527 void CSplitterWnd::TrackRowSize(int,int) 8528 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 8529 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8530 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8531 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8532 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8533 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8534 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 8535 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 8536 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 8537 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 8538 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 8539 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 8540 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 8541 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8542 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8543 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8544 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 8545 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 8546 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 8547 ATL::CStringT > > & ATL::CStringT > >::Trim() 8548 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 8549 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 8550 ATL::CStringT > > & ATL::CStringT > >::Trim() 8551 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 8552 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 8553 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8554 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 8555 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 8556 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8557 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 8558 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 8559 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8560 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 8561 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 8562 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8563 void ATL::CSimpleStringT::Truncate(int) 8564 void ATL::CSimpleStringT::Truncate(int) 8565 long CDocObjectServer::XOleDocumentView::UIActivate(int) 8566 void COccManager::UIActivateControl(CWnd *) 8567 long COleControl::XOleInPlaceObject::UIDeactivate() 8568 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 8569 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 8570 void COleSafeArray::UnaccessData() 8571 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 8572 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 8573 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 8574 long COleControl::XOleObject::Unadvise(unsigned long) 8575 long COleServerDoc::XOleObject::Unadvise(unsigned long) 8576 long COleServerItem::XOleObject::Unadvise(unsigned long) 8577 void CRecordset::UnbindFieldsForUpdate() 8578 long COleControl::XOleCache::Uncache(unsigned long) 8579 int CEdit::Undo() 8580 int CRichEditCtrl::Undo() 8581 long COleControl::XViewObject::Unfreeze(unsigned long) 8582 int CCriticalSection::Unlock() 8583 int CEvent::Unlock() 8584 int CMultiLock::Unlock(long,long *) 8585 int CMultiLock::Unlock() 8586 int CMutex::Unlock() 8587 void COleSafeArray::Unlock() 8588 int CSemaphore::Unlock(long,long *) 8589 int CSemaphore::Unlock() 8590 int CSingleLock::Unlock(long,long *) 8591 int CSingleLock::Unlock() 8592 void CTypeLibCache::Unlock() 8593 void ATL::CSimpleStringT::UnlockBuffer() 8594 void ATL::CSimpleStringT::UnlockBuffer() 8595 void CEditView::UnlockBuffer()const 8596 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 8597 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 8598 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 8599 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 8600 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 8601 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 8602 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 8603 void CWnd::UnlockWindowUpdate() 8604 int CGdiObject::UnrealizeObject() 8605 int COleObjectFactory::Unregister() 8606 int COleTemplateServer::Unregister() 8607 int CWinApp::Unregister() 8608 int COleObjectFactory::UnregisterAll() 8609 void CDocManager::UnregisterShellFileTypes() 8610 void CWinApp::UnregisterShellFileTypes() 8611 HWND__ * CWnd::UnsubclassWindow() 8612 int CListCtrl::Update(int) 8613 int CRecordset::Update() 8614 void CToolTipCtrl::Update() 8615 long CDocObjectServer::XOleObject::Update() 8616 long COleControl::XOleObject::Update() 8617 long COleServerDoc::XOleObject::Update() 8618 long COleServerItem::XOleObject::Update() 8619 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 8620 void CStatusBar::UpdateAllPanes(int,int) 8621 void CDocument::UpdateAllViews(CView *,long,CObject *) 8622 void CScrollView::UpdateBars() 8623 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 8624 void CDC::UpdateColors() 8625 long CDataSourceControl::UpdateControls() 8626 long CDataSourceControl::UpdateCursor() 8627 void CMemoryState::UpdateData() 8628 int CWnd::UpdateData(int) 8629 void CWnd::UpdateDialogControls(CCmdTarget *,int) 8630 void CDocument::UpdateFrameCounts() 8631 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 8632 int CRecordset::UpdateInsertDelete() 8633 void COleClientItem::UpdateItemType() 8634 int COleClientItem::UpdateLink() 8635 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 8636 void CRecentFileList::UpdateMenu(CCmdUI *) 8637 void COleDocument::UpdateModifiedFlag() 8638 void CRichEditDoc::UpdateModifiedFlag() 8639 void CRichEditDoc::UpdateObjectCache() 8640 void CWinApp::UpdatePrinterSelection(int) 8641 int COleObjectFactory::UpdateRegistry(int) 8642 void COleObjectFactory::UpdateRegistry(char const *) 8643 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 8644 int COleObjectFactory::UpdateRegistryAll(int) 8645 void CDockContext::UpdateState(int *,int) 8646 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 8647 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 8648 long CBrowserControlSite::UpdateUI() 8649 long CDHtmlDialog::UpdateUI() 8650 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 8651 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 8652 void COleLinkingDoc::UpdateVisibleLock(int,int) 8653 void CWnd::UpdateWindow() 8654 void CWnd::ValidateRect(tagRECT const *) 8655 void CWnd::ValidateRgn(CRgn *) 8656 void CDatabase::VerifyConnect() 8657 unsigned long CRecordset::VerifyCursorSupport() 8658 void CRecordset::VerifyDriverBehavior() 8659 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 8660 int COleObjectFactory::VerifyUserLicense() 8661 int CListBox::VKeyToItem(unsigned int,unsigned int) 8662 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 8663 int CDC::WidenPath() 8664 int COleControl::WillAmbientsBeValidDuringLoad() 8665 CWnd * CWnd::WindowFromPoint(tagPOINT) 8666 long CControlBar::WindowProc(unsigned int,unsigned int,long) 8667 long COleControl::WindowProc(unsigned int,unsigned int,long) 8668 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 8669 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 8670 long CReBar::WindowProc(unsigned int,unsigned int,long) 8671 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 8672 long CWnd::WindowProc(unsigned int,unsigned int,long) 8673 void CWinApp::WinHelpA(unsigned long,unsigned int) 8674 void CWnd::WinHelpA(unsigned long,unsigned int) 8675 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 8676 void CWnd::WinHelpInternal(unsigned long,unsigned int) 8677 CWnd const CWnd::wndBottom 8678 CWnd const CWnd::wndNoTopMost 8679 CWnd const CWnd::wndTop 8680 CWnd const CWnd::wndTopMost 8681 void CRichEditView::WrapChanged() 8682 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 8683 void CArchive::Write(void const *,unsigned int) 8684 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 8685 void CFile::Write(void const *,unsigned int) 8686 void CGopherFile::Write(void const *,unsigned int) 8687 int CImageList::Write(CArchive *) 8688 void CInternetFile::Write(void const *,unsigned int) 8689 void CMemFile::Write(void const *,unsigned int) 8690 void COleStreamFile::Write(void const *,unsigned int) 8691 void CSocketFile::Write(void const *,unsigned int) 8692 void CStdioFile::Write(void const *,unsigned int) 8693 void CArchive::WriteClass(CRuntimeconst *) 8694 void CArchive::WriteCount(unsigned long) 8695 void COleClientItem::WriteItem(CArchive &) 8696 void COleClientItem::WriteItemCompound(CArchive &) 8697 void COleClientItem::WriteItemFlat(CArchive &) 8698 void CRecentFileList::WriteList() 8699 int CPropertySection::WriteNameDictToStream(IStream *) 8700 void CArchive::WriteObject(CObject const *) 8701 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 8702 int CWinApp::WriteProfileInt(char const *,char const *,int) 8703 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 8704 void CArchive::WriteString(char const *) 8705 void CGopherFile::WriteString(char const *) 8706 void CInternetFile::WriteString(char const *) 8707 void CStdioFile::WriteString(char const *) 8708 void CEditView::WriteToArchive(CArchive &) 8709 int CProperty::WriteToStream(IStream *) 8710 int CPropertySection::WriteToStream(IStream *) 8711 int CPropertySet::WriteToStream(IStream *) 8712 _AFX_DAO_STATE::_AFX_DAO_STATE() 8713 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 8714 CDaoException::CDaoException() 8715 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 8716 CDaoIndexInfo::CDaoIndexInfo() 8717 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 8718 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 8719 CDaoRecordView::CDaoRecordView(unsigned int) 8720 CDaoRecordView::CDaoRecordView(char const *) 8721 CDaoRelationInfo::CDaoRelationInfo() 8722 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 8723 CDaoWorkspace::CDaoWorkspace() 8724 _AFX_DAO_STATE::~_AFX_DAO_STATE() 8725 CDaoDatabase::~CDaoDatabase() 8726 CDaoException::~CDaoException() 8727 CDaoIndexInfo::~CDaoIndexInfo() 8728 CDaoQueryDef::~CDaoQueryDef() 8729 CDaoRecordset::~CDaoRecordset() 8730 CDaoRecordView::~CDaoRecordView() 8731 CDaoRelationInfo::~CDaoRelationInfo() 8732 CDaoTableDef::~CDaoTableDef() 8733 CDaoWorkspace::~CDaoWorkspace() 8734 void CDaoRecordset::AddNew() 8735 void AfxDaoCheck(long,char const *,char const *,int,int,int) 8736 _DAODBEngine * AfxDaoGetEngine() 8737 void AfxDaoInit() 8738 void AfxDaoTerm() 8739 void AfxDaoTrace(long,char const *,char const *,int) 8740 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 8741 _AFX_DAO_STATE * AfxGetDaoState() 8742 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 8743 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 8744 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8745 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 8746 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 8747 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 8748 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 8749 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8750 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 8751 void AfxThrowDaoException(int,long) 8752 void CDaoRecordset::AllocCache() 8753 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 8754 void CDaoRecordset::AllocDatabase() 8755 void AllocLongBinary(CLongBinary &,unsigned long) 8756 void CDaoQueryDef::Append() 8757 void CDaoTableDef::Append() 8758 void CDaoWorkspace::Append() 8759 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 8760 void CDaoDatabase::AssertValid()const 8761 void CDaoQueryDef::AssertValid()const 8762 void CDaoRecordset::AssertValid()const 8763 void CDaoRecordView::AssertValid()const 8764 void CDaoTableDef::AssertValid()const 8765 void CDaoWorkspace::AssertValid()const 8766 void CDaoWorkspace::BeginTrans() 8767 void CDaoRecordset::BindFields() 8768 void CDaoRecordset::BindParameters() 8769 void CDaoRecordset::BuildParameterList() 8770 void CDaoRecordset::BuildSelectList() 8771 void CDaoRecordset::BuildSQL() 8772 int CDaoRecordset::CanAppend()const 8773 int CDaoRecordset::CanBookmark() 8774 void CDaoRecordset::CancelUpdate() 8775 int CDaoRecordset::CanRestart() 8776 int CDaoRecordset::CanScroll()const 8777 int CDaoDatabase::CanTransact() 8778 int CDaoRecordset::CanTransact() 8779 int CDaoDatabase::CanUpdate() 8780 int CDaoQueryDef::CanUpdate() 8781 int CDaoRecordset::CanUpdate()const 8782 int CDaoTableDef::CanUpdate() 8783 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 8784 void CDaoRecordset::ClearFieldStatusFlags() 8785 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 8786 void CDaoDatabase::Close() 8787 void CDaoQueryDef::Close() 8788 void CDaoRecordset::Close() 8789 void CDaoTableDef::Close() 8790 void CDaoWorkspace::Close() 8791 void CDaoWorkspace::CommitTrans() 8792 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 8793 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 8794 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 8795 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 8796 void CDaoDatabase::Create(char const *,char const *,int) 8797 void CDaoQueryDef::Create(char const *,char const *) 8798 void CDaoTableDef::Create(char const *,long,char const *,char const *) 8799 void CDaoWorkspace::Create(char const *,char const *,char const *) 8800 void CDaoTableDef::CreateField(CDaoFieldInfo &) 8801 void CDaoTableDef::CreateField(char const *,short,long,long) 8802 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 8803 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 8804 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 8805 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8806 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8807 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8808 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 8809 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8810 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8811 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8812 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 8813 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 8814 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 8815 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 8816 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 8817 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 8818 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 8819 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 8820 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 8821 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 8822 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8823 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 8824 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 8825 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 8826 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 8827 void CDaoRecordset::Delete() 8828 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 8829 void CDaoTableDef::DeleteField(int) 8830 void CDaoTableDef::DeleteField(char const *) 8831 void CDaoTableDef::DeleteIndex(int) 8832 void CDaoTableDef::DeleteIndex(char const *) 8833 void CDaoDatabase::DeleteQueryDef(char const *) 8834 void CDaoDatabase::DeleteRelation(char const *) 8835 void CDaoDatabase::DeleteTableDef(char const *) 8836 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 8837 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 8838 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 8839 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 8840 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 8841 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 8842 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 8843 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 8844 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 8845 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 8846 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 8847 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 8848 void CDaoDatabase::Dump(CDumpContext &)const 8849 void CDaoDatabaseInfo::Dump(CDumpContext &)const 8850 void CDaoErrorInfo::Dump(CDumpContext &)const 8851 void CDaoFieldInfo::Dump(CDumpContext &)const 8852 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 8853 void CDaoIndexInfo::Dump(CDumpContext &)const 8854 void CDaoParameterInfo::Dump(CDumpContext &)const 8855 void CDaoQueryDef::Dump(CDumpContext &)const 8856 void CDaoQueryDefInfo::Dump(CDumpContext &)const 8857 void CDaoRecordset::Dump(CDumpContext &)const 8858 void CDaoRecordView::Dump(CDumpContext &)const 8859 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 8860 void CDaoRelationInfo::Dump(CDumpContext &)const 8861 void CDaoTableDef::Dump(CDumpContext &)const 8862 void CDaoTableDefInfo::Dump(CDumpContext &)const 8863 void CDaoWorkspace::Dump(CDumpContext &)const 8864 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 8865 void CDaoRecordset::Edit() 8866 void CDaoDatabase::Execute(char const *,int) 8867 void CDaoQueryDef::Execute(int) 8868 void CDaoRecordset::FillCache(long *,COleVariant *) 8869 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 8870 void CDaoException::FillErrorInfo() 8871 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 8872 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 8873 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 8874 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 8875 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 8876 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 8877 int CDaoRecordset::Find(long,char const *) 8878 int CDaoRecordset::FindFirst(char const *) 8879 int CDaoRecordset::FindLast(char const *) 8880 int CDaoRecordset::FindNext(char const *) 8881 int CDaoRecordset::FindPrev(char const *) 8882 void CDaoRecordset::Fixup() 8883 void CDaoRecordset::FreeCache() 8884 long CDaoRecordset::GetAbsolutePosition() 8885 long CDaoTableDef::GetAttributes() 8886 COleVariant CDaoRecordset::GetBookmark() 8887 long CDaoRecordset::GetCacheSize() 8888 COleVariant CDaoRecordset::GetCacheStart() 8889 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 8890 ATL::CStringT > > CDaoDatabase::GetConnect() 8891 ATL::CStringT > > CDaoQueryDef::GetConnect() 8892 ATL::CStringT > > CDaoTableDef::GetConnect() 8893 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 8894 void CDaoRecordset::GetDataAndFixupNulls() 8895 short CDaoWorkspace::GetDatabaseCount() 8896 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 8897 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 8898 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 8899 ATL::COleDateTime CDaoRecordset::GetDateCreated() 8900 ATL::COleDateTime CDaoTableDef::GetDateCreated() 8901 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 8902 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 8903 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 8904 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 8905 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 8906 short CDaoRecordset::GetEditMode() 8907 short CDaoException::GetErrorCount() 8908 void CDaoException::GetErrorInfo(int) 8909 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *) 8910 short CDaoQueryDef::GetFieldCount() 8911 short CDaoRecordset::GetFieldCount() 8912 short CDaoTableDef::GetFieldCount() 8913 int CDaoRecordset::GetFieldIndex(void *) 8914 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8915 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8916 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8917 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8918 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8919 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8920 unsigned long CDaoRecordset::GetFieldLength(int) 8921 COleVariant CDaoRecordset::GetFieldValue(int) 8922 COleVariant CDaoRecordset::GetFieldValue(char const *) 8923 void CDaoRecordset::GetFieldValue(int,COleVariant &) 8924 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 8925 short CDaoRecordset::GetIndexCount() 8926 short CDaoTableDef::GetIndexCount() 8927 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8928 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 8929 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8930 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 8931 ATL::CStringT > > CDaoWorkspace::GetIniPath() 8932 int CDaoWorkspace::GetIsolateODBCTrans() 8933 COleVariant CDaoRecordset::GetLastModifiedBookmark() 8934 int CDaoRecordset::GetLockingMode() 8935 short CDaoWorkspace::GetLoginTimeout() 8936 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 8937 ATL::CStringT > > CDaoDatabase::GetName() 8938 ATL::CStringT > > CDaoQueryDef::GetName() 8939 ATL::CStringT > > CDaoRecordset::GetName() 8940 ATL::CStringT > > CDaoTableDef::GetName() 8941 ATL::CStringT > > CDaoWorkspace::GetName() 8942 short CDaoQueryDef::GetODBCTimeout() 8943 short CDaoQueryDef::GetParameterCount() 8944 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 8945 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 8946 COleVariant CDaoQueryDef::GetParamValue(int) 8947 COleVariant CDaoQueryDef::GetParamValue(char const *) 8948 COleVariant CDaoRecordset::GetParamValue(int) 8949 COleVariant CDaoRecordset::GetParamValue(char const *) 8950 float CDaoRecordset::GetPercentPosition() 8951 short CDaoDatabase::GetQueryDefCount() 8952 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 8953 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 8954 short CDaoDatabase::GetQueryTimeout() 8955 long CDaoRecordset::GetRecordCount() 8956 long CDaoTableDef::GetRecordCount() 8957 long CDaoDatabase::GetRecordsAffected() 8958 long CDaoQueryDef::GetRecordsAffected() 8959 short CDaoDatabase::GetRelationCount() 8960 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 8961 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 8962 int CDaoQueryDef::GetReturnsRecords() 8963 CRuntime* CDaoDatabase::GetRuntimeClass()const 8964 CRuntime* CDaoException::GetRuntimeClass()const 8965 CRuntime* CDaoQueryDef::GetRuntimeClass()const 8966 CRuntime* CDaoRecordset::GetRuntimeClass()const 8967 CRuntime* CDaoRecordView::GetRuntimeClass()const 8968 CRuntime* CDaoTableDef::GetRuntimeClass()const 8969 CRuntime* CDaoWorkspace::GetRuntimeClass()const 8970 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 8971 ATL::CStringT > > CDaoQueryDef::GetSQL() 8972 ATL::CStringT > > CDaoRecordset::GetSQL()const 8973 short CDaoDatabase::GetTableDefCount() 8974 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 8975 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 8976 CRuntime* CDaoDatabase::GetThisClass() 8977 CRuntime* CDaoException::GetThisClass() 8978 CRuntime* CDaoQueryDef::GetThisClass() 8979 CRuntime* CDaoRecordset::GetThisClass() 8980 CRuntime* CDaoRecordView::GetThisClass() 8981 CRuntime* CDaoTableDef::GetThisClass() 8982 CRuntime* CDaoWorkspace::GetThisClass() 8983 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 8984 short CDaoQueryDef::GetType() 8985 short CDaoRecordset::GetType() 8986 ATL::CStringT > > CDaoWorkspace::GetUserNameA() 8987 ATL::CStringT > > CDaoRecordset::GetValidationRule() 8988 ATL::CStringT > > CDaoTableDef::GetValidationRule() 8989 ATL::CStringT > > CDaoRecordset::GetValidationText() 8990 ATL::CStringT > > CDaoTableDef::GetValidationText() 8991 ATL::CStringT > > CDaoDatabase::GetVersion() 8992 ATL::CStringT > > CDaoWorkspace::GetVersion() 8993 short CDaoWorkspace::GetWorkspaceCount() 8994 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 8995 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 8996 void CDaoWorkspace::Idle(int) 8997 void CDaoWorkspace::InitDatabasesCollection() 8998 void CDaoException::InitErrorsCollection() 8999 void CDaoQueryDef::InitFieldsCollection() 9000 void CDaoRecordset::InitFieldsCollection() 9001 void CDaoTableDef::InitFieldsCollection() 9002 void CDaoWorkspace::InitializeEngine() 9003 void CDaoRecordset::InitIndexesCollection() 9004 void CDaoTableDef::InitIndexesCollection() 9005 void CDaoQueryDef::InitParametersCollection() 9006 void CDaoDatabase::InitQueryDefsCollection() 9007 void CDaoDatabase::InitRelationsCollection() 9008 void CDaoDatabase::InitTableDefsCollection() 9009 void CDaoDatabase::InitWorkspace() 9010 void CDaoWorkspace::InitWorkspacesCollection() 9011 int CDaoRecordset::IsBOF()const 9012 int CDaoRecordset::IsDeleted()const 9013 int CDaoRecordset::IsEOF()const 9014 int CDaoRecordset::IsFieldDirty(void *) 9015 int CDaoRecordset::IsFieldNull(void *) 9016 int CDaoRecordset::IsFieldNullable(void *) 9017 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 9018 int CDaoRecordset::IsFieldStatusNull(unsigned int) 9019 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 9020 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 9021 int CDaoRecordset::IsMatch() 9022 int CDaoWorkspace::IsNew()const 9023 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 9024 int CDaoRecordView::IsOnFirstRecord() 9025 int CDaoRecordView::IsOnLastRecord() 9026 int CDaoDatabase::IsOpen()const 9027 int CDaoQueryDef::IsOpen()const 9028 int CDaoRecordset::IsOpen()const 9029 int CDaoTableDef::IsOpen()const 9030 int CDaoWorkspace::IsOpen()const 9031 int CDaoFieldExchange::IsValidOperation() 9032 void CDaoRecordset::LoadFields() 9033 void CDaoRecordset::MarkForAddNew() 9034 void CDaoRecordset::MarkForEdit() 9035 void CDaoRecordset::Move(long) 9036 void CDaoRecordset::MoveFirst() 9037 void CDaoRecordset::MoveLast() 9038 void CDaoRecordset::MoveNext() 9039 void CDaoRecordset::MovePrev() 9040 void CDaoRecordView::OnInitialUpdate() 9041 void CDaoRecordView::OnMove(int,int) 9042 int CDaoRecordView::OnMove(unsigned int) 9043 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 9044 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 9045 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 9046 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 9047 void CDaoDatabase::Open(char const *,int,int,char const *) 9048 void CDaoQueryDef::Open(char const *) 9049 void CDaoRecordset::Open(int,char const *,int) 9050 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 9051 void CDaoRecordset::Open(CDaoTableDef *,int,int) 9052 void CDaoTableDef::Open(char const *) 9053 void CDaoWorkspace::Open(char const *) 9054 void CDaoTableDef::RefreshLink() 9055 void CDaoWorkspace::RepairDatabase(char const *) 9056 void CDaoRecordset::Requery() 9057 void CDaoWorkspace::Rollback() 9058 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 9059 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 9060 void CDaoRecordset::SetAbsolutePosition(long) 9061 void CDaoTableDef::SetAttributes(long) 9062 void CDaoRecordset::SetBookmark(COleVariant) 9063 void CDaoRecordset::SetCacheSize(long) 9064 void CDaoRecordset::SetCacheStart(COleVariant) 9065 void CDaoQueryDef::SetConnect(char const *) 9066 void CDaoTableDef::SetConnect(char const *) 9067 void CDaoRecordset::SetCurrentIndex(char const *) 9068 void CDaoRecordset::SetCursorAttributes() 9069 void CDaoWorkspace::SetDefaultPassword(char const *) 9070 void CDaoWorkspace::SetDefaultUser(char const *) 9071 void CDaoRecordset::SetDirtyFields() 9072 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 9073 void CDaoRecordset::SetFieldDirty(void *,int) 9074 void CDaoRecordset::SetFieldNull(void *,int) 9075 void CDaoFieldExchange::SetFieldType(unsigned int) 9076 void CDaoRecordset::SetFieldValue(int,char const *) 9077 void CDaoRecordset::SetFieldValue(char const *,char const *) 9078 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 9079 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 9080 void CDaoRecordset::SetFieldValueNull(int) 9081 void CDaoRecordset::SetFieldValueNull(char const *) 9082 void CDaoWorkspace::SetIniPath(char const *) 9083 void CDaoWorkspace::SetIsolateODBCTrans(int) 9084 void CDaoRecordset::SetLockingMode(int) 9085 void CDaoWorkspace::SetLoginTimeout(short) 9086 void CDaoQueryDef::SetName(char const *) 9087 void CDaoTableDef::SetName(char const *) 9088 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 9089 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 9090 void CDaoRecordset::SetNullFieldStatus(unsigned int) 9091 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 9092 void CDaoQueryDef::SetODBCTimeout(short) 9093 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 9094 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 9095 void CDaoRecordset::SetParamValue(int,COleVariant const &) 9096 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 9097 void CDaoQueryDef::SetParamValueNull(int) 9098 void CDaoQueryDef::SetParamValueNull(char const *) 9099 void CDaoRecordset::SetParamValueNull(int) 9100 void CDaoRecordset::SetParamValueNull(char const *) 9101 void CDaoRecordset::SetPercentPosition(float) 9102 void CDaoDatabase::SetQueryTimeout(short) 9103 void CDaoQueryDef::SetReturnsRecords(int) 9104 void CDaoTableDef::SetSourceTableName(char const *) 9105 void CDaoQueryDef::SetSQL(char const *) 9106 void CDaoTableDef::SetValidationRule(char const *) 9107 void CDaoTableDef::SetValidationText(char const *) 9108 void CDaoRecordset::StoreFields() 9109 void CDaoRecordset::StripBrackets(char const *,char *) 9110 void CDaoDatabase::ThrowDaoException(int) 9111 void CDaoQueryDef::ThrowDaoException(int) 9112 void CDaoRecordset::ThrowDaoException(int) 9113 void CDaoTableDef::ThrowDaoException(int) 9114 void CDaoWorkspace::ThrowDaoException(int) 9115 void ThrowGetRowsDaoException(long) 9116 void CDaoRecordset::Update() 9117 CRuntimeconst CDaoDatabase::classCDaoDatabase 9118 CRuntimeconst CDaoException::classCDaoException 9119 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 9120 CRuntimeconst CDaoRecordset::classCDaoRecordset 9121 CRuntimeconst CDaoRecordView::classCDaoRecordView 9122 CRuntimeconst CDaoTableDef::classCDaoTableDef 9123 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 9124 CRuntimeconst CDatabase::classCDatabase 9125 CRuntimeconst CDBException::classCDBException 9126 CRuntimeconst CLongBinary::classCLongBinary 9127 CRuntimeconst COleDBRecordView::classCOleDBRecordView 9128 CRuntimeconst CRecordset::classCRecordset 9129 CRuntimeconst CRecordView::classCRecordView 9130 AFX_MSGMAP const CDaoRecordView::messageMap 9131 AFX_MSGMAP const COleDBRecordView::messageMap 9132 AFX_MSGMAP const CRecordView::messageMap ================================================ FILE: Bin/i386/mfc_sym/mfc71u.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 unsigned int HashKey(tagVARIANT const &) 258 unsigned int HashKey(wchar_t const *) 259 unsigned int HashKey(char const *) 260 unsigned int HashKey(ATL::CComBSTR) 261 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 264 void SerializeElements(CArchive &,COleVariant *,int) 265 void * operator new[](unsigned int) 266 void operator delete[](void *) 267 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 268 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 269 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 270 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 271 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 272 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 275 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 277 ATL::CStringT > >::CStringT > >(wchar_t,int) 278 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 279 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 280 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 281 ATL::CStringT > >::CStringT > >(char,int) 282 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t const *) 284 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 285 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 287 ATL::CStringT > >::CStringT > >(char const *) 288 ATL::CStringT > >::CStringT > >(char const *,int) 289 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 290 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 291 ATL::CStringT > >::CStringT > >(unsigned char const *) 292 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >() 294 ATL::CStringT > >::CStringT > >(wchar_t,int) 295 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 296 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 298 ATL::CStringT > >::CStringT > >(char,int) 299 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(wchar_t const *) 301 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 302 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 304 ATL::CStringT > >::CStringT > >(char const *) 305 ATL::CStringT > >::CStringT > >(char const *,int) 306 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 307 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 308 ATL::CStringT > >::CStringT > >(unsigned char const *) 309 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >() 311 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 312 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 313 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 314 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 315 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 316 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 317 CArchive::CArchive(CFile *,unsigned int,int,void *) 318 CArchivePropExchange::CArchivePropExchange(CArchive &) 319 CArchiveStream::CArchiveStream(CArchive *) 320 CAsyncMonikerFile::CAsyncMonikerFile() 321 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 322 CAsyncSocket::CAsyncSocket() 323 CBlobProperty::CBlobProperty(void *) 324 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 325 CBrush::CBrush(int,unsigned long) 326 CBrush::CBrush(unsigned long) 327 CBrush::CBrush(CBitmap *) 328 CByteArray::CByteArray() 329 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 330 CClientDC::CClientDC(CWnd *) 331 CCmdTarget::CCmdTarget() 332 CCmdUI::CCmdUI() 333 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 334 CCommandLineInfo::CCommandLineInfo() 335 CConnectionPoint::CConnectionPoint() 336 CControlBar::CControlBar() 337 CControlBarInfo::CControlBarInfo() 338 COleControl::CControlDataSource::CControlDataSource(COleControl *) 339 CControlFrameWnd::CControlFrameWnd(COleControl *) 340 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 341 CDatabase::CDatabase() 342 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 343 CDataExchange::CDataExchange(CWnd *,int) 344 CDataSourceControl::CDataSourceControl(COleControlSite *) 345 CDBException::CDBException(short) 346 CDBVariant::CDBVariant() 347 CDC::CDC() 348 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 349 CDHtmlControlSink::CDHtmlControlSink() 350 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 351 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 352 CDHtmlDialog::CDHtmlDialog() 353 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 354 CDialog::CDialog(unsigned int,CWnd *) 355 CDialog::CDialog(wchar_t const *,CWnd *) 356 CDialog::CDialog() 357 CDialogBar::CDialogBar() 358 CDialogTemplate::CDialogTemplate(void *) 359 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 360 CDocItem::CDocItem() 361 CDockBar::CDockBar(int) 362 CDockContext::CDockContext(CControlBar *) 363 CDockState::CDockState() 364 CDocManager::CDocManager() 365 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 366 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 367 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 368 CDocument::CDocument() 369 CDumpContext::CDumpContext(CFile *) 370 CDWordArray::CDWordArray() 371 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 372 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 373 CEditView::CEditView() 374 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 375 CEnumConnections::CEnumConnections(void const *,unsigned int) 376 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 377 CEnumFormatEtc::CEnumFormatEtc() 378 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 379 CException::CException(int) 380 CException::CException() 381 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 382 CFile::CFile(void *) 383 CFile::CFile(wchar_t const *,unsigned int) 384 CFile::CFile() 385 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long) 386 CFileFind::CFileFind() 387 CFindReplaceDialog::CFindReplaceDialog() 388 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 389 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 390 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 391 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 392 CFontHolder::CFontHolder(IPropertyNotifySink *) 393 CFormView::CFormView(unsigned int) 394 CFormView::CFormView(wchar_t const *) 395 CFrameWnd::CFrameWnd() 396 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 397 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 398 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 399 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 400 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 401 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 402 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 403 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 404 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 405 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 406 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 407 CHtmlEditCtrl::CHtmlEditCtrl() 408 CHtmlEditDoc::CHtmlEditDoc() 409 CHtmlEditView::CHtmlEditView() 410 CHtmlView::CHtmlView() 411 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 412 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 413 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 414 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 415 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 416 CImageList::CImageList() 417 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 418 CInternetException::CInternetException(unsigned long) 419 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 420 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 421 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 422 CLongBinary::CLongBinary() 423 CMapPtrToPtr::CMapPtrToPtr(int) 424 CMapPtrToWord::CMapPtrToWord(int) 425 CMapStringToOb::CMapStringToOb(int) 426 CMapStringToPtr::CMapStringToPtr(int) 427 CMapStringToString::CMapStringToString(int) 428 CMapWordToOb::CMapWordToOb(int) 429 CMapWordToPtr::CMapWordToPtr(int) 430 CMDIChildWnd::CMDIChildWnd() 431 CMDIFrameWnd::CMDIFrameWnd() 432 CMemFile::CMemFile(unsigned int) 433 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 434 CMetaFileDC::CMetaFileDC() 435 CMiniDockFrameWnd::CMiniDockFrameWnd() 436 CMiniFrameWnd::CMiniFrameWnd() 437 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 438 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 439 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 440 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 441 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 442 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 443 CObArray::CObArray() 444 CObList::CObList(int) 445 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 446 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 447 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 448 COleClientItem::COleClientItem(COleDocument *) 449 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 450 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 451 COleControl::COleControl() 452 COleControlContainer::COleControlContainer(CWnd *) 453 COleControlLock::COleControlLock(_GUID const &) 454 COleControlSite::COleControlSite(COleControlContainer *) 455 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 456 COleCurrency::COleCurrency(long,long) 457 COleDataObject::COleDataObject() 458 COleDataSource::COleDataSource() 459 COleDialog::COleDialog(CWnd *) 460 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 461 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 462 COleDispatchDriver::COleDispatchDriver() 463 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 464 COleDocIPFrameWnd::COleDocIPFrameWnd() 465 COleDocObjectItem::COleDocObjectItem(COleDocument *) 466 COleDocument::COleDocument() 467 COleDropSource::COleDropSource() 468 COleDropTarget::COleDropTarget() 469 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 470 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 471 COleIPFrameWnd::COleIPFrameWnd() 472 COleLinkingDoc::COleLinkingDoc() 473 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 474 COleMessageFilter::COleMessageFilter() 475 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 476 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 477 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 478 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 479 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 480 COleResizeBar::COleResizeBar() 481 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 482 COleSafeArray::COleSafeArray(tagVARIANT const &) 483 COleSafeArray::COleSafeArray(COleSafeArray const &) 484 COleSafeArray::COleSafeArray(COleVariant const &) 485 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 486 COleSafeArray::COleSafeArray(tagVARIANT const *) 487 COleServerDoc::COleServerDoc() 488 COleServerItem::COleServerItem(COleServerDoc *,int) 489 COleStreamFile::COleStreamFile(IStream *) 490 COleTemplateServer::COleTemplateServer() 491 COleUILinkInfo::COleUILinkInfo(COleDocument *) 492 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 493 COleVariant::COleVariant(tagVARIANT const &) 494 COleVariant::COleVariant(COleVariant const &) 495 COleVariant::COleVariant(short,unsigned short) 496 COleVariant::COleVariant(long,unsigned short) 497 COleVariant::COleVariant(wchar_t const *,unsigned short) 498 COleVariant::COleVariant(_ITEMIDLIST const *) 499 COleVariant::COleVariant(tagVARIANT const *) 500 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 501 CPaintDC::CPaintDC(CWnd *) 502 CPen::CPen(int,int,unsigned long) 503 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 504 CPictureHolder::CPictureHolder() 505 CPreviewDC::CPreviewDC() 506 CPreviewView::CPreviewView() 507 CPrintDialog::CPrintDialog(tagPDW &) 508 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 509 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 510 CPrintInfo::CPrintInfo() 511 CPrintPreviewState::CPrintPreviewState() 512 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 513 CProperty::CProperty(unsigned long,void * const,unsigned long) 514 CProperty::CProperty() 515 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 516 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 517 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 518 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 519 CPropertyPage::CPropertyPage() 520 CPropertySection::CPropertySection(_GUID) 521 CPropertySection::CPropertySection() 522 CPropertySet::CPropertySet(_GUID) 523 CPropertySet::CPropertySet() 524 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 525 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 526 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 527 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 528 CPropertySheet::CPropertySheet() 529 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 530 CPtrArray::CPtrArray() 531 CPtrList::CPtrList(int) 532 CReBar::CReBar() 533 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 534 CRecordset::CRecordset(CDatabase *) 535 CRecordView::CRecordView(unsigned int) 536 CRecordView::CRecordView(wchar_t const *) 537 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 538 CReObject::CReObject(CRichEditCntrItem *) 539 CReObject::CReObject() 540 CResetPropExchange::CResetPropExchange() 541 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 542 CRichEditDoc::CRichEditDoc() 543 CRichEditView::CRichEditView() 544 CScrollView::CScrollView() 545 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 546 CSharedFile::CSharedFile(unsigned int,unsigned int) 547 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 548 CSingleLock::CSingleLock(CSyncObject *,int) 549 CSocket::CSocket() 550 CSocketFile::CSocketFile(CSocket *,int) 551 CSocketWnd::CSocketWnd() 552 CSplitterWnd::CSplitterWnd() 553 CStatusBar::CStatusBar() 554 CStdioFile::CStdioFile(_iobuf *) 555 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 556 CStdioFile::CStdioFile() 557 CStringArray::CStringArray() 558 CStringList::CStringList(int) 559 CSyncObject::CSyncObject(wchar_t const *) 560 CTestCmdUI::CTestCmdUI() 561 CThreadSlotData::CThreadSlotData() 562 CToolBar::CToolBar() 563 CToolTipCtrl::CToolTipCtrl() 564 CUIntArray::CUIntArray() 565 CView::CView() 566 CWinApp::CWinApp(wchar_t const *) 567 CWindowDC::CWindowDC(CWnd *) 568 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 569 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 570 CWinThread::CWinThread() 571 CWnd::CWnd(HWND__ *) 572 CWnd::CWnd() 573 CWordArray::CWordArray() 574 CPreviewView::PAGE_INFO::PAGE_INFO() 575 ATL::CSimpleStringT::~CSimpleStringT() 576 ATL::CSimpleStringT::~CSimpleStringT() 577 ATL::CStringT > >::~CStringT > >() 578 ATL::CStringT > >::~CStringT > >() 579 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 580 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 581 AFX_MODULE_STATE::~AFX_MODULE_STATE() 582 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 583 CAnimateCtrl::~CAnimateCtrl() 584 CArchive::~CArchive() 585 CAsyncMonikerFile::~CAsyncMonikerFile() 586 CAsyncSocket::~CAsyncSocket() 587 CButton::~CButton() 588 CByteArray::~CByteArray() 589 CClientDC::~CClientDC() 590 CCmdTarget::~CCmdTarget() 591 CComboBox::~CComboBox() 592 CComboBoxEx::~CComboBoxEx() 593 CCommandLineInfo::~CCommandLineInfo() 594 CConnectionPoint::~CConnectionPoint() 595 CControlBar::~CControlBar() 596 CCtrlView::~CCtrlView() 597 CDatabase::~CDatabase() 598 CDataSourceControl::~CDataSourceControl() 599 CDateTimeCtrl::~CDateTimeCtrl() 600 CDBException::~CDBException() 601 CDBVariant::~CDBVariant() 602 CDC::~CDC() 603 CDHtmlControlSink::~CDHtmlControlSink() 604 CDHtmlDialog::~CDHtmlDialog() 605 CDialog::~CDialog() 606 CDialogBar::~CDialogBar() 607 CDialogTemplate::~CDialogTemplate() 608 CDocItem::~CDocItem() 609 CDockBar::~CDockBar() 610 CDockContext::~CDockContext() 611 CDockState::~CDockState() 612 CDocManager::~CDocManager() 613 CDocObjectServer::~CDocObjectServer() 614 CDocObjectServerItem::~CDocObjectServerItem() 615 CDocTemplate::~CDocTemplate() 616 CDocument::~CDocument() 617 CDragListBox::~CDragListBox() 618 CDWordArray::~CDWordArray() 619 CDynLinkLibrary::~CDynLinkLibrary() 620 CEdit::~CEdit() 621 CEditView::~CEditView() 622 CEnumArray::~CEnumArray() 623 CEnumConnections::~CEnumConnections() 624 CEnumConnPoints::~CEnumConnPoints() 625 CEnumFormatEtc::~CEnumFormatEtc() 626 CEnumOleVerb::~CEnumOleVerb() 627 CEnumUnknown::~CEnumUnknown() 628 CEvent::~CEvent() 629 CFile::~CFile() 630 CFileDialog::~CFileDialog() 631 CFileFind::~CFileFind() 632 CFixedAlloc::~CFixedAlloc() 633 CFixedAllocNoSync::~CFixedAllocNoSync() 634 CFontHolder::~CFontHolder() 635 CFrameWnd::~CFrameWnd() 636 CFtpConnection::~CFtpConnection() 637 CFtpFileFind::~CFtpFileFind() 638 CGopherConnection::~CGopherConnection() 639 CGopherFile::~CGopherFile() 640 CGopherFileFind::~CGopherFileFind() 641 CGopherLocator::~CGopherLocator() 642 CHeaderCtrl::~CHeaderCtrl() 643 CHotKeyCtrl::~CHotKeyCtrl() 644 CHtmlControlSite::~CHtmlControlSite() 645 CHtmlEditCtrl::~CHtmlEditCtrl() 646 CHtmlEditDoc::~CHtmlEditDoc() 647 CHtmlEditView::~CHtmlEditView() 648 CHtmlView::~CHtmlView() 649 CHttpConnection::~CHttpConnection() 650 CHttpFile::~CHttpFile() 651 CImageList::~CImageList() 652 CInternetConnection::~CInternetConnection() 653 CInternetException::~CInternetException() 654 CInternetFile::~CInternetFile() 655 CInternetSession::~CInternetSession() 656 CIPAddressCtrl::~CIPAddressCtrl() 657 CListBox::~CListBox() 658 CListCtrl::~CListCtrl() 659 CLongBinary::~CLongBinary() 660 CMapPtrToPtr::~CMapPtrToPtr() 661 CMapPtrToWord::~CMapPtrToWord() 662 CMapStringToOb::~CMapStringToOb() 663 CMapStringToPtr::~CMapStringToPtr() 664 CMapStringToString::~CMapStringToString() 665 CMapWordToOb::~CMapWordToOb() 666 CMapWordToPtr::~CMapWordToPtr() 667 CMemFile::~CMemFile() 668 CMetaFileDC::~CMetaFileDC() 669 CMiniFrameWnd::~CMiniFrameWnd() 670 CMonikerFile::~CMonikerFile() 671 CMonthCalCtrl::~CMonthCalCtrl() 672 CMultiDocTemplate::~CMultiDocTemplate() 673 CMultiLock::~CMultiLock() 674 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 675 CMutex::~CMutex() 676 CObArray::~CObArray() 677 CObList::~CObList() 678 COleBusyDialog::~COleBusyDialog() 679 COleChangeIconDialog::~COleChangeIconDialog() 680 COleChangeSourceDialog::~COleChangeSourceDialog() 681 COleClientItem::~COleClientItem() 682 COleCntrFrameWnd::~COleCntrFrameWnd() 683 COleControl::~COleControl() 684 COleControlContainer::~COleControlContainer() 685 COleControlLock::~COleControlLock() 686 COleControlSite::~COleControlSite() 687 COleControlSiteOrWnd::~COleControlSiteOrWnd() 688 COleConvertDialog::~COleConvertDialog() 689 COleDataSource::~COleDataSource() 690 COleDispatchException::~COleDispatchException() 691 COleDocIPFrameWnd::~COleDocIPFrameWnd() 692 COleDocObjectItem::~COleDocObjectItem() 693 COleDocument::~COleDocument() 694 COleDropTarget::~COleDropTarget() 695 COleFrameHook::~COleFrameHook() 696 COleInsertDialog::~COleInsertDialog() 697 COleIPFrameWnd::~COleIPFrameWnd() 698 COleLinkingDoc::~COleLinkingDoc() 699 COleLinksDialog::~COleLinksDialog() 700 COleMessageFilter::~COleMessageFilter() 701 COleObjectFactory::~COleObjectFactory() 702 COlePasteSpecialDialog::~COlePasteSpecialDialog() 703 COlePropertyPage::~COlePropertyPage() 704 COleResizeBar::~COleResizeBar() 705 COleServerDoc::~COleServerDoc() 706 COleServerItem::~COleServerItem() 707 COleStreamFile::~COleStreamFile() 708 COleUpdateDialog::~COleUpdateDialog() 709 CPaintDC::~CPaintDC() 710 CPictureHolder::~CPictureHolder() 711 CPreviewDC::~CPreviewDC() 712 CPreviewView::~CPreviewView() 713 CPrintInfo::~CPrintInfo() 714 CProcessLocalObject::~CProcessLocalObject() 715 CProgressCtrl::~CProgressCtrl() 716 CPropbagPropExchange::~CPropbagPropExchange() 717 CProperty::~CProperty() 718 CPropertyPage::~CPropertyPage() 719 CPropertySection::~CPropertySection() 720 CPropertySet::~CPropertySet() 721 CPropertySheet::~CPropertySheet() 722 CPtrArray::~CPtrArray() 723 CPtrList::~CPtrList() 724 CRecentFileList::~CRecentFileList() 725 CRecordset::~CRecordset() 726 CRecordView::~CRecordView() 727 CRectTracker::~CRectTracker() 728 CReObject::~CReObject() 729 CRichEditCntrItem::~CRichEditCntrItem() 730 CRichEditCtrl::~CRichEditCtrl() 731 CScrollBar::~CScrollBar() 732 CScrollView::~CScrollView() 733 CSemaphore::~CSemaphore() 734 CSharedFile::~CSharedFile() 735 CSingleDocTemplate::~CSingleDocTemplate() 736 CSliderCtrl::~CSliderCtrl() 737 CSocket::~CSocket() 738 CSocketFile::~CSocketFile() 739 CSpinButtonCtrl::~CSpinButtonCtrl() 740 CSplitterWnd::~CSplitterWnd() 741 CStatic::~CStatic() 742 CStatusBar::~CStatusBar() 743 CStatusBarCtrl::~CStatusBarCtrl() 744 CStdioFile::~CStdioFile() 745 CStringArray::~CStringArray() 746 CStringList::~CStringList() 747 CSyncObject::~CSyncObject() 748 CTabCtrl::~CTabCtrl() 749 CThreadLocalObject::~CThreadLocalObject() 750 CThreadSlotData::~CThreadSlotData() 751 CToolBar::~CToolBar() 752 CToolBarCtrl::~CToolBarCtrl() 753 CToolTipCtrl::~CToolTipCtrl() 754 CTreeCtrl::~CTreeCtrl() 755 CUIntArray::~CUIntArray() 756 CView::~CView() 757 CWinApp::~CWinApp() 758 CWindowDC::~CWindowDC() 759 CWinThread::~CWinThread() 760 CWnd::~CWnd() 761 CWordArray::~CWordArray() 762 void * operator new(unsigned int) 763 void * CNoTrackObject::operator new(unsigned int) 764 void operator delete(void *) 765 void CNoTrackObject::operator delete(void *) 766 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 767 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 768 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 769 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 770 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 771 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 772 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 773 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 774 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 775 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 776 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 777 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 778 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 779 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 780 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 781 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 782 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 783 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 784 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 785 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 786 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 787 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 788 COleCurrency const & COleCurrency::operator=(union tagCY) 789 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 790 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 791 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 792 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 793 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 794 COleVariant const & COleVariant::operator=(tagVARIANT const &) 795 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 796 COleVariant const & COleVariant::operator=(COleVariant const &) 797 COleVariant const & COleVariant::operator=(CByteArray const &) 798 COleVariant const & COleVariant::operator=(CLongBinary const &) 799 COleVariant const & COleVariant::operator=(COleCurrency const &) 800 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 801 COleVariant const & COleVariant::operator=(unsigned char) 802 COleVariant const & COleVariant::operator=(short) 803 COleVariant const & COleVariant::operator=(long) 804 COleVariant const & COleVariant::operator=(float) 805 COleVariant const & COleVariant::operator=(double) 806 COleVariant const & COleVariant::operator=(tagVARIANT const *) 807 COleVariant const & COleVariant::operator=(wchar_t const * const) 808 CArchive & operator>>(CArchive &,CByteArray * &) 809 CArchive & operator>>(CArchive &,CDocItem * &) 810 CArchive & operator>>(CArchive &,CDockState * &) 811 CArchive & operator>>(CArchive &,CDWordArray * &) 812 CArchive & operator>>(CArchive &,CMapStringToOb * &) 813 CArchive & operator>>(CArchive &,CMapStringToString * &) 814 CArchive & operator>>(CArchive &,CMapWordToOb * &) 815 CArchive & operator>>(CArchive &,CObArray * &) 816 CArchive & operator>>(CArchive &,CObList * &) 817 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 818 CArchive & operator>>(CArchive &,CStringArray * &) 819 CArchive & operator>>(CArchive &,CStringList * &) 820 CArchive & operator>>(CArchive &,CWordArray * &) 821 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 822 CArchive & operator>>(CArchive &,COleCurrency &) 823 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 824 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 825 CArchive & operator>>(CArchive &,COleVariant &) 826 CArchive & operator>>(CArchive &,ATL::CTime &) 827 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 828 CArchive & operator<<(CArchive &,ATL::CComBSTR) 829 CArchive & operator<<(CArchive &,COleCurrency) 830 CArchive & operator<<(CArchive &,ATL::COleDateTime) 831 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 832 CArchive & operator<<(CArchive &,COleVariant) 833 CArchive & operator<<(CArchive &,ATL::CTime) 834 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 835 CDumpContext & CDumpContext::operator<<(__int64) 836 CDumpContext & CDumpContext::operator<<(unsigned __int64) 837 CDumpContext & CDumpContext::operator<<(CObject const &) 838 CDumpContext & CDumpContext::operator<<(unsigned char) 839 CDumpContext & CDumpContext::operator<<(unsigned short) 840 CDumpContext & CDumpContext::operator<<(int) 841 CDumpContext & CDumpContext::operator<<(unsigned int) 842 CDumpContext & CDumpContext::operator<<(long) 843 CDumpContext & CDumpContext::operator<<(unsigned long) 844 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 845 CDumpContext & CDumpContext::operator<<(HDC__ *) 846 CDumpContext & CDumpContext::operator<<(HFONT__ *) 847 CDumpContext & CDumpContext::operator<<(HMENU__ *) 848 CDumpContext & CDumpContext::operator<<(HWND__ *) 849 CDumpContext & CDumpContext::operator<<(wchar_t const *) 850 CDumpContext & CDumpContext::operator<<(char const *) 851 CDumpContext & CDumpContext::operator<<(CObject const *) 852 CDumpContext & CDumpContext::operator<<(void const *) 853 int COleSafeArray::operator==(tagSAFEARRAY const &)const 854 int COleSafeArray::operator==(tagVARIANT const &)const 855 int COleSafeArray::operator==(COleSafeArray const &)const 856 int COleSafeArray::operator==(COleVariant const &)const 857 int COleSafeArray::operator==(tagSAFEARRAY const *)const 858 int COleSafeArray::operator==(tagVARIANT const *)const 859 int COleVariant::operator==(tagVARIANT const &)const 860 wchar_t ATL::CSimpleStringT::operator[](int)const 861 char ATL::CSimpleStringT::operator[](int)const 862 void * & CMapPtrToPtr::operator[](void *) 863 unsigned short & CMapPtrToWord::operator[](void *) 864 CObject * & CMapStringToOb::operator[](wchar_t const *) 865 void * & CMapStringToPtr::operator[](wchar_t const *) 866 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 867 CObject * & CMapWordToOb::operator[](unsigned short) 868 void * & CMapWordToPtr::operator[](unsigned short) 869 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 870 ATL::CSimpleStringT::operator wchar_t const *()const 871 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 872 ATL::CSimpleStringT::operator char const *()const 873 ATL::CStringT > >::operator ATL::CSimpleStringT &() 874 ATL::CStringT > >::operator ATL::CSimpleStringT &() 875 COleCurrency COleCurrency::operator*(long)const 876 COleCurrency COleCurrency::operator-(COleCurrency const &)const 877 COleCurrency COleCurrency::operator-()const 878 COleCurrency COleCurrency::operator+(COleCurrency const &)const 879 COleCurrency COleCurrency::operator/(long)const 880 int COleCurrency::operator<(COleCurrency const &)const 881 int COleCurrency::operator<=(COleCurrency const &)const 882 int COleCurrency::operator>(COleCurrency const &)const 883 int COleCurrency::operator>=(COleCurrency const &)const 884 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 885 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 886 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 887 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 888 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 889 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 890 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 891 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 892 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 893 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 894 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 895 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 896 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 897 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 898 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 899 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 900 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 901 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 902 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 903 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 904 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 905 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 906 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 907 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 908 int _AfxDeleteRegKey(wchar_t const *) 909 int _AfxSocketInit(WSAData *) 910 void CArchive::Abort() 911 void CFile::Abort() 912 void CInternetFile::Abort() 913 void CMemFile::Abort() 914 void CMirrorFile::Abort() 915 void COleStreamFile::Abort() 916 void CSocketFile::Abort() 917 void CStdioFile::Abort() 918 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 919 long CCheckListBox::accDoDefaultAction(tagVARIANT) 920 long CWnd::accDoDefaultAction(tagVARIANT) 921 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 922 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 923 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 924 void COleSafeArray::AccessData(void * *) 925 long CWnd::accHitTest(long,long,tagVARIANT *) 926 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 927 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 928 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 929 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 930 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 931 long CWnd::accSelect(long,tagVARIANT) 932 long CWnd::XAccessible::accSelect(long,tagVARIANT) 933 void COleClientItem::Activate(long,CView *,tagMSG *) 934 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 935 void COleDocObjectItem::ActivateAndShow() 936 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 937 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 938 void CDocObjectServer::ActivateDocObject() 939 void COleServerDoc::ActivateDocObject() 940 void CFrameWnd::ActivateFrame(int) 941 void CMDIChildWnd::ActivateFrame(int) 942 int COleServerDoc::ActivateInPlace() 943 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 944 void CSplitterWnd::ActivateNext(int) 945 void CWnd::ActivateTopParent() 946 void CRecentFileList::Add(wchar_t const *) 947 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 948 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 949 int CToolBarCtrl::AddBitmap(int,unsigned int) 950 int CToolBarCtrl::AddBitmap(int,CBitmap *) 951 void COleClientItem::AddCachedData(COleDataSource *) 952 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 953 void CEnumConnections::AddConnection(tagCONNECTDATA *) 954 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 955 void CDocManager::AddDocTemplate(CDocTemplate *) 956 void CWinApp::AddDocTemplate(CDocTemplate *) 957 void CDocTemplate::AddDocument(CDocument *) 958 void CMultiDocTemplate::AddDocument(CDocument *) 959 void CSingleDocTemplate::AddDocument(CDocument *) 960 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 961 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 962 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 963 void COleControl::AddFrameLevelUI() 964 void CFrameWnd::AddFrameWnd() 965 __POSITION * CObList::AddHead(CObject *) 966 void CObList::AddHead(CObList *) 967 __POSITION * CPtrList::AddHead(void *) 968 void CPtrList::AddHead(CPtrList *) 969 void CSimpleList::AddHead(void *) 970 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 971 __POSITION * CStringList::AddHead(wchar_t const *) 972 void CStringList::AddHead(CStringList *) 973 void COleDocument::AddItem(CDocItem *) 974 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 975 void CRecordset::AddNew() 976 void COleServerItem::AddOtherClipboardData(COleDataSource *) 977 void CPropertySheet::AddPage(CPropertyPage *) 978 void CPropertySection::AddProperty(CProperty *) 979 void CPropertySet::AddProperty(_GUID,CProperty *) 980 unsigned long CArchiveStream::AddRef() 981 unsigned long CBlobProperty::AddRef() 982 unsigned long CBrowserControlSite::AddRef() 983 unsigned long CDHtmlControlSink::AddRef() 984 unsigned long CDHtmlElementEventSink::AddRef() 985 unsigned long CDHtmlEventSink::AddRef() 986 unsigned long CInnerUnknown::AddRef() 987 unsigned long COleConnPtContainer::AddRef() 988 unsigned long COleDispatchImpl::AddRef() 989 unsigned long COleUILinkInfo::AddRef() 990 unsigned long CPrintDialogEx::AddRef() 991 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 992 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 993 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 994 CPropertySection * CPropertySet::AddSection(_GUID) 995 void CPropertySet::AddSection(CPropertySection *) 996 void COlePasteSpecialDialog::AddStandardFormats(int) 997 int CToolBarCtrl::AddString(unsigned int) 998 __POSITION * CObList::AddTail(CObject *) 999 void CObList::AddTail(CObList *) 1000 __POSITION * CPtrList::AddTail(void *) 1001 void CPtrList::AddTail(CPtrList *) 1002 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1003 __POSITION * CStringList::AddTail(wchar_t const *) 1004 void CStringList::AddTail(CStringList *) 1005 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1006 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1007 void CWinApp::AddToRecentFileList(wchar_t const *) 1008 void CDocument::AddView(CView *) 1009 void CMetaFileDC::AdjustCP(int) 1010 void CRichEditView::AdjustDialogPosition(CDialog *) 1011 void CRectTracker::AdjustRect(int,tagRECT *) 1012 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1013 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1014 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1015 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1016 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1017 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1018 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1019 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1020 void AfxAbort() 1021 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1022 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1023 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1024 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1025 void AfxCancelModes(HWND__ *) 1026 void AfxCheckError(long) 1027 void AfxClassInit(CRuntime*) 1028 int AfxComparePath(wchar_t const *,wchar_t const *) 1029 int AfxCompareValueByRef(void *,void *,int) 1030 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1031 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1032 void AfxCopyValueByRef(void *,void *,long *,int) 1033 void AfxCoreInitModule() 1034 HDC__ * AfxCreateDC(void *,void *) 1035 int AfxCriticalInit() 1036 int AfxCriticalNewHandler(unsigned int) 1037 void AfxCriticalTerm() 1038 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1039 AUX_DATA afxData 1040 void AfxDeleteObject(void * *) 1041 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1042 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1043 long AfxDllCanUnloadNow() 1044 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1045 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1046 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1047 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1048 void AfxEditviewTerm() 1049 void AfxEnableControlContainer(COccManager *) 1050 int AfxEndDeferRegisterClass(long) 1051 void AfxEndThread(unsigned int,int) 1052 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1053 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1054 void AfxFailMaxChars(CDataExchange *,int) 1055 void AfxFailRadio(CDataExchange *) 1056 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1057 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1058 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1059 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1060 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1061 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1062 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1063 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1064 int AfxFreeLibrary(HINSTANCE__ *) 1065 int AfxFullPath(wchar_t *,wchar_t const *) 1066 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1067 AFX_MODULE_STATE * AfxGetAppModuleState() 1068 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1069 tagMSG * AfxGetCurrentMessage() 1070 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1071 unsigned long AfxGetDllVersion() 1072 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1073 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1074 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1075 void * AfxGetHENV() 1076 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1077 unsigned long AfxGetInternetHandleType(void *) 1078 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1079 AFX_MODULE_STATE * AfxGetModuleState() 1080 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1081 int (__cdecl*AfxGetNewHandler())(unsigned int) 1082 HWND__ * AfxGetParentOwner(HWND__ *) 1083 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1084 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1085 ATL::IAtlStringMgr * AfxGetStringManager() 1086 CWinThread * AfxGetThread() 1087 _AFX_THREAD_STATE * AfxGetThreadState() 1088 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1089 void AfxGlobalFree(void *) 1090 int AfxHelpEnabled() 1091 void AfxHookWindowCreate(CWnd *) 1092 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1093 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1094 void AfxInitLocalData(HINSTANCE__ *) 1095 int AfxInitRichEdit() 1096 int AfxInitRichEdit2() 1097 void AfxInitThread() 1098 int AfxInternalIsIdleMessage(tagMSG *) 1099 int AfxInternalPreTranslateMessage(tagMSG *) 1100 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1101 int AfxInternalPumpMessage() 1102 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1103 int AfxIsDescendant(HWND__ *,HWND__ *) 1104 int AfxIsIdleMessage(tagMSG *) 1105 int AfxIsValidAddress(void const *,unsigned int,int) 1106 int AfxIsValidString(wchar_t const *,int) 1107 int AfxIsValidString(char const *,int) 1108 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1109 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1110 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1111 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1112 int AfxLoadString(unsigned int,char *,unsigned int) 1113 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1114 void AfxLockGlobals(int) 1115 void AfxLockTempMaps() 1116 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1117 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1118 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1119 int AfxOleCanExitApp() 1120 int AfxOleGetUserCtrl() 1121 int AfxOleInit() 1122 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1123 void AfxOleLockApp() 1124 int AfxOleLockControl(_GUID const &) 1125 int AfxOleLockControl(wchar_t const *) 1126 void AfxOleOnReleaseAllObjects() 1127 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1128 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1129 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1130 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1131 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1132 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1133 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1134 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1135 void AfxOleSetUserCtrl(int) 1136 void AfxOleTerm(int) 1137 void AfxOleTermOrFreeLib(int,int) 1138 void AfxOleUnlockAllControls() 1139 void AfxOleUnlockApp() 1140 int AfxOleUnlockControl(_GUID const &) 1141 int AfxOleUnlockControl(wchar_t const *) 1142 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1143 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1144 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1145 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1146 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1147 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1148 void AfxPostQuitMessage(int) 1149 int AfxPreTranslateMessage(tagMSG *) 1150 long AfxProcessWndProcException(CException *,tagMSG const *) 1151 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1152 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1153 int AfxPumpMessage() 1154 unsigned int AfxReadStringLength(CArchive &,int &) 1155 int AfxRegisterClass(tagWNDCLASSW *) 1156 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1157 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1158 void AfxResetMsgCache() 1159 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1160 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1161 void AfxSafeArrayInit(COleSafeArray *) 1162 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1163 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1164 void AfxSetWindowText(HWND__ *,wchar_t const *) 1165 void AfxSocketTerm() 1166 void AfxStoreField(CRecordset &,unsigned int,void *) 1167 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1168 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1169 void AfxTermLocalData(HINSTANCE__ *,int) 1170 void AfxTermThread(HINSTANCE__ *) 1171 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1172 void AfxThrowArchiveException(int,wchar_t const *) 1173 void AfxThrowDBException(short,CDatabase *,void *) 1174 void AfxThrowFileException(int,long,wchar_t const *) 1175 void AfxThrowInternetException(unsigned long,unsigned long) 1176 void AfxThrowInvalidArgException() 1177 void AfxThrowLastCleanup() 1178 void AfxThrowMemoryException() 1179 void AfxThrowNotSupportedException() 1180 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1181 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1182 void AfxThrowOleException(long) 1183 void AfxThrowResourceException() 1184 void AfxThrowUserException() 1185 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1186 void AfxTlsAddRef() 1187 void AfxTlsRelease() 1188 void AfxTrackerTerm() 1189 void AfxTryCleanup() 1190 int AfxUnhookWindowCreate() 1191 void AfxUnlockGlobals(int) 1192 int AfxUnlockTempMaps(int) 1193 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1194 void AfxVariantInit(tagVARIANT *) 1195 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1196 char * AfxW2AHelper(char *,wchar_t const *,int) 1197 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1198 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1199 void AfxWinTerm() 1200 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1201 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1202 void AfxWriteStringLength(CArchive &,unsigned int,int) 1203 void * CFixedAlloc::Alloc() 1204 void * CFixedAllocNoSync::Alloc() 1205 unsigned char * CMemFile::Alloc(unsigned long) 1206 unsigned char * CSharedFile::Alloc(unsigned long) 1207 void CRecordset::AllocAndCacheFieldInfo() 1208 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1209 void CDatabase::AllocConnect(unsigned long) 1210 void COleSafeArray::AllocData() 1211 void CRecordset::AllocDataCache() 1212 void COleSafeArray::AllocDescriptor(unsigned long) 1213 int CControlBar::AllocElements(int,int) 1214 int CStatusBar::AllocElements(int,int) 1215 int CRecordset::AllocHstmt() 1216 void CPropertyPage::AllocPSP(unsigned long) 1217 void CRecordset::AllocRowset() 1218 int CThreadSlotData::AllocSlot() 1219 void CRecordset::AllocStatusArrays() 1220 wchar_t * ATL::CStringT > >::AllocSysString()const 1221 wchar_t * ATL::CStringT > >::AllocSysString()const 1222 void * CProperty::AllocValue(unsigned long) 1223 short COleControl::AmbientAppearance() 1224 unsigned long COleControl::AmbientBackColor() 1225 ATL::CStringT > > COleControl::AmbientDisplayName() 1226 IFontDisp * COleControl::AmbientFont() 1227 unsigned long COleControl::AmbientForeColor() 1228 unsigned long COleControl::AmbientLocaleID() 1229 ATL::CStringT > > COleControl::AmbientScaleUnits() 1230 int COleControl::AmbientShowGrabHandles() 1231 int COleControl::AmbientShowHatching() 1232 short COleControl::AmbientTextAlign() 1233 int COleControl::AmbientUIDead() 1234 int COleControl::AmbientUserMode() 1235 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1236 void ATL::CSimpleStringT::Append(wchar_t const *) 1237 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1238 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1239 void ATL::CSimpleStringT::Append(char const *) 1240 void ATL::CSimpleStringT::Append(char const *,int) 1241 int CByteArray::Append(CByteArray const &) 1242 int CDWordArray::Append(CDWordArray const &) 1243 int CObArray::Append(CObArray const &) 1244 int CPtrArray::Append(CPtrArray const &) 1245 int CStringArray::Append(CStringArray const &) 1246 int CUIntArray::Append(CUIntArray const &) 1247 int CWordArray::Append(CWordArray const &) 1248 void ATL::CSimpleStringT::AppendChar(wchar_t) 1249 void ATL::CSimpleStringT::AppendChar(char) 1250 void CRecordset::AppendFilterAndSortSQL() 1251 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1252 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1253 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1254 void ATL::CStringT > >::AppendFormat(char const *,...) 1255 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1256 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1257 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1258 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1259 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1260 long COlePropertyPage::XPropertyPage::Apply() 1261 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1262 int COleDocument::ApplyPrintDevice(tagPDW const *) 1263 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1264 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1265 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1266 int CAsyncSocket::AsyncSelect(long) 1267 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1268 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1269 int CAsyncSocket::Attach(unsigned int,long) 1270 int CDC::Attach(HDC__ *) 1271 int CGdiObject::Attach(void *) 1272 int CImageList::Attach(_IMAGELIST *) 1273 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1274 int CMenu::Attach(HMENU__ *) 1275 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1276 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1277 void COleDataObject::Attach(IDataObject *,int) 1278 void COleSafeArray::Attach(tagVARIANT &) 1279 void COleStreamFile::Attach(IStream *) 1280 void COleVariant::Attach(tagVARIANT &) 1281 int CWnd::Attach(HWND__ *) 1282 int COleDataObject::AttachClipboard() 1283 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1284 void CWnd::AttachControlSite(CHandleMap *) 1285 void CWnd::AttachControlSite(CWnd *,unsigned int) 1286 void COleClientItem::AttachDataObject(COleDataObject &)const 1287 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1288 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1289 CPrintDialog * CPrintDialog::AttachOnSetup() 1290 void COleControlSite::AttachWindow() 1291 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1292 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1293 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1294 void COleMessageFilter::BeginBusyState() 1295 int CDragListBox::BeginDrag(CPoint) 1296 void COleDataObject::BeginEnumFormats() 1297 void CFrameWnd::BeginModalState() 1298 int CDatabase::BeginTrans() 1299 void CCmdTarget::BeginWaitCursor() 1300 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1301 void CDataSourceControl::BindColumns() 1302 void COccManager::BindControls(CWnd *) 1303 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1304 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1305 void CRecordset::BindFieldsForUpdate() 1306 unsigned int CRecordset::BindFieldsToColumns() 1307 void CDatabase::BindParameters(void *) 1308 unsigned int CRecordset::BindParams(void *) 1309 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1310 void CDataSourceControl::BindProp(COleControlSite *,int) 1311 void COleControlSite::BindProperty(long,CWnd *) 1312 void CWnd::BindProperty(long,CWnd *) 1313 void COleControl::BoundPropertyChanged(long) 1314 int COleControl::BoundPropertyRequestEdit(long) 1315 void CFrameWnd::BringToTop(int) 1316 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1317 void CDBException::BuildErrorString(CDatabase *,void *,int) 1318 void CPropertySheet::BuildPropPageArray() 1319 void CRecordset::BuildSelectSQL() 1320 int COleControl::BuildSharedMenu() 1321 int COleDocIPFrameWnd::BuildSharedMenu() 1322 int COleIPFrameWnd::BuildSharedMenu() 1323 void CRecordset::BuildSQL(wchar_t const *) 1324 void CRecordset::BuildUpdateSQL() 1325 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1326 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1327 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1328 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1329 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1330 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1331 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1332 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1333 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1334 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1335 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1336 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1337 CSize CControlBar::CalcFixedLayout(int,int) 1338 CSize CDialogBar::CalcFixedLayout(int,int) 1339 CSize CDockBar::CalcFixedLayout(int,int) 1340 CSize CReBar::CalcFixedLayout(int,int) 1341 CSize CStatusBar::CalcFixedLayout(int,int) 1342 CSize CToolBar::CalcFixedLayout(int,int) 1343 void CControlBar::CalcInsideRect(CRect &,int)const 1344 void CStatusBar::CalcInsideRect(CRect &,int)const 1345 CSize CToolBar::CalcLayout(unsigned long,int) 1346 int CCheckListBox::CalcMinimumItemHeight() 1347 CSize CPreviewView::CalcPageDisplaySize() 1348 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1349 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1350 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1351 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1352 void CView::CalcWindowRect(tagRECT *,unsigned int) 1353 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1354 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1355 int CDHtmlDialog::CanAccessExternal() 1356 int COleClientItem::CanActivate() 1357 int CRichEditCntrItem::CanActivate() 1358 int CSplitterWnd::CanActivateNext(int) 1359 int CRecordset::CanBookmark()const 1360 void CDatabase::Cancel() 1361 void CRecordset::Cancel() 1362 void CSocket::CancelBlockingCall() 1363 void CDragListBox::CancelDrag(CPoint) 1364 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1365 long COleUILinkInfo::CancelLink(unsigned long) 1366 void CDockContext::CancelLoop() 1367 void CPropertyPage::CancelToClose() 1368 void CWnd::CancelToolTips(int) 1369 void CRecordset::CancelUpdate() 1370 int CDocument::CanCloseFrame(CFrameWnd *) 1371 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1372 int COleClientItem::CanCreateFromData(COleDataObject const *) 1373 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1374 unsigned long CDockContext::CanDock() 1375 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1376 int CFrameWnd::CanEnterHelpMode() 1377 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1378 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1379 int COleClientItem::CanPaste() 1380 int CRichEditCtrl::CanPaste(unsigned int)const 1381 int CRichEditView::CanPaste()const 1382 int COleClientItem::CanPasteLink() 1383 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1384 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1385 void CScrollView::CenterOnPoint(CPoint) 1386 void CWnd::CenterWindow(CWnd *) 1387 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1388 int CListBox::CharToItem(unsigned int,unsigned int) 1389 void ATL::CStringT > >::CharToOemA() 1390 int CDatabase::Check(short)const 1391 int CRecordset::Check(short)const 1392 int CDialog::CheckAutoCenter() 1393 int CWnd::CheckAutoCenter() 1394 void CArchive::CheckCount() 1395 void COleControlContainer::CheckDlgButton(int,unsigned int) 1396 void CWnd::CheckDlgButton(int,unsigned int) 1397 int CCheckListBox::CheckFromPoint(CPoint,int &) 1398 void COleClientItem::CheckGeneral(long) 1399 int CDatabase::CheckHstmt(short,void *)const 1400 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1401 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1402 void COleControlContainer::CheckRadioButton(int,int,int) 1403 void CWnd::CheckRadioButton(int,int,int) 1404 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1405 void CRecordset::CheckRowsetError(short) 1406 void CScrollView::CheckScrollBars(int &,int &)const 1407 void CPropertyPage::Cleanup() 1408 void COlePropertyPage::CleanupObjectArray() 1409 void CDBVariant::Clear() 1410 void CDockState::Clear() 1411 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1412 void CRecordset::ClearFieldStatus() 1413 void CRecordset::ClearNullFieldStatus(unsigned long) 1414 void CRecordset::ClearNullParamStatus(unsigned long) 1415 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1416 void CWnd::ClientToScreen(tagRECT *)const 1417 int COleControl::ClipCaretRect(tagRECT *) 1418 void CPreviewDC::ClipToPage() 1419 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1420 long CArchiveStream::Clone(IStream * *) 1421 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1422 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1423 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1424 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1425 void CArchive::Close() 1426 void CAsyncMonikerFile::Close() 1427 void CAsyncSocket::Close() 1428 void CCachedDataPathProperty::Close() 1429 void CDatabase::Close() 1430 void CFile::Close() 1431 void CFileFind::Close() 1432 void CInternetConnection::Close() 1433 void CInternetFile::Close() 1434 void CInternetSession::Close() 1435 void CMemFile::Close() 1436 void CMirrorFile::Close() 1437 void CMonikerFile::Close() 1438 void COleClientItem::Close(enum tagOLECLOSE) 1439 void COleStreamFile::Close() 1440 void CRecordset::Close() 1441 void CSocket::Close() 1442 void CSocketFile::Close() 1443 void CStdioFile::Close() 1444 long CDocObjectServer::XOleObject::Close(unsigned long) 1445 long COleControl::XOleObject::Close(unsigned long) 1446 long COleServerDoc::XOleObject::Close(unsigned long) 1447 long COleServerItem::XOleObject::Close(unsigned long) 1448 void CDocManager::CloseAllDocuments(int) 1449 void CDocTemplate::CloseAllDocuments(int) 1450 void CWinApp::CloseAllDocuments(int) 1451 void CFileFind::CloseContext() 1452 void CFtpFileFind::CloseContext() 1453 void CGopherFileFind::CloseContext() 1454 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1455 int ATL::CStringT > >::Collate(wchar_t const *)const 1456 int ATL::CStringT > >::Collate(char const *)const 1457 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 1458 int ATL::CStringT > >::CollateNoCase(char const *)const 1459 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1460 int CStatusBar::CommandToIndex(unsigned int)const 1461 int CToolBar::CommandToIndex(unsigned int)const 1462 long CArchiveStream::Commit(unsigned long) 1463 void COleClientItem::CommitItem(int) 1464 void COleDocument::CommitItems(int,IStorage *) 1465 int CDatabase::CommitTrans() 1466 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 1467 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 1468 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1469 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1470 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1471 void CWinThread::CommonConstruct() 1472 int ATL::CStringT > >::Compare(wchar_t const *)const 1473 int ATL::CStringT > >::Compare(char const *)const 1474 int CComboBox::CompareItem(tagCOMPAREITEM*) 1475 int CListBox::CompareItem(tagCOMPAREITEM*) 1476 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 1477 int ATL::CStringT > >::CompareNoCase(char const *)const 1478 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 1479 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 1480 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 1481 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 1482 int CDatabase::Connect(unsigned long) 1483 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1484 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1485 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1486 int CSocket::ConnectHelper(sockaddr const *,int) 1487 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1488 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1489 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1490 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1491 void COleServerDoc::ConnectView(CWnd *,CView *) 1492 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1493 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1494 void CPropertyPage::Construct(unsigned int,unsigned int) 1495 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1496 void CPropertyPage::Construct(wchar_t const *,unsigned int) 1497 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1498 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1499 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1500 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 1501 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1502 void CRectTracker::Construct() 1503 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1504 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1505 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1506 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1507 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1508 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1509 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1510 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1511 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1512 int CPropertySheet::ContinueModal() 1513 int CWnd::ContinueModal() 1514 void COleControl::ControlInfoChanged() 1515 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1516 int COleClientItem::ConvertTo(_GUID const &) 1517 int CRichEditCntrItem::ConvertTo(_GUID const &) 1518 void CByteArray::Copy(CByteArray const &) 1519 void CDWordArray::Copy(CDWordArray const &) 1520 void CObArray::Copy(CObArray const &) 1521 void COleSafeArray::Copy(tagSAFEARRAY * *) 1522 void CPtrArray::Copy(CPtrArray const &) 1523 void CStringArray::Copy(CStringArray const &) 1524 void CUIntArray::Copy(CUIntArray const &) 1525 void CWordArray::Copy(CWordArray const &) 1526 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 1527 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 1528 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 1529 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 1530 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1531 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1532 void COleClientItem::CopyToClipboard(int) 1533 void COleServerItem::CopyToClipboard(int) 1534 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1535 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 1536 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1537 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1538 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1539 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1540 int CControlFrameWnd::Create(wchar_t const *) 1541 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1542 int CDialog::Create(wchar_t const *,CWnd *) 1543 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 1544 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1545 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1546 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 1547 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1548 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 1549 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1550 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1551 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1552 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1553 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1554 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1555 int CImageList::Create(int,int,unsigned int,int,int) 1556 int CImageList::Create(unsigned int,int,int,unsigned long) 1557 int CImageList::Create(CImageList *) 1558 int CImageList::Create(wchar_t const *,int,int,unsigned long) 1559 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1560 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1561 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1562 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1563 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1564 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1565 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1566 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1567 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1568 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1569 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1570 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1571 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1572 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1573 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1574 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1575 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1576 int CReflectorWnd::Create(CRect const &,HWND__ *) 1577 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1578 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1579 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1580 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1581 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1582 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1583 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1584 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1585 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1586 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1587 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1588 int CToolTipCtrl::Create(CWnd *,unsigned long) 1589 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1590 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1591 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1592 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1593 IBindHost * CMonikerFile::CreateBindHost() 1594 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1595 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 1596 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1597 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1598 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1599 void CConnectionPoint::CreateConnectionArray() 1600 COleControlContainer * COccManager::CreateContainer(CWnd *) 1601 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1602 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1603 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1604 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1605 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1606 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1607 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1608 int CWnd::CreateControlContainer(COleControlContainer * *) 1609 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1610 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1611 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1612 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1613 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1614 int CFtpConnection::CreateDirectoryW(wchar_t const *) 1615 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1616 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 1617 int CWnd::CreateDlg(wchar_t const *,CWnd *) 1618 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1619 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1620 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 1622 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1623 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1624 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1625 int CPictureHolder::CreateEmpty() 1626 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1627 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1628 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1629 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1630 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1631 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1632 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1633 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1634 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1635 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1636 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1637 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1638 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1639 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1640 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1641 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1642 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1643 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1644 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1645 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1646 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1647 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1648 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1649 CControlFrameWnd * COleControl::CreateFrameWindow() 1650 int CPictureHolder::CreateFromBitmap(unsigned int) 1651 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1652 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1653 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1654 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1655 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1656 int CPictureHolder::CreateFromIcon(unsigned int) 1657 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1658 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1659 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1660 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1661 int CDialog::CreateIndirect(void *,CWnd *) 1662 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1663 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1664 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1665 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1666 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1667 int COleInsertDialog::CreateItem(COleClientItem *) 1668 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1669 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1670 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1671 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1672 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 1673 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 1674 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 1675 int COleStreamFile::CreateMemoryStream(CFileException *) 1676 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1677 CDocument * CDocTemplate::CreateNewDocument() 1678 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1679 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1680 CObject * CByteArray::CreateObject() 1681 CObject * CDC::CreateObject() 1682 CObject * CDocItem::CreateObject() 1683 CObject * CDockState::CreateObject() 1684 CObject * CDWordArray::CreateObject() 1685 CObject * CEditView::CreateObject() 1686 CObject * CFrameWnd::CreateObject() 1687 CObject * CGdiObject::CreateObject() 1688 CObject * CHtmlEditView::CreateObject() 1689 CObject * CHtmlView::CreateObject() 1690 CObject * CImageList::CreateObject() 1691 CObject * CListView::CreateObject() 1692 CObject * CMapStringToOb::CreateObject() 1693 CObject * CMapStringToString::CreateObject() 1694 CObject * CMapWordToOb::CreateObject() 1695 CObject * CMDIChildWnd::CreateObject() 1696 CObject * CMDIFrameWnd::CreateObject() 1697 CObject * CMenu::CreateObject() 1698 CObject * CMiniDockFrameWnd::CreateObject() 1699 CObject * CMiniFrameWnd::CreateObject() 1700 CObject * CObArray::CreateObject() 1701 CObject * CObList::CreateObject() 1702 CObject * COleDocIPFrameWnd::CreateObject() 1703 CObject * COleIPFrameWnd::CreateObject() 1704 CObject * CPreviewView::CreateObject() 1705 CObject * CRichEditCntrItem::CreateObject() 1706 CObject * CRichEditView::CreateObject() 1707 CObject * CRuntimeClass::CreateObject() 1708 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1709 CObject * CRuntimeClass::CreateObject(char const *) 1710 CObject * CStringArray::CreateObject() 1711 CObject * CStringList::CreateObject() 1712 CObject * CTreeView::CreateObject() 1713 CObject * CWnd::CreateObject() 1714 CObject * CWordArray::CreateObject() 1715 void COleControlContainer::CreateOleFont(CFont *) 1716 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1717 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1718 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1719 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 1720 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 1721 HDC__ * CPageSetupDialog::CreatePrinterDC() 1722 HDC__ * CPrintDialog::CreatePrinterDC() 1723 HDC__ * CPrintDialogEx::CreatePrinterDC() 1724 int CWinApp::CreatePrinterDC(CDC &) 1725 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1726 COleControlSite * COccManager::CreateSite(COleControlContainer *) 1727 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1728 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1729 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1730 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 1731 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1732 void COleControl::CreateTracker(int,int) 1733 void COleControl::CreateTracker(int,int,tagRECT const *) 1734 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1735 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1736 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1737 void COleControl::CreateWindowForSubclassedControl() 1738 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1739 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1740 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1741 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1742 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 1743 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 1744 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 1745 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 1746 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 1747 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 1748 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 1749 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 1750 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 1751 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 1752 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 1753 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 1754 void DDP_PostProcessing(CDataExchange *) 1755 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 1756 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 1757 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 1758 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 1759 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 1760 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 1761 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 1762 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 1763 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 1764 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 1765 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1766 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1767 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1768 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1769 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1770 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1771 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1772 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1773 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1774 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1775 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1776 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1777 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1778 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1779 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1780 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1781 void DDX_CBIndex(CDataExchange *,int,int &) 1782 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1783 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1784 void DDX_Check(CDataExchange *,int,int &) 1785 void DDX_Control(CDataExchange *,int,CWnd &) 1786 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1787 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1788 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1789 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1790 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1791 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1792 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 1793 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 1794 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 1795 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 1796 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 1797 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 1798 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 1799 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 1800 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 1801 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 1802 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 1803 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 1804 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 1805 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 1806 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 1807 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 1808 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 1809 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 1810 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 1811 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 1812 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 1813 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 1814 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 1815 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 1816 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 1817 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 1818 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 1819 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1820 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 1821 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1822 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1823 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1824 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1825 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1826 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1827 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1828 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1829 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1830 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1831 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1832 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1833 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 1834 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 1835 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 1836 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 1837 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 1838 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1839 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 1840 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 1841 void DDX_LBIndex(CDataExchange *,int,int &) 1842 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 1843 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1844 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 1845 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 1846 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 1847 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 1848 void DDX_OCBool(CDataExchange *,int,long,int &) 1849 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 1850 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 1851 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 1852 void DDX_OCFloat(CDataExchange *,int,long,float &) 1853 void DDX_OCFloat(CDataExchange *,int,long,double &) 1854 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 1855 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 1856 void DDX_OCInt(CDataExchange *,int,long,int &) 1857 void DDX_OCInt(CDataExchange *,int,long,long &) 1858 void DDX_OCIntRO(CDataExchange *,int,long,int &) 1859 void DDX_OCIntRO(CDataExchange *,int,long,long &) 1860 void DDX_OCShort(CDataExchange *,int,long,short &) 1861 void DDX_OCShortRO(CDataExchange *,int,long,short &) 1862 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 1863 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 1864 void DDX_Radio(CDataExchange *,int,int &) 1865 void DDX_Scroll(CDataExchange *,int,int &) 1866 void DDX_Slider(CDataExchange *,int,int &) 1867 void DDX_Text(CDataExchange *,int,__int64 &) 1868 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 1869 void DDX_Text(CDataExchange *,int,unsigned char &) 1870 void DDX_Text(CDataExchange *,int,short &) 1871 void DDX_Text(CDataExchange *,int,int &) 1872 void DDX_Text(CDataExchange *,int,unsigned int &) 1873 void DDX_Text(CDataExchange *,int,long &) 1874 void DDX_Text(CDataExchange *,int,unsigned long &) 1875 void DDX_Text(CDataExchange *,int,float &) 1876 void DDX_Text(CDataExchange *,int,double &) 1877 void DDX_Text(CDataExchange *,int,_FILETIME &) 1878 void DDX_Text(CDataExchange *,int,_GUID &) 1879 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 1880 void DDX_Text(CDataExchange *,int,tagDBDATE &) 1881 void DDX_Text(CDataExchange *,int,tagDBTIME &) 1882 void DDX_Text(CDataExchange *,int,tagDEC &) 1883 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 1884 void DDX_Text(CDataExchange *,int,COleCurrency &) 1885 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 1886 void DDX_Text(CDataExchange *,int,wchar_t *,int) 1887 void COleClientItem::Deactivate() 1888 long COlePropertyPage::XPropertyPage::Deactivate() 1889 int COleServerDoc::DeactivateAndUndo() 1890 long COleClientItem::XOleIPSite::DeactivateAndUndo() 1891 long COleControlSite::XOleIPSite::DeactivateAndUndo() 1892 void COleClientItem::DeactivateUI() 1893 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 1894 long CWnd::Default() 1895 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 1896 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 1897 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 1898 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 1899 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 1900 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 1901 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 1902 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 1903 void CControlBar::DelayShow(int) 1904 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1905 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1906 int ATL::CStringT > >::Delete(int,int) 1907 int ATL::CStringT > >::Delete(int,int) 1908 void CException::Delete() 1909 void COleClientItem::Delete(int) 1910 void CRecordset::Delete() 1911 void CWinThread::Delete() 1912 void CSplitterWnd::DeleteColumn(int) 1913 void CDocument::DeleteContents() 1914 void CEditView::DeleteContents() 1915 void CHtmlEditDoc::DeleteContents() 1916 void COleDocument::DeleteContents() 1917 void COleServerDoc::DeleteContents() 1918 void CRichEditDoc::DeleteContents() 1919 void CRichEditView::DeleteContents() 1920 int CDC::DeleteDC() 1921 int CImageList::DeleteImageList() 1922 void CComboBox::DeleteItem(tagDELETEITEM*) 1923 int CComboBoxEx::DeleteItem(int) 1924 void CListBox::DeleteItem(tagDELETEITEM*) 1925 int CGdiObject::DeleteObject() 1926 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 1927 void CSplitterWnd::DeleteRow(int) 1928 void CHandleMap::DeleteTemp() 1929 void CDC::DeleteTempMap() 1930 void CGdiObject::DeleteTempMap() 1931 void CImageList::DeleteTempMap() 1932 void CMenu::DeleteTempMap() 1933 void CWnd::DeleteTempMap() 1934 void CRichEditDoc::DeleteUnmarkedItems()const 1935 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1936 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1937 void CSplitterWnd::DeleteView(int,int) 1938 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 1939 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1940 void COleSafeArray::Destroy() 1941 int COleControlSite::DestroyControl() 1942 void COleSafeArray::DestroyData() 1943 void COleSafeArray::DestroyDescriptor() 1944 void CFrameWnd::DestroyDockBars() 1945 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 1946 int CMenu::DestroyMenu() 1947 void CDHtmlDialog::DestroyModeless() 1948 void COleControl::DestroySharedMenu() 1949 void COleDocIPFrameWnd::DestroySharedMenu() 1950 void COleIPFrameWnd::DestroySharedMenu() 1951 int CToolTipCtrl::DestroyToolTipCtrl() 1952 void COleControl::DestroyTracker() 1953 int CControlBar::DestroyWindow() 1954 int CMDIChildWnd::DestroyWindow() 1955 int CWnd::DestroyWindow() 1956 unsigned int CAsyncSocket::Detach() 1957 HDC__ * CDC::Detach() 1958 void * CDialogTemplate::Detach() 1959 void * CGdiObject::Detach() 1960 _IMAGELIST * CImageList::Detach() 1961 unsigned char * CMemFile::Detach() 1962 HMENU__ * CMenu::Detach() 1963 int CMonikerFile::Detach(CFileException *) 1964 IDataObject * COleDataObject::Detach() 1965 tagVARIANT COleSafeArray::Detach() 1966 IStream * COleStreamFile::Detach() 1967 tagVARIANT COleVariant::Detach() 1968 void * CSharedFile::Detach() 1969 HDC__ * CWindowlessDC::Detach() 1970 HWND__ * CWnd::Detach() 1971 IDispatch * COleDispatchDriver::DetachDispatch() 1972 void CAsyncSocket::DetachHandle(unsigned int,int) 1973 void COleControlSite::DetachWindow() 1974 void CWinApp::DevModeChange(wchar_t *) 1975 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1976 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1977 int COleServerDoc::DiscardUndoState() 1978 long COleClientItem::XOleIPSite::DiscardUndoState() 1979 long COleControlSite::XOleIPSite::DiscardUndoState() 1980 void COleDispatchImpl::Disconnect() 1981 void CDHtmlDialog::DisconnectDHtmlElementEvents() 1982 void CDHtmlDialog::DisconnectDHtmlEvents() 1983 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 1984 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 1985 void CDocument::DisconnectViews() 1986 void CWinThread::DispatchThreadMessage(tagMSG *) 1987 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1988 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 1989 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 1990 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 1991 void CAsyncSocket::DoCallBack(unsigned int,long) 1992 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 1993 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 1994 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 1995 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 1996 void COleControl::DoClick() 1997 int COleFrameHook::DoContextSensitiveHelp(int) 1998 int COleConvertDialog::DoConvert(COleClientItem *) 1999 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2000 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2001 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2002 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2003 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2004 int COleFrameHook::DoEnableModeless(int) 2005 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2006 void CRecordset::DoFieldExchange(CFieldExchange *) 2007 int CDocument::DoFileSave() 2008 int CSplitterWnd::DoKeyboardSplit() 2009 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2010 int CColorDialog::DoModal() 2011 int CDialog::DoModal() 2012 int CFileDialog::DoModal() 2013 int CFontDialog::DoModal() 2014 int COleBusyDialog::DoModal() 2015 int COleChangeIconDialog::DoModal() 2016 int COleChangeSourceDialog::DoModal() 2017 int COleConvertDialog::DoModal() 2018 int COleInsertDialog::DoModal(unsigned long) 2019 int COleInsertDialog::DoModal() 2020 int COleLinksDialog::DoModal() 2021 int COlePasteSpecialDialog::DoModal() 2022 int COlePropertiesDialog::DoModal() 2023 int COleUpdateDialog::DoModal() 2024 int CPageSetupDialog::DoModal() 2025 int CPrintDialog::DoModal() 2026 int CPrintDialogEx::DoModal() 2027 int CPropertySheet::DoModal() 2028 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2029 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2030 void CControlBar::DoPaint(CDC *) 2031 void CDockBar::DoPaint(CDC *) 2032 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2033 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2034 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2035 int CView::DoPreparePrinting(CPrintInfo *) 2036 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2037 int CWinApp::DoPrintDialog(CPrintDialog *) 2038 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2039 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2040 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2041 void COleControl::DoPropExchange(CPropExchange *) 2042 int CDocument::DoSave(wchar_t const *,int) 2043 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2044 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2045 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2046 int CCmdUI::DoUpdate(CCmdTarget *,int) 2047 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2048 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2049 long COleControlSite::DoVerb(long,tagMSG *) 2050 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2051 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2052 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2053 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2054 void CWinApp::DoWaitCursor(int) 2055 void CPreviewView::DoZoom(unsigned int,CPoint) 2056 void CDC::DPtoHIMETRIC(tagSIZE *)const 2057 void CDC::DPtoLP(tagSIZE *)const 2058 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2059 unsigned int CDragListBox::Dragging(CPoint) 2060 long COleDropTarget::XDropTarget::DragLeave() 2061 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2062 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2063 void CRectTracker::Draw(CDC *)const 2064 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2065 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2066 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2067 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2068 void CControlBar::DrawBorders(CDC *,CRect &) 2069 void COleControl::DrawContent(CDC *,CRect &) 2070 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2071 void CDockContext::DrawFocusRect(int) 2072 void CControlBar::DrawGripper(CDC *,CRect const &) 2073 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2074 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2075 void CDragListBox::DrawInsert(int) 2076 void CBitmapButton::DrawItem(tagDRAWITEM*) 2077 void CButton::DrawItem(tagDRAWITEM*) 2078 void CCheckListBox::DrawItem(tagDRAWITEM*) 2079 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2080 void CComboBox::DrawItem(tagDRAWITEM*) 2081 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2082 void CListBox::DrawItem(tagDRAWITEM*) 2083 void CListCtrl::DrawItem(tagDRAWITEM*) 2084 void CListView::DrawItem(tagDRAWITEM*) 2085 void CMenu::DrawItem(tagDRAWITEM*) 2086 void CStatic::DrawItem(tagDRAWITEM*) 2087 void CStatusBar::DrawItem(tagDRAWITEM*) 2088 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2089 void CTabCtrl::DrawItem(tagDRAWITEM*) 2090 void COleControl::DrawMetafile(CDC *,CRect &) 2091 void CDragListBox::DrawSingle(int) 2092 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2093 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2094 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2095 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2096 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2097 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2098 void CDragListBox::Dropped(int,CPoint) 2099 CDumpContext & CDumpContext::DumpAsHex(__int64) 2100 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2101 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2102 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2103 CDumpContext & CDumpContext::DumpAsHex(int) 2104 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2105 CDumpContext & CDumpContext::DumpAsHex(long) 2106 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2107 long COleControl::XDataObject::DUnadvise(unsigned long) 2108 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2109 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2110 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2111 CFile * CFile::Duplicate()const 2112 CFile * CInternetFile::Duplicate()const 2113 CFile * CMemFile::Duplicate()const 2114 CFile * COleStreamFile::Duplicate()const 2115 CFile * CSocketFile::Duplicate()const 2116 CFile * CStdioFile::Duplicate()const 2117 unsigned long const CEditView::dwStyleDefault 2118 void CRecordset::Edit() 2119 long COlePropertyPage::XPropertyPage::EditProperty(long) 2120 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2121 void ATL::CSimpleStringT::Empty() 2122 void ATL::CSimpleStringT::Empty() 2123 void CDBException::Empty() 2124 void COleDataSource::Empty() 2125 void CCheckListBox::Enable(int,int) 2126 void CCmdUI::Enable(int) 2127 void COleCmdUI::Enable(int) 2128 void CStatusCmdUI::Enable(int) 2129 void CTestCmdUI::Enable(int) 2130 void CToolCmdUI::Enable(int) 2131 void CCmdTarget::EnableAggregation() 2132 void CCmdTarget::EnableAutomation() 2133 void CRecordset::EnableBookmarks() 2134 void CCmdTarget::EnableConnections() 2135 void CControlBar::EnableDocking(unsigned long) 2136 void CFrameWnd::EnableDocking(unsigned long) 2137 void COleControlSite::EnableDSC() 2138 long CBrowserControlSite::EnableModeless(int) 2139 long CDHtmlDialog::EnableModeless(int) 2140 void CWinApp::EnableModeless(int) 2141 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2142 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2143 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2144 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2145 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2146 void CWnd::EnableScrollBarCtrl(int,int) 2147 void CWinApp::EnableShellOpen() 2148 void COleControl::EnableSimpleFrame() 2149 void CPropertySheet::EnableStackedTabs(int) 2150 int CInternetSession::EnableStatusCallback(int) 2151 int CWnd::EnableToolTips(int) 2152 int CWnd::EnableTrackingToolTips(int) 2153 void CCmdTarget::EnableTypeLib() 2154 int COleControlSite::EnableWindow(int) 2155 int CWnd::EnableWindow(int) 2156 void COleMessageFilter::EndBusyState() 2157 void CAsyncMonikerFile::EndCallbacks() 2158 long COleLinkingDoc::EndDeferErrors(long) 2159 void CDialog::EndDialog(int) 2160 void CPropertyPage::EndDialog(int) 2161 void CPropertySheet::EndDialog(int) 2162 void CDockContext::EndDrag() 2163 void CWnd::EndModalLoop(int) 2164 void CFrameWnd::EndModalState() 2165 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2166 void CDockContext::EndResize() 2167 void CCmdTarget::EndWaitCursor() 2168 void COleDataObject::EnsureClipboardObject() 2169 long CWnd::EnsureStdObj() 2170 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2171 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2172 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2173 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2174 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2175 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2176 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2177 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2178 int COlePropertyPage::EnumControls(HWND__ *,long) 2179 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2180 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2181 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2182 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2183 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2184 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2185 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2186 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2187 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2188 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2189 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2190 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2191 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2192 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2193 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2194 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2195 void CControlBar::EraseNonClient() 2196 int CFileException::ErrnoToException(int) 2197 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2198 int CMetaFileDC::Escape(int,int,char const *,void *) 2199 int CPreviewDC::Escape(int,int,char const *,void *) 2200 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2201 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2202 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2203 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2204 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2205 int COleControl::ExchangeExtent(CPropExchange *) 2206 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2207 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2208 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2209 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2210 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2211 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2212 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2213 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2214 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2215 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2216 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2217 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2218 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2219 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2220 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2221 void COleControl::ExchangeStockProps(CPropExchange *) 2222 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2223 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2224 int CDC::ExcludeClipRect(int,int,int,int) 2225 int CDC::ExcludeClipRect(tagRECT const *) 2226 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2227 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2228 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2229 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2230 int CHtmlEditView::ExecHandler(unsigned int) 2231 int CWnd::ExecuteDlgInit(void *) 2232 int CWnd::ExecuteDlgInit(wchar_t const *) 2233 void CRecordset::ExecuteSetPosUpdate() 2234 void CDatabase::ExecuteSQL(wchar_t const *) 2235 void CRecordset::ExecuteUpdateSQL() 2236 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2237 void CFrameWnd::ExitHelpMode() 2238 int COleControlModule::ExitInstance() 2239 int CWinApp::ExitInstance() 2240 int CWinThread::ExitInstance() 2241 unsigned long CCmdTarget::ExternalAddRef() 2242 void CCmdTarget::ExternalDisconnect() 2243 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2244 unsigned long CCmdTarget::ExternalRelease() 2245 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2246 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2247 void CDataExchange::Fail() 2248 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2249 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2250 void CArchive::FillBuffer(unsigned int) 2251 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 2252 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2253 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2254 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2255 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2256 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2257 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2258 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2259 void CWnd::FilterToolTipMessage(tagMSG *) 2260 int ATL::CStringT > >::Find(wchar_t,int)const 2261 int ATL::CStringT > >::Find(wchar_t const *,int)const 2262 int ATL::CStringT > >::Find(char,int)const 2263 int ATL::CStringT > >::Find(char const *,int)const 2264 __POSITION * CObList::Find(CObject *,__POSITION *)const 2265 __POSITION * CPtrList::Find(void *,__POSITION *)const 2266 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 2267 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 2268 int CDockBar::FindBar(CControlBar *,int) 2269 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2270 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2271 int CFileFind::FindFile(wchar_t const *,unsigned long) 2272 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 2273 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 2274 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 2275 __POSITION * CObList::FindIndex(int)const 2276 __POSITION * CPtrList::FindIndex(int)const 2277 __POSITION * CStringList::FindIndex(int)const 2278 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2279 int CFileFind::FindNextFileW() 2280 int CFtpFileFind::FindNextFileW() 2281 int CGopherFileFind::FindNextFileW() 2282 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 2283 int ATL::CStringT > >::FindOneOf(char const *)const 2284 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2285 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 2286 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 2287 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 2288 int CEditView::FindTextW(wchar_t const *,int,int) 2289 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 2290 int COleClientItem::FinishCreate(long) 2291 void COleControl::FireError(long,wchar_t const *,unsigned int) 2292 void COleControl::FireEvent(long,unsigned char *,...) 2293 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2294 void COleControl::FireEventV(long,unsigned char *,char *) 2295 void CRecordset::Fixups() 2296 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2297 void CArchive::Flush() 2298 void CDumpContext::Flush() 2299 void CFile::Flush() 2300 void CInternetFile::Flush() 2301 void CMemFile::Flush() 2302 void CMonikerFile::Flush() 2303 void COleStreamFile::Flush() 2304 void CSocketFile::Flush() 2305 void CStdioFile::Flush() 2306 void COleDataSource::FlushClipboard() 2307 int CRecordset::FlushResultSet() 2308 void ATL::CSimpleStringT::Fork(int) 2309 void ATL::CSimpleStringT::Fork(int) 2310 void ATL::CStringT > >::Format(unsigned int,...) 2311 void ATL::CStringT > >::Format(wchar_t const *,...) 2312 void ATL::CStringT > >::Format(unsigned int,...) 2313 void ATL::CStringT > >::Format(char const *,...) 2314 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2315 void ATL::CStringT > >::FormatMessageV(wchar_t const *,char * *) 2316 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 2317 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 2318 void ATL::CStringT > >::FormatMessageW(wchar_t const *,...) 2319 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 2320 void ATL::CStringT > >::FormatMessageW(char const *,...) 2321 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 2322 void ATL::CStringT > >::FormatV(char const *,char *) 2323 void COleControl::ForwardActivationMsg(tagMSG *) 2324 void CAfxStringMgr::Free(ATL::CStringData *) 2325 void CDatabase::Free() 2326 void CFixedAlloc::Free(void *) 2327 void CFixedAllocNoSync::Free(void *) 2328 void CMemFile::Free(unsigned char *) 2329 void CSharedFile::Free(unsigned char *) 2330 void CFixedAlloc::FreeAll() 2331 void CFixedAllocNoSync::FreeAll() 2332 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2333 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2334 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2335 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2336 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2337 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2338 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2339 void CRecordset::FreeDataCache() 2340 void CPlex::FreeDataChain() 2341 void ATL::CSimpleStringT::FreeExtra() 2342 void ATL::CSimpleStringT::FreeExtra() 2343 void CByteArray::FreeExtra() 2344 void CDWordArray::FreeExtra() 2345 void CObArray::FreeExtra() 2346 void CPtrArray::FreeExtra() 2347 void CStringArray::FreeExtra() 2348 void CUIntArray::FreeExtra() 2349 void CWordArray::FreeExtra() 2350 void CObList::FreeNode(CObList::CNode *) 2351 void CPtrList::FreeNode(CPtrList::CNode *) 2352 void CStringList::FreeNode(CStringList::CNode *) 2353 void CRecordset::FreeRowset() 2354 void CThreadSlotData::FreeSlot(int) 2355 void CProperty::FreeValue() 2356 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2357 void COleControlContainer::FreezeAllEvents(int) 2358 void COleControlSite::FreezeEvents(int) 2359 long COleControl::XOleControl::FreezeEvents(int) 2360 int COleClientItem::FreezeLink() 2361 CDC * CDC::FromHandle(HDC__ *) 2362 CGdiObject * CGdiObject::FromHandle(void *) 2363 CObject * CHandleMap::FromHandle(void *) 2364 CImageList * CImageList::FromHandle(_IMAGELIST *) 2365 CMenu * CMenu::FromHandle(HMENU__ *) 2366 CWnd * CWnd::FromHandle(HWND__ *) 2367 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2368 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2369 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2370 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2371 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2372 CRuntime* CRuntimeClass::FromName(char const *) 2373 void * CProperty::Get(unsigned long *) 2374 void * CProperty::Get() 2375 void * CPropertySection::Get(unsigned long) 2376 void * CPropertySection::Get(unsigned long,unsigned long *) 2377 void * CPropertySet::Get(_GUID,unsigned long) 2378 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2379 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2380 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2381 long CWnd::get_accChildCount(long *) 2382 long CWnd::XAccessible::get_accChildCount(long *) 2383 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2384 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2385 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2386 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2387 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2388 long CWnd::get_accFocus(tagVARIANT *) 2389 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2390 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2391 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2392 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2393 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2394 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2395 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2396 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2397 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2398 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2399 long CWnd::get_accParent(IDispatch * *) 2400 long CWnd::XAccessible::get_accParent(IDispatch * *) 2401 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2402 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2403 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2404 long CWnd::get_accSelection(tagVARIANT *) 2405 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2406 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2407 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2408 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2409 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2410 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2411 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2412 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2413 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2414 long CWnd::GetAccessibleChildCount() 2415 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2416 unsigned long COleControl::GetActivationPolicy() 2417 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2418 CDocument * CFrameWnd::GetActiveDocument() 2419 CFrameWnd * CFrameWnd::GetActiveFrame() 2420 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2421 int CPropertySheet::GetActiveIndex()const 2422 CPropertyPage * CPropertySheet::GetActivePage()const 2423 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2424 CView * CFrameWnd::GetActiveView()const 2425 IOleDocumentView * COleDocObjectItem::GetActiveView()const 2426 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2427 int CHtmlView::GetAddressBar()const 2428 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2429 int ATL::CSimpleStringT::GetAllocLength()const 2430 int ATL::CSimpleStringT::GetAllocLength()const 2431 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2432 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2433 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2434 short COleControl::GetAppearance() 2435 IDispatch * CHtmlView::GetApplication()const 2436 HKEY__ * CWinApp::GetAppRegistryKey() 2437 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2438 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2439 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2440 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2441 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2442 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2443 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2444 wchar_t ATL::CSimpleStringT::GetAt(int)const 2445 char ATL::CSimpleStringT::GetAt(int)const 2446 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2447 unsigned long COleControl::GetBackColor() 2448 void CControlBar::GetBarInfo(CControlBarInfo *) 2449 void CDockBar::GetBarInfo(CControlBarInfo *) 2450 unsigned long CAsyncMonikerFile::GetBindInfo()const 2451 void * CBlobProperty::GetBlob() 2452 void CRecordset::GetBookmark(CDBVariant &) 2453 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2454 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2455 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2456 short COleControl::GetBorderStyle() 2457 long CDataSourceControl::GetBoundClientRow() 2458 int CRecordset::GetBoundFieldIndex(void *) 2459 int CRecordset::GetBoundParamIndex(void *) 2460 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 2461 wchar_t * ATL::CSimpleStringT::GetBuffer() 2462 char * ATL::CSimpleStringT::GetBuffer(int) 2463 char * ATL::CSimpleStringT::GetBuffer() 2464 unsigned int CEditView::GetBufferLength()const 2465 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2466 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2467 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2468 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 2469 char * ATL::CSimpleStringT::GetBufferSetLength(int) 2470 int CHtmlView::GetBusy()const 2471 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2472 unsigned int CToolBar::GetButtonStyle(int)const 2473 ATL::CStringT > > CToolBar::GetButtonText(int)const 2474 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2475 void COleSafeArray::GetByteArray(CByteArray &) 2476 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2477 unsigned short CPropertySet::GetByteOrder() 2478 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2479 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2480 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2481 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2482 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2483 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2484 CWnd * COleControl::GetCapture() 2485 long COleControlSite::XOleIPSite::GetCapture() 2486 void CFontDialog::GetCharFormat(_charformatw &)const 2487 CHARFORMAT2W & CRichEditView::GetCharFormatSelection() 2488 int CCheckListBox::GetCheck(int) 2489 int CListCtrl::GetCheck(int)const 2490 int CTreeCtrl::GetCheck(_TREEITEM *)const 2491 int CWnd::GetCheckedRadioButton(int,int) 2492 long CBlobProperty::GetClassID(_GUID *) 2493 void COleClientItem::GetClassID(_GUID *)const 2494 _GUID CPropertySet::GetClassID() 2495 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2496 long COleControl::XPersistMemory::GetClassID(_GUID *) 2497 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2498 long COleControl::XPersistStorage::GetClassID(_GUID *) 2499 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2500 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2501 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 2502 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2503 void COleControl::GetClientOffset(long *,long *)const 2504 void COleControl::GetClientRect(tagRECT *)const 2505 IOleClientSite * COleClientItem::GetClientSite() 2506 IOleClientSite * COleControl::GetClientSite() 2507 IOleClientSite * CRichEditCntrItem::GetClientSite() 2508 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2509 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2510 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2511 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2512 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2513 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2514 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2515 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2516 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2517 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2518 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2519 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2520 COleDataSource * COleDataSource::GetClipboardOwner() 2521 int CDC::GetClipBox(tagRECT *)const 2522 int CMetaFileDC::GetClipBox(tagRECT *)const 2523 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2524 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2525 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2526 int CListCtrl::GetColumnOrderArray(int *,int) 2527 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2528 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 2529 void CDatabase::GetConnectInfo() 2530 int CConnectionPoint::GetConnectionCount() 2531 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2532 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2533 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2534 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2535 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2536 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2537 CPtrArray const * CConnectionPoint::GetConnections() 2538 IConnectionPointContainer * CConnectionPoint::GetContainer() 2539 IDispatch * CHtmlView::GetContainer()const 2540 IOleItemContainer * COleDocument::GetContainer() 2541 IOleItemContainer * COleLinkingDoc::GetContainer() 2542 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2543 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2544 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2545 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2546 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2547 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2548 COleControlContainer * CWnd::GetControlContainer() 2549 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 2550 unsigned long COleControl::GetControlFlags() 2551 void COleControlSite::GetControlInfo() 2552 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2553 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2554 IUnknown * CCmdTarget::GetControllingUnknown() 2555 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2556 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 2557 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 2558 void COleControl::GetControlSize(int *,int *) 2559 int COlePropertyPage::GetControlStatus(unsigned int) 2560 IUnknown * CWnd::GetControlUnknown() 2561 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2562 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 2563 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 2564 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 2565 int CPrintDialog::GetCopies()const 2566 int CPrintDialogEx::GetCopies()const 2567 unsigned long CPropertySection::GetCount() 2568 unsigned long CPropertySet::GetCount() 2569 int CFileFind::GetCreationTime(ATL::CTime &)const 2570 int CFileFind::GetCreationTime(_FILETIME *)const 2571 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2572 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2573 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2574 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2575 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 2576 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 2577 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 2578 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 2579 tagMSG const * CWnd::GetCurrentMessage() 2580 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2581 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2582 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2583 IUnknown * CDataBoundProperty::GetCursor() 2584 IUnknown * CDataSourceControl::GetCursor() 2585 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2586 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2587 ATL::CStringData * ATL::CSimpleStringT::GetData()const 2588 ATL::CStringData * ATL::CSimpleStringT::GetData()const 2589 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2590 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2591 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2592 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2593 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2594 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2595 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2596 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2597 ATL::CStringT > > CDatabase::GetDatabaseName()const 2598 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2599 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2600 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2601 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2602 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2603 CNoTrackObject * CThreadLocalObject::GetDataNA() 2604 IDataObject * COleServerItem::GetDataObject() 2605 COleControl::CControlDataSource * COleControl::GetDataSource() 2606 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2607 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2608 HACCEL__ * CDocument::GetDefaultAccelerator() 2609 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2610 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 2611 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 2612 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 2613 ATL::CStringT > > CRecordset::GetDefaultConnect() 2614 short CRecordset::GetDefaultFieldType(short) 2615 HMENU__ * CDocument::GetDefaultMenu() 2616 HMENU__ * COleServerDoc::GetDefaultMenu() 2617 int CPrintDialog::GetDefaults() 2618 int CPrintDialogEx::GetDefaults() 2619 ATL::CStringT > > CRecordset::GetDefaultSQL() 2620 unsigned long COccManager::GetDefBtnCode(CWnd *) 2621 unsigned long COleControlSite::GetDefBtnCode() 2622 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2623 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 2624 ATL::CStringT > > CPrintDialog::GetDeviceName()const 2625 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 2626 CPoint CScrollView::GetDeviceScrollPosition()const 2627 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2628 _devicemodeW * CPageSetupDialog::GetDevMode()const 2629 _devicemodeW * CPrintDialog::GetDevMode()const 2630 _devicemodeW * CPrintDialogEx::GetDevMode()const 2631 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2632 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2633 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2634 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2635 DHtmlEventMapEntry const * GetDHtmlEventMap() 2636 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 2637 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 2638 int CCmdTarget::GetDispatchIID(_GUID *) 2639 int COleControl::GetDispatchIID(_GUID *) 2640 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2641 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 2642 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2643 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 2644 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2645 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2646 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2647 int COleControlSite::GetDlgCtrlID()const 2648 int CWnd::GetDlgCtrlID()const 2649 CWnd * COleControlContainer::GetDlgItem(int)const 2650 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2651 CWnd * CWnd::GetDlgItem(int)const 2652 void CWnd::GetDlgItem(int,HWND__ * *)const 2653 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2654 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2655 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 2656 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 2657 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 2658 CDockBar * CDockContext::GetDockBar(unsigned long) 2659 CControlBar * CDockBar::GetDockedControlBar(int)const 2660 int CDockBar::GetDockedCount()const 2661 int CDockBar::GetDockedVisibleCount()const 2662 CFrameWnd * CControlBar::GetDockingFrame()const 2663 void CFrameWnd::GetDockState(CDockState &)const 2664 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2665 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2666 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2667 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2668 int CDocManager::GetDocumentCount() 2669 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2670 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 2671 ATL::CStringT > > CPrintDialog::GetDriverName()const 2672 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 2673 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2674 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2675 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2676 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2677 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2678 IUnknown * CWnd::GetDSCCursor() 2679 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 2680 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 2681 void COleSafeArray::GetElement(long *,void *) 2682 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 2683 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 2684 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 2685 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 2686 COleServerItem * COleServerDoc::GetEmbeddedItem() 2687 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2688 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2689 int COleControl::GetEnabled() 2690 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2691 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2692 int ATL::CStringT > >::GetEnvironmentVariableW(wchar_t const *) 2693 int ATL::CStringT > >::GetEnvironmentVariableW(char const *) 2694 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2695 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2696 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2697 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2698 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2699 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2700 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2701 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2702 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2703 int COleControlSite::GetEventIID(_GUID *) 2704 AFX_EVENTMAP const * COleControl::GetEventMap()const 2705 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 2706 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 2707 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2708 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2709 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 2710 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 2711 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 2712 unsigned long COleControlSite::GetExStyle()const 2713 unsigned long CWnd::GetExStyle()const 2714 IDispatch * COleControl::GetExtendedControl() 2715 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2716 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2717 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2718 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2719 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2720 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2721 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2722 long CBrowserControlSite::GetExternal(IDispatch * *) 2723 long CDHtmlDialog::GetExternal(IDispatch * *) 2724 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2725 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2726 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2727 short CRecordset::GetFieldIndexByName(wchar_t const *) 2728 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2729 unsigned char CRecordset::GetFieldStatus(unsigned long) 2730 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2731 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2732 void CRecordset::GetFieldValue(short,CDBVariant &,short) 2733 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 2734 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 2735 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 2736 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 2737 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 2738 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 2739 ATL::CStringT > > CFileDialog::GetFileExt()const 2740 ATL::CStringT > > CFile::GetFileName()const 2741 ATL::CStringT > > CFileDialog::GetFileName()const 2742 ATL::CStringT > > CFileFind::GetFileName()const 2743 ATL::CStringT > > CGopherFileFind::GetFileName()const 2744 ATL::CStringT > > CFile::GetFilePath()const 2745 ATL::CStringT > > CFileFind::GetFilePath()const 2746 ATL::CStringT > > CGopherFileFind::GetFilePath()const 2747 ATL::CStringT > > CFile::GetFileTitle()const 2748 ATL::CStringT > > CFileDialog::GetFileTitle()const 2749 ATL::CStringT > > CFileFind::GetFileTitle()const 2750 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 2751 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 2752 ATL::CStringT > > CFileFind::GetFileURL()const 2753 ATL::CStringT > > CFtpFileFind::GetFileURL()const 2754 ATL::CStringT > > CGopherFileFind::GetFileURL()const 2755 ATL::CStringT > > CHttpFile::GetFileURL()const 2756 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 2757 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2758 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2759 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2760 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2761 CFrameWnd * COleDocument::GetFirstFrame() 2762 __POSITION * CDocument::GetFirstViewPosition()const 2763 CWnd * COleControl::GetFocus() 2764 long COleControlSite::XOleIPSite::GetFocus() 2765 ATL::CStringT > > CFileDialog::GetFolderPath()const 2766 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 2767 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 2768 IFontDisp * COleControl::GetFont() 2769 IFontDisp * CFontHolder::GetFontDispatch() 2770 HFONT__ * CFontHolder::GetFontHandle(long,long) 2771 HFONT__ * CFontHolder::GetFontHandle() 2772 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2773 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 2774 unsigned long COleControl::GetForeColor() 2775 _GUID CPropertySection::GetFormatID() 2776 unsigned short CPropertySet::GetFormatVersion() 2777 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 2778 ATL::CStringT > > CHtmlView::GetFullName()const 2779 int CHtmlView::GetFullScreen()const 2780 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 2781 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 2782 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 2783 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 2784 CBrush * CDC::GetHalftoneBrush() 2785 unsigned int CRectTracker::GetHandleMask()const 2786 void CRectTracker::GetHandleRect(int,CRect *)const 2787 int CRectTracker::GetHandleSize(tagRECT const *)const 2788 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2789 long CHtmlView::GetHeight()const 2790 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 2791 void CSplitterWnd::GetHitRect(int,CRect &) 2792 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 2793 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 2794 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 2795 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2796 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 2797 IDispatch * CHtmlView::GetHtmlDocument()const 2798 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 2799 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 2800 unsigned int COleControl::GetHwnd() 2801 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 2802 HICON__ * COleClientItem::GetIconFromRegistry()const 2803 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 2804 void * COleClientItem::GetIconicMetafile() 2805 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2806 unsigned long CProperty::GetID() 2807 int CPropertySection::GetID(wchar_t const *,unsigned long *) 2808 IDataObject * COleDataObject::GetIDataObject(int) 2809 IDispatch * CCmdTarget::GetIDispatch(int) 2810 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2811 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2812 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2813 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2814 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2815 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2816 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2817 _GUID const & COleControl::XEventConnPt::GetIID() 2818 CImageList * CReBarCtrl::GetImageList()const 2819 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 2820 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 2821 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 2822 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 2823 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 2824 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 2825 CWnd * COleClientItem::GetInPlaceWindow() 2826 void CSplitterWnd::GetInsideRect(CRect &)const 2827 IUnknown * CCmdTarget::GetInterface(void const *) 2828 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 2829 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2830 IUnknown * COleControl::GetInterfaceHook(void const *) 2831 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 2832 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2833 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 2834 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 2835 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 2836 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 2837 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 2838 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 2839 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 2840 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 2841 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 2842 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 2843 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 2844 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 2845 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 2846 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 2847 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 2848 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 2849 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 2850 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 2851 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 2852 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 2853 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 2854 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 2855 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 2856 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 2857 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2858 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 2859 void COleServerDoc::GetItemClipRect(tagRECT *)const 2860 unsigned long CListCtrl::GetItemData(int)const 2861 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2862 unsigned int CStatusBar::GetItemID(int)const 2863 unsigned int CToolBar::GetItemID(int)const 2864 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2865 void COleClientItem::GetItemName(wchar_t *)const 2866 void COleServerDoc::GetItemPosition(tagRECT *)const 2867 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2868 void CStatusBar::GetItemRect(int,tagRECT *)const 2869 void CToolBar::GetItemRect(int,tagRECT *)const 2870 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2871 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2872 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2873 void COleClientItem::GetItemStorage() 2874 void COleClientItem::GetItemStorageCompound() 2875 void COleClientItem::GetItemStorageFlat() 2876 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 2877 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 2878 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 2879 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 2880 int CFileFind::GetLastAccessTime(ATL::CTime &)const 2881 int CFileFind::GetLastAccessTime(_FILETIME *)const 2882 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 2883 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2884 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 2885 int CFileFind::GetLastWriteTime(ATL::CTime &)const 2886 int CFileFind::GetLastWriteTime(_FILETIME *)const 2887 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 2888 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2889 unsigned long CDC::GetLayout()const 2890 long CRecordset::GetLBFetchSize(long) 2891 void COleSafeArray::GetLBound(unsigned long,long *) 2892 long CRecordset::GetLBReallocSize(long) 2893 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 2894 long CHtmlView::GetLeft()const 2895 int ATL::CSimpleStringT::GetLength()const 2896 int ATL::CSimpleStringT::GetLength()const 2897 unsigned __int64 CFile::GetLength()const 2898 unsigned __int64 CFileFind::GetLength()const 2899 unsigned __int64 CGopherFileFind::GetLength()const 2900 unsigned __int64 CInternetFile::GetLength()const 2901 unsigned __int64 CMemFile::GetLength()const 2902 unsigned __int64 COleStreamFile::GetLength()const 2903 unsigned __int64 CSocketFile::GetLength()const 2904 unsigned __int64 CStdioFile::GetLength()const 2905 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 2906 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 2907 int CRichEditCtrl::GetLine(int,wchar_t *)const 2908 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 2909 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 2910 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 2911 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 2912 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 2913 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 2914 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 2915 CPtrList * CPropertySection::GetList() 2916 CPtrList * CPropertySet::GetList() 2917 ATL::CStringT > > CHtmlView::GetLocationName()const 2918 ATL::CStringT > > CHtmlView::GetLocationURL()const 2919 CGopherLocator CGopherFileFind::GetLocator()const 2920 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 2921 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 2922 long CFieldExchange::GetLongBinarySize(int) 2923 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2924 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2925 CWnd * CWinThread::GetMainWnd() 2926 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2927 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2928 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2929 int CConnectionPoint::GetMaxConnections() 2930 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2931 int CHtmlView::GetMenuBar()const 2932 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 2933 CWnd * CFrameWnd::GetMessageBar() 2934 CWnd * CMDIChildWnd::GetMessageBar() 2935 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2936 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2937 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2938 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2939 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 2940 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2941 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 2942 AFX_MSGMAP const * CDialog::GetMessageMap()const 2943 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2944 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2945 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 2946 AFX_MSGMAP const * CDocument::GetMessageMap()const 2947 AFX_MSGMAP const * CEditView::GetMessageMap()const 2948 AFX_MSGMAP const * CFormView::GetMessageMap()const 2949 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2950 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 2951 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 2952 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2953 AFX_MSGMAP const * CListView::GetMessageMap()const 2954 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2955 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2956 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2957 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2958 AFX_MSGMAP const * COleControl::GetMessageMap()const 2959 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 2960 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 2961 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 2962 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 2963 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 2964 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 2965 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2966 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2967 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 2968 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2969 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2970 AFX_MSGMAP const * CReBar::GetMessageMap()const 2971 AFX_MSGMAP const * CRecordView::GetMessageMap()const 2972 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 2973 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2974 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 2975 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2976 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2977 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2978 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2979 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2980 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2981 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2982 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2983 AFX_MSGMAP const * CView::GetMessageMap()const 2984 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2985 AFX_MSGMAP const * CWnd::GetMessageMap()const 2986 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 2987 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 2988 long CDataSourceControl::GetMetaData() 2989 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2990 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2991 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2992 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2993 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2994 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2995 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 2996 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 2997 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 2998 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 2999 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3000 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3001 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3002 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3003 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3004 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3005 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3006 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 3007 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 3008 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 3009 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3010 unsigned long COleClientItem::GetNewItemNumber() 3011 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3012 CDataBoundProperty * CDataBoundProperty::GetNext() 3013 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3014 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3015 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 3016 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 3017 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 3018 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3019 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3020 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3021 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3022 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 3023 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 3024 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3025 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3026 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3027 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3028 int COleDataObject::GetNextFormat(tagFORMATETC *) 3029 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3030 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3031 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3032 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 3033 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3034 CView * CDocument::GetNextView(__POSITION * &)const 3035 ATL::CStringData * CAfxStringMgr::GetNilString() 3036 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3037 void CCmdTarget::GetNotSupported() 3038 void COleControl::GetNotSupported() 3039 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3040 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3041 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3042 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 3043 unsigned int CArchive::GetObjectSchema() 3044 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 3045 ATL::CStringT > > CHttpFile::GetObjectW()const 3046 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 3047 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3048 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 3049 int CHtmlView::GetOffline()const 3050 tagOFNW & CFileDialog::GetOFN() 3051 tagOFNW const & CFileDialog::GetOFN()const 3052 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 3053 IOleObject * COleServerItem::GetOleObject() 3054 unsigned long COleSafeArray::GetOneDimSize() 3055 int CDocManager::GetOpenDocumentCount() 3056 int CWinApp::GetOpenDocumentCount() 3057 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 3058 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 3059 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 3060 int CHeaderCtrl::GetOrderArray(int *,int) 3061 unsigned long CPropertySet::GetOSVersion() 3062 CWnd * COleControl::GetOuterWindow()const 3063 int COleDocObjectItem::GetPageCount(long *,long *) 3064 int CPropertySheet::GetPageCount()const 3065 int CPropertySheet::GetPageIndex(CPropertyPage *) 3066 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3067 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3068 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3069 IPropertyPageSite * COlePropertyPage::GetPageSite() 3070 CWnd * CSplitterWnd::GetPane(int,int)const 3071 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3072 unsigned int CStatusBar::GetPaneStyle(int)const 3073 ATL::CStringT > > CStatusBar::GetPaneText(int)const 3074 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 3075 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3076 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 3077 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 3078 IDispatch * CHtmlView::GetParentBrowser()const 3079 CFrameWnd * CWnd::GetParentFrame()const 3080 CWnd * CWnd::GetParentOwner()const 3081 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3082 ATL::CStringT > > CFileDialog::GetPathName()const 3083 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 3084 IPictureDisp * CPictureHolder::GetPictureDispatch() 3085 ATL::CStringT > > CPageSetupDialog::GetPortName()const 3086 ATL::CStringT > > CPrintDialog::GetPortName()const 3087 ATL::CStringT > > CPrintDialogEx::GetPortName()const 3088 unsigned __int64 CFile::GetPosition()const 3089 unsigned __int64 CMemFile::GetPosition()const 3090 unsigned __int64 COleStreamFile::GetPosition()const 3091 unsigned __int64 CSocketFile::GetPosition()const 3092 unsigned __int64 CStdioFile::GetPosition()const 3093 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3094 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3095 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 3096 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3097 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3098 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3099 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 3100 CFont * CEditView::GetPrinterFont()const 3101 long CAsyncMonikerFile::GetPriority()const 3102 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 3103 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 3104 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 3105 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 3106 COleVariant CHtmlView::GetProperty(wchar_t const *) 3107 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 3108 void COleControlSite::GetProperty(long,unsigned short,void *)const 3109 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3110 CProperty * CPropertySection::GetProperty(unsigned long) 3111 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3112 void CWnd::GetProperty(long,unsigned short,void *)const 3113 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 3114 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3115 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 3116 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3117 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 3118 int COlePropertyPage::GetPropText(wchar_t const *,short *) 3119 int COlePropertyPage::GetPropText(wchar_t const *,int *) 3120 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 3121 int COlePropertyPage::GetPropText(wchar_t const *,long *) 3122 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 3123 int COlePropertyPage::GetPropText(wchar_t const *,float *) 3124 int COlePropertyPage::GetPropText(wchar_t const *,double *) 3125 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 3126 _PROPSHEETPAGEW & CPropertyPage::GetPSP() 3127 _PROPSHEETPAGEW const & CPropertyPage::GetPSP()const 3128 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3129 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3130 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3131 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3132 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3133 void CProgressCtrl::GetRange(int &,int &) 3134 void CSliderCtrl::GetRange(int &,int &)const 3135 void CSpinButtonCtrl::GetRange(int &,int &)const 3136 void * CProperty::GetRawValue() 3137 enum tagREADYSTATE CHtmlView::GetReadyState()const 3138 long COleControl::GetReadyState() 3139 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3140 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3141 int COleControl::GetRectInContainer(tagRECT *) 3142 int CHtmlView::GetRegisterAsBrowser()const 3143 int CHtmlView::GetRegisterAsDropTarget()const 3144 ATL::CStringT > > CFileFind::GetRoot()const 3145 ATL::CStringT > > CGopherFileFind::GetRoot()const 3146 CFrameWnd * CCmdTarget::GetRoutingFrame() 3147 CFrameWnd * CCmdTarget::GetRoutingFrame_() 3148 CView * CCmdTarget::GetRoutingView() 3149 CView * CCmdTarget::GetRoutingView_() 3150 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3151 CRuntime* CAnimateCtrl::GetRuntimeClass()const 3152 CRuntime* CArchiveException::GetRuntimeClass()const 3153 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 3154 CRuntime* CAsyncSocket::GetRuntimeClass()const 3155 CRuntime* CBitmap::GetRuntimeClass()const 3156 CRuntime* CBitmapButton::GetRuntimeClass()const 3157 CRuntime* CBrush::GetRuntimeClass()const 3158 CRuntime* CButton::GetRuntimeClass()const 3159 CRuntime* CByteArray::GetRuntimeClass()const 3160 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 3161 CRuntime* CCheckListBox::GetRuntimeClass()const 3162 CRuntime* CClientDC::GetRuntimeClass()const 3163 CRuntime* CCmdTarget::GetRuntimeClass()const 3164 CRuntime* CColorDialog::GetRuntimeClass()const 3165 CRuntime* CComboBox::GetRuntimeClass()const 3166 CRuntime* CComboBoxEx::GetRuntimeClass()const 3167 CRuntime* CControlBar::GetRuntimeClass()const 3168 CRuntime* CCriticalSection::GetRuntimeClass()const 3169 CRuntime* CCtrlView::GetRuntimeClass()const 3170 CRuntime* CDatabase::GetRuntimeClass()const 3171 CRuntime* CDataPathProperty::GetRuntimeClass()const 3172 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 3173 CRuntime* CDBException::GetRuntimeClass()const 3174 CRuntime* CDC::GetRuntimeClass()const 3175 CRuntime* CDHtmlDialog::GetRuntimeClass()const 3176 CRuntime* CDialog::GetRuntimeClass()const 3177 CRuntime* CDialogBar::GetRuntimeClass()const 3178 CRuntime* CDocItem::GetRuntimeClass()const 3179 CRuntime* CDockBar::GetRuntimeClass()const 3180 CRuntime* CDockState::GetRuntimeClass()const 3181 CRuntime* CDocManager::GetRuntimeClass()const 3182 CRuntime* CDocObjectServer::GetRuntimeClass()const 3183 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 3184 CRuntime* CDocTemplate::GetRuntimeClass()const 3185 CRuntime* CDocument::GetRuntimeClass()const 3186 CRuntime* CDragListBox::GetRuntimeClass()const 3187 CRuntime* CDWordArray::GetRuntimeClass()const 3188 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3189 CRuntime* CEdit::GetRuntimeClass()const 3190 CRuntime* CEditView::GetRuntimeClass()const 3191 CRuntime* CEvent::GetRuntimeClass()const 3192 CRuntime* CException::GetRuntimeClass()const 3193 CRuntime* CFile::GetRuntimeClass()const 3194 CRuntime* CFileDialog::GetRuntimeClass()const 3195 CRuntime* CFileException::GetRuntimeClass()const 3196 CRuntime* CFileFind::GetRuntimeClass()const 3197 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3198 CRuntime* CFont::GetRuntimeClass()const 3199 CRuntime* CFontDialog::GetRuntimeClass()const 3200 CRuntime* CFormView::GetRuntimeClass()const 3201 CRuntime* CFrameWnd::GetRuntimeClass()const 3202 CRuntime* CFtpConnection::GetRuntimeClass()const 3203 CRuntime* CFtpFileFind::GetRuntimeClass()const 3204 CRuntime* CGdiObject::GetRuntimeClass()const 3205 CRuntime* CGopherConnection::GetRuntimeClass()const 3206 CRuntime* CGopherFile::GetRuntimeClass()const 3207 CRuntime* CGopherFileFind::GetRuntimeClass()const 3208 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3209 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3210 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 3211 CRuntime* CHtmlEditView::GetRuntimeClass()const 3212 CRuntime* CHtmlView::GetRuntimeClass()const 3213 CRuntime* CHttpConnection::GetRuntimeClass()const 3214 CRuntime* CHttpFile::GetRuntimeClass()const 3215 CRuntime* CImageList::GetRuntimeClass()const 3216 CRuntime* CInternetConnection::GetRuntimeClass()const 3217 CRuntime* CInternetException::GetRuntimeClass()const 3218 CRuntime* CInternetFile::GetRuntimeClass()const 3219 CRuntime* CInternetSession::GetRuntimeClass()const 3220 CRuntime* CInvalidArgException::GetRuntimeClass()const 3221 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 3222 CRuntime* CLinkCtrl::GetRuntimeClass()const 3223 CRuntime* CListBox::GetRuntimeClass()const 3224 CRuntime* CListCtrl::GetRuntimeClass()const 3225 CRuntime* CListView::GetRuntimeClass()const 3226 CRuntime* CLongBinary::GetRuntimeClass()const 3227 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3228 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3229 CRuntime* CMapStringToOb::GetRuntimeClass()const 3230 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3231 CRuntime* CMapStringToString::GetRuntimeClass()const 3232 CRuntime* CMapWordToOb::GetRuntimeClass()const 3233 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3234 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3235 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3236 CRuntime* CMemFile::GetRuntimeClass()const 3237 CRuntime* CMemoryException::GetRuntimeClass()const 3238 CRuntime* CMenu::GetRuntimeClass()const 3239 CRuntime* CMetaFileDC::GetRuntimeClass()const 3240 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3241 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3242 CRuntime* CMonikerFile::GetRuntimeClass()const 3243 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 3244 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3245 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 3246 CRuntime* CMutex::GetRuntimeClass()const 3247 CRuntime* CNotSupportedException::GetRuntimeClass()const 3248 CRuntime* CObArray::GetRuntimeClass()const 3249 CRuntime* CObject::GetRuntimeClass()const 3250 CRuntime* CObList::GetRuntimeClass()const 3251 CRuntime* COleBusyDialog::GetRuntimeClass()const 3252 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3253 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3254 CRuntime* COleClientItem::GetRuntimeClass()const 3255 CRuntime* COleControl::GetRuntimeClass()const 3256 CRuntime* COleControlModule::GetRuntimeClass()const 3257 CRuntime* COleConvertDialog::GetRuntimeClass()const 3258 CRuntime* COleDBRecordView::GetRuntimeClass()const 3259 CRuntime* COleDialog::GetRuntimeClass()const 3260 CRuntime* COleDispatchException::GetRuntimeClass()const 3261 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3262 CRuntime* COleDocObjectItem::GetRuntimeClass()const 3263 CRuntime* COleDocument::GetRuntimeClass()const 3264 CRuntime* COleException::GetRuntimeClass()const 3265 CRuntime* COleInsertDialog::GetRuntimeClass()const 3266 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3267 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3268 CRuntime* COleLinksDialog::GetRuntimeClass()const 3269 CRuntime* COleObjectFactory::GetRuntimeClass()const 3270 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3271 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3272 CRuntime* COlePropertyPage::GetRuntimeClass()const 3273 CRuntime* COleResizeBar::GetRuntimeClass()const 3274 CRuntime* COleServerDoc::GetRuntimeClass()const 3275 CRuntime* COleServerItem::GetRuntimeClass()const 3276 CRuntime* COleStreamFile::GetRuntimeClass()const 3277 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3278 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3279 CRuntime* CPaintDC::GetRuntimeClass()const 3280 CRuntime* CPalette::GetRuntimeClass()const 3281 CRuntime* CPen::GetRuntimeClass()const 3282 CRuntime* CPreviewDC::GetRuntimeClass()const 3283 CRuntime* CPreviewView::GetRuntimeClass()const 3284 CRuntime* CPrintDialog::GetRuntimeClass()const 3285 CRuntime* CPrintDialogEx::GetRuntimeClass()const 3286 CRuntime* CProgressCtrl::GetRuntimeClass()const 3287 CRuntime* CPropertyPage::GetRuntimeClass()const 3288 CRuntime* CPropertySheet::GetRuntimeClass()const 3289 CRuntime* CPtrArray::GetRuntimeClass()const 3290 CRuntime* CPtrList::GetRuntimeClass()const 3291 CRuntime* CReBar::GetRuntimeClass()const 3292 CRuntime* CReBarCtrl::GetRuntimeClass()const 3293 CRuntime* CRecordset::GetRuntimeClass()const 3294 CRuntime* CRecordView::GetRuntimeClass()const 3295 CRuntime* CResourceException::GetRuntimeClass()const 3296 CRuntime* CRgn::GetRuntimeClass()const 3297 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3298 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3299 CRuntime* CRichEditDoc::GetRuntimeClass()const 3300 CRuntime* CRichEditView::GetRuntimeClass()const 3301 CRuntime* CScrollBar::GetRuntimeClass()const 3302 CRuntime* CScrollView::GetRuntimeClass()const 3303 CRuntime* CSemaphore::GetRuntimeClass()const 3304 CRuntime* CSharedFile::GetRuntimeClass()const 3305 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3306 CRuntime* CSliderCtrl::GetRuntimeClass()const 3307 CRuntime* CSocket::GetRuntimeClass()const 3308 CRuntime* CSocketFile::GetRuntimeClass()const 3309 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3310 CRuntime* CSplitterWnd::GetRuntimeClass()const 3311 CRuntime* CStatic::GetRuntimeClass()const 3312 CRuntime* CStatusBar::GetRuntimeClass()const 3313 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3314 CRuntime* CStdioFile::GetRuntimeClass()const 3315 CRuntime* CStringArray::GetRuntimeClass()const 3316 CRuntime* CStringList::GetRuntimeClass()const 3317 CRuntime* CSyncObject::GetRuntimeClass()const 3318 CRuntime* CTabCtrl::GetRuntimeClass()const 3319 CRuntime* CToolBar::GetRuntimeClass()const 3320 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3321 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3322 CRuntime* CTreeCtrl::GetRuntimeClass()const 3323 CRuntime* CTreeView::GetRuntimeClass()const 3324 CRuntime* CUIntArray::GetRuntimeClass()const 3325 CRuntime* CUserException::GetRuntimeClass()const 3326 CRuntime* CView::GetRuntimeClass()const 3327 CRuntime* CWinApp::GetRuntimeClass()const 3328 CRuntime* CWindowDC::GetRuntimeClass()const 3329 CRuntime* CWindowlessDC::GetRuntimeClass()const 3330 CRuntime* CWinThread::GetRuntimeClass()const 3331 CRuntime* CWnd::GetRuntimeClass()const 3332 CRuntime* CWordArray::GetRuntimeClass()const 3333 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3334 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3335 unsigned long * CColorDialog::GetSavedCustomColors() 3336 ATL::CStringT > > CGopherFileFind::GetScreenName()const 3337 CSize CDockState::GetScreenSize() 3338 CScrollBar * CView::GetScrollBarCtrl(int)const 3339 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3340 void CScrollView::GetScrollBarSizes(CSize &) 3341 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3342 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3343 int CWnd::GetScrollLimit(int) 3344 int CWnd::GetScrollPos(int)const 3345 CPoint CScrollView::GetScrollPosition()const 3346 void CWnd::GetScrollRange(int,int *,int *)const 3347 unsigned long CSplitterWnd::GetScrollStyle()const 3348 CPropertySection * CPropertySet::GetSection(_GUID) 3349 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 3350 wchar_t const * CPropertySection::GetSectionName() 3351 void CRichEditCtrl::GetSel(long &,long &)const 3352 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3353 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3354 void CSliderCtrl::GetSelection(int &,int &)const 3355 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 3356 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 3357 unsigned int COleConvertDialog::GetSelectionType()const 3358 unsigned int COleInsertDialog::GetSelectionType()const 3359 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3360 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3361 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3362 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3363 ATL::CStringT > > CRichEditCtrl::GetSelText()const 3364 int CHtmlView::GetSilent()const 3365 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3366 unsigned long CPropertySection::GetSize() 3367 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3368 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3369 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3370 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3371 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3372 CWnd * CSplitterWnd::GetSizingParent() 3373 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3374 int CHtmlView::GetSource(ATL::CStringT > > &) 3375 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3376 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3377 wchar_t const * CHtmlEditCtrl::GetStartDocument() 3378 wchar_t const * CHtmlEditView::GetStartDocument() 3379 __POSITION * CConnectionPoint::GetStartPosition()const 3380 __POSITION * COleDocument::GetStartPosition()const 3381 __POSITION * CRichEditDoc::GetStartPosition()const 3382 int CFile::GetStatus(CFileStatus &)const 3383 int CFile::GetStatus(wchar_t const *,CFileStatus &) 3384 int CMemFile::GetStatus(CFileStatus &)const 3385 int COleStreamFile::GetStatus(CFileStatus &)const 3386 int CHtmlView::GetStatusBar()const 3387 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 3388 ATL::CStringT > > const COleStreamFile::GetStorageName()const 3389 IStream * COleStreamFile::GetStream()const 3390 wchar_t const * ATL::CSimpleStringT::GetString()const 3391 char const * ATL::CSimpleStringT::GetString()const 3392 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3393 unsigned long COleControlSite::GetStyle()const 3394 unsigned long COleControlSiteOrWnd::GetStyle()const 3395 unsigned long CWnd::GetStyle()const 3396 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3397 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3398 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3399 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3400 void CListBox::GetText(int,ATL::CStringT > > &)const 3401 wchar_t * COleControl::GetText() 3402 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3403 int CStatusBarCtrl::GetText(wchar_t const *,int,int *)const 3404 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3405 long CRecordset::GetTextLen(short,unsigned long) 3406 int CStatusBarCtrl::GetTextLength(int,int *)const 3407 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3408 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3409 int CHtmlView::GetTheaterMode()const 3410 CRuntime* CAnimateCtrl::GetThisClass() 3411 CRuntime* CArchiveException::GetThisClass() 3412 CRuntime* CAsyncMonikerFile::GetThisClass() 3413 CRuntime* CAsyncSocket::GetThisClass() 3414 CRuntime* CBitmap::GetThisClass() 3415 CRuntime* CBitmapButton::GetThisClass() 3416 CRuntime* CBrush::GetThisClass() 3417 CRuntime* CButton::GetThisClass() 3418 CRuntime* CByteArray::GetThisClass() 3419 CRuntime* CCachedDataPathProperty::GetThisClass() 3420 CRuntime* CCheckListBox::GetThisClass() 3421 CRuntime* CClientDC::GetThisClass() 3422 CRuntime* CCmdTarget::GetThisClass() 3423 CRuntime* CColorDialog::GetThisClass() 3424 CRuntime* CComboBox::GetThisClass() 3425 CRuntime* CComboBoxEx::GetThisClass() 3426 CRuntime* CControlBar::GetThisClass() 3427 CRuntime* CCriticalSection::GetThisClass() 3428 CRuntime* CCtrlView::GetThisClass() 3429 CRuntime* CDatabase::GetThisClass() 3430 CRuntime* CDataPathProperty::GetThisClass() 3431 CRuntime* CDateTimeCtrl::GetThisClass() 3432 CRuntime* CDBException::GetThisClass() 3433 CRuntime* CDC::GetThisClass() 3434 CRuntime* CDHtmlDialog::GetThisClass() 3435 CRuntime* CDialog::GetThisClass() 3436 CRuntime* CDialogBar::GetThisClass() 3437 CRuntime* CDocItem::GetThisClass() 3438 CRuntime* CDockBar::GetThisClass() 3439 CRuntime* CDockState::GetThisClass() 3440 CRuntime* CDocManager::GetThisClass() 3441 CRuntime* CDocObjectServer::GetThisClass() 3442 CRuntime* CDocObjectServerItem::GetThisClass() 3443 CRuntime* CDocTemplate::GetThisClass() 3444 CRuntime* CDocument::GetThisClass() 3445 CRuntime* CDragListBox::GetThisClass() 3446 CRuntime* CDWordArray::GetThisClass() 3447 CRuntime* CDynLinkLibrary::GetThisClass() 3448 CRuntime* CEdit::GetThisClass() 3449 CRuntime* CEditView::GetThisClass() 3450 CRuntime* CEvent::GetThisClass() 3451 CRuntime* CException::GetThisClass() 3452 CRuntime* CFile::GetThisClass() 3453 CRuntime* CFileDialog::GetThisClass() 3454 CRuntime* CFileException::GetThisClass() 3455 CRuntime* CFileFind::GetThisClass() 3456 CRuntime* CFindReplaceDialog::GetThisClass() 3457 CRuntime* CFont::GetThisClass() 3458 CRuntime* CFontDialog::GetThisClass() 3459 CRuntime* CFormView::GetThisClass() 3460 CRuntime* CFrameWnd::GetThisClass() 3461 CRuntime* CFtpConnection::GetThisClass() 3462 CRuntime* CFtpFileFind::GetThisClass() 3463 CRuntime* CGdiObject::GetThisClass() 3464 CRuntime* CGopherConnection::GetThisClass() 3465 CRuntime* CGopherFile::GetThisClass() 3466 CRuntime* CGopherFileFind::GetThisClass() 3467 CRuntime* CHeaderCtrl::GetThisClass() 3468 CRuntime* CHotKeyCtrl::GetThisClass() 3469 CRuntime* CHtmlEditDoc::GetThisClass() 3470 CRuntime* CHtmlEditView::GetThisClass() 3471 CRuntime* CHtmlView::GetThisClass() 3472 CRuntime* CHttpConnection::GetThisClass() 3473 CRuntime* CHttpFile::GetThisClass() 3474 CRuntime* CImageList::GetThisClass() 3475 CRuntime* CInternetConnection::GetThisClass() 3476 CRuntime* CInternetException::GetThisClass() 3477 CRuntime* CInternetFile::GetThisClass() 3478 CRuntime* CInternetSession::GetThisClass() 3479 CRuntime* CInvalidArgException::GetThisClass() 3480 CRuntime* CIPAddressCtrl::GetThisClass() 3481 CRuntime* CLinkCtrl::GetThisClass() 3482 CRuntime* CListBox::GetThisClass() 3483 CRuntime* CListCtrl::GetThisClass() 3484 CRuntime* CListView::GetThisClass() 3485 CRuntime* CLongBinary::GetThisClass() 3486 CRuntime* CMapPtrToPtr::GetThisClass() 3487 CRuntime* CMapPtrToWord::GetThisClass() 3488 CRuntime* CMapStringToOb::GetThisClass() 3489 CRuntime* CMapStringToPtr::GetThisClass() 3490 CRuntime* CMapStringToString::GetThisClass() 3491 CRuntime* CMapWordToOb::GetThisClass() 3492 CRuntime* CMapWordToPtr::GetThisClass() 3493 CRuntime* CMDIChildWnd::GetThisClass() 3494 CRuntime* CMDIFrameWnd::GetThisClass() 3495 CRuntime* CMemFile::GetThisClass() 3496 CRuntime* CMemoryException::GetThisClass() 3497 CRuntime* CMenu::GetThisClass() 3498 CRuntime* CMetaFileDC::GetThisClass() 3499 CRuntime* CMiniDockFrameWnd::GetThisClass() 3500 CRuntime* CMiniFrameWnd::GetThisClass() 3501 CRuntime* CMonikerFile::GetThisClass() 3502 CRuntime* CMonthCalCtrl::GetThisClass() 3503 CRuntime* CMultiDocTemplate::GetThisClass() 3504 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 3505 CRuntime* CMutex::GetThisClass() 3506 CRuntime* CNotSupportedException::GetThisClass() 3507 CRuntime* CObArray::GetThisClass() 3508 CRuntime* CObject::GetThisClass() 3509 CRuntime* CObList::GetThisClass() 3510 CRuntime* COleBusyDialog::GetThisClass() 3511 CRuntime* COleChangeIconDialog::GetThisClass() 3512 CRuntime* COleChangeSourceDialog::GetThisClass() 3513 CRuntime* COleClientItem::GetThisClass() 3514 CRuntime* COleControl::GetThisClass() 3515 CRuntime* COleControlModule::GetThisClass() 3516 CRuntime* COleConvertDialog::GetThisClass() 3517 CRuntime* COleDBRecordView::GetThisClass() 3518 CRuntime* COleDialog::GetThisClass() 3519 CRuntime* COleDispatchException::GetThisClass() 3520 CRuntime* COleDocIPFrameWnd::GetThisClass() 3521 CRuntime* COleDocObjectItem::GetThisClass() 3522 CRuntime* COleDocument::GetThisClass() 3523 CRuntime* COleException::GetThisClass() 3524 CRuntime* COleInsertDialog::GetThisClass() 3525 CRuntime* COleIPFrameWnd::GetThisClass() 3526 CRuntime* COleLinkingDoc::GetThisClass() 3527 CRuntime* COleLinksDialog::GetThisClass() 3528 CRuntime* COleObjectFactory::GetThisClass() 3529 CRuntime* COlePasteSpecialDialog::GetThisClass() 3530 CRuntime* COlePropertiesDialog::GetThisClass() 3531 CRuntime* COlePropertyPage::GetThisClass() 3532 CRuntime* COleResizeBar::GetThisClass() 3533 CRuntime* COleServerDoc::GetThisClass() 3534 CRuntime* COleServerItem::GetThisClass() 3535 CRuntime* COleStreamFile::GetThisClass() 3536 CRuntime* COleUpdateDialog::GetThisClass() 3537 CRuntime* CPageSetupDialog::GetThisClass() 3538 CRuntime* CPaintDC::GetThisClass() 3539 CRuntime* CPalette::GetThisClass() 3540 CRuntime* CPen::GetThisClass() 3541 CRuntime* CPreviewDC::GetThisClass() 3542 CRuntime* CPreviewView::GetThisClass() 3543 CRuntime* CPrintDialog::GetThisClass() 3544 CRuntime* CPrintDialogEx::GetThisClass() 3545 CRuntime* CProgressCtrl::GetThisClass() 3546 CRuntime* CPropertyPage::GetThisClass() 3547 CRuntime* CPropertySheet::GetThisClass() 3548 CRuntime* CPtrArray::GetThisClass() 3549 CRuntime* CPtrList::GetThisClass() 3550 CRuntime* CReBar::GetThisClass() 3551 CRuntime* CReBarCtrl::GetThisClass() 3552 CRuntime* CRecordset::GetThisClass() 3553 CRuntime* CRecordView::GetThisClass() 3554 CRuntime* CResourceException::GetThisClass() 3555 CRuntime* CRgn::GetThisClass() 3556 CRuntime* CRichEditCntrItem::GetThisClass() 3557 CRuntime* CRichEditCtrl::GetThisClass() 3558 CRuntime* CRichEditDoc::GetThisClass() 3559 CRuntime* CRichEditView::GetThisClass() 3560 CRuntime* CScrollBar::GetThisClass() 3561 CRuntime* CScrollView::GetThisClass() 3562 CRuntime* CSemaphore::GetThisClass() 3563 CRuntime* CSharedFile::GetThisClass() 3564 CRuntime* CSingleDocTemplate::GetThisClass() 3565 CRuntime* CSliderCtrl::GetThisClass() 3566 CRuntime* CSocket::GetThisClass() 3567 CRuntime* CSocketFile::GetThisClass() 3568 CRuntime* CSpinButtonCtrl::GetThisClass() 3569 CRuntime* CSplitterWnd::GetThisClass() 3570 CRuntime* CStatic::GetThisClass() 3571 CRuntime* CStatusBar::GetThisClass() 3572 CRuntime* CStatusBarCtrl::GetThisClass() 3573 CRuntime* CStdioFile::GetThisClass() 3574 CRuntime* CStringArray::GetThisClass() 3575 CRuntime* CStringList::GetThisClass() 3576 CRuntime* CSyncObject::GetThisClass() 3577 CRuntime* CTabCtrl::GetThisClass() 3578 CRuntime* CToolBar::GetThisClass() 3579 CRuntime* CToolBarCtrl::GetThisClass() 3580 CRuntime* CToolTipCtrl::GetThisClass() 3581 CRuntime* CTreeCtrl::GetThisClass() 3582 CRuntime* CTreeView::GetThisClass() 3583 CRuntime* CUIntArray::GetThisClass() 3584 CRuntime* CUserException::GetThisClass() 3585 CRuntime* CView::GetThisClass() 3586 CRuntime* CWinApp::GetThisClass() 3587 CRuntime* CWindowDC::GetThisClass() 3588 CRuntime* CWindowlessDC::GetThisClass() 3589 CRuntime* CWinThread::GetThisClass() 3590 CRuntime* CWnd::GetThisClass() 3591 CRuntime* CWordArray::GetThisClass() 3592 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 3593 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 3594 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 3595 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 3596 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 3597 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 3598 AFX_EVENTMAP const * COleControl::GetThisEventMap() 3599 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 3600 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 3601 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 3602 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 3603 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 3604 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 3605 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 3606 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 3607 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 3608 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 3609 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 3610 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 3611 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 3612 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 3613 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 3614 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 3615 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 3616 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 3617 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 3618 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 3619 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 3620 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 3621 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 3622 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 3623 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 3624 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 3625 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 3626 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 3627 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 3628 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 3629 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 3630 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 3631 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 3632 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 3633 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 3634 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 3635 AFX_MSGMAP const * CDialog::GetThisMessageMap() 3636 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 3637 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 3638 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 3639 AFX_MSGMAP const * CDocument::GetThisMessageMap() 3640 AFX_MSGMAP const * CEditView::GetThisMessageMap() 3641 AFX_MSGMAP const * CFormView::GetThisMessageMap() 3642 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 3643 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 3644 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 3645 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 3646 AFX_MSGMAP const * CListView::GetThisMessageMap() 3647 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 3648 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 3649 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 3650 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 3651 AFX_MSGMAP const * COleControl::GetThisMessageMap() 3652 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 3653 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 3654 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 3655 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 3656 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 3657 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 3658 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 3659 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 3660 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 3661 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 3662 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 3663 AFX_MSGMAP const * CReBar::GetThisMessageMap() 3664 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 3665 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 3666 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 3667 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 3668 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 3669 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 3670 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 3671 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 3672 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 3673 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 3674 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 3675 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 3676 AFX_MSGMAP const * CView::GetThisMessageMap() 3677 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 3678 AFX_MSGMAP const * CWnd::GetThisMessageMap() 3679 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 3680 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 3681 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 3682 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 3683 int CMonthCalCtrl::GetToday(ATL::CTime &)const 3684 int CHtmlView::GetToolBar()const 3685 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3686 long CHtmlView::GetTop()const 3687 int CHtmlView::GetTopLevelContainer()const 3688 CFrameWnd * CWnd::GetTopLevelFrame()const 3689 CWnd * CWnd::GetTopLevelOwner()const 3690 CWnd * CWnd::GetTopLevelParent()const 3691 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3692 void CRectTracker::GetTrueRect(tagRECT *)const 3693 ATL::CStringT > > CHtmlView::GetType()const 3694 short CPictureHolder::GetType() 3695 unsigned long CProperty::GetType() 3696 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3697 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3698 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3699 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3700 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3701 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3702 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3703 unsigned int CCmdTarget::GetTypeInfoCount() 3704 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 3705 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 3706 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 3707 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3708 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 3709 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3710 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3711 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3712 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3713 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3714 void COleSafeArray::GetUBound(unsigned long,long *) 3715 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3716 long COleControl::XOleObject::GetUserClassID(_GUID *) 3717 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3718 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3719 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 3720 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 3721 void COleControl::GetUserType(wchar_t *) 3722 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 3723 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 3724 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 3725 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 3726 void * CMapPtrToPtr::GetValueAt(void *)const 3727 ATL::CStringT > > CHttpFile::GetVerb()const 3728 unsigned long CDockState::GetVersion() 3729 CHtmlEditView * CHtmlEditDoc::GetView()const 3730 CRichEditView * CRichEditDoc::GetView()const 3731 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3732 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3733 int CHtmlView::GetVisible()const 3734 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 3735 long CHtmlView::GetWidth()const 3736 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3737 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3738 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3739 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3740 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3741 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3742 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3743 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3744 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3745 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3746 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3747 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3748 long CWnd::GetWindowedChildCount() 3749 long CWnd::GetWindowLessChildCount() 3750 IDropTarget * COleControl::GetWindowlessDropTarget() 3751 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3752 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3753 int CWnd::GetWindowTextLengthW()const 3754 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 3755 int CWnd::GetWindowTextW(wchar_t *,int)const 3756 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 3757 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3758 long COleDropSource::GiveFeedback(unsigned long) 3759 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3760 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3761 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3762 void CMemFile::GrowFile(unsigned long) 3763 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3764 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3765 long CDialog::HandleInitDialog(unsigned int,long) 3766 long CDialogBar::HandleInitDialog(unsigned int,long) 3767 long CFormView::HandleInitDialog(unsigned int,long) 3768 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 3769 long CPropertySheet::HandleInitDialog(unsigned int,long) 3770 long CScrollView::HandleMButtonDown(unsigned int,long) 3771 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 3772 int COleControlContainer::HandleSetFocus() 3773 long CDialog::HandleSetFont(unsigned int,long) 3774 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 3775 long COleControl::XPersistStorage::HandsOffStorage() 3776 long COleServerDoc::XPersistStorage::HandsOffStorage() 3777 int COleDocument::HasBlankItems()const 3778 int CDialogTemplate::HasFont()const 3779 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 3780 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 3781 void * CFile::hFileNull 3782 void CWinApp::HideApplication() 3783 void CFileDialog::HideControl(int) 3784 long CBrowserControlSite::HideUI() 3785 long CDHtmlDialog::HideUI() 3786 long CHtmlControlSite::XDocHostUIHandler::HideUI() 3787 void CDC::HIMETRICtoDP(tagSIZE *)const 3788 void CDC::HIMETRICtoLP(tagSIZE *)const 3789 int CListCtrl::HitTest(CPoint,unsigned int *)const 3790 int CRectTracker::HitTest(CPoint)const 3791 int CSplitterWnd::HitTest(CPoint)const 3792 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 3793 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3794 int CRectTracker::HitTestHandles(CPoint)const 3795 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 3796 void CWnd::HtmlHelpW(unsigned long,unsigned int) 3797 int CSplitterWnd::IdFromRowCol(int,int)const 3798 void COlePropertyPage::IgnoreApply(unsigned int) 3799 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3800 int CWinApp::InitApplication() 3801 long COleControl::XOleCache::InitCache(IDataObject *) 3802 int CWnd::InitControlContainer() 3803 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3804 long CPrintDialogEx::InitDone() 3805 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3806 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3807 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3808 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3809 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3810 void CMapPtrToWord::InitHashTable(unsigned int,int) 3811 void CMapStringToOb::InitHashTable(unsigned int,int) 3812 void CMapStringToPtr::InitHashTable(unsigned int,int) 3813 void CMapStringToString::InitHashTable(unsigned int,int) 3814 void CMapWordToOb::InitHashTable(unsigned int,int) 3815 void CMapWordToPtr::InitHashTable(unsigned int,int) 3816 long CDataSourceControl::Initialize() 3817 void CDHtmlDialog::Initialize() 3818 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3819 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3820 int CEditView::InitializeReplace() 3821 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3822 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3823 int COleControlModule::InitInstance() 3824 int CWinApp::InitInstance() 3825 int CWinThread::InitInstance() 3826 void CWinApp::InitLibId() 3827 void CDockContext::InitLoop() 3828 int CDialog::InitModalIndirect(void *,CWnd *) 3829 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3830 long COleControl::XPersistMemory::InitNew() 3831 long COleControl::XPersistPropertyBag::InitNew() 3832 long COleControl::XPersistStorage::InitNew(IStorage *) 3833 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3834 long COleControl::XPersistStreamInit::InitNew() 3835 void CRecordset::InitRecord() 3836 void COleControl::InitStockEventMask() 3837 void COleControl::InitStockPropMask() 3838 void CSimpleException::InitString() 3839 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3840 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3841 int ATL::CStringT > >::Insert(int,wchar_t) 3842 int ATL::CStringT > >::Insert(int,wchar_t const *) 3843 int ATL::CStringT > >::Insert(int,char) 3844 int ATL::CStringT > >::Insert(int,char const *) 3845 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3846 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3847 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3848 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 3849 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 3850 void CByteArray::InsertAt(int,unsigned char,int) 3851 void CByteArray::InsertAt(int,CByteArray *) 3852 void CDWordArray::InsertAt(int,unsigned long,int) 3853 void CDWordArray::InsertAt(int,CDWordArray *) 3854 void CObArray::InsertAt(int,CObArray *) 3855 void CObArray::InsertAt(int,CObject *,int) 3856 void CPtrArray::InsertAt(int,CPtrArray *) 3857 void CPtrArray::InsertAt(int,void *,int) 3858 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 3859 void CStringArray::InsertAt(int,CStringArray *) 3860 void CStringArray::InsertAt(int,wchar_t const *,int) 3861 void CUIntArray::InsertAt(int,unsigned int,int) 3862 void CUIntArray::InsertAt(int,CUIntArray *) 3863 void CWordArray::InsertAt(int,unsigned short,int) 3864 void CWordArray::InsertAt(int,CWordArray *) 3865 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3866 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3867 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 3868 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 3869 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 3870 void CStringArray::InsertEmpty(int,int) 3871 void CRichEditView::InsertFileAsObject(wchar_t const *) 3872 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 3873 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 3874 long CRichEditView::InsertItem(CRichEditCntrItem *) 3875 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 3876 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 3877 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3878 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3879 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3880 CFontHolder & COleControl::InternalGetFont() 3881 ATL::CStringT > > const & COleControl::InternalGetText() 3882 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 3883 unsigned long CCmdTarget::InternalRelease() 3884 int CDC::IntersectClipRect(int,int,int,int) 3885 int CDC::IntersectClipRect(tagRECT const *) 3886 void CCheckListBox::InvalidateCheck(int) 3887 void COleControl::InvalidateControl(tagRECT const *,int) 3888 void CCheckListBox::InvalidateItem(int) 3889 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 3890 void COleControl::InvalidateRgn(CRgn *,int) 3891 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 3892 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3893 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3894 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3895 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3896 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3897 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3898 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3899 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 3900 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3901 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3902 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3903 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3904 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3905 int CDocItem::IsBlank()const 3906 int COleServerItem::IsBlank()const 3907 int CPropertyPage::IsButtonEnabled(int) 3908 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3909 int COleServerItem::IsConnected()const 3910 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 3911 int COleControlSite::IsDefaultButton() 3912 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3913 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 3914 int CWnd::IsDialogMessageW(tagMSG *) 3915 long CBlobProperty::IsDirty() 3916 long COleLinkingDoc::XPersistFile::IsDirty() 3917 long COleControl::XPersistMemory::IsDirty() 3918 long COleControl::XPersistStorage::IsDirty() 3919 long COleServerDoc::XPersistStorage::IsDirty() 3920 long COleControl::XPersistStreamInit::IsDirty() 3921 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 3922 unsigned int CWnd::IsDlgButtonChecked(int)const 3923 int CControlBar::IsDockBar()const 3924 int CDockBar::IsDockBar()const 3925 int CFileFind::IsDots()const 3926 int CGopherFileFind::IsDots()const 3927 bool ATL::CSimpleStringT::IsEmpty()const 3928 bool ATL::CSimpleStringT::IsEmpty()const 3929 int CCheckListBox::IsEnabled(int) 3930 int CDHtmlDialog::IsExternalDispatchSafe() 3931 int CRecordset::IsFieldDirty(void *) 3932 int CRecordset::IsFieldNull(void *) 3933 int CRecordset::IsFieldNullable(void *) 3934 int CRecordset::IsFieldNullable(unsigned long)const 3935 int CRecordset::IsFieldStatusDirty(unsigned long)const 3936 int CRecordset::IsFieldStatusNull(unsigned long)const 3937 int CFieldExchange::IsFieldType(unsigned int *) 3938 int CControlBar::IsFloating()const 3939 int CFrameWnd::IsFrameWnd()const 3940 int CWnd::IsFrameWnd()const 3941 int IsHelpKey(tagMSG *) 3942 int CWinThread::IsIdleMessage(tagMSG *) 3943 int CCmdTarget::IsInvokeAllowed(long) 3944 int COleControl::IsInvokeAllowed(long) 3945 int CRecordset::IsJoin(wchar_t const *) 3946 int CObject::IsKindOf(CRuntimeconst *)const 3947 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 3948 int COccManager::IsLabelControl(CWnd *) 3949 int COleObjectFactory::IsLicenseValid() 3950 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 3951 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 3952 int COleControlSite::IsMatchingMnemonic(tagMSG *) 3953 int CHtmlEditDoc::IsModified() 3954 int COleClientItem::IsModified()const 3955 int COleControl::IsModified() 3956 int COlePropertyPage::IsModified() 3957 int CRichEditDoc::IsModified() 3958 int CRecordView::IsOnFirstRecord() 3959 int CRecordView::IsOnLastRecord() 3960 int CRecordset::IsOpen()const 3961 long COlePropertyPage::XPropertyPage::IsPageDirty() 3962 int CRecordset::IsParamStatusNull(unsigned long)const 3963 int CRecordset::IsRecordsetUpdatable() 3964 int CCmdTarget::IsResultExpected() 3965 int CRichEditView::IsRichEditFormat(unsigned short) 3966 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 3967 int CRichEditView::IsSelected(CObject const *)const 3968 int CView::IsSelected(CObject const *)const 3969 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 3970 int CObject::IsSerializable()const 3971 int COleMessageFilter::IsSignificantMessage(tagMSG *) 3972 int CDHtmlDialog::IsSinkedElement(IDispatch *) 3973 int CRecordset::IsSQLUpdatable(wchar_t const *) 3974 int COleControl::IsSubclassedControl() 3975 int CWnd::IsTopParentActive()const 3976 int CFrameWnd::IsTracking()const 3977 long CDocObjectServer::XOleObject::IsUpToDate() 3978 long COleControl::XOleObject::IsUpToDate() 3979 long COleServerDoc::XOleObject::IsUpToDate() 3980 long COleServerItem::XOleObject::IsUpToDate() 3981 int CControlBar::IsVisible()const 3982 int COleControlSite::IsWindowEnabled()const 3983 int CWnd::IsWindowEnabled()const 3984 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3985 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3986 void COleControl::KeyDown(unsigned short *) 3987 void COleControl::KeyUp(unsigned short *) 3988 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 3989 void CToolBar::Layout() 3990 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3991 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3992 int CRichEditCtrl::LineIndex(int)const 3993 int CRichEditCtrl::LineLength(int)const 3994 void CRichEditCtrl::LineScroll(int,int) 3995 int CDC::LineTo(int,int) 3996 unsigned long CRichEditView::lMaxSize 3997 long CBlobProperty::Load(IStream *) 3998 int CDialogTemplate::Load(wchar_t const *) 3999 void COleControl::Load(wchar_t const *,CDataPathProperty &) 4000 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4001 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 4002 long COleControl::XPersistMemory::Load(void *,unsigned long) 4003 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4004 long COleControl::XPersistStorage::Load(IStorage *) 4005 long COleServerDoc::XPersistStorage::Load(IStorage *) 4006 long COleControl::XPersistStreamInit::Load(IStream *) 4007 int CFrameWnd::LoadAccelTable(wchar_t const *) 4008 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 4009 void CFrameWnd::LoadBarState(wchar_t const *) 4010 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 4011 int CToolBar::LoadBitmapW(wchar_t const *) 4012 void CRecordset::LoadFields() 4013 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4014 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4015 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4016 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4017 int CDHtmlDialog::LoadFromResource(unsigned int) 4018 int CDHtmlDialog::LoadFromResource(wchar_t const *) 4019 int CHtmlView::LoadFromResource(unsigned int) 4020 int CHtmlView::LoadFromResource(wchar_t const *) 4021 void COleDocument::LoadFromStorage() 4022 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 4023 void CDockState::LoadState(wchar_t const *) 4024 long COleControl::LoadState(IStream *) 4025 void CWinApp::LoadStdProfileSettings(unsigned int) 4026 int ATL::CStringT > >::LoadStringW(unsigned int) 4027 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 4028 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 4029 int ATL::CStringT > >::LoadStringW(unsigned int) 4030 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 4031 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 4032 int CWinApp::LoadSysPolicies() 4033 void CDocTemplate::LoadTemplate() 4034 void CMultiDocTemplate::LoadTemplate() 4035 int CToolBar::LoadToolBar(wchar_t const *) 4036 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4037 void COleSafeArray::Lock() 4038 int CSingleLock::Lock(unsigned long) 4039 int CSyncObject::Lock(unsigned long) 4040 void CTypeLibCache::Lock() 4041 wchar_t * ATL::CSimpleStringT::LockBuffer() 4042 char * ATL::CSimpleStringT::LockBuffer() 4043 wchar_t const * CEditView::LockBuffer()const 4044 long COleControlContainer::XOleContainer::LockContainer(int) 4045 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4046 void COleLinkingDoc::LockExternal(int,int) 4047 int COleControl::LockInPlaceActive(int) 4048 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4049 void CFile::LockRange(unsigned __int64,unsigned __int64) 4050 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 4051 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 4052 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 4053 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 4054 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 4055 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4056 long COleObjectFactory::XClassFactory::LockServer(int) 4057 int CMapPtrToPtr::Lookup(void *,void * &)const 4058 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4059 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 4060 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 4061 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 4062 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4063 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4064 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4065 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4066 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4067 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4068 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 4069 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 4070 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 4071 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4072 void CDC::LPtoDP(tagSIZE *)const 4073 void CDC::LPtoHIMETRIC(tagSIZE *)const 4074 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4075 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4076 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4077 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4078 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4079 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4080 void CArchive::MapObject(CObject const *) 4081 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4082 int COleDialog::MapResult(unsigned int) 4083 long CPropertyPage::MapWizardResult(long) 4084 void CRecordset::MarkForAddNew() 4085 void CRecordset::MarkForUpdate() 4086 void CRichEditDoc::MarkItemsClear()const 4087 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 4088 int CFileFind::MatchesMask(unsigned long)const 4089 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4090 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4091 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 4092 void CComboBox::MeasureItem(tagMEASUREITEM*) 4093 void CListBox::MeasureItem(tagMEASUREITEM*) 4094 void CMenu::MeasureItem(tagMEASUREITEM*) 4095 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 4096 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 4097 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 4098 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 4099 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4100 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4101 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4102 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4103 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4104 void CPreviewDC::MirrorAttributes() 4105 void CPreviewDC::MirrorFont() 4106 void CPreviewDC::MirrorMappingMode(int) 4107 void CPreviewDC::MirrorViewportOrg() 4108 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4109 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4110 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4111 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4112 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4113 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4114 void CDockContext::Move(CPoint) 4115 void CRecordset::Move(long,unsigned short) 4116 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4117 CPoint CDC::MoveTo(int,int) 4118 void COleControlSite::MoveWindow(int,int,int,int) 4119 void CWnd::MoveWindow(int,int,int,int,int) 4120 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4121 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4122 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 4123 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4124 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 4125 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 4126 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 4127 unsigned int COleDropSource::nDragDelay 4128 unsigned int COleDropSource::nDragMinDist 4129 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4130 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 4131 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 4132 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 4133 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 4134 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 4135 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 4136 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 4137 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4138 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4139 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4140 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4141 unsigned int const CEditView::nMaxSize 4142 int CRectTracker::NormalizeHit(int)const 4143 void CDataBoundProperty::Notify() 4144 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4145 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4146 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4147 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4148 void COleServerDoc::NotifyRename(wchar_t const *) 4149 unsigned int COleDropTarget::nScrollDelay 4150 int COleDropTarget::nScrollInset 4151 unsigned int COleDropTarget::nScrollInterval 4152 void ATL::CStringT > >::OemToCharA() 4153 int CDC::OffsetClipRgn(int,int) 4154 int CDC::OffsetClipRgn(tagSIZE) 4155 CPoint CDC::OffsetViewportOrg(int,int) 4156 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4157 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4158 CPoint CDC::OffsetWindowOrg(int,int) 4159 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4160 void CAsyncSocket::OnAccept(int) 4161 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4162 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4163 void COleClientItem::OnActivate() 4164 void COleFrameHook::OnActivate(int) 4165 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4166 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4167 long COleControl::OnActivateInPlace(int,tagMSG *) 4168 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4169 long CWnd::OnActivateTopLevel(unsigned int,long) 4170 void COleClientItem::OnActivateUI() 4171 long CDocObjectServer::OnActivateView() 4172 void CFormView::OnActivateView(int,CView *,CView *) 4173 void CPreviewView::OnActivateView(int,CView *,CView *) 4174 void CRichEditView::OnActivateView(int,CView *,CView *) 4175 void CView::OnActivateView(int,CView *,CView *) 4176 long CToolTipCtrl::OnAddTool(unsigned int,long) 4177 void CConnectionPoint::OnAdvise(int) 4178 void COleControl::XEventConnPt::OnAdvise(int) 4179 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4180 void COleControl::OnAmbientPropertyChange(long) 4181 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4182 void COleControl::OnAppearanceChanged() 4183 void CWinApp::OnAppExit() 4184 int CPropertyPage::OnApply() 4185 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4186 void CDocObjectServer::OnApplyViewState(CArchive &) 4187 void COleControl::OnBackColorChanged() 4188 int CFrameWnd::OnBarCheck(unsigned int) 4189 int COleIPFrameWnd::OnBarCheck(unsigned int) 4190 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4191 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4192 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4193 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 4194 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 4195 int COleDropSource::OnBeginDrag(CWnd *) 4196 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4197 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4198 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4199 void COleControl::OnBorderStyleChanged() 4200 void CRichEditView::OnBullet() 4201 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4202 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 4203 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 4204 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 4205 void CCommonDialog::OnCancel() 4206 void CDialog::OnCancel() 4207 void CPropertyPage::OnCancel() 4208 void CRichEditView::OnCancelEditCntr() 4209 void COleControl::OnCancelMode() 4210 void CSplitterWnd::OnCancelMode() 4211 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4212 long COleControl::XFontNotification::OnChanged(long) 4213 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4214 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4215 void CRectTracker::OnChangedRect(CRect const &) 4216 void CDocument::OnChangedViewList() 4217 int COleClientItem::OnChangeItemPosition(CRect const &) 4218 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4219 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4220 void CRichEditView::OnCharBold() 4221 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4222 void CRichEditView::OnCharItalic() 4223 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4224 void CRichEditView::OnCharUnderline() 4225 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4226 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4227 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4228 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4229 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4230 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4231 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4232 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4233 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4234 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4235 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4236 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4237 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4238 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4239 void COleControl::OnClick(unsigned short) 4240 CEnumArray * CEnumArray::OnClone() 4241 CEnumArray * CEnumConnections::OnClone() 4242 void CAsyncSocket::OnClose(int) 4243 void CControlFrameWnd::OnClose() 4244 void CFrameWnd::OnClose() 4245 void CMiniDockFrameWnd::OnClose() 4246 void COleControl::OnClose(unsigned long) 4247 void COleServerDoc::OnClose(enum tagOLECLOSE) 4248 void CPropertySheet::OnClose() 4249 void COleClientItem::XAdviseSink::OnClose() 4250 void CDocObjectServer::OnCloseDocument() 4251 void CDocument::OnCloseDocument() 4252 void COleDocument::OnCloseDocument() 4253 void COleLinkingDoc::OnCloseDocument() 4254 void COleServerDoc::OnCloseDocument() 4255 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4256 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4257 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4258 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4259 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4260 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4261 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4262 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4263 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4264 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4265 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4266 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4267 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4268 void CRichEditView::OnColorDefault() 4269 int CColorDialog::OnColorOK() 4270 void CRichEditView::OnColorPick(unsigned long) 4271 int CFrameWnd::OnCommand(unsigned int,long) 4272 int CMDIFrameWnd::OnCommand(unsigned int,long) 4273 int COlePropertyPage::OnCommand(unsigned int,long) 4274 int CPropertySheet::OnCommand(unsigned int,long) 4275 int CSplitterWnd::OnCommand(unsigned int,long) 4276 int CWnd::OnCommand(unsigned int,long) 4277 long CDialog::OnCommandHelp(unsigned int,long) 4278 long CFrameWnd::OnCommandHelp(unsigned int,long) 4279 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4280 long CPropertySheet::OnCommandHelp(unsigned int,long) 4281 void CHtmlView::OnCommandStateChange(long,int) 4282 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4283 void CAsyncSocket::OnConnect(int) 4284 void CFrameWnd::OnContextHelp() 4285 int COleFrameHook::OnContextHelp(int) 4286 void COleIPFrameWnd::OnContextHelp() 4287 void CWinApp::OnContextHelp() 4288 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4289 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 4290 int CControlBar::OnCreate(tagCREATESTRUCTW *) 4291 int CEditView::OnCreate(tagCREATESTRUCTW *) 4292 int CFormView::OnCreate(tagCREATESTRUCTW *) 4293 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 4294 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 4295 int COleControl::OnCreate(tagCREATESTRUCTW *) 4296 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 4297 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 4298 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 4299 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 4300 int CView::OnCreate(tagCREATESTRUCTW *) 4301 int CCmdTarget::OnCreateAggregates() 4302 int COleControl::OnCreateAggregates() 4303 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4304 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4305 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4306 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4307 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 4308 CCmdTarget * COleObjectFactory::OnCreateObject() 4309 CCmdTarget * COleTemplateServer::OnCreateObject() 4310 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4311 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4312 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4313 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4314 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4315 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4316 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4317 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4318 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4319 int CDocManager::OnDDECommand(wchar_t *) 4320 int CWinApp::OnDDECommand(wchar_t *) 4321 long CFrameWnd::OnDDEExecute(unsigned int,long) 4322 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4323 long CFrameWnd::OnDDETerminate(unsigned int,long) 4324 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 4325 void COleClientItem::OnDeactivate() 4326 void COleServerDoc::OnDeactivate() 4327 void COleClientItem::OnDeactivateAndUndo() 4328 void COleClientItem::OnDeactivateUI(int) 4329 void COleServerDoc::OnDeactivateUI(int) 4330 void CRichEditCntrItem::OnDeactivateUI(int) 4331 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4332 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4333 void CControlBar::OnDestroy() 4334 void CDHtmlDialog::OnDestroy() 4335 void CEditView::OnDestroy() 4336 void CFrameWnd::OnDestroy() 4337 void CHtmlView::OnDestroy() 4338 void CMDIChildWnd::OnDestroy() 4339 void CMDIFrameWnd::OnDestroy() 4340 void COleControl::OnDestroy() 4341 void COleIPFrameWnd::OnDestroy() 4342 void CRichEditView::OnDestroy() 4343 void CTabCtrl::OnDestroy() 4344 void CTreeCtrl::OnDestroy() 4345 void CTreeView::OnDestroy() 4346 void CView::OnDestroy() 4347 void CWnd::OnDestroy() 4348 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4349 void CRichEditView::OnDevModeChange(wchar_t *) 4350 void CWnd::OnDevModeChange(wchar_t *) 4351 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4352 void COleClientItem::OnDiscardUndoState() 4353 void CSplitterWnd::OnDisplayChange() 4354 long CWnd::OnDisplayChange(unsigned int,long) 4355 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4356 int COleFrameHook::OnDocActivate(int) 4357 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 4358 void CHtmlView::OnDocumentComplete(wchar_t const *) 4359 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4360 long CBrowserControlSite::OnDocWindowActivate(int) 4361 long CDHtmlDialog::OnDocWindowActivate(int) 4362 long CHtmlView::OnDocWindowActivate(int) 4363 void COleServerDoc::OnDocWindowActivate(int) 4364 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4365 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4366 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4367 void CDocObjectServerItem::OnDoVerb(long) 4368 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4369 void COleServerItem::OnDoVerb(long) 4370 void CHtmlView::OnDownloadBegin() 4371 void CHtmlView::OnDownloadComplete() 4372 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4373 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4374 void COleDropTarget::OnDragLeave(CWnd *) 4375 void CView::OnDragLeave() 4376 long CWnd::OnDragList(unsigned int,long) 4377 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4378 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4379 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4380 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4381 void CCtrlView::OnDraw(CDC *) 4382 void CFormView::OnDraw(CDC *) 4383 void CHtmlView::OnDraw(CDC *) 4384 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4385 void CPreviewView::OnDraw(CDC *) 4386 void CView::OnDraw(CDC *) 4387 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4388 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4389 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4390 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4391 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4392 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4393 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4394 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4395 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4396 void CFrameWnd::OnDropFiles(HDROP__ *) 4397 void CRichEditView::OnDropFiles(HDROP__ *) 4398 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4399 int CEditView::OnEditChange() 4400 void COleDocument::OnEditChangeIcon() 4401 void CEditView::OnEditClear() 4402 void CRichEditView::OnEditClear() 4403 void COleDocument::OnEditConvert() 4404 void CEditView::OnEditCopy() 4405 void CHtmlView::OnEditCopy() 4406 void CRichEditView::OnEditCopy() 4407 void CEditView::OnEditCut() 4408 void CHtmlView::OnEditCut() 4409 void CRichEditView::OnEditCut() 4410 void CEditView::OnEditFind() 4411 void CRichEditView::OnEditFind() 4412 void CEditView::OnEditFindReplace(int) 4413 void CRichEditView::OnEditFindReplace(int) 4414 void COleDocument::OnEditLinks() 4415 void CEditView::OnEditPaste() 4416 void CHtmlView::OnEditPaste() 4417 void CRichEditView::OnEditPaste() 4418 void CRichEditView::OnEditPasteSpecial() 4419 void CRichEditView::OnEditProperties() 4420 int COlePropertyPage::OnEditProperty(long) 4421 void CRichEditView::OnEditRedo() 4422 void CEditView::OnEditRepeat() 4423 void CRichEditView::OnEditRepeat() 4424 void CEditView::OnEditReplace() 4425 void CRichEditView::OnEditReplace() 4426 void CEditView::OnEditSelectAll() 4427 void CRichEditView::OnEditSelectAll() 4428 void CEditView::OnEditUndo() 4429 void CRichEditView::OnEditUndo() 4430 void CFrameWnd::OnEnable(int) 4431 void CToolTipCtrl::OnEnable(int) 4432 void COleControl::OnEnabledChanged() 4433 long CHtmlView::OnEnableModeless(int) 4434 void COleFrameHook::OnEnableModeless(int) 4435 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4436 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4437 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4438 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4439 void CFrameWnd::OnEndSession(int) 4440 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4441 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4442 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4443 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4444 int CFrameWnd::OnEraseBkgnd(CDC *) 4445 int COleControl::OnEraseBkgnd(CDC *) 4446 int COleResizeBar::OnEraseBkgnd(CDC *) 4447 int CPreviewView::OnEraseBkgnd(CDC *) 4448 int CReBar::OnEraseBkgnd(CDC *) 4449 int CToolBar::OnEraseBkgnd(CDC *) 4450 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4451 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4452 int COleControlSite::OnEvent(AFX_EVENT *) 4453 void COleControl::OnEventAdvise(int) 4454 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4455 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4456 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4457 void CDocument::OnFileClose() 4458 void CFileDialog::OnFileNameChange() 4459 int CFileDialog::OnFileNameOK() 4460 void CDocManager::OnFileNew() 4461 void CWinApp::OnFileNew() 4462 void CDocManager::OnFileOpen() 4463 void CWinApp::OnFileOpen() 4464 void CHtmlView::OnFilePrint() 4465 void CView::OnFilePrint() 4466 void CView::OnFilePrintPreview() 4467 void CWinApp::OnFilePrintSetup() 4468 void CDocument::OnFileSave() 4469 void CDocument::OnFileSaveAs() 4470 void COleServerDoc::OnFileSaveCopyAs() 4471 void CDocument::OnFileSendMail() 4472 void COleDocument::OnFileSendMail() 4473 void COleServerDoc::OnFileUpdate() 4474 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4475 void CCmdTarget::OnFinalRelease() 4476 void CDocument::OnFinalRelease() 4477 void COleControl::OnFinalRelease() 4478 void COlePropertyPage::OnFinalRelease() 4479 void COleServerItem::OnFinalRelease() 4480 void CWnd::OnFinalRelease() 4481 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 4482 void CEditView::OnFindNext(wchar_t const *,int,int) 4483 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 4484 long CEditView::OnFindReplaceCmd(unsigned int,long) 4485 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4486 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4487 long COleControlSite::XOleControlSite::OnFocus(int) 4488 void CFileDialog::OnFolderChange() 4489 void COleControl::OnFontChanged() 4490 void COleControl::OnForeColorChanged() 4491 void CRichEditView::OnFormatFont() 4492 void COleControl::OnFrameClose() 4493 long CBrowserControlSite::OnFrameWindowActivate(int) 4494 long CDHtmlDialog::OnFrameWindowActivate(int) 4495 long CHtmlView::OnFrameWindowActivate(int) 4496 void COleServerDoc::OnFrameWindowActivate(int) 4497 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4498 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4499 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4500 void COleControl::OnFreezeEvents(int) 4501 void CHtmlView::OnFullScreen(int) 4502 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4503 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4504 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4505 void COleClientItem::OnGetClipRect(CRect &) 4506 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4507 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4508 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4509 unsigned int COleControl::OnGetDlgCode() 4510 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4511 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4512 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4513 long CHtmlView::OnGetExternal(IDispatch * *) 4514 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4515 HMENU__ * COleControl::OnGetInPlaceMenu() 4516 void COleClientItem::OnGetItemPosition(CRect &) 4517 void COleDocObjectItem::OnGetItemPosition(CRect &) 4518 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 4519 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 4520 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4521 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4522 long CWnd::OnGetObject(unsigned int,long) 4523 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4524 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4525 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4526 long CStatusBar::OnGetText(unsigned int,long) 4527 long CStatusBar::OnGetTextLength(unsigned int,long) 4528 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4529 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4530 unsigned long COleControl::OnGetViewStatus() 4531 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4532 void CReBar::OnHeightChange(tagNMHDR *,long *) 4533 void CFrameWnd::OnHelp() 4534 int COlePropertyPage::OnHelp(wchar_t const *) 4535 void CWinApp::OnHelp() 4536 void CWnd::OnHelp() 4537 void CWinApp::OnHelpFinder() 4538 void CWnd::OnHelpFinder() 4539 long CControlBar::OnHelpHitTest(unsigned int,long) 4540 long CDialog::OnHelpHitTest(unsigned int,long) 4541 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4542 void CWinApp::OnHelpIndex() 4543 void CWnd::OnHelpIndex() 4544 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4545 int CWnd::OnHelpInfo(tagHELPINFO *) 4546 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4547 void CWinApp::OnHelpUsing() 4548 void CWnd::OnHelpUsing() 4549 void CDocObjectServerItem::OnHide() 4550 long COleControl::OnHide() 4551 void COleServerItem::OnHide() 4552 void COleControl::OnHideToolBars() 4553 long CHtmlView::OnHideUI() 4554 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4555 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4556 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4557 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4558 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4559 void CDocTemplate::OnIdle() 4560 void CDocument::OnIdle() 4561 void COleDocument::OnIdle() 4562 int CWinApp::OnIdle(long) 4563 int CWinThread::OnIdle(long) 4564 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4565 void CFrameWnd::OnIdleUpdateCmdUI() 4566 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4567 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4568 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4569 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4570 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4571 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4572 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4573 int CDHtmlDialog::OnInitDialog() 4574 int CDialog::OnInitDialog() 4575 int COlePropertiesDialog::OnInitDialog() 4576 int COlePropertyPage::OnInitDialog() 4577 int CPropertySheet::OnInitDialog() 4578 void CFileDialog::OnInitDone() 4579 int COleServerItem::OnInitFromData(COleDataObject *,int) 4580 void CControlBar::OnInitialUpdate() 4581 void CFormView::OnInitialUpdate() 4582 void COleDBRecordView::OnInitialUpdate() 4583 void CRecordView::OnInitialUpdate() 4584 void CRichEditView::OnInitialUpdate() 4585 void CView::OnInitialUpdate() 4586 void CFrameWnd::OnInitMenu(CMenu *) 4587 void COleFrameHook::OnInitMenu(CMenu *) 4588 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4589 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4590 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 4591 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4592 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4593 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 4594 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4595 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4596 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 4597 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4598 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4599 void CRichEditView::OnInsertObject() 4600 void CSplitterWnd::OnInvertTracker(CRect const &) 4601 void CDockContext::OnKey(int,int) 4602 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4603 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4604 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4605 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4606 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4607 void COleControl::OnKeyPressEvent(unsigned short) 4608 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4609 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4610 long CPropertySheet::OnKickIdle(unsigned int,long) 4611 int CPropertyPage::OnKillActive() 4612 void COleControl::OnKillFocus(CWnd *) 4613 long CCheckListBox::OnLBAddString(unsigned int,long) 4614 long CCheckListBox::OnLBFindString(unsigned int,long) 4615 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4616 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4617 long CCheckListBox::OnLBGetText(unsigned int,long) 4618 long CCheckListBox::OnLBInsertString(unsigned int,long) 4619 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4620 long CCheckListBox::OnLBSelectString(unsigned int,long) 4621 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4622 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4623 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4624 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4625 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4626 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4627 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4628 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4629 void COleControl::OnLButtonDown(unsigned int,CPoint) 4630 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4631 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4632 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4633 void COleControl::OnLButtonUp(unsigned int,CPoint) 4634 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4635 void CAsyncMonikerFile::OnLowResource() 4636 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4637 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4638 void COleControl::OnMButtonDown(unsigned int,CPoint) 4639 void COleControl::OnMButtonUp(unsigned int,CPoint) 4640 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4641 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4642 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4643 void CHtmlView::OnMenuBar(int) 4644 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4645 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4646 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4647 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4648 int COleMessageFilter::OnMessagePending(tagMSG const *) 4649 int CSocket::OnMessagePending() 4650 void COleControl::OnMnemonic(tagMSG *) 4651 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4652 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4653 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4654 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4655 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4656 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4657 void COleControl::OnMouseMove(unsigned int,CPoint) 4658 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4659 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 4660 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 4661 void COleControl::OnMove(int,int) 4662 int COleDBRecordView::OnMove(unsigned int) 4663 int CRecordView::OnMove(unsigned int) 4664 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 4665 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 4666 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 4667 void CHtmlView::OnNavigateComplete2(wchar_t const *) 4668 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 4669 int CFrameWnd::OnNcActivate(int) 4670 int CMDIChildWnd::OnNcActivate(int) 4671 int CMiniFrameWnd::OnNcActivate(int) 4672 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4673 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4674 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4675 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4676 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4677 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 4678 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 4679 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 4680 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 4681 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 4682 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 4683 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 4684 void CListCtrl::OnNcDestroy() 4685 void CListView::OnNcDestroy() 4686 void CWnd::OnNcDestroy() 4687 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 4688 unsigned int COleControl::OnNcHitTest(CPoint) 4689 unsigned int CStatusBar::OnNcHitTest(CPoint) 4690 unsigned int CToolBar::OnNcHitTest(CPoint) 4691 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4692 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4693 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4694 void CDockBar::OnNcPaint() 4695 void COleControl::OnNcPaint() 4696 void CReBar::OnNcPaint() 4697 void CStatusBar::OnNcPaint() 4698 void CToolBar::OnNcPaint() 4699 int CDocument::OnNewDocument() 4700 int CHtmlEditDoc::OnNewDocument() 4701 int COleDocument::OnNewDocument() 4702 int COleLinkingDoc::OnNewDocument() 4703 void COleServerDoc::OnNewEmbedding(IStorage *) 4704 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 4705 int CEnumArray::OnNext(void *) 4706 int CEnumConnections::OnNext(void *) 4707 int CEnumConnPoints::OnNext(void *) 4708 int CEnumFormatEtc::OnNext(void *) 4709 int CEnumOleVerb::OnNext(void *) 4710 int CEnumUnknown::OnNext(void *) 4711 void CPreviewView::OnNextPage() 4712 int CView::OnNextPaneCmd(unsigned int) 4713 int CFileDialog::OnNotify(unsigned int,long,long *) 4714 int CPropertyPage::OnNotify(unsigned int,long,long *) 4715 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4716 int CWnd::OnNotify(unsigned int,long,long *) 4717 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4718 long CWnd::OnNTCtlColor(unsigned int,long) 4719 void CPreviewView::OnNumPageChange() 4720 void COlePropertyPage::OnObjectsChanged() 4721 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4722 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4723 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4724 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4725 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4726 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4727 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4728 void CCommonDialog::OnOK() 4729 void CDialog::OnOK() 4730 void CPropertyPage::OnOK() 4731 long COleControl::OnOpen(int,tagMSG *) 4732 void COleServerItem::OnOpen() 4733 int CDocument::OnOpenDocument(wchar_t const *) 4734 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 4735 int COleDocument::OnOpenDocument(wchar_t const *) 4736 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 4737 void COleServerDoc::OnOpenEmbedding(IStorage *) 4738 int CWinApp::OnOpenRecentFile(unsigned int) 4739 void CAsyncSocket::OnOutOfBandData(int) 4740 void CCommonDialog::OnPaint() 4741 void CControlBar::OnPaint() 4742 void CCtrlView::OnPaint() 4743 void CDialog::OnPaint() 4744 void CDockBar::OnPaint() 4745 void CHtmlEditView::OnPaint() 4746 void CHtmlView::OnPaint() 4747 void COleControl::OnPaint(CDC *) 4748 int COleControlContainer::OnPaint(CDC *) 4749 void COleResizeBar::OnPaint() 4750 void CReBar::OnPaint() 4751 void CSplitterWnd::OnPaint() 4752 void CStatusBar::OnPaint() 4753 void CToolBar::OnPaint() 4754 void CView::OnPaint() 4755 void CWnd::OnPaint() 4756 void CFrameWnd::OnPaletteChanged(CWnd *) 4757 void COleFrameHook::OnPaletteChanged(CWnd *) 4758 void CRichEditView::OnParaAlign(unsigned short) 4759 void CRichEditView::OnParaCenter() 4760 void CRichEditView::OnParaLeft() 4761 void CRichEditView::OnParaRight() 4762 void CWnd::OnParentNotify(unsigned int,long) 4763 int CRichEditView::OnPasteNativeObject(IStorage *) 4764 long CFrameWnd::OnPopMessageString(unsigned int,long) 4765 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4766 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4767 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4768 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4769 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4770 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4771 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4772 int CEditView::OnPreparePrinting(CPrintInfo *) 4773 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 4774 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 4775 int CView::OnPreparePrinting(CPrintInfo *) 4776 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 4777 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4778 void CPreviewView::OnPreviewClose() 4779 void CPreviewView::OnPreviewPrint() 4780 void CPreviewView::OnPrevPage() 4781 void CEditView::OnPrint(CDC *,CPrintInfo *) 4782 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 4783 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4784 void CView::OnPrint(CDC *,CPrintInfo *) 4785 void CRichEditView::OnPrinterChanged(CDC const &) 4786 void CPrintDialog::OnPrintSetup() 4787 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 4788 void CHtmlView::OnProgressChange(long,long) 4789 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4790 void CHtmlView::OnPropertyChange(wchar_t const *) 4791 int CPropertyPage::OnQueryCancel() 4792 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4793 int CFrameWnd::OnQueryEndSession() 4794 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4795 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4796 int CFrameWnd::OnQueryNewPalette() 4797 int COleFrameHook::OnQueryNewPalette() 4798 int COleServerItem::OnQueryUpdateItems() 4799 void CHtmlView::OnQuit() 4800 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4801 void COleControl::OnRButtonDown(unsigned int,CPoint) 4802 void COleControl::OnRButtonUp(unsigned int,CPoint) 4803 int COleServerDoc::OnReactivateAndUndo() 4804 void COleFrameHook::OnRecalcLayout() 4805 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4806 void CReBar::OnRecalcParent() 4807 void CAsyncSocket::OnReceive(int) 4808 void COleControl::OnReflectorDestroyed() 4809 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 4810 void COleClientItem::OnRemoveMenus(CMenu *) 4811 void COleDocObjectItem::OnRemoveMenus(CMenu *) 4812 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4813 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4814 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4815 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4816 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4817 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4818 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4819 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4820 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4821 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4822 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4823 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4824 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4825 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4826 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4827 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4828 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 4829 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 4830 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 4831 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 4832 long COleControl::XFontNotification::OnRequestEdit(long) 4833 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4834 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4835 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4836 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4837 void CEnumArray::OnReset() 4838 void CPropertyPage::OnReset() 4839 void COleControl::OnResetState() 4840 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4841 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4842 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4843 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 4844 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 4845 void COleClientItem::XAdviseSink::OnSave() 4846 int CDocument::OnSaveDocument(wchar_t const *) 4847 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 4848 int COleDocument::OnSaveDocument(wchar_t const *) 4849 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 4850 int COleServerDoc::OnSaveDocument(wchar_t const *) 4851 void COleServerDoc::OnSaveEmbedding(IStorage *) 4852 void COleServerItem::OnSaveEmbedding(IStorage *) 4853 void CDocObjectServer::OnSaveViewState(CArchive &) 4854 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4855 int CView::OnScroll(unsigned int,unsigned int,int) 4856 int COleClientItem::OnScrollBy(CSize) 4857 int CScrollView::OnScrollBy(CSize,int) 4858 int CView::OnScrollBy(CSize,int) 4859 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4860 void CAsyncSocket::OnSend(int) 4861 int CPropertyPage::OnSetActive() 4862 long CToolBar::OnSetBitmapSize(unsigned int,long) 4863 long CToolBar::OnSetButtonSize(unsigned int,long) 4864 void COleControl::OnSetClientSite() 4865 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4866 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4867 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4868 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4869 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4870 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4871 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4872 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4873 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4874 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4875 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4876 long CPropertySheet::OnSetDefID(unsigned int,long) 4877 int COleControl::OnSetExtent(tagSIZE *) 4878 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4879 void CFormView::OnSetFocus(CWnd *) 4880 void CFrameWnd::OnSetFocus(CWnd *) 4881 void COleControl::OnSetFocus(CWnd *) 4882 void CWnd::OnSetFocus(CWnd *) 4883 long CCheckListBox::OnSetFont(unsigned int,long) 4884 void CDialog::OnSetFont(CFont *) 4885 long CEditView::OnSetFont(unsigned int,long) 4886 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 4887 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4888 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4889 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4890 long CFrameWnd::OnSetMessageString(unsigned int,long) 4891 long COleControl::OnSetMessageString(unsigned int,long) 4892 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 4893 long CStatusBar::OnSetMinHeight(unsigned int,long) 4894 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 4895 void CDatabase::OnSetOptions(void *) 4896 void CRecordset::OnSetOptions(void *) 4897 void COlePropertyPage::OnSetPageSite() 4898 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4899 long CToolBar::OnSetSizeHelper(CSize &,long) 4900 long COleControl::OnSetText(unsigned int,long) 4901 long CStatusBar::OnSetText(unsigned int,long) 4902 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 4903 void CRecordset::OnSetUpdateOptions(void *) 4904 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 4905 void CDocObjectServerItem::OnShow() 4906 void COleServerItem::OnShow() 4907 long CReBar::OnShowBand(unsigned int,long) 4908 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 4909 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 4910 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 4911 void COleServerDoc::OnShowDocument(int) 4912 void COleClientItem::OnShowItem() 4913 void COleControl::OnShowToolBars() 4914 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 4915 void COleDocument::OnShowViews(int) 4916 void COleLinkingDoc::OnShowViews(int) 4917 void COleControl::OnShowWindow(int,unsigned int) 4918 long COleClientItem::XOleClientSite::OnShowWindow(int) 4919 long COleControlSite::XOleClientSite::OnShowWindow(int) 4920 void CDHtmlDialog::OnSize(unsigned int,int,int) 4921 void CFrameWnd::OnSize(unsigned int,int,int) 4922 void CHtmlView::OnSize(unsigned int,int,int) 4923 void CMDIChildWnd::OnSize(unsigned int,int,int) 4924 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4925 void COleControl::OnSize(unsigned int,int,int) 4926 void COleIPFrameWnd::OnSize(unsigned int,int,int) 4927 void COleResizeBar::OnSize(unsigned int,int,int) 4928 void CPreviewView::OnSize(unsigned int,int,int) 4929 void CScrollView::OnSize(unsigned int,int,int) 4930 void CSplitterWnd::OnSize(unsigned int,int,int) 4931 void CStatusBar::OnSize(unsigned int,int,int) 4932 long CControlBar::OnSizeParent(unsigned int,long) 4933 long CDockBar::OnSizeParent(unsigned int,long) 4934 long COleResizeBar::OnSizeParent(unsigned int,long) 4935 int CEnumArray::OnSkip() 4936 long CSocketWnd::OnSocketDead(unsigned int,long) 4937 long CSocketWnd::OnSocketNotify(unsigned int,long) 4938 int CView::OnSplitCmd(unsigned int) 4939 void CAsyncMonikerFile::OnStartBinding() 4940 void CHtmlView::OnStatusBar(int) 4941 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4942 void CHtmlView::OnStatusTextChange(wchar_t const *) 4943 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 4944 void CToolBar::OnSysColorChange() 4945 void CWnd::OnSysColorChange() 4946 void CFrameWnd::OnSysCommand(unsigned int,long) 4947 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4948 void CPropertySheet::OnSysCommand(unsigned int,long) 4949 void CSplitterWnd::OnSysCommand(unsigned int,long) 4950 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4951 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4952 void COleControl::OnTextChanged() 4953 void CEditView::OnTextNotFound(wchar_t const *) 4954 void CRichEditView::OnTextNotFound(wchar_t const *) 4955 void CHtmlView::OnTheaterMode(int) 4956 void CControlBar::OnTimer(unsigned int) 4957 void CHtmlView::OnTitleChange(wchar_t const *) 4958 void CHtmlView::OnToolBar(int) 4959 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4960 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4961 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4962 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4963 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4964 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 4965 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 4966 void CFileDialog::OnTypeChange() 4967 void COleControlContainer::OnUIActivate(COleControlSite *) 4968 long COleClientItem::XOleIPSite::OnUIActivate() 4969 long COleControlSite::XOleIPSite::OnUIActivate() 4970 void COleControlContainer::OnUIDeactivate(COleControlSite *) 4971 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 4972 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 4973 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 4974 void CView::OnUpdate(CView *,long,CObject *) 4975 void CRichEditView::OnUpdateBullet(CCmdUI *) 4976 void CRichEditView::OnUpdateCharBold(CCmdUI *) 4977 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 4978 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 4979 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 4980 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4981 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4982 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 4983 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4984 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4985 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4986 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4987 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4988 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4989 int COleServerDoc::OnUpdateDocument() 4990 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 4991 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 4992 void CHtmlView::OnUpdateEditCut(CCmdUI *) 4993 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 4994 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 4995 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 4996 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 4997 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 4998 void CEditView::OnUpdateEditUndo(CCmdUI *) 4999 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5000 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5001 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5002 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5003 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5004 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5005 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5006 void CFrameWnd::OnUpdateFrameTitle(int) 5007 void CMDIChildWnd::OnUpdateFrameTitle(int) 5008 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5009 int COleClientItem::OnUpdateFrameTitle() 5010 int COleFrameHook::OnUpdateFrameTitle() 5011 void COleServerItem::OnUpdateItems() 5012 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5013 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5014 void CEditView::OnUpdateNeedClip(CCmdUI *) 5015 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5016 void CEditView::OnUpdateNeedFind(CCmdUI *) 5017 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5018 void CEditView::OnUpdateNeedSel(CCmdUI *) 5019 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5020 void CEditView::OnUpdateNeedText(CCmdUI *) 5021 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5022 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5023 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5024 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5025 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5026 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5027 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5028 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5029 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5030 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5031 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5032 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5033 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5034 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 5035 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5036 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 5037 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5038 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 5039 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5040 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 5041 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5042 void CView::OnUpdateSplitCmd(CCmdUI *) 5043 long CHtmlView::OnUpdateUI() 5044 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5045 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5046 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5047 void CHtmlView::OnVisible(int) 5048 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5049 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5050 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5051 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5052 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5053 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5054 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5055 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5056 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5057 void CMDIFrameWnd::OnWindowNew() 5058 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5059 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5060 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5061 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5062 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5063 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5064 long CPropertyPage::OnWizardBack() 5065 int CPropertyPage::OnWizardFinish() 5066 long CPropertyPage::OnWizardNext() 5067 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5068 void CPreviewView::OnZoomIn() 5069 void CPreviewView::OnZoomOut() 5070 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5071 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5072 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5073 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5074 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 5075 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 5076 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 5077 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 5078 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 5079 int CDataPathProperty::Open(CFileException *) 5080 int CDataPathProperty::Open(COleControl *,CFileException *) 5081 int CDataPathProperty::Open(wchar_t const *,CFileException *) 5082 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 5083 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 5084 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 5085 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5086 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5087 int CMonikerFile::Open(IMoniker *,CFileException *) 5088 int CMonikerFile::Open(wchar_t const *,CFileException *) 5089 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 5090 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 5091 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 5092 long CDocObjectServer::XOleDocumentView::Open() 5093 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 5094 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 5095 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 5096 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 5097 int CDatabase::OpenEx(wchar_t const *,unsigned long) 5098 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 5099 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 5100 long COleUILinkInfo::OpenLinkSource(unsigned long) 5101 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 5102 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 5103 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 5104 int CHtmlEditDoc::OpenURL(wchar_t const *) 5105 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 5106 int CFileException::OsErrorToException(long) 5107 void CDumpContext::OutputString(wchar_t const *) 5108 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5109 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5110 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5111 int CWnd::PaintWindowlessControls(CDC *) 5112 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5113 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5114 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 5115 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5116 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5117 void CCommandLineInfo::ParseLast(int) 5118 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 5119 void CCommandLineInfo::ParseParam(char const *,int,int) 5120 void CCommandLineInfo::ParseParamFlag(char const *) 5121 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 5122 void CCommandLineInfo::ParseParamNotFlag(char const *) 5123 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5124 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 5125 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 5126 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 5127 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 5128 int CDC::PlayMetaFile(HMETAFILE__ *) 5129 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 5130 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 5131 int CDC::PolyBezierTo(tagPOINT const *,int) 5132 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5133 int CDC::PolylineTo(tagPOINT const *,int) 5134 void CPreviewView::PositionPage(unsigned int) 5135 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5136 int CMonikerFile::PostBindToStream(CFileException *) 5137 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5138 void CDialog::PostModal() 5139 void CPrintDialogEx::PostModal() 5140 void COleControl::PostModalDialog(HWND__ *) 5141 void CControlBar::PostNcDestroy() 5142 void CControlFrameWnd::PostNcDestroy() 5143 void CFindReplaceDialog::PostNcDestroy() 5144 void CFrameWnd::PostNcDestroy() 5145 void COleCntrFrameWnd::PostNcDestroy() 5146 void CReflectorWnd::PostNcDestroy() 5147 void CView::PostNcDestroy() 5148 void CWnd::PostNcDestroy() 5149 void ATL::CSimpleStringT::Preallocate(int) 5150 void ATL::CSimpleStringT::Preallocate(int) 5151 void CRecordset::PreBindFields() 5152 void CDocument::PreCloseFrame(CFrameWnd *) 5153 void COleDocument::PreCloseFrame(CFrameWnd *) 5154 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5155 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5156 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5157 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 5158 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5159 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 5160 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 5161 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5162 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 5163 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 5164 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 5165 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5166 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5167 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 5168 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 5169 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 5170 int CView::PreCreateWindow(tagCREATESTRUCTW &) 5171 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 5172 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5173 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5174 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 5175 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 5176 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 5177 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 5178 void CDialog::PreInitDialog() 5179 void COleChangeSourceDialog::PreInitDialog() 5180 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5181 HWND__ * CDialog::PreModal() 5182 HWND__ * CPrintDialogEx::PreModal() 5183 void COleControl::PreModalDialog(HWND__ *) 5184 void CRecordset::PrepareAndExecute() 5185 HWND__ * CDataExchange::PrepareCtrl(int) 5186 HWND__ * CDataExchange::PrepareEditCtrl(int) 5187 void CWnd::PrepareForHelp() 5188 COleControlSite * CDataExchange::PrepareOleCtrl(int) 5189 void CRecordset::PrepareUpdateHstmt() 5190 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 5191 char * ATL::CSimpleStringT::PrepareWrite(int) 5192 void ATL::CSimpleStringT::PrepareWrite2(int) 5193 void ATL::CSimpleStringT::PrepareWrite2(int) 5194 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 5195 void CDragListBox::PreSubclassWindow() 5196 void CWnd::PreSubclassWindow() 5197 int CWnd::PreTranslateInput(tagMSG *) 5198 int CControlBar::PreTranslateMessage(tagMSG *) 5199 int CDialog::PreTranslateMessage(tagMSG *) 5200 int CFormView::PreTranslateMessage(tagMSG *) 5201 int CFrameWnd::PreTranslateMessage(tagMSG *) 5202 int CHtmlView::PreTranslateMessage(tagMSG *) 5203 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5204 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5205 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5206 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5207 int CPropertyPage::PreTranslateMessage(tagMSG *) 5208 int CPropertySheet::PreTranslateMessage(tagMSG *) 5209 int CWinThread::PreTranslateMessage(tagMSG *) 5210 int CWnd::PreTranslateMessage(tagMSG *) 5211 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5212 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5213 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5214 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5215 long CRichEditView::PrintPage(CDC *,long,long) 5216 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5217 long COleException::Process(CException const *) 5218 int CSocket::ProcessAuxQueue() 5219 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5220 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5221 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5222 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5223 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5224 void COleSafeArray::PtrOfIndex(long *,void * *) 5225 int CMetaFileDC::PtVisible(int,int)const 5226 int CWinThread::PumpMessage() 5227 int CSocket::PumpMessages(unsigned int) 5228 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 5229 long CWnd::put_accName(tagVARIANT,wchar_t *) 5230 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5231 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5232 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5233 void COleSafeArray::PutElement(long *,void *) 5234 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 5235 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 5236 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 5237 int PX_Bool(CPropExchange *,wchar_t const *,int &) 5238 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 5239 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 5240 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5241 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 5242 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 5243 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 5244 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 5245 int PX_Double(CPropExchange *,wchar_t const *,double &) 5246 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 5247 int PX_Float(CPropExchange *,wchar_t const *,float &) 5248 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 5249 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5250 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 5251 int PX_Long(CPropExchange *,wchar_t const *,long &) 5252 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 5253 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 5254 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 5255 int PX_Short(CPropExchange *,wchar_t const *,short &) 5256 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 5257 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 5258 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 5259 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5260 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 5261 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5262 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 5263 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 5264 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5265 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5266 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5267 IUnknown * CCmdTarget::QueryAggregates(void const *) 5268 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5269 long COleDropSource::QueryContinueDrag(int,unsigned long) 5270 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5271 void * COleControl::QueryDefHandler(_GUID const &) 5272 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5273 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5274 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5275 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5276 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5277 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5278 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5279 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5280 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5281 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5282 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5283 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5284 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5285 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5286 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5287 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5288 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5289 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5290 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5291 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5292 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5293 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5294 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5295 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5296 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 5297 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5298 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5299 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 5300 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5301 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5302 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 5303 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5304 long CPropertyPage::QuerySiblings(unsigned int,long) 5305 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5306 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5307 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5308 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5309 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5310 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 5311 int COleControlSite::QuickActivate() 5312 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5313 int COleClientItem::ReactivateAndUndo() 5314 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5315 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5316 unsigned int CArchive::Read(void *,unsigned int) 5317 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5318 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5319 unsigned int CFile::Read(void *,unsigned int) 5320 int CImageList::Read(CArchive *) 5321 unsigned int CInternetFile::Read(void *,unsigned int) 5322 unsigned int CMemFile::Read(void *,unsigned int) 5323 unsigned int COleStreamFile::Read(void *,unsigned int) 5324 unsigned int CSocketFile::Read(void *,unsigned int) 5325 unsigned int CStdioFile::Read(void *,unsigned int) 5326 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5327 unsigned long CArchive::ReadCount() 5328 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5329 int CProperty::ReadFromStream(IStream *) 5330 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5331 int CPropertySet::ReadFromStream(IStream *) 5332 void COleClientItem::ReadItem(CArchive &) 5333 void COleClientItem::ReadItemCompound(CArchive &) 5334 void COleClientItem::ReadItemFlat(CArchive &) 5335 void CRecentFileList::ReadList() 5336 int CPropertySection::ReadNameDictFromStream(IStream *) 5337 CObject * CArchive::ReadObject(CRuntimeconst *) 5338 int CArchive::ReadString(ATL::CStringT > > &) 5339 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 5340 int CInternetFile::ReadString(ATL::CStringT > > &) 5341 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 5342 int CStdioFile::ReadString(ATL::CStringT > > &) 5343 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 5344 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5345 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5346 void ATL::CSimpleStringT::Reallocate(int) 5347 void ATL::CSimpleStringT::Reallocate(int) 5348 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5349 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5350 void CRecordset::RebindParams(void *) 5351 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5352 void CFrameWnd::RecalcLayout(int) 5353 void CMiniDockFrameWnd::RecalcLayout(int) 5354 void COleCntrFrameWnd::RecalcLayout(int) 5355 void COleDocIPFrameWnd::RecalcLayout(int) 5356 void COleIPFrameWnd::RecalcLayout(int) 5357 void CSplitterWnd::RecalcLayout() 5358 int CAsyncSocket::Receive(void *,int,int) 5359 int CSocket::Receive(void *,int,int) 5360 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5361 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5362 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5363 void COleControl::RecreateControlWindow() 5364 CRect const CFrameWnd::rectDefault 5365 int CMetaFileDC::RectVisible(tagRECT const *)const 5366 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5367 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5368 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5369 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5370 int CWnd::ReflectLastMsg(HWND__ *,long *) 5371 void COleControl::Refresh() 5372 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5373 int COleDropTarget::Register(CWnd *) 5374 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 5375 int COleMessageFilter::Register() 5376 int COleObjectFactory::Register() 5377 int COleTemplateServer::Register() 5378 int CWinApp::Register() 5379 int COleObjectFactory::RegisterAll() 5380 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 5381 void CDocManager::RegisterShellFileTypes(int) 5382 void CWinApp::RegisterShellFileTypes(int) 5383 unsigned long CArchiveStream::Release() 5384 unsigned long CBlobProperty::Release() 5385 unsigned long CBrowserControlSite::Release() 5386 unsigned long CDHtmlControlSink::Release() 5387 unsigned long CDHtmlElementEventSink::Release() 5388 unsigned long CDHtmlEventSink::Release() 5389 unsigned long CInnerUnknown::Release() 5390 void COleClientItem::Release(enum tagOLECLOSE) 5391 unsigned long COleConnPtContainer::Release() 5392 void COleDataObject::Release() 5393 unsigned long COleDispatchImpl::Release() 5394 void COleDocObjectItem::Release(enum tagOLECLOSE) 5395 unsigned long COleUILinkInfo::Release() 5396 unsigned long CPrintDialogEx::Release() 5397 void CDC::ReleaseAttribDC() 5398 void ATL::CSimpleStringT::ReleaseBuffer(int) 5399 void ATL::CSimpleStringT::ReleaseBuffer(int) 5400 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5401 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5402 void COleControl::ReleaseCaches() 5403 int COleControl::ReleaseCapture() 5404 int COleControl::ReleaseDC(CDC *) 5405 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5406 void COleDispatchDriver::ReleaseDispatch() 5407 void CDocObjectServer::ReleaseDocSite() 5408 void CDocument::ReleaseFile(CFile *,int) 5409 void CFontHolder::ReleaseFont() 5410 void CDC::ReleaseOutputDC() 5411 void CMetaFileDC::ReleaseOutputDC() 5412 void CPreviewDC::ReleaseOutputDC() 5413 int COleClientItem::Reload() 5414 int ATL::CStringT > >::Remove(wchar_t) 5415 int ATL::CStringT > >::Remove(char) 5416 void CFile::Remove(wchar_t const *) 5417 int CFtpConnection::Remove(wchar_t const *) 5418 void CPropertySection::Remove(unsigned long) 5419 void CPropertySet::Remove(_GUID) 5420 void CPropertySet::Remove(_GUID,unsigned long) 5421 void CRecentFileList::Remove(int) 5422 int CSimpleList::Remove(void *) 5423 void CMapPtrToPtr::RemoveAll() 5424 void CMapPtrToWord::RemoveAll() 5425 void CMapStringToOb::RemoveAll() 5426 void CMapStringToPtr::RemoveAll() 5427 void CMapStringToString::RemoveAll() 5428 void CMapWordToOb::RemoveAll() 5429 void CMapWordToPtr::RemoveAll() 5430 void CObList::RemoveAll() 5431 void CPropertySection::RemoveAll() 5432 void CPropertySet::RemoveAll() 5433 void CPtrList::RemoveAll() 5434 void CStringList::RemoveAll() 5435 void CTypeLibCacheMap::RemoveAll(void *) 5436 void CByteArray::RemoveAt(int,int) 5437 void CDWordArray::RemoveAt(int,int) 5438 void CObArray::RemoveAt(int,int) 5439 void CObList::RemoveAt(__POSITION *) 5440 void CPtrArray::RemoveAt(int,int) 5441 void CPtrList::RemoveAt(__POSITION *) 5442 void CStringArray::RemoveAt(int,int) 5443 void CStringList::RemoveAt(__POSITION *) 5444 void CUIntArray::RemoveAt(int,int) 5445 void CWordArray::RemoveAt(int,int) 5446 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5447 void CFrameWnd::RemoveControlBar(CControlBar *) 5448 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 5449 void CDocTemplate::RemoveDocument(CDocument *) 5450 void CMultiDocTemplate::RemoveDocument(CDocument *) 5451 void CSingleDocTemplate::RemoveDocument(CDocument *) 5452 void COleControl::RemoveFrameLevelUI() 5453 void CFrameWnd::RemoveFrameWnd() 5454 CObject * CObList::RemoveHead() 5455 void * CPtrList::RemoveHead() 5456 ATL::CStringT > > CStringList::RemoveHead() 5457 void CListCtrl::RemoveImageList(int) 5458 void CListView::RemoveImageList(int) 5459 void CTreeCtrl::RemoveImageList(int) 5460 void CTreeView::RemoveImageList(int) 5461 void COleDocument::RemoveItem(CDocItem *) 5462 int CMapPtrToPtr::RemoveKey(void *) 5463 int CMapPtrToWord::RemoveKey(void *) 5464 int CMapStringToOb::RemoveKey(wchar_t const *) 5465 int CMapStringToPtr::RemoveKey(wchar_t const *) 5466 int CMapStringToString::RemoveKey(wchar_t const *) 5467 int CMapWordToOb::RemoveKey(unsigned short) 5468 int CMapWordToPtr::RemoveKey(unsigned short) 5469 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5470 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5471 void CPropertySheet::RemovePage(int) 5472 void CPropertySheet::RemovePage(CPropertyPage *) 5473 void CDockBar::RemovePlaceHolder(CControlBar *) 5474 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5475 void CDataBoundProperty::RemoveSource() 5476 CObject * CObList::RemoveTail() 5477 void * CPtrList::RemoveTail() 5478 ATL::CStringT > > CStringList::RemoveTail() 5479 void CDocument::RemoveView(CView *) 5480 void CFile::Rename(wchar_t const *,wchar_t const *) 5481 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 5482 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5483 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5484 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 5485 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 5486 int ATL::CStringT > >::Replace(char,char) 5487 int ATL::CStringT > >::Replace(char const *,char const *) 5488 void CDatabase::ReplaceBrackets(wchar_t *) 5489 int CException::ReportError(unsigned int,unsigned int) 5490 int COleClientItem::ReportError(long)const 5491 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5492 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5493 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5494 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5495 int CRecordset::Requery() 5496 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5497 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5498 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5499 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5500 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5501 void COleServerDoc::RequestPositionChange(tagRECT const *) 5502 long COleControlSite::XOleIPSite::RequestUIActivate() 5503 long CEnumArray::XEnumVOID::Reset() 5504 void CRecordset::ResetCursor() 5505 void CCachedDataPathProperty::ResetData() 5506 void CDataPathProperty::ResetData() 5507 void COleControl::ResetStockProps() 5508 void CControlBar::ResetTimer(unsigned int,unsigned int) 5509 void COleControl::ResetVersion(unsigned long) 5510 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5511 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5512 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5513 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5514 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5515 void COleControl::ResizeFrameWindow(int,int) 5516 void COleSafeArray::ResizeOneDim(unsigned long) 5517 void COleControl::ResizeOpenControl(int,int) 5518 void CScrollView::ResizeParentToFit(int) 5519 int CDC::RestoreDC(int) 5520 int CPreviewDC::RestoreDC(int) 5521 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 5522 void CCmdTarget::RestoreWaitCursor() 5523 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5524 int ATL::CStringT > >::ReverseFind(wchar_t)const 5525 int ATL::CStringT > >::ReverseFind(char)const 5526 long CArchiveStream::Revert() 5527 void COleDropTarget::Revoke() 5528 void COleLinkingDoc::Revoke() 5529 void COleMessageFilter::Revoke() 5530 void COleObjectFactory::Revoke() 5531 void COleObjectFactory::RevokeAll() 5532 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 5533 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 5534 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 5535 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 5536 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5537 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 5538 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 5539 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 5540 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 5541 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 5542 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 5543 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 5544 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 5545 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 5546 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5547 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 5548 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 5549 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 5550 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 5551 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 5552 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 5553 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 5554 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 5555 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 5556 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 5557 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 5558 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5559 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5560 int CDatabase::Rollback() 5561 void COleClientItem::Run() 5562 int CWinApp::Run() 5563 int CWinThread::Run() 5564 int CWinApp::RunAutomated() 5565 int CWinApp::RunEmbedded() 5566 int CWnd::RunModalLoop(unsigned long) 5567 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5568 int CEditView::SameAsSelected(wchar_t const *,int) 5569 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 5570 long CBlobProperty::Save(IStream *,int) 5571 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 5572 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5573 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5574 long COleControl::XPersistStorage::Save(IStorage *,int) 5575 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5576 long COleControl::XPersistStreamInit::Save(IStream *,int) 5577 int CDocManager::SaveAllModified() 5578 int CDocTemplate::SaveAllModified() 5579 int CWinApp::SaveAllModified() 5580 void CFrameWnd::SaveBarState(wchar_t const *)const 5581 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 5582 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5583 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5584 int CDC::SaveDC() 5585 int CPreviewDC::SaveDC() 5586 void COleServerDoc::SaveEmbedding() 5587 int CFormView::SaveFocusControl() 5588 int CDocument::SaveModified() 5589 int COleDocument::SaveModified() 5590 int COleServerDoc::SaveModified() 5591 int COleServerDoc::SaveModifiedPrompt() 5592 long COleClientItem::XOleClientSite::SaveObject() 5593 long COleControlSite::XOleClientSite::SaveObject() 5594 int CControlBarInfo::SaveState(wchar_t const *,int) 5595 void CDockState::SaveState(wchar_t const *) 5596 long COleControl::SaveState(IStream *) 5597 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 5598 void CWinApp::SaveStdProfileSettings() 5599 void COleDocument::SaveToStorage(CObject *) 5600 void COleLinkingDoc::SaveToStorage(CObject *) 5601 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5602 void CDockState::ScalePoint(CPoint &) 5603 void CDockState::ScaleRectPos(CRect &) 5604 CSize CDC::ScaleViewportExt(int,int,int,int) 5605 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5606 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5607 CSize CDC::ScaleWindowExt(int,int,int,int) 5608 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5609 void CWnd::ScreenToClient(tagRECT *)const 5610 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5611 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5612 void COleControlContainer::ScrollChildren(int,int) 5613 int COleServerDoc::ScrollContainerBy(CSize) 5614 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 5615 void CScrollView::ScrollToDevicePosition(tagPOINT) 5616 void CScrollView::ScrollToPosition(tagPOINT) 5617 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5618 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5619 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5620 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5621 unsigned __int64 CFile::Seek(__int64,unsigned int) 5622 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 5623 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 5624 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 5625 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 5626 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 5627 CFont * CFontHolder::Select(CDC *,long,long) 5628 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 5629 int CDC::SelectClipPath(int) 5630 int CDC::SelectClipRgn(CRgn *) 5631 int CDC::SelectClipRgn(CRgn *,int) 5632 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5633 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5634 long CPrintDialogEx::SelectionChange() 5635 int CDC::SelectObject(CRgn *) 5636 CBrush * CDC::SelectObject(CBrush *) 5637 CPen * CDC::SelectObject(CPen *) 5638 CFont * CDC::SelectObject(CFont *) 5639 CFont * CPreviewDC::SelectObject(CFont *) 5640 CPalette * CDC::SelectPalette(CPalette *,int) 5641 void CWinApp::SelectPrinter(void *,void *,int) 5642 CFont * COleControl::SelectStockFont(CDC *) 5643 CGdiObject * CDC::SelectStockObject(int) 5644 CGdiObject * CPreviewDC::SelectStockObject(int) 5645 int CAsyncSocket::Send(void const *,int,int) 5646 int CSocket::Send(void const *,int,int) 5647 void COleControl::SendAdvise(unsigned int) 5648 int CWnd::SendChildNotifyLastMsg(long *) 5649 int CSocket::SendChunk(void const *,int,int) 5650 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5651 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5652 void CDocument::SendInitialUpdate() 5653 void CRecordset::SendLongBinaryData(void *) 5654 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5655 void COleControlSite::SendMnemonic(tagMSG *) 5656 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 5657 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 5658 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 5659 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 5660 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 5661 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5662 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5663 void CByteArray::Serialize(CArchive &) 5664 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5665 void CDocItem::Serialize(CArchive &) 5666 void CDockState::Serialize(CArchive &) 5667 void CDWordArray::Serialize(CArchive &) 5668 void CEditView::Serialize(CArchive &) 5669 void CMapStringToOb::Serialize(CArchive &) 5670 void CMapStringToString::Serialize(CArchive &) 5671 void CMapWordToOb::Serialize(CArchive &) 5672 void CObArray::Serialize(CArchive &) 5673 void CObList::Serialize(CArchive &) 5674 void COleClientItem::Serialize(CArchive &) 5675 void COleControl::Serialize(CArchive &) 5676 void COleDocument::Serialize(CArchive &) 5677 void CRichEditDoc::Serialize(CArchive &) 5678 void CRichEditView::Serialize(CArchive &) 5679 void CStringArray::Serialize(CArchive &) 5680 void CStringList::Serialize(CArchive &) 5681 void CWordArray::Serialize(CArchive &) 5682 CArchive & ATL::CTime::Serialize64(CArchive &) 5683 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 5684 void CArchive::SerializeClass(CRuntimeconst *) 5685 void COleControl::SerializeExtent(CArchive &) 5686 void CEditView::SerializeRaw(CArchive &) 5687 void COleControl::SerializeStockProps(CArchive &) 5688 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5689 int CProperty::Set(unsigned long,void * const,unsigned long) 5690 int CProperty::Set(void * const) 5691 int CProperty::Set(void * const,unsigned long) 5692 int CPropertySection::Set(unsigned long,void *) 5693 int CPropertySection::Set(unsigned long,void *,unsigned long) 5694 int CPropertySet::Set(_GUID,unsigned long,void *) 5695 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5696 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5697 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5698 int CPropertySheet::SetActivePage(int) 5699 int CPropertySheet::SetActivePage(CPropertyPage *) 5700 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5701 void CFrameWnd::SetActiveView(CView *,int) 5702 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5703 void COleControl::SetAppearance(short) 5704 int CDC::SetArcDirection(int) 5705 void ATL::CSimpleStringT::SetAt(int,wchar_t) 5706 void ATL::CSimpleStringT::SetAt(int,char) 5707 void CByteArray::SetAtGrow(int,unsigned char) 5708 void CDWordArray::SetAtGrow(int,unsigned long) 5709 void CObArray::SetAtGrow(int,CObject *) 5710 void CPtrArray::SetAtGrow(int,void *) 5711 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 5712 void CStringArray::SetAtGrow(int,wchar_t const *) 5713 void CUIntArray::SetAtGrow(int,unsigned int) 5714 void CWordArray::SetAtGrow(int,unsigned short) 5715 void CDC::SetAttribDC(HDC__ *) 5716 void CMetaFileDC::SetAttribDC(HDC__ *) 5717 void CPreviewDC::SetAttribDC(HDC__ *) 5718 void COleControl::SetBackColor(unsigned long) 5719 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5720 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5721 void CControlBar::SetBarStyle(unsigned long) 5722 int CToolBar::SetBitmap(HBITMAP__ *) 5723 unsigned long CDC::SetBkColor(unsigned long) 5724 unsigned long CPreviewDC::SetBkColor(unsigned long) 5725 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 5726 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 5727 int CDC::SetBkMode(int) 5728 void CRecordset::SetBookmark(CDBVariant const &) 5729 void CControlBar::SetBorders(int,int,int,int) 5730 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5731 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5732 void COleControl::SetBorderStyle(short) 5733 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5734 int CToolBar::SetButtons(unsigned int const *,int) 5735 void CToolBar::SetButtonStyle(int,unsigned int) 5736 int CToolBar::SetButtonText(int,wchar_t const *) 5737 CWnd * COleControl::SetCapture() 5738 long COleControlSite::XOleIPSite::SetCapture(int) 5739 void CRichEditView::SetCharFormat(CHARFORMAT2W) 5740 void CCheckListBox::SetCheck(int,int) 5741 void CCmdUI::SetCheck(int) 5742 int CListCtrl::SetCheck(int,int) 5743 void COleCmdUI::SetCheck(int) 5744 void CStatusCmdUI::SetCheck(int) 5745 void CTestCmdUI::SetCheck(int) 5746 void CToolCmdUI::SetCheck(int) 5747 int CTreeCtrl::SetCheck(_TREEITEM *,int) 5748 void CCheckListBox::SetCheckStyle(unsigned int) 5749 void CPropertySet::SetClassID(_GUID) 5750 void CDataBoundProperty::SetClientSite(COleControlSite *) 5751 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5752 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5753 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5754 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5755 void COleDataSource::SetClipboard() 5756 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5757 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 5758 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5759 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5760 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5761 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5762 void CSplitterWnd::SetColumnInfo(int,int,int) 5763 int CListCtrl::SetColumnOrderArray(int,int *) 5764 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5765 void CDocTemplate::SetContainerInfo(unsigned int) 5766 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5767 void CReflectorWnd::SetControl(COleControl *) 5768 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 5769 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 5770 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 5771 int COleControl::SetControlSize(int,int) 5772 int COlePropertyPage::SetControlStatus(unsigned int,int) 5773 void CFileDialog::SetControlText(int,char const *) 5774 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 5775 void COleCurrency::SetCurrency(long,long) 5776 void CColorDialog::SetCurrentColor(unsigned long) 5777 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 5778 void CWinApp::SetCurrentHandles() 5779 void CPreviewView::SetCurrentPage(unsigned int,int) 5780 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 5781 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 5782 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5783 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5784 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5785 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5786 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5787 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5788 int CMonthCalCtrl::SetDayState(int,unsigned long *) 5789 void COccManager::SetDefaultButton(CWnd *,int) 5790 void COleControlSite::SetDefaultButton(int) 5791 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 5792 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 5793 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5794 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5795 void CFileDialog::SetDefExt(char const *) 5796 void COlePropertyPage::SetDialogResource(void *) 5797 void CRecordset::SetDirtyFieldStatus(unsigned long) 5798 int COleControlSite::SetDlgCtrlID(int) 5799 int CWnd::SetDlgCtrlID(int) 5800 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5801 void CWnd::SetDlgItemInt(int,unsigned int,int) 5802 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 5803 void CWnd::SetDlgItemTextW(int,wchar_t const *) 5804 void CFrameWnd::SetDockState(CDockState const &) 5805 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5806 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5807 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5808 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5809 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 5810 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 5811 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 5812 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 5813 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 5814 void COleControl::SetEnabled(int) 5815 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5816 int COleControlSite::SetExtent() 5817 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5818 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5819 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5820 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5821 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 5822 void CRecordset::SetFieldDirty(void *,int) 5823 void CRecordset::SetFieldNull(void *,int) 5824 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5825 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 5826 CWnd * COleControl::SetFocus() 5827 CWnd * COleControlSite::SetFocus(tagMSG *) 5828 CWnd * COleControlSite::SetFocus() 5829 CWnd * CWnd::SetFocus() 5830 long COleControlSite::XOleIPSite::SetFocus(int) 5831 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 5832 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 5833 void CFontHolder::SetFont(IFont *) 5834 void COleControl::SetFont(IFontDisp *) 5835 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 5836 void COleControl::SetForeColor(unsigned long) 5837 void CPropertySection::SetFormatID(_GUID) 5838 void CPropertySet::SetFormatVersion(unsigned short) 5839 void CSharedFile::SetHandle(void *,int) 5840 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 5841 void CToolBar::SetHeight(int) 5842 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5843 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 5844 void CDHtmlDialog::SetHostFlags(unsigned long) 5845 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 5846 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5847 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5848 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5849 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5850 int COleClientItem::SetIconicMetafile(void *) 5851 CSize CListCtrl::SetIconSpacing(int,int) 5852 CSize CListCtrl::SetIconSpacing(CSize) 5853 void CProperty::SetID(unsigned long) 5854 int CReBarCtrl::SetImageList(CImageList *) 5855 int CStatusBar::SetIndicators(unsigned int const *,int) 5856 void COleControl::SetInitialDataFormats() 5857 long CDocObjectServer::XPrint::SetInitialPageNum(long) 5858 void COleControl::SetInitialSize(int,int) 5859 void CControlBar::SetInPlaceOwner(CWnd *) 5860 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 5861 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 5862 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 5863 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 5864 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 5865 int CListCtrl::SetItemCountEx(int,unsigned long) 5866 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 5867 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 5868 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 5869 int CListCtrl::SetItemText(int,int,wchar_t const *) 5870 unsigned long CDC::SetLayout(unsigned long) 5871 void ATL::CSimpleStringT::SetLength(int) 5872 void ATL::CSimpleStringT::SetLength(int) 5873 void CFile::SetLength(unsigned __int64) 5874 void CInternetFile::SetLength(unsigned __int64) 5875 void CMemFile::SetLength(unsigned __int64) 5876 void COleStreamFile::SetLength(unsigned __int64) 5877 void CSocketFile::SetLength(unsigned __int64) 5878 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 5879 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 5880 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 5881 void CRecordset::SetLockingMode(unsigned int) 5882 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5883 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5884 int CDC::SetMapMode(int) 5885 int CPreviewDC::SetMapMode(int) 5886 unsigned long CDC::SetMapperFlags(unsigned long) 5887 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5888 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5889 void CFrameWnd::SetMessageText(unsigned int) 5890 void CFrameWnd::SetMessageText(wchar_t const *) 5891 void CPropertyPage::SetModified(int) 5892 void COleControl::SetModifiedFlag(int) 5893 void COlePropertyPage::SetModifiedFlag(int) 5894 void CRichEditDoc::SetModifiedFlag(int) 5895 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 5896 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 5897 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 5898 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 5899 int CPropertySection::SetName(unsigned long,wchar_t const *) 5900 void COleControl::SetNotPermitted() 5901 void CCmdTarget::SetNotSupported() 5902 void COleControl::SetNotSupported() 5903 void CRecordset::SetNullFieldStatus(unsigned long) 5904 void CRecordset::SetNullParamStatus(unsigned long) 5905 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5906 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5907 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 5908 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5909 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5910 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5911 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5912 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 5913 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 5914 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 5915 int CHeaderCtrl::SetOrderArray(int,int *) 5916 void CPropertySet::SetOSVersion(unsigned long) 5917 void CDC::SetOutputDC(HDC__ *) 5918 void CMetaFileDC::SetOutputDC(HDC__ *) 5919 void CPreviewDC::SetOutputDC(HDC__ *) 5920 void CToolBar::SetOwner(CWnd *) 5921 void COlePropertyPage::SetPageName(wchar_t const *) 5922 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 5923 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 5924 void CStatusBar::SetPaneStyle(int,unsigned int) 5925 int CStatusBar::SetPaneText(int,wchar_t const *,int) 5926 int CRichEditCtrl::SetParaFormat(_paraformat &) 5927 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 5928 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 5929 void CRecordset::SetParamNull(int,int) 5930 void CDocument::SetPathName(wchar_t const *,int) 5931 void COleDocument::SetPathName(wchar_t const *,int) 5932 void CRichEditDoc::SetPathName(wchar_t const *,int) 5933 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 5934 int CDC::SetPolyFillMode(int) 5935 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 5936 int COleClientItem::SetPrintDevice(tagPDW const *) 5937 void CEditView::SetPrinterFont(CFont *) 5938 int CPreviewView::SetPrintView(CView *) 5939 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 5940 void COleControlSite::SetProperty(long,unsigned short,...) 5941 void COleDispatchDriver::SetProperty(long,unsigned short,...) 5942 void CWnd::SetProperty(long,unsigned short,...) 5943 void COleControlSite::SetPropertyV(long,unsigned short,char *) 5944 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 5945 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 5946 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 5947 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 5948 int COlePropertyPage::SetPropText(wchar_t const *,short &) 5949 int COlePropertyPage::SetPropText(wchar_t const *,int &) 5950 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 5951 int COlePropertyPage::SetPropText(wchar_t const *,long &) 5952 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 5953 int COlePropertyPage::SetPropText(wchar_t const *,float &) 5954 int COlePropertyPage::SetPropText(wchar_t const *,double &) 5955 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 5956 long CWnd::SetProxy(IAccessibleProxy *) 5957 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 5958 void CCmdUI::SetRadio(int) 5959 void CTestCmdUI::SetRadio(int) 5960 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5961 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5962 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5963 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5964 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5965 void CSliderCtrl::SetRange(int,int,int) 5966 int CInternetFile::SetReadBufferSize(unsigned int) 5967 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 5968 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 5969 int COleControl::SetRectInContainer(tagRECT const *) 5970 void CWinApp::SetRegistryKey(unsigned int) 5971 void CWinApp::SetRegistryKey(wchar_t const *) 5972 int CDC::SetROP2(int) 5973 void CSplitterWnd::SetRowInfo(int,int,int) 5974 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 5975 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 5976 void CRecordset::SetRowsetSize(unsigned long) 5977 void CPreviewView::SetScaledSize(unsigned int) 5978 void CPreviewDC::SetScaleRatio(int,int) 5979 void CScrollView::SetScaleToFitSize(tagSIZE) 5980 void CDockState::SetScreenSize(CSize &) 5981 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 5982 int CWnd::SetScrollPos(int,int,int) 5983 void CWnd::SetScrollRange(int,int,int,int) 5984 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 5985 void CSplitterWnd::SetScrollStyle(unsigned long) 5986 int CPropertySection::SetSectionName(wchar_t const *) 5987 void CRichEditCtrl::SetSel(long,long) 5988 void CSliderCtrl::SetSelection(int,int) 5989 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 5990 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 5991 void CCheckListBox::SetSelectionCheck(int) 5992 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 5993 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 5994 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5995 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 5996 long CPrintDialogEx::SetSite(IUnknown *) 5997 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 5998 void CByteArray::SetSize(int,int) 5999 void CDWordArray::SetSize(int,int) 6000 void CObArray::SetSize(int,int) 6001 void CPtrArray::SetSize(int,int) 6002 void CStringArray::SetSize(int,int) 6003 void CUIntArray::SetSize(int,int) 6004 void CWordArray::SetSize(int,int) 6005 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6006 void CSplitterWnd::SetSplitCursor(int) 6007 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6008 void CRecordset::SetState(int,wchar_t const *,unsigned long) 6009 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 6010 int CControlBar::SetStatusText(int) 6011 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 6012 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 6013 int CDC::SetStretchBltMode(int) 6014 void ATL::CSimpleStringT::SetString(wchar_t const *) 6015 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 6016 void ATL::CSimpleStringT::SetString(char const *) 6017 void ATL::CSimpleStringT::SetString(char const *,int) 6018 void COleVariant::SetString(wchar_t const *,unsigned short) 6019 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6020 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6021 int CDialogTemplate::SetSystemFont(unsigned short) 6022 void CEditView::SetTabStops(int) 6023 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6024 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 6025 void CCmdUI::SetText(wchar_t const *) 6026 void COleCmdUI::SetText(wchar_t const *) 6027 void COleControl::SetText(wchar_t const *) 6028 void CStatusCmdUI::SetText(wchar_t const *) 6029 void CTestCmdUI::SetText(wchar_t const *) 6030 void CToolCmdUI::SetText(wchar_t const *) 6031 unsigned int CDC::SetTextAlign(unsigned int) 6032 int CDC::SetTextCharacterExtra(int) 6033 unsigned long CDC::SetTextColor(unsigned long) 6034 unsigned long CPreviewDC::SetTextColor(unsigned long) 6035 int CDC::SetTextJustification(int,int) 6036 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 6037 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6038 int CDateTimeCtrl::SetTime(ATL::CTime const *) 6039 void CDocument::SetTitle(wchar_t const *) 6040 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 6041 void CRichEditDoc::SetTitle(wchar_t const *) 6042 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 6043 void CMonthCalCtrl::SetToday(ATL::CTime const *) 6044 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6045 void CPreviewDC::SetTopLeftOffset(CSize) 6046 void CProperty::SetType(unsigned long) 6047 void CRecordset::SetUpdateMethod() 6048 void CThreadSlotData::SetValue(int,void *) 6049 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6050 CSize CDC::SetViewportExt(int,int) 6051 CSize CMetaFileDC::SetViewportExt(int,int) 6052 CSize CPreviewDC::SetViewportExt(int,int) 6053 CPoint CDC::SetViewportOrg(int,int) 6054 CPoint CMetaFileDC::SetViewportOrg(int,int) 6055 CPoint CPreviewDC::SetViewportOrg(int,int) 6056 CSize CDC::SetWindowExt(int,int) 6057 CSize CPreviewDC::SetWindowExt(int,int) 6058 CPoint CDC::SetWindowOrg(int,int) 6059 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6060 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6061 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6062 void COleControlSite::SetWindowTextW(wchar_t const *) 6063 void CWnd::SetWindowTextW(wchar_t const *) 6064 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 6065 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 6066 int CInternetFile::SetWriteBufferSize(unsigned int) 6067 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6068 long CDocObjectServer::XOleDocumentView::Show(int) 6069 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6070 void CDockBar::ShowAll(int) 6071 long CRichEditCntrItem::ShowContainerUI(int) 6072 long CRichEditView::ShowContainerUI(int) 6073 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6074 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6075 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6076 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6077 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6078 long COleClientItem::XOleClientSite::ShowObject() 6079 long COleControlSite::XOleClientSite::ShowObject() 6080 void CFrameWnd::ShowOwnedWindows(int) 6081 long COleControlSite::XOleControlSite::ShowPropertyFrame() 6082 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6083 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6084 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6085 int COleControlSite::ShowWindow(int) 6086 int CWnd::ShowWindow(int) 6087 tagSIZE const CScrollView::sizeDefault 6088 int CMonthCalCtrl::SizeMinReq(int) 6089 void CBitmapButton::SizeToContent() 6090 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6091 long CEnumArray::XEnumVOID::Skip(unsigned long) 6092 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6093 int CAsyncSocket::Socket(int,long,int,int) 6094 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 6095 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 6096 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 6097 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 6098 int CSplitterWnd::SplitColumn(int) 6099 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6100 int CSplitterWnd::SplitRow(int) 6101 int CDC::StartDocW(wchar_t const *) 6102 void CDockContext::StartDrag(CPoint) 6103 void CDockContext::StartResize(int,CPoint) 6104 void CSplitterWnd::StartTracking(int) 6105 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6106 void CSplitterWnd::StopTracking(int) 6107 void CRuntimeClass::Store(CArchive &)const 6108 void CRecordset::StoreFields() 6109 void CRichEditView::Stream(CArchive &,int) 6110 void CDockContext::Stretch(CPoint) 6111 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6112 int ATL::CSimpleStringT::StringLength(char const *) 6113 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6114 int ATL::CSimpleStringT::StringLength(char const *) 6115 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6116 int CWnd::SubclassWindow(HWND__ *) 6117 int COleDocObjectItem::SupportsIPrint() 6118 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6119 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6120 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6121 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 6122 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 6123 void CRichEditView::TextNotFound(wchar_t const *) 6124 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 6125 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 6126 void CFileException::ThrowErrno(int,wchar_t const *) 6127 void COleControl::ThrowError(long,unsigned int,unsigned int) 6128 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 6129 void ATL::CSimpleStringT::ThrowMemoryException() 6130 void ATL::CSimpleStringT::ThrowMemoryException() 6131 void CFileException::ThrowOsError(long,wchar_t const *) 6132 void CDockContext::ToggleDocking() 6133 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 6134 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 6135 COleVariant CDataSourceControl::ToVariant(int) 6136 int CDockContext::Track() 6137 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6138 void CSplitterWnd::TrackColumnSize(int,int) 6139 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6140 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6141 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 6142 void CSplitterWnd::TrackRowSize(int,int) 6143 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6144 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6145 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6146 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6147 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6148 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6149 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 6150 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6151 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6152 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6153 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6154 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 6155 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6156 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6157 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6158 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6159 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 6160 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 6161 ATL::CStringT > > & ATL::CStringT > >::Trim() 6162 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 6163 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 6164 ATL::CStringT > > & ATL::CStringT > >::Trim() 6165 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 6166 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 6167 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6168 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 6169 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 6170 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6171 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 6172 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 6173 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6174 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 6175 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 6176 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6177 void ATL::CSimpleStringT::Truncate(int) 6178 void ATL::CSimpleStringT::Truncate(int) 6179 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6180 void COccManager::UIActivateControl(CWnd *) 6181 long COleControl::XOleInPlaceObject::UIDeactivate() 6182 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 6183 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6184 void COleSafeArray::UnaccessData() 6185 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 6186 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6187 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6188 long COleControl::XOleObject::Unadvise(unsigned long) 6189 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6190 long COleServerItem::XOleObject::Unadvise(unsigned long) 6191 void CRecordset::UnbindFieldsForUpdate() 6192 long COleControl::XOleCache::Uncache(unsigned long) 6193 long COleControl::XViewObject::Unfreeze(unsigned long) 6194 int CEvent::Unlock() 6195 int CMultiLock::Unlock(long,long *) 6196 int CMultiLock::Unlock() 6197 int CMutex::Unlock() 6198 void COleSafeArray::Unlock() 6199 int CSemaphore::Unlock(long,long *) 6200 int CSingleLock::Unlock(long,long *) 6201 int CSingleLock::Unlock() 6202 void CTypeLibCache::Unlock() 6203 void ATL::CSimpleStringT::UnlockBuffer() 6204 void ATL::CSimpleStringT::UnlockBuffer() 6205 void CEditView::UnlockBuffer()const 6206 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 6207 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 6208 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 6209 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 6210 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 6211 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 6212 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6213 int COleObjectFactory::Unregister() 6214 int COleTemplateServer::Unregister() 6215 int CWinApp::Unregister() 6216 int COleObjectFactory::UnregisterAll() 6217 void CDocManager::UnregisterShellFileTypes() 6218 void CWinApp::UnregisterShellFileTypes() 6219 HWND__ * CWnd::UnsubclassWindow() 6220 int CRecordset::Update() 6221 long CDocObjectServer::XOleObject::Update() 6222 long COleControl::XOleObject::Update() 6223 long COleServerDoc::XOleObject::Update() 6224 long COleServerItem::XOleObject::Update() 6225 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6226 void CStatusBar::UpdateAllPanes(int,int) 6227 void CDocument::UpdateAllViews(CView *,long,CObject *) 6228 void CScrollView::UpdateBars() 6229 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6230 long CDataSourceControl::UpdateControls() 6231 long CDataSourceControl::UpdateCursor() 6232 int CWnd::UpdateData(int) 6233 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6234 void CDocument::UpdateFrameCounts() 6235 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 6236 int CRecordset::UpdateInsertDelete() 6237 void COleClientItem::UpdateItemType() 6238 int COleClientItem::UpdateLink() 6239 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6240 void CRecentFileList::UpdateMenu(CCmdUI *) 6241 void COleDocument::UpdateModifiedFlag() 6242 void CRichEditDoc::UpdateModifiedFlag() 6243 void CRichEditDoc::UpdateObjectCache() 6244 void CWinApp::UpdatePrinterSelection(int) 6245 int COleObjectFactory::UpdateRegistry(int) 6246 void COleObjectFactory::UpdateRegistry(wchar_t const *) 6247 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 6248 int COleObjectFactory::UpdateRegistryAll(int) 6249 void CDockContext::UpdateState(int *,int) 6250 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6251 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 6252 long CBrowserControlSite::UpdateUI() 6253 long CDHtmlDialog::UpdateUI() 6254 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 6255 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6256 void COleLinkingDoc::UpdateVisibleLock(int,int) 6257 void CDatabase::VerifyConnect() 6258 unsigned long CRecordset::VerifyCursorSupport() 6259 void CRecordset::VerifyDriverBehavior() 6260 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 6261 int COleObjectFactory::VerifyUserLicense() 6262 int CListBox::VKeyToItem(unsigned int,unsigned int) 6263 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6264 int COleControl::WillAmbientsBeValidDuringLoad() 6265 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6266 long COleControl::WindowProc(unsigned int,unsigned int,long) 6267 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6268 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6269 long CReBar::WindowProc(unsigned int,unsigned int,long) 6270 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6271 long CWnd::WindowProc(unsigned int,unsigned int,long) 6272 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 6273 void CWnd::WinHelpInternal(unsigned long,unsigned int) 6274 void CWinApp::WinHelpW(unsigned long,unsigned int) 6275 void CWnd::WinHelpW(unsigned long,unsigned int) 6276 CWnd const CWnd::wndBottom 6277 CWnd const CWnd::wndNoTopMost 6278 CWnd const CWnd::wndTop 6279 CWnd const CWnd::wndTopMost 6280 void CRichEditView::WrapChanged() 6281 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6282 void CArchive::Write(void const *,unsigned int) 6283 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6284 void CFile::Write(void const *,unsigned int) 6285 void CGopherFile::Write(void const *,unsigned int) 6286 int CImageList::Write(CArchive *) 6287 void CInternetFile::Write(void const *,unsigned int) 6288 void CMemFile::Write(void const *,unsigned int) 6289 void COleStreamFile::Write(void const *,unsigned int) 6290 void CSocketFile::Write(void const *,unsigned int) 6291 void CStdioFile::Write(void const *,unsigned int) 6292 void CArchive::WriteClass(CRuntimeconst *) 6293 void CArchive::WriteCount(unsigned long) 6294 void COleClientItem::WriteItem(CArchive &) 6295 void COleClientItem::WriteItemCompound(CArchive &) 6296 void COleClientItem::WriteItemFlat(CArchive &) 6297 void CRecentFileList::WriteList() 6298 int CPropertySection::WriteNameDictToStream(IStream *) 6299 void CArchive::WriteObject(CObject const *) 6300 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 6301 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 6302 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 6303 void CArchive::WriteString(wchar_t const *) 6304 void CGopherFile::WriteString(wchar_t const *) 6305 void CInternetFile::WriteString(wchar_t const *) 6306 void CStdioFile::WriteString(wchar_t const *) 6307 void CEditView::WriteToArchive(CArchive &) 6308 int CProperty::WriteToStream(IStream *) 6309 int CPropertySection::WriteToStream(IStream *) 6310 int CPropertySet::WriteToStream(IStream *) 6311 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 6312 CDaoException::CDaoException() 6313 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 6314 CDaoIndexInfo::CDaoIndexInfo() 6315 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 6316 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 6317 CDaoRecordView::CDaoRecordView(unsigned int) 6318 CDaoRecordView::CDaoRecordView(wchar_t const *) 6319 CDaoRelationInfo::CDaoRelationInfo() 6320 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 6321 CDaoWorkspace::CDaoWorkspace() 6322 CDaoDatabase::~CDaoDatabase() 6323 CDaoException::~CDaoException() 6324 CDaoIndexInfo::~CDaoIndexInfo() 6325 CDaoQueryDef::~CDaoQueryDef() 6326 CDaoRecordset::~CDaoRecordset() 6327 CDaoRecordView::~CDaoRecordView() 6328 CDaoRelationInfo::~CDaoRelationInfo() 6329 CDaoTableDef::~CDaoTableDef() 6330 CDaoWorkspace::~CDaoWorkspace() 6331 void CDaoRecordset::AddNew() 6332 void AfxDaoCheck(long,char const *,char const *,int,int,int) 6333 _DAODBEngine * AfxDaoGetEngine() 6334 void AfxDaoInit() 6335 void AfxDaoTerm() 6336 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 6337 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 6338 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 6339 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6340 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 6341 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 6342 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 6343 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 6344 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6345 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 6346 void AfxThrowDaoException(int,long) 6347 void CDaoRecordset::AllocCache() 6348 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 6349 void CDaoRecordset::AllocDatabase() 6350 void AllocLongBinary(CLongBinary &,unsigned long) 6351 void CDaoQueryDef::Append() 6352 void CDaoTableDef::Append() 6353 void CDaoWorkspace::Append() 6354 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 6355 void CDaoWorkspace::BeginTrans() 6356 void CDaoRecordset::BindFields() 6357 void CDaoRecordset::BindParameters() 6358 void CDaoRecordset::BuildParameterList() 6359 void CDaoRecordset::BuildSelectList() 6360 void CDaoRecordset::BuildSQL() 6361 int CDaoRecordset::CanAppend()const 6362 int CDaoRecordset::CanBookmark() 6363 void CDaoRecordset::CancelUpdate() 6364 int CDaoRecordset::CanRestart() 6365 int CDaoRecordset::CanScroll()const 6366 int CDaoDatabase::CanTransact() 6367 int CDaoRecordset::CanTransact() 6368 int CDaoDatabase::CanUpdate() 6369 int CDaoQueryDef::CanUpdate() 6370 int CDaoRecordset::CanUpdate()const 6371 int CDaoTableDef::CanUpdate() 6372 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 6373 void CDaoRecordset::ClearFieldStatusFlags() 6374 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 6375 void CDaoDatabase::Close() 6376 void CDaoQueryDef::Close() 6377 void CDaoRecordset::Close() 6378 void CDaoTableDef::Close() 6379 void CDaoWorkspace::Close() 6380 void CDaoWorkspace::CommitTrans() 6381 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 6382 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 6383 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 6384 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 6385 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 6386 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 6387 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 6388 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 6389 void CDaoTableDef::CreateField(CDaoFieldInfo &) 6390 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 6391 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 6392 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 6393 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 6394 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6395 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6396 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6397 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 6398 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6399 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6400 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6401 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 6402 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 6403 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6404 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 6405 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 6406 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 6407 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 6408 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 6409 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 6410 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 6411 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6412 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 6413 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 6414 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 6415 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 6416 void CDaoRecordset::Delete() 6417 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 6418 void CDaoTableDef::DeleteField(int) 6419 void CDaoTableDef::DeleteField(wchar_t const *) 6420 void CDaoTableDef::DeleteIndex(int) 6421 void CDaoTableDef::DeleteIndex(wchar_t const *) 6422 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 6423 void CDaoDatabase::DeleteRelation(wchar_t const *) 6424 void CDaoDatabase::DeleteTableDef(wchar_t const *) 6425 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 6426 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 6427 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 6428 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 6429 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 6430 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 6431 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 6432 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 6433 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 6434 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 6435 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 6436 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 6437 void CDaoRecordset::Edit() 6438 void CDaoDatabase::Execute(wchar_t const *,int) 6439 void CDaoQueryDef::Execute(int) 6440 void CDaoRecordset::FillCache(long *,COleVariant *) 6441 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 6442 void CDaoException::FillErrorInfo() 6443 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 6444 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 6445 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 6446 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 6447 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 6448 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 6449 int CDaoRecordset::Find(long,wchar_t const *) 6450 int CDaoRecordset::FindFirst(wchar_t const *) 6451 int CDaoRecordset::FindLast(wchar_t const *) 6452 int CDaoRecordset::FindNext(wchar_t const *) 6453 int CDaoRecordset::FindPrev(wchar_t const *) 6454 void CDaoRecordset::Fixup() 6455 void CDaoRecordset::FreeCache() 6456 long CDaoRecordset::GetAbsolutePosition() 6457 long CDaoTableDef::GetAttributes() 6458 COleVariant CDaoRecordset::GetBookmark() 6459 long CDaoRecordset::GetCacheSize() 6460 COleVariant CDaoRecordset::GetCacheStart() 6461 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 6462 ATL::CStringT > > CDaoDatabase::GetConnect() 6463 ATL::CStringT > > CDaoQueryDef::GetConnect() 6464 ATL::CStringT > > CDaoTableDef::GetConnect() 6465 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 6466 void CDaoRecordset::GetDataAndFixupNulls() 6467 short CDaoWorkspace::GetDatabaseCount() 6468 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 6469 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 6470 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 6471 ATL::COleDateTime CDaoRecordset::GetDateCreated() 6472 ATL::COleDateTime CDaoTableDef::GetDateCreated() 6473 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 6474 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 6475 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 6476 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 6477 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 6478 short CDaoRecordset::GetEditMode() 6479 short CDaoException::GetErrorCount() 6480 void CDaoException::GetErrorInfo(int) 6481 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 6482 short CDaoQueryDef::GetFieldCount() 6483 short CDaoRecordset::GetFieldCount() 6484 short CDaoTableDef::GetFieldCount() 6485 int CDaoRecordset::GetFieldIndex(void *) 6486 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6487 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6488 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6489 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6490 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6491 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6492 unsigned long CDaoRecordset::GetFieldLength(int) 6493 COleVariant CDaoRecordset::GetFieldValue(int) 6494 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 6495 void CDaoRecordset::GetFieldValue(int,COleVariant &) 6496 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 6497 short CDaoRecordset::GetIndexCount() 6498 short CDaoTableDef::GetIndexCount() 6499 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6500 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 6501 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6502 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 6503 ATL::CStringT > > CDaoWorkspace::GetIniPath() 6504 int CDaoWorkspace::GetIsolateODBCTrans() 6505 COleVariant CDaoRecordset::GetLastModifiedBookmark() 6506 int CDaoRecordset::GetLockingMode() 6507 short CDaoWorkspace::GetLoginTimeout() 6508 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 6509 ATL::CStringT > > CDaoDatabase::GetName() 6510 ATL::CStringT > > CDaoQueryDef::GetName() 6511 ATL::CStringT > > CDaoRecordset::GetName() 6512 ATL::CStringT > > CDaoTableDef::GetName() 6513 ATL::CStringT > > CDaoWorkspace::GetName() 6514 short CDaoQueryDef::GetODBCTimeout() 6515 short CDaoQueryDef::GetParameterCount() 6516 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 6517 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 6518 COleVariant CDaoQueryDef::GetParamValue(int) 6519 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 6520 COleVariant CDaoRecordset::GetParamValue(int) 6521 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 6522 float CDaoRecordset::GetPercentPosition() 6523 short CDaoDatabase::GetQueryDefCount() 6524 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 6525 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 6526 short CDaoDatabase::GetQueryTimeout() 6527 long CDaoRecordset::GetRecordCount() 6528 long CDaoTableDef::GetRecordCount() 6529 long CDaoDatabase::GetRecordsAffected() 6530 long CDaoQueryDef::GetRecordsAffected() 6531 short CDaoDatabase::GetRelationCount() 6532 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 6533 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 6534 int CDaoQueryDef::GetReturnsRecords() 6535 CRuntime* CDaoDatabase::GetRuntimeClass()const 6536 CRuntime* CDaoException::GetRuntimeClass()const 6537 CRuntime* CDaoQueryDef::GetRuntimeClass()const 6538 CRuntime* CDaoRecordset::GetRuntimeClass()const 6539 CRuntime* CDaoRecordView::GetRuntimeClass()const 6540 CRuntime* CDaoTableDef::GetRuntimeClass()const 6541 CRuntime* CDaoWorkspace::GetRuntimeClass()const 6542 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 6543 ATL::CStringT > > CDaoQueryDef::GetSQL() 6544 ATL::CStringT > > CDaoRecordset::GetSQL()const 6545 short CDaoDatabase::GetTableDefCount() 6546 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 6547 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 6548 CRuntime* CDaoDatabase::GetThisClass() 6549 CRuntime* CDaoException::GetThisClass() 6550 CRuntime* CDaoQueryDef::GetThisClass() 6551 CRuntime* CDaoRecordset::GetThisClass() 6552 CRuntime* CDaoRecordView::GetThisClass() 6553 CRuntime* CDaoTableDef::GetThisClass() 6554 CRuntime* CDaoWorkspace::GetThisClass() 6555 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 6556 short CDaoQueryDef::GetType() 6557 short CDaoRecordset::GetType() 6558 ATL::CStringT > > CDaoWorkspace::GetUserNameW() 6559 ATL::CStringT > > CDaoRecordset::GetValidationRule() 6560 ATL::CStringT > > CDaoTableDef::GetValidationRule() 6561 ATL::CStringT > > CDaoRecordset::GetValidationText() 6562 ATL::CStringT > > CDaoTableDef::GetValidationText() 6563 ATL::CStringT > > CDaoDatabase::GetVersion() 6564 ATL::CStringT > > CDaoWorkspace::GetVersion() 6565 short CDaoWorkspace::GetWorkspaceCount() 6566 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 6567 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 6568 void CDaoWorkspace::Idle(int) 6569 void CDaoWorkspace::InitDatabasesCollection() 6570 void CDaoException::InitErrorsCollection() 6571 void CDaoQueryDef::InitFieldsCollection() 6572 void CDaoRecordset::InitFieldsCollection() 6573 void CDaoTableDef::InitFieldsCollection() 6574 void CDaoWorkspace::InitializeEngine() 6575 void CDaoRecordset::InitIndexesCollection() 6576 void CDaoTableDef::InitIndexesCollection() 6577 void CDaoQueryDef::InitParametersCollection() 6578 void CDaoDatabase::InitQueryDefsCollection() 6579 void CDaoDatabase::InitRelationsCollection() 6580 void CDaoDatabase::InitTableDefsCollection() 6581 void CDaoDatabase::InitWorkspace() 6582 void CDaoWorkspace::InitWorkspacesCollection() 6583 int CDaoRecordset::IsBOF()const 6584 int CDaoRecordset::IsDeleted()const 6585 int CDaoRecordset::IsEOF()const 6586 int CDaoRecordset::IsFieldDirty(void *) 6587 int CDaoRecordset::IsFieldNull(void *) 6588 int CDaoRecordset::IsFieldNullable(void *) 6589 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 6590 int CDaoRecordset::IsFieldStatusNull(unsigned int) 6591 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 6592 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 6593 int CDaoRecordset::IsMatch() 6594 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6595 int CDaoRecordView::IsOnFirstRecord() 6596 int CDaoRecordView::IsOnLastRecord() 6597 int CDaoFieldExchange::IsValidOperation() 6598 void CDaoRecordset::LoadFields() 6599 void CDaoRecordset::MarkForAddNew() 6600 void CDaoRecordset::MarkForEdit() 6601 void CDaoRecordset::Move(long) 6602 void CDaoRecordset::MoveFirst() 6603 void CDaoRecordset::MoveLast() 6604 void CDaoRecordset::MoveNext() 6605 void CDaoRecordset::MovePrev() 6606 void CDaoRecordView::OnInitialUpdate() 6607 int CDaoRecordView::OnMove(unsigned int) 6608 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 6609 void CDaoQueryDef::Open(wchar_t const *) 6610 void CDaoRecordset::Open(int,wchar_t const *,int) 6611 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 6612 void CDaoRecordset::Open(CDaoTableDef *,int,int) 6613 void CDaoTableDef::Open(wchar_t const *) 6614 void CDaoWorkspace::Open(wchar_t const *) 6615 void CDaoTableDef::RefreshLink() 6616 void CDaoWorkspace::RepairDatabase(wchar_t const *) 6617 void CDaoRecordset::Requery() 6618 void CDaoWorkspace::Rollback() 6619 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 6620 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 6621 void CDaoRecordset::SetAbsolutePosition(long) 6622 void CDaoTableDef::SetAttributes(long) 6623 void CDaoRecordset::SetBookmark(COleVariant) 6624 void CDaoRecordset::SetCacheSize(long) 6625 void CDaoRecordset::SetCacheStart(COleVariant) 6626 void CDaoQueryDef::SetConnect(wchar_t const *) 6627 void CDaoTableDef::SetConnect(wchar_t const *) 6628 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 6629 void CDaoRecordset::SetCursorAttributes() 6630 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 6631 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 6632 void CDaoRecordset::SetDirtyFields() 6633 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6634 void CDaoRecordset::SetFieldDirty(void *,int) 6635 void CDaoRecordset::SetFieldNull(void *,int) 6636 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 6637 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 6638 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6639 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 6640 void CDaoRecordset::SetFieldValueNull(int) 6641 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 6642 void CDaoWorkspace::SetIniPath(wchar_t const *) 6643 void CDaoWorkspace::SetIsolateODBCTrans(int) 6644 void CDaoRecordset::SetLockingMode(int) 6645 void CDaoWorkspace::SetLoginTimeout(short) 6646 void CDaoQueryDef::SetName(wchar_t const *) 6647 void CDaoTableDef::SetName(wchar_t const *) 6648 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6649 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6650 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6651 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6652 void CDaoQueryDef::SetODBCTimeout(short) 6653 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6654 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 6655 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6656 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 6657 void CDaoQueryDef::SetParamValueNull(int) 6658 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 6659 void CDaoRecordset::SetParamValueNull(int) 6660 void CDaoRecordset::SetParamValueNull(wchar_t const *) 6661 void CDaoRecordset::SetPercentPosition(float) 6662 void CDaoDatabase::SetQueryTimeout(short) 6663 void CDaoQueryDef::SetReturnsRecords(int) 6664 void CDaoTableDef::SetSourceTableName(wchar_t const *) 6665 void CDaoQueryDef::SetSQL(wchar_t const *) 6666 void CDaoTableDef::SetValidationRule(wchar_t const *) 6667 void CDaoTableDef::SetValidationText(wchar_t const *) 6668 void CDaoRecordset::StoreFields() 6669 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 6670 void CDaoDatabase::ThrowDaoException(int) 6671 void CDaoQueryDef::ThrowDaoException(int) 6672 void CDaoRecordset::ThrowDaoException(int) 6673 void CDaoTableDef::ThrowDaoException(int) 6674 void CDaoWorkspace::ThrowDaoException(int) 6675 void ThrowGetRowsDaoException(long) 6676 void CDaoRecordset::Update() 6677 CRuntimeconst CDaoDatabase::classCDaoDatabase 6678 CRuntimeconst CDaoException::classCDaoException 6679 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 6680 CRuntimeconst CDaoRecordset::classCDaoRecordset 6681 CRuntimeconst CDaoRecordView::classCDaoRecordView 6682 CRuntimeconst CDaoTableDef::classCDaoTableDef 6683 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 6684 CRuntimeconst CDatabase::classCDatabase 6685 CRuntimeconst CDBException::classCDBException 6686 CRuntimeconst CLongBinary::classCLongBinary 6687 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6688 CRuntimeconst CRecordset::classCRecordset 6689 CRuntimeconst CRecordView::classCRecordView 6690 AFX_MSGMAP const CDaoRecordView::messageMap 6691 AFX_MSGMAP const COleDBRecordView::messageMap 6692 AFX_MSGMAP const CRecordView::messageMap 6693 _AFX_DAO_STATE * AfxGetDaoState() 6694 _AFX_DAO_STATE::~_AFX_DAO_STATE() 6695 _AFX_DAO_STATE::_AFX_DAO_STATE() ================================================ FILE: Bin/i386/mfc_sym/mfc71ud.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 void DumpElements(CDumpContext &,COleVariant const *,int) 258 unsigned int HashKey(tagVARIANT const &) 259 unsigned int HashKey(wchar_t const *) 260 unsigned int HashKey(char const *) 261 unsigned int HashKey(ATL::CComBSTR) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 264 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 265 void SerializeElements(CArchive &,COleVariant *,int) 266 COleCurrency const & COleCurrency::operator/=(long) 267 void * operator new[](unsigned int) 268 void * operator new[](unsigned int,int,char const *,int) 269 void * operator new[](unsigned int,char const *,int) 270 void operator delete[](void *) 271 void operator delete[](void *,int,char const *,int) 272 void operator delete[](void *,char const *,int) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 275 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 277 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 278 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 279 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 280 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 281 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 282 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t,int) 284 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 285 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 287 ATL::CStringT > >::CStringT > >(char,int) 288 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 289 ATL::CStringT > >::CStringT > >(wchar_t const *) 290 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 291 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 292 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >(char const *) 294 ATL::CStringT > >::CStringT > >(char const *,int) 295 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(unsigned char const *) 298 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 299 ATL::CStringT > >::CStringT > >() 300 ATL::CStringT > >::CStringT > >(wchar_t,int) 301 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 302 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 304 ATL::CStringT > >::CStringT > >(char,int) 305 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(wchar_t const *) 307 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 308 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 309 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >(char const *) 311 ATL::CStringT > >::CStringT > >(char const *,int) 312 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 313 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 314 ATL::CStringT > >::CStringT > >(unsigned char const *) 315 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >() 317 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 318 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 319 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 320 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 321 _AFX_OLE_STATE::_AFX_OLE_STATE() 322 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 323 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 324 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 325 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 326 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 327 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 328 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 329 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 330 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 331 CAnimateCtrl::CAnimateCtrl() 332 CArchive::CArchive(CArchive const &) 333 CArchive::CArchive(CFile *,unsigned int,int,void *) 334 CArchiveException::CArchiveException(int,wchar_t const *) 335 CArchivePropExchange::CArchivePropExchange(CArchive &) 336 CArchiveStream::CArchiveStream(CArchive *) 337 CAsyncMonikerFile::CAsyncMonikerFile() 338 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 339 CAsyncSocket::CAsyncSocket() 340 CBitmap::CBitmap() 341 CBitmapButton::CBitmapButton() 342 CBlobProperty::CBlobProperty(void *) 343 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 344 CBrush::CBrush(int,unsigned long) 345 CBrush::CBrush(unsigned long) 346 CBrush::CBrush(CBitmap *) 347 CBrush::CBrush() 348 CButton::CButton() 349 CByteArray::CByteArray() 350 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 351 CCachedDataPathProperty::CCachedDataPathProperty(wchar_t const *,COleControl *) 352 CCheckListBox::CCheckListBox() 353 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 354 CClientDC::CClientDC(CWnd *) 355 CCmdTarget::CCmdTarget() 356 CCmdUI::CCmdUI() 357 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 358 CComboBox::CComboBox() 359 CComboBoxEx::CComboBoxEx() 360 CCommandLineInfo::CCommandLineInfo() 361 CCommonDialog::CCommonDialog(CWnd *) 362 CConnectionPoint::CConnectionPoint() 363 CControlBar::CControlBar() 364 CControlBarInfo::CControlBarInfo() 365 COleControl::CControlDataSource::CControlDataSource(COleControl *) 366 CControlFrameWnd::CControlFrameWnd(COleControl *) 367 CCreateContext::CCreateContext() 368 CCriticalSection::CCriticalSection() 369 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 370 CDatabase::CDatabase() 371 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 372 CDataExchange::CDataExchange(CWnd *,int) 373 CDataPathProperty::CDataPathProperty(COleControl *) 374 CDataPathProperty::CDataPathProperty(wchar_t const *,COleControl *) 375 CDataSourceControl::CDataSourceControl(COleControlSite *) 376 CDateTimeCtrl::CDateTimeCtrl() 377 CDBException::CDBException(short) 378 CDBVariant::CDBVariant() 379 CDC::CDC() 380 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 381 CDHtmlControlSink::CDHtmlControlSink() 382 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 383 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 384 CDHtmlDialog::CDHtmlDialog() 385 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 386 CDialog::CDialog(unsigned int,CWnd *) 387 CDialog::CDialog(wchar_t const *,CWnd *) 388 CDialog::CDialog() 389 CDialogBar::CDialogBar() 390 CDialogTemplate::CDialogTemplate(void *) 391 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 392 CDocItem::CDocItem() 393 CDockBar::CDockBar(int) 394 CDockContext::CDockContext(CControlBar *) 395 CDockState::CDockState() 396 CDocManager::CDocManager() 397 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 398 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 399 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 400 CDocument::CDocument() 401 CDragListBox::CDragListBox() 402 CDumpContext::CDumpContext(CDumpContext const &) 403 CDumpContext::CDumpContext(CFile *) 404 CDWordArray::CDWordArray() 405 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 406 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 407 CEdit::CEdit() 408 CEditView::CEditView() 409 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 410 CEnumConnections::CEnumConnections(void const *,unsigned int) 411 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 412 CEnumFormatEtc::CEnumFormatEtc() 413 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 414 CException::CException(int) 415 CException::CException() 416 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 417 CFile::CFile(void *) 418 CFile::CFile(wchar_t const *,unsigned int) 419 CFile::CFile() 420 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long) 421 CFileException::CFileException(int,long,wchar_t const *) 422 CFileFind::CFileFind() 423 CFindReplaceDialog::CFindReplaceDialog() 424 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 425 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 426 CFont::CFont() 427 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 428 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 429 CFontHolder::CFontHolder(IPropertyNotifySink *) 430 CFormView::CFormView(unsigned int) 431 CFormView::CFormView(wchar_t const *) 432 CFrameWnd::CFrameWnd() 433 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 434 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 435 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 436 CGdiObject::CGdiObject() 437 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 438 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 439 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 440 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 441 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 442 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 443 CGopherLocator::CGopherLocator(CGopherLocator const &) 444 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 445 CHeaderCtrl::CHeaderCtrl() 446 CHotKeyCtrl::CHotKeyCtrl() 447 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 448 CHtmlEditCtrl::CHtmlEditCtrl() 449 CHtmlEditDoc::CHtmlEditDoc() 450 CHtmlEditView::CHtmlEditView() 451 CHtmlView::CHtmlView() 452 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 453 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 454 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 455 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 456 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 457 CImageList::CImageList() 458 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 459 CInternetException::CInternetException(unsigned long) 460 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 461 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 462 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 463 CInvalidArgException::CInvalidArgException(int,unsigned int) 464 CInvalidArgException::CInvalidArgException() 465 CIPAddressCtrl::CIPAddressCtrl() 466 CListBox::CListBox() 467 CListCtrl::CListCtrl() 468 CListView::CListView() 469 CLongBinary::CLongBinary() 470 CMapPtrToPtr::CMapPtrToPtr(int) 471 CMapPtrToWord::CMapPtrToWord(int) 472 CMapStringToOb::CMapStringToOb(int) 473 CMapStringToPtr::CMapStringToPtr(int) 474 CMapStringToString::CMapStringToString(int) 475 CMapWordToOb::CMapWordToOb(int) 476 CMapWordToPtr::CMapWordToPtr(int) 477 CMDIChildWnd::CMDIChildWnd() 478 CMDIFrameWnd::CMDIFrameWnd() 479 CMemFile::CMemFile(unsigned int) 480 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 481 CMemoryException::CMemoryException(int,unsigned int) 482 CMemoryException::CMemoryException() 483 CMemoryState::CMemoryState() 484 CMenu::CMenu() 485 CMetaFileDC::CMetaFileDC() 486 CMiniDockFrameWnd::CMiniDockFrameWnd() 487 CMiniFrameWnd::CMiniFrameWnd() 488 CMonikerFile::CMonikerFile() 489 CMonthCalCtrl::CMonthCalCtrl() 490 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 491 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 492 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 493 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 494 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 495 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 496 CNotSupportedException::CNotSupportedException(int,unsigned int) 497 CNotSupportedException::CNotSupportedException() 498 CObArray::CObArray() 499 CObject::CObject() 500 CObList::CObList(int) 501 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 502 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 503 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 504 COleClientItem::COleClientItem(COleDocument *) 505 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 506 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 507 COleControl::COleControl() 508 COleControlContainer::COleControlContainer(CWnd *) 509 COleControlLock::COleControlLock(_GUID const &) 510 COleControlSite::COleControlSite(COleControlContainer *) 511 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 512 COleCurrency::COleCurrency(tagVARIANT const &) 513 COleCurrency::COleCurrency(COleCurrency const &) 514 COleCurrency::COleCurrency(long,long) 515 COleCurrency::COleCurrency(union tagCY) 516 COleCurrency::COleCurrency() 517 COleDataObject::COleDataObject() 518 COleDataSource::COleDataSource() 519 COleDialog::COleDialog(CWnd *) 520 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 521 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 522 COleDispatchDriver::COleDispatchDriver() 523 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 524 COleDocIPFrameWnd::COleDocIPFrameWnd() 525 COleDocObjectItem::COleDocObjectItem(COleDocument *) 526 COleDocument::COleDocument() 527 COleDropSource::COleDropSource() 528 COleDropTarget::COleDropTarget() 529 COleException::COleException() 530 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 531 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 532 COleIPFrameWnd::COleIPFrameWnd() 533 COleLinkingDoc::COleLinkingDoc() 534 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 535 COleMessageFilter::COleMessageFilter() 536 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 537 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 538 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 539 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 540 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 541 COleResizeBar::COleResizeBar() 542 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 543 COleSafeArray::COleSafeArray(tagVARIANT const &) 544 COleSafeArray::COleSafeArray(COleSafeArray const &) 545 COleSafeArray::COleSafeArray(COleVariant const &) 546 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 547 COleSafeArray::COleSafeArray(tagVARIANT const *) 548 COleSafeArray::COleSafeArray() 549 COleServerDoc::COleServerDoc() 550 COleServerItem::COleServerItem(COleServerDoc *,int) 551 COleStreamFile::COleStreamFile(IStream *) 552 COleTemplateServer::COleTemplateServer() 553 COleUILinkInfo::COleUILinkInfo(COleDocument *) 554 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 555 COleVariant::COleVariant(ATL::CStringT > > &) 556 COleVariant::COleVariant(tagVARIANT const &) 557 COleVariant::COleVariant(COleVariant const &) 558 COleVariant::COleVariant(CByteArray const &) 559 COleVariant::COleVariant(CLongBinary const &) 560 COleVariant::COleVariant(COleCurrency const &) 561 COleVariant::COleVariant(ATL::COleDateTime const &) 562 COleVariant::COleVariant(unsigned char) 563 COleVariant::COleVariant(short,unsigned short) 564 COleVariant::COleVariant(long,unsigned short) 565 COleVariant::COleVariant(float) 566 COleVariant::COleVariant(double) 567 COleVariant::COleVariant(wchar_t const *) 568 COleVariant::COleVariant(wchar_t const *,unsigned short) 569 COleVariant::COleVariant(_ITEMIDLIST const *) 570 COleVariant::COleVariant(tagVARIANT const *) 571 COleVariant::COleVariant() 572 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 573 CPaintDC::CPaintDC(CWnd *) 574 CPalette::CPalette() 575 CPen::CPen(int,int,unsigned long) 576 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 577 CPen::CPen() 578 CPictureHolder::CPictureHolder() 579 CPreviewDC::CPreviewDC() 580 CPreviewView::CPreviewView() 581 CPrintDialog::CPrintDialog(tagPDW &) 582 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 583 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 584 CPrintInfo::CPrintInfo() 585 CPrintPreviewState::CPrintPreviewState() 586 CProgressCtrl::CProgressCtrl() 587 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 588 CProperty::CProperty(unsigned long,void * const,unsigned long) 589 CProperty::CProperty() 590 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 591 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 592 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 593 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 594 CPropertyPage::CPropertyPage() 595 CPropertySection::CPropertySection(_GUID) 596 CPropertySection::CPropertySection() 597 CPropertySet::CPropertySet(_GUID) 598 CPropertySet::CPropertySet() 599 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 600 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 601 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 602 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 603 CPropertySheet::CPropertySheet() 604 CPropExchange::CPropExchange() 605 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 606 CPtrArray::CPtrArray() 607 CPtrList::CPtrList(int) 608 CReBar::CReBar() 609 CReBarCtrl::CReBarCtrl() 610 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 611 CRecordset::CRecordset(CDatabase *) 612 CRecordView::CRecordView(unsigned int) 613 CRecordView::CRecordView(wchar_t const *) 614 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 615 CRectTracker::CRectTracker() 616 CReObject::CReObject(CRichEditCntrItem *) 617 CReObject::CReObject() 618 CResetPropExchange::CResetPropExchange() 619 CResourceException::CResourceException(int,unsigned int) 620 CResourceException::CResourceException() 621 CRgn::CRgn() 622 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 623 CRichEditCtrl::CRichEditCtrl() 624 CRichEditDoc::CRichEditDoc() 625 CRichEditView::CRichEditView() 626 CScrollBar::CScrollBar() 627 CScrollView::CScrollView() 628 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 629 CSharedFile::CSharedFile(unsigned int,unsigned int) 630 CSimpleException::CSimpleException(int) 631 CSimpleException::CSimpleException() 632 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 633 CSingleLock::CSingleLock(CSyncObject *,int) 634 CSliderCtrl::CSliderCtrl() 635 CSocket::CSocket() 636 CSocketFile::CSocketFile(CSocket *,int) 637 CSocketWnd::CSocketWnd() 638 CSpinButtonCtrl::CSpinButtonCtrl() 639 CSplitterWnd::CSplitterWnd() 640 CStatic::CStatic() 641 CStatusBar::CStatusBar() 642 CStatusBarCtrl::CStatusBarCtrl() 643 CStdioFile::CStdioFile(_iobuf *) 644 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 645 CStdioFile::CStdioFile() 646 CStringArray::CStringArray() 647 CStringList::CStringList(int) 648 CSyncObject::CSyncObject(wchar_t const *) 649 CTabCtrl::CTabCtrl() 650 CTestCmdUI::CTestCmdUI() 651 CThreadSlotData::CThreadSlotData() 652 CToolBar::CToolBar() 653 CToolBarCtrl::CToolBarCtrl() 654 CToolTipCtrl::CToolTipCtrl() 655 CTreeCtrl::CTreeCtrl() 656 CTreeView::CTreeView() 657 CUIntArray::CUIntArray() 658 CUserException::CUserException(int,unsigned int) 659 CUserException::CUserException() 660 CView::CView() 661 CWaitCursor::CWaitCursor() 662 CWinApp::CWinApp(wchar_t const *) 663 CWindowDC::CWindowDC(CWnd *) 664 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 665 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 666 CWinThread::CWinThread() 667 CWnd::CWnd(HWND__ *) 668 CWnd::CWnd() 669 CWordArray::CWordArray() 670 CPreviewView::PAGE_INFO::PAGE_INFO() 671 ATL::CSimpleStringT::~CSimpleStringT() 672 ATL::CSimpleStringT::~CSimpleStringT() 673 ATL::CStringT > >::~CStringT > >() 674 ATL::CStringT > >::~CStringT > >() 675 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 676 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 677 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 678 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 679 _AFX_OLE_STATE::~_AFX_OLE_STATE() 680 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 681 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 682 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 683 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 684 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 685 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 686 AFX_MODULE_STATE::~AFX_MODULE_STATE() 687 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 688 CAnimateCtrl::~CAnimateCtrl() 689 CArchive::~CArchive() 690 CArchiveException::~CArchiveException() 691 CAsyncMonikerFile::~CAsyncMonikerFile() 692 CAsyncSocket::~CAsyncSocket() 693 CBitmap::~CBitmap() 694 CBrush::~CBrush() 695 CButton::~CButton() 696 CByteArray::~CByteArray() 697 CClientDC::~CClientDC() 698 CCmdTarget::~CCmdTarget() 699 CComboBox::~CComboBox() 700 CComboBoxEx::~CComboBoxEx() 701 CCommandLineInfo::~CCommandLineInfo() 702 CConnectionPoint::~CConnectionPoint() 703 CControlBar::~CControlBar() 704 CCriticalSection::~CCriticalSection() 705 CCtrlView::~CCtrlView() 706 CDatabase::~CDatabase() 707 CDataSourceControl::~CDataSourceControl() 708 CDateTimeCtrl::~CDateTimeCtrl() 709 CDBException::~CDBException() 710 CDBVariant::~CDBVariant() 711 CDC::~CDC() 712 CDHtmlControlSink::~CDHtmlControlSink() 713 CDHtmlDialog::~CDHtmlDialog() 714 CDialog::~CDialog() 715 CDialogBar::~CDialogBar() 716 CDialogTemplate::~CDialogTemplate() 717 CDocItem::~CDocItem() 718 CDockBar::~CDockBar() 719 CDockContext::~CDockContext() 720 CDockState::~CDockState() 721 CDocManager::~CDocManager() 722 CDocObjectServer::~CDocObjectServer() 723 CDocObjectServerItem::~CDocObjectServerItem() 724 CDocTemplate::~CDocTemplate() 725 CDocument::~CDocument() 726 CDragListBox::~CDragListBox() 727 CDWordArray::~CDWordArray() 728 CDynLinkLibrary::~CDynLinkLibrary() 729 CEdit::~CEdit() 730 CEditView::~CEditView() 731 CEnumArray::~CEnumArray() 732 CEnumConnections::~CEnumConnections() 733 CEnumConnPoints::~CEnumConnPoints() 734 CEnumFormatEtc::~CEnumFormatEtc() 735 CEnumOleVerb::~CEnumOleVerb() 736 CEnumUnknown::~CEnumUnknown() 737 CEvent::~CEvent() 738 CException::~CException() 739 CFile::~CFile() 740 CFileDialog::~CFileDialog() 741 CFileException::~CFileException() 742 CFileFind::~CFileFind() 743 CFixedAlloc::~CFixedAlloc() 744 CFixedAllocNoSync::~CFixedAllocNoSync() 745 CFont::~CFont() 746 CFontHolder::~CFontHolder() 747 CFrameWnd::~CFrameWnd() 748 CFtpConnection::~CFtpConnection() 749 CFtpFileFind::~CFtpFileFind() 750 CGdiObject::~CGdiObject() 751 CGopherConnection::~CGopherConnection() 752 CGopherFile::~CGopherFile() 753 CGopherFileFind::~CGopherFileFind() 754 CGopherLocator::~CGopherLocator() 755 CHeaderCtrl::~CHeaderCtrl() 756 CHotKeyCtrl::~CHotKeyCtrl() 757 CHtmlControlSite::~CHtmlControlSite() 758 CHtmlEditCtrl::~CHtmlEditCtrl() 759 CHtmlEditDoc::~CHtmlEditDoc() 760 CHtmlEditView::~CHtmlEditView() 761 CHtmlView::~CHtmlView() 762 CHttpConnection::~CHttpConnection() 763 CHttpFile::~CHttpFile() 764 CImageList::~CImageList() 765 CInternetConnection::~CInternetConnection() 766 CInternetException::~CInternetException() 767 CInternetFile::~CInternetFile() 768 CInternetSession::~CInternetSession() 769 CInvalidArgException::~CInvalidArgException() 770 CIPAddressCtrl::~CIPAddressCtrl() 771 CListBox::~CListBox() 772 CListCtrl::~CListCtrl() 773 CLongBinary::~CLongBinary() 774 CMapPtrToPtr::~CMapPtrToPtr() 775 CMapPtrToWord::~CMapPtrToWord() 776 CMapStringToOb::~CMapStringToOb() 777 CMapStringToPtr::~CMapStringToPtr() 778 CMapStringToString::~CMapStringToString() 779 CMapWordToOb::~CMapWordToOb() 780 CMapWordToPtr::~CMapWordToPtr() 781 CMemFile::~CMemFile() 782 CMemoryException::~CMemoryException() 783 CMenu::~CMenu() 784 CMetaFileDC::~CMetaFileDC() 785 CMiniFrameWnd::~CMiniFrameWnd() 786 CMonikerFile::~CMonikerFile() 787 CMonthCalCtrl::~CMonthCalCtrl() 788 CMultiDocTemplate::~CMultiDocTemplate() 789 CMultiLock::~CMultiLock() 790 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 791 CMutex::~CMutex() 792 CNotSupportedException::~CNotSupportedException() 793 CObArray::~CObArray() 794 CObject::~CObject() 795 CObList::~CObList() 796 COleBusyDialog::~COleBusyDialog() 797 COleChangeIconDialog::~COleChangeIconDialog() 798 COleChangeSourceDialog::~COleChangeSourceDialog() 799 COleClientItem::~COleClientItem() 800 COleCntrFrameWnd::~COleCntrFrameWnd() 801 COleControl::~COleControl() 802 COleControlContainer::~COleControlContainer() 803 COleControlLock::~COleControlLock() 804 COleControlSite::~COleControlSite() 805 COleControlSiteOrWnd::~COleControlSiteOrWnd() 806 COleConvertDialog::~COleConvertDialog() 807 COleDataObject::~COleDataObject() 808 COleDataSource::~COleDataSource() 809 COleDispatchDriver::~COleDispatchDriver() 810 COleDispatchException::~COleDispatchException() 811 COleDocIPFrameWnd::~COleDocIPFrameWnd() 812 COleDocObjectItem::~COleDocObjectItem() 813 COleDocument::~COleDocument() 814 COleDropTarget::~COleDropTarget() 815 COleException::~COleException() 816 COleFrameHook::~COleFrameHook() 817 COleInsertDialog::~COleInsertDialog() 818 COleIPFrameWnd::~COleIPFrameWnd() 819 COleLinkingDoc::~COleLinkingDoc() 820 COleLinksDialog::~COleLinksDialog() 821 COleMessageFilter::~COleMessageFilter() 822 COleObjectFactory::~COleObjectFactory() 823 COlePasteSpecialDialog::~COlePasteSpecialDialog() 824 COlePropertyPage::~COlePropertyPage() 825 COleResizeBar::~COleResizeBar() 826 COleSafeArray::~COleSafeArray() 827 COleServerDoc::~COleServerDoc() 828 COleServerItem::~COleServerItem() 829 COleStreamFile::~COleStreamFile() 830 COleUpdateDialog::~COleUpdateDialog() 831 COleVariant::~COleVariant() 832 CPaintDC::~CPaintDC() 833 CPalette::~CPalette() 834 CPen::~CPen() 835 CPictureHolder::~CPictureHolder() 836 CPreviewDC::~CPreviewDC() 837 CPreviewView::~CPreviewView() 838 CPrintInfo::~CPrintInfo() 839 CProcessLocalObject::~CProcessLocalObject() 840 CProgressCtrl::~CProgressCtrl() 841 CPropbagPropExchange::~CPropbagPropExchange() 842 CProperty::~CProperty() 843 CPropertyPage::~CPropertyPage() 844 CPropertySection::~CPropertySection() 845 CPropertySet::~CPropertySet() 846 CPropertySheet::~CPropertySheet() 847 CPtrArray::~CPtrArray() 848 CPtrList::~CPtrList() 849 CRecentFileList::~CRecentFileList() 850 CRecordset::~CRecordset() 851 CRecordView::~CRecordView() 852 CRectTracker::~CRectTracker() 853 CReObject::~CReObject() 854 CResourceException::~CResourceException() 855 CRgn::~CRgn() 856 CRichEditCntrItem::~CRichEditCntrItem() 857 CRichEditCtrl::~CRichEditCtrl() 858 CScrollBar::~CScrollBar() 859 CScrollView::~CScrollView() 860 CSemaphore::~CSemaphore() 861 CSharedFile::~CSharedFile() 862 CSimpleException::~CSimpleException() 863 CSingleDocTemplate::~CSingleDocTemplate() 864 CSingleLock::~CSingleLock() 865 CSliderCtrl::~CSliderCtrl() 866 CSocket::~CSocket() 867 CSocketFile::~CSocketFile() 868 CSpinButtonCtrl::~CSpinButtonCtrl() 869 CSplitterWnd::~CSplitterWnd() 870 CStatic::~CStatic() 871 CStatusBar::~CStatusBar() 872 CStatusBarCtrl::~CStatusBarCtrl() 873 CStdioFile::~CStdioFile() 874 CStringArray::~CStringArray() 875 CStringList::~CStringList() 876 CSyncObject::~CSyncObject() 877 CTabCtrl::~CTabCtrl() 878 CThreadLocalObject::~CThreadLocalObject() 879 CThreadSlotData::~CThreadSlotData() 880 CToolBar::~CToolBar() 881 CToolBarCtrl::~CToolBarCtrl() 882 CToolTipCtrl::~CToolTipCtrl() 883 CTreeCtrl::~CTreeCtrl() 884 CUIntArray::~CUIntArray() 885 CUserException::~CUserException() 886 CView::~CView() 887 CWaitCursor::~CWaitCursor() 888 CWinApp::~CWinApp() 889 CWindowDC::~CWindowDC() 890 CWinThread::~CWinThread() 891 CWnd::~CWnd() 892 CWordArray::~CWordArray() 893 void * operator new(unsigned int) 894 void * operator new(unsigned int,int,char const *,int) 895 void * operator new(unsigned int,char const *,int) 896 void * CNoTrackObject::operator new(unsigned int) 897 void * CNoTrackObject::operator new(unsigned int,char const *,int) 898 void * CObject::operator new(unsigned int) 899 void * CObject::operator new(unsigned int,void *) 900 void * CObject::operator new(unsigned int,char const *,int) 901 void operator delete(void *) 902 void operator delete(void *,int,char const *,int) 903 void operator delete(void *,char const *,int) 904 void CException::operator delete(void *) 905 void CException::operator delete(void *,char const *,int) 906 void CNoTrackObject::operator delete(void *) 907 void CNoTrackObject::operator delete(void *,char const *,int) 908 void CObject::operator delete(void *) 909 void CObject::operator delete(void *,void *) 910 void CObject::operator delete(void *,char const *,int) 911 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 912 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 913 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 914 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 915 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 916 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 917 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 918 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 919 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 920 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 921 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 922 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 923 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 924 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 925 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 926 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 927 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 928 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 929 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 930 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 931 void CArchive::operator=(CArchive const &) 932 void CDumpContext::operator=(CDumpContext const &) 933 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 934 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 935 COleCurrency const & COleCurrency::operator=(union tagCY) 936 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 937 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 938 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 939 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 940 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 941 COleVariant const & COleVariant::operator=(tagVARIANT const &) 942 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 943 COleVariant const & COleVariant::operator=(COleVariant const &) 944 COleVariant const & COleVariant::operator=(CByteArray const &) 945 COleVariant const & COleVariant::operator=(CLongBinary const &) 946 COleVariant const & COleVariant::operator=(COleCurrency const &) 947 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 948 COleVariant const & COleVariant::operator=(unsigned char) 949 COleVariant const & COleVariant::operator=(short) 950 COleVariant const & COleVariant::operator=(long) 951 COleVariant const & COleVariant::operator=(float) 952 COleVariant const & COleVariant::operator=(double) 953 COleVariant const & COleVariant::operator=(tagVARIANT const *) 954 COleVariant const & COleVariant::operator=(wchar_t const * const) 955 CArchive & operator>>(CArchive &,CByteArray * &) 956 CArchive & operator>>(CArchive &,CDocItem * &) 957 CArchive & operator>>(CArchive &,CDockState * &) 958 CArchive & operator>>(CArchive &,CDWordArray * &) 959 CArchive & operator>>(CArchive &,CMapStringToOb * &) 960 CArchive & operator>>(CArchive &,CMapStringToString * &) 961 CArchive & operator>>(CArchive &,CMapWordToOb * &) 962 CArchive & operator>>(CArchive &,CObArray * &) 963 CArchive & operator>>(CArchive &,CObject * &) 964 CArchive & operator>>(CArchive &,CObList * &) 965 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 966 CArchive & operator>>(CArchive &,CStringArray * &) 967 CArchive & operator>>(CArchive &,CStringList * &) 968 CArchive & operator>>(CArchive &,CWordArray * &) 969 CArchive & operator>>(CArchive &,CObject const * &) 970 CArchive & operator>>(CArchive &,tagPOINT &) 971 CArchive & operator>>(CArchive &,tagRECT &) 972 CArchive & operator>>(CArchive &,tagSIZE &) 973 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 974 CArchive & operator>>(CArchive &,COleCurrency &) 975 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 976 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 977 CArchive & operator>>(CArchive &,COleVariant &) 978 CArchive & operator>>(CArchive &,ATL::CTime &) 979 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 980 CArchive & CArchive::operator>>(__int64 &) 981 CArchive & CArchive::operator>>(unsigned __int64 &) 982 CArchive & CArchive::operator>>(bool &) 983 CArchive & CArchive::operator>>(wchar_t &) 984 CArchive & CArchive::operator>>(char &) 985 CArchive & CArchive::operator>>(unsigned char &) 986 CArchive & CArchive::operator>>(short &) 987 CArchive & CArchive::operator>>(unsigned short &) 988 CArchive & CArchive::operator>>(int &) 989 CArchive & CArchive::operator>>(unsigned int &) 990 CArchive & CArchive::operator>>(long &) 991 CArchive & CArchive::operator>>(unsigned long &) 992 CArchive & CArchive::operator>>(float &) 993 CArchive & CArchive::operator>>(double &) 994 CArchive & operator<<(CArchive &,tagRECT const &) 995 CArchive & operator<<(CArchive &,CObject const *) 996 CArchive & operator<<(CArchive &,tagPOINT) 997 CArchive & operator<<(CArchive &,tagSIZE) 998 CArchive & operator<<(CArchive &,ATL::CComBSTR) 999 CArchive & operator<<(CArchive &,COleCurrency) 1000 CArchive & operator<<(CArchive &,ATL::COleDateTime) 1001 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 1002 CArchive & operator<<(CArchive &,COleVariant) 1003 CArchive & operator<<(CArchive &,ATL::CTime) 1004 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 1005 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 1006 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 1007 CDumpContext & operator<<(CDumpContext &,tagPOINT) 1008 CDumpContext & operator<<(CDumpContext &,tagSIZE) 1009 CDumpContext & operator<<(CDumpContext &,COleCurrency) 1010 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 1011 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 1012 CDumpContext & operator<<(CDumpContext &,COleVariant) 1013 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 1014 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 1015 CArchive & CArchive::operator<<(__int64) 1016 CArchive & CArchive::operator<<(unsigned __int64) 1017 CArchive & CArchive::operator<<(bool) 1018 CArchive & CArchive::operator<<(wchar_t) 1019 CArchive & CArchive::operator<<(char) 1020 CArchive & CArchive::operator<<(unsigned char) 1021 CArchive & CArchive::operator<<(short) 1022 CArchive & CArchive::operator<<(unsigned short) 1023 CArchive & CArchive::operator<<(int) 1024 CArchive & CArchive::operator<<(unsigned int) 1025 CArchive & CArchive::operator<<(long) 1026 CArchive & CArchive::operator<<(unsigned long) 1027 CArchive & CArchive::operator<<(float) 1028 CArchive & CArchive::operator<<(double) 1029 CDumpContext & CDumpContext::operator<<(__int64) 1030 CDumpContext & CDumpContext::operator<<(unsigned __int64) 1031 CDumpContext & CDumpContext::operator<<(CObject const &) 1032 CDumpContext & CDumpContext::operator<<(unsigned char) 1033 CDumpContext & CDumpContext::operator<<(unsigned short) 1034 CDumpContext & CDumpContext::operator<<(int) 1035 CDumpContext & CDumpContext::operator<<(unsigned int) 1036 CDumpContext & CDumpContext::operator<<(long) 1037 CDumpContext & CDumpContext::operator<<(unsigned long) 1038 CDumpContext & CDumpContext::operator<<(float) 1039 CDumpContext & CDumpContext::operator<<(double) 1040 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 1041 CDumpContext & CDumpContext::operator<<(HDC__ *) 1042 CDumpContext & CDumpContext::operator<<(HFONT__ *) 1043 CDumpContext & CDumpContext::operator<<(HMENU__ *) 1044 CDumpContext & CDumpContext::operator<<(HWND__ *) 1045 CDumpContext & CDumpContext::operator<<(wchar_t const *) 1046 CDumpContext & CDumpContext::operator<<(char const *) 1047 CDumpContext & CDumpContext::operator<<(CObject const *) 1048 CDumpContext & CDumpContext::operator<<(void const *) 1049 int CGdiObject::operator==(CGdiObject const &)const 1050 int CMenu::operator==(CMenu const &)const 1051 int COleCurrency::operator==(COleCurrency const &)const 1052 int COleSafeArray::operator==(tagSAFEARRAY const &)const 1053 int COleSafeArray::operator==(tagVARIANT const &)const 1054 int COleSafeArray::operator==(COleSafeArray const &)const 1055 int COleSafeArray::operator==(COleVariant const &)const 1056 int COleSafeArray::operator==(tagSAFEARRAY const *)const 1057 int COleSafeArray::operator==(tagVARIANT const *)const 1058 int COleVariant::operator==(tagVARIANT const &)const 1059 int COleVariant::operator==(tagVARIANT const *)const 1060 int CWnd::operator==(CWnd const &)const 1061 int CGdiObject::operator!=(CGdiObject const &)const 1062 int CMenu::operator!=(CMenu const &)const 1063 int COleCurrency::operator!=(COleCurrency const &)const 1064 int CWnd::operator!=(CWnd const &)const 1065 wchar_t ATL::CSimpleStringT::operator[](int)const 1066 char ATL::CSimpleStringT::operator[](int)const 1067 unsigned char & CByteArray::operator[](int) 1068 unsigned char CByteArray::operator[](int)const 1069 unsigned long & CDWordArray::operator[](int) 1070 unsigned long CDWordArray::operator[](int)const 1071 void * & CMapPtrToPtr::operator[](void *) 1072 unsigned short & CMapPtrToWord::operator[](void *) 1073 CObject * & CMapStringToOb::operator[](wchar_t const *) 1074 void * & CMapStringToPtr::operator[](wchar_t const *) 1075 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 1076 CObject * & CMapWordToOb::operator[](unsigned short) 1077 void * & CMapWordToPtr::operator[](unsigned short) 1078 CObject * & CObArray::operator[](int) 1079 CObject * CObArray::operator[](int)const 1080 void * & CPtrArray::operator[](int) 1081 void * CPtrArray::operator[](int)const 1082 ATL::CStringT > > & CStringArray::operator[](int) 1083 ATL::CStringT > > const & CStringArray::operator[](int)const 1084 unsigned int & CUIntArray::operator[](int) 1085 unsigned int CUIntArray::operator[](int)const 1086 unsigned short & CWordArray::operator[](int) 1087 unsigned short CWordArray::operator[](int)const 1088 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1089 ATL::CSimpleStringT::operator wchar_t const *()const 1090 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1091 ATL::CSimpleStringT::operator char const *()const 1092 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1093 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1094 CAsyncSocket::operator unsigned int()const 1095 CBitmap::operator HBITMAP__ *()const 1096 CBrush::operator HBRUSH__ *()const 1097 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 1098 CDC::operator HDC__ *()const 1099 CFile::operator void *()const 1100 CFont::operator HFONT__ *()const 1101 CGdiObject::operator void *()const 1102 CGopherLocator::operator wchar_t const *()const 1103 CImageList::operator _IMAGELIST *()const 1104 CInternetConnection::operator void *()const 1105 CInternetFile::operator void *()const 1106 CInternetSession::operator void *()const 1107 CMenu::operator HMENU__ *()const 1108 COleCurrency::operator union tagCY()const 1109 COleDispatchDriver::operator IDispatch *() 1110 COleSafeArray::operator tagVARIANT *() 1111 COleSafeArray::operator tagVARIANT const *()const 1112 COleVariant::operator tagVARIANT *() 1113 COleVariant::operator tagVARIANT const *()const 1114 CPalette::operator HPALETTE__ *()const 1115 CPen::operator HPEN__ *()const 1116 CRgn::operator HRGN__ *()const 1117 CSyncObject::operator void *()const 1118 CWinThread::operator void *()const 1119 CWnd::operator HWND__ *()const 1120 COleCurrency COleCurrency::operator*(long)const 1121 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1122 COleCurrency COleCurrency::operator-()const 1123 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1124 COleCurrency COleCurrency::operator/(long)const 1125 int COleCurrency::operator<(COleCurrency const &)const 1126 int COleCurrency::operator<=(COleCurrency const &)const 1127 int COleCurrency::operator>(COleCurrency const &)const 1128 int COleCurrency::operator>=(COleCurrency const &)const 1129 COleCurrency const & COleCurrency::operator*=(long) 1130 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1131 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1132 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1133 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1134 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 1135 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1136 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1137 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1138 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1139 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 1140 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1141 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1142 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1143 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1144 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1145 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1146 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1147 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1148 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1149 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1150 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1151 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1152 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1153 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1154 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1155 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1156 int _AfxAbortProc(HDC__ *,int) 1157 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1158 int _AfxDeleteRegKey(wchar_t const *) 1159 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1160 int _AfxSocketInit(WSAData *) 1161 void CArchive::Abort() 1162 void CFile::Abort() 1163 void CInternetFile::Abort() 1164 void CMemFile::Abort() 1165 void CMirrorFile::Abort() 1166 void COleStreamFile::Abort() 1167 void CSocketFile::Abort() 1168 void CStdioFile::Abort() 1169 int CDC::AbortDoc() 1170 int CDC::AbortPath() 1171 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1172 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1173 long CWnd::accDoDefaultAction(tagVARIANT) 1174 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1175 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1176 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1177 void COleSafeArray::AccessData(void * *) 1178 long CWnd::accHitTest(long,long,tagVARIANT *) 1179 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1180 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1181 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1182 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1183 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1184 long CWnd::accSelect(long,tagVARIANT) 1185 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1186 void COleClientItem::Activate(long,CView *,tagMSG *) 1187 void CToolTipCtrl::Activate(int) 1188 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1189 void COleDocObjectItem::ActivateAndShow() 1190 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1191 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1192 void CDocObjectServer::ActivateDocObject() 1193 void COleServerDoc::ActivateDocObject() 1194 void CFrameWnd::ActivateFrame(int) 1195 void CMDIChildWnd::ActivateFrame(int) 1196 int COleServerDoc::ActivateInPlace() 1197 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1198 void CSplitterWnd::ActivateNext(int) 1199 void CWnd::ActivateTopParent() 1200 int CByteArray::Add(unsigned char) 1201 int CDWordArray::Add(unsigned long) 1202 int CImageList::Add(HICON__ *) 1203 int CImageList::Add(CBitmap *,CBitmap *) 1204 int CImageList::Add(CBitmap *,unsigned long) 1205 int CObArray::Add(CObject *) 1206 int CPtrArray::Add(void *) 1207 void CRecentFileList::Add(wchar_t const *) 1208 int CStringArray::Add(ATL::CStringT > > const &) 1209 int CStringArray::Add(wchar_t const *) 1210 int CUIntArray::Add(unsigned int) 1211 int CWordArray::Add(unsigned short) 1212 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 1213 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 1214 int CToolBarCtrl::AddBitmap(int,unsigned int) 1215 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1216 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1217 void COleClientItem::AddCachedData(COleDataSource *) 1218 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1219 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1220 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1221 void CFrameWnd::AddControlBar(CControlBar *) 1222 void CDocManager::AddDocTemplate(CDocTemplate *) 1223 void CWinApp::AddDocTemplate(CDocTemplate *) 1224 void CDocTemplate::AddDocument(CDocument *) 1225 void CMultiDocTemplate::AddDocument(CDocument *) 1226 void CSingleDocTemplate::AddDocument(CDocument *) 1227 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1228 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 1229 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1230 void COleControl::AddFrameLevelUI() 1231 void CFrameWnd::AddFrameWnd() 1232 __POSITION * CObList::AddHead(CObject *) 1233 void CObList::AddHead(CObList *) 1234 __POSITION * CPtrList::AddHead(void *) 1235 void CPtrList::AddHead(CPtrList *) 1236 void CSimpleList::AddHead(void *) 1237 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1238 __POSITION * CStringList::AddHead(wchar_t const *) 1239 void CStringList::AddHead(CStringList *) 1240 void COleDocument::AddItem(CDocItem *) 1241 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1242 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1243 void CRecordset::AddNew() 1244 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1245 void CPropertySheet::AddPage(CPropertyPage *) 1246 void CPropertySection::AddProperty(CProperty *) 1247 void CPropertySet::AddProperty(_GUID,CProperty *) 1248 unsigned long CArchiveStream::AddRef() 1249 unsigned long CBlobProperty::AddRef() 1250 unsigned long CBrowserControlSite::AddRef() 1251 unsigned long CDHtmlControlSink::AddRef() 1252 unsigned long CDHtmlElementEventSink::AddRef() 1253 unsigned long CDHtmlEventSink::AddRef() 1254 unsigned long CInnerUnknown::AddRef() 1255 unsigned long COleConnPtContainer::AddRef() 1256 unsigned long COleDispatchImpl::AddRef() 1257 unsigned long COleUILinkInfo::AddRef() 1258 unsigned long CPrintDialogEx::AddRef() 1259 unsigned long CWnd::XAccessible::AddRef() 1260 unsigned long CWnd::XAccessibleServer::AddRef() 1261 unsigned long COleClientItem::XAdviseSink::AddRef() 1262 unsigned long COleControlSite::XAmbientProps::AddRef() 1263 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1264 unsigned long COleObjectFactory::XClassFactory::AddRef() 1265 unsigned long CConnectionPoint::XConnPt::AddRef() 1266 unsigned long COleControl::XDataObject::AddRef() 1267 unsigned long COleDataSource::XDataObject::AddRef() 1268 unsigned long COleServerDoc::XDataObject::AddRef() 1269 unsigned long COleServerItem::XDataObject::AddRef() 1270 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef() 1271 unsigned long COleDropSource::XDropSource::AddRef() 1272 unsigned long COleDropTarget::XDropTarget::AddRef() 1273 unsigned long CEnumArray::XEnumVOID::AddRef() 1274 unsigned long COleControlSite::XEventSink::AddRef() 1275 unsigned long COleControl::XFontNotification::AddRef() 1276 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1277 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1278 unsigned long COleControl::XOleCache::AddRef() 1279 unsigned long COleClientItem::XOleClientSite::AddRef() 1280 unsigned long COleControlSite::XOleClientSite::AddRef() 1281 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1282 unsigned long COleFrameHook::XOleCommandTarget::AddRef() 1283 unsigned long COleControlContainer::XOleContainer::AddRef() 1284 unsigned long COleControl::XOleControl::AddRef() 1285 unsigned long COleControlSite::XOleControlSite::AddRef() 1286 unsigned long CDocObjectServer::XOleDocument::AddRef() 1287 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef() 1288 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1289 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1290 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1291 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1292 unsigned long COleControl::XOleInPlaceObject::AddRef() 1293 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1294 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1295 unsigned long COleClientItem::XOleIPSite::AddRef() 1296 unsigned long COleControlSite::XOleIPSite::AddRef() 1297 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1298 unsigned long CDocObjectServer::XOleObject::AddRef() 1299 unsigned long COleControl::XOleObject::AddRef() 1300 unsigned long COleServerDoc::XOleObject::AddRef() 1301 unsigned long COleServerItem::XOleObject::AddRef() 1302 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1303 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1304 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1305 unsigned long COleControl::XPersistMemory::AddRef() 1306 unsigned long COleControl::XPersistPropertyBag::AddRef() 1307 unsigned long COleControl::XPersistStorage::AddRef() 1308 unsigned long COleServerDoc::XPersistStorage::AddRef() 1309 unsigned long COleControl::XPersistStreamInit::AddRef() 1310 unsigned long COleControl::XPointerInactive::AddRef() 1311 unsigned long CDocObjectServer::XPrint::AddRef() 1312 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1313 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1314 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1315 unsigned long COleControl::XProvideClassInfo::AddRef() 1316 unsigned long COleControl::XQuickActivate::AddRef() 1317 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1318 unsigned long COleControlSite::XRowsetNotify::AddRef() 1319 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1320 unsigned long COleControl::XViewObject::AddRef() 1321 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1322 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1323 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 1324 CPropertySection * CPropertySet::AddSection(_GUID) 1325 void CPropertySet::AddSection(CPropertySection *) 1326 void COlePasteSpecialDialog::AddStandardFormats(int) 1327 int CComboBox::AddString(wchar_t const *) 1328 int CComboBoxEx::AddString(wchar_t const *) 1329 int CListBox::AddString(wchar_t const *) 1330 int CToolBarCtrl::AddString(unsigned int) 1331 int CToolBarCtrl::AddStrings(wchar_t const *) 1332 __POSITION * CObList::AddTail(CObject *) 1333 void CObList::AddTail(CObList *) 1334 __POSITION * CPtrList::AddTail(void *) 1335 void CPtrList::AddTail(CPtrList *) 1336 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1337 __POSITION * CStringList::AddTail(wchar_t const *) 1338 void CStringList::AddTail(CStringList *) 1339 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1340 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1341 void CWinApp::AddToRecentFileList(wchar_t const *) 1342 void CDocument::AddView(CView *) 1343 void CMetaFileDC::AdjustCP(int) 1344 void CRichEditView::AdjustDialogPosition(CDialog *) 1345 void CRectTracker::AdjustRect(int,tagRECT *) 1346 void CTabCtrl::AdjustRect(int,tagRECT *) 1347 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1348 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1349 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1350 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1351 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1352 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1353 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1354 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1355 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1356 void AfxAbort() 1357 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1358 int AfxAssertFailedLine(char const *,int) 1359 void AfxAssertValidObject(CObject const *,char const *,int) 1360 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1361 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1362 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1363 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1364 void AfxCancelModes(HWND__ *) 1365 void AfxCheckError(long) 1366 int AfxCheckMemory() 1367 void AfxClassInit(CRuntime*) 1368 int AfxComparePath(wchar_t const *,wchar_t const *) 1369 int AfxCompareValueByRef(void *,void *,int) 1370 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1371 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1372 void AfxCopyValueByRef(void *,void *,long *,int) 1373 void AfxCoreInitModule() 1374 HDC__ * AfxCreateDC(void *,void *) 1375 int AfxCriticalInit() 1376 int AfxCriticalNewHandler(unsigned int) 1377 void AfxCriticalTerm() 1378 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1379 AUX_DATA afxData 1380 void AfxDeleteObject(void * *) 1381 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1382 int AfxDiagnosticInit() 1383 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1384 long AfxDllCanUnloadNow() 1385 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1386 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1387 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1388 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1389 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1390 CDumpContext afxDump 1391 void AfxDump(CObject const *) 1392 int AfxDumpMemoryLeaks() 1393 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1394 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1395 void AfxEditviewTerm() 1396 void AfxEnableControlContainer(COccManager *) 1397 int AfxEnableMemoryTracking(int) 1398 int AfxEndDeferRegisterClass(long) 1399 void AfxEndThread(unsigned int,int) 1400 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1401 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1402 void AfxFailMaxChars(CDataExchange *,int) 1403 void AfxFailRadio(CDataExchange *) 1404 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1405 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1406 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1407 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1408 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1409 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1410 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1411 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1412 int AfxFreeLibrary(HINSTANCE__ *) 1413 void AfxFreeMemoryDebug(void *,int) 1414 int AfxFullPath(wchar_t *,wchar_t const *) 1415 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1416 CWinApp * AfxGetApp() 1417 AFX_MODULE_STATE * AfxGetAppModuleState() 1418 wchar_t const * AfxGetAppName() 1419 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1420 tagMSG * AfxGetCurrentMessage() 1421 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1422 unsigned long AfxGetDllVersion() 1423 wchar_t const * AfxGetFacilityString(long) 1424 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1425 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1426 wchar_t const * AfxGetFullScodeString(long) 1427 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1428 void * AfxGetHENV() 1429 wchar_t const * AfxGetIIDString(_GUID const &) 1430 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1431 HINSTANCE__ * AfxGetInstanceHandle() 1432 unsigned long AfxGetInternetHandleType(void *) 1433 CWnd * AfxGetMainWnd() 1434 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1435 AFX_MODULE_STATE * AfxGetModuleState() 1436 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1437 int (__cdecl*AfxGetNewHandler())(unsigned int) 1438 HWND__ * AfxGetParentOwner(HWND__ *) 1439 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1440 HINSTANCE__ * AfxGetResourceHandle() 1441 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1442 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1443 wchar_t const * AfxGetScodeRangeString(long) 1444 wchar_t const * AfxGetScodeString(long) 1445 wchar_t const * AfxGetSeverityString(long) 1446 ATL::IAtlStringMgr * AfxGetStringManager() 1447 CWinThread * AfxGetThread() 1448 _AFX_THREAD_STATE * AfxGetThreadState() 1449 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1450 void AfxGlobalFree(void *) 1451 int AfxHelpEnabled() 1452 void AfxHookWindowCreate(CWnd *) 1453 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1454 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1455 void AfxInitLocalData(HINSTANCE__ *) 1456 int AfxInitRichEdit() 1457 int AfxInitRichEdit2() 1458 void AfxInitThread() 1459 int AfxInternalIsIdleMessage(tagMSG *) 1460 int AfxInternalPreTranslateMessage(tagMSG *) 1461 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1462 int AfxInternalPumpMessage() 1463 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1464 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1465 int AfxIsDescendant(HWND__ *,HWND__ *) 1466 int AfxIsIdleMessage(tagMSG *) 1467 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1468 int AfxIsValidAddress(void const *,unsigned int,int) 1469 int AfxIsValidString(wchar_t const *,int) 1470 int AfxIsValidString(char const *,int) 1471 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1472 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1473 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1474 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1475 int AfxLoadString(unsigned int,char *,unsigned int) 1476 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1477 void AfxLockGlobals(int) 1478 void AfxLockTempMaps() 1479 CHandleMap * afxMapHDC(int) 1480 CHandleMap * afxMapHGDIOBJ(int) 1481 CHandleMap * afxMapHIMAGELIST(int) 1482 CHandleMap * afxMapHMENU(int) 1483 CHandleMap * afxMapHWND(int) 1484 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1485 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1486 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1487 int AfxNewHandler(unsigned int) 1488 int AfxOleCanExitApp() 1489 COleMessageFilter * AfxOleGetMessageFilter() 1490 int AfxOleGetUserCtrl() 1491 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1492 int AfxOleInit() 1493 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1494 void AfxOleLockApp() 1495 int AfxOleLockControl(_GUID const &) 1496 int AfxOleLockControl(wchar_t const *) 1497 void AfxOleOnReleaseAllObjects() 1498 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1499 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1500 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1501 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1502 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1503 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1504 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1505 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1506 void AfxOleSetUserCtrl(int) 1507 void AfxOleTerm(int) 1508 void AfxOleTermOrFreeLib(int,int) 1509 void AfxOleUnlockAllControls() 1510 void AfxOleUnlockApp() 1511 int AfxOleUnlockControl(_GUID const &) 1512 int AfxOleUnlockControl(wchar_t const *) 1513 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1514 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1515 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1516 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1517 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1518 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1519 void AfxPostQuitMessage(int) 1520 int AfxPreTranslateMessage(tagMSG *) 1521 long AfxProcessWndProcException(CException *,tagMSG const *) 1522 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1523 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1524 int AfxPumpMessage() 1525 unsigned int AfxReadStringLength(CArchive &,int &) 1526 int AfxRegisterClass(tagWNDCLASSW *) 1527 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1528 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1529 void AfxResetMsgCache() 1530 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1531 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1532 void AfxSafeArrayInit(COleSafeArray *) 1533 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1534 void AfxSetAllocStop(long) 1535 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1536 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1537 void AfxSetResourceHandle(HINSTANCE__ *) 1538 void AfxSetWindowText(HWND__ *,wchar_t const *) 1539 void AfxSocketTerm() 1540 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1541 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1542 void AfxStoreField(CRecordset &,unsigned int,void *) 1543 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1544 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1545 void AfxTermLocalData(HINSTANCE__ *,int) 1546 void AfxTermThread(HINSTANCE__ *) 1547 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1548 void AfxThrowArchiveException(int,wchar_t const *) 1549 void AfxThrowDBException(short,CDatabase *,void *) 1550 void AfxThrowFileException(int,long,wchar_t const *) 1551 void AfxThrowInternetException(unsigned long,unsigned long) 1552 void AfxThrowInvalidArgException() 1553 void AfxThrowLastCleanup() 1554 void AfxThrowMemoryException() 1555 void AfxThrowNotSupportedException() 1556 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1557 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1558 void AfxThrowOleException(long) 1559 void AfxThrowResourceException() 1560 void AfxThrowUserException() 1561 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1562 void AfxTlsAddRef() 1563 void AfxTlsRelease() 1564 void AfxTrace(wchar_t const *,...) 1565 int afxTraceEnabled 1566 unsigned int afxTraceFlags 1567 void AfxTrackerTerm() 1568 void AfxTryCleanup() 1569 int AfxUnhookWindowCreate() 1570 void AfxUnlockGlobals(int) 1571 int AfxUnlockTempMaps(int) 1572 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1573 void AfxVariantInit(tagVARIANT *) 1574 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1575 char * AfxW2AHelper(char *,wchar_t const *,int) 1576 void AfxWingdixTerm() 1577 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1578 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1579 void AfxWinTerm() 1580 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1581 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1582 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1583 void AfxWriteStringLength(CArchive &,unsigned int,int) 1584 void * CFixedAlloc::Alloc() 1585 void * CFixedAllocNoSync::Alloc() 1586 unsigned char * CMemFile::Alloc(unsigned long) 1587 unsigned char * CSharedFile::Alloc(unsigned long) 1588 void CRecordset::AllocAndCacheFieldInfo() 1589 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1590 void CDatabase::AllocConnect(unsigned long) 1591 void COleSafeArray::AllocData() 1592 void CRecordset::AllocDataCache() 1593 void COleSafeArray::AllocDescriptor(unsigned long) 1594 int CControlBar::AllocElements(int,int) 1595 int CStatusBar::AllocElements(int,int) 1596 int CRecordset::AllocHstmt() 1597 void CPropertyPage::AllocPSP(unsigned long) 1598 void CRecordset::AllocRowset() 1599 int CThreadSlotData::AllocSlot() 1600 void CRecordset::AllocStatusArrays() 1601 wchar_t * ATL::CStringT > >::AllocSysString()const 1602 wchar_t * ATL::CStringT > >::AllocSysString()const 1603 void * CProperty::AllocValue(unsigned long) 1604 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1605 short COleControl::AmbientAppearance() 1606 unsigned long COleControl::AmbientBackColor() 1607 ATL::CStringT > > COleControl::AmbientDisplayName() 1608 IFontDisp * COleControl::AmbientFont() 1609 unsigned long COleControl::AmbientForeColor() 1610 unsigned long COleControl::AmbientLocaleID() 1611 ATL::CStringT > > COleControl::AmbientScaleUnits() 1612 int COleControl::AmbientShowGrabHandles() 1613 int COleControl::AmbientShowHatching() 1614 short COleControl::AmbientTextAlign() 1615 int COleControl::AmbientUIDead() 1616 int COleControl::AmbientUserMode() 1617 int CDC::AngleArc(int,int,int,float,float) 1618 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1619 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1620 void ATL::CSimpleStringT::Append(wchar_t const *) 1621 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1622 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1623 void ATL::CSimpleStringT::Append(char const *) 1624 void ATL::CSimpleStringT::Append(char const *,int) 1625 int CByteArray::Append(CByteArray const &) 1626 int CDWordArray::Append(CDWordArray const &) 1627 int CObArray::Append(CObArray const &) 1628 int CPtrArray::Append(CPtrArray const &) 1629 int CStringArray::Append(CStringArray const &) 1630 int CUIntArray::Append(CUIntArray const &) 1631 int CWordArray::Append(CWordArray const &) 1632 void ATL::CSimpleStringT::AppendChar(wchar_t) 1633 void ATL::CSimpleStringT::AppendChar(char) 1634 void CRecordset::AppendFilterAndSortSQL() 1635 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1636 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1637 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1638 void ATL::CStringT > >::AppendFormat(char const *,...) 1639 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1640 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1641 int CMenu::AppendMenuW(unsigned int,unsigned int,wchar_t const *) 1642 int CMenu::AppendMenuW(unsigned int,unsigned int,CBitmap const *) 1643 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1644 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1645 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1646 long COlePropertyPage::XPropertyPage::Apply() 1647 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1648 int COleDocument::ApplyPrintDevice(tagPDW const *) 1649 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1650 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1651 int CDC::Arc(int,int,int,int,int,int,int,int) 1652 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1653 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1654 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1655 int CListCtrl::Arrange(unsigned int) 1656 unsigned int CWnd::ArrangeIconicWindows() 1657 void CAsyncMonikerFile::AssertValid()const 1658 void CAsyncSocket::AssertValid()const 1659 void CBitmapButton::AssertValid()const 1660 void CByteArray::AssertValid()const 1661 void CCachedDataPathProperty::AssertValid()const 1662 void CClientDC::AssertValid()const 1663 void CCmdTarget::AssertValid()const 1664 void CControlBar::AssertValid()const 1665 void CCtrlView::AssertValid()const 1666 void CDatabase::AssertValid()const 1667 void CDataPathProperty::AssertValid()const 1668 void CDC::AssertValid()const 1669 void CDialog::AssertValid()const 1670 void CDocItem::AssertValid()const 1671 void CDockBar::AssertValid()const 1672 void CDocManager::AssertValid()const 1673 void CDocObjectServer::AssertValid()const 1674 void CDocObjectServerItem::AssertValid()const 1675 void CDocTemplate::AssertValid()const 1676 void CDocument::AssertValid()const 1677 void CDWordArray::AssertValid()const 1678 void CDynLinkLibrary::AssertValid()const 1679 void CEditView::AssertValid()const 1680 void CFile::AssertValid()const 1681 void CFileFind::AssertValid()const 1682 void CFormView::AssertValid()const 1683 void CFrameWnd::AssertValid()const 1684 void CFtpConnection::AssertValid()const 1685 void CFtpFileFind::AssertValid()const 1686 void CGdiObject::AssertValid()const 1687 void CGopherConnection::AssertValid()const 1688 void CGopherFile::AssertValid()const 1689 void CGopherFileFind::AssertValid()const 1690 void CHtmlEditDoc::AssertValid()const 1691 void CHtmlEditView::AssertValid()const 1692 void CHtmlView::AssertValid()const 1693 void CHttpConnection::AssertValid()const 1694 void CHttpFile::AssertValid()const 1695 void CImageList::AssertValid()const 1696 void CInternetConnection::AssertValid()const 1697 void CInternetFile::AssertValid()const 1698 void CLongBinary::AssertValid()const 1699 void CMapPtrToPtr::AssertValid()const 1700 void CMapPtrToWord::AssertValid()const 1701 void CMapStringToOb::AssertValid()const 1702 void CMapStringToPtr::AssertValid()const 1703 void CMapStringToString::AssertValid()const 1704 void CMapWordToOb::AssertValid()const 1705 void CMapWordToPtr::AssertValid()const 1706 void CMDIChildWnd::AssertValid()const 1707 void CMDIFrameWnd::AssertValid()const 1708 void CMemFile::AssertValid()const 1709 void CMenu::AssertValid()const 1710 void CMonikerFile::AssertValid()const 1711 void CMultiDocTemplate::AssertValid()const 1712 void CObArray::AssertValid()const 1713 void CObject::AssertValid()const 1714 void CObList::AssertValid()const 1715 void COleChangeSourceDialog::AssertValid()const 1716 void COleClientItem::AssertValid()const 1717 void COleCntrFrameWnd::AssertValid()const 1718 void COleControl::AssertValid()const 1719 void COleDataSource::AssertValid()const 1720 void COleDocIPFrameWnd::AssertValid()const 1721 void COleDocument::AssertValid()const 1722 void COleDropTarget::AssertValid()const 1723 void COleIPFrameWnd::AssertValid()const 1724 void COleLinkingDoc::AssertValid()const 1725 void COleLinksDialog::AssertValid()const 1726 void COleMessageFilter::AssertValid()const 1727 void COleObjectFactory::AssertValid()const 1728 void COlePasteSpecialDialog::AssertValid()const 1729 void COlePropertiesDialog::AssertValid()const 1730 void COleServerDoc::AssertValid()const 1731 void COleServerItem::AssertValid()const 1732 void COleStreamFile::AssertValid()const 1733 void CPaintDC::AssertValid()const 1734 void CPreviewDC::AssertValid()const 1735 void CPreviewView::AssertValid()const 1736 void CPropertyPage::AssertValid()const 1737 void CPropertySheet::AssertValid()const 1738 void CPtrArray::AssertValid()const 1739 void CPtrList::AssertValid()const 1740 void CRecordset::AssertValid()const 1741 void CRecordView::AssertValid()const 1742 void CRichEditCntrItem::AssertValid()const 1743 void CRichEditDoc::AssertValid()const 1744 void CRichEditView::AssertValid()const 1745 void CScrollView::AssertValid()const 1746 void CSingleDocTemplate::AssertValid()const 1747 void CSocket::AssertValid()const 1748 void CSocketFile::AssertValid()const 1749 void CSplitterWnd::AssertValid()const 1750 void CStatusBar::AssertValid()const 1751 void CStringArray::AssertValid()const 1752 void CStringList::AssertValid()const 1753 void CSyncObject::AssertValid()const 1754 void CToolBar::AssertValid()const 1755 void CUIntArray::AssertValid()const 1756 void CView::AssertValid()const 1757 void CWinApp::AssertValid()const 1758 void CWindowDC::AssertValid()const 1759 void CWinThread::AssertValid()const 1760 void CWnd::AssertValid()const 1761 void CWordArray::AssertValid()const 1762 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1763 int CAsyncSocket::AsyncSelect(long) 1764 long ATL::AtlIAccessibleGetIDsOfNamesHelper(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 1765 long ATL::AtlIAccessibleInvokeHelper(IAccessible *,long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1766 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1767 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1768 int CAsyncSocket::Attach(unsigned int,long) 1769 int CDC::Attach(HDC__ *) 1770 int CGdiObject::Attach(void *) 1771 int CImageList::Attach(_IMAGELIST *) 1772 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1773 int CMenu::Attach(HMENU__ *) 1774 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1775 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1776 void COleDataObject::Attach(IDataObject *,int) 1777 void COleSafeArray::Attach(tagVARIANT &) 1778 void COleStreamFile::Attach(IStream *) 1779 void COleVariant::Attach(tagVARIANT &) 1780 int CSocket::Attach(unsigned int) 1781 int CWnd::Attach(HWND__ *) 1782 int COleDataObject::AttachClipboard() 1783 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1784 void CWnd::AttachControlSite(CHandleMap *) 1785 void CWnd::AttachControlSite(CWnd *,unsigned int) 1786 void COleClientItem::AttachDataObject(COleDataObject &)const 1787 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1788 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1789 CPrintDialog * CPrintDialog::AttachOnSetup() 1790 void COleControlSite::AttachWindow() 1791 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1792 void CToolBarCtrl::AutoSize() 1793 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1794 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1795 void COleMessageFilter::BeginBusyState() 1796 void COleLinkingDoc::BeginDeferErrors() 1797 int CDragListBox::BeginDrag(CPoint) 1798 int CImageList::BeginDrag(int,CPoint) 1799 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1800 void COleDataObject::BeginEnumFormats() 1801 void CFrameWnd::BeginModalState() 1802 void CWnd::BeginModalState() 1803 CDC * CWnd::BeginPaint(tagPAINT*) 1804 int CDC::BeginPath() 1805 int CDatabase::BeginTrans() 1806 void CCmdTarget::BeginWaitCursor() 1807 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1808 int CAsyncSocket::Bind(sockaddr const *,int) 1809 void CDataSourceControl::BindColumns() 1810 void COccManager::BindControls(CWnd *) 1811 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1812 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1813 void CRecordset::BindFieldsForUpdate() 1814 unsigned int CRecordset::BindFieldsToColumns() 1815 void CDatabase::BindParameters(void *) 1816 unsigned int CRecordset::BindParams(void *) 1817 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1818 void CDataSourceControl::BindProp(COleControlSite *,int) 1819 void COleControlSite::BindProperty(long,CWnd *) 1820 void CWnd::BindProperty(long,CWnd *) 1821 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1822 void COleControl::BoundPropertyChanged(long) 1823 int COleControl::BoundPropertyRequestEdit(long) 1824 void CFrameWnd::BringToTop(int) 1825 void CWnd::BringWindowToTop() 1826 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1827 void CDBException::BuildErrorString(CDatabase *,void *,int) 1828 void CPropertySheet::BuildPropPageArray() 1829 void CRecordset::BuildSelectSQL() 1830 int COleControl::BuildSharedMenu() 1831 int COleDocIPFrameWnd::BuildSharedMenu() 1832 int COleIPFrameWnd::BuildSharedMenu() 1833 void CRecordset::BuildSQL(wchar_t const *) 1834 void CRecordset::BuildUpdateSQL() 1835 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1836 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1837 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1838 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1839 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1840 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1841 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1842 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1843 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1844 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1845 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1846 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1847 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1848 CSize CControlBar::CalcFixedLayout(int,int) 1849 CSize CDialogBar::CalcFixedLayout(int,int) 1850 CSize CDockBar::CalcFixedLayout(int,int) 1851 CSize CReBar::CalcFixedLayout(int,int) 1852 CSize CStatusBar::CalcFixedLayout(int,int) 1853 CSize CToolBar::CalcFixedLayout(int,int) 1854 void CControlBar::CalcInsideRect(CRect &,int)const 1855 void CStatusBar::CalcInsideRect(CRect &,int)const 1856 CSize CToolBar::CalcLayout(unsigned long,int) 1857 int CCheckListBox::CalcMinimumItemHeight() 1858 CSize CPreviewView::CalcPageDisplaySize() 1859 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1860 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1861 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1862 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1863 void CView::CalcWindowRect(tagRECT *,unsigned int) 1864 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1865 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1866 int CDHtmlDialog::CanAccessExternal() 1867 int COleClientItem::CanActivate() 1868 int CRichEditCntrItem::CanActivate() 1869 int CSplitterWnd::CanActivateNext(int) 1870 int CRecordset::CanAppend()const 1871 int CRecordset::CanBookmark()const 1872 void CDatabase::Cancel() 1873 void CRecordset::Cancel() 1874 void CSocket::CancelBlockingCall() 1875 void CDragListBox::CancelDrag(CPoint) 1876 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1877 long COleUILinkInfo::CancelLink(unsigned long) 1878 void CDockContext::CancelLoop() 1879 void CPropertyPage::CancelToClose() 1880 void CWnd::CancelToolTips(int) 1881 void CRecordset::CancelUpdate() 1882 int CDocument::CanCloseFrame(CFrameWnd *) 1883 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1884 int COleClientItem::CanCreateFromData(COleDataObject const *) 1885 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1886 unsigned long CDockContext::CanDock() 1887 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1888 int CFrameWnd::CanEnterHelpMode() 1889 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1890 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1891 int COleClientItem::CanPaste() 1892 int CRichEditCtrl::CanPaste(unsigned int)const 1893 int CRichEditView::CanPaste()const 1894 int COleClientItem::CanPasteLink() 1895 int CRichEditCtrl::CanRedo()const 1896 int CRecordset::CanRestart()const 1897 int CRecordset::CanScroll()const 1898 int CDatabase::CanTransact()const 1899 int CRecordset::CanTransact()const 1900 int CEdit::CanUndo()const 1901 int CRichEditCtrl::CanUndo()const 1902 int CDatabase::CanUpdate()const 1903 int CRecordset::CanUpdate()const 1904 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1905 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1906 void CScrollView::CenterOnPoint(CPoint) 1907 void CWnd::CenterWindow(CWnd *) 1908 int CWnd::ChangeClipboardChain(HWND__ *) 1909 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1910 int CEdit::CharFromPos(CPoint)const 1911 int CRichEditCtrl::CharFromPos(CPoint)const 1912 int CListBox::CharToItem(unsigned int,unsigned int) 1913 void ATL::CStringT > >::CharToOemA() 1914 int CDatabase::Check(short)const 1915 int CRecordset::Check(short)const 1916 int CDialog::CheckAutoCenter() 1917 int CWnd::CheckAutoCenter() 1918 int CToolBarCtrl::CheckButton(int,int) 1919 void CArchive::CheckCount() 1920 void COleControlContainer::CheckDlgButton(int,unsigned int) 1921 void CWnd::CheckDlgButton(int,unsigned int) 1922 int CCheckListBox::CheckFromPoint(CPoint,int &) 1923 void COleClientItem::CheckGeneral(long) 1924 int CDatabase::CheckHstmt(short,void *)const 1925 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1926 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1927 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1928 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1929 void CMemoryState::Checkpoint() 1930 void COleControlContainer::CheckRadioButton(int,int,int) 1931 void CWnd::CheckRadioButton(int,int,int) 1932 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1933 void CRecordset::CheckRowsetError(short) 1934 void CScrollView::CheckScrollBars(int &,int &)const 1935 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1936 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1937 int CDC::Chord(int,int,int,int,int,int,int,int) 1938 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1939 void CPropertyPage::Cleanup() 1940 void COlePropertyPage::CleanupObjectArray() 1941 void CComboBox::Clear() 1942 void CDBVariant::Clear() 1943 void CDockState::Clear() 1944 void CEdit::Clear() 1945 void COleSafeArray::Clear() 1946 void COleVariant::Clear() 1947 void CRichEditCtrl::Clear() 1948 void CIPAddressCtrl::ClearAddress() 1949 int CHeaderCtrl::ClearAllFilters() 1950 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1951 void CRecordset::ClearFieldStatus() 1952 int CHeaderCtrl::ClearFilter(int) 1953 void CRecordset::ClearNullFieldStatus(unsigned long) 1954 void CRecordset::ClearNullParamStatus(unsigned long) 1955 void CSliderCtrl::ClearSel(int) 1956 void CSliderCtrl::ClearTics(int) 1957 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1958 void CWnd::ClientToScreen(tagPOINT *)const 1959 void CWnd::ClientToScreen(tagRECT *)const 1960 int COleControl::ClipCaretRect(tagRECT *) 1961 void CPreviewDC::ClipToPage() 1962 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1963 long CArchiveStream::Clone(IStream * *) 1964 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1965 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1966 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1967 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1968 int CAnimateCtrl::Close() 1969 void CArchive::Close() 1970 void CAsyncMonikerFile::Close() 1971 void CAsyncSocket::Close() 1972 void CCachedDataPathProperty::Close() 1973 void CDatabase::Close() 1974 void CFile::Close() 1975 void CFileFind::Close() 1976 void CInternetConnection::Close() 1977 void CInternetFile::Close() 1978 void CInternetSession::Close() 1979 void CMemFile::Close() 1980 HMETAFILE__ * CMetaFileDC::Close() 1981 void CMirrorFile::Close() 1982 void CMonikerFile::Close() 1983 void COleClientItem::Close(enum tagOLECLOSE) 1984 void COleStreamFile::Close() 1985 void CRecordset::Close() 1986 void CSocket::Close() 1987 void CSocketFile::Close() 1988 void CStdioFile::Close() 1989 long CDocObjectServer::XOleObject::Close(unsigned long) 1990 long COleControl::XOleObject::Close(unsigned long) 1991 long COleServerDoc::XOleObject::Close(unsigned long) 1992 long COleServerItem::XOleObject::Close(unsigned long) 1993 void CDocManager::CloseAllDocuments(int) 1994 void CDocTemplate::CloseAllDocuments(int) 1995 void CWinApp::CloseAllDocuments(int) 1996 void CFileFind::CloseContext() 1997 void CFtpFileFind::CloseContext() 1998 void CGopherFileFind::CloseContext() 1999 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 2000 int CDC::CloseFigure() 2001 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2002 void CWnd::CloseWindow() 2003 int ATL::CStringT > >::Collate(wchar_t const *)const 2004 int ATL::CStringT > >::Collate(char const *)const 2005 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 2006 int ATL::CStringT > >::CollateNoCase(char const *)const 2007 int CRgn::CombineRgn(CRgn *,CRgn *,int) 2008 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 2009 int CStatusBar::CommandToIndex(unsigned int)const 2010 int CToolBar::CommandToIndex(unsigned int)const 2011 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 2012 long CArchiveStream::Commit(unsigned long) 2013 void COleClientItem::CommitItem(int) 2014 void COleDocument::CommitItems(int,IStorage *) 2015 int CDatabase::CommitTrans() 2016 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 2017 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 2018 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 2019 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2020 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2021 void CWinThread::CommonConstruct() 2022 int ATL::CStringT > >::Compare(wchar_t const *)const 2023 int ATL::CStringT > >::Compare(char const *)const 2024 int CComboBox::CompareItem(tagCOMPAREITEM*) 2025 int CListBox::CompareItem(tagCOMPAREITEM*) 2026 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 2027 int ATL::CStringT > >::CompareNoCase(char const *)const 2028 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 2029 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 2030 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 2031 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 2032 int CAsyncSocket::Connect(sockaddr const *,int) 2033 int CDatabase::Connect(unsigned long) 2034 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 2035 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 2036 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2037 int CSocket::ConnectHelper(sockaddr const *,int) 2038 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2039 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2040 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 2041 long CDHtmlControlSink::ConnectToControl(IUnknown *) 2042 void COleServerDoc::ConnectView(CWnd *,CView *) 2043 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2044 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2045 void CPropertyPage::Construct(unsigned int,unsigned int) 2046 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 2047 void CPropertyPage::Construct(wchar_t const *,unsigned int) 2048 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 2049 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2050 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2051 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 2052 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2053 void CRectTracker::Construct() 2054 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2055 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2056 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2057 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2058 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2059 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2060 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2061 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2062 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2063 int CPropertySheet::ContinueModal() 2064 int CWnd::ContinueModal() 2065 void CCmdUI::ContinueRouting() 2066 void COleControl::ControlInfoChanged() 2067 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2068 int COleClientItem::ConvertTo(_GUID const &) 2069 int CRichEditCntrItem::ConvertTo(_GUID const &) 2070 void CByteArray::Copy(CByteArray const &) 2071 void CComboBox::Copy() 2072 void CDWordArray::Copy(CDWordArray const &) 2073 void CEdit::Copy() 2074 int CImageList::Copy(int,int,unsigned int) 2075 int CImageList::Copy(int,CImageList *,int,unsigned int) 2076 void CObArray::Copy(CObArray const &) 2077 void COleSafeArray::Copy(tagSAFEARRAY * *) 2078 void CPtrArray::Copy(CPtrArray const &) 2079 void CRichEditCtrl::Copy() 2080 void CStringArray::Copy(CStringArray const &) 2081 void CUIntArray::Copy(CUIntArray const &) 2082 void CWordArray::Copy(CWordArray const &) 2083 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 2084 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 2085 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 2086 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 2087 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2088 int CRgn::CopyRgn(CRgn *) 2089 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2090 void COleClientItem::CopyToClipboard(int) 2091 void COleServerItem::CopyToClipboard(int) 2092 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2093 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 2094 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2095 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2096 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2097 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2098 int CControlFrameWnd::Create(wchar_t const *) 2099 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2100 int CDialog::Create(unsigned int,CWnd *) 2101 int CDialog::Create(wchar_t const *,CWnd *) 2102 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 2103 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 2104 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2105 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2106 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 2107 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2108 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 2109 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2110 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2111 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 2112 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2113 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2114 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2115 int CImageList::Create(int,int,unsigned int,int,int) 2116 int CImageList::Create(unsigned int,int,int,unsigned long) 2117 int CImageList::Create(CImageList *) 2118 int CImageList::Create(wchar_t const *,int,int,unsigned long) 2119 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2120 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2121 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2122 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2123 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2124 int CMetaFileDC::Create(wchar_t const *) 2125 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2126 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2127 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 2128 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2129 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2130 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2131 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2132 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2133 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2134 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2135 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 2136 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2137 int CReflectorWnd::Create(CRect const &,HWND__ *) 2138 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2139 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2140 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2141 int CSocket::Create(unsigned int,int,wchar_t const *) 2142 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2143 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2144 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2145 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2146 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2147 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2148 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2149 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2150 int CToolTipCtrl::Create(CWnd *,unsigned long) 2151 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2152 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2153 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2154 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2155 IBindHost * CMonikerFile::CreateBindHost() 2156 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2157 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2158 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2159 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2160 void CWnd::CreateCaret(CBitmap *) 2161 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 2162 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2163 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2164 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2165 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2166 int CDC::CreateCompatibleDC(CDC *) 2167 void CConnectionPoint::CreateConnectionArray() 2168 COleControlContainer * COccManager::CreateContainer(CWnd *) 2169 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2170 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2171 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2172 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2173 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2174 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2175 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2176 int CWnd::CreateControlContainer(COleControlContainer * *) 2177 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2178 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2179 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2180 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2181 int CDC::CreateDCW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2182 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2183 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2184 int CFtpConnection::CreateDirectoryW(wchar_t const *) 2185 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2186 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2187 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 2188 int CWnd::CreateDlg(wchar_t const *,CWnd *) 2189 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2190 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2191 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 2193 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2194 CImageList * CHeaderCtrl::CreateDragImage(int) 2195 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2196 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2197 int CRgn::CreateEllipticRgn(int,int,int,int) 2198 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2199 int CPictureHolder::CreateEmpty() 2200 int CMetaFileDC::CreateEnhanced(CDC *,wchar_t const *,tagRECT const *,wchar_t const *) 2201 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2202 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2203 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2204 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2205 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2206 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2207 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2208 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2209 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2210 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2211 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2212 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2213 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2214 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2215 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2216 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2217 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2218 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2219 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2220 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2221 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2222 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2223 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2224 int CFont::CreateFontIndirectW(tagLOGFONTW const *) 2225 int CFont::CreateFontW(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,wchar_t const *) 2226 CControlFrameWnd * COleControl::CreateFrameWindow() 2227 int CPictureHolder::CreateFromBitmap(unsigned int) 2228 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2229 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2230 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2231 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2232 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2233 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2234 int CPictureHolder::CreateFromIcon(unsigned int) 2235 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2236 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2237 int CRgn::CreateFromPath(CDC *) 2238 void CWnd::CreateGrayCaret(int,int) 2239 int CPalette::CreateHalftonePalette(CDC *) 2240 int CBrush::CreateHatchBrush(int,unsigned long) 2241 int CDC::CreateICW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2242 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2243 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2244 int CDialog::CreateIndirect(void *,CWnd *) 2245 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2246 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2247 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2248 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2249 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2250 int COleInsertDialog::CreateItem(COleClientItem *) 2251 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2252 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2253 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2254 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2255 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 2256 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 2257 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 2258 int COleStreamFile::CreateMemoryStream(CFileException *) 2259 int CMenu::CreateMenu() 2260 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2261 CDocument * CDocTemplate::CreateNewDocument() 2262 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2263 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2264 CObject * CByteArray::CreateObject() 2265 CObject * CDC::CreateObject() 2266 CObject * CDocItem::CreateObject() 2267 CObject * CDockState::CreateObject() 2268 CObject * CDWordArray::CreateObject() 2269 CObject * CEditView::CreateObject() 2270 CObject * CFrameWnd::CreateObject() 2271 CObject * CGdiObject::CreateObject() 2272 CObject * CHtmlEditView::CreateObject() 2273 CObject * CHtmlView::CreateObject() 2274 CObject * CImageList::CreateObject() 2275 CObject * CListView::CreateObject() 2276 CObject * CMapStringToOb::CreateObject() 2277 CObject * CMapStringToString::CreateObject() 2278 CObject * CMapWordToOb::CreateObject() 2279 CObject * CMDIChildWnd::CreateObject() 2280 CObject * CMDIFrameWnd::CreateObject() 2281 CObject * CMenu::CreateObject() 2282 CObject * CMiniDockFrameWnd::CreateObject() 2283 CObject * CMiniFrameWnd::CreateObject() 2284 CObject * CObArray::CreateObject() 2285 CObject * CObList::CreateObject() 2286 CObject * COleDocIPFrameWnd::CreateObject() 2287 CObject * COleIPFrameWnd::CreateObject() 2288 CObject * CPreviewView::CreateObject() 2289 CObject * CRichEditCntrItem::CreateObject() 2290 CObject * CRichEditView::CreateObject() 2291 CObject * CRuntimeClass::CreateObject() 2292 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2293 CObject * CRuntimeClass::CreateObject(char const *) 2294 CObject * CStringArray::CreateObject() 2295 CObject * CStringList::CreateObject() 2296 CObject * CTreeView::CreateObject() 2297 CObject * CWnd::CreateObject() 2298 CObject * CWordArray::CreateObject() 2299 void COleControlContainer::CreateOleFont(CFont *) 2300 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2301 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2302 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2303 int CPalette::CreatePalette(tagLOGPALETTE *) 2304 int CBrush::CreatePatternBrush(CBitmap *) 2305 int CPen::CreatePen(int,int,unsigned long) 2306 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2307 int CPen::CreatePenIndirect(tagLOGPEN *) 2308 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 2309 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 2310 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2311 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2312 int CMenu::CreatePopupMenu() 2313 HDC__ * CPageSetupDialog::CreatePrinterDC() 2314 HDC__ * CPrintDialog::CreatePrinterDC() 2315 HDC__ * CPrintDialogEx::CreatePrinterDC() 2316 int CWinApp::CreatePrinterDC(CDC &) 2317 int CRgn::CreateRectRgn(int,int,int,int) 2318 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2319 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2320 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2321 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2322 int CBrush::CreateSolidBrush(unsigned long) 2323 void CWnd::CreateSolidCaret(int,int) 2324 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2325 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2326 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2327 int CGdiObject::CreateStockObject(int) 2328 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 2329 int CBrush::CreateSysColorBrush(int) 2330 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2331 void COleControl::CreateTracker(int,int) 2332 void COleControl::CreateTracker(int,int,tagRECT const *) 2333 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2334 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2335 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2336 void COleControl::CreateWindowForSubclassedControl() 2337 void CToolBarCtrl::Customize() 2338 void CComboBox::Cut() 2339 void CEdit::Cut() 2340 void CRichEditCtrl::Cut() 2341 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2342 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2343 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2344 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2345 void DDP_CBIndex(CDataExchange *,int,int &,wchar_t const *) 2346 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2347 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2348 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 2349 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 2350 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 2351 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 2352 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 2353 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 2354 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 2355 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 2356 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 2357 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 2358 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 2359 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 2360 void DDP_LBIndex(CDataExchange *,int,int &,wchar_t const *) 2361 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2362 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2363 void DDP_PostProcessing(CDataExchange *) 2364 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 2365 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 2366 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 2367 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 2368 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 2369 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 2370 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 2371 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 2372 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 2373 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2374 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2375 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2376 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2377 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2378 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2379 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2380 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2381 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2382 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2383 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2384 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2385 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2386 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2387 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2388 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2389 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2390 void DDX_CBIndex(CDataExchange *,int,int &) 2391 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2392 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2393 void DDX_Check(CDataExchange *,int,int &) 2394 void DDX_Control(CDataExchange *,int,CWnd &) 2395 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2396 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2397 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2398 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2399 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2400 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2401 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 2402 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 2403 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 2404 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 2405 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 2406 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 2407 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 2408 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 2409 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 2410 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 2411 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 2412 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 2413 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 2414 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 2415 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 2416 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 2417 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 2418 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 2419 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 2420 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 2421 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 2422 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 2423 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 2424 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 2425 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 2426 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 2427 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 2428 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2429 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 2430 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2431 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2432 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2433 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2434 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2435 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2436 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2437 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2438 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2439 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2440 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2441 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2442 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2443 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2444 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2445 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2446 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2447 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2448 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 2449 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2450 void DDX_LBIndex(CDataExchange *,int,int &) 2451 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2452 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2453 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2454 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2455 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2456 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2457 void DDX_OCBool(CDataExchange *,int,long,int &) 2458 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2459 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2460 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2461 void DDX_OCFloat(CDataExchange *,int,long,float &) 2462 void DDX_OCFloat(CDataExchange *,int,long,double &) 2463 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2464 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2465 void DDX_OCInt(CDataExchange *,int,long,int &) 2466 void DDX_OCInt(CDataExchange *,int,long,long &) 2467 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2468 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2469 void DDX_OCShort(CDataExchange *,int,long,short &) 2470 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2471 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2472 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2473 void DDX_Radio(CDataExchange *,int,int &) 2474 void DDX_Scroll(CDataExchange *,int,int &) 2475 void DDX_Slider(CDataExchange *,int,int &) 2476 void DDX_Text(CDataExchange *,int,__int64 &) 2477 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2478 void DDX_Text(CDataExchange *,int,unsigned char &) 2479 void DDX_Text(CDataExchange *,int,short &) 2480 void DDX_Text(CDataExchange *,int,int &) 2481 void DDX_Text(CDataExchange *,int,unsigned int &) 2482 void DDX_Text(CDataExchange *,int,long &) 2483 void DDX_Text(CDataExchange *,int,unsigned long &) 2484 void DDX_Text(CDataExchange *,int,float &) 2485 void DDX_Text(CDataExchange *,int,double &) 2486 void DDX_Text(CDataExchange *,int,_FILETIME &) 2487 void DDX_Text(CDataExchange *,int,_GUID &) 2488 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2489 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2490 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2491 void DDX_Text(CDataExchange *,int,tagDEC &) 2492 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2493 void DDX_Text(CDataExchange *,int,COleCurrency &) 2494 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2495 void DDX_Text(CDataExchange *,int,wchar_t *,int) 2496 void COleClientItem::Deactivate() 2497 long COlePropertyPage::XPropertyPage::Deactivate() 2498 int COleServerDoc::DeactivateAndUndo() 2499 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2500 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2501 void COleClientItem::DeactivateUI() 2502 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 2503 long CWnd::Default() 2504 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 2505 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 2506 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 2507 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 2508 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 2509 void CFrameWnd::DelayRecalcLayout(int) 2510 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2511 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2512 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2513 void CControlBar::DelayShow(int) 2514 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2515 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2516 void CFrameWnd::DelayUpdateFrameTitle() 2517 int ATL::CStringT > >::Delete(int,int) 2518 int ATL::CStringT > >::Delete(int,int) 2519 void CException::Delete() 2520 void COleClientItem::Delete(int) 2521 void CRecordset::Delete() 2522 void CWinThread::Delete() 2523 int CListCtrl::DeleteAllItems() 2524 int CTabCtrl::DeleteAllItems() 2525 int CTreeCtrl::DeleteAllItems() 2526 int CReBarCtrl::DeleteBand(unsigned int) 2527 int CToolBarCtrl::DeleteButton(int) 2528 int CListCtrl::DeleteColumn(int) 2529 void CSplitterWnd::DeleteColumn(int) 2530 void CDocument::DeleteContents() 2531 void CEditView::DeleteContents() 2532 void CHtmlEditDoc::DeleteContents() 2533 void COleDocument::DeleteContents() 2534 void COleServerDoc::DeleteContents() 2535 void CRichEditDoc::DeleteContents() 2536 void CRichEditView::DeleteContents() 2537 int CDC::DeleteDC() 2538 int CImageList::DeleteImageList() 2539 void CComboBox::DeleteItem(tagDELETEITEM*) 2540 int CComboBoxEx::DeleteItem(int) 2541 int CHeaderCtrl::DeleteItem(int) 2542 void CListBox::DeleteItem(tagDELETEITEM*) 2543 int CListCtrl::DeleteItem(int) 2544 int CTabCtrl::DeleteItem(int) 2545 int CTreeCtrl::DeleteItem(_TREEITEM *) 2546 int CMenu::DeleteMenu(unsigned int,unsigned int) 2547 int CGdiObject::DeleteObject() 2548 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2549 void CSplitterWnd::DeleteRow(int) 2550 int CComboBox::DeleteString(unsigned int) 2551 int CListBox::DeleteString(unsigned int) 2552 void CHandleMap::DeleteTemp() 2553 void CDC::DeleteTempMap() 2554 void CGdiObject::DeleteTempMap() 2555 void CImageList::DeleteTempMap() 2556 void CMenu::DeleteTempMap() 2557 void CWnd::DeleteTempMap() 2558 void CRichEditDoc::DeleteUnmarkedItems()const 2559 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2560 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2561 void CSplitterWnd::DeleteView(int,int) 2562 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2563 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2564 void CTabCtrl::DeselectAll(int) 2565 void COleSafeArray::Destroy() 2566 int COleControlSite::DestroyControl() 2567 void COleSafeArray::DestroyData() 2568 void COleSafeArray::DestroyDescriptor() 2569 void CFrameWnd::DestroyDockBars() 2570 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2571 int CMenu::DestroyMenu() 2572 void CDHtmlDialog::DestroyModeless() 2573 void COleControl::DestroySharedMenu() 2574 void COleDocIPFrameWnd::DestroySharedMenu() 2575 void COleIPFrameWnd::DestroySharedMenu() 2576 int CToolTipCtrl::DestroyToolTipCtrl() 2577 void COleControl::DestroyTracker() 2578 int CControlBar::DestroyWindow() 2579 int CMDIChildWnd::DestroyWindow() 2580 int CWnd::DestroyWindow() 2581 unsigned int CAsyncSocket::Detach() 2582 HDC__ * CDC::Detach() 2583 void * CDialogTemplate::Detach() 2584 void * CGdiObject::Detach() 2585 _IMAGELIST * CImageList::Detach() 2586 unsigned char * CMemFile::Detach() 2587 HMENU__ * CMenu::Detach() 2588 int CMonikerFile::Detach(CFileException *) 2589 IDataObject * COleDataObject::Detach() 2590 tagVARIANT COleSafeArray::Detach() 2591 IStream * COleStreamFile::Detach() 2592 tagVARIANT COleVariant::Detach() 2593 void * CSharedFile::Detach() 2594 HDC__ * CWindowlessDC::Detach() 2595 HWND__ * CWnd::Detach() 2596 IDispatch * COleDispatchDriver::DetachDispatch() 2597 void CAsyncSocket::DetachHandle(unsigned int,int) 2598 void COleControlSite::DetachWindow() 2599 void CWinApp::DevModeChange(wchar_t *) 2600 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2601 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2602 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2603 int CComboBox::Dir(unsigned int,wchar_t const *) 2604 int CComboBoxEx::Dir(unsigned int,wchar_t const *) 2605 int CListBox::Dir(unsigned int,wchar_t const *) 2606 int COleServerDoc::DiscardUndoState() 2607 long COleClientItem::XOleIPSite::DiscardUndoState() 2608 long COleControlSite::XOleIPSite::DiscardUndoState() 2609 void COleDispatchImpl::Disconnect() 2610 void CDHtmlDialog::DisconnectDHtmlElementEvents() 2611 void CDHtmlDialog::DisconnectDHtmlEvents() 2612 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2613 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2614 void CDocument::DisconnectViews() 2615 void CWinThread::DispatchThreadMessage(tagMSG *) 2616 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2617 int CRichEditCtrl::DisplayBand(tagRECT *) 2618 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 2619 int CWnd::DlgDirListComboBoxW(wchar_t *,int,int,unsigned int) 2620 int CWnd::DlgDirListW(wchar_t *,int,int,unsigned int) 2621 int CWnd::DlgDirSelect(wchar_t *,int) 2622 int CWnd::DlgDirSelectComboBox(wchar_t *,int) 2623 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2624 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2625 void CAsyncSocket::DoCallBack(unsigned int,long) 2626 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2627 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2628 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2629 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2630 void COleControl::DoClick() 2631 int COleFrameHook::DoContextSensitiveHelp(int) 2632 int COleConvertDialog::DoConvert(COleClientItem *) 2633 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2634 void CWnd::DoDataExchange(CDataExchange *) 2635 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2636 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2637 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2638 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2639 int COleFrameHook::DoEnableModeless(int) 2640 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2641 void CRecordset::DoFieldExchange(CFieldExchange *) 2642 int CDocument::DoFileSave() 2643 int CSplitterWnd::DoKeyboardSplit() 2644 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2645 int CColorDialog::DoModal() 2646 int CDialog::DoModal() 2647 int CFileDialog::DoModal() 2648 int CFontDialog::DoModal() 2649 int COleBusyDialog::DoModal() 2650 int COleChangeIconDialog::DoModal() 2651 int COleChangeSourceDialog::DoModal() 2652 int COleConvertDialog::DoModal() 2653 int COleInsertDialog::DoModal(unsigned long) 2654 int COleInsertDialog::DoModal() 2655 int COleLinksDialog::DoModal() 2656 int COlePasteSpecialDialog::DoModal() 2657 int COlePropertiesDialog::DoModal() 2658 int COleUpdateDialog::DoModal() 2659 int CPageSetupDialog::DoModal() 2660 int CPrintDialog::DoModal() 2661 int CPrintDialogEx::DoModal() 2662 int CPropertySheet::DoModal() 2663 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2664 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2665 void CControlBar::DoPaint(CDC *) 2666 void CDockBar::DoPaint(CDC *) 2667 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2668 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2669 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2670 int CView::DoPreparePrinting(CPrintInfo *) 2671 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2672 int CWinApp::DoPrintDialog(CPrintDialog *) 2673 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2674 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2675 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2676 void COleControl::DoPropExchange(CPropExchange *) 2677 int CDocument::DoSave(wchar_t const *,int) 2678 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2679 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2680 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2681 int CCmdUI::DoUpdate(CCmdTarget *,int) 2682 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2683 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2684 long COleControlSite::DoVerb(long,tagMSG *) 2685 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2686 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2687 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2688 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2689 void CWinApp::DoWaitCursor(int) 2690 void CPreviewView::DoZoom(unsigned int,CPoint) 2691 void CDC::DPtoHIMETRIC(tagSIZE *)const 2692 void CDC::DPtoLP(tagPOINT *,int)const 2693 void CDC::DPtoLP(tagRECT *)const 2694 void CDC::DPtoLP(tagSIZE *)const 2695 void CWnd::DragAcceptFiles(int) 2696 int CWnd::DragDetect(tagPOINT)const 2697 int CImageList::DragEnter(CWnd *,CPoint) 2698 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2699 unsigned int CDragListBox::Dragging(CPoint) 2700 int CImageList::DragLeave(CWnd *) 2701 long COleDropTarget::XDropTarget::DragLeave() 2702 int CImageList::DragMove(CPoint) 2703 void CReBarCtrl::DragMove(unsigned long) 2704 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2705 int CImageList::DragShowNolock(int) 2706 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2707 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2708 void CRectTracker::Draw(CDC *)const 2709 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2710 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2711 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2712 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2713 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2714 void CControlBar::DrawBorders(CDC *,CRect &) 2715 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2716 void COleControl::DrawContent(CDC *,CRect &) 2717 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2718 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2719 int CDC::DrawEscape(int,int,char const *) 2720 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2721 void CDC::DrawFocusRect(tagRECT const *) 2722 void CDockContext::DrawFocusRect(int) 2723 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2724 void CControlBar::DrawGripper(CDC *,CRect const &) 2725 int CDC::DrawIcon(int,int,HICON__ *) 2726 int CDC::DrawIcon(tagPOINT,HICON__ *) 2727 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2728 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2729 void CDragListBox::DrawInsert(int) 2730 void CBitmapButton::DrawItem(tagDRAWITEM*) 2731 void CButton::DrawItem(tagDRAWITEM*) 2732 void CCheckListBox::DrawItem(tagDRAWITEM*) 2733 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2734 void CComboBox::DrawItem(tagDRAWITEM*) 2735 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2736 void CListBox::DrawItem(tagDRAWITEM*) 2737 void CListCtrl::DrawItem(tagDRAWITEM*) 2738 void CListView::DrawItem(tagDRAWITEM*) 2739 void CMenu::DrawItem(tagDRAWITEM*) 2740 void CStatic::DrawItem(tagDRAWITEM*) 2741 void CStatusBar::DrawItem(tagDRAWITEM*) 2742 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2743 void CTabCtrl::DrawItem(tagDRAWITEM*) 2744 void CWnd::DrawMenuBar() 2745 void COleControl::DrawMetafile(CDC *,CRect &) 2746 void CDragListBox::DrawSingle(int) 2747 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2748 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2749 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2750 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2751 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2752 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2753 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,HBRUSH__ *) 2754 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,CBrush *) 2755 int CDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2756 int CDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2757 int CMetaFileDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2758 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2759 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2760 int CDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2761 int CDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2762 int CMetaFileDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2763 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2764 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2765 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2766 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2767 void CDragListBox::Dropped(int,CPoint) 2768 void CArchiveException::Dump(CDumpContext &)const 2769 void CAsyncMonikerFile::Dump(CDumpContext &)const 2770 void CAsyncSocket::Dump(CDumpContext &)const 2771 void CBitmap::Dump(CDumpContext &)const 2772 void CBitmapButton::Dump(CDumpContext &)const 2773 void CBrush::Dump(CDumpContext &)const 2774 void CByteArray::Dump(CDumpContext &)const 2775 void CCachedDataPathProperty::Dump(CDumpContext &)const 2776 void CClientDC::Dump(CDumpContext &)const 2777 void CCmdTarget::Dump(CDumpContext &)const 2778 void CColorDialog::Dump(CDumpContext &)const 2779 void CControlBar::Dump(CDumpContext &)const 2780 void CCtrlView::Dump(CDumpContext &)const 2781 void CDatabase::Dump(CDumpContext &)const 2782 void CDataPathProperty::Dump(CDumpContext &)const 2783 void CDC::Dump(CDumpContext &)const 2784 void CDialog::Dump(CDumpContext &)const 2785 void CDocItem::Dump(CDumpContext &)const 2786 void CDockBar::Dump(CDumpContext &)const 2787 void CDocManager::Dump(CDumpContext &)const 2788 void CDocObjectServer::Dump(CDumpContext &)const 2789 void CDocObjectServerItem::Dump(CDumpContext &)const 2790 void CDocTemplate::Dump(CDumpContext &)const 2791 void CDocument::Dump(CDumpContext &)const 2792 void CDWordArray::Dump(CDumpContext &)const 2793 void CDynLinkLibrary::Dump(CDumpContext &)const 2794 void CEditView::Dump(CDumpContext &)const 2795 void CFile::Dump(CDumpContext &)const 2796 void CFileDialog::Dump(CDumpContext &)const 2797 void CFileException::Dump(CDumpContext &)const 2798 void CFileFind::Dump(CDumpContext &)const 2799 void CFileStatus::Dump(CDumpContext &)const 2800 void CFindReplaceDialog::Dump(CDumpContext &)const 2801 void CFont::Dump(CDumpContext &)const 2802 void CFontDialog::Dump(CDumpContext &)const 2803 void CFormView::Dump(CDumpContext &)const 2804 void CFrameWnd::Dump(CDumpContext &)const 2805 void CFtpConnection::Dump(CDumpContext &)const 2806 void CFtpFileFind::Dump(CDumpContext &)const 2807 void CGdiObject::Dump(CDumpContext &)const 2808 void CGopherConnection::Dump(CDumpContext &)const 2809 void CGopherFile::Dump(CDumpContext &)const 2810 void CGopherFileFind::Dump(CDumpContext &)const 2811 void CHtmlEditDoc::Dump(CDumpContext &)const 2812 void CHtmlEditView::Dump(CDumpContext &)const 2813 void CHtmlView::Dump(CDumpContext &)const 2814 void CHttpConnection::Dump(CDumpContext &)const 2815 void CHttpFile::Dump(CDumpContext &)const 2816 void CImageList::Dump(CDumpContext &)const 2817 void CInternetConnection::Dump(CDumpContext &)const 2818 void CInternetException::Dump(CDumpContext &)const 2819 void CInternetFile::Dump(CDumpContext &)const 2820 void CInternetSession::Dump(CDumpContext &)const 2821 void CLongBinary::Dump(CDumpContext &)const 2822 void CMapPtrToPtr::Dump(CDumpContext &)const 2823 void CMapPtrToWord::Dump(CDumpContext &)const 2824 void CMapStringToOb::Dump(CDumpContext &)const 2825 void CMapStringToPtr::Dump(CDumpContext &)const 2826 void CMapStringToString::Dump(CDumpContext &)const 2827 void CMapWordToOb::Dump(CDumpContext &)const 2828 void CMapWordToPtr::Dump(CDumpContext &)const 2829 void CMDIChildWnd::Dump(CDumpContext &)const 2830 void CMDIFrameWnd::Dump(CDumpContext &)const 2831 void CMemFile::Dump(CDumpContext &)const 2832 void CMenu::Dump(CDumpContext &)const 2833 void CMonikerFile::Dump(CDumpContext &)const 2834 void CMultiDocTemplate::Dump(CDumpContext &)const 2835 void CObArray::Dump(CDumpContext &)const 2836 void CObject::Dump(CDumpContext &)const 2837 void CObList::Dump(CDumpContext &)const 2838 void COleBusyDialog::Dump(CDumpContext &)const 2839 void COleChangeIconDialog::Dump(CDumpContext &)const 2840 void COleChangeSourceDialog::Dump(CDumpContext &)const 2841 void COleClientItem::Dump(CDumpContext &)const 2842 void COleControl::Dump(CDumpContext &)const 2843 void COleConvertDialog::Dump(CDumpContext &)const 2844 void COleDataSource::Dump(CDumpContext &)const 2845 void COleDialog::Dump(CDumpContext &)const 2846 void COleDocIPFrameWnd::Dump(CDumpContext &)const 2847 void COleDocument::Dump(CDumpContext &)const 2848 void COleDropSource::Dump(CDumpContext &)const 2849 void COleDropTarget::Dump(CDumpContext &)const 2850 void COleInsertDialog::Dump(CDumpContext &)const 2851 void COleIPFrameWnd::Dump(CDumpContext &)const 2852 void COleLinkingDoc::Dump(CDumpContext &)const 2853 void COleLinksDialog::Dump(CDumpContext &)const 2854 void COleMessageFilter::Dump(CDumpContext &)const 2855 void COleObjectFactory::Dump(CDumpContext &)const 2856 void COlePasteSpecialDialog::Dump(CDumpContext &)const 2857 void COlePropertiesDialog::Dump(CDumpContext &)const 2858 void COleServerDoc::Dump(CDumpContext &)const 2859 void COleServerItem::Dump(CDumpContext &)const 2860 void COleStreamFile::Dump(CDumpContext &)const 2861 void COleUpdateDialog::Dump(CDumpContext &)const 2862 void CPageSetupDialog::Dump(CDumpContext &)const 2863 void CPaintDC::Dump(CDumpContext &)const 2864 void CPen::Dump(CDumpContext &)const 2865 void CPreviewDC::Dump(CDumpContext &)const 2866 void CPreviewView::Dump(CDumpContext &)const 2867 void CPrintDialog::Dump(CDumpContext &)const 2868 void CPrintDialogEx::Dump(CDumpContext &)const 2869 void CPropertyPage::Dump(CDumpContext &)const 2870 void CPropertySheet::Dump(CDumpContext &)const 2871 void CPtrArray::Dump(CDumpContext &)const 2872 void CPtrList::Dump(CDumpContext &)const 2873 void CRecordset::Dump(CDumpContext &)const 2874 void CRecordView::Dump(CDumpContext &)const 2875 void CRichEditCntrItem::Dump(CDumpContext &)const 2876 void CRichEditDoc::Dump(CDumpContext &)const 2877 void CRichEditView::Dump(CDumpContext &)const 2878 void CScrollView::Dump(CDumpContext &)const 2879 void CSingleDocTemplate::Dump(CDumpContext &)const 2880 void CSocket::Dump(CDumpContext &)const 2881 void CSocketFile::Dump(CDumpContext &)const 2882 void CSplitterWnd::Dump(CDumpContext &)const 2883 void CStatusBar::Dump(CDumpContext &)const 2884 void CStdioFile::Dump(CDumpContext &)const 2885 void CStringArray::Dump(CDumpContext &)const 2886 void CStringList::Dump(CDumpContext &)const 2887 void CSyncObject::Dump(CDumpContext &)const 2888 void CToolBar::Dump(CDumpContext &)const 2889 void CUIntArray::Dump(CDumpContext &)const 2890 void CView::Dump(CDumpContext &)const 2891 void CWinApp::Dump(CDumpContext &)const 2892 void CWindowDC::Dump(CDumpContext &)const 2893 void CWinThread::Dump(CDumpContext &)const 2894 void CWnd::Dump(CDumpContext &)const 2895 void CWordArray::Dump(CDumpContext &)const 2896 void CMemoryState::DumpAllObjectsSince()const 2897 CDumpContext & CDumpContext::DumpAsHex(__int64) 2898 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2899 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2900 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2901 CDumpContext & CDumpContext::DumpAsHex(int) 2902 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2903 CDumpContext & CDumpContext::DumpAsHex(long) 2904 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2905 void CRecordset::DumpFields(CDumpContext &)const 2906 void CMemoryState::DumpStatistics()const 2907 long COleControl::XDataObject::DUnadvise(unsigned long) 2908 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2909 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2910 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2911 CFile * CFile::Duplicate()const 2912 CFile * CInternetFile::Duplicate()const 2913 CFile * CMemFile::Duplicate()const 2914 CFile * COleStreamFile::Duplicate()const 2915 CFile * CSocketFile::Duplicate()const 2916 CFile * CStdioFile::Duplicate()const 2917 unsigned long const CEditView::dwStyleDefault 2918 void CRecordset::Edit() 2919 int CHeaderCtrl::EditFilter(int,int) 2920 CEdit * CListCtrl::EditLabel(int) 2921 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2922 long COlePropertyPage::XPropertyPage::EditProperty(long) 2923 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2924 unsigned char & CByteArray::ElementAt(int) 2925 unsigned long & CDWordArray::ElementAt(int) 2926 CObject * & CObArray::ElementAt(int) 2927 void * & CPtrArray::ElementAt(int) 2928 ATL::CStringT > > & CStringArray::ElementAt(int) 2929 unsigned int & CUIntArray::ElementAt(int) 2930 unsigned short & CWordArray::ElementAt(int) 2931 int CDC::Ellipse(int,int,int,int) 2932 int CDC::Ellipse(tagRECT const *) 2933 void ATL::CSimpleStringT::Empty() 2934 void ATL::CSimpleStringT::Empty() 2935 void CDBException::Empty() 2936 void COleDataSource::Empty() 2937 void CEdit::EmptyUndoBuffer() 2938 void CRichEditCtrl::EmptyUndoBuffer() 2939 void CCheckListBox::Enable(int,int) 2940 void CCmdUI::Enable(int) 2941 void COleCmdUI::Enable(int) 2942 void CStatusCmdUI::Enable(int) 2943 void CTestCmdUI::Enable(int) 2944 void CToolCmdUI::Enable(int) 2945 int CWinApp::Enable3dControls() 2946 void CWnd::EnableActiveAccessibility() 2947 void CCmdTarget::EnableAggregation() 2948 void CCmdTarget::EnableAutomation() 2949 void CRecordset::EnableBookmarks() 2950 void COleMessageFilter::EnableBusyDialog(int) 2951 int CToolBarCtrl::EnableButton(int,int) 2952 void COleDocument::EnableCompoundFile(int) 2953 void CCmdTarget::EnableConnections() 2954 void CControlBar::EnableDocking(unsigned long) 2955 void CFrameWnd::EnableDocking(unsigned long) 2956 void CReBar::EnableDocking(unsigned long) 2957 void CStatusBar::EnableDocking(unsigned long) 2958 void COleControlSite::EnableDSC() 2959 void CWinApp::EnableHtmlHelp() 2960 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2961 long CBrowserControlSite::EnableModeless(int) 2962 long CDHtmlDialog::EnableModeless(int) 2963 void CWinApp::EnableModeless(int) 2964 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2965 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2966 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2967 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2968 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2969 void COleMessageFilter::EnableNotRespondingDialog(int) 2970 int CScrollBar::EnableScrollBar(unsigned int) 2971 int CWnd::EnableScrollBar(int,unsigned int) 2972 void CWnd::EnableScrollBarCtrl(int,int) 2973 void CWinApp::EnableShellOpen() 2974 void COleControl::EnableSimpleFrame() 2975 void CPropertySheet::EnableStackedTabs(int) 2976 int CInternetSession::EnableStatusCallback(int) 2977 int CWnd::EnableToolTips(int) 2978 int CWnd::EnableTrackingToolTips(int) 2979 void CCmdTarget::EnableTypeLib() 2980 int COleControlSite::EnableWindow(int) 2981 int CWnd::EnableWindow(int) 2982 void COleMessageFilter::EndBusyState() 2983 void CAsyncMonikerFile::EndCallbacks() 2984 long COleLinkingDoc::EndDeferErrors(long) 2985 void CDialog::EndDialog(int) 2986 void CPropertyPage::EndDialog(int) 2987 void CPropertySheet::EndDialog(int) 2988 int CDC::EndDoc() 2989 void CDockContext::EndDrag() 2990 void CImageList::EndDrag() 2991 void CReBarCtrl::EndDrag() 2992 void CWnd::EndModalLoop(int) 2993 void CFrameWnd::EndModalState() 2994 void CWnd::EndModalState() 2995 int CDC::EndPage() 2996 void CWnd::EndPaint(tagPAINT*) 2997 int CDC::EndPath() 2998 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2999 void CDockContext::EndResize() 3000 void CCmdTarget::EndWaitCursor() 3001 void COleDataObject::EnsureClipboardObject() 3002 long CWnd::EnsureStdObj() 3003 int CListCtrl::EnsureVisible(int,int) 3004 int CTreeCtrl::EnsureVisible(_TREEITEM *) 3005 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3006 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3007 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3008 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3009 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 3010 int COlePropertyPage::EnumChildProc(HWND__ *,long) 3011 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 3012 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 3013 int COlePropertyPage::EnumControls(HWND__ *,long) 3014 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3015 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3016 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3017 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3018 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3019 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3020 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3021 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3022 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 3023 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3024 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3025 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 3026 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3027 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3028 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3029 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3030 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 3031 int CRgn::EqualRgn(CRgn *)const 3032 void CControlBar::EraseNonClient() 3033 int CFileException::ErrnoToException(int) 3034 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 3035 int CDC::Escape(int,int,char const *,int,char *) 3036 int CDC::Escape(int,int,char const *,void *) 3037 int CMetaFileDC::Escape(int,int,char const *,void *) 3038 int CPreviewDC::Escape(int,int,char const *,void *) 3039 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3040 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3041 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3042 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3043 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3044 int COleControl::ExchangeExtent(CPropExchange *) 3045 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3046 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3047 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3048 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3049 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3050 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3051 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3052 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3053 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3054 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3055 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3056 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3057 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3058 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3059 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3060 void COleControl::ExchangeStockProps(CPropExchange *) 3061 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3062 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 3063 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3064 int CDC::ExcludeClipRect(int,int,int,int) 3065 int CDC::ExcludeClipRect(tagRECT const *) 3066 int CDC::ExcludeUpdateRgn(CWnd *) 3067 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3068 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3069 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 3070 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 3071 int CHtmlEditView::ExecHandler(unsigned int) 3072 int CWnd::ExecuteDlgInit(void *) 3073 int CWnd::ExecuteDlgInit(wchar_t const *) 3074 void CRecordset::ExecuteSetPosUpdate() 3075 void CDatabase::ExecuteSQL(wchar_t const *) 3076 void CRecordset::ExecuteUpdateSQL() 3077 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 3078 void CFrameWnd::ExitHelpMode() 3079 int COleControlModule::ExitInstance() 3080 int CWinApp::ExitInstance() 3081 int CWinThread::ExitInstance() 3082 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 3083 unsigned long CCmdTarget::ExternalAddRef() 3084 void CCmdTarget::ExternalDisconnect() 3085 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 3086 unsigned long CCmdTarget::ExternalRelease() 3087 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 3088 HICON__ * CImageList::ExtractIconW(int) 3089 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3090 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3091 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3092 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3093 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3094 void CDataExchange::Fail() 3095 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3096 short CRecordset::FetchData(unsigned short,long,unsigned long *) 3097 void CArchive::FillBuffer(unsigned int) 3098 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 3099 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 3100 void CScrollView::FillOutsideRect(CDC *,CBrush *) 3101 int CDC::FillPath() 3102 void CDC::FillRect(tagRECT const *,CBrush *) 3103 int CDC::FillRgn(CRgn *,CBrush *) 3104 void CDC::FillSolidRect(int,int,int,int,unsigned long) 3105 void CDC::FillSolidRect(tagRECT const *,unsigned long) 3106 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 3107 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 3108 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 3109 void CWnd::FilterToolTipMessage(tagMSG *) 3110 int ATL::CStringT > >::Find(wchar_t,int)const 3111 int ATL::CStringT > >::Find(wchar_t const *,int)const 3112 int ATL::CStringT > >::Find(char,int)const 3113 int ATL::CStringT > >::Find(char const *,int)const 3114 __POSITION * CObList::Find(CObject *,__POSITION *)const 3115 __POSITION * CPtrList::Find(void *,__POSITION *)const 3116 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 3117 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 3118 int CDockBar::FindBar(CControlBar *,int) 3119 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 3120 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 3121 int CFileFind::FindFile(wchar_t const *,unsigned long) 3122 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 3123 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 3124 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 3125 __POSITION * CObList::FindIndex(int)const 3126 __POSITION * CPtrList::FindIndex(int)const 3127 __POSITION * CStringList::FindIndex(int)const 3128 int CListCtrl::FindItem(tagLVFINDINFOW *,int)const 3129 COleControlSite * COleControlContainer::FindItem(unsigned int)const 3130 int CFindReplaceDialog::FindNext()const 3131 int CFileFind::FindNextFileW() 3132 int CFtpFileFind::FindNextFileW() 3133 int CGopherFileFind::FindNextFileW() 3134 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 3135 int ATL::CStringT > >::FindOneOf(char const *)const 3136 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 3137 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 3138 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 3139 int CComboBox::FindString(int,wchar_t const *)const 3140 int CComboBoxEx::FindString(int,wchar_t const *)const 3141 int CListBox::FindString(int,wchar_t const *)const 3142 int CComboBox::FindStringExact(int,wchar_t const *)const 3143 int CListBox::FindStringExact(int,wchar_t const *)const 3144 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3145 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 3146 int CEditView::FindTextW(wchar_t const *,int,int) 3147 long CRichEditCtrl::FindTextW(unsigned long,_findtextexw *)const 3148 int CRichEditView::FindTextW(_AFX_RICHEDIT_STATE *) 3149 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 3150 CWnd * CWnd::FindWindowExW(HWND__ *,HWND__ *,wchar_t const *,wchar_t const *) 3151 CWnd * CWnd::FindWindowW(wchar_t const *,wchar_t const *) 3152 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3153 int COleClientItem::FinishCreate(long) 3154 void COleControl::FireClick() 3155 void COleControl::FireDblClick() 3156 void COleControl::FireError(long,wchar_t const *,unsigned int) 3157 void COleControl::FireEvent(long,unsigned char *,...) 3158 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3159 void COleControl::FireEventV(long,unsigned char *,char *) 3160 void COleControl::FireKeyDown(unsigned short *,short) 3161 void COleControl::FireKeyPress(unsigned short *) 3162 void COleControl::FireKeyUp(unsigned short *,short) 3163 void COleControl::FireMouseDown(short,short,long,long) 3164 void COleControl::FireMouseMove(short,short,long,long) 3165 void COleControl::FireMouseUp(short,short,long,long) 3166 void COleControl::FireReadyStateChange() 3167 void CRecordset::Fixups() 3168 int CWnd::FlashWindow(int) 3169 int CDC::FlattenPath() 3170 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3171 int CDC::FloodFill(int,int,unsigned long) 3172 void CArchive::Flush() 3173 void CDumpContext::Flush() 3174 void CFile::Flush() 3175 void CInternetFile::Flush() 3176 void CMemFile::Flush() 3177 void CMonikerFile::Flush() 3178 void COleStreamFile::Flush() 3179 void CSocketFile::Flush() 3180 void CStdioFile::Flush() 3181 void COleDataSource::FlushClipboard() 3182 int CRecordset::FlushResultSet() 3183 int CEdit::FmtLines(int) 3184 void ATL::CSimpleStringT::Fork(int) 3185 void ATL::CSimpleStringT::Fork(int) 3186 void ATL::CStringT > >::Format(unsigned int,...) 3187 void ATL::CStringT > >::Format(wchar_t const *,...) 3188 void ATL::CStringT > >::Format(unsigned int,...) 3189 void ATL::CStringT > >::Format(char const *,...) 3190 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3191 void ATL::CStringT > >::FormatMessageV(wchar_t const *,char * *) 3192 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 3193 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 3194 void ATL::CStringT > >::FormatMessageW(wchar_t const *,...) 3195 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 3196 void ATL::CStringT > >::FormatMessageW(char const *,...) 3197 long CRichEditCtrl::FormatRange(_formatrange *,int) 3198 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 3199 void ATL::CStringT > >::FormatV(char const *,char *) 3200 void COleControl::ForwardActivationMsg(tagMSG *) 3201 void CDC::FrameRect(tagRECT const *,CBrush *) 3202 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3203 void CAfxStringMgr::Free(ATL::CStringData *) 3204 void CDatabase::Free() 3205 void CFixedAlloc::Free(void *) 3206 void CFixedAllocNoSync::Free(void *) 3207 void CMemFile::Free(unsigned char *) 3208 void CSharedFile::Free(unsigned char *) 3209 void CFixedAlloc::FreeAll() 3210 void CFixedAllocNoSync::FreeAll() 3211 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3212 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3213 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3214 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3215 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3216 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3217 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3218 void CRecordset::FreeDataCache() 3219 void CPlex::FreeDataChain() 3220 void ATL::CSimpleStringT::FreeExtra() 3221 void ATL::CSimpleStringT::FreeExtra() 3222 void CByteArray::FreeExtra() 3223 void CDWordArray::FreeExtra() 3224 void CObArray::FreeExtra() 3225 void CPtrArray::FreeExtra() 3226 void CStringArray::FreeExtra() 3227 void CUIntArray::FreeExtra() 3228 void CWordArray::FreeExtra() 3229 void CObList::FreeNode(CObList::CNode *) 3230 void CPtrList::FreeNode(CPtrList::CNode *) 3231 void CStringList::FreeNode(CStringList::CNode *) 3232 void CRecordset::FreeRowset() 3233 void CThreadSlotData::FreeSlot(int) 3234 void CProperty::FreeValue() 3235 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3236 void COleControlContainer::FreezeAllEvents(int) 3237 void COleControlSite::FreezeEvents(int) 3238 long COleControl::XOleControl::FreezeEvents(int) 3239 int COleClientItem::FreezeLink() 3240 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3241 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3242 CBrush * CBrush::FromHandle(HBRUSH__ *) 3243 CDC * CDC::FromHandle(HDC__ *) 3244 CFont * CFont::FromHandle(HFONT__ *) 3245 CGdiObject * CGdiObject::FromHandle(void *) 3246 CObject * CHandleMap::FromHandle(void *) 3247 CImageList * CImageList::FromHandle(_IMAGELIST *) 3248 CMenu * CMenu::FromHandle(HMENU__ *) 3249 CPalette * CPalette::FromHandle(HPALETTE__ *) 3250 CPen * CPen::FromHandle(HPEN__ *) 3251 CRgn * CRgn::FromHandle(HRGN__ *) 3252 CSocket * CSocket::FromHandle(unsigned int) 3253 CWnd * CWnd::FromHandle(HWND__ *) 3254 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3255 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3256 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3257 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3258 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3259 CRuntime* CRuntimeClass::FromName(char const *) 3260 void * CProperty::Get(unsigned long *) 3261 void * CProperty::Get() 3262 void * CPropertySection::Get(unsigned long) 3263 void * CPropertySection::Get(unsigned long,unsigned long *) 3264 void * CPropertySet::Get(_GUID,unsigned long) 3265 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3266 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3267 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3268 long CWnd::get_accChildCount(long *) 3269 long CWnd::XAccessible::get_accChildCount(long *) 3270 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3271 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3272 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3273 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3274 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3275 long CWnd::get_accFocus(tagVARIANT *) 3276 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3277 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3278 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3279 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3280 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3281 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3282 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3283 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3284 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3285 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3286 long CWnd::get_accParent(IDispatch * *) 3287 long CWnd::XAccessible::get_accParent(IDispatch * *) 3288 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3289 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3290 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3291 long CWnd::get_accSelection(tagVARIANT *) 3292 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3293 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3294 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3295 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3296 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3297 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3298 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3299 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3300 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3301 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3302 long CWnd::GetAccessibleChildCount() 3303 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3304 unsigned long COleControl::GetActivationPolicy() 3305 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3306 CDocument * CFrameWnd::GetActiveDocument() 3307 CFrameWnd * CFrameWnd::GetActiveFrame() 3308 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 3309 int CPropertySheet::GetActiveIndex()const 3310 CPropertyPage * CPropertySheet::GetActivePage()const 3311 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3312 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3313 CView * CFrameWnd::GetActiveView()const 3314 CView * COleClientItem::GetActiveView()const 3315 IOleDocumentView * COleDocObjectItem::GetActiveView()const 3316 CRichEditView * CRichEditCntrItem::GetActiveView() 3317 CWnd * CWnd::GetActiveWindow() 3318 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 3319 int CIPAddressCtrl::GetAddress(unsigned long &) 3320 int CHtmlView::GetAddressBar()const 3321 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3322 int ATL::CSimpleStringT::GetAllocLength()const 3323 int ATL::CSimpleStringT::GetAllocLength()const 3324 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 3325 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3326 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3327 int CToolBarCtrl::GetAnchorHighlight()const 3328 int CListBox::GetAnchorIndex()const 3329 short COleControl::GetAppearance() 3330 IDispatch * CHtmlView::GetApplication()const 3331 HKEY__ * CWinApp::GetAppRegistryKey() 3332 int CDC::GetArcDirection()const 3333 CSize CDC::GetAspectRatioFilter()const 3334 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3335 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3336 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3337 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3338 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3339 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3340 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3341 wchar_t ATL::CSimpleStringT::GetAt(int)const 3342 char ATL::CSimpleStringT::GetAt(int)const 3343 unsigned char CByteArray::GetAt(int)const 3344 unsigned long CDWordArray::GetAt(int)const 3345 CObject * CObArray::GetAt(int)const 3346 CObject * & CObList::GetAt(__POSITION *) 3347 CObject const * & CObList::GetAt(__POSITION *)const 3348 void * CPtrArray::GetAt(int)const 3349 void * & CPtrList::GetAt(__POSITION *) 3350 void const * & CPtrList::GetAt(__POSITION *)const 3351 ATL::CStringT > > const & CStringArray::GetAt(int)const 3352 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3353 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3354 unsigned int CUIntArray::GetAt(int)const 3355 unsigned short CWordArray::GetAt(int)const 3356 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3357 unsigned long COleControl::GetBackColor() 3358 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3359 unsigned int CReBarCtrl::GetBandCount()const 3360 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOW *)const 3361 unsigned int CReBarCtrl::GetBarHeight()const 3362 void CControlBar::GetBarInfo(CControlBarInfo *) 3363 void CDockBar::GetBarInfo(CControlBarInfo *) 3364 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3365 unsigned long CControlBar::GetBarStyle() 3366 unsigned int CSpinButtonCtrl::GetBase()const 3367 unsigned long CAsyncMonikerFile::GetBindInfo()const 3368 IBinding * CAsyncMonikerFile::GetBinding()const 3369 int CBitmap::GetBitmap(tagBITMAP *) 3370 HBITMAP__ * CButton::GetBitmap()const 3371 HBITMAP__ * CStatic::GetBitmap()const 3372 int CToolBarCtrl::GetBitmap(int)const 3373 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3374 CSize CBitmap::GetBitmapDimension()const 3375 unsigned int CToolBarCtrl::GetBitmapFlags()const 3376 int CHeaderCtrl::GetBitmapMargin()const 3377 unsigned long CDC::GetBkColor()const 3378 unsigned long CImageList::GetBkColor()const 3379 unsigned long CListCtrl::GetBkColor()const 3380 unsigned long CReBarCtrl::GetBkColor()const 3381 unsigned long CTreeCtrl::GetBkColor()const 3382 int CListCtrl::GetBkImage(tagLVBKIMAGEW *)const 3383 int CDC::GetBkMode()const 3384 void * CBlobProperty::GetBlob() 3385 void CRecordset::GetBookmark(CDBVariant &) 3386 unsigned long CDatabase::GetBookmarkPersistence()const 3387 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3388 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3389 CRect CControlBar::GetBorders()const 3390 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3391 int CStatusBarCtrl::GetBorders(int *)const 3392 short COleControl::GetBorderStyle() 3393 long CDataSourceControl::GetBoundClientRow() 3394 int CRecordset::GetBoundFieldIndex(void *) 3395 int CRecordset::GetBoundParamIndex(void *) 3396 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3397 CPoint CDC::GetBrushOrg()const 3398 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOW *)const 3399 CWnd * CSliderCtrl::GetBuddy(int)const 3400 CWnd * CSpinButtonCtrl::GetBuddy()const 3401 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 3402 wchar_t * ATL::CSimpleStringT::GetBuffer() 3403 char * ATL::CSimpleStringT::GetBuffer(int) 3404 char * ATL::CSimpleStringT::GetBuffer() 3405 unsigned int CEditView::GetBufferLength()const 3406 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3407 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3408 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3409 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 3410 char * ATL::CSimpleStringT::GetBufferSetLength(int) 3411 int CHtmlView::GetBusy()const 3412 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3413 int CToolBarCtrl::GetButtonCount()const 3414 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3415 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOW *)const 3416 unsigned long CToolBarCtrl::GetButtonSize()const 3417 unsigned int CButton::GetButtonStyle()const 3418 unsigned int CToolBar::GetButtonStyle(int)const 3419 ATL::CStringT > > CToolBar::GetButtonText(int)const 3420 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3421 void COleSafeArray::GetByteArray(CByteArray &) 3422 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3423 unsigned short CPropertySet::GetByteOrder() 3424 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3425 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3426 unsigned int CListCtrl::GetCallbackMask()const 3427 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3428 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3429 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3430 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3431 CWnd * COleControl::GetCapture() 3432 CWnd * CWnd::GetCapture() 3433 long COleControlSite::XOleIPSite::GetCapture() 3434 int CListBox::GetCaretIndex()const 3435 CPoint CWnd::GetCaretPos() 3436 void CSliderCtrl::GetChannelRect(tagRECT *)const 3437 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABC *)const 3438 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABCFLOAT *)const 3439 unsigned long CDC::GetCharacterPlacementW(ATL::CStringT > > &,int,tagGCP_RESULTSW *,unsigned long)const 3440 unsigned long CDC::GetCharacterPlacementW(wchar_t const *,int,int,tagGCP_RESULTSW *,unsigned long)const 3441 void CFontDialog::GetCharFormat(_charformatw &)const 3442 CHARFORMAT2W & CRichEditView::GetCharFormatSelection() 3443 CPoint CRichEditCtrl::GetCharPos(long)const 3444 int CDC::GetCharWidthW(unsigned int,unsigned int,int *)const 3445 int CDC::GetCharWidthW(unsigned int,unsigned int,float *)const 3446 int CButton::GetCheck()const 3447 int CCheckListBox::GetCheck(int) 3448 int CListCtrl::GetCheck(int)const 3449 int CTreeCtrl::GetCheck(_TREEITEM *)const 3450 int CWnd::GetCheckedRadioButton(int,int) 3451 unsigned int CCheckListBox::GetCheckStyle() 3452 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3453 long CBlobProperty::GetClassID(_GUID *) 3454 void COleClientItem::GetClassID(_GUID *)const 3455 _GUID const & COleConvertDialog::GetClassID()const 3456 _GUID const & COleInsertDialog::GetClassID()const 3457 _GUID const & COleObjectFactory::GetClassID()const 3458 _GUID CPropertySet::GetClassID() 3459 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3460 long COleControl::XPersistMemory::GetClassID(_GUID *) 3461 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3462 long COleControl::XPersistStorage::GetClassID(_GUID *) 3463 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3464 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3465 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 3466 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3467 void COleControl::GetClientOffset(long *,long *)const 3468 void COleControl::GetClientRect(tagRECT *)const 3469 void CWnd::GetClientRect(tagRECT *)const 3470 IOleClientSite * COleClientItem::GetClientSite() 3471 IOleClientSite * COleControl::GetClientSite() 3472 IOleClientSite * COleServerDoc::GetClientSite()const 3473 IOleClientSite * CRichEditCntrItem::GetClientSite() 3474 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3475 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3476 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3477 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3478 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3479 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3480 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3481 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3482 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3483 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3484 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3485 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3486 COleDataSource * COleDataSource::GetClipboardOwner() 3487 CWnd * CWnd::GetClipboardOwner() 3488 CWnd * CWnd::GetClipboardViewer() 3489 int CDC::GetClipBox(tagRECT *)const 3490 int CMetaFileDC::GetClipBox(tagRECT *)const 3491 unsigned long CColorDialog::GetColor()const 3492 unsigned long CFontDialog::GetColor()const 3493 unsigned long CMonthCalCtrl::GetColor(int)const 3494 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3495 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 3496 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3497 int CListCtrl::GetColumn(int,tagLVCOLUMNW *)const 3498 int CSplitterWnd::GetColumnCount()const 3499 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3500 int CListCtrl::GetColumnOrderArray(int *,int) 3501 int CListCtrl::GetColumnWidth(int)const 3502 CComboBox * CComboBoxEx::GetComboBoxCtrl() 3503 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 3504 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 3505 ATL::CStringT > > const & CDatabase::GetConnect()const 3506 void CDatabase::GetConnectInfo() 3507 int CConnectionPoint::GetConnectionCount() 3508 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3509 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3510 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3511 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 3512 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 3513 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3514 CPtrArray const * CConnectionPoint::GetConnections() 3515 IConnectionPointContainer * CConnectionPoint::GetContainer() 3516 IDispatch * CHtmlView::GetContainer()const 3517 IOleItemContainer * COleDocument::GetContainer() 3518 IOleItemContainer * COleLinkingDoc::GetContainer() 3519 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3520 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3521 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3522 unsigned long CInternetConnection::GetContext()const 3523 unsigned long CInternetFile::GetContext()const 3524 unsigned long CInternetSession::GetContext()const 3525 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3526 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3527 COleControl * CDataPathProperty::GetControl() 3528 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3529 COleControlContainer * CWnd::GetControlContainer() 3530 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 3531 unsigned long COleControl::GetControlFlags() 3532 void COleControlSite::GetControlInfo() 3533 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3534 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3535 IUnknown * CCmdTarget::GetControllingUnknown() 3536 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3537 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 3538 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 3539 void COleControl::GetControlSize(int *,int *) 3540 int COlePropertyPage::GetControlStatus(unsigned int) 3541 IUnknown * CWnd::GetControlUnknown() 3542 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3543 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 3544 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 3545 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 3546 int CPrintDialog::GetCopies()const 3547 int CPrintDialogEx::GetCopies()const 3548 int CByteArray::GetCount()const 3549 int CComboBox::GetCount()const 3550 int CControlBar::GetCount()const 3551 int CDWordArray::GetCount()const 3552 int CListBox::GetCount()const 3553 int CMapPtrToPtr::GetCount()const 3554 int CMapPtrToWord::GetCount()const 3555 int CMapStringToOb::GetCount()const 3556 int CMapStringToPtr::GetCount()const 3557 int CMapStringToString::GetCount()const 3558 int CMapWordToOb::GetCount()const 3559 int CMapWordToPtr::GetCount()const 3560 int CObArray::GetCount()const 3561 int CObList::GetCount()const 3562 unsigned long CPropertySection::GetCount() 3563 unsigned long CPropertySet::GetCount() 3564 int CPtrArray::GetCount()const 3565 int CPtrList::GetCount()const 3566 int CStringArray::GetCount()const 3567 int CStringList::GetCount()const 3568 unsigned int CTreeCtrl::GetCount()const 3569 int CUIntArray::GetCount()const 3570 int CWordArray::GetCount()const 3571 int CListCtrl::GetCountPerPage()const 3572 int CFileFind::GetCreationTime(ATL::CTime &)const 3573 int CFileFind::GetCreationTime(_FILETIME *)const 3574 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3575 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3576 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3577 int CTabCtrl::GetCurFocus()const 3578 CBitmap * CDC::GetCurrentBitmap()const 3579 CBrush * CDC::GetCurrentBrush()const 3580 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3581 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 3582 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 3583 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 3584 CFont * CDC::GetCurrentFont()const 3585 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 3586 tagMSG const * CWnd::GetCurrentMessage() 3587 CPalette * CDC::GetCurrentPalette()const 3588 CPen * CDC::GetCurrentPen()const 3589 CPoint CDC::GetCurrentPosition()const 3590 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3591 int CComboBox::GetCurSel()const 3592 int CListBox::GetCurSel()const 3593 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3594 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3595 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3596 int CTabCtrl::GetCurSel()const 3597 HICON__ * CButton::GetCursor() 3598 IUnknown * CDataBoundProperty::GetCursor() 3599 IUnknown * CDataSourceControl::GetCursor() 3600 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3601 HICON__ * CStatic::GetCursor() 3602 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3603 int CDatabase::GetCursorCommitBehavior()const 3604 int CDatabase::GetCursorRollbackBehavior()const 3605 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3606 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3607 unsigned char * CByteArray::GetData() 3608 unsigned char const * CByteArray::GetData()const 3609 unsigned long * CDWordArray::GetData() 3610 unsigned long const * CDWordArray::GetData()const 3611 CObject * * CObArray::GetData() 3612 CObject const * * CObArray::GetData()const 3613 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3614 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3615 void * * CPtrArray::GetData() 3616 void const * * CPtrArray::GetData()const 3617 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3618 ATL::CStringT > > * CStringArray::GetData() 3619 ATL::CStringT > > const * CStringArray::GetData()const 3620 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3621 unsigned int * CUIntArray::GetData() 3622 unsigned int const * CUIntArray::GetData()const 3623 unsigned short * CWordArray::GetData() 3624 unsigned short const * CWordArray::GetData()const 3625 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3626 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3627 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3628 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3629 ATL::CStringT > > CDatabase::GetDatabaseName()const 3630 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3631 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3632 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3633 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3634 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3635 CNoTrackObject * CThreadLocalObject::GetDataNA() 3636 IDataObject * COleServerItem::GetDataObject() 3637 COleControl::CControlDataSource * COleControl::GetDataSource() 3638 COleDataSource * COleServerItem::GetDataSource() 3639 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3640 CDC * CWnd::GetDC() 3641 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3642 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3643 HACCEL__ * CDocument::GetDefaultAccelerator() 3644 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3645 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3646 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 3647 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 3648 ATL::CStringT > > CRecordset::GetDefaultConnect() 3649 short CRecordset::GetDefaultFieldType(short) 3650 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3651 HMENU__ * CDocument::GetDefaultMenu() 3652 HMENU__ * COleServerDoc::GetDefaultMenu() 3653 int CPrintDialog::GetDefaults() 3654 int CPrintDialogEx::GetDefaults() 3655 ATL::CStringT > > CRecordset::GetDefaultSQL() 3656 unsigned long COccManager::GetDefBtnCode(CWnd *) 3657 unsigned long COleControlSite::GetDefBtnCode() 3658 unsigned long CDialog::GetDefID()const 3659 int CToolTipCtrl::GetDelayTime(unsigned long)const 3660 int CDumpContext::GetDepth()const 3661 CWnd * CWnd::GetDescendantWindow(int,int)const 3662 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3663 CWnd * CWnd::GetDesktopWindow() 3664 int CDC::GetDeviceCaps(int)const 3665 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 3666 ATL::CStringT > > CPrintDialog::GetDeviceName()const 3667 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 3668 CPoint CScrollView::GetDeviceScrollPosition()const 3669 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3670 _devicemodeW * CPageSetupDialog::GetDevMode()const 3671 _devicemodeW * CPrintDialog::GetDevMode()const 3672 _devicemodeW * CPrintDialogEx::GetDevMode()const 3673 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3674 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3675 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3676 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3677 DHtmlEventMapEntry const * GetDHtmlEventMap() 3678 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 3679 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 3680 unsigned long COleSafeArray::GetDim() 3681 CImageList * CToolBarCtrl::GetDisabledImageList()const 3682 int CCmdTarget::GetDispatchIID(_GUID *) 3683 int COleControl::GetDispatchIID(_GUID *) 3684 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3685 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3686 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3687 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName() 3688 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 3689 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3690 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3691 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3692 int COleControlSite::GetDlgCtrlID()const 3693 int CWnd::GetDlgCtrlID()const 3694 CWnd * COleControlContainer::GetDlgItem(int)const 3695 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3696 CWnd * CWnd::GetDlgItem(int)const 3697 void CWnd::GetDlgItem(int,HWND__ * *)const 3698 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3699 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3700 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 3701 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 3702 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 3703 CFrameWnd * COleIPFrameWnd::GetDocFrame() 3704 CDockBar * CDockContext::GetDockBar(unsigned long) 3705 CControlBar * CDockBar::GetDockedControlBar(int)const 3706 int CDockBar::GetDockedCount()const 3707 int CDockBar::GetDockedVisibleCount()const 3708 CFrameWnd * CControlBar::GetDockingFrame()const 3709 void CFrameWnd::GetDockState(CDockState &)const 3710 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3711 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3712 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 3713 CDocTemplate * CDocument::GetDocTemplate()const 3714 CDocument * CDocItem::GetDocument()const 3715 COleDocument * COleClientItem::GetDocument()const 3716 COleServerDoc * COleServerItem::GetDocument()const 3717 CRichEditDoc * CRichEditCntrItem::GetDocument() 3718 CRichEditDoc * CRichEditView::GetDocument()const 3719 CDocument * CView::GetDocument()const 3720 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3721 int CDocManager::GetDocumentCount() 3722 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3723 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 3724 enum tagDVASPECT COleClientItem::GetDrawAspect()const 3725 enum tagDVASPECT COleConvertDialog::GetDrawAspect()const 3726 enum tagDVASPECT COleInsertDialog::GetDrawAspect()const 3727 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect()const 3728 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 3729 ATL::CStringT > > CPrintDialog::GetDriverName()const 3730 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 3731 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 3732 void CComboBox::GetDroppedControlRect(tagRECT *)const 3733 int CComboBox::GetDroppedState()const 3734 int CComboBox::GetDroppedWidth()const 3735 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 3736 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 3737 IDropTarget * CReBarCtrl::GetDropTarget()const 3738 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 3739 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 3740 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3741 IUnknown * CWnd::GetDSCCursor() 3742 CEdit * CListCtrl::GetEditControl()const 3743 CEdit * CTreeCtrl::GetEditControl()const 3744 CEdit * CComboBoxEx::GetEditCtrl() 3745 CEdit & CEditView::GetEditCtrl()const 3746 unsigned long CComboBox::GetEditSel()const 3747 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 3748 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 3749 void COleSafeArray::GetElement(long *,void *) 3750 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 3751 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 3752 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 3753 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 3754 unsigned long COleSafeArray::GetElemSize() 3755 COleServerItem * COleServerDoc::GetEmbeddedItem() 3756 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3757 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3758 int COleControl::GetEnabled() 3759 HENHMETAFILE__ * CStatic::GetEnhMetaFileW()const 3760 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3761 int CPalette::GetEntryCount() 3762 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 3763 int ATL::CStringT > >::GetEnvironmentVariableW(wchar_t const *) 3764 int ATL::CStringT > >::GetEnvironmentVariableW(char const *) 3765 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3766 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3767 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3768 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3769 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3770 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3771 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3772 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3773 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 3774 int COleControlSite::GetEventIID(_GUID *) 3775 AFX_EVENTMAP const * COleControl::GetEventMap()const 3776 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 3777 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 3778 long CRichEditCtrl::GetEventMask()const 3779 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3780 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3781 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 3782 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 3783 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 3784 unsigned long COleControlSite::GetExStyle()const 3785 unsigned long CWnd::GetExStyle()const 3786 IDispatch * COleControl::GetExtendedControl() 3787 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3788 unsigned long CComboBoxEx::GetExtendedStyle()const 3789 unsigned long CListCtrl::GetExtendedStyle() 3790 unsigned long CTabCtrl::GetExtendedStyle() 3791 unsigned long CToolBarCtrl::GetExtendedStyle()const 3792 int CComboBox::GetExtendedUI()const 3793 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3794 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3795 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3796 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3797 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3798 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3799 long CBrowserControlSite::GetExternal(IDispatch * *) 3800 long CDHtmlDialog::GetExternal(IDispatch * *) 3801 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 3802 int CPen::GetExtLogPen(tagEXTLOGPEN *) 3803 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3804 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3805 ATL::CStringT > > CFontDialog::GetFaceName()const 3806 short CRecordset::GetFieldIndexByName(wchar_t const *) 3807 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3808 unsigned char CRecordset::GetFieldStatus(unsigned long) 3809 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3810 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3811 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3812 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 3813 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 3814 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 3815 CFile * CArchive::GetFile()const 3816 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 3817 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 3818 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3819 ATL::CStringT > > CFileDialog::GetFileExt()const 3820 ATL::CStringT > > CFile::GetFileName()const 3821 ATL::CStringT > > CFileDialog::GetFileName()const 3822 ATL::CStringT > > CFileFind::GetFileName()const 3823 ATL::CStringT > > CGopherFileFind::GetFileName()const 3824 ATL::CStringT > > COleChangeSourceDialog::GetFileName() 3825 ATL::CStringT > > CFile::GetFilePath()const 3826 ATL::CStringT > > CFileFind::GetFilePath()const 3827 ATL::CStringT > > CGopherFileFind::GetFilePath()const 3828 ATL::CStringT > > CFile::GetFileTitle()const 3829 ATL::CStringT > > CFileDialog::GetFileTitle()const 3830 ATL::CStringT > > CFileFind::GetFileTitle()const 3831 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 3832 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3833 ATL::CStringT > > CFileFind::GetFileURL()const 3834 ATL::CStringT > > CFtpFileFind::GetFileURL()const 3835 ATL::CStringT > > CGopherFileFind::GetFileURL()const 3836 ATL::CStringT > > CHttpFile::GetFileURL()const 3837 ATL::CStringT > > CFindReplaceDialog::GetFindString()const 3838 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3839 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3840 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3841 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3842 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3843 CFrameWnd * COleDocument::GetFirstFrame() 3844 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 3845 __POSITION * CDocument::GetFirstViewPosition()const 3846 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 3847 int CEdit::GetFirstVisibleLine()const 3848 int CRichEditCtrl::GetFirstVisibleLine()const 3849 CWnd * COleControl::GetFocus() 3850 CWnd * CWnd::GetFocus() 3851 long COleControlSite::XOleIPSite::GetFocus() 3852 ATL::CStringT > > CFileDialog::GetFolderPath()const 3853 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3854 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3855 IFontDisp * COleControl::GetFont() 3856 CFont * CWnd::GetFont()const 3857 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 3858 IFontDisp * CFontHolder::GetFontDispatch() 3859 HFONT__ * CFontHolder::GetFontHandle(long,long) 3860 HFONT__ * CFontHolder::GetFontHandle() 3861 unsigned long CDC::GetFontLanguageInfo()const 3862 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3863 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 3864 unsigned long COleControl::GetForeColor() 3865 CWnd * CWnd::GetForegroundWindow() 3866 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc()const 3867 _GUID CPropertySection::GetFormatID() 3868 unsigned short CPropertySet::GetFormatVersion() 3869 int CPrintDialog::GetFromPage()const 3870 unsigned int CPrintInfo::GetFromPage()const 3871 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix() 3872 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 3873 ATL::CStringT > > CHtmlView::GetFullName()const 3874 int CHtmlView::GetFullScreen()const 3875 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3876 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3877 unsigned long CDC::GetGlyphOutlineW(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 3878 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 3879 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3880 CBrush * CDC::GetHalftoneBrush() 3881 void * CEdit::GetHandle()const 3882 unsigned int CRectTracker::GetHandleMask()const 3883 void CRectTracker::GetHandleRect(int,CRect *)const 3884 int CRectTracker::GetHandleSize(tagRECT const *)const 3885 unsigned int CMapPtrToPtr::GetHashTableSize()const 3886 unsigned int CMapPtrToWord::GetHashTableSize()const 3887 unsigned int CMapStringToOb::GetHashTableSize()const 3888 unsigned int CMapStringToPtr::GetHashTableSize()const 3889 unsigned int CMapStringToString::GetHashTableSize()const 3890 unsigned int CMapWordToOb::GetHashTableSize()const 3891 unsigned int CMapWordToPtr::GetHashTableSize()const 3892 CObject * & CObList::GetHead() 3893 CObject const * & CObList::GetHead()const 3894 void * & CPtrList::GetHead() 3895 void const * & CPtrList::GetHead()const 3896 ATL::CStringT > > & CStringList::GetHead() 3897 ATL::CStringT > > const & CStringList::GetHead()const 3898 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 3899 __POSITION * CObList::GetHeadPosition()const 3900 __POSITION * CPtrList::GetHeadPosition()const 3901 __POSITION * CStringList::GetHeadPosition()const 3902 long CHtmlView::GetHeight()const 3903 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3904 enum AFX_HELP_TYPE CWinApp::GetHelpMode() 3905 void CSplitterWnd::GetHitRect(int,CRect &) 3906 unsigned int CComboBox::GetHorizontalExtent()const 3907 int CListBox::GetHorizontalExtent()const 3908 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3909 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3910 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3911 HICON__ * CListCtrl::GetHotCursor() 3912 CImageList * CToolBarCtrl::GetHotImageList()const 3913 int CListCtrl::GetHotItem() 3914 int CToolBarCtrl::GetHotItem()const 3915 unsigned long CHotKeyCtrl::GetHotKey()const 3916 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3917 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 3918 unsigned long CListCtrl::GetHoverTime()const 3919 IDispatch * CHtmlView::GetHtmlDocument()const 3920 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 3921 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 3922 unsigned int COleControl::GetHwnd() 3923 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3924 HICON__ * CButton::GetIcon()const 3925 HICON__ * CStatic::GetIcon()const 3926 HICON__ * CWnd::GetIcon(int)const 3927 HICON__ * COleClientItem::GetIconFromRegistry()const 3928 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3929 void * COleChangeIconDialog::GetIconicMetafile()const 3930 void * COleClientItem::GetIconicMetafile() 3931 void * COleConvertDialog::GetIconicMetafile()const 3932 void * COleInsertDialog::GetIconicMetafile()const 3933 void * COlePasteSpecialDialog::GetIconicMetafile()const 3934 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3935 unsigned long CProperty::GetID() 3936 int CPropertySection::GetID(wchar_t const *,unsigned long *) 3937 IDataObject * COleDataObject::GetIDataObject(int) 3938 IDispatch * CCmdTarget::GetIDispatch(int) 3939 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3940 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3941 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3942 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3943 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3944 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3945 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3946 _GUID const & COleControl::XEventConnPt::GetIID() 3947 int CImageList::GetImageCount()const 3948 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 3949 CImageList * CComboBoxEx::GetImageList()const 3950 CImageList * CHeaderCtrl::GetImageList()const 3951 CImageList * CListCtrl::GetImageList(int)const 3952 CImageList * CReBarCtrl::GetImageList()const 3953 CImageList * CTabCtrl::GetImageList()const 3954 CImageList * CToolBarCtrl::GetImageList()const 3955 CImageList * CTreeCtrl::GetImageList(unsigned int)const 3956 unsigned int CTreeCtrl::GetIndent()const 3957 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3958 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3959 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3960 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3961 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 3962 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 3963 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3964 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3965 CWnd * COleClientItem::GetInPlaceWindow() 3966 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 3967 unsigned long CToolBarCtrl::GetInsertMarkColor()const 3968 unsigned long CTreeCtrl::GetInsertMarkColor()const 3969 void CSplitterWnd::GetInsideRect(CRect &)const 3970 IUnknown * CCmdTarget::GetInterface(void const *) 3971 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3972 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3973 IUnknown * COleControl::GetInterfaceHook(void const *) 3974 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3975 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3976 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3977 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 3978 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3979 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3980 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3981 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3982 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 3983 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3984 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3985 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3986 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3987 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3988 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 3989 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3990 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3991 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 3992 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 3993 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 3994 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 3995 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 3996 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 3997 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 3998 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 3999 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 4000 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 4001 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 4002 int CHeaderCtrl::GetItem(int,_HD_ITEMW *)const 4003 int CListCtrl::GetItem(tagLVITEMW *)const 4004 int CTabCtrl::GetItem(int,tagTCITEMW *)const 4005 int CTreeCtrl::GetItem(tagTVITEMW *)const 4006 void COleServerDoc::GetItemClipRect(tagRECT *)const 4007 int CHeaderCtrl::GetItemCount()const 4008 int CListCtrl::GetItemCount()const 4009 int CTabCtrl::GetItemCount()const 4010 unsigned long CComboBox::GetItemData(int)const 4011 unsigned long CListBox::GetItemData(int)const 4012 unsigned long CListCtrl::GetItemData(int)const 4013 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 4014 void * CComboBox::GetItemDataPtr(int)const 4015 void * CListBox::GetItemDataPtr(int)const 4016 int CComboBox::GetItemHeight(int)const 4017 int CListBox::GetItemHeight(int)const 4018 short CTreeCtrl::GetItemHeight()const 4019 unsigned int CStatusBar::GetItemID(int)const 4020 unsigned int CToolBar::GetItemID(int)const 4021 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 4022 ATL::CStringT > > COleChangeSourceDialog::GetItemName() 4023 void COleClientItem::GetItemName(wchar_t *)const 4024 ATL::CStringT > > const & COleServerItem::GetItemName()const 4025 int CListCtrl::GetItemPosition(int,tagPOINT *)const 4026 void COleServerDoc::GetItemPosition(tagRECT *)const 4027 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 4028 int CListBox::GetItemRect(int,tagRECT *)const 4029 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 4030 void CStatusBar::GetItemRect(int,tagRECT *)const 4031 int CTabCtrl::GetItemRect(int,tagRECT *)const 4032 void CToolBar::GetItemRect(int,tagRECT *)const 4033 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 4034 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 4035 unsigned int CListCtrl::GetItemState(int,unsigned int)const 4036 unsigned int COleClientItem::GetItemState()const 4037 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 4038 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 4039 void COleClientItem::GetItemStorage() 4040 void COleClientItem::GetItemStorageCompound() 4041 void COleClientItem::GetItemStorageFlat() 4042 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 4043 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 4044 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 4045 int CDC::GetKerningPairsW(int,tagKERNINGPAIR *)const 4046 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 4047 int CFileFind::GetLastAccessTime(ATL::CTime &)const 4048 int CFileFind::GetLastAccessTime(_FILETIME *)const 4049 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 4050 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 4051 CWnd * CWnd::GetLastActivePopup()const 4052 int CAsyncSocket::GetLastError() 4053 unsigned int COleDialog::GetLastError()const 4054 long COleClientItem::GetLastStatus()const 4055 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 4056 int CFileFind::GetLastWriteTime(ATL::CTime &)const 4057 int CFileFind::GetLastWriteTime(_FILETIME *)const 4058 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 4059 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 4060 unsigned long CDC::GetLayout()const 4061 long CRecordset::GetLBFetchSize(long) 4062 void COleSafeArray::GetLBound(unsigned long,long *) 4063 long CRecordset::GetLBReallocSize(long) 4064 int CComboBox::GetLBText(int,wchar_t *)const 4065 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 4066 int CComboBox::GetLBTextLen(int)const 4067 long CHtmlView::GetLeft()const 4068 int ATL::CSimpleStringT::GetLength()const 4069 int ATL::CSimpleStringT::GetLength()const 4070 unsigned __int64 CFile::GetLength()const 4071 unsigned __int64 CFileFind::GetLength()const 4072 unsigned __int64 CGopherFileFind::GetLength()const 4073 unsigned __int64 CInternetFile::GetLength()const 4074 unsigned __int64 CMemFile::GetLength()const 4075 unsigned __int64 COleStreamFile::GetLength()const 4076 unsigned __int64 CSocketFile::GetLength()const 4077 unsigned __int64 CStdioFile::GetLength()const 4078 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 4079 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 4080 unsigned int CEdit::GetLimitText()const 4081 long CRichEditCtrl::GetLimitText()const 4082 int CEdit::GetLine(int,wchar_t *)const 4083 int CEdit::GetLine(int,wchar_t *,int)const 4084 int CRichEditCtrl::GetLine(int,wchar_t *)const 4085 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 4086 unsigned long CTreeCtrl::GetLineColor()const 4087 int CEdit::GetLineCount()const 4088 int CRichEditCtrl::GetLineCount()const 4089 int CSliderCtrl::GetLineSize()const 4090 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 4091 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 4092 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 4093 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 4094 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 4095 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 4096 CPtrList * CPropertySection::GetList() 4097 CPtrList * CPropertySet::GetList() 4098 CListCtrl & CListView::GetListCtrl()const 4099 unsigned long CComboBox::GetLocale()const 4100 unsigned long CListBox::GetLocale()const 4101 ATL::CStringT > > CHtmlView::GetLocationName()const 4102 ATL::CStringT > > CHtmlView::GetLocationURL()const 4103 CGopherLocator CGopherFileFind::GetLocator()const 4104 int CGopherLocator::GetLocatorType(unsigned long &)const 4105 int CBrush::GetLogBrush(tagLOGBRUSH *) 4106 int CFont::GetLogFont(tagLOGFONTW *) 4107 int CPen::GetLogPen(tagLOGPEN *) 4108 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 4109 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 4110 long CFieldExchange::GetLongBinarySize(int) 4111 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4112 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4113 CFrameWnd * COleIPFrameWnd::GetMainFrame() 4114 CWnd * CWinThread::GetMainWnd() 4115 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4116 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4117 int CDC::GetMapMode()const 4118 void CToolTipCtrl::GetMargin(tagRECT *)const 4119 unsigned long CEdit::GetMargins()const 4120 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 4121 CRect CRichEditView::GetMargins()const 4122 int CConnectionPoint::GetMaxConnections() 4123 unsigned int CPrintInfo::GetMaxPage()const 4124 int CMonthCalCtrl::GetMaxSelCount()const 4125 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 4126 int CToolBarCtrl::GetMaxTextRows()const 4127 int CToolTipCtrl::GetMaxTipWidth()const 4128 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 4129 CMenu * CWnd::GetMenu()const 4130 int CHtmlView::GetMenuBar()const 4131 unsigned long CMenu::GetMenuContextHelpId()const 4132 unsigned int CMenu::GetMenuItemCount()const 4133 unsigned int CMenu::GetMenuItemID(int)const 4134 int CMenu::GetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 4135 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 4136 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 4137 int CMenu::GetMenuStringW(unsigned int,wchar_t *,int,unsigned int)const 4138 CWnd * CFrameWnd::GetMessageBar() 4139 CWnd * CMDIChildWnd::GetMessageBar() 4140 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 4141 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 4142 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 4143 AFX_MSGMAP const * CControlBar::GetMessageMap()const 4144 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 4145 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 4146 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 4147 AFX_MSGMAP const * CDialog::GetMessageMap()const 4148 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 4149 AFX_MSGMAP const * CDockBar::GetMessageMap()const 4150 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 4151 AFX_MSGMAP const * CDocument::GetMessageMap()const 4152 AFX_MSGMAP const * CEditView::GetMessageMap()const 4153 AFX_MSGMAP const * CFormView::GetMessageMap()const 4154 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 4155 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 4156 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 4157 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 4158 AFX_MSGMAP const * CListView::GetMessageMap()const 4159 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 4160 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 4161 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 4162 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 4163 AFX_MSGMAP const * COleControl::GetMessageMap()const 4164 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 4165 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 4166 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 4167 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 4168 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 4169 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 4170 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 4171 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 4172 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 4173 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 4174 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 4175 AFX_MSGMAP const * CReBar::GetMessageMap()const 4176 AFX_MSGMAP const * CRecordView::GetMessageMap()const 4177 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 4178 AFX_MSGMAP const * CScrollView::GetMessageMap()const 4179 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 4180 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 4181 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 4182 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 4183 AFX_MSGMAP const * CToolBar::GetMessageMap()const 4184 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 4185 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 4186 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 4187 AFX_MSGMAP const * CTreeView::GetMessageMap()const 4188 AFX_MSGMAP const * CView::GetMessageMap()const 4189 AFX_MSGMAP const * CWinApp::GetMessageMap()const 4190 AFX_MSGMAP const * CWnd::GetMessageMap()const 4191 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4192 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4193 long CDataSourceControl::GetMetaData() 4194 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4195 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4196 unsigned int CPrintInfo::GetMinPage()const 4197 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4198 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4199 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4200 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4201 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4202 float CDC::GetMiterLimit()const 4203 int CEdit::GetModify()const 4204 int CRichEditCtrl::GetModify()const 4205 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4206 IMoniker * CMonikerFile::GetMoniker()const 4207 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4208 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4209 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4210 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4211 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4212 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4213 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4214 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4215 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4216 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4217 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4218 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl()const 4219 CFont * CDateTimeCtrl::GetMonthCalFont()const 4220 int CMonthCalCtrl::GetMonthDelta()const 4221 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4222 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4223 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4224 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4225 unsigned long CDC::GetNearestColor(unsigned long)const 4226 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4227 unsigned long COleClientItem::GetNewItemNumber() 4228 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4229 CDataBoundProperty * CDataBoundProperty::GetNext() 4230 CObject * & CObList::GetNext(__POSITION * &) 4231 CObject const * & CObList::GetNext(__POSITION * &)const 4232 void * & CPtrList::GetNext(__POSITION * &) 4233 void const * & CPtrList::GetNext(__POSITION * &)const 4234 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4235 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4236 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4237 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4238 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4239 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4240 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4241 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4242 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4243 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4244 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4245 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4246 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4247 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4248 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4249 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4250 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4251 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4252 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4253 int COleDataObject::GetNextFormat(tagFORMATETC *) 4254 int CListCtrl::GetNextItem(int,int)const 4255 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4256 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4257 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4258 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4259 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4260 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4261 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4262 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4263 CView * CDocument::GetNextView(__POSITION * &)const 4264 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4265 CWnd * CWnd::GetNextWindow(unsigned int)const 4266 ATL::CStringData * CAfxStringMgr::GetNilString() 4267 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4268 void CCmdTarget::GetNotSupported() 4269 void COleControl::GetNotSupported() 4270 unsigned int CListCtrl::GetNumberOfWorkAreas()const 4271 unsigned int CSliderCtrl::GetNumTics()const 4272 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4273 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4274 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4275 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 4276 unsigned int CArchive::GetObjectSchema() 4277 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4278 unsigned int CGdiObject::GetObjectType()const 4279 int CGdiObject::GetObjectW(int,void *)const 4280 ATL::CStringT > > CHttpFile::GetObjectW()const 4281 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4282 short CRecordset::GetODBCFieldCount()const 4283 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4284 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 4285 int CHtmlView::GetOffline()const 4286 tagOFNW & CFileDialog::GetOFN() 4287 tagOFNW const & CFileDialog::GetOFN()const 4288 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4289 IOleObject * COleServerItem::GetOleObject() 4290 unsigned long COleSafeArray::GetOneDimSize() 4291 CWnd * CWnd::GetOpenClipboardWindow() 4292 int CDocManager::GetOpenDocumentCount() 4293 int CWinApp::GetOpenDocumentCount() 4294 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4295 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4296 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4297 unsigned int CRichEditCtrl::GetOptions()const 4298 int CHeaderCtrl::GetOrderArray(int *,int) 4299 int CListCtrl::GetOrigin(tagPOINT *)const 4300 unsigned long CPropertySet::GetOSVersion() 4301 CWnd * COleControl::GetOuterWindow()const 4302 unsigned int CDC::GetOutlineTextMetricsW(unsigned int,_OUTLINETEXTMETRICW *)const 4303 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4304 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4305 CSize CDC::GetOutputTabbedTextExtent(wchar_t const *,int,int,int *)const 4306 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4307 CSize CDC::GetOutputTextExtent(wchar_t const *,int)const 4308 int CDC::GetOutputTextMetrics(tagTEXTMETRICW *)const 4309 CWnd * CWnd::GetOwner()const 4310 CPropertyPage * CPropertySheet::GetPage(int)const 4311 int COleDocObjectItem::GetPageCount(long *,long *) 4312 int CPropertySheet::GetPageCount()const 4313 int CPropertySheet::GetPageIndex(CPropertyPage *) 4314 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4315 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4316 CRect CRichEditView::GetPageRect()const 4317 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4318 IPropertyPageSite * COlePropertyPage::GetPageSite() 4319 int CSliderCtrl::GetPageSize()const 4320 CPalette * CReBarCtrl::GetPalette()const 4321 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4322 CWnd * CSplitterWnd::GetPane(int,int)const 4323 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4324 unsigned int CStatusBar::GetPaneStyle(int)const 4325 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4326 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4327 CSize CPageSetupDialog::GetPaperSize()const 4328 CSize CRichEditView::GetPaperSize()const 4329 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4330 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4331 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 4332 CWnd * CWnd::GetParent()const 4333 IDispatch * CHtmlView::GetParentBrowser()const 4334 CFrameWnd * CWnd::GetParentFrame()const 4335 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4336 CWnd * CWnd::GetParentOwner()const 4337 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4338 int CStatusBarCtrl::GetParts(int,int *)const 4339 wchar_t CEdit::GetPasswordChar()const 4340 int COlePasteSpecialDialog::GetPasteIndex()const 4341 ATL::CStringT > > CDataPathProperty::GetPath()const 4342 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4343 ATL::CStringT > > const & CDocument::GetPathName()const 4344 ATL::CStringT > > CFileDialog::GetPathName()const 4345 ATL::CStringT > > COleInsertDialog::GetPathName()const 4346 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4347 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4348 IPictureDisp * CPictureHolder::GetPictureDispatch() 4349 unsigned long CDC::GetPixel(int,int)const 4350 unsigned long CDC::GetPixel(tagPOINT)const 4351 int CDC::GetPolyFillMode()const 4352 ATL::CStringT > > CPageSetupDialog::GetPortName()const 4353 ATL::CStringT > > CPrintDialog::GetPortName()const 4354 ATL::CStringT > > CPrintDialogEx::GetPortName()const 4355 int CProgressCtrl::GetPos() 4356 int CSliderCtrl::GetPos()const 4357 int CSpinButtonCtrl::GetPos()const 4358 int CSpinButtonCtrl::GetPos32(int *)const 4359 unsigned __int64 CFile::GetPosition()const 4360 unsigned __int64 CMemFile::GetPosition()const 4361 unsigned __int64 COleStreamFile::GetPosition()const 4362 unsigned __int64 CSocketFile::GetPosition()const 4363 unsigned __int64 CStdioFile::GetPosition()const 4364 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4365 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4366 CObject * & CObList::GetPrev(__POSITION * &) 4367 CObject const * & CObList::GetPrev(__POSITION * &)const 4368 void * & CPtrList::GetPrev(__POSITION * &) 4369 void const * & CPtrList::GetPrev(__POSITION * &)const 4370 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4371 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4372 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4373 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4374 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4375 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4376 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4377 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4378 HDC__ * CPrintDialog::GetPrinterDC()const 4379 HDC__ * CPrintDialogEx::GetPrinterDC()const 4380 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 4381 CFont * CEditView::GetPrinterFont()const 4382 CRect CRichEditView::GetPrintRect()const 4383 int CRichEditView::GetPrintWidth()const 4384 long CAsyncMonikerFile::GetPriority()const 4385 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 4386 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 4387 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 4388 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 4389 COleVariant CHtmlView::GetProperty(wchar_t const *) 4390 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 4391 void COleControlSite::GetProperty(long,unsigned short,void *)const 4392 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4393 CProperty * CPropertySection::GetProperty(unsigned long) 4394 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4395 void CWnd::GetProperty(long,unsigned short,void *)const 4396 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 4397 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4398 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 4399 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4400 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 4401 int COlePropertyPage::GetPropText(wchar_t const *,short *) 4402 int COlePropertyPage::GetPropText(wchar_t const *,int *) 4403 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 4404 int COlePropertyPage::GetPropText(wchar_t const *,long *) 4405 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 4406 int COlePropertyPage::GetPropText(wchar_t const *,float *) 4407 int COlePropertyPage::GetPropText(wchar_t const *,double *) 4408 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 4409 _PROPSHEETPAGEW & CPropertyPage::GetPSP() 4410 _PROPSHEETPAGEW const & CPropertyPage::GetPSP()const 4411 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4412 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4413 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4414 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4415 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4416 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4417 void CProgressCtrl::GetRange(int &,int &) 4418 void CSliderCtrl::GetRange(int &,int &)const 4419 unsigned long CSpinButtonCtrl::GetRange()const 4420 void CSpinButtonCtrl::GetRange(int &,int &)const 4421 void CSpinButtonCtrl::GetRange32(int &,int &)const 4422 int CSliderCtrl::GetRangeMax()const 4423 int CSliderCtrl::GetRangeMin()const 4424 void * CProperty::GetRawValue() 4425 int CFileDialog::GetReadOnlyPref()const 4426 enum tagREADYSTATE CHtmlView::GetReadyState()const 4427 long COleControl::GetReadyState() 4428 CReBarCtrl & CReBar::GetReBarCtrl()const 4429 long CRecordset::GetRecordCount()const 4430 void CEdit::GetRect(tagRECT *)const 4431 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4432 void CRichEditCtrl::GetRect(tagRECT *)const 4433 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4434 int CToolBarCtrl::GetRect(int,tagRECT *)const 4435 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4436 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4437 int COleControl::GetRectInContainer(tagRECT *) 4438 enum _undonameid CRichEditCtrl::GetRedoName()const 4439 int CRgn::GetRegionData(_RGNDATA *,int)const 4440 int CHtmlView::GetRegisterAsBrowser()const 4441 int CHtmlView::GetRegisterAsDropTarget()const 4442 ATL::CStringT > > CFindReplaceDialog::GetReplaceString()const 4443 int CRgn::GetRgnBox(tagRECT *)const 4444 CRichEditCtrl & CRichEditView::GetRichEditCtrl()const 4445 ATL::CStringT > > CFileFind::GetRoot()const 4446 ATL::CStringT > > CGopherFileFind::GetRoot()const 4447 _TREEITEM * CTreeCtrl::GetRootItem()const 4448 int CDC::GetROP2()const 4449 CFrameWnd * CCmdTarget::GetRoutingFrame() 4450 CFrameWnd * CCmdTarget::GetRoutingFrame_() 4451 CView * CCmdTarget::GetRoutingView() 4452 CView * CCmdTarget::GetRoutingView_() 4453 unsigned int CReBarCtrl::GetRowCount()const 4454 int CSplitterWnd::GetRowCount()const 4455 int CTabCtrl::GetRowCount()const 4456 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4457 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4458 int CToolBarCtrl::GetRows()const 4459 unsigned long CRecordset::GetRowsetSize()const 4460 unsigned long CRecordset::GetRowsFetched()const 4461 unsigned short CRecordset::GetRowStatus(unsigned short)const 4462 CRuntime* CAnimateCtrl::GetRuntimeClass()const 4463 CRuntime* CArchiveException::GetRuntimeClass()const 4464 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 4465 CRuntime* CAsyncSocket::GetRuntimeClass()const 4466 CRuntime* CBitmap::GetRuntimeClass()const 4467 CRuntime* CBitmapButton::GetRuntimeClass()const 4468 CRuntime* CBrush::GetRuntimeClass()const 4469 CRuntime* CButton::GetRuntimeClass()const 4470 CRuntime* CByteArray::GetRuntimeClass()const 4471 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 4472 CRuntime* CCheckListBox::GetRuntimeClass()const 4473 CRuntime* CClientDC::GetRuntimeClass()const 4474 CRuntime* CCmdTarget::GetRuntimeClass()const 4475 CRuntime* CColorDialog::GetRuntimeClass()const 4476 CRuntime* CComboBox::GetRuntimeClass()const 4477 CRuntime* CComboBoxEx::GetRuntimeClass()const 4478 CRuntime* CControlBar::GetRuntimeClass()const 4479 CRuntime* CCriticalSection::GetRuntimeClass()const 4480 CRuntime* CCtrlView::GetRuntimeClass()const 4481 CRuntime* CDatabase::GetRuntimeClass()const 4482 CRuntime* CDataPathProperty::GetRuntimeClass()const 4483 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 4484 CRuntime* CDBException::GetRuntimeClass()const 4485 CRuntime* CDC::GetRuntimeClass()const 4486 CRuntime* CDHtmlDialog::GetRuntimeClass()const 4487 CRuntime* CDialog::GetRuntimeClass()const 4488 CRuntime* CDialogBar::GetRuntimeClass()const 4489 CRuntime* CDocItem::GetRuntimeClass()const 4490 CRuntime* CDockBar::GetRuntimeClass()const 4491 CRuntime* CDockState::GetRuntimeClass()const 4492 CRuntime* CDocManager::GetRuntimeClass()const 4493 CRuntime* CDocObjectServer::GetRuntimeClass()const 4494 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 4495 CRuntime* CDocTemplate::GetRuntimeClass()const 4496 CRuntime* CDocument::GetRuntimeClass()const 4497 CRuntime* CDragListBox::GetRuntimeClass()const 4498 CRuntime* CDWordArray::GetRuntimeClass()const 4499 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 4500 CRuntime* CEdit::GetRuntimeClass()const 4501 CRuntime* CEditView::GetRuntimeClass()const 4502 CRuntime* CEvent::GetRuntimeClass()const 4503 CRuntime* CException::GetRuntimeClass()const 4504 CRuntime* CFile::GetRuntimeClass()const 4505 CRuntime* CFileDialog::GetRuntimeClass()const 4506 CRuntime* CFileException::GetRuntimeClass()const 4507 CRuntime* CFileFind::GetRuntimeClass()const 4508 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 4509 CRuntime* CFont::GetRuntimeClass()const 4510 CRuntime* CFontDialog::GetRuntimeClass()const 4511 CRuntime* CFormView::GetRuntimeClass()const 4512 CRuntime* CFrameWnd::GetRuntimeClass()const 4513 CRuntime* CFtpConnection::GetRuntimeClass()const 4514 CRuntime* CFtpFileFind::GetRuntimeClass()const 4515 CRuntime* CGdiObject::GetRuntimeClass()const 4516 CRuntime* CGopherConnection::GetRuntimeClass()const 4517 CRuntime* CGopherFile::GetRuntimeClass()const 4518 CRuntime* CGopherFileFind::GetRuntimeClass()const 4519 CRuntime* CHeaderCtrl::GetRuntimeClass()const 4520 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 4521 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 4522 CRuntime* CHtmlEditView::GetRuntimeClass()const 4523 CRuntime* CHtmlView::GetRuntimeClass()const 4524 CRuntime* CHttpConnection::GetRuntimeClass()const 4525 CRuntime* CHttpFile::GetRuntimeClass()const 4526 CRuntime* CImageList::GetRuntimeClass()const 4527 CRuntime* CInternetConnection::GetRuntimeClass()const 4528 CRuntime* CInternetException::GetRuntimeClass()const 4529 CRuntime* CInternetFile::GetRuntimeClass()const 4530 CRuntime* CInternetSession::GetRuntimeClass()const 4531 CRuntime* CInvalidArgException::GetRuntimeClass()const 4532 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 4533 CRuntime* CLinkCtrl::GetRuntimeClass()const 4534 CRuntime* CListBox::GetRuntimeClass()const 4535 CRuntime* CListCtrl::GetRuntimeClass()const 4536 CRuntime* CListView::GetRuntimeClass()const 4537 CRuntime* CLongBinary::GetRuntimeClass()const 4538 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 4539 CRuntime* CMapPtrToWord::GetRuntimeClass()const 4540 CRuntime* CMapStringToOb::GetRuntimeClass()const 4541 CRuntime* CMapStringToPtr::GetRuntimeClass()const 4542 CRuntime* CMapStringToString::GetRuntimeClass()const 4543 CRuntime* CMapWordToOb::GetRuntimeClass()const 4544 CRuntime* CMapWordToPtr::GetRuntimeClass()const 4545 CRuntime* CMDIChildWnd::GetRuntimeClass()const 4546 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 4547 CRuntime* CMemFile::GetRuntimeClass()const 4548 CRuntime* CMemoryException::GetRuntimeClass()const 4549 CRuntime* CMenu::GetRuntimeClass()const 4550 CRuntime* CMetaFileDC::GetRuntimeClass()const 4551 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 4552 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 4553 CRuntime* CMonikerFile::GetRuntimeClass()const 4554 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 4555 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 4556 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 4557 CRuntime* CMutex::GetRuntimeClass()const 4558 CRuntime* CNotSupportedException::GetRuntimeClass()const 4559 CRuntime* CObArray::GetRuntimeClass()const 4560 CRuntime* CObject::GetRuntimeClass()const 4561 CRuntime* CObList::GetRuntimeClass()const 4562 CRuntime* COleBusyDialog::GetRuntimeClass()const 4563 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 4564 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 4565 CRuntime* COleClientItem::GetRuntimeClass()const 4566 CRuntime* COleControl::GetRuntimeClass()const 4567 CRuntime* COleControlModule::GetRuntimeClass()const 4568 CRuntime* COleConvertDialog::GetRuntimeClass()const 4569 CRuntime* COleDBRecordView::GetRuntimeClass()const 4570 CRuntime* COleDialog::GetRuntimeClass()const 4571 CRuntime* COleDispatchException::GetRuntimeClass()const 4572 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 4573 CRuntime* COleDocObjectItem::GetRuntimeClass()const 4574 CRuntime* COleDocument::GetRuntimeClass()const 4575 CRuntime* COleException::GetRuntimeClass()const 4576 CRuntime* COleInsertDialog::GetRuntimeClass()const 4577 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 4578 CRuntime* COleLinkingDoc::GetRuntimeClass()const 4579 CRuntime* COleLinksDialog::GetRuntimeClass()const 4580 CRuntime* COleObjectFactory::GetRuntimeClass()const 4581 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 4582 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 4583 CRuntime* COlePropertyPage::GetRuntimeClass()const 4584 CRuntime* COleResizeBar::GetRuntimeClass()const 4585 CRuntime* COleServerDoc::GetRuntimeClass()const 4586 CRuntime* COleServerItem::GetRuntimeClass()const 4587 CRuntime* COleStreamFile::GetRuntimeClass()const 4588 CRuntime* COleUpdateDialog::GetRuntimeClass()const 4589 CRuntime* CPageSetupDialog::GetRuntimeClass()const 4590 CRuntime* CPaintDC::GetRuntimeClass()const 4591 CRuntime* CPalette::GetRuntimeClass()const 4592 CRuntime* CPen::GetRuntimeClass()const 4593 CRuntime* CPreviewDC::GetRuntimeClass()const 4594 CRuntime* CPreviewView::GetRuntimeClass()const 4595 CRuntime* CPrintDialog::GetRuntimeClass()const 4596 CRuntime* CPrintDialogEx::GetRuntimeClass()const 4597 CRuntime* CProgressCtrl::GetRuntimeClass()const 4598 CRuntime* CPropertyPage::GetRuntimeClass()const 4599 CRuntime* CPropertySheet::GetRuntimeClass()const 4600 CRuntime* CPtrArray::GetRuntimeClass()const 4601 CRuntime* CPtrList::GetRuntimeClass()const 4602 CRuntime* CReBar::GetRuntimeClass()const 4603 CRuntime* CReBarCtrl::GetRuntimeClass()const 4604 CRuntime* CRecordset::GetRuntimeClass()const 4605 CRuntime* CRecordView::GetRuntimeClass()const 4606 CRuntime* CResourceException::GetRuntimeClass()const 4607 CRuntime* CRgn::GetRuntimeClass()const 4608 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 4609 CRuntime* CRichEditCtrl::GetRuntimeClass()const 4610 CRuntime* CRichEditDoc::GetRuntimeClass()const 4611 CRuntime* CRichEditView::GetRuntimeClass()const 4612 CRuntime* CScrollBar::GetRuntimeClass()const 4613 CRuntime* CScrollView::GetRuntimeClass()const 4614 CRuntime* CSemaphore::GetRuntimeClass()const 4615 CRuntime* CSharedFile::GetRuntimeClass()const 4616 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 4617 CRuntime* CSliderCtrl::GetRuntimeClass()const 4618 CRuntime* CSocket::GetRuntimeClass()const 4619 CRuntime* CSocketFile::GetRuntimeClass()const 4620 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 4621 CRuntime* CSplitterWnd::GetRuntimeClass()const 4622 CRuntime* CStatic::GetRuntimeClass()const 4623 CRuntime* CStatusBar::GetRuntimeClass()const 4624 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 4625 CRuntime* CStdioFile::GetRuntimeClass()const 4626 CRuntime* CStringArray::GetRuntimeClass()const 4627 CRuntime* CStringList::GetRuntimeClass()const 4628 CRuntime* CSyncObject::GetRuntimeClass()const 4629 CRuntime* CTabCtrl::GetRuntimeClass()const 4630 CRuntime* CToolBar::GetRuntimeClass()const 4631 CRuntime* CToolBarCtrl::GetRuntimeClass()const 4632 CRuntime* CToolTipCtrl::GetRuntimeClass()const 4633 CRuntime* CTreeCtrl::GetRuntimeClass()const 4634 CRuntime* CTreeView::GetRuntimeClass()const 4635 CRuntime* CUIntArray::GetRuntimeClass()const 4636 CRuntime* CUserException::GetRuntimeClass()const 4637 CRuntime* CView::GetRuntimeClass()const 4638 CRuntime* CWinApp::GetRuntimeClass()const 4639 CRuntime* CWindowDC::GetRuntimeClass()const 4640 CRuntime* CWindowlessDC::GetRuntimeClass()const 4641 CRuntime* CWinThread::GetRuntimeClass()const 4642 CRuntime* CWnd::GetRuntimeClass()const 4643 CRuntime* CWordArray::GetRuntimeClass()const 4644 void * CGdiObject::GetSafeHandle()const 4645 _IMAGELIST * CImageList::GetSafeHandle()const 4646 HDC__ * CDC::GetSafeHdc()const 4647 HMENU__ * CMenu::GetSafeHmenu()const 4648 HWND__ * CWnd::GetSafeHwnd()const 4649 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 4650 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 4651 unsigned long * CColorDialog::GetSavedCustomColors() 4652 ATL::CStringT > > CGopherFileFind::GetScreenName()const 4653 CSize CDockState::GetScreenSize() 4654 CScrollBar * CView::GetScrollBarCtrl(int)const 4655 CScrollBar * CWnd::GetScrollBarCtrl(int)const 4656 void CScrollView::GetScrollBarSizes(CSize &) 4657 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 4658 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 4659 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 4660 int CScrollBar::GetScrollLimit() 4661 int CWnd::GetScrollLimit(int) 4662 int CScrollBar::GetScrollPos()const 4663 int CWnd::GetScrollPos(int)const 4664 CPoint CScrollView::GetScrollPosition()const 4665 void CScrollBar::GetScrollRange(int *,int *)const 4666 void CWnd::GetScrollRange(int,int *,int *)const 4667 unsigned long CSplitterWnd::GetScrollStyle()const 4668 unsigned int CTreeCtrl::GetScrollTime()const 4669 CPropertySection * CPropertySet::GetSection(_GUID) 4670 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 4671 wchar_t const * CPropertySection::GetSectionName() 4672 unsigned long CEdit::GetSel()const 4673 void CEdit::GetSel(int &,int &)const 4674 int CListBox::GetSel(int)const 4675 void CRichEditCtrl::GetSel(long &,long &)const 4676 void CRichEditCtrl::GetSel(_charrange &)const 4677 int CListBox::GetSelCount()const 4678 unsigned int CListCtrl::GetSelectedCount()const 4679 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 4680 _TREEITEM * CTreeCtrl::GetSelectedItem()const 4681 void CEditView::GetSelectedText(ATL::CStringT > > &)const 4682 void CSliderCtrl::GetSelection(int &,int &)const 4683 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 4684 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 4685 int CListCtrl::GetSelectionMark() 4686 unsigned int COleBusyDialog::GetSelectionType()const 4687 unsigned int COleConvertDialog::GetSelectionType()const 4688 unsigned int COleInsertDialog::GetSelectionType()const 4689 unsigned int COlePasteSpecialDialog::GetSelectionType()const 4690 unsigned short CRichEditCtrl::GetSelectionType()const 4691 int CListBox::GetSelItems(int,int *)const 4692 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 4693 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 4694 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4695 ATL::CStringT > > CRichEditCtrl::GetSelText()const 4696 long CRichEditCtrl::GetSelText(char *)const 4697 ATL::CStringT > > CInternetConnection::GetServerName()const 4698 CInternetSession * CInternetConnection::GetSession()const 4699 int CHtmlView::GetSilent()const 4700 long CPrintDialogEx::GetSite(_GUID const &,void * *) 4701 int CByteArray::GetSize()const 4702 int CDWordArray::GetSize()const 4703 int CFontDialog::GetSize()const 4704 int CMapPtrToPtr::GetSize()const 4705 int CMapPtrToWord::GetSize()const 4706 int CMapStringToOb::GetSize()const 4707 int CMapStringToPtr::GetSize()const 4708 int CMapStringToString::GetSize()const 4709 int CMapWordToOb::GetSize()const 4710 int CMapWordToPtr::GetSize()const 4711 int CObArray::GetSize()const 4712 int CObList::GetSize()const 4713 unsigned long CPropertySection::GetSize() 4714 int CPtrArray::GetSize()const 4715 int CPtrList::GetSize()const 4716 int CStringArray::GetSize()const 4717 int CStringList::GetSize()const 4718 int CUIntArray::GetSize()const 4719 int CWordArray::GetSize()const 4720 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 4721 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 4722 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 4723 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 4724 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 4725 CWnd * CSplitterWnd::GetSizingParent() 4726 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 4727 int CAsyncSocket::GetSockName(sockaddr *,int *) 4728 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 4729 int CHtmlView::GetSource(ATL::CStringT > > &) 4730 ATL::CStringT > > const & CRecordset::GetSQL()const 4731 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 4732 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 4733 wchar_t const * CHtmlEditCtrl::GetStartDocument() 4734 wchar_t const * CHtmlEditView::GetStartDocument() 4735 __POSITION * CConnectionPoint::GetStartPosition()const 4736 __POSITION * CFileDialog::GetStartPosition()const 4737 __POSITION * CMapPtrToPtr::GetStartPosition()const 4738 __POSITION * CMapPtrToWord::GetStartPosition()const 4739 __POSITION * CMapStringToOb::GetStartPosition()const 4740 __POSITION * CMapStringToPtr::GetStartPosition()const 4741 __POSITION * CMapStringToString::GetStartPosition()const 4742 __POSITION * CMapWordToOb::GetStartPosition()const 4743 __POSITION * CMapWordToPtr::GetStartPosition()const 4744 __POSITION * COleDocument::GetStartPosition()const 4745 __POSITION * CRichEditDoc::GetStartPosition()const 4746 unsigned int CButton::GetState()const 4747 int CToolBarCtrl::GetState(int)const 4748 int CFile::GetStatus(CFileStatus &)const 4749 int CFile::GetStatus(wchar_t const *,CFileStatus &) 4750 int CMemFile::GetStatus(CFileStatus &)const 4751 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus()const 4752 int COleStreamFile::GetStatus(CFileStatus &)const 4753 void CRecordset::GetStatus(CRecordsetStatus &)const 4754 int CHtmlView::GetStatusBar()const 4755 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 4756 unsigned long COleControl::GetStockEventMask()const 4757 unsigned long COleControl::GetStockPropMask()const 4758 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 4759 ATL::CStringT > > const COleStreamFile::GetStorageName()const 4760 IStream * COleStreamFile::GetStream()const 4761 int CRichEditDoc::GetStreamFormat()const 4762 int CDC::GetStretchBltMode()const 4763 wchar_t const * ATL::CSimpleStringT::GetString()const 4764 char const * ATL::CSimpleStringT::GetString()const 4765 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 4766 int CToolBarCtrl::GetString(int,wchar_t *,int)const 4767 int CListCtrl::GetStringWidth(wchar_t const *)const 4768 unsigned long COleControlSite::GetStyle()const 4769 unsigned long COleControlSiteOrWnd::GetStyle()const 4770 unsigned long CToolBarCtrl::GetStyle()const 4771 unsigned long CWnd::GetStyle()const 4772 ATL::CStringT > > CFontDialog::GetStyleName()const 4773 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 4774 CMenu * CMenu::GetSubMenu(int)const 4775 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 4776 int CWinApp::GetSysPolicyValue(unsigned long,int *) 4777 CMenu * CWnd::GetSystemMenu(int)const 4778 CSize CDC::GetTabbedTextExtentW(ATL::CStringT > > const &,int,int *)const 4779 CSize CDC::GetTabbedTextExtentW(wchar_t const *,int,int,int *)const 4780 CTabCtrl * CPropertySheet::GetTabControl()const 4781 ATL::CStringT > > const & CRecordset::GetTableName()const 4782 CObject * & CObList::GetTail() 4783 CObject const * & CObList::GetTail()const 4784 void * & CPtrList::GetTail() 4785 void const * & CPtrList::GetTail()const 4786 ATL::CStringT > > & CStringList::GetTail() 4787 ATL::CStringT > > const & CStringList::GetTail()const 4788 __POSITION * CObList::GetTailPosition()const 4789 __POSITION * CPtrList::GetTailPosition()const 4790 __POSITION * CStringList::GetTailPosition()const 4791 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 4792 int CListBox::GetText(int,wchar_t *)const 4793 void CListBox::GetText(int,ATL::CStringT > > &)const 4794 wchar_t * COleControl::GetText() 4795 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 4796 int CStatusBarCtrl::GetText(wchar_t const *,int,int *)const 4797 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 4798 unsigned int CDC::GetTextAlign()const 4799 unsigned long CListCtrl::GetTextBkColor()const 4800 int CDC::GetTextCharacterExtra()const 4801 unsigned long CDC::GetTextColor()const 4802 unsigned long CListCtrl::GetTextColor()const 4803 unsigned long CReBarCtrl::GetTextColor()const 4804 unsigned long CTreeCtrl::GetTextColor()const 4805 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 4806 CSize CDC::GetTextExtent(wchar_t const *,int)const 4807 int CDC::GetTextFaceW(ATL::CStringT > > &)const 4808 int CDC::GetTextFaceW(int,wchar_t *)const 4809 int CListBox::GetTextLen(int)const 4810 long CRecordset::GetTextLen(short,unsigned long) 4811 long CRichEditCtrl::GetTextLength()const 4812 long CRichEditView::GetTextLength()const 4813 int CStatusBarCtrl::GetTextLength(int,int *)const 4814 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 4815 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 4816 int CDC::GetTextMetricsW(tagTEXTMETRICW *)const 4817 unsigned int CRichEditCtrl::GetTextMode()const 4818 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 4819 int CHtmlView::GetTheaterMode()const 4820 CRuntime* CAnimateCtrl::GetThisClass() 4821 CRuntime* CArchiveException::GetThisClass() 4822 CRuntime* CAsyncMonikerFile::GetThisClass() 4823 CRuntime* CAsyncSocket::GetThisClass() 4824 CRuntime* CBitmap::GetThisClass() 4825 CRuntime* CBitmapButton::GetThisClass() 4826 CRuntime* CBrush::GetThisClass() 4827 CRuntime* CButton::GetThisClass() 4828 CRuntime* CByteArray::GetThisClass() 4829 CRuntime* CCachedDataPathProperty::GetThisClass() 4830 CRuntime* CCheckListBox::GetThisClass() 4831 CRuntime* CClientDC::GetThisClass() 4832 CRuntime* CCmdTarget::GetThisClass() 4833 CRuntime* CColorDialog::GetThisClass() 4834 CRuntime* CComboBox::GetThisClass() 4835 CRuntime* CComboBoxEx::GetThisClass() 4836 CRuntime* CControlBar::GetThisClass() 4837 CRuntime* CCriticalSection::GetThisClass() 4838 CRuntime* CCtrlView::GetThisClass() 4839 CRuntime* CDatabase::GetThisClass() 4840 CRuntime* CDataPathProperty::GetThisClass() 4841 CRuntime* CDateTimeCtrl::GetThisClass() 4842 CRuntime* CDBException::GetThisClass() 4843 CRuntime* CDC::GetThisClass() 4844 CRuntime* CDHtmlDialog::GetThisClass() 4845 CRuntime* CDialog::GetThisClass() 4846 CRuntime* CDialogBar::GetThisClass() 4847 CRuntime* CDocItem::GetThisClass() 4848 CRuntime* CDockBar::GetThisClass() 4849 CRuntime* CDockState::GetThisClass() 4850 CRuntime* CDocManager::GetThisClass() 4851 CRuntime* CDocObjectServer::GetThisClass() 4852 CRuntime* CDocObjectServerItem::GetThisClass() 4853 CRuntime* CDocTemplate::GetThisClass() 4854 CRuntime* CDocument::GetThisClass() 4855 CRuntime* CDragListBox::GetThisClass() 4856 CRuntime* CDWordArray::GetThisClass() 4857 CRuntime* CDynLinkLibrary::GetThisClass() 4858 CRuntime* CEdit::GetThisClass() 4859 CRuntime* CEditView::GetThisClass() 4860 CRuntime* CEvent::GetThisClass() 4861 CRuntime* CException::GetThisClass() 4862 CRuntime* CFile::GetThisClass() 4863 CRuntime* CFileDialog::GetThisClass() 4864 CRuntime* CFileException::GetThisClass() 4865 CRuntime* CFileFind::GetThisClass() 4866 CRuntime* CFindReplaceDialog::GetThisClass() 4867 CRuntime* CFont::GetThisClass() 4868 CRuntime* CFontDialog::GetThisClass() 4869 CRuntime* CFormView::GetThisClass() 4870 CRuntime* CFrameWnd::GetThisClass() 4871 CRuntime* CFtpConnection::GetThisClass() 4872 CRuntime* CFtpFileFind::GetThisClass() 4873 CRuntime* CGdiObject::GetThisClass() 4874 CRuntime* CGopherConnection::GetThisClass() 4875 CRuntime* CGopherFile::GetThisClass() 4876 CRuntime* CGopherFileFind::GetThisClass() 4877 CRuntime* CHeaderCtrl::GetThisClass() 4878 CRuntime* CHotKeyCtrl::GetThisClass() 4879 CRuntime* CHtmlEditDoc::GetThisClass() 4880 CRuntime* CHtmlEditView::GetThisClass() 4881 CRuntime* CHtmlView::GetThisClass() 4882 CRuntime* CHttpConnection::GetThisClass() 4883 CRuntime* CHttpFile::GetThisClass() 4884 CRuntime* CImageList::GetThisClass() 4885 CRuntime* CInternetConnection::GetThisClass() 4886 CRuntime* CInternetException::GetThisClass() 4887 CRuntime* CInternetFile::GetThisClass() 4888 CRuntime* CInternetSession::GetThisClass() 4889 CRuntime* CInvalidArgException::GetThisClass() 4890 CRuntime* CIPAddressCtrl::GetThisClass() 4891 CRuntime* CLinkCtrl::GetThisClass() 4892 CRuntime* CListBox::GetThisClass() 4893 CRuntime* CListCtrl::GetThisClass() 4894 CRuntime* CListView::GetThisClass() 4895 CRuntime* CLongBinary::GetThisClass() 4896 CRuntime* CMapPtrToPtr::GetThisClass() 4897 CRuntime* CMapPtrToWord::GetThisClass() 4898 CRuntime* CMapStringToOb::GetThisClass() 4899 CRuntime* CMapStringToPtr::GetThisClass() 4900 CRuntime* CMapStringToString::GetThisClass() 4901 CRuntime* CMapWordToOb::GetThisClass() 4902 CRuntime* CMapWordToPtr::GetThisClass() 4903 CRuntime* CMDIChildWnd::GetThisClass() 4904 CRuntime* CMDIFrameWnd::GetThisClass() 4905 CRuntime* CMemFile::GetThisClass() 4906 CRuntime* CMemoryException::GetThisClass() 4907 CRuntime* CMenu::GetThisClass() 4908 CRuntime* CMetaFileDC::GetThisClass() 4909 CRuntime* CMiniDockFrameWnd::GetThisClass() 4910 CRuntime* CMiniFrameWnd::GetThisClass() 4911 CRuntime* CMonikerFile::GetThisClass() 4912 CRuntime* CMonthCalCtrl::GetThisClass() 4913 CRuntime* CMultiDocTemplate::GetThisClass() 4914 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 4915 CRuntime* CMutex::GetThisClass() 4916 CRuntime* CNotSupportedException::GetThisClass() 4917 CRuntime* CObArray::GetThisClass() 4918 CRuntime* CObject::GetThisClass() 4919 CRuntime* CObList::GetThisClass() 4920 CRuntime* COleBusyDialog::GetThisClass() 4921 CRuntime* COleChangeIconDialog::GetThisClass() 4922 CRuntime* COleChangeSourceDialog::GetThisClass() 4923 CRuntime* COleClientItem::GetThisClass() 4924 CRuntime* COleControl::GetThisClass() 4925 CRuntime* COleControlModule::GetThisClass() 4926 CRuntime* COleConvertDialog::GetThisClass() 4927 CRuntime* COleDBRecordView::GetThisClass() 4928 CRuntime* COleDialog::GetThisClass() 4929 CRuntime* COleDispatchException::GetThisClass() 4930 CRuntime* COleDocIPFrameWnd::GetThisClass() 4931 CRuntime* COleDocObjectItem::GetThisClass() 4932 CRuntime* COleDocument::GetThisClass() 4933 CRuntime* COleException::GetThisClass() 4934 CRuntime* COleInsertDialog::GetThisClass() 4935 CRuntime* COleIPFrameWnd::GetThisClass() 4936 CRuntime* COleLinkingDoc::GetThisClass() 4937 CRuntime* COleLinksDialog::GetThisClass() 4938 CRuntime* COleObjectFactory::GetThisClass() 4939 CRuntime* COlePasteSpecialDialog::GetThisClass() 4940 CRuntime* COlePropertiesDialog::GetThisClass() 4941 CRuntime* COlePropertyPage::GetThisClass() 4942 CRuntime* COleResizeBar::GetThisClass() 4943 CRuntime* COleServerDoc::GetThisClass() 4944 CRuntime* COleServerItem::GetThisClass() 4945 CRuntime* COleStreamFile::GetThisClass() 4946 CRuntime* COleUpdateDialog::GetThisClass() 4947 CRuntime* CPageSetupDialog::GetThisClass() 4948 CRuntime* CPaintDC::GetThisClass() 4949 CRuntime* CPalette::GetThisClass() 4950 CRuntime* CPen::GetThisClass() 4951 CRuntime* CPreviewDC::GetThisClass() 4952 CRuntime* CPreviewView::GetThisClass() 4953 CRuntime* CPrintDialog::GetThisClass() 4954 CRuntime* CPrintDialogEx::GetThisClass() 4955 CRuntime* CProgressCtrl::GetThisClass() 4956 CRuntime* CPropertyPage::GetThisClass() 4957 CRuntime* CPropertySheet::GetThisClass() 4958 CRuntime* CPtrArray::GetThisClass() 4959 CRuntime* CPtrList::GetThisClass() 4960 CRuntime* CReBar::GetThisClass() 4961 CRuntime* CReBarCtrl::GetThisClass() 4962 CRuntime* CRecordset::GetThisClass() 4963 CRuntime* CRecordView::GetThisClass() 4964 CRuntime* CResourceException::GetThisClass() 4965 CRuntime* CRgn::GetThisClass() 4966 CRuntime* CRichEditCntrItem::GetThisClass() 4967 CRuntime* CRichEditCtrl::GetThisClass() 4968 CRuntime* CRichEditDoc::GetThisClass() 4969 CRuntime* CRichEditView::GetThisClass() 4970 CRuntime* CScrollBar::GetThisClass() 4971 CRuntime* CScrollView::GetThisClass() 4972 CRuntime* CSemaphore::GetThisClass() 4973 CRuntime* CSharedFile::GetThisClass() 4974 CRuntime* CSingleDocTemplate::GetThisClass() 4975 CRuntime* CSliderCtrl::GetThisClass() 4976 CRuntime* CSocket::GetThisClass() 4977 CRuntime* CSocketFile::GetThisClass() 4978 CRuntime* CSpinButtonCtrl::GetThisClass() 4979 CRuntime* CSplitterWnd::GetThisClass() 4980 CRuntime* CStatic::GetThisClass() 4981 CRuntime* CStatusBar::GetThisClass() 4982 CRuntime* CStatusBarCtrl::GetThisClass() 4983 CRuntime* CStdioFile::GetThisClass() 4984 CRuntime* CStringArray::GetThisClass() 4985 CRuntime* CStringList::GetThisClass() 4986 CRuntime* CSyncObject::GetThisClass() 4987 CRuntime* CTabCtrl::GetThisClass() 4988 CRuntime* CToolBar::GetThisClass() 4989 CRuntime* CToolBarCtrl::GetThisClass() 4990 CRuntime* CToolTipCtrl::GetThisClass() 4991 CRuntime* CTreeCtrl::GetThisClass() 4992 CRuntime* CTreeView::GetThisClass() 4993 CRuntime* CUIntArray::GetThisClass() 4994 CRuntime* CUserException::GetThisClass() 4995 CRuntime* CView::GetThisClass() 4996 CRuntime* CWinApp::GetThisClass() 4997 CRuntime* CWindowDC::GetThisClass() 4998 CRuntime* CWindowlessDC::GetThisClass() 4999 CRuntime* CWinThread::GetThisClass() 5000 CRuntime* CWnd::GetThisClass() 5001 CRuntime* CWordArray::GetThisClass() 5002 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 5003 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 5004 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 5005 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 5006 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 5007 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 5008 AFX_EVENTMAP const * COleControl::GetThisEventMap() 5009 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 5010 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 5011 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 5012 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 5013 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 5014 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 5015 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 5016 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 5017 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 5018 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 5019 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 5020 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 5021 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 5022 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 5023 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 5024 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 5025 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 5026 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 5027 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 5028 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 5029 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 5030 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 5031 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 5032 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 5033 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 5034 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 5035 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 5036 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 5037 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 5038 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 5039 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 5040 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 5041 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 5042 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 5043 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 5044 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 5045 AFX_MSGMAP const * CDialog::GetThisMessageMap() 5046 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 5047 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 5048 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 5049 AFX_MSGMAP const * CDocument::GetThisMessageMap() 5050 AFX_MSGMAP const * CEditView::GetThisMessageMap() 5051 AFX_MSGMAP const * CFormView::GetThisMessageMap() 5052 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 5053 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 5054 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 5055 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 5056 AFX_MSGMAP const * CListView::GetThisMessageMap() 5057 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 5058 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 5059 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 5060 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 5061 AFX_MSGMAP const * COleControl::GetThisMessageMap() 5062 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 5063 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 5064 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 5065 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 5066 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 5067 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 5068 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 5069 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 5070 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 5071 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 5072 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 5073 AFX_MSGMAP const * CReBar::GetThisMessageMap() 5074 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 5075 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 5076 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 5077 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 5078 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 5079 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 5080 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 5081 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 5082 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 5083 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 5084 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 5085 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 5086 AFX_MSGMAP const * CView::GetThisMessageMap() 5087 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 5088 AFX_MSGMAP const * CWnd::GetThisMessageMap() 5089 int CWinThread::GetThreadPriority() 5090 void CSliderCtrl::GetThumbRect(tagRECT *)const 5091 int CSliderCtrl::GetTic(int)const 5092 unsigned long * CSliderCtrl::GetTicArray()const 5093 int CSliderCtrl::GetTicPos(int)const 5094 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 5095 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 5096 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 5097 unsigned long CToolTipCtrl::GetTipBkColor()const 5098 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 5099 unsigned long CToolTipCtrl::GetTipTextColor()const 5100 ATL::CStringT > > const & CDocument::GetTitle()const 5101 ATL::CStringT > > CFrameWnd::GetTitle()const 5102 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 5103 int CMonthCalCtrl::GetToday(ATL::CTime &)const 5104 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 5105 int CHtmlView::GetToolBar()const 5106 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 5107 int CToolTipCtrl::GetToolCount()const 5108 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 5109 CToolTipCtrl * CListCtrl::GetToolTips()const 5110 CToolTipCtrl * CReBarCtrl::GetToolTips()const 5111 CToolTipCtrl * CSliderCtrl::GetToolTips()const 5112 CToolTipCtrl * CTabCtrl::GetToolTips()const 5113 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 5114 CToolTipCtrl * CTreeCtrl::GetToolTips()const 5115 long CHtmlView::GetTop()const 5116 int CPrintDialog::GetToPage()const 5117 unsigned int CPrintInfo::GetToPage()const 5118 int CComboBox::GetTopIndex()const 5119 int CListBox::GetTopIndex()const 5120 int CListCtrl::GetTopIndex()const 5121 int CHtmlView::GetTopLevelContainer()const 5122 CFrameWnd * CWnd::GetTopLevelFrame()const 5123 CWnd * CWnd::GetTopLevelOwner()const 5124 CWnd * CWnd::GetTopLevelParent()const 5125 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix() 5126 CWnd * CWnd::GetTopWindow()const 5127 CSize CScrollView::GetTotalSize()const 5128 CTreeCtrl & CTreeView::GetTreeCtrl()const 5129 int CScrollView::GetTrueClientSize(CSize &,CSize &) 5130 void CRectTracker::GetTrueRect(tagRECT *)const 5131 ATL::CStringT > > CHtmlView::GetType()const 5132 enum OLE_OBJTYPE COleClientItem::GetType()const 5133 short CPictureHolder::GetType() 5134 unsigned long CProperty::GetType() 5135 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5136 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5137 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5138 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5139 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5140 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5141 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5142 unsigned int CCmdTarget::GetTypeInfoCount() 5143 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 5144 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 5145 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 5146 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 5147 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 5148 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 5149 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 5150 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 5151 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 5152 CTypeLibCache * CCmdTarget::GetTypeLibCache() 5153 void COleSafeArray::GetUBound(unsigned long,long *) 5154 enum _undonameid CRichEditCtrl::GetUndoName()const 5155 int CWnd::GetUpdateRect(tagRECT *,int) 5156 int CWnd::GetUpdateRgn(CRgn *,int) 5157 int CByteArray::GetUpperBound()const 5158 int CDWordArray::GetUpperBound()const 5159 int CObArray::GetUpperBound()const 5160 int CPtrArray::GetUpperBound()const 5161 int CStringArray::GetUpperBound()const 5162 int CUIntArray::GetUpperBound()const 5163 int CWordArray::GetUpperBound()const 5164 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 5165 long COleControl::XOleObject::GetUserClassID(_GUID *) 5166 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 5167 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 5168 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 5169 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 5170 void COleControl::GetUserType(wchar_t *) 5171 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 5172 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 5173 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 5174 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 5175 void * CMapPtrToPtr::GetValueAt(void *)const 5176 ATL::CStringT > > CHttpFile::GetVerb()const 5177 unsigned long CDockState::GetVersion() 5178 unsigned long CPropExchange::GetVersion() 5179 CHtmlEditView * CHtmlEditDoc::GetView()const 5180 CRichEditView * CRichEditDoc::GetView()const 5181 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 5182 CSize CDC::GetViewportExt()const 5183 CPoint CDC::GetViewportOrg()const 5184 int CListCtrl::GetViewRect(tagRECT *)const 5185 long COleControl::XViewObject::GetViewStatus(unsigned long *) 5186 int CHtmlView::GetVisible()const 5187 unsigned int CTreeCtrl::GetVisibleCount()const 5188 int CFontDialog::GetWeight()const 5189 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 5190 long CHtmlView::GetWidth()const 5191 CWnd * CDC::GetWindow()const 5192 CWnd * CWnd::GetWindow(unsigned int)const 5193 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5194 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5195 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5196 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5197 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5198 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5199 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5200 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5201 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5202 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5203 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5204 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5205 unsigned long CWnd::GetWindowContextHelpId()const 5206 CDC * CWnd::GetWindowDC() 5207 long CWnd::GetWindowedChildCount() 5208 CSize CDC::GetWindowExt()const 5209 long CWnd::GetWindowLessChildCount() 5210 IDropTarget * COleControl::GetWindowlessDropTarget() 5211 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5212 CPoint CDC::GetWindowOrg()const 5213 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5214 void CWnd::GetWindowRect(tagRECT *)const 5215 int CWnd::GetWindowRgn(HRGN__ *)const 5216 int CWnd::GetWindowTextLengthW()const 5217 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 5218 int CWnd::GetWindowTextW(wchar_t *,int)const 5219 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 5220 unsigned int CRichEditCtrl::GetWordWrapMode()const 5221 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5222 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5223 long COleDropSource::GiveFeedback(unsigned long) 5224 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5225 void CHtmlView::GoBack() 5226 void CHtmlView::GoForward() 5227 void CHtmlView::GoHome() 5228 void CHtmlView::GoSearch() 5229 void CDialog::GotoDlgCtrl(CWnd *) 5230 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5231 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5232 int CDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5233 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5234 void CMemFile::GrowFile(unsigned long) 5235 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5236 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5237 long CDialog::HandleInitDialog(unsigned int,long) 5238 long CDialogBar::HandleInitDialog(unsigned int,long) 5239 long CFormView::HandleInitDialog(unsigned int,long) 5240 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5241 long CPropertySheet::HandleInitDialog(unsigned int,long) 5242 long CScrollView::HandleMButtonDown(unsigned int,long) 5243 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5244 int COleControlContainer::HandleSetFocus() 5245 long CDialog::HandleSetFont(unsigned int,long) 5246 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5247 long COleControl::XPersistStorage::HandsOffStorage() 5248 long COleServerDoc::XPersistStorage::HandsOffStorage() 5249 int COleDocument::HasBlankItems()const 5250 int CComboBoxEx::HasEditChanged() 5251 int CDialogTemplate::HasFont()const 5252 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5253 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 5254 void * CFile::hFileNull 5255 void CWinApp::HideApplication() 5256 int CToolBarCtrl::HideButton(int,int) 5257 void CWnd::HideCaret() 5258 void CFileDialog::HideControl(int) 5259 void CRichEditCtrl::HideSelection(int,int) 5260 long CBrowserControlSite::HideUI() 5261 long CDHtmlDialog::HideUI() 5262 long CHtmlControlSite::XDocHostUIHandler::HideUI() 5263 int CTabCtrl::HighlightItem(int,int) 5264 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5265 void CDC::HIMETRICtoDP(tagSIZE *)const 5266 void CDC::HIMETRICtoLP(tagSIZE *)const 5267 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5268 int CListCtrl::HitTest(CPoint,unsigned int *)const 5269 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5270 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5271 int CRectTracker::HitTest(CPoint)const 5272 int CSplitterWnd::HitTest(CPoint)const 5273 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5274 int CToolBarCtrl::HitTest(tagPOINT *)const 5275 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 5276 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5277 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5278 int CRectTracker::HitTestHandles(CPoint)const 5279 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 5280 void CWnd::HtmlHelpW(unsigned long,unsigned int) 5281 int CSplitterWnd::IdFromRowCol(int,int)const 5282 int CReBarCtrl::IDToIndex(unsigned int)const 5283 void COlePropertyPage::IgnoreApply(unsigned int) 5284 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5285 int CToolBarCtrl::Indeterminate(int,int) 5286 int CCriticalSection::Init() 5287 int CWinApp::InitApplication() 5288 long COleControl::XOleCache::InitCache(IDataObject *) 5289 int CWnd::InitControlContainer() 5290 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5291 long CPrintDialogEx::InitDone() 5292 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5293 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5294 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5295 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5296 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5297 void CMapPtrToWord::InitHashTable(unsigned int,int) 5298 void CMapStringToOb::InitHashTable(unsigned int,int) 5299 void CMapStringToPtr::InitHashTable(unsigned int,int) 5300 void CMapStringToString::InitHashTable(unsigned int,int) 5301 void CMapWordToOb::InitHashTable(unsigned int,int) 5302 void CMapWordToPtr::InitHashTable(unsigned int,int) 5303 long CDataSourceControl::Initialize() 5304 void CDHtmlDialog::Initialize() 5305 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5306 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5307 int CEditView::InitializeReplace() 5308 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5309 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5310 int COleControlModule::InitInstance() 5311 int CWinApp::InitInstance() 5312 int CWinThread::InitInstance() 5313 void CWinApp::InitLibId() 5314 void CDockContext::InitLoop() 5315 int CDialog::InitModalIndirect(void *,CWnd *) 5316 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5317 long COleControl::XPersistMemory::InitNew() 5318 long COleControl::XPersistPropertyBag::InitNew() 5319 long COleControl::XPersistStorage::InitNew(IStorage *) 5320 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5321 long COleControl::XPersistStreamInit::InitNew() 5322 void CRecordset::InitRecord() 5323 void COleControl::InitStockEventMask() 5324 void COleControl::InitStockPropMask() 5325 int CComboBox::InitStorage(int,unsigned int) 5326 int CListBox::InitStorage(int,unsigned int) 5327 void CSimpleException::InitString() 5328 int CFrameWnd::InModalState()const 5329 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 5330 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 5331 int ATL::CStringT > >::Insert(int,wchar_t) 5332 int ATL::CStringT > >::Insert(int,wchar_t const *) 5333 int ATL::CStringT > >::Insert(int,char) 5334 int ATL::CStringT > >::Insert(int,char const *) 5335 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5336 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5337 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5338 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5339 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 5340 void CByteArray::InsertAt(int,unsigned char,int) 5341 void CByteArray::InsertAt(int,CByteArray *) 5342 void CDWordArray::InsertAt(int,unsigned long,int) 5343 void CDWordArray::InsertAt(int,CDWordArray *) 5344 void CObArray::InsertAt(int,CObArray *) 5345 void CObArray::InsertAt(int,CObject *,int) 5346 void CPtrArray::InsertAt(int,CPtrArray *) 5347 void CPtrArray::InsertAt(int,void *,int) 5348 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5349 void CStringArray::InsertAt(int,CStringArray *) 5350 void CStringArray::InsertAt(int,wchar_t const *,int) 5351 void CUIntArray::InsertAt(int,unsigned int,int) 5352 void CUIntArray::InsertAt(int,CUIntArray *) 5353 void CWordArray::InsertAt(int,unsigned short,int) 5354 void CWordArray::InsertAt(int,CWordArray *) 5355 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOW *) 5356 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5357 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5358 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5359 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 5360 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5361 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 5362 int CListCtrl::InsertColumn(int,tagLVCOLUMNW const *) 5363 void CStringArray::InsertEmpty(int,int) 5364 void CRichEditView::InsertFileAsObject(wchar_t const *) 5365 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 5366 int CHeaderCtrl::InsertItem(int,_HD_ITEMW *) 5367 int CListCtrl::InsertItem(int,wchar_t const *) 5368 int CListCtrl::InsertItem(int,wchar_t const *,int) 5369 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 5370 int CListCtrl::InsertItem(tagLVITEMW const *) 5371 long CRichEditView::InsertItem(CRichEditCntrItem *) 5372 long CTabCtrl::InsertItem(int,tagTCITEMW *) 5373 long CTabCtrl::InsertItem(int,wchar_t const *) 5374 long CTabCtrl::InsertItem(int,wchar_t const *,int) 5375 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 5376 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 5377 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5378 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTW *) 5379 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,int,int,_TREEITEM *,_TREEITEM *) 5380 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,_TREEITEM *,_TREEITEM *) 5381 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5382 int CMenu::InsertMenuItemW(unsigned int,tagMENUITEMINFOW *,int) 5383 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5384 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5385 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5386 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5387 int CComboBox::InsertString(int,wchar_t const *) 5388 int CComboBoxEx::InsertString(int,wchar_t const *) 5389 int CListBox::InsertString(int,wchar_t const *) 5390 unsigned long CCmdTarget::InternalAddRef() 5391 CFontHolder & COleControl::InternalGetFont() 5392 ATL::CStringT > > const & COleControl::InternalGetText() 5393 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5394 unsigned long CCmdTarget::InternalRelease() 5395 void COleControl::InternalSetReadyState(long) 5396 int CDC::IntersectClipRect(int,int,int,int) 5397 int CDC::IntersectClipRect(tagRECT const *) 5398 void CWnd::Invalidate(int) 5399 void CCheckListBox::InvalidateCheck(int) 5400 void COleControl::InvalidateControl(tagRECT const *,int) 5401 void CCheckListBox::InvalidateItem(int) 5402 void CRichEditDoc::InvalidateObjectCache() 5403 void CWnd::InvalidateRect(tagRECT const *,int) 5404 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5405 void COleControl::InvalidateRgn(CRgn *,int) 5406 void CWnd::InvalidateRgn(CRgn *,int) 5407 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5408 void CDC::InvertRect(tagRECT const *) 5409 int CDC::InvertRgn(CRgn *) 5410 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5411 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5412 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5413 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5414 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5415 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5416 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5417 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5418 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5419 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5420 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5421 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5422 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5423 int CAsyncSocket::IOCtl(long,unsigned long *) 5424 int CFileFind::IsArchived()const 5425 int CPropExchange::IsAsynchronous() 5426 int CDocItem::IsBlank()const 5427 int CIPAddressCtrl::IsBlank()const 5428 int COleServerItem::IsBlank()const 5429 int CSocket::IsBlocking() 5430 int CRecordset::IsBOF()const 5431 int CFontDialog::IsBold()const 5432 int CArchive::IsBufferEmpty()const 5433 int CToolBarCtrl::IsButtonChecked(int)const 5434 int CPropertyPage::IsButtonEnabled(int) 5435 int CToolBarCtrl::IsButtonEnabled(int)const 5436 int CToolBarCtrl::IsButtonHidden(int)const 5437 int CToolBarCtrl::IsButtonHighlighted(int)const 5438 int CToolBarCtrl::IsButtonIndeterminate(int)const 5439 int CToolBarCtrl::IsButtonPressed(int)const 5440 int CArchive::IsByteSwapping()const 5441 int CWnd::IsChild(CWnd const *)const 5442 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5443 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5444 int CFileFind::IsCompressed()const 5445 int COleServerItem::IsConnected()const 5446 int COleControl::IsConvertingVBX() 5447 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5448 int COleControlSite::IsDefaultButton() 5449 int CRecordset::IsDeleted()const 5450 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5451 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 5452 int CWnd::IsDialogMessageW(tagMSG *) 5453 int CFileFind::IsDirectory()const 5454 long CBlobProperty::IsDirty() 5455 long COleLinkingDoc::XPersistFile::IsDirty() 5456 long COleControl::XPersistMemory::IsDirty() 5457 long COleControl::XPersistStorage::IsDirty() 5458 long COleServerDoc::XPersistStorage::IsDirty() 5459 long COleControl::XPersistStreamInit::IsDirty() 5460 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5461 unsigned int CWnd::IsDlgButtonChecked(int)const 5462 int CControlBar::IsDockBar()const 5463 int CDockBar::IsDockBar()const 5464 int COleServerDoc::IsDocObject()const 5465 int CFileFind::IsDots()const 5466 int CGopherFileFind::IsDots()const 5467 int COleServerDoc::IsEmbedded()const 5468 bool ATL::CSimpleStringT::IsEmpty()const 5469 bool ATL::CSimpleStringT::IsEmpty()const 5470 int CByteArray::IsEmpty()const 5471 int CDWordArray::IsEmpty()const 5472 int CMapPtrToPtr::IsEmpty()const 5473 int CMapPtrToWord::IsEmpty()const 5474 int CMapStringToOb::IsEmpty()const 5475 int CMapStringToPtr::IsEmpty()const 5476 int CMapStringToString::IsEmpty()const 5477 int CMapWordToOb::IsEmpty()const 5478 int CMapWordToPtr::IsEmpty()const 5479 int CObArray::IsEmpty()const 5480 int CObList::IsEmpty()const 5481 int CPtrArray::IsEmpty()const 5482 int CPtrList::IsEmpty()const 5483 int CStringArray::IsEmpty()const 5484 int CStringList::IsEmpty()const 5485 int CUIntArray::IsEmpty()const 5486 int CWordArray::IsEmpty()const 5487 int CCheckListBox::IsEnabled(int) 5488 int CRecordset::IsEOF()const 5489 int CDHtmlDialog::IsExternalDispatchSafe() 5490 int CRecordset::IsFieldDirty(void *) 5491 int CRecordset::IsFieldNull(void *) 5492 int CRecordset::IsFieldNullable(void *) 5493 int CRecordset::IsFieldNullable(unsigned long)const 5494 int CRecordset::IsFieldStatusDirty(unsigned long)const 5495 int CRecordset::IsFieldStatusNull(unsigned long)const 5496 int CFieldExchange::IsFieldType(unsigned int *) 5497 int CControlBar::IsFloating()const 5498 int CFrameWnd::IsFrameWnd()const 5499 int CWnd::IsFrameWnd()const 5500 int IsHelpKey(tagMSG *) 5501 int CFileFind::IsHidden()const 5502 int CWnd::IsIconic()const 5503 int CWinThread::IsIdleMessage(tagMSG *) 5504 int COleClientItem::IsInPlaceActive()const 5505 int COleServerDoc::IsInPlaceActive()const 5506 int CCmdTarget::IsInvokeAllowed(long) 5507 int COleControl::IsInvokeAllowed(long) 5508 int CFontDialog::IsItalic()const 5509 int CRecordset::IsJoin(wchar_t const *) 5510 int CObject::IsKindOf(CRuntimeconst *)const 5511 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5512 int COccManager::IsLabelControl(CWnd *) 5513 int COleObjectFactory::IsLicenseValid() 5514 int COleServerItem::IsLinkedItem()const 5515 int COleClientItem::IsLinkUpToDate()const 5516 int CArchive::IsLoading()const 5517 int CPropExchange::IsLoading() 5518 int CMultiLock::IsLocked(unsigned long) 5519 int CSingleLock::IsLocked() 5520 int CRichEditCntrItem::IsMarked() 5521 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5522 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5523 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5524 int CDocument::IsModified() 5525 int CHtmlEditDoc::IsModified() 5526 int COleClientItem::IsModified()const 5527 int COleControl::IsModified() 5528 int COlePropertyPage::IsModified() 5529 int CRichEditDoc::IsModified() 5530 int CFileFind::IsNormal()const 5531 int CRecordView::IsOnFirstRecord() 5532 int CRecordView::IsOnLastRecord() 5533 int CDatabase::IsOpen()const 5534 int COleClientItem::IsOpen()const 5535 int CRecordset::IsOpen()const 5536 int COleControl::IsOptimizedDraw() 5537 long COlePropertyPage::XPropertyPage::IsPageDirty() 5538 int CRecordset::IsParamStatusNull(unsigned long)const 5539 int CDC::IsPrinting()const 5540 int CFileFind::IsReadOnly()const 5541 int CRecordset::IsRecordsetUpdatable() 5542 int COleObjectFactory::IsRegistered()const 5543 int CCmdTarget::IsResultExpected() 5544 int CRichEditView::IsRichEditFormat(unsigned short) 5545 int COleClientItem::IsRunning()const 5546 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 5547 int CRichEditView::IsSelected(CObject const *)const 5548 int CView::IsSelected(CObject const *)const 5549 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 5550 int CObject::IsSerializable()const 5551 int COleMessageFilter::IsSignificantMessage(tagMSG *) 5552 int CStatusBarCtrl::IsSimple()const 5553 int CDHtmlDialog::IsSinkedElement(IDispatch *) 5554 int CRecordset::IsSQLUpdatable(wchar_t const *) 5555 int CArchive::IsStoring()const 5556 int CFontDialog::IsStrikeOut()const 5557 int COleControl::IsSubclassedControl() 5558 int CFileFind::IsSystem()const 5559 int CFileFind::IsTemporary()const 5560 int CFindReplaceDialog::IsTerminating()const 5561 int CWnd::IsTopParentActive()const 5562 int CFrameWnd::IsTracking()const 5563 int CSplitterWnd::IsTracking() 5564 int CFontDialog::IsUnderline()const 5565 long CDocObjectServer::XOleObject::IsUpToDate() 5566 long COleControl::XOleObject::IsUpToDate() 5567 long COleServerDoc::XOleObject::IsUpToDate() 5568 long COleServerItem::XOleObject::IsUpToDate() 5569 int COleChangeSourceDialog::IsValidSource() 5570 int CControlBar::IsVisible()const 5571 int COleControlSite::IsWindowEnabled()const 5572 int CWnd::IsWindowEnabled()const 5573 int CWnd::IsWindowVisible()const 5574 int CPropertySheet::IsWizard()const 5575 int CWnd::IsZoomed()const 5576 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 5577 int CDragListBox::ItemFromPt(CPoint,int)const 5578 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 5579 void COleControl::KeyDown(unsigned short *) 5580 void COleControl::KeyUp(unsigned short *) 5581 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 5582 int CWnd::KillTimer(unsigned int) 5583 int CHeaderCtrl::Layout(_HD_LAYOUT *) 5584 void CToolBar::Layout() 5585 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5586 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5587 int CComboBox::LimitText(int) 5588 void CEdit::LimitText(int) 5589 void CRichEditCtrl::LimitText(long) 5590 int CEdit::LineFromChar(int)const 5591 long CRichEditCtrl::LineFromChar(long)const 5592 int CEdit::LineIndex(int)const 5593 int CRichEditCtrl::LineIndex(int)const 5594 int CEdit::LineLength(int)const 5595 int CRichEditCtrl::LineLength(int)const 5596 void CEdit::LineScroll(int,int) 5597 void CRichEditCtrl::LineScroll(int,int) 5598 int CDC::LineTo(int,int) 5599 int CDC::LineTo(tagPOINT) 5600 int CAsyncSocket::Listen(int) 5601 unsigned long CRichEditView::lMaxSize 5602 long CBlobProperty::Load(IStream *) 5603 int CDialogTemplate::Load(wchar_t const *) 5604 void COleControl::Load(wchar_t const *,CDataPathProperty &) 5605 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 5606 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 5607 long COleControl::XPersistMemory::Load(void *,unsigned long) 5608 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 5609 long COleControl::XPersistStorage::Load(IStorage *) 5610 long COleServerDoc::XPersistStorage::Load(IStorage *) 5611 long COleControl::XPersistStreamInit::Load(IStream *) 5612 int CFrameWnd::LoadAccelTable(wchar_t const *) 5613 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 5614 void CFrameWnd::LoadBarState(wchar_t const *) 5615 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 5616 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 5617 int CBitmap::LoadBitmapW(unsigned int) 5618 int CBitmap::LoadBitmapW(wchar_t const *) 5619 int CToolBar::LoadBitmapW(unsigned int) 5620 int CToolBar::LoadBitmapW(wchar_t const *) 5621 HICON__ * CWinApp::LoadCursorW(unsigned int)const 5622 HICON__ * CWinApp::LoadCursorW(wchar_t const *)const 5623 void CRecordset::LoadFields() 5624 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5625 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5626 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5627 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5628 int CDHtmlDialog::LoadFromResource(unsigned int) 5629 int CDHtmlDialog::LoadFromResource(wchar_t const *) 5630 int CHtmlView::LoadFromResource(unsigned int) 5631 int CHtmlView::LoadFromResource(wchar_t const *) 5632 void COleDocument::LoadFromStorage() 5633 HICON__ * CWinApp::LoadIconW(unsigned int)const 5634 HICON__ * CWinApp::LoadIconW(wchar_t const *)const 5635 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 5636 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 5637 int CMenu::LoadMenuIndirectW(void const *) 5638 int CMenu::LoadMenuW(unsigned int) 5639 int CMenu::LoadMenuW(wchar_t const *) 5640 int CBitmap::LoadOEMBitmap(unsigned int) 5641 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 5642 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 5643 HICON__ * CWinApp::LoadStandardCursor(wchar_t const *)const 5644 HICON__ * CWinApp::LoadStandardIcon(wchar_t const *)const 5645 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 5646 void CDockState::LoadState(wchar_t const *) 5647 long COleControl::LoadState(IStream *) 5648 void CWinApp::LoadStdProfileSettings(unsigned int) 5649 int ATL::CStringT > >::LoadStringW(unsigned int) 5650 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 5651 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 5652 int ATL::CStringT > >::LoadStringW(unsigned int) 5653 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 5654 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 5655 int CWinApp::LoadSysPolicies() 5656 void CDocTemplate::LoadTemplate() 5657 void CMultiDocTemplate::LoadTemplate() 5658 int CToolBar::LoadToolBar(unsigned int) 5659 int CToolBar::LoadToolBar(wchar_t const *) 5660 int CCriticalSection::Lock() 5661 int CCriticalSection::Lock(unsigned long) 5662 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 5663 void COleSafeArray::Lock() 5664 int CSingleLock::Lock(unsigned long) 5665 int CSyncObject::Lock(unsigned long) 5666 void CTypeLibCache::Lock() 5667 wchar_t * ATL::CSimpleStringT::LockBuffer() 5668 char * ATL::CSimpleStringT::LockBuffer() 5669 wchar_t const * CEditView::LockBuffer()const 5670 long COleControlContainer::XOleContainer::LockContainer(int) 5671 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 5672 void COleLinkingDoc::LockExternal(int,int) 5673 int COleControl::LockInPlaceActive(int) 5674 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 5675 void CFile::LockRange(unsigned __int64,unsigned __int64) 5676 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 5677 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 5678 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 5679 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 5680 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 5681 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5682 long COleObjectFactory::XClassFactory::LockServer(int) 5683 int CWnd::LockWindowUpdate() 5684 int CMapPtrToPtr::Lookup(void *,void * &)const 5685 int CMapPtrToWord::Lookup(void *,unsigned short &)const 5686 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 5687 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 5688 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 5689 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 5690 int CMapWordToPtr::Lookup(unsigned short,void * &)const 5691 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 5692 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 5693 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 5694 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 5695 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 5696 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 5697 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 5698 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 5699 void CDC::LPtoDP(tagPOINT *,int)const 5700 void CDC::LPtoDP(tagRECT *)const 5701 void CDC::LPtoDP(tagSIZE *)const 5702 void CDC::LPtoHIMETRIC(tagSIZE *)const 5703 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5704 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5705 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5706 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5707 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5708 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5709 int CToolBarCtrl::MapAccelerator(wchar_t,unsigned int *) 5710 void CDialog::MapDialogRect(tagRECT *)const 5711 void CPropertySheet::MapDialogRect(tagRECT *)const 5712 void CArchive::MapObject(CObject const *) 5713 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 5714 int COleDialog::MapResult(unsigned int) 5715 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 5716 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 5717 long CPropertyPage::MapWizardResult(long) 5718 void CRichEditCntrItem::Mark(int) 5719 int CToolBarCtrl::MarkButton(int,int) 5720 void CRecordset::MarkForAddNew() 5721 void CRecordset::MarkForUpdate() 5722 void CRichEditDoc::MarkItemsClear()const 5723 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 5724 int CFindReplaceDialog::MatchCase()const 5725 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 5726 int CFileFind::MatchesMask(unsigned long)const 5727 int CFindReplaceDialog::MatchWholeWord()const 5728 void CReBarCtrl::MaximizeBand(unsigned int) 5729 void CMDIChildWnd::MDIActivate() 5730 void CMDIFrameWnd::MDIActivate(CWnd *) 5731 void CMDIFrameWnd::MDICascade(int) 5732 void CMDIFrameWnd::MDICascade() 5733 void CMDIChildWnd::MDIDestroy() 5734 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 5735 void CMDIFrameWnd::MDIIconArrange() 5736 void CMDIChildWnd::MDIMaximize() 5737 void CMDIFrameWnd::MDIMaximize(CWnd *) 5738 void CMDIFrameWnd::MDINext() 5739 void CMDIFrameWnd::MDIPrev() 5740 void CMDIChildWnd::MDIRestore() 5741 void CMDIFrameWnd::MDIRestore(CWnd *) 5742 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 5743 void CMDIFrameWnd::MDITile(int) 5744 void CMDIFrameWnd::MDITile() 5745 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 5746 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 5747 void CComboBox::MeasureItem(tagMEASUREITEM*) 5748 void CListBox::MeasureItem(tagMEASUREITEM*) 5749 void CMenu::MeasureItem(tagMEASUREITEM*) 5750 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 5751 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 5752 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 5753 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 5754 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 5755 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5756 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5757 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5758 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5759 void CReBarCtrl::MinimizeBand(unsigned int) 5760 void CPreviewDC::MirrorAttributes() 5761 void CPreviewDC::MirrorFont() 5762 void CPreviewDC::MirrorMappingMode(int) 5763 void CPreviewDC::MirrorViewportOrg() 5764 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5765 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5766 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 5767 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 5768 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 5769 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5770 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5771 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 5772 void CDockContext::Move(CPoint) 5773 void CRecordset::Move(long,unsigned short) 5774 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 5775 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 5776 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 5777 void CRecordset::MoveFirst() 5778 void CRecordset::MoveLast() 5779 void CRecordset::MoveNext() 5780 void CRecordset::MovePrev() 5781 CPoint CDC::MoveTo(int,int) 5782 CPoint CDC::MoveTo(tagPOINT) 5783 void COleControlSite::MoveWindow(int,int,int,int) 5784 void CWnd::MoveWindow(int,int,int,int,int) 5785 void CWnd::MoveWindow(tagRECT const *,int) 5786 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5787 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5788 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 5789 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5790 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 5791 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 5792 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 5793 unsigned int COleDropSource::nDragDelay 5794 unsigned int COleDropSource::nDragMinDist 5795 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 5796 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 5797 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 5798 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 5799 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 5800 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 5801 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 5802 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 5803 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 5804 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 5805 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 5806 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 5807 void CDialog::NextDlgCtrl()const 5808 unsigned int const CEditView::nMaxSize 5809 int CRectTracker::NormalizeHit(int)const 5810 void CDataBoundProperty::Notify() 5811 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 5812 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 5813 void COleServerDoc::NotifyChanged() 5814 void COleServerItem::NotifyChanged(enum tagDVASPECT) 5815 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 5816 void COleServerDoc::NotifyClosed() 5817 void CFrameWnd::NotifyFloatingWindows(unsigned long) 5818 void COleServerDoc::NotifyRename(wchar_t const *) 5819 void COleServerDoc::NotifySaved() 5820 void CWnd::NotifyWinEvent(unsigned long,long,long) 5821 unsigned int COleDropTarget::nScrollDelay 5822 int COleDropTarget::nScrollInset 5823 unsigned int COleDropTarget::nScrollInterval 5824 void ATL::CStringT > >::OemToCharA() 5825 int CDC::OffsetClipRgn(int,int) 5826 int CDC::OffsetClipRgn(tagSIZE) 5827 int CProgressCtrl::OffsetPos(int) 5828 int CRgn::OffsetRgn(int,int) 5829 int CRgn::OffsetRgn(tagPOINT) 5830 CPoint CDC::OffsetViewportOrg(int,int) 5831 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 5832 CPoint CPreviewDC::OffsetViewportOrg(int,int) 5833 CPoint CDC::OffsetWindowOrg(int,int) 5834 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5835 void CAsyncSocket::OnAccept(int) 5836 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 5837 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 5838 void COleClientItem::OnActivate() 5839 void COleFrameHook::OnActivate(int) 5840 void CWnd::OnActivate(unsigned int,CWnd *,int) 5841 void CWnd::OnActivateApp(int,unsigned long) 5842 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 5843 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 5844 long COleControl::OnActivateInPlace(int,tagMSG *) 5845 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 5846 long CWnd::OnActivateTopLevel(unsigned int,long) 5847 void COleClientItem::OnActivateUI() 5848 long CDocObjectServer::OnActivateView() 5849 void CFormView::OnActivateView(int,CView *,CView *) 5850 void CPreviewView::OnActivateView(int,CView *,CView *) 5851 void CRichEditView::OnActivateView(int,CView *,CView *) 5852 void CView::OnActivateView(int,CView *,CView *) 5853 long CToolTipCtrl::OnAddTool(unsigned int,long) 5854 void CConnectionPoint::OnAdvise(int) 5855 void COleControl::XEventConnPt::OnAdvise(int) 5856 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 5857 void COleControl::OnAmbientPropertyChange(long) 5858 long COleControl::XOleControl::OnAmbientPropertyChange(long) 5859 void COleControl::OnAppearanceChanged() 5860 void CWinApp::OnAppExit() 5861 int CPropertyPage::OnApply() 5862 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 5863 void CDocObjectServer::OnApplyViewState(CArchive &) 5864 void CWnd::OnAskCbFormatName(unsigned int,wchar_t *) 5865 void COleControl::OnBackColorChanged() 5866 int CFrameWnd::OnBarCheck(unsigned int) 5867 int COleIPFrameWnd::OnBarCheck(unsigned int) 5868 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 5869 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 5870 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 5871 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 5872 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 5873 int COleDropSource::OnBeginDrag(CWnd *) 5874 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5875 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5876 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 5877 void COleControl::OnBorderStyleChanged() 5878 void CRichEditView::OnBullet() 5879 int COleMessageFilter::OnBusyDialog(HTASK__ *) 5880 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 5881 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 5882 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 5883 void CCommonDialog::OnCancel() 5884 void CDialog::OnCancel() 5885 void CPropertyPage::OnCancel() 5886 void CRichEditView::OnCancelEditCntr() 5887 void COleControl::OnCancelMode() 5888 void CSplitterWnd::OnCancelMode() 5889 void CWnd::OnCancelMode() 5890 void CWnd::OnCaptureChanged(CWnd *) 5891 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 5892 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 5893 long COleControl::XFontNotification::OnChanged(long) 5894 long COleControlSite::XPropertyNotifySink::OnChanged(long) 5895 long COlePropertyPage::XPropNotifySink::OnChanged(long) 5896 void CRectTracker::OnChangedRect(CRect const &) 5897 void CDocument::OnChangedViewList() 5898 int COleClientItem::OnChangeItemPosition(CRect const &) 5899 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 5900 void CWnd::OnChangeUIState(unsigned int,unsigned int) 5901 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 5902 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 5903 void CRichEditView::OnCharBold() 5904 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 5905 void CRichEditView::OnCharItalic() 5906 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 5907 void CRichEditView::OnCharUnderline() 5908 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 5909 void CWnd::OnChildActivate() 5910 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 5911 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5912 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5913 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5914 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5915 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5916 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5917 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 5918 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 5919 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 5920 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5921 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5922 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 5923 void COleControl::OnClick(unsigned short) 5924 CEnumArray * CEnumArray::OnClone() 5925 CEnumArray * CEnumConnections::OnClone() 5926 void CAsyncSocket::OnClose(int) 5927 void CControlFrameWnd::OnClose() 5928 void CFrameWnd::OnClose() 5929 void CMiniDockFrameWnd::OnClose() 5930 void COleControl::OnClose(unsigned long) 5931 void COleServerDoc::OnClose(enum tagOLECLOSE) 5932 void CPropertySheet::OnClose() 5933 void CWnd::OnClose() 5934 void COleClientItem::XAdviseSink::OnClose() 5935 void CDocObjectServer::OnCloseDocument() 5936 void CDocument::OnCloseDocument() 5937 void COleDocument::OnCloseDocument() 5938 void COleLinkingDoc::OnCloseDocument() 5939 void COleServerDoc::OnCloseDocument() 5940 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5941 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5942 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5943 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5944 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5945 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5946 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5947 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5948 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5949 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5950 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5951 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5952 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5953 void CRichEditView::OnColorDefault() 5954 int CColorDialog::OnColorOK() 5955 void CRichEditView::OnColorPick(unsigned long) 5956 int CFrameWnd::OnCommand(unsigned int,long) 5957 int CMDIFrameWnd::OnCommand(unsigned int,long) 5958 int COlePropertyPage::OnCommand(unsigned int,long) 5959 int CPropertySheet::OnCommand(unsigned int,long) 5960 int CSplitterWnd::OnCommand(unsigned int,long) 5961 int CWnd::OnCommand(unsigned int,long) 5962 long CDialog::OnCommandHelp(unsigned int,long) 5963 long CFrameWnd::OnCommandHelp(unsigned int,long) 5964 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 5965 long CPropertySheet::OnCommandHelp(unsigned int,long) 5966 void CHtmlView::OnCommandStateChange(long,int) 5967 void CWnd::OnCompacting(unsigned int) 5968 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 5969 void CAsyncSocket::OnConnect(int) 5970 void CFrameWnd::OnContextHelp() 5971 int COleFrameHook::OnContextHelp(int) 5972 void COleIPFrameWnd::OnContextHelp() 5973 void CWinApp::OnContextHelp() 5974 void CWnd::OnContextMenu(CWnd *,CPoint) 5975 long COleControlSite::XOleControlSite::OnControlInfoChanged() 5976 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 5977 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 5978 int CControlBar::OnCreate(tagCREATESTRUCTW *) 5979 int CEditView::OnCreate(tagCREATESTRUCTW *) 5980 int CFormView::OnCreate(tagCREATESTRUCTW *) 5981 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 5982 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 5983 int COleControl::OnCreate(tagCREATESTRUCTW *) 5984 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 5985 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 5986 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 5987 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 5988 int CView::OnCreate(tagCREATESTRUCTW *) 5989 int CWnd::OnCreate(tagCREATESTRUCTW *) 5990 int CCmdTarget::OnCreateAggregates() 5991 int COleControl::OnCreateAggregates() 5992 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 5993 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 5994 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 5995 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 5996 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 5997 CCmdTarget * COleObjectFactory::OnCreateObject() 5998 CCmdTarget * COleTemplateServer::OnCreateObject() 5999 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 6000 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6001 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6002 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 6003 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 6004 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 6005 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 6006 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6007 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6008 int CDocManager::OnDDECommand(wchar_t *) 6009 int CWinApp::OnDDECommand(wchar_t *) 6010 long CFrameWnd::OnDDEExecute(unsigned int,long) 6011 long CFrameWnd::OnDDEInitiate(unsigned int,long) 6012 long CFrameWnd::OnDDETerminate(unsigned int,long) 6013 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 6014 void COleClientItem::OnDeactivate() 6015 void COleServerDoc::OnDeactivate() 6016 void COleClientItem::OnDeactivateAndUndo() 6017 void COleClientItem::OnDeactivateUI(int) 6018 void COleServerDoc::OnDeactivateUI(int) 6019 void CRichEditCntrItem::OnDeactivateUI(int) 6020 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 6021 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 6022 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 6023 void CControlBar::OnDestroy() 6024 void CDHtmlDialog::OnDestroy() 6025 void CEditView::OnDestroy() 6026 void CFrameWnd::OnDestroy() 6027 void CHtmlView::OnDestroy() 6028 void CMDIChildWnd::OnDestroy() 6029 void CMDIFrameWnd::OnDestroy() 6030 void COleControl::OnDestroy() 6031 void COleIPFrameWnd::OnDestroy() 6032 void CRichEditView::OnDestroy() 6033 void CTabCtrl::OnDestroy() 6034 void CTreeCtrl::OnDestroy() 6035 void CTreeView::OnDestroy() 6036 void CView::OnDestroy() 6037 void CWnd::OnDestroy() 6038 void CWnd::OnDestroyClipboard() 6039 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 6040 int CWnd::OnDeviceChange(unsigned int,unsigned long) 6041 void CRichEditView::OnDevModeChange(wchar_t *) 6042 void CWnd::OnDevModeChange(wchar_t *) 6043 long CToolTipCtrl::OnDisableModal(unsigned int,long) 6044 void COleClientItem::OnDiscardUndoState() 6045 void CSplitterWnd::OnDisplayChange() 6046 long CWnd::OnDisplayChange(unsigned int,long) 6047 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 6048 int COleFrameHook::OnDocActivate(int) 6049 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 6050 void CHtmlView::OnDocumentComplete(wchar_t const *) 6051 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 6052 long CBrowserControlSite::OnDocWindowActivate(int) 6053 long CDHtmlDialog::OnDocWindowActivate(int) 6054 long CHtmlView::OnDocWindowActivate(int) 6055 void COleServerDoc::OnDocWindowActivate(int) 6056 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 6057 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6058 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6059 void CDocObjectServerItem::OnDoVerb(long) 6060 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 6061 void COleServerItem::OnDoVerb(long) 6062 void CHtmlView::OnDownloadBegin() 6063 void CHtmlView::OnDownloadComplete() 6064 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 6065 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 6066 void COleDropTarget::OnDragLeave(CWnd *) 6067 void CView::OnDragLeave() 6068 long CWnd::OnDragList(unsigned int,long) 6069 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 6070 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 6071 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 6072 unsigned long CView::OnDragScroll(unsigned long,CPoint) 6073 void CCtrlView::OnDraw(CDC *) 6074 void CFormView::OnDraw(CDC *) 6075 void CHtmlView::OnDraw(CDC *) 6076 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 6077 void CPreviewView::OnDraw(CDC *) 6078 void CView::OnDraw(CDC *) 6079 void CWnd::OnDrawClipboard() 6080 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 6081 void CWnd::OnDrawItem(int,tagDRAWITEM*) 6082 void COleControl::OnDrawMetafile(CDC *,CRect const &) 6083 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 6084 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 6085 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 6086 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 6087 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 6088 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 6089 void CFrameWnd::OnDropFiles(HDROP__ *) 6090 void CRichEditView::OnDropFiles(HDROP__ *) 6091 void CWnd::OnDropFiles(HDROP__ *) 6092 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 6093 int CEditView::OnEditChange() 6094 void COleDocument::OnEditChangeIcon() 6095 void CEditView::OnEditClear() 6096 void CRichEditView::OnEditClear() 6097 void COleDocument::OnEditConvert() 6098 void CEditView::OnEditCopy() 6099 void CHtmlView::OnEditCopy() 6100 void CRichEditView::OnEditCopy() 6101 void CEditView::OnEditCut() 6102 void CHtmlView::OnEditCut() 6103 void CRichEditView::OnEditCut() 6104 void CEditView::OnEditFind() 6105 void CRichEditView::OnEditFind() 6106 void CEditView::OnEditFindReplace(int) 6107 void CRichEditView::OnEditFindReplace(int) 6108 void COleDocument::OnEditLinks() 6109 void CEditView::OnEditPaste() 6110 void CHtmlView::OnEditPaste() 6111 void CRichEditView::OnEditPaste() 6112 void CRichEditView::OnEditPasteSpecial() 6113 void CRichEditView::OnEditProperties() 6114 int COlePropertyPage::OnEditProperty(long) 6115 void CRichEditView::OnEditRedo() 6116 void CEditView::OnEditRepeat() 6117 void CRichEditView::OnEditRepeat() 6118 void CEditView::OnEditReplace() 6119 void CRichEditView::OnEditReplace() 6120 void CEditView::OnEditSelectAll() 6121 void CRichEditView::OnEditSelectAll() 6122 void CEditView::OnEditUndo() 6123 void CRichEditView::OnEditUndo() 6124 void CFrameWnd::OnEnable(int) 6125 void CToolTipCtrl::OnEnable(int) 6126 void CWnd::OnEnable(int) 6127 void COleControl::OnEnabledChanged() 6128 long CHtmlView::OnEnableModeless(int) 6129 void COleFrameHook::OnEnableModeless(int) 6130 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 6131 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 6132 void CView::OnEndPrinting(CDC *,CPrintInfo *) 6133 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 6134 void CFrameWnd::OnEndSession(int) 6135 void CWnd::OnEndSession(int) 6136 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 6137 void COleControl::OnEnterIdle(unsigned int,CWnd *) 6138 void CWnd::OnEnterIdle(unsigned int,CWnd *) 6139 void CWnd::OnEnterMenuLoop(int) 6140 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 6141 int CFrameWnd::OnEraseBkgnd(CDC *) 6142 int COleControl::OnEraseBkgnd(CDC *) 6143 int COleResizeBar::OnEraseBkgnd(CDC *) 6144 int CPreviewView::OnEraseBkgnd(CDC *) 6145 int CReBar::OnEraseBkgnd(CDC *) 6146 int CToolBar::OnEraseBkgnd(CDC *) 6147 int CWnd::OnEraseBkgnd(CDC *) 6148 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6149 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6150 int COleControlSite::OnEvent(AFX_EVENT *) 6151 void COleControl::OnEventAdvise(int) 6152 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6153 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6154 void CWnd::OnExitMenuLoop(int) 6155 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6156 void CDocument::OnFileClose() 6157 void CFileDialog::OnFileNameChange() 6158 int CFileDialog::OnFileNameOK() 6159 void CDocManager::OnFileNew() 6160 void CWinApp::OnFileNew() 6161 void CDocManager::OnFileOpen() 6162 void CWinApp::OnFileOpen() 6163 void CHtmlView::OnFilePrint() 6164 void CView::OnFilePrint() 6165 void CView::OnFilePrintPreview() 6166 void CWinApp::OnFilePrintSetup() 6167 void CDocument::OnFileSave() 6168 void CDocument::OnFileSaveAs() 6169 void COleServerDoc::OnFileSaveCopyAs() 6170 void CDocument::OnFileSendMail() 6171 void COleDocument::OnFileSendMail() 6172 void COleServerDoc::OnFileUpdate() 6173 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 6174 void CCmdTarget::OnFinalRelease() 6175 void CDocument::OnFinalRelease() 6176 void COleControl::OnFinalRelease() 6177 void COlePropertyPage::OnFinalRelease() 6178 void COleServerItem::OnFinalRelease() 6179 void CWnd::OnFinalRelease() 6180 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 6181 void CEditView::OnFindNext(wchar_t const *,int,int) 6182 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 6183 long CEditView::OnFindReplaceCmd(unsigned int,long) 6184 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 6185 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 6186 long COleControlSite::XOleControlSite::OnFocus(int) 6187 void CFileDialog::OnFolderChange() 6188 void CWnd::OnFontChange() 6189 void COleControl::OnFontChanged() 6190 void COleControl::OnForeColorChanged() 6191 void CRichEditView::OnFormatFont() 6192 void COleControl::OnFrameClose() 6193 long CBrowserControlSite::OnFrameWindowActivate(int) 6194 long CDHtmlDialog::OnFrameWindowActivate(int) 6195 long CHtmlView::OnFrameWindowActivate(int) 6196 void COleServerDoc::OnFrameWindowActivate(int) 6197 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 6198 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6199 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6200 void COleControl::OnFreezeEvents(int) 6201 void CHtmlView::OnFullScreen(int) 6202 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 6203 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6204 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6205 void COleClientItem::OnGetClipRect(CRect &) 6206 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 6207 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 6208 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 6209 unsigned int COleControl::OnGetDlgCode() 6210 unsigned int CWnd::OnGetDlgCode() 6211 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 6212 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 6213 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6214 long CHtmlView::OnGetExternal(IDispatch * *) 6215 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6216 HMENU__ * COleControl::OnGetInPlaceMenu() 6217 void COleClientItem::OnGetItemPosition(CRect &) 6218 void COleDocObjectItem::OnGetItemPosition(CRect &) 6219 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 6220 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 6221 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6222 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6223 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6224 long CWnd::OnGetObject(unsigned int,long) 6225 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6226 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6227 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6228 long CStatusBar::OnGetText(unsigned int,long) 6229 long CStatusBar::OnGetTextLength(unsigned int,long) 6230 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6231 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6232 unsigned long COleControl::OnGetViewStatus() 6233 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6234 void CReBar::OnHeightChange(tagNMHDR *,long *) 6235 void CFrameWnd::OnHelp() 6236 int COlePropertyPage::OnHelp(wchar_t const *) 6237 void CWinApp::OnHelp() 6238 void CWnd::OnHelp() 6239 void CWinApp::OnHelpFinder() 6240 void CWnd::OnHelpFinder() 6241 long CControlBar::OnHelpHitTest(unsigned int,long) 6242 long CDialog::OnHelpHitTest(unsigned int,long) 6243 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6244 void CWinApp::OnHelpIndex() 6245 void CWnd::OnHelpIndex() 6246 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6247 int CWnd::OnHelpInfo(tagHELPINFO *) 6248 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6249 void CWinApp::OnHelpUsing() 6250 void CWnd::OnHelpUsing() 6251 void CDocObjectServerItem::OnHide() 6252 long COleControl::OnHide() 6253 void COleServerItem::OnHide() 6254 void COleControl::OnHideToolBars() 6255 long CHtmlView::OnHideUI() 6256 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6257 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6258 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6259 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6260 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6261 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6262 void CWnd::OnIconEraseBkgnd(CDC *) 6263 void CDocTemplate::OnIdle() 6264 void CDocument::OnIdle() 6265 void COleDocument::OnIdle() 6266 int CWinApp::OnIdle(long) 6267 int CWinThread::OnIdle(long) 6268 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6269 void CFrameWnd::OnIdleUpdateCmdUI() 6270 void CMDIFrameWnd::OnIdleUpdateCmdUI() 6271 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 6272 void COleIPFrameWnd::OnIdleUpdateCmdUI() 6273 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6274 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6275 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6276 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6277 int CDHtmlDialog::OnInitDialog() 6278 int CDialog::OnInitDialog() 6279 int COlePropertiesDialog::OnInitDialog() 6280 int COlePropertyPage::OnInitDialog() 6281 int CPropertySheet::OnInitDialog() 6282 void CFileDialog::OnInitDone() 6283 int COleServerItem::OnInitFromData(COleDataObject *,int) 6284 void CControlBar::OnInitialUpdate() 6285 void CFormView::OnInitialUpdate() 6286 void COleDBRecordView::OnInitialUpdate() 6287 void CRecordView::OnInitialUpdate() 6288 void CRichEditView::OnInitialUpdate() 6289 void CView::OnInitialUpdate() 6290 void CFrameWnd::OnInitMenu(CMenu *) 6291 void COleFrameHook::OnInitMenu(CMenu *) 6292 void CWnd::OnInitMenu(CMenu *) 6293 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6294 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6295 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6296 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6297 long COleClientItem::XOleIPSite::OnInPlaceActivate() 6298 long COleControlSite::XOleIPSite::OnInPlaceActivate() 6299 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6300 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 6301 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 6302 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6303 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6304 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6305 void CRichEditView::OnInsertObject() 6306 void CSplitterWnd::OnInvertTracker(CRect const &) 6307 void CDockContext::OnKey(int,int) 6308 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6309 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6310 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6311 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6312 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6313 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6314 void COleControl::OnKeyPressEvent(unsigned short) 6315 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6316 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6317 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6318 long CPropertySheet::OnKickIdle(unsigned int,long) 6319 int CPropertyPage::OnKillActive() 6320 void COleControl::OnKillFocus(CWnd *) 6321 void CWnd::OnKillFocus(CWnd *) 6322 long CCheckListBox::OnLBAddString(unsigned int,long) 6323 long CCheckListBox::OnLBFindString(unsigned int,long) 6324 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6325 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6326 long CCheckListBox::OnLBGetText(unsigned int,long) 6327 long CCheckListBox::OnLBInsertString(unsigned int,long) 6328 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6329 long CCheckListBox::OnLBSelectString(unsigned int,long) 6330 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6331 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6332 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6333 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6334 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6335 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6336 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6337 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6338 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6339 void COleControl::OnLButtonDown(unsigned int,CPoint) 6340 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6341 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6342 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6343 void CWnd::OnLButtonDown(unsigned int,CPoint) 6344 void COleControl::OnLButtonUp(unsigned int,CPoint) 6345 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6346 void CWnd::OnLButtonUp(unsigned int,CPoint) 6347 void CAsyncMonikerFile::OnLowResource() 6348 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6349 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6350 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6351 void COleControl::OnMButtonDown(unsigned int,CPoint) 6352 void CWnd::OnMButtonDown(unsigned int,CPoint) 6353 void COleControl::OnMButtonUp(unsigned int,CPoint) 6354 void CWnd::OnMButtonUp(unsigned int,CPoint) 6355 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6356 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6357 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6358 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6359 void CHtmlView::OnMenuBar(int) 6360 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6361 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6362 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6363 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6364 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6365 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6366 int COleMessageFilter::OnMessagePending(tagMSG const *) 6367 int CSocket::OnMessagePending() 6368 void COleControl::OnMnemonic(tagMSG *) 6369 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6370 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6371 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6372 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6373 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6374 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6375 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6376 void COleControl::OnMouseMove(unsigned int,CPoint) 6377 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6378 void CWnd::OnMouseMove(unsigned int,CPoint) 6379 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6380 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6381 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6382 void COleControl::OnMove(int,int) 6383 int COleDBRecordView::OnMove(unsigned int) 6384 void CRecordView::OnMove(int,int) 6385 int CRecordView::OnMove(unsigned int) 6386 void CWnd::OnMove(int,int) 6387 void CWnd::OnMoving(unsigned int,tagRECT *) 6388 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6389 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6390 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 6391 void CHtmlView::OnNavigateComplete2(wchar_t const *) 6392 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 6393 int CFrameWnd::OnNcActivate(int) 6394 int CMDIChildWnd::OnNcActivate(int) 6395 int CMiniFrameWnd::OnNcActivate(int) 6396 int CWnd::OnNcActivate(int) 6397 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6398 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6399 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6400 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6401 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6402 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6403 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 6404 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 6405 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 6406 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 6407 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 6408 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 6409 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 6410 int CWnd::OnNcCreate(tagCREATESTRUCTW *) 6411 void CListCtrl::OnNcDestroy() 6412 void CListView::OnNcDestroy() 6413 void CWnd::OnNcDestroy() 6414 unsigned int CMiniFrameWnd::OnNcHitTest(CPoint) 6415 unsigned int COleControl::OnNcHitTest(CPoint) 6416 unsigned int CStatusBar::OnNcHitTest(CPoint) 6417 unsigned int CToolBar::OnNcHitTest(CPoint) 6418 unsigned int CWnd::OnNcHitTest(CPoint) 6419 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6420 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6421 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6422 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6423 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6424 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6425 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6426 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6427 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6428 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6429 void CDockBar::OnNcPaint() 6430 void COleControl::OnNcPaint() 6431 void CReBar::OnNcPaint() 6432 void CStatusBar::OnNcPaint() 6433 void CToolBar::OnNcPaint() 6434 void CWnd::OnNcPaint() 6435 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6436 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6437 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6438 int CDocument::OnNewDocument() 6439 int CHtmlEditDoc::OnNewDocument() 6440 int COleDocument::OnNewDocument() 6441 int COleLinkingDoc::OnNewDocument() 6442 void COleServerDoc::OnNewEmbedding(IStorage *) 6443 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6444 int CEnumArray::OnNext(void *) 6445 int CEnumConnections::OnNext(void *) 6446 int CEnumConnPoints::OnNext(void *) 6447 int CEnumFormatEtc::OnNext(void *) 6448 int CEnumOleVerb::OnNext(void *) 6449 int CEnumUnknown::OnNext(void *) 6450 void CPreviewView::OnNextPage() 6451 int CView::OnNextPaneCmd(unsigned int) 6452 int CFileDialog::OnNotify(unsigned int,long,long *) 6453 int CPropertyPage::OnNotify(unsigned int,long,long *) 6454 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6455 int CWnd::OnNotify(unsigned int,long,long *) 6456 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6457 long CWnd::OnNTCtlColor(unsigned int,long) 6458 void CPreviewView::OnNumPageChange() 6459 void COlePropertyPage::OnObjectsChanged() 6460 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6461 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6462 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6463 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6464 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6465 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6466 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6467 void CCommonDialog::OnOK() 6468 void CDialog::OnOK() 6469 void CPropertyPage::OnOK() 6470 long COleControl::OnOpen(int,tagMSG *) 6471 void COleServerItem::OnOpen() 6472 int CDocument::OnOpenDocument(wchar_t const *) 6473 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 6474 int COleDocument::OnOpenDocument(wchar_t const *) 6475 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 6476 void COleServerDoc::OnOpenEmbedding(IStorage *) 6477 int CWinApp::OnOpenRecentFile(unsigned int) 6478 void CAsyncSocket::OnOutOfBandData(int) 6479 void CCommonDialog::OnPaint() 6480 void CControlBar::OnPaint() 6481 void CCtrlView::OnPaint() 6482 void CDialog::OnPaint() 6483 void CDockBar::OnPaint() 6484 void CHtmlEditView::OnPaint() 6485 void CHtmlView::OnPaint() 6486 void COleControl::OnPaint(CDC *) 6487 int COleControlContainer::OnPaint(CDC *) 6488 void COleResizeBar::OnPaint() 6489 void CReBar::OnPaint() 6490 void CSplitterWnd::OnPaint() 6491 void CStatusBar::OnPaint() 6492 void CToolBar::OnPaint() 6493 void CView::OnPaint() 6494 void CWnd::OnPaint() 6495 void CWnd::OnPaintClipboard(CWnd *,void *) 6496 void CFrameWnd::OnPaletteChanged(CWnd *) 6497 void COleFrameHook::OnPaletteChanged(CWnd *) 6498 void CWnd::OnPaletteChanged(CWnd *) 6499 void CWnd::OnPaletteIsChanging(CWnd *) 6500 void CRichEditView::OnParaAlign(unsigned short) 6501 void CRichEditView::OnParaCenter() 6502 void CRichEditView::OnParaLeft() 6503 void CRichEditView::OnParaRight() 6504 void CWnd::OnParentNotify(unsigned int,long) 6505 int CRichEditView::OnPasteNativeObject(IStorage *) 6506 long CFrameWnd::OnPopMessageString(unsigned int,long) 6507 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 6508 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 6509 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 6510 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 6511 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 6512 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 6513 void CView::OnPrepareDC(CDC *,CPrintInfo *) 6514 int CEditView::OnPreparePrinting(CPrintInfo *) 6515 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 6516 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6517 int CView::OnPreparePrinting(CPrintInfo *) 6518 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6519 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 6520 void CPreviewView::OnPreviewClose() 6521 void CPreviewView::OnPreviewPrint() 6522 void CPreviewView::OnPrevPage() 6523 void CEditView::OnPrint(CDC *,CPrintInfo *) 6524 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6525 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 6526 void CView::OnPrint(CDC *,CPrintInfo *) 6527 void CRichEditView::OnPrinterChanged(CDC const &) 6528 void CPrintDialog::OnPrintSetup() 6529 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 6530 void CHtmlView::OnProgressChange(long,long) 6531 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 6532 void CHtmlView::OnPropertyChange(wchar_t const *) 6533 int CPropertyPage::OnQueryCancel() 6534 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 6535 HICON__ * CWnd::OnQueryDragIcon() 6536 int CFrameWnd::OnQueryEndSession() 6537 int CWnd::OnQueryEndSession() 6538 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6539 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6540 int CFrameWnd::OnQueryNewPalette() 6541 int COleFrameHook::OnQueryNewPalette() 6542 int CWnd::OnQueryNewPalette() 6543 int CWnd::OnQueryOpen() 6544 unsigned int CWnd::OnQueryUIState() 6545 int COleServerItem::OnQueryUpdateItems() 6546 void CHtmlView::OnQuit() 6547 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 6548 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 6549 void COleControl::OnRButtonDown(unsigned int,CPoint) 6550 void CWnd::OnRButtonDown(unsigned int,CPoint) 6551 void COleControl::OnRButtonUp(unsigned int,CPoint) 6552 void CWnd::OnRButtonUp(unsigned int,CPoint) 6553 int COleServerDoc::OnReactivateAndUndo() 6554 void COleFrameHook::OnRecalcLayout() 6555 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 6556 void CReBar::OnRecalcParent() 6557 void CAsyncSocket::OnReceive(int) 6558 void COleControl::OnReflectorDestroyed() 6559 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6560 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 6561 void COleClientItem::OnRemoveMenus(CMenu *) 6562 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6563 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 6564 void CWnd::OnRenderAllFormats() 6565 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6566 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6567 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6568 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6569 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6570 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6571 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6572 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 6573 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6574 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 6575 void CWnd::OnRenderFormat(unsigned int) 6576 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6577 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6578 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 6579 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6580 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 6581 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 6582 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 6583 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 6584 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 6585 long COleControl::XFontNotification::OnRequestEdit(long) 6586 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 6587 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 6588 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6589 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6590 void CEnumArray::OnReset() 6591 void CPropertyPage::OnReset() 6592 void COleControl::OnResetState() 6593 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6594 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6595 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 6596 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6597 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6598 void COleClientItem::XAdviseSink::OnSave() 6599 int CDocument::OnSaveDocument(wchar_t const *) 6600 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 6601 int COleDocument::OnSaveDocument(wchar_t const *) 6602 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 6603 int COleServerDoc::OnSaveDocument(wchar_t const *) 6604 void COleServerDoc::OnSaveEmbedding(IStorage *) 6605 void COleServerItem::OnSaveEmbedding(IStorage *) 6606 void CDocObjectServer::OnSaveViewState(CArchive &) 6607 int CScrollView::OnScroll(unsigned int,unsigned int,int) 6608 int CView::OnScroll(unsigned int,unsigned int,int) 6609 int COleClientItem::OnScrollBy(CSize) 6610 int CScrollView::OnScrollBy(CSize,int) 6611 int CView::OnScrollBy(CSize,int) 6612 void CRichEditView::OnSelChange(tagNMHDR *,long *) 6613 void CAsyncSocket::OnSend(int) 6614 int CPropertyPage::OnSetActive() 6615 long CToolBar::OnSetBitmapSize(unsigned int,long) 6616 long CToolBar::OnSetButtonSize(unsigned int,long) 6617 void COleControl::OnSetClientSite() 6618 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 6619 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6620 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 6621 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 6622 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 6623 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6624 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6625 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6626 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6627 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6628 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6629 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6630 long CPropertySheet::OnSetDefID(unsigned int,long) 6631 int COleControl::OnSetExtent(tagSIZE *) 6632 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 6633 void CFormView::OnSetFocus(CWnd *) 6634 void CFrameWnd::OnSetFocus(CWnd *) 6635 void COleControl::OnSetFocus(CWnd *) 6636 void CWnd::OnSetFocus(CWnd *) 6637 long CCheckListBox::OnSetFont(unsigned int,long) 6638 void CDialog::OnSetFont(CFont *) 6639 long CEditView::OnSetFont(unsigned int,long) 6640 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 6641 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 6642 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 6643 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 6644 long CFrameWnd::OnSetMessageString(unsigned int,long) 6645 long COleControl::OnSetMessageString(unsigned int,long) 6646 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 6647 long CStatusBar::OnSetMinHeight(unsigned int,long) 6648 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 6649 void CDatabase::OnSetOptions(void *) 6650 void CRecordset::OnSetOptions(void *) 6651 void COlePropertyPage::OnSetPageSite() 6652 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 6653 long CToolBar::OnSetSizeHelper(CSize &,long) 6654 long COleControl::OnSetText(unsigned int,long) 6655 long CStatusBar::OnSetText(unsigned int,long) 6656 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 6657 void CRecordset::OnSetUpdateOptions(void *) 6658 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 6659 void CDocObjectServerItem::OnShow() 6660 void COleServerItem::OnShow() 6661 long CReBar::OnShowBand(unsigned int,long) 6662 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6663 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 6664 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 6665 void COleServerDoc::OnShowDocument(int) 6666 void COleClientItem::OnShowItem() 6667 void COleControl::OnShowToolBars() 6668 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6669 void COleDocument::OnShowViews(int) 6670 void COleLinkingDoc::OnShowViews(int) 6671 void COleControl::OnShowWindow(int,unsigned int) 6672 void CWnd::OnShowWindow(int,unsigned int) 6673 long COleClientItem::XOleClientSite::OnShowWindow(int) 6674 long COleControlSite::XOleClientSite::OnShowWindow(int) 6675 void CDHtmlDialog::OnSize(unsigned int,int,int) 6676 void CFrameWnd::OnSize(unsigned int,int,int) 6677 void CHtmlView::OnSize(unsigned int,int,int) 6678 void CMDIChildWnd::OnSize(unsigned int,int,int) 6679 void CMDIFrameWnd::OnSize(unsigned int,int,int) 6680 void COleControl::OnSize(unsigned int,int,int) 6681 void COleIPFrameWnd::OnSize(unsigned int,int,int) 6682 void COleResizeBar::OnSize(unsigned int,int,int) 6683 void CPreviewView::OnSize(unsigned int,int,int) 6684 void CScrollView::OnSize(unsigned int,int,int) 6685 void CSplitterWnd::OnSize(unsigned int,int,int) 6686 void CStatusBar::OnSize(unsigned int,int,int) 6687 void CWnd::OnSize(unsigned int,int,int) 6688 void CWnd::OnSizeClipboard(CWnd *,void *) 6689 long CControlBar::OnSizeParent(unsigned int,long) 6690 long CDockBar::OnSizeParent(unsigned int,long) 6691 long COleResizeBar::OnSizeParent(unsigned int,long) 6692 void CWnd::OnSizing(unsigned int,tagRECT *) 6693 int CEnumArray::OnSkip() 6694 long CSocketWnd::OnSocketDead(unsigned int,long) 6695 long CSocketWnd::OnSocketNotify(unsigned int,long) 6696 int CView::OnSplitCmd(unsigned int) 6697 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 6698 void CAsyncMonikerFile::OnStartBinding() 6699 void CHtmlView::OnStatusBar(int) 6700 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 6701 void CHtmlView::OnStatusTextChange(wchar_t const *) 6702 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 6703 void CWnd::OnStyleChanged(int,tagSTYLE*) 6704 void CWnd::OnStyleChanging(int,tagSTYLE*) 6705 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 6706 void CToolBar::OnSysColorChange() 6707 void CWnd::OnSysColorChange() 6708 void CFrameWnd::OnSysCommand(unsigned int,long) 6709 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 6710 void CPropertySheet::OnSysCommand(unsigned int,long) 6711 void CSplitterWnd::OnSysCommand(unsigned int,long) 6712 void CWnd::OnSysCommand(unsigned int,long) 6713 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 6714 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6715 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6716 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6717 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6718 void CWnd::OnTCard(unsigned int,unsigned long) 6719 void COleControl::OnTextChanged() 6720 void CEditView::OnTextNotFound(wchar_t const *) 6721 void CRichEditView::OnTextNotFound(wchar_t const *) 6722 void CHtmlView::OnTheaterMode(int) 6723 void CWnd::OnTimeChange() 6724 void CControlBar::OnTimer(unsigned int) 6725 void CWnd::OnTimer(unsigned int) 6726 void CHtmlView::OnTitleChange(wchar_t const *) 6727 void CHtmlView::OnToolBar(int) 6728 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6729 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6730 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6731 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6732 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6733 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 6734 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6735 void CFileDialog::OnTypeChange() 6736 void COleControlContainer::OnUIActivate(COleControlSite *) 6737 long COleClientItem::XOleIPSite::OnUIActivate() 6738 long COleControlSite::XOleIPSite::OnUIActivate() 6739 void COleControlContainer::OnUIDeactivate(COleControlSite *) 6740 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 6741 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 6742 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 6743 void CView::OnUpdate(CView *,long,CObject *) 6744 void CRichEditView::OnUpdateBullet(CCmdUI *) 6745 void CRichEditView::OnUpdateCharBold(CCmdUI *) 6746 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 6747 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 6748 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 6749 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 6750 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 6751 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 6752 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6753 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 6754 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 6755 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 6756 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6757 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6758 int COleServerDoc::OnUpdateDocument() 6759 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 6760 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 6761 void CHtmlView::OnUpdateEditCut(CCmdUI *) 6762 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 6763 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 6764 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 6765 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 6766 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 6767 void CEditView::OnUpdateEditUndo(CCmdUI *) 6768 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 6769 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 6770 void CDocument::OnUpdateFileSendMail(CCmdUI *) 6771 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 6772 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6773 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 6774 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6775 void CFrameWnd::OnUpdateFrameTitle(int) 6776 void CMDIChildWnd::OnUpdateFrameTitle(int) 6777 void CMDIFrameWnd::OnUpdateFrameTitle(int) 6778 int COleClientItem::OnUpdateFrameTitle() 6779 int COleFrameHook::OnUpdateFrameTitle() 6780 void COleServerItem::OnUpdateItems() 6781 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 6782 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 6783 void CEditView::OnUpdateNeedClip(CCmdUI *) 6784 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 6785 void CEditView::OnUpdateNeedFind(CCmdUI *) 6786 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 6787 void CEditView::OnUpdateNeedSel(CCmdUI *) 6788 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 6789 void CEditView::OnUpdateNeedText(CCmdUI *) 6790 void CRichEditView::OnUpdateNeedText(CCmdUI *) 6791 void CPreviewView::OnUpdateNextPage(CCmdUI *) 6792 void CView::OnUpdateNextPaneMenu(CCmdUI *) 6793 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 6794 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 6795 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 6796 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 6797 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 6798 void CRichEditView::OnUpdateParaRight(CCmdUI *) 6799 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 6800 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 6801 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 6802 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 6803 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6804 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 6805 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6806 void CRecordView::OnUpdateRecordLast(CCmdUI *) 6807 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6808 void CRecordView::OnUpdateRecordNext(CCmdUI *) 6809 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6810 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 6811 void CView::OnUpdateSplitCmd(CCmdUI *) 6812 long CHtmlView::OnUpdateUI() 6813 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 6814 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 6815 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 6816 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 6817 void CHtmlView::OnVisible(int) 6818 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 6819 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6820 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6821 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6822 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6823 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6824 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 6825 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 6826 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 6827 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 6828 void CMDIFrameWnd::OnWindowNew() 6829 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 6830 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 6831 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 6832 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 6833 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 6834 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 6835 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 6836 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 6837 void CWnd::OnWinIniChange(wchar_t const *) 6838 long CPropertyPage::OnWizardBack() 6839 int CPropertyPage::OnWizardFinish() 6840 long CPropertyPage::OnWizardNext() 6841 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 6842 void CPreviewView::OnZoomIn() 6843 void CPreviewView::OnZoomOut() 6844 int CAnimateCtrl::Open(unsigned int) 6845 int CAnimateCtrl::Open(wchar_t const *) 6846 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 6847 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 6848 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 6849 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 6850 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 6851 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 6852 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 6853 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 6854 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 6855 int CDataPathProperty::Open(CFileException *) 6856 int CDataPathProperty::Open(COleControl *,CFileException *) 6857 int CDataPathProperty::Open(wchar_t const *,CFileException *) 6858 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 6859 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 6860 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 6861 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6862 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6863 int CMonikerFile::Open(IMoniker *,CFileException *) 6864 int CMonikerFile::Open(wchar_t const *,CFileException *) 6865 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 6866 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 6867 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 6868 long CDocObjectServer::XOleDocumentView::Open() 6869 int CWnd::OpenClipboard() 6870 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 6871 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 6872 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 6873 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 6874 int CDatabase::OpenEx(wchar_t const *,unsigned long) 6875 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 6876 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 6877 int CWnd::OpenIcon() 6878 long COleUILinkInfo::OpenLinkSource(unsigned long) 6879 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 6880 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 6881 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 6882 int CHtmlEditDoc::OpenURL(wchar_t const *) 6883 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 6884 int CHeaderCtrl::OrderToIndex(int)const 6885 int CFileException::OsErrorToException(long) 6886 void CDumpContext::OutputString(wchar_t const *) 6887 int CEditView::PaginateTo(CDC *,CPrintInfo *) 6888 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 6889 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 6890 int CDC::PaintRgn(CRgn *) 6891 int CWnd::PaintWindowlessControls(CDC *) 6892 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 6893 void CWinApp::ParseCommandLine(CCommandLineInfo &) 6894 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 6895 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6896 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6897 void CCommandLineInfo::ParseLast(int) 6898 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 6899 void CCommandLineInfo::ParseParam(char const *,int,int) 6900 void CCommandLineInfo::ParseParamFlag(char const *) 6901 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 6902 void CCommandLineInfo::ParseParamNotFlag(char const *) 6903 void CComboBox::Paste() 6904 void CEdit::Paste() 6905 void CRichEditCtrl::Paste() 6906 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 6907 int CDC::PatBlt(int,int,int,int,unsigned long) 6908 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 6909 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 6910 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 6911 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 6912 int CDC::Pie(int,int,int,int,int,int,int,int) 6913 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 6914 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 6915 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 6916 int CDC::PlayMetaFile(HMETAFILE__ *) 6917 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 6918 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 6919 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 6920 int CDC::PolyBezier(tagPOINT const *,int) 6921 int CDC::PolyBezierTo(tagPOINT const *,int) 6922 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 6923 int CDC::Polygon(tagPOINT *,int) 6924 int CDC::Polyline(tagPOINT *,int) 6925 int CDC::PolylineTo(tagPOINT const *,int) 6926 int CDC::PolyPolygon(tagPOINT *,int *,int) 6927 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 6928 void CToolTipCtrl::Pop() 6929 CPoint CEdit::PosFromChar(unsigned int)const 6930 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 6931 void CPreviewView::PositionPage(unsigned int) 6932 int CAsyncMonikerFile::PostBindToStream(CFileException *) 6933 int CMonikerFile::PostBindToStream(CFileException *) 6934 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 6935 int CWnd::PostMessageW(unsigned int,unsigned int,long) 6936 void CDialog::PostModal() 6937 void CPrintDialogEx::PostModal() 6938 void COleControl::PostModalDialog(HWND__ *) 6939 void CControlBar::PostNcDestroy() 6940 void CControlFrameWnd::PostNcDestroy() 6941 void CFindReplaceDialog::PostNcDestroy() 6942 void CFrameWnd::PostNcDestroy() 6943 void COleCntrFrameWnd::PostNcDestroy() 6944 void CReflectorWnd::PostNcDestroy() 6945 void CView::PostNcDestroy() 6946 void CWnd::PostNcDestroy() 6947 int CWinThread::PostThreadMessageW(unsigned int,unsigned int,long) 6948 void ATL::CSimpleStringT::Preallocate(int) 6949 void ATL::CSimpleStringT::Preallocate(int) 6950 void CRecordset::PreBindFields() 6951 void CDocument::PreCloseFrame(CFrameWnd *) 6952 void COleDocument::PreCloseFrame(CFrameWnd *) 6953 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 6954 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 6955 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 6956 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 6957 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6958 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 6959 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 6960 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6961 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 6962 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 6963 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 6964 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6965 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6966 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 6967 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 6968 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 6969 int CView::PreCreateWindow(tagCREATESTRUCTW &) 6970 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 6971 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 6972 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 6973 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 6974 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 6975 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 6976 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 6977 void CDialog::PreInitDialog() 6978 void COleChangeSourceDialog::PreInitDialog() 6979 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 6980 HWND__ * CDialog::PreModal() 6981 HWND__ * CPrintDialogEx::PreModal() 6982 void COleControl::PreModalDialog(HWND__ *) 6983 void CRecordset::PrepareAndExecute() 6984 HWND__ * CDataExchange::PrepareCtrl(int) 6985 HWND__ * CDataExchange::PrepareEditCtrl(int) 6986 void CWnd::PrepareForHelp() 6987 COleControlSite * CDataExchange::PrepareOleCtrl(int) 6988 void CRecordset::PrepareUpdateHstmt() 6989 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 6990 char * ATL::CSimpleStringT::PrepareWrite(int) 6991 void ATL::CSimpleStringT::PrepareWrite2(int) 6992 void ATL::CSimpleStringT::PrepareWrite2(int) 6993 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 6994 void CPropertySheet::PressButton(int) 6995 int CToolBarCtrl::PressButton(int,int) 6996 void CCheckListBox::PreSubclassWindow() 6997 void CDragListBox::PreSubclassWindow() 6998 void CWnd::PreSubclassWindow() 6999 int CWnd::PreTranslateInput(tagMSG *) 7000 int CControlBar::PreTranslateMessage(tagMSG *) 7001 int CDialog::PreTranslateMessage(tagMSG *) 7002 int CFormView::PreTranslateMessage(tagMSG *) 7003 int CFrameWnd::PreTranslateMessage(tagMSG *) 7004 int CHtmlView::PreTranslateMessage(tagMSG *) 7005 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 7006 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 7007 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 7008 int COlePropertyPage::PreTranslateMessage(tagMSG *) 7009 int CPropertyPage::PreTranslateMessage(tagMSG *) 7010 int CPropertySheet::PreTranslateMessage(tagMSG *) 7011 int CWinThread::PreTranslateMessage(tagMSG *) 7012 int CWnd::PreTranslateMessage(tagMSG *) 7013 void CDialog::PrevDlgCtrl()const 7014 void CWnd::Print(CDC *,unsigned long)const 7015 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 7016 int CPrintDialog::PrintAll()const 7017 int CPrintDialogEx::PrintAll()const 7018 void CWnd::PrintClient(CDC *,unsigned long)const 7019 int CPrintDialog::PrintCollate()const 7020 int CPrintDialogEx::PrintCollate()const 7021 int CPrintDialogEx::PrintCurrentPage()const 7022 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 7023 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 7024 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 7025 long CRichEditView::PrintPage(CDC *,long,long) 7026 int CPrintDialog::PrintRange()const 7027 int CPrintDialogEx::PrintRange()const 7028 int CPrintDialog::PrintSelection()const 7029 int CPrintDialogEx::PrintSelection()const 7030 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 7031 long COleException::Process(CException const *) 7032 int CSocket::ProcessAuxQueue() 7033 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 7034 int CWinThread::ProcessMessageFilter(int,tagMSG *) 7035 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 7036 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 7037 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 7038 int CRgn::PtInRegion(int,int)const 7039 int CRgn::PtInRegion(tagPOINT)const 7040 void COleSafeArray::PtrOfIndex(long *,void * *) 7041 int CDC::PtVisible(tagPOINT)const 7042 int CDC::PtVisible(int,int)const 7043 int CMetaFileDC::PtVisible(tagPOINT)const 7044 int CMetaFileDC::PtVisible(int,int)const 7045 int CEvent::PulseEvent() 7046 int CWinThread::PumpMessage() 7047 int CSocket::PumpMessages(unsigned int) 7048 void CReBarCtrl::PushChevron(unsigned int,long) 7049 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *) 7050 long CWnd::put_accName(tagVARIANT,wchar_t *) 7051 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 7052 long CWnd::put_accValue(tagVARIANT,wchar_t *) 7053 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 7054 void COleSafeArray::PutElement(long *,void *) 7055 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 7056 void CHtmlView::PutProperty(wchar_t const *,wchar_t const *) 7057 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 7058 void CHtmlView::PutProperty(wchar_t const *,short) 7059 void CHtmlView::PutProperty(wchar_t const *,long) 7060 void CHtmlView::PutProperty(wchar_t const *,double) 7061 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 7062 int PX_Bool(CPropExchange *,wchar_t const *,int &) 7063 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 7064 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 7065 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 7066 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 7067 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 7068 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 7069 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 7070 int PX_Double(CPropExchange *,wchar_t const *,double &) 7071 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 7072 int PX_Float(CPropExchange *,wchar_t const *,float &) 7073 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 7074 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 7075 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 7076 int PX_Long(CPropExchange *,wchar_t const *,long &) 7077 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 7078 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 7079 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 7080 int PX_Short(CPropExchange *,wchar_t const *,short &) 7081 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 7082 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 7083 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 7084 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 7085 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 7086 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 7087 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 7088 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 7089 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 7090 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7091 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7092 IUnknown * CCmdTarget::QueryAggregates(void const *) 7093 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 7094 long COleDropSource::QueryContinueDrag(int,unsigned long) 7095 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 7096 void * COleControl::QueryDefHandler(_GUID const &) 7097 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 7098 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 7099 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 7100 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 7101 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 7102 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7103 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7104 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 7105 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 7106 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 7107 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 7108 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 7109 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 7110 long CArchiveStream::QueryInterface(_GUID const &,void * *) 7111 long CBlobProperty::QueryInterface(_GUID const &,void * *) 7112 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 7113 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 7114 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 7115 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 7116 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 7117 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 7118 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 7119 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 7120 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 7121 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 7122 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 7123 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 7124 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 7125 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 7126 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 7127 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 7128 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 7129 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 7130 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 7131 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 7132 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 7133 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 7134 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 7135 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 7136 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 7137 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 7138 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 7139 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 7140 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 7141 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 7142 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7143 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7144 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 7145 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 7146 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 7147 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 7148 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 7149 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 7150 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7151 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7152 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 7153 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7154 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7155 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 7156 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 7157 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 7158 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 7159 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 7160 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 7161 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 7162 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 7163 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 7164 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 7165 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 7166 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 7167 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 7168 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 7169 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 7170 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 7171 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 7172 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 7173 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 7174 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 7175 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 7176 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 7177 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 7178 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 7179 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 7180 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 7181 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 7182 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 7183 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 7184 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 7185 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 7186 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 7187 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 7188 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 7189 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 7190 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 7191 long CPropertyPage::QuerySiblings(unsigned int,long) 7192 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 7193 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 7194 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7195 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7196 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 7197 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 7198 int COleControlSite::QuickActivate() 7199 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 7200 int COleClientItem::ReactivateAndUndo() 7201 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 7202 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 7203 unsigned int CArchive::Read(void *,unsigned int) 7204 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 7205 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 7206 unsigned int CFile::Read(void *,unsigned int) 7207 int CImageList::Read(CArchive *) 7208 unsigned int CInternetFile::Read(void *,unsigned int) 7209 unsigned int CMemFile::Read(void *,unsigned int) 7210 unsigned int COleStreamFile::Read(void *,unsigned int) 7211 unsigned int CSocketFile::Read(void *,unsigned int) 7212 unsigned int CStdioFile::Read(void *,unsigned int) 7213 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 7214 unsigned long CArchive::ReadCount() 7215 void CEditView::ReadFromArchive(CArchive &,unsigned int) 7216 int CProperty::ReadFromStream(IStream *) 7217 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 7218 int CPropertySet::ReadFromStream(IStream *) 7219 void COleClientItem::ReadItem(CArchive &) 7220 void COleClientItem::ReadItemCompound(CArchive &) 7221 void COleClientItem::ReadItemFlat(CArchive &) 7222 void CRecentFileList::ReadList() 7223 int CPropertySection::ReadNameDictFromStream(IStream *) 7224 CObject * CArchive::ReadObject(CRuntimeconst *) 7225 int CArchive::ReadString(ATL::CStringT > > &) 7226 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 7227 int CInternetFile::ReadString(ATL::CStringT > > &) 7228 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 7229 int CStdioFile::ReadString(ATL::CStringT > > &) 7230 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 7231 unsigned int CDC::RealizePalette() 7232 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7233 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7234 void ATL::CSimpleStringT::Reallocate(int) 7235 void ATL::CSimpleStringT::Reallocate(int) 7236 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7237 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7238 void CRecordset::RebindParams(void *) 7239 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7240 void CFrameWnd::RecalcLayout(int) 7241 void CMiniDockFrameWnd::RecalcLayout(int) 7242 void COleCntrFrameWnd::RecalcLayout(int) 7243 void COleDocIPFrameWnd::RecalcLayout(int) 7244 void COleIPFrameWnd::RecalcLayout(int) 7245 void CSplitterWnd::RecalcLayout() 7246 int CAsyncSocket::Receive(void *,int,int) 7247 int CSocket::Receive(void *,int,int) 7248 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7249 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7250 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7251 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7252 void COleControl::RecreateControlWindow() 7253 int CDC::Rectangle(int,int,int,int) 7254 int CDC::Rectangle(tagRECT const *) 7255 CRect const CFrameWnd::rectDefault 7256 int CRgn::RectInRegion(tagRECT const *)const 7257 int CDC::RectVisible(tagRECT const *)const 7258 int CMetaFileDC::RectVisible(tagRECT const *)const 7259 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7260 int CRichEditCtrl::Redo() 7261 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7262 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7263 int CListCtrl::RedrawItems(int,int) 7264 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7265 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7266 int CWnd::ReflectLastMsg(HWND__ *,long *) 7267 void CHtmlView::Refresh() 7268 void COleControl::Refresh() 7269 void CHtmlView::Refresh2(int) 7270 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7271 int COleDropTarget::Register(CWnd *) 7272 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 7273 int COleMessageFilter::Register() 7274 int COleObjectFactory::Register() 7275 int COleTemplateServer::Register() 7276 int CWinApp::Register() 7277 int COleObjectFactory::RegisterAll() 7278 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 7279 void CDocManager::RegisterShellFileTypes(int) 7280 void CWinApp::RegisterShellFileTypes(int) 7281 void CToolTipCtrl::RelayEvent(tagMSG *) 7282 unsigned long CArchiveStream::Release() 7283 unsigned long CBlobProperty::Release() 7284 unsigned long CBrowserControlSite::Release() 7285 unsigned long CDHtmlControlSink::Release() 7286 unsigned long CDHtmlElementEventSink::Release() 7287 unsigned long CDHtmlEventSink::Release() 7288 unsigned long CInnerUnknown::Release() 7289 void COleClientItem::Release(enum tagOLECLOSE) 7290 unsigned long COleConnPtContainer::Release() 7291 void COleDataObject::Release() 7292 unsigned long COleDispatchImpl::Release() 7293 void COleDocObjectItem::Release(enum tagOLECLOSE) 7294 unsigned long COleUILinkInfo::Release() 7295 unsigned long CPrintDialogEx::Release() 7296 unsigned long CWnd::XAccessible::Release() 7297 unsigned long CWnd::XAccessibleServer::Release() 7298 unsigned long COleClientItem::XAdviseSink::Release() 7299 unsigned long COleControlSite::XAmbientProps::Release() 7300 unsigned long COleControlSite::XBoundObjectSite::Release() 7301 unsigned long COleObjectFactory::XClassFactory::Release() 7302 unsigned long CConnectionPoint::XConnPt::Release() 7303 unsigned long COleControl::XDataObject::Release() 7304 unsigned long COleDataSource::XDataObject::Release() 7305 unsigned long COleServerDoc::XDataObject::Release() 7306 unsigned long COleServerItem::XDataObject::Release() 7307 unsigned long CHtmlControlSite::XDocHostUIHandler::Release() 7308 unsigned long COleDropSource::XDropSource::Release() 7309 unsigned long COleDropTarget::XDropTarget::Release() 7310 unsigned long CEnumArray::XEnumVOID::Release() 7311 unsigned long COleControlSite::XEventSink::Release() 7312 unsigned long COleControl::XFontNotification::Release() 7313 unsigned long COleMessageFilter::XMessageFilter::Release() 7314 unsigned long COleControlSite::XNotifyDBEvents::Release() 7315 unsigned long COleControl::XOleCache::Release() 7316 unsigned long COleClientItem::XOleClientSite::Release() 7317 unsigned long COleControlSite::XOleClientSite::Release() 7318 unsigned long CDocObjectServer::XOleCommandTarget::Release() 7319 unsigned long COleFrameHook::XOleCommandTarget::Release() 7320 unsigned long COleControlContainer::XOleContainer::Release() 7321 unsigned long COleControl::XOleControl::Release() 7322 unsigned long COleControlSite::XOleControlSite::Release() 7323 unsigned long CDocObjectServer::XOleDocument::Release() 7324 unsigned long COleDocObjectItem::XOleDocumentSite::Release() 7325 unsigned long CDocObjectServer::XOleDocumentView::Release() 7326 unsigned long COleControl::XOleInPlaceActiveObject::Release() 7327 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 7328 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 7329 unsigned long COleControl::XOleInPlaceObject::Release() 7330 unsigned long COleServerDoc::XOleInPlaceObject::Release() 7331 unsigned long COleControlContainer::XOleIPFrame::Release() 7332 unsigned long COleClientItem::XOleIPSite::Release() 7333 unsigned long COleControlSite::XOleIPSite::Release() 7334 unsigned long COleLinkingDoc::XOleItemContainer::Release() 7335 unsigned long CDocObjectServer::XOleObject::Release() 7336 unsigned long COleControl::XOleObject::Release() 7337 unsigned long COleServerDoc::XOleObject::Release() 7338 unsigned long COleServerItem::XOleObject::Release() 7339 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 7340 unsigned long COleControl::XPerPropertyBrowsing::Release() 7341 unsigned long COleLinkingDoc::XPersistFile::Release() 7342 unsigned long COleControl::XPersistMemory::Release() 7343 unsigned long COleControl::XPersistPropertyBag::Release() 7344 unsigned long COleControl::XPersistStorage::Release() 7345 unsigned long COleServerDoc::XPersistStorage::Release() 7346 unsigned long COleControl::XPersistStreamInit::Release() 7347 unsigned long COleControl::XPointerInactive::Release() 7348 unsigned long CDocObjectServer::XPrint::Release() 7349 unsigned long COleControlSite::XPropertyNotifySink::Release() 7350 unsigned long COlePropertyPage::XPropertyPage::Release() 7351 unsigned long COlePropertyPage::XPropNotifySink::Release() 7352 unsigned long COleControl::XProvideClassInfo::Release() 7353 unsigned long COleControl::XQuickActivate::Release() 7354 unsigned long CRichEditView::XRichEditOleCallback::Release() 7355 unsigned long COleControlSite::XRowsetNotify::Release() 7356 unsigned long COleControl::XSpecifyPropertyPages::Release() 7357 unsigned long COleControl::XViewObject::Release() 7358 void CDC::ReleaseAttribDC() 7359 void ATL::CSimpleStringT::ReleaseBuffer(int) 7360 void ATL::CSimpleStringT::ReleaseBuffer(int) 7361 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7362 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7363 void COleControl::ReleaseCaches() 7364 int COleControl::ReleaseCapture() 7365 int COleControl::ReleaseDC(CDC *) 7366 int CWnd::ReleaseDC(CDC *) 7367 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7368 void COleDispatchDriver::ReleaseDispatch() 7369 void CDocObjectServer::ReleaseDocSite() 7370 void CDocument::ReleaseFile(CFile *,int) 7371 void CFontHolder::ReleaseFont() 7372 void CDC::ReleaseOutputDC() 7373 void CMetaFileDC::ReleaseOutputDC() 7374 void CPreviewDC::ReleaseOutputDC() 7375 int COleClientItem::Reload() 7376 int ATL::CStringT > >::Remove(wchar_t) 7377 int ATL::CStringT > >::Remove(char) 7378 void CFile::Remove(wchar_t const *) 7379 int CFtpConnection::Remove(wchar_t const *) 7380 int CImageList::Remove(int) 7381 void CPropertySection::Remove(unsigned long) 7382 void CPropertySet::Remove(_GUID) 7383 void CPropertySet::Remove(_GUID,unsigned long) 7384 void CRecentFileList::Remove(int) 7385 int CSimpleList::Remove(void *) 7386 void CByteArray::RemoveAll() 7387 void CDWordArray::RemoveAll() 7388 void CMapPtrToPtr::RemoveAll() 7389 void CMapPtrToWord::RemoveAll() 7390 void CMapStringToOb::RemoveAll() 7391 void CMapStringToPtr::RemoveAll() 7392 void CMapStringToString::RemoveAll() 7393 void CMapWordToOb::RemoveAll() 7394 void CMapWordToPtr::RemoveAll() 7395 void CObArray::RemoveAll() 7396 void CObList::RemoveAll() 7397 void CPropertySection::RemoveAll() 7398 void CPropertySet::RemoveAll() 7399 void CPtrArray::RemoveAll() 7400 void CPtrList::RemoveAll() 7401 void CStringArray::RemoveAll() 7402 void CStringList::RemoveAll() 7403 void CTypeLibCacheMap::RemoveAll(void *) 7404 void CUIntArray::RemoveAll() 7405 void CWordArray::RemoveAll() 7406 void CByteArray::RemoveAt(int,int) 7407 void CDWordArray::RemoveAt(int,int) 7408 void CObArray::RemoveAt(int,int) 7409 void CObList::RemoveAt(__POSITION *) 7410 void CPtrArray::RemoveAt(int,int) 7411 void CPtrList::RemoveAt(__POSITION *) 7412 void CStringArray::RemoveAt(int,int) 7413 void CStringList::RemoveAt(__POSITION *) 7414 void CUIntArray::RemoveAt(int,int) 7415 void CWordArray::RemoveAt(int,int) 7416 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7417 void CFrameWnd::RemoveControlBar(CControlBar *) 7418 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 7419 void CDocTemplate::RemoveDocument(CDocument *) 7420 void CMultiDocTemplate::RemoveDocument(CDocument *) 7421 void CSingleDocTemplate::RemoveDocument(CDocument *) 7422 void COleControl::RemoveFrameLevelUI() 7423 void CFrameWnd::RemoveFrameWnd() 7424 void CHandleMap::RemoveHandle(void *) 7425 CObject * CObList::RemoveHead() 7426 void * CPtrList::RemoveHead() 7427 ATL::CStringT > > CStringList::RemoveHead() 7428 void CTabCtrl::RemoveImage(int) 7429 void CListCtrl::RemoveImageList(int) 7430 void CListView::RemoveImageList(int) 7431 void CTreeCtrl::RemoveImageList(int) 7432 void CTreeView::RemoveImageList(int) 7433 void COleDocument::RemoveItem(CDocItem *) 7434 int CMapPtrToPtr::RemoveKey(void *) 7435 int CMapPtrToWord::RemoveKey(void *) 7436 int CMapStringToOb::RemoveKey(wchar_t const *) 7437 int CMapStringToPtr::RemoveKey(wchar_t const *) 7438 int CMapStringToString::RemoveKey(wchar_t const *) 7439 int CMapWordToOb::RemoveKey(unsigned short) 7440 int CMapWordToPtr::RemoveKey(unsigned short) 7441 int CMenu::RemoveMenu(unsigned int,unsigned int) 7442 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7443 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7444 void CPropertySheet::RemovePage(int) 7445 void CPropertySheet::RemovePage(CPropertyPage *) 7446 void CDockBar::RemovePlaceHolder(CControlBar *) 7447 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7448 void CDataBoundProperty::RemoveSource() 7449 CObject * CObList::RemoveTail() 7450 void * CPtrList::RemoveTail() 7451 ATL::CStringT > > CStringList::RemoveTail() 7452 void CDocument::RemoveView(CView *) 7453 void CFile::Rename(wchar_t const *,wchar_t const *) 7454 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 7455 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 7456 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 7457 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 7458 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 7459 int ATL::CStringT > >::Replace(char,char) 7460 int ATL::CStringT > >::Replace(char const *,char const *) 7461 int CImageList::Replace(int,HICON__ *) 7462 int CImageList::Replace(int,CBitmap *,CBitmap *) 7463 int CFindReplaceDialog::ReplaceAll()const 7464 void CDatabase::ReplaceBrackets(wchar_t *) 7465 int CFindReplaceDialog::ReplaceCurrent()const 7466 void CEdit::ReplaceSel(wchar_t const *,int) 7467 void CRichEditCtrl::ReplaceSel(wchar_t const *,int) 7468 int CException::ReportError(unsigned int,unsigned int) 7469 int COleClientItem::ReportError(long)const 7470 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 7471 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 7472 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 7473 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 7474 int CRecordset::Requery() 7475 void COleControl::RequestAsynchronousExchange(unsigned long) 7476 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 7477 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 7478 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 7479 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 7480 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 7481 void COleServerDoc::RequestPositionChange(tagRECT const *) 7482 void CRichEditCtrl::RequestResize() 7483 long COleControlSite::XOleIPSite::RequestUIActivate() 7484 long CEnumArray::XEnumVOID::Reset() 7485 void CComboBox::ResetContent() 7486 void CListBox::ResetContent() 7487 void CRecordset::ResetCursor() 7488 void CCachedDataPathProperty::ResetData() 7489 void CDataPathProperty::ResetData() 7490 int CDC::ResetDCW(_devicemodeW const *) 7491 int CEvent::ResetEvent() 7492 void COleControl::ResetStockProps() 7493 void CControlBar::ResetTimer(unsigned int,unsigned int) 7494 void COleControl::ResetVersion(unsigned long) 7495 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7496 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7497 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7498 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7499 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7500 void COleControl::ResizeFrameWindow(int,int) 7501 void COleSafeArray::ResizeOneDim(unsigned long) 7502 void COleControl::ResizeOpenControl(int,int) 7503 int CPalette::ResizePalette(unsigned int) 7504 void CScrollView::ResizeParentToFit(int) 7505 void CWaitCursor::Restore() 7506 void CReBarCtrl::RestoreBand(unsigned int) 7507 int CDC::RestoreDC(int) 7508 int CPreviewDC::RestoreDC(int) 7509 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 7510 void CCmdTarget::RestoreWaitCursor() 7511 unsigned long CWinThread::ResumeThread() 7512 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 7513 int ATL::CStringT > >::ReverseFind(wchar_t)const 7514 int ATL::CStringT > >::ReverseFind(char)const 7515 long CArchiveStream::Revert() 7516 void COleDropTarget::Revoke() 7517 void COleLinkingDoc::Revoke() 7518 void COleMessageFilter::Revoke() 7519 void COleObjectFactory::Revoke() 7520 void COleObjectFactory::RevokeAll() 7521 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 7522 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 7523 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 7524 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 7525 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 7526 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 7527 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 7528 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 7529 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 7530 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 7531 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 7532 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 7533 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 7534 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 7535 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 7536 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 7537 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 7538 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 7539 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 7540 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 7541 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 7542 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 7543 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 7544 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 7545 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 7546 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 7547 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7548 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7549 int CDatabase::Rollback() 7550 int CDC::RoundRect(int,int,int,int,int,int) 7551 int CDC::RoundRect(tagRECT const *,tagPOINT) 7552 void COleClientItem::Run() 7553 int CWinApp::Run() 7554 int CWinThread::Run() 7555 int CWinApp::RunAutomated() 7556 int CWinApp::RunEmbedded() 7557 int CWnd::RunModalLoop(unsigned long) 7558 int COleControlSite::SafeSetProperty(long,unsigned short,...) 7559 int CEditView::SameAsSelected(wchar_t const *,int) 7560 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 7561 long CBlobProperty::Save(IStream *,int) 7562 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 7563 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 7564 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 7565 long COleControl::XPersistStorage::Save(IStorage *,int) 7566 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 7567 long COleControl::XPersistStreamInit::Save(IStream *,int) 7568 int CDocManager::SaveAllModified() 7569 int CDocTemplate::SaveAllModified() 7570 int CWinApp::SaveAllModified() 7571 void CFrameWnd::SaveBarState(wchar_t const *)const 7572 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 7573 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 7574 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 7575 int CDC::SaveDC() 7576 int CPreviewDC::SaveDC() 7577 void COleServerDoc::SaveEmbedding() 7578 int CFormView::SaveFocusControl() 7579 int CDocument::SaveModified() 7580 int COleDocument::SaveModified() 7581 int COleServerDoc::SaveModified() 7582 int COleServerDoc::SaveModifiedPrompt() 7583 long COleClientItem::XOleClientSite::SaveObject() 7584 long COleControlSite::XOleClientSite::SaveObject() 7585 int CControlBarInfo::SaveState(wchar_t const *,int) 7586 void CDockState::SaveState(wchar_t const *) 7587 long COleControl::SaveState(IStream *) 7588 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 7589 void CWinApp::SaveStdProfileSettings() 7590 void COleDocument::SaveToStorage(CObject *) 7591 void COleLinkingDoc::SaveToStorage(CObject *) 7592 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 7593 void CDockState::ScalePoint(CPoint &) 7594 void CDockState::ScaleRectPos(CRect &) 7595 CSize CDC::ScaleViewportExt(int,int,int,int) 7596 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 7597 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 7598 CSize CDC::ScaleWindowExt(int,int,int,int) 7599 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 7600 void CWnd::ScreenToClient(tagPOINT *)const 7601 void CWnd::ScreenToClient(tagRECT *)const 7602 int CListCtrl::Scroll(CSize) 7603 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 7604 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 7605 void COleControlContainer::ScrollChildren(int,int) 7606 int COleServerDoc::ScrollContainerBy(CSize) 7607 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 7608 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 7609 void CScrollView::ScrollToDevicePosition(tagPOINT) 7610 void CScrollView::ScrollToPosition(tagPOINT) 7611 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7612 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7613 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 7614 int CFindReplaceDialog::SearchDown()const 7615 int CAnimateCtrl::Seek(unsigned int) 7616 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 7617 unsigned __int64 CFile::Seek(__int64,unsigned int) 7618 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 7619 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 7620 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 7621 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 7622 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 7623 void CFile::SeekToBegin() 7624 unsigned __int64 CFile::SeekToEnd() 7625 CFont * CFontHolder::Select(CDC *,long,long) 7626 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 7627 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 7628 int CDC::SelectClipPath(int) 7629 int CDC::SelectClipRgn(CRgn *) 7630 int CDC::SelectClipRgn(CRgn *,int) 7631 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 7632 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 7633 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 7634 long CPrintDialogEx::SelectionChange() 7635 int CTreeCtrl::SelectItem(_TREEITEM *) 7636 int CDC::SelectObject(CRgn *) 7637 CBitmap * CDC::SelectObject(CBitmap *) 7638 CBrush * CDC::SelectObject(CBrush *) 7639 CGdiObject * CDC::SelectObject(CGdiObject *) 7640 CPen * CDC::SelectObject(CPen *) 7641 void * CDC::SelectObject(void *) 7642 CFont * CDC::SelectObject(CFont *) 7643 CFont * CPreviewDC::SelectObject(CFont *) 7644 CPalette * CDC::SelectPalette(CPalette *,int) 7645 void CWinApp::SelectPrinter(void *,void *,int) 7646 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 7647 CFont * COleControl::SelectStockFont(CDC *) 7648 CGdiObject * CDC::SelectStockObject(int) 7649 CGdiObject * CPreviewDC::SelectStockObject(int) 7650 int CComboBox::SelectString(int,wchar_t const *) 7651 int CListBox::SelectString(int,wchar_t const *) 7652 int CListBox::SelItemRange(int,int,int) 7653 int CAsyncSocket::Send(void const *,int,int) 7654 int CSocket::Send(void const *,int,int) 7655 void COleControl::SendAdvise(unsigned int) 7656 int CWnd::SendChildNotifyLastMsg(long *) 7657 int CSocket::SendChunk(void const *,int,int) 7658 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 7659 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 7660 void CDocument::SendInitialUpdate() 7661 void CRecordset::SendLongBinaryData(void *) 7662 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 7663 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 7664 long CWnd::SendMessageW(unsigned int,unsigned int,long) 7665 void COleControlSite::SendMnemonic(tagMSG *) 7666 int CWnd::SendNotifyMessageW(unsigned int,unsigned int,long) 7667 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 7668 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 7669 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 7670 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 7671 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 7672 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 7673 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7674 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7675 void CByteArray::Serialize(CArchive &) 7676 void CControlBarInfo::Serialize(CArchive &,CDockState *) 7677 void CDocItem::Serialize(CArchive &) 7678 void CDockState::Serialize(CArchive &) 7679 void CDWordArray::Serialize(CArchive &) 7680 void CEditView::Serialize(CArchive &) 7681 void CMapStringToOb::Serialize(CArchive &) 7682 void CMapStringToString::Serialize(CArchive &) 7683 void CMapWordToOb::Serialize(CArchive &) 7684 void CObArray::Serialize(CArchive &) 7685 void CObject::Serialize(CArchive &) 7686 void CObList::Serialize(CArchive &) 7687 void COleClientItem::Serialize(CArchive &) 7688 void COleControl::Serialize(CArchive &) 7689 void COleDocument::Serialize(CArchive &) 7690 void CRichEditDoc::Serialize(CArchive &) 7691 void CRichEditView::Serialize(CArchive &) 7692 void CStringArray::Serialize(CArchive &) 7693 void CStringList::Serialize(CArchive &) 7694 void CWordArray::Serialize(CArchive &) 7695 CArchive & ATL::CTime::Serialize64(CArchive &) 7696 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 7697 void CArchive::SerializeClass(CRuntimeconst *) 7698 void COleControl::SerializeExtent(CArchive &) 7699 void CEditView::SerializeRaw(CArchive &) 7700 void COleControl::SerializeStockProps(CArchive &) 7701 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 7702 int CProperty::Set(unsigned long,void * const,unsigned long) 7703 int CProperty::Set(void * const) 7704 int CProperty::Set(void * const,unsigned long) 7705 int CPropertySection::Set(unsigned long,void *) 7706 int CPropertySection::Set(unsigned long,void *,unsigned long) 7707 int CPropertySet::Set(_GUID,unsigned long,void *) 7708 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 7709 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 7710 void CRecordset::SetAbsolutePosition(long) 7711 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 7712 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7713 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7714 int CPropertySheet::SetActivePage(int) 7715 int CPropertySheet::SetActivePage(CPropertyPage *) 7716 void CSplitterWnd::SetActivePane(int,int,CWnd *) 7717 void CFrameWnd::SetActiveView(CView *,int) 7718 CWnd * CWnd::SetActiveWindow() 7719 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 7720 void CIPAddressCtrl::SetAddress(unsigned long) 7721 void CHtmlView::SetAddressBar(int) 7722 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 7723 int CToolBarCtrl::SetAnchorHighlight(int) 7724 void CListBox::SetAnchorIndex(int) 7725 void COleControl::SetAppearance(short) 7726 int CDC::SetArcDirection(int) 7727 void ATL::CSimpleStringT::SetAt(int,wchar_t) 7728 void ATL::CSimpleStringT::SetAt(int,char) 7729 void CByteArray::SetAt(int,unsigned char) 7730 void CDWordArray::SetAt(int,unsigned long) 7731 void CMapPtrToPtr::SetAt(void *,void *) 7732 void CMapPtrToWord::SetAt(void *,unsigned short) 7733 void CMapStringToOb::SetAt(wchar_t const *,CObject *) 7734 void CMapStringToPtr::SetAt(wchar_t const *,void *) 7735 void CMapStringToString::SetAt(wchar_t const *,wchar_t const *) 7736 void CMapWordToOb::SetAt(unsigned short,CObject *) 7737 void CMapWordToPtr::SetAt(unsigned short,void *) 7738 void CObArray::SetAt(int,CObject *) 7739 void CObList::SetAt(__POSITION *,CObject *) 7740 void CPtrArray::SetAt(int,void *) 7741 void CPtrList::SetAt(__POSITION *,void *) 7742 void CStringArray::SetAt(int,ATL::CStringT > > const &) 7743 void CStringArray::SetAt(int,wchar_t const *) 7744 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 7745 void CStringList::SetAt(__POSITION *,wchar_t const *) 7746 void CUIntArray::SetAt(int,unsigned int) 7747 void CWordArray::SetAt(int,unsigned short) 7748 void CByteArray::SetAtGrow(int,unsigned char) 7749 void CDWordArray::SetAtGrow(int,unsigned long) 7750 void CObArray::SetAtGrow(int,CObject *) 7751 void CPtrArray::SetAtGrow(int,void *) 7752 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 7753 void CStringArray::SetAtGrow(int,wchar_t const *) 7754 void CUIntArray::SetAtGrow(int,unsigned int) 7755 void CWordArray::SetAtGrow(int,unsigned short) 7756 void CDC::SetAttribDC(HDC__ *) 7757 void CMetaFileDC::SetAttribDC(HDC__ *) 7758 void CPreviewDC::SetAttribDC(HDC__ *) 7759 int CRichEditCtrl::SetAutoURLDetect(int) 7760 void COleControl::SetBackColor(unsigned long) 7761 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 7762 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOW *) 7763 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7764 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7765 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 7766 void CControlBar::SetBarStyle(unsigned long) 7767 int CSpinButtonCtrl::SetBase(int) 7768 void CAsyncMonikerFile::SetBinding(IBinding *) 7769 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 7770 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 7771 int CToolBar::SetBitmap(HBITMAP__ *) 7772 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 7773 CSize CBitmap::SetBitmapDimension(int,int) 7774 int CHeaderCtrl::SetBitmapMargin(int) 7775 int CToolBarCtrl::SetBitmapSize(CSize) 7776 unsigned long CDC::SetBkColor(unsigned long) 7777 unsigned long CImageList::SetBkColor(unsigned long) 7778 int CListCtrl::SetBkColor(unsigned long) 7779 unsigned long CPreviewDC::SetBkColor(unsigned long) 7780 unsigned long CProgressCtrl::SetBkColor(unsigned long) 7781 unsigned long CReBarCtrl::SetBkColor(unsigned long) 7782 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 7783 unsigned long CTreeCtrl::SetBkColor(unsigned long) 7784 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 7785 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 7786 int CListCtrl::SetBkImage(tagLVBKIMAGEW *) 7787 int CDC::SetBkMode(int) 7788 void CRecordset::SetBookmark(CDBVariant const &) 7789 void CControlBar::SetBorders(int,int,int,int) 7790 void CControlBar::SetBorders(tagRECT const *) 7791 void CStatusBar::SetBorders(int,int,int,int) 7792 void CStatusBar::SetBorders(tagRECT const *) 7793 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 7794 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 7795 void COleControl::SetBorderStyle(short) 7796 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 7797 CPoint CDC::SetBrushOrg(int,int) 7798 CPoint CDC::SetBrushOrg(tagPOINT) 7799 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 7800 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 7801 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 7802 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 7803 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOW *) 7804 int CToolBar::SetButtons(unsigned int const *,int) 7805 int CToolBarCtrl::SetButtonSize(CSize) 7806 void CToolBarCtrl::SetButtonStructSize(int) 7807 void CButton::SetButtonStyle(unsigned int,int) 7808 void CToolBar::SetButtonStyle(int,unsigned int) 7809 int CToolBar::SetButtonText(int,wchar_t const *) 7810 int CToolBarCtrl::SetButtonWidth(int,int) 7811 int CListCtrl::SetCallbackMask(unsigned int) 7812 CWnd * COleControl::SetCapture() 7813 CWnd * CWnd::SetCapture() 7814 long COleControlSite::XOleIPSite::SetCapture(int) 7815 int CListBox::SetCaretIndex(int,int) 7816 void CWnd::SetCaretPos(tagPOINT) 7817 void CRichEditView::SetCharFormat(CHARFORMAT2W) 7818 void CButton::SetCheck(int) 7819 void CCheckListBox::SetCheck(int,int) 7820 void CCmdUI::SetCheck(int) 7821 int CListCtrl::SetCheck(int,int) 7822 void COleCmdUI::SetCheck(int) 7823 void CStatusCmdUI::SetCheck(int) 7824 void CTestCmdUI::SetCheck(int) 7825 void CToolCmdUI::SetCheck(int) 7826 int CTreeCtrl::SetCheck(_TREEITEM *,int) 7827 void CCheckListBox::SetCheckStyle(unsigned int) 7828 void CPropertySet::SetClassID(_GUID) 7829 void CDataBoundProperty::SetClientSite(COleControlSite *) 7830 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 7831 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 7832 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 7833 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 7834 void COleDataSource::SetClipboard() 7835 HWND__ * CWnd::SetClipboardViewer() 7836 int CToolBarCtrl::SetCmdID(int,unsigned int) 7837 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 7838 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 7839 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 7840 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 7841 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 7842 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 7843 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 7844 int CListCtrl::SetColumn(int,tagLVCOLUMNW const *) 7845 void CSplitterWnd::SetColumnInfo(int,int,int) 7846 int CListCtrl::SetColumnOrderArray(int,int *) 7847 void CListBox::SetColumnWidth(int) 7848 int CListCtrl::SetColumnWidth(int,int) 7849 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 7850 void CDocTemplate::SetContainerInfo(unsigned int) 7851 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 7852 void CDataPathProperty::SetControl(COleControl *) 7853 void CReflectorWnd::SetControl(COleControl *) 7854 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 7855 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 7856 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 7857 int COleControl::SetControlSize(int,int) 7858 int COlePropertyPage::SetControlStatus(unsigned int,int) 7859 void CFileDialog::SetControlText(int,char const *) 7860 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 7861 void CTabCtrl::SetCurFocus(int) 7862 void COleCurrency::SetCurrency(long,long) 7863 void CColorDialog::SetCurrentColor(unsigned long) 7864 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 7865 void CWinApp::SetCurrentHandles() 7866 void CPreviewView::SetCurrentPage(unsigned int,int) 7867 int CComboBox::SetCurSel(int) 7868 int CListBox::SetCurSel(int) 7869 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 7870 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 7871 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 7872 int CTabCtrl::SetCurSel(int) 7873 HICON__ * CButton::SetCursor(HICON__ *) 7874 int CRectTracker::SetCursor(CWnd *,unsigned int)const 7875 HICON__ * CStatic::SetCursor(HICON__ *) 7876 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7877 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7878 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7879 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7880 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7881 int CMonthCalCtrl::SetDayState(int,unsigned long *) 7882 void COccManager::SetDefaultButton(CWnd *,int) 7883 void COleControlSite::SetDefaultButton(int) 7884 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 7885 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 7886 int CMenu::SetDefaultItem(unsigned int,int) 7887 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 7888 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 7889 void CFileDialog::SetDefExt(char const *) 7890 void CDialog::SetDefID(unsigned int) 7891 void CToolTipCtrl::SetDelayTime(unsigned int) 7892 void CToolTipCtrl::SetDelayTime(unsigned long,int) 7893 void CDumpContext::SetDepth(int) 7894 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 7895 void COlePropertyPage::SetDialogResource(void *) 7896 void CRecordset::SetDirtyFieldStatus(unsigned long) 7897 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 7898 int COleControlSite::SetDlgCtrlID(int) 7899 int CWnd::SetDlgCtrlID(int) 7900 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 7901 void CWnd::SetDlgItemInt(int,unsigned int,int) 7902 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 7903 void CWnd::SetDlgItemTextW(int,wchar_t const *) 7904 void CFrameWnd::SetDockState(CDockState const &) 7905 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 7906 int CImageList::SetDragCursorImage(int,CPoint) 7907 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 7908 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 7909 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 7910 int CComboBox::SetDroppedWidth(unsigned int) 7911 void CDataBoundProperty::SetDSCSite(COleControlSite *) 7912 int CComboBox::SetEditSel(int,int) 7913 int CComboBoxEx::SetEditSel(int,int) 7914 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 7915 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 7916 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 7917 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 7918 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 7919 void COleControl::SetEnabled(int) 7920 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 7921 int CEvent::SetEvent() 7922 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 7923 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 7924 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 7925 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 7926 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 7927 int CComboBox::SetExtendedUI(int) 7928 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 7929 int COleControlSite::SetExtent() 7930 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 7931 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 7932 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 7933 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 7934 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 7935 void CRecordset::SetFieldDirty(void *,int) 7936 void CIPAddressCtrl::SetFieldFocus(unsigned short) 7937 void CRecordset::SetFieldNull(void *,int) 7938 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 7939 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 7940 void CFieldExchange::SetFieldType(unsigned int) 7941 void CFile::SetFilePath(wchar_t const *) 7942 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 7943 void CPropertySheet::SetFinishText(wchar_t const *) 7944 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 7945 CWnd * COleControl::SetFocus() 7946 CWnd * COleControlSite::SetFocus(tagMSG *) 7947 CWnd * COleControlSite::SetFocus() 7948 CWnd * CWnd::SetFocus() 7949 long COleControlSite::XOleIPSite::SetFocus(int) 7950 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 7951 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 7952 void CFontHolder::SetFont(IFont *) 7953 void COleControl::SetFont(IFontDisp *) 7954 void CWnd::SetFont(CFont *,int) 7955 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 7956 void COleControl::SetForeColor(unsigned long) 7957 int CWnd::SetForegroundWindow() 7958 int CDateTimeCtrl::SetFormat(wchar_t const *) 7959 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 7960 void CPropertySection::SetFormatID(_GUID) 7961 void CPropertySet::SetFormatVersion(unsigned short) 7962 void CHtmlView::SetFullScreen(int) 7963 void CEdit::SetHandle(void *) 7964 void CSharedFile::SetHandle(void *,int) 7965 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 7966 void CHtmlView::SetHeight(long) 7967 void CToolBar::SetHeight(int) 7968 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 7969 void CDialog::SetHelpID(unsigned int) 7970 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 7971 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 7972 void CComboBox::SetHorizontalExtent(unsigned int) 7973 void CListBox::SetHorizontalExtent(int) 7974 void CDHtmlDialog::SetHostFlags(unsigned long) 7975 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 7976 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7977 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7978 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7979 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7980 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 7981 int CHeaderCtrl::SetHotDivider(int) 7982 int CHeaderCtrl::SetHotDivider(CPoint) 7983 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 7984 int CListCtrl::SetHotItem(int) 7985 int CToolBarCtrl::SetHotItem(int) 7986 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 7987 unsigned long CListCtrl::SetHoverTime(unsigned long) 7988 HICON__ * CButton::SetIcon(HICON__ *) 7989 HICON__ * CStatic::SetIcon(HICON__ *) 7990 int CStatusBarCtrl::SetIcon(int,HICON__ *) 7991 HICON__ * CWnd::SetIcon(HICON__ *,int) 7992 int COleClientItem::SetIconicMetafile(void *) 7993 CSize CListCtrl::SetIconSpacing(int,int) 7994 CSize CListCtrl::SetIconSpacing(CSize) 7995 void CProperty::SetID(unsigned long) 7996 int CImageList::SetImageCount(unsigned int) 7997 CImageList * CComboBoxEx::SetImageList(CImageList *) 7998 CImageList * CHeaderCtrl::SetImageList(CImageList *) 7999 CImageList * CListCtrl::SetImageList(CImageList *,int) 8000 int CReBarCtrl::SetImageList(CImageList *) 8001 CImageList * CTabCtrl::SetImageList(CImageList *) 8002 CImageList * CToolBarCtrl::SetImageList(CImageList *) 8003 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 8004 int CToolBarCtrl::SetIndent(int) 8005 void CTreeCtrl::SetIndent(unsigned int) 8006 int CStatusBar::SetIndicators(unsigned int const *,int) 8007 void COleControl::SetInitialDataFormats() 8008 long CDocObjectServer::XPrint::SetInitialPageNum(long) 8009 void COleControl::SetInitialSize(int,int) 8010 void CControlBar::SetInPlaceOwner(CWnd *) 8011 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 8012 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 8013 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 8014 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 8015 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 8016 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 8017 int CHeaderCtrl::SetItem(int,_HD_ITEMW *) 8018 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 8019 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 8020 int CListCtrl::SetItem(tagLVITEMW const *) 8021 int CTabCtrl::SetItem(int,tagTCITEMW *) 8022 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 8023 int CTreeCtrl::SetItem(tagTVITEMW *) 8024 void CListCtrl::SetItemCount(int) 8025 int CListCtrl::SetItemCountEx(int,unsigned long) 8026 int CComboBox::SetItemData(int,unsigned long) 8027 int CListBox::SetItemData(int,unsigned long) 8028 int CListCtrl::SetItemData(int,unsigned long) 8029 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 8030 int CComboBox::SetItemDataPtr(int,void *) 8031 int CListBox::SetItemDataPtr(int,void *) 8032 int CTabCtrl::SetItemExtra(int) 8033 int CComboBox::SetItemHeight(int,unsigned int) 8034 int CListBox::SetItemHeight(int,unsigned int) 8035 short CTreeCtrl::SetItemHeight(short) 8036 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 8037 void COleServerItem::SetItemName(wchar_t const *) 8038 int CListCtrl::SetItemPosition(int,tagPOINT) 8039 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 8040 CSize CTabCtrl::SetItemSize(CSize) 8041 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 8042 int CListCtrl::SetItemState(int,tagLVITEMW *) 8043 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 8044 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 8045 int CListCtrl::SetItemText(int,int,wchar_t const *) 8046 int CTreeCtrl::SetItemText(_TREEITEM *,wchar_t const *) 8047 unsigned long CDC::SetLayout(unsigned long) 8048 void CHtmlView::SetLeft(long) 8049 void ATL::CSimpleStringT::SetLength(int) 8050 void ATL::CSimpleStringT::SetLength(int) 8051 void CFile::SetLength(unsigned __int64) 8052 void CInternetFile::SetLength(unsigned __int64) 8053 void CMemFile::SetLength(unsigned __int64) 8054 void COleStreamFile::SetLength(unsigned __int64) 8055 void CSocketFile::SetLength(unsigned __int64) 8056 void CEdit::SetLimitText(unsigned int) 8057 unsigned long CTreeCtrl::SetLineColor(unsigned long) 8058 int CSliderCtrl::SetLineSize(int) 8059 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 8060 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 8061 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 8062 void CArchive::SetLoadParams(unsigned int) 8063 unsigned long CComboBox::SetLocale(unsigned long) 8064 unsigned long CListBox::SetLocale(unsigned long) 8065 void CRecordset::SetLockingMode(unsigned int) 8066 void CDatabase::SetLoginTimeout(unsigned long) 8067 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8068 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8069 int CDC::SetMapMode(int) 8070 int CPreviewDC::SetMapMode(int) 8071 unsigned long CDC::SetMapperFlags(unsigned long) 8072 void CToolTipCtrl::SetMargin(tagRECT *) 8073 void CEdit::SetMargins(unsigned int,unsigned int) 8074 void CRichEditView::SetMargins(CRect const &) 8075 void CPrintInfo::SetMaxPage(unsigned int) 8076 int CMonthCalCtrl::SetMaxSelCount(int) 8077 int CToolBarCtrl::SetMaxTextRows(int) 8078 int CToolTipCtrl::SetMaxTipWidth(int) 8079 int CWnd::SetMenu(CMenu *) 8080 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8081 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8082 void CHtmlView::SetMenuBar(int) 8083 int CMenu::SetMenuContextHelpId(unsigned long) 8084 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 8085 int CMenu::SetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 8086 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 8087 void CFrameWnd::SetMessageText(unsigned int) 8088 void CFrameWnd::SetMessageText(wchar_t const *) 8089 void CStatusBarCtrl::SetMinHeight(int) 8090 void CPrintInfo::SetMinPage(unsigned int) 8091 int CTabCtrl::SetMinTabWidth(int) 8092 int CDC::SetMiterLimit(float) 8093 void CPropertyPage::SetModified(int) 8094 void CDocument::SetModifiedFlag(int) 8095 void COleControl::SetModifiedFlag(int) 8096 void COlePropertyPage::SetModifiedFlag(int) 8097 void CRichEditDoc::SetModifiedFlag(int) 8098 void CEdit::SetModify(int) 8099 void CRichEditCtrl::SetModify(int) 8100 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 8101 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 8102 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 8103 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 8104 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 8105 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 8106 int CMonthCalCtrl::SetMonthDelta(int) 8107 int CPropertySection::SetName(unsigned long,wchar_t const *) 8108 void COleControl::SetNotPermitted() 8109 void CCmdTarget::SetNotSupported() 8110 void COleControl::SetNotSupported() 8111 void CRecordset::SetNullFieldStatus(unsigned long) 8112 void CRecordset::SetNullParamStatus(unsigned long) 8113 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8114 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8115 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 8116 void CArchive::SetObjectSchema(unsigned int) 8117 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8118 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8119 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8120 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8121 void CHtmlView::SetOffline(int) 8122 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 8123 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 8124 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 8125 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 8126 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 8127 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 8128 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 8129 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 8130 int CHeaderCtrl::SetOrderArray(int,int *) 8131 void CPropertySet::SetOSVersion(unsigned long) 8132 void CDC::SetOutputDC(HDC__ *) 8133 void CMetaFileDC::SetOutputDC(HDC__ *) 8134 void CPreviewDC::SetOutputDC(HDC__ *) 8135 int CImageList::SetOverlayImage(int,int) 8136 CWnd * CReBarCtrl::SetOwner(CWnd *) 8137 void CToolBar::SetOwner(CWnd *) 8138 void CToolBarCtrl::SetOwner(CWnd *) 8139 void CWnd::SetOwner(CWnd *) 8140 void CTabCtrl::SetPadding(CSize) 8141 void COlePropertyPage::SetPageName(wchar_t const *) 8142 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 8143 int CSliderCtrl::SetPageSize(int) 8144 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 8145 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 8146 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 8147 void CStatusBar::SetPaneStyle(int,unsigned int) 8148 int CStatusBar::SetPaneText(int,wchar_t const *,int) 8149 void CRichEditView::SetPaperSize(CSize) 8150 int CRichEditCtrl::SetParaFormat(_paraformat &) 8151 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 8152 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 8153 void CRecordset::SetParamNull(int,int) 8154 CWnd * CWnd::SetParent(CWnd *) 8155 int CStatusBarCtrl::SetParts(int,int *) 8156 void CEdit::SetPasswordChar(wchar_t) 8157 void CDataPathProperty::SetPath(wchar_t const *) 8158 void CDocument::SetPathName(wchar_t const *,int) 8159 void COleDocument::SetPathName(wchar_t const *,int) 8160 void CRichEditDoc::SetPathName(wchar_t const *,int) 8161 void CHandleMap::SetPermanent(void *,CObject *) 8162 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 8163 unsigned long CDC::SetPixel(int,int,unsigned long) 8164 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 8165 int CDC::SetPixelV(int,int,unsigned long) 8166 int CDC::SetPixelV(tagPOINT,unsigned long) 8167 int CDC::SetPolyFillMode(int) 8168 int CProgressCtrl::SetPos(int) 8169 void CSliderCtrl::SetPos(int) 8170 int CSpinButtonCtrl::SetPos(int) 8171 int CSpinButtonCtrl::SetPos32(int) 8172 void COleIPFrameWnd::SetPreviewMode(int) 8173 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 8174 int COleClientItem::SetPrintDevice(tagPDW const *) 8175 void CEditView::SetPrinterFont(CFont *) 8176 int CPreviewView::SetPrintView(CView *) 8177 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 8178 void COleControlSite::SetProperty(long,unsigned short,...) 8179 void COleDispatchDriver::SetProperty(long,unsigned short,...) 8180 void CWnd::SetProperty(long,unsigned short,...) 8181 void COleControlSite::SetPropertyV(long,unsigned short,char *) 8182 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 8183 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 8184 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 8185 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 8186 int COlePropertyPage::SetPropText(wchar_t const *,short &) 8187 int COlePropertyPage::SetPropText(wchar_t const *,int &) 8188 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 8189 int COlePropertyPage::SetPropText(wchar_t const *,long &) 8190 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 8191 int COlePropertyPage::SetPropText(wchar_t const *,float &) 8192 int COlePropertyPage::SetPropText(wchar_t const *,double &) 8193 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 8194 long CWnd::SetProxy(IAccessibleProxy *) 8195 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 8196 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 8197 void CDatabase::SetQueryTimeout(unsigned long) 8198 void CCmdUI::SetRadio(int) 8199 void CTestCmdUI::SetRadio(int) 8200 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8201 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8202 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8203 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8204 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8205 void CProgressCtrl::SetRange(short,short) 8206 void CSliderCtrl::SetRange(int,int,int) 8207 void CSpinButtonCtrl::SetRange(short,short) 8208 void CProgressCtrl::SetRange32(int,int) 8209 void CSpinButtonCtrl::SetRange32(int,int) 8210 void CSliderCtrl::SetRangeMax(int,int) 8211 void CSliderCtrl::SetRangeMin(int,int) 8212 int CInternetFile::SetReadBufferSize(unsigned int) 8213 int CEdit::SetReadOnly(int) 8214 int CRichEditCtrl::SetReadOnly(int) 8215 void CEdit::SetRect(tagRECT const *) 8216 void CRichEditCtrl::SetRect(tagRECT const *) 8217 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 8218 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 8219 int COleControl::SetRectInContainer(tagRECT const *) 8220 void CEdit::SetRectNP(tagRECT const *) 8221 void CRgn::SetRectRgn(int,int,int,int) 8222 void CRgn::SetRectRgn(tagRECT const *) 8223 void CWnd::SetRedraw(int) 8224 void CHtmlView::SetRegisterAsBrowser(int) 8225 void CHtmlView::SetRegisterAsDropTarget(int) 8226 void CWinApp::SetRegistryKey(unsigned int) 8227 void CWinApp::SetRegistryKey(wchar_t const *) 8228 void COleMessageFilter::SetRetryReply(unsigned long) 8229 int CDC::SetROP2(int) 8230 void CSplitterWnd::SetRowInfo(int,int,int) 8231 void CToolBarCtrl::SetRows(int,int,tagRECT *) 8232 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 8233 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 8234 void CRecordset::SetRowsetSize(unsigned long) 8235 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 8236 void CPreviewView::SetScaledSize(unsigned int) 8237 void CPreviewDC::SetScaleRatio(int,int) 8238 void CScrollView::SetScaleToFitSize(tagSIZE) 8239 void CDockState::SetScreenSize(CSize &) 8240 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 8241 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 8242 int CScrollBar::SetScrollPos(int,int) 8243 int CWnd::SetScrollPos(int,int,int) 8244 void CScrollBar::SetScrollRange(int,int,int) 8245 void CWnd::SetScrollRange(int,int,int,int) 8246 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8247 void CSplitterWnd::SetScrollStyle(unsigned long) 8248 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8249 int CPropertySection::SetSectionName(wchar_t const *) 8250 void CEdit::SetSel(int,int,int) 8251 void CEdit::SetSel(unsigned long,int) 8252 int CListBox::SetSel(int,int) 8253 void CRichEditCtrl::SetSel(_charrange &) 8254 void CRichEditCtrl::SetSel(long,long) 8255 void CSliderCtrl::SetSelection(int,int) 8256 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 8257 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 8258 void CCheckListBox::SetSelectionCheck(int) 8259 int CListCtrl::SetSelectionMark(int) 8260 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8261 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8262 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8263 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8264 void CHtmlView::SetSilent(int) 8265 int CStatusBarCtrl::SetSimple(int) 8266 long CPrintDialogEx::SetSite(IUnknown *) 8267 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8268 void CByteArray::SetSize(int,int) 8269 void CDWordArray::SetSize(int,int) 8270 void CObArray::SetSize(int,int) 8271 void CPtrArray::SetSize(int,int) 8272 void CStringArray::SetSize(int,int) 8273 void CUIntArray::SetSize(int,int) 8274 void CWordArray::SetSize(int,int) 8275 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8276 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8277 void CSplitterWnd::SetSplitCursor(int) 8278 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8279 void CButton::SetState(int) 8280 void CRecordset::SetState(int,wchar_t const *,unsigned long) 8281 int CToolBarCtrl::SetState(int,unsigned int) 8282 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 8283 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8284 void CHtmlView::SetStatusBar(int) 8285 int CControlBar::SetStatusText(int) 8286 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8287 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8288 int CProgressCtrl::SetStep(int) 8289 void CArchive::SetStoreParams(unsigned int,unsigned int) 8290 int CDC::SetStretchBltMode(int) 8291 void ATL::CSimpleStringT::SetString(wchar_t const *) 8292 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 8293 void ATL::CSimpleStringT::SetString(char const *) 8294 void ATL::CSimpleStringT::SetString(char const *,int) 8295 void COleVariant::SetString(wchar_t const *,unsigned short) 8296 void CToolBarCtrl::SetStyle(unsigned long) 8297 void CDatabase::SetSynchronousMode(int) 8298 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8299 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8300 int CDialogTemplate::SetSystemFont(unsigned short) 8301 int CEdit::SetTabStops(int const &) 8302 int CEdit::SetTabStops(int,int *) 8303 void CEdit::SetTabStops() 8304 void CEditView::SetTabStops(int) 8305 int CListBox::SetTabStops(int const &) 8306 int CListBox::SetTabStops(int,int *) 8307 void CListBox::SetTabStops() 8308 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8309 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8310 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8311 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8312 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 8313 void CCmdUI::SetText(wchar_t const *) 8314 void COleCmdUI::SetText(wchar_t const *) 8315 void COleControl::SetText(wchar_t const *) 8316 int CStatusBarCtrl::SetText(wchar_t const *,int,int) 8317 void CStatusCmdUI::SetText(wchar_t const *) 8318 void CTestCmdUI::SetText(wchar_t const *) 8319 void CToolCmdUI::SetText(wchar_t const *) 8320 unsigned int CDC::SetTextAlign(unsigned int) 8321 int CListCtrl::SetTextBkColor(unsigned long) 8322 int CDC::SetTextCharacterExtra(int) 8323 unsigned long CDC::SetTextColor(unsigned long) 8324 int CListCtrl::SetTextColor(unsigned long) 8325 unsigned long CPreviewDC::SetTextColor(unsigned long) 8326 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8327 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8328 int CDC::SetTextJustification(int,int) 8329 int CRichEditCtrl::SetTextMode(unsigned int) 8330 void CHtmlView::SetTheaterMode(int) 8331 int CWinThread::SetThreadPriority(int) 8332 int CSliderCtrl::SetTic(int) 8333 void CSliderCtrl::SetTicFreq(int) 8334 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8335 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8336 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8337 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8338 void CToolTipCtrl::SetTipBkColor(unsigned long) 8339 int CSliderCtrl::SetTipSide(int) 8340 void CStatusBarCtrl::SetTipText(int,wchar_t const *) 8341 void CToolTipCtrl::SetTipTextColor(unsigned long) 8342 void CDocument::SetTitle(wchar_t const *) 8343 void CFrameWnd::SetTitle(wchar_t const *) 8344 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 8345 void CRichEditDoc::SetTitle(wchar_t const *) 8346 int CToolTipCtrl::SetTitle(unsigned int,wchar_t const *) 8347 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8348 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8349 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8350 void CHtmlView::SetToolBar(int) 8351 void CToolTipCtrl::SetToolInfo(tagTOOLINFOW *) 8352 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8353 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8354 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8355 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8356 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8357 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8358 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8359 void CHtmlView::SetTop(long) 8360 int CComboBox::SetTopIndex(int) 8361 int CListBox::SetTopIndex(int) 8362 void CPreviewDC::SetTopLeftOffset(CSize) 8363 void CProperty::SetType(unsigned long) 8364 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8365 void CRecordset::SetUpdateMethod() 8366 void CThreadSlotData::SetValue(int,void *) 8367 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8368 CSize CDC::SetViewportExt(tagSIZE) 8369 CSize CDC::SetViewportExt(int,int) 8370 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8371 CSize CMetaFileDC::SetViewportExt(int,int) 8372 CSize CPreviewDC::SetViewportExt(int,int) 8373 CPoint CDC::SetViewportOrg(tagPOINT) 8374 CPoint CDC::SetViewportOrg(int,int) 8375 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8376 CPoint CMetaFileDC::SetViewportOrg(int,int) 8377 CPoint CPreviewDC::SetViewportOrg(int,int) 8378 void CHtmlView::SetVisible(int) 8379 void CHtmlView::SetWidth(long) 8380 int CWnd::SetWindowContextHelpId(unsigned long) 8381 CSize CDC::SetWindowExt(tagSIZE) 8382 CSize CDC::SetWindowExt(int,int) 8383 CSize CPreviewDC::SetWindowExt(int,int) 8384 CPoint CDC::SetWindowOrg(int,int) 8385 CPoint CDC::SetWindowOrg(tagPOINT) 8386 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 8387 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8388 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8389 int CWnd::SetWindowRgn(HRGN__ *,int) 8390 void COleControlSite::SetWindowTextW(wchar_t const *) 8391 void CWnd::SetWindowTextW(wchar_t const *) 8392 void CPropertySheet::SetWizardButtons(unsigned long) 8393 void CPropertySheet::SetWizardMode() 8394 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 8395 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 8396 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 8397 void CListCtrl::SetWorkAreas(int,tagRECT *) 8398 int CInternetFile::SetWriteBufferSize(unsigned int) 8399 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 8400 long CDocObjectServer::XOleDocumentView::Show(int) 8401 long COlePropertyPage::XPropertyPage::Show(unsigned int) 8402 void CDockBar::ShowAll(int) 8403 int CReBarCtrl::ShowBand(unsigned int,int) 8404 void CWnd::ShowCaret() 8405 long CRichEditCntrItem::ShowContainerUI(int) 8406 long CRichEditView::ShowContainerUI(int) 8407 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 8408 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8409 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8410 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8411 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 8412 void CComboBox::ShowDropDown(int) 8413 long COleClientItem::XOleClientSite::ShowObject() 8414 long COleControlSite::XOleClientSite::ShowObject() 8415 void CWnd::ShowOwnedPopups(int) 8416 void CFrameWnd::ShowOwnedWindows(int) 8417 long COleControlSite::XOleControlSite::ShowPropertyFrame() 8418 void CScrollBar::ShowScrollBar(int) 8419 void CWnd::ShowScrollBar(unsigned int,int) 8420 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8421 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8422 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8423 int COleControlSite::ShowWindow(int) 8424 int CWnd::ShowWindow(int) 8425 int CAsyncSocket::ShutDown(int) 8426 tagSIZE const CScrollView::sizeDefault 8427 int CMonthCalCtrl::SizeMinReq(int) 8428 void CBitmapButton::SizeToContent() 8429 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 8430 int CReBarCtrl::SizeToRect(CRect &) 8431 long CEnumArray::XEnumVOID::Skip(unsigned long) 8432 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 8433 int CAsyncSocket::Socket(int,long,int,int) 8434 int CTreeCtrl::SortChildren(_TREEITEM *) 8435 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 8436 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 8437 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 8438 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 8439 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 8440 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 8441 int CSplitterWnd::SplitColumn(int) 8442 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 8443 int CSplitterWnd::SplitRow(int) 8444 int CDC::StartDocW(_DOCINFOW *) 8445 int CDC::StartDocW(wchar_t const *) 8446 void CDockContext::StartDrag(CPoint) 8447 int CDC::StartPage() 8448 void CDockContext::StartResize(int,CPoint) 8449 void CSplitterWnd::StartTracking(int) 8450 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 8451 int CProgressCtrl::StepIt() 8452 int CAnimateCtrl::Stop() 8453 void CHtmlView::Stop() 8454 void CRichEditCtrl::StopGroupTyping() 8455 void CSplitterWnd::StopTracking(int) 8456 void CRuntimeClass::Store(CArchive &)const 8457 void CRecordset::StoreFields() 8458 void CRichEditView::Stream(CArchive &,int) 8459 long CRichEditCtrl::StreamIn(int,_editstream &) 8460 long CRichEditCtrl::StreamOut(int,_editstream &) 8461 void CDockContext::Stretch(CPoint) 8462 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 8463 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8464 int ATL::CSimpleStringT::StringLength(char const *) 8465 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8466 int ATL::CSimpleStringT::StringLength(char const *) 8467 int CDC::StrokeAndFillPath() 8468 int CDC::StrokePath() 8469 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 8470 int CWnd::SubclassWindow(HWND__ *) 8471 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 8472 int COleDocObjectItem::SupportsIPrint() 8473 unsigned long CWinThread::SuspendThread() 8474 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8475 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8476 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 8477 CSize CDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 8478 CSize CDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8479 CSize CMetaFileDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 8480 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8481 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8482 void CRichEditView::TextNotFound(wchar_t const *) 8483 int CDC::TextOutW(int,int,ATL::CStringT > > const &) 8484 int CDC::TextOutW(int,int,wchar_t const *,int) 8485 int CMetaFileDC::TextOutW(int,int,ATL::CStringT > > const &) 8486 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 8487 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 8488 void CDatabase::ThrowDBException(short) 8489 void CRecordset::ThrowDBException(short,void *) 8490 void CFileException::ThrowErrno(int,wchar_t const *) 8491 void COleControl::ThrowError(long,unsigned int,unsigned int) 8492 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 8493 void ATL::CSimpleStringT::ThrowMemoryException() 8494 void ATL::CSimpleStringT::ThrowMemoryException() 8495 void CFileException::ThrowOsError(long,wchar_t const *) 8496 void CDockContext::ToggleDocking() 8497 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 8498 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 8499 COleVariant CDataSourceControl::ToVariant(int) 8500 ATL::CTraceCategory traceAppMsg 8501 ATL::CTraceCategory traceCmdRouting 8502 ATL::CTraceCategory traceDatabase 8503 ATL::CTraceCategory traceDumpContext 8504 void CDBException::TraceErrorMessage(wchar_t const *)const 8505 ATL::CTraceCategory traceGdi 8506 ATL::CTraceCategory traceHtml 8507 ATL::CTraceCategory traceInternet 8508 ATL::CTraceCategory traceKernel 8509 ATL::CTraceCategory traceMemory 8510 ATL::CTraceCategory traceMultiApp 8511 ATL::CTraceCategory traceOle 8512 ATL::CTraceCategory traceSocket 8513 ATL::CTraceCategory traceUser 8514 ATL::CTraceCategory traceWinMsg 8515 int CDockContext::Track() 8516 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 8517 void CSplitterWnd::TrackColumnSize(int,int) 8518 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 8519 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 8520 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 8521 void CSplitterWnd::TrackRowSize(int,int) 8522 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 8523 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8524 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8525 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8526 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8527 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8528 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 8529 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 8530 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 8531 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 8532 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 8533 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 8534 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 8535 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8536 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8537 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8538 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 8539 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 8540 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 8541 ATL::CStringT > > & ATL::CStringT > >::Trim() 8542 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 8543 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 8544 ATL::CStringT > > & ATL::CStringT > >::Trim() 8545 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 8546 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 8547 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8548 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 8549 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 8550 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8551 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 8552 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 8553 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8554 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 8555 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 8556 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8557 void ATL::CSimpleStringT::Truncate(int) 8558 void ATL::CSimpleStringT::Truncate(int) 8559 long CDocObjectServer::XOleDocumentView::UIActivate(int) 8560 void COccManager::UIActivateControl(CWnd *) 8561 long COleControl::XOleInPlaceObject::UIDeactivate() 8562 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 8563 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 8564 void COleSafeArray::UnaccessData() 8565 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 8566 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 8567 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 8568 long COleControl::XOleObject::Unadvise(unsigned long) 8569 long COleServerDoc::XOleObject::Unadvise(unsigned long) 8570 long COleServerItem::XOleObject::Unadvise(unsigned long) 8571 void CRecordset::UnbindFieldsForUpdate() 8572 long COleControl::XOleCache::Uncache(unsigned long) 8573 int CEdit::Undo() 8574 int CRichEditCtrl::Undo() 8575 long COleControl::XViewObject::Unfreeze(unsigned long) 8576 int CCriticalSection::Unlock() 8577 int CEvent::Unlock() 8578 int CMultiLock::Unlock(long,long *) 8579 int CMultiLock::Unlock() 8580 int CMutex::Unlock() 8581 void COleSafeArray::Unlock() 8582 int CSemaphore::Unlock(long,long *) 8583 int CSemaphore::Unlock() 8584 int CSingleLock::Unlock(long,long *) 8585 int CSingleLock::Unlock() 8586 void CTypeLibCache::Unlock() 8587 void ATL::CSimpleStringT::UnlockBuffer() 8588 void ATL::CSimpleStringT::UnlockBuffer() 8589 void CEditView::UnlockBuffer()const 8590 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 8591 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 8592 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 8593 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 8594 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 8595 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 8596 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 8597 void CWnd::UnlockWindowUpdate() 8598 int CGdiObject::UnrealizeObject() 8599 int COleObjectFactory::Unregister() 8600 int COleTemplateServer::Unregister() 8601 int CWinApp::Unregister() 8602 int COleObjectFactory::UnregisterAll() 8603 void CDocManager::UnregisterShellFileTypes() 8604 void CWinApp::UnregisterShellFileTypes() 8605 HWND__ * CWnd::UnsubclassWindow() 8606 int CListCtrl::Update(int) 8607 int CRecordset::Update() 8608 void CToolTipCtrl::Update() 8609 long CDocObjectServer::XOleObject::Update() 8610 long COleControl::XOleObject::Update() 8611 long COleServerDoc::XOleObject::Update() 8612 long COleServerItem::XOleObject::Update() 8613 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 8614 void CStatusBar::UpdateAllPanes(int,int) 8615 void CDocument::UpdateAllViews(CView *,long,CObject *) 8616 void CScrollView::UpdateBars() 8617 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 8618 void CDC::UpdateColors() 8619 long CDataSourceControl::UpdateControls() 8620 long CDataSourceControl::UpdateCursor() 8621 void CMemoryState::UpdateData() 8622 int CWnd::UpdateData(int) 8623 void CWnd::UpdateDialogControls(CCmdTarget *,int) 8624 void CDocument::UpdateFrameCounts() 8625 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 8626 int CRecordset::UpdateInsertDelete() 8627 void COleClientItem::UpdateItemType() 8628 int COleClientItem::UpdateLink() 8629 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 8630 void CRecentFileList::UpdateMenu(CCmdUI *) 8631 void COleDocument::UpdateModifiedFlag() 8632 void CRichEditDoc::UpdateModifiedFlag() 8633 void CRichEditDoc::UpdateObjectCache() 8634 void CWinApp::UpdatePrinterSelection(int) 8635 int COleObjectFactory::UpdateRegistry(int) 8636 void COleObjectFactory::UpdateRegistry(wchar_t const *) 8637 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 8638 int COleObjectFactory::UpdateRegistryAll(int) 8639 void CDockContext::UpdateState(int *,int) 8640 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 8641 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 8642 long CBrowserControlSite::UpdateUI() 8643 long CDHtmlDialog::UpdateUI() 8644 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 8645 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 8646 void COleLinkingDoc::UpdateVisibleLock(int,int) 8647 void CWnd::UpdateWindow() 8648 void CWnd::ValidateRect(tagRECT const *) 8649 void CWnd::ValidateRgn(CRgn *) 8650 void CDatabase::VerifyConnect() 8651 unsigned long CRecordset::VerifyCursorSupport() 8652 void CRecordset::VerifyDriverBehavior() 8653 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 8654 int COleObjectFactory::VerifyUserLicense() 8655 int CListBox::VKeyToItem(unsigned int,unsigned int) 8656 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 8657 int CDC::WidenPath() 8658 int COleControl::WillAmbientsBeValidDuringLoad() 8659 CWnd * CWnd::WindowFromPoint(tagPOINT) 8660 long CControlBar::WindowProc(unsigned int,unsigned int,long) 8661 long COleControl::WindowProc(unsigned int,unsigned int,long) 8662 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 8663 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 8664 long CReBar::WindowProc(unsigned int,unsigned int,long) 8665 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 8666 long CWnd::WindowProc(unsigned int,unsigned int,long) 8667 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 8668 void CWnd::WinHelpInternal(unsigned long,unsigned int) 8669 void CWinApp::WinHelpW(unsigned long,unsigned int) 8670 void CWnd::WinHelpW(unsigned long,unsigned int) 8671 CWnd const CWnd::wndBottom 8672 CWnd const CWnd::wndNoTopMost 8673 CWnd const CWnd::wndTop 8674 CWnd const CWnd::wndTopMost 8675 void CRichEditView::WrapChanged() 8676 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 8677 void CArchive::Write(void const *,unsigned int) 8678 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 8679 void CFile::Write(void const *,unsigned int) 8680 void CGopherFile::Write(void const *,unsigned int) 8681 int CImageList::Write(CArchive *) 8682 void CInternetFile::Write(void const *,unsigned int) 8683 void CMemFile::Write(void const *,unsigned int) 8684 void COleStreamFile::Write(void const *,unsigned int) 8685 void CSocketFile::Write(void const *,unsigned int) 8686 void CStdioFile::Write(void const *,unsigned int) 8687 void CArchive::WriteClass(CRuntimeconst *) 8688 void CArchive::WriteCount(unsigned long) 8689 void COleClientItem::WriteItem(CArchive &) 8690 void COleClientItem::WriteItemCompound(CArchive &) 8691 void COleClientItem::WriteItemFlat(CArchive &) 8692 void CRecentFileList::WriteList() 8693 int CPropertySection::WriteNameDictToStream(IStream *) 8694 void CArchive::WriteObject(CObject const *) 8695 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 8696 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 8697 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 8698 void CArchive::WriteString(wchar_t const *) 8699 void CGopherFile::WriteString(wchar_t const *) 8700 void CInternetFile::WriteString(wchar_t const *) 8701 void CStdioFile::WriteString(wchar_t const *) 8702 void CEditView::WriteToArchive(CArchive &) 8703 int CProperty::WriteToStream(IStream *) 8704 int CPropertySection::WriteToStream(IStream *) 8705 int CPropertySet::WriteToStream(IStream *) 8706 _AFX_DAO_STATE::_AFX_DAO_STATE() 8707 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 8708 CDaoException::CDaoException() 8709 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 8710 CDaoIndexInfo::CDaoIndexInfo() 8711 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 8712 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 8713 CDaoRecordView::CDaoRecordView(unsigned int) 8714 CDaoRecordView::CDaoRecordView(wchar_t const *) 8715 CDaoRelationInfo::CDaoRelationInfo() 8716 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 8717 CDaoWorkspace::CDaoWorkspace() 8718 _AFX_DAO_STATE::~_AFX_DAO_STATE() 8719 CDaoDatabase::~CDaoDatabase() 8720 CDaoException::~CDaoException() 8721 CDaoIndexInfo::~CDaoIndexInfo() 8722 CDaoQueryDef::~CDaoQueryDef() 8723 CDaoRecordset::~CDaoRecordset() 8724 CDaoRecordView::~CDaoRecordView() 8725 CDaoRelationInfo::~CDaoRelationInfo() 8726 CDaoTableDef::~CDaoTableDef() 8727 CDaoWorkspace::~CDaoWorkspace() 8728 void CDaoRecordset::AddNew() 8729 void AfxDaoCheck(long,char const *,char const *,int,int,int) 8730 _DAODBEngine * AfxDaoGetEngine() 8731 void AfxDaoInit() 8732 void AfxDaoTerm() 8733 void AfxDaoTrace(long,char const *,char const *,int) 8734 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 8735 _AFX_DAO_STATE * AfxGetDaoState() 8736 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 8737 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 8738 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8739 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 8740 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 8741 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 8742 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 8743 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8744 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 8745 void AfxThrowDaoException(int,long) 8746 void CDaoRecordset::AllocCache() 8747 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 8748 void CDaoRecordset::AllocDatabase() 8749 void AllocLongBinary(CLongBinary &,unsigned long) 8750 void CDaoQueryDef::Append() 8751 void CDaoTableDef::Append() 8752 void CDaoWorkspace::Append() 8753 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 8754 void CDaoDatabase::AssertValid()const 8755 void CDaoQueryDef::AssertValid()const 8756 void CDaoRecordset::AssertValid()const 8757 void CDaoRecordView::AssertValid()const 8758 void CDaoTableDef::AssertValid()const 8759 void CDaoWorkspace::AssertValid()const 8760 void CDaoWorkspace::BeginTrans() 8761 void CDaoRecordset::BindFields() 8762 void CDaoRecordset::BindParameters() 8763 void CDaoRecordset::BuildParameterList() 8764 void CDaoRecordset::BuildSelectList() 8765 void CDaoRecordset::BuildSQL() 8766 int CDaoRecordset::CanAppend()const 8767 int CDaoRecordset::CanBookmark() 8768 void CDaoRecordset::CancelUpdate() 8769 int CDaoRecordset::CanRestart() 8770 int CDaoRecordset::CanScroll()const 8771 int CDaoDatabase::CanTransact() 8772 int CDaoRecordset::CanTransact() 8773 int CDaoDatabase::CanUpdate() 8774 int CDaoQueryDef::CanUpdate() 8775 int CDaoRecordset::CanUpdate()const 8776 int CDaoTableDef::CanUpdate() 8777 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 8778 void CDaoRecordset::ClearFieldStatusFlags() 8779 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 8780 void CDaoDatabase::Close() 8781 void CDaoQueryDef::Close() 8782 void CDaoRecordset::Close() 8783 void CDaoTableDef::Close() 8784 void CDaoWorkspace::Close() 8785 void CDaoWorkspace::CommitTrans() 8786 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 8787 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 8788 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 8789 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 8790 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 8791 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 8792 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 8793 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 8794 void CDaoTableDef::CreateField(CDaoFieldInfo &) 8795 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 8796 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 8797 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 8798 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 8799 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8800 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8801 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8802 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 8803 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8804 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8805 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8806 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 8807 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 8808 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 8809 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 8810 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 8811 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 8812 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 8813 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 8814 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 8815 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 8816 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8817 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 8818 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 8819 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 8820 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 8821 void CDaoRecordset::Delete() 8822 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 8823 void CDaoTableDef::DeleteField(int) 8824 void CDaoTableDef::DeleteField(wchar_t const *) 8825 void CDaoTableDef::DeleteIndex(int) 8826 void CDaoTableDef::DeleteIndex(wchar_t const *) 8827 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 8828 void CDaoDatabase::DeleteRelation(wchar_t const *) 8829 void CDaoDatabase::DeleteTableDef(wchar_t const *) 8830 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 8831 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 8832 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 8833 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 8834 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 8835 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 8836 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 8837 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 8838 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 8839 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 8840 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 8841 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 8842 void CDaoDatabase::Dump(CDumpContext &)const 8843 void CDaoDatabaseInfo::Dump(CDumpContext &)const 8844 void CDaoErrorInfo::Dump(CDumpContext &)const 8845 void CDaoFieldInfo::Dump(CDumpContext &)const 8846 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 8847 void CDaoIndexInfo::Dump(CDumpContext &)const 8848 void CDaoParameterInfo::Dump(CDumpContext &)const 8849 void CDaoQueryDef::Dump(CDumpContext &)const 8850 void CDaoQueryDefInfo::Dump(CDumpContext &)const 8851 void CDaoRecordset::Dump(CDumpContext &)const 8852 void CDaoRecordView::Dump(CDumpContext &)const 8853 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 8854 void CDaoRelationInfo::Dump(CDumpContext &)const 8855 void CDaoTableDef::Dump(CDumpContext &)const 8856 void CDaoTableDefInfo::Dump(CDumpContext &)const 8857 void CDaoWorkspace::Dump(CDumpContext &)const 8858 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 8859 void CDaoRecordset::Edit() 8860 void CDaoDatabase::Execute(wchar_t const *,int) 8861 void CDaoQueryDef::Execute(int) 8862 void CDaoRecordset::FillCache(long *,COleVariant *) 8863 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 8864 void CDaoException::FillErrorInfo() 8865 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 8866 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 8867 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 8868 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 8869 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 8870 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 8871 int CDaoRecordset::Find(long,wchar_t const *) 8872 int CDaoRecordset::FindFirst(wchar_t const *) 8873 int CDaoRecordset::FindLast(wchar_t const *) 8874 int CDaoRecordset::FindNext(wchar_t const *) 8875 int CDaoRecordset::FindPrev(wchar_t const *) 8876 void CDaoRecordset::Fixup() 8877 void CDaoRecordset::FreeCache() 8878 long CDaoRecordset::GetAbsolutePosition() 8879 long CDaoTableDef::GetAttributes() 8880 COleVariant CDaoRecordset::GetBookmark() 8881 long CDaoRecordset::GetCacheSize() 8882 COleVariant CDaoRecordset::GetCacheStart() 8883 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 8884 ATL::CStringT > > CDaoDatabase::GetConnect() 8885 ATL::CStringT > > CDaoQueryDef::GetConnect() 8886 ATL::CStringT > > CDaoTableDef::GetConnect() 8887 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 8888 void CDaoRecordset::GetDataAndFixupNulls() 8889 short CDaoWorkspace::GetDatabaseCount() 8890 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 8891 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 8892 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 8893 ATL::COleDateTime CDaoRecordset::GetDateCreated() 8894 ATL::COleDateTime CDaoTableDef::GetDateCreated() 8895 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 8896 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 8897 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 8898 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 8899 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 8900 short CDaoRecordset::GetEditMode() 8901 short CDaoException::GetErrorCount() 8902 void CDaoException::GetErrorInfo(int) 8903 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 8904 short CDaoQueryDef::GetFieldCount() 8905 short CDaoRecordset::GetFieldCount() 8906 short CDaoTableDef::GetFieldCount() 8907 int CDaoRecordset::GetFieldIndex(void *) 8908 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8909 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8910 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8911 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8912 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8913 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8914 unsigned long CDaoRecordset::GetFieldLength(int) 8915 COleVariant CDaoRecordset::GetFieldValue(int) 8916 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 8917 void CDaoRecordset::GetFieldValue(int,COleVariant &) 8918 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 8919 short CDaoRecordset::GetIndexCount() 8920 short CDaoTableDef::GetIndexCount() 8921 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8922 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 8923 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8924 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 8925 ATL::CStringT > > CDaoWorkspace::GetIniPath() 8926 int CDaoWorkspace::GetIsolateODBCTrans() 8927 COleVariant CDaoRecordset::GetLastModifiedBookmark() 8928 int CDaoRecordset::GetLockingMode() 8929 short CDaoWorkspace::GetLoginTimeout() 8930 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 8931 ATL::CStringT > > CDaoDatabase::GetName() 8932 ATL::CStringT > > CDaoQueryDef::GetName() 8933 ATL::CStringT > > CDaoRecordset::GetName() 8934 ATL::CStringT > > CDaoTableDef::GetName() 8935 ATL::CStringT > > CDaoWorkspace::GetName() 8936 short CDaoQueryDef::GetODBCTimeout() 8937 short CDaoQueryDef::GetParameterCount() 8938 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 8939 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 8940 COleVariant CDaoQueryDef::GetParamValue(int) 8941 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 8942 COleVariant CDaoRecordset::GetParamValue(int) 8943 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 8944 float CDaoRecordset::GetPercentPosition() 8945 short CDaoDatabase::GetQueryDefCount() 8946 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 8947 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 8948 short CDaoDatabase::GetQueryTimeout() 8949 long CDaoRecordset::GetRecordCount() 8950 long CDaoTableDef::GetRecordCount() 8951 long CDaoDatabase::GetRecordsAffected() 8952 long CDaoQueryDef::GetRecordsAffected() 8953 short CDaoDatabase::GetRelationCount() 8954 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 8955 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 8956 int CDaoQueryDef::GetReturnsRecords() 8957 CRuntime* CDaoDatabase::GetRuntimeClass()const 8958 CRuntime* CDaoException::GetRuntimeClass()const 8959 CRuntime* CDaoQueryDef::GetRuntimeClass()const 8960 CRuntime* CDaoRecordset::GetRuntimeClass()const 8961 CRuntime* CDaoRecordView::GetRuntimeClass()const 8962 CRuntime* CDaoTableDef::GetRuntimeClass()const 8963 CRuntime* CDaoWorkspace::GetRuntimeClass()const 8964 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 8965 ATL::CStringT > > CDaoQueryDef::GetSQL() 8966 ATL::CStringT > > CDaoRecordset::GetSQL()const 8967 short CDaoDatabase::GetTableDefCount() 8968 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 8969 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 8970 CRuntime* CDaoDatabase::GetThisClass() 8971 CRuntime* CDaoException::GetThisClass() 8972 CRuntime* CDaoQueryDef::GetThisClass() 8973 CRuntime* CDaoRecordset::GetThisClass() 8974 CRuntime* CDaoRecordView::GetThisClass() 8975 CRuntime* CDaoTableDef::GetThisClass() 8976 CRuntime* CDaoWorkspace::GetThisClass() 8977 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 8978 short CDaoQueryDef::GetType() 8979 short CDaoRecordset::GetType() 8980 ATL::CStringT > > CDaoWorkspace::GetUserNameW() 8981 ATL::CStringT > > CDaoRecordset::GetValidationRule() 8982 ATL::CStringT > > CDaoTableDef::GetValidationRule() 8983 ATL::CStringT > > CDaoRecordset::GetValidationText() 8984 ATL::CStringT > > CDaoTableDef::GetValidationText() 8985 ATL::CStringT > > CDaoDatabase::GetVersion() 8986 ATL::CStringT > > CDaoWorkspace::GetVersion() 8987 short CDaoWorkspace::GetWorkspaceCount() 8988 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 8989 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 8990 void CDaoWorkspace::Idle(int) 8991 void CDaoWorkspace::InitDatabasesCollection() 8992 void CDaoException::InitErrorsCollection() 8993 void CDaoQueryDef::InitFieldsCollection() 8994 void CDaoRecordset::InitFieldsCollection() 8995 void CDaoTableDef::InitFieldsCollection() 8996 void CDaoWorkspace::InitializeEngine() 8997 void CDaoRecordset::InitIndexesCollection() 8998 void CDaoTableDef::InitIndexesCollection() 8999 void CDaoQueryDef::InitParametersCollection() 9000 void CDaoDatabase::InitQueryDefsCollection() 9001 void CDaoDatabase::InitRelationsCollection() 9002 void CDaoDatabase::InitTableDefsCollection() 9003 void CDaoDatabase::InitWorkspace() 9004 void CDaoWorkspace::InitWorkspacesCollection() 9005 int CDaoRecordset::IsBOF()const 9006 int CDaoRecordset::IsDeleted()const 9007 int CDaoRecordset::IsEOF()const 9008 int CDaoRecordset::IsFieldDirty(void *) 9009 int CDaoRecordset::IsFieldNull(void *) 9010 int CDaoRecordset::IsFieldNullable(void *) 9011 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 9012 int CDaoRecordset::IsFieldStatusNull(unsigned int) 9013 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 9014 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 9015 int CDaoRecordset::IsMatch() 9016 int CDaoWorkspace::IsNew()const 9017 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 9018 int CDaoRecordView::IsOnFirstRecord() 9019 int CDaoRecordView::IsOnLastRecord() 9020 int CDaoDatabase::IsOpen()const 9021 int CDaoQueryDef::IsOpen()const 9022 int CDaoRecordset::IsOpen()const 9023 int CDaoTableDef::IsOpen()const 9024 int CDaoWorkspace::IsOpen()const 9025 int CDaoFieldExchange::IsValidOperation() 9026 void CDaoRecordset::LoadFields() 9027 void CDaoRecordset::MarkForAddNew() 9028 void CDaoRecordset::MarkForEdit() 9029 void CDaoRecordset::Move(long) 9030 void CDaoRecordset::MoveFirst() 9031 void CDaoRecordset::MoveLast() 9032 void CDaoRecordset::MoveNext() 9033 void CDaoRecordset::MovePrev() 9034 void CDaoRecordView::OnInitialUpdate() 9035 void CDaoRecordView::OnMove(int,int) 9036 int CDaoRecordView::OnMove(unsigned int) 9037 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 9038 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 9039 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 9040 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 9041 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 9042 void CDaoQueryDef::Open(wchar_t const *) 9043 void CDaoRecordset::Open(int,wchar_t const *,int) 9044 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 9045 void CDaoRecordset::Open(CDaoTableDef *,int,int) 9046 void CDaoTableDef::Open(wchar_t const *) 9047 void CDaoWorkspace::Open(wchar_t const *) 9048 void CDaoTableDef::RefreshLink() 9049 void CDaoWorkspace::RepairDatabase(wchar_t const *) 9050 void CDaoRecordset::Requery() 9051 void CDaoWorkspace::Rollback() 9052 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 9053 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 9054 void CDaoRecordset::SetAbsolutePosition(long) 9055 void CDaoTableDef::SetAttributes(long) 9056 void CDaoRecordset::SetBookmark(COleVariant) 9057 void CDaoRecordset::SetCacheSize(long) 9058 void CDaoRecordset::SetCacheStart(COleVariant) 9059 void CDaoQueryDef::SetConnect(wchar_t const *) 9060 void CDaoTableDef::SetConnect(wchar_t const *) 9061 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 9062 void CDaoRecordset::SetCursorAttributes() 9063 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 9064 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 9065 void CDaoRecordset::SetDirtyFields() 9066 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 9067 void CDaoRecordset::SetFieldDirty(void *,int) 9068 void CDaoRecordset::SetFieldNull(void *,int) 9069 void CDaoFieldExchange::SetFieldType(unsigned int) 9070 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 9071 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 9072 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 9073 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 9074 void CDaoRecordset::SetFieldValueNull(int) 9075 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 9076 void CDaoWorkspace::SetIniPath(wchar_t const *) 9077 void CDaoWorkspace::SetIsolateODBCTrans(int) 9078 void CDaoRecordset::SetLockingMode(int) 9079 void CDaoWorkspace::SetLoginTimeout(short) 9080 void CDaoQueryDef::SetName(wchar_t const *) 9081 void CDaoTableDef::SetName(wchar_t const *) 9082 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 9083 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 9084 void CDaoRecordset::SetNullFieldStatus(unsigned int) 9085 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 9086 void CDaoQueryDef::SetODBCTimeout(short) 9087 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 9088 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 9089 void CDaoRecordset::SetParamValue(int,COleVariant const &) 9090 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 9091 void CDaoQueryDef::SetParamValueNull(int) 9092 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 9093 void CDaoRecordset::SetParamValueNull(int) 9094 void CDaoRecordset::SetParamValueNull(wchar_t const *) 9095 void CDaoRecordset::SetPercentPosition(float) 9096 void CDaoDatabase::SetQueryTimeout(short) 9097 void CDaoQueryDef::SetReturnsRecords(int) 9098 void CDaoTableDef::SetSourceTableName(wchar_t const *) 9099 void CDaoQueryDef::SetSQL(wchar_t const *) 9100 void CDaoTableDef::SetValidationRule(wchar_t const *) 9101 void CDaoTableDef::SetValidationText(wchar_t const *) 9102 void CDaoRecordset::StoreFields() 9103 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 9104 void CDaoDatabase::ThrowDaoException(int) 9105 void CDaoQueryDef::ThrowDaoException(int) 9106 void CDaoRecordset::ThrowDaoException(int) 9107 void CDaoTableDef::ThrowDaoException(int) 9108 void CDaoWorkspace::ThrowDaoException(int) 9109 void ThrowGetRowsDaoException(long) 9110 void CDaoRecordset::Update() 9111 CRuntimeconst CDaoDatabase::classCDaoDatabase 9112 CRuntimeconst CDaoException::classCDaoException 9113 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 9114 CRuntimeconst CDaoRecordset::classCDaoRecordset 9115 CRuntimeconst CDaoRecordView::classCDaoRecordView 9116 CRuntimeconst CDaoTableDef::classCDaoTableDef 9117 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 9118 CRuntimeconst CDatabase::classCDatabase 9119 CRuntimeconst CDBException::classCDBException 9120 CRuntimeconst CLongBinary::classCLongBinary 9121 CRuntimeconst COleDBRecordView::classCOleDBRecordView 9122 CRuntimeconst CRecordset::classCRecordset 9123 CRuntimeconst CRecordView::classCRecordView 9124 AFX_MSGMAP const CDaoRecordView::messageMap 9125 AFX_MSGMAP const COleDBRecordView::messageMap 9126 AFX_MSGMAP const CRecordView::messageMap ================================================ FILE: Bin/i386/mfc_sym/mfc80.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 unsigned int HashKey(tagVARIANT const &) 258 unsigned int HashKey(wchar_t const *) 259 unsigned int HashKey(char const *) 260 unsigned int HashKey(ATL::CComBSTR) 261 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 264 void SerializeElements(CArchive &,COleVariant *,int) 265 void * operator new[](unsigned int) 266 void operator delete[](void *) 267 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 268 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 269 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 270 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 271 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 272 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 275 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 277 ATL::CStringT > >::CStringT > >(wchar_t,int) 278 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 279 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 280 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 281 ATL::CStringT > >::CStringT > >(char,int) 282 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t const *) 284 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 285 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 287 ATL::CStringT > >::CStringT > >(char const *) 288 ATL::CStringT > >::CStringT > >(char const *,int) 289 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 290 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 291 ATL::CStringT > >::CStringT > >(unsigned char const *) 292 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >() 294 ATL::CStringT > >::CStringT > >(wchar_t,int) 295 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 296 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 298 ATL::CStringT > >::CStringT > >(char,int) 299 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(wchar_t const *) 301 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 302 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 304 ATL::CStringT > >::CStringT > >(char const *) 305 ATL::CStringT > >::CStringT > >(char const *,int) 306 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 307 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 308 ATL::CStringT > >::CStringT > >(unsigned char const *) 309 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >() 311 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 312 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 313 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 314 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 315 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 316 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 317 CArchive::CArchive(CFile *,unsigned int,int,void *) 318 CArchivePropExchange::CArchivePropExchange(CArchive &) 319 CArchiveStream::CArchiveStream(CArchive *) 320 CAsyncMonikerFile::CAsyncMonikerFile() 321 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 322 CAsyncSocket::CAsyncSocket() 323 CBlobProperty::CBlobProperty(void *) 324 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 325 CBrush::CBrush(int,unsigned long) 326 CBrush::CBrush(unsigned long) 327 CBrush::CBrush(CBitmap *) 328 CByteArray::CByteArray() 329 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 330 CClientDC::CClientDC(CWnd *) 331 CCmdTarget::CCmdTarget() 332 CCmdUI::CCmdUI() 333 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 334 CCommandLineInfo::CCommandLineInfo() 335 CConnectionPoint::CConnectionPoint() 336 CControlBar::CControlBar() 337 CControlBarInfo::CControlBarInfo() 338 COleControl::CControlDataSource::CControlDataSource(COleControl *) 339 CControlFrameWnd::CControlFrameWnd(COleControl *) 340 CCtrlView::CCtrlView(char const *,unsigned long) 341 CDatabase::CDatabase() 342 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 343 CDataExchange::CDataExchange(CWnd *,int) 344 CDataSourceControl::CDataSourceControl(COleControlSite *) 345 CDBException::CDBException(short) 346 CDBVariant::CDBVariant() 347 CDC::CDC() 348 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 349 CDHtmlControlSink::CDHtmlControlSink() 350 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 351 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 352 CDHtmlDialog::CDHtmlDialog() 353 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 354 CDialog::CDialog(unsigned int,CWnd *) 355 CDialog::CDialog(char const *,CWnd *) 356 CDialog::CDialog() 357 CDialogBar::CDialogBar() 358 CDialogTemplate::CDialogTemplate(void *) 359 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 360 CDocItem::CDocItem() 361 CDockBar::CDockBar(int) 362 CDockContext::CDockContext(CControlBar *) 363 CDockState::CDockState() 364 CDocManager::CDocManager() 365 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 366 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 367 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 368 CDocument::CDocument() 369 CDumpContext::CDumpContext(CFile *) 370 CDWordArray::CDWordArray() 371 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 372 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 373 CEditView::CEditView() 374 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 375 CEnumConnections::CEnumConnections(void const *,unsigned int) 376 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 377 CEnumFormatEtc::CEnumFormatEtc() 378 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 379 CException::CException(int) 380 CException::CException() 381 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 382 CFile::CFile(void *) 383 CFile::CFile(char const *,unsigned int) 384 CFile::CFile() 385 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long) 386 CFileFind::CFileFind() 387 CFindReplaceDialog::CFindReplaceDialog() 388 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 389 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 390 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 391 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 392 CFontHolder::CFontHolder(IPropertyNotifySink *) 393 CFormView::CFormView(unsigned int) 394 CFormView::CFormView(char const *) 395 CFrameWnd::CFrameWnd() 396 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 397 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 398 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 399 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 400 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 401 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 402 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 403 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 404 CGopherLocator::CGopherLocator(char const *,unsigned long) 405 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 406 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 407 CHtmlEditCtrl::CHtmlEditCtrl() 408 CHtmlEditDoc::CHtmlEditDoc() 409 CHtmlEditView::CHtmlEditView() 410 CHtmlView::CHtmlView() 411 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 412 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 413 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 414 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 415 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 416 CImageList::CImageList() 417 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 418 CInternetException::CInternetException(unsigned long) 419 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 420 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 421 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 422 CLongBinary::CLongBinary() 423 CMapPtrToPtr::CMapPtrToPtr(int) 424 CMapPtrToWord::CMapPtrToWord(int) 425 CMapStringToOb::CMapStringToOb(int) 426 CMapStringToPtr::CMapStringToPtr(int) 427 CMapStringToString::CMapStringToString(int) 428 CMapWordToOb::CMapWordToOb(int) 429 CMapWordToPtr::CMapWordToPtr(int) 430 CMDIChildWnd::CMDIChildWnd() 431 CMDIFrameWnd::CMDIFrameWnd() 432 CMemFile::CMemFile(unsigned int) 433 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 434 CMetaFileDC::CMetaFileDC() 435 CMiniDockFrameWnd::CMiniDockFrameWnd() 436 CMiniFrameWnd::CMiniFrameWnd() 437 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 438 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 439 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 440 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 441 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 442 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 443 CObArray::CObArray() 444 CObList::CObList(int) 445 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 446 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 447 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 448 COleClientItem::COleClientItem(COleDocument *) 449 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 450 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 451 COleControl::COleControl() 452 COleControlContainer::COleControlContainer(CWnd *) 453 COleControlLock::COleControlLock(_GUID const &) 454 COleControlSite::COleControlSite(COleControlContainer *) 455 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 456 COleCurrency::COleCurrency(long,long) 457 COleDataObject::COleDataObject() 458 COleDataSource::COleDataSource() 459 COleDialog::COleDialog(CWnd *) 460 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 461 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 462 COleDispatchDriver::COleDispatchDriver() 463 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 464 COleDocIPFrameWnd::COleDocIPFrameWnd() 465 COleDocObjectItem::COleDocObjectItem(COleDocument *) 466 COleDocument::COleDocument() 467 COleDropSource::COleDropSource() 468 COleDropTarget::COleDropTarget() 469 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 470 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 471 COleIPFrameWnd::COleIPFrameWnd() 472 COleLinkingDoc::COleLinkingDoc() 473 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 474 COleMessageFilter::COleMessageFilter() 475 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 476 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 477 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 478 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 479 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 480 COleResizeBar::COleResizeBar() 481 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 482 COleSafeArray::COleSafeArray(tagVARIANT const &) 483 COleSafeArray::COleSafeArray(COleSafeArray const &) 484 COleSafeArray::COleSafeArray(COleVariant const &) 485 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 486 COleSafeArray::COleSafeArray(tagVARIANT const *) 487 COleServerDoc::COleServerDoc() 488 COleServerItem::COleServerItem(COleServerDoc *,int) 489 COleStreamFile::COleStreamFile(IStream *) 490 COleTemplateServer::COleTemplateServer() 491 COleUILinkInfo::COleUILinkInfo(COleDocument *) 492 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 493 COleVariant::COleVariant(tagVARIANT const &) 494 COleVariant::COleVariant(COleVariant const &) 495 COleVariant::COleVariant(short,unsigned short) 496 COleVariant::COleVariant(long,unsigned short) 497 COleVariant::COleVariant(char const *,unsigned short) 498 COleVariant::COleVariant(_ITEMIDLIST const *) 499 COleVariant::COleVariant(tagVARIANT const *) 500 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 501 CPaintDC::CPaintDC(CWnd *) 502 CPen::CPen(int,int,unsigned long) 503 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 504 CPictureHolder::CPictureHolder() 505 CPreviewDC::CPreviewDC() 506 CPreviewView::CPreviewView() 507 CPrintDialog::CPrintDialog(tagPDA &) 508 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 509 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 510 CPrintInfo::CPrintInfo() 511 CPrintPreviewState::CPrintPreviewState() 512 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 513 CProperty::CProperty(unsigned long,void * const,unsigned long) 514 CProperty::CProperty() 515 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 516 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 517 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 518 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 519 CPropertyPage::CPropertyPage() 520 CPropertySection::CPropertySection(_GUID) 521 CPropertySection::CPropertySection() 522 CPropertySet::CPropertySet(_GUID) 523 CPropertySet::CPropertySet() 524 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 525 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 526 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 527 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 528 CPropertySheet::CPropertySheet() 529 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 530 CPtrArray::CPtrArray() 531 CPtrList::CPtrList(int) 532 CReBar::CReBar() 533 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 534 CRecordset::CRecordset(CDatabase *) 535 CRecordView::CRecordView(unsigned int) 536 CRecordView::CRecordView(char const *) 537 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 538 CReObject::CReObject(CRichEditCntrItem *) 539 CReObject::CReObject() 540 CResetPropExchange::CResetPropExchange() 541 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 542 CRichEditDoc::CRichEditDoc() 543 CRichEditView::CRichEditView() 544 CScrollView::CScrollView() 545 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 546 CSharedFile::CSharedFile(unsigned int,unsigned int) 547 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 548 CSingleLock::CSingleLock(CSyncObject *,int) 549 CSocket::CSocket() 550 CSocketFile::CSocketFile(CSocket *,int) 551 CSocketWnd::CSocketWnd() 552 CSplitterWnd::CSplitterWnd() 553 CStatusBar::CStatusBar() 554 CStdioFile::CStdioFile(_iobuf *) 555 CStdioFile::CStdioFile(char const *,unsigned int) 556 CStdioFile::CStdioFile() 557 CStringArray::CStringArray() 558 CStringList::CStringList(int) 559 CSyncObject::CSyncObject(char const *) 560 CTestCmdUI::CTestCmdUI() 561 CThreadSlotData::CThreadSlotData() 562 CToolBar::CToolBar() 563 CToolTipCtrl::CToolTipCtrl() 564 CUIntArray::CUIntArray() 565 CView::CView() 566 CWinApp::CWinApp(char const *) 567 CWindowDC::CWindowDC(CWnd *) 568 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 569 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 570 CWinThread::CWinThread() 571 CWnd::CWnd(HWND__ *) 572 CWnd::CWnd() 573 CWordArray::CWordArray() 574 CPreviewView::PAGE_INFO::PAGE_INFO() 575 ATL::CSimpleStringT::~CSimpleStringT() 576 ATL::CSimpleStringT::~CSimpleStringT() 577 ATL::CStringT > >::~CStringT > >() 578 ATL::CStringT > >::~CStringT > >() 579 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 580 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 581 AFX_MODULE_STATE::~AFX_MODULE_STATE() 582 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 583 CAnimateCtrl::~CAnimateCtrl() 584 CArchive::~CArchive() 585 CAsyncMonikerFile::~CAsyncMonikerFile() 586 CAsyncSocket::~CAsyncSocket() 587 CButton::~CButton() 588 CByteArray::~CByteArray() 589 CClientDC::~CClientDC() 590 CCmdTarget::~CCmdTarget() 591 CComboBox::~CComboBox() 592 CComboBoxEx::~CComboBoxEx() 593 CCommandLineInfo::~CCommandLineInfo() 594 CConnectionPoint::~CConnectionPoint() 595 CControlBar::~CControlBar() 596 CCtrlView::~CCtrlView() 597 CDatabase::~CDatabase() 598 CDataSourceControl::~CDataSourceControl() 599 CDateTimeCtrl::~CDateTimeCtrl() 600 CDBException::~CDBException() 601 CDBVariant::~CDBVariant() 602 CDC::~CDC() 603 CDHtmlControlSink::~CDHtmlControlSink() 604 CDHtmlDialog::~CDHtmlDialog() 605 CDialog::~CDialog() 606 CDialogBar::~CDialogBar() 607 CDialogTemplate::~CDialogTemplate() 608 CDocItem::~CDocItem() 609 CDockBar::~CDockBar() 610 CDockContext::~CDockContext() 611 CDockState::~CDockState() 612 CDocManager::~CDocManager() 613 CDocObjectServer::~CDocObjectServer() 614 CDocObjectServerItem::~CDocObjectServerItem() 615 CDocTemplate::~CDocTemplate() 616 CDocument::~CDocument() 617 CDragListBox::~CDragListBox() 618 CDWordArray::~CDWordArray() 619 CDynLinkLibrary::~CDynLinkLibrary() 620 CEdit::~CEdit() 621 CEditView::~CEditView() 622 CEnumArray::~CEnumArray() 623 CEnumConnections::~CEnumConnections() 624 CEnumConnPoints::~CEnumConnPoints() 625 CEnumFormatEtc::~CEnumFormatEtc() 626 CEnumOleVerb::~CEnumOleVerb() 627 CEnumUnknown::~CEnumUnknown() 628 CEvent::~CEvent() 629 CFile::~CFile() 630 CFileDialog::~CFileDialog() 631 CFileFind::~CFileFind() 632 CFixedAlloc::~CFixedAlloc() 633 CFixedAllocNoSync::~CFixedAllocNoSync() 634 CFontHolder::~CFontHolder() 635 CFrameWnd::~CFrameWnd() 636 CFtpConnection::~CFtpConnection() 637 CFtpFileFind::~CFtpFileFind() 638 CGopherConnection::~CGopherConnection() 639 CGopherFile::~CGopherFile() 640 CGopherFileFind::~CGopherFileFind() 641 CGopherLocator::~CGopherLocator() 642 CHeaderCtrl::~CHeaderCtrl() 643 CHotKeyCtrl::~CHotKeyCtrl() 644 CHtmlControlSite::~CHtmlControlSite() 645 CHtmlEditCtrl::~CHtmlEditCtrl() 646 CHtmlEditDoc::~CHtmlEditDoc() 647 CHtmlEditView::~CHtmlEditView() 648 CHtmlView::~CHtmlView() 649 CHttpConnection::~CHttpConnection() 650 CHttpFile::~CHttpFile() 651 CImageList::~CImageList() 652 CInternetConnection::~CInternetConnection() 653 CInternetException::~CInternetException() 654 CInternetFile::~CInternetFile() 655 CInternetSession::~CInternetSession() 656 CIPAddressCtrl::~CIPAddressCtrl() 657 CListBox::~CListBox() 658 CListCtrl::~CListCtrl() 659 CLongBinary::~CLongBinary() 660 CMapPtrToPtr::~CMapPtrToPtr() 661 CMapPtrToWord::~CMapPtrToWord() 662 CMapStringToOb::~CMapStringToOb() 663 CMapStringToPtr::~CMapStringToPtr() 664 CMapStringToString::~CMapStringToString() 665 CMapWordToOb::~CMapWordToOb() 666 CMapWordToPtr::~CMapWordToPtr() 667 CMemFile::~CMemFile() 668 CMetaFileDC::~CMetaFileDC() 669 CMiniFrameWnd::~CMiniFrameWnd() 670 CMonikerFile::~CMonikerFile() 671 CMonthCalCtrl::~CMonthCalCtrl() 672 CMultiDocTemplate::~CMultiDocTemplate() 673 CMultiLock::~CMultiLock() 674 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 675 CMutex::~CMutex() 676 CObArray::~CObArray() 677 CObList::~CObList() 678 COleBusyDialog::~COleBusyDialog() 679 COleChangeIconDialog::~COleChangeIconDialog() 680 COleChangeSourceDialog::~COleChangeSourceDialog() 681 COleClientItem::~COleClientItem() 682 COleCntrFrameWnd::~COleCntrFrameWnd() 683 COleControl::~COleControl() 684 COleControlContainer::~COleControlContainer() 685 COleControlLock::~COleControlLock() 686 COleControlSite::~COleControlSite() 687 COleControlSiteOrWnd::~COleControlSiteOrWnd() 688 COleConvertDialog::~COleConvertDialog() 689 COleDataSource::~COleDataSource() 690 COleDispatchException::~COleDispatchException() 691 COleDocIPFrameWnd::~COleDocIPFrameWnd() 692 COleDocObjectItem::~COleDocObjectItem() 693 COleDocument::~COleDocument() 694 COleDropTarget::~COleDropTarget() 695 COleFrameHook::~COleFrameHook() 696 COleInsertDialog::~COleInsertDialog() 697 COleIPFrameWnd::~COleIPFrameWnd() 698 COleLinkingDoc::~COleLinkingDoc() 699 COleLinksDialog::~COleLinksDialog() 700 COleMessageFilter::~COleMessageFilter() 701 COleObjectFactory::~COleObjectFactory() 702 COlePasteSpecialDialog::~COlePasteSpecialDialog() 703 COlePropertyPage::~COlePropertyPage() 704 COleResizeBar::~COleResizeBar() 705 COleServerDoc::~COleServerDoc() 706 COleServerItem::~COleServerItem() 707 COleStreamFile::~COleStreamFile() 708 COleUpdateDialog::~COleUpdateDialog() 709 CPaintDC::~CPaintDC() 710 CPictureHolder::~CPictureHolder() 711 CPreviewDC::~CPreviewDC() 712 CPreviewView::~CPreviewView() 713 CPrintInfo::~CPrintInfo() 714 CProcessLocalObject::~CProcessLocalObject() 715 CProgressCtrl::~CProgressCtrl() 716 CPropbagPropExchange::~CPropbagPropExchange() 717 CProperty::~CProperty() 718 CPropertyPage::~CPropertyPage() 719 CPropertySection::~CPropertySection() 720 CPropertySet::~CPropertySet() 721 CPropertySheet::~CPropertySheet() 722 CPtrArray::~CPtrArray() 723 CPtrList::~CPtrList() 724 CRecentFileList::~CRecentFileList() 725 CRecordset::~CRecordset() 726 CRecordView::~CRecordView() 727 CRectTracker::~CRectTracker() 728 CReObject::~CReObject() 729 CRichEditCntrItem::~CRichEditCntrItem() 730 CRichEditCtrl::~CRichEditCtrl() 731 CScrollBar::~CScrollBar() 732 CScrollView::~CScrollView() 733 CSemaphore::~CSemaphore() 734 CSharedFile::~CSharedFile() 735 CSingleDocTemplate::~CSingleDocTemplate() 736 CSliderCtrl::~CSliderCtrl() 737 CSocket::~CSocket() 738 CSocketFile::~CSocketFile() 739 CSpinButtonCtrl::~CSpinButtonCtrl() 740 CSplitterWnd::~CSplitterWnd() 741 CStatic::~CStatic() 742 CStatusBar::~CStatusBar() 743 CStatusBarCtrl::~CStatusBarCtrl() 744 CStdioFile::~CStdioFile() 745 CStringArray::~CStringArray() 746 CStringList::~CStringList() 747 CSyncObject::~CSyncObject() 748 CTabCtrl::~CTabCtrl() 749 CThreadLocalObject::~CThreadLocalObject() 750 CThreadSlotData::~CThreadSlotData() 751 CToolBar::~CToolBar() 752 CToolBarCtrl::~CToolBarCtrl() 753 CToolTipCtrl::~CToolTipCtrl() 754 CTreeCtrl::~CTreeCtrl() 755 CUIntArray::~CUIntArray() 756 CView::~CView() 757 CWinApp::~CWinApp() 758 CWindowDC::~CWindowDC() 759 CWinThread::~CWinThread() 760 CWnd::~CWnd() 761 CWordArray::~CWordArray() 762 void * operator new(unsigned int) 763 void * CNoTrackObject::operator new(unsigned int) 764 void operator delete(void *) 765 void CNoTrackObject::operator delete(void *) 766 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 767 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 768 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 769 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 770 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 771 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 772 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 773 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 774 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 775 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 776 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 777 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 778 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 779 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 780 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 781 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 782 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 783 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 784 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 785 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 786 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 787 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 788 COleCurrency const & COleCurrency::operator=(union tagCY) 789 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 790 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 791 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 792 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 793 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 794 COleVariant const & COleVariant::operator=(tagVARIANT const &) 795 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 796 COleVariant const & COleVariant::operator=(COleVariant const &) 797 COleVariant const & COleVariant::operator=(CByteArray const &) 798 COleVariant const & COleVariant::operator=(CLongBinary const &) 799 COleVariant const & COleVariant::operator=(COleCurrency const &) 800 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 801 COleVariant const & COleVariant::operator=(unsigned char) 802 COleVariant const & COleVariant::operator=(short) 803 COleVariant const & COleVariant::operator=(long) 804 COleVariant const & COleVariant::operator=(float) 805 COleVariant const & COleVariant::operator=(double) 806 COleVariant const & COleVariant::operator=(tagVARIANT const *) 807 COleVariant const & COleVariant::operator=(char const * const) 808 CArchive & operator>>(CArchive &,CByteArray * &) 809 CArchive & operator>>(CArchive &,CDocItem * &) 810 CArchive & operator>>(CArchive &,CDockState * &) 811 CArchive & operator>>(CArchive &,CDWordArray * &) 812 CArchive & operator>>(CArchive &,CMapStringToOb * &) 813 CArchive & operator>>(CArchive &,CMapStringToString * &) 814 CArchive & operator>>(CArchive &,CMapWordToOb * &) 815 CArchive & operator>>(CArchive &,CObArray * &) 816 CArchive & operator>>(CArchive &,CObList * &) 817 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 818 CArchive & operator>>(CArchive &,CStringArray * &) 819 CArchive & operator>>(CArchive &,CStringList * &) 820 CArchive & operator>>(CArchive &,CWordArray * &) 821 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 822 CArchive & operator>>(CArchive &,COleCurrency &) 823 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 824 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 825 CArchive & operator>>(CArchive &,COleVariant &) 826 CArchive & operator>>(CArchive &,ATL::CTime &) 827 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 828 CArchive & operator<<(CArchive &,ATL::CComBSTR) 829 CArchive & operator<<(CArchive &,COleCurrency) 830 CArchive & operator<<(CArchive &,ATL::COleDateTime) 831 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 832 CArchive & operator<<(CArchive &,COleVariant) 833 CArchive & operator<<(CArchive &,ATL::CTime) 834 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 835 CDumpContext & CDumpContext::operator<<(__int64) 836 CDumpContext & CDumpContext::operator<<(unsigned __int64) 837 CDumpContext & CDumpContext::operator<<(CObject const &) 838 CDumpContext & CDumpContext::operator<<(unsigned char) 839 CDumpContext & CDumpContext::operator<<(unsigned short) 840 CDumpContext & CDumpContext::operator<<(int) 841 CDumpContext & CDumpContext::operator<<(unsigned int) 842 CDumpContext & CDumpContext::operator<<(long) 843 CDumpContext & CDumpContext::operator<<(unsigned long) 844 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 845 CDumpContext & CDumpContext::operator<<(HDC__ *) 846 CDumpContext & CDumpContext::operator<<(HFONT__ *) 847 CDumpContext & CDumpContext::operator<<(HMENU__ *) 848 CDumpContext & CDumpContext::operator<<(HWND__ *) 849 CDumpContext & CDumpContext::operator<<(wchar_t const *) 850 CDumpContext & CDumpContext::operator<<(char const *) 851 CDumpContext & CDumpContext::operator<<(CObject const *) 852 CDumpContext & CDumpContext::operator<<(void const *) 853 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 854 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 855 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 856 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 857 int COleSafeArray::operator==(tagSAFEARRAY const &)const 858 int COleSafeArray::operator==(tagVARIANT const &)const 859 int COleSafeArray::operator==(COleSafeArray const &)const 860 int COleSafeArray::operator==(COleVariant const &)const 861 int COleSafeArray::operator==(tagSAFEARRAY const *)const 862 int COleSafeArray::operator==(tagVARIANT const *)const 863 int COleVariant::operator==(tagVARIANT const &)const 864 wchar_t ATL::CSimpleStringT::operator[](int)const 865 char ATL::CSimpleStringT::operator[](int)const 866 void * & CMapPtrToPtr::operator[](void *) 867 unsigned short & CMapPtrToWord::operator[](void *) 868 CObject * & CMapStringToOb::operator[](char const *) 869 void * & CMapStringToPtr::operator[](char const *) 870 ATL::CStringT > > & CMapStringToString::operator[](char const *) 871 CObject * & CMapWordToOb::operator[](unsigned short) 872 void * & CMapWordToPtr::operator[](unsigned short) 873 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 874 ATL::CSimpleStringT::operator wchar_t const *()const 875 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 876 ATL::CSimpleStringT::operator char const *()const 877 ATL::CStringT > >::operator ATL::CSimpleStringT &() 878 ATL::CStringT > >::operator ATL::CSimpleStringT &() 879 COleCurrency COleCurrency::operator*(long)const 880 COleCurrency COleCurrency::operator-(COleCurrency const &)const 881 COleCurrency COleCurrency::operator-()const 882 COleCurrency COleCurrency::operator+(COleCurrency const &)const 883 COleCurrency COleCurrency::operator/(long)const 884 int COleCurrency::operator<(COleCurrency const &)const 885 int COleCurrency::operator<=(COleCurrency const &)const 886 int COleCurrency::operator>(COleCurrency const &)const 887 int COleCurrency::operator>=(COleCurrency const &)const 888 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 889 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 890 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 891 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 892 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 893 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 894 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 895 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 896 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 897 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 898 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 899 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 900 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 901 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 902 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 903 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 904 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 905 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 906 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 907 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 908 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 909 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 910 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 911 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 912 int _AfxSocketInit(WSAData *) 913 void CArchive::Abort() 914 void CFile::Abort() 915 void CInternetFile::Abort() 916 void CMemFile::Abort() 917 void CMirrorFile::Abort() 918 void COleStreamFile::Abort() 919 void CSocketFile::Abort() 920 void CStdioFile::Abort() 921 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 922 long CCheckListBox::accDoDefaultAction(tagVARIANT) 923 long CWnd::accDoDefaultAction(tagVARIANT) 924 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 925 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 926 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 927 void COleSafeArray::AccessData(void * *) 928 long CWnd::accHitTest(long,long,tagVARIANT *) 929 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 930 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 931 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 932 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 933 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 934 long CWnd::accSelect(long,tagVARIANT) 935 long CWnd::XAccessible::accSelect(long,tagVARIANT) 936 void COleClientItem::Activate(long,CView *,tagMSG *) 937 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 938 void COleDocObjectItem::ActivateAndShow() 939 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 940 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 941 void CDocObjectServer::ActivateDocObject() 942 void COleServerDoc::ActivateDocObject() 943 void CFrameWnd::ActivateFrame(int) 944 void CMDIChildWnd::ActivateFrame(int) 945 int COleServerDoc::ActivateInPlace() 946 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 947 void CSplitterWnd::ActivateNext(int) 948 void CWnd::ActivateTopParent() 949 void CRecentFileList::Add(char const *) 950 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 951 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 952 int CToolBarCtrl::AddBitmap(int,unsigned int) 953 int CToolBarCtrl::AddBitmap(int,CBitmap *) 954 void COleClientItem::AddCachedData(COleDataSource *) 955 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 956 void CEnumConnections::AddConnection(tagCONNECTDATA *) 957 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 958 void CDocManager::AddDocTemplate(CDocTemplate *) 959 void CWinApp::AddDocTemplate(CDocTemplate *) 960 void CDocTemplate::AddDocument(CDocument *) 961 void CMultiDocTemplate::AddDocument(CDocument *) 962 void CSingleDocTemplate::AddDocument(CDocument *) 963 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 964 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 965 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 966 void COleControl::AddFrameLevelUI() 967 void CFrameWnd::AddFrameWnd() 968 __POSITION * CObList::AddHead(CObject *) 969 void CObList::AddHead(CObList *) 970 __POSITION * CPtrList::AddHead(void *) 971 void CPtrList::AddHead(CPtrList *) 972 void CSimpleList::AddHead(void *) 973 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 974 __POSITION * CStringList::AddHead(char const *) 975 void CStringList::AddHead(CStringList *) 976 void COleDocument::AddItem(CDocItem *) 977 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 978 void CRecordset::AddNew() 979 void COleServerItem::AddOtherClipboardData(COleDataSource *) 980 void CPropertySheet::AddPage(CPropertyPage *) 981 void CPropertySection::AddProperty(CProperty *) 982 void CPropertySet::AddProperty(_GUID,CProperty *) 983 unsigned long CArchiveStream::AddRef() 984 unsigned long CBlobProperty::AddRef() 985 unsigned long CBrowserControlSite::AddRef() 986 unsigned long CDHtmlControlSink::AddRef() 987 unsigned long CDHtmlElementEventSink::AddRef() 988 unsigned long CDHtmlEventSink::AddRef() 989 unsigned long CInnerUnknown::AddRef() 990 unsigned long COleConnPtContainer::AddRef() 991 unsigned long COleDispatchImpl::AddRef() 992 unsigned long COleUILinkInfo::AddRef() 993 unsigned long CPrintDialogEx::AddRef() 994 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 995 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 996 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 997 CPropertySection * CPropertySet::AddSection(_GUID) 998 void CPropertySet::AddSection(CPropertySection *) 999 void COlePasteSpecialDialog::AddStandardFormats(int) 1000 int CToolBarCtrl::AddString(unsigned int) 1001 __POSITION * CObList::AddTail(CObject *) 1002 void CObList::AddTail(CObList *) 1003 __POSITION * CPtrList::AddTail(void *) 1004 void CPtrList::AddTail(CPtrList *) 1005 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1006 __POSITION * CStringList::AddTail(char const *) 1007 void CStringList::AddTail(CStringList *) 1008 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1009 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1010 void CWinApp::AddToRecentFileList(char const *) 1011 void CDocument::AddView(CView *) 1012 void CMetaFileDC::AdjustCP(int) 1013 void CRichEditView::AdjustDialogPosition(CDialog *) 1014 void CRectTracker::AdjustRect(int,tagRECT *) 1015 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1016 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1017 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1018 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1019 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1020 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1021 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1022 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1023 void AfxAbort() 1024 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1025 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1026 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1027 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1028 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1029 void AfxCancelModes(HWND__ *) 1030 void AfxCheckError(long) 1031 void AfxClassInit(CRuntime*) 1032 int AfxComparePath(char const *,char const *) 1033 int AfxCompareValueByRef(void *,void *,int) 1034 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1035 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1036 void AfxCopyValueByRef(void *,void *,long *,int) 1037 void AfxCoreInitModule() 1038 HDC__ * AfxCreateDC(void *,void *) 1039 int AfxCriticalInit() 1040 int AfxCriticalNewHandler(unsigned int) 1041 void AfxCriticalTerm() 1042 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1043 AUX_DATA afxData 1044 void AfxDeleteObject(void * *) 1045 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1046 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1047 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1048 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1049 long AfxDllCanUnloadNow() 1050 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1051 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1052 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1053 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1054 void AfxEnableControlContainer(COccManager *) 1055 int AfxEndDeferRegisterClass(long) 1056 void AfxEndThread(unsigned int,int) 1057 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1058 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1059 void AfxFailMaxChars(CDataExchange *,int) 1060 void AfxFailRadio(CDataExchange *) 1061 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1062 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1063 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1064 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1065 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1066 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1067 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1068 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1069 int AfxFreeLibrary(HINSTANCE__ *) 1070 int AfxFullPath(char *,char const *) 1071 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1072 AFX_MODULE_STATE * AfxGetAppModuleState() 1073 long AfxGetClassIDFromString(char const *,_GUID *) 1074 tagMSG * AfxGetCurrentMessage() 1075 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1076 unsigned long AfxGetDllVersion() 1077 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1078 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1079 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1080 void * AfxGetHENV() 1081 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1082 unsigned long AfxGetInternetHandleType(void *) 1083 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1084 AFX_MODULE_STATE * AfxGetModuleState() 1085 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1086 int (__cdecl*AfxGetNewHandler())(unsigned int) 1087 HWND__ * AfxGetParentOwner(HWND__ *) 1088 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1089 void AfxGetRoot(char const *,ATL::CStringT > > &) 1090 ATL::IAtlStringMgr * AfxGetStringManager() 1091 CWinThread * AfxGetThread() 1092 _AFX_THREAD_STATE * AfxGetThreadState() 1093 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1094 void AfxGlobalFree(void *) 1095 int AfxHelpEnabled() 1096 void AfxHookWindowCreate(CWnd *) 1097 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1098 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1099 void AfxInitLocalData(HINSTANCE__ *) 1100 int AfxInitRichEdit() 1101 int AfxInitRichEdit2() 1102 void AfxInitThread() 1103 int AfxInternalIsIdleMessage(tagMSG *) 1104 int AfxInternalPreTranslateMessage(tagMSG *) 1105 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1106 int AfxInternalPumpMessage() 1107 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1108 int AfxIsDescendant(HWND__ *,HWND__ *) 1109 int AfxIsIdleMessage(tagMSG *) 1110 int AfxIsValidAddress(void const *,unsigned int,int) 1111 int AfxIsValidString(wchar_t const *,int) 1112 int AfxIsValidString(char const *,int) 1113 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1114 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1115 HINSTANCE__ * AfxLoadLibrary(char const *) 1116 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1117 int AfxLoadString(unsigned int,char *,unsigned int) 1118 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1119 void AfxLockGlobals(int) 1120 void AfxLockTempMaps() 1121 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1122 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1123 int AfxMessageBox(char const *,unsigned int,unsigned int) 1124 int AfxOleCanExitApp() 1125 int AfxOleGetUserCtrl() 1126 int AfxOleInit() 1127 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1128 void AfxOleLockApp() 1129 int AfxOleLockControl(_GUID const &) 1130 int AfxOleLockControl(char const *) 1131 void AfxOleOnReleaseAllObjects() 1132 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1133 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1134 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1135 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1136 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1137 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1138 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1139 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1140 void AfxOleSetUserCtrl(int) 1141 void AfxOleTerm(int) 1142 void AfxOleTermOrFreeLib(int,int) 1143 void AfxOleUnlockAllControls() 1144 void AfxOleUnlockApp() 1145 int AfxOleUnlockControl(_GUID const &) 1146 int AfxOleUnlockControl(char const *) 1147 int AfxOleUnregisterClass(_GUID const &,char const *) 1148 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1149 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1150 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1151 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1152 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1153 void AfxPostQuitMessage(int) 1154 int AfxPreTranslateMessage(tagMSG *) 1155 long AfxProcessWndProcException(CException *,tagMSG const *) 1156 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1157 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1158 int AfxPumpMessage() 1159 unsigned int AfxReadStringLength(CArchive &,int &) 1160 int AfxRegisterClass(tagWNDCLASSA *) 1161 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1162 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1163 void AfxResetMsgCache() 1164 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1165 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1166 void AfxSafeArrayInit(COleSafeArray *) 1167 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1168 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1169 void AfxSetWindowText(HWND__ *,char const *) 1170 void AfxSocketTerm() 1171 void AfxStoreField(CRecordset &,unsigned int,void *) 1172 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1173 wchar_t * AfxTaskStringA2W(char const *) 1174 char * AfxTaskStringW2A(wchar_t const *) 1175 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1176 void AfxTermLocalData(HINSTANCE__ *,int) 1177 void AfxTermThread(HINSTANCE__ *) 1178 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1179 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1180 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1181 void AfxThrowArchiveException(int,char const *) 1182 void AfxThrowDBException(short,CDatabase *,void *) 1183 void AfxThrowFileException(int,long,char const *) 1184 void AfxThrowInternetException(unsigned long,unsigned long) 1185 void AfxThrowInvalidArgException() 1186 void AfxThrowLastCleanup() 1187 void AfxThrowMemoryException() 1188 void AfxThrowNotSupportedException() 1189 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1190 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1191 void AfxThrowOleException(long) 1192 void AfxThrowResourceException() 1193 void AfxThrowUserException() 1194 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1195 void AfxTlsAddRef() 1196 void AfxTlsRelease() 1197 void AfxTrackerTerm() 1198 void AfxTryCleanup() 1199 int AfxUnhookWindowCreate() 1200 void AfxUnlockGlobals(int) 1201 int AfxUnlockTempMaps(int) 1202 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1203 void AfxVariantInit(tagVARIANT *) 1204 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1205 char * AfxW2AHelper(char *,wchar_t const *,int) 1206 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1207 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1208 void AfxWinTerm() 1209 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1210 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1211 void AfxWriteStringLength(CArchive &,unsigned int,int) 1212 void * CFixedAlloc::Alloc() 1213 void * CFixedAllocNoSync::Alloc() 1214 unsigned char * CMemFile::Alloc(unsigned long) 1215 unsigned char * CSharedFile::Alloc(unsigned long) 1216 void CRecordset::AllocAndCacheFieldInfo() 1217 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1218 void CDatabase::AllocConnect(unsigned long) 1219 void COleSafeArray::AllocData() 1220 void CRecordset::AllocDataCache() 1221 void COleSafeArray::AllocDescriptor(unsigned long) 1222 int CControlBar::AllocElements(int,int) 1223 int CStatusBar::AllocElements(int,int) 1224 int CRecordset::AllocHstmt() 1225 void CPropertyPage::AllocPSP(unsigned long) 1226 void CRecordset::AllocRowset() 1227 int CThreadSlotData::AllocSlot() 1228 void CRecordset::AllocStatusArrays() 1229 wchar_t * ATL::CStringT > >::AllocSysString()const 1230 wchar_t * ATL::CStringT > >::AllocSysString()const 1231 void * CProperty::AllocValue(unsigned long) 1232 short COleControl::AmbientAppearance() 1233 unsigned long COleControl::AmbientBackColor() 1234 ATL::CStringT > > COleControl::AmbientDisplayName() 1235 IFontDisp * COleControl::AmbientFont() 1236 unsigned long COleControl::AmbientForeColor() 1237 unsigned long COleControl::AmbientLocaleID() 1238 ATL::CStringT > > COleControl::AmbientScaleUnits() 1239 int COleControl::AmbientShowGrabHandles() 1240 int COleControl::AmbientShowHatching() 1241 short COleControl::AmbientTextAlign() 1242 int COleControl::AmbientUIDead() 1243 int COleControl::AmbientUserMode() 1244 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1245 void ATL::CSimpleStringT::Append(wchar_t const *) 1246 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1247 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1248 void ATL::CSimpleStringT::Append(char const *) 1249 void ATL::CSimpleStringT::Append(char const *,int) 1250 int CByteArray::Append(CByteArray const &) 1251 int CDWordArray::Append(CDWordArray const &) 1252 int CObArray::Append(CObArray const &) 1253 int CPtrArray::Append(CPtrArray const &) 1254 int CStringArray::Append(CStringArray const &) 1255 int CUIntArray::Append(CUIntArray const &) 1256 int CWordArray::Append(CWordArray const &) 1257 void ATL::CSimpleStringT::AppendChar(wchar_t) 1258 void ATL::CSimpleStringT::AppendChar(char) 1259 void CRecordset::AppendFilterAndSortSQL() 1260 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1261 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1262 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1263 void ATL::CStringT > >::AppendFormat(char const *,...) 1264 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1265 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1266 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1267 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1268 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1269 long COlePropertyPage::XPropertyPage::Apply() 1270 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1271 int COleDocument::ApplyPrintDevice(tagPDA const *) 1272 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1273 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1274 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1275 int CAsyncSocket::AsyncSelect(long) 1276 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1277 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1278 int CAsyncSocket::Attach(unsigned int,long) 1279 int CDC::Attach(HDC__ *) 1280 int CGdiObject::Attach(void *) 1281 int CImageList::Attach(_IMAGELIST *) 1282 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1283 int CMenu::Attach(HMENU__ *) 1284 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1285 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1286 void COleDataObject::Attach(IDataObject *,int) 1287 void COleSafeArray::Attach(tagVARIANT &) 1288 void COleStreamFile::Attach(IStream *) 1289 void COleVariant::Attach(tagVARIANT &) 1290 int CWnd::Attach(HWND__ *) 1291 int COleDataObject::AttachClipboard() 1292 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1293 void CWnd::AttachControlSite(CHandleMap *) 1294 void CWnd::AttachControlSite(CWnd *,unsigned int) 1295 void COleClientItem::AttachDataObject(COleDataObject &)const 1296 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1297 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1298 CPrintDialog * CPrintDialog::AttachOnSetup() 1299 void COleControlSite::AttachWindow() 1300 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1301 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1302 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1303 void COleMessageFilter::BeginBusyState() 1304 int CDragListBox::BeginDrag(CPoint) 1305 void COleDataObject::BeginEnumFormats() 1306 void CFrameWnd::BeginModalState() 1307 int CDatabase::BeginTrans() 1308 void CCmdTarget::BeginWaitCursor() 1309 int CAsyncSocket::Bind(unsigned int,char const *) 1310 void CDataSourceControl::BindColumns() 1311 void COccManager::BindControls(CWnd *) 1312 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1313 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1314 void CRecordset::BindFieldsForUpdate() 1315 unsigned int CRecordset::BindFieldsToColumns() 1316 void CDatabase::BindParameters(void *) 1317 unsigned int CRecordset::BindParams(void *) 1318 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1319 void CDataSourceControl::BindProp(COleControlSite *,int) 1320 void COleControlSite::BindProperty(long,CWnd *) 1321 void CWnd::BindProperty(long,CWnd *) 1322 void COleControl::BoundPropertyChanged(long) 1323 int COleControl::BoundPropertyRequestEdit(long) 1324 void CFrameWnd::BringToTop(int) 1325 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1326 void CDBException::BuildErrorString(CDatabase *,void *,int) 1327 void CPropertySheet::BuildPropPageArray() 1328 void CRecordset::BuildSelectSQL() 1329 int COleControl::BuildSharedMenu() 1330 int COleDocIPFrameWnd::BuildSharedMenu() 1331 int COleIPFrameWnd::BuildSharedMenu() 1332 void CRecordset::BuildSQL(char const *) 1333 void CRecordset::BuildUpdateSQL() 1334 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1335 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1336 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1337 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1338 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1339 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1340 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1341 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1342 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1343 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1344 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1345 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1346 CSize CControlBar::CalcFixedLayout(int,int) 1347 CSize CDialogBar::CalcFixedLayout(int,int) 1348 CSize CDockBar::CalcFixedLayout(int,int) 1349 CSize CReBar::CalcFixedLayout(int,int) 1350 CSize CStatusBar::CalcFixedLayout(int,int) 1351 CSize CToolBar::CalcFixedLayout(int,int) 1352 void CControlBar::CalcInsideRect(CRect &,int)const 1353 void CStatusBar::CalcInsideRect(CRect &,int)const 1354 CSize CToolBar::CalcLayout(unsigned long,int) 1355 int CCheckListBox::CalcMinimumItemHeight() 1356 CSize CPreviewView::CalcPageDisplaySize() 1357 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1358 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1359 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1360 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1361 void CView::CalcWindowRect(tagRECT *,unsigned int) 1362 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1363 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1364 int CDHtmlDialog::CanAccessExternal() 1365 int COleClientItem::CanActivate() 1366 int CRichEditCntrItem::CanActivate() 1367 int CSplitterWnd::CanActivateNext(int) 1368 int CRecordset::CanBookmark()const 1369 void CDatabase::Cancel() 1370 void CRecordset::Cancel() 1371 void CSocket::CancelBlockingCall() 1372 void CDragListBox::CancelDrag(CPoint) 1373 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1374 long COleUILinkInfo::CancelLink(unsigned long) 1375 void CDockContext::CancelLoop() 1376 void CPropertyPage::CancelToClose() 1377 void CWnd::CancelToolTips(int) 1378 void CRecordset::CancelUpdate() 1379 int CDocument::CanCloseFrame(CFrameWnd *) 1380 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1381 int COleClientItem::CanCreateFromData(COleDataObject const *) 1382 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1383 unsigned long CDockContext::CanDock() 1384 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1385 int CFrameWnd::CanEnterHelpMode() 1386 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1387 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1388 int COleClientItem::CanPaste() 1389 int CRichEditCtrl::CanPaste(unsigned int)const 1390 int CRichEditView::CanPaste()const 1391 int COleClientItem::CanPasteLink() 1392 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1393 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1394 void CScrollView::CenterOnPoint(CPoint) 1395 void CWnd::CenterWindow(CWnd *) 1396 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1397 int CListBox::CharToItem(unsigned int,unsigned int) 1398 void ATL::CStringT > >::CharToOemA() 1399 int CDatabase::Check(short)const 1400 int CRecordset::Check(short)const 1401 int CDialog::CheckAutoCenter() 1402 int CWnd::CheckAutoCenter() 1403 void CArchive::CheckCount() 1404 void COleControlContainer::CheckDlgButton(int,unsigned int) 1405 void CWnd::CheckDlgButton(int,unsigned int) 1406 int CCheckListBox::CheckFromPoint(CPoint,int &) 1407 void COleClientItem::CheckGeneral(long) 1408 int CDatabase::CheckHstmt(short,void *)const 1409 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1410 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1411 void COleControlContainer::CheckRadioButton(int,int,int) 1412 void CWnd::CheckRadioButton(int,int,int) 1413 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1414 void CRecordset::CheckRowsetError(short) 1415 void CScrollView::CheckScrollBars(int &,int &)const 1416 void CPropertyPage::Cleanup() 1417 void COlePropertyPage::CleanupObjectArray() 1418 void CDBVariant::Clear() 1419 void CDockState::Clear() 1420 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1421 void CRecordset::ClearFieldStatus() 1422 void CRecordset::ClearNullFieldStatus(unsigned long) 1423 void CRecordset::ClearNullParamStatus(unsigned long) 1424 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1425 void CWnd::ClientToScreen(tagRECT *)const 1426 int COleControl::ClipCaretRect(tagRECT *) 1427 void CPreviewDC::ClipToPage() 1428 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1429 long CArchiveStream::Clone(IStream * *) 1430 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1431 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1432 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1433 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1434 void CArchive::Close() 1435 void CAsyncMonikerFile::Close() 1436 void CAsyncSocket::Close() 1437 void CCachedDataPathProperty::Close() 1438 void CDatabase::Close() 1439 void CFile::Close() 1440 void CFileFind::Close() 1441 void CInternetConnection::Close() 1442 void CInternetFile::Close() 1443 void CInternetSession::Close() 1444 void CMemFile::Close() 1445 void CMirrorFile::Close() 1446 void CMonikerFile::Close() 1447 void COleClientItem::Close(enum tagOLECLOSE) 1448 void COleStreamFile::Close() 1449 void CRecordset::Close() 1450 void CSocket::Close() 1451 void CSocketFile::Close() 1452 void CStdioFile::Close() 1453 long CDocObjectServer::XOleObject::Close(unsigned long) 1454 long COleControl::XOleObject::Close(unsigned long) 1455 long COleServerDoc::XOleObject::Close(unsigned long) 1456 long COleServerItem::XOleObject::Close(unsigned long) 1457 void CDocManager::CloseAllDocuments(int) 1458 void CDocTemplate::CloseAllDocuments(int) 1459 void CWinApp::CloseAllDocuments(int) 1460 void CFileFind::CloseContext() 1461 void CFtpFileFind::CloseContext() 1462 void CGopherFileFind::CloseContext() 1463 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1464 int ATL::CStringT > >::Collate(wchar_t const *)const 1465 int ATL::CStringT > >::Collate(char const *)const 1466 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 1467 int ATL::CStringT > >::CollateNoCase(char const *)const 1468 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1469 int CStatusBar::CommandToIndex(unsigned int)const 1470 int CToolBar::CommandToIndex(unsigned int)const 1471 long CArchiveStream::Commit(unsigned long) 1472 void COleClientItem::CommitItem(int) 1473 void COleDocument::CommitItems(int,IStorage *) 1474 int CDatabase::CommitTrans() 1475 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 1476 void CPropertyPage::CommonConstruct(char const *,unsigned int) 1477 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 1478 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1479 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1480 void CWinThread::CommonConstruct() 1481 int ATL::CStringT > >::Compare(wchar_t const *)const 1482 int ATL::CStringT > >::Compare(char const *)const 1483 int CComboBox::CompareItem(tagCOMPAREITEM*) 1484 int CListBox::CompareItem(tagCOMPAREITEM*) 1485 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 1486 int ATL::CStringT > >::CompareNoCase(char const *)const 1487 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 1488 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 1489 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 1490 int CAsyncSocket::Connect(char const *,unsigned int) 1491 int CDatabase::Connect(unsigned long) 1492 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1493 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1494 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1495 int CSocket::ConnectHelper(sockaddr const *,int) 1496 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1497 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1498 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1499 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1500 void COleServerDoc::ConnectView(CWnd *,CView *) 1501 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1502 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1503 void CPropertyPage::Construct(unsigned int,unsigned int) 1504 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1505 void CPropertyPage::Construct(char const *,unsigned int) 1506 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 1507 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1508 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1509 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 1510 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1511 void CRectTracker::Construct() 1512 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1513 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1514 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1515 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1516 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1517 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1518 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1519 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1520 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1521 int CPropertySheet::ContinueModal() 1522 int CWnd::ContinueModal() 1523 void COleControl::ControlInfoChanged() 1524 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1525 int COleClientItem::ConvertTo(_GUID const &) 1526 int CRichEditCntrItem::ConvertTo(_GUID const &) 1527 void CByteArray::Copy(CByteArray const &) 1528 void CDWordArray::Copy(CDWordArray const &) 1529 void CObArray::Copy(CObArray const &) 1530 void COleSafeArray::Copy(tagSAFEARRAY * *) 1531 void CPtrArray::Copy(CPtrArray const &) 1532 void CStringArray::Copy(CStringArray const &) 1533 void CUIntArray::Copy(CUIntArray const &) 1534 void CWordArray::Copy(CWordArray const &) 1535 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 1536 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 1537 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 1538 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 1539 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1540 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1541 void COleClientItem::CopyToClipboard(int) 1542 void COleServerItem::CopyToClipboard(int) 1543 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1544 int CAsyncSocket::Create(unsigned int,int,long,char const *) 1545 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1546 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1547 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1548 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1549 int CControlFrameWnd::Create(char const *) 1550 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1551 int CDialog::Create(char const *,CWnd *) 1552 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 1553 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1554 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1555 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 1556 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1557 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 1558 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1559 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1560 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1561 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1562 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1563 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1564 int CImageList::Create(int,int,unsigned int,int,int) 1565 int CImageList::Create(unsigned int,int,int,unsigned long) 1566 int CImageList::Create(CImageList *) 1567 int CImageList::Create(char const *,int,int,unsigned long) 1568 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1569 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1570 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1571 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1572 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1573 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1574 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1575 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1576 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1577 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1578 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1579 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1580 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1581 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1582 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1583 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1584 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1585 int CReflectorWnd::Create(CRect const &,HWND__ *) 1586 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1587 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1588 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1589 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1590 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1591 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1592 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1593 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1594 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1595 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1596 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1597 int CToolTipCtrl::Create(CWnd *,unsigned long) 1598 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1599 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1600 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1601 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1602 IBindHost * CMonikerFile::CreateBindHost() 1603 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1604 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 1605 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1606 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1607 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1608 void CConnectionPoint::CreateConnectionArray() 1609 COleControlContainer * COccManager::CreateContainer(CWnd *) 1610 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1611 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1612 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1613 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1614 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1615 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1616 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1617 int CWnd::CreateControlContainer(COleControlContainer * *) 1618 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1619 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1620 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1621 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1622 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1623 int CFtpConnection::CreateDirectoryA(char const *) 1624 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1625 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 1626 int CWnd::CreateDlg(char const *,CWnd *) 1627 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1628 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1629 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 1631 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1632 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1633 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1634 int CPictureHolder::CreateEmpty() 1635 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1636 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1637 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1638 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1639 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1640 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1641 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1642 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1643 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1644 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1645 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1646 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1647 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1648 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1649 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1650 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1651 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1652 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1653 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1654 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1655 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1656 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1657 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1658 CControlFrameWnd * COleControl::CreateFrameWindow() 1659 int CPictureHolder::CreateFromBitmap(unsigned int) 1660 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1661 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1662 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1663 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1664 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1665 int CPictureHolder::CreateFromIcon(unsigned int) 1666 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1667 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1668 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1669 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1670 int CDialog::CreateIndirect(void *,CWnd *) 1671 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1672 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1673 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1674 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1675 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1676 int COleInsertDialog::CreateItem(COleClientItem *) 1677 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1678 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1679 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1680 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1681 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 1682 CGopherLocator CGopherConnection::CreateLocator(char const *) 1683 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 1684 int COleStreamFile::CreateMemoryStream(CFileException *) 1685 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1686 CDocument * CDocTemplate::CreateNewDocument() 1687 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1688 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1689 CObject * CByteArray::CreateObject() 1690 CObject * CDC::CreateObject() 1691 CObject * CDocItem::CreateObject() 1692 CObject * CDockState::CreateObject() 1693 CObject * CDWordArray::CreateObject() 1694 CObject * CEditView::CreateObject() 1695 CObject * CFrameWnd::CreateObject() 1696 CObject * CGdiObject::CreateObject() 1697 CObject * CHtmlEditView::CreateObject() 1698 CObject * CHtmlView::CreateObject() 1699 CObject * CImageList::CreateObject() 1700 CObject * CListView::CreateObject() 1701 CObject * CMapStringToOb::CreateObject() 1702 CObject * CMapStringToString::CreateObject() 1703 CObject * CMapWordToOb::CreateObject() 1704 CObject * CMDIChildWnd::CreateObject() 1705 CObject * CMDIFrameWnd::CreateObject() 1706 CObject * CMenu::CreateObject() 1707 CObject * CMiniDockFrameWnd::CreateObject() 1708 CObject * CMiniFrameWnd::CreateObject() 1709 CObject * CObArray::CreateObject() 1710 CObject * CObList::CreateObject() 1711 CObject * COleDocIPFrameWnd::CreateObject() 1712 CObject * COleIPFrameWnd::CreateObject() 1713 CObject * CPreviewView::CreateObject() 1714 CObject * CRichEditCntrItem::CreateObject() 1715 CObject * CRichEditView::CreateObject() 1716 CObject * CRuntimeClass::CreateObject() 1717 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1718 CObject * CRuntimeClass::CreateObject(char const *) 1719 CObject * CStringArray::CreateObject() 1720 CObject * CStringList::CreateObject() 1721 CObject * CTreeView::CreateObject() 1722 CObject * CWnd::CreateObject() 1723 CObject * CWordArray::CreateObject() 1724 void COleControlContainer::CreateOleFont(CFont *) 1725 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1726 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1727 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1728 int CFont::CreatePointFont(int,char const *,CDC *) 1729 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 1730 HDC__ * CPageSetupDialog::CreatePrinterDC() 1731 HDC__ * CPrintDialog::CreatePrinterDC() 1732 HDC__ * CPrintDialogEx::CreatePrinterDC() 1733 int CWinApp::CreatePrinterDC(CDC &) 1734 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1735 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 1736 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1737 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1738 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1739 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 1740 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1741 void COleControl::CreateTracker(int,int) 1742 void COleControl::CreateTracker(int,int,tagRECT const *) 1743 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1744 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1745 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1746 void COleControl::CreateWindowForSubclassedControl() 1747 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1748 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1749 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1750 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1751 void DDP_Check(CDataExchange *,int,int &,char const *) 1752 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 1753 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 1754 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 1755 void DDP_EndText(CDataExchange *,int,short *,char const *) 1756 void DDP_EndText(CDataExchange *,int,int *,char const *) 1757 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 1758 void DDP_EndText(CDataExchange *,int,long *,char const *) 1759 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 1760 void DDP_EndText(CDataExchange *,int,float *,char const *) 1761 void DDP_EndText(CDataExchange *,int,double *,char const *) 1762 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 1763 void DDP_PostProcessing(CDataExchange *) 1764 void DDP_Radio(CDataExchange *,int,int &,char const *) 1765 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 1766 void DDP_Text(CDataExchange *,int,short &,char const *) 1767 void DDP_Text(CDataExchange *,int,int &,char const *) 1768 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 1769 void DDP_Text(CDataExchange *,int,long &,char const *) 1770 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 1771 void DDP_Text(CDataExchange *,int,float &,char const *) 1772 void DDP_Text(CDataExchange *,int,double &,char const *) 1773 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 1774 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1775 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1776 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1777 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1778 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1779 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1780 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1781 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1782 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1783 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1784 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1785 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1786 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1787 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1788 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1789 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1790 void DDX_CBIndex(CDataExchange *,int,int &) 1791 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1792 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1793 void DDX_Check(CDataExchange *,int,int &) 1794 void DDX_Control(CDataExchange *,int,CWnd &) 1795 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1796 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1797 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1798 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1799 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1800 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1801 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 1802 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 1803 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 1804 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 1805 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 1806 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 1807 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 1808 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 1809 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 1810 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 1811 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 1812 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 1813 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 1814 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 1815 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 1816 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 1817 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 1818 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 1819 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 1820 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 1821 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 1822 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 1823 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 1824 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 1825 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 1826 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 1827 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 1828 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 1829 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 1830 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 1831 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1832 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1833 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1834 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1835 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1836 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1837 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1838 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1839 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1840 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1841 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1842 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 1843 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 1844 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 1845 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 1846 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 1847 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1848 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 1849 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 1850 void DDX_LBIndex(CDataExchange *,int,int &) 1851 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 1852 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1853 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 1854 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 1855 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 1856 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 1857 void DDX_OCBool(CDataExchange *,int,long,int &) 1858 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 1859 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 1860 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 1861 void DDX_OCFloat(CDataExchange *,int,long,float &) 1862 void DDX_OCFloat(CDataExchange *,int,long,double &) 1863 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 1864 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 1865 void DDX_OCInt(CDataExchange *,int,long,int &) 1866 void DDX_OCInt(CDataExchange *,int,long,long &) 1867 void DDX_OCIntRO(CDataExchange *,int,long,int &) 1868 void DDX_OCIntRO(CDataExchange *,int,long,long &) 1869 void DDX_OCShort(CDataExchange *,int,long,short &) 1870 void DDX_OCShortRO(CDataExchange *,int,long,short &) 1871 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 1872 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 1873 void DDX_Radio(CDataExchange *,int,int &) 1874 void DDX_Scroll(CDataExchange *,int,int &) 1875 void DDX_Slider(CDataExchange *,int,int &) 1876 void DDX_Text(CDataExchange *,int,__int64 &) 1877 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 1878 void DDX_Text(CDataExchange *,int,unsigned char &) 1879 void DDX_Text(CDataExchange *,int,short &) 1880 void DDX_Text(CDataExchange *,int,int &) 1881 void DDX_Text(CDataExchange *,int,unsigned int &) 1882 void DDX_Text(CDataExchange *,int,long &) 1883 void DDX_Text(CDataExchange *,int,unsigned long &) 1884 void DDX_Text(CDataExchange *,int,float &) 1885 void DDX_Text(CDataExchange *,int,double &) 1886 void DDX_Text(CDataExchange *,int,_FILETIME &) 1887 void DDX_Text(CDataExchange *,int,_GUID &) 1888 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 1889 void DDX_Text(CDataExchange *,int,tagDBDATE &) 1890 void DDX_Text(CDataExchange *,int,tagDBTIME &) 1891 void DDX_Text(CDataExchange *,int,tagDEC &) 1892 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 1893 void DDX_Text(CDataExchange *,int,COleCurrency &) 1894 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 1895 void DDX_Text(CDataExchange *,int,char *,int) 1896 void COleClientItem::Deactivate() 1897 long COlePropertyPage::XPropertyPage::Deactivate() 1898 int COleServerDoc::DeactivateAndUndo() 1899 long COleClientItem::XOleIPSite::DeactivateAndUndo() 1900 long COleControlSite::XOleIPSite::DeactivateAndUndo() 1901 void COleClientItem::DeactivateUI() 1902 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 1903 long CWnd::Default() 1904 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 1905 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 1906 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 1907 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 1908 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 1909 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 1910 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 1911 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 1912 void CControlBar::DelayShow(int) 1913 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1914 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1915 int ATL::CStringT > >::Delete(int,int) 1916 int ATL::CStringT > >::Delete(int,int) 1917 void CException::Delete() 1918 void COleClientItem::Delete(int) 1919 void CRecordset::Delete() 1920 void CWinThread::Delete() 1921 void CSplitterWnd::DeleteColumn(int) 1922 void CDocument::DeleteContents() 1923 void CEditView::DeleteContents() 1924 void CHtmlEditDoc::DeleteContents() 1925 void COleDocument::DeleteContents() 1926 void COleServerDoc::DeleteContents() 1927 void CRichEditDoc::DeleteContents() 1928 void CRichEditView::DeleteContents() 1929 int CDC::DeleteDC() 1930 int CImageList::DeleteImageList() 1931 void CComboBox::DeleteItem(tagDELETEITEM*) 1932 int CComboBoxEx::DeleteItem(int) 1933 void CListBox::DeleteItem(tagDELETEITEM*) 1934 int CGdiObject::DeleteObject() 1935 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 1936 void CSplitterWnd::DeleteRow(int) 1937 void CHandleMap::DeleteTemp() 1938 void CDC::DeleteTempMap() 1939 void CGdiObject::DeleteTempMap() 1940 void CImageList::DeleteTempMap() 1941 void CMenu::DeleteTempMap() 1942 void CWnd::DeleteTempMap() 1943 void CRichEditDoc::DeleteUnmarkedItems()const 1944 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1945 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1946 void CSplitterWnd::DeleteView(int,int) 1947 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 1948 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1949 void COleSafeArray::Destroy() 1950 int COleControlSite::DestroyControl() 1951 void COleSafeArray::DestroyData() 1952 void COleSafeArray::DestroyDescriptor() 1953 void CFrameWnd::DestroyDockBars() 1954 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 1955 int CMenu::DestroyMenu() 1956 void CDHtmlDialog::DestroyModeless() 1957 void COleControl::DestroySharedMenu() 1958 void COleDocIPFrameWnd::DestroySharedMenu() 1959 void COleIPFrameWnd::DestroySharedMenu() 1960 int CToolTipCtrl::DestroyToolTipCtrl() 1961 void COleControl::DestroyTracker() 1962 int CControlBar::DestroyWindow() 1963 int CMDIChildWnd::DestroyWindow() 1964 int CWnd::DestroyWindow() 1965 unsigned int CAsyncSocket::Detach() 1966 HDC__ * CDC::Detach() 1967 void * CDialogTemplate::Detach() 1968 void * CGdiObject::Detach() 1969 _IMAGELIST * CImageList::Detach() 1970 unsigned char * CMemFile::Detach() 1971 HMENU__ * CMenu::Detach() 1972 int CMonikerFile::Detach(CFileException *) 1973 IDataObject * COleDataObject::Detach() 1974 tagVARIANT COleSafeArray::Detach() 1975 IStream * COleStreamFile::Detach() 1976 tagVARIANT COleVariant::Detach() 1977 void * CSharedFile::Detach() 1978 HDC__ * CWindowlessDC::Detach() 1979 HWND__ * CWnd::Detach() 1980 IDispatch * COleDispatchDriver::DetachDispatch() 1981 void CAsyncSocket::DetachHandle(unsigned int,int) 1982 void COleControlSite::DetachWindow() 1983 void CWinApp::DevModeChange(char *) 1984 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1985 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1986 int COleServerDoc::DiscardUndoState() 1987 long COleClientItem::XOleIPSite::DiscardUndoState() 1988 long COleControlSite::XOleIPSite::DiscardUndoState() 1989 void COleDispatchImpl::Disconnect() 1990 void CDHtmlDialog::DisconnectDHtmlElementEvents() 1991 void CDHtmlDialog::DisconnectDHtmlEvents() 1992 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 1993 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 1994 void CDocument::DisconnectViews() 1995 void CWinThread::DispatchThreadMessage(tagMSG *) 1996 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1997 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 1998 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 1999 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2000 void CAsyncSocket::DoCallBack(unsigned int,long) 2001 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2002 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2003 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2004 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2005 void COleControl::DoClick() 2006 int COleFrameHook::DoContextSensitiveHelp(int) 2007 int COleConvertDialog::DoConvert(COleClientItem *) 2008 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2009 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2010 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2011 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2012 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2013 int COleFrameHook::DoEnableModeless(int) 2014 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2015 void CRecordset::DoFieldExchange(CFieldExchange *) 2016 int CDocument::DoFileSave() 2017 int CSplitterWnd::DoKeyboardSplit() 2018 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2019 int CColorDialog::DoModal() 2020 int CDialog::DoModal() 2021 int CFileDialog::DoModal() 2022 int CFontDialog::DoModal() 2023 int COleBusyDialog::DoModal() 2024 int COleChangeIconDialog::DoModal() 2025 int COleChangeSourceDialog::DoModal() 2026 int COleConvertDialog::DoModal() 2027 int COleInsertDialog::DoModal(unsigned long) 2028 int COleInsertDialog::DoModal() 2029 int COleLinksDialog::DoModal() 2030 int COlePasteSpecialDialog::DoModal() 2031 int COlePropertiesDialog::DoModal() 2032 int COleUpdateDialog::DoModal() 2033 int CPageSetupDialog::DoModal() 2034 int CPrintDialog::DoModal() 2035 int CPrintDialogEx::DoModal() 2036 int CPropertySheet::DoModal() 2037 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2038 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2039 void CControlBar::DoPaint(CDC *) 2040 void CDockBar::DoPaint(CDC *) 2041 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2042 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2043 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2044 int CView::DoPreparePrinting(CPrintInfo *) 2045 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2046 int CWinApp::DoPrintDialog(CPrintDialog *) 2047 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2048 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2049 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2050 void COleControl::DoPropExchange(CPropExchange *) 2051 int CDocument::DoSave(char const *,int) 2052 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2053 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2054 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2055 int CCmdUI::DoUpdate(CCmdTarget *,int) 2056 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2057 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2058 long COleControlSite::DoVerb(long,tagMSG *) 2059 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2060 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2061 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2062 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2063 void CWinApp::DoWaitCursor(int) 2064 void CPreviewView::DoZoom(unsigned int,CPoint) 2065 void CDC::DPtoHIMETRIC(tagSIZE *)const 2066 void CDC::DPtoLP(tagSIZE *)const 2067 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2068 unsigned int CDragListBox::Dragging(CPoint) 2069 long COleDropTarget::XDropTarget::DragLeave() 2070 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2071 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2072 void CRectTracker::Draw(CDC *)const 2073 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2074 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2075 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2076 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2077 void CControlBar::DrawBorders(CDC *,CRect &) 2078 void COleControl::DrawContent(CDC *,CRect &) 2079 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2080 void CDockContext::DrawFocusRect(int) 2081 void CControlBar::DrawGripper(CDC *,CRect const &) 2082 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2083 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2084 void CDragListBox::DrawInsert(int) 2085 void CBitmapButton::DrawItem(tagDRAWITEM*) 2086 void CButton::DrawItem(tagDRAWITEM*) 2087 void CCheckListBox::DrawItem(tagDRAWITEM*) 2088 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2089 void CComboBox::DrawItem(tagDRAWITEM*) 2090 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2091 void CListBox::DrawItem(tagDRAWITEM*) 2092 void CListCtrl::DrawItem(tagDRAWITEM*) 2093 void CListView::DrawItem(tagDRAWITEM*) 2094 void CMenu::DrawItem(tagDRAWITEM*) 2095 void CStatic::DrawItem(tagDRAWITEM*) 2096 void CStatusBar::DrawItem(tagDRAWITEM*) 2097 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2098 void CTabCtrl::DrawItem(tagDRAWITEM*) 2099 void COleControl::DrawMetafile(CDC *,CRect &) 2100 void CDragListBox::DrawSingle(int) 2101 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2102 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2103 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2104 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2105 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2106 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2107 void CDragListBox::Dropped(int,CPoint) 2108 CDumpContext & CDumpContext::DumpAsHex(__int64) 2109 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2110 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2111 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2112 CDumpContext & CDumpContext::DumpAsHex(int) 2113 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2114 CDumpContext & CDumpContext::DumpAsHex(long) 2115 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2116 long COleControl::XDataObject::DUnadvise(unsigned long) 2117 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2118 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2119 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2120 CFile * CFile::Duplicate()const 2121 CFile * CInternetFile::Duplicate()const 2122 CFile * CMemFile::Duplicate()const 2123 CFile * COleStreamFile::Duplicate()const 2124 CFile * CSocketFile::Duplicate()const 2125 CFile * CStdioFile::Duplicate()const 2126 unsigned long const CEditView::dwStyleDefault 2127 void CRecordset::Edit() 2128 long COlePropertyPage::XPropertyPage::EditProperty(long) 2129 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2130 void ATL::CSimpleStringT::Empty() 2131 void ATL::CSimpleStringT::Empty() 2132 void CDBException::Empty() 2133 void COleDataSource::Empty() 2134 void CCheckListBox::Enable(int,int) 2135 void CCmdUI::Enable(int) 2136 void COleCmdUI::Enable(int) 2137 void CStatusCmdUI::Enable(int) 2138 void CTestCmdUI::Enable(int) 2139 void CToolCmdUI::Enable(int) 2140 void CCmdTarget::EnableAggregation() 2141 void CCmdTarget::EnableAutomation() 2142 void CRecordset::EnableBookmarks() 2143 void CCmdTarget::EnableConnections() 2144 void CControlBar::EnableDocking(unsigned long) 2145 void CFrameWnd::EnableDocking(unsigned long) 2146 void COleControlSite::EnableDSC() 2147 long CBrowserControlSite::EnableModeless(int) 2148 long CDHtmlDialog::EnableModeless(int) 2149 void CWinApp::EnableModeless(int) 2150 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2151 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2152 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2153 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2154 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2155 void CWnd::EnableScrollBarCtrl(int,int) 2156 void CWinApp::EnableShellOpen() 2157 void COleControl::EnableSimpleFrame() 2158 void CPropertySheet::EnableStackedTabs(int) 2159 int CInternetSession::EnableStatusCallback(int) 2160 int CWnd::EnableToolTips(int) 2161 int CWnd::EnableTrackingToolTips(int) 2162 void CCmdTarget::EnableTypeLib() 2163 int COleControlSite::EnableWindow(int) 2164 int CWnd::EnableWindow(int) 2165 void COleMessageFilter::EndBusyState() 2166 void CAsyncMonikerFile::EndCallbacks() 2167 long COleLinkingDoc::EndDeferErrors(long) 2168 void CDialog::EndDialog(int) 2169 void CPropertyPage::EndDialog(int) 2170 void CPropertySheet::EndDialog(int) 2171 void CDockContext::EndDrag() 2172 void CWnd::EndModalLoop(int) 2173 void CFrameWnd::EndModalState() 2174 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 2175 void CDockContext::EndResize() 2176 void CCmdTarget::EndWaitCursor() 2177 void COleDataObject::EnsureClipboardObject() 2178 long CWnd::EnsureStdObj() 2179 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2180 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2181 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2182 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2183 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2184 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2185 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2186 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2187 int COlePropertyPage::EnumControls(HWND__ *,long) 2188 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2189 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2190 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2191 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2192 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2193 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2194 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2195 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2196 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2197 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2198 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2199 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2200 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2201 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2202 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2203 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2204 void CControlBar::EraseNonClient() 2205 int CFileException::ErrnoToException(int) 2206 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2207 int CMetaFileDC::Escape(int,int,char const *,void *) 2208 int CPreviewDC::Escape(int,int,char const *,void *) 2209 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 2210 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2211 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2212 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2213 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2214 int COleControl::ExchangeExtent(CPropExchange *) 2215 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2216 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2217 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2218 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2219 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2220 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2221 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2222 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2223 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2224 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2225 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2226 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2227 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2228 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2229 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2230 void COleControl::ExchangeStockProps(CPropExchange *) 2231 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2232 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2233 int CDC::ExcludeClipRect(int,int,int,int) 2234 int CDC::ExcludeClipRect(tagRECT const *) 2235 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2236 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2237 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2238 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2239 int CHtmlEditView::ExecHandler(unsigned int) 2240 int CWnd::ExecuteDlgInit(void *) 2241 int CWnd::ExecuteDlgInit(char const *) 2242 void CRecordset::ExecuteSetPosUpdate() 2243 void CDatabase::ExecuteSQL(char const *) 2244 void CRecordset::ExecuteUpdateSQL() 2245 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2246 void CFrameWnd::ExitHelpMode() 2247 int COleControlModule::ExitInstance() 2248 int CWinApp::ExitInstance() 2249 int CWinThread::ExitInstance() 2250 unsigned long CCmdTarget::ExternalAddRef() 2251 void CCmdTarget::ExternalDisconnect() 2252 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2253 unsigned long CCmdTarget::ExternalRelease() 2254 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2255 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2256 void CDataExchange::Fail() 2257 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2258 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2259 void CArchive::FillBuffer(unsigned int) 2260 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2261 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2262 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2263 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2264 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2265 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2266 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2267 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2268 void CWnd::FilterToolTipMessage(tagMSG *) 2269 int ATL::CStringT > >::Find(wchar_t,int)const 2270 int ATL::CStringT > >::Find(wchar_t const *,int)const 2271 int ATL::CStringT > >::Find(char,int)const 2272 int ATL::CStringT > >::Find(char const *,int)const 2273 __POSITION * CObList::Find(CObject *,__POSITION *)const 2274 __POSITION * CPtrList::Find(void *,__POSITION *)const 2275 __POSITION * CStringList::Find(char const *,__POSITION *)const 2276 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2277 int CDockBar::FindBar(CControlBar *,int) 2278 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2279 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2280 int CFileFind::FindFile(char const *,unsigned long) 2281 int CFtpFileFind::FindFile(char const *,unsigned long) 2282 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2283 int CGopherFileFind::FindFile(char const *,unsigned long) 2284 __POSITION * CObList::FindIndex(int)const 2285 __POSITION * CPtrList::FindIndex(int)const 2286 __POSITION * CStringList::FindIndex(int)const 2287 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2288 int CFileFind::FindNextFileA() 2289 int CFtpFileFind::FindNextFileA() 2290 int CGopherFileFind::FindNextFileA() 2291 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 2292 int ATL::CStringT > >::FindOneOf(char const *)const 2293 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2294 int CDHtmlDialog::FindSinkForObject(char const *) 2295 char const * CRecordset::FindSQLToken(char const *,char const *) 2296 int CEditView::FindTextA(char const *,int,int) 2297 int CRichEditView::FindTextA(char const *,int,int,int) 2298 int CRichEditView::FindTextSimple(char const *,int,int,int) 2299 int COleClientItem::FinishCreate(long) 2300 void COleControl::FireError(long,char const *,unsigned int) 2301 void COleControl::FireEvent(long,unsigned char *,...) 2302 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2303 void COleControl::FireEventV(long,unsigned char *,char *) 2304 void CRecordset::Fixups() 2305 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2306 void CArchive::Flush() 2307 void CDumpContext::Flush() 2308 void CFile::Flush() 2309 void CInternetFile::Flush() 2310 void CMemFile::Flush() 2311 void CMonikerFile::Flush() 2312 void COleStreamFile::Flush() 2313 void CSocketFile::Flush() 2314 void CStdioFile::Flush() 2315 void COleDataSource::FlushClipboard() 2316 int CRecordset::FlushResultSet() 2317 void ATL::CSimpleStringT::Fork(int) 2318 void ATL::CSimpleStringT::Fork(int) 2319 void ATL::CStringT > >::Format(unsigned int,...) 2320 void ATL::CStringT > >::Format(wchar_t const *,...) 2321 void ATL::CStringT > >::Format(unsigned int,...) 2322 void ATL::CStringT > >::Format(char const *,...) 2323 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2324 void ATL::CStringT > >::FormatMessageA(unsigned int,...) 2325 void ATL::CStringT > >::FormatMessageA(char const *,...) 2326 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 2327 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 2328 void ATL::CStringT > >::FormatV(char const *,char *) 2329 void COleControl::ForwardActivationMsg(tagMSG *) 2330 void CAfxStringMgr::Free(ATL::CStringData *) 2331 void CDatabase::Free() 2332 void CFixedAlloc::Free(void *) 2333 void CFixedAllocNoSync::Free(void *) 2334 void CMemFile::Free(unsigned char *) 2335 void CSharedFile::Free(unsigned char *) 2336 void CFixedAlloc::FreeAll() 2337 void CFixedAllocNoSync::FreeAll() 2338 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2339 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2340 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2341 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2342 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2343 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2344 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2345 void CRecordset::FreeDataCache() 2346 void CPlex::FreeDataChain() 2347 void ATL::CSimpleStringT::FreeExtra() 2348 void ATL::CSimpleStringT::FreeExtra() 2349 void CByteArray::FreeExtra() 2350 void CDWordArray::FreeExtra() 2351 void CObArray::FreeExtra() 2352 void CPtrArray::FreeExtra() 2353 void CStringArray::FreeExtra() 2354 void CUIntArray::FreeExtra() 2355 void CWordArray::FreeExtra() 2356 void CObList::FreeNode(CObList::CNode *) 2357 void CPtrList::FreeNode(CPtrList::CNode *) 2358 void CStringList::FreeNode(CStringList::CNode *) 2359 void CRecordset::FreeRowset() 2360 void CThreadSlotData::FreeSlot(int) 2361 void CProperty::FreeValue() 2362 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2363 void COleControlContainer::FreezeAllEvents(int) 2364 void COleControlSite::FreezeEvents(int) 2365 long COleControl::XOleControl::FreezeEvents(int) 2366 int COleClientItem::FreezeLink() 2367 CDC * CDC::FromHandle(HDC__ *) 2368 CGdiObject * CGdiObject::FromHandle(void *) 2369 CObject * CHandleMap::FromHandle(void *) 2370 CImageList * CImageList::FromHandle(_IMAGELIST *) 2371 CMenu * CMenu::FromHandle(HMENU__ *) 2372 CWnd * CWnd::FromHandle(HWND__ *) 2373 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2374 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2375 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2376 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2377 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2378 CRuntime* CRuntimeClass::FromName(char const *) 2379 void * CProperty::Get(unsigned long *) 2380 void * CProperty::Get() 2381 void * CPropertySection::Get(unsigned long) 2382 void * CPropertySection::Get(unsigned long,unsigned long *) 2383 void * CPropertySet::Get(_GUID,unsigned long) 2384 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2385 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2386 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2387 long CWnd::get_accChildCount(long *) 2388 long CWnd::XAccessible::get_accChildCount(long *) 2389 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2390 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2391 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2392 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2393 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2394 long CWnd::get_accFocus(tagVARIANT *) 2395 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2396 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2397 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2398 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2399 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2400 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2401 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2402 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2403 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2404 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2405 long CWnd::get_accParent(IDispatch * *) 2406 long CWnd::XAccessible::get_accParent(IDispatch * *) 2407 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2408 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2409 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2410 long CWnd::get_accSelection(tagVARIANT *) 2411 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2412 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2413 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2414 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2415 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2416 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2417 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2418 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2419 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2420 long CWnd::GetAccessibleChildCount() 2421 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2422 unsigned long COleControl::GetActivationPolicy() 2423 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2424 CDocument * CFrameWnd::GetActiveDocument() 2425 CFrameWnd * CFrameWnd::GetActiveFrame() 2426 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2427 int CPropertySheet::GetActiveIndex()const 2428 CPropertyPage * CPropertySheet::GetActivePage()const 2429 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2430 CView * CFrameWnd::GetActiveView()const 2431 IOleDocumentView * COleDocObjectItem::GetActiveView()const 2432 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2433 int CHtmlView::GetAddressBar()const 2434 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2435 int ATL::CSimpleStringT::GetAllocLength()const 2436 int ATL::CSimpleStringT::GetAllocLength()const 2437 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2438 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2439 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2440 short COleControl::GetAppearance() 2441 IDispatch * CHtmlView::GetApplication()const 2442 HKEY__ * CWinApp::GetAppRegistryKey() 2443 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2444 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2445 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2446 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2447 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2448 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2449 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2450 wchar_t ATL::CSimpleStringT::GetAt(int)const 2451 char ATL::CSimpleStringT::GetAt(int)const 2452 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2453 unsigned long COleControl::GetBackColor() 2454 void CControlBar::GetBarInfo(CControlBarInfo *) 2455 void CDockBar::GetBarInfo(CControlBarInfo *) 2456 unsigned long CAsyncMonikerFile::GetBindInfo()const 2457 void * CBlobProperty::GetBlob() 2458 void CRecordset::GetBookmark(CDBVariant &) 2459 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2460 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2461 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2462 short COleControl::GetBorderStyle() 2463 long CDataSourceControl::GetBoundClientRow() 2464 int CRecordset::GetBoundFieldIndex(void *) 2465 int CRecordset::GetBoundParamIndex(void *) 2466 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 2467 wchar_t * ATL::CSimpleStringT::GetBuffer() 2468 char * ATL::CSimpleStringT::GetBuffer(int) 2469 char * ATL::CSimpleStringT::GetBuffer() 2470 unsigned int CEditView::GetBufferLength()const 2471 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2472 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2473 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2474 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 2475 char * ATL::CSimpleStringT::GetBufferSetLength(int) 2476 int CHtmlView::GetBusy()const 2477 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2478 unsigned int CToolBar::GetButtonStyle(int)const 2479 ATL::CStringT > > CToolBar::GetButtonText(int)const 2480 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2481 void COleSafeArray::GetByteArray(CByteArray &) 2482 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2483 unsigned short CPropertySet::GetByteOrder() 2484 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2485 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2486 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2487 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2488 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2489 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2490 CWnd * COleControl::GetCapture() 2491 long COleControlSite::XOleIPSite::GetCapture() 2492 void CFontDialog::GetCharFormat(_charformat &)const 2493 CHARFORMAT2A & CRichEditView::GetCharFormatSelection() 2494 int CCheckListBox::GetCheck(int) 2495 int CListCtrl::GetCheck(int)const 2496 int CTreeCtrl::GetCheck(_TREEITEM *)const 2497 int CWnd::GetCheckedRadioButton(int,int) 2498 long CBlobProperty::GetClassID(_GUID *) 2499 void COleClientItem::GetClassID(_GUID *)const 2500 _GUID CPropertySet::GetClassID() 2501 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2502 long COleControl::XPersistMemory::GetClassID(_GUID *) 2503 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2504 long COleControl::XPersistStorage::GetClassID(_GUID *) 2505 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2506 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2507 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 2508 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2509 void COleControl::GetClientOffset(long *,long *)const 2510 void COleControl::GetClientRect(tagRECT *)const 2511 IOleClientSite * COleClientItem::GetClientSite() 2512 IOleClientSite * COleControl::GetClientSite() 2513 IOleClientSite * CRichEditCntrItem::GetClientSite() 2514 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2515 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2516 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2517 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2518 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2519 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2520 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2521 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2522 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2523 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2524 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2525 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2526 COleDataSource * COleDataSource::GetClipboardOwner() 2527 int CDC::GetClipBox(tagRECT *)const 2528 int CMetaFileDC::GetClipBox(tagRECT *)const 2529 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2530 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2531 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2532 int CListCtrl::GetColumnOrderArray(int *,int) 2533 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2534 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 2535 void CDatabase::GetConnectInfo() 2536 int CConnectionPoint::GetConnectionCount() 2537 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2538 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2539 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2540 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2541 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2542 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2543 CPtrArray const * CConnectionPoint::GetConnections() 2544 IConnectionPointContainer * CConnectionPoint::GetContainer() 2545 IDispatch * CHtmlView::GetContainer()const 2546 IOleItemContainer * COleDocument::GetContainer() 2547 IOleItemContainer * COleLinkingDoc::GetContainer() 2548 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2549 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2550 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2551 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2552 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2553 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2554 COleControlContainer * CWnd::GetControlContainer() 2555 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 2556 unsigned long COleControl::GetControlFlags() 2557 void COleControlSite::GetControlInfo() 2558 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2559 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2560 IUnknown * CCmdTarget::GetControllingUnknown() 2561 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2562 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 2563 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 2564 void COleControl::GetControlSize(int *,int *) 2565 int COlePropertyPage::GetControlStatus(unsigned int) 2566 IUnknown * CWnd::GetControlUnknown() 2567 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2568 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 2569 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 2570 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 2571 int CPrintDialog::GetCopies()const 2572 int CPrintDialogEx::GetCopies()const 2573 unsigned long CPropertySection::GetCount() 2574 unsigned long CPropertySet::GetCount() 2575 int CFileFind::GetCreationTime(ATL::CTime &)const 2576 int CFileFind::GetCreationTime(_FILETIME *)const 2577 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2578 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2579 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2580 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 2581 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 2582 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2583 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 2584 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 2585 tagMSG const * CWnd::GetCurrentMessage() 2586 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2587 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2588 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2589 IUnknown * CDataBoundProperty::GetCursor() 2590 IUnknown * CDataSourceControl::GetCursor() 2591 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2592 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2593 ATL::CStringData * ATL::CSimpleStringT::GetData()const 2594 ATL::CStringData * ATL::CSimpleStringT::GetData()const 2595 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2596 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2597 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2598 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2599 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2600 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2601 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2602 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2603 ATL::CStringT > > CDatabase::GetDatabaseName()const 2604 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2605 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2606 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2607 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2608 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2609 CNoTrackObject * CThreadLocalObject::GetDataNA() 2610 IDataObject * COleServerItem::GetDataObject() 2611 COleControl::CControlDataSource * COleControl::GetDataSource() 2612 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2613 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2614 HACCEL__ * CDocument::GetDefaultAccelerator() 2615 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2616 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 2617 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 2618 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 2619 ATL::CStringT > > CRecordset::GetDefaultConnect() 2620 short CRecordset::GetDefaultFieldType(short) 2621 HMENU__ * CDocument::GetDefaultMenu() 2622 HMENU__ * COleServerDoc::GetDefaultMenu() 2623 int CPrintDialog::GetDefaults() 2624 int CPrintDialogEx::GetDefaults() 2625 ATL::CStringT > > CRecordset::GetDefaultSQL() 2626 unsigned long COccManager::GetDefBtnCode(CWnd *) 2627 unsigned long COleControlSite::GetDefBtnCode() 2628 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2629 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 2630 ATL::CStringT > > CPrintDialog::GetDeviceName()const 2631 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 2632 CPoint CScrollView::GetDeviceScrollPosition()const 2633 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2634 _devicemodeA * CPageSetupDialog::GetDevMode()const 2635 _devicemodeA * CPrintDialog::GetDevMode()const 2636 _devicemodeA * CPrintDialogEx::GetDevMode()const 2637 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2638 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2639 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2640 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2641 DHtmlEventMapEntry const * GetDHtmlEventMap() 2642 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 2643 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 2644 int CCmdTarget::GetDispatchIID(_GUID *) 2645 int COleControl::GetDispatchIID(_GUID *) 2646 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2647 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 2648 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2649 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 2650 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2651 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2652 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2653 int COleControlSite::GetDlgCtrlID()const 2654 int CWnd::GetDlgCtrlID()const 2655 CWnd * COleControlContainer::GetDlgItem(int)const 2656 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2657 CWnd * CWnd::GetDlgItem(int)const 2658 void CWnd::GetDlgItem(int,HWND__ * *)const 2659 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2660 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2661 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 2662 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 2663 int CWnd::GetDlgItemTextA(int,char *,int)const 2664 CDockBar * CDockContext::GetDockBar(unsigned long) 2665 CControlBar * CDockBar::GetDockedControlBar(int)const 2666 int CDockBar::GetDockedCount()const 2667 int CDockBar::GetDockedVisibleCount()const 2668 CFrameWnd * CControlBar::GetDockingFrame()const 2669 void CFrameWnd::GetDockState(CDockState &)const 2670 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2671 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2672 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2673 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2674 int CDocManager::GetDocumentCount() 2675 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2676 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 2677 ATL::CStringT > > CPrintDialog::GetDriverName()const 2678 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 2679 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2680 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2681 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2682 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2683 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2684 IUnknown * CWnd::GetDSCCursor() 2685 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 2686 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 2687 void COleSafeArray::GetElement(long *,void *) 2688 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 2689 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 2690 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 2691 wchar_t * CDHtmlDialog::GetElementText(char const *) 2692 COleServerItem * COleServerDoc::GetEmbeddedItem() 2693 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2694 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2695 int COleControl::GetEnabled() 2696 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2697 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2698 int ATL::CStringT > >::GetEnvironmentVariableA(wchar_t const *) 2699 int ATL::CStringT > >::GetEnvironmentVariableA(char const *) 2700 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2701 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2702 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 2703 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2704 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2705 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2706 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2707 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2708 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2709 int COleControlSite::GetEventIID(_GUID *) 2710 AFX_EVENTMAP const * COleControl::GetEventMap()const 2711 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 2712 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 2713 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2714 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2715 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 2716 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 2717 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 2718 unsigned long COleControlSite::GetExStyle()const 2719 unsigned long CWnd::GetExStyle()const 2720 IDispatch * COleControl::GetExtendedControl() 2721 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2722 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2723 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2724 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2725 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2726 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2727 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2728 long CBrowserControlSite::GetExternal(IDispatch * *) 2729 long CDHtmlDialog::GetExternal(IDispatch * *) 2730 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2731 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2732 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2733 short CRecordset::GetFieldIndexByName(char const *) 2734 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2735 unsigned char CRecordset::GetFieldStatus(unsigned long) 2736 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2737 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2738 void CRecordset::GetFieldValue(short,CDBVariant &,short) 2739 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 2740 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 2741 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 2742 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 2743 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 2744 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 2745 ATL::CStringT > > CFileDialog::GetFileExt()const 2746 ATL::CStringT > > CFile::GetFileName()const 2747 ATL::CStringT > > CFileDialog::GetFileName()const 2748 ATL::CStringT > > CFileFind::GetFileName()const 2749 ATL::CStringT > > CGopherFileFind::GetFileName()const 2750 ATL::CStringT > > CFile::GetFilePath()const 2751 ATL::CStringT > > CFileFind::GetFilePath()const 2752 ATL::CStringT > > CGopherFileFind::GetFilePath()const 2753 ATL::CStringT > > CFile::GetFileTitle()const 2754 ATL::CStringT > > CFileDialog::GetFileTitle()const 2755 ATL::CStringT > > CFileFind::GetFileTitle()const 2756 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 2757 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 2758 ATL::CStringT > > CFileFind::GetFileURL()const 2759 ATL::CStringT > > CFtpFileFind::GetFileURL()const 2760 ATL::CStringT > > CGopherFileFind::GetFileURL()const 2761 ATL::CStringT > > CHttpFile::GetFileURL()const 2762 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 2763 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2764 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2765 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2766 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2767 CFrameWnd * COleDocument::GetFirstFrame() 2768 __POSITION * CDocument::GetFirstViewPosition()const 2769 CWnd * COleControl::GetFocus() 2770 long COleControlSite::XOleIPSite::GetFocus() 2771 ATL::CStringT > > CFileDialog::GetFolderPath()const 2772 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 2773 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 2774 IFontDisp * COleControl::GetFont() 2775 IFontDisp * CFontHolder::GetFontDispatch() 2776 HFONT__ * CFontHolder::GetFontHandle(long,long) 2777 HFONT__ * CFontHolder::GetFontHandle() 2778 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2779 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 2780 unsigned long COleControl::GetForeColor() 2781 _GUID CPropertySection::GetFormatID() 2782 unsigned short CPropertySet::GetFormatVersion() 2783 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 2784 ATL::CStringT > > CHtmlView::GetFullName()const 2785 int CHtmlView::GetFullScreen()const 2786 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 2787 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 2788 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 2789 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 2790 CBrush * CDC::GetHalftoneBrush() 2791 unsigned int CRectTracker::GetHandleMask()const 2792 void CRectTracker::GetHandleRect(int,CRect *)const 2793 int CRectTracker::GetHandleSize(tagRECT const *)const 2794 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2795 long CHtmlView::GetHeight()const 2796 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 2797 void CSplitterWnd::GetHitRect(int,CRect &) 2798 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 2799 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 2800 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 2801 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2802 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 2803 IDispatch * CHtmlView::GetHtmlDocument()const 2804 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 2805 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 2806 unsigned int COleControl::GetHwnd() 2807 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 2808 HICON__ * COleClientItem::GetIconFromRegistry()const 2809 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 2810 void * COleClientItem::GetIconicMetafile() 2811 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2812 unsigned long CProperty::GetID() 2813 int CPropertySection::GetID(char const *,unsigned long *) 2814 IDataObject * COleDataObject::GetIDataObject(int) 2815 IDispatch * CCmdTarget::GetIDispatch(int) 2816 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2817 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2818 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2819 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2820 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2821 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2822 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2823 _GUID const & COleControl::XEventConnPt::GetIID() 2824 CImageList * CReBarCtrl::GetImageList()const 2825 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 2826 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 2827 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 2828 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 2829 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 2830 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 2831 CWnd * COleClientItem::GetInPlaceWindow() 2832 void CSplitterWnd::GetInsideRect(CRect &)const 2833 IUnknown * CCmdTarget::GetInterface(void const *) 2834 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 2835 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2836 IUnknown * COleControl::GetInterfaceHook(void const *) 2837 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 2838 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2839 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 2840 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 2841 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 2842 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 2843 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 2844 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 2845 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 2846 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 2847 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 2848 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 2849 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 2850 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 2851 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 2852 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 2853 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 2854 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 2855 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 2856 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 2857 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 2858 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 2859 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 2860 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 2861 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 2862 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 2863 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2864 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 2865 void COleServerDoc::GetItemClipRect(tagRECT *)const 2866 unsigned long CListCtrl::GetItemData(int)const 2867 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2868 unsigned int CStatusBar::GetItemID(int)const 2869 unsigned int CToolBar::GetItemID(int)const 2870 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2871 void COleClientItem::GetItemName(char *)const 2872 void COleServerDoc::GetItemPosition(tagRECT *)const 2873 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2874 void CStatusBar::GetItemRect(int,tagRECT *)const 2875 void CToolBar::GetItemRect(int,tagRECT *)const 2876 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2877 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2878 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2879 void COleClientItem::GetItemStorage() 2880 void COleClientItem::GetItemStorageCompound() 2881 void COleClientItem::GetItemStorageFlat() 2882 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 2883 int CListCtrl::GetItemText(int,int,char *,int)const 2884 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 2885 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 2886 int CFileFind::GetLastAccessTime(ATL::CTime &)const 2887 int CFileFind::GetLastAccessTime(_FILETIME *)const 2888 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 2889 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2890 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 2891 int CFileFind::GetLastWriteTime(ATL::CTime &)const 2892 int CFileFind::GetLastWriteTime(_FILETIME *)const 2893 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 2894 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2895 unsigned long CDC::GetLayout()const 2896 long CRecordset::GetLBFetchSize(long) 2897 void COleSafeArray::GetLBound(unsigned long,long *) 2898 long CRecordset::GetLBReallocSize(long) 2899 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 2900 long CHtmlView::GetLeft()const 2901 int ATL::CSimpleStringT::GetLength()const 2902 int ATL::CSimpleStringT::GetLength()const 2903 unsigned __int64 CFile::GetLength()const 2904 unsigned __int64 CFileFind::GetLength()const 2905 unsigned __int64 CGopherFileFind::GetLength()const 2906 unsigned __int64 CInternetFile::GetLength()const 2907 unsigned __int64 CMemFile::GetLength()const 2908 unsigned __int64 COleStreamFile::GetLength()const 2909 unsigned __int64 CSocketFile::GetLength()const 2910 unsigned __int64 CStdioFile::GetLength()const 2911 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 2912 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 2913 int CRichEditCtrl::GetLine(int,char *)const 2914 int CRichEditCtrl::GetLine(int,char *,int)const 2915 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 2916 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 2917 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 2918 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 2919 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 2920 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 2921 CPtrList * CPropertySection::GetList() 2922 CPtrList * CPropertySet::GetList() 2923 ATL::CStringT > > CHtmlView::GetLocationName()const 2924 ATL::CStringT > > CHtmlView::GetLocationURL()const 2925 CGopherLocator CGopherFileFind::GetLocator()const 2926 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 2927 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 2928 long CFieldExchange::GetLongBinarySize(int) 2929 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2930 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2931 CWnd * CWinThread::GetMainWnd() 2932 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2933 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2934 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2935 int CConnectionPoint::GetMaxConnections() 2936 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2937 int CHtmlView::GetMenuBar()const 2938 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 2939 CWnd * CFrameWnd::GetMessageBar() 2940 CWnd * CMDIChildWnd::GetMessageBar() 2941 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2942 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2943 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2944 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2945 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 2946 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2947 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 2948 AFX_MSGMAP const * CDialog::GetMessageMap()const 2949 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2950 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2951 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 2952 AFX_MSGMAP const * CDocument::GetMessageMap()const 2953 AFX_MSGMAP const * CEditView::GetMessageMap()const 2954 AFX_MSGMAP const * CFormView::GetMessageMap()const 2955 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2956 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 2957 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 2958 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2959 AFX_MSGMAP const * CListView::GetMessageMap()const 2960 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2961 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2962 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2963 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2964 AFX_MSGMAP const * COleControl::GetMessageMap()const 2965 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 2966 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 2967 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 2968 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 2969 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 2970 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 2971 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2972 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2973 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 2974 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2975 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2976 AFX_MSGMAP const * CReBar::GetMessageMap()const 2977 AFX_MSGMAP const * CRecordView::GetMessageMap()const 2978 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 2979 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2980 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 2981 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2982 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2983 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2984 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2985 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2986 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2987 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2988 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2989 AFX_MSGMAP const * CView::GetMessageMap()const 2990 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2991 AFX_MSGMAP const * CWnd::GetMessageMap()const 2992 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 2993 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 2994 long CDataSourceControl::GetMetaData() 2995 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2996 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2997 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2998 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2999 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3000 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3001 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 3002 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 3003 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 3004 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 3005 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3006 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3007 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3008 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3009 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3010 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3011 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3012 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 3013 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 3014 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 3015 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3016 unsigned long COleClientItem::GetNewItemNumber() 3017 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3018 CDataBoundProperty * CDataBoundProperty::GetNext() 3019 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3020 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3021 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 3022 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 3023 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 3024 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3025 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3026 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3027 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3028 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 3029 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 3030 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3031 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3032 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3033 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3034 int COleDataObject::GetNextFormat(tagFORMATETC *) 3035 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3036 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3037 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3038 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 3039 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3040 CView * CDocument::GetNextView(__POSITION * &)const 3041 ATL::CStringData * CAfxStringMgr::GetNilString() 3042 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3043 void CCmdTarget::GetNotSupported() 3044 void COleControl::GetNotSupported() 3045 ATL::CStringT > > CHttpFile::GetObjectA()const 3046 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 3047 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3048 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3049 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3050 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 3051 unsigned int CArchive::GetObjectSchema() 3052 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 3053 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3054 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 3055 int CHtmlView::GetOffline()const 3056 tagOFNA & CFileDialog::GetOFN() 3057 tagOFNA const & CFileDialog::GetOFN()const 3058 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 3059 IOleObject * COleServerItem::GetOleObject() 3060 unsigned long COleSafeArray::GetOneDimSize() 3061 int CDocManager::GetOpenDocumentCount() 3062 int CWinApp::GetOpenDocumentCount() 3063 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 3064 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 3065 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 3066 int CHeaderCtrl::GetOrderArray(int *,int) 3067 unsigned long CPropertySet::GetOSVersion() 3068 CWnd * COleControl::GetOuterWindow()const 3069 int COleDocObjectItem::GetPageCount(long *,long *) 3070 int CPropertySheet::GetPageCount()const 3071 int CPropertySheet::GetPageIndex(CPropertyPage *) 3072 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3073 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3074 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3075 IPropertyPageSite * COlePropertyPage::GetPageSite() 3076 CWnd * CSplitterWnd::GetPane(int,int)const 3077 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3078 unsigned int CStatusBar::GetPaneStyle(int)const 3079 ATL::CStringT > > CStatusBar::GetPaneText(int)const 3080 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 3081 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3082 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 3083 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 3084 IDispatch * CHtmlView::GetParentBrowser()const 3085 CFrameWnd * CWnd::GetParentFrame()const 3086 CWnd * CWnd::GetParentOwner()const 3087 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3088 ATL::CStringT > > CFileDialog::GetPathName()const 3089 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 3090 IPictureDisp * CPictureHolder::GetPictureDispatch() 3091 ATL::CStringT > > CPageSetupDialog::GetPortName()const 3092 ATL::CStringT > > CPrintDialog::GetPortName()const 3093 ATL::CStringT > > CPrintDialogEx::GetPortName()const 3094 unsigned __int64 CFile::GetPosition()const 3095 unsigned __int64 CMemFile::GetPosition()const 3096 unsigned __int64 COleStreamFile::GetPosition()const 3097 unsigned __int64 CSocketFile::GetPosition()const 3098 unsigned __int64 CStdioFile::GetPosition()const 3099 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3100 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3101 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 3102 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3103 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3104 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3105 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 3106 CFont * CEditView::GetPrinterFont()const 3107 long CAsyncMonikerFile::GetPriority()const 3108 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 3109 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 3110 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 3111 int COlePropertyPage::GetPropCheck(char const *,int *) 3112 COleVariant CHtmlView::GetProperty(char const *) 3113 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 3114 void COleControlSite::GetProperty(long,unsigned short,void *)const 3115 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3116 CProperty * CPropertySection::GetProperty(unsigned long) 3117 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3118 void CWnd::GetProperty(long,unsigned short,void *)const 3119 int COlePropertyPage::GetPropIndex(char const *,int *) 3120 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3121 int COlePropertyPage::GetPropRadio(char const *,int *) 3122 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3123 int COlePropertyPage::GetPropText(char const *,unsigned char *) 3124 int COlePropertyPage::GetPropText(char const *,short *) 3125 int COlePropertyPage::GetPropText(char const *,int *) 3126 int COlePropertyPage::GetPropText(char const *,unsigned int *) 3127 int COlePropertyPage::GetPropText(char const *,long *) 3128 int COlePropertyPage::GetPropText(char const *,unsigned long *) 3129 int COlePropertyPage::GetPropText(char const *,float *) 3130 int COlePropertyPage::GetPropText(char const *,double *) 3131 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 3132 _PROPSHEETPAGEA & CPropertyPage::GetPSP() 3133 _PROPSHEETPAGEA const & CPropertyPage::GetPSP()const 3134 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3135 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3136 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3137 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3138 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3139 void CProgressCtrl::GetRange(int &,int &) 3140 void CSliderCtrl::GetRange(int &,int &)const 3141 void CSpinButtonCtrl::GetRange(int &,int &)const 3142 void * CProperty::GetRawValue() 3143 enum tagREADYSTATE CHtmlView::GetReadyState()const 3144 long COleControl::GetReadyState() 3145 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3146 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3147 int COleControl::GetRectInContainer(tagRECT *) 3148 int CHtmlView::GetRegisterAsBrowser()const 3149 int CHtmlView::GetRegisterAsDropTarget()const 3150 ATL::CStringT > > CFileFind::GetRoot()const 3151 ATL::CStringT > > CGopherFileFind::GetRoot()const 3152 CFrameWnd * CCmdTarget::GetRoutingFrame() 3153 CFrameWnd * CCmdTarget::GetRoutingFrame_() 3154 CView * CCmdTarget::GetRoutingView() 3155 CView * CCmdTarget::GetRoutingView_() 3156 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3157 CRuntime* CAnimateCtrl::GetRuntimeClass()const 3158 CRuntime* CArchiveException::GetRuntimeClass()const 3159 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 3160 CRuntime* CAsyncSocket::GetRuntimeClass()const 3161 CRuntime* CBitmap::GetRuntimeClass()const 3162 CRuntime* CBitmapButton::GetRuntimeClass()const 3163 CRuntime* CBrush::GetRuntimeClass()const 3164 CRuntime* CButton::GetRuntimeClass()const 3165 CRuntime* CByteArray::GetRuntimeClass()const 3166 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 3167 CRuntime* CCheckListBox::GetRuntimeClass()const 3168 CRuntime* CClientDC::GetRuntimeClass()const 3169 CRuntime* CCmdTarget::GetRuntimeClass()const 3170 CRuntime* CColorDialog::GetRuntimeClass()const 3171 CRuntime* CComboBox::GetRuntimeClass()const 3172 CRuntime* CComboBoxEx::GetRuntimeClass()const 3173 CRuntime* CControlBar::GetRuntimeClass()const 3174 CRuntime* CCriticalSection::GetRuntimeClass()const 3175 CRuntime* CCtrlView::GetRuntimeClass()const 3176 CRuntime* CDatabase::GetRuntimeClass()const 3177 CRuntime* CDataPathProperty::GetRuntimeClass()const 3178 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 3179 CRuntime* CDBException::GetRuntimeClass()const 3180 CRuntime* CDC::GetRuntimeClass()const 3181 CRuntime* CDHtmlDialog::GetRuntimeClass()const 3182 CRuntime* CDialog::GetRuntimeClass()const 3183 CRuntime* CDialogBar::GetRuntimeClass()const 3184 CRuntime* CDocItem::GetRuntimeClass()const 3185 CRuntime* CDockBar::GetRuntimeClass()const 3186 CRuntime* CDockState::GetRuntimeClass()const 3187 CRuntime* CDocManager::GetRuntimeClass()const 3188 CRuntime* CDocObjectServer::GetRuntimeClass()const 3189 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 3190 CRuntime* CDocTemplate::GetRuntimeClass()const 3191 CRuntime* CDocument::GetRuntimeClass()const 3192 CRuntime* CDragListBox::GetRuntimeClass()const 3193 CRuntime* CDWordArray::GetRuntimeClass()const 3194 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3195 CRuntime* CEdit::GetRuntimeClass()const 3196 CRuntime* CEditView::GetRuntimeClass()const 3197 CRuntime* CEvent::GetRuntimeClass()const 3198 CRuntime* CException::GetRuntimeClass()const 3199 CRuntime* CFile::GetRuntimeClass()const 3200 CRuntime* CFileDialog::GetRuntimeClass()const 3201 CRuntime* CFileException::GetRuntimeClass()const 3202 CRuntime* CFileFind::GetRuntimeClass()const 3203 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3204 CRuntime* CFont::GetRuntimeClass()const 3205 CRuntime* CFontDialog::GetRuntimeClass()const 3206 CRuntime* CFormView::GetRuntimeClass()const 3207 CRuntime* CFrameWnd::GetRuntimeClass()const 3208 CRuntime* CFtpConnection::GetRuntimeClass()const 3209 CRuntime* CFtpFileFind::GetRuntimeClass()const 3210 CRuntime* CGdiObject::GetRuntimeClass()const 3211 CRuntime* CGopherConnection::GetRuntimeClass()const 3212 CRuntime* CGopherFile::GetRuntimeClass()const 3213 CRuntime* CGopherFileFind::GetRuntimeClass()const 3214 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3215 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3216 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 3217 CRuntime* CHtmlEditView::GetRuntimeClass()const 3218 CRuntime* CHtmlView::GetRuntimeClass()const 3219 CRuntime* CHttpConnection::GetRuntimeClass()const 3220 CRuntime* CHttpFile::GetRuntimeClass()const 3221 CRuntime* CImageList::GetRuntimeClass()const 3222 CRuntime* CInternetConnection::GetRuntimeClass()const 3223 CRuntime* CInternetException::GetRuntimeClass()const 3224 CRuntime* CInternetFile::GetRuntimeClass()const 3225 CRuntime* CInternetSession::GetRuntimeClass()const 3226 CRuntime* CInvalidArgException::GetRuntimeClass()const 3227 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 3228 CRuntime* CLinkCtrl::GetRuntimeClass()const 3229 CRuntime* CListBox::GetRuntimeClass()const 3230 CRuntime* CListCtrl::GetRuntimeClass()const 3231 CRuntime* CListView::GetRuntimeClass()const 3232 CRuntime* CLongBinary::GetRuntimeClass()const 3233 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3234 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3235 CRuntime* CMapStringToOb::GetRuntimeClass()const 3236 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3237 CRuntime* CMapStringToString::GetRuntimeClass()const 3238 CRuntime* CMapWordToOb::GetRuntimeClass()const 3239 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3240 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3241 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3242 CRuntime* CMemFile::GetRuntimeClass()const 3243 CRuntime* CMemoryException::GetRuntimeClass()const 3244 CRuntime* CMenu::GetRuntimeClass()const 3245 CRuntime* CMetaFileDC::GetRuntimeClass()const 3246 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3247 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3248 CRuntime* CMonikerFile::GetRuntimeClass()const 3249 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 3250 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3251 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 3252 CRuntime* CMutex::GetRuntimeClass()const 3253 CRuntime* CNotSupportedException::GetRuntimeClass()const 3254 CRuntime* CObArray::GetRuntimeClass()const 3255 CRuntime* CObject::GetRuntimeClass()const 3256 CRuntime* CObList::GetRuntimeClass()const 3257 CRuntime* COleBusyDialog::GetRuntimeClass()const 3258 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3259 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3260 CRuntime* COleClientItem::GetRuntimeClass()const 3261 CRuntime* COleControl::GetRuntimeClass()const 3262 CRuntime* COleControlModule::GetRuntimeClass()const 3263 CRuntime* COleConvertDialog::GetRuntimeClass()const 3264 CRuntime* COleDBRecordView::GetRuntimeClass()const 3265 CRuntime* COleDialog::GetRuntimeClass()const 3266 CRuntime* COleDispatchException::GetRuntimeClass()const 3267 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3268 CRuntime* COleDocObjectItem::GetRuntimeClass()const 3269 CRuntime* COleDocument::GetRuntimeClass()const 3270 CRuntime* COleException::GetRuntimeClass()const 3271 CRuntime* COleInsertDialog::GetRuntimeClass()const 3272 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3273 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3274 CRuntime* COleLinksDialog::GetRuntimeClass()const 3275 CRuntime* COleObjectFactory::GetRuntimeClass()const 3276 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3277 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3278 CRuntime* COlePropertyPage::GetRuntimeClass()const 3279 CRuntime* COleResizeBar::GetRuntimeClass()const 3280 CRuntime* COleServerDoc::GetRuntimeClass()const 3281 CRuntime* COleServerItem::GetRuntimeClass()const 3282 CRuntime* COleStreamFile::GetRuntimeClass()const 3283 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3284 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3285 CRuntime* CPaintDC::GetRuntimeClass()const 3286 CRuntime* CPalette::GetRuntimeClass()const 3287 CRuntime* CPen::GetRuntimeClass()const 3288 CRuntime* CPreviewDC::GetRuntimeClass()const 3289 CRuntime* CPreviewView::GetRuntimeClass()const 3290 CRuntime* CPrintDialog::GetRuntimeClass()const 3291 CRuntime* CPrintDialogEx::GetRuntimeClass()const 3292 CRuntime* CProgressCtrl::GetRuntimeClass()const 3293 CRuntime* CPropertyPage::GetRuntimeClass()const 3294 CRuntime* CPropertySheet::GetRuntimeClass()const 3295 CRuntime* CPtrArray::GetRuntimeClass()const 3296 CRuntime* CPtrList::GetRuntimeClass()const 3297 CRuntime* CReBar::GetRuntimeClass()const 3298 CRuntime* CReBarCtrl::GetRuntimeClass()const 3299 CRuntime* CRecordset::GetRuntimeClass()const 3300 CRuntime* CRecordView::GetRuntimeClass()const 3301 CRuntime* CResourceException::GetRuntimeClass()const 3302 CRuntime* CRgn::GetRuntimeClass()const 3303 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3304 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3305 CRuntime* CRichEditDoc::GetRuntimeClass()const 3306 CRuntime* CRichEditView::GetRuntimeClass()const 3307 CRuntime* CScrollBar::GetRuntimeClass()const 3308 CRuntime* CScrollView::GetRuntimeClass()const 3309 CRuntime* CSemaphore::GetRuntimeClass()const 3310 CRuntime* CSharedFile::GetRuntimeClass()const 3311 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3312 CRuntime* CSliderCtrl::GetRuntimeClass()const 3313 CRuntime* CSocket::GetRuntimeClass()const 3314 CRuntime* CSocketFile::GetRuntimeClass()const 3315 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3316 CRuntime* CSplitterWnd::GetRuntimeClass()const 3317 CRuntime* CStatic::GetRuntimeClass()const 3318 CRuntime* CStatusBar::GetRuntimeClass()const 3319 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3320 CRuntime* CStdioFile::GetRuntimeClass()const 3321 CRuntime* CStringArray::GetRuntimeClass()const 3322 CRuntime* CStringList::GetRuntimeClass()const 3323 CRuntime* CSyncObject::GetRuntimeClass()const 3324 CRuntime* CTabCtrl::GetRuntimeClass()const 3325 CRuntime* CToolBar::GetRuntimeClass()const 3326 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3327 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3328 CRuntime* CTreeCtrl::GetRuntimeClass()const 3329 CRuntime* CTreeView::GetRuntimeClass()const 3330 CRuntime* CUIntArray::GetRuntimeClass()const 3331 CRuntime* CUserException::GetRuntimeClass()const 3332 CRuntime* CView::GetRuntimeClass()const 3333 CRuntime* CWinApp::GetRuntimeClass()const 3334 CRuntime* CWindowDC::GetRuntimeClass()const 3335 CRuntime* CWindowlessDC::GetRuntimeClass()const 3336 CRuntime* CWinThread::GetRuntimeClass()const 3337 CRuntime* CWnd::GetRuntimeClass()const 3338 CRuntime* CWordArray::GetRuntimeClass()const 3339 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3340 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3341 unsigned long * CColorDialog::GetSavedCustomColors() 3342 ATL::CStringT > > CGopherFileFind::GetScreenName()const 3343 CSize CDockState::GetScreenSize() 3344 CScrollBar * CView::GetScrollBarCtrl(int)const 3345 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3346 void CScrollView::GetScrollBarSizes(CSize &) 3347 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3348 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3349 int CWnd::GetScrollLimit(int) 3350 int CWnd::GetScrollPos(int)const 3351 CPoint CScrollView::GetScrollPosition()const 3352 void CWnd::GetScrollRange(int,int *,int *)const 3353 unsigned long CSplitterWnd::GetScrollStyle()const 3354 CPropertySection * CPropertySet::GetSection(_GUID) 3355 HKEY__ * CWinApp::GetSectionKey(char const *) 3356 char const * CPropertySection::GetSectionName() 3357 void CRichEditCtrl::GetSel(long &,long &)const 3358 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3359 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3360 void CSliderCtrl::GetSelection(int &,int &)const 3361 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3362 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 3363 unsigned int COleConvertDialog::GetSelectionType()const 3364 unsigned int COleInsertDialog::GetSelectionType()const 3365 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3366 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3367 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3368 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3369 ATL::CStringT > > CRichEditCtrl::GetSelText()const 3370 int CHtmlView::GetSilent()const 3371 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3372 unsigned long CPropertySection::GetSize() 3373 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3374 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3375 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3376 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3377 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3378 CWnd * CSplitterWnd::GetSizingParent() 3379 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3380 int CHtmlView::GetSource(ATL::CStringT > > &) 3381 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3382 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3383 char const * CHtmlEditCtrl::GetStartDocument() 3384 char const * CHtmlEditView::GetStartDocument() 3385 __POSITION * CConnectionPoint::GetStartPosition()const 3386 __POSITION * COleDocument::GetStartPosition()const 3387 __POSITION * CRichEditDoc::GetStartPosition()const 3388 int CFile::GetStatus(CFileStatus &)const 3389 int CFile::GetStatus(char const *,CFileStatus &) 3390 int CMemFile::GetStatus(CFileStatus &)const 3391 int COleStreamFile::GetStatus(CFileStatus &)const 3392 int CHtmlView::GetStatusBar()const 3393 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 3394 ATL::CStringT > > const COleStreamFile::GetStorageName()const 3395 IStream * COleStreamFile::GetStream()const 3396 wchar_t const * ATL::CSimpleStringT::GetString()const 3397 char const * ATL::CSimpleStringT::GetString()const 3398 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3399 unsigned long COleControlSite::GetStyle()const 3400 unsigned long COleControlSiteOrWnd::GetStyle()const 3401 unsigned long CWnd::GetStyle()const 3402 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3403 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3404 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3405 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3406 void CListBox::GetText(int,ATL::CStringT > > &)const 3407 wchar_t * COleControl::GetText() 3408 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3409 int CStatusBarCtrl::GetText(char *,int,int *)const 3410 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3411 long CRecordset::GetTextLen(short,unsigned long) 3412 int CStatusBarCtrl::GetTextLength(int,int *)const 3413 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3414 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3415 int CHtmlView::GetTheaterMode()const 3416 CRuntime* CAnimateCtrl::GetThisClass() 3417 CRuntime* CArchiveException::GetThisClass() 3418 CRuntime* CAsyncMonikerFile::GetThisClass() 3419 CRuntime* CAsyncSocket::GetThisClass() 3420 CRuntime* CBitmap::GetThisClass() 3421 CRuntime* CBitmapButton::GetThisClass() 3422 CRuntime* CBrush::GetThisClass() 3423 CRuntime* CButton::GetThisClass() 3424 CRuntime* CByteArray::GetThisClass() 3425 CRuntime* CCachedDataPathProperty::GetThisClass() 3426 CRuntime* CCheckListBox::GetThisClass() 3427 CRuntime* CClientDC::GetThisClass() 3428 CRuntime* CCmdTarget::GetThisClass() 3429 CRuntime* CColorDialog::GetThisClass() 3430 CRuntime* CComboBox::GetThisClass() 3431 CRuntime* CComboBoxEx::GetThisClass() 3432 CRuntime* CControlBar::GetThisClass() 3433 CRuntime* CCriticalSection::GetThisClass() 3434 CRuntime* CCtrlView::GetThisClass() 3435 CRuntime* CDatabase::GetThisClass() 3436 CRuntime* CDataPathProperty::GetThisClass() 3437 CRuntime* CDateTimeCtrl::GetThisClass() 3438 CRuntime* CDBException::GetThisClass() 3439 CRuntime* CDC::GetThisClass() 3440 CRuntime* CDHtmlDialog::GetThisClass() 3441 CRuntime* CDialog::GetThisClass() 3442 CRuntime* CDialogBar::GetThisClass() 3443 CRuntime* CDocItem::GetThisClass() 3444 CRuntime* CDockBar::GetThisClass() 3445 CRuntime* CDockState::GetThisClass() 3446 CRuntime* CDocManager::GetThisClass() 3447 CRuntime* CDocObjectServer::GetThisClass() 3448 CRuntime* CDocObjectServerItem::GetThisClass() 3449 CRuntime* CDocTemplate::GetThisClass() 3450 CRuntime* CDocument::GetThisClass() 3451 CRuntime* CDragListBox::GetThisClass() 3452 CRuntime* CDWordArray::GetThisClass() 3453 CRuntime* CDynLinkLibrary::GetThisClass() 3454 CRuntime* CEdit::GetThisClass() 3455 CRuntime* CEditView::GetThisClass() 3456 CRuntime* CEvent::GetThisClass() 3457 CRuntime* CException::GetThisClass() 3458 CRuntime* CFile::GetThisClass() 3459 CRuntime* CFileDialog::GetThisClass() 3460 CRuntime* CFileException::GetThisClass() 3461 CRuntime* CFileFind::GetThisClass() 3462 CRuntime* CFindReplaceDialog::GetThisClass() 3463 CRuntime* CFont::GetThisClass() 3464 CRuntime* CFontDialog::GetThisClass() 3465 CRuntime* CFormView::GetThisClass() 3466 CRuntime* CFrameWnd::GetThisClass() 3467 CRuntime* CFtpConnection::GetThisClass() 3468 CRuntime* CFtpFileFind::GetThisClass() 3469 CRuntime* CGdiObject::GetThisClass() 3470 CRuntime* CGopherConnection::GetThisClass() 3471 CRuntime* CGopherFile::GetThisClass() 3472 CRuntime* CGopherFileFind::GetThisClass() 3473 CRuntime* CHeaderCtrl::GetThisClass() 3474 CRuntime* CHotKeyCtrl::GetThisClass() 3475 CRuntime* CHtmlEditDoc::GetThisClass() 3476 CRuntime* CHtmlEditView::GetThisClass() 3477 CRuntime* CHtmlView::GetThisClass() 3478 CRuntime* CHttpConnection::GetThisClass() 3479 CRuntime* CHttpFile::GetThisClass() 3480 CRuntime* CImageList::GetThisClass() 3481 CRuntime* CInternetConnection::GetThisClass() 3482 CRuntime* CInternetException::GetThisClass() 3483 CRuntime* CInternetFile::GetThisClass() 3484 CRuntime* CInternetSession::GetThisClass() 3485 CRuntime* CInvalidArgException::GetThisClass() 3486 CRuntime* CIPAddressCtrl::GetThisClass() 3487 CRuntime* CLinkCtrl::GetThisClass() 3488 CRuntime* CListBox::GetThisClass() 3489 CRuntime* CListCtrl::GetThisClass() 3490 CRuntime* CListView::GetThisClass() 3491 CRuntime* CLongBinary::GetThisClass() 3492 CRuntime* CMapPtrToPtr::GetThisClass() 3493 CRuntime* CMapPtrToWord::GetThisClass() 3494 CRuntime* CMapStringToOb::GetThisClass() 3495 CRuntime* CMapStringToPtr::GetThisClass() 3496 CRuntime* CMapStringToString::GetThisClass() 3497 CRuntime* CMapWordToOb::GetThisClass() 3498 CRuntime* CMapWordToPtr::GetThisClass() 3499 CRuntime* CMDIChildWnd::GetThisClass() 3500 CRuntime* CMDIFrameWnd::GetThisClass() 3501 CRuntime* CMemFile::GetThisClass() 3502 CRuntime* CMemoryException::GetThisClass() 3503 CRuntime* CMenu::GetThisClass() 3504 CRuntime* CMetaFileDC::GetThisClass() 3505 CRuntime* CMiniDockFrameWnd::GetThisClass() 3506 CRuntime* CMiniFrameWnd::GetThisClass() 3507 CRuntime* CMonikerFile::GetThisClass() 3508 CRuntime* CMonthCalCtrl::GetThisClass() 3509 CRuntime* CMultiDocTemplate::GetThisClass() 3510 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 3511 CRuntime* CMutex::GetThisClass() 3512 CRuntime* CNotSupportedException::GetThisClass() 3513 CRuntime* CObArray::GetThisClass() 3514 CRuntime* CObject::GetThisClass() 3515 CRuntime* CObList::GetThisClass() 3516 CRuntime* COleBusyDialog::GetThisClass() 3517 CRuntime* COleChangeIconDialog::GetThisClass() 3518 CRuntime* COleChangeSourceDialog::GetThisClass() 3519 CRuntime* COleClientItem::GetThisClass() 3520 CRuntime* COleControl::GetThisClass() 3521 CRuntime* COleControlModule::GetThisClass() 3522 CRuntime* COleConvertDialog::GetThisClass() 3523 CRuntime* COleDBRecordView::GetThisClass() 3524 CRuntime* COleDialog::GetThisClass() 3525 CRuntime* COleDispatchException::GetThisClass() 3526 CRuntime* COleDocIPFrameWnd::GetThisClass() 3527 CRuntime* COleDocObjectItem::GetThisClass() 3528 CRuntime* COleDocument::GetThisClass() 3529 CRuntime* COleException::GetThisClass() 3530 CRuntime* COleInsertDialog::GetThisClass() 3531 CRuntime* COleIPFrameWnd::GetThisClass() 3532 CRuntime* COleLinkingDoc::GetThisClass() 3533 CRuntime* COleLinksDialog::GetThisClass() 3534 CRuntime* COleObjectFactory::GetThisClass() 3535 CRuntime* COlePasteSpecialDialog::GetThisClass() 3536 CRuntime* COlePropertiesDialog::GetThisClass() 3537 CRuntime* COlePropertyPage::GetThisClass() 3538 CRuntime* COleResizeBar::GetThisClass() 3539 CRuntime* COleServerDoc::GetThisClass() 3540 CRuntime* COleServerItem::GetThisClass() 3541 CRuntime* COleStreamFile::GetThisClass() 3542 CRuntime* COleUpdateDialog::GetThisClass() 3543 CRuntime* CPageSetupDialog::GetThisClass() 3544 CRuntime* CPaintDC::GetThisClass() 3545 CRuntime* CPalette::GetThisClass() 3546 CRuntime* CPen::GetThisClass() 3547 CRuntime* CPreviewDC::GetThisClass() 3548 CRuntime* CPreviewView::GetThisClass() 3549 CRuntime* CPrintDialog::GetThisClass() 3550 CRuntime* CPrintDialogEx::GetThisClass() 3551 CRuntime* CProgressCtrl::GetThisClass() 3552 CRuntime* CPropertyPage::GetThisClass() 3553 CRuntime* CPropertySheet::GetThisClass() 3554 CRuntime* CPtrArray::GetThisClass() 3555 CRuntime* CPtrList::GetThisClass() 3556 CRuntime* CReBar::GetThisClass() 3557 CRuntime* CReBarCtrl::GetThisClass() 3558 CRuntime* CRecordset::GetThisClass() 3559 CRuntime* CRecordView::GetThisClass() 3560 CRuntime* CResourceException::GetThisClass() 3561 CRuntime* CRgn::GetThisClass() 3562 CRuntime* CRichEditCntrItem::GetThisClass() 3563 CRuntime* CRichEditCtrl::GetThisClass() 3564 CRuntime* CRichEditDoc::GetThisClass() 3565 CRuntime* CRichEditView::GetThisClass() 3566 CRuntime* CScrollBar::GetThisClass() 3567 CRuntime* CScrollView::GetThisClass() 3568 CRuntime* CSemaphore::GetThisClass() 3569 CRuntime* CSharedFile::GetThisClass() 3570 CRuntime* CSingleDocTemplate::GetThisClass() 3571 CRuntime* CSliderCtrl::GetThisClass() 3572 CRuntime* CSocket::GetThisClass() 3573 CRuntime* CSocketFile::GetThisClass() 3574 CRuntime* CSpinButtonCtrl::GetThisClass() 3575 CRuntime* CSplitterWnd::GetThisClass() 3576 CRuntime* CStatic::GetThisClass() 3577 CRuntime* CStatusBar::GetThisClass() 3578 CRuntime* CStatusBarCtrl::GetThisClass() 3579 CRuntime* CStdioFile::GetThisClass() 3580 CRuntime* CStringArray::GetThisClass() 3581 CRuntime* CStringList::GetThisClass() 3582 CRuntime* CSyncObject::GetThisClass() 3583 CRuntime* CTabCtrl::GetThisClass() 3584 CRuntime* CToolBar::GetThisClass() 3585 CRuntime* CToolBarCtrl::GetThisClass() 3586 CRuntime* CToolTipCtrl::GetThisClass() 3587 CRuntime* CTreeCtrl::GetThisClass() 3588 CRuntime* CTreeView::GetThisClass() 3589 CRuntime* CUIntArray::GetThisClass() 3590 CRuntime* CUserException::GetThisClass() 3591 CRuntime* CView::GetThisClass() 3592 CRuntime* CWinApp::GetThisClass() 3593 CRuntime* CWindowDC::GetThisClass() 3594 CRuntime* CWindowlessDC::GetThisClass() 3595 CRuntime* CWinThread::GetThisClass() 3596 CRuntime* CWnd::GetThisClass() 3597 CRuntime* CWordArray::GetThisClass() 3598 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 3599 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 3600 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 3601 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 3602 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 3603 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 3604 AFX_EVENTMAP const * COleControl::GetThisEventMap() 3605 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 3606 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 3607 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 3608 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 3609 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 3610 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 3611 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 3612 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 3613 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 3614 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 3615 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 3616 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 3617 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 3618 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 3619 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 3620 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 3621 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 3622 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 3623 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 3624 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 3625 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 3626 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 3627 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 3628 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 3629 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 3630 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 3631 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 3632 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 3633 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 3634 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 3635 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 3636 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 3637 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 3638 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 3639 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 3640 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 3641 AFX_MSGMAP const * CDialog::GetThisMessageMap() 3642 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 3643 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 3644 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 3645 AFX_MSGMAP const * CDocument::GetThisMessageMap() 3646 AFX_MSGMAP const * CEditView::GetThisMessageMap() 3647 AFX_MSGMAP const * CFormView::GetThisMessageMap() 3648 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 3649 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 3650 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 3651 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 3652 AFX_MSGMAP const * CListView::GetThisMessageMap() 3653 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 3654 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 3655 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 3656 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 3657 AFX_MSGMAP const * COleControl::GetThisMessageMap() 3658 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 3659 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 3660 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 3661 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 3662 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 3663 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 3664 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 3665 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 3666 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 3667 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 3668 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 3669 AFX_MSGMAP const * CReBar::GetThisMessageMap() 3670 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 3671 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 3672 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 3673 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 3674 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 3675 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 3676 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 3677 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 3678 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 3679 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 3680 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 3681 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 3682 AFX_MSGMAP const * CView::GetThisMessageMap() 3683 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 3684 AFX_MSGMAP const * CWnd::GetThisMessageMap() 3685 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 3686 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 3687 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 3688 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 3689 int CMonthCalCtrl::GetToday(ATL::CTime &)const 3690 int CHtmlView::GetToolBar()const 3691 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3692 long CHtmlView::GetTop()const 3693 int CHtmlView::GetTopLevelContainer()const 3694 CFrameWnd * CWnd::GetTopLevelFrame()const 3695 CWnd * CWnd::GetTopLevelOwner()const 3696 CWnd * CWnd::GetTopLevelParent()const 3697 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3698 void CRectTracker::GetTrueRect(tagRECT *)const 3699 ATL::CStringT > > CHtmlView::GetType()const 3700 short CPictureHolder::GetType() 3701 unsigned long CProperty::GetType() 3702 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3703 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3704 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3705 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3706 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3707 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3708 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3709 unsigned int CCmdTarget::GetTypeInfoCount() 3710 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 3711 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 3712 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 3713 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3714 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 3715 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3716 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3717 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3718 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3719 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3720 void COleSafeArray::GetUBound(unsigned long,long *) 3721 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3722 long COleControl::XOleObject::GetUserClassID(_GUID *) 3723 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3724 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3725 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 3726 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 3727 void COleControl::GetUserType(char *) 3728 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 3729 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 3730 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 3731 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 3732 void * CMapPtrToPtr::GetValueAt(void *)const 3733 ATL::CStringT > > CHttpFile::GetVerb()const 3734 unsigned long CDockState::GetVersion() 3735 CHtmlEditView * CHtmlEditDoc::GetView()const 3736 CRichEditView * CRichEditDoc::GetView()const 3737 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3738 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3739 int CHtmlView::GetVisible()const 3740 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 3741 long CHtmlView::GetWidth()const 3742 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3743 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3744 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3745 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3746 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3747 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3748 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3749 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3750 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3751 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3752 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3753 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3754 long CWnd::GetWindowedChildCount() 3755 long CWnd::GetWindowLessChildCount() 3756 IDropTarget * COleControl::GetWindowlessDropTarget() 3757 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3758 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3759 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 3760 int CWnd::GetWindowTextA(char *,int)const 3761 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 3762 int CWnd::GetWindowTextLengthA()const 3763 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3764 long COleDropSource::GiveFeedback(unsigned long) 3765 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3766 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3767 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3768 void CMemFile::GrowFile(unsigned long) 3769 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3770 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3771 long CDialog::HandleInitDialog(unsigned int,long) 3772 long CDialogBar::HandleInitDialog(unsigned int,long) 3773 long CFormView::HandleInitDialog(unsigned int,long) 3774 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 3775 long CPropertySheet::HandleInitDialog(unsigned int,long) 3776 long CScrollView::HandleMButtonDown(unsigned int,long) 3777 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 3778 int COleControlContainer::HandleSetFocus() 3779 long CDialog::HandleSetFont(unsigned int,long) 3780 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 3781 long COleControl::XPersistStorage::HandsOffStorage() 3782 long COleServerDoc::XPersistStorage::HandsOffStorage() 3783 int COleDocument::HasBlankItems()const 3784 int CDialogTemplate::HasFont()const 3785 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 3786 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 3787 void * CFile::hFileNull 3788 void CWinApp::HideApplication() 3789 void CFileDialog::HideControl(int) 3790 long CBrowserControlSite::HideUI() 3791 long CDHtmlDialog::HideUI() 3792 long CHtmlControlSite::XDocHostUIHandler::HideUI() 3793 void CDC::HIMETRICtoDP(tagSIZE *)const 3794 void CDC::HIMETRICtoLP(tagSIZE *)const 3795 int CListCtrl::HitTest(CPoint,unsigned int *)const 3796 int CRectTracker::HitTest(CPoint)const 3797 int CSplitterWnd::HitTest(CPoint)const 3798 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 3799 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3800 int CRectTracker::HitTestHandles(CPoint)const 3801 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 3802 void CWnd::HtmlHelpA(unsigned long,unsigned int) 3803 int CSplitterWnd::IdFromRowCol(int,int)const 3804 void COlePropertyPage::IgnoreApply(unsigned int) 3805 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3806 int CWinApp::InitApplication() 3807 long COleControl::XOleCache::InitCache(IDataObject *) 3808 int CWnd::InitControlContainer(int) 3809 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3810 long CPrintDialogEx::InitDone() 3811 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3812 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3813 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3814 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3815 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3816 void CMapPtrToWord::InitHashTable(unsigned int,int) 3817 void CMapStringToOb::InitHashTable(unsigned int,int) 3818 void CMapStringToPtr::InitHashTable(unsigned int,int) 3819 void CMapStringToString::InitHashTable(unsigned int,int) 3820 void CMapWordToOb::InitHashTable(unsigned int,int) 3821 void CMapWordToPtr::InitHashTable(unsigned int,int) 3822 long CDataSourceControl::Initialize() 3823 void CDHtmlDialog::Initialize() 3824 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3825 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3826 int CEditView::InitializeReplace() 3827 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3828 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3829 int COleControlModule::InitInstance() 3830 int CWinApp::InitInstance() 3831 int CWinThread::InitInstance() 3832 void CWinApp::InitLibId() 3833 void CDockContext::InitLoop() 3834 int CDialog::InitModalIndirect(void *,CWnd *) 3835 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3836 long COleControl::XPersistMemory::InitNew() 3837 long COleControl::XPersistPropertyBag::InitNew() 3838 long COleControl::XPersistStorage::InitNew(IStorage *) 3839 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3840 long COleControl::XPersistStreamInit::InitNew() 3841 void CRecordset::InitRecord() 3842 void COleControl::InitStockEventMask() 3843 void COleControl::InitStockPropMask() 3844 void CSimpleException::InitString() 3845 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3846 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3847 int ATL::CStringT > >::Insert(int,wchar_t) 3848 int ATL::CStringT > >::Insert(int,wchar_t const *) 3849 int ATL::CStringT > >::Insert(int,char) 3850 int ATL::CStringT > >::Insert(int,char const *) 3851 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3852 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3853 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3854 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 3855 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 3856 void CByteArray::InsertAt(int,unsigned char,int) 3857 void CByteArray::InsertAt(int,CByteArray *) 3858 void CDWordArray::InsertAt(int,unsigned long,int) 3859 void CDWordArray::InsertAt(int,CDWordArray *) 3860 void CObArray::InsertAt(int,CObArray *) 3861 void CObArray::InsertAt(int,CObject *,int) 3862 void CPtrArray::InsertAt(int,CPtrArray *) 3863 void CPtrArray::InsertAt(int,void *,int) 3864 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 3865 void CStringArray::InsertAt(int,CStringArray const *) 3866 void CStringArray::InsertAt(int,char const *,int) 3867 void CUIntArray::InsertAt(int,unsigned int,int) 3868 void CUIntArray::InsertAt(int,CUIntArray *) 3869 void CWordArray::InsertAt(int,unsigned short,int) 3870 void CWordArray::InsertAt(int,CWordArray *) 3871 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3872 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3873 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 3874 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 3875 int CListCtrl::InsertColumn(int,char const *,int,int,int) 3876 void CStringArray::InsertEmpty(int,int) 3877 void CRichEditView::InsertFileAsObject(char const *) 3878 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 3879 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 3880 long CRichEditView::InsertItem(CRichEditCntrItem *) 3881 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 3882 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 3883 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3884 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3885 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3886 CFontHolder & COleControl::InternalGetFont() 3887 ATL::CStringT > > const & COleControl::InternalGetText() 3888 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 3889 unsigned long CCmdTarget::InternalRelease() 3890 int CDC::IntersectClipRect(int,int,int,int) 3891 int CDC::IntersectClipRect(tagRECT const *) 3892 void CCheckListBox::InvalidateCheck(int) 3893 void COleControl::InvalidateControl(tagRECT const *,int) 3894 void CCheckListBox::InvalidateItem(int) 3895 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 3896 void COleControl::InvalidateRgn(CRgn *,int) 3897 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 3898 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3899 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3900 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3901 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3902 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3903 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3904 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3905 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 3906 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3907 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3908 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3909 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3910 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3911 int CDocItem::IsBlank()const 3912 int COleServerItem::IsBlank()const 3913 int CPropertyPage::IsButtonEnabled(int) 3914 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3915 int COleServerItem::IsConnected()const 3916 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 3917 int COleControlSite::IsDefaultButton() 3918 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3919 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 3920 int CWnd::IsDialogMessageA(tagMSG *) 3921 long CBlobProperty::IsDirty() 3922 long COleLinkingDoc::XPersistFile::IsDirty() 3923 long COleControl::XPersistMemory::IsDirty() 3924 long COleControl::XPersistStorage::IsDirty() 3925 long COleServerDoc::XPersistStorage::IsDirty() 3926 long COleControl::XPersistStreamInit::IsDirty() 3927 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 3928 unsigned int CWnd::IsDlgButtonChecked(int)const 3929 int CControlBar::IsDockBar()const 3930 int CDockBar::IsDockBar()const 3931 int CFileFind::IsDots()const 3932 int CGopherFileFind::IsDots()const 3933 bool ATL::CSimpleStringT::IsEmpty()const 3934 bool ATL::CSimpleStringT::IsEmpty()const 3935 int CCheckListBox::IsEnabled(int) 3936 int CDHtmlDialog::IsExternalDispatchSafe() 3937 int CRecordset::IsFieldDirty(void *) 3938 int CRecordset::IsFieldNull(void *) 3939 int CRecordset::IsFieldNullable(void *) 3940 int CRecordset::IsFieldNullable(unsigned long)const 3941 int CRecordset::IsFieldStatusDirty(unsigned long)const 3942 int CRecordset::IsFieldStatusNull(unsigned long)const 3943 int CFieldExchange::IsFieldType(unsigned int *) 3944 int CControlBar::IsFloating()const 3945 int CFrameWnd::IsFrameWnd()const 3946 int CWnd::IsFrameWnd()const 3947 int IsHelpKey(tagMSG *) 3948 int CWinThread::IsIdleMessage(tagMSG *) 3949 int CCmdTarget::IsInvokeAllowed(long) 3950 int COleControl::IsInvokeAllowed(long) 3951 int CRecordset::IsJoin(char const *) 3952 int CObject::IsKindOf(CRuntimeconst *)const 3953 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 3954 int COccManager::IsLabelControl(CWnd *) 3955 int COleObjectFactory::IsLicenseValid() 3956 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 3957 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 3958 int COleControlSite::IsMatchingMnemonic(tagMSG *) 3959 int CHtmlEditDoc::IsModified() 3960 int COleClientItem::IsModified()const 3961 int COleControl::IsModified() 3962 int COlePropertyPage::IsModified() 3963 int CRichEditDoc::IsModified() 3964 int CRecordView::IsOnFirstRecord() 3965 int CRecordView::IsOnLastRecord() 3966 int CRecordset::IsOpen()const 3967 long COlePropertyPage::XPropertyPage::IsPageDirty() 3968 int CRecordset::IsParamStatusNull(unsigned long)const 3969 int CRecordset::IsRecordsetUpdatable() 3970 int CCmdTarget::IsResultExpected() 3971 int CRichEditView::IsRichEditFormat(unsigned short) 3972 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 3973 int CRichEditView::IsSelected(CObject const *)const 3974 int CView::IsSelected(CObject const *)const 3975 int CRecordset::IsSelectQueryUpdatable(char const *) 3976 int CObject::IsSerializable()const 3977 int COleMessageFilter::IsSignificantMessage(tagMSG *) 3978 int CDHtmlDialog::IsSinkedElement(IDispatch *) 3979 int CRecordset::IsSQLUpdatable(char const *) 3980 int COleControl::IsSubclassedControl() 3981 int CWnd::IsTopParentActive()const 3982 int CFrameWnd::IsTracking()const 3983 long CDocObjectServer::XOleObject::IsUpToDate() 3984 long COleControl::XOleObject::IsUpToDate() 3985 long COleServerDoc::XOleObject::IsUpToDate() 3986 long COleServerItem::XOleObject::IsUpToDate() 3987 int CControlBar::IsVisible()const 3988 int COleControlSite::IsWindowEnabled()const 3989 int CWnd::IsWindowEnabled()const 3990 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3991 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3992 void COleControl::KeyDown(unsigned short *) 3993 void COleControl::KeyUp(unsigned short *) 3994 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 3995 void CToolBar::Layout() 3996 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3997 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3998 int CRichEditCtrl::LineIndex(int)const 3999 int CRichEditCtrl::LineLength(int)const 4000 void CRichEditCtrl::LineScroll(int,int) 4001 int CDC::LineTo(int,int) 4002 unsigned long CRichEditView::lMaxSize 4003 long CBlobProperty::Load(IStream *) 4004 int CDialogTemplate::Load(char const *) 4005 void COleControl::Load(char const *,CDataPathProperty &) 4006 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4007 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 4008 long COleControl::XPersistMemory::Load(void *,unsigned long) 4009 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4010 long COleControl::XPersistStorage::Load(IStorage *) 4011 long COleServerDoc::XPersistStorage::Load(IStorage *) 4012 long COleControl::XPersistStreamInit::Load(IStream *) 4013 int CFrameWnd::LoadAccelTable(char const *) 4014 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 4015 void CFrameWnd::LoadBarState(char const *) 4016 int CToolBar::LoadBitmapA(char const *) 4017 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 4018 void CRecordset::LoadFields() 4019 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4020 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4021 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4022 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4023 int CDHtmlDialog::LoadFromResource(unsigned int) 4024 int CDHtmlDialog::LoadFromResource(char const *) 4025 int CHtmlView::LoadFromResource(unsigned int) 4026 int CHtmlView::LoadFromResource(char const *) 4027 void COleDocument::LoadFromStorage() 4028 int CControlBarInfo::LoadState(char const *,int,CDockState *) 4029 void CDockState::LoadState(char const *) 4030 long COleControl::LoadState(IStream *) 4031 void CWinApp::LoadStdProfileSettings(unsigned int) 4032 int ATL::CStringT > >::LoadStringA(unsigned int) 4033 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 4034 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 4035 int ATL::CStringT > >::LoadStringA(unsigned int) 4036 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 4037 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 4038 int CWinApp::LoadSysPolicies() 4039 void CDocTemplate::LoadTemplate() 4040 void CMultiDocTemplate::LoadTemplate() 4041 int CToolBar::LoadToolBar(char const *) 4042 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4043 void COleSafeArray::Lock() 4044 int CSingleLock::Lock(unsigned long) 4045 int CSyncObject::Lock(unsigned long) 4046 void CTypeLibCache::Lock() 4047 wchar_t * ATL::CSimpleStringT::LockBuffer() 4048 char * ATL::CSimpleStringT::LockBuffer() 4049 char const * CEditView::LockBuffer()const 4050 long COleControlContainer::XOleContainer::LockContainer(int) 4051 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4052 void COleLinkingDoc::LockExternal(int,int) 4053 int COleControl::LockInPlaceActive(int) 4054 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4055 void CFile::LockRange(unsigned __int64,unsigned __int64) 4056 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 4057 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 4058 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 4059 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 4060 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 4061 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4062 long COleObjectFactory::XClassFactory::LockServer(int) 4063 int CMapPtrToPtr::Lookup(void *,void * &)const 4064 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4065 int CMapStringToOb::Lookup(char const *,CObject * &)const 4066 int CMapStringToPtr::Lookup(char const *,void * &)const 4067 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 4068 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4069 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4070 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4071 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4072 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4073 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4074 int CMapStringToOb::LookupKey(char const *,char const * &)const 4075 int CMapStringToPtr::LookupKey(char const *,char const * &)const 4076 int CMapStringToString::LookupKey(char const *,char const * &)const 4077 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4078 void CDC::LPtoDP(tagSIZE *)const 4079 void CDC::LPtoHIMETRIC(tagSIZE *)const 4080 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4081 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4082 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4083 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4084 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4085 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4086 void CArchive::MapObject(CObject const *) 4087 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4088 int COleDialog::MapResult(unsigned int) 4089 long CPropertyPage::MapWizardResult(long) 4090 void CRecordset::MarkForAddNew() 4091 void CRecordset::MarkForUpdate() 4092 void CRichEditDoc::MarkItemsClear()const 4093 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 4094 int CFileFind::MatchesMask(unsigned long)const 4095 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4096 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4097 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 4098 void CComboBox::MeasureItem(tagMEASUREITEM*) 4099 void CListBox::MeasureItem(tagMEASUREITEM*) 4100 void CMenu::MeasureItem(tagMEASUREITEM*) 4101 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 4102 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 4103 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 4104 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 4105 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4106 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4107 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4108 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4109 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4110 void CPreviewDC::MirrorAttributes() 4111 void CPreviewDC::MirrorFont() 4112 void CPreviewDC::MirrorMappingMode(int) 4113 void CPreviewDC::MirrorViewportOrg() 4114 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4115 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4116 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4117 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4118 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4119 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4120 void CDockContext::Move(CPoint) 4121 void CRecordset::Move(long,unsigned short) 4122 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4123 CPoint CDC::MoveTo(int,int) 4124 void COleControlSite::MoveWindow(int,int,int,int) 4125 void CWnd::MoveWindow(int,int,int,int,int) 4126 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4127 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4128 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 4129 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4130 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 4131 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 4132 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 4133 unsigned int COleDropSource::nDragDelay 4134 unsigned int COleDropSource::nDragMinDist 4135 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4136 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 4137 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 4138 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 4139 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 4140 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 4141 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 4142 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 4143 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4144 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4145 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4146 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4147 unsigned int const CEditView::nMaxSize 4148 int CRectTracker::NormalizeHit(int)const 4149 void CDataBoundProperty::Notify() 4150 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4151 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4152 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4153 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4154 void COleServerDoc::NotifyRename(char const *) 4155 unsigned int COleDropTarget::nScrollDelay 4156 int COleDropTarget::nScrollInset 4157 unsigned int COleDropTarget::nScrollInterval 4158 void ATL::CStringT > >::OemToCharA() 4159 int CDC::OffsetClipRgn(int,int) 4160 int CDC::OffsetClipRgn(tagSIZE) 4161 CPoint CDC::OffsetViewportOrg(int,int) 4162 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4163 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4164 CPoint CDC::OffsetWindowOrg(int,int) 4165 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4166 void CAsyncSocket::OnAccept(int) 4167 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4168 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4169 void COleClientItem::OnActivate() 4170 void COleFrameHook::OnActivate(int) 4171 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4172 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4173 long COleControl::OnActivateInPlace(int,tagMSG *) 4174 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4175 long CWnd::OnActivateTopLevel(unsigned int,long) 4176 void COleClientItem::OnActivateUI() 4177 long CDocObjectServer::OnActivateView() 4178 void CFormView::OnActivateView(int,CView *,CView *) 4179 void CPreviewView::OnActivateView(int,CView *,CView *) 4180 void CRichEditView::OnActivateView(int,CView *,CView *) 4181 void CView::OnActivateView(int,CView *,CView *) 4182 long CToolTipCtrl::OnAddTool(unsigned int,long) 4183 void CConnectionPoint::OnAdvise(int) 4184 void COleControl::XEventConnPt::OnAdvise(int) 4185 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4186 void COleControl::OnAmbientPropertyChange(long) 4187 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4188 void COleControl::OnAppearanceChanged() 4189 void CWinApp::OnAppExit() 4190 int CPropertyPage::OnApply() 4191 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4192 void CDocObjectServer::OnApplyViewState(CArchive &) 4193 void COleControl::OnBackColorChanged() 4194 int CFrameWnd::OnBarCheck(unsigned int) 4195 int COleIPFrameWnd::OnBarCheck(unsigned int) 4196 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4197 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4198 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4199 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 4200 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 4201 int COleDropSource::OnBeginDrag(CWnd *) 4202 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4203 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4204 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4205 void COleControl::OnBorderStyleChanged() 4206 void CRichEditView::OnBullet() 4207 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4208 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 4209 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 4210 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 4211 void CCommonDialog::OnCancel() 4212 void CDialog::OnCancel() 4213 void CPropertyPage::OnCancel() 4214 void CRichEditView::OnCancelEditCntr() 4215 void COleControl::OnCancelMode() 4216 void CSplitterWnd::OnCancelMode() 4217 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4218 long COleControl::XFontNotification::OnChanged(long) 4219 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4220 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4221 void CRectTracker::OnChangedRect(CRect const &) 4222 void CDocument::OnChangedViewList() 4223 int COleClientItem::OnChangeItemPosition(CRect const &) 4224 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4225 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4226 void CRichEditView::OnCharBold() 4227 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4228 void CRichEditView::OnCharItalic() 4229 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4230 void CRichEditView::OnCharUnderline() 4231 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4232 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4233 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4234 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4235 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4236 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4237 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4238 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4239 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4240 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4241 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4242 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4243 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4244 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4245 void COleControl::OnClick(unsigned short) 4246 CEnumArray * CEnumArray::OnClone() 4247 CEnumArray * CEnumConnections::OnClone() 4248 void CAsyncSocket::OnClose(int) 4249 void CControlFrameWnd::OnClose() 4250 void CFrameWnd::OnClose() 4251 void CMiniDockFrameWnd::OnClose() 4252 void COleControl::OnClose(unsigned long) 4253 void COleServerDoc::OnClose(enum tagOLECLOSE) 4254 void CPropertySheet::OnClose() 4255 void COleClientItem::XAdviseSink::OnClose() 4256 void CDocObjectServer::OnCloseDocument() 4257 void CDocument::OnCloseDocument() 4258 void COleDocument::OnCloseDocument() 4259 void COleLinkingDoc::OnCloseDocument() 4260 void COleServerDoc::OnCloseDocument() 4261 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4262 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4263 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4264 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4265 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4266 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4267 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4268 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4269 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4270 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4271 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4272 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4273 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4274 void CRichEditView::OnColorDefault() 4275 int CColorDialog::OnColorOK() 4276 void CRichEditView::OnColorPick(unsigned long) 4277 int CFrameWnd::OnCommand(unsigned int,long) 4278 int CMDIFrameWnd::OnCommand(unsigned int,long) 4279 int COlePropertyPage::OnCommand(unsigned int,long) 4280 int CPropertySheet::OnCommand(unsigned int,long) 4281 int CSplitterWnd::OnCommand(unsigned int,long) 4282 int CWnd::OnCommand(unsigned int,long) 4283 long CDialog::OnCommandHelp(unsigned int,long) 4284 long CFrameWnd::OnCommandHelp(unsigned int,long) 4285 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4286 long CPropertySheet::OnCommandHelp(unsigned int,long) 4287 void CHtmlView::OnCommandStateChange(long,int) 4288 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4289 void CAsyncSocket::OnConnect(int) 4290 void CFrameWnd::OnContextHelp() 4291 int COleFrameHook::OnContextHelp(int) 4292 void COleIPFrameWnd::OnContextHelp() 4293 void CWinApp::OnContextHelp() 4294 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4295 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 4296 int CControlBar::OnCreate(tagCREATESTRUCTA *) 4297 int CEditView::OnCreate(tagCREATESTRUCTA *) 4298 int CFormView::OnCreate(tagCREATESTRUCTA *) 4299 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 4300 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 4301 int COleControl::OnCreate(tagCREATESTRUCTA *) 4302 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 4303 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 4304 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 4305 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 4306 int CView::OnCreate(tagCREATESTRUCTA *) 4307 int CCmdTarget::OnCreateAggregates() 4308 int COleControl::OnCreateAggregates() 4309 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4310 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4311 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4312 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4313 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 4314 CCmdTarget * COleObjectFactory::OnCreateObject() 4315 CCmdTarget * COleTemplateServer::OnCreateObject() 4316 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4317 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4318 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4319 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4320 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4321 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4322 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4323 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4324 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4325 int CDocManager::OnDDECommand(char *) 4326 int CWinApp::OnDDECommand(char *) 4327 long CFrameWnd::OnDDEExecute(unsigned int,long) 4328 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4329 long CFrameWnd::OnDDETerminate(unsigned int,long) 4330 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 4331 void COleClientItem::OnDeactivate() 4332 void COleServerDoc::OnDeactivate() 4333 void COleClientItem::OnDeactivateAndUndo() 4334 void COleClientItem::OnDeactivateUI(int) 4335 void COleServerDoc::OnDeactivateUI(int) 4336 void CRichEditCntrItem::OnDeactivateUI(int) 4337 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4338 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4339 void CControlBar::OnDestroy() 4340 void CDHtmlDialog::OnDestroy() 4341 void CEditView::OnDestroy() 4342 void CFrameWnd::OnDestroy() 4343 void CHtmlView::OnDestroy() 4344 void CMDIChildWnd::OnDestroy() 4345 void CMDIFrameWnd::OnDestroy() 4346 void COleControl::OnDestroy() 4347 void COleIPFrameWnd::OnDestroy() 4348 void CRichEditView::OnDestroy() 4349 void CTabCtrl::OnDestroy() 4350 void CTreeCtrl::OnDestroy() 4351 void CTreeView::OnDestroy() 4352 void CView::OnDestroy() 4353 void CWnd::OnDestroy() 4354 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4355 void CRichEditView::OnDevModeChange(char *) 4356 void CWnd::OnDevModeChange(char *) 4357 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4358 void COleClientItem::OnDiscardUndoState() 4359 void CSplitterWnd::OnDisplayChange() 4360 long CWnd::OnDisplayChange(unsigned int,long) 4361 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4362 int COleFrameHook::OnDocActivate(int) 4363 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 4364 void CHtmlView::OnDocumentComplete(char const *) 4365 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4366 long CBrowserControlSite::OnDocWindowActivate(int) 4367 long CDHtmlDialog::OnDocWindowActivate(int) 4368 long CHtmlView::OnDocWindowActivate(int) 4369 void COleServerDoc::OnDocWindowActivate(int) 4370 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4371 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4372 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4373 void CDocObjectServerItem::OnDoVerb(long) 4374 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4375 void COleServerItem::OnDoVerb(long) 4376 void CHtmlView::OnDownloadBegin() 4377 void CHtmlView::OnDownloadComplete() 4378 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4379 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4380 void COleDropTarget::OnDragLeave(CWnd *) 4381 void CView::OnDragLeave() 4382 long CWnd::OnDragList(unsigned int,long) 4383 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4384 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4385 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4386 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4387 void CCtrlView::OnDraw(CDC *) 4388 void CFormView::OnDraw(CDC *) 4389 void CHtmlView::OnDraw(CDC *) 4390 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4391 void CPreviewView::OnDraw(CDC *) 4392 void CView::OnDraw(CDC *) 4393 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4394 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4395 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4396 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4397 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4398 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4399 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4400 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4401 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4402 void CFrameWnd::OnDropFiles(HDROP__ *) 4403 void CRichEditView::OnDropFiles(HDROP__ *) 4404 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4405 int CEditView::OnEditChange() 4406 void COleDocument::OnEditChangeIcon() 4407 void CEditView::OnEditClear() 4408 void CRichEditView::OnEditClear() 4409 void COleDocument::OnEditConvert() 4410 void CEditView::OnEditCopy() 4411 void CHtmlView::OnEditCopy() 4412 void CRichEditView::OnEditCopy() 4413 void CEditView::OnEditCut() 4414 void CHtmlView::OnEditCut() 4415 void CRichEditView::OnEditCut() 4416 void CEditView::OnEditFind() 4417 void CRichEditView::OnEditFind() 4418 void CEditView::OnEditFindReplace(int) 4419 void CRichEditView::OnEditFindReplace(int) 4420 void COleDocument::OnEditLinks() 4421 void CEditView::OnEditPaste() 4422 void CHtmlView::OnEditPaste() 4423 void CRichEditView::OnEditPaste() 4424 void CRichEditView::OnEditPasteSpecial() 4425 void CRichEditView::OnEditProperties() 4426 int COlePropertyPage::OnEditProperty(long) 4427 void CRichEditView::OnEditRedo() 4428 void CEditView::OnEditRepeat() 4429 void CRichEditView::OnEditRepeat() 4430 void CEditView::OnEditReplace() 4431 void CRichEditView::OnEditReplace() 4432 void CEditView::OnEditSelectAll() 4433 void CRichEditView::OnEditSelectAll() 4434 void CEditView::OnEditUndo() 4435 void CRichEditView::OnEditUndo() 4436 void CFrameWnd::OnEnable(int) 4437 void CToolTipCtrl::OnEnable(int) 4438 void COleControl::OnEnabledChanged() 4439 long CHtmlView::OnEnableModeless(int) 4440 void COleFrameHook::OnEnableModeless(int) 4441 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4442 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4443 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4444 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4445 void CFrameWnd::OnEndSession(int) 4446 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4447 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4448 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4449 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4450 int CFrameWnd::OnEraseBkgnd(CDC *) 4451 int COleControl::OnEraseBkgnd(CDC *) 4452 int COleResizeBar::OnEraseBkgnd(CDC *) 4453 int CPreviewView::OnEraseBkgnd(CDC *) 4454 int CReBar::OnEraseBkgnd(CDC *) 4455 int CToolBar::OnEraseBkgnd(CDC *) 4456 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4457 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4458 int COleControlSite::OnEvent(AFX_EVENT *) 4459 void COleControl::OnEventAdvise(int) 4460 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4461 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4462 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4463 void CDocument::OnFileClose() 4464 void CFileDialog::OnFileNameChange() 4465 int CFileDialog::OnFileNameOK() 4466 void CDocManager::OnFileNew() 4467 void CWinApp::OnFileNew() 4468 void CDocManager::OnFileOpen() 4469 void CWinApp::OnFileOpen() 4470 void CHtmlView::OnFilePrint() 4471 void CView::OnFilePrint() 4472 void CView::OnFilePrintPreview() 4473 void CWinApp::OnFilePrintSetup() 4474 void CDocument::OnFileSave() 4475 void CDocument::OnFileSaveAs() 4476 void COleServerDoc::OnFileSaveCopyAs() 4477 void CDocument::OnFileSendMail() 4478 void COleDocument::OnFileSendMail() 4479 void COleServerDoc::OnFileUpdate() 4480 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4481 void CCmdTarget::OnFinalRelease() 4482 void CDocument::OnFinalRelease() 4483 void COleControl::OnFinalRelease() 4484 void COlePropertyPage::OnFinalRelease() 4485 void COleServerItem::OnFinalRelease() 4486 void CWnd::OnFinalRelease() 4487 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 4488 void CEditView::OnFindNext(char const *,int,int) 4489 void CRichEditView::OnFindNext(char const *,int,int,int) 4490 long CEditView::OnFindReplaceCmd(unsigned int,long) 4491 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4492 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4493 long COleControlSite::XOleControlSite::OnFocus(int) 4494 void CFileDialog::OnFolderChange() 4495 void COleControl::OnFontChanged() 4496 void COleControl::OnForeColorChanged() 4497 void CRichEditView::OnFormatFont() 4498 void COleControl::OnFrameClose() 4499 long CBrowserControlSite::OnFrameWindowActivate(int) 4500 long CDHtmlDialog::OnFrameWindowActivate(int) 4501 long CHtmlView::OnFrameWindowActivate(int) 4502 void COleServerDoc::OnFrameWindowActivate(int) 4503 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4504 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4505 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4506 void COleControl::OnFreezeEvents(int) 4507 void CHtmlView::OnFullScreen(int) 4508 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4509 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4510 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4511 void COleClientItem::OnGetClipRect(CRect &) 4512 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4513 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4514 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4515 unsigned int COleControl::OnGetDlgCode() 4516 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4517 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4518 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4519 long CHtmlView::OnGetExternal(IDispatch * *) 4520 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4521 HMENU__ * COleControl::OnGetInPlaceMenu() 4522 void COleClientItem::OnGetItemPosition(CRect &) 4523 void COleDocObjectItem::OnGetItemPosition(CRect &) 4524 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 4525 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 4526 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4527 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4528 long CWnd::OnGetObject(unsigned int,long) 4529 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4530 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4531 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4532 long CStatusBar::OnGetText(unsigned int,long) 4533 long CStatusBar::OnGetTextLength(unsigned int,long) 4534 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4535 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4536 unsigned long COleControl::OnGetViewStatus() 4537 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4538 void CReBar::OnHeightChange(tagNMHDR *,long *) 4539 void CFrameWnd::OnHelp() 4540 int COlePropertyPage::OnHelp(char const *) 4541 void CWinApp::OnHelp() 4542 void CWnd::OnHelp() 4543 void CWinApp::OnHelpFinder() 4544 void CWnd::OnHelpFinder() 4545 long CControlBar::OnHelpHitTest(unsigned int,long) 4546 long CDialog::OnHelpHitTest(unsigned int,long) 4547 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4548 void CWinApp::OnHelpIndex() 4549 void CWnd::OnHelpIndex() 4550 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4551 int CWnd::OnHelpInfo(tagHELPINFO *) 4552 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4553 void CWinApp::OnHelpUsing() 4554 void CWnd::OnHelpUsing() 4555 void CDocObjectServerItem::OnHide() 4556 long COleControl::OnHide() 4557 void COleServerItem::OnHide() 4558 void COleControl::OnHideToolBars() 4559 long CHtmlView::OnHideUI() 4560 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4561 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4562 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4563 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4564 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4565 void CDocTemplate::OnIdle() 4566 void CDocument::OnIdle() 4567 void COleDocument::OnIdle() 4568 int CWinApp::OnIdle(long) 4569 int CWinThread::OnIdle(long) 4570 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4571 void CFrameWnd::OnIdleUpdateCmdUI() 4572 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4573 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4574 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4575 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4576 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4577 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4578 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4579 int CDHtmlDialog::OnInitDialog() 4580 int CDialog::OnInitDialog() 4581 int COlePropertiesDialog::OnInitDialog() 4582 int COlePropertyPage::OnInitDialog() 4583 int CPropertySheet::OnInitDialog() 4584 void CFileDialog::OnInitDone() 4585 int COleServerItem::OnInitFromData(COleDataObject *,int) 4586 void CControlBar::OnInitialUpdate() 4587 void CFormView::OnInitialUpdate() 4588 void COleDBRecordView::OnInitialUpdate() 4589 void CRecordView::OnInitialUpdate() 4590 void CRichEditView::OnInitialUpdate() 4591 void CView::OnInitialUpdate() 4592 void CFrameWnd::OnInitMenu(CMenu *) 4593 void COleFrameHook::OnInitMenu(CMenu *) 4594 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4595 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4596 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 4597 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4598 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4599 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 4600 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4601 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4602 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 4603 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4604 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4605 void CRichEditView::OnInsertObject() 4606 void CSplitterWnd::OnInvertTracker(CRect const &) 4607 void CDockContext::OnKey(int,int) 4608 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4609 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4610 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4611 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4612 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4613 void COleControl::OnKeyPressEvent(unsigned short) 4614 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4615 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4616 long CPropertySheet::OnKickIdle(unsigned int,long) 4617 int CPropertyPage::OnKillActive() 4618 void COleControl::OnKillFocus(CWnd *) 4619 long CCheckListBox::OnLBAddString(unsigned int,long) 4620 long CCheckListBox::OnLBFindString(unsigned int,long) 4621 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4622 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4623 long CCheckListBox::OnLBGetText(unsigned int,long) 4624 long CCheckListBox::OnLBInsertString(unsigned int,long) 4625 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4626 long CCheckListBox::OnLBSelectString(unsigned int,long) 4627 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4628 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4629 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4630 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4631 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4632 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4633 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4634 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4635 void COleControl::OnLButtonDown(unsigned int,CPoint) 4636 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4637 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4638 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4639 void COleControl::OnLButtonUp(unsigned int,CPoint) 4640 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4641 void CAsyncMonikerFile::OnLowResource() 4642 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4643 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4644 void COleControl::OnMButtonDown(unsigned int,CPoint) 4645 void COleControl::OnMButtonUp(unsigned int,CPoint) 4646 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4647 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4648 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4649 void CHtmlView::OnMenuBar(int) 4650 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4651 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4652 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4653 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4654 int COleMessageFilter::OnMessagePending(tagMSG const *) 4655 int CSocket::OnMessagePending() 4656 void COleControl::OnMnemonic(tagMSG *) 4657 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4658 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4659 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4660 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4661 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4662 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4663 void COleControl::OnMouseMove(unsigned int,CPoint) 4664 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4665 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 4666 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 4667 void COleControl::OnMove(int,int) 4668 int COleDBRecordView::OnMove(unsigned int) 4669 int CRecordView::OnMove(unsigned int) 4670 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 4671 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 4672 void CHtmlEditView::OnNavigateComplete2(char const *) 4673 void CHtmlView::OnNavigateComplete2(char const *) 4674 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 4675 int CFrameWnd::OnNcActivate(int) 4676 int CMDIChildWnd::OnNcActivate(int) 4677 int CMiniFrameWnd::OnNcActivate(int) 4678 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4679 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4680 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4681 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4682 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4683 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 4684 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 4685 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 4686 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 4687 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 4688 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 4689 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 4690 void CListCtrl::OnNcDestroy() 4691 void CListView::OnNcDestroy() 4692 void CWnd::OnNcDestroy() 4693 long CMiniFrameWnd::OnNcHitTest(CPoint) 4694 long COleControl::OnNcHitTest(CPoint) 4695 long CStatusBar::OnNcHitTest(CPoint) 4696 long CToolBar::OnNcHitTest(CPoint) 4697 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4698 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4699 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4700 void CDockBar::OnNcPaint() 4701 void COleControl::OnNcPaint() 4702 void CReBar::OnNcPaint() 4703 void CStatusBar::OnNcPaint() 4704 void CToolBar::OnNcPaint() 4705 int CDocument::OnNewDocument() 4706 int CHtmlEditDoc::OnNewDocument() 4707 int COleDocument::OnNewDocument() 4708 int COleLinkingDoc::OnNewDocument() 4709 void COleServerDoc::OnNewEmbedding(IStorage *) 4710 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 4711 int CEnumArray::OnNext(void *) 4712 int CEnumConnections::OnNext(void *) 4713 int CEnumConnPoints::OnNext(void *) 4714 int CEnumFormatEtc::OnNext(void *) 4715 int CEnumOleVerb::OnNext(void *) 4716 int CEnumUnknown::OnNext(void *) 4717 void CPreviewView::OnNextPage() 4718 int CView::OnNextPaneCmd(unsigned int) 4719 int CFileDialog::OnNotify(unsigned int,long,long *) 4720 int CPropertyPage::OnNotify(unsigned int,long,long *) 4721 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4722 int CWnd::OnNotify(unsigned int,long,long *) 4723 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4724 long CWnd::OnNTCtlColor(unsigned int,long) 4725 void CPreviewView::OnNumPageChange() 4726 void COlePropertyPage::OnObjectsChanged() 4727 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4728 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4729 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4730 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4731 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4732 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4733 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4734 void CCommonDialog::OnOK() 4735 void CDialog::OnOK() 4736 void CPropertyPage::OnOK() 4737 long COleControl::OnOpen(int,tagMSG *) 4738 void COleServerItem::OnOpen() 4739 int CDocument::OnOpenDocument(char const *) 4740 int CHtmlEditDoc::OnOpenDocument(char const *) 4741 int COleDocument::OnOpenDocument(char const *) 4742 int COleLinkingDoc::OnOpenDocument(char const *) 4743 void COleServerDoc::OnOpenEmbedding(IStorage *) 4744 int CWinApp::OnOpenRecentFile(unsigned int) 4745 void CAsyncSocket::OnOutOfBandData(int) 4746 void CCommonDialog::OnPaint() 4747 void CControlBar::OnPaint() 4748 void CCtrlView::OnPaint() 4749 void CDialog::OnPaint() 4750 void CDockBar::OnPaint() 4751 void CHtmlEditView::OnPaint() 4752 void CHtmlView::OnPaint() 4753 void COleControl::OnPaint(CDC *) 4754 int COleControlContainer::OnPaint(CDC *) 4755 void COleResizeBar::OnPaint() 4756 void CReBar::OnPaint() 4757 void CSplitterWnd::OnPaint() 4758 void CStatusBar::OnPaint() 4759 void CToolBar::OnPaint() 4760 void CView::OnPaint() 4761 void CWnd::OnPaint() 4762 void CFrameWnd::OnPaletteChanged(CWnd *) 4763 void COleFrameHook::OnPaletteChanged(CWnd *) 4764 void CRichEditView::OnParaAlign(unsigned short) 4765 void CRichEditView::OnParaCenter() 4766 void CRichEditView::OnParaLeft() 4767 void CRichEditView::OnParaRight() 4768 void CWnd::OnParentNotify(unsigned int,long) 4769 int CRichEditView::OnPasteNativeObject(IStorage *) 4770 long CFrameWnd::OnPopMessageString(unsigned int,long) 4771 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4772 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4773 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4774 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4775 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4776 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4777 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4778 int CEditView::OnPreparePrinting(CPrintInfo *) 4779 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 4780 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 4781 int CView::OnPreparePrinting(CPrintInfo *) 4782 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 4783 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4784 void CPreviewView::OnPreviewClose() 4785 void CPreviewView::OnPreviewPrint() 4786 void CPreviewView::OnPrevPage() 4787 void CEditView::OnPrint(CDC *,CPrintInfo *) 4788 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 4789 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4790 void CView::OnPrint(CDC *,CPrintInfo *) 4791 void CRichEditView::OnPrinterChanged(CDC const &) 4792 void CPrintDialog::OnPrintSetup() 4793 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 4794 void CHtmlView::OnProgressChange(long,long) 4795 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4796 void CHtmlView::OnPropertyChange(char const *) 4797 int CPropertyPage::OnQueryCancel() 4798 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4799 int CFrameWnd::OnQueryEndSession() 4800 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4801 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4802 int CFrameWnd::OnQueryNewPalette() 4803 int COleFrameHook::OnQueryNewPalette() 4804 int COleServerItem::OnQueryUpdateItems() 4805 void CHtmlView::OnQuit() 4806 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4807 void COleControl::OnRButtonDown(unsigned int,CPoint) 4808 void COleControl::OnRButtonUp(unsigned int,CPoint) 4809 int COleServerDoc::OnReactivateAndUndo() 4810 void COleFrameHook::OnRecalcLayout() 4811 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4812 void CReBar::OnRecalcParent() 4813 void CAsyncSocket::OnReceive(int) 4814 void COleControl::OnReflectorDestroyed() 4815 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 4816 void COleClientItem::OnRemoveMenus(CMenu *) 4817 void COleDocObjectItem::OnRemoveMenus(CMenu *) 4818 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4819 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4820 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4821 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4822 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4823 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4824 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4825 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4826 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4827 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4828 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4829 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4830 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4831 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4832 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4833 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4834 void CEditView::OnReplaceAll(char const *,char const *,int) 4835 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 4836 void CEditView::OnReplaceSel(char const *,int,int,char const *) 4837 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 4838 long COleControl::XFontNotification::OnRequestEdit(long) 4839 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4840 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4841 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4842 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4843 void CEnumArray::OnReset() 4844 void CPropertyPage::OnReset() 4845 void COleControl::OnResetState() 4846 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4847 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4848 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4849 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 4850 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 4851 void COleClientItem::XAdviseSink::OnSave() 4852 int CDocument::OnSaveDocument(char const *) 4853 int CHtmlEditDoc::OnSaveDocument(char const *) 4854 int COleDocument::OnSaveDocument(char const *) 4855 int COleLinkingDoc::OnSaveDocument(char const *) 4856 int COleServerDoc::OnSaveDocument(char const *) 4857 void COleServerDoc::OnSaveEmbedding(IStorage *) 4858 void COleServerItem::OnSaveEmbedding(IStorage *) 4859 void CDocObjectServer::OnSaveViewState(CArchive &) 4860 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4861 int CView::OnScroll(unsigned int,unsigned int,int) 4862 int COleClientItem::OnScrollBy(CSize) 4863 int CScrollView::OnScrollBy(CSize,int) 4864 int CView::OnScrollBy(CSize,int) 4865 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4866 void CAsyncSocket::OnSend(int) 4867 int CPropertyPage::OnSetActive() 4868 long CToolBar::OnSetBitmapSize(unsigned int,long) 4869 long CToolBar::OnSetButtonSize(unsigned int,long) 4870 void COleControl::OnSetClientSite() 4871 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4872 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4873 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4874 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4875 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4876 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4877 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4878 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4879 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4880 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4881 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4882 long CPropertySheet::OnSetDefID(unsigned int,long) 4883 int COleControl::OnSetExtent(tagSIZE *) 4884 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4885 void CFormView::OnSetFocus(CWnd *) 4886 void CFrameWnd::OnSetFocus(CWnd *) 4887 void COleControl::OnSetFocus(CWnd *) 4888 void CWnd::OnSetFocus(CWnd *) 4889 long CCheckListBox::OnSetFont(unsigned int,long) 4890 void CDialog::OnSetFont(CFont *) 4891 long CEditView::OnSetFont(unsigned int,long) 4892 void COleServerDoc::OnSetHostNames(char const *,char const *) 4893 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4894 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4895 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4896 long CFrameWnd::OnSetMessageString(unsigned int,long) 4897 long COleControl::OnSetMessageString(unsigned int,long) 4898 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 4899 long CStatusBar::OnSetMinHeight(unsigned int,long) 4900 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 4901 void CDatabase::OnSetOptions(void *) 4902 void CRecordset::OnSetOptions(void *) 4903 void COlePropertyPage::OnSetPageSite() 4904 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4905 long CToolBar::OnSetSizeHelper(CSize &,long) 4906 long COleControl::OnSetText(unsigned int,long) 4907 long CStatusBar::OnSetText(unsigned int,long) 4908 void CWnd::OnSettingChange(unsigned int,char const *) 4909 void CRecordset::OnSetUpdateOptions(void *) 4910 unsigned int CFileDialog::OnShareViolation(char const *) 4911 void CDocObjectServerItem::OnShow() 4912 void COleServerItem::OnShow() 4913 long CReBar::OnShowBand(unsigned int,long) 4914 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 4915 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 4916 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 4917 void COleServerDoc::OnShowDocument(int) 4918 void COleClientItem::OnShowItem() 4919 void COleControl::OnShowToolBars() 4920 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 4921 void COleDocument::OnShowViews(int) 4922 void COleLinkingDoc::OnShowViews(int) 4923 void COleControl::OnShowWindow(int,unsigned int) 4924 long COleClientItem::XOleClientSite::OnShowWindow(int) 4925 long COleControlSite::XOleClientSite::OnShowWindow(int) 4926 void CDHtmlDialog::OnSize(unsigned int,int,int) 4927 void CFrameWnd::OnSize(unsigned int,int,int) 4928 void CHtmlView::OnSize(unsigned int,int,int) 4929 void CMDIChildWnd::OnSize(unsigned int,int,int) 4930 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4931 void COleControl::OnSize(unsigned int,int,int) 4932 void COleIPFrameWnd::OnSize(unsigned int,int,int) 4933 void COleResizeBar::OnSize(unsigned int,int,int) 4934 void CPreviewView::OnSize(unsigned int,int,int) 4935 void CScrollView::OnSize(unsigned int,int,int) 4936 void CSplitterWnd::OnSize(unsigned int,int,int) 4937 void CStatusBar::OnSize(unsigned int,int,int) 4938 long CControlBar::OnSizeParent(unsigned int,long) 4939 long CDockBar::OnSizeParent(unsigned int,long) 4940 long COleResizeBar::OnSizeParent(unsigned int,long) 4941 int CEnumArray::OnSkip() 4942 long CSocketWnd::OnSocketDead(unsigned int,long) 4943 long CSocketWnd::OnSocketNotify(unsigned int,long) 4944 int CView::OnSplitCmd(unsigned int) 4945 void CAsyncMonikerFile::OnStartBinding() 4946 void CHtmlView::OnStatusBar(int) 4947 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4948 void CHtmlView::OnStatusTextChange(char const *) 4949 void CAsyncMonikerFile::OnStopBinding(long,char const *) 4950 void CToolBar::OnSysColorChange() 4951 void CWnd::OnSysColorChange() 4952 void CFrameWnd::OnSysCommand(unsigned int,long) 4953 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4954 void CPropertySheet::OnSysCommand(unsigned int,long) 4955 void CSplitterWnd::OnSysCommand(unsigned int,long) 4956 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4957 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4958 void COleControl::OnTextChanged() 4959 void CEditView::OnTextNotFound(char const *) 4960 void CRichEditView::OnTextNotFound(char const *) 4961 void CHtmlView::OnTheaterMode(int) 4962 void CControlBar::OnTimer(unsigned int) 4963 void CHtmlView::OnTitleChange(char const *) 4964 void CHtmlView::OnToolBar(int) 4965 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4966 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4967 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 4968 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4969 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4970 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 4971 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 4972 void CFileDialog::OnTypeChange() 4973 void COleControlContainer::OnUIActivate(COleControlSite *) 4974 long COleClientItem::XOleIPSite::OnUIActivate() 4975 long COleControlSite::XOleIPSite::OnUIActivate() 4976 void COleControlContainer::OnUIDeactivate(COleControlSite *) 4977 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 4978 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 4979 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 4980 void CView::OnUpdate(CView *,long,CObject *) 4981 void CRichEditView::OnUpdateBullet(CCmdUI *) 4982 void CRichEditView::OnUpdateCharBold(CCmdUI *) 4983 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 4984 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 4985 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 4986 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4987 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4988 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 4989 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4990 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4991 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4992 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4993 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4994 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4995 int COleServerDoc::OnUpdateDocument() 4996 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 4997 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 4998 void CHtmlView::OnUpdateEditCut(CCmdUI *) 4999 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 5000 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 5001 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 5002 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 5003 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 5004 void CEditView::OnUpdateEditUndo(CCmdUI *) 5005 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5006 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5007 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5008 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5009 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5010 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5011 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5012 void CFrameWnd::OnUpdateFrameTitle(int) 5013 void CMDIChildWnd::OnUpdateFrameTitle(int) 5014 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5015 int COleClientItem::OnUpdateFrameTitle() 5016 int COleFrameHook::OnUpdateFrameTitle() 5017 void COleServerItem::OnUpdateItems() 5018 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5019 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5020 void CEditView::OnUpdateNeedClip(CCmdUI *) 5021 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5022 void CEditView::OnUpdateNeedFind(CCmdUI *) 5023 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5024 void CEditView::OnUpdateNeedSel(CCmdUI *) 5025 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5026 void CEditView::OnUpdateNeedText(CCmdUI *) 5027 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5028 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5029 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5030 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5031 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5032 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5033 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5034 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5035 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5036 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5037 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5038 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5039 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5040 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 5041 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5042 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 5043 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5044 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 5045 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5046 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 5047 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5048 void CView::OnUpdateSplitCmd(CCmdUI *) 5049 long CHtmlView::OnUpdateUI() 5050 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5051 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5052 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5053 void CHtmlView::OnVisible(int) 5054 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5055 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5056 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5057 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5058 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5059 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5060 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5061 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5062 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5063 void CMDIFrameWnd::OnWindowNew() 5064 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5065 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5066 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5067 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5068 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5069 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5070 long CPropertyPage::OnWizardBack() 5071 int CPropertyPage::OnWizardFinish() 5072 long CPropertyPage::OnWizardNext() 5073 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5074 void CPreviewView::OnZoomIn() 5075 void CPreviewView::OnZoomOut() 5076 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5077 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5078 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5079 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5080 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 5081 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 5082 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 5083 int CAsyncMonikerFile::Open(char const *,CFileException *) 5084 int CDatabase::Open(char const *,int,int,char const *,int) 5085 int CDataPathProperty::Open(CFileException *) 5086 int CDataPathProperty::Open(COleControl *,CFileException *) 5087 int CDataPathProperty::Open(char const *,CFileException *) 5088 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 5089 int CFile::Open(char const *,unsigned int,CFileException *) 5090 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 5091 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5092 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5093 int CMonikerFile::Open(IMoniker *,CFileException *) 5094 int CMonikerFile::Open(char const *,CFileException *) 5095 int CRecordset::Open(unsigned int,char const *,unsigned long) 5096 int CSocketFile::Open(char const *,unsigned int,CFileException *) 5097 int CStdioFile::Open(char const *,unsigned int,CFileException *) 5098 long CDocObjectServer::XOleDocumentView::Open() 5099 CDocument * CDocManager::OpenDocumentFile(char const *) 5100 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 5101 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 5102 CDocument * CWinApp::OpenDocumentFile(char const *) 5103 int CDatabase::OpenEx(char const *,unsigned long) 5104 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 5105 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 5106 long COleUILinkInfo::OpenLinkSource(unsigned long) 5107 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5108 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5109 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 5110 int CHtmlEditDoc::OpenURL(char const *) 5111 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 5112 int CFileException::OsErrorToException(long) 5113 void CDumpContext::OutputString(char const *) 5114 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5115 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5116 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5117 int CWnd::PaintWindowlessControls(CDC *) 5118 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5119 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5120 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 5121 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5122 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5123 void CCommandLineInfo::ParseLast(int) 5124 void CCommandLineInfo::ParseParam(char const *,int,int) 5125 void CCommandLineInfo::ParseParamFlag(char const *) 5126 void CCommandLineInfo::ParseParamNotFlag(char const *) 5127 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5128 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 5129 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 5130 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 5131 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 5132 int CDC::PlayMetaFile(HMETAFILE__ *) 5133 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 5134 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 5135 int CDC::PolyBezierTo(tagPOINT const *,int) 5136 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5137 int CDC::PolylineTo(tagPOINT const *,int) 5138 void CPreviewView::PositionPage(unsigned int) 5139 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5140 int CMonikerFile::PostBindToStream(CFileException *) 5141 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5142 void CDialog::PostModal() 5143 void CPrintDialogEx::PostModal() 5144 void COleControl::PostModalDialog(HWND__ *) 5145 void CControlBar::PostNcDestroy() 5146 void CControlFrameWnd::PostNcDestroy() 5147 void CFindReplaceDialog::PostNcDestroy() 5148 void CFrameWnd::PostNcDestroy() 5149 void COleCntrFrameWnd::PostNcDestroy() 5150 void CReflectorWnd::PostNcDestroy() 5151 void CView::PostNcDestroy() 5152 void CWnd::PostNcDestroy() 5153 void ATL::CSimpleStringT::Preallocate(int) 5154 void ATL::CSimpleStringT::Preallocate(int) 5155 void CRecordset::PreBindFields() 5156 void CDocument::PreCloseFrame(CFrameWnd *) 5157 void COleDocument::PreCloseFrame(CFrameWnd *) 5158 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5159 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5160 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5161 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 5162 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5163 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 5164 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 5165 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5166 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 5167 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 5168 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 5169 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5170 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5171 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 5172 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 5173 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 5174 int CView::PreCreateWindow(tagCREATESTRUCTA &) 5175 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 5176 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5177 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5178 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 5179 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 5180 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 5181 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 5182 void CDialog::PreInitDialog() 5183 void COleChangeSourceDialog::PreInitDialog() 5184 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5185 HWND__ * CDialog::PreModal() 5186 HWND__ * CPrintDialogEx::PreModal() 5187 void COleControl::PreModalDialog(HWND__ *) 5188 void CRecordset::PrepareAndExecute() 5189 HWND__ * CDataExchange::PrepareCtrl(int) 5190 HWND__ * CDataExchange::PrepareEditCtrl(int) 5191 void CWnd::PrepareForHelp() 5192 COleControlSite * CDataExchange::PrepareOleCtrl(int) 5193 void CRecordset::PrepareUpdateHstmt() 5194 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 5195 char * ATL::CSimpleStringT::PrepareWrite(int) 5196 void ATL::CSimpleStringT::PrepareWrite2(int) 5197 void ATL::CSimpleStringT::PrepareWrite2(int) 5198 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 5199 void CDragListBox::PreSubclassWindow() 5200 void CWnd::PreSubclassWindow() 5201 int CWnd::PreTranslateInput(tagMSG *) 5202 int CControlBar::PreTranslateMessage(tagMSG *) 5203 int CDialog::PreTranslateMessage(tagMSG *) 5204 int CFormView::PreTranslateMessage(tagMSG *) 5205 int CFrameWnd::PreTranslateMessage(tagMSG *) 5206 int CHtmlView::PreTranslateMessage(tagMSG *) 5207 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5208 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5209 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5210 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5211 int CPropertyPage::PreTranslateMessage(tagMSG *) 5212 int CPropertySheet::PreTranslateMessage(tagMSG *) 5213 int CWinThread::PreTranslateMessage(tagMSG *) 5214 int CWnd::PreTranslateMessage(tagMSG *) 5215 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5216 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5217 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5218 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5219 long CRichEditView::PrintPage(CDC *,long,long) 5220 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5221 long COleException::Process(CException const *) 5222 int CSocket::ProcessAuxQueue() 5223 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5224 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5225 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5226 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5227 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5228 void COleSafeArray::PtrOfIndex(long *,void * *) 5229 int CMetaFileDC::PtVisible(int,int)const 5230 int CWinThread::PumpMessage() 5231 int CSocket::PumpMessages(unsigned int) 5232 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 5233 long CWnd::put_accName(tagVARIANT,wchar_t *) 5234 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5235 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5236 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5237 void COleSafeArray::PutElement(long *,void *) 5238 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 5239 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 5240 int PX_Blob(CPropExchange *,char const *,void * &,void *) 5241 int PX_Bool(CPropExchange *,char const *,int &) 5242 int PX_Bool(CPropExchange *,char const *,int &,int) 5243 int PX_Color(CPropExchange *,char const *,unsigned long &) 5244 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 5245 int PX_Currency(CPropExchange *,char const *,union tagCY &) 5246 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 5247 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 5248 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 5249 int PX_Double(CPropExchange *,char const *,double &) 5250 int PX_Double(CPropExchange *,char const *,double &,double) 5251 int PX_Float(CPropExchange *,char const *,float &) 5252 int PX_Float(CPropExchange *,char const *,float &,float) 5253 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5254 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 5255 int PX_Long(CPropExchange *,char const *,long &) 5256 int PX_Long(CPropExchange *,char const *,long &,long) 5257 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 5258 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 5259 int PX_Short(CPropExchange *,char const *,short &) 5260 int PX_Short(CPropExchange *,char const *,short &,short) 5261 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 5262 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 5263 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5264 int PX_ULong(CPropExchange *,char const *,unsigned long &) 5265 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 5266 int PX_UShort(CPropExchange *,char const *,unsigned short &) 5267 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 5268 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5269 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5270 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5271 IUnknown * CCmdTarget::QueryAggregates(void const *) 5272 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5273 long COleDropSource::QueryContinueDrag(int,unsigned long) 5274 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5275 void * COleControl::QueryDefHandler(_GUID const &) 5276 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5277 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5278 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5279 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5280 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5281 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5282 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5283 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5284 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5285 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5286 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5287 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5288 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5289 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5290 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5291 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5292 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5293 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5294 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5295 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5296 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5297 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5298 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5299 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5300 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 5301 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5302 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5303 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 5304 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5305 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5306 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 5307 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5308 long CPropertyPage::QuerySiblings(unsigned int,long) 5309 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5310 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5311 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5312 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5313 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5314 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 5315 int COleControlSite::QuickActivate() 5316 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5317 int COleClientItem::ReactivateAndUndo() 5318 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5319 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5320 unsigned int CArchive::Read(void *,unsigned int) 5321 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5322 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5323 unsigned int CFile::Read(void *,unsigned int) 5324 int CImageList::Read(CArchive *) 5325 unsigned int CInternetFile::Read(void *,unsigned int) 5326 unsigned int CMemFile::Read(void *,unsigned int) 5327 unsigned int COleStreamFile::Read(void *,unsigned int) 5328 unsigned int CSocketFile::Read(void *,unsigned int) 5329 unsigned int CStdioFile::Read(void *,unsigned int) 5330 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5331 unsigned long CArchive::ReadCount() 5332 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5333 int CProperty::ReadFromStream(IStream *) 5334 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5335 int CPropertySet::ReadFromStream(IStream *) 5336 void COleClientItem::ReadItem(CArchive &) 5337 void COleClientItem::ReadItemCompound(CArchive &) 5338 void COleClientItem::ReadItemFlat(CArchive &) 5339 void CRecentFileList::ReadList() 5340 int CPropertySection::ReadNameDictFromStream(IStream *) 5341 CObject * CArchive::ReadObject(CRuntimeconst *) 5342 int CArchive::ReadString(ATL::CStringT > > &) 5343 char * CArchive::ReadString(char *,unsigned int) 5344 int CInternetFile::ReadString(ATL::CStringT > > &) 5345 char * CInternetFile::ReadString(char *,unsigned int) 5346 int CStdioFile::ReadString(ATL::CStringT > > &) 5347 char * CStdioFile::ReadString(char *,unsigned int) 5348 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5349 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5350 void ATL::CSimpleStringT::Reallocate(int) 5351 void ATL::CSimpleStringT::Reallocate(int) 5352 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5353 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5354 void CRecordset::RebindParams(void *) 5355 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5356 void CFrameWnd::RecalcLayout(int) 5357 void CMiniDockFrameWnd::RecalcLayout(int) 5358 void COleCntrFrameWnd::RecalcLayout(int) 5359 void COleDocIPFrameWnd::RecalcLayout(int) 5360 void COleIPFrameWnd::RecalcLayout(int) 5361 void CSplitterWnd::RecalcLayout() 5362 int CAsyncSocket::Receive(void *,int,int) 5363 int CSocket::Receive(void *,int,int) 5364 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5365 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5366 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5367 void COleControl::RecreateControlWindow() 5368 CRect const CFrameWnd::rectDefault 5369 int CMetaFileDC::RectVisible(tagRECT const *)const 5370 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5371 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5372 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5373 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5374 int CWnd::ReflectLastMsg(HWND__ *,long *) 5375 void COleControl::Refresh() 5376 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5377 int COleDropTarget::Register(CWnd *) 5378 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 5379 int COleMessageFilter::Register() 5380 int COleObjectFactory::Register() 5381 int COleTemplateServer::Register() 5382 int CWinApp::Register() 5383 int COleObjectFactory::RegisterAll() 5384 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 5385 void CDocManager::RegisterShellFileTypes(int) 5386 void CWinApp::RegisterShellFileTypes(int) 5387 unsigned long CArchiveStream::Release() 5388 unsigned long CBlobProperty::Release() 5389 unsigned long CBrowserControlSite::Release() 5390 unsigned long CDHtmlControlSink::Release() 5391 unsigned long CDHtmlElementEventSink::Release() 5392 unsigned long CDHtmlEventSink::Release() 5393 unsigned long CInnerUnknown::Release() 5394 void COleClientItem::Release(enum tagOLECLOSE) 5395 unsigned long COleConnPtContainer::Release() 5396 void COleDataObject::Release() 5397 unsigned long COleDispatchImpl::Release() 5398 void COleDocObjectItem::Release(enum tagOLECLOSE) 5399 unsigned long COleUILinkInfo::Release() 5400 unsigned long CPrintDialogEx::Release() 5401 void CDC::ReleaseAttribDC() 5402 void ATL::CSimpleStringT::ReleaseBuffer(int) 5403 void ATL::CSimpleStringT::ReleaseBuffer(int) 5404 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5405 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5406 void COleControl::ReleaseCaches() 5407 int COleControl::ReleaseCapture() 5408 int COleControl::ReleaseDC(CDC *) 5409 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5410 void COleDispatchDriver::ReleaseDispatch() 5411 void CDocObjectServer::ReleaseDocSite() 5412 void CDocument::ReleaseFile(CFile *,int) 5413 void CFontHolder::ReleaseFont() 5414 void CDC::ReleaseOutputDC() 5415 void CMetaFileDC::ReleaseOutputDC() 5416 void CPreviewDC::ReleaseOutputDC() 5417 int COleClientItem::Reload() 5418 int ATL::CStringT > >::Remove(wchar_t) 5419 int ATL::CStringT > >::Remove(char) 5420 void CFile::Remove(char const *) 5421 int CFtpConnection::Remove(char const *) 5422 void CPropertySection::Remove(unsigned long) 5423 void CPropertySet::Remove(_GUID) 5424 void CPropertySet::Remove(_GUID,unsigned long) 5425 void CRecentFileList::Remove(int) 5426 int CSimpleList::Remove(void *) 5427 void CMapPtrToPtr::RemoveAll() 5428 void CMapPtrToWord::RemoveAll() 5429 void CMapStringToOb::RemoveAll() 5430 void CMapStringToPtr::RemoveAll() 5431 void CMapStringToString::RemoveAll() 5432 void CMapWordToOb::RemoveAll() 5433 void CMapWordToPtr::RemoveAll() 5434 void CObList::RemoveAll() 5435 void CPropertySection::RemoveAll() 5436 void CPropertySet::RemoveAll() 5437 void CPtrList::RemoveAll() 5438 void CStringList::RemoveAll() 5439 void CTypeLibCacheMap::RemoveAll(void *) 5440 void CByteArray::RemoveAt(int,int) 5441 void CDWordArray::RemoveAt(int,int) 5442 void CObArray::RemoveAt(int,int) 5443 void CObList::RemoveAt(__POSITION *) 5444 void CPtrArray::RemoveAt(int,int) 5445 void CPtrList::RemoveAt(__POSITION *) 5446 void CStringArray::RemoveAt(int,int) 5447 void CStringList::RemoveAt(__POSITION *) 5448 void CUIntArray::RemoveAt(int,int) 5449 void CWordArray::RemoveAt(int,int) 5450 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5451 void CFrameWnd::RemoveControlBar(CControlBar *) 5452 int CFtpConnection::RemoveDirectoryA(char const *) 5453 void CDocTemplate::RemoveDocument(CDocument *) 5454 void CMultiDocTemplate::RemoveDocument(CDocument *) 5455 void CSingleDocTemplate::RemoveDocument(CDocument *) 5456 void COleControl::RemoveFrameLevelUI() 5457 void CFrameWnd::RemoveFrameWnd() 5458 CObject * CObList::RemoveHead() 5459 void * CPtrList::RemoveHead() 5460 ATL::CStringT > > CStringList::RemoveHead() 5461 void CListCtrl::RemoveImageList(int) 5462 void CListView::RemoveImageList(int) 5463 void CTreeCtrl::RemoveImageList(int) 5464 void CTreeView::RemoveImageList(int) 5465 void COleDocument::RemoveItem(CDocItem *) 5466 int CMapPtrToPtr::RemoveKey(void *) 5467 int CMapPtrToWord::RemoveKey(void *) 5468 int CMapStringToOb::RemoveKey(char const *) 5469 int CMapStringToPtr::RemoveKey(char const *) 5470 int CMapStringToString::RemoveKey(char const *) 5471 int CMapWordToOb::RemoveKey(unsigned short) 5472 int CMapWordToPtr::RemoveKey(unsigned short) 5473 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5474 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5475 void CPropertySheet::RemovePage(int) 5476 void CPropertySheet::RemovePage(CPropertyPage *) 5477 void CDockBar::RemovePlaceHolder(CControlBar *) 5478 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5479 void CDataBoundProperty::RemoveSource() 5480 CObject * CObList::RemoveTail() 5481 void * CPtrList::RemoveTail() 5482 ATL::CStringT > > CStringList::RemoveTail() 5483 void CDocument::RemoveView(CView *) 5484 void CFile::Rename(char const *,char const *) 5485 int CFtpConnection::Rename(char const *,char const *) 5486 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5487 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5488 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 5489 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 5490 int ATL::CStringT > >::Replace(char,char) 5491 int ATL::CStringT > >::Replace(char const *,char const *) 5492 void CDatabase::ReplaceBrackets(char *) 5493 int CException::ReportError(unsigned int,unsigned int) 5494 int COleClientItem::ReportError(long)const 5495 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5496 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5497 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5498 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5499 int CRecordset::Requery() 5500 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5501 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5502 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5503 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5504 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5505 void COleServerDoc::RequestPositionChange(tagRECT const *) 5506 long COleControlSite::XOleIPSite::RequestUIActivate() 5507 long CEnumArray::XEnumVOID::Reset() 5508 void CRecordset::ResetCursor() 5509 void CCachedDataPathProperty::ResetData() 5510 void CDataPathProperty::ResetData() 5511 void COleControl::ResetStockProps() 5512 void CControlBar::ResetTimer(unsigned int,unsigned int) 5513 void COleControl::ResetVersion(unsigned long) 5514 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5515 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5516 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5517 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5518 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5519 void COleControl::ResizeFrameWindow(int,int) 5520 void COleSafeArray::ResizeOneDim(unsigned long) 5521 void COleControl::ResizeOpenControl(int,int) 5522 void CScrollView::ResizeParentToFit(int) 5523 int CDC::RestoreDC(int) 5524 int CPreviewDC::RestoreDC(int) 5525 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 5526 void CCmdTarget::RestoreWaitCursor() 5527 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5528 int ATL::CStringT > >::ReverseFind(wchar_t)const 5529 int ATL::CStringT > >::ReverseFind(char)const 5530 long CArchiveStream::Revert() 5531 void COleDropTarget::Revoke() 5532 void COleLinkingDoc::Revoke() 5533 void COleMessageFilter::Revoke() 5534 void COleObjectFactory::Revoke() 5535 void COleObjectFactory::RevokeAll() 5536 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 5537 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 5538 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 5539 void RFX_Bool(CFieldExchange *,char const *,int &) 5540 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 5541 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 5542 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 5543 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 5544 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 5545 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 5546 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 5547 void RFX_Double(CFieldExchange *,char const *,double &) 5548 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 5549 void RFX_Int(CFieldExchange *,char const *,int &) 5550 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 5551 void RFX_Long(CFieldExchange *,char const *,long &) 5552 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 5553 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 5554 void RFX_Single(CFieldExchange *,char const *,float &) 5555 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 5556 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5557 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5558 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 5559 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 5560 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 5561 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 5562 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5563 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5564 int CDatabase::Rollback() 5565 void COleClientItem::Run() 5566 int CWinApp::Run() 5567 int CWinThread::Run() 5568 int CWinApp::RunAutomated() 5569 int CWinApp::RunEmbedded() 5570 int CWnd::RunModalLoop(unsigned long) 5571 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5572 int CEditView::SameAsSelected(char const *,int) 5573 int CRichEditView::SameAsSelected(char const *,int,int) 5574 long CBlobProperty::Save(IStream *,int) 5575 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 5576 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5577 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5578 long COleControl::XPersistStorage::Save(IStorage *,int) 5579 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5580 long COleControl::XPersistStreamInit::Save(IStream *,int) 5581 int CDocManager::SaveAllModified() 5582 int CDocTemplate::SaveAllModified() 5583 int CWinApp::SaveAllModified() 5584 void CFrameWnd::SaveBarState(char const *)const 5585 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 5586 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5587 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5588 int CDC::SaveDC() 5589 int CPreviewDC::SaveDC() 5590 void COleServerDoc::SaveEmbedding() 5591 int CFormView::SaveFocusControl() 5592 int CDocument::SaveModified() 5593 int COleDocument::SaveModified() 5594 int COleServerDoc::SaveModified() 5595 int COleServerDoc::SaveModifiedPrompt() 5596 long COleClientItem::XOleClientSite::SaveObject() 5597 long COleControlSite::XOleClientSite::SaveObject() 5598 int CControlBarInfo::SaveState(char const *,int) 5599 void CDockState::SaveState(char const *) 5600 long COleControl::SaveState(IStream *) 5601 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 5602 void CWinApp::SaveStdProfileSettings() 5603 void COleDocument::SaveToStorage(CObject *) 5604 void COleLinkingDoc::SaveToStorage(CObject *) 5605 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5606 void CDockState::ScalePoint(CPoint &) 5607 void CDockState::ScaleRectPos(CRect &) 5608 CSize CDC::ScaleViewportExt(int,int,int,int) 5609 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5610 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5611 CSize CDC::ScaleWindowExt(int,int,int,int) 5612 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5613 void CWnd::ScreenToClient(tagRECT *)const 5614 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5615 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5616 void COleControlContainer::ScrollChildren(int,int) 5617 int COleServerDoc::ScrollContainerBy(CSize) 5618 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 5619 void CScrollView::ScrollToDevicePosition(tagPOINT) 5620 void CScrollView::ScrollToPosition(tagPOINT) 5621 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5622 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5623 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5624 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5625 unsigned __int64 CFile::Seek(__int64,unsigned int) 5626 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 5627 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 5628 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 5629 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 5630 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 5631 CFont * CFontHolder::Select(CDC *,long,long) 5632 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 5633 int CDC::SelectClipPath(int) 5634 int CDC::SelectClipRgn(CRgn *) 5635 int CDC::SelectClipRgn(CRgn *,int) 5636 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5637 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5638 long CPrintDialogEx::SelectionChange() 5639 int CDC::SelectObject(CRgn *) 5640 CBrush * CDC::SelectObject(CBrush *) 5641 CPen * CDC::SelectObject(CPen *) 5642 CFont * CDC::SelectObject(CFont *) 5643 CFont * CPreviewDC::SelectObject(CFont *) 5644 CPalette * CDC::SelectPalette(CPalette *,int) 5645 void CWinApp::SelectPrinter(void *,void *,int) 5646 CFont * COleControl::SelectStockFont(CDC *) 5647 CGdiObject * CDC::SelectStockObject(int) 5648 CGdiObject * CPreviewDC::SelectStockObject(int) 5649 int CAsyncSocket::Send(void const *,int,int) 5650 int CSocket::Send(void const *,int,int) 5651 void COleControl::SendAdvise(unsigned int) 5652 int CWnd::SendChildNotifyLastMsg(long *) 5653 int CSocket::SendChunk(void const *,int,int) 5654 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5655 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 5656 void CDocument::SendInitialUpdate() 5657 void CRecordset::SendLongBinaryData(void *) 5658 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5659 void COleControlSite::SendMnemonic(tagMSG *) 5660 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 5661 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 5662 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 5663 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 5664 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 5665 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5666 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5667 void CByteArray::Serialize(CArchive &) 5668 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5669 void CDocItem::Serialize(CArchive &) 5670 void CDockState::Serialize(CArchive &) 5671 void CDWordArray::Serialize(CArchive &) 5672 void CEditView::Serialize(CArchive &) 5673 void CMapStringToOb::Serialize(CArchive &) 5674 void CMapStringToString::Serialize(CArchive &) 5675 void CMapWordToOb::Serialize(CArchive &) 5676 void CObArray::Serialize(CArchive &) 5677 void CObList::Serialize(CArchive &) 5678 void COleClientItem::Serialize(CArchive &) 5679 void COleControl::Serialize(CArchive &) 5680 void COleDocument::Serialize(CArchive &) 5681 void CRichEditDoc::Serialize(CArchive &) 5682 void CRichEditView::Serialize(CArchive &) 5683 void CStringArray::Serialize(CArchive &) 5684 void CStringList::Serialize(CArchive &) 5685 void CWordArray::Serialize(CArchive &) 5686 CArchive & ATL::CTime::Serialize64(CArchive &) 5687 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 5688 void CArchive::SerializeClass(CRuntimeconst *) 5689 void COleControl::SerializeExtent(CArchive &) 5690 void CEditView::SerializeRaw(CArchive &) 5691 void COleControl::SerializeStockProps(CArchive &) 5692 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5693 int CProperty::Set(unsigned long,void * const,unsigned long) 5694 int CProperty::Set(void * const) 5695 int CProperty::Set(void * const,unsigned long) 5696 int CPropertySection::Set(unsigned long,void *) 5697 int CPropertySection::Set(unsigned long,void *,unsigned long) 5698 int CPropertySet::Set(_GUID,unsigned long,void *) 5699 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5700 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5701 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5702 int CPropertySheet::SetActivePage(int) 5703 int CPropertySheet::SetActivePage(CPropertyPage *) 5704 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5705 void CFrameWnd::SetActiveView(CView *,int) 5706 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5707 void COleControl::SetAppearance(short) 5708 int CDC::SetArcDirection(int) 5709 void ATL::CSimpleStringT::SetAt(int,wchar_t) 5710 void ATL::CSimpleStringT::SetAt(int,char) 5711 void CByteArray::SetAtGrow(int,unsigned char) 5712 void CDWordArray::SetAtGrow(int,unsigned long) 5713 void CObArray::SetAtGrow(int,CObject *) 5714 void CPtrArray::SetAtGrow(int,void *) 5715 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 5716 void CStringArray::SetAtGrow(int,char const *) 5717 void CUIntArray::SetAtGrow(int,unsigned int) 5718 void CWordArray::SetAtGrow(int,unsigned short) 5719 void CDC::SetAttribDC(HDC__ *) 5720 void CMetaFileDC::SetAttribDC(HDC__ *) 5721 void CPreviewDC::SetAttribDC(HDC__ *) 5722 void COleControl::SetBackColor(unsigned long) 5723 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5724 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5725 void CControlBar::SetBarStyle(unsigned long) 5726 int CToolBar::SetBitmap(HBITMAP__ *) 5727 unsigned long CDC::SetBkColor(unsigned long) 5728 unsigned long CPreviewDC::SetBkColor(unsigned long) 5729 int CListCtrl::SetBkImage(char *,int,int,int) 5730 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 5731 int CDC::SetBkMode(int) 5732 void CRecordset::SetBookmark(CDBVariant const &) 5733 void CControlBar::SetBorders(int,int,int,int) 5734 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5735 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5736 void COleControl::SetBorderStyle(short) 5737 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5738 int CToolBar::SetButtons(unsigned int const *,int) 5739 void CToolBar::SetButtonStyle(int,unsigned int) 5740 int CToolBar::SetButtonText(int,char const *) 5741 CWnd * COleControl::SetCapture() 5742 long COleControlSite::XOleIPSite::SetCapture(int) 5743 void CRichEditView::SetCharFormat(CHARFORMAT2A) 5744 void CCheckListBox::SetCheck(int,int) 5745 void CCmdUI::SetCheck(int) 5746 int CListCtrl::SetCheck(int,int) 5747 void COleCmdUI::SetCheck(int) 5748 void CStatusCmdUI::SetCheck(int) 5749 void CTestCmdUI::SetCheck(int) 5750 void CToolCmdUI::SetCheck(int) 5751 int CTreeCtrl::SetCheck(_TREEITEM *,int) 5752 void CCheckListBox::SetCheckStyle(unsigned int) 5753 void CPropertySet::SetClassID(_GUID) 5754 void CDataBoundProperty::SetClientSite(COleControlSite *) 5755 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5756 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5757 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5758 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5759 void COleDataSource::SetClipboard() 5760 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5761 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 5762 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5763 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5764 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5765 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5766 void CSplitterWnd::SetColumnInfo(int,int,int) 5767 int CListCtrl::SetColumnOrderArray(int,int *) 5768 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5769 void CDocTemplate::SetContainerInfo(unsigned int) 5770 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5771 void CReflectorWnd::SetControl(COleControl *) 5772 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 5773 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 5774 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 5775 int COleControl::SetControlSize(int,int) 5776 int COlePropertyPage::SetControlStatus(unsigned int,int) 5777 void CFileDialog::SetControlText(int,char const *) 5778 int CInternetSession::SetCookie(char const *,char const *,char const *) 5779 void COleCurrency::SetCurrency(long,long) 5780 void CColorDialog::SetCurrentColor(unsigned long) 5781 int CFtpConnection::SetCurrentDirectoryA(char const *) 5782 void CWinApp::SetCurrentHandles() 5783 void CPreviewView::SetCurrentPage(unsigned int,int) 5784 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 5785 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 5786 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5787 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5788 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5789 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5790 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5791 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5792 int CMonthCalCtrl::SetDayState(int,unsigned long *) 5793 void COccManager::SetDefaultButton(CWnd *,int) 5794 void COleControlSite::SetDefaultButton(int) 5795 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 5796 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 5797 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5798 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5799 void CFileDialog::SetDefExt(char const *) 5800 void COlePropertyPage::SetDialogResource(void *) 5801 void CRecordset::SetDirtyFieldStatus(unsigned long) 5802 int COleControlSite::SetDlgCtrlID(int) 5803 int CWnd::SetDlgCtrlID(int) 5804 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5805 void CWnd::SetDlgItemInt(int,unsigned int,int) 5806 void COleControlContainer::SetDlgItemTextA(int,char const *) 5807 void CWnd::SetDlgItemTextA(int,char const *) 5808 void CFrameWnd::SetDockState(CDockState const &) 5809 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5810 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5811 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5812 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5813 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 5814 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 5815 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 5816 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 5817 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 5818 void COleControl::SetEnabled(int) 5819 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5820 int COleControlSite::SetExtent() 5821 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5822 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5823 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5824 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5825 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 5826 void CRecordset::SetFieldDirty(void *,int) 5827 void CRecordset::SetFieldNull(void *,int) 5828 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5829 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 5830 CWnd * COleControl::SetFocus() 5831 CWnd * COleControlSite::SetFocus(tagMSG *) 5832 CWnd * COleControlSite::SetFocus() 5833 CWnd * CWnd::SetFocus() 5834 long COleControlSite::XOleIPSite::SetFocus(int) 5835 void CDHtmlDialog::SetFocusToElement(char const *) 5836 int CDialogTemplate::SetFont(char const *,unsigned short) 5837 void CFontHolder::SetFont(IFont *) 5838 void COleControl::SetFont(IFontDisp *) 5839 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 5840 void COleControl::SetForeColor(unsigned long) 5841 void CPropertySection::SetFormatID(_GUID) 5842 void CPropertySet::SetFormatVersion(unsigned short) 5843 void CSharedFile::SetHandle(void *,int) 5844 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 5845 void CToolBar::SetHeight(int) 5846 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5847 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 5848 void CDHtmlDialog::SetHostFlags(unsigned long) 5849 void COleClientItem::SetHostNames(char const *,char const *) 5850 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5851 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5852 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5853 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5854 int COleClientItem::SetIconicMetafile(void *) 5855 CSize CListCtrl::SetIconSpacing(int,int) 5856 CSize CListCtrl::SetIconSpacing(CSize) 5857 void CProperty::SetID(unsigned long) 5858 int CReBarCtrl::SetImageList(CImageList *) 5859 int CStatusBar::SetIndicators(unsigned int const *,int) 5860 void COleControl::SetInitialDataFormats() 5861 long CDocObjectServer::XPrint::SetInitialPageNum(long) 5862 void COleControl::SetInitialSize(int,int) 5863 void CControlBar::SetInPlaceOwner(CWnd *) 5864 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 5865 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 5866 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 5867 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 5868 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 5869 int CListCtrl::SetItemCountEx(int,unsigned long) 5870 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 5871 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 5872 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 5873 int CListCtrl::SetItemText(int,int,char const *) 5874 unsigned long CDC::SetLayout(unsigned long) 5875 void ATL::CSimpleStringT::SetLength(int) 5876 void ATL::CSimpleStringT::SetLength(int) 5877 void CFile::SetLength(unsigned __int64) 5878 void CInternetFile::SetLength(unsigned __int64) 5879 void CMemFile::SetLength(unsigned __int64) 5880 void COleStreamFile::SetLength(unsigned __int64) 5881 void CSocketFile::SetLength(unsigned __int64) 5882 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 5883 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 5884 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 5885 void CRecordset::SetLockingMode(unsigned int) 5886 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5887 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5888 int CDC::SetMapMode(int) 5889 int CPreviewDC::SetMapMode(int) 5890 unsigned long CDC::SetMapperFlags(unsigned long) 5891 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5892 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5893 void CFrameWnd::SetMessageText(unsigned int) 5894 void CFrameWnd::SetMessageText(char const *) 5895 void CPropertyPage::SetModified(int) 5896 void COleControl::SetModifiedFlag(int) 5897 void COlePropertyPage::SetModifiedFlag(int) 5898 void CRichEditDoc::SetModifiedFlag(int) 5899 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 5900 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 5901 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 5902 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 5903 int CPropertySection::SetName(unsigned long,char const *) 5904 void COleControl::SetNotPermitted() 5905 void CCmdTarget::SetNotSupported() 5906 void COleControl::SetNotSupported() 5907 void CRecordset::SetNullFieldStatus(unsigned long) 5908 void CRecordset::SetNullParamStatus(unsigned long) 5909 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5910 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5911 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 5912 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5913 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5914 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5915 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5916 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 5917 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 5918 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 5919 int CHeaderCtrl::SetOrderArray(int,int *) 5920 void CPropertySet::SetOSVersion(unsigned long) 5921 void CDC::SetOutputDC(HDC__ *) 5922 void CMetaFileDC::SetOutputDC(HDC__ *) 5923 void CPreviewDC::SetOutputDC(HDC__ *) 5924 void CToolBar::SetOwner(CWnd *) 5925 void COlePropertyPage::SetPageName(char const *) 5926 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 5927 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 5928 void CStatusBar::SetPaneStyle(int,unsigned int) 5929 int CStatusBar::SetPaneText(int,char const *,int) 5930 int CRichEditCtrl::SetParaFormat(_paraformat &) 5931 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 5932 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 5933 void CRecordset::SetParamNull(int,int) 5934 void CDocument::SetPathName(char const *,int) 5935 void COleDocument::SetPathName(char const *,int) 5936 void CRichEditDoc::SetPathName(char const *,int) 5937 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 5938 int CDC::SetPolyFillMode(int) 5939 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 5940 int COleClientItem::SetPrintDevice(tagPDA const *) 5941 void CEditView::SetPrinterFont(CFont *) 5942 int CPreviewView::SetPrintView(CView *) 5943 int COlePropertyPage::SetPropCheck(char const *,int) 5944 void COleControlSite::SetProperty(long,unsigned short,...) 5945 void COleDispatchDriver::SetProperty(long,unsigned short,...) 5946 void CWnd::SetProperty(long,unsigned short,...) 5947 void COleControlSite::SetPropertyV(long,unsigned short,char *) 5948 int COlePropertyPage::SetPropIndex(char const *,int) 5949 int COlePropertyPage::SetPropRadio(char const *,int) 5950 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 5951 int COlePropertyPage::SetPropText(char const *,unsigned char &) 5952 int COlePropertyPage::SetPropText(char const *,short &) 5953 int COlePropertyPage::SetPropText(char const *,int &) 5954 int COlePropertyPage::SetPropText(char const *,unsigned int &) 5955 int COlePropertyPage::SetPropText(char const *,long &) 5956 int COlePropertyPage::SetPropText(char const *,unsigned long &) 5957 int COlePropertyPage::SetPropText(char const *,float &) 5958 int COlePropertyPage::SetPropText(char const *,double &) 5959 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 5960 long CWnd::SetProxy(IAccessibleProxy *) 5961 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 5962 void CCmdUI::SetRadio(int) 5963 void CTestCmdUI::SetRadio(int) 5964 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5965 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5966 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5967 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5968 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5969 void CSliderCtrl::SetRange(int,int,int) 5970 int CInternetFile::SetReadBufferSize(unsigned int) 5971 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 5972 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 5973 int COleControl::SetRectInContainer(tagRECT const *) 5974 void CWinApp::SetRegistryKey(unsigned int) 5975 void CWinApp::SetRegistryKey(char const *) 5976 int CDC::SetROP2(int) 5977 void CSplitterWnd::SetRowInfo(int,int,int) 5978 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 5979 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 5980 void CRecordset::SetRowsetSize(unsigned long) 5981 void CPreviewView::SetScaledSize(unsigned int) 5982 void CPreviewDC::SetScaleRatio(int,int) 5983 void CScrollView::SetScaleToFitSize(tagSIZE) 5984 void CDockState::SetScreenSize(CSize &) 5985 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 5986 int CWnd::SetScrollPos(int,int,int) 5987 void CWnd::SetScrollRange(int,int,int,int) 5988 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 5989 void CSplitterWnd::SetScrollStyle(unsigned long) 5990 int CPropertySection::SetSectionName(char const *) 5991 void CRichEditCtrl::SetSel(long,long) 5992 void CSliderCtrl::SetSelection(int,int) 5993 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 5994 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 5995 void CCheckListBox::SetSelectionCheck(int) 5996 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 5997 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 5998 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5999 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 6000 long CPrintDialogEx::SetSite(IUnknown *) 6001 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 6002 void CByteArray::SetSize(int,int) 6003 void CDWordArray::SetSize(int,int) 6004 void CObArray::SetSize(int,int) 6005 void CPtrArray::SetSize(int,int) 6006 void CStringArray::SetSize(int,int) 6007 void CUIntArray::SetSize(int,int) 6008 void CWordArray::SetSize(int,int) 6009 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6010 void CSplitterWnd::SetSplitCursor(int) 6011 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6012 void CRecordset::SetState(int,char const *,unsigned long) 6013 void CFile::SetStatus(char const *,CFileStatus const &) 6014 int CControlBar::SetStatusText(int) 6015 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 6016 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 6017 int CDC::SetStretchBltMode(int) 6018 void ATL::CSimpleStringT::SetString(wchar_t const *) 6019 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 6020 void ATL::CSimpleStringT::SetString(char const *) 6021 void ATL::CSimpleStringT::SetString(char const *,int) 6022 void COleVariant::SetString(char const *,unsigned short) 6023 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6024 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6025 int CDialogTemplate::SetSystemFont(unsigned short) 6026 void CEditView::SetTabStops(int) 6027 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6028 void CFileDialog::SetTemplate(char const *,char const *) 6029 void CCmdUI::SetText(char const *) 6030 void COleCmdUI::SetText(char const *) 6031 void COleControl::SetText(char const *) 6032 void CStatusCmdUI::SetText(char const *) 6033 void CTestCmdUI::SetText(char const *) 6034 void CToolCmdUI::SetText(char const *) 6035 unsigned int CDC::SetTextAlign(unsigned int) 6036 int CDC::SetTextCharacterExtra(int) 6037 unsigned long CDC::SetTextColor(unsigned long) 6038 unsigned long CPreviewDC::SetTextColor(unsigned long) 6039 int CDC::SetTextJustification(int,int) 6040 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 6041 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6042 int CDateTimeCtrl::SetTime(ATL::CTime const *) 6043 void CDocument::SetTitle(char const *) 6044 void CPropertySheet::SetTitle(char const *,unsigned int) 6045 void CRichEditDoc::SetTitle(char const *) 6046 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 6047 void CMonthCalCtrl::SetToday(ATL::CTime const *) 6048 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6049 void CPreviewDC::SetTopLeftOffset(CSize) 6050 void CProperty::SetType(unsigned long) 6051 void CRecordset::SetUpdateMethod() 6052 void CThreadSlotData::SetValue(int,void *) 6053 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6054 CSize CDC::SetViewportExt(int,int) 6055 CSize CMetaFileDC::SetViewportExt(int,int) 6056 CSize CPreviewDC::SetViewportExt(int,int) 6057 CPoint CDC::SetViewportOrg(int,int) 6058 CPoint CMetaFileDC::SetViewportOrg(int,int) 6059 CPoint CPreviewDC::SetViewportOrg(int,int) 6060 CSize CDC::SetWindowExt(int,int) 6061 CSize CPreviewDC::SetWindowExt(int,int) 6062 CPoint CDC::SetWindowOrg(int,int) 6063 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6064 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6065 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6066 void COleControlSite::SetWindowTextA(char const *) 6067 void CWnd::SetWindowTextA(char const *) 6068 int CRichEditCtrl::SetWordCharFormat(_charformat &) 6069 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 6070 int CInternetFile::SetWriteBufferSize(unsigned int) 6071 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6072 long CDocObjectServer::XOleDocumentView::Show(int) 6073 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6074 void CDockBar::ShowAll(int) 6075 long CRichEditCntrItem::ShowContainerUI(int) 6076 long CRichEditView::ShowContainerUI(int) 6077 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6078 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6079 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6080 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6081 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6082 long COleClientItem::XOleClientSite::ShowObject() 6083 long COleControlSite::XOleClientSite::ShowObject() 6084 void CFrameWnd::ShowOwnedWindows(int) 6085 long COleControlSite::XOleControlSite::ShowPropertyFrame() 6086 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6087 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6088 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6089 int COleControlSite::ShowWindow(int) 6090 int CWnd::ShowWindow(int) 6091 tagSIZE const CScrollView::sizeDefault 6092 int CMonthCalCtrl::SizeMinReq(int) 6093 void CBitmapButton::SizeToContent() 6094 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6095 long CEnumArray::XEnumVOID::Skip(unsigned long) 6096 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6097 int CAsyncSocket::Socket(int,long,int,int) 6098 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 6099 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 6100 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 6101 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 6102 int CSplitterWnd::SplitColumn(int) 6103 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6104 int CSplitterWnd::SplitRow(int) 6105 int CDC::StartDocA(char const *) 6106 void CDockContext::StartDrag(CPoint) 6107 void CDockContext::StartResize(int,CPoint) 6108 void CSplitterWnd::StartTracking(int) 6109 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6110 void CSplitterWnd::StopTracking(int) 6111 void CRuntimeClass::Store(CArchive &)const 6112 void CRecordset::StoreFields() 6113 void CRichEditView::Stream(CArchive &,int) 6114 void CDockContext::Stretch(CPoint) 6115 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6116 int ATL::CSimpleStringT::StringLength(char const *) 6117 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6118 int ATL::CSimpleStringT::StringLength(char const *) 6119 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6120 int CWnd::SubclassWindow(HWND__ *) 6121 int COleDocObjectItem::SupportsIPrint() 6122 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6123 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6124 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6125 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6126 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6127 void CRichEditView::TextNotFound(char const *) 6128 int CMetaFileDC::TextOutA(int,int,char const *,int) 6129 int CPreviewDC::TextOutA(int,int,char const *,int) 6130 void CFileException::ThrowErrno(int,char const *) 6131 void COleControl::ThrowError(long,unsigned int,unsigned int) 6132 void COleControl::ThrowError(long,char const *,unsigned int) 6133 void ATL::CSimpleStringT::ThrowMemoryException() 6134 void ATL::CSimpleStringT::ThrowMemoryException() 6135 void CFileException::ThrowOsError(long,char const *) 6136 void CDockContext::ToggleDocking() 6137 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 6138 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 6139 COleVariant CDataSourceControl::ToVariant(int) 6140 int CDockContext::Track() 6141 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6142 void CSplitterWnd::TrackColumnSize(int,int) 6143 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6144 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6145 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 6146 void CSplitterWnd::TrackRowSize(int,int) 6147 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6148 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6149 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6150 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6151 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6152 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6153 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 6154 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6155 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6156 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6157 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6158 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 6159 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6160 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6161 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6162 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6163 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 6164 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 6165 ATL::CStringT > > & ATL::CStringT > >::Trim() 6166 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 6167 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 6168 ATL::CStringT > > & ATL::CStringT > >::Trim() 6169 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 6170 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 6171 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6172 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 6173 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 6174 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6175 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 6176 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 6177 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6178 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 6179 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 6180 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6181 void ATL::CSimpleStringT::Truncate(int) 6182 void ATL::CSimpleStringT::Truncate(int) 6183 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6184 void COccManager::UIActivateControl(CWnd *) 6185 long COleControl::XOleInPlaceObject::UIDeactivate() 6186 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 6187 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6188 void COleSafeArray::UnaccessData() 6189 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 6190 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6191 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6192 long COleControl::XOleObject::Unadvise(unsigned long) 6193 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6194 long COleServerItem::XOleObject::Unadvise(unsigned long) 6195 void CRecordset::UnbindFieldsForUpdate() 6196 long COleControl::XOleCache::Uncache(unsigned long) 6197 long COleControl::XViewObject::Unfreeze(unsigned long) 6198 int CEvent::Unlock() 6199 int CMultiLock::Unlock(long,long *) 6200 int CMultiLock::Unlock() 6201 int CMutex::Unlock() 6202 void COleSafeArray::Unlock() 6203 int CSemaphore::Unlock(long,long *) 6204 int CSingleLock::Unlock(long,long *) 6205 int CSingleLock::Unlock() 6206 void CTypeLibCache::Unlock() 6207 void ATL::CSimpleStringT::UnlockBuffer() 6208 void ATL::CSimpleStringT::UnlockBuffer() 6209 void CEditView::UnlockBuffer()const 6210 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 6211 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 6212 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 6213 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 6214 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 6215 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 6216 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6217 int COleObjectFactory::Unregister() 6218 int COleTemplateServer::Unregister() 6219 int CWinApp::Unregister() 6220 int COleObjectFactory::UnregisterAll() 6221 void CDocManager::UnregisterShellFileTypes() 6222 void CWinApp::UnregisterShellFileTypes() 6223 HWND__ * CWnd::UnsubclassWindow() 6224 int CRecordset::Update() 6225 long CDocObjectServer::XOleObject::Update() 6226 long COleControl::XOleObject::Update() 6227 long COleServerDoc::XOleObject::Update() 6228 long COleServerItem::XOleObject::Update() 6229 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6230 void CStatusBar::UpdateAllPanes(int,int) 6231 void CDocument::UpdateAllViews(CView *,long,CObject *) 6232 void CScrollView::UpdateBars() 6233 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6234 long CDataSourceControl::UpdateControls() 6235 long CDataSourceControl::UpdateCursor() 6236 int CWnd::UpdateData(int) 6237 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6238 void CDocument::UpdateFrameCounts() 6239 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 6240 int CRecordset::UpdateInsertDelete() 6241 void COleClientItem::UpdateItemType() 6242 int COleClientItem::UpdateLink() 6243 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6244 void CRecentFileList::UpdateMenu(CCmdUI *) 6245 void COleDocument::UpdateModifiedFlag() 6246 void CRichEditDoc::UpdateModifiedFlag() 6247 void CRichEditDoc::UpdateObjectCache() 6248 void CWinApp::UpdatePrinterSelection(int) 6249 int COleObjectFactory::UpdateRegistry(int) 6250 void COleObjectFactory::UpdateRegistry(char const *) 6251 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 6252 int COleObjectFactory::UpdateRegistryAll(int) 6253 void CDockContext::UpdateState(int *,int) 6254 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6255 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 6256 long CBrowserControlSite::UpdateUI() 6257 long CDHtmlDialog::UpdateUI() 6258 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 6259 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6260 void COleLinkingDoc::UpdateVisibleLock(int,int) 6261 void CDatabase::VerifyConnect() 6262 unsigned long CRecordset::VerifyCursorSupport() 6263 void CRecordset::VerifyDriverBehavior() 6264 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 6265 int COleObjectFactory::VerifyUserLicense() 6266 int CListBox::VKeyToItem(unsigned int,unsigned int) 6267 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6268 int COleControl::WillAmbientsBeValidDuringLoad() 6269 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6270 long COleControl::WindowProc(unsigned int,unsigned int,long) 6271 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6272 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6273 long CReBar::WindowProc(unsigned int,unsigned int,long) 6274 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6275 long CWnd::WindowProc(unsigned int,unsigned int,long) 6276 void CWinApp::WinHelpA(unsigned long,unsigned int) 6277 void CWnd::WinHelpA(unsigned long,unsigned int) 6278 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 6279 void CWnd::WinHelpInternal(unsigned long,unsigned int) 6280 CWnd const CWnd::wndBottom 6281 CWnd const CWnd::wndNoTopMost 6282 CWnd const CWnd::wndTop 6283 CWnd const CWnd::wndTopMost 6284 void CRichEditView::WrapChanged() 6285 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6286 void CArchive::Write(void const *,unsigned int) 6287 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6288 void CFile::Write(void const *,unsigned int) 6289 void CGopherFile::Write(void const *,unsigned int) 6290 int CImageList::Write(CArchive *) 6291 void CInternetFile::Write(void const *,unsigned int) 6292 void CMemFile::Write(void const *,unsigned int) 6293 void COleStreamFile::Write(void const *,unsigned int) 6294 void CSocketFile::Write(void const *,unsigned int) 6295 void CStdioFile::Write(void const *,unsigned int) 6296 void CArchive::WriteClass(CRuntimeconst *) 6297 void CArchive::WriteCount(unsigned long) 6298 void COleClientItem::WriteItem(CArchive &) 6299 void COleClientItem::WriteItemCompound(CArchive &) 6300 void COleClientItem::WriteItemFlat(CArchive &) 6301 void CRecentFileList::WriteList() 6302 int CPropertySection::WriteNameDictToStream(IStream *) 6303 void CArchive::WriteObject(CObject const *) 6304 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 6305 int CWinApp::WriteProfileInt(char const *,char const *,int) 6306 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 6307 void CArchive::WriteString(char const *) 6308 void CGopherFile::WriteString(char const *) 6309 void CInternetFile::WriteString(char const *) 6310 void CStdioFile::WriteString(char const *) 6311 void CEditView::WriteToArchive(CArchive &) 6312 int CProperty::WriteToStream(IStream *) 6313 int CPropertySection::WriteToStream(IStream *) 6314 int CPropertySet::WriteToStream(IStream *) 6315 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 6316 CDaoException::CDaoException() 6317 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 6318 CDaoIndexInfo::CDaoIndexInfo() 6319 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 6320 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 6321 CDaoRecordView::CDaoRecordView(unsigned int) 6322 CDaoRecordView::CDaoRecordView(char const *) 6323 CDaoRelationInfo::CDaoRelationInfo() 6324 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 6325 CDaoWorkspace::CDaoWorkspace() 6326 CDaoDatabase::~CDaoDatabase() 6327 CDaoException::~CDaoException() 6328 CDaoIndexInfo::~CDaoIndexInfo() 6329 CDaoQueryDef::~CDaoQueryDef() 6330 CDaoRecordset::~CDaoRecordset() 6331 CDaoRecordView::~CDaoRecordView() 6332 CDaoRelationInfo::~CDaoRelationInfo() 6333 CDaoTableDef::~CDaoTableDef() 6334 CDaoWorkspace::~CDaoWorkspace() 6335 void CDaoRecordset::AddNew() 6336 void AfxDaoCheck(long,char const *,char const *,int,int,int) 6337 _DAODBEngine * AfxDaoGetEngine() 6338 void AfxDaoInit() 6339 void AfxDaoTerm() 6340 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 6341 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 6342 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 6343 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6344 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 6345 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 6346 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 6347 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 6348 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6349 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 6350 void AfxThrowDaoException(int,long) 6351 void CDaoRecordset::AllocCache() 6352 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 6353 void CDaoRecordset::AllocDatabase() 6354 void AllocLongBinary(CLongBinary &,unsigned long) 6355 void CDaoQueryDef::Append() 6356 void CDaoTableDef::Append() 6357 void CDaoWorkspace::Append() 6358 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 6359 void CDaoWorkspace::BeginTrans() 6360 void CDaoRecordset::BindFields() 6361 void CDaoRecordset::BindParameters() 6362 void CDaoRecordset::BuildParameterList() 6363 void CDaoRecordset::BuildSelectList() 6364 void CDaoRecordset::BuildSQL() 6365 int CDaoRecordset::CanAppend()const 6366 int CDaoRecordset::CanBookmark() 6367 void CDaoRecordset::CancelUpdate() 6368 int CDaoRecordset::CanRestart() 6369 int CDaoRecordset::CanScroll()const 6370 int CDaoDatabase::CanTransact() 6371 int CDaoRecordset::CanTransact() 6372 int CDaoDatabase::CanUpdate() 6373 int CDaoQueryDef::CanUpdate() 6374 int CDaoRecordset::CanUpdate()const 6375 int CDaoTableDef::CanUpdate() 6376 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 6377 void CDaoRecordset::ClearFieldStatusFlags() 6378 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 6379 void CDaoDatabase::Close() 6380 void CDaoQueryDef::Close() 6381 void CDaoRecordset::Close() 6382 void CDaoTableDef::Close() 6383 void CDaoWorkspace::Close() 6384 void CDaoWorkspace::CommitTrans() 6385 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 6386 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 6387 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 6388 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 6389 void CDaoDatabase::Create(char const *,char const *,int) 6390 void CDaoQueryDef::Create(char const *,char const *) 6391 void CDaoTableDef::Create(char const *,long,char const *,char const *) 6392 void CDaoWorkspace::Create(char const *,char const *,char const *) 6393 void CDaoTableDef::CreateField(CDaoFieldInfo &) 6394 void CDaoTableDef::CreateField(char const *,short,long,long) 6395 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 6396 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 6397 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 6398 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6399 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6400 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6401 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 6402 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6403 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6404 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6405 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 6406 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 6407 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6408 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 6409 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 6410 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 6411 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 6412 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 6413 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 6414 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 6415 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6416 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 6417 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 6418 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 6419 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 6420 void CDaoRecordset::Delete() 6421 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 6422 void CDaoTableDef::DeleteField(int) 6423 void CDaoTableDef::DeleteField(char const *) 6424 void CDaoTableDef::DeleteIndex(int) 6425 void CDaoTableDef::DeleteIndex(char const *) 6426 void CDaoDatabase::DeleteQueryDef(char const *) 6427 void CDaoDatabase::DeleteRelation(char const *) 6428 void CDaoDatabase::DeleteTableDef(char const *) 6429 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 6430 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 6431 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 6432 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 6433 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 6434 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 6435 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 6436 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 6437 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 6438 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 6439 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 6440 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 6441 void CDaoRecordset::Edit() 6442 void CDaoDatabase::Execute(char const *,int) 6443 void CDaoQueryDef::Execute(int) 6444 void CDaoRecordset::FillCache(long *,COleVariant *) 6445 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 6446 void CDaoException::FillErrorInfo() 6447 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 6448 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 6449 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 6450 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 6451 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 6452 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 6453 int CDaoRecordset::Find(long,char const *) 6454 int CDaoRecordset::FindFirst(char const *) 6455 int CDaoRecordset::FindLast(char const *) 6456 int CDaoRecordset::FindNext(char const *) 6457 int CDaoRecordset::FindPrev(char const *) 6458 void CDaoRecordset::Fixup() 6459 void CDaoRecordset::FreeCache() 6460 long CDaoRecordset::GetAbsolutePosition() 6461 long CDaoTableDef::GetAttributes() 6462 COleVariant CDaoRecordset::GetBookmark() 6463 long CDaoRecordset::GetCacheSize() 6464 COleVariant CDaoRecordset::GetCacheStart() 6465 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 6466 ATL::CStringT > > CDaoDatabase::GetConnect() 6467 ATL::CStringT > > CDaoQueryDef::GetConnect() 6468 ATL::CStringT > > CDaoTableDef::GetConnect() 6469 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 6470 void CDaoRecordset::GetDataAndFixupNulls() 6471 short CDaoWorkspace::GetDatabaseCount() 6472 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 6473 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 6474 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 6475 ATL::COleDateTime CDaoRecordset::GetDateCreated() 6476 ATL::COleDateTime CDaoTableDef::GetDateCreated() 6477 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 6478 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 6479 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 6480 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 6481 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 6482 short CDaoRecordset::GetEditMode() 6483 short CDaoException::GetErrorCount() 6484 void CDaoException::GetErrorInfo(int) 6485 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *)const 6486 short CDaoQueryDef::GetFieldCount() 6487 short CDaoRecordset::GetFieldCount() 6488 short CDaoTableDef::GetFieldCount() 6489 int CDaoRecordset::GetFieldIndex(void *) 6490 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6491 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6492 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6493 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6494 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6495 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 6496 unsigned long CDaoRecordset::GetFieldLength(int) 6497 COleVariant CDaoRecordset::GetFieldValue(int) 6498 COleVariant CDaoRecordset::GetFieldValue(char const *) 6499 void CDaoRecordset::GetFieldValue(int,COleVariant &) 6500 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 6501 short CDaoRecordset::GetIndexCount() 6502 short CDaoTableDef::GetIndexCount() 6503 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6504 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 6505 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6506 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 6507 ATL::CStringT > > CDaoWorkspace::GetIniPath() 6508 int CDaoWorkspace::GetIsolateODBCTrans() 6509 COleVariant CDaoRecordset::GetLastModifiedBookmark() 6510 int CDaoRecordset::GetLockingMode() 6511 short CDaoWorkspace::GetLoginTimeout() 6512 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 6513 ATL::CStringT > > CDaoDatabase::GetName() 6514 ATL::CStringT > > CDaoQueryDef::GetName() 6515 ATL::CStringT > > CDaoRecordset::GetName() 6516 ATL::CStringT > > CDaoTableDef::GetName() 6517 ATL::CStringT > > CDaoWorkspace::GetName() 6518 short CDaoQueryDef::GetODBCTimeout() 6519 short CDaoQueryDef::GetParameterCount() 6520 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 6521 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 6522 COleVariant CDaoQueryDef::GetParamValue(int) 6523 COleVariant CDaoQueryDef::GetParamValue(char const *) 6524 COleVariant CDaoRecordset::GetParamValue(int) 6525 COleVariant CDaoRecordset::GetParamValue(char const *) 6526 float CDaoRecordset::GetPercentPosition() 6527 short CDaoDatabase::GetQueryDefCount() 6528 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 6529 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 6530 short CDaoDatabase::GetQueryTimeout() 6531 long CDaoRecordset::GetRecordCount() 6532 long CDaoTableDef::GetRecordCount() 6533 long CDaoDatabase::GetRecordsAffected() 6534 long CDaoQueryDef::GetRecordsAffected() 6535 short CDaoDatabase::GetRelationCount() 6536 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 6537 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 6538 int CDaoQueryDef::GetReturnsRecords() 6539 CRuntime* CDaoDatabase::GetRuntimeClass()const 6540 CRuntime* CDaoException::GetRuntimeClass()const 6541 CRuntime* CDaoQueryDef::GetRuntimeClass()const 6542 CRuntime* CDaoRecordset::GetRuntimeClass()const 6543 CRuntime* CDaoRecordView::GetRuntimeClass()const 6544 CRuntime* CDaoTableDef::GetRuntimeClass()const 6545 CRuntime* CDaoWorkspace::GetRuntimeClass()const 6546 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 6547 ATL::CStringT > > CDaoQueryDef::GetSQL() 6548 ATL::CStringT > > CDaoRecordset::GetSQL()const 6549 short CDaoDatabase::GetTableDefCount() 6550 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 6551 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 6552 CRuntime* CDaoDatabase::GetThisClass() 6553 CRuntime* CDaoException::GetThisClass() 6554 CRuntime* CDaoQueryDef::GetThisClass() 6555 CRuntime* CDaoRecordset::GetThisClass() 6556 CRuntime* CDaoRecordView::GetThisClass() 6557 CRuntime* CDaoTableDef::GetThisClass() 6558 CRuntime* CDaoWorkspace::GetThisClass() 6559 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 6560 short CDaoQueryDef::GetType() 6561 short CDaoRecordset::GetType() 6562 ATL::CStringT > > CDaoWorkspace::GetUserNameA() 6563 ATL::CStringT > > CDaoRecordset::GetValidationRule() 6564 ATL::CStringT > > CDaoTableDef::GetValidationRule() 6565 ATL::CStringT > > CDaoRecordset::GetValidationText() 6566 ATL::CStringT > > CDaoTableDef::GetValidationText() 6567 ATL::CStringT > > CDaoDatabase::GetVersion() 6568 ATL::CStringT > > CDaoWorkspace::GetVersion() 6569 short CDaoWorkspace::GetWorkspaceCount() 6570 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 6571 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 6572 void CDaoWorkspace::Idle(int) 6573 void CDaoWorkspace::InitDatabasesCollection() 6574 void CDaoException::InitErrorsCollection() 6575 void CDaoQueryDef::InitFieldsCollection() 6576 void CDaoRecordset::InitFieldsCollection() 6577 void CDaoTableDef::InitFieldsCollection() 6578 void CDaoWorkspace::InitializeEngine() 6579 void CDaoRecordset::InitIndexesCollection() 6580 void CDaoTableDef::InitIndexesCollection() 6581 void CDaoQueryDef::InitParametersCollection() 6582 void CDaoDatabase::InitQueryDefsCollection() 6583 void CDaoDatabase::InitRelationsCollection() 6584 void CDaoDatabase::InitTableDefsCollection() 6585 void CDaoDatabase::InitWorkspace() 6586 void CDaoWorkspace::InitWorkspacesCollection() 6587 int CDaoRecordset::IsBOF()const 6588 int CDaoRecordset::IsDeleted()const 6589 int CDaoRecordset::IsEOF()const 6590 int CDaoRecordset::IsFieldDirty(void *) 6591 int CDaoRecordset::IsFieldNull(void *) 6592 int CDaoRecordset::IsFieldNullable(void *) 6593 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 6594 int CDaoRecordset::IsFieldStatusNull(unsigned int) 6595 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 6596 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 6597 int CDaoRecordset::IsMatch() 6598 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6599 int CDaoRecordView::IsOnFirstRecord() 6600 int CDaoRecordView::IsOnLastRecord() 6601 int CDaoFieldExchange::IsValidOperation() 6602 void CDaoRecordset::LoadFields() 6603 void CDaoRecordset::MarkForAddNew() 6604 void CDaoRecordset::MarkForEdit() 6605 void CDaoRecordset::Move(long) 6606 void CDaoRecordset::MoveFirst() 6607 void CDaoRecordset::MoveLast() 6608 void CDaoRecordset::MoveNext() 6609 void CDaoRecordset::MovePrev() 6610 void CDaoRecordView::OnInitialUpdate() 6611 int CDaoRecordView::OnMove(unsigned int) 6612 void CDaoDatabase::Open(char const *,int,int,char const *) 6613 void CDaoQueryDef::Open(char const *) 6614 void CDaoRecordset::Open(int,char const *,int) 6615 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 6616 void CDaoRecordset::Open(CDaoTableDef *,int,int) 6617 void CDaoTableDef::Open(char const *) 6618 void CDaoWorkspace::Open(char const *) 6619 void CDaoTableDef::RefreshLink() 6620 void CDaoWorkspace::RepairDatabase(char const *) 6621 void CDaoRecordset::Requery() 6622 void CDaoWorkspace::Rollback() 6623 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 6624 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 6625 void CDaoRecordset::SetAbsolutePosition(long) 6626 void CDaoTableDef::SetAttributes(long) 6627 void CDaoRecordset::SetBookmark(COleVariant) 6628 void CDaoRecordset::SetCacheSize(long) 6629 void CDaoRecordset::SetCacheStart(COleVariant) 6630 void CDaoQueryDef::SetConnect(char const *) 6631 void CDaoTableDef::SetConnect(char const *) 6632 void CDaoRecordset::SetCurrentIndex(char const *) 6633 void CDaoRecordset::SetCursorAttributes() 6634 void CDaoWorkspace::SetDefaultPassword(char const *) 6635 void CDaoWorkspace::SetDefaultUser(char const *) 6636 void CDaoRecordset::SetDirtyFields() 6637 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6638 void CDaoRecordset::SetFieldDirty(void *,int) 6639 void CDaoRecordset::SetFieldNull(void *,int) 6640 void CDaoRecordset::SetFieldValue(int,char const *) 6641 void CDaoRecordset::SetFieldValue(char const *,char const *) 6642 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6643 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 6644 void CDaoRecordset::SetFieldValueNull(int) 6645 void CDaoRecordset::SetFieldValueNull(char const *) 6646 void CDaoWorkspace::SetIniPath(char const *) 6647 void CDaoWorkspace::SetIsolateODBCTrans(int) 6648 void CDaoRecordset::SetLockingMode(int) 6649 void CDaoWorkspace::SetLoginTimeout(short) 6650 void CDaoQueryDef::SetName(char const *) 6651 void CDaoTableDef::SetName(char const *) 6652 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6653 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6654 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6655 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6656 void CDaoQueryDef::SetODBCTimeout(short) 6657 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6658 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 6659 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6660 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 6661 void CDaoQueryDef::SetParamValueNull(int) 6662 void CDaoQueryDef::SetParamValueNull(char const *) 6663 void CDaoRecordset::SetParamValueNull(int) 6664 void CDaoRecordset::SetParamValueNull(char const *) 6665 void CDaoRecordset::SetPercentPosition(float) 6666 void CDaoDatabase::SetQueryTimeout(short) 6667 void CDaoQueryDef::SetReturnsRecords(int) 6668 void CDaoTableDef::SetSourceTableName(char const *) 6669 void CDaoQueryDef::SetSQL(char const *) 6670 void CDaoTableDef::SetValidationRule(char const *) 6671 void CDaoTableDef::SetValidationText(char const *) 6672 void CDaoRecordset::StoreFields() 6673 void CDaoRecordset::StripBrackets(char const *,char *) 6674 void CDaoDatabase::ThrowDaoException(int) 6675 void CDaoQueryDef::ThrowDaoException(int) 6676 void CDaoRecordset::ThrowDaoException(int) 6677 void CDaoTableDef::ThrowDaoException(int) 6678 void CDaoWorkspace::ThrowDaoException(int) 6679 void ThrowGetRowsDaoException(long) 6680 void CDaoRecordset::Update() 6681 CRuntimeconst CDaoDatabase::classCDaoDatabase 6682 CRuntimeconst CDaoException::classCDaoException 6683 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 6684 CRuntimeconst CDaoRecordset::classCDaoRecordset 6685 CRuntimeconst CDaoRecordView::classCDaoRecordView 6686 CRuntimeconst CDaoTableDef::classCDaoTableDef 6687 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 6688 CRuntimeconst CDatabase::classCDatabase 6689 CRuntimeconst CDBException::classCDBException 6690 CRuntimeconst CLongBinary::classCLongBinary 6691 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6692 CRuntimeconst CRecordset::classCRecordset 6693 CRuntimeconst CRecordView::classCRecordView 6697 _AFX_DAO_STATE * AfxGetDaoState() 6698 _AFX_DAO_STATE::~_AFX_DAO_STATE() 6699 _AFX_DAO_STATE::_AFX_DAO_STATE() 6700 int CDC::SetGraphicsMode(int) 6701 int CDC::SetWorldTransform(tagXFORM const *) 6702 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 6703 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 6704 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 6705 void AFX_MODULE_STATE::CreateActivationContext() 6706 CControlCreationInfo::CControlCreationInfo() 6707 CControlSiteFactoryMgr::CControlSiteFactoryMgr() 6708 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 6709 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 6710 COleControlSiteOrWnd::COleControlSiteOrWnd() 6711 CControlSiteFactoryMgr::~CControlSiteFactoryMgr() 6712 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 6713 int AfxRegisterSiteFactory(IControlSiteFactory *) 6714 int AfxUnregisterSiteFactory(IControlSiteFactory *) 6715 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 6716 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 6717 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 6718 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 6719 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 6720 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 6721 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 6722 COleControlSite * COccManager::CreateSite(COleControlContainer *) 6723 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 6724 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo() 6725 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo() 6726 int CControlCreationInfo::IsManaged()const 6727 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 6728 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 6729 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 6730 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 6731 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 6732 __POSITION * CWnd::FindSiteOrWndWithFocus()const 6733 ATL::CStringT > >::CStringT > >(char *) 6734 ATL::CStringT > >::CStringT > >(unsigned char *) 6735 ATL::CStringT > >::CStringT > >(wchar_t *) 6736 ATL::CStringT > >::CStringT > >(char *) 6737 ATL::CStringT > >::CStringT > >(unsigned char *) 6738 ATL::CStringT > >::CStringT > >(wchar_t *) 6739 int AfxIsValidAtom(unsigned short) 6740 int AfxIsValidAtom(char const *) 6741 COleVariant const & COleVariant::operator=(__int64) 6742 COleVariant const & COleVariant::operator=(unsigned __int64) 6743 void AfxUnregisterWndClasses() 6744 void CWinApp::DoEnableModeless(int) 6747 HWND__ * CPropertyPage::OnWizardFinishEx() 6749 int CWinApp::ShowAppMessageBox(CWinApp *,char const *,unsigned int,unsigned int) 6750 int CException::GetErrorMessage(char *,unsigned int,unsigned int *)const 6751 int AfxActivateActCtx(void *,unsigned long *) 6752 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 6753 void * AfxCreateActCtxW(tagACTCTXW const *) 6754 int AfxDeactivateActCtx(unsigned long,unsigned long) 6755 void AfxReleaseActCtx(void *) 6756 void COleClientItem::GetItemName(char *,unsigned int)const 6757 HINSTANCE__ * AfxLoadLibraryEx(char const *,void *,unsigned long) 6758 void CArchive::EnsureRead(void *,unsigned int) 6759 int AfxIsModuleDll() 6760 int AfxInitCurrentStateApp() 6761 void ATL::CStringT > >::FormatMessage(unsigned int,...) 6762 void ATL::CStringT > >::FormatMessage(char const *,...) 6763 HINSTANCE__ * AfxGetInstanceHandleHelper() 6764 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo() 6765 CFormView::~CFormView() ================================================ FILE: Bin/i386/mfc_sym/mfc80d.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 void DumpElements(CDumpContext &,COleVariant const *,int) 258 unsigned int HashKey(tagVARIANT const &) 259 unsigned int HashKey(wchar_t const *) 260 unsigned int HashKey(char const *) 261 unsigned int HashKey(ATL::CComBSTR) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 264 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 265 void SerializeElements(CArchive &,COleVariant *,int) 266 COleCurrency const & COleCurrency::operator/=(long) 267 void * operator new[](unsigned int) 268 void * operator new[](unsigned int,int,char const *,int) 269 void * operator new[](unsigned int,char const *,int) 270 void operator delete[](void *) 271 void operator delete[](void *,int,char const *,int) 272 void operator delete[](void *,char const *,int) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 275 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 277 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 278 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 279 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 280 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 281 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 282 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t,int) 284 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 285 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 287 ATL::CStringT > >::CStringT > >(char,int) 288 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 289 ATL::CStringT > >::CStringT > >(wchar_t const *) 290 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 291 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 292 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >(char const *) 294 ATL::CStringT > >::CStringT > >(char const *,int) 295 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(unsigned char const *) 298 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 299 ATL::CStringT > >::CStringT > >() 300 ATL::CStringT > >::CStringT > >(wchar_t,int) 301 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 302 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 304 ATL::CStringT > >::CStringT > >(char,int) 305 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(wchar_t const *) 307 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 308 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 309 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >(char const *) 311 ATL::CStringT > >::CStringT > >(char const *,int) 312 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 313 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 314 ATL::CStringT > >::CStringT > >(unsigned char const *) 315 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >() 317 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 318 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 319 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 320 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 321 _AFX_OLE_STATE::_AFX_OLE_STATE() 322 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 323 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 324 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 325 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 326 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 327 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 328 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 329 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 330 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 331 CAnimateCtrl::CAnimateCtrl() 332 CArchive::CArchive(CArchive const &) 333 CArchive::CArchive(CFile *,unsigned int,int,void *) 334 CArchiveException::CArchiveException(int,char const *) 335 CArchivePropExchange::CArchivePropExchange(CArchive &) 336 CArchiveStream::CArchiveStream(CArchive *) 337 CAsyncMonikerFile::CAsyncMonikerFile() 338 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 339 CAsyncSocket::CAsyncSocket() 340 CBitmap::CBitmap() 341 CBitmapButton::CBitmapButton() 342 CBlobProperty::CBlobProperty(void *) 343 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 344 CBrush::CBrush(int,unsigned long) 345 CBrush::CBrush(unsigned long) 346 CBrush::CBrush(CBitmap *) 347 CBrush::CBrush() 348 CButton::CButton() 349 CByteArray::CByteArray() 350 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 351 CCachedDataPathProperty::CCachedDataPathProperty(char const *,COleControl *) 352 CCheckListBox::CCheckListBox() 353 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 354 CClientDC::CClientDC(CWnd *) 355 CCmdTarget::CCmdTarget() 356 CCmdUI::CCmdUI() 357 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 358 CComboBox::CComboBox() 359 CComboBoxEx::CComboBoxEx() 360 CCommandLineInfo::CCommandLineInfo() 361 CCommonDialog::CCommonDialog(CWnd *) 362 CConnectionPoint::CConnectionPoint() 363 CControlBar::CControlBar() 364 CControlBarInfo::CControlBarInfo() 365 COleControl::CControlDataSource::CControlDataSource(COleControl *) 366 CControlFrameWnd::CControlFrameWnd(COleControl *) 367 CCreateContext::CCreateContext() 368 CCriticalSection::CCriticalSection() 369 CCtrlView::CCtrlView(char const *,unsigned long) 370 CDatabase::CDatabase() 371 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 372 CDataExchange::CDataExchange(CWnd *,int) 373 CDataPathProperty::CDataPathProperty(COleControl *) 374 CDataPathProperty::CDataPathProperty(char const *,COleControl *) 375 CDataSourceControl::CDataSourceControl(COleControlSite *) 376 CDateTimeCtrl::CDateTimeCtrl() 377 CDBException::CDBException(short) 378 CDBVariant::CDBVariant() 379 CDC::CDC() 380 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 381 CDHtmlControlSink::CDHtmlControlSink() 382 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 383 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 384 CDHtmlDialog::CDHtmlDialog() 385 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 386 CDialog::CDialog(unsigned int,CWnd *) 387 CDialog::CDialog(char const *,CWnd *) 388 CDialog::CDialog() 389 CDialogBar::CDialogBar() 390 CDialogTemplate::CDialogTemplate(void *) 391 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 392 CDocItem::CDocItem() 393 CDockBar::CDockBar(int) 394 CDockContext::CDockContext(CControlBar *) 395 CDockState::CDockState() 396 CDocManager::CDocManager() 397 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 398 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 399 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 400 CDocument::CDocument() 401 CDragListBox::CDragListBox() 402 CDumpContext::CDumpContext(CDumpContext const &) 403 CDumpContext::CDumpContext(CFile *) 404 CDWordArray::CDWordArray() 405 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 406 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 407 CEdit::CEdit() 408 CEditView::CEditView() 409 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 410 CEnumConnections::CEnumConnections(void const *,unsigned int) 411 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 412 CEnumFormatEtc::CEnumFormatEtc() 413 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 414 CException::CException(int) 415 CException::CException() 416 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 417 CFile::CFile(void *) 418 CFile::CFile(char const *,unsigned int) 419 CFile::CFile() 420 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long) 421 CFileException::CFileException(int,long,char const *) 422 CFileFind::CFileFind() 423 CFindReplaceDialog::CFindReplaceDialog() 424 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 425 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 426 CFont::CFont() 427 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 428 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 429 CFontHolder::CFontHolder(IPropertyNotifySink *) 430 CFormView::CFormView(unsigned int) 431 CFormView::CFormView(char const *) 432 CFrameWnd::CFrameWnd() 433 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 434 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 435 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 436 CGdiObject::CGdiObject() 437 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 438 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 439 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 440 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 441 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 442 CGopherLocator::CGopherLocator(char const *,unsigned long) 443 CGopherLocator::CGopherLocator(CGopherLocator const &) 444 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 445 CHeaderCtrl::CHeaderCtrl() 446 CHotKeyCtrl::CHotKeyCtrl() 447 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 448 CHtmlEditCtrl::CHtmlEditCtrl() 449 CHtmlEditDoc::CHtmlEditDoc() 450 CHtmlEditView::CHtmlEditView() 451 CHtmlView::CHtmlView() 452 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 453 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 454 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 455 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 456 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 457 CImageList::CImageList() 458 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 459 CInternetException::CInternetException(unsigned long) 460 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 461 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 462 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 463 CInvalidArgException::CInvalidArgException(int,unsigned int) 464 CInvalidArgException::CInvalidArgException() 465 CIPAddressCtrl::CIPAddressCtrl() 466 CListBox::CListBox() 467 CListCtrl::CListCtrl() 468 CListView::CListView() 469 CLongBinary::CLongBinary() 470 CMapPtrToPtr::CMapPtrToPtr(int) 471 CMapPtrToWord::CMapPtrToWord(int) 472 CMapStringToOb::CMapStringToOb(int) 473 CMapStringToPtr::CMapStringToPtr(int) 474 CMapStringToString::CMapStringToString(int) 475 CMapWordToOb::CMapWordToOb(int) 476 CMapWordToPtr::CMapWordToPtr(int) 477 CMDIChildWnd::CMDIChildWnd() 478 CMDIFrameWnd::CMDIFrameWnd() 479 CMemFile::CMemFile(unsigned int) 480 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 481 CMemoryException::CMemoryException(int,unsigned int) 482 CMemoryException::CMemoryException() 483 CMemoryState::CMemoryState() 484 CMenu::CMenu() 485 CMetaFileDC::CMetaFileDC() 486 CMiniDockFrameWnd::CMiniDockFrameWnd() 487 CMiniFrameWnd::CMiniFrameWnd() 488 CMonikerFile::CMonikerFile() 489 CMonthCalCtrl::CMonthCalCtrl() 490 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 491 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 492 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 493 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 494 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 495 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 496 CNotSupportedException::CNotSupportedException(int,unsigned int) 497 CNotSupportedException::CNotSupportedException() 498 CObArray::CObArray() 499 CObject::CObject() 500 CObList::CObList(int) 501 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 502 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 503 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 504 COleClientItem::COleClientItem(COleDocument *) 505 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 506 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 507 COleControl::COleControl() 508 COleControlContainer::COleControlContainer(CWnd *) 509 COleControlLock::COleControlLock(_GUID const &) 510 COleControlSite::COleControlSite(COleControlContainer *) 511 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 512 COleCurrency::COleCurrency(tagVARIANT const &) 513 COleCurrency::COleCurrency(COleCurrency const &) 514 COleCurrency::COleCurrency(long,long) 515 COleCurrency::COleCurrency(union tagCY) 516 COleCurrency::COleCurrency() 517 COleDataObject::COleDataObject() 518 COleDataSource::COleDataSource() 519 COleDialog::COleDialog(CWnd *) 520 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 521 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 522 COleDispatchDriver::COleDispatchDriver() 523 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 524 COleDocIPFrameWnd::COleDocIPFrameWnd() 525 COleDocObjectItem::COleDocObjectItem(COleDocument *) 526 COleDocument::COleDocument() 527 COleDropSource::COleDropSource() 528 COleDropTarget::COleDropTarget() 529 COleException::COleException() 530 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 531 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 532 COleIPFrameWnd::COleIPFrameWnd() 533 COleLinkingDoc::COleLinkingDoc() 534 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 535 COleMessageFilter::COleMessageFilter() 536 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 537 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 538 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 539 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 540 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 541 COleResizeBar::COleResizeBar() 542 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 543 COleSafeArray::COleSafeArray(tagVARIANT const &) 544 COleSafeArray::COleSafeArray(COleSafeArray const &) 545 COleSafeArray::COleSafeArray(COleVariant const &) 546 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 547 COleSafeArray::COleSafeArray(tagVARIANT const *) 548 COleSafeArray::COleSafeArray() 549 COleServerDoc::COleServerDoc() 550 COleServerItem::COleServerItem(COleServerDoc *,int) 551 COleStreamFile::COleStreamFile(IStream *) 552 COleTemplateServer::COleTemplateServer() 553 COleUILinkInfo::COleUILinkInfo(COleDocument *) 554 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 555 COleVariant::COleVariant(ATL::CStringT > > &) 556 COleVariant::COleVariant(tagVARIANT const &) 557 COleVariant::COleVariant(COleVariant const &) 558 COleVariant::COleVariant(CByteArray const &) 559 COleVariant::COleVariant(CLongBinary const &) 560 COleVariant::COleVariant(COleCurrency const &) 561 COleVariant::COleVariant(ATL::COleDateTime const &) 562 COleVariant::COleVariant(unsigned char) 563 COleVariant::COleVariant(short,unsigned short) 564 COleVariant::COleVariant(long,unsigned short) 565 COleVariant::COleVariant(float) 566 COleVariant::COleVariant(double) 567 COleVariant::COleVariant(char const *) 568 COleVariant::COleVariant(char const *,unsigned short) 569 COleVariant::COleVariant(_ITEMIDLIST const *) 570 COleVariant::COleVariant(tagVARIANT const *) 571 COleVariant::COleVariant() 572 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 573 CPaintDC::CPaintDC(CWnd *) 574 CPalette::CPalette() 575 CPen::CPen(int,int,unsigned long) 576 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 577 CPen::CPen() 578 CPictureHolder::CPictureHolder() 579 CPreviewDC::CPreviewDC() 580 CPreviewView::CPreviewView() 581 CPrintDialog::CPrintDialog(tagPDA &) 582 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 583 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 584 CPrintInfo::CPrintInfo() 585 CPrintPreviewState::CPrintPreviewState() 586 CProgressCtrl::CProgressCtrl() 587 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 588 CProperty::CProperty(unsigned long,void * const,unsigned long) 589 CProperty::CProperty() 590 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 591 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 592 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 593 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 594 CPropertyPage::CPropertyPage() 595 CPropertySection::CPropertySection(_GUID) 596 CPropertySection::CPropertySection() 597 CPropertySet::CPropertySet(_GUID) 598 CPropertySet::CPropertySet() 599 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 600 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 601 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 602 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 603 CPropertySheet::CPropertySheet() 604 CPropExchange::CPropExchange() 605 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 606 CPtrArray::CPtrArray() 607 CPtrList::CPtrList(int) 608 CReBar::CReBar() 609 CReBarCtrl::CReBarCtrl() 610 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 611 CRecordset::CRecordset(CDatabase *) 612 CRecordView::CRecordView(unsigned int) 613 CRecordView::CRecordView(char const *) 614 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 615 CRectTracker::CRectTracker() 616 CReObject::CReObject(CRichEditCntrItem *) 617 CReObject::CReObject() 618 CResetPropExchange::CResetPropExchange() 619 CResourceException::CResourceException(int,unsigned int) 620 CResourceException::CResourceException() 621 CRgn::CRgn() 622 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 623 CRichEditCtrl::CRichEditCtrl() 624 CRichEditDoc::CRichEditDoc() 625 CRichEditView::CRichEditView() 626 CScrollBar::CScrollBar() 627 CScrollView::CScrollView() 628 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 629 CSharedFile::CSharedFile(unsigned int,unsigned int) 630 CSimpleException::CSimpleException(int) 631 CSimpleException::CSimpleException() 632 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 633 CSingleLock::CSingleLock(CSyncObject *,int) 634 CSliderCtrl::CSliderCtrl() 635 CSocket::CSocket() 636 CSocketFile::CSocketFile(CSocket *,int) 637 CSocketWnd::CSocketWnd() 638 CSpinButtonCtrl::CSpinButtonCtrl() 639 CSplitterWnd::CSplitterWnd() 640 CStatic::CStatic() 641 CStatusBar::CStatusBar() 642 CStatusBarCtrl::CStatusBarCtrl() 643 CStdioFile::CStdioFile(_iobuf *) 644 CStdioFile::CStdioFile(char const *,unsigned int) 645 CStdioFile::CStdioFile() 646 CStringArray::CStringArray() 647 CStringList::CStringList(int) 648 CSyncObject::CSyncObject(char const *) 649 CTabCtrl::CTabCtrl() 650 CTestCmdUI::CTestCmdUI() 651 CThreadSlotData::CThreadSlotData() 652 CToolBar::CToolBar() 653 CToolBarCtrl::CToolBarCtrl() 654 CToolTipCtrl::CToolTipCtrl() 655 CTreeCtrl::CTreeCtrl() 656 CTreeView::CTreeView() 657 CUIntArray::CUIntArray() 658 CUserException::CUserException(int,unsigned int) 659 CUserException::CUserException() 660 CView::CView() 661 CWaitCursor::CWaitCursor() 662 CWinApp::CWinApp(char const *) 663 CWindowDC::CWindowDC(CWnd *) 664 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 665 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 666 CWinThread::CWinThread() 667 CWnd::CWnd(HWND__ *) 668 CWnd::CWnd() 669 CWordArray::CWordArray() 670 CPreviewView::PAGE_INFO::PAGE_INFO() 671 ATL::CSimpleStringT::~CSimpleStringT() 672 ATL::CSimpleStringT::~CSimpleStringT() 673 ATL::CStringT > >::~CStringT > >() 674 ATL::CStringT > >::~CStringT > >() 675 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 676 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 677 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 678 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 679 _AFX_OLE_STATE::~_AFX_OLE_STATE() 680 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 681 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 682 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 683 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 684 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 685 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 686 AFX_MODULE_STATE::~AFX_MODULE_STATE() 687 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 688 CAnimateCtrl::~CAnimateCtrl() 689 CArchive::~CArchive() 690 CArchiveException::~CArchiveException() 691 CAsyncMonikerFile::~CAsyncMonikerFile() 692 CAsyncSocket::~CAsyncSocket() 693 CBitmap::~CBitmap() 694 CBrush::~CBrush() 695 CButton::~CButton() 696 CByteArray::~CByteArray() 697 CClientDC::~CClientDC() 698 CCmdTarget::~CCmdTarget() 699 CComboBox::~CComboBox() 700 CComboBoxEx::~CComboBoxEx() 701 CCommandLineInfo::~CCommandLineInfo() 702 CConnectionPoint::~CConnectionPoint() 703 CControlBar::~CControlBar() 704 CCriticalSection::~CCriticalSection() 705 CCtrlView::~CCtrlView() 706 CDatabase::~CDatabase() 707 CDataSourceControl::~CDataSourceControl() 708 CDateTimeCtrl::~CDateTimeCtrl() 709 CDBException::~CDBException() 710 CDBVariant::~CDBVariant() 711 CDC::~CDC() 712 CDHtmlControlSink::~CDHtmlControlSink() 713 CDHtmlDialog::~CDHtmlDialog() 714 CDialog::~CDialog() 715 CDialogBar::~CDialogBar() 716 CDialogTemplate::~CDialogTemplate() 717 CDocItem::~CDocItem() 718 CDockBar::~CDockBar() 719 CDockContext::~CDockContext() 720 CDockState::~CDockState() 721 CDocManager::~CDocManager() 722 CDocObjectServer::~CDocObjectServer() 723 CDocObjectServerItem::~CDocObjectServerItem() 724 CDocTemplate::~CDocTemplate() 725 CDocument::~CDocument() 726 CDragListBox::~CDragListBox() 727 CDWordArray::~CDWordArray() 728 CDynLinkLibrary::~CDynLinkLibrary() 729 CEdit::~CEdit() 730 CEditView::~CEditView() 731 CEnumArray::~CEnumArray() 732 CEnumConnections::~CEnumConnections() 733 CEnumConnPoints::~CEnumConnPoints() 734 CEnumFormatEtc::~CEnumFormatEtc() 735 CEnumOleVerb::~CEnumOleVerb() 736 CEnumUnknown::~CEnumUnknown() 737 CEvent::~CEvent() 738 CException::~CException() 739 CFile::~CFile() 740 CFileDialog::~CFileDialog() 741 CFileException::~CFileException() 742 CFileFind::~CFileFind() 743 CFixedAlloc::~CFixedAlloc() 744 CFixedAllocNoSync::~CFixedAllocNoSync() 745 CFont::~CFont() 746 CFontHolder::~CFontHolder() 747 CFrameWnd::~CFrameWnd() 748 CFtpConnection::~CFtpConnection() 749 CFtpFileFind::~CFtpFileFind() 750 CGdiObject::~CGdiObject() 751 CGopherConnection::~CGopherConnection() 752 CGopherFile::~CGopherFile() 753 CGopherFileFind::~CGopherFileFind() 754 CGopherLocator::~CGopherLocator() 755 CHeaderCtrl::~CHeaderCtrl() 756 CHotKeyCtrl::~CHotKeyCtrl() 757 CHtmlControlSite::~CHtmlControlSite() 758 CHtmlEditCtrl::~CHtmlEditCtrl() 759 CHtmlEditDoc::~CHtmlEditDoc() 760 CHtmlEditView::~CHtmlEditView() 761 CHtmlView::~CHtmlView() 762 CHttpConnection::~CHttpConnection() 763 CHttpFile::~CHttpFile() 764 CImageList::~CImageList() 765 CInternetConnection::~CInternetConnection() 766 CInternetException::~CInternetException() 767 CInternetFile::~CInternetFile() 768 CInternetSession::~CInternetSession() 769 CInvalidArgException::~CInvalidArgException() 770 CIPAddressCtrl::~CIPAddressCtrl() 771 CListBox::~CListBox() 772 CListCtrl::~CListCtrl() 773 CLongBinary::~CLongBinary() 774 CMapPtrToPtr::~CMapPtrToPtr() 775 CMapPtrToWord::~CMapPtrToWord() 776 CMapStringToOb::~CMapStringToOb() 777 CMapStringToPtr::~CMapStringToPtr() 778 CMapStringToString::~CMapStringToString() 779 CMapWordToOb::~CMapWordToOb() 780 CMapWordToPtr::~CMapWordToPtr() 781 CMemFile::~CMemFile() 782 CMemoryException::~CMemoryException() 783 CMenu::~CMenu() 784 CMetaFileDC::~CMetaFileDC() 785 CMiniFrameWnd::~CMiniFrameWnd() 786 CMonikerFile::~CMonikerFile() 787 CMonthCalCtrl::~CMonthCalCtrl() 788 CMultiDocTemplate::~CMultiDocTemplate() 789 CMultiLock::~CMultiLock() 790 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 791 CMutex::~CMutex() 792 CNotSupportedException::~CNotSupportedException() 793 CObArray::~CObArray() 794 CObject::~CObject() 795 CObList::~CObList() 796 COleBusyDialog::~COleBusyDialog() 797 COleChangeIconDialog::~COleChangeIconDialog() 798 COleChangeSourceDialog::~COleChangeSourceDialog() 799 COleClientItem::~COleClientItem() 800 COleCntrFrameWnd::~COleCntrFrameWnd() 801 COleControl::~COleControl() 802 COleControlContainer::~COleControlContainer() 803 COleControlLock::~COleControlLock() 804 COleControlSite::~COleControlSite() 805 COleControlSiteOrWnd::~COleControlSiteOrWnd() 806 COleConvertDialog::~COleConvertDialog() 807 COleDataObject::~COleDataObject() 808 COleDataSource::~COleDataSource() 809 COleDispatchDriver::~COleDispatchDriver() 810 COleDispatchException::~COleDispatchException() 811 COleDocIPFrameWnd::~COleDocIPFrameWnd() 812 COleDocObjectItem::~COleDocObjectItem() 813 COleDocument::~COleDocument() 814 COleDropTarget::~COleDropTarget() 815 COleException::~COleException() 816 COleFrameHook::~COleFrameHook() 817 COleInsertDialog::~COleInsertDialog() 818 COleIPFrameWnd::~COleIPFrameWnd() 819 COleLinkingDoc::~COleLinkingDoc() 820 COleLinksDialog::~COleLinksDialog() 821 COleMessageFilter::~COleMessageFilter() 822 COleObjectFactory::~COleObjectFactory() 823 COlePasteSpecialDialog::~COlePasteSpecialDialog() 824 COlePropertyPage::~COlePropertyPage() 825 COleResizeBar::~COleResizeBar() 826 COleSafeArray::~COleSafeArray() 827 COleServerDoc::~COleServerDoc() 828 COleServerItem::~COleServerItem() 829 COleStreamFile::~COleStreamFile() 830 COleUpdateDialog::~COleUpdateDialog() 831 COleVariant::~COleVariant() 832 CPaintDC::~CPaintDC() 833 CPalette::~CPalette() 834 CPen::~CPen() 835 CPictureHolder::~CPictureHolder() 836 CPreviewDC::~CPreviewDC() 837 CPreviewView::~CPreviewView() 838 CPrintInfo::~CPrintInfo() 839 CProcessLocalObject::~CProcessLocalObject() 840 CProgressCtrl::~CProgressCtrl() 841 CPropbagPropExchange::~CPropbagPropExchange() 842 CProperty::~CProperty() 843 CPropertyPage::~CPropertyPage() 844 CPropertySection::~CPropertySection() 845 CPropertySet::~CPropertySet() 846 CPropertySheet::~CPropertySheet() 847 CPtrArray::~CPtrArray() 848 CPtrList::~CPtrList() 849 CRecentFileList::~CRecentFileList() 850 CRecordset::~CRecordset() 851 CRecordView::~CRecordView() 852 CRectTracker::~CRectTracker() 853 CReObject::~CReObject() 854 CResourceException::~CResourceException() 855 CRgn::~CRgn() 856 CRichEditCntrItem::~CRichEditCntrItem() 857 CRichEditCtrl::~CRichEditCtrl() 858 CScrollBar::~CScrollBar() 859 CScrollView::~CScrollView() 860 CSemaphore::~CSemaphore() 861 CSharedFile::~CSharedFile() 862 CSimpleException::~CSimpleException() 863 CSingleDocTemplate::~CSingleDocTemplate() 864 CSingleLock::~CSingleLock() 865 CSliderCtrl::~CSliderCtrl() 866 CSocket::~CSocket() 867 CSocketFile::~CSocketFile() 868 CSpinButtonCtrl::~CSpinButtonCtrl() 869 CSplitterWnd::~CSplitterWnd() 870 CStatic::~CStatic() 871 CStatusBar::~CStatusBar() 872 CStatusBarCtrl::~CStatusBarCtrl() 873 CStdioFile::~CStdioFile() 874 CStringArray::~CStringArray() 875 CStringList::~CStringList() 876 CSyncObject::~CSyncObject() 877 CTabCtrl::~CTabCtrl() 878 CThreadLocalObject::~CThreadLocalObject() 879 CThreadSlotData::~CThreadSlotData() 880 CToolBar::~CToolBar() 881 CToolBarCtrl::~CToolBarCtrl() 882 CToolTipCtrl::~CToolTipCtrl() 883 CTreeCtrl::~CTreeCtrl() 884 CUIntArray::~CUIntArray() 885 CUserException::~CUserException() 886 CView::~CView() 887 CWaitCursor::~CWaitCursor() 888 CWinApp::~CWinApp() 889 CWindowDC::~CWindowDC() 890 CWinThread::~CWinThread() 891 CWnd::~CWnd() 892 CWordArray::~CWordArray() 893 void * operator new(unsigned int) 894 void * operator new(unsigned int,int,char const *,int) 895 void * operator new(unsigned int,char const *,int) 896 void * CNoTrackObject::operator new(unsigned int) 897 void * CNoTrackObject::operator new(unsigned int,char const *,int) 898 void * CObject::operator new(unsigned int) 899 void * CObject::operator new(unsigned int,void *) 900 void * CObject::operator new(unsigned int,char const *,int) 901 void operator delete(void *) 902 void operator delete(void *,int,char const *,int) 903 void operator delete(void *,char const *,int) 904 void CException::operator delete(void *) 905 void CException::operator delete(void *,char const *,int) 906 void CNoTrackObject::operator delete(void *) 907 void CNoTrackObject::operator delete(void *,char const *,int) 908 void CObject::operator delete(void *) 909 void CObject::operator delete(void *,void *) 910 void CObject::operator delete(void *,char const *,int) 911 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 912 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 913 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 914 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 915 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 916 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 917 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 918 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 919 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 920 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 921 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 922 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 923 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 924 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 925 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 926 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 927 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 928 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 929 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 930 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 931 void CArchive::operator=(CArchive const &) 932 void CDumpContext::operator=(CDumpContext const &) 933 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 934 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 935 COleCurrency const & COleCurrency::operator=(union tagCY) 936 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 937 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 938 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 939 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 940 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 941 COleVariant const & COleVariant::operator=(tagVARIANT const &) 942 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 943 COleVariant const & COleVariant::operator=(COleVariant const &) 944 COleVariant const & COleVariant::operator=(CByteArray const &) 945 COleVariant const & COleVariant::operator=(CLongBinary const &) 946 COleVariant const & COleVariant::operator=(COleCurrency const &) 947 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 948 COleVariant const & COleVariant::operator=(unsigned char) 949 COleVariant const & COleVariant::operator=(short) 950 COleVariant const & COleVariant::operator=(long) 951 COleVariant const & COleVariant::operator=(float) 952 COleVariant const & COleVariant::operator=(double) 953 COleVariant const & COleVariant::operator=(tagVARIANT const *) 954 COleVariant const & COleVariant::operator=(char const * const) 955 CArchive & operator>>(CArchive &,CByteArray * &) 956 CArchive & operator>>(CArchive &,CDocItem * &) 957 CArchive & operator>>(CArchive &,CDockState * &) 958 CArchive & operator>>(CArchive &,CDWordArray * &) 959 CArchive & operator>>(CArchive &,CMapStringToOb * &) 960 CArchive & operator>>(CArchive &,CMapStringToString * &) 961 CArchive & operator>>(CArchive &,CMapWordToOb * &) 962 CArchive & operator>>(CArchive &,CObArray * &) 963 CArchive & operator>>(CArchive &,CObject * &) 964 CArchive & operator>>(CArchive &,CObList * &) 965 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 966 CArchive & operator>>(CArchive &,CStringArray * &) 967 CArchive & operator>>(CArchive &,CStringList * &) 968 CArchive & operator>>(CArchive &,CWordArray * &) 969 CArchive & operator>>(CArchive &,CObject const * &) 970 CArchive & operator>>(CArchive &,tagPOINT &) 971 CArchive & operator>>(CArchive &,tagRECT &) 972 CArchive & operator>>(CArchive &,tagSIZE &) 973 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 974 CArchive & operator>>(CArchive &,COleCurrency &) 975 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 976 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 977 CArchive & operator>>(CArchive &,COleVariant &) 978 CArchive & operator>>(CArchive &,ATL::CTime &) 979 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 980 CArchive & CArchive::operator>>(__int64 &) 981 CArchive & CArchive::operator>>(unsigned __int64 &) 982 CArchive & CArchive::operator>>(bool &) 983 CArchive & CArchive::operator>>(wchar_t &) 984 CArchive & CArchive::operator>>(char &) 985 CArchive & CArchive::operator>>(unsigned char &) 986 CArchive & CArchive::operator>>(short &) 987 CArchive & CArchive::operator>>(unsigned short &) 988 CArchive & CArchive::operator>>(int &) 989 CArchive & CArchive::operator>>(unsigned int &) 990 CArchive & CArchive::operator>>(long &) 991 CArchive & CArchive::operator>>(unsigned long &) 992 CArchive & CArchive::operator>>(float &) 993 CArchive & CArchive::operator>>(double &) 994 CArchive & operator<<(CArchive &,tagRECT const &) 995 CArchive & operator<<(CArchive &,CObject const *) 996 CArchive & operator<<(CArchive &,tagPOINT) 997 CArchive & operator<<(CArchive &,tagSIZE) 998 CArchive & operator<<(CArchive &,ATL::CComBSTR) 999 CArchive & operator<<(CArchive &,COleCurrency) 1000 CArchive & operator<<(CArchive &,ATL::COleDateTime) 1001 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 1002 CArchive & operator<<(CArchive &,COleVariant) 1003 CArchive & operator<<(CArchive &,ATL::CTime) 1004 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 1005 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 1006 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 1007 CDumpContext & operator<<(CDumpContext &,tagPOINT) 1008 CDumpContext & operator<<(CDumpContext &,tagSIZE) 1009 CDumpContext & operator<<(CDumpContext &,COleCurrency) 1010 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 1011 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 1012 CDumpContext & operator<<(CDumpContext &,COleVariant) 1013 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 1014 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 1015 CArchive & CArchive::operator<<(__int64) 1016 CArchive & CArchive::operator<<(unsigned __int64) 1017 CArchive & CArchive::operator<<(bool) 1018 CArchive & CArchive::operator<<(wchar_t) 1019 CArchive & CArchive::operator<<(char) 1020 CArchive & CArchive::operator<<(unsigned char) 1021 CArchive & CArchive::operator<<(short) 1022 CArchive & CArchive::operator<<(unsigned short) 1023 CArchive & CArchive::operator<<(int) 1024 CArchive & CArchive::operator<<(unsigned int) 1025 CArchive & CArchive::operator<<(long) 1026 CArchive & CArchive::operator<<(unsigned long) 1027 CArchive & CArchive::operator<<(float) 1028 CArchive & CArchive::operator<<(double) 1029 CDumpContext & CDumpContext::operator<<(__int64) 1030 CDumpContext & CDumpContext::operator<<(unsigned __int64) 1031 CDumpContext & CDumpContext::operator<<(CObject const &) 1032 CDumpContext & CDumpContext::operator<<(unsigned char) 1033 CDumpContext & CDumpContext::operator<<(unsigned short) 1034 CDumpContext & CDumpContext::operator<<(int) 1035 CDumpContext & CDumpContext::operator<<(unsigned int) 1036 CDumpContext & CDumpContext::operator<<(long) 1037 CDumpContext & CDumpContext::operator<<(unsigned long) 1038 CDumpContext & CDumpContext::operator<<(float) 1039 CDumpContext & CDumpContext::operator<<(double) 1040 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 1041 CDumpContext & CDumpContext::operator<<(HDC__ *) 1042 CDumpContext & CDumpContext::operator<<(HFONT__ *) 1043 CDumpContext & CDumpContext::operator<<(HMENU__ *) 1044 CDumpContext & CDumpContext::operator<<(HWND__ *) 1045 CDumpContext & CDumpContext::operator<<(wchar_t const *) 1046 CDumpContext & CDumpContext::operator<<(char const *) 1047 CDumpContext & CDumpContext::operator<<(CObject const *) 1048 CDumpContext & CDumpContext::operator<<(void const *) 1049 CHtmlStream & CHtmlStream::operator<<(CByteArray const &) 1050 CHtmlStream & CHtmlStream::operator<<(CLongBinary const &) 1051 CHttpServerContext & CHttpServerContext::operator<<(CByteArray const &) 1052 CHttpServerContext & CHttpServerContext::operator<<(CLongBinary const &) 1053 int CGdiObject::operator==(CGdiObject const &)const 1054 int CMenu::operator==(CMenu const &)const 1055 int COleCurrency::operator==(COleCurrency const &)const 1056 int COleSafeArray::operator==(tagSAFEARRAY const &)const 1057 int COleSafeArray::operator==(tagVARIANT const &)const 1058 int COleSafeArray::operator==(COleSafeArray const &)const 1059 int COleSafeArray::operator==(COleVariant const &)const 1060 int COleSafeArray::operator==(tagSAFEARRAY const *)const 1061 int COleSafeArray::operator==(tagVARIANT const *)const 1062 int COleVariant::operator==(tagVARIANT const &)const 1063 int COleVariant::operator==(tagVARIANT const *)const 1064 int CWnd::operator==(CWnd const &)const 1065 int CGdiObject::operator!=(CGdiObject const &)const 1066 int CMenu::operator!=(CMenu const &)const 1067 int COleCurrency::operator!=(COleCurrency const &)const 1068 int CWnd::operator!=(CWnd const &)const 1069 wchar_t ATL::CSimpleStringT::operator[](int)const 1070 char ATL::CSimpleStringT::operator[](int)const 1071 unsigned char & CByteArray::operator[](int) 1072 unsigned char CByteArray::operator[](int)const 1073 unsigned long & CDWordArray::operator[](int) 1074 unsigned long CDWordArray::operator[](int)const 1075 void * & CMapPtrToPtr::operator[](void *) 1076 unsigned short & CMapPtrToWord::operator[](void *) 1077 CObject * & CMapStringToOb::operator[](char const *) 1078 void * & CMapStringToPtr::operator[](char const *) 1079 ATL::CStringT > > & CMapStringToString::operator[](char const *) 1080 CObject * & CMapWordToOb::operator[](unsigned short) 1081 void * & CMapWordToPtr::operator[](unsigned short) 1082 CObject * & CObArray::operator[](int) 1083 CObject * CObArray::operator[](int)const 1084 void * & CPtrArray::operator[](int) 1085 void * CPtrArray::operator[](int)const 1086 ATL::CStringT > > & CStringArray::operator[](int) 1087 ATL::CStringT > > const & CStringArray::operator[](int)const 1088 unsigned int & CUIntArray::operator[](int) 1089 unsigned int CUIntArray::operator[](int)const 1090 unsigned short & CWordArray::operator[](int) 1091 unsigned short CWordArray::operator[](int)const 1092 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1093 ATL::CSimpleStringT::operator wchar_t const *()const 1094 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1095 ATL::CSimpleStringT::operator char const *()const 1096 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1097 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1098 CAsyncSocket::operator unsigned int()const 1099 CBitmap::operator HBITMAP__ *()const 1100 CBrush::operator HBRUSH__ *()const 1101 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 1102 CDC::operator HDC__ *()const 1103 CFile::operator void *()const 1104 CFont::operator HFONT__ *()const 1105 CGdiObject::operator void *()const 1106 CGopherLocator::operator char const *()const 1107 CImageList::operator _IMAGELIST *()const 1108 CInternetConnection::operator void *()const 1109 CInternetFile::operator void *()const 1110 CInternetSession::operator void *()const 1111 CMenu::operator HMENU__ *()const 1112 COleCurrency::operator union tagCY()const 1113 COleDispatchDriver::operator IDispatch *() 1114 COleSafeArray::operator tagVARIANT *() 1115 COleSafeArray::operator tagVARIANT const *()const 1116 COleVariant::operator tagVARIANT *() 1117 COleVariant::operator tagVARIANT const *()const 1118 CPalette::operator HPALETTE__ *()const 1119 CPen::operator HPEN__ *()const 1120 CRgn::operator HRGN__ *()const 1121 CSyncObject::operator void *()const 1122 CWinThread::operator void *()const 1123 CWnd::operator HWND__ *()const 1124 COleCurrency COleCurrency::operator*(long)const 1125 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1126 COleCurrency COleCurrency::operator-()const 1127 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1128 COleCurrency COleCurrency::operator/(long)const 1129 int COleCurrency::operator<(COleCurrency const &)const 1130 int COleCurrency::operator<=(COleCurrency const &)const 1131 int COleCurrency::operator>(COleCurrency const &)const 1132 int COleCurrency::operator>=(COleCurrency const &)const 1133 COleCurrency const & COleCurrency::operator*=(long) 1134 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1135 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1136 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1137 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1138 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 1139 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1140 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1141 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1142 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1143 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 1144 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1145 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1146 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1147 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1148 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1149 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1150 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1151 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1152 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1153 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1154 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1155 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1156 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1157 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1158 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1159 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1160 int _AfxAbortProc(HDC__ *,int) 1161 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1162 int const _afxDBCS 1163 int _AfxDeleteRegKey(char const *) 1164 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1165 int _AfxSocketInit(WSAData *) 1166 void CArchive::Abort() 1167 void CFile::Abort() 1168 void CInternetFile::Abort() 1169 void CMemFile::Abort() 1170 void CMirrorFile::Abort() 1171 void COleStreamFile::Abort() 1172 void CSocketFile::Abort() 1173 void CStdioFile::Abort() 1174 int CDC::AbortDoc() 1175 int CDC::AbortPath() 1176 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1177 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1178 long CWnd::accDoDefaultAction(tagVARIANT) 1179 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1180 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1181 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1182 void COleSafeArray::AccessData(void * *) 1183 long CWnd::accHitTest(long,long,tagVARIANT *) 1184 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1185 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1186 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1187 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1188 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1189 long CWnd::accSelect(long,tagVARIANT) 1190 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1191 void COleClientItem::Activate(long,CView *,tagMSG *) 1192 void CToolTipCtrl::Activate(int) 1193 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1194 void COleDocObjectItem::ActivateAndShow() 1195 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1196 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1197 void CDocObjectServer::ActivateDocObject() 1198 void COleServerDoc::ActivateDocObject() 1199 void CFrameWnd::ActivateFrame(int) 1200 void CMDIChildWnd::ActivateFrame(int) 1201 int COleServerDoc::ActivateInPlace() 1202 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1203 void CSplitterWnd::ActivateNext(int) 1204 void CWnd::ActivateTopParent() 1205 int CByteArray::Add(unsigned char) 1206 int CDWordArray::Add(unsigned long) 1207 int CImageList::Add(HICON__ *) 1208 int CImageList::Add(CBitmap *,CBitmap *) 1209 int CImageList::Add(CBitmap *,unsigned long) 1210 int CObArray::Add(CObject *) 1211 int CPtrArray::Add(void *) 1212 void CRecentFileList::Add(char const *) 1213 int CStringArray::Add(ATL::CStringT > > const &) 1214 int CStringArray::Add(char const *) 1215 int CUIntArray::Add(unsigned int) 1216 int CWordArray::Add(unsigned short) 1217 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 1218 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 1219 int CToolBarCtrl::AddBitmap(int,unsigned int) 1220 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1221 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1222 void COleClientItem::AddCachedData(COleDataSource *) 1223 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1224 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1225 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1226 void CFrameWnd::AddControlBar(CControlBar *) 1227 void CDocManager::AddDocTemplate(CDocTemplate *) 1228 void CWinApp::AddDocTemplate(CDocTemplate *) 1229 void CDocTemplate::AddDocument(CDocument *) 1230 void CMultiDocTemplate::AddDocument(CDocument *) 1231 void CSingleDocTemplate::AddDocument(CDocument *) 1232 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1233 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 1234 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1235 void COleControl::AddFrameLevelUI() 1236 void CFrameWnd::AddFrameWnd() 1237 __POSITION * CObList::AddHead(CObject *) 1238 void CObList::AddHead(CObList *) 1239 __POSITION * CPtrList::AddHead(void *) 1240 void CPtrList::AddHead(CPtrList *) 1241 void CSimpleList::AddHead(void *) 1242 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1243 __POSITION * CStringList::AddHead(char const *) 1244 void CStringList::AddHead(CStringList *) 1245 void COleDocument::AddItem(CDocItem *) 1246 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1247 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1248 void CRecordset::AddNew() 1249 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1250 void CPropertySheet::AddPage(CPropertyPage *) 1251 void CPropertySection::AddProperty(CProperty *) 1252 void CPropertySet::AddProperty(_GUID,CProperty *) 1253 unsigned long CArchiveStream::AddRef() 1254 unsigned long CBlobProperty::AddRef() 1255 unsigned long CBrowserControlSite::AddRef() 1256 unsigned long CDHtmlControlSink::AddRef() 1257 unsigned long CDHtmlElementEventSink::AddRef() 1258 unsigned long CDHtmlEventSink::AddRef() 1259 unsigned long CInnerUnknown::AddRef() 1260 unsigned long COleConnPtContainer::AddRef() 1261 unsigned long COleDispatchImpl::AddRef() 1262 unsigned long COleUILinkInfo::AddRef() 1263 unsigned long CPrintDialogEx::AddRef() 1264 unsigned long CWnd::XAccessible::AddRef() 1265 unsigned long CWnd::XAccessibleServer::AddRef() 1266 unsigned long COleClientItem::XAdviseSink::AddRef() 1267 unsigned long COleControlSite::XAmbientProps::AddRef() 1268 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1269 unsigned long COleObjectFactory::XClassFactory::AddRef() 1270 unsigned long CConnectionPoint::XConnPt::AddRef() 1271 unsigned long COleControl::XDataObject::AddRef() 1272 unsigned long COleDataSource::XDataObject::AddRef() 1273 unsigned long COleServerDoc::XDataObject::AddRef() 1274 unsigned long COleServerItem::XDataObject::AddRef() 1275 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef() 1276 unsigned long COleDropSource::XDropSource::AddRef() 1277 unsigned long COleDropTarget::XDropTarget::AddRef() 1278 unsigned long CEnumArray::XEnumVOID::AddRef() 1279 unsigned long COleControlSite::XEventSink::AddRef() 1280 unsigned long COleControl::XFontNotification::AddRef() 1281 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1282 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1283 unsigned long COleControl::XOleCache::AddRef() 1284 unsigned long COleClientItem::XOleClientSite::AddRef() 1285 unsigned long COleControlSite::XOleClientSite::AddRef() 1286 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1287 unsigned long COleFrameHook::XOleCommandTarget::AddRef() 1288 unsigned long COleControlContainer::XOleContainer::AddRef() 1289 unsigned long COleControl::XOleControl::AddRef() 1290 unsigned long COleControlSite::XOleControlSite::AddRef() 1291 unsigned long CDocObjectServer::XOleDocument::AddRef() 1292 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef() 1293 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1294 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1295 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1296 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1297 unsigned long COleControl::XOleInPlaceObject::AddRef() 1298 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1299 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1300 unsigned long COleClientItem::XOleIPSite::AddRef() 1301 unsigned long COleControlSite::XOleIPSite::AddRef() 1302 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1303 unsigned long CDocObjectServer::XOleObject::AddRef() 1304 unsigned long COleControl::XOleObject::AddRef() 1305 unsigned long COleServerDoc::XOleObject::AddRef() 1306 unsigned long COleServerItem::XOleObject::AddRef() 1307 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1308 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1309 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1310 unsigned long COleControl::XPersistMemory::AddRef() 1311 unsigned long COleControl::XPersistPropertyBag::AddRef() 1312 unsigned long COleControl::XPersistStorage::AddRef() 1313 unsigned long COleServerDoc::XPersistStorage::AddRef() 1314 unsigned long COleControl::XPersistStreamInit::AddRef() 1315 unsigned long COleControl::XPointerInactive::AddRef() 1316 unsigned long CDocObjectServer::XPrint::AddRef() 1317 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1318 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1319 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1320 unsigned long COleControl::XProvideClassInfo::AddRef() 1321 unsigned long COleControl::XQuickActivate::AddRef() 1322 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1323 unsigned long COleControlSite::XRowsetNotify::AddRef() 1324 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1325 unsigned long COleControl::XViewObject::AddRef() 1326 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1327 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1328 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1329 CPropertySection * CPropertySet::AddSection(_GUID) 1330 void CPropertySet::AddSection(CPropertySection *) 1331 void COlePasteSpecialDialog::AddStandardFormats(int) 1332 int CComboBox::AddString(char const *) 1333 int CComboBoxEx::AddString(char const *) 1334 int CListBox::AddString(char const *) 1335 int CToolBarCtrl::AddString(unsigned int) 1336 int CToolBarCtrl::AddStrings(char const *) 1337 __POSITION * CObList::AddTail(CObject *) 1338 void CObList::AddTail(CObList *) 1339 __POSITION * CPtrList::AddTail(void *) 1340 void CPtrList::AddTail(CPtrList *) 1341 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1342 __POSITION * CStringList::AddTail(char const *) 1343 void CStringList::AddTail(CStringList *) 1344 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1345 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1346 void CWinApp::AddToRecentFileList(char const *) 1347 void CDocument::AddView(CView *) 1348 void CMetaFileDC::AdjustCP(int) 1349 void CRichEditView::AdjustDialogPosition(CDialog *) 1350 void CRectTracker::AdjustRect(int,tagRECT *) 1351 void CTabCtrl::AdjustRect(int,tagRECT *) 1352 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1353 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1354 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1355 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1356 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1357 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1358 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1359 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1360 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1361 void AfxAbort() 1362 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1363 int AfxAssertFailedLine(char const *,int) 1364 void AfxAssertValidObject(CObject const *,char const *,int) 1365 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1366 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1367 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1368 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1369 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1370 void AfxCancelModes(HWND__ *) 1371 void AfxCheckError(long) 1372 int AfxCheckMemory() 1373 void AfxClassInit(CRuntime*) 1374 int AfxComparePath(char const *,char const *) 1375 int AfxCompareValueByRef(void *,void *,int) 1376 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1377 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1378 void AfxCopyValueByRef(void *,void *,long *,int) 1379 void AfxCoreInitModule() 1380 HDC__ * AfxCreateDC(void *,void *) 1381 int AfxCriticalInit() 1382 int AfxCriticalNewHandler(unsigned int) 1383 void AfxCriticalTerm() 1384 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1385 AUX_DATA afxData 1386 void AfxDeleteObject(void * *) 1387 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1388 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1389 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1390 int AfxDiagnosticInit() 1391 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1392 long AfxDllCanUnloadNow() 1393 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1394 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1395 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1396 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1397 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1398 CDumpContext afxDump 1399 void AfxDump(CObject const *) 1400 int AfxDumpMemoryLeaks() 1401 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1402 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1403 void AfxEnableControlContainer(COccManager *) 1404 int AfxEnableMemoryTracking(int) 1405 int AfxEndDeferRegisterClass(long) 1406 void AfxEndThread(unsigned int,int) 1407 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1408 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1409 void AfxFailMaxChars(CDataExchange *,int) 1410 void AfxFailRadio(CDataExchange *) 1411 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1412 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1413 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1414 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1415 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1416 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1417 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1418 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1419 int AfxFreeLibrary(HINSTANCE__ *) 1420 void AfxFreeMemoryDebug(void *,int) 1421 int AfxFullPath(char *,char const *) 1422 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1423 CWinApp * AfxGetApp() 1424 AFX_MODULE_STATE * AfxGetAppModuleState() 1425 char const * AfxGetAppName() 1426 long AfxGetClassIDFromString(char const *,_GUID *) 1427 tagMSG * AfxGetCurrentMessage() 1428 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1429 unsigned long AfxGetDllVersion() 1430 char const * AfxGetFacilityString(long) 1431 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1432 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1433 char const * AfxGetFullScodeString(long) 1434 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1435 void * AfxGetHENV() 1436 char const * AfxGetIIDString(_GUID const &) 1437 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1438 HINSTANCE__ * AfxGetInstanceHandle() 1439 unsigned long AfxGetInternetHandleType(void *) 1440 CWnd * AfxGetMainWnd() 1441 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1442 AFX_MODULE_STATE * AfxGetModuleState() 1443 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1444 int (__cdecl*AfxGetNewHandler())(unsigned int) 1445 HWND__ * AfxGetParentOwner(HWND__ *) 1446 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1447 HINSTANCE__ * AfxGetResourceHandle() 1448 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1449 void AfxGetRoot(char const *,ATL::CStringT > > &) 1450 char const * AfxGetScodeRangeString(long) 1451 char const * AfxGetScodeString(long) 1452 char const * AfxGetSeverityString(long) 1453 ATL::IAtlStringMgr * AfxGetStringManager() 1454 CWinThread * AfxGetThread() 1455 _AFX_THREAD_STATE * AfxGetThreadState() 1456 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1457 void AfxGlobalFree(void *) 1458 int AfxHelpEnabled() 1459 void AfxHookWindowCreate(CWnd *) 1460 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1461 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1462 void AfxInitLocalData(HINSTANCE__ *) 1463 int AfxInitRichEdit() 1464 int AfxInitRichEdit2() 1465 void AfxInitThread() 1466 int AfxInternalIsIdleMessage(tagMSG *) 1467 int AfxInternalPreTranslateMessage(tagMSG *) 1468 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1469 int AfxInternalPumpMessage() 1470 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1471 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1472 int AfxIsDescendant(HWND__ *,HWND__ *) 1473 int AfxIsIdleMessage(tagMSG *) 1474 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1475 int AfxIsValidAddress(void const *,unsigned int,int) 1476 int AfxIsValidString(wchar_t const *,int) 1477 int AfxIsValidString(char const *,int) 1478 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1479 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1480 HINSTANCE__ * AfxLoadLibrary(char const *) 1481 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1482 int AfxLoadString(unsigned int,char *,unsigned int) 1483 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1484 void AfxLockGlobals(int) 1485 void AfxLockTempMaps() 1486 CHandleMap * afxMapHDC(int) 1487 CHandleMap * afxMapHGDIOBJ(int) 1488 CHandleMap * afxMapHIMAGELIST(int) 1489 CHandleMap * afxMapHMENU(int) 1490 CHandleMap * afxMapHWND(int) 1491 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1492 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1493 int AfxMessageBox(char const *,unsigned int,unsigned int) 1494 int AfxNewHandler(unsigned int) 1495 int AfxOleCanExitApp() 1496 COleMessageFilter * AfxOleGetMessageFilter() 1497 int AfxOleGetUserCtrl() 1498 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1499 int AfxOleInit() 1500 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1501 void AfxOleLockApp() 1502 int AfxOleLockControl(_GUID const &) 1503 int AfxOleLockControl(char const *) 1504 void AfxOleOnReleaseAllObjects() 1505 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1506 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1507 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1508 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1509 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1510 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1511 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1512 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1513 void AfxOleSetUserCtrl(int) 1514 void AfxOleTerm(int) 1515 void AfxOleTermOrFreeLib(int,int) 1516 void AfxOleUnlockAllControls() 1517 void AfxOleUnlockApp() 1518 int AfxOleUnlockControl(_GUID const &) 1519 int AfxOleUnlockControl(char const *) 1520 int AfxOleUnregisterClass(_GUID const &,char const *) 1521 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1522 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1523 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1524 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1525 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1526 void AfxPostQuitMessage(int) 1527 int AfxPreTranslateMessage(tagMSG *) 1528 long AfxProcessWndProcException(CException *,tagMSG const *) 1529 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1530 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1531 int AfxPumpMessage() 1532 unsigned int AfxReadStringLength(CArchive &,int &) 1533 int AfxRegisterClass(tagWNDCLASSA *) 1534 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1535 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1536 void AfxResetMsgCache() 1537 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1538 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1539 void AfxSafeArrayInit(COleSafeArray *) 1540 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1541 void AfxSetAllocStop(long) 1542 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1543 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1544 void AfxSetResourceHandle(HINSTANCE__ *) 1545 void AfxSetWindowText(HWND__ *,char const *) 1546 void AfxSocketTerm() 1547 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1548 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1549 void AfxStoreField(CRecordset &,unsigned int,void *) 1550 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1551 wchar_t * AfxTaskStringA2W(char const *) 1552 char * AfxTaskStringW2A(wchar_t const *) 1553 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1554 void AfxTermLocalData(HINSTANCE__ *,int) 1555 void AfxTermThread(HINSTANCE__ *) 1556 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1557 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1558 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1559 void AfxThrowArchiveException(int,char const *) 1560 void AfxThrowDBException(short,CDatabase *,void *) 1561 void AfxThrowFileException(int,long,char const *) 1562 void AfxThrowInternetException(unsigned long,unsigned long) 1563 void AfxThrowInvalidArgException() 1564 void AfxThrowLastCleanup() 1565 void AfxThrowMemoryException() 1566 void AfxThrowNotSupportedException() 1567 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1568 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1569 void AfxThrowOleException(long) 1570 void AfxThrowResourceException() 1571 void AfxThrowUserException() 1572 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1573 void AfxTlsAddRef() 1574 void AfxTlsRelease() 1575 void AfxTrace(char const *,...) 1576 int afxTraceEnabled 1577 unsigned int afxTraceFlags 1578 void AfxTrackerTerm() 1579 void AfxTryCleanup() 1580 int AfxUnhookWindowCreate() 1581 void AfxUnlockGlobals(int) 1582 int AfxUnlockTempMaps(int) 1583 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1584 void AfxVariantInit(tagVARIANT *) 1585 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1586 char * AfxW2AHelper(char *,wchar_t const *,int) 1587 void AfxWingdixTerm() 1588 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1589 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1590 void AfxWinTerm() 1591 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1592 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1593 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1594 void AfxWriteStringLength(CArchive &,unsigned int,int) 1595 void * CFixedAlloc::Alloc() 1596 void * CFixedAllocNoSync::Alloc() 1597 unsigned char * CMemFile::Alloc(unsigned long) 1598 unsigned char * CSharedFile::Alloc(unsigned long) 1599 void CRecordset::AllocAndCacheFieldInfo() 1600 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1601 void CDatabase::AllocConnect(unsigned long) 1602 void COleSafeArray::AllocData() 1603 void CRecordset::AllocDataCache() 1604 void COleSafeArray::AllocDescriptor(unsigned long) 1605 int CControlBar::AllocElements(int,int) 1606 int CStatusBar::AllocElements(int,int) 1607 int CRecordset::AllocHstmt() 1608 void CPropertyPage::AllocPSP(unsigned long) 1609 void CRecordset::AllocRowset() 1610 int CThreadSlotData::AllocSlot() 1611 void CRecordset::AllocStatusArrays() 1612 wchar_t * ATL::CStringT > >::AllocSysString()const 1613 wchar_t * ATL::CStringT > >::AllocSysString()const 1614 void * CProperty::AllocValue(unsigned long) 1615 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1616 short COleControl::AmbientAppearance() 1617 unsigned long COleControl::AmbientBackColor() 1618 ATL::CStringT > > COleControl::AmbientDisplayName() 1619 IFontDisp * COleControl::AmbientFont() 1620 unsigned long COleControl::AmbientForeColor() 1621 unsigned long COleControl::AmbientLocaleID() 1622 ATL::CStringT > > COleControl::AmbientScaleUnits() 1623 int COleControl::AmbientShowGrabHandles() 1624 int COleControl::AmbientShowHatching() 1625 short COleControl::AmbientTextAlign() 1626 int COleControl::AmbientUIDead() 1627 int COleControl::AmbientUserMode() 1628 int CDC::AngleArc(int,int,int,float,float) 1629 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1630 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1631 void ATL::CSimpleStringT::Append(wchar_t const *) 1632 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1633 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1634 void ATL::CSimpleStringT::Append(char const *) 1635 void ATL::CSimpleStringT::Append(char const *,int) 1636 int CByteArray::Append(CByteArray const &) 1637 int CDWordArray::Append(CDWordArray const &) 1638 int CObArray::Append(CObArray const &) 1639 int CPtrArray::Append(CPtrArray const &) 1640 int CStringArray::Append(CStringArray const &) 1641 int CUIntArray::Append(CUIntArray const &) 1642 int CWordArray::Append(CWordArray const &) 1643 void ATL::CSimpleStringT::AppendChar(wchar_t) 1644 void ATL::CSimpleStringT::AppendChar(char) 1645 void CRecordset::AppendFilterAndSortSQL() 1646 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1647 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1648 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1649 void ATL::CStringT > >::AppendFormat(char const *,...) 1650 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1651 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1652 int CMenu::AppendMenuA(unsigned int,unsigned int,char const *) 1653 int CMenu::AppendMenuA(unsigned int,unsigned int,CBitmap const *) 1654 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1655 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1656 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1657 long COlePropertyPage::XPropertyPage::Apply() 1658 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1659 int COleDocument::ApplyPrintDevice(tagPDA const *) 1660 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1661 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1662 int CDC::Arc(int,int,int,int,int,int,int,int) 1663 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1664 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1665 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1666 int CListCtrl::Arrange(unsigned int) 1667 unsigned int CWnd::ArrangeIconicWindows() 1668 void CAsyncMonikerFile::AssertValid()const 1669 void CAsyncSocket::AssertValid()const 1670 void CBitmapButton::AssertValid()const 1671 void CByteArray::AssertValid()const 1672 void CCachedDataPathProperty::AssertValid()const 1673 void CClientDC::AssertValid()const 1674 void CCmdTarget::AssertValid()const 1675 void CControlBar::AssertValid()const 1676 void CCtrlView::AssertValid()const 1677 void CDatabase::AssertValid()const 1678 void CDataPathProperty::AssertValid()const 1679 void CDC::AssertValid()const 1680 void CDialog::AssertValid()const 1681 void CDocItem::AssertValid()const 1682 void CDockBar::AssertValid()const 1683 void CDocManager::AssertValid()const 1684 void CDocObjectServer::AssertValid()const 1685 void CDocObjectServerItem::AssertValid()const 1686 void CDocTemplate::AssertValid()const 1687 void CDocument::AssertValid()const 1688 void CDWordArray::AssertValid()const 1689 void CDynLinkLibrary::AssertValid()const 1690 void CEditView::AssertValid()const 1691 void CFile::AssertValid()const 1692 void CFileFind::AssertValid()const 1693 void CFormView::AssertValid()const 1694 void CFrameWnd::AssertValid()const 1695 void CFtpConnection::AssertValid()const 1696 void CFtpFileFind::AssertValid()const 1697 void CGdiObject::AssertValid()const 1698 void CGopherConnection::AssertValid()const 1699 void CGopherFile::AssertValid()const 1700 void CGopherFileFind::AssertValid()const 1701 void CHtmlEditDoc::AssertValid()const 1702 void CHtmlEditView::AssertValid()const 1703 void CHtmlView::AssertValid()const 1704 void CHttpConnection::AssertValid()const 1705 void CHttpFile::AssertValid()const 1706 void CImageList::AssertValid()const 1707 void CInternetConnection::AssertValid()const 1708 void CInternetFile::AssertValid()const 1709 void CLongBinary::AssertValid()const 1710 void CMapPtrToPtr::AssertValid()const 1711 void CMapPtrToWord::AssertValid()const 1712 void CMapStringToOb::AssertValid()const 1713 void CMapStringToPtr::AssertValid()const 1714 void CMapStringToString::AssertValid()const 1715 void CMapWordToOb::AssertValid()const 1716 void CMapWordToPtr::AssertValid()const 1717 void CMDIChildWnd::AssertValid()const 1718 void CMDIFrameWnd::AssertValid()const 1719 void CMemFile::AssertValid()const 1720 void CMenu::AssertValid()const 1721 void CMonikerFile::AssertValid()const 1722 void CMultiDocTemplate::AssertValid()const 1723 void CObArray::AssertValid()const 1724 void CObject::AssertValid()const 1725 void CObList::AssertValid()const 1726 void COleChangeSourceDialog::AssertValid()const 1727 void COleClientItem::AssertValid()const 1728 void COleCntrFrameWnd::AssertValid()const 1729 void COleControl::AssertValid()const 1730 void COleDataSource::AssertValid()const 1731 void COleDocIPFrameWnd::AssertValid()const 1732 void COleDocument::AssertValid()const 1733 void COleDropTarget::AssertValid()const 1734 void COleIPFrameWnd::AssertValid()const 1735 void COleLinkingDoc::AssertValid()const 1736 void COleLinksDialog::AssertValid()const 1737 void COleMessageFilter::AssertValid()const 1738 void COleObjectFactory::AssertValid()const 1739 void COlePasteSpecialDialog::AssertValid()const 1740 void COlePropertiesDialog::AssertValid()const 1741 void COleServerDoc::AssertValid()const 1742 void COleServerItem::AssertValid()const 1743 void COleStreamFile::AssertValid()const 1744 void CPaintDC::AssertValid()const 1745 void CPreviewDC::AssertValid()const 1746 void CPreviewView::AssertValid()const 1747 void CPropertyPage::AssertValid()const 1748 void CPropertySheet::AssertValid()const 1749 void CPtrArray::AssertValid()const 1750 void CPtrList::AssertValid()const 1751 void CRecordset::AssertValid()const 1752 void CRecordView::AssertValid()const 1753 void CRichEditCntrItem::AssertValid()const 1754 void CRichEditDoc::AssertValid()const 1755 void CRichEditView::AssertValid()const 1756 void CScrollView::AssertValid()const 1757 void CSingleDocTemplate::AssertValid()const 1758 void CSocket::AssertValid()const 1759 void CSocketFile::AssertValid()const 1760 void CSplitterWnd::AssertValid()const 1761 void CStatusBar::AssertValid()const 1762 void CStringArray::AssertValid()const 1763 void CStringList::AssertValid()const 1764 void CSyncObject::AssertValid()const 1765 void CToolBar::AssertValid()const 1766 void CUIntArray::AssertValid()const 1767 void CView::AssertValid()const 1768 void CWinApp::AssertValid()const 1769 void CWindowDC::AssertValid()const 1770 void CWinThread::AssertValid()const 1771 void CWnd::AssertValid()const 1772 void CWordArray::AssertValid()const 1773 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1774 int CAsyncSocket::AsyncSelect(long) 1775 long ATL::AtlIAccessibleGetIDsOfNamesHelper(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 1776 long ATL::AtlIAccessibleInvokeHelper(IAccessible *,long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1777 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1778 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1779 int CAsyncSocket::Attach(unsigned int,long) 1780 int CDC::Attach(HDC__ *) 1781 int CGdiObject::Attach(void *) 1782 int CImageList::Attach(_IMAGELIST *) 1783 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1784 int CMenu::Attach(HMENU__ *) 1785 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1786 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1787 void COleDataObject::Attach(IDataObject *,int) 1788 void COleSafeArray::Attach(tagVARIANT &) 1789 void COleStreamFile::Attach(IStream *) 1790 void COleVariant::Attach(tagVARIANT &) 1791 int CSocket::Attach(unsigned int) 1792 int CWnd::Attach(HWND__ *) 1793 int COleDataObject::AttachClipboard() 1794 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1795 void CWnd::AttachControlSite(CHandleMap *) 1796 void CWnd::AttachControlSite(CWnd *,unsigned int) 1797 void COleClientItem::AttachDataObject(COleDataObject &)const 1798 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1799 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1800 CPrintDialog * CPrintDialog::AttachOnSetup() 1801 void COleControlSite::AttachWindow() 1802 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1803 void CToolBarCtrl::AutoSize() 1804 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1805 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1806 void COleMessageFilter::BeginBusyState() 1807 void COleLinkingDoc::BeginDeferErrors() 1808 int CDragListBox::BeginDrag(CPoint) 1809 int CImageList::BeginDrag(int,CPoint) 1810 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1811 void COleDataObject::BeginEnumFormats() 1812 void CFrameWnd::BeginModalState() 1813 void CWnd::BeginModalState() 1814 CDC * CWnd::BeginPaint(tagPAINT*) 1815 int CDC::BeginPath() 1816 int CDatabase::BeginTrans() 1817 void CCmdTarget::BeginWaitCursor() 1818 int CAsyncSocket::Bind(unsigned int,char const *) 1819 int CAsyncSocket::Bind(sockaddr const *,int) 1820 void CDataSourceControl::BindColumns() 1821 void COccManager::BindControls(CWnd *) 1822 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1823 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1824 void CRecordset::BindFieldsForUpdate() 1825 unsigned int CRecordset::BindFieldsToColumns() 1826 void CDatabase::BindParameters(void *) 1827 unsigned int CRecordset::BindParams(void *) 1828 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1829 void CDataSourceControl::BindProp(COleControlSite *,int) 1830 void COleControlSite::BindProperty(long,CWnd *) 1831 void CWnd::BindProperty(long,CWnd *) 1832 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1833 void COleControl::BoundPropertyChanged(long) 1834 int COleControl::BoundPropertyRequestEdit(long) 1835 void CFrameWnd::BringToTop(int) 1836 void CWnd::BringWindowToTop() 1837 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1838 void CDBException::BuildErrorString(CDatabase *,void *,int) 1839 void CPropertySheet::BuildPropPageArray() 1840 void CRecordset::BuildSelectSQL() 1841 int COleControl::BuildSharedMenu() 1842 int COleDocIPFrameWnd::BuildSharedMenu() 1843 int COleIPFrameWnd::BuildSharedMenu() 1844 void CRecordset::BuildSQL(char const *) 1845 void CRecordset::BuildUpdateSQL() 1846 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1847 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1848 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1849 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1850 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1851 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1852 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1853 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1854 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1855 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1856 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1857 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1858 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1859 CSize CControlBar::CalcFixedLayout(int,int) 1860 CSize CDialogBar::CalcFixedLayout(int,int) 1861 CSize CDockBar::CalcFixedLayout(int,int) 1862 CSize CReBar::CalcFixedLayout(int,int) 1863 CSize CStatusBar::CalcFixedLayout(int,int) 1864 CSize CToolBar::CalcFixedLayout(int,int) 1865 void CControlBar::CalcInsideRect(CRect &,int)const 1866 void CStatusBar::CalcInsideRect(CRect &,int)const 1867 CSize CToolBar::CalcLayout(unsigned long,int) 1868 int CCheckListBox::CalcMinimumItemHeight() 1869 CSize CPreviewView::CalcPageDisplaySize() 1870 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1871 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1872 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1873 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1874 void CView::CalcWindowRect(tagRECT *,unsigned int) 1875 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1876 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1877 int CDHtmlDialog::CanAccessExternal() 1878 int COleClientItem::CanActivate() 1879 int CRichEditCntrItem::CanActivate() 1880 int CSplitterWnd::CanActivateNext(int) 1881 int CRecordset::CanAppend()const 1882 int CRecordset::CanBookmark()const 1883 void CDatabase::Cancel() 1884 void CRecordset::Cancel() 1885 void CSocket::CancelBlockingCall() 1886 void CDragListBox::CancelDrag(CPoint) 1887 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1888 long COleUILinkInfo::CancelLink(unsigned long) 1889 void CDockContext::CancelLoop() 1890 void CPropertyPage::CancelToClose() 1891 void CWnd::CancelToolTips(int) 1892 void CRecordset::CancelUpdate() 1893 int CDocument::CanCloseFrame(CFrameWnd *) 1894 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1895 int COleClientItem::CanCreateFromData(COleDataObject const *) 1896 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1897 unsigned long CDockContext::CanDock() 1898 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1899 int CFrameWnd::CanEnterHelpMode() 1900 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1901 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1902 int COleClientItem::CanPaste() 1903 int CRichEditCtrl::CanPaste(unsigned int)const 1904 int CRichEditView::CanPaste()const 1905 int COleClientItem::CanPasteLink() 1906 int CRichEditCtrl::CanRedo()const 1907 int CRecordset::CanRestart()const 1908 int CRecordset::CanScroll()const 1909 int CDatabase::CanTransact()const 1910 int CRecordset::CanTransact()const 1911 int CEdit::CanUndo()const 1912 int CRichEditCtrl::CanUndo()const 1913 int CDatabase::CanUpdate()const 1914 int CRecordset::CanUpdate()const 1915 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1916 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1917 void CScrollView::CenterOnPoint(CPoint) 1918 void CWnd::CenterWindow(CWnd *) 1919 int CWnd::ChangeClipboardChain(HWND__ *) 1920 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1921 int CEdit::CharFromPos(CPoint)const 1922 int CRichEditCtrl::CharFromPos(CPoint)const 1923 int CListBox::CharToItem(unsigned int,unsigned int) 1924 void ATL::CStringT > >::CharToOemA() 1925 int CDatabase::Check(short)const 1926 int CRecordset::Check(short)const 1927 int CDialog::CheckAutoCenter() 1928 int CWnd::CheckAutoCenter() 1929 int CToolBarCtrl::CheckButton(int,int) 1930 void CArchive::CheckCount() 1931 void COleControlContainer::CheckDlgButton(int,unsigned int) 1932 void CWnd::CheckDlgButton(int,unsigned int) 1933 int CCheckListBox::CheckFromPoint(CPoint,int &) 1934 void COleClientItem::CheckGeneral(long) 1935 int CDatabase::CheckHstmt(short,void *)const 1936 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1937 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1938 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1939 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1940 void CMemoryState::Checkpoint() 1941 void COleControlContainer::CheckRadioButton(int,int,int) 1942 void CWnd::CheckRadioButton(int,int,int) 1943 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1944 void CRecordset::CheckRowsetError(short) 1945 void CScrollView::CheckScrollBars(int &,int &)const 1946 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1947 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1948 int CDC::Chord(int,int,int,int,int,int,int,int) 1949 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1950 void CPropertyPage::Cleanup() 1951 void COlePropertyPage::CleanupObjectArray() 1952 void CComboBox::Clear() 1953 void CDBVariant::Clear() 1954 void CDockState::Clear() 1955 void CEdit::Clear() 1956 void COleSafeArray::Clear() 1957 void COleVariant::Clear() 1958 void CRichEditCtrl::Clear() 1959 void CIPAddressCtrl::ClearAddress() 1960 int CHeaderCtrl::ClearAllFilters() 1961 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1962 void CRecordset::ClearFieldStatus() 1963 int CHeaderCtrl::ClearFilter(int) 1964 void CRecordset::ClearNullFieldStatus(unsigned long) 1965 void CRecordset::ClearNullParamStatus(unsigned long) 1966 void CSliderCtrl::ClearSel(int) 1967 void CSliderCtrl::ClearTics(int) 1968 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1969 void CWnd::ClientToScreen(tagPOINT *)const 1970 void CWnd::ClientToScreen(tagRECT *)const 1971 int COleControl::ClipCaretRect(tagRECT *) 1972 void CPreviewDC::ClipToPage() 1973 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1974 long CArchiveStream::Clone(IStream * *) 1975 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1976 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1977 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1978 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1979 int CAnimateCtrl::Close() 1980 void CArchive::Close() 1981 void CAsyncMonikerFile::Close() 1982 void CAsyncSocket::Close() 1983 void CCachedDataPathProperty::Close() 1984 void CDatabase::Close() 1985 void CFile::Close() 1986 void CFileFind::Close() 1987 void CInternetConnection::Close() 1988 void CInternetFile::Close() 1989 void CInternetSession::Close() 1990 void CMemFile::Close() 1991 HMETAFILE__ * CMetaFileDC::Close() 1992 void CMirrorFile::Close() 1993 void CMonikerFile::Close() 1994 void COleClientItem::Close(enum tagOLECLOSE) 1995 void COleStreamFile::Close() 1996 void CRecordset::Close() 1997 void CSocket::Close() 1998 void CSocketFile::Close() 1999 void CStdioFile::Close() 2000 long CDocObjectServer::XOleObject::Close(unsigned long) 2001 long COleControl::XOleObject::Close(unsigned long) 2002 long COleServerDoc::XOleObject::Close(unsigned long) 2003 long COleServerItem::XOleObject::Close(unsigned long) 2004 void CDocManager::CloseAllDocuments(int) 2005 void CDocTemplate::CloseAllDocuments(int) 2006 void CWinApp::CloseAllDocuments(int) 2007 void CFileFind::CloseContext() 2008 void CFtpFileFind::CloseContext() 2009 void CGopherFileFind::CloseContext() 2010 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 2011 int CDC::CloseFigure() 2012 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2013 void CWnd::CloseWindow() 2014 int ATL::CStringT > >::Collate(wchar_t const *)const 2015 int ATL::CStringT > >::Collate(char const *)const 2016 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 2017 int ATL::CStringT > >::CollateNoCase(char const *)const 2018 int CRgn::CombineRgn(CRgn const *,CRgn const *,int) 2019 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 2020 int CStatusBar::CommandToIndex(unsigned int)const 2021 int CToolBar::CommandToIndex(unsigned int)const 2022 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 2023 long CArchiveStream::Commit(unsigned long) 2024 void COleClientItem::CommitItem(int) 2025 void COleDocument::CommitItems(int,IStorage *) 2026 int CDatabase::CommitTrans() 2027 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 2028 void CPropertyPage::CommonConstruct(char const *,unsigned int) 2029 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 2030 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2031 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2032 void CWinThread::CommonConstruct() 2033 int ATL::CStringT > >::Compare(wchar_t const *)const 2034 int ATL::CStringT > >::Compare(char const *)const 2035 int CComboBox::CompareItem(tagCOMPAREITEM*) 2036 int CListBox::CompareItem(tagCOMPAREITEM*) 2037 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 2038 int ATL::CStringT > >::CompareNoCase(char const *)const 2039 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 2040 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 2041 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 2042 int CAsyncSocket::Connect(char const *,unsigned int) 2043 int CAsyncSocket::Connect(sockaddr const *,int) 2044 int CDatabase::Connect(unsigned long) 2045 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 2046 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 2047 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2048 int CSocket::ConnectHelper(sockaddr const *,int) 2049 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2050 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2051 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 2052 long CDHtmlControlSink::ConnectToControl(IUnknown *) 2053 void COleServerDoc::ConnectView(CWnd *,CView *) 2054 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2055 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2056 void CPropertyPage::Construct(unsigned int,unsigned int) 2057 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 2058 void CPropertyPage::Construct(char const *,unsigned int) 2059 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 2060 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2061 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2062 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 2063 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2064 void CRectTracker::Construct() 2065 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2066 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2067 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2068 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2069 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2070 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2071 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2072 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2073 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2074 int CPropertySheet::ContinueModal() 2075 int CWnd::ContinueModal() 2076 void CCmdUI::ContinueRouting() 2077 void COleControl::ControlInfoChanged() 2078 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2079 int COleClientItem::ConvertTo(_GUID const &) 2080 int CRichEditCntrItem::ConvertTo(_GUID const &) 2081 void CByteArray::Copy(CByteArray const &) 2082 void CComboBox::Copy() 2083 void CDWordArray::Copy(CDWordArray const &) 2084 void CEdit::Copy() 2085 int CImageList::Copy(int,int,unsigned int) 2086 int CImageList::Copy(int,CImageList *,int,unsigned int) 2087 void CObArray::Copy(CObArray const &) 2088 void COleSafeArray::Copy(tagSAFEARRAY * *) 2089 void CPtrArray::Copy(CPtrArray const &) 2090 void CRichEditCtrl::Copy() 2091 void CStringArray::Copy(CStringArray const &) 2092 void CUIntArray::Copy(CUIntArray const &) 2093 void CWordArray::Copy(CWordArray const &) 2094 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 2095 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 2096 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 2097 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 2098 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2099 int CRgn::CopyRgn(CRgn const *) 2100 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2101 void COleClientItem::CopyToClipboard(int) 2102 void COleServerItem::CopyToClipboard(int) 2103 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2104 int CAsyncSocket::Create(unsigned int,int,long,char const *) 2105 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2106 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2107 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2108 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2109 int CControlFrameWnd::Create(char const *) 2110 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2111 int CDialog::Create(unsigned int,CWnd *) 2112 int CDialog::Create(char const *,CWnd *) 2113 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 2114 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 2115 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2116 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2117 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 2118 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2119 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 2120 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2121 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2122 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 2123 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2124 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2125 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2126 int CImageList::Create(int,int,unsigned int,int,int) 2127 int CImageList::Create(unsigned int,int,int,unsigned long) 2128 int CImageList::Create(CImageList *) 2129 int CImageList::Create(char const *,int,int,unsigned long) 2130 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2131 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2132 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2133 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2134 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2135 int CMetaFileDC::Create(char const *) 2136 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2137 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2138 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 2139 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2140 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2141 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2142 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2143 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2144 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2145 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2146 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 2147 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2148 int CReflectorWnd::Create(CRect const &,HWND__ *) 2149 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2150 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2151 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2152 int CSocket::Create(unsigned int,int,char const *) 2153 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2154 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2155 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2156 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2157 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2158 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2159 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2160 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2161 int CToolTipCtrl::Create(CWnd *,unsigned long) 2162 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2163 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2164 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2165 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2166 IBindHost * CMonikerFile::CreateBindHost() 2167 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2168 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2169 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2170 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2171 void CWnd::CreateCaret(CBitmap *) 2172 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 2173 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2174 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2175 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2176 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2177 int CDC::CreateCompatibleDC(CDC *) 2178 void CConnectionPoint::CreateConnectionArray() 2179 COleControlContainer * COccManager::CreateContainer(CWnd *) 2180 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2181 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2182 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2183 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2184 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2185 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2186 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2187 int CWnd::CreateControlContainer(COleControlContainer * *) 2188 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2189 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2190 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2191 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2192 int CDC::CreateDCA(char const *,char const *,char const *,void const *) 2193 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2194 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2195 int CFtpConnection::CreateDirectoryA(char const *) 2196 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2197 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2198 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 2199 int CWnd::CreateDlg(char const *,CWnd *) 2200 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2201 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2202 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 2204 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2205 CImageList * CHeaderCtrl::CreateDragImage(int) 2206 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2207 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2208 int CRgn::CreateEllipticRgn(int,int,int,int) 2209 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2210 int CPictureHolder::CreateEmpty() 2211 int CMetaFileDC::CreateEnhanced(CDC *,char const *,tagRECT const *,char const *) 2212 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2213 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2214 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2215 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2216 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2217 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2218 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2219 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2220 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2221 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2222 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2223 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2224 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2225 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2226 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2227 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2228 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2229 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2230 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2231 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2232 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2233 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2234 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2235 int CFont::CreateFontA(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,char const *) 2236 int CFont::CreateFontIndirectA(tagLOGFONTA const *) 2237 CControlFrameWnd * COleControl::CreateFrameWindow() 2238 int CPictureHolder::CreateFromBitmap(unsigned int) 2239 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2240 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2241 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2242 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2243 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2244 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2245 int CPictureHolder::CreateFromIcon(unsigned int) 2246 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2247 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2248 int CRgn::CreateFromPath(CDC *) 2249 void CWnd::CreateGrayCaret(int,int) 2250 int CPalette::CreateHalftonePalette(CDC *) 2251 int CBrush::CreateHatchBrush(int,unsigned long) 2252 int CDC::CreateICA(char const *,char const *,char const *,void const *) 2253 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2254 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2255 int CDialog::CreateIndirect(void *,CWnd *) 2256 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2257 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2258 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2259 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2260 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2261 int COleInsertDialog::CreateItem(COleClientItem *) 2262 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2263 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2264 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2265 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2266 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 2267 CGopherLocator CGopherConnection::CreateLocator(char const *) 2268 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 2269 int COleStreamFile::CreateMemoryStream(CFileException *) 2270 int CMenu::CreateMenu() 2271 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2272 CDocument * CDocTemplate::CreateNewDocument() 2273 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2274 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2275 CObject * CByteArray::CreateObject() 2276 CObject * CDC::CreateObject() 2277 CObject * CDocItem::CreateObject() 2278 CObject * CDockState::CreateObject() 2279 CObject * CDWordArray::CreateObject() 2280 CObject * CEditView::CreateObject() 2281 CObject * CFrameWnd::CreateObject() 2282 CObject * CGdiObject::CreateObject() 2283 CObject * CHtmlEditView::CreateObject() 2284 CObject * CHtmlView::CreateObject() 2285 CObject * CImageList::CreateObject() 2286 CObject * CListView::CreateObject() 2287 CObject * CMapStringToOb::CreateObject() 2288 CObject * CMapStringToString::CreateObject() 2289 CObject * CMapWordToOb::CreateObject() 2290 CObject * CMDIChildWnd::CreateObject() 2291 CObject * CMDIFrameWnd::CreateObject() 2292 CObject * CMenu::CreateObject() 2293 CObject * CMiniDockFrameWnd::CreateObject() 2294 CObject * CMiniFrameWnd::CreateObject() 2295 CObject * CObArray::CreateObject() 2296 CObject * CObList::CreateObject() 2297 CObject * COleDocIPFrameWnd::CreateObject() 2298 CObject * COleIPFrameWnd::CreateObject() 2299 CObject * CPreviewView::CreateObject() 2300 CObject * CRichEditCntrItem::CreateObject() 2301 CObject * CRichEditView::CreateObject() 2302 CObject * CRuntimeClass::CreateObject() 2303 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2304 CObject * CRuntimeClass::CreateObject(char const *) 2305 CObject * CStringArray::CreateObject() 2306 CObject * CStringList::CreateObject() 2307 CObject * CTreeView::CreateObject() 2308 CObject * CWnd::CreateObject() 2309 CObject * CWordArray::CreateObject() 2310 void COleControlContainer::CreateOleFont(CFont *) 2311 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2312 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2313 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2314 int CPalette::CreatePalette(tagLOGPALETTE *) 2315 int CBrush::CreatePatternBrush(CBitmap *) 2316 int CPen::CreatePen(int,int,unsigned long) 2317 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2318 int CPen::CreatePenIndirect(tagLOGPEN *) 2319 int CFont::CreatePointFont(int,char const *,CDC *) 2320 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 2321 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2322 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2323 int CMenu::CreatePopupMenu() 2324 HDC__ * CPageSetupDialog::CreatePrinterDC() 2325 HDC__ * CPrintDialog::CreatePrinterDC() 2326 HDC__ * CPrintDialogEx::CreatePrinterDC() 2327 int CWinApp::CreatePrinterDC(CDC &) 2328 int CRgn::CreateRectRgn(int,int,int,int) 2329 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2330 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2331 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2332 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 2333 int CBrush::CreateSolidBrush(unsigned long) 2334 void CWnd::CreateSolidCaret(int,int) 2335 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2336 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2337 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2338 int CGdiObject::CreateStockObject(int) 2339 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 2340 int CBrush::CreateSysColorBrush(int) 2341 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2342 void COleControl::CreateTracker(int,int) 2343 void COleControl::CreateTracker(int,int,tagRECT const *) 2344 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2345 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2346 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2347 void COleControl::CreateWindowForSubclassedControl() 2348 void CToolBarCtrl::Customize() 2349 void CComboBox::Cut() 2350 void CEdit::Cut() 2351 void CRichEditCtrl::Cut() 2352 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2353 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2354 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2355 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2356 void DDP_CBIndex(CDataExchange *,int,int &,char const *) 2357 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2358 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2359 void DDP_Check(CDataExchange *,int,int &,char const *) 2360 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 2361 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 2362 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 2363 void DDP_EndText(CDataExchange *,int,short *,char const *) 2364 void DDP_EndText(CDataExchange *,int,int *,char const *) 2365 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 2366 void DDP_EndText(CDataExchange *,int,long *,char const *) 2367 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 2368 void DDP_EndText(CDataExchange *,int,float *,char const *) 2369 void DDP_EndText(CDataExchange *,int,double *,char const *) 2370 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 2371 void DDP_LBIndex(CDataExchange *,int,int &,char const *) 2372 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2373 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2374 void DDP_PostProcessing(CDataExchange *) 2375 void DDP_Radio(CDataExchange *,int,int &,char const *) 2376 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 2377 void DDP_Text(CDataExchange *,int,short &,char const *) 2378 void DDP_Text(CDataExchange *,int,int &,char const *) 2379 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 2380 void DDP_Text(CDataExchange *,int,long &,char const *) 2381 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 2382 void DDP_Text(CDataExchange *,int,float &,char const *) 2383 void DDP_Text(CDataExchange *,int,double &,char const *) 2384 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 2385 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2386 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2387 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2388 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2389 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2390 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2391 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2392 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2393 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2394 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2395 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2396 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2397 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2398 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2399 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2400 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2401 void DDX_CBIndex(CDataExchange *,int,int &) 2402 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2403 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2404 void DDX_Check(CDataExchange *,int,int &) 2405 void DDX_Control(CDataExchange *,int,CWnd &) 2406 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2407 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2408 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2409 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2410 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2411 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2412 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 2413 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 2414 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 2415 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 2416 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 2417 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 2418 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 2419 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 2420 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 2421 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 2422 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 2423 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 2424 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 2425 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 2426 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 2427 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 2428 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 2429 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 2430 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 2431 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 2432 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 2433 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 2434 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 2435 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 2436 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 2437 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 2438 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 2439 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 2440 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 2441 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 2442 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2443 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2444 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2445 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2446 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2447 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2448 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2449 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2450 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2451 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2452 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2453 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2454 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2455 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2456 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2457 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2458 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2459 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 2460 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2461 void DDX_LBIndex(CDataExchange *,int,int &) 2462 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2463 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2464 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2465 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2466 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2467 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2468 void DDX_OCBool(CDataExchange *,int,long,int &) 2469 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2470 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2471 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2472 void DDX_OCFloat(CDataExchange *,int,long,float &) 2473 void DDX_OCFloat(CDataExchange *,int,long,double &) 2474 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2475 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2476 void DDX_OCInt(CDataExchange *,int,long,int &) 2477 void DDX_OCInt(CDataExchange *,int,long,long &) 2478 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2479 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2480 void DDX_OCShort(CDataExchange *,int,long,short &) 2481 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2482 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2483 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2484 void DDX_Radio(CDataExchange *,int,int &) 2485 void DDX_Scroll(CDataExchange *,int,int &) 2486 void DDX_Slider(CDataExchange *,int,int &) 2487 void DDX_Text(CDataExchange *,int,__int64 &) 2488 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2489 void DDX_Text(CDataExchange *,int,unsigned char &) 2490 void DDX_Text(CDataExchange *,int,short &) 2491 void DDX_Text(CDataExchange *,int,int &) 2492 void DDX_Text(CDataExchange *,int,unsigned int &) 2493 void DDX_Text(CDataExchange *,int,long &) 2494 void DDX_Text(CDataExchange *,int,unsigned long &) 2495 void DDX_Text(CDataExchange *,int,float &) 2496 void DDX_Text(CDataExchange *,int,double &) 2497 void DDX_Text(CDataExchange *,int,_FILETIME &) 2498 void DDX_Text(CDataExchange *,int,_GUID &) 2499 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2500 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2501 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2502 void DDX_Text(CDataExchange *,int,tagDEC &) 2503 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2504 void DDX_Text(CDataExchange *,int,COleCurrency &) 2505 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2506 void DDX_Text(CDataExchange *,int,char *,int) 2507 void COleClientItem::Deactivate() 2508 long COlePropertyPage::XPropertyPage::Deactivate() 2509 int COleServerDoc::DeactivateAndUndo() 2510 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2511 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2512 void COleClientItem::DeactivateUI() 2513 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 2514 long CWnd::Default() 2515 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 2516 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 2517 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 2518 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 2519 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 2520 void CFrameWnd::DelayRecalcLayout(int) 2521 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2522 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2523 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2524 void CControlBar::DelayShow(int) 2525 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2526 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2527 void CFrameWnd::DelayUpdateFrameTitle() 2528 int ATL::CStringT > >::Delete(int,int) 2529 int ATL::CStringT > >::Delete(int,int) 2530 void CException::Delete() 2531 void COleClientItem::Delete(int) 2532 void CRecordset::Delete() 2533 void CWinThread::Delete() 2534 int CListCtrl::DeleteAllItems() 2535 int CTabCtrl::DeleteAllItems() 2536 int CTreeCtrl::DeleteAllItems() 2537 int CReBarCtrl::DeleteBand(unsigned int) 2538 int CToolBarCtrl::DeleteButton(int) 2539 int CListCtrl::DeleteColumn(int) 2540 void CSplitterWnd::DeleteColumn(int) 2541 void CDocument::DeleteContents() 2542 void CEditView::DeleteContents() 2543 void CHtmlEditDoc::DeleteContents() 2544 void COleDocument::DeleteContents() 2545 void COleServerDoc::DeleteContents() 2546 void CRichEditDoc::DeleteContents() 2547 void CRichEditView::DeleteContents() 2548 int CDC::DeleteDC() 2549 int CImageList::DeleteImageList() 2550 void CComboBox::DeleteItem(tagDELETEITEM*) 2551 int CComboBoxEx::DeleteItem(int) 2552 int CHeaderCtrl::DeleteItem(int) 2553 void CListBox::DeleteItem(tagDELETEITEM*) 2554 int CListCtrl::DeleteItem(int) 2555 int CTabCtrl::DeleteItem(int) 2556 int CTreeCtrl::DeleteItem(_TREEITEM *) 2557 int CMenu::DeleteMenu(unsigned int,unsigned int) 2558 int CGdiObject::DeleteObject() 2559 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2560 void CSplitterWnd::DeleteRow(int) 2561 int CComboBox::DeleteString(unsigned int) 2562 int CListBox::DeleteString(unsigned int) 2563 void CHandleMap::DeleteTemp() 2564 void CDC::DeleteTempMap() 2565 void CGdiObject::DeleteTempMap() 2566 void CImageList::DeleteTempMap() 2567 void CMenu::DeleteTempMap() 2568 void CWnd::DeleteTempMap() 2569 void CRichEditDoc::DeleteUnmarkedItems()const 2570 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2571 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2572 void CSplitterWnd::DeleteView(int,int) 2573 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2574 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2575 void CTabCtrl::DeselectAll(int) 2576 void COleSafeArray::Destroy() 2577 int COleControlSite::DestroyControl() 2578 void COleSafeArray::DestroyData() 2579 void COleSafeArray::DestroyDescriptor() 2580 void CFrameWnd::DestroyDockBars() 2581 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2582 int CMenu::DestroyMenu() 2583 void CDHtmlDialog::DestroyModeless() 2584 void COleControl::DestroySharedMenu() 2585 void COleDocIPFrameWnd::DestroySharedMenu() 2586 void COleIPFrameWnd::DestroySharedMenu() 2587 int CToolTipCtrl::DestroyToolTipCtrl() 2588 void COleControl::DestroyTracker() 2589 int CControlBar::DestroyWindow() 2590 int CMDIChildWnd::DestroyWindow() 2591 int CWnd::DestroyWindow() 2592 unsigned int CAsyncSocket::Detach() 2593 HDC__ * CDC::Detach() 2594 void * CDialogTemplate::Detach() 2595 void * CGdiObject::Detach() 2596 _IMAGELIST * CImageList::Detach() 2597 unsigned char * CMemFile::Detach() 2598 HMENU__ * CMenu::Detach() 2599 int CMonikerFile::Detach(CFileException *) 2600 IDataObject * COleDataObject::Detach() 2601 tagVARIANT COleSafeArray::Detach() 2602 IStream * COleStreamFile::Detach() 2603 tagVARIANT COleVariant::Detach() 2604 void * CSharedFile::Detach() 2605 HDC__ * CWindowlessDC::Detach() 2606 HWND__ * CWnd::Detach() 2607 IDispatch * COleDispatchDriver::DetachDispatch() 2608 void CAsyncSocket::DetachHandle(unsigned int,int) 2609 void COleControlSite::DetachWindow() 2610 void CWinApp::DevModeChange(char *) 2611 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2612 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2613 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2614 int CComboBox::Dir(unsigned int,char const *) 2615 int CComboBoxEx::Dir(unsigned int,char const *) 2616 int CListBox::Dir(unsigned int,char const *) 2617 int COleServerDoc::DiscardUndoState() 2618 long COleClientItem::XOleIPSite::DiscardUndoState() 2619 long COleControlSite::XOleIPSite::DiscardUndoState() 2620 void COleDispatchImpl::Disconnect() 2621 void CDHtmlDialog::DisconnectDHtmlElementEvents() 2622 void CDHtmlDialog::DisconnectDHtmlEvents() 2623 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2624 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2625 void CDocument::DisconnectViews() 2626 void CWinThread::DispatchThreadMessage(tagMSG *) 2627 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2628 int CRichEditCtrl::DisplayBand(tagRECT *) 2629 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 2630 int CWnd::DlgDirListA(char *,int,int,unsigned int) 2631 int CWnd::DlgDirListComboBoxA(char *,int,int,unsigned int) 2632 int CWnd::DlgDirSelect(char *,int) 2633 int CWnd::DlgDirSelectComboBox(char *,int) 2634 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2635 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2636 void CAsyncSocket::DoCallBack(unsigned int,long) 2637 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2638 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2639 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2640 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2641 void COleControl::DoClick() 2642 int COleFrameHook::DoContextSensitiveHelp(int) 2643 int COleConvertDialog::DoConvert(COleClientItem *) 2644 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2645 void CWnd::DoDataExchange(CDataExchange *) 2646 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2647 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2648 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2649 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2650 int COleFrameHook::DoEnableModeless(int) 2651 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2652 void CRecordset::DoFieldExchange(CFieldExchange *) 2653 int CDocument::DoFileSave() 2654 int CSplitterWnd::DoKeyboardSplit() 2655 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2656 int CColorDialog::DoModal() 2657 int CDialog::DoModal() 2658 int CFileDialog::DoModal() 2659 int CFontDialog::DoModal() 2660 int COleBusyDialog::DoModal() 2661 int COleChangeIconDialog::DoModal() 2662 int COleChangeSourceDialog::DoModal() 2663 int COleConvertDialog::DoModal() 2664 int COleInsertDialog::DoModal(unsigned long) 2665 int COleInsertDialog::DoModal() 2666 int COleLinksDialog::DoModal() 2667 int COlePasteSpecialDialog::DoModal() 2668 int COlePropertiesDialog::DoModal() 2669 int COleUpdateDialog::DoModal() 2670 int CPageSetupDialog::DoModal() 2671 int CPrintDialog::DoModal() 2672 int CPrintDialogEx::DoModal() 2673 int CPropertySheet::DoModal() 2674 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2675 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2676 void CControlBar::DoPaint(CDC *) 2677 void CDockBar::DoPaint(CDC *) 2678 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2679 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2680 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2681 int CView::DoPreparePrinting(CPrintInfo *) 2682 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2683 int CWinApp::DoPrintDialog(CPrintDialog *) 2684 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2685 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2686 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2687 void COleControl::DoPropExchange(CPropExchange *) 2688 int CDocument::DoSave(char const *,int) 2689 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2690 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2691 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2692 int CCmdUI::DoUpdate(CCmdTarget *,int) 2693 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2694 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2695 long COleControlSite::DoVerb(long,tagMSG *) 2696 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2697 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2698 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2699 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2700 void CWinApp::DoWaitCursor(int) 2701 void CPreviewView::DoZoom(unsigned int,CPoint) 2702 void CDC::DPtoHIMETRIC(tagSIZE *)const 2703 void CDC::DPtoLP(tagPOINT *,int)const 2704 void CDC::DPtoLP(tagRECT *)const 2705 void CDC::DPtoLP(tagSIZE *)const 2706 void CWnd::DragAcceptFiles(int) 2707 int CWnd::DragDetect(tagPOINT)const 2708 int CImageList::DragEnter(CWnd *,CPoint) 2709 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2710 unsigned int CDragListBox::Dragging(CPoint) 2711 int CImageList::DragLeave(CWnd *) 2712 long COleDropTarget::XDropTarget::DragLeave() 2713 int CImageList::DragMove(CPoint) 2714 void CReBarCtrl::DragMove(unsigned long) 2715 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2716 int CImageList::DragShowNolock(int) 2717 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2718 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2719 void CRectTracker::Draw(CDC *)const 2720 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2721 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2722 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2723 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2724 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2725 void CControlBar::DrawBorders(CDC *,CRect &) 2726 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2727 void COleControl::DrawContent(CDC *,CRect &) 2728 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2729 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2730 int CDC::DrawEscape(int,int,char const *) 2731 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2732 void CDC::DrawFocusRect(tagRECT const *) 2733 void CDockContext::DrawFocusRect(int) 2734 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2735 void CControlBar::DrawGripper(CDC *,CRect const &) 2736 int CDC::DrawIcon(int,int,HICON__ *) 2737 int CDC::DrawIcon(tagPOINT,HICON__ *) 2738 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2739 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2740 void CDragListBox::DrawInsert(int) 2741 void CBitmapButton::DrawItem(tagDRAWITEM*) 2742 void CButton::DrawItem(tagDRAWITEM*) 2743 void CCheckListBox::DrawItem(tagDRAWITEM*) 2744 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2745 void CComboBox::DrawItem(tagDRAWITEM*) 2746 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2747 void CListBox::DrawItem(tagDRAWITEM*) 2748 void CListCtrl::DrawItem(tagDRAWITEM*) 2749 void CListView::DrawItem(tagDRAWITEM*) 2750 void CMenu::DrawItem(tagDRAWITEM*) 2751 void CStatic::DrawItem(tagDRAWITEM*) 2752 void CStatusBar::DrawItem(tagDRAWITEM*) 2753 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2754 void CTabCtrl::DrawItem(tagDRAWITEM*) 2755 void CWnd::DrawMenuBar() 2756 void COleControl::DrawMetafile(CDC *,CRect &) 2757 void CDragListBox::DrawSingle(int) 2758 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2759 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2760 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2761 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2762 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2763 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2764 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,HBRUSH__ *) 2765 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,CBrush *) 2766 int CDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2767 int CDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2768 int CMetaFileDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2769 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2770 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2771 int CDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2772 int CDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2773 int CMetaFileDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2774 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2775 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2776 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2777 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2778 void CDragListBox::Dropped(int,CPoint) 2779 void CArchiveException::Dump(CDumpContext &)const 2780 void CAsyncMonikerFile::Dump(CDumpContext &)const 2781 void CAsyncSocket::Dump(CDumpContext &)const 2782 void CBitmap::Dump(CDumpContext &)const 2783 void CBitmapButton::Dump(CDumpContext &)const 2784 void CBrush::Dump(CDumpContext &)const 2785 void CByteArray::Dump(CDumpContext &)const 2786 void CCachedDataPathProperty::Dump(CDumpContext &)const 2787 void CClientDC::Dump(CDumpContext &)const 2788 void CCmdTarget::Dump(CDumpContext &)const 2789 void CColorDialog::Dump(CDumpContext &)const 2790 void CControlBar::Dump(CDumpContext &)const 2791 void CCtrlView::Dump(CDumpContext &)const 2792 void CDatabase::Dump(CDumpContext &)const 2793 void CDataPathProperty::Dump(CDumpContext &)const 2794 void CDC::Dump(CDumpContext &)const 2795 void CDialog::Dump(CDumpContext &)const 2796 void CDocItem::Dump(CDumpContext &)const 2797 void CDockBar::Dump(CDumpContext &)const 2798 void CDocManager::Dump(CDumpContext &)const 2799 void CDocObjectServer::Dump(CDumpContext &)const 2800 void CDocObjectServerItem::Dump(CDumpContext &)const 2801 void CDocTemplate::Dump(CDumpContext &)const 2802 void CDocument::Dump(CDumpContext &)const 2803 void CDWordArray::Dump(CDumpContext &)const 2804 void CDynLinkLibrary::Dump(CDumpContext &)const 2805 void CEditView::Dump(CDumpContext &)const 2806 void CFile::Dump(CDumpContext &)const 2807 void CFileDialog::Dump(CDumpContext &)const 2808 void CFileException::Dump(CDumpContext &)const 2809 void CFileFind::Dump(CDumpContext &)const 2810 void CFileStatus::Dump(CDumpContext &)const 2811 void CFindReplaceDialog::Dump(CDumpContext &)const 2812 void CFont::Dump(CDumpContext &)const 2813 void CFontDialog::Dump(CDumpContext &)const 2814 void CFormView::Dump(CDumpContext &)const 2815 void CFrameWnd::Dump(CDumpContext &)const 2816 void CFtpConnection::Dump(CDumpContext &)const 2817 void CFtpFileFind::Dump(CDumpContext &)const 2818 void CGdiObject::Dump(CDumpContext &)const 2819 void CGopherConnection::Dump(CDumpContext &)const 2820 void CGopherFile::Dump(CDumpContext &)const 2821 void CGopherFileFind::Dump(CDumpContext &)const 2822 void CHtmlEditDoc::Dump(CDumpContext &)const 2823 void CHtmlEditView::Dump(CDumpContext &)const 2824 void CHtmlView::Dump(CDumpContext &)const 2825 void CHttpConnection::Dump(CDumpContext &)const 2826 void CHttpFile::Dump(CDumpContext &)const 2827 void CImageList::Dump(CDumpContext &)const 2828 void CInternetConnection::Dump(CDumpContext &)const 2829 void CInternetException::Dump(CDumpContext &)const 2830 void CInternetFile::Dump(CDumpContext &)const 2831 void CInternetSession::Dump(CDumpContext &)const 2832 void CLongBinary::Dump(CDumpContext &)const 2833 void CMapPtrToPtr::Dump(CDumpContext &)const 2834 void CMapPtrToWord::Dump(CDumpContext &)const 2835 void CMapStringToOb::Dump(CDumpContext &)const 2836 void CMapStringToPtr::Dump(CDumpContext &)const 2837 void CMapStringToString::Dump(CDumpContext &)const 2838 void CMapWordToOb::Dump(CDumpContext &)const 2839 void CMapWordToPtr::Dump(CDumpContext &)const 2840 void CMDIChildWnd::Dump(CDumpContext &)const 2841 void CMDIFrameWnd::Dump(CDumpContext &)const 2842 void CMemFile::Dump(CDumpContext &)const 2843 void CMenu::Dump(CDumpContext &)const 2844 void CMonikerFile::Dump(CDumpContext &)const 2845 void CMultiDocTemplate::Dump(CDumpContext &)const 2846 void CObArray::Dump(CDumpContext &)const 2847 void CObject::Dump(CDumpContext &)const 2848 void CObList::Dump(CDumpContext &)const 2849 void COleBusyDialog::Dump(CDumpContext &)const 2850 void COleChangeIconDialog::Dump(CDumpContext &)const 2851 void COleChangeSourceDialog::Dump(CDumpContext &)const 2852 void COleClientItem::Dump(CDumpContext &)const 2853 void COleControl::Dump(CDumpContext &)const 2854 void COleConvertDialog::Dump(CDumpContext &)const 2855 void COleDataSource::Dump(CDumpContext &)const 2856 void COleDialog::Dump(CDumpContext &)const 2857 void COleDocIPFrameWnd::Dump(CDumpContext &)const 2858 void COleDocument::Dump(CDumpContext &)const 2859 void COleDropSource::Dump(CDumpContext &)const 2860 void COleDropTarget::Dump(CDumpContext &)const 2861 void COleInsertDialog::Dump(CDumpContext &)const 2862 void COleIPFrameWnd::Dump(CDumpContext &)const 2863 void COleLinkingDoc::Dump(CDumpContext &)const 2864 void COleLinksDialog::Dump(CDumpContext &)const 2865 void COleMessageFilter::Dump(CDumpContext &)const 2866 void COleObjectFactory::Dump(CDumpContext &)const 2867 void COlePasteSpecialDialog::Dump(CDumpContext &)const 2868 void COlePropertiesDialog::Dump(CDumpContext &)const 2869 void COleServerDoc::Dump(CDumpContext &)const 2870 void COleServerItem::Dump(CDumpContext &)const 2871 void COleStreamFile::Dump(CDumpContext &)const 2872 void COleUpdateDialog::Dump(CDumpContext &)const 2873 void CPageSetupDialog::Dump(CDumpContext &)const 2874 void CPaintDC::Dump(CDumpContext &)const 2875 void CPen::Dump(CDumpContext &)const 2876 void CPreviewDC::Dump(CDumpContext &)const 2877 void CPreviewView::Dump(CDumpContext &)const 2878 void CPrintDialog::Dump(CDumpContext &)const 2879 void CPrintDialogEx::Dump(CDumpContext &)const 2880 void CPropertyPage::Dump(CDumpContext &)const 2881 void CPropertySheet::Dump(CDumpContext &)const 2882 void CPtrArray::Dump(CDumpContext &)const 2883 void CPtrList::Dump(CDumpContext &)const 2884 void CRecordset::Dump(CDumpContext &)const 2885 void CRecordView::Dump(CDumpContext &)const 2886 void CRichEditCntrItem::Dump(CDumpContext &)const 2887 void CRichEditDoc::Dump(CDumpContext &)const 2888 void CRichEditView::Dump(CDumpContext &)const 2889 void CScrollView::Dump(CDumpContext &)const 2890 void CSingleDocTemplate::Dump(CDumpContext &)const 2891 void CSocket::Dump(CDumpContext &)const 2892 void CSocketFile::Dump(CDumpContext &)const 2893 void CSplitterWnd::Dump(CDumpContext &)const 2894 void CStatusBar::Dump(CDumpContext &)const 2895 void CStdioFile::Dump(CDumpContext &)const 2896 void CStringArray::Dump(CDumpContext &)const 2897 void CStringList::Dump(CDumpContext &)const 2898 void CSyncObject::Dump(CDumpContext &)const 2899 void CToolBar::Dump(CDumpContext &)const 2900 void CUIntArray::Dump(CDumpContext &)const 2901 void CView::Dump(CDumpContext &)const 2902 void CWinApp::Dump(CDumpContext &)const 2903 void CWindowDC::Dump(CDumpContext &)const 2904 void CWinThread::Dump(CDumpContext &)const 2905 void CWnd::Dump(CDumpContext &)const 2906 void CWordArray::Dump(CDumpContext &)const 2907 void CMemoryState::DumpAllObjectsSince()const 2908 CDumpContext & CDumpContext::DumpAsHex(__int64) 2909 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2910 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2911 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2912 CDumpContext & CDumpContext::DumpAsHex(int) 2913 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2914 CDumpContext & CDumpContext::DumpAsHex(long) 2915 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2916 void CRecordset::DumpFields(CDumpContext &)const 2917 void CMemoryState::DumpStatistics()const 2918 long COleControl::XDataObject::DUnadvise(unsigned long) 2919 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2920 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2921 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2922 CFile * CFile::Duplicate()const 2923 CFile * CInternetFile::Duplicate()const 2924 CFile * CMemFile::Duplicate()const 2925 CFile * COleStreamFile::Duplicate()const 2926 CFile * CSocketFile::Duplicate()const 2927 CFile * CStdioFile::Duplicate()const 2928 unsigned long const CEditView::dwStyleDefault 2929 void CRecordset::Edit() 2930 int CHeaderCtrl::EditFilter(int,int) 2931 CEdit * CListCtrl::EditLabel(int) 2932 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2933 long COlePropertyPage::XPropertyPage::EditProperty(long) 2934 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2935 unsigned char & CByteArray::ElementAt(int) 2936 unsigned long & CDWordArray::ElementAt(int) 2937 CObject * & CObArray::ElementAt(int) 2938 void * & CPtrArray::ElementAt(int) 2939 ATL::CStringT > > & CStringArray::ElementAt(int) 2940 unsigned int & CUIntArray::ElementAt(int) 2941 unsigned short & CWordArray::ElementAt(int) 2942 int CDC::Ellipse(int,int,int,int) 2943 int CDC::Ellipse(tagRECT const *) 2944 void ATL::CSimpleStringT::Empty() 2945 void ATL::CSimpleStringT::Empty() 2946 void CDBException::Empty() 2947 void COleDataSource::Empty() 2948 void CEdit::EmptyUndoBuffer() 2949 void CRichEditCtrl::EmptyUndoBuffer() 2950 void CCheckListBox::Enable(int,int) 2951 void CCmdUI::Enable(int) 2952 void COleCmdUI::Enable(int) 2953 void CStatusCmdUI::Enable(int) 2954 void CTestCmdUI::Enable(int) 2955 void CToolCmdUI::Enable(int) 2956 int CWinApp::Enable3dControls() 2957 void CWnd::EnableActiveAccessibility() 2958 void CCmdTarget::EnableAggregation() 2959 void CCmdTarget::EnableAutomation() 2960 void CRecordset::EnableBookmarks() 2961 void COleMessageFilter::EnableBusyDialog(int) 2962 int CToolBarCtrl::EnableButton(int,int) 2963 void COleDocument::EnableCompoundFile(int) 2964 void CCmdTarget::EnableConnections() 2965 void CControlBar::EnableDocking(unsigned long) 2966 void CFrameWnd::EnableDocking(unsigned long) 2967 void CReBar::EnableDocking(unsigned long) 2968 void CStatusBar::EnableDocking(unsigned long) 2969 void COleControlSite::EnableDSC() 2970 void CWinApp::EnableHtmlHelp() 2971 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2972 long CBrowserControlSite::EnableModeless(int) 2973 long CDHtmlDialog::EnableModeless(int) 2974 void CWinApp::EnableModeless(int) 2975 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2976 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2977 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2978 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2979 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2980 void COleMessageFilter::EnableNotRespondingDialog(int) 2981 int CScrollBar::EnableScrollBar(unsigned int) 2982 int CWnd::EnableScrollBar(int,unsigned int) 2983 void CWnd::EnableScrollBarCtrl(int,int) 2984 void CWinApp::EnableShellOpen() 2985 void COleControl::EnableSimpleFrame() 2986 void CPropertySheet::EnableStackedTabs(int) 2987 int CInternetSession::EnableStatusCallback(int) 2988 int CWnd::EnableToolTips(int) 2989 int CWnd::EnableTrackingToolTips(int) 2990 void CCmdTarget::EnableTypeLib() 2991 int COleControlSite::EnableWindow(int) 2992 int CWnd::EnableWindow(int) 2993 void COleMessageFilter::EndBusyState() 2994 void CAsyncMonikerFile::EndCallbacks() 2995 long COleLinkingDoc::EndDeferErrors(long) 2996 void CDialog::EndDialog(int) 2997 void CPropertyPage::EndDialog(int) 2998 void CPropertySheet::EndDialog(int) 2999 int CDC::EndDoc() 3000 void CDockContext::EndDrag() 3001 void CImageList::EndDrag() 3002 void CReBarCtrl::EndDrag() 3003 void CWnd::EndModalLoop(int) 3004 void CFrameWnd::EndModalState() 3005 void CWnd::EndModalState() 3006 int CDC::EndPage() 3007 void CWnd::EndPaint(tagPAINT*) 3008 int CDC::EndPath() 3009 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 3010 void CDockContext::EndResize() 3011 void CCmdTarget::EndWaitCursor() 3012 void COleDataObject::EnsureClipboardObject() 3013 long CWnd::EnsureStdObj() 3014 int CListCtrl::EnsureVisible(int,int) 3015 int CTreeCtrl::EnsureVisible(_TREEITEM *) 3016 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3017 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3018 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3019 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3020 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 3021 int COlePropertyPage::EnumChildProc(HWND__ *,long) 3022 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 3023 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 3024 int COlePropertyPage::EnumControls(HWND__ *,long) 3025 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3026 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3027 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3028 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3029 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3030 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3031 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3032 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3033 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 3034 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3035 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3036 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 3037 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3038 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3039 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3040 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3041 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 3042 int CRgn::EqualRgn(CRgn const *)const 3043 void CControlBar::EraseNonClient() 3044 int CFileException::ErrnoToException(int) 3045 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 3046 int CDC::Escape(int,int,char const *,int,char *) 3047 int CDC::Escape(int,int,char const *,void *) 3048 int CMetaFileDC::Escape(int,int,char const *,void *) 3049 int CPreviewDC::Escape(int,int,char const *,void *) 3050 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 3051 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3052 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3053 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3054 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3055 int COleControl::ExchangeExtent(CPropExchange *) 3056 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3057 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3058 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3059 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3060 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3061 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3062 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3063 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3064 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3065 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3066 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3067 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3068 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3069 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3070 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3071 void COleControl::ExchangeStockProps(CPropExchange *) 3072 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3073 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 3074 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3075 int CDC::ExcludeClipRect(int,int,int,int) 3076 int CDC::ExcludeClipRect(tagRECT const *) 3077 int CDC::ExcludeUpdateRgn(CWnd *) 3078 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3079 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3080 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 3081 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 3082 int CHtmlEditView::ExecHandler(unsigned int) 3083 int CWnd::ExecuteDlgInit(void *) 3084 int CWnd::ExecuteDlgInit(char const *) 3085 void CRecordset::ExecuteSetPosUpdate() 3086 void CDatabase::ExecuteSQL(char const *) 3087 void CRecordset::ExecuteUpdateSQL() 3088 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 3089 void CFrameWnd::ExitHelpMode() 3090 int COleControlModule::ExitInstance() 3091 int CWinApp::ExitInstance() 3092 int CWinThread::ExitInstance() 3093 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 3094 unsigned long CCmdTarget::ExternalAddRef() 3095 void CCmdTarget::ExternalDisconnect() 3096 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 3097 unsigned long CCmdTarget::ExternalRelease() 3098 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 3099 HICON__ * CImageList::ExtractIconA(int) 3100 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3101 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3102 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3103 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3104 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3105 void CDataExchange::Fail() 3106 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3107 short CRecordset::FetchData(unsigned short,long,unsigned long *) 3108 void CArchive::FillBuffer(unsigned int) 3109 unsigned long CFontDialog::FillInLogFont(_charformat const &) 3110 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 3111 void CScrollView::FillOutsideRect(CDC *,CBrush *) 3112 int CDC::FillPath() 3113 void CDC::FillRect(tagRECT const *,CBrush *) 3114 int CDC::FillRgn(CRgn *,CBrush *) 3115 void CDC::FillSolidRect(int,int,int,int,unsigned long) 3116 void CDC::FillSolidRect(tagRECT const *,unsigned long) 3117 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 3118 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 3119 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 3120 void CWnd::FilterToolTipMessage(tagMSG *) 3121 int ATL::CStringT > >::Find(wchar_t,int)const 3122 int ATL::CStringT > >::Find(wchar_t const *,int)const 3123 int ATL::CStringT > >::Find(char,int)const 3124 int ATL::CStringT > >::Find(char const *,int)const 3125 __POSITION * CObList::Find(CObject *,__POSITION *)const 3126 __POSITION * CPtrList::Find(void *,__POSITION *)const 3127 __POSITION * CStringList::Find(char const *,__POSITION *)const 3128 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 3129 int CDockBar::FindBar(CControlBar *,int) 3130 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 3131 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 3132 int CFileFind::FindFile(char const *,unsigned long) 3133 int CFtpFileFind::FindFile(char const *,unsigned long) 3134 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 3135 int CGopherFileFind::FindFile(char const *,unsigned long) 3136 __POSITION * CObList::FindIndex(int)const 3137 __POSITION * CPtrList::FindIndex(int)const 3138 __POSITION * CStringList::FindIndex(int)const 3139 int CListCtrl::FindItem(tagLVFINDINFOA *,int)const 3140 COleControlSite * COleControlContainer::FindItem(unsigned int)const 3141 int CFindReplaceDialog::FindNext()const 3142 int CFileFind::FindNextFileA() 3143 int CFtpFileFind::FindNextFileA() 3144 int CGopherFileFind::FindNextFileA() 3145 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 3146 int ATL::CStringT > >::FindOneOf(char const *)const 3147 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 3148 int CDHtmlDialog::FindSinkForObject(char const *) 3149 char const * CRecordset::FindSQLToken(char const *,char const *) 3150 int CComboBox::FindString(int,char const *)const 3151 int CComboBoxEx::FindString(int,char const *)const 3152 int CListBox::FindString(int,char const *)const 3153 int CComboBox::FindStringExact(int,char const *)const 3154 int CListBox::FindStringExact(int,char const *)const 3155 int CEditView::FindTextA(char const *,int,int) 3156 long CRichEditCtrl::FindTextA(unsigned long,_findtextexa *)const 3157 int CRichEditView::FindTextA(_AFX_RICHEDIT_STATE *) 3158 int CRichEditView::FindTextA(char const *,int,int,int) 3159 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3160 int CRichEditView::FindTextSimple(char const *,int,int,int) 3161 CWnd * CWnd::FindWindowA(char const *,char const *) 3162 CWnd * CWnd::FindWindowExA(HWND__ *,HWND__ *,char const *,char const *) 3163 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3164 int COleClientItem::FinishCreate(long) 3165 void COleControl::FireClick() 3166 void COleControl::FireDblClick() 3167 void COleControl::FireError(long,char const *,unsigned int) 3168 void COleControl::FireEvent(long,unsigned char *,...) 3169 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3170 void COleControl::FireEventV(long,unsigned char *,char *) 3171 void COleControl::FireKeyDown(unsigned short *,short) 3172 void COleControl::FireKeyPress(unsigned short *) 3173 void COleControl::FireKeyUp(unsigned short *,short) 3174 void COleControl::FireMouseDown(short,short,long,long) 3175 void COleControl::FireMouseMove(short,short,long,long) 3176 void COleControl::FireMouseUp(short,short,long,long) 3177 void COleControl::FireReadyStateChange() 3178 void CRecordset::Fixups() 3179 int CWnd::FlashWindow(int) 3180 int CDC::FlattenPath() 3181 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3182 int CDC::FloodFill(int,int,unsigned long) 3183 void CArchive::Flush() 3184 void CDumpContext::Flush() 3185 void CFile::Flush() 3186 void CInternetFile::Flush() 3187 void CMemFile::Flush() 3188 void CMonikerFile::Flush() 3189 void COleStreamFile::Flush() 3190 void CSocketFile::Flush() 3191 void CStdioFile::Flush() 3192 void COleDataSource::FlushClipboard() 3193 int CRecordset::FlushResultSet() 3194 int CEdit::FmtLines(int) 3195 void ATL::CSimpleStringT::Fork(int) 3196 void ATL::CSimpleStringT::Fork(int) 3197 void ATL::CStringT > >::Format(unsigned int,...) 3198 void ATL::CStringT > >::Format(wchar_t const *,...) 3199 void ATL::CStringT > >::Format(unsigned int,...) 3200 void ATL::CStringT > >::Format(char const *,...) 3201 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3202 void ATL::CStringT > >::FormatMessageA(unsigned int,...) 3203 void ATL::CStringT > >::FormatMessageA(char const *,...) 3204 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 3205 long CRichEditCtrl::FormatRange(_formatrange *,int) 3206 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 3207 void ATL::CStringT > >::FormatV(char const *,char *) 3208 void COleControl::ForwardActivationMsg(tagMSG *) 3209 void CDC::FrameRect(tagRECT const *,CBrush *) 3210 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3211 void CAfxStringMgr::Free(ATL::CStringData *) 3212 void CDatabase::Free() 3213 void CFixedAlloc::Free(void *) 3214 void CFixedAllocNoSync::Free(void *) 3215 void CMemFile::Free(unsigned char *) 3216 void CSharedFile::Free(unsigned char *) 3217 void CFixedAlloc::FreeAll() 3218 void CFixedAllocNoSync::FreeAll() 3219 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3220 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3221 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3222 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3223 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3224 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3225 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3226 void CRecordset::FreeDataCache() 3227 void CPlex::FreeDataChain() 3228 void ATL::CSimpleStringT::FreeExtra() 3229 void ATL::CSimpleStringT::FreeExtra() 3230 void CByteArray::FreeExtra() 3231 void CDWordArray::FreeExtra() 3232 void CObArray::FreeExtra() 3233 void CPtrArray::FreeExtra() 3234 void CStringArray::FreeExtra() 3235 void CUIntArray::FreeExtra() 3236 void CWordArray::FreeExtra() 3237 void CObList::FreeNode(CObList::CNode *) 3238 void CPtrList::FreeNode(CPtrList::CNode *) 3239 void CStringList::FreeNode(CStringList::CNode *) 3240 void CRecordset::FreeRowset() 3241 void CThreadSlotData::FreeSlot(int) 3242 void CProperty::FreeValue() 3243 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3244 void COleControlContainer::FreezeAllEvents(int) 3245 void COleControlSite::FreezeEvents(int) 3246 long COleControl::XOleControl::FreezeEvents(int) 3247 int COleClientItem::FreezeLink() 3248 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3249 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3250 CBrush * CBrush::FromHandle(HBRUSH__ *) 3251 CDC * CDC::FromHandle(HDC__ *) 3252 CFont * CFont::FromHandle(HFONT__ *) 3253 CGdiObject * CGdiObject::FromHandle(void *) 3254 CObject * CHandleMap::FromHandle(void *) 3255 CImageList * CImageList::FromHandle(_IMAGELIST *) 3256 CMenu * CMenu::FromHandle(HMENU__ *) 3257 CPalette * CPalette::FromHandle(HPALETTE__ *) 3258 CPen * CPen::FromHandle(HPEN__ *) 3259 CRgn * CRgn::FromHandle(HRGN__ *) 3260 CSocket * CSocket::FromHandle(unsigned int) 3261 CWnd * CWnd::FromHandle(HWND__ *) 3262 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3263 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3264 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3265 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3266 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3267 CRuntime* CRuntimeClass::FromName(char const *) 3268 void * CProperty::Get(unsigned long *) 3269 void * CProperty::Get() 3270 void * CPropertySection::Get(unsigned long) 3271 void * CPropertySection::Get(unsigned long,unsigned long *) 3272 void * CPropertySet::Get(_GUID,unsigned long) 3273 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3274 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3275 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3276 long CWnd::get_accChildCount(long *) 3277 long CWnd::XAccessible::get_accChildCount(long *) 3278 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3279 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3280 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3281 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3282 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3283 long CWnd::get_accFocus(tagVARIANT *) 3284 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3285 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3286 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3287 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3288 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3289 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3290 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3291 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3292 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3293 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3294 long CWnd::get_accParent(IDispatch * *) 3295 long CWnd::XAccessible::get_accParent(IDispatch * *) 3296 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3297 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3298 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3299 long CWnd::get_accSelection(tagVARIANT *) 3300 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3301 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3302 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3303 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3304 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3305 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3306 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3307 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3308 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3309 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3310 long CWnd::GetAccessibleChildCount() 3311 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3312 unsigned long COleControl::GetActivationPolicy() 3313 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3314 CDocument * CFrameWnd::GetActiveDocument() 3315 CFrameWnd * CFrameWnd::GetActiveFrame() 3316 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 3317 int CPropertySheet::GetActiveIndex()const 3318 CPropertyPage * CPropertySheet::GetActivePage()const 3319 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3320 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3321 CView * CFrameWnd::GetActiveView()const 3322 CView * COleClientItem::GetActiveView()const 3323 IOleDocumentView * COleDocObjectItem::GetActiveView()const 3324 CRichEditView * CRichEditCntrItem::GetActiveView() 3325 CWnd * CWnd::GetActiveWindow() 3326 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 3327 int CIPAddressCtrl::GetAddress(unsigned long &) 3328 int CHtmlView::GetAddressBar()const 3329 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3330 int ATL::CSimpleStringT::GetAllocLength()const 3331 int ATL::CSimpleStringT::GetAllocLength()const 3332 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 3333 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3334 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3335 int CToolBarCtrl::GetAnchorHighlight()const 3336 int CListBox::GetAnchorIndex()const 3337 short COleControl::GetAppearance() 3338 IDispatch * CHtmlView::GetApplication()const 3339 HKEY__ * CWinApp::GetAppRegistryKey() 3340 int CDC::GetArcDirection()const 3341 CSize CDC::GetAspectRatioFilter()const 3342 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3343 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3344 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3345 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3346 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3347 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3348 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3349 wchar_t ATL::CSimpleStringT::GetAt(int)const 3350 char ATL::CSimpleStringT::GetAt(int)const 3351 unsigned char CByteArray::GetAt(int)const 3352 unsigned long CDWordArray::GetAt(int)const 3353 CObject * CObArray::GetAt(int)const 3354 CObject * & CObList::GetAt(__POSITION *) 3355 CObject const * CObList::GetAt(__POSITION *)const 3356 void * CPtrArray::GetAt(int)const 3357 void * & CPtrList::GetAt(__POSITION *) 3358 void const * CPtrList::GetAt(__POSITION *)const 3359 ATL::CStringT > > const & CStringArray::GetAt(int)const 3360 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3361 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3362 unsigned int CUIntArray::GetAt(int)const 3363 unsigned short CWordArray::GetAt(int)const 3364 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3365 unsigned long COleControl::GetBackColor() 3366 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3367 unsigned int CReBarCtrl::GetBandCount()const 3368 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOA *)const 3369 unsigned int CReBarCtrl::GetBarHeight()const 3370 void CControlBar::GetBarInfo(CControlBarInfo *) 3371 void CDockBar::GetBarInfo(CControlBarInfo *) 3372 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3373 unsigned long CControlBar::GetBarStyle() 3374 unsigned int CSpinButtonCtrl::GetBase()const 3375 unsigned long CAsyncMonikerFile::GetBindInfo()const 3376 IBinding * CAsyncMonikerFile::GetBinding()const 3377 int CBitmap::GetBitmap(tagBITMAP *) 3378 HBITMAP__ * CButton::GetBitmap()const 3379 HBITMAP__ * CStatic::GetBitmap()const 3380 int CToolBarCtrl::GetBitmap(int)const 3381 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3382 CSize CBitmap::GetBitmapDimension()const 3383 unsigned int CToolBarCtrl::GetBitmapFlags()const 3384 int CHeaderCtrl::GetBitmapMargin()const 3385 unsigned long CDC::GetBkColor()const 3386 unsigned long CImageList::GetBkColor()const 3387 unsigned long CListCtrl::GetBkColor()const 3388 unsigned long CReBarCtrl::GetBkColor()const 3389 unsigned long CTreeCtrl::GetBkColor()const 3390 int CListCtrl::GetBkImage(tagLVBKIMAGEA *)const 3391 int CDC::GetBkMode()const 3392 void * CBlobProperty::GetBlob() 3393 void CRecordset::GetBookmark(CDBVariant &) 3394 unsigned long CDatabase::GetBookmarkPersistence()const 3395 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3396 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3397 CRect CControlBar::GetBorders()const 3398 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3399 int CStatusBarCtrl::GetBorders(int *)const 3400 short COleControl::GetBorderStyle() 3401 long CDataSourceControl::GetBoundClientRow() 3402 int CRecordset::GetBoundFieldIndex(void *) 3403 int CRecordset::GetBoundParamIndex(void *) 3404 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3405 CPoint CDC::GetBrushOrg()const 3406 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOA *)const 3407 CWnd * CSliderCtrl::GetBuddy(int)const 3408 CWnd * CSpinButtonCtrl::GetBuddy()const 3409 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 3410 wchar_t * ATL::CSimpleStringT::GetBuffer() 3411 char * ATL::CSimpleStringT::GetBuffer(int) 3412 char * ATL::CSimpleStringT::GetBuffer() 3413 unsigned int CEditView::GetBufferLength()const 3414 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3415 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3416 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3417 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 3418 char * ATL::CSimpleStringT::GetBufferSetLength(int) 3419 int CHtmlView::GetBusy()const 3420 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3421 int CToolBarCtrl::GetButtonCount()const 3422 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3423 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOA *)const 3424 unsigned long CToolBarCtrl::GetButtonSize()const 3425 unsigned int CButton::GetButtonStyle()const 3426 unsigned int CToolBar::GetButtonStyle(int)const 3427 ATL::CStringT > > CToolBar::GetButtonText(int)const 3428 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3429 void COleSafeArray::GetByteArray(CByteArray &) 3430 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3431 unsigned short CPropertySet::GetByteOrder() 3432 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3433 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3434 unsigned int CListCtrl::GetCallbackMask()const 3435 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3436 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3437 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3438 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3439 CWnd * COleControl::GetCapture() 3440 CWnd * CWnd::GetCapture() 3441 long COleControlSite::XOleIPSite::GetCapture() 3442 int CListBox::GetCaretIndex()const 3443 CPoint CWnd::GetCaretPos() 3444 void CSliderCtrl::GetChannelRect(tagRECT *)const 3445 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABC *)const 3446 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABCFLOAT *)const 3447 unsigned long CDC::GetCharacterPlacementA(ATL::CStringT > > &,int,tagGCP_RESULTSA *,unsigned long)const 3448 unsigned long CDC::GetCharacterPlacementA(char const *,int,int,tagGCP_RESULTSA *,unsigned long)const 3449 void CFontDialog::GetCharFormat(_charformat &)const 3450 CHARFORMAT2A & CRichEditView::GetCharFormatSelection() 3451 CPoint CRichEditCtrl::GetCharPos(long)const 3452 int CDC::GetCharWidthA(unsigned int,unsigned int,int *)const 3453 int CDC::GetCharWidthA(unsigned int,unsigned int,float *)const 3454 int CButton::GetCheck()const 3455 int CCheckListBox::GetCheck(int) 3456 int CListCtrl::GetCheck(int)const 3457 int CTreeCtrl::GetCheck(_TREEITEM *)const 3458 int CWnd::GetCheckedRadioButton(int,int) 3459 unsigned int CCheckListBox::GetCheckStyle() 3460 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3461 long CBlobProperty::GetClassID(_GUID *) 3462 void COleClientItem::GetClassID(_GUID *)const 3463 _GUID const & COleConvertDialog::GetClassID()const 3464 _GUID const & COleInsertDialog::GetClassID()const 3465 _GUID const & COleObjectFactory::GetClassID()const 3466 _GUID CPropertySet::GetClassID() 3467 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3468 long COleControl::XPersistMemory::GetClassID(_GUID *) 3469 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3470 long COleControl::XPersistStorage::GetClassID(_GUID *) 3471 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3472 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3473 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 3474 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3475 void COleControl::GetClientOffset(long *,long *)const 3476 void COleControl::GetClientRect(tagRECT *)const 3477 void CWnd::GetClientRect(tagRECT *)const 3478 IOleClientSite * COleClientItem::GetClientSite() 3479 IOleClientSite * COleControl::GetClientSite() 3480 IOleClientSite * COleServerDoc::GetClientSite()const 3481 IOleClientSite * CRichEditCntrItem::GetClientSite() 3482 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3483 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3484 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3485 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3486 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3487 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3488 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3489 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3490 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3491 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3492 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3493 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3494 COleDataSource * COleDataSource::GetClipboardOwner() 3495 CWnd * CWnd::GetClipboardOwner() 3496 CWnd * CWnd::GetClipboardViewer() 3497 int CDC::GetClipBox(tagRECT *)const 3498 int CMetaFileDC::GetClipBox(tagRECT *)const 3499 unsigned long CColorDialog::GetColor()const 3500 unsigned long CFontDialog::GetColor()const 3501 unsigned long CMonthCalCtrl::GetColor(int)const 3502 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3503 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 3504 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3505 int CListCtrl::GetColumn(int,tagLVCOLUMNA *)const 3506 int CSplitterWnd::GetColumnCount()const 3507 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3508 int CListCtrl::GetColumnOrderArray(int *,int) 3509 int CListCtrl::GetColumnWidth(int)const 3510 CComboBox * CComboBoxEx::GetComboBoxCtrl() 3511 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 3512 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 3513 ATL::CStringT > > const & CDatabase::GetConnect()const 3514 void CDatabase::GetConnectInfo() 3515 int CConnectionPoint::GetConnectionCount() 3516 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3517 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3518 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3519 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 3520 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 3521 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3522 CPtrArray const * CConnectionPoint::GetConnections() 3523 IConnectionPointContainer * CConnectionPoint::GetContainer() 3524 IDispatch * CHtmlView::GetContainer()const 3525 IOleItemContainer * COleDocument::GetContainer() 3526 IOleItemContainer * COleLinkingDoc::GetContainer() 3527 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3528 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3529 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3530 unsigned long CInternetConnection::GetContext()const 3531 unsigned long CInternetFile::GetContext()const 3532 unsigned long CInternetSession::GetContext()const 3533 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3534 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3535 COleControl * CDataPathProperty::GetControl() 3536 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3537 COleControlContainer * CWnd::GetControlContainer() 3538 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 3539 unsigned long COleControl::GetControlFlags() 3540 void COleControlSite::GetControlInfo() 3541 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3542 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3543 IUnknown * CCmdTarget::GetControllingUnknown() 3544 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3545 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 3546 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 3547 void COleControl::GetControlSize(int *,int *) 3548 int COlePropertyPage::GetControlStatus(unsigned int) 3549 IUnknown * CWnd::GetControlUnknown() 3550 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3551 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 3552 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 3553 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 3554 int CPrintDialog::GetCopies()const 3555 int CPrintDialogEx::GetCopies()const 3556 int CByteArray::GetCount()const 3557 int CComboBox::GetCount()const 3558 int CControlBar::GetCount()const 3559 int CDWordArray::GetCount()const 3560 int CListBox::GetCount()const 3561 int CMapPtrToPtr::GetCount()const 3562 int CMapPtrToWord::GetCount()const 3563 int CMapStringToOb::GetCount()const 3564 int CMapStringToPtr::GetCount()const 3565 int CMapStringToString::GetCount()const 3566 int CMapWordToOb::GetCount()const 3567 int CMapWordToPtr::GetCount()const 3568 int CObArray::GetCount()const 3569 int CObList::GetCount()const 3570 unsigned long CPropertySection::GetCount() 3571 unsigned long CPropertySet::GetCount() 3572 int CPtrArray::GetCount()const 3573 int CPtrList::GetCount()const 3574 int CStringArray::GetCount()const 3575 int CStringList::GetCount()const 3576 unsigned int CTreeCtrl::GetCount()const 3577 int CUIntArray::GetCount()const 3578 int CWordArray::GetCount()const 3579 int CListCtrl::GetCountPerPage()const 3580 int CFileFind::GetCreationTime(ATL::CTime &)const 3581 int CFileFind::GetCreationTime(_FILETIME *)const 3582 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3583 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3584 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3585 int CTabCtrl::GetCurFocus()const 3586 CBitmap * CDC::GetCurrentBitmap()const 3587 CBrush * CDC::GetCurrentBrush()const 3588 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 3589 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 3590 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3591 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 3592 CFont * CDC::GetCurrentFont()const 3593 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 3594 tagMSG const * CWnd::GetCurrentMessage() 3595 CPalette * CDC::GetCurrentPalette()const 3596 CPen * CDC::GetCurrentPen()const 3597 CPoint CDC::GetCurrentPosition()const 3598 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3599 int CComboBox::GetCurSel()const 3600 int CListBox::GetCurSel()const 3601 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3602 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3603 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3604 int CTabCtrl::GetCurSel()const 3605 HICON__ * CButton::GetCursor() 3606 IUnknown * CDataBoundProperty::GetCursor() 3607 IUnknown * CDataSourceControl::GetCursor() 3608 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3609 HICON__ * CStatic::GetCursor() 3610 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3611 int CDatabase::GetCursorCommitBehavior()const 3612 int CDatabase::GetCursorRollbackBehavior()const 3613 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3614 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3615 unsigned char * CByteArray::GetData() 3616 unsigned char const * CByteArray::GetData()const 3617 unsigned long * CDWordArray::GetData() 3618 unsigned long const * CDWordArray::GetData()const 3619 CObject * * CObArray::GetData() 3620 CObject const * * CObArray::GetData()const 3621 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3622 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3623 void * * CPtrArray::GetData() 3624 void const * * CPtrArray::GetData()const 3625 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3626 ATL::CStringT > > * CStringArray::GetData() 3627 ATL::CStringT > > const * CStringArray::GetData()const 3628 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3629 unsigned int * CUIntArray::GetData() 3630 unsigned int const * CUIntArray::GetData()const 3631 unsigned short * CWordArray::GetData() 3632 unsigned short const * CWordArray::GetData()const 3633 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3634 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3635 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3636 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3637 ATL::CStringT > > CDatabase::GetDatabaseName()const 3638 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3639 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3640 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3641 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3642 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3643 CNoTrackObject * CThreadLocalObject::GetDataNA() 3644 IDataObject * COleServerItem::GetDataObject() 3645 COleControl::CControlDataSource * COleControl::GetDataSource() 3646 COleDataSource * COleServerItem::GetDataSource() 3647 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3648 CDC * CWnd::GetDC() 3649 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3650 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3651 HACCEL__ * CDocument::GetDefaultAccelerator() 3652 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3653 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3654 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 3655 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 3656 ATL::CStringT > > CRecordset::GetDefaultConnect() 3657 short CRecordset::GetDefaultFieldType(short) 3658 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3659 HMENU__ * CDocument::GetDefaultMenu() 3660 HMENU__ * COleServerDoc::GetDefaultMenu() 3661 int CPrintDialog::GetDefaults() 3662 int CPrintDialogEx::GetDefaults() 3663 ATL::CStringT > > CRecordset::GetDefaultSQL() 3664 unsigned long COccManager::GetDefBtnCode(CWnd *) 3665 unsigned long COleControlSite::GetDefBtnCode() 3666 unsigned long CDialog::GetDefID()const 3667 int CToolTipCtrl::GetDelayTime(unsigned long)const 3668 int CDumpContext::GetDepth()const 3669 CWnd * CWnd::GetDescendantWindow(int,int)const 3670 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3671 CWnd * CWnd::GetDesktopWindow() 3672 int CDC::GetDeviceCaps(int)const 3673 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 3674 ATL::CStringT > > CPrintDialog::GetDeviceName()const 3675 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 3676 CPoint CScrollView::GetDeviceScrollPosition()const 3677 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3678 _devicemodeA * CPageSetupDialog::GetDevMode()const 3679 _devicemodeA * CPrintDialog::GetDevMode()const 3680 _devicemodeA * CPrintDialogEx::GetDevMode()const 3681 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3682 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3683 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3684 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3685 DHtmlEventMapEntry const * GetDHtmlEventMap() 3686 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 3687 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 3688 unsigned long COleSafeArray::GetDim() 3689 CImageList * CToolBarCtrl::GetDisabledImageList()const 3690 int CCmdTarget::GetDispatchIID(_GUID *) 3691 int COleControl::GetDispatchIID(_GUID *) 3692 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3693 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3694 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3695 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName() 3696 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 3697 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3698 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3699 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3700 int COleControlSite::GetDlgCtrlID()const 3701 int CWnd::GetDlgCtrlID()const 3702 CWnd * COleControlContainer::GetDlgItem(int)const 3703 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3704 CWnd * CWnd::GetDlgItem(int)const 3705 void CWnd::GetDlgItem(int,HWND__ * *)const 3706 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3707 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3708 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 3709 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 3710 int CWnd::GetDlgItemTextA(int,char *,int)const 3711 CFrameWnd * COleIPFrameWnd::GetDocFrame() 3712 CDockBar * CDockContext::GetDockBar(unsigned long) 3713 CControlBar * CDockBar::GetDockedControlBar(int)const 3714 int CDockBar::GetDockedCount()const 3715 int CDockBar::GetDockedVisibleCount()const 3716 CFrameWnd * CControlBar::GetDockingFrame()const 3717 void CFrameWnd::GetDockState(CDockState &)const 3718 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3719 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3720 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 3721 CDocTemplate * CDocument::GetDocTemplate()const 3722 CDocument * CDocItem::GetDocument()const 3723 COleDocument * COleClientItem::GetDocument()const 3724 COleServerDoc * COleServerItem::GetDocument()const 3725 CRichEditDoc * CRichEditCntrItem::GetDocument() 3726 CRichEditDoc * CRichEditView::GetDocument()const 3727 CDocument * CView::GetDocument()const 3728 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3729 int CDocManager::GetDocumentCount() 3730 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3731 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 3732 enum tagDVASPECT COleClientItem::GetDrawAspect()const 3733 enum tagDVASPECT COleConvertDialog::GetDrawAspect()const 3734 enum tagDVASPECT COleInsertDialog::GetDrawAspect()const 3735 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect()const 3736 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 3737 ATL::CStringT > > CPrintDialog::GetDriverName()const 3738 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 3739 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 3740 void CComboBox::GetDroppedControlRect(tagRECT *)const 3741 int CComboBox::GetDroppedState()const 3742 int CComboBox::GetDroppedWidth()const 3743 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 3744 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 3745 IDropTarget * CReBarCtrl::GetDropTarget()const 3746 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 3747 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 3748 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3749 IUnknown * CWnd::GetDSCCursor() 3750 CEdit * CListCtrl::GetEditControl()const 3751 CEdit * CTreeCtrl::GetEditControl()const 3752 CEdit * CComboBoxEx::GetEditCtrl() 3753 CEdit & CEditView::GetEditCtrl()const 3754 unsigned long CComboBox::GetEditSel()const 3755 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 3756 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 3757 void COleSafeArray::GetElement(long *,void *) 3758 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 3759 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 3760 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 3761 wchar_t * CDHtmlDialog::GetElementText(char const *) 3762 unsigned long COleSafeArray::GetElemSize() 3763 COleServerItem * COleServerDoc::GetEmbeddedItem() 3764 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3765 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3766 int COleControl::GetEnabled() 3767 HENHMETAFILE__ * CStatic::GetEnhMetaFileA()const 3768 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3769 int CPalette::GetEntryCount() 3770 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 3771 int ATL::CStringT > >::GetEnvironmentVariableA(wchar_t const *) 3772 int ATL::CStringT > >::GetEnvironmentVariableA(char const *) 3773 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3774 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3775 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 3776 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3777 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3778 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3779 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3780 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 3781 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 3782 int COleControlSite::GetEventIID(_GUID *) 3783 AFX_EVENTMAP const * COleControl::GetEventMap()const 3784 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 3785 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 3786 long CRichEditCtrl::GetEventMask()const 3787 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3788 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3789 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 3790 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 3791 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 3792 unsigned long COleControlSite::GetExStyle()const 3793 unsigned long CWnd::GetExStyle()const 3794 IDispatch * COleControl::GetExtendedControl() 3795 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3796 unsigned long CComboBoxEx::GetExtendedStyle()const 3797 unsigned long CListCtrl::GetExtendedStyle() 3798 unsigned long CTabCtrl::GetExtendedStyle() 3799 unsigned long CToolBarCtrl::GetExtendedStyle()const 3800 int CComboBox::GetExtendedUI()const 3801 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3802 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3803 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3804 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3805 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3806 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3807 long CBrowserControlSite::GetExternal(IDispatch * *) 3808 long CDHtmlDialog::GetExternal(IDispatch * *) 3809 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 3810 int CPen::GetExtLogPen(tagEXTLOGPEN *) 3811 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3812 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3813 ATL::CStringT > > CFontDialog::GetFaceName()const 3814 short CRecordset::GetFieldIndexByName(char const *) 3815 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3816 unsigned char CRecordset::GetFieldStatus(unsigned long) 3817 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3818 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3819 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3820 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 3821 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 3822 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 3823 CFile * CArchive::GetFile()const 3824 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 3825 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 3826 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3827 ATL::CStringT > > CFileDialog::GetFileExt()const 3828 ATL::CStringT > > CFile::GetFileName()const 3829 ATL::CStringT > > CFileDialog::GetFileName()const 3830 ATL::CStringT > > CFileFind::GetFileName()const 3831 ATL::CStringT > > CGopherFileFind::GetFileName()const 3832 ATL::CStringT > > COleChangeSourceDialog::GetFileName() 3833 ATL::CStringT > > CFile::GetFilePath()const 3834 ATL::CStringT > > CFileFind::GetFilePath()const 3835 ATL::CStringT > > CGopherFileFind::GetFilePath()const 3836 ATL::CStringT > > CFile::GetFileTitle()const 3837 ATL::CStringT > > CFileDialog::GetFileTitle()const 3838 ATL::CStringT > > CFileFind::GetFileTitle()const 3839 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 3840 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3841 ATL::CStringT > > CFileFind::GetFileURL()const 3842 ATL::CStringT > > CFtpFileFind::GetFileURL()const 3843 ATL::CStringT > > CGopherFileFind::GetFileURL()const 3844 ATL::CStringT > > CHttpFile::GetFileURL()const 3845 ATL::CStringT > > CFindReplaceDialog::GetFindString()const 3846 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3847 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3848 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3849 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3850 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3851 CFrameWnd * COleDocument::GetFirstFrame() 3852 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 3853 __POSITION * CDocument::GetFirstViewPosition()const 3854 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 3855 int CEdit::GetFirstVisibleLine()const 3856 int CRichEditCtrl::GetFirstVisibleLine()const 3857 CWnd * COleControl::GetFocus() 3858 CWnd * CWnd::GetFocus() 3859 long COleControlSite::XOleIPSite::GetFocus() 3860 ATL::CStringT > > CFileDialog::GetFolderPath()const 3861 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3862 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3863 IFontDisp * COleControl::GetFont() 3864 CFont * CWnd::GetFont()const 3865 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 3866 IFontDisp * CFontHolder::GetFontDispatch() 3867 HFONT__ * CFontHolder::GetFontHandle(long,long) 3868 HFONT__ * CFontHolder::GetFontHandle() 3869 unsigned long CDC::GetFontLanguageInfo()const 3870 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3871 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 3872 unsigned long COleControl::GetForeColor() 3873 CWnd * CWnd::GetForegroundWindow() 3874 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc()const 3875 _GUID CPropertySection::GetFormatID() 3876 unsigned short CPropertySet::GetFormatVersion() 3877 int CPrintDialog::GetFromPage()const 3878 unsigned int CPrintInfo::GetFromPage()const 3879 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix() 3880 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 3881 ATL::CStringT > > CHtmlView::GetFullName()const 3882 int CHtmlView::GetFullScreen()const 3883 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3884 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3885 unsigned long CDC::GetGlyphOutlineA(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 3886 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 3887 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3888 CBrush * CDC::GetHalftoneBrush() 3889 void * CEdit::GetHandle()const 3890 unsigned int CRectTracker::GetHandleMask()const 3891 void CRectTracker::GetHandleRect(int,CRect *)const 3892 int CRectTracker::GetHandleSize(tagRECT const *)const 3893 unsigned int CMapPtrToPtr::GetHashTableSize()const 3894 unsigned int CMapPtrToWord::GetHashTableSize()const 3895 unsigned int CMapStringToOb::GetHashTableSize()const 3896 unsigned int CMapStringToPtr::GetHashTableSize()const 3897 unsigned int CMapStringToString::GetHashTableSize()const 3898 unsigned int CMapWordToOb::GetHashTableSize()const 3899 unsigned int CMapWordToPtr::GetHashTableSize()const 3900 CObject * & CObList::GetHead() 3901 CObject const * CObList::GetHead()const 3902 void * & CPtrList::GetHead() 3903 void const * CPtrList::GetHead()const 3904 ATL::CStringT > > & CStringList::GetHead() 3905 ATL::CStringT > > const & CStringList::GetHead()const 3906 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 3907 __POSITION * CObList::GetHeadPosition()const 3908 __POSITION * CPtrList::GetHeadPosition()const 3909 __POSITION * CStringList::GetHeadPosition()const 3910 long CHtmlView::GetHeight()const 3911 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3912 enum AFX_HELP_TYPE CWinApp::GetHelpMode() 3913 void CSplitterWnd::GetHitRect(int,CRect &) 3914 unsigned int CComboBox::GetHorizontalExtent()const 3915 int CListBox::GetHorizontalExtent()const 3916 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3917 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3918 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3919 HICON__ * CListCtrl::GetHotCursor() 3920 CImageList * CToolBarCtrl::GetHotImageList()const 3921 int CListCtrl::GetHotItem() 3922 int CToolBarCtrl::GetHotItem()const 3923 unsigned long CHotKeyCtrl::GetHotKey()const 3924 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3925 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 3926 unsigned long CListCtrl::GetHoverTime()const 3927 IDispatch * CHtmlView::GetHtmlDocument()const 3928 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 3929 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 3930 unsigned int COleControl::GetHwnd() 3931 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3932 HICON__ * CButton::GetIcon()const 3933 HICON__ * CStatic::GetIcon()const 3934 HICON__ * CWnd::GetIcon(int)const 3935 HICON__ * COleClientItem::GetIconFromRegistry()const 3936 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3937 void * COleChangeIconDialog::GetIconicMetafile()const 3938 void * COleClientItem::GetIconicMetafile() 3939 void * COleConvertDialog::GetIconicMetafile()const 3940 void * COleInsertDialog::GetIconicMetafile()const 3941 void * COlePasteSpecialDialog::GetIconicMetafile()const 3942 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3943 unsigned long CProperty::GetID() 3944 int CPropertySection::GetID(char const *,unsigned long *) 3945 IDataObject * COleDataObject::GetIDataObject(int) 3946 IDispatch * CCmdTarget::GetIDispatch(int) 3947 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3948 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3949 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3950 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3951 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3952 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3953 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3954 _GUID const & COleControl::XEventConnPt::GetIID() 3955 int CImageList::GetImageCount()const 3956 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 3957 CImageList * CComboBoxEx::GetImageList()const 3958 CImageList * CHeaderCtrl::GetImageList()const 3959 CImageList * CListCtrl::GetImageList(int)const 3960 CImageList * CReBarCtrl::GetImageList()const 3961 CImageList * CTabCtrl::GetImageList()const 3962 CImageList * CToolBarCtrl::GetImageList()const 3963 CImageList * CTreeCtrl::GetImageList(unsigned int)const 3964 unsigned int CTreeCtrl::GetIndent()const 3965 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3966 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3967 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3968 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3969 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 3970 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 3971 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3972 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3973 CWnd * COleClientItem::GetInPlaceWindow() 3974 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 3975 unsigned long CToolBarCtrl::GetInsertMarkColor()const 3976 unsigned long CTreeCtrl::GetInsertMarkColor()const 3977 void CSplitterWnd::GetInsideRect(CRect &)const 3978 IUnknown * CCmdTarget::GetInterface(void const *) 3979 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3980 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3981 IUnknown * COleControl::GetInterfaceHook(void const *) 3982 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3983 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3984 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3985 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 3986 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3987 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3988 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3989 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3990 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 3991 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3992 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3993 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3994 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3995 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3996 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 3997 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3998 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3999 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 4000 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 4001 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 4002 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 4003 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 4004 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 4005 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 4006 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 4007 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 4008 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 4009 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 4010 int CHeaderCtrl::GetItem(int,_HD_ITEMA *)const 4011 int CListCtrl::GetItem(tagLVITEMA *)const 4012 int CTabCtrl::GetItem(int,tagTCITEMA *)const 4013 int CTreeCtrl::GetItem(tagTVITEMA *)const 4014 void COleServerDoc::GetItemClipRect(tagRECT *)const 4015 int CHeaderCtrl::GetItemCount()const 4016 int CListCtrl::GetItemCount()const 4017 int CTabCtrl::GetItemCount()const 4018 unsigned long CComboBox::GetItemData(int)const 4019 unsigned long CListBox::GetItemData(int)const 4020 unsigned long CListCtrl::GetItemData(int)const 4021 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 4022 void * CComboBox::GetItemDataPtr(int)const 4023 void * CListBox::GetItemDataPtr(int)const 4024 int CComboBox::GetItemHeight(int)const 4025 int CListBox::GetItemHeight(int)const 4026 short CTreeCtrl::GetItemHeight()const 4027 unsigned int CStatusBar::GetItemID(int)const 4028 unsigned int CToolBar::GetItemID(int)const 4029 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 4030 ATL::CStringT > > COleChangeSourceDialog::GetItemName() 4031 void COleClientItem::GetItemName(char *)const 4032 ATL::CStringT > > const & COleServerItem::GetItemName()const 4033 int CListCtrl::GetItemPosition(int,tagPOINT *)const 4034 void COleServerDoc::GetItemPosition(tagRECT *)const 4035 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 4036 int CListBox::GetItemRect(int,tagRECT *)const 4037 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 4038 void CStatusBar::GetItemRect(int,tagRECT *)const 4039 int CTabCtrl::GetItemRect(int,tagRECT *)const 4040 void CToolBar::GetItemRect(int,tagRECT *)const 4041 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 4042 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 4043 unsigned int CListCtrl::GetItemState(int,unsigned int)const 4044 unsigned int COleClientItem::GetItemState()const 4045 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 4046 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 4047 void COleClientItem::GetItemStorage() 4048 void COleClientItem::GetItemStorageCompound() 4049 void COleClientItem::GetItemStorageFlat() 4050 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 4051 int CListCtrl::GetItemText(int,int,char *,int)const 4052 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 4053 int CDC::GetKerningPairsA(int,tagKERNINGPAIR *)const 4054 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 4055 int CFileFind::GetLastAccessTime(ATL::CTime &)const 4056 int CFileFind::GetLastAccessTime(_FILETIME *)const 4057 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 4058 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 4059 CWnd * CWnd::GetLastActivePopup()const 4060 int CAsyncSocket::GetLastError() 4061 unsigned int COleDialog::GetLastError()const 4062 long COleClientItem::GetLastStatus()const 4063 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 4064 int CFileFind::GetLastWriteTime(ATL::CTime &)const 4065 int CFileFind::GetLastWriteTime(_FILETIME *)const 4066 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 4067 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 4068 unsigned long CDC::GetLayout()const 4069 long CRecordset::GetLBFetchSize(long) 4070 void COleSafeArray::GetLBound(unsigned long,long *) 4071 long CRecordset::GetLBReallocSize(long) 4072 int CComboBox::GetLBText(int,char *)const 4073 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 4074 int CComboBox::GetLBTextLen(int)const 4075 long CHtmlView::GetLeft()const 4076 int ATL::CSimpleStringT::GetLength()const 4077 int ATL::CSimpleStringT::GetLength()const 4078 unsigned __int64 CFile::GetLength()const 4079 unsigned __int64 CFileFind::GetLength()const 4080 unsigned __int64 CGopherFileFind::GetLength()const 4081 unsigned __int64 CInternetFile::GetLength()const 4082 unsigned __int64 CMemFile::GetLength()const 4083 unsigned __int64 COleStreamFile::GetLength()const 4084 unsigned __int64 CSocketFile::GetLength()const 4085 unsigned __int64 CStdioFile::GetLength()const 4086 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 4087 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 4088 unsigned int CEdit::GetLimitText()const 4089 long CRichEditCtrl::GetLimitText()const 4090 int CEdit::GetLine(int,char *)const 4091 int CEdit::GetLine(int,char *,int)const 4092 int CRichEditCtrl::GetLine(int,char *)const 4093 int CRichEditCtrl::GetLine(int,char *,int)const 4094 unsigned long CTreeCtrl::GetLineColor()const 4095 int CEdit::GetLineCount()const 4096 int CRichEditCtrl::GetLineCount()const 4097 int CSliderCtrl::GetLineSize()const 4098 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 4099 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 4100 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 4101 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 4102 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 4103 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 4104 CPtrList * CPropertySection::GetList() 4105 CPtrList * CPropertySet::GetList() 4106 CListCtrl & CListView::GetListCtrl()const 4107 unsigned long CComboBox::GetLocale()const 4108 unsigned long CListBox::GetLocale()const 4109 ATL::CStringT > > CHtmlView::GetLocationName()const 4110 ATL::CStringT > > CHtmlView::GetLocationURL()const 4111 CGopherLocator CGopherFileFind::GetLocator()const 4112 int CGopherLocator::GetLocatorType(unsigned long &)const 4113 int CBrush::GetLogBrush(tagLOGBRUSH *) 4114 int CFont::GetLogFont(tagLOGFONTA *) 4115 int CPen::GetLogPen(tagLOGPEN *) 4116 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 4117 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 4118 long CFieldExchange::GetLongBinarySize(int) 4119 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4120 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4121 CFrameWnd * COleIPFrameWnd::GetMainFrame() 4122 CWnd * CWinThread::GetMainWnd() 4123 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4124 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4125 int CDC::GetMapMode()const 4126 void CToolTipCtrl::GetMargin(tagRECT *)const 4127 unsigned long CEdit::GetMargins()const 4128 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 4129 CRect CRichEditView::GetMargins()const 4130 int CConnectionPoint::GetMaxConnections() 4131 unsigned int CPrintInfo::GetMaxPage()const 4132 int CMonthCalCtrl::GetMaxSelCount()const 4133 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 4134 int CToolBarCtrl::GetMaxTextRows()const 4135 int CToolTipCtrl::GetMaxTipWidth()const 4136 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 4137 CMenu * CWnd::GetMenu()const 4138 int CHtmlView::GetMenuBar()const 4139 unsigned long CMenu::GetMenuContextHelpId()const 4140 unsigned int CMenu::GetMenuItemCount()const 4141 unsigned int CMenu::GetMenuItemID(int)const 4142 int CMenu::GetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 4143 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 4144 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 4145 int CMenu::GetMenuStringA(unsigned int,char *,int,unsigned int)const 4146 CWnd * CFrameWnd::GetMessageBar() 4147 CWnd * CMDIChildWnd::GetMessageBar() 4148 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 4149 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 4150 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 4151 AFX_MSGMAP const * CControlBar::GetMessageMap()const 4152 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 4153 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 4154 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 4155 AFX_MSGMAP const * CDialog::GetMessageMap()const 4156 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 4157 AFX_MSGMAP const * CDockBar::GetMessageMap()const 4158 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 4159 AFX_MSGMAP const * CDocument::GetMessageMap()const 4160 AFX_MSGMAP const * CEditView::GetMessageMap()const 4161 AFX_MSGMAP const * CFormView::GetMessageMap()const 4162 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 4163 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 4164 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 4165 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 4166 AFX_MSGMAP const * CListView::GetMessageMap()const 4167 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 4168 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 4169 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 4170 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 4171 AFX_MSGMAP const * COleControl::GetMessageMap()const 4172 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 4173 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 4174 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 4175 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 4176 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 4177 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 4178 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 4179 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 4180 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 4181 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 4182 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 4183 AFX_MSGMAP const * CReBar::GetMessageMap()const 4184 AFX_MSGMAP const * CRecordView::GetMessageMap()const 4185 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 4186 AFX_MSGMAP const * CScrollView::GetMessageMap()const 4187 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 4188 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 4189 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 4190 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 4191 AFX_MSGMAP const * CToolBar::GetMessageMap()const 4192 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 4193 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 4194 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 4195 AFX_MSGMAP const * CTreeView::GetMessageMap()const 4196 AFX_MSGMAP const * CView::GetMessageMap()const 4197 AFX_MSGMAP const * CWinApp::GetMessageMap()const 4198 AFX_MSGMAP const * CWnd::GetMessageMap()const 4199 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4200 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4201 long CDataSourceControl::GetMetaData() 4202 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4203 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4204 unsigned int CPrintInfo::GetMinPage()const 4205 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4206 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4207 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4208 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4209 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4210 float CDC::GetMiterLimit()const 4211 int CEdit::GetModify()const 4212 int CRichEditCtrl::GetModify()const 4213 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4214 IMoniker * CMonikerFile::GetMoniker()const 4215 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4216 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4217 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4218 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4219 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4220 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4221 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4222 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4223 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4224 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4225 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4226 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl()const 4227 CFont * CDateTimeCtrl::GetMonthCalFont()const 4228 int CMonthCalCtrl::GetMonthDelta()const 4229 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4230 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4231 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4232 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4233 unsigned long CDC::GetNearestColor(unsigned long)const 4234 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4235 unsigned long COleClientItem::GetNewItemNumber() 4236 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4237 CDataBoundProperty * CDataBoundProperty::GetNext() 4238 CObject * & CObList::GetNext(__POSITION * &) 4239 CObject const * CObList::GetNext(__POSITION * &)const 4240 void * & CPtrList::GetNext(__POSITION * &) 4241 void const * CPtrList::GetNext(__POSITION * &)const 4242 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4243 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4244 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4245 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4246 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4247 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4248 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4249 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4250 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4251 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4252 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4253 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4254 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4255 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4256 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4257 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4258 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4259 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4260 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4261 int COleDataObject::GetNextFormat(tagFORMATETC *) 4262 int CListCtrl::GetNextItem(int,int)const 4263 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4264 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4265 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4266 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4267 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4268 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4269 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4270 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4271 CView * CDocument::GetNextView(__POSITION * &)const 4272 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4273 CWnd * CWnd::GetNextWindow(unsigned int)const 4274 ATL::CStringData * CAfxStringMgr::GetNilString() 4275 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4276 void CCmdTarget::GetNotSupported() 4277 void COleControl::GetNotSupported() 4278 unsigned int CListCtrl::GetNumberOfWorkAreas()const 4279 unsigned int CSliderCtrl::GetNumTics()const 4280 int CGdiObject::GetObjectA(int,void *)const 4281 ATL::CStringT > > CHttpFile::GetObjectA()const 4282 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4283 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4284 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4285 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4286 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 4287 unsigned int CArchive::GetObjectSchema() 4288 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4289 unsigned int CGdiObject::GetObjectType()const 4290 short CRecordset::GetODBCFieldCount()const 4291 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4292 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 4293 int CHtmlView::GetOffline()const 4294 tagOFNA & CFileDialog::GetOFN() 4295 tagOFNA const & CFileDialog::GetOFN()const 4296 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4297 IOleObject * COleServerItem::GetOleObject() 4298 unsigned long COleSafeArray::GetOneDimSize() 4299 CWnd * CWnd::GetOpenClipboardWindow() 4300 int CDocManager::GetOpenDocumentCount() 4301 int CWinApp::GetOpenDocumentCount() 4302 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4303 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4304 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4305 unsigned int CRichEditCtrl::GetOptions()const 4306 int CHeaderCtrl::GetOrderArray(int *,int) 4307 int CListCtrl::GetOrigin(tagPOINT *)const 4308 unsigned long CPropertySet::GetOSVersion() 4309 CWnd * COleControl::GetOuterWindow()const 4310 unsigned int CDC::GetOutlineTextMetricsA(unsigned int,_OUTLINETEXTMETRICA *)const 4311 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4312 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4313 CSize CDC::GetOutputTabbedTextExtent(char const *,int,int,int *)const 4314 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4315 CSize CDC::GetOutputTextExtent(char const *,int)const 4316 int CDC::GetOutputTextMetrics(tagTEXTMETRICA *)const 4317 CWnd * CWnd::GetOwner()const 4318 CPropertyPage * CPropertySheet::GetPage(int)const 4319 int COleDocObjectItem::GetPageCount(long *,long *) 4320 int CPropertySheet::GetPageCount()const 4321 int CPropertySheet::GetPageIndex(CPropertyPage *) 4322 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4323 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4324 CRect CRichEditView::GetPageRect()const 4325 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4326 IPropertyPageSite * COlePropertyPage::GetPageSite() 4327 int CSliderCtrl::GetPageSize()const 4328 CPalette * CReBarCtrl::GetPalette()const 4329 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4330 CWnd * CSplitterWnd::GetPane(int,int)const 4331 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4332 unsigned int CStatusBar::GetPaneStyle(int)const 4333 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4334 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4335 CSize CPageSetupDialog::GetPaperSize()const 4336 CSize CRichEditView::GetPaperSize()const 4337 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4338 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4339 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 4340 CWnd * CWnd::GetParent()const 4341 IDispatch * CHtmlView::GetParentBrowser()const 4342 CFrameWnd * CWnd::GetParentFrame()const 4343 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4344 CWnd * CWnd::GetParentOwner()const 4345 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4346 int CStatusBarCtrl::GetParts(int,int *)const 4347 char CEdit::GetPasswordChar()const 4348 int COlePasteSpecialDialog::GetPasteIndex()const 4349 ATL::CStringT > > CDataPathProperty::GetPath()const 4350 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4351 ATL::CStringT > > const & CDocument::GetPathName()const 4352 ATL::CStringT > > CFileDialog::GetPathName()const 4353 ATL::CStringT > > COleInsertDialog::GetPathName()const 4354 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4355 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4356 IPictureDisp * CPictureHolder::GetPictureDispatch() 4357 unsigned long CDC::GetPixel(int,int)const 4358 unsigned long CDC::GetPixel(tagPOINT)const 4359 int CDC::GetPolyFillMode()const 4360 ATL::CStringT > > CPageSetupDialog::GetPortName()const 4361 ATL::CStringT > > CPrintDialog::GetPortName()const 4362 ATL::CStringT > > CPrintDialogEx::GetPortName()const 4363 int CProgressCtrl::GetPos() 4364 int CSliderCtrl::GetPos()const 4365 int CSpinButtonCtrl::GetPos()const 4366 int CSpinButtonCtrl::GetPos32(int *)const 4367 unsigned __int64 CFile::GetPosition()const 4368 unsigned __int64 CMemFile::GetPosition()const 4369 unsigned __int64 COleStreamFile::GetPosition()const 4370 unsigned __int64 CSocketFile::GetPosition()const 4371 unsigned __int64 CStdioFile::GetPosition()const 4372 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4373 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4374 CObject * & CObList::GetPrev(__POSITION * &) 4375 CObject const * CObList::GetPrev(__POSITION * &)const 4376 void * & CPtrList::GetPrev(__POSITION * &) 4377 void const * CPtrList::GetPrev(__POSITION * &)const 4378 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4379 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4380 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4381 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4382 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4383 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4384 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4385 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4386 HDC__ * CPrintDialog::GetPrinterDC()const 4387 HDC__ * CPrintDialogEx::GetPrinterDC()const 4388 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 4389 CFont * CEditView::GetPrinterFont()const 4390 CRect CRichEditView::GetPrintRect()const 4391 int CRichEditView::GetPrintWidth()const 4392 long CAsyncMonikerFile::GetPriority()const 4393 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 4394 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 4395 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 4396 int COlePropertyPage::GetPropCheck(char const *,int *) 4397 COleVariant CHtmlView::GetProperty(char const *) 4398 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 4399 void COleControlSite::GetProperty(long,unsigned short,void *)const 4400 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4401 CProperty * CPropertySection::GetProperty(unsigned long) 4402 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4403 void CWnd::GetProperty(long,unsigned short,void *)const 4404 int COlePropertyPage::GetPropIndex(char const *,int *) 4405 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4406 int COlePropertyPage::GetPropRadio(char const *,int *) 4407 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4408 int COlePropertyPage::GetPropText(char const *,unsigned char *) 4409 int COlePropertyPage::GetPropText(char const *,short *) 4410 int COlePropertyPage::GetPropText(char const *,int *) 4411 int COlePropertyPage::GetPropText(char const *,unsigned int *) 4412 int COlePropertyPage::GetPropText(char const *,long *) 4413 int COlePropertyPage::GetPropText(char const *,unsigned long *) 4414 int COlePropertyPage::GetPropText(char const *,float *) 4415 int COlePropertyPage::GetPropText(char const *,double *) 4416 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 4417 _PROPSHEETPAGEA & CPropertyPage::GetPSP() 4418 _PROPSHEETPAGEA const & CPropertyPage::GetPSP()const 4419 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4420 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4421 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4422 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4423 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4424 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4425 void CProgressCtrl::GetRange(int &,int &) 4426 void CSliderCtrl::GetRange(int &,int &)const 4427 unsigned long CSpinButtonCtrl::GetRange()const 4428 void CSpinButtonCtrl::GetRange(int &,int &)const 4429 void CSpinButtonCtrl::GetRange32(int &,int &)const 4430 int CSliderCtrl::GetRangeMax()const 4431 int CSliderCtrl::GetRangeMin()const 4432 void * CProperty::GetRawValue() 4433 int CFileDialog::GetReadOnlyPref()const 4434 enum tagREADYSTATE CHtmlView::GetReadyState()const 4435 long COleControl::GetReadyState() 4436 CReBarCtrl & CReBar::GetReBarCtrl()const 4437 long CRecordset::GetRecordCount()const 4438 void CEdit::GetRect(tagRECT *)const 4439 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4440 void CRichEditCtrl::GetRect(tagRECT *)const 4441 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4442 int CToolBarCtrl::GetRect(int,tagRECT *)const 4443 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4444 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4445 int COleControl::GetRectInContainer(tagRECT *) 4446 enum _undonameid CRichEditCtrl::GetRedoName()const 4447 int CRgn::GetRegionData(_RGNDATA *,int)const 4448 int CHtmlView::GetRegisterAsBrowser()const 4449 int CHtmlView::GetRegisterAsDropTarget()const 4450 ATL::CStringT > > CFindReplaceDialog::GetReplaceString()const 4451 int CRgn::GetRgnBox(tagRECT *)const 4452 CRichEditCtrl & CRichEditView::GetRichEditCtrl()const 4453 ATL::CStringT > > CFileFind::GetRoot()const 4454 ATL::CStringT > > CGopherFileFind::GetRoot()const 4455 _TREEITEM * CTreeCtrl::GetRootItem()const 4456 int CDC::GetROP2()const 4457 CFrameWnd * CCmdTarget::GetRoutingFrame() 4458 CFrameWnd * CCmdTarget::GetRoutingFrame_() 4459 CView * CCmdTarget::GetRoutingView() 4460 CView * CCmdTarget::GetRoutingView_() 4461 unsigned int CReBarCtrl::GetRowCount()const 4462 int CSplitterWnd::GetRowCount()const 4463 int CTabCtrl::GetRowCount()const 4464 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4465 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4466 int CToolBarCtrl::GetRows()const 4467 unsigned long CRecordset::GetRowsetSize()const 4468 unsigned long CRecordset::GetRowsFetched()const 4469 unsigned short CRecordset::GetRowStatus(unsigned short)const 4470 CRuntime* CAnimateCtrl::GetRuntimeClass()const 4471 CRuntime* CArchiveException::GetRuntimeClass()const 4472 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 4473 CRuntime* CAsyncSocket::GetRuntimeClass()const 4474 CRuntime* CBitmap::GetRuntimeClass()const 4475 CRuntime* CBitmapButton::GetRuntimeClass()const 4476 CRuntime* CBrush::GetRuntimeClass()const 4477 CRuntime* CButton::GetRuntimeClass()const 4478 CRuntime* CByteArray::GetRuntimeClass()const 4479 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 4480 CRuntime* CCheckListBox::GetRuntimeClass()const 4481 CRuntime* CClientDC::GetRuntimeClass()const 4482 CRuntime* CCmdTarget::GetRuntimeClass()const 4483 CRuntime* CColorDialog::GetRuntimeClass()const 4484 CRuntime* CComboBox::GetRuntimeClass()const 4485 CRuntime* CComboBoxEx::GetRuntimeClass()const 4486 CRuntime* CControlBar::GetRuntimeClass()const 4487 CRuntime* CCriticalSection::GetRuntimeClass()const 4488 CRuntime* CCtrlView::GetRuntimeClass()const 4489 CRuntime* CDatabase::GetRuntimeClass()const 4490 CRuntime* CDataPathProperty::GetRuntimeClass()const 4491 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 4492 CRuntime* CDBException::GetRuntimeClass()const 4493 CRuntime* CDC::GetRuntimeClass()const 4494 CRuntime* CDHtmlDialog::GetRuntimeClass()const 4495 CRuntime* CDialog::GetRuntimeClass()const 4496 CRuntime* CDialogBar::GetRuntimeClass()const 4497 CRuntime* CDocItem::GetRuntimeClass()const 4498 CRuntime* CDockBar::GetRuntimeClass()const 4499 CRuntime* CDockState::GetRuntimeClass()const 4500 CRuntime* CDocManager::GetRuntimeClass()const 4501 CRuntime* CDocObjectServer::GetRuntimeClass()const 4502 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 4503 CRuntime* CDocTemplate::GetRuntimeClass()const 4504 CRuntime* CDocument::GetRuntimeClass()const 4505 CRuntime* CDragListBox::GetRuntimeClass()const 4506 CRuntime* CDWordArray::GetRuntimeClass()const 4507 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 4508 CRuntime* CEdit::GetRuntimeClass()const 4509 CRuntime* CEditView::GetRuntimeClass()const 4510 CRuntime* CEvent::GetRuntimeClass()const 4511 CRuntime* CException::GetRuntimeClass()const 4512 CRuntime* CFile::GetRuntimeClass()const 4513 CRuntime* CFileDialog::GetRuntimeClass()const 4514 CRuntime* CFileException::GetRuntimeClass()const 4515 CRuntime* CFileFind::GetRuntimeClass()const 4516 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 4517 CRuntime* CFont::GetRuntimeClass()const 4518 CRuntime* CFontDialog::GetRuntimeClass()const 4519 CRuntime* CFormView::GetRuntimeClass()const 4520 CRuntime* CFrameWnd::GetRuntimeClass()const 4521 CRuntime* CFtpConnection::GetRuntimeClass()const 4522 CRuntime* CFtpFileFind::GetRuntimeClass()const 4523 CRuntime* CGdiObject::GetRuntimeClass()const 4524 CRuntime* CGopherConnection::GetRuntimeClass()const 4525 CRuntime* CGopherFile::GetRuntimeClass()const 4526 CRuntime* CGopherFileFind::GetRuntimeClass()const 4527 CRuntime* CHeaderCtrl::GetRuntimeClass()const 4528 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 4529 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 4530 CRuntime* CHtmlEditView::GetRuntimeClass()const 4531 CRuntime* CHtmlView::GetRuntimeClass()const 4532 CRuntime* CHttpConnection::GetRuntimeClass()const 4533 CRuntime* CHttpFile::GetRuntimeClass()const 4534 CRuntime* CImageList::GetRuntimeClass()const 4535 CRuntime* CInternetConnection::GetRuntimeClass()const 4536 CRuntime* CInternetException::GetRuntimeClass()const 4537 CRuntime* CInternetFile::GetRuntimeClass()const 4538 CRuntime* CInternetSession::GetRuntimeClass()const 4539 CRuntime* CInvalidArgException::GetRuntimeClass()const 4540 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 4541 CRuntime* CLinkCtrl::GetRuntimeClass()const 4542 CRuntime* CListBox::GetRuntimeClass()const 4543 CRuntime* CListCtrl::GetRuntimeClass()const 4544 CRuntime* CListView::GetRuntimeClass()const 4545 CRuntime* CLongBinary::GetRuntimeClass()const 4546 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 4547 CRuntime* CMapPtrToWord::GetRuntimeClass()const 4548 CRuntime* CMapStringToOb::GetRuntimeClass()const 4549 CRuntime* CMapStringToPtr::GetRuntimeClass()const 4550 CRuntime* CMapStringToString::GetRuntimeClass()const 4551 CRuntime* CMapWordToOb::GetRuntimeClass()const 4552 CRuntime* CMapWordToPtr::GetRuntimeClass()const 4553 CRuntime* CMDIChildWnd::GetRuntimeClass()const 4554 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 4555 CRuntime* CMemFile::GetRuntimeClass()const 4556 CRuntime* CMemoryException::GetRuntimeClass()const 4557 CRuntime* CMenu::GetRuntimeClass()const 4558 CRuntime* CMetaFileDC::GetRuntimeClass()const 4559 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 4560 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 4561 CRuntime* CMonikerFile::GetRuntimeClass()const 4562 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 4563 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 4564 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 4565 CRuntime* CMutex::GetRuntimeClass()const 4566 CRuntime* CNotSupportedException::GetRuntimeClass()const 4567 CRuntime* CObArray::GetRuntimeClass()const 4568 CRuntime* CObject::GetRuntimeClass()const 4569 CRuntime* CObList::GetRuntimeClass()const 4570 CRuntime* COleBusyDialog::GetRuntimeClass()const 4571 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 4572 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 4573 CRuntime* COleClientItem::GetRuntimeClass()const 4574 CRuntime* COleControl::GetRuntimeClass()const 4575 CRuntime* COleControlModule::GetRuntimeClass()const 4576 CRuntime* COleConvertDialog::GetRuntimeClass()const 4577 CRuntime* COleDBRecordView::GetRuntimeClass()const 4578 CRuntime* COleDialog::GetRuntimeClass()const 4579 CRuntime* COleDispatchException::GetRuntimeClass()const 4580 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 4581 CRuntime* COleDocObjectItem::GetRuntimeClass()const 4582 CRuntime* COleDocument::GetRuntimeClass()const 4583 CRuntime* COleException::GetRuntimeClass()const 4584 CRuntime* COleInsertDialog::GetRuntimeClass()const 4585 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 4586 CRuntime* COleLinkingDoc::GetRuntimeClass()const 4587 CRuntime* COleLinksDialog::GetRuntimeClass()const 4588 CRuntime* COleObjectFactory::GetRuntimeClass()const 4589 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 4590 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 4591 CRuntime* COlePropertyPage::GetRuntimeClass()const 4592 CRuntime* COleResizeBar::GetRuntimeClass()const 4593 CRuntime* COleServerDoc::GetRuntimeClass()const 4594 CRuntime* COleServerItem::GetRuntimeClass()const 4595 CRuntime* COleStreamFile::GetRuntimeClass()const 4596 CRuntime* COleUpdateDialog::GetRuntimeClass()const 4597 CRuntime* CPageSetupDialog::GetRuntimeClass()const 4598 CRuntime* CPaintDC::GetRuntimeClass()const 4599 CRuntime* CPalette::GetRuntimeClass()const 4600 CRuntime* CPen::GetRuntimeClass()const 4601 CRuntime* CPreviewDC::GetRuntimeClass()const 4602 CRuntime* CPreviewView::GetRuntimeClass()const 4603 CRuntime* CPrintDialog::GetRuntimeClass()const 4604 CRuntime* CPrintDialogEx::GetRuntimeClass()const 4605 CRuntime* CProgressCtrl::GetRuntimeClass()const 4606 CRuntime* CPropertyPage::GetRuntimeClass()const 4607 CRuntime* CPropertySheet::GetRuntimeClass()const 4608 CRuntime* CPtrArray::GetRuntimeClass()const 4609 CRuntime* CPtrList::GetRuntimeClass()const 4610 CRuntime* CReBar::GetRuntimeClass()const 4611 CRuntime* CReBarCtrl::GetRuntimeClass()const 4612 CRuntime* CRecordset::GetRuntimeClass()const 4613 CRuntime* CRecordView::GetRuntimeClass()const 4614 CRuntime* CResourceException::GetRuntimeClass()const 4615 CRuntime* CRgn::GetRuntimeClass()const 4616 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 4617 CRuntime* CRichEditCtrl::GetRuntimeClass()const 4618 CRuntime* CRichEditDoc::GetRuntimeClass()const 4619 CRuntime* CRichEditView::GetRuntimeClass()const 4620 CRuntime* CScrollBar::GetRuntimeClass()const 4621 CRuntime* CScrollView::GetRuntimeClass()const 4622 CRuntime* CSemaphore::GetRuntimeClass()const 4623 CRuntime* CSharedFile::GetRuntimeClass()const 4624 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 4625 CRuntime* CSliderCtrl::GetRuntimeClass()const 4626 CRuntime* CSocket::GetRuntimeClass()const 4627 CRuntime* CSocketFile::GetRuntimeClass()const 4628 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 4629 CRuntime* CSplitterWnd::GetRuntimeClass()const 4630 CRuntime* CStatic::GetRuntimeClass()const 4631 CRuntime* CStatusBar::GetRuntimeClass()const 4632 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 4633 CRuntime* CStdioFile::GetRuntimeClass()const 4634 CRuntime* CStringArray::GetRuntimeClass()const 4635 CRuntime* CStringList::GetRuntimeClass()const 4636 CRuntime* CSyncObject::GetRuntimeClass()const 4637 CRuntime* CTabCtrl::GetRuntimeClass()const 4638 CRuntime* CToolBar::GetRuntimeClass()const 4639 CRuntime* CToolBarCtrl::GetRuntimeClass()const 4640 CRuntime* CToolTipCtrl::GetRuntimeClass()const 4641 CRuntime* CTreeCtrl::GetRuntimeClass()const 4642 CRuntime* CTreeView::GetRuntimeClass()const 4643 CRuntime* CUIntArray::GetRuntimeClass()const 4644 CRuntime* CUserException::GetRuntimeClass()const 4645 CRuntime* CView::GetRuntimeClass()const 4646 CRuntime* CWinApp::GetRuntimeClass()const 4647 CRuntime* CWindowDC::GetRuntimeClass()const 4648 CRuntime* CWindowlessDC::GetRuntimeClass()const 4649 CRuntime* CWinThread::GetRuntimeClass()const 4650 CRuntime* CWnd::GetRuntimeClass()const 4651 CRuntime* CWordArray::GetRuntimeClass()const 4652 void * CGdiObject::GetSafeHandle()const 4653 _IMAGELIST * CImageList::GetSafeHandle()const 4654 HDC__ * CDC::GetSafeHdc()const 4655 HMENU__ * CMenu::GetSafeHmenu()const 4656 HWND__ * CWnd::GetSafeHwnd()const 4657 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 4658 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 4659 unsigned long * CColorDialog::GetSavedCustomColors() 4660 ATL::CStringT > > CGopherFileFind::GetScreenName()const 4661 CSize CDockState::GetScreenSize() 4662 CScrollBar * CView::GetScrollBarCtrl(int)const 4663 CScrollBar * CWnd::GetScrollBarCtrl(int)const 4664 void CScrollView::GetScrollBarSizes(CSize &) 4665 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 4666 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 4667 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 4668 int CScrollBar::GetScrollLimit() 4669 int CWnd::GetScrollLimit(int) 4670 int CScrollBar::GetScrollPos()const 4671 int CWnd::GetScrollPos(int)const 4672 CPoint CScrollView::GetScrollPosition()const 4673 void CScrollBar::GetScrollRange(int *,int *)const 4674 void CWnd::GetScrollRange(int,int *,int *)const 4675 unsigned long CSplitterWnd::GetScrollStyle()const 4676 unsigned int CTreeCtrl::GetScrollTime()const 4677 CPropertySection * CPropertySet::GetSection(_GUID) 4678 HKEY__ * CWinApp::GetSectionKey(char const *) 4679 char const * CPropertySection::GetSectionName() 4680 unsigned long CEdit::GetSel()const 4681 void CEdit::GetSel(int &,int &)const 4682 int CListBox::GetSel(int)const 4683 void CRichEditCtrl::GetSel(long &,long &)const 4684 void CRichEditCtrl::GetSel(_charrange &)const 4685 int CListBox::GetSelCount()const 4686 unsigned int CListCtrl::GetSelectedCount()const 4687 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 4688 _TREEITEM * CTreeCtrl::GetSelectedItem()const 4689 void CEditView::GetSelectedText(ATL::CStringT > > &)const 4690 void CSliderCtrl::GetSelection(int &,int &)const 4691 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 4692 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 4693 int CListCtrl::GetSelectionMark() 4694 unsigned int COleBusyDialog::GetSelectionType()const 4695 unsigned int COleConvertDialog::GetSelectionType()const 4696 unsigned int COleInsertDialog::GetSelectionType()const 4697 unsigned int COlePasteSpecialDialog::GetSelectionType()const 4698 unsigned short CRichEditCtrl::GetSelectionType()const 4699 int CListBox::GetSelItems(int,int *)const 4700 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 4701 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 4702 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4703 ATL::CStringT > > CRichEditCtrl::GetSelText()const 4704 long CRichEditCtrl::GetSelText(char *)const 4705 ATL::CStringT > > CInternetConnection::GetServerName()const 4706 CInternetSession * CInternetConnection::GetSession()const 4707 int CHtmlView::GetSilent()const 4708 long CPrintDialogEx::GetSite(_GUID const &,void * *) 4709 int CByteArray::GetSize()const 4710 int CDWordArray::GetSize()const 4711 int CFontDialog::GetSize()const 4712 int CMapPtrToPtr::GetSize()const 4713 int CMapPtrToWord::GetSize()const 4714 int CMapStringToOb::GetSize()const 4715 int CMapStringToPtr::GetSize()const 4716 int CMapStringToString::GetSize()const 4717 int CMapWordToOb::GetSize()const 4718 int CMapWordToPtr::GetSize()const 4719 int CObArray::GetSize()const 4720 int CObList::GetSize()const 4721 unsigned long CPropertySection::GetSize() 4722 int CPtrArray::GetSize()const 4723 int CPtrList::GetSize()const 4724 int CStringArray::GetSize()const 4725 int CStringList::GetSize()const 4726 int CUIntArray::GetSize()const 4727 int CWordArray::GetSize()const 4728 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 4729 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 4730 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 4731 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 4732 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 4733 CWnd * CSplitterWnd::GetSizingParent() 4734 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 4735 int CAsyncSocket::GetSockName(sockaddr *,int *) 4736 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 4737 int CHtmlView::GetSource(ATL::CStringT > > &) 4738 ATL::CStringT > > const & CRecordset::GetSQL()const 4739 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 4740 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 4741 char const * CHtmlEditCtrl::GetStartDocument() 4742 char const * CHtmlEditView::GetStartDocument() 4743 __POSITION * CConnectionPoint::GetStartPosition()const 4744 __POSITION * CFileDialog::GetStartPosition()const 4745 __POSITION * CMapPtrToPtr::GetStartPosition()const 4746 __POSITION * CMapPtrToWord::GetStartPosition()const 4747 __POSITION * CMapStringToOb::GetStartPosition()const 4748 __POSITION * CMapStringToPtr::GetStartPosition()const 4749 __POSITION * CMapStringToString::GetStartPosition()const 4750 __POSITION * CMapWordToOb::GetStartPosition()const 4751 __POSITION * CMapWordToPtr::GetStartPosition()const 4752 __POSITION * COleDocument::GetStartPosition()const 4753 __POSITION * CRichEditDoc::GetStartPosition()const 4754 unsigned int CButton::GetState()const 4755 int CToolBarCtrl::GetState(int)const 4756 int CFile::GetStatus(CFileStatus &)const 4757 int CFile::GetStatus(char const *,CFileStatus &) 4758 int CMemFile::GetStatus(CFileStatus &)const 4759 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus()const 4760 int COleStreamFile::GetStatus(CFileStatus &)const 4761 void CRecordset::GetStatus(CRecordsetStatus &)const 4762 int CHtmlView::GetStatusBar()const 4763 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 4764 unsigned long COleControl::GetStockEventMask()const 4765 unsigned long COleControl::GetStockPropMask()const 4766 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 4767 ATL::CStringT > > const COleStreamFile::GetStorageName()const 4768 IStream * COleStreamFile::GetStream()const 4769 int CRichEditDoc::GetStreamFormat()const 4770 int CDC::GetStretchBltMode()const 4771 wchar_t const * ATL::CSimpleStringT::GetString()const 4772 char const * ATL::CSimpleStringT::GetString()const 4773 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 4774 int CToolBarCtrl::GetString(int,char *,int)const 4775 int CListCtrl::GetStringWidth(char const *)const 4776 unsigned long COleControlSite::GetStyle()const 4777 unsigned long COleControlSiteOrWnd::GetStyle()const 4778 unsigned long CToolBarCtrl::GetStyle()const 4779 unsigned long CWnd::GetStyle()const 4780 ATL::CStringT > > CFontDialog::GetStyleName()const 4781 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 4782 CMenu * CMenu::GetSubMenu(int)const 4783 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 4784 int CWinApp::GetSysPolicyValue(unsigned long,int *) 4785 CMenu * CWnd::GetSystemMenu(int)const 4786 CSize CDC::GetTabbedTextExtentA(ATL::CStringT > > const &,int,int *)const 4787 CSize CDC::GetTabbedTextExtentA(char const *,int,int,int *)const 4788 CTabCtrl * CPropertySheet::GetTabControl()const 4789 ATL::CStringT > > const & CRecordset::GetTableName()const 4790 CObject * & CObList::GetTail() 4791 CObject const * CObList::GetTail()const 4792 void * & CPtrList::GetTail() 4793 void const * CPtrList::GetTail()const 4794 ATL::CStringT > > & CStringList::GetTail() 4795 ATL::CStringT > > const & CStringList::GetTail()const 4796 __POSITION * CObList::GetTailPosition()const 4797 __POSITION * CPtrList::GetTailPosition()const 4798 __POSITION * CStringList::GetTailPosition()const 4799 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 4800 int CListBox::GetText(int,char *)const 4801 void CListBox::GetText(int,ATL::CStringT > > &)const 4802 wchar_t * COleControl::GetText() 4803 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 4804 int CStatusBarCtrl::GetText(char *,int,int *)const 4805 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 4806 unsigned int CDC::GetTextAlign()const 4807 unsigned long CListCtrl::GetTextBkColor()const 4808 int CDC::GetTextCharacterExtra()const 4809 unsigned long CDC::GetTextColor()const 4810 unsigned long CListCtrl::GetTextColor()const 4811 unsigned long CReBarCtrl::GetTextColor()const 4812 unsigned long CTreeCtrl::GetTextColor()const 4813 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 4814 CSize CDC::GetTextExtent(char const *,int)const 4815 int CDC::GetTextFaceA(ATL::CStringT > > &)const 4816 int CDC::GetTextFaceA(int,char *)const 4817 int CListBox::GetTextLen(int)const 4818 long CRecordset::GetTextLen(short,unsigned long) 4819 long CRichEditCtrl::GetTextLength()const 4820 long CRichEditView::GetTextLength()const 4821 int CStatusBarCtrl::GetTextLength(int,int *)const 4822 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 4823 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 4824 int CDC::GetTextMetricsA(tagTEXTMETRICA *)const 4825 unsigned int CRichEditCtrl::GetTextMode()const 4826 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 4827 int CHtmlView::GetTheaterMode()const 4828 CRuntime* CAnimateCtrl::GetThisClass() 4829 CRuntime* CArchiveException::GetThisClass() 4830 CRuntime* CAsyncMonikerFile::GetThisClass() 4831 CRuntime* CAsyncSocket::GetThisClass() 4832 CRuntime* CBitmap::GetThisClass() 4833 CRuntime* CBitmapButton::GetThisClass() 4834 CRuntime* CBrush::GetThisClass() 4835 CRuntime* CButton::GetThisClass() 4836 CRuntime* CByteArray::GetThisClass() 4837 CRuntime* CCachedDataPathProperty::GetThisClass() 4838 CRuntime* CCheckListBox::GetThisClass() 4839 CRuntime* CClientDC::GetThisClass() 4840 CRuntime* CCmdTarget::GetThisClass() 4841 CRuntime* CColorDialog::GetThisClass() 4842 CRuntime* CComboBox::GetThisClass() 4843 CRuntime* CComboBoxEx::GetThisClass() 4844 CRuntime* CControlBar::GetThisClass() 4845 CRuntime* CCriticalSection::GetThisClass() 4846 CRuntime* CCtrlView::GetThisClass() 4847 CRuntime* CDatabase::GetThisClass() 4848 CRuntime* CDataPathProperty::GetThisClass() 4849 CRuntime* CDateTimeCtrl::GetThisClass() 4850 CRuntime* CDBException::GetThisClass() 4851 CRuntime* CDC::GetThisClass() 4852 CRuntime* CDHtmlDialog::GetThisClass() 4853 CRuntime* CDialog::GetThisClass() 4854 CRuntime* CDialogBar::GetThisClass() 4855 CRuntime* CDocItem::GetThisClass() 4856 CRuntime* CDockBar::GetThisClass() 4857 CRuntime* CDockState::GetThisClass() 4858 CRuntime* CDocManager::GetThisClass() 4859 CRuntime* CDocObjectServer::GetThisClass() 4860 CRuntime* CDocObjectServerItem::GetThisClass() 4861 CRuntime* CDocTemplate::GetThisClass() 4862 CRuntime* CDocument::GetThisClass() 4863 CRuntime* CDragListBox::GetThisClass() 4864 CRuntime* CDWordArray::GetThisClass() 4865 CRuntime* CDynLinkLibrary::GetThisClass() 4866 CRuntime* CEdit::GetThisClass() 4867 CRuntime* CEditView::GetThisClass() 4868 CRuntime* CEvent::GetThisClass() 4869 CRuntime* CException::GetThisClass() 4870 CRuntime* CFile::GetThisClass() 4871 CRuntime* CFileDialog::GetThisClass() 4872 CRuntime* CFileException::GetThisClass() 4873 CRuntime* CFileFind::GetThisClass() 4874 CRuntime* CFindReplaceDialog::GetThisClass() 4875 CRuntime* CFont::GetThisClass() 4876 CRuntime* CFontDialog::GetThisClass() 4877 CRuntime* CFormView::GetThisClass() 4878 CRuntime* CFrameWnd::GetThisClass() 4879 CRuntime* CFtpConnection::GetThisClass() 4880 CRuntime* CFtpFileFind::GetThisClass() 4881 CRuntime* CGdiObject::GetThisClass() 4882 CRuntime* CGopherConnection::GetThisClass() 4883 CRuntime* CGopherFile::GetThisClass() 4884 CRuntime* CGopherFileFind::GetThisClass() 4885 CRuntime* CHeaderCtrl::GetThisClass() 4886 CRuntime* CHotKeyCtrl::GetThisClass() 4887 CRuntime* CHtmlEditDoc::GetThisClass() 4888 CRuntime* CHtmlEditView::GetThisClass() 4889 CRuntime* CHtmlView::GetThisClass() 4890 CRuntime* CHttpConnection::GetThisClass() 4891 CRuntime* CHttpFile::GetThisClass() 4892 CRuntime* CImageList::GetThisClass() 4893 CRuntime* CInternetConnection::GetThisClass() 4894 CRuntime* CInternetException::GetThisClass() 4895 CRuntime* CInternetFile::GetThisClass() 4896 CRuntime* CInternetSession::GetThisClass() 4897 CRuntime* CInvalidArgException::GetThisClass() 4898 CRuntime* CIPAddressCtrl::GetThisClass() 4899 CRuntime* CLinkCtrl::GetThisClass() 4900 CRuntime* CListBox::GetThisClass() 4901 CRuntime* CListCtrl::GetThisClass() 4902 CRuntime* CListView::GetThisClass() 4903 CRuntime* CLongBinary::GetThisClass() 4904 CRuntime* CMapPtrToPtr::GetThisClass() 4905 CRuntime* CMapPtrToWord::GetThisClass() 4906 CRuntime* CMapStringToOb::GetThisClass() 4907 CRuntime* CMapStringToPtr::GetThisClass() 4908 CRuntime* CMapStringToString::GetThisClass() 4909 CRuntime* CMapWordToOb::GetThisClass() 4910 CRuntime* CMapWordToPtr::GetThisClass() 4911 CRuntime* CMDIChildWnd::GetThisClass() 4912 CRuntime* CMDIFrameWnd::GetThisClass() 4913 CRuntime* CMemFile::GetThisClass() 4914 CRuntime* CMemoryException::GetThisClass() 4915 CRuntime* CMenu::GetThisClass() 4916 CRuntime* CMetaFileDC::GetThisClass() 4917 CRuntime* CMiniDockFrameWnd::GetThisClass() 4918 CRuntime* CMiniFrameWnd::GetThisClass() 4919 CRuntime* CMonikerFile::GetThisClass() 4920 CRuntime* CMonthCalCtrl::GetThisClass() 4921 CRuntime* CMultiDocTemplate::GetThisClass() 4922 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 4923 CRuntime* CMutex::GetThisClass() 4924 CRuntime* CNotSupportedException::GetThisClass() 4925 CRuntime* CObArray::GetThisClass() 4926 CRuntime* CObject::GetThisClass() 4927 CRuntime* CObList::GetThisClass() 4928 CRuntime* COleBusyDialog::GetThisClass() 4929 CRuntime* COleChangeIconDialog::GetThisClass() 4930 CRuntime* COleChangeSourceDialog::GetThisClass() 4931 CRuntime* COleClientItem::GetThisClass() 4932 CRuntime* COleControl::GetThisClass() 4933 CRuntime* COleControlModule::GetThisClass() 4934 CRuntime* COleConvertDialog::GetThisClass() 4935 CRuntime* COleDBRecordView::GetThisClass() 4936 CRuntime* COleDialog::GetThisClass() 4937 CRuntime* COleDispatchException::GetThisClass() 4938 CRuntime* COleDocIPFrameWnd::GetThisClass() 4939 CRuntime* COleDocObjectItem::GetThisClass() 4940 CRuntime* COleDocument::GetThisClass() 4941 CRuntime* COleException::GetThisClass() 4942 CRuntime* COleInsertDialog::GetThisClass() 4943 CRuntime* COleIPFrameWnd::GetThisClass() 4944 CRuntime* COleLinkingDoc::GetThisClass() 4945 CRuntime* COleLinksDialog::GetThisClass() 4946 CRuntime* COleObjectFactory::GetThisClass() 4947 CRuntime* COlePasteSpecialDialog::GetThisClass() 4948 CRuntime* COlePropertiesDialog::GetThisClass() 4949 CRuntime* COlePropertyPage::GetThisClass() 4950 CRuntime* COleResizeBar::GetThisClass() 4951 CRuntime* COleServerDoc::GetThisClass() 4952 CRuntime* COleServerItem::GetThisClass() 4953 CRuntime* COleStreamFile::GetThisClass() 4954 CRuntime* COleUpdateDialog::GetThisClass() 4955 CRuntime* CPageSetupDialog::GetThisClass() 4956 CRuntime* CPaintDC::GetThisClass() 4957 CRuntime* CPalette::GetThisClass() 4958 CRuntime* CPen::GetThisClass() 4959 CRuntime* CPreviewDC::GetThisClass() 4960 CRuntime* CPreviewView::GetThisClass() 4961 CRuntime* CPrintDialog::GetThisClass() 4962 CRuntime* CPrintDialogEx::GetThisClass() 4963 CRuntime* CProgressCtrl::GetThisClass() 4964 CRuntime* CPropertyPage::GetThisClass() 4965 CRuntime* CPropertySheet::GetThisClass() 4966 CRuntime* CPtrArray::GetThisClass() 4967 CRuntime* CPtrList::GetThisClass() 4968 CRuntime* CReBar::GetThisClass() 4969 CRuntime* CReBarCtrl::GetThisClass() 4970 CRuntime* CRecordset::GetThisClass() 4971 CRuntime* CRecordView::GetThisClass() 4972 CRuntime* CResourceException::GetThisClass() 4973 CRuntime* CRgn::GetThisClass() 4974 CRuntime* CRichEditCntrItem::GetThisClass() 4975 CRuntime* CRichEditCtrl::GetThisClass() 4976 CRuntime* CRichEditDoc::GetThisClass() 4977 CRuntime* CRichEditView::GetThisClass() 4978 CRuntime* CScrollBar::GetThisClass() 4979 CRuntime* CScrollView::GetThisClass() 4980 CRuntime* CSemaphore::GetThisClass() 4981 CRuntime* CSharedFile::GetThisClass() 4982 CRuntime* CSingleDocTemplate::GetThisClass() 4983 CRuntime* CSliderCtrl::GetThisClass() 4984 CRuntime* CSocket::GetThisClass() 4985 CRuntime* CSocketFile::GetThisClass() 4986 CRuntime* CSpinButtonCtrl::GetThisClass() 4987 CRuntime* CSplitterWnd::GetThisClass() 4988 CRuntime* CStatic::GetThisClass() 4989 CRuntime* CStatusBar::GetThisClass() 4990 CRuntime* CStatusBarCtrl::GetThisClass() 4991 CRuntime* CStdioFile::GetThisClass() 4992 CRuntime* CStringArray::GetThisClass() 4993 CRuntime* CStringList::GetThisClass() 4994 CRuntime* CSyncObject::GetThisClass() 4995 CRuntime* CTabCtrl::GetThisClass() 4996 CRuntime* CToolBar::GetThisClass() 4997 CRuntime* CToolBarCtrl::GetThisClass() 4998 CRuntime* CToolTipCtrl::GetThisClass() 4999 CRuntime* CTreeCtrl::GetThisClass() 5000 CRuntime* CTreeView::GetThisClass() 5001 CRuntime* CUIntArray::GetThisClass() 5002 CRuntime* CUserException::GetThisClass() 5003 CRuntime* CView::GetThisClass() 5004 CRuntime* CWinApp::GetThisClass() 5005 CRuntime* CWindowDC::GetThisClass() 5006 CRuntime* CWindowlessDC::GetThisClass() 5007 CRuntime* CWinThread::GetThisClass() 5008 CRuntime* CWnd::GetThisClass() 5009 CRuntime* CWordArray::GetThisClass() 5010 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 5011 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 5012 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 5013 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 5014 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 5015 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 5016 AFX_EVENTMAP const * COleControl::GetThisEventMap() 5017 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 5018 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 5019 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 5020 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 5021 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 5022 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 5023 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 5024 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 5025 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 5026 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 5027 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 5028 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 5029 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 5030 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 5031 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 5032 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 5033 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 5034 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 5035 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 5036 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 5037 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 5038 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 5039 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 5040 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 5041 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 5042 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 5043 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 5044 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 5045 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 5046 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 5047 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 5048 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 5049 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 5050 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 5051 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 5052 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 5053 AFX_MSGMAP const * CDialog::GetThisMessageMap() 5054 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 5055 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 5056 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 5057 AFX_MSGMAP const * CDocument::GetThisMessageMap() 5058 AFX_MSGMAP const * CEditView::GetThisMessageMap() 5059 AFX_MSGMAP const * CFormView::GetThisMessageMap() 5060 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 5061 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 5062 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 5063 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 5064 AFX_MSGMAP const * CListView::GetThisMessageMap() 5065 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 5066 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 5067 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 5068 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 5069 AFX_MSGMAP const * COleControl::GetThisMessageMap() 5070 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 5071 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 5072 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 5073 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 5074 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 5075 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 5076 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 5077 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 5078 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 5079 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 5080 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 5081 AFX_MSGMAP const * CReBar::GetThisMessageMap() 5082 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 5083 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 5084 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 5085 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 5086 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 5087 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 5088 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 5089 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 5090 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 5091 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 5092 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 5093 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 5094 AFX_MSGMAP const * CView::GetThisMessageMap() 5095 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 5096 AFX_MSGMAP const * CWnd::GetThisMessageMap() 5097 int CWinThread::GetThreadPriority() 5098 void CSliderCtrl::GetThumbRect(tagRECT *)const 5099 int CSliderCtrl::GetTic(int)const 5100 unsigned long * CSliderCtrl::GetTicArray()const 5101 int CSliderCtrl::GetTicPos(int)const 5102 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 5103 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 5104 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 5105 unsigned long CToolTipCtrl::GetTipBkColor()const 5106 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 5107 unsigned long CToolTipCtrl::GetTipTextColor()const 5108 ATL::CStringT > > const & CDocument::GetTitle()const 5109 ATL::CStringT > > CFrameWnd::GetTitle()const 5110 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 5111 int CMonthCalCtrl::GetToday(ATL::CTime &)const 5112 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 5113 int CHtmlView::GetToolBar()const 5114 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 5115 int CToolTipCtrl::GetToolCount()const 5116 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 5117 CToolTipCtrl * CListCtrl::GetToolTips()const 5118 CToolTipCtrl * CReBarCtrl::GetToolTips()const 5119 CToolTipCtrl * CSliderCtrl::GetToolTips()const 5120 CToolTipCtrl * CTabCtrl::GetToolTips()const 5121 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 5122 CToolTipCtrl * CTreeCtrl::GetToolTips()const 5123 long CHtmlView::GetTop()const 5124 int CPrintDialog::GetToPage()const 5125 unsigned int CPrintInfo::GetToPage()const 5126 int CComboBox::GetTopIndex()const 5127 int CListBox::GetTopIndex()const 5128 int CListCtrl::GetTopIndex()const 5129 int CHtmlView::GetTopLevelContainer()const 5130 CFrameWnd * CWnd::GetTopLevelFrame()const 5131 CWnd * CWnd::GetTopLevelOwner()const 5132 CWnd * CWnd::GetTopLevelParent()const 5133 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix() 5134 CWnd * CWnd::GetTopWindow()const 5135 CSize CScrollView::GetTotalSize()const 5136 CTreeCtrl & CTreeView::GetTreeCtrl()const 5137 int CScrollView::GetTrueClientSize(CSize &,CSize &) 5138 void CRectTracker::GetTrueRect(tagRECT *)const 5139 ATL::CStringT > > CHtmlView::GetType()const 5140 enum OLE_OBJTYPE COleClientItem::GetType()const 5141 short CPictureHolder::GetType() 5142 unsigned long CProperty::GetType() 5143 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5144 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5145 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5146 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5147 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5148 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5149 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5150 unsigned int CCmdTarget::GetTypeInfoCount() 5151 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 5152 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 5153 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 5154 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 5155 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 5156 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 5157 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 5158 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 5159 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 5160 CTypeLibCache * CCmdTarget::GetTypeLibCache() 5161 void COleSafeArray::GetUBound(unsigned long,long *) 5162 enum _undonameid CRichEditCtrl::GetUndoName()const 5163 int CWnd::GetUpdateRect(tagRECT *,int) 5164 int CWnd::GetUpdateRgn(CRgn *,int) 5165 int CByteArray::GetUpperBound()const 5166 int CDWordArray::GetUpperBound()const 5167 int CObArray::GetUpperBound()const 5168 int CPtrArray::GetUpperBound()const 5169 int CStringArray::GetUpperBound()const 5170 int CUIntArray::GetUpperBound()const 5171 int CWordArray::GetUpperBound()const 5172 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 5173 long COleControl::XOleObject::GetUserClassID(_GUID *) 5174 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 5175 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 5176 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 5177 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 5178 void COleControl::GetUserType(char *) 5179 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 5180 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 5181 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 5182 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 5183 void * CMapPtrToPtr::GetValueAt(void *)const 5184 ATL::CStringT > > CHttpFile::GetVerb()const 5185 unsigned long CDockState::GetVersion() 5186 unsigned long CPropExchange::GetVersion() 5187 CHtmlEditView * CHtmlEditDoc::GetView()const 5188 CRichEditView * CRichEditDoc::GetView()const 5189 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 5190 CSize CDC::GetViewportExt()const 5191 CPoint CDC::GetViewportOrg()const 5192 int CListCtrl::GetViewRect(tagRECT *)const 5193 long COleControl::XViewObject::GetViewStatus(unsigned long *) 5194 int CHtmlView::GetVisible()const 5195 unsigned int CTreeCtrl::GetVisibleCount()const 5196 int CFontDialog::GetWeight()const 5197 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 5198 long CHtmlView::GetWidth()const 5199 CWnd * CDC::GetWindow()const 5200 CWnd * CWnd::GetWindow(unsigned int)const 5201 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5202 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5203 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5204 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5205 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5206 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5207 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5208 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5209 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5210 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5211 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5212 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5213 unsigned long CWnd::GetWindowContextHelpId()const 5214 CDC * CWnd::GetWindowDC() 5215 long CWnd::GetWindowedChildCount() 5216 CSize CDC::GetWindowExt()const 5217 long CWnd::GetWindowLessChildCount() 5218 IDropTarget * COleControl::GetWindowlessDropTarget() 5219 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5220 CPoint CDC::GetWindowOrg()const 5221 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5222 void CWnd::GetWindowRect(tagRECT *)const 5223 int CWnd::GetWindowRgn(HRGN__ *)const 5224 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 5225 int CWnd::GetWindowTextA(char *,int)const 5226 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 5227 int CWnd::GetWindowTextLengthA()const 5228 unsigned int CRichEditCtrl::GetWordWrapMode()const 5229 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5230 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5231 long COleDropSource::GiveFeedback(unsigned long) 5232 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5233 void CHtmlView::GoBack() 5234 void CHtmlView::GoForward() 5235 void CHtmlView::GoHome() 5236 void CHtmlView::GoSearch() 5237 void CDialog::GotoDlgCtrl(CWnd *) 5238 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5239 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5240 int CDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5241 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5242 void CMemFile::GrowFile(unsigned long) 5243 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5244 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5245 long CDialog::HandleInitDialog(unsigned int,long) 5246 long CDialogBar::HandleInitDialog(unsigned int,long) 5247 long CFormView::HandleInitDialog(unsigned int,long) 5248 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5249 long CPropertySheet::HandleInitDialog(unsigned int,long) 5250 long CScrollView::HandleMButtonDown(unsigned int,long) 5251 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5252 int COleControlContainer::HandleSetFocus() 5253 long CDialog::HandleSetFont(unsigned int,long) 5254 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5255 long COleControl::XPersistStorage::HandsOffStorage() 5256 long COleServerDoc::XPersistStorage::HandsOffStorage() 5257 int COleDocument::HasBlankItems()const 5258 int CComboBoxEx::HasEditChanged() 5259 int CDialogTemplate::HasFont()const 5260 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5261 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 5262 void * CFile::hFileNull 5263 void CWinApp::HideApplication() 5264 int CToolBarCtrl::HideButton(int,int) 5265 void CWnd::HideCaret() 5266 void CFileDialog::HideControl(int) 5267 void CRichEditCtrl::HideSelection(int,int) 5268 long CBrowserControlSite::HideUI() 5269 long CDHtmlDialog::HideUI() 5270 long CHtmlControlSite::XDocHostUIHandler::HideUI() 5271 int CTabCtrl::HighlightItem(int,int) 5272 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5273 void CDC::HIMETRICtoDP(tagSIZE *)const 5274 void CDC::HIMETRICtoLP(tagSIZE *)const 5275 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5276 int CListCtrl::HitTest(CPoint,unsigned int *)const 5277 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5278 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5279 int CRectTracker::HitTest(CPoint)const 5280 int CSplitterWnd::HitTest(CPoint)const 5281 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5282 int CToolBarCtrl::HitTest(tagPOINT *)const 5283 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 5284 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5285 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5286 int CRectTracker::HitTestHandles(CPoint)const 5287 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 5288 void CWnd::HtmlHelpA(unsigned long,unsigned int) 5289 int CSplitterWnd::IdFromRowCol(int,int)const 5290 int CReBarCtrl::IDToIndex(unsigned int)const 5291 void COlePropertyPage::IgnoreApply(unsigned int) 5292 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5293 int CToolBarCtrl::Indeterminate(int,int) 5294 int CCriticalSection::Init() 5295 int CWinApp::InitApplication() 5296 long COleControl::XOleCache::InitCache(IDataObject *) 5297 int CWnd::InitControlContainer(int) 5298 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5299 long CPrintDialogEx::InitDone() 5300 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5301 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5302 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5303 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5304 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5305 void CMapPtrToWord::InitHashTable(unsigned int,int) 5306 void CMapStringToOb::InitHashTable(unsigned int,int) 5307 void CMapStringToPtr::InitHashTable(unsigned int,int) 5308 void CMapStringToString::InitHashTable(unsigned int,int) 5309 void CMapWordToOb::InitHashTable(unsigned int,int) 5310 void CMapWordToPtr::InitHashTable(unsigned int,int) 5311 long CDataSourceControl::Initialize() 5312 void CDHtmlDialog::Initialize() 5313 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5314 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5315 int CEditView::InitializeReplace() 5316 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5317 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5318 int COleControlModule::InitInstance() 5319 int CWinApp::InitInstance() 5320 int CWinThread::InitInstance() 5321 void CWinApp::InitLibId() 5322 void CDockContext::InitLoop() 5323 int CDialog::InitModalIndirect(void *,CWnd *) 5324 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5325 long COleControl::XPersistMemory::InitNew() 5326 long COleControl::XPersistPropertyBag::InitNew() 5327 long COleControl::XPersistStorage::InitNew(IStorage *) 5328 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5329 long COleControl::XPersistStreamInit::InitNew() 5330 void CRecordset::InitRecord() 5331 void COleControl::InitStockEventMask() 5332 void COleControl::InitStockPropMask() 5333 int CComboBox::InitStorage(int,unsigned int) 5334 int CListBox::InitStorage(int,unsigned int) 5335 void CSimpleException::InitString() 5336 int CFrameWnd::InModalState()const 5337 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 5338 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 5339 int ATL::CStringT > >::Insert(int,wchar_t) 5340 int ATL::CStringT > >::Insert(int,wchar_t const *) 5341 int ATL::CStringT > >::Insert(int,char) 5342 int ATL::CStringT > >::Insert(int,char const *) 5343 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5344 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5345 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5346 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5347 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 5348 void CByteArray::InsertAt(int,unsigned char,int) 5349 void CByteArray::InsertAt(int,CByteArray *) 5350 void CDWordArray::InsertAt(int,unsigned long,int) 5351 void CDWordArray::InsertAt(int,CDWordArray *) 5352 void CObArray::InsertAt(int,CObArray *) 5353 void CObArray::InsertAt(int,CObject *,int) 5354 void CPtrArray::InsertAt(int,CPtrArray *) 5355 void CPtrArray::InsertAt(int,void *,int) 5356 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5357 void CStringArray::InsertAt(int,CStringArray const *) 5358 void CStringArray::InsertAt(int,char const *,int) 5359 void CUIntArray::InsertAt(int,unsigned int,int) 5360 void CUIntArray::InsertAt(int,CUIntArray *) 5361 void CWordArray::InsertAt(int,unsigned short,int) 5362 void CWordArray::InsertAt(int,CWordArray *) 5363 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOA *) 5364 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5365 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5366 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5367 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 5368 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5369 int CListCtrl::InsertColumn(int,char const *,int,int,int) 5370 int CListCtrl::InsertColumn(int,tagLVCOLUMNA const *) 5371 void CStringArray::InsertEmpty(int,int) 5372 void CRichEditView::InsertFileAsObject(char const *) 5373 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 5374 int CHeaderCtrl::InsertItem(int,_HD_ITEMA *) 5375 int CListCtrl::InsertItem(int,char const *) 5376 int CListCtrl::InsertItem(int,char const *,int) 5377 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 5378 int CListCtrl::InsertItem(tagLVITEMA const *) 5379 long CRichEditView::InsertItem(CRichEditCntrItem *) 5380 long CTabCtrl::InsertItem(int,tagTCITEMA *) 5381 long CTabCtrl::InsertItem(int,char const *) 5382 long CTabCtrl::InsertItem(int,char const *,int) 5383 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 5384 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 5385 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5386 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTA *) 5387 _TREEITEM * CTreeCtrl::InsertItem(char const *,int,int,_TREEITEM *,_TREEITEM *) 5388 _TREEITEM * CTreeCtrl::InsertItem(char const *,_TREEITEM *,_TREEITEM *) 5389 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5390 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,char const *) 5391 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5392 int CMenu::InsertMenuItemA(unsigned int,tagMENUITEMINFOA *,int) 5393 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5394 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5395 int CComboBox::InsertString(int,char const *) 5396 int CComboBoxEx::InsertString(int,char const *) 5397 int CListBox::InsertString(int,char const *) 5398 unsigned long CCmdTarget::InternalAddRef() 5399 CFontHolder & COleControl::InternalGetFont() 5400 ATL::CStringT > > const & COleControl::InternalGetText() 5401 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5402 unsigned long CCmdTarget::InternalRelease() 5403 void COleControl::InternalSetReadyState(long) 5404 int CDC::IntersectClipRect(int,int,int,int) 5405 int CDC::IntersectClipRect(tagRECT const *) 5406 void CWnd::Invalidate(int) 5407 void CCheckListBox::InvalidateCheck(int) 5408 void COleControl::InvalidateControl(tagRECT const *,int) 5409 void CCheckListBox::InvalidateItem(int) 5410 void CRichEditDoc::InvalidateObjectCache() 5411 void CWnd::InvalidateRect(tagRECT const *,int) 5412 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5413 void COleControl::InvalidateRgn(CRgn *,int) 5414 void CWnd::InvalidateRgn(CRgn *,int) 5415 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5416 void CDC::InvertRect(tagRECT const *) 5417 int CDC::InvertRgn(CRgn *) 5418 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5419 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5420 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5421 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5422 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5423 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5424 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5425 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5426 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5427 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5428 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5429 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5430 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5431 int CAsyncSocket::IOCtl(long,unsigned long *) 5432 int CFileFind::IsArchived()const 5433 int CPropExchange::IsAsynchronous() 5434 int CDocItem::IsBlank()const 5435 int CIPAddressCtrl::IsBlank()const 5436 int COleServerItem::IsBlank()const 5437 int CSocket::IsBlocking() 5438 int CRecordset::IsBOF()const 5439 int CFontDialog::IsBold()const 5440 int CArchive::IsBufferEmpty()const 5441 int CToolBarCtrl::IsButtonChecked(int)const 5442 int CPropertyPage::IsButtonEnabled(int) 5443 int CToolBarCtrl::IsButtonEnabled(int)const 5444 int CToolBarCtrl::IsButtonHidden(int)const 5445 int CToolBarCtrl::IsButtonHighlighted(int)const 5446 int CToolBarCtrl::IsButtonIndeterminate(int)const 5447 int CToolBarCtrl::IsButtonPressed(int)const 5448 int CArchive::IsByteSwapping()const 5449 int CWnd::IsChild(CWnd const *)const 5450 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5451 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5452 int CFileFind::IsCompressed()const 5453 int COleServerItem::IsConnected()const 5454 int COleControl::IsConvertingVBX() 5455 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5456 int COleControlSite::IsDefaultButton() 5457 int CRecordset::IsDeleted()const 5458 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5459 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 5460 int CWnd::IsDialogMessageA(tagMSG *) 5461 int CFileFind::IsDirectory()const 5462 long CBlobProperty::IsDirty() 5463 long COleLinkingDoc::XPersistFile::IsDirty() 5464 long COleControl::XPersistMemory::IsDirty() 5465 long COleControl::XPersistStorage::IsDirty() 5466 long COleServerDoc::XPersistStorage::IsDirty() 5467 long COleControl::XPersistStreamInit::IsDirty() 5468 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5469 unsigned int CWnd::IsDlgButtonChecked(int)const 5470 int CControlBar::IsDockBar()const 5471 int CDockBar::IsDockBar()const 5472 int COleServerDoc::IsDocObject()const 5473 int CFileFind::IsDots()const 5474 int CGopherFileFind::IsDots()const 5475 int COleServerDoc::IsEmbedded()const 5476 bool ATL::CSimpleStringT::IsEmpty()const 5477 bool ATL::CSimpleStringT::IsEmpty()const 5478 int CByteArray::IsEmpty()const 5479 int CDWordArray::IsEmpty()const 5480 int CMapPtrToPtr::IsEmpty()const 5481 int CMapPtrToWord::IsEmpty()const 5482 int CMapStringToOb::IsEmpty()const 5483 int CMapStringToPtr::IsEmpty()const 5484 int CMapStringToString::IsEmpty()const 5485 int CMapWordToOb::IsEmpty()const 5486 int CMapWordToPtr::IsEmpty()const 5487 int CObArray::IsEmpty()const 5488 int CObList::IsEmpty()const 5489 int CPtrArray::IsEmpty()const 5490 int CPtrList::IsEmpty()const 5491 int CStringArray::IsEmpty()const 5492 int CStringList::IsEmpty()const 5493 int CUIntArray::IsEmpty()const 5494 int CWordArray::IsEmpty()const 5495 int CCheckListBox::IsEnabled(int) 5496 int CRecordset::IsEOF()const 5497 int CDHtmlDialog::IsExternalDispatchSafe() 5498 int CRecordset::IsFieldDirty(void *) 5499 int CRecordset::IsFieldNull(void *) 5500 int CRecordset::IsFieldNullable(void *) 5501 int CRecordset::IsFieldNullable(unsigned long)const 5502 int CRecordset::IsFieldStatusDirty(unsigned long)const 5503 int CRecordset::IsFieldStatusNull(unsigned long)const 5504 int CFieldExchange::IsFieldType(unsigned int *) 5505 int CControlBar::IsFloating()const 5506 int CFrameWnd::IsFrameWnd()const 5507 int CWnd::IsFrameWnd()const 5508 int IsHelpKey(tagMSG *) 5509 int CFileFind::IsHidden()const 5510 int CWnd::IsIconic()const 5511 int CWinThread::IsIdleMessage(tagMSG *) 5512 int COleClientItem::IsInPlaceActive()const 5513 int COleServerDoc::IsInPlaceActive()const 5514 int CCmdTarget::IsInvokeAllowed(long) 5515 int COleControl::IsInvokeAllowed(long) 5516 int CFontDialog::IsItalic()const 5517 int CRecordset::IsJoin(char const *) 5518 int CObject::IsKindOf(CRuntimeconst *)const 5519 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5520 int COccManager::IsLabelControl(CWnd *) 5521 int COleObjectFactory::IsLicenseValid() 5522 int COleServerItem::IsLinkedItem()const 5523 int COleClientItem::IsLinkUpToDate()const 5524 int CArchive::IsLoading()const 5525 int CPropExchange::IsLoading() 5526 int CMultiLock::IsLocked(unsigned long) 5527 int CSingleLock::IsLocked() 5528 int CRichEditCntrItem::IsMarked() 5529 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5530 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5531 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5532 int CDocument::IsModified() 5533 int CHtmlEditDoc::IsModified() 5534 int COleClientItem::IsModified()const 5535 int COleControl::IsModified() 5536 int COlePropertyPage::IsModified() 5537 int CRichEditDoc::IsModified() 5538 int CFileFind::IsNormal()const 5539 int CRecordView::IsOnFirstRecord() 5540 int CRecordView::IsOnLastRecord() 5541 int CDatabase::IsOpen()const 5542 int COleClientItem::IsOpen()const 5543 int CRecordset::IsOpen()const 5544 int COleControl::IsOptimizedDraw() 5545 long COlePropertyPage::XPropertyPage::IsPageDirty() 5546 int CRecordset::IsParamStatusNull(unsigned long)const 5547 int CDC::IsPrinting()const 5548 int CFileFind::IsReadOnly()const 5549 int CRecordset::IsRecordsetUpdatable() 5550 int COleObjectFactory::IsRegistered()const 5551 int CCmdTarget::IsResultExpected() 5552 int CRichEditView::IsRichEditFormat(unsigned short) 5553 int COleClientItem::IsRunning()const 5554 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 5555 int CRichEditView::IsSelected(CObject const *)const 5556 int CView::IsSelected(CObject const *)const 5557 int CRecordset::IsSelectQueryUpdatable(char const *) 5558 int CObject::IsSerializable()const 5559 int COleMessageFilter::IsSignificantMessage(tagMSG *) 5560 int CStatusBarCtrl::IsSimple()const 5561 int CDHtmlDialog::IsSinkedElement(IDispatch *) 5562 int CRecordset::IsSQLUpdatable(char const *) 5563 int CArchive::IsStoring()const 5564 int CFontDialog::IsStrikeOut()const 5565 int COleControl::IsSubclassedControl() 5566 int CFileFind::IsSystem()const 5567 int CFileFind::IsTemporary()const 5568 int CFindReplaceDialog::IsTerminating()const 5569 int CWnd::IsTopParentActive()const 5570 int CFrameWnd::IsTracking()const 5571 int CSplitterWnd::IsTracking() 5572 int CFontDialog::IsUnderline()const 5573 long CDocObjectServer::XOleObject::IsUpToDate() 5574 long COleControl::XOleObject::IsUpToDate() 5575 long COleServerDoc::XOleObject::IsUpToDate() 5576 long COleServerItem::XOleObject::IsUpToDate() 5577 int COleChangeSourceDialog::IsValidSource() 5578 int CControlBar::IsVisible()const 5579 int COleControlSite::IsWindowEnabled()const 5580 int CWnd::IsWindowEnabled()const 5581 int CWnd::IsWindowVisible()const 5582 int CPropertySheet::IsWizard()const 5583 int CWnd::IsZoomed()const 5584 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 5585 int CDragListBox::ItemFromPt(CPoint,int)const 5586 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 5587 void COleControl::KeyDown(unsigned short *) 5588 void COleControl::KeyUp(unsigned short *) 5589 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 5590 int CWnd::KillTimer(unsigned int) 5591 int CHeaderCtrl::Layout(_HD_LAYOUT *) 5592 void CToolBar::Layout() 5593 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5594 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5595 int CComboBox::LimitText(int) 5596 void CEdit::LimitText(int) 5597 void CRichEditCtrl::LimitText(long) 5598 int CEdit::LineFromChar(int)const 5599 long CRichEditCtrl::LineFromChar(long)const 5600 int CEdit::LineIndex(int)const 5601 int CRichEditCtrl::LineIndex(int)const 5602 int CEdit::LineLength(int)const 5603 int CRichEditCtrl::LineLength(int)const 5604 void CEdit::LineScroll(int,int) 5605 void CRichEditCtrl::LineScroll(int,int) 5606 int CDC::LineTo(int,int) 5607 int CDC::LineTo(tagPOINT) 5608 int CAsyncSocket::Listen(int) 5609 unsigned long CRichEditView::lMaxSize 5610 long CBlobProperty::Load(IStream *) 5611 int CDialogTemplate::Load(char const *) 5612 void COleControl::Load(char const *,CDataPathProperty &) 5613 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 5614 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 5615 long COleControl::XPersistMemory::Load(void *,unsigned long) 5616 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 5617 long COleControl::XPersistStorage::Load(IStorage *) 5618 long COleServerDoc::XPersistStorage::Load(IStorage *) 5619 long COleControl::XPersistStreamInit::Load(IStream *) 5620 int CFrameWnd::LoadAccelTable(char const *) 5621 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 5622 void CFrameWnd::LoadBarState(char const *) 5623 int CBitmap::LoadBitmapA(unsigned int) 5624 int CBitmap::LoadBitmapA(char const *) 5625 int CToolBar::LoadBitmapA(unsigned int) 5626 int CToolBar::LoadBitmapA(char const *) 5627 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 5628 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 5629 HICON__ * CWinApp::LoadCursorA(unsigned int)const 5630 HICON__ * CWinApp::LoadCursorA(char const *)const 5631 void CRecordset::LoadFields() 5632 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5633 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5634 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5635 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5636 int CDHtmlDialog::LoadFromResource(unsigned int) 5637 int CDHtmlDialog::LoadFromResource(char const *) 5638 int CHtmlView::LoadFromResource(unsigned int) 5639 int CHtmlView::LoadFromResource(char const *) 5640 void COleDocument::LoadFromStorage() 5641 HICON__ * CWinApp::LoadIconA(unsigned int)const 5642 HICON__ * CWinApp::LoadIconA(char const *)const 5643 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 5644 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 5645 int CMenu::LoadMenuA(unsigned int) 5646 int CMenu::LoadMenuA(char const *) 5647 int CMenu::LoadMenuIndirectA(void const *) 5648 int CBitmap::LoadOEMBitmap(unsigned int) 5649 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 5650 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 5651 HICON__ * CWinApp::LoadStandardCursor(char const *)const 5652 HICON__ * CWinApp::LoadStandardIcon(char const *)const 5653 int CControlBarInfo::LoadState(char const *,int,CDockState *) 5654 void CDockState::LoadState(char const *) 5655 long COleControl::LoadState(IStream *) 5656 void CWinApp::LoadStdProfileSettings(unsigned int) 5657 int ATL::CStringT > >::LoadStringA(unsigned int) 5658 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 5659 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 5660 int ATL::CStringT > >::LoadStringA(unsigned int) 5661 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 5662 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 5663 int CWinApp::LoadSysPolicies() 5664 void CDocTemplate::LoadTemplate() 5665 void CMultiDocTemplate::LoadTemplate() 5666 int CToolBar::LoadToolBar(unsigned int) 5667 int CToolBar::LoadToolBar(char const *) 5668 int CCriticalSection::Lock() 5669 int CCriticalSection::Lock(unsigned long) 5670 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 5671 void COleSafeArray::Lock() 5672 int CSingleLock::Lock(unsigned long) 5673 int CSyncObject::Lock(unsigned long) 5674 void CTypeLibCache::Lock() 5675 wchar_t * ATL::CSimpleStringT::LockBuffer() 5676 char * ATL::CSimpleStringT::LockBuffer() 5677 char const * CEditView::LockBuffer()const 5678 long COleControlContainer::XOleContainer::LockContainer(int) 5679 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 5680 void COleLinkingDoc::LockExternal(int,int) 5681 int COleControl::LockInPlaceActive(int) 5682 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 5683 void CFile::LockRange(unsigned __int64,unsigned __int64) 5684 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 5685 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 5686 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 5687 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 5688 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 5689 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5690 long COleObjectFactory::XClassFactory::LockServer(int) 5691 int CWnd::LockWindowUpdate() 5692 int CMapPtrToPtr::Lookup(void *,void * &)const 5693 int CMapPtrToWord::Lookup(void *,unsigned short &)const 5694 int CMapStringToOb::Lookup(char const *,CObject * &)const 5695 int CMapStringToPtr::Lookup(char const *,void * &)const 5696 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 5697 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 5698 int CMapWordToPtr::Lookup(unsigned short,void * &)const 5699 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 5700 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 5701 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 5702 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 5703 int CMapStringToOb::LookupKey(char const *,char const * &)const 5704 int CMapStringToPtr::LookupKey(char const *,char const * &)const 5705 int CMapStringToString::LookupKey(char const *,char const * &)const 5706 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 5707 void CDC::LPtoDP(tagPOINT *,int)const 5708 void CDC::LPtoDP(tagRECT *)const 5709 void CDC::LPtoDP(tagSIZE *)const 5710 void CDC::LPtoHIMETRIC(tagSIZE *)const 5711 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5712 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5713 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5714 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5715 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5716 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5717 int CToolBarCtrl::MapAccelerator(char,unsigned int *) 5718 void CDialog::MapDialogRect(tagRECT *)const 5719 void CPropertySheet::MapDialogRect(tagRECT *)const 5720 void CArchive::MapObject(CObject const *) 5721 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 5722 int COleDialog::MapResult(unsigned int) 5723 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 5724 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 5725 long CPropertyPage::MapWizardResult(long) 5726 void CRichEditCntrItem::Mark(int) 5727 int CToolBarCtrl::MarkButton(int,int) 5728 void CRecordset::MarkForAddNew() 5729 void CRecordset::MarkForUpdate() 5730 void CRichEditDoc::MarkItemsClear()const 5731 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 5732 int CFindReplaceDialog::MatchCase()const 5733 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 5734 int CFileFind::MatchesMask(unsigned long)const 5735 int CFindReplaceDialog::MatchWholeWord()const 5736 void CReBarCtrl::MaximizeBand(unsigned int) 5737 void CMDIChildWnd::MDIActivate() 5738 void CMDIFrameWnd::MDIActivate(CWnd *) 5739 void CMDIFrameWnd::MDICascade(int) 5740 void CMDIFrameWnd::MDICascade() 5741 void CMDIChildWnd::MDIDestroy() 5742 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 5743 void CMDIFrameWnd::MDIIconArrange() 5744 void CMDIChildWnd::MDIMaximize() 5745 void CMDIFrameWnd::MDIMaximize(CWnd *) 5746 void CMDIFrameWnd::MDINext() 5747 void CMDIFrameWnd::MDIPrev() 5748 void CMDIChildWnd::MDIRestore() 5749 void CMDIFrameWnd::MDIRestore(CWnd *) 5750 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 5751 void CMDIFrameWnd::MDITile(int) 5752 void CMDIFrameWnd::MDITile() 5753 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 5754 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 5755 void CComboBox::MeasureItem(tagMEASUREITEM*) 5756 void CListBox::MeasureItem(tagMEASUREITEM*) 5757 void CMenu::MeasureItem(tagMEASUREITEM*) 5758 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 5759 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 5760 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 5761 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 5762 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 5763 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5764 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5765 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5766 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5767 void CReBarCtrl::MinimizeBand(unsigned int) 5768 void CPreviewDC::MirrorAttributes() 5769 void CPreviewDC::MirrorFont() 5770 void CPreviewDC::MirrorMappingMode(int) 5771 void CPreviewDC::MirrorViewportOrg() 5772 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,char const *) 5773 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5774 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 5775 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 5776 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 5777 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5778 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5779 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 5780 void CDockContext::Move(CPoint) 5781 void CRecordset::Move(long,unsigned short) 5782 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 5783 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 5784 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 5785 void CRecordset::MoveFirst() 5786 void CRecordset::MoveLast() 5787 void CRecordset::MoveNext() 5788 void CRecordset::MovePrev() 5789 CPoint CDC::MoveTo(int,int) 5790 CPoint CDC::MoveTo(tagPOINT) 5791 void COleControlSite::MoveWindow(int,int,int,int) 5792 void CWnd::MoveWindow(int,int,int,int,int) 5793 void CWnd::MoveWindow(tagRECT const *,int) 5794 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5795 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5796 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 5797 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 5798 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 5799 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 5800 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 5801 unsigned int COleDropSource::nDragDelay 5802 unsigned int COleDropSource::nDragMinDist 5803 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 5804 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 5805 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 5806 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 5807 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 5808 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 5809 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 5810 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 5811 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 5812 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 5813 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 5814 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 5815 void CDialog::NextDlgCtrl()const 5816 unsigned int const CEditView::nMaxSize 5817 int CRectTracker::NormalizeHit(int)const 5818 void CDataBoundProperty::Notify() 5819 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 5820 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 5821 void COleServerDoc::NotifyChanged() 5822 void COleServerItem::NotifyChanged(enum tagDVASPECT) 5823 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 5824 void COleServerDoc::NotifyClosed() 5825 void CFrameWnd::NotifyFloatingWindows(unsigned long) 5826 void COleServerDoc::NotifyRename(char const *) 5827 void COleServerDoc::NotifySaved() 5828 void CWnd::NotifyWinEvent(unsigned long,long,long) 5829 unsigned int COleDropTarget::nScrollDelay 5830 int COleDropTarget::nScrollInset 5831 unsigned int COleDropTarget::nScrollInterval 5832 void ATL::CStringT > >::OemToCharA() 5833 int CDC::OffsetClipRgn(int,int) 5834 int CDC::OffsetClipRgn(tagSIZE) 5835 int CProgressCtrl::OffsetPos(int) 5836 int CRgn::OffsetRgn(int,int) 5837 int CRgn::OffsetRgn(tagPOINT) 5838 CPoint CDC::OffsetViewportOrg(int,int) 5839 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 5840 CPoint CPreviewDC::OffsetViewportOrg(int,int) 5841 CPoint CDC::OffsetWindowOrg(int,int) 5842 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5843 void CAsyncSocket::OnAccept(int) 5844 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 5845 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 5846 void COleClientItem::OnActivate() 5847 void COleFrameHook::OnActivate(int) 5848 void CWnd::OnActivate(unsigned int,CWnd *,int) 5849 void CWnd::OnActivateApp(int,unsigned long) 5850 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 5851 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 5852 long COleControl::OnActivateInPlace(int,tagMSG *) 5853 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 5854 long CWnd::OnActivateTopLevel(unsigned int,long) 5855 void COleClientItem::OnActivateUI() 5856 long CDocObjectServer::OnActivateView() 5857 void CFormView::OnActivateView(int,CView *,CView *) 5858 void CPreviewView::OnActivateView(int,CView *,CView *) 5859 void CRichEditView::OnActivateView(int,CView *,CView *) 5860 void CView::OnActivateView(int,CView *,CView *) 5861 long CToolTipCtrl::OnAddTool(unsigned int,long) 5862 void CConnectionPoint::OnAdvise(int) 5863 void COleControl::XEventConnPt::OnAdvise(int) 5864 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 5865 void COleControl::OnAmbientPropertyChange(long) 5866 long COleControl::XOleControl::OnAmbientPropertyChange(long) 5867 void COleControl::OnAppearanceChanged() 5868 void CWinApp::OnAppExit() 5869 int CPropertyPage::OnApply() 5870 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 5871 void CDocObjectServer::OnApplyViewState(CArchive &) 5872 void CWnd::OnAskCbFormatName(unsigned int,char *) 5873 void COleControl::OnBackColorChanged() 5874 int CFrameWnd::OnBarCheck(unsigned int) 5875 int COleIPFrameWnd::OnBarCheck(unsigned int) 5876 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 5877 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 5878 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 5879 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 5880 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 5881 int COleDropSource::OnBeginDrag(CWnd *) 5882 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5883 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5884 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 5885 void COleControl::OnBorderStyleChanged() 5886 void CRichEditView::OnBullet() 5887 int COleMessageFilter::OnBusyDialog(HTASK__ *) 5888 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 5889 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 5890 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 5891 void CCommonDialog::OnCancel() 5892 void CDialog::OnCancel() 5893 void CPropertyPage::OnCancel() 5894 void CRichEditView::OnCancelEditCntr() 5895 void COleControl::OnCancelMode() 5896 void CSplitterWnd::OnCancelMode() 5897 void CWnd::OnCancelMode() 5898 void CWnd::OnCaptureChanged(CWnd *) 5899 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 5900 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 5901 long COleControl::XFontNotification::OnChanged(long) 5902 long COleControlSite::XPropertyNotifySink::OnChanged(long) 5903 long COlePropertyPage::XPropNotifySink::OnChanged(long) 5904 void CRectTracker::OnChangedRect(CRect const &) 5905 void CDocument::OnChangedViewList() 5906 int COleClientItem::OnChangeItemPosition(CRect const &) 5907 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 5908 void CWnd::OnChangeUIState(unsigned int,unsigned int) 5909 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 5910 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 5911 void CRichEditView::OnCharBold() 5912 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 5913 void CRichEditView::OnCharItalic() 5914 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 5915 void CRichEditView::OnCharUnderline() 5916 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 5917 void CWnd::OnChildActivate() 5918 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 5919 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5920 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5921 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5922 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5923 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5924 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5925 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 5926 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 5927 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 5928 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5929 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5930 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 5931 void COleControl::OnClick(unsigned short) 5932 CEnumArray * CEnumArray::OnClone() 5933 CEnumArray * CEnumConnections::OnClone() 5934 void CAsyncSocket::OnClose(int) 5935 void CControlFrameWnd::OnClose() 5936 void CFrameWnd::OnClose() 5937 void CMiniDockFrameWnd::OnClose() 5938 void COleControl::OnClose(unsigned long) 5939 void COleServerDoc::OnClose(enum tagOLECLOSE) 5940 void CPropertySheet::OnClose() 5941 void CWnd::OnClose() 5942 void COleClientItem::XAdviseSink::OnClose() 5943 void CDocObjectServer::OnCloseDocument() 5944 void CDocument::OnCloseDocument() 5945 void COleDocument::OnCloseDocument() 5946 void COleLinkingDoc::OnCloseDocument() 5947 void COleServerDoc::OnCloseDocument() 5948 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5949 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5950 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5951 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5952 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5953 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5954 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5955 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5956 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5957 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5958 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5959 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5960 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5961 void CRichEditView::OnColorDefault() 5962 int CColorDialog::OnColorOK() 5963 void CRichEditView::OnColorPick(unsigned long) 5964 int CFrameWnd::OnCommand(unsigned int,long) 5965 int CMDIFrameWnd::OnCommand(unsigned int,long) 5966 int COlePropertyPage::OnCommand(unsigned int,long) 5967 int CPropertySheet::OnCommand(unsigned int,long) 5968 int CSplitterWnd::OnCommand(unsigned int,long) 5969 int CWnd::OnCommand(unsigned int,long) 5970 long CDialog::OnCommandHelp(unsigned int,long) 5971 long CFrameWnd::OnCommandHelp(unsigned int,long) 5972 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 5973 long CPropertySheet::OnCommandHelp(unsigned int,long) 5974 void CHtmlView::OnCommandStateChange(long,int) 5975 void CWnd::OnCompacting(unsigned int) 5976 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 5977 void CAsyncSocket::OnConnect(int) 5978 void CFrameWnd::OnContextHelp() 5979 int COleFrameHook::OnContextHelp(int) 5980 void COleIPFrameWnd::OnContextHelp() 5981 void CWinApp::OnContextHelp() 5982 void CWnd::OnContextMenu(CWnd *,CPoint) 5983 long COleControlSite::XOleControlSite::OnControlInfoChanged() 5984 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 5985 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 5986 int CControlBar::OnCreate(tagCREATESTRUCTA *) 5987 int CEditView::OnCreate(tagCREATESTRUCTA *) 5988 int CFormView::OnCreate(tagCREATESTRUCTA *) 5989 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 5990 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 5991 int COleControl::OnCreate(tagCREATESTRUCTA *) 5992 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 5993 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 5994 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 5995 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 5996 int CView::OnCreate(tagCREATESTRUCTA *) 5997 int CWnd::OnCreate(tagCREATESTRUCTA *) 5998 int CCmdTarget::OnCreateAggregates() 5999 int COleControl::OnCreateAggregates() 6000 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 6001 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 6002 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 6003 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 6004 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 6005 CCmdTarget * COleObjectFactory::OnCreateObject() 6006 CCmdTarget * COleTemplateServer::OnCreateObject() 6007 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 6008 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6009 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6010 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 6011 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 6012 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 6013 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 6014 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6015 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6016 int CDocManager::OnDDECommand(char *) 6017 int CWinApp::OnDDECommand(char *) 6018 long CFrameWnd::OnDDEExecute(unsigned int,long) 6019 long CFrameWnd::OnDDEInitiate(unsigned int,long) 6020 long CFrameWnd::OnDDETerminate(unsigned int,long) 6021 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 6022 void COleClientItem::OnDeactivate() 6023 void COleServerDoc::OnDeactivate() 6024 void COleClientItem::OnDeactivateAndUndo() 6025 void COleClientItem::OnDeactivateUI(int) 6026 void COleServerDoc::OnDeactivateUI(int) 6027 void CRichEditCntrItem::OnDeactivateUI(int) 6028 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 6029 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 6030 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 6031 void CControlBar::OnDestroy() 6032 void CDHtmlDialog::OnDestroy() 6033 void CEditView::OnDestroy() 6034 void CFrameWnd::OnDestroy() 6035 void CHtmlView::OnDestroy() 6036 void CMDIChildWnd::OnDestroy() 6037 void CMDIFrameWnd::OnDestroy() 6038 void COleControl::OnDestroy() 6039 void COleIPFrameWnd::OnDestroy() 6040 void CRichEditView::OnDestroy() 6041 void CTabCtrl::OnDestroy() 6042 void CTreeCtrl::OnDestroy() 6043 void CTreeView::OnDestroy() 6044 void CView::OnDestroy() 6045 void CWnd::OnDestroy() 6046 void CWnd::OnDestroyClipboard() 6047 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 6048 int CWnd::OnDeviceChange(unsigned int,unsigned long) 6049 void CRichEditView::OnDevModeChange(char *) 6050 void CWnd::OnDevModeChange(char *) 6051 long CToolTipCtrl::OnDisableModal(unsigned int,long) 6052 void COleClientItem::OnDiscardUndoState() 6053 void CSplitterWnd::OnDisplayChange() 6054 long CWnd::OnDisplayChange(unsigned int,long) 6055 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 6056 int COleFrameHook::OnDocActivate(int) 6057 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 6058 void CHtmlView::OnDocumentComplete(char const *) 6059 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 6060 long CBrowserControlSite::OnDocWindowActivate(int) 6061 long CDHtmlDialog::OnDocWindowActivate(int) 6062 long CHtmlView::OnDocWindowActivate(int) 6063 void COleServerDoc::OnDocWindowActivate(int) 6064 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 6065 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6066 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6067 void CDocObjectServerItem::OnDoVerb(long) 6068 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 6069 void COleServerItem::OnDoVerb(long) 6070 void CHtmlView::OnDownloadBegin() 6071 void CHtmlView::OnDownloadComplete() 6072 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 6073 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 6074 void COleDropTarget::OnDragLeave(CWnd *) 6075 void CView::OnDragLeave() 6076 long CWnd::OnDragList(unsigned int,long) 6077 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 6078 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 6079 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 6080 unsigned long CView::OnDragScroll(unsigned long,CPoint) 6081 void CCtrlView::OnDraw(CDC *) 6082 void CFormView::OnDraw(CDC *) 6083 void CHtmlView::OnDraw(CDC *) 6084 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 6085 void CPreviewView::OnDraw(CDC *) 6086 void CView::OnDraw(CDC *) 6087 void CWnd::OnDrawClipboard() 6088 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 6089 void CWnd::OnDrawItem(int,tagDRAWITEM*) 6090 void COleControl::OnDrawMetafile(CDC *,CRect const &) 6091 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 6092 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 6093 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 6094 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 6095 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 6096 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 6097 void CFrameWnd::OnDropFiles(HDROP__ *) 6098 void CRichEditView::OnDropFiles(HDROP__ *) 6099 void CWnd::OnDropFiles(HDROP__ *) 6100 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 6101 int CEditView::OnEditChange() 6102 void COleDocument::OnEditChangeIcon() 6103 void CEditView::OnEditClear() 6104 void CRichEditView::OnEditClear() 6105 void COleDocument::OnEditConvert() 6106 void CEditView::OnEditCopy() 6107 void CHtmlView::OnEditCopy() 6108 void CRichEditView::OnEditCopy() 6109 void CEditView::OnEditCut() 6110 void CHtmlView::OnEditCut() 6111 void CRichEditView::OnEditCut() 6112 void CEditView::OnEditFind() 6113 void CRichEditView::OnEditFind() 6114 void CEditView::OnEditFindReplace(int) 6115 void CRichEditView::OnEditFindReplace(int) 6116 void COleDocument::OnEditLinks() 6117 void CEditView::OnEditPaste() 6118 void CHtmlView::OnEditPaste() 6119 void CRichEditView::OnEditPaste() 6120 void CRichEditView::OnEditPasteSpecial() 6121 void CRichEditView::OnEditProperties() 6122 int COlePropertyPage::OnEditProperty(long) 6123 void CRichEditView::OnEditRedo() 6124 void CEditView::OnEditRepeat() 6125 void CRichEditView::OnEditRepeat() 6126 void CEditView::OnEditReplace() 6127 void CRichEditView::OnEditReplace() 6128 void CEditView::OnEditSelectAll() 6129 void CRichEditView::OnEditSelectAll() 6130 void CEditView::OnEditUndo() 6131 void CRichEditView::OnEditUndo() 6132 void CFrameWnd::OnEnable(int) 6133 void CToolTipCtrl::OnEnable(int) 6134 void CWnd::OnEnable(int) 6135 void COleControl::OnEnabledChanged() 6136 long CHtmlView::OnEnableModeless(int) 6137 void COleFrameHook::OnEnableModeless(int) 6138 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 6139 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 6140 void CView::OnEndPrinting(CDC *,CPrintInfo *) 6141 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 6142 void CFrameWnd::OnEndSession(int) 6143 void CWnd::OnEndSession(int) 6144 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 6145 void COleControl::OnEnterIdle(unsigned int,CWnd *) 6146 void CWnd::OnEnterIdle(unsigned int,CWnd *) 6147 void CWnd::OnEnterMenuLoop(int) 6148 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 6149 int CFrameWnd::OnEraseBkgnd(CDC *) 6150 int COleControl::OnEraseBkgnd(CDC *) 6151 int COleResizeBar::OnEraseBkgnd(CDC *) 6152 int CPreviewView::OnEraseBkgnd(CDC *) 6153 int CReBar::OnEraseBkgnd(CDC *) 6154 int CToolBar::OnEraseBkgnd(CDC *) 6155 int CWnd::OnEraseBkgnd(CDC *) 6156 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6157 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6158 int COleControlSite::OnEvent(AFX_EVENT *) 6159 void COleControl::OnEventAdvise(int) 6160 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6161 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6162 void CWnd::OnExitMenuLoop(int) 6163 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6164 void CDocument::OnFileClose() 6165 void CFileDialog::OnFileNameChange() 6166 int CFileDialog::OnFileNameOK() 6167 void CDocManager::OnFileNew() 6168 void CWinApp::OnFileNew() 6169 void CDocManager::OnFileOpen() 6170 void CWinApp::OnFileOpen() 6171 void CHtmlView::OnFilePrint() 6172 void CView::OnFilePrint() 6173 void CView::OnFilePrintPreview() 6174 void CWinApp::OnFilePrintSetup() 6175 void CDocument::OnFileSave() 6176 void CDocument::OnFileSaveAs() 6177 void COleServerDoc::OnFileSaveCopyAs() 6178 void CDocument::OnFileSendMail() 6179 void COleDocument::OnFileSendMail() 6180 void COleServerDoc::OnFileUpdate() 6181 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 6182 void CCmdTarget::OnFinalRelease() 6183 void CDocument::OnFinalRelease() 6184 void COleControl::OnFinalRelease() 6185 void COlePropertyPage::OnFinalRelease() 6186 void COleServerItem::OnFinalRelease() 6187 void CWnd::OnFinalRelease() 6188 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 6189 void CEditView::OnFindNext(char const *,int,int) 6190 void CRichEditView::OnFindNext(char const *,int,int,int) 6191 long CEditView::OnFindReplaceCmd(unsigned int,long) 6192 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 6193 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 6194 long COleControlSite::XOleControlSite::OnFocus(int) 6195 void CFileDialog::OnFolderChange() 6196 void CWnd::OnFontChange() 6197 void COleControl::OnFontChanged() 6198 void COleControl::OnForeColorChanged() 6199 void CRichEditView::OnFormatFont() 6200 void COleControl::OnFrameClose() 6201 long CBrowserControlSite::OnFrameWindowActivate(int) 6202 long CDHtmlDialog::OnFrameWindowActivate(int) 6203 long CHtmlView::OnFrameWindowActivate(int) 6204 void COleServerDoc::OnFrameWindowActivate(int) 6205 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 6206 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6207 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6208 void COleControl::OnFreezeEvents(int) 6209 void CHtmlView::OnFullScreen(int) 6210 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 6211 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6212 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6213 void COleClientItem::OnGetClipRect(CRect &) 6214 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 6215 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 6216 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 6217 unsigned int COleControl::OnGetDlgCode() 6218 unsigned int CWnd::OnGetDlgCode() 6219 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 6220 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 6221 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6222 long CHtmlView::OnGetExternal(IDispatch * *) 6223 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6224 HMENU__ * COleControl::OnGetInPlaceMenu() 6225 void COleClientItem::OnGetItemPosition(CRect &) 6226 void COleDocObjectItem::OnGetItemPosition(CRect &) 6227 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 6228 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 6229 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6230 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6231 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6232 long CWnd::OnGetObject(unsigned int,long) 6233 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6234 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6235 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6236 long CStatusBar::OnGetText(unsigned int,long) 6237 long CStatusBar::OnGetTextLength(unsigned int,long) 6238 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6239 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6240 unsigned long COleControl::OnGetViewStatus() 6241 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6242 void CReBar::OnHeightChange(tagNMHDR *,long *) 6243 void CFrameWnd::OnHelp() 6244 int COlePropertyPage::OnHelp(char const *) 6245 void CWinApp::OnHelp() 6246 void CWnd::OnHelp() 6247 void CWinApp::OnHelpFinder() 6248 void CWnd::OnHelpFinder() 6249 long CControlBar::OnHelpHitTest(unsigned int,long) 6250 long CDialog::OnHelpHitTest(unsigned int,long) 6251 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6252 void CWinApp::OnHelpIndex() 6253 void CWnd::OnHelpIndex() 6254 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6255 int CWnd::OnHelpInfo(tagHELPINFO *) 6256 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6257 void CWinApp::OnHelpUsing() 6258 void CWnd::OnHelpUsing() 6259 void CDocObjectServerItem::OnHide() 6260 long COleControl::OnHide() 6261 void COleServerItem::OnHide() 6262 void COleControl::OnHideToolBars() 6263 long CHtmlView::OnHideUI() 6264 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6265 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6266 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6267 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6268 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6269 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6270 void CWnd::OnIconEraseBkgnd(CDC *) 6271 void CDocTemplate::OnIdle() 6272 void CDocument::OnIdle() 6273 void COleDocument::OnIdle() 6274 int CWinApp::OnIdle(long) 6275 int CWinThread::OnIdle(long) 6276 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6277 void CFrameWnd::OnIdleUpdateCmdUI() 6278 void CMDIFrameWnd::OnIdleUpdateCmdUI() 6279 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 6280 void COleIPFrameWnd::OnIdleUpdateCmdUI() 6281 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6282 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6283 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6284 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6285 int CDHtmlDialog::OnInitDialog() 6286 int CDialog::OnInitDialog() 6287 int COlePropertiesDialog::OnInitDialog() 6288 int COlePropertyPage::OnInitDialog() 6289 int CPropertySheet::OnInitDialog() 6290 void CFileDialog::OnInitDone() 6291 int COleServerItem::OnInitFromData(COleDataObject *,int) 6292 void CControlBar::OnInitialUpdate() 6293 void CFormView::OnInitialUpdate() 6294 void COleDBRecordView::OnInitialUpdate() 6295 void CRecordView::OnInitialUpdate() 6296 void CRichEditView::OnInitialUpdate() 6297 void CView::OnInitialUpdate() 6298 void CFrameWnd::OnInitMenu(CMenu *) 6299 void COleFrameHook::OnInitMenu(CMenu *) 6300 void CWnd::OnInitMenu(CMenu *) 6301 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6302 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6303 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6304 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6305 long COleClientItem::XOleIPSite::OnInPlaceActivate() 6306 long COleControlSite::XOleIPSite::OnInPlaceActivate() 6307 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6308 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 6309 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 6310 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6311 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6312 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6313 void CRichEditView::OnInsertObject() 6314 void CSplitterWnd::OnInvertTracker(CRect const &) 6315 void CDockContext::OnKey(int,int) 6316 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6317 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6318 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6319 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6320 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6321 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6322 void COleControl::OnKeyPressEvent(unsigned short) 6323 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6324 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6325 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6326 long CPropertySheet::OnKickIdle(unsigned int,long) 6327 int CPropertyPage::OnKillActive() 6328 void COleControl::OnKillFocus(CWnd *) 6329 void CWnd::OnKillFocus(CWnd *) 6330 long CCheckListBox::OnLBAddString(unsigned int,long) 6331 long CCheckListBox::OnLBFindString(unsigned int,long) 6332 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6333 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6334 long CCheckListBox::OnLBGetText(unsigned int,long) 6335 long CCheckListBox::OnLBInsertString(unsigned int,long) 6336 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6337 long CCheckListBox::OnLBSelectString(unsigned int,long) 6338 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6339 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6340 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6341 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6342 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6343 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6344 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6345 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6346 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6347 void COleControl::OnLButtonDown(unsigned int,CPoint) 6348 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6349 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6350 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6351 void CWnd::OnLButtonDown(unsigned int,CPoint) 6352 void COleControl::OnLButtonUp(unsigned int,CPoint) 6353 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6354 void CWnd::OnLButtonUp(unsigned int,CPoint) 6355 void CAsyncMonikerFile::OnLowResource() 6356 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6357 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6358 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6359 void COleControl::OnMButtonDown(unsigned int,CPoint) 6360 void CWnd::OnMButtonDown(unsigned int,CPoint) 6361 void COleControl::OnMButtonUp(unsigned int,CPoint) 6362 void CWnd::OnMButtonUp(unsigned int,CPoint) 6363 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6364 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6365 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6366 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6367 void CHtmlView::OnMenuBar(int) 6368 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6369 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6370 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6371 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6372 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6373 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6374 int COleMessageFilter::OnMessagePending(tagMSG const *) 6375 int CSocket::OnMessagePending() 6376 void COleControl::OnMnemonic(tagMSG *) 6377 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6378 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6379 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6380 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6381 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6382 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6383 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6384 void COleControl::OnMouseMove(unsigned int,CPoint) 6385 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6386 void CWnd::OnMouseMove(unsigned int,CPoint) 6387 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6388 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6389 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6390 void COleControl::OnMove(int,int) 6391 int COleDBRecordView::OnMove(unsigned int) 6392 void CRecordView::OnMove(int,int) 6393 int CRecordView::OnMove(unsigned int) 6394 void CWnd::OnMove(int,int) 6395 void CWnd::OnMoving(unsigned int,tagRECT *) 6396 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6397 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6398 void CHtmlEditView::OnNavigateComplete2(char const *) 6399 void CHtmlView::OnNavigateComplete2(char const *) 6400 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 6401 int CFrameWnd::OnNcActivate(int) 6402 int CMDIChildWnd::OnNcActivate(int) 6403 int CMiniFrameWnd::OnNcActivate(int) 6404 int CWnd::OnNcActivate(int) 6405 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6406 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6407 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6408 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6409 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6410 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6411 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 6412 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 6413 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 6414 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 6415 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 6416 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 6417 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 6418 int CWnd::OnNcCreate(tagCREATESTRUCTA *) 6419 void CListCtrl::OnNcDestroy() 6420 void CListView::OnNcDestroy() 6421 void CWnd::OnNcDestroy() 6422 long CMiniFrameWnd::OnNcHitTest(CPoint) 6423 long COleControl::OnNcHitTest(CPoint) 6424 long CStatusBar::OnNcHitTest(CPoint) 6425 long CToolBar::OnNcHitTest(CPoint) 6426 long CWnd::OnNcHitTest(CPoint) 6427 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6428 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6429 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6430 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6431 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6432 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6433 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6434 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6435 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6436 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6437 void CDockBar::OnNcPaint() 6438 void COleControl::OnNcPaint() 6439 void CReBar::OnNcPaint() 6440 void CStatusBar::OnNcPaint() 6441 void CToolBar::OnNcPaint() 6442 void CWnd::OnNcPaint() 6443 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6444 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6445 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6446 int CDocument::OnNewDocument() 6447 int CHtmlEditDoc::OnNewDocument() 6448 int COleDocument::OnNewDocument() 6449 int COleLinkingDoc::OnNewDocument() 6450 void COleServerDoc::OnNewEmbedding(IStorage *) 6451 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6452 int CEnumArray::OnNext(void *) 6453 int CEnumConnections::OnNext(void *) 6454 int CEnumConnPoints::OnNext(void *) 6455 int CEnumFormatEtc::OnNext(void *) 6456 int CEnumOleVerb::OnNext(void *) 6457 int CEnumUnknown::OnNext(void *) 6458 void CPreviewView::OnNextPage() 6459 int CView::OnNextPaneCmd(unsigned int) 6460 int CFileDialog::OnNotify(unsigned int,long,long *) 6461 int CPropertyPage::OnNotify(unsigned int,long,long *) 6462 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6463 int CWnd::OnNotify(unsigned int,long,long *) 6464 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6465 long CWnd::OnNTCtlColor(unsigned int,long) 6466 void CPreviewView::OnNumPageChange() 6467 void COlePropertyPage::OnObjectsChanged() 6468 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6469 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6470 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6471 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6472 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6473 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6474 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6475 void CCommonDialog::OnOK() 6476 void CDialog::OnOK() 6477 void CPropertyPage::OnOK() 6478 long COleControl::OnOpen(int,tagMSG *) 6479 void COleServerItem::OnOpen() 6480 int CDocument::OnOpenDocument(char const *) 6481 int CHtmlEditDoc::OnOpenDocument(char const *) 6482 int COleDocument::OnOpenDocument(char const *) 6483 int COleLinkingDoc::OnOpenDocument(char const *) 6484 void COleServerDoc::OnOpenEmbedding(IStorage *) 6485 int CWinApp::OnOpenRecentFile(unsigned int) 6486 void CAsyncSocket::OnOutOfBandData(int) 6487 void CCommonDialog::OnPaint() 6488 void CControlBar::OnPaint() 6489 void CCtrlView::OnPaint() 6490 void CDialog::OnPaint() 6491 void CDockBar::OnPaint() 6492 void CHtmlEditView::OnPaint() 6493 void CHtmlView::OnPaint() 6494 void COleControl::OnPaint(CDC *) 6495 int COleControlContainer::OnPaint(CDC *) 6496 void COleResizeBar::OnPaint() 6497 void CReBar::OnPaint() 6498 void CSplitterWnd::OnPaint() 6499 void CStatusBar::OnPaint() 6500 void CToolBar::OnPaint() 6501 void CView::OnPaint() 6502 void CWnd::OnPaint() 6503 void CWnd::OnPaintClipboard(CWnd *,void *) 6504 void CFrameWnd::OnPaletteChanged(CWnd *) 6505 void COleFrameHook::OnPaletteChanged(CWnd *) 6506 void CWnd::OnPaletteChanged(CWnd *) 6507 void CWnd::OnPaletteIsChanging(CWnd *) 6508 void CRichEditView::OnParaAlign(unsigned short) 6509 void CRichEditView::OnParaCenter() 6510 void CRichEditView::OnParaLeft() 6511 void CRichEditView::OnParaRight() 6512 void CWnd::OnParentNotify(unsigned int,long) 6513 int CRichEditView::OnPasteNativeObject(IStorage *) 6514 long CFrameWnd::OnPopMessageString(unsigned int,long) 6515 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 6516 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 6517 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 6518 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 6519 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 6520 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 6521 void CView::OnPrepareDC(CDC *,CPrintInfo *) 6522 int CEditView::OnPreparePrinting(CPrintInfo *) 6523 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 6524 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6525 int CView::OnPreparePrinting(CPrintInfo *) 6526 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6527 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 6528 void CPreviewView::OnPreviewClose() 6529 void CPreviewView::OnPreviewPrint() 6530 void CPreviewView::OnPrevPage() 6531 void CEditView::OnPrint(CDC *,CPrintInfo *) 6532 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6533 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 6534 void CView::OnPrint(CDC *,CPrintInfo *) 6535 void CRichEditView::OnPrinterChanged(CDC const &) 6536 void CPrintDialog::OnPrintSetup() 6537 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 6538 void CHtmlView::OnProgressChange(long,long) 6539 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 6540 void CHtmlView::OnPropertyChange(char const *) 6541 int CPropertyPage::OnQueryCancel() 6542 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 6543 HICON__ * CWnd::OnQueryDragIcon() 6544 int CFrameWnd::OnQueryEndSession() 6545 int CWnd::OnQueryEndSession() 6546 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6547 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6548 int CFrameWnd::OnQueryNewPalette() 6549 int COleFrameHook::OnQueryNewPalette() 6550 int CWnd::OnQueryNewPalette() 6551 int CWnd::OnQueryOpen() 6552 unsigned int CWnd::OnQueryUIState() 6553 int COleServerItem::OnQueryUpdateItems() 6554 void CHtmlView::OnQuit() 6555 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 6556 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 6557 void COleControl::OnRButtonDown(unsigned int,CPoint) 6558 void CWnd::OnRButtonDown(unsigned int,CPoint) 6559 void COleControl::OnRButtonUp(unsigned int,CPoint) 6560 void CWnd::OnRButtonUp(unsigned int,CPoint) 6561 int COleServerDoc::OnReactivateAndUndo() 6562 void COleFrameHook::OnRecalcLayout() 6563 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 6564 void CReBar::OnRecalcParent() 6565 void CAsyncSocket::OnReceive(int) 6566 void COleControl::OnReflectorDestroyed() 6567 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6568 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 6569 void COleClientItem::OnRemoveMenus(CMenu *) 6570 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6571 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 6572 void CWnd::OnRenderAllFormats() 6573 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6574 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6575 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6576 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6577 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6578 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6579 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6580 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 6581 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6582 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 6583 void CWnd::OnRenderFormat(unsigned int) 6584 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6585 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6586 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 6587 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6588 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 6589 void CEditView::OnReplaceAll(char const *,char const *,int) 6590 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 6591 void CEditView::OnReplaceSel(char const *,int,int,char const *) 6592 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 6593 long COleControl::XFontNotification::OnRequestEdit(long) 6594 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 6595 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 6596 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6597 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6598 void CEnumArray::OnReset() 6599 void CPropertyPage::OnReset() 6600 void COleControl::OnResetState() 6601 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6602 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6603 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 6604 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6605 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6606 void COleClientItem::XAdviseSink::OnSave() 6607 int CDocument::OnSaveDocument(char const *) 6608 int CHtmlEditDoc::OnSaveDocument(char const *) 6609 int COleDocument::OnSaveDocument(char const *) 6610 int COleLinkingDoc::OnSaveDocument(char const *) 6611 int COleServerDoc::OnSaveDocument(char const *) 6612 void COleServerDoc::OnSaveEmbedding(IStorage *) 6613 void COleServerItem::OnSaveEmbedding(IStorage *) 6614 void CDocObjectServer::OnSaveViewState(CArchive &) 6615 int CScrollView::OnScroll(unsigned int,unsigned int,int) 6616 int CView::OnScroll(unsigned int,unsigned int,int) 6617 int COleClientItem::OnScrollBy(CSize) 6618 int CScrollView::OnScrollBy(CSize,int) 6619 int CView::OnScrollBy(CSize,int) 6620 void CRichEditView::OnSelChange(tagNMHDR *,long *) 6621 void CAsyncSocket::OnSend(int) 6622 int CPropertyPage::OnSetActive() 6623 long CToolBar::OnSetBitmapSize(unsigned int,long) 6624 long CToolBar::OnSetButtonSize(unsigned int,long) 6625 void COleControl::OnSetClientSite() 6626 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 6627 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6628 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 6629 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 6630 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 6631 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6632 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6633 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6634 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6635 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6636 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6637 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6638 long CPropertySheet::OnSetDefID(unsigned int,long) 6639 int COleControl::OnSetExtent(tagSIZE *) 6640 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 6641 void CFormView::OnSetFocus(CWnd *) 6642 void CFrameWnd::OnSetFocus(CWnd *) 6643 void COleControl::OnSetFocus(CWnd *) 6644 void CWnd::OnSetFocus(CWnd *) 6645 long CCheckListBox::OnSetFont(unsigned int,long) 6646 void CDialog::OnSetFont(CFont *) 6647 long CEditView::OnSetFont(unsigned int,long) 6648 void COleServerDoc::OnSetHostNames(char const *,char const *) 6649 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 6650 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 6651 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 6652 long CFrameWnd::OnSetMessageString(unsigned int,long) 6653 long COleControl::OnSetMessageString(unsigned int,long) 6654 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 6655 long CStatusBar::OnSetMinHeight(unsigned int,long) 6656 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 6657 void CDatabase::OnSetOptions(void *) 6658 void CRecordset::OnSetOptions(void *) 6659 void COlePropertyPage::OnSetPageSite() 6660 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 6661 long CToolBar::OnSetSizeHelper(CSize &,long) 6662 long COleControl::OnSetText(unsigned int,long) 6663 long CStatusBar::OnSetText(unsigned int,long) 6664 void CWnd::OnSettingChange(unsigned int,char const *) 6665 void CRecordset::OnSetUpdateOptions(void *) 6666 unsigned int CFileDialog::OnShareViolation(char const *) 6667 void CDocObjectServerItem::OnShow() 6668 void COleServerItem::OnShow() 6669 long CReBar::OnShowBand(unsigned int,long) 6670 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6671 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 6672 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 6673 void COleServerDoc::OnShowDocument(int) 6674 void COleClientItem::OnShowItem() 6675 void COleControl::OnShowToolBars() 6676 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6677 void COleDocument::OnShowViews(int) 6678 void COleLinkingDoc::OnShowViews(int) 6679 void COleControl::OnShowWindow(int,unsigned int) 6680 void CWnd::OnShowWindow(int,unsigned int) 6681 long COleClientItem::XOleClientSite::OnShowWindow(int) 6682 long COleControlSite::XOleClientSite::OnShowWindow(int) 6683 void CDHtmlDialog::OnSize(unsigned int,int,int) 6684 void CFrameWnd::OnSize(unsigned int,int,int) 6685 void CHtmlView::OnSize(unsigned int,int,int) 6686 void CMDIChildWnd::OnSize(unsigned int,int,int) 6687 void CMDIFrameWnd::OnSize(unsigned int,int,int) 6688 void COleControl::OnSize(unsigned int,int,int) 6689 void COleIPFrameWnd::OnSize(unsigned int,int,int) 6690 void COleResizeBar::OnSize(unsigned int,int,int) 6691 void CPreviewView::OnSize(unsigned int,int,int) 6692 void CScrollView::OnSize(unsigned int,int,int) 6693 void CSplitterWnd::OnSize(unsigned int,int,int) 6694 void CStatusBar::OnSize(unsigned int,int,int) 6695 void CWnd::OnSize(unsigned int,int,int) 6696 void CWnd::OnSizeClipboard(CWnd *,void *) 6697 long CControlBar::OnSizeParent(unsigned int,long) 6698 long CDockBar::OnSizeParent(unsigned int,long) 6699 long COleResizeBar::OnSizeParent(unsigned int,long) 6700 void CWnd::OnSizing(unsigned int,tagRECT *) 6701 int CEnumArray::OnSkip() 6702 long CSocketWnd::OnSocketDead(unsigned int,long) 6703 long CSocketWnd::OnSocketNotify(unsigned int,long) 6704 int CView::OnSplitCmd(unsigned int) 6705 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 6706 void CAsyncMonikerFile::OnStartBinding() 6707 void CHtmlView::OnStatusBar(int) 6708 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 6709 void CHtmlView::OnStatusTextChange(char const *) 6710 void CAsyncMonikerFile::OnStopBinding(long,char const *) 6711 void CWnd::OnStyleChanged(int,tagSTYLE*) 6712 void CWnd::OnStyleChanging(int,tagSTYLE*) 6713 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 6714 void CToolBar::OnSysColorChange() 6715 void CWnd::OnSysColorChange() 6716 void CFrameWnd::OnSysCommand(unsigned int,long) 6717 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 6718 void CPropertySheet::OnSysCommand(unsigned int,long) 6719 void CSplitterWnd::OnSysCommand(unsigned int,long) 6720 void CWnd::OnSysCommand(unsigned int,long) 6721 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 6722 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6723 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6724 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6725 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6726 void CWnd::OnTCard(unsigned int,unsigned long) 6727 void COleControl::OnTextChanged() 6728 void CEditView::OnTextNotFound(char const *) 6729 void CRichEditView::OnTextNotFound(char const *) 6730 void CHtmlView::OnTheaterMode(int) 6731 void CWnd::OnTimeChange() 6732 void CControlBar::OnTimer(unsigned int) 6733 void CWnd::OnTimer(unsigned int) 6734 void CHtmlView::OnTitleChange(char const *) 6735 void CHtmlView::OnToolBar(int) 6736 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6737 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6738 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 6739 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6740 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6741 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 6742 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6743 void CFileDialog::OnTypeChange() 6744 void COleControlContainer::OnUIActivate(COleControlSite *) 6745 long COleClientItem::XOleIPSite::OnUIActivate() 6746 long COleControlSite::XOleIPSite::OnUIActivate() 6747 void COleControlContainer::OnUIDeactivate(COleControlSite *) 6748 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 6749 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 6750 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 6751 void CView::OnUpdate(CView *,long,CObject *) 6752 void CRichEditView::OnUpdateBullet(CCmdUI *) 6753 void CRichEditView::OnUpdateCharBold(CCmdUI *) 6754 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 6755 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 6756 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 6757 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 6758 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 6759 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 6760 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6761 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 6762 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 6763 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 6764 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6765 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6766 int COleServerDoc::OnUpdateDocument() 6767 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 6768 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 6769 void CHtmlView::OnUpdateEditCut(CCmdUI *) 6770 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 6771 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 6772 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 6773 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 6774 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 6775 void CEditView::OnUpdateEditUndo(CCmdUI *) 6776 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 6777 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 6778 void CDocument::OnUpdateFileSendMail(CCmdUI *) 6779 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 6780 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6781 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 6782 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6783 void CFrameWnd::OnUpdateFrameTitle(int) 6784 void CMDIChildWnd::OnUpdateFrameTitle(int) 6785 void CMDIFrameWnd::OnUpdateFrameTitle(int) 6786 int COleClientItem::OnUpdateFrameTitle() 6787 int COleFrameHook::OnUpdateFrameTitle() 6788 void COleServerItem::OnUpdateItems() 6789 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 6790 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 6791 void CEditView::OnUpdateNeedClip(CCmdUI *) 6792 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 6793 void CEditView::OnUpdateNeedFind(CCmdUI *) 6794 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 6795 void CEditView::OnUpdateNeedSel(CCmdUI *) 6796 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 6797 void CEditView::OnUpdateNeedText(CCmdUI *) 6798 void CRichEditView::OnUpdateNeedText(CCmdUI *) 6799 void CPreviewView::OnUpdateNextPage(CCmdUI *) 6800 void CView::OnUpdateNextPaneMenu(CCmdUI *) 6801 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 6802 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 6803 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 6804 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 6805 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 6806 void CRichEditView::OnUpdateParaRight(CCmdUI *) 6807 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 6808 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 6809 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 6810 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 6811 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6812 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 6813 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6814 void CRecordView::OnUpdateRecordLast(CCmdUI *) 6815 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6816 void CRecordView::OnUpdateRecordNext(CCmdUI *) 6817 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6818 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 6819 void CView::OnUpdateSplitCmd(CCmdUI *) 6820 long CHtmlView::OnUpdateUI() 6821 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 6822 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 6823 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 6824 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 6825 void CHtmlView::OnVisible(int) 6826 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 6827 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6828 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6829 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6830 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6831 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6832 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 6833 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 6834 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 6835 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 6836 void CMDIFrameWnd::OnWindowNew() 6837 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 6838 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 6839 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 6840 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 6841 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 6842 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 6843 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 6844 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 6845 void CWnd::OnWinIniChange(char const *) 6846 long CPropertyPage::OnWizardBack() 6847 int CPropertyPage::OnWizardFinish() 6848 long CPropertyPage::OnWizardNext() 6849 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 6850 void CPreviewView::OnZoomIn() 6851 void CPreviewView::OnZoomOut() 6852 int CAnimateCtrl::Open(unsigned int) 6853 int CAnimateCtrl::Open(char const *) 6854 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 6855 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 6856 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 6857 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 6858 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 6859 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 6860 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 6861 int CAsyncMonikerFile::Open(char const *,CFileException *) 6862 int CDatabase::Open(char const *,int,int,char const *,int) 6863 int CDataPathProperty::Open(CFileException *) 6864 int CDataPathProperty::Open(COleControl *,CFileException *) 6865 int CDataPathProperty::Open(char const *,CFileException *) 6866 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 6867 int CFile::Open(char const *,unsigned int,CFileException *) 6868 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 6869 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6870 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6871 int CMonikerFile::Open(IMoniker *,CFileException *) 6872 int CMonikerFile::Open(char const *,CFileException *) 6873 int CRecordset::Open(unsigned int,char const *,unsigned long) 6874 int CSocketFile::Open(char const *,unsigned int,CFileException *) 6875 int CStdioFile::Open(char const *,unsigned int,CFileException *) 6876 long CDocObjectServer::XOleDocumentView::Open() 6877 int CWnd::OpenClipboard() 6878 CDocument * CDocManager::OpenDocumentFile(char const *) 6879 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 6880 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 6881 CDocument * CWinApp::OpenDocumentFile(char const *) 6882 int CDatabase::OpenEx(char const *,unsigned long) 6883 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 6884 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 6885 int CWnd::OpenIcon() 6886 long COleUILinkInfo::OpenLinkSource(unsigned long) 6887 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 6888 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 6889 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 6890 int CHtmlEditDoc::OpenURL(char const *) 6891 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 6892 int CHeaderCtrl::OrderToIndex(int)const 6893 int CFileException::OsErrorToException(long) 6894 void CDumpContext::OutputString(char const *) 6895 int CEditView::PaginateTo(CDC *,CPrintInfo *) 6896 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 6897 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 6898 int CDC::PaintRgn(CRgn *) 6899 int CWnd::PaintWindowlessControls(CDC *) 6900 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 6901 void CWinApp::ParseCommandLine(CCommandLineInfo &) 6902 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 6903 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6904 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6905 void CCommandLineInfo::ParseLast(int) 6906 void CCommandLineInfo::ParseParam(char const *,int,int) 6907 void CCommandLineInfo::ParseParamFlag(char const *) 6908 void CCommandLineInfo::ParseParamNotFlag(char const *) 6909 void CComboBox::Paste() 6910 void CEdit::Paste() 6911 void CRichEditCtrl::Paste() 6912 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 6913 int CDC::PatBlt(int,int,int,int,unsigned long) 6914 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 6915 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 6916 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 6917 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 6918 int CDC::Pie(int,int,int,int,int,int,int,int) 6919 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 6920 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 6921 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 6922 int CDC::PlayMetaFile(HMETAFILE__ *) 6923 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 6924 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 6925 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 6926 int CDC::PolyBezier(tagPOINT const *,int) 6927 int CDC::PolyBezierTo(tagPOINT const *,int) 6928 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 6929 int CDC::Polygon(tagPOINT const *,int) 6930 int CDC::Polyline(tagPOINT const *,int) 6931 int CDC::PolylineTo(tagPOINT const *,int) 6932 int CDC::PolyPolygon(tagPOINT const *,int const *,int) 6933 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 6934 void CToolTipCtrl::Pop() 6935 CPoint CEdit::PosFromChar(unsigned int)const 6936 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 6937 void CPreviewView::PositionPage(unsigned int) 6938 int CAsyncMonikerFile::PostBindToStream(CFileException *) 6939 int CMonikerFile::PostBindToStream(CFileException *) 6940 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 6941 int CWnd::PostMessageA(unsigned int,unsigned int,long) 6942 void CDialog::PostModal() 6943 void CPrintDialogEx::PostModal() 6944 void COleControl::PostModalDialog(HWND__ *) 6945 void CControlBar::PostNcDestroy() 6946 void CControlFrameWnd::PostNcDestroy() 6947 void CFindReplaceDialog::PostNcDestroy() 6948 void CFrameWnd::PostNcDestroy() 6949 void COleCntrFrameWnd::PostNcDestroy() 6950 void CReflectorWnd::PostNcDestroy() 6951 void CView::PostNcDestroy() 6952 void CWnd::PostNcDestroy() 6953 int CWinThread::PostThreadMessageA(unsigned int,unsigned int,long) 6954 void ATL::CSimpleStringT::Preallocate(int) 6955 void ATL::CSimpleStringT::Preallocate(int) 6956 void CRecordset::PreBindFields() 6957 void CDocument::PreCloseFrame(CFrameWnd *) 6958 void COleDocument::PreCloseFrame(CFrameWnd *) 6959 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 6960 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 6961 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 6962 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 6963 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6964 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 6965 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 6966 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6967 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 6968 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 6969 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 6970 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6971 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 6972 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 6973 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 6974 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 6975 int CView::PreCreateWindow(tagCREATESTRUCTA &) 6976 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 6977 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 6978 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 6979 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 6980 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 6981 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 6982 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 6983 void CDialog::PreInitDialog() 6984 void COleChangeSourceDialog::PreInitDialog() 6985 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 6986 HWND__ * CDialog::PreModal() 6987 HWND__ * CPrintDialogEx::PreModal() 6988 void COleControl::PreModalDialog(HWND__ *) 6989 void CRecordset::PrepareAndExecute() 6990 HWND__ * CDataExchange::PrepareCtrl(int) 6991 HWND__ * CDataExchange::PrepareEditCtrl(int) 6992 void CWnd::PrepareForHelp() 6993 COleControlSite * CDataExchange::PrepareOleCtrl(int) 6994 void CRecordset::PrepareUpdateHstmt() 6995 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 6996 char * ATL::CSimpleStringT::PrepareWrite(int) 6997 void ATL::CSimpleStringT::PrepareWrite2(int) 6998 void ATL::CSimpleStringT::PrepareWrite2(int) 6999 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 7000 void CPropertySheet::PressButton(int) 7001 int CToolBarCtrl::PressButton(int,int) 7002 void CCheckListBox::PreSubclassWindow() 7003 void CDragListBox::PreSubclassWindow() 7004 void CWnd::PreSubclassWindow() 7005 int CWnd::PreTranslateInput(tagMSG *) 7006 int CControlBar::PreTranslateMessage(tagMSG *) 7007 int CDialog::PreTranslateMessage(tagMSG *) 7008 int CFormView::PreTranslateMessage(tagMSG *) 7009 int CFrameWnd::PreTranslateMessage(tagMSG *) 7010 int CHtmlView::PreTranslateMessage(tagMSG *) 7011 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 7012 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 7013 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 7014 int COlePropertyPage::PreTranslateMessage(tagMSG *) 7015 int CPropertyPage::PreTranslateMessage(tagMSG *) 7016 int CPropertySheet::PreTranslateMessage(tagMSG *) 7017 int CWinThread::PreTranslateMessage(tagMSG *) 7018 int CWnd::PreTranslateMessage(tagMSG *) 7019 void CDialog::PrevDlgCtrl()const 7020 void CWnd::Print(CDC *,unsigned long)const 7021 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 7022 int CPrintDialog::PrintAll()const 7023 int CPrintDialogEx::PrintAll()const 7024 void CWnd::PrintClient(CDC *,unsigned long)const 7025 int CPrintDialog::PrintCollate()const 7026 int CPrintDialogEx::PrintCollate()const 7027 int CPrintDialogEx::PrintCurrentPage()const 7028 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 7029 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 7030 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 7031 long CRichEditView::PrintPage(CDC *,long,long) 7032 int CPrintDialog::PrintRange()const 7033 int CPrintDialogEx::PrintRange()const 7034 int CPrintDialog::PrintSelection()const 7035 int CPrintDialogEx::PrintSelection()const 7036 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 7037 long COleException::Process(CException const *) 7038 int CSocket::ProcessAuxQueue() 7039 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 7040 int CWinThread::ProcessMessageFilter(int,tagMSG *) 7041 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 7042 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 7043 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 7044 int CRgn::PtInRegion(int,int)const 7045 int CRgn::PtInRegion(tagPOINT)const 7046 void COleSafeArray::PtrOfIndex(long *,void * *) 7047 int CDC::PtVisible(tagPOINT)const 7048 int CDC::PtVisible(int,int)const 7049 int CMetaFileDC::PtVisible(tagPOINT)const 7050 int CMetaFileDC::PtVisible(int,int)const 7051 int CEvent::PulseEvent() 7052 int CWinThread::PumpMessage() 7053 int CSocket::PumpMessages(unsigned int) 7054 void CReBarCtrl::PushChevron(unsigned int,long) 7055 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 7056 long CWnd::put_accName(tagVARIANT,wchar_t *) 7057 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 7058 long CWnd::put_accValue(tagVARIANT,wchar_t *) 7059 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 7060 void COleSafeArray::PutElement(long *,void *) 7061 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 7062 void CHtmlView::PutProperty(char const *,char const *) 7063 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 7064 void CHtmlView::PutProperty(char const *,short) 7065 void CHtmlView::PutProperty(char const *,long) 7066 void CHtmlView::PutProperty(char const *,double) 7067 int PX_Blob(CPropExchange *,char const *,void * &,void *) 7068 int PX_Bool(CPropExchange *,char const *,int &) 7069 int PX_Bool(CPropExchange *,char const *,int &,int) 7070 int PX_Color(CPropExchange *,char const *,unsigned long &) 7071 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 7072 int PX_Currency(CPropExchange *,char const *,union tagCY &) 7073 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 7074 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 7075 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 7076 int PX_Double(CPropExchange *,char const *,double &) 7077 int PX_Double(CPropExchange *,char const *,double &,double) 7078 int PX_Float(CPropExchange *,char const *,float &) 7079 int PX_Float(CPropExchange *,char const *,float &,float) 7080 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 7081 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 7082 int PX_Long(CPropExchange *,char const *,long &) 7083 int PX_Long(CPropExchange *,char const *,long &,long) 7084 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 7085 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 7086 int PX_Short(CPropExchange *,char const *,short &) 7087 int PX_Short(CPropExchange *,char const *,short &,short) 7088 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 7089 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 7090 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 7091 int PX_ULong(CPropExchange *,char const *,unsigned long &) 7092 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 7093 int PX_UShort(CPropExchange *,char const *,unsigned short &) 7094 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 7095 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 7096 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7097 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7098 IUnknown * CCmdTarget::QueryAggregates(void const *) 7099 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 7100 long COleDropSource::QueryContinueDrag(int,unsigned long) 7101 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 7102 void * COleControl::QueryDefHandler(_GUID const &) 7103 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 7104 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 7105 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 7106 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 7107 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 7108 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7109 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7110 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 7111 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 7112 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 7113 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 7114 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 7115 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 7116 long CArchiveStream::QueryInterface(_GUID const &,void * *) 7117 long CBlobProperty::QueryInterface(_GUID const &,void * *) 7118 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 7119 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 7120 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 7121 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 7122 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 7123 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 7124 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 7125 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 7126 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 7127 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 7128 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 7129 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 7130 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 7131 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 7132 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 7133 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 7134 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 7135 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 7136 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 7137 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 7138 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 7139 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 7140 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 7141 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 7142 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 7143 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 7144 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 7145 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 7146 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 7147 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 7148 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7149 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7150 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 7151 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 7152 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 7153 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 7154 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 7155 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 7156 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7157 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7158 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 7159 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7160 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7161 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 7162 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 7163 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 7164 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 7165 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 7166 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 7167 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 7168 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 7169 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 7170 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 7171 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 7172 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 7173 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 7174 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 7175 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 7176 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 7177 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 7178 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 7179 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 7180 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 7181 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 7182 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 7183 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 7184 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 7185 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 7186 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 7187 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 7188 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 7189 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 7190 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 7191 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 7192 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 7193 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 7194 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 7195 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 7196 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 7197 long CPropertyPage::QuerySiblings(unsigned int,long) 7198 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 7199 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 7200 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7201 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7202 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 7203 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 7204 int COleControlSite::QuickActivate() 7205 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 7206 int COleClientItem::ReactivateAndUndo() 7207 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 7208 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 7209 unsigned int CArchive::Read(void *,unsigned int) 7210 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 7211 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 7212 unsigned int CFile::Read(void *,unsigned int) 7213 int CImageList::Read(CArchive *) 7214 unsigned int CInternetFile::Read(void *,unsigned int) 7215 unsigned int CMemFile::Read(void *,unsigned int) 7216 unsigned int COleStreamFile::Read(void *,unsigned int) 7217 unsigned int CSocketFile::Read(void *,unsigned int) 7218 unsigned int CStdioFile::Read(void *,unsigned int) 7219 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 7220 unsigned long CArchive::ReadCount() 7221 void CEditView::ReadFromArchive(CArchive &,unsigned int) 7222 int CProperty::ReadFromStream(IStream *) 7223 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 7224 int CPropertySet::ReadFromStream(IStream *) 7225 void COleClientItem::ReadItem(CArchive &) 7226 void COleClientItem::ReadItemCompound(CArchive &) 7227 void COleClientItem::ReadItemFlat(CArchive &) 7228 void CRecentFileList::ReadList() 7229 int CPropertySection::ReadNameDictFromStream(IStream *) 7230 CObject * CArchive::ReadObject(CRuntimeconst *) 7231 int CArchive::ReadString(ATL::CStringT > > &) 7232 char * CArchive::ReadString(char *,unsigned int) 7233 int CInternetFile::ReadString(ATL::CStringT > > &) 7234 char * CInternetFile::ReadString(char *,unsigned int) 7235 int CStdioFile::ReadString(ATL::CStringT > > &) 7236 char * CStdioFile::ReadString(char *,unsigned int) 7237 unsigned int CDC::RealizePalette() 7238 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7239 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7240 void ATL::CSimpleStringT::Reallocate(int) 7241 void ATL::CSimpleStringT::Reallocate(int) 7242 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7243 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7244 void CRecordset::RebindParams(void *) 7245 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7246 void CFrameWnd::RecalcLayout(int) 7247 void CMiniDockFrameWnd::RecalcLayout(int) 7248 void COleCntrFrameWnd::RecalcLayout(int) 7249 void COleDocIPFrameWnd::RecalcLayout(int) 7250 void COleIPFrameWnd::RecalcLayout(int) 7251 void CSplitterWnd::RecalcLayout() 7252 int CAsyncSocket::Receive(void *,int,int) 7253 int CSocket::Receive(void *,int,int) 7254 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7255 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7256 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7257 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7258 void COleControl::RecreateControlWindow() 7259 int CDC::Rectangle(int,int,int,int) 7260 int CDC::Rectangle(tagRECT const *) 7261 CRect const CFrameWnd::rectDefault 7262 int CRgn::RectInRegion(tagRECT const *)const 7263 int CDC::RectVisible(tagRECT const *)const 7264 int CMetaFileDC::RectVisible(tagRECT const *)const 7265 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7266 int CRichEditCtrl::Redo() 7267 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7268 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7269 int CListCtrl::RedrawItems(int,int) 7270 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7271 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7272 int CWnd::ReflectLastMsg(HWND__ *,long *) 7273 void CHtmlView::Refresh() 7274 void COleControl::Refresh() 7275 void CHtmlView::Refresh2(int) 7276 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7277 int COleDropTarget::Register(CWnd *) 7278 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 7279 int COleMessageFilter::Register() 7280 int COleObjectFactory::Register() 7281 int COleTemplateServer::Register() 7282 int CWinApp::Register() 7283 int COleObjectFactory::RegisterAll() 7284 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 7285 void CDocManager::RegisterShellFileTypes(int) 7286 void CWinApp::RegisterShellFileTypes(int) 7287 void CToolTipCtrl::RelayEvent(tagMSG *) 7288 unsigned long CArchiveStream::Release() 7289 unsigned long CBlobProperty::Release() 7290 unsigned long CBrowserControlSite::Release() 7291 unsigned long CDHtmlControlSink::Release() 7292 unsigned long CDHtmlElementEventSink::Release() 7293 unsigned long CDHtmlEventSink::Release() 7294 unsigned long CInnerUnknown::Release() 7295 void COleClientItem::Release(enum tagOLECLOSE) 7296 unsigned long COleConnPtContainer::Release() 7297 void COleDataObject::Release() 7298 unsigned long COleDispatchImpl::Release() 7299 void COleDocObjectItem::Release(enum tagOLECLOSE) 7300 unsigned long COleUILinkInfo::Release() 7301 unsigned long CPrintDialogEx::Release() 7302 unsigned long CWnd::XAccessible::Release() 7303 unsigned long CWnd::XAccessibleServer::Release() 7304 unsigned long COleClientItem::XAdviseSink::Release() 7305 unsigned long COleControlSite::XAmbientProps::Release() 7306 unsigned long COleControlSite::XBoundObjectSite::Release() 7307 unsigned long COleObjectFactory::XClassFactory::Release() 7308 unsigned long CConnectionPoint::XConnPt::Release() 7309 unsigned long COleControl::XDataObject::Release() 7310 unsigned long COleDataSource::XDataObject::Release() 7311 unsigned long COleServerDoc::XDataObject::Release() 7312 unsigned long COleServerItem::XDataObject::Release() 7313 unsigned long CHtmlControlSite::XDocHostUIHandler::Release() 7314 unsigned long COleDropSource::XDropSource::Release() 7315 unsigned long COleDropTarget::XDropTarget::Release() 7316 unsigned long CEnumArray::XEnumVOID::Release() 7317 unsigned long COleControlSite::XEventSink::Release() 7318 unsigned long COleControl::XFontNotification::Release() 7319 unsigned long COleMessageFilter::XMessageFilter::Release() 7320 unsigned long COleControlSite::XNotifyDBEvents::Release() 7321 unsigned long COleControl::XOleCache::Release() 7322 unsigned long COleClientItem::XOleClientSite::Release() 7323 unsigned long COleControlSite::XOleClientSite::Release() 7324 unsigned long CDocObjectServer::XOleCommandTarget::Release() 7325 unsigned long COleFrameHook::XOleCommandTarget::Release() 7326 unsigned long COleControlContainer::XOleContainer::Release() 7327 unsigned long COleControl::XOleControl::Release() 7328 unsigned long COleControlSite::XOleControlSite::Release() 7329 unsigned long CDocObjectServer::XOleDocument::Release() 7330 unsigned long COleDocObjectItem::XOleDocumentSite::Release() 7331 unsigned long CDocObjectServer::XOleDocumentView::Release() 7332 unsigned long COleControl::XOleInPlaceActiveObject::Release() 7333 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 7334 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 7335 unsigned long COleControl::XOleInPlaceObject::Release() 7336 unsigned long COleServerDoc::XOleInPlaceObject::Release() 7337 unsigned long COleControlContainer::XOleIPFrame::Release() 7338 unsigned long COleClientItem::XOleIPSite::Release() 7339 unsigned long COleControlSite::XOleIPSite::Release() 7340 unsigned long COleLinkingDoc::XOleItemContainer::Release() 7341 unsigned long CDocObjectServer::XOleObject::Release() 7342 unsigned long COleControl::XOleObject::Release() 7343 unsigned long COleServerDoc::XOleObject::Release() 7344 unsigned long COleServerItem::XOleObject::Release() 7345 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 7346 unsigned long COleControl::XPerPropertyBrowsing::Release() 7347 unsigned long COleLinkingDoc::XPersistFile::Release() 7348 unsigned long COleControl::XPersistMemory::Release() 7349 unsigned long COleControl::XPersistPropertyBag::Release() 7350 unsigned long COleControl::XPersistStorage::Release() 7351 unsigned long COleServerDoc::XPersistStorage::Release() 7352 unsigned long COleControl::XPersistStreamInit::Release() 7353 unsigned long COleControl::XPointerInactive::Release() 7354 unsigned long CDocObjectServer::XPrint::Release() 7355 unsigned long COleControlSite::XPropertyNotifySink::Release() 7356 unsigned long COlePropertyPage::XPropertyPage::Release() 7357 unsigned long COlePropertyPage::XPropNotifySink::Release() 7358 unsigned long COleControl::XProvideClassInfo::Release() 7359 unsigned long COleControl::XQuickActivate::Release() 7360 unsigned long CRichEditView::XRichEditOleCallback::Release() 7361 unsigned long COleControlSite::XRowsetNotify::Release() 7362 unsigned long COleControl::XSpecifyPropertyPages::Release() 7363 unsigned long COleControl::XViewObject::Release() 7364 void CDC::ReleaseAttribDC() 7365 void ATL::CSimpleStringT::ReleaseBuffer(int) 7366 void ATL::CSimpleStringT::ReleaseBuffer(int) 7367 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7368 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7369 void COleControl::ReleaseCaches() 7370 int COleControl::ReleaseCapture() 7371 int COleControl::ReleaseDC(CDC *) 7372 int CWnd::ReleaseDC(CDC *) 7373 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7374 void COleDispatchDriver::ReleaseDispatch() 7375 void CDocObjectServer::ReleaseDocSite() 7376 void CDocument::ReleaseFile(CFile *,int) 7377 void CFontHolder::ReleaseFont() 7378 void CDC::ReleaseOutputDC() 7379 void CMetaFileDC::ReleaseOutputDC() 7380 void CPreviewDC::ReleaseOutputDC() 7381 int COleClientItem::Reload() 7382 int ATL::CStringT > >::Remove(wchar_t) 7383 int ATL::CStringT > >::Remove(char) 7384 void CFile::Remove(char const *) 7385 int CFtpConnection::Remove(char const *) 7386 int CImageList::Remove(int) 7387 void CPropertySection::Remove(unsigned long) 7388 void CPropertySet::Remove(_GUID) 7389 void CPropertySet::Remove(_GUID,unsigned long) 7390 void CRecentFileList::Remove(int) 7391 int CSimpleList::Remove(void *) 7392 void CByteArray::RemoveAll() 7393 void CDWordArray::RemoveAll() 7394 void CMapPtrToPtr::RemoveAll() 7395 void CMapPtrToWord::RemoveAll() 7396 void CMapStringToOb::RemoveAll() 7397 void CMapStringToPtr::RemoveAll() 7398 void CMapStringToString::RemoveAll() 7399 void CMapWordToOb::RemoveAll() 7400 void CMapWordToPtr::RemoveAll() 7401 void CObArray::RemoveAll() 7402 void CObList::RemoveAll() 7403 void CPropertySection::RemoveAll() 7404 void CPropertySet::RemoveAll() 7405 void CPtrArray::RemoveAll() 7406 void CPtrList::RemoveAll() 7407 void CStringArray::RemoveAll() 7408 void CStringList::RemoveAll() 7409 void CTypeLibCacheMap::RemoveAll(void *) 7410 void CUIntArray::RemoveAll() 7411 void CWordArray::RemoveAll() 7412 void CByteArray::RemoveAt(int,int) 7413 void CDWordArray::RemoveAt(int,int) 7414 void CObArray::RemoveAt(int,int) 7415 void CObList::RemoveAt(__POSITION *) 7416 void CPtrArray::RemoveAt(int,int) 7417 void CPtrList::RemoveAt(__POSITION *) 7418 void CStringArray::RemoveAt(int,int) 7419 void CStringList::RemoveAt(__POSITION *) 7420 void CUIntArray::RemoveAt(int,int) 7421 void CWordArray::RemoveAt(int,int) 7422 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7423 void CFrameWnd::RemoveControlBar(CControlBar *) 7424 int CFtpConnection::RemoveDirectoryA(char const *) 7425 void CDocTemplate::RemoveDocument(CDocument *) 7426 void CMultiDocTemplate::RemoveDocument(CDocument *) 7427 void CSingleDocTemplate::RemoveDocument(CDocument *) 7428 void COleControl::RemoveFrameLevelUI() 7429 void CFrameWnd::RemoveFrameWnd() 7430 void CHandleMap::RemoveHandle(void *) 7431 CObject * CObList::RemoveHead() 7432 void * CPtrList::RemoveHead() 7433 ATL::CStringT > > CStringList::RemoveHead() 7434 void CTabCtrl::RemoveImage(int) 7435 void CListCtrl::RemoveImageList(int) 7436 void CListView::RemoveImageList(int) 7437 void CTreeCtrl::RemoveImageList(int) 7438 void CTreeView::RemoveImageList(int) 7439 void COleDocument::RemoveItem(CDocItem *) 7440 int CMapPtrToPtr::RemoveKey(void *) 7441 int CMapPtrToWord::RemoveKey(void *) 7442 int CMapStringToOb::RemoveKey(char const *) 7443 int CMapStringToPtr::RemoveKey(char const *) 7444 int CMapStringToString::RemoveKey(char const *) 7445 int CMapWordToOb::RemoveKey(unsigned short) 7446 int CMapWordToPtr::RemoveKey(unsigned short) 7447 int CMenu::RemoveMenu(unsigned int,unsigned int) 7448 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7449 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7450 void CPropertySheet::RemovePage(int) 7451 void CPropertySheet::RemovePage(CPropertyPage *) 7452 void CDockBar::RemovePlaceHolder(CControlBar *) 7453 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7454 void CDataBoundProperty::RemoveSource() 7455 CObject * CObList::RemoveTail() 7456 void * CPtrList::RemoveTail() 7457 ATL::CStringT > > CStringList::RemoveTail() 7458 void CDocument::RemoveView(CView *) 7459 void CFile::Rename(char const *,char const *) 7460 int CFtpConnection::Rename(char const *,char const *) 7461 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 7462 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 7463 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 7464 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 7465 int ATL::CStringT > >::Replace(char,char) 7466 int ATL::CStringT > >::Replace(char const *,char const *) 7467 int CImageList::Replace(int,HICON__ *) 7468 int CImageList::Replace(int,CBitmap *,CBitmap *) 7469 int CFindReplaceDialog::ReplaceAll()const 7470 void CDatabase::ReplaceBrackets(char *) 7471 int CFindReplaceDialog::ReplaceCurrent()const 7472 void CEdit::ReplaceSel(char const *,int) 7473 void CRichEditCtrl::ReplaceSel(char const *,int) 7474 int CException::ReportError(unsigned int,unsigned int) 7475 int COleClientItem::ReportError(long)const 7476 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 7477 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 7478 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 7479 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 7480 int CRecordset::Requery() 7481 void COleControl::RequestAsynchronousExchange(unsigned long) 7482 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 7483 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 7484 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 7485 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 7486 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 7487 void COleServerDoc::RequestPositionChange(tagRECT const *) 7488 void CRichEditCtrl::RequestResize() 7489 long COleControlSite::XOleIPSite::RequestUIActivate() 7490 long CEnumArray::XEnumVOID::Reset() 7491 void CComboBox::ResetContent() 7492 void CListBox::ResetContent() 7493 void CRecordset::ResetCursor() 7494 void CCachedDataPathProperty::ResetData() 7495 void CDataPathProperty::ResetData() 7496 int CDC::ResetDCA(_devicemodeA const *) 7497 int CEvent::ResetEvent() 7498 void COleControl::ResetStockProps() 7499 void CControlBar::ResetTimer(unsigned int,unsigned int) 7500 void COleControl::ResetVersion(unsigned long) 7501 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7502 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7503 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7504 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7505 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7506 void COleControl::ResizeFrameWindow(int,int) 7507 void COleSafeArray::ResizeOneDim(unsigned long) 7508 void COleControl::ResizeOpenControl(int,int) 7509 int CPalette::ResizePalette(unsigned int) 7510 void CScrollView::ResizeParentToFit(int) 7511 void CWaitCursor::Restore() 7512 void CReBarCtrl::RestoreBand(unsigned int) 7513 int CDC::RestoreDC(int) 7514 int CPreviewDC::RestoreDC(int) 7515 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 7516 void CCmdTarget::RestoreWaitCursor() 7517 unsigned long CWinThread::ResumeThread() 7518 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 7519 int ATL::CStringT > >::ReverseFind(wchar_t)const 7520 int ATL::CStringT > >::ReverseFind(char)const 7521 long CArchiveStream::Revert() 7522 void COleDropTarget::Revoke() 7523 void COleLinkingDoc::Revoke() 7524 void COleMessageFilter::Revoke() 7525 void COleObjectFactory::Revoke() 7526 void COleObjectFactory::RevokeAll() 7527 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 7528 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 7529 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 7530 void RFX_Bool(CFieldExchange *,char const *,int &) 7531 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 7532 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 7533 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 7534 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 7535 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 7536 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 7537 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 7538 void RFX_Double(CFieldExchange *,char const *,double &) 7539 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 7540 void RFX_Int(CFieldExchange *,char const *,int &) 7541 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 7542 void RFX_Long(CFieldExchange *,char const *,long &) 7543 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 7544 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 7545 void RFX_Single(CFieldExchange *,char const *,float &) 7546 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 7547 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 7548 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 7549 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 7550 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 7551 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 7552 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 7553 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7554 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7555 int CDatabase::Rollback() 7556 int CDC::RoundRect(int,int,int,int,int,int) 7557 int CDC::RoundRect(tagRECT const *,tagPOINT) 7558 void COleClientItem::Run() 7559 int CWinApp::Run() 7560 int CWinThread::Run() 7561 int CWinApp::RunAutomated() 7562 int CWinApp::RunEmbedded() 7563 int CWnd::RunModalLoop(unsigned long) 7564 int COleControlSite::SafeSetProperty(long,unsigned short,...) 7565 int CEditView::SameAsSelected(char const *,int) 7566 int CRichEditView::SameAsSelected(char const *,int,int) 7567 long CBlobProperty::Save(IStream *,int) 7568 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 7569 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 7570 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 7571 long COleControl::XPersistStorage::Save(IStorage *,int) 7572 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 7573 long COleControl::XPersistStreamInit::Save(IStream *,int) 7574 int CDocManager::SaveAllModified() 7575 int CDocTemplate::SaveAllModified() 7576 int CWinApp::SaveAllModified() 7577 void CFrameWnd::SaveBarState(char const *)const 7578 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 7579 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 7580 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 7581 int CDC::SaveDC() 7582 int CPreviewDC::SaveDC() 7583 void COleServerDoc::SaveEmbedding() 7584 int CFormView::SaveFocusControl() 7585 int CDocument::SaveModified() 7586 int COleDocument::SaveModified() 7587 int COleServerDoc::SaveModified() 7588 int COleServerDoc::SaveModifiedPrompt() 7589 long COleClientItem::XOleClientSite::SaveObject() 7590 long COleControlSite::XOleClientSite::SaveObject() 7591 int CControlBarInfo::SaveState(char const *,int) 7592 void CDockState::SaveState(char const *) 7593 long COleControl::SaveState(IStream *) 7594 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 7595 void CWinApp::SaveStdProfileSettings() 7596 void COleDocument::SaveToStorage(CObject *) 7597 void COleLinkingDoc::SaveToStorage(CObject *) 7598 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 7599 void CDockState::ScalePoint(CPoint &) 7600 void CDockState::ScaleRectPos(CRect &) 7601 CSize CDC::ScaleViewportExt(int,int,int,int) 7602 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 7603 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 7604 CSize CDC::ScaleWindowExt(int,int,int,int) 7605 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 7606 void CWnd::ScreenToClient(tagPOINT *)const 7607 void CWnd::ScreenToClient(tagRECT *)const 7608 int CListCtrl::Scroll(CSize) 7609 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 7610 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 7611 void COleControlContainer::ScrollChildren(int,int) 7612 int COleServerDoc::ScrollContainerBy(CSize) 7613 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 7614 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 7615 void CScrollView::ScrollToDevicePosition(tagPOINT) 7616 void CScrollView::ScrollToPosition(tagPOINT) 7617 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7618 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7619 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 7620 int CFindReplaceDialog::SearchDown()const 7621 int CAnimateCtrl::Seek(unsigned int) 7622 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 7623 unsigned __int64 CFile::Seek(__int64,unsigned int) 7624 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 7625 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 7626 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 7627 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 7628 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 7629 void CFile::SeekToBegin() 7630 unsigned __int64 CFile::SeekToEnd() 7631 CFont * CFontHolder::Select(CDC *,long,long) 7632 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 7633 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 7634 int CDC::SelectClipPath(int) 7635 int CDC::SelectClipRgn(CRgn *) 7636 int CDC::SelectClipRgn(CRgn *,int) 7637 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 7638 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 7639 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 7640 long CPrintDialogEx::SelectionChange() 7641 int CTreeCtrl::SelectItem(_TREEITEM *) 7642 int CDC::SelectObject(CRgn *) 7643 CBitmap * CDC::SelectObject(CBitmap *) 7644 CBrush * CDC::SelectObject(CBrush *) 7645 CGdiObject * CDC::SelectObject(CGdiObject *) 7646 CPen * CDC::SelectObject(CPen *) 7647 void * CDC::SelectObject(void *) 7648 CFont * CDC::SelectObject(CFont *) 7649 CFont * CPreviewDC::SelectObject(CFont *) 7650 CPalette * CDC::SelectPalette(CPalette *,int) 7651 void CWinApp::SelectPrinter(void *,void *,int) 7652 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 7653 CFont * COleControl::SelectStockFont(CDC *) 7654 CGdiObject * CDC::SelectStockObject(int) 7655 CGdiObject * CPreviewDC::SelectStockObject(int) 7656 int CComboBox::SelectString(int,char const *) 7657 int CListBox::SelectString(int,char const *) 7658 int CListBox::SelItemRange(int,int,int) 7659 int CAsyncSocket::Send(void const *,int,int) 7660 int CSocket::Send(void const *,int,int) 7661 void COleControl::SendAdvise(unsigned int) 7662 int CWnd::SendChildNotifyLastMsg(long *) 7663 int CSocket::SendChunk(void const *,int,int) 7664 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 7665 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 7666 void CDocument::SendInitialUpdate() 7667 void CRecordset::SendLongBinaryData(void *) 7668 long CWnd::SendMessageA(unsigned int,unsigned int,long) 7669 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 7670 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 7671 void COleControlSite::SendMnemonic(tagMSG *) 7672 int CWnd::SendNotifyMessageA(unsigned int,unsigned int,long) 7673 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 7674 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 7675 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 7676 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 7677 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 7678 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 7679 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7680 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7681 void CByteArray::Serialize(CArchive &) 7682 void CControlBarInfo::Serialize(CArchive &,CDockState *) 7683 void CDocItem::Serialize(CArchive &) 7684 void CDockState::Serialize(CArchive &) 7685 void CDWordArray::Serialize(CArchive &) 7686 void CEditView::Serialize(CArchive &) 7687 void CMapStringToOb::Serialize(CArchive &) 7688 void CMapStringToString::Serialize(CArchive &) 7689 void CMapWordToOb::Serialize(CArchive &) 7690 void CObArray::Serialize(CArchive &) 7691 void CObject::Serialize(CArchive &) 7692 void CObList::Serialize(CArchive &) 7693 void COleClientItem::Serialize(CArchive &) 7694 void COleControl::Serialize(CArchive &) 7695 void COleDocument::Serialize(CArchive &) 7696 void CRichEditDoc::Serialize(CArchive &) 7697 void CRichEditView::Serialize(CArchive &) 7698 void CStringArray::Serialize(CArchive &) 7699 void CStringList::Serialize(CArchive &) 7700 void CWordArray::Serialize(CArchive &) 7701 CArchive & ATL::CTime::Serialize64(CArchive &) 7702 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 7703 void CArchive::SerializeClass(CRuntimeconst *) 7704 void COleControl::SerializeExtent(CArchive &) 7705 void CEditView::SerializeRaw(CArchive &) 7706 void COleControl::SerializeStockProps(CArchive &) 7707 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 7708 int CProperty::Set(unsigned long,void * const,unsigned long) 7709 int CProperty::Set(void * const) 7710 int CProperty::Set(void * const,unsigned long) 7711 int CPropertySection::Set(unsigned long,void *) 7712 int CPropertySection::Set(unsigned long,void *,unsigned long) 7713 int CPropertySet::Set(_GUID,unsigned long,void *) 7714 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 7715 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 7716 void CRecordset::SetAbsolutePosition(long) 7717 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 7718 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7719 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7720 int CPropertySheet::SetActivePage(int) 7721 int CPropertySheet::SetActivePage(CPropertyPage *) 7722 void CSplitterWnd::SetActivePane(int,int,CWnd *) 7723 void CFrameWnd::SetActiveView(CView *,int) 7724 CWnd * CWnd::SetActiveWindow() 7725 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 7726 void CIPAddressCtrl::SetAddress(unsigned long) 7727 void CHtmlView::SetAddressBar(int) 7728 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 7729 int CToolBarCtrl::SetAnchorHighlight(int) 7730 void CListBox::SetAnchorIndex(int) 7731 void COleControl::SetAppearance(short) 7732 int CDC::SetArcDirection(int) 7733 void ATL::CSimpleStringT::SetAt(int,wchar_t) 7734 void ATL::CSimpleStringT::SetAt(int,char) 7735 void CByteArray::SetAt(int,unsigned char) 7736 void CDWordArray::SetAt(int,unsigned long) 7737 void CMapPtrToPtr::SetAt(void *,void *) 7738 void CMapPtrToWord::SetAt(void *,unsigned short) 7739 void CMapStringToOb::SetAt(char const *,CObject *) 7740 void CMapStringToPtr::SetAt(char const *,void *) 7741 void CMapStringToString::SetAt(char const *,char const *) 7742 void CMapWordToOb::SetAt(unsigned short,CObject *) 7743 void CMapWordToPtr::SetAt(unsigned short,void *) 7744 void CObArray::SetAt(int,CObject *) 7745 void CObList::SetAt(__POSITION *,CObject *) 7746 void CPtrArray::SetAt(int,void *) 7747 void CPtrList::SetAt(__POSITION *,void *) 7748 void CStringArray::SetAt(int,ATL::CStringT > > const &) 7749 void CStringArray::SetAt(int,char const *) 7750 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 7751 void CStringList::SetAt(__POSITION *,char const *) 7752 void CUIntArray::SetAt(int,unsigned int) 7753 void CWordArray::SetAt(int,unsigned short) 7754 void CByteArray::SetAtGrow(int,unsigned char) 7755 void CDWordArray::SetAtGrow(int,unsigned long) 7756 void CObArray::SetAtGrow(int,CObject *) 7757 void CPtrArray::SetAtGrow(int,void *) 7758 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 7759 void CStringArray::SetAtGrow(int,char const *) 7760 void CUIntArray::SetAtGrow(int,unsigned int) 7761 void CWordArray::SetAtGrow(int,unsigned short) 7762 void CDC::SetAttribDC(HDC__ *) 7763 void CMetaFileDC::SetAttribDC(HDC__ *) 7764 void CPreviewDC::SetAttribDC(HDC__ *) 7765 int CRichEditCtrl::SetAutoURLDetect(int) 7766 void COleControl::SetBackColor(unsigned long) 7767 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 7768 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOA *) 7769 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7770 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7771 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 7772 void CControlBar::SetBarStyle(unsigned long) 7773 int CSpinButtonCtrl::SetBase(int) 7774 void CAsyncMonikerFile::SetBinding(IBinding *) 7775 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 7776 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 7777 int CToolBar::SetBitmap(HBITMAP__ *) 7778 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 7779 CSize CBitmap::SetBitmapDimension(int,int) 7780 int CHeaderCtrl::SetBitmapMargin(int) 7781 int CToolBarCtrl::SetBitmapSize(CSize) 7782 unsigned long CDC::SetBkColor(unsigned long) 7783 unsigned long CImageList::SetBkColor(unsigned long) 7784 int CListCtrl::SetBkColor(unsigned long) 7785 unsigned long CPreviewDC::SetBkColor(unsigned long) 7786 unsigned long CProgressCtrl::SetBkColor(unsigned long) 7787 unsigned long CReBarCtrl::SetBkColor(unsigned long) 7788 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 7789 unsigned long CTreeCtrl::SetBkColor(unsigned long) 7790 int CListCtrl::SetBkImage(char *,int,int,int) 7791 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 7792 int CListCtrl::SetBkImage(tagLVBKIMAGEA *) 7793 int CDC::SetBkMode(int) 7794 void CRecordset::SetBookmark(CDBVariant const &) 7795 void CControlBar::SetBorders(int,int,int,int) 7796 void CControlBar::SetBorders(tagRECT const *) 7797 void CStatusBar::SetBorders(int,int,int,int) 7798 void CStatusBar::SetBorders(tagRECT const *) 7799 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 7800 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 7801 void COleControl::SetBorderStyle(short) 7802 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 7803 CPoint CDC::SetBrushOrg(int,int) 7804 CPoint CDC::SetBrushOrg(tagPOINT) 7805 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 7806 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 7807 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 7808 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 7809 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOA *) 7810 int CToolBar::SetButtons(unsigned int const *,int) 7811 int CToolBarCtrl::SetButtonSize(CSize) 7812 void CToolBarCtrl::SetButtonStructSize(int) 7813 void CButton::SetButtonStyle(unsigned int,int) 7814 void CToolBar::SetButtonStyle(int,unsigned int) 7815 int CToolBar::SetButtonText(int,char const *) 7816 int CToolBarCtrl::SetButtonWidth(int,int) 7817 int CListCtrl::SetCallbackMask(unsigned int) 7818 CWnd * COleControl::SetCapture() 7819 CWnd * CWnd::SetCapture() 7820 long COleControlSite::XOleIPSite::SetCapture(int) 7821 int CListBox::SetCaretIndex(int,int) 7822 void CWnd::SetCaretPos(tagPOINT) 7823 void CRichEditView::SetCharFormat(CHARFORMAT2A) 7824 void CButton::SetCheck(int) 7825 void CCheckListBox::SetCheck(int,int) 7826 void CCmdUI::SetCheck(int) 7827 int CListCtrl::SetCheck(int,int) 7828 void COleCmdUI::SetCheck(int) 7829 void CStatusCmdUI::SetCheck(int) 7830 void CTestCmdUI::SetCheck(int) 7831 void CToolCmdUI::SetCheck(int) 7832 int CTreeCtrl::SetCheck(_TREEITEM *,int) 7833 void CCheckListBox::SetCheckStyle(unsigned int) 7834 void CPropertySet::SetClassID(_GUID) 7835 void CDataBoundProperty::SetClientSite(COleControlSite *) 7836 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 7837 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 7838 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 7839 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 7840 void COleDataSource::SetClipboard() 7841 HWND__ * CWnd::SetClipboardViewer() 7842 int CToolBarCtrl::SetCmdID(int,unsigned int) 7843 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 7844 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 7845 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 7846 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 7847 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 7848 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 7849 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 7850 int CListCtrl::SetColumn(int,tagLVCOLUMNA const *) 7851 void CSplitterWnd::SetColumnInfo(int,int,int) 7852 int CListCtrl::SetColumnOrderArray(int,int *) 7853 void CListBox::SetColumnWidth(int) 7854 int CListCtrl::SetColumnWidth(int,int) 7855 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 7856 void CDocTemplate::SetContainerInfo(unsigned int) 7857 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 7858 void CDataPathProperty::SetControl(COleControl *) 7859 void CReflectorWnd::SetControl(COleControl *) 7860 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 7861 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 7862 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 7863 int COleControl::SetControlSize(int,int) 7864 int COlePropertyPage::SetControlStatus(unsigned int,int) 7865 void CFileDialog::SetControlText(int,char const *) 7866 int CInternetSession::SetCookie(char const *,char const *,char const *) 7867 void CTabCtrl::SetCurFocus(int) 7868 void COleCurrency::SetCurrency(long,long) 7869 void CColorDialog::SetCurrentColor(unsigned long) 7870 int CFtpConnection::SetCurrentDirectoryA(char const *) 7871 void CWinApp::SetCurrentHandles() 7872 void CPreviewView::SetCurrentPage(unsigned int,int) 7873 int CComboBox::SetCurSel(int) 7874 int CListBox::SetCurSel(int) 7875 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 7876 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 7877 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 7878 int CTabCtrl::SetCurSel(int) 7879 HICON__ * CButton::SetCursor(HICON__ *) 7880 int CRectTracker::SetCursor(CWnd *,unsigned int)const 7881 HICON__ * CStatic::SetCursor(HICON__ *) 7882 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7883 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7884 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7885 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7886 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7887 int CMonthCalCtrl::SetDayState(int,unsigned long *) 7888 void COccManager::SetDefaultButton(CWnd *,int) 7889 void COleControlSite::SetDefaultButton(int) 7890 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 7891 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 7892 int CMenu::SetDefaultItem(unsigned int,int) 7893 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 7894 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 7895 void CFileDialog::SetDefExt(char const *) 7896 void CDialog::SetDefID(unsigned int) 7897 void CToolTipCtrl::SetDelayTime(unsigned int) 7898 void CToolTipCtrl::SetDelayTime(unsigned long,int) 7899 void CDumpContext::SetDepth(int) 7900 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 7901 void COlePropertyPage::SetDialogResource(void *) 7902 void CRecordset::SetDirtyFieldStatus(unsigned long) 7903 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 7904 int COleControlSite::SetDlgCtrlID(int) 7905 int CWnd::SetDlgCtrlID(int) 7906 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 7907 void CWnd::SetDlgItemInt(int,unsigned int,int) 7908 void COleControlContainer::SetDlgItemTextA(int,char const *) 7909 void CWnd::SetDlgItemTextA(int,char const *) 7910 void CFrameWnd::SetDockState(CDockState const &) 7911 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 7912 int CImageList::SetDragCursorImage(int,CPoint) 7913 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 7914 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 7915 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 7916 int CComboBox::SetDroppedWidth(unsigned int) 7917 void CDataBoundProperty::SetDSCSite(COleControlSite *) 7918 int CComboBox::SetEditSel(int,int) 7919 int CComboBoxEx::SetEditSel(int,int) 7920 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 7921 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 7922 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 7923 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 7924 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 7925 void COleControl::SetEnabled(int) 7926 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 7927 int CEvent::SetEvent() 7928 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 7929 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 7930 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 7931 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 7932 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 7933 int CComboBox::SetExtendedUI(int) 7934 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 7935 int COleControlSite::SetExtent() 7936 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 7937 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 7938 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 7939 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 7940 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 7941 void CRecordset::SetFieldDirty(void *,int) 7942 void CIPAddressCtrl::SetFieldFocus(unsigned short) 7943 void CRecordset::SetFieldNull(void *,int) 7944 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 7945 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 7946 void CFieldExchange::SetFieldType(unsigned int) 7947 void CFile::SetFilePath(char const *) 7948 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 7949 void CPropertySheet::SetFinishText(char const *) 7950 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 7951 CWnd * COleControl::SetFocus() 7952 CWnd * COleControlSite::SetFocus(tagMSG *) 7953 CWnd * COleControlSite::SetFocus() 7954 CWnd * CWnd::SetFocus() 7955 long COleControlSite::XOleIPSite::SetFocus(int) 7956 void CDHtmlDialog::SetFocusToElement(char const *) 7957 int CDialogTemplate::SetFont(char const *,unsigned short) 7958 void CFontHolder::SetFont(IFont *) 7959 void COleControl::SetFont(IFontDisp *) 7960 void CWnd::SetFont(CFont *,int) 7961 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 7962 void COleControl::SetForeColor(unsigned long) 7963 int CWnd::SetForegroundWindow() 7964 int CDateTimeCtrl::SetFormat(char const *) 7965 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 7966 void CPropertySection::SetFormatID(_GUID) 7967 void CPropertySet::SetFormatVersion(unsigned short) 7968 void CHtmlView::SetFullScreen(int) 7969 void CEdit::SetHandle(void *) 7970 void CSharedFile::SetHandle(void *,int) 7971 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 7972 void CHtmlView::SetHeight(long) 7973 void CToolBar::SetHeight(int) 7974 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 7975 void CDialog::SetHelpID(unsigned int) 7976 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 7977 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 7978 void CComboBox::SetHorizontalExtent(unsigned int) 7979 void CListBox::SetHorizontalExtent(int) 7980 void CDHtmlDialog::SetHostFlags(unsigned long) 7981 void COleClientItem::SetHostNames(char const *,char const *) 7982 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7983 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7984 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7985 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7986 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 7987 int CHeaderCtrl::SetHotDivider(int) 7988 int CHeaderCtrl::SetHotDivider(CPoint) 7989 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 7990 int CListCtrl::SetHotItem(int) 7991 int CToolBarCtrl::SetHotItem(int) 7992 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 7993 unsigned long CListCtrl::SetHoverTime(unsigned long) 7994 HICON__ * CButton::SetIcon(HICON__ *) 7995 HICON__ * CStatic::SetIcon(HICON__ *) 7996 int CStatusBarCtrl::SetIcon(int,HICON__ *) 7997 HICON__ * CWnd::SetIcon(HICON__ *,int) 7998 int COleClientItem::SetIconicMetafile(void *) 7999 CSize CListCtrl::SetIconSpacing(int,int) 8000 CSize CListCtrl::SetIconSpacing(CSize) 8001 void CProperty::SetID(unsigned long) 8002 int CImageList::SetImageCount(unsigned int) 8003 CImageList * CComboBoxEx::SetImageList(CImageList *) 8004 CImageList * CHeaderCtrl::SetImageList(CImageList *) 8005 CImageList * CListCtrl::SetImageList(CImageList *,int) 8006 int CReBarCtrl::SetImageList(CImageList *) 8007 CImageList * CTabCtrl::SetImageList(CImageList *) 8008 CImageList * CToolBarCtrl::SetImageList(CImageList *) 8009 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 8010 int CToolBarCtrl::SetIndent(int) 8011 void CTreeCtrl::SetIndent(unsigned int) 8012 int CStatusBar::SetIndicators(unsigned int const *,int) 8013 void COleControl::SetInitialDataFormats() 8014 long CDocObjectServer::XPrint::SetInitialPageNum(long) 8015 void COleControl::SetInitialSize(int,int) 8016 void CControlBar::SetInPlaceOwner(CWnd *) 8017 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 8018 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 8019 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 8020 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 8021 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 8022 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 8023 int CHeaderCtrl::SetItem(int,_HD_ITEMA *) 8024 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 8025 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 8026 int CListCtrl::SetItem(tagLVITEMA const *) 8027 int CTabCtrl::SetItem(int,tagTCITEMA *) 8028 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 8029 int CTreeCtrl::SetItem(tagTVITEMA *) 8030 void CListCtrl::SetItemCount(int) 8031 int CListCtrl::SetItemCountEx(int,unsigned long) 8032 int CComboBox::SetItemData(int,unsigned long) 8033 int CListBox::SetItemData(int,unsigned long) 8034 int CListCtrl::SetItemData(int,unsigned long) 8035 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 8036 int CComboBox::SetItemDataPtr(int,void *) 8037 int CListBox::SetItemDataPtr(int,void *) 8038 int CTabCtrl::SetItemExtra(int) 8039 int CComboBox::SetItemHeight(int,unsigned int) 8040 int CListBox::SetItemHeight(int,unsigned int) 8041 short CTreeCtrl::SetItemHeight(short) 8042 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 8043 void COleServerItem::SetItemName(char const *) 8044 int CListCtrl::SetItemPosition(int,tagPOINT) 8045 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 8046 CSize CTabCtrl::SetItemSize(CSize) 8047 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 8048 int CListCtrl::SetItemState(int,tagLVITEMA *) 8049 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 8050 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 8051 int CListCtrl::SetItemText(int,int,char const *) 8052 int CTreeCtrl::SetItemText(_TREEITEM *,char const *) 8053 unsigned long CDC::SetLayout(unsigned long) 8054 void CHtmlView::SetLeft(long) 8055 void ATL::CSimpleStringT::SetLength(int) 8056 void ATL::CSimpleStringT::SetLength(int) 8057 void CFile::SetLength(unsigned __int64) 8058 void CInternetFile::SetLength(unsigned __int64) 8059 void CMemFile::SetLength(unsigned __int64) 8060 void COleStreamFile::SetLength(unsigned __int64) 8061 void CSocketFile::SetLength(unsigned __int64) 8062 void CEdit::SetLimitText(unsigned int) 8063 unsigned long CTreeCtrl::SetLineColor(unsigned long) 8064 int CSliderCtrl::SetLineSize(int) 8065 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 8066 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 8067 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 8068 void CArchive::SetLoadParams(unsigned int) 8069 unsigned long CComboBox::SetLocale(unsigned long) 8070 unsigned long CListBox::SetLocale(unsigned long) 8071 void CRecordset::SetLockingMode(unsigned int) 8072 void CDatabase::SetLoginTimeout(unsigned long) 8073 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8074 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8075 int CDC::SetMapMode(int) 8076 int CPreviewDC::SetMapMode(int) 8077 unsigned long CDC::SetMapperFlags(unsigned long) 8078 void CToolTipCtrl::SetMargin(tagRECT *) 8079 void CEdit::SetMargins(unsigned int,unsigned int) 8080 void CRichEditView::SetMargins(CRect const &) 8081 void CPrintInfo::SetMaxPage(unsigned int) 8082 int CMonthCalCtrl::SetMaxSelCount(int) 8083 int CToolBarCtrl::SetMaxTextRows(int) 8084 int CToolTipCtrl::SetMaxTipWidth(int) 8085 int CWnd::SetMenu(CMenu *) 8086 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8087 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8088 void CHtmlView::SetMenuBar(int) 8089 int CMenu::SetMenuContextHelpId(unsigned long) 8090 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 8091 int CMenu::SetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 8092 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 8093 void CFrameWnd::SetMessageText(unsigned int) 8094 void CFrameWnd::SetMessageText(char const *) 8095 void CStatusBarCtrl::SetMinHeight(int) 8096 void CPrintInfo::SetMinPage(unsigned int) 8097 int CTabCtrl::SetMinTabWidth(int) 8098 int CDC::SetMiterLimit(float) 8099 void CPropertyPage::SetModified(int) 8100 void CDocument::SetModifiedFlag(int) 8101 void COleControl::SetModifiedFlag(int) 8102 void COlePropertyPage::SetModifiedFlag(int) 8103 void CRichEditDoc::SetModifiedFlag(int) 8104 void CEdit::SetModify(int) 8105 void CRichEditCtrl::SetModify(int) 8106 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 8107 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 8108 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 8109 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 8110 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 8111 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 8112 int CMonthCalCtrl::SetMonthDelta(int) 8113 int CPropertySection::SetName(unsigned long,char const *) 8114 void COleControl::SetNotPermitted() 8115 void CCmdTarget::SetNotSupported() 8116 void COleControl::SetNotSupported() 8117 void CRecordset::SetNullFieldStatus(unsigned long) 8118 void CRecordset::SetNullParamStatus(unsigned long) 8119 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8120 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8121 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 8122 void CArchive::SetObjectSchema(unsigned int) 8123 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8124 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8125 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8126 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8127 void CHtmlView::SetOffline(int) 8128 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 8129 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 8130 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 8131 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 8132 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 8133 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 8134 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 8135 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 8136 int CHeaderCtrl::SetOrderArray(int,int *) 8137 void CPropertySet::SetOSVersion(unsigned long) 8138 void CDC::SetOutputDC(HDC__ *) 8139 void CMetaFileDC::SetOutputDC(HDC__ *) 8140 void CPreviewDC::SetOutputDC(HDC__ *) 8141 int CImageList::SetOverlayImage(int,int) 8142 CWnd * CReBarCtrl::SetOwner(CWnd *) 8143 void CToolBar::SetOwner(CWnd *) 8144 void CToolBarCtrl::SetOwner(CWnd *) 8145 void CWnd::SetOwner(CWnd *) 8146 void CTabCtrl::SetPadding(CSize) 8147 void COlePropertyPage::SetPageName(char const *) 8148 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 8149 int CSliderCtrl::SetPageSize(int) 8150 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 8151 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 8152 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 8153 void CStatusBar::SetPaneStyle(int,unsigned int) 8154 int CStatusBar::SetPaneText(int,char const *,int) 8155 void CRichEditView::SetPaperSize(CSize) 8156 int CRichEditCtrl::SetParaFormat(_paraformat &) 8157 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 8158 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 8159 void CRecordset::SetParamNull(int,int) 8160 CWnd * CWnd::SetParent(CWnd *) 8161 int CStatusBarCtrl::SetParts(int,int *) 8162 void CEdit::SetPasswordChar(char) 8163 void CDataPathProperty::SetPath(char const *) 8164 void CDocument::SetPathName(char const *,int) 8165 void COleDocument::SetPathName(char const *,int) 8166 void CRichEditDoc::SetPathName(char const *,int) 8167 void CHandleMap::SetPermanent(void *,CObject *) 8168 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 8169 unsigned long CDC::SetPixel(int,int,unsigned long) 8170 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 8171 int CDC::SetPixelV(int,int,unsigned long) 8172 int CDC::SetPixelV(tagPOINT,unsigned long) 8173 int CDC::SetPolyFillMode(int) 8174 int CProgressCtrl::SetPos(int) 8175 void CSliderCtrl::SetPos(int) 8176 int CSpinButtonCtrl::SetPos(int) 8177 int CSpinButtonCtrl::SetPos32(int) 8178 void COleIPFrameWnd::SetPreviewMode(int) 8179 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 8180 int COleClientItem::SetPrintDevice(tagPDA const *) 8181 void CEditView::SetPrinterFont(CFont *) 8182 int CPreviewView::SetPrintView(CView *) 8183 int COlePropertyPage::SetPropCheck(char const *,int) 8184 void COleControlSite::SetProperty(long,unsigned short,...) 8185 void COleDispatchDriver::SetProperty(long,unsigned short,...) 8186 void CWnd::SetProperty(long,unsigned short,...) 8187 void COleControlSite::SetPropertyV(long,unsigned short,char *) 8188 int COlePropertyPage::SetPropIndex(char const *,int) 8189 int COlePropertyPage::SetPropRadio(char const *,int) 8190 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 8191 int COlePropertyPage::SetPropText(char const *,unsigned char &) 8192 int COlePropertyPage::SetPropText(char const *,short &) 8193 int COlePropertyPage::SetPropText(char const *,int &) 8194 int COlePropertyPage::SetPropText(char const *,unsigned int &) 8195 int COlePropertyPage::SetPropText(char const *,long &) 8196 int COlePropertyPage::SetPropText(char const *,unsigned long &) 8197 int COlePropertyPage::SetPropText(char const *,float &) 8198 int COlePropertyPage::SetPropText(char const *,double &) 8199 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 8200 long CWnd::SetProxy(IAccessibleProxy *) 8201 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 8202 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 8203 void CDatabase::SetQueryTimeout(unsigned long) 8204 void CCmdUI::SetRadio(int) 8205 void CTestCmdUI::SetRadio(int) 8206 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8207 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8208 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8209 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8210 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8211 void CProgressCtrl::SetRange(short,short) 8212 void CSliderCtrl::SetRange(int,int,int) 8213 void CSpinButtonCtrl::SetRange(short,short) 8214 void CProgressCtrl::SetRange32(int,int) 8215 void CSpinButtonCtrl::SetRange32(int,int) 8216 void CSliderCtrl::SetRangeMax(int,int) 8217 void CSliderCtrl::SetRangeMin(int,int) 8218 int CInternetFile::SetReadBufferSize(unsigned int) 8219 int CEdit::SetReadOnly(int) 8220 int CRichEditCtrl::SetReadOnly(int) 8221 void CEdit::SetRect(tagRECT const *) 8222 void CRichEditCtrl::SetRect(tagRECT const *) 8223 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 8224 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 8225 int COleControl::SetRectInContainer(tagRECT const *) 8226 void CEdit::SetRectNP(tagRECT const *) 8227 void CRgn::SetRectRgn(int,int,int,int) 8228 void CRgn::SetRectRgn(tagRECT const *) 8229 void CWnd::SetRedraw(int) 8230 void CHtmlView::SetRegisterAsBrowser(int) 8231 void CHtmlView::SetRegisterAsDropTarget(int) 8232 void CWinApp::SetRegistryKey(unsigned int) 8233 void CWinApp::SetRegistryKey(char const *) 8234 void COleMessageFilter::SetRetryReply(unsigned long) 8235 int CDC::SetROP2(int) 8236 void CSplitterWnd::SetRowInfo(int,int,int) 8237 void CToolBarCtrl::SetRows(int,int,tagRECT *) 8238 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 8239 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 8240 void CRecordset::SetRowsetSize(unsigned long) 8241 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 8242 void CPreviewView::SetScaledSize(unsigned int) 8243 void CPreviewDC::SetScaleRatio(int,int) 8244 void CScrollView::SetScaleToFitSize(tagSIZE) 8245 void CDockState::SetScreenSize(CSize &) 8246 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 8247 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 8248 int CScrollBar::SetScrollPos(int,int) 8249 int CWnd::SetScrollPos(int,int,int) 8250 void CScrollBar::SetScrollRange(int,int,int) 8251 void CWnd::SetScrollRange(int,int,int,int) 8252 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8253 void CSplitterWnd::SetScrollStyle(unsigned long) 8254 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8255 int CPropertySection::SetSectionName(char const *) 8256 void CEdit::SetSel(int,int,int) 8257 void CEdit::SetSel(unsigned long,int) 8258 int CListBox::SetSel(int,int) 8259 void CRichEditCtrl::SetSel(_charrange &) 8260 void CRichEditCtrl::SetSel(long,long) 8261 void CSliderCtrl::SetSelection(int,int) 8262 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 8263 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 8264 void CCheckListBox::SetSelectionCheck(int) 8265 int CListCtrl::SetSelectionMark(int) 8266 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8267 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8268 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8269 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8270 void CHtmlView::SetSilent(int) 8271 int CStatusBarCtrl::SetSimple(int) 8272 long CPrintDialogEx::SetSite(IUnknown *) 8273 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8274 void CByteArray::SetSize(int,int) 8275 void CDWordArray::SetSize(int,int) 8276 void CObArray::SetSize(int,int) 8277 void CPtrArray::SetSize(int,int) 8278 void CStringArray::SetSize(int,int) 8279 void CUIntArray::SetSize(int,int) 8280 void CWordArray::SetSize(int,int) 8281 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8282 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8283 void CSplitterWnd::SetSplitCursor(int) 8284 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8285 void CButton::SetState(int) 8286 void CRecordset::SetState(int,char const *,unsigned long) 8287 int CToolBarCtrl::SetState(int,unsigned int) 8288 void CFile::SetStatus(char const *,CFileStatus const &) 8289 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8290 void CHtmlView::SetStatusBar(int) 8291 int CControlBar::SetStatusText(int) 8292 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8293 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8294 int CProgressCtrl::SetStep(int) 8295 void CArchive::SetStoreParams(unsigned int,unsigned int) 8296 int CDC::SetStretchBltMode(int) 8297 void ATL::CSimpleStringT::SetString(wchar_t const *) 8298 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 8299 void ATL::CSimpleStringT::SetString(char const *) 8300 void ATL::CSimpleStringT::SetString(char const *,int) 8301 void COleVariant::SetString(char const *,unsigned short) 8302 void CToolBarCtrl::SetStyle(unsigned long) 8303 void CDatabase::SetSynchronousMode(int) 8304 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8305 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8306 int CDialogTemplate::SetSystemFont(unsigned short) 8307 int CEdit::SetTabStops(int const &) 8308 int CEdit::SetTabStops(int,int *) 8309 void CEdit::SetTabStops() 8310 void CEditView::SetTabStops(int) 8311 int CListBox::SetTabStops(int const &) 8312 int CListBox::SetTabStops(int,int *) 8313 void CListBox::SetTabStops() 8314 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8315 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8316 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8317 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8318 void CFileDialog::SetTemplate(char const *,char const *) 8319 void CCmdUI::SetText(char const *) 8320 void COleCmdUI::SetText(char const *) 8321 void COleControl::SetText(char const *) 8322 int CStatusBarCtrl::SetText(char const *,int,int) 8323 void CStatusCmdUI::SetText(char const *) 8324 void CTestCmdUI::SetText(char const *) 8325 void CToolCmdUI::SetText(char const *) 8326 unsigned int CDC::SetTextAlign(unsigned int) 8327 int CListCtrl::SetTextBkColor(unsigned long) 8328 int CDC::SetTextCharacterExtra(int) 8329 unsigned long CDC::SetTextColor(unsigned long) 8330 int CListCtrl::SetTextColor(unsigned long) 8331 unsigned long CPreviewDC::SetTextColor(unsigned long) 8332 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8333 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8334 int CDC::SetTextJustification(int,int) 8335 int CRichEditCtrl::SetTextMode(unsigned int) 8336 void CHtmlView::SetTheaterMode(int) 8337 int CWinThread::SetThreadPriority(int) 8338 int CSliderCtrl::SetTic(int) 8339 void CSliderCtrl::SetTicFreq(int) 8340 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8341 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8342 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8343 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8344 void CToolTipCtrl::SetTipBkColor(unsigned long) 8345 int CSliderCtrl::SetTipSide(int) 8346 void CStatusBarCtrl::SetTipText(int,char const *) 8347 void CToolTipCtrl::SetTipTextColor(unsigned long) 8348 void CDocument::SetTitle(char const *) 8349 void CFrameWnd::SetTitle(char const *) 8350 void CPropertySheet::SetTitle(char const *,unsigned int) 8351 void CRichEditDoc::SetTitle(char const *) 8352 int CToolTipCtrl::SetTitle(unsigned int,char const *) 8353 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8354 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8355 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8356 void CHtmlView::SetToolBar(int) 8357 void CToolTipCtrl::SetToolInfo(tagTOOLINFOA *) 8358 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8359 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8360 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8361 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8362 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8363 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8364 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8365 void CHtmlView::SetTop(long) 8366 int CComboBox::SetTopIndex(int) 8367 int CListBox::SetTopIndex(int) 8368 void CPreviewDC::SetTopLeftOffset(CSize) 8369 void CProperty::SetType(unsigned long) 8370 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8371 void CRecordset::SetUpdateMethod() 8372 void CThreadSlotData::SetValue(int,void *) 8373 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8374 CSize CDC::SetViewportExt(tagSIZE) 8375 CSize CDC::SetViewportExt(int,int) 8376 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8377 CSize CMetaFileDC::SetViewportExt(int,int) 8378 CSize CPreviewDC::SetViewportExt(int,int) 8379 CPoint CDC::SetViewportOrg(tagPOINT) 8380 CPoint CDC::SetViewportOrg(int,int) 8381 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8382 CPoint CMetaFileDC::SetViewportOrg(int,int) 8383 CPoint CPreviewDC::SetViewportOrg(int,int) 8384 void CHtmlView::SetVisible(int) 8385 void CHtmlView::SetWidth(long) 8386 int CWnd::SetWindowContextHelpId(unsigned long) 8387 CSize CDC::SetWindowExt(tagSIZE) 8388 CSize CDC::SetWindowExt(int,int) 8389 CSize CPreviewDC::SetWindowExt(int,int) 8390 CPoint CDC::SetWindowOrg(int,int) 8391 CPoint CDC::SetWindowOrg(tagPOINT) 8392 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 8393 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8394 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8395 int CWnd::SetWindowRgn(HRGN__ *,int) 8396 void COleControlSite::SetWindowTextA(char const *) 8397 void CWnd::SetWindowTextA(char const *) 8398 void CPropertySheet::SetWizardButtons(unsigned long) 8399 void CPropertySheet::SetWizardMode() 8400 int CRichEditCtrl::SetWordCharFormat(_charformat &) 8401 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 8402 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 8403 void CListCtrl::SetWorkAreas(int,tagRECT *) 8404 int CInternetFile::SetWriteBufferSize(unsigned int) 8405 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 8406 long CDocObjectServer::XOleDocumentView::Show(int) 8407 long COlePropertyPage::XPropertyPage::Show(unsigned int) 8408 void CDockBar::ShowAll(int) 8409 int CReBarCtrl::ShowBand(unsigned int,int) 8410 void CWnd::ShowCaret() 8411 long CRichEditCntrItem::ShowContainerUI(int) 8412 long CRichEditView::ShowContainerUI(int) 8413 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 8414 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8415 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8416 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8417 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 8418 void CComboBox::ShowDropDown(int) 8419 long COleClientItem::XOleClientSite::ShowObject() 8420 long COleControlSite::XOleClientSite::ShowObject() 8421 void CWnd::ShowOwnedPopups(int) 8422 void CFrameWnd::ShowOwnedWindows(int) 8423 long COleControlSite::XOleControlSite::ShowPropertyFrame() 8424 void CScrollBar::ShowScrollBar(int) 8425 void CWnd::ShowScrollBar(unsigned int,int) 8426 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8427 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8428 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8429 int COleControlSite::ShowWindow(int) 8430 int CWnd::ShowWindow(int) 8431 int CAsyncSocket::ShutDown(int) 8432 tagSIZE const CScrollView::sizeDefault 8433 int CMonthCalCtrl::SizeMinReq(int) 8434 void CBitmapButton::SizeToContent() 8435 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 8436 int CReBarCtrl::SizeToRect(CRect &) 8437 long CEnumArray::XEnumVOID::Skip(unsigned long) 8438 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 8439 int CAsyncSocket::Socket(int,long,int,int) 8440 int CTreeCtrl::SortChildren(_TREEITEM *) 8441 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 8442 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 8443 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 8444 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 8445 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 8446 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 8447 int CSplitterWnd::SplitColumn(int) 8448 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 8449 int CSplitterWnd::SplitRow(int) 8450 int CDC::StartDocA(_DOCINFOA *) 8451 int CDC::StartDocA(char const *) 8452 void CDockContext::StartDrag(CPoint) 8453 int CDC::StartPage() 8454 void CDockContext::StartResize(int,CPoint) 8455 void CSplitterWnd::StartTracking(int) 8456 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 8457 int CProgressCtrl::StepIt() 8458 int CAnimateCtrl::Stop() 8459 void CHtmlView::Stop() 8460 void CRichEditCtrl::StopGroupTyping() 8461 void CSplitterWnd::StopTracking(int) 8462 void CRuntimeClass::Store(CArchive &)const 8463 void CRecordset::StoreFields() 8464 void CRichEditView::Stream(CArchive &,int) 8465 long CRichEditCtrl::StreamIn(int,_editstream &) 8466 long CRichEditCtrl::StreamOut(int,_editstream &) 8467 void CDockContext::Stretch(CPoint) 8468 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 8469 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8470 int ATL::CSimpleStringT::StringLength(char const *) 8471 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8472 int ATL::CSimpleStringT::StringLength(char const *) 8473 int CDC::StrokeAndFillPath() 8474 int CDC::StrokePath() 8475 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 8476 int CWnd::SubclassWindow(HWND__ *) 8477 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 8478 int COleDocObjectItem::SupportsIPrint() 8479 unsigned long CWinThread::SuspendThread() 8480 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8481 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8482 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 8483 CSize CDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 8484 CSize CDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8485 CSize CMetaFileDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 8486 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8487 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 8488 void CRichEditView::TextNotFound(char const *) 8489 int CDC::TextOutA(int,int,ATL::CStringT > > const &) 8490 int CDC::TextOutA(int,int,char const *,int) 8491 int CMetaFileDC::TextOutA(int,int,ATL::CStringT > > const &) 8492 int CMetaFileDC::TextOutA(int,int,char const *,int) 8493 int CPreviewDC::TextOutA(int,int,char const *,int) 8494 void CDatabase::ThrowDBException(short) 8495 void CRecordset::ThrowDBException(short,void *) 8496 void CFileException::ThrowErrno(int,char const *) 8497 void COleControl::ThrowError(long,unsigned int,unsigned int) 8498 void COleControl::ThrowError(long,char const *,unsigned int) 8499 void ATL::CSimpleStringT::ThrowMemoryException() 8500 void ATL::CSimpleStringT::ThrowMemoryException() 8501 void CFileException::ThrowOsError(long,char const *) 8502 void CDockContext::ToggleDocking() 8503 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 8504 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 8505 COleVariant CDataSourceControl::ToVariant(int) 8506 ATL::CTraceCategory traceAppMsg 8507 ATL::CTraceCategory traceCmdRouting 8508 ATL::CTraceCategory traceDatabase 8509 ATL::CTraceCategory traceDumpContext 8510 void CDBException::TraceErrorMessage(char const *)const 8511 ATL::CTraceCategory traceGdi 8512 ATL::CTraceCategory traceHtml 8513 ATL::CTraceCategory traceInternet 8514 ATL::CTraceCategory traceKernel 8515 ATL::CTraceCategory traceMemory 8516 ATL::CTraceCategory traceMultiApp 8517 ATL::CTraceCategory traceOle 8518 ATL::CTraceCategory traceSocket 8519 ATL::CTraceCategory traceUser 8520 ATL::CTraceCategory traceWinMsg 8521 int CDockContext::Track() 8522 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 8523 void CSplitterWnd::TrackColumnSize(int,int) 8524 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 8525 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 8526 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 8527 void CSplitterWnd::TrackRowSize(int,int) 8528 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 8529 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8530 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8531 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8532 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8533 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 8534 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 8535 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 8536 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 8537 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 8538 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 8539 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 8540 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 8541 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8542 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8543 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8544 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 8545 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 8546 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 8547 ATL::CStringT > > & ATL::CStringT > >::Trim() 8548 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 8549 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 8550 ATL::CStringT > > & ATL::CStringT > >::Trim() 8551 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 8552 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 8553 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8554 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 8555 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 8556 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8557 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 8558 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 8559 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8560 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 8561 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 8562 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8563 void ATL::CSimpleStringT::Truncate(int) 8564 void ATL::CSimpleStringT::Truncate(int) 8565 long CDocObjectServer::XOleDocumentView::UIActivate(int) 8566 void COccManager::UIActivateControl(CWnd *) 8567 long COleControl::XOleInPlaceObject::UIDeactivate() 8568 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 8569 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 8570 void COleSafeArray::UnaccessData() 8571 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 8572 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 8573 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 8574 long COleControl::XOleObject::Unadvise(unsigned long) 8575 long COleServerDoc::XOleObject::Unadvise(unsigned long) 8576 long COleServerItem::XOleObject::Unadvise(unsigned long) 8577 void CRecordset::UnbindFieldsForUpdate() 8578 long COleControl::XOleCache::Uncache(unsigned long) 8579 int CEdit::Undo() 8580 int CRichEditCtrl::Undo() 8581 long COleControl::XViewObject::Unfreeze(unsigned long) 8582 int CCriticalSection::Unlock() 8583 int CEvent::Unlock() 8584 int CMultiLock::Unlock(long,long *) 8585 int CMultiLock::Unlock() 8586 int CMutex::Unlock() 8587 void COleSafeArray::Unlock() 8588 int CSemaphore::Unlock(long,long *) 8589 int CSemaphore::Unlock() 8590 int CSingleLock::Unlock(long,long *) 8591 int CSingleLock::Unlock() 8592 void CTypeLibCache::Unlock() 8593 void ATL::CSimpleStringT::UnlockBuffer() 8594 void ATL::CSimpleStringT::UnlockBuffer() 8595 void CEditView::UnlockBuffer()const 8596 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 8597 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 8598 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 8599 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 8600 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 8601 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 8602 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 8603 void CWnd::UnlockWindowUpdate() 8604 int CGdiObject::UnrealizeObject() 8605 int COleObjectFactory::Unregister() 8606 int COleTemplateServer::Unregister() 8607 int CWinApp::Unregister() 8608 int COleObjectFactory::UnregisterAll() 8609 void CDocManager::UnregisterShellFileTypes() 8610 void CWinApp::UnregisterShellFileTypes() 8611 HWND__ * CWnd::UnsubclassWindow() 8612 int CListCtrl::Update(int) 8613 int CRecordset::Update() 8614 void CToolTipCtrl::Update() 8615 long CDocObjectServer::XOleObject::Update() 8616 long COleControl::XOleObject::Update() 8617 long COleServerDoc::XOleObject::Update() 8618 long COleServerItem::XOleObject::Update() 8619 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 8620 void CStatusBar::UpdateAllPanes(int,int) 8621 void CDocument::UpdateAllViews(CView *,long,CObject *) 8622 void CScrollView::UpdateBars() 8623 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 8624 void CDC::UpdateColors() 8625 long CDataSourceControl::UpdateControls() 8626 long CDataSourceControl::UpdateCursor() 8627 void CMemoryState::UpdateData() 8628 int CWnd::UpdateData(int) 8629 void CWnd::UpdateDialogControls(CCmdTarget *,int) 8630 void CDocument::UpdateFrameCounts() 8631 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 8632 int CRecordset::UpdateInsertDelete() 8633 void COleClientItem::UpdateItemType() 8634 int COleClientItem::UpdateLink() 8635 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 8636 void CRecentFileList::UpdateMenu(CCmdUI *) 8637 void COleDocument::UpdateModifiedFlag() 8638 void CRichEditDoc::UpdateModifiedFlag() 8639 void CRichEditDoc::UpdateObjectCache() 8640 void CWinApp::UpdatePrinterSelection(int) 8641 int COleObjectFactory::UpdateRegistry(int) 8642 void COleObjectFactory::UpdateRegistry(char const *) 8643 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 8644 int COleObjectFactory::UpdateRegistryAll(int) 8645 void CDockContext::UpdateState(int *,int) 8646 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 8647 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 8648 long CBrowserControlSite::UpdateUI() 8649 long CDHtmlDialog::UpdateUI() 8650 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 8651 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 8652 void COleLinkingDoc::UpdateVisibleLock(int,int) 8653 void CWnd::UpdateWindow() 8654 void CWnd::ValidateRect(tagRECT const *) 8655 void CWnd::ValidateRgn(CRgn *) 8656 void CDatabase::VerifyConnect() 8657 unsigned long CRecordset::VerifyCursorSupport() 8658 void CRecordset::VerifyDriverBehavior() 8659 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 8660 int COleObjectFactory::VerifyUserLicense() 8661 int CListBox::VKeyToItem(unsigned int,unsigned int) 8662 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 8663 int CDC::WidenPath() 8664 int COleControl::WillAmbientsBeValidDuringLoad() 8665 CWnd * CWnd::WindowFromPoint(tagPOINT) 8666 long CControlBar::WindowProc(unsigned int,unsigned int,long) 8667 long COleControl::WindowProc(unsigned int,unsigned int,long) 8668 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 8669 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 8670 long CReBar::WindowProc(unsigned int,unsigned int,long) 8671 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 8672 long CWnd::WindowProc(unsigned int,unsigned int,long) 8673 void CWinApp::WinHelpA(unsigned long,unsigned int) 8674 void CWnd::WinHelpA(unsigned long,unsigned int) 8675 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 8676 void CWnd::WinHelpInternal(unsigned long,unsigned int) 8677 CWnd const CWnd::wndBottom 8678 CWnd const CWnd::wndNoTopMost 8679 CWnd const CWnd::wndTop 8680 CWnd const CWnd::wndTopMost 8681 void CRichEditView::WrapChanged() 8682 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 8683 void CArchive::Write(void const *,unsigned int) 8684 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 8685 void CFile::Write(void const *,unsigned int) 8686 void CGopherFile::Write(void const *,unsigned int) 8687 int CImageList::Write(CArchive *) 8688 void CInternetFile::Write(void const *,unsigned int) 8689 void CMemFile::Write(void const *,unsigned int) 8690 void COleStreamFile::Write(void const *,unsigned int) 8691 void CSocketFile::Write(void const *,unsigned int) 8692 void CStdioFile::Write(void const *,unsigned int) 8693 void CArchive::WriteClass(CRuntimeconst *) 8694 void CArchive::WriteCount(unsigned long) 8695 void COleClientItem::WriteItem(CArchive &) 8696 void COleClientItem::WriteItemCompound(CArchive &) 8697 void COleClientItem::WriteItemFlat(CArchive &) 8698 void CRecentFileList::WriteList() 8699 int CPropertySection::WriteNameDictToStream(IStream *) 8700 void CArchive::WriteObject(CObject const *) 8701 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 8702 int CWinApp::WriteProfileInt(char const *,char const *,int) 8703 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 8704 void CArchive::WriteString(char const *) 8705 void CGopherFile::WriteString(char const *) 8706 void CInternetFile::WriteString(char const *) 8707 void CStdioFile::WriteString(char const *) 8708 void CEditView::WriteToArchive(CArchive &) 8709 int CProperty::WriteToStream(IStream *) 8710 int CPropertySection::WriteToStream(IStream *) 8711 int CPropertySet::WriteToStream(IStream *) 8712 _AFX_DAO_STATE::_AFX_DAO_STATE() 8713 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 8714 CDaoException::CDaoException() 8715 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 8716 CDaoIndexInfo::CDaoIndexInfo() 8717 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 8718 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 8719 CDaoRecordView::CDaoRecordView(unsigned int) 8720 CDaoRecordView::CDaoRecordView(char const *) 8721 CDaoRelationInfo::CDaoRelationInfo() 8722 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 8723 CDaoWorkspace::CDaoWorkspace() 8724 _AFX_DAO_STATE::~_AFX_DAO_STATE() 8725 CDaoDatabase::~CDaoDatabase() 8726 CDaoException::~CDaoException() 8727 CDaoIndexInfo::~CDaoIndexInfo() 8728 CDaoQueryDef::~CDaoQueryDef() 8729 CDaoRecordset::~CDaoRecordset() 8730 CDaoRecordView::~CDaoRecordView() 8731 CDaoRelationInfo::~CDaoRelationInfo() 8732 CDaoTableDef::~CDaoTableDef() 8733 CDaoWorkspace::~CDaoWorkspace() 8734 void CDaoRecordset::AddNew() 8735 void AfxDaoCheck(long,char const *,char const *,int,int,int) 8736 _DAODBEngine * AfxDaoGetEngine() 8737 void AfxDaoInit() 8738 void AfxDaoTerm() 8739 void AfxDaoTrace(long,char const *,char const *,int) 8740 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 8741 _AFX_DAO_STATE * AfxGetDaoState() 8742 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 8743 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 8744 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8745 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 8746 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 8747 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 8748 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 8749 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8750 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 8751 void AfxThrowDaoException(int,long) 8752 void CDaoRecordset::AllocCache() 8753 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 8754 void CDaoRecordset::AllocDatabase() 8755 void AllocLongBinary(CLongBinary &,unsigned long) 8756 void CDaoQueryDef::Append() 8757 void CDaoTableDef::Append() 8758 void CDaoWorkspace::Append() 8759 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 8760 void CDaoDatabase::AssertValid()const 8761 void CDaoQueryDef::AssertValid()const 8762 void CDaoRecordset::AssertValid()const 8763 void CDaoRecordView::AssertValid()const 8764 void CDaoTableDef::AssertValid()const 8765 void CDaoWorkspace::AssertValid()const 8766 void CDaoWorkspace::BeginTrans() 8767 void CDaoRecordset::BindFields() 8768 void CDaoRecordset::BindParameters() 8769 void CDaoRecordset::BuildParameterList() 8770 void CDaoRecordset::BuildSelectList() 8771 void CDaoRecordset::BuildSQL() 8772 int CDaoRecordset::CanAppend()const 8773 int CDaoRecordset::CanBookmark() 8774 void CDaoRecordset::CancelUpdate() 8775 int CDaoRecordset::CanRestart() 8776 int CDaoRecordset::CanScroll()const 8777 int CDaoDatabase::CanTransact() 8778 int CDaoRecordset::CanTransact() 8779 int CDaoDatabase::CanUpdate() 8780 int CDaoQueryDef::CanUpdate() 8781 int CDaoRecordset::CanUpdate()const 8782 int CDaoTableDef::CanUpdate() 8783 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 8784 void CDaoRecordset::ClearFieldStatusFlags() 8785 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 8786 void CDaoDatabase::Close() 8787 void CDaoQueryDef::Close() 8788 void CDaoRecordset::Close() 8789 void CDaoTableDef::Close() 8790 void CDaoWorkspace::Close() 8791 void CDaoWorkspace::CommitTrans() 8792 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 8793 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 8794 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 8795 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 8796 void CDaoDatabase::Create(char const *,char const *,int) 8797 void CDaoQueryDef::Create(char const *,char const *) 8798 void CDaoTableDef::Create(char const *,long,char const *,char const *) 8799 void CDaoWorkspace::Create(char const *,char const *,char const *) 8800 void CDaoTableDef::CreateField(CDaoFieldInfo &) 8801 void CDaoTableDef::CreateField(char const *,short,long,long) 8802 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 8803 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 8804 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 8805 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8806 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8807 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8808 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 8809 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8810 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8811 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8812 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 8813 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 8814 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 8815 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 8816 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 8817 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 8818 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 8819 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 8820 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 8821 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 8822 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8823 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 8824 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 8825 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 8826 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 8827 void CDaoRecordset::Delete() 8828 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 8829 void CDaoTableDef::DeleteField(int) 8830 void CDaoTableDef::DeleteField(char const *) 8831 void CDaoTableDef::DeleteIndex(int) 8832 void CDaoTableDef::DeleteIndex(char const *) 8833 void CDaoDatabase::DeleteQueryDef(char const *) 8834 void CDaoDatabase::DeleteRelation(char const *) 8835 void CDaoDatabase::DeleteTableDef(char const *) 8836 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 8837 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 8838 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 8839 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 8840 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 8841 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 8842 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 8843 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 8844 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 8845 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 8846 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 8847 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 8848 void CDaoDatabase::Dump(CDumpContext &)const 8849 void CDaoDatabaseInfo::Dump(CDumpContext &)const 8850 void CDaoErrorInfo::Dump(CDumpContext &)const 8851 void CDaoFieldInfo::Dump(CDumpContext &)const 8852 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 8853 void CDaoIndexInfo::Dump(CDumpContext &)const 8854 void CDaoParameterInfo::Dump(CDumpContext &)const 8855 void CDaoQueryDef::Dump(CDumpContext &)const 8856 void CDaoQueryDefInfo::Dump(CDumpContext &)const 8857 void CDaoRecordset::Dump(CDumpContext &)const 8858 void CDaoRecordView::Dump(CDumpContext &)const 8859 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 8860 void CDaoRelationInfo::Dump(CDumpContext &)const 8861 void CDaoTableDef::Dump(CDumpContext &)const 8862 void CDaoTableDefInfo::Dump(CDumpContext &)const 8863 void CDaoWorkspace::Dump(CDumpContext &)const 8864 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 8865 void CDaoRecordset::Edit() 8866 void CDaoDatabase::Execute(char const *,int) 8867 void CDaoQueryDef::Execute(int) 8868 void CDaoRecordset::FillCache(long *,COleVariant *) 8869 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 8870 void CDaoException::FillErrorInfo() 8871 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 8872 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 8873 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 8874 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 8875 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 8876 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 8877 int CDaoRecordset::Find(long,char const *) 8878 int CDaoRecordset::FindFirst(char const *) 8879 int CDaoRecordset::FindLast(char const *) 8880 int CDaoRecordset::FindNext(char const *) 8881 int CDaoRecordset::FindPrev(char const *) 8882 void CDaoRecordset::Fixup() 8883 void CDaoRecordset::FreeCache() 8884 long CDaoRecordset::GetAbsolutePosition() 8885 long CDaoTableDef::GetAttributes() 8886 COleVariant CDaoRecordset::GetBookmark() 8887 long CDaoRecordset::GetCacheSize() 8888 COleVariant CDaoRecordset::GetCacheStart() 8889 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 8890 ATL::CStringT > > CDaoDatabase::GetConnect() 8891 ATL::CStringT > > CDaoQueryDef::GetConnect() 8892 ATL::CStringT > > CDaoTableDef::GetConnect() 8893 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 8894 void CDaoRecordset::GetDataAndFixupNulls() 8895 short CDaoWorkspace::GetDatabaseCount() 8896 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 8897 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 8898 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 8899 ATL::COleDateTime CDaoRecordset::GetDateCreated() 8900 ATL::COleDateTime CDaoTableDef::GetDateCreated() 8901 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 8902 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 8903 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 8904 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 8905 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 8906 short CDaoRecordset::GetEditMode() 8907 short CDaoException::GetErrorCount() 8908 void CDaoException::GetErrorInfo(int) 8909 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *)const 8910 short CDaoQueryDef::GetFieldCount() 8911 short CDaoRecordset::GetFieldCount() 8912 short CDaoTableDef::GetFieldCount() 8913 int CDaoRecordset::GetFieldIndex(void *) 8914 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8915 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8916 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8917 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8918 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8919 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 8920 unsigned long CDaoRecordset::GetFieldLength(int) 8921 COleVariant CDaoRecordset::GetFieldValue(int) 8922 COleVariant CDaoRecordset::GetFieldValue(char const *) 8923 void CDaoRecordset::GetFieldValue(int,COleVariant &) 8924 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 8925 short CDaoRecordset::GetIndexCount() 8926 short CDaoTableDef::GetIndexCount() 8927 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8928 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 8929 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8930 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 8931 ATL::CStringT > > CDaoWorkspace::GetIniPath() 8932 int CDaoWorkspace::GetIsolateODBCTrans() 8933 COleVariant CDaoRecordset::GetLastModifiedBookmark() 8934 int CDaoRecordset::GetLockingMode() 8935 short CDaoWorkspace::GetLoginTimeout() 8936 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 8937 ATL::CStringT > > CDaoDatabase::GetName() 8938 ATL::CStringT > > CDaoQueryDef::GetName() 8939 ATL::CStringT > > CDaoRecordset::GetName() 8940 ATL::CStringT > > CDaoTableDef::GetName() 8941 ATL::CStringT > > CDaoWorkspace::GetName() 8942 short CDaoQueryDef::GetODBCTimeout() 8943 short CDaoQueryDef::GetParameterCount() 8944 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 8945 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 8946 COleVariant CDaoQueryDef::GetParamValue(int) 8947 COleVariant CDaoQueryDef::GetParamValue(char const *) 8948 COleVariant CDaoRecordset::GetParamValue(int) 8949 COleVariant CDaoRecordset::GetParamValue(char const *) 8950 float CDaoRecordset::GetPercentPosition() 8951 short CDaoDatabase::GetQueryDefCount() 8952 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 8953 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 8954 short CDaoDatabase::GetQueryTimeout() 8955 long CDaoRecordset::GetRecordCount() 8956 long CDaoTableDef::GetRecordCount() 8957 long CDaoDatabase::GetRecordsAffected() 8958 long CDaoQueryDef::GetRecordsAffected() 8959 short CDaoDatabase::GetRelationCount() 8960 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 8961 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 8962 int CDaoQueryDef::GetReturnsRecords() 8963 CRuntime* CDaoDatabase::GetRuntimeClass()const 8964 CRuntime* CDaoException::GetRuntimeClass()const 8965 CRuntime* CDaoQueryDef::GetRuntimeClass()const 8966 CRuntime* CDaoRecordset::GetRuntimeClass()const 8967 CRuntime* CDaoRecordView::GetRuntimeClass()const 8968 CRuntime* CDaoTableDef::GetRuntimeClass()const 8969 CRuntime* CDaoWorkspace::GetRuntimeClass()const 8970 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 8971 ATL::CStringT > > CDaoQueryDef::GetSQL() 8972 ATL::CStringT > > CDaoRecordset::GetSQL()const 8973 short CDaoDatabase::GetTableDefCount() 8974 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 8975 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 8976 CRuntime* CDaoDatabase::GetThisClass() 8977 CRuntime* CDaoException::GetThisClass() 8978 CRuntime* CDaoQueryDef::GetThisClass() 8979 CRuntime* CDaoRecordset::GetThisClass() 8980 CRuntime* CDaoRecordView::GetThisClass() 8981 CRuntime* CDaoTableDef::GetThisClass() 8982 CRuntime* CDaoWorkspace::GetThisClass() 8983 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 8984 short CDaoQueryDef::GetType() 8985 short CDaoRecordset::GetType() 8986 ATL::CStringT > > CDaoWorkspace::GetUserNameA() 8987 ATL::CStringT > > CDaoRecordset::GetValidationRule() 8988 ATL::CStringT > > CDaoTableDef::GetValidationRule() 8989 ATL::CStringT > > CDaoRecordset::GetValidationText() 8990 ATL::CStringT > > CDaoTableDef::GetValidationText() 8991 ATL::CStringT > > CDaoDatabase::GetVersion() 8992 ATL::CStringT > > CDaoWorkspace::GetVersion() 8993 short CDaoWorkspace::GetWorkspaceCount() 8994 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 8995 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 8996 void CDaoWorkspace::Idle(int) 8997 void CDaoWorkspace::InitDatabasesCollection() 8998 void CDaoException::InitErrorsCollection() 8999 void CDaoQueryDef::InitFieldsCollection() 9000 void CDaoRecordset::InitFieldsCollection() 9001 void CDaoTableDef::InitFieldsCollection() 9002 void CDaoWorkspace::InitializeEngine() 9003 void CDaoRecordset::InitIndexesCollection() 9004 void CDaoTableDef::InitIndexesCollection() 9005 void CDaoQueryDef::InitParametersCollection() 9006 void CDaoDatabase::InitQueryDefsCollection() 9007 void CDaoDatabase::InitRelationsCollection() 9008 void CDaoDatabase::InitTableDefsCollection() 9009 void CDaoDatabase::InitWorkspace() 9010 void CDaoWorkspace::InitWorkspacesCollection() 9011 int CDaoRecordset::IsBOF()const 9012 int CDaoRecordset::IsDeleted()const 9013 int CDaoRecordset::IsEOF()const 9014 int CDaoRecordset::IsFieldDirty(void *) 9015 int CDaoRecordset::IsFieldNull(void *) 9016 int CDaoRecordset::IsFieldNullable(void *) 9017 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 9018 int CDaoRecordset::IsFieldStatusNull(unsigned int) 9019 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 9020 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 9021 int CDaoRecordset::IsMatch() 9022 int CDaoWorkspace::IsNew()const 9023 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 9024 int CDaoRecordView::IsOnFirstRecord() 9025 int CDaoRecordView::IsOnLastRecord() 9026 int CDaoDatabase::IsOpen()const 9027 int CDaoQueryDef::IsOpen()const 9028 int CDaoRecordset::IsOpen()const 9029 int CDaoTableDef::IsOpen()const 9030 int CDaoWorkspace::IsOpen()const 9031 int CDaoFieldExchange::IsValidOperation() 9032 void CDaoRecordset::LoadFields() 9033 void CDaoRecordset::MarkForAddNew() 9034 void CDaoRecordset::MarkForEdit() 9035 void CDaoRecordset::Move(long) 9036 void CDaoRecordset::MoveFirst() 9037 void CDaoRecordset::MoveLast() 9038 void CDaoRecordset::MoveNext() 9039 void CDaoRecordset::MovePrev() 9040 void CDaoRecordView::OnInitialUpdate() 9041 void CDaoRecordView::OnMove(int,int) 9042 int CDaoRecordView::OnMove(unsigned int) 9043 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 9044 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 9045 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 9046 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 9047 void CDaoDatabase::Open(char const *,int,int,char const *) 9048 void CDaoQueryDef::Open(char const *) 9049 void CDaoRecordset::Open(int,char const *,int) 9050 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 9051 void CDaoRecordset::Open(CDaoTableDef *,int,int) 9052 void CDaoTableDef::Open(char const *) 9053 void CDaoWorkspace::Open(char const *) 9054 void CDaoTableDef::RefreshLink() 9055 void CDaoWorkspace::RepairDatabase(char const *) 9056 void CDaoRecordset::Requery() 9057 void CDaoWorkspace::Rollback() 9058 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 9059 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 9060 void CDaoRecordset::SetAbsolutePosition(long) 9061 void CDaoTableDef::SetAttributes(long) 9062 void CDaoRecordset::SetBookmark(COleVariant) 9063 void CDaoRecordset::SetCacheSize(long) 9064 void CDaoRecordset::SetCacheStart(COleVariant) 9065 void CDaoQueryDef::SetConnect(char const *) 9066 void CDaoTableDef::SetConnect(char const *) 9067 void CDaoRecordset::SetCurrentIndex(char const *) 9068 void CDaoRecordset::SetCursorAttributes() 9069 void CDaoWorkspace::SetDefaultPassword(char const *) 9070 void CDaoWorkspace::SetDefaultUser(char const *) 9071 void CDaoRecordset::SetDirtyFields() 9072 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 9073 void CDaoRecordset::SetFieldDirty(void *,int) 9074 void CDaoRecordset::SetFieldNull(void *,int) 9075 void CDaoFieldExchange::SetFieldType(unsigned int) 9076 void CDaoRecordset::SetFieldValue(int,char const *) 9077 void CDaoRecordset::SetFieldValue(char const *,char const *) 9078 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 9079 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 9080 void CDaoRecordset::SetFieldValueNull(int) 9081 void CDaoRecordset::SetFieldValueNull(char const *) 9082 void CDaoWorkspace::SetIniPath(char const *) 9083 void CDaoWorkspace::SetIsolateODBCTrans(int) 9084 void CDaoRecordset::SetLockingMode(int) 9085 void CDaoWorkspace::SetLoginTimeout(short) 9086 void CDaoQueryDef::SetName(char const *) 9087 void CDaoTableDef::SetName(char const *) 9088 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 9089 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 9090 void CDaoRecordset::SetNullFieldStatus(unsigned int) 9091 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 9092 void CDaoQueryDef::SetODBCTimeout(short) 9093 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 9094 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 9095 void CDaoRecordset::SetParamValue(int,COleVariant const &) 9096 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 9097 void CDaoQueryDef::SetParamValueNull(int) 9098 void CDaoQueryDef::SetParamValueNull(char const *) 9099 void CDaoRecordset::SetParamValueNull(int) 9100 void CDaoRecordset::SetParamValueNull(char const *) 9101 void CDaoRecordset::SetPercentPosition(float) 9102 void CDaoDatabase::SetQueryTimeout(short) 9103 void CDaoQueryDef::SetReturnsRecords(int) 9104 void CDaoTableDef::SetSourceTableName(char const *) 9105 void CDaoQueryDef::SetSQL(char const *) 9106 void CDaoTableDef::SetValidationRule(char const *) 9107 void CDaoTableDef::SetValidationText(char const *) 9108 void CDaoRecordset::StoreFields() 9109 void CDaoRecordset::StripBrackets(char const *,char *) 9110 void CDaoDatabase::ThrowDaoException(int) 9111 void CDaoQueryDef::ThrowDaoException(int) 9112 void CDaoRecordset::ThrowDaoException(int) 9113 void CDaoTableDef::ThrowDaoException(int) 9114 void CDaoWorkspace::ThrowDaoException(int) 9115 void ThrowGetRowsDaoException(long) 9116 void CDaoRecordset::Update() 9117 CRuntimeconst CDaoDatabase::classCDaoDatabase 9118 CRuntimeconst CDaoException::classCDaoException 9119 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 9120 CRuntimeconst CDaoRecordset::classCDaoRecordset 9121 CRuntimeconst CDaoRecordView::classCDaoRecordView 9122 CRuntimeconst CDaoTableDef::classCDaoTableDef 9123 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 9124 CRuntimeconst CDatabase::classCDatabase 9125 CRuntimeconst CDBException::classCDBException 9126 CRuntimeconst CLongBinary::classCLongBinary 9127 CRuntimeconst COleDBRecordView::classCOleDBRecordView 9128 CRuntimeconst CRecordset::classCRecordset 9129 CRuntimeconst CRecordView::classCRecordView 9133 int AfxEnableMemoryLeakOverride(int) 9134 COleVariant::COleVariant(__int64) 9135 COleVariant::COleVariant(unsigned __int64) 9136 int CPropertySheet::IsModeless()const 9137 int CDC::SetGraphicsMode(int) 9138 int CDC::SetWorldTransform(tagXFORM const *) 9139 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 9140 int CDC::GetGraphicsMode()const 9141 int CDC::GetWorldTransform(tagXFORM *)const 9142 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 9143 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 9144 void AFX_MODULE_STATE::CreateActivationContext() 9145 CControlCreationInfo::CControlCreationInfo() 9146 CControlSiteFactoryMgr::CControlSiteFactoryMgr() 9147 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 9148 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 9149 COleControlSiteOrWnd::COleControlSiteOrWnd() 9150 CControlSiteFactoryMgr::~CControlSiteFactoryMgr() 9151 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 9152 int AfxRegisterSiteFactory(IControlSiteFactory *) 9153 int AfxUnregisterSiteFactory(IControlSiteFactory *) 9154 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 9155 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 9156 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 9157 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 9158 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 9160 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 9161 COleControlSite * COccManager::CreateSite(COleControlContainer *) 9162 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 9163 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo() 9164 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo() 9165 int CControlCreationInfo::IsManaged()const 9166 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 9167 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 9168 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 9169 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 9170 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 9171 __POSITION * CWnd::FindSiteOrWndWithFocus()const 9172 ATL::CStringT > >::CStringT > >(char *) 9173 ATL::CStringT > >::CStringT > >(unsigned char *) 9174 ATL::CStringT > >::CStringT > >(wchar_t *) 9175 ATL::CStringT > >::CStringT > >(char *) 9176 ATL::CStringT > >::CStringT > >(unsigned char *) 9177 ATL::CStringT > >::CStringT > >(wchar_t *) 9178 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 9179 int AfxIsValidAtom(unsigned short) 9180 int AfxIsValidAtom(char const *) 9181 COleVariant const & COleVariant::operator=(__int64) 9182 COleVariant const & COleVariant::operator=(unsigned __int64) 9183 void AfxUnregisterWndClasses() 9184 void CWinApp::DoEnableModeless(int) 9187 HWND__ * CPropertyPage::OnWizardFinishEx() 9192 int CWinApp::ShowAppMessageBox(CWinApp *,char const *,unsigned int,unsigned int) 9193 int CException::GetErrorMessage(char *,unsigned int,unsigned int *)const 9194 int AfxGetAmbientActCtx() 9195 void AfxSetAmbientActCtx(int) 9196 int AfxActivateActCtx(void *,unsigned long *) 9197 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 9198 void * AfxCreateActCtxW(tagACTCTXW const *) 9199 int AfxDeactivateActCtx(unsigned long,unsigned long) 9200 void AfxReleaseActCtx(void *) 9201 void COleClientItem::GetItemName(char *,unsigned int)const 9202 HINSTANCE__ * AfxLoadLibraryEx(char const *,void *,unsigned long) 9203 void CArchive::EnsureRead(void *,unsigned int) 9204 int AfxIsModuleDll() 9205 int AfxInitCurrentStateApp() 9206 int CFtpConnection::CreateDirectory(char const *) 9207 int CDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 9208 int CDC::DrawText(char const *,int,tagRECT *,unsigned int) 9209 int CMetaFileDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 9210 int CMetaFileDC::DrawText(char const *,int,tagRECT *,unsigned int) 9211 int CDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9212 int CDC::DrawTextEx(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9213 int CMetaFileDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9214 int CMetaFileDC::DrawTextEx(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9215 CFrameWnd * CWnd::EnsureParentFrame()const 9216 CWnd * CWnd::EnsureTopLevelParent()const 9217 int CGdiObject::GetObject(int,void *)const 9218 ATL::CStringT > > CHttpFile::GetObject()const 9219 int CDC::GetTextMetrics(tagTEXTMETRICA *)const 9220 int COlePropertyPage::MessageBox(char const *,char const *,unsigned int) 9221 int CWnd::MessageBox(char const *,char const *,unsigned int) 9222 int CFtpConnection::SetCurrentDirectory(char const *) 9223 void ATL::CStringT > >::FormatMessage(unsigned int,...) 9224 void ATL::CStringT > >::FormatMessage(char const *,...) 9225 HINSTANCE__ * AfxGetInstanceHandleHelper() 9226 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo() 9227 CFormView::~CFormView() 9228 int CWnd::DlgDirSelect(char *,int,int) 9229 int CWnd::DlgDirSelectComboBox(char *,int,int) 9230 long CWnd::SendMessage(unsigned int,unsigned int,long) ================================================ FILE: Bin/i386/mfc_sym/mfc80u.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 unsigned int HashKey(tagVARIANT const &) 258 unsigned int HashKey(wchar_t const *) 259 unsigned int HashKey(char const *) 260 unsigned int HashKey(ATL::CComBSTR) 261 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 264 void SerializeElements(CArchive &,COleVariant *,int) 265 void * operator new[](unsigned int) 266 void operator delete[](void *) 267 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 268 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 269 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 270 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 271 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 272 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 275 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 277 ATL::CStringT > >::CStringT > >(wchar_t,int) 278 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 279 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 280 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 281 ATL::CStringT > >::CStringT > >(char,int) 282 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t const *) 284 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 285 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 287 ATL::CStringT > >::CStringT > >(char const *) 288 ATL::CStringT > >::CStringT > >(char const *,int) 289 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 290 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 291 ATL::CStringT > >::CStringT > >(unsigned char const *) 292 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >() 294 ATL::CStringT > >::CStringT > >(wchar_t,int) 295 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 296 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 298 ATL::CStringT > >::CStringT > >(char,int) 299 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(wchar_t const *) 301 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 302 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 304 ATL::CStringT > >::CStringT > >(char const *) 305 ATL::CStringT > >::CStringT > >(char const *,int) 306 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 307 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 308 ATL::CStringT > >::CStringT > >(unsigned char const *) 309 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >() 311 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 312 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 313 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 314 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 315 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 316 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 317 CArchive::CArchive(CFile *,unsigned int,int,void *) 318 CArchivePropExchange::CArchivePropExchange(CArchive &) 319 CArchiveStream::CArchiveStream(CArchive *) 320 CAsyncMonikerFile::CAsyncMonikerFile() 321 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 322 CAsyncSocket::CAsyncSocket() 323 CBlobProperty::CBlobProperty(void *) 324 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 325 CBrush::CBrush(int,unsigned long) 326 CBrush::CBrush(unsigned long) 327 CBrush::CBrush(CBitmap *) 328 CByteArray::CByteArray() 329 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 330 CClientDC::CClientDC(CWnd *) 331 CCmdTarget::CCmdTarget() 332 CCmdUI::CCmdUI() 333 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 334 CCommandLineInfo::CCommandLineInfo() 335 CConnectionPoint::CConnectionPoint() 336 CControlBar::CControlBar() 337 CControlBarInfo::CControlBarInfo() 338 COleControl::CControlDataSource::CControlDataSource(COleControl *) 339 CControlFrameWnd::CControlFrameWnd(COleControl *) 340 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 341 CDatabase::CDatabase() 342 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 343 CDataExchange::CDataExchange(CWnd *,int) 344 CDataSourceControl::CDataSourceControl(COleControlSite *) 345 CDBException::CDBException(short) 346 CDBVariant::CDBVariant() 347 CDC::CDC() 348 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 349 CDHtmlControlSink::CDHtmlControlSink() 350 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 351 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 352 CDHtmlDialog::CDHtmlDialog() 353 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 354 CDialog::CDialog(unsigned int,CWnd *) 355 CDialog::CDialog(wchar_t const *,CWnd *) 356 CDialog::CDialog() 357 CDialogBar::CDialogBar() 358 CDialogTemplate::CDialogTemplate(void *) 359 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 360 CDocItem::CDocItem() 361 CDockBar::CDockBar(int) 362 CDockContext::CDockContext(CControlBar *) 363 CDockState::CDockState() 364 CDocManager::CDocManager() 365 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 366 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 367 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 368 CDocument::CDocument() 369 CDumpContext::CDumpContext(CFile *) 370 CDWordArray::CDWordArray() 371 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 372 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 373 CEditView::CEditView() 374 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 375 CEnumConnections::CEnumConnections(void const *,unsigned int) 376 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 377 CEnumFormatEtc::CEnumFormatEtc() 378 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 379 CException::CException(int) 380 CException::CException() 381 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 382 CFile::CFile(void *) 383 CFile::CFile(wchar_t const *,unsigned int) 384 CFile::CFile() 385 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long) 386 CFileFind::CFileFind() 387 CFindReplaceDialog::CFindReplaceDialog() 388 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 389 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 390 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 391 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 392 CFontHolder::CFontHolder(IPropertyNotifySink *) 393 CFormView::CFormView(unsigned int) 394 CFormView::CFormView(wchar_t const *) 395 CFrameWnd::CFrameWnd() 396 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 397 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 398 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 399 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 400 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 401 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 402 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 403 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 404 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 405 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 406 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 407 CHtmlEditCtrl::CHtmlEditCtrl() 408 CHtmlEditDoc::CHtmlEditDoc() 409 CHtmlEditView::CHtmlEditView() 410 CHtmlView::CHtmlView() 411 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 412 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 413 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 414 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 415 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 416 CImageList::CImageList() 417 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 418 CInternetException::CInternetException(unsigned long) 419 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 420 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 421 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 422 CLongBinary::CLongBinary() 423 CMapPtrToPtr::CMapPtrToPtr(int) 424 CMapPtrToWord::CMapPtrToWord(int) 425 CMapStringToOb::CMapStringToOb(int) 426 CMapStringToPtr::CMapStringToPtr(int) 427 CMapStringToString::CMapStringToString(int) 428 CMapWordToOb::CMapWordToOb(int) 429 CMapWordToPtr::CMapWordToPtr(int) 430 CMDIChildWnd::CMDIChildWnd() 431 CMDIFrameWnd::CMDIFrameWnd() 432 CMemFile::CMemFile(unsigned int) 433 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 434 CMetaFileDC::CMetaFileDC() 435 CMiniDockFrameWnd::CMiniDockFrameWnd() 436 CMiniFrameWnd::CMiniFrameWnd() 437 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 438 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 439 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 440 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 441 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 442 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 443 CObArray::CObArray() 444 CObList::CObList(int) 445 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 446 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 447 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 448 COleClientItem::COleClientItem(COleDocument *) 449 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 450 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 451 COleControl::COleControl() 452 COleControlContainer::COleControlContainer(CWnd *) 453 COleControlLock::COleControlLock(_GUID const &) 454 COleControlSite::COleControlSite(COleControlContainer *) 455 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 456 COleCurrency::COleCurrency(long,long) 457 COleDataObject::COleDataObject() 458 COleDataSource::COleDataSource() 459 COleDialog::COleDialog(CWnd *) 460 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 461 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 462 COleDispatchDriver::COleDispatchDriver() 463 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 464 COleDocIPFrameWnd::COleDocIPFrameWnd() 465 COleDocObjectItem::COleDocObjectItem(COleDocument *) 466 COleDocument::COleDocument() 467 COleDropSource::COleDropSource() 468 COleDropTarget::COleDropTarget() 469 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 470 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 471 COleIPFrameWnd::COleIPFrameWnd() 472 COleLinkingDoc::COleLinkingDoc() 473 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 474 COleMessageFilter::COleMessageFilter() 475 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 476 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 477 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 478 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 479 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 480 COleResizeBar::COleResizeBar() 481 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 482 COleSafeArray::COleSafeArray(tagVARIANT const &) 483 COleSafeArray::COleSafeArray(COleSafeArray const &) 484 COleSafeArray::COleSafeArray(COleVariant const &) 485 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 486 COleSafeArray::COleSafeArray(tagVARIANT const *) 487 COleServerDoc::COleServerDoc() 488 COleServerItem::COleServerItem(COleServerDoc *,int) 489 COleStreamFile::COleStreamFile(IStream *) 490 COleTemplateServer::COleTemplateServer() 491 COleUILinkInfo::COleUILinkInfo(COleDocument *) 492 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 493 COleVariant::COleVariant(tagVARIANT const &) 494 COleVariant::COleVariant(COleVariant const &) 495 COleVariant::COleVariant(short,unsigned short) 496 COleVariant::COleVariant(long,unsigned short) 497 COleVariant::COleVariant(wchar_t const *,unsigned short) 498 COleVariant::COleVariant(_ITEMIDLIST const *) 499 COleVariant::COleVariant(tagVARIANT const *) 500 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 501 CPaintDC::CPaintDC(CWnd *) 502 CPen::CPen(int,int,unsigned long) 503 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 504 CPictureHolder::CPictureHolder() 505 CPreviewDC::CPreviewDC() 506 CPreviewView::CPreviewView() 507 CPrintDialog::CPrintDialog(tagPDW &) 508 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 509 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 510 CPrintInfo::CPrintInfo() 511 CPrintPreviewState::CPrintPreviewState() 512 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 513 CProperty::CProperty(unsigned long,void * const,unsigned long) 514 CProperty::CProperty() 515 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 516 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 517 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 518 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 519 CPropertyPage::CPropertyPage() 520 CPropertySection::CPropertySection(_GUID) 521 CPropertySection::CPropertySection() 522 CPropertySet::CPropertySet(_GUID) 523 CPropertySet::CPropertySet() 524 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 525 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 526 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 527 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 528 CPropertySheet::CPropertySheet() 529 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 530 CPtrArray::CPtrArray() 531 CPtrList::CPtrList(int) 532 CReBar::CReBar() 533 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 534 CRecordset::CRecordset(CDatabase *) 535 CRecordView::CRecordView(unsigned int) 536 CRecordView::CRecordView(wchar_t const *) 537 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 538 CReObject::CReObject(CRichEditCntrItem *) 539 CReObject::CReObject() 540 CResetPropExchange::CResetPropExchange() 541 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 542 CRichEditDoc::CRichEditDoc() 543 CRichEditView::CRichEditView() 544 CScrollView::CScrollView() 545 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 546 CSharedFile::CSharedFile(unsigned int,unsigned int) 547 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 548 CSingleLock::CSingleLock(CSyncObject *,int) 549 CSocket::CSocket() 550 CSocketFile::CSocketFile(CSocket *,int) 551 CSocketWnd::CSocketWnd() 552 CSplitterWnd::CSplitterWnd() 553 CStatusBar::CStatusBar() 554 CStdioFile::CStdioFile(_iobuf *) 555 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 556 CStdioFile::CStdioFile() 557 CStringArray::CStringArray() 558 CStringList::CStringList(int) 559 CSyncObject::CSyncObject(wchar_t const *) 560 CTestCmdUI::CTestCmdUI() 561 CThreadSlotData::CThreadSlotData() 562 CToolBar::CToolBar() 563 CToolTipCtrl::CToolTipCtrl() 564 CUIntArray::CUIntArray() 565 CView::CView() 566 CWinApp::CWinApp(wchar_t const *) 567 CWindowDC::CWindowDC(CWnd *) 568 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 569 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 570 CWinThread::CWinThread() 571 CWnd::CWnd(HWND__ *) 572 CWnd::CWnd() 573 CWordArray::CWordArray() 574 CPreviewView::PAGE_INFO::PAGE_INFO() 575 ATL::CSimpleStringT::~CSimpleStringT() 576 ATL::CSimpleStringT::~CSimpleStringT() 577 ATL::CStringT > >::~CStringT > >() 578 ATL::CStringT > >::~CStringT > >() 579 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 580 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 581 AFX_MODULE_STATE::~AFX_MODULE_STATE() 582 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 583 CAnimateCtrl::~CAnimateCtrl() 584 CArchive::~CArchive() 585 CAsyncMonikerFile::~CAsyncMonikerFile() 586 CAsyncSocket::~CAsyncSocket() 587 CButton::~CButton() 588 CByteArray::~CByteArray() 589 CClientDC::~CClientDC() 590 CCmdTarget::~CCmdTarget() 591 CComboBox::~CComboBox() 592 CComboBoxEx::~CComboBoxEx() 593 CCommandLineInfo::~CCommandLineInfo() 594 CConnectionPoint::~CConnectionPoint() 595 CControlBar::~CControlBar() 596 CCtrlView::~CCtrlView() 597 CDatabase::~CDatabase() 598 CDataSourceControl::~CDataSourceControl() 599 CDateTimeCtrl::~CDateTimeCtrl() 600 CDBException::~CDBException() 601 CDBVariant::~CDBVariant() 602 CDC::~CDC() 603 CDHtmlControlSink::~CDHtmlControlSink() 604 CDHtmlDialog::~CDHtmlDialog() 605 CDialog::~CDialog() 606 CDialogBar::~CDialogBar() 607 CDialogTemplate::~CDialogTemplate() 608 CDocItem::~CDocItem() 609 CDockBar::~CDockBar() 610 CDockContext::~CDockContext() 611 CDockState::~CDockState() 612 CDocManager::~CDocManager() 613 CDocObjectServer::~CDocObjectServer() 614 CDocObjectServerItem::~CDocObjectServerItem() 615 CDocTemplate::~CDocTemplate() 616 CDocument::~CDocument() 617 CDragListBox::~CDragListBox() 618 CDWordArray::~CDWordArray() 619 CDynLinkLibrary::~CDynLinkLibrary() 620 CEdit::~CEdit() 621 CEditView::~CEditView() 622 CEnumArray::~CEnumArray() 623 CEnumConnections::~CEnumConnections() 624 CEnumConnPoints::~CEnumConnPoints() 625 CEnumFormatEtc::~CEnumFormatEtc() 626 CEnumOleVerb::~CEnumOleVerb() 627 CEnumUnknown::~CEnumUnknown() 628 CEvent::~CEvent() 629 CFile::~CFile() 630 CFileDialog::~CFileDialog() 631 CFileFind::~CFileFind() 632 CFixedAlloc::~CFixedAlloc() 633 CFixedAllocNoSync::~CFixedAllocNoSync() 634 CFontHolder::~CFontHolder() 635 CFrameWnd::~CFrameWnd() 636 CFtpConnection::~CFtpConnection() 637 CFtpFileFind::~CFtpFileFind() 638 CGopherConnection::~CGopherConnection() 639 CGopherFile::~CGopherFile() 640 CGopherFileFind::~CGopherFileFind() 641 CGopherLocator::~CGopherLocator() 642 CHeaderCtrl::~CHeaderCtrl() 643 CHotKeyCtrl::~CHotKeyCtrl() 644 CHtmlControlSite::~CHtmlControlSite() 645 CHtmlEditCtrl::~CHtmlEditCtrl() 646 CHtmlEditDoc::~CHtmlEditDoc() 647 CHtmlEditView::~CHtmlEditView() 648 CHtmlView::~CHtmlView() 649 CHttpConnection::~CHttpConnection() 650 CHttpFile::~CHttpFile() 651 CImageList::~CImageList() 652 CInternetConnection::~CInternetConnection() 653 CInternetException::~CInternetException() 654 CInternetFile::~CInternetFile() 655 CInternetSession::~CInternetSession() 656 CIPAddressCtrl::~CIPAddressCtrl() 657 CListBox::~CListBox() 658 CListCtrl::~CListCtrl() 659 CLongBinary::~CLongBinary() 660 CMapPtrToPtr::~CMapPtrToPtr() 661 CMapPtrToWord::~CMapPtrToWord() 662 CMapStringToOb::~CMapStringToOb() 663 CMapStringToPtr::~CMapStringToPtr() 664 CMapStringToString::~CMapStringToString() 665 CMapWordToOb::~CMapWordToOb() 666 CMapWordToPtr::~CMapWordToPtr() 667 CMemFile::~CMemFile() 668 CMetaFileDC::~CMetaFileDC() 669 CMiniFrameWnd::~CMiniFrameWnd() 670 CMonikerFile::~CMonikerFile() 671 CMonthCalCtrl::~CMonthCalCtrl() 672 CMultiDocTemplate::~CMultiDocTemplate() 673 CMultiLock::~CMultiLock() 674 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 675 CMutex::~CMutex() 676 CObArray::~CObArray() 677 CObList::~CObList() 678 COleBusyDialog::~COleBusyDialog() 679 COleChangeIconDialog::~COleChangeIconDialog() 680 COleChangeSourceDialog::~COleChangeSourceDialog() 681 COleClientItem::~COleClientItem() 682 COleCntrFrameWnd::~COleCntrFrameWnd() 683 COleControl::~COleControl() 684 COleControlContainer::~COleControlContainer() 685 COleControlLock::~COleControlLock() 686 COleControlSite::~COleControlSite() 687 COleControlSiteOrWnd::~COleControlSiteOrWnd() 688 COleConvertDialog::~COleConvertDialog() 689 COleDataSource::~COleDataSource() 690 COleDispatchException::~COleDispatchException() 691 COleDocIPFrameWnd::~COleDocIPFrameWnd() 692 COleDocObjectItem::~COleDocObjectItem() 693 COleDocument::~COleDocument() 694 COleDropTarget::~COleDropTarget() 695 COleFrameHook::~COleFrameHook() 696 COleInsertDialog::~COleInsertDialog() 697 COleIPFrameWnd::~COleIPFrameWnd() 698 COleLinkingDoc::~COleLinkingDoc() 699 COleLinksDialog::~COleLinksDialog() 700 COleMessageFilter::~COleMessageFilter() 701 COleObjectFactory::~COleObjectFactory() 702 COlePasteSpecialDialog::~COlePasteSpecialDialog() 703 COlePropertyPage::~COlePropertyPage() 704 COleResizeBar::~COleResizeBar() 705 COleServerDoc::~COleServerDoc() 706 COleServerItem::~COleServerItem() 707 COleStreamFile::~COleStreamFile() 708 COleUpdateDialog::~COleUpdateDialog() 709 CPaintDC::~CPaintDC() 710 CPictureHolder::~CPictureHolder() 711 CPreviewDC::~CPreviewDC() 712 CPreviewView::~CPreviewView() 713 CPrintInfo::~CPrintInfo() 714 CProcessLocalObject::~CProcessLocalObject() 715 CProgressCtrl::~CProgressCtrl() 716 CPropbagPropExchange::~CPropbagPropExchange() 717 CProperty::~CProperty() 718 CPropertyPage::~CPropertyPage() 719 CPropertySection::~CPropertySection() 720 CPropertySet::~CPropertySet() 721 CPropertySheet::~CPropertySheet() 722 CPtrArray::~CPtrArray() 723 CPtrList::~CPtrList() 724 CRecentFileList::~CRecentFileList() 725 CRecordset::~CRecordset() 726 CRecordView::~CRecordView() 727 CRectTracker::~CRectTracker() 728 CReObject::~CReObject() 729 CRichEditCntrItem::~CRichEditCntrItem() 730 CRichEditCtrl::~CRichEditCtrl() 731 CScrollBar::~CScrollBar() 732 CScrollView::~CScrollView() 733 CSemaphore::~CSemaphore() 734 CSharedFile::~CSharedFile() 735 CSingleDocTemplate::~CSingleDocTemplate() 736 CSliderCtrl::~CSliderCtrl() 737 CSocket::~CSocket() 738 CSocketFile::~CSocketFile() 739 CSpinButtonCtrl::~CSpinButtonCtrl() 740 CSplitterWnd::~CSplitterWnd() 741 CStatic::~CStatic() 742 CStatusBar::~CStatusBar() 743 CStatusBarCtrl::~CStatusBarCtrl() 744 CStdioFile::~CStdioFile() 745 CStringArray::~CStringArray() 746 CStringList::~CStringList() 747 CSyncObject::~CSyncObject() 748 CTabCtrl::~CTabCtrl() 749 CThreadLocalObject::~CThreadLocalObject() 750 CThreadSlotData::~CThreadSlotData() 751 CToolBar::~CToolBar() 752 CToolBarCtrl::~CToolBarCtrl() 753 CToolTipCtrl::~CToolTipCtrl() 754 CTreeCtrl::~CTreeCtrl() 755 CUIntArray::~CUIntArray() 756 CView::~CView() 757 CWinApp::~CWinApp() 758 CWindowDC::~CWindowDC() 759 CWinThread::~CWinThread() 760 CWnd::~CWnd() 761 CWordArray::~CWordArray() 762 void * operator new(unsigned int) 763 void * CNoTrackObject::operator new(unsigned int) 764 void operator delete(void *) 765 void CNoTrackObject::operator delete(void *) 766 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 767 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 768 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 769 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 770 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 771 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 772 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 773 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 774 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 775 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 776 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 777 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 778 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 779 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 780 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 781 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 782 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 783 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 784 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 785 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 786 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 787 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 788 COleCurrency const & COleCurrency::operator=(union tagCY) 789 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 790 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 791 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 792 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 793 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 794 COleVariant const & COleVariant::operator=(tagVARIANT const &) 795 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 796 COleVariant const & COleVariant::operator=(COleVariant const &) 797 COleVariant const & COleVariant::operator=(CByteArray const &) 798 COleVariant const & COleVariant::operator=(CLongBinary const &) 799 COleVariant const & COleVariant::operator=(COleCurrency const &) 800 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 801 COleVariant const & COleVariant::operator=(unsigned char) 802 COleVariant const & COleVariant::operator=(short) 803 COleVariant const & COleVariant::operator=(long) 804 COleVariant const & COleVariant::operator=(float) 805 COleVariant const & COleVariant::operator=(double) 806 COleVariant const & COleVariant::operator=(tagVARIANT const *) 807 COleVariant const & COleVariant::operator=(wchar_t const * const) 808 CArchive & operator>>(CArchive &,CByteArray * &) 809 CArchive & operator>>(CArchive &,CDocItem * &) 810 CArchive & operator>>(CArchive &,CDockState * &) 811 CArchive & operator>>(CArchive &,CDWordArray * &) 812 CArchive & operator>>(CArchive &,CMapStringToOb * &) 813 CArchive & operator>>(CArchive &,CMapStringToString * &) 814 CArchive & operator>>(CArchive &,CMapWordToOb * &) 815 CArchive & operator>>(CArchive &,CObArray * &) 816 CArchive & operator>>(CArchive &,CObList * &) 817 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 818 CArchive & operator>>(CArchive &,CStringArray * &) 819 CArchive & operator>>(CArchive &,CStringList * &) 820 CArchive & operator>>(CArchive &,CWordArray * &) 821 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 822 CArchive & operator>>(CArchive &,COleCurrency &) 823 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 824 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 825 CArchive & operator>>(CArchive &,COleVariant &) 826 CArchive & operator>>(CArchive &,ATL::CTime &) 827 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 828 CArchive & operator<<(CArchive &,ATL::CComBSTR) 829 CArchive & operator<<(CArchive &,COleCurrency) 830 CArchive & operator<<(CArchive &,ATL::COleDateTime) 831 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 832 CArchive & operator<<(CArchive &,COleVariant) 833 CArchive & operator<<(CArchive &,ATL::CTime) 834 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 835 CDumpContext & CDumpContext::operator<<(__int64) 836 CDumpContext & CDumpContext::operator<<(unsigned __int64) 837 CDumpContext & CDumpContext::operator<<(CObject const &) 838 CDumpContext & CDumpContext::operator<<(unsigned char) 839 CDumpContext & CDumpContext::operator<<(unsigned short) 840 CDumpContext & CDumpContext::operator<<(int) 841 CDumpContext & CDumpContext::operator<<(unsigned int) 842 CDumpContext & CDumpContext::operator<<(long) 843 CDumpContext & CDumpContext::operator<<(unsigned long) 844 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 845 CDumpContext & CDumpContext::operator<<(HDC__ *) 846 CDumpContext & CDumpContext::operator<<(HFONT__ *) 847 CDumpContext & CDumpContext::operator<<(HMENU__ *) 848 CDumpContext & CDumpContext::operator<<(HWND__ *) 849 CDumpContext & CDumpContext::operator<<(wchar_t const *) 850 CDumpContext & CDumpContext::operator<<(char const *) 851 CDumpContext & CDumpContext::operator<<(CObject const *) 852 CDumpContext & CDumpContext::operator<<(void const *) 853 int COleSafeArray::operator==(tagSAFEARRAY const &)const 854 int COleSafeArray::operator==(tagVARIANT const &)const 855 int COleSafeArray::operator==(COleSafeArray const &)const 856 int COleSafeArray::operator==(COleVariant const &)const 857 int COleSafeArray::operator==(tagSAFEARRAY const *)const 858 int COleSafeArray::operator==(tagVARIANT const *)const 859 int COleVariant::operator==(tagVARIANT const &)const 860 wchar_t ATL::CSimpleStringT::operator[](int)const 861 char ATL::CSimpleStringT::operator[](int)const 862 void * & CMapPtrToPtr::operator[](void *) 863 unsigned short & CMapPtrToWord::operator[](void *) 864 CObject * & CMapStringToOb::operator[](wchar_t const *) 865 void * & CMapStringToPtr::operator[](wchar_t const *) 866 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 867 CObject * & CMapWordToOb::operator[](unsigned short) 868 void * & CMapWordToPtr::operator[](unsigned short) 869 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 870 ATL::CSimpleStringT::operator wchar_t const *()const 871 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 872 ATL::CSimpleStringT::operator char const *()const 873 ATL::CStringT > >::operator ATL::CSimpleStringT &() 874 ATL::CStringT > >::operator ATL::CSimpleStringT &() 875 COleCurrency COleCurrency::operator*(long)const 876 COleCurrency COleCurrency::operator-(COleCurrency const &)const 877 COleCurrency COleCurrency::operator-()const 878 COleCurrency COleCurrency::operator+(COleCurrency const &)const 879 COleCurrency COleCurrency::operator/(long)const 880 int COleCurrency::operator<(COleCurrency const &)const 881 int COleCurrency::operator<=(COleCurrency const &)const 882 int COleCurrency::operator>(COleCurrency const &)const 883 int COleCurrency::operator>=(COleCurrency const &)const 884 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 885 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 886 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 887 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 888 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 889 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 890 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 891 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 892 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 893 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 894 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 895 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 896 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 897 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 898 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 899 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 900 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 901 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 902 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 903 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 904 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 905 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 906 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 907 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 908 int _AfxDeleteRegKey(wchar_t const *) 909 int _AfxSocketInit(WSAData *) 910 void CArchive::Abort() 911 void CFile::Abort() 912 void CInternetFile::Abort() 913 void CMemFile::Abort() 914 void CMirrorFile::Abort() 915 void COleStreamFile::Abort() 916 void CSocketFile::Abort() 917 void CStdioFile::Abort() 918 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 919 long CCheckListBox::accDoDefaultAction(tagVARIANT) 920 long CWnd::accDoDefaultAction(tagVARIANT) 921 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 922 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 923 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 924 void COleSafeArray::AccessData(void * *) 925 long CWnd::accHitTest(long,long,tagVARIANT *) 926 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 927 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 928 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 929 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 930 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 931 long CWnd::accSelect(long,tagVARIANT) 932 long CWnd::XAccessible::accSelect(long,tagVARIANT) 933 void COleClientItem::Activate(long,CView *,tagMSG *) 934 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 935 void COleDocObjectItem::ActivateAndShow() 936 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 937 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 938 void CDocObjectServer::ActivateDocObject() 939 void COleServerDoc::ActivateDocObject() 940 void CFrameWnd::ActivateFrame(int) 941 void CMDIChildWnd::ActivateFrame(int) 942 int COleServerDoc::ActivateInPlace() 943 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 944 void CSplitterWnd::ActivateNext(int) 945 void CWnd::ActivateTopParent() 946 void CRecentFileList::Add(wchar_t const *) 947 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 948 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 949 int CToolBarCtrl::AddBitmap(int,unsigned int) 950 int CToolBarCtrl::AddBitmap(int,CBitmap *) 951 void COleClientItem::AddCachedData(COleDataSource *) 952 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 953 void CEnumConnections::AddConnection(tagCONNECTDATA *) 954 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 955 void CDocManager::AddDocTemplate(CDocTemplate *) 956 void CWinApp::AddDocTemplate(CDocTemplate *) 957 void CDocTemplate::AddDocument(CDocument *) 958 void CMultiDocTemplate::AddDocument(CDocument *) 959 void CSingleDocTemplate::AddDocument(CDocument *) 960 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 961 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 962 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 963 void COleControl::AddFrameLevelUI() 964 void CFrameWnd::AddFrameWnd() 965 __POSITION * CObList::AddHead(CObject *) 966 void CObList::AddHead(CObList *) 967 __POSITION * CPtrList::AddHead(void *) 968 void CPtrList::AddHead(CPtrList *) 969 void CSimpleList::AddHead(void *) 970 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 971 __POSITION * CStringList::AddHead(wchar_t const *) 972 void CStringList::AddHead(CStringList *) 973 void COleDocument::AddItem(CDocItem *) 974 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 975 void CRecordset::AddNew() 976 void COleServerItem::AddOtherClipboardData(COleDataSource *) 977 void CPropertySheet::AddPage(CPropertyPage *) 978 void CPropertySection::AddProperty(CProperty *) 979 void CPropertySet::AddProperty(_GUID,CProperty *) 980 unsigned long CArchiveStream::AddRef() 981 unsigned long CBlobProperty::AddRef() 982 unsigned long CBrowserControlSite::AddRef() 983 unsigned long CDHtmlControlSink::AddRef() 984 unsigned long CDHtmlElementEventSink::AddRef() 985 unsigned long CDHtmlEventSink::AddRef() 986 unsigned long CInnerUnknown::AddRef() 987 unsigned long COleConnPtContainer::AddRef() 988 unsigned long COleDispatchImpl::AddRef() 989 unsigned long COleUILinkInfo::AddRef() 990 unsigned long CPrintDialogEx::AddRef() 991 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 992 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 993 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 994 CPropertySection * CPropertySet::AddSection(_GUID) 995 void CPropertySet::AddSection(CPropertySection *) 996 void COlePasteSpecialDialog::AddStandardFormats(int) 997 int CToolBarCtrl::AddString(unsigned int) 998 __POSITION * CObList::AddTail(CObject *) 999 void CObList::AddTail(CObList *) 1000 __POSITION * CPtrList::AddTail(void *) 1001 void CPtrList::AddTail(CPtrList *) 1002 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1003 __POSITION * CStringList::AddTail(wchar_t const *) 1004 void CStringList::AddTail(CStringList *) 1005 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1006 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1007 void CWinApp::AddToRecentFileList(wchar_t const *) 1008 void CDocument::AddView(CView *) 1009 void CMetaFileDC::AdjustCP(int) 1010 void CRichEditView::AdjustDialogPosition(CDialog *) 1011 void CRectTracker::AdjustRect(int,tagRECT *) 1012 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1013 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1014 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1015 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1016 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1017 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1018 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1019 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1020 void AfxAbort() 1021 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1022 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1023 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1024 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1025 void AfxCancelModes(HWND__ *) 1026 void AfxCheckError(long) 1027 void AfxClassInit(CRuntime*) 1028 int AfxComparePath(wchar_t const *,wchar_t const *) 1029 int AfxCompareValueByRef(void *,void *,int) 1030 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1031 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1032 void AfxCopyValueByRef(void *,void *,long *,int) 1033 void AfxCoreInitModule() 1034 HDC__ * AfxCreateDC(void *,void *) 1035 int AfxCriticalInit() 1036 int AfxCriticalNewHandler(unsigned int) 1037 void AfxCriticalTerm() 1038 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1039 AUX_DATA afxData 1040 void AfxDeleteObject(void * *) 1041 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1042 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1043 long AfxDllCanUnloadNow() 1044 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1045 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1046 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1047 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1048 void AfxEditviewTerm() 1049 void AfxEnableControlContainer(COccManager *) 1050 int AfxEndDeferRegisterClass(long) 1051 void AfxEndThread(unsigned int,int) 1052 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1053 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1054 void AfxFailMaxChars(CDataExchange *,int) 1055 void AfxFailRadio(CDataExchange *) 1056 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1057 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1058 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1059 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1060 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1061 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1062 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1063 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1064 int AfxFreeLibrary(HINSTANCE__ *) 1065 int AfxFullPath(wchar_t *,wchar_t const *) 1066 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1067 AFX_MODULE_STATE * AfxGetAppModuleState() 1068 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1069 tagMSG * AfxGetCurrentMessage() 1070 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1071 unsigned long AfxGetDllVersion() 1072 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1073 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1074 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1075 void * AfxGetHENV() 1076 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1077 unsigned long AfxGetInternetHandleType(void *) 1078 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1079 AFX_MODULE_STATE * AfxGetModuleState() 1080 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1081 int (__cdecl*AfxGetNewHandler())(unsigned int) 1082 HWND__ * AfxGetParentOwner(HWND__ *) 1083 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1084 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1085 ATL::IAtlStringMgr * AfxGetStringManager() 1086 CWinThread * AfxGetThread() 1087 _AFX_THREAD_STATE * AfxGetThreadState() 1088 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1089 void AfxGlobalFree(void *) 1090 int AfxHelpEnabled() 1091 void AfxHookWindowCreate(CWnd *) 1092 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1093 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1094 void AfxInitLocalData(HINSTANCE__ *) 1095 int AfxInitRichEdit() 1096 int AfxInitRichEdit2() 1097 void AfxInitThread() 1098 int AfxInternalIsIdleMessage(tagMSG *) 1099 int AfxInternalPreTranslateMessage(tagMSG *) 1100 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1101 int AfxInternalPumpMessage() 1102 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1103 int AfxIsDescendant(HWND__ *,HWND__ *) 1104 int AfxIsIdleMessage(tagMSG *) 1105 int AfxIsValidAddress(void const *,unsigned int,int) 1106 int AfxIsValidString(wchar_t const *,int) 1107 int AfxIsValidString(char const *,int) 1108 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1109 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1110 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1111 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1112 int AfxLoadString(unsigned int,char *,unsigned int) 1113 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1114 void AfxLockGlobals(int) 1115 void AfxLockTempMaps() 1116 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1117 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1118 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1119 int AfxOleCanExitApp() 1120 int AfxOleGetUserCtrl() 1121 int AfxOleInit() 1122 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1123 void AfxOleLockApp() 1124 int AfxOleLockControl(_GUID const &) 1125 int AfxOleLockControl(wchar_t const *) 1126 void AfxOleOnReleaseAllObjects() 1127 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1128 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1129 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1130 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1131 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1132 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1133 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1134 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1135 void AfxOleSetUserCtrl(int) 1136 void AfxOleTerm(int) 1137 void AfxOleTermOrFreeLib(int,int) 1138 void AfxOleUnlockAllControls() 1139 void AfxOleUnlockApp() 1140 int AfxOleUnlockControl(_GUID const &) 1141 int AfxOleUnlockControl(wchar_t const *) 1142 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1143 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1144 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1145 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1146 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1147 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1148 void AfxPostQuitMessage(int) 1149 int AfxPreTranslateMessage(tagMSG *) 1150 long AfxProcessWndProcException(CException *,tagMSG const *) 1151 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1152 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1153 int AfxPumpMessage() 1154 unsigned int AfxReadStringLength(CArchive &,int &) 1155 int AfxRegisterClass(tagWNDCLASSW *) 1156 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1157 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1158 void AfxResetMsgCache() 1159 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1160 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1161 void AfxSafeArrayInit(COleSafeArray *) 1162 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1163 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1164 void AfxSetWindowText(HWND__ *,wchar_t const *) 1165 void AfxSocketTerm() 1166 void AfxStoreField(CRecordset &,unsigned int,void *) 1167 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1168 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1169 void AfxTermLocalData(HINSTANCE__ *,int) 1170 void AfxTermThread(HINSTANCE__ *) 1171 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1172 void AfxThrowArchiveException(int,wchar_t const *) 1173 void AfxThrowDBException(short,CDatabase *,void *) 1174 void AfxThrowFileException(int,long,wchar_t const *) 1175 void AfxThrowInternetException(unsigned long,unsigned long) 1176 void AfxThrowInvalidArgException() 1177 void AfxThrowLastCleanup() 1178 void AfxThrowMemoryException() 1179 void AfxThrowNotSupportedException() 1180 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1181 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1182 void AfxThrowOleException(long) 1183 void AfxThrowResourceException() 1184 void AfxThrowUserException() 1185 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1186 void AfxTlsAddRef() 1187 void AfxTlsRelease() 1188 void AfxTrackerTerm() 1189 void AfxTryCleanup() 1190 int AfxUnhookWindowCreate() 1191 void AfxUnlockGlobals(int) 1192 int AfxUnlockTempMaps(int) 1193 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1194 void AfxVariantInit(tagVARIANT *) 1195 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1196 char * AfxW2AHelper(char *,wchar_t const *,int) 1197 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1198 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1199 void AfxWinTerm() 1200 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1201 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1202 void AfxWriteStringLength(CArchive &,unsigned int,int) 1203 void * CFixedAlloc::Alloc() 1204 void * CFixedAllocNoSync::Alloc() 1205 unsigned char * CMemFile::Alloc(unsigned long) 1206 unsigned char * CSharedFile::Alloc(unsigned long) 1207 void CRecordset::AllocAndCacheFieldInfo() 1208 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1209 void CDatabase::AllocConnect(unsigned long) 1210 void COleSafeArray::AllocData() 1211 void CRecordset::AllocDataCache() 1212 void COleSafeArray::AllocDescriptor(unsigned long) 1213 int CControlBar::AllocElements(int,int) 1214 int CStatusBar::AllocElements(int,int) 1215 int CRecordset::AllocHstmt() 1216 void CPropertyPage::AllocPSP(unsigned long) 1217 void CRecordset::AllocRowset() 1218 int CThreadSlotData::AllocSlot() 1219 void CRecordset::AllocStatusArrays() 1220 wchar_t * ATL::CStringT > >::AllocSysString()const 1221 wchar_t * ATL::CStringT > >::AllocSysString()const 1222 void * CProperty::AllocValue(unsigned long) 1223 short COleControl::AmbientAppearance() 1224 unsigned long COleControl::AmbientBackColor() 1225 ATL::CStringT > > COleControl::AmbientDisplayName() 1226 IFontDisp * COleControl::AmbientFont() 1227 unsigned long COleControl::AmbientForeColor() 1228 unsigned long COleControl::AmbientLocaleID() 1229 ATL::CStringT > > COleControl::AmbientScaleUnits() 1230 int COleControl::AmbientShowGrabHandles() 1231 int COleControl::AmbientShowHatching() 1232 short COleControl::AmbientTextAlign() 1233 int COleControl::AmbientUIDead() 1234 int COleControl::AmbientUserMode() 1235 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1236 void ATL::CSimpleStringT::Append(wchar_t const *) 1237 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1238 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1239 void ATL::CSimpleStringT::Append(char const *) 1240 void ATL::CSimpleStringT::Append(char const *,int) 1241 int CByteArray::Append(CByteArray const &) 1242 int CDWordArray::Append(CDWordArray const &) 1243 int CObArray::Append(CObArray const &) 1244 int CPtrArray::Append(CPtrArray const &) 1245 int CStringArray::Append(CStringArray const &) 1246 int CUIntArray::Append(CUIntArray const &) 1247 int CWordArray::Append(CWordArray const &) 1248 void ATL::CSimpleStringT::AppendChar(wchar_t) 1249 void ATL::CSimpleStringT::AppendChar(char) 1250 void CRecordset::AppendFilterAndSortSQL() 1251 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1252 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1253 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1254 void ATL::CStringT > >::AppendFormat(char const *,...) 1255 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1256 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1257 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1258 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1259 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1260 long COlePropertyPage::XPropertyPage::Apply() 1261 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1262 int COleDocument::ApplyPrintDevice(tagPDW const *) 1263 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1264 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1265 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1266 int CAsyncSocket::AsyncSelect(long) 1267 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1268 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1269 int CAsyncSocket::Attach(unsigned int,long) 1270 int CDC::Attach(HDC__ *) 1271 int CGdiObject::Attach(void *) 1272 int CImageList::Attach(_IMAGELIST *) 1273 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1274 int CMenu::Attach(HMENU__ *) 1275 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1276 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1277 void COleDataObject::Attach(IDataObject *,int) 1278 void COleSafeArray::Attach(tagVARIANT &) 1279 void COleStreamFile::Attach(IStream *) 1280 void COleVariant::Attach(tagVARIANT &) 1281 int CWnd::Attach(HWND__ *) 1282 int COleDataObject::AttachClipboard() 1283 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1284 void CWnd::AttachControlSite(CHandleMap *) 1285 void CWnd::AttachControlSite(CWnd *,unsigned int) 1286 void COleClientItem::AttachDataObject(COleDataObject &)const 1287 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1288 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1289 CPrintDialog * CPrintDialog::AttachOnSetup() 1290 void COleControlSite::AttachWindow() 1291 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1292 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1293 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1294 void COleMessageFilter::BeginBusyState() 1295 int CDragListBox::BeginDrag(CPoint) 1296 void COleDataObject::BeginEnumFormats() 1297 void CFrameWnd::BeginModalState() 1298 int CDatabase::BeginTrans() 1299 void CCmdTarget::BeginWaitCursor() 1300 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1301 void CDataSourceControl::BindColumns() 1302 void COccManager::BindControls(CWnd *) 1303 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1304 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1305 void CRecordset::BindFieldsForUpdate() 1306 unsigned int CRecordset::BindFieldsToColumns() 1307 void CDatabase::BindParameters(void *) 1308 unsigned int CRecordset::BindParams(void *) 1309 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1310 void CDataSourceControl::BindProp(COleControlSite *,int) 1311 void COleControlSite::BindProperty(long,CWnd *) 1312 void CWnd::BindProperty(long,CWnd *) 1313 void COleControl::BoundPropertyChanged(long) 1314 int COleControl::BoundPropertyRequestEdit(long) 1315 void CFrameWnd::BringToTop(int) 1316 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1317 void CDBException::BuildErrorString(CDatabase *,void *,int) 1318 void CPropertySheet::BuildPropPageArray() 1319 void CRecordset::BuildSelectSQL() 1320 int COleControl::BuildSharedMenu() 1321 int COleDocIPFrameWnd::BuildSharedMenu() 1322 int COleIPFrameWnd::BuildSharedMenu() 1323 void CRecordset::BuildSQL(wchar_t const *) 1324 void CRecordset::BuildUpdateSQL() 1325 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1326 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1327 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1328 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1329 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1330 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1331 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1332 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1333 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1334 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1335 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1336 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1337 CSize CControlBar::CalcFixedLayout(int,int) 1338 CSize CDialogBar::CalcFixedLayout(int,int) 1339 CSize CDockBar::CalcFixedLayout(int,int) 1340 CSize CReBar::CalcFixedLayout(int,int) 1341 CSize CStatusBar::CalcFixedLayout(int,int) 1342 CSize CToolBar::CalcFixedLayout(int,int) 1343 void CControlBar::CalcInsideRect(CRect &,int)const 1344 void CStatusBar::CalcInsideRect(CRect &,int)const 1345 CSize CToolBar::CalcLayout(unsigned long,int) 1346 int CCheckListBox::CalcMinimumItemHeight() 1347 CSize CPreviewView::CalcPageDisplaySize() 1348 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1349 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1350 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1351 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1352 void CView::CalcWindowRect(tagRECT *,unsigned int) 1353 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1354 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1355 int CDHtmlDialog::CanAccessExternal() 1356 int COleClientItem::CanActivate() 1357 int CRichEditCntrItem::CanActivate() 1358 int CSplitterWnd::CanActivateNext(int) 1359 int CRecordset::CanBookmark()const 1360 void CDatabase::Cancel() 1361 void CRecordset::Cancel() 1362 void CSocket::CancelBlockingCall() 1363 void CDragListBox::CancelDrag(CPoint) 1364 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1365 long COleUILinkInfo::CancelLink(unsigned long) 1366 void CDockContext::CancelLoop() 1367 void CPropertyPage::CancelToClose() 1368 void CWnd::CancelToolTips(int) 1369 void CRecordset::CancelUpdate() 1370 int CDocument::CanCloseFrame(CFrameWnd *) 1371 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1372 int COleClientItem::CanCreateFromData(COleDataObject const *) 1373 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1374 unsigned long CDockContext::CanDock() 1375 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1376 int CFrameWnd::CanEnterHelpMode() 1377 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1378 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1379 int COleClientItem::CanPaste() 1380 int CRichEditCtrl::CanPaste(unsigned int)const 1381 int CRichEditView::CanPaste()const 1382 int COleClientItem::CanPasteLink() 1383 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1384 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1385 void CScrollView::CenterOnPoint(CPoint) 1386 void CWnd::CenterWindow(CWnd *) 1387 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1388 int CListBox::CharToItem(unsigned int,unsigned int) 1389 void ATL::CStringT > >::CharToOemA() 1390 int CDatabase::Check(short)const 1391 int CRecordset::Check(short)const 1392 int CDialog::CheckAutoCenter() 1393 int CWnd::CheckAutoCenter() 1394 void CArchive::CheckCount() 1395 void COleControlContainer::CheckDlgButton(int,unsigned int) 1396 void CWnd::CheckDlgButton(int,unsigned int) 1397 int CCheckListBox::CheckFromPoint(CPoint,int &) 1398 void COleClientItem::CheckGeneral(long) 1399 int CDatabase::CheckHstmt(short,void *)const 1400 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1401 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1402 void COleControlContainer::CheckRadioButton(int,int,int) 1403 void CWnd::CheckRadioButton(int,int,int) 1404 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1405 void CRecordset::CheckRowsetError(short) 1406 void CScrollView::CheckScrollBars(int &,int &)const 1407 void CPropertyPage::Cleanup() 1408 void COlePropertyPage::CleanupObjectArray() 1409 void CDBVariant::Clear() 1410 void CDockState::Clear() 1411 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1412 void CRecordset::ClearFieldStatus() 1413 void CRecordset::ClearNullFieldStatus(unsigned long) 1414 void CRecordset::ClearNullParamStatus(unsigned long) 1415 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1416 void CWnd::ClientToScreen(tagRECT *)const 1417 int COleControl::ClipCaretRect(tagRECT *) 1418 void CPreviewDC::ClipToPage() 1419 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1420 long CArchiveStream::Clone(IStream * *) 1421 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1422 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1423 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1424 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1425 void CArchive::Close() 1426 void CAsyncMonikerFile::Close() 1427 void CAsyncSocket::Close() 1428 void CCachedDataPathProperty::Close() 1429 void CDatabase::Close() 1430 void CFile::Close() 1431 void CFileFind::Close() 1432 void CInternetConnection::Close() 1433 void CInternetFile::Close() 1434 void CInternetSession::Close() 1435 void CMemFile::Close() 1436 void CMirrorFile::Close() 1437 void CMonikerFile::Close() 1438 void COleClientItem::Close(enum tagOLECLOSE) 1439 void COleStreamFile::Close() 1440 void CRecordset::Close() 1441 void CSocket::Close() 1442 void CSocketFile::Close() 1443 void CStdioFile::Close() 1444 long CDocObjectServer::XOleObject::Close(unsigned long) 1445 long COleControl::XOleObject::Close(unsigned long) 1446 long COleServerDoc::XOleObject::Close(unsigned long) 1447 long COleServerItem::XOleObject::Close(unsigned long) 1448 void CDocManager::CloseAllDocuments(int) 1449 void CDocTemplate::CloseAllDocuments(int) 1450 void CWinApp::CloseAllDocuments(int) 1451 void CFileFind::CloseContext() 1452 void CFtpFileFind::CloseContext() 1453 void CGopherFileFind::CloseContext() 1454 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1455 int ATL::CStringT > >::Collate(wchar_t const *)const 1456 int ATL::CStringT > >::Collate(char const *)const 1457 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 1458 int ATL::CStringT > >::CollateNoCase(char const *)const 1459 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1460 int CStatusBar::CommandToIndex(unsigned int)const 1461 int CToolBar::CommandToIndex(unsigned int)const 1462 long CArchiveStream::Commit(unsigned long) 1463 void COleClientItem::CommitItem(int) 1464 void COleDocument::CommitItems(int,IStorage *) 1465 int CDatabase::CommitTrans() 1466 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 1467 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 1468 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1469 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1470 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1471 void CWinThread::CommonConstruct() 1472 int ATL::CStringT > >::Compare(wchar_t const *)const 1473 int ATL::CStringT > >::Compare(char const *)const 1474 int CComboBox::CompareItem(tagCOMPAREITEM*) 1475 int CListBox::CompareItem(tagCOMPAREITEM*) 1476 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 1477 int ATL::CStringT > >::CompareNoCase(char const *)const 1478 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 1479 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 1480 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 1481 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 1482 int CDatabase::Connect(unsigned long) 1483 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1484 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1485 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1486 int CSocket::ConnectHelper(sockaddr const *,int) 1487 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1488 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1489 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1490 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1491 void COleServerDoc::ConnectView(CWnd *,CView *) 1492 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1493 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1494 void CPropertyPage::Construct(unsigned int,unsigned int) 1495 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1496 void CPropertyPage::Construct(wchar_t const *,unsigned int) 1497 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1498 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1499 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1500 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 1501 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1502 void CRectTracker::Construct() 1503 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1504 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1505 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1506 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1507 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1508 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1509 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1510 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1511 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1512 int CPropertySheet::ContinueModal() 1513 int CWnd::ContinueModal() 1514 void COleControl::ControlInfoChanged() 1515 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1516 int COleClientItem::ConvertTo(_GUID const &) 1517 int CRichEditCntrItem::ConvertTo(_GUID const &) 1518 void CByteArray::Copy(CByteArray const &) 1519 void CDWordArray::Copy(CDWordArray const &) 1520 void CObArray::Copy(CObArray const &) 1521 void COleSafeArray::Copy(tagSAFEARRAY * *) 1522 void CPtrArray::Copy(CPtrArray const &) 1523 void CStringArray::Copy(CStringArray const &) 1524 void CUIntArray::Copy(CUIntArray const &) 1525 void CWordArray::Copy(CWordArray const &) 1526 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 1527 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 1528 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 1529 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 1530 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1531 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1532 void COleClientItem::CopyToClipboard(int) 1533 void COleServerItem::CopyToClipboard(int) 1534 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1535 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 1536 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1537 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1538 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1539 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1540 int CControlFrameWnd::Create(wchar_t const *) 1541 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1542 int CDialog::Create(wchar_t const *,CWnd *) 1543 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 1544 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1545 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1546 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 1547 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1548 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 1549 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1550 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1551 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1552 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1553 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1554 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1555 int CImageList::Create(int,int,unsigned int,int,int) 1556 int CImageList::Create(unsigned int,int,int,unsigned long) 1557 int CImageList::Create(CImageList *) 1558 int CImageList::Create(wchar_t const *,int,int,unsigned long) 1559 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1560 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1561 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1562 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1563 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1564 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1565 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1566 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1567 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1568 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1569 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1570 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1571 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1572 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1573 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1574 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1575 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1576 int CReflectorWnd::Create(CRect const &,HWND__ *) 1577 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1578 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1579 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1580 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1581 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1582 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1583 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1584 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1585 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1586 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1587 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1588 int CToolTipCtrl::Create(CWnd *,unsigned long) 1589 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1590 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1591 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1592 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1593 IBindHost * CMonikerFile::CreateBindHost() 1594 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1595 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 1596 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1597 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1598 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1599 void CConnectionPoint::CreateConnectionArray() 1600 COleControlContainer * COccManager::CreateContainer(CWnd *) 1601 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1602 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1603 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1604 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1605 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1606 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1607 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1608 int CWnd::CreateControlContainer(COleControlContainer * *) 1609 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1610 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1611 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1612 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1613 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1614 int CFtpConnection::CreateDirectoryW(wchar_t const *) 1615 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1616 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 1617 int CWnd::CreateDlg(wchar_t const *,CWnd *) 1618 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1619 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1620 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 1622 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1623 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1624 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1625 int CPictureHolder::CreateEmpty() 1626 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1627 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1628 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1629 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1630 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1631 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1632 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1633 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1634 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1635 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1636 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1637 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1638 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1639 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1640 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1641 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1642 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1643 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1644 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1645 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1646 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1647 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1648 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1649 CControlFrameWnd * COleControl::CreateFrameWindow() 1650 int CPictureHolder::CreateFromBitmap(unsigned int) 1651 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1652 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1653 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1654 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1655 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1656 int CPictureHolder::CreateFromIcon(unsigned int) 1657 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1658 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1659 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1660 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1661 int CDialog::CreateIndirect(void *,CWnd *) 1662 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1663 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1664 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1665 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1666 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1667 int COleInsertDialog::CreateItem(COleClientItem *) 1668 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1669 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1670 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1671 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1672 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 1673 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 1674 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 1675 int COleStreamFile::CreateMemoryStream(CFileException *) 1676 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1677 CDocument * CDocTemplate::CreateNewDocument() 1678 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1679 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1680 CObject * CByteArray::CreateObject() 1681 CObject * CDC::CreateObject() 1682 CObject * CDocItem::CreateObject() 1683 CObject * CDockState::CreateObject() 1684 CObject * CDWordArray::CreateObject() 1685 CObject * CEditView::CreateObject() 1686 CObject * CFrameWnd::CreateObject() 1687 CObject * CGdiObject::CreateObject() 1688 CObject * CHtmlEditView::CreateObject() 1689 CObject * CHtmlView::CreateObject() 1690 CObject * CImageList::CreateObject() 1691 CObject * CListView::CreateObject() 1692 CObject * CMapStringToOb::CreateObject() 1693 CObject * CMapStringToString::CreateObject() 1694 CObject * CMapWordToOb::CreateObject() 1695 CObject * CMDIChildWnd::CreateObject() 1696 CObject * CMDIFrameWnd::CreateObject() 1697 CObject * CMenu::CreateObject() 1698 CObject * CMiniDockFrameWnd::CreateObject() 1699 CObject * CMiniFrameWnd::CreateObject() 1700 CObject * CObArray::CreateObject() 1701 CObject * CObList::CreateObject() 1702 CObject * COleDocIPFrameWnd::CreateObject() 1703 CObject * COleIPFrameWnd::CreateObject() 1704 CObject * CPreviewView::CreateObject() 1705 CObject * CRichEditCntrItem::CreateObject() 1706 CObject * CRichEditView::CreateObject() 1707 CObject * CRuntimeClass::CreateObject() 1708 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1709 CObject * CRuntimeClass::CreateObject(char const *) 1710 CObject * CStringArray::CreateObject() 1711 CObject * CStringList::CreateObject() 1712 CObject * CTreeView::CreateObject() 1713 CObject * CWnd::CreateObject() 1714 CObject * CWordArray::CreateObject() 1715 void COleControlContainer::CreateOleFont(CFont *) 1716 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1717 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1718 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1719 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 1720 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 1721 HDC__ * CPageSetupDialog::CreatePrinterDC() 1722 HDC__ * CPrintDialog::CreatePrinterDC() 1723 HDC__ * CPrintDialogEx::CreatePrinterDC() 1724 int CWinApp::CreatePrinterDC(CDC &) 1725 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1726 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 1727 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1728 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1729 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1730 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 1731 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1732 void COleControl::CreateTracker(int,int) 1733 void COleControl::CreateTracker(int,int,tagRECT const *) 1734 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1735 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1736 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1737 void COleControl::CreateWindowForSubclassedControl() 1738 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1739 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1740 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1741 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1742 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 1743 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 1744 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 1745 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 1746 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 1747 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 1748 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 1749 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 1750 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 1751 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 1752 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 1753 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 1754 void DDP_PostProcessing(CDataExchange *) 1755 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 1756 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 1757 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 1758 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 1759 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 1760 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 1761 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 1762 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 1763 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 1764 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 1765 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1766 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1767 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1768 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1769 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1770 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1771 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1772 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1773 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1774 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1775 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1776 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1777 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1778 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1779 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1780 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1781 void DDX_CBIndex(CDataExchange *,int,int &) 1782 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1783 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1784 void DDX_Check(CDataExchange *,int,int &) 1785 void DDX_Control(CDataExchange *,int,CWnd &) 1786 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1787 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1788 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1789 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1790 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1791 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1792 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 1793 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 1794 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 1795 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 1796 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 1797 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 1798 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 1799 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 1800 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 1801 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 1802 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 1803 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 1804 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 1805 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 1806 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 1807 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 1808 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 1809 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 1810 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 1811 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 1812 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 1813 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 1814 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 1815 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 1816 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 1817 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 1818 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 1819 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1820 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 1821 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1822 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1823 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1824 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1825 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1826 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1827 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1828 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1829 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1830 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1831 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1832 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1833 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 1834 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 1835 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 1836 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 1837 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 1838 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1839 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 1840 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 1841 void DDX_LBIndex(CDataExchange *,int,int &) 1842 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 1843 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1844 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 1845 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 1846 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 1847 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 1848 void DDX_OCBool(CDataExchange *,int,long,int &) 1849 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 1850 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 1851 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 1852 void DDX_OCFloat(CDataExchange *,int,long,float &) 1853 void DDX_OCFloat(CDataExchange *,int,long,double &) 1854 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 1855 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 1856 void DDX_OCInt(CDataExchange *,int,long,int &) 1857 void DDX_OCInt(CDataExchange *,int,long,long &) 1858 void DDX_OCIntRO(CDataExchange *,int,long,int &) 1859 void DDX_OCIntRO(CDataExchange *,int,long,long &) 1860 void DDX_OCShort(CDataExchange *,int,long,short &) 1861 void DDX_OCShortRO(CDataExchange *,int,long,short &) 1862 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 1863 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 1864 void DDX_Radio(CDataExchange *,int,int &) 1865 void DDX_Scroll(CDataExchange *,int,int &) 1866 void DDX_Slider(CDataExchange *,int,int &) 1867 void DDX_Text(CDataExchange *,int,__int64 &) 1868 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 1869 void DDX_Text(CDataExchange *,int,unsigned char &) 1870 void DDX_Text(CDataExchange *,int,short &) 1871 void DDX_Text(CDataExchange *,int,int &) 1872 void DDX_Text(CDataExchange *,int,unsigned int &) 1873 void DDX_Text(CDataExchange *,int,long &) 1874 void DDX_Text(CDataExchange *,int,unsigned long &) 1875 void DDX_Text(CDataExchange *,int,float &) 1876 void DDX_Text(CDataExchange *,int,double &) 1877 void DDX_Text(CDataExchange *,int,_FILETIME &) 1878 void DDX_Text(CDataExchange *,int,_GUID &) 1879 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 1880 void DDX_Text(CDataExchange *,int,tagDBDATE &) 1881 void DDX_Text(CDataExchange *,int,tagDBTIME &) 1882 void DDX_Text(CDataExchange *,int,tagDEC &) 1883 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 1884 void DDX_Text(CDataExchange *,int,COleCurrency &) 1885 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 1886 void DDX_Text(CDataExchange *,int,wchar_t *,int) 1887 void COleClientItem::Deactivate() 1888 long COlePropertyPage::XPropertyPage::Deactivate() 1889 int COleServerDoc::DeactivateAndUndo() 1890 long COleClientItem::XOleIPSite::DeactivateAndUndo() 1891 long COleControlSite::XOleIPSite::DeactivateAndUndo() 1892 void COleClientItem::DeactivateUI() 1893 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 1894 long CWnd::Default() 1895 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 1896 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 1897 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 1898 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 1899 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 1900 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 1901 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 1902 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 1903 void CControlBar::DelayShow(int) 1904 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1905 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 1906 int ATL::CStringT > >::Delete(int,int) 1907 int ATL::CStringT > >::Delete(int,int) 1908 void CException::Delete() 1909 void COleClientItem::Delete(int) 1910 void CRecordset::Delete() 1911 void CWinThread::Delete() 1912 void CSplitterWnd::DeleteColumn(int) 1913 void CDocument::DeleteContents() 1914 void CEditView::DeleteContents() 1915 void CHtmlEditDoc::DeleteContents() 1916 void COleDocument::DeleteContents() 1917 void COleServerDoc::DeleteContents() 1918 void CRichEditDoc::DeleteContents() 1919 void CRichEditView::DeleteContents() 1920 int CDC::DeleteDC() 1921 int CImageList::DeleteImageList() 1922 void CComboBox::DeleteItem(tagDELETEITEM*) 1923 int CComboBoxEx::DeleteItem(int) 1924 void CListBox::DeleteItem(tagDELETEITEM*) 1925 int CGdiObject::DeleteObject() 1926 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 1927 void CSplitterWnd::DeleteRow(int) 1928 void CHandleMap::DeleteTemp() 1929 void CDC::DeleteTempMap() 1930 void CGdiObject::DeleteTempMap() 1931 void CImageList::DeleteTempMap() 1932 void CMenu::DeleteTempMap() 1933 void CWnd::DeleteTempMap() 1934 void CRichEditDoc::DeleteUnmarkedItems()const 1935 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 1936 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 1937 void CSplitterWnd::DeleteView(int,int) 1938 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 1939 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 1940 void COleSafeArray::Destroy() 1941 int COleControlSite::DestroyControl() 1942 void COleSafeArray::DestroyData() 1943 void COleSafeArray::DestroyDescriptor() 1944 void CFrameWnd::DestroyDockBars() 1945 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 1946 int CMenu::DestroyMenu() 1947 void CDHtmlDialog::DestroyModeless() 1948 void COleControl::DestroySharedMenu() 1949 void COleDocIPFrameWnd::DestroySharedMenu() 1950 void COleIPFrameWnd::DestroySharedMenu() 1951 int CToolTipCtrl::DestroyToolTipCtrl() 1952 void COleControl::DestroyTracker() 1953 int CControlBar::DestroyWindow() 1954 int CMDIChildWnd::DestroyWindow() 1955 int CWnd::DestroyWindow() 1956 unsigned int CAsyncSocket::Detach() 1957 HDC__ * CDC::Detach() 1958 void * CDialogTemplate::Detach() 1959 void * CGdiObject::Detach() 1960 _IMAGELIST * CImageList::Detach() 1961 unsigned char * CMemFile::Detach() 1962 HMENU__ * CMenu::Detach() 1963 int CMonikerFile::Detach(CFileException *) 1964 IDataObject * COleDataObject::Detach() 1965 tagVARIANT COleSafeArray::Detach() 1966 IStream * COleStreamFile::Detach() 1967 tagVARIANT COleVariant::Detach() 1968 void * CSharedFile::Detach() 1969 HDC__ * CWindowlessDC::Detach() 1970 HWND__ * CWnd::Detach() 1971 IDispatch * COleDispatchDriver::DetachDispatch() 1972 void CAsyncSocket::DetachHandle(unsigned int,int) 1973 void COleControlSite::DetachWindow() 1974 void CWinApp::DevModeChange(wchar_t *) 1975 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1976 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1977 int COleServerDoc::DiscardUndoState() 1978 long COleClientItem::XOleIPSite::DiscardUndoState() 1979 long COleControlSite::XOleIPSite::DiscardUndoState() 1980 void COleDispatchImpl::Disconnect() 1981 void CDHtmlDialog::DisconnectDHtmlElementEvents() 1982 void CDHtmlDialog::DisconnectDHtmlEvents() 1983 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 1984 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 1985 void CDocument::DisconnectViews() 1986 void CWinThread::DispatchThreadMessage(tagMSG *) 1987 int CWinThread::DispatchThreadMessageEx(tagMSG *) 1988 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 1989 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 1990 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 1991 void CAsyncSocket::DoCallBack(unsigned int,long) 1992 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 1993 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 1994 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 1995 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 1996 void COleControl::DoClick() 1997 int COleFrameHook::DoContextSensitiveHelp(int) 1998 int COleConvertDialog::DoConvert(COleClientItem *) 1999 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2000 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2001 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2002 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2003 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2004 int COleFrameHook::DoEnableModeless(int) 2005 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2006 void CRecordset::DoFieldExchange(CFieldExchange *) 2007 int CDocument::DoFileSave() 2008 int CSplitterWnd::DoKeyboardSplit() 2009 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2010 int CColorDialog::DoModal() 2011 int CDialog::DoModal() 2012 int CFileDialog::DoModal() 2013 int CFontDialog::DoModal() 2014 int COleBusyDialog::DoModal() 2015 int COleChangeIconDialog::DoModal() 2016 int COleChangeSourceDialog::DoModal() 2017 int COleConvertDialog::DoModal() 2018 int COleInsertDialog::DoModal(unsigned long) 2019 int COleInsertDialog::DoModal() 2020 int COleLinksDialog::DoModal() 2021 int COlePasteSpecialDialog::DoModal() 2022 int COlePropertiesDialog::DoModal() 2023 int COleUpdateDialog::DoModal() 2024 int CPageSetupDialog::DoModal() 2025 int CPrintDialog::DoModal() 2026 int CPrintDialogEx::DoModal() 2027 int CPropertySheet::DoModal() 2028 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2029 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2030 void CControlBar::DoPaint(CDC *) 2031 void CDockBar::DoPaint(CDC *) 2032 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2033 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2034 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2035 int CView::DoPreparePrinting(CPrintInfo *) 2036 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2037 int CWinApp::DoPrintDialog(CPrintDialog *) 2038 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2039 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2040 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2041 void COleControl::DoPropExchange(CPropExchange *) 2042 int CDocument::DoSave(wchar_t const *,int) 2043 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2044 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2045 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2046 int CCmdUI::DoUpdate(CCmdTarget *,int) 2047 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2048 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2049 long COleControlSite::DoVerb(long,tagMSG *) 2050 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2051 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2052 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2053 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2054 void CWinApp::DoWaitCursor(int) 2055 void CPreviewView::DoZoom(unsigned int,CPoint) 2056 void CDC::DPtoHIMETRIC(tagSIZE *)const 2057 void CDC::DPtoLP(tagSIZE *)const 2058 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2059 unsigned int CDragListBox::Dragging(CPoint) 2060 long COleDropTarget::XDropTarget::DragLeave() 2061 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2062 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2063 void CRectTracker::Draw(CDC *)const 2064 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2065 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2066 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2067 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2068 void CControlBar::DrawBorders(CDC *,CRect &) 2069 void COleControl::DrawContent(CDC *,CRect &) 2070 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2071 void CDockContext::DrawFocusRect(int) 2072 void CControlBar::DrawGripper(CDC *,CRect const &) 2073 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2074 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2075 void CDragListBox::DrawInsert(int) 2076 void CBitmapButton::DrawItem(tagDRAWITEM*) 2077 void CButton::DrawItem(tagDRAWITEM*) 2078 void CCheckListBox::DrawItem(tagDRAWITEM*) 2079 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2080 void CComboBox::DrawItem(tagDRAWITEM*) 2081 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2082 void CListBox::DrawItem(tagDRAWITEM*) 2083 void CListCtrl::DrawItem(tagDRAWITEM*) 2084 void CListView::DrawItem(tagDRAWITEM*) 2085 void CMenu::DrawItem(tagDRAWITEM*) 2086 void CStatic::DrawItem(tagDRAWITEM*) 2087 void CStatusBar::DrawItem(tagDRAWITEM*) 2088 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2089 void CTabCtrl::DrawItem(tagDRAWITEM*) 2090 void COleControl::DrawMetafile(CDC *,CRect &) 2091 void CDragListBox::DrawSingle(int) 2092 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2093 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2094 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2095 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2096 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2097 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2098 void CDragListBox::Dropped(int,CPoint) 2099 CDumpContext & CDumpContext::DumpAsHex(__int64) 2100 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2101 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2102 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2103 CDumpContext & CDumpContext::DumpAsHex(int) 2104 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2105 CDumpContext & CDumpContext::DumpAsHex(long) 2106 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2107 long COleControl::XDataObject::DUnadvise(unsigned long) 2108 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2109 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2110 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2111 CFile * CFile::Duplicate()const 2112 CFile * CInternetFile::Duplicate()const 2113 CFile * CMemFile::Duplicate()const 2114 CFile * COleStreamFile::Duplicate()const 2115 CFile * CSocketFile::Duplicate()const 2116 CFile * CStdioFile::Duplicate()const 2117 unsigned long const CEditView::dwStyleDefault 2118 void CRecordset::Edit() 2119 long COlePropertyPage::XPropertyPage::EditProperty(long) 2120 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2121 void ATL::CSimpleStringT::Empty() 2122 void ATL::CSimpleStringT::Empty() 2123 void CDBException::Empty() 2124 void COleDataSource::Empty() 2125 void CCheckListBox::Enable(int,int) 2126 void CCmdUI::Enable(int) 2127 void COleCmdUI::Enable(int) 2128 void CStatusCmdUI::Enable(int) 2129 void CTestCmdUI::Enable(int) 2130 void CToolCmdUI::Enable(int) 2131 void CCmdTarget::EnableAggregation() 2132 void CCmdTarget::EnableAutomation() 2133 void CRecordset::EnableBookmarks() 2134 void CCmdTarget::EnableConnections() 2135 void CControlBar::EnableDocking(unsigned long) 2136 void CFrameWnd::EnableDocking(unsigned long) 2137 void COleControlSite::EnableDSC() 2138 long CBrowserControlSite::EnableModeless(int) 2139 long CDHtmlDialog::EnableModeless(int) 2140 void CWinApp::EnableModeless(int) 2141 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2142 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2143 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2144 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2145 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2146 void CWnd::EnableScrollBarCtrl(int,int) 2147 void CWinApp::EnableShellOpen() 2148 void COleControl::EnableSimpleFrame() 2149 void CPropertySheet::EnableStackedTabs(int) 2150 int CInternetSession::EnableStatusCallback(int) 2151 int CWnd::EnableToolTips(int) 2152 int CWnd::EnableTrackingToolTips(int) 2153 void CCmdTarget::EnableTypeLib() 2154 int COleControlSite::EnableWindow(int) 2155 int CWnd::EnableWindow(int) 2156 void COleMessageFilter::EndBusyState() 2157 void CAsyncMonikerFile::EndCallbacks() 2158 long COleLinkingDoc::EndDeferErrors(long) 2159 void CDialog::EndDialog(int) 2160 void CPropertyPage::EndDialog(int) 2161 void CPropertySheet::EndDialog(int) 2162 void CDockContext::EndDrag() 2163 void CWnd::EndModalLoop(int) 2164 void CFrameWnd::EndModalState() 2165 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2166 void CDockContext::EndResize() 2167 void CCmdTarget::EndWaitCursor() 2168 void COleDataObject::EnsureClipboardObject() 2169 long CWnd::EnsureStdObj() 2170 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2171 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2172 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2173 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2174 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2175 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2176 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2177 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2178 int COlePropertyPage::EnumControls(HWND__ *,long) 2179 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2180 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2181 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2182 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2183 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2184 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2185 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2186 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2187 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2188 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2189 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2190 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2191 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2192 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2193 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2194 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2195 void CControlBar::EraseNonClient() 2196 int CFileException::ErrnoToException(int) 2197 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2198 int CMetaFileDC::Escape(int,int,char const *,void *) 2199 int CPreviewDC::Escape(int,int,char const *,void *) 2200 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2201 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2202 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2203 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2204 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2205 int COleControl::ExchangeExtent(CPropExchange *) 2206 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2207 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2208 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2209 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2210 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2211 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2212 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2213 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2214 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2215 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2216 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2217 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2218 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2219 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2220 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2221 void COleControl::ExchangeStockProps(CPropExchange *) 2222 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2223 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2224 int CDC::ExcludeClipRect(int,int,int,int) 2225 int CDC::ExcludeClipRect(tagRECT const *) 2226 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2227 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2228 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2229 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2230 int CHtmlEditView::ExecHandler(unsigned int) 2231 int CWnd::ExecuteDlgInit(void *) 2232 int CWnd::ExecuteDlgInit(wchar_t const *) 2233 void CRecordset::ExecuteSetPosUpdate() 2234 void CDatabase::ExecuteSQL(wchar_t const *) 2235 void CRecordset::ExecuteUpdateSQL() 2236 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2237 void CFrameWnd::ExitHelpMode() 2238 int COleControlModule::ExitInstance() 2239 int CWinApp::ExitInstance() 2240 int CWinThread::ExitInstance() 2241 unsigned long CCmdTarget::ExternalAddRef() 2242 void CCmdTarget::ExternalDisconnect() 2243 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2244 unsigned long CCmdTarget::ExternalRelease() 2245 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2246 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2247 void CDataExchange::Fail() 2248 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2249 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2250 void CArchive::FillBuffer(unsigned int) 2251 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 2252 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2253 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2254 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2255 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2256 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2257 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2258 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2259 void CWnd::FilterToolTipMessage(tagMSG *) 2260 int ATL::CStringT > >::Find(wchar_t,int)const 2261 int ATL::CStringT > >::Find(wchar_t const *,int)const 2262 int ATL::CStringT > >::Find(char,int)const 2263 int ATL::CStringT > >::Find(char const *,int)const 2264 __POSITION * CObList::Find(CObject *,__POSITION *)const 2265 __POSITION * CPtrList::Find(void *,__POSITION *)const 2266 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 2267 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 2268 int CDockBar::FindBar(CControlBar *,int) 2269 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2270 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2271 int CFileFind::FindFile(wchar_t const *,unsigned long) 2272 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 2273 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 2274 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 2275 __POSITION * CObList::FindIndex(int)const 2276 __POSITION * CPtrList::FindIndex(int)const 2277 __POSITION * CStringList::FindIndex(int)const 2278 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2279 int CFileFind::FindNextFileW() 2280 int CFtpFileFind::FindNextFileW() 2281 int CGopherFileFind::FindNextFileW() 2282 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 2283 int ATL::CStringT > >::FindOneOf(char const *)const 2284 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2285 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 2286 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 2287 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 2288 int CEditView::FindTextW(wchar_t const *,int,int) 2289 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 2290 int COleClientItem::FinishCreate(long) 2291 void COleControl::FireError(long,wchar_t const *,unsigned int) 2292 void COleControl::FireEvent(long,unsigned char *,...) 2293 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2294 void COleControl::FireEventV(long,unsigned char *,char *) 2295 void CRecordset::Fixups() 2296 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2297 void CArchive::Flush() 2298 void CDumpContext::Flush() 2299 void CFile::Flush() 2300 void CInternetFile::Flush() 2301 void CMemFile::Flush() 2302 void CMonikerFile::Flush() 2303 void COleStreamFile::Flush() 2304 void CSocketFile::Flush() 2305 void CStdioFile::Flush() 2306 void COleDataSource::FlushClipboard() 2307 int CRecordset::FlushResultSet() 2308 void ATL::CSimpleStringT::Fork(int) 2309 void ATL::CSimpleStringT::Fork(int) 2310 void ATL::CStringT > >::Format(unsigned int,...) 2311 void ATL::CStringT > >::Format(wchar_t const *,...) 2312 void ATL::CStringT > >::Format(unsigned int,...) 2313 void ATL::CStringT > >::Format(char const *,...) 2314 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2315 void ATL::CStringT > >::FormatMessageV(wchar_t const *,char * *) 2316 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 2317 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 2318 void ATL::CStringT > >::FormatMessageW(wchar_t const *,...) 2319 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 2320 void ATL::CStringT > >::FormatMessageW(char const *,...) 2321 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 2322 void ATL::CStringT > >::FormatV(char const *,char *) 2323 void COleControl::ForwardActivationMsg(tagMSG *) 2324 void CAfxStringMgr::Free(ATL::CStringData *) 2325 void CDatabase::Free() 2326 void CFixedAlloc::Free(void *) 2327 void CFixedAllocNoSync::Free(void *) 2328 void CMemFile::Free(unsigned char *) 2329 void CSharedFile::Free(unsigned char *) 2330 void CFixedAlloc::FreeAll() 2331 void CFixedAllocNoSync::FreeAll() 2332 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2333 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2334 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2335 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2336 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2337 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2338 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2339 void CRecordset::FreeDataCache() 2340 void CPlex::FreeDataChain() 2341 void ATL::CSimpleStringT::FreeExtra() 2342 void ATL::CSimpleStringT::FreeExtra() 2343 void CByteArray::FreeExtra() 2344 void CDWordArray::FreeExtra() 2345 void CObArray::FreeExtra() 2346 void CPtrArray::FreeExtra() 2347 void CStringArray::FreeExtra() 2348 void CUIntArray::FreeExtra() 2349 void CWordArray::FreeExtra() 2350 void CObList::FreeNode(CObList::CNode *) 2351 void CPtrList::FreeNode(CPtrList::CNode *) 2352 void CStringList::FreeNode(CStringList::CNode *) 2353 void CRecordset::FreeRowset() 2354 void CThreadSlotData::FreeSlot(int) 2355 void CProperty::FreeValue() 2356 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2357 void COleControlContainer::FreezeAllEvents(int) 2358 void COleControlSite::FreezeEvents(int) 2359 long COleControl::XOleControl::FreezeEvents(int) 2360 int COleClientItem::FreezeLink() 2361 CDC * CDC::FromHandle(HDC__ *) 2362 CGdiObject * CGdiObject::FromHandle(void *) 2363 CObject * CHandleMap::FromHandle(void *) 2364 CImageList * CImageList::FromHandle(_IMAGELIST *) 2365 CMenu * CMenu::FromHandle(HMENU__ *) 2366 CWnd * CWnd::FromHandle(HWND__ *) 2367 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2368 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2369 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2370 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2371 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2372 CRuntime* CRuntimeClass::FromName(char const *) 2373 void * CProperty::Get(unsigned long *) 2374 void * CProperty::Get() 2375 void * CPropertySection::Get(unsigned long) 2376 void * CPropertySection::Get(unsigned long,unsigned long *) 2377 void * CPropertySet::Get(_GUID,unsigned long) 2378 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2379 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2380 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2381 long CWnd::get_accChildCount(long *) 2382 long CWnd::XAccessible::get_accChildCount(long *) 2383 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2384 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2385 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2386 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2387 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2388 long CWnd::get_accFocus(tagVARIANT *) 2389 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2390 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2391 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2392 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2393 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2394 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2395 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2396 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2397 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2398 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2399 long CWnd::get_accParent(IDispatch * *) 2400 long CWnd::XAccessible::get_accParent(IDispatch * *) 2401 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2402 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2403 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2404 long CWnd::get_accSelection(tagVARIANT *) 2405 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2406 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2407 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2408 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2409 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2410 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2411 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2412 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2413 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2414 long CWnd::GetAccessibleChildCount() 2415 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2416 unsigned long COleControl::GetActivationPolicy() 2417 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2418 CDocument * CFrameWnd::GetActiveDocument() 2419 CFrameWnd * CFrameWnd::GetActiveFrame() 2420 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 2421 int CPropertySheet::GetActiveIndex()const 2422 CPropertyPage * CPropertySheet::GetActivePage()const 2423 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2424 CView * CFrameWnd::GetActiveView()const 2425 IOleDocumentView * COleDocObjectItem::GetActiveView()const 2426 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 2427 int CHtmlView::GetAddressBar()const 2428 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2429 int ATL::CSimpleStringT::GetAllocLength()const 2430 int ATL::CSimpleStringT::GetAllocLength()const 2431 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 2432 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2433 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2434 short COleControl::GetAppearance() 2435 IDispatch * CHtmlView::GetApplication()const 2436 HKEY__ * CWinApp::GetAppRegistryKey() 2437 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2438 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2439 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2440 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2441 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2442 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2443 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2444 wchar_t ATL::CSimpleStringT::GetAt(int)const 2445 char ATL::CSimpleStringT::GetAt(int)const 2446 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2447 unsigned long COleControl::GetBackColor() 2448 void CControlBar::GetBarInfo(CControlBarInfo *) 2449 void CDockBar::GetBarInfo(CControlBarInfo *) 2450 unsigned long CAsyncMonikerFile::GetBindInfo()const 2451 void * CBlobProperty::GetBlob() 2452 void CRecordset::GetBookmark(CDBVariant &) 2453 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2454 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2455 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2456 short COleControl::GetBorderStyle() 2457 long CDataSourceControl::GetBoundClientRow() 2458 int CRecordset::GetBoundFieldIndex(void *) 2459 int CRecordset::GetBoundParamIndex(void *) 2460 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 2461 wchar_t * ATL::CSimpleStringT::GetBuffer() 2462 char * ATL::CSimpleStringT::GetBuffer(int) 2463 char * ATL::CSimpleStringT::GetBuffer() 2464 unsigned int CEditView::GetBufferLength()const 2465 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2466 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2467 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2468 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 2469 char * ATL::CSimpleStringT::GetBufferSetLength(int) 2470 int CHtmlView::GetBusy()const 2471 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2472 unsigned int CToolBar::GetButtonStyle(int)const 2473 ATL::CStringT > > CToolBar::GetButtonText(int)const 2474 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2475 void COleSafeArray::GetByteArray(CByteArray &) 2476 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2477 unsigned short CPropertySet::GetByteOrder() 2478 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2479 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2480 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2481 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2482 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2483 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2484 CWnd * COleControl::GetCapture() 2485 long COleControlSite::XOleIPSite::GetCapture() 2486 void CFontDialog::GetCharFormat(_charformatw &)const 2487 CHARFORMAT2W & CRichEditView::GetCharFormatSelection() 2488 int CCheckListBox::GetCheck(int) 2489 int CListCtrl::GetCheck(int)const 2490 int CTreeCtrl::GetCheck(_TREEITEM *)const 2491 int CWnd::GetCheckedRadioButton(int,int) 2492 long CBlobProperty::GetClassID(_GUID *) 2493 void COleClientItem::GetClassID(_GUID *)const 2494 _GUID CPropertySet::GetClassID() 2495 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2496 long COleControl::XPersistMemory::GetClassID(_GUID *) 2497 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2498 long COleControl::XPersistStorage::GetClassID(_GUID *) 2499 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2500 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2501 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 2502 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2503 void COleControl::GetClientOffset(long *,long *)const 2504 void COleControl::GetClientRect(tagRECT *)const 2505 IOleClientSite * COleClientItem::GetClientSite() 2506 IOleClientSite * COleControl::GetClientSite() 2507 IOleClientSite * CRichEditCntrItem::GetClientSite() 2508 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2509 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2510 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2511 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2512 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2513 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2514 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2515 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2516 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2517 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2518 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2519 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2520 COleDataSource * COleDataSource::GetClipboardOwner() 2521 int CDC::GetClipBox(tagRECT *)const 2522 int CMetaFileDC::GetClipBox(tagRECT *)const 2523 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 2524 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2525 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2526 int CListCtrl::GetColumnOrderArray(int *,int) 2527 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 2528 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 2529 void CDatabase::GetConnectInfo() 2530 int CConnectionPoint::GetConnectionCount() 2531 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2532 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2533 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2534 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 2535 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 2536 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2537 CPtrArray const * CConnectionPoint::GetConnections() 2538 IConnectionPointContainer * CConnectionPoint::GetContainer() 2539 IDispatch * CHtmlView::GetContainer()const 2540 IOleItemContainer * COleDocument::GetContainer() 2541 IOleItemContainer * COleLinkingDoc::GetContainer() 2542 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2543 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2544 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2545 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2546 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2547 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2548 COleControlContainer * CWnd::GetControlContainer() 2549 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 2550 unsigned long COleControl::GetControlFlags() 2551 void COleControlSite::GetControlInfo() 2552 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2553 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 2554 IUnknown * CCmdTarget::GetControllingUnknown() 2555 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2556 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 2557 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 2558 void COleControl::GetControlSize(int *,int *) 2559 int COlePropertyPage::GetControlStatus(unsigned int) 2560 IUnknown * CWnd::GetControlUnknown() 2561 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2562 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 2563 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 2564 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 2565 int CPrintDialog::GetCopies()const 2566 int CPrintDialogEx::GetCopies()const 2567 unsigned long CPropertySection::GetCount() 2568 unsigned long CPropertySet::GetCount() 2569 int CFileFind::GetCreationTime(ATL::CTime &)const 2570 int CFileFind::GetCreationTime(_FILETIME *)const 2571 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2572 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2573 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2574 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2575 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 2576 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 2577 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 2578 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 2579 tagMSG const * CWnd::GetCurrentMessage() 2580 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2581 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2582 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2583 IUnknown * CDataBoundProperty::GetCursor() 2584 IUnknown * CDataSourceControl::GetCursor() 2585 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2586 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2587 ATL::CStringData * ATL::CSimpleStringT::GetData()const 2588 ATL::CStringData * ATL::CSimpleStringT::GetData()const 2589 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2590 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2591 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2592 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 2593 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2594 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2595 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2596 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2597 ATL::CStringT > > CDatabase::GetDatabaseName()const 2598 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2599 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2600 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2601 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2602 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2603 CNoTrackObject * CThreadLocalObject::GetDataNA() 2604 IDataObject * COleServerItem::GetDataObject() 2605 COleControl::CControlDataSource * COleControl::GetDataSource() 2606 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2607 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2608 HACCEL__ * CDocument::GetDefaultAccelerator() 2609 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 2610 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 2611 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 2612 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 2613 ATL::CStringT > > CRecordset::GetDefaultConnect() 2614 short CRecordset::GetDefaultFieldType(short) 2615 HMENU__ * CDocument::GetDefaultMenu() 2616 HMENU__ * COleServerDoc::GetDefaultMenu() 2617 int CPrintDialog::GetDefaults() 2618 int CPrintDialogEx::GetDefaults() 2619 ATL::CStringT > > CRecordset::GetDefaultSQL() 2620 unsigned long COccManager::GetDefBtnCode(CWnd *) 2621 unsigned long COleControlSite::GetDefBtnCode() 2622 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2623 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 2624 ATL::CStringT > > CPrintDialog::GetDeviceName()const 2625 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 2626 CPoint CScrollView::GetDeviceScrollPosition()const 2627 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2628 _devicemodeW * CPageSetupDialog::GetDevMode()const 2629 _devicemodeW * CPrintDialog::GetDevMode()const 2630 _devicemodeW * CPrintDialogEx::GetDevMode()const 2631 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2632 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2633 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2634 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2635 DHtmlEventMapEntry const * GetDHtmlEventMap() 2636 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 2637 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 2638 int CCmdTarget::GetDispatchIID(_GUID *) 2639 int COleControl::GetDispatchIID(_GUID *) 2640 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 2641 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 2642 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2643 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 2644 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2645 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2646 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2647 int COleControlSite::GetDlgCtrlID()const 2648 int CWnd::GetDlgCtrlID()const 2649 CWnd * COleControlContainer::GetDlgItem(int)const 2650 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2651 CWnd * CWnd::GetDlgItem(int)const 2652 void CWnd::GetDlgItem(int,HWND__ * *)const 2653 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2654 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2655 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 2656 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 2657 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 2658 CDockBar * CDockContext::GetDockBar(unsigned long) 2659 CControlBar * CDockBar::GetDockedControlBar(int)const 2660 int CDockBar::GetDockedCount()const 2661 int CDockBar::GetDockedVisibleCount()const 2662 CFrameWnd * CControlBar::GetDockingFrame()const 2663 void CFrameWnd::GetDockState(CDockState &)const 2664 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2665 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2666 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2667 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2668 int CDocManager::GetDocumentCount() 2669 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2670 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 2671 ATL::CStringT > > CPrintDialog::GetDriverName()const 2672 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 2673 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2674 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2675 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2676 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2677 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2678 IUnknown * CWnd::GetDSCCursor() 2679 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 2680 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 2681 void COleSafeArray::GetElement(long *,void *) 2682 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 2683 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 2684 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 2685 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 2686 COleServerItem * COleServerDoc::GetEmbeddedItem() 2687 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2688 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2689 int COleControl::GetEnabled() 2690 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2691 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2692 int ATL::CStringT > >::GetEnvironmentVariableW(wchar_t const *) 2693 int ATL::CStringT > >::GetEnvironmentVariableW(char const *) 2694 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2695 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2696 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2697 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2698 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2699 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2700 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2701 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2702 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2703 int COleControlSite::GetEventIID(_GUID *) 2704 AFX_EVENTMAP const * COleControl::GetEventMap()const 2705 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 2706 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 2707 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2708 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 2709 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 2710 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 2711 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 2712 unsigned long COleControlSite::GetExStyle()const 2713 unsigned long CWnd::GetExStyle()const 2714 IDispatch * COleControl::GetExtendedControl() 2715 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2716 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2717 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2718 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2719 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2720 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2721 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2722 long CBrowserControlSite::GetExternal(IDispatch * *) 2723 long CDHtmlDialog::GetExternal(IDispatch * *) 2724 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2725 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2726 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2727 short CRecordset::GetFieldIndexByName(wchar_t const *) 2728 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2729 unsigned char CRecordset::GetFieldStatus(unsigned long) 2730 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2731 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2732 void CRecordset::GetFieldValue(short,CDBVariant &,short) 2733 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 2734 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 2735 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 2736 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 2737 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 2738 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 2739 ATL::CStringT > > CFileDialog::GetFileExt()const 2740 ATL::CStringT > > CFile::GetFileName()const 2741 ATL::CStringT > > CFileDialog::GetFileName()const 2742 ATL::CStringT > > CFileFind::GetFileName()const 2743 ATL::CStringT > > CGopherFileFind::GetFileName()const 2744 ATL::CStringT > > CFile::GetFilePath()const 2745 ATL::CStringT > > CFileFind::GetFilePath()const 2746 ATL::CStringT > > CGopherFileFind::GetFilePath()const 2747 ATL::CStringT > > CFile::GetFileTitle()const 2748 ATL::CStringT > > CFileDialog::GetFileTitle()const 2749 ATL::CStringT > > CFileFind::GetFileTitle()const 2750 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 2751 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 2752 ATL::CStringT > > CFileFind::GetFileURL()const 2753 ATL::CStringT > > CFtpFileFind::GetFileURL()const 2754 ATL::CStringT > > CGopherFileFind::GetFileURL()const 2755 ATL::CStringT > > CHttpFile::GetFileURL()const 2756 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 2757 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 2758 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 2759 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 2760 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 2761 CFrameWnd * COleDocument::GetFirstFrame() 2762 __POSITION * CDocument::GetFirstViewPosition()const 2763 CWnd * COleControl::GetFocus() 2764 long COleControlSite::XOleIPSite::GetFocus() 2765 ATL::CStringT > > CFileDialog::GetFolderPath()const 2766 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 2767 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 2768 IFontDisp * COleControl::GetFont() 2769 IFontDisp * CFontHolder::GetFontDispatch() 2770 HFONT__ * CFontHolder::GetFontHandle(long,long) 2771 HFONT__ * CFontHolder::GetFontHandle() 2772 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 2773 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 2774 unsigned long COleControl::GetForeColor() 2775 _GUID CPropertySection::GetFormatID() 2776 unsigned short CPropertySet::GetFormatVersion() 2777 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 2778 ATL::CStringT > > CHtmlView::GetFullName()const 2779 int CHtmlView::GetFullScreen()const 2780 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 2781 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 2782 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 2783 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 2784 CBrush * CDC::GetHalftoneBrush() 2785 unsigned int CRectTracker::GetHandleMask()const 2786 void CRectTracker::GetHandleRect(int,CRect *)const 2787 int CRectTracker::GetHandleSize(tagRECT const *)const 2788 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 2789 long CHtmlView::GetHeight()const 2790 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 2791 void CSplitterWnd::GetHitRect(int,CRect &) 2792 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 2793 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 2794 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 2795 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 2796 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 2797 IDispatch * CHtmlView::GetHtmlDocument()const 2798 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 2799 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 2800 unsigned int COleControl::GetHwnd() 2801 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 2802 HICON__ * COleClientItem::GetIconFromRegistry()const 2803 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 2804 void * COleClientItem::GetIconicMetafile() 2805 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 2806 unsigned long CProperty::GetID() 2807 int CPropertySection::GetID(wchar_t const *,unsigned long *) 2808 IDataObject * COleDataObject::GetIDataObject(int) 2809 IDispatch * CCmdTarget::GetIDispatch(int) 2810 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2811 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2812 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2813 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2814 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2815 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2816 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 2817 _GUID const & COleControl::XEventConnPt::GetIID() 2818 CImageList * CReBarCtrl::GetImageList()const 2819 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 2820 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 2821 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 2822 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 2823 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 2824 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 2825 CWnd * COleClientItem::GetInPlaceWindow() 2826 void CSplitterWnd::GetInsideRect(CRect &)const 2827 IUnknown * CCmdTarget::GetInterface(void const *) 2828 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 2829 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 2830 IUnknown * COleControl::GetInterfaceHook(void const *) 2831 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 2832 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 2833 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 2834 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 2835 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 2836 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 2837 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 2838 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 2839 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 2840 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 2841 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 2842 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 2843 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 2844 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 2845 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 2846 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 2847 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 2848 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 2849 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 2850 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 2851 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 2852 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 2853 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 2854 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 2855 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 2856 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 2857 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 2858 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 2859 void COleServerDoc::GetItemClipRect(tagRECT *)const 2860 unsigned long CListCtrl::GetItemData(int)const 2861 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 2862 unsigned int CStatusBar::GetItemID(int)const 2863 unsigned int CToolBar::GetItemID(int)const 2864 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 2865 void COleClientItem::GetItemName(wchar_t *)const 2866 void COleServerDoc::GetItemPosition(tagRECT *)const 2867 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 2868 void CStatusBar::GetItemRect(int,tagRECT *)const 2869 void CToolBar::GetItemRect(int,tagRECT *)const 2870 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 2871 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 2872 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 2873 void COleClientItem::GetItemStorage() 2874 void COleClientItem::GetItemStorageCompound() 2875 void COleClientItem::GetItemStorageFlat() 2876 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 2877 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 2878 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 2879 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 2880 int CFileFind::GetLastAccessTime(ATL::CTime &)const 2881 int CFileFind::GetLastAccessTime(_FILETIME *)const 2882 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 2883 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 2884 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 2885 int CFileFind::GetLastWriteTime(ATL::CTime &)const 2886 int CFileFind::GetLastWriteTime(_FILETIME *)const 2887 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 2888 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 2889 unsigned long CDC::GetLayout()const 2890 long CRecordset::GetLBFetchSize(long) 2891 void COleSafeArray::GetLBound(unsigned long,long *) 2892 long CRecordset::GetLBReallocSize(long) 2893 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 2894 long CHtmlView::GetLeft()const 2895 int ATL::CSimpleStringT::GetLength()const 2896 int ATL::CSimpleStringT::GetLength()const 2897 unsigned __int64 CFile::GetLength()const 2898 unsigned __int64 CFileFind::GetLength()const 2899 unsigned __int64 CGopherFileFind::GetLength()const 2900 unsigned __int64 CInternetFile::GetLength()const 2901 unsigned __int64 CMemFile::GetLength()const 2902 unsigned __int64 COleStreamFile::GetLength()const 2903 unsigned __int64 CSocketFile::GetLength()const 2904 unsigned __int64 CStdioFile::GetLength()const 2905 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 2906 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 2907 int CRichEditCtrl::GetLine(int,wchar_t *)const 2908 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 2909 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 2910 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 2911 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 2912 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 2913 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 2914 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 2915 CPtrList * CPropertySection::GetList() 2916 CPtrList * CPropertySet::GetList() 2917 ATL::CStringT > > CHtmlView::GetLocationName()const 2918 ATL::CStringT > > CHtmlView::GetLocationURL()const 2919 CGopherLocator CGopherFileFind::GetLocator()const 2920 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 2921 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 2922 long CFieldExchange::GetLongBinarySize(int) 2923 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2924 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 2925 CWnd * CWinThread::GetMainWnd() 2926 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2927 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 2928 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 2929 int CConnectionPoint::GetMaxConnections() 2930 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 2931 int CHtmlView::GetMenuBar()const 2932 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 2933 CWnd * CFrameWnd::GetMessageBar() 2934 CWnd * CMDIChildWnd::GetMessageBar() 2935 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 2936 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 2937 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 2938 AFX_MSGMAP const * CControlBar::GetMessageMap()const 2939 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 2940 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 2941 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 2942 AFX_MSGMAP const * CDialog::GetMessageMap()const 2943 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 2944 AFX_MSGMAP const * CDockBar::GetMessageMap()const 2945 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 2946 AFX_MSGMAP const * CDocument::GetMessageMap()const 2947 AFX_MSGMAP const * CEditView::GetMessageMap()const 2948 AFX_MSGMAP const * CFormView::GetMessageMap()const 2949 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 2950 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 2951 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 2952 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 2953 AFX_MSGMAP const * CListView::GetMessageMap()const 2954 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 2955 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 2956 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 2957 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 2958 AFX_MSGMAP const * COleControl::GetMessageMap()const 2959 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 2960 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 2961 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 2962 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 2963 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 2964 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 2965 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 2966 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 2967 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 2968 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 2969 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 2970 AFX_MSGMAP const * CReBar::GetMessageMap()const 2971 AFX_MSGMAP const * CRecordView::GetMessageMap()const 2972 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 2973 AFX_MSGMAP const * CScrollView::GetMessageMap()const 2974 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 2975 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 2976 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 2977 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 2978 AFX_MSGMAP const * CToolBar::GetMessageMap()const 2979 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 2980 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 2981 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 2982 AFX_MSGMAP const * CTreeView::GetMessageMap()const 2983 AFX_MSGMAP const * CView::GetMessageMap()const 2984 AFX_MSGMAP const * CWinApp::GetMessageMap()const 2985 AFX_MSGMAP const * CWnd::GetMessageMap()const 2986 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 2987 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 2988 long CDataSourceControl::GetMetaData() 2989 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2990 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 2991 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2992 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2993 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2994 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 2995 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 2996 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 2997 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 2998 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 2999 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3000 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3001 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3002 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3003 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3004 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3005 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3006 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 3007 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 3008 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 3009 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3010 unsigned long COleClientItem::GetNewItemNumber() 3011 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3012 CDataBoundProperty * CDataBoundProperty::GetNext() 3013 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3014 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3015 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 3016 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 3017 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 3018 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3019 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3020 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3021 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3022 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 3023 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 3024 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3025 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3026 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3027 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3028 int COleDataObject::GetNextFormat(tagFORMATETC *) 3029 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3030 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3031 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3032 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 3033 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3034 CView * CDocument::GetNextView(__POSITION * &)const 3035 ATL::CStringData * CAfxStringMgr::GetNilString() 3036 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3037 void CCmdTarget::GetNotSupported() 3038 void COleControl::GetNotSupported() 3039 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3040 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3041 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3042 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 3043 unsigned int CArchive::GetObjectSchema() 3044 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 3045 ATL::CStringT > > CHttpFile::GetObjectW()const 3046 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 3047 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3048 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 3049 int CHtmlView::GetOffline()const 3050 tagOFNW & CFileDialog::GetOFN() 3051 tagOFNW const & CFileDialog::GetOFN()const 3052 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 3053 IOleObject * COleServerItem::GetOleObject() 3054 unsigned long COleSafeArray::GetOneDimSize() 3055 int CDocManager::GetOpenDocumentCount() 3056 int CWinApp::GetOpenDocumentCount() 3057 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 3058 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 3059 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 3060 int CHeaderCtrl::GetOrderArray(int *,int) 3061 unsigned long CPropertySet::GetOSVersion() 3062 CWnd * COleControl::GetOuterWindow()const 3063 int COleDocObjectItem::GetPageCount(long *,long *) 3064 int CPropertySheet::GetPageCount()const 3065 int CPropertySheet::GetPageIndex(CPropertyPage *) 3066 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3067 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3068 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3069 IPropertyPageSite * COlePropertyPage::GetPageSite() 3070 CWnd * CSplitterWnd::GetPane(int,int)const 3071 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3072 unsigned int CStatusBar::GetPaneStyle(int)const 3073 ATL::CStringT > > CStatusBar::GetPaneText(int)const 3074 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 3075 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3076 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 3077 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 3078 IDispatch * CHtmlView::GetParentBrowser()const 3079 CFrameWnd * CWnd::GetParentFrame()const 3080 CWnd * CWnd::GetParentOwner()const 3081 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3082 ATL::CStringT > > CFileDialog::GetPathName()const 3083 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 3084 IPictureDisp * CPictureHolder::GetPictureDispatch() 3085 ATL::CStringT > > CPageSetupDialog::GetPortName()const 3086 ATL::CStringT > > CPrintDialog::GetPortName()const 3087 ATL::CStringT > > CPrintDialogEx::GetPortName()const 3088 unsigned __int64 CFile::GetPosition()const 3089 unsigned __int64 CMemFile::GetPosition()const 3090 unsigned __int64 COleStreamFile::GetPosition()const 3091 unsigned __int64 CSocketFile::GetPosition()const 3092 unsigned __int64 CStdioFile::GetPosition()const 3093 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3094 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3095 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 3096 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3097 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3098 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3099 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 3100 CFont * CEditView::GetPrinterFont()const 3101 long CAsyncMonikerFile::GetPriority()const 3102 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 3103 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 3104 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 3105 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 3106 COleVariant CHtmlView::GetProperty(wchar_t const *) 3107 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 3108 void COleControlSite::GetProperty(long,unsigned short,void *)const 3109 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3110 CProperty * CPropertySection::GetProperty(unsigned long) 3111 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3112 void CWnd::GetProperty(long,unsigned short,void *)const 3113 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 3114 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3115 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 3116 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3117 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 3118 int COlePropertyPage::GetPropText(wchar_t const *,short *) 3119 int COlePropertyPage::GetPropText(wchar_t const *,int *) 3120 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 3121 int COlePropertyPage::GetPropText(wchar_t const *,long *) 3122 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 3123 int COlePropertyPage::GetPropText(wchar_t const *,float *) 3124 int COlePropertyPage::GetPropText(wchar_t const *,double *) 3125 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 3126 _PROPSHEETPAGEW & CPropertyPage::GetPSP() 3127 _PROPSHEETPAGEW const & CPropertyPage::GetPSP()const 3128 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3129 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3130 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3131 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3132 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3133 void CProgressCtrl::GetRange(int &,int &) 3134 void CSliderCtrl::GetRange(int &,int &)const 3135 void CSpinButtonCtrl::GetRange(int &,int &)const 3136 void * CProperty::GetRawValue() 3137 enum tagREADYSTATE CHtmlView::GetReadyState()const 3138 long COleControl::GetReadyState() 3139 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3140 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3141 int COleControl::GetRectInContainer(tagRECT *) 3142 int CHtmlView::GetRegisterAsBrowser()const 3143 int CHtmlView::GetRegisterAsDropTarget()const 3144 ATL::CStringT > > CFileFind::GetRoot()const 3145 ATL::CStringT > > CGopherFileFind::GetRoot()const 3146 CFrameWnd * CCmdTarget::GetRoutingFrame() 3147 CFrameWnd * CCmdTarget::GetRoutingFrame_() 3148 CView * CCmdTarget::GetRoutingView() 3149 CView * CCmdTarget::GetRoutingView_() 3150 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3151 CRuntime* CAnimateCtrl::GetRuntimeClass()const 3152 CRuntime* CArchiveException::GetRuntimeClass()const 3153 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 3154 CRuntime* CAsyncSocket::GetRuntimeClass()const 3155 CRuntime* CBitmap::GetRuntimeClass()const 3156 CRuntime* CBitmapButton::GetRuntimeClass()const 3157 CRuntime* CBrush::GetRuntimeClass()const 3158 CRuntime* CButton::GetRuntimeClass()const 3159 CRuntime* CByteArray::GetRuntimeClass()const 3160 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 3161 CRuntime* CCheckListBox::GetRuntimeClass()const 3162 CRuntime* CClientDC::GetRuntimeClass()const 3163 CRuntime* CCmdTarget::GetRuntimeClass()const 3164 CRuntime* CColorDialog::GetRuntimeClass()const 3165 CRuntime* CComboBox::GetRuntimeClass()const 3166 CRuntime* CComboBoxEx::GetRuntimeClass()const 3167 CRuntime* CControlBar::GetRuntimeClass()const 3168 CRuntime* CCriticalSection::GetRuntimeClass()const 3169 CRuntime* CCtrlView::GetRuntimeClass()const 3170 CRuntime* CDatabase::GetRuntimeClass()const 3171 CRuntime* CDataPathProperty::GetRuntimeClass()const 3172 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 3173 CRuntime* CDBException::GetRuntimeClass()const 3174 CRuntime* CDC::GetRuntimeClass()const 3175 CRuntime* CDHtmlDialog::GetRuntimeClass()const 3176 CRuntime* CDialog::GetRuntimeClass()const 3177 CRuntime* CDialogBar::GetRuntimeClass()const 3178 CRuntime* CDocItem::GetRuntimeClass()const 3179 CRuntime* CDockBar::GetRuntimeClass()const 3180 CRuntime* CDockState::GetRuntimeClass()const 3181 CRuntime* CDocManager::GetRuntimeClass()const 3182 CRuntime* CDocObjectServer::GetRuntimeClass()const 3183 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 3184 CRuntime* CDocTemplate::GetRuntimeClass()const 3185 CRuntime* CDocument::GetRuntimeClass()const 3186 CRuntime* CDragListBox::GetRuntimeClass()const 3187 CRuntime* CDWordArray::GetRuntimeClass()const 3188 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 3189 CRuntime* CEdit::GetRuntimeClass()const 3190 CRuntime* CEditView::GetRuntimeClass()const 3191 CRuntime* CEvent::GetRuntimeClass()const 3192 CRuntime* CException::GetRuntimeClass()const 3193 CRuntime* CFile::GetRuntimeClass()const 3194 CRuntime* CFileDialog::GetRuntimeClass()const 3195 CRuntime* CFileException::GetRuntimeClass()const 3196 CRuntime* CFileFind::GetRuntimeClass()const 3197 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 3198 CRuntime* CFont::GetRuntimeClass()const 3199 CRuntime* CFontDialog::GetRuntimeClass()const 3200 CRuntime* CFormView::GetRuntimeClass()const 3201 CRuntime* CFrameWnd::GetRuntimeClass()const 3202 CRuntime* CFtpConnection::GetRuntimeClass()const 3203 CRuntime* CFtpFileFind::GetRuntimeClass()const 3204 CRuntime* CGdiObject::GetRuntimeClass()const 3205 CRuntime* CGopherConnection::GetRuntimeClass()const 3206 CRuntime* CGopherFile::GetRuntimeClass()const 3207 CRuntime* CGopherFileFind::GetRuntimeClass()const 3208 CRuntime* CHeaderCtrl::GetRuntimeClass()const 3209 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 3210 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 3211 CRuntime* CHtmlEditView::GetRuntimeClass()const 3212 CRuntime* CHtmlView::GetRuntimeClass()const 3213 CRuntime* CHttpConnection::GetRuntimeClass()const 3214 CRuntime* CHttpFile::GetRuntimeClass()const 3215 CRuntime* CImageList::GetRuntimeClass()const 3216 CRuntime* CInternetConnection::GetRuntimeClass()const 3217 CRuntime* CInternetException::GetRuntimeClass()const 3218 CRuntime* CInternetFile::GetRuntimeClass()const 3219 CRuntime* CInternetSession::GetRuntimeClass()const 3220 CRuntime* CInvalidArgException::GetRuntimeClass()const 3221 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 3222 CRuntime* CLinkCtrl::GetRuntimeClass()const 3223 CRuntime* CListBox::GetRuntimeClass()const 3224 CRuntime* CListCtrl::GetRuntimeClass()const 3225 CRuntime* CListView::GetRuntimeClass()const 3226 CRuntime* CLongBinary::GetRuntimeClass()const 3227 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 3228 CRuntime* CMapPtrToWord::GetRuntimeClass()const 3229 CRuntime* CMapStringToOb::GetRuntimeClass()const 3230 CRuntime* CMapStringToPtr::GetRuntimeClass()const 3231 CRuntime* CMapStringToString::GetRuntimeClass()const 3232 CRuntime* CMapWordToOb::GetRuntimeClass()const 3233 CRuntime* CMapWordToPtr::GetRuntimeClass()const 3234 CRuntime* CMDIChildWnd::GetRuntimeClass()const 3235 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 3236 CRuntime* CMemFile::GetRuntimeClass()const 3237 CRuntime* CMemoryException::GetRuntimeClass()const 3238 CRuntime* CMenu::GetRuntimeClass()const 3239 CRuntime* CMetaFileDC::GetRuntimeClass()const 3240 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 3241 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 3242 CRuntime* CMonikerFile::GetRuntimeClass()const 3243 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 3244 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 3245 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 3246 CRuntime* CMutex::GetRuntimeClass()const 3247 CRuntime* CNotSupportedException::GetRuntimeClass()const 3248 CRuntime* CObArray::GetRuntimeClass()const 3249 CRuntime* CObject::GetRuntimeClass()const 3250 CRuntime* CObList::GetRuntimeClass()const 3251 CRuntime* COleBusyDialog::GetRuntimeClass()const 3252 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 3253 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 3254 CRuntime* COleClientItem::GetRuntimeClass()const 3255 CRuntime* COleControl::GetRuntimeClass()const 3256 CRuntime* COleControlModule::GetRuntimeClass()const 3257 CRuntime* COleConvertDialog::GetRuntimeClass()const 3258 CRuntime* COleDBRecordView::GetRuntimeClass()const 3259 CRuntime* COleDialog::GetRuntimeClass()const 3260 CRuntime* COleDispatchException::GetRuntimeClass()const 3261 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 3262 CRuntime* COleDocObjectItem::GetRuntimeClass()const 3263 CRuntime* COleDocument::GetRuntimeClass()const 3264 CRuntime* COleException::GetRuntimeClass()const 3265 CRuntime* COleInsertDialog::GetRuntimeClass()const 3266 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 3267 CRuntime* COleLinkingDoc::GetRuntimeClass()const 3268 CRuntime* COleLinksDialog::GetRuntimeClass()const 3269 CRuntime* COleObjectFactory::GetRuntimeClass()const 3270 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 3271 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 3272 CRuntime* COlePropertyPage::GetRuntimeClass()const 3273 CRuntime* COleResizeBar::GetRuntimeClass()const 3274 CRuntime* COleServerDoc::GetRuntimeClass()const 3275 CRuntime* COleServerItem::GetRuntimeClass()const 3276 CRuntime* COleStreamFile::GetRuntimeClass()const 3277 CRuntime* COleUpdateDialog::GetRuntimeClass()const 3278 CRuntime* CPageSetupDialog::GetRuntimeClass()const 3279 CRuntime* CPaintDC::GetRuntimeClass()const 3280 CRuntime* CPalette::GetRuntimeClass()const 3281 CRuntime* CPen::GetRuntimeClass()const 3282 CRuntime* CPreviewDC::GetRuntimeClass()const 3283 CRuntime* CPreviewView::GetRuntimeClass()const 3284 CRuntime* CPrintDialog::GetRuntimeClass()const 3285 CRuntime* CPrintDialogEx::GetRuntimeClass()const 3286 CRuntime* CProgressCtrl::GetRuntimeClass()const 3287 CRuntime* CPropertyPage::GetRuntimeClass()const 3288 CRuntime* CPropertySheet::GetRuntimeClass()const 3289 CRuntime* CPtrArray::GetRuntimeClass()const 3290 CRuntime* CPtrList::GetRuntimeClass()const 3291 CRuntime* CReBar::GetRuntimeClass()const 3292 CRuntime* CReBarCtrl::GetRuntimeClass()const 3293 CRuntime* CRecordset::GetRuntimeClass()const 3294 CRuntime* CRecordView::GetRuntimeClass()const 3295 CRuntime* CResourceException::GetRuntimeClass()const 3296 CRuntime* CRgn::GetRuntimeClass()const 3297 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 3298 CRuntime* CRichEditCtrl::GetRuntimeClass()const 3299 CRuntime* CRichEditDoc::GetRuntimeClass()const 3300 CRuntime* CRichEditView::GetRuntimeClass()const 3301 CRuntime* CScrollBar::GetRuntimeClass()const 3302 CRuntime* CScrollView::GetRuntimeClass()const 3303 CRuntime* CSemaphore::GetRuntimeClass()const 3304 CRuntime* CSharedFile::GetRuntimeClass()const 3305 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 3306 CRuntime* CSliderCtrl::GetRuntimeClass()const 3307 CRuntime* CSocket::GetRuntimeClass()const 3308 CRuntime* CSocketFile::GetRuntimeClass()const 3309 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 3310 CRuntime* CSplitterWnd::GetRuntimeClass()const 3311 CRuntime* CStatic::GetRuntimeClass()const 3312 CRuntime* CStatusBar::GetRuntimeClass()const 3313 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 3314 CRuntime* CStdioFile::GetRuntimeClass()const 3315 CRuntime* CStringArray::GetRuntimeClass()const 3316 CRuntime* CStringList::GetRuntimeClass()const 3317 CRuntime* CSyncObject::GetRuntimeClass()const 3318 CRuntime* CTabCtrl::GetRuntimeClass()const 3319 CRuntime* CToolBar::GetRuntimeClass()const 3320 CRuntime* CToolBarCtrl::GetRuntimeClass()const 3321 CRuntime* CToolTipCtrl::GetRuntimeClass()const 3322 CRuntime* CTreeCtrl::GetRuntimeClass()const 3323 CRuntime* CTreeView::GetRuntimeClass()const 3324 CRuntime* CUIntArray::GetRuntimeClass()const 3325 CRuntime* CUserException::GetRuntimeClass()const 3326 CRuntime* CView::GetRuntimeClass()const 3327 CRuntime* CWinApp::GetRuntimeClass()const 3328 CRuntime* CWindowDC::GetRuntimeClass()const 3329 CRuntime* CWindowlessDC::GetRuntimeClass()const 3330 CRuntime* CWinThread::GetRuntimeClass()const 3331 CRuntime* CWnd::GetRuntimeClass()const 3332 CRuntime* CWordArray::GetRuntimeClass()const 3333 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3334 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3335 unsigned long * CColorDialog::GetSavedCustomColors() 3336 ATL::CStringT > > CGopherFileFind::GetScreenName()const 3337 CSize CDockState::GetScreenSize() 3338 CScrollBar * CView::GetScrollBarCtrl(int)const 3339 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3340 void CScrollView::GetScrollBarSizes(CSize &) 3341 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3342 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3343 int CWnd::GetScrollLimit(int) 3344 int CWnd::GetScrollPos(int)const 3345 CPoint CScrollView::GetScrollPosition()const 3346 void CWnd::GetScrollRange(int,int *,int *)const 3347 unsigned long CSplitterWnd::GetScrollStyle()const 3348 CPropertySection * CPropertySet::GetSection(_GUID) 3349 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 3350 wchar_t const * CPropertySection::GetSectionName() 3351 void CRichEditCtrl::GetSel(long &,long &)const 3352 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 3353 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3354 void CSliderCtrl::GetSelection(int &,int &)const 3355 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 3356 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 3357 unsigned int COleConvertDialog::GetSelectionType()const 3358 unsigned int COleInsertDialog::GetSelectionType()const 3359 unsigned int COlePasteSpecialDialog::GetSelectionType()const 3360 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3361 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3362 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3363 ATL::CStringT > > CRichEditCtrl::GetSelText()const 3364 int CHtmlView::GetSilent()const 3365 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3366 unsigned long CPropertySection::GetSize() 3367 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3368 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3369 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3370 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3371 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3372 CWnd * CSplitterWnd::GetSizingParent() 3373 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3374 int CHtmlView::GetSource(ATL::CStringT > > &) 3375 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3376 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3377 wchar_t const * CHtmlEditCtrl::GetStartDocument() 3378 wchar_t const * CHtmlEditView::GetStartDocument() 3379 __POSITION * CConnectionPoint::GetStartPosition()const 3380 __POSITION * COleDocument::GetStartPosition()const 3381 __POSITION * CRichEditDoc::GetStartPosition()const 3382 int CFile::GetStatus(CFileStatus &)const 3383 int CFile::GetStatus(wchar_t const *,CFileStatus &) 3384 int CMemFile::GetStatus(CFileStatus &)const 3385 int COleStreamFile::GetStatus(CFileStatus &)const 3386 int CHtmlView::GetStatusBar()const 3387 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 3388 ATL::CStringT > > const COleStreamFile::GetStorageName()const 3389 IStream * COleStreamFile::GetStream()const 3390 wchar_t const * ATL::CSimpleStringT::GetString()const 3391 char const * ATL::CSimpleStringT::GetString()const 3392 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3393 unsigned long COleControlSite::GetStyle()const 3394 unsigned long COleControlSiteOrWnd::GetStyle()const 3395 unsigned long CWnd::GetStyle()const 3396 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 3397 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 3398 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3399 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3400 void CListBox::GetText(int,ATL::CStringT > > &)const 3401 wchar_t * COleControl::GetText() 3402 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3403 int CStatusBarCtrl::GetText(wchar_t *,int,int *)const 3404 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3405 long CRecordset::GetTextLen(short,unsigned long) 3406 int CStatusBarCtrl::GetTextLength(int,int *)const 3407 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3408 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3409 int CHtmlView::GetTheaterMode()const 3410 CRuntime* CAnimateCtrl::GetThisClass() 3411 CRuntime* CArchiveException::GetThisClass() 3412 CRuntime* CAsyncMonikerFile::GetThisClass() 3413 CRuntime* CAsyncSocket::GetThisClass() 3414 CRuntime* CBitmap::GetThisClass() 3415 CRuntime* CBitmapButton::GetThisClass() 3416 CRuntime* CBrush::GetThisClass() 3417 CRuntime* CButton::GetThisClass() 3418 CRuntime* CByteArray::GetThisClass() 3419 CRuntime* CCachedDataPathProperty::GetThisClass() 3420 CRuntime* CCheckListBox::GetThisClass() 3421 CRuntime* CClientDC::GetThisClass() 3422 CRuntime* CCmdTarget::GetThisClass() 3423 CRuntime* CColorDialog::GetThisClass() 3424 CRuntime* CComboBox::GetThisClass() 3425 CRuntime* CComboBoxEx::GetThisClass() 3426 CRuntime* CControlBar::GetThisClass() 3427 CRuntime* CCriticalSection::GetThisClass() 3428 CRuntime* CCtrlView::GetThisClass() 3429 CRuntime* CDatabase::GetThisClass() 3430 CRuntime* CDataPathProperty::GetThisClass() 3431 CRuntime* CDateTimeCtrl::GetThisClass() 3432 CRuntime* CDBException::GetThisClass() 3433 CRuntime* CDC::GetThisClass() 3434 CRuntime* CDHtmlDialog::GetThisClass() 3435 CRuntime* CDialog::GetThisClass() 3436 CRuntime* CDialogBar::GetThisClass() 3437 CRuntime* CDocItem::GetThisClass() 3438 CRuntime* CDockBar::GetThisClass() 3439 CRuntime* CDockState::GetThisClass() 3440 CRuntime* CDocManager::GetThisClass() 3441 CRuntime* CDocObjectServer::GetThisClass() 3442 CRuntime* CDocObjectServerItem::GetThisClass() 3443 CRuntime* CDocTemplate::GetThisClass() 3444 CRuntime* CDocument::GetThisClass() 3445 CRuntime* CDragListBox::GetThisClass() 3446 CRuntime* CDWordArray::GetThisClass() 3447 CRuntime* CDynLinkLibrary::GetThisClass() 3448 CRuntime* CEdit::GetThisClass() 3449 CRuntime* CEditView::GetThisClass() 3450 CRuntime* CEvent::GetThisClass() 3451 CRuntime* CException::GetThisClass() 3452 CRuntime* CFile::GetThisClass() 3453 CRuntime* CFileDialog::GetThisClass() 3454 CRuntime* CFileException::GetThisClass() 3455 CRuntime* CFileFind::GetThisClass() 3456 CRuntime* CFindReplaceDialog::GetThisClass() 3457 CRuntime* CFont::GetThisClass() 3458 CRuntime* CFontDialog::GetThisClass() 3459 CRuntime* CFormView::GetThisClass() 3460 CRuntime* CFrameWnd::GetThisClass() 3461 CRuntime* CFtpConnection::GetThisClass() 3462 CRuntime* CFtpFileFind::GetThisClass() 3463 CRuntime* CGdiObject::GetThisClass() 3464 CRuntime* CGopherConnection::GetThisClass() 3465 CRuntime* CGopherFile::GetThisClass() 3466 CRuntime* CGopherFileFind::GetThisClass() 3467 CRuntime* CHeaderCtrl::GetThisClass() 3468 CRuntime* CHotKeyCtrl::GetThisClass() 3469 CRuntime* CHtmlEditDoc::GetThisClass() 3470 CRuntime* CHtmlEditView::GetThisClass() 3471 CRuntime* CHtmlView::GetThisClass() 3472 CRuntime* CHttpConnection::GetThisClass() 3473 CRuntime* CHttpFile::GetThisClass() 3474 CRuntime* CImageList::GetThisClass() 3475 CRuntime* CInternetConnection::GetThisClass() 3476 CRuntime* CInternetException::GetThisClass() 3477 CRuntime* CInternetFile::GetThisClass() 3478 CRuntime* CInternetSession::GetThisClass() 3479 CRuntime* CInvalidArgException::GetThisClass() 3480 CRuntime* CIPAddressCtrl::GetThisClass() 3481 CRuntime* CLinkCtrl::GetThisClass() 3482 CRuntime* CListBox::GetThisClass() 3483 CRuntime* CListCtrl::GetThisClass() 3484 CRuntime* CListView::GetThisClass() 3485 CRuntime* CLongBinary::GetThisClass() 3486 CRuntime* CMapPtrToPtr::GetThisClass() 3487 CRuntime* CMapPtrToWord::GetThisClass() 3488 CRuntime* CMapStringToOb::GetThisClass() 3489 CRuntime* CMapStringToPtr::GetThisClass() 3490 CRuntime* CMapStringToString::GetThisClass() 3491 CRuntime* CMapWordToOb::GetThisClass() 3492 CRuntime* CMapWordToPtr::GetThisClass() 3493 CRuntime* CMDIChildWnd::GetThisClass() 3494 CRuntime* CMDIFrameWnd::GetThisClass() 3495 CRuntime* CMemFile::GetThisClass() 3496 CRuntime* CMemoryException::GetThisClass() 3497 CRuntime* CMenu::GetThisClass() 3498 CRuntime* CMetaFileDC::GetThisClass() 3499 CRuntime* CMiniDockFrameWnd::GetThisClass() 3500 CRuntime* CMiniFrameWnd::GetThisClass() 3501 CRuntime* CMonikerFile::GetThisClass() 3502 CRuntime* CMonthCalCtrl::GetThisClass() 3503 CRuntime* CMultiDocTemplate::GetThisClass() 3504 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 3505 CRuntime* CMutex::GetThisClass() 3506 CRuntime* CNotSupportedException::GetThisClass() 3507 CRuntime* CObArray::GetThisClass() 3508 CRuntime* CObject::GetThisClass() 3509 CRuntime* CObList::GetThisClass() 3510 CRuntime* COleBusyDialog::GetThisClass() 3511 CRuntime* COleChangeIconDialog::GetThisClass() 3512 CRuntime* COleChangeSourceDialog::GetThisClass() 3513 CRuntime* COleClientItem::GetThisClass() 3514 CRuntime* COleControl::GetThisClass() 3515 CRuntime* COleControlModule::GetThisClass() 3516 CRuntime* COleConvertDialog::GetThisClass() 3517 CRuntime* COleDBRecordView::GetThisClass() 3518 CRuntime* COleDialog::GetThisClass() 3519 CRuntime* COleDispatchException::GetThisClass() 3520 CRuntime* COleDocIPFrameWnd::GetThisClass() 3521 CRuntime* COleDocObjectItem::GetThisClass() 3522 CRuntime* COleDocument::GetThisClass() 3523 CRuntime* COleException::GetThisClass() 3524 CRuntime* COleInsertDialog::GetThisClass() 3525 CRuntime* COleIPFrameWnd::GetThisClass() 3526 CRuntime* COleLinkingDoc::GetThisClass() 3527 CRuntime* COleLinksDialog::GetThisClass() 3528 CRuntime* COleObjectFactory::GetThisClass() 3529 CRuntime* COlePasteSpecialDialog::GetThisClass() 3530 CRuntime* COlePropertiesDialog::GetThisClass() 3531 CRuntime* COlePropertyPage::GetThisClass() 3532 CRuntime* COleResizeBar::GetThisClass() 3533 CRuntime* COleServerDoc::GetThisClass() 3534 CRuntime* COleServerItem::GetThisClass() 3535 CRuntime* COleStreamFile::GetThisClass() 3536 CRuntime* COleUpdateDialog::GetThisClass() 3537 CRuntime* CPageSetupDialog::GetThisClass() 3538 CRuntime* CPaintDC::GetThisClass() 3539 CRuntime* CPalette::GetThisClass() 3540 CRuntime* CPen::GetThisClass() 3541 CRuntime* CPreviewDC::GetThisClass() 3542 CRuntime* CPreviewView::GetThisClass() 3543 CRuntime* CPrintDialog::GetThisClass() 3544 CRuntime* CPrintDialogEx::GetThisClass() 3545 CRuntime* CProgressCtrl::GetThisClass() 3546 CRuntime* CPropertyPage::GetThisClass() 3547 CRuntime* CPropertySheet::GetThisClass() 3548 CRuntime* CPtrArray::GetThisClass() 3549 CRuntime* CPtrList::GetThisClass() 3550 CRuntime* CReBar::GetThisClass() 3551 CRuntime* CReBarCtrl::GetThisClass() 3552 CRuntime* CRecordset::GetThisClass() 3553 CRuntime* CRecordView::GetThisClass() 3554 CRuntime* CResourceException::GetThisClass() 3555 CRuntime* CRgn::GetThisClass() 3556 CRuntime* CRichEditCntrItem::GetThisClass() 3557 CRuntime* CRichEditCtrl::GetThisClass() 3558 CRuntime* CRichEditDoc::GetThisClass() 3559 CRuntime* CRichEditView::GetThisClass() 3560 CRuntime* CScrollBar::GetThisClass() 3561 CRuntime* CScrollView::GetThisClass() 3562 CRuntime* CSemaphore::GetThisClass() 3563 CRuntime* CSharedFile::GetThisClass() 3564 CRuntime* CSingleDocTemplate::GetThisClass() 3565 CRuntime* CSliderCtrl::GetThisClass() 3566 CRuntime* CSocket::GetThisClass() 3567 CRuntime* CSocketFile::GetThisClass() 3568 CRuntime* CSpinButtonCtrl::GetThisClass() 3569 CRuntime* CSplitterWnd::GetThisClass() 3570 CRuntime* CStatic::GetThisClass() 3571 CRuntime* CStatusBar::GetThisClass() 3572 CRuntime* CStatusBarCtrl::GetThisClass() 3573 CRuntime* CStdioFile::GetThisClass() 3574 CRuntime* CStringArray::GetThisClass() 3575 CRuntime* CStringList::GetThisClass() 3576 CRuntime* CSyncObject::GetThisClass() 3577 CRuntime* CTabCtrl::GetThisClass() 3578 CRuntime* CToolBar::GetThisClass() 3579 CRuntime* CToolBarCtrl::GetThisClass() 3580 CRuntime* CToolTipCtrl::GetThisClass() 3581 CRuntime* CTreeCtrl::GetThisClass() 3582 CRuntime* CTreeView::GetThisClass() 3583 CRuntime* CUIntArray::GetThisClass() 3584 CRuntime* CUserException::GetThisClass() 3585 CRuntime* CView::GetThisClass() 3586 CRuntime* CWinApp::GetThisClass() 3587 CRuntime* CWindowDC::GetThisClass() 3588 CRuntime* CWindowlessDC::GetThisClass() 3589 CRuntime* CWinThread::GetThisClass() 3590 CRuntime* CWnd::GetThisClass() 3591 CRuntime* CWordArray::GetThisClass() 3592 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 3593 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 3594 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 3595 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 3596 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 3597 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 3598 AFX_EVENTMAP const * COleControl::GetThisEventMap() 3599 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 3600 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 3601 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 3602 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 3603 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 3604 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 3605 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 3606 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 3607 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 3608 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 3609 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 3610 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 3611 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 3612 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 3613 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 3614 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 3615 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 3616 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 3617 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 3618 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 3619 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 3620 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 3621 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 3622 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 3623 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 3624 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 3625 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 3626 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 3627 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 3628 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 3629 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 3630 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 3631 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 3632 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 3633 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 3634 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 3635 AFX_MSGMAP const * CDialog::GetThisMessageMap() 3636 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 3637 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 3638 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 3639 AFX_MSGMAP const * CDocument::GetThisMessageMap() 3640 AFX_MSGMAP const * CEditView::GetThisMessageMap() 3641 AFX_MSGMAP const * CFormView::GetThisMessageMap() 3642 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 3643 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 3644 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 3645 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 3646 AFX_MSGMAP const * CListView::GetThisMessageMap() 3647 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 3648 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 3649 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 3650 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 3651 AFX_MSGMAP const * COleControl::GetThisMessageMap() 3652 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 3653 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 3654 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 3655 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 3656 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 3657 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 3658 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 3659 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 3660 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 3661 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 3662 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 3663 AFX_MSGMAP const * CReBar::GetThisMessageMap() 3664 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 3665 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 3666 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 3667 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 3668 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 3669 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 3670 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 3671 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 3672 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 3673 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 3674 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 3675 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 3676 AFX_MSGMAP const * CView::GetThisMessageMap() 3677 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 3678 AFX_MSGMAP const * CWnd::GetThisMessageMap() 3679 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 3680 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 3681 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 3682 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 3683 int CMonthCalCtrl::GetToday(ATL::CTime &)const 3684 int CHtmlView::GetToolBar()const 3685 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 3686 long CHtmlView::GetTop()const 3687 int CHtmlView::GetTopLevelContainer()const 3688 CFrameWnd * CWnd::GetTopLevelFrame()const 3689 CWnd * CWnd::GetTopLevelOwner()const 3690 CWnd * CWnd::GetTopLevelParent()const 3691 int CScrollView::GetTrueClientSize(CSize &,CSize &) 3692 void CRectTracker::GetTrueRect(tagRECT *)const 3693 ATL::CStringT > > CHtmlView::GetType()const 3694 short CPictureHolder::GetType() 3695 unsigned long CProperty::GetType() 3696 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3697 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3698 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3699 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3700 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3701 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3702 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 3703 unsigned int CCmdTarget::GetTypeInfoCount() 3704 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 3705 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 3706 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 3707 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 3708 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 3709 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 3710 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 3711 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 3712 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 3713 CTypeLibCache * CCmdTarget::GetTypeLibCache() 3714 void COleSafeArray::GetUBound(unsigned long,long *) 3715 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 3716 long COleControl::XOleObject::GetUserClassID(_GUID *) 3717 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 3718 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 3719 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 3720 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 3721 void COleControl::GetUserType(wchar_t *) 3722 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 3723 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 3724 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 3725 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 3726 void * CMapPtrToPtr::GetValueAt(void *)const 3727 ATL::CStringT > > CHttpFile::GetVerb()const 3728 unsigned long CDockState::GetVersion() 3729 CHtmlEditView * CHtmlEditDoc::GetView()const 3730 CRichEditView * CRichEditDoc::GetView()const 3731 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 3732 long COleControl::XViewObject::GetViewStatus(unsigned long *) 3733 int CHtmlView::GetVisible()const 3734 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 3735 long CHtmlView::GetWidth()const 3736 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3737 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 3738 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 3739 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 3740 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 3741 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 3742 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 3743 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 3744 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3745 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3746 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3747 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 3748 long CWnd::GetWindowedChildCount() 3749 long CWnd::GetWindowLessChildCount() 3750 IDropTarget * COleControl::GetWindowlessDropTarget() 3751 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 3752 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 3753 int CWnd::GetWindowTextLengthW()const 3754 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 3755 int CWnd::GetWindowTextW(wchar_t *,int)const 3756 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 3757 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 3758 long COleDropSource::GiveFeedback(unsigned long) 3759 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 3760 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 3761 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 3762 void CMemFile::GrowFile(unsigned long) 3763 int CWnd::HandleFloatingSysCommand(unsigned int,long) 3764 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 3765 long CDialog::HandleInitDialog(unsigned int,long) 3766 long CDialogBar::HandleInitDialog(unsigned int,long) 3767 long CFormView::HandleInitDialog(unsigned int,long) 3768 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 3769 long CPropertySheet::HandleInitDialog(unsigned int,long) 3770 long CScrollView::HandleMButtonDown(unsigned int,long) 3771 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 3772 int COleControlContainer::HandleSetFocus() 3773 long CDialog::HandleSetFont(unsigned int,long) 3774 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 3775 long COleControl::XPersistStorage::HandsOffStorage() 3776 long COleServerDoc::XPersistStorage::HandsOffStorage() 3777 int COleDocument::HasBlankItems()const 3778 int CDialogTemplate::HasFont()const 3779 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 3780 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 3781 void * CFile::hFileNull 3782 void CWinApp::HideApplication() 3783 void CFileDialog::HideControl(int) 3784 long CBrowserControlSite::HideUI() 3785 long CDHtmlDialog::HideUI() 3786 long CHtmlControlSite::XDocHostUIHandler::HideUI() 3787 void CDC::HIMETRICtoDP(tagSIZE *)const 3788 void CDC::HIMETRICtoLP(tagSIZE *)const 3789 int CListCtrl::HitTest(CPoint,unsigned int *)const 3790 int CRectTracker::HitTest(CPoint)const 3791 int CSplitterWnd::HitTest(CPoint)const 3792 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 3793 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 3794 int CRectTracker::HitTestHandles(CPoint)const 3795 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 3796 void CWnd::HtmlHelpW(unsigned long,unsigned int) 3797 int CSplitterWnd::IdFromRowCol(int,int)const 3798 void COlePropertyPage::IgnoreApply(unsigned int) 3799 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 3800 int CWinApp::InitApplication() 3801 long COleControl::XOleCache::InitCache(IDataObject *) 3802 int CWnd::InitControlContainer(int) 3803 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 3804 long CPrintDialogEx::InitDone() 3805 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3806 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3807 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3808 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 3809 void CMapPtrToPtr::InitHashTable(unsigned int,int) 3810 void CMapPtrToWord::InitHashTable(unsigned int,int) 3811 void CMapStringToOb::InitHashTable(unsigned int,int) 3812 void CMapStringToPtr::InitHashTable(unsigned int,int) 3813 void CMapStringToString::InitHashTable(unsigned int,int) 3814 void CMapWordToOb::InitHashTable(unsigned int,int) 3815 void CMapWordToPtr::InitHashTable(unsigned int,int) 3816 long CDataSourceControl::Initialize() 3817 void CDHtmlDialog::Initialize() 3818 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 3819 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 3820 int CEditView::InitializeReplace() 3821 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 3822 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 3823 int COleControlModule::InitInstance() 3824 int CWinApp::InitInstance() 3825 int CWinThread::InitInstance() 3826 void CWinApp::InitLibId() 3827 void CDockContext::InitLoop() 3828 int CDialog::InitModalIndirect(void *,CWnd *) 3829 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 3830 long COleControl::XPersistMemory::InitNew() 3831 long COleControl::XPersistPropertyBag::InitNew() 3832 long COleControl::XPersistStorage::InitNew(IStorage *) 3833 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 3834 long COleControl::XPersistStreamInit::InitNew() 3835 void CRecordset::InitRecord() 3836 void COleControl::InitStockEventMask() 3837 void COleControl::InitStockPropMask() 3838 void CSimpleException::InitString() 3839 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 3840 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 3841 int ATL::CStringT > >::Insert(int,wchar_t) 3842 int ATL::CStringT > >::Insert(int,wchar_t const *) 3843 int ATL::CStringT > >::Insert(int,char) 3844 int ATL::CStringT > >::Insert(int,char const *) 3845 int CDockBar::Insert(CControlBar *,CRect,CPoint) 3846 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 3847 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 3848 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 3849 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 3850 void CByteArray::InsertAt(int,unsigned char,int) 3851 void CByteArray::InsertAt(int,CByteArray *) 3852 void CDWordArray::InsertAt(int,unsigned long,int) 3853 void CDWordArray::InsertAt(int,CDWordArray *) 3854 void CObArray::InsertAt(int,CObArray *) 3855 void CObArray::InsertAt(int,CObject *,int) 3856 void CPtrArray::InsertAt(int,CPtrArray *) 3857 void CPtrArray::InsertAt(int,void *,int) 3858 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 3859 void CStringArray::InsertAt(int,CStringArray const *) 3860 void CStringArray::InsertAt(int,wchar_t const *,int) 3861 void CUIntArray::InsertAt(int,unsigned int,int) 3862 void CUIntArray::InsertAt(int,CUIntArray *) 3863 void CWordArray::InsertAt(int,unsigned short,int) 3864 void CWordArray::InsertAt(int,CWordArray *) 3865 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 3866 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 3867 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 3868 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 3869 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 3870 void CStringArray::InsertEmpty(int,int) 3871 void CRichEditView::InsertFileAsObject(wchar_t const *) 3872 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 3873 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 3874 long CRichEditView::InsertItem(CRichEditCntrItem *) 3875 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 3876 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 3877 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 3878 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3879 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 3880 CFontHolder & COleControl::InternalGetFont() 3881 ATL::CStringT > > const & COleControl::InternalGetText() 3882 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 3883 unsigned long CCmdTarget::InternalRelease() 3884 int CDC::IntersectClipRect(int,int,int,int) 3885 int CDC::IntersectClipRect(tagRECT const *) 3886 void CCheckListBox::InvalidateCheck(int) 3887 void COleControl::InvalidateControl(tagRECT const *,int) 3888 void CCheckListBox::InvalidateItem(int) 3889 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 3890 void COleControl::InvalidateRgn(CRgn *,int) 3891 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 3892 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3893 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3894 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3895 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3896 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3897 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3898 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 3899 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 3900 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3901 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3902 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 3903 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3904 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 3905 int CDocItem::IsBlank()const 3906 int COleServerItem::IsBlank()const 3907 int CPropertyPage::IsButtonEnabled(int) 3908 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 3909 int COleServerItem::IsConnected()const 3910 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 3911 int COleControlSite::IsDefaultButton() 3912 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 3913 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 3914 int CWnd::IsDialogMessageW(tagMSG *) 3915 long CBlobProperty::IsDirty() 3916 long COleLinkingDoc::XPersistFile::IsDirty() 3917 long COleControl::XPersistMemory::IsDirty() 3918 long COleControl::XPersistStorage::IsDirty() 3919 long COleServerDoc::XPersistStorage::IsDirty() 3920 long COleControl::XPersistStreamInit::IsDirty() 3921 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 3922 unsigned int CWnd::IsDlgButtonChecked(int)const 3923 int CControlBar::IsDockBar()const 3924 int CDockBar::IsDockBar()const 3925 int CFileFind::IsDots()const 3926 int CGopherFileFind::IsDots()const 3927 bool ATL::CSimpleStringT::IsEmpty()const 3928 bool ATL::CSimpleStringT::IsEmpty()const 3929 int CCheckListBox::IsEnabled(int) 3930 int CDHtmlDialog::IsExternalDispatchSafe() 3931 int CRecordset::IsFieldDirty(void *) 3932 int CRecordset::IsFieldNull(void *) 3933 int CRecordset::IsFieldNullable(void *) 3934 int CRecordset::IsFieldNullable(unsigned long)const 3935 int CRecordset::IsFieldStatusDirty(unsigned long)const 3936 int CRecordset::IsFieldStatusNull(unsigned long)const 3937 int CFieldExchange::IsFieldType(unsigned int *) 3938 int CControlBar::IsFloating()const 3939 int CFrameWnd::IsFrameWnd()const 3940 int CWnd::IsFrameWnd()const 3941 int IsHelpKey(tagMSG *) 3942 int CWinThread::IsIdleMessage(tagMSG *) 3943 int CCmdTarget::IsInvokeAllowed(long) 3944 int COleControl::IsInvokeAllowed(long) 3945 int CRecordset::IsJoin(wchar_t const *) 3946 int CObject::IsKindOf(CRuntimeconst *)const 3947 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 3948 int COccManager::IsLabelControl(CWnd *) 3949 int COleObjectFactory::IsLicenseValid() 3950 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 3951 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 3952 int COleControlSite::IsMatchingMnemonic(tagMSG *) 3953 int CHtmlEditDoc::IsModified() 3954 int COleClientItem::IsModified()const 3955 int COleControl::IsModified() 3956 int COlePropertyPage::IsModified() 3957 int CRichEditDoc::IsModified() 3958 int CRecordView::IsOnFirstRecord() 3959 int CRecordView::IsOnLastRecord() 3960 int CRecordset::IsOpen()const 3961 long COlePropertyPage::XPropertyPage::IsPageDirty() 3962 int CRecordset::IsParamStatusNull(unsigned long)const 3963 int CRecordset::IsRecordsetUpdatable() 3964 int CCmdTarget::IsResultExpected() 3965 int CRichEditView::IsRichEditFormat(unsigned short) 3966 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 3967 int CRichEditView::IsSelected(CObject const *)const 3968 int CView::IsSelected(CObject const *)const 3969 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 3970 int CObject::IsSerializable()const 3971 int COleMessageFilter::IsSignificantMessage(tagMSG *) 3972 int CDHtmlDialog::IsSinkedElement(IDispatch *) 3973 int CRecordset::IsSQLUpdatable(wchar_t const *) 3974 int COleControl::IsSubclassedControl() 3975 int CWnd::IsTopParentActive()const 3976 int CFrameWnd::IsTracking()const 3977 long CDocObjectServer::XOleObject::IsUpToDate() 3978 long COleControl::XOleObject::IsUpToDate() 3979 long COleServerDoc::XOleObject::IsUpToDate() 3980 long COleServerItem::XOleObject::IsUpToDate() 3981 int CControlBar::IsVisible()const 3982 int COleControlSite::IsWindowEnabled()const 3983 int CWnd::IsWindowEnabled()const 3984 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 3985 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 3986 void COleControl::KeyDown(unsigned short *) 3987 void COleControl::KeyUp(unsigned short *) 3988 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 3989 void CToolBar::Layout() 3990 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3991 ATL::CStringT > > ATL::CStringT > >::Left(int)const 3992 int CRichEditCtrl::LineIndex(int)const 3993 int CRichEditCtrl::LineLength(int)const 3994 void CRichEditCtrl::LineScroll(int,int) 3995 int CDC::LineTo(int,int) 3996 unsigned long CRichEditView::lMaxSize 3997 long CBlobProperty::Load(IStream *) 3998 int CDialogTemplate::Load(wchar_t const *) 3999 void COleControl::Load(wchar_t const *,CDataPathProperty &) 4000 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4001 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 4002 long COleControl::XPersistMemory::Load(void *,unsigned long) 4003 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4004 long COleControl::XPersistStorage::Load(IStorage *) 4005 long COleServerDoc::XPersistStorage::Load(IStorage *) 4006 long COleControl::XPersistStreamInit::Load(IStream *) 4007 int CFrameWnd::LoadAccelTable(wchar_t const *) 4008 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 4009 void CFrameWnd::LoadBarState(wchar_t const *) 4010 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 4011 int CToolBar::LoadBitmapW(wchar_t const *) 4012 void CRecordset::LoadFields() 4013 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4014 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4015 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4016 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4017 int CDHtmlDialog::LoadFromResource(unsigned int) 4018 int CDHtmlDialog::LoadFromResource(wchar_t const *) 4019 int CHtmlView::LoadFromResource(unsigned int) 4020 int CHtmlView::LoadFromResource(wchar_t const *) 4021 void COleDocument::LoadFromStorage() 4022 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 4023 void CDockState::LoadState(wchar_t const *) 4024 long COleControl::LoadState(IStream *) 4025 void CWinApp::LoadStdProfileSettings(unsigned int) 4026 int ATL::CStringT > >::LoadStringW(unsigned int) 4027 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 4028 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 4029 int ATL::CStringT > >::LoadStringW(unsigned int) 4030 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 4031 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 4032 int CWinApp::LoadSysPolicies() 4033 void CDocTemplate::LoadTemplate() 4034 void CMultiDocTemplate::LoadTemplate() 4035 int CToolBar::LoadToolBar(wchar_t const *) 4036 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4037 void COleSafeArray::Lock() 4038 int CSingleLock::Lock(unsigned long) 4039 int CSyncObject::Lock(unsigned long) 4040 void CTypeLibCache::Lock() 4041 wchar_t * ATL::CSimpleStringT::LockBuffer() 4042 char * ATL::CSimpleStringT::LockBuffer() 4043 wchar_t const * CEditView::LockBuffer()const 4044 long COleControlContainer::XOleContainer::LockContainer(int) 4045 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4046 void COleLinkingDoc::LockExternal(int,int) 4047 int COleControl::LockInPlaceActive(int) 4048 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4049 void CFile::LockRange(unsigned __int64,unsigned __int64) 4050 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 4051 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 4052 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 4053 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 4054 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 4055 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4056 long COleObjectFactory::XClassFactory::LockServer(int) 4057 int CMapPtrToPtr::Lookup(void *,void * &)const 4058 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4059 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 4060 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 4061 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 4062 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4063 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4064 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4065 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4066 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4067 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4068 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 4069 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 4070 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 4071 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4072 void CDC::LPtoDP(tagSIZE *)const 4073 void CDC::LPtoHIMETRIC(tagSIZE *)const 4074 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4075 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 4076 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4077 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 4078 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4079 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 4080 void CArchive::MapObject(CObject const *) 4081 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4082 int COleDialog::MapResult(unsigned int) 4083 long CPropertyPage::MapWizardResult(long) 4084 void CRecordset::MarkForAddNew() 4085 void CRecordset::MarkForUpdate() 4086 void CRichEditDoc::MarkItemsClear()const 4087 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 4088 int CFileFind::MatchesMask(unsigned long)const 4089 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4090 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4091 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 4092 void CComboBox::MeasureItem(tagMEASUREITEM*) 4093 void CListBox::MeasureItem(tagMEASUREITEM*) 4094 void CMenu::MeasureItem(tagMEASUREITEM*) 4095 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 4096 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 4097 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 4098 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 4099 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4100 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4101 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4102 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4103 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4104 void CPreviewDC::MirrorAttributes() 4105 void CPreviewDC::MirrorFont() 4106 void CPreviewDC::MirrorMappingMode(int) 4107 void CPreviewDC::MirrorViewportOrg() 4108 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4109 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4110 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4111 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4112 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4113 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4114 void CDockContext::Move(CPoint) 4115 void CRecordset::Move(long,unsigned short) 4116 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4117 CPoint CDC::MoveTo(int,int) 4118 void COleControlSite::MoveWindow(int,int,int,int) 4119 void CWnd::MoveWindow(int,int,int,int,int) 4120 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4121 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4122 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 4123 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4124 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 4125 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 4126 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 4127 unsigned int COleDropSource::nDragDelay 4128 unsigned int COleDropSource::nDragMinDist 4129 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4130 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 4131 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 4132 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 4133 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 4134 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 4135 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 4136 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 4137 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4138 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4139 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4140 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4141 unsigned int const CEditView::nMaxSize 4142 int CRectTracker::NormalizeHit(int)const 4143 void CDataBoundProperty::Notify() 4144 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4145 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4146 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4147 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4148 void COleServerDoc::NotifyRename(wchar_t const *) 4149 unsigned int COleDropTarget::nScrollDelay 4150 int COleDropTarget::nScrollInset 4151 unsigned int COleDropTarget::nScrollInterval 4152 void ATL::CStringT > >::OemToCharA() 4153 int CDC::OffsetClipRgn(int,int) 4154 int CDC::OffsetClipRgn(tagSIZE) 4155 CPoint CDC::OffsetViewportOrg(int,int) 4156 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4157 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4158 CPoint CDC::OffsetWindowOrg(int,int) 4159 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4160 void CAsyncSocket::OnAccept(int) 4161 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4162 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4163 void COleClientItem::OnActivate() 4164 void COleFrameHook::OnActivate(int) 4165 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4166 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4167 long COleControl::OnActivateInPlace(int,tagMSG *) 4168 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4169 long CWnd::OnActivateTopLevel(unsigned int,long) 4170 void COleClientItem::OnActivateUI() 4171 long CDocObjectServer::OnActivateView() 4172 void CFormView::OnActivateView(int,CView *,CView *) 4173 void CPreviewView::OnActivateView(int,CView *,CView *) 4174 void CRichEditView::OnActivateView(int,CView *,CView *) 4175 void CView::OnActivateView(int,CView *,CView *) 4176 long CToolTipCtrl::OnAddTool(unsigned int,long) 4177 void CConnectionPoint::OnAdvise(int) 4178 void COleControl::XEventConnPt::OnAdvise(int) 4179 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4180 void COleControl::OnAmbientPropertyChange(long) 4181 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4182 void COleControl::OnAppearanceChanged() 4183 void CWinApp::OnAppExit() 4184 int CPropertyPage::OnApply() 4185 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4186 void CDocObjectServer::OnApplyViewState(CArchive &) 4187 void COleControl::OnBackColorChanged() 4188 int CFrameWnd::OnBarCheck(unsigned int) 4189 int COleIPFrameWnd::OnBarCheck(unsigned int) 4190 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4191 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4192 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4193 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 4194 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 4195 int COleDropSource::OnBeginDrag(CWnd *) 4196 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4197 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4198 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4199 void COleControl::OnBorderStyleChanged() 4200 void CRichEditView::OnBullet() 4201 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4202 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 4203 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 4204 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 4205 void CCommonDialog::OnCancel() 4206 void CDialog::OnCancel() 4207 void CPropertyPage::OnCancel() 4208 void CRichEditView::OnCancelEditCntr() 4209 void COleControl::OnCancelMode() 4210 void CSplitterWnd::OnCancelMode() 4211 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4212 long COleControl::XFontNotification::OnChanged(long) 4213 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4214 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4215 void CRectTracker::OnChangedRect(CRect const &) 4216 void CDocument::OnChangedViewList() 4217 int COleClientItem::OnChangeItemPosition(CRect const &) 4218 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4219 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4220 void CRichEditView::OnCharBold() 4221 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4222 void CRichEditView::OnCharItalic() 4223 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4224 void CRichEditView::OnCharUnderline() 4225 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4226 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4227 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4228 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4229 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4230 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4231 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4232 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4233 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4234 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4235 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4236 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4237 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4238 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4239 void COleControl::OnClick(unsigned short) 4240 CEnumArray * CEnumArray::OnClone() 4241 CEnumArray * CEnumConnections::OnClone() 4242 void CAsyncSocket::OnClose(int) 4243 void CControlFrameWnd::OnClose() 4244 void CFrameWnd::OnClose() 4245 void CMiniDockFrameWnd::OnClose() 4246 void COleControl::OnClose(unsigned long) 4247 void COleServerDoc::OnClose(enum tagOLECLOSE) 4248 void CPropertySheet::OnClose() 4249 void COleClientItem::XAdviseSink::OnClose() 4250 void CDocObjectServer::OnCloseDocument() 4251 void CDocument::OnCloseDocument() 4252 void COleDocument::OnCloseDocument() 4253 void COleLinkingDoc::OnCloseDocument() 4254 void COleServerDoc::OnCloseDocument() 4255 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4256 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4257 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4258 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4259 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4260 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4261 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4262 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4263 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4264 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4265 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4266 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4267 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4268 void CRichEditView::OnColorDefault() 4269 int CColorDialog::OnColorOK() 4270 void CRichEditView::OnColorPick(unsigned long) 4271 int CFrameWnd::OnCommand(unsigned int,long) 4272 int CMDIFrameWnd::OnCommand(unsigned int,long) 4273 int COlePropertyPage::OnCommand(unsigned int,long) 4274 int CPropertySheet::OnCommand(unsigned int,long) 4275 int CSplitterWnd::OnCommand(unsigned int,long) 4276 int CWnd::OnCommand(unsigned int,long) 4277 long CDialog::OnCommandHelp(unsigned int,long) 4278 long CFrameWnd::OnCommandHelp(unsigned int,long) 4279 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4280 long CPropertySheet::OnCommandHelp(unsigned int,long) 4281 void CHtmlView::OnCommandStateChange(long,int) 4282 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4283 void CAsyncSocket::OnConnect(int) 4284 void CFrameWnd::OnContextHelp() 4285 int COleFrameHook::OnContextHelp(int) 4286 void COleIPFrameWnd::OnContextHelp() 4287 void CWinApp::OnContextHelp() 4288 long COleControlSite::XOleControlSite::OnControlInfoChanged() 4289 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 4290 int CControlBar::OnCreate(tagCREATESTRUCTW *) 4291 int CEditView::OnCreate(tagCREATESTRUCTW *) 4292 int CFormView::OnCreate(tagCREATESTRUCTW *) 4293 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 4294 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 4295 int COleControl::OnCreate(tagCREATESTRUCTW *) 4296 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 4297 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 4298 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 4299 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 4300 int CView::OnCreate(tagCREATESTRUCTW *) 4301 int CCmdTarget::OnCreateAggregates() 4302 int COleControl::OnCreateAggregates() 4303 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4304 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4305 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4306 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4307 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 4308 CCmdTarget * COleObjectFactory::OnCreateObject() 4309 CCmdTarget * COleTemplateServer::OnCreateObject() 4310 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4311 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4312 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4313 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4314 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4315 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4316 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4317 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4318 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4319 int CDocManager::OnDDECommand(wchar_t *) 4320 int CWinApp::OnDDECommand(wchar_t *) 4321 long CFrameWnd::OnDDEExecute(unsigned int,long) 4322 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4323 long CFrameWnd::OnDDETerminate(unsigned int,long) 4324 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 4325 void COleClientItem::OnDeactivate() 4326 void COleServerDoc::OnDeactivate() 4327 void COleClientItem::OnDeactivateAndUndo() 4328 void COleClientItem::OnDeactivateUI(int) 4329 void COleServerDoc::OnDeactivateUI(int) 4330 void CRichEditCntrItem::OnDeactivateUI(int) 4331 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4332 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4333 void CControlBar::OnDestroy() 4334 void CDHtmlDialog::OnDestroy() 4335 void CEditView::OnDestroy() 4336 void CFrameWnd::OnDestroy() 4337 void CHtmlView::OnDestroy() 4338 void CMDIChildWnd::OnDestroy() 4339 void CMDIFrameWnd::OnDestroy() 4340 void COleControl::OnDestroy() 4341 void COleIPFrameWnd::OnDestroy() 4342 void CRichEditView::OnDestroy() 4343 void CTabCtrl::OnDestroy() 4344 void CTreeCtrl::OnDestroy() 4345 void CTreeView::OnDestroy() 4346 void CView::OnDestroy() 4347 void CWnd::OnDestroy() 4348 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4349 void CRichEditView::OnDevModeChange(wchar_t *) 4350 void CWnd::OnDevModeChange(wchar_t *) 4351 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4352 void COleClientItem::OnDiscardUndoState() 4353 void CSplitterWnd::OnDisplayChange() 4354 long CWnd::OnDisplayChange(unsigned int,long) 4355 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4356 int COleFrameHook::OnDocActivate(int) 4357 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 4358 void CHtmlView::OnDocumentComplete(wchar_t const *) 4359 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4360 long CBrowserControlSite::OnDocWindowActivate(int) 4361 long CDHtmlDialog::OnDocWindowActivate(int) 4362 long CHtmlView::OnDocWindowActivate(int) 4363 void COleServerDoc::OnDocWindowActivate(int) 4364 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4365 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4366 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4367 void CDocObjectServerItem::OnDoVerb(long) 4368 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4369 void COleServerItem::OnDoVerb(long) 4370 void CHtmlView::OnDownloadBegin() 4371 void CHtmlView::OnDownloadComplete() 4372 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4373 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4374 void COleDropTarget::OnDragLeave(CWnd *) 4375 void CView::OnDragLeave() 4376 long CWnd::OnDragList(unsigned int,long) 4377 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4378 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4379 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4380 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4381 void CCtrlView::OnDraw(CDC *) 4382 void CFormView::OnDraw(CDC *) 4383 void CHtmlView::OnDraw(CDC *) 4384 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4385 void CPreviewView::OnDraw(CDC *) 4386 void CView::OnDraw(CDC *) 4387 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4388 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4389 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4390 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4391 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4392 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4393 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4394 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4395 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4396 void CFrameWnd::OnDropFiles(HDROP__ *) 4397 void CRichEditView::OnDropFiles(HDROP__ *) 4398 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4399 int CEditView::OnEditChange() 4400 void COleDocument::OnEditChangeIcon() 4401 void CEditView::OnEditClear() 4402 void CRichEditView::OnEditClear() 4403 void COleDocument::OnEditConvert() 4404 void CEditView::OnEditCopy() 4405 void CHtmlView::OnEditCopy() 4406 void CRichEditView::OnEditCopy() 4407 void CEditView::OnEditCut() 4408 void CHtmlView::OnEditCut() 4409 void CRichEditView::OnEditCut() 4410 void CEditView::OnEditFind() 4411 void CRichEditView::OnEditFind() 4412 void CEditView::OnEditFindReplace(int) 4413 void CRichEditView::OnEditFindReplace(int) 4414 void COleDocument::OnEditLinks() 4415 void CEditView::OnEditPaste() 4416 void CHtmlView::OnEditPaste() 4417 void CRichEditView::OnEditPaste() 4418 void CRichEditView::OnEditPasteSpecial() 4419 void CRichEditView::OnEditProperties() 4420 int COlePropertyPage::OnEditProperty(long) 4421 void CRichEditView::OnEditRedo() 4422 void CEditView::OnEditRepeat() 4423 void CRichEditView::OnEditRepeat() 4424 void CEditView::OnEditReplace() 4425 void CRichEditView::OnEditReplace() 4426 void CEditView::OnEditSelectAll() 4427 void CRichEditView::OnEditSelectAll() 4428 void CEditView::OnEditUndo() 4429 void CRichEditView::OnEditUndo() 4430 void CFrameWnd::OnEnable(int) 4431 void CToolTipCtrl::OnEnable(int) 4432 void COleControl::OnEnabledChanged() 4433 long CHtmlView::OnEnableModeless(int) 4434 void COleFrameHook::OnEnableModeless(int) 4435 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4436 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4437 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4438 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4439 void CFrameWnd::OnEndSession(int) 4440 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4441 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4442 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4443 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4444 int CFrameWnd::OnEraseBkgnd(CDC *) 4445 int COleControl::OnEraseBkgnd(CDC *) 4446 int COleResizeBar::OnEraseBkgnd(CDC *) 4447 int CPreviewView::OnEraseBkgnd(CDC *) 4448 int CReBar::OnEraseBkgnd(CDC *) 4449 int CToolBar::OnEraseBkgnd(CDC *) 4450 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4451 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4452 int COleControlSite::OnEvent(AFX_EVENT *) 4453 void COleControl::OnEventAdvise(int) 4454 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4455 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4456 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4457 void CDocument::OnFileClose() 4458 void CFileDialog::OnFileNameChange() 4459 int CFileDialog::OnFileNameOK() 4460 void CDocManager::OnFileNew() 4461 void CWinApp::OnFileNew() 4462 void CDocManager::OnFileOpen() 4463 void CWinApp::OnFileOpen() 4464 void CHtmlView::OnFilePrint() 4465 void CView::OnFilePrint() 4466 void CView::OnFilePrintPreview() 4467 void CWinApp::OnFilePrintSetup() 4468 void CDocument::OnFileSave() 4469 void CDocument::OnFileSaveAs() 4470 void COleServerDoc::OnFileSaveCopyAs() 4471 void CDocument::OnFileSendMail() 4472 void COleDocument::OnFileSendMail() 4473 void COleServerDoc::OnFileUpdate() 4474 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4475 void CCmdTarget::OnFinalRelease() 4476 void CDocument::OnFinalRelease() 4477 void COleControl::OnFinalRelease() 4478 void COlePropertyPage::OnFinalRelease() 4479 void COleServerItem::OnFinalRelease() 4480 void CWnd::OnFinalRelease() 4481 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 4482 void CEditView::OnFindNext(wchar_t const *,int,int) 4483 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 4484 long CEditView::OnFindReplaceCmd(unsigned int,long) 4485 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4486 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4487 long COleControlSite::XOleControlSite::OnFocus(int) 4488 void CFileDialog::OnFolderChange() 4489 void COleControl::OnFontChanged() 4490 void COleControl::OnForeColorChanged() 4491 void CRichEditView::OnFormatFont() 4492 void COleControl::OnFrameClose() 4493 long CBrowserControlSite::OnFrameWindowActivate(int) 4494 long CDHtmlDialog::OnFrameWindowActivate(int) 4495 long CHtmlView::OnFrameWindowActivate(int) 4496 void COleServerDoc::OnFrameWindowActivate(int) 4497 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4498 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4499 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4500 void COleControl::OnFreezeEvents(int) 4501 void CHtmlView::OnFullScreen(int) 4502 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4503 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4504 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4505 void COleClientItem::OnGetClipRect(CRect &) 4506 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4507 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4508 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4509 unsigned int COleControl::OnGetDlgCode() 4510 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4511 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 4512 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4513 long CHtmlView::OnGetExternal(IDispatch * *) 4514 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4515 HMENU__ * COleControl::OnGetInPlaceMenu() 4516 void COleClientItem::OnGetItemPosition(CRect &) 4517 void COleDocObjectItem::OnGetItemPosition(CRect &) 4518 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 4519 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 4520 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4521 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4522 long CWnd::OnGetObject(unsigned int,long) 4523 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4524 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4525 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4526 long CStatusBar::OnGetText(unsigned int,long) 4527 long CStatusBar::OnGetTextLength(unsigned int,long) 4528 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4529 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4530 unsigned long COleControl::OnGetViewStatus() 4531 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4532 void CReBar::OnHeightChange(tagNMHDR *,long *) 4533 void CFrameWnd::OnHelp() 4534 int COlePropertyPage::OnHelp(wchar_t const *) 4535 void CWinApp::OnHelp() 4536 void CWnd::OnHelp() 4537 void CWinApp::OnHelpFinder() 4538 void CWnd::OnHelpFinder() 4539 long CControlBar::OnHelpHitTest(unsigned int,long) 4540 long CDialog::OnHelpHitTest(unsigned int,long) 4541 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4542 void CWinApp::OnHelpIndex() 4543 void CWnd::OnHelpIndex() 4544 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4545 int CWnd::OnHelpInfo(tagHELPINFO *) 4546 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4547 void CWinApp::OnHelpUsing() 4548 void CWnd::OnHelpUsing() 4549 void CDocObjectServerItem::OnHide() 4550 long COleControl::OnHide() 4551 void COleServerItem::OnHide() 4552 void COleControl::OnHideToolBars() 4553 long CHtmlView::OnHideUI() 4554 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4555 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4556 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4557 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4558 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4559 void CDocTemplate::OnIdle() 4560 void CDocument::OnIdle() 4561 void COleDocument::OnIdle() 4562 int CWinApp::OnIdle(long) 4563 int CWinThread::OnIdle(long) 4564 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4565 void CFrameWnd::OnIdleUpdateCmdUI() 4566 void CMDIFrameWnd::OnIdleUpdateCmdUI() 4567 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 4568 void COleIPFrameWnd::OnIdleUpdateCmdUI() 4569 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4570 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4571 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4572 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4573 int CDHtmlDialog::OnInitDialog() 4574 int CDialog::OnInitDialog() 4575 int COlePropertiesDialog::OnInitDialog() 4576 int COlePropertyPage::OnInitDialog() 4577 int CPropertySheet::OnInitDialog() 4578 void CFileDialog::OnInitDone() 4579 int COleServerItem::OnInitFromData(COleDataObject *,int) 4580 void CControlBar::OnInitialUpdate() 4581 void CFormView::OnInitialUpdate() 4582 void COleDBRecordView::OnInitialUpdate() 4583 void CRecordView::OnInitialUpdate() 4584 void CRichEditView::OnInitialUpdate() 4585 void CView::OnInitialUpdate() 4586 void CFrameWnd::OnInitMenu(CMenu *) 4587 void COleFrameHook::OnInitMenu(CMenu *) 4588 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 4589 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 4590 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 4591 long COleClientItem::XOleIPSite::OnInPlaceActivate() 4592 long COleControlSite::XOleIPSite::OnInPlaceActivate() 4593 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 4594 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 4595 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 4596 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 4597 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4598 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 4599 void CRichEditView::OnInsertObject() 4600 void CSplitterWnd::OnInvertTracker(CRect const &) 4601 void CDockContext::OnKey(int,int) 4602 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 4603 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 4604 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 4605 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 4606 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 4607 void COleControl::OnKeyPressEvent(unsigned short) 4608 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 4609 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 4610 long CPropertySheet::OnKickIdle(unsigned int,long) 4611 int CPropertyPage::OnKillActive() 4612 void COleControl::OnKillFocus(CWnd *) 4613 long CCheckListBox::OnLBAddString(unsigned int,long) 4614 long CCheckListBox::OnLBFindString(unsigned int,long) 4615 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 4616 long CCheckListBox::OnLBGetItemData(unsigned int,long) 4617 long CCheckListBox::OnLBGetText(unsigned int,long) 4618 long CCheckListBox::OnLBInsertString(unsigned int,long) 4619 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 4620 long CCheckListBox::OnLBSelectString(unsigned int,long) 4621 long CCheckListBox::OnLBSetItemData(unsigned int,long) 4622 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 4623 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 4624 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 4625 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 4626 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 4627 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 4628 void CControlBar::OnLButtonDown(unsigned int,CPoint) 4629 void COleControl::OnLButtonDown(unsigned int,CPoint) 4630 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 4631 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 4632 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 4633 void COleControl::OnLButtonUp(unsigned int,CPoint) 4634 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 4635 void CAsyncMonikerFile::OnLowResource() 4636 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 4637 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 4638 void COleControl::OnMButtonDown(unsigned int,CPoint) 4639 void COleControl::OnMButtonUp(unsigned int,CPoint) 4640 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 4641 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 4642 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 4643 void CHtmlView::OnMenuBar(int) 4644 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 4645 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4646 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4647 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 4648 int COleMessageFilter::OnMessagePending(tagMSG const *) 4649 int CSocket::OnMessagePending() 4650 void COleControl::OnMnemonic(tagMSG *) 4651 long COleControl::XOleControl::OnMnemonic(tagMSG *) 4652 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4653 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4654 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4655 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4656 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 4657 void COleControl::OnMouseMove(unsigned int,CPoint) 4658 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 4659 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 4660 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 4661 void COleControl::OnMove(int,int) 4662 int COleDBRecordView::OnMove(unsigned int) 4663 int CRecordView::OnMove(unsigned int) 4664 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 4665 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 4666 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 4667 void CHtmlView::OnNavigateComplete2(wchar_t const *) 4668 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 4669 int CFrameWnd::OnNcActivate(int) 4670 int CMDIChildWnd::OnNcActivate(int) 4671 int CMiniFrameWnd::OnNcActivate(int) 4672 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4673 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4674 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4675 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4676 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 4677 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 4678 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 4679 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 4680 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 4681 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 4682 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 4683 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 4684 void CListCtrl::OnNcDestroy() 4685 void CListView::OnNcDestroy() 4686 void CWnd::OnNcDestroy() 4687 long CMiniFrameWnd::OnNcHitTest(CPoint) 4688 long COleControl::OnNcHitTest(CPoint) 4689 long CStatusBar::OnNcHitTest(CPoint) 4690 long CToolBar::OnNcHitTest(CPoint) 4691 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 4692 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 4693 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 4694 void CDockBar::OnNcPaint() 4695 void COleControl::OnNcPaint() 4696 void CReBar::OnNcPaint() 4697 void CStatusBar::OnNcPaint() 4698 void CToolBar::OnNcPaint() 4699 int CDocument::OnNewDocument() 4700 int CHtmlEditDoc::OnNewDocument() 4701 int COleDocument::OnNewDocument() 4702 int COleLinkingDoc::OnNewDocument() 4703 void COleServerDoc::OnNewEmbedding(IStorage *) 4704 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 4705 int CEnumArray::OnNext(void *) 4706 int CEnumConnections::OnNext(void *) 4707 int CEnumConnPoints::OnNext(void *) 4708 int CEnumFormatEtc::OnNext(void *) 4709 int CEnumOleVerb::OnNext(void *) 4710 int CEnumUnknown::OnNext(void *) 4711 void CPreviewView::OnNextPage() 4712 int CView::OnNextPaneCmd(unsigned int) 4713 int CFileDialog::OnNotify(unsigned int,long,long *) 4714 int CPropertyPage::OnNotify(unsigned int,long,long *) 4715 int CSplitterWnd::OnNotify(unsigned int,long,long *) 4716 int CWnd::OnNotify(unsigned int,long,long *) 4717 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 4718 long CWnd::OnNTCtlColor(unsigned int,long) 4719 void CPreviewView::OnNumPageChange() 4720 void COlePropertyPage::OnObjectsChanged() 4721 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 4722 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 4723 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 4724 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 4725 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 4726 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 4727 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 4728 void CCommonDialog::OnOK() 4729 void CDialog::OnOK() 4730 void CPropertyPage::OnOK() 4731 long COleControl::OnOpen(int,tagMSG *) 4732 void COleServerItem::OnOpen() 4733 int CDocument::OnOpenDocument(wchar_t const *) 4734 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 4735 int COleDocument::OnOpenDocument(wchar_t const *) 4736 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 4737 void COleServerDoc::OnOpenEmbedding(IStorage *) 4738 int CWinApp::OnOpenRecentFile(unsigned int) 4739 void CAsyncSocket::OnOutOfBandData(int) 4740 void CCommonDialog::OnPaint() 4741 void CControlBar::OnPaint() 4742 void CCtrlView::OnPaint() 4743 void CDialog::OnPaint() 4744 void CDockBar::OnPaint() 4745 void CHtmlEditView::OnPaint() 4746 void CHtmlView::OnPaint() 4747 void COleControl::OnPaint(CDC *) 4748 int COleControlContainer::OnPaint(CDC *) 4749 void COleResizeBar::OnPaint() 4750 void CReBar::OnPaint() 4751 void CSplitterWnd::OnPaint() 4752 void CStatusBar::OnPaint() 4753 void CToolBar::OnPaint() 4754 void CView::OnPaint() 4755 void CWnd::OnPaint() 4756 void CFrameWnd::OnPaletteChanged(CWnd *) 4757 void COleFrameHook::OnPaletteChanged(CWnd *) 4758 void CRichEditView::OnParaAlign(unsigned short) 4759 void CRichEditView::OnParaCenter() 4760 void CRichEditView::OnParaLeft() 4761 void CRichEditView::OnParaRight() 4762 void CWnd::OnParentNotify(unsigned int,long) 4763 int CRichEditView::OnPasteNativeObject(IStorage *) 4764 long CFrameWnd::OnPopMessageString(unsigned int,long) 4765 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 4766 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 4767 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 4768 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 4769 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 4770 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 4771 void CView::OnPrepareDC(CDC *,CPrintInfo *) 4772 int CEditView::OnPreparePrinting(CPrintInfo *) 4773 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 4774 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 4775 int CView::OnPreparePrinting(CPrintInfo *) 4776 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 4777 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 4778 void CPreviewView::OnPreviewClose() 4779 void CPreviewView::OnPreviewPrint() 4780 void CPreviewView::OnPrevPage() 4781 void CEditView::OnPrint(CDC *,CPrintInfo *) 4782 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 4783 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 4784 void CView::OnPrint(CDC *,CPrintInfo *) 4785 void CRichEditView::OnPrinterChanged(CDC const &) 4786 void CPrintDialog::OnPrintSetup() 4787 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 4788 void CHtmlView::OnProgressChange(long,long) 4789 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 4790 void CHtmlView::OnPropertyChange(wchar_t const *) 4791 int CPropertyPage::OnQueryCancel() 4792 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 4793 int CFrameWnd::OnQueryEndSession() 4794 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 4795 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 4796 int CFrameWnd::OnQueryNewPalette() 4797 int COleFrameHook::OnQueryNewPalette() 4798 int COleServerItem::OnQueryUpdateItems() 4799 void CHtmlView::OnQuit() 4800 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 4801 void COleControl::OnRButtonDown(unsigned int,CPoint) 4802 void COleControl::OnRButtonUp(unsigned int,CPoint) 4803 int COleServerDoc::OnReactivateAndUndo() 4804 void COleFrameHook::OnRecalcLayout() 4805 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 4806 void CReBar::OnRecalcParent() 4807 void CAsyncSocket::OnReceive(int) 4808 void COleControl::OnReflectorDestroyed() 4809 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 4810 void COleClientItem::OnRemoveMenus(CMenu *) 4811 void COleDocObjectItem::OnRemoveMenus(CMenu *) 4812 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 4813 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4814 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4815 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4816 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4817 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 4818 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4819 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4820 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 4821 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 4822 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 4823 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4824 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4825 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 4826 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 4827 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 4828 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 4829 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 4830 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 4831 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 4832 long COleControl::XFontNotification::OnRequestEdit(long) 4833 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 4834 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 4835 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4836 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 4837 void CEnumArray::OnReset() 4838 void CPropertyPage::OnReset() 4839 void COleControl::OnResetState() 4840 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4841 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 4842 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 4843 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 4844 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 4845 void COleClientItem::XAdviseSink::OnSave() 4846 int CDocument::OnSaveDocument(wchar_t const *) 4847 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 4848 int COleDocument::OnSaveDocument(wchar_t const *) 4849 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 4850 int COleServerDoc::OnSaveDocument(wchar_t const *) 4851 void COleServerDoc::OnSaveEmbedding(IStorage *) 4852 void COleServerItem::OnSaveEmbedding(IStorage *) 4853 void CDocObjectServer::OnSaveViewState(CArchive &) 4854 int CScrollView::OnScroll(unsigned int,unsigned int,int) 4855 int CView::OnScroll(unsigned int,unsigned int,int) 4856 int COleClientItem::OnScrollBy(CSize) 4857 int CScrollView::OnScrollBy(CSize,int) 4858 int CView::OnScrollBy(CSize,int) 4859 void CRichEditView::OnSelChange(tagNMHDR *,long *) 4860 void CAsyncSocket::OnSend(int) 4861 int CPropertyPage::OnSetActive() 4862 long CToolBar::OnSetBitmapSize(unsigned int,long) 4863 long CToolBar::OnSetButtonSize(unsigned int,long) 4864 void COleControl::OnSetClientSite() 4865 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 4866 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4867 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 4868 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 4869 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 4870 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 4871 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4872 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4873 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4874 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4875 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 4876 long CPropertySheet::OnSetDefID(unsigned int,long) 4877 int COleControl::OnSetExtent(tagSIZE *) 4878 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 4879 void CFormView::OnSetFocus(CWnd *) 4880 void CFrameWnd::OnSetFocus(CWnd *) 4881 void COleControl::OnSetFocus(CWnd *) 4882 void CWnd::OnSetFocus(CWnd *) 4883 long CCheckListBox::OnSetFont(unsigned int,long) 4884 void CDialog::OnSetFont(CFont *) 4885 long CEditView::OnSetFont(unsigned int,long) 4886 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 4887 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 4888 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 4889 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 4890 long CFrameWnd::OnSetMessageString(unsigned int,long) 4891 long COleControl::OnSetMessageString(unsigned int,long) 4892 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 4893 long CStatusBar::OnSetMinHeight(unsigned int,long) 4894 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 4895 void CDatabase::OnSetOptions(void *) 4896 void CRecordset::OnSetOptions(void *) 4897 void COlePropertyPage::OnSetPageSite() 4898 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 4899 long CToolBar::OnSetSizeHelper(CSize &,long) 4900 long COleControl::OnSetText(unsigned int,long) 4901 long CStatusBar::OnSetText(unsigned int,long) 4902 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 4903 void CRecordset::OnSetUpdateOptions(void *) 4904 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 4905 void CDocObjectServerItem::OnShow() 4906 void COleServerItem::OnShow() 4907 long CReBar::OnShowBand(unsigned int,long) 4908 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 4909 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 4910 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 4911 void COleServerDoc::OnShowDocument(int) 4912 void COleClientItem::OnShowItem() 4913 void COleControl::OnShowToolBars() 4914 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 4915 void COleDocument::OnShowViews(int) 4916 void COleLinkingDoc::OnShowViews(int) 4917 void COleControl::OnShowWindow(int,unsigned int) 4918 long COleClientItem::XOleClientSite::OnShowWindow(int) 4919 long COleControlSite::XOleClientSite::OnShowWindow(int) 4920 void CDHtmlDialog::OnSize(unsigned int,int,int) 4921 void CFrameWnd::OnSize(unsigned int,int,int) 4922 void CHtmlView::OnSize(unsigned int,int,int) 4923 void CMDIChildWnd::OnSize(unsigned int,int,int) 4924 void CMDIFrameWnd::OnSize(unsigned int,int,int) 4925 void COleControl::OnSize(unsigned int,int,int) 4926 void COleIPFrameWnd::OnSize(unsigned int,int,int) 4927 void COleResizeBar::OnSize(unsigned int,int,int) 4928 void CPreviewView::OnSize(unsigned int,int,int) 4929 void CScrollView::OnSize(unsigned int,int,int) 4930 void CSplitterWnd::OnSize(unsigned int,int,int) 4931 void CStatusBar::OnSize(unsigned int,int,int) 4932 long CControlBar::OnSizeParent(unsigned int,long) 4933 long CDockBar::OnSizeParent(unsigned int,long) 4934 long COleResizeBar::OnSizeParent(unsigned int,long) 4935 int CEnumArray::OnSkip() 4936 long CSocketWnd::OnSocketDead(unsigned int,long) 4937 long CSocketWnd::OnSocketNotify(unsigned int,long) 4938 int CView::OnSplitCmd(unsigned int) 4939 void CAsyncMonikerFile::OnStartBinding() 4940 void CHtmlView::OnStatusBar(int) 4941 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 4942 void CHtmlView::OnStatusTextChange(wchar_t const *) 4943 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 4944 void CToolBar::OnSysColorChange() 4945 void CWnd::OnSysColorChange() 4946 void CFrameWnd::OnSysCommand(unsigned int,long) 4947 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 4948 void CPropertySheet::OnSysCommand(unsigned int,long) 4949 void CSplitterWnd::OnSysCommand(unsigned int,long) 4950 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 4951 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 4952 void COleControl::OnTextChanged() 4953 void CEditView::OnTextNotFound(wchar_t const *) 4954 void CRichEditView::OnTextNotFound(wchar_t const *) 4955 void CHtmlView::OnTheaterMode(int) 4956 void CControlBar::OnTimer(unsigned int) 4957 void CHtmlView::OnTitleChange(wchar_t const *) 4958 void CHtmlView::OnToolBar(int) 4959 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4960 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4961 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 4962 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4963 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 4964 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 4965 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 4966 void CFileDialog::OnTypeChange() 4967 void COleControlContainer::OnUIActivate(COleControlSite *) 4968 long COleClientItem::XOleIPSite::OnUIActivate() 4969 long COleControlSite::XOleIPSite::OnUIActivate() 4970 void COleControlContainer::OnUIDeactivate(COleControlSite *) 4971 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 4972 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 4973 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 4974 void CView::OnUpdate(CView *,long,CObject *) 4975 void CRichEditView::OnUpdateBullet(CCmdUI *) 4976 void CRichEditView::OnUpdateCharBold(CCmdUI *) 4977 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 4978 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 4979 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 4980 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 4981 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 4982 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 4983 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 4984 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 4985 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 4986 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 4987 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4988 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 4989 int COleServerDoc::OnUpdateDocument() 4990 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 4991 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 4992 void CHtmlView::OnUpdateEditCut(CCmdUI *) 4993 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 4994 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 4995 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 4996 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 4997 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 4998 void CEditView::OnUpdateEditUndo(CCmdUI *) 4999 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5000 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5001 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5002 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5003 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5004 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5005 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5006 void CFrameWnd::OnUpdateFrameTitle(int) 5007 void CMDIChildWnd::OnUpdateFrameTitle(int) 5008 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5009 int COleClientItem::OnUpdateFrameTitle() 5010 int COleFrameHook::OnUpdateFrameTitle() 5011 void COleServerItem::OnUpdateItems() 5012 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5013 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5014 void CEditView::OnUpdateNeedClip(CCmdUI *) 5015 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5016 void CEditView::OnUpdateNeedFind(CCmdUI *) 5017 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5018 void CEditView::OnUpdateNeedSel(CCmdUI *) 5019 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5020 void CEditView::OnUpdateNeedText(CCmdUI *) 5021 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5022 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5023 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5024 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5025 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5026 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5027 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5028 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5029 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5030 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5031 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5032 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5033 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5034 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 5035 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5036 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 5037 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5038 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 5039 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5040 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 5041 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5042 void CView::OnUpdateSplitCmd(CCmdUI *) 5043 long CHtmlView::OnUpdateUI() 5044 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5045 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5046 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5047 void CHtmlView::OnVisible(int) 5048 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5049 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5050 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5051 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5052 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5053 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5054 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5055 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5056 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5057 void CMDIFrameWnd::OnWindowNew() 5058 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5059 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5060 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5061 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5062 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5063 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5064 long CPropertyPage::OnWizardBack() 5065 int CPropertyPage::OnWizardFinish() 5066 long CPropertyPage::OnWizardNext() 5067 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5068 void CPreviewView::OnZoomIn() 5069 void CPreviewView::OnZoomOut() 5070 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5071 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5072 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5073 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5074 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 5075 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 5076 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 5077 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 5078 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 5079 int CDataPathProperty::Open(CFileException *) 5080 int CDataPathProperty::Open(COleControl *,CFileException *) 5081 int CDataPathProperty::Open(wchar_t const *,CFileException *) 5082 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 5083 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 5084 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 5085 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5086 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5087 int CMonikerFile::Open(IMoniker *,CFileException *) 5088 int CMonikerFile::Open(wchar_t const *,CFileException *) 5089 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 5090 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 5091 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 5092 long CDocObjectServer::XOleDocumentView::Open() 5093 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 5094 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 5095 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 5096 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 5097 int CDatabase::OpenEx(wchar_t const *,unsigned long) 5098 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 5099 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 5100 long COleUILinkInfo::OpenLinkSource(unsigned long) 5101 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 5102 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 5103 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 5104 int CHtmlEditDoc::OpenURL(wchar_t const *) 5105 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 5106 int CFileException::OsErrorToException(long) 5107 void CDumpContext::OutputString(wchar_t const *) 5108 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5109 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5110 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5111 int CWnd::PaintWindowlessControls(CDC *) 5112 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5113 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5114 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 5115 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5116 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5117 void CCommandLineInfo::ParseLast(int) 5118 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 5119 void CCommandLineInfo::ParseParam(char const *,int,int) 5120 void CCommandLineInfo::ParseParamFlag(char const *) 5121 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 5122 void CCommandLineInfo::ParseParamNotFlag(char const *) 5123 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5124 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 5125 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 5126 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 5127 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 5128 int CDC::PlayMetaFile(HMETAFILE__ *) 5129 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 5130 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 5131 int CDC::PolyBezierTo(tagPOINT const *,int) 5132 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5133 int CDC::PolylineTo(tagPOINT const *,int) 5134 void CPreviewView::PositionPage(unsigned int) 5135 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5136 int CMonikerFile::PostBindToStream(CFileException *) 5137 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5138 void CDialog::PostModal() 5139 void CPrintDialogEx::PostModal() 5140 void COleControl::PostModalDialog(HWND__ *) 5141 void CControlBar::PostNcDestroy() 5142 void CControlFrameWnd::PostNcDestroy() 5143 void CFindReplaceDialog::PostNcDestroy() 5144 void CFrameWnd::PostNcDestroy() 5145 void COleCntrFrameWnd::PostNcDestroy() 5146 void CReflectorWnd::PostNcDestroy() 5147 void CView::PostNcDestroy() 5148 void CWnd::PostNcDestroy() 5149 void ATL::CSimpleStringT::Preallocate(int) 5150 void ATL::CSimpleStringT::Preallocate(int) 5151 void CRecordset::PreBindFields() 5152 void CDocument::PreCloseFrame(CFrameWnd *) 5153 void COleDocument::PreCloseFrame(CFrameWnd *) 5154 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5155 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5156 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5157 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 5158 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5159 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 5160 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 5161 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5162 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 5163 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 5164 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 5165 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5166 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5167 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 5168 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 5169 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 5170 int CView::PreCreateWindow(tagCREATESTRUCTW &) 5171 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 5172 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5173 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5174 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 5175 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 5176 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 5177 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 5178 void CDialog::PreInitDialog() 5179 void COleChangeSourceDialog::PreInitDialog() 5180 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5181 HWND__ * CDialog::PreModal() 5182 HWND__ * CPrintDialogEx::PreModal() 5183 void COleControl::PreModalDialog(HWND__ *) 5184 void CRecordset::PrepareAndExecute() 5185 HWND__ * CDataExchange::PrepareCtrl(int) 5186 HWND__ * CDataExchange::PrepareEditCtrl(int) 5187 void CWnd::PrepareForHelp() 5188 COleControlSite * CDataExchange::PrepareOleCtrl(int) 5189 void CRecordset::PrepareUpdateHstmt() 5190 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 5191 char * ATL::CSimpleStringT::PrepareWrite(int) 5192 void ATL::CSimpleStringT::PrepareWrite2(int) 5193 void ATL::CSimpleStringT::PrepareWrite2(int) 5194 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 5195 void CDragListBox::PreSubclassWindow() 5196 void CWnd::PreSubclassWindow() 5197 int CWnd::PreTranslateInput(tagMSG *) 5198 int CControlBar::PreTranslateMessage(tagMSG *) 5199 int CDialog::PreTranslateMessage(tagMSG *) 5200 int CFormView::PreTranslateMessage(tagMSG *) 5201 int CFrameWnd::PreTranslateMessage(tagMSG *) 5202 int CHtmlView::PreTranslateMessage(tagMSG *) 5203 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5204 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5205 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5206 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5207 int CPropertyPage::PreTranslateMessage(tagMSG *) 5208 int CPropertySheet::PreTranslateMessage(tagMSG *) 5209 int CWinThread::PreTranslateMessage(tagMSG *) 5210 int CWnd::PreTranslateMessage(tagMSG *) 5211 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5212 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5213 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5214 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5215 long CRichEditView::PrintPage(CDC *,long,long) 5216 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5217 long COleException::Process(CException const *) 5218 int CSocket::ProcessAuxQueue() 5219 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5220 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5221 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5222 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5223 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5224 void COleSafeArray::PtrOfIndex(long *,void * *) 5225 int CMetaFileDC::PtVisible(int,int)const 5226 int CWinThread::PumpMessage() 5227 int CSocket::PumpMessages(unsigned int) 5228 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 5229 long CWnd::put_accName(tagVARIANT,wchar_t *) 5230 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5231 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5232 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5233 void COleSafeArray::PutElement(long *,void *) 5234 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 5235 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 5236 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 5237 int PX_Bool(CPropExchange *,wchar_t const *,int &) 5238 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 5239 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 5240 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5241 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 5242 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 5243 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 5244 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 5245 int PX_Double(CPropExchange *,wchar_t const *,double &) 5246 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 5247 int PX_Float(CPropExchange *,wchar_t const *,float &) 5248 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 5249 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5250 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 5251 int PX_Long(CPropExchange *,wchar_t const *,long &) 5252 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 5253 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 5254 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 5255 int PX_Short(CPropExchange *,wchar_t const *,short &) 5256 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 5257 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 5258 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 5259 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5260 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 5261 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5262 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 5263 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 5264 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5265 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5266 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5267 IUnknown * CCmdTarget::QueryAggregates(void const *) 5268 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5269 long COleDropSource::QueryContinueDrag(int,unsigned long) 5270 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5271 void * COleControl::QueryDefHandler(_GUID const &) 5272 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5273 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5274 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5275 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5276 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5277 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5278 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5279 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5280 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5281 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5282 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5283 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5284 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5285 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5286 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5287 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5288 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5289 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5290 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5291 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5292 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5293 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5294 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5295 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5296 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 5297 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5298 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5299 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 5300 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5301 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5302 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 5303 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5304 long CPropertyPage::QuerySiblings(unsigned int,long) 5305 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5306 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5307 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5308 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5309 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5310 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 5311 int COleControlSite::QuickActivate() 5312 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5313 int COleClientItem::ReactivateAndUndo() 5314 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 5315 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 5316 unsigned int CArchive::Read(void *,unsigned int) 5317 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5318 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5319 unsigned int CFile::Read(void *,unsigned int) 5320 int CImageList::Read(CArchive *) 5321 unsigned int CInternetFile::Read(void *,unsigned int) 5322 unsigned int CMemFile::Read(void *,unsigned int) 5323 unsigned int COleStreamFile::Read(void *,unsigned int) 5324 unsigned int CSocketFile::Read(void *,unsigned int) 5325 unsigned int CStdioFile::Read(void *,unsigned int) 5326 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5327 unsigned long CArchive::ReadCount() 5328 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5329 int CProperty::ReadFromStream(IStream *) 5330 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5331 int CPropertySet::ReadFromStream(IStream *) 5332 void COleClientItem::ReadItem(CArchive &) 5333 void COleClientItem::ReadItemCompound(CArchive &) 5334 void COleClientItem::ReadItemFlat(CArchive &) 5335 void CRecentFileList::ReadList() 5336 int CPropertySection::ReadNameDictFromStream(IStream *) 5337 CObject * CArchive::ReadObject(CRuntimeconst *) 5338 int CArchive::ReadString(ATL::CStringT > > &) 5339 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 5340 int CInternetFile::ReadString(ATL::CStringT > > &) 5341 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 5342 int CStdioFile::ReadString(ATL::CStringT > > &) 5343 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 5344 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5345 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5346 void ATL::CSimpleStringT::Reallocate(int) 5347 void ATL::CSimpleStringT::Reallocate(int) 5348 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5349 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5350 void CRecordset::RebindParams(void *) 5351 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5352 void CFrameWnd::RecalcLayout(int) 5353 void CMiniDockFrameWnd::RecalcLayout(int) 5354 void COleCntrFrameWnd::RecalcLayout(int) 5355 void COleDocIPFrameWnd::RecalcLayout(int) 5356 void COleIPFrameWnd::RecalcLayout(int) 5357 void CSplitterWnd::RecalcLayout() 5358 int CAsyncSocket::Receive(void *,int,int) 5359 int CSocket::Receive(void *,int,int) 5360 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5361 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5362 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5363 void COleControl::RecreateControlWindow() 5364 CRect const CFrameWnd::rectDefault 5365 int CMetaFileDC::RectVisible(tagRECT const *)const 5366 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5367 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5368 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5369 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5370 int CWnd::ReflectLastMsg(HWND__ *,long *) 5371 void COleControl::Refresh() 5372 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5373 int COleDropTarget::Register(CWnd *) 5374 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 5375 int COleMessageFilter::Register() 5376 int COleObjectFactory::Register() 5377 int COleTemplateServer::Register() 5378 int CWinApp::Register() 5379 int COleObjectFactory::RegisterAll() 5380 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 5381 void CDocManager::RegisterShellFileTypes(int) 5382 void CWinApp::RegisterShellFileTypes(int) 5383 unsigned long CArchiveStream::Release() 5384 unsigned long CBlobProperty::Release() 5385 unsigned long CBrowserControlSite::Release() 5386 unsigned long CDHtmlControlSink::Release() 5387 unsigned long CDHtmlElementEventSink::Release() 5388 unsigned long CDHtmlEventSink::Release() 5389 unsigned long CInnerUnknown::Release() 5390 void COleClientItem::Release(enum tagOLECLOSE) 5391 unsigned long COleConnPtContainer::Release() 5392 void COleDataObject::Release() 5393 unsigned long COleDispatchImpl::Release() 5394 void COleDocObjectItem::Release(enum tagOLECLOSE) 5395 unsigned long COleUILinkInfo::Release() 5396 unsigned long CPrintDialogEx::Release() 5397 void CDC::ReleaseAttribDC() 5398 void ATL::CSimpleStringT::ReleaseBuffer(int) 5399 void ATL::CSimpleStringT::ReleaseBuffer(int) 5400 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5401 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5402 void COleControl::ReleaseCaches() 5403 int COleControl::ReleaseCapture() 5404 int COleControl::ReleaseDC(CDC *) 5405 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5406 void COleDispatchDriver::ReleaseDispatch() 5407 void CDocObjectServer::ReleaseDocSite() 5408 void CDocument::ReleaseFile(CFile *,int) 5409 void CFontHolder::ReleaseFont() 5410 void CDC::ReleaseOutputDC() 5411 void CMetaFileDC::ReleaseOutputDC() 5412 void CPreviewDC::ReleaseOutputDC() 5413 int COleClientItem::Reload() 5414 int ATL::CStringT > >::Remove(wchar_t) 5415 int ATL::CStringT > >::Remove(char) 5416 void CFile::Remove(wchar_t const *) 5417 int CFtpConnection::Remove(wchar_t const *) 5418 void CPropertySection::Remove(unsigned long) 5419 void CPropertySet::Remove(_GUID) 5420 void CPropertySet::Remove(_GUID,unsigned long) 5421 void CRecentFileList::Remove(int) 5422 int CSimpleList::Remove(void *) 5423 void CMapPtrToPtr::RemoveAll() 5424 void CMapPtrToWord::RemoveAll() 5425 void CMapStringToOb::RemoveAll() 5426 void CMapStringToPtr::RemoveAll() 5427 void CMapStringToString::RemoveAll() 5428 void CMapWordToOb::RemoveAll() 5429 void CMapWordToPtr::RemoveAll() 5430 void CObList::RemoveAll() 5431 void CPropertySection::RemoveAll() 5432 void CPropertySet::RemoveAll() 5433 void CPtrList::RemoveAll() 5434 void CStringList::RemoveAll() 5435 void CTypeLibCacheMap::RemoveAll(void *) 5436 void CByteArray::RemoveAt(int,int) 5437 void CDWordArray::RemoveAt(int,int) 5438 void CObArray::RemoveAt(int,int) 5439 void CObList::RemoveAt(__POSITION *) 5440 void CPtrArray::RemoveAt(int,int) 5441 void CPtrList::RemoveAt(__POSITION *) 5442 void CStringArray::RemoveAt(int,int) 5443 void CStringList::RemoveAt(__POSITION *) 5444 void CUIntArray::RemoveAt(int,int) 5445 void CWordArray::RemoveAt(int,int) 5446 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5447 void CFrameWnd::RemoveControlBar(CControlBar *) 5448 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 5449 void CDocTemplate::RemoveDocument(CDocument *) 5450 void CMultiDocTemplate::RemoveDocument(CDocument *) 5451 void CSingleDocTemplate::RemoveDocument(CDocument *) 5452 void COleControl::RemoveFrameLevelUI() 5453 void CFrameWnd::RemoveFrameWnd() 5454 CObject * CObList::RemoveHead() 5455 void * CPtrList::RemoveHead() 5456 ATL::CStringT > > CStringList::RemoveHead() 5457 void CListCtrl::RemoveImageList(int) 5458 void CListView::RemoveImageList(int) 5459 void CTreeCtrl::RemoveImageList(int) 5460 void CTreeView::RemoveImageList(int) 5461 void COleDocument::RemoveItem(CDocItem *) 5462 int CMapPtrToPtr::RemoveKey(void *) 5463 int CMapPtrToWord::RemoveKey(void *) 5464 int CMapStringToOb::RemoveKey(wchar_t const *) 5465 int CMapStringToPtr::RemoveKey(wchar_t const *) 5466 int CMapStringToString::RemoveKey(wchar_t const *) 5467 int CMapWordToOb::RemoveKey(unsigned short) 5468 int CMapWordToPtr::RemoveKey(unsigned short) 5469 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5470 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5471 void CPropertySheet::RemovePage(int) 5472 void CPropertySheet::RemovePage(CPropertyPage *) 5473 void CDockBar::RemovePlaceHolder(CControlBar *) 5474 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5475 void CDataBoundProperty::RemoveSource() 5476 CObject * CObList::RemoveTail() 5477 void * CPtrList::RemoveTail() 5478 ATL::CStringT > > CStringList::RemoveTail() 5479 void CDocument::RemoveView(CView *) 5480 void CFile::Rename(wchar_t const *,wchar_t const *) 5481 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 5482 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5483 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5484 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 5485 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 5486 int ATL::CStringT > >::Replace(char,char) 5487 int ATL::CStringT > >::Replace(char const *,char const *) 5488 void CDatabase::ReplaceBrackets(wchar_t *) 5489 int CException::ReportError(unsigned int,unsigned int) 5490 int COleClientItem::ReportError(long)const 5491 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5492 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5493 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5494 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5495 int CRecordset::Requery() 5496 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5497 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5498 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5499 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 5500 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 5501 void COleServerDoc::RequestPositionChange(tagRECT const *) 5502 long COleControlSite::XOleIPSite::RequestUIActivate() 5503 long CEnumArray::XEnumVOID::Reset() 5504 void CRecordset::ResetCursor() 5505 void CCachedDataPathProperty::ResetData() 5506 void CDataPathProperty::ResetData() 5507 void COleControl::ResetStockProps() 5508 void CControlBar::ResetTimer(unsigned int,unsigned int) 5509 void COleControl::ResetVersion(unsigned long) 5510 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5511 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5512 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5513 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5514 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5515 void COleControl::ResizeFrameWindow(int,int) 5516 void COleSafeArray::ResizeOneDim(unsigned long) 5517 void COleControl::ResizeOpenControl(int,int) 5518 void CScrollView::ResizeParentToFit(int) 5519 int CDC::RestoreDC(int) 5520 int CPreviewDC::RestoreDC(int) 5521 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 5522 void CCmdTarget::RestoreWaitCursor() 5523 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5524 int ATL::CStringT > >::ReverseFind(wchar_t)const 5525 int ATL::CStringT > >::ReverseFind(char)const 5526 long CArchiveStream::Revert() 5527 void COleDropTarget::Revoke() 5528 void COleLinkingDoc::Revoke() 5529 void COleMessageFilter::Revoke() 5530 void COleObjectFactory::Revoke() 5531 void COleObjectFactory::RevokeAll() 5532 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 5533 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 5534 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 5535 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 5536 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5537 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 5538 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 5539 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 5540 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 5541 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 5542 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 5543 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 5544 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 5545 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 5546 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5547 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 5548 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 5549 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 5550 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 5551 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 5552 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 5553 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 5554 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 5555 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 5556 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 5557 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 5558 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5559 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5560 int CDatabase::Rollback() 5561 void COleClientItem::Run() 5562 int CWinApp::Run() 5563 int CWinThread::Run() 5564 int CWinApp::RunAutomated() 5565 int CWinApp::RunEmbedded() 5566 int CWnd::RunModalLoop(unsigned long) 5567 int COleControlSite::SafeSetProperty(long,unsigned short,...) 5568 int CEditView::SameAsSelected(wchar_t const *,int) 5569 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 5570 long CBlobProperty::Save(IStream *,int) 5571 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 5572 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 5573 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 5574 long COleControl::XPersistStorage::Save(IStorage *,int) 5575 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 5576 long COleControl::XPersistStreamInit::Save(IStream *,int) 5577 int CDocManager::SaveAllModified() 5578 int CDocTemplate::SaveAllModified() 5579 int CWinApp::SaveAllModified() 5580 void CFrameWnd::SaveBarState(wchar_t const *)const 5581 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 5582 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 5583 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 5584 int CDC::SaveDC() 5585 int CPreviewDC::SaveDC() 5586 void COleServerDoc::SaveEmbedding() 5587 int CFormView::SaveFocusControl() 5588 int CDocument::SaveModified() 5589 int COleDocument::SaveModified() 5590 int COleServerDoc::SaveModified() 5591 int COleServerDoc::SaveModifiedPrompt() 5592 long COleClientItem::XOleClientSite::SaveObject() 5593 long COleControlSite::XOleClientSite::SaveObject() 5594 int CControlBarInfo::SaveState(wchar_t const *,int) 5595 void CDockState::SaveState(wchar_t const *) 5596 long COleControl::SaveState(IStream *) 5597 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 5598 void CWinApp::SaveStdProfileSettings() 5599 void COleDocument::SaveToStorage(CObject *) 5600 void COleLinkingDoc::SaveToStorage(CObject *) 5601 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 5602 void CDockState::ScalePoint(CPoint &) 5603 void CDockState::ScaleRectPos(CRect &) 5604 CSize CDC::ScaleViewportExt(int,int,int,int) 5605 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 5606 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 5607 CSize CDC::ScaleWindowExt(int,int,int,int) 5608 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 5609 void CWnd::ScreenToClient(tagRECT *)const 5610 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 5611 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 5612 void COleControlContainer::ScrollChildren(int,int) 5613 int COleServerDoc::ScrollContainerBy(CSize) 5614 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 5615 void CScrollView::ScrollToDevicePosition(tagPOINT) 5616 void CScrollView::ScrollToPosition(tagPOINT) 5617 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5618 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 5619 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 5620 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 5621 unsigned __int64 CFile::Seek(__int64,unsigned int) 5622 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 5623 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 5624 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 5625 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 5626 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 5627 CFont * CFontHolder::Select(CDC *,long,long) 5628 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 5629 int CDC::SelectClipPath(int) 5630 int CDC::SelectClipRgn(CRgn *) 5631 int CDC::SelectClipRgn(CRgn *,int) 5632 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 5633 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 5634 long CPrintDialogEx::SelectionChange() 5635 int CDC::SelectObject(CRgn *) 5636 CBrush * CDC::SelectObject(CBrush *) 5637 CPen * CDC::SelectObject(CPen *) 5638 CFont * CDC::SelectObject(CFont *) 5639 CFont * CPreviewDC::SelectObject(CFont *) 5640 CPalette * CDC::SelectPalette(CPalette *,int) 5641 void CWinApp::SelectPrinter(void *,void *,int) 5642 CFont * COleControl::SelectStockFont(CDC *) 5643 CGdiObject * CDC::SelectStockObject(int) 5644 CGdiObject * CPreviewDC::SelectStockObject(int) 5645 int CAsyncSocket::Send(void const *,int,int) 5646 int CSocket::Send(void const *,int,int) 5647 void COleControl::SendAdvise(unsigned int) 5648 int CWnd::SendChildNotifyLastMsg(long *) 5649 int CSocket::SendChunk(void const *,int,int) 5650 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5651 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 5652 void CDocument::SendInitialUpdate() 5653 void CRecordset::SendLongBinaryData(void *) 5654 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 5655 void COleControlSite::SendMnemonic(tagMSG *) 5656 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 5657 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 5658 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 5659 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 5660 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 5661 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5662 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 5663 void CByteArray::Serialize(CArchive &) 5664 void CControlBarInfo::Serialize(CArchive &,CDockState *) 5665 void CDocItem::Serialize(CArchive &) 5666 void CDockState::Serialize(CArchive &) 5667 void CDWordArray::Serialize(CArchive &) 5668 void CEditView::Serialize(CArchive &) 5669 void CMapStringToOb::Serialize(CArchive &) 5670 void CMapStringToString::Serialize(CArchive &) 5671 void CMapWordToOb::Serialize(CArchive &) 5672 void CObArray::Serialize(CArchive &) 5673 void CObList::Serialize(CArchive &) 5674 void COleClientItem::Serialize(CArchive &) 5675 void COleControl::Serialize(CArchive &) 5676 void COleDocument::Serialize(CArchive &) 5677 void CRichEditDoc::Serialize(CArchive &) 5678 void CRichEditView::Serialize(CArchive &) 5679 void CStringArray::Serialize(CArchive &) 5680 void CStringList::Serialize(CArchive &) 5681 void CWordArray::Serialize(CArchive &) 5682 CArchive & ATL::CTime::Serialize64(CArchive &) 5683 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 5684 void CArchive::SerializeClass(CRuntimeconst *) 5685 void COleControl::SerializeExtent(CArchive &) 5686 void CEditView::SerializeRaw(CArchive &) 5687 void COleControl::SerializeStockProps(CArchive &) 5688 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 5689 int CProperty::Set(unsigned long,void * const,unsigned long) 5690 int CProperty::Set(void * const) 5691 int CProperty::Set(void * const,unsigned long) 5692 int CPropertySection::Set(unsigned long,void *) 5693 int CPropertySection::Set(unsigned long,void *,unsigned long) 5694 int CPropertySet::Set(_GUID,unsigned long,void *) 5695 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 5696 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5697 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 5698 int CPropertySheet::SetActivePage(int) 5699 int CPropertySheet::SetActivePage(CPropertyPage *) 5700 void CSplitterWnd::SetActivePane(int,int,CWnd *) 5701 void CFrameWnd::SetActiveView(CView *,int) 5702 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 5703 void COleControl::SetAppearance(short) 5704 int CDC::SetArcDirection(int) 5705 void ATL::CSimpleStringT::SetAt(int,wchar_t) 5706 void ATL::CSimpleStringT::SetAt(int,char) 5707 void CByteArray::SetAtGrow(int,unsigned char) 5708 void CDWordArray::SetAtGrow(int,unsigned long) 5709 void CObArray::SetAtGrow(int,CObject *) 5710 void CPtrArray::SetAtGrow(int,void *) 5711 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 5712 void CStringArray::SetAtGrow(int,wchar_t const *) 5713 void CUIntArray::SetAtGrow(int,unsigned int) 5714 void CWordArray::SetAtGrow(int,unsigned short) 5715 void CDC::SetAttribDC(HDC__ *) 5716 void CMetaFileDC::SetAttribDC(HDC__ *) 5717 void CPreviewDC::SetAttribDC(HDC__ *) 5718 void COleControl::SetBackColor(unsigned long) 5719 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5720 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 5721 void CControlBar::SetBarStyle(unsigned long) 5722 int CToolBar::SetBitmap(HBITMAP__ *) 5723 unsigned long CDC::SetBkColor(unsigned long) 5724 unsigned long CPreviewDC::SetBkColor(unsigned long) 5725 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 5726 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 5727 int CDC::SetBkMode(int) 5728 void CRecordset::SetBookmark(CDBVariant const &) 5729 void CControlBar::SetBorders(int,int,int,int) 5730 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 5731 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 5732 void COleControl::SetBorderStyle(short) 5733 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 5734 int CToolBar::SetButtons(unsigned int const *,int) 5735 void CToolBar::SetButtonStyle(int,unsigned int) 5736 int CToolBar::SetButtonText(int,wchar_t const *) 5737 CWnd * COleControl::SetCapture() 5738 long COleControlSite::XOleIPSite::SetCapture(int) 5739 void CRichEditView::SetCharFormat(CHARFORMAT2W) 5740 void CCheckListBox::SetCheck(int,int) 5741 void CCmdUI::SetCheck(int) 5742 int CListCtrl::SetCheck(int,int) 5743 void COleCmdUI::SetCheck(int) 5744 void CStatusCmdUI::SetCheck(int) 5745 void CTestCmdUI::SetCheck(int) 5746 void CToolCmdUI::SetCheck(int) 5747 int CTreeCtrl::SetCheck(_TREEITEM *,int) 5748 void CCheckListBox::SetCheckStyle(unsigned int) 5749 void CPropertySet::SetClassID(_GUID) 5750 void CDataBoundProperty::SetClientSite(COleControlSite *) 5751 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 5752 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 5753 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 5754 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 5755 void COleDataSource::SetClipboard() 5756 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 5757 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 5758 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 5759 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 5760 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 5761 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 5762 void CSplitterWnd::SetColumnInfo(int,int,int) 5763 int CListCtrl::SetColumnOrderArray(int,int *) 5764 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 5765 void CDocTemplate::SetContainerInfo(unsigned int) 5766 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 5767 void CReflectorWnd::SetControl(COleControl *) 5768 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 5769 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 5770 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 5771 int COleControl::SetControlSize(int,int) 5772 int COlePropertyPage::SetControlStatus(unsigned int,int) 5773 void CFileDialog::SetControlText(int,char const *) 5774 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 5775 void COleCurrency::SetCurrency(long,long) 5776 void CColorDialog::SetCurrentColor(unsigned long) 5777 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 5778 void CWinApp::SetCurrentHandles() 5779 void CPreviewView::SetCurrentPage(unsigned int,int) 5780 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 5781 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 5782 int CRectTracker::SetCursor(CWnd *,unsigned int)const 5783 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5784 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5785 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5786 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5787 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5788 int CMonthCalCtrl::SetDayState(int,unsigned long *) 5789 void COccManager::SetDefaultButton(CWnd *,int) 5790 void COleControlSite::SetDefaultButton(int) 5791 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 5792 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 5793 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 5794 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 5795 void CFileDialog::SetDefExt(char const *) 5796 void COlePropertyPage::SetDialogResource(void *) 5797 void CRecordset::SetDirtyFieldStatus(unsigned long) 5798 int COleControlSite::SetDlgCtrlID(int) 5799 int CWnd::SetDlgCtrlID(int) 5800 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 5801 void CWnd::SetDlgItemInt(int,unsigned int,int) 5802 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 5803 void CWnd::SetDlgItemTextW(int,wchar_t const *) 5804 void CFrameWnd::SetDockState(CDockState const &) 5805 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 5806 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 5807 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 5808 void CDataBoundProperty::SetDSCSite(COleControlSite *) 5809 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 5810 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 5811 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 5812 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 5813 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 5814 void COleControl::SetEnabled(int) 5815 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 5816 int COleControlSite::SetExtent() 5817 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 5818 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 5819 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 5820 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 5821 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 5822 void CRecordset::SetFieldDirty(void *,int) 5823 void CRecordset::SetFieldNull(void *,int) 5824 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 5825 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 5826 CWnd * COleControl::SetFocus() 5827 CWnd * COleControlSite::SetFocus(tagMSG *) 5828 CWnd * COleControlSite::SetFocus() 5829 CWnd * CWnd::SetFocus() 5830 long COleControlSite::XOleIPSite::SetFocus(int) 5831 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 5832 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 5833 void CFontHolder::SetFont(IFont *) 5834 void COleControl::SetFont(IFontDisp *) 5835 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 5836 void COleControl::SetForeColor(unsigned long) 5837 void CPropertySection::SetFormatID(_GUID) 5838 void CPropertySet::SetFormatVersion(unsigned short) 5839 void CSharedFile::SetHandle(void *,int) 5840 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 5841 void CToolBar::SetHeight(int) 5842 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 5843 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 5844 void CDHtmlDialog::SetHostFlags(unsigned long) 5845 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 5846 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5847 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5848 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5849 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 5850 int COleClientItem::SetIconicMetafile(void *) 5851 CSize CListCtrl::SetIconSpacing(int,int) 5852 CSize CListCtrl::SetIconSpacing(CSize) 5853 void CProperty::SetID(unsigned long) 5854 int CReBarCtrl::SetImageList(CImageList *) 5855 int CStatusBar::SetIndicators(unsigned int const *,int) 5856 void COleControl::SetInitialDataFormats() 5857 long CDocObjectServer::XPrint::SetInitialPageNum(long) 5858 void COleControl::SetInitialSize(int,int) 5859 void CControlBar::SetInPlaceOwner(CWnd *) 5860 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 5861 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 5862 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 5863 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 5864 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 5865 int CListCtrl::SetItemCountEx(int,unsigned long) 5866 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 5867 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 5868 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 5869 int CListCtrl::SetItemText(int,int,wchar_t const *) 5870 unsigned long CDC::SetLayout(unsigned long) 5871 void ATL::CSimpleStringT::SetLength(int) 5872 void ATL::CSimpleStringT::SetLength(int) 5873 void CFile::SetLength(unsigned __int64) 5874 void CInternetFile::SetLength(unsigned __int64) 5875 void CMemFile::SetLength(unsigned __int64) 5876 void COleStreamFile::SetLength(unsigned __int64) 5877 void CSocketFile::SetLength(unsigned __int64) 5878 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 5879 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 5880 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 5881 void CRecordset::SetLockingMode(unsigned int) 5882 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5883 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 5884 int CDC::SetMapMode(int) 5885 int CPreviewDC::SetMapMode(int) 5886 unsigned long CDC::SetMapperFlags(unsigned long) 5887 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5888 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 5889 void CFrameWnd::SetMessageText(unsigned int) 5890 void CFrameWnd::SetMessageText(wchar_t const *) 5891 void CPropertyPage::SetModified(int) 5892 void COleControl::SetModifiedFlag(int) 5893 void COlePropertyPage::SetModifiedFlag(int) 5894 void CRichEditDoc::SetModifiedFlag(int) 5895 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 5896 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 5897 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 5898 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 5899 int CPropertySection::SetName(unsigned long,wchar_t const *) 5900 void COleControl::SetNotPermitted() 5901 void CCmdTarget::SetNotSupported() 5902 void COleControl::SetNotSupported() 5903 void CRecordset::SetNullFieldStatus(unsigned long) 5904 void CRecordset::SetNullParamStatus(unsigned long) 5905 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5906 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 5907 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 5908 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5909 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5910 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5911 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 5912 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 5913 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 5914 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 5915 int CHeaderCtrl::SetOrderArray(int,int *) 5916 void CPropertySet::SetOSVersion(unsigned long) 5917 void CDC::SetOutputDC(HDC__ *) 5918 void CMetaFileDC::SetOutputDC(HDC__ *) 5919 void CPreviewDC::SetOutputDC(HDC__ *) 5920 void CToolBar::SetOwner(CWnd *) 5921 void COlePropertyPage::SetPageName(wchar_t const *) 5922 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 5923 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 5924 void CStatusBar::SetPaneStyle(int,unsigned int) 5925 int CStatusBar::SetPaneText(int,wchar_t const *,int) 5926 int CRichEditCtrl::SetParaFormat(_paraformat &) 5927 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 5928 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 5929 void CRecordset::SetParamNull(int,int) 5930 void CDocument::SetPathName(wchar_t const *,int) 5931 void COleDocument::SetPathName(wchar_t const *,int) 5932 void CRichEditDoc::SetPathName(wchar_t const *,int) 5933 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 5934 int CDC::SetPolyFillMode(int) 5935 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 5936 int COleClientItem::SetPrintDevice(tagPDW const *) 5937 void CEditView::SetPrinterFont(CFont *) 5938 int CPreviewView::SetPrintView(CView *) 5939 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 5940 void COleControlSite::SetProperty(long,unsigned short,...) 5941 void COleDispatchDriver::SetProperty(long,unsigned short,...) 5942 void CWnd::SetProperty(long,unsigned short,...) 5943 void COleControlSite::SetPropertyV(long,unsigned short,char *) 5944 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 5945 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 5946 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 5947 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 5948 int COlePropertyPage::SetPropText(wchar_t const *,short &) 5949 int COlePropertyPage::SetPropText(wchar_t const *,int &) 5950 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 5951 int COlePropertyPage::SetPropText(wchar_t const *,long &) 5952 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 5953 int COlePropertyPage::SetPropText(wchar_t const *,float &) 5954 int COlePropertyPage::SetPropText(wchar_t const *,double &) 5955 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 5956 long CWnd::SetProxy(IAccessibleProxy *) 5957 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 5958 void CCmdUI::SetRadio(int) 5959 void CTestCmdUI::SetRadio(int) 5960 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5961 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5962 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 5963 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 5964 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5965 void CSliderCtrl::SetRange(int,int,int) 5966 int CInternetFile::SetReadBufferSize(unsigned int) 5967 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 5968 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 5969 int COleControl::SetRectInContainer(tagRECT const *) 5970 void CWinApp::SetRegistryKey(unsigned int) 5971 void CWinApp::SetRegistryKey(wchar_t const *) 5972 int CDC::SetROP2(int) 5973 void CSplitterWnd::SetRowInfo(int,int,int) 5974 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 5975 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 5976 void CRecordset::SetRowsetSize(unsigned long) 5977 void CPreviewView::SetScaledSize(unsigned int) 5978 void CPreviewDC::SetScaleRatio(int,int) 5979 void CScrollView::SetScaleToFitSize(tagSIZE) 5980 void CDockState::SetScreenSize(CSize &) 5981 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 5982 int CWnd::SetScrollPos(int,int,int) 5983 void CWnd::SetScrollRange(int,int,int,int) 5984 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 5985 void CSplitterWnd::SetScrollStyle(unsigned long) 5986 int CPropertySection::SetSectionName(wchar_t const *) 5987 void CRichEditCtrl::SetSel(long,long) 5988 void CSliderCtrl::SetSelection(int,int) 5989 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 5990 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 5991 void CCheckListBox::SetSelectionCheck(int) 5992 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 5993 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 5994 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 5995 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 5996 long CPrintDialogEx::SetSite(IUnknown *) 5997 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 5998 void CByteArray::SetSize(int,int) 5999 void CDWordArray::SetSize(int,int) 6000 void CObArray::SetSize(int,int) 6001 void CPtrArray::SetSize(int,int) 6002 void CStringArray::SetSize(int,int) 6003 void CUIntArray::SetSize(int,int) 6004 void CWordArray::SetSize(int,int) 6005 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6006 void CSplitterWnd::SetSplitCursor(int) 6007 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6008 void CRecordset::SetState(int,wchar_t const *,unsigned long) 6009 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 6010 int CControlBar::SetStatusText(int) 6011 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 6012 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 6013 int CDC::SetStretchBltMode(int) 6014 void ATL::CSimpleStringT::SetString(wchar_t const *) 6015 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 6016 void ATL::CSimpleStringT::SetString(char const *) 6017 void ATL::CSimpleStringT::SetString(char const *,int) 6018 void COleVariant::SetString(wchar_t const *,unsigned short) 6019 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6020 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6021 int CDialogTemplate::SetSystemFont(unsigned short) 6022 void CEditView::SetTabStops(int) 6023 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6024 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 6025 void CCmdUI::SetText(wchar_t const *) 6026 void COleCmdUI::SetText(wchar_t const *) 6027 void COleControl::SetText(wchar_t const *) 6028 void CStatusCmdUI::SetText(wchar_t const *) 6029 void CTestCmdUI::SetText(wchar_t const *) 6030 void CToolCmdUI::SetText(wchar_t const *) 6031 unsigned int CDC::SetTextAlign(unsigned int) 6032 int CDC::SetTextCharacterExtra(int) 6033 unsigned long CDC::SetTextColor(unsigned long) 6034 unsigned long CPreviewDC::SetTextColor(unsigned long) 6035 int CDC::SetTextJustification(int,int) 6036 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 6037 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6038 int CDateTimeCtrl::SetTime(ATL::CTime const *) 6039 void CDocument::SetTitle(wchar_t const *) 6040 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 6041 void CRichEditDoc::SetTitle(wchar_t const *) 6042 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 6043 void CMonthCalCtrl::SetToday(ATL::CTime const *) 6044 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6045 void CPreviewDC::SetTopLeftOffset(CSize) 6046 void CProperty::SetType(unsigned long) 6047 void CRecordset::SetUpdateMethod() 6048 void CThreadSlotData::SetValue(int,void *) 6049 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6050 CSize CDC::SetViewportExt(int,int) 6051 CSize CMetaFileDC::SetViewportExt(int,int) 6052 CSize CPreviewDC::SetViewportExt(int,int) 6053 CPoint CDC::SetViewportOrg(int,int) 6054 CPoint CMetaFileDC::SetViewportOrg(int,int) 6055 CPoint CPreviewDC::SetViewportOrg(int,int) 6056 CSize CDC::SetWindowExt(int,int) 6057 CSize CPreviewDC::SetWindowExt(int,int) 6058 CPoint CDC::SetWindowOrg(int,int) 6059 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6060 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6061 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6062 void COleControlSite::SetWindowTextW(wchar_t const *) 6063 void CWnd::SetWindowTextW(wchar_t const *) 6064 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 6065 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 6066 int CInternetFile::SetWriteBufferSize(unsigned int) 6067 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6068 long CDocObjectServer::XOleDocumentView::Show(int) 6069 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6070 void CDockBar::ShowAll(int) 6071 long CRichEditCntrItem::ShowContainerUI(int) 6072 long CRichEditView::ShowContainerUI(int) 6073 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6074 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6075 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6076 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6077 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6078 long COleClientItem::XOleClientSite::ShowObject() 6079 long COleControlSite::XOleClientSite::ShowObject() 6080 void CFrameWnd::ShowOwnedWindows(int) 6081 long COleControlSite::XOleControlSite::ShowPropertyFrame() 6082 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6083 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6084 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6085 int COleControlSite::ShowWindow(int) 6086 int CWnd::ShowWindow(int) 6087 tagSIZE const CScrollView::sizeDefault 6088 int CMonthCalCtrl::SizeMinReq(int) 6089 void CBitmapButton::SizeToContent() 6090 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6091 long CEnumArray::XEnumVOID::Skip(unsigned long) 6092 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6093 int CAsyncSocket::Socket(int,long,int,int) 6094 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 6095 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 6096 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 6097 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 6098 int CSplitterWnd::SplitColumn(int) 6099 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6100 int CSplitterWnd::SplitRow(int) 6101 int CDC::StartDocW(wchar_t const *) 6102 void CDockContext::StartDrag(CPoint) 6103 void CDockContext::StartResize(int,CPoint) 6104 void CSplitterWnd::StartTracking(int) 6105 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6106 void CSplitterWnd::StopTracking(int) 6107 void CRuntimeClass::Store(CArchive &)const 6108 void CRecordset::StoreFields() 6109 void CRichEditView::Stream(CArchive &,int) 6110 void CDockContext::Stretch(CPoint) 6111 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6112 int ATL::CSimpleStringT::StringLength(char const *) 6113 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6114 int ATL::CSimpleStringT::StringLength(char const *) 6115 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6116 int CWnd::SubclassWindow(HWND__ *) 6117 int COleDocObjectItem::SupportsIPrint() 6118 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6119 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6120 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6121 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 6122 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 6123 void CRichEditView::TextNotFound(wchar_t const *) 6124 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 6125 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 6126 void CFileException::ThrowErrno(int,wchar_t const *) 6127 void COleControl::ThrowError(long,unsigned int,unsigned int) 6128 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 6129 void ATL::CSimpleStringT::ThrowMemoryException() 6130 void ATL::CSimpleStringT::ThrowMemoryException() 6131 void CFileException::ThrowOsError(long,wchar_t const *) 6132 void CDockContext::ToggleDocking() 6133 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 6134 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 6135 COleVariant CDataSourceControl::ToVariant(int) 6136 int CDockContext::Track() 6137 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6138 void CSplitterWnd::TrackColumnSize(int,int) 6139 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6140 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6141 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 6142 void CSplitterWnd::TrackRowSize(int,int) 6143 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6144 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6145 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6146 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6147 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6148 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6149 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 6150 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6151 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6152 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6153 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6154 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 6155 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6156 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6157 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6158 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6159 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 6160 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 6161 ATL::CStringT > > & ATL::CStringT > >::Trim() 6162 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 6163 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 6164 ATL::CStringT > > & ATL::CStringT > >::Trim() 6165 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 6166 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 6167 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6168 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 6169 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 6170 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 6171 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 6172 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 6173 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6174 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 6175 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 6176 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 6177 void ATL::CSimpleStringT::Truncate(int) 6178 void ATL::CSimpleStringT::Truncate(int) 6179 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6180 void COccManager::UIActivateControl(CWnd *) 6181 long COleControl::XOleInPlaceObject::UIDeactivate() 6182 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 6183 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6184 void COleSafeArray::UnaccessData() 6185 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 6186 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6187 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6188 long COleControl::XOleObject::Unadvise(unsigned long) 6189 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6190 long COleServerItem::XOleObject::Unadvise(unsigned long) 6191 void CRecordset::UnbindFieldsForUpdate() 6192 long COleControl::XOleCache::Uncache(unsigned long) 6193 long COleControl::XViewObject::Unfreeze(unsigned long) 6194 int CEvent::Unlock() 6195 int CMultiLock::Unlock(long,long *) 6196 int CMultiLock::Unlock() 6197 int CMutex::Unlock() 6198 void COleSafeArray::Unlock() 6199 int CSemaphore::Unlock(long,long *) 6200 int CSingleLock::Unlock(long,long *) 6201 int CSingleLock::Unlock() 6202 void CTypeLibCache::Unlock() 6203 void ATL::CSimpleStringT::UnlockBuffer() 6204 void ATL::CSimpleStringT::UnlockBuffer() 6205 void CEditView::UnlockBuffer()const 6206 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 6207 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 6208 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 6209 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 6210 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 6211 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 6212 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6213 int COleObjectFactory::Unregister() 6214 int COleTemplateServer::Unregister() 6215 int CWinApp::Unregister() 6216 int COleObjectFactory::UnregisterAll() 6217 void CDocManager::UnregisterShellFileTypes() 6218 void CWinApp::UnregisterShellFileTypes() 6219 HWND__ * CWnd::UnsubclassWindow() 6220 int CRecordset::Update() 6221 long CDocObjectServer::XOleObject::Update() 6222 long COleControl::XOleObject::Update() 6223 long COleServerDoc::XOleObject::Update() 6224 long COleServerItem::XOleObject::Update() 6225 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6226 void CStatusBar::UpdateAllPanes(int,int) 6227 void CDocument::UpdateAllViews(CView *,long,CObject *) 6228 void CScrollView::UpdateBars() 6229 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6230 long CDataSourceControl::UpdateControls() 6231 long CDataSourceControl::UpdateCursor() 6232 int CWnd::UpdateData(int) 6233 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6234 void CDocument::UpdateFrameCounts() 6235 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 6236 int CRecordset::UpdateInsertDelete() 6237 void COleClientItem::UpdateItemType() 6238 int COleClientItem::UpdateLink() 6239 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6240 void CRecentFileList::UpdateMenu(CCmdUI *) 6241 void COleDocument::UpdateModifiedFlag() 6242 void CRichEditDoc::UpdateModifiedFlag() 6243 void CRichEditDoc::UpdateObjectCache() 6244 void CWinApp::UpdatePrinterSelection(int) 6245 int COleObjectFactory::UpdateRegistry(int) 6246 void COleObjectFactory::UpdateRegistry(wchar_t const *) 6247 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 6248 int COleObjectFactory::UpdateRegistryAll(int) 6249 void CDockContext::UpdateState(int *,int) 6250 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6251 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 6252 long CBrowserControlSite::UpdateUI() 6253 long CDHtmlDialog::UpdateUI() 6254 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 6255 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6256 void COleLinkingDoc::UpdateVisibleLock(int,int) 6257 void CDatabase::VerifyConnect() 6258 unsigned long CRecordset::VerifyCursorSupport() 6259 void CRecordset::VerifyDriverBehavior() 6260 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 6261 int COleObjectFactory::VerifyUserLicense() 6262 int CListBox::VKeyToItem(unsigned int,unsigned int) 6263 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6264 int COleControl::WillAmbientsBeValidDuringLoad() 6265 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6266 long COleControl::WindowProc(unsigned int,unsigned int,long) 6267 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6268 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6269 long CReBar::WindowProc(unsigned int,unsigned int,long) 6270 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6271 long CWnd::WindowProc(unsigned int,unsigned int,long) 6272 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 6273 void CWnd::WinHelpInternal(unsigned long,unsigned int) 6274 void CWinApp::WinHelpW(unsigned long,unsigned int) 6275 void CWnd::WinHelpW(unsigned long,unsigned int) 6276 CWnd const CWnd::wndBottom 6277 CWnd const CWnd::wndNoTopMost 6278 CWnd const CWnd::wndTop 6279 CWnd const CWnd::wndTopMost 6280 void CRichEditView::WrapChanged() 6281 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6282 void CArchive::Write(void const *,unsigned int) 6283 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6284 void CFile::Write(void const *,unsigned int) 6285 void CGopherFile::Write(void const *,unsigned int) 6286 int CImageList::Write(CArchive *) 6287 void CInternetFile::Write(void const *,unsigned int) 6288 void CMemFile::Write(void const *,unsigned int) 6289 void COleStreamFile::Write(void const *,unsigned int) 6290 void CSocketFile::Write(void const *,unsigned int) 6291 void CStdioFile::Write(void const *,unsigned int) 6292 void CArchive::WriteClass(CRuntimeconst *) 6293 void CArchive::WriteCount(unsigned long) 6294 void COleClientItem::WriteItem(CArchive &) 6295 void COleClientItem::WriteItemCompound(CArchive &) 6296 void COleClientItem::WriteItemFlat(CArchive &) 6297 void CRecentFileList::WriteList() 6298 int CPropertySection::WriteNameDictToStream(IStream *) 6299 void CArchive::WriteObject(CObject const *) 6300 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 6301 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 6302 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 6303 void CArchive::WriteString(wchar_t const *) 6304 void CGopherFile::WriteString(wchar_t const *) 6305 void CInternetFile::WriteString(wchar_t const *) 6306 void CStdioFile::WriteString(wchar_t const *) 6307 void CEditView::WriteToArchive(CArchive &) 6308 int CProperty::WriteToStream(IStream *) 6309 int CPropertySection::WriteToStream(IStream *) 6310 int CPropertySet::WriteToStream(IStream *) 6311 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 6312 CDaoException::CDaoException() 6313 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 6314 CDaoIndexInfo::CDaoIndexInfo() 6315 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 6316 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 6317 CDaoRecordView::CDaoRecordView(unsigned int) 6318 CDaoRecordView::CDaoRecordView(wchar_t const *) 6319 CDaoRelationInfo::CDaoRelationInfo() 6320 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 6321 CDaoWorkspace::CDaoWorkspace() 6322 CDaoDatabase::~CDaoDatabase() 6323 CDaoException::~CDaoException() 6324 CDaoIndexInfo::~CDaoIndexInfo() 6325 CDaoQueryDef::~CDaoQueryDef() 6326 CDaoRecordset::~CDaoRecordset() 6327 CDaoRecordView::~CDaoRecordView() 6328 CDaoRelationInfo::~CDaoRelationInfo() 6329 CDaoTableDef::~CDaoTableDef() 6330 CDaoWorkspace::~CDaoWorkspace() 6331 void CDaoRecordset::AddNew() 6332 void AfxDaoCheck(long,char const *,char const *,int,int,int) 6333 _DAODBEngine * AfxDaoGetEngine() 6334 void AfxDaoInit() 6335 void AfxDaoTerm() 6336 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 6337 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 6338 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 6339 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6340 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 6341 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 6342 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 6343 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 6344 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 6345 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 6346 void AfxThrowDaoException(int,long) 6347 void CDaoRecordset::AllocCache() 6348 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 6349 void CDaoRecordset::AllocDatabase() 6350 void AllocLongBinary(CLongBinary &,unsigned long) 6351 void CDaoQueryDef::Append() 6352 void CDaoTableDef::Append() 6353 void CDaoWorkspace::Append() 6354 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 6355 void CDaoWorkspace::BeginTrans() 6356 void CDaoRecordset::BindFields() 6357 void CDaoRecordset::BindParameters() 6358 void CDaoRecordset::BuildParameterList() 6359 void CDaoRecordset::BuildSelectList() 6360 void CDaoRecordset::BuildSQL() 6361 int CDaoRecordset::CanAppend()const 6362 int CDaoRecordset::CanBookmark() 6363 void CDaoRecordset::CancelUpdate() 6364 int CDaoRecordset::CanRestart() 6365 int CDaoRecordset::CanScroll()const 6366 int CDaoDatabase::CanTransact() 6367 int CDaoRecordset::CanTransact() 6368 int CDaoDatabase::CanUpdate() 6369 int CDaoQueryDef::CanUpdate() 6370 int CDaoRecordset::CanUpdate()const 6371 int CDaoTableDef::CanUpdate() 6372 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 6373 void CDaoRecordset::ClearFieldStatusFlags() 6374 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 6375 void CDaoDatabase::Close() 6376 void CDaoQueryDef::Close() 6377 void CDaoRecordset::Close() 6378 void CDaoTableDef::Close() 6379 void CDaoWorkspace::Close() 6380 void CDaoWorkspace::CommitTrans() 6381 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 6382 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 6383 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 6384 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 6385 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 6386 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 6387 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 6388 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 6389 void CDaoTableDef::CreateField(CDaoFieldInfo &) 6390 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 6391 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 6392 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 6393 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 6394 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6395 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6396 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6397 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 6398 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 6399 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6400 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6401 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 6402 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 6403 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 6404 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 6405 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 6406 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 6407 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 6408 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 6409 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 6410 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 6411 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 6412 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 6413 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 6414 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 6415 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 6416 void CDaoRecordset::Delete() 6417 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 6418 void CDaoTableDef::DeleteField(int) 6419 void CDaoTableDef::DeleteField(wchar_t const *) 6420 void CDaoTableDef::DeleteIndex(int) 6421 void CDaoTableDef::DeleteIndex(wchar_t const *) 6422 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 6423 void CDaoDatabase::DeleteRelation(wchar_t const *) 6424 void CDaoDatabase::DeleteTableDef(wchar_t const *) 6425 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 6426 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 6427 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 6428 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 6429 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 6430 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 6431 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 6432 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 6433 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 6434 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 6435 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 6436 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 6437 void CDaoRecordset::Edit() 6438 void CDaoDatabase::Execute(wchar_t const *,int) 6439 void CDaoQueryDef::Execute(int) 6440 void CDaoRecordset::FillCache(long *,COleVariant *) 6441 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 6442 void CDaoException::FillErrorInfo() 6443 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 6444 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 6445 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 6446 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 6447 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 6448 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 6449 int CDaoRecordset::Find(long,wchar_t const *) 6450 int CDaoRecordset::FindFirst(wchar_t const *) 6451 int CDaoRecordset::FindLast(wchar_t const *) 6452 int CDaoRecordset::FindNext(wchar_t const *) 6453 int CDaoRecordset::FindPrev(wchar_t const *) 6454 void CDaoRecordset::Fixup() 6455 void CDaoRecordset::FreeCache() 6456 long CDaoRecordset::GetAbsolutePosition() 6457 long CDaoTableDef::GetAttributes() 6458 COleVariant CDaoRecordset::GetBookmark() 6459 long CDaoRecordset::GetCacheSize() 6460 COleVariant CDaoRecordset::GetCacheStart() 6461 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 6462 ATL::CStringT > > CDaoDatabase::GetConnect() 6463 ATL::CStringT > > CDaoQueryDef::GetConnect() 6464 ATL::CStringT > > CDaoTableDef::GetConnect() 6465 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 6466 void CDaoRecordset::GetDataAndFixupNulls() 6467 short CDaoWorkspace::GetDatabaseCount() 6468 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 6469 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 6470 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 6471 ATL::COleDateTime CDaoRecordset::GetDateCreated() 6472 ATL::COleDateTime CDaoTableDef::GetDateCreated() 6473 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 6474 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 6475 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 6476 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 6477 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 6478 short CDaoRecordset::GetEditMode() 6479 short CDaoException::GetErrorCount() 6480 void CDaoException::GetErrorInfo(int) 6481 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 6482 short CDaoQueryDef::GetFieldCount() 6483 short CDaoRecordset::GetFieldCount() 6484 short CDaoTableDef::GetFieldCount() 6485 int CDaoRecordset::GetFieldIndex(void *) 6486 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6487 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6488 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6489 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6490 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 6491 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 6492 unsigned long CDaoRecordset::GetFieldLength(int) 6493 COleVariant CDaoRecordset::GetFieldValue(int) 6494 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 6495 void CDaoRecordset::GetFieldValue(int,COleVariant &) 6496 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 6497 short CDaoRecordset::GetIndexCount() 6498 short CDaoTableDef::GetIndexCount() 6499 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6500 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 6501 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 6502 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 6503 ATL::CStringT > > CDaoWorkspace::GetIniPath() 6504 int CDaoWorkspace::GetIsolateODBCTrans() 6505 COleVariant CDaoRecordset::GetLastModifiedBookmark() 6506 int CDaoRecordset::GetLockingMode() 6507 short CDaoWorkspace::GetLoginTimeout() 6508 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 6509 ATL::CStringT > > CDaoDatabase::GetName() 6510 ATL::CStringT > > CDaoQueryDef::GetName() 6511 ATL::CStringT > > CDaoRecordset::GetName() 6512 ATL::CStringT > > CDaoTableDef::GetName() 6513 ATL::CStringT > > CDaoWorkspace::GetName() 6514 short CDaoQueryDef::GetODBCTimeout() 6515 short CDaoQueryDef::GetParameterCount() 6516 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 6517 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 6518 COleVariant CDaoQueryDef::GetParamValue(int) 6519 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 6520 COleVariant CDaoRecordset::GetParamValue(int) 6521 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 6522 float CDaoRecordset::GetPercentPosition() 6523 short CDaoDatabase::GetQueryDefCount() 6524 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 6525 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 6526 short CDaoDatabase::GetQueryTimeout() 6527 long CDaoRecordset::GetRecordCount() 6528 long CDaoTableDef::GetRecordCount() 6529 long CDaoDatabase::GetRecordsAffected() 6530 long CDaoQueryDef::GetRecordsAffected() 6531 short CDaoDatabase::GetRelationCount() 6532 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 6533 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 6534 int CDaoQueryDef::GetReturnsRecords() 6535 CRuntime* CDaoDatabase::GetRuntimeClass()const 6536 CRuntime* CDaoException::GetRuntimeClass()const 6537 CRuntime* CDaoQueryDef::GetRuntimeClass()const 6538 CRuntime* CDaoRecordset::GetRuntimeClass()const 6539 CRuntime* CDaoRecordView::GetRuntimeClass()const 6540 CRuntime* CDaoTableDef::GetRuntimeClass()const 6541 CRuntime* CDaoWorkspace::GetRuntimeClass()const 6542 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 6543 ATL::CStringT > > CDaoQueryDef::GetSQL() 6544 ATL::CStringT > > CDaoRecordset::GetSQL()const 6545 short CDaoDatabase::GetTableDefCount() 6546 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 6547 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 6548 CRuntime* CDaoDatabase::GetThisClass() 6549 CRuntime* CDaoException::GetThisClass() 6550 CRuntime* CDaoQueryDef::GetThisClass() 6551 CRuntime* CDaoRecordset::GetThisClass() 6552 CRuntime* CDaoRecordView::GetThisClass() 6553 CRuntime* CDaoTableDef::GetThisClass() 6554 CRuntime* CDaoWorkspace::GetThisClass() 6555 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 6556 short CDaoQueryDef::GetType() 6557 short CDaoRecordset::GetType() 6558 ATL::CStringT > > CDaoWorkspace::GetUserNameW() 6559 ATL::CStringT > > CDaoRecordset::GetValidationRule() 6560 ATL::CStringT > > CDaoTableDef::GetValidationRule() 6561 ATL::CStringT > > CDaoRecordset::GetValidationText() 6562 ATL::CStringT > > CDaoTableDef::GetValidationText() 6563 ATL::CStringT > > CDaoDatabase::GetVersion() 6564 ATL::CStringT > > CDaoWorkspace::GetVersion() 6565 short CDaoWorkspace::GetWorkspaceCount() 6566 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 6567 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 6568 void CDaoWorkspace::Idle(int) 6569 void CDaoWorkspace::InitDatabasesCollection() 6570 void CDaoException::InitErrorsCollection() 6571 void CDaoQueryDef::InitFieldsCollection() 6572 void CDaoRecordset::InitFieldsCollection() 6573 void CDaoTableDef::InitFieldsCollection() 6574 void CDaoWorkspace::InitializeEngine() 6575 void CDaoRecordset::InitIndexesCollection() 6576 void CDaoTableDef::InitIndexesCollection() 6577 void CDaoQueryDef::InitParametersCollection() 6578 void CDaoDatabase::InitQueryDefsCollection() 6579 void CDaoDatabase::InitRelationsCollection() 6580 void CDaoDatabase::InitTableDefsCollection() 6581 void CDaoDatabase::InitWorkspace() 6582 void CDaoWorkspace::InitWorkspacesCollection() 6583 int CDaoRecordset::IsBOF()const 6584 int CDaoRecordset::IsDeleted()const 6585 int CDaoRecordset::IsEOF()const 6586 int CDaoRecordset::IsFieldDirty(void *) 6587 int CDaoRecordset::IsFieldNull(void *) 6588 int CDaoRecordset::IsFieldNullable(void *) 6589 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 6590 int CDaoRecordset::IsFieldStatusNull(unsigned int) 6591 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 6592 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 6593 int CDaoRecordset::IsMatch() 6594 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6595 int CDaoRecordView::IsOnFirstRecord() 6596 int CDaoRecordView::IsOnLastRecord() 6597 int CDaoFieldExchange::IsValidOperation() 6598 void CDaoRecordset::LoadFields() 6599 void CDaoRecordset::MarkForAddNew() 6600 void CDaoRecordset::MarkForEdit() 6601 void CDaoRecordset::Move(long) 6602 void CDaoRecordset::MoveFirst() 6603 void CDaoRecordset::MoveLast() 6604 void CDaoRecordset::MoveNext() 6605 void CDaoRecordset::MovePrev() 6606 void CDaoRecordView::OnInitialUpdate() 6607 int CDaoRecordView::OnMove(unsigned int) 6608 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 6609 void CDaoQueryDef::Open(wchar_t const *) 6610 void CDaoRecordset::Open(int,wchar_t const *,int) 6611 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 6612 void CDaoRecordset::Open(CDaoTableDef *,int,int) 6613 void CDaoTableDef::Open(wchar_t const *) 6614 void CDaoWorkspace::Open(wchar_t const *) 6615 void CDaoTableDef::RefreshLink() 6616 void CDaoWorkspace::RepairDatabase(wchar_t const *) 6617 void CDaoRecordset::Requery() 6618 void CDaoWorkspace::Rollback() 6619 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 6620 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 6621 void CDaoRecordset::SetAbsolutePosition(long) 6622 void CDaoTableDef::SetAttributes(long) 6623 void CDaoRecordset::SetBookmark(COleVariant) 6624 void CDaoRecordset::SetCacheSize(long) 6625 void CDaoRecordset::SetCacheStart(COleVariant) 6626 void CDaoQueryDef::SetConnect(wchar_t const *) 6627 void CDaoTableDef::SetConnect(wchar_t const *) 6628 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 6629 void CDaoRecordset::SetCursorAttributes() 6630 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 6631 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 6632 void CDaoRecordset::SetDirtyFields() 6633 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6634 void CDaoRecordset::SetFieldDirty(void *,int) 6635 void CDaoRecordset::SetFieldNull(void *,int) 6636 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 6637 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 6638 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6639 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 6640 void CDaoRecordset::SetFieldValueNull(int) 6641 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 6642 void CDaoWorkspace::SetIniPath(wchar_t const *) 6643 void CDaoWorkspace::SetIsolateODBCTrans(int) 6644 void CDaoRecordset::SetLockingMode(int) 6645 void CDaoWorkspace::SetLoginTimeout(short) 6646 void CDaoQueryDef::SetName(wchar_t const *) 6647 void CDaoTableDef::SetName(wchar_t const *) 6648 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6649 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6650 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6651 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6652 void CDaoQueryDef::SetODBCTimeout(short) 6653 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6654 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 6655 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6656 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 6657 void CDaoQueryDef::SetParamValueNull(int) 6658 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 6659 void CDaoRecordset::SetParamValueNull(int) 6660 void CDaoRecordset::SetParamValueNull(wchar_t const *) 6661 void CDaoRecordset::SetPercentPosition(float) 6662 void CDaoDatabase::SetQueryTimeout(short) 6663 void CDaoQueryDef::SetReturnsRecords(int) 6664 void CDaoTableDef::SetSourceTableName(wchar_t const *) 6665 void CDaoQueryDef::SetSQL(wchar_t const *) 6666 void CDaoTableDef::SetValidationRule(wchar_t const *) 6667 void CDaoTableDef::SetValidationText(wchar_t const *) 6668 void CDaoRecordset::StoreFields() 6669 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 6670 void CDaoDatabase::ThrowDaoException(int) 6671 void CDaoQueryDef::ThrowDaoException(int) 6672 void CDaoRecordset::ThrowDaoException(int) 6673 void CDaoTableDef::ThrowDaoException(int) 6674 void CDaoWorkspace::ThrowDaoException(int) 6675 void ThrowGetRowsDaoException(long) 6676 void CDaoRecordset::Update() 6677 CRuntimeconst CDaoDatabase::classCDaoDatabase 6678 CRuntimeconst CDaoException::classCDaoException 6679 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 6680 CRuntimeconst CDaoRecordset::classCDaoRecordset 6681 CRuntimeconst CDaoRecordView::classCDaoRecordView 6682 CRuntimeconst CDaoTableDef::classCDaoTableDef 6683 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 6684 CRuntimeconst CDatabase::classCDatabase 6685 CRuntimeconst CDBException::classCDBException 6686 CRuntimeconst CLongBinary::classCLongBinary 6687 CRuntimeconst COleDBRecordView::classCOleDBRecordView 6688 CRuntimeconst CRecordset::classCRecordset 6689 CRuntimeconst CRecordView::classCRecordView 6693 _AFX_DAO_STATE * AfxGetDaoState() 6694 _AFX_DAO_STATE::~_AFX_DAO_STATE() 6695 _AFX_DAO_STATE::_AFX_DAO_STATE() 6696 int CDC::SetGraphicsMode(int) 6697 int CDC::SetWorldTransform(tagXFORM const *) 6698 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 6699 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 6700 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 6701 void AFX_MODULE_STATE::CreateActivationContext() 6702 CControlCreationInfo::CControlCreationInfo() 6703 CControlSiteFactoryMgr::CControlSiteFactoryMgr() 6704 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 6705 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 6706 COleControlSiteOrWnd::COleControlSiteOrWnd() 6707 CControlSiteFactoryMgr::~CControlSiteFactoryMgr() 6708 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 6709 int AfxRegisterSiteFactory(IControlSiteFactory *) 6710 int AfxUnregisterSiteFactory(IControlSiteFactory *) 6711 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 6712 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 6713 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 6714 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 6715 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 6716 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 6718 COleControlSite * COccManager::CreateSite(COleControlContainer *) 6719 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 6720 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo() 6721 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo() 6722 int CControlCreationInfo::IsManaged()const 6723 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 6724 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 6725 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 6726 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 6727 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 6728 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 6729 __POSITION * CWnd::FindSiteOrWndWithFocus()const 6730 ATL::CStringT > >::CStringT > >(char *) 6731 ATL::CStringT > >::CStringT > >(unsigned char *) 6732 ATL::CStringT > >::CStringT > >(wchar_t *) 6733 ATL::CStringT > >::CStringT > >(char *) 6734 ATL::CStringT > >::CStringT > >(unsigned char *) 6735 ATL::CStringT > >::CStringT > >(wchar_t *) 6736 int AfxIsValidAtom(unsigned short) 6737 int AfxIsValidAtom(wchar_t const *) 6738 void CFileDialog::SetControlText(int,wchar_t const *) 6739 COleVariant const & COleVariant::operator=(__int64) 6740 COleVariant const & COleVariant::operator=(unsigned __int64) 6741 void AfxUnregisterWndClasses() 6742 void CWinApp::DoEnableModeless(int) 6744 HWND__ * CPropertyPage::OnWizardFinishEx() 6746 int CWinApp::ShowAppMessageBox(CWinApp *,wchar_t const *,unsigned int,unsigned int) 6747 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 6748 int AfxActivateActCtx(void *,unsigned long *) 6749 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 6750 void * AfxCreateActCtxW(tagACTCTXW const *) 6751 int AfxDeactivateActCtx(unsigned long,unsigned long) 6752 void AfxReleaseActCtx(void *) 6753 void COleClientItem::GetItemName(wchar_t *,unsigned int)const 6754 HINSTANCE__ * AfxLoadLibraryEx(wchar_t const *,void *,unsigned long) 6755 void CArchive::EnsureRead(void *,unsigned int) 6756 int AfxIsModuleDll() 6757 int AfxInitCurrentStateApp() 6758 void ATL::CStringT > >::FormatMessage(unsigned int,...) 6759 void ATL::CStringT > >::FormatMessage(wchar_t const *,...) 6760 void ATL::CStringT > >::FormatMessage(unsigned int,...) 6761 void ATL::CStringT > >::FormatMessage(char const *,...) 6762 HINSTANCE__ * AfxGetInstanceHandleHelper() 6763 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo() 6764 CFormView::~CFormView() ================================================ FILE: Bin/i386/mfc_sym/mfc80ud.def ================================================ 256 void CopyElements(COleVariant *,COleVariant const *,int) 257 void DumpElements(CDumpContext &,COleVariant const *,int) 258 unsigned int HashKey(tagVARIANT const &) 259 unsigned int HashKey(wchar_t const *) 260 unsigned int HashKey(char const *) 261 unsigned int HashKey(ATL::CComBSTR) 262 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 263 void SerializeElements > > >(CArchive &,ATL::CStringT > > *,int) 264 void SerializeElements(CArchive &,ATL::CComBSTR *,int) 265 void SerializeElements(CArchive &,COleVariant *,int) 266 COleCurrency const & COleCurrency::operator/=(long) 267 void * operator new[](unsigned int) 268 void * operator new[](unsigned int,int,char const *,int) 269 void * operator new[](unsigned int,char const *,int) 270 void operator delete[](void *) 271 void operator delete[](void *,int,char const *,int) 272 void operator delete[](void *,char const *,int) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 275 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 277 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 278 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 279 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 280 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 281 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 282 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t,int) 284 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 285 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 287 ATL::CStringT > >::CStringT > >(char,int) 288 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 289 ATL::CStringT > >::CStringT > >(wchar_t const *) 290 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 291 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 292 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >(char const *) 294 ATL::CStringT > >::CStringT > >(char const *,int) 295 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 297 ATL::CStringT > >::CStringT > >(unsigned char const *) 298 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 299 ATL::CStringT > >::CStringT > >() 300 ATL::CStringT > >::CStringT > >(wchar_t,int) 301 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 302 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 303 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 304 ATL::CStringT > >::CStringT > >(char,int) 305 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(wchar_t const *) 307 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 308 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 309 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >(char const *) 311 ATL::CStringT > >::CStringT > >(char const *,int) 312 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 313 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 314 ATL::CStringT > >::CStringT > >(unsigned char const *) 315 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >() 317 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE() 318 _AFX_COLOR_STATE::_AFX_COLOR_STATE() 319 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE() 320 _AFX_EDIT_STATE::_AFX_EDIT_STATE() 321 _AFX_OLE_STATE::_AFX_OLE_STATE() 322 _AFX_THREAD_STATE::_AFX_THREAD_STATE() 323 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE() 324 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 325 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 326 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK() 327 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 328 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 329 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 330 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE() 331 CAnimateCtrl::CAnimateCtrl() 332 CArchive::CArchive(CArchive const &) 333 CArchive::CArchive(CFile *,unsigned int,int,void *) 334 CArchiveException::CArchiveException(int,wchar_t const *) 335 CArchivePropExchange::CArchivePropExchange(CArchive &) 336 CArchiveStream::CArchiveStream(CArchive *) 337 CAsyncMonikerFile::CAsyncMonikerFile() 338 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 339 CAsyncSocket::CAsyncSocket() 340 CBitmap::CBitmap() 341 CBitmapButton::CBitmapButton() 342 CBlobProperty::CBlobProperty(void *) 343 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 344 CBrush::CBrush(int,unsigned long) 345 CBrush::CBrush(unsigned long) 346 CBrush::CBrush(CBitmap *) 347 CBrush::CBrush() 348 CButton::CButton() 349 CByteArray::CByteArray() 350 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 351 CCachedDataPathProperty::CCachedDataPathProperty(wchar_t const *,COleControl *) 352 CCheckListBox::CCheckListBox() 353 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu() 354 CClientDC::CClientDC(CWnd *) 355 CCmdTarget::CCmdTarget() 356 CCmdUI::CCmdUI() 357 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 358 CComboBox::CComboBox() 359 CComboBoxEx::CComboBoxEx() 360 CCommandLineInfo::CCommandLineInfo() 361 CCommonDialog::CCommonDialog(CWnd *) 362 CConnectionPoint::CConnectionPoint() 363 CControlBar::CControlBar() 364 CControlBarInfo::CControlBarInfo() 365 COleControl::CControlDataSource::CControlDataSource(COleControl *) 366 CControlFrameWnd::CControlFrameWnd(COleControl *) 367 CCreateContext::CCreateContext() 368 CCriticalSection::CCriticalSection() 369 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 370 CDatabase::CDatabase() 371 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 372 CDataExchange::CDataExchange(CWnd *,int) 373 CDataPathProperty::CDataPathProperty(COleControl *) 374 CDataPathProperty::CDataPathProperty(wchar_t const *,COleControl *) 375 CDataSourceControl::CDataSourceControl(COleControlSite *) 376 CDateTimeCtrl::CDateTimeCtrl() 377 CDBException::CDBException(short) 378 CDBVariant::CDBVariant() 379 CDC::CDC() 380 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 381 CDHtmlControlSink::CDHtmlControlSink() 382 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 383 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 384 CDHtmlDialog::CDHtmlDialog() 385 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 386 CDialog::CDialog(unsigned int,CWnd *) 387 CDialog::CDialog(wchar_t const *,CWnd *) 388 CDialog::CDialog() 389 CDialogBar::CDialogBar() 390 CDialogTemplate::CDialogTemplate(void *) 391 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 392 CDocItem::CDocItem() 393 CDockBar::CDockBar(int) 394 CDockContext::CDockContext(CControlBar *) 395 CDockState::CDockState() 396 CDocManager::CDocManager() 397 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 398 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 399 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 400 CDocument::CDocument() 401 CDragListBox::CDragListBox() 402 CDumpContext::CDumpContext(CDumpContext const &) 403 CDumpContext::CDumpContext(CFile *) 404 CDWordArray::CDWordArray() 405 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 406 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 407 CEdit::CEdit() 408 CEditView::CEditView() 409 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 410 CEnumConnections::CEnumConnections(void const *,unsigned int) 411 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 412 CEnumFormatEtc::CEnumFormatEtc() 413 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 414 CException::CException(int) 415 CException::CException() 416 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 417 CFile::CFile(void *) 418 CFile::CFile(wchar_t const *,unsigned int) 419 CFile::CFile() 420 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long) 421 CFileException::CFileException(int,long,wchar_t const *) 422 CFileFind::CFileFind() 423 CFindReplaceDialog::CFindReplaceDialog() 424 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 425 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 426 CFont::CFont() 427 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 428 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 429 CFontHolder::CFontHolder(IPropertyNotifySink *) 430 CFormView::CFormView(unsigned int) 431 CFormView::CFormView(wchar_t const *) 432 CFrameWnd::CFrameWnd() 433 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 434 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 435 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 436 CGdiObject::CGdiObject() 437 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 438 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 439 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 440 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 441 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 442 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 443 CGopherLocator::CGopherLocator(CGopherLocator const &) 444 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 445 CHeaderCtrl::CHeaderCtrl() 446 CHotKeyCtrl::CHotKeyCtrl() 447 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 448 CHtmlEditCtrl::CHtmlEditCtrl() 449 CHtmlEditDoc::CHtmlEditDoc() 450 CHtmlEditView::CHtmlEditView() 451 CHtmlView::CHtmlView() 452 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 453 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 454 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 455 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 456 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 457 CImageList::CImageList() 458 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 459 CInternetException::CInternetException(unsigned long) 460 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 461 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 462 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 463 CInvalidArgException::CInvalidArgException(int,unsigned int) 464 CInvalidArgException::CInvalidArgException() 465 CIPAddressCtrl::CIPAddressCtrl() 466 CListBox::CListBox() 467 CListCtrl::CListCtrl() 468 CListView::CListView() 469 CLongBinary::CLongBinary() 470 CMapPtrToPtr::CMapPtrToPtr(int) 471 CMapPtrToWord::CMapPtrToWord(int) 472 CMapStringToOb::CMapStringToOb(int) 473 CMapStringToPtr::CMapStringToPtr(int) 474 CMapStringToString::CMapStringToString(int) 475 CMapWordToOb::CMapWordToOb(int) 476 CMapWordToPtr::CMapWordToPtr(int) 477 CMDIChildWnd::CMDIChildWnd() 478 CMDIFrameWnd::CMDIFrameWnd() 479 CMemFile::CMemFile(unsigned int) 480 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 481 CMemoryException::CMemoryException(int,unsigned int) 482 CMemoryException::CMemoryException() 483 CMemoryState::CMemoryState() 484 CMenu::CMenu() 485 CMetaFileDC::CMetaFileDC() 486 CMiniDockFrameWnd::CMiniDockFrameWnd() 487 CMiniFrameWnd::CMiniFrameWnd() 488 CMonikerFile::CMonikerFile() 489 CMonthCalCtrl::CMonthCalCtrl() 490 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 491 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 492 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 493 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 494 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog() 495 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 496 CNotSupportedException::CNotSupportedException(int,unsigned int) 497 CNotSupportedException::CNotSupportedException() 498 CObArray::CObArray() 499 CObject::CObject() 500 CObList::CObList(int) 501 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 502 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 503 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 504 COleClientItem::COleClientItem(COleDocument *) 505 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 506 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 507 COleControl::COleControl() 508 COleControlContainer::COleControlContainer(CWnd *) 509 COleControlLock::COleControlLock(_GUID const &) 510 COleControlSite::COleControlSite(COleControlContainer *) 511 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 512 COleCurrency::COleCurrency(tagVARIANT const &) 513 COleCurrency::COleCurrency(COleCurrency const &) 514 COleCurrency::COleCurrency(long,long) 515 COleCurrency::COleCurrency(union tagCY) 516 COleCurrency::COleCurrency() 517 COleDataObject::COleDataObject() 518 COleDataSource::COleDataSource() 519 COleDialog::COleDialog(CWnd *) 520 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 521 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 522 COleDispatchDriver::COleDispatchDriver() 523 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 524 COleDocIPFrameWnd::COleDocIPFrameWnd() 525 COleDocObjectItem::COleDocObjectItem(COleDocument *) 526 COleDocument::COleDocument() 527 COleDropSource::COleDropSource() 528 COleDropTarget::COleDropTarget() 529 COleException::COleException() 530 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 531 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 532 COleIPFrameWnd::COleIPFrameWnd() 533 COleLinkingDoc::COleLinkingDoc() 534 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 535 COleMessageFilter::COleMessageFilter() 536 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 537 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 538 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 539 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 540 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 541 COleResizeBar::COleResizeBar() 542 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 543 COleSafeArray::COleSafeArray(tagVARIANT const &) 544 COleSafeArray::COleSafeArray(COleSafeArray const &) 545 COleSafeArray::COleSafeArray(COleVariant const &) 546 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 547 COleSafeArray::COleSafeArray(tagVARIANT const *) 548 COleSafeArray::COleSafeArray() 549 COleServerDoc::COleServerDoc() 550 COleServerItem::COleServerItem(COleServerDoc *,int) 551 COleStreamFile::COleStreamFile(IStream *) 552 COleTemplateServer::COleTemplateServer() 553 COleUILinkInfo::COleUILinkInfo(COleDocument *) 554 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 555 COleVariant::COleVariant(ATL::CStringT > > &) 556 COleVariant::COleVariant(tagVARIANT const &) 557 COleVariant::COleVariant(COleVariant const &) 558 COleVariant::COleVariant(CByteArray const &) 559 COleVariant::COleVariant(CLongBinary const &) 560 COleVariant::COleVariant(COleCurrency const &) 561 COleVariant::COleVariant(ATL::COleDateTime const &) 562 COleVariant::COleVariant(unsigned char) 563 COleVariant::COleVariant(short,unsigned short) 564 COleVariant::COleVariant(long,unsigned short) 565 COleVariant::COleVariant(float) 566 COleVariant::COleVariant(double) 567 COleVariant::COleVariant(wchar_t const *) 568 COleVariant::COleVariant(wchar_t const *,unsigned short) 569 COleVariant::COleVariant(_ITEMIDLIST const *) 570 COleVariant::COleVariant(tagVARIANT const *) 571 COleVariant::COleVariant() 572 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 573 CPaintDC::CPaintDC(CWnd *) 574 CPalette::CPalette() 575 CPen::CPen(int,int,unsigned long) 576 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 577 CPen::CPen() 578 CPictureHolder::CPictureHolder() 579 CPreviewDC::CPreviewDC() 580 CPreviewView::CPreviewView() 581 CPrintDialog::CPrintDialog(tagPDW &) 582 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 583 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 584 CPrintInfo::CPrintInfo() 585 CPrintPreviewState::CPrintPreviewState() 586 CProgressCtrl::CProgressCtrl() 587 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 588 CProperty::CProperty(unsigned long,void * const,unsigned long) 589 CProperty::CProperty() 590 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 591 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 592 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 593 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 594 CPropertyPage::CPropertyPage() 595 CPropertySection::CPropertySection(_GUID) 596 CPropertySection::CPropertySection() 597 CPropertySet::CPropertySet(_GUID) 598 CPropertySet::CPropertySet() 599 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 600 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 601 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 602 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 603 CPropertySheet::CPropertySheet() 604 CPropExchange::CPropExchange() 605 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 606 CPtrArray::CPtrArray() 607 CPtrList::CPtrList(int) 608 CReBar::CReBar() 609 CReBarCtrl::CReBarCtrl() 610 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 611 CRecordset::CRecordset(CDatabase *) 612 CRecordView::CRecordView(unsigned int) 613 CRecordView::CRecordView(wchar_t const *) 614 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 615 CRectTracker::CRectTracker() 616 CReObject::CReObject(CRichEditCntrItem *) 617 CReObject::CReObject() 618 CResetPropExchange::CResetPropExchange() 619 CResourceException::CResourceException(int,unsigned int) 620 CResourceException::CResourceException() 621 CRgn::CRgn() 622 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 623 CRichEditCtrl::CRichEditCtrl() 624 CRichEditDoc::CRichEditDoc() 625 CRichEditView::CRichEditView() 626 CScrollBar::CScrollBar() 627 CScrollView::CScrollView() 628 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 629 CSharedFile::CSharedFile(unsigned int,unsigned int) 630 CSimpleException::CSimpleException(int) 631 CSimpleException::CSimpleException() 632 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 633 CSingleLock::CSingleLock(CSyncObject *,int) 634 CSliderCtrl::CSliderCtrl() 635 CSocket::CSocket() 636 CSocketFile::CSocketFile(CSocket *,int) 637 CSocketWnd::CSocketWnd() 638 CSpinButtonCtrl::CSpinButtonCtrl() 639 CSplitterWnd::CSplitterWnd() 640 CStatic::CStatic() 641 CStatusBar::CStatusBar() 642 CStatusBarCtrl::CStatusBarCtrl() 643 CStdioFile::CStdioFile(_iobuf *) 644 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 645 CStdioFile::CStdioFile() 646 CStringArray::CStringArray() 647 CStringList::CStringList(int) 648 CSyncObject::CSyncObject(wchar_t const *) 649 CTabCtrl::CTabCtrl() 650 CTestCmdUI::CTestCmdUI() 651 CThreadSlotData::CThreadSlotData() 652 CToolBar::CToolBar() 653 CToolBarCtrl::CToolBarCtrl() 654 CToolTipCtrl::CToolTipCtrl() 655 CTreeCtrl::CTreeCtrl() 656 CTreeView::CTreeView() 657 CUIntArray::CUIntArray() 658 CUserException::CUserException(int,unsigned int) 659 CUserException::CUserException() 660 CView::CView() 661 CWaitCursor::CWaitCursor() 662 CWinApp::CWinApp(wchar_t const *) 663 CWindowDC::CWindowDC(CWnd *) 664 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 665 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 666 CWinThread::CWinThread() 667 CWnd::CWnd(HWND__ *) 668 CWnd::CWnd() 669 CWordArray::CWordArray() 670 CPreviewView::PAGE_INFO::PAGE_INFO() 671 ATL::CSimpleStringT::~CSimpleStringT() 672 ATL::CSimpleStringT::~CSimpleStringT() 673 ATL::CStringT > >::~CStringT > >() 674 ATL::CStringT > >::~CStringT > >() 675 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE() 676 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE() 677 _AFX_EDIT_STATE::~_AFX_EDIT_STATE() 678 _AFX_MAIL_STATE::~_AFX_MAIL_STATE() 679 _AFX_OLE_STATE::~_AFX_OLE_STATE() 680 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE() 681 _AFX_SOCK_STATE::~_AFX_SOCK_STATE() 682 _AFX_THREAD_STATE::~_AFX_THREAD_STATE() 683 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO() 684 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE() 685 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2() 686 AFX_MODULE_STATE::~AFX_MODULE_STATE() 687 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE() 688 CAnimateCtrl::~CAnimateCtrl() 689 CArchive::~CArchive() 690 CArchiveException::~CArchiveException() 691 CAsyncMonikerFile::~CAsyncMonikerFile() 692 CAsyncSocket::~CAsyncSocket() 693 CBitmap::~CBitmap() 694 CBrush::~CBrush() 695 CButton::~CButton() 696 CByteArray::~CByteArray() 697 CClientDC::~CClientDC() 698 CCmdTarget::~CCmdTarget() 699 CComboBox::~CComboBox() 700 CComboBoxEx::~CComboBoxEx() 701 CCommandLineInfo::~CCommandLineInfo() 702 CConnectionPoint::~CConnectionPoint() 703 CControlBar::~CControlBar() 704 CCriticalSection::~CCriticalSection() 705 CCtrlView::~CCtrlView() 706 CDatabase::~CDatabase() 707 CDataSourceControl::~CDataSourceControl() 708 CDateTimeCtrl::~CDateTimeCtrl() 709 CDBException::~CDBException() 710 CDBVariant::~CDBVariant() 711 CDC::~CDC() 712 CDHtmlControlSink::~CDHtmlControlSink() 713 CDHtmlDialog::~CDHtmlDialog() 714 CDialog::~CDialog() 715 CDialogBar::~CDialogBar() 716 CDialogTemplate::~CDialogTemplate() 717 CDocItem::~CDocItem() 718 CDockBar::~CDockBar() 719 CDockContext::~CDockContext() 720 CDockState::~CDockState() 721 CDocManager::~CDocManager() 722 CDocObjectServer::~CDocObjectServer() 723 CDocObjectServerItem::~CDocObjectServerItem() 724 CDocTemplate::~CDocTemplate() 725 CDocument::~CDocument() 726 CDragListBox::~CDragListBox() 727 CDWordArray::~CDWordArray() 728 CDynLinkLibrary::~CDynLinkLibrary() 729 CEdit::~CEdit() 730 CEditView::~CEditView() 731 CEnumArray::~CEnumArray() 732 CEnumConnections::~CEnumConnections() 733 CEnumConnPoints::~CEnumConnPoints() 734 CEnumFormatEtc::~CEnumFormatEtc() 735 CEnumOleVerb::~CEnumOleVerb() 736 CEnumUnknown::~CEnumUnknown() 737 CEvent::~CEvent() 738 CException::~CException() 739 CFile::~CFile() 740 CFileDialog::~CFileDialog() 741 CFileException::~CFileException() 742 CFileFind::~CFileFind() 743 CFixedAlloc::~CFixedAlloc() 744 CFixedAllocNoSync::~CFixedAllocNoSync() 745 CFont::~CFont() 746 CFontHolder::~CFontHolder() 747 CFrameWnd::~CFrameWnd() 748 CFtpConnection::~CFtpConnection() 749 CFtpFileFind::~CFtpFileFind() 750 CGdiObject::~CGdiObject() 751 CGopherConnection::~CGopherConnection() 752 CGopherFile::~CGopherFile() 753 CGopherFileFind::~CGopherFileFind() 754 CGopherLocator::~CGopherLocator() 755 CHeaderCtrl::~CHeaderCtrl() 756 CHotKeyCtrl::~CHotKeyCtrl() 757 CHtmlControlSite::~CHtmlControlSite() 758 CHtmlEditCtrl::~CHtmlEditCtrl() 759 CHtmlEditDoc::~CHtmlEditDoc() 760 CHtmlEditView::~CHtmlEditView() 761 CHtmlView::~CHtmlView() 762 CHttpConnection::~CHttpConnection() 763 CHttpFile::~CHttpFile() 764 CImageList::~CImageList() 765 CInternetConnection::~CInternetConnection() 766 CInternetException::~CInternetException() 767 CInternetFile::~CInternetFile() 768 CInternetSession::~CInternetSession() 769 CInvalidArgException::~CInvalidArgException() 770 CIPAddressCtrl::~CIPAddressCtrl() 771 CListBox::~CListBox() 772 CListCtrl::~CListCtrl() 773 CLongBinary::~CLongBinary() 774 CMapPtrToPtr::~CMapPtrToPtr() 775 CMapPtrToWord::~CMapPtrToWord() 776 CMapStringToOb::~CMapStringToOb() 777 CMapStringToPtr::~CMapStringToPtr() 778 CMapStringToString::~CMapStringToString() 779 CMapWordToOb::~CMapWordToOb() 780 CMapWordToPtr::~CMapWordToPtr() 781 CMemFile::~CMemFile() 782 CMemoryException::~CMemoryException() 783 CMenu::~CMenu() 784 CMetaFileDC::~CMetaFileDC() 785 CMiniFrameWnd::~CMiniFrameWnd() 786 CMonikerFile::~CMonikerFile() 787 CMonthCalCtrl::~CMonthCalCtrl() 788 CMultiDocTemplate::~CMultiDocTemplate() 789 CMultiLock::~CMultiLock() 790 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog() 791 CMutex::~CMutex() 792 CNotSupportedException::~CNotSupportedException() 793 CObArray::~CObArray() 794 CObject::~CObject() 795 CObList::~CObList() 796 COleBusyDialog::~COleBusyDialog() 797 COleChangeIconDialog::~COleChangeIconDialog() 798 COleChangeSourceDialog::~COleChangeSourceDialog() 799 COleClientItem::~COleClientItem() 800 COleCntrFrameWnd::~COleCntrFrameWnd() 801 COleControl::~COleControl() 802 COleControlContainer::~COleControlContainer() 803 COleControlLock::~COleControlLock() 804 COleControlSite::~COleControlSite() 805 COleControlSiteOrWnd::~COleControlSiteOrWnd() 806 COleConvertDialog::~COleConvertDialog() 807 COleDataObject::~COleDataObject() 808 COleDataSource::~COleDataSource() 809 COleDispatchDriver::~COleDispatchDriver() 810 COleDispatchException::~COleDispatchException() 811 COleDocIPFrameWnd::~COleDocIPFrameWnd() 812 COleDocObjectItem::~COleDocObjectItem() 813 COleDocument::~COleDocument() 814 COleDropTarget::~COleDropTarget() 815 COleException::~COleException() 816 COleFrameHook::~COleFrameHook() 817 COleInsertDialog::~COleInsertDialog() 818 COleIPFrameWnd::~COleIPFrameWnd() 819 COleLinkingDoc::~COleLinkingDoc() 820 COleLinksDialog::~COleLinksDialog() 821 COleMessageFilter::~COleMessageFilter() 822 COleObjectFactory::~COleObjectFactory() 823 COlePasteSpecialDialog::~COlePasteSpecialDialog() 824 COlePropertyPage::~COlePropertyPage() 825 COleResizeBar::~COleResizeBar() 826 COleSafeArray::~COleSafeArray() 827 COleServerDoc::~COleServerDoc() 828 COleServerItem::~COleServerItem() 829 COleStreamFile::~COleStreamFile() 830 COleUpdateDialog::~COleUpdateDialog() 831 COleVariant::~COleVariant() 832 CPaintDC::~CPaintDC() 833 CPalette::~CPalette() 834 CPen::~CPen() 835 CPictureHolder::~CPictureHolder() 836 CPreviewDC::~CPreviewDC() 837 CPreviewView::~CPreviewView() 838 CPrintInfo::~CPrintInfo() 839 CProcessLocalObject::~CProcessLocalObject() 840 CProgressCtrl::~CProgressCtrl() 841 CPropbagPropExchange::~CPropbagPropExchange() 842 CProperty::~CProperty() 843 CPropertyPage::~CPropertyPage() 844 CPropertySection::~CPropertySection() 845 CPropertySet::~CPropertySet() 846 CPropertySheet::~CPropertySheet() 847 CPtrArray::~CPtrArray() 848 CPtrList::~CPtrList() 849 CRecentFileList::~CRecentFileList() 850 CRecordset::~CRecordset() 851 CRecordView::~CRecordView() 852 CRectTracker::~CRectTracker() 853 CReObject::~CReObject() 854 CResourceException::~CResourceException() 855 CRgn::~CRgn() 856 CRichEditCntrItem::~CRichEditCntrItem() 857 CRichEditCtrl::~CRichEditCtrl() 858 CScrollBar::~CScrollBar() 859 CScrollView::~CScrollView() 860 CSemaphore::~CSemaphore() 861 CSharedFile::~CSharedFile() 862 CSimpleException::~CSimpleException() 863 CSingleDocTemplate::~CSingleDocTemplate() 864 CSingleLock::~CSingleLock() 865 CSliderCtrl::~CSliderCtrl() 866 CSocket::~CSocket() 867 CSocketFile::~CSocketFile() 868 CSpinButtonCtrl::~CSpinButtonCtrl() 869 CSplitterWnd::~CSplitterWnd() 870 CStatic::~CStatic() 871 CStatusBar::~CStatusBar() 872 CStatusBarCtrl::~CStatusBarCtrl() 873 CStdioFile::~CStdioFile() 874 CStringArray::~CStringArray() 875 CStringList::~CStringList() 876 CSyncObject::~CSyncObject() 877 CTabCtrl::~CTabCtrl() 878 CThreadLocalObject::~CThreadLocalObject() 879 CThreadSlotData::~CThreadSlotData() 880 CToolBar::~CToolBar() 881 CToolBarCtrl::~CToolBarCtrl() 882 CToolTipCtrl::~CToolTipCtrl() 883 CTreeCtrl::~CTreeCtrl() 884 CUIntArray::~CUIntArray() 885 CUserException::~CUserException() 886 CView::~CView() 887 CWaitCursor::~CWaitCursor() 888 CWinApp::~CWinApp() 889 CWindowDC::~CWindowDC() 890 CWinThread::~CWinThread() 891 CWnd::~CWnd() 892 CWordArray::~CWordArray() 893 void * operator new(unsigned int) 894 void * operator new(unsigned int,int,char const *,int) 895 void * operator new(unsigned int,char const *,int) 896 void * CNoTrackObject::operator new(unsigned int) 897 void * CNoTrackObject::operator new(unsigned int,char const *,int) 898 void * CObject::operator new(unsigned int) 899 void * CObject::operator new(unsigned int,void *) 900 void * CObject::operator new(unsigned int,char const *,int) 901 void operator delete(void *) 902 void operator delete(void *,int,char const *,int) 903 void operator delete(void *,char const *,int) 904 void CException::operator delete(void *) 905 void CException::operator delete(void *,char const *,int) 906 void CNoTrackObject::operator delete(void *) 907 void CNoTrackObject::operator delete(void *,char const *,int) 908 void CObject::operator delete(void *) 909 void CObject::operator delete(void *,void *) 910 void CObject::operator delete(void *,char const *,int) 911 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 912 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 913 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 914 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 915 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 916 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 917 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 918 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 919 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 920 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 921 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 922 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 923 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 924 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 925 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 926 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 927 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 928 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 929 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 930 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 931 void CArchive::operator=(CArchive const &) 932 void CDumpContext::operator=(CDumpContext const &) 933 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 934 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 935 COleCurrency const & COleCurrency::operator=(union tagCY) 936 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 937 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 938 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 939 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 940 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 941 COleVariant const & COleVariant::operator=(tagVARIANT const &) 942 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 943 COleVariant const & COleVariant::operator=(COleVariant const &) 944 COleVariant const & COleVariant::operator=(CByteArray const &) 945 COleVariant const & COleVariant::operator=(CLongBinary const &) 946 COleVariant const & COleVariant::operator=(COleCurrency const &) 947 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 948 COleVariant const & COleVariant::operator=(unsigned char) 949 COleVariant const & COleVariant::operator=(short) 950 COleVariant const & COleVariant::operator=(long) 951 COleVariant const & COleVariant::operator=(float) 952 COleVariant const & COleVariant::operator=(double) 953 COleVariant const & COleVariant::operator=(tagVARIANT const *) 954 COleVariant const & COleVariant::operator=(wchar_t const * const) 955 CArchive & operator>>(CArchive &,CByteArray * &) 956 CArchive & operator>>(CArchive &,CDocItem * &) 957 CArchive & operator>>(CArchive &,CDockState * &) 958 CArchive & operator>>(CArchive &,CDWordArray * &) 959 CArchive & operator>>(CArchive &,CMapStringToOb * &) 960 CArchive & operator>>(CArchive &,CMapStringToString * &) 961 CArchive & operator>>(CArchive &,CMapWordToOb * &) 962 CArchive & operator>>(CArchive &,CObArray * &) 963 CArchive & operator>>(CArchive &,CObject * &) 964 CArchive & operator>>(CArchive &,CObList * &) 965 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 966 CArchive & operator>>(CArchive &,CStringArray * &) 967 CArchive & operator>>(CArchive &,CStringList * &) 968 CArchive & operator>>(CArchive &,CWordArray * &) 969 CArchive & operator>>(CArchive &,CObject const * &) 970 CArchive & operator>>(CArchive &,tagPOINT &) 971 CArchive & operator>>(CArchive &,tagRECT &) 972 CArchive & operator>>(CArchive &,tagSIZE &) 973 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 974 CArchive & operator>>(CArchive &,COleCurrency &) 975 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 976 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 977 CArchive & operator>>(CArchive &,COleVariant &) 978 CArchive & operator>>(CArchive &,ATL::CTime &) 979 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 980 CArchive & CArchive::operator>>(__int64 &) 981 CArchive & CArchive::operator>>(unsigned __int64 &) 982 CArchive & CArchive::operator>>(bool &) 983 CArchive & CArchive::operator>>(wchar_t &) 984 CArchive & CArchive::operator>>(char &) 985 CArchive & CArchive::operator>>(unsigned char &) 986 CArchive & CArchive::operator>>(short &) 987 CArchive & CArchive::operator>>(unsigned short &) 988 CArchive & CArchive::operator>>(int &) 989 CArchive & CArchive::operator>>(unsigned int &) 990 CArchive & CArchive::operator>>(long &) 991 CArchive & CArchive::operator>>(unsigned long &) 992 CArchive & CArchive::operator>>(float &) 993 CArchive & CArchive::operator>>(double &) 994 CArchive & operator<<(CArchive &,tagRECT const &) 995 CArchive & operator<<(CArchive &,CObject const *) 996 CArchive & operator<<(CArchive &,tagPOINT) 997 CArchive & operator<<(CArchive &,tagSIZE) 998 CArchive & operator<<(CArchive &,ATL::CComBSTR) 999 CArchive & operator<<(CArchive &,COleCurrency) 1000 CArchive & operator<<(CArchive &,ATL::COleDateTime) 1001 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 1002 CArchive & operator<<(CArchive &,COleVariant) 1003 CArchive & operator<<(CArchive &,ATL::CTime) 1004 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 1005 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 1006 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 1007 CDumpContext & operator<<(CDumpContext &,tagPOINT) 1008 CDumpContext & operator<<(CDumpContext &,tagSIZE) 1009 CDumpContext & operator<<(CDumpContext &,COleCurrency) 1010 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 1011 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 1012 CDumpContext & operator<<(CDumpContext &,COleVariant) 1013 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 1014 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 1015 CArchive & CArchive::operator<<(__int64) 1016 CArchive & CArchive::operator<<(unsigned __int64) 1017 CArchive & CArchive::operator<<(bool) 1018 CArchive & CArchive::operator<<(wchar_t) 1019 CArchive & CArchive::operator<<(char) 1020 CArchive & CArchive::operator<<(unsigned char) 1021 CArchive & CArchive::operator<<(short) 1022 CArchive & CArchive::operator<<(unsigned short) 1023 CArchive & CArchive::operator<<(int) 1024 CArchive & CArchive::operator<<(unsigned int) 1025 CArchive & CArchive::operator<<(long) 1026 CArchive & CArchive::operator<<(unsigned long) 1027 CArchive & CArchive::operator<<(float) 1028 CArchive & CArchive::operator<<(double) 1029 CDumpContext & CDumpContext::operator<<(__int64) 1030 CDumpContext & CDumpContext::operator<<(unsigned __int64) 1031 CDumpContext & CDumpContext::operator<<(CObject const &) 1032 CDumpContext & CDumpContext::operator<<(unsigned char) 1033 CDumpContext & CDumpContext::operator<<(unsigned short) 1034 CDumpContext & CDumpContext::operator<<(int) 1035 CDumpContext & CDumpContext::operator<<(unsigned int) 1036 CDumpContext & CDumpContext::operator<<(long) 1037 CDumpContext & CDumpContext::operator<<(unsigned long) 1038 CDumpContext & CDumpContext::operator<<(float) 1039 CDumpContext & CDumpContext::operator<<(double) 1040 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 1041 CDumpContext & CDumpContext::operator<<(HDC__ *) 1042 CDumpContext & CDumpContext::operator<<(HFONT__ *) 1043 CDumpContext & CDumpContext::operator<<(HMENU__ *) 1044 CDumpContext & CDumpContext::operator<<(HWND__ *) 1045 CDumpContext & CDumpContext::operator<<(wchar_t const *) 1046 CDumpContext & CDumpContext::operator<<(char const *) 1047 CDumpContext & CDumpContext::operator<<(CObject const *) 1048 CDumpContext & CDumpContext::operator<<(void const *) 1049 int CGdiObject::operator==(CGdiObject const &)const 1050 int CMenu::operator==(CMenu const &)const 1051 int COleCurrency::operator==(COleCurrency const &)const 1052 int COleSafeArray::operator==(tagSAFEARRAY const &)const 1053 int COleSafeArray::operator==(tagVARIANT const &)const 1054 int COleSafeArray::operator==(COleSafeArray const &)const 1055 int COleSafeArray::operator==(COleVariant const &)const 1056 int COleSafeArray::operator==(tagSAFEARRAY const *)const 1057 int COleSafeArray::operator==(tagVARIANT const *)const 1058 int COleVariant::operator==(tagVARIANT const &)const 1059 int COleVariant::operator==(tagVARIANT const *)const 1060 int CWnd::operator==(CWnd const &)const 1061 int CGdiObject::operator!=(CGdiObject const &)const 1062 int CMenu::operator!=(CMenu const &)const 1063 int COleCurrency::operator!=(COleCurrency const &)const 1064 int CWnd::operator!=(CWnd const &)const 1065 wchar_t ATL::CSimpleStringT::operator[](int)const 1066 char ATL::CSimpleStringT::operator[](int)const 1067 unsigned char & CByteArray::operator[](int) 1068 unsigned char CByteArray::operator[](int)const 1069 unsigned long & CDWordArray::operator[](int) 1070 unsigned long CDWordArray::operator[](int)const 1071 void * & CMapPtrToPtr::operator[](void *) 1072 unsigned short & CMapPtrToWord::operator[](void *) 1073 CObject * & CMapStringToOb::operator[](wchar_t const *) 1074 void * & CMapStringToPtr::operator[](wchar_t const *) 1075 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 1076 CObject * & CMapWordToOb::operator[](unsigned short) 1077 void * & CMapWordToPtr::operator[](unsigned short) 1078 CObject * & CObArray::operator[](int) 1079 CObject * CObArray::operator[](int)const 1080 void * & CPtrArray::operator[](int) 1081 void * CPtrArray::operator[](int)const 1082 ATL::CStringT > > & CStringArray::operator[](int) 1083 ATL::CStringT > > const & CStringArray::operator[](int)const 1084 unsigned int & CUIntArray::operator[](int) 1085 unsigned int CUIntArray::operator[](int)const 1086 unsigned short & CWordArray::operator[](int) 1087 unsigned short CWordArray::operator[](int)const 1088 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1089 ATL::CSimpleStringT::operator wchar_t const *()const 1090 ATL::CSimpleStringT::operator ATL::CSimpleStringT &() 1091 ATL::CSimpleStringT::operator char const *()const 1092 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1093 ATL::CStringT > >::operator ATL::CSimpleStringT &() 1094 CAsyncSocket::operator unsigned int()const 1095 CBitmap::operator HBITMAP__ *()const 1096 CBrush::operator HBRUSH__ *()const 1097 CCriticalSection::operator _RTL_CRITICAL_SECTION *() 1098 CDC::operator HDC__ *()const 1099 CFile::operator void *()const 1100 CFont::operator HFONT__ *()const 1101 CGdiObject::operator void *()const 1102 CGopherLocator::operator wchar_t const *()const 1103 CImageList::operator _IMAGELIST *()const 1104 CInternetConnection::operator void *()const 1105 CInternetFile::operator void *()const 1106 CInternetSession::operator void *()const 1107 CMenu::operator HMENU__ *()const 1108 COleCurrency::operator union tagCY()const 1109 COleDispatchDriver::operator IDispatch *() 1110 COleSafeArray::operator tagVARIANT *() 1111 COleSafeArray::operator tagVARIANT const *()const 1112 COleVariant::operator tagVARIANT *() 1113 COleVariant::operator tagVARIANT const *()const 1114 CPalette::operator HPALETTE__ *()const 1115 CPen::operator HPEN__ *()const 1116 CRgn::operator HRGN__ *()const 1117 CSyncObject::operator void *()const 1118 CWinThread::operator void *()const 1119 CWnd::operator HWND__ *()const 1120 COleCurrency COleCurrency::operator*(long)const 1121 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1122 COleCurrency COleCurrency::operator-()const 1123 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1124 COleCurrency COleCurrency::operator/(long)const 1125 int COleCurrency::operator<(COleCurrency const &)const 1126 int COleCurrency::operator<=(COleCurrency const &)const 1127 int COleCurrency::operator>(COleCurrency const &)const 1128 int COleCurrency::operator>=(COleCurrency const &)const 1129 COleCurrency const & COleCurrency::operator*=(long) 1130 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1131 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1132 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1133 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1134 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 1135 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1136 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1137 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1138 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1139 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 1140 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1141 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1142 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1143 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1144 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1145 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1146 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1147 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1148 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1149 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1150 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1151 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1152 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1153 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1154 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1155 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1156 int _AfxAbortProc(HDC__ *,int) 1157 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1158 int _AfxDeleteRegKey(wchar_t const *) 1159 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1160 int _AfxSocketInit(WSAData *) 1161 void CArchive::Abort() 1162 void CFile::Abort() 1163 void CInternetFile::Abort() 1164 void CMemFile::Abort() 1165 void CMirrorFile::Abort() 1166 void COleStreamFile::Abort() 1167 void CSocketFile::Abort() 1168 void CStdioFile::Abort() 1169 int CDC::AbortDoc() 1170 int CDC::AbortPath() 1171 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1172 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1173 long CWnd::accDoDefaultAction(tagVARIANT) 1174 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1175 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1176 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1177 void COleSafeArray::AccessData(void * *) 1178 long CWnd::accHitTest(long,long,tagVARIANT *) 1179 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1180 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1181 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1182 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1183 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1184 long CWnd::accSelect(long,tagVARIANT) 1185 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1186 void COleClientItem::Activate(long,CView *,tagMSG *) 1187 void CToolTipCtrl::Activate(int) 1188 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1189 void COleDocObjectItem::ActivateAndShow() 1190 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1191 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1192 void CDocObjectServer::ActivateDocObject() 1193 void COleServerDoc::ActivateDocObject() 1194 void CFrameWnd::ActivateFrame(int) 1195 void CMDIChildWnd::ActivateFrame(int) 1196 int COleServerDoc::ActivateInPlace() 1197 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1198 void CSplitterWnd::ActivateNext(int) 1199 void CWnd::ActivateTopParent() 1200 int CByteArray::Add(unsigned char) 1201 int CDWordArray::Add(unsigned long) 1202 int CImageList::Add(HICON__ *) 1203 int CImageList::Add(CBitmap *,CBitmap *) 1204 int CImageList::Add(CBitmap *,unsigned long) 1205 int CObArray::Add(CObject *) 1206 int CPtrArray::Add(void *) 1207 void CRecentFileList::Add(wchar_t const *) 1208 int CStringArray::Add(ATL::CStringT > > const &) 1209 int CStringArray::Add(wchar_t const *) 1210 int CUIntArray::Add(unsigned int) 1211 int CWordArray::Add(unsigned short) 1212 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 1213 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 1214 int CToolBarCtrl::AddBitmap(int,unsigned int) 1215 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1216 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1217 void COleClientItem::AddCachedData(COleDataSource *) 1218 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1219 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1220 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1221 void CFrameWnd::AddControlBar(CControlBar *) 1222 void CDocManager::AddDocTemplate(CDocTemplate *) 1223 void CWinApp::AddDocTemplate(CDocTemplate *) 1224 void CDocTemplate::AddDocument(CDocument *) 1225 void CMultiDocTemplate::AddDocument(CDocument *) 1226 void CSingleDocTemplate::AddDocument(CDocument *) 1227 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1228 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 1229 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1230 void COleControl::AddFrameLevelUI() 1231 void CFrameWnd::AddFrameWnd() 1232 __POSITION * CObList::AddHead(CObject *) 1233 void CObList::AddHead(CObList *) 1234 __POSITION * CPtrList::AddHead(void *) 1235 void CPtrList::AddHead(CPtrList *) 1236 void CSimpleList::AddHead(void *) 1237 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1238 __POSITION * CStringList::AddHead(wchar_t const *) 1239 void CStringList::AddHead(CStringList *) 1240 void COleDocument::AddItem(CDocItem *) 1241 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1242 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1243 void CRecordset::AddNew() 1244 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1245 void CPropertySheet::AddPage(CPropertyPage *) 1246 void CPropertySection::AddProperty(CProperty *) 1247 void CPropertySet::AddProperty(_GUID,CProperty *) 1248 unsigned long CArchiveStream::AddRef() 1249 unsigned long CBlobProperty::AddRef() 1250 unsigned long CBrowserControlSite::AddRef() 1251 unsigned long CDHtmlControlSink::AddRef() 1252 unsigned long CDHtmlElementEventSink::AddRef() 1253 unsigned long CDHtmlEventSink::AddRef() 1254 unsigned long CInnerUnknown::AddRef() 1255 unsigned long COleConnPtContainer::AddRef() 1256 unsigned long COleDispatchImpl::AddRef() 1257 unsigned long COleUILinkInfo::AddRef() 1258 unsigned long CPrintDialogEx::AddRef() 1259 unsigned long CWnd::XAccessible::AddRef() 1260 unsigned long CWnd::XAccessibleServer::AddRef() 1261 unsigned long COleClientItem::XAdviseSink::AddRef() 1262 unsigned long COleControlSite::XAmbientProps::AddRef() 1263 unsigned long COleControlSite::XBoundObjectSite::AddRef() 1264 unsigned long COleObjectFactory::XClassFactory::AddRef() 1265 unsigned long CConnectionPoint::XConnPt::AddRef() 1266 unsigned long COleControl::XDataObject::AddRef() 1267 unsigned long COleDataSource::XDataObject::AddRef() 1268 unsigned long COleServerDoc::XDataObject::AddRef() 1269 unsigned long COleServerItem::XDataObject::AddRef() 1270 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef() 1271 unsigned long COleDropSource::XDropSource::AddRef() 1272 unsigned long COleDropTarget::XDropTarget::AddRef() 1273 unsigned long CEnumArray::XEnumVOID::AddRef() 1274 unsigned long COleControlSite::XEventSink::AddRef() 1275 unsigned long COleControl::XFontNotification::AddRef() 1276 unsigned long COleMessageFilter::XMessageFilter::AddRef() 1277 unsigned long COleControlSite::XNotifyDBEvents::AddRef() 1278 unsigned long COleControl::XOleCache::AddRef() 1279 unsigned long COleClientItem::XOleClientSite::AddRef() 1280 unsigned long COleControlSite::XOleClientSite::AddRef() 1281 unsigned long CDocObjectServer::XOleCommandTarget::AddRef() 1282 unsigned long COleFrameHook::XOleCommandTarget::AddRef() 1283 unsigned long COleControlContainer::XOleContainer::AddRef() 1284 unsigned long COleControl::XOleControl::AddRef() 1285 unsigned long COleControlSite::XOleControlSite::AddRef() 1286 unsigned long CDocObjectServer::XOleDocument::AddRef() 1287 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef() 1288 unsigned long CDocObjectServer::XOleDocumentView::AddRef() 1289 unsigned long COleControl::XOleInPlaceActiveObject::AddRef() 1290 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef() 1291 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef() 1292 unsigned long COleControl::XOleInPlaceObject::AddRef() 1293 unsigned long COleServerDoc::XOleInPlaceObject::AddRef() 1294 unsigned long COleControlContainer::XOleIPFrame::AddRef() 1295 unsigned long COleClientItem::XOleIPSite::AddRef() 1296 unsigned long COleControlSite::XOleIPSite::AddRef() 1297 unsigned long COleLinkingDoc::XOleItemContainer::AddRef() 1298 unsigned long CDocObjectServer::XOleObject::AddRef() 1299 unsigned long COleControl::XOleObject::AddRef() 1300 unsigned long COleServerDoc::XOleObject::AddRef() 1301 unsigned long COleServerItem::XOleObject::AddRef() 1302 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef() 1303 unsigned long COleControl::XPerPropertyBrowsing::AddRef() 1304 unsigned long COleLinkingDoc::XPersistFile::AddRef() 1305 unsigned long COleControl::XPersistMemory::AddRef() 1306 unsigned long COleControl::XPersistPropertyBag::AddRef() 1307 unsigned long COleControl::XPersistStorage::AddRef() 1308 unsigned long COleServerDoc::XPersistStorage::AddRef() 1309 unsigned long COleControl::XPersistStreamInit::AddRef() 1310 unsigned long COleControl::XPointerInactive::AddRef() 1311 unsigned long CDocObjectServer::XPrint::AddRef() 1312 unsigned long COleControlSite::XPropertyNotifySink::AddRef() 1313 unsigned long COlePropertyPage::XPropertyPage::AddRef() 1314 unsigned long COlePropertyPage::XPropNotifySink::AddRef() 1315 unsigned long COleControl::XProvideClassInfo::AddRef() 1316 unsigned long COleControl::XQuickActivate::AddRef() 1317 unsigned long CRichEditView::XRichEditOleCallback::AddRef() 1318 unsigned long COleControlSite::XRowsetNotify::AddRef() 1319 unsigned long COleControl::XSpecifyPropertyPages::AddRef() 1320 unsigned long COleControl::XViewObject::AddRef() 1321 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1322 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1323 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 1324 CPropertySection * CPropertySet::AddSection(_GUID) 1325 void CPropertySet::AddSection(CPropertySection *) 1326 void COlePasteSpecialDialog::AddStandardFormats(int) 1327 int CComboBox::AddString(wchar_t const *) 1328 int CComboBoxEx::AddString(wchar_t const *) 1329 int CListBox::AddString(wchar_t const *) 1330 int CToolBarCtrl::AddString(unsigned int) 1331 int CToolBarCtrl::AddStrings(wchar_t const *) 1332 __POSITION * CObList::AddTail(CObject *) 1333 void CObList::AddTail(CObList *) 1334 __POSITION * CPtrList::AddTail(void *) 1335 void CPtrList::AddTail(CPtrList *) 1336 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1337 __POSITION * CStringList::AddTail(wchar_t const *) 1338 void CStringList::AddTail(CStringList *) 1339 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1340 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1341 void CWinApp::AddToRecentFileList(wchar_t const *) 1342 void CDocument::AddView(CView *) 1343 void CMetaFileDC::AdjustCP(int) 1344 void CRichEditView::AdjustDialogPosition(CDialog *) 1345 void CRectTracker::AdjustRect(int,tagRECT *) 1346 void CTabCtrl::AdjustRect(int,tagRECT *) 1347 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1348 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1349 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1350 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1351 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1352 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1353 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1354 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1355 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1356 void AfxAbort() 1357 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1358 int AfxAssertFailedLine(char const *,int) 1359 void AfxAssertValidObject(CObject const *,char const *,int) 1360 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1361 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1362 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1363 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1364 void AfxCancelModes(HWND__ *) 1365 void AfxCheckError(long) 1366 int AfxCheckMemory() 1367 void AfxClassInit(CRuntime*) 1368 int AfxComparePath(wchar_t const *,wchar_t const *) 1369 int AfxCompareValueByRef(void *,void *,int) 1370 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1371 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1372 void AfxCopyValueByRef(void *,void *,long *,int) 1373 void AfxCoreInitModule() 1374 HDC__ * AfxCreateDC(void *,void *) 1375 int AfxCriticalInit() 1376 int AfxCriticalNewHandler(unsigned int) 1377 void AfxCriticalTerm() 1378 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1379 AUX_DATA afxData 1380 void AfxDeleteObject(void * *) 1381 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1382 int AfxDiagnosticInit() 1383 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1384 long AfxDllCanUnloadNow() 1385 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1386 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1387 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1388 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1389 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1390 CDumpContext afxDump 1391 void AfxDump(CObject const *) 1392 int AfxDumpMemoryLeaks() 1393 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1394 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1395 void AfxEditviewTerm() 1396 void AfxEnableControlContainer(COccManager *) 1397 int AfxEnableMemoryTracking(int) 1398 int AfxEndDeferRegisterClass(long) 1399 void AfxEndThread(unsigned int,int) 1400 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1401 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1402 void AfxFailMaxChars(CDataExchange *,int) 1403 void AfxFailRadio(CDataExchange *) 1404 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1405 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1406 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1407 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1408 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1409 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1410 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1411 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1412 int AfxFreeLibrary(HINSTANCE__ *) 1413 void AfxFreeMemoryDebug(void *,int) 1414 int AfxFullPath(wchar_t *,wchar_t const *) 1415 long (__stdcall*AfxGetAfxWndProc())(HWND__ *,unsigned int,unsigned int,long) 1416 CWinApp * AfxGetApp() 1417 AFX_MODULE_STATE * AfxGetAppModuleState() 1418 wchar_t const * AfxGetAppName() 1419 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1420 tagMSG * AfxGetCurrentMessage() 1421 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1422 unsigned long AfxGetDllVersion() 1423 wchar_t const * AfxGetFacilityString(long) 1424 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1425 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1426 wchar_t const * AfxGetFullScodeString(long) 1427 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1428 void * AfxGetHENV() 1429 wchar_t const * AfxGetIIDString(_GUID const &) 1430 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1431 HINSTANCE__ * AfxGetInstanceHandle() 1432 unsigned long AfxGetInternetHandleType(void *) 1433 CWnd * AfxGetMainWnd() 1434 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1435 AFX_MODULE_STATE * AfxGetModuleState() 1436 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState() 1437 int (__cdecl*AfxGetNewHandler())(unsigned int) 1438 HWND__ * AfxGetParentOwner(HWND__ *) 1439 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1440 HINSTANCE__ * AfxGetResourceHandle() 1441 _AFX_RICHEDIT_STATE * AfxGetRichEditState() 1442 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1443 wchar_t const * AfxGetScodeRangeString(long) 1444 wchar_t const * AfxGetScodeString(long) 1445 wchar_t const * AfxGetSeverityString(long) 1446 ATL::IAtlStringMgr * AfxGetStringManager() 1447 CWinThread * AfxGetThread() 1448 _AFX_THREAD_STATE * AfxGetThreadState() 1449 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1450 void AfxGlobalFree(void *) 1451 int AfxHelpEnabled() 1452 void AfxHookWindowCreate(CWnd *) 1453 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1454 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1455 void AfxInitLocalData(HINSTANCE__ *) 1456 int AfxInitRichEdit() 1457 int AfxInitRichEdit2() 1458 void AfxInitThread() 1459 int AfxInternalIsIdleMessage(tagMSG *) 1460 int AfxInternalPreTranslateMessage(tagMSG *) 1461 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1462 int AfxInternalPumpMessage() 1463 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1464 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1465 int AfxIsDescendant(HWND__ *,HWND__ *) 1466 int AfxIsIdleMessage(tagMSG *) 1467 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1468 int AfxIsValidAddress(void const *,unsigned int,int) 1469 int AfxIsValidString(wchar_t const *,int) 1470 int AfxIsValidString(char const *,int) 1471 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1472 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1473 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1474 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1475 int AfxLoadString(unsigned int,char *,unsigned int) 1476 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1477 void AfxLockGlobals(int) 1478 void AfxLockTempMaps() 1479 CHandleMap * afxMapHDC(int) 1480 CHandleMap * afxMapHGDIOBJ(int) 1481 CHandleMap * afxMapHIMAGELIST(int) 1482 CHandleMap * afxMapHMENU(int) 1483 CHandleMap * afxMapHWND(int) 1484 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1485 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1486 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1487 int AfxNewHandler(unsigned int) 1488 int AfxOleCanExitApp() 1489 COleMessageFilter * AfxOleGetMessageFilter() 1490 int AfxOleGetUserCtrl() 1491 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1492 int AfxOleInit() 1493 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1494 void AfxOleLockApp() 1495 int AfxOleLockControl(_GUID const &) 1496 int AfxOleLockControl(wchar_t const *) 1497 void AfxOleOnReleaseAllObjects() 1498 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1499 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1500 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1501 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1502 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1503 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1504 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1505 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1506 void AfxOleSetUserCtrl(int) 1507 void AfxOleTerm(int) 1508 void AfxOleTermOrFreeLib(int,int) 1509 void AfxOleUnlockAllControls() 1510 void AfxOleUnlockApp() 1511 int AfxOleUnlockControl(_GUID const &) 1512 int AfxOleUnlockControl(wchar_t const *) 1513 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1514 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1515 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1516 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1517 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1518 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1519 void AfxPostQuitMessage(int) 1520 int AfxPreTranslateMessage(tagMSG *) 1521 long AfxProcessWndProcException(CException *,tagMSG const *) 1522 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1523 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1524 int AfxPumpMessage() 1525 unsigned int AfxReadStringLength(CArchive &,int &) 1526 int AfxRegisterClass(tagWNDCLASSW *) 1527 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1528 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1529 void AfxResetMsgCache() 1530 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1531 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1532 void AfxSafeArrayInit(COleSafeArray *) 1533 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1534 void AfxSetAllocStop(long) 1535 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1536 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1537 void AfxSetResourceHandle(HINSTANCE__ *) 1538 void AfxSetWindowText(HWND__ *,wchar_t const *) 1539 void AfxSocketTerm() 1540 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1541 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1542 void AfxStoreField(CRecordset &,unsigned int,void *) 1543 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1544 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1545 void AfxTermLocalData(HINSTANCE__ *,int) 1546 void AfxTermThread(HINSTANCE__ *) 1547 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1548 void AfxThrowArchiveException(int,wchar_t const *) 1549 void AfxThrowDBException(short,CDatabase *,void *) 1550 void AfxThrowFileException(int,long,wchar_t const *) 1551 void AfxThrowInternetException(unsigned long,unsigned long) 1552 void AfxThrowInvalidArgException() 1553 void AfxThrowLastCleanup() 1554 void AfxThrowMemoryException() 1555 void AfxThrowNotSupportedException() 1556 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1557 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1558 void AfxThrowOleException(long) 1559 void AfxThrowResourceException() 1560 void AfxThrowUserException() 1561 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1562 void AfxTlsAddRef() 1563 void AfxTlsRelease() 1564 void AfxTrace(wchar_t const *,...) 1565 int afxTraceEnabled 1566 unsigned int afxTraceFlags 1567 void AfxTrackerTerm() 1568 void AfxTryCleanup() 1569 int AfxUnhookWindowCreate() 1570 void AfxUnlockGlobals(int) 1571 int AfxUnlockTempMaps(int) 1572 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1573 void AfxVariantInit(tagVARIANT *) 1574 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1575 char * AfxW2AHelper(char *,wchar_t const *,int) 1576 void AfxWingdixTerm() 1577 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1578 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1579 void AfxWinTerm() 1580 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1581 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1582 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1583 void AfxWriteStringLength(CArchive &,unsigned int,int) 1584 void * CFixedAlloc::Alloc() 1585 void * CFixedAllocNoSync::Alloc() 1586 unsigned char * CMemFile::Alloc(unsigned long) 1587 unsigned char * CSharedFile::Alloc(unsigned long) 1588 void CRecordset::AllocAndCacheFieldInfo() 1589 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1590 void CDatabase::AllocConnect(unsigned long) 1591 void COleSafeArray::AllocData() 1592 void CRecordset::AllocDataCache() 1593 void COleSafeArray::AllocDescriptor(unsigned long) 1594 int CControlBar::AllocElements(int,int) 1595 int CStatusBar::AllocElements(int,int) 1596 int CRecordset::AllocHstmt() 1597 void CPropertyPage::AllocPSP(unsigned long) 1598 void CRecordset::AllocRowset() 1599 int CThreadSlotData::AllocSlot() 1600 void CRecordset::AllocStatusArrays() 1601 wchar_t * ATL::CStringT > >::AllocSysString()const 1602 wchar_t * ATL::CStringT > >::AllocSysString()const 1603 void * CProperty::AllocValue(unsigned long) 1604 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1605 short COleControl::AmbientAppearance() 1606 unsigned long COleControl::AmbientBackColor() 1607 ATL::CStringT > > COleControl::AmbientDisplayName() 1608 IFontDisp * COleControl::AmbientFont() 1609 unsigned long COleControl::AmbientForeColor() 1610 unsigned long COleControl::AmbientLocaleID() 1611 ATL::CStringT > > COleControl::AmbientScaleUnits() 1612 int COleControl::AmbientShowGrabHandles() 1613 int COleControl::AmbientShowHatching() 1614 short COleControl::AmbientTextAlign() 1615 int COleControl::AmbientUIDead() 1616 int COleControl::AmbientUserMode() 1617 int CDC::AngleArc(int,int,int,float,float) 1618 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1619 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1620 void ATL::CSimpleStringT::Append(wchar_t const *) 1621 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1622 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1623 void ATL::CSimpleStringT::Append(char const *) 1624 void ATL::CSimpleStringT::Append(char const *,int) 1625 int CByteArray::Append(CByteArray const &) 1626 int CDWordArray::Append(CDWordArray const &) 1627 int CObArray::Append(CObArray const &) 1628 int CPtrArray::Append(CPtrArray const &) 1629 int CStringArray::Append(CStringArray const &) 1630 int CUIntArray::Append(CUIntArray const &) 1631 int CWordArray::Append(CWordArray const &) 1632 void ATL::CSimpleStringT::AppendChar(wchar_t) 1633 void ATL::CSimpleStringT::AppendChar(char) 1634 void CRecordset::AppendFilterAndSortSQL() 1635 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1636 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1637 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1638 void ATL::CStringT > >::AppendFormat(char const *,...) 1639 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1640 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1641 int CMenu::AppendMenuW(unsigned int,unsigned int,wchar_t const *) 1642 int CMenu::AppendMenuW(unsigned int,unsigned int,CBitmap const *) 1643 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1644 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1645 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1646 long COlePropertyPage::XPropertyPage::Apply() 1647 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1648 int COleDocument::ApplyPrintDevice(tagPDW const *) 1649 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1650 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1651 int CDC::Arc(int,int,int,int,int,int,int,int) 1652 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1653 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1654 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1655 int CListCtrl::Arrange(unsigned int) 1656 unsigned int CWnd::ArrangeIconicWindows() 1657 void CAsyncMonikerFile::AssertValid()const 1658 void CAsyncSocket::AssertValid()const 1659 void CBitmapButton::AssertValid()const 1660 void CByteArray::AssertValid()const 1661 void CCachedDataPathProperty::AssertValid()const 1662 void CClientDC::AssertValid()const 1663 void CCmdTarget::AssertValid()const 1664 void CControlBar::AssertValid()const 1665 void CCtrlView::AssertValid()const 1666 void CDatabase::AssertValid()const 1667 void CDataPathProperty::AssertValid()const 1668 void CDC::AssertValid()const 1669 void CDialog::AssertValid()const 1670 void CDocItem::AssertValid()const 1671 void CDockBar::AssertValid()const 1672 void CDocManager::AssertValid()const 1673 void CDocObjectServer::AssertValid()const 1674 void CDocObjectServerItem::AssertValid()const 1675 void CDocTemplate::AssertValid()const 1676 void CDocument::AssertValid()const 1677 void CDWordArray::AssertValid()const 1678 void CDynLinkLibrary::AssertValid()const 1679 void CEditView::AssertValid()const 1680 void CFile::AssertValid()const 1681 void CFileFind::AssertValid()const 1682 void CFormView::AssertValid()const 1683 void CFrameWnd::AssertValid()const 1684 void CFtpConnection::AssertValid()const 1685 void CFtpFileFind::AssertValid()const 1686 void CGdiObject::AssertValid()const 1687 void CGopherConnection::AssertValid()const 1688 void CGopherFile::AssertValid()const 1689 void CGopherFileFind::AssertValid()const 1690 void CHtmlEditDoc::AssertValid()const 1691 void CHtmlEditView::AssertValid()const 1692 void CHtmlView::AssertValid()const 1693 void CHttpConnection::AssertValid()const 1694 void CHttpFile::AssertValid()const 1695 void CImageList::AssertValid()const 1696 void CInternetConnection::AssertValid()const 1697 void CInternetFile::AssertValid()const 1698 void CLongBinary::AssertValid()const 1699 void CMapPtrToPtr::AssertValid()const 1700 void CMapPtrToWord::AssertValid()const 1701 void CMapStringToOb::AssertValid()const 1702 void CMapStringToPtr::AssertValid()const 1703 void CMapStringToString::AssertValid()const 1704 void CMapWordToOb::AssertValid()const 1705 void CMapWordToPtr::AssertValid()const 1706 void CMDIChildWnd::AssertValid()const 1707 void CMDIFrameWnd::AssertValid()const 1708 void CMemFile::AssertValid()const 1709 void CMenu::AssertValid()const 1710 void CMonikerFile::AssertValid()const 1711 void CMultiDocTemplate::AssertValid()const 1712 void CObArray::AssertValid()const 1713 void CObject::AssertValid()const 1714 void CObList::AssertValid()const 1715 void COleChangeSourceDialog::AssertValid()const 1716 void COleClientItem::AssertValid()const 1717 void COleCntrFrameWnd::AssertValid()const 1718 void COleControl::AssertValid()const 1719 void COleDataSource::AssertValid()const 1720 void COleDocIPFrameWnd::AssertValid()const 1721 void COleDocument::AssertValid()const 1722 void COleDropTarget::AssertValid()const 1723 void COleIPFrameWnd::AssertValid()const 1724 void COleLinkingDoc::AssertValid()const 1725 void COleLinksDialog::AssertValid()const 1726 void COleMessageFilter::AssertValid()const 1727 void COleObjectFactory::AssertValid()const 1728 void COlePasteSpecialDialog::AssertValid()const 1729 void COlePropertiesDialog::AssertValid()const 1730 void COleServerDoc::AssertValid()const 1731 void COleServerItem::AssertValid()const 1732 void COleStreamFile::AssertValid()const 1733 void CPaintDC::AssertValid()const 1734 void CPreviewDC::AssertValid()const 1735 void CPreviewView::AssertValid()const 1736 void CPropertyPage::AssertValid()const 1737 void CPropertySheet::AssertValid()const 1738 void CPtrArray::AssertValid()const 1739 void CPtrList::AssertValid()const 1740 void CRecordset::AssertValid()const 1741 void CRecordView::AssertValid()const 1742 void CRichEditCntrItem::AssertValid()const 1743 void CRichEditDoc::AssertValid()const 1744 void CRichEditView::AssertValid()const 1745 void CScrollView::AssertValid()const 1746 void CSingleDocTemplate::AssertValid()const 1747 void CSocket::AssertValid()const 1748 void CSocketFile::AssertValid()const 1749 void CSplitterWnd::AssertValid()const 1750 void CStatusBar::AssertValid()const 1751 void CStringArray::AssertValid()const 1752 void CStringList::AssertValid()const 1753 void CSyncObject::AssertValid()const 1754 void CToolBar::AssertValid()const 1755 void CUIntArray::AssertValid()const 1756 void CView::AssertValid()const 1757 void CWinApp::AssertValid()const 1758 void CWindowDC::AssertValid()const 1759 void CWinThread::AssertValid()const 1760 void CWnd::AssertValid()const 1761 void CWordArray::AssertValid()const 1762 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1763 int CAsyncSocket::AsyncSelect(long) 1764 long ATL::AtlIAccessibleGetIDsOfNamesHelper(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 1765 long ATL::AtlIAccessibleInvokeHelper(IAccessible *,long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 1766 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1767 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1768 int CAsyncSocket::Attach(unsigned int,long) 1769 int CDC::Attach(HDC__ *) 1770 int CGdiObject::Attach(void *) 1771 int CImageList::Attach(_IMAGELIST *) 1772 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1773 int CMenu::Attach(HMENU__ *) 1774 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1775 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1776 void COleDataObject::Attach(IDataObject *,int) 1777 void COleSafeArray::Attach(tagVARIANT &) 1778 void COleStreamFile::Attach(IStream *) 1779 void COleVariant::Attach(tagVARIANT &) 1780 int CSocket::Attach(unsigned int) 1781 int CWnd::Attach(HWND__ *) 1782 int COleDataObject::AttachClipboard() 1783 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1784 void CWnd::AttachControlSite(CHandleMap *) 1785 void CWnd::AttachControlSite(CWnd *,unsigned int) 1786 void COleClientItem::AttachDataObject(COleDataObject &)const 1787 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1788 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1789 CPrintDialog * CPrintDialog::AttachOnSetup() 1790 void COleControlSite::AttachWindow() 1791 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1792 void CToolBarCtrl::AutoSize() 1793 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1794 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1795 void COleMessageFilter::BeginBusyState() 1796 void COleLinkingDoc::BeginDeferErrors() 1797 int CDragListBox::BeginDrag(CPoint) 1798 int CImageList::BeginDrag(int,CPoint) 1799 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1800 void COleDataObject::BeginEnumFormats() 1801 void CFrameWnd::BeginModalState() 1802 void CWnd::BeginModalState() 1803 CDC * CWnd::BeginPaint(tagPAINT*) 1804 int CDC::BeginPath() 1805 int CDatabase::BeginTrans() 1806 void CCmdTarget::BeginWaitCursor() 1807 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1808 int CAsyncSocket::Bind(sockaddr const *,int) 1809 void CDataSourceControl::BindColumns() 1810 void COccManager::BindControls(CWnd *) 1811 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1812 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1813 void CRecordset::BindFieldsForUpdate() 1814 unsigned int CRecordset::BindFieldsToColumns() 1815 void CDatabase::BindParameters(void *) 1816 unsigned int CRecordset::BindParams(void *) 1817 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1818 void CDataSourceControl::BindProp(COleControlSite *,int) 1819 void COleControlSite::BindProperty(long,CWnd *) 1820 void CWnd::BindProperty(long,CWnd *) 1821 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1822 void COleControl::BoundPropertyChanged(long) 1823 int COleControl::BoundPropertyRequestEdit(long) 1824 void CFrameWnd::BringToTop(int) 1825 void CWnd::BringWindowToTop() 1826 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1827 void CDBException::BuildErrorString(CDatabase *,void *,int) 1828 void CPropertySheet::BuildPropPageArray() 1829 void CRecordset::BuildSelectSQL() 1830 int COleControl::BuildSharedMenu() 1831 int COleDocIPFrameWnd::BuildSharedMenu() 1832 int COleIPFrameWnd::BuildSharedMenu() 1833 void CRecordset::BuildSQL(wchar_t const *) 1834 void CRecordset::BuildUpdateSQL() 1835 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1836 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1837 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1838 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1839 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1840 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1841 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1842 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1843 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1844 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1845 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1846 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1847 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1848 CSize CControlBar::CalcFixedLayout(int,int) 1849 CSize CDialogBar::CalcFixedLayout(int,int) 1850 CSize CDockBar::CalcFixedLayout(int,int) 1851 CSize CReBar::CalcFixedLayout(int,int) 1852 CSize CStatusBar::CalcFixedLayout(int,int) 1853 CSize CToolBar::CalcFixedLayout(int,int) 1854 void CControlBar::CalcInsideRect(CRect &,int)const 1855 void CStatusBar::CalcInsideRect(CRect &,int)const 1856 CSize CToolBar::CalcLayout(unsigned long,int) 1857 int CCheckListBox::CalcMinimumItemHeight() 1858 CSize CPreviewView::CalcPageDisplaySize() 1859 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1860 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1861 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1862 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1863 void CView::CalcWindowRect(tagRECT *,unsigned int) 1864 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1865 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1866 int CDHtmlDialog::CanAccessExternal() 1867 int COleClientItem::CanActivate() 1868 int CRichEditCntrItem::CanActivate() 1869 int CSplitterWnd::CanActivateNext(int) 1870 int CRecordset::CanAppend()const 1871 int CRecordset::CanBookmark()const 1872 void CDatabase::Cancel() 1873 void CRecordset::Cancel() 1874 void CSocket::CancelBlockingCall() 1875 void CDragListBox::CancelDrag(CPoint) 1876 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1877 long COleUILinkInfo::CancelLink(unsigned long) 1878 void CDockContext::CancelLoop() 1879 void CPropertyPage::CancelToClose() 1880 void CWnd::CancelToolTips(int) 1881 void CRecordset::CancelUpdate() 1882 int CDocument::CanCloseFrame(CFrameWnd *) 1883 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1884 int COleClientItem::CanCreateFromData(COleDataObject const *) 1885 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1886 unsigned long CDockContext::CanDock() 1887 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1888 int CFrameWnd::CanEnterHelpMode() 1889 long COleClientItem::XOleIPSite::CanInPlaceActivate() 1890 long COleControlSite::XOleIPSite::CanInPlaceActivate() 1891 int COleClientItem::CanPaste() 1892 int CRichEditCtrl::CanPaste(unsigned int)const 1893 int CRichEditView::CanPaste()const 1894 int COleClientItem::CanPasteLink() 1895 int CRichEditCtrl::CanRedo()const 1896 int CRecordset::CanRestart()const 1897 int CRecordset::CanScroll()const 1898 int CDatabase::CanTransact()const 1899 int CRecordset::CanTransact()const 1900 int CEdit::CanUndo()const 1901 int CRichEditCtrl::CanUndo()const 1902 int CDatabase::CanUpdate()const 1903 int CRecordset::CanUpdate()const 1904 long COleControlSite::XOleIPSite::CanWindowlessActivate() 1905 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1906 void CScrollView::CenterOnPoint(CPoint) 1907 void CWnd::CenterWindow(CWnd *) 1908 int CWnd::ChangeClipboardChain(HWND__ *) 1909 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1910 int CEdit::CharFromPos(CPoint)const 1911 int CRichEditCtrl::CharFromPos(CPoint)const 1912 int CListBox::CharToItem(unsigned int,unsigned int) 1913 void ATL::CStringT > >::CharToOemA() 1914 int CDatabase::Check(short)const 1915 int CRecordset::Check(short)const 1916 int CDialog::CheckAutoCenter() 1917 int CWnd::CheckAutoCenter() 1918 int CToolBarCtrl::CheckButton(int,int) 1919 void CArchive::CheckCount() 1920 void COleControlContainer::CheckDlgButton(int,unsigned int) 1921 void CWnd::CheckDlgButton(int,unsigned int) 1922 int CCheckListBox::CheckFromPoint(CPoint,int &) 1923 void COleClientItem::CheckGeneral(long) 1924 int CDatabase::CheckHstmt(short,void *)const 1925 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1926 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1927 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 1928 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 1929 void CMemoryState::Checkpoint() 1930 void COleControlContainer::CheckRadioButton(int,int,int) 1931 void CWnd::CheckRadioButton(int,int,int) 1932 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1933 void CRecordset::CheckRowsetError(short) 1934 void CScrollView::CheckScrollBars(int &,int &)const 1935 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 1936 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 1937 int CDC::Chord(int,int,int,int,int,int,int,int) 1938 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 1939 void CPropertyPage::Cleanup() 1940 void COlePropertyPage::CleanupObjectArray() 1941 void CComboBox::Clear() 1942 void CDBVariant::Clear() 1943 void CDockState::Clear() 1944 void CEdit::Clear() 1945 void COleSafeArray::Clear() 1946 void COleVariant::Clear() 1947 void CRichEditCtrl::Clear() 1948 void CIPAddressCtrl::ClearAddress() 1949 int CHeaderCtrl::ClearAllFilters() 1950 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1951 void CRecordset::ClearFieldStatus() 1952 int CHeaderCtrl::ClearFilter(int) 1953 void CRecordset::ClearNullFieldStatus(unsigned long) 1954 void CRecordset::ClearNullParamStatus(unsigned long) 1955 void CSliderCtrl::ClearSel(int) 1956 void CSliderCtrl::ClearTics(int) 1957 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1958 void CWnd::ClientToScreen(tagPOINT *)const 1959 void CWnd::ClientToScreen(tagRECT *)const 1960 int COleControl::ClipCaretRect(tagRECT *) 1961 void CPreviewDC::ClipToPage() 1962 ATL::IAtlStringMgr * CAfxStringMgr::Clone() 1963 long CArchiveStream::Clone(IStream * *) 1964 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1965 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1966 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1967 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1968 int CAnimateCtrl::Close() 1969 void CArchive::Close() 1970 void CAsyncMonikerFile::Close() 1971 void CAsyncSocket::Close() 1972 void CCachedDataPathProperty::Close() 1973 void CDatabase::Close() 1974 void CFile::Close() 1975 void CFileFind::Close() 1976 void CInternetConnection::Close() 1977 void CInternetFile::Close() 1978 void CInternetSession::Close() 1979 void CMemFile::Close() 1980 HMETAFILE__ * CMetaFileDC::Close() 1981 void CMirrorFile::Close() 1982 void CMonikerFile::Close() 1983 void COleClientItem::Close(enum tagOLECLOSE) 1984 void COleStreamFile::Close() 1985 void CRecordset::Close() 1986 void CSocket::Close() 1987 void CSocketFile::Close() 1988 void CStdioFile::Close() 1989 long CDocObjectServer::XOleObject::Close(unsigned long) 1990 long COleControl::XOleObject::Close(unsigned long) 1991 long COleServerDoc::XOleObject::Close(unsigned long) 1992 long COleServerItem::XOleObject::Close(unsigned long) 1993 void CDocManager::CloseAllDocuments(int) 1994 void CDocTemplate::CloseAllDocuments(int) 1995 void CWinApp::CloseAllDocuments(int) 1996 void CFileFind::CloseContext() 1997 void CFtpFileFind::CloseContext() 1998 void CGopherFileFind::CloseContext() 1999 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced() 2000 int CDC::CloseFigure() 2001 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2002 void CWnd::CloseWindow() 2003 int ATL::CStringT > >::Collate(wchar_t const *)const 2004 int ATL::CStringT > >::Collate(char const *)const 2005 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 2006 int ATL::CStringT > >::CollateNoCase(char const *)const 2007 int CRgn::CombineRgn(CRgn const *,CRgn const *,int) 2008 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 2009 int CStatusBar::CommandToIndex(unsigned int)const 2010 int CToolBar::CommandToIndex(unsigned int)const 2011 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 2012 long CArchiveStream::Commit(unsigned long) 2013 void COleClientItem::CommitItem(int) 2014 void COleDocument::CommitItems(int,IStorage *) 2015 int CDatabase::CommitTrans() 2016 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 2017 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 2018 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 2019 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2020 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2021 void CWinThread::CommonConstruct() 2022 int ATL::CStringT > >::Compare(wchar_t const *)const 2023 int ATL::CStringT > >::Compare(char const *)const 2024 int CComboBox::CompareItem(tagCOMPAREITEM*) 2025 int CListBox::CompareItem(tagCOMPAREITEM*) 2026 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 2027 int ATL::CStringT > >::CompareNoCase(char const *)const 2028 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 2029 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 2030 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 2031 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 2032 int CAsyncSocket::Connect(sockaddr const *,int) 2033 int CDatabase::Connect(unsigned long) 2034 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 2035 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 2036 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2037 int CSocket::ConnectHelper(sockaddr const *,int) 2038 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2039 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2040 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 2041 long CDHtmlControlSink::ConnectToControl(IUnknown *) 2042 void COleServerDoc::ConnectView(CWnd *,CView *) 2043 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2044 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2045 void CPropertyPage::Construct(unsigned int,unsigned int) 2046 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 2047 void CPropertyPage::Construct(wchar_t const *,unsigned int) 2048 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 2049 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2050 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2051 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 2052 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2053 void CRectTracker::Construct() 2054 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2055 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2056 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2057 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2058 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2059 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2060 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2061 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2062 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2063 int CPropertySheet::ContinueModal() 2064 int CWnd::ContinueModal() 2065 void CCmdUI::ContinueRouting() 2066 void COleControl::ControlInfoChanged() 2067 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2068 int COleClientItem::ConvertTo(_GUID const &) 2069 int CRichEditCntrItem::ConvertTo(_GUID const &) 2070 void CByteArray::Copy(CByteArray const &) 2071 void CComboBox::Copy() 2072 void CDWordArray::Copy(CDWordArray const &) 2073 void CEdit::Copy() 2074 int CImageList::Copy(int,int,unsigned int) 2075 int CImageList::Copy(int,CImageList *,int,unsigned int) 2076 void CObArray::Copy(CObArray const &) 2077 void COleSafeArray::Copy(tagSAFEARRAY * *) 2078 void CPtrArray::Copy(CPtrArray const &) 2079 void CRichEditCtrl::Copy() 2080 void CStringArray::Copy(CStringArray const &) 2081 void CUIntArray::Copy(CUIntArray const &) 2082 void CWordArray::Copy(CWordArray const &) 2083 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 2084 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 2085 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 2086 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 2087 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2088 int CRgn::CopyRgn(CRgn const *) 2089 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2090 void COleClientItem::CopyToClipboard(int) 2091 void COleServerItem::CopyToClipboard(int) 2092 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2093 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 2094 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2095 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2096 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2097 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2098 int CControlFrameWnd::Create(wchar_t const *) 2099 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2100 int CDialog::Create(unsigned int,CWnd *) 2101 int CDialog::Create(wchar_t const *,CWnd *) 2102 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 2103 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 2104 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2105 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2106 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 2107 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2108 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 2109 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2110 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2111 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 2112 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2113 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2114 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2115 int CImageList::Create(int,int,unsigned int,int,int) 2116 int CImageList::Create(unsigned int,int,int,unsigned long) 2117 int CImageList::Create(CImageList *) 2118 int CImageList::Create(wchar_t const *,int,int,unsigned long) 2119 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2120 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2121 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2122 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2123 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2124 int CMetaFileDC::Create(wchar_t const *) 2125 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2126 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2127 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 2128 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2129 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2130 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2131 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2132 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2133 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2134 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2135 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 2136 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2137 int CReflectorWnd::Create(CRect const &,HWND__ *) 2138 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2139 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2140 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2141 int CSocket::Create(unsigned int,int,wchar_t const *) 2142 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2143 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2144 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2145 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2146 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2147 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2148 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2149 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2150 int CToolTipCtrl::Create(CWnd *,unsigned long) 2151 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2152 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2153 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2154 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2155 IBindHost * CMonikerFile::CreateBindHost() 2156 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2157 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2158 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2159 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2160 void CWnd::CreateCaret(CBitmap *) 2161 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 2162 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2163 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2164 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2165 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2166 int CDC::CreateCompatibleDC(CDC *) 2167 void CConnectionPoint::CreateConnectionArray() 2168 COleControlContainer * COccManager::CreateContainer(CWnd *) 2169 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2170 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2171 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2172 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2173 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2174 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2175 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2176 int CWnd::CreateControlContainer(COleControlContainer * *) 2177 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2178 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2179 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2180 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2181 int CDC::CreateDCW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2182 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2183 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2184 int CFtpConnection::CreateDirectoryW(wchar_t const *) 2185 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2186 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2187 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 2188 int CWnd::CreateDlg(wchar_t const *,CWnd *) 2189 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2190 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2191 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 2193 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2194 CImageList * CHeaderCtrl::CreateDragImage(int) 2195 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2196 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2197 int CRgn::CreateEllipticRgn(int,int,int,int) 2198 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2199 int CPictureHolder::CreateEmpty() 2200 int CMetaFileDC::CreateEnhanced(CDC *,wchar_t const *,tagRECT const *,wchar_t const *) 2201 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2202 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2203 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2204 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2205 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2206 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2207 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2208 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2209 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2210 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2211 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2212 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2213 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2214 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2215 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2216 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2217 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2218 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2219 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2220 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2221 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2222 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2223 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2224 int CFont::CreateFontIndirectW(tagLOGFONTW const *) 2225 int CFont::CreateFontW(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,wchar_t const *) 2226 CControlFrameWnd * COleControl::CreateFrameWindow() 2227 int CPictureHolder::CreateFromBitmap(unsigned int) 2228 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2229 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2230 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2231 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2232 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2233 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2234 int CPictureHolder::CreateFromIcon(unsigned int) 2235 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2236 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2237 int CRgn::CreateFromPath(CDC *) 2238 void CWnd::CreateGrayCaret(int,int) 2239 int CPalette::CreateHalftonePalette(CDC *) 2240 int CBrush::CreateHatchBrush(int,unsigned long) 2241 int CDC::CreateICW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2242 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2243 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2244 int CDialog::CreateIndirect(void *,CWnd *) 2245 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2246 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2247 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2248 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2249 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2250 int COleInsertDialog::CreateItem(COleClientItem *) 2251 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2252 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2253 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2254 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2255 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 2256 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 2257 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 2258 int COleStreamFile::CreateMemoryStream(CFileException *) 2259 int CMenu::CreateMenu() 2260 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2261 CDocument * CDocTemplate::CreateNewDocument() 2262 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2263 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2264 CObject * CByteArray::CreateObject() 2265 CObject * CDC::CreateObject() 2266 CObject * CDocItem::CreateObject() 2267 CObject * CDockState::CreateObject() 2268 CObject * CDWordArray::CreateObject() 2269 CObject * CEditView::CreateObject() 2270 CObject * CFrameWnd::CreateObject() 2271 CObject * CGdiObject::CreateObject() 2272 CObject * CHtmlEditView::CreateObject() 2273 CObject * CHtmlView::CreateObject() 2274 CObject * CImageList::CreateObject() 2275 CObject * CListView::CreateObject() 2276 CObject * CMapStringToOb::CreateObject() 2277 CObject * CMapStringToString::CreateObject() 2278 CObject * CMapWordToOb::CreateObject() 2279 CObject * CMDIChildWnd::CreateObject() 2280 CObject * CMDIFrameWnd::CreateObject() 2281 CObject * CMenu::CreateObject() 2282 CObject * CMiniDockFrameWnd::CreateObject() 2283 CObject * CMiniFrameWnd::CreateObject() 2284 CObject * CObArray::CreateObject() 2285 CObject * CObList::CreateObject() 2286 CObject * COleDocIPFrameWnd::CreateObject() 2287 CObject * COleIPFrameWnd::CreateObject() 2288 CObject * CPreviewView::CreateObject() 2289 CObject * CRichEditCntrItem::CreateObject() 2290 CObject * CRichEditView::CreateObject() 2291 CObject * CRuntimeClass::CreateObject() 2292 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2293 CObject * CRuntimeClass::CreateObject(char const *) 2294 CObject * CStringArray::CreateObject() 2295 CObject * CStringList::CreateObject() 2296 CObject * CTreeView::CreateObject() 2297 CObject * CWnd::CreateObject() 2298 CObject * CWordArray::CreateObject() 2299 void COleControlContainer::CreateOleFont(CFont *) 2300 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2301 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2302 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2303 int CPalette::CreatePalette(tagLOGPALETTE *) 2304 int CBrush::CreatePatternBrush(CBitmap *) 2305 int CPen::CreatePen(int,int,unsigned long) 2306 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2307 int CPen::CreatePenIndirect(tagLOGPEN *) 2308 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 2309 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 2310 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2311 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2312 int CMenu::CreatePopupMenu() 2313 HDC__ * CPageSetupDialog::CreatePrinterDC() 2314 HDC__ * CPrintDialog::CreatePrinterDC() 2315 HDC__ * CPrintDialogEx::CreatePrinterDC() 2316 int CWinApp::CreatePrinterDC(CDC &) 2317 int CRgn::CreateRectRgn(int,int,int,int) 2318 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2319 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2320 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2321 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2322 int CBrush::CreateSolidBrush(unsigned long) 2323 void CWnd::CreateSolidCaret(int,int) 2324 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2325 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2326 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2327 int CGdiObject::CreateStockObject(int) 2328 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 2329 int CBrush::CreateSysColorBrush(int) 2330 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2331 void COleControl::CreateTracker(int,int) 2332 void COleControl::CreateTracker(int,int,tagRECT const *) 2333 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2334 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2335 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2336 void COleControl::CreateWindowForSubclassedControl() 2337 void CToolBarCtrl::Customize() 2338 void CComboBox::Cut() 2339 void CEdit::Cut() 2340 void CRichEditCtrl::Cut() 2341 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2342 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2343 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2344 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2345 void DDP_CBIndex(CDataExchange *,int,int &,wchar_t const *) 2346 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2347 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2348 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 2349 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 2350 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 2351 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 2352 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 2353 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 2354 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 2355 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 2356 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 2357 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 2358 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 2359 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 2360 void DDP_LBIndex(CDataExchange *,int,int &,wchar_t const *) 2361 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2362 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2363 void DDP_PostProcessing(CDataExchange *) 2364 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 2365 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 2366 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 2367 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 2368 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 2369 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 2370 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 2371 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 2372 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 2373 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2374 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2375 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2376 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2377 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2378 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2379 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2380 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2381 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2382 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2383 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2384 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2385 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2386 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2387 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2388 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2389 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2390 void DDX_CBIndex(CDataExchange *,int,int &) 2391 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2392 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2393 void DDX_Check(CDataExchange *,int,int &) 2394 void DDX_Control(CDataExchange *,int,CWnd &) 2395 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2396 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2397 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2398 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2399 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2400 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2401 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 2402 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 2403 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 2404 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 2405 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 2406 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 2407 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 2408 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 2409 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 2410 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 2411 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 2412 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 2413 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 2414 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 2415 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 2416 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 2417 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 2418 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 2419 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 2420 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 2421 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 2422 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 2423 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 2424 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 2425 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 2426 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 2427 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 2428 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2429 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 2430 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2431 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2432 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2433 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2434 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2435 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2436 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2437 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2438 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2439 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2440 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2441 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2442 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2443 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2444 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2445 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2446 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2447 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2448 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 2449 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2450 void DDX_LBIndex(CDataExchange *,int,int &) 2451 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2452 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2453 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2454 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2455 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2456 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2457 void DDX_OCBool(CDataExchange *,int,long,int &) 2458 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2459 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2460 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2461 void DDX_OCFloat(CDataExchange *,int,long,float &) 2462 void DDX_OCFloat(CDataExchange *,int,long,double &) 2463 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2464 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2465 void DDX_OCInt(CDataExchange *,int,long,int &) 2466 void DDX_OCInt(CDataExchange *,int,long,long &) 2467 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2468 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2469 void DDX_OCShort(CDataExchange *,int,long,short &) 2470 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2471 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2472 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2473 void DDX_Radio(CDataExchange *,int,int &) 2474 void DDX_Scroll(CDataExchange *,int,int &) 2475 void DDX_Slider(CDataExchange *,int,int &) 2476 void DDX_Text(CDataExchange *,int,__int64 &) 2477 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2478 void DDX_Text(CDataExchange *,int,unsigned char &) 2479 void DDX_Text(CDataExchange *,int,short &) 2480 void DDX_Text(CDataExchange *,int,int &) 2481 void DDX_Text(CDataExchange *,int,unsigned int &) 2482 void DDX_Text(CDataExchange *,int,long &) 2483 void DDX_Text(CDataExchange *,int,unsigned long &) 2484 void DDX_Text(CDataExchange *,int,float &) 2485 void DDX_Text(CDataExchange *,int,double &) 2486 void DDX_Text(CDataExchange *,int,_FILETIME &) 2487 void DDX_Text(CDataExchange *,int,_GUID &) 2488 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2489 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2490 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2491 void DDX_Text(CDataExchange *,int,tagDEC &) 2492 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2493 void DDX_Text(CDataExchange *,int,COleCurrency &) 2494 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2495 void DDX_Text(CDataExchange *,int,wchar_t *,int) 2496 void COleClientItem::Deactivate() 2497 long COlePropertyPage::XPropertyPage::Deactivate() 2498 int COleServerDoc::DeactivateAndUndo() 2499 long COleClientItem::XOleIPSite::DeactivateAndUndo() 2500 long COleControlSite::XOleIPSite::DeactivateAndUndo() 2501 void COleClientItem::DeactivateUI() 2502 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 2503 long CWnd::Default() 2504 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 2505 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 2506 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 2507 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 2508 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 2509 void CFrameWnd::DelayRecalcLayout(int) 2510 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2511 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2512 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2513 void CControlBar::DelayShow(int) 2514 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2515 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2516 void CFrameWnd::DelayUpdateFrameTitle() 2517 int ATL::CStringT > >::Delete(int,int) 2518 int ATL::CStringT > >::Delete(int,int) 2519 void CException::Delete() 2520 void COleClientItem::Delete(int) 2521 void CRecordset::Delete() 2522 void CWinThread::Delete() 2523 int CListCtrl::DeleteAllItems() 2524 int CTabCtrl::DeleteAllItems() 2525 int CTreeCtrl::DeleteAllItems() 2526 int CReBarCtrl::DeleteBand(unsigned int) 2527 int CToolBarCtrl::DeleteButton(int) 2528 int CListCtrl::DeleteColumn(int) 2529 void CSplitterWnd::DeleteColumn(int) 2530 void CDocument::DeleteContents() 2531 void CEditView::DeleteContents() 2532 void CHtmlEditDoc::DeleteContents() 2533 void COleDocument::DeleteContents() 2534 void COleServerDoc::DeleteContents() 2535 void CRichEditDoc::DeleteContents() 2536 void CRichEditView::DeleteContents() 2537 int CDC::DeleteDC() 2538 int CImageList::DeleteImageList() 2539 void CComboBox::DeleteItem(tagDELETEITEM*) 2540 int CComboBoxEx::DeleteItem(int) 2541 int CHeaderCtrl::DeleteItem(int) 2542 void CListBox::DeleteItem(tagDELETEITEM*) 2543 int CListCtrl::DeleteItem(int) 2544 int CTabCtrl::DeleteItem(int) 2545 int CTreeCtrl::DeleteItem(_TREEITEM *) 2546 int CMenu::DeleteMenu(unsigned int,unsigned int) 2547 int CGdiObject::DeleteObject() 2548 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2549 void CSplitterWnd::DeleteRow(int) 2550 int CComboBox::DeleteString(unsigned int) 2551 int CListBox::DeleteString(unsigned int) 2552 void CHandleMap::DeleteTemp() 2553 void CDC::DeleteTempMap() 2554 void CGdiObject::DeleteTempMap() 2555 void CImageList::DeleteTempMap() 2556 void CMenu::DeleteTempMap() 2557 void CWnd::DeleteTempMap() 2558 void CRichEditDoc::DeleteUnmarkedItems()const 2559 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2560 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2561 void CSplitterWnd::DeleteView(int,int) 2562 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2563 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2564 void CTabCtrl::DeselectAll(int) 2565 void COleSafeArray::Destroy() 2566 int COleControlSite::DestroyControl() 2567 void COleSafeArray::DestroyData() 2568 void COleSafeArray::DestroyDescriptor() 2569 void CFrameWnd::DestroyDockBars() 2570 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2571 int CMenu::DestroyMenu() 2572 void CDHtmlDialog::DestroyModeless() 2573 void COleControl::DestroySharedMenu() 2574 void COleDocIPFrameWnd::DestroySharedMenu() 2575 void COleIPFrameWnd::DestroySharedMenu() 2576 int CToolTipCtrl::DestroyToolTipCtrl() 2577 void COleControl::DestroyTracker() 2578 int CControlBar::DestroyWindow() 2579 int CMDIChildWnd::DestroyWindow() 2580 int CWnd::DestroyWindow() 2581 unsigned int CAsyncSocket::Detach() 2582 HDC__ * CDC::Detach() 2583 void * CDialogTemplate::Detach() 2584 void * CGdiObject::Detach() 2585 _IMAGELIST * CImageList::Detach() 2586 unsigned char * CMemFile::Detach() 2587 HMENU__ * CMenu::Detach() 2588 int CMonikerFile::Detach(CFileException *) 2589 IDataObject * COleDataObject::Detach() 2590 tagVARIANT COleSafeArray::Detach() 2591 IStream * COleStreamFile::Detach() 2592 tagVARIANT COleVariant::Detach() 2593 void * CSharedFile::Detach() 2594 HDC__ * CWindowlessDC::Detach() 2595 HWND__ * CWnd::Detach() 2596 IDispatch * COleDispatchDriver::DetachDispatch() 2597 void CAsyncSocket::DetachHandle(unsigned int,int) 2598 void COleControlSite::DetachWindow() 2599 void CWinApp::DevModeChange(wchar_t *) 2600 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2601 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2602 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2603 int CComboBox::Dir(unsigned int,wchar_t const *) 2604 int CComboBoxEx::Dir(unsigned int,wchar_t const *) 2605 int CListBox::Dir(unsigned int,wchar_t const *) 2606 int COleServerDoc::DiscardUndoState() 2607 long COleClientItem::XOleIPSite::DiscardUndoState() 2608 long COleControlSite::XOleIPSite::DiscardUndoState() 2609 void COleDispatchImpl::Disconnect() 2610 void CDHtmlDialog::DisconnectDHtmlElementEvents() 2611 void CDHtmlDialog::DisconnectDHtmlEvents() 2612 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2613 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2614 void CDocument::DisconnectViews() 2615 void CWinThread::DispatchThreadMessage(tagMSG *) 2616 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2617 int CRichEditCtrl::DisplayBand(tagRECT *) 2618 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 2619 int CWnd::DlgDirListComboBoxW(wchar_t *,int,int,unsigned int) 2620 int CWnd::DlgDirListW(wchar_t *,int,int,unsigned int) 2621 int CWnd::DlgDirSelect(wchar_t *,int) 2622 int CWnd::DlgDirSelectComboBox(wchar_t *,int) 2623 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2624 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2625 void CAsyncSocket::DoCallBack(unsigned int,long) 2626 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2627 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2628 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2629 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2630 void COleControl::DoClick() 2631 int COleFrameHook::DoContextSensitiveHelp(int) 2632 int COleConvertDialog::DoConvert(COleClientItem *) 2633 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2634 void CWnd::DoDataExchange(CDataExchange *) 2635 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2636 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2637 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2638 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2639 int COleFrameHook::DoEnableModeless(int) 2640 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2641 void CRecordset::DoFieldExchange(CFieldExchange *) 2642 int CDocument::DoFileSave() 2643 int CSplitterWnd::DoKeyboardSplit() 2644 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2645 int CColorDialog::DoModal() 2646 int CDialog::DoModal() 2647 int CFileDialog::DoModal() 2648 int CFontDialog::DoModal() 2649 int COleBusyDialog::DoModal() 2650 int COleChangeIconDialog::DoModal() 2651 int COleChangeSourceDialog::DoModal() 2652 int COleConvertDialog::DoModal() 2653 int COleInsertDialog::DoModal(unsigned long) 2654 int COleInsertDialog::DoModal() 2655 int COleLinksDialog::DoModal() 2656 int COlePasteSpecialDialog::DoModal() 2657 int COlePropertiesDialog::DoModal() 2658 int COleUpdateDialog::DoModal() 2659 int CPageSetupDialog::DoModal() 2660 int CPrintDialog::DoModal() 2661 int CPrintDialogEx::DoModal() 2662 int CPropertySheet::DoModal() 2663 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2664 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2665 void CControlBar::DoPaint(CDC *) 2666 void CDockBar::DoPaint(CDC *) 2667 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2668 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2669 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2670 int CView::DoPreparePrinting(CPrintInfo *) 2671 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2672 int CWinApp::DoPrintDialog(CPrintDialog *) 2673 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2674 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2675 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2676 void COleControl::DoPropExchange(CPropExchange *) 2677 int CDocument::DoSave(wchar_t const *,int) 2678 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2679 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2680 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2681 int CCmdUI::DoUpdate(CCmdTarget *,int) 2682 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2683 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2684 long COleControlSite::DoVerb(long,tagMSG *) 2685 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2686 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2687 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2688 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2689 void CWinApp::DoWaitCursor(int) 2690 void CPreviewView::DoZoom(unsigned int,CPoint) 2691 void CDC::DPtoHIMETRIC(tagSIZE *)const 2692 void CDC::DPtoLP(tagPOINT *,int)const 2693 void CDC::DPtoLP(tagRECT *)const 2694 void CDC::DPtoLP(tagSIZE *)const 2695 void CWnd::DragAcceptFiles(int) 2696 int CWnd::DragDetect(tagPOINT)const 2697 int CImageList::DragEnter(CWnd *,CPoint) 2698 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2699 unsigned int CDragListBox::Dragging(CPoint) 2700 int CImageList::DragLeave(CWnd *) 2701 long COleDropTarget::XDropTarget::DragLeave() 2702 int CImageList::DragMove(CPoint) 2703 void CReBarCtrl::DragMove(unsigned long) 2704 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2705 int CImageList::DragShowNolock(int) 2706 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2707 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2708 void CRectTracker::Draw(CDC *)const 2709 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2710 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2711 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2712 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2713 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2714 void CControlBar::DrawBorders(CDC *,CRect &) 2715 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2716 void COleControl::DrawContent(CDC *,CRect &) 2717 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2718 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2719 int CDC::DrawEscape(int,int,char const *) 2720 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2721 void CDC::DrawFocusRect(tagRECT const *) 2722 void CDockContext::DrawFocusRect(int) 2723 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2724 void CControlBar::DrawGripper(CDC *,CRect const &) 2725 int CDC::DrawIcon(int,int,HICON__ *) 2726 int CDC::DrawIcon(tagPOINT,HICON__ *) 2727 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2728 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2729 void CDragListBox::DrawInsert(int) 2730 void CBitmapButton::DrawItem(tagDRAWITEM*) 2731 void CButton::DrawItem(tagDRAWITEM*) 2732 void CCheckListBox::DrawItem(tagDRAWITEM*) 2733 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2734 void CComboBox::DrawItem(tagDRAWITEM*) 2735 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2736 void CListBox::DrawItem(tagDRAWITEM*) 2737 void CListCtrl::DrawItem(tagDRAWITEM*) 2738 void CListView::DrawItem(tagDRAWITEM*) 2739 void CMenu::DrawItem(tagDRAWITEM*) 2740 void CStatic::DrawItem(tagDRAWITEM*) 2741 void CStatusBar::DrawItem(tagDRAWITEM*) 2742 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2743 void CTabCtrl::DrawItem(tagDRAWITEM*) 2744 void CWnd::DrawMenuBar() 2745 void COleControl::DrawMetafile(CDC *,CRect &) 2746 void CDragListBox::DrawSingle(int) 2747 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2748 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2749 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2750 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2751 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2752 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2753 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,HBRUSH__ *) 2754 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,CBrush *) 2755 int CDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2756 int CDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2757 int CMetaFileDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2758 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2759 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2760 int CDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2761 int CDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2762 int CMetaFileDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2763 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2764 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2765 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2766 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2767 void CDragListBox::Dropped(int,CPoint) 2768 void CArchiveException::Dump(CDumpContext &)const 2769 void CAsyncMonikerFile::Dump(CDumpContext &)const 2770 void CAsyncSocket::Dump(CDumpContext &)const 2771 void CBitmap::Dump(CDumpContext &)const 2772 void CBitmapButton::Dump(CDumpContext &)const 2773 void CBrush::Dump(CDumpContext &)const 2774 void CByteArray::Dump(CDumpContext &)const 2775 void CCachedDataPathProperty::Dump(CDumpContext &)const 2776 void CClientDC::Dump(CDumpContext &)const 2777 void CCmdTarget::Dump(CDumpContext &)const 2778 void CColorDialog::Dump(CDumpContext &)const 2779 void CControlBar::Dump(CDumpContext &)const 2780 void CCtrlView::Dump(CDumpContext &)const 2781 void CDatabase::Dump(CDumpContext &)const 2782 void CDataPathProperty::Dump(CDumpContext &)const 2783 void CDC::Dump(CDumpContext &)const 2784 void CDialog::Dump(CDumpContext &)const 2785 void CDocItem::Dump(CDumpContext &)const 2786 void CDockBar::Dump(CDumpContext &)const 2787 void CDocManager::Dump(CDumpContext &)const 2788 void CDocObjectServer::Dump(CDumpContext &)const 2789 void CDocObjectServerItem::Dump(CDumpContext &)const 2790 void CDocTemplate::Dump(CDumpContext &)const 2791 void CDocument::Dump(CDumpContext &)const 2792 void CDWordArray::Dump(CDumpContext &)const 2793 void CDynLinkLibrary::Dump(CDumpContext &)const 2794 void CEditView::Dump(CDumpContext &)const 2795 void CFile::Dump(CDumpContext &)const 2796 void CFileDialog::Dump(CDumpContext &)const 2797 void CFileException::Dump(CDumpContext &)const 2798 void CFileFind::Dump(CDumpContext &)const 2799 void CFileStatus::Dump(CDumpContext &)const 2800 void CFindReplaceDialog::Dump(CDumpContext &)const 2801 void CFont::Dump(CDumpContext &)const 2802 void CFontDialog::Dump(CDumpContext &)const 2803 void CFormView::Dump(CDumpContext &)const 2804 void CFrameWnd::Dump(CDumpContext &)const 2805 void CFtpConnection::Dump(CDumpContext &)const 2806 void CFtpFileFind::Dump(CDumpContext &)const 2807 void CGdiObject::Dump(CDumpContext &)const 2808 void CGopherConnection::Dump(CDumpContext &)const 2809 void CGopherFile::Dump(CDumpContext &)const 2810 void CGopherFileFind::Dump(CDumpContext &)const 2811 void CHtmlEditDoc::Dump(CDumpContext &)const 2812 void CHtmlEditView::Dump(CDumpContext &)const 2813 void CHtmlView::Dump(CDumpContext &)const 2814 void CHttpConnection::Dump(CDumpContext &)const 2815 void CHttpFile::Dump(CDumpContext &)const 2816 void CImageList::Dump(CDumpContext &)const 2817 void CInternetConnection::Dump(CDumpContext &)const 2818 void CInternetException::Dump(CDumpContext &)const 2819 void CInternetFile::Dump(CDumpContext &)const 2820 void CInternetSession::Dump(CDumpContext &)const 2821 void CLongBinary::Dump(CDumpContext &)const 2822 void CMapPtrToPtr::Dump(CDumpContext &)const 2823 void CMapPtrToWord::Dump(CDumpContext &)const 2824 void CMapStringToOb::Dump(CDumpContext &)const 2825 void CMapStringToPtr::Dump(CDumpContext &)const 2826 void CMapStringToString::Dump(CDumpContext &)const 2827 void CMapWordToOb::Dump(CDumpContext &)const 2828 void CMapWordToPtr::Dump(CDumpContext &)const 2829 void CMDIChildWnd::Dump(CDumpContext &)const 2830 void CMDIFrameWnd::Dump(CDumpContext &)const 2831 void CMemFile::Dump(CDumpContext &)const 2832 void CMenu::Dump(CDumpContext &)const 2833 void CMonikerFile::Dump(CDumpContext &)const 2834 void CMultiDocTemplate::Dump(CDumpContext &)const 2835 void CObArray::Dump(CDumpContext &)const 2836 void CObject::Dump(CDumpContext &)const 2837 void CObList::Dump(CDumpContext &)const 2838 void COleBusyDialog::Dump(CDumpContext &)const 2839 void COleChangeIconDialog::Dump(CDumpContext &)const 2840 void COleChangeSourceDialog::Dump(CDumpContext &)const 2841 void COleClientItem::Dump(CDumpContext &)const 2842 void COleControl::Dump(CDumpContext &)const 2843 void COleConvertDialog::Dump(CDumpContext &)const 2844 void COleDataSource::Dump(CDumpContext &)const 2845 void COleDialog::Dump(CDumpContext &)const 2846 void COleDocIPFrameWnd::Dump(CDumpContext &)const 2847 void COleDocument::Dump(CDumpContext &)const 2848 void COleDropSource::Dump(CDumpContext &)const 2849 void COleDropTarget::Dump(CDumpContext &)const 2850 void COleInsertDialog::Dump(CDumpContext &)const 2851 void COleIPFrameWnd::Dump(CDumpContext &)const 2852 void COleLinkingDoc::Dump(CDumpContext &)const 2853 void COleLinksDialog::Dump(CDumpContext &)const 2854 void COleMessageFilter::Dump(CDumpContext &)const 2855 void COleObjectFactory::Dump(CDumpContext &)const 2856 void COlePasteSpecialDialog::Dump(CDumpContext &)const 2857 void COlePropertiesDialog::Dump(CDumpContext &)const 2858 void COleServerDoc::Dump(CDumpContext &)const 2859 void COleServerItem::Dump(CDumpContext &)const 2860 void COleStreamFile::Dump(CDumpContext &)const 2861 void COleUpdateDialog::Dump(CDumpContext &)const 2862 void CPageSetupDialog::Dump(CDumpContext &)const 2863 void CPaintDC::Dump(CDumpContext &)const 2864 void CPen::Dump(CDumpContext &)const 2865 void CPreviewDC::Dump(CDumpContext &)const 2866 void CPreviewView::Dump(CDumpContext &)const 2867 void CPrintDialog::Dump(CDumpContext &)const 2868 void CPrintDialogEx::Dump(CDumpContext &)const 2869 void CPropertyPage::Dump(CDumpContext &)const 2870 void CPropertySheet::Dump(CDumpContext &)const 2871 void CPtrArray::Dump(CDumpContext &)const 2872 void CPtrList::Dump(CDumpContext &)const 2873 void CRecordset::Dump(CDumpContext &)const 2874 void CRecordView::Dump(CDumpContext &)const 2875 void CRichEditCntrItem::Dump(CDumpContext &)const 2876 void CRichEditDoc::Dump(CDumpContext &)const 2877 void CRichEditView::Dump(CDumpContext &)const 2878 void CScrollView::Dump(CDumpContext &)const 2879 void CSingleDocTemplate::Dump(CDumpContext &)const 2880 void CSocket::Dump(CDumpContext &)const 2881 void CSocketFile::Dump(CDumpContext &)const 2882 void CSplitterWnd::Dump(CDumpContext &)const 2883 void CStatusBar::Dump(CDumpContext &)const 2884 void CStdioFile::Dump(CDumpContext &)const 2885 void CStringArray::Dump(CDumpContext &)const 2886 void CStringList::Dump(CDumpContext &)const 2887 void CSyncObject::Dump(CDumpContext &)const 2888 void CToolBar::Dump(CDumpContext &)const 2889 void CUIntArray::Dump(CDumpContext &)const 2890 void CView::Dump(CDumpContext &)const 2891 void CWinApp::Dump(CDumpContext &)const 2892 void CWindowDC::Dump(CDumpContext &)const 2893 void CWinThread::Dump(CDumpContext &)const 2894 void CWnd::Dump(CDumpContext &)const 2895 void CWordArray::Dump(CDumpContext &)const 2896 void CMemoryState::DumpAllObjectsSince()const 2897 CDumpContext & CDumpContext::DumpAsHex(__int64) 2898 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2899 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2900 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2901 CDumpContext & CDumpContext::DumpAsHex(int) 2902 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2903 CDumpContext & CDumpContext::DumpAsHex(long) 2904 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2905 void CRecordset::DumpFields(CDumpContext &)const 2906 void CMemoryState::DumpStatistics()const 2907 long COleControl::XDataObject::DUnadvise(unsigned long) 2908 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2909 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2910 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2911 CFile * CFile::Duplicate()const 2912 CFile * CInternetFile::Duplicate()const 2913 CFile * CMemFile::Duplicate()const 2914 CFile * COleStreamFile::Duplicate()const 2915 CFile * CSocketFile::Duplicate()const 2916 CFile * CStdioFile::Duplicate()const 2917 unsigned long const CEditView::dwStyleDefault 2918 void CRecordset::Edit() 2919 int CHeaderCtrl::EditFilter(int,int) 2920 CEdit * CListCtrl::EditLabel(int) 2921 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 2922 long COlePropertyPage::XPropertyPage::EditProperty(long) 2923 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2924 unsigned char & CByteArray::ElementAt(int) 2925 unsigned long & CDWordArray::ElementAt(int) 2926 CObject * & CObArray::ElementAt(int) 2927 void * & CPtrArray::ElementAt(int) 2928 ATL::CStringT > > & CStringArray::ElementAt(int) 2929 unsigned int & CUIntArray::ElementAt(int) 2930 unsigned short & CWordArray::ElementAt(int) 2931 int CDC::Ellipse(int,int,int,int) 2932 int CDC::Ellipse(tagRECT const *) 2933 void ATL::CSimpleStringT::Empty() 2934 void ATL::CSimpleStringT::Empty() 2935 void CDBException::Empty() 2936 void COleDataSource::Empty() 2937 void CEdit::EmptyUndoBuffer() 2938 void CRichEditCtrl::EmptyUndoBuffer() 2939 void CCheckListBox::Enable(int,int) 2940 void CCmdUI::Enable(int) 2941 void COleCmdUI::Enable(int) 2942 void CStatusCmdUI::Enable(int) 2943 void CTestCmdUI::Enable(int) 2944 void CToolCmdUI::Enable(int) 2945 int CWinApp::Enable3dControls() 2946 void CWnd::EnableActiveAccessibility() 2947 void CCmdTarget::EnableAggregation() 2948 void CCmdTarget::EnableAutomation() 2949 void CRecordset::EnableBookmarks() 2950 void COleMessageFilter::EnableBusyDialog(int) 2951 int CToolBarCtrl::EnableButton(int,int) 2952 void COleDocument::EnableCompoundFile(int) 2953 void CCmdTarget::EnableConnections() 2954 void CControlBar::EnableDocking(unsigned long) 2955 void CFrameWnd::EnableDocking(unsigned long) 2956 void CReBar::EnableDocking(unsigned long) 2957 void CStatusBar::EnableDocking(unsigned long) 2958 void COleControlSite::EnableDSC() 2959 void CWinApp::EnableHtmlHelp() 2960 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 2961 long CBrowserControlSite::EnableModeless(int) 2962 long CDHtmlDialog::EnableModeless(int) 2963 void CWinApp::EnableModeless(int) 2964 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2965 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2966 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2967 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2968 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2969 void COleMessageFilter::EnableNotRespondingDialog(int) 2970 int CScrollBar::EnableScrollBar(unsigned int) 2971 int CWnd::EnableScrollBar(int,unsigned int) 2972 void CWnd::EnableScrollBarCtrl(int,int) 2973 void CWinApp::EnableShellOpen() 2974 void COleControl::EnableSimpleFrame() 2975 void CPropertySheet::EnableStackedTabs(int) 2976 int CInternetSession::EnableStatusCallback(int) 2977 int CWnd::EnableToolTips(int) 2978 int CWnd::EnableTrackingToolTips(int) 2979 void CCmdTarget::EnableTypeLib() 2980 int COleControlSite::EnableWindow(int) 2981 int CWnd::EnableWindow(int) 2982 void COleMessageFilter::EndBusyState() 2983 void CAsyncMonikerFile::EndCallbacks() 2984 long COleLinkingDoc::EndDeferErrors(long) 2985 void CDialog::EndDialog(int) 2986 void CPropertyPage::EndDialog(int) 2987 void CPropertySheet::EndDialog(int) 2988 int CDC::EndDoc() 2989 void CDockContext::EndDrag() 2990 void CImageList::EndDrag() 2991 void CReBarCtrl::EndDrag() 2992 void CWnd::EndModalLoop(int) 2993 void CFrameWnd::EndModalState() 2994 void CWnd::EndModalState() 2995 int CDC::EndPage() 2996 void CWnd::EndPaint(tagPAINT*) 2997 int CDC::EndPath() 2998 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2999 void CDockContext::EndResize() 3000 void CCmdTarget::EndWaitCursor() 3001 void COleDataObject::EnsureClipboardObject() 3002 long CWnd::EnsureStdObj() 3003 int CListCtrl::EnsureVisible(int,int) 3004 int CTreeCtrl::EnsureVisible(_TREEITEM *) 3005 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3006 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3007 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3008 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3009 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 3010 int COlePropertyPage::EnumChildProc(HWND__ *,long) 3011 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 3012 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 3013 int COlePropertyPage::EnumControls(HWND__ *,long) 3014 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3015 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3016 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3017 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3018 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3019 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3020 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3021 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3022 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 3023 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3024 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3025 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 3026 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3027 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3028 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3029 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3030 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 3031 int CRgn::EqualRgn(CRgn const *)const 3032 void CControlBar::EraseNonClient() 3033 int CFileException::ErrnoToException(int) 3034 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 3035 int CDC::Escape(int,int,char const *,int,char *) 3036 int CDC::Escape(int,int,char const *,void *) 3037 int CMetaFileDC::Escape(int,int,char const *,void *) 3038 int CPreviewDC::Escape(int,int,char const *,void *) 3039 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3040 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3041 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3042 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3043 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3044 int COleControl::ExchangeExtent(CPropExchange *) 3045 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3046 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3047 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3048 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3049 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3050 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3051 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3052 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3053 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3054 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3055 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3056 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3057 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3058 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3059 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3060 void COleControl::ExchangeStockProps(CPropExchange *) 3061 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3062 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 3063 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3064 int CDC::ExcludeClipRect(int,int,int,int) 3065 int CDC::ExcludeClipRect(tagRECT const *) 3066 int CDC::ExcludeUpdateRgn(CWnd *) 3067 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3068 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3069 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 3070 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 3071 int CHtmlEditView::ExecHandler(unsigned int) 3072 int CWnd::ExecuteDlgInit(void *) 3073 int CWnd::ExecuteDlgInit(wchar_t const *) 3074 void CRecordset::ExecuteSetPosUpdate() 3075 void CDatabase::ExecuteSQL(wchar_t const *) 3076 void CRecordset::ExecuteUpdateSQL() 3077 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 3078 void CFrameWnd::ExitHelpMode() 3079 int COleControlModule::ExitInstance() 3080 int CWinApp::ExitInstance() 3081 int CWinThread::ExitInstance() 3082 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 3083 unsigned long CCmdTarget::ExternalAddRef() 3084 void CCmdTarget::ExternalDisconnect() 3085 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 3086 unsigned long CCmdTarget::ExternalRelease() 3087 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 3088 HICON__ * CImageList::ExtractIconW(int) 3089 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3090 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3091 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3092 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3093 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3094 void CDataExchange::Fail() 3095 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3096 short CRecordset::FetchData(unsigned short,long,unsigned long *) 3097 void CArchive::FillBuffer(unsigned int) 3098 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 3099 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 3100 void CScrollView::FillOutsideRect(CDC *,CBrush *) 3101 int CDC::FillPath() 3102 void CDC::FillRect(tagRECT const *,CBrush *) 3103 int CDC::FillRgn(CRgn *,CBrush *) 3104 void CDC::FillSolidRect(int,int,int,int,unsigned long) 3105 void CDC::FillSolidRect(tagRECT const *,unsigned long) 3106 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 3107 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 3108 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 3109 void CWnd::FilterToolTipMessage(tagMSG *) 3110 int ATL::CStringT > >::Find(wchar_t,int)const 3111 int ATL::CStringT > >::Find(wchar_t const *,int)const 3112 int ATL::CStringT > >::Find(char,int)const 3113 int ATL::CStringT > >::Find(char const *,int)const 3114 __POSITION * CObList::Find(CObject *,__POSITION *)const 3115 __POSITION * CPtrList::Find(void *,__POSITION *)const 3116 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 3117 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 3118 int CDockBar::FindBar(CControlBar *,int) 3119 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 3120 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 3121 int CFileFind::FindFile(wchar_t const *,unsigned long) 3122 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 3123 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 3124 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 3125 __POSITION * CObList::FindIndex(int)const 3126 __POSITION * CPtrList::FindIndex(int)const 3127 __POSITION * CStringList::FindIndex(int)const 3128 int CListCtrl::FindItem(tagLVFINDINFOW *,int)const 3129 COleControlSite * COleControlContainer::FindItem(unsigned int)const 3130 int CFindReplaceDialog::FindNext()const 3131 int CFileFind::FindNextFileW() 3132 int CFtpFileFind::FindNextFileW() 3133 int CGopherFileFind::FindNextFileW() 3134 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 3135 int ATL::CStringT > >::FindOneOf(char const *)const 3136 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 3137 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 3138 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 3139 int CComboBox::FindString(int,wchar_t const *)const 3140 int CComboBoxEx::FindString(int,wchar_t const *)const 3141 int CListBox::FindString(int,wchar_t const *)const 3142 int CComboBox::FindStringExact(int,wchar_t const *)const 3143 int CListBox::FindStringExact(int,wchar_t const *)const 3144 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3145 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 3146 int CEditView::FindTextW(wchar_t const *,int,int) 3147 long CRichEditCtrl::FindTextW(unsigned long,_findtextexw *)const 3148 int CRichEditView::FindTextW(_AFX_RICHEDIT_STATE *) 3149 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 3150 CWnd * CWnd::FindWindowExW(HWND__ *,HWND__ *,wchar_t const *,wchar_t const *) 3151 CWnd * CWnd::FindWindowW(wchar_t const *,wchar_t const *) 3152 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3153 int COleClientItem::FinishCreate(long) 3154 void COleControl::FireClick() 3155 void COleControl::FireDblClick() 3156 void COleControl::FireError(long,wchar_t const *,unsigned int) 3157 void COleControl::FireEvent(long,unsigned char *,...) 3158 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3159 void COleControl::FireEventV(long,unsigned char *,char *) 3160 void COleControl::FireKeyDown(unsigned short *,short) 3161 void COleControl::FireKeyPress(unsigned short *) 3162 void COleControl::FireKeyUp(unsigned short *,short) 3163 void COleControl::FireMouseDown(short,short,long,long) 3164 void COleControl::FireMouseMove(short,short,long,long) 3165 void COleControl::FireMouseUp(short,short,long,long) 3166 void COleControl::FireReadyStateChange() 3167 void CRecordset::Fixups() 3168 int CWnd::FlashWindow(int) 3169 int CDC::FlattenPath() 3170 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3171 int CDC::FloodFill(int,int,unsigned long) 3172 void CArchive::Flush() 3173 void CDumpContext::Flush() 3174 void CFile::Flush() 3175 void CInternetFile::Flush() 3176 void CMemFile::Flush() 3177 void CMonikerFile::Flush() 3178 void COleStreamFile::Flush() 3179 void CSocketFile::Flush() 3180 void CStdioFile::Flush() 3181 void COleDataSource::FlushClipboard() 3182 int CRecordset::FlushResultSet() 3183 int CEdit::FmtLines(int) 3184 void ATL::CSimpleStringT::Fork(int) 3185 void ATL::CSimpleStringT::Fork(int) 3186 void ATL::CStringT > >::Format(unsigned int,...) 3187 void ATL::CStringT > >::Format(wchar_t const *,...) 3188 void ATL::CStringT > >::Format(unsigned int,...) 3189 void ATL::CStringT > >::Format(char const *,...) 3190 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3191 void ATL::CStringT > >::FormatMessageV(wchar_t const *,char * *) 3192 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 3193 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 3194 void ATL::CStringT > >::FormatMessageW(wchar_t const *,...) 3195 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 3196 void ATL::CStringT > >::FormatMessageW(char const *,...) 3197 long CRichEditCtrl::FormatRange(_formatrange *,int) 3198 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 3199 void ATL::CStringT > >::FormatV(char const *,char *) 3200 void COleControl::ForwardActivationMsg(tagMSG *) 3201 void CDC::FrameRect(tagRECT const *,CBrush *) 3202 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3203 void CAfxStringMgr::Free(ATL::CStringData *) 3204 void CDatabase::Free() 3205 void CFixedAlloc::Free(void *) 3206 void CFixedAllocNoSync::Free(void *) 3207 void CMemFile::Free(unsigned char *) 3208 void CSharedFile::Free(unsigned char *) 3209 void CFixedAlloc::FreeAll() 3210 void CFixedAllocNoSync::FreeAll() 3211 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3212 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3213 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3214 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3215 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3216 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3217 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3218 void CRecordset::FreeDataCache() 3219 void CPlex::FreeDataChain() 3220 void ATL::CSimpleStringT::FreeExtra() 3221 void ATL::CSimpleStringT::FreeExtra() 3222 void CByteArray::FreeExtra() 3223 void CDWordArray::FreeExtra() 3224 void CObArray::FreeExtra() 3225 void CPtrArray::FreeExtra() 3226 void CStringArray::FreeExtra() 3227 void CUIntArray::FreeExtra() 3228 void CWordArray::FreeExtra() 3229 void CObList::FreeNode(CObList::CNode *) 3230 void CPtrList::FreeNode(CPtrList::CNode *) 3231 void CStringList::FreeNode(CStringList::CNode *) 3232 void CRecordset::FreeRowset() 3233 void CThreadSlotData::FreeSlot(int) 3234 void CProperty::FreeValue() 3235 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3236 void COleControlContainer::FreezeAllEvents(int) 3237 void COleControlSite::FreezeEvents(int) 3238 long COleControl::XOleControl::FreezeEvents(int) 3239 int COleClientItem::FreezeLink() 3240 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3241 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3242 CBrush * CBrush::FromHandle(HBRUSH__ *) 3243 CDC * CDC::FromHandle(HDC__ *) 3244 CFont * CFont::FromHandle(HFONT__ *) 3245 CGdiObject * CGdiObject::FromHandle(void *) 3246 CObject * CHandleMap::FromHandle(void *) 3247 CImageList * CImageList::FromHandle(_IMAGELIST *) 3248 CMenu * CMenu::FromHandle(HMENU__ *) 3249 CPalette * CPalette::FromHandle(HPALETTE__ *) 3250 CPen * CPen::FromHandle(HPEN__ *) 3251 CRgn * CRgn::FromHandle(HRGN__ *) 3252 CSocket * CSocket::FromHandle(unsigned int) 3253 CWnd * CWnd::FromHandle(HWND__ *) 3254 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3255 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3256 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3257 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3258 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3259 CRuntime* CRuntimeClass::FromName(char const *) 3260 void * CProperty::Get(unsigned long *) 3261 void * CProperty::Get() 3262 void * CPropertySection::Get(unsigned long) 3263 void * CPropertySection::Get(unsigned long,unsigned long *) 3264 void * CPropertySet::Get(_GUID,unsigned long) 3265 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3266 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3267 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3268 long CWnd::get_accChildCount(long *) 3269 long CWnd::XAccessible::get_accChildCount(long *) 3270 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3271 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3272 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3273 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3274 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3275 long CWnd::get_accFocus(tagVARIANT *) 3276 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3277 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3278 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3279 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3280 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3281 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3282 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3283 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3284 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3285 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3286 long CWnd::get_accParent(IDispatch * *) 3287 long CWnd::XAccessible::get_accParent(IDispatch * *) 3288 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3289 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3290 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3291 long CWnd::get_accSelection(tagVARIANT *) 3292 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3293 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3294 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3295 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3296 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3297 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3298 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3299 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3300 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3301 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3302 long CWnd::GetAccessibleChildCount() 3303 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3304 unsigned long COleControl::GetActivationPolicy() 3305 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3306 CDocument * CFrameWnd::GetActiveDocument() 3307 CFrameWnd * CFrameWnd::GetActiveFrame() 3308 CFrameWnd * CMDIFrameWnd::GetActiveFrame() 3309 int CPropertySheet::GetActiveIndex()const 3310 CPropertyPage * CPropertySheet::GetActivePage()const 3311 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3312 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3313 CView * CFrameWnd::GetActiveView()const 3314 CView * COleClientItem::GetActiveView()const 3315 IOleDocumentView * COleDocObjectItem::GetActiveView()const 3316 CRichEditView * CRichEditCntrItem::GetActiveView() 3317 CWnd * CWnd::GetActiveWindow() 3318 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &) 3319 int CIPAddressCtrl::GetAddress(unsigned long &) 3320 int CHtmlView::GetAddressBar()const 3321 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3322 int ATL::CSimpleStringT::GetAllocLength()const 3323 int ATL::CSimpleStringT::GetAllocLength()const 3324 COleDispatchDriver * COleControl::GetAmbientDispatchDriver() 3325 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3326 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3327 int CToolBarCtrl::GetAnchorHighlight()const 3328 int CListBox::GetAnchorIndex()const 3329 short COleControl::GetAppearance() 3330 IDispatch * CHtmlView::GetApplication()const 3331 HKEY__ * CWinApp::GetAppRegistryKey() 3332 int CDC::GetArcDirection()const 3333 CSize CDC::GetAspectRatioFilter()const 3334 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3335 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3336 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3337 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3338 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3339 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3340 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3341 wchar_t ATL::CSimpleStringT::GetAt(int)const 3342 char ATL::CSimpleStringT::GetAt(int)const 3343 unsigned char CByteArray::GetAt(int)const 3344 unsigned long CDWordArray::GetAt(int)const 3345 CObject * CObArray::GetAt(int)const 3346 CObject * & CObList::GetAt(__POSITION *) 3347 CObject const * CObList::GetAt(__POSITION *)const 3348 void * CPtrArray::GetAt(int)const 3349 void * & CPtrList::GetAt(__POSITION *) 3350 void const * CPtrList::GetAt(__POSITION *)const 3351 ATL::CStringT > > const & CStringArray::GetAt(int)const 3352 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3353 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3354 unsigned int CUIntArray::GetAt(int)const 3355 unsigned short CWordArray::GetAt(int)const 3356 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3357 unsigned long COleControl::GetBackColor() 3358 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3359 unsigned int CReBarCtrl::GetBandCount()const 3360 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOW *)const 3361 unsigned int CReBarCtrl::GetBarHeight()const 3362 void CControlBar::GetBarInfo(CControlBarInfo *) 3363 void CDockBar::GetBarInfo(CControlBarInfo *) 3364 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3365 unsigned long CControlBar::GetBarStyle() 3366 unsigned int CSpinButtonCtrl::GetBase()const 3367 unsigned long CAsyncMonikerFile::GetBindInfo()const 3368 IBinding * CAsyncMonikerFile::GetBinding()const 3369 int CBitmap::GetBitmap(tagBITMAP *) 3370 HBITMAP__ * CButton::GetBitmap()const 3371 HBITMAP__ * CStatic::GetBitmap()const 3372 int CToolBarCtrl::GetBitmap(int)const 3373 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3374 CSize CBitmap::GetBitmapDimension()const 3375 unsigned int CToolBarCtrl::GetBitmapFlags()const 3376 int CHeaderCtrl::GetBitmapMargin()const 3377 unsigned long CDC::GetBkColor()const 3378 unsigned long CImageList::GetBkColor()const 3379 unsigned long CListCtrl::GetBkColor()const 3380 unsigned long CReBarCtrl::GetBkColor()const 3381 unsigned long CTreeCtrl::GetBkColor()const 3382 int CListCtrl::GetBkImage(tagLVBKIMAGEW *)const 3383 int CDC::GetBkMode()const 3384 void * CBlobProperty::GetBlob() 3385 void CRecordset::GetBookmark(CDBVariant &) 3386 unsigned long CDatabase::GetBookmarkPersistence()const 3387 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3388 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3389 CRect CControlBar::GetBorders()const 3390 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3391 int CStatusBarCtrl::GetBorders(int *)const 3392 short COleControl::GetBorderStyle() 3393 long CDataSourceControl::GetBoundClientRow() 3394 int CRecordset::GetBoundFieldIndex(void *) 3395 int CRecordset::GetBoundParamIndex(void *) 3396 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3397 CPoint CDC::GetBrushOrg()const 3398 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOW *)const 3399 CWnd * CSliderCtrl::GetBuddy(int)const 3400 CWnd * CSpinButtonCtrl::GetBuddy()const 3401 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 3402 wchar_t * ATL::CSimpleStringT::GetBuffer() 3403 char * ATL::CSimpleStringT::GetBuffer(int) 3404 char * ATL::CSimpleStringT::GetBuffer() 3405 unsigned int CEditView::GetBufferLength()const 3406 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3407 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3408 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3409 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 3410 char * ATL::CSimpleStringT::GetBufferSetLength(int) 3411 int CHtmlView::GetBusy()const 3412 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3413 int CToolBarCtrl::GetButtonCount()const 3414 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3415 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOW *)const 3416 unsigned long CToolBarCtrl::GetButtonSize()const 3417 unsigned int CButton::GetButtonStyle()const 3418 unsigned int CToolBar::GetButtonStyle(int)const 3419 ATL::CStringT > > CToolBar::GetButtonText(int)const 3420 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3421 void COleSafeArray::GetByteArray(CByteArray &) 3422 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3423 unsigned short CPropertySet::GetByteOrder() 3424 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3425 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3426 unsigned int CListCtrl::GetCallbackMask()const 3427 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3428 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3429 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3430 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3431 CWnd * COleControl::GetCapture() 3432 CWnd * CWnd::GetCapture() 3433 long COleControlSite::XOleIPSite::GetCapture() 3434 int CListBox::GetCaretIndex()const 3435 CPoint CWnd::GetCaretPos() 3436 void CSliderCtrl::GetChannelRect(tagRECT *)const 3437 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABC *)const 3438 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABCFLOAT *)const 3439 unsigned long CDC::GetCharacterPlacementW(ATL::CStringT > > &,int,tagGCP_RESULTSW *,unsigned long)const 3440 unsigned long CDC::GetCharacterPlacementW(wchar_t const *,int,int,tagGCP_RESULTSW *,unsigned long)const 3441 void CFontDialog::GetCharFormat(_charformatw &)const 3442 CHARFORMAT2W & CRichEditView::GetCharFormatSelection() 3443 CPoint CRichEditCtrl::GetCharPos(long)const 3444 int CDC::GetCharWidthW(unsigned int,unsigned int,int *)const 3445 int CDC::GetCharWidthW(unsigned int,unsigned int,float *)const 3446 int CButton::GetCheck()const 3447 int CCheckListBox::GetCheck(int) 3448 int CListCtrl::GetCheck(int)const 3449 int CTreeCtrl::GetCheck(_TREEITEM *)const 3450 int CWnd::GetCheckedRadioButton(int,int) 3451 unsigned int CCheckListBox::GetCheckStyle() 3452 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3453 long CBlobProperty::GetClassID(_GUID *) 3454 void COleClientItem::GetClassID(_GUID *)const 3455 _GUID const & COleConvertDialog::GetClassID()const 3456 _GUID const & COleInsertDialog::GetClassID()const 3457 _GUID const & COleObjectFactory::GetClassID()const 3458 _GUID CPropertySet::GetClassID() 3459 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3460 long COleControl::XPersistMemory::GetClassID(_GUID *) 3461 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3462 long COleControl::XPersistStorage::GetClassID(_GUID *) 3463 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3464 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3465 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 3466 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3467 void COleControl::GetClientOffset(long *,long *)const 3468 void COleControl::GetClientRect(tagRECT *)const 3469 void CWnd::GetClientRect(tagRECT *)const 3470 IOleClientSite * COleClientItem::GetClientSite() 3471 IOleClientSite * COleControl::GetClientSite() 3472 IOleClientSite * COleServerDoc::GetClientSite()const 3473 IOleClientSite * CRichEditCntrItem::GetClientSite() 3474 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3475 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3476 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3477 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3478 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3479 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3480 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3481 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3482 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3483 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3484 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3485 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3486 COleDataSource * COleDataSource::GetClipboardOwner() 3487 CWnd * CWnd::GetClipboardOwner() 3488 CWnd * CWnd::GetClipboardViewer() 3489 int CDC::GetClipBox(tagRECT *)const 3490 int CMetaFileDC::GetClipBox(tagRECT *)const 3491 unsigned long CColorDialog::GetColor()const 3492 unsigned long CFontDialog::GetColor()const 3493 unsigned long CMonthCalCtrl::GetColor(int)const 3494 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3495 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *) 3496 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3497 int CListCtrl::GetColumn(int,tagLVCOLUMNW *)const 3498 int CSplitterWnd::GetColumnCount()const 3499 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3500 int CListCtrl::GetColumnOrderArray(int *,int) 3501 int CListCtrl::GetColumnWidth(int)const 3502 CComboBox * CComboBoxEx::GetComboBoxCtrl() 3503 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap()const 3504 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap()const 3505 ATL::CStringT > > const & CDatabase::GetConnect()const 3506 void CDatabase::GetConnectInfo() 3507 int CConnectionPoint::GetConnectionCount() 3508 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3509 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3510 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3511 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap()const 3512 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap()const 3513 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3514 CPtrArray const * CConnectionPoint::GetConnections() 3515 IConnectionPointContainer * CConnectionPoint::GetContainer() 3516 IDispatch * CHtmlView::GetContainer()const 3517 IOleItemContainer * COleDocument::GetContainer() 3518 IOleItemContainer * COleLinkingDoc::GetContainer() 3519 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3520 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3521 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3522 unsigned long CInternetConnection::GetContext()const 3523 unsigned long CInternetFile::GetContext()const 3524 unsigned long CInternetSession::GetContext()const 3525 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3526 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3527 COleControl * CDataPathProperty::GetControl() 3528 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3529 COleControlContainer * CWnd::GetControlContainer() 3530 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 3531 unsigned long COleControl::GetControlFlags() 3532 void COleControlSite::GetControlInfo() 3533 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3534 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame()const 3535 IUnknown * CCmdTarget::GetControllingUnknown() 3536 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3537 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 3538 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 3539 void COleControl::GetControlSize(int *,int *) 3540 int COlePropertyPage::GetControlStatus(unsigned int) 3541 IUnknown * CWnd::GetControlUnknown() 3542 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3543 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 3544 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 3545 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 3546 int CPrintDialog::GetCopies()const 3547 int CPrintDialogEx::GetCopies()const 3548 int CByteArray::GetCount()const 3549 int CComboBox::GetCount()const 3550 int CControlBar::GetCount()const 3551 int CDWordArray::GetCount()const 3552 int CListBox::GetCount()const 3553 int CMapPtrToPtr::GetCount()const 3554 int CMapPtrToWord::GetCount()const 3555 int CMapStringToOb::GetCount()const 3556 int CMapStringToPtr::GetCount()const 3557 int CMapStringToString::GetCount()const 3558 int CMapWordToOb::GetCount()const 3559 int CMapWordToPtr::GetCount()const 3560 int CObArray::GetCount()const 3561 int CObList::GetCount()const 3562 unsigned long CPropertySection::GetCount() 3563 unsigned long CPropertySet::GetCount() 3564 int CPtrArray::GetCount()const 3565 int CPtrList::GetCount()const 3566 int CStringArray::GetCount()const 3567 int CStringList::GetCount()const 3568 unsigned int CTreeCtrl::GetCount()const 3569 int CUIntArray::GetCount()const 3570 int CWordArray::GetCount()const 3571 int CListCtrl::GetCountPerPage()const 3572 int CFileFind::GetCreationTime(ATL::CTime &)const 3573 int CFileFind::GetCreationTime(_FILETIME *)const 3574 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3575 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3576 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3577 int CTabCtrl::GetCurFocus()const 3578 CBitmap * CDC::GetCurrentBitmap()const 3579 CBrush * CDC::GetCurrentBrush()const 3580 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3581 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 3582 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 3583 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 3584 CFont * CDC::GetCurrentFont()const 3585 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 3586 tagMSG const * CWnd::GetCurrentMessage() 3587 CPalette * CDC::GetCurrentPalette()const 3588 CPen * CDC::GetCurrentPen()const 3589 CPoint CDC::GetCurrentPosition()const 3590 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3591 int CComboBox::GetCurSel()const 3592 int CListBox::GetCurSel()const 3593 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3594 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3595 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3596 int CTabCtrl::GetCurSel()const 3597 HICON__ * CButton::GetCursor() 3598 IUnknown * CDataBoundProperty::GetCursor() 3599 IUnknown * CDataSourceControl::GetCursor() 3600 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3601 HICON__ * CStatic::GetCursor() 3602 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3603 int CDatabase::GetCursorCommitBehavior()const 3604 int CDatabase::GetCursorRollbackBehavior()const 3605 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3606 ATL::CStringData * ATL::CSimpleStringT::GetData()const 3607 unsigned char * CByteArray::GetData() 3608 unsigned char const * CByteArray::GetData()const 3609 unsigned long * CDWordArray::GetData() 3610 unsigned long const * CDWordArray::GetData()const 3611 CObject * * CObArray::GetData() 3612 CObject const * * CObArray::GetData()const 3613 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3614 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3615 void * * CPtrArray::GetData() 3616 void const * * CPtrArray::GetData()const 3617 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3618 ATL::CStringT > > * CStringArray::GetData() 3619 ATL::CStringT > > const * CStringArray::GetData()const 3620 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)()) 3621 unsigned int * CUIntArray::GetData() 3622 unsigned int const * CUIntArray::GetData()const 3623 unsigned short * CWordArray::GetData() 3624 unsigned short const * CWordArray::GetData()const 3625 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3626 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3627 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3628 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3629 ATL::CStringT > > CDatabase::GetDatabaseName()const 3630 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3631 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3632 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3633 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3634 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3635 CNoTrackObject * CThreadLocalObject::GetDataNA() 3636 IDataObject * COleServerItem::GetDataObject() 3637 COleControl::CControlDataSource * COleControl::GetDataSource() 3638 COleDataSource * COleServerItem::GetDataSource() 3639 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3640 CDC * CWnd::GetDC() 3641 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3642 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3643 HACCEL__ * CDocument::GetDefaultAccelerator() 3644 HACCEL__ * CFrameWnd::GetDefaultAccelerator() 3645 HACCEL__ * COleServerDoc::GetDefaultAccelerator() 3646 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 3647 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 3648 ATL::CStringT > > CRecordset::GetDefaultConnect() 3649 short CRecordset::GetDefaultFieldType(short) 3650 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3651 HMENU__ * CDocument::GetDefaultMenu() 3652 HMENU__ * COleServerDoc::GetDefaultMenu() 3653 int CPrintDialog::GetDefaults() 3654 int CPrintDialogEx::GetDefaults() 3655 ATL::CStringT > > CRecordset::GetDefaultSQL() 3656 unsigned long COccManager::GetDefBtnCode(CWnd *) 3657 unsigned long COleControlSite::GetDefBtnCode() 3658 unsigned long CDialog::GetDefID()const 3659 int CToolTipCtrl::GetDelayTime(unsigned long)const 3660 int CDumpContext::GetDepth()const 3661 CWnd * CWnd::GetDescendantWindow(int,int)const 3662 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3663 CWnd * CWnd::GetDesktopWindow() 3664 int CDC::GetDeviceCaps(int)const 3665 ATL::CStringT > > CPageSetupDialog::GetDeviceName()const 3666 ATL::CStringT > > CPrintDialog::GetDeviceName()const 3667 ATL::CStringT > > CPrintDialogEx::GetDeviceName()const 3668 CPoint CScrollView::GetDeviceScrollPosition()const 3669 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3670 _devicemodeW * CPageSetupDialog::GetDevMode()const 3671 _devicemodeW * CPrintDialog::GetDevMode()const 3672 _devicemodeW * CPrintDialogEx::GetDevMode()const 3673 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3674 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3675 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3676 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3677 DHtmlEventMapEntry const * GetDHtmlEventMap() 3678 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap() 3679 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap() 3680 unsigned long COleSafeArray::GetDim() 3681 CImageList * CToolBarCtrl::GetDisabledImageList()const 3682 int CCmdTarget::GetDispatchIID(_GUID *) 3683 int COleControl::GetDispatchIID(_GUID *) 3684 AFX_DISPMAP const * CCmdTarget::GetDispatchMap()const 3685 AFX_DISPMAP const * COleControlContainer::GetDispatchMap()const 3686 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3687 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName() 3688 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 3689 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3690 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3691 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3692 int COleControlSite::GetDlgCtrlID()const 3693 int CWnd::GetDlgCtrlID()const 3694 CWnd * COleControlContainer::GetDlgItem(int)const 3695 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3696 CWnd * CWnd::GetDlgItem(int)const 3697 void CWnd::GetDlgItem(int,HWND__ * *)const 3698 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3699 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3700 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 3701 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 3702 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 3703 CFrameWnd * COleIPFrameWnd::GetDocFrame() 3704 CDockBar * CDockContext::GetDockBar(unsigned long) 3705 CControlBar * CDockBar::GetDockedControlBar(int)const 3706 int CDockBar::GetDockedCount()const 3707 int CDockBar::GetDockedVisibleCount()const 3708 CFrameWnd * CControlBar::GetDockingFrame()const 3709 void CFrameWnd::GetDockState(CDockState &)const 3710 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 3711 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 3712 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 3713 CDocTemplate * CDocument::GetDocTemplate()const 3714 CDocument * CDocItem::GetDocument()const 3715 COleDocument * COleClientItem::GetDocument()const 3716 COleServerDoc * COleServerItem::GetDocument()const 3717 CRichEditDoc * CRichEditCntrItem::GetDocument() 3718 CRichEditDoc * CRichEditView::GetDocument()const 3719 CDocument * CView::GetDocument()const 3720 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 3721 int CDocManager::GetDocumentCount() 3722 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 3723 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 3724 enum tagDVASPECT COleClientItem::GetDrawAspect()const 3725 enum tagDVASPECT COleConvertDialog::GetDrawAspect()const 3726 enum tagDVASPECT COleInsertDialog::GetDrawAspect()const 3727 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect()const 3728 ATL::CStringT > > CPageSetupDialog::GetDriverName()const 3729 ATL::CStringT > > CPrintDialog::GetDriverName()const 3730 ATL::CStringT > > CPrintDialogEx::GetDriverName()const 3731 _TREEITEM * CTreeCtrl::GetDropHilightItem()const 3732 void CComboBox::GetDroppedControlRect(tagRECT *)const 3733 int CComboBox::GetDroppedState()const 3734 int CComboBox::GetDroppedWidth()const 3735 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 3736 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 3737 IDropTarget * CReBarCtrl::GetDropTarget()const 3738 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 3739 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 3740 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 3741 IUnknown * CWnd::GetDSCCursor() 3742 CEdit * CListCtrl::GetEditControl()const 3743 CEdit * CTreeCtrl::GetEditControl()const 3744 CEdit * CComboBoxEx::GetEditCtrl() 3745 CEdit & CEditView::GetEditCtrl()const 3746 unsigned long CComboBox::GetEditSel()const 3747 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 3748 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 3749 void COleSafeArray::GetElement(long *,void *) 3750 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 3751 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 3752 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 3753 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 3754 unsigned long COleSafeArray::GetElemSize() 3755 COleServerItem * COleServerDoc::GetEmbeddedItem() 3756 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 3757 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 3758 int COleControl::GetEnabled() 3759 HENHMETAFILE__ * CStatic::GetEnhMetaFileW()const 3760 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 3761 int CPalette::GetEntryCount() 3762 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 3763 int ATL::CStringT > >::GetEnvironmentVariableW(wchar_t const *) 3764 int ATL::CStringT > >::GetEnvironmentVariableW(char const *) 3765 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3766 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3767 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 3768 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3769 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3770 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3771 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3772 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 3773 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 3774 int COleControlSite::GetEventIID(_GUID *) 3775 AFX_EVENTMAP const * COleControl::GetEventMap()const 3776 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 3777 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 3778 long CRichEditCtrl::GetEventMask()const 3779 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 3780 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap()const 3781 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap()const 3782 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap()const 3783 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap()const 3784 unsigned long COleControlSite::GetExStyle()const 3785 unsigned long CWnd::GetExStyle()const 3786 IDispatch * COleControl::GetExtendedControl() 3787 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 3788 unsigned long CComboBoxEx::GetExtendedStyle()const 3789 unsigned long CListCtrl::GetExtendedStyle() 3790 unsigned long CTabCtrl::GetExtendedStyle() 3791 unsigned long CToolBarCtrl::GetExtendedStyle()const 3792 int CComboBox::GetExtendedUI()const 3793 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 3794 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 3795 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 3796 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 3797 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 3798 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 3799 long CBrowserControlSite::GetExternal(IDispatch * *) 3800 long CDHtmlDialog::GetExternal(IDispatch * *) 3801 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 3802 int CPen::GetExtLogPen(tagEXTLOGPEN *) 3803 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 3804 int COleControl::GetExtraConnectionPoints(CPtrArray *) 3805 ATL::CStringT > > CFontDialog::GetFaceName()const 3806 short CRecordset::GetFieldIndexByName(wchar_t const *) 3807 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 3808 unsigned char CRecordset::GetFieldStatus(unsigned long) 3809 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3810 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3811 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3812 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 3813 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 3814 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 3815 CFile * CArchive::GetFile()const 3816 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 3817 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 3818 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3819 ATL::CStringT > > CFileDialog::GetFileExt()const 3820 ATL::CStringT > > CFile::GetFileName()const 3821 ATL::CStringT > > CFileDialog::GetFileName()const 3822 ATL::CStringT > > CFileFind::GetFileName()const 3823 ATL::CStringT > > CGopherFileFind::GetFileName()const 3824 ATL::CStringT > > COleChangeSourceDialog::GetFileName() 3825 ATL::CStringT > > CFile::GetFilePath()const 3826 ATL::CStringT > > CFileFind::GetFilePath()const 3827 ATL::CStringT > > CGopherFileFind::GetFilePath()const 3828 ATL::CStringT > > CFile::GetFileTitle()const 3829 ATL::CStringT > > CFileDialog::GetFileTitle()const 3830 ATL::CStringT > > CFileFind::GetFileTitle()const 3831 ATL::CStringT > > CGopherFileFind::GetFileTitle()const 3832 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3833 ATL::CStringT > > CFileFind::GetFileURL()const 3834 ATL::CStringT > > CFtpFileFind::GetFileURL()const 3835 ATL::CStringT > > CGopherFileFind::GetFileURL()const 3836 ATL::CStringT > > CHttpFile::GetFileURL()const 3837 ATL::CStringT > > CFindReplaceDialog::GetFindString()const 3838 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3839 __POSITION * CMultiDocTemplate::GetFirstDocPosition()const 3840 __POSITION * CSingleDocTemplate::GetFirstDocPosition()const 3841 __POSITION * CDocManager::GetFirstDocTemplatePosition()const 3842 __POSITION * CWinApp::GetFirstDocTemplatePosition()const 3843 CFrameWnd * COleDocument::GetFirstFrame() 3844 __POSITION * CListCtrl::GetFirstSelectedItemPosition()const 3845 __POSITION * CDocument::GetFirstViewPosition()const 3846 _TREEITEM * CTreeCtrl::GetFirstVisibleItem()const 3847 int CEdit::GetFirstVisibleLine()const 3848 int CRichEditCtrl::GetFirstVisibleLine()const 3849 CWnd * COleControl::GetFocus() 3850 CWnd * CWnd::GetFocus() 3851 long COleControlSite::XOleIPSite::GetFocus() 3852 ATL::CStringT > > CFileDialog::GetFolderPath()const 3853 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3854 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3855 IFontDisp * COleControl::GetFont() 3856 CFont * CWnd::GetFont()const 3857 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 3858 IFontDisp * CFontHolder::GetFontDispatch() 3859 HFONT__ * CFontHolder::GetFontHandle(long,long) 3860 HFONT__ * CFontHolder::GetFontHandle() 3861 unsigned long CDC::GetFontLanguageInfo()const 3862 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3863 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 3864 unsigned long COleControl::GetForeColor() 3865 CWnd * CWnd::GetForegroundWindow() 3866 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc()const 3867 _GUID CPropertySection::GetFormatID() 3868 unsigned short CPropertySet::GetFormatVersion() 3869 int CPrintDialog::GetFromPage()const 3870 unsigned int CPrintInfo::GetFromPage()const 3871 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix() 3872 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 3873 ATL::CStringT > > CHtmlView::GetFullName()const 3874 int CHtmlView::GetFullScreen()const 3875 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3876 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3877 unsigned long CDC::GetGlyphOutlineW(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 3878 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 3879 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3880 CBrush * CDC::GetHalftoneBrush() 3881 void * CEdit::GetHandle()const 3882 unsigned int CRectTracker::GetHandleMask()const 3883 void CRectTracker::GetHandleRect(int,CRect *)const 3884 int CRectTracker::GetHandleSize(tagRECT const *)const 3885 unsigned int CMapPtrToPtr::GetHashTableSize()const 3886 unsigned int CMapPtrToWord::GetHashTableSize()const 3887 unsigned int CMapStringToOb::GetHashTableSize()const 3888 unsigned int CMapStringToPtr::GetHashTableSize()const 3889 unsigned int CMapStringToString::GetHashTableSize()const 3890 unsigned int CMapWordToOb::GetHashTableSize()const 3891 unsigned int CMapWordToPtr::GetHashTableSize()const 3892 CObject * & CObList::GetHead() 3893 CObject const * CObList::GetHead()const 3894 void * & CPtrList::GetHead() 3895 void const * CPtrList::GetHead()const 3896 ATL::CStringT > > & CStringList::GetHead() 3897 ATL::CStringT > > const & CStringList::GetHead()const 3898 CHeaderCtrl * CListCtrl::GetHeaderCtrl() 3899 __POSITION * CObList::GetHeadPosition()const 3900 __POSITION * CPtrList::GetHeadPosition()const 3901 __POSITION * CStringList::GetHeadPosition()const 3902 long CHtmlView::GetHeight()const 3903 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3904 enum AFX_HELP_TYPE CWinApp::GetHelpMode() 3905 void CSplitterWnd::GetHitRect(int,CRect &) 3906 unsigned int CComboBox::GetHorizontalExtent()const 3907 int CListBox::GetHorizontalExtent()const 3908 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3909 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3910 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3911 HICON__ * CListCtrl::GetHotCursor() 3912 CImageList * CToolBarCtrl::GetHotImageList()const 3913 int CListCtrl::GetHotItem() 3914 int CToolBarCtrl::GetHotItem()const 3915 unsigned long CHotKeyCtrl::GetHotKey()const 3916 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3917 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName()const 3918 unsigned long CListCtrl::GetHoverTime()const 3919 IDispatch * CHtmlView::GetHtmlDocument()const 3920 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 3921 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 3922 unsigned int COleControl::GetHwnd() 3923 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3924 HICON__ * CButton::GetIcon()const 3925 HICON__ * CStatic::GetIcon()const 3926 HICON__ * CWnd::GetIcon(int)const 3927 HICON__ * COleClientItem::GetIconFromRegistry()const 3928 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3929 void * COleChangeIconDialog::GetIconicMetafile()const 3930 void * COleClientItem::GetIconicMetafile() 3931 void * COleConvertDialog::GetIconicMetafile()const 3932 void * COleInsertDialog::GetIconicMetafile()const 3933 void * COlePasteSpecialDialog::GetIconicMetafile()const 3934 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3935 unsigned long CProperty::GetID() 3936 int CPropertySection::GetID(wchar_t const *,unsigned long *) 3937 IDataObject * COleDataObject::GetIDataObject(int) 3938 IDispatch * CCmdTarget::GetIDispatch(int) 3939 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3940 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3941 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3942 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3943 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3944 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3945 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3946 _GUID const & COleControl::XEventConnPt::GetIID() 3947 int CImageList::GetImageCount()const 3948 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 3949 CImageList * CComboBoxEx::GetImageList()const 3950 CImageList * CHeaderCtrl::GetImageList()const 3951 CImageList * CListCtrl::GetImageList(int)const 3952 CImageList * CReBarCtrl::GetImageList()const 3953 CImageList * CTabCtrl::GetImageList()const 3954 CImageList * CToolBarCtrl::GetImageList()const 3955 CImageList * CTreeCtrl::GetImageList(unsigned int)const 3956 unsigned int CTreeCtrl::GetIndent()const 3957 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3958 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3959 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem()const 3960 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3961 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 3962 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 3963 HMENU__ * COleIPFrameWnd::GetInPlaceMenu() 3964 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3965 CWnd * COleClientItem::GetInPlaceWindow() 3966 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 3967 unsigned long CToolBarCtrl::GetInsertMarkColor()const 3968 unsigned long CTreeCtrl::GetInsertMarkColor()const 3969 void CSplitterWnd::GetInsideRect(CRect &)const 3970 IUnknown * CCmdTarget::GetInterface(void const *) 3971 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3972 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3973 IUnknown * COleControl::GetInterfaceHook(void const *) 3974 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3975 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap()const 3976 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap()const 3977 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap()const 3978 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap()const 3979 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap()const 3980 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap()const 3981 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap()const 3982 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap()const 3983 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap()const 3984 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap()const 3985 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap()const 3986 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap()const 3987 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap()const 3988 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap()const 3989 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap()const 3990 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap()const 3991 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap()const 3992 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap()const 3993 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap()const 3994 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap()const 3995 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap()const 3996 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap()const 3997 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap()const 3998 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap()const 3999 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap()const 4000 IRichEditOle * CRichEditCtrl::GetIRichEditOle()const 4001 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 4002 int CHeaderCtrl::GetItem(int,_HD_ITEMW *)const 4003 int CListCtrl::GetItem(tagLVITEMW *)const 4004 int CTabCtrl::GetItem(int,tagTCITEMW *)const 4005 int CTreeCtrl::GetItem(tagTVITEMW *)const 4006 void COleServerDoc::GetItemClipRect(tagRECT *)const 4007 int CHeaderCtrl::GetItemCount()const 4008 int CListCtrl::GetItemCount()const 4009 int CTabCtrl::GetItemCount()const 4010 unsigned long CComboBox::GetItemData(int)const 4011 unsigned long CListBox::GetItemData(int)const 4012 unsigned long CListCtrl::GetItemData(int)const 4013 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 4014 void * CComboBox::GetItemDataPtr(int)const 4015 void * CListBox::GetItemDataPtr(int)const 4016 int CComboBox::GetItemHeight(int)const 4017 int CListBox::GetItemHeight(int)const 4018 short CTreeCtrl::GetItemHeight()const 4019 unsigned int CStatusBar::GetItemID(int)const 4020 unsigned int CToolBar::GetItemID(int)const 4021 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 4022 ATL::CStringT > > COleChangeSourceDialog::GetItemName() 4023 void COleClientItem::GetItemName(wchar_t *)const 4024 ATL::CStringT > > const & COleServerItem::GetItemName()const 4025 int CListCtrl::GetItemPosition(int,tagPOINT *)const 4026 void COleServerDoc::GetItemPosition(tagRECT *)const 4027 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 4028 int CListBox::GetItemRect(int,tagRECT *)const 4029 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 4030 void CStatusBar::GetItemRect(int,tagRECT *)const 4031 int CTabCtrl::GetItemRect(int,tagRECT *)const 4032 void CToolBar::GetItemRect(int,tagRECT *)const 4033 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 4034 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 4035 unsigned int CListCtrl::GetItemState(int,unsigned int)const 4036 unsigned int COleClientItem::GetItemState()const 4037 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 4038 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 4039 void COleClientItem::GetItemStorage() 4040 void COleClientItem::GetItemStorageCompound() 4041 void COleClientItem::GetItemStorageFlat() 4042 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 4043 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 4044 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 4045 int CDC::GetKerningPairsW(int,tagKERNINGPAIR *)const 4046 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 4047 int CFileFind::GetLastAccessTime(ATL::CTime &)const 4048 int CFileFind::GetLastAccessTime(_FILETIME *)const 4049 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 4050 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 4051 CWnd * CWnd::GetLastActivePopup()const 4052 int CAsyncSocket::GetLastError() 4053 unsigned int COleDialog::GetLastError()const 4054 long COleClientItem::GetLastStatus()const 4055 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 4056 int CFileFind::GetLastWriteTime(ATL::CTime &)const 4057 int CFileFind::GetLastWriteTime(_FILETIME *)const 4058 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 4059 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 4060 unsigned long CDC::GetLayout()const 4061 long CRecordset::GetLBFetchSize(long) 4062 void COleSafeArray::GetLBound(unsigned long,long *) 4063 long CRecordset::GetLBReallocSize(long) 4064 int CComboBox::GetLBText(int,wchar_t *)const 4065 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 4066 int CComboBox::GetLBTextLen(int)const 4067 long CHtmlView::GetLeft()const 4068 int ATL::CSimpleStringT::GetLength()const 4069 int ATL::CSimpleStringT::GetLength()const 4070 unsigned __int64 CFile::GetLength()const 4071 unsigned __int64 CFileFind::GetLength()const 4072 unsigned __int64 CGopherFileFind::GetLength()const 4073 unsigned __int64 CInternetFile::GetLength()const 4074 unsigned __int64 CMemFile::GetLength()const 4075 unsigned __int64 COleStreamFile::GetLength()const 4076 unsigned __int64 CSocketFile::GetLength()const 4077 unsigned __int64 CStdioFile::GetLength()const 4078 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 4079 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 4080 unsigned int CEdit::GetLimitText()const 4081 long CRichEditCtrl::GetLimitText()const 4082 int CEdit::GetLine(int,wchar_t *)const 4083 int CEdit::GetLine(int,wchar_t *,int)const 4084 int CRichEditCtrl::GetLine(int,wchar_t *)const 4085 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 4086 unsigned long CTreeCtrl::GetLineColor()const 4087 int CEdit::GetLineCount()const 4088 int CRichEditCtrl::GetLineCount()const 4089 int CSliderCtrl::GetLineSize()const 4090 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 4091 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 4092 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 4093 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 4094 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions() 4095 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 4096 CPtrList * CPropertySection::GetList() 4097 CPtrList * CPropertySet::GetList() 4098 CListCtrl & CListView::GetListCtrl()const 4099 unsigned long CComboBox::GetLocale()const 4100 unsigned long CListBox::GetLocale()const 4101 ATL::CStringT > > CHtmlView::GetLocationName()const 4102 ATL::CStringT > > CHtmlView::GetLocationURL()const 4103 CGopherLocator CGopherFileFind::GetLocator()const 4104 int CGopherLocator::GetLocatorType(unsigned long &)const 4105 int CBrush::GetLogBrush(tagLOGBRUSH *) 4106 int CFont::GetLogFont(tagLOGFONTW *) 4107 int CPen::GetLogPen(tagLOGPEN *) 4108 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 4109 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 4110 long CFieldExchange::GetLongBinarySize(int) 4111 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4112 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4113 CFrameWnd * COleIPFrameWnd::GetMainFrame() 4114 CWnd * CWinThread::GetMainWnd() 4115 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4116 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager()const 4117 int CDC::GetMapMode()const 4118 void CToolTipCtrl::GetMargin(tagRECT *)const 4119 unsigned long CEdit::GetMargins()const 4120 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 4121 CRect CRichEditView::GetMargins()const 4122 int CConnectionPoint::GetMaxConnections() 4123 unsigned int CPrintInfo::GetMaxPage()const 4124 int CMonthCalCtrl::GetMaxSelCount()const 4125 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 4126 int CToolBarCtrl::GetMaxTextRows()const 4127 int CToolTipCtrl::GetMaxTipWidth()const 4128 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame() 4129 CMenu * CWnd::GetMenu()const 4130 int CHtmlView::GetMenuBar()const 4131 unsigned long CMenu::GetMenuContextHelpId()const 4132 unsigned int CMenu::GetMenuItemCount()const 4133 unsigned int CMenu::GetMenuItemID(int)const 4134 int CMenu::GetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 4135 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 4136 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 4137 int CMenu::GetMenuStringW(unsigned int,wchar_t *,int,unsigned int)const 4138 CWnd * CFrameWnd::GetMessageBar() 4139 CWnd * CMDIChildWnd::GetMessageBar() 4140 AFX_MSGMAP const * CCheckListBox::GetMessageMap()const 4141 AFX_MSGMAP const * CCmdTarget::GetMessageMap()const 4142 AFX_MSGMAP const * CCommonDialog::GetMessageMap()const 4143 AFX_MSGMAP const * CControlBar::GetMessageMap()const 4144 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap()const 4145 AFX_MSGMAP const * CCtrlView::GetMessageMap()const 4146 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap()const 4147 AFX_MSGMAP const * CDialog::GetMessageMap()const 4148 AFX_MSGMAP const * CDialogBar::GetMessageMap()const 4149 AFX_MSGMAP const * CDockBar::GetMessageMap()const 4150 AFX_MSGMAP const * CDocObjectServer::GetMessageMap()const 4151 AFX_MSGMAP const * CDocument::GetMessageMap()const 4152 AFX_MSGMAP const * CEditView::GetMessageMap()const 4153 AFX_MSGMAP const * CFormView::GetMessageMap()const 4154 AFX_MSGMAP const * CFrameWnd::GetMessageMap()const 4155 AFX_MSGMAP const * CHtmlEditView::GetMessageMap()const 4156 AFX_MSGMAP const * CHtmlView::GetMessageMap()const 4157 AFX_MSGMAP const * CListCtrl::GetMessageMap()const 4158 AFX_MSGMAP const * CListView::GetMessageMap()const 4159 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap()const 4160 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap()const 4161 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap()const 4162 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap()const 4163 AFX_MSGMAP const * COleControl::GetMessageMap()const 4164 AFX_MSGMAP const * COleDBRecordView::GetMessageMap()const 4165 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap()const 4166 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap()const 4167 AFX_MSGMAP const * COlePropertyPage::GetMessageMap()const 4168 AFX_MSGMAP const * COleResizeBar::GetMessageMap()const 4169 AFX_MSGMAP const * COleServerDoc::GetMessageMap()const 4170 AFX_MSGMAP const * CPreviewView::GetMessageMap()const 4171 AFX_MSGMAP const * CPrintDialog::GetMessageMap()const 4172 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap()const 4173 AFX_MSGMAP const * CPropertyPage::GetMessageMap()const 4174 AFX_MSGMAP const * CPropertySheet::GetMessageMap()const 4175 AFX_MSGMAP const * CReBar::GetMessageMap()const 4176 AFX_MSGMAP const * CRecordView::GetMessageMap()const 4177 AFX_MSGMAP const * CRichEditView::GetMessageMap()const 4178 AFX_MSGMAP const * CScrollView::GetMessageMap()const 4179 AFX_MSGMAP const * CSocketWnd::GetMessageMap()const 4180 AFX_MSGMAP const * CSplitterWnd::GetMessageMap()const 4181 AFX_MSGMAP const * CStatusBar::GetMessageMap()const 4182 AFX_MSGMAP const * CTabCtrl::GetMessageMap()const 4183 AFX_MSGMAP const * CToolBar::GetMessageMap()const 4184 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap()const 4185 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap()const 4186 AFX_MSGMAP const * CTreeCtrl::GetMessageMap()const 4187 AFX_MSGMAP const * CTreeView::GetMessageMap()const 4188 AFX_MSGMAP const * CView::GetMessageMap()const 4189 AFX_MSGMAP const * CWinApp::GetMessageMap()const 4190 AFX_MSGMAP const * CWnd::GetMessageMap()const 4191 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4192 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4193 long CDataSourceControl::GetMetaData() 4194 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4195 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4196 unsigned int CPrintInfo::GetMinPage()const 4197 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4198 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4199 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4200 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4201 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4202 float CDC::GetMiterLimit()const 4203 int CEdit::GetModify()const 4204 int CRichEditCtrl::GetModify()const 4205 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4206 IMoniker * CMonikerFile::GetMoniker()const 4207 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4208 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4209 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4210 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4211 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4212 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4213 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4214 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4215 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4216 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4217 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4218 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl()const 4219 CFont * CDateTimeCtrl::GetMonthCalFont()const 4220 int CMonthCalCtrl::GetMonthDelta()const 4221 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4222 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4223 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4224 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4225 unsigned long CDC::GetNearestColor(unsigned long)const 4226 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4227 unsigned long COleClientItem::GetNewItemNumber() 4228 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4229 CDataBoundProperty * CDataBoundProperty::GetNext() 4230 CObject * & CObList::GetNext(__POSITION * &) 4231 CObject const * CObList::GetNext(__POSITION * &)const 4232 void * & CPtrList::GetNext(__POSITION * &) 4233 void const * CPtrList::GetNext(__POSITION * &)const 4234 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4235 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4236 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4237 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4238 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4239 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4240 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4241 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4242 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4243 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4244 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4245 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4246 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4247 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4248 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4249 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4250 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4251 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4252 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4253 int COleDataObject::GetNextFormat(tagFORMATETC *) 4254 int CListCtrl::GetNextItem(int,int)const 4255 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4256 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4257 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4258 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4259 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4260 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4261 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4262 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4263 CView * CDocument::GetNextView(__POSITION * &)const 4264 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4265 CWnd * CWnd::GetNextWindow(unsigned int)const 4266 ATL::CStringData * CAfxStringMgr::GetNilString() 4267 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4268 void CCmdTarget::GetNotSupported() 4269 void COleControl::GetNotSupported() 4270 unsigned int CListCtrl::GetNumberOfWorkAreas()const 4271 unsigned int CSliderCtrl::GetNumTics()const 4272 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4273 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4274 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4275 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 4276 unsigned int CArchive::GetObjectSchema() 4277 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4278 unsigned int CGdiObject::GetObjectType()const 4279 int CGdiObject::GetObjectW(int,void *)const 4280 ATL::CStringT > > CHttpFile::GetObjectW()const 4281 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4282 short CRecordset::GetODBCFieldCount()const 4283 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4284 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 4285 int CHtmlView::GetOffline()const 4286 tagOFNW & CFileDialog::GetOFN() 4287 tagOFNW const & CFileDialog::GetOFN()const 4288 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4289 IOleObject * COleServerItem::GetOleObject() 4290 unsigned long COleSafeArray::GetOneDimSize() 4291 CWnd * CWnd::GetOpenClipboardWindow() 4292 int CDocManager::GetOpenDocumentCount() 4293 int CWinApp::GetOpenDocumentCount() 4294 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4295 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4296 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4297 unsigned int CRichEditCtrl::GetOptions()const 4298 int CHeaderCtrl::GetOrderArray(int *,int) 4299 int CListCtrl::GetOrigin(tagPOINT *)const 4300 unsigned long CPropertySet::GetOSVersion() 4301 CWnd * COleControl::GetOuterWindow()const 4302 unsigned int CDC::GetOutlineTextMetricsW(unsigned int,_OUTLINETEXTMETRICW *)const 4303 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4304 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4305 CSize CDC::GetOutputTabbedTextExtent(wchar_t const *,int,int,int *)const 4306 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4307 CSize CDC::GetOutputTextExtent(wchar_t const *,int)const 4308 int CDC::GetOutputTextMetrics(tagTEXTMETRICW *)const 4309 CWnd * CWnd::GetOwner()const 4310 CPropertyPage * CPropertySheet::GetPage(int)const 4311 int COleDocObjectItem::GetPageCount(long *,long *) 4312 int CPropertySheet::GetPageCount()const 4313 int CPropertySheet::GetPageIndex(CPropertyPage *) 4314 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4315 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4316 CRect CRichEditView::GetPageRect()const 4317 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4318 IPropertyPageSite * COlePropertyPage::GetPageSite() 4319 int CSliderCtrl::GetPageSize()const 4320 CPalette * CReBarCtrl::GetPalette()const 4321 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4322 CWnd * CSplitterWnd::GetPane(int,int)const 4323 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4324 unsigned int CStatusBar::GetPaneStyle(int)const 4325 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4326 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4327 CSize CPageSetupDialog::GetPaperSize()const 4328 CSize CRichEditView::GetPaperSize()const 4329 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4330 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4331 PARAFORMAT2 & CRichEditView::GetParaFormatSelection() 4332 CWnd * CWnd::GetParent()const 4333 IDispatch * CHtmlView::GetParentBrowser()const 4334 CFrameWnd * CWnd::GetParentFrame()const 4335 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4336 CWnd * CWnd::GetParentOwner()const 4337 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4338 int CStatusBarCtrl::GetParts(int,int *)const 4339 wchar_t CEdit::GetPasswordChar()const 4340 int COlePasteSpecialDialog::GetPasteIndex()const 4341 ATL::CStringT > > CDataPathProperty::GetPath()const 4342 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4343 ATL::CStringT > > const & CDocument::GetPathName()const 4344 ATL::CStringT > > CFileDialog::GetPathName()const 4345 ATL::CStringT > > COleInsertDialog::GetPathName()const 4346 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4347 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4348 IPictureDisp * CPictureHolder::GetPictureDispatch() 4349 unsigned long CDC::GetPixel(int,int)const 4350 unsigned long CDC::GetPixel(tagPOINT)const 4351 int CDC::GetPolyFillMode()const 4352 ATL::CStringT > > CPageSetupDialog::GetPortName()const 4353 ATL::CStringT > > CPrintDialog::GetPortName()const 4354 ATL::CStringT > > CPrintDialogEx::GetPortName()const 4355 int CProgressCtrl::GetPos() 4356 int CSliderCtrl::GetPos()const 4357 int CSpinButtonCtrl::GetPos()const 4358 int CSpinButtonCtrl::GetPos32(int *)const 4359 unsigned __int64 CFile::GetPosition()const 4360 unsigned __int64 CMemFile::GetPosition()const 4361 unsigned __int64 COleStreamFile::GetPosition()const 4362 unsigned __int64 CSocketFile::GetPosition()const 4363 unsigned __int64 CStdioFile::GetPosition()const 4364 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4365 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4366 CObject * & CObList::GetPrev(__POSITION * &) 4367 CObject const * CObList::GetPrev(__POSITION * &)const 4368 void * & CPtrList::GetPrev(__POSITION * &) 4369 void const * CPtrList::GetPrev(__POSITION * &)const 4370 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4371 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4372 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4373 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4374 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4375 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4376 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4377 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4378 HDC__ * CPrintDialog::GetPrinterDC()const 4379 HDC__ * CPrintDialogEx::GetPrinterDC()const 4380 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 4381 CFont * CEditView::GetPrinterFont()const 4382 CRect CRichEditView::GetPrintRect()const 4383 int CRichEditView::GetPrintWidth()const 4384 long CAsyncMonikerFile::GetPriority()const 4385 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 4386 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 4387 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 4388 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 4389 COleVariant CHtmlView::GetProperty(wchar_t const *) 4390 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 4391 void COleControlSite::GetProperty(long,unsigned short,void *)const 4392 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4393 CProperty * CPropertySection::GetProperty(unsigned long) 4394 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4395 void CWnd::GetProperty(long,unsigned short,void *)const 4396 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 4397 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4398 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 4399 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4400 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 4401 int COlePropertyPage::GetPropText(wchar_t const *,short *) 4402 int COlePropertyPage::GetPropText(wchar_t const *,int *) 4403 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 4404 int COlePropertyPage::GetPropText(wchar_t const *,long *) 4405 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 4406 int COlePropertyPage::GetPropText(wchar_t const *,float *) 4407 int COlePropertyPage::GetPropText(wchar_t const *,double *) 4408 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 4409 _PROPSHEETPAGEW & CPropertyPage::GetPSP() 4410 _PROPSHEETPAGEW const & CPropertyPage::GetPSP()const 4411 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4412 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4413 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4414 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4415 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4416 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4417 void CProgressCtrl::GetRange(int &,int &) 4418 void CSliderCtrl::GetRange(int &,int &)const 4419 unsigned long CSpinButtonCtrl::GetRange()const 4420 void CSpinButtonCtrl::GetRange(int &,int &)const 4421 void CSpinButtonCtrl::GetRange32(int &,int &)const 4422 int CSliderCtrl::GetRangeMax()const 4423 int CSliderCtrl::GetRangeMin()const 4424 void * CProperty::GetRawValue() 4425 int CFileDialog::GetReadOnlyPref()const 4426 enum tagREADYSTATE CHtmlView::GetReadyState()const 4427 long COleControl::GetReadyState() 4428 CReBarCtrl & CReBar::GetReBarCtrl()const 4429 long CRecordset::GetRecordCount()const 4430 void CEdit::GetRect(tagRECT *)const 4431 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4432 void CRichEditCtrl::GetRect(tagRECT *)const 4433 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4434 int CToolBarCtrl::GetRect(int,tagRECT *)const 4435 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4436 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4437 int COleControl::GetRectInContainer(tagRECT *) 4438 enum _undonameid CRichEditCtrl::GetRedoName()const 4439 int CRgn::GetRegionData(_RGNDATA *,int)const 4440 int CHtmlView::GetRegisterAsBrowser()const 4441 int CHtmlView::GetRegisterAsDropTarget()const 4442 ATL::CStringT > > CFindReplaceDialog::GetReplaceString()const 4443 int CRgn::GetRgnBox(tagRECT *)const 4444 CRichEditCtrl & CRichEditView::GetRichEditCtrl()const 4445 ATL::CStringT > > CFileFind::GetRoot()const 4446 ATL::CStringT > > CGopherFileFind::GetRoot()const 4447 _TREEITEM * CTreeCtrl::GetRootItem()const 4448 int CDC::GetROP2()const 4449 CFrameWnd * CCmdTarget::GetRoutingFrame() 4450 CFrameWnd * CCmdTarget::GetRoutingFrame_() 4451 CView * CCmdTarget::GetRoutingView() 4452 CView * CCmdTarget::GetRoutingView_() 4453 unsigned int CReBarCtrl::GetRowCount()const 4454 int CSplitterWnd::GetRowCount()const 4455 int CTabCtrl::GetRowCount()const 4456 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4457 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4458 int CToolBarCtrl::GetRows()const 4459 unsigned long CRecordset::GetRowsetSize()const 4460 unsigned long CRecordset::GetRowsFetched()const 4461 unsigned short CRecordset::GetRowStatus(unsigned short)const 4462 CRuntime* CAnimateCtrl::GetRuntimeClass()const 4463 CRuntime* CArchiveException::GetRuntimeClass()const 4464 CRuntime* CAsyncMonikerFile::GetRuntimeClass()const 4465 CRuntime* CAsyncSocket::GetRuntimeClass()const 4466 CRuntime* CBitmap::GetRuntimeClass()const 4467 CRuntime* CBitmapButton::GetRuntimeClass()const 4468 CRuntime* CBrush::GetRuntimeClass()const 4469 CRuntime* CButton::GetRuntimeClass()const 4470 CRuntime* CByteArray::GetRuntimeClass()const 4471 CRuntime* CCachedDataPathProperty::GetRuntimeClass()const 4472 CRuntime* CCheckListBox::GetRuntimeClass()const 4473 CRuntime* CClientDC::GetRuntimeClass()const 4474 CRuntime* CCmdTarget::GetRuntimeClass()const 4475 CRuntime* CColorDialog::GetRuntimeClass()const 4476 CRuntime* CComboBox::GetRuntimeClass()const 4477 CRuntime* CComboBoxEx::GetRuntimeClass()const 4478 CRuntime* CControlBar::GetRuntimeClass()const 4479 CRuntime* CCriticalSection::GetRuntimeClass()const 4480 CRuntime* CCtrlView::GetRuntimeClass()const 4481 CRuntime* CDatabase::GetRuntimeClass()const 4482 CRuntime* CDataPathProperty::GetRuntimeClass()const 4483 CRuntime* CDateTimeCtrl::GetRuntimeClass()const 4484 CRuntime* CDBException::GetRuntimeClass()const 4485 CRuntime* CDC::GetRuntimeClass()const 4486 CRuntime* CDHtmlDialog::GetRuntimeClass()const 4487 CRuntime* CDialog::GetRuntimeClass()const 4488 CRuntime* CDialogBar::GetRuntimeClass()const 4489 CRuntime* CDocItem::GetRuntimeClass()const 4490 CRuntime* CDockBar::GetRuntimeClass()const 4491 CRuntime* CDockState::GetRuntimeClass()const 4492 CRuntime* CDocManager::GetRuntimeClass()const 4493 CRuntime* CDocObjectServer::GetRuntimeClass()const 4494 CRuntime* CDocObjectServerItem::GetRuntimeClass()const 4495 CRuntime* CDocTemplate::GetRuntimeClass()const 4496 CRuntime* CDocument::GetRuntimeClass()const 4497 CRuntime* CDragListBox::GetRuntimeClass()const 4498 CRuntime* CDWordArray::GetRuntimeClass()const 4499 CRuntime* CDynLinkLibrary::GetRuntimeClass()const 4500 CRuntime* CEdit::GetRuntimeClass()const 4501 CRuntime* CEditView::GetRuntimeClass()const 4502 CRuntime* CEvent::GetRuntimeClass()const 4503 CRuntime* CException::GetRuntimeClass()const 4504 CRuntime* CFile::GetRuntimeClass()const 4505 CRuntime* CFileDialog::GetRuntimeClass()const 4506 CRuntime* CFileException::GetRuntimeClass()const 4507 CRuntime* CFileFind::GetRuntimeClass()const 4508 CRuntime* CFindReplaceDialog::GetRuntimeClass()const 4509 CRuntime* CFont::GetRuntimeClass()const 4510 CRuntime* CFontDialog::GetRuntimeClass()const 4511 CRuntime* CFormView::GetRuntimeClass()const 4512 CRuntime* CFrameWnd::GetRuntimeClass()const 4513 CRuntime* CFtpConnection::GetRuntimeClass()const 4514 CRuntime* CFtpFileFind::GetRuntimeClass()const 4515 CRuntime* CGdiObject::GetRuntimeClass()const 4516 CRuntime* CGopherConnection::GetRuntimeClass()const 4517 CRuntime* CGopherFile::GetRuntimeClass()const 4518 CRuntime* CGopherFileFind::GetRuntimeClass()const 4519 CRuntime* CHeaderCtrl::GetRuntimeClass()const 4520 CRuntime* CHotKeyCtrl::GetRuntimeClass()const 4521 CRuntime* CHtmlEditDoc::GetRuntimeClass()const 4522 CRuntime* CHtmlEditView::GetRuntimeClass()const 4523 CRuntime* CHtmlView::GetRuntimeClass()const 4524 CRuntime* CHttpConnection::GetRuntimeClass()const 4525 CRuntime* CHttpFile::GetRuntimeClass()const 4526 CRuntime* CImageList::GetRuntimeClass()const 4527 CRuntime* CInternetConnection::GetRuntimeClass()const 4528 CRuntime* CInternetException::GetRuntimeClass()const 4529 CRuntime* CInternetFile::GetRuntimeClass()const 4530 CRuntime* CInternetSession::GetRuntimeClass()const 4531 CRuntime* CInvalidArgException::GetRuntimeClass()const 4532 CRuntime* CIPAddressCtrl::GetRuntimeClass()const 4533 CRuntime* CLinkCtrl::GetRuntimeClass()const 4534 CRuntime* CListBox::GetRuntimeClass()const 4535 CRuntime* CListCtrl::GetRuntimeClass()const 4536 CRuntime* CListView::GetRuntimeClass()const 4537 CRuntime* CLongBinary::GetRuntimeClass()const 4538 CRuntime* CMapPtrToPtr::GetRuntimeClass()const 4539 CRuntime* CMapPtrToWord::GetRuntimeClass()const 4540 CRuntime* CMapStringToOb::GetRuntimeClass()const 4541 CRuntime* CMapStringToPtr::GetRuntimeClass()const 4542 CRuntime* CMapStringToString::GetRuntimeClass()const 4543 CRuntime* CMapWordToOb::GetRuntimeClass()const 4544 CRuntime* CMapWordToPtr::GetRuntimeClass()const 4545 CRuntime* CMDIChildWnd::GetRuntimeClass()const 4546 CRuntime* CMDIFrameWnd::GetRuntimeClass()const 4547 CRuntime* CMemFile::GetRuntimeClass()const 4548 CRuntime* CMemoryException::GetRuntimeClass()const 4549 CRuntime* CMenu::GetRuntimeClass()const 4550 CRuntime* CMetaFileDC::GetRuntimeClass()const 4551 CRuntime* CMiniDockFrameWnd::GetRuntimeClass()const 4552 CRuntime* CMiniFrameWnd::GetRuntimeClass()const 4553 CRuntime* CMonikerFile::GetRuntimeClass()const 4554 CRuntime* CMonthCalCtrl::GetRuntimeClass()const 4555 CRuntime* CMultiDocTemplate::GetRuntimeClass()const 4556 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass()const 4557 CRuntime* CMutex::GetRuntimeClass()const 4558 CRuntime* CNotSupportedException::GetRuntimeClass()const 4559 CRuntime* CObArray::GetRuntimeClass()const 4560 CRuntime* CObject::GetRuntimeClass()const 4561 CRuntime* CObList::GetRuntimeClass()const 4562 CRuntime* COleBusyDialog::GetRuntimeClass()const 4563 CRuntime* COleChangeIconDialog::GetRuntimeClass()const 4564 CRuntime* COleChangeSourceDialog::GetRuntimeClass()const 4565 CRuntime* COleClientItem::GetRuntimeClass()const 4566 CRuntime* COleControl::GetRuntimeClass()const 4567 CRuntime* COleControlModule::GetRuntimeClass()const 4568 CRuntime* COleConvertDialog::GetRuntimeClass()const 4569 CRuntime* COleDBRecordView::GetRuntimeClass()const 4570 CRuntime* COleDialog::GetRuntimeClass()const 4571 CRuntime* COleDispatchException::GetRuntimeClass()const 4572 CRuntime* COleDocIPFrameWnd::GetRuntimeClass()const 4573 CRuntime* COleDocObjectItem::GetRuntimeClass()const 4574 CRuntime* COleDocument::GetRuntimeClass()const 4575 CRuntime* COleException::GetRuntimeClass()const 4576 CRuntime* COleInsertDialog::GetRuntimeClass()const 4577 CRuntime* COleIPFrameWnd::GetRuntimeClass()const 4578 CRuntime* COleLinkingDoc::GetRuntimeClass()const 4579 CRuntime* COleLinksDialog::GetRuntimeClass()const 4580 CRuntime* COleObjectFactory::GetRuntimeClass()const 4581 CRuntime* COlePasteSpecialDialog::GetRuntimeClass()const 4582 CRuntime* COlePropertiesDialog::GetRuntimeClass()const 4583 CRuntime* COlePropertyPage::GetRuntimeClass()const 4584 CRuntime* COleResizeBar::GetRuntimeClass()const 4585 CRuntime* COleServerDoc::GetRuntimeClass()const 4586 CRuntime* COleServerItem::GetRuntimeClass()const 4587 CRuntime* COleStreamFile::GetRuntimeClass()const 4588 CRuntime* COleUpdateDialog::GetRuntimeClass()const 4589 CRuntime* CPageSetupDialog::GetRuntimeClass()const 4590 CRuntime* CPaintDC::GetRuntimeClass()const 4591 CRuntime* CPalette::GetRuntimeClass()const 4592 CRuntime* CPen::GetRuntimeClass()const 4593 CRuntime* CPreviewDC::GetRuntimeClass()const 4594 CRuntime* CPreviewView::GetRuntimeClass()const 4595 CRuntime* CPrintDialog::GetRuntimeClass()const 4596 CRuntime* CPrintDialogEx::GetRuntimeClass()const 4597 CRuntime* CProgressCtrl::GetRuntimeClass()const 4598 CRuntime* CPropertyPage::GetRuntimeClass()const 4599 CRuntime* CPropertySheet::GetRuntimeClass()const 4600 CRuntime* CPtrArray::GetRuntimeClass()const 4601 CRuntime* CPtrList::GetRuntimeClass()const 4602 CRuntime* CReBar::GetRuntimeClass()const 4603 CRuntime* CReBarCtrl::GetRuntimeClass()const 4604 CRuntime* CRecordset::GetRuntimeClass()const 4605 CRuntime* CRecordView::GetRuntimeClass()const 4606 CRuntime* CResourceException::GetRuntimeClass()const 4607 CRuntime* CRgn::GetRuntimeClass()const 4608 CRuntime* CRichEditCntrItem::GetRuntimeClass()const 4609 CRuntime* CRichEditCtrl::GetRuntimeClass()const 4610 CRuntime* CRichEditDoc::GetRuntimeClass()const 4611 CRuntime* CRichEditView::GetRuntimeClass()const 4612 CRuntime* CScrollBar::GetRuntimeClass()const 4613 CRuntime* CScrollView::GetRuntimeClass()const 4614 CRuntime* CSemaphore::GetRuntimeClass()const 4615 CRuntime* CSharedFile::GetRuntimeClass()const 4616 CRuntime* CSingleDocTemplate::GetRuntimeClass()const 4617 CRuntime* CSliderCtrl::GetRuntimeClass()const 4618 CRuntime* CSocket::GetRuntimeClass()const 4619 CRuntime* CSocketFile::GetRuntimeClass()const 4620 CRuntime* CSpinButtonCtrl::GetRuntimeClass()const 4621 CRuntime* CSplitterWnd::GetRuntimeClass()const 4622 CRuntime* CStatic::GetRuntimeClass()const 4623 CRuntime* CStatusBar::GetRuntimeClass()const 4624 CRuntime* CStatusBarCtrl::GetRuntimeClass()const 4625 CRuntime* CStdioFile::GetRuntimeClass()const 4626 CRuntime* CStringArray::GetRuntimeClass()const 4627 CRuntime* CStringList::GetRuntimeClass()const 4628 CRuntime* CSyncObject::GetRuntimeClass()const 4629 CRuntime* CTabCtrl::GetRuntimeClass()const 4630 CRuntime* CToolBar::GetRuntimeClass()const 4631 CRuntime* CToolBarCtrl::GetRuntimeClass()const 4632 CRuntime* CToolTipCtrl::GetRuntimeClass()const 4633 CRuntime* CTreeCtrl::GetRuntimeClass()const 4634 CRuntime* CTreeView::GetRuntimeClass()const 4635 CRuntime* CUIntArray::GetRuntimeClass()const 4636 CRuntime* CUserException::GetRuntimeClass()const 4637 CRuntime* CView::GetRuntimeClass()const 4638 CRuntime* CWinApp::GetRuntimeClass()const 4639 CRuntime* CWindowDC::GetRuntimeClass()const 4640 CRuntime* CWindowlessDC::GetRuntimeClass()const 4641 CRuntime* CWinThread::GetRuntimeClass()const 4642 CRuntime* CWnd::GetRuntimeClass()const 4643 CRuntime* CWordArray::GetRuntimeClass()const 4644 void * CGdiObject::GetSafeHandle()const 4645 _IMAGELIST * CImageList::GetSafeHandle()const 4646 HDC__ * CDC::GetSafeHdc()const 4647 HMENU__ * CMenu::GetSafeHmenu()const 4648 HWND__ * CWnd::GetSafeHwnd()const 4649 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 4650 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 4651 unsigned long * CColorDialog::GetSavedCustomColors() 4652 ATL::CStringT > > CGopherFileFind::GetScreenName()const 4653 CSize CDockState::GetScreenSize() 4654 CScrollBar * CView::GetScrollBarCtrl(int)const 4655 CScrollBar * CWnd::GetScrollBarCtrl(int)const 4656 void CScrollView::GetScrollBarSizes(CSize &) 4657 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 4658 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 4659 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 4660 int CScrollBar::GetScrollLimit() 4661 int CWnd::GetScrollLimit(int) 4662 int CScrollBar::GetScrollPos()const 4663 int CWnd::GetScrollPos(int)const 4664 CPoint CScrollView::GetScrollPosition()const 4665 void CScrollBar::GetScrollRange(int *,int *)const 4666 void CWnd::GetScrollRange(int,int *,int *)const 4667 unsigned long CSplitterWnd::GetScrollStyle()const 4668 unsigned int CTreeCtrl::GetScrollTime()const 4669 CPropertySection * CPropertySet::GetSection(_GUID) 4670 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 4671 wchar_t const * CPropertySection::GetSectionName() 4672 unsigned long CEdit::GetSel()const 4673 void CEdit::GetSel(int &,int &)const 4674 int CListBox::GetSel(int)const 4675 void CRichEditCtrl::GetSel(long &,long &)const 4676 void CRichEditCtrl::GetSel(_charrange &)const 4677 int CListBox::GetSelCount()const 4678 unsigned int CListCtrl::GetSelectedCount()const 4679 CRichEditCntrItem * CRichEditView::GetSelectedItem()const 4680 _TREEITEM * CTreeCtrl::GetSelectedItem()const 4681 void CEditView::GetSelectedText(ATL::CStringT > > &)const 4682 void CSliderCtrl::GetSelection(int &,int &)const 4683 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 4684 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 4685 int CListCtrl::GetSelectionMark() 4686 unsigned int COleBusyDialog::GetSelectionType()const 4687 unsigned int COleConvertDialog::GetSelectionType()const 4688 unsigned int COleInsertDialog::GetSelectionType()const 4689 unsigned int COlePasteSpecialDialog::GetSelectionType()const 4690 unsigned short CRichEditCtrl::GetSelectionType()const 4691 int CListBox::GetSelItems(int,int *)const 4692 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 4693 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 4694 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4695 ATL::CStringT > > CRichEditCtrl::GetSelText()const 4696 long CRichEditCtrl::GetSelText(char *)const 4697 ATL::CStringT > > CInternetConnection::GetServerName()const 4698 CInternetSession * CInternetConnection::GetSession()const 4699 int CHtmlView::GetSilent()const 4700 long CPrintDialogEx::GetSite(_GUID const &,void * *) 4701 int CByteArray::GetSize()const 4702 int CDWordArray::GetSize()const 4703 int CFontDialog::GetSize()const 4704 int CMapPtrToPtr::GetSize()const 4705 int CMapPtrToWord::GetSize()const 4706 int CMapStringToOb::GetSize()const 4707 int CMapStringToPtr::GetSize()const 4708 int CMapStringToString::GetSize()const 4709 int CMapWordToOb::GetSize()const 4710 int CMapWordToPtr::GetSize()const 4711 int CObArray::GetSize()const 4712 int CObList::GetSize()const 4713 unsigned long CPropertySection::GetSize() 4714 int CPtrArray::GetSize()const 4715 int CPtrList::GetSize()const 4716 int CStringArray::GetSize()const 4717 int CStringList::GetSize()const 4718 int CUIntArray::GetSize()const 4719 int CWordArray::GetSize()const 4720 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 4721 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 4722 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 4723 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 4724 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 4725 CWnd * CSplitterWnd::GetSizingParent() 4726 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 4727 int CAsyncSocket::GetSockName(sockaddr *,int *) 4728 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 4729 int CHtmlView::GetSource(ATL::CStringT > > &) 4730 ATL::CStringT > > const & CRecordset::GetSQL()const 4731 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 4732 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 4733 wchar_t const * CHtmlEditCtrl::GetStartDocument() 4734 wchar_t const * CHtmlEditView::GetStartDocument() 4735 __POSITION * CConnectionPoint::GetStartPosition()const 4736 __POSITION * CFileDialog::GetStartPosition()const 4737 __POSITION * CMapPtrToPtr::GetStartPosition()const 4738 __POSITION * CMapPtrToWord::GetStartPosition()const 4739 __POSITION * CMapStringToOb::GetStartPosition()const 4740 __POSITION * CMapStringToPtr::GetStartPosition()const 4741 __POSITION * CMapStringToString::GetStartPosition()const 4742 __POSITION * CMapWordToOb::GetStartPosition()const 4743 __POSITION * CMapWordToPtr::GetStartPosition()const 4744 __POSITION * COleDocument::GetStartPosition()const 4745 __POSITION * CRichEditDoc::GetStartPosition()const 4746 unsigned int CButton::GetState()const 4747 int CToolBarCtrl::GetState(int)const 4748 int CFile::GetStatus(CFileStatus &)const 4749 int CFile::GetStatus(wchar_t const *,CFileStatus &) 4750 int CMemFile::GetStatus(CFileStatus &)const 4751 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus()const 4752 int COleStreamFile::GetStatus(CFileStatus &)const 4753 void CRecordset::GetStatus(CRecordsetStatus &)const 4754 int CHtmlView::GetStatusBar()const 4755 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl()const 4756 unsigned long COleControl::GetStockEventMask()const 4757 unsigned long COleControl::GetStockPropMask()const 4758 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 4759 ATL::CStringT > > const COleStreamFile::GetStorageName()const 4760 IStream * COleStreamFile::GetStream()const 4761 int CRichEditDoc::GetStreamFormat()const 4762 int CDC::GetStretchBltMode()const 4763 wchar_t const * ATL::CSimpleStringT::GetString()const 4764 char const * ATL::CSimpleStringT::GetString()const 4765 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 4766 int CToolBarCtrl::GetString(int,wchar_t *,int)const 4767 int CListCtrl::GetStringWidth(wchar_t const *)const 4768 unsigned long COleControlSite::GetStyle()const 4769 unsigned long COleControlSiteOrWnd::GetStyle()const 4770 unsigned long CToolBarCtrl::GetStyle()const 4771 unsigned long CWnd::GetStyle()const 4772 ATL::CStringT > > CFontDialog::GetStyleName()const 4773 int CListCtrl::GetSubItemRect(int,int,int,CRect &) 4774 CMenu * CMenu::GetSubMenu(int)const 4775 long (__stdcall** CWnd::GetSuperWndProcAddr())(HWND__ *,unsigned int,unsigned int,long) 4776 int CWinApp::GetSysPolicyValue(unsigned long,int *) 4777 CMenu * CWnd::GetSystemMenu(int)const 4778 CSize CDC::GetTabbedTextExtentW(ATL::CStringT > > const &,int,int *)const 4779 CSize CDC::GetTabbedTextExtentW(wchar_t const *,int,int,int *)const 4780 CTabCtrl * CPropertySheet::GetTabControl()const 4781 ATL::CStringT > > const & CRecordset::GetTableName()const 4782 CObject * & CObList::GetTail() 4783 CObject const * CObList::GetTail()const 4784 void * & CPtrList::GetTail() 4785 void const * CPtrList::GetTail()const 4786 ATL::CStringT > > & CStringList::GetTail() 4787 ATL::CStringT > > const & CStringList::GetTail()const 4788 __POSITION * CObList::GetTailPosition()const 4789 __POSITION * CPtrList::GetTailPosition()const 4790 __POSITION * CStringList::GetTailPosition()const 4791 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 4792 int CListBox::GetText(int,wchar_t *)const 4793 void CListBox::GetText(int,ATL::CStringT > > &)const 4794 wchar_t * COleControl::GetText() 4795 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 4796 int CStatusBarCtrl::GetText(wchar_t *,int,int *)const 4797 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 4798 unsigned int CDC::GetTextAlign()const 4799 unsigned long CListCtrl::GetTextBkColor()const 4800 int CDC::GetTextCharacterExtra()const 4801 unsigned long CDC::GetTextColor()const 4802 unsigned long CListCtrl::GetTextColor()const 4803 unsigned long CReBarCtrl::GetTextColor()const 4804 unsigned long CTreeCtrl::GetTextColor()const 4805 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 4806 CSize CDC::GetTextExtent(wchar_t const *,int)const 4807 int CDC::GetTextFaceW(ATL::CStringT > > &)const 4808 int CDC::GetTextFaceW(int,wchar_t *)const 4809 int CListBox::GetTextLen(int)const 4810 long CRecordset::GetTextLen(short,unsigned long) 4811 long CRichEditCtrl::GetTextLength()const 4812 long CRichEditView::GetTextLength()const 4813 int CStatusBarCtrl::GetTextLength(int,int *)const 4814 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 4815 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 4816 int CDC::GetTextMetricsW(tagTEXTMETRICW *)const 4817 unsigned int CRichEditCtrl::GetTextMode()const 4818 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 4819 int CHtmlView::GetTheaterMode()const 4820 CRuntime* CAnimateCtrl::GetThisClass() 4821 CRuntime* CArchiveException::GetThisClass() 4822 CRuntime* CAsyncMonikerFile::GetThisClass() 4823 CRuntime* CAsyncSocket::GetThisClass() 4824 CRuntime* CBitmap::GetThisClass() 4825 CRuntime* CBitmapButton::GetThisClass() 4826 CRuntime* CBrush::GetThisClass() 4827 CRuntime* CButton::GetThisClass() 4828 CRuntime* CByteArray::GetThisClass() 4829 CRuntime* CCachedDataPathProperty::GetThisClass() 4830 CRuntime* CCheckListBox::GetThisClass() 4831 CRuntime* CClientDC::GetThisClass() 4832 CRuntime* CCmdTarget::GetThisClass() 4833 CRuntime* CColorDialog::GetThisClass() 4834 CRuntime* CComboBox::GetThisClass() 4835 CRuntime* CComboBoxEx::GetThisClass() 4836 CRuntime* CControlBar::GetThisClass() 4837 CRuntime* CCriticalSection::GetThisClass() 4838 CRuntime* CCtrlView::GetThisClass() 4839 CRuntime* CDatabase::GetThisClass() 4840 CRuntime* CDataPathProperty::GetThisClass() 4841 CRuntime* CDateTimeCtrl::GetThisClass() 4842 CRuntime* CDBException::GetThisClass() 4843 CRuntime* CDC::GetThisClass() 4844 CRuntime* CDHtmlDialog::GetThisClass() 4845 CRuntime* CDialog::GetThisClass() 4846 CRuntime* CDialogBar::GetThisClass() 4847 CRuntime* CDocItem::GetThisClass() 4848 CRuntime* CDockBar::GetThisClass() 4849 CRuntime* CDockState::GetThisClass() 4850 CRuntime* CDocManager::GetThisClass() 4851 CRuntime* CDocObjectServer::GetThisClass() 4852 CRuntime* CDocObjectServerItem::GetThisClass() 4853 CRuntime* CDocTemplate::GetThisClass() 4854 CRuntime* CDocument::GetThisClass() 4855 CRuntime* CDragListBox::GetThisClass() 4856 CRuntime* CDWordArray::GetThisClass() 4857 CRuntime* CDynLinkLibrary::GetThisClass() 4858 CRuntime* CEdit::GetThisClass() 4859 CRuntime* CEditView::GetThisClass() 4860 CRuntime* CEvent::GetThisClass() 4861 CRuntime* CException::GetThisClass() 4862 CRuntime* CFile::GetThisClass() 4863 CRuntime* CFileDialog::GetThisClass() 4864 CRuntime* CFileException::GetThisClass() 4865 CRuntime* CFileFind::GetThisClass() 4866 CRuntime* CFindReplaceDialog::GetThisClass() 4867 CRuntime* CFont::GetThisClass() 4868 CRuntime* CFontDialog::GetThisClass() 4869 CRuntime* CFormView::GetThisClass() 4870 CRuntime* CFrameWnd::GetThisClass() 4871 CRuntime* CFtpConnection::GetThisClass() 4872 CRuntime* CFtpFileFind::GetThisClass() 4873 CRuntime* CGdiObject::GetThisClass() 4874 CRuntime* CGopherConnection::GetThisClass() 4875 CRuntime* CGopherFile::GetThisClass() 4876 CRuntime* CGopherFileFind::GetThisClass() 4877 CRuntime* CHeaderCtrl::GetThisClass() 4878 CRuntime* CHotKeyCtrl::GetThisClass() 4879 CRuntime* CHtmlEditDoc::GetThisClass() 4880 CRuntime* CHtmlEditView::GetThisClass() 4881 CRuntime* CHtmlView::GetThisClass() 4882 CRuntime* CHttpConnection::GetThisClass() 4883 CRuntime* CHttpFile::GetThisClass() 4884 CRuntime* CImageList::GetThisClass() 4885 CRuntime* CInternetConnection::GetThisClass() 4886 CRuntime* CInternetException::GetThisClass() 4887 CRuntime* CInternetFile::GetThisClass() 4888 CRuntime* CInternetSession::GetThisClass() 4889 CRuntime* CInvalidArgException::GetThisClass() 4890 CRuntime* CIPAddressCtrl::GetThisClass() 4891 CRuntime* CLinkCtrl::GetThisClass() 4892 CRuntime* CListBox::GetThisClass() 4893 CRuntime* CListCtrl::GetThisClass() 4894 CRuntime* CListView::GetThisClass() 4895 CRuntime* CLongBinary::GetThisClass() 4896 CRuntime* CMapPtrToPtr::GetThisClass() 4897 CRuntime* CMapPtrToWord::GetThisClass() 4898 CRuntime* CMapStringToOb::GetThisClass() 4899 CRuntime* CMapStringToPtr::GetThisClass() 4900 CRuntime* CMapStringToString::GetThisClass() 4901 CRuntime* CMapWordToOb::GetThisClass() 4902 CRuntime* CMapWordToPtr::GetThisClass() 4903 CRuntime* CMDIChildWnd::GetThisClass() 4904 CRuntime* CMDIFrameWnd::GetThisClass() 4905 CRuntime* CMemFile::GetThisClass() 4906 CRuntime* CMemoryException::GetThisClass() 4907 CRuntime* CMenu::GetThisClass() 4908 CRuntime* CMetaFileDC::GetThisClass() 4909 CRuntime* CMiniDockFrameWnd::GetThisClass() 4910 CRuntime* CMiniFrameWnd::GetThisClass() 4911 CRuntime* CMonikerFile::GetThisClass() 4912 CRuntime* CMonthCalCtrl::GetThisClass() 4913 CRuntime* CMultiDocTemplate::GetThisClass() 4914 CRuntime* CMultiPageDHtmlDialog::GetThisClass() 4915 CRuntime* CMutex::GetThisClass() 4916 CRuntime* CNotSupportedException::GetThisClass() 4917 CRuntime* CObArray::GetThisClass() 4918 CRuntime* CObject::GetThisClass() 4919 CRuntime* CObList::GetThisClass() 4920 CRuntime* COleBusyDialog::GetThisClass() 4921 CRuntime* COleChangeIconDialog::GetThisClass() 4922 CRuntime* COleChangeSourceDialog::GetThisClass() 4923 CRuntime* COleClientItem::GetThisClass() 4924 CRuntime* COleControl::GetThisClass() 4925 CRuntime* COleControlModule::GetThisClass() 4926 CRuntime* COleConvertDialog::GetThisClass() 4927 CRuntime* COleDBRecordView::GetThisClass() 4928 CRuntime* COleDialog::GetThisClass() 4929 CRuntime* COleDispatchException::GetThisClass() 4930 CRuntime* COleDocIPFrameWnd::GetThisClass() 4931 CRuntime* COleDocObjectItem::GetThisClass() 4932 CRuntime* COleDocument::GetThisClass() 4933 CRuntime* COleException::GetThisClass() 4934 CRuntime* COleInsertDialog::GetThisClass() 4935 CRuntime* COleIPFrameWnd::GetThisClass() 4936 CRuntime* COleLinkingDoc::GetThisClass() 4937 CRuntime* COleLinksDialog::GetThisClass() 4938 CRuntime* COleObjectFactory::GetThisClass() 4939 CRuntime* COlePasteSpecialDialog::GetThisClass() 4940 CRuntime* COlePropertiesDialog::GetThisClass() 4941 CRuntime* COlePropertyPage::GetThisClass() 4942 CRuntime* COleResizeBar::GetThisClass() 4943 CRuntime* COleServerDoc::GetThisClass() 4944 CRuntime* COleServerItem::GetThisClass() 4945 CRuntime* COleStreamFile::GetThisClass() 4946 CRuntime* COleUpdateDialog::GetThisClass() 4947 CRuntime* CPageSetupDialog::GetThisClass() 4948 CRuntime* CPaintDC::GetThisClass() 4949 CRuntime* CPalette::GetThisClass() 4950 CRuntime* CPen::GetThisClass() 4951 CRuntime* CPreviewDC::GetThisClass() 4952 CRuntime* CPreviewView::GetThisClass() 4953 CRuntime* CPrintDialog::GetThisClass() 4954 CRuntime* CPrintDialogEx::GetThisClass() 4955 CRuntime* CProgressCtrl::GetThisClass() 4956 CRuntime* CPropertyPage::GetThisClass() 4957 CRuntime* CPropertySheet::GetThisClass() 4958 CRuntime* CPtrArray::GetThisClass() 4959 CRuntime* CPtrList::GetThisClass() 4960 CRuntime* CReBar::GetThisClass() 4961 CRuntime* CReBarCtrl::GetThisClass() 4962 CRuntime* CRecordset::GetThisClass() 4963 CRuntime* CRecordView::GetThisClass() 4964 CRuntime* CResourceException::GetThisClass() 4965 CRuntime* CRgn::GetThisClass() 4966 CRuntime* CRichEditCntrItem::GetThisClass() 4967 CRuntime* CRichEditCtrl::GetThisClass() 4968 CRuntime* CRichEditDoc::GetThisClass() 4969 CRuntime* CRichEditView::GetThisClass() 4970 CRuntime* CScrollBar::GetThisClass() 4971 CRuntime* CScrollView::GetThisClass() 4972 CRuntime* CSemaphore::GetThisClass() 4973 CRuntime* CSharedFile::GetThisClass() 4974 CRuntime* CSingleDocTemplate::GetThisClass() 4975 CRuntime* CSliderCtrl::GetThisClass() 4976 CRuntime* CSocket::GetThisClass() 4977 CRuntime* CSocketFile::GetThisClass() 4978 CRuntime* CSpinButtonCtrl::GetThisClass() 4979 CRuntime* CSplitterWnd::GetThisClass() 4980 CRuntime* CStatic::GetThisClass() 4981 CRuntime* CStatusBar::GetThisClass() 4982 CRuntime* CStatusBarCtrl::GetThisClass() 4983 CRuntime* CStdioFile::GetThisClass() 4984 CRuntime* CStringArray::GetThisClass() 4985 CRuntime* CStringList::GetThisClass() 4986 CRuntime* CSyncObject::GetThisClass() 4987 CRuntime* CTabCtrl::GetThisClass() 4988 CRuntime* CToolBar::GetThisClass() 4989 CRuntime* CToolBarCtrl::GetThisClass() 4990 CRuntime* CToolTipCtrl::GetThisClass() 4991 CRuntime* CTreeCtrl::GetThisClass() 4992 CRuntime* CTreeView::GetThisClass() 4993 CRuntime* CUIntArray::GetThisClass() 4994 CRuntime* CUserException::GetThisClass() 4995 CRuntime* CView::GetThisClass() 4996 CRuntime* CWinApp::GetThisClass() 4997 CRuntime* CWindowDC::GetThisClass() 4998 CRuntime* CWindowlessDC::GetThisClass() 4999 CRuntime* CWinThread::GetThisClass() 5000 CRuntime* CWnd::GetThisClass() 5001 CRuntime* CWordArray::GetThisClass() 5002 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap() 5003 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap() 5004 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap() 5005 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap() 5006 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap() 5007 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap() 5008 AFX_EVENTMAP const * COleControl::GetThisEventMap() 5009 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap() 5010 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap() 5011 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap() 5012 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap() 5013 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap() 5014 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap() 5015 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap() 5016 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap() 5017 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap() 5018 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap() 5019 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap() 5020 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap() 5021 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap() 5022 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap() 5023 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap() 5024 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap() 5025 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap() 5026 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap() 5027 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap() 5028 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap() 5029 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap() 5030 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap() 5031 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap() 5032 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap() 5033 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap() 5034 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap() 5035 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap() 5036 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap() 5037 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap() 5038 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap() 5039 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap() 5040 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap() 5041 AFX_MSGMAP const * CControlBar::GetThisMessageMap() 5042 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap() 5043 AFX_MSGMAP const * CCtrlView::GetThisMessageMap() 5044 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap() 5045 AFX_MSGMAP const * CDialog::GetThisMessageMap() 5046 AFX_MSGMAP const * CDialogBar::GetThisMessageMap() 5047 AFX_MSGMAP const * CDockBar::GetThisMessageMap() 5048 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap() 5049 AFX_MSGMAP const * CDocument::GetThisMessageMap() 5050 AFX_MSGMAP const * CEditView::GetThisMessageMap() 5051 AFX_MSGMAP const * CFormView::GetThisMessageMap() 5052 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap() 5053 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap() 5054 AFX_MSGMAP const * CHtmlView::GetThisMessageMap() 5055 AFX_MSGMAP const * CListCtrl::GetThisMessageMap() 5056 AFX_MSGMAP const * CListView::GetThisMessageMap() 5057 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap() 5058 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap() 5059 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap() 5060 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap() 5061 AFX_MSGMAP const * COleControl::GetThisMessageMap() 5062 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap() 5063 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap() 5064 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap() 5065 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap() 5066 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap() 5067 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap() 5068 AFX_MSGMAP const * CPreviewView::GetThisMessageMap() 5069 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap() 5070 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap() 5071 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap() 5072 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap() 5073 AFX_MSGMAP const * CReBar::GetThisMessageMap() 5074 AFX_MSGMAP const * CRecordView::GetThisMessageMap() 5075 AFX_MSGMAP const * CRichEditView::GetThisMessageMap() 5076 AFX_MSGMAP const * CScrollView::GetThisMessageMap() 5077 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap() 5078 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap() 5079 AFX_MSGMAP const * CStatusBar::GetThisMessageMap() 5080 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap() 5081 AFX_MSGMAP const * CToolBar::GetThisMessageMap() 5082 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap() 5083 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap() 5084 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap() 5085 AFX_MSGMAP const * CTreeView::GetThisMessageMap() 5086 AFX_MSGMAP const * CView::GetThisMessageMap() 5087 AFX_MSGMAP const * CWinApp::GetThisMessageMap() 5088 AFX_MSGMAP const * CWnd::GetThisMessageMap() 5089 int CWinThread::GetThreadPriority() 5090 void CSliderCtrl::GetThumbRect(tagRECT *)const 5091 int CSliderCtrl::GetTic(int)const 5092 unsigned long * CSliderCtrl::GetTicArray()const 5093 int CSliderCtrl::GetTicPos(int)const 5094 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 5095 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 5096 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 5097 unsigned long CToolTipCtrl::GetTipBkColor()const 5098 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 5099 unsigned long CToolTipCtrl::GetTipTextColor()const 5100 ATL::CStringT > > const & CDocument::GetTitle()const 5101 ATL::CStringT > > CFrameWnd::GetTitle()const 5102 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 5103 int CMonthCalCtrl::GetToday(ATL::CTime &)const 5104 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 5105 int CHtmlView::GetToolBar()const 5106 CToolBarCtrl & CToolBar::GetToolBarCtrl()const 5107 int CToolTipCtrl::GetToolCount()const 5108 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 5109 CToolTipCtrl * CListCtrl::GetToolTips()const 5110 CToolTipCtrl * CReBarCtrl::GetToolTips()const 5111 CToolTipCtrl * CSliderCtrl::GetToolTips()const 5112 CToolTipCtrl * CTabCtrl::GetToolTips()const 5113 CToolTipCtrl * CToolBarCtrl::GetToolTips()const 5114 CToolTipCtrl * CTreeCtrl::GetToolTips()const 5115 long CHtmlView::GetTop()const 5116 int CPrintDialog::GetToPage()const 5117 unsigned int CPrintInfo::GetToPage()const 5118 int CComboBox::GetTopIndex()const 5119 int CListBox::GetTopIndex()const 5120 int CListCtrl::GetTopIndex()const 5121 int CHtmlView::GetTopLevelContainer()const 5122 CFrameWnd * CWnd::GetTopLevelFrame()const 5123 CWnd * CWnd::GetTopLevelOwner()const 5124 CWnd * CWnd::GetTopLevelParent()const 5125 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix() 5126 CWnd * CWnd::GetTopWindow()const 5127 CSize CScrollView::GetTotalSize()const 5128 CTreeCtrl & CTreeView::GetTreeCtrl()const 5129 int CScrollView::GetTrueClientSize(CSize &,CSize &) 5130 void CRectTracker::GetTrueRect(tagRECT *)const 5131 ATL::CStringT > > CHtmlView::GetType()const 5132 enum OLE_OBJTYPE COleClientItem::GetType()const 5133 short CPictureHolder::GetType() 5134 unsigned long CProperty::GetType() 5135 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5136 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5137 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5138 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5139 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5140 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5141 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5142 unsigned int CCmdTarget::GetTypeInfoCount() 5143 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 5144 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 5145 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 5146 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 5147 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 5148 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 5149 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 5150 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 5151 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 5152 CTypeLibCache * CCmdTarget::GetTypeLibCache() 5153 void COleSafeArray::GetUBound(unsigned long,long *) 5154 enum _undonameid CRichEditCtrl::GetUndoName()const 5155 int CWnd::GetUpdateRect(tagRECT *,int) 5156 int CWnd::GetUpdateRgn(CRgn *,int) 5157 int CByteArray::GetUpperBound()const 5158 int CDWordArray::GetUpperBound()const 5159 int CObArray::GetUpperBound()const 5160 int CPtrArray::GetUpperBound()const 5161 int CStringArray::GetUpperBound()const 5162 int CUIntArray::GetUpperBound()const 5163 int CWordArray::GetUpperBound()const 5164 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 5165 long COleControl::XOleObject::GetUserClassID(_GUID *) 5166 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 5167 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 5168 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 5169 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 5170 void COleControl::GetUserType(wchar_t *) 5171 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 5172 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 5173 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 5174 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 5175 void * CMapPtrToPtr::GetValueAt(void *)const 5176 ATL::CStringT > > CHttpFile::GetVerb()const 5177 unsigned long CDockState::GetVersion() 5178 unsigned long CPropExchange::GetVersion() 5179 CHtmlEditView * CHtmlEditDoc::GetView()const 5180 CRichEditView * CRichEditDoc::GetView()const 5181 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 5182 CSize CDC::GetViewportExt()const 5183 CPoint CDC::GetViewportOrg()const 5184 int CListCtrl::GetViewRect(tagRECT *)const 5185 long COleControl::XViewObject::GetViewStatus(unsigned long *) 5186 int CHtmlView::GetVisible()const 5187 unsigned int CTreeCtrl::GetVisibleCount()const 5188 int CFontDialog::GetWeight()const 5189 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 5190 long CHtmlView::GetWidth()const 5191 CWnd * CDC::GetWindow()const 5192 CWnd * CWnd::GetWindow(unsigned int)const 5193 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5194 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5195 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5196 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5197 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5198 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5199 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5200 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5201 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5202 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5203 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5204 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5205 unsigned long CWnd::GetWindowContextHelpId()const 5206 CDC * CWnd::GetWindowDC() 5207 long CWnd::GetWindowedChildCount() 5208 CSize CDC::GetWindowExt()const 5209 long CWnd::GetWindowLessChildCount() 5210 IDropTarget * COleControl::GetWindowlessDropTarget() 5211 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5212 CPoint CDC::GetWindowOrg()const 5213 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5214 void CWnd::GetWindowRect(tagRECT *)const 5215 int CWnd::GetWindowRgn(HRGN__ *)const 5216 int CWnd::GetWindowTextLengthW()const 5217 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 5218 int CWnd::GetWindowTextW(wchar_t *,int)const 5219 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 5220 unsigned int CRichEditCtrl::GetWordWrapMode()const 5221 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5222 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5223 long COleDropSource::GiveFeedback(unsigned long) 5224 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5225 void CHtmlView::GoBack() 5226 void CHtmlView::GoForward() 5227 void CHtmlView::GoHome() 5228 void CHtmlView::GoSearch() 5229 void CDialog::GotoDlgCtrl(CWnd *) 5230 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5231 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5232 int CDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5233 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5234 void CMemFile::GrowFile(unsigned long) 5235 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5236 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5237 long CDialog::HandleInitDialog(unsigned int,long) 5238 long CDialogBar::HandleInitDialog(unsigned int,long) 5239 long CFormView::HandleInitDialog(unsigned int,long) 5240 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5241 long CPropertySheet::HandleInitDialog(unsigned int,long) 5242 long CScrollView::HandleMButtonDown(unsigned int,long) 5243 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5244 int COleControlContainer::HandleSetFocus() 5245 long CDialog::HandleSetFont(unsigned int,long) 5246 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5247 long COleControl::XPersistStorage::HandsOffStorage() 5248 long COleServerDoc::XPersistStorage::HandsOffStorage() 5249 int COleDocument::HasBlankItems()const 5250 int CComboBoxEx::HasEditChanged() 5251 int CDialogTemplate::HasFont()const 5252 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5253 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 5254 void * CFile::hFileNull 5255 void CWinApp::HideApplication() 5256 int CToolBarCtrl::HideButton(int,int) 5257 void CWnd::HideCaret() 5258 void CFileDialog::HideControl(int) 5259 void CRichEditCtrl::HideSelection(int,int) 5260 long CBrowserControlSite::HideUI() 5261 long CDHtmlDialog::HideUI() 5262 long CHtmlControlSite::XDocHostUIHandler::HideUI() 5263 int CTabCtrl::HighlightItem(int,int) 5264 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5265 void CDC::HIMETRICtoDP(tagSIZE *)const 5266 void CDC::HIMETRICtoLP(tagSIZE *)const 5267 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5268 int CListCtrl::HitTest(CPoint,unsigned int *)const 5269 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5270 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5271 int CRectTracker::HitTest(CPoint)const 5272 int CSplitterWnd::HitTest(CPoint)const 5273 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5274 int CToolBarCtrl::HitTest(tagPOINT *)const 5275 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 5276 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5277 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5278 int CRectTracker::HitTestHandles(CPoint)const 5279 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 5280 void CWnd::HtmlHelpW(unsigned long,unsigned int) 5281 int CSplitterWnd::IdFromRowCol(int,int)const 5282 int CReBarCtrl::IDToIndex(unsigned int)const 5283 void COlePropertyPage::IgnoreApply(unsigned int) 5284 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5285 int CToolBarCtrl::Indeterminate(int,int) 5286 int CCriticalSection::Init() 5287 int CWinApp::InitApplication() 5288 long COleControl::XOleCache::InitCache(IDataObject *) 5289 int CWnd::InitControlContainer(int) 5290 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5291 long CPrintDialogEx::InitDone() 5292 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5293 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5294 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5295 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5296 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5297 void CMapPtrToWord::InitHashTable(unsigned int,int) 5298 void CMapStringToOb::InitHashTable(unsigned int,int) 5299 void CMapStringToPtr::InitHashTable(unsigned int,int) 5300 void CMapStringToString::InitHashTable(unsigned int,int) 5301 void CMapWordToOb::InitHashTable(unsigned int,int) 5302 void CMapWordToPtr::InitHashTable(unsigned int,int) 5303 long CDataSourceControl::Initialize() 5304 void CDHtmlDialog::Initialize() 5305 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5306 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5307 int CEditView::InitializeReplace() 5308 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5309 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5310 int COleControlModule::InitInstance() 5311 int CWinApp::InitInstance() 5312 int CWinThread::InitInstance() 5313 void CWinApp::InitLibId() 5314 void CDockContext::InitLoop() 5315 int CDialog::InitModalIndirect(void *,CWnd *) 5316 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5317 long COleControl::XPersistMemory::InitNew() 5318 long COleControl::XPersistPropertyBag::InitNew() 5319 long COleControl::XPersistStorage::InitNew(IStorage *) 5320 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5321 long COleControl::XPersistStreamInit::InitNew() 5322 void CRecordset::InitRecord() 5323 void COleControl::InitStockEventMask() 5324 void COleControl::InitStockPropMask() 5325 int CComboBox::InitStorage(int,unsigned int) 5326 int CListBox::InitStorage(int,unsigned int) 5327 void CSimpleException::InitString() 5328 int CFrameWnd::InModalState()const 5329 long COleControl::XOleInPlaceObject::InPlaceDeactivate() 5330 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate() 5331 int ATL::CStringT > >::Insert(int,wchar_t) 5332 int ATL::CStringT > >::Insert(int,wchar_t const *) 5333 int ATL::CStringT > >::Insert(int,char) 5334 int ATL::CStringT > >::Insert(int,char const *) 5335 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5336 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5337 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5338 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5339 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 5340 void CByteArray::InsertAt(int,unsigned char,int) 5341 void CByteArray::InsertAt(int,CByteArray *) 5342 void CDWordArray::InsertAt(int,unsigned long,int) 5343 void CDWordArray::InsertAt(int,CDWordArray *) 5344 void CObArray::InsertAt(int,CObArray *) 5345 void CObArray::InsertAt(int,CObject *,int) 5346 void CPtrArray::InsertAt(int,CPtrArray *) 5347 void CPtrArray::InsertAt(int,void *,int) 5348 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5349 void CStringArray::InsertAt(int,CStringArray const *) 5350 void CStringArray::InsertAt(int,wchar_t const *,int) 5351 void CUIntArray::InsertAt(int,unsigned int,int) 5352 void CUIntArray::InsertAt(int,CUIntArray *) 5353 void CWordArray::InsertAt(int,unsigned short,int) 5354 void CWordArray::InsertAt(int,CWordArray *) 5355 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOW *) 5356 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5357 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5358 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5359 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 5360 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5361 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 5362 int CListCtrl::InsertColumn(int,tagLVCOLUMNW const *) 5363 void CStringArray::InsertEmpty(int,int) 5364 void CRichEditView::InsertFileAsObject(wchar_t const *) 5365 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 5366 int CHeaderCtrl::InsertItem(int,_HD_ITEMW *) 5367 int CListCtrl::InsertItem(int,wchar_t const *) 5368 int CListCtrl::InsertItem(int,wchar_t const *,int) 5369 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 5370 int CListCtrl::InsertItem(tagLVITEMW const *) 5371 long CRichEditView::InsertItem(CRichEditCntrItem *) 5372 long CTabCtrl::InsertItem(int,tagTCITEMW *) 5373 long CTabCtrl::InsertItem(int,wchar_t const *) 5374 long CTabCtrl::InsertItem(int,wchar_t const *,int) 5375 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 5376 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 5377 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5378 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTW *) 5379 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,int,int,_TREEITEM *,_TREEITEM *) 5380 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,_TREEITEM *,_TREEITEM *) 5381 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5382 int CMenu::InsertMenuItemW(unsigned int,tagMENUITEMINFOW *,int) 5383 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5384 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5385 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5386 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5387 int CComboBox::InsertString(int,wchar_t const *) 5388 int CComboBoxEx::InsertString(int,wchar_t const *) 5389 int CListBox::InsertString(int,wchar_t const *) 5390 unsigned long CCmdTarget::InternalAddRef() 5391 CFontHolder & COleControl::InternalGetFont() 5392 ATL::CStringT > > const & COleControl::InternalGetText() 5393 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5394 unsigned long CCmdTarget::InternalRelease() 5395 void COleControl::InternalSetReadyState(long) 5396 int CDC::IntersectClipRect(int,int,int,int) 5397 int CDC::IntersectClipRect(tagRECT const *) 5398 void CWnd::Invalidate(int) 5399 void CCheckListBox::InvalidateCheck(int) 5400 void COleControl::InvalidateControl(tagRECT const *,int) 5401 void CCheckListBox::InvalidateItem(int) 5402 void CRichEditDoc::InvalidateObjectCache() 5403 void CWnd::InvalidateRect(tagRECT const *,int) 5404 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5405 void COleControl::InvalidateRgn(CRgn *,int) 5406 void CWnd::InvalidateRgn(CRgn *,int) 5407 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5408 void CDC::InvertRect(tagRECT const *) 5409 int CDC::InvertRgn(CRgn *) 5410 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5411 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5412 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5413 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5414 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5415 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5416 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5417 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5418 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5419 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5420 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5421 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5422 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5423 int CAsyncSocket::IOCtl(long,unsigned long *) 5424 int CFileFind::IsArchived()const 5425 int CPropExchange::IsAsynchronous() 5426 int CDocItem::IsBlank()const 5427 int CIPAddressCtrl::IsBlank()const 5428 int COleServerItem::IsBlank()const 5429 int CSocket::IsBlocking() 5430 int CRecordset::IsBOF()const 5431 int CFontDialog::IsBold()const 5432 int CArchive::IsBufferEmpty()const 5433 int CToolBarCtrl::IsButtonChecked(int)const 5434 int CPropertyPage::IsButtonEnabled(int) 5435 int CToolBarCtrl::IsButtonEnabled(int)const 5436 int CToolBarCtrl::IsButtonHidden(int)const 5437 int CToolBarCtrl::IsButtonHighlighted(int)const 5438 int CToolBarCtrl::IsButtonIndeterminate(int)const 5439 int CToolBarCtrl::IsButtonPressed(int)const 5440 int CArchive::IsByteSwapping()const 5441 int CWnd::IsChild(CWnd const *)const 5442 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5443 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5444 int CFileFind::IsCompressed()const 5445 int COleServerItem::IsConnected()const 5446 int COleControl::IsConvertingVBX() 5447 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5448 int COleControlSite::IsDefaultButton() 5449 int CRecordset::IsDeleted()const 5450 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5451 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 5452 int CWnd::IsDialogMessageW(tagMSG *) 5453 int CFileFind::IsDirectory()const 5454 long CBlobProperty::IsDirty() 5455 long COleLinkingDoc::XPersistFile::IsDirty() 5456 long COleControl::XPersistMemory::IsDirty() 5457 long COleControl::XPersistStorage::IsDirty() 5458 long COleServerDoc::XPersistStorage::IsDirty() 5459 long COleControl::XPersistStreamInit::IsDirty() 5460 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5461 unsigned int CWnd::IsDlgButtonChecked(int)const 5462 int CControlBar::IsDockBar()const 5463 int CDockBar::IsDockBar()const 5464 int COleServerDoc::IsDocObject()const 5465 int CFileFind::IsDots()const 5466 int CGopherFileFind::IsDots()const 5467 int COleServerDoc::IsEmbedded()const 5468 bool ATL::CSimpleStringT::IsEmpty()const 5469 bool ATL::CSimpleStringT::IsEmpty()const 5470 int CByteArray::IsEmpty()const 5471 int CDWordArray::IsEmpty()const 5472 int CMapPtrToPtr::IsEmpty()const 5473 int CMapPtrToWord::IsEmpty()const 5474 int CMapStringToOb::IsEmpty()const 5475 int CMapStringToPtr::IsEmpty()const 5476 int CMapStringToString::IsEmpty()const 5477 int CMapWordToOb::IsEmpty()const 5478 int CMapWordToPtr::IsEmpty()const 5479 int CObArray::IsEmpty()const 5480 int CObList::IsEmpty()const 5481 int CPtrArray::IsEmpty()const 5482 int CPtrList::IsEmpty()const 5483 int CStringArray::IsEmpty()const 5484 int CStringList::IsEmpty()const 5485 int CUIntArray::IsEmpty()const 5486 int CWordArray::IsEmpty()const 5487 int CCheckListBox::IsEnabled(int) 5488 int CRecordset::IsEOF()const 5489 int CDHtmlDialog::IsExternalDispatchSafe() 5490 int CRecordset::IsFieldDirty(void *) 5491 int CRecordset::IsFieldNull(void *) 5492 int CRecordset::IsFieldNullable(void *) 5493 int CRecordset::IsFieldNullable(unsigned long)const 5494 int CRecordset::IsFieldStatusDirty(unsigned long)const 5495 int CRecordset::IsFieldStatusNull(unsigned long)const 5496 int CFieldExchange::IsFieldType(unsigned int *) 5497 int CControlBar::IsFloating()const 5498 int CFrameWnd::IsFrameWnd()const 5499 int CWnd::IsFrameWnd()const 5500 int IsHelpKey(tagMSG *) 5501 int CFileFind::IsHidden()const 5502 int CWnd::IsIconic()const 5503 int CWinThread::IsIdleMessage(tagMSG *) 5504 int COleClientItem::IsInPlaceActive()const 5505 int COleServerDoc::IsInPlaceActive()const 5506 int CCmdTarget::IsInvokeAllowed(long) 5507 int COleControl::IsInvokeAllowed(long) 5508 int CFontDialog::IsItalic()const 5509 int CRecordset::IsJoin(wchar_t const *) 5510 int CObject::IsKindOf(CRuntimeconst *)const 5511 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5512 int COccManager::IsLabelControl(CWnd *) 5513 int COleObjectFactory::IsLicenseValid() 5514 int COleServerItem::IsLinkedItem()const 5515 int COleClientItem::IsLinkUpToDate()const 5516 int CArchive::IsLoading()const 5517 int CPropExchange::IsLoading() 5518 int CMultiLock::IsLocked(unsigned long) 5519 int CSingleLock::IsLocked() 5520 int CRichEditCntrItem::IsMarked() 5521 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5522 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5523 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5524 int CDocument::IsModified() 5525 int CHtmlEditDoc::IsModified() 5526 int COleClientItem::IsModified()const 5527 int COleControl::IsModified() 5528 int COlePropertyPage::IsModified() 5529 int CRichEditDoc::IsModified() 5530 int CFileFind::IsNormal()const 5531 int CRecordView::IsOnFirstRecord() 5532 int CRecordView::IsOnLastRecord() 5533 int CDatabase::IsOpen()const 5534 int COleClientItem::IsOpen()const 5535 int CRecordset::IsOpen()const 5536 int COleControl::IsOptimizedDraw() 5537 long COlePropertyPage::XPropertyPage::IsPageDirty() 5538 int CRecordset::IsParamStatusNull(unsigned long)const 5539 int CDC::IsPrinting()const 5540 int CFileFind::IsReadOnly()const 5541 int CRecordset::IsRecordsetUpdatable() 5542 int COleObjectFactory::IsRegistered()const 5543 int CCmdTarget::IsResultExpected() 5544 int CRichEditView::IsRichEditFormat(unsigned short) 5545 int COleClientItem::IsRunning()const 5546 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 5547 int CRichEditView::IsSelected(CObject const *)const 5548 int CView::IsSelected(CObject const *)const 5549 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 5550 int CObject::IsSerializable()const 5551 int COleMessageFilter::IsSignificantMessage(tagMSG *) 5552 int CStatusBarCtrl::IsSimple()const 5553 int CDHtmlDialog::IsSinkedElement(IDispatch *) 5554 int CRecordset::IsSQLUpdatable(wchar_t const *) 5555 int CArchive::IsStoring()const 5556 int CFontDialog::IsStrikeOut()const 5557 int COleControl::IsSubclassedControl() 5558 int CFileFind::IsSystem()const 5559 int CFileFind::IsTemporary()const 5560 int CFindReplaceDialog::IsTerminating()const 5561 int CWnd::IsTopParentActive()const 5562 int CFrameWnd::IsTracking()const 5563 int CSplitterWnd::IsTracking() 5564 int CFontDialog::IsUnderline()const 5565 long CDocObjectServer::XOleObject::IsUpToDate() 5566 long COleControl::XOleObject::IsUpToDate() 5567 long COleServerDoc::XOleObject::IsUpToDate() 5568 long COleServerItem::XOleObject::IsUpToDate() 5569 int COleChangeSourceDialog::IsValidSource() 5570 int CControlBar::IsVisible()const 5571 int COleControlSite::IsWindowEnabled()const 5572 int CWnd::IsWindowEnabled()const 5573 int CWnd::IsWindowVisible()const 5574 int CPropertySheet::IsWizard()const 5575 int CWnd::IsZoomed()const 5576 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 5577 int CDragListBox::ItemFromPt(CPoint,int)const 5578 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 5579 void COleControl::KeyDown(unsigned short *) 5580 void COleControl::KeyUp(unsigned short *) 5581 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 5582 int CWnd::KillTimer(unsigned int) 5583 int CHeaderCtrl::Layout(_HD_LAYOUT *) 5584 void CToolBar::Layout() 5585 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5586 ATL::CStringT > > ATL::CStringT > >::Left(int)const 5587 int CComboBox::LimitText(int) 5588 void CEdit::LimitText(int) 5589 void CRichEditCtrl::LimitText(long) 5590 int CEdit::LineFromChar(int)const 5591 long CRichEditCtrl::LineFromChar(long)const 5592 int CEdit::LineIndex(int)const 5593 int CRichEditCtrl::LineIndex(int)const 5594 int CEdit::LineLength(int)const 5595 int CRichEditCtrl::LineLength(int)const 5596 void CEdit::LineScroll(int,int) 5597 void CRichEditCtrl::LineScroll(int,int) 5598 int CDC::LineTo(int,int) 5599 int CDC::LineTo(tagPOINT) 5600 int CAsyncSocket::Listen(int) 5601 unsigned long CRichEditView::lMaxSize 5602 long CBlobProperty::Load(IStream *) 5603 int CDialogTemplate::Load(wchar_t const *) 5604 void COleControl::Load(wchar_t const *,CDataPathProperty &) 5605 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 5606 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 5607 long COleControl::XPersistMemory::Load(void *,unsigned long) 5608 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 5609 long COleControl::XPersistStorage::Load(IStorage *) 5610 long COleServerDoc::XPersistStorage::Load(IStorage *) 5611 long COleControl::XPersistStreamInit::Load(IStream *) 5612 int CFrameWnd::LoadAccelTable(wchar_t const *) 5613 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL() 5614 void CFrameWnd::LoadBarState(wchar_t const *) 5615 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 5616 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 5617 int CBitmap::LoadBitmapW(unsigned int) 5618 int CBitmap::LoadBitmapW(wchar_t const *) 5619 int CToolBar::LoadBitmapW(unsigned int) 5620 int CToolBar::LoadBitmapW(wchar_t const *) 5621 HICON__ * CWinApp::LoadCursorW(unsigned int)const 5622 HICON__ * CWinApp::LoadCursorW(wchar_t const *)const 5623 void CRecordset::LoadFields() 5624 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5625 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5626 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5627 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 5628 int CDHtmlDialog::LoadFromResource(unsigned int) 5629 int CDHtmlDialog::LoadFromResource(wchar_t const *) 5630 int CHtmlView::LoadFromResource(unsigned int) 5631 int CHtmlView::LoadFromResource(wchar_t const *) 5632 void COleDocument::LoadFromStorage() 5633 HICON__ * CWinApp::LoadIconW(unsigned int)const 5634 HICON__ * CWinApp::LoadIconW(wchar_t const *)const 5635 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 5636 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 5637 int CMenu::LoadMenuIndirectW(void const *) 5638 int CMenu::LoadMenuW(unsigned int) 5639 int CMenu::LoadMenuW(wchar_t const *) 5640 int CBitmap::LoadOEMBitmap(unsigned int) 5641 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 5642 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 5643 HICON__ * CWinApp::LoadStandardCursor(wchar_t const *)const 5644 HICON__ * CWinApp::LoadStandardIcon(wchar_t const *)const 5645 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 5646 void CDockState::LoadState(wchar_t const *) 5647 long COleControl::LoadState(IStream *) 5648 void CWinApp::LoadStdProfileSettings(unsigned int) 5649 int ATL::CStringT > >::LoadStringW(unsigned int) 5650 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 5651 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 5652 int ATL::CStringT > >::LoadStringW(unsigned int) 5653 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 5654 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 5655 int CWinApp::LoadSysPolicies() 5656 void CDocTemplate::LoadTemplate() 5657 void CMultiDocTemplate::LoadTemplate() 5658 int CToolBar::LoadToolBar(unsigned int) 5659 int CToolBar::LoadToolBar(wchar_t const *) 5660 int CCriticalSection::Lock() 5661 int CCriticalSection::Lock(unsigned long) 5662 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 5663 void COleSafeArray::Lock() 5664 int CSingleLock::Lock(unsigned long) 5665 int CSyncObject::Lock(unsigned long) 5666 void CTypeLibCache::Lock() 5667 wchar_t * ATL::CSimpleStringT::LockBuffer() 5668 char * ATL::CSimpleStringT::LockBuffer() 5669 wchar_t const * CEditView::LockBuffer()const 5670 long COleControlContainer::XOleContainer::LockContainer(int) 5671 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 5672 void COleLinkingDoc::LockExternal(int,int) 5673 int COleControl::LockInPlaceActive(int) 5674 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 5675 void CFile::LockRange(unsigned __int64,unsigned __int64) 5676 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 5677 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 5678 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 5679 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 5680 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 5681 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 5682 long COleObjectFactory::XClassFactory::LockServer(int) 5683 int CWnd::LockWindowUpdate() 5684 int CMapPtrToPtr::Lookup(void *,void * &)const 5685 int CMapPtrToWord::Lookup(void *,unsigned short &)const 5686 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 5687 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 5688 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 5689 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 5690 int CMapWordToPtr::Lookup(unsigned short,void * &)const 5691 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 5692 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 5693 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 5694 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 5695 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 5696 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 5697 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 5698 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 5699 void CDC::LPtoDP(tagPOINT *,int)const 5700 void CDC::LPtoDP(tagRECT *)const 5701 void CDC::LPtoDP(tagSIZE *)const 5702 void CDC::LPtoHIMETRIC(tagSIZE *)const 5703 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5704 ATL::CStringT > > & ATL::CStringT > >::MakeLower() 5705 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5706 ATL::CStringT > > & ATL::CStringT > >::MakeReverse() 5707 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5708 ATL::CStringT > > & ATL::CStringT > >::MakeUpper() 5709 int CToolBarCtrl::MapAccelerator(wchar_t,unsigned int *) 5710 void CDialog::MapDialogRect(tagRECT *)const 5711 void CPropertySheet::MapDialogRect(tagRECT *)const 5712 void CArchive::MapObject(CObject const *) 5713 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 5714 int COleDialog::MapResult(unsigned int) 5715 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 5716 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 5717 long CPropertyPage::MapWizardResult(long) 5718 void CRichEditCntrItem::Mark(int) 5719 int CToolBarCtrl::MarkButton(int,int) 5720 void CRecordset::MarkForAddNew() 5721 void CRecordset::MarkForUpdate() 5722 void CRichEditDoc::MarkItemsClear()const 5723 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 5724 int CFindReplaceDialog::MatchCase()const 5725 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 5726 int CFileFind::MatchesMask(unsigned long)const 5727 int CFindReplaceDialog::MatchWholeWord()const 5728 void CReBarCtrl::MaximizeBand(unsigned int) 5729 void CMDIChildWnd::MDIActivate() 5730 void CMDIFrameWnd::MDIActivate(CWnd *) 5731 void CMDIFrameWnd::MDICascade(int) 5732 void CMDIFrameWnd::MDICascade() 5733 void CMDIChildWnd::MDIDestroy() 5734 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 5735 void CMDIFrameWnd::MDIIconArrange() 5736 void CMDIChildWnd::MDIMaximize() 5737 void CMDIFrameWnd::MDIMaximize(CWnd *) 5738 void CMDIFrameWnd::MDINext() 5739 void CMDIFrameWnd::MDIPrev() 5740 void CMDIChildWnd::MDIRestore() 5741 void CMDIFrameWnd::MDIRestore(CWnd *) 5742 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 5743 void CMDIFrameWnd::MDITile(int) 5744 void CMDIFrameWnd::MDITile() 5745 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 5746 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 5747 void CComboBox::MeasureItem(tagMEASUREITEM*) 5748 void CListBox::MeasureItem(tagMEASUREITEM*) 5749 void CMenu::MeasureItem(tagMEASUREITEM*) 5750 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 5751 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 5752 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 5753 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 5754 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 5755 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5756 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5757 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 5758 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 5759 void CReBarCtrl::MinimizeBand(unsigned int) 5760 void CPreviewDC::MirrorAttributes() 5761 void CPreviewDC::MirrorFont() 5762 void CPreviewDC::MirrorMappingMode(int) 5763 void CPreviewDC::MirrorViewportOrg() 5764 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5765 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5766 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 5767 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 5768 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 5769 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5770 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 5771 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 5772 void CDockContext::Move(CPoint) 5773 void CRecordset::Move(long,unsigned short) 5774 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 5775 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 5776 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 5777 void CRecordset::MoveFirst() 5778 void CRecordset::MoveLast() 5779 void CRecordset::MoveNext() 5780 void CRecordset::MovePrev() 5781 CPoint CDC::MoveTo(int,int) 5782 CPoint CDC::MoveTo(tagPOINT) 5783 void COleControlSite::MoveWindow(int,int,int,int) 5784 void CWnd::MoveWindow(int,int,int,int,int) 5785 void CWnd::MoveWindow(tagRECT const *,int) 5786 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5787 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5788 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 5789 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 5790 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 5791 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 5792 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 5793 unsigned int COleDropSource::nDragDelay 5794 unsigned int COleDropSource::nDragMinDist 5795 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 5796 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc() 5797 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc() 5798 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc() 5799 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc() 5800 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 5801 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc() 5802 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc() 5803 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 5804 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 5805 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 5806 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 5807 void CDialog::NextDlgCtrl()const 5808 unsigned int const CEditView::nMaxSize 5809 int CRectTracker::NormalizeHit(int)const 5810 void CDataBoundProperty::Notify() 5811 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 5812 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 5813 void COleServerDoc::NotifyChanged() 5814 void COleServerItem::NotifyChanged(enum tagDVASPECT) 5815 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 5816 void COleServerDoc::NotifyClosed() 5817 void CFrameWnd::NotifyFloatingWindows(unsigned long) 5818 void COleServerDoc::NotifyRename(wchar_t const *) 5819 void COleServerDoc::NotifySaved() 5820 void CWnd::NotifyWinEvent(unsigned long,long,long) 5821 unsigned int COleDropTarget::nScrollDelay 5822 int COleDropTarget::nScrollInset 5823 unsigned int COleDropTarget::nScrollInterval 5824 void ATL::CStringT > >::OemToCharA() 5825 int CDC::OffsetClipRgn(int,int) 5826 int CDC::OffsetClipRgn(tagSIZE) 5827 int CProgressCtrl::OffsetPos(int) 5828 int CRgn::OffsetRgn(int,int) 5829 int CRgn::OffsetRgn(tagPOINT) 5830 CPoint CDC::OffsetViewportOrg(int,int) 5831 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 5832 CPoint CPreviewDC::OffsetViewportOrg(int,int) 5833 CPoint CDC::OffsetWindowOrg(int,int) 5834 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 5835 void CAsyncSocket::OnAccept(int) 5836 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 5837 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 5838 void COleClientItem::OnActivate() 5839 void COleFrameHook::OnActivate(int) 5840 void CWnd::OnActivate(unsigned int,CWnd *,int) 5841 void CWnd::OnActivateApp(int,unsigned long) 5842 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 5843 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 5844 long COleControl::OnActivateInPlace(int,tagMSG *) 5845 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 5846 long CWnd::OnActivateTopLevel(unsigned int,long) 5847 void COleClientItem::OnActivateUI() 5848 long CDocObjectServer::OnActivateView() 5849 void CFormView::OnActivateView(int,CView *,CView *) 5850 void CPreviewView::OnActivateView(int,CView *,CView *) 5851 void CRichEditView::OnActivateView(int,CView *,CView *) 5852 void CView::OnActivateView(int,CView *,CView *) 5853 long CToolTipCtrl::OnAddTool(unsigned int,long) 5854 void CConnectionPoint::OnAdvise(int) 5855 void COleControl::XEventConnPt::OnAdvise(int) 5856 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 5857 void COleControl::OnAmbientPropertyChange(long) 5858 long COleControl::XOleControl::OnAmbientPropertyChange(long) 5859 void COleControl::OnAppearanceChanged() 5860 void CWinApp::OnAppExit() 5861 int CPropertyPage::OnApply() 5862 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 5863 void CDocObjectServer::OnApplyViewState(CArchive &) 5864 void CWnd::OnAskCbFormatName(unsigned int,wchar_t *) 5865 void COleControl::OnBackColorChanged() 5866 int CFrameWnd::OnBarCheck(unsigned int) 5867 int COleIPFrameWnd::OnBarCheck(unsigned int) 5868 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 5869 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 5870 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 5871 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 5872 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 5873 int COleDropSource::OnBeginDrag(CWnd *) 5874 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5875 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 5876 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 5877 void COleControl::OnBorderStyleChanged() 5878 void CRichEditView::OnBullet() 5879 int COleMessageFilter::OnBusyDialog(HTASK__ *) 5880 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 5881 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 5882 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 5883 void CCommonDialog::OnCancel() 5884 void CDialog::OnCancel() 5885 void CPropertyPage::OnCancel() 5886 void CRichEditView::OnCancelEditCntr() 5887 void COleControl::OnCancelMode() 5888 void CSplitterWnd::OnCancelMode() 5889 void CWnd::OnCancelMode() 5890 void CWnd::OnCaptureChanged(CWnd *) 5891 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 5892 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 5893 long COleControl::XFontNotification::OnChanged(long) 5894 long COleControlSite::XPropertyNotifySink::OnChanged(long) 5895 long COlePropertyPage::XPropNotifySink::OnChanged(long) 5896 void CRectTracker::OnChangedRect(CRect const &) 5897 void CDocument::OnChangedViewList() 5898 int COleClientItem::OnChangeItemPosition(CRect const &) 5899 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 5900 void CWnd::OnChangeUIState(unsigned int,unsigned int) 5901 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 5902 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 5903 void CRichEditView::OnCharBold() 5904 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 5905 void CRichEditView::OnCharItalic() 5906 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 5907 void CRichEditView::OnCharUnderline() 5908 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 5909 void CWnd::OnChildActivate() 5910 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 5911 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5912 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5913 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5914 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5915 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 5916 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5917 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 5918 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 5919 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 5920 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5921 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 5922 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 5923 void COleControl::OnClick(unsigned short) 5924 CEnumArray * CEnumArray::OnClone() 5925 CEnumArray * CEnumConnections::OnClone() 5926 void CAsyncSocket::OnClose(int) 5927 void CControlFrameWnd::OnClose() 5928 void CFrameWnd::OnClose() 5929 void CMiniDockFrameWnd::OnClose() 5930 void COleControl::OnClose(unsigned long) 5931 void COleServerDoc::OnClose(enum tagOLECLOSE) 5932 void CPropertySheet::OnClose() 5933 void CWnd::OnClose() 5934 void COleClientItem::XAdviseSink::OnClose() 5935 void CDocObjectServer::OnCloseDocument() 5936 void CDocument::OnCloseDocument() 5937 void COleDocument::OnCloseDocument() 5938 void COleLinkingDoc::OnCloseDocument() 5939 void COleServerDoc::OnCloseDocument() 5940 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5941 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5942 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5943 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5944 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5945 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5946 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5947 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5948 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5949 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5950 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5951 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5952 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 5953 void CRichEditView::OnColorDefault() 5954 int CColorDialog::OnColorOK() 5955 void CRichEditView::OnColorPick(unsigned long) 5956 int CFrameWnd::OnCommand(unsigned int,long) 5957 int CMDIFrameWnd::OnCommand(unsigned int,long) 5958 int COlePropertyPage::OnCommand(unsigned int,long) 5959 int CPropertySheet::OnCommand(unsigned int,long) 5960 int CSplitterWnd::OnCommand(unsigned int,long) 5961 int CWnd::OnCommand(unsigned int,long) 5962 long CDialog::OnCommandHelp(unsigned int,long) 5963 long CFrameWnd::OnCommandHelp(unsigned int,long) 5964 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 5965 long CPropertySheet::OnCommandHelp(unsigned int,long) 5966 void CHtmlView::OnCommandStateChange(long,int) 5967 void CWnd::OnCompacting(unsigned int) 5968 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 5969 void CAsyncSocket::OnConnect(int) 5970 void CFrameWnd::OnContextHelp() 5971 int COleFrameHook::OnContextHelp(int) 5972 void COleIPFrameWnd::OnContextHelp() 5973 void CWinApp::OnContextHelp() 5974 void CWnd::OnContextMenu(CWnd *,CPoint) 5975 long COleControlSite::XOleControlSite::OnControlInfoChanged() 5976 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 5977 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 5978 int CControlBar::OnCreate(tagCREATESTRUCTW *) 5979 int CEditView::OnCreate(tagCREATESTRUCTW *) 5980 int CFormView::OnCreate(tagCREATESTRUCTW *) 5981 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 5982 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 5983 int COleControl::OnCreate(tagCREATESTRUCTW *) 5984 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 5985 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 5986 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 5987 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 5988 int CView::OnCreate(tagCREATESTRUCTW *) 5989 int CWnd::OnCreate(tagCREATESTRUCTW *) 5990 int CCmdTarget::OnCreateAggregates() 5991 int COleControl::OnCreateAggregates() 5992 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 5993 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 5994 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 5995 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 5996 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 5997 CCmdTarget * COleObjectFactory::OnCreateObject() 5998 CCmdTarget * COleTemplateServer::OnCreateObject() 5999 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 6000 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6001 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6002 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 6003 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 6004 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 6005 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 6006 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6007 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6008 int CDocManager::OnDDECommand(wchar_t *) 6009 int CWinApp::OnDDECommand(wchar_t *) 6010 long CFrameWnd::OnDDEExecute(unsigned int,long) 6011 long CFrameWnd::OnDDEInitiate(unsigned int,long) 6012 long CFrameWnd::OnDDETerminate(unsigned int,long) 6013 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 6014 void COleClientItem::OnDeactivate() 6015 void COleServerDoc::OnDeactivate() 6016 void COleClientItem::OnDeactivateAndUndo() 6017 void COleClientItem::OnDeactivateUI(int) 6018 void COleServerDoc::OnDeactivateUI(int) 6019 void CRichEditCntrItem::OnDeactivateUI(int) 6020 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 6021 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 6022 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 6023 void CControlBar::OnDestroy() 6024 void CDHtmlDialog::OnDestroy() 6025 void CEditView::OnDestroy() 6026 void CFrameWnd::OnDestroy() 6027 void CHtmlView::OnDestroy() 6028 void CMDIChildWnd::OnDestroy() 6029 void CMDIFrameWnd::OnDestroy() 6030 void COleControl::OnDestroy() 6031 void COleIPFrameWnd::OnDestroy() 6032 void CRichEditView::OnDestroy() 6033 void CTabCtrl::OnDestroy() 6034 void CTreeCtrl::OnDestroy() 6035 void CTreeView::OnDestroy() 6036 void CView::OnDestroy() 6037 void CWnd::OnDestroy() 6038 void CWnd::OnDestroyClipboard() 6039 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 6040 int CWnd::OnDeviceChange(unsigned int,unsigned long) 6041 void CRichEditView::OnDevModeChange(wchar_t *) 6042 void CWnd::OnDevModeChange(wchar_t *) 6043 long CToolTipCtrl::OnDisableModal(unsigned int,long) 6044 void COleClientItem::OnDiscardUndoState() 6045 void CSplitterWnd::OnDisplayChange() 6046 long CWnd::OnDisplayChange(unsigned int,long) 6047 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 6048 int COleFrameHook::OnDocActivate(int) 6049 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 6050 void CHtmlView::OnDocumentComplete(wchar_t const *) 6051 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 6052 long CBrowserControlSite::OnDocWindowActivate(int) 6053 long CDHtmlDialog::OnDocWindowActivate(int) 6054 long CHtmlView::OnDocWindowActivate(int) 6055 void COleServerDoc::OnDocWindowActivate(int) 6056 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 6057 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6058 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6059 void CDocObjectServerItem::OnDoVerb(long) 6060 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 6061 void COleServerItem::OnDoVerb(long) 6062 void CHtmlView::OnDownloadBegin() 6063 void CHtmlView::OnDownloadComplete() 6064 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 6065 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 6066 void COleDropTarget::OnDragLeave(CWnd *) 6067 void CView::OnDragLeave() 6068 long CWnd::OnDragList(unsigned int,long) 6069 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 6070 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 6071 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 6072 unsigned long CView::OnDragScroll(unsigned long,CPoint) 6073 void CCtrlView::OnDraw(CDC *) 6074 void CFormView::OnDraw(CDC *) 6075 void CHtmlView::OnDraw(CDC *) 6076 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 6077 void CPreviewView::OnDraw(CDC *) 6078 void CView::OnDraw(CDC *) 6079 void CWnd::OnDrawClipboard() 6080 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 6081 void CWnd::OnDrawItem(int,tagDRAWITEM*) 6082 void COleControl::OnDrawMetafile(CDC *,CRect const &) 6083 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 6084 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 6085 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 6086 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 6087 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 6088 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 6089 void CFrameWnd::OnDropFiles(HDROP__ *) 6090 void CRichEditView::OnDropFiles(HDROP__ *) 6091 void CWnd::OnDropFiles(HDROP__ *) 6092 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 6093 int CEditView::OnEditChange() 6094 void COleDocument::OnEditChangeIcon() 6095 void CEditView::OnEditClear() 6096 void CRichEditView::OnEditClear() 6097 void COleDocument::OnEditConvert() 6098 void CEditView::OnEditCopy() 6099 void CHtmlView::OnEditCopy() 6100 void CRichEditView::OnEditCopy() 6101 void CEditView::OnEditCut() 6102 void CHtmlView::OnEditCut() 6103 void CRichEditView::OnEditCut() 6104 void CEditView::OnEditFind() 6105 void CRichEditView::OnEditFind() 6106 void CEditView::OnEditFindReplace(int) 6107 void CRichEditView::OnEditFindReplace(int) 6108 void COleDocument::OnEditLinks() 6109 void CEditView::OnEditPaste() 6110 void CHtmlView::OnEditPaste() 6111 void CRichEditView::OnEditPaste() 6112 void CRichEditView::OnEditPasteSpecial() 6113 void CRichEditView::OnEditProperties() 6114 int COlePropertyPage::OnEditProperty(long) 6115 void CRichEditView::OnEditRedo() 6116 void CEditView::OnEditRepeat() 6117 void CRichEditView::OnEditRepeat() 6118 void CEditView::OnEditReplace() 6119 void CRichEditView::OnEditReplace() 6120 void CEditView::OnEditSelectAll() 6121 void CRichEditView::OnEditSelectAll() 6122 void CEditView::OnEditUndo() 6123 void CRichEditView::OnEditUndo() 6124 void CFrameWnd::OnEnable(int) 6125 void CToolTipCtrl::OnEnable(int) 6126 void CWnd::OnEnable(int) 6127 void COleControl::OnEnabledChanged() 6128 long CHtmlView::OnEnableModeless(int) 6129 void COleFrameHook::OnEnableModeless(int) 6130 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 6131 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 6132 void CView::OnEndPrinting(CDC *,CPrintInfo *) 6133 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 6134 void CFrameWnd::OnEndSession(int) 6135 void CWnd::OnEndSession(int) 6136 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 6137 void COleControl::OnEnterIdle(unsigned int,CWnd *) 6138 void CWnd::OnEnterIdle(unsigned int,CWnd *) 6139 void CWnd::OnEnterMenuLoop(int) 6140 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 6141 int CFrameWnd::OnEraseBkgnd(CDC *) 6142 int COleControl::OnEraseBkgnd(CDC *) 6143 int COleResizeBar::OnEraseBkgnd(CDC *) 6144 int CPreviewView::OnEraseBkgnd(CDC *) 6145 int CReBar::OnEraseBkgnd(CDC *) 6146 int CToolBar::OnEraseBkgnd(CDC *) 6147 int CWnd::OnEraseBkgnd(CDC *) 6148 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6149 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6150 int COleControlSite::OnEvent(AFX_EVENT *) 6151 void COleControl::OnEventAdvise(int) 6152 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6153 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6154 void CWnd::OnExitMenuLoop(int) 6155 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6156 void CDocument::OnFileClose() 6157 void CFileDialog::OnFileNameChange() 6158 int CFileDialog::OnFileNameOK() 6159 void CDocManager::OnFileNew() 6160 void CWinApp::OnFileNew() 6161 void CDocManager::OnFileOpen() 6162 void CWinApp::OnFileOpen() 6163 void CHtmlView::OnFilePrint() 6164 void CView::OnFilePrint() 6165 void CView::OnFilePrintPreview() 6166 void CWinApp::OnFilePrintSetup() 6167 void CDocument::OnFileSave() 6168 void CDocument::OnFileSaveAs() 6169 void COleServerDoc::OnFileSaveCopyAs() 6170 void CDocument::OnFileSendMail() 6171 void COleDocument::OnFileSendMail() 6172 void COleServerDoc::OnFileUpdate() 6173 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 6174 void CCmdTarget::OnFinalRelease() 6175 void CDocument::OnFinalRelease() 6176 void COleControl::OnFinalRelease() 6177 void COlePropertyPage::OnFinalRelease() 6178 void COleServerItem::OnFinalRelease() 6179 void CWnd::OnFinalRelease() 6180 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 6181 void CEditView::OnFindNext(wchar_t const *,int,int) 6182 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 6183 long CEditView::OnFindReplaceCmd(unsigned int,long) 6184 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 6185 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 6186 long COleControlSite::XOleControlSite::OnFocus(int) 6187 void CFileDialog::OnFolderChange() 6188 void CWnd::OnFontChange() 6189 void COleControl::OnFontChanged() 6190 void COleControl::OnForeColorChanged() 6191 void CRichEditView::OnFormatFont() 6192 void COleControl::OnFrameClose() 6193 long CBrowserControlSite::OnFrameWindowActivate(int) 6194 long CDHtmlDialog::OnFrameWindowActivate(int) 6195 long CHtmlView::OnFrameWindowActivate(int) 6196 void COleServerDoc::OnFrameWindowActivate(int) 6197 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 6198 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6199 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6200 void COleControl::OnFreezeEvents(int) 6201 void CHtmlView::OnFullScreen(int) 6202 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 6203 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6204 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6205 void COleClientItem::OnGetClipRect(CRect &) 6206 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 6207 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 6208 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 6209 unsigned int COleControl::OnGetDlgCode() 6210 unsigned int CWnd::OnGetDlgCode() 6211 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 6212 COleServerItem * CRichEditDoc::OnGetEmbeddedItem() 6213 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6214 long CHtmlView::OnGetExternal(IDispatch * *) 6215 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6216 HMENU__ * COleControl::OnGetInPlaceMenu() 6217 void COleClientItem::OnGetItemPosition(CRect &) 6218 void COleDocObjectItem::OnGetItemPosition(CRect &) 6219 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 6220 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 6221 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6222 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6223 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6224 long CWnd::OnGetObject(unsigned int,long) 6225 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6226 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6227 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6228 long CStatusBar::OnGetText(unsigned int,long) 6229 long CStatusBar::OnGetTextLength(unsigned int,long) 6230 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6231 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6232 unsigned long COleControl::OnGetViewStatus() 6233 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6234 void CReBar::OnHeightChange(tagNMHDR *,long *) 6235 void CFrameWnd::OnHelp() 6236 int COlePropertyPage::OnHelp(wchar_t const *) 6237 void CWinApp::OnHelp() 6238 void CWnd::OnHelp() 6239 void CWinApp::OnHelpFinder() 6240 void CWnd::OnHelpFinder() 6241 long CControlBar::OnHelpHitTest(unsigned int,long) 6242 long CDialog::OnHelpHitTest(unsigned int,long) 6243 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6244 void CWinApp::OnHelpIndex() 6245 void CWnd::OnHelpIndex() 6246 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6247 int CWnd::OnHelpInfo(tagHELPINFO *) 6248 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6249 void CWinApp::OnHelpUsing() 6250 void CWnd::OnHelpUsing() 6251 void CDocObjectServerItem::OnHide() 6252 long COleControl::OnHide() 6253 void COleServerItem::OnHide() 6254 void COleControl::OnHideToolBars() 6255 long CHtmlView::OnHideUI() 6256 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6257 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6258 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6259 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6260 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6261 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6262 void CWnd::OnIconEraseBkgnd(CDC *) 6263 void CDocTemplate::OnIdle() 6264 void CDocument::OnIdle() 6265 void COleDocument::OnIdle() 6266 int CWinApp::OnIdle(long) 6267 int CWinThread::OnIdle(long) 6268 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6269 void CFrameWnd::OnIdleUpdateCmdUI() 6270 void CMDIFrameWnd::OnIdleUpdateCmdUI() 6271 void COleCntrFrameWnd::OnIdleUpdateCmdUI() 6272 void COleIPFrameWnd::OnIdleUpdateCmdUI() 6273 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6274 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6275 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6276 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6277 int CDHtmlDialog::OnInitDialog() 6278 int CDialog::OnInitDialog() 6279 int COlePropertiesDialog::OnInitDialog() 6280 int COlePropertyPage::OnInitDialog() 6281 int CPropertySheet::OnInitDialog() 6282 void CFileDialog::OnInitDone() 6283 int COleServerItem::OnInitFromData(COleDataObject *,int) 6284 void CControlBar::OnInitialUpdate() 6285 void CFormView::OnInitialUpdate() 6286 void COleDBRecordView::OnInitialUpdate() 6287 void CRecordView::OnInitialUpdate() 6288 void CRichEditView::OnInitialUpdate() 6289 void CView::OnInitialUpdate() 6290 void CFrameWnd::OnInitMenu(CMenu *) 6291 void COleFrameHook::OnInitMenu(CMenu *) 6292 void CWnd::OnInitMenu(CMenu *) 6293 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6294 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6295 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6296 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6297 long COleClientItem::XOleIPSite::OnInPlaceActivate() 6298 long COleControlSite::XOleIPSite::OnInPlaceActivate() 6299 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6300 long COleClientItem::XOleIPSite::OnInPlaceDeactivate() 6301 long COleControlSite::XOleIPSite::OnInPlaceDeactivate() 6302 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6303 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6304 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6305 void CRichEditView::OnInsertObject() 6306 void CSplitterWnd::OnInvertTracker(CRect const &) 6307 void CDockContext::OnKey(int,int) 6308 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6309 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6310 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6311 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6312 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6313 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6314 void COleControl::OnKeyPressEvent(unsigned short) 6315 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6316 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6317 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6318 long CPropertySheet::OnKickIdle(unsigned int,long) 6319 int CPropertyPage::OnKillActive() 6320 void COleControl::OnKillFocus(CWnd *) 6321 void CWnd::OnKillFocus(CWnd *) 6322 long CCheckListBox::OnLBAddString(unsigned int,long) 6323 long CCheckListBox::OnLBFindString(unsigned int,long) 6324 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6325 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6326 long CCheckListBox::OnLBGetText(unsigned int,long) 6327 long CCheckListBox::OnLBInsertString(unsigned int,long) 6328 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6329 long CCheckListBox::OnLBSelectString(unsigned int,long) 6330 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6331 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6332 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6333 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6334 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6335 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6336 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6337 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6338 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6339 void COleControl::OnLButtonDown(unsigned int,CPoint) 6340 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6341 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6342 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6343 void CWnd::OnLButtonDown(unsigned int,CPoint) 6344 void COleControl::OnLButtonUp(unsigned int,CPoint) 6345 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6346 void CWnd::OnLButtonUp(unsigned int,CPoint) 6347 void CAsyncMonikerFile::OnLowResource() 6348 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6349 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6350 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6351 void COleControl::OnMButtonDown(unsigned int,CPoint) 6352 void CWnd::OnMButtonDown(unsigned int,CPoint) 6353 void COleControl::OnMButtonUp(unsigned int,CPoint) 6354 void CWnd::OnMButtonUp(unsigned int,CPoint) 6355 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6356 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6357 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6358 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6359 void CHtmlView::OnMenuBar(int) 6360 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6361 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6362 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6363 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6364 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6365 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6366 int COleMessageFilter::OnMessagePending(tagMSG const *) 6367 int CSocket::OnMessagePending() 6368 void COleControl::OnMnemonic(tagMSG *) 6369 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6370 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6371 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6372 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6373 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6374 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6375 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6376 void COleControl::OnMouseMove(unsigned int,CPoint) 6377 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6378 void CWnd::OnMouseMove(unsigned int,CPoint) 6379 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6380 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6381 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6382 void COleControl::OnMove(int,int) 6383 int COleDBRecordView::OnMove(unsigned int) 6384 void CRecordView::OnMove(int,int) 6385 int CRecordView::OnMove(unsigned int) 6386 void CWnd::OnMove(int,int) 6387 void CWnd::OnMoving(unsigned int,tagRECT *) 6388 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6389 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6390 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 6391 void CHtmlView::OnNavigateComplete2(wchar_t const *) 6392 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 6393 int CFrameWnd::OnNcActivate(int) 6394 int CMDIChildWnd::OnNcActivate(int) 6395 int CMiniFrameWnd::OnNcActivate(int) 6396 int CWnd::OnNcActivate(int) 6397 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6398 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6399 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6400 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6401 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6402 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6403 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 6404 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 6405 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 6406 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 6407 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 6408 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 6409 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 6410 int CWnd::OnNcCreate(tagCREATESTRUCTW *) 6411 void CListCtrl::OnNcDestroy() 6412 void CListView::OnNcDestroy() 6413 void CWnd::OnNcDestroy() 6414 long CMiniFrameWnd::OnNcHitTest(CPoint) 6415 long COleControl::OnNcHitTest(CPoint) 6416 long CStatusBar::OnNcHitTest(CPoint) 6417 long CToolBar::OnNcHitTest(CPoint) 6418 long CWnd::OnNcHitTest(CPoint) 6419 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6420 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6421 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6422 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6423 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6424 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6425 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6426 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6427 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6428 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6429 void CDockBar::OnNcPaint() 6430 void COleControl::OnNcPaint() 6431 void CReBar::OnNcPaint() 6432 void CStatusBar::OnNcPaint() 6433 void CToolBar::OnNcPaint() 6434 void CWnd::OnNcPaint() 6435 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6436 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6437 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6438 int CDocument::OnNewDocument() 6439 int CHtmlEditDoc::OnNewDocument() 6440 int COleDocument::OnNewDocument() 6441 int COleLinkingDoc::OnNewDocument() 6442 void COleServerDoc::OnNewEmbedding(IStorage *) 6443 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6444 int CEnumArray::OnNext(void *) 6445 int CEnumConnections::OnNext(void *) 6446 int CEnumConnPoints::OnNext(void *) 6447 int CEnumFormatEtc::OnNext(void *) 6448 int CEnumOleVerb::OnNext(void *) 6449 int CEnumUnknown::OnNext(void *) 6450 void CPreviewView::OnNextPage() 6451 int CView::OnNextPaneCmd(unsigned int) 6452 int CFileDialog::OnNotify(unsigned int,long,long *) 6453 int CPropertyPage::OnNotify(unsigned int,long,long *) 6454 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6455 int CWnd::OnNotify(unsigned int,long,long *) 6456 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6457 long CWnd::OnNTCtlColor(unsigned int,long) 6458 void CPreviewView::OnNumPageChange() 6459 void COlePropertyPage::OnObjectsChanged() 6460 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6461 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6462 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6463 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6464 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6465 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6466 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6467 void CCommonDialog::OnOK() 6468 void CDialog::OnOK() 6469 void CPropertyPage::OnOK() 6470 long COleControl::OnOpen(int,tagMSG *) 6471 void COleServerItem::OnOpen() 6472 int CDocument::OnOpenDocument(wchar_t const *) 6473 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 6474 int COleDocument::OnOpenDocument(wchar_t const *) 6475 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 6476 void COleServerDoc::OnOpenEmbedding(IStorage *) 6477 int CWinApp::OnOpenRecentFile(unsigned int) 6478 void CAsyncSocket::OnOutOfBandData(int) 6479 void CCommonDialog::OnPaint() 6480 void CControlBar::OnPaint() 6481 void CCtrlView::OnPaint() 6482 void CDialog::OnPaint() 6483 void CDockBar::OnPaint() 6484 void CHtmlEditView::OnPaint() 6485 void CHtmlView::OnPaint() 6486 void COleControl::OnPaint(CDC *) 6487 int COleControlContainer::OnPaint(CDC *) 6488 void COleResizeBar::OnPaint() 6489 void CReBar::OnPaint() 6490 void CSplitterWnd::OnPaint() 6491 void CStatusBar::OnPaint() 6492 void CToolBar::OnPaint() 6493 void CView::OnPaint() 6494 void CWnd::OnPaint() 6495 void CWnd::OnPaintClipboard(CWnd *,void *) 6496 void CFrameWnd::OnPaletteChanged(CWnd *) 6497 void COleFrameHook::OnPaletteChanged(CWnd *) 6498 void CWnd::OnPaletteChanged(CWnd *) 6499 void CWnd::OnPaletteIsChanging(CWnd *) 6500 void CRichEditView::OnParaAlign(unsigned short) 6501 void CRichEditView::OnParaCenter() 6502 void CRichEditView::OnParaLeft() 6503 void CRichEditView::OnParaRight() 6504 void CWnd::OnParentNotify(unsigned int,long) 6505 int CRichEditView::OnPasteNativeObject(IStorage *) 6506 long CFrameWnd::OnPopMessageString(unsigned int,long) 6507 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 6508 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 6509 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 6510 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 6511 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 6512 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 6513 void CView::OnPrepareDC(CDC *,CPrintInfo *) 6514 int CEditView::OnPreparePrinting(CPrintInfo *) 6515 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 6516 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 6517 int CView::OnPreparePrinting(CPrintInfo *) 6518 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 6519 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 6520 void CPreviewView::OnPreviewClose() 6521 void CPreviewView::OnPreviewPrint() 6522 void CPreviewView::OnPrevPage() 6523 void CEditView::OnPrint(CDC *,CPrintInfo *) 6524 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 6525 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 6526 void CView::OnPrint(CDC *,CPrintInfo *) 6527 void CRichEditView::OnPrinterChanged(CDC const &) 6528 void CPrintDialog::OnPrintSetup() 6529 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 6530 void CHtmlView::OnProgressChange(long,long) 6531 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 6532 void CHtmlView::OnPropertyChange(wchar_t const *) 6533 int CPropertyPage::OnQueryCancel() 6534 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 6535 HICON__ * CWnd::OnQueryDragIcon() 6536 int CFrameWnd::OnQueryEndSession() 6537 int CWnd::OnQueryEndSession() 6538 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 6539 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 6540 int CFrameWnd::OnQueryNewPalette() 6541 int COleFrameHook::OnQueryNewPalette() 6542 int CWnd::OnQueryNewPalette() 6543 int CWnd::OnQueryOpen() 6544 unsigned int CWnd::OnQueryUIState() 6545 int COleServerItem::OnQueryUpdateItems() 6546 void CHtmlView::OnQuit() 6547 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 6548 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 6549 void COleControl::OnRButtonDown(unsigned int,CPoint) 6550 void CWnd::OnRButtonDown(unsigned int,CPoint) 6551 void COleControl::OnRButtonUp(unsigned int,CPoint) 6552 void CWnd::OnRButtonUp(unsigned int,CPoint) 6553 int COleServerDoc::OnReactivateAndUndo() 6554 void COleFrameHook::OnRecalcLayout() 6555 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 6556 void CReBar::OnRecalcParent() 6557 void CAsyncSocket::OnReceive(int) 6558 void COleControl::OnReflectorDestroyed() 6559 long CFrameWnd::OnRegisteredMouseWheel(unsigned int,long) 6560 long CWnd::OnRegisteredMouseWheel(unsigned int,long) 6561 void COleClientItem::OnRemoveMenus(CMenu *) 6562 void COleDocObjectItem::OnRemoveMenus(CMenu *) 6563 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 6564 void CWnd::OnRenderAllFormats() 6565 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6566 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6567 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6568 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6569 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 6570 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6571 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6572 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 6573 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 6574 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 6575 void CWnd::OnRenderFormat(unsigned int) 6576 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6577 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6578 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 6579 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 6580 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 6581 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 6582 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 6583 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 6584 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 6585 long COleControl::XFontNotification::OnRequestEdit(long) 6586 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 6587 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 6588 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6589 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 6590 void CEnumArray::OnReset() 6591 void CPropertyPage::OnReset() 6592 void COleControl::OnResetState() 6593 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6594 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 6595 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 6596 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 6597 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 6598 void COleClientItem::XAdviseSink::OnSave() 6599 int CDocument::OnSaveDocument(wchar_t const *) 6600 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 6601 int COleDocument::OnSaveDocument(wchar_t const *) 6602 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 6603 int COleServerDoc::OnSaveDocument(wchar_t const *) 6604 void COleServerDoc::OnSaveEmbedding(IStorage *) 6605 void COleServerItem::OnSaveEmbedding(IStorage *) 6606 void CDocObjectServer::OnSaveViewState(CArchive &) 6607 int CScrollView::OnScroll(unsigned int,unsigned int,int) 6608 int CView::OnScroll(unsigned int,unsigned int,int) 6609 int COleClientItem::OnScrollBy(CSize) 6610 int CScrollView::OnScrollBy(CSize,int) 6611 int CView::OnScrollBy(CSize,int) 6612 void CRichEditView::OnSelChange(tagNMHDR *,long *) 6613 void CAsyncSocket::OnSend(int) 6614 int CPropertyPage::OnSetActive() 6615 long CToolBar::OnSetBitmapSize(unsigned int,long) 6616 long CToolBar::OnSetButtonSize(unsigned int,long) 6617 void COleControl::OnSetClientSite() 6618 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 6619 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6620 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 6621 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 6622 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 6623 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6624 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 6625 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6626 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6627 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6628 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6629 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6630 long CPropertySheet::OnSetDefID(unsigned int,long) 6631 int COleControl::OnSetExtent(tagSIZE *) 6632 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 6633 void CFormView::OnSetFocus(CWnd *) 6634 void CFrameWnd::OnSetFocus(CWnd *) 6635 void COleControl::OnSetFocus(CWnd *) 6636 void CWnd::OnSetFocus(CWnd *) 6637 long CCheckListBox::OnSetFont(unsigned int,long) 6638 void CDialog::OnSetFont(CFont *) 6639 long CEditView::OnSetFont(unsigned int,long) 6640 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 6641 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 6642 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 6643 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 6644 long CFrameWnd::OnSetMessageString(unsigned int,long) 6645 long COleControl::OnSetMessageString(unsigned int,long) 6646 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 6647 long CStatusBar::OnSetMinHeight(unsigned int,long) 6648 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 6649 void CDatabase::OnSetOptions(void *) 6650 void CRecordset::OnSetOptions(void *) 6651 void COlePropertyPage::OnSetPageSite() 6652 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 6653 long CToolBar::OnSetSizeHelper(CSize &,long) 6654 long COleControl::OnSetText(unsigned int,long) 6655 long CStatusBar::OnSetText(unsigned int,long) 6656 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 6657 void CRecordset::OnSetUpdateOptions(void *) 6658 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 6659 void CDocObjectServerItem::OnShow() 6660 void COleServerItem::OnShow() 6661 long CReBar::OnShowBand(unsigned int,long) 6662 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6663 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 6664 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 6665 void COleServerDoc::OnShowDocument(int) 6666 void COleClientItem::OnShowItem() 6667 void COleControl::OnShowToolBars() 6668 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6669 void COleDocument::OnShowViews(int) 6670 void COleLinkingDoc::OnShowViews(int) 6671 void COleControl::OnShowWindow(int,unsigned int) 6672 void CWnd::OnShowWindow(int,unsigned int) 6673 long COleClientItem::XOleClientSite::OnShowWindow(int) 6674 long COleControlSite::XOleClientSite::OnShowWindow(int) 6675 void CDHtmlDialog::OnSize(unsigned int,int,int) 6676 void CFrameWnd::OnSize(unsigned int,int,int) 6677 void CHtmlView::OnSize(unsigned int,int,int) 6678 void CMDIChildWnd::OnSize(unsigned int,int,int) 6679 void CMDIFrameWnd::OnSize(unsigned int,int,int) 6680 void COleControl::OnSize(unsigned int,int,int) 6681 void COleIPFrameWnd::OnSize(unsigned int,int,int) 6682 void COleResizeBar::OnSize(unsigned int,int,int) 6683 void CPreviewView::OnSize(unsigned int,int,int) 6684 void CScrollView::OnSize(unsigned int,int,int) 6685 void CSplitterWnd::OnSize(unsigned int,int,int) 6686 void CStatusBar::OnSize(unsigned int,int,int) 6687 void CWnd::OnSize(unsigned int,int,int) 6688 void CWnd::OnSizeClipboard(CWnd *,void *) 6689 long CControlBar::OnSizeParent(unsigned int,long) 6690 long CDockBar::OnSizeParent(unsigned int,long) 6691 long COleResizeBar::OnSizeParent(unsigned int,long) 6692 void CWnd::OnSizing(unsigned int,tagRECT *) 6693 int CEnumArray::OnSkip() 6694 long CSocketWnd::OnSocketDead(unsigned int,long) 6695 long CSocketWnd::OnSocketNotify(unsigned int,long) 6696 int CView::OnSplitCmd(unsigned int) 6697 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 6698 void CAsyncMonikerFile::OnStartBinding() 6699 void CHtmlView::OnStatusBar(int) 6700 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 6701 void CHtmlView::OnStatusTextChange(wchar_t const *) 6702 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 6703 void CWnd::OnStyleChanged(int,tagSTYLE*) 6704 void CWnd::OnStyleChanging(int,tagSTYLE*) 6705 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 6706 void CToolBar::OnSysColorChange() 6707 void CWnd::OnSysColorChange() 6708 void CFrameWnd::OnSysCommand(unsigned int,long) 6709 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 6710 void CPropertySheet::OnSysCommand(unsigned int,long) 6711 void CSplitterWnd::OnSysCommand(unsigned int,long) 6712 void CWnd::OnSysCommand(unsigned int,long) 6713 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 6714 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6715 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 6716 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6717 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 6718 void CWnd::OnTCard(unsigned int,unsigned long) 6719 void COleControl::OnTextChanged() 6720 void CEditView::OnTextNotFound(wchar_t const *) 6721 void CRichEditView::OnTextNotFound(wchar_t const *) 6722 void CHtmlView::OnTheaterMode(int) 6723 void CWnd::OnTimeChange() 6724 void CControlBar::OnTimer(unsigned int) 6725 void CWnd::OnTimer(unsigned int) 6726 void CHtmlView::OnTitleChange(wchar_t const *) 6727 void CHtmlView::OnToolBar(int) 6728 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6729 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6730 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 6731 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6732 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 6733 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 6734 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6735 void CFileDialog::OnTypeChange() 6736 void COleControlContainer::OnUIActivate(COleControlSite *) 6737 long COleClientItem::XOleIPSite::OnUIActivate() 6738 long COleControlSite::XOleIPSite::OnUIActivate() 6739 void COleControlContainer::OnUIDeactivate(COleControlSite *) 6740 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 6741 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 6742 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 6743 void CView::OnUpdate(CView *,long,CObject *) 6744 void CRichEditView::OnUpdateBullet(CCmdUI *) 6745 void CRichEditView::OnUpdateCharBold(CCmdUI *) 6746 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 6747 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 6748 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 6749 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 6750 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 6751 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 6752 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 6753 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 6754 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 6755 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 6756 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6757 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 6758 int COleServerDoc::OnUpdateDocument() 6759 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 6760 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 6761 void CHtmlView::OnUpdateEditCut(CCmdUI *) 6762 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 6763 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 6764 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 6765 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 6766 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 6767 void CEditView::OnUpdateEditUndo(CCmdUI *) 6768 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 6769 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 6770 void CDocument::OnUpdateFileSendMail(CCmdUI *) 6771 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 6772 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6773 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 6774 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 6775 void CFrameWnd::OnUpdateFrameTitle(int) 6776 void CMDIChildWnd::OnUpdateFrameTitle(int) 6777 void CMDIFrameWnd::OnUpdateFrameTitle(int) 6778 int COleClientItem::OnUpdateFrameTitle() 6779 int COleFrameHook::OnUpdateFrameTitle() 6780 void COleServerItem::OnUpdateItems() 6781 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 6782 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 6783 void CEditView::OnUpdateNeedClip(CCmdUI *) 6784 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 6785 void CEditView::OnUpdateNeedFind(CCmdUI *) 6786 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 6787 void CEditView::OnUpdateNeedSel(CCmdUI *) 6788 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 6789 void CEditView::OnUpdateNeedText(CCmdUI *) 6790 void CRichEditView::OnUpdateNeedText(CCmdUI *) 6791 void CPreviewView::OnUpdateNextPage(CCmdUI *) 6792 void CView::OnUpdateNextPaneMenu(CCmdUI *) 6793 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 6794 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 6795 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 6796 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 6797 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 6798 void CRichEditView::OnUpdateParaRight(CCmdUI *) 6799 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 6800 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 6801 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 6802 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 6803 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 6804 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 6805 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 6806 void CRecordView::OnUpdateRecordLast(CCmdUI *) 6807 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 6808 void CRecordView::OnUpdateRecordNext(CCmdUI *) 6809 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 6810 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 6811 void CView::OnUpdateSplitCmd(CCmdUI *) 6812 long CHtmlView::OnUpdateUI() 6813 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 6814 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 6815 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 6816 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 6817 void CHtmlView::OnVisible(int) 6818 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 6819 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6820 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6821 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6822 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6823 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 6824 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 6825 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 6826 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 6827 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 6828 void CMDIFrameWnd::OnWindowNew() 6829 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 6830 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 6831 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 6832 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 6833 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 6834 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 6835 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 6836 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 6837 void CWnd::OnWinIniChange(wchar_t const *) 6838 long CPropertyPage::OnWizardBack() 6839 int CPropertyPage::OnWizardFinish() 6840 long CPropertyPage::OnWizardNext() 6841 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 6842 void CPreviewView::OnZoomIn() 6843 void CPreviewView::OnZoomOut() 6844 int CAnimateCtrl::Open(unsigned int) 6845 int CAnimateCtrl::Open(wchar_t const *) 6846 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 6847 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 6848 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 6849 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 6850 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 6851 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 6852 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 6853 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 6854 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 6855 int CDataPathProperty::Open(CFileException *) 6856 int CDataPathProperty::Open(COleControl *,CFileException *) 6857 int CDataPathProperty::Open(wchar_t const *,CFileException *) 6858 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 6859 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 6860 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 6861 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6862 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 6863 int CMonikerFile::Open(IMoniker *,CFileException *) 6864 int CMonikerFile::Open(wchar_t const *,CFileException *) 6865 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 6866 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 6867 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 6868 long CDocObjectServer::XOleDocumentView::Open() 6869 int CWnd::OpenClipboard() 6870 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 6871 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 6872 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 6873 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 6874 int CDatabase::OpenEx(wchar_t const *,unsigned long) 6875 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 6876 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 6877 int CWnd::OpenIcon() 6878 long COleUILinkInfo::OpenLinkSource(unsigned long) 6879 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 6880 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 6881 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 6882 int CHtmlEditDoc::OpenURL(wchar_t const *) 6883 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 6884 int CHeaderCtrl::OrderToIndex(int)const 6885 int CFileException::OsErrorToException(long) 6886 void CDumpContext::OutputString(wchar_t const *) 6887 int CEditView::PaginateTo(CDC *,CPrintInfo *) 6888 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 6889 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 6890 int CDC::PaintRgn(CRgn *) 6891 int CWnd::PaintWindowlessControls(CDC *) 6892 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 6893 void CWinApp::ParseCommandLine(CCommandLineInfo &) 6894 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 6895 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6896 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 6897 void CCommandLineInfo::ParseLast(int) 6898 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 6899 void CCommandLineInfo::ParseParam(char const *,int,int) 6900 void CCommandLineInfo::ParseParamFlag(char const *) 6901 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 6902 void CCommandLineInfo::ParseParamNotFlag(char const *) 6903 void CComboBox::Paste() 6904 void CEdit::Paste() 6905 void CRichEditCtrl::Paste() 6906 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 6907 int CDC::PatBlt(int,int,int,int,unsigned long) 6908 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc() 6909 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc()const 6910 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 6911 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 6912 int CDC::Pie(int,int,int,int,int,int,int,int) 6913 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 6914 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 6915 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 6916 int CDC::PlayMetaFile(HMETAFILE__ *) 6917 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 6918 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 6919 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 6920 int CDC::PolyBezier(tagPOINT const *,int) 6921 int CDC::PolyBezierTo(tagPOINT const *,int) 6922 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 6923 int CDC::Polygon(tagPOINT const *,int) 6924 int CDC::Polyline(tagPOINT const *,int) 6925 int CDC::PolylineTo(tagPOINT const *,int) 6926 int CDC::PolyPolygon(tagPOINT const *,int const *,int) 6927 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 6928 void CToolTipCtrl::Pop() 6929 CPoint CEdit::PosFromChar(unsigned int)const 6930 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 6931 void CPreviewView::PositionPage(unsigned int) 6932 int CAsyncMonikerFile::PostBindToStream(CFileException *) 6933 int CMonikerFile::PostBindToStream(CFileException *) 6934 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 6935 int CWnd::PostMessageW(unsigned int,unsigned int,long) 6936 void CDialog::PostModal() 6937 void CPrintDialogEx::PostModal() 6938 void COleControl::PostModalDialog(HWND__ *) 6939 void CControlBar::PostNcDestroy() 6940 void CControlFrameWnd::PostNcDestroy() 6941 void CFindReplaceDialog::PostNcDestroy() 6942 void CFrameWnd::PostNcDestroy() 6943 void COleCntrFrameWnd::PostNcDestroy() 6944 void CReflectorWnd::PostNcDestroy() 6945 void CView::PostNcDestroy() 6946 void CWnd::PostNcDestroy() 6947 int CWinThread::PostThreadMessageW(unsigned int,unsigned int,long) 6948 void ATL::CSimpleStringT::Preallocate(int) 6949 void ATL::CSimpleStringT::Preallocate(int) 6950 void CRecordset::PreBindFields() 6951 void CDocument::PreCloseFrame(CFrameWnd *) 6952 void COleDocument::PreCloseFrame(CFrameWnd *) 6953 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 6954 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 6955 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 6956 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 6957 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6958 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 6959 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 6960 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6961 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 6962 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 6963 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 6964 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6965 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 6966 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 6967 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 6968 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 6969 int CView::PreCreateWindow(tagCREATESTRUCTW &) 6970 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 6971 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 6972 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 6973 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 6974 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 6975 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 6976 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 6977 void CDialog::PreInitDialog() 6978 void COleChangeSourceDialog::PreInitDialog() 6979 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 6980 HWND__ * CDialog::PreModal() 6981 HWND__ * CPrintDialogEx::PreModal() 6982 void COleControl::PreModalDialog(HWND__ *) 6983 void CRecordset::PrepareAndExecute() 6984 HWND__ * CDataExchange::PrepareCtrl(int) 6985 HWND__ * CDataExchange::PrepareEditCtrl(int) 6986 void CWnd::PrepareForHelp() 6987 COleControlSite * CDataExchange::PrepareOleCtrl(int) 6988 void CRecordset::PrepareUpdateHstmt() 6989 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 6990 char * ATL::CSimpleStringT::PrepareWrite(int) 6991 void ATL::CSimpleStringT::PrepareWrite2(int) 6992 void ATL::CSimpleStringT::PrepareWrite2(int) 6993 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 6994 void CPropertySheet::PressButton(int) 6995 int CToolBarCtrl::PressButton(int,int) 6996 void CCheckListBox::PreSubclassWindow() 6997 void CDragListBox::PreSubclassWindow() 6998 void CWnd::PreSubclassWindow() 6999 int CWnd::PreTranslateInput(tagMSG *) 7000 int CControlBar::PreTranslateMessage(tagMSG *) 7001 int CDialog::PreTranslateMessage(tagMSG *) 7002 int CFormView::PreTranslateMessage(tagMSG *) 7003 int CFrameWnd::PreTranslateMessage(tagMSG *) 7004 int CHtmlView::PreTranslateMessage(tagMSG *) 7005 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 7006 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 7007 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 7008 int COlePropertyPage::PreTranslateMessage(tagMSG *) 7009 int CPropertyPage::PreTranslateMessage(tagMSG *) 7010 int CPropertySheet::PreTranslateMessage(tagMSG *) 7011 int CWinThread::PreTranslateMessage(tagMSG *) 7012 int CWnd::PreTranslateMessage(tagMSG *) 7013 void CDialog::PrevDlgCtrl()const 7014 void CWnd::Print(CDC *,unsigned long)const 7015 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 7016 int CPrintDialog::PrintAll()const 7017 int CPrintDialogEx::PrintAll()const 7018 void CWnd::PrintClient(CDC *,unsigned long)const 7019 int CPrintDialog::PrintCollate()const 7020 int CPrintDialogEx::PrintCollate()const 7021 int CPrintDialogEx::PrintCurrentPage()const 7022 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 7023 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 7024 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 7025 long CRichEditView::PrintPage(CDC *,long,long) 7026 int CPrintDialog::PrintRange()const 7027 int CPrintDialogEx::PrintRange()const 7028 int CPrintDialog::PrintSelection()const 7029 int CPrintDialogEx::PrintSelection()const 7030 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 7031 long COleException::Process(CException const *) 7032 int CSocket::ProcessAuxQueue() 7033 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 7034 int CWinThread::ProcessMessageFilter(int,tagMSG *) 7035 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 7036 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 7037 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 7038 int CRgn::PtInRegion(int,int)const 7039 int CRgn::PtInRegion(tagPOINT)const 7040 void COleSafeArray::PtrOfIndex(long *,void * *) 7041 int CDC::PtVisible(tagPOINT)const 7042 int CDC::PtVisible(int,int)const 7043 int CMetaFileDC::PtVisible(tagPOINT)const 7044 int CMetaFileDC::PtVisible(int,int)const 7045 int CEvent::PulseEvent() 7046 int CWinThread::PumpMessage() 7047 int CSocket::PumpMessages(unsigned int) 7048 void CReBarCtrl::PushChevron(unsigned int,long) 7049 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 7050 long CWnd::put_accName(tagVARIANT,wchar_t *) 7051 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 7052 long CWnd::put_accValue(tagVARIANT,wchar_t *) 7053 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 7054 void COleSafeArray::PutElement(long *,void *) 7055 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 7056 void CHtmlView::PutProperty(wchar_t const *,wchar_t const *) 7057 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 7058 void CHtmlView::PutProperty(wchar_t const *,short) 7059 void CHtmlView::PutProperty(wchar_t const *,long) 7060 void CHtmlView::PutProperty(wchar_t const *,double) 7061 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 7062 int PX_Bool(CPropExchange *,wchar_t const *,int &) 7063 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 7064 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 7065 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 7066 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 7067 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 7068 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 7069 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 7070 int PX_Double(CPropExchange *,wchar_t const *,double &) 7071 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 7072 int PX_Float(CPropExchange *,wchar_t const *,float &) 7073 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 7074 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 7075 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 7076 int PX_Long(CPropExchange *,wchar_t const *,long &) 7077 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 7078 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 7079 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 7080 int PX_Short(CPropExchange *,wchar_t const *,short &) 7081 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 7082 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 7083 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 7084 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 7085 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 7086 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 7087 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 7088 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 7089 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 7090 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7091 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7092 IUnknown * CCmdTarget::QueryAggregates(void const *) 7093 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 7094 long COleDropSource::QueryContinueDrag(int,unsigned long) 7095 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 7096 void * COleControl::QueryDefHandler(_GUID const &) 7097 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 7098 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 7099 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 7100 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 7101 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 7102 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7103 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7104 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 7105 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 7106 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 7107 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 7108 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 7109 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 7110 long CArchiveStream::QueryInterface(_GUID const &,void * *) 7111 long CBlobProperty::QueryInterface(_GUID const &,void * *) 7112 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 7113 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 7114 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 7115 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 7116 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 7117 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 7118 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 7119 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 7120 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 7121 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 7122 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 7123 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 7124 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 7125 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 7126 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 7127 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 7128 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 7129 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 7130 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 7131 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 7132 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 7133 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 7134 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 7135 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 7136 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 7137 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 7138 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 7139 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 7140 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 7141 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 7142 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7143 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7144 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 7145 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 7146 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 7147 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 7148 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 7149 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 7150 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7151 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7152 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 7153 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7154 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7155 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 7156 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 7157 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 7158 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 7159 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 7160 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 7161 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 7162 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 7163 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 7164 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 7165 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 7166 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 7167 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 7168 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 7169 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 7170 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 7171 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 7172 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 7173 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 7174 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 7175 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 7176 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 7177 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 7178 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 7179 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 7180 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 7181 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 7182 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 7183 int CInternetConnection::QueryOption(unsigned long,ATL::CStringT > > &)const 7184 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 7185 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 7186 int CInternetFile::QueryOption(unsigned long,ATL::CStringT > > &)const 7187 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 7188 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 7189 int CInternetSession::QueryOption(unsigned long,ATL::CStringT > > &)const 7190 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 7191 long CPropertyPage::QuerySiblings(unsigned int,long) 7192 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 7193 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 7194 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7195 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7196 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 7197 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 7198 int COleControlSite::QuickActivate() 7199 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 7200 int COleClientItem::ReactivateAndUndo() 7201 long COleControl::XOleInPlaceObject::ReactivateAndUndo() 7202 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo() 7203 unsigned int CArchive::Read(void *,unsigned int) 7204 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 7205 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 7206 unsigned int CFile::Read(void *,unsigned int) 7207 int CImageList::Read(CArchive *) 7208 unsigned int CInternetFile::Read(void *,unsigned int) 7209 unsigned int CMemFile::Read(void *,unsigned int) 7210 unsigned int COleStreamFile::Read(void *,unsigned int) 7211 unsigned int CSocketFile::Read(void *,unsigned int) 7212 unsigned int CStdioFile::Read(void *,unsigned int) 7213 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 7214 unsigned long CArchive::ReadCount() 7215 void CEditView::ReadFromArchive(CArchive &,unsigned int) 7216 int CProperty::ReadFromStream(IStream *) 7217 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 7218 int CPropertySet::ReadFromStream(IStream *) 7219 void COleClientItem::ReadItem(CArchive &) 7220 void COleClientItem::ReadItemCompound(CArchive &) 7221 void COleClientItem::ReadItemFlat(CArchive &) 7222 void CRecentFileList::ReadList() 7223 int CPropertySection::ReadNameDictFromStream(IStream *) 7224 CObject * CArchive::ReadObject(CRuntimeconst *) 7225 int CArchive::ReadString(ATL::CStringT > > &) 7226 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 7227 int CInternetFile::ReadString(ATL::CStringT > > &) 7228 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 7229 int CStdioFile::ReadString(ATL::CStringT > > &) 7230 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 7231 unsigned int CDC::RealizePalette() 7232 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7233 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7234 void ATL::CSimpleStringT::Reallocate(int) 7235 void ATL::CSimpleStringT::Reallocate(int) 7236 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7237 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7238 void CRecordset::RebindParams(void *) 7239 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7240 void CFrameWnd::RecalcLayout(int) 7241 void CMiniDockFrameWnd::RecalcLayout(int) 7242 void COleCntrFrameWnd::RecalcLayout(int) 7243 void COleDocIPFrameWnd::RecalcLayout(int) 7244 void COleIPFrameWnd::RecalcLayout(int) 7245 void CSplitterWnd::RecalcLayout() 7246 int CAsyncSocket::Receive(void *,int,int) 7247 int CSocket::Receive(void *,int,int) 7248 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7249 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7250 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7251 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7252 void COleControl::RecreateControlWindow() 7253 int CDC::Rectangle(int,int,int,int) 7254 int CDC::Rectangle(tagRECT const *) 7255 CRect const CFrameWnd::rectDefault 7256 int CRgn::RectInRegion(tagRECT const *)const 7257 int CDC::RectVisible(tagRECT const *)const 7258 int CMetaFileDC::RectVisible(tagRECT const *)const 7259 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7260 int CRichEditCtrl::Redo() 7261 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7262 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7263 int CListCtrl::RedrawItems(int,int) 7264 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7265 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7266 int CWnd::ReflectLastMsg(HWND__ *,long *) 7267 void CHtmlView::Refresh() 7268 void COleControl::Refresh() 7269 void CHtmlView::Refresh2(int) 7270 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7271 int COleDropTarget::Register(CWnd *) 7272 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 7273 int COleMessageFilter::Register() 7274 int COleObjectFactory::Register() 7275 int COleTemplateServer::Register() 7276 int CWinApp::Register() 7277 int COleObjectFactory::RegisterAll() 7278 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 7279 void CDocManager::RegisterShellFileTypes(int) 7280 void CWinApp::RegisterShellFileTypes(int) 7281 void CToolTipCtrl::RelayEvent(tagMSG *) 7282 unsigned long CArchiveStream::Release() 7283 unsigned long CBlobProperty::Release() 7284 unsigned long CBrowserControlSite::Release() 7285 unsigned long CDHtmlControlSink::Release() 7286 unsigned long CDHtmlElementEventSink::Release() 7287 unsigned long CDHtmlEventSink::Release() 7288 unsigned long CInnerUnknown::Release() 7289 void COleClientItem::Release(enum tagOLECLOSE) 7290 unsigned long COleConnPtContainer::Release() 7291 void COleDataObject::Release() 7292 unsigned long COleDispatchImpl::Release() 7293 void COleDocObjectItem::Release(enum tagOLECLOSE) 7294 unsigned long COleUILinkInfo::Release() 7295 unsigned long CPrintDialogEx::Release() 7296 unsigned long CWnd::XAccessible::Release() 7297 unsigned long CWnd::XAccessibleServer::Release() 7298 unsigned long COleClientItem::XAdviseSink::Release() 7299 unsigned long COleControlSite::XAmbientProps::Release() 7300 unsigned long COleControlSite::XBoundObjectSite::Release() 7301 unsigned long COleObjectFactory::XClassFactory::Release() 7302 unsigned long CConnectionPoint::XConnPt::Release() 7303 unsigned long COleControl::XDataObject::Release() 7304 unsigned long COleDataSource::XDataObject::Release() 7305 unsigned long COleServerDoc::XDataObject::Release() 7306 unsigned long COleServerItem::XDataObject::Release() 7307 unsigned long CHtmlControlSite::XDocHostUIHandler::Release() 7308 unsigned long COleDropSource::XDropSource::Release() 7309 unsigned long COleDropTarget::XDropTarget::Release() 7310 unsigned long CEnumArray::XEnumVOID::Release() 7311 unsigned long COleControlSite::XEventSink::Release() 7312 unsigned long COleControl::XFontNotification::Release() 7313 unsigned long COleMessageFilter::XMessageFilter::Release() 7314 unsigned long COleControlSite::XNotifyDBEvents::Release() 7315 unsigned long COleControl::XOleCache::Release() 7316 unsigned long COleClientItem::XOleClientSite::Release() 7317 unsigned long COleControlSite::XOleClientSite::Release() 7318 unsigned long CDocObjectServer::XOleCommandTarget::Release() 7319 unsigned long COleFrameHook::XOleCommandTarget::Release() 7320 unsigned long COleControlContainer::XOleContainer::Release() 7321 unsigned long COleControl::XOleControl::Release() 7322 unsigned long COleControlSite::XOleControlSite::Release() 7323 unsigned long CDocObjectServer::XOleDocument::Release() 7324 unsigned long COleDocObjectItem::XOleDocumentSite::Release() 7325 unsigned long CDocObjectServer::XOleDocumentView::Release() 7326 unsigned long COleControl::XOleInPlaceActiveObject::Release() 7327 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release() 7328 unsigned long COleFrameHook::XOleInPlaceFrame::Release() 7329 unsigned long COleControl::XOleInPlaceObject::Release() 7330 unsigned long COleServerDoc::XOleInPlaceObject::Release() 7331 unsigned long COleControlContainer::XOleIPFrame::Release() 7332 unsigned long COleClientItem::XOleIPSite::Release() 7333 unsigned long COleControlSite::XOleIPSite::Release() 7334 unsigned long COleLinkingDoc::XOleItemContainer::Release() 7335 unsigned long CDocObjectServer::XOleObject::Release() 7336 unsigned long COleControl::XOleObject::Release() 7337 unsigned long COleServerDoc::XOleObject::Release() 7338 unsigned long COleServerItem::XOleObject::Release() 7339 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release() 7340 unsigned long COleControl::XPerPropertyBrowsing::Release() 7341 unsigned long COleLinkingDoc::XPersistFile::Release() 7342 unsigned long COleControl::XPersistMemory::Release() 7343 unsigned long COleControl::XPersistPropertyBag::Release() 7344 unsigned long COleControl::XPersistStorage::Release() 7345 unsigned long COleServerDoc::XPersistStorage::Release() 7346 unsigned long COleControl::XPersistStreamInit::Release() 7347 unsigned long COleControl::XPointerInactive::Release() 7348 unsigned long CDocObjectServer::XPrint::Release() 7349 unsigned long COleControlSite::XPropertyNotifySink::Release() 7350 unsigned long COlePropertyPage::XPropertyPage::Release() 7351 unsigned long COlePropertyPage::XPropNotifySink::Release() 7352 unsigned long COleControl::XProvideClassInfo::Release() 7353 unsigned long COleControl::XQuickActivate::Release() 7354 unsigned long CRichEditView::XRichEditOleCallback::Release() 7355 unsigned long COleControlSite::XRowsetNotify::Release() 7356 unsigned long COleControl::XSpecifyPropertyPages::Release() 7357 unsigned long COleControl::XViewObject::Release() 7358 void CDC::ReleaseAttribDC() 7359 void ATL::CSimpleStringT::ReleaseBuffer(int) 7360 void ATL::CSimpleStringT::ReleaseBuffer(int) 7361 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7362 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7363 void COleControl::ReleaseCaches() 7364 int COleControl::ReleaseCapture() 7365 int COleControl::ReleaseDC(CDC *) 7366 int CWnd::ReleaseDC(CDC *) 7367 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7368 void COleDispatchDriver::ReleaseDispatch() 7369 void CDocObjectServer::ReleaseDocSite() 7370 void CDocument::ReleaseFile(CFile *,int) 7371 void CFontHolder::ReleaseFont() 7372 void CDC::ReleaseOutputDC() 7373 void CMetaFileDC::ReleaseOutputDC() 7374 void CPreviewDC::ReleaseOutputDC() 7375 int COleClientItem::Reload() 7376 int ATL::CStringT > >::Remove(wchar_t) 7377 int ATL::CStringT > >::Remove(char) 7378 void CFile::Remove(wchar_t const *) 7379 int CFtpConnection::Remove(wchar_t const *) 7380 int CImageList::Remove(int) 7381 void CPropertySection::Remove(unsigned long) 7382 void CPropertySet::Remove(_GUID) 7383 void CPropertySet::Remove(_GUID,unsigned long) 7384 void CRecentFileList::Remove(int) 7385 int CSimpleList::Remove(void *) 7386 void CByteArray::RemoveAll() 7387 void CDWordArray::RemoveAll() 7388 void CMapPtrToPtr::RemoveAll() 7389 void CMapPtrToWord::RemoveAll() 7390 void CMapStringToOb::RemoveAll() 7391 void CMapStringToPtr::RemoveAll() 7392 void CMapStringToString::RemoveAll() 7393 void CMapWordToOb::RemoveAll() 7394 void CMapWordToPtr::RemoveAll() 7395 void CObArray::RemoveAll() 7396 void CObList::RemoveAll() 7397 void CPropertySection::RemoveAll() 7398 void CPropertySet::RemoveAll() 7399 void CPtrArray::RemoveAll() 7400 void CPtrList::RemoveAll() 7401 void CStringArray::RemoveAll() 7402 void CStringList::RemoveAll() 7403 void CTypeLibCacheMap::RemoveAll(void *) 7404 void CUIntArray::RemoveAll() 7405 void CWordArray::RemoveAll() 7406 void CByteArray::RemoveAt(int,int) 7407 void CDWordArray::RemoveAt(int,int) 7408 void CObArray::RemoveAt(int,int) 7409 void CObList::RemoveAt(__POSITION *) 7410 void CPtrArray::RemoveAt(int,int) 7411 void CPtrList::RemoveAt(__POSITION *) 7412 void CStringArray::RemoveAt(int,int) 7413 void CStringList::RemoveAt(__POSITION *) 7414 void CUIntArray::RemoveAt(int,int) 7415 void CWordArray::RemoveAt(int,int) 7416 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7417 void CFrameWnd::RemoveControlBar(CControlBar *) 7418 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 7419 void CDocTemplate::RemoveDocument(CDocument *) 7420 void CMultiDocTemplate::RemoveDocument(CDocument *) 7421 void CSingleDocTemplate::RemoveDocument(CDocument *) 7422 void COleControl::RemoveFrameLevelUI() 7423 void CFrameWnd::RemoveFrameWnd() 7424 void CHandleMap::RemoveHandle(void *) 7425 CObject * CObList::RemoveHead() 7426 void * CPtrList::RemoveHead() 7427 ATL::CStringT > > CStringList::RemoveHead() 7428 void CTabCtrl::RemoveImage(int) 7429 void CListCtrl::RemoveImageList(int) 7430 void CListView::RemoveImageList(int) 7431 void CTreeCtrl::RemoveImageList(int) 7432 void CTreeView::RemoveImageList(int) 7433 void COleDocument::RemoveItem(CDocItem *) 7434 int CMapPtrToPtr::RemoveKey(void *) 7435 int CMapPtrToWord::RemoveKey(void *) 7436 int CMapStringToOb::RemoveKey(wchar_t const *) 7437 int CMapStringToPtr::RemoveKey(wchar_t const *) 7438 int CMapStringToString::RemoveKey(wchar_t const *) 7439 int CMapWordToOb::RemoveKey(unsigned short) 7440 int CMapWordToPtr::RemoveKey(unsigned short) 7441 int CMenu::RemoveMenu(unsigned int,unsigned int) 7442 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7443 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7444 void CPropertySheet::RemovePage(int) 7445 void CPropertySheet::RemovePage(CPropertyPage *) 7446 void CDockBar::RemovePlaceHolder(CControlBar *) 7447 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7448 void CDataBoundProperty::RemoveSource() 7449 CObject * CObList::RemoveTail() 7450 void * CPtrList::RemoveTail() 7451 ATL::CStringT > > CStringList::RemoveTail() 7452 void CDocument::RemoveView(CView *) 7453 void CFile::Rename(wchar_t const *,wchar_t const *) 7454 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 7455 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 7456 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 7457 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 7458 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 7459 int ATL::CStringT > >::Replace(char,char) 7460 int ATL::CStringT > >::Replace(char const *,char const *) 7461 int CImageList::Replace(int,HICON__ *) 7462 int CImageList::Replace(int,CBitmap *,CBitmap *) 7463 int CFindReplaceDialog::ReplaceAll()const 7464 void CDatabase::ReplaceBrackets(wchar_t *) 7465 int CFindReplaceDialog::ReplaceCurrent()const 7466 void CEdit::ReplaceSel(wchar_t const *,int) 7467 void CRichEditCtrl::ReplaceSel(wchar_t const *,int) 7468 int CException::ReportError(unsigned int,unsigned int) 7469 int COleClientItem::ReportError(long)const 7470 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 7471 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 7472 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 7473 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 7474 int CRecordset::Requery() 7475 void COleControl::RequestAsynchronousExchange(unsigned long) 7476 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 7477 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 7478 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 7479 long COleClientItem::XOleClientSite::RequestNewObjectLayout() 7480 long COleControlSite::XOleClientSite::RequestNewObjectLayout() 7481 void COleServerDoc::RequestPositionChange(tagRECT const *) 7482 void CRichEditCtrl::RequestResize() 7483 long COleControlSite::XOleIPSite::RequestUIActivate() 7484 long CEnumArray::XEnumVOID::Reset() 7485 void CComboBox::ResetContent() 7486 void CListBox::ResetContent() 7487 void CRecordset::ResetCursor() 7488 void CCachedDataPathProperty::ResetData() 7489 void CDataPathProperty::ResetData() 7490 int CDC::ResetDCW(_devicemodeW const *) 7491 int CEvent::ResetEvent() 7492 void COleControl::ResetStockProps() 7493 void CControlBar::ResetTimer(unsigned int,unsigned int) 7494 void COleControl::ResetVersion(unsigned long) 7495 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7496 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7497 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7498 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7499 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7500 void COleControl::ResizeFrameWindow(int,int) 7501 void COleSafeArray::ResizeOneDim(unsigned long) 7502 void COleControl::ResizeOpenControl(int,int) 7503 int CPalette::ResizePalette(unsigned int) 7504 void CScrollView::ResizeParentToFit(int) 7505 void CWaitCursor::Restore() 7506 void CReBarCtrl::RestoreBand(unsigned int) 7507 int CDC::RestoreDC(int) 7508 int CPreviewDC::RestoreDC(int) 7509 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 7510 void CCmdTarget::RestoreWaitCursor() 7511 unsigned long CWinThread::ResumeThread() 7512 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 7513 int ATL::CStringT > >::ReverseFind(wchar_t)const 7514 int ATL::CStringT > >::ReverseFind(char)const 7515 long CArchiveStream::Revert() 7516 void COleDropTarget::Revoke() 7517 void COleLinkingDoc::Revoke() 7518 void COleMessageFilter::Revoke() 7519 void COleObjectFactory::Revoke() 7520 void COleObjectFactory::RevokeAll() 7521 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 7522 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 7523 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 7524 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 7525 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 7526 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 7527 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 7528 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 7529 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 7530 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 7531 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 7532 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 7533 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 7534 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 7535 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 7536 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 7537 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 7538 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 7539 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 7540 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 7541 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 7542 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 7543 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 7544 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 7545 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 7546 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 7547 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7548 ATL::CStringT > > ATL::CStringT > >::Right(int)const 7549 int CDatabase::Rollback() 7550 int CDC::RoundRect(int,int,int,int,int,int) 7551 int CDC::RoundRect(tagRECT const *,tagPOINT) 7552 void COleClientItem::Run() 7553 int CWinApp::Run() 7554 int CWinThread::Run() 7555 int CWinApp::RunAutomated() 7556 int CWinApp::RunEmbedded() 7557 int CWnd::RunModalLoop(unsigned long) 7558 int COleControlSite::SafeSetProperty(long,unsigned short,...) 7559 int CEditView::SameAsSelected(wchar_t const *,int) 7560 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 7561 long CBlobProperty::Save(IStream *,int) 7562 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 7563 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 7564 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 7565 long COleControl::XPersistStorage::Save(IStorage *,int) 7566 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 7567 long COleControl::XPersistStreamInit::Save(IStream *,int) 7568 int CDocManager::SaveAllModified() 7569 int CDocTemplate::SaveAllModified() 7570 int CWinApp::SaveAllModified() 7571 void CFrameWnd::SaveBarState(wchar_t const *)const 7572 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 7573 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 7574 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 7575 int CDC::SaveDC() 7576 int CPreviewDC::SaveDC() 7577 void COleServerDoc::SaveEmbedding() 7578 int CFormView::SaveFocusControl() 7579 int CDocument::SaveModified() 7580 int COleDocument::SaveModified() 7581 int COleServerDoc::SaveModified() 7582 int COleServerDoc::SaveModifiedPrompt() 7583 long COleClientItem::XOleClientSite::SaveObject() 7584 long COleControlSite::XOleClientSite::SaveObject() 7585 int CControlBarInfo::SaveState(wchar_t const *,int) 7586 void CDockState::SaveState(wchar_t const *) 7587 long COleControl::SaveState(IStream *) 7588 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 7589 void CWinApp::SaveStdProfileSettings() 7590 void COleDocument::SaveToStorage(CObject *) 7591 void COleLinkingDoc::SaveToStorage(CObject *) 7592 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 7593 void CDockState::ScalePoint(CPoint &) 7594 void CDockState::ScaleRectPos(CRect &) 7595 CSize CDC::ScaleViewportExt(int,int,int,int) 7596 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 7597 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 7598 CSize CDC::ScaleWindowExt(int,int,int,int) 7599 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 7600 void CWnd::ScreenToClient(tagPOINT *)const 7601 void CWnd::ScreenToClient(tagRECT *)const 7602 int CListCtrl::Scroll(CSize) 7603 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 7604 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 7605 void COleControlContainer::ScrollChildren(int,int) 7606 int COleServerDoc::ScrollContainerBy(CSize) 7607 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 7608 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 7609 void CScrollView::ScrollToDevicePosition(tagPOINT) 7610 void CScrollView::ScrollToPosition(tagPOINT) 7611 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7612 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 7613 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 7614 int CFindReplaceDialog::SearchDown()const 7615 int CAnimateCtrl::Seek(unsigned int) 7616 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 7617 unsigned __int64 CFile::Seek(__int64,unsigned int) 7618 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 7619 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 7620 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 7621 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 7622 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 7623 void CFile::SeekToBegin() 7624 unsigned __int64 CFile::SeekToEnd() 7625 CFont * CFontHolder::Select(CDC *,long,long) 7626 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 7627 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 7628 int CDC::SelectClipPath(int) 7629 int CDC::SelectClipRgn(CRgn *) 7630 int CDC::SelectClipRgn(CRgn *,int) 7631 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 7632 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 7633 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 7634 long CPrintDialogEx::SelectionChange() 7635 int CTreeCtrl::SelectItem(_TREEITEM *) 7636 int CDC::SelectObject(CRgn *) 7637 CBitmap * CDC::SelectObject(CBitmap *) 7638 CBrush * CDC::SelectObject(CBrush *) 7639 CGdiObject * CDC::SelectObject(CGdiObject *) 7640 CPen * CDC::SelectObject(CPen *) 7641 void * CDC::SelectObject(void *) 7642 CFont * CDC::SelectObject(CFont *) 7643 CFont * CPreviewDC::SelectObject(CFont *) 7644 CPalette * CDC::SelectPalette(CPalette *,int) 7645 void CWinApp::SelectPrinter(void *,void *,int) 7646 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 7647 CFont * COleControl::SelectStockFont(CDC *) 7648 CGdiObject * CDC::SelectStockObject(int) 7649 CGdiObject * CPreviewDC::SelectStockObject(int) 7650 int CComboBox::SelectString(int,wchar_t const *) 7651 int CListBox::SelectString(int,wchar_t const *) 7652 int CListBox::SelItemRange(int,int,int) 7653 int CAsyncSocket::Send(void const *,int,int) 7654 int CSocket::Send(void const *,int,int) 7655 void COleControl::SendAdvise(unsigned int) 7656 int CWnd::SendChildNotifyLastMsg(long *) 7657 int CSocket::SendChunk(void const *,int,int) 7658 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 7659 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 7660 void CDocument::SendInitialUpdate() 7661 void CRecordset::SendLongBinaryData(void *) 7662 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 7663 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 7664 long CWnd::SendMessageW(unsigned int,unsigned int,long) 7665 void COleControlSite::SendMnemonic(tagMSG *) 7666 int CWnd::SendNotifyMessageW(unsigned int,unsigned int,long) 7667 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 7668 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 7669 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 7670 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 7671 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 7672 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 7673 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7674 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 7675 void CByteArray::Serialize(CArchive &) 7676 void CControlBarInfo::Serialize(CArchive &,CDockState *) 7677 void CDocItem::Serialize(CArchive &) 7678 void CDockState::Serialize(CArchive &) 7679 void CDWordArray::Serialize(CArchive &) 7680 void CEditView::Serialize(CArchive &) 7681 void CMapStringToOb::Serialize(CArchive &) 7682 void CMapStringToString::Serialize(CArchive &) 7683 void CMapWordToOb::Serialize(CArchive &) 7684 void CObArray::Serialize(CArchive &) 7685 void CObject::Serialize(CArchive &) 7686 void CObList::Serialize(CArchive &) 7687 void COleClientItem::Serialize(CArchive &) 7688 void COleControl::Serialize(CArchive &) 7689 void COleDocument::Serialize(CArchive &) 7690 void CRichEditDoc::Serialize(CArchive &) 7691 void CRichEditView::Serialize(CArchive &) 7692 void CStringArray::Serialize(CArchive &) 7693 void CStringList::Serialize(CArchive &) 7694 void CWordArray::Serialize(CArchive &) 7695 CArchive & ATL::CTime::Serialize64(CArchive &) 7696 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 7697 void CArchive::SerializeClass(CRuntimeconst *) 7698 void COleControl::SerializeExtent(CArchive &) 7699 void CEditView::SerializeRaw(CArchive &) 7700 void COleControl::SerializeStockProps(CArchive &) 7701 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 7702 int CProperty::Set(unsigned long,void * const,unsigned long) 7703 int CProperty::Set(void * const) 7704 int CProperty::Set(void * const,unsigned long) 7705 int CPropertySection::Set(unsigned long,void *) 7706 int CPropertySection::Set(unsigned long,void *,unsigned long) 7707 int CPropertySet::Set(_GUID,unsigned long,void *) 7708 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 7709 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 7710 void CRecordset::SetAbsolutePosition(long) 7711 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 7712 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7713 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 7714 int CPropertySheet::SetActivePage(int) 7715 int CPropertySheet::SetActivePage(CPropertyPage *) 7716 void CSplitterWnd::SetActivePane(int,int,CWnd *) 7717 void CFrameWnd::SetActiveView(CView *,int) 7718 CWnd * CWnd::SetActiveWindow() 7719 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 7720 void CIPAddressCtrl::SetAddress(unsigned long) 7721 void CHtmlView::SetAddressBar(int) 7722 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 7723 int CToolBarCtrl::SetAnchorHighlight(int) 7724 void CListBox::SetAnchorIndex(int) 7725 void COleControl::SetAppearance(short) 7726 int CDC::SetArcDirection(int) 7727 void ATL::CSimpleStringT::SetAt(int,wchar_t) 7728 void ATL::CSimpleStringT::SetAt(int,char) 7729 void CByteArray::SetAt(int,unsigned char) 7730 void CDWordArray::SetAt(int,unsigned long) 7731 void CMapPtrToPtr::SetAt(void *,void *) 7732 void CMapPtrToWord::SetAt(void *,unsigned short) 7733 void CMapStringToOb::SetAt(wchar_t const *,CObject *) 7734 void CMapStringToPtr::SetAt(wchar_t const *,void *) 7735 void CMapStringToString::SetAt(wchar_t const *,wchar_t const *) 7736 void CMapWordToOb::SetAt(unsigned short,CObject *) 7737 void CMapWordToPtr::SetAt(unsigned short,void *) 7738 void CObArray::SetAt(int,CObject *) 7739 void CObList::SetAt(__POSITION *,CObject *) 7740 void CPtrArray::SetAt(int,void *) 7741 void CPtrList::SetAt(__POSITION *,void *) 7742 void CStringArray::SetAt(int,ATL::CStringT > > const &) 7743 void CStringArray::SetAt(int,wchar_t const *) 7744 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 7745 void CStringList::SetAt(__POSITION *,wchar_t const *) 7746 void CUIntArray::SetAt(int,unsigned int) 7747 void CWordArray::SetAt(int,unsigned short) 7748 void CByteArray::SetAtGrow(int,unsigned char) 7749 void CDWordArray::SetAtGrow(int,unsigned long) 7750 void CObArray::SetAtGrow(int,CObject *) 7751 void CPtrArray::SetAtGrow(int,void *) 7752 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 7753 void CStringArray::SetAtGrow(int,wchar_t const *) 7754 void CUIntArray::SetAtGrow(int,unsigned int) 7755 void CWordArray::SetAtGrow(int,unsigned short) 7756 void CDC::SetAttribDC(HDC__ *) 7757 void CMetaFileDC::SetAttribDC(HDC__ *) 7758 void CPreviewDC::SetAttribDC(HDC__ *) 7759 int CRichEditCtrl::SetAutoURLDetect(int) 7760 void COleControl::SetBackColor(unsigned long) 7761 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 7762 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOW *) 7763 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7764 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 7765 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 7766 void CControlBar::SetBarStyle(unsigned long) 7767 int CSpinButtonCtrl::SetBase(int) 7768 void CAsyncMonikerFile::SetBinding(IBinding *) 7769 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 7770 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 7771 int CToolBar::SetBitmap(HBITMAP__ *) 7772 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 7773 CSize CBitmap::SetBitmapDimension(int,int) 7774 int CHeaderCtrl::SetBitmapMargin(int) 7775 int CToolBarCtrl::SetBitmapSize(CSize) 7776 unsigned long CDC::SetBkColor(unsigned long) 7777 unsigned long CImageList::SetBkColor(unsigned long) 7778 int CListCtrl::SetBkColor(unsigned long) 7779 unsigned long CPreviewDC::SetBkColor(unsigned long) 7780 unsigned long CProgressCtrl::SetBkColor(unsigned long) 7781 unsigned long CReBarCtrl::SetBkColor(unsigned long) 7782 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 7783 unsigned long CTreeCtrl::SetBkColor(unsigned long) 7784 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 7785 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 7786 int CListCtrl::SetBkImage(tagLVBKIMAGEW *) 7787 int CDC::SetBkMode(int) 7788 void CRecordset::SetBookmark(CDBVariant const &) 7789 void CControlBar::SetBorders(int,int,int,int) 7790 void CControlBar::SetBorders(tagRECT const *) 7791 void CStatusBar::SetBorders(int,int,int,int) 7792 void CStatusBar::SetBorders(tagRECT const *) 7793 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 7794 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 7795 void COleControl::SetBorderStyle(short) 7796 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 7797 CPoint CDC::SetBrushOrg(int,int) 7798 CPoint CDC::SetBrushOrg(tagPOINT) 7799 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 7800 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 7801 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 7802 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 7803 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOW *) 7804 int CToolBar::SetButtons(unsigned int const *,int) 7805 int CToolBarCtrl::SetButtonSize(CSize) 7806 void CToolBarCtrl::SetButtonStructSize(int) 7807 void CButton::SetButtonStyle(unsigned int,int) 7808 void CToolBar::SetButtonStyle(int,unsigned int) 7809 int CToolBar::SetButtonText(int,wchar_t const *) 7810 int CToolBarCtrl::SetButtonWidth(int,int) 7811 int CListCtrl::SetCallbackMask(unsigned int) 7812 CWnd * COleControl::SetCapture() 7813 CWnd * CWnd::SetCapture() 7814 long COleControlSite::XOleIPSite::SetCapture(int) 7815 int CListBox::SetCaretIndex(int,int) 7816 void CWnd::SetCaretPos(tagPOINT) 7817 void CRichEditView::SetCharFormat(CHARFORMAT2W) 7818 void CButton::SetCheck(int) 7819 void CCheckListBox::SetCheck(int,int) 7820 void CCmdUI::SetCheck(int) 7821 int CListCtrl::SetCheck(int,int) 7822 void COleCmdUI::SetCheck(int) 7823 void CStatusCmdUI::SetCheck(int) 7824 void CTestCmdUI::SetCheck(int) 7825 void CToolCmdUI::SetCheck(int) 7826 int CTreeCtrl::SetCheck(_TREEITEM *,int) 7827 void CCheckListBox::SetCheckStyle(unsigned int) 7828 void CPropertySet::SetClassID(_GUID) 7829 void CDataBoundProperty::SetClientSite(COleControlSite *) 7830 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 7831 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 7832 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 7833 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 7834 void COleDataSource::SetClipboard() 7835 HWND__ * CWnd::SetClipboardViewer() 7836 int CToolBarCtrl::SetCmdID(int,unsigned int) 7837 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 7838 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 7839 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 7840 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 7841 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 7842 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 7843 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 7844 int CListCtrl::SetColumn(int,tagLVCOLUMNW const *) 7845 void CSplitterWnd::SetColumnInfo(int,int,int) 7846 int CListCtrl::SetColumnOrderArray(int,int *) 7847 void CListBox::SetColumnWidth(int) 7848 int CListCtrl::SetColumnWidth(int,int) 7849 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 7850 void CDocTemplate::SetContainerInfo(unsigned int) 7851 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 7852 void CDataPathProperty::SetControl(COleControl *) 7853 void CReflectorWnd::SetControl(COleControl *) 7854 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 7855 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 7856 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 7857 int COleControl::SetControlSize(int,int) 7858 int COlePropertyPage::SetControlStatus(unsigned int,int) 7859 void CFileDialog::SetControlText(int,char const *) 7860 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 7861 void CTabCtrl::SetCurFocus(int) 7862 void COleCurrency::SetCurrency(long,long) 7863 void CColorDialog::SetCurrentColor(unsigned long) 7864 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 7865 void CWinApp::SetCurrentHandles() 7866 void CPreviewView::SetCurrentPage(unsigned int,int) 7867 int CComboBox::SetCurSel(int) 7868 int CListBox::SetCurSel(int) 7869 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 7870 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 7871 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 7872 int CTabCtrl::SetCurSel(int) 7873 HICON__ * CButton::SetCursor(HICON__ *) 7874 int CRectTracker::SetCursor(CWnd *,unsigned int)const 7875 HICON__ * CStatic::SetCursor(HICON__ *) 7876 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7877 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7878 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7879 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7880 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7881 int CMonthCalCtrl::SetDayState(int,unsigned long *) 7882 void COccManager::SetDefaultButton(CWnd *,int) 7883 void COleControlSite::SetDefaultButton(int) 7884 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 7885 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 7886 int CMenu::SetDefaultItem(unsigned int,int) 7887 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 7888 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 7889 void CFileDialog::SetDefExt(char const *) 7890 void CDialog::SetDefID(unsigned int) 7891 void CToolTipCtrl::SetDelayTime(unsigned int) 7892 void CToolTipCtrl::SetDelayTime(unsigned long,int) 7893 void CDumpContext::SetDepth(int) 7894 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 7895 void COlePropertyPage::SetDialogResource(void *) 7896 void CRecordset::SetDirtyFieldStatus(unsigned long) 7897 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 7898 int COleControlSite::SetDlgCtrlID(int) 7899 int CWnd::SetDlgCtrlID(int) 7900 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 7901 void CWnd::SetDlgItemInt(int,unsigned int,int) 7902 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 7903 void CWnd::SetDlgItemTextW(int,wchar_t const *) 7904 void CFrameWnd::SetDockState(CDockState const &) 7905 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 7906 int CImageList::SetDragCursorImage(int,CPoint) 7907 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 7908 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 7909 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 7910 int CComboBox::SetDroppedWidth(unsigned int) 7911 void CDataBoundProperty::SetDSCSite(COleControlSite *) 7912 int CComboBox::SetEditSel(int,int) 7913 int CComboBoxEx::SetEditSel(int,int) 7914 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 7915 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 7916 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 7917 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 7918 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 7919 void COleControl::SetEnabled(int) 7920 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 7921 int CEvent::SetEvent() 7922 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 7923 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 7924 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 7925 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 7926 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 7927 int CComboBox::SetExtendedUI(int) 7928 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 7929 int COleControlSite::SetExtent() 7930 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 7931 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 7932 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 7933 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 7934 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 7935 void CRecordset::SetFieldDirty(void *,int) 7936 void CIPAddressCtrl::SetFieldFocus(unsigned short) 7937 void CRecordset::SetFieldNull(void *,int) 7938 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 7939 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 7940 void CFieldExchange::SetFieldType(unsigned int) 7941 void CFile::SetFilePath(wchar_t const *) 7942 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 7943 void CPropertySheet::SetFinishText(wchar_t const *) 7944 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 7945 CWnd * COleControl::SetFocus() 7946 CWnd * COleControlSite::SetFocus(tagMSG *) 7947 CWnd * COleControlSite::SetFocus() 7948 CWnd * CWnd::SetFocus() 7949 long COleControlSite::XOleIPSite::SetFocus(int) 7950 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 7951 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 7952 void CFontHolder::SetFont(IFont *) 7953 void COleControl::SetFont(IFontDisp *) 7954 void CWnd::SetFont(CFont *,int) 7955 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 7956 void COleControl::SetForeColor(unsigned long) 7957 int CWnd::SetForegroundWindow() 7958 int CDateTimeCtrl::SetFormat(wchar_t const *) 7959 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 7960 void CPropertySection::SetFormatID(_GUID) 7961 void CPropertySet::SetFormatVersion(unsigned short) 7962 void CHtmlView::SetFullScreen(int) 7963 void CEdit::SetHandle(void *) 7964 void CSharedFile::SetHandle(void *,int) 7965 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 7966 void CHtmlView::SetHeight(long) 7967 void CToolBar::SetHeight(int) 7968 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 7969 void CDialog::SetHelpID(unsigned int) 7970 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 7971 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 7972 void CComboBox::SetHorizontalExtent(unsigned int) 7973 void CListBox::SetHorizontalExtent(int) 7974 void CDHtmlDialog::SetHostFlags(unsigned long) 7975 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 7976 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7977 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7978 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7979 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 7980 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 7981 int CHeaderCtrl::SetHotDivider(int) 7982 int CHeaderCtrl::SetHotDivider(CPoint) 7983 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 7984 int CListCtrl::SetHotItem(int) 7985 int CToolBarCtrl::SetHotItem(int) 7986 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 7987 unsigned long CListCtrl::SetHoverTime(unsigned long) 7988 HICON__ * CButton::SetIcon(HICON__ *) 7989 HICON__ * CStatic::SetIcon(HICON__ *) 7990 int CStatusBarCtrl::SetIcon(int,HICON__ *) 7991 HICON__ * CWnd::SetIcon(HICON__ *,int) 7992 int COleClientItem::SetIconicMetafile(void *) 7993 CSize CListCtrl::SetIconSpacing(int,int) 7994 CSize CListCtrl::SetIconSpacing(CSize) 7995 void CProperty::SetID(unsigned long) 7996 int CImageList::SetImageCount(unsigned int) 7997 CImageList * CComboBoxEx::SetImageList(CImageList *) 7998 CImageList * CHeaderCtrl::SetImageList(CImageList *) 7999 CImageList * CListCtrl::SetImageList(CImageList *,int) 8000 int CReBarCtrl::SetImageList(CImageList *) 8001 CImageList * CTabCtrl::SetImageList(CImageList *) 8002 CImageList * CToolBarCtrl::SetImageList(CImageList *) 8003 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 8004 int CToolBarCtrl::SetIndent(int) 8005 void CTreeCtrl::SetIndent(unsigned int) 8006 int CStatusBar::SetIndicators(unsigned int const *,int) 8007 void COleControl::SetInitialDataFormats() 8008 long CDocObjectServer::XPrint::SetInitialPageNum(long) 8009 void COleControl::SetInitialSize(int,int) 8010 void CControlBar::SetInPlaceOwner(CWnd *) 8011 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 8012 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 8013 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 8014 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 8015 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 8016 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 8017 int CHeaderCtrl::SetItem(int,_HD_ITEMW *) 8018 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 8019 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 8020 int CListCtrl::SetItem(tagLVITEMW const *) 8021 int CTabCtrl::SetItem(int,tagTCITEMW *) 8022 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 8023 int CTreeCtrl::SetItem(tagTVITEMW *) 8024 void CListCtrl::SetItemCount(int) 8025 int CListCtrl::SetItemCountEx(int,unsigned long) 8026 int CComboBox::SetItemData(int,unsigned long) 8027 int CListBox::SetItemData(int,unsigned long) 8028 int CListCtrl::SetItemData(int,unsigned long) 8029 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 8030 int CComboBox::SetItemDataPtr(int,void *) 8031 int CListBox::SetItemDataPtr(int,void *) 8032 int CTabCtrl::SetItemExtra(int) 8033 int CComboBox::SetItemHeight(int,unsigned int) 8034 int CListBox::SetItemHeight(int,unsigned int) 8035 short CTreeCtrl::SetItemHeight(short) 8036 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 8037 void COleServerItem::SetItemName(wchar_t const *) 8038 int CListCtrl::SetItemPosition(int,tagPOINT) 8039 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 8040 CSize CTabCtrl::SetItemSize(CSize) 8041 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 8042 int CListCtrl::SetItemState(int,tagLVITEMW *) 8043 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 8044 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 8045 int CListCtrl::SetItemText(int,int,wchar_t const *) 8046 int CTreeCtrl::SetItemText(_TREEITEM *,wchar_t const *) 8047 unsigned long CDC::SetLayout(unsigned long) 8048 void CHtmlView::SetLeft(long) 8049 void ATL::CSimpleStringT::SetLength(int) 8050 void ATL::CSimpleStringT::SetLength(int) 8051 void CFile::SetLength(unsigned __int64) 8052 void CInternetFile::SetLength(unsigned __int64) 8053 void CMemFile::SetLength(unsigned __int64) 8054 void COleStreamFile::SetLength(unsigned __int64) 8055 void CSocketFile::SetLength(unsigned __int64) 8056 void CEdit::SetLimitText(unsigned int) 8057 unsigned long CTreeCtrl::SetLineColor(unsigned long) 8058 int CSliderCtrl::SetLineSize(int) 8059 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 8060 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 8061 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 8062 void CArchive::SetLoadParams(unsigned int) 8063 unsigned long CComboBox::SetLocale(unsigned long) 8064 unsigned long CListBox::SetLocale(unsigned long) 8065 void CRecordset::SetLockingMode(unsigned int) 8066 void CDatabase::SetLoginTimeout(unsigned long) 8067 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8068 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8069 int CDC::SetMapMode(int) 8070 int CPreviewDC::SetMapMode(int) 8071 unsigned long CDC::SetMapperFlags(unsigned long) 8072 void CToolTipCtrl::SetMargin(tagRECT *) 8073 void CEdit::SetMargins(unsigned int,unsigned int) 8074 void CRichEditView::SetMargins(CRect const &) 8075 void CPrintInfo::SetMaxPage(unsigned int) 8076 int CMonthCalCtrl::SetMaxSelCount(int) 8077 int CToolBarCtrl::SetMaxTextRows(int) 8078 int CToolTipCtrl::SetMaxTipWidth(int) 8079 int CWnd::SetMenu(CMenu *) 8080 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8081 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8082 void CHtmlView::SetMenuBar(int) 8083 int CMenu::SetMenuContextHelpId(unsigned long) 8084 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 8085 int CMenu::SetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 8086 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 8087 void CFrameWnd::SetMessageText(unsigned int) 8088 void CFrameWnd::SetMessageText(wchar_t const *) 8089 void CStatusBarCtrl::SetMinHeight(int) 8090 void CPrintInfo::SetMinPage(unsigned int) 8091 int CTabCtrl::SetMinTabWidth(int) 8092 int CDC::SetMiterLimit(float) 8093 void CPropertyPage::SetModified(int) 8094 void CDocument::SetModifiedFlag(int) 8095 void COleControl::SetModifiedFlag(int) 8096 void COlePropertyPage::SetModifiedFlag(int) 8097 void CRichEditDoc::SetModifiedFlag(int) 8098 void CEdit::SetModify(int) 8099 void CRichEditCtrl::SetModify(int) 8100 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 8101 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 8102 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 8103 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 8104 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 8105 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 8106 int CMonthCalCtrl::SetMonthDelta(int) 8107 int CPropertySection::SetName(unsigned long,wchar_t const *) 8108 void COleControl::SetNotPermitted() 8109 void CCmdTarget::SetNotSupported() 8110 void COleControl::SetNotSupported() 8111 void CRecordset::SetNullFieldStatus(unsigned long) 8112 void CRecordset::SetNullParamStatus(unsigned long) 8113 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8114 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8115 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 8116 void CArchive::SetObjectSchema(unsigned int) 8117 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8118 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8119 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8120 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8121 void CHtmlView::SetOffline(int) 8122 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 8123 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 8124 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 8125 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 8126 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 8127 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 8128 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 8129 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 8130 int CHeaderCtrl::SetOrderArray(int,int *) 8131 void CPropertySet::SetOSVersion(unsigned long) 8132 void CDC::SetOutputDC(HDC__ *) 8133 void CMetaFileDC::SetOutputDC(HDC__ *) 8134 void CPreviewDC::SetOutputDC(HDC__ *) 8135 int CImageList::SetOverlayImage(int,int) 8136 CWnd * CReBarCtrl::SetOwner(CWnd *) 8137 void CToolBar::SetOwner(CWnd *) 8138 void CToolBarCtrl::SetOwner(CWnd *) 8139 void CWnd::SetOwner(CWnd *) 8140 void CTabCtrl::SetPadding(CSize) 8141 void COlePropertyPage::SetPageName(wchar_t const *) 8142 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 8143 int CSliderCtrl::SetPageSize(int) 8144 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 8145 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 8146 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 8147 void CStatusBar::SetPaneStyle(int,unsigned int) 8148 int CStatusBar::SetPaneText(int,wchar_t const *,int) 8149 void CRichEditView::SetPaperSize(CSize) 8150 int CRichEditCtrl::SetParaFormat(_paraformat &) 8151 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 8152 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 8153 void CRecordset::SetParamNull(int,int) 8154 CWnd * CWnd::SetParent(CWnd *) 8155 int CStatusBarCtrl::SetParts(int,int *) 8156 void CEdit::SetPasswordChar(wchar_t) 8157 void CDataPathProperty::SetPath(wchar_t const *) 8158 void CDocument::SetPathName(wchar_t const *,int) 8159 void COleDocument::SetPathName(wchar_t const *,int) 8160 void CRichEditDoc::SetPathName(wchar_t const *,int) 8161 void CHandleMap::SetPermanent(void *,CObject *) 8162 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 8163 unsigned long CDC::SetPixel(int,int,unsigned long) 8164 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 8165 int CDC::SetPixelV(int,int,unsigned long) 8166 int CDC::SetPixelV(tagPOINT,unsigned long) 8167 int CDC::SetPolyFillMode(int) 8168 int CProgressCtrl::SetPos(int) 8169 void CSliderCtrl::SetPos(int) 8170 int CSpinButtonCtrl::SetPos(int) 8171 int CSpinButtonCtrl::SetPos32(int) 8172 void COleIPFrameWnd::SetPreviewMode(int) 8173 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 8174 int COleClientItem::SetPrintDevice(tagPDW const *) 8175 void CEditView::SetPrinterFont(CFont *) 8176 int CPreviewView::SetPrintView(CView *) 8177 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 8178 void COleControlSite::SetProperty(long,unsigned short,...) 8179 void COleDispatchDriver::SetProperty(long,unsigned short,...) 8180 void CWnd::SetProperty(long,unsigned short,...) 8181 void COleControlSite::SetPropertyV(long,unsigned short,char *) 8182 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 8183 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 8184 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 8185 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 8186 int COlePropertyPage::SetPropText(wchar_t const *,short &) 8187 int COlePropertyPage::SetPropText(wchar_t const *,int &) 8188 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 8189 int COlePropertyPage::SetPropText(wchar_t const *,long &) 8190 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 8191 int COlePropertyPage::SetPropText(wchar_t const *,float &) 8192 int COlePropertyPage::SetPropText(wchar_t const *,double &) 8193 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 8194 long CWnd::SetProxy(IAccessibleProxy *) 8195 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 8196 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 8197 void CDatabase::SetQueryTimeout(unsigned long) 8198 void CCmdUI::SetRadio(int) 8199 void CTestCmdUI::SetRadio(int) 8200 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8201 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8202 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8203 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8204 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8205 void CProgressCtrl::SetRange(short,short) 8206 void CSliderCtrl::SetRange(int,int,int) 8207 void CSpinButtonCtrl::SetRange(short,short) 8208 void CProgressCtrl::SetRange32(int,int) 8209 void CSpinButtonCtrl::SetRange32(int,int) 8210 void CSliderCtrl::SetRangeMax(int,int) 8211 void CSliderCtrl::SetRangeMin(int,int) 8212 int CInternetFile::SetReadBufferSize(unsigned int) 8213 int CEdit::SetReadOnly(int) 8214 int CRichEditCtrl::SetReadOnly(int) 8215 void CEdit::SetRect(tagRECT const *) 8216 void CRichEditCtrl::SetRect(tagRECT const *) 8217 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 8218 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 8219 int COleControl::SetRectInContainer(tagRECT const *) 8220 void CEdit::SetRectNP(tagRECT const *) 8221 void CRgn::SetRectRgn(int,int,int,int) 8222 void CRgn::SetRectRgn(tagRECT const *) 8223 void CWnd::SetRedraw(int) 8224 void CHtmlView::SetRegisterAsBrowser(int) 8225 void CHtmlView::SetRegisterAsDropTarget(int) 8226 void CWinApp::SetRegistryKey(unsigned int) 8227 void CWinApp::SetRegistryKey(wchar_t const *) 8228 void COleMessageFilter::SetRetryReply(unsigned long) 8229 int CDC::SetROP2(int) 8230 void CSplitterWnd::SetRowInfo(int,int,int) 8231 void CToolBarCtrl::SetRows(int,int,tagRECT *) 8232 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 8233 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 8234 void CRecordset::SetRowsetSize(unsigned long) 8235 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 8236 void CPreviewView::SetScaledSize(unsigned int) 8237 void CPreviewDC::SetScaleRatio(int,int) 8238 void CScrollView::SetScaleToFitSize(tagSIZE) 8239 void CDockState::SetScreenSize(CSize &) 8240 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 8241 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 8242 int CScrollBar::SetScrollPos(int,int) 8243 int CWnd::SetScrollPos(int,int,int) 8244 void CScrollBar::SetScrollRange(int,int,int) 8245 void CWnd::SetScrollRange(int,int,int,int) 8246 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8247 void CSplitterWnd::SetScrollStyle(unsigned long) 8248 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8249 int CPropertySection::SetSectionName(wchar_t const *) 8250 void CEdit::SetSel(int,int,int) 8251 void CEdit::SetSel(unsigned long,int) 8252 int CListBox::SetSel(int,int) 8253 void CRichEditCtrl::SetSel(_charrange &) 8254 void CRichEditCtrl::SetSel(long,long) 8255 void CSliderCtrl::SetSelection(int,int) 8256 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 8257 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 8258 void CCheckListBox::SetSelectionCheck(int) 8259 int CListCtrl::SetSelectionMark(int) 8260 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8261 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8262 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8263 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8264 void CHtmlView::SetSilent(int) 8265 int CStatusBarCtrl::SetSimple(int) 8266 long CPrintDialogEx::SetSite(IUnknown *) 8267 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8268 void CByteArray::SetSize(int,int) 8269 void CDWordArray::SetSize(int,int) 8270 void CObArray::SetSize(int,int) 8271 void CPtrArray::SetSize(int,int) 8272 void CStringArray::SetSize(int,int) 8273 void CUIntArray::SetSize(int,int) 8274 void CWordArray::SetSize(int,int) 8275 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8276 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8277 void CSplitterWnd::SetSplitCursor(int) 8278 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8279 void CButton::SetState(int) 8280 void CRecordset::SetState(int,wchar_t const *,unsigned long) 8281 int CToolBarCtrl::SetState(int,unsigned int) 8282 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 8283 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8284 void CHtmlView::SetStatusBar(int) 8285 int CControlBar::SetStatusText(int) 8286 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8287 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8288 int CProgressCtrl::SetStep(int) 8289 void CArchive::SetStoreParams(unsigned int,unsigned int) 8290 int CDC::SetStretchBltMode(int) 8291 void ATL::CSimpleStringT::SetString(wchar_t const *) 8292 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 8293 void ATL::CSimpleStringT::SetString(char const *) 8294 void ATL::CSimpleStringT::SetString(char const *,int) 8295 void COleVariant::SetString(wchar_t const *,unsigned short) 8296 void CToolBarCtrl::SetStyle(unsigned long) 8297 void CDatabase::SetSynchronousMode(int) 8298 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8299 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8300 int CDialogTemplate::SetSystemFont(unsigned short) 8301 int CEdit::SetTabStops(int const &) 8302 int CEdit::SetTabStops(int,int *) 8303 void CEdit::SetTabStops() 8304 void CEditView::SetTabStops(int) 8305 int CListBox::SetTabStops(int const &) 8306 int CListBox::SetTabStops(int,int *) 8307 void CListBox::SetTabStops() 8308 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8309 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8310 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8311 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8312 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 8313 void CCmdUI::SetText(wchar_t const *) 8314 void COleCmdUI::SetText(wchar_t const *) 8315 void COleControl::SetText(wchar_t const *) 8316 int CStatusBarCtrl::SetText(wchar_t const *,int,int) 8317 void CStatusCmdUI::SetText(wchar_t const *) 8318 void CTestCmdUI::SetText(wchar_t const *) 8319 void CToolCmdUI::SetText(wchar_t const *) 8320 unsigned int CDC::SetTextAlign(unsigned int) 8321 int CListCtrl::SetTextBkColor(unsigned long) 8322 int CDC::SetTextCharacterExtra(int) 8323 unsigned long CDC::SetTextColor(unsigned long) 8324 int CListCtrl::SetTextColor(unsigned long) 8325 unsigned long CPreviewDC::SetTextColor(unsigned long) 8326 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8327 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8328 int CDC::SetTextJustification(int,int) 8329 int CRichEditCtrl::SetTextMode(unsigned int) 8330 void CHtmlView::SetTheaterMode(int) 8331 int CWinThread::SetThreadPriority(int) 8332 int CSliderCtrl::SetTic(int) 8333 void CSliderCtrl::SetTicFreq(int) 8334 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8335 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8336 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8337 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8338 void CToolTipCtrl::SetTipBkColor(unsigned long) 8339 int CSliderCtrl::SetTipSide(int) 8340 void CStatusBarCtrl::SetTipText(int,wchar_t const *) 8341 void CToolTipCtrl::SetTipTextColor(unsigned long) 8342 void CDocument::SetTitle(wchar_t const *) 8343 void CFrameWnd::SetTitle(wchar_t const *) 8344 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 8345 void CRichEditDoc::SetTitle(wchar_t const *) 8346 int CToolTipCtrl::SetTitle(unsigned int,wchar_t const *) 8347 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8348 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8349 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8350 void CHtmlView::SetToolBar(int) 8351 void CToolTipCtrl::SetToolInfo(tagTOOLINFOW *) 8352 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8353 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8354 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8355 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8356 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8357 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8358 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8359 void CHtmlView::SetTop(long) 8360 int CComboBox::SetTopIndex(int) 8361 int CListBox::SetTopIndex(int) 8362 void CPreviewDC::SetTopLeftOffset(CSize) 8363 void CProperty::SetType(unsigned long) 8364 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8365 void CRecordset::SetUpdateMethod() 8366 void CThreadSlotData::SetValue(int,void *) 8367 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8368 CSize CDC::SetViewportExt(tagSIZE) 8369 CSize CDC::SetViewportExt(int,int) 8370 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8371 CSize CMetaFileDC::SetViewportExt(int,int) 8372 CSize CPreviewDC::SetViewportExt(int,int) 8373 CPoint CDC::SetViewportOrg(tagPOINT) 8374 CPoint CDC::SetViewportOrg(int,int) 8375 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8376 CPoint CMetaFileDC::SetViewportOrg(int,int) 8377 CPoint CPreviewDC::SetViewportOrg(int,int) 8378 void CHtmlView::SetVisible(int) 8379 void CHtmlView::SetWidth(long) 8380 int CWnd::SetWindowContextHelpId(unsigned long) 8381 CSize CDC::SetWindowExt(tagSIZE) 8382 CSize CDC::SetWindowExt(int,int) 8383 CSize CPreviewDC::SetWindowExt(int,int) 8384 CPoint CDC::SetWindowOrg(int,int) 8385 CPoint CDC::SetWindowOrg(tagPOINT) 8386 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 8387 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8388 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 8389 int CWnd::SetWindowRgn(HRGN__ *,int) 8390 void COleControlSite::SetWindowTextW(wchar_t const *) 8391 void CWnd::SetWindowTextW(wchar_t const *) 8392 void CPropertySheet::SetWizardButtons(unsigned long) 8393 void CPropertySheet::SetWizardMode() 8394 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 8395 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 8396 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 8397 void CListCtrl::SetWorkAreas(int,tagRECT *) 8398 int CInternetFile::SetWriteBufferSize(unsigned int) 8399 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 8400 long CDocObjectServer::XOleDocumentView::Show(int) 8401 long COlePropertyPage::XPropertyPage::Show(unsigned int) 8402 void CDockBar::ShowAll(int) 8403 int CReBarCtrl::ShowBand(unsigned int,int) 8404 void CWnd::ShowCaret() 8405 long CRichEditCntrItem::ShowContainerUI(int) 8406 long CRichEditView::ShowContainerUI(int) 8407 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 8408 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8409 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8410 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 8411 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 8412 void CComboBox::ShowDropDown(int) 8413 long COleClientItem::XOleClientSite::ShowObject() 8414 long COleControlSite::XOleClientSite::ShowObject() 8415 void CWnd::ShowOwnedPopups(int) 8416 void CFrameWnd::ShowOwnedWindows(int) 8417 long COleControlSite::XOleControlSite::ShowPropertyFrame() 8418 void CScrollBar::ShowScrollBar(int) 8419 void CWnd::ShowScrollBar(unsigned int,int) 8420 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8421 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8422 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 8423 int COleControlSite::ShowWindow(int) 8424 int CWnd::ShowWindow(int) 8425 int CAsyncSocket::ShutDown(int) 8426 tagSIZE const CScrollView::sizeDefault 8427 int CMonthCalCtrl::SizeMinReq(int) 8428 void CBitmapButton::SizeToContent() 8429 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 8430 int CReBarCtrl::SizeToRect(CRect &) 8431 long CEnumArray::XEnumVOID::Skip(unsigned long) 8432 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 8433 int CAsyncSocket::Socket(int,long,int,int) 8434 int CTreeCtrl::SortChildren(_TREEITEM *) 8435 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 8436 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 8437 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 8438 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 8439 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 8440 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 8441 int CSplitterWnd::SplitColumn(int) 8442 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 8443 int CSplitterWnd::SplitRow(int) 8444 int CDC::StartDocW(_DOCINFOW *) 8445 int CDC::StartDocW(wchar_t const *) 8446 void CDockContext::StartDrag(CPoint) 8447 int CDC::StartPage() 8448 void CDockContext::StartResize(int,CPoint) 8449 void CSplitterWnd::StartTracking(int) 8450 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 8451 int CProgressCtrl::StepIt() 8452 int CAnimateCtrl::Stop() 8453 void CHtmlView::Stop() 8454 void CRichEditCtrl::StopGroupTyping() 8455 void CSplitterWnd::StopTracking(int) 8456 void CRuntimeClass::Store(CArchive &)const 8457 void CRecordset::StoreFields() 8458 void CRichEditView::Stream(CArchive &,int) 8459 long CRichEditCtrl::StreamIn(int,_editstream &) 8460 long CRichEditCtrl::StreamOut(int,_editstream &) 8461 void CDockContext::Stretch(CPoint) 8462 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 8463 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8464 int ATL::CSimpleStringT::StringLength(char const *) 8465 int ATL::CSimpleStringT::StringLength(wchar_t const *) 8466 int ATL::CSimpleStringT::StringLength(char const *) 8467 int CDC::StrokeAndFillPath() 8468 int CDC::StrokePath() 8469 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 8470 int CWnd::SubclassWindow(HWND__ *) 8471 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 8472 int COleDocObjectItem::SupportsIPrint() 8473 unsigned long CWinThread::SuspendThread() 8474 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8475 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 8476 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 8477 CSize CDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 8478 CSize CDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8479 CSize CMetaFileDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 8480 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8481 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 8482 void CRichEditView::TextNotFound(wchar_t const *) 8483 int CDC::TextOutW(int,int,ATL::CStringT > > const &) 8484 int CDC::TextOutW(int,int,wchar_t const *,int) 8485 int CMetaFileDC::TextOutW(int,int,ATL::CStringT > > const &) 8486 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 8487 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 8488 void CDatabase::ThrowDBException(short) 8489 void CRecordset::ThrowDBException(short,void *) 8490 void CFileException::ThrowErrno(int,wchar_t const *) 8491 void COleControl::ThrowError(long,unsigned int,unsigned int) 8492 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 8493 void ATL::CSimpleStringT::ThrowMemoryException() 8494 void ATL::CSimpleStringT::ThrowMemoryException() 8495 void CFileException::ThrowOsError(long,wchar_t const *) 8496 void CDockContext::ToggleDocking() 8497 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 8498 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 8499 COleVariant CDataSourceControl::ToVariant(int) 8500 ATL::CTraceCategory traceAppMsg 8501 ATL::CTraceCategory traceCmdRouting 8502 ATL::CTraceCategory traceDatabase 8503 ATL::CTraceCategory traceDumpContext 8504 void CDBException::TraceErrorMessage(wchar_t const *)const 8505 ATL::CTraceCategory traceGdi 8506 ATL::CTraceCategory traceHtml 8507 ATL::CTraceCategory traceInternet 8508 ATL::CTraceCategory traceKernel 8509 ATL::CTraceCategory traceMemory 8510 ATL::CTraceCategory traceMultiApp 8511 ATL::CTraceCategory traceOle 8512 ATL::CTraceCategory traceSocket 8513 ATL::CTraceCategory traceUser 8514 ATL::CTraceCategory traceWinMsg 8515 int CDockContext::Track() 8516 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 8517 void CSplitterWnd::TrackColumnSize(int,int) 8518 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 8519 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 8520 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 8521 void CSplitterWnd::TrackRowSize(int,int) 8522 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 8523 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8524 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 8525 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8526 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8527 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 8528 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 8529 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 8530 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 8531 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 8532 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 8533 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 8534 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 8535 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8536 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8537 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 8538 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 8539 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 8540 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 8541 ATL::CStringT > > & ATL::CStringT > >::Trim() 8542 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 8543 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 8544 ATL::CStringT > > & ATL::CStringT > >::Trim() 8545 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 8546 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 8547 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8548 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 8549 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 8550 ATL::CStringT > > & ATL::CStringT > >::TrimLeft() 8551 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 8552 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 8553 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8554 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 8555 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 8556 ATL::CStringT > > & ATL::CStringT > >::TrimRight() 8557 void ATL::CSimpleStringT::Truncate(int) 8558 void ATL::CSimpleStringT::Truncate(int) 8559 long CDocObjectServer::XOleDocumentView::UIActivate(int) 8560 void COccManager::UIActivateControl(CWnd *) 8561 long COleControl::XOleInPlaceObject::UIDeactivate() 8562 long COleServerDoc::XOleInPlaceObject::UIDeactivate() 8563 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 8564 void COleSafeArray::UnaccessData() 8565 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 8566 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 8567 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 8568 long COleControl::XOleObject::Unadvise(unsigned long) 8569 long COleServerDoc::XOleObject::Unadvise(unsigned long) 8570 long COleServerItem::XOleObject::Unadvise(unsigned long) 8571 void CRecordset::UnbindFieldsForUpdate() 8572 long COleControl::XOleCache::Uncache(unsigned long) 8573 int CEdit::Undo() 8574 int CRichEditCtrl::Undo() 8575 long COleControl::XViewObject::Unfreeze(unsigned long) 8576 int CCriticalSection::Unlock() 8577 int CEvent::Unlock() 8578 int CMultiLock::Unlock(long,long *) 8579 int CMultiLock::Unlock() 8580 int CMutex::Unlock() 8581 void COleSafeArray::Unlock() 8582 int CSemaphore::Unlock(long,long *) 8583 int CSemaphore::Unlock() 8584 int CSingleLock::Unlock(long,long *) 8585 int CSingleLock::Unlock() 8586 void CTypeLibCache::Unlock() 8587 void ATL::CSimpleStringT::UnlockBuffer() 8588 void ATL::CSimpleStringT::UnlockBuffer() 8589 void CEditView::UnlockBuffer()const 8590 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 8591 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 8592 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 8593 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 8594 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 8595 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 8596 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 8597 void CWnd::UnlockWindowUpdate() 8598 int CGdiObject::UnrealizeObject() 8599 int COleObjectFactory::Unregister() 8600 int COleTemplateServer::Unregister() 8601 int CWinApp::Unregister() 8602 int COleObjectFactory::UnregisterAll() 8603 void CDocManager::UnregisterShellFileTypes() 8604 void CWinApp::UnregisterShellFileTypes() 8605 HWND__ * CWnd::UnsubclassWindow() 8606 int CListCtrl::Update(int) 8607 int CRecordset::Update() 8608 void CToolTipCtrl::Update() 8609 long CDocObjectServer::XOleObject::Update() 8610 long COleControl::XOleObject::Update() 8611 long COleServerDoc::XOleObject::Update() 8612 long COleServerItem::XOleObject::Update() 8613 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 8614 void CStatusBar::UpdateAllPanes(int,int) 8615 void CDocument::UpdateAllViews(CView *,long,CObject *) 8616 void CScrollView::UpdateBars() 8617 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 8618 void CDC::UpdateColors() 8619 long CDataSourceControl::UpdateControls() 8620 long CDataSourceControl::UpdateCursor() 8621 void CMemoryState::UpdateData() 8622 int CWnd::UpdateData(int) 8623 void CWnd::UpdateDialogControls(CCmdTarget *,int) 8624 void CDocument::UpdateFrameCounts() 8625 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 8626 int CRecordset::UpdateInsertDelete() 8627 void COleClientItem::UpdateItemType() 8628 int COleClientItem::UpdateLink() 8629 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 8630 void CRecentFileList::UpdateMenu(CCmdUI *) 8631 void COleDocument::UpdateModifiedFlag() 8632 void CRichEditDoc::UpdateModifiedFlag() 8633 void CRichEditDoc::UpdateObjectCache() 8634 void CWinApp::UpdatePrinterSelection(int) 8635 int COleObjectFactory::UpdateRegistry(int) 8636 void COleObjectFactory::UpdateRegistry(wchar_t const *) 8637 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 8638 int COleObjectFactory::UpdateRegistryAll(int) 8639 void CDockContext::UpdateState(int *,int) 8640 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 8641 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 8642 long CBrowserControlSite::UpdateUI() 8643 long CDHtmlDialog::UpdateUI() 8644 long CHtmlControlSite::XDocHostUIHandler::UpdateUI() 8645 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 8646 void COleLinkingDoc::UpdateVisibleLock(int,int) 8647 void CWnd::UpdateWindow() 8648 void CWnd::ValidateRect(tagRECT const *) 8649 void CWnd::ValidateRgn(CRgn *) 8650 void CDatabase::VerifyConnect() 8651 unsigned long CRecordset::VerifyCursorSupport() 8652 void CRecordset::VerifyDriverBehavior() 8653 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 8654 int COleObjectFactory::VerifyUserLicense() 8655 int CListBox::VKeyToItem(unsigned int,unsigned int) 8656 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 8657 int CDC::WidenPath() 8658 int COleControl::WillAmbientsBeValidDuringLoad() 8659 CWnd * CWnd::WindowFromPoint(tagPOINT) 8660 long CControlBar::WindowProc(unsigned int,unsigned int,long) 8661 long COleControl::WindowProc(unsigned int,unsigned int,long) 8662 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 8663 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 8664 long CReBar::WindowProc(unsigned int,unsigned int,long) 8665 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 8666 long CWnd::WindowProc(unsigned int,unsigned int,long) 8667 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 8668 void CWnd::WinHelpInternal(unsigned long,unsigned int) 8669 void CWinApp::WinHelpW(unsigned long,unsigned int) 8670 void CWnd::WinHelpW(unsigned long,unsigned int) 8671 CWnd const CWnd::wndBottom 8672 CWnd const CWnd::wndNoTopMost 8673 CWnd const CWnd::wndTop 8674 CWnd const CWnd::wndTopMost 8675 void CRichEditView::WrapChanged() 8676 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 8677 void CArchive::Write(void const *,unsigned int) 8678 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 8679 void CFile::Write(void const *,unsigned int) 8680 void CGopherFile::Write(void const *,unsigned int) 8681 int CImageList::Write(CArchive *) 8682 void CInternetFile::Write(void const *,unsigned int) 8683 void CMemFile::Write(void const *,unsigned int) 8684 void COleStreamFile::Write(void const *,unsigned int) 8685 void CSocketFile::Write(void const *,unsigned int) 8686 void CStdioFile::Write(void const *,unsigned int) 8687 void CArchive::WriteClass(CRuntimeconst *) 8688 void CArchive::WriteCount(unsigned long) 8689 void COleClientItem::WriteItem(CArchive &) 8690 void COleClientItem::WriteItemCompound(CArchive &) 8691 void COleClientItem::WriteItemFlat(CArchive &) 8692 void CRecentFileList::WriteList() 8693 int CPropertySection::WriteNameDictToStream(IStream *) 8694 void CArchive::WriteObject(CObject const *) 8695 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 8696 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 8697 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 8698 void CArchive::WriteString(wchar_t const *) 8699 void CGopherFile::WriteString(wchar_t const *) 8700 void CInternetFile::WriteString(wchar_t const *) 8701 void CStdioFile::WriteString(wchar_t const *) 8702 void CEditView::WriteToArchive(CArchive &) 8703 int CProperty::WriteToStream(IStream *) 8704 int CPropertySection::WriteToStream(IStream *) 8705 int CPropertySet::WriteToStream(IStream *) 8706 _AFX_DAO_STATE::_AFX_DAO_STATE() 8707 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 8708 CDaoException::CDaoException() 8709 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 8710 CDaoIndexInfo::CDaoIndexInfo() 8711 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 8712 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 8713 CDaoRecordView::CDaoRecordView(unsigned int) 8714 CDaoRecordView::CDaoRecordView(wchar_t const *) 8715 CDaoRelationInfo::CDaoRelationInfo() 8716 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 8717 CDaoWorkspace::CDaoWorkspace() 8718 _AFX_DAO_STATE::~_AFX_DAO_STATE() 8719 CDaoDatabase::~CDaoDatabase() 8720 CDaoException::~CDaoException() 8721 CDaoIndexInfo::~CDaoIndexInfo() 8722 CDaoQueryDef::~CDaoQueryDef() 8723 CDaoRecordset::~CDaoRecordset() 8724 CDaoRecordView::~CDaoRecordView() 8725 CDaoRelationInfo::~CDaoRelationInfo() 8726 CDaoTableDef::~CDaoTableDef() 8727 CDaoWorkspace::~CDaoWorkspace() 8728 void CDaoRecordset::AddNew() 8729 void AfxDaoCheck(long,char const *,char const *,int,int,int) 8730 _DAODBEngine * AfxDaoGetEngine() 8731 void AfxDaoInit() 8732 void AfxDaoTerm() 8733 void AfxDaoTrace(long,char const *,char const *,int) 8734 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 8735 _AFX_DAO_STATE * AfxGetDaoState() 8736 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 8737 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 8738 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8739 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 8740 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 8741 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 8742 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 8743 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 8744 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 8745 void AfxThrowDaoException(int,long) 8746 void CDaoRecordset::AllocCache() 8747 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 8748 void CDaoRecordset::AllocDatabase() 8749 void AllocLongBinary(CLongBinary &,unsigned long) 8750 void CDaoQueryDef::Append() 8751 void CDaoTableDef::Append() 8752 void CDaoWorkspace::Append() 8753 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 8754 void CDaoDatabase::AssertValid()const 8755 void CDaoQueryDef::AssertValid()const 8756 void CDaoRecordset::AssertValid()const 8757 void CDaoRecordView::AssertValid()const 8758 void CDaoTableDef::AssertValid()const 8759 void CDaoWorkspace::AssertValid()const 8760 void CDaoWorkspace::BeginTrans() 8761 void CDaoRecordset::BindFields() 8762 void CDaoRecordset::BindParameters() 8763 void CDaoRecordset::BuildParameterList() 8764 void CDaoRecordset::BuildSelectList() 8765 void CDaoRecordset::BuildSQL() 8766 int CDaoRecordset::CanAppend()const 8767 int CDaoRecordset::CanBookmark() 8768 void CDaoRecordset::CancelUpdate() 8769 int CDaoRecordset::CanRestart() 8770 int CDaoRecordset::CanScroll()const 8771 int CDaoDatabase::CanTransact() 8772 int CDaoRecordset::CanTransact() 8773 int CDaoDatabase::CanUpdate() 8774 int CDaoQueryDef::CanUpdate() 8775 int CDaoRecordset::CanUpdate()const 8776 int CDaoTableDef::CanUpdate() 8777 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 8778 void CDaoRecordset::ClearFieldStatusFlags() 8779 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 8780 void CDaoDatabase::Close() 8781 void CDaoQueryDef::Close() 8782 void CDaoRecordset::Close() 8783 void CDaoTableDef::Close() 8784 void CDaoWorkspace::Close() 8785 void CDaoWorkspace::CommitTrans() 8786 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 8787 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 8788 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 8789 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 8790 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 8791 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 8792 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 8793 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 8794 void CDaoTableDef::CreateField(CDaoFieldInfo &) 8795 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 8796 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 8797 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 8798 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 8799 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8800 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8801 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8802 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 8803 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 8804 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8805 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8806 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 8807 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 8808 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 8809 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 8810 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 8811 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 8812 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 8813 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 8814 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 8815 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 8816 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 8817 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 8818 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 8819 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 8820 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 8821 void CDaoRecordset::Delete() 8822 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 8823 void CDaoTableDef::DeleteField(int) 8824 void CDaoTableDef::DeleteField(wchar_t const *) 8825 void CDaoTableDef::DeleteIndex(int) 8826 void CDaoTableDef::DeleteIndex(wchar_t const *) 8827 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 8828 void CDaoDatabase::DeleteRelation(wchar_t const *) 8829 void CDaoDatabase::DeleteTableDef(wchar_t const *) 8830 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 8831 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 8832 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 8833 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 8834 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 8835 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 8836 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 8837 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 8838 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 8839 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 8840 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 8841 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 8842 void CDaoDatabase::Dump(CDumpContext &)const 8843 void CDaoDatabaseInfo::Dump(CDumpContext &)const 8844 void CDaoErrorInfo::Dump(CDumpContext &)const 8845 void CDaoFieldInfo::Dump(CDumpContext &)const 8846 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 8847 void CDaoIndexInfo::Dump(CDumpContext &)const 8848 void CDaoParameterInfo::Dump(CDumpContext &)const 8849 void CDaoQueryDef::Dump(CDumpContext &)const 8850 void CDaoQueryDefInfo::Dump(CDumpContext &)const 8851 void CDaoRecordset::Dump(CDumpContext &)const 8852 void CDaoRecordView::Dump(CDumpContext &)const 8853 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 8854 void CDaoRelationInfo::Dump(CDumpContext &)const 8855 void CDaoTableDef::Dump(CDumpContext &)const 8856 void CDaoTableDefInfo::Dump(CDumpContext &)const 8857 void CDaoWorkspace::Dump(CDumpContext &)const 8858 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 8859 void CDaoRecordset::Edit() 8860 void CDaoDatabase::Execute(wchar_t const *,int) 8861 void CDaoQueryDef::Execute(int) 8862 void CDaoRecordset::FillCache(long *,COleVariant *) 8863 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 8864 void CDaoException::FillErrorInfo() 8865 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 8866 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 8867 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 8868 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 8869 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 8870 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 8871 int CDaoRecordset::Find(long,wchar_t const *) 8872 int CDaoRecordset::FindFirst(wchar_t const *) 8873 int CDaoRecordset::FindLast(wchar_t const *) 8874 int CDaoRecordset::FindNext(wchar_t const *) 8875 int CDaoRecordset::FindPrev(wchar_t const *) 8876 void CDaoRecordset::Fixup() 8877 void CDaoRecordset::FreeCache() 8878 long CDaoRecordset::GetAbsolutePosition() 8879 long CDaoTableDef::GetAttributes() 8880 COleVariant CDaoRecordset::GetBookmark() 8881 long CDaoRecordset::GetCacheSize() 8882 COleVariant CDaoRecordset::GetCacheStart() 8883 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 8884 ATL::CStringT > > CDaoDatabase::GetConnect() 8885 ATL::CStringT > > CDaoQueryDef::GetConnect() 8886 ATL::CStringT > > CDaoTableDef::GetConnect() 8887 ATL::CStringT > > CDaoRecordset::GetCurrentIndex() 8888 void CDaoRecordset::GetDataAndFixupNulls() 8889 short CDaoWorkspace::GetDatabaseCount() 8890 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 8891 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 8892 ATL::COleDateTime CDaoQueryDef::GetDateCreated() 8893 ATL::COleDateTime CDaoRecordset::GetDateCreated() 8894 ATL::COleDateTime CDaoTableDef::GetDateCreated() 8895 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated() 8896 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated() 8897 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated() 8898 ATL::CStringT > > CDaoRecordset::GetDefaultDBName() 8899 ATL::CStringT > > CDaoRecordset::GetDefaultSQL() 8900 short CDaoRecordset::GetEditMode() 8901 short CDaoException::GetErrorCount() 8902 void CDaoException::GetErrorInfo(int) 8903 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 8904 short CDaoQueryDef::GetFieldCount() 8905 short CDaoRecordset::GetFieldCount() 8906 short CDaoTableDef::GetFieldCount() 8907 int CDaoRecordset::GetFieldIndex(void *) 8908 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8909 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8910 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8911 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8912 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 8913 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 8914 unsigned long CDaoRecordset::GetFieldLength(int) 8915 COleVariant CDaoRecordset::GetFieldValue(int) 8916 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 8917 void CDaoRecordset::GetFieldValue(int,COleVariant &) 8918 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 8919 short CDaoRecordset::GetIndexCount() 8920 short CDaoTableDef::GetIndexCount() 8921 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8922 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 8923 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 8924 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 8925 ATL::CStringT > > CDaoWorkspace::GetIniPath() 8926 int CDaoWorkspace::GetIsolateODBCTrans() 8927 COleVariant CDaoRecordset::GetLastModifiedBookmark() 8928 int CDaoRecordset::GetLockingMode() 8929 short CDaoWorkspace::GetLoginTimeout() 8930 AFX_MSGMAP const * CDaoRecordView::GetMessageMap()const 8931 ATL::CStringT > > CDaoDatabase::GetName() 8932 ATL::CStringT > > CDaoQueryDef::GetName() 8933 ATL::CStringT > > CDaoRecordset::GetName() 8934 ATL::CStringT > > CDaoTableDef::GetName() 8935 ATL::CStringT > > CDaoWorkspace::GetName() 8936 short CDaoQueryDef::GetODBCTimeout() 8937 short CDaoQueryDef::GetParameterCount() 8938 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 8939 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 8940 COleVariant CDaoQueryDef::GetParamValue(int) 8941 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 8942 COleVariant CDaoRecordset::GetParamValue(int) 8943 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 8944 float CDaoRecordset::GetPercentPosition() 8945 short CDaoDatabase::GetQueryDefCount() 8946 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 8947 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 8948 short CDaoDatabase::GetQueryTimeout() 8949 long CDaoRecordset::GetRecordCount() 8950 long CDaoTableDef::GetRecordCount() 8951 long CDaoDatabase::GetRecordsAffected() 8952 long CDaoQueryDef::GetRecordsAffected() 8953 short CDaoDatabase::GetRelationCount() 8954 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 8955 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 8956 int CDaoQueryDef::GetReturnsRecords() 8957 CRuntime* CDaoDatabase::GetRuntimeClass()const 8958 CRuntime* CDaoException::GetRuntimeClass()const 8959 CRuntime* CDaoQueryDef::GetRuntimeClass()const 8960 CRuntime* CDaoRecordset::GetRuntimeClass()const 8961 CRuntime* CDaoRecordView::GetRuntimeClass()const 8962 CRuntime* CDaoTableDef::GetRuntimeClass()const 8963 CRuntime* CDaoWorkspace::GetRuntimeClass()const 8964 ATL::CStringT > > CDaoTableDef::GetSourceTableName() 8965 ATL::CStringT > > CDaoQueryDef::GetSQL() 8966 ATL::CStringT > > CDaoRecordset::GetSQL()const 8967 short CDaoDatabase::GetTableDefCount() 8968 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 8969 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 8970 CRuntime* CDaoDatabase::GetThisClass() 8971 CRuntime* CDaoException::GetThisClass() 8972 CRuntime* CDaoQueryDef::GetThisClass() 8973 CRuntime* CDaoRecordset::GetThisClass() 8974 CRuntime* CDaoRecordView::GetThisClass() 8975 CRuntime* CDaoTableDef::GetThisClass() 8976 CRuntime* CDaoWorkspace::GetThisClass() 8977 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap() 8978 short CDaoQueryDef::GetType() 8979 short CDaoRecordset::GetType() 8980 ATL::CStringT > > CDaoWorkspace::GetUserNameW() 8981 ATL::CStringT > > CDaoRecordset::GetValidationRule() 8982 ATL::CStringT > > CDaoTableDef::GetValidationRule() 8983 ATL::CStringT > > CDaoRecordset::GetValidationText() 8984 ATL::CStringT > > CDaoTableDef::GetValidationText() 8985 ATL::CStringT > > CDaoDatabase::GetVersion() 8986 ATL::CStringT > > CDaoWorkspace::GetVersion() 8987 short CDaoWorkspace::GetWorkspaceCount() 8988 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 8989 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 8990 void CDaoWorkspace::Idle(int) 8991 void CDaoWorkspace::InitDatabasesCollection() 8992 void CDaoException::InitErrorsCollection() 8993 void CDaoQueryDef::InitFieldsCollection() 8994 void CDaoRecordset::InitFieldsCollection() 8995 void CDaoTableDef::InitFieldsCollection() 8996 void CDaoWorkspace::InitializeEngine() 8997 void CDaoRecordset::InitIndexesCollection() 8998 void CDaoTableDef::InitIndexesCollection() 8999 void CDaoQueryDef::InitParametersCollection() 9000 void CDaoDatabase::InitQueryDefsCollection() 9001 void CDaoDatabase::InitRelationsCollection() 9002 void CDaoDatabase::InitTableDefsCollection() 9003 void CDaoDatabase::InitWorkspace() 9004 void CDaoWorkspace::InitWorkspacesCollection() 9005 int CDaoRecordset::IsBOF()const 9006 int CDaoRecordset::IsDeleted()const 9007 int CDaoRecordset::IsEOF()const 9008 int CDaoRecordset::IsFieldDirty(void *) 9009 int CDaoRecordset::IsFieldNull(void *) 9010 int CDaoRecordset::IsFieldNullable(void *) 9011 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 9012 int CDaoRecordset::IsFieldStatusNull(unsigned int) 9013 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 9014 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 9015 int CDaoRecordset::IsMatch() 9016 int CDaoWorkspace::IsNew()const 9017 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 9018 int CDaoRecordView::IsOnFirstRecord() 9019 int CDaoRecordView::IsOnLastRecord() 9020 int CDaoDatabase::IsOpen()const 9021 int CDaoQueryDef::IsOpen()const 9022 int CDaoRecordset::IsOpen()const 9023 int CDaoTableDef::IsOpen()const 9024 int CDaoWorkspace::IsOpen()const 9025 int CDaoFieldExchange::IsValidOperation() 9026 void CDaoRecordset::LoadFields() 9027 void CDaoRecordset::MarkForAddNew() 9028 void CDaoRecordset::MarkForEdit() 9029 void CDaoRecordset::Move(long) 9030 void CDaoRecordset::MoveFirst() 9031 void CDaoRecordset::MoveLast() 9032 void CDaoRecordset::MoveNext() 9033 void CDaoRecordset::MovePrev() 9034 void CDaoRecordView::OnInitialUpdate() 9035 void CDaoRecordView::OnMove(int,int) 9036 int CDaoRecordView::OnMove(unsigned int) 9037 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 9038 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 9039 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 9040 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 9041 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 9042 void CDaoQueryDef::Open(wchar_t const *) 9043 void CDaoRecordset::Open(int,wchar_t const *,int) 9044 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 9045 void CDaoRecordset::Open(CDaoTableDef *,int,int) 9046 void CDaoTableDef::Open(wchar_t const *) 9047 void CDaoWorkspace::Open(wchar_t const *) 9048 void CDaoTableDef::RefreshLink() 9049 void CDaoWorkspace::RepairDatabase(wchar_t const *) 9050 void CDaoRecordset::Requery() 9051 void CDaoWorkspace::Rollback() 9052 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 9053 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 9054 void CDaoRecordset::SetAbsolutePosition(long) 9055 void CDaoTableDef::SetAttributes(long) 9056 void CDaoRecordset::SetBookmark(COleVariant) 9057 void CDaoRecordset::SetCacheSize(long) 9058 void CDaoRecordset::SetCacheStart(COleVariant) 9059 void CDaoQueryDef::SetConnect(wchar_t const *) 9060 void CDaoTableDef::SetConnect(wchar_t const *) 9061 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 9062 void CDaoRecordset::SetCursorAttributes() 9063 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 9064 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 9065 void CDaoRecordset::SetDirtyFields() 9066 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 9067 void CDaoRecordset::SetFieldDirty(void *,int) 9068 void CDaoRecordset::SetFieldNull(void *,int) 9069 void CDaoFieldExchange::SetFieldType(unsigned int) 9070 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 9071 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 9072 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 9073 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 9074 void CDaoRecordset::SetFieldValueNull(int) 9075 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 9076 void CDaoWorkspace::SetIniPath(wchar_t const *) 9077 void CDaoWorkspace::SetIsolateODBCTrans(int) 9078 void CDaoRecordset::SetLockingMode(int) 9079 void CDaoWorkspace::SetLoginTimeout(short) 9080 void CDaoQueryDef::SetName(wchar_t const *) 9081 void CDaoTableDef::SetName(wchar_t const *) 9082 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 9083 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 9084 void CDaoRecordset::SetNullFieldStatus(unsigned int) 9085 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 9086 void CDaoQueryDef::SetODBCTimeout(short) 9087 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 9088 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 9089 void CDaoRecordset::SetParamValue(int,COleVariant const &) 9090 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 9091 void CDaoQueryDef::SetParamValueNull(int) 9092 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 9093 void CDaoRecordset::SetParamValueNull(int) 9094 void CDaoRecordset::SetParamValueNull(wchar_t const *) 9095 void CDaoRecordset::SetPercentPosition(float) 9096 void CDaoDatabase::SetQueryTimeout(short) 9097 void CDaoQueryDef::SetReturnsRecords(int) 9098 void CDaoTableDef::SetSourceTableName(wchar_t const *) 9099 void CDaoQueryDef::SetSQL(wchar_t const *) 9100 void CDaoTableDef::SetValidationRule(wchar_t const *) 9101 void CDaoTableDef::SetValidationText(wchar_t const *) 9102 void CDaoRecordset::StoreFields() 9103 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 9104 void CDaoDatabase::ThrowDaoException(int) 9105 void CDaoQueryDef::ThrowDaoException(int) 9106 void CDaoRecordset::ThrowDaoException(int) 9107 void CDaoTableDef::ThrowDaoException(int) 9108 void CDaoWorkspace::ThrowDaoException(int) 9109 void ThrowGetRowsDaoException(long) 9110 void CDaoRecordset::Update() 9111 CRuntimeconst CDaoDatabase::classCDaoDatabase 9112 CRuntimeconst CDaoException::classCDaoException 9113 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 9114 CRuntimeconst CDaoRecordset::classCDaoRecordset 9115 CRuntimeconst CDaoRecordView::classCDaoRecordView 9116 CRuntimeconst CDaoTableDef::classCDaoTableDef 9117 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 9118 CRuntimeconst CDatabase::classCDatabase 9119 CRuntimeconst CDBException::classCDBException 9120 CRuntimeconst CLongBinary::classCLongBinary 9121 CRuntimeconst COleDBRecordView::classCOleDBRecordView 9122 CRuntimeconst CRecordset::classCRecordset 9123 CRuntimeconst CRecordView::classCRecordView 9127 int AfxEnableMemoryLeakOverride(int) 9128 COleVariant::COleVariant(__int64) 9129 COleVariant::COleVariant(unsigned __int64) 9130 int CPropertySheet::IsModeless()const 9131 int CDC::SetGraphicsMode(int) 9132 int CDC::SetWorldTransform(tagXFORM const *) 9133 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 9134 int CDC::GetGraphicsMode()const 9135 int CDC::GetWorldTransform(tagXFORM *)const 9136 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 9137 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager()const 9138 void AFX_MODULE_STATE::CreateActivationContext() 9139 CControlCreationInfo::CControlCreationInfo() 9140 CControlSiteFactoryMgr::CControlSiteFactoryMgr() 9141 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 9142 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 9143 COleControlSiteOrWnd::COleControlSiteOrWnd() 9144 CControlSiteFactoryMgr::~CControlSiteFactoryMgr() 9145 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 9146 int AfxRegisterSiteFactory(IControlSiteFactory *) 9147 int AfxUnregisterSiteFactory(IControlSiteFactory *) 9148 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 9149 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 9150 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 9151 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 9152 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 9153 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 9155 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 9156 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 9157 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo() 9158 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo() 9159 int CControlCreationInfo::IsManaged()const 9160 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 9161 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 9162 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 9163 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 9164 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 9165 __POSITION * CWnd::FindSiteOrWndWithFocus()const 9166 ATL::CStringT > >::CStringT > >(char *) 9167 ATL::CStringT > >::CStringT > >(unsigned char *) 9168 ATL::CStringT > >::CStringT > >(wchar_t *) 9169 ATL::CStringT > >::CStringT > >(char *) 9170 ATL::CStringT > >::CStringT > >(unsigned char *) 9171 ATL::CStringT > >::CStringT > >(wchar_t *) 9172 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 9173 int AfxIsValidAtom(unsigned short) 9174 int AfxIsValidAtom(wchar_t const *) 9175 void CFileDialog::SetControlText(int,wchar_t const *) 9176 COleVariant const & COleVariant::operator=(__int64) 9177 COleVariant const & COleVariant::operator=(unsigned __int64) 9178 void AfxUnregisterWndClasses() 9179 void CWinApp::DoEnableModeless(int) 9181 HWND__ * CPropertyPage::OnWizardFinishEx() 9186 int CWinApp::ShowAppMessageBox(CWinApp *,wchar_t const *,unsigned int,unsigned int) 9187 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 9188 int AfxGetAmbientActCtx() 9189 void AfxSetAmbientActCtx(int) 9190 int AfxActivateActCtx(void *,unsigned long *) 9191 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 9192 void * AfxCreateActCtxW(tagACTCTXW const *) 9193 int AfxDeactivateActCtx(unsigned long,unsigned long) 9194 void AfxReleaseActCtx(void *) 9195 void COleClientItem::GetItemName(wchar_t *,unsigned int)const 9196 HINSTANCE__ * AfxLoadLibraryEx(wchar_t const *,void *,unsigned long) 9197 void CArchive::EnsureRead(void *,unsigned int) 9198 int AfxIsModuleDll() 9199 int AfxInitCurrentStateApp() 9200 int CFtpConnection::CreateDirectory(wchar_t const *) 9201 int CDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 9202 int CDC::DrawText(wchar_t const *,int,tagRECT *,unsigned int) 9203 int CMetaFileDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 9204 int CMetaFileDC::DrawText(wchar_t const *,int,tagRECT *,unsigned int) 9205 int CDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9206 int CDC::DrawTextEx(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9207 int CMetaFileDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9208 int CMetaFileDC::DrawTextEx(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 9209 CFrameWnd * CWnd::EnsureParentFrame()const 9210 CWnd * CWnd::EnsureTopLevelParent()const 9211 int CGdiObject::GetObject(int,void *)const 9212 ATL::CStringT > > CHttpFile::GetObject()const 9213 int CDC::GetTextMetrics(tagTEXTMETRICW *)const 9214 int COlePropertyPage::MessageBox(wchar_t const *,wchar_t const *,unsigned int) 9215 int CWnd::MessageBox(wchar_t const *,wchar_t const *,unsigned int) 9216 int CFtpConnection::SetCurrentDirectory(wchar_t const *) 9217 void ATL::CStringT > >::FormatMessage(unsigned int,...) 9218 void ATL::CStringT > >::FormatMessage(wchar_t const *,...) 9219 void ATL::CStringT > >::FormatMessage(unsigned int,...) 9220 void ATL::CStringT > >::FormatMessage(char const *,...) 9221 HINSTANCE__ * AfxGetInstanceHandleHelper() 9222 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo() 9223 CFormView::~CFormView() 9224 int CWnd::DlgDirSelect(wchar_t *,int,int) 9225 int CWnd::DlgDirSelectComboBox(wchar_t *,int,int) 9226 long CWnd::SendMessage(unsigned int,unsigned int,long) ================================================ FILE: Bin/i386/mfc_sym/mfc90.def ================================================ 256 ??$CopyElements@VCOleVariant@@@@YGXPAVCOleVariant@@PBV0@H@Z 257 ??$HashKey@ABUtagVARIANT@@@@YGIABUtagVARIANT@@@Z 258 ??$HashKey@PB_W@@YGIPB_W@Z 259 ??$HashKey@PBD@@YGIPBD@Z 260 ??$HashKey@VCComBSTR@ATL@@@@YGIVCComBSTR@ATL@@@Z 261 ??$SerializeElements@V?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z 262 ??$SerializeElements@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@H@Z 263 ??$SerializeElements@VCComBSTR@ATL@@@@YGXAAVCArchive@@PAVCComBSTR@ATL@@H@Z 264 ??$SerializeElements@VCOleVariant@@@@YGXAAVCArchive@@PAVCOleVariant@@H@Z 265 void * operator new[](unsigned int) 266 void operator delete[](void *) 267 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 268 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 269 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 270 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 271 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 272 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 275 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 277 ATL::CStringT > >::CStringT > >(wchar_t,int) 278 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 279 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 280 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 281 ATL::CStringT > >::CStringT > >(char,int) 282 ATL::CStringT > >::CStringT > >(wchar_t *) 283 ATL::CStringT > >::CStringT > >(char *) 284 ATL::CStringT > >::CStringT > >(unsigned char *) 285 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(wchar_t const *) 287 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 288 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 289 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 290 ATL::CStringT > >::CStringT > >(char const *) 291 ATL::CStringT > >::CStringT > >(char const *,int) 292 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 294 ATL::CStringT > >::CStringT > >(unsigned char const *) 295 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(void) 297 ATL::CStringT > >::CStringT > >(wchar_t,int) 298 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 299 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 301 ATL::CStringT > >::CStringT > >(char,int) 302 ATL::CStringT > >::CStringT > >(wchar_t *) 303 ATL::CStringT > >::CStringT > >(char *) 304 ATL::CStringT > >::CStringT > >(unsigned char *) 305 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(wchar_t const *) 307 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 308 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 309 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >(char const *) 311 ATL::CStringT > >::CStringT > >(char const *,int) 312 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 313 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 314 ATL::CStringT > >::CStringT > >(unsigned char const *) 315 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >(void) 317 _AFX_DAO_STATE::_AFX_DAO_STATE(void) 318 _AFX_THREAD_STATE::_AFX_THREAD_STATE(void) 319 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 320 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK(void) 321 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 322 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 323 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE(void) 324 CArchive::CArchive(CFile *,unsigned int,int,void *) 325 CArchivePropExchange::CArchivePropExchange(CArchive &) 326 CArchiveStream::CArchiveStream(CArchive *) 327 CAsyncMonikerFile::CAsyncMonikerFile(void) 328 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 329 CAsyncSocket::CAsyncSocket(void) 330 CBlobProperty::CBlobProperty(void *) 331 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 332 CBrush::CBrush(int,unsigned long) 333 CBrush::CBrush(unsigned long) 334 CBrush::CBrush(CBitmap *) 335 CByteArray::CByteArray(void) 336 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu(void) 337 CClientDC::CClientDC(CWnd *) 338 CCmdTarget::CCmdTarget(void) 339 CCmdUI::CCmdUI(void) 340 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 341 CCommandLineInfo::CCommandLineInfo(void) 342 CConnectionPoint::CConnectionPoint(void) 343 CControlBar::CControlBar(void) 344 CControlBarInfo::CControlBarInfo(void) 345 CControlCreationInfo::CControlCreationInfo(void) 346 COleControl::CControlDataSource::CControlDataSource(COleControl *) 347 CControlFrameWnd::CControlFrameWnd(COleControl *) 348 CControlSiteFactoryMgr::CControlSiteFactoryMgr(void) 349 CCtrlView::CCtrlView(char const *,unsigned long) 350 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 351 CDaoException::CDaoException(void) 352 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 353 CDaoIndexInfo::CDaoIndexInfo(void) 354 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 355 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 356 CDaoRecordView::CDaoRecordView(unsigned int) 357 CDaoRecordView::CDaoRecordView(char const *) 358 CDaoRelationInfo::CDaoRelationInfo(void) 359 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 360 CDaoWorkspace::CDaoWorkspace(void) 361 CDatabase::CDatabase(void) 362 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 363 CDataExchange::CDataExchange(CWnd *,int) 364 CDataSourceControl::CDataSourceControl(COleControlSite *) 365 CDBException::CDBException(short) 366 CDBVariant::CDBVariant(void) 367 CDC::CDC(void) 368 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 369 CDHtmlControlSink::CDHtmlControlSink(void) 370 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 371 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 372 CDHtmlDialog::CDHtmlDialog(void) 373 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 374 CDialog::CDialog(unsigned int,CWnd *) 375 CDialog::CDialog(char const *,CWnd *) 376 CDialog::CDialog(void) 377 CDialogBar::CDialogBar(void) 378 CDialogTemplate::CDialogTemplate(void *) 379 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 380 CDocItem::CDocItem(void) 381 CDockBar::CDockBar(int) 382 CDockContext::CDockContext(CControlBar *) 383 CDockState::CDockState(void) 384 CDocManager::CDocManager(void) 385 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 386 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 387 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 388 CDocument::CDocument(void) 389 CDumpContext::CDumpContext(CFile *) 390 CDWordArray::CDWordArray(void) 391 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 392 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 393 CEditView::CEditView(void) 394 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 395 CEnumConnections::CEnumConnections(void const *,unsigned int) 396 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 397 CEnumFormatEtc::CEnumFormatEtc(void) 398 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 399 CException::CException(int) 400 CException::CException(void) 401 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 402 CFile::CFile(void *) 403 CFile::CFile(char const *,unsigned int) 404 CFile::CFile(void) 405 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long,int) 406 CFileFind::CFileFind(void) 407 CFindReplaceDialog::CFindReplaceDialog(void) 408 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 409 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 410 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 411 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 412 CFontHolder::CFontHolder(IPropertyNotifySink *) 413 CFormView::CFormView(unsigned int) 414 CFormView::CFormView(char const *) 415 CFrameWnd::CFrameWnd(void) 416 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 417 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 418 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 419 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 420 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 421 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 422 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 423 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 424 CGopherLocator::CGopherLocator(char const *,unsigned long) 425 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 426 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 427 CHtmlEditCtrl::CHtmlEditCtrl(void) 428 CHtmlEditDoc::CHtmlEditDoc(void) 429 CHtmlEditView::CHtmlEditView(void) 430 CHtmlView::CHtmlView(void) 431 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 432 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 433 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 434 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 435 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 436 CImageList::CImageList(void) 437 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 438 CInternetException::CInternetException(unsigned long) 439 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 440 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 441 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 442 CLongBinary::CLongBinary(void) 443 CMapPtrToPtr::CMapPtrToPtr(int) 444 CMapPtrToWord::CMapPtrToWord(int) 445 CMapStringToOb::CMapStringToOb(int) 446 CMapStringToPtr::CMapStringToPtr(int) 447 CMapStringToString::CMapStringToString(int) 448 CMapWordToOb::CMapWordToOb(int) 449 CMapWordToPtr::CMapWordToPtr(int) 450 CMDIChildWnd::CMDIChildWnd(void) 451 CMDIFrameWnd::CMDIFrameWnd(void) 452 CMemFile::CMemFile(unsigned int) 453 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 454 CMetaFileDC::CMetaFileDC(void) 455 CMiniDockFrameWnd::CMiniDockFrameWnd(void) 456 CMiniFrameWnd::CMiniFrameWnd(void) 457 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 458 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 459 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 460 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 461 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(void) 462 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 463 CObArray::CObArray(void) 464 CObList::CObList(int) 465 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 466 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 467 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 468 COleClientItem::COleClientItem(COleDocument *) 469 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 470 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 471 COleControl::COleControl(void) 472 COleControlContainer::COleControlContainer(CWnd *) 473 COleControlLock::COleControlLock(_GUID const &) 474 COleControlSite::COleControlSite(COleControlContainer *) 475 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 476 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 477 COleControlSiteOrWnd::COleControlSiteOrWnd(void) 478 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 479 COleCurrency::COleCurrency(long,long) 480 COleDataObject::COleDataObject(void) 481 COleDataSource::COleDataSource(void) 482 COleDialog::COleDialog(CWnd *) 483 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 484 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 485 COleDispatchDriver::COleDispatchDriver(void) 486 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 487 COleDocIPFrameWnd::COleDocIPFrameWnd(void) 488 COleDocObjectItem::COleDocObjectItem(COleDocument *) 489 COleDocument::COleDocument(void) 490 COleDropSource::COleDropSource(void) 491 COleDropTarget::COleDropTarget(void) 492 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 493 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 494 COleIPFrameWnd::COleIPFrameWnd(void) 495 COleLinkingDoc::COleLinkingDoc(void) 496 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 497 COleMessageFilter::COleMessageFilter(void) 498 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 499 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 500 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 501 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 502 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 503 COleResizeBar::COleResizeBar(void) 504 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 505 COleSafeArray::COleSafeArray(tagVARIANT const &) 506 COleSafeArray::COleSafeArray(COleSafeArray const &) 507 COleSafeArray::COleSafeArray(COleVariant const &) 508 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 509 COleSafeArray::COleSafeArray(tagVARIANT const *) 510 COleServerDoc::COleServerDoc(void) 511 COleServerItem::COleServerItem(COleServerDoc *,int) 512 COleStreamFile::COleStreamFile(IStream *) 513 COleTemplateServer::COleTemplateServer(void) 514 COleUILinkInfo::COleUILinkInfo(COleDocument *) 515 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 516 COleVariant::COleVariant(tagVARIANT const &) 517 COleVariant::COleVariant(COleVariant const &) 518 COleVariant::COleVariant(short,unsigned short) 519 COleVariant::COleVariant(long,unsigned short) 520 COleVariant::COleVariant(char const *,unsigned short) 521 COleVariant::COleVariant(_ITEMIDLIST const *) 522 COleVariant::COleVariant(tagVARIANT const *) 523 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 524 CPaintDC::CPaintDC(CWnd *) 525 CPen::CPen(int,int,unsigned long) 526 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 527 CPictureHolder::CPictureHolder(void) 528 CPreviewDC::CPreviewDC(void) 529 CPreviewView::CPreviewView(void) 530 CPrintDialog::CPrintDialog(tagPDA &) 531 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 532 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 533 CPrintInfo::CPrintInfo(void) 534 CPrintPreviewState::CPrintPreviewState(void) 535 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 536 CProperty::CProperty(unsigned long,void * const,unsigned long) 537 CProperty::CProperty(void) 538 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 539 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 540 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 541 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 542 CPropertyPage::CPropertyPage(void) 543 CPropertySection::CPropertySection(_GUID) 544 CPropertySection::CPropertySection(void) 545 CPropertySet::CPropertySet(_GUID) 546 CPropertySet::CPropertySet(void) 547 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 548 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 549 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 550 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 551 CPropertySheet::CPropertySheet(void) 552 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 553 CPtrArray::CPtrArray(void) 554 CPtrList::CPtrList(int) 555 CReBar::CReBar(void) 556 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 557 CRecordset::CRecordset(CDatabase *) 558 CRecordView::CRecordView(unsigned int) 559 CRecordView::CRecordView(char const *) 560 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 561 CReObject::CReObject(CRichEditCntrItem *) 562 CReObject::CReObject(void) 563 CResetPropExchange::CResetPropExchange(void) 564 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 565 CRichEditDoc::CRichEditDoc(void) 566 CRichEditView::CRichEditView(void) 567 CScrollView::CScrollView(void) 568 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 569 CSharedFile::CSharedFile(unsigned int,unsigned int) 570 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 571 CSingleLock::CSingleLock(CSyncObject *,int) 572 CSocket::CSocket(void) 573 CSocketFile::CSocketFile(CSocket *,int) 574 CSocketWnd::CSocketWnd(void) 575 CSplitterWnd::CSplitterWnd(void) 576 CStatusBar::CStatusBar(void) 577 CStdioFile::CStdioFile(_iobuf *) 578 CStdioFile::CStdioFile(char const *,unsigned int) 579 CStdioFile::CStdioFile(void) 580 CStringArray::CStringArray(void) 581 CStringList::CStringList(int) 582 CSyncObject::CSyncObject(char const *) 583 CTestCmdUI::CTestCmdUI(void) 584 CThreadSlotData::CThreadSlotData(void) 585 CToolBar::CToolBar(void) 586 CToolTipCtrl::CToolTipCtrl(void) 587 CUIntArray::CUIntArray(void) 588 CView::CView(void) 589 CWinApp::CWinApp(char const *) 590 CWindowDC::CWindowDC(CWnd *) 591 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 592 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 593 CWinThread::CWinThread(void) 594 CWnd::CWnd(HWND__ *) 595 CWnd::CWnd(void) 596 CWordArray::CWordArray(void) 597 CPreviewView::PAGE_INFO::PAGE_INFO(void) 598 ATL::CSimpleStringT::~CSimpleStringT(void) 599 ATL::CSimpleStringT::~CSimpleStringT(void) 600 ATL::CStringT > >::~CStringT > >(void) 601 ATL::CStringT > >::~CStringT > >(void) 602 _AFX_DAO_STATE::~_AFX_DAO_STATE(void) 603 _AFX_THREAD_STATE::~_AFX_THREAD_STATE(void) 604 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE(void) 605 AFX_MODULE_STATE::~AFX_MODULE_STATE(void) 606 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE(void) 607 CAnimateCtrl::~CAnimateCtrl(void) 608 CArchive::~CArchive(void) 609 CAsyncMonikerFile::~CAsyncMonikerFile(void) 610 CAsyncSocket::~CAsyncSocket(void) 611 CButton::~CButton(void) 612 CByteArray::~CByteArray(void) 613 CClientDC::~CClientDC(void) 614 CCmdTarget::~CCmdTarget(void) 615 CComboBox::~CComboBox(void) 616 CComboBoxEx::~CComboBoxEx(void) 617 CCommandLineInfo::~CCommandLineInfo(void) 618 CConnectionPoint::~CConnectionPoint(void) 619 CControlBar::~CControlBar(void) 620 CControlSiteFactoryMgr::~CControlSiteFactoryMgr(void) 621 CCtrlView::~CCtrlView(void) 622 CDaoDatabase::~CDaoDatabase(void) 623 CDaoException::~CDaoException(void) 624 CDaoIndexInfo::~CDaoIndexInfo(void) 625 CDaoQueryDef::~CDaoQueryDef(void) 626 CDaoRecordset::~CDaoRecordset(void) 627 CDaoRecordView::~CDaoRecordView(void) 628 CDaoRelationInfo::~CDaoRelationInfo(void) 629 CDaoTableDef::~CDaoTableDef(void) 630 CDaoWorkspace::~CDaoWorkspace(void) 631 CDatabase::~CDatabase(void) 632 CDataSourceControl::~CDataSourceControl(void) 633 CDateTimeCtrl::~CDateTimeCtrl(void) 634 CDBException::~CDBException(void) 635 CDBVariant::~CDBVariant(void) 636 CDC::~CDC(void) 637 CDHtmlControlSink::~CDHtmlControlSink(void) 638 CDHtmlDialog::~CDHtmlDialog(void) 639 CDialog::~CDialog(void) 640 CDialogBar::~CDialogBar(void) 641 CDialogTemplate::~CDialogTemplate(void) 642 CDocItem::~CDocItem(void) 643 CDockBar::~CDockBar(void) 644 CDockContext::~CDockContext(void) 645 CDockState::~CDockState(void) 646 CDocManager::~CDocManager(void) 647 CDocObjectServer::~CDocObjectServer(void) 648 CDocObjectServerItem::~CDocObjectServerItem(void) 649 CDocTemplate::~CDocTemplate(void) 650 CDocument::~CDocument(void) 651 CDragListBox::~CDragListBox(void) 652 CDWordArray::~CDWordArray(void) 653 CDynLinkLibrary::~CDynLinkLibrary(void) 654 CEdit::~CEdit(void) 655 CEditView::~CEditView(void) 656 CEnumArray::~CEnumArray(void) 657 CEnumConnections::~CEnumConnections(void) 658 CEnumConnPoints::~CEnumConnPoints(void) 659 CEnumFormatEtc::~CEnumFormatEtc(void) 660 CEnumOleVerb::~CEnumOleVerb(void) 661 CEnumUnknown::~CEnumUnknown(void) 662 CEvent::~CEvent(void) 663 CFile::~CFile(void) 664 CFileDialog::~CFileDialog(void) 665 CFileFind::~CFileFind(void) 666 CFixedAlloc::~CFixedAlloc(void) 667 CFixedAllocNoSync::~CFixedAllocNoSync(void) 668 CFontHolder::~CFontHolder(void) 669 CFormView::~CFormView(void) 670 CFrameWnd::~CFrameWnd(void) 671 CFtpConnection::~CFtpConnection(void) 672 CFtpFileFind::~CFtpFileFind(void) 673 CGopherConnection::~CGopherConnection(void) 674 CGopherFile::~CGopherFile(void) 675 CGopherFileFind::~CGopherFileFind(void) 676 CGopherLocator::~CGopherLocator(void) 677 CHeaderCtrl::~CHeaderCtrl(void) 678 CHotKeyCtrl::~CHotKeyCtrl(void) 679 CHtmlControlSite::~CHtmlControlSite(void) 680 CHtmlEditCtrl::~CHtmlEditCtrl(void) 681 CHtmlEditDoc::~CHtmlEditDoc(void) 682 CHtmlEditView::~CHtmlEditView(void) 683 CHtmlView::~CHtmlView(void) 684 CHttpConnection::~CHttpConnection(void) 685 CHttpFile::~CHttpFile(void) 686 CImageList::~CImageList(void) 687 CInternetConnection::~CInternetConnection(void) 688 CInternetException::~CInternetException(void) 689 CInternetFile::~CInternetFile(void) 690 CInternetSession::~CInternetSession(void) 691 CIPAddressCtrl::~CIPAddressCtrl(void) 692 CListBox::~CListBox(void) 693 CListCtrl::~CListCtrl(void) 694 CLongBinary::~CLongBinary(void) 695 CMapPtrToPtr::~CMapPtrToPtr(void) 696 CMapPtrToWord::~CMapPtrToWord(void) 697 CMapStringToOb::~CMapStringToOb(void) 698 CMapStringToPtr::~CMapStringToPtr(void) 699 CMapStringToString::~CMapStringToString(void) 700 CMapWordToOb::~CMapWordToOb(void) 701 CMapWordToPtr::~CMapWordToPtr(void) 702 CMemFile::~CMemFile(void) 703 CMetaFileDC::~CMetaFileDC(void) 704 CMiniFrameWnd::~CMiniFrameWnd(void) 705 CMonikerFile::~CMonikerFile(void) 706 CMonthCalCtrl::~CMonthCalCtrl(void) 707 CMultiDocTemplate::~CMultiDocTemplate(void) 708 CMultiLock::~CMultiLock(void) 709 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog(void) 710 CMutex::~CMutex(void) 711 CObArray::~CObArray(void) 712 CObList::~CObList(void) 713 COleBusyDialog::~COleBusyDialog(void) 714 COleChangeIconDialog::~COleChangeIconDialog(void) 715 COleChangeSourceDialog::~COleChangeSourceDialog(void) 716 COleClientItem::~COleClientItem(void) 717 COleCntrFrameWnd::~COleCntrFrameWnd(void) 718 COleControl::~COleControl(void) 719 COleControlContainer::~COleControlContainer(void) 720 COleControlLock::~COleControlLock(void) 721 COleControlSite::~COleControlSite(void) 722 COleControlSiteOrWnd::~COleControlSiteOrWnd(void) 723 COleConvertDialog::~COleConvertDialog(void) 724 COleDataSource::~COleDataSource(void) 725 COleDispatchException::~COleDispatchException(void) 726 COleDocIPFrameWnd::~COleDocIPFrameWnd(void) 727 COleDocObjectItem::~COleDocObjectItem(void) 728 COleDocument::~COleDocument(void) 729 COleDropTarget::~COleDropTarget(void) 730 COleFrameHook::~COleFrameHook(void) 731 COleInsertDialog::~COleInsertDialog(void) 732 COleIPFrameWnd::~COleIPFrameWnd(void) 733 COleLinkingDoc::~COleLinkingDoc(void) 734 COleLinksDialog::~COleLinksDialog(void) 735 COleMessageFilter::~COleMessageFilter(void) 736 COleObjectFactory::~COleObjectFactory(void) 737 COlePasteSpecialDialog::~COlePasteSpecialDialog(void) 738 COlePropertyPage::~COlePropertyPage(void) 739 COleResizeBar::~COleResizeBar(void) 740 COleServerDoc::~COleServerDoc(void) 741 COleServerItem::~COleServerItem(void) 742 COleStreamFile::~COleStreamFile(void) 743 COleUpdateDialog::~COleUpdateDialog(void) 744 CPaintDC::~CPaintDC(void) 745 CPictureHolder::~CPictureHolder(void) 746 CPreviewDC::~CPreviewDC(void) 747 CPreviewView::~CPreviewView(void) 748 CPrintInfo::~CPrintInfo(void) 749 CProcessLocalObject::~CProcessLocalObject(void) 750 CProgressCtrl::~CProgressCtrl(void) 751 CPropbagPropExchange::~CPropbagPropExchange(void) 752 CProperty::~CProperty(void) 753 CPropertyPage::~CPropertyPage(void) 754 CPropertySection::~CPropertySection(void) 755 CPropertySet::~CPropertySet(void) 756 CPropertySheet::~CPropertySheet(void) 757 CPtrArray::~CPtrArray(void) 758 CPtrList::~CPtrList(void) 759 CReBarCtrl::~CReBarCtrl(void) 760 CRecentFileList::~CRecentFileList(void) 761 CRecordset::~CRecordset(void) 762 CRecordView::~CRecordView(void) 763 CRectTracker::~CRectTracker(void) 764 CReObject::~CReObject(void) 765 CRichEditCntrItem::~CRichEditCntrItem(void) 766 CRichEditCtrl::~CRichEditCtrl(void) 767 CScrollBar::~CScrollBar(void) 768 CScrollView::~CScrollView(void) 769 CSemaphore::~CSemaphore(void) 770 CSharedFile::~CSharedFile(void) 771 CSingleDocTemplate::~CSingleDocTemplate(void) 772 CSliderCtrl::~CSliderCtrl(void) 773 CSocket::~CSocket(void) 774 CSocketFile::~CSocketFile(void) 775 CSpinButtonCtrl::~CSpinButtonCtrl(void) 776 CSplitterWnd::~CSplitterWnd(void) 777 CStatic::~CStatic(void) 778 CStatusBar::~CStatusBar(void) 779 CStatusBarCtrl::~CStatusBarCtrl(void) 780 CStdioFile::~CStdioFile(void) 781 CStringArray::~CStringArray(void) 782 CStringList::~CStringList(void) 783 CSyncObject::~CSyncObject(void) 784 CTabCtrl::~CTabCtrl(void) 785 CThreadLocalObject::~CThreadLocalObject(void) 786 CThreadSlotData::~CThreadSlotData(void) 787 CToolBar::~CToolBar(void) 788 CToolBarCtrl::~CToolBarCtrl(void) 789 CToolTipCtrl::~CToolTipCtrl(void) 790 CTreeCtrl::~CTreeCtrl(void) 791 CUIntArray::~CUIntArray(void) 792 CView::~CView(void) 793 CWinApp::~CWinApp(void) 794 CWindowDC::~CWindowDC(void) 795 CWinThread::~CWinThread(void) 796 CWnd::~CWnd(void) 797 CWordArray::~CWordArray(void) 798 void * operator new(unsigned int) 799 void * CNoTrackObject::operator new(unsigned int) 800 void operator delete(void *) 801 void CNoTrackObject::operator delete(void *) 802 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 803 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 804 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 805 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 806 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 807 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 808 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 809 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 810 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 811 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 812 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 813 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 814 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 815 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 816 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 817 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 818 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 819 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 820 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 821 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 822 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 823 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 824 COleCurrency const & COleCurrency::operator=(union tagCY) 825 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 826 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 827 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 828 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 829 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 830 COleVariant const & COleVariant::operator=(__int64) 831 COleVariant const & COleVariant::operator=(unsigned __int64) 832 COleVariant const & COleVariant::operator=(tagVARIANT const &) 833 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 834 COleVariant const & COleVariant::operator=(COleVariant const &) 835 COleVariant const & COleVariant::operator=(CByteArray const &) 836 COleVariant const & COleVariant::operator=(CLongBinary const &) 837 COleVariant const & COleVariant::operator=(COleCurrency const &) 838 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 839 COleVariant const & COleVariant::operator=(unsigned char) 840 COleVariant const & COleVariant::operator=(short) 841 COleVariant const & COleVariant::operator=(long) 842 COleVariant const & COleVariant::operator=(float) 843 COleVariant const & COleVariant::operator=(double) 844 COleVariant const & COleVariant::operator=(tagVARIANT const *) 845 COleVariant const & COleVariant::operator=(char const * const) 846 CArchive & operator>>(CArchive &,CByteArray * &) 847 CArchive & operator>>(CArchive &,CDocItem * &) 848 CArchive & operator>>(CArchive &,CDockState * &) 849 CArchive & operator>>(CArchive &,CDWordArray * &) 850 CArchive & operator>>(CArchive &,CMapStringToOb * &) 851 CArchive & operator>>(CArchive &,CMapStringToString * &) 852 CArchive & operator>>(CArchive &,CMapWordToOb * &) 853 CArchive & operator>>(CArchive &,CObArray * &) 854 CArchive & operator>>(CArchive &,CObList * &) 855 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 856 CArchive & operator>>(CArchive &,CStringArray * &) 857 CArchive & operator>>(CArchive &,CStringList * &) 858 CArchive & operator>>(CArchive &,CWordArray * &) 859 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 860 CArchive & operator>>(CArchive &,COleCurrency &) 861 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 862 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 863 CArchive & operator>>(CArchive &,COleVariant &) 864 CArchive & operator>>(CArchive &,ATL::CTime &) 865 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 866 CArchive & operator<<(CArchive &,ATL::CComBSTR) 867 CArchive & operator<<(CArchive &,COleCurrency) 868 CArchive & operator<<(CArchive &,ATL::COleDateTime) 869 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 870 CArchive & operator<<(CArchive &,COleVariant) 871 CArchive & operator<<(CArchive &,ATL::CTime) 872 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 873 CDumpContext & CDumpContext::operator<<(__int64) 874 CDumpContext & CDumpContext::operator<<(unsigned __int64) 875 CDumpContext & CDumpContext::operator<<(CObject const &) 876 CDumpContext & CDumpContext::operator<<(unsigned char) 877 CDumpContext & CDumpContext::operator<<(unsigned short) 878 CDumpContext & CDumpContext::operator<<(int) 879 CDumpContext & CDumpContext::operator<<(unsigned int) 880 CDumpContext & CDumpContext::operator<<(long) 881 CDumpContext & CDumpContext::operator<<(unsigned long) 882 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 883 CDumpContext & CDumpContext::operator<<(HDC__ *) 884 CDumpContext & CDumpContext::operator<<(HFONT__ *) 885 CDumpContext & CDumpContext::operator<<(HMENU__ *) 886 CDumpContext & CDumpContext::operator<<(HWND__ *) 887 CDumpContext & CDumpContext::operator<<(wchar_t const *) 888 CDumpContext & CDumpContext::operator<<(char const *) 889 CDumpContext & CDumpContext::operator<<(CObject const *) 890 CDumpContext & CDumpContext::operator<<(void const *) 891 int COleSafeArray::operator==(tagSAFEARRAY const &)const 892 int COleSafeArray::operator==(tagVARIANT const &)const 893 int COleSafeArray::operator==(COleSafeArray const &)const 894 int COleSafeArray::operator==(COleVariant const &)const 895 int COleSafeArray::operator==(tagSAFEARRAY const *)const 896 int COleSafeArray::operator==(tagVARIANT const *)const 897 int COleVariant::operator==(tagVARIANT const &)const 898 wchar_t ATL::CSimpleStringT::operator[](int)const 899 char ATL::CSimpleStringT::operator[](int)const 900 void * & CMapPtrToPtr::operator[](void *) 901 unsigned short & CMapPtrToWord::operator[](void *) 902 CObject * & CMapStringToOb::operator[](char const *) 903 void * & CMapStringToPtr::operator[](char const *) 904 ATL::CStringT > > & CMapStringToString::operator[](char const *) 905 CObject * & CMapWordToOb::operator[](unsigned short) 906 void * & CMapWordToPtr::operator[](unsigned short) 907 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 908 ATL::CSimpleStringT::operator wchar_t const *(void)const 909 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 910 ATL::CSimpleStringT::operator char const *(void)const 911 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 912 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 913 COleCurrency COleCurrency::operator*(long)const 914 COleCurrency COleCurrency::operator-(COleCurrency const &)const 915 COleCurrency COleCurrency::operator-(void)const 916 COleCurrency COleCurrency::operator+(COleCurrency const &)const 917 COleCurrency COleCurrency::operator/(long)const 918 int COleCurrency::operator<(COleCurrency const &)const 919 int COleCurrency::operator<=(COleCurrency const &)const 920 int COleCurrency::operator>(COleCurrency const &)const 921 int COleCurrency::operator>=(COleCurrency const &)const 922 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 923 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 924 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 925 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 926 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 927 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 928 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 929 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 930 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 931 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 932 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 933 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 934 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 935 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 936 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 937 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 938 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 939 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 940 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 941 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 942 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 943 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 944 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 945 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 946 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 947 int _AfxSocketInit(WSAData *) 948 void CArchive::Abort(void) 949 void CFile::Abort(void) 950 void CInternetFile::Abort(void) 951 void CMemFile::Abort(void) 952 void CMirrorFile::Abort(void) 953 void COleStreamFile::Abort(void) 954 void CSocketFile::Abort(void) 955 void CStdioFile::Abort(void) 956 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 957 long CCheckListBox::accDoDefaultAction(tagVARIANT) 958 long CWnd::accDoDefaultAction(tagVARIANT) 959 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 960 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 961 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 962 void COleSafeArray::AccessData(void * *) 963 long CWnd::accHitTest(long,long,tagVARIANT *) 964 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 965 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 966 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 967 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 968 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 969 long CWnd::accSelect(long,tagVARIANT) 970 long CWnd::XAccessible::accSelect(long,tagVARIANT) 971 void COleClientItem::Activate(long,CView *,tagMSG *) 972 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 973 void COleDocObjectItem::ActivateAndShow(void) 974 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 975 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 976 void CDocObjectServer::ActivateDocObject(void) 977 void COleServerDoc::ActivateDocObject(void) 978 void CFrameWnd::ActivateFrame(int) 979 void CMDIChildWnd::ActivateFrame(int) 980 int COleServerDoc::ActivateInPlace(void) 981 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 982 void CSplitterWnd::ActivateNext(int) 983 void CWnd::ActivateTopParent(void) 984 void CRecentFileList::Add(char const *) 985 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 986 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 987 int CToolBarCtrl::AddBitmap(int,unsigned int) 988 int CToolBarCtrl::AddBitmap(int,CBitmap *) 989 void COleClientItem::AddCachedData(COleDataSource *) 990 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 991 void CEnumConnections::AddConnection(tagCONNECTDATA *) 992 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 993 void CDocManager::AddDocTemplate(CDocTemplate *) 994 void CWinApp::AddDocTemplate(CDocTemplate *) 995 void CDocTemplate::AddDocument(CDocument *) 996 void CMultiDocTemplate::AddDocument(CDocument *) 997 void CSingleDocTemplate::AddDocument(CDocument *) 998 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 999 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 1000 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1001 void COleControl::AddFrameLevelUI(void) 1002 void CFrameWnd::AddFrameWnd(void) 1003 __POSITION * CObList::AddHead(CObject *) 1004 void CObList::AddHead(CObList *) 1005 __POSITION * CPtrList::AddHead(void *) 1006 void CPtrList::AddHead(CPtrList *) 1007 void CSimpleList::AddHead(void *) 1008 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1009 __POSITION * CStringList::AddHead(char const *) 1010 void CStringList::AddHead(CStringList *) 1011 void COleDocument::AddItem(CDocItem *) 1012 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1013 void CDaoRecordset::AddNew(void) 1014 void CRecordset::AddNew(void) 1015 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1016 void CPropertySheet::AddPage(CPropertyPage *) 1017 void CPropertySection::AddProperty(CProperty *) 1018 void CPropertySet::AddProperty(_GUID,CProperty *) 1019 unsigned long CArchiveStream::AddRef(void) 1020 unsigned long CBlobProperty::AddRef(void) 1021 unsigned long CBrowserControlSite::AddRef(void) 1022 unsigned long CDHtmlControlSink::AddRef(void) 1023 unsigned long CDHtmlElementEventSink::AddRef(void) 1024 unsigned long CDHtmlEventSink::AddRef(void) 1025 unsigned long CInnerUnknown::AddRef(void) 1026 unsigned long COleConnPtContainer::AddRef(void) 1027 unsigned long COleDispatchImpl::AddRef(void) 1028 unsigned long COleUILinkInfo::AddRef(void) 1029 unsigned long CPrintDialogEx::AddRef(void) 1030 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1031 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1032 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1033 CPropertySection * CPropertySet::AddSection(_GUID) 1034 void CPropertySet::AddSection(CPropertySection *) 1035 void COlePasteSpecialDialog::AddStandardFormats(int) 1036 int CToolBarCtrl::AddString(unsigned int) 1037 __POSITION * CObList::AddTail(CObject *) 1038 void CObList::AddTail(CObList *) 1039 __POSITION * CPtrList::AddTail(void *) 1040 void CPtrList::AddTail(CPtrList *) 1041 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1042 __POSITION * CStringList::AddTail(char const *) 1043 void CStringList::AddTail(CStringList *) 1044 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1045 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1046 void CWinApp::AddToRecentFileList(char const *) 1047 void CDocument::AddView(CView *) 1048 void CMetaFileDC::AdjustCP(int) 1049 void CRichEditView::AdjustDialogPosition(CDialog *) 1050 void CRectTracker::AdjustRect(int,tagRECT *) 1051 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1052 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1053 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1054 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1055 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1056 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1057 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1058 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1059 void AfxAbort(void) 1060 int AfxActivateActCtx(void *,unsigned long *) 1061 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 1062 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1063 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1064 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1065 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1066 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1067 void AfxCancelModes(HWND__ *) 1068 void AfxCheckError(long) 1069 void AfxClassInit(CRuntime*) 1070 int AfxComparePath(char const *,char const *) 1071 int AfxCompareValueByRef(void *,void *,int) 1072 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1073 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1074 void AfxCopyValueByRef(void *,void *,long *,int) 1075 void AfxCoreInitModule(void) 1076 void * AfxCreateActCtxW(tagACTCTXW const *) 1077 HDC__ * AfxCreateDC(void *,void *) 1078 int AfxCriticalInit(void) 1079 int AfxCriticalNewHandler(unsigned int) 1080 void AfxCriticalTerm(void) 1081 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1082 void AfxDaoCheck(long,char const *,char const *,int,int,int) 1083 _DAODBEngine * AfxDaoGetEngine(void) 1084 void AfxDaoInit(void) 1085 void AfxDaoTerm(void) 1086 AUX_DATA afxData 1087 int AfxDeactivateActCtx(unsigned long,unsigned long) 1088 void AfxDeleteObject(void * *) 1089 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1090 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1091 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1092 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1093 long AfxDllCanUnloadNow(void) 1094 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1095 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1096 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1097 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1098 void AfxEnableControlContainer(COccManager *) 1099 int AfxEndDeferRegisterClass(long) 1100 void AfxEndThread(unsigned int,int) 1101 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1102 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1103 void AfxFailMaxChars(CDataExchange *,int) 1104 void AfxFailRadio(CDataExchange *) 1105 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 1106 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1107 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1108 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1109 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1110 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1111 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1112 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1113 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1114 int AfxFreeLibrary(HINSTANCE__ *) 1115 int AfxFullPath(char *,char const *) 1116 long (__stdcall*AfxGetAfxWndProc(void))(HWND__ *,unsigned int,unsigned int,long) 1117 AFX_MODULE_STATE * AfxGetAppModuleState(void) 1118 long AfxGetClassIDFromString(char const *,_GUID *) 1119 tagMSG * AfxGetCurrentMessage(void) 1120 _AFX_DAO_STATE * AfxGetDaoState(void) 1121 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 1122 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1123 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 1124 unsigned long AfxGetDllVersion(void) 1125 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 1126 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1127 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1128 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1129 void * AfxGetHENV(void) 1130 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1131 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 1132 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 1133 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1134 HINSTANCE__ * AfxGetInstanceHandleHelper(void) 1135 unsigned long AfxGetInternetHandleType(void *) 1136 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1137 AFX_MODULE_STATE * AfxGetModuleState(void) 1138 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState(void) 1139 int (__cdecl*AfxGetNewHandler(void))(unsigned int) 1140 HWND__ * AfxGetParentOwner(HWND__ *) 1141 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1142 void AfxGetRoot(char const *,ATL::CStringT > > &) 1143 ATL::IAtlStringMgr * AfxGetStringManager(void) 1144 CWinThread * AfxGetThread(void) 1145 _AFX_THREAD_STATE * AfxGetThreadState(void) 1146 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1147 void AfxGlobalFree(void *) 1148 int AfxHelpEnabled(void) 1149 void AfxHookWindowCreate(CWnd *) 1150 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1151 int AfxInitCurrentStateApp(void) 1152 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1153 void AfxInitLocalData(HINSTANCE__ *) 1154 int AfxInitNetworkAddressControl(void) 1155 int AfxInitRichEdit(void) 1156 int AfxInitRichEdit2(void) 1157 void AfxInitThread(void) 1158 int AfxInternalIsIdleMessage(tagMSG *) 1159 int AfxInternalPreTranslateMessage(tagMSG *) 1160 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1161 int AfxInternalPumpMessage(void) 1162 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1163 int AfxIsDescendant(HWND__ *,HWND__ *) 1164 int AfxIsIdleMessage(tagMSG *) 1165 int AfxIsModuleDll(void) 1166 int AfxIsValidAddress(void const *,unsigned int,int) 1167 int AfxIsValidAtom(unsigned short) 1168 int AfxIsValidAtom(char const *) 1169 int AfxIsValidString(wchar_t const *,int) 1170 int AfxIsValidString(char const *,int) 1171 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1172 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1173 HINSTANCE__ * AfxLoadLangResourceDLL(char const *,char const *) 1174 HINSTANCE__ * AfxLoadLibrary(char const *) 1175 HINSTANCE__ * AfxLoadLibraryEx(char const *,void *,unsigned long) 1176 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1177 int AfxLoadString(unsigned int,char *,unsigned int) 1178 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1179 void AfxLockGlobals(int) 1180 void AfxLockTempMaps(void) 1181 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1182 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1183 int AfxMessageBox(char const *,unsigned int,unsigned int) 1184 int AfxOleCanExitApp(void) 1185 int AfxOleGetUserCtrl(void) 1186 int AfxOleInit(void) 1187 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1188 void AfxOleLockApp(void) 1189 int AfxOleLockControl(_GUID const &) 1190 int AfxOleLockControl(char const *) 1191 void AfxOleOnReleaseAllObjects(void) 1192 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1193 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1194 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1195 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1196 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1197 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1198 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1199 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1200 void AfxOleSetUserCtrl(int) 1201 void AfxOleTerm(int) 1202 void AfxOleTermOrFreeLib(int,int) 1203 void AfxOleUnlockAllControls(void) 1204 void AfxOleUnlockApp(void) 1205 int AfxOleUnlockControl(_GUID const &) 1206 int AfxOleUnlockControl(char const *) 1207 int AfxOleUnregisterClass(_GUID const &,char const *) 1208 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1209 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1210 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1211 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1212 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1213 void AfxPostQuitMessage(int) 1214 int AfxPreTranslateMessage(tagMSG *) 1215 long AfxProcessWndProcException(CException *,tagMSG const *) 1216 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1217 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1218 int AfxPumpMessage(void) 1219 unsigned int AfxReadStringLength(CArchive &,int &) 1220 int AfxRegisterClass(tagWNDCLASSA *) 1221 int AfxRegisterSiteFactory(IControlSiteFactory *) 1222 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1223 void AfxReleaseActCtx(void *) 1224 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1225 void AfxResetMsgCache(void) 1226 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1227 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1228 void AfxSafeArrayInit(COleSafeArray *) 1229 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 1230 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 1231 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1232 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 1233 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1234 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1235 void AfxSetWindowText(HWND__ *,char const *) 1236 void AfxSocketTerm(void) 1237 void AfxStoreField(CRecordset &,unsigned int,void *) 1238 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1239 wchar_t * AfxTaskStringA2W(char const *) 1240 char * AfxTaskStringW2A(wchar_t const *) 1241 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1242 void AfxTermLocalData(HINSTANCE__ *,int) 1243 void AfxTermThread(HINSTANCE__ *) 1244 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1245 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1246 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1247 void AfxThrowArchiveException(int,char const *) 1248 void AfxThrowDaoException(int,long) 1249 void AfxThrowDBException(short,CDatabase *,void *) 1250 void AfxThrowFileException(int,long,char const *) 1251 void AfxThrowInternetException(unsigned long,unsigned long) 1252 void AfxThrowInvalidArgException(void) 1253 void AfxThrowLastCleanup(void) 1254 void AfxThrowMemoryException(void) 1255 void AfxThrowNotSupportedException(void) 1256 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1257 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1258 void AfxThrowOleException(long) 1259 void AfxThrowResourceException(void) 1260 void AfxThrowUserException(void) 1261 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1262 void AfxTlsAddRef(void) 1263 void AfxTlsRelease(void) 1264 void AfxTrackerTerm(void) 1265 void AfxTryCleanup(void) 1266 int AfxUnhookWindowCreate(void) 1267 void AfxUnlockGlobals(int) 1268 int AfxUnlockTempMaps(int) 1269 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1270 int AfxUnregisterSiteFactory(IControlSiteFactory *) 1271 void AfxUnregisterWndClasses(void) 1272 void AfxVariantInit(tagVARIANT *) 1273 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1274 char * AfxW2AHelper(char *,wchar_t const *,int) 1275 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1276 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1277 void AfxWinTerm(void) 1278 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1279 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1280 void AfxWriteStringLength(CArchive &,unsigned int,int) 1281 void * CFixedAlloc::Alloc(void) 1282 void * CFixedAllocNoSync::Alloc(void) 1283 unsigned char * CMemFile::Alloc(unsigned long) 1284 unsigned char * CSharedFile::Alloc(unsigned long) 1285 void CRecordset::AllocAndCacheFieldInfo(void) 1286 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1287 void CDaoRecordset::AllocCache(void) 1288 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 1289 void CDatabase::AllocConnect(unsigned long) 1290 void COleSafeArray::AllocData(void) 1291 void CDaoRecordset::AllocDatabase(void) 1292 void CRecordset::AllocDataCache(void) 1293 void COleSafeArray::AllocDescriptor(unsigned long) 1294 int CControlBar::AllocElements(int,int) 1295 int CStatusBar::AllocElements(int,int) 1296 int CRecordset::AllocHstmt(void) 1297 void AllocLongBinary(CLongBinary &,unsigned long) 1298 void CPropertyPage::AllocPSP(unsigned long) 1299 void CRecordset::AllocRowset(void) 1300 int CThreadSlotData::AllocSlot(void) 1301 void CRecordset::AllocStatusArrays(void) 1302 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1303 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1304 void * CProperty::AllocValue(unsigned long) 1305 short COleControl::AmbientAppearance(void) 1306 unsigned long COleControl::AmbientBackColor(void) 1307 ATL::CStringT > > COleControl::AmbientDisplayName(void) 1308 IFontDisp * COleControl::AmbientFont(void) 1309 unsigned long COleControl::AmbientForeColor(void) 1310 unsigned long COleControl::AmbientLocaleID(void) 1311 ATL::CStringT > > COleControl::AmbientScaleUnits(void) 1312 int COleControl::AmbientShowGrabHandles(void) 1313 int COleControl::AmbientShowHatching(void) 1314 short COleControl::AmbientTextAlign(void) 1315 int COleControl::AmbientUIDead(void) 1316 int COleControl::AmbientUserMode(void) 1317 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1318 void ATL::CSimpleStringT::Append(wchar_t const *) 1319 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1320 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1321 void ATL::CSimpleStringT::Append(char const *) 1322 void ATL::CSimpleStringT::Append(char const *,int) 1323 int CByteArray::Append(CByteArray const &) 1324 void CDaoQueryDef::Append(void) 1325 void CDaoTableDef::Append(void) 1326 void CDaoWorkspace::Append(void) 1327 int CDWordArray::Append(CDWordArray const &) 1328 int CObArray::Append(CObArray const &) 1329 int CPtrArray::Append(CPtrArray const &) 1330 int CStringArray::Append(CStringArray const &) 1331 int CUIntArray::Append(CUIntArray const &) 1332 int CWordArray::Append(CWordArray const &) 1333 void ATL::CSimpleStringT::AppendChar(wchar_t) 1334 void ATL::CSimpleStringT::AppendChar(char) 1335 void CRecordset::AppendFilterAndSortSQL(void) 1336 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1337 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1338 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1339 void ATL::CStringT > >::AppendFormat(char const *,...) 1340 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1341 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1342 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1343 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1344 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 1345 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1346 long COlePropertyPage::XPropertyPage::Apply(void) 1347 void CFileDialog::ApplyOFNToShellDialog(void) 1348 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1349 int COleDocument::ApplyPrintDevice(tagPDA const *) 1350 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1351 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1352 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1353 int CAsyncSocket::AsyncSelect(long) 1354 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1355 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1356 int CAsyncSocket::Attach(unsigned int,long) 1357 int CDC::Attach(HDC__ *) 1358 int CGdiObject::Attach(void *) 1359 int CImageList::Attach(_IMAGELIST *) 1360 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1361 int CMenu::Attach(HMENU__ *) 1362 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1363 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1364 void COleDataObject::Attach(IDataObject *,int) 1365 void COleSafeArray::Attach(tagVARIANT &) 1366 void COleStreamFile::Attach(IStream *) 1367 void COleVariant::Attach(tagVARIANT &) 1368 int CWnd::Attach(HWND__ *) 1369 int COleDataObject::AttachClipboard(void) 1370 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1371 void CWnd::AttachControlSite(CHandleMap *) 1372 void CWnd::AttachControlSite(CWnd *,unsigned int) 1373 void COleClientItem::AttachDataObject(COleDataObject &)const 1374 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1375 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1376 CPrintDialog * CPrintDialog::AttachOnSetup(void) 1377 void COleControlSite::AttachWindow(void) 1378 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1379 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1380 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1381 void COleMessageFilter::BeginBusyState(void) 1382 int CDragListBox::BeginDrag(CPoint) 1383 void COleDataObject::BeginEnumFormats(void) 1384 void CFrameWnd::BeginModalState(void) 1385 void CDaoWorkspace::BeginTrans(void) 1386 int CDatabase::BeginTrans(void) 1387 void CCmdTarget::BeginWaitCursor(void) 1388 int CAsyncSocket::Bind(unsigned int,char const *) 1389 void CDataSourceControl::BindColumns(void) 1390 void COccManager::BindControls(CWnd *) 1391 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1392 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1393 void CDaoRecordset::BindFields(void) 1394 void CRecordset::BindFieldsForUpdate(void) 1395 unsigned int CRecordset::BindFieldsToColumns(void) 1396 void CDaoRecordset::BindParameters(void) 1397 void CDatabase::BindParameters(void *) 1398 unsigned int CRecordset::BindParams(void *) 1399 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1400 void CDataSourceControl::BindProp(COleControlSite *,int) 1401 void COleControlSite::BindProperty(long,CWnd *) 1402 void CWnd::BindProperty(long,CWnd *) 1403 void COleControl::BoundPropertyChanged(long) 1404 int COleControl::BoundPropertyRequestEdit(long) 1405 void CFrameWnd::BringToTop(int) 1406 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1407 void CDBException::BuildErrorString(CDatabase *,void *,int) 1408 void CDaoRecordset::BuildParameterList(void) 1409 void CPropertySheet::BuildPropPageArray(void) 1410 void CDaoRecordset::BuildSelectList(void) 1411 void CRecordset::BuildSelectSQL(void) 1412 int COleControl::BuildSharedMenu(void) 1413 int COleDocIPFrameWnd::BuildSharedMenu(void) 1414 int COleIPFrameWnd::BuildSharedMenu(void) 1415 void CDaoRecordset::BuildSQL(void) 1416 void CRecordset::BuildSQL(char const *) 1417 void CRecordset::BuildUpdateSQL(void) 1418 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1419 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1420 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1421 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1422 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1423 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1424 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1425 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1426 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1427 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1428 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1429 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1430 CSize CControlBar::CalcFixedLayout(int,int) 1431 CSize CDialogBar::CalcFixedLayout(int,int) 1432 CSize CDockBar::CalcFixedLayout(int,int) 1433 CSize CReBar::CalcFixedLayout(int,int) 1434 CSize CStatusBar::CalcFixedLayout(int,int) 1435 CSize CToolBar::CalcFixedLayout(int,int) 1436 void CControlBar::CalcInsideRect(CRect &,int)const 1437 void CStatusBar::CalcInsideRect(CRect &,int)const 1438 CSize CToolBar::CalcLayout(unsigned long,int) 1439 int CCheckListBox::CalcMinimumItemHeight(void) 1440 CSize CPreviewView::CalcPageDisplaySize(void) 1441 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1442 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1443 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1444 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1445 void CView::CalcWindowRect(tagRECT *,unsigned int) 1446 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1447 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1448 int CDHtmlDialog::CanAccessExternal(void) 1449 int COleClientItem::CanActivate(void) 1450 int CRichEditCntrItem::CanActivate(void) 1451 int CSplitterWnd::CanActivateNext(int) 1452 int CDaoRecordset::CanAppend(void)const 1453 int CDaoRecordset::CanBookmark(void) 1454 int CRecordset::CanBookmark(void)const 1455 void CDatabase::Cancel(void) 1456 void CRecordset::Cancel(void) 1457 void CSocket::CancelBlockingCall(void) 1458 void CDragListBox::CancelDrag(CPoint) 1459 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1460 long COleUILinkInfo::CancelLink(unsigned long) 1461 void CDockContext::CancelLoop(void) 1462 void CPropertyPage::CancelToClose(void) 1463 void CWnd::CancelToolTips(int) 1464 void CDaoRecordset::CancelUpdate(void) 1465 void CRecordset::CancelUpdate(void) 1466 int CDocument::CanCloseFrame(CFrameWnd *) 1467 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1468 int COleClientItem::CanCreateFromData(COleDataObject const *) 1469 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1470 unsigned long CDockContext::CanDock(void) 1471 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1472 int CFrameWnd::CanEnterHelpMode(void) 1473 long COleClientItem::XOleIPSite::CanInPlaceActivate(void) 1474 long COleControlSite::XOleIPSite::CanInPlaceActivate(void) 1475 int COleClientItem::CanPaste(void) 1476 int CRichEditCtrl::CanPaste(unsigned int)const 1477 int CRichEditView::CanPaste(void)const 1478 int COleClientItem::CanPasteLink(void) 1479 int CDaoRecordset::CanRestart(void) 1480 int CDaoRecordset::CanScroll(void)const 1481 int CDaoDatabase::CanTransact(void) 1482 int CDaoRecordset::CanTransact(void) 1483 int CDaoDatabase::CanUpdate(void) 1484 int CDaoQueryDef::CanUpdate(void) 1485 int CDaoRecordset::CanUpdate(void)const 1486 int CDaoTableDef::CanUpdate(void) 1487 long COleControlSite::XOleIPSite::CanWindowlessActivate(void) 1488 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1489 void CScrollView::CenterOnPoint(CPoint) 1490 void CWnd::CenterWindow(CWnd *) 1491 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1492 int CListBox::CharToItem(unsigned int,unsigned int) 1493 void ATL::CStringT > >::CharToOemA(void) 1494 int CDatabase::Check(short)const 1495 int CRecordset::Check(short)const 1496 int CDialog::CheckAutoCenter(void) 1497 int CWnd::CheckAutoCenter(void) 1498 void CArchive::CheckCount(void) 1499 void COleControlContainer::CheckDlgButton(int,unsigned int) 1500 void CWnd::CheckDlgButton(int,unsigned int) 1501 int CCheckListBox::CheckFromPoint(CPoint,int &) 1502 void COleClientItem::CheckGeneral(long) 1503 int CDatabase::CheckHstmt(short,void *)const 1504 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1505 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1506 void COleControlContainer::CheckRadioButton(int,int,int) 1507 void CWnd::CheckRadioButton(int,int,int) 1508 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1509 void CRecordset::CheckRowsetError(short) 1510 void CScrollView::CheckScrollBars(int &,int &)const 1511 CRuntimeconst CDaoDatabase::classCDaoDatabase 1512 CRuntimeconst CDaoException::classCDaoException 1513 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 1514 CRuntimeconst CDaoRecordset::classCDaoRecordset 1515 CRuntimeconst CDaoRecordView::classCDaoRecordView 1516 CRuntimeconst CDaoTableDef::classCDaoTableDef 1517 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 1518 CRuntimeconst CDatabase::classCDatabase 1519 CRuntimeconst CDBException::classCDBException 1520 CRuntimeconst CLongBinary::classCLongBinary 1521 CRuntimeconst COleDBRecordView::classCOleDBRecordView 1522 CRuntimeconst CRecordset::classCRecordset 1523 CRuntimeconst CRecordView::classCRecordView 1524 void CPropertyPage::Cleanup(void) 1525 void COlePropertyPage::CleanupObjectArray(void) 1526 void CDBVariant::Clear(void) 1527 void CDockState::Clear(void) 1528 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 1529 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1530 void CRecordset::ClearFieldStatus(void) 1531 void CDaoRecordset::ClearFieldStatusFlags(void) 1532 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 1533 void CRecordset::ClearNullFieldStatus(unsigned long) 1534 void CRecordset::ClearNullParamStatus(unsigned long) 1535 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1536 void CWnd::ClientToScreen(tagRECT *)const 1537 int COleControl::ClipCaretRect(tagRECT *) 1538 void CPreviewDC::ClipToPage(void) 1539 ATL::IAtlStringMgr * CAfxStringMgr::Clone(void) 1540 long CArchiveStream::Clone(IStream * *) 1541 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1542 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1543 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1544 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1545 void CArchive::Close(void) 1546 void CAsyncMonikerFile::Close(void) 1547 void CAsyncSocket::Close(void) 1548 void CCachedDataPathProperty::Close(void) 1549 void CDaoDatabase::Close(void) 1550 void CDaoQueryDef::Close(void) 1551 void CDaoRecordset::Close(void) 1552 void CDaoTableDef::Close(void) 1553 void CDaoWorkspace::Close(void) 1554 void CDatabase::Close(void) 1555 void CFile::Close(void) 1556 void CFileFind::Close(void) 1557 void CInternetConnection::Close(void) 1558 void CInternetFile::Close(void) 1559 void CInternetSession::Close(void) 1560 void CMemFile::Close(void) 1561 void CMirrorFile::Close(void) 1562 void CMonikerFile::Close(void) 1563 void COleClientItem::Close(enum tagOLECLOSE) 1564 void COleStreamFile::Close(void) 1565 void CRecordset::Close(void) 1566 void CSocket::Close(void) 1567 void CSocketFile::Close(void) 1568 void CStdioFile::Close(void) 1569 long CDocObjectServer::XOleObject::Close(unsigned long) 1570 long COleControl::XOleObject::Close(unsigned long) 1571 long COleServerDoc::XOleObject::Close(unsigned long) 1572 long COleServerItem::XOleObject::Close(unsigned long) 1573 void CDocManager::CloseAllDocuments(int) 1574 void CDocTemplate::CloseAllDocuments(int) 1575 void CWinApp::CloseAllDocuments(int) 1576 void CFileFind::CloseContext(void) 1577 void CFtpFileFind::CloseContext(void) 1578 void CGopherFileFind::CloseContext(void) 1579 long CThemeHelper::CloseThemeData(void *) 1580 long CThemeHelper::CloseThemeDataFail(void *) 1581 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1582 int ATL::CStringT > >::Collate(wchar_t const *)const 1583 int ATL::CStringT > >::Collate(char const *)const 1584 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 1585 int ATL::CStringT > >::CollateNoCase(char const *)const 1586 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1587 int CStatusBar::CommandToIndex(unsigned int)const 1588 int CToolBar::CommandToIndex(unsigned int)const 1589 long CArchiveStream::Commit(unsigned long) 1590 void COleClientItem::CommitItem(int) 1591 void COleDocument::CommitItems(int,IStorage *) 1592 void CDaoWorkspace::CommitTrans(void) 1593 int CDatabase::CommitTrans(void) 1594 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 1595 void CPropertyPage::CommonConstruct(char const *,unsigned int) 1596 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 1597 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1598 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1599 void CWinThread::CommonConstruct(void) 1600 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 1601 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 1602 int ATL::CStringT > >::Compare(wchar_t const *)const 1603 int ATL::CStringT > >::Compare(char const *)const 1604 int CComboBox::CompareItem(tagCOMPAREITEM*) 1605 int CListBox::CompareItem(tagCOMPAREITEM*) 1606 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 1607 int ATL::CStringT > >::CompareNoCase(char const *)const 1608 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 1609 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 1610 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 1611 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 1612 int CAsyncSocket::Connect(char const *,unsigned int) 1613 int CDatabase::Connect(unsigned long) 1614 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1615 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1616 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1617 int CSocket::ConnectHelper(sockaddr const *,int) 1618 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1619 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1620 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1621 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1622 void COleServerDoc::ConnectView(CWnd *,CView *) 1623 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1624 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1625 void CPropertyPage::Construct(unsigned int,unsigned int) 1626 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1627 void CPropertyPage::Construct(char const *,unsigned int) 1628 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 1629 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1630 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1631 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 1632 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1633 void CRectTracker::Construct(void) 1634 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1635 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1636 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1637 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1638 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1639 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1640 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1641 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1642 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1643 int CPropertySheet::ContinueModal(void) 1644 int CWnd::ContinueModal(void) 1645 void COleControl::ControlInfoChanged(void) 1646 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1647 int COleClientItem::ConvertTo(_GUID const &) 1648 int CRichEditCntrItem::ConvertTo(_GUID const &) 1649 void CByteArray::Copy(CByteArray const &) 1650 void CDWordArray::Copy(CDWordArray const &) 1651 void CObArray::Copy(CObArray const &) 1652 void COleSafeArray::Copy(tagSAFEARRAY * *) 1653 void CPtrArray::Copy(CPtrArray const &) 1654 void CStringArray::Copy(CStringArray const &) 1655 void CUIntArray::Copy(CUIntArray const &) 1656 void CWordArray::Copy(CWordArray const &) 1657 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 1658 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 1659 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 1660 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 1661 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1662 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1663 void COleClientItem::CopyToClipboard(int) 1664 void COleServerItem::CopyToClipboard(int) 1665 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 1666 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1667 int CAsyncSocket::Create(unsigned int,int,long,char const *) 1668 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1669 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1670 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1671 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1672 int CControlFrameWnd::Create(char const *) 1673 void CDaoDatabase::Create(char const *,char const *,int) 1674 void CDaoQueryDef::Create(char const *,char const *) 1675 void CDaoTableDef::Create(char const *,long,char const *,char const *) 1676 void CDaoWorkspace::Create(char const *,char const *,char const *) 1677 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1678 int CDialog::Create(char const *,CWnd *) 1679 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 1680 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1681 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1682 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 1683 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1684 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 1685 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1686 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1687 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1688 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1689 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1690 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1691 int CImageList::Create(int,int,unsigned int,int,int) 1692 int CImageList::Create(unsigned int,int,int,unsigned long) 1693 int CImageList::Create(CImageList *) 1694 int CImageList::Create(char const *,int,int,unsigned long) 1695 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1696 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1697 int CLinkCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1698 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1699 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1700 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1701 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1702 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1703 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1704 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1705 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1706 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1707 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1708 int CPagerCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1709 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1710 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1711 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1712 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1713 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1714 int CReflectorWnd::Create(CRect const &,HWND__ *) 1715 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1716 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1717 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1718 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1719 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1720 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1721 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1722 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1723 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1724 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1725 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1726 int CToolTipCtrl::Create(CWnd *,unsigned long) 1727 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1728 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1729 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1730 void AFX_MODULE_STATE::CreateActivationContext(void) 1731 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1732 IBindHost * CMonikerFile::CreateBindHost(void) 1733 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1734 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 1735 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1736 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1737 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1738 void CConnectionPoint::CreateConnectionArray(void) 1739 COleControlContainer * COccManager::CreateContainer(CWnd *) 1740 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1741 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1742 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 1743 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 1744 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1745 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1746 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1747 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1748 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 1749 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1750 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1751 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1752 int CWnd::CreateControlContainer(COleControlContainer * *) 1753 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1754 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1755 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1756 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1757 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1758 int CFtpConnection::CreateDirectoryA(char const *) 1759 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1760 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 1761 int CWnd::CreateDlg(char const *,CWnd *) 1762 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1763 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1764 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 1765 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1766 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1767 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1768 int CPictureHolder::CreateEmpty(void) 1769 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1770 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1771 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1772 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1773 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1774 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1775 int CLinkCtrl::CreateEx(char const *,unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1776 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1777 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1778 int CPagerCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1779 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1780 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1781 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1782 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1783 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1784 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1785 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1786 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1787 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1788 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1789 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1790 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1791 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1792 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1793 void CDaoTableDef::CreateField(CDaoFieldInfo &) 1794 void CDaoTableDef::CreateField(char const *,short,long,long) 1795 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1796 CControlFrameWnd * COleControl::CreateFrameWindow(void) 1797 int CPictureHolder::CreateFromBitmap(unsigned int) 1798 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1799 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1800 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1801 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1802 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1803 int CPictureHolder::CreateFromIcon(unsigned int) 1804 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1805 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1806 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 1807 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1808 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1809 int CDialog::CreateIndirect(void *,CWnd *) 1810 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1811 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1812 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1813 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1814 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1815 int COleInsertDialog::CreateItem(COleClientItem *) 1816 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1817 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1818 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1819 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1820 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 1821 CGopherLocator CGopherConnection::CreateLocator(char const *) 1822 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 1823 int COleStreamFile::CreateMemoryStream(CFileException *) 1824 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1825 CDocument * CDocTemplate::CreateNewDocument(void) 1826 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1827 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1828 CObject * CByteArray::CreateObject(void) 1829 CObject * CDC::CreateObject(void) 1830 CObject * CDocItem::CreateObject(void) 1831 CObject * CDockState::CreateObject(void) 1832 CObject * CDWordArray::CreateObject(void) 1833 CObject * CEditView::CreateObject(void) 1834 CObject * CFrameWnd::CreateObject(void) 1835 CObject * CGdiObject::CreateObject(void) 1836 CObject * CHtmlEditView::CreateObject(void) 1837 CObject * CHtmlView::CreateObject(void) 1838 CObject * CImageList::CreateObject(void) 1839 CObject * CListView::CreateObject(void) 1840 CObject * CMapStringToOb::CreateObject(void) 1841 CObject * CMapStringToString::CreateObject(void) 1842 CObject * CMapWordToOb::CreateObject(void) 1843 CObject * CMDIChildWnd::CreateObject(void) 1844 CObject * CMDIFrameWnd::CreateObject(void) 1845 CObject * CMenu::CreateObject(void) 1846 CObject * CMiniDockFrameWnd::CreateObject(void) 1847 CObject * CMiniFrameWnd::CreateObject(void) 1848 CObject * CObArray::CreateObject(void) 1849 CObject * CObList::CreateObject(void) 1850 CObject * COleDocIPFrameWnd::CreateObject(void) 1851 CObject * COleIPFrameWnd::CreateObject(void) 1852 CObject * CPreviewView::CreateObject(void) 1853 CObject * CRichEditCntrItem::CreateObject(void) 1854 CObject * CRichEditView::CreateObject(void) 1855 CObject * CRuntimeClass::CreateObject(void) 1856 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1857 CObject * CRuntimeClass::CreateObject(char const *) 1858 CObject * CStringArray::CreateObject(void) 1859 CObject * CStringList::CreateObject(void) 1860 CObject * CTreeView::CreateObject(void) 1861 CObject * CWnd::CreateObject(void) 1862 CObject * CWordArray::CreateObject(void) 1863 void COleControlContainer::CreateOleFont(CFont *) 1864 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1865 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1866 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1867 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 1868 int CFont::CreatePointFont(int,char const *,CDC *) 1869 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 1870 HDC__ * CPageSetupDialog::CreatePrinterDC(void) 1871 HDC__ * CPrintDialog::CreatePrinterDC(void) 1872 HDC__ * CPrintDialogEx::CreatePrinterDC(void) 1873 int CWinApp::CreatePrinterDC(CDC &) 1874 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 1875 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 1876 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1877 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 1878 COleControlSite * COccManager::CreateSite(COleControlContainer *) 1879 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 1880 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1881 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1882 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1883 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 1884 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1885 void COleControl::CreateTracker(int,int) 1886 void COleControl::CreateTracker(int,int,tagRECT const *) 1887 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1888 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1889 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1890 void COleControl::CreateWindowForSubclassedControl(void) 1891 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1892 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1893 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1894 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1895 void DDP_Check(CDataExchange *,int,int &,char const *) 1896 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 1897 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 1898 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 1899 void DDP_EndText(CDataExchange *,int,short *,char const *) 1900 void DDP_EndText(CDataExchange *,int,int *,char const *) 1901 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 1902 void DDP_EndText(CDataExchange *,int,long *,char const *) 1903 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 1904 void DDP_EndText(CDataExchange *,int,float *,char const *) 1905 void DDP_EndText(CDataExchange *,int,double *,char const *) 1906 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 1907 void DDP_PostProcessing(CDataExchange *) 1908 void DDP_Radio(CDataExchange *,int,int &,char const *) 1909 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 1910 void DDP_Text(CDataExchange *,int,short &,char const *) 1911 void DDP_Text(CDataExchange *,int,int &,char const *) 1912 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 1913 void DDP_Text(CDataExchange *,int,long &,char const *) 1914 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 1915 void DDP_Text(CDataExchange *,int,float &,char const *) 1916 void DDP_Text(CDataExchange *,int,double &,char const *) 1917 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 1918 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1919 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1920 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1921 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1922 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1923 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1924 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1925 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1926 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1927 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1928 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1929 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1930 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1931 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1932 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1933 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1934 void DDX_CBIndex(CDataExchange *,int,int &) 1935 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1936 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1937 void DDX_Check(CDataExchange *,int,int &) 1938 void DDX_Control(CDataExchange *,int,CWnd &) 1939 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1940 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1941 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1942 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1943 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1944 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1945 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 1946 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 1947 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 1948 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 1949 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 1950 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 1951 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 1952 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 1953 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 1954 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 1955 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 1956 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 1957 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 1958 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 1959 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 1960 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 1961 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 1962 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 1963 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 1964 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 1965 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 1966 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 1967 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 1968 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 1969 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 1970 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 1971 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 1972 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 1973 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 1974 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 1975 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 1976 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1977 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1978 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1979 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1980 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1981 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 1982 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1983 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 1984 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1985 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1986 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1987 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1988 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1989 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 1990 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1991 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 1992 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1993 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 1994 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 1995 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1996 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 1997 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 1998 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1999 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2000 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 2001 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2002 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 2003 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2004 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 2005 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2006 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 2007 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2008 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2009 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2010 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 2011 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 2012 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 2013 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 2014 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2015 void DDX_LBIndex(CDataExchange *,int,int &) 2016 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2017 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2018 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2019 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2020 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2021 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2022 void DDX_OCBool(CDataExchange *,int,long,int &) 2023 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2024 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2025 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2026 void DDX_OCFloat(CDataExchange *,int,long,float &) 2027 void DDX_OCFloat(CDataExchange *,int,long,double &) 2028 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2029 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2030 void DDX_OCInt(CDataExchange *,int,long,int &) 2031 void DDX_OCInt(CDataExchange *,int,long,long &) 2032 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2033 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2034 void DDX_OCShort(CDataExchange *,int,long,short &) 2035 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2036 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2037 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2038 void DDX_Radio(CDataExchange *,int,int &) 2039 void DDX_Scroll(CDataExchange *,int,int &) 2040 void DDX_Slider(CDataExchange *,int,int &) 2041 void DDX_Text(CDataExchange *,int,__int64 &) 2042 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2043 void DDX_Text(CDataExchange *,int,unsigned char &) 2044 void DDX_Text(CDataExchange *,int,short &) 2045 void DDX_Text(CDataExchange *,int,int &) 2046 void DDX_Text(CDataExchange *,int,unsigned int &) 2047 void DDX_Text(CDataExchange *,int,long &) 2048 void DDX_Text(CDataExchange *,int,unsigned long &) 2049 void DDX_Text(CDataExchange *,int,float &) 2050 void DDX_Text(CDataExchange *,int,double &) 2051 void DDX_Text(CDataExchange *,int,_FILETIME &) 2052 void DDX_Text(CDataExchange *,int,_GUID &) 2053 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2054 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2055 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2056 void DDX_Text(CDataExchange *,int,tagDEC &) 2057 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2058 void DDX_Text(CDataExchange *,int,COleCurrency &) 2059 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2060 void DDX_Text(CDataExchange *,int,char *,int) 2061 void COleClientItem::Deactivate(void) 2062 long COlePropertyPage::XPropertyPage::Deactivate(void) 2063 int COleServerDoc::DeactivateAndUndo(void) 2064 long COleClientItem::XOleIPSite::DeactivateAndUndo(void) 2065 long COleControlSite::XOleIPSite::DeactivateAndUndo(void) 2066 void COleClientItem::DeactivateUI(void) 2067 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 2068 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 2069 long CWnd::Default(void) 2070 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 2071 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 2072 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 2073 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 2074 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 2075 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2076 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2077 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2078 void CControlBar::DelayShow(int) 2079 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2080 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2081 int ATL::CStringT > >::Delete(int,int) 2082 int ATL::CStringT > >::Delete(int,int) 2083 void CDaoRecordset::Delete(void) 2084 void CException::Delete(void) 2085 void COleClientItem::Delete(int) 2086 void CRecordset::Delete(void) 2087 void CWinThread::Delete(void) 2088 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 2089 void CSplitterWnd::DeleteColumn(int) 2090 void CDocument::DeleteContents(void) 2091 void CEditView::DeleteContents(void) 2092 void CHtmlEditDoc::DeleteContents(void) 2093 void COleDocument::DeleteContents(void) 2094 void COleServerDoc::DeleteContents(void) 2095 void CRichEditDoc::DeleteContents(void) 2096 void CRichEditView::DeleteContents(void) 2097 int CDC::DeleteDC(void) 2098 void CDaoTableDef::DeleteField(int) 2099 void CDaoTableDef::DeleteField(char const *) 2100 int CImageList::DeleteImageList(void) 2101 void CDaoTableDef::DeleteIndex(int) 2102 void CDaoTableDef::DeleteIndex(char const *) 2103 void CComboBox::DeleteItem(tagDELETEITEM*) 2104 int CComboBoxEx::DeleteItem(int) 2105 void CListBox::DeleteItem(tagDELETEITEM*) 2106 int CGdiObject::DeleteObject(void) 2107 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2108 void CDaoDatabase::DeleteQueryDef(char const *) 2109 void CDaoDatabase::DeleteRelation(char const *) 2110 void CSplitterWnd::DeleteRow(int) 2111 void CDaoDatabase::DeleteTableDef(char const *) 2112 void CHandleMap::DeleteTemp(void) 2113 void CDC::DeleteTempMap(void) 2114 void CGdiObject::DeleteTempMap(void) 2115 void CImageList::DeleteTempMap(void) 2116 void CMenu::DeleteTempMap(void) 2117 void CWnd::DeleteTempMap(void) 2118 void CRichEditDoc::DeleteUnmarkedItems(void)const 2119 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2120 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2121 void CSplitterWnd::DeleteView(int,int) 2122 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2123 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2124 void COleSafeArray::Destroy(void) 2125 int COleControlSite::DestroyControl(void) 2126 void COleSafeArray::DestroyData(void) 2127 void COleSafeArray::DestroyDescriptor(void) 2128 void CFrameWnd::DestroyDockBars(void) 2129 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2130 int CMenu::DestroyMenu(void) 2131 void CDHtmlDialog::DestroyModeless(void) 2132 void COleControl::DestroySharedMenu(void) 2133 void COleDocIPFrameWnd::DestroySharedMenu(void) 2134 void COleIPFrameWnd::DestroySharedMenu(void) 2135 int CToolTipCtrl::DestroyToolTipCtrl(void) 2136 void COleControl::DestroyTracker(void) 2137 int CControlBar::DestroyWindow(void) 2138 int CMDIChildWnd::DestroyWindow(void) 2139 int CWnd::DestroyWindow(void) 2140 unsigned int CAsyncSocket::Detach(void) 2141 HDC__ * CDC::Detach(void) 2142 void * CDialogTemplate::Detach(void) 2143 void * CGdiObject::Detach(void) 2144 _IMAGELIST * CImageList::Detach(void) 2145 unsigned char * CMemFile::Detach(void) 2146 HMENU__ * CMenu::Detach(void) 2147 int CMonikerFile::Detach(CFileException *) 2148 IDataObject * COleDataObject::Detach(void) 2149 tagVARIANT COleSafeArray::Detach(void) 2150 IStream * COleStreamFile::Detach(void) 2151 tagVARIANT COleVariant::Detach(void) 2152 void * CSharedFile::Detach(void) 2153 HDC__ * CWindowlessDC::Detach(void) 2154 HWND__ * CWnd::Detach(void) 2155 IDispatch * COleDispatchDriver::DetachDispatch(void) 2156 void CAsyncSocket::DetachHandle(unsigned int,int) 2157 void COleControlSite::DetachWindow(void) 2158 void CWinApp::DevModeChange(char *) 2159 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 2160 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 2161 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 2162 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 2163 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 2164 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 2165 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 2166 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 2167 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 2168 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 2169 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 2170 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2171 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2172 int COleServerDoc::DiscardUndoState(void) 2173 long COleClientItem::XOleIPSite::DiscardUndoState(void) 2174 long COleControlSite::XOleIPSite::DiscardUndoState(void) 2175 void COleDispatchImpl::Disconnect(void) 2176 void CDHtmlDialog::DisconnectDHtmlElementEvents(void) 2177 void CDHtmlDialog::DisconnectDHtmlEvents(void) 2178 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2179 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2180 void CDocument::DisconnectViews(void) 2181 void CWinThread::DispatchThreadMessage(tagMSG *) 2182 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2183 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 2184 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2185 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2186 void CAsyncSocket::DoCallBack(unsigned int,long) 2187 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2188 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2189 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2190 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2191 void COleControl::DoClick(void) 2192 int COleFrameHook::DoContextSensitiveHelp(int) 2193 int COleConvertDialog::DoConvert(COleClientItem *) 2194 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2195 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2196 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2197 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2198 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2199 int COleFrameHook::DoEnableModeless(int) 2200 void CWinApp::DoEnableModeless(int) 2201 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2202 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 2203 void CRecordset::DoFieldExchange(CFieldExchange *) 2204 int CDocument::DoFileSave(void) 2205 int CSplitterWnd::DoKeyboardSplit(void) 2206 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2207 int CColorDialog::DoModal(void) 2208 int CDialog::DoModal(void) 2209 int CFileDialog::DoModal(void) 2210 int CFontDialog::DoModal(void) 2211 int COleBusyDialog::DoModal(void) 2212 int COleChangeIconDialog::DoModal(void) 2213 int COleChangeSourceDialog::DoModal(void) 2214 int COleConvertDialog::DoModal(void) 2215 int COleInsertDialog::DoModal(unsigned long) 2216 int COleInsertDialog::DoModal(void) 2217 int COleLinksDialog::DoModal(void) 2218 int COlePasteSpecialDialog::DoModal(void) 2219 int COlePropertiesDialog::DoModal(void) 2220 int COleUpdateDialog::DoModal(void) 2221 int CPageSetupDialog::DoModal(void) 2222 int CPrintDialog::DoModal(void) 2223 int CPrintDialogEx::DoModal(void) 2224 int CPropertySheet::DoModal(void) 2225 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2226 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2227 void CControlBar::DoPaint(CDC *) 2228 void CDockBar::DoPaint(CDC *) 2229 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2230 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2231 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2232 int CView::DoPreparePrinting(CPrintInfo *) 2233 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2234 int CWinApp::DoPrintDialog(CPrintDialog *) 2235 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2236 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2237 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2238 void COleControl::DoPropExchange(CPropExchange *) 2239 int CDocument::DoSave(char const *,int) 2240 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2241 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2242 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2243 int CCmdUI::DoUpdate(CCmdTarget *,int) 2244 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2245 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2246 long COleControlSite::DoVerb(long,tagMSG *) 2247 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2248 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2249 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2250 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2251 void CWinApp::DoWaitCursor(int) 2252 void CPreviewView::DoZoom(unsigned int,CPoint) 2253 void CDC::DPtoHIMETRIC(tagSIZE *)const 2254 void CDC::DPtoLP(tagSIZE *)const 2255 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2256 unsigned int CDragListBox::Dragging(CPoint) 2257 long COleDropTarget::XDropTarget::DragLeave(void) 2258 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2259 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2260 void CRectTracker::Draw(CDC *)const 2261 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2262 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2263 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2264 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2265 void CControlBar::DrawBorders(CDC *,CRect &) 2266 void COleControl::DrawContent(CDC *,CRect &) 2267 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2268 void CDockContext::DrawFocusRect(int) 2269 void CControlBar::DrawGripper(CDC *,CRect const &) 2270 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2271 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2272 void CDragListBox::DrawInsert(int) 2273 void CBitmapButton::DrawItem(tagDRAWITEM*) 2274 void CButton::DrawItem(tagDRAWITEM*) 2275 void CCheckListBox::DrawItem(tagDRAWITEM*) 2276 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2277 void CComboBox::DrawItem(tagDRAWITEM*) 2278 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2279 void CListBox::DrawItem(tagDRAWITEM*) 2280 void CListCtrl::DrawItem(tagDRAWITEM*) 2281 void CListView::DrawItem(tagDRAWITEM*) 2282 void CMenu::DrawItem(tagDRAWITEM*) 2283 void CStatic::DrawItem(tagDRAWITEM*) 2284 void CStatusBar::DrawItem(tagDRAWITEM*) 2285 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2286 void CTabCtrl::DrawItem(tagDRAWITEM*) 2287 void COleControl::DrawMetafile(CDC *,CRect &) 2288 void CControlBar::DrawNCGripper(CDC *,CRect const &) 2289 int CControlBar::DrawNonThemedGripper(CDC *,CRect const &) 2290 void CDragListBox::DrawSingle(int) 2291 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2292 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2293 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2294 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2295 long CThemeHelper::DrawThemeBackground(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2296 long CThemeHelper::DrawThemeBackgroundFail(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2297 int CControlBar::DrawThemedGripper(CDC *,CRect const &,int) 2298 long CThemeHelper::DrawThemeParentBackground(HWND__ *,HDC__ *,tagRECT *) 2299 long CThemeHelper::DrawThemeParentBackgroundFail(HWND__ *,HDC__ *,tagRECT *) 2300 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2301 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2302 void CDragListBox::Dropped(int,CPoint) 2303 CDumpContext & CDumpContext::DumpAsHex(__int64) 2304 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2305 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2306 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2307 CDumpContext & CDumpContext::DumpAsHex(int) 2308 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2309 CDumpContext & CDumpContext::DumpAsHex(long) 2310 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2311 long COleControl::XDataObject::DUnadvise(unsigned long) 2312 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2313 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2314 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2315 CFile * CFile::Duplicate(void)const 2316 CFile * CInternetFile::Duplicate(void)const 2317 CFile * CMemFile::Duplicate(void)const 2318 CFile * COleStreamFile::Duplicate(void)const 2319 CFile * CSocketFile::Duplicate(void)const 2320 CFile * CStdioFile::Duplicate(void)const 2321 unsigned long const CEditView::dwStyleDefault 2322 void CDaoRecordset::Edit(void) 2323 void CRecordset::Edit(void) 2324 long COlePropertyPage::XPropertyPage::EditProperty(long) 2325 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2326 void ATL::CSimpleStringT::Empty(void) 2327 void ATL::CSimpleStringT::Empty(void) 2328 void CDBException::Empty(void) 2329 void COleDataSource::Empty(void) 2330 void CCheckListBox::Enable(int,int) 2331 void CCmdUI::Enable(int) 2332 void COleCmdUI::Enable(int) 2333 void CStatusCmdUI::Enable(int) 2334 void CTestCmdUI::Enable(int) 2335 void CToolCmdUI::Enable(int) 2336 void CCmdTarget::EnableAggregation(void) 2337 void CCmdTarget::EnableAutomation(void) 2338 void CRecordset::EnableBookmarks(void) 2339 void CCmdTarget::EnableConnections(void) 2340 void CControlBar::EnableDocking(unsigned long) 2341 void CFrameWnd::EnableDocking(unsigned long) 2342 void COleControlSite::EnableDSC(void) 2343 long CBrowserControlSite::EnableModeless(int) 2344 long CDHtmlDialog::EnableModeless(int) 2345 void CWinApp::EnableModeless(int) 2346 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2347 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2348 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2349 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2350 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2351 void CWnd::EnableScrollBarCtrl(int,int) 2352 void CWinApp::EnableShellOpen(void) 2353 void COleControl::EnableSimpleFrame(void) 2354 void CPropertySheet::EnableStackedTabs(int) 2355 int CInternetSession::EnableStatusCallback(int) 2356 int CWnd::EnableToolTips(int) 2357 int CWnd::EnableTrackingToolTips(int) 2358 void CCmdTarget::EnableTypeLib(void) 2359 int COleControlSite::EnableWindow(int) 2360 int CWnd::EnableWindow(int) 2361 void COleMessageFilter::EndBusyState(void) 2362 void CAsyncMonikerFile::EndCallbacks(void) 2363 long COleLinkingDoc::EndDeferErrors(long) 2364 void CDialog::EndDialog(int) 2365 void CPropertyPage::EndDialog(int) 2366 void CPropertySheet::EndDialog(int) 2367 void CDockContext::EndDrag(void) 2368 void CWnd::EndModalLoop(int) 2369 void CFrameWnd::EndModalState(void) 2370 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 2371 void CDockContext::EndResize(void) 2372 void CCmdTarget::EndWaitCursor(void) 2373 void COleDataObject::EnsureClipboardObject(void) 2374 void CArchive::EnsureSchemaMapExists(CArray * *) 2375 long CWnd::EnsureStdObj(void) 2376 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2377 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2378 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2379 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2380 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2381 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2382 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2383 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2384 int COlePropertyPage::EnumControls(HWND__ *,long) 2385 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2386 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2387 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2388 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2389 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2390 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2391 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2392 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2393 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2394 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2395 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2396 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2397 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2398 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2399 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2400 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2401 void CControlBar::EraseNonClient(void) 2402 int CFileException::ErrnoToException(int) 2403 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2404 int CMetaFileDC::Escape(int,int,char const *,void *) 2405 int CPreviewDC::Escape(int,int,char const *,void *) 2406 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 2407 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2408 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2409 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2410 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 2411 int COleControl::ExchangeExtent(CPropExchange *) 2412 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2413 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2414 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2415 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2416 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2417 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2418 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2419 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2420 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2421 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 2422 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2423 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2424 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2425 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2426 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 2427 void COleControl::ExchangeStockProps(CPropExchange *) 2428 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2429 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2430 int CDC::ExcludeClipRect(int,int,int,int) 2431 int CDC::ExcludeClipRect(tagRECT const *) 2432 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2433 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2434 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2435 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2436 int CHtmlEditView::ExecHandler(unsigned int) 2437 void CDaoDatabase::Execute(char const *,int) 2438 void CDaoQueryDef::Execute(int) 2439 int CWnd::ExecuteDlgInit(void *) 2440 int CWnd::ExecuteDlgInit(char const *) 2441 void CRecordset::ExecuteSetPosUpdate(void) 2442 void CDatabase::ExecuteSQL(char const *) 2443 void CRecordset::ExecuteUpdateSQL(void) 2444 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2445 void CFrameWnd::ExitHelpMode(void) 2446 int COleControlModule::ExitInstance(void) 2447 int CWinApp::ExitInstance(void) 2448 int CWinThread::ExitInstance(void) 2449 unsigned long CCmdTarget::ExternalAddRef(void) 2450 void CCmdTarget::ExternalDisconnect(void) 2451 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2452 unsigned long CCmdTarget::ExternalRelease(void) 2453 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2454 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 2455 void CDataExchange::Fail(void) 2456 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2457 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2458 void CArchive::FillBuffer(unsigned int) 2459 void CDaoRecordset::FillCache(long *,COleVariant *) 2460 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 2461 void CDaoException::FillErrorInfo(void) 2462 unsigned long CFontDialog::FillInLogFont(_charformat const &) 2463 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 2464 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 2465 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2466 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 2467 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 2468 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 2469 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2470 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2471 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 2472 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 2473 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 2474 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2475 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2476 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2477 void CWnd::FilterToolTipMessage(tagMSG *) 2478 int ATL::CStringT > >::Find(wchar_t,int)const 2479 int ATL::CStringT > >::Find(wchar_t const *,int)const 2480 int ATL::CStringT > >::Find(char,int)const 2481 int ATL::CStringT > >::Find(char const *,int)const 2482 int CDaoRecordset::Find(long,char const *) 2483 __POSITION * CObList::Find(CObject *,__POSITION *)const 2484 __POSITION * CPtrList::Find(void *,__POSITION *)const 2485 __POSITION * CStringList::Find(char const *,__POSITION *)const 2486 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 2487 int CDockBar::FindBar(CControlBar *,int) 2488 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2489 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2490 int CFileFind::FindFile(char const *,unsigned long) 2491 int CFtpFileFind::FindFile(char const *,unsigned long) 2492 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 2493 int CGopherFileFind::FindFile(char const *,unsigned long) 2494 int CDaoRecordset::FindFirst(char const *) 2495 __POSITION * CObList::FindIndex(int)const 2496 __POSITION * CPtrList::FindIndex(int)const 2497 __POSITION * CStringList::FindIndex(int)const 2498 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2499 int CDaoRecordset::FindLast(char const *) 2500 int CDaoRecordset::FindNext(char const *) 2501 int CFileFind::FindNextFileA(void) 2502 int CFtpFileFind::FindNextFileA(void) 2503 int CGopherFileFind::FindNextFileA(void) 2504 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 2505 int ATL::CStringT > >::FindOneOf(char const *)const 2506 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2507 int CDaoRecordset::FindPrev(char const *) 2508 int CDHtmlDialog::FindSinkForObject(char const *) 2509 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 2510 __POSITION * CWnd::FindSiteOrWndWithFocus(void)const 2511 char const * CRecordset::FindSQLToken(char const *,char const *) 2512 int CEditView::FindTextA(char const *,int,int) 2513 int CRichEditView::FindTextA(char const *,int,int,int) 2514 int CRichEditView::FindTextSimple(char const *,int,int,int) 2515 int COleClientItem::FinishCreate(long) 2516 void COleControl::FireError(long,char const *,unsigned int) 2517 void COleControl::FireEvent(long,unsigned char *,...) 2518 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2519 void COleControl::FireEventV(long,unsigned char *,char *) 2520 void CDaoRecordset::Fixup(void) 2521 void CRecordset::Fixups(void) 2522 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2523 void CArchive::Flush(void) 2524 void CDumpContext::Flush(void) 2525 void CFile::Flush(void) 2526 void CInternetFile::Flush(void) 2527 void CMemFile::Flush(void) 2528 void CMonikerFile::Flush(void) 2529 void COleStreamFile::Flush(void) 2530 void CSocketFile::Flush(void) 2531 void CStdioFile::Flush(void) 2532 void COleDataSource::FlushClipboard(void) 2533 int CRecordset::FlushResultSet(void) 2534 void ATL::CSimpleStringT::Fork(int) 2535 void ATL::CSimpleStringT::Fork(int) 2536 void ATL::CStringT > >::Format(unsigned int,...) 2537 void ATL::CStringT > >::Format(wchar_t const *,...) 2538 void ATL::CStringT > >::Format(unsigned int,...) 2539 void ATL::CStringT > >::Format(char const *,...) 2540 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2541 void ATL::CStringT > >::FormatMessage(unsigned int,...) 2542 void ATL::CStringT > >::FormatMessage(char const *,...) 2543 void ATL::CStringT > >::FormatMessageA(unsigned int,...) 2544 void ATL::CStringT > >::FormatMessageA(char const *,...) 2545 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 2546 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 2547 void ATL::CStringT > >::FormatV(char const *,char *) 2548 void COleControl::ForwardActivationMsg(tagMSG *) 2549 void CAfxStringMgr::Free(ATL::CStringData *) 2550 void CDatabase::Free(void) 2551 void CFixedAlloc::Free(void *) 2552 void CFixedAllocNoSync::Free(void *) 2553 void CMemFile::Free(unsigned char *) 2554 void CSharedFile::Free(unsigned char *) 2555 void CFixedAlloc::FreeAll(void) 2556 void CFixedAllocNoSync::FreeAll(void) 2557 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2558 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2559 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2560 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2561 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2562 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2563 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2564 void CDaoRecordset::FreeCache(void) 2565 void CRecordset::FreeDataCache(void) 2566 void CPlex::FreeDataChain(void) 2567 void ATL::CSimpleStringT::FreeExtra(void) 2568 void ATL::CSimpleStringT::FreeExtra(void) 2569 void CByteArray::FreeExtra(void) 2570 void CDWordArray::FreeExtra(void) 2571 void CObArray::FreeExtra(void) 2572 void CPtrArray::FreeExtra(void) 2573 void CStringArray::FreeExtra(void) 2574 void CUIntArray::FreeExtra(void) 2575 void CWordArray::FreeExtra(void) 2576 void CObList::FreeNode(CObList::CNode *) 2577 void CPtrList::FreeNode(CPtrList::CNode *) 2578 void CStringList::FreeNode(CStringList::CNode *) 2579 void CRecordset::FreeRowset(void) 2580 void CThreadSlotData::FreeSlot(int) 2581 void CProperty::FreeValue(void) 2582 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2583 void COleControlContainer::FreezeAllEvents(int) 2584 void COleControlSite::FreezeEvents(int) 2585 long COleControl::XOleControl::FreezeEvents(int) 2586 int COleClientItem::FreezeLink(void) 2587 CDC * CDC::FromHandle(HDC__ *) 2588 CGdiObject * CGdiObject::FromHandle(void *) 2589 CObject * CHandleMap::FromHandle(void *) 2590 CImageList * CImageList::FromHandle(_IMAGELIST *) 2591 CMenu * CMenu::FromHandle(HMENU__ *) 2592 CWnd * CWnd::FromHandle(HWND__ *) 2593 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2594 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2595 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2596 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2597 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2598 CRuntime* CRuntimeClass::FromName(char const *) 2599 void * CProperty::Get(unsigned long *) 2600 void * CProperty::Get(void) 2601 void * CPropertySection::Get(unsigned long) 2602 void * CPropertySection::Get(unsigned long,unsigned long *) 2603 void * CPropertySet::Get(_GUID,unsigned long) 2604 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2605 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2606 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2607 long CWnd::get_accChildCount(long *) 2608 long CWnd::XAccessible::get_accChildCount(long *) 2609 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2610 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2611 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2612 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2613 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2614 long CWnd::get_accFocus(tagVARIANT *) 2615 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2616 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2617 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2618 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2619 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2620 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2621 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2622 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2623 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2624 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2625 long CWnd::get_accParent(IDispatch * *) 2626 long CWnd::XAccessible::get_accParent(IDispatch * *) 2627 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2628 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2629 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2630 long CWnd::get_accSelection(tagVARIANT *) 2631 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2632 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2633 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2634 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2635 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2636 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2637 long CDaoRecordset::GetAbsolutePosition(void) 2638 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2639 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2640 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2641 long CWnd::GetAccessibleChildCount(void) 2642 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2643 unsigned long COleControl::GetActivationPolicy(void) 2644 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2645 CDocument * CFrameWnd::GetActiveDocument(void) 2646 CFrameWnd * CFrameWnd::GetActiveFrame(void) 2647 CFrameWnd * CMDIFrameWnd::GetActiveFrame(void) 2648 int CPropertySheet::GetActiveIndex(void)const 2649 CPropertyPage * CPropertySheet::GetActivePage(void)const 2650 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2651 CView * CFrameWnd::GetActiveView(void)const 2652 IOleDocumentView * COleDocObjectItem::GetActiveView(void)const 2653 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &)const 2654 int CHtmlView::GetAddressBar(void)const 2655 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2656 int ATL::CSimpleStringT::GetAllocLength(void)const 2657 int ATL::CSimpleStringT::GetAllocLength(void)const 2658 COleDispatchDriver * COleControl::GetAmbientDispatchDriver(void) 2659 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2660 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2661 short COleControl::GetAppearance(void) 2662 IDispatch * CHtmlView::GetApplication(void)const 2663 HKEY__ * CWinApp::GetAppRegistryKey(void) 2664 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2665 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2666 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2667 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2668 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 2669 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2670 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2671 wchar_t ATL::CSimpleStringT::GetAt(int)const 2672 char ATL::CSimpleStringT::GetAt(int)const 2673 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2674 long CDaoTableDef::GetAttributes(void) 2675 unsigned long COleControl::GetBackColor(void) 2676 void CControlBar::GetBarInfo(CControlBarInfo *) 2677 void CDockBar::GetBarInfo(CControlBarInfo *) 2678 unsigned long CAsyncMonikerFile::GetBindInfo(void)const 2679 void * CBlobProperty::GetBlob(void) 2680 COleVariant CDaoRecordset::GetBookmark(void) 2681 void CRecordset::GetBookmark(CDBVariant &) 2682 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2683 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2684 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2685 short COleControl::GetBorderStyle(void) 2686 long CDataSourceControl::GetBoundClientRow(void) 2687 int CRecordset::GetBoundFieldIndex(void *) 2688 int CRecordset::GetBoundParamIndex(void *) 2689 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 2690 wchar_t * ATL::CSimpleStringT::GetBuffer(void) 2691 char * ATL::CSimpleStringT::GetBuffer(int) 2692 char * ATL::CSimpleStringT::GetBuffer(void) 2693 unsigned int CEditView::GetBufferLength(void)const 2694 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2695 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2696 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2697 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 2698 char * ATL::CSimpleStringT::GetBufferSetLength(int) 2699 int CHtmlView::GetBusy(void)const 2700 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2701 unsigned int CToolBar::GetButtonStyle(int)const 2702 ATL::CStringT > > CToolBar::GetButtonText(int)const 2703 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2704 void COleSafeArray::GetByteArray(CByteArray &) 2705 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2706 unsigned short CPropertySet::GetByteOrder(void) 2707 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2708 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2709 long CDaoRecordset::GetCacheSize(void) 2710 COleVariant CDaoRecordset::GetCacheStart(void) 2711 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 2712 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2713 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2714 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2715 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2716 CWnd * COleControl::GetCapture(void) 2717 long COleControlSite::XOleIPSite::GetCapture(void) 2718 void CFontDialog::GetCharFormat(_charformat &)const 2719 CHARFORMAT2A & CRichEditView::GetCharFormatSelection(void) 2720 int CCheckListBox::GetCheck(int) 2721 int CListCtrl::GetCheck(int)const 2722 int CTreeCtrl::GetCheck(_TREEITEM *)const 2723 int CWnd::GetCheckedRadioButton(int,int)const 2724 long CBlobProperty::GetClassID(_GUID *) 2725 void COleClientItem::GetClassID(_GUID *)const 2726 _GUID CPropertySet::GetClassID(void) 2727 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2728 long COleControl::XPersistMemory::GetClassID(_GUID *) 2729 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2730 long COleControl::XPersistStorage::GetClassID(_GUID *) 2731 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2732 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2733 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 2734 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2735 void COleControl::GetClientOffset(long *,long *)const 2736 void COleControl::GetClientRect(tagRECT *)const 2737 IOleClientSite * COleClientItem::GetClientSite(void) 2738 IOleClientSite * COleControl::GetClientSite(void) 2739 IOleClientSite * CRichEditCntrItem::GetClientSite(void) 2740 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2741 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2742 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2743 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2744 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2745 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2746 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2747 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2748 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2749 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2750 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2751 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2752 COleDataSource * COleDataSource::GetClipboardOwner(void) 2753 int CDC::GetClipBox(tagRECT *)const 2754 int CMetaFileDC::GetClipBox(tagRECT *)const 2755 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *)const 2756 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2757 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2758 int CListCtrl::GetColumnOrderArray(int *,int)const 2759 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap(void)const 2760 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap(void)const 2761 ATL::CStringT > > CDaoDatabase::GetConnect(void) 2762 ATL::CStringT > > CDaoQueryDef::GetConnect(void) 2763 ATL::CStringT > > CDaoTableDef::GetConnect(void) 2764 void CDatabase::GetConnectInfo(void) 2765 int CConnectionPoint::GetConnectionCount(void) 2766 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2767 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2768 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2769 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap(void)const 2770 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap(void)const 2771 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2772 CPtrArray const * CConnectionPoint::GetConnections(void) 2773 IConnectionPointContainer * CConnectionPoint::GetContainer(void) 2774 IDispatch * CHtmlView::GetContainer(void)const 2775 IOleItemContainer * COleDocument::GetContainer(void) 2776 IOleItemContainer * COleLinkingDoc::GetContainer(void) 2777 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2778 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2779 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2780 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2781 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2782 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2783 COleControlContainer * CWnd::GetControlContainer(void) 2784 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 2785 unsigned long COleControl::GetControlFlags(void) 2786 void COleControlSite::GetControlInfo(void) 2787 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2788 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame(void)const 2789 IUnknown * CCmdTarget::GetControllingUnknown(void) 2790 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2791 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 2792 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 2793 void COleControl::GetControlSize(int *,int *) 2794 int COlePropertyPage::GetControlStatus(unsigned int) 2795 IUnknown * CWnd::GetControlUnknown(void) 2796 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2797 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 2798 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 2799 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 2800 int CPrintDialog::GetCopies(void)const 2801 int CPrintDialogEx::GetCopies(void)const 2802 unsigned long CPropertySection::GetCount(void) 2803 unsigned long CPropertySet::GetCount(void) 2804 int CFileFind::GetCreationTime(ATL::CTime &)const 2805 int CFileFind::GetCreationTime(_FILETIME *)const 2806 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2807 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2808 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2809 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 2810 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 2811 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2812 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 2813 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 2814 ATL::CStringT > > CDaoRecordset::GetCurrentIndex(void) 2815 tagMSG const * CWnd::GetCurrentMessage(void) 2816 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2817 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2818 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2819 IUnknown * CDataBoundProperty::GetCursor(void) 2820 IUnknown * CDataSourceControl::GetCursor(void) 2821 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2822 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2823 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 2824 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 2825 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2826 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 2827 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2828 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 2829 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2830 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2831 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2832 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2833 void CDaoRecordset::GetDataAndFixupNulls(void) 2834 short CDaoWorkspace::GetDatabaseCount(void) 2835 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 2836 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 2837 ATL::CStringT > > CDatabase::GetDatabaseName(void)const 2838 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2839 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2840 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2841 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2842 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2843 CNoTrackObject * CThreadLocalObject::GetDataNA(void) 2844 IDataObject * COleServerItem::GetDataObject(void) 2845 COleControl::CControlDataSource * COleControl::GetDataSource(void) 2846 ATL::COleDateTime CDaoQueryDef::GetDateCreated(void) 2847 ATL::COleDateTime CDaoRecordset::GetDateCreated(void) 2848 ATL::COleDateTime CDaoTableDef::GetDateCreated(void) 2849 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated(void) 2850 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated(void) 2851 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated(void) 2852 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2853 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2854 HACCEL__ * CDocument::GetDefaultAccelerator(void) 2855 HACCEL__ * CFrameWnd::GetDefaultAccelerator(void) 2856 HACCEL__ * COleServerDoc::GetDefaultAccelerator(void) 2857 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 2858 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 2859 ATL::CStringT > > CRecordset::GetDefaultConnect(void) 2860 ATL::CStringT > > CDaoRecordset::GetDefaultDBName(void) 2861 short CRecordset::GetDefaultFieldType(short) 2862 HMENU__ * CDocument::GetDefaultMenu(void) 2863 HMENU__ * COleServerDoc::GetDefaultMenu(void) 2864 int CPrintDialog::GetDefaults(void) 2865 int CPrintDialogEx::GetDefaults(void) 2866 ATL::CStringT > > CDaoRecordset::GetDefaultSQL(void) 2867 ATL::CStringT > > CRecordset::GetDefaultSQL(void) 2868 unsigned long COccManager::GetDefBtnCode(CWnd *) 2869 unsigned long COleControlSite::GetDefBtnCode(void) 2870 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2871 ATL::CStringT > > CPageSetupDialog::GetDeviceName(void)const 2872 ATL::CStringT > > CPrintDialog::GetDeviceName(void)const 2873 ATL::CStringT > > CPrintDialogEx::GetDeviceName(void)const 2874 CPoint CScrollView::GetDeviceScrollPosition(void)const 2875 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2876 _devicemodeA * CPageSetupDialog::GetDevMode(void)const 2877 _devicemodeA * CPrintDialog::GetDevMode(void)const 2878 _devicemodeA * CPrintDialogEx::GetDevMode(void)const 2879 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2880 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2881 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2882 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2883 DHtmlEventMapEntry const * GetDHtmlEventMap(void) 2884 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap(void) 2885 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap(void) 2886 int CCmdTarget::GetDispatchIID(_GUID *) 2887 int COleControl::GetDispatchIID(_GUID *) 2888 AFX_DISPMAP const * CCmdTarget::GetDispatchMap(void)const 2889 AFX_DISPMAP const * COleControlContainer::GetDispatchMap(void)const 2890 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2891 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 2892 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2893 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2894 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2895 int COleControlSite::GetDlgCtrlID(void)const 2896 int CWnd::GetDlgCtrlID(void)const 2897 CWnd * COleControlContainer::GetDlgItem(int)const 2898 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2899 CWnd * CWnd::GetDlgItem(int)const 2900 void CWnd::GetDlgItem(int,HWND__ * *)const 2901 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2902 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2903 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 2904 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 2905 int CWnd::GetDlgItemTextA(int,char *,int)const 2906 CDockBar * CDockContext::GetDockBar(unsigned long) 2907 CControlBar * CDockBar::GetDockedControlBar(int)const 2908 int CDockBar::GetDockedCount(void)const 2909 int CDockBar::GetDockedVisibleCount(void)const 2910 CFrameWnd * CControlBar::GetDockingFrame(void)const 2911 void CFrameWnd::GetDockState(CDockState &)const 2912 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2913 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2914 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2915 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2916 int CDocManager::GetDocumentCount(void) 2917 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2918 ATL::CStringT > > CPageSetupDialog::GetDriverName(void)const 2919 ATL::CStringT > > CPrintDialog::GetDriverName(void)const 2920 ATL::CStringT > > CPrintDialogEx::GetDriverName(void)const 2921 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2922 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2923 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2924 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2925 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2926 IUnknown * CWnd::GetDSCCursor(void) 2927 short CDaoRecordset::GetEditMode(void) 2928 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 2929 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 2930 void COleSafeArray::GetElement(long *,void *) 2931 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 2932 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 2933 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 2934 wchar_t * CDHtmlDialog::GetElementText(char const *) 2935 COleServerItem * COleServerDoc::GetEmbeddedItem(void) 2936 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2937 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2938 int COleControl::GetEnabled(void) 2939 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2940 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2941 int ATL::CStringT > >::GetEnvironmentVariableA(wchar_t const *) 2942 int ATL::CStringT > >::GetEnvironmentVariableA(char const *) 2943 short CDaoException::GetErrorCount(void) 2944 void CDaoException::GetErrorInfo(int) 2945 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2946 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2947 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2948 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 2949 int CException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2950 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2951 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2952 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2953 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2954 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 2955 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2956 int COleControlSite::GetEventIID(_GUID *) 2957 AFX_EVENTMAP const * COleControl::GetEventMap(void)const 2958 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 2959 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 2960 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2961 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap(void)const 2962 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap(void)const 2963 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap(void)const 2964 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap(void)const 2965 unsigned long COleControlSite::GetExStyle(void)const 2966 unsigned long CWnd::GetExStyle(void)const 2967 IDispatch * COleControl::GetExtendedControl(void) 2968 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2969 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2970 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2971 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2972 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2973 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2974 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2975 long CBrowserControlSite::GetExternal(IDispatch * *) 2976 long CDHtmlDialog::GetExternal(IDispatch * *) 2977 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2978 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2979 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2980 short CDaoQueryDef::GetFieldCount(void) 2981 short CDaoRecordset::GetFieldCount(void) 2982 short CDaoTableDef::GetFieldCount(void) 2983 int CDaoRecordset::GetFieldIndex(void *) 2984 short CRecordset::GetFieldIndexByName(char const *) 2985 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 2986 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 2987 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 2988 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 2989 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 2990 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 2991 unsigned long CDaoRecordset::GetFieldLength(int) 2992 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2993 unsigned char CRecordset::GetFieldStatus(unsigned long) 2994 COleVariant CDaoRecordset::GetFieldValue(int) 2995 COleVariant CDaoRecordset::GetFieldValue(char const *) 2996 void CDaoRecordset::GetFieldValue(int,COleVariant &) 2997 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 2998 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 2999 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3000 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3001 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 3002 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 3003 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 3004 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 3005 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 3006 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3007 ATL::CStringT > > CFileDialog::GetFileExt(void)const 3008 ATL::CStringT > > CFile::GetFileName(void)const 3009 ATL::CStringT > > CFileDialog::GetFileName(void)const 3010 ATL::CStringT > > CFileFind::GetFileName(void)const 3011 ATL::CStringT > > CGopherFileFind::GetFileName(void)const 3012 ATL::CStringT > > CFile::GetFilePath(void)const 3013 ATL::CStringT > > CFileFind::GetFilePath(void)const 3014 ATL::CStringT > > CGopherFileFind::GetFilePath(void)const 3015 ATL::CStringT > > CFile::GetFileTitle(void)const 3016 ATL::CStringT > > CFileDialog::GetFileTitle(void)const 3017 ATL::CStringT > > CFileFind::GetFileTitle(void)const 3018 ATL::CStringT > > CGopherFileFind::GetFileTitle(void)const 3019 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3020 ATL::CStringT > > CFileFind::GetFileURL(void)const 3021 ATL::CStringT > > CFtpFileFind::GetFileURL(void)const 3022 ATL::CStringT > > CGopherFileFind::GetFileURL(void)const 3023 ATL::CStringT > > CHttpFile::GetFileURL(void)const 3024 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3025 __POSITION * CMultiDocTemplate::GetFirstDocPosition(void)const 3026 __POSITION * CSingleDocTemplate::GetFirstDocPosition(void)const 3027 __POSITION * CDocManager::GetFirstDocTemplatePosition(void)const 3028 __POSITION * CWinApp::GetFirstDocTemplatePosition(void)const 3029 CFrameWnd * COleDocument::GetFirstFrame(void) 3030 __POSITION * CDocument::GetFirstViewPosition(void)const 3031 CWnd * COleControl::GetFocus(void) 3032 long COleControlSite::XOleIPSite::GetFocus(void) 3033 ATL::CStringT > > CFileDialog::GetFolderPath(void)const 3034 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3035 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3036 IFontDisp * COleControl::GetFont(void) 3037 IFontDisp * CFontHolder::GetFontDispatch(void) 3038 HFONT__ * CFontHolder::GetFontHandle(long,long) 3039 HFONT__ * CFontHolder::GetFontHandle(void) 3040 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3041 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 3042 unsigned long COleControl::GetForeColor(void) 3043 _GUID CPropertySection::GetFormatID(void) 3044 unsigned short CPropertySet::GetFormatVersion(void) 3045 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 3046 ATL::CStringT > > CHtmlView::GetFullName(void)const 3047 int CHtmlView::GetFullScreen(void)const 3048 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3049 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3050 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 3051 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3052 CBrush * CDC::GetHalftoneBrush(void) 3053 unsigned int CRectTracker::GetHandleMask(void)const 3054 void CRectTracker::GetHandleRect(int,CRect *)const 3055 int CRectTracker::GetHandleSize(tagRECT const *)const 3056 CHeaderCtrl * CListCtrl::GetHeaderCtrl(void)const 3057 long CHtmlView::GetHeight(void)const 3058 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3059 void CSplitterWnd::GetHitRect(int,CRect &) 3060 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3061 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3062 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3063 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3064 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName(void)const 3065 IDispatch * CHtmlView::GetHtmlDocument(void)const 3066 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 3067 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 3068 unsigned int COleControl::GetHwnd(void) 3069 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3070 HICON__ * COleClientItem::GetIconFromRegistry(void)const 3071 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3072 void * COleClientItem::GetIconicMetafile(void) 3073 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3074 unsigned long CProperty::GetID(void) 3075 int CPropertySection::GetID(char const *,unsigned long *) 3076 IDataObject * COleDataObject::GetIDataObject(int) 3077 IDispatch * CCmdTarget::GetIDispatch(int) 3078 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3079 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3080 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3081 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3082 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3083 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3084 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3085 IFileDialogCustomize * CFileDialog::GetIFileDialogCustomize(void) 3086 IFileOpenDialog * CFileDialog::GetIFileOpenDialog(void) 3087 IFileSaveDialog * CFileDialog::GetIFileSaveDialog(void) 3088 _GUID const & COleControl::XEventConnPt::GetIID(void) 3089 CImageList * CReBarCtrl::GetImageList(void)const 3090 short CDaoRecordset::GetIndexCount(void) 3091 short CDaoTableDef::GetIndexCount(void) 3092 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3093 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 3094 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3095 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 3096 ATL::CStringT > > CDaoWorkspace::GetIniPath(void) 3097 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3098 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3099 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem(void)const 3100 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3101 HMENU__ * COleIPFrameWnd::GetInPlaceMenu(void) 3102 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3103 CWnd * COleClientItem::GetInPlaceWindow(void) 3104 void CSplitterWnd::GetInsideRect(CRect &)const 3105 IUnknown * CCmdTarget::GetInterface(void const *) 3106 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3107 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3108 IUnknown * COleControl::GetInterfaceHook(void const *) 3109 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3110 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap(void)const 3111 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap(void)const 3112 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap(void)const 3113 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap(void)const 3114 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap(void)const 3115 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap(void)const 3116 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap(void)const 3117 AFX_INTERFACEMAP const * CFileDialog::GetInterfaceMap(void)const 3118 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap(void)const 3119 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap(void)const 3120 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap(void)const 3121 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap(void)const 3122 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap(void)const 3123 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap(void)const 3124 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap(void)const 3125 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap(void)const 3126 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap(void)const 3127 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap(void)const 3128 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap(void)const 3129 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap(void)const 3130 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap(void)const 3131 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap(void)const 3132 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap(void)const 3133 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap(void)const 3134 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap(void)const 3135 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap(void)const 3136 IRichEditOle * CRichEditCtrl::GetIRichEditOle(void)const 3137 int CDaoWorkspace::GetIsolateODBCTrans(void) 3138 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 3139 void COleServerDoc::GetItemClipRect(tagRECT *)const 3140 unsigned long CListCtrl::GetItemData(int)const 3141 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 3142 unsigned int CStatusBar::GetItemID(int)const 3143 unsigned int CToolBar::GetItemID(int)const 3144 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 3145 void COleClientItem::GetItemName(char *)const 3146 void COleClientItem::GetItemName(char *,unsigned int)const 3147 void COleServerDoc::GetItemPosition(tagRECT *)const 3148 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 3149 void CStatusBar::GetItemRect(int,tagRECT *)const 3150 void CToolBar::GetItemRect(int,tagRECT *)const 3151 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 3152 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 3153 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 3154 void COleClientItem::GetItemStorage(void) 3155 void COleClientItem::GetItemStorageCompound(void) 3156 void COleClientItem::GetItemStorageFlat(void) 3157 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 3158 int CListCtrl::GetItemText(int,int,char *,int)const 3159 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 3160 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 3161 int CFileFind::GetLastAccessTime(ATL::CTime &)const 3162 int CFileFind::GetLastAccessTime(_FILETIME *)const 3163 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 3164 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 3165 COleVariant CDaoRecordset::GetLastModifiedBookmark(void) 3166 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 3167 int CFileFind::GetLastWriteTime(ATL::CTime &)const 3168 int CFileFind::GetLastWriteTime(_FILETIME *)const 3169 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 3170 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 3171 unsigned long CDC::GetLayout(void)const 3172 long CRecordset::GetLBFetchSize(long) 3173 void COleSafeArray::GetLBound(unsigned long,long *) 3174 long CRecordset::GetLBReallocSize(long) 3175 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 3176 long CHtmlView::GetLeft(void)const 3177 int ATL::CSimpleStringT::GetLength(void)const 3178 int ATL::CSimpleStringT::GetLength(void)const 3179 unsigned __int64 CFile::GetLength(void)const 3180 unsigned __int64 CFileFind::GetLength(void)const 3181 unsigned __int64 CGopherFileFind::GetLength(void)const 3182 unsigned __int64 CInternetFile::GetLength(void)const 3183 unsigned __int64 CMemFile::GetLength(void)const 3184 unsigned __int64 COleStreamFile::GetLength(void)const 3185 unsigned __int64 CSocketFile::GetLength(void)const 3186 unsigned __int64 CStdioFile::GetLength(void)const 3187 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 3188 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 3189 int CRichEditCtrl::GetLine(int,char *)const 3190 int CRichEditCtrl::GetLine(int,char *,int)const 3191 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 3192 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 3193 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 3194 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 3195 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions(void) 3196 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 3197 CPtrList * CPropertySection::GetList(void) 3198 CPtrList * CPropertySet::GetList(void) 3199 ATL::CStringT > > CHtmlView::GetLocationName(void)const 3200 ATL::CStringT > > CHtmlView::GetLocationURL(void)const 3201 CGopherLocator CGopherFileFind::GetLocator(void)const 3202 int CDaoRecordset::GetLockingMode(void) 3203 short CDaoWorkspace::GetLoginTimeout(void) 3204 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 3205 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 3206 long CFieldExchange::GetLongBinarySize(int) 3207 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3208 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3209 CWnd * CWinThread::GetMainWnd(void) 3210 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 3211 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 3212 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 3213 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 3214 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 3215 int CConnectionPoint::GetMaxConnections(void) 3216 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame(void) 3217 CMenu * CFrameWnd::GetMenu(void)const 3218 CMenu * CWnd::GetMenu(void)const 3219 int CHtmlView::GetMenuBar(void)const 3220 int CFrameWnd::GetMenuBarInfo(long,long,tagMENUBARINFO *)const 3221 unsigned long CFrameWnd::GetMenuBarState(void)const 3222 unsigned long CFrameWnd::GetMenuBarVisibility(void)const 3223 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 3224 CWnd * CFrameWnd::GetMessageBar(void) 3225 CWnd * CMDIChildWnd::GetMessageBar(void) 3226 AFX_MSGMAP const * CCheckListBox::GetMessageMap(void)const 3227 AFX_MSGMAP const * CCmdTarget::GetMessageMap(void)const 3228 AFX_MSGMAP const * CCommonDialog::GetMessageMap(void)const 3229 AFX_MSGMAP const * CControlBar::GetMessageMap(void)const 3230 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap(void)const 3231 AFX_MSGMAP const * CCtrlView::GetMessageMap(void)const 3232 AFX_MSGMAP const * CDaoRecordView::GetMessageMap(void)const 3233 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap(void)const 3234 AFX_MSGMAP const * CDialog::GetMessageMap(void)const 3235 AFX_MSGMAP const * CDialogBar::GetMessageMap(void)const 3236 AFX_MSGMAP const * CDockBar::GetMessageMap(void)const 3237 AFX_MSGMAP const * CDocObjectServer::GetMessageMap(void)const 3238 AFX_MSGMAP const * CDocument::GetMessageMap(void)const 3239 AFX_MSGMAP const * CEditView::GetMessageMap(void)const 3240 AFX_MSGMAP const * CFormView::GetMessageMap(void)const 3241 AFX_MSGMAP const * CFrameWnd::GetMessageMap(void)const 3242 AFX_MSGMAP const * CHtmlEditView::GetMessageMap(void)const 3243 AFX_MSGMAP const * CHtmlView::GetMessageMap(void)const 3244 AFX_MSGMAP const * CListCtrl::GetMessageMap(void)const 3245 AFX_MSGMAP const * CListView::GetMessageMap(void)const 3246 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap(void)const 3247 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap(void)const 3248 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap(void)const 3249 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap(void)const 3250 AFX_MSGMAP const * COleControl::GetMessageMap(void)const 3251 AFX_MSGMAP const * COleDBRecordView::GetMessageMap(void)const 3252 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap(void)const 3253 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap(void)const 3254 AFX_MSGMAP const * COlePropertyPage::GetMessageMap(void)const 3255 AFX_MSGMAP const * COleResizeBar::GetMessageMap(void)const 3256 AFX_MSGMAP const * COleServerDoc::GetMessageMap(void)const 3257 AFX_MSGMAP const * CPreviewView::GetMessageMap(void)const 3258 AFX_MSGMAP const * CPrintDialog::GetMessageMap(void)const 3259 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap(void)const 3260 AFX_MSGMAP const * CPropertyPage::GetMessageMap(void)const 3261 AFX_MSGMAP const * CPropertySheet::GetMessageMap(void)const 3262 AFX_MSGMAP const * CReBar::GetMessageMap(void)const 3263 AFX_MSGMAP const * CRecordView::GetMessageMap(void)const 3264 AFX_MSGMAP const * CRichEditView::GetMessageMap(void)const 3265 AFX_MSGMAP const * CScrollView::GetMessageMap(void)const 3266 AFX_MSGMAP const * CSocketWnd::GetMessageMap(void)const 3267 AFX_MSGMAP const * CSplitterWnd::GetMessageMap(void)const 3268 AFX_MSGMAP const * CStatusBar::GetMessageMap(void)const 3269 AFX_MSGMAP const * CTabCtrl::GetMessageMap(void)const 3270 AFX_MSGMAP const * CToolBar::GetMessageMap(void)const 3271 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap(void)const 3272 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap(void)const 3273 AFX_MSGMAP const * CTreeCtrl::GetMessageMap(void)const 3274 AFX_MSGMAP const * CTreeView::GetMessageMap(void)const 3275 AFX_MSGMAP const * CView::GetMessageMap(void)const 3276 AFX_MSGMAP const * CWinApp::GetMessageMap(void)const 3277 AFX_MSGMAP const * CWnd::GetMessageMap(void)const 3278 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 3279 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 3280 long CDataSourceControl::GetMetaData(void) 3281 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3282 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3283 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3284 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3285 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3286 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3287 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 3288 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 3289 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 3290 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 3291 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3292 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3293 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3294 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3295 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3296 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3297 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3298 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 3299 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 3300 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 3301 ATL::CStringT > > CDaoDatabase::GetName(void) 3302 ATL::CStringT > > CDaoQueryDef::GetName(void) 3303 ATL::CStringT > > CDaoRecordset::GetName(void) 3304 ATL::CStringT > > CDaoTableDef::GetName(void) 3305 ATL::CStringT > > CDaoWorkspace::GetName(void) 3306 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3307 unsigned long COleClientItem::GetNewItemNumber(void) 3308 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3309 CDataBoundProperty * CDataBoundProperty::GetNext(void) 3310 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3311 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3312 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 3313 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 3314 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 3315 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3316 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3317 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3318 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3319 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 3320 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 3321 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3322 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3323 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3324 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3325 int COleDataObject::GetNextFormat(tagFORMATETC *) 3326 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3327 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3328 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3329 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 3330 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3331 CView * CDocument::GetNextView(__POSITION * &)const 3332 ATL::CStringData * CAfxStringMgr::GetNilString(void) 3333 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3334 void CCmdTarget::GetNotSupported(void) 3335 void COleControl::GetNotSupported(void) 3336 ATL::CStringT > > CHttpFile::GetObjectA(void)const 3337 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 3338 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3339 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3340 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3341 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 3342 unsigned int CArchive::GetObjectSchema(void) 3343 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 3344 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo(void) 3345 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo(void) 3346 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo(void) 3347 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3348 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 3349 short CDaoQueryDef::GetODBCTimeout(void) 3350 int CHtmlView::GetOffline(void)const 3351 tagOFNA & CFileDialog::GetOFN(void) 3352 tagOFNA const & CFileDialog::GetOFN(void)const 3353 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 3354 IOleObject * COleServerItem::GetOleObject(void) 3355 unsigned long COleSafeArray::GetOneDimSize(void) 3356 int CDocManager::GetOpenDocumentCount(void) 3357 int CWinApp::GetOpenDocumentCount(void) 3358 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 3359 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 3360 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 3361 int CHeaderCtrl::GetOrderArray(int *,int)const 3362 unsigned long CPropertySet::GetOSVersion(void) 3363 CWnd * COleControl::GetOuterWindow(void)const 3364 int COleDocObjectItem::GetPageCount(long *,long *) 3365 int CPropertySheet::GetPageCount(void)const 3366 int CPropertySheet::GetPageIndex(CPropertyPage *) 3367 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3368 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3369 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3370 IPropertyPageSite * COlePropertyPage::GetPageSite(void) 3371 CWnd * CSplitterWnd::GetPane(int,int)const 3372 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3373 unsigned int CStatusBar::GetPaneStyle(int)const 3374 ATL::CStringT > > CStatusBar::GetPaneText(int)const 3375 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 3376 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3377 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 3378 PARAFORMAT2 & CRichEditView::GetParaFormatSelection(void) 3379 short CDaoQueryDef::GetParameterCount(void) 3380 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 3381 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 3382 COleVariant CDaoQueryDef::GetParamValue(int) 3383 COleVariant CDaoQueryDef::GetParamValue(char const *) 3384 COleVariant CDaoRecordset::GetParamValue(int) 3385 COleVariant CDaoRecordset::GetParamValue(char const *) 3386 IDispatch * CHtmlView::GetParentBrowser(void)const 3387 CFrameWnd * CWnd::GetParentFrame(void)const 3388 CWnd * CWnd::GetParentOwner(void)const 3389 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3390 ATL::CStringT > > CFileDialog::GetPathName(void)const 3391 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 3392 float CDaoRecordset::GetPercentPosition(void) 3393 IPictureDisp * CPictureHolder::GetPictureDispatch(void) 3394 ATL::CStringT > > CPageSetupDialog::GetPortName(void)const 3395 ATL::CStringT > > CPrintDialog::GetPortName(void)const 3396 ATL::CStringT > > CPrintDialogEx::GetPortName(void)const 3397 unsigned __int64 CFile::GetPosition(void)const 3398 unsigned __int64 CMemFile::GetPosition(void)const 3399 unsigned __int64 COleStreamFile::GetPosition(void)const 3400 unsigned __int64 CSocketFile::GetPosition(void)const 3401 unsigned __int64 CStdioFile::GetPosition(void)const 3402 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3403 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3404 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 3405 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3406 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3407 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3408 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 3409 CFont * CEditView::GetPrinterFont(void)const 3410 long CAsyncMonikerFile::GetPriority(void)const 3411 void * CThemeHelper::GetProc(char const *,void *) 3412 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 3413 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 3414 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 3415 int COlePropertyPage::GetPropCheck(char const *,int *) 3416 COleVariant CHtmlView::GetProperty(char const *) 3417 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 3418 void COleControlSite::GetProperty(long,unsigned short,void *)const 3419 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3420 CProperty * CPropertySection::GetProperty(unsigned long) 3421 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3422 void CWnd::GetProperty(long,unsigned short,void *)const 3423 int COlePropertyPage::GetPropIndex(char const *,int *) 3424 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3425 int COlePropertyPage::GetPropRadio(char const *,int *) 3426 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3427 int COlePropertyPage::GetPropText(char const *,unsigned char *) 3428 int COlePropertyPage::GetPropText(char const *,short *) 3429 int COlePropertyPage::GetPropText(char const *,int *) 3430 int COlePropertyPage::GetPropText(char const *,unsigned int *) 3431 int COlePropertyPage::GetPropText(char const *,long *) 3432 int COlePropertyPage::GetPropText(char const *,unsigned long *) 3433 int COlePropertyPage::GetPropText(char const *,float *) 3434 int COlePropertyPage::GetPropText(char const *,double *) 3435 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 3436 _PROPSHEETPAGEA & CPropertyPage::GetPSP(void) 3437 _PROPSHEETPAGEA const & CPropertyPage::GetPSP(void)const 3438 short CDaoDatabase::GetQueryDefCount(void) 3439 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 3440 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 3441 short CDaoDatabase::GetQueryTimeout(void) 3442 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3443 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3444 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3445 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3446 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3447 void CProgressCtrl::GetRange(int &,int &)const 3448 void CSliderCtrl::GetRange(int &,int &)const 3449 void CSpinButtonCtrl::GetRange(int &,int &)const 3450 void * CProperty::GetRawValue(void) 3451 enum tagREADYSTATE CHtmlView::GetReadyState(void)const 3452 long COleControl::GetReadyState(void) 3453 long CDaoRecordset::GetRecordCount(void) 3454 long CDaoTableDef::GetRecordCount(void) 3455 long CDaoDatabase::GetRecordsAffected(void) 3456 long CDaoQueryDef::GetRecordsAffected(void) 3457 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3458 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3459 int COleControl::GetRectInContainer(tagRECT *) 3460 int CHtmlView::GetRegisterAsBrowser(void)const 3461 int CHtmlView::GetRegisterAsDropTarget(void)const 3462 short CDaoDatabase::GetRelationCount(void) 3463 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 3464 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 3465 int CDaoQueryDef::GetReturnsRecords(void) 3466 ATL::CStringT > > CFileFind::GetRoot(void)const 3467 ATL::CStringT > > CGopherFileFind::GetRoot(void)const 3468 CFrameWnd * CCmdTarget::GetRoutingFrame(void) 3469 CFrameWnd * CCmdTarget::GetRoutingFrame_(void) 3470 CView * CCmdTarget::GetRoutingView(void) 3471 CView * CCmdTarget::GetRoutingView_(void) 3472 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3473 CRuntime* CAnimateCtrl::GetRuntimeClass(void)const 3474 CRuntime* CArchiveException::GetRuntimeClass(void)const 3475 CRuntime* CAsyncMonikerFile::GetRuntimeClass(void)const 3476 CRuntime* CAsyncSocket::GetRuntimeClass(void)const 3477 CRuntime* CBitmap::GetRuntimeClass(void)const 3478 CRuntime* CBitmapButton::GetRuntimeClass(void)const 3479 CRuntime* CBrush::GetRuntimeClass(void)const 3480 CRuntime* CButton::GetRuntimeClass(void)const 3481 CRuntime* CByteArray::GetRuntimeClass(void)const 3482 CRuntime* CCachedDataPathProperty::GetRuntimeClass(void)const 3483 CRuntime* CCheckListBox::GetRuntimeClass(void)const 3484 CRuntime* CClientDC::GetRuntimeClass(void)const 3485 CRuntime* CCmdTarget::GetRuntimeClass(void)const 3486 CRuntime* CColorDialog::GetRuntimeClass(void)const 3487 CRuntime* CComboBox::GetRuntimeClass(void)const 3488 CRuntime* CComboBoxEx::GetRuntimeClass(void)const 3489 CRuntime* CCommonDialog::GetRuntimeClass(void)const 3490 CRuntime* CControlBar::GetRuntimeClass(void)const 3491 CRuntime* CCriticalSection::GetRuntimeClass(void)const 3492 CRuntime* CCtrlView::GetRuntimeClass(void)const 3493 CRuntime* CDaoDatabase::GetRuntimeClass(void)const 3494 CRuntime* CDaoException::GetRuntimeClass(void)const 3495 CRuntime* CDaoQueryDef::GetRuntimeClass(void)const 3496 CRuntime* CDaoRecordset::GetRuntimeClass(void)const 3497 CRuntime* CDaoRecordView::GetRuntimeClass(void)const 3498 CRuntime* CDaoTableDef::GetRuntimeClass(void)const 3499 CRuntime* CDaoWorkspace::GetRuntimeClass(void)const 3500 CRuntime* CDatabase::GetRuntimeClass(void)const 3501 CRuntime* CDataPathProperty::GetRuntimeClass(void)const 3502 CRuntime* CDateTimeCtrl::GetRuntimeClass(void)const 3503 CRuntime* CDBException::GetRuntimeClass(void)const 3504 CRuntime* CDC::GetRuntimeClass(void)const 3505 CRuntime* CDHtmlDialog::GetRuntimeClass(void)const 3506 CRuntime* CDialog::GetRuntimeClass(void)const 3507 CRuntime* CDialogBar::GetRuntimeClass(void)const 3508 CRuntime* CDocItem::GetRuntimeClass(void)const 3509 CRuntime* CDockBar::GetRuntimeClass(void)const 3510 CRuntime* CDockState::GetRuntimeClass(void)const 3511 CRuntime* CDocManager::GetRuntimeClass(void)const 3512 CRuntime* CDocObjectServer::GetRuntimeClass(void)const 3513 CRuntime* CDocObjectServerItem::GetRuntimeClass(void)const 3514 CRuntime* CDocTemplate::GetRuntimeClass(void)const 3515 CRuntime* CDocument::GetRuntimeClass(void)const 3516 CRuntime* CDragListBox::GetRuntimeClass(void)const 3517 CRuntime* CDWordArray::GetRuntimeClass(void)const 3518 CRuntime* CDynLinkLibrary::GetRuntimeClass(void)const 3519 CRuntime* CEdit::GetRuntimeClass(void)const 3520 CRuntime* CEditView::GetRuntimeClass(void)const 3521 CRuntime* CEvent::GetRuntimeClass(void)const 3522 CRuntime* CException::GetRuntimeClass(void)const 3523 CRuntime* CFile::GetRuntimeClass(void)const 3524 CRuntime* CFileDialog::GetRuntimeClass(void)const 3525 CRuntime* CFileException::GetRuntimeClass(void)const 3526 CRuntime* CFileFind::GetRuntimeClass(void)const 3527 CRuntime* CFindReplaceDialog::GetRuntimeClass(void)const 3528 CRuntime* CFont::GetRuntimeClass(void)const 3529 CRuntime* CFontDialog::GetRuntimeClass(void)const 3530 CRuntime* CFormView::GetRuntimeClass(void)const 3531 CRuntime* CFrameWnd::GetRuntimeClass(void)const 3532 CRuntime* CFtpConnection::GetRuntimeClass(void)const 3533 CRuntime* CFtpFileFind::GetRuntimeClass(void)const 3534 CRuntime* CGdiObject::GetRuntimeClass(void)const 3535 CRuntime* CGopherConnection::GetRuntimeClass(void)const 3536 CRuntime* CGopherFile::GetRuntimeClass(void)const 3537 CRuntime* CGopherFileFind::GetRuntimeClass(void)const 3538 CRuntime* CHeaderCtrl::GetRuntimeClass(void)const 3539 CRuntime* CHotKeyCtrl::GetRuntimeClass(void)const 3540 CRuntime* CHtmlEditDoc::GetRuntimeClass(void)const 3541 CRuntime* CHtmlEditView::GetRuntimeClass(void)const 3542 CRuntime* CHtmlView::GetRuntimeClass(void)const 3543 CRuntime* CHttpConnection::GetRuntimeClass(void)const 3544 CRuntime* CHttpFile::GetRuntimeClass(void)const 3545 CRuntime* CImageList::GetRuntimeClass(void)const 3546 CRuntime* CInternetConnection::GetRuntimeClass(void)const 3547 CRuntime* CInternetException::GetRuntimeClass(void)const 3548 CRuntime* CInternetFile::GetRuntimeClass(void)const 3549 CRuntime* CInternetSession::GetRuntimeClass(void)const 3550 CRuntime* CInvalidArgException::GetRuntimeClass(void)const 3551 CRuntime* CIPAddressCtrl::GetRuntimeClass(void)const 3552 CRuntime* CLinkCtrl::GetRuntimeClass(void)const 3553 CRuntime* CListBox::GetRuntimeClass(void)const 3554 CRuntime* CListCtrl::GetRuntimeClass(void)const 3555 CRuntime* CListView::GetRuntimeClass(void)const 3556 CRuntime* CLongBinary::GetRuntimeClass(void)const 3557 CRuntime* CMapPtrToPtr::GetRuntimeClass(void)const 3558 CRuntime* CMapPtrToWord::GetRuntimeClass(void)const 3559 CRuntime* CMapStringToOb::GetRuntimeClass(void)const 3560 CRuntime* CMapStringToPtr::GetRuntimeClass(void)const 3561 CRuntime* CMapStringToString::GetRuntimeClass(void)const 3562 CRuntime* CMapWordToOb::GetRuntimeClass(void)const 3563 CRuntime* CMapWordToPtr::GetRuntimeClass(void)const 3564 CRuntime* CMDIChildWnd::GetRuntimeClass(void)const 3565 CRuntime* CMDIFrameWnd::GetRuntimeClass(void)const 3566 CRuntime* CMemFile::GetRuntimeClass(void)const 3567 CRuntime* CMemoryException::GetRuntimeClass(void)const 3568 CRuntime* CMenu::GetRuntimeClass(void)const 3569 CRuntime* CMetaFileDC::GetRuntimeClass(void)const 3570 CRuntime* CMiniDockFrameWnd::GetRuntimeClass(void)const 3571 CRuntime* CMiniFrameWnd::GetRuntimeClass(void)const 3572 CRuntime* CMonikerFile::GetRuntimeClass(void)const 3573 CRuntime* CMonthCalCtrl::GetRuntimeClass(void)const 3574 CRuntime* CMultiDocTemplate::GetRuntimeClass(void)const 3575 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass(void)const 3576 CRuntime* CMutex::GetRuntimeClass(void)const 3577 CRuntime* CNotSupportedException::GetRuntimeClass(void)const 3578 CRuntime* CObArray::GetRuntimeClass(void)const 3579 CRuntime* CObject::GetRuntimeClass(void)const 3580 CRuntime* CObList::GetRuntimeClass(void)const 3581 CRuntime* COleBusyDialog::GetRuntimeClass(void)const 3582 CRuntime* COleChangeIconDialog::GetRuntimeClass(void)const 3583 CRuntime* COleChangeSourceDialog::GetRuntimeClass(void)const 3584 CRuntime* COleClientItem::GetRuntimeClass(void)const 3585 CRuntime* COleControl::GetRuntimeClass(void)const 3586 CRuntime* COleControlModule::GetRuntimeClass(void)const 3587 CRuntime* COleConvertDialog::GetRuntimeClass(void)const 3588 CRuntime* COleDBRecordView::GetRuntimeClass(void)const 3589 CRuntime* COleDialog::GetRuntimeClass(void)const 3590 CRuntime* COleDispatchException::GetRuntimeClass(void)const 3591 CRuntime* COleDocIPFrameWnd::GetRuntimeClass(void)const 3592 CRuntime* COleDocObjectItem::GetRuntimeClass(void)const 3593 CRuntime* COleDocument::GetRuntimeClass(void)const 3594 CRuntime* COleException::GetRuntimeClass(void)const 3595 CRuntime* COleInsertDialog::GetRuntimeClass(void)const 3596 CRuntime* COleIPFrameWnd::GetRuntimeClass(void)const 3597 CRuntime* COleLinkingDoc::GetRuntimeClass(void)const 3598 CRuntime* COleLinksDialog::GetRuntimeClass(void)const 3599 CRuntime* COleObjectFactory::GetRuntimeClass(void)const 3600 CRuntime* COlePasteSpecialDialog::GetRuntimeClass(void)const 3601 CRuntime* COlePropertiesDialog::GetRuntimeClass(void)const 3602 CRuntime* COlePropertyPage::GetRuntimeClass(void)const 3603 CRuntime* COleResizeBar::GetRuntimeClass(void)const 3604 CRuntime* COleServerDoc::GetRuntimeClass(void)const 3605 CRuntime* COleServerItem::GetRuntimeClass(void)const 3606 CRuntime* COleStreamFile::GetRuntimeClass(void)const 3607 CRuntime* COleUpdateDialog::GetRuntimeClass(void)const 3608 CRuntime* CPagerCtrl::GetRuntimeClass(void)const 3609 CRuntime* CPageSetupDialog::GetRuntimeClass(void)const 3610 CRuntime* CPaintDC::GetRuntimeClass(void)const 3611 CRuntime* CPalette::GetRuntimeClass(void)const 3612 CRuntime* CPen::GetRuntimeClass(void)const 3613 CRuntime* CPreviewDC::GetRuntimeClass(void)const 3614 CRuntime* CPreviewView::GetRuntimeClass(void)const 3615 CRuntime* CPrintDialog::GetRuntimeClass(void)const 3616 CRuntime* CPrintDialogEx::GetRuntimeClass(void)const 3617 CRuntime* CProgressCtrl::GetRuntimeClass(void)const 3618 CRuntime* CPropertyPage::GetRuntimeClass(void)const 3619 CRuntime* CPropertySheet::GetRuntimeClass(void)const 3620 CRuntime* CPtrArray::GetRuntimeClass(void)const 3621 CRuntime* CPtrList::GetRuntimeClass(void)const 3622 CRuntime* CReBar::GetRuntimeClass(void)const 3623 CRuntime* CReBarCtrl::GetRuntimeClass(void)const 3624 CRuntime* CRecordset::GetRuntimeClass(void)const 3625 CRuntime* CRecordView::GetRuntimeClass(void)const 3626 CRuntime* CResourceException::GetRuntimeClass(void)const 3627 CRuntime* CRgn::GetRuntimeClass(void)const 3628 CRuntime* CRichEditCntrItem::GetRuntimeClass(void)const 3629 CRuntime* CRichEditCtrl::GetRuntimeClass(void)const 3630 CRuntime* CRichEditDoc::GetRuntimeClass(void)const 3631 CRuntime* CRichEditView::GetRuntimeClass(void)const 3632 CRuntime* CScrollBar::GetRuntimeClass(void)const 3633 CRuntime* CScrollView::GetRuntimeClass(void)const 3634 CRuntime* CSemaphore::GetRuntimeClass(void)const 3635 CRuntime* CSharedFile::GetRuntimeClass(void)const 3636 CRuntime* CSimpleException::GetRuntimeClass(void)const 3637 CRuntime* CSingleDocTemplate::GetRuntimeClass(void)const 3638 CRuntime* CSliderCtrl::GetRuntimeClass(void)const 3639 CRuntime* CSocket::GetRuntimeClass(void)const 3640 CRuntime* CSocketFile::GetRuntimeClass(void)const 3641 CRuntime* CSpinButtonCtrl::GetRuntimeClass(void)const 3642 CRuntime* CSplitterWnd::GetRuntimeClass(void)const 3643 CRuntime* CStatic::GetRuntimeClass(void)const 3644 CRuntime* CStatusBar::GetRuntimeClass(void)const 3645 CRuntime* CStatusBarCtrl::GetRuntimeClass(void)const 3646 CRuntime* CStdioFile::GetRuntimeClass(void)const 3647 CRuntime* CStringArray::GetRuntimeClass(void)const 3648 CRuntime* CStringList::GetRuntimeClass(void)const 3649 CRuntime* CSyncObject::GetRuntimeClass(void)const 3650 CRuntime* CTabCtrl::GetRuntimeClass(void)const 3651 CRuntime* CToolBar::GetRuntimeClass(void)const 3652 CRuntime* CToolBarCtrl::GetRuntimeClass(void)const 3653 CRuntime* CToolTipCtrl::GetRuntimeClass(void)const 3654 CRuntime* CTreeCtrl::GetRuntimeClass(void)const 3655 CRuntime* CTreeView::GetRuntimeClass(void)const 3656 CRuntime* CUIntArray::GetRuntimeClass(void)const 3657 CRuntime* CUserException::GetRuntimeClass(void)const 3658 CRuntime* CView::GetRuntimeClass(void)const 3659 CRuntime* CWinApp::GetRuntimeClass(void)const 3660 CRuntime* CWindowDC::GetRuntimeClass(void)const 3661 CRuntime* CWindowlessDC::GetRuntimeClass(void)const 3662 CRuntime* CWinThread::GetRuntimeClass(void)const 3663 CRuntime* CWnd::GetRuntimeClass(void)const 3664 CRuntime* CWordArray::GetRuntimeClass(void)const 3665 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3666 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3667 unsigned long * CColorDialog::GetSavedCustomColors(void) 3668 ATL::CStringT > > CGopherFileFind::GetScreenName(void)const 3669 CSize CDockState::GetScreenSize(void) 3670 CScrollBar * CView::GetScrollBarCtrl(int)const 3671 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3672 void CScrollView::GetScrollBarSizes(CSize &) 3673 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3674 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3675 int CWnd::GetScrollLimit(int) 3676 int CWnd::GetScrollPos(int)const 3677 CPoint CScrollView::GetScrollPosition(void)const 3678 void CWnd::GetScrollRange(int,int *,int *)const 3679 unsigned long CSplitterWnd::GetScrollStyle(void)const 3680 CPropertySection * CPropertySet::GetSection(_GUID) 3681 HKEY__ * CWinApp::GetSectionKey(char const *) 3682 char const * CPropertySection::GetSectionName(void) 3683 void CRichEditCtrl::GetSel(long &,long &)const 3684 CRichEditCntrItem * CRichEditView::GetSelectedItem(void)const 3685 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3686 void CSliderCtrl::GetSelection(int &,int &)const 3687 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 3688 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 3689 unsigned int COleConvertDialog::GetSelectionType(void)const 3690 unsigned int COleInsertDialog::GetSelectionType(void)const 3691 unsigned int COlePasteSpecialDialog::GetSelectionType(void)const 3692 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3693 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3694 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3695 ATL::CStringT > > CRichEditCtrl::GetSelText(void)const 3696 int CHtmlView::GetSilent(void)const 3697 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3698 unsigned long CPropertySection::GetSize(void) 3699 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3700 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3701 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3702 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3703 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3704 CWnd * CSplitterWnd::GetSizingParent(void) 3705 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3706 int CHtmlView::GetSource(ATL::CStringT > > &) 3707 ATL::CStringT > > CDaoTableDef::GetSourceTableName(void) 3708 ATL::CStringT > > CDaoQueryDef::GetSQL(void) 3709 ATL::CStringT > > CDaoRecordset::GetSQL(void)const 3710 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3711 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3712 char const * CHtmlEditCtrl::GetStartDocument(void) 3713 char const * CHtmlEditView::GetStartDocument(void) 3714 __POSITION * CConnectionPoint::GetStartPosition(void)const 3715 __POSITION * COleDocument::GetStartPosition(void)const 3716 __POSITION * CRichEditDoc::GetStartPosition(void)const 3717 int CFile::GetStatus(CFileStatus &)const 3718 int CFile::GetStatus(char const *,CFileStatus &) 3719 int CMemFile::GetStatus(CFileStatus &)const 3720 int COleStreamFile::GetStatus(CFileStatus &)const 3721 int CHtmlView::GetStatusBar(void)const 3722 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 3723 ATL::CStringT > > const COleStreamFile::GetStorageName(void)const 3724 IStream * COleStreamFile::GetStream(void)const 3725 wchar_t const * ATL::CSimpleStringT::GetString(void)const 3726 char const * ATL::CSimpleStringT::GetString(void)const 3727 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3728 unsigned long COleControlSite::GetStyle(void)const 3729 unsigned long COleControlSiteOrWnd::GetStyle(void)const 3730 unsigned long CWnd::GetStyle(void)const 3731 int CListCtrl::GetSubItemRect(int,int,int,CRect &)const 3732 long (__stdcall** CWnd::GetSuperWndProcAddr(void))(HWND__ *,unsigned int,unsigned int,long) 3733 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3734 short CDaoDatabase::GetTableDefCount(void) 3735 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 3736 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 3737 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3738 void CListBox::GetText(int,ATL::CStringT > > &)const 3739 wchar_t * COleControl::GetText(void) 3740 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3741 int CStatusBarCtrl::GetText(char *,int,int *)const 3742 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3743 long CRecordset::GetTextLen(short,unsigned long) 3744 int CStatusBarCtrl::GetTextLength(int,int *)const 3745 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3746 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3747 int CHtmlView::GetTheaterMode(void)const 3748 long CThemeHelper::GetThemePartSize(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 3749 long CThemeHelper::GetThemePartSizeFail(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 3750 CRuntime* CAnimateCtrl::GetThisClass(void) 3751 CRuntime* CArchiveException::GetThisClass(void) 3752 CRuntime* CAsyncMonikerFile::GetThisClass(void) 3753 CRuntime* CAsyncSocket::GetThisClass(void) 3754 CRuntime* CBitmap::GetThisClass(void) 3755 CRuntime* CBitmapButton::GetThisClass(void) 3756 CRuntime* CBrush::GetThisClass(void) 3757 CRuntime* CButton::GetThisClass(void) 3758 CRuntime* CByteArray::GetThisClass(void) 3759 CRuntime* CCachedDataPathProperty::GetThisClass(void) 3760 CRuntime* CCheckListBox::GetThisClass(void) 3761 CRuntime* CClientDC::GetThisClass(void) 3762 CRuntime* CCmdTarget::GetThisClass(void) 3763 CRuntime* CColorDialog::GetThisClass(void) 3764 CRuntime* CComboBox::GetThisClass(void) 3765 CRuntime* CComboBoxEx::GetThisClass(void) 3766 CRuntime* CCommonDialog::GetThisClass(void) 3767 CRuntime* CControlBar::GetThisClass(void) 3768 CRuntime* CCriticalSection::GetThisClass(void) 3769 CRuntime* CCtrlView::GetThisClass(void) 3770 CRuntime* CDaoDatabase::GetThisClass(void) 3771 CRuntime* CDaoException::GetThisClass(void) 3772 CRuntime* CDaoQueryDef::GetThisClass(void) 3773 CRuntime* CDaoRecordset::GetThisClass(void) 3774 CRuntime* CDaoRecordView::GetThisClass(void) 3775 CRuntime* CDaoTableDef::GetThisClass(void) 3776 CRuntime* CDaoWorkspace::GetThisClass(void) 3777 CRuntime* CDatabase::GetThisClass(void) 3778 CRuntime* CDataPathProperty::GetThisClass(void) 3779 CRuntime* CDateTimeCtrl::GetThisClass(void) 3780 CRuntime* CDBException::GetThisClass(void) 3781 CRuntime* CDC::GetThisClass(void) 3782 CRuntime* CDHtmlDialog::GetThisClass(void) 3783 CRuntime* CDialog::GetThisClass(void) 3784 CRuntime* CDialogBar::GetThisClass(void) 3785 CRuntime* CDocItem::GetThisClass(void) 3786 CRuntime* CDockBar::GetThisClass(void) 3787 CRuntime* CDockState::GetThisClass(void) 3788 CRuntime* CDocManager::GetThisClass(void) 3789 CRuntime* CDocObjectServer::GetThisClass(void) 3790 CRuntime* CDocObjectServerItem::GetThisClass(void) 3791 CRuntime* CDocTemplate::GetThisClass(void) 3792 CRuntime* CDocument::GetThisClass(void) 3793 CRuntime* CDragListBox::GetThisClass(void) 3794 CRuntime* CDWordArray::GetThisClass(void) 3795 CRuntime* CDynLinkLibrary::GetThisClass(void) 3796 CRuntime* CEdit::GetThisClass(void) 3797 CRuntime* CEditView::GetThisClass(void) 3798 CRuntime* CEvent::GetThisClass(void) 3799 CRuntime* CException::GetThisClass(void) 3800 CRuntime* CFile::GetThisClass(void) 3801 CRuntime* CFileDialog::GetThisClass(void) 3802 CRuntime* CFileException::GetThisClass(void) 3803 CRuntime* CFileFind::GetThisClass(void) 3804 CRuntime* CFindReplaceDialog::GetThisClass(void) 3805 CRuntime* CFont::GetThisClass(void) 3806 CRuntime* CFontDialog::GetThisClass(void) 3807 CRuntime* CFormView::GetThisClass(void) 3808 CRuntime* CFrameWnd::GetThisClass(void) 3809 CRuntime* CFtpConnection::GetThisClass(void) 3810 CRuntime* CFtpFileFind::GetThisClass(void) 3811 CRuntime* CGdiObject::GetThisClass(void) 3812 CRuntime* CGopherConnection::GetThisClass(void) 3813 CRuntime* CGopherFile::GetThisClass(void) 3814 CRuntime* CGopherFileFind::GetThisClass(void) 3815 CRuntime* CHeaderCtrl::GetThisClass(void) 3816 CRuntime* CHotKeyCtrl::GetThisClass(void) 3817 CRuntime* CHtmlEditDoc::GetThisClass(void) 3818 CRuntime* CHtmlEditView::GetThisClass(void) 3819 CRuntime* CHtmlView::GetThisClass(void) 3820 CRuntime* CHttpConnection::GetThisClass(void) 3821 CRuntime* CHttpFile::GetThisClass(void) 3822 CRuntime* CImageList::GetThisClass(void) 3823 CRuntime* CInternetConnection::GetThisClass(void) 3824 CRuntime* CInternetException::GetThisClass(void) 3825 CRuntime* CInternetFile::GetThisClass(void) 3826 CRuntime* CInternetSession::GetThisClass(void) 3827 CRuntime* CInvalidArgException::GetThisClass(void) 3828 CRuntime* CIPAddressCtrl::GetThisClass(void) 3829 CRuntime* CLinkCtrl::GetThisClass(void) 3830 CRuntime* CListBox::GetThisClass(void) 3831 CRuntime* CListCtrl::GetThisClass(void) 3832 CRuntime* CListView::GetThisClass(void) 3833 CRuntime* CLongBinary::GetThisClass(void) 3834 CRuntime* CMapPtrToPtr::GetThisClass(void) 3835 CRuntime* CMapPtrToWord::GetThisClass(void) 3836 CRuntime* CMapStringToOb::GetThisClass(void) 3837 CRuntime* CMapStringToPtr::GetThisClass(void) 3838 CRuntime* CMapStringToString::GetThisClass(void) 3839 CRuntime* CMapWordToOb::GetThisClass(void) 3840 CRuntime* CMapWordToPtr::GetThisClass(void) 3841 CRuntime* CMDIChildWnd::GetThisClass(void) 3842 CRuntime* CMDIFrameWnd::GetThisClass(void) 3843 CRuntime* CMemFile::GetThisClass(void) 3844 CRuntime* CMemoryException::GetThisClass(void) 3845 CRuntime* CMenu::GetThisClass(void) 3846 CRuntime* CMetaFileDC::GetThisClass(void) 3847 CRuntime* CMiniDockFrameWnd::GetThisClass(void) 3848 CRuntime* CMiniFrameWnd::GetThisClass(void) 3849 CRuntime* CMonikerFile::GetThisClass(void) 3850 CRuntime* CMonthCalCtrl::GetThisClass(void) 3851 CRuntime* CMultiDocTemplate::GetThisClass(void) 3852 CRuntime* CMultiPageDHtmlDialog::GetThisClass(void) 3853 CRuntime* CMutex::GetThisClass(void) 3854 CRuntime* CNotSupportedException::GetThisClass(void) 3855 CRuntime* CObArray::GetThisClass(void) 3856 CRuntime* CObject::GetThisClass(void) 3857 CRuntime* CObList::GetThisClass(void) 3858 CRuntime* COleBusyDialog::GetThisClass(void) 3859 CRuntime* COleChangeIconDialog::GetThisClass(void) 3860 CRuntime* COleChangeSourceDialog::GetThisClass(void) 3861 CRuntime* COleClientItem::GetThisClass(void) 3862 CRuntime* COleControl::GetThisClass(void) 3863 CRuntime* COleControlModule::GetThisClass(void) 3864 CRuntime* COleConvertDialog::GetThisClass(void) 3865 CRuntime* COleDBRecordView::GetThisClass(void) 3866 CRuntime* COleDialog::GetThisClass(void) 3867 CRuntime* COleDispatchException::GetThisClass(void) 3868 CRuntime* COleDocIPFrameWnd::GetThisClass(void) 3869 CRuntime* COleDocObjectItem::GetThisClass(void) 3870 CRuntime* COleDocument::GetThisClass(void) 3871 CRuntime* COleException::GetThisClass(void) 3872 CRuntime* COleInsertDialog::GetThisClass(void) 3873 CRuntime* COleIPFrameWnd::GetThisClass(void) 3874 CRuntime* COleLinkingDoc::GetThisClass(void) 3875 CRuntime* COleLinksDialog::GetThisClass(void) 3876 CRuntime* COleObjectFactory::GetThisClass(void) 3877 CRuntime* COlePasteSpecialDialog::GetThisClass(void) 3878 CRuntime* COlePropertiesDialog::GetThisClass(void) 3879 CRuntime* COlePropertyPage::GetThisClass(void) 3880 CRuntime* COleResizeBar::GetThisClass(void) 3881 CRuntime* COleServerDoc::GetThisClass(void) 3882 CRuntime* COleServerItem::GetThisClass(void) 3883 CRuntime* COleStreamFile::GetThisClass(void) 3884 CRuntime* COleUpdateDialog::GetThisClass(void) 3885 CRuntime* CPagerCtrl::GetThisClass(void) 3886 CRuntime* CPageSetupDialog::GetThisClass(void) 3887 CRuntime* CPaintDC::GetThisClass(void) 3888 CRuntime* CPalette::GetThisClass(void) 3889 CRuntime* CPen::GetThisClass(void) 3890 CRuntime* CPreviewDC::GetThisClass(void) 3891 CRuntime* CPreviewView::GetThisClass(void) 3892 CRuntime* CPrintDialog::GetThisClass(void) 3893 CRuntime* CPrintDialogEx::GetThisClass(void) 3894 CRuntime* CProgressCtrl::GetThisClass(void) 3895 CRuntime* CPropertyPage::GetThisClass(void) 3896 CRuntime* CPropertySheet::GetThisClass(void) 3897 CRuntime* CPtrArray::GetThisClass(void) 3898 CRuntime* CPtrList::GetThisClass(void) 3899 CRuntime* CReBar::GetThisClass(void) 3900 CRuntime* CReBarCtrl::GetThisClass(void) 3901 CRuntime* CRecordset::GetThisClass(void) 3902 CRuntime* CRecordView::GetThisClass(void) 3903 CRuntime* CResourceException::GetThisClass(void) 3904 CRuntime* CRgn::GetThisClass(void) 3905 CRuntime* CRichEditCntrItem::GetThisClass(void) 3906 CRuntime* CRichEditCtrl::GetThisClass(void) 3907 CRuntime* CRichEditDoc::GetThisClass(void) 3908 CRuntime* CRichEditView::GetThisClass(void) 3909 CRuntime* CScrollBar::GetThisClass(void) 3910 CRuntime* CScrollView::GetThisClass(void) 3911 CRuntime* CSemaphore::GetThisClass(void) 3912 CRuntime* CSharedFile::GetThisClass(void) 3913 CRuntime* CSimpleException::GetThisClass(void) 3914 CRuntime* CSingleDocTemplate::GetThisClass(void) 3915 CRuntime* CSliderCtrl::GetThisClass(void) 3916 CRuntime* CSocket::GetThisClass(void) 3917 CRuntime* CSocketFile::GetThisClass(void) 3918 CRuntime* CSpinButtonCtrl::GetThisClass(void) 3919 CRuntime* CSplitterWnd::GetThisClass(void) 3920 CRuntime* CStatic::GetThisClass(void) 3921 CRuntime* CStatusBar::GetThisClass(void) 3922 CRuntime* CStatusBarCtrl::GetThisClass(void) 3923 CRuntime* CStdioFile::GetThisClass(void) 3924 CRuntime* CStringArray::GetThisClass(void) 3925 CRuntime* CStringList::GetThisClass(void) 3926 CRuntime* CSyncObject::GetThisClass(void) 3927 CRuntime* CTabCtrl::GetThisClass(void) 3928 CRuntime* CToolBar::GetThisClass(void) 3929 CRuntime* CToolBarCtrl::GetThisClass(void) 3930 CRuntime* CToolTipCtrl::GetThisClass(void) 3931 CRuntime* CTreeCtrl::GetThisClass(void) 3932 CRuntime* CTreeView::GetThisClass(void) 3933 CRuntime* CUIntArray::GetThisClass(void) 3934 CRuntime* CUserException::GetThisClass(void) 3935 CRuntime* CView::GetThisClass(void) 3936 CRuntime* CWinApp::GetThisClass(void) 3937 CRuntime* CWindowDC::GetThisClass(void) 3938 CRuntime* CWindowlessDC::GetThisClass(void) 3939 CRuntime* CWinThread::GetThisClass(void) 3940 CRuntime* CWnd::GetThisClass(void) 3941 CRuntime* CWordArray::GetThisClass(void) 3942 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap(void) 3943 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap(void) 3944 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap(void) 3945 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap(void) 3946 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap(void) 3947 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap(void) 3948 AFX_EVENTMAP const * COleControl::GetThisEventMap(void) 3949 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap(void) 3950 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap(void) 3951 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap(void) 3952 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap(void) 3953 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap(void) 3954 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap(void) 3955 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap(void) 3956 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap(void) 3957 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap(void) 3958 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap(void) 3959 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap(void) 3960 AFX_INTERFACEMAP const * CFileDialog::GetThisInterfaceMap(void) 3961 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap(void) 3962 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap(void) 3963 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap(void) 3964 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap(void) 3965 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap(void) 3966 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap(void) 3967 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap(void) 3968 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap(void) 3969 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap(void) 3970 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap(void) 3971 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap(void) 3972 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap(void) 3973 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap(void) 3974 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap(void) 3975 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap(void) 3976 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap(void) 3977 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap(void) 3978 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap(void) 3979 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap(void) 3980 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap(void) 3981 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap(void) 3982 AFX_MSGMAP const * CControlBar::GetThisMessageMap(void) 3983 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap(void) 3984 AFX_MSGMAP const * CCtrlView::GetThisMessageMap(void) 3985 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap(void) 3986 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap(void) 3987 AFX_MSGMAP const * CDialog::GetThisMessageMap(void) 3988 AFX_MSGMAP const * CDialogBar::GetThisMessageMap(void) 3989 AFX_MSGMAP const * CDockBar::GetThisMessageMap(void) 3990 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap(void) 3991 AFX_MSGMAP const * CDocument::GetThisMessageMap(void) 3992 AFX_MSGMAP const * CEditView::GetThisMessageMap(void) 3993 AFX_MSGMAP const * CFormView::GetThisMessageMap(void) 3994 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap(void) 3995 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap(void) 3996 AFX_MSGMAP const * CHtmlView::GetThisMessageMap(void) 3997 AFX_MSGMAP const * CListCtrl::GetThisMessageMap(void) 3998 AFX_MSGMAP const * CListView::GetThisMessageMap(void) 3999 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap(void) 4000 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap(void) 4001 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap(void) 4002 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap(void) 4003 AFX_MSGMAP const * COleControl::GetThisMessageMap(void) 4004 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap(void) 4005 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap(void) 4006 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap(void) 4007 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap(void) 4008 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap(void) 4009 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap(void) 4010 AFX_MSGMAP const * CPreviewView::GetThisMessageMap(void) 4011 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap(void) 4012 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap(void) 4013 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap(void) 4014 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap(void) 4015 AFX_MSGMAP const * CReBar::GetThisMessageMap(void) 4016 AFX_MSGMAP const * CRecordView::GetThisMessageMap(void) 4017 AFX_MSGMAP const * CRichEditView::GetThisMessageMap(void) 4018 AFX_MSGMAP const * CScrollView::GetThisMessageMap(void) 4019 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap(void) 4020 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap(void) 4021 AFX_MSGMAP const * CStatusBar::GetThisMessageMap(void) 4022 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap(void) 4023 AFX_MSGMAP const * CToolBar::GetThisMessageMap(void) 4024 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap(void) 4025 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap(void) 4026 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap(void) 4027 AFX_MSGMAP const * CTreeView::GetThisMessageMap(void) 4028 AFX_MSGMAP const * CView::GetThisMessageMap(void) 4029 AFX_MSGMAP const * CWinApp::GetThisMessageMap(void) 4030 AFX_MSGMAP const * CWnd::GetThisMessageMap(void) 4031 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 4032 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 4033 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 4034 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 4035 int CMonthCalCtrl::GetToday(ATL::CTime &)const 4036 int CHtmlView::GetToolBar(void)const 4037 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 4038 long CHtmlView::GetTop(void)const 4039 int CHtmlView::GetTopLevelContainer(void)const 4040 CFrameWnd * CWnd::GetTopLevelFrame(void)const 4041 CWnd * CWnd::GetTopLevelOwner(void)const 4042 CWnd * CWnd::GetTopLevelParent(void)const 4043 int CScrollView::GetTrueClientSize(CSize &,CSize &) 4044 void CRectTracker::GetTrueRect(tagRECT *)const 4045 short CDaoQueryDef::GetType(void) 4046 short CDaoRecordset::GetType(void) 4047 ATL::CStringT > > CHtmlView::GetType(void)const 4048 short CPictureHolder::GetType(void) 4049 unsigned long CProperty::GetType(void) 4050 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4051 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4052 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4053 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4054 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4055 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4056 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4057 unsigned int CCmdTarget::GetTypeInfoCount(void) 4058 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 4059 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 4060 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 4061 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 4062 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 4063 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 4064 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 4065 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 4066 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 4067 CTypeLibCache * CCmdTarget::GetTypeLibCache(void) 4068 void COleSafeArray::GetUBound(unsigned long,long *) 4069 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 4070 long COleControl::XOleObject::GetUserClassID(_GUID *) 4071 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 4072 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 4073 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 4074 ATL::CStringT > > CDaoWorkspace::GetUserNameA(void) 4075 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 4076 void COleControl::GetUserType(char *) 4077 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 4078 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 4079 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 4080 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 4081 ATL::CStringT > > CDaoRecordset::GetValidationRule(void) 4082 ATL::CStringT > > CDaoTableDef::GetValidationRule(void) 4083 ATL::CStringT > > CDaoRecordset::GetValidationText(void) 4084 ATL::CStringT > > CDaoTableDef::GetValidationText(void) 4085 void * CMapPtrToPtr::GetValueAt(void *)const 4086 ATL::CStringT > > CHttpFile::GetVerb(void)const 4087 ATL::CStringT > > CDaoDatabase::GetVersion(void) 4088 ATL::CStringT > > CDaoWorkspace::GetVersion(void) 4089 unsigned long CDockState::GetVersion(void) 4090 CHtmlEditView * CHtmlEditDoc::GetView(void)const 4091 CRichEditView * CRichEditDoc::GetView(void)const 4092 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 4093 long COleControl::XViewObject::GetViewStatus(unsigned long *) 4094 int CHtmlView::GetVisible(void)const 4095 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 4096 long CHtmlView::GetWidth(void)const 4097 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 4098 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 4099 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 4100 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 4101 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 4102 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 4103 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 4104 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 4105 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 4106 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 4107 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 4108 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 4109 long CWnd::GetWindowedChildCount(void) 4110 long CWnd::GetWindowLessChildCount(void) 4111 IDropTarget * COleControl::GetWindowlessDropTarget(void) 4112 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 4113 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 4114 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 4115 int CWnd::GetWindowTextA(char *,int)const 4116 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 4117 int CWnd::GetWindowTextLengthA(void)const 4118 short CDaoWorkspace::GetWorkspaceCount(void) 4119 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 4120 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 4121 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 4122 long COleDropSource::GiveFeedback(unsigned long) 4123 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 4124 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 4125 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 4126 void CMemFile::GrowFile(unsigned long) 4127 int CWnd::HandleFloatingSysCommand(unsigned int,long) 4128 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 4129 long CDialog::HandleInitDialog(unsigned int,long) 4130 long CDialogBar::HandleInitDialog(unsigned int,long) 4131 long CFormView::HandleInitDialog(unsigned int,long) 4132 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 4133 long CPropertySheet::HandleInitDialog(unsigned int,long) 4134 long CScrollView::HandleMButtonDown(unsigned int,long) 4135 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 4136 int COleControlContainer::HandleSetFocus(void) 4137 long CDialog::HandleSetFont(unsigned int,long) 4138 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 4139 long COleControl::XPersistStorage::HandsOffStorage(void) 4140 long COleServerDoc::XPersistStorage::HandsOffStorage(void) 4141 int COleDocument::HasBlankItems(void)const 4142 int CDialogTemplate::HasFont(void)const 4143 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 4144 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 4145 void * CFile::hFileNull 4146 void CWinApp::HideApplication(void) 4147 void CFileDialog::HideControl(int) 4148 long CBrowserControlSite::HideUI(void) 4149 long CDHtmlDialog::HideUI(void) 4150 long CHtmlControlSite::XDocHostUIHandler::HideUI(void) 4151 void CDC::HIMETRICtoDP(tagSIZE *)const 4152 void CDC::HIMETRICtoLP(tagSIZE *)const 4153 int CListCtrl::HitTest(CPoint,unsigned int *)const 4154 int CRectTracker::HitTest(CPoint)const 4155 int CSplitterWnd::HitTest(CPoint)const 4156 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 4157 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 4158 int CRectTracker::HitTestHandles(CPoint)const 4159 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 4160 void CWnd::HtmlHelpA(unsigned long,unsigned int) 4161 int CSplitterWnd::IdFromRowCol(int,int)const 4162 void CDaoWorkspace::Idle(int) 4163 void COlePropertyPage::IgnoreApply(unsigned int) 4164 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 4165 int CWinApp::InitApplication(void) 4166 long COleControl::XOleCache::InitCache(IDataObject *) 4167 int CWnd::InitControlContainer(int) 4168 void CDaoWorkspace::InitDatabasesCollection(void) 4169 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 4170 long CPrintDialogEx::InitDone(void) 4171 void CDaoException::InitErrorsCollection(void) 4172 void CDaoQueryDef::InitFieldsCollection(void) 4173 void CDaoRecordset::InitFieldsCollection(void) 4174 void CDaoTableDef::InitFieldsCollection(void) 4175 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4176 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4177 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4178 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4179 void CMapPtrToPtr::InitHashTable(unsigned int,int) 4180 void CMapPtrToWord::InitHashTable(unsigned int,int) 4181 void CMapStringToOb::InitHashTable(unsigned int,int) 4182 void CMapStringToPtr::InitHashTable(unsigned int,int) 4183 void CMapStringToString::InitHashTable(unsigned int,int) 4184 void CMapWordToOb::InitHashTable(unsigned int,int) 4185 void CMapWordToPtr::InitHashTable(unsigned int,int) 4186 long CDataSourceControl::Initialize(void) 4187 void CDHtmlDialog::Initialize(void) 4188 void CDaoWorkspace::InitializeEngine(void) 4189 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 4190 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 4191 int CEditView::InitializeReplace(void) 4192 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 4193 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 4194 void CDaoRecordset::InitIndexesCollection(void) 4195 void CDaoTableDef::InitIndexesCollection(void) 4196 int COleControlModule::InitInstance(void) 4197 int CWinApp::InitInstance(void) 4198 int CWinThread::InitInstance(void) 4199 void CWinApp::InitLibId(void) 4200 void CDockContext::InitLoop(void) 4201 int CDialog::InitModalIndirect(void *,CWnd *) 4202 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 4203 long COleControl::XPersistMemory::InitNew(void) 4204 long COleControl::XPersistPropertyBag::InitNew(void) 4205 long COleControl::XPersistStorage::InitNew(IStorage *) 4206 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 4207 long COleControl::XPersistStreamInit::InitNew(void) 4208 void CDaoQueryDef::InitParametersCollection(void) 4209 void CDaoDatabase::InitQueryDefsCollection(void) 4210 void CRecordset::InitRecord(void) 4211 void CDaoDatabase::InitRelationsCollection(void) 4212 void COleControl::InitStockEventMask(void) 4213 void COleControl::InitStockPropMask(void) 4214 void CSimpleException::InitString(void) 4215 void CDaoDatabase::InitTableDefsCollection(void) 4216 void CDaoDatabase::InitWorkspace(void) 4217 void CDaoWorkspace::InitWorkspacesCollection(void) 4218 long COleControl::XOleInPlaceObject::InPlaceDeactivate(void) 4219 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate(void) 4220 int ATL::CStringT > >::Insert(int,wchar_t) 4221 int ATL::CStringT > >::Insert(int,wchar_t const *) 4222 int ATL::CStringT > >::Insert(int,char) 4223 int ATL::CStringT > >::Insert(int,char const *) 4224 int CDockBar::Insert(CControlBar *,CRect,CPoint) 4225 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 4226 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 4227 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 4228 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 4229 void CByteArray::InsertAt(int,unsigned char,int) 4230 void CByteArray::InsertAt(int,CByteArray *) 4231 void CDWordArray::InsertAt(int,unsigned long,int) 4232 void CDWordArray::InsertAt(int,CDWordArray *) 4233 void CObArray::InsertAt(int,CObArray *) 4234 void CObArray::InsertAt(int,CObject *,int) 4235 void CPtrArray::InsertAt(int,CPtrArray *) 4236 void CPtrArray::InsertAt(int,void *,int) 4237 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 4238 void CStringArray::InsertAt(int,char const *,int) 4239 void CStringArray::InsertAt(int,CStringArray const *) 4240 void CUIntArray::InsertAt(int,unsigned int,int) 4241 void CUIntArray::InsertAt(int,CUIntArray *) 4242 void CWordArray::InsertAt(int,unsigned short,int) 4243 void CWordArray::InsertAt(int,CWordArray *) 4244 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 4245 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 4246 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 4247 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 4248 int CListCtrl::InsertColumn(int,char const *,int,int,int) 4249 void CStringArray::InsertEmpty(int,int) 4250 void CRichEditView::InsertFileAsObject(char const *) 4251 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 4252 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 4253 long CRichEditView::InsertItem(CRichEditCntrItem *) 4254 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 4255 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 4256 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 4257 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 4258 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 4259 CFontHolder & COleControl::InternalGetFont(void) 4260 ATL::CStringT > > const & COleControl::InternalGetText(void) 4261 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 4262 unsigned long CCmdTarget::InternalRelease(void) 4263 int CDC::IntersectClipRect(int,int,int,int) 4264 int CDC::IntersectClipRect(tagRECT const *) 4265 void CCheckListBox::InvalidateCheck(int) 4266 void COleControl::InvalidateControl(tagRECT const *,int) 4267 void CCheckListBox::InvalidateItem(int) 4268 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 4269 void COleControl::InvalidateRgn(CRgn *,int) 4270 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 4271 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4272 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4273 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4274 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4275 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4276 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4277 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4278 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(void),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 4279 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4280 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4281 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4282 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4283 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4284 int CThemeHelper::IsAppThemed(void) 4285 int CThemeHelper::IsAppThemedFail(void) 4286 int CDocItem::IsBlank(void)const 4287 int COleServerItem::IsBlank(void)const 4288 int CDaoRecordset::IsBOF(void)const 4289 int CPropertyPage::IsButtonEnabled(int) 4290 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 4291 int COleServerItem::IsConnected(void)const 4292 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 4293 int COleControlSite::IsDefaultButton(void) 4294 int CDaoRecordset::IsDeleted(void)const 4295 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 4296 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 4297 int CWnd::IsDialogMessageA(tagMSG *) 4298 long CBlobProperty::IsDirty(void) 4299 long COleLinkingDoc::XPersistFile::IsDirty(void) 4300 long COleControl::XPersistMemory::IsDirty(void) 4301 long COleControl::XPersistStorage::IsDirty(void) 4302 long COleServerDoc::XPersistStorage::IsDirty(void) 4303 long COleControl::XPersistStreamInit::IsDirty(void) 4304 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 4305 unsigned int CWnd::IsDlgButtonChecked(int)const 4306 int CControlBar::IsDockBar(void)const 4307 int CDockBar::IsDockBar(void)const 4308 int CFileFind::IsDots(void)const 4309 int CGopherFileFind::IsDots(void)const 4310 bool ATL::CSimpleStringT::IsEmpty(void)const 4311 bool ATL::CSimpleStringT::IsEmpty(void)const 4312 int CCheckListBox::IsEnabled(int) 4313 int CDaoRecordset::IsEOF(void)const 4314 int CDHtmlDialog::IsExternalDispatchSafe(void) 4315 int CDaoRecordset::IsFieldDirty(void *) 4316 int CRecordset::IsFieldDirty(void *) 4317 int CDaoRecordset::IsFieldNull(void *) 4318 int CRecordset::IsFieldNull(void *) 4319 int CDaoRecordset::IsFieldNullable(void *) 4320 int CRecordset::IsFieldNullable(void *) 4321 int CRecordset::IsFieldNullable(unsigned long)const 4322 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 4323 int CRecordset::IsFieldStatusDirty(unsigned long)const 4324 int CDaoRecordset::IsFieldStatusNull(unsigned int) 4325 int CRecordset::IsFieldStatusNull(unsigned long)const 4326 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 4327 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 4328 int CFieldExchange::IsFieldType(unsigned int *) 4329 int CControlBar::IsFloating(void)const 4330 int CFrameWnd::IsFrameWnd(void)const 4331 int CWnd::IsFrameWnd(void)const 4332 int IsHelpKey(tagMSG *) 4333 int CWinThread::IsIdleMessage(tagMSG *) 4334 int CCmdTarget::IsInvokeAllowed(long) 4335 int COleControl::IsInvokeAllowed(long) 4336 int CRecordset::IsJoin(char const *) 4337 int CObject::IsKindOf(CRuntimeconst *)const 4338 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 4339 int COccManager::IsLabelControl(CWnd *) 4340 int COleObjectFactory::IsLicenseValid(void) 4341 int CControlCreationInfo::IsManaged(void)const 4342 int CDaoRecordset::IsMatch(void) 4343 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 4344 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 4345 int COleControlSite::IsMatchingMnemonic(tagMSG *) 4346 int CHtmlEditDoc::IsModified(void) 4347 int COleClientItem::IsModified(void)const 4348 int COleControl::IsModified(void) 4349 int COlePropertyPage::IsModified(void) 4350 int CRichEditDoc::IsModified(void) 4351 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 4352 int CDaoRecordView::IsOnFirstRecord(void) 4353 int CRecordView::IsOnFirstRecord(void) 4354 int CDaoRecordView::IsOnLastRecord(void) 4355 int CRecordView::IsOnLastRecord(void) 4356 int CRecordset::IsOpen(void)const 4357 long COlePropertyPage::XPropertyPage::IsPageDirty(void) 4358 int CRecordset::IsParamStatusNull(unsigned long)const 4359 int CRecordset::IsRecordsetUpdatable(void) 4360 int CCmdTarget::IsResultExpected(void) 4361 int CRichEditView::IsRichEditFormat(unsigned short) 4362 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 4363 int CRichEditView::IsSelected(CObject const *)const 4364 int CView::IsSelected(CObject const *)const 4365 int CRecordset::IsSelectQueryUpdatable(char const *) 4366 int CObject::IsSerializable(void)const 4367 int COleMessageFilter::IsSignificantMessage(tagMSG *) 4368 int CDHtmlDialog::IsSinkedElement(IDispatch *) 4369 int CRecordset::IsSQLUpdatable(char const *) 4370 int COleControl::IsSubclassedControl(void) 4371 int CThemeHelper::IsThemeBackgroundPartiallyTransparent(void *,int,int) 4372 int CThemeHelper::IsThemeBackgroundPartiallyTransparentFail(void *,int,int) 4373 int CThemeHelper::IsThemePartDefined(void *,int,int) 4374 int CThemeHelper::IsThemePartDefinedFail(void *,int,int) 4375 int CWnd::IsTopParentActive(void)const 4376 int CFrameWnd::IsTracking(void)const 4377 long CDocObjectServer::XOleObject::IsUpToDate(void) 4378 long COleControl::XOleObject::IsUpToDate(void) 4379 long COleServerDoc::XOleObject::IsUpToDate(void) 4380 long COleServerItem::XOleObject::IsUpToDate(void) 4381 int CDaoFieldExchange::IsValidOperation(void) 4382 int CControlBar::IsVisible(void)const 4383 int COleControlSite::IsWindowEnabled(void)const 4384 int CWnd::IsWindowEnabled(void)const 4385 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 4386 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 4387 void COleControl::KeyDown(unsigned short *) 4388 void COleControl::KeyUp(unsigned short *) 4389 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 4390 void CToolBar::Layout(void) 4391 ATL::CStringT > > ATL::CStringT > >::Left(int)const 4392 ATL::CStringT > > ATL::CStringT > >::Left(int)const 4393 int CRichEditCtrl::LineIndex(int)const 4394 int CRichEditCtrl::LineLength(int)const 4395 void CRichEditCtrl::LineScroll(int,int) 4396 int CDC::LineTo(int,int) 4397 unsigned long CRichEditView::lMaxSize 4398 long CBlobProperty::Load(IStream *) 4399 int CDialogTemplate::Load(char const *) 4400 void COleControl::Load(char const *,CDataPathProperty &) 4401 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4402 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 4403 long COleControl::XPersistMemory::Load(void *,unsigned long) 4404 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4405 long COleControl::XPersistStorage::Load(IStorage *) 4406 long COleServerDoc::XPersistStorage::Load(IStorage *) 4407 long COleControl::XPersistStreamInit::Load(IStream *) 4408 int CFrameWnd::LoadAccelTable(char const *) 4409 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL(void) 4410 void CFrameWnd::LoadBarState(char const *) 4411 int CToolBar::LoadBitmapA(char const *) 4412 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 4413 void CDaoRecordset::LoadFields(void) 4414 void CRecordset::LoadFields(void) 4415 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4416 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4417 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4418 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4419 int CDHtmlDialog::LoadFromResource(unsigned int) 4420 int CDHtmlDialog::LoadFromResource(char const *) 4421 int CHtmlView::LoadFromResource(unsigned int) 4422 int CHtmlView::LoadFromResource(char const *) 4423 void COleDocument::LoadFromStorage(void) 4424 int CControlBarInfo::LoadState(char const *,int,CDockState *) 4425 void CDockState::LoadState(char const *) 4426 long COleControl::LoadState(IStream *) 4427 void CWinApp::LoadStdProfileSettings(unsigned int) 4428 int ATL::CStringT > >::LoadStringA(unsigned int) 4429 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 4430 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 4431 int ATL::CStringT > >::LoadStringA(unsigned int) 4432 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 4433 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 4434 int CWinApp::LoadSysPolicies(void) 4435 void CDocTemplate::LoadTemplate(void) 4436 void CMultiDocTemplate::LoadTemplate(void) 4437 int CToolBar::LoadToolBar(char const *) 4438 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4439 void COleSafeArray::Lock(void) 4440 int CSingleLock::Lock(unsigned long) 4441 int CSyncObject::Lock(unsigned long) 4442 void CTypeLibCache::Lock(void) 4443 wchar_t * ATL::CSimpleStringT::LockBuffer(void) 4444 char * ATL::CSimpleStringT::LockBuffer(void) 4445 char const * CEditView::LockBuffer(void)const 4446 long COleControlContainer::XOleContainer::LockContainer(int) 4447 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4448 void COleLinkingDoc::LockExternal(int,int) 4449 int COleControl::LockInPlaceActive(int) 4450 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4451 void CFile::LockRange(unsigned __int64,unsigned __int64) 4452 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 4453 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 4454 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 4455 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 4456 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 4457 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4458 long COleObjectFactory::XClassFactory::LockServer(int) 4459 int CMapPtrToPtr::Lookup(void *,void * &)const 4460 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4461 int CMapStringToOb::Lookup(char const *,CObject * &)const 4462 int CMapStringToPtr::Lookup(char const *,void * &)const 4463 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 4464 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4465 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4466 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4467 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4468 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4469 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4470 int CMapStringToOb::LookupKey(char const *,char const * &)const 4471 int CMapStringToPtr::LookupKey(char const *,char const * &)const 4472 int CMapStringToString::LookupKey(char const *,char const * &)const 4473 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4474 void CDC::LPtoDP(tagSIZE *)const 4475 void CDC::LPtoHIMETRIC(tagSIZE *)const 4476 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 4477 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 4478 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 4479 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 4480 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 4481 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 4482 void CArchive::MapObject(CObject const *) 4483 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4484 int COleDialog::MapResult(unsigned int) 4485 long CPropertyPage::MapWizardResult(long) 4486 void CDaoRecordset::MarkForAddNew(void) 4487 void CRecordset::MarkForAddNew(void) 4488 void CDaoRecordset::MarkForEdit(void) 4489 void CRecordset::MarkForUpdate(void) 4490 void CRichEditDoc::MarkItemsClear(void)const 4491 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 4492 int CFileFind::MatchesMask(unsigned long)const 4493 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4494 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4495 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 4496 void CComboBox::MeasureItem(tagMEASUREITEM*) 4497 void CListBox::MeasureItem(tagMEASUREITEM*) 4498 void CMenu::MeasureItem(tagMEASUREITEM*) 4499 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 4500 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 4501 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 4502 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 4503 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4504 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4505 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4506 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4507 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4508 void CPreviewDC::MirrorAttributes(void) 4509 void CPreviewDC::MirrorFont(void) 4510 void CPreviewDC::MirrorMappingMode(int) 4511 void CPreviewDC::MirrorViewportOrg(void) 4512 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4513 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4514 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4515 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4516 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4517 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4518 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 4519 void CDaoRecordset::Move(long) 4520 void CDockContext::Move(CPoint) 4521 void CRecordset::Move(long,unsigned short) 4522 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4523 void CDaoRecordset::MoveFirst(void) 4524 void CDaoRecordset::MoveLast(void) 4525 void CDaoRecordset::MoveNext(void) 4526 void CDaoRecordset::MovePrev(void) 4527 CPoint CDC::MoveTo(int,int) 4528 void COleControlSite::MoveWindow(int,int,int,int) 4529 void CWnd::MoveWindow(int,int,int,int,int) 4530 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4531 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4532 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 4533 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 4534 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 4535 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 4536 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 4537 unsigned int COleDropSource::nDragDelay 4538 unsigned int COleDropSource::nDragMinDist 4539 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4540 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc(void) 4541 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc(void) 4542 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc(void) 4543 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc(void) 4544 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 4545 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc(void) 4546 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc(void) 4547 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4548 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4549 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4550 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4551 unsigned int const CEditView::nMaxSize 4552 int CRectTracker::NormalizeHit(int)const 4553 void CDataBoundProperty::Notify(void) 4554 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4555 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4556 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4557 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4558 void COleServerDoc::NotifyRename(char const *) 4559 unsigned int COleDropTarget::nScrollDelay 4560 int COleDropTarget::nScrollInset 4561 unsigned int COleDropTarget::nScrollInterval 4562 void ATL::CStringT > >::OemToCharA(void) 4563 int CDC::OffsetClipRgn(int,int) 4564 int CDC::OffsetClipRgn(tagSIZE) 4565 CPoint CDC::OffsetViewportOrg(int,int) 4566 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4567 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4568 CPoint CDC::OffsetWindowOrg(int,int) 4569 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4570 void CAsyncSocket::OnAccept(int) 4571 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4572 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4573 void COleClientItem::OnActivate(void) 4574 void COleFrameHook::OnActivate(int) 4575 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4576 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4577 long COleControl::OnActivateInPlace(int,tagMSG *) 4578 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4579 long CWnd::OnActivateTopLevel(unsigned int,long) 4580 void COleClientItem::OnActivateUI(void) 4581 long CDocObjectServer::OnActivateView(void) 4582 void CFormView::OnActivateView(int,CView *,CView *) 4583 void CPreviewView::OnActivateView(int,CView *,CView *) 4584 void CRichEditView::OnActivateView(int,CView *,CView *) 4585 void CView::OnActivateView(int,CView *,CView *) 4586 long CToolTipCtrl::OnAddTool(unsigned int,long) 4587 void CConnectionPoint::OnAdvise(int) 4588 void COleControl::XEventConnPt::OnAdvise(int) 4589 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4590 void COleControl::OnAmbientPropertyChange(long) 4591 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4592 void COleControl::OnAppearanceChanged(void) 4593 void CWinApp::OnAppExit(void) 4594 int CPropertyPage::OnApply(void) 4595 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4596 void CDocObjectServer::OnApplyViewState(CArchive &) 4597 void COleControl::OnBackColorChanged(void) 4598 int CFrameWnd::OnBarCheck(unsigned int) 4599 int COleIPFrameWnd::OnBarCheck(unsigned int) 4600 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4601 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4602 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4603 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 4604 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 4605 int COleDropSource::OnBeginDrag(CWnd *) 4606 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4607 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4608 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4609 void COleControl::OnBorderStyleChanged(void) 4610 void CRichEditView::OnBullet(void) 4611 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4612 long CFileDialog::XFileDialogControlEvents::OnButtonClicked(IFileDialogCustomize *,unsigned long) 4613 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 4614 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 4615 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 4616 void CCommonDialog::OnCancel(void) 4617 void CDialog::OnCancel(void) 4618 void CPropertyPage::OnCancel(void) 4619 void CRichEditView::OnCancelEditCntr(void) 4620 void COleControl::OnCancelMode(void) 4621 void CSplitterWnd::OnCancelMode(void) 4622 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4623 long COleControl::XFontNotification::OnChanged(long) 4624 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4625 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4626 void CRectTracker::OnChangedRect(CRect const &) 4627 void CDocument::OnChangedViewList(void) 4628 int COleClientItem::OnChangeItemPosition(CRect const &) 4629 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4630 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4631 void CRichEditView::OnCharBold(void) 4632 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4633 void CRichEditView::OnCharItalic(void) 4634 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4635 void CRichEditView::OnCharUnderline(void) 4636 long CFileDialog::XFileDialogControlEvents::OnCheckButtonToggled(IFileDialogCustomize *,unsigned long,int) 4637 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4638 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4639 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4640 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4641 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4642 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4643 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4644 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4645 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4646 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4647 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4648 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4649 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4650 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4651 void COleControl::OnClick(unsigned short) 4652 CEnumArray * CEnumArray::OnClone(void) 4653 CEnumArray * CEnumConnections::OnClone(void) 4654 void CAsyncSocket::OnClose(int) 4655 void CControlFrameWnd::OnClose(void) 4656 void CFrameWnd::OnClose(void) 4657 void CMiniDockFrameWnd::OnClose(void) 4658 void COleControl::OnClose(unsigned long) 4659 void COleServerDoc::OnClose(enum tagOLECLOSE) 4660 void CPropertySheet::OnClose(void) 4661 void COleClientItem::XAdviseSink::OnClose(void) 4662 void CDocObjectServer::OnCloseDocument(void) 4663 void CDocument::OnCloseDocument(void) 4664 void COleDocument::OnCloseDocument(void) 4665 void COleLinkingDoc::OnCloseDocument(void) 4666 void COleServerDoc::OnCloseDocument(void) 4667 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4668 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4669 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4670 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4671 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4672 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4673 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4674 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4675 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4676 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4677 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4678 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4679 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4680 void CRichEditView::OnColorDefault(void) 4681 int CColorDialog::OnColorOK(void) 4682 void CRichEditView::OnColorPick(unsigned long) 4683 int CFrameWnd::OnCommand(unsigned int,long) 4684 int CMDIFrameWnd::OnCommand(unsigned int,long) 4685 int COlePropertyPage::OnCommand(unsigned int,long) 4686 int CPropertySheet::OnCommand(unsigned int,long) 4687 int CSplitterWnd::OnCommand(unsigned int,long) 4688 int CWnd::OnCommand(unsigned int,long) 4689 long CDialog::OnCommandHelp(unsigned int,long) 4690 long CFrameWnd::OnCommandHelp(unsigned int,long) 4691 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4692 long CPropertySheet::OnCommandHelp(unsigned int,long) 4693 void CHtmlView::OnCommandStateChange(long,int) 4694 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4695 void CAsyncSocket::OnConnect(int) 4696 void CFrameWnd::OnContextHelp(void) 4697 int COleFrameHook::OnContextHelp(int) 4698 void COleIPFrameWnd::OnContextHelp(void) 4699 void CWinApp::OnContextHelp(void) 4700 long CFileDialog::XFileDialogControlEvents::OnControlActivating(IFileDialogCustomize *,unsigned long) 4701 long COleControlSite::XOleControlSite::OnControlInfoChanged(void) 4702 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 4703 int CControlBar::OnCreate(tagCREATESTRUCTA *) 4704 int CEditView::OnCreate(tagCREATESTRUCTA *) 4705 int CFormView::OnCreate(tagCREATESTRUCTA *) 4706 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 4707 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 4708 int COleControl::OnCreate(tagCREATESTRUCTA *) 4709 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 4710 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 4711 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 4712 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 4713 int CView::OnCreate(tagCREATESTRUCTA *) 4714 int CCmdTarget::OnCreateAggregates(void) 4715 int COleControl::OnCreateAggregates(void) 4716 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4717 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 4718 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4719 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4720 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 4721 CCmdTarget * COleObjectFactory::OnCreateObject(void) 4722 CCmdTarget * COleTemplateServer::OnCreateObject(void) 4723 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4724 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4725 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4726 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4727 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4728 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4729 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4730 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4731 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4732 int CDocManager::OnDDECommand(char *) 4733 int CWinApp::OnDDECommand(char *) 4734 long CFrameWnd::OnDDEExecute(unsigned int,long) 4735 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4736 long CFrameWnd::OnDDETerminate(unsigned int,long) 4737 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 4738 void COleClientItem::OnDeactivate(void) 4739 void COleServerDoc::OnDeactivate(void) 4740 void COleClientItem::OnDeactivateAndUndo(void) 4741 void COleClientItem::OnDeactivateUI(int) 4742 void COleServerDoc::OnDeactivateUI(int) 4743 void CRichEditCntrItem::OnDeactivateUI(int) 4744 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4745 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4746 void CControlBar::OnDestroy(void) 4747 void CDHtmlDialog::OnDestroy(void) 4748 void CEditView::OnDestroy(void) 4749 void CFrameWnd::OnDestroy(void) 4750 void CHtmlView::OnDestroy(void) 4751 void CMDIChildWnd::OnDestroy(void) 4752 void CMDIFrameWnd::OnDestroy(void) 4753 void COleControl::OnDestroy(void) 4754 void COleIPFrameWnd::OnDestroy(void) 4755 void CRichEditView::OnDestroy(void) 4756 void CTabCtrl::OnDestroy(void) 4757 void CTreeCtrl::OnDestroy(void) 4758 void CTreeView::OnDestroy(void) 4759 void CView::OnDestroy(void) 4760 void CWnd::OnDestroy(void) 4761 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4762 void CRichEditView::OnDevModeChange(char *) 4763 void CWnd::OnDevModeChange(char *) 4764 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4765 void COleClientItem::OnDiscardUndoState(void) 4766 void CSplitterWnd::OnDisplayChange(void) 4767 long CWnd::OnDisplayChange(unsigned int,long) 4768 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4769 int COleFrameHook::OnDocActivate(int) 4770 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 4771 void CHtmlView::OnDocumentComplete(char const *) 4772 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4773 long CBrowserControlSite::OnDocWindowActivate(int) 4774 long CDHtmlDialog::OnDocWindowActivate(int) 4775 long CHtmlView::OnDocWindowActivate(int) 4776 void COleServerDoc::OnDocWindowActivate(int) 4777 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4778 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4779 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4780 void CDocObjectServerItem::OnDoVerb(long) 4781 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4782 void COleServerItem::OnDoVerb(long) 4783 void CHtmlView::OnDownloadBegin(void) 4784 void CHtmlView::OnDownloadComplete(void) 4785 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4786 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4787 void COleDropTarget::OnDragLeave(CWnd *) 4788 void CView::OnDragLeave(void) 4789 long CWnd::OnDragList(unsigned int,long) 4790 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4791 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4792 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4793 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4794 void CCtrlView::OnDraw(CDC *) 4795 void CFormView::OnDraw(CDC *) 4796 void CHtmlView::OnDraw(CDC *) 4797 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4798 void CPreviewView::OnDraw(CDC *) 4799 void CView::OnDraw(CDC *) 4800 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4801 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4802 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4803 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4804 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4805 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4806 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4807 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4808 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4809 void CFrameWnd::OnDropFiles(HDROP__ *) 4810 void CRichEditView::OnDropFiles(HDROP__ *) 4811 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4812 int CEditView::OnEditChange(void) 4813 void COleDocument::OnEditChangeIcon(void) 4814 void CEditView::OnEditClear(void) 4815 void CRichEditView::OnEditClear(void) 4816 void COleDocument::OnEditConvert(void) 4817 void CEditView::OnEditCopy(void) 4818 void CHtmlView::OnEditCopy(void) 4819 void CRichEditView::OnEditCopy(void) 4820 void CEditView::OnEditCut(void) 4821 void CHtmlView::OnEditCut(void) 4822 void CRichEditView::OnEditCut(void) 4823 void CEditView::OnEditFind(void) 4824 void CRichEditView::OnEditFind(void) 4825 void CEditView::OnEditFindReplace(int) 4826 void CRichEditView::OnEditFindReplace(int) 4827 void COleDocument::OnEditLinks(void) 4828 void CEditView::OnEditPaste(void) 4829 void CHtmlView::OnEditPaste(void) 4830 void CRichEditView::OnEditPaste(void) 4831 void CRichEditView::OnEditPasteSpecial(void) 4832 void CRichEditView::OnEditProperties(void) 4833 int COlePropertyPage::OnEditProperty(long) 4834 void CRichEditView::OnEditRedo(void) 4835 void CEditView::OnEditRepeat(void) 4836 void CRichEditView::OnEditRepeat(void) 4837 void CEditView::OnEditReplace(void) 4838 void CRichEditView::OnEditReplace(void) 4839 void CEditView::OnEditSelectAll(void) 4840 void CRichEditView::OnEditSelectAll(void) 4841 void CEditView::OnEditUndo(void) 4842 void CRichEditView::OnEditUndo(void) 4843 void CFrameWnd::OnEnable(int) 4844 void CToolTipCtrl::OnEnable(int) 4845 void COleControl::OnEnabledChanged(void) 4846 long CHtmlView::OnEnableModeless(int) 4847 void COleFrameHook::OnEnableModeless(int) 4848 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4849 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4850 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4851 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4852 void CFrameWnd::OnEndSession(int) 4853 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4854 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4855 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4856 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4857 int CDockBar::OnEraseBkgnd(CDC *) 4858 int CFrameWnd::OnEraseBkgnd(CDC *) 4859 int COleControl::OnEraseBkgnd(CDC *) 4860 int COleResizeBar::OnEraseBkgnd(CDC *) 4861 int CPreviewView::OnEraseBkgnd(CDC *) 4862 int CReBar::OnEraseBkgnd(CDC *) 4863 int CToolBar::OnEraseBkgnd(CDC *) 4864 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4865 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4866 int COleControlSite::OnEvent(AFX_EVENT *) 4867 void COleControl::OnEventAdvise(int) 4868 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4869 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4870 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4871 void CDocument::OnFileClose(void) 4872 void CFileDialog::OnFileNameChange(void) 4873 int CFileDialog::OnFileNameOK(void) 4874 void CDocManager::OnFileNew(void) 4875 void CWinApp::OnFileNew(void) 4876 long CFileDialog::XFileDialogEvents::OnFileOk(IFileDialog *) 4877 void CDocManager::OnFileOpen(void) 4878 void CWinApp::OnFileOpen(void) 4879 void CHtmlView::OnFilePrint(void) 4880 void CView::OnFilePrint(void) 4881 void CView::OnFilePrintPreview(void) 4882 void CWinApp::OnFilePrintSetup(void) 4883 void CDocument::OnFileSave(void) 4884 void CDocument::OnFileSaveAs(void) 4885 void COleServerDoc::OnFileSaveCopyAs(void) 4886 void CDocument::OnFileSendMail(void) 4887 void COleDocument::OnFileSendMail(void) 4888 void COleServerDoc::OnFileUpdate(void) 4889 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4890 void CCmdTarget::OnFinalRelease(void) 4891 void CDocument::OnFinalRelease(void) 4892 void COleControl::OnFinalRelease(void) 4893 void COlePropertyPage::OnFinalRelease(void) 4894 void COleServerItem::OnFinalRelease(void) 4895 void CWnd::OnFinalRelease(void) 4896 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 4897 void CEditView::OnFindNext(char const *,int,int) 4898 void CRichEditView::OnFindNext(char const *,int,int,int) 4899 long CEditView::OnFindReplaceCmd(unsigned int,long) 4900 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4901 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4902 long COleControlSite::XOleControlSite::OnFocus(int) 4903 void CFileDialog::OnFolderChange(void) 4904 long CFileDialog::XFileDialogEvents::OnFolderChange(IFileDialog *) 4905 long CFileDialog::XFileDialogEvents::OnFolderChanging(IFileDialog *,IShellItem *) 4906 void COleControl::OnFontChanged(void) 4907 void COleControl::OnForeColorChanged(void) 4908 void CRichEditView::OnFormatFont(void) 4909 void COleControl::OnFrameClose(void) 4910 long CBrowserControlSite::OnFrameWindowActivate(int) 4911 long CDHtmlDialog::OnFrameWindowActivate(int) 4912 long CHtmlView::OnFrameWindowActivate(int) 4913 void COleServerDoc::OnFrameWindowActivate(int) 4914 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4915 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4916 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4917 void COleControl::OnFreezeEvents(int) 4918 void CHtmlView::OnFullScreen(int) 4919 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4920 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4921 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4922 void COleClientItem::OnGetClipRect(CRect &) 4923 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4924 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4925 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4926 unsigned int COleControl::OnGetDlgCode(void) 4927 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4928 COleServerItem * CRichEditDoc::OnGetEmbeddedItem(void) 4929 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4930 long CHtmlView::OnGetExternal(IDispatch * *) 4931 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4932 HMENU__ * COleControl::OnGetInPlaceMenu(void) 4933 void COleClientItem::OnGetItemPosition(CRect &) 4934 void COleDocObjectItem::OnGetItemPosition(CRect &) 4935 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 4936 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 4937 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4938 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4939 long CWnd::OnGetObject(unsigned int,long) 4940 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4941 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4942 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4943 long CStatusBar::OnGetText(unsigned int,long) 4944 long CStatusBar::OnGetTextLength(unsigned int,long) 4945 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4946 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4947 unsigned long COleControl::OnGetViewStatus(void) 4948 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4949 void CReBar::OnHeightChange(tagNMHDR *,long *) 4950 void CFrameWnd::OnHelp(void) 4951 int COlePropertyPage::OnHelp(char const *) 4952 void CWinApp::OnHelp(void) 4953 void CWnd::OnHelp(void) 4954 long CFileDialog::XFileDialogEvents::OnHelp(IFileDialog *) 4955 void CWinApp::OnHelpFinder(void) 4956 void CWnd::OnHelpFinder(void) 4957 long CControlBar::OnHelpHitTest(unsigned int,long) 4958 long CDialog::OnHelpHitTest(unsigned int,long) 4959 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4960 void CWinApp::OnHelpIndex(void) 4961 void CWnd::OnHelpIndex(void) 4962 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4963 int CWnd::OnHelpInfo(tagHELPINFO *) 4964 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4965 void CWinApp::OnHelpUsing(void) 4966 void CWnd::OnHelpUsing(void) 4967 void CDocObjectServerItem::OnHide(void) 4968 long COleControl::OnHide(void) 4969 void COleServerItem::OnHide(void) 4970 void CFrameWnd::OnHideMenuBar(void) 4971 void COleControl::OnHideToolBars(void) 4972 long CHtmlView::OnHideUI(void) 4973 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4974 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4975 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4976 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4977 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4978 void CDocTemplate::OnIdle(void) 4979 void CDocument::OnIdle(void) 4980 void COleDocument::OnIdle(void) 4981 int CWinApp::OnIdle(long) 4982 int CWinThread::OnIdle(long) 4983 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4984 void CFrameWnd::OnIdleUpdateCmdUI(void) 4985 void CMDIFrameWnd::OnIdleUpdateCmdUI(void) 4986 void COleCntrFrameWnd::OnIdleUpdateCmdUI(void) 4987 void COleIPFrameWnd::OnIdleUpdateCmdUI(void) 4988 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4989 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 4990 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4991 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 4992 int CDHtmlDialog::OnInitDialog(void) 4993 int CDialog::OnInitDialog(void) 4994 int COlePropertiesDialog::OnInitDialog(void) 4995 int COlePropertyPage::OnInitDialog(void) 4996 int CPropertySheet::OnInitDialog(void) 4997 void CFileDialog::OnInitDone(void) 4998 int COleServerItem::OnInitFromData(COleDataObject *,int) 4999 void CControlBar::OnInitialUpdate(void) 5000 void CDaoRecordView::OnInitialUpdate(void) 5001 void CFormView::OnInitialUpdate(void) 5002 void COleDBRecordView::OnInitialUpdate(void) 5003 void CRecordView::OnInitialUpdate(void) 5004 void CRichEditView::OnInitialUpdate(void) 5005 void CView::OnInitialUpdate(void) 5006 void CFrameWnd::OnInitMenu(CMenu *) 5007 void COleFrameHook::OnInitMenu(CMenu *) 5008 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 5009 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 5010 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 5011 long COleClientItem::XOleIPSite::OnInPlaceActivate(void) 5012 long COleControlSite::XOleIPSite::OnInPlaceActivate(void) 5013 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 5014 long COleClientItem::XOleIPSite::OnInPlaceDeactivate(void) 5015 long COleControlSite::XOleIPSite::OnInPlaceDeactivate(void) 5016 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 5017 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 5018 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 5019 void CRichEditView::OnInsertObject(void) 5020 void CSplitterWnd::OnInvertTracker(CRect const &) 5021 long CFileDialog::XFileDialogControlEvents::OnItemSelected(IFileDialogCustomize *,unsigned long,unsigned long) 5022 void CDockContext::OnKey(int,int) 5023 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 5024 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 5025 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 5026 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 5027 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 5028 void COleControl::OnKeyPressEvent(unsigned short) 5029 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 5030 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 5031 long CPropertySheet::OnKickIdle(unsigned int,long) 5032 int CPropertyPage::OnKillActive(void) 5033 void COleControl::OnKillFocus(CWnd *) 5034 long CCheckListBox::OnLBAddString(unsigned int,long) 5035 long CCheckListBox::OnLBFindString(unsigned int,long) 5036 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 5037 long CCheckListBox::OnLBGetItemData(unsigned int,long) 5038 long CCheckListBox::OnLBGetText(unsigned int,long) 5039 long CCheckListBox::OnLBInsertString(unsigned int,long) 5040 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 5041 long CCheckListBox::OnLBSelectString(unsigned int,long) 5042 long CCheckListBox::OnLBSetItemData(unsigned int,long) 5043 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 5044 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 5045 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 5046 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 5047 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 5048 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 5049 void CControlBar::OnLButtonDown(unsigned int,CPoint) 5050 void COleControl::OnLButtonDown(unsigned int,CPoint) 5051 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 5052 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 5053 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 5054 void COleControl::OnLButtonUp(unsigned int,CPoint) 5055 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 5056 void CAsyncMonikerFile::OnLowResource(void) 5057 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 5058 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 5059 void COleControl::OnMButtonDown(unsigned int,CPoint) 5060 void COleControl::OnMButtonUp(unsigned int,CPoint) 5061 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 5062 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 5063 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 5064 void CHtmlView::OnMenuBar(int) 5065 long CFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 5066 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 5067 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 5068 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 5069 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 5070 int COleMessageFilter::OnMessagePending(tagMSG const *) 5071 int CSocket::OnMessagePending(void) 5072 void COleControl::OnMnemonic(tagMSG *) 5073 long COleControl::XOleControl::OnMnemonic(tagMSG *) 5074 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5075 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5076 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5077 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5078 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5079 void COleControl::OnMouseMove(unsigned int,CPoint) 5080 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 5081 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 5082 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 5083 int CDaoRecordView::OnMove(unsigned int) 5084 void COleControl::OnMove(int,int) 5085 int COleDBRecordView::OnMove(unsigned int) 5086 int CRecordView::OnMove(unsigned int) 5087 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 5088 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 5089 void CHtmlEditView::OnNavigateComplete2(char const *) 5090 void CHtmlView::OnNavigateComplete2(char const *) 5091 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 5092 int CFrameWnd::OnNcActivate(int) 5093 int CMDIChildWnd::OnNcActivate(int) 5094 int CMiniFrameWnd::OnNcActivate(int) 5095 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5096 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5097 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5098 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5099 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5100 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 5101 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 5102 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 5103 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 5104 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 5105 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 5106 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 5107 void CListCtrl::OnNcDestroy(void) 5108 void CListView::OnNcDestroy(void) 5109 void CWnd::OnNcDestroy(void) 5110 long CMiniFrameWnd::OnNcHitTest(CPoint) 5111 long COleControl::OnNcHitTest(CPoint) 5112 long CStatusBar::OnNcHitTest(CPoint) 5113 long CToolBar::OnNcHitTest(CPoint) 5114 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 5115 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 5116 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 5117 void CDockBar::OnNcPaint(void) 5118 void COleControl::OnNcPaint(void) 5119 void CReBar::OnNcPaint(void) 5120 void CStatusBar::OnNcPaint(void) 5121 void CToolBar::OnNcPaint(void) 5122 int CDocument::OnNewDocument(void) 5123 int CHtmlEditDoc::OnNewDocument(void) 5124 int COleDocument::OnNewDocument(void) 5125 int COleLinkingDoc::OnNewDocument(void) 5126 void COleServerDoc::OnNewEmbedding(IStorage *) 5127 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 5128 int CEnumArray::OnNext(void *) 5129 int CEnumConnections::OnNext(void *) 5130 int CEnumConnPoints::OnNext(void *) 5131 int CEnumFormatEtc::OnNext(void *) 5132 int CEnumOleVerb::OnNext(void *) 5133 int CEnumUnknown::OnNext(void *) 5134 void CPreviewView::OnNextPage(void) 5135 int CView::OnNextPaneCmd(unsigned int) 5136 int CFileDialog::OnNotify(unsigned int,long,long *) 5137 int CPropertyPage::OnNotify(unsigned int,long,long *) 5138 int CSplitterWnd::OnNotify(unsigned int,long,long *) 5139 int CWnd::OnNotify(unsigned int,long,long *) 5140 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 5141 long CWnd::OnNTCtlColor(unsigned int,long) 5142 void CPreviewView::OnNumPageChange(void) 5143 void COlePropertyPage::OnObjectsChanged(void) 5144 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 5145 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 5146 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 5147 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 5148 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 5149 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 5150 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 5151 void CCommonDialog::OnOK(void) 5152 void CDialog::OnOK(void) 5153 void CPropertyPage::OnOK(void) 5154 long COleControl::OnOpen(int,tagMSG *) 5155 void COleServerItem::OnOpen(void) 5156 int CDocument::OnOpenDocument(char const *) 5157 int CHtmlEditDoc::OnOpenDocument(char const *) 5158 int COleDocument::OnOpenDocument(char const *) 5159 int COleLinkingDoc::OnOpenDocument(char const *) 5160 void COleServerDoc::OnOpenEmbedding(IStorage *) 5161 int CWinApp::OnOpenRecentFile(unsigned int) 5162 void CAsyncSocket::OnOutOfBandData(int) 5163 long CFileDialog::XFileDialogEvents::OnOverwrite(IFileDialog *,IShellItem *,enum tagFDE_OVERWRITE_RESPONSE *) 5164 void CCommonDialog::OnPaint(void) 5165 void CControlBar::OnPaint(void) 5166 void CCtrlView::OnPaint(void) 5167 void CDialog::OnPaint(void) 5168 void CDockBar::OnPaint(void) 5169 void CHtmlEditView::OnPaint(void) 5170 void CHtmlView::OnPaint(void) 5171 void COleControl::OnPaint(CDC *) 5172 int COleControlContainer::OnPaint(CDC *) 5173 void COleResizeBar::OnPaint(void) 5174 void CReBar::OnPaint(void) 5175 void CSplitterWnd::OnPaint(void) 5176 void CStatusBar::OnPaint(void) 5177 void CToolBar::OnPaint(void) 5178 void CView::OnPaint(void) 5179 void CWnd::OnPaint(void) 5180 void CFrameWnd::OnPaletteChanged(CWnd *) 5181 void COleFrameHook::OnPaletteChanged(CWnd *) 5182 void CRichEditView::OnParaAlign(unsigned short) 5183 void CRichEditView::OnParaCenter(void) 5184 void CRichEditView::OnParaLeft(void) 5185 void CRichEditView::OnParaRight(void) 5186 void CWnd::OnParentNotify(unsigned int,long) 5187 int CRichEditView::OnPasteNativeObject(IStorage *) 5188 long CFrameWnd::OnPopMessageString(unsigned int,long) 5189 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 5190 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 5191 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 5192 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 5193 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 5194 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 5195 void CView::OnPrepareDC(CDC *,CPrintInfo *) 5196 int CEditView::OnPreparePrinting(CPrintInfo *) 5197 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 5198 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 5199 int CView::OnPreparePrinting(CPrintInfo *) 5200 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 5201 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 5202 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 5203 void CPreviewView::OnPreviewClose(void) 5204 void CPreviewView::OnPreviewPrint(void) 5205 void CPreviewView::OnPrevPage(void) 5206 void CEditView::OnPrint(CDC *,CPrintInfo *) 5207 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 5208 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 5209 void CView::OnPrint(CDC *,CPrintInfo *) 5210 void CRichEditView::OnPrinterChanged(CDC const &) 5211 void CPrintDialog::OnPrintSetup(void) 5212 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 5213 void CHtmlView::OnProgressChange(long,long) 5214 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 5215 void CHtmlView::OnPropertyChange(char const *) 5216 int CPropertyPage::OnQueryCancel(void) 5217 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 5218 int CFrameWnd::OnQueryEndSession(void) 5219 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5220 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5221 int CFrameWnd::OnQueryNewPalette(void) 5222 int COleFrameHook::OnQueryNewPalette(void) 5223 int COleServerItem::OnQueryUpdateItems(void) 5224 void CHtmlView::OnQuit(void) 5225 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 5226 void COleControl::OnRButtonDown(unsigned int,CPoint) 5227 void COleControl::OnRButtonUp(unsigned int,CPoint) 5228 int COleServerDoc::OnReactivateAndUndo(void) 5229 void COleFrameHook::OnRecalcLayout(void) 5230 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 5231 void CReBar::OnRecalcParent(void) 5232 void CAsyncSocket::OnReceive(int) 5233 void COleControl::OnReflectorDestroyed(void) 5234 void COleClientItem::OnRemoveMenus(CMenu *) 5235 void COleDocObjectItem::OnRemoveMenus(CMenu *) 5236 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 5237 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5238 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5239 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5240 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5241 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5242 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 5243 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 5244 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 5245 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 5246 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 5247 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 5248 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 5249 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 5250 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 5251 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 5252 void CEditView::OnReplaceAll(char const *,char const *,int) 5253 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 5254 void CEditView::OnReplaceSel(char const *,int,int,char const *) 5255 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 5256 long COleControl::XFontNotification::OnRequestEdit(long) 5257 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 5258 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 5259 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 5260 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 5261 void CEnumArray::OnReset(void) 5262 void CPropertyPage::OnReset(void) 5263 void COleControl::OnResetState(void) 5264 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5265 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5266 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 5267 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 5268 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 5269 void COleClientItem::XAdviseSink::OnSave(void) 5270 int CDocument::OnSaveDocument(char const *) 5271 int CHtmlEditDoc::OnSaveDocument(char const *) 5272 int COleDocument::OnSaveDocument(char const *) 5273 int COleLinkingDoc::OnSaveDocument(char const *) 5274 int COleServerDoc::OnSaveDocument(char const *) 5275 void COleServerDoc::OnSaveEmbedding(IStorage *) 5276 void COleServerItem::OnSaveEmbedding(IStorage *) 5277 void CDocObjectServer::OnSaveViewState(CArchive &) 5278 int CScrollView::OnScroll(unsigned int,unsigned int,int) 5279 int CView::OnScroll(unsigned int,unsigned int,int) 5280 int COleClientItem::OnScrollBy(CSize) 5281 int CScrollView::OnScrollBy(CSize,int) 5282 int CView::OnScrollBy(CSize,int) 5283 void CRichEditView::OnSelChange(tagNMHDR *,long *) 5284 long CFileDialog::XFileDialogEvents::OnSelectionChange(IFileDialog *) 5285 void CAsyncSocket::OnSend(int) 5286 int CPropertyPage::OnSetActive(void) 5287 long CToolBar::OnSetBitmapSize(unsigned int,long) 5288 long CToolBar::OnSetButtonSize(unsigned int,long) 5289 void COleControl::OnSetClientSite(void) 5290 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 5291 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 5292 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 5293 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 5294 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 5295 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 5296 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5297 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5298 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5299 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5300 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5301 long CPropertySheet::OnSetDefID(unsigned int,long) 5302 int COleControl::OnSetExtent(tagSIZE *) 5303 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 5304 void CFormView::OnSetFocus(CWnd *) 5305 void CFrameWnd::OnSetFocus(CWnd *) 5306 void COleControl::OnSetFocus(CWnd *) 5307 void CWnd::OnSetFocus(CWnd *) 5308 long CCheckListBox::OnSetFont(unsigned int,long) 5309 void CDialog::OnSetFont(CFont *) 5310 long CEditView::OnSetFont(unsigned int,long) 5311 void COleServerDoc::OnSetHostNames(char const *,char const *) 5312 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 5313 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 5314 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 5315 long CFrameWnd::OnSetMessageString(unsigned int,long) 5316 long COleControl::OnSetMessageString(unsigned int,long) 5317 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 5318 long CStatusBar::OnSetMinHeight(unsigned int,long) 5319 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 5320 void CDatabase::OnSetOptions(void *) 5321 void CRecordset::OnSetOptions(void *) 5322 void COlePropertyPage::OnSetPageSite(void) 5323 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 5324 long CToolBar::OnSetSizeHelper(CSize &,long) 5325 long COleControl::OnSetText(unsigned int,long) 5326 long CStatusBar::OnSetText(unsigned int,long) 5327 void CWnd::OnSettingChange(unsigned int,char const *) 5328 void CRecordset::OnSetUpdateOptions(void *) 5329 unsigned int CFileDialog::OnShareViolation(char const *) 5330 long CFileDialog::XFileDialogEvents::OnShareViolation(IFileDialog *,IShellItem *,enum tagFDE_SHAREVIOLATION_RESPONSE *) 5331 void CDocObjectServerItem::OnShow(void) 5332 void COleServerItem::OnShow(void) 5333 long CReBar::OnShowBand(unsigned int,long) 5334 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5335 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 5336 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 5337 void COleServerDoc::OnShowDocument(int) 5338 void COleClientItem::OnShowItem(void) 5339 void CFrameWnd::OnShowMenuBar(void) 5340 void COleControl::OnShowToolBars(void) 5341 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5342 void COleDocument::OnShowViews(int) 5343 void COleLinkingDoc::OnShowViews(int) 5344 void COleControl::OnShowWindow(int,unsigned int) 5345 long COleClientItem::XOleClientSite::OnShowWindow(int) 5346 long COleControlSite::XOleClientSite::OnShowWindow(int) 5347 void CDHtmlDialog::OnSize(unsigned int,int,int) 5348 void CFrameWnd::OnSize(unsigned int,int,int) 5349 void CHtmlView::OnSize(unsigned int,int,int) 5350 void CMDIChildWnd::OnSize(unsigned int,int,int) 5351 void CMDIFrameWnd::OnSize(unsigned int,int,int) 5352 void COleControl::OnSize(unsigned int,int,int) 5353 void COleIPFrameWnd::OnSize(unsigned int,int,int) 5354 void COleResizeBar::OnSize(unsigned int,int,int) 5355 void CPreviewView::OnSize(unsigned int,int,int) 5356 void CScrollView::OnSize(unsigned int,int,int) 5357 void CSplitterWnd::OnSize(unsigned int,int,int) 5358 void CStatusBar::OnSize(unsigned int,int,int) 5359 long CControlBar::OnSizeParent(unsigned int,long) 5360 long CDockBar::OnSizeParent(unsigned int,long) 5361 long COleResizeBar::OnSizeParent(unsigned int,long) 5362 int CEnumArray::OnSkip(void) 5363 long CSocketWnd::OnSocketDead(unsigned int,long) 5364 long CSocketWnd::OnSocketNotify(unsigned int,long) 5365 int CView::OnSplitCmd(unsigned int) 5366 void CAsyncMonikerFile::OnStartBinding(void) 5367 void CHtmlView::OnStatusBar(int) 5368 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 5369 void CHtmlView::OnStatusTextChange(char const *) 5370 void CAsyncMonikerFile::OnStopBinding(long,char const *) 5371 void CToolBar::OnSysColorChange(void) 5372 void CWnd::OnSysColorChange(void) 5373 void CFrameWnd::OnSysCommand(unsigned int,long) 5374 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 5375 void CPropertySheet::OnSysCommand(unsigned int,long) 5376 void CSplitterWnd::OnSysCommand(unsigned int,long) 5377 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 5378 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 5379 void COleControl::OnTextChanged(void) 5380 void CEditView::OnTextNotFound(char const *) 5381 void CRichEditView::OnTextNotFound(char const *) 5382 void CHtmlView::OnTheaterMode(int) 5383 long CControlBar::OnThemeChanged(void) 5384 void CControlBar::OnTimer(unsigned int) 5385 void CHtmlView::OnTitleChange(char const *) 5386 void CHtmlView::OnToolBar(int) 5387 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 5388 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 5389 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 5390 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 5391 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 5392 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 5393 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5394 void CFileDialog::OnTypeChange(void) 5395 long CFileDialog::XFileDialogEvents::OnTypeChange(IFileDialog *) 5396 void COleControlContainer::OnUIActivate(COleControlSite *) 5397 long COleClientItem::XOleIPSite::OnUIActivate(void) 5398 long COleControlSite::XOleIPSite::OnUIActivate(void) 5399 void COleControlContainer::OnUIDeactivate(COleControlSite *) 5400 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 5401 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 5402 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 5403 void CView::OnUpdate(CView *,long,CObject *) 5404 void CRichEditView::OnUpdateBullet(CCmdUI *) 5405 void CRichEditView::OnUpdateCharBold(CCmdUI *) 5406 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 5407 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 5408 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 5409 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 5410 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 5411 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 5412 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 5413 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 5414 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 5415 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 5416 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5417 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5418 int COleServerDoc::OnUpdateDocument(void) 5419 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 5420 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 5421 void CHtmlView::OnUpdateEditCut(CCmdUI *) 5422 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 5423 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 5424 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 5425 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 5426 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 5427 void CEditView::OnUpdateEditUndo(CCmdUI *) 5428 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5429 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5430 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5431 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5432 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5433 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5434 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5435 void CFrameWnd::OnUpdateFrameTitle(int) 5436 void CMDIChildWnd::OnUpdateFrameTitle(int) 5437 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5438 int COleClientItem::OnUpdateFrameTitle(void) 5439 int COleFrameHook::OnUpdateFrameTitle(void) 5440 void COleServerItem::OnUpdateItems(void) 5441 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5442 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5443 void CEditView::OnUpdateNeedClip(CCmdUI *) 5444 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5445 void CEditView::OnUpdateNeedFind(CCmdUI *) 5446 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5447 void CEditView::OnUpdateNeedSel(CCmdUI *) 5448 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5449 void CEditView::OnUpdateNeedText(CCmdUI *) 5450 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5451 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5452 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5453 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5454 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5455 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5456 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5457 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5458 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5459 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5460 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5461 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5462 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5463 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 5464 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5465 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 5466 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5467 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 5468 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5469 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 5470 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5471 void CView::OnUpdateSplitCmd(CCmdUI *) 5472 long CHtmlView::OnUpdateUI(void) 5473 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5474 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5475 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5476 void CHtmlView::OnVisible(int) 5477 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5478 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5479 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5480 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5481 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5482 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5483 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5484 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5485 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5486 void CMDIFrameWnd::OnWindowNew(void) 5487 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5488 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5489 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5490 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5491 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5492 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5493 long CPropertyPage::OnWizardBack(void) 5494 int CPropertyPage::OnWizardFinish(void) 5495 HWND__ * CPropertyPage::OnWizardFinishEx(void) 5496 long CPropertyPage::OnWizardNext(void) 5497 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5498 void CPreviewView::OnZoomIn(void) 5499 void CPreviewView::OnZoomOut(void) 5500 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5501 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5502 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5503 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5504 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 5505 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 5506 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 5507 int CAsyncMonikerFile::Open(char const *,CFileException *) 5508 void CDaoDatabase::Open(char const *,int,int,char const *) 5509 void CDaoQueryDef::Open(char const *) 5510 void CDaoRecordset::Open(int,char const *,int) 5511 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 5512 void CDaoRecordset::Open(CDaoTableDef *,int,int) 5513 void CDaoTableDef::Open(char const *) 5514 void CDaoWorkspace::Open(char const *) 5515 int CDatabase::Open(char const *,int,int,char const *,int) 5516 int CDataPathProperty::Open(CFileException *) 5517 int CDataPathProperty::Open(COleControl *,CFileException *) 5518 int CDataPathProperty::Open(char const *,CFileException *) 5519 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 5520 int CFile::Open(char const *,unsigned int,CFileException *) 5521 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 5522 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5523 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5524 int CMonikerFile::Open(IMoniker *,CFileException *) 5525 int CMonikerFile::Open(char const *,CFileException *) 5526 int CRecordset::Open(unsigned int,char const *,unsigned long) 5527 int CSocketFile::Open(char const *,unsigned int,CFileException *) 5528 int CStdioFile::Open(char const *,unsigned int,CFileException *) 5529 long CDocObjectServer::XOleDocumentView::Open(void) 5530 CDocument * CDocManager::OpenDocumentFile(char const *) 5531 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 5532 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 5533 CDocument * CWinApp::OpenDocumentFile(char const *) 5534 int CDatabase::OpenEx(char const *,unsigned long) 5535 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 5536 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 5537 long COleUILinkInfo::OpenLinkSource(unsigned long) 5538 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5539 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 5540 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 5541 void * CThemeHelper::OpenThemeData(HWND__ *,wchar_t const *) 5542 void * CThemeHelper::OpenThemeDataFail(HWND__ *,wchar_t const *) 5543 int CHtmlEditDoc::OpenURL(char const *) 5544 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 5545 int CFileException::OsErrorToException(long) 5546 void CDumpContext::OutputString(char const *) 5547 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5548 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5549 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5550 int CWnd::PaintWindowlessControls(CDC *) 5551 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5552 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5553 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 5554 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5555 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5556 void CCommandLineInfo::ParseLast(int) 5557 void CCommandLineInfo::ParseParam(char const *,int,int) 5558 void CCommandLineInfo::ParseParamFlag(char const *) 5559 void CCommandLineInfo::ParseParamNotFlag(char const *) 5560 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5561 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc(void) 5562 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc(void)const 5563 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 5564 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 5565 int CDC::PlayMetaFile(HMETAFILE__ *) 5566 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 5567 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 5568 int CDC::PolyBezierTo(tagPOINT const *,int) 5569 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5570 int CDC::PolylineTo(tagPOINT const *,int) 5571 void CPreviewView::PositionPage(unsigned int) 5572 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5573 int CMonikerFile::PostBindToStream(CFileException *) 5574 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5575 void CDialog::PostModal(void) 5576 void CPrintDialogEx::PostModal(void) 5577 void COleControl::PostModalDialog(HWND__ *) 5578 void CControlBar::PostNcDestroy(void) 5579 void CControlFrameWnd::PostNcDestroy(void) 5580 void CFindReplaceDialog::PostNcDestroy(void) 5581 void CFrameWnd::PostNcDestroy(void) 5582 void COleCntrFrameWnd::PostNcDestroy(void) 5583 void CReflectorWnd::PostNcDestroy(void) 5584 void CView::PostNcDestroy(void) 5585 void CWnd::PostNcDestroy(void) 5586 void ATL::CSimpleStringT::Preallocate(int) 5587 void ATL::CSimpleStringT::Preallocate(int) 5588 void CRecordset::PreBindFields(void) 5589 void CDocument::PreCloseFrame(CFrameWnd *) 5590 void COleDocument::PreCloseFrame(CFrameWnd *) 5591 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5592 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5593 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5594 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 5595 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5596 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 5597 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 5598 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5599 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 5600 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 5601 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 5602 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5603 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 5604 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 5605 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 5606 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 5607 int CView::PreCreateWindow(tagCREATESTRUCTA &) 5608 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 5609 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5610 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5611 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 5612 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 5613 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 5614 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 5615 void CDialog::PreInitDialog(void) 5616 void COleChangeSourceDialog::PreInitDialog(void) 5617 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5618 HWND__ * CDialog::PreModal(void) 5619 HWND__ * CPrintDialogEx::PreModal(void) 5620 void COleControl::PreModalDialog(HWND__ *) 5621 void CRecordset::PrepareAndExecute(void) 5622 HWND__ * CDataExchange::PrepareCtrl(int) 5623 HWND__ * CDataExchange::PrepareEditCtrl(int) 5624 void CWnd::PrepareForHelp(void) 5625 COleControlSite * CDataExchange::PrepareOleCtrl(int) 5626 void CRecordset::PrepareUpdateHstmt(void) 5627 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 5628 char * ATL::CSimpleStringT::PrepareWrite(int) 5629 void ATL::CSimpleStringT::PrepareWrite2(int) 5630 void ATL::CSimpleStringT::PrepareWrite2(int) 5631 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 5632 void CDragListBox::PreSubclassWindow(void) 5633 void CWnd::PreSubclassWindow(void) 5634 int CWnd::PreTranslateInput(tagMSG *) 5635 int CControlBar::PreTranslateMessage(tagMSG *) 5636 int CDialog::PreTranslateMessage(tagMSG *) 5637 int CFormView::PreTranslateMessage(tagMSG *) 5638 int CFrameWnd::PreTranslateMessage(tagMSG *) 5639 int CHtmlView::PreTranslateMessage(tagMSG *) 5640 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5641 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5642 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5643 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5644 int CPropertyPage::PreTranslateMessage(tagMSG *) 5645 int CPropertySheet::PreTranslateMessage(tagMSG *) 5646 int CWinThread::PreTranslateMessage(tagMSG *) 5647 int CWnd::PreTranslateMessage(tagMSG *) 5648 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5649 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5650 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5651 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5652 long CRichEditView::PrintPage(CDC *,long,long) 5653 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5654 long COleException::Process(CException const *) 5655 int CSocket::ProcessAuxQueue(void) 5656 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5657 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5658 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5659 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5660 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5661 void COleSafeArray::PtrOfIndex(long *,void * *) 5662 int CMetaFileDC::PtVisible(int,int)const 5663 int CWinThread::PumpMessage(void) 5664 int CSocket::PumpMessages(unsigned int) 5665 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 5666 long CWnd::put_accName(tagVARIANT,wchar_t *) 5667 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5668 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5669 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5670 void COleSafeArray::PutElement(long *,void *) 5671 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 5672 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 5673 int PX_Blob(CPropExchange *,char const *,void * &,void *) 5674 int PX_Bool(CPropExchange *,char const *,int &) 5675 int PX_Bool(CPropExchange *,char const *,int &,int) 5676 int PX_Color(CPropExchange *,char const *,unsigned long &) 5677 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 5678 int PX_Currency(CPropExchange *,char const *,union tagCY &) 5679 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 5680 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 5681 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 5682 int PX_Double(CPropExchange *,char const *,double &) 5683 int PX_Double(CPropExchange *,char const *,double &,double) 5684 int PX_Float(CPropExchange *,char const *,float &) 5685 int PX_Float(CPropExchange *,char const *,float &,float) 5686 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5687 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 5688 int PX_Long(CPropExchange *,char const *,long &) 5689 int PX_Long(CPropExchange *,char const *,long &,long) 5690 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 5691 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 5692 int PX_Short(CPropExchange *,char const *,short &) 5693 int PX_Short(CPropExchange *,char const *,short &,short) 5694 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 5695 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 5696 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5697 int PX_ULong(CPropExchange *,char const *,unsigned long &) 5698 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 5699 int PX_UShort(CPropExchange *,char const *,unsigned short &) 5700 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 5701 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5702 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5703 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5704 IUnknown * CCmdTarget::QueryAggregates(void const *) 5705 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5706 long COleDropSource::QueryContinueDrag(int,unsigned long) 5707 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5708 void * COleControl::QueryDefHandler(_GUID const &) 5709 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5710 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5711 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5712 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5713 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5714 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5715 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5716 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5717 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5718 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5719 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5720 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5721 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5722 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5723 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5724 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5725 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5726 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5727 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5728 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5729 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5730 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5731 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5732 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5733 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5734 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5735 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5736 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5737 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5738 long CPropertyPage::QuerySiblings(unsigned int,long) 5739 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5740 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5741 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5742 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5743 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5744 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 5745 int COleControlSite::QuickActivate(void) 5746 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5747 int COleClientItem::ReactivateAndUndo(void) 5748 long COleControl::XOleInPlaceObject::ReactivateAndUndo(void) 5749 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo(void) 5750 unsigned int CArchive::Read(void *,unsigned int) 5751 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5752 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5753 unsigned int CFile::Read(void *,unsigned int) 5754 int CImageList::Read(CArchive *) 5755 unsigned int CInternetFile::Read(void *,unsigned int) 5756 unsigned int CMemFile::Read(void *,unsigned int) 5757 unsigned int COleStreamFile::Read(void *,unsigned int) 5758 unsigned int CSocketFile::Read(void *,unsigned int) 5759 unsigned int CStdioFile::Read(void *,unsigned int) 5760 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5761 unsigned long CArchive::ReadCount(void) 5762 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5763 int CProperty::ReadFromStream(IStream *) 5764 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5765 int CPropertySet::ReadFromStream(IStream *) 5766 void COleClientItem::ReadItem(CArchive &) 5767 void COleClientItem::ReadItemCompound(CArchive &) 5768 void COleClientItem::ReadItemFlat(CArchive &) 5769 void CRecentFileList::ReadList(void) 5770 int CPropertySection::ReadNameDictFromStream(IStream *) 5771 CObject * CArchive::ReadObject(CRuntimeconst *) 5772 int CArchive::ReadString(ATL::CStringT > > &) 5773 char * CArchive::ReadString(char *,unsigned int) 5774 int CInternetFile::ReadString(ATL::CStringT > > &) 5775 char * CInternetFile::ReadString(char *,unsigned int) 5776 int CStdioFile::ReadString(ATL::CStringT > > &) 5777 char * CStdioFile::ReadString(char *,unsigned int) 5778 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5779 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5780 void ATL::CSimpleStringT::Reallocate(int) 5781 void ATL::CSimpleStringT::Reallocate(int) 5782 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5783 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5784 void CRecordset::RebindParams(void *) 5785 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5786 void CFrameWnd::RecalcLayout(int) 5787 void CMiniDockFrameWnd::RecalcLayout(int) 5788 void COleCntrFrameWnd::RecalcLayout(int) 5789 void COleDocIPFrameWnd::RecalcLayout(int) 5790 void COleIPFrameWnd::RecalcLayout(int) 5791 void CSplitterWnd::RecalcLayout(void) 5792 int CAsyncSocket::Receive(void *,int,int) 5793 int CSocket::Receive(void *,int,int) 5794 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5795 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5796 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5797 void COleControl::RecreateControlWindow(void) 5798 CRect const CFrameWnd::rectDefault 5799 int CMetaFileDC::RectVisible(tagRECT const *)const 5800 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5801 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5802 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5803 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5804 int CWnd::ReflectLastMsg(HWND__ *,long *) 5805 void COleControl::Refresh(void) 5806 void CDaoTableDef::RefreshLink(void) 5807 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5808 int COleDropTarget::Register(CWnd *) 5809 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 5810 int COleMessageFilter::Register(void) 5811 int COleObjectFactory::Register(void) 5812 int COleTemplateServer::Register(void) 5813 int CWinApp::Register(void) 5814 int COleObjectFactory::RegisterAll(void) 5815 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 5816 void CDocManager::RegisterShellFileTypes(int) 5817 void CWinApp::RegisterShellFileTypes(int) 5818 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 5819 unsigned long CArchiveStream::Release(void) 5820 unsigned long CBlobProperty::Release(void) 5821 unsigned long CBrowserControlSite::Release(void) 5822 unsigned long CDHtmlControlSink::Release(void) 5823 unsigned long CDHtmlElementEventSink::Release(void) 5824 unsigned long CDHtmlEventSink::Release(void) 5825 unsigned long CInnerUnknown::Release(void) 5826 void COleClientItem::Release(enum tagOLECLOSE) 5827 unsigned long COleConnPtContainer::Release(void) 5828 void COleDataObject::Release(void) 5829 unsigned long COleDispatchImpl::Release(void) 5830 void COleDocObjectItem::Release(enum tagOLECLOSE) 5831 unsigned long COleUILinkInfo::Release(void) 5832 unsigned long CPrintDialogEx::Release(void) 5833 void CDC::ReleaseAttribDC(void) 5834 void ATL::CSimpleStringT::ReleaseBuffer(int) 5835 void ATL::CSimpleStringT::ReleaseBuffer(int) 5836 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5837 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5838 void COleControl::ReleaseCaches(void) 5839 int COleControl::ReleaseCapture(void) 5840 int COleControl::ReleaseDC(CDC *) 5841 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5842 void COleDispatchDriver::ReleaseDispatch(void) 5843 void CDocObjectServer::ReleaseDocSite(void) 5844 void CDocument::ReleaseFile(CFile *,int) 5845 void CFontHolder::ReleaseFont(void) 5846 void CDC::ReleaseOutputDC(void) 5847 void CMetaFileDC::ReleaseOutputDC(void) 5848 void CPreviewDC::ReleaseOutputDC(void) 5849 int COleClientItem::Reload(void) 5850 int ATL::CStringT > >::Remove(wchar_t) 5851 int ATL::CStringT > >::Remove(char) 5852 void CFile::Remove(char const *) 5853 int CFtpConnection::Remove(char const *) 5854 void CPropertySection::Remove(unsigned long) 5855 void CPropertySet::Remove(_GUID) 5856 void CPropertySet::Remove(_GUID,unsigned long) 5857 void CRecentFileList::Remove(int) 5858 int CSimpleList::Remove(void *) 5859 void CMapPtrToPtr::RemoveAll(void) 5860 void CMapPtrToWord::RemoveAll(void) 5861 void CMapStringToOb::RemoveAll(void) 5862 void CMapStringToPtr::RemoveAll(void) 5863 void CMapStringToString::RemoveAll(void) 5864 void CMapWordToOb::RemoveAll(void) 5865 void CMapWordToPtr::RemoveAll(void) 5866 void CObList::RemoveAll(void) 5867 void CPropertySection::RemoveAll(void) 5868 void CPropertySet::RemoveAll(void) 5869 void CPtrList::RemoveAll(void) 5870 void CStringList::RemoveAll(void) 5871 void CTypeLibCacheMap::RemoveAll(void *) 5872 void CByteArray::RemoveAt(int,int) 5873 void CDWordArray::RemoveAt(int,int) 5874 void CObArray::RemoveAt(int,int) 5875 void CObList::RemoveAt(__POSITION *) 5876 void CPtrArray::RemoveAt(int,int) 5877 void CPtrList::RemoveAt(__POSITION *) 5878 void CStringArray::RemoveAt(int,int) 5879 void CStringList::RemoveAt(__POSITION *) 5880 void CUIntArray::RemoveAt(int,int) 5881 void CWordArray::RemoveAt(int,int) 5882 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5883 void CFrameWnd::RemoveControlBar(CControlBar *) 5884 int CFtpConnection::RemoveDirectoryA(char const *) 5885 void CDocTemplate::RemoveDocument(CDocument *) 5886 void CMultiDocTemplate::RemoveDocument(CDocument *) 5887 void CSingleDocTemplate::RemoveDocument(CDocument *) 5888 void COleControl::RemoveFrameLevelUI(void) 5889 void CFrameWnd::RemoveFrameWnd(void) 5890 CObject * CObList::RemoveHead(void) 5891 void * CPtrList::RemoveHead(void) 5892 ATL::CStringT > > CStringList::RemoveHead(void) 5893 void CListCtrl::RemoveImageList(int) 5894 void CListView::RemoveImageList(int) 5895 void CTreeCtrl::RemoveImageList(int) 5896 void CTreeView::RemoveImageList(int) 5897 void COleDocument::RemoveItem(CDocItem *) 5898 int CMapPtrToPtr::RemoveKey(void *) 5899 int CMapPtrToWord::RemoveKey(void *) 5900 int CMapStringToOb::RemoveKey(char const *) 5901 int CMapStringToPtr::RemoveKey(char const *) 5902 int CMapStringToString::RemoveKey(char const *) 5903 int CMapWordToOb::RemoveKey(unsigned short) 5904 int CMapWordToPtr::RemoveKey(unsigned short) 5905 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5906 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5907 void CPropertySheet::RemovePage(int) 5908 void CPropertySheet::RemovePage(CPropertyPage *) 5909 void CDockBar::RemovePlaceHolder(CControlBar *) 5910 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5911 void CDataBoundProperty::RemoveSource(void) 5912 CObject * CObList::RemoveTail(void) 5913 void * CPtrList::RemoveTail(void) 5914 ATL::CStringT > > CStringList::RemoveTail(void) 5915 void CDocument::RemoveView(CView *) 5916 void CFile::Rename(char const *,char const *) 5917 int CFtpConnection::Rename(char const *,char const *) 5918 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5919 void CDaoWorkspace::RepairDatabase(char const *) 5920 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5921 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 5922 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 5923 int ATL::CStringT > >::Replace(char,char) 5924 int ATL::CStringT > >::Replace(char const *,char const *) 5925 void CDatabase::ReplaceBrackets(char *) 5926 int CException::ReportError(unsigned int,unsigned int) 5927 int COleClientItem::ReportError(long)const 5928 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5929 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 5930 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5931 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5932 void CDaoRecordset::Requery(void) 5933 int CRecordset::Requery(void) 5934 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5935 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5936 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5937 long COleClientItem::XOleClientSite::RequestNewObjectLayout(void) 5938 long COleControlSite::XOleClientSite::RequestNewObjectLayout(void) 5939 void COleServerDoc::RequestPositionChange(tagRECT const *) 5940 long COleControlSite::XOleIPSite::RequestUIActivate(void) 5941 long CEnumArray::XEnumVOID::Reset(void) 5942 void CRecordset::ResetCursor(void) 5943 void CCachedDataPathProperty::ResetData(void) 5944 void CDataPathProperty::ResetData(void) 5945 void COleControl::ResetStockProps(void) 5946 void CControlBar::ResetTimer(unsigned int,unsigned int) 5947 void COleControl::ResetVersion(unsigned long) 5948 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5949 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5950 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5951 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5952 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5953 void COleControl::ResizeFrameWindow(int,int) 5954 void COleSafeArray::ResizeOneDim(unsigned long) 5955 void COleControl::ResizeOpenControl(int,int) 5956 void CScrollView::ResizeParentToFit(int) 5957 int CDC::RestoreDC(int) 5958 int CPreviewDC::RestoreDC(int) 5959 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 5960 void CCmdTarget::RestoreWaitCursor(void) 5961 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5962 int ATL::CStringT > >::ReverseFind(wchar_t)const 5963 int ATL::CStringT > >::ReverseFind(char)const 5964 long CArchiveStream::Revert(void) 5965 void COleDropTarget::Revoke(void) 5966 void COleLinkingDoc::Revoke(void) 5967 void COleMessageFilter::Revoke(void) 5968 void COleObjectFactory::Revoke(void) 5969 void COleObjectFactory::RevokeAll(void) 5970 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 5971 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 5972 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 5973 void RFX_Bool(CFieldExchange *,char const *,int &) 5974 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 5975 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 5976 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 5977 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 5978 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 5979 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 5980 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 5981 void RFX_Double(CFieldExchange *,char const *,double &) 5982 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 5983 void RFX_Int(CFieldExchange *,char const *,int &) 5984 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 5985 void RFX_Long(CFieldExchange *,char const *,long &) 5986 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 5987 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 5988 void RFX_Single(CFieldExchange *,char const *,float &) 5989 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 5990 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5991 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 5992 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 5993 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 5994 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 5995 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 5996 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5997 ATL::CStringT > > ATL::CStringT > >::Right(int)const 5998 void CDaoWorkspace::Rollback(void) 5999 int CDatabase::Rollback(void) 6000 void COleClientItem::Run(void) 6001 int CWinApp::Run(void) 6002 int CWinThread::Run(void) 6003 int CWinApp::RunAutomated(void) 6004 int CWinApp::RunEmbedded(void) 6005 int CWnd::RunModalLoop(unsigned long) 6006 int COleControlSite::SafeSetProperty(long,unsigned short,...) 6007 int CEditView::SameAsSelected(char const *,int) 6008 int CRichEditView::SameAsSelected(char const *,int,int) 6009 long CBlobProperty::Save(IStream *,int) 6010 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 6011 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 6012 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 6013 long COleControl::XPersistStorage::Save(IStorage *,int) 6014 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 6015 long COleControl::XPersistStreamInit::Save(IStream *,int) 6016 int CDocManager::SaveAllModified(void) 6017 int CDocTemplate::SaveAllModified(void) 6018 int CWinApp::SaveAllModified(void) 6019 void CFrameWnd::SaveBarState(char const *)const 6020 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 6021 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 6022 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 6023 int CDC::SaveDC(void) 6024 int CPreviewDC::SaveDC(void) 6025 void COleServerDoc::SaveEmbedding(void) 6026 int CFormView::SaveFocusControl(void) 6027 int CDocument::SaveModified(void) 6028 int COleDocument::SaveModified(void) 6029 int COleServerDoc::SaveModified(void) 6030 int COleServerDoc::SaveModifiedPrompt(void) 6031 long COleClientItem::XOleClientSite::SaveObject(void) 6032 long COleControlSite::XOleClientSite::SaveObject(void) 6033 int CControlBarInfo::SaveState(char const *,int) 6034 void CDockState::SaveState(char const *) 6035 long COleControl::SaveState(IStream *) 6036 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 6037 void CWinApp::SaveStdProfileSettings(void) 6038 void COleDocument::SaveToStorage(CObject *) 6039 void COleLinkingDoc::SaveToStorage(CObject *) 6040 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 6041 void CDockState::ScalePoint(CPoint &) 6042 void CDockState::ScaleRectPos(CRect &) 6043 CSize CDC::ScaleViewportExt(int,int,int,int) 6044 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 6045 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 6046 CSize CDC::ScaleWindowExt(int,int,int,int) 6047 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 6048 void CWnd::ScreenToClient(tagRECT *)const 6049 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 6050 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 6051 void COleControlContainer::ScrollChildren(int,int) 6052 int COleServerDoc::ScrollContainerBy(CSize) 6053 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 6054 void CScrollView::ScrollToDevicePosition(tagPOINT) 6055 void CScrollView::ScrollToPosition(tagPOINT) 6056 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 6057 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 6058 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 6059 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 6060 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 6061 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 6062 unsigned __int64 CFile::Seek(__int64,unsigned int) 6063 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 6064 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 6065 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 6066 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 6067 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 6068 CFont * CFontHolder::Select(CDC *,long,long) 6069 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 6070 int CDC::SelectClipPath(int) 6071 int CDC::SelectClipRgn(CRgn *) 6072 int CDC::SelectClipRgn(CRgn *,int) 6073 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 6074 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 6075 long CPrintDialogEx::SelectionChange(void) 6076 int CDC::SelectObject(CRgn *) 6077 CBrush * CDC::SelectObject(CBrush *) 6078 CPen * CDC::SelectObject(CPen *) 6079 CFont * CDC::SelectObject(CFont *) 6080 CFont * CPreviewDC::SelectObject(CFont *) 6081 CPalette * CDC::SelectPalette(CPalette *,int) 6082 void CWinApp::SelectPrinter(void *,void *,int) 6083 CFont * COleControl::SelectStockFont(CDC *) 6084 CGdiObject * CDC::SelectStockObject(int) 6085 CGdiObject * CPreviewDC::SelectStockObject(int) 6086 int CAsyncSocket::Send(void const *,int,int) 6087 int CSocket::Send(void const *,int,int) 6088 void COleControl::SendAdvise(unsigned int) 6089 int CWnd::SendChildNotifyLastMsg(long *) 6090 int CSocket::SendChunk(void const *,int,int) 6091 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 6092 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 6093 void CDocument::SendInitialUpdate(void) 6094 void CRecordset::SendLongBinaryData(void *) 6095 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 6096 void COleControlSite::SendMnemonic(tagMSG *) 6097 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 6098 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 6099 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 6100 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 6101 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 6102 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 6103 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 6104 void CByteArray::Serialize(CArchive &) 6105 void CControlBarInfo::Serialize(CArchive &,CDockState *) 6106 void CDocItem::Serialize(CArchive &) 6107 void CDockState::Serialize(CArchive &) 6108 void CDWordArray::Serialize(CArchive &) 6109 void CEditView::Serialize(CArchive &) 6110 void CMapStringToOb::Serialize(CArchive &) 6111 void CMapStringToString::Serialize(CArchive &) 6112 void CMapWordToOb::Serialize(CArchive &) 6113 void CObArray::Serialize(CArchive &) 6114 void CObList::Serialize(CArchive &) 6115 void COleClientItem::Serialize(CArchive &) 6116 void COleControl::Serialize(CArchive &) 6117 void COleDocument::Serialize(CArchive &) 6118 void CRichEditDoc::Serialize(CArchive &) 6119 void CRichEditView::Serialize(CArchive &) 6120 void CStringArray::Serialize(CArchive &) 6121 void CStringList::Serialize(CArchive &) 6122 void CWordArray::Serialize(CArchive &) 6123 CArchive & ATL::CTime::Serialize64(CArchive &) 6124 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 6125 void CArchive::SerializeClass(CRuntimeconst *) 6126 void COleControl::SerializeExtent(CArchive &) 6127 void CEditView::SerializeRaw(CArchive &) 6128 void COleControl::SerializeStockProps(CArchive &) 6129 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 6130 int CProperty::Set(unsigned long,void * const,unsigned long) 6131 int CProperty::Set(void * const) 6132 int CProperty::Set(void * const,unsigned long) 6133 int CPropertySection::Set(unsigned long,void *) 6134 int CPropertySection::Set(unsigned long,void *,unsigned long) 6135 int CPropertySet::Set(_GUID,unsigned long,void *) 6136 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 6137 void CDaoRecordset::SetAbsolutePosition(long) 6138 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 6139 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 6140 int CPropertySheet::SetActivePage(int) 6141 int CPropertySheet::SetActivePage(CPropertyPage *) 6142 void CSplitterWnd::SetActivePane(int,int,CWnd *) 6143 void CFrameWnd::SetActiveView(CView *,int) 6144 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 6145 void COleControl::SetAppearance(short) 6146 int CDC::SetArcDirection(int) 6147 void ATL::CSimpleStringT::SetAt(int,wchar_t) 6148 void ATL::CSimpleStringT::SetAt(int,char) 6149 void CByteArray::SetAtGrow(int,unsigned char) 6150 void CDWordArray::SetAtGrow(int,unsigned long) 6151 void CObArray::SetAtGrow(int,CObject *) 6152 void CPtrArray::SetAtGrow(int,void *) 6153 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 6154 void CStringArray::SetAtGrow(int,char const *) 6155 void CUIntArray::SetAtGrow(int,unsigned int) 6156 void CWordArray::SetAtGrow(int,unsigned short) 6157 void CDC::SetAttribDC(HDC__ *) 6158 void CMetaFileDC::SetAttribDC(HDC__ *) 6159 void CPreviewDC::SetAttribDC(HDC__ *) 6160 void CDaoTableDef::SetAttributes(long) 6161 void COleControl::SetBackColor(unsigned long) 6162 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 6163 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 6164 void CControlBar::SetBarStyle(unsigned long) 6165 int CToolBar::SetBitmap(HBITMAP__ *) 6166 unsigned long CDC::SetBkColor(unsigned long) 6167 unsigned long CPreviewDC::SetBkColor(unsigned long) 6168 int CListCtrl::SetBkImage(char *,int,int,int) 6169 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 6170 int CDC::SetBkMode(int) 6171 void CDaoRecordset::SetBookmark(COleVariant) 6172 void CRecordset::SetBookmark(CDBVariant const &) 6173 void CControlBar::SetBorders(int,int,int,int) 6174 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 6175 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 6176 void COleControl::SetBorderStyle(short) 6177 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 6178 int CToolBar::SetButtons(unsigned int const *,int) 6179 void CToolBar::SetButtonStyle(int,unsigned int) 6180 int CToolBar::SetButtonText(int,char const *) 6181 void CDaoRecordset::SetCacheSize(long) 6182 void CDaoRecordset::SetCacheStart(COleVariant) 6183 CWnd * COleControl::SetCapture(void) 6184 long COleControlSite::XOleIPSite::SetCapture(int) 6185 void CRichEditView::SetCharFormat(CHARFORMAT2A) 6186 void CCheckListBox::SetCheck(int,int) 6187 void CCmdUI::SetCheck(int) 6188 int CListCtrl::SetCheck(int,int) 6189 void COleCmdUI::SetCheck(int) 6190 void CStatusCmdUI::SetCheck(int) 6191 void CTestCmdUI::SetCheck(int) 6192 void CToolCmdUI::SetCheck(int) 6193 int CTreeCtrl::SetCheck(_TREEITEM *,int) 6194 void CCheckListBox::SetCheckStyle(unsigned int) 6195 void CPropertySet::SetClassID(_GUID) 6196 void CDataBoundProperty::SetClientSite(COleControlSite *) 6197 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 6198 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 6199 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 6200 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 6201 void COleDataSource::SetClipboard(void) 6202 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 6203 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 6204 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 6205 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 6206 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 6207 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 6208 void CSplitterWnd::SetColumnInfo(int,int,int) 6209 int CListCtrl::SetColumnOrderArray(int,int *) 6210 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 6211 void CDaoQueryDef::SetConnect(char const *) 6212 void CDaoTableDef::SetConnect(char const *) 6213 void CDocTemplate::SetContainerInfo(unsigned int) 6214 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 6215 void CReflectorWnd::SetControl(COleControl *) 6216 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 6217 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 6218 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 6219 int COleControl::SetControlSize(int,int) 6220 int COlePropertyPage::SetControlStatus(unsigned int,int) 6221 void CFileDialog::SetControlText(int,char const *) 6222 int CInternetSession::SetCookie(char const *,char const *,char const *) 6223 void COleCurrency::SetCurrency(long,long) 6224 void CColorDialog::SetCurrentColor(unsigned long) 6225 int CFtpConnection::SetCurrentDirectoryA(char const *) 6226 void CWinApp::SetCurrentHandles(void) 6227 void CDaoRecordset::SetCurrentIndex(char const *) 6228 void CPreviewView::SetCurrentPage(unsigned int,int) 6229 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 6230 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 6231 int CRectTracker::SetCursor(CWnd *,unsigned int)const 6232 void CDaoRecordset::SetCursorAttributes(void) 6233 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6234 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6235 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6236 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6237 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6238 int CMonthCalCtrl::SetDayState(int,unsigned long *) 6239 void COccManager::SetDefaultButton(CWnd *,int) 6240 void COleControlSite::SetDefaultButton(int) 6241 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 6242 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 6243 void CDaoWorkspace::SetDefaultPassword(char const *) 6244 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 6245 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 6246 void CDaoWorkspace::SetDefaultUser(char const *) 6247 void CFileDialog::SetDefExt(char const *) 6248 void COlePropertyPage::SetDialogResource(void *) 6249 void CDaoRecordset::SetDirtyFields(void) 6250 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6251 void CRecordset::SetDirtyFieldStatus(unsigned long) 6252 int COleControlSite::SetDlgCtrlID(int) 6253 int CWnd::SetDlgCtrlID(int) 6254 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 6255 void CWnd::SetDlgItemInt(int,unsigned int,int) 6256 void COleControlContainer::SetDlgItemTextA(int,char const *) 6257 void CWnd::SetDlgItemTextA(int,char const *) 6258 void CFrameWnd::SetDockState(CDockState const &) 6259 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 6260 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 6261 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 6262 void CDataBoundProperty::SetDSCSite(COleControlSite *) 6263 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 6264 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 6265 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 6266 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 6267 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 6268 void COleControl::SetEnabled(int) 6269 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 6270 int COleControlSite::SetExtent(void) 6271 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 6272 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 6273 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 6274 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 6275 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 6276 void CDaoRecordset::SetFieldDirty(void *,int) 6277 void CRecordset::SetFieldDirty(void *,int) 6278 void CDaoRecordset::SetFieldNull(void *,int) 6279 void CRecordset::SetFieldNull(void *,int) 6280 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 6281 void CDaoRecordset::SetFieldValue(int,char const *) 6282 void CDaoRecordset::SetFieldValue(char const *,char const *) 6283 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6284 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 6285 void CDaoRecordset::SetFieldValueNull(int) 6286 void CDaoRecordset::SetFieldValueNull(char const *) 6287 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 6288 CWnd * COleControl::SetFocus(void) 6289 CWnd * COleControlSite::SetFocus(tagMSG *) 6290 CWnd * COleControlSite::SetFocus(void) 6291 CWnd * CWnd::SetFocus(void) 6292 long COleControlSite::XOleIPSite::SetFocus(int) 6293 void CDHtmlDialog::SetFocusToElement(char const *) 6294 int CDialogTemplate::SetFont(char const *,unsigned short) 6295 void CFontHolder::SetFont(IFont *) 6296 void COleControl::SetFont(IFontDisp *) 6297 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 6298 void COleControl::SetForeColor(unsigned long) 6299 void CPropertySection::SetFormatID(_GUID) 6300 void CPropertySet::SetFormatVersion(unsigned short) 6301 int CDC::SetGraphicsMode(int) 6302 void CSharedFile::SetHandle(void *,int) 6303 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 6304 void CToolBar::SetHeight(int) 6305 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 6306 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 6307 void CDHtmlDialog::SetHostFlags(unsigned long) 6308 void COleClientItem::SetHostNames(char const *,char const *) 6309 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6310 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6311 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6312 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6313 int COleClientItem::SetIconicMetafile(void *) 6314 CSize CListCtrl::SetIconSpacing(int,int) 6315 CSize CListCtrl::SetIconSpacing(CSize) 6316 void CProperty::SetID(unsigned long) 6317 int CReBarCtrl::SetImageList(CImageList *) 6318 int CStatusBar::SetIndicators(unsigned int const *,int) 6319 void CDaoWorkspace::SetIniPath(char const *) 6320 void COleControl::SetInitialDataFormats(void) 6321 long CDocObjectServer::XPrint::SetInitialPageNum(long) 6322 void COleControl::SetInitialSize(int,int) 6323 void CControlBar::SetInPlaceOwner(CWnd *) 6324 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 6325 void CDaoWorkspace::SetIsolateODBCTrans(int) 6326 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 6327 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 6328 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 6329 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 6330 int CListCtrl::SetItemCountEx(int,unsigned long) 6331 int CTreeCtrl::SetItemEx(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long,unsigned int,HWND__ *,int) 6332 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 6333 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 6334 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 6335 int CListCtrl::SetItemText(int,int,char const *) 6336 unsigned long CDC::SetLayout(unsigned long) 6337 void ATL::CSimpleStringT::SetLength(int) 6338 void ATL::CSimpleStringT::SetLength(int) 6339 void CFile::SetLength(unsigned __int64) 6340 void CInternetFile::SetLength(unsigned __int64) 6341 void CMemFile::SetLength(unsigned __int64) 6342 void COleStreamFile::SetLength(unsigned __int64) 6343 void CSocketFile::SetLength(unsigned __int64) 6344 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 6345 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 6346 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 6347 void CDaoRecordset::SetLockingMode(int) 6348 void CRecordset::SetLockingMode(unsigned int) 6349 void CDaoWorkspace::SetLoginTimeout(short) 6350 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 6351 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 6352 int CDC::SetMapMode(int) 6353 int CPreviewDC::SetMapMode(int) 6354 unsigned long CDC::SetMapperFlags(unsigned long) 6355 int CFrameWnd::SetMenu(CMenu *) 6356 int CWnd::SetMenu(CMenu *) 6357 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6358 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6359 int CFrameWnd::SetMenuBarState(unsigned long) 6360 int CMDIFrameWnd::SetMenuBarState(unsigned long) 6361 void CFrameWnd::SetMenuBarVisibility(unsigned long) 6362 void CMDIFrameWnd::SetMenuBarVisibility(unsigned long) 6363 void CFrameWnd::SetMessageText(unsigned int) 6364 void CFrameWnd::SetMessageText(char const *) 6365 void CPropertyPage::SetModified(int) 6366 void COleControl::SetModifiedFlag(int) 6367 void COlePropertyPage::SetModifiedFlag(int) 6368 void CRichEditDoc::SetModifiedFlag(int) 6369 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 6370 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 6371 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 6372 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 6373 void CDaoQueryDef::SetName(char const *) 6374 void CDaoTableDef::SetName(char const *) 6375 int CPropertySection::SetName(unsigned long,char const *) 6376 void COleControl::SetNotPermitted(void) 6377 void CCmdTarget::SetNotSupported(void) 6378 void COleControl::SetNotSupported(void) 6379 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6380 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6381 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6382 void CRecordset::SetNullFieldStatus(unsigned long) 6383 void CRecordset::SetNullParamStatus(unsigned long) 6384 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6385 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6386 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6387 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 6388 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6389 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6390 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6391 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6392 void CDaoQueryDef::SetODBCTimeout(short) 6393 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 6394 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 6395 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 6396 int CHeaderCtrl::SetOrderArray(int,int *) 6397 void CPropertySet::SetOSVersion(unsigned long) 6398 void CDC::SetOutputDC(HDC__ *) 6399 void CMetaFileDC::SetOutputDC(HDC__ *) 6400 void CPreviewDC::SetOutputDC(HDC__ *) 6401 void CToolBar::SetOwner(CWnd *) 6402 void COlePropertyPage::SetPageName(char const *) 6403 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 6404 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 6405 void CStatusBar::SetPaneStyle(int,unsigned int) 6406 int CStatusBar::SetPaneText(int,char const *,int) 6407 int CRichEditCtrl::SetParaFormat(_paraformat &) 6408 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 6409 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 6410 void CRecordset::SetParamNull(int,int) 6411 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6412 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 6413 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6414 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 6415 void CDaoQueryDef::SetParamValueNull(int) 6416 void CDaoQueryDef::SetParamValueNull(char const *) 6417 void CDaoRecordset::SetParamValueNull(int) 6418 void CDaoRecordset::SetParamValueNull(char const *) 6419 void CDocument::SetPathName(char const *,int) 6420 void COleDocument::SetPathName(char const *,int) 6421 void CRichEditDoc::SetPathName(char const *,int) 6422 void CDaoRecordset::SetPercentPosition(float) 6423 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 6424 int CDC::SetPolyFillMode(int) 6425 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 6426 int COleClientItem::SetPrintDevice(tagPDA const *) 6427 void CEditView::SetPrinterFont(CFont *) 6428 int CPreviewView::SetPrintView(CView *) 6429 int COlePropertyPage::SetPropCheck(char const *,int) 6430 void COleControlSite::SetProperty(long,unsigned short,...) 6431 void COleDispatchDriver::SetProperty(long,unsigned short,...) 6432 void CWnd::SetProperty(long,unsigned short,...) 6433 void COleControlSite::SetPropertyV(long,unsigned short,char *) 6434 int COlePropertyPage::SetPropIndex(char const *,int) 6435 int COlePropertyPage::SetPropRadio(char const *,int) 6436 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 6437 int COlePropertyPage::SetPropText(char const *,unsigned char &) 6438 int COlePropertyPage::SetPropText(char const *,short &) 6439 int COlePropertyPage::SetPropText(char const *,int &) 6440 int COlePropertyPage::SetPropText(char const *,unsigned int &) 6441 int COlePropertyPage::SetPropText(char const *,long &) 6442 int COlePropertyPage::SetPropText(char const *,unsigned long &) 6443 int COlePropertyPage::SetPropText(char const *,float &) 6444 int COlePropertyPage::SetPropText(char const *,double &) 6445 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 6446 long CWnd::SetProxy(IAccessibleProxy *) 6447 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 6448 void CDaoDatabase::SetQueryTimeout(short) 6449 void CCmdUI::SetRadio(int) 6450 void CTestCmdUI::SetRadio(int) 6451 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 6452 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 6453 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 6454 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 6455 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6456 void CSliderCtrl::SetRange(int,int,int) 6457 int CInternetFile::SetReadBufferSize(unsigned int) 6458 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 6459 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 6460 int COleControl::SetRectInContainer(tagRECT const *) 6461 void CWinApp::SetRegistryKey(unsigned int) 6462 void CWinApp::SetRegistryKey(char const *) 6463 void CDaoQueryDef::SetReturnsRecords(int) 6464 int CDC::SetROP2(int) 6465 void CSplitterWnd::SetRowInfo(int,int,int) 6466 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 6467 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 6468 void CRecordset::SetRowsetSize(unsigned long) 6469 void CPreviewView::SetScaledSize(unsigned int) 6470 void CPreviewDC::SetScaleRatio(int,int) 6471 void CScrollView::SetScaleToFitSize(tagSIZE) 6472 void CDockState::SetScreenSize(CSize &) 6473 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 6474 int CWnd::SetScrollPos(int,int,int) 6475 void CWnd::SetScrollRange(int,int,int,int) 6476 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 6477 void CSplitterWnd::SetScrollStyle(unsigned long) 6478 int CPropertySection::SetSectionName(char const *) 6479 void CRichEditCtrl::SetSel(long,long) 6480 void CSliderCtrl::SetSelection(int,int) 6481 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 6482 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 6483 void CCheckListBox::SetSelectionCheck(int) 6484 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 6485 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 6486 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6487 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 6488 long CPrintDialogEx::SetSite(IUnknown *) 6489 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 6490 void CByteArray::SetSize(int,int) 6491 void CDWordArray::SetSize(int,int) 6492 void CObArray::SetSize(int,int) 6493 void CPtrArray::SetSize(int,int) 6494 void CStringArray::SetSize(int,int) 6495 void CUIntArray::SetSize(int,int) 6496 void CWordArray::SetSize(int,int) 6497 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6498 void CDaoTableDef::SetSourceTableName(char const *) 6499 void CSplitterWnd::SetSplitCursor(int) 6500 void CDaoQueryDef::SetSQL(char const *) 6501 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6502 void CRecordset::SetState(int,char const *,unsigned long) 6503 void CFile::SetStatus(char const *,CFileStatus const &) 6504 int CControlBar::SetStatusText(int) 6505 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 6506 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 6507 int CDC::SetStretchBltMode(int) 6508 void ATL::CSimpleStringT::SetString(wchar_t const *) 6509 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 6510 void ATL::CSimpleStringT::SetString(char const *) 6511 void ATL::CSimpleStringT::SetString(char const *,int) 6512 void COleVariant::SetString(char const *,unsigned short) 6513 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6514 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6515 int CDialogTemplate::SetSystemFont(unsigned short) 6516 void CEditView::SetTabStops(int) 6517 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6518 void CFileDialog::SetTemplate(char const *,char const *) 6519 void CCmdUI::SetText(char const *) 6520 void COleCmdUI::SetText(char const *) 6521 void COleControl::SetText(char const *) 6522 void CStatusCmdUI::SetText(char const *) 6523 void CTestCmdUI::SetText(char const *) 6524 void CToolCmdUI::SetText(char const *) 6525 unsigned int CDC::SetTextAlign(unsigned int) 6526 int CDC::SetTextCharacterExtra(int) 6527 unsigned long CDC::SetTextColor(unsigned long) 6528 unsigned long CPreviewDC::SetTextColor(unsigned long) 6529 int CDC::SetTextJustification(int,int) 6530 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 6531 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6532 int CDateTimeCtrl::SetTime(ATL::CTime const *) 6533 void CDocument::SetTitle(char const *) 6534 void CPropertySheet::SetTitle(char const *,unsigned int) 6535 void CRichEditDoc::SetTitle(char const *) 6536 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 6537 void CMonthCalCtrl::SetToday(ATL::CTime const *) 6538 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6539 void CPreviewDC::SetTopLeftOffset(CSize) 6540 void CProperty::SetType(unsigned long) 6541 void CRecordset::SetUpdateMethod(void) 6542 void CDaoTableDef::SetValidationRule(char const *) 6543 void CDaoTableDef::SetValidationText(char const *) 6544 void CThreadSlotData::SetValue(int,void *) 6545 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6546 CSize CDC::SetViewportExt(int,int) 6547 CSize CMetaFileDC::SetViewportExt(int,int) 6548 CSize CPreviewDC::SetViewportExt(int,int) 6549 CPoint CDC::SetViewportOrg(int,int) 6550 CPoint CMetaFileDC::SetViewportOrg(int,int) 6551 CPoint CPreviewDC::SetViewportOrg(int,int) 6552 CSize CDC::SetWindowExt(int,int) 6553 CSize CPreviewDC::SetWindowExt(int,int) 6554 CPoint CDC::SetWindowOrg(int,int) 6555 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6556 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6557 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6558 void COleControlSite::SetWindowTextA(char const *) 6559 void CWnd::SetWindowTextA(char const *) 6560 int CRichEditCtrl::SetWordCharFormat(_charformat &) 6561 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 6562 int CDC::SetWorldTransform(tagXFORM const *) 6563 int CInternetFile::SetWriteBufferSize(unsigned int) 6564 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6565 long CDocObjectServer::XOleDocumentView::Show(int) 6566 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6567 void CDockBar::ShowAll(int) 6568 int CWinApp::ShowAppMessageBox(CWinApp *,char const *,unsigned int,unsigned int) 6569 long CRichEditCntrItem::ShowContainerUI(int) 6570 long CRichEditView::ShowContainerUI(int) 6571 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6572 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6573 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6574 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6575 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6576 long COleClientItem::XOleClientSite::ShowObject(void) 6577 long COleControlSite::XOleClientSite::ShowObject(void) 6578 void CFrameWnd::ShowOwnedWindows(int) 6579 long COleControlSite::XOleControlSite::ShowPropertyFrame(void) 6580 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6581 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6582 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6583 int COleControlSite::ShowWindow(int) 6584 int CWnd::ShowWindow(int) 6585 tagSIZE const CScrollView::sizeDefault 6586 int CMonthCalCtrl::SizeMinReq(int) 6587 void CBitmapButton::SizeToContent(void) 6588 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6589 long CEnumArray::XEnumVOID::Skip(unsigned long) 6590 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6591 int CAsyncSocket::Socket(int,long,int,int) 6592 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 6593 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 6594 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 6595 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 6596 int CSplitterWnd::SplitColumn(int) 6597 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6598 int CSplitterWnd::SplitRow(int) 6599 int CDC::StartDocA(char const *) 6600 void CDockContext::StartDrag(CPoint) 6601 void CDockContext::StartResize(int,CPoint) 6602 void CSplitterWnd::StartTracking(int) 6603 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6604 void CSplitterWnd::StopTracking(int) 6605 void CRuntimeClass::Store(CArchive &)const 6606 void CDaoRecordset::StoreFields(void) 6607 void CRecordset::StoreFields(void) 6608 void CRichEditView::Stream(CArchive &,int) 6609 void CDockContext::Stretch(CPoint) 6610 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6611 int ATL::CSimpleStringT::StringLength(char const *) 6612 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6613 int ATL::CSimpleStringT::StringLength(char const *) 6614 void CDaoRecordset::StripBrackets(char const *,char *) 6615 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6616 int CWnd::SubclassWindow(HWND__ *) 6617 int COleDocObjectItem::SupportsIPrint(void) 6618 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6619 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6620 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6621 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6622 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 6623 void CRichEditView::TextNotFound(char const *) 6624 int CMetaFileDC::TextOutA(int,int,char const *,int) 6625 int CPreviewDC::TextOutA(int,int,char const *,int) 6626 void CDaoDatabase::ThrowDaoException(int) 6627 void CDaoQueryDef::ThrowDaoException(int) 6628 void CDaoRecordset::ThrowDaoException(int) 6629 void CDaoTableDef::ThrowDaoException(int) 6630 void CDaoWorkspace::ThrowDaoException(int) 6631 void CFileException::ThrowErrno(int,char const *) 6632 void COleControl::ThrowError(long,unsigned int,unsigned int) 6633 void COleControl::ThrowError(long,char const *,unsigned int) 6634 void ThrowGetRowsDaoException(long) 6635 void ATL::CSimpleStringT::ThrowMemoryException(void) 6636 void ATL::CSimpleStringT::ThrowMemoryException(void) 6637 void CFileException::ThrowOsError(long,char const *) 6638 void CDockContext::ToggleDocking(void) 6639 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 6640 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 6641 COleVariant CDataSourceControl::ToVariant(int) 6642 int CDockContext::Track(void) 6643 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6644 void CSplitterWnd::TrackColumnSize(int,int) 6645 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6646 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6647 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 6648 void CSplitterWnd::TrackRowSize(int,int) 6649 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6650 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6651 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6652 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6653 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6654 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 6655 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 6656 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6657 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 6658 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6659 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 6660 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 6661 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6662 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6663 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6664 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6665 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 6666 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 6667 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 6668 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 6669 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 6670 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 6671 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 6672 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 6673 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 6674 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 6675 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 6676 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 6677 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 6678 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 6679 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 6680 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 6681 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 6682 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 6683 void ATL::CSimpleStringT::Truncate(int) 6684 void ATL::CSimpleStringT::Truncate(int) 6685 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6686 void COccManager::UIActivateControl(CWnd *) 6687 long COleControl::XOleInPlaceObject::UIDeactivate(void) 6688 long COleServerDoc::XOleInPlaceObject::UIDeactivate(void) 6689 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6690 void COleSafeArray::UnaccessData(void) 6691 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 6692 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6693 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6694 long COleControl::XOleObject::Unadvise(unsigned long) 6695 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6696 long COleServerItem::XOleObject::Unadvise(unsigned long) 6697 void CRecordset::UnbindFieldsForUpdate(void) 6698 long COleControl::XOleCache::Uncache(unsigned long) 6699 long COleControl::XViewObject::Unfreeze(unsigned long) 6700 int CEvent::Unlock(void) 6701 int CMultiLock::Unlock(long,long *) 6702 int CMultiLock::Unlock(void) 6703 int CMutex::Unlock(void) 6704 void COleSafeArray::Unlock(void) 6705 int CSemaphore::Unlock(long,long *) 6706 int CSingleLock::Unlock(long,long *) 6707 int CSingleLock::Unlock(void) 6708 void CTypeLibCache::Unlock(void) 6709 void ATL::CSimpleStringT::UnlockBuffer(void) 6710 void ATL::CSimpleStringT::UnlockBuffer(void) 6711 void CEditView::UnlockBuffer(void)const 6712 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 6713 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 6714 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 6715 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 6716 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 6717 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 6718 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6719 int COleObjectFactory::Unregister(void) 6720 int COleTemplateServer::Unregister(void) 6721 int CWinApp::Unregister(void) 6722 int COleObjectFactory::UnregisterAll(void) 6723 void CDocManager::UnregisterShellFileTypes(void) 6724 void CWinApp::UnregisterShellFileTypes(void) 6725 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 6726 HWND__ * CWnd::UnsubclassWindow(void) 6727 void CDaoRecordset::Update(void) 6728 int CRecordset::Update(void) 6729 long CDocObjectServer::XOleObject::Update(void) 6730 long COleControl::XOleObject::Update(void) 6731 long COleServerDoc::XOleObject::Update(void) 6732 long COleServerItem::XOleObject::Update(void) 6733 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6734 void CStatusBar::UpdateAllPanes(int,int) 6735 void CDocument::UpdateAllViews(CView *,long,CObject *) 6736 void CScrollView::UpdateBars(void) 6737 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6738 long CDataSourceControl::UpdateControls(void) 6739 long CDataSourceControl::UpdateCursor(void) 6740 int CWnd::UpdateData(int) 6741 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6742 void CDocument::UpdateFrameCounts(void) 6743 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 6744 int CRecordset::UpdateInsertDelete(void) 6745 void COleClientItem::UpdateItemType(void) 6746 int COleClientItem::UpdateLink(void) 6747 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6748 void CRecentFileList::UpdateMenu(CCmdUI *) 6749 void COleDocument::UpdateModifiedFlag(void) 6750 void CRichEditDoc::UpdateModifiedFlag(void) 6751 void CRichEditDoc::UpdateObjectCache(void) 6752 void CFileDialog::UpdateOFNFromShellDialog(void) 6753 void CWinApp::UpdatePrinterSelection(int) 6754 int COleObjectFactory::UpdateRegistry(int) 6755 void COleObjectFactory::UpdateRegistry(char const *) 6756 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 6757 int COleObjectFactory::UpdateRegistryAll(int) 6758 void CDockContext::UpdateState(int *,int) 6759 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6760 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 6761 long CBrowserControlSite::UpdateUI(void) 6762 long CDHtmlDialog::UpdateUI(void) 6763 long CHtmlControlSite::XDocHostUIHandler::UpdateUI(void) 6764 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6765 void COleLinkingDoc::UpdateVisibleLock(int,int) 6766 void CDatabase::VerifyConnect(void) 6767 unsigned long CRecordset::VerifyCursorSupport(void) 6768 void CRecordset::VerifyDriverBehavior(void) 6769 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 6770 int COleObjectFactory::VerifyUserLicense(void) 6771 int CListBox::VKeyToItem(unsigned int,unsigned int) 6772 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6773 int COleControl::WillAmbientsBeValidDuringLoad(void) 6774 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6775 long COleControl::WindowProc(unsigned int,unsigned int,long) 6776 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6777 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6778 long CReBar::WindowProc(unsigned int,unsigned int,long) 6779 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6780 long CWnd::WindowProc(unsigned int,unsigned int,long) 6781 void CWinApp::WinHelpA(unsigned long,unsigned int) 6782 void CWnd::WinHelpA(unsigned long,unsigned int) 6783 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 6784 void CWnd::WinHelpInternal(unsigned long,unsigned int) 6785 CWnd const CWnd::wndBottom 6786 CWnd const CWnd::wndNoTopMost 6787 CWnd const CWnd::wndTop 6788 CWnd const CWnd::wndTopMost 6789 void CRichEditView::WrapChanged(void) 6790 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6791 void CArchive::Write(void const *,unsigned int) 6792 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6793 void CFile::Write(void const *,unsigned int) 6794 void CGopherFile::Write(void const *,unsigned int) 6795 int CImageList::Write(CArchive *) 6796 void CInternetFile::Write(void const *,unsigned int) 6797 void CMemFile::Write(void const *,unsigned int) 6798 void COleStreamFile::Write(void const *,unsigned int) 6799 void CSocketFile::Write(void const *,unsigned int) 6800 void CStdioFile::Write(void const *,unsigned int) 6801 void CArchive::WriteClass(CRuntimeconst *) 6802 void CArchive::WriteCount(unsigned long) 6803 void COleClientItem::WriteItem(CArchive &) 6804 void COleClientItem::WriteItemCompound(CArchive &) 6805 void COleClientItem::WriteItemFlat(CArchive &) 6806 void CRecentFileList::WriteList(void) 6807 int CPropertySection::WriteNameDictToStream(IStream *) 6808 void CArchive::WriteObject(CObject const *) 6809 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 6810 int CWinApp::WriteProfileInt(char const *,char const *,int) 6811 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 6812 void CArchive::WriteString(char const *) 6813 void CGopherFile::WriteString(char const *) 6814 void CInternetFile::WriteString(char const *) 6815 void CStdioFile::WriteString(char const *) 6816 void CEditView::WriteToArchive(CArchive &) 6817 int CProperty::WriteToStream(IStream *) 6818 int CPropertySection::WriteToStream(IStream *) 6819 int CPropertySet::WriteToStream(IStream *) 6820 void AfxSetPerUserRegistration(int) 6821 int AfxGetPerUserRegistration(void) ================================================ FILE: Bin/i386/mfc_sym/mfc90d.def ================================================ 256 ??$CopyElements@VCOleVariant@@@@YGXPAVCOleVariant@@PBV0@H@Z 257 ??$DumpElements@VCOleVariant@@@@YGXAAVCDumpContext@@PBVCOleVariant@@H@Z 258 ??$HashKey@ABUtagVARIANT@@@@YGIABUtagVARIANT@@@Z 259 ??$HashKey@PB_W@@YGIPB_W@Z 260 ??$HashKey@PBD@@YGIPBD@Z 261 ??$HashKey@VCComBSTR@ATL@@@@YGIVCComBSTR@ATL@@@Z 262 ??$SerializeElements@V?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z 263 ??$SerializeElements@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@H@Z 264 ??$SerializeElements@VCComBSTR@ATL@@@@YGXAAVCArchive@@PAVCComBSTR@ATL@@H@Z 265 ??$SerializeElements@VCOleVariant@@@@YGXAAVCArchive@@PAVCOleVariant@@H@Z 266 COleCurrency const & COleCurrency::operator/=(long) 267 void * operator new[](unsigned int) 268 void * operator new[](unsigned int,int,char const *,int) 269 void * operator new[](unsigned int,char const *,int) 270 void operator delete[](void *) 271 void operator delete[](void *,int,char const *,int) 272 void operator delete[](void *,char const *,int) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 275 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 277 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 278 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 279 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 280 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 281 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 282 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t,int) 284 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 285 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 287 ATL::CStringT > >::CStringT > >(char,int) 288 ATL::CStringT > >::CStringT > >(wchar_t *) 289 ATL::CStringT > >::CStringT > >(char *) 290 ATL::CStringT > >::CStringT > >(unsigned char *) 291 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 292 ATL::CStringT > >::CStringT > >(wchar_t const *) 293 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 294 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 295 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(char const *) 297 ATL::CStringT > >::CStringT > >(char const *,int) 298 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 299 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(unsigned char const *) 301 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 302 ATL::CStringT > >::CStringT > >(void) 303 ATL::CStringT > >::CStringT > >(wchar_t,int) 304 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 305 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 307 ATL::CStringT > >::CStringT > >(char,int) 308 ATL::CStringT > >::CStringT > >(wchar_t *) 309 ATL::CStringT > >::CStringT > >(char *) 310 ATL::CStringT > >::CStringT > >(unsigned char *) 311 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 312 ATL::CStringT > >::CStringT > >(wchar_t const *) 313 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 314 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 315 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >(char const *) 317 ATL::CStringT > >::CStringT > >(char const *,int) 318 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 319 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 320 ATL::CStringT > >::CStringT > >(unsigned char const *) 321 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 322 ATL::CStringT > >::CStringT > >(void) 323 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE(void) 324 _AFX_COLOR_STATE::_AFX_COLOR_STATE(void) 325 _AFX_DAO_STATE::_AFX_DAO_STATE(void) 326 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE(void) 327 _AFX_EDIT_STATE::_AFX_EDIT_STATE(void) 328 _AFX_OLE_STATE::_AFX_OLE_STATE(void) 329 _AFX_THREAD_STATE::_AFX_THREAD_STATE(void) 330 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE(void) 331 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 332 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,char const *) 333 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK(void) 334 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 335 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 336 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 337 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE(void) 338 CAnimateCtrl::CAnimateCtrl(void) 339 CArchive::CArchive(CArchive const &) 340 CArchive::CArchive(CFile *,unsigned int,int,void *) 341 CArchiveException::CArchiveException(int,char const *) 342 CArchivePropExchange::CArchivePropExchange(CArchive &) 343 CArchiveStream::CArchiveStream(CArchive *) 344 CAsyncMonikerFile::CAsyncMonikerFile(void) 345 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 346 CAsyncSocket::CAsyncSocket(void) 347 CBitmap::CBitmap(void) 348 CBitmapButton::CBitmapButton(void) 349 CBlobProperty::CBlobProperty(void *) 350 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 351 CBrush::CBrush(int,unsigned long) 352 CBrush::CBrush(unsigned long) 353 CBrush::CBrush(CBitmap *) 354 CBrush::CBrush(void) 355 CButton::CButton(void) 356 CByteArray::CByteArray(void) 357 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 358 CCachedDataPathProperty::CCachedDataPathProperty(char const *,COleControl *) 359 CCheckListBox::CCheckListBox(void) 360 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu(void) 361 CClientDC::CClientDC(CWnd *) 362 CCmdTarget::CCmdTarget(void) 363 CCmdUI::CCmdUI(void) 364 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 365 CComboBox::CComboBox(void) 366 CComboBoxEx::CComboBoxEx(void) 367 CCommandLineInfo::CCommandLineInfo(void) 368 CCommonDialog::CCommonDialog(CWnd *) 369 CConnectionPoint::CConnectionPoint(void) 370 CControlBar::CControlBar(void) 371 CControlBarInfo::CControlBarInfo(void) 372 CControlCreationInfo::CControlCreationInfo(void) 373 COleControl::CControlDataSource::CControlDataSource(COleControl *) 374 CControlFrameWnd::CControlFrameWnd(COleControl *) 375 CControlSiteFactoryMgr::CControlSiteFactoryMgr(void) 376 CCreateContext::CCreateContext(void) 377 CCriticalSection::CCriticalSection(void) 378 CCtrlView::CCtrlView(char const *,unsigned long) 379 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 380 CDaoException::CDaoException(void) 381 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 382 CDaoIndexInfo::CDaoIndexInfo(void) 383 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 384 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 385 CDaoRecordView::CDaoRecordView(unsigned int) 386 CDaoRecordView::CDaoRecordView(char const *) 387 CDaoRelationInfo::CDaoRelationInfo(void) 388 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 389 CDaoWorkspace::CDaoWorkspace(void) 390 CDatabase::CDatabase(void) 391 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 392 CDataExchange::CDataExchange(CWnd *,int) 393 CDataPathProperty::CDataPathProperty(COleControl *) 394 CDataPathProperty::CDataPathProperty(char const *,COleControl *) 395 CDataSourceControl::CDataSourceControl(COleControlSite *) 396 CDateTimeCtrl::CDateTimeCtrl(void) 397 CDBException::CDBException(short) 398 CDBVariant::CDBVariant(void) 399 CDC::CDC(void) 400 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,char const *,unsigned long) 401 CDHtmlControlSink::CDHtmlControlSink(void) 402 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 403 CDHtmlDialog::CDHtmlDialog(char const *,char const *,CWnd *) 404 CDHtmlDialog::CDHtmlDialog(void) 405 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 406 CDialog::CDialog(unsigned int,CWnd *) 407 CDialog::CDialog(char const *,CWnd *) 408 CDialog::CDialog(void) 409 CDialogBar::CDialogBar(void) 410 CDialogTemplate::CDialogTemplate(void *) 411 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 412 CDocItem::CDocItem(void) 413 CDockBar::CDockBar(int) 414 CDockContext::CDockContext(CControlBar *) 415 CDockState::CDockState(void) 416 CDocManager::CDocManager(void) 417 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 418 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 419 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 420 CDocument::CDocument(void) 421 CDragListBox::CDragListBox(void) 422 CDumpContext::CDumpContext(CDumpContext const &) 423 CDumpContext::CDumpContext(CFile *) 424 CDWordArray::CDWordArray(void) 425 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 426 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 427 CEdit::CEdit(void) 428 CEditView::CEditView(void) 429 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 430 CEnumConnections::CEnumConnections(void const *,unsigned int) 431 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 432 CEnumFormatEtc::CEnumFormatEtc(void) 433 CEvent::CEvent(int,int,char const *,_SECURITY_ATTRIBUTES *) 434 CException::CException(int) 435 CException::CException(void) 436 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 437 CFile::CFile(void *) 438 CFile::CFile(char const *,unsigned int) 439 CFile::CFile(void) 440 CFileDialog::CFileDialog(int,char const *,char const *,unsigned long,char const *,CWnd *,unsigned long,int) 441 CFileException::CFileException(int,long,char const *) 442 CFileFind::CFileFind(void) 443 CFindReplaceDialog::CFindReplaceDialog(void) 444 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 445 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 446 CFont::CFont(void) 447 CFontDialog::CFontDialog(_charformat const &,unsigned long,CDC *,CWnd *) 448 CFontDialog::CFontDialog(tagLOGFONTA *,unsigned long,CDC *,CWnd *) 449 CFontHolder::CFontHolder(IPropertyNotifySink *) 450 CFormView::CFormView(unsigned int) 451 CFormView::CFormView(char const *) 452 CFrameWnd::CFrameWnd(void) 453 CFtpConnection::CFtpConnection(CInternetSession *,void *,char const *,unsigned long) 454 CFtpConnection::CFtpConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short,int) 455 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 456 CGdiObject::CGdiObject(void) 457 CGopherConnection::CGopherConnection(CInternetSession *,void *,char const *,unsigned long) 458 CGopherConnection::CGopherConnection(CInternetSession *,char const *,char const *,char const *,unsigned long,unsigned short) 459 CGopherFile::CGopherFile(void *,void *,char const *,unsigned long,unsigned long) 460 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 461 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 462 CGopherLocator::CGopherLocator(char const *,unsigned long) 463 CGopherLocator::CGopherLocator(CGopherLocator const &) 464 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 465 CHeaderCtrl::CHeaderCtrl(void) 466 CHotKeyCtrl::CHotKeyCtrl(void) 467 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 468 CHtmlEditCtrl::CHtmlEditCtrl(void) 469 CHtmlEditDoc::CHtmlEditDoc(void) 470 CHtmlEditView::CHtmlEditView(void) 471 CHtmlView::CHtmlView(void) 472 CHttpConnection::CHttpConnection(CInternetSession *,void *,char const *,unsigned long) 473 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned short,char const *,char const *,unsigned long) 474 CHttpConnection::CHttpConnection(CInternetSession *,char const *,unsigned long,unsigned short,char const *,char const *,unsigned long) 475 CHttpFile::CHttpFile(void *,void *,char const *,char const *,char const *,unsigned long) 476 CHttpFile::CHttpFile(void *,char const *,char const *,CHttpConnection *) 477 CImageList::CImageList(void) 478 CInternetConnection::CInternetConnection(CInternetSession *,char const *,unsigned short,unsigned long) 479 CInternetException::CInternetException(unsigned long) 480 CInternetFile::CInternetFile(void *,void *,char const *,char const *,unsigned long,int) 481 CInternetFile::CInternetFile(void *,char const *,CInternetConnection *,int) 482 CInternetSession::CInternetSession(char const *,unsigned long,unsigned long,char const *,char const *,unsigned long) 483 CInvalidArgException::CInvalidArgException(int,unsigned int) 484 CInvalidArgException::CInvalidArgException(void) 485 CIPAddressCtrl::CIPAddressCtrl(void) 486 CListBox::CListBox(void) 487 CListCtrl::CListCtrl(void) 488 CListView::CListView(void) 489 CLongBinary::CLongBinary(void) 490 CMapPtrToPtr::CMapPtrToPtr(int) 491 CMapPtrToWord::CMapPtrToWord(int) 492 CMapStringToOb::CMapStringToOb(int) 493 CMapStringToPtr::CMapStringToPtr(int) 494 CMapStringToString::CMapStringToString(int) 495 CMapWordToOb::CMapWordToOb(int) 496 CMapWordToPtr::CMapWordToPtr(int) 497 CMDIChildWnd::CMDIChildWnd(void) 498 CMDIFrameWnd::CMDIFrameWnd(void) 499 CMemFile::CMemFile(unsigned int) 500 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 501 CMemoryException::CMemoryException(int,unsigned int) 502 CMemoryException::CMemoryException(void) 503 CMemoryState::CMemoryState(void) 504 CMenu::CMenu(void) 505 CMetaFileDC::CMetaFileDC(void) 506 CMiniDockFrameWnd::CMiniDockFrameWnd(void) 507 CMiniFrameWnd::CMiniFrameWnd(void) 508 CMonikerFile::CMonikerFile(void) 509 CMonthCalCtrl::CMonthCalCtrl(void) 510 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 511 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 512 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 513 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(char const *,char const *,CWnd *) 514 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(void) 515 CMutex::CMutex(int,char const *,_SECURITY_ATTRIBUTES *) 516 CNotSupportedException::CNotSupportedException(int,unsigned int) 517 CNotSupportedException::CNotSupportedException(void) 518 CObArray::CObArray(void) 519 CObject::CObject(void) 520 CObList::CObList(int) 521 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 522 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 523 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 524 COleClientItem::COleClientItem(COleDocument *) 525 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 526 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 527 COleControl::COleControl(void) 528 COleControlContainer::COleControlContainer(CWnd *) 529 COleControlLock::COleControlLock(_GUID const &) 530 COleControlSite::COleControlSite(COleControlContainer *) 531 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 532 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 533 COleControlSiteOrWnd::COleControlSiteOrWnd(void) 534 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 535 COleCurrency::COleCurrency(tagVARIANT const &) 536 COleCurrency::COleCurrency(COleCurrency const &) 537 COleCurrency::COleCurrency(long,long) 538 COleCurrency::COleCurrency(union tagCY) 539 COleCurrency::COleCurrency(void) 540 COleDataObject::COleDataObject(void) 541 COleDataSource::COleDataSource(void) 542 COleDialog::COleDialog(CWnd *) 543 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 544 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 545 COleDispatchDriver::COleDispatchDriver(void) 546 COleDispatchException::COleDispatchException(char const *,unsigned int,unsigned short) 547 COleDocIPFrameWnd::COleDocIPFrameWnd(void) 548 COleDocObjectItem::COleDocObjectItem(COleDocument *) 549 COleDocument::COleDocument(void) 550 COleDropSource::COleDropSource(void) 551 COleDropTarget::COleDropTarget(void) 552 COleException::COleException(void) 553 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 554 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 555 COleIPFrameWnd::COleIPFrameWnd(void) 556 COleLinkingDoc::COleLinkingDoc(void) 557 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 558 COleMessageFilter::COleMessageFilter(void) 559 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,char const *) 560 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,char const *) 561 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 562 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 563 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 564 COleResizeBar::COleResizeBar(void) 565 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 566 COleSafeArray::COleSafeArray(tagVARIANT const &) 567 COleSafeArray::COleSafeArray(COleSafeArray const &) 568 COleSafeArray::COleSafeArray(COleVariant const &) 569 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 570 COleSafeArray::COleSafeArray(tagVARIANT const *) 571 COleSafeArray::COleSafeArray(void) 572 COleServerDoc::COleServerDoc(void) 573 COleServerItem::COleServerItem(COleServerDoc *,int) 574 COleStreamFile::COleStreamFile(IStream *) 575 COleTemplateServer::COleTemplateServer(void) 576 COleUILinkInfo::COleUILinkInfo(COleDocument *) 577 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 578 COleVariant::COleVariant(__int64) 579 COleVariant::COleVariant(unsigned __int64) 580 COleVariant::COleVariant(ATL::CStringT > > &) 581 COleVariant::COleVariant(tagVARIANT const &) 582 COleVariant::COleVariant(COleVariant const &) 583 COleVariant::COleVariant(CByteArray const &) 584 COleVariant::COleVariant(CLongBinary const &) 585 COleVariant::COleVariant(COleCurrency const &) 586 COleVariant::COleVariant(ATL::COleDateTime const &) 587 COleVariant::COleVariant(unsigned char) 588 COleVariant::COleVariant(short,unsigned short) 589 COleVariant::COleVariant(long,unsigned short) 590 COleVariant::COleVariant(float) 591 COleVariant::COleVariant(double) 592 COleVariant::COleVariant(char const *) 593 COleVariant::COleVariant(char const *,unsigned short) 594 COleVariant::COleVariant(_ITEMIDLIST const *) 595 COleVariant::COleVariant(tagVARIANT const *) 596 COleVariant::COleVariant(void) 597 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 598 CPaintDC::CPaintDC(CWnd *) 599 CPalette::CPalette(void) 600 CPen::CPen(int,int,unsigned long) 601 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 602 CPen::CPen(void) 603 CPictureHolder::CPictureHolder(void) 604 CPreviewDC::CPreviewDC(void) 605 CPreviewView::CPreviewView(void) 606 CPrintDialog::CPrintDialog(tagPDA &) 607 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 608 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 609 CPrintInfo::CPrintInfo(void) 610 CPrintPreviewState::CPrintPreviewState(void) 611 CProgressCtrl::CProgressCtrl(void) 612 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 613 CProperty::CProperty(unsigned long,void * const,unsigned long) 614 CProperty::CProperty(void) 615 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 616 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 617 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned int,unsigned int,unsigned long) 618 CPropertyPage::CPropertyPage(char const *,unsigned int,unsigned long) 619 CPropertyPage::CPropertyPage(void) 620 CPropertySection::CPropertySection(_GUID) 621 CPropertySection::CPropertySection(void) 622 CPropertySet::CPropertySet(_GUID) 623 CPropertySet::CPropertySet(void) 624 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 625 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 626 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int) 627 CPropertySheet::CPropertySheet(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 628 CPropertySheet::CPropertySheet(void) 629 CPropExchange::CPropExchange(void) 630 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 631 CPtrArray::CPtrArray(void) 632 CPtrList::CPtrList(int) 633 CReBar::CReBar(void) 634 CReBarCtrl::CReBarCtrl(void) 635 CRecentFileList::CRecentFileList(unsigned int,char const *,char const *,int,int) 636 CRecordset::CRecordset(CDatabase *) 637 CRecordView::CRecordView(unsigned int) 638 CRecordView::CRecordView(char const *) 639 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 640 CRectTracker::CRectTracker(void) 641 CReObject::CReObject(CRichEditCntrItem *) 642 CReObject::CReObject(void) 643 CResetPropExchange::CResetPropExchange(void) 644 CResourceException::CResourceException(int,unsigned int) 645 CResourceException::CResourceException(void) 646 CRgn::CRgn(void) 647 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 648 CRichEditCtrl::CRichEditCtrl(void) 649 CRichEditDoc::CRichEditDoc(void) 650 CRichEditView::CRichEditView(void) 651 CScrollBar::CScrollBar(void) 652 CScrollView::CScrollView(void) 653 CSemaphore::CSemaphore(long,long,char const *,_SECURITY_ATTRIBUTES *) 654 CSharedFile::CSharedFile(unsigned int,unsigned int) 655 CSimpleException::CSimpleException(int) 656 CSimpleException::CSimpleException(void) 657 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 658 CSingleLock::CSingleLock(CSyncObject *,int) 659 CSliderCtrl::CSliderCtrl(void) 660 CSocket::CSocket(void) 661 CSocketFile::CSocketFile(CSocket *,int) 662 CSocketWnd::CSocketWnd(void) 663 CSpinButtonCtrl::CSpinButtonCtrl(void) 664 CSplitterWnd::CSplitterWnd(void) 665 CStatic::CStatic(void) 666 CStatusBar::CStatusBar(void) 667 CStatusBarCtrl::CStatusBarCtrl(void) 668 CStdioFile::CStdioFile(_iobuf *) 669 CStdioFile::CStdioFile(char const *,unsigned int) 670 CStdioFile::CStdioFile(void) 671 CStringArray::CStringArray(void) 672 CStringList::CStringList(int) 673 CSyncObject::CSyncObject(char const *) 674 CTabCtrl::CTabCtrl(void) 675 CTestCmdUI::CTestCmdUI(void) 676 CThreadSlotData::CThreadSlotData(void) 677 CToolBar::CToolBar(void) 678 CToolBarCtrl::CToolBarCtrl(void) 679 CToolTipCtrl::CToolTipCtrl(void) 680 CTreeCtrl::CTreeCtrl(void) 681 CTreeView::CTreeView(void) 682 CUIntArray::CUIntArray(void) 683 CUserException::CUserException(int,unsigned int) 684 CUserException::CUserException(void) 685 CView::CView(void) 686 CWaitCursor::CWaitCursor(void) 687 CWinApp::CWinApp(char const *) 688 CWindowDC::CWindowDC(CWnd *) 689 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 690 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 691 CWinThread::CWinThread(void) 692 CWnd::CWnd(HWND__ *) 693 CWnd::CWnd(void) 694 CWordArray::CWordArray(void) 695 CPreviewView::PAGE_INFO::PAGE_INFO(void) 696 ATL::CSimpleStringT::~CSimpleStringT(void) 697 ATL::CSimpleStringT::~CSimpleStringT(void) 698 ATL::CStringT > >::~CStringT > >(void) 699 ATL::CStringT > >::~CStringT > >(void) 700 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE(void) 701 _AFX_DAO_STATE::~_AFX_DAO_STATE(void) 702 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE(void) 703 _AFX_EDIT_STATE::~_AFX_EDIT_STATE(void) 704 _AFX_MAIL_STATE::~_AFX_MAIL_STATE(void) 705 _AFX_OLE_STATE::~_AFX_OLE_STATE(void) 706 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE(void) 707 _AFX_SOCK_STATE::~_AFX_SOCK_STATE(void) 708 _AFX_THREAD_STATE::~_AFX_THREAD_STATE(void) 709 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO(void) 710 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE(void) 711 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2(void) 712 AFX_MODULE_STATE::~AFX_MODULE_STATE(void) 713 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE(void) 714 CAnimateCtrl::~CAnimateCtrl(void) 715 CArchive::~CArchive(void) 716 CArchiveException::~CArchiveException(void) 717 CAsyncMonikerFile::~CAsyncMonikerFile(void) 718 CAsyncSocket::~CAsyncSocket(void) 719 CBitmap::~CBitmap(void) 720 CBrush::~CBrush(void) 721 CButton::~CButton(void) 722 CByteArray::~CByteArray(void) 723 CClientDC::~CClientDC(void) 724 CCmdTarget::~CCmdTarget(void) 725 CComboBox::~CComboBox(void) 726 CComboBoxEx::~CComboBoxEx(void) 727 CCommandLineInfo::~CCommandLineInfo(void) 728 CConnectionPoint::~CConnectionPoint(void) 729 CControlBar::~CControlBar(void) 730 CControlSiteFactoryMgr::~CControlSiteFactoryMgr(void) 731 CCriticalSection::~CCriticalSection(void) 732 CCtrlView::~CCtrlView(void) 733 CDaoDatabase::~CDaoDatabase(void) 734 CDaoException::~CDaoException(void) 735 CDaoIndexInfo::~CDaoIndexInfo(void) 736 CDaoQueryDef::~CDaoQueryDef(void) 737 CDaoRecordset::~CDaoRecordset(void) 738 CDaoRecordView::~CDaoRecordView(void) 739 CDaoRelationInfo::~CDaoRelationInfo(void) 740 CDaoTableDef::~CDaoTableDef(void) 741 CDaoWorkspace::~CDaoWorkspace(void) 742 CDatabase::~CDatabase(void) 743 CDataSourceControl::~CDataSourceControl(void) 744 CDateTimeCtrl::~CDateTimeCtrl(void) 745 CDBException::~CDBException(void) 746 CDBVariant::~CDBVariant(void) 747 CDC::~CDC(void) 748 CDHtmlControlSink::~CDHtmlControlSink(void) 749 CDHtmlDialog::~CDHtmlDialog(void) 750 CDialog::~CDialog(void) 751 CDialogBar::~CDialogBar(void) 752 CDialogTemplate::~CDialogTemplate(void) 753 CDocItem::~CDocItem(void) 754 CDockBar::~CDockBar(void) 755 CDockContext::~CDockContext(void) 756 CDockState::~CDockState(void) 757 CDocManager::~CDocManager(void) 758 CDocObjectServer::~CDocObjectServer(void) 759 CDocObjectServerItem::~CDocObjectServerItem(void) 760 CDocTemplate::~CDocTemplate(void) 761 CDocument::~CDocument(void) 762 CDragListBox::~CDragListBox(void) 763 CDWordArray::~CDWordArray(void) 764 CDynLinkLibrary::~CDynLinkLibrary(void) 765 CEdit::~CEdit(void) 766 CEditView::~CEditView(void) 767 CEnumArray::~CEnumArray(void) 768 CEnumConnections::~CEnumConnections(void) 769 CEnumConnPoints::~CEnumConnPoints(void) 770 CEnumFormatEtc::~CEnumFormatEtc(void) 771 CEnumOleVerb::~CEnumOleVerb(void) 772 CEnumUnknown::~CEnumUnknown(void) 773 CEvent::~CEvent(void) 774 CException::~CException(void) 775 CFile::~CFile(void) 776 CFileDialog::~CFileDialog(void) 777 CFileException::~CFileException(void) 778 CFileFind::~CFileFind(void) 779 CFixedAlloc::~CFixedAlloc(void) 780 CFixedAllocNoSync::~CFixedAllocNoSync(void) 781 CFont::~CFont(void) 782 CFontHolder::~CFontHolder(void) 783 CFormView::~CFormView(void) 784 CFrameWnd::~CFrameWnd(void) 785 CFtpConnection::~CFtpConnection(void) 786 CFtpFileFind::~CFtpFileFind(void) 787 CGdiObject::~CGdiObject(void) 788 CGopherConnection::~CGopherConnection(void) 789 CGopherFile::~CGopherFile(void) 790 CGopherFileFind::~CGopherFileFind(void) 791 CGopherLocator::~CGopherLocator(void) 792 CHeaderCtrl::~CHeaderCtrl(void) 793 CHotKeyCtrl::~CHotKeyCtrl(void) 794 CHtmlControlSite::~CHtmlControlSite(void) 795 CHtmlEditCtrl::~CHtmlEditCtrl(void) 796 CHtmlEditDoc::~CHtmlEditDoc(void) 797 CHtmlEditView::~CHtmlEditView(void) 798 CHtmlView::~CHtmlView(void) 799 CHttpConnection::~CHttpConnection(void) 800 CHttpFile::~CHttpFile(void) 801 CImageList::~CImageList(void) 802 CInternetConnection::~CInternetConnection(void) 803 CInternetException::~CInternetException(void) 804 CInternetFile::~CInternetFile(void) 805 CInternetSession::~CInternetSession(void) 806 CInvalidArgException::~CInvalidArgException(void) 807 CIPAddressCtrl::~CIPAddressCtrl(void) 808 CListBox::~CListBox(void) 809 CListCtrl::~CListCtrl(void) 810 CLongBinary::~CLongBinary(void) 811 CMapPtrToPtr::~CMapPtrToPtr(void) 812 CMapPtrToWord::~CMapPtrToWord(void) 813 CMapStringToOb::~CMapStringToOb(void) 814 CMapStringToPtr::~CMapStringToPtr(void) 815 CMapStringToString::~CMapStringToString(void) 816 CMapWordToOb::~CMapWordToOb(void) 817 CMapWordToPtr::~CMapWordToPtr(void) 818 CMemFile::~CMemFile(void) 819 CMemoryException::~CMemoryException(void) 820 CMenu::~CMenu(void) 821 CMetaFileDC::~CMetaFileDC(void) 822 CMiniFrameWnd::~CMiniFrameWnd(void) 823 CMonikerFile::~CMonikerFile(void) 824 CMonthCalCtrl::~CMonthCalCtrl(void) 825 CMultiDocTemplate::~CMultiDocTemplate(void) 826 CMultiLock::~CMultiLock(void) 827 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog(void) 828 CMutex::~CMutex(void) 829 CNotSupportedException::~CNotSupportedException(void) 830 CObArray::~CObArray(void) 831 CObject::~CObject(void) 832 CObList::~CObList(void) 833 COleBusyDialog::~COleBusyDialog(void) 834 COleChangeIconDialog::~COleChangeIconDialog(void) 835 COleChangeSourceDialog::~COleChangeSourceDialog(void) 836 COleClientItem::~COleClientItem(void) 837 COleCntrFrameWnd::~COleCntrFrameWnd(void) 838 COleControl::~COleControl(void) 839 COleControlContainer::~COleControlContainer(void) 840 COleControlLock::~COleControlLock(void) 841 COleControlSite::~COleControlSite(void) 842 COleControlSiteOrWnd::~COleControlSiteOrWnd(void) 843 COleConvertDialog::~COleConvertDialog(void) 844 COleDataObject::~COleDataObject(void) 845 COleDataSource::~COleDataSource(void) 846 COleDispatchDriver::~COleDispatchDriver(void) 847 COleDispatchException::~COleDispatchException(void) 848 COleDocIPFrameWnd::~COleDocIPFrameWnd(void) 849 COleDocObjectItem::~COleDocObjectItem(void) 850 COleDocument::~COleDocument(void) 851 COleDropTarget::~COleDropTarget(void) 852 COleException::~COleException(void) 853 COleFrameHook::~COleFrameHook(void) 854 COleInsertDialog::~COleInsertDialog(void) 855 COleIPFrameWnd::~COleIPFrameWnd(void) 856 COleLinkingDoc::~COleLinkingDoc(void) 857 COleLinksDialog::~COleLinksDialog(void) 858 COleMessageFilter::~COleMessageFilter(void) 859 COleObjectFactory::~COleObjectFactory(void) 860 COlePasteSpecialDialog::~COlePasteSpecialDialog(void) 861 COlePropertyPage::~COlePropertyPage(void) 862 COleResizeBar::~COleResizeBar(void) 863 COleSafeArray::~COleSafeArray(void) 864 COleServerDoc::~COleServerDoc(void) 865 COleServerItem::~COleServerItem(void) 866 COleStreamFile::~COleStreamFile(void) 867 COleUpdateDialog::~COleUpdateDialog(void) 868 COleVariant::~COleVariant(void) 869 CPaintDC::~CPaintDC(void) 870 CPalette::~CPalette(void) 871 CPen::~CPen(void) 872 CPictureHolder::~CPictureHolder(void) 873 CPreviewDC::~CPreviewDC(void) 874 CPreviewView::~CPreviewView(void) 875 CPrintInfo::~CPrintInfo(void) 876 CProcessLocalObject::~CProcessLocalObject(void) 877 CProgressCtrl::~CProgressCtrl(void) 878 CPropbagPropExchange::~CPropbagPropExchange(void) 879 CProperty::~CProperty(void) 880 CPropertyPage::~CPropertyPage(void) 881 CPropertySection::~CPropertySection(void) 882 CPropertySet::~CPropertySet(void) 883 CPropertySheet::~CPropertySheet(void) 884 CPtrArray::~CPtrArray(void) 885 CPtrList::~CPtrList(void) 886 CReBarCtrl::~CReBarCtrl(void) 887 CRecentFileList::~CRecentFileList(void) 888 CRecordset::~CRecordset(void) 889 CRecordView::~CRecordView(void) 890 CRectTracker::~CRectTracker(void) 891 CReObject::~CReObject(void) 892 CResourceException::~CResourceException(void) 893 CRgn::~CRgn(void) 894 CRichEditCntrItem::~CRichEditCntrItem(void) 895 CRichEditCtrl::~CRichEditCtrl(void) 896 CScrollBar::~CScrollBar(void) 897 CScrollView::~CScrollView(void) 898 CSemaphore::~CSemaphore(void) 899 CSharedFile::~CSharedFile(void) 900 CSimpleException::~CSimpleException(void) 901 CSingleDocTemplate::~CSingleDocTemplate(void) 902 CSingleLock::~CSingleLock(void) 903 CSliderCtrl::~CSliderCtrl(void) 904 CSocket::~CSocket(void) 905 CSocketFile::~CSocketFile(void) 906 CSpinButtonCtrl::~CSpinButtonCtrl(void) 907 CSplitterWnd::~CSplitterWnd(void) 908 CStatic::~CStatic(void) 909 CStatusBar::~CStatusBar(void) 910 CStatusBarCtrl::~CStatusBarCtrl(void) 911 CStdioFile::~CStdioFile(void) 912 CStringArray::~CStringArray(void) 913 CStringList::~CStringList(void) 914 CSyncObject::~CSyncObject(void) 915 CTabCtrl::~CTabCtrl(void) 916 CThreadLocalObject::~CThreadLocalObject(void) 917 CThreadSlotData::~CThreadSlotData(void) 918 CToolBar::~CToolBar(void) 919 CToolBarCtrl::~CToolBarCtrl(void) 920 CToolTipCtrl::~CToolTipCtrl(void) 921 CTreeCtrl::~CTreeCtrl(void) 922 CUIntArray::~CUIntArray(void) 923 CUserException::~CUserException(void) 924 CView::~CView(void) 925 CWaitCursor::~CWaitCursor(void) 926 CWinApp::~CWinApp(void) 927 CWindowDC::~CWindowDC(void) 928 CWinThread::~CWinThread(void) 929 CWnd::~CWnd(void) 930 CWordArray::~CWordArray(void) 931 void * operator new(unsigned int) 932 void * operator new(unsigned int,int,char const *,int) 933 void * operator new(unsigned int,char const *,int) 934 void * CNoTrackObject::operator new(unsigned int) 935 void * CNoTrackObject::operator new(unsigned int,char const *,int) 936 void * CObject::operator new(unsigned int) 937 void * CObject::operator new(unsigned int,void *) 938 void * CObject::operator new(unsigned int,char const *,int) 939 void operator delete(void *) 940 void operator delete(void *,int,char const *,int) 941 void operator delete(void *,char const *,int) 942 void CException::operator delete(void *) 943 void CException::operator delete(void *,char const *,int) 944 void CNoTrackObject::operator delete(void *) 945 void CNoTrackObject::operator delete(void *,char const *,int) 946 void CObject::operator delete(void *) 947 void CObject::operator delete(void *,void *) 948 void CObject::operator delete(void *,char const *,int) 949 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 950 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 951 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 952 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 953 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 954 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 955 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 956 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 957 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 958 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 959 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 960 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 961 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 962 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 963 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 964 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 965 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 966 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 967 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 968 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 969 void CArchive::operator=(CArchive const &) 970 void CDumpContext::operator=(CDumpContext const &) 971 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 972 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 973 COleCurrency const & COleCurrency::operator=(union tagCY) 974 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 975 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 976 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 977 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 978 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 979 COleVariant const & COleVariant::operator=(__int64) 980 COleVariant const & COleVariant::operator=(unsigned __int64) 981 COleVariant const & COleVariant::operator=(tagVARIANT const &) 982 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 983 COleVariant const & COleVariant::operator=(COleVariant const &) 984 COleVariant const & COleVariant::operator=(CByteArray const &) 985 COleVariant const & COleVariant::operator=(CLongBinary const &) 986 COleVariant const & COleVariant::operator=(COleCurrency const &) 987 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 988 COleVariant const & COleVariant::operator=(unsigned char) 989 COleVariant const & COleVariant::operator=(short) 990 COleVariant const & COleVariant::operator=(long) 991 COleVariant const & COleVariant::operator=(float) 992 COleVariant const & COleVariant::operator=(double) 993 COleVariant const & COleVariant::operator=(tagVARIANT const *) 994 COleVariant const & COleVariant::operator=(char const * const) 995 CArchive & operator>>(CArchive &,CByteArray * &) 996 CArchive & operator>>(CArchive &,CDocItem * &) 997 CArchive & operator>>(CArchive &,CDockState * &) 998 CArchive & operator>>(CArchive &,CDWordArray * &) 999 CArchive & operator>>(CArchive &,CMapStringToOb * &) 1000 CArchive & operator>>(CArchive &,CMapStringToString * &) 1001 CArchive & operator>>(CArchive &,CMapWordToOb * &) 1002 CArchive & operator>>(CArchive &,CObArray * &) 1003 CArchive & operator>>(CArchive &,CObject * &) 1004 CArchive & operator>>(CArchive &,CObList * &) 1005 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 1006 CArchive & operator>>(CArchive &,CStringArray * &) 1007 CArchive & operator>>(CArchive &,CStringList * &) 1008 CArchive & operator>>(CArchive &,CWordArray * &) 1009 CArchive & operator>>(CArchive &,CObject const * &) 1010 CArchive & operator>>(CArchive &,tagPOINT &) 1011 CArchive & operator>>(CArchive &,tagRECT &) 1012 CArchive & operator>>(CArchive &,tagSIZE &) 1013 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 1014 CArchive & operator>>(CArchive &,COleCurrency &) 1015 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 1016 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 1017 CArchive & operator>>(CArchive &,COleVariant &) 1018 CArchive & operator>>(CArchive &,ATL::CTime &) 1019 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 1020 CArchive & CArchive::operator>>(__int64 &) 1021 CArchive & CArchive::operator>>(unsigned __int64 &) 1022 CArchive & CArchive::operator>>(bool &) 1023 CArchive & CArchive::operator>>(wchar_t &) 1024 CArchive & CArchive::operator>>(char &) 1025 CArchive & CArchive::operator>>(unsigned char &) 1026 CArchive & CArchive::operator>>(short &) 1027 CArchive & CArchive::operator>>(unsigned short &) 1028 CArchive & CArchive::operator>>(int &) 1029 CArchive & CArchive::operator>>(unsigned int &) 1030 CArchive & CArchive::operator>>(long &) 1031 CArchive & CArchive::operator>>(unsigned long &) 1032 CArchive & CArchive::operator>>(float &) 1033 CArchive & CArchive::operator>>(double &) 1034 CArchive & operator<<(CArchive &,tagRECT const &) 1035 CArchive & operator<<(CArchive &,CObject const *) 1036 CArchive & operator<<(CArchive &,tagPOINT) 1037 CArchive & operator<<(CArchive &,tagSIZE) 1038 CArchive & operator<<(CArchive &,ATL::CComBSTR) 1039 CArchive & operator<<(CArchive &,COleCurrency) 1040 CArchive & operator<<(CArchive &,ATL::COleDateTime) 1041 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 1042 CArchive & operator<<(CArchive &,COleVariant) 1043 CArchive & operator<<(CArchive &,ATL::CTime) 1044 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 1045 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 1046 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 1047 CDumpContext & operator<<(CDumpContext &,tagPOINT) 1048 CDumpContext & operator<<(CDumpContext &,tagSIZE) 1049 CDumpContext & operator<<(CDumpContext &,COleCurrency) 1050 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 1051 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 1052 CDumpContext & operator<<(CDumpContext &,COleVariant) 1053 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 1054 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 1055 CArchive & CArchive::operator<<(__int64) 1056 CArchive & CArchive::operator<<(unsigned __int64) 1057 CArchive & CArchive::operator<<(bool) 1058 CArchive & CArchive::operator<<(wchar_t) 1059 CArchive & CArchive::operator<<(char) 1060 CArchive & CArchive::operator<<(unsigned char) 1061 CArchive & CArchive::operator<<(short) 1062 CArchive & CArchive::operator<<(unsigned short) 1063 CArchive & CArchive::operator<<(int) 1064 CArchive & CArchive::operator<<(unsigned int) 1065 CArchive & CArchive::operator<<(long) 1066 CArchive & CArchive::operator<<(unsigned long) 1067 CArchive & CArchive::operator<<(float) 1068 CArchive & CArchive::operator<<(double) 1069 CDumpContext & CDumpContext::operator<<(__int64) 1070 CDumpContext & CDumpContext::operator<<(unsigned __int64) 1071 CDumpContext & CDumpContext::operator<<(CObject const &) 1072 CDumpContext & CDumpContext::operator<<(unsigned char) 1073 CDumpContext & CDumpContext::operator<<(unsigned short) 1074 CDumpContext & CDumpContext::operator<<(int) 1075 CDumpContext & CDumpContext::operator<<(unsigned int) 1076 CDumpContext & CDumpContext::operator<<(long) 1077 CDumpContext & CDumpContext::operator<<(unsigned long) 1078 CDumpContext & CDumpContext::operator<<(float) 1079 CDumpContext & CDumpContext::operator<<(double) 1080 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 1081 CDumpContext & CDumpContext::operator<<(HDC__ *) 1082 CDumpContext & CDumpContext::operator<<(HFONT__ *) 1083 CDumpContext & CDumpContext::operator<<(HMENU__ *) 1084 CDumpContext & CDumpContext::operator<<(HWND__ *) 1085 CDumpContext & CDumpContext::operator<<(wchar_t const *) 1086 CDumpContext & CDumpContext::operator<<(char const *) 1087 CDumpContext & CDumpContext::operator<<(CObject const *) 1088 CDumpContext & CDumpContext::operator<<(void const *) 1089 int CGdiObject::operator==(CGdiObject const &)const 1090 int CMenu::operator==(CMenu const &)const 1091 int COleCurrency::operator==(COleCurrency const &)const 1092 int COleSafeArray::operator==(tagSAFEARRAY const &)const 1093 int COleSafeArray::operator==(tagVARIANT const &)const 1094 int COleSafeArray::operator==(COleSafeArray const &)const 1095 int COleSafeArray::operator==(COleVariant const &)const 1096 int COleSafeArray::operator==(tagSAFEARRAY const *)const 1097 int COleSafeArray::operator==(tagVARIANT const *)const 1098 int COleVariant::operator==(tagVARIANT const &)const 1099 int COleVariant::operator==(tagVARIANT const *)const 1100 int CWnd::operator==(CWnd const &)const 1101 int CGdiObject::operator!=(CGdiObject const &)const 1102 int CMenu::operator!=(CMenu const &)const 1103 int COleCurrency::operator!=(COleCurrency const &)const 1104 int CWnd::operator!=(CWnd const &)const 1105 wchar_t ATL::CSimpleStringT::operator[](int)const 1106 char ATL::CSimpleStringT::operator[](int)const 1107 unsigned char & CByteArray::operator[](int) 1108 unsigned char CByteArray::operator[](int)const 1109 unsigned long & CDWordArray::operator[](int) 1110 unsigned long CDWordArray::operator[](int)const 1111 void * & CMapPtrToPtr::operator[](void *) 1112 unsigned short & CMapPtrToWord::operator[](void *) 1113 CObject * & CMapStringToOb::operator[](char const *) 1114 void * & CMapStringToPtr::operator[](char const *) 1115 ATL::CStringT > > & CMapStringToString::operator[](char const *) 1116 CObject * & CMapWordToOb::operator[](unsigned short) 1117 void * & CMapWordToPtr::operator[](unsigned short) 1118 CObject * & CObArray::operator[](int) 1119 CObject * CObArray::operator[](int)const 1120 void * & CPtrArray::operator[](int) 1121 void * CPtrArray::operator[](int)const 1122 ATL::CStringT > > & CStringArray::operator[](int) 1123 ATL::CStringT > > const & CStringArray::operator[](int)const 1124 unsigned int & CUIntArray::operator[](int) 1125 unsigned int CUIntArray::operator[](int)const 1126 unsigned short & CWordArray::operator[](int) 1127 unsigned short CWordArray::operator[](int)const 1128 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 1129 ATL::CSimpleStringT::operator wchar_t const *(void)const 1130 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 1131 ATL::CSimpleStringT::operator char const *(void)const 1132 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 1133 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 1134 CAsyncSocket::operator unsigned int(void)const 1135 CBitmap::operator HBITMAP__ *(void)const 1136 CBrush::operator HBRUSH__ *(void)const 1137 CCriticalSection::operator _RTL_CRITICAL_SECTION *(void) 1138 CDC::operator HDC__ *(void)const 1139 CFile::operator void *(void)const 1140 CFont::operator HFONT__ *(void)const 1141 CGdiObject::operator void *(void)const 1142 CGopherLocator::operator char const *(void)const 1143 CImageList::operator _IMAGELIST *(void)const 1144 CInternetConnection::operator void *(void)const 1145 CInternetFile::operator void *(void)const 1146 CInternetSession::operator void *(void)const 1147 CMenu::operator HMENU__ *(void)const 1148 COleCurrency::operator union tagCY(void)const 1149 COleDispatchDriver::operator IDispatch *(void) 1150 COleSafeArray::operator tagVARIANT *(void) 1151 COleSafeArray::operator tagVARIANT const *(void)const 1152 COleVariant::operator tagVARIANT *(void) 1153 COleVariant::operator tagVARIANT const *(void)const 1154 CPalette::operator HPALETTE__ *(void)const 1155 CPen::operator HPEN__ *(void)const 1156 CRgn::operator HRGN__ *(void)const 1157 CSyncObject::operator void *(void)const 1158 CWinThread::operator void *(void)const 1159 CWnd::operator HWND__ *(void)const 1160 COleCurrency COleCurrency::operator*(long)const 1161 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1162 COleCurrency COleCurrency::operator-(void)const 1163 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1164 COleCurrency COleCurrency::operator/(long)const 1165 int COleCurrency::operator<(COleCurrency const &)const 1166 int COleCurrency::operator<=(COleCurrency const &)const 1167 int COleCurrency::operator>(COleCurrency const &)const 1168 int COleCurrency::operator>=(COleCurrency const &)const 1169 COleCurrency const & COleCurrency::operator*=(long) 1170 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1171 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1172 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1173 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1174 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 1175 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1176 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1177 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1178 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1179 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 1180 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1181 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1182 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1183 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1184 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1185 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1186 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1187 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1188 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1189 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1190 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1191 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1192 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1193 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1194 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1195 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1196 int _AfxAbortProc(HDC__ *,int) 1197 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1198 int const _afxDBCS 1199 int _AfxDeleteRegKey(char const *) 1200 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 1201 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1202 int _AfxSocketInit(WSAData *) 1203 void CArchive::Abort(void) 1204 void CFile::Abort(void) 1205 void CInternetFile::Abort(void) 1206 void CMemFile::Abort(void) 1207 void CMirrorFile::Abort(void) 1208 void COleStreamFile::Abort(void) 1209 void CSocketFile::Abort(void) 1210 void CStdioFile::Abort(void) 1211 int CDC::AbortDoc(void) 1212 int CDC::AbortPath(void) 1213 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1214 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1215 long CWnd::accDoDefaultAction(tagVARIANT) 1216 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1217 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1218 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1219 void COleSafeArray::AccessData(void * *) 1220 long CWnd::accHitTest(long,long,tagVARIANT *) 1221 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1222 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1223 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1224 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1225 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1226 long CWnd::accSelect(long,tagVARIANT) 1227 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1228 void COleClientItem::Activate(long,CView *,tagMSG *) 1229 void CToolTipCtrl::Activate(int) 1230 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1231 void COleDocObjectItem::ActivateAndShow(void) 1232 int COleClientItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1233 int CRichEditCntrItem::ActivateAs(char const *,_GUID const &,_GUID const &) 1234 void CDocObjectServer::ActivateDocObject(void) 1235 void COleServerDoc::ActivateDocObject(void) 1236 void CFrameWnd::ActivateFrame(int) 1237 void CMDIChildWnd::ActivateFrame(int) 1238 int COleServerDoc::ActivateInPlace(void) 1239 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1240 void CSplitterWnd::ActivateNext(int) 1241 void CWnd::ActivateTopParent(void) 1242 int CByteArray::Add(unsigned char) 1243 int CDWordArray::Add(unsigned long) 1244 int CImageList::Add(HICON__ *) 1245 int CImageList::Add(CBitmap *,CBitmap *) 1246 int CImageList::Add(CBitmap *,unsigned long) 1247 int CObArray::Add(CObject *) 1248 int CPtrArray::Add(void *) 1249 void CRecentFileList::Add(char const *) 1250 int CStringArray::Add(ATL::CStringT > > const &) 1251 int CStringArray::Add(char const *) 1252 int CUIntArray::Add(unsigned int) 1253 int CWordArray::Add(unsigned short) 1254 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,char const *,unsigned long) 1255 int CReBar::AddBar(CWnd *,char const *,CBitmap *,unsigned long) 1256 int CToolBarCtrl::AddBitmap(int,unsigned int) 1257 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1258 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1259 void COleClientItem::AddCachedData(COleDataSource *) 1260 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1261 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1262 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1263 void CFrameWnd::AddControlBar(CControlBar *) 1264 void CDocManager::AddDocTemplate(CDocTemplate *) 1265 void CWinApp::AddDocTemplate(CDocTemplate *) 1266 void CDocTemplate::AddDocument(CDocument *) 1267 void CMultiDocTemplate::AddDocument(CDocument *) 1268 void CSingleDocTemplate::AddDocument(CDocument *) 1269 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1270 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,char *,char *,unsigned long) 1271 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1272 void COleControl::AddFrameLevelUI(void) 1273 void CFrameWnd::AddFrameWnd(void) 1274 __POSITION * CObList::AddHead(CObject *) 1275 void CObList::AddHead(CObList *) 1276 __POSITION * CPtrList::AddHead(void *) 1277 void CPtrList::AddHead(CPtrList *) 1278 void CSimpleList::AddHead(void *) 1279 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1280 __POSITION * CStringList::AddHead(char const *) 1281 void CStringList::AddHead(CStringList *) 1282 void COleDocument::AddItem(CDocItem *) 1283 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1284 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1285 void CDaoRecordset::AddNew(void) 1286 void CRecordset::AddNew(void) 1287 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1288 void CPropertySheet::AddPage(CPropertyPage *) 1289 void CPropertySection::AddProperty(CProperty *) 1290 void CPropertySet::AddProperty(_GUID,CProperty *) 1291 unsigned long CArchiveStream::AddRef(void) 1292 unsigned long CBlobProperty::AddRef(void) 1293 unsigned long CBrowserControlSite::AddRef(void) 1294 unsigned long CDHtmlControlSink::AddRef(void) 1295 unsigned long CDHtmlElementEventSink::AddRef(void) 1296 unsigned long CDHtmlEventSink::AddRef(void) 1297 unsigned long CInnerUnknown::AddRef(void) 1298 unsigned long COleConnPtContainer::AddRef(void) 1299 unsigned long COleDispatchImpl::AddRef(void) 1300 unsigned long COleUILinkInfo::AddRef(void) 1301 unsigned long CPrintDialogEx::AddRef(void) 1302 unsigned long CWnd::XAccessible::AddRef(void) 1303 unsigned long CWnd::XAccessibleServer::AddRef(void) 1304 unsigned long COleClientItem::XAdviseSink::AddRef(void) 1305 unsigned long COleControlSite::XAmbientProps::AddRef(void) 1306 unsigned long COleControlSite::XBoundObjectSite::AddRef(void) 1307 unsigned long COleObjectFactory::XClassFactory::AddRef(void) 1308 unsigned long CConnectionPoint::XConnPt::AddRef(void) 1309 unsigned long COleControl::XDataObject::AddRef(void) 1310 unsigned long COleDataSource::XDataObject::AddRef(void) 1311 unsigned long COleServerDoc::XDataObject::AddRef(void) 1312 unsigned long COleServerItem::XDataObject::AddRef(void) 1313 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef(void) 1314 unsigned long COleDropSource::XDropSource::AddRef(void) 1315 unsigned long COleDropTarget::XDropTarget::AddRef(void) 1316 unsigned long CEnumArray::XEnumVOID::AddRef(void) 1317 unsigned long COleControlSite::XEventSink::AddRef(void) 1318 unsigned long CFileDialog::XFileDialogControlEvents::AddRef(void) 1319 unsigned long CFileDialog::XFileDialogEvents::AddRef(void) 1320 unsigned long COleControl::XFontNotification::AddRef(void) 1321 unsigned long COleMessageFilter::XMessageFilter::AddRef(void) 1322 unsigned long COleControlSite::XNotifyDBEvents::AddRef(void) 1323 unsigned long COleControl::XOleCache::AddRef(void) 1324 unsigned long COleClientItem::XOleClientSite::AddRef(void) 1325 unsigned long COleControlSite::XOleClientSite::AddRef(void) 1326 unsigned long CDocObjectServer::XOleCommandTarget::AddRef(void) 1327 unsigned long COleFrameHook::XOleCommandTarget::AddRef(void) 1328 unsigned long COleControlContainer::XOleContainer::AddRef(void) 1329 unsigned long COleControl::XOleControl::AddRef(void) 1330 unsigned long COleControlSite::XOleControlSite::AddRef(void) 1331 unsigned long CDocObjectServer::XOleDocument::AddRef(void) 1332 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef(void) 1333 unsigned long CDocObjectServer::XOleDocumentView::AddRef(void) 1334 unsigned long COleControl::XOleInPlaceActiveObject::AddRef(void) 1335 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef(void) 1336 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef(void) 1337 unsigned long COleControl::XOleInPlaceObject::AddRef(void) 1338 unsigned long COleServerDoc::XOleInPlaceObject::AddRef(void) 1339 unsigned long COleControlContainer::XOleIPFrame::AddRef(void) 1340 unsigned long COleClientItem::XOleIPSite::AddRef(void) 1341 unsigned long COleControlSite::XOleIPSite::AddRef(void) 1342 unsigned long COleLinkingDoc::XOleItemContainer::AddRef(void) 1343 unsigned long CDocObjectServer::XOleObject::AddRef(void) 1344 unsigned long COleControl::XOleObject::AddRef(void) 1345 unsigned long COleServerDoc::XOleObject::AddRef(void) 1346 unsigned long COleServerItem::XOleObject::AddRef(void) 1347 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef(void) 1348 unsigned long COleControl::XPerPropertyBrowsing::AddRef(void) 1349 unsigned long COleLinkingDoc::XPersistFile::AddRef(void) 1350 unsigned long COleControl::XPersistMemory::AddRef(void) 1351 unsigned long COleControl::XPersistPropertyBag::AddRef(void) 1352 unsigned long COleControl::XPersistStorage::AddRef(void) 1353 unsigned long COleServerDoc::XPersistStorage::AddRef(void) 1354 unsigned long COleControl::XPersistStreamInit::AddRef(void) 1355 unsigned long COleControl::XPointerInactive::AddRef(void) 1356 unsigned long CDocObjectServer::XPrint::AddRef(void) 1357 unsigned long COleControlSite::XPropertyNotifySink::AddRef(void) 1358 unsigned long COlePropertyPage::XPropertyPage::AddRef(void) 1359 unsigned long COlePropertyPage::XPropNotifySink::AddRef(void) 1360 unsigned long COleControl::XProvideClassInfo::AddRef(void) 1361 unsigned long COleControl::XQuickActivate::AddRef(void) 1362 unsigned long CRichEditView::XRichEditOleCallback::AddRef(void) 1363 unsigned long COleControlSite::XRowsetNotify::AddRef(void) 1364 unsigned long COleControl::XSpecifyPropertyPages::AddRef(void) 1365 unsigned long COleControl::XViewObject::AddRef(void) 1366 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1367 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1368 int CHttpFile::AddRequestHeaders(char const *,unsigned long,int) 1369 CPropertySection * CPropertySet::AddSection(_GUID) 1370 void CPropertySet::AddSection(CPropertySection *) 1371 void COlePasteSpecialDialog::AddStandardFormats(int) 1372 int CComboBox::AddString(char const *) 1373 int CComboBoxEx::AddString(char const *) 1374 int CListBox::AddString(char const *) 1375 int CToolBarCtrl::AddString(unsigned int) 1376 int CToolBarCtrl::AddStrings(char const *) 1377 __POSITION * CObList::AddTail(CObject *) 1378 void CObList::AddTail(CObList *) 1379 __POSITION * CPtrList::AddTail(void *) 1380 void CPtrList::AddTail(CPtrList *) 1381 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1382 __POSITION * CStringList::AddTail(char const *) 1383 void CStringList::AddTail(CStringList *) 1384 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1385 int CToolTipCtrl::AddTool(CWnd *,char const *,tagRECT const *,unsigned int) 1386 void CWinApp::AddToRecentFileList(char const *) 1387 void CDocument::AddView(CView *) 1388 void CMetaFileDC::AdjustCP(int) 1389 void CRichEditView::AdjustDialogPosition(CDialog *) 1390 void CRectTracker::AdjustRect(int,tagRECT *) 1391 void CTabCtrl::AdjustRect(int,tagRECT *) 1392 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1393 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1394 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1395 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1396 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1397 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1398 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1399 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1400 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1401 void AfxAbort(void) 1402 int AfxActivateActCtx(void *,unsigned long *) 1403 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 1404 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1405 int AfxAssertFailedLine(char const *,int) 1406 void AfxAssertValidObject(CObject const *,char const *,int) 1407 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1408 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1409 wchar_t * AfxBSTR2ABSTR(wchar_t *) 1410 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1411 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1412 void AfxCancelModes(HWND__ *) 1413 void AfxCheckError(long) 1414 int AfxCheckMemory(void) 1415 void AfxClassInit(CRuntime*) 1416 int AfxComparePath(char const *,char const *) 1417 int AfxCompareValueByRef(void *,void *,int) 1418 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1419 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1420 void AfxCopyValueByRef(void *,void *,long *,int) 1421 void AfxCoreInitModule(void) 1422 void * AfxCreateActCtxW(tagACTCTXW const *) 1423 HDC__ * AfxCreateDC(void *,void *) 1424 int AfxCriticalInit(void) 1425 int AfxCriticalNewHandler(unsigned int) 1426 void AfxCriticalTerm(void) 1427 int AfxCustomLogFont(unsigned int,tagLOGFONTA *) 1428 void AfxDaoCheck(long,char const *,char const *,int,int,int) 1429 _DAODBEngine * AfxDaoGetEngine(void) 1430 void AfxDaoInit(void) 1431 void AfxDaoTerm(void) 1432 void AfxDaoTrace(long,char const *,char const *,int) 1433 AUX_DATA afxData 1434 int AfxDeactivateActCtx(unsigned long,unsigned long) 1435 void AfxDeleteObject(void * *) 1436 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1437 _devicemodeW * AfxDevModeA2W(_devicemodeW *,_devicemodeA *) 1438 _devicemodeA * AfxDevModeW2A(_devicemodeA *,_devicemodeW *) 1439 int AfxDiagnosticInit(void) 1440 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1441 long AfxDllCanUnloadNow(void) 1442 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1443 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1444 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1445 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1446 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1447 CDumpContext afxDump 1448 void AfxDump(CObject const *) 1449 int AfxDumpMemoryLeaks(void) 1450 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1451 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1452 void AfxEnableControlContainer(COccManager *) 1453 int AfxEnableMemoryLeakOverride(int) 1454 int AfxEnableMemoryTracking(int) 1455 int AfxEndDeferRegisterClass(long) 1456 void AfxEndThread(unsigned int,int) 1457 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1458 int AfxExtractSubString(ATL::CStringT > > &,char const *,int,char) 1459 void AfxFailMaxChars(CDataExchange *,int) 1460 void AfxFailRadio(CDataExchange *) 1461 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 1462 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1463 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1464 HINSTANCE__ * AfxFindResourceHandle(char const *,char const *) 1465 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1466 void AfxFormatString1(ATL::CStringT > > &,unsigned int,char const *) 1467 void AfxFormatString2(ATL::CStringT > > &,unsigned int,char const *,char const *) 1468 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,char const * const *,int) 1469 void AfxFormatStrings(ATL::CStringT > > &,char const *,char const * const *,int) 1470 int AfxFreeLibrary(HINSTANCE__ *) 1471 void AfxFreeMemoryDebug(void *,int) 1472 int AfxFullPath(char *,char const *) 1473 long (__stdcall*AfxGetAfxWndProc(void))(HWND__ *,unsigned int,unsigned int,long) 1474 int AfxGetAmbientActCtx(void) 1475 CWinApp * AfxGetApp(void) 1476 AFX_MODULE_STATE * AfxGetAppModuleState(void) 1477 char const * AfxGetAppName(void) 1478 long AfxGetClassIDFromString(char const *,_GUID *) 1479 tagMSG * AfxGetCurrentMessage(void) 1480 _AFX_DAO_STATE * AfxGetDaoState(void) 1481 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 1482 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1483 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 1484 unsigned long AfxGetDllVersion(void) 1485 char const * AfxGetFacilityString(long) 1486 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 1487 unsigned int AfxGetFileName(char const *,char *,unsigned int) 1488 unsigned int AfxGetFileTitle(char const *,char *,unsigned int) 1489 char const * AfxGetFullScodeString(long) 1490 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1491 void * AfxGetHENV(void) 1492 char const * AfxGetIIDString(_GUID const &) 1493 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1494 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 1495 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 1496 int AfxGetInProcServer(char const *,ATL::CStringT > > &) 1497 HINSTANCE__ * AfxGetInstanceHandle(void) 1498 HINSTANCE__ * AfxGetInstanceHandleHelper(void) 1499 unsigned long AfxGetInternetHandleType(void *) 1500 CWnd * AfxGetMainWnd(void) 1501 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1502 AFX_MODULE_STATE * AfxGetModuleState(void) 1503 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState(void) 1504 int (__cdecl*AfxGetNewHandler(void))(unsigned int) 1505 HWND__ * AfxGetParentOwner(HWND__ *) 1506 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1507 HINSTANCE__ * AfxGetResourceHandle(void) 1508 _AFX_RICHEDIT_STATE * AfxGetRichEditState(void) 1509 void AfxGetRoot(char const *,ATL::CStringT > > &) 1510 char const * AfxGetScodeRangeString(long) 1511 char const * AfxGetScodeString(long) 1512 char const * AfxGetSeverityString(long) 1513 ATL::IAtlStringMgr * AfxGetStringManager(void) 1514 CWinThread * AfxGetThread(void) 1515 _AFX_THREAD_STATE * AfxGetThreadState(void) 1516 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1517 void AfxGlobalFree(void *) 1518 int AfxHelpEnabled(void) 1519 void AfxHookWindowCreate(CWnd *) 1520 HWND__ * AfxHtmlHelp(HWND__ *,char const *,unsigned int,unsigned long) 1521 int AfxInitCurrentStateApp(void) 1522 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1523 void AfxInitLocalData(HINSTANCE__ *) 1524 int AfxInitNetworkAddressControl(void) 1525 int AfxInitRichEdit(void) 1526 int AfxInitRichEdit2(void) 1527 void AfxInitThread(void) 1528 int AfxInternalIsIdleMessage(tagMSG *) 1529 int AfxInternalPreTranslateMessage(tagMSG *) 1530 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1531 int AfxInternalPumpMessage(void) 1532 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1533 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1534 int AfxIsDescendant(HWND__ *,HWND__ *) 1535 int AfxIsIdleMessage(tagMSG *) 1536 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1537 int AfxIsModuleDll(void) 1538 int AfxIsValidAddress(void const *,unsigned int,int) 1539 int AfxIsValidAtom(unsigned short) 1540 int AfxIsValidAtom(char const *) 1541 int AfxIsValidString(wchar_t const *,int) 1542 int AfxIsValidString(char const *,int) 1543 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1544 HINSTANCE__ * AfxLoadLangResourceDLL(char const *) 1545 HINSTANCE__ * AfxLoadLangResourceDLL(char const *,char const *) 1546 HINSTANCE__ * AfxLoadLibrary(char const *) 1547 HINSTANCE__ * AfxLoadLibraryEx(char const *,void *,unsigned long) 1548 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1549 int AfxLoadString(unsigned int,char *,unsigned int) 1550 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1551 void AfxLockGlobals(int) 1552 void AfxLockTempMaps(void) 1553 CHandleMap * afxMapHDC(int) 1554 CHandleMap * afxMapHGDIOBJ(int) 1555 CHandleMap * afxMapHIMAGELIST(int) 1556 CHandleMap * afxMapHMENU(int) 1557 CHandleMap * afxMapHWND(int) 1558 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1559 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1560 int AfxMessageBox(char const *,unsigned int,unsigned int) 1561 int AfxNewHandler(unsigned int) 1562 int AfxOleCanExitApp(void) 1563 COleMessageFilter * AfxOleGetMessageFilter(void) 1564 int AfxOleGetUserCtrl(void) 1565 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1566 int AfxOleInit(void) 1567 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1568 void AfxOleLockApp(void) 1569 int AfxOleLockControl(_GUID const &) 1570 int AfxOleLockControl(char const *) 1571 void AfxOleOnReleaseAllObjects(void) 1572 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,char const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1573 int AfxOleRegisterHelper(char const * const *,char const * const *,int,int,HKEY__ *) 1574 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1575 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1576 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *) 1577 int AfxOleRegisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *,int,char const *,char const *) 1578 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,char const *,char const *) 1579 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1580 void AfxOleSetUserCtrl(int) 1581 void AfxOleTerm(int) 1582 void AfxOleTermOrFreeLib(int,int) 1583 void AfxOleUnlockAllControls(void) 1584 void AfxOleUnlockApp(void) 1585 int AfxOleUnlockControl(_GUID const &) 1586 int AfxOleUnlockControl(char const *) 1587 int AfxOleUnregisterClass(_GUID const &,char const *) 1588 int AfxOleUnregisterHelper(char const * const *,char const * const *,int,HKEY__ *) 1589 int AfxOleUnregisterServerClass(_GUID const &,char const *,char const *,char const *,enum OLE_APPTYPE,char const * *,char const * *) 1590 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1591 int AfxParseURL(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1592 int AfxParseURLEx(char const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1593 void AfxPostQuitMessage(int) 1594 int AfxPreTranslateMessage(tagMSG *) 1595 long AfxProcessWndProcException(CException *,tagMSG const *) 1596 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEA *) 1597 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1598 int AfxPumpMessage(void) 1599 unsigned int AfxReadStringLength(CArchive &,int &) 1600 int AfxRegisterClass(tagWNDCLASSA *) 1601 int AfxRegisterSiteFactory(IControlSiteFactory *) 1602 char const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1603 void AfxReleaseActCtx(void *) 1604 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1605 void AfxResetMsgCache(void) 1606 int AfxResolveShortcut(CWnd *,char const *,char *,int) 1607 void AfxRFXBulkDefault(CFieldExchange *,char const *,void *,long *,int,unsigned long) 1608 void AfxSafeArrayInit(COleSafeArray *) 1609 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1610 void AfxSetAllocStop(long) 1611 void AfxSetAmbientActCtx(int) 1612 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 1613 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 1614 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1615 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 1616 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1617 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1618 void AfxSetResourceHandle(HINSTANCE__ *) 1619 void AfxSetWindowText(HWND__ *,char const *) 1620 void AfxSocketTerm(void) 1621 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1622 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1623 void AfxStoreField(CRecordset &,unsigned int,void *) 1624 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1625 wchar_t * AfxTaskStringA2W(char const *) 1626 char * AfxTaskStringW2A(wchar_t const *) 1627 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1628 void AfxTermLocalData(HINSTANCE__ *,int) 1629 void AfxTermThread(HINSTANCE__ *) 1630 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1631 tagTEXTMETRICW * AfxTextMetricA2W(tagTEXTMETRICW *,tagTEXTMETRICA *) 1632 tagTEXTMETRICA * AfxTextMetricW2A(tagTEXTMETRICA *,tagTEXTMETRICW *) 1633 void AfxThrowArchiveException(int,char const *) 1634 void AfxThrowDaoException(int,long) 1635 void AfxThrowDBException(short,CDatabase *,void *) 1636 void AfxThrowFileException(int,long,char const *) 1637 void AfxThrowInternetException(unsigned long,unsigned long) 1638 void AfxThrowInvalidArgException(void) 1639 void AfxThrowLastCleanup(void) 1640 void AfxThrowMemoryException(void) 1641 void AfxThrowNotSupportedException(void) 1642 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1643 void AfxThrowOleDispatchException(unsigned short,char const *,unsigned int) 1644 void AfxThrowOleException(long) 1645 void AfxThrowResourceException(void) 1646 void AfxThrowUserException(void) 1647 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1648 void AfxTlsAddRef(void) 1649 void AfxTlsRelease(void) 1650 void AfxTrace(char const *,...) 1651 int afxTraceEnabled 1652 unsigned int afxTraceFlags 1653 void AfxTrackerTerm(void) 1654 void AfxTryCleanup(void) 1655 int AfxUnhookWindowCreate(void) 1656 void AfxUnlockGlobals(int) 1657 int AfxUnlockTempMaps(int) 1658 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1659 int AfxUnregisterSiteFactory(IControlSiteFactory *) 1660 void AfxUnregisterWndClasses(void) 1661 void AfxVariantInit(tagVARIANT *) 1662 int AfxVerifyLicFile(HINSTANCE__ *,char const *,wchar_t const *,unsigned int) 1663 char * AfxW2AHelper(char *,wchar_t const *,int) 1664 void AfxWingdixTerm(void) 1665 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1666 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,char *,int) 1667 void AfxWinTerm(void) 1668 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1669 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1670 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1671 void AfxWriteStringLength(CArchive &,unsigned int,int) 1672 void * CFixedAlloc::Alloc(void) 1673 void * CFixedAllocNoSync::Alloc(void) 1674 unsigned char * CMemFile::Alloc(unsigned long) 1675 unsigned char * CSharedFile::Alloc(unsigned long) 1676 void CRecordset::AllocAndCacheFieldInfo(void) 1677 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1678 void CDaoRecordset::AllocCache(void) 1679 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 1680 void CDatabase::AllocConnect(unsigned long) 1681 void COleSafeArray::AllocData(void) 1682 void CDaoRecordset::AllocDatabase(void) 1683 void CRecordset::AllocDataCache(void) 1684 void COleSafeArray::AllocDescriptor(unsigned long) 1685 int CControlBar::AllocElements(int,int) 1686 int CStatusBar::AllocElements(int,int) 1687 int CRecordset::AllocHstmt(void) 1688 void AllocLongBinary(CLongBinary &,unsigned long) 1689 void CPropertyPage::AllocPSP(unsigned long) 1690 void CRecordset::AllocRowset(void) 1691 int CThreadSlotData::AllocSlot(void) 1692 void CRecordset::AllocStatusArrays(void) 1693 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1694 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1695 void * CProperty::AllocValue(unsigned long) 1696 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1697 short COleControl::AmbientAppearance(void) 1698 unsigned long COleControl::AmbientBackColor(void) 1699 ATL::CStringT > > COleControl::AmbientDisplayName(void) 1700 IFontDisp * COleControl::AmbientFont(void) 1701 unsigned long COleControl::AmbientForeColor(void) 1702 unsigned long COleControl::AmbientLocaleID(void) 1703 ATL::CStringT > > COleControl::AmbientScaleUnits(void) 1704 int COleControl::AmbientShowGrabHandles(void) 1705 int COleControl::AmbientShowHatching(void) 1706 short COleControl::AmbientTextAlign(void) 1707 int COleControl::AmbientUIDead(void) 1708 int COleControl::AmbientUserMode(void) 1709 int CDC::AngleArc(int,int,int,float,float) 1710 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1711 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1712 void ATL::CSimpleStringT::Append(wchar_t const *) 1713 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1714 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1715 void ATL::CSimpleStringT::Append(char const *) 1716 void ATL::CSimpleStringT::Append(char const *,int) 1717 int CByteArray::Append(CByteArray const &) 1718 void CDaoQueryDef::Append(void) 1719 void CDaoTableDef::Append(void) 1720 void CDaoWorkspace::Append(void) 1721 int CDWordArray::Append(CDWordArray const &) 1722 int CObArray::Append(CObArray const &) 1723 int CPtrArray::Append(CPtrArray const &) 1724 int CStringArray::Append(CStringArray const &) 1725 int CUIntArray::Append(CUIntArray const &) 1726 int CWordArray::Append(CWordArray const &) 1727 void ATL::CSimpleStringT::AppendChar(wchar_t) 1728 void ATL::CSimpleStringT::AppendChar(char) 1729 void CRecordset::AppendFilterAndSortSQL(void) 1730 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1731 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1732 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1733 void ATL::CStringT > >::AppendFormat(char const *,...) 1734 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1735 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1736 int CMenu::AppendMenuA(unsigned int,unsigned int,char const *) 1737 int CMenu::AppendMenuA(unsigned int,unsigned int,CBitmap const *) 1738 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,char const *) 1739 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,char const *) 1740 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 1741 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,char const *) 1742 long COlePropertyPage::XPropertyPage::Apply(void) 1743 void CFileDialog::ApplyOFNToShellDialog(void) 1744 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1745 int COleDocument::ApplyPrintDevice(tagPDA const *) 1746 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1747 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1748 int CDC::Arc(int,int,int,int,int,int,int,int) 1749 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1750 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1751 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1752 int CListCtrl::Arrange(unsigned int) 1753 unsigned int CWnd::ArrangeIconicWindows(void) 1754 void CAsyncMonikerFile::AssertValid(void)const 1755 void CAsyncSocket::AssertValid(void)const 1756 void CBitmapButton::AssertValid(void)const 1757 void CByteArray::AssertValid(void)const 1758 void CCachedDataPathProperty::AssertValid(void)const 1759 void CClientDC::AssertValid(void)const 1760 void CCmdTarget::AssertValid(void)const 1761 void CControlBar::AssertValid(void)const 1762 void CCtrlView::AssertValid(void)const 1763 void CDaoDatabase::AssertValid(void)const 1764 void CDaoQueryDef::AssertValid(void)const 1765 void CDaoRecordset::AssertValid(void)const 1766 void CDaoRecordView::AssertValid(void)const 1767 void CDaoTableDef::AssertValid(void)const 1768 void CDaoWorkspace::AssertValid(void)const 1769 void CDatabase::AssertValid(void)const 1770 void CDataPathProperty::AssertValid(void)const 1771 void CDC::AssertValid(void)const 1772 void CDialog::AssertValid(void)const 1773 void CDocItem::AssertValid(void)const 1774 void CDockBar::AssertValid(void)const 1775 void CDocManager::AssertValid(void)const 1776 void CDocObjectServer::AssertValid(void)const 1777 void CDocObjectServerItem::AssertValid(void)const 1778 void CDocTemplate::AssertValid(void)const 1779 void CDocument::AssertValid(void)const 1780 void CDWordArray::AssertValid(void)const 1781 void CDynLinkLibrary::AssertValid(void)const 1782 void CEditView::AssertValid(void)const 1783 void CFile::AssertValid(void)const 1784 void CFileFind::AssertValid(void)const 1785 void CFormView::AssertValid(void)const 1786 void CFrameWnd::AssertValid(void)const 1787 void CFtpConnection::AssertValid(void)const 1788 void CFtpFileFind::AssertValid(void)const 1789 void CGdiObject::AssertValid(void)const 1790 void CGopherConnection::AssertValid(void)const 1791 void CGopherFile::AssertValid(void)const 1792 void CGopherFileFind::AssertValid(void)const 1793 void CHtmlEditDoc::AssertValid(void)const 1794 void CHtmlEditView::AssertValid(void)const 1795 void CHtmlView::AssertValid(void)const 1796 void CHttpConnection::AssertValid(void)const 1797 void CHttpFile::AssertValid(void)const 1798 void CImageList::AssertValid(void)const 1799 void CInternetConnection::AssertValid(void)const 1800 void CInternetFile::AssertValid(void)const 1801 void CLongBinary::AssertValid(void)const 1802 void CMapPtrToPtr::AssertValid(void)const 1803 void CMapPtrToWord::AssertValid(void)const 1804 void CMapStringToOb::AssertValid(void)const 1805 void CMapStringToPtr::AssertValid(void)const 1806 void CMapStringToString::AssertValid(void)const 1807 void CMapWordToOb::AssertValid(void)const 1808 void CMapWordToPtr::AssertValid(void)const 1809 void CMDIChildWnd::AssertValid(void)const 1810 void CMDIFrameWnd::AssertValid(void)const 1811 void CMemFile::AssertValid(void)const 1812 void CMenu::AssertValid(void)const 1813 void CMonikerFile::AssertValid(void)const 1814 void CMultiDocTemplate::AssertValid(void)const 1815 void CObArray::AssertValid(void)const 1816 void CObject::AssertValid(void)const 1817 void CObList::AssertValid(void)const 1818 void COleChangeSourceDialog::AssertValid(void)const 1819 void COleClientItem::AssertValid(void)const 1820 void COleCntrFrameWnd::AssertValid(void)const 1821 void COleControl::AssertValid(void)const 1822 void COleDataSource::AssertValid(void)const 1823 void COleDocIPFrameWnd::AssertValid(void)const 1824 void COleDocument::AssertValid(void)const 1825 void COleDropTarget::AssertValid(void)const 1826 void COleIPFrameWnd::AssertValid(void)const 1827 void COleLinkingDoc::AssertValid(void)const 1828 void COleLinksDialog::AssertValid(void)const 1829 void COleMessageFilter::AssertValid(void)const 1830 void COleObjectFactory::AssertValid(void)const 1831 void COlePasteSpecialDialog::AssertValid(void)const 1832 void COlePropertiesDialog::AssertValid(void)const 1833 void COleServerDoc::AssertValid(void)const 1834 void COleServerItem::AssertValid(void)const 1835 void COleStreamFile::AssertValid(void)const 1836 void CPaintDC::AssertValid(void)const 1837 void CPreviewDC::AssertValid(void)const 1838 void CPreviewView::AssertValid(void)const 1839 void CPropertyPage::AssertValid(void)const 1840 void CPropertySheet::AssertValid(void)const 1841 void CPtrArray::AssertValid(void)const 1842 void CPtrList::AssertValid(void)const 1843 void CRecordset::AssertValid(void)const 1844 void CRecordView::AssertValid(void)const 1845 void CRichEditCntrItem::AssertValid(void)const 1846 void CRichEditDoc::AssertValid(void)const 1847 void CRichEditView::AssertValid(void)const 1848 void CScrollView::AssertValid(void)const 1849 void CSingleDocTemplate::AssertValid(void)const 1850 void CSocket::AssertValid(void)const 1851 void CSocketFile::AssertValid(void)const 1852 void CSplitterWnd::AssertValid(void)const 1853 void CStatusBar::AssertValid(void)const 1854 void CStringArray::AssertValid(void)const 1855 void CStringList::AssertValid(void)const 1856 void CSyncObject::AssertValid(void)const 1857 void CToolBar::AssertValid(void)const 1858 void CUIntArray::AssertValid(void)const 1859 void CView::AssertValid(void)const 1860 void CWinApp::AssertValid(void)const 1861 void CWindowDC::AssertValid(void)const 1862 void CWinThread::AssertValid(void)const 1863 void CWnd::AssertValid(void)const 1864 void CWordArray::AssertValid(void)const 1865 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1866 int CAsyncSocket::AsyncSelect(long) 1867 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1868 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1869 int CAsyncSocket::Attach(unsigned int,long) 1870 int CDC::Attach(HDC__ *) 1871 int CGdiObject::Attach(void *) 1872 int CImageList::Attach(_IMAGELIST *) 1873 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1874 int CMenu::Attach(HMENU__ *) 1875 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1876 int CMonikerFile::Attach(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1877 void COleDataObject::Attach(IDataObject *,int) 1878 void COleSafeArray::Attach(tagVARIANT &) 1879 void COleStreamFile::Attach(IStream *) 1880 void COleVariant::Attach(tagVARIANT &) 1881 int CSocket::Attach(unsigned int) 1882 int CWnd::Attach(HWND__ *) 1883 int COleDataObject::AttachClipboard(void) 1884 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1885 void CWnd::AttachControlSite(CHandleMap *) 1886 void CWnd::AttachControlSite(CWnd *,unsigned int) 1887 void COleClientItem::AttachDataObject(COleDataObject &)const 1888 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1889 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1890 CPrintDialog * CPrintDialog::AttachOnSetup(void) 1891 void COleControlSite::AttachWindow(void) 1892 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1893 void CToolBarCtrl::AutoSize(void) 1894 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1895 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1896 void COleMessageFilter::BeginBusyState(void) 1897 void COleLinkingDoc::BeginDeferErrors(void) 1898 int CDragListBox::BeginDrag(CPoint) 1899 int CImageList::BeginDrag(int,CPoint) 1900 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1901 void COleDataObject::BeginEnumFormats(void) 1902 void CFrameWnd::BeginModalState(void) 1903 void CWnd::BeginModalState(void) 1904 CDC * CWnd::BeginPaint(tagPAINT*) 1905 int CDC::BeginPath(void) 1906 void CDaoWorkspace::BeginTrans(void) 1907 int CDatabase::BeginTrans(void) 1908 void CCmdTarget::BeginWaitCursor(void) 1909 int CAsyncSocket::Bind(unsigned int,char const *) 1910 int CAsyncSocket::Bind(sockaddr const *,int) 1911 void CDataSourceControl::BindColumns(void) 1912 void COccManager::BindControls(CWnd *) 1913 void COleControlSite::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1914 void CWnd::BindDefaultProperty(long,unsigned short,char const *,CWnd *) 1915 void CDaoRecordset::BindFields(void) 1916 void CRecordset::BindFieldsForUpdate(void) 1917 unsigned int CRecordset::BindFieldsToColumns(void) 1918 void CDaoRecordset::BindParameters(void) 1919 void CDatabase::BindParameters(void *) 1920 unsigned int CRecordset::BindParams(void *) 1921 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1922 void CDataSourceControl::BindProp(COleControlSite *,int) 1923 void COleControlSite::BindProperty(long,CWnd *) 1924 void CWnd::BindProperty(long,CWnd *) 1925 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1926 void COleControl::BoundPropertyChanged(long) 1927 int COleControl::BoundPropertyRequestEdit(long) 1928 void CFrameWnd::BringToTop(int) 1929 void CWnd::BringWindowToTop(void) 1930 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1931 void CDBException::BuildErrorString(CDatabase *,void *,int) 1932 void CDaoRecordset::BuildParameterList(void) 1933 void CPropertySheet::BuildPropPageArray(void) 1934 void CDaoRecordset::BuildSelectList(void) 1935 void CRecordset::BuildSelectSQL(void) 1936 int COleControl::BuildSharedMenu(void) 1937 int COleDocIPFrameWnd::BuildSharedMenu(void) 1938 int COleIPFrameWnd::BuildSharedMenu(void) 1939 void CDaoRecordset::BuildSQL(void) 1940 void CRecordset::BuildSQL(char const *) 1941 void CRecordset::BuildUpdateSQL(void) 1942 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1943 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1944 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1945 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1946 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1947 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1948 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1949 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1950 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1951 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1952 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1953 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1954 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1955 CSize CControlBar::CalcFixedLayout(int,int) 1956 CSize CDialogBar::CalcFixedLayout(int,int) 1957 CSize CDockBar::CalcFixedLayout(int,int) 1958 CSize CReBar::CalcFixedLayout(int,int) 1959 CSize CStatusBar::CalcFixedLayout(int,int) 1960 CSize CToolBar::CalcFixedLayout(int,int) 1961 void CControlBar::CalcInsideRect(CRect &,int)const 1962 void CStatusBar::CalcInsideRect(CRect &,int)const 1963 CSize CToolBar::CalcLayout(unsigned long,int) 1964 int CCheckListBox::CalcMinimumItemHeight(void) 1965 CSize CPreviewView::CalcPageDisplaySize(void) 1966 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1967 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1968 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1969 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1970 void CView::CalcWindowRect(tagRECT *,unsigned int) 1971 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1972 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1973 int CDHtmlDialog::CanAccessExternal(void) 1974 int COleClientItem::CanActivate(void) 1975 int CRichEditCntrItem::CanActivate(void) 1976 int CSplitterWnd::CanActivateNext(int) 1977 int CDaoRecordset::CanAppend(void)const 1978 int CRecordset::CanAppend(void)const 1979 int CDaoRecordset::CanBookmark(void) 1980 int CRecordset::CanBookmark(void)const 1981 void CDatabase::Cancel(void) 1982 void CRecordset::Cancel(void) 1983 void CSocket::CancelBlockingCall(void) 1984 void CDragListBox::CancelDrag(CPoint) 1985 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1986 long COleUILinkInfo::CancelLink(unsigned long) 1987 void CDockContext::CancelLoop(void) 1988 void CPropertyPage::CancelToClose(void) 1989 void CWnd::CancelToolTips(int) 1990 void CDaoRecordset::CancelUpdate(void) 1991 void CRecordset::CancelUpdate(void) 1992 int CDocument::CanCloseFrame(CFrameWnd *) 1993 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1994 int COleClientItem::CanCreateFromData(COleDataObject const *) 1995 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1996 unsigned long CDockContext::CanDock(void) 1997 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1998 int CFrameWnd::CanEnterHelpMode(void) 1999 long COleClientItem::XOleIPSite::CanInPlaceActivate(void) 2000 long COleControlSite::XOleIPSite::CanInPlaceActivate(void) 2001 int COleClientItem::CanPaste(void) 2002 int CRichEditCtrl::CanPaste(unsigned int)const 2003 int CRichEditView::CanPaste(void)const 2004 int COleClientItem::CanPasteLink(void) 2005 int CRichEditCtrl::CanRedo(void)const 2006 int CDaoRecordset::CanRestart(void) 2007 int CRecordset::CanRestart(void)const 2008 int CDaoRecordset::CanScroll(void)const 2009 int CRecordset::CanScroll(void)const 2010 int CDaoDatabase::CanTransact(void) 2011 int CDaoRecordset::CanTransact(void) 2012 int CDatabase::CanTransact(void)const 2013 int CRecordset::CanTransact(void)const 2014 int CEdit::CanUndo(void)const 2015 int CRichEditCtrl::CanUndo(void)const 2016 int CDaoDatabase::CanUpdate(void) 2017 int CDaoQueryDef::CanUpdate(void) 2018 int CDaoRecordset::CanUpdate(void)const 2019 int CDaoTableDef::CanUpdate(void) 2020 int CDatabase::CanUpdate(void)const 2021 int CRecordset::CanUpdate(void)const 2022 long COleControlSite::XOleIPSite::CanWindowlessActivate(void) 2023 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 2024 void CScrollView::CenterOnPoint(CPoint) 2025 void CWnd::CenterWindow(CWnd *) 2026 int CToolBarCtrl::ChangeBitmap(int,int) 2027 int CWnd::ChangeClipboardChain(HWND__ *) 2028 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 2029 int CEdit::CharFromPos(CPoint)const 2030 int CRichEditCtrl::CharFromPos(CPoint)const 2031 int CListBox::CharToItem(unsigned int,unsigned int) 2032 void ATL::CStringT > >::CharToOemA(void) 2033 int CDatabase::Check(short)const 2034 int CRecordset::Check(short)const 2035 int CDialog::CheckAutoCenter(void) 2036 int CWnd::CheckAutoCenter(void) 2037 int CToolBarCtrl::CheckButton(int,int) 2038 void CArchive::CheckCount(void) 2039 void COleControlContainer::CheckDlgButton(int,unsigned int) 2040 void CWnd::CheckDlgButton(int,unsigned int) 2041 int CCheckListBox::CheckFromPoint(CPoint,int &) 2042 void COleClientItem::CheckGeneral(long) 2043 int CDatabase::CheckHstmt(short,void *)const 2044 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 2045 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 2046 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 2047 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 2048 void CMemoryState::Checkpoint(void) 2049 void COleControlContainer::CheckRadioButton(int,int,int) 2050 void CWnd::CheckRadioButton(int,int,int) 2051 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 2052 void CRecordset::CheckRowsetError(short) 2053 void CScrollView::CheckScrollBars(int &,int &)const 2054 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 2055 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 2056 int CDC::Chord(int,int,int,int,int,int,int,int) 2057 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 2058 CRuntimeconst CDaoDatabase::classCDaoDatabase 2059 CRuntimeconst CDaoException::classCDaoException 2060 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 2061 CRuntimeconst CDaoRecordset::classCDaoRecordset 2062 CRuntimeconst CDaoRecordView::classCDaoRecordView 2063 CRuntimeconst CDaoTableDef::classCDaoTableDef 2064 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 2065 CRuntimeconst CDatabase::classCDatabase 2066 CRuntimeconst CDBException::classCDBException 2067 CRuntimeconst CLongBinary::classCLongBinary 2068 CRuntimeconst COleDBRecordView::classCOleDBRecordView 2069 CRuntimeconst CRecordset::classCRecordset 2070 CRuntimeconst CRecordView::classCRecordView 2071 void CPropertyPage::Cleanup(void) 2072 void COlePropertyPage::CleanupObjectArray(void) 2073 void CComboBox::Clear(void) 2074 void CDBVariant::Clear(void) 2075 void CDockState::Clear(void) 2076 void CEdit::Clear(void) 2077 void COleSafeArray::Clear(void) 2078 void COleVariant::Clear(void) 2079 void CRichEditCtrl::Clear(void) 2080 void CIPAddressCtrl::ClearAddress(void) 2081 int CHeaderCtrl::ClearAllFilters(void) 2082 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 2083 void CRecordset::ClearDirtyFieldStatus(unsigned long) 2084 void CRecordset::ClearFieldStatus(void) 2085 void CDaoRecordset::ClearFieldStatusFlags(void) 2086 int CHeaderCtrl::ClearFilter(int) 2087 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 2088 void CRecordset::ClearNullFieldStatus(unsigned long) 2089 void CRecordset::ClearNullParamStatus(unsigned long) 2090 void CSliderCtrl::ClearSel(int) 2091 void CSliderCtrl::ClearTics(int) 2092 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 2093 void CWnd::ClientToScreen(tagPOINT *)const 2094 void CWnd::ClientToScreen(tagRECT *)const 2095 int COleControl::ClipCaretRect(tagRECT *) 2096 void CPreviewDC::ClipToPage(void) 2097 ATL::IAtlStringMgr * CAfxStringMgr::Clone(void) 2098 long CArchiveStream::Clone(IStream * *) 2099 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 2100 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 2101 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 2102 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 2103 int CAnimateCtrl::Close(void) 2104 void CArchive::Close(void) 2105 void CAsyncMonikerFile::Close(void) 2106 void CAsyncSocket::Close(void) 2107 void CCachedDataPathProperty::Close(void) 2108 void CDaoDatabase::Close(void) 2109 void CDaoQueryDef::Close(void) 2110 void CDaoRecordset::Close(void) 2111 void CDaoTableDef::Close(void) 2112 void CDaoWorkspace::Close(void) 2113 void CDatabase::Close(void) 2114 void CFile::Close(void) 2115 void CFileFind::Close(void) 2116 void CInternetConnection::Close(void) 2117 void CInternetFile::Close(void) 2118 void CInternetSession::Close(void) 2119 void CMemFile::Close(void) 2120 HMETAFILE__ * CMetaFileDC::Close(void) 2121 void CMirrorFile::Close(void) 2122 void CMonikerFile::Close(void) 2123 void COleClientItem::Close(enum tagOLECLOSE) 2124 void COleStreamFile::Close(void) 2125 void CRecordset::Close(void) 2126 void CSocket::Close(void) 2127 void CSocketFile::Close(void) 2128 void CStdioFile::Close(void) 2129 long CDocObjectServer::XOleObject::Close(unsigned long) 2130 long COleControl::XOleObject::Close(unsigned long) 2131 long COleServerDoc::XOleObject::Close(unsigned long) 2132 long COleServerItem::XOleObject::Close(unsigned long) 2133 void CDocManager::CloseAllDocuments(int) 2134 void CDocTemplate::CloseAllDocuments(int) 2135 void CWinApp::CloseAllDocuments(int) 2136 void CFileFind::CloseContext(void) 2137 void CFtpFileFind::CloseContext(void) 2138 void CGopherFileFind::CloseContext(void) 2139 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced(void) 2140 int CDC::CloseFigure(void) 2141 long CThemeHelper::CloseThemeData(void *) 2142 long CThemeHelper::CloseThemeDataFail(void *) 2143 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2144 void CWnd::CloseWindow(void) 2145 int ATL::CStringT > >::Collate(wchar_t const *)const 2146 int ATL::CStringT > >::Collate(char const *)const 2147 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 2148 int ATL::CStringT > >::CollateNoCase(char const *)const 2149 int CRgn::CombineRgn(CRgn const *,CRgn const *,int) 2150 CInternetFile * CFtpConnection::Command(char const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 2151 int CStatusBar::CommandToIndex(unsigned int)const 2152 int CToolBar::CommandToIndex(unsigned int)const 2153 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 2154 long CArchiveStream::Commit(unsigned long) 2155 void COleClientItem::CommitItem(int) 2156 void COleDocument::CommitItems(int,IStorage *) 2157 void CDaoWorkspace::CommitTrans(void) 2158 int CDatabase::CommitTrans(void) 2159 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,char const *) 2160 void CPropertyPage::CommonConstruct(char const *,unsigned int) 2161 void CPropertyPage::CommonConstruct(char const *,unsigned int,unsigned int,unsigned int) 2162 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2163 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2164 void CWinThread::CommonConstruct(void) 2165 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int) 2166 void CDaoWorkspace::CompactDatabase(char const *,char const *,char const *,int,char const *) 2167 int ATL::CStringT > >::Compare(wchar_t const *)const 2168 int ATL::CStringT > >::Compare(char const *)const 2169 int CComboBox::CompareItem(tagCOMPAREITEM*) 2170 int CListBox::CompareItem(tagCOMPAREITEM*) 2171 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 2172 int ATL::CStringT > >::CompareNoCase(char const *)const 2173 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 2174 CSize CPreviewDC::ComputeDeltas(int &,char const *,unsigned int &,int,unsigned int,int *,int,char *,int *,int &) 2175 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 2176 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 2177 int CAsyncSocket::Connect(char const *,unsigned int) 2178 int CAsyncSocket::Connect(sockaddr const *,int) 2179 int CDatabase::Connect(unsigned long) 2180 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 2181 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 2182 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2183 int CSocket::ConnectHelper(sockaddr const *,int) 2184 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2185 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2186 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 2187 long CDHtmlControlSink::ConnectToControl(IUnknown *) 2188 void COleServerDoc::ConnectView(CWnd *,CView *) 2189 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2190 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2191 void CPropertyPage::Construct(unsigned int,unsigned int) 2192 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 2193 void CPropertyPage::Construct(char const *,unsigned int) 2194 void CPropertyPage::Construct(char const *,unsigned int,unsigned int,unsigned int) 2195 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2196 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2197 void CPropertySheet::Construct(char const *,CWnd *,unsigned int) 2198 void CPropertySheet::Construct(char const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2199 void CRectTracker::Construct(void) 2200 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2201 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2202 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2203 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2204 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2205 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2206 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2207 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2208 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2209 int CPropertySheet::ContinueModal(void) 2210 int CWnd::ContinueModal(void) 2211 void CCmdUI::ContinueRouting(void) 2212 void COleControl::ControlInfoChanged(void) 2213 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2214 int COleClientItem::ConvertTo(_GUID const &) 2215 int CRichEditCntrItem::ConvertTo(_GUID const &) 2216 void CByteArray::Copy(CByteArray const &) 2217 void CComboBox::Copy(void) 2218 void CDWordArray::Copy(CDWordArray const &) 2219 void CEdit::Copy(void) 2220 int CImageList::Copy(int,int,unsigned int) 2221 int CImageList::Copy(int,CImageList *,int,unsigned int) 2222 void CObArray::Copy(CObArray const &) 2223 void COleSafeArray::Copy(tagSAFEARRAY * *) 2224 void CPtrArray::Copy(CPtrArray const &) 2225 void CRichEditCtrl::Copy(void) 2226 void CStringArray::Copy(CStringArray const &) 2227 void CUIntArray::Copy(CUIntArray const &) 2228 void CWordArray::Copy(CWordArray const &) 2229 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 2230 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 2231 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 2232 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 2233 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2234 int CRgn::CopyRgn(CRgn const *) 2235 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2236 void COleClientItem::CopyToClipboard(int) 2237 void COleServerItem::CopyToClipboard(int) 2238 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 2239 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2240 int CAsyncSocket::Create(unsigned int,int,long,char const *) 2241 int CButton::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2242 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2243 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2244 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2245 int CControlFrameWnd::Create(char const *) 2246 void CDaoDatabase::Create(char const *,char const *,int) 2247 void CDaoQueryDef::Create(char const *,char const *) 2248 void CDaoTableDef::Create(char const *,long,char const *,char const *) 2249 void CDaoWorkspace::Create(char const *,char const *,char const *) 2250 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2251 int CDialog::Create(unsigned int,CWnd *) 2252 int CDialog::Create(char const *,CWnd *) 2253 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 2254 int CDialogBar::Create(CWnd *,char const *,unsigned int,unsigned int) 2255 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2256 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2257 int CFindReplaceDialog::Create(int,char const *,char const *,unsigned long,CWnd *) 2258 int CFormView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2259 int CFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,char const *,unsigned long,CCreateContext *) 2260 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2261 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2262 int CHtmlEditCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 2263 int CHtmlEditView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2264 int CHtmlView::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2265 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2266 int CImageList::Create(int,int,unsigned int,int,int) 2267 int CImageList::Create(unsigned int,int,int,unsigned long) 2268 int CImageList::Create(CImageList *) 2269 int CImageList::Create(char const *,int,int,unsigned long) 2270 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2271 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2272 int CLinkCtrl::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2273 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2274 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2275 int CMDIChildWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2276 int CMetaFileDC::Create(char const *) 2277 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2278 int CMiniFrameWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2279 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 2280 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2281 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2282 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2283 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2284 int CPagerCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2285 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2286 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2287 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2288 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 2289 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2290 int CReflectorWnd::Create(CRect const &,HWND__ *) 2291 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2292 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2293 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2294 int CSocket::Create(unsigned int,int,char const *) 2295 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2296 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2297 int CStatic::Create(char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2298 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2299 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2300 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2301 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2302 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2303 int CToolTipCtrl::Create(CWnd *,unsigned long) 2304 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2305 int CWnd::Create(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2306 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2307 void AFX_MODULE_STATE::CreateActivationContext(void) 2308 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2309 IBindHost * CMonikerFile::CreateBindHost(void) 2310 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2311 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2312 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2313 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2314 void CWnd::CreateCaret(CBitmap *) 2315 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTA *,CMenu *) 2316 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2317 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2318 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2319 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2320 int CDC::CreateCompatibleDC(CDC *) 2321 void CConnectionPoint::CreateConnectionArray(void) 2322 COleControlContainer * COccManager::CreateContainer(CWnd *) 2323 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2324 int COleControlContainer::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2325 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 2326 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 2327 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2328 long COleControlSite::CreateControl(CWnd *,_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2329 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2330 int CWnd::CreateControl(_GUID const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2331 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 2332 int CWnd::CreateControl(char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2333 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2334 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,char const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2335 int CWnd::CreateControlContainer(COleControlContainer * *) 2336 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2337 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2338 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2339 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2340 int CDC::CreateDCA(char const *,char const *,char const *,void const *) 2341 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2342 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2343 int CFtpConnection::CreateDirectory(char const *) 2344 int CFtpConnection::CreateDirectoryA(char const *) 2345 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2346 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2347 int COleDispatchDriver::CreateDispatch(char const *,COleException *) 2348 int CWnd::CreateDlg(char const *,CWnd *) 2349 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2350 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2351 int COccManager::CreateDlgControls(CWnd *,char const *,_AFX_OCC_DIALOG_INFO *) 2352 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2353 CImageList * CHeaderCtrl::CreateDragImage(int) 2354 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2355 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2356 int CRgn::CreateEllipticRgn(int,int,int,int) 2357 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2358 int CPictureHolder::CreateEmpty(void) 2359 int CMetaFileDC::CreateEnhanced(CDC *,char const *,tagRECT const *,char const *) 2360 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2361 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2362 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2363 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2364 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2365 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2366 int CLinkCtrl::CreateEx(char const *,unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2367 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2368 int CMiniFrameWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2369 int CPagerCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2370 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2371 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2372 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2373 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2374 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2375 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2376 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2377 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2378 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2379 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2380 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2381 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2382 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2383 int CWnd::CreateEx(unsigned long,char const *,char const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2384 void CDaoTableDef::CreateField(CDaoFieldInfo &) 2385 void CDaoTableDef::CreateField(char const *,short,long,long) 2386 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2387 int CFont::CreateFontA(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,char const *) 2388 int CFont::CreateFontIndirectA(tagLOGFONTA const *) 2389 CControlFrameWnd * COleControl::CreateFrameWindow(void) 2390 int CPictureHolder::CreateFromBitmap(unsigned int) 2391 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2392 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2393 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2394 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2395 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2396 int COleClientItem::CreateFromFile(char const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2397 int CPictureHolder::CreateFromIcon(unsigned int) 2398 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2399 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2400 int CRgn::CreateFromPath(CDC *) 2401 void CWnd::CreateGrayCaret(int,int) 2402 int CPalette::CreateHalftonePalette(CDC *) 2403 int CBrush::CreateHatchBrush(int,unsigned long) 2404 int CDC::CreateICA(char const *,char const *,char const *,void const *) 2405 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 2406 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2407 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2408 int CDialog::CreateIndirect(void *,CWnd *) 2409 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2410 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2411 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2412 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2413 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2414 int COleInsertDialog::CreateItem(COleClientItem *) 2415 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2416 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2417 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2418 int COleClientItem::CreateLinkFromFile(char const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2419 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,unsigned long) 2420 CGopherLocator CGopherConnection::CreateLocator(char const *) 2421 CGopherLocator CGopherConnection::CreateLocator(char const *,char const *,char const *,unsigned long,unsigned short) 2422 int COleStreamFile::CreateMemoryStream(CFileException *) 2423 int CMenu::CreateMenu(void) 2424 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2425 CDocument * CDocTemplate::CreateNewDocument(void) 2426 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2427 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2428 CObject * CByteArray::CreateObject(void) 2429 CObject * CDC::CreateObject(void) 2430 CObject * CDocItem::CreateObject(void) 2431 CObject * CDockState::CreateObject(void) 2432 CObject * CDWordArray::CreateObject(void) 2433 CObject * CEditView::CreateObject(void) 2434 CObject * CFrameWnd::CreateObject(void) 2435 CObject * CGdiObject::CreateObject(void) 2436 CObject * CHtmlEditView::CreateObject(void) 2437 CObject * CHtmlView::CreateObject(void) 2438 CObject * CImageList::CreateObject(void) 2439 CObject * CListView::CreateObject(void) 2440 CObject * CMapStringToOb::CreateObject(void) 2441 CObject * CMapStringToString::CreateObject(void) 2442 CObject * CMapWordToOb::CreateObject(void) 2443 CObject * CMDIChildWnd::CreateObject(void) 2444 CObject * CMDIFrameWnd::CreateObject(void) 2445 CObject * CMenu::CreateObject(void) 2446 CObject * CMiniDockFrameWnd::CreateObject(void) 2447 CObject * CMiniFrameWnd::CreateObject(void) 2448 CObject * CObArray::CreateObject(void) 2449 CObject * CObList::CreateObject(void) 2450 CObject * COleDocIPFrameWnd::CreateObject(void) 2451 CObject * COleIPFrameWnd::CreateObject(void) 2452 CObject * CPreviewView::CreateObject(void) 2453 CObject * CRichEditCntrItem::CreateObject(void) 2454 CObject * CRichEditView::CreateObject(void) 2455 CObject * CRuntimeClass::CreateObject(void) 2456 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2457 CObject * CRuntimeClass::CreateObject(char const *) 2458 CObject * CStringArray::CreateObject(void) 2459 CObject * CStringList::CreateObject(void) 2460 CObject * CTreeView::CreateObject(void) 2461 CObject * CWnd::CreateObject(void) 2462 CObject * CWordArray::CreateObject(void) 2463 void COleControlContainer::CreateOleFont(CFont *) 2464 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2465 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2466 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2467 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 2468 int CPalette::CreatePalette(tagLOGPALETTE *) 2469 int CBrush::CreatePatternBrush(CBitmap *) 2470 int CPen::CreatePen(int,int,unsigned long) 2471 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2472 int CPen::CreatePenIndirect(tagLOGPEN *) 2473 int CFont::CreatePointFont(int,char const *,CDC *) 2474 int CFont::CreatePointFontIndirect(tagLOGFONTA const *,CDC *) 2475 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2476 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2477 int CMenu::CreatePopupMenu(void) 2478 HDC__ * CPageSetupDialog::CreatePrinterDC(void) 2479 HDC__ * CPrintDialog::CreatePrinterDC(void) 2480 HDC__ * CPrintDialogEx::CreatePrinterDC(void) 2481 int CWinApp::CreatePrinterDC(CDC &) 2482 int CRgn::CreateRectRgn(int,int,int,int) 2483 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2484 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 2485 void CDaoDatabase::CreateRelation(char const *,char const *,char const *,long,char const *,char const *) 2486 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2487 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2488 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 2489 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2490 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 2491 int CBrush::CreateSolidBrush(unsigned long) 2492 void CWnd::CreateSolidCaret(int,int) 2493 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2494 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2495 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2496 int CGdiObject::CreateStockObject(int) 2497 int COleStreamFile::CreateStream(IStorage *,char const *,unsigned long,CFileException *) 2498 int CBrush::CreateSysColorBrush(int) 2499 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2500 void COleControl::CreateTracker(int,int) 2501 void COleControl::CreateTracker(int,int,tagRECT const *) 2502 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2503 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2504 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2505 void COleControl::CreateWindowForSubclassedControl(void) 2506 void CToolBarCtrl::Customize(void) 2507 void CComboBox::Cut(void) 2508 void CEdit::Cut(void) 2509 void CRichEditCtrl::Cut(void) 2510 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2511 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2512 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2513 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2514 void DDP_CBIndex(CDataExchange *,int,int &,char const *) 2515 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2516 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2517 void DDP_Check(CDataExchange *,int,int &,char const *) 2518 void DDP_EndCheck(CDataExchange *,int,int *,char const *) 2519 void DDP_EndRadio(CDataExchange *,int,int *,char const *) 2520 void DDP_EndText(CDataExchange *,int,unsigned char *,char const *) 2521 void DDP_EndText(CDataExchange *,int,short *,char const *) 2522 void DDP_EndText(CDataExchange *,int,int *,char const *) 2523 void DDP_EndText(CDataExchange *,int,unsigned int *,char const *) 2524 void DDP_EndText(CDataExchange *,int,long *,char const *) 2525 void DDP_EndText(CDataExchange *,int,unsigned long *,char const *) 2526 void DDP_EndText(CDataExchange *,int,float *,char const *) 2527 void DDP_EndText(CDataExchange *,int,double *,char const *) 2528 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,char const *) 2529 void DDP_LBIndex(CDataExchange *,int,int &,char const *) 2530 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,char const *) 2531 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,char const *) 2532 void DDP_PostProcessing(CDataExchange *) 2533 void DDP_Radio(CDataExchange *,int,int &,char const *) 2534 void DDP_Text(CDataExchange *,int,unsigned char &,char const *) 2535 void DDP_Text(CDataExchange *,int,short &,char const *) 2536 void DDP_Text(CDataExchange *,int,int &,char const *) 2537 void DDP_Text(CDataExchange *,int,unsigned int &,char const *) 2538 void DDP_Text(CDataExchange *,int,long &,char const *) 2539 void DDP_Text(CDataExchange *,int,unsigned long &,char const *) 2540 void DDP_Text(CDataExchange *,int,float &,char const *) 2541 void DDP_Text(CDataExchange *,int,double &,char const *) 2542 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,char const *) 2543 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2544 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2545 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2546 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2547 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2548 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2549 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2550 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2551 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2552 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2553 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2554 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2555 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2556 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2557 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2558 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2559 void DDX_CBIndex(CDataExchange *,int,int &) 2560 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2561 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2562 void DDX_Check(CDataExchange *,int,int &) 2563 void DDX_Control(CDataExchange *,int,CWnd &) 2564 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2565 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2566 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2567 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2568 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2569 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2570 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,char const *,tagVARIANT &,int) 2571 void CDHtmlDialog::DDX_DHtml_AxControl(char const *,long,tagVARIANT &,int) 2572 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,char const *,tagVARIANT &) 2573 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,char const *,long,tagVARIANT &) 2574 void CDHtmlDialog::DDX_DHtml_CheckBox(char const *,int &,int) 2575 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,char const *,int &) 2576 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,short &,int) 2577 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,int &,int) 2578 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,long &,int) 2579 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,unsigned long &,int) 2580 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,float &,int) 2581 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,double &,int) 2582 void CDHtmlDialog::DDX_DHtml_ElementText(char const *,long,ATL::CStringT > > &,int) 2583 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,short &) 2584 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,int &) 2585 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,long &) 2586 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,unsigned long &) 2587 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,float &) 2588 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,double &) 2589 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,char const *,long,ATL::CStringT > > &) 2590 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(char const *,long,void *,double,int,int) 2591 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(char const *,long,char const *,unsigned int,int,...) 2592 void CDHtmlDialog::DDX_DHtml_Radio(char const *,long &,int) 2593 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,char const *,long &) 2594 void CDHtmlDialog::DDX_DHtml_SelectIndex(char const *,long &,int) 2595 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,char const *,long &) 2596 void CDHtmlDialog::DDX_DHtml_SelectString(char const *,ATL::CStringT > > &,int) 2597 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,char const *,ATL::CStringT > > &) 2598 void CDHtmlDialog::DDX_DHtml_SelectValue(char const *,ATL::CStringT > > &,int) 2599 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,char const *,ATL::CStringT > > &) 2600 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2601 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2602 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2603 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2604 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2605 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2606 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 2607 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2608 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2609 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2610 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2611 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2612 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2613 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2614 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 2615 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2616 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 2617 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2618 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 2619 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 2620 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2621 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 2622 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 2623 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2624 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2625 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 2626 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2627 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 2628 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2629 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 2630 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2631 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 2632 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2633 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2634 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2635 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 2636 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 2637 void DDX_FieldText(CDataExchange *,int,char *,int,CDaoRecordset *) 2638 void DDX_FieldText(CDataExchange *,int,char *,int,CRecordset *) 2639 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2640 void DDX_LBIndex(CDataExchange *,int,int &) 2641 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2642 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2643 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2644 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2645 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2646 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2647 void DDX_OCBool(CDataExchange *,int,long,int &) 2648 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2649 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2650 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2651 void DDX_OCFloat(CDataExchange *,int,long,float &) 2652 void DDX_OCFloat(CDataExchange *,int,long,double &) 2653 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2654 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2655 void DDX_OCInt(CDataExchange *,int,long,int &) 2656 void DDX_OCInt(CDataExchange *,int,long,long &) 2657 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2658 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2659 void DDX_OCShort(CDataExchange *,int,long,short &) 2660 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2661 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2662 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2663 void DDX_Radio(CDataExchange *,int,int &) 2664 void DDX_Scroll(CDataExchange *,int,int &) 2665 void DDX_Slider(CDataExchange *,int,int &) 2666 void DDX_Text(CDataExchange *,int,__int64 &) 2667 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2668 void DDX_Text(CDataExchange *,int,unsigned char &) 2669 void DDX_Text(CDataExchange *,int,short &) 2670 void DDX_Text(CDataExchange *,int,int &) 2671 void DDX_Text(CDataExchange *,int,unsigned int &) 2672 void DDX_Text(CDataExchange *,int,long &) 2673 void DDX_Text(CDataExchange *,int,unsigned long &) 2674 void DDX_Text(CDataExchange *,int,float &) 2675 void DDX_Text(CDataExchange *,int,double &) 2676 void DDX_Text(CDataExchange *,int,_FILETIME &) 2677 void DDX_Text(CDataExchange *,int,_GUID &) 2678 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2679 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2680 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2681 void DDX_Text(CDataExchange *,int,tagDEC &) 2682 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2683 void DDX_Text(CDataExchange *,int,COleCurrency &) 2684 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2685 void DDX_Text(CDataExchange *,int,char *,int) 2686 void COleClientItem::Deactivate(void) 2687 long COlePropertyPage::XPropertyPage::Deactivate(void) 2688 int COleServerDoc::DeactivateAndUndo(void) 2689 long COleClientItem::XOleIPSite::DeactivateAndUndo(void) 2690 long COleControlSite::XOleIPSite::DeactivateAndUndo(void) 2691 void COleClientItem::DeactivateUI(void) 2692 void CDaoFieldExchange::Default(char const *,void *,unsigned long,unsigned long) 2693 void CFieldExchange::Default(char const *,void *,long *,int,unsigned long,unsigned long) 2694 long CWnd::Default(void) 2695 long CMDIChildWnd::DefWindowProcA(unsigned int,unsigned int,long) 2696 long CMDIFrameWnd::DefWindowProcA(unsigned int,unsigned int,long) 2697 long COleControl::DefWindowProcA(unsigned int,unsigned int,long) 2698 long CPrintDialogEx::DefWindowProcA(unsigned int,unsigned int,long) 2699 long CWnd::DefWindowProcA(unsigned int,unsigned int,long) 2700 void CFrameWnd::DelayRecalcLayout(int) 2701 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2702 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2703 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2704 void CControlBar::DelayShow(int) 2705 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2706 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2707 void CFrameWnd::DelayUpdateFrameTitle(void) 2708 int ATL::CStringT > >::Delete(int,int) 2709 int ATL::CStringT > >::Delete(int,int) 2710 void CDaoRecordset::Delete(void) 2711 void CException::Delete(void) 2712 void COleClientItem::Delete(int) 2713 void CRecordset::Delete(void) 2714 void CWinThread::Delete(void) 2715 int CListCtrl::DeleteAllItems(void) 2716 int CTabCtrl::DeleteAllItems(void) 2717 int CTreeCtrl::DeleteAllItems(void) 2718 int CReBarCtrl::DeleteBand(unsigned int) 2719 int CToolBarCtrl::DeleteButton(int) 2720 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 2721 int CListCtrl::DeleteColumn(int) 2722 void CSplitterWnd::DeleteColumn(int) 2723 void CDocument::DeleteContents(void) 2724 void CEditView::DeleteContents(void) 2725 void CHtmlEditDoc::DeleteContents(void) 2726 void COleDocument::DeleteContents(void) 2727 void COleServerDoc::DeleteContents(void) 2728 void CRichEditDoc::DeleteContents(void) 2729 void CRichEditView::DeleteContents(void) 2730 int CDC::DeleteDC(void) 2731 void CDaoTableDef::DeleteField(int) 2732 void CDaoTableDef::DeleteField(char const *) 2733 int CImageList::DeleteImageList(void) 2734 void CDaoTableDef::DeleteIndex(int) 2735 void CDaoTableDef::DeleteIndex(char const *) 2736 void CComboBox::DeleteItem(tagDELETEITEM*) 2737 int CComboBoxEx::DeleteItem(int) 2738 int CHeaderCtrl::DeleteItem(int) 2739 void CListBox::DeleteItem(tagDELETEITEM*) 2740 int CListCtrl::DeleteItem(int) 2741 int CTabCtrl::DeleteItem(int) 2742 int CTreeCtrl::DeleteItem(_TREEITEM *) 2743 int CMenu::DeleteMenu(unsigned int,unsigned int) 2744 int CGdiObject::DeleteObject(void) 2745 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2746 void CDaoDatabase::DeleteQueryDef(char const *) 2747 void CDaoDatabase::DeleteRelation(char const *) 2748 void CSplitterWnd::DeleteRow(int) 2749 int CComboBox::DeleteString(unsigned int) 2750 int CListBox::DeleteString(unsigned int) 2751 void CDaoDatabase::DeleteTableDef(char const *) 2752 void CHandleMap::DeleteTemp(void) 2753 void CDC::DeleteTempMap(void) 2754 void CGdiObject::DeleteTempMap(void) 2755 void CImageList::DeleteTempMap(void) 2756 void CMenu::DeleteTempMap(void) 2757 void CWnd::DeleteTempMap(void) 2758 void CRichEditDoc::DeleteUnmarkedItems(void)const 2759 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2760 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2761 void CSplitterWnd::DeleteView(int,int) 2762 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2763 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2764 void CTabCtrl::DeselectAll(int) 2765 void COleSafeArray::Destroy(void) 2766 int COleControlSite::DestroyControl(void) 2767 void COleSafeArray::DestroyData(void) 2768 void COleSafeArray::DestroyDescriptor(void) 2769 void CFrameWnd::DestroyDockBars(void) 2770 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2771 int CMenu::DestroyMenu(void) 2772 void CDHtmlDialog::DestroyModeless(void) 2773 void COleControl::DestroySharedMenu(void) 2774 void COleDocIPFrameWnd::DestroySharedMenu(void) 2775 void COleIPFrameWnd::DestroySharedMenu(void) 2776 int CToolTipCtrl::DestroyToolTipCtrl(void) 2777 void COleControl::DestroyTracker(void) 2778 int CControlBar::DestroyWindow(void) 2779 int CMDIChildWnd::DestroyWindow(void) 2780 int CWnd::DestroyWindow(void) 2781 unsigned int CAsyncSocket::Detach(void) 2782 HDC__ * CDC::Detach(void) 2783 void * CDialogTemplate::Detach(void) 2784 void * CGdiObject::Detach(void) 2785 _IMAGELIST * CImageList::Detach(void) 2786 unsigned char * CMemFile::Detach(void) 2787 HMENU__ * CMenu::Detach(void) 2788 int CMonikerFile::Detach(CFileException *) 2789 IDataObject * COleDataObject::Detach(void) 2790 tagVARIANT COleSafeArray::Detach(void) 2791 IStream * COleStreamFile::Detach(void) 2792 tagVARIANT COleVariant::Detach(void) 2793 void * CSharedFile::Detach(void) 2794 HDC__ * CWindowlessDC::Detach(void) 2795 HWND__ * CWnd::Detach(void) 2796 IDispatch * COleDispatchDriver::DetachDispatch(void) 2797 void CAsyncSocket::DetachHandle(unsigned int,int) 2798 void COleControlSite::DetachWindow(void) 2799 void CWinApp::DevModeChange(char *) 2800 void DFX_Binary(CDaoFieldExchange *,char const *,CByteArray &,int,unsigned long) 2801 void DFX_Bool(CDaoFieldExchange *,char const *,int &,unsigned long) 2802 void DFX_Byte(CDaoFieldExchange *,char const *,unsigned char &,unsigned long) 2803 void DFX_Currency(CDaoFieldExchange *,char const *,COleCurrency &,unsigned long) 2804 void DFX_DateTime(CDaoFieldExchange *,char const *,ATL::COleDateTime &,unsigned long) 2805 void DFX_Double(CDaoFieldExchange *,char const *,double &,unsigned long) 2806 void DFX_Long(CDaoFieldExchange *,char const *,long &,unsigned long) 2807 void DFX_LongBinary(CDaoFieldExchange *,char const *,CLongBinary &,unsigned long,unsigned long) 2808 void DFX_Short(CDaoFieldExchange *,char const *,short &,unsigned long) 2809 void DFX_Single(CDaoFieldExchange *,char const *,float &,unsigned long) 2810 void DFX_Text(CDaoFieldExchange *,char const *,ATL::CStringT > > &,int,unsigned long) 2811 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2812 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2813 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2814 int CComboBox::Dir(unsigned int,char const *) 2815 int CComboBoxEx::Dir(unsigned int,char const *) 2816 int CListBox::Dir(unsigned int,char const *) 2817 int COleServerDoc::DiscardUndoState(void) 2818 long COleClientItem::XOleIPSite::DiscardUndoState(void) 2819 long COleControlSite::XOleIPSite::DiscardUndoState(void) 2820 void COleDispatchImpl::Disconnect(void) 2821 void CDHtmlDialog::DisconnectDHtmlElementEvents(void) 2822 void CDHtmlDialog::DisconnectDHtmlEvents(void) 2823 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2824 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2825 void CDocument::DisconnectViews(void) 2826 void CWinThread::DispatchThreadMessage(tagMSG *) 2827 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2828 int CRichEditCtrl::DisplayBand(tagRECT *) 2829 void COleControl::DisplayError(long,char const *,char const *,char const *,unsigned int) 2830 int CWnd::DlgDirListA(char *,int,int,unsigned int) 2831 int CWnd::DlgDirListComboBoxA(char *,int,int,unsigned int) 2832 int CWnd::DlgDirSelect(char *,int) 2833 int CWnd::DlgDirSelect(char *,int,int) 2834 int CWnd::DlgDirSelectComboBox(char *,int) 2835 int CWnd::DlgDirSelectComboBox(char *,int,int) 2836 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2837 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2838 void CAsyncSocket::DoCallBack(unsigned int,long) 2839 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2840 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2841 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2842 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2843 void COleControl::DoClick(void) 2844 int COleFrameHook::DoContextSensitiveHelp(int) 2845 int COleConvertDialog::DoConvert(COleClientItem *) 2846 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2847 void CWnd::DoDataExchange(CDataExchange *) 2848 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2849 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2850 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2851 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2852 int COleFrameHook::DoEnableModeless(int) 2853 void CWinApp::DoEnableModeless(int) 2854 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2855 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 2856 void CRecordset::DoFieldExchange(CFieldExchange *) 2857 int CDocument::DoFileSave(void) 2858 int CSplitterWnd::DoKeyboardSplit(void) 2859 int CWinApp::DoMessageBox(char const *,unsigned int,unsigned int) 2860 int CColorDialog::DoModal(void) 2861 int CDialog::DoModal(void) 2862 int CFileDialog::DoModal(void) 2863 int CFontDialog::DoModal(void) 2864 int COleBusyDialog::DoModal(void) 2865 int COleChangeIconDialog::DoModal(void) 2866 int COleChangeSourceDialog::DoModal(void) 2867 int COleConvertDialog::DoModal(void) 2868 int COleInsertDialog::DoModal(unsigned long) 2869 int COleInsertDialog::DoModal(void) 2870 int COleLinksDialog::DoModal(void) 2871 int COlePasteSpecialDialog::DoModal(void) 2872 int COlePropertiesDialog::DoModal(void) 2873 int COleUpdateDialog::DoModal(void) 2874 int CPageSetupDialog::DoModal(void) 2875 int CPrintDialog::DoModal(void) 2876 int CPrintDialogEx::DoModal(void) 2877 int CPropertySheet::DoModal(void) 2878 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2879 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2880 void CControlBar::DoPaint(CDC *) 2881 void CDockBar::DoPaint(CDC *) 2882 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2883 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2884 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2885 int CView::DoPreparePrinting(CPrintInfo *) 2886 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2887 int CWinApp::DoPrintDialog(CPrintDialog *) 2888 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2889 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2890 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2891 void COleControl::DoPropExchange(CPropExchange *) 2892 int CDocument::DoSave(char const *,int) 2893 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2894 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2895 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2896 int CCmdUI::DoUpdate(CCmdTarget *,int) 2897 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2898 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2899 long COleControlSite::DoVerb(long,tagMSG *) 2900 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2901 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2902 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2903 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2904 void CWinApp::DoWaitCursor(int) 2905 void CPreviewView::DoZoom(unsigned int,CPoint) 2906 void CDC::DPtoHIMETRIC(tagSIZE *)const 2907 void CDC::DPtoLP(tagPOINT *,int)const 2908 void CDC::DPtoLP(tagRECT *)const 2909 void CDC::DPtoLP(tagSIZE *)const 2910 void CWnd::DragAcceptFiles(int) 2911 int CWnd::DragDetect(tagPOINT)const 2912 int CImageList::DragEnter(CWnd *,CPoint) 2913 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2914 unsigned int CDragListBox::Dragging(CPoint) 2915 int CImageList::DragLeave(CWnd *) 2916 long COleDropTarget::XDropTarget::DragLeave(void) 2917 int CImageList::DragMove(CPoint) 2918 void CReBarCtrl::DragMove(unsigned long) 2919 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2920 int CImageList::DragShowNolock(int) 2921 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2922 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2923 void CRectTracker::Draw(CDC *)const 2924 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2925 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2926 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2927 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2928 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2929 void CControlBar::DrawBorders(CDC *,CRect &) 2930 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2931 void COleControl::DrawContent(CDC *,CRect &) 2932 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2933 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2934 int CDC::DrawEscape(int,int,char const *) 2935 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2936 void CDC::DrawFocusRect(tagRECT const *) 2937 void CDockContext::DrawFocusRect(int) 2938 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2939 void CControlBar::DrawGripper(CDC *,CRect const &) 2940 int CDC::DrawIcon(int,int,HICON__ *) 2941 int CDC::DrawIcon(tagPOINT,HICON__ *) 2942 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2943 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2944 void CDragListBox::DrawInsert(int) 2945 void CBitmapButton::DrawItem(tagDRAWITEM*) 2946 void CButton::DrawItem(tagDRAWITEM*) 2947 void CCheckListBox::DrawItem(tagDRAWITEM*) 2948 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2949 void CComboBox::DrawItem(tagDRAWITEM*) 2950 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2951 void CListBox::DrawItem(tagDRAWITEM*) 2952 void CListCtrl::DrawItem(tagDRAWITEM*) 2953 void CListView::DrawItem(tagDRAWITEM*) 2954 void CMenu::DrawItem(tagDRAWITEM*) 2955 void CStatic::DrawItem(tagDRAWITEM*) 2956 void CStatusBar::DrawItem(tagDRAWITEM*) 2957 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2958 void CTabCtrl::DrawItem(tagDRAWITEM*) 2959 void CWnd::DrawMenuBar(void) 2960 void COleControl::DrawMetafile(CDC *,CRect &) 2961 void CControlBar::DrawNCGripper(CDC *,CRect const &) 2962 int CControlBar::DrawNonThemedGripper(CDC *,CRect const &) 2963 void CDragListBox::DrawSingle(int) 2964 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2965 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2966 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2967 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2968 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2969 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2970 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,HBRUSH__ *) 2971 int CDC::DrawState(CPoint,CSize,char const *,unsigned int,int,int,CBrush *) 2972 int CDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 2973 int CDC::DrawText(char const *,int,tagRECT *,unsigned int) 2974 int CMetaFileDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 2975 int CMetaFileDC::DrawText(char const *,int,tagRECT *,unsigned int) 2976 int CDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2977 int CDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2978 int CMetaFileDC::DrawTextA(ATL::CStringT > > const &,tagRECT *,unsigned int) 2979 int CMetaFileDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2980 int CPreviewDC::DrawTextA(char const *,int,tagRECT *,unsigned int) 2981 int CDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2982 int CDC::DrawTextEx(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2983 int CMetaFileDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2984 int CMetaFileDC::DrawTextEx(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2985 int CDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2986 int CDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2987 int CMetaFileDC::DrawTextExA(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2988 int CMetaFileDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2989 int CPreviewDC::DrawTextExA(char *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2990 long CThemeHelper::DrawThemeBackground(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2991 long CThemeHelper::DrawThemeBackgroundFail(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2992 int CControlBar::DrawThemedGripper(CDC *,CRect const &,int) 2993 long CThemeHelper::DrawThemeParentBackground(HWND__ *,HDC__ *,tagRECT *) 2994 long CThemeHelper::DrawThemeParentBackgroundFail(HWND__ *,HDC__ *,tagRECT *) 2995 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2996 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2997 void CDragListBox::Dropped(int,CPoint) 2998 void CArchiveException::Dump(CDumpContext &)const 2999 void CAsyncMonikerFile::Dump(CDumpContext &)const 3000 void CAsyncSocket::Dump(CDumpContext &)const 3001 void CBitmap::Dump(CDumpContext &)const 3002 void CBitmapButton::Dump(CDumpContext &)const 3003 void CBrush::Dump(CDumpContext &)const 3004 void CByteArray::Dump(CDumpContext &)const 3005 void CCachedDataPathProperty::Dump(CDumpContext &)const 3006 void CClientDC::Dump(CDumpContext &)const 3007 void CCmdTarget::Dump(CDumpContext &)const 3008 void CColorDialog::Dump(CDumpContext &)const 3009 void CControlBar::Dump(CDumpContext &)const 3010 void CCtrlView::Dump(CDumpContext &)const 3011 void CDaoDatabase::Dump(CDumpContext &)const 3012 void CDaoDatabaseInfo::Dump(CDumpContext &)const 3013 void CDaoErrorInfo::Dump(CDumpContext &)const 3014 void CDaoFieldInfo::Dump(CDumpContext &)const 3015 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 3016 void CDaoIndexInfo::Dump(CDumpContext &)const 3017 void CDaoParameterInfo::Dump(CDumpContext &)const 3018 void CDaoQueryDef::Dump(CDumpContext &)const 3019 void CDaoQueryDefInfo::Dump(CDumpContext &)const 3020 void CDaoRecordset::Dump(CDumpContext &)const 3021 void CDaoRecordView::Dump(CDumpContext &)const 3022 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 3023 void CDaoRelationInfo::Dump(CDumpContext &)const 3024 void CDaoTableDef::Dump(CDumpContext &)const 3025 void CDaoTableDefInfo::Dump(CDumpContext &)const 3026 void CDaoWorkspace::Dump(CDumpContext &)const 3027 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 3028 void CDatabase::Dump(CDumpContext &)const 3029 void CDataPathProperty::Dump(CDumpContext &)const 3030 void CDC::Dump(CDumpContext &)const 3031 void CDialog::Dump(CDumpContext &)const 3032 void CDocItem::Dump(CDumpContext &)const 3033 void CDockBar::Dump(CDumpContext &)const 3034 void CDocManager::Dump(CDumpContext &)const 3035 void CDocObjectServer::Dump(CDumpContext &)const 3036 void CDocObjectServerItem::Dump(CDumpContext &)const 3037 void CDocTemplate::Dump(CDumpContext &)const 3038 void CDocument::Dump(CDumpContext &)const 3039 void CDWordArray::Dump(CDumpContext &)const 3040 void CDynLinkLibrary::Dump(CDumpContext &)const 3041 void CEditView::Dump(CDumpContext &)const 3042 void CFile::Dump(CDumpContext &)const 3043 void CFileDialog::Dump(CDumpContext &)const 3044 void CFileException::Dump(CDumpContext &)const 3045 void CFileFind::Dump(CDumpContext &)const 3046 void CFileStatus::Dump(CDumpContext &)const 3047 void CFindReplaceDialog::Dump(CDumpContext &)const 3048 void CFont::Dump(CDumpContext &)const 3049 void CFontDialog::Dump(CDumpContext &)const 3050 void CFormView::Dump(CDumpContext &)const 3051 void CFrameWnd::Dump(CDumpContext &)const 3052 void CFtpConnection::Dump(CDumpContext &)const 3053 void CFtpFileFind::Dump(CDumpContext &)const 3054 void CGdiObject::Dump(CDumpContext &)const 3055 void CGopherConnection::Dump(CDumpContext &)const 3056 void CGopherFile::Dump(CDumpContext &)const 3057 void CGopherFileFind::Dump(CDumpContext &)const 3058 void CHtmlEditDoc::Dump(CDumpContext &)const 3059 void CHtmlEditView::Dump(CDumpContext &)const 3060 void CHtmlView::Dump(CDumpContext &)const 3061 void CHttpConnection::Dump(CDumpContext &)const 3062 void CHttpFile::Dump(CDumpContext &)const 3063 void CImageList::Dump(CDumpContext &)const 3064 void CInternetConnection::Dump(CDumpContext &)const 3065 void CInternetException::Dump(CDumpContext &)const 3066 void CInternetFile::Dump(CDumpContext &)const 3067 void CInternetSession::Dump(CDumpContext &)const 3068 void CLongBinary::Dump(CDumpContext &)const 3069 void CMapPtrToPtr::Dump(CDumpContext &)const 3070 void CMapPtrToWord::Dump(CDumpContext &)const 3071 void CMapStringToOb::Dump(CDumpContext &)const 3072 void CMapStringToPtr::Dump(CDumpContext &)const 3073 void CMapStringToString::Dump(CDumpContext &)const 3074 void CMapWordToOb::Dump(CDumpContext &)const 3075 void CMapWordToPtr::Dump(CDumpContext &)const 3076 void CMDIChildWnd::Dump(CDumpContext &)const 3077 void CMDIFrameWnd::Dump(CDumpContext &)const 3078 void CMemFile::Dump(CDumpContext &)const 3079 void CMenu::Dump(CDumpContext &)const 3080 void CMonikerFile::Dump(CDumpContext &)const 3081 void CMultiDocTemplate::Dump(CDumpContext &)const 3082 void CObArray::Dump(CDumpContext &)const 3083 void CObject::Dump(CDumpContext &)const 3084 void CObList::Dump(CDumpContext &)const 3085 void COleBusyDialog::Dump(CDumpContext &)const 3086 void COleChangeIconDialog::Dump(CDumpContext &)const 3087 void COleChangeSourceDialog::Dump(CDumpContext &)const 3088 void COleClientItem::Dump(CDumpContext &)const 3089 void COleControl::Dump(CDumpContext &)const 3090 void COleConvertDialog::Dump(CDumpContext &)const 3091 void COleDataSource::Dump(CDumpContext &)const 3092 void COleDialog::Dump(CDumpContext &)const 3093 void COleDocIPFrameWnd::Dump(CDumpContext &)const 3094 void COleDocument::Dump(CDumpContext &)const 3095 void COleDropSource::Dump(CDumpContext &)const 3096 void COleDropTarget::Dump(CDumpContext &)const 3097 void COleInsertDialog::Dump(CDumpContext &)const 3098 void COleIPFrameWnd::Dump(CDumpContext &)const 3099 void COleLinkingDoc::Dump(CDumpContext &)const 3100 void COleLinksDialog::Dump(CDumpContext &)const 3101 void COleMessageFilter::Dump(CDumpContext &)const 3102 void COleObjectFactory::Dump(CDumpContext &)const 3103 void COlePasteSpecialDialog::Dump(CDumpContext &)const 3104 void COlePropertiesDialog::Dump(CDumpContext &)const 3105 void COleServerDoc::Dump(CDumpContext &)const 3106 void COleServerItem::Dump(CDumpContext &)const 3107 void COleStreamFile::Dump(CDumpContext &)const 3108 void COleUpdateDialog::Dump(CDumpContext &)const 3109 void CPageSetupDialog::Dump(CDumpContext &)const 3110 void CPaintDC::Dump(CDumpContext &)const 3111 void CPen::Dump(CDumpContext &)const 3112 void CPreviewDC::Dump(CDumpContext &)const 3113 void CPreviewView::Dump(CDumpContext &)const 3114 void CPrintDialog::Dump(CDumpContext &)const 3115 void CPrintDialogEx::Dump(CDumpContext &)const 3116 void CPropertyPage::Dump(CDumpContext &)const 3117 void CPropertySheet::Dump(CDumpContext &)const 3118 void CPtrArray::Dump(CDumpContext &)const 3119 void CPtrList::Dump(CDumpContext &)const 3120 void CRecordset::Dump(CDumpContext &)const 3121 void CRecordView::Dump(CDumpContext &)const 3122 void CRichEditCntrItem::Dump(CDumpContext &)const 3123 void CRichEditDoc::Dump(CDumpContext &)const 3124 void CRichEditView::Dump(CDumpContext &)const 3125 void CScrollView::Dump(CDumpContext &)const 3126 void CSingleDocTemplate::Dump(CDumpContext &)const 3127 void CSocket::Dump(CDumpContext &)const 3128 void CSocketFile::Dump(CDumpContext &)const 3129 void CSplitterWnd::Dump(CDumpContext &)const 3130 void CStatusBar::Dump(CDumpContext &)const 3131 void CStdioFile::Dump(CDumpContext &)const 3132 void CStringArray::Dump(CDumpContext &)const 3133 void CStringList::Dump(CDumpContext &)const 3134 void CSyncObject::Dump(CDumpContext &)const 3135 void CToolBar::Dump(CDumpContext &)const 3136 void CUIntArray::Dump(CDumpContext &)const 3137 void CView::Dump(CDumpContext &)const 3138 void CWinApp::Dump(CDumpContext &)const 3139 void CWindowDC::Dump(CDumpContext &)const 3140 void CWinThread::Dump(CDumpContext &)const 3141 void CWnd::Dump(CDumpContext &)const 3142 void CWordArray::Dump(CDumpContext &)const 3143 void CMemoryState::DumpAllObjectsSince(void)const 3144 CDumpContext & CDumpContext::DumpAsHex(__int64) 3145 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 3146 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 3147 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 3148 CDumpContext & CDumpContext::DumpAsHex(int) 3149 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 3150 CDumpContext & CDumpContext::DumpAsHex(long) 3151 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 3152 void CRecordset::DumpFields(CDumpContext &)const 3153 void CMemoryState::DumpStatistics(void)const 3154 long COleControl::XDataObject::DUnadvise(unsigned long) 3155 long COleDataSource::XDataObject::DUnadvise(unsigned long) 3156 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 3157 long COleServerItem::XDataObject::DUnadvise(unsigned long) 3158 CFile * CFile::Duplicate(void)const 3159 CFile * CInternetFile::Duplicate(void)const 3160 CFile * CMemFile::Duplicate(void)const 3161 CFile * COleStreamFile::Duplicate(void)const 3162 CFile * CSocketFile::Duplicate(void)const 3163 CFile * CStdioFile::Duplicate(void)const 3164 unsigned long const CEditView::dwStyleDefault 3165 void CDaoRecordset::Edit(void) 3166 void CRecordset::Edit(void) 3167 int CHeaderCtrl::EditFilter(int,int) 3168 CEdit * CListCtrl::EditLabel(int) 3169 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 3170 long COlePropertyPage::XPropertyPage::EditProperty(long) 3171 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 3172 unsigned char & CByteArray::ElementAt(int) 3173 unsigned long & CDWordArray::ElementAt(int) 3174 CObject * & CObArray::ElementAt(int) 3175 void * & CPtrArray::ElementAt(int) 3176 ATL::CStringT > > & CStringArray::ElementAt(int) 3177 unsigned int & CUIntArray::ElementAt(int) 3178 unsigned short & CWordArray::ElementAt(int) 3179 int CDC::Ellipse(int,int,int,int) 3180 int CDC::Ellipse(tagRECT const *) 3181 void ATL::CSimpleStringT::Empty(void) 3182 void ATL::CSimpleStringT::Empty(void) 3183 void CDBException::Empty(void) 3184 void COleDataSource::Empty(void) 3185 void CEdit::EmptyUndoBuffer(void) 3186 void CRichEditCtrl::EmptyUndoBuffer(void) 3187 void CCheckListBox::Enable(int,int) 3188 void CCmdUI::Enable(int) 3189 void COleCmdUI::Enable(int) 3190 void CStatusCmdUI::Enable(int) 3191 void CTestCmdUI::Enable(int) 3192 void CToolCmdUI::Enable(int) 3193 int CWinApp::Enable3dControls(void) 3194 void CWnd::EnableActiveAccessibility(void) 3195 void CCmdTarget::EnableAggregation(void) 3196 void CCmdTarget::EnableAutomation(void) 3197 void CRecordset::EnableBookmarks(void) 3198 void COleMessageFilter::EnableBusyDialog(int) 3199 int CToolBarCtrl::EnableButton(int,int) 3200 void COleDocument::EnableCompoundFile(int) 3201 void CCmdTarget::EnableConnections(void) 3202 void CControlBar::EnableDocking(unsigned long) 3203 void CFrameWnd::EnableDocking(unsigned long) 3204 void CReBar::EnableDocking(unsigned long) 3205 void CStatusBar::EnableDocking(unsigned long) 3206 void COleControlSite::EnableDSC(void) 3207 void CWinApp::EnableHtmlHelp(void) 3208 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 3209 long CBrowserControlSite::EnableModeless(int) 3210 long CDHtmlDialog::EnableModeless(int) 3211 void CWinApp::EnableModeless(int) 3212 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 3213 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 3214 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 3215 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 3216 long COleControlContainer::XOleIPFrame::EnableModeless(int) 3217 void COleMessageFilter::EnableNotRespondingDialog(int) 3218 int CScrollBar::EnableScrollBar(unsigned int) 3219 int CWnd::EnableScrollBar(int,unsigned int) 3220 void CWnd::EnableScrollBarCtrl(int,int) 3221 void CWinApp::EnableShellOpen(void) 3222 void COleControl::EnableSimpleFrame(void) 3223 void CPropertySheet::EnableStackedTabs(int) 3224 int CInternetSession::EnableStatusCallback(int) 3225 int CWnd::EnableToolTips(int) 3226 int CWnd::EnableTrackingToolTips(int) 3227 void CCmdTarget::EnableTypeLib(void) 3228 int COleControlSite::EnableWindow(int) 3229 int CWnd::EnableWindow(int) 3230 void COleMessageFilter::EndBusyState(void) 3231 void CAsyncMonikerFile::EndCallbacks(void) 3232 long COleLinkingDoc::EndDeferErrors(long) 3233 void CDialog::EndDialog(int) 3234 void CPropertyPage::EndDialog(int) 3235 void CPropertySheet::EndDialog(int) 3236 int CDC::EndDoc(void) 3237 void CDockContext::EndDrag(void) 3238 void CImageList::EndDrag(void) 3239 void CReBarCtrl::EndDrag(void) 3240 int CTreeCtrl::EndEditLabelNow(int) 3241 void CWnd::EndModalLoop(int) 3242 void CFrameWnd::EndModalState(void) 3243 void CWnd::EndModalState(void) 3244 int CDC::EndPage(void) 3245 void CWnd::EndPaint(tagPAINT*) 3246 int CDC::EndPath(void) 3247 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSA *,unsigned long) 3248 void CDockContext::EndResize(void) 3249 void CCmdTarget::EndWaitCursor(void) 3250 void COleDataObject::EnsureClipboardObject(void) 3251 CFrameWnd * CWnd::EnsureParentFrame(void)const 3252 void CArchive::EnsureRead(void *,unsigned int) 3253 void CArchive::EnsureSchemaMapExists(CArray * *) 3254 long CWnd::EnsureStdObj(void) 3255 CWnd * CWnd::EnsureTopLevelParent(void)const 3256 int CListCtrl::EnsureVisible(int,int) 3257 int CTreeCtrl::EnsureVisible(_TREEITEM *) 3258 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3259 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3260 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3261 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3262 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 3263 int COlePropertyPage::EnumChildProc(HWND__ *,long) 3264 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 3265 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 3266 int COlePropertyPage::EnumControls(HWND__ *,long) 3267 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3268 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3269 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3270 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3271 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3272 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3273 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3274 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3275 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 3276 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3277 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3278 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 3279 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3280 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3281 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3282 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3283 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 3284 int CRgn::EqualRgn(CRgn const *)const 3285 void CControlBar::EraseNonClient(void) 3286 int CFileException::ErrnoToException(int) 3287 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 3288 int CDC::Escape(int,int,char const *,int,char *) 3289 int CDC::Escape(int,int,char const *,void *) 3290 int CMetaFileDC::Escape(int,int,char const *,void *) 3291 int CPreviewDC::Escape(int,int,char const *,void *) 3292 int CArchivePropExchange::ExchangeBlobProp(char const *,void * *,void *) 3293 int CAsyncPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3294 int CPropbagPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3295 int CPropsetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3296 int CResetPropExchange::ExchangeBlobProp(char const *,void * *,void *) 3297 int COleControl::ExchangeExtent(CPropExchange *) 3298 int CArchivePropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3299 int CAsyncPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3300 int CPropbagPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3301 int CPropsetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3302 int CResetPropExchange::ExchangeFontProp(char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3303 int CArchivePropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3304 int CAsyncPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3305 int CPropbagPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3306 int CPropsetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3307 int CResetPropExchange::ExchangePersistentProp(char const *,IUnknown * *,_GUID const &,IUnknown *) 3308 int CArchivePropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3309 int CAsyncPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3310 int CPropbagPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3311 int CPropsetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3312 int CResetPropExchange::ExchangeProp(char const *,unsigned short,void *,void const *) 3313 void COleControl::ExchangeStockProps(CPropExchange *) 3314 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3315 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 3316 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3317 int CDC::ExcludeClipRect(int,int,int,int) 3318 int CDC::ExcludeClipRect(tagRECT const *) 3319 int CDC::ExcludeUpdateRgn(CWnd *) 3320 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3321 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3322 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 3323 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 3324 int CHtmlEditView::ExecHandler(unsigned int) 3325 void CDaoDatabase::Execute(char const *,int) 3326 void CDaoQueryDef::Execute(int) 3327 int CWnd::ExecuteDlgInit(void *) 3328 int CWnd::ExecuteDlgInit(char const *) 3329 void CRecordset::ExecuteSetPosUpdate(void) 3330 void CDatabase::ExecuteSQL(char const *) 3331 void CRecordset::ExecuteUpdateSQL(void) 3332 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 3333 void CFrameWnd::ExitHelpMode(void) 3334 int COleControlModule::ExitInstance(void) 3335 int CWinApp::ExitInstance(void) 3336 int CWinThread::ExitInstance(void) 3337 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 3338 unsigned long CCmdTarget::ExternalAddRef(void) 3339 void CCmdTarget::ExternalDisconnect(void) 3340 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 3341 unsigned long CCmdTarget::ExternalRelease(void) 3342 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 3343 HICON__ * CImageList::ExtractIconA(int) 3344 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3345 int CDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3346 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3347 int CMetaFileDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3348 int CPreviewDC::ExtTextOutA(int,int,unsigned int,tagRECT const *,char const *,unsigned int,int *) 3349 void CDataExchange::Fail(void) 3350 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3351 short CRecordset::FetchData(unsigned short,long,unsigned long *) 3352 void CArchive::FillBuffer(unsigned int) 3353 void CDaoRecordset::FillCache(long *,COleVariant *) 3354 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 3355 void CDaoException::FillErrorInfo(void) 3356 unsigned long CFontDialog::FillInLogFont(_charformat const &) 3357 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOA &,CWnd *,unsigned int)const 3358 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 3359 void CScrollView::FillOutsideRect(CDC *,CBrush *) 3360 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 3361 int CDC::FillPath(void) 3362 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 3363 void CDC::FillRect(tagRECT const *,CBrush *) 3364 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 3365 int CDC::FillRgn(CRgn *,CBrush *) 3366 void CDC::FillSolidRect(int,int,int,int,unsigned long) 3367 void CDC::FillSolidRect(tagRECT const *,unsigned long) 3368 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 3369 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 3370 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 3371 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 3372 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 3373 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 3374 void CWnd::FilterToolTipMessage(tagMSG *) 3375 int ATL::CStringT > >::Find(wchar_t,int)const 3376 int ATL::CStringT > >::Find(wchar_t const *,int)const 3377 int ATL::CStringT > >::Find(char,int)const 3378 int ATL::CStringT > >::Find(char const *,int)const 3379 int CDaoRecordset::Find(long,char const *) 3380 __POSITION * CObList::Find(CObject *,__POSITION *)const 3381 __POSITION * CPtrList::Find(void *,__POSITION *)const 3382 __POSITION * CStringList::Find(char const *,__POSITION *)const 3383 long CRichEditView::FindAndSelect(unsigned long,_findtextexa &) 3384 int CDockBar::FindBar(CControlBar *,int) 3385 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 3386 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 3387 int CFileFind::FindFile(char const *,unsigned long) 3388 int CFtpFileFind::FindFile(char const *,unsigned long) 3389 int CGopherFileFind::FindFile(CGopherLocator &,char const *,unsigned long) 3390 int CGopherFileFind::FindFile(char const *,unsigned long) 3391 int CDaoRecordset::FindFirst(char const *) 3392 __POSITION * CObList::FindIndex(int)const 3393 __POSITION * CPtrList::FindIndex(int)const 3394 __POSITION * CStringList::FindIndex(int)const 3395 int CListCtrl::FindItem(tagLVFINDINFOA *,int)const 3396 COleControlSite * COleControlContainer::FindItem(unsigned int)const 3397 int CDaoRecordset::FindLast(char const *) 3398 int CDaoRecordset::FindNext(char const *) 3399 int CFindReplaceDialog::FindNext(void)const 3400 int CFileFind::FindNextFileA(void) 3401 int CFtpFileFind::FindNextFileA(void) 3402 int CGopherFileFind::FindNextFileA(void) 3403 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 3404 int ATL::CStringT > >::FindOneOf(char const *)const 3405 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 3406 int CDaoRecordset::FindPrev(char const *) 3407 int CDHtmlDialog::FindSinkForObject(char const *) 3408 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 3409 __POSITION * CWnd::FindSiteOrWndWithFocus(void)const 3410 char const * CRecordset::FindSQLToken(char const *,char const *) 3411 int CComboBox::FindString(int,char const *)const 3412 int CComboBoxEx::FindString(int,char const *)const 3413 int CListBox::FindString(int,char const *)const 3414 int CComboBox::FindStringExact(int,char const *)const 3415 int CListBox::FindStringExact(int,char const *)const 3416 int CEditView::FindTextA(char const *,int,int) 3417 long CRichEditCtrl::FindTextA(unsigned long,_findtextexa *)const 3418 int CRichEditView::FindTextA(_AFX_RICHEDIT_STATE *) 3419 int CRichEditView::FindTextA(char const *,int,int,int) 3420 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3421 int CRichEditView::FindTextSimple(char const *,int,int,int) 3422 CWnd * CWnd::FindWindowA(char const *,char const *) 3423 CWnd * CWnd::FindWindowExA(HWND__ *,HWND__ *,char const *,char const *) 3424 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3425 int COleClientItem::FinishCreate(long) 3426 void COleControl::FireClick(void) 3427 void COleControl::FireDblClick(void) 3428 void COleControl::FireError(long,char const *,unsigned int) 3429 void COleControl::FireEvent(long,unsigned char *,...) 3430 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3431 void COleControl::FireEventV(long,unsigned char *,char *) 3432 void COleControl::FireKeyDown(unsigned short *,short) 3433 void COleControl::FireKeyPress(unsigned short *) 3434 void COleControl::FireKeyUp(unsigned short *,short) 3435 void COleControl::FireMouseDown(short,short,long,long) 3436 void COleControl::FireMouseMove(short,short,long,long) 3437 void COleControl::FireMouseUp(short,short,long,long) 3438 void COleControl::FireReadyStateChange(void) 3439 void CDaoRecordset::Fixup(void) 3440 void CRecordset::Fixups(void) 3441 int CWnd::FlashWindow(int) 3442 int CDC::FlattenPath(void) 3443 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3444 int CDC::FloodFill(int,int,unsigned long) 3445 void CArchive::Flush(void) 3446 void CDumpContext::Flush(void) 3447 void CFile::Flush(void) 3448 void CInternetFile::Flush(void) 3449 void CMemFile::Flush(void) 3450 void CMonikerFile::Flush(void) 3451 void COleStreamFile::Flush(void) 3452 void CSocketFile::Flush(void) 3453 void CStdioFile::Flush(void) 3454 void COleDataSource::FlushClipboard(void) 3455 int CRecordset::FlushResultSet(void) 3456 int CEdit::FmtLines(int) 3457 void ATL::CSimpleStringT::Fork(int) 3458 void ATL::CSimpleStringT::Fork(int) 3459 void ATL::CStringT > >::Format(unsigned int,...) 3460 void ATL::CStringT > >::Format(wchar_t const *,...) 3461 void ATL::CStringT > >::Format(unsigned int,...) 3462 void ATL::CStringT > >::Format(char const *,...) 3463 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3464 void ATL::CStringT > >::FormatMessage(unsigned int,...) 3465 void ATL::CStringT > >::FormatMessage(char const *,...) 3466 void ATL::CStringT > >::FormatMessageA(unsigned int,...) 3467 void ATL::CStringT > >::FormatMessageA(char const *,...) 3468 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 3469 long CRichEditCtrl::FormatRange(_formatrange *,int) 3470 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 3471 void ATL::CStringT > >::FormatV(char const *,char *) 3472 void COleControl::ForwardActivationMsg(tagMSG *) 3473 void CDC::FrameRect(tagRECT const *,CBrush *) 3474 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3475 void CAfxStringMgr::Free(ATL::CStringData *) 3476 void CDatabase::Free(void) 3477 void CFixedAlloc::Free(void *) 3478 void CFixedAllocNoSync::Free(void *) 3479 void CMemFile::Free(unsigned char *) 3480 void CSharedFile::Free(unsigned char *) 3481 void CFixedAlloc::FreeAll(void) 3482 void CFixedAllocNoSync::FreeAll(void) 3483 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3484 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3485 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3486 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3487 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3488 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3489 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3490 void CDaoRecordset::FreeCache(void) 3491 void CRecordset::FreeDataCache(void) 3492 void CPlex::FreeDataChain(void) 3493 void ATL::CSimpleStringT::FreeExtra(void) 3494 void ATL::CSimpleStringT::FreeExtra(void) 3495 void CByteArray::FreeExtra(void) 3496 void CDWordArray::FreeExtra(void) 3497 void CObArray::FreeExtra(void) 3498 void CPtrArray::FreeExtra(void) 3499 void CStringArray::FreeExtra(void) 3500 void CUIntArray::FreeExtra(void) 3501 void CWordArray::FreeExtra(void) 3502 void CObList::FreeNode(CObList::CNode *) 3503 void CPtrList::FreeNode(CPtrList::CNode *) 3504 void CStringList::FreeNode(CStringList::CNode *) 3505 void CRecordset::FreeRowset(void) 3506 void CThreadSlotData::FreeSlot(int) 3507 void CProperty::FreeValue(void) 3508 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3509 void COleControlContainer::FreezeAllEvents(int) 3510 void COleControlSite::FreezeEvents(int) 3511 long COleControl::XOleControl::FreezeEvents(int) 3512 int COleClientItem::FreezeLink(void) 3513 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3514 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3515 CBrush * CBrush::FromHandle(HBRUSH__ *) 3516 CDC * CDC::FromHandle(HDC__ *) 3517 CFont * CFont::FromHandle(HFONT__ *) 3518 CGdiObject * CGdiObject::FromHandle(void *) 3519 CObject * CHandleMap::FromHandle(void *) 3520 CImageList * CImageList::FromHandle(_IMAGELIST *) 3521 CMenu * CMenu::FromHandle(HMENU__ *) 3522 CPalette * CPalette::FromHandle(HPALETTE__ *) 3523 CPen * CPen::FromHandle(HPEN__ *) 3524 CRgn * CRgn::FromHandle(HRGN__ *) 3525 CSocket * CSocket::FromHandle(unsigned int) 3526 CWnd * CWnd::FromHandle(HWND__ *) 3527 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3528 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3529 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3530 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3531 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3532 CRuntime* CRuntimeClass::FromName(char const *) 3533 void * CProperty::Get(unsigned long *) 3534 void * CProperty::Get(void) 3535 void * CPropertySection::Get(unsigned long) 3536 void * CPropertySection::Get(unsigned long,unsigned long *) 3537 void * CPropertySet::Get(_GUID,unsigned long) 3538 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3539 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3540 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3541 long CWnd::get_accChildCount(long *) 3542 long CWnd::XAccessible::get_accChildCount(long *) 3543 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3544 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3545 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3546 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3547 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3548 long CWnd::get_accFocus(tagVARIANT *) 3549 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3550 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3551 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3552 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3553 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3554 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3555 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3556 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3557 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3558 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3559 long CWnd::get_accParent(IDispatch * *) 3560 long CWnd::XAccessible::get_accParent(IDispatch * *) 3561 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3562 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3563 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3564 long CWnd::get_accSelection(tagVARIANT *) 3565 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3566 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3567 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3568 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3569 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3570 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3571 long CDaoRecordset::GetAbsolutePosition(void) 3572 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3573 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3574 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3575 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3576 long CWnd::GetAccessibleChildCount(void) 3577 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3578 unsigned long COleControl::GetActivationPolicy(void) 3579 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3580 CDocument * CFrameWnd::GetActiveDocument(void) 3581 CFrameWnd * CFrameWnd::GetActiveFrame(void) 3582 CFrameWnd * CMDIFrameWnd::GetActiveFrame(void) 3583 int CPropertySheet::GetActiveIndex(void)const 3584 CPropertyPage * CPropertySheet::GetActivePage(void)const 3585 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3586 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3587 CView * CFrameWnd::GetActiveView(void)const 3588 CView * COleClientItem::GetActiveView(void)const 3589 IOleDocumentView * COleDocObjectItem::GetActiveView(void)const 3590 CRichEditView * CRichEditCntrItem::GetActiveView(void) 3591 CWnd * CWnd::GetActiveWindow(void) 3592 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &)const 3593 int CIPAddressCtrl::GetAddress(unsigned long &)const 3594 int CHtmlView::GetAddressBar(void)const 3595 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3596 int ATL::CSimpleStringT::GetAllocLength(void)const 3597 int ATL::CSimpleStringT::GetAllocLength(void)const 3598 COleDispatchDriver * COleControl::GetAmbientDispatchDriver(void) 3599 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3600 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3601 int CToolBarCtrl::GetAnchorHighlight(void)const 3602 int CListBox::GetAnchorIndex(void)const 3603 short COleControl::GetAppearance(void) 3604 IDispatch * CHtmlView::GetApplication(void)const 3605 HKEY__ * CWinApp::GetAppRegistryKey(void) 3606 int CDC::GetArcDirection(void)const 3607 CSize CDC::GetAspectRatioFilter(void)const 3608 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3609 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3610 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3611 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3612 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(char const *,unsigned int &,unsigned int &)const 3613 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3614 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3615 wchar_t ATL::CSimpleStringT::GetAt(int)const 3616 char ATL::CSimpleStringT::GetAt(int)const 3617 unsigned char CByteArray::GetAt(int)const 3618 unsigned long CDWordArray::GetAt(int)const 3619 CObject * CObArray::GetAt(int)const 3620 CObject * & CObList::GetAt(__POSITION *) 3621 CObject const * CObList::GetAt(__POSITION *)const 3622 void * CPtrArray::GetAt(int)const 3623 void * & CPtrList::GetAt(__POSITION *) 3624 void const * CPtrList::GetAt(__POSITION *)const 3625 ATL::CStringT > > const & CStringArray::GetAt(int)const 3626 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3627 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3628 unsigned int CUIntArray::GetAt(int)const 3629 unsigned short CWordArray::GetAt(int)const 3630 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3631 long CDaoTableDef::GetAttributes(void) 3632 unsigned long COleControl::GetBackColor(void) 3633 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3634 unsigned int CReBarCtrl::GetBandCount(void)const 3635 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOA *)const 3636 unsigned int CReBarCtrl::GetBarHeight(void)const 3637 void CControlBar::GetBarInfo(CControlBarInfo *) 3638 void CDockBar::GetBarInfo(CControlBarInfo *) 3639 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3640 unsigned long CControlBar::GetBarStyle(void) 3641 unsigned int CSpinButtonCtrl::GetBase(void)const 3642 unsigned long CAsyncMonikerFile::GetBindInfo(void)const 3643 IBinding * CAsyncMonikerFile::GetBinding(void)const 3644 int CBitmap::GetBitmap(tagBITMAP *) 3645 HBITMAP__ * CButton::GetBitmap(void)const 3646 HBITMAP__ * CStatic::GetBitmap(void)const 3647 int CToolBarCtrl::GetBitmap(int)const 3648 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3649 CSize CBitmap::GetBitmapDimension(void)const 3650 unsigned int CToolBarCtrl::GetBitmapFlags(void)const 3651 int CHeaderCtrl::GetBitmapMargin(void)const 3652 unsigned long CDC::GetBkColor(void)const 3653 unsigned long CImageList::GetBkColor(void)const 3654 unsigned long CListCtrl::GetBkColor(void)const 3655 unsigned long CReBarCtrl::GetBkColor(void)const 3656 unsigned long CTreeCtrl::GetBkColor(void)const 3657 int CListCtrl::GetBkImage(tagLVBKIMAGEA *)const 3658 int CDC::GetBkMode(void)const 3659 void * CBlobProperty::GetBlob(void) 3660 COleVariant CDaoRecordset::GetBookmark(void) 3661 void CRecordset::GetBookmark(CDBVariant &) 3662 unsigned long CDatabase::GetBookmarkPersistence(void)const 3663 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3664 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3665 CRect CControlBar::GetBorders(void)const 3666 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3667 int CStatusBarCtrl::GetBorders(int *)const 3668 short COleControl::GetBorderStyle(void) 3669 long CDataSourceControl::GetBoundClientRow(void) 3670 int CRecordset::GetBoundFieldIndex(void *) 3671 int CRecordset::GetBoundParamIndex(void *) 3672 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3673 CPoint CDC::GetBrushOrg(void)const 3674 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOA *)const 3675 CWnd * CSliderCtrl::GetBuddy(int)const 3676 CWnd * CSpinButtonCtrl::GetBuddy(void)const 3677 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 3678 wchar_t * ATL::CSimpleStringT::GetBuffer(void) 3679 char * ATL::CSimpleStringT::GetBuffer(int) 3680 char * ATL::CSimpleStringT::GetBuffer(void) 3681 unsigned int CEditView::GetBufferLength(void)const 3682 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3683 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3684 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3685 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 3686 char * ATL::CSimpleStringT::GetBufferSetLength(int) 3687 int CHtmlView::GetBusy(void)const 3688 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3689 int CToolBarCtrl::GetButtonCount(void)const 3690 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3691 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOA *)const 3692 unsigned long CToolBarCtrl::GetButtonSize(void)const 3693 unsigned int CButton::GetButtonStyle(void)const 3694 unsigned int CToolBar::GetButtonStyle(int)const 3695 ATL::CStringT > > CToolBar::GetButtonText(int)const 3696 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3697 void COleSafeArray::GetByteArray(CByteArray &) 3698 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3699 unsigned short CPropertySet::GetByteOrder(void) 3700 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3701 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3702 long CDaoRecordset::GetCacheSize(void) 3703 COleVariant CDaoRecordset::GetCacheStart(void) 3704 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 3705 unsigned int CListCtrl::GetCallbackMask(void)const 3706 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3707 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3708 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3709 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3710 CWnd * COleControl::GetCapture(void) 3711 CWnd * CWnd::GetCapture(void) 3712 long COleControlSite::XOleIPSite::GetCapture(void) 3713 int CListBox::GetCaretIndex(void)const 3714 CPoint CWnd::GetCaretPos(void) 3715 void CSliderCtrl::GetChannelRect(tagRECT *)const 3716 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABC *)const 3717 int CDC::GetCharABCWidthsA(unsigned int,unsigned int,_ABCFLOAT *)const 3718 unsigned long CDC::GetCharacterPlacementA(ATL::CStringT > > &,int,tagGCP_RESULTSA *,unsigned long)const 3719 unsigned long CDC::GetCharacterPlacementA(char const *,int,int,tagGCP_RESULTSA *,unsigned long)const 3720 void CFontDialog::GetCharFormat(_charformat &)const 3721 CHARFORMAT2A & CRichEditView::GetCharFormatSelection(void) 3722 CPoint CRichEditCtrl::GetCharPos(long)const 3723 int CDC::GetCharWidthA(unsigned int,unsigned int,int *)const 3724 int CDC::GetCharWidthA(unsigned int,unsigned int,float *)const 3725 int CButton::GetCheck(void)const 3726 int CCheckListBox::GetCheck(int) 3727 int CListCtrl::GetCheck(int)const 3728 int CTreeCtrl::GetCheck(_TREEITEM *)const 3729 int CWnd::GetCheckedRadioButton(int,int)const 3730 unsigned int CCheckListBox::GetCheckStyle(void) 3731 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3732 long CBlobProperty::GetClassID(_GUID *) 3733 void COleClientItem::GetClassID(_GUID *)const 3734 _GUID const & COleConvertDialog::GetClassID(void)const 3735 _GUID const & COleInsertDialog::GetClassID(void)const 3736 _GUID const & COleObjectFactory::GetClassID(void)const 3737 _GUID CPropertySet::GetClassID(void) 3738 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3739 long COleControl::XPersistMemory::GetClassID(_GUID *) 3740 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3741 long COleControl::XPersistStorage::GetClassID(_GUID *) 3742 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3743 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3744 long COleControl::XProvideClassInfo::GetClassInfoA(ITypeInfo * *) 3745 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3746 void COleControl::GetClientOffset(long *,long *)const 3747 void COleControl::GetClientRect(tagRECT *)const 3748 void CWnd::GetClientRect(tagRECT *)const 3749 IOleClientSite * COleClientItem::GetClientSite(void) 3750 IOleClientSite * COleControl::GetClientSite(void) 3751 IOleClientSite * COleServerDoc::GetClientSite(void)const 3752 IOleClientSite * CRichEditCntrItem::GetClientSite(void) 3753 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3754 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3755 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3756 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3757 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3758 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3759 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3760 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3761 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3762 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3763 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3764 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3765 COleDataSource * COleDataSource::GetClipboardOwner(void) 3766 CWnd * CWnd::GetClipboardOwner(void) 3767 CWnd * CWnd::GetClipboardViewer(void) 3768 int CDC::GetClipBox(tagRECT *)const 3769 int CMetaFileDC::GetClipBox(tagRECT *)const 3770 unsigned long CColorDialog::GetColor(void)const 3771 unsigned long CFontDialog::GetColor(void)const 3772 unsigned long CMonthCalCtrl::GetColor(int)const 3773 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3774 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *)const 3775 int CToolBarCtrl::GetColorScheme(tagCOLORSCHEME *)const 3776 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3777 int CListCtrl::GetColumn(int,tagLVCOLUMNA *)const 3778 int CSplitterWnd::GetColumnCount(void)const 3779 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3780 int CListCtrl::GetColumnOrderArray(int *,int)const 3781 int CListCtrl::GetColumnWidth(int)const 3782 CComboBox * CComboBoxEx::GetComboBoxCtrl(void)const 3783 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap(void)const 3784 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap(void)const 3785 ATL::CStringT > > CDaoDatabase::GetConnect(void) 3786 ATL::CStringT > > CDaoQueryDef::GetConnect(void) 3787 ATL::CStringT > > CDaoTableDef::GetConnect(void) 3788 ATL::CStringT > > const & CDatabase::GetConnect(void)const 3789 void CDatabase::GetConnectInfo(void) 3790 int CConnectionPoint::GetConnectionCount(void) 3791 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3792 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3793 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3794 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap(void)const 3795 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap(void)const 3796 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3797 CPtrArray const * CConnectionPoint::GetConnections(void) 3798 IConnectionPointContainer * CConnectionPoint::GetContainer(void) 3799 IDispatch * CHtmlView::GetContainer(void)const 3800 IOleItemContainer * COleDocument::GetContainer(void) 3801 IOleItemContainer * COleLinkingDoc::GetContainer(void) 3802 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3803 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3804 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3805 unsigned long CInternetConnection::GetContext(void)const 3806 unsigned long CInternetFile::GetContext(void)const 3807 unsigned long CInternetSession::GetContext(void)const 3808 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3809 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3810 COleControl * CDataPathProperty::GetControl(void) 3811 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3812 COleControlContainer * CWnd::GetControlContainer(void) 3813 long CDHtmlDialog::GetControlDispatch(char const *,IDispatch * *) 3814 unsigned long COleControl::GetControlFlags(void) 3815 void COleControlSite::GetControlInfo(void) 3816 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3817 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame(void)const 3818 IUnknown * CCmdTarget::GetControllingUnknown(void) 3819 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3820 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,char const *) 3821 tagVARIANT CDHtmlDialog::GetControlProperty(char const *,long) 3822 void COleControl::GetControlSize(int *,int *) 3823 int COlePropertyPage::GetControlStatus(unsigned int) 3824 IUnknown * CWnd::GetControlUnknown(void) 3825 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3826 int CInternetSession::GetCookie(char const *,char const *,ATL::CStringT > > &) 3827 int CInternetSession::GetCookie(char const *,char const *,char *,unsigned long) 3828 unsigned long CInternetSession::GetCookieLength(char const *,char const *) 3829 int CPrintDialog::GetCopies(void)const 3830 int CPrintDialogEx::GetCopies(void)const 3831 int CByteArray::GetCount(void)const 3832 int CComboBox::GetCount(void)const 3833 int CControlBar::GetCount(void)const 3834 int CDWordArray::GetCount(void)const 3835 int CListBox::GetCount(void)const 3836 int CMapPtrToPtr::GetCount(void)const 3837 int CMapPtrToWord::GetCount(void)const 3838 int CMapStringToOb::GetCount(void)const 3839 int CMapStringToPtr::GetCount(void)const 3840 int CMapStringToString::GetCount(void)const 3841 int CMapWordToOb::GetCount(void)const 3842 int CMapWordToPtr::GetCount(void)const 3843 int CObArray::GetCount(void)const 3844 int CObList::GetCount(void)const 3845 unsigned long CPropertySection::GetCount(void) 3846 unsigned long CPropertySet::GetCount(void) 3847 int CPtrArray::GetCount(void)const 3848 int CPtrList::GetCount(void)const 3849 int CStringArray::GetCount(void)const 3850 int CStringList::GetCount(void)const 3851 unsigned int CTreeCtrl::GetCount(void)const 3852 int CUIntArray::GetCount(void)const 3853 int CWordArray::GetCount(void)const 3854 int CListCtrl::GetCountPerPage(void)const 3855 int CFileFind::GetCreationTime(ATL::CTime &)const 3856 int CFileFind::GetCreationTime(_FILETIME *)const 3857 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3858 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3859 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3860 int CTabCtrl::GetCurFocus(void)const 3861 CBitmap * CDC::GetCurrentBitmap(void)const 3862 CBrush * CDC::GetCurrentBrush(void)const 3863 int CFtpConnection::GetCurrentDirectoryA(ATL::CStringT > > &)const 3864 int CFtpConnection::GetCurrentDirectoryA(char *,unsigned long *)const 3865 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3866 int CFtpConnection::GetCurrentDirectoryAsURL(char *,unsigned long *)const 3867 CFont * CDC::GetCurrentFont(void)const 3868 void CFontDialog::GetCurrentFont(tagLOGFONTA *) 3869 ATL::CStringT > > CDaoRecordset::GetCurrentIndex(void) 3870 tagMSG const * CWnd::GetCurrentMessage(void) 3871 CPalette * CDC::GetCurrentPalette(void)const 3872 CPen * CDC::GetCurrentPen(void)const 3873 CPoint CDC::GetCurrentPosition(void)const 3874 int CToolTipCtrl::GetCurrentTool(tagTOOLINFOA *)const 3875 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3876 int CComboBox::GetCurSel(void)const 3877 int CListBox::GetCurSel(void)const 3878 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3879 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3880 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3881 int CTabCtrl::GetCurSel(void)const 3882 HICON__ * CButton::GetCursor(void) 3883 IUnknown * CDataBoundProperty::GetCursor(void) 3884 IUnknown * CDataSourceControl::GetCursor(void) 3885 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3886 HICON__ * CStatic::GetCursor(void) 3887 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3888 int CDatabase::GetCursorCommitBehavior(void)const 3889 int CDatabase::GetCursorRollbackBehavior(void)const 3890 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 3891 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 3892 unsigned char * CByteArray::GetData(void) 3893 unsigned char const * CByteArray::GetData(void)const 3894 unsigned long * CDWordArray::GetData(void) 3895 unsigned long const * CDWordArray::GetData(void)const 3896 CObject * * CObArray::GetData(void) 3897 CObject const * * CObArray::GetData(void)const 3898 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3899 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 3900 void * * CPtrArray::GetData(void) 3901 void const * * CPtrArray::GetData(void)const 3902 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3903 ATL::CStringT > > * CStringArray::GetData(void) 3904 ATL::CStringT > > const * CStringArray::GetData(void)const 3905 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 3906 unsigned int * CUIntArray::GetData(void) 3907 unsigned int const * CUIntArray::GetData(void)const 3908 unsigned short * CWordArray::GetData(void) 3909 unsigned short const * CWordArray::GetData(void)const 3910 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3911 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3912 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3913 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3914 void CDaoRecordset::GetDataAndFixupNulls(void) 3915 short CDaoWorkspace::GetDatabaseCount(void) 3916 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 3917 void CDaoWorkspace::GetDatabaseInfo(char const *,CDaoDatabaseInfo &,unsigned long) 3918 ATL::CStringT > > CDatabase::GetDatabaseName(void)const 3919 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3920 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3921 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3922 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3923 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3924 CNoTrackObject * CThreadLocalObject::GetDataNA(void) 3925 IDataObject * COleServerItem::GetDataObject(void) 3926 COleControl::CControlDataSource * COleControl::GetDataSource(void) 3927 COleDataSource * COleServerItem::GetDataSource(void) 3928 ATL::COleDateTime CDaoQueryDef::GetDateCreated(void) 3929 ATL::COleDateTime CDaoRecordset::GetDateCreated(void) 3930 ATL::COleDateTime CDaoTableDef::GetDateCreated(void) 3931 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated(void) 3932 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated(void) 3933 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated(void) 3934 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3935 CDC * CWnd::GetDC(void) 3936 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3937 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3938 HACCEL__ * CDocument::GetDefaultAccelerator(void) 3939 HACCEL__ * CFrameWnd::GetDefaultAccelerator(void) 3940 HACCEL__ * COleServerDoc::GetDefaultAccelerator(void) 3941 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformat &)const 3942 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2A &)const 3943 ATL::CStringT > > CRecordset::GetDefaultConnect(void) 3944 ATL::CStringT > > CDaoRecordset::GetDefaultDBName(void) 3945 short CRecordset::GetDefaultFieldType(short) 3946 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3947 HMENU__ * CDocument::GetDefaultMenu(void) 3948 HMENU__ * COleServerDoc::GetDefaultMenu(void) 3949 int CPrintDialog::GetDefaults(void) 3950 int CPrintDialogEx::GetDefaults(void) 3951 ATL::CStringT > > CDaoRecordset::GetDefaultSQL(void) 3952 ATL::CStringT > > CRecordset::GetDefaultSQL(void) 3953 unsigned long COccManager::GetDefBtnCode(CWnd *) 3954 unsigned long COleControlSite::GetDefBtnCode(void) 3955 unsigned long CDialog::GetDefID(void)const 3956 int CToolTipCtrl::GetDelayTime(unsigned long)const 3957 int CDumpContext::GetDepth(void)const 3958 CWnd * CWnd::GetDescendantWindow(int,int)const 3959 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3960 CWnd * CWnd::GetDesktopWindow(void) 3961 int CDC::GetDeviceCaps(int)const 3962 ATL::CStringT > > CPageSetupDialog::GetDeviceName(void)const 3963 ATL::CStringT > > CPrintDialog::GetDeviceName(void)const 3964 ATL::CStringT > > CPrintDialogEx::GetDeviceName(void)const 3965 CPoint CScrollView::GetDeviceScrollPosition(void)const 3966 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3967 _devicemodeA * CPageSetupDialog::GetDevMode(void)const 3968 _devicemodeA * CPrintDialog::GetDevMode(void)const 3969 _devicemodeA * CPrintDialogEx::GetDevMode(void)const 3970 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3971 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3972 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3973 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3974 DHtmlEventMapEntry const * GetDHtmlEventMap(void) 3975 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap(void) 3976 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap(void) 3977 unsigned long COleSafeArray::GetDim(void) 3978 CImageList * CToolBarCtrl::GetDisabledImageList(void)const 3979 int CCmdTarget::GetDispatchIID(_GUID *) 3980 int COleControl::GetDispatchIID(_GUID *) 3981 AFX_DISPMAP const * CCmdTarget::GetDispatchMap(void)const 3982 AFX_DISPMAP const * COleControlContainer::GetDispatchMap(void)const 3983 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3984 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName(void) 3985 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,char const *,int,int)const 3986 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 3987 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 3988 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 3989 int COleControlSite::GetDlgCtrlID(void)const 3990 int CWnd::GetDlgCtrlID(void)const 3991 CWnd * COleControlContainer::GetDlgItem(int)const 3992 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 3993 CWnd * CWnd::GetDlgItem(int)const 3994 void CWnd::GetDlgItem(int,HWND__ * *)const 3995 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 3996 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 3997 int COleControlContainer::GetDlgItemTextA(int,char *,int)const 3998 int CWnd::GetDlgItemTextA(int,ATL::CStringT > > &)const 3999 int CWnd::GetDlgItemTextA(int,char *,int)const 4000 CFrameWnd * COleIPFrameWnd::GetDocFrame(void) 4001 CDockBar * CDockContext::GetDockBar(unsigned long) 4002 CControlBar * CDockBar::GetDockedControlBar(int)const 4003 int CDockBar::GetDockedCount(void)const 4004 int CDockBar::GetDockedVisibleCount(void)const 4005 CFrameWnd * CControlBar::GetDockingFrame(void)const 4006 void CFrameWnd::GetDockState(CDockState &)const 4007 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 4008 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 4009 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 4010 CDocTemplate * CDocument::GetDocTemplate(void)const 4011 CDocument * CDocItem::GetDocument(void)const 4012 COleDocument * COleClientItem::GetDocument(void)const 4013 COleServerDoc * COleServerItem::GetDocument(void)const 4014 CRichEditDoc * CRichEditCntrItem::GetDocument(void) 4015 CRichEditDoc * CRichEditView::GetDocument(void)const 4016 CDocument * CView::GetDocument(void)const 4017 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 4018 int CDocManager::GetDocumentCount(void) 4019 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 4020 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 4021 enum tagDVASPECT COleClientItem::GetDrawAspect(void)const 4022 enum tagDVASPECT COleConvertDialog::GetDrawAspect(void)const 4023 enum tagDVASPECT COleInsertDialog::GetDrawAspect(void)const 4024 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect(void)const 4025 ATL::CStringT > > CPageSetupDialog::GetDriverName(void)const 4026 ATL::CStringT > > CPrintDialog::GetDriverName(void)const 4027 ATL::CStringT > > CPrintDialogEx::GetDriverName(void)const 4028 _TREEITEM * CTreeCtrl::GetDropHilightItem(void)const 4029 void CComboBox::GetDroppedControlRect(tagRECT *)const 4030 int CComboBox::GetDroppedState(void)const 4031 int CComboBox::GetDroppedWidth(void)const 4032 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 4033 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 4034 IDropTarget * CReBarCtrl::GetDropTarget(void)const 4035 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 4036 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 4037 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 4038 IUnknown * CWnd::GetDSCCursor(void) 4039 CEdit * CListCtrl::GetEditControl(void)const 4040 CEdit * CTreeCtrl::GetEditControl(void)const 4041 CEdit * CComboBoxEx::GetEditCtrl(void)const 4042 CEdit & CEditView::GetEditCtrl(void)const 4043 short CDaoRecordset::GetEditMode(void) 4044 unsigned long CComboBox::GetEditSel(void)const 4045 long CDHtmlDialog::GetElement(char const *,IDispatch * *,int *) 4046 long CDHtmlDialog::GetElement(char const *,IHTMLElement * *) 4047 void COleSafeArray::GetElement(long *,void *) 4048 wchar_t * CDHtmlDialog::GetElementHtml(char const *) 4049 long CDHtmlDialog::GetElementInterface(char const *,_GUID const &,void * *) 4050 tagVARIANT CDHtmlDialog::GetElementProperty(char const *,long) 4051 wchar_t * CDHtmlDialog::GetElementText(char const *) 4052 unsigned long COleSafeArray::GetElemSize(void) 4053 COleServerItem * COleServerDoc::GetEmbeddedItem(void) 4054 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 4055 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 4056 int COleControl::GetEnabled(void) 4057 HENHMETAFILE__ * CStatic::GetEnhMetaFileA(void)const 4058 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 4059 int CPalette::GetEntryCount(void) 4060 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 4061 int ATL::CStringT > >::GetEnvironmentVariableA(wchar_t const *) 4062 int ATL::CStringT > >::GetEnvironmentVariableA(char const *) 4063 short CDaoException::GetErrorCount(void) 4064 void CDaoException::GetErrorInfo(int) 4065 int CArchiveException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4066 int CDaoException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4067 int CDBException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4068 int CException::GetErrorMessage(char *,unsigned int,unsigned int *) 4069 int CException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4070 int CFileException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4071 int CInternetException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4072 int COleDispatchException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4073 int COleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4074 int CSimpleException::GetErrorMessage(char *,unsigned int,unsigned int *)const 4075 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 4076 int COleControlSite::GetEventIID(_GUID *) 4077 AFX_EVENTMAP const * COleControl::GetEventMap(void)const 4078 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(char const *,long *)const 4079 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(char const *) 4080 long CRichEditCtrl::GetEventMask(void)const 4081 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 4082 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap(void)const 4083 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap(void)const 4084 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap(void)const 4085 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap(void)const 4086 unsigned long COleControlSite::GetExStyle(void)const 4087 unsigned long CWnd::GetExStyle(void)const 4088 IDispatch * COleControl::GetExtendedControl(void) 4089 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 4090 unsigned long CComboBoxEx::GetExtendedStyle(void)const 4091 unsigned long CListCtrl::GetExtendedStyle(void)const 4092 unsigned long CTabCtrl::GetExtendedStyle(void)const 4093 unsigned long CToolBarCtrl::GetExtendedStyle(void)const 4094 int CComboBox::GetExtendedUI(void)const 4095 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 4096 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 4097 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 4098 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 4099 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 4100 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4101 long CBrowserControlSite::GetExternal(IDispatch * *) 4102 long CDHtmlDialog::GetExternal(IDispatch * *) 4103 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 4104 int CPen::GetExtLogPen(tagEXTLOGPEN *) 4105 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 4106 int COleControl::GetExtraConnectionPoints(CPtrArray *) 4107 ATL::CStringT > > CFontDialog::GetFaceName(void)const 4108 short CDaoQueryDef::GetFieldCount(void) 4109 short CDaoRecordset::GetFieldCount(void) 4110 short CDaoTableDef::GetFieldCount(void) 4111 int CDaoRecordset::GetFieldIndex(void *) 4112 short CRecordset::GetFieldIndexByName(char const *) 4113 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 4114 void CDaoQueryDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 4115 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 4116 void CDaoRecordset::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 4117 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 4118 void CDaoTableDef::GetFieldInfo(char const *,CDaoFieldInfo &,unsigned long) 4119 unsigned long CDaoRecordset::GetFieldLength(int) 4120 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 4121 unsigned char CRecordset::GetFieldStatus(unsigned long) 4122 COleVariant CDaoRecordset::GetFieldValue(int) 4123 COleVariant CDaoRecordset::GetFieldValue(char const *) 4124 void CDaoRecordset::GetFieldValue(int,COleVariant &) 4125 void CDaoRecordset::GetFieldValue(char const *,COleVariant &) 4126 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 4127 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 4128 void CRecordset::GetFieldValue(short,CDBVariant &,short) 4129 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 4130 void CRecordset::GetFieldValue(char const *,ATL::CStringT > > &) 4131 void CRecordset::GetFieldValue(char const *,CDBVariant &,short) 4132 CFile * CArchive::GetFile(void)const 4133 CFile * CDocument::GetFile(char const *,unsigned int,CFileException *) 4134 int CFtpConnection::GetFile(char const *,char const *,int,unsigned long,unsigned long,unsigned long) 4135 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 4136 ATL::CStringT > > CFileDialog::GetFileExt(void)const 4137 ATL::CStringT > > CFile::GetFileName(void)const 4138 ATL::CStringT > > CFileDialog::GetFileName(void)const 4139 ATL::CStringT > > CFileFind::GetFileName(void)const 4140 ATL::CStringT > > CGopherFileFind::GetFileName(void)const 4141 ATL::CStringT > > COleChangeSourceDialog::GetFileName(void) 4142 ATL::CStringT > > CFile::GetFilePath(void)const 4143 ATL::CStringT > > CFileFind::GetFilePath(void)const 4144 ATL::CStringT > > CGopherFileFind::GetFilePath(void)const 4145 ATL::CStringT > > CFile::GetFileTitle(void)const 4146 ATL::CStringT > > CFileDialog::GetFileTitle(void)const 4147 ATL::CStringT > > CFileFind::GetFileTitle(void)const 4148 ATL::CStringT > > CGopherFileFind::GetFileTitle(void)const 4149 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 4150 ATL::CStringT > > CFileFind::GetFileURL(void)const 4151 ATL::CStringT > > CFtpFileFind::GetFileURL(void)const 4152 ATL::CStringT > > CGopherFileFind::GetFileURL(void)const 4153 ATL::CStringT > > CHttpFile::GetFileURL(void)const 4154 ATL::CStringT > > CFindReplaceDialog::GetFindString(void)const 4155 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 4156 __POSITION * CMultiDocTemplate::GetFirstDocPosition(void)const 4157 __POSITION * CSingleDocTemplate::GetFirstDocPosition(void)const 4158 __POSITION * CDocManager::GetFirstDocTemplatePosition(void)const 4159 __POSITION * CWinApp::GetFirstDocTemplatePosition(void)const 4160 CFrameWnd * COleDocument::GetFirstFrame(void) 4161 __POSITION * CListCtrl::GetFirstSelectedItemPosition(void)const 4162 __POSITION * CDocument::GetFirstViewPosition(void)const 4163 _TREEITEM * CTreeCtrl::GetFirstVisibleItem(void)const 4164 int CEdit::GetFirstVisibleLine(void)const 4165 int CRichEditCtrl::GetFirstVisibleLine(void)const 4166 CWnd * COleControl::GetFocus(void) 4167 CWnd * CWnd::GetFocus(void) 4168 long COleControlSite::XOleIPSite::GetFocus(void) 4169 ATL::CStringT > > CFileDialog::GetFolderPath(void)const 4170 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 4171 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 4172 IFontDisp * COleControl::GetFont(void) 4173 CFont * CWnd::GetFont(void)const 4174 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 4175 IFontDisp * CFontHolder::GetFontDispatch(void) 4176 HFONT__ * CFontHolder::GetFontHandle(long,long) 4177 HFONT__ * CFontHolder::GetFontHandle(void) 4178 unsigned long CDC::GetFontLanguageInfo(void)const 4179 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 4180 void COleControl::GetFontTextMetrics(tagTEXTMETRICA *,CFontHolder &) 4181 unsigned long COleControl::GetForeColor(void) 4182 CWnd * CWnd::GetForegroundWindow(void) 4183 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc(void)const 4184 _GUID CPropertySection::GetFormatID(void) 4185 unsigned short CPropertySet::GetFormatVersion(void) 4186 int CPrintDialog::GetFromPage(void)const 4187 unsigned int CPrintInfo::GetFromPage(void)const 4188 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix(void) 4189 CFtpConnection * CInternetSession::GetFtpConnection(char const *,char const *,char const *,unsigned short,int) 4190 ATL::CStringT > > CHtmlView::GetFullName(void)const 4191 int CHtmlView::GetFullScreen(void)const 4192 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 4193 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 4194 unsigned long CDC::GetGlyphOutlineA(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 4195 CGopherConnection * CInternetSession::GetGopherConnection(char const *,char const *,char const *,unsigned short) 4196 int CDC::GetGraphicsMode(void)const 4197 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 4198 CBrush * CDC::GetHalftoneBrush(void) 4199 void * CEdit::GetHandle(void)const 4200 unsigned int CRectTracker::GetHandleMask(void)const 4201 void CRectTracker::GetHandleRect(int,CRect *)const 4202 int CRectTracker::GetHandleSize(tagRECT const *)const 4203 unsigned int CMapPtrToPtr::GetHashTableSize(void)const 4204 unsigned int CMapPtrToWord::GetHashTableSize(void)const 4205 unsigned int CMapStringToOb::GetHashTableSize(void)const 4206 unsigned int CMapStringToPtr::GetHashTableSize(void)const 4207 unsigned int CMapStringToString::GetHashTableSize(void)const 4208 unsigned int CMapWordToOb::GetHashTableSize(void)const 4209 unsigned int CMapWordToPtr::GetHashTableSize(void)const 4210 CObject * & CObList::GetHead(void) 4211 CObject const * CObList::GetHead(void)const 4212 void * & CPtrList::GetHead(void) 4213 void const * CPtrList::GetHead(void)const 4214 ATL::CStringT > > & CStringList::GetHead(void) 4215 ATL::CStringT > > const & CStringList::GetHead(void)const 4216 CHeaderCtrl * CListCtrl::GetHeaderCtrl(void)const 4217 __POSITION * CObList::GetHeadPosition(void)const 4218 __POSITION * CPtrList::GetHeadPosition(void)const 4219 __POSITION * CStringList::GetHeadPosition(void)const 4220 long CHtmlView::GetHeight(void)const 4221 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 4222 enum AFX_HELP_TYPE CWinApp::GetHelpMode(void) 4223 void CSplitterWnd::GetHitRect(int,CRect &) 4224 unsigned int CComboBox::GetHorizontalExtent(void)const 4225 int CListBox::GetHorizontalExtent(void)const 4226 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 4227 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 4228 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 4229 HICON__ * CListCtrl::GetHotCursor(void)const 4230 CImageList * CToolBarCtrl::GetHotImageList(void)const 4231 int CListCtrl::GetHotItem(void)const 4232 int CToolBarCtrl::GetHotItem(void)const 4233 unsigned long CHotKeyCtrl::GetHotKey(void)const 4234 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 4235 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName(void)const 4236 unsigned long CListCtrl::GetHoverTime(void)const 4237 IDispatch * CHtmlView::GetHtmlDocument(void)const 4238 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned short,char const *,char const *) 4239 CHttpConnection * CInternetSession::GetHttpConnection(char const *,unsigned long,unsigned short,char const *,char const *) 4240 unsigned int COleControl::GetHwnd(void) 4241 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 4242 HICON__ * CButton::GetIcon(void)const 4243 HICON__ * CStatic::GetIcon(void)const 4244 HICON__ * CStatusBarCtrl::GetIcon(int)const 4245 HICON__ * CWnd::GetIcon(int)const 4246 HICON__ * COleClientItem::GetIconFromRegistry(void)const 4247 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 4248 void * COleChangeIconDialog::GetIconicMetafile(void)const 4249 void * COleClientItem::GetIconicMetafile(void) 4250 void * COleConvertDialog::GetIconicMetafile(void)const 4251 void * COleInsertDialog::GetIconicMetafile(void)const 4252 void * COlePasteSpecialDialog::GetIconicMetafile(void)const 4253 char const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 4254 unsigned long CProperty::GetID(void) 4255 int CPropertySection::GetID(char const *,unsigned long *) 4256 IDataObject * COleDataObject::GetIDataObject(int) 4257 IDispatch * CCmdTarget::GetIDispatch(int) 4258 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4259 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4260 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4261 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4262 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4263 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4264 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4265 IFileDialogCustomize * CFileDialog::GetIFileDialogCustomize(void) 4266 IFileOpenDialog * CFileDialog::GetIFileOpenDialog(void) 4267 IFileSaveDialog * CFileDialog::GetIFileSaveDialog(void) 4268 _GUID const & COleControl::XEventConnPt::GetIID(void) 4269 int CImageList::GetImageCount(void)const 4270 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 4271 CImageList * CComboBoxEx::GetImageList(void)const 4272 CImageList * CHeaderCtrl::GetImageList(int)const 4273 CImageList * CListCtrl::GetImageList(int)const 4274 CImageList * CReBarCtrl::GetImageList(void)const 4275 CImageList * CTabCtrl::GetImageList(void)const 4276 CImageList * CToolBarCtrl::GetImageList(void)const 4277 CImageList * CTreeCtrl::GetImageList(int)const 4278 unsigned int CTreeCtrl::GetIndent(void)const 4279 short CDaoRecordset::GetIndexCount(void) 4280 short CDaoTableDef::GetIndexCount(void) 4281 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 4282 void CDaoRecordset::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 4283 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 4284 void CDaoTableDef::GetIndexInfo(char const *,CDaoIndexInfo &,unsigned long) 4285 ATL::CStringT > > CDaoWorkspace::GetIniPath(void) 4286 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 4287 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 4288 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem(void)const 4289 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 4290 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 4291 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 4292 HMENU__ * COleIPFrameWnd::GetInPlaceMenu(void) 4293 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 4294 CWnd * COleClientItem::GetInPlaceWindow(void) 4295 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 4296 unsigned long CToolBarCtrl::GetInsertMarkColor(void)const 4297 unsigned long CTreeCtrl::GetInsertMarkColor(void)const 4298 void CSplitterWnd::GetInsideRect(CRect &)const 4299 IUnknown * CCmdTarget::GetInterface(void const *) 4300 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 4301 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 4302 IUnknown * COleControl::GetInterfaceHook(void const *) 4303 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 4304 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap(void)const 4305 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap(void)const 4306 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap(void)const 4307 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap(void)const 4308 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap(void)const 4309 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap(void)const 4310 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap(void)const 4311 AFX_INTERFACEMAP const * CFileDialog::GetInterfaceMap(void)const 4312 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap(void)const 4313 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap(void)const 4314 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap(void)const 4315 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap(void)const 4316 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap(void)const 4317 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap(void)const 4318 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap(void)const 4319 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap(void)const 4320 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap(void)const 4321 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap(void)const 4322 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap(void)const 4323 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap(void)const 4324 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap(void)const 4325 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap(void)const 4326 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap(void)const 4327 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap(void)const 4328 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap(void)const 4329 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap(void)const 4330 IRichEditOle * CRichEditCtrl::GetIRichEditOle(void)const 4331 int CDaoWorkspace::GetIsolateODBCTrans(void) 4332 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMA *) 4333 int CHeaderCtrl::GetItem(int,_HD_ITEMA *)const 4334 int CListCtrl::GetItem(tagLVITEMA *)const 4335 int CTabCtrl::GetItem(int,tagTCITEMA *)const 4336 int CTreeCtrl::GetItem(tagTVITEMA *)const 4337 void COleServerDoc::GetItemClipRect(tagRECT *)const 4338 int CHeaderCtrl::GetItemCount(void)const 4339 int CListCtrl::GetItemCount(void)const 4340 int CTabCtrl::GetItemCount(void)const 4341 unsigned long CComboBox::GetItemData(int)const 4342 unsigned long CListBox::GetItemData(int)const 4343 unsigned long CListCtrl::GetItemData(int)const 4344 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 4345 void * CComboBox::GetItemDataPtr(int)const 4346 void * CListBox::GetItemDataPtr(int)const 4347 int CComboBox::GetItemHeight(int)const 4348 int CListBox::GetItemHeight(int)const 4349 short CTreeCtrl::GetItemHeight(void)const 4350 unsigned int CStatusBar::GetItemID(int)const 4351 unsigned int CToolBar::GetItemID(int)const 4352 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 4353 ATL::CStringT > > COleChangeSourceDialog::GetItemName(void) 4354 void COleClientItem::GetItemName(char *)const 4355 void COleClientItem::GetItemName(char *,unsigned int)const 4356 ATL::CStringT > > const & COleServerItem::GetItemName(void)const 4357 int CListCtrl::GetItemPosition(int,tagPOINT *)const 4358 void COleServerDoc::GetItemPosition(tagRECT *)const 4359 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 4360 int CListBox::GetItemRect(int,tagRECT *)const 4361 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 4362 void CStatusBar::GetItemRect(int,tagRECT *)const 4363 int CTabCtrl::GetItemRect(int,tagRECT *)const 4364 void CToolBar::GetItemRect(int,tagRECT *)const 4365 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 4366 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 4367 int CListCtrl::GetItemSpacing(int,int *,int *)const 4368 unsigned int CListCtrl::GetItemState(int,unsigned int)const 4369 unsigned int COleClientItem::GetItemState(void)const 4370 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 4371 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 4372 void COleClientItem::GetItemStorage(void) 4373 void COleClientItem::GetItemStorageCompound(void) 4374 void COleClientItem::GetItemStorageFlat(void) 4375 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 4376 int CListCtrl::GetItemText(int,int,char *,int)const 4377 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 4378 int CDC::GetKerningPairsA(int,tagKERNINGPAIR *)const 4379 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 4380 int CFileFind::GetLastAccessTime(ATL::CTime &)const 4381 int CFileFind::GetLastAccessTime(_FILETIME *)const 4382 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 4383 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 4384 CWnd * CWnd::GetLastActivePopup(void)const 4385 int CAsyncSocket::GetLastError(void) 4386 unsigned int COleDialog::GetLastError(void)const 4387 COleVariant CDaoRecordset::GetLastModifiedBookmark(void) 4388 long COleClientItem::GetLastStatus(void)const 4389 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 4390 _TREEITEM * CTreeCtrl::GetLastVisibleItem(void)const 4391 int CFileFind::GetLastWriteTime(ATL::CTime &)const 4392 int CFileFind::GetLastWriteTime(_FILETIME *)const 4393 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 4394 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 4395 unsigned long CDC::GetLayout(void)const 4396 long CRecordset::GetLBFetchSize(long) 4397 void COleSafeArray::GetLBound(unsigned long,long *) 4398 long CRecordset::GetLBReallocSize(long) 4399 int CComboBox::GetLBText(int,char *)const 4400 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 4401 int CComboBox::GetLBTextLen(int)const 4402 long CHtmlView::GetLeft(void)const 4403 int ATL::CSimpleStringT::GetLength(void)const 4404 int ATL::CSimpleStringT::GetLength(void)const 4405 unsigned __int64 CFile::GetLength(void)const 4406 unsigned __int64 CFileFind::GetLength(void)const 4407 unsigned __int64 CGopherFileFind::GetLength(void)const 4408 unsigned __int64 CInternetFile::GetLength(void)const 4409 unsigned __int64 CMemFile::GetLength(void)const 4410 unsigned __int64 COleStreamFile::GetLength(void)const 4411 unsigned __int64 CSocketFile::GetLength(void)const 4412 unsigned __int64 CStdioFile::GetLength(void)const 4413 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 4414 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 4415 unsigned int CEdit::GetLimitText(void)const 4416 long CRichEditCtrl::GetLimitText(void)const 4417 int CEdit::GetLine(int,char *)const 4418 int CEdit::GetLine(int,char *,int)const 4419 int CRichEditCtrl::GetLine(int,char *)const 4420 int CRichEditCtrl::GetLine(int,char *,int)const 4421 unsigned long CTreeCtrl::GetLineColor(void)const 4422 int CEdit::GetLineCount(void)const 4423 int CRichEditCtrl::GetLineCount(void)const 4424 int CSliderCtrl::GetLineSize(void)const 4425 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 4426 long COleUILinkInfo::GetLinkSource(unsigned long,char * *,unsigned long *,char * *,char * *,int *,int *) 4427 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 4428 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 4429 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions(void) 4430 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 4431 CPtrList * CPropertySection::GetList(void) 4432 CPtrList * CPropertySet::GetList(void) 4433 CListCtrl & CListView::GetListCtrl(void)const 4434 unsigned long CComboBox::GetLocale(void)const 4435 unsigned long CListBox::GetLocale(void)const 4436 ATL::CStringT > > CHtmlView::GetLocationName(void)const 4437 ATL::CStringT > > CHtmlView::GetLocationURL(void)const 4438 CGopherLocator CGopherFileFind::GetLocator(void)const 4439 int CGopherLocator::GetLocatorType(unsigned long &)const 4440 int CDaoRecordset::GetLockingMode(void) 4441 int CBrush::GetLogBrush(tagLOGBRUSH *) 4442 int CFont::GetLogFont(tagLOGFONTA *) 4443 short CDaoWorkspace::GetLoginTimeout(void) 4444 int CPen::GetLogPen(tagLOGPEN *) 4445 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 4446 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 4447 long CFieldExchange::GetLongBinarySize(int) 4448 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4449 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4450 CFrameWnd * COleIPFrameWnd::GetMainFrame(void) 4451 CWnd * CWinThread::GetMainWnd(void) 4452 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 4453 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 4454 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 4455 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 4456 int CDC::GetMapMode(void)const 4457 void CToolTipCtrl::GetMargin(tagRECT *)const 4458 unsigned long CEdit::GetMargins(void)const 4459 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 4460 CRect CRichEditView::GetMargins(void)const 4461 int CConnectionPoint::GetMaxConnections(void) 4462 unsigned int CPrintInfo::GetMaxPage(void)const 4463 int CMonthCalCtrl::GetMaxSelCount(void)const 4464 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 4465 int CToolBarCtrl::GetMaxTextRows(void)const 4466 int CToolTipCtrl::GetMaxTipWidth(void)const 4467 unsigned long CMonthCalCtrl::GetMaxTodayWidth(void)const 4468 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame(void) 4469 CMenu * CFrameWnd::GetMenu(void)const 4470 CMenu * CWnd::GetMenu(void)const 4471 int CHtmlView::GetMenuBar(void)const 4472 int CFrameWnd::GetMenuBarInfo(long,long,tagMENUBARINFO *)const 4473 unsigned long CFrameWnd::GetMenuBarState(void)const 4474 unsigned long CFrameWnd::GetMenuBarVisibility(void)const 4475 unsigned long CMenu::GetMenuContextHelpId(void)const 4476 unsigned int CMenu::GetMenuItemCount(void)const 4477 unsigned int CMenu::GetMenuItemID(int)const 4478 int CMenu::GetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 4479 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 4480 int CMenu::GetMenuStringA(unsigned int,ATL::CStringT > > &,unsigned int)const 4481 int CMenu::GetMenuStringA(unsigned int,char *,int,unsigned int)const 4482 CWnd * CFrameWnd::GetMessageBar(void) 4483 CWnd * CMDIChildWnd::GetMessageBar(void) 4484 AFX_MSGMAP const * CCheckListBox::GetMessageMap(void)const 4485 AFX_MSGMAP const * CCmdTarget::GetMessageMap(void)const 4486 AFX_MSGMAP const * CCommonDialog::GetMessageMap(void)const 4487 AFX_MSGMAP const * CControlBar::GetMessageMap(void)const 4488 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap(void)const 4489 AFX_MSGMAP const * CCtrlView::GetMessageMap(void)const 4490 AFX_MSGMAP const * CDaoRecordView::GetMessageMap(void)const 4491 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap(void)const 4492 AFX_MSGMAP const * CDialog::GetMessageMap(void)const 4493 AFX_MSGMAP const * CDialogBar::GetMessageMap(void)const 4494 AFX_MSGMAP const * CDockBar::GetMessageMap(void)const 4495 AFX_MSGMAP const * CDocObjectServer::GetMessageMap(void)const 4496 AFX_MSGMAP const * CDocument::GetMessageMap(void)const 4497 AFX_MSGMAP const * CEditView::GetMessageMap(void)const 4498 AFX_MSGMAP const * CFormView::GetMessageMap(void)const 4499 AFX_MSGMAP const * CFrameWnd::GetMessageMap(void)const 4500 AFX_MSGMAP const * CHtmlEditView::GetMessageMap(void)const 4501 AFX_MSGMAP const * CHtmlView::GetMessageMap(void)const 4502 AFX_MSGMAP const * CListCtrl::GetMessageMap(void)const 4503 AFX_MSGMAP const * CListView::GetMessageMap(void)const 4504 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap(void)const 4505 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap(void)const 4506 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap(void)const 4507 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap(void)const 4508 AFX_MSGMAP const * COleControl::GetMessageMap(void)const 4509 AFX_MSGMAP const * COleDBRecordView::GetMessageMap(void)const 4510 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap(void)const 4511 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap(void)const 4512 AFX_MSGMAP const * COlePropertyPage::GetMessageMap(void)const 4513 AFX_MSGMAP const * COleResizeBar::GetMessageMap(void)const 4514 AFX_MSGMAP const * COleServerDoc::GetMessageMap(void)const 4515 AFX_MSGMAP const * CPreviewView::GetMessageMap(void)const 4516 AFX_MSGMAP const * CPrintDialog::GetMessageMap(void)const 4517 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap(void)const 4518 AFX_MSGMAP const * CPropertyPage::GetMessageMap(void)const 4519 AFX_MSGMAP const * CPropertySheet::GetMessageMap(void)const 4520 AFX_MSGMAP const * CReBar::GetMessageMap(void)const 4521 AFX_MSGMAP const * CRecordView::GetMessageMap(void)const 4522 AFX_MSGMAP const * CRichEditView::GetMessageMap(void)const 4523 AFX_MSGMAP const * CScrollView::GetMessageMap(void)const 4524 AFX_MSGMAP const * CSocketWnd::GetMessageMap(void)const 4525 AFX_MSGMAP const * CSplitterWnd::GetMessageMap(void)const 4526 AFX_MSGMAP const * CStatusBar::GetMessageMap(void)const 4527 AFX_MSGMAP const * CTabCtrl::GetMessageMap(void)const 4528 AFX_MSGMAP const * CToolBar::GetMessageMap(void)const 4529 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap(void)const 4530 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap(void)const 4531 AFX_MSGMAP const * CTreeCtrl::GetMessageMap(void)const 4532 AFX_MSGMAP const * CTreeView::GetMessageMap(void)const 4533 AFX_MSGMAP const * CView::GetMessageMap(void)const 4534 AFX_MSGMAP const * CWinApp::GetMessageMap(void)const 4535 AFX_MSGMAP const * CWnd::GetMessageMap(void)const 4536 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4537 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4538 long CDataSourceControl::GetMetaData(void) 4539 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4540 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4541 unsigned int CPrintInfo::GetMinPage(void)const 4542 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4543 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4544 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4545 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4546 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4547 float CDC::GetMiterLimit(void)const 4548 int CEdit::GetModify(void)const 4549 int CRichEditCtrl::GetModify(void)const 4550 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4551 IMoniker * CMonikerFile::GetMoniker(void)const 4552 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4553 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4554 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4555 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4556 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4557 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4558 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4559 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4560 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4561 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4562 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4563 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl(void)const 4564 CFont * CDateTimeCtrl::GetMonthCalFont(void)const 4565 int CMonthCalCtrl::GetMonthDelta(void)const 4566 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4567 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4568 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4569 ATL::CStringT > > CDaoDatabase::GetName(void) 4570 ATL::CStringT > > CDaoQueryDef::GetName(void) 4571 ATL::CStringT > > CDaoRecordset::GetName(void) 4572 ATL::CStringT > > CDaoTableDef::GetName(void) 4573 ATL::CStringT > > CDaoWorkspace::GetName(void) 4574 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4575 unsigned long CDC::GetNearestColor(unsigned long)const 4576 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4577 unsigned long COleClientItem::GetNewItemNumber(void) 4578 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4579 CDataBoundProperty * CDataBoundProperty::GetNext(void) 4580 CObject * & CObList::GetNext(__POSITION * &) 4581 CObject const * CObList::GetNext(__POSITION * &)const 4582 void * & CPtrList::GetNext(__POSITION * &) 4583 void const * CPtrList::GetNext(__POSITION * &)const 4584 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4585 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4586 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4587 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4588 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4589 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4590 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4591 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4592 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4593 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4594 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4595 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4596 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4597 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4598 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4599 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4600 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4601 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4602 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4603 int COleDataObject::GetNextFormat(tagFORMATETC *) 4604 int CListCtrl::GetNextItem(int,int)const 4605 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4606 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4607 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4608 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4609 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4610 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4611 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4612 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4613 CView * CDocument::GetNextView(__POSITION * &)const 4614 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4615 CWnd * CWnd::GetNextWindow(unsigned int)const 4616 ATL::CStringData * CAfxStringMgr::GetNilString(void) 4617 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4618 void CCmdTarget::GetNotSupported(void) 4619 void COleControl::GetNotSupported(void) 4620 unsigned int CListCtrl::GetNumberOfWorkAreas(void)const 4621 unsigned int CSliderCtrl::GetNumTics(void)const 4622 int CGdiObject::GetObject(int,void *)const 4623 ATL::CStringT > > CHttpFile::GetObject(void)const 4624 int CGdiObject::GetObjectA(int,void *)const 4625 ATL::CStringT > > CHttpFile::GetObjectA(void)const 4626 long COleLinkingDoc::XOleItemContainer::GetObjectA(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4627 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4628 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4629 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4630 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,char * *,char * *,char * *,char * *) 4631 unsigned int CArchive::GetObjectSchema(void) 4632 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4633 unsigned int CGdiObject::GetObjectType(void)const 4634 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo(void) 4635 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo(void) 4636 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo(void) 4637 short CRecordset::GetODBCFieldCount(void)const 4638 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4639 void CRecordset::GetODBCFieldInfo(char const *,CODBCFieldInfo &) 4640 short CDaoQueryDef::GetODBCTimeout(void) 4641 int CHtmlView::GetOffline(void)const 4642 tagOFNA & CFileDialog::GetOFN(void) 4643 tagOFNA const & CFileDialog::GetOFN(void)const 4644 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4645 IOleObject * COleServerItem::GetOleObject(void) 4646 unsigned long COleSafeArray::GetOneDimSize(void) 4647 CWnd * CWnd::GetOpenClipboardWindow(void) 4648 int CDocManager::GetOpenDocumentCount(void) 4649 int CWinApp::GetOpenDocumentCount(void) 4650 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4651 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4652 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4653 unsigned int CRichEditCtrl::GetOptions(void)const 4654 int CHeaderCtrl::GetOrderArray(int *,int)const 4655 int CListCtrl::GetOrigin(tagPOINT *)const 4656 unsigned long CPropertySet::GetOSVersion(void) 4657 CWnd * COleControl::GetOuterWindow(void)const 4658 unsigned int CDC::GetOutlineTextMetricsA(unsigned int,_OUTLINETEXTMETRICA *)const 4659 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4660 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4661 CSize CDC::GetOutputTabbedTextExtent(char const *,int,int,int *)const 4662 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4663 CSize CDC::GetOutputTextExtent(char const *,int)const 4664 int CDC::GetOutputTextMetrics(tagTEXTMETRICA *)const 4665 CWnd * CWnd::GetOwner(void)const 4666 void CToolBarCtrl::GetPadding(int &,int &)const 4667 CPropertyPage * CPropertySheet::GetPage(int)const 4668 int COleDocObjectItem::GetPageCount(long *,long *) 4669 int CPropertySheet::GetPageCount(void)const 4670 int CPropertySheet::GetPageIndex(CPropertyPage *) 4671 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4672 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4673 CRect CRichEditView::GetPageRect(void)const 4674 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4675 IPropertyPageSite * COlePropertyPage::GetPageSite(void) 4676 int CSliderCtrl::GetPageSize(void)const 4677 CPalette * CReBarCtrl::GetPalette(void)const 4678 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4679 CWnd * CSplitterWnd::GetPane(int,int)const 4680 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4681 unsigned int CStatusBar::GetPaneStyle(int)const 4682 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4683 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4684 CSize CPageSetupDialog::GetPaperSize(void)const 4685 CSize CRichEditView::GetPaperSize(void)const 4686 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4687 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4688 PARAFORMAT2 & CRichEditView::GetParaFormatSelection(void) 4689 short CDaoQueryDef::GetParameterCount(void) 4690 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 4691 void CDaoQueryDef::GetParameterInfo(char const *,CDaoParameterInfo &,unsigned long) 4692 COleVariant CDaoQueryDef::GetParamValue(int) 4693 COleVariant CDaoQueryDef::GetParamValue(char const *) 4694 COleVariant CDaoRecordset::GetParamValue(int) 4695 COleVariant CDaoRecordset::GetParamValue(char const *) 4696 CWnd * CWnd::GetParent(void)const 4697 IDispatch * CHtmlView::GetParentBrowser(void)const 4698 CFrameWnd * CWnd::GetParentFrame(void)const 4699 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4700 CWnd * CWnd::GetParentOwner(void)const 4701 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4702 int CStatusBarCtrl::GetParts(int,int *)const 4703 char CEdit::GetPasswordChar(void)const 4704 int COlePasteSpecialDialog::GetPasteIndex(void)const 4705 ATL::CStringT > > CDataPathProperty::GetPath(void)const 4706 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4707 ATL::CStringT > > const & CDocument::GetPathName(void)const 4708 ATL::CStringT > > CFileDialog::GetPathName(void)const 4709 ATL::CStringT > > COleInsertDialog::GetPathName(void)const 4710 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4711 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4712 float CDaoRecordset::GetPercentPosition(void) 4713 IPictureDisp * CPictureHolder::GetPictureDispatch(void) 4714 unsigned long CDC::GetPixel(int,int)const 4715 unsigned long CDC::GetPixel(tagPOINT)const 4716 int CDC::GetPolyFillMode(void)const 4717 ATL::CStringT > > CPageSetupDialog::GetPortName(void)const 4718 ATL::CStringT > > CPrintDialog::GetPortName(void)const 4719 ATL::CStringT > > CPrintDialogEx::GetPortName(void)const 4720 int CProgressCtrl::GetPos(void)const 4721 int CSliderCtrl::GetPos(void)const 4722 int CSpinButtonCtrl::GetPos(void)const 4723 int CSpinButtonCtrl::GetPos32(int *)const 4724 unsigned __int64 CFile::GetPosition(void)const 4725 unsigned __int64 CMemFile::GetPosition(void)const 4726 unsigned __int64 COleStreamFile::GetPosition(void)const 4727 unsigned __int64 CSocketFile::GetPosition(void)const 4728 unsigned __int64 CStdioFile::GetPosition(void)const 4729 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4730 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4731 CObject * & CObList::GetPrev(__POSITION * &) 4732 CObject const * CObList::GetPrev(__POSITION * &)const 4733 void * & CPtrList::GetPrev(__POSITION * &) 4734 void const * CPtrList::GetPrev(__POSITION * &)const 4735 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4736 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4737 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4738 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4739 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4740 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4741 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4742 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4743 HDC__ * CPrintDialog::GetPrinterDC(void)const 4744 HDC__ * CPrintDialogEx::GetPrinterDC(void)const 4745 int CWinApp::GetPrinterDeviceDefaults(tagPDA *) 4746 CFont * CEditView::GetPrinterFont(void)const 4747 CRect CRichEditView::GetPrintRect(void)const 4748 int CRichEditView::GetPrintWidth(void)const 4749 long CAsyncMonikerFile::GetPriority(void)const 4750 void * CThemeHelper::GetProc(char const *,void *) 4751 int CWinApp::GetProfileBinary(char const *,char const *,unsigned char * *,unsigned int *) 4752 unsigned int CWinApp::GetProfileIntA(char const *,char const *,int) 4753 ATL::CStringT > > CWinApp::GetProfileStringA(char const *,char const *,char const *) 4754 int COlePropertyPage::GetPropCheck(char const *,int *) 4755 COleVariant CHtmlView::GetProperty(char const *) 4756 int CHtmlView::GetProperty(char const *,ATL::CStringT > > &) 4757 void COleControlSite::GetProperty(long,unsigned short,void *)const 4758 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4759 CProperty * CPropertySection::GetProperty(unsigned long) 4760 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4761 void CWnd::GetProperty(long,unsigned short,void *)const 4762 int COlePropertyPage::GetPropIndex(char const *,int *) 4763 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4764 int COlePropertyPage::GetPropRadio(char const *,int *) 4765 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4766 int COlePropertyPage::GetPropText(char const *,unsigned char *) 4767 int COlePropertyPage::GetPropText(char const *,short *) 4768 int COlePropertyPage::GetPropText(char const *,int *) 4769 int COlePropertyPage::GetPropText(char const *,unsigned int *) 4770 int COlePropertyPage::GetPropText(char const *,long *) 4771 int COlePropertyPage::GetPropText(char const *,unsigned long *) 4772 int COlePropertyPage::GetPropText(char const *,float *) 4773 int COlePropertyPage::GetPropText(char const *,double *) 4774 int COlePropertyPage::GetPropText(char const *,ATL::CStringT > > *) 4775 _PROPSHEETPAGEA & CPropertyPage::GetPSP(void) 4776 _PROPSHEETPAGEA const & CPropertyPage::GetPSP(void)const 4777 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4778 short CDaoDatabase::GetQueryDefCount(void) 4779 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 4780 void CDaoDatabase::GetQueryDefInfo(char const *,CDaoQueryDefInfo &,unsigned long) 4781 short CDaoDatabase::GetQueryTimeout(void) 4782 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4783 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4784 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4785 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4786 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4787 void CProgressCtrl::GetRange(int &,int &)const 4788 void CSliderCtrl::GetRange(int &,int &)const 4789 unsigned long CSpinButtonCtrl::GetRange(void)const 4790 void CSpinButtonCtrl::GetRange(int &,int &)const 4791 void CSpinButtonCtrl::GetRange32(int &,int &)const 4792 int CSliderCtrl::GetRangeMax(void)const 4793 int CSliderCtrl::GetRangeMin(void)const 4794 void * CProperty::GetRawValue(void) 4795 int CFileDialog::GetReadOnlyPref(void)const 4796 enum tagREADYSTATE CHtmlView::GetReadyState(void)const 4797 long COleControl::GetReadyState(void) 4798 CReBarCtrl & CReBar::GetReBarCtrl(void)const 4799 long CDaoRecordset::GetRecordCount(void) 4800 long CDaoTableDef::GetRecordCount(void) 4801 long CRecordset::GetRecordCount(void)const 4802 long CDaoDatabase::GetRecordsAffected(void) 4803 long CDaoQueryDef::GetRecordsAffected(void) 4804 void CEdit::GetRect(tagRECT *)const 4805 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4806 void CRichEditCtrl::GetRect(tagRECT *)const 4807 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4808 int CToolBarCtrl::GetRect(int,tagRECT *)const 4809 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4810 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4811 int COleControl::GetRectInContainer(tagRECT *) 4812 enum _undonameid CRichEditCtrl::GetRedoName(void)const 4813 int CRgn::GetRegionData(_RGNDATA *,int)const 4814 int CHtmlView::GetRegisterAsBrowser(void)const 4815 int CHtmlView::GetRegisterAsDropTarget(void)const 4816 short CDaoDatabase::GetRelationCount(void) 4817 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 4818 void CDaoDatabase::GetRelationInfo(char const *,CDaoRelationInfo &,unsigned long) 4819 ATL::CStringT > > CFindReplaceDialog::GetReplaceString(void)const 4820 int CDaoQueryDef::GetReturnsRecords(void) 4821 int CRgn::GetRgnBox(tagRECT *)const 4822 CRichEditCtrl & CRichEditView::GetRichEditCtrl(void)const 4823 ATL::CStringT > > CFileFind::GetRoot(void)const 4824 ATL::CStringT > > CGopherFileFind::GetRoot(void)const 4825 _TREEITEM * CTreeCtrl::GetRootItem(void)const 4826 int CDC::GetROP2(void)const 4827 CFrameWnd * CCmdTarget::GetRoutingFrame(void) 4828 CFrameWnd * CCmdTarget::GetRoutingFrame_(void) 4829 CView * CCmdTarget::GetRoutingView(void) 4830 CView * CCmdTarget::GetRoutingView_(void) 4831 unsigned int CReBarCtrl::GetRowCount(void)const 4832 int CSplitterWnd::GetRowCount(void)const 4833 int CTabCtrl::GetRowCount(void)const 4834 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4835 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4836 int CToolBarCtrl::GetRows(void)const 4837 unsigned long CRecordset::GetRowsetSize(void)const 4838 unsigned long CRecordset::GetRowsFetched(void)const 4839 unsigned short CRecordset::GetRowStatus(unsigned short)const 4840 CRuntime* CAnimateCtrl::GetRuntimeClass(void)const 4841 CRuntime* CArchiveException::GetRuntimeClass(void)const 4842 CRuntime* CAsyncMonikerFile::GetRuntimeClass(void)const 4843 CRuntime* CAsyncSocket::GetRuntimeClass(void)const 4844 CRuntime* CBitmap::GetRuntimeClass(void)const 4845 CRuntime* CBitmapButton::GetRuntimeClass(void)const 4846 CRuntime* CBrush::GetRuntimeClass(void)const 4847 CRuntime* CButton::GetRuntimeClass(void)const 4848 CRuntime* CByteArray::GetRuntimeClass(void)const 4849 CRuntime* CCachedDataPathProperty::GetRuntimeClass(void)const 4850 CRuntime* CCheckListBox::GetRuntimeClass(void)const 4851 CRuntime* CClientDC::GetRuntimeClass(void)const 4852 CRuntime* CCmdTarget::GetRuntimeClass(void)const 4853 CRuntime* CColorDialog::GetRuntimeClass(void)const 4854 CRuntime* CComboBox::GetRuntimeClass(void)const 4855 CRuntime* CComboBoxEx::GetRuntimeClass(void)const 4856 CRuntime* CCommonDialog::GetRuntimeClass(void)const 4857 CRuntime* CControlBar::GetRuntimeClass(void)const 4858 CRuntime* CCriticalSection::GetRuntimeClass(void)const 4859 CRuntime* CCtrlView::GetRuntimeClass(void)const 4860 CRuntime* CDaoDatabase::GetRuntimeClass(void)const 4861 CRuntime* CDaoException::GetRuntimeClass(void)const 4862 CRuntime* CDaoQueryDef::GetRuntimeClass(void)const 4863 CRuntime* CDaoRecordset::GetRuntimeClass(void)const 4864 CRuntime* CDaoRecordView::GetRuntimeClass(void)const 4865 CRuntime* CDaoTableDef::GetRuntimeClass(void)const 4866 CRuntime* CDaoWorkspace::GetRuntimeClass(void)const 4867 CRuntime* CDatabase::GetRuntimeClass(void)const 4868 CRuntime* CDataPathProperty::GetRuntimeClass(void)const 4869 CRuntime* CDateTimeCtrl::GetRuntimeClass(void)const 4870 CRuntime* CDBException::GetRuntimeClass(void)const 4871 CRuntime* CDC::GetRuntimeClass(void)const 4872 CRuntime* CDHtmlDialog::GetRuntimeClass(void)const 4873 CRuntime* CDialog::GetRuntimeClass(void)const 4874 CRuntime* CDialogBar::GetRuntimeClass(void)const 4875 CRuntime* CDocItem::GetRuntimeClass(void)const 4876 CRuntime* CDockBar::GetRuntimeClass(void)const 4877 CRuntime* CDockState::GetRuntimeClass(void)const 4878 CRuntime* CDocManager::GetRuntimeClass(void)const 4879 CRuntime* CDocObjectServer::GetRuntimeClass(void)const 4880 CRuntime* CDocObjectServerItem::GetRuntimeClass(void)const 4881 CRuntime* CDocTemplate::GetRuntimeClass(void)const 4882 CRuntime* CDocument::GetRuntimeClass(void)const 4883 CRuntime* CDragListBox::GetRuntimeClass(void)const 4884 CRuntime* CDWordArray::GetRuntimeClass(void)const 4885 CRuntime* CDynLinkLibrary::GetRuntimeClass(void)const 4886 CRuntime* CEdit::GetRuntimeClass(void)const 4887 CRuntime* CEditView::GetRuntimeClass(void)const 4888 CRuntime* CEvent::GetRuntimeClass(void)const 4889 CRuntime* CException::GetRuntimeClass(void)const 4890 CRuntime* CFile::GetRuntimeClass(void)const 4891 CRuntime* CFileDialog::GetRuntimeClass(void)const 4892 CRuntime* CFileException::GetRuntimeClass(void)const 4893 CRuntime* CFileFind::GetRuntimeClass(void)const 4894 CRuntime* CFindReplaceDialog::GetRuntimeClass(void)const 4895 CRuntime* CFont::GetRuntimeClass(void)const 4896 CRuntime* CFontDialog::GetRuntimeClass(void)const 4897 CRuntime* CFormView::GetRuntimeClass(void)const 4898 CRuntime* CFrameWnd::GetRuntimeClass(void)const 4899 CRuntime* CFtpConnection::GetRuntimeClass(void)const 4900 CRuntime* CFtpFileFind::GetRuntimeClass(void)const 4901 CRuntime* CGdiObject::GetRuntimeClass(void)const 4902 CRuntime* CGopherConnection::GetRuntimeClass(void)const 4903 CRuntime* CGopherFile::GetRuntimeClass(void)const 4904 CRuntime* CGopherFileFind::GetRuntimeClass(void)const 4905 CRuntime* CHeaderCtrl::GetRuntimeClass(void)const 4906 CRuntime* CHotKeyCtrl::GetRuntimeClass(void)const 4907 CRuntime* CHtmlEditDoc::GetRuntimeClass(void)const 4908 CRuntime* CHtmlEditView::GetRuntimeClass(void)const 4909 CRuntime* CHtmlView::GetRuntimeClass(void)const 4910 CRuntime* CHttpConnection::GetRuntimeClass(void)const 4911 CRuntime* CHttpFile::GetRuntimeClass(void)const 4912 CRuntime* CImageList::GetRuntimeClass(void)const 4913 CRuntime* CInternetConnection::GetRuntimeClass(void)const 4914 CRuntime* CInternetException::GetRuntimeClass(void)const 4915 CRuntime* CInternetFile::GetRuntimeClass(void)const 4916 CRuntime* CInternetSession::GetRuntimeClass(void)const 4917 CRuntime* CInvalidArgException::GetRuntimeClass(void)const 4918 CRuntime* CIPAddressCtrl::GetRuntimeClass(void)const 4919 CRuntime* CLinkCtrl::GetRuntimeClass(void)const 4920 CRuntime* CListBox::GetRuntimeClass(void)const 4921 CRuntime* CListCtrl::GetRuntimeClass(void)const 4922 CRuntime* CListView::GetRuntimeClass(void)const 4923 CRuntime* CLongBinary::GetRuntimeClass(void)const 4924 CRuntime* CMapPtrToPtr::GetRuntimeClass(void)const 4925 CRuntime* CMapPtrToWord::GetRuntimeClass(void)const 4926 CRuntime* CMapStringToOb::GetRuntimeClass(void)const 4927 CRuntime* CMapStringToPtr::GetRuntimeClass(void)const 4928 CRuntime* CMapStringToString::GetRuntimeClass(void)const 4929 CRuntime* CMapWordToOb::GetRuntimeClass(void)const 4930 CRuntime* CMapWordToPtr::GetRuntimeClass(void)const 4931 CRuntime* CMDIChildWnd::GetRuntimeClass(void)const 4932 CRuntime* CMDIFrameWnd::GetRuntimeClass(void)const 4933 CRuntime* CMemFile::GetRuntimeClass(void)const 4934 CRuntime* CMemoryException::GetRuntimeClass(void)const 4935 CRuntime* CMenu::GetRuntimeClass(void)const 4936 CRuntime* CMetaFileDC::GetRuntimeClass(void)const 4937 CRuntime* CMiniDockFrameWnd::GetRuntimeClass(void)const 4938 CRuntime* CMiniFrameWnd::GetRuntimeClass(void)const 4939 CRuntime* CMonikerFile::GetRuntimeClass(void)const 4940 CRuntime* CMonthCalCtrl::GetRuntimeClass(void)const 4941 CRuntime* CMultiDocTemplate::GetRuntimeClass(void)const 4942 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass(void)const 4943 CRuntime* CMutex::GetRuntimeClass(void)const 4944 CRuntime* CNotSupportedException::GetRuntimeClass(void)const 4945 CRuntime* CObArray::GetRuntimeClass(void)const 4946 CRuntime* CObject::GetRuntimeClass(void)const 4947 CRuntime* CObList::GetRuntimeClass(void)const 4948 CRuntime* COleBusyDialog::GetRuntimeClass(void)const 4949 CRuntime* COleChangeIconDialog::GetRuntimeClass(void)const 4950 CRuntime* COleChangeSourceDialog::GetRuntimeClass(void)const 4951 CRuntime* COleClientItem::GetRuntimeClass(void)const 4952 CRuntime* COleControl::GetRuntimeClass(void)const 4953 CRuntime* COleControlModule::GetRuntimeClass(void)const 4954 CRuntime* COleConvertDialog::GetRuntimeClass(void)const 4955 CRuntime* COleDBRecordView::GetRuntimeClass(void)const 4956 CRuntime* COleDialog::GetRuntimeClass(void)const 4957 CRuntime* COleDispatchException::GetRuntimeClass(void)const 4958 CRuntime* COleDocIPFrameWnd::GetRuntimeClass(void)const 4959 CRuntime* COleDocObjectItem::GetRuntimeClass(void)const 4960 CRuntime* COleDocument::GetRuntimeClass(void)const 4961 CRuntime* COleException::GetRuntimeClass(void)const 4962 CRuntime* COleInsertDialog::GetRuntimeClass(void)const 4963 CRuntime* COleIPFrameWnd::GetRuntimeClass(void)const 4964 CRuntime* COleLinkingDoc::GetRuntimeClass(void)const 4965 CRuntime* COleLinksDialog::GetRuntimeClass(void)const 4966 CRuntime* COleObjectFactory::GetRuntimeClass(void)const 4967 CRuntime* COlePasteSpecialDialog::GetRuntimeClass(void)const 4968 CRuntime* COlePropertiesDialog::GetRuntimeClass(void)const 4969 CRuntime* COlePropertyPage::GetRuntimeClass(void)const 4970 CRuntime* COleResizeBar::GetRuntimeClass(void)const 4971 CRuntime* COleServerDoc::GetRuntimeClass(void)const 4972 CRuntime* COleServerItem::GetRuntimeClass(void)const 4973 CRuntime* COleStreamFile::GetRuntimeClass(void)const 4974 CRuntime* COleUpdateDialog::GetRuntimeClass(void)const 4975 CRuntime* CPagerCtrl::GetRuntimeClass(void)const 4976 CRuntime* CPageSetupDialog::GetRuntimeClass(void)const 4977 CRuntime* CPaintDC::GetRuntimeClass(void)const 4978 CRuntime* CPalette::GetRuntimeClass(void)const 4979 CRuntime* CPen::GetRuntimeClass(void)const 4980 CRuntime* CPreviewDC::GetRuntimeClass(void)const 4981 CRuntime* CPreviewView::GetRuntimeClass(void)const 4982 CRuntime* CPrintDialog::GetRuntimeClass(void)const 4983 CRuntime* CPrintDialogEx::GetRuntimeClass(void)const 4984 CRuntime* CProgressCtrl::GetRuntimeClass(void)const 4985 CRuntime* CPropertyPage::GetRuntimeClass(void)const 4986 CRuntime* CPropertySheet::GetRuntimeClass(void)const 4987 CRuntime* CPtrArray::GetRuntimeClass(void)const 4988 CRuntime* CPtrList::GetRuntimeClass(void)const 4989 CRuntime* CReBar::GetRuntimeClass(void)const 4990 CRuntime* CReBarCtrl::GetRuntimeClass(void)const 4991 CRuntime* CRecordset::GetRuntimeClass(void)const 4992 CRuntime* CRecordView::GetRuntimeClass(void)const 4993 CRuntime* CResourceException::GetRuntimeClass(void)const 4994 CRuntime* CRgn::GetRuntimeClass(void)const 4995 CRuntime* CRichEditCntrItem::GetRuntimeClass(void)const 4996 CRuntime* CRichEditCtrl::GetRuntimeClass(void)const 4997 CRuntime* CRichEditDoc::GetRuntimeClass(void)const 4998 CRuntime* CRichEditView::GetRuntimeClass(void)const 4999 CRuntime* CScrollBar::GetRuntimeClass(void)const 5000 CRuntime* CScrollView::GetRuntimeClass(void)const 5001 CRuntime* CSemaphore::GetRuntimeClass(void)const 5002 CRuntime* CSharedFile::GetRuntimeClass(void)const 5003 CRuntime* CSimpleException::GetRuntimeClass(void)const 5004 CRuntime* CSingleDocTemplate::GetRuntimeClass(void)const 5005 CRuntime* CSliderCtrl::GetRuntimeClass(void)const 5006 CRuntime* CSocket::GetRuntimeClass(void)const 5007 CRuntime* CSocketFile::GetRuntimeClass(void)const 5008 CRuntime* CSpinButtonCtrl::GetRuntimeClass(void)const 5009 CRuntime* CSplitterWnd::GetRuntimeClass(void)const 5010 CRuntime* CStatic::GetRuntimeClass(void)const 5011 CRuntime* CStatusBar::GetRuntimeClass(void)const 5012 CRuntime* CStatusBarCtrl::GetRuntimeClass(void)const 5013 CRuntime* CStdioFile::GetRuntimeClass(void)const 5014 CRuntime* CStringArray::GetRuntimeClass(void)const 5015 CRuntime* CStringList::GetRuntimeClass(void)const 5016 CRuntime* CSyncObject::GetRuntimeClass(void)const 5017 CRuntime* CTabCtrl::GetRuntimeClass(void)const 5018 CRuntime* CToolBar::GetRuntimeClass(void)const 5019 CRuntime* CToolBarCtrl::GetRuntimeClass(void)const 5020 CRuntime* CToolTipCtrl::GetRuntimeClass(void)const 5021 CRuntime* CTreeCtrl::GetRuntimeClass(void)const 5022 CRuntime* CTreeView::GetRuntimeClass(void)const 5023 CRuntime* CUIntArray::GetRuntimeClass(void)const 5024 CRuntime* CUserException::GetRuntimeClass(void)const 5025 CRuntime* CView::GetRuntimeClass(void)const 5026 CRuntime* CWinApp::GetRuntimeClass(void)const 5027 CRuntime* CWindowDC::GetRuntimeClass(void)const 5028 CRuntime* CWindowlessDC::GetRuntimeClass(void)const 5029 CRuntime* CWinThread::GetRuntimeClass(void)const 5030 CRuntime* CWnd::GetRuntimeClass(void)const 5031 CRuntime* CWordArray::GetRuntimeClass(void)const 5032 void * CGdiObject::GetSafeHandle(void)const 5033 _IMAGELIST * CImageList::GetSafeHandle(void)const 5034 HDC__ * CDC::GetSafeHdc(void)const 5035 HMENU__ * CMenu::GetSafeHmenu(void)const 5036 HWND__ * CWnd::GetSafeHwnd(void)const 5037 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 5038 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 5039 unsigned long * CColorDialog::GetSavedCustomColors(void) 5040 ATL::CStringT > > CGopherFileFind::GetScreenName(void)const 5041 CSize CDockState::GetScreenSize(void) 5042 CScrollBar * CView::GetScrollBarCtrl(int)const 5043 CScrollBar * CWnd::GetScrollBarCtrl(int)const 5044 void CScrollView::GetScrollBarSizes(CSize &) 5045 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 5046 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 5047 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 5048 int CScrollBar::GetScrollLimit(void) 5049 int CWnd::GetScrollLimit(int) 5050 int CScrollBar::GetScrollPos(void)const 5051 int CWnd::GetScrollPos(int)const 5052 CPoint CScrollView::GetScrollPosition(void)const 5053 void CScrollBar::GetScrollRange(int *,int *)const 5054 void CWnd::GetScrollRange(int,int *,int *)const 5055 unsigned long CSplitterWnd::GetScrollStyle(void)const 5056 unsigned int CTreeCtrl::GetScrollTime(void)const 5057 CPropertySection * CPropertySet::GetSection(_GUID) 5058 HKEY__ * CWinApp::GetSectionKey(char const *) 5059 char const * CPropertySection::GetSectionName(void) 5060 unsigned long CEdit::GetSel(void)const 5061 void CEdit::GetSel(int &,int &)const 5062 int CListBox::GetSel(int)const 5063 void CRichEditCtrl::GetSel(long &,long &)const 5064 void CRichEditCtrl::GetSel(_charrange &)const 5065 int CListBox::GetSelCount(void)const 5066 unsigned int CListCtrl::GetSelectedCount(void)const 5067 CRichEditCntrItem * CRichEditView::GetSelectedItem(void)const 5068 _TREEITEM * CTreeCtrl::GetSelectedItem(void)const 5069 void CEditView::GetSelectedText(ATL::CStringT > > &)const 5070 void CSliderCtrl::GetSelection(int &,int &)const 5071 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformat &)const 5072 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2A &)const 5073 int CListCtrl::GetSelectionMark(void)const 5074 unsigned int COleBusyDialog::GetSelectionType(void)const 5075 unsigned int COleConvertDialog::GetSelectionType(void)const 5076 unsigned int COleInsertDialog::GetSelectionType(void)const 5077 unsigned int COlePasteSpecialDialog::GetSelectionType(void)const 5078 unsigned short CRichEditCtrl::GetSelectionType(void)const 5079 int CListBox::GetSelItems(int,int *)const 5080 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 5081 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 5082 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 5083 ATL::CStringT > > CRichEditCtrl::GetSelText(void)const 5084 long CRichEditCtrl::GetSelText(char *)const 5085 ATL::CStringT > > CInternetConnection::GetServerName(void)const 5086 CInternetSession * CInternetConnection::GetSession(void)const 5087 int CHtmlView::GetSilent(void)const 5088 long CPrintDialogEx::GetSite(_GUID const &,void * *) 5089 int CByteArray::GetSize(void)const 5090 int CDWordArray::GetSize(void)const 5091 int CFontDialog::GetSize(void)const 5092 int CMapPtrToPtr::GetSize(void)const 5093 int CMapPtrToWord::GetSize(void)const 5094 int CMapStringToOb::GetSize(void)const 5095 int CMapStringToPtr::GetSize(void)const 5096 int CMapStringToString::GetSize(void)const 5097 int CMapWordToOb::GetSize(void)const 5098 int CMapWordToPtr::GetSize(void)const 5099 int CObArray::GetSize(void)const 5100 int CObList::GetSize(void)const 5101 unsigned long CPropertySection::GetSize(void) 5102 int CPtrArray::GetSize(void)const 5103 int CPtrList::GetSize(void)const 5104 int CStringArray::GetSize(void)const 5105 int CStringList::GetSize(void)const 5106 int CUIntArray::GetSize(void)const 5107 int CWordArray::GetSize(void)const 5108 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 5109 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 5110 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 5111 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 5112 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 5113 CWnd * CSplitterWnd::GetSizingParent(void) 5114 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 5115 int CAsyncSocket::GetSockName(sockaddr *,int *) 5116 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 5117 int CHtmlView::GetSource(ATL::CStringT > > &) 5118 ATL::CStringT > > CDaoTableDef::GetSourceTableName(void) 5119 ATL::CStringT > > CDaoQueryDef::GetSQL(void) 5120 ATL::CStringT > > CDaoRecordset::GetSQL(void)const 5121 ATL::CStringT > > const & CRecordset::GetSQL(void)const 5122 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 5123 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 5124 char const * CHtmlEditCtrl::GetStartDocument(void) 5125 char const * CHtmlEditView::GetStartDocument(void) 5126 __POSITION * CConnectionPoint::GetStartPosition(void)const 5127 __POSITION * CFileDialog::GetStartPosition(void)const 5128 __POSITION * CMapPtrToPtr::GetStartPosition(void)const 5129 __POSITION * CMapPtrToWord::GetStartPosition(void)const 5130 __POSITION * CMapStringToOb::GetStartPosition(void)const 5131 __POSITION * CMapStringToPtr::GetStartPosition(void)const 5132 __POSITION * CMapStringToString::GetStartPosition(void)const 5133 __POSITION * CMapWordToOb::GetStartPosition(void)const 5134 __POSITION * CMapWordToPtr::GetStartPosition(void)const 5135 __POSITION * COleDocument::GetStartPosition(void)const 5136 __POSITION * CRichEditDoc::GetStartPosition(void)const 5137 unsigned int CButton::GetState(void)const 5138 int CToolBarCtrl::GetState(int)const 5139 int CFile::GetStatus(CFileStatus &)const 5140 int CFile::GetStatus(char const *,CFileStatus &) 5141 int CMemFile::GetStatus(CFileStatus &)const 5142 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus(void)const 5143 int COleStreamFile::GetStatus(CFileStatus &)const 5144 void CRecordset::GetStatus(CRecordsetStatus &)const 5145 int CHtmlView::GetStatusBar(void)const 5146 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl(void)const 5147 unsigned long COleControl::GetStockEventMask(void)const 5148 unsigned long COleControl::GetStockPropMask(void)const 5149 void COleControl::GetStockTextMetrics(tagTEXTMETRICA *) 5150 ATL::CStringT > > const COleStreamFile::GetStorageName(void)const 5151 IStream * COleStreamFile::GetStream(void)const 5152 int CRichEditDoc::GetStreamFormat(void)const 5153 int CDC::GetStretchBltMode(void)const 5154 wchar_t const * ATL::CSimpleStringT::GetString(void)const 5155 char const * ATL::CSimpleStringT::GetString(void)const 5156 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 5157 int CToolBarCtrl::GetString(int,char *,unsigned int)const 5158 int CListCtrl::GetStringWidth(char const *)const 5159 unsigned long COleControlSite::GetStyle(void)const 5160 unsigned long COleControlSiteOrWnd::GetStyle(void)const 5161 unsigned long CToolBarCtrl::GetStyle(void)const 5162 unsigned long CWnd::GetStyle(void)const 5163 ATL::CStringT > > CFontDialog::GetStyleName(void)const 5164 int CListCtrl::GetSubItemRect(int,int,int,CRect &)const 5165 CMenu * CMenu::GetSubMenu(int)const 5166 long (__stdcall** CWnd::GetSuperWndProcAddr(void))(HWND__ *,unsigned int,unsigned int,long) 5167 int CWinApp::GetSysPolicyValue(unsigned long,int *) 5168 CMenu * CWnd::GetSystemMenu(int)const 5169 CSize CDC::GetTabbedTextExtentA(ATL::CStringT > > const &,int,int *)const 5170 CSize CDC::GetTabbedTextExtentA(char const *,int,int,int *)const 5171 CTabCtrl * CPropertySheet::GetTabControl(void)const 5172 short CDaoDatabase::GetTableDefCount(void) 5173 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 5174 void CDaoDatabase::GetTableDefInfo(char const *,CDaoTableDefInfo &,unsigned long) 5175 ATL::CStringT > > const & CRecordset::GetTableName(void)const 5176 CObject * & CObList::GetTail(void) 5177 CObject const * CObList::GetTail(void)const 5178 void * & CPtrList::GetTail(void) 5179 void const * CPtrList::GetTail(void)const 5180 ATL::CStringT > > & CStringList::GetTail(void) 5181 ATL::CStringT > > const & CStringList::GetTail(void)const 5182 __POSITION * CObList::GetTailPosition(void)const 5183 __POSITION * CPtrList::GetTailPosition(void)const 5184 __POSITION * CStringList::GetTailPosition(void)const 5185 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 5186 int CListBox::GetText(int,char *)const 5187 void CListBox::GetText(int,ATL::CStringT > > &)const 5188 wchar_t * COleControl::GetText(void) 5189 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 5190 int CStatusBarCtrl::GetText(char *,int,int *)const 5191 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 5192 unsigned int CDC::GetTextAlign(void)const 5193 unsigned long CListCtrl::GetTextBkColor(void)const 5194 int CDC::GetTextCharacterExtra(void)const 5195 unsigned long CDC::GetTextColor(void)const 5196 unsigned long CListCtrl::GetTextColor(void)const 5197 unsigned long CReBarCtrl::GetTextColor(void)const 5198 unsigned long CTreeCtrl::GetTextColor(void)const 5199 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 5200 CSize CDC::GetTextExtent(char const *,int)const 5201 int CDC::GetTextFaceA(ATL::CStringT > > &)const 5202 int CDC::GetTextFaceA(int,char *)const 5203 int CListBox::GetTextLen(int)const 5204 long CRecordset::GetTextLen(short,unsigned long) 5205 long CRichEditCtrl::GetTextLength(void)const 5206 long CRichEditView::GetTextLength(void)const 5207 int CStatusBarCtrl::GetTextLength(int,int *)const 5208 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 5209 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 5210 int CDC::GetTextMetrics(tagTEXTMETRICA *)const 5211 int CDC::GetTextMetricsA(tagTEXTMETRICA *)const 5212 unsigned int CRichEditCtrl::GetTextMode(void)const 5213 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 5214 int CHtmlView::GetTheaterMode(void)const 5215 long CThemeHelper::GetThemePartSize(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 5216 long CThemeHelper::GetThemePartSizeFail(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 5217 CRuntime* CAnimateCtrl::GetThisClass(void) 5218 CRuntime* CArchiveException::GetThisClass(void) 5219 CRuntime* CAsyncMonikerFile::GetThisClass(void) 5220 CRuntime* CAsyncSocket::GetThisClass(void) 5221 CRuntime* CBitmap::GetThisClass(void) 5222 CRuntime* CBitmapButton::GetThisClass(void) 5223 CRuntime* CBrush::GetThisClass(void) 5224 CRuntime* CButton::GetThisClass(void) 5225 CRuntime* CByteArray::GetThisClass(void) 5226 CRuntime* CCachedDataPathProperty::GetThisClass(void) 5227 CRuntime* CCheckListBox::GetThisClass(void) 5228 CRuntime* CClientDC::GetThisClass(void) 5229 CRuntime* CCmdTarget::GetThisClass(void) 5230 CRuntime* CColorDialog::GetThisClass(void) 5231 CRuntime* CComboBox::GetThisClass(void) 5232 CRuntime* CComboBoxEx::GetThisClass(void) 5233 CRuntime* CCommonDialog::GetThisClass(void) 5234 CRuntime* CControlBar::GetThisClass(void) 5235 CRuntime* CCriticalSection::GetThisClass(void) 5236 CRuntime* CCtrlView::GetThisClass(void) 5237 CRuntime* CDaoDatabase::GetThisClass(void) 5238 CRuntime* CDaoException::GetThisClass(void) 5239 CRuntime* CDaoQueryDef::GetThisClass(void) 5240 CRuntime* CDaoRecordset::GetThisClass(void) 5241 CRuntime* CDaoRecordView::GetThisClass(void) 5242 CRuntime* CDaoTableDef::GetThisClass(void) 5243 CRuntime* CDaoWorkspace::GetThisClass(void) 5244 CRuntime* CDatabase::GetThisClass(void) 5245 CRuntime* CDataPathProperty::GetThisClass(void) 5246 CRuntime* CDateTimeCtrl::GetThisClass(void) 5247 CRuntime* CDBException::GetThisClass(void) 5248 CRuntime* CDC::GetThisClass(void) 5249 CRuntime* CDHtmlDialog::GetThisClass(void) 5250 CRuntime* CDialog::GetThisClass(void) 5251 CRuntime* CDialogBar::GetThisClass(void) 5252 CRuntime* CDocItem::GetThisClass(void) 5253 CRuntime* CDockBar::GetThisClass(void) 5254 CRuntime* CDockState::GetThisClass(void) 5255 CRuntime* CDocManager::GetThisClass(void) 5256 CRuntime* CDocObjectServer::GetThisClass(void) 5257 CRuntime* CDocObjectServerItem::GetThisClass(void) 5258 CRuntime* CDocTemplate::GetThisClass(void) 5259 CRuntime* CDocument::GetThisClass(void) 5260 CRuntime* CDragListBox::GetThisClass(void) 5261 CRuntime* CDWordArray::GetThisClass(void) 5262 CRuntime* CDynLinkLibrary::GetThisClass(void) 5263 CRuntime* CEdit::GetThisClass(void) 5264 CRuntime* CEditView::GetThisClass(void) 5265 CRuntime* CEvent::GetThisClass(void) 5266 CRuntime* CException::GetThisClass(void) 5267 CRuntime* CFile::GetThisClass(void) 5268 CRuntime* CFileDialog::GetThisClass(void) 5269 CRuntime* CFileException::GetThisClass(void) 5270 CRuntime* CFileFind::GetThisClass(void) 5271 CRuntime* CFindReplaceDialog::GetThisClass(void) 5272 CRuntime* CFont::GetThisClass(void) 5273 CRuntime* CFontDialog::GetThisClass(void) 5274 CRuntime* CFormView::GetThisClass(void) 5275 CRuntime* CFrameWnd::GetThisClass(void) 5276 CRuntime* CFtpConnection::GetThisClass(void) 5277 CRuntime* CFtpFileFind::GetThisClass(void) 5278 CRuntime* CGdiObject::GetThisClass(void) 5279 CRuntime* CGopherConnection::GetThisClass(void) 5280 CRuntime* CGopherFile::GetThisClass(void) 5281 CRuntime* CGopherFileFind::GetThisClass(void) 5282 CRuntime* CHeaderCtrl::GetThisClass(void) 5283 CRuntime* CHotKeyCtrl::GetThisClass(void) 5284 CRuntime* CHtmlEditDoc::GetThisClass(void) 5285 CRuntime* CHtmlEditView::GetThisClass(void) 5286 CRuntime* CHtmlView::GetThisClass(void) 5287 CRuntime* CHttpConnection::GetThisClass(void) 5288 CRuntime* CHttpFile::GetThisClass(void) 5289 CRuntime* CImageList::GetThisClass(void) 5290 CRuntime* CInternetConnection::GetThisClass(void) 5291 CRuntime* CInternetException::GetThisClass(void) 5292 CRuntime* CInternetFile::GetThisClass(void) 5293 CRuntime* CInternetSession::GetThisClass(void) 5294 CRuntime* CInvalidArgException::GetThisClass(void) 5295 CRuntime* CIPAddressCtrl::GetThisClass(void) 5296 CRuntime* CLinkCtrl::GetThisClass(void) 5297 CRuntime* CListBox::GetThisClass(void) 5298 CRuntime* CListCtrl::GetThisClass(void) 5299 CRuntime* CListView::GetThisClass(void) 5300 CRuntime* CLongBinary::GetThisClass(void) 5301 CRuntime* CMapPtrToPtr::GetThisClass(void) 5302 CRuntime* CMapPtrToWord::GetThisClass(void) 5303 CRuntime* CMapStringToOb::GetThisClass(void) 5304 CRuntime* CMapStringToPtr::GetThisClass(void) 5305 CRuntime* CMapStringToString::GetThisClass(void) 5306 CRuntime* CMapWordToOb::GetThisClass(void) 5307 CRuntime* CMapWordToPtr::GetThisClass(void) 5308 CRuntime* CMDIChildWnd::GetThisClass(void) 5309 CRuntime* CMDIFrameWnd::GetThisClass(void) 5310 CRuntime* CMemFile::GetThisClass(void) 5311 CRuntime* CMemoryException::GetThisClass(void) 5312 CRuntime* CMenu::GetThisClass(void) 5313 CRuntime* CMetaFileDC::GetThisClass(void) 5314 CRuntime* CMiniDockFrameWnd::GetThisClass(void) 5315 CRuntime* CMiniFrameWnd::GetThisClass(void) 5316 CRuntime* CMonikerFile::GetThisClass(void) 5317 CRuntime* CMonthCalCtrl::GetThisClass(void) 5318 CRuntime* CMultiDocTemplate::GetThisClass(void) 5319 CRuntime* CMultiPageDHtmlDialog::GetThisClass(void) 5320 CRuntime* CMutex::GetThisClass(void) 5321 CRuntime* CNotSupportedException::GetThisClass(void) 5322 CRuntime* CObArray::GetThisClass(void) 5323 CRuntime* CObject::GetThisClass(void) 5324 CRuntime* CObList::GetThisClass(void) 5325 CRuntime* COleBusyDialog::GetThisClass(void) 5326 CRuntime* COleChangeIconDialog::GetThisClass(void) 5327 CRuntime* COleChangeSourceDialog::GetThisClass(void) 5328 CRuntime* COleClientItem::GetThisClass(void) 5329 CRuntime* COleControl::GetThisClass(void) 5330 CRuntime* COleControlModule::GetThisClass(void) 5331 CRuntime* COleConvertDialog::GetThisClass(void) 5332 CRuntime* COleDBRecordView::GetThisClass(void) 5333 CRuntime* COleDialog::GetThisClass(void) 5334 CRuntime* COleDispatchException::GetThisClass(void) 5335 CRuntime* COleDocIPFrameWnd::GetThisClass(void) 5336 CRuntime* COleDocObjectItem::GetThisClass(void) 5337 CRuntime* COleDocument::GetThisClass(void) 5338 CRuntime* COleException::GetThisClass(void) 5339 CRuntime* COleInsertDialog::GetThisClass(void) 5340 CRuntime* COleIPFrameWnd::GetThisClass(void) 5341 CRuntime* COleLinkingDoc::GetThisClass(void) 5342 CRuntime* COleLinksDialog::GetThisClass(void) 5343 CRuntime* COleObjectFactory::GetThisClass(void) 5344 CRuntime* COlePasteSpecialDialog::GetThisClass(void) 5345 CRuntime* COlePropertiesDialog::GetThisClass(void) 5346 CRuntime* COlePropertyPage::GetThisClass(void) 5347 CRuntime* COleResizeBar::GetThisClass(void) 5348 CRuntime* COleServerDoc::GetThisClass(void) 5349 CRuntime* COleServerItem::GetThisClass(void) 5350 CRuntime* COleStreamFile::GetThisClass(void) 5351 CRuntime* COleUpdateDialog::GetThisClass(void) 5352 CRuntime* CPagerCtrl::GetThisClass(void) 5353 CRuntime* CPageSetupDialog::GetThisClass(void) 5354 CRuntime* CPaintDC::GetThisClass(void) 5355 CRuntime* CPalette::GetThisClass(void) 5356 CRuntime* CPen::GetThisClass(void) 5357 CRuntime* CPreviewDC::GetThisClass(void) 5358 CRuntime* CPreviewView::GetThisClass(void) 5359 CRuntime* CPrintDialog::GetThisClass(void) 5360 CRuntime* CPrintDialogEx::GetThisClass(void) 5361 CRuntime* CProgressCtrl::GetThisClass(void) 5362 CRuntime* CPropertyPage::GetThisClass(void) 5363 CRuntime* CPropertySheet::GetThisClass(void) 5364 CRuntime* CPtrArray::GetThisClass(void) 5365 CRuntime* CPtrList::GetThisClass(void) 5366 CRuntime* CReBar::GetThisClass(void) 5367 CRuntime* CReBarCtrl::GetThisClass(void) 5368 CRuntime* CRecordset::GetThisClass(void) 5369 CRuntime* CRecordView::GetThisClass(void) 5370 CRuntime* CResourceException::GetThisClass(void) 5371 CRuntime* CRgn::GetThisClass(void) 5372 CRuntime* CRichEditCntrItem::GetThisClass(void) 5373 CRuntime* CRichEditCtrl::GetThisClass(void) 5374 CRuntime* CRichEditDoc::GetThisClass(void) 5375 CRuntime* CRichEditView::GetThisClass(void) 5376 CRuntime* CScrollBar::GetThisClass(void) 5377 CRuntime* CScrollView::GetThisClass(void) 5378 CRuntime* CSemaphore::GetThisClass(void) 5379 CRuntime* CSharedFile::GetThisClass(void) 5380 CRuntime* CSimpleException::GetThisClass(void) 5381 CRuntime* CSingleDocTemplate::GetThisClass(void) 5382 CRuntime* CSliderCtrl::GetThisClass(void) 5383 CRuntime* CSocket::GetThisClass(void) 5384 CRuntime* CSocketFile::GetThisClass(void) 5385 CRuntime* CSpinButtonCtrl::GetThisClass(void) 5386 CRuntime* CSplitterWnd::GetThisClass(void) 5387 CRuntime* CStatic::GetThisClass(void) 5388 CRuntime* CStatusBar::GetThisClass(void) 5389 CRuntime* CStatusBarCtrl::GetThisClass(void) 5390 CRuntime* CStdioFile::GetThisClass(void) 5391 CRuntime* CStringArray::GetThisClass(void) 5392 CRuntime* CStringList::GetThisClass(void) 5393 CRuntime* CSyncObject::GetThisClass(void) 5394 CRuntime* CTabCtrl::GetThisClass(void) 5395 CRuntime* CToolBar::GetThisClass(void) 5396 CRuntime* CToolBarCtrl::GetThisClass(void) 5397 CRuntime* CToolTipCtrl::GetThisClass(void) 5398 CRuntime* CTreeCtrl::GetThisClass(void) 5399 CRuntime* CTreeView::GetThisClass(void) 5400 CRuntime* CUIntArray::GetThisClass(void) 5401 CRuntime* CUserException::GetThisClass(void) 5402 CRuntime* CView::GetThisClass(void) 5403 CRuntime* CWinApp::GetThisClass(void) 5404 CRuntime* CWindowDC::GetThisClass(void) 5405 CRuntime* CWindowlessDC::GetThisClass(void) 5406 CRuntime* CWinThread::GetThisClass(void) 5407 CRuntime* CWnd::GetThisClass(void) 5408 CRuntime* CWordArray::GetThisClass(void) 5409 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap(void) 5410 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap(void) 5411 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap(void) 5412 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap(void) 5413 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap(void) 5414 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap(void) 5415 AFX_EVENTMAP const * COleControl::GetThisEventMap(void) 5416 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap(void) 5417 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap(void) 5418 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap(void) 5419 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap(void) 5420 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap(void) 5421 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap(void) 5422 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap(void) 5423 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap(void) 5424 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap(void) 5425 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap(void) 5426 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap(void) 5427 AFX_INTERFACEMAP const * CFileDialog::GetThisInterfaceMap(void) 5428 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap(void) 5429 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap(void) 5430 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap(void) 5431 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap(void) 5432 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap(void) 5433 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap(void) 5434 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap(void) 5435 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap(void) 5436 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap(void) 5437 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap(void) 5438 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap(void) 5439 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap(void) 5440 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap(void) 5441 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap(void) 5442 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap(void) 5443 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap(void) 5444 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap(void) 5445 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap(void) 5446 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap(void) 5447 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap(void) 5448 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap(void) 5449 AFX_MSGMAP const * CControlBar::GetThisMessageMap(void) 5450 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap(void) 5451 AFX_MSGMAP const * CCtrlView::GetThisMessageMap(void) 5452 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap(void) 5453 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap(void) 5454 AFX_MSGMAP const * CDialog::GetThisMessageMap(void) 5455 AFX_MSGMAP const * CDialogBar::GetThisMessageMap(void) 5456 AFX_MSGMAP const * CDockBar::GetThisMessageMap(void) 5457 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap(void) 5458 AFX_MSGMAP const * CDocument::GetThisMessageMap(void) 5459 AFX_MSGMAP const * CEditView::GetThisMessageMap(void) 5460 AFX_MSGMAP const * CFormView::GetThisMessageMap(void) 5461 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap(void) 5462 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap(void) 5463 AFX_MSGMAP const * CHtmlView::GetThisMessageMap(void) 5464 AFX_MSGMAP const * CListCtrl::GetThisMessageMap(void) 5465 AFX_MSGMAP const * CListView::GetThisMessageMap(void) 5466 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap(void) 5467 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap(void) 5468 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap(void) 5469 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap(void) 5470 AFX_MSGMAP const * COleControl::GetThisMessageMap(void) 5471 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap(void) 5472 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap(void) 5473 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap(void) 5474 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap(void) 5475 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap(void) 5476 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap(void) 5477 AFX_MSGMAP const * CPreviewView::GetThisMessageMap(void) 5478 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap(void) 5479 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap(void) 5480 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap(void) 5481 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap(void) 5482 AFX_MSGMAP const * CReBar::GetThisMessageMap(void) 5483 AFX_MSGMAP const * CRecordView::GetThisMessageMap(void) 5484 AFX_MSGMAP const * CRichEditView::GetThisMessageMap(void) 5485 AFX_MSGMAP const * CScrollView::GetThisMessageMap(void) 5486 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap(void) 5487 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap(void) 5488 AFX_MSGMAP const * CStatusBar::GetThisMessageMap(void) 5489 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap(void) 5490 AFX_MSGMAP const * CToolBar::GetThisMessageMap(void) 5491 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap(void) 5492 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap(void) 5493 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap(void) 5494 AFX_MSGMAP const * CTreeView::GetThisMessageMap(void) 5495 AFX_MSGMAP const * CView::GetThisMessageMap(void) 5496 AFX_MSGMAP const * CWinApp::GetThisMessageMap(void) 5497 AFX_MSGMAP const * CWnd::GetThisMessageMap(void) 5498 int CWinThread::GetThreadPriority(void) 5499 int CSliderCtrl::GetThumbLength(void)const 5500 void CSliderCtrl::GetThumbRect(tagRECT *)const 5501 int CSliderCtrl::GetTic(int)const 5502 unsigned long * CSliderCtrl::GetTicArray(void)const 5503 int CSliderCtrl::GetTicPos(int)const 5504 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 5505 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 5506 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 5507 unsigned long CToolTipCtrl::GetTipBkColor(void)const 5508 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 5509 unsigned long CToolTipCtrl::GetTipTextColor(void)const 5510 ATL::CStringT > > const & CDocument::GetTitle(void)const 5511 ATL::CStringT > > CFrameWnd::GetTitle(void)const 5512 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 5513 int CMonthCalCtrl::GetToday(ATL::CTime &)const 5514 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 5515 int CHtmlView::GetToolBar(void)const 5516 CToolBarCtrl & CToolBar::GetToolBarCtrl(void)const 5517 int CToolTipCtrl::GetToolCount(void)const 5518 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 5519 CToolTipCtrl * CListCtrl::GetToolTips(void)const 5520 CToolTipCtrl * CReBarCtrl::GetToolTips(void)const 5521 CToolTipCtrl * CSliderCtrl::GetToolTips(void)const 5522 CToolTipCtrl * CTabCtrl::GetToolTips(void)const 5523 CToolTipCtrl * CToolBarCtrl::GetToolTips(void)const 5524 CToolTipCtrl * CTreeCtrl::GetToolTips(void)const 5525 long CHtmlView::GetTop(void)const 5526 int CPrintDialog::GetToPage(void)const 5527 unsigned int CPrintInfo::GetToPage(void)const 5528 int CComboBox::GetTopIndex(void)const 5529 int CListBox::GetTopIndex(void)const 5530 int CListCtrl::GetTopIndex(void)const 5531 int CHtmlView::GetTopLevelContainer(void)const 5532 CFrameWnd * CWnd::GetTopLevelFrame(void)const 5533 CWnd * CWnd::GetTopLevelOwner(void)const 5534 CWnd * CWnd::GetTopLevelParent(void)const 5535 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix(void) 5536 CWnd * CWnd::GetTopWindow(void)const 5537 CSize CScrollView::GetTotalSize(void)const 5538 CTreeCtrl & CTreeView::GetTreeCtrl(void)const 5539 int CScrollView::GetTrueClientSize(CSize &,CSize &) 5540 void CRectTracker::GetTrueRect(tagRECT *)const 5541 short CDaoQueryDef::GetType(void) 5542 short CDaoRecordset::GetType(void) 5543 ATL::CStringT > > CHtmlView::GetType(void)const 5544 enum OLE_OBJTYPE COleClientItem::GetType(void)const 5545 short CPictureHolder::GetType(void) 5546 unsigned long CProperty::GetType(void) 5547 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5548 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5549 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5550 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5551 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5552 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5553 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5554 unsigned int CCmdTarget::GetTypeInfoCount(void) 5555 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 5556 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 5557 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 5558 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 5559 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 5560 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 5561 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 5562 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 5563 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 5564 CTypeLibCache * CCmdTarget::GetTypeLibCache(void) 5565 void COleSafeArray::GetUBound(unsigned long,long *) 5566 enum _undonameid CRichEditCtrl::GetUndoName(void)const 5567 int CWnd::GetUpdateRect(tagRECT *,int) 5568 int CWnd::GetUpdateRgn(CRgn *,int) 5569 int CByteArray::GetUpperBound(void)const 5570 int CDWordArray::GetUpperBound(void)const 5571 int CObArray::GetUpperBound(void)const 5572 int CPtrArray::GetUpperBound(void)const 5573 int CStringArray::GetUpperBound(void)const 5574 int CUIntArray::GetUpperBound(void)const 5575 int CWordArray::GetUpperBound(void)const 5576 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 5577 long COleControl::XOleObject::GetUserClassID(_GUID *) 5578 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 5579 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 5580 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 5581 ATL::CStringT > > CDaoWorkspace::GetUserNameA(void) 5582 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 5583 void COleControl::GetUserType(char *) 5584 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 5585 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 5586 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 5587 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 5588 ATL::CStringT > > CDaoRecordset::GetValidationRule(void) 5589 ATL::CStringT > > CDaoTableDef::GetValidationRule(void) 5590 ATL::CStringT > > CDaoRecordset::GetValidationText(void) 5591 ATL::CStringT > > CDaoTableDef::GetValidationText(void) 5592 void * CMapPtrToPtr::GetValueAt(void *)const 5593 ATL::CStringT > > CHttpFile::GetVerb(void)const 5594 ATL::CStringT > > CDaoDatabase::GetVersion(void) 5595 ATL::CStringT > > CDaoWorkspace::GetVersion(void) 5596 unsigned long CDockState::GetVersion(void) 5597 unsigned long CPropExchange::GetVersion(void) 5598 CHtmlEditView * CHtmlEditDoc::GetView(void)const 5599 CRichEditView * CRichEditDoc::GetView(void)const 5600 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 5601 CSize CDC::GetViewportExt(void)const 5602 CPoint CDC::GetViewportOrg(void)const 5603 int CListCtrl::GetViewRect(tagRECT *)const 5604 long COleControl::XViewObject::GetViewStatus(unsigned long *) 5605 int CHtmlView::GetVisible(void)const 5606 unsigned int CTreeCtrl::GetVisibleCount(void)const 5607 int CFontDialog::GetWeight(void)const 5608 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 5609 long CHtmlView::GetWidth(void)const 5610 CWnd * CDC::GetWindow(void)const 5611 CWnd * CWnd::GetWindow(unsigned int)const 5612 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5613 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5614 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5615 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5616 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5617 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5618 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5619 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5620 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5621 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5622 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5623 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5624 unsigned long CWnd::GetWindowContextHelpId(void)const 5625 CDC * CWnd::GetWindowDC(void) 5626 long CWnd::GetWindowedChildCount(void) 5627 CSize CDC::GetWindowExt(void)const 5628 long CWnd::GetWindowLessChildCount(void) 5629 IDropTarget * COleControl::GetWindowlessDropTarget(void) 5630 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5631 CPoint CDC::GetWindowOrg(void)const 5632 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5633 void CWnd::GetWindowRect(tagRECT *)const 5634 int CWnd::GetWindowRgn(HRGN__ *)const 5635 void COleControlSite::GetWindowTextA(ATL::CStringT > > &)const 5636 int CWnd::GetWindowTextA(char *,int)const 5637 void CWnd::GetWindowTextA(ATL::CStringT > > &)const 5638 int CWnd::GetWindowTextLengthA(void)const 5639 unsigned int CRichEditCtrl::GetWordWrapMode(void)const 5640 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5641 short CDaoWorkspace::GetWorkspaceCount(void) 5642 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 5643 void CDaoWorkspace::GetWorkspaceInfo(char const *,CDaoWorkspaceInfo &,unsigned long) 5644 int CDC::GetWorldTransform(tagXFORM *)const 5645 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5646 long COleDropSource::GiveFeedback(unsigned long) 5647 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5648 void CHtmlView::GoBack(void) 5649 void CHtmlView::GoForward(void) 5650 void CHtmlView::GoHome(void) 5651 void CHtmlView::GoSearch(void) 5652 void CDialog::GotoDlgCtrl(CWnd *) 5653 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5654 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5655 int CDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5656 int CPreviewDC::GrayStringA(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5657 void CMemFile::GrowFile(unsigned long) 5658 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5659 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5660 long CDialog::HandleInitDialog(unsigned int,long) 5661 long CDialogBar::HandleInitDialog(unsigned int,long) 5662 long CFormView::HandleInitDialog(unsigned int,long) 5663 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5664 long CPropertySheet::HandleInitDialog(unsigned int,long) 5665 long CScrollView::HandleMButtonDown(unsigned int,long) 5666 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5667 int COleControlContainer::HandleSetFocus(void) 5668 long CDialog::HandleSetFont(unsigned int,long) 5669 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5670 long COleControl::XPersistStorage::HandsOffStorage(void) 5671 long COleServerDoc::XPersistStorage::HandsOffStorage(void) 5672 int COleDocument::HasBlankItems(void)const 5673 int CComboBoxEx::HasEditChanged(void) 5674 int CDialogTemplate::HasFont(void)const 5675 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5676 void CDumpContext::HexDump(char const *,unsigned char *,int,int) 5677 void * CFile::hFileNull 5678 void CWinApp::HideApplication(void) 5679 int CToolBarCtrl::HideButton(int,int) 5680 void CWnd::HideCaret(void) 5681 void CFileDialog::HideControl(int) 5682 void CRichEditCtrl::HideSelection(int,int) 5683 long CBrowserControlSite::HideUI(void) 5684 long CDHtmlDialog::HideUI(void) 5685 long CHtmlControlSite::XDocHostUIHandler::HideUI(void) 5686 int CTabCtrl::HighlightItem(int,int) 5687 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5688 void CDC::HIMETRICtoDP(tagSIZE *)const 5689 void CDC::HIMETRICtoLP(tagSIZE *)const 5690 int CHeaderCtrl::HitTest(_HD_HITTESTINFO *) 5691 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5692 int CListCtrl::HitTest(CPoint,unsigned int *)const 5693 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5694 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5695 int CRectTracker::HitTest(CPoint)const 5696 int CSplitterWnd::HitTest(CPoint)const 5697 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5698 int CToolBarCtrl::HitTest(tagPOINT *)const 5699 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOA *)const 5700 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5701 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5702 int CRectTracker::HitTestHandles(CPoint)const 5703 void CWinApp::HtmlHelpA(unsigned long,unsigned int) 5704 void CWnd::HtmlHelpA(unsigned long,unsigned int) 5705 int CSplitterWnd::IdFromRowCol(int,int)const 5706 void CDaoWorkspace::Idle(int) 5707 int CReBarCtrl::IDToIndex(unsigned int)const 5708 void COlePropertyPage::IgnoreApply(unsigned int) 5709 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5710 int CToolBarCtrl::Indeterminate(int,int) 5711 int CCriticalSection::Init(void) 5712 int CWinApp::InitApplication(void) 5713 long COleControl::XOleCache::InitCache(IDataObject *) 5714 int CWnd::InitControlContainer(int) 5715 void CDaoWorkspace::InitDatabasesCollection(void) 5716 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5717 long CPrintDialogEx::InitDone(void) 5718 void CDaoException::InitErrorsCollection(void) 5719 void CDaoQueryDef::InitFieldsCollection(void) 5720 void CDaoRecordset::InitFieldsCollection(void) 5721 void CDaoTableDef::InitFieldsCollection(void) 5722 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5723 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5724 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5725 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5726 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5727 void CMapPtrToWord::InitHashTable(unsigned int,int) 5728 void CMapStringToOb::InitHashTable(unsigned int,int) 5729 void CMapStringToPtr::InitHashTable(unsigned int,int) 5730 void CMapStringToString::InitHashTable(unsigned int,int) 5731 void CMapWordToOb::InitHashTable(unsigned int,int) 5732 void CMapWordToPtr::InitHashTable(unsigned int,int) 5733 long CDataSourceControl::Initialize(void) 5734 void CDHtmlDialog::Initialize(void) 5735 void CDaoWorkspace::InitializeEngine(void) 5736 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5737 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5738 int CEditView::InitializeReplace(void) 5739 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5740 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5741 void CDaoRecordset::InitIndexesCollection(void) 5742 void CDaoTableDef::InitIndexesCollection(void) 5743 int COleControlModule::InitInstance(void) 5744 int CWinApp::InitInstance(void) 5745 int CWinThread::InitInstance(void) 5746 void CWinApp::InitLibId(void) 5747 void CDockContext::InitLoop(void) 5748 int CDialog::InitModalIndirect(void *,CWnd *) 5749 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5750 long COleControl::XPersistMemory::InitNew(void) 5751 long COleControl::XPersistPropertyBag::InitNew(void) 5752 long COleControl::XPersistStorage::InitNew(IStorage *) 5753 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5754 long COleControl::XPersistStreamInit::InitNew(void) 5755 void CDaoQueryDef::InitParametersCollection(void) 5756 void CDaoDatabase::InitQueryDefsCollection(void) 5757 void CRecordset::InitRecord(void) 5758 void CDaoDatabase::InitRelationsCollection(void) 5759 void COleControl::InitStockEventMask(void) 5760 void COleControl::InitStockPropMask(void) 5761 int CComboBox::InitStorage(int,unsigned int) 5762 int CListBox::InitStorage(int,unsigned int) 5763 void CSimpleException::InitString(void) 5764 void CDaoDatabase::InitTableDefsCollection(void) 5765 void CDaoDatabase::InitWorkspace(void) 5766 void CDaoWorkspace::InitWorkspacesCollection(void) 5767 int CFrameWnd::InModalState(void)const 5768 long COleControl::XOleInPlaceObject::InPlaceDeactivate(void) 5769 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate(void) 5770 int ATL::CStringT > >::Insert(int,wchar_t) 5771 int ATL::CStringT > >::Insert(int,wchar_t const *) 5772 int ATL::CStringT > >::Insert(int,char) 5773 int ATL::CStringT > >::Insert(int,char const *) 5774 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5775 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5776 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5777 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5778 __POSITION * CStringList::InsertAfter(__POSITION *,char const *) 5779 void CByteArray::InsertAt(int,unsigned char,int) 5780 void CByteArray::InsertAt(int,CByteArray *) 5781 void CDWordArray::InsertAt(int,unsigned long,int) 5782 void CDWordArray::InsertAt(int,CDWordArray *) 5783 void CObArray::InsertAt(int,CObArray *) 5784 void CObArray::InsertAt(int,CObject *,int) 5785 void CPtrArray::InsertAt(int,CPtrArray *) 5786 void CPtrArray::InsertAt(int,void *,int) 5787 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5788 void CStringArray::InsertAt(int,char const *,int) 5789 void CStringArray::InsertAt(int,CStringArray const *) 5790 void CUIntArray::InsertAt(int,unsigned int,int) 5791 void CUIntArray::InsertAt(int,CUIntArray *) 5792 void CWordArray::InsertAt(int,unsigned short,int) 5793 void CWordArray::InsertAt(int,CWordArray *) 5794 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOA *) 5795 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5796 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5797 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5798 __POSITION * CStringList::InsertBefore(__POSITION *,char const *) 5799 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5800 int CListCtrl::InsertColumn(int,char const *,int,int,int) 5801 int CListCtrl::InsertColumn(int,tagLVCOLUMNA const *) 5802 void CStringArray::InsertEmpty(int,int) 5803 void CRichEditView::InsertFileAsObject(char const *) 5804 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMA const *) 5805 int CHeaderCtrl::InsertItem(int,_HD_ITEMA *) 5806 int CListCtrl::InsertItem(int,char const *) 5807 int CListCtrl::InsertItem(int,char const *,int) 5808 int CListCtrl::InsertItem(unsigned int,int,char const *,unsigned int,unsigned int,int,long) 5809 int CListCtrl::InsertItem(tagLVITEMA const *) 5810 long CRichEditView::InsertItem(CRichEditCntrItem *) 5811 long CTabCtrl::InsertItem(int,tagTCITEMA *) 5812 long CTabCtrl::InsertItem(int,char const *) 5813 long CTabCtrl::InsertItem(int,char const *,int) 5814 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long) 5815 long CTabCtrl::InsertItem(unsigned int,int,char const *,int,long,unsigned long,unsigned long) 5816 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,char const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5817 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTA *) 5818 _TREEITEM * CTreeCtrl::InsertItem(char const *,int,int,_TREEITEM *,_TREEITEM *) 5819 _TREEITEM * CTreeCtrl::InsertItem(char const *,_TREEITEM *,_TREEITEM *) 5820 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5821 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,char const *) 5822 int CMenu::InsertMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 5823 int CMenu::InsertMenuItemA(unsigned int,tagMENUITEMINFOA *,int) 5824 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5825 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5826 int CComboBox::InsertString(int,char const *) 5827 int CComboBoxEx::InsertString(int,char const *) 5828 int CListBox::InsertString(int,char const *) 5829 unsigned long CCmdTarget::InternalAddRef(void) 5830 CFontHolder & COleControl::InternalGetFont(void) 5831 ATL::CStringT > > const & COleControl::InternalGetText(void) 5832 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5833 unsigned long CCmdTarget::InternalRelease(void) 5834 void COleControl::InternalSetReadyState(long) 5835 int CDC::IntersectClipRect(int,int,int,int) 5836 int CDC::IntersectClipRect(tagRECT const *) 5837 void CWnd::Invalidate(int) 5838 void CCheckListBox::InvalidateCheck(int) 5839 void COleControl::InvalidateControl(tagRECT const *,int) 5840 void CCheckListBox::InvalidateItem(int) 5841 void CRichEditDoc::InvalidateObjectCache(void) 5842 void CWnd::InvalidateRect(tagRECT const *,int) 5843 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5844 void COleControl::InvalidateRgn(CRgn *,int) 5845 void CWnd::InvalidateRgn(CRgn *,int) 5846 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5847 void CDC::InvertRect(tagRECT const *) 5848 int CDC::InvertRgn(CRgn *) 5849 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5850 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5851 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5852 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5853 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5854 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5855 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5856 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(void),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5857 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5858 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5859 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5860 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5861 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5862 int CAsyncSocket::IOCtl(long,unsigned long *) 5863 int CThemeHelper::IsAppThemed(void) 5864 int CThemeHelper::IsAppThemedFail(void) 5865 int CFileFind::IsArchived(void)const 5866 int CPropExchange::IsAsynchronous(void) 5867 int CDocItem::IsBlank(void)const 5868 int CIPAddressCtrl::IsBlank(void)const 5869 int COleServerItem::IsBlank(void)const 5870 int CSocket::IsBlocking(void) 5871 int CDaoRecordset::IsBOF(void)const 5872 int CRecordset::IsBOF(void)const 5873 int CFontDialog::IsBold(void)const 5874 int CArchive::IsBufferEmpty(void)const 5875 int CToolBarCtrl::IsButtonChecked(int)const 5876 int CPropertyPage::IsButtonEnabled(int) 5877 int CToolBarCtrl::IsButtonEnabled(int)const 5878 int CToolBarCtrl::IsButtonHidden(int)const 5879 int CToolBarCtrl::IsButtonHighlighted(int)const 5880 int CToolBarCtrl::IsButtonIndeterminate(int)const 5881 int CToolBarCtrl::IsButtonPressed(int)const 5882 int CArchive::IsByteSwapping(void)const 5883 int CWnd::IsChild(CWnd const *)const 5884 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5885 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5886 int CFileFind::IsCompressed(void)const 5887 int COleServerItem::IsConnected(void)const 5888 int COleControl::IsConvertingVBX(void) 5889 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5890 int COleControlSite::IsDefaultButton(void) 5891 int CDaoRecordset::IsDeleted(void)const 5892 int CRecordset::IsDeleted(void)const 5893 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5894 int COccManager::IsDialogMessageA(CWnd *,tagMSG *) 5895 int CWnd::IsDialogMessageA(tagMSG *) 5896 int CFileFind::IsDirectory(void)const 5897 long CBlobProperty::IsDirty(void) 5898 long COleLinkingDoc::XPersistFile::IsDirty(void) 5899 long COleControl::XPersistMemory::IsDirty(void) 5900 long COleControl::XPersistStorage::IsDirty(void) 5901 long COleServerDoc::XPersistStorage::IsDirty(void) 5902 long COleControl::XPersistStreamInit::IsDirty(void) 5903 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5904 unsigned int CWnd::IsDlgButtonChecked(int)const 5905 int CControlBar::IsDockBar(void)const 5906 int CDockBar::IsDockBar(void)const 5907 int COleServerDoc::IsDocObject(void)const 5908 int CFileFind::IsDots(void)const 5909 int CGopherFileFind::IsDots(void)const 5910 int COleServerDoc::IsEmbedded(void)const 5911 bool ATL::CSimpleStringT::IsEmpty(void)const 5912 bool ATL::CSimpleStringT::IsEmpty(void)const 5913 int CByteArray::IsEmpty(void)const 5914 int CDWordArray::IsEmpty(void)const 5915 int CMapPtrToPtr::IsEmpty(void)const 5916 int CMapPtrToWord::IsEmpty(void)const 5917 int CMapStringToOb::IsEmpty(void)const 5918 int CMapStringToPtr::IsEmpty(void)const 5919 int CMapStringToString::IsEmpty(void)const 5920 int CMapWordToOb::IsEmpty(void)const 5921 int CMapWordToPtr::IsEmpty(void)const 5922 int CObArray::IsEmpty(void)const 5923 int CObList::IsEmpty(void)const 5924 int CPtrArray::IsEmpty(void)const 5925 int CPtrList::IsEmpty(void)const 5926 int CStringArray::IsEmpty(void)const 5927 int CStringList::IsEmpty(void)const 5928 int CUIntArray::IsEmpty(void)const 5929 int CWordArray::IsEmpty(void)const 5930 int CCheckListBox::IsEnabled(int) 5931 int CDaoRecordset::IsEOF(void)const 5932 int CRecordset::IsEOF(void)const 5933 int CDHtmlDialog::IsExternalDispatchSafe(void) 5934 int CDaoRecordset::IsFieldDirty(void *) 5935 int CRecordset::IsFieldDirty(void *) 5936 int CDaoRecordset::IsFieldNull(void *) 5937 int CRecordset::IsFieldNull(void *) 5938 int CDaoRecordset::IsFieldNullable(void *) 5939 int CRecordset::IsFieldNullable(void *) 5940 int CRecordset::IsFieldNullable(unsigned long)const 5941 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 5942 int CRecordset::IsFieldStatusDirty(unsigned long)const 5943 int CDaoRecordset::IsFieldStatusNull(unsigned int) 5944 int CRecordset::IsFieldStatusNull(unsigned long)const 5945 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 5946 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 5947 int CFieldExchange::IsFieldType(unsigned int *) 5948 int CControlBar::IsFloating(void)const 5949 int CFrameWnd::IsFrameWnd(void)const 5950 int CWnd::IsFrameWnd(void)const 5951 int IsHelpKey(tagMSG *) 5952 int CFileFind::IsHidden(void)const 5953 int CWnd::IsIconic(void)const 5954 int CWinThread::IsIdleMessage(tagMSG *) 5955 int COleClientItem::IsInPlaceActive(void)const 5956 int COleServerDoc::IsInPlaceActive(void)const 5957 int CCmdTarget::IsInvokeAllowed(long) 5958 int COleControl::IsInvokeAllowed(long) 5959 int CFontDialog::IsItalic(void)const 5960 int CRecordset::IsJoin(char const *) 5961 int CObject::IsKindOf(CRuntimeconst *)const 5962 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 5963 int COccManager::IsLabelControl(CWnd *) 5964 int COleObjectFactory::IsLicenseValid(void) 5965 int COleServerItem::IsLinkedItem(void)const 5966 int COleClientItem::IsLinkUpToDate(void)const 5967 int CArchive::IsLoading(void)const 5968 int CPropExchange::IsLoading(void) 5969 int CMultiLock::IsLocked(unsigned long) 5970 int CSingleLock::IsLocked(void) 5971 int CControlCreationInfo::IsManaged(void)const 5972 int CRichEditCntrItem::IsMarked(void) 5973 int CDaoRecordset::IsMatch(void) 5974 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 5975 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 5976 int COleControlSite::IsMatchingMnemonic(tagMSG *) 5977 int CPropertySheet::IsModeless(void)const 5978 int CDocument::IsModified(void) 5979 int CHtmlEditDoc::IsModified(void) 5980 int COleClientItem::IsModified(void)const 5981 int COleControl::IsModified(void) 5982 int COlePropertyPage::IsModified(void) 5983 int CRichEditDoc::IsModified(void) 5984 int CDaoWorkspace::IsNew(void)const 5985 int CFileFind::IsNormal(void)const 5986 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 5987 int CDaoRecordView::IsOnFirstRecord(void) 5988 int CRecordView::IsOnFirstRecord(void) 5989 int CDaoRecordView::IsOnLastRecord(void) 5990 int CRecordView::IsOnLastRecord(void) 5991 int CDaoDatabase::IsOpen(void)const 5992 int CDaoQueryDef::IsOpen(void)const 5993 int CDaoRecordset::IsOpen(void)const 5994 int CDaoTableDef::IsOpen(void)const 5995 int CDaoWorkspace::IsOpen(void)const 5996 int CDatabase::IsOpen(void)const 5997 int COleClientItem::IsOpen(void)const 5998 int CRecordset::IsOpen(void)const 5999 int COleControl::IsOptimizedDraw(void) 6000 long COlePropertyPage::XPropertyPage::IsPageDirty(void) 6001 int CRecordset::IsParamStatusNull(unsigned long)const 6002 int CDC::IsPrinting(void)const 6003 int CFileFind::IsReadOnly(void)const 6004 int CRecordset::IsRecordsetUpdatable(void) 6005 int COleObjectFactory::IsRegistered(void)const 6006 int CCmdTarget::IsResultExpected(void) 6007 int CRichEditView::IsRichEditFormat(unsigned short) 6008 int COleClientItem::IsRunning(void)const 6009 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 6010 int CRichEditView::IsSelected(CObject const *)const 6011 int CView::IsSelected(CObject const *)const 6012 int CRecordset::IsSelectQueryUpdatable(char const *) 6013 int CObject::IsSerializable(void)const 6014 int COleMessageFilter::IsSignificantMessage(tagMSG *) 6015 int CStatusBarCtrl::IsSimple(void)const 6016 int CDHtmlDialog::IsSinkedElement(IDispatch *) 6017 int CRecordset::IsSQLUpdatable(char const *) 6018 int CArchive::IsStoring(void)const 6019 int CFontDialog::IsStrikeOut(void)const 6020 int COleControl::IsSubclassedControl(void) 6021 int CFileFind::IsSystem(void)const 6022 int CFileFind::IsTemporary(void)const 6023 int CFindReplaceDialog::IsTerminating(void)const 6024 int CThemeHelper::IsThemeBackgroundPartiallyTransparent(void *,int,int) 6025 int CThemeHelper::IsThemeBackgroundPartiallyTransparentFail(void *,int,int) 6026 int CThemeHelper::IsThemePartDefined(void *,int,int) 6027 int CThemeHelper::IsThemePartDefinedFail(void *,int,int) 6028 int CWnd::IsTopParentActive(void)const 6029 int CFrameWnd::IsTracking(void)const 6030 int CSplitterWnd::IsTracking(void) 6031 int CFontDialog::IsUnderline(void)const 6032 long CDocObjectServer::XOleObject::IsUpToDate(void) 6033 long COleControl::XOleObject::IsUpToDate(void) 6034 long COleServerDoc::XOleObject::IsUpToDate(void) 6035 long COleServerItem::XOleObject::IsUpToDate(void) 6036 int CDaoFieldExchange::IsValidOperation(void) 6037 int COleChangeSourceDialog::IsValidSource(void) 6038 int CControlBar::IsVisible(void)const 6039 int COleControlSite::IsWindowEnabled(void)const 6040 int CWnd::IsWindowEnabled(void)const 6041 int CWnd::IsWindowVisible(void)const 6042 int CPropertySheet::IsWizard(void)const 6043 int CWnd::IsZoomed(void)const 6044 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 6045 int CDragListBox::ItemFromPt(CPoint,int)const 6046 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 6047 void COleControl::KeyDown(unsigned short *) 6048 void COleControl::KeyUp(unsigned short *) 6049 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 6050 int CWnd::KillTimer(unsigned int) 6051 int CHeaderCtrl::Layout(_HD_LAYOUT *) 6052 void CToolBar::Layout(void) 6053 ATL::CStringT > > ATL::CStringT > >::Left(int)const 6054 ATL::CStringT > > ATL::CStringT > >::Left(int)const 6055 int CComboBox::LimitText(int) 6056 void CEdit::LimitText(int) 6057 void CRichEditCtrl::LimitText(long) 6058 int CEdit::LineFromChar(int)const 6059 long CRichEditCtrl::LineFromChar(long)const 6060 int CEdit::LineIndex(int)const 6061 int CRichEditCtrl::LineIndex(int)const 6062 int CEdit::LineLength(int)const 6063 int CRichEditCtrl::LineLength(int)const 6064 void CEdit::LineScroll(int,int) 6065 void CRichEditCtrl::LineScroll(int,int) 6066 int CDC::LineTo(int,int) 6067 int CDC::LineTo(tagPOINT) 6068 int CAsyncSocket::Listen(int) 6069 unsigned long CRichEditView::lMaxSize 6070 long CBlobProperty::Load(IStream *) 6071 int CDialogTemplate::Load(char const *) 6072 void COleControl::Load(char const *,CDataPathProperty &) 6073 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 6074 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 6075 long COleControl::XPersistMemory::Load(void *,unsigned long) 6076 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 6077 long COleControl::XPersistStorage::Load(IStorage *) 6078 long COleServerDoc::XPersistStorage::Load(IStorage *) 6079 long COleControl::XPersistStreamInit::Load(IStream *) 6080 int CFrameWnd::LoadAccelTable(char const *) 6081 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL(void) 6082 void CFrameWnd::LoadBarState(char const *) 6083 int CBitmap::LoadBitmapA(unsigned int) 6084 int CBitmap::LoadBitmapA(char const *) 6085 int CToolBar::LoadBitmapA(unsigned int) 6086 int CToolBar::LoadBitmapA(char const *) 6087 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 6088 int CBitmapButton::LoadBitmaps(char const *,char const *,char const *,char const *) 6089 HICON__ * CWinApp::LoadCursorA(unsigned int)const 6090 HICON__ * CWinApp::LoadCursorA(char const *)const 6091 void CDaoRecordset::LoadFields(void) 6092 void CRecordset::LoadFields(void) 6093 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6094 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6095 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6096 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6097 int CDHtmlDialog::LoadFromResource(unsigned int) 6098 int CDHtmlDialog::LoadFromResource(char const *) 6099 int CHtmlView::LoadFromResource(unsigned int) 6100 int CHtmlView::LoadFromResource(char const *) 6101 void COleDocument::LoadFromStorage(void) 6102 HICON__ * CWinApp::LoadIconA(unsigned int)const 6103 HICON__ * CWinApp::LoadIconA(char const *)const 6104 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 6105 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 6106 int CMenu::LoadMenuA(unsigned int) 6107 int CMenu::LoadMenuA(char const *) 6108 int CMenu::LoadMenuIndirectA(void const *) 6109 int CBitmap::LoadOEMBitmap(unsigned int) 6110 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 6111 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 6112 HICON__ * CWinApp::LoadStandardCursor(char const *)const 6113 HICON__ * CWinApp::LoadStandardIcon(char const *)const 6114 int CControlBarInfo::LoadState(char const *,int,CDockState *) 6115 void CDockState::LoadState(char const *) 6116 long COleControl::LoadState(IStream *) 6117 void CWinApp::LoadStdProfileSettings(unsigned int) 6118 int ATL::CStringT > >::LoadStringA(unsigned int) 6119 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 6120 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 6121 int ATL::CStringT > >::LoadStringA(unsigned int) 6122 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int) 6123 int ATL::CStringT > >::LoadStringA(HINSTANCE__ *,unsigned int,unsigned short) 6124 int CWinApp::LoadSysPolicies(void) 6125 void CDocTemplate::LoadTemplate(void) 6126 void CMultiDocTemplate::LoadTemplate(void) 6127 int CToolBar::LoadToolBar(unsigned int) 6128 int CToolBar::LoadToolBar(char const *) 6129 int CCriticalSection::Lock(void) 6130 int CCriticalSection::Lock(unsigned long) 6131 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 6132 void COleSafeArray::Lock(void) 6133 int CSingleLock::Lock(unsigned long) 6134 int CSyncObject::Lock(unsigned long) 6135 void CTypeLibCache::Lock(void) 6136 wchar_t * ATL::CSimpleStringT::LockBuffer(void) 6137 char * ATL::CSimpleStringT::LockBuffer(void) 6138 char const * CEditView::LockBuffer(void)const 6139 long COleControlContainer::XOleContainer::LockContainer(int) 6140 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 6141 void COleLinkingDoc::LockExternal(int,int) 6142 int COleControl::LockInPlaceActive(int) 6143 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 6144 void CFile::LockRange(unsigned __int64,unsigned __int64) 6145 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 6146 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 6147 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 6148 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 6149 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 6150 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6151 long COleObjectFactory::XClassFactory::LockServer(int) 6152 int CWnd::LockWindowUpdate(void) 6153 int CMapPtrToPtr::Lookup(void *,void * &)const 6154 int CMapPtrToWord::Lookup(void *,unsigned short &)const 6155 int CMapStringToOb::Lookup(char const *,CObject * &)const 6156 int CMapStringToPtr::Lookup(char const *,void * &)const 6157 int CMapStringToString::Lookup(char const *,ATL::CStringT > > &)const 6158 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 6159 int CMapWordToPtr::Lookup(unsigned short,void * &)const 6160 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 6161 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 6162 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 6163 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 6164 int CMapStringToOb::LookupKey(char const *,char const * &)const 6165 int CMapStringToPtr::LookupKey(char const *,char const * &)const 6166 int CMapStringToString::LookupKey(char const *,char const * &)const 6167 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 6168 void CDC::LPtoDP(tagPOINT *,int)const 6169 void CDC::LPtoDP(tagRECT *)const 6170 void CDC::LPtoDP(tagSIZE *)const 6171 void CDC::LPtoHIMETRIC(tagSIZE *)const 6172 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 6173 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 6174 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 6175 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 6176 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 6177 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 6178 int CToolBarCtrl::MapAccelerator(char,unsigned int *) 6179 void CDialog::MapDialogRect(tagRECT *)const 6180 void CPropertySheet::MapDialogRect(tagRECT *)const 6181 void CArchive::MapObject(CObject const *) 6182 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 6183 int COleDialog::MapResult(unsigned int) 6184 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 6185 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 6186 long CPropertyPage::MapWizardResult(long) 6187 void CRichEditCntrItem::Mark(int) 6188 int CToolBarCtrl::MarkButton(int,int) 6189 void CDaoRecordset::MarkForAddNew(void) 6190 void CRecordset::MarkForAddNew(void) 6191 void CDaoRecordset::MarkForEdit(void) 6192 void CRecordset::MarkForUpdate(void) 6193 void CRichEditDoc::MarkItemsClear(void)const 6194 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 6195 int CFindReplaceDialog::MatchCase(void)const 6196 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(char const *,CDocument * &) 6197 int CFileFind::MatchesMask(unsigned long)const 6198 int CFindReplaceDialog::MatchWholeWord(void)const 6199 void CReBarCtrl::MaximizeBand(unsigned int) 6200 void CMDIChildWnd::MDIActivate(void) 6201 void CMDIFrameWnd::MDIActivate(CWnd *) 6202 void CMDIFrameWnd::MDICascade(int) 6203 void CMDIFrameWnd::MDICascade(void) 6204 void CMDIChildWnd::MDIDestroy(void) 6205 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 6206 void CMDIFrameWnd::MDIIconArrange(void) 6207 void CMDIChildWnd::MDIMaximize(void) 6208 void CMDIFrameWnd::MDIMaximize(CWnd *) 6209 void CMDIFrameWnd::MDINext(void) 6210 void CMDIFrameWnd::MDIPrev(void) 6211 void CMDIChildWnd::MDIRestore(void) 6212 void CMDIFrameWnd::MDIRestore(CWnd *) 6213 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 6214 void CMDIFrameWnd::MDITile(int) 6215 void CMDIFrameWnd::MDITile(void) 6216 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 6217 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 6218 void CComboBox::MeasureItem(tagMEASUREITEM*) 6219 void CListBox::MeasureItem(tagMEASUREITEM*) 6220 void CMenu::MeasureItem(tagMEASUREITEM*) 6221 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,char const *) 6222 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 6223 int COlePropertyPage::MessageBox(char const *,char const *,unsigned int) 6224 int CWnd::MessageBox(char const *,char const *,unsigned int) 6225 int COlePropertyPage::MessageBoxA(char const *,char const *,unsigned int) 6226 int CWnd::MessageBoxA(char const *,char const *,unsigned int) 6227 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 6228 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 6229 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 6230 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 6231 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 6232 void CReBarCtrl::MinimizeBand(unsigned int) 6233 void CPreviewDC::MirrorAttributes(void) 6234 void CPreviewDC::MirrorFont(void) 6235 void CPreviewDC::MirrorMappingMode(int) 6236 void CPreviewDC::MirrorViewportOrg(void) 6237 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,char const *) 6238 int CMenu::ModifyMenuA(unsigned int,unsigned int,unsigned int,CBitmap const *) 6239 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 6240 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 6241 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 6242 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 6243 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 6244 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 6245 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 6246 void CDaoRecordset::Move(long) 6247 void CDockContext::Move(CPoint) 6248 void CRecordset::Move(long,unsigned short) 6249 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 6250 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 6251 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 6252 void CDaoRecordset::MoveFirst(void) 6253 void CRecordset::MoveFirst(void) 6254 void CDaoRecordset::MoveLast(void) 6255 void CRecordset::MoveLast(void) 6256 void CDaoRecordset::MoveNext(void) 6257 void CRecordset::MoveNext(void) 6258 void CDaoRecordset::MovePrev(void) 6259 void CRecordset::MovePrev(void) 6260 CPoint CDC::MoveTo(int,int) 6261 CPoint CDC::MoveTo(tagPOINT) 6262 void COleControlSite::MoveWindow(int,int,int,int) 6263 void CWnd::MoveWindow(int,int,int,int,int) 6264 void CWnd::MoveWindow(tagRECT const *,int) 6265 void CDHtmlDialog::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 6266 void CHtmlView::Navigate(char const *,unsigned long,char const *,char const *,void *,unsigned long) 6267 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,char const *) 6268 void CHtmlView::Navigate2(char const *,unsigned long,char const *,char const *,void *,unsigned long) 6269 void CHtmlView::Navigate2(char const *,unsigned long,CByteArray &,char const *,char const *) 6270 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 6271 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 6272 unsigned int COleDropSource::nDragDelay 6273 unsigned int COleDropSource::nDragMinDist 6274 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 6275 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc(void) 6276 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc(void) 6277 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc(void) 6278 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc(void) 6279 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(char const *) 6280 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc(void) 6281 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc(void) 6282 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 6283 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 6284 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 6285 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 6286 void CDialog::NextDlgCtrl(void)const 6287 unsigned int const CEditView::nMaxSize 6288 int CRectTracker::NormalizeHit(int)const 6289 void CDataBoundProperty::Notify(void) 6290 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 6291 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 6292 void COleServerDoc::NotifyChanged(void) 6293 void COleServerItem::NotifyChanged(enum tagDVASPECT) 6294 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 6295 void COleServerDoc::NotifyClosed(void) 6296 void CFrameWnd::NotifyFloatingWindows(unsigned long) 6297 void COleServerDoc::NotifyRename(char const *) 6298 void COleServerDoc::NotifySaved(void) 6299 void CWnd::NotifyWinEvent(unsigned long,long,long) 6300 unsigned int COleDropTarget::nScrollDelay 6301 int COleDropTarget::nScrollInset 6302 unsigned int COleDropTarget::nScrollInterval 6303 void ATL::CStringT > >::OemToCharA(void) 6304 int CDC::OffsetClipRgn(int,int) 6305 int CDC::OffsetClipRgn(tagSIZE) 6306 int CProgressCtrl::OffsetPos(int) 6307 int CRgn::OffsetRgn(int,int) 6308 int CRgn::OffsetRgn(tagPOINT) 6309 CPoint CDC::OffsetViewportOrg(int,int) 6310 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 6311 CPoint CPreviewDC::OffsetViewportOrg(int,int) 6312 CPoint CDC::OffsetWindowOrg(int,int) 6313 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6314 void CAsyncSocket::OnAccept(int) 6315 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 6316 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 6317 void COleClientItem::OnActivate(void) 6318 void COleFrameHook::OnActivate(int) 6319 void CWnd::OnActivate(unsigned int,CWnd *,int) 6320 void CWnd::OnActivateApp(int,unsigned long) 6321 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 6322 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 6323 long COleControl::OnActivateInPlace(int,tagMSG *) 6324 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 6325 long CWnd::OnActivateTopLevel(unsigned int,long) 6326 void COleClientItem::OnActivateUI(void) 6327 long CDocObjectServer::OnActivateView(void) 6328 void CFormView::OnActivateView(int,CView *,CView *) 6329 void CPreviewView::OnActivateView(int,CView *,CView *) 6330 void CRichEditView::OnActivateView(int,CView *,CView *) 6331 void CView::OnActivateView(int,CView *,CView *) 6332 long CToolTipCtrl::OnAddTool(unsigned int,long) 6333 void CConnectionPoint::OnAdvise(int) 6334 void COleControl::XEventConnPt::OnAdvise(int) 6335 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 6336 void COleControl::OnAmbientPropertyChange(long) 6337 long COleControl::XOleControl::OnAmbientPropertyChange(long) 6338 int CWnd::OnAppCommand(CWnd *,unsigned int,unsigned int,unsigned int) 6339 void COleControl::OnAppearanceChanged(void) 6340 void CWinApp::OnAppExit(void) 6341 int CPropertyPage::OnApply(void) 6342 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 6343 void CDocObjectServer::OnApplyViewState(CArchive &) 6344 void CWnd::OnAskCbFormatName(unsigned int,char *) 6345 void COleControl::OnBackColorChanged(void) 6346 int CFrameWnd::OnBarCheck(unsigned int) 6347 int COleIPFrameWnd::OnBarCheck(unsigned int) 6348 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 6349 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 6350 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 6351 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,char const *) 6352 void CHtmlView::OnBeforeNavigate2(char const *,unsigned long,char const *,CByteArray &,char const *,int *) 6353 int COleDropSource::OnBeginDrag(CWnd *) 6354 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 6355 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 6356 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 6357 void COleControl::OnBorderStyleChanged(void) 6358 void CRichEditView::OnBullet(void) 6359 int COleMessageFilter::OnBusyDialog(HTASK__ *) 6360 long CFileDialog::XFileDialogControlEvents::OnButtonClicked(IFileDialogCustomize *,unsigned long) 6361 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 6362 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 6363 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 6364 void CCommonDialog::OnCancel(void) 6365 void CDialog::OnCancel(void) 6366 void CPropertyPage::OnCancel(void) 6367 void CRichEditView::OnCancelEditCntr(void) 6368 void COleControl::OnCancelMode(void) 6369 void CSplitterWnd::OnCancelMode(void) 6370 void CWnd::OnCancelMode(void) 6371 void CWnd::OnCaptureChanged(CWnd *) 6372 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 6373 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 6374 long COleControl::XFontNotification::OnChanged(long) 6375 long COleControlSite::XPropertyNotifySink::OnChanged(long) 6376 long COlePropertyPage::XPropNotifySink::OnChanged(long) 6377 void CRectTracker::OnChangedRect(CRect const &) 6378 void CDocument::OnChangedViewList(void) 6379 int COleClientItem::OnChangeItemPosition(CRect const &) 6380 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 6381 void CWnd::OnChangeUIState(unsigned int,unsigned int) 6382 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 6383 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 6384 void CRichEditView::OnCharBold(void) 6385 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 6386 void CRichEditView::OnCharItalic(void) 6387 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 6388 void CRichEditView::OnCharUnderline(void) 6389 long CFileDialog::XFileDialogControlEvents::OnCheckButtonToggled(IFileDialogCustomize *,unsigned long,int) 6390 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 6391 void CWnd::OnChildActivate(void) 6392 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 6393 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6394 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6395 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6396 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6397 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6398 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6399 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 6400 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 6401 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 6402 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6403 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6404 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 6405 void COleControl::OnClick(unsigned short) 6406 void CWnd::OnClipboardUpdate(void) 6407 CEnumArray * CEnumArray::OnClone(void) 6408 CEnumArray * CEnumConnections::OnClone(void) 6409 void CAsyncSocket::OnClose(int) 6410 void CControlFrameWnd::OnClose(void) 6411 void CFrameWnd::OnClose(void) 6412 void CMiniDockFrameWnd::OnClose(void) 6413 void COleControl::OnClose(unsigned long) 6414 void COleServerDoc::OnClose(enum tagOLECLOSE) 6415 void CPropertySheet::OnClose(void) 6416 void CWnd::OnClose(void) 6417 void COleClientItem::XAdviseSink::OnClose(void) 6418 void CDocObjectServer::OnCloseDocument(void) 6419 void CDocument::OnCloseDocument(void) 6420 void COleDocument::OnCloseDocument(void) 6421 void COleLinkingDoc::OnCloseDocument(void) 6422 void COleServerDoc::OnCloseDocument(void) 6423 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6424 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6425 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6426 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6427 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6428 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6429 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6430 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6431 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6432 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6433 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6434 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6435 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6436 void CRichEditView::OnColorDefault(void) 6437 void CWnd::OnColorizationColorChanged(unsigned long,int) 6438 int CColorDialog::OnColorOK(void) 6439 void CRichEditView::OnColorPick(unsigned long) 6440 int CFrameWnd::OnCommand(unsigned int,long) 6441 int CMDIFrameWnd::OnCommand(unsigned int,long) 6442 int COlePropertyPage::OnCommand(unsigned int,long) 6443 int CPropertySheet::OnCommand(unsigned int,long) 6444 int CSplitterWnd::OnCommand(unsigned int,long) 6445 int CWnd::OnCommand(unsigned int,long) 6446 long CDialog::OnCommandHelp(unsigned int,long) 6447 long CFrameWnd::OnCommandHelp(unsigned int,long) 6448 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 6449 long CPropertySheet::OnCommandHelp(unsigned int,long) 6450 void CHtmlView::OnCommandStateChange(long,int) 6451 void CWnd::OnCompacting(unsigned int) 6452 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 6453 void CWnd::OnCompositionChanged(void) 6454 void CAsyncSocket::OnConnect(int) 6455 void CFrameWnd::OnContextHelp(void) 6456 int COleFrameHook::OnContextHelp(int) 6457 void COleIPFrameWnd::OnContextHelp(void) 6458 void CWinApp::OnContextHelp(void) 6459 void CWnd::OnContextMenu(CWnd *,CPoint) 6460 long CFileDialog::XFileDialogControlEvents::OnControlActivating(IFileDialogCustomize *,unsigned long) 6461 long COleControlSite::XOleControlSite::OnControlInfoChanged(void) 6462 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 6463 int CCheckListBox::OnCreate(tagCREATESTRUCTA *) 6464 int CControlBar::OnCreate(tagCREATESTRUCTA *) 6465 int CEditView::OnCreate(tagCREATESTRUCTA *) 6466 int CFormView::OnCreate(tagCREATESTRUCTA *) 6467 int CFrameWnd::OnCreate(tagCREATESTRUCTA *) 6468 int CMDIChildWnd::OnCreate(tagCREATESTRUCTA *) 6469 int COleControl::OnCreate(tagCREATESTRUCTA *) 6470 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTA *) 6471 int CPreviewView::OnCreate(tagCREATESTRUCTA *) 6472 int CRichEditView::OnCreate(tagCREATESTRUCTA *) 6473 int CToolBarCtrl::OnCreate(tagCREATESTRUCTA *) 6474 int CView::OnCreate(tagCREATESTRUCTA *) 6475 int CWnd::OnCreate(tagCREATESTRUCTA *) 6476 int CCmdTarget::OnCreateAggregates(void) 6477 int COleControl::OnCreateAggregates(void) 6478 int CFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 6479 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTA *,CCreateContext *) 6480 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 6481 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 6482 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTA *,CCreateContext *) 6483 CCmdTarget * COleObjectFactory::OnCreateObject(void) 6484 CCmdTarget * COleTemplateServer::OnCreateObject(void) 6485 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 6486 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6487 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6488 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 6489 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 6490 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 6491 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 6492 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6493 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6494 int CDocManager::OnDDECommand(char *) 6495 int CWinApp::OnDDECommand(char *) 6496 long CFrameWnd::OnDDEExecute(unsigned int,long) 6497 long CFrameWnd::OnDDEInitiate(unsigned int,long) 6498 long CFrameWnd::OnDDETerminate(unsigned int,long) 6499 void CDHtmlDialog::OnDDXError(char const *,unsigned int,int) 6500 void COleClientItem::OnDeactivate(void) 6501 void COleServerDoc::OnDeactivate(void) 6502 void COleClientItem::OnDeactivateAndUndo(void) 6503 void COleClientItem::OnDeactivateUI(int) 6504 void COleServerDoc::OnDeactivateUI(int) 6505 void CRichEditCntrItem::OnDeactivateUI(int) 6506 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 6507 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 6508 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 6509 void CControlBar::OnDestroy(void) 6510 void CDHtmlDialog::OnDestroy(void) 6511 void CEditView::OnDestroy(void) 6512 void CFrameWnd::OnDestroy(void) 6513 void CHtmlView::OnDestroy(void) 6514 void CMDIChildWnd::OnDestroy(void) 6515 void CMDIFrameWnd::OnDestroy(void) 6516 void COleControl::OnDestroy(void) 6517 void COleIPFrameWnd::OnDestroy(void) 6518 void CRichEditView::OnDestroy(void) 6519 void CTabCtrl::OnDestroy(void) 6520 void CTreeCtrl::OnDestroy(void) 6521 void CTreeView::OnDestroy(void) 6522 void CView::OnDestroy(void) 6523 void CWnd::OnDestroy(void) 6524 void CWnd::OnDestroyClipboard(void) 6525 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 6526 int CWnd::OnDeviceChange(unsigned int,unsigned long) 6527 void CRichEditView::OnDevModeChange(char *) 6528 void CWnd::OnDevModeChange(char *) 6529 long CToolTipCtrl::OnDisableModal(unsigned int,long) 6530 void COleClientItem::OnDiscardUndoState(void) 6531 void CSplitterWnd::OnDisplayChange(void) 6532 long CWnd::OnDisplayChange(unsigned int,long) 6533 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 6534 int COleFrameHook::OnDocActivate(int) 6535 void CDHtmlDialog::OnDocumentComplete(IDispatch *,char const *) 6536 void CHtmlView::OnDocumentComplete(char const *) 6537 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 6538 long CBrowserControlSite::OnDocWindowActivate(int) 6539 long CDHtmlDialog::OnDocWindowActivate(int) 6540 long CHtmlView::OnDocWindowActivate(int) 6541 void COleServerDoc::OnDocWindowActivate(int) 6542 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 6543 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6544 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6545 void CDocObjectServerItem::OnDoVerb(long) 6546 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 6547 void COleServerItem::OnDoVerb(long) 6548 void CHtmlView::OnDownloadBegin(void) 6549 void CHtmlView::OnDownloadComplete(void) 6550 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 6551 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 6552 void COleDropTarget::OnDragLeave(CWnd *) 6553 void CView::OnDragLeave(void) 6554 long CWnd::OnDragList(unsigned int,long) 6555 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 6556 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 6557 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 6558 unsigned long CView::OnDragScroll(unsigned long,CPoint) 6559 void CCtrlView::OnDraw(CDC *) 6560 void CFormView::OnDraw(CDC *) 6561 void CHtmlView::OnDraw(CDC *) 6562 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 6563 void CPreviewView::OnDraw(CDC *) 6564 void CView::OnDraw(CDC *) 6565 void CWnd::OnDrawClipboard(void) 6566 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 6567 void CWnd::OnDrawItem(int,tagDRAWITEM*) 6568 void COleControl::OnDrawMetafile(CDC *,CRect const &) 6569 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 6570 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 6571 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 6572 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 6573 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 6574 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 6575 void CFrameWnd::OnDropFiles(HDROP__ *) 6576 void CRichEditView::OnDropFiles(HDROP__ *) 6577 void CWnd::OnDropFiles(HDROP__ *) 6578 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 6579 int CEditView::OnEditChange(void) 6580 void COleDocument::OnEditChangeIcon(void) 6581 void CEditView::OnEditClear(void) 6582 void CRichEditView::OnEditClear(void) 6583 void COleDocument::OnEditConvert(void) 6584 void CEditView::OnEditCopy(void) 6585 void CHtmlView::OnEditCopy(void) 6586 void CRichEditView::OnEditCopy(void) 6587 void CEditView::OnEditCut(void) 6588 void CHtmlView::OnEditCut(void) 6589 void CRichEditView::OnEditCut(void) 6590 void CEditView::OnEditFind(void) 6591 void CRichEditView::OnEditFind(void) 6592 void CEditView::OnEditFindReplace(int) 6593 void CRichEditView::OnEditFindReplace(int) 6594 void COleDocument::OnEditLinks(void) 6595 void CEditView::OnEditPaste(void) 6596 void CHtmlView::OnEditPaste(void) 6597 void CRichEditView::OnEditPaste(void) 6598 void CRichEditView::OnEditPasteSpecial(void) 6599 void CRichEditView::OnEditProperties(void) 6600 int COlePropertyPage::OnEditProperty(long) 6601 void CRichEditView::OnEditRedo(void) 6602 void CEditView::OnEditRepeat(void) 6603 void CRichEditView::OnEditRepeat(void) 6604 void CEditView::OnEditReplace(void) 6605 void CRichEditView::OnEditReplace(void) 6606 void CEditView::OnEditSelectAll(void) 6607 void CRichEditView::OnEditSelectAll(void) 6608 void CEditView::OnEditUndo(void) 6609 void CRichEditView::OnEditUndo(void) 6610 void CFrameWnd::OnEnable(int) 6611 void CToolTipCtrl::OnEnable(int) 6612 void CWnd::OnEnable(int) 6613 void COleControl::OnEnabledChanged(void) 6614 long CHtmlView::OnEnableModeless(int) 6615 void COleFrameHook::OnEnableModeless(int) 6616 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 6617 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 6618 void CView::OnEndPrinting(CDC *,CPrintInfo *) 6619 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 6620 void CFrameWnd::OnEndSession(int) 6621 void CWnd::OnEndSession(int) 6622 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 6623 void COleControl::OnEnterIdle(unsigned int,CWnd *) 6624 void CWnd::OnEnterIdle(unsigned int,CWnd *) 6625 void CWnd::OnEnterMenuLoop(int) 6626 void CWnd::OnEnterSizeMove(void) 6627 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 6628 int CDockBar::OnEraseBkgnd(CDC *) 6629 int CFrameWnd::OnEraseBkgnd(CDC *) 6630 int COleControl::OnEraseBkgnd(CDC *) 6631 int COleResizeBar::OnEraseBkgnd(CDC *) 6632 int CPreviewView::OnEraseBkgnd(CDC *) 6633 int CReBar::OnEraseBkgnd(CDC *) 6634 int CToolBar::OnEraseBkgnd(CDC *) 6635 int CWnd::OnEraseBkgnd(CDC *) 6636 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6637 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6638 int COleControlSite::OnEvent(AFX_EVENT *) 6639 void COleControl::OnEventAdvise(int) 6640 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6641 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6642 void CWnd::OnExitMenuLoop(int) 6643 void CWnd::OnExitSizeMove(void) 6644 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6645 void CDocument::OnFileClose(void) 6646 void CFileDialog::OnFileNameChange(void) 6647 int CFileDialog::OnFileNameOK(void) 6648 void CDocManager::OnFileNew(void) 6649 void CWinApp::OnFileNew(void) 6650 long CFileDialog::XFileDialogEvents::OnFileOk(IFileDialog *) 6651 void CDocManager::OnFileOpen(void) 6652 void CWinApp::OnFileOpen(void) 6653 void CHtmlView::OnFilePrint(void) 6654 void CView::OnFilePrint(void) 6655 void CView::OnFilePrintPreview(void) 6656 void CWinApp::OnFilePrintSetup(void) 6657 void CDocument::OnFileSave(void) 6658 void CDocument::OnFileSaveAs(void) 6659 void COleServerDoc::OnFileSaveCopyAs(void) 6660 void CDocument::OnFileSendMail(void) 6661 void COleDocument::OnFileSendMail(void) 6662 void COleServerDoc::OnFileUpdate(void) 6663 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 6664 void CCmdTarget::OnFinalRelease(void) 6665 void CDocument::OnFinalRelease(void) 6666 void COleControl::OnFinalRelease(void) 6667 void COlePropertyPage::OnFinalRelease(void) 6668 void COleServerItem::OnFinalRelease(void) 6669 void CWnd::OnFinalRelease(void) 6670 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(char const *) 6671 void CEditView::OnFindNext(char const *,int,int) 6672 void CRichEditView::OnFindNext(char const *,int,int,int) 6673 long CEditView::OnFindReplaceCmd(unsigned int,long) 6674 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 6675 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 6676 long COleControlSite::XOleControlSite::OnFocus(int) 6677 void CFileDialog::OnFolderChange(void) 6678 long CFileDialog::XFileDialogEvents::OnFolderChange(IFileDialog *) 6679 long CFileDialog::XFileDialogEvents::OnFolderChanging(IFileDialog *,IShellItem *) 6680 void CWnd::OnFontChange(void) 6681 void COleControl::OnFontChanged(void) 6682 void COleControl::OnForeColorChanged(void) 6683 void CRichEditView::OnFormatFont(void) 6684 void COleControl::OnFrameClose(void) 6685 long CBrowserControlSite::OnFrameWindowActivate(int) 6686 long CDHtmlDialog::OnFrameWindowActivate(int) 6687 long CHtmlView::OnFrameWindowActivate(int) 6688 void COleServerDoc::OnFrameWindowActivate(int) 6689 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 6690 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6691 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6692 void COleControl::OnFreezeEvents(int) 6693 void CHtmlView::OnFullScreen(int) 6694 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 6695 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6696 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6697 void COleClientItem::OnGetClipRect(CRect &) 6698 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 6699 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 6700 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 6701 unsigned int COleControl::OnGetDlgCode(void) 6702 unsigned int CWnd::OnGetDlgCode(void) 6703 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 6704 COleServerItem * CRichEditDoc::OnGetEmbeddedItem(void) 6705 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6706 long CHtmlView::OnGetExternal(IDispatch * *) 6707 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6708 HMENU__ * COleControl::OnGetInPlaceMenu(void) 6709 void COleClientItem::OnGetItemPosition(CRect &) 6710 void COleDocObjectItem::OnGetItemPosition(CRect &) 6711 COleServerItem * COleLinkingDoc::OnGetLinkedItem(char const *) 6712 COleServerItem * COleServerDoc::OnGetLinkedItem(char const *) 6713 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6714 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6715 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6716 long CWnd::OnGetObject(unsigned int,long) 6717 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6718 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6719 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6720 long CStatusBar::OnGetText(unsigned int,long) 6721 long CStatusBar::OnGetTextLength(unsigned int,long) 6722 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6723 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6724 unsigned long COleControl::OnGetViewStatus(void) 6725 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6726 void CReBar::OnHeightChange(tagNMHDR *,long *) 6727 void CFrameWnd::OnHelp(void) 6728 int COlePropertyPage::OnHelp(char const *) 6729 void CWinApp::OnHelp(void) 6730 void CWnd::OnHelp(void) 6731 long CFileDialog::XFileDialogEvents::OnHelp(IFileDialog *) 6732 void CWinApp::OnHelpFinder(void) 6733 void CWnd::OnHelpFinder(void) 6734 long CControlBar::OnHelpHitTest(unsigned int,long) 6735 long CDialog::OnHelpHitTest(unsigned int,long) 6736 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6737 void CWinApp::OnHelpIndex(void) 6738 void CWnd::OnHelpIndex(void) 6739 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6740 int CWnd::OnHelpInfo(tagHELPINFO *) 6741 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6742 void CWinApp::OnHelpUsing(void) 6743 void CWnd::OnHelpUsing(void) 6744 void CDocObjectServerItem::OnHide(void) 6745 long COleControl::OnHide(void) 6746 void COleServerItem::OnHide(void) 6747 void CFrameWnd::OnHideMenuBar(void) 6748 void COleControl::OnHideToolBars(void) 6749 long CHtmlView::OnHideUI(void) 6750 void CWnd::OnHotKey(unsigned int,unsigned int,unsigned int) 6751 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6752 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6753 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6754 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6755 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6756 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6757 void CWnd::OnIconEraseBkgnd(CDC *) 6758 void CDocTemplate::OnIdle(void) 6759 void CDocument::OnIdle(void) 6760 void COleDocument::OnIdle(void) 6761 int CWinApp::OnIdle(long) 6762 int CWinThread::OnIdle(long) 6763 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6764 void CFrameWnd::OnIdleUpdateCmdUI(void) 6765 void CMDIFrameWnd::OnIdleUpdateCmdUI(void) 6766 void COleCntrFrameWnd::OnIdleUpdateCmdUI(void) 6767 void COleIPFrameWnd::OnIdleUpdateCmdUI(void) 6768 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6769 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6770 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6771 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6772 int CDHtmlDialog::OnInitDialog(void) 6773 int CDialog::OnInitDialog(void) 6774 int COlePropertiesDialog::OnInitDialog(void) 6775 int COlePropertyPage::OnInitDialog(void) 6776 int CPropertySheet::OnInitDialog(void) 6777 void CFileDialog::OnInitDone(void) 6778 int COleServerItem::OnInitFromData(COleDataObject *,int) 6779 void CControlBar::OnInitialUpdate(void) 6780 void CDaoRecordView::OnInitialUpdate(void) 6781 void CFormView::OnInitialUpdate(void) 6782 void COleDBRecordView::OnInitialUpdate(void) 6783 void CRecordView::OnInitialUpdate(void) 6784 void CRichEditView::OnInitialUpdate(void) 6785 void CView::OnInitialUpdate(void) 6786 void CFrameWnd::OnInitMenu(CMenu *) 6787 void COleFrameHook::OnInitMenu(CMenu *) 6788 void CWnd::OnInitMenu(CMenu *) 6789 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6790 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6791 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6792 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6793 long COleClientItem::XOleIPSite::OnInPlaceActivate(void) 6794 long COleControlSite::XOleIPSite::OnInPlaceActivate(void) 6795 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6796 long COleClientItem::XOleIPSite::OnInPlaceDeactivate(void) 6797 long COleControlSite::XOleIPSite::OnInPlaceDeactivate(void) 6798 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6799 void CWnd::OnInputDeviceChange(unsigned short) 6800 void CWnd::OnInputLangChange(unsigned int,unsigned int) 6801 void CWnd::OnInputLangChangeRequest(unsigned int,unsigned int) 6802 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6803 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6804 void CRichEditView::OnInsertObject(void) 6805 void CSplitterWnd::OnInvertTracker(CRect const &) 6806 long CFileDialog::XFileDialogControlEvents::OnItemSelected(IFileDialogCustomize *,unsigned long,unsigned long) 6807 void CDockContext::OnKey(int,int) 6808 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6809 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6810 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6811 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6812 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6813 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6814 void COleControl::OnKeyPressEvent(unsigned short) 6815 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6816 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6817 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6818 long CPropertySheet::OnKickIdle(unsigned int,long) 6819 int CPropertyPage::OnKillActive(void) 6820 void COleControl::OnKillFocus(CWnd *) 6821 void CWnd::OnKillFocus(CWnd *) 6822 long CCheckListBox::OnLBAddString(unsigned int,long) 6823 long CCheckListBox::OnLBFindString(unsigned int,long) 6824 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6825 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6826 long CCheckListBox::OnLBGetText(unsigned int,long) 6827 long CCheckListBox::OnLBInsertString(unsigned int,long) 6828 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6829 long CCheckListBox::OnLBSelectString(unsigned int,long) 6830 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6831 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6832 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6833 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6834 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6835 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6836 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6837 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6838 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6839 void COleControl::OnLButtonDown(unsigned int,CPoint) 6840 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6841 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6842 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6843 void CWnd::OnLButtonDown(unsigned int,CPoint) 6844 void COleControl::OnLButtonUp(unsigned int,CPoint) 6845 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6846 void CWnd::OnLButtonUp(unsigned int,CPoint) 6847 void CAsyncMonikerFile::OnLowResource(void) 6848 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6849 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6850 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6851 void COleControl::OnMButtonDown(unsigned int,CPoint) 6852 void CWnd::OnMButtonDown(unsigned int,CPoint) 6853 void COleControl::OnMButtonUp(unsigned int,CPoint) 6854 void CWnd::OnMButtonUp(unsigned int,CPoint) 6855 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6856 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6857 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6858 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6859 void CHtmlView::OnMenuBar(int) 6860 long CFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6861 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6862 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6863 void CWnd::OnMenuCommand(unsigned int,CMenu *) 6864 unsigned int CWnd::OnMenuDrag(unsigned int,CMenu *) 6865 unsigned int CWnd::OnMenuGetObject(tagMENUGETOBJECTINFO *) 6866 void CWnd::OnMenuRButtonUp(unsigned int,CMenu *) 6867 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6868 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6869 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6870 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6871 int COleMessageFilter::OnMessagePending(tagMSG const *) 6872 int CSocket::OnMessagePending(void) 6873 void COleControl::OnMnemonic(tagMSG *) 6874 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6875 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6876 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6877 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6878 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6879 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6880 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6881 void CWnd::OnMouseHover(unsigned int,CPoint) 6882 void CWnd::OnMouseHWheel(unsigned int,short,CPoint) 6883 void CWnd::OnMouseLeave(void) 6884 void COleControl::OnMouseMove(unsigned int,CPoint) 6885 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6886 void CWnd::OnMouseMove(unsigned int,CPoint) 6887 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6888 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6889 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6890 void CDaoRecordView::OnMove(int,int) 6891 int CDaoRecordView::OnMove(unsigned int) 6892 void COleControl::OnMove(int,int) 6893 int COleDBRecordView::OnMove(unsigned int) 6894 void CRecordView::OnMove(int,int) 6895 int CRecordView::OnMove(unsigned int) 6896 void CWnd::OnMove(int,int) 6897 void CWnd::OnMoving(unsigned int,tagRECT *) 6898 void CDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6899 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,char const *) 6900 void CHtmlEditView::OnNavigateComplete2(char const *) 6901 void CHtmlView::OnNavigateComplete2(char const *) 6902 void CHtmlView::OnNavigateError(char const *,char const *,unsigned long,int *) 6903 int CFrameWnd::OnNcActivate(int) 6904 int CMDIChildWnd::OnNcActivate(int) 6905 int CMiniFrameWnd::OnNcActivate(int) 6906 int CWnd::OnNcActivate(int) 6907 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6908 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6909 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6910 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6911 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6912 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6913 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTA *) 6914 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTA *) 6915 int COleControl::OnNcCreate(tagCREATESTRUCTA *) 6916 int CPropertySheet::OnNcCreate(tagCREATESTRUCTA *) 6917 int CReBar::OnNcCreate(tagCREATESTRUCTA *) 6918 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTA *) 6919 int CToolBar::OnNcCreate(tagCREATESTRUCTA *) 6920 int CWnd::OnNcCreate(tagCREATESTRUCTA *) 6921 void CListCtrl::OnNcDestroy(void) 6922 void CListView::OnNcDestroy(void) 6923 void CWnd::OnNcDestroy(void) 6924 long CMiniFrameWnd::OnNcHitTest(CPoint) 6925 long COleControl::OnNcHitTest(CPoint) 6926 long CStatusBar::OnNcHitTest(CPoint) 6927 long CToolBar::OnNcHitTest(CPoint) 6928 long CWnd::OnNcHitTest(CPoint) 6929 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6930 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6931 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6932 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6933 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6934 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6935 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6936 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6937 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6938 void CWnd::OnNcMouseHover(unsigned int,CPoint) 6939 void CWnd::OnNcMouseLeave(void) 6940 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6941 void CDockBar::OnNcPaint(void) 6942 void COleControl::OnNcPaint(void) 6943 void CReBar::OnNcPaint(void) 6944 void CStatusBar::OnNcPaint(void) 6945 void CToolBar::OnNcPaint(void) 6946 void CWnd::OnNcPaint(void) 6947 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6948 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6949 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6950 void CWnd::OnNcRenderingChanged(int) 6951 void CWnd::OnNcXButtonDblClk(short,unsigned int,CPoint) 6952 void CWnd::OnNcXButtonDown(short,unsigned int,CPoint) 6953 void CWnd::OnNcXButtonUp(short,unsigned int,CPoint) 6954 int CDocument::OnNewDocument(void) 6955 int CHtmlEditDoc::OnNewDocument(void) 6956 int COleDocument::OnNewDocument(void) 6957 int COleLinkingDoc::OnNewDocument(void) 6958 void COleServerDoc::OnNewEmbedding(IStorage *) 6959 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 6960 int CEnumArray::OnNext(void *) 6961 int CEnumConnections::OnNext(void *) 6962 int CEnumConnPoints::OnNext(void *) 6963 int CEnumFormatEtc::OnNext(void *) 6964 int CEnumOleVerb::OnNext(void *) 6965 int CEnumUnknown::OnNext(void *) 6966 void CWnd::OnNextMenu(unsigned int,tagMDINEXTMENU *) 6967 void CPreviewView::OnNextPage(void) 6968 int CView::OnNextPaneCmd(unsigned int) 6969 int CFileDialog::OnNotify(unsigned int,long,long *) 6970 int CPropertyPage::OnNotify(unsigned int,long,long *) 6971 int CSplitterWnd::OnNotify(unsigned int,long,long *) 6972 int CWnd::OnNotify(unsigned int,long,long *) 6973 unsigned int CWnd::OnNotifyFormat(CWnd *,unsigned int) 6974 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 6975 long CWnd::OnNTCtlColor(unsigned int,long) 6976 void CPreviewView::OnNumPageChange(void) 6977 void COlePropertyPage::OnObjectsChanged(void) 6978 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 6979 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 6980 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 6981 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 6982 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 6983 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 6984 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 6985 void CCommonDialog::OnOK(void) 6986 void CDialog::OnOK(void) 6987 void CPropertyPage::OnOK(void) 6988 long COleControl::OnOpen(int,tagMSG *) 6989 void COleServerItem::OnOpen(void) 6990 int CDocument::OnOpenDocument(char const *) 6991 int CHtmlEditDoc::OnOpenDocument(char const *) 6992 int COleDocument::OnOpenDocument(char const *) 6993 int COleLinkingDoc::OnOpenDocument(char const *) 6994 void COleServerDoc::OnOpenEmbedding(IStorage *) 6995 int CWinApp::OnOpenRecentFile(unsigned int) 6996 void CAsyncSocket::OnOutOfBandData(int) 6997 long CFileDialog::XFileDialogEvents::OnOverwrite(IFileDialog *,IShellItem *,enum tagFDE_OVERWRITE_RESPONSE *) 6998 void CCommonDialog::OnPaint(void) 6999 void CControlBar::OnPaint(void) 7000 void CCtrlView::OnPaint(void) 7001 void CDialog::OnPaint(void) 7002 void CDockBar::OnPaint(void) 7003 void CHtmlEditView::OnPaint(void) 7004 void CHtmlView::OnPaint(void) 7005 void COleControl::OnPaint(CDC *) 7006 int COleControlContainer::OnPaint(CDC *) 7007 void COleResizeBar::OnPaint(void) 7008 void CReBar::OnPaint(void) 7009 void CSplitterWnd::OnPaint(void) 7010 void CStatusBar::OnPaint(void) 7011 void CToolBar::OnPaint(void) 7012 void CView::OnPaint(void) 7013 void CWnd::OnPaint(void) 7014 void CWnd::OnPaintClipboard(CWnd *,void *) 7015 void CFrameWnd::OnPaletteChanged(CWnd *) 7016 void COleFrameHook::OnPaletteChanged(CWnd *) 7017 void CWnd::OnPaletteChanged(CWnd *) 7018 void CWnd::OnPaletteIsChanging(CWnd *) 7019 void CRichEditView::OnParaAlign(unsigned short) 7020 void CRichEditView::OnParaCenter(void) 7021 void CRichEditView::OnParaLeft(void) 7022 void CRichEditView::OnParaRight(void) 7023 void CWnd::OnParentNotify(unsigned int,long) 7024 int CRichEditView::OnPasteNativeObject(IStorage *) 7025 long CFrameWnd::OnPopMessageString(unsigned int,long) 7026 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 7027 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 7028 unsigned int CWnd::OnPowerBroadcast(unsigned int,unsigned int) 7029 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 7030 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 7031 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 7032 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 7033 void CView::OnPrepareDC(CDC *,CPrintInfo *) 7034 int CEditView::OnPreparePrinting(CPrintInfo *) 7035 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 7036 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 7037 int CView::OnPreparePrinting(CPrintInfo *) 7038 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 7039 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 7040 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 7041 void CPreviewView::OnPreviewClose(void) 7042 void CPreviewView::OnPreviewPrint(void) 7043 void CPreviewView::OnPrevPage(void) 7044 void CEditView::OnPrint(CDC *,CPrintInfo *) 7045 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 7046 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 7047 void CView::OnPrint(CDC *,CPrintInfo *) 7048 void CRichEditView::OnPrinterChanged(CDC const &) 7049 void CPrintDialog::OnPrintSetup(void) 7050 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,char const *) 7051 void CHtmlView::OnProgressChange(long,long) 7052 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 7053 void CHtmlView::OnPropertyChange(char const *) 7054 int CPropertyPage::OnQueryCancel(void) 7055 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 7056 HICON__ * CWnd::OnQueryDragIcon(void) 7057 int CFrameWnd::OnQueryEndSession(void) 7058 int CWnd::OnQueryEndSession(void) 7059 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7060 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7061 int CFrameWnd::OnQueryNewPalette(void) 7062 int COleFrameHook::OnQueryNewPalette(void) 7063 int CWnd::OnQueryNewPalette(void) 7064 int CWnd::OnQueryOpen(void) 7065 unsigned int CWnd::OnQueryUIState(void) 7066 int COleServerItem::OnQueryUpdateItems(void) 7067 void CHtmlView::OnQuit(void) 7068 void CWnd::OnRawInput(unsigned int,HRAWINPUT__ *) 7069 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 7070 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 7071 void COleControl::OnRButtonDown(unsigned int,CPoint) 7072 void CWnd::OnRButtonDown(unsigned int,CPoint) 7073 void COleControl::OnRButtonUp(unsigned int,CPoint) 7074 void CWnd::OnRButtonUp(unsigned int,CPoint) 7075 int COleServerDoc::OnReactivateAndUndo(void) 7076 void COleFrameHook::OnRecalcLayout(void) 7077 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 7078 void CReBar::OnRecalcParent(void) 7079 void CAsyncSocket::OnReceive(int) 7080 void COleControl::OnReflectorDestroyed(void) 7081 void COleClientItem::OnRemoveMenus(CMenu *) 7082 void COleDocObjectItem::OnRemoveMenus(CMenu *) 7083 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 7084 void CWnd::OnRenderAllFormats(void) 7085 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7086 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7087 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7088 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7089 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7090 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 7091 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 7092 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 7093 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 7094 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 7095 void CWnd::OnRenderFormat(unsigned int) 7096 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 7097 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 7098 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 7099 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 7100 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 7101 void CEditView::OnReplaceAll(char const *,char const *,int) 7102 void CRichEditView::OnReplaceAll(char const *,char const *,int,int) 7103 void CEditView::OnReplaceSel(char const *,int,int,char const *) 7104 void CRichEditView::OnReplaceSel(char const *,int,int,int,char const *) 7105 long COleControl::XFontNotification::OnRequestEdit(long) 7106 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 7107 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 7108 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 7109 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 7110 void CEnumArray::OnReset(void) 7111 void CPropertyPage::OnReset(void) 7112 void COleControl::OnResetState(void) 7113 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7114 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7115 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 7116 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 7117 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 7118 void COleClientItem::XAdviseSink::OnSave(void) 7119 int CDocument::OnSaveDocument(char const *) 7120 int CHtmlEditDoc::OnSaveDocument(char const *) 7121 int COleDocument::OnSaveDocument(char const *) 7122 int COleLinkingDoc::OnSaveDocument(char const *) 7123 int COleServerDoc::OnSaveDocument(char const *) 7124 void COleServerDoc::OnSaveEmbedding(IStorage *) 7125 void COleServerItem::OnSaveEmbedding(IStorage *) 7126 void CDocObjectServer::OnSaveViewState(CArchive &) 7127 int CScrollView::OnScroll(unsigned int,unsigned int,int) 7128 int CView::OnScroll(unsigned int,unsigned int,int) 7129 int COleClientItem::OnScrollBy(CSize) 7130 int CScrollView::OnScrollBy(CSize,int) 7131 int CView::OnScrollBy(CSize,int) 7132 void CRichEditView::OnSelChange(tagNMHDR *,long *) 7133 long CFileDialog::XFileDialogEvents::OnSelectionChange(IFileDialog *) 7134 void CAsyncSocket::OnSend(int) 7135 void CWnd::OnSessionChange(unsigned int,unsigned int) 7136 int CPropertyPage::OnSetActive(void) 7137 long CToolBar::OnSetBitmapSize(unsigned int,long) 7138 long CToolBar::OnSetButtonSize(unsigned int,long) 7139 void COleControl::OnSetClientSite(void) 7140 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 7141 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 7142 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 7143 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 7144 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 7145 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 7146 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 7147 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7148 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7149 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7150 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7151 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7152 long CPropertySheet::OnSetDefID(unsigned int,long) 7153 int COleControl::OnSetExtent(tagSIZE *) 7154 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 7155 void CFormView::OnSetFocus(CWnd *) 7156 void CFrameWnd::OnSetFocus(CWnd *) 7157 void COleControl::OnSetFocus(CWnd *) 7158 void CWnd::OnSetFocus(CWnd *) 7159 long CCheckListBox::OnSetFont(unsigned int,long) 7160 void CDialog::OnSetFont(CFont *) 7161 long CEditView::OnSetFont(unsigned int,long) 7162 void COleServerDoc::OnSetHostNames(char const *,char const *) 7163 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 7164 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 7165 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 7166 long CFrameWnd::OnSetMessageString(unsigned int,long) 7167 long COleControl::OnSetMessageString(unsigned int,long) 7168 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 7169 long CStatusBar::OnSetMinHeight(unsigned int,long) 7170 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 7171 void CDatabase::OnSetOptions(void *) 7172 void CRecordset::OnSetOptions(void *) 7173 void COlePropertyPage::OnSetPageSite(void) 7174 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 7175 long CToolBar::OnSetSizeHelper(CSize &,long) 7176 long COleControl::OnSetText(unsigned int,long) 7177 long CStatusBar::OnSetText(unsigned int,long) 7178 void CWnd::OnSettingChange(unsigned int,char const *) 7179 void CRecordset::OnSetUpdateOptions(void *) 7180 unsigned int CFileDialog::OnShareViolation(char const *) 7181 long CFileDialog::XFileDialogEvents::OnShareViolation(IFileDialog *,IShellItem *,enum tagFDE_SHAREVIOLATION_RESPONSE *) 7182 void CDocObjectServerItem::OnShow(void) 7183 void COleServerItem::OnShow(void) 7184 long CReBar::OnShowBand(unsigned int,long) 7185 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 7186 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 7187 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 7188 void COleServerDoc::OnShowDocument(int) 7189 void COleClientItem::OnShowItem(void) 7190 void CFrameWnd::OnShowMenuBar(void) 7191 void COleControl::OnShowToolBars(void) 7192 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 7193 void COleDocument::OnShowViews(int) 7194 void COleLinkingDoc::OnShowViews(int) 7195 void COleControl::OnShowWindow(int,unsigned int) 7196 void CWnd::OnShowWindow(int,unsigned int) 7197 long COleClientItem::XOleClientSite::OnShowWindow(int) 7198 long COleControlSite::XOleClientSite::OnShowWindow(int) 7199 void CDHtmlDialog::OnSize(unsigned int,int,int) 7200 void CFrameWnd::OnSize(unsigned int,int,int) 7201 void CHtmlView::OnSize(unsigned int,int,int) 7202 void CMDIChildWnd::OnSize(unsigned int,int,int) 7203 void CMDIFrameWnd::OnSize(unsigned int,int,int) 7204 void COleControl::OnSize(unsigned int,int,int) 7205 void COleIPFrameWnd::OnSize(unsigned int,int,int) 7206 void COleResizeBar::OnSize(unsigned int,int,int) 7207 void CPreviewView::OnSize(unsigned int,int,int) 7208 void CScrollView::OnSize(unsigned int,int,int) 7209 void CSplitterWnd::OnSize(unsigned int,int,int) 7210 void CStatusBar::OnSize(unsigned int,int,int) 7211 void CWnd::OnSize(unsigned int,int,int) 7212 void CWnd::OnSizeClipboard(CWnd *,void *) 7213 long CControlBar::OnSizeParent(unsigned int,long) 7214 long CDockBar::OnSizeParent(unsigned int,long) 7215 long COleResizeBar::OnSizeParent(unsigned int,long) 7216 void CWnd::OnSizing(unsigned int,tagRECT *) 7217 int CEnumArray::OnSkip(void) 7218 long CSocketWnd::OnSocketDead(unsigned int,long) 7219 long CSocketWnd::OnSocketNotify(unsigned int,long) 7220 int CView::OnSplitCmd(unsigned int) 7221 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 7222 void CAsyncMonikerFile::OnStartBinding(void) 7223 void CHtmlView::OnStatusBar(int) 7224 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 7225 void CHtmlView::OnStatusTextChange(char const *) 7226 void CAsyncMonikerFile::OnStopBinding(long,char const *) 7227 void CWnd::OnStyleChanged(int,tagSTYLE*) 7228 void CWnd::OnStyleChanging(int,tagSTYLE*) 7229 void CWnd::OnSyncPaint(void) 7230 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 7231 void CToolBar::OnSysColorChange(void) 7232 void CWnd::OnSysColorChange(void) 7233 void CFrameWnd::OnSysCommand(unsigned int,long) 7234 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 7235 void CPropertySheet::OnSysCommand(unsigned int,long) 7236 void CSplitterWnd::OnSysCommand(unsigned int,long) 7237 void CWnd::OnSysCommand(unsigned int,long) 7238 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 7239 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 7240 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 7241 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 7242 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 7243 void CWnd::OnTCard(unsigned int,unsigned long) 7244 void COleControl::OnTextChanged(void) 7245 void CEditView::OnTextNotFound(char const *) 7246 void CRichEditView::OnTextNotFound(char const *) 7247 void CHtmlView::OnTheaterMode(int) 7248 long CControlBar::OnThemeChanged(void) 7249 void CWnd::OnTimeChange(void) 7250 void CControlBar::OnTimer(unsigned int) 7251 void CWnd::OnTimer(unsigned int) 7252 void CHtmlView::OnTitleChange(char const *) 7253 void CHtmlView::OnToolBar(int) 7254 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 7255 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOA *)const 7256 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOA *)const 7257 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 7258 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 7259 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 7260 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 7261 void CFileDialog::OnTypeChange(void) 7262 long CFileDialog::XFileDialogEvents::OnTypeChange(IFileDialog *) 7263 void COleControlContainer::OnUIActivate(COleControlSite *) 7264 long COleClientItem::XOleIPSite::OnUIActivate(void) 7265 long COleControlSite::XOleIPSite::OnUIActivate(void) 7266 void COleControlContainer::OnUIDeactivate(COleControlSite *) 7267 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 7268 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 7269 void CWnd::OnUniChar(unsigned int,unsigned int,unsigned int) 7270 void CWnd::OnUnInitMenuPopup(CMenu *,unsigned int) 7271 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 7272 void CView::OnUpdate(CView *,long,CObject *) 7273 void CRichEditView::OnUpdateBullet(CCmdUI *) 7274 void CRichEditView::OnUpdateCharBold(CCmdUI *) 7275 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 7276 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 7277 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 7278 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 7279 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 7280 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 7281 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 7282 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 7283 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 7284 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 7285 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 7286 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 7287 int COleServerDoc::OnUpdateDocument(void) 7288 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 7289 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 7290 void CHtmlView::OnUpdateEditCut(CCmdUI *) 7291 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 7292 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 7293 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 7294 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 7295 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 7296 void CEditView::OnUpdateEditUndo(CCmdUI *) 7297 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 7298 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 7299 void CDocument::OnUpdateFileSendMail(CCmdUI *) 7300 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 7301 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 7302 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 7303 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 7304 void CFrameWnd::OnUpdateFrameTitle(int) 7305 void CMDIChildWnd::OnUpdateFrameTitle(int) 7306 void CMDIFrameWnd::OnUpdateFrameTitle(int) 7307 int COleClientItem::OnUpdateFrameTitle(void) 7308 int COleFrameHook::OnUpdateFrameTitle(void) 7309 void COleServerItem::OnUpdateItems(void) 7310 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 7311 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 7312 void CEditView::OnUpdateNeedClip(CCmdUI *) 7313 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 7314 void CEditView::OnUpdateNeedFind(CCmdUI *) 7315 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 7316 void CEditView::OnUpdateNeedSel(CCmdUI *) 7317 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 7318 void CEditView::OnUpdateNeedText(CCmdUI *) 7319 void CRichEditView::OnUpdateNeedText(CCmdUI *) 7320 void CPreviewView::OnUpdateNextPage(CCmdUI *) 7321 void CView::OnUpdateNextPaneMenu(CCmdUI *) 7322 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 7323 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 7324 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 7325 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 7326 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 7327 void CRichEditView::OnUpdateParaRight(CCmdUI *) 7328 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 7329 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 7330 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 7331 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 7332 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 7333 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 7334 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 7335 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 7336 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 7337 void CRecordView::OnUpdateRecordLast(CCmdUI *) 7338 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 7339 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 7340 void CRecordView::OnUpdateRecordNext(CCmdUI *) 7341 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 7342 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 7343 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 7344 void CView::OnUpdateSplitCmd(CCmdUI *) 7345 long CHtmlView::OnUpdateUI(void) 7346 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 7347 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 7348 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 7349 void CWnd::OnUserChanged(void) 7350 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 7351 void CHtmlView::OnVisible(int) 7352 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 7353 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7354 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7355 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7356 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7357 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7358 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 7359 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 7360 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 7361 void CWnd::OnWindowMaximizedChange(int) 7362 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 7363 void CMDIFrameWnd::OnWindowNew(void) 7364 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 7365 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 7366 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 7367 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 7368 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 7369 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 7370 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 7371 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 7372 void CWnd::OnWinIniChange(char const *) 7373 long CPropertyPage::OnWizardBack(void) 7374 int CPropertyPage::OnWizardFinish(void) 7375 HWND__ * CPropertyPage::OnWizardFinishEx(void) 7376 long CPropertyPage::OnWizardNext(void) 7377 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 7378 void CWnd::OnXButtonDblClk(unsigned int,unsigned int,CPoint) 7379 void CWnd::OnXButtonDown(unsigned int,unsigned int,CPoint) 7380 void CWnd::OnXButtonUp(unsigned int,unsigned int,CPoint) 7381 void CPreviewView::OnZoomIn(void) 7382 void CPreviewView::OnZoomOut(void) 7383 int CAnimateCtrl::Open(unsigned int) 7384 int CAnimateCtrl::Open(char const *) 7385 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 7386 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 7387 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 7388 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 7389 int CAsyncMonikerFile::Open(char const *,IBindHost *,CFileException *) 7390 int CAsyncMonikerFile::Open(char const *,IServiceProvider *,CFileException *) 7391 int CAsyncMonikerFile::Open(char const *,IUnknown *,CFileException *) 7392 int CAsyncMonikerFile::Open(char const *,CFileException *) 7393 void CDaoDatabase::Open(char const *,int,int,char const *) 7394 void CDaoQueryDef::Open(char const *) 7395 void CDaoRecordset::Open(int,char const *,int) 7396 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 7397 void CDaoRecordset::Open(CDaoTableDef *,int,int) 7398 void CDaoTableDef::Open(char const *) 7399 void CDaoWorkspace::Open(char const *) 7400 int CDatabase::Open(char const *,int,int,char const *,int) 7401 int CDataPathProperty::Open(CFileException *) 7402 int CDataPathProperty::Open(COleControl *,CFileException *) 7403 int CDataPathProperty::Open(char const *,CFileException *) 7404 int CDataPathProperty::Open(char const *,COleControl *,CFileException *) 7405 int CFile::Open(char const *,unsigned int,CFileException *) 7406 int CMirrorFile::Open(char const *,unsigned int,CFileException *) 7407 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 7408 int CMonikerFile::Open(char const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 7409 int CMonikerFile::Open(IMoniker *,CFileException *) 7410 int CMonikerFile::Open(char const *,CFileException *) 7411 int CRecordset::Open(unsigned int,char const *,unsigned long) 7412 int CSocketFile::Open(char const *,unsigned int,CFileException *) 7413 int CStdioFile::Open(char const *,unsigned int,CFileException *) 7414 long CDocObjectServer::XOleDocumentView::Open(void) 7415 int CWnd::OpenClipboard(void) 7416 CDocument * CDocManager::OpenDocumentFile(char const *) 7417 CDocument * CMultiDocTemplate::OpenDocumentFile(char const *,int) 7418 CDocument * CSingleDocTemplate::OpenDocumentFile(char const *,int) 7419 CDocument * CWinApp::OpenDocumentFile(char const *) 7420 int CDatabase::OpenEx(char const *,unsigned long) 7421 CInternetFile * CFtpConnection::OpenFile(char const *,unsigned long,unsigned long,unsigned long) 7422 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,char const *,unsigned long) 7423 int CWnd::OpenIcon(void) 7424 long COleUILinkInfo::OpenLinkSource(unsigned long) 7425 CHttpFile * CHttpConnection::OpenRequest(int,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 7426 CHttpFile * CHttpConnection::OpenRequest(char const *,char const *,char const *,unsigned long,char const * *,char const *,unsigned long) 7427 int COleStreamFile::OpenStream(IStorage *,char const *,unsigned long,CFileException *) 7428 void * CThemeHelper::OpenThemeData(HWND__ *,wchar_t const *) 7429 void * CThemeHelper::OpenThemeDataFail(HWND__ *,wchar_t const *) 7430 int CHtmlEditDoc::OpenURL(char const *) 7431 CStdioFile * CInternetSession::OpenURL(char const *,unsigned long,unsigned long,char const *,unsigned long) 7432 int CHeaderCtrl::OrderToIndex(int)const 7433 int CFileException::OsErrorToException(long) 7434 void CDumpContext::OutputString(char const *) 7435 int CEditView::PaginateTo(CDC *,CPrintInfo *) 7436 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 7437 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 7438 int CDC::PaintRgn(CRgn *) 7439 int CWnd::PaintWindowlessControls(CDC *) 7440 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 7441 void CWinApp::ParseCommandLine(CCommandLineInfo &) 7442 int COleCurrency::ParseCurrency(char const *,unsigned long,unsigned long) 7443 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 7444 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 7445 void CCommandLineInfo::ParseLast(int) 7446 void CCommandLineInfo::ParseParam(char const *,int,int) 7447 void CCommandLineInfo::ParseParamFlag(char const *) 7448 void CCommandLineInfo::ParseParamNotFlag(char const *) 7449 void CComboBox::Paste(void) 7450 void CEdit::Paste(void) 7451 void CRichEditCtrl::Paste(void) 7452 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 7453 int CDC::PatBlt(int,int,int,int,unsigned long) 7454 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc(void) 7455 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc(void)const 7456 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 7457 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 7458 int CDC::Pie(int,int,int,int,int,int,int,int) 7459 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 7460 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 7461 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 7462 int CDC::PlayMetaFile(HMETAFILE__ *) 7463 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 7464 CMapStringToString::CPair * CMapStringToString::PLookup(char const *) 7465 CMapStringToString::CPair const * CMapStringToString::PLookup(char const *)const 7466 int CDC::PolyBezier(tagPOINT const *,int) 7467 int CDC::PolyBezierTo(tagPOINT const *,int) 7468 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 7469 int CDC::Polygon(tagPOINT const *,int) 7470 int CDC::Polyline(tagPOINT const *,int) 7471 int CDC::PolylineTo(tagPOINT const *,int) 7472 int CDC::PolyPolygon(tagPOINT const *,int const *,int) 7473 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 7474 void CToolTipCtrl::Pop(void) 7475 CPoint CEdit::PosFromChar(unsigned int)const 7476 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 7477 void CPreviewView::PositionPage(unsigned int) 7478 int CAsyncMonikerFile::PostBindToStream(CFileException *) 7479 int CMonikerFile::PostBindToStream(CFileException *) 7480 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 7481 int CWnd::PostMessageA(unsigned int,unsigned int,long) 7482 void CDialog::PostModal(void) 7483 void CPrintDialogEx::PostModal(void) 7484 void COleControl::PostModalDialog(HWND__ *) 7485 void CControlBar::PostNcDestroy(void) 7486 void CControlFrameWnd::PostNcDestroy(void) 7487 void CFindReplaceDialog::PostNcDestroy(void) 7488 void CFrameWnd::PostNcDestroy(void) 7489 void COleCntrFrameWnd::PostNcDestroy(void) 7490 void CReflectorWnd::PostNcDestroy(void) 7491 void CView::PostNcDestroy(void) 7492 void CWnd::PostNcDestroy(void) 7493 int CWinThread::PostThreadMessageA(unsigned int,unsigned int,long) 7494 void ATL::CSimpleStringT::Preallocate(int) 7495 void ATL::CSimpleStringT::Preallocate(int) 7496 void CRecordset::PreBindFields(void) 7497 void CDocument::PreCloseFrame(CFrameWnd *) 7498 void COleDocument::PreCloseFrame(CFrameWnd *) 7499 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 7500 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 7501 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 7502 int CControlBar::PreCreateWindow(tagCREATESTRUCTA &) 7503 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 7504 int CCtrlView::PreCreateWindow(tagCREATESTRUCTA &) 7505 int CEditView::PreCreateWindow(tagCREATESTRUCTA &) 7506 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 7507 int CHtmlView::PreCreateWindow(tagCREATESTRUCTA &) 7508 int CListView::PreCreateWindow(tagCREATESTRUCTA &) 7509 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTA &) 7510 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 7511 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTA &) 7512 int CRichEditView::PreCreateWindow(tagCREATESTRUCTA &) 7513 int CStatusBar::PreCreateWindow(tagCREATESTRUCTA &) 7514 int CTreeView::PreCreateWindow(tagCREATESTRUCTA &) 7515 int CView::PreCreateWindow(tagCREATESTRUCTA &) 7516 int CWnd::PreCreateWindow(tagCREATESTRUCTA &) 7517 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 7518 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 7519 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 7520 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 7521 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 7522 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDA *) 7523 void CDialog::PreInitDialog(void) 7524 void COleChangeSourceDialog::PreInitDialog(void) 7525 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 7526 HWND__ * CDialog::PreModal(void) 7527 HWND__ * CPrintDialogEx::PreModal(void) 7528 void COleControl::PreModalDialog(HWND__ *) 7529 void CRecordset::PrepareAndExecute(void) 7530 HWND__ * CDataExchange::PrepareCtrl(int) 7531 HWND__ * CDataExchange::PrepareEditCtrl(int) 7532 void CWnd::PrepareForHelp(void) 7533 COleControlSite * CDataExchange::PrepareOleCtrl(int) 7534 void CRecordset::PrepareUpdateHstmt(void) 7535 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 7536 char * ATL::CSimpleStringT::PrepareWrite(int) 7537 void ATL::CSimpleStringT::PrepareWrite2(int) 7538 void ATL::CSimpleStringT::PrepareWrite2(int) 7539 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEA &,int) 7540 void CPropertySheet::PressButton(int) 7541 int CToolBarCtrl::PressButton(int,int) 7542 void CCheckListBox::PreSubclassWindow(void) 7543 void CDragListBox::PreSubclassWindow(void) 7544 void CWnd::PreSubclassWindow(void) 7545 int CWnd::PreTranslateInput(tagMSG *) 7546 int CControlBar::PreTranslateMessage(tagMSG *) 7547 int CDialog::PreTranslateMessage(tagMSG *) 7548 int CFormView::PreTranslateMessage(tagMSG *) 7549 int CFrameWnd::PreTranslateMessage(tagMSG *) 7550 int CHtmlView::PreTranslateMessage(tagMSG *) 7551 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 7552 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 7553 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 7554 int COlePropertyPage::PreTranslateMessage(tagMSG *) 7555 int CPropertyPage::PreTranslateMessage(tagMSG *) 7556 int CPropertySheet::PreTranslateMessage(tagMSG *) 7557 int CWinThread::PreTranslateMessage(tagMSG *) 7558 int CWnd::PreTranslateMessage(tagMSG *) 7559 void CDialog::PrevDlgCtrl(void)const 7560 void CWnd::Print(CDC *,unsigned long)const 7561 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 7562 int CPrintDialog::PrintAll(void)const 7563 int CPrintDialogEx::PrintAll(void)const 7564 void CWnd::PrintClient(CDC *,unsigned long)const 7565 int CPrintDialog::PrintCollate(void)const 7566 int CPrintDialogEx::PrintCollate(void)const 7567 int CPrintDialogEx::PrintCurrentPage(void)const 7568 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 7569 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 7570 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 7571 long CRichEditView::PrintPage(CDC *,long,long) 7572 int CPrintDialog::PrintRange(void)const 7573 int CPrintDialogEx::PrintRange(void)const 7574 int CPrintDialog::PrintSelection(void)const 7575 int CPrintDialogEx::PrintSelection(void)const 7576 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 7577 long COleException::Process(CException const *) 7578 int CSocket::ProcessAuxQueue(void) 7579 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 7580 int CWinThread::ProcessMessageFilter(int,tagMSG *) 7581 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 7582 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 7583 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 7584 int CRgn::PtInRegion(int,int)const 7585 int CRgn::PtInRegion(tagPOINT)const 7586 void COleSafeArray::PtrOfIndex(long *,void * *) 7587 int CDC::PtVisible(tagPOINT)const 7588 int CDC::PtVisible(int,int)const 7589 int CMetaFileDC::PtVisible(tagPOINT)const 7590 int CMetaFileDC::PtVisible(int,int)const 7591 int CEvent::PulseEvent(void) 7592 int CWinThread::PumpMessage(void) 7593 int CSocket::PumpMessages(unsigned int) 7594 void CReBarCtrl::PushChevron(unsigned int,long) 7595 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 7596 long CWnd::put_accName(tagVARIANT,wchar_t *) 7597 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 7598 long CWnd::put_accValue(tagVARIANT,wchar_t *) 7599 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 7600 void COleSafeArray::PutElement(long *,void *) 7601 int CFtpConnection::PutFile(char const *,char const *,unsigned long,unsigned long) 7602 void CHtmlView::PutProperty(char const *,char const *) 7603 void CHtmlView::PutProperty(char const *,tagVARIANT const &) 7604 void CHtmlView::PutProperty(char const *,short) 7605 void CHtmlView::PutProperty(char const *,long) 7606 void CHtmlView::PutProperty(char const *,double) 7607 int PX_Blob(CPropExchange *,char const *,void * &,void *) 7608 int PX_Bool(CPropExchange *,char const *,int &) 7609 int PX_Bool(CPropExchange *,char const *,int &,int) 7610 int PX_Color(CPropExchange *,char const *,unsigned long &) 7611 int PX_Color(CPropExchange *,char const *,unsigned long &,unsigned long) 7612 int PX_Currency(CPropExchange *,char const *,union tagCY &) 7613 int PX_Currency(CPropExchange *,char const *,union tagCY &,union tagCY) 7614 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,char const *) 7615 int PX_DataPath(CPropExchange *,char const *,CDataPathProperty &,ATL::CStringT > > const &) 7616 int PX_Double(CPropExchange *,char const *,double &) 7617 int PX_Double(CPropExchange *,char const *,double &,double) 7618 int PX_Float(CPropExchange *,char const *,float &) 7619 int PX_Float(CPropExchange *,char const *,float &,float) 7620 int PX_Font(CPropExchange *,char const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 7621 int PX_IUnknown(CPropExchange *,char const *,IUnknown * &,_GUID const &,IUnknown *) 7622 int PX_Long(CPropExchange *,char const *,long &) 7623 int PX_Long(CPropExchange *,char const *,long &,long) 7624 int PX_Picture(CPropExchange *,char const *,CPictureHolder &) 7625 int PX_Picture(CPropExchange *,char const *,CPictureHolder &,CPictureHolder &) 7626 int PX_Short(CPropExchange *,char const *,short &) 7627 int PX_Short(CPropExchange *,char const *,short &,short) 7628 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &) 7629 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,char const *) 7630 int PX_String(CPropExchange *,char const *,ATL::CStringT > > &,ATL::CStringT > > const &) 7631 int PX_ULong(CPropExchange *,char const *,unsigned long &) 7632 int PX_ULong(CPropExchange *,char const *,unsigned long &,unsigned long) 7633 int PX_UShort(CPropExchange *,char const *,unsigned short &) 7634 int PX_UShort(CPropExchange *,char const *,unsigned short &,unsigned short) 7635 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 7636 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7637 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7638 IUnknown * CCmdTarget::QueryAggregates(void const *) 7639 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 7640 long COleDropSource::QueryContinueDrag(int,unsigned long) 7641 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 7642 void * COleControl::QueryDefHandler(_GUID const &) 7643 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 7644 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 7645 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 7646 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 7647 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 7648 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7649 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7650 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 7651 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 7652 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 7653 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 7654 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 7655 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 7656 long CArchiveStream::QueryInterface(_GUID const &,void * *) 7657 long CBlobProperty::QueryInterface(_GUID const &,void * *) 7658 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 7659 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 7660 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 7661 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 7662 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 7663 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 7664 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 7665 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 7666 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 7667 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 7668 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 7669 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 7670 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 7671 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 7672 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 7673 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 7674 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 7675 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 7676 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 7677 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 7678 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 7679 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 7680 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 7681 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 7682 long CFileDialog::XFileDialogControlEvents::QueryInterface(_GUID const &,void * *) 7683 long CFileDialog::XFileDialogEvents::QueryInterface(_GUID const &,void * *) 7684 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 7685 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 7686 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 7687 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 7688 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 7689 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 7690 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7691 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7692 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 7693 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 7694 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 7695 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 7696 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 7697 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 7698 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7699 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7700 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 7701 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7702 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7703 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 7704 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 7705 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 7706 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 7707 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 7708 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 7709 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 7710 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 7711 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 7712 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 7713 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 7714 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 7715 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 7716 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 7717 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 7718 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 7719 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 7720 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 7721 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 7722 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 7723 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 7724 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 7725 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 7726 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 7727 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 7728 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 7729 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 7730 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 7731 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 7732 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 7733 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 7734 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 7735 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 7736 long CPropertyPage::QuerySiblings(unsigned int,long) 7737 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 7738 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 7739 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7740 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7741 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 7742 void CFontHolder::QueryTextMetrics(tagTEXTMETRICA *) 7743 int COleControlSite::QuickActivate(void) 7744 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 7745 int COleClientItem::ReactivateAndUndo(void) 7746 long COleControl::XOleInPlaceObject::ReactivateAndUndo(void) 7747 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo(void) 7748 unsigned int CArchive::Read(void *,unsigned int) 7749 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 7750 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 7751 unsigned int CFile::Read(void *,unsigned int) 7752 int CImageList::Read(CArchive *) 7753 unsigned int CInternetFile::Read(void *,unsigned int) 7754 unsigned int CMemFile::Read(void *,unsigned int) 7755 unsigned int COleStreamFile::Read(void *,unsigned int) 7756 unsigned int CSocketFile::Read(void *,unsigned int) 7757 unsigned int CStdioFile::Read(void *,unsigned int) 7758 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 7759 unsigned long CArchive::ReadCount(void) 7760 void CEditView::ReadFromArchive(CArchive &,unsigned int) 7761 int CProperty::ReadFromStream(IStream *) 7762 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 7763 int CPropertySet::ReadFromStream(IStream *) 7764 void COleClientItem::ReadItem(CArchive &) 7765 void COleClientItem::ReadItemCompound(CArchive &) 7766 void COleClientItem::ReadItemFlat(CArchive &) 7767 void CRecentFileList::ReadList(void) 7768 int CPropertySection::ReadNameDictFromStream(IStream *) 7769 CObject * CArchive::ReadObject(CRuntimeconst *) 7770 int CArchive::ReadString(ATL::CStringT > > &) 7771 char * CArchive::ReadString(char *,unsigned int) 7772 int CInternetFile::ReadString(ATL::CStringT > > &) 7773 char * CInternetFile::ReadString(char *,unsigned int) 7774 int CStdioFile::ReadString(ATL::CStringT > > &) 7775 char * CStdioFile::ReadString(char *,unsigned int) 7776 unsigned int CDC::RealizePalette(void) 7777 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7778 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7779 void ATL::CSimpleStringT::Reallocate(int) 7780 void ATL::CSimpleStringT::Reallocate(int) 7781 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7782 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7783 void CRecordset::RebindParams(void *) 7784 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7785 void CFrameWnd::RecalcLayout(int) 7786 void CMiniDockFrameWnd::RecalcLayout(int) 7787 void COleCntrFrameWnd::RecalcLayout(int) 7788 void COleDocIPFrameWnd::RecalcLayout(int) 7789 void COleIPFrameWnd::RecalcLayout(int) 7790 void CSplitterWnd::RecalcLayout(void) 7791 int CAsyncSocket::Receive(void *,int,int) 7792 int CSocket::Receive(void *,int,int) 7793 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7794 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7795 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7796 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7797 void COleControl::RecreateControlWindow(void) 7798 int CDC::Rectangle(int,int,int,int) 7799 int CDC::Rectangle(tagRECT const *) 7800 CRect const CFrameWnd::rectDefault 7801 int CRgn::RectInRegion(tagRECT const *)const 7802 int CDC::RectVisible(tagRECT const *)const 7803 int CMetaFileDC::RectVisible(tagRECT const *)const 7804 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7805 int CRichEditCtrl::Redo(void) 7806 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7807 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7808 int CListCtrl::RedrawItems(int,int) 7809 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7810 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7811 int CWnd::ReflectLastMsg(HWND__ *,long *) 7812 void CHtmlView::Refresh(void) 7813 void COleControl::Refresh(void) 7814 void CHtmlView::Refresh2(int) 7815 void CDaoTableDef::RefreshLink(void) 7816 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7817 int COleDropTarget::Register(CWnd *) 7818 int COleLinkingDoc::Register(COleObjectFactory *,char const *) 7819 int COleMessageFilter::Register(void) 7820 int COleObjectFactory::Register(void) 7821 int COleTemplateServer::Register(void) 7822 int CWinApp::Register(void) 7823 int COleObjectFactory::RegisterAll(void) 7824 int COleLinkingDoc::RegisterIfServerAttached(char const *,int) 7825 void CDocManager::RegisterShellFileTypes(int) 7826 void CWinApp::RegisterShellFileTypes(int) 7827 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 7828 void CToolTipCtrl::RelayEvent(tagMSG *) 7829 unsigned long CArchiveStream::Release(void) 7830 unsigned long CBlobProperty::Release(void) 7831 unsigned long CBrowserControlSite::Release(void) 7832 unsigned long CDHtmlControlSink::Release(void) 7833 unsigned long CDHtmlElementEventSink::Release(void) 7834 unsigned long CDHtmlEventSink::Release(void) 7835 unsigned long CInnerUnknown::Release(void) 7836 void COleClientItem::Release(enum tagOLECLOSE) 7837 unsigned long COleConnPtContainer::Release(void) 7838 void COleDataObject::Release(void) 7839 unsigned long COleDispatchImpl::Release(void) 7840 void COleDocObjectItem::Release(enum tagOLECLOSE) 7841 unsigned long COleUILinkInfo::Release(void) 7842 unsigned long CPrintDialogEx::Release(void) 7843 unsigned long CWnd::XAccessible::Release(void) 7844 unsigned long CWnd::XAccessibleServer::Release(void) 7845 unsigned long COleClientItem::XAdviseSink::Release(void) 7846 unsigned long COleControlSite::XAmbientProps::Release(void) 7847 unsigned long COleControlSite::XBoundObjectSite::Release(void) 7848 unsigned long COleObjectFactory::XClassFactory::Release(void) 7849 unsigned long CConnectionPoint::XConnPt::Release(void) 7850 unsigned long COleControl::XDataObject::Release(void) 7851 unsigned long COleDataSource::XDataObject::Release(void) 7852 unsigned long COleServerDoc::XDataObject::Release(void) 7853 unsigned long COleServerItem::XDataObject::Release(void) 7854 unsigned long CHtmlControlSite::XDocHostUIHandler::Release(void) 7855 unsigned long COleDropSource::XDropSource::Release(void) 7856 unsigned long COleDropTarget::XDropTarget::Release(void) 7857 unsigned long CEnumArray::XEnumVOID::Release(void) 7858 unsigned long COleControlSite::XEventSink::Release(void) 7859 unsigned long CFileDialog::XFileDialogControlEvents::Release(void) 7860 unsigned long CFileDialog::XFileDialogEvents::Release(void) 7861 unsigned long COleControl::XFontNotification::Release(void) 7862 unsigned long COleMessageFilter::XMessageFilter::Release(void) 7863 unsigned long COleControlSite::XNotifyDBEvents::Release(void) 7864 unsigned long COleControl::XOleCache::Release(void) 7865 unsigned long COleClientItem::XOleClientSite::Release(void) 7866 unsigned long COleControlSite::XOleClientSite::Release(void) 7867 unsigned long CDocObjectServer::XOleCommandTarget::Release(void) 7868 unsigned long COleFrameHook::XOleCommandTarget::Release(void) 7869 unsigned long COleControlContainer::XOleContainer::Release(void) 7870 unsigned long COleControl::XOleControl::Release(void) 7871 unsigned long COleControlSite::XOleControlSite::Release(void) 7872 unsigned long CDocObjectServer::XOleDocument::Release(void) 7873 unsigned long COleDocObjectItem::XOleDocumentSite::Release(void) 7874 unsigned long CDocObjectServer::XOleDocumentView::Release(void) 7875 unsigned long COleControl::XOleInPlaceActiveObject::Release(void) 7876 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release(void) 7877 unsigned long COleFrameHook::XOleInPlaceFrame::Release(void) 7878 unsigned long COleControl::XOleInPlaceObject::Release(void) 7879 unsigned long COleServerDoc::XOleInPlaceObject::Release(void) 7880 unsigned long COleControlContainer::XOleIPFrame::Release(void) 7881 unsigned long COleClientItem::XOleIPSite::Release(void) 7882 unsigned long COleControlSite::XOleIPSite::Release(void) 7883 unsigned long COleLinkingDoc::XOleItemContainer::Release(void) 7884 unsigned long CDocObjectServer::XOleObject::Release(void) 7885 unsigned long COleControl::XOleObject::Release(void) 7886 unsigned long COleServerDoc::XOleObject::Release(void) 7887 unsigned long COleServerItem::XOleObject::Release(void) 7888 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release(void) 7889 unsigned long COleControl::XPerPropertyBrowsing::Release(void) 7890 unsigned long COleLinkingDoc::XPersistFile::Release(void) 7891 unsigned long COleControl::XPersistMemory::Release(void) 7892 unsigned long COleControl::XPersistPropertyBag::Release(void) 7893 unsigned long COleControl::XPersistStorage::Release(void) 7894 unsigned long COleServerDoc::XPersistStorage::Release(void) 7895 unsigned long COleControl::XPersistStreamInit::Release(void) 7896 unsigned long COleControl::XPointerInactive::Release(void) 7897 unsigned long CDocObjectServer::XPrint::Release(void) 7898 unsigned long COleControlSite::XPropertyNotifySink::Release(void) 7899 unsigned long COlePropertyPage::XPropertyPage::Release(void) 7900 unsigned long COlePropertyPage::XPropNotifySink::Release(void) 7901 unsigned long COleControl::XProvideClassInfo::Release(void) 7902 unsigned long COleControl::XQuickActivate::Release(void) 7903 unsigned long CRichEditView::XRichEditOleCallback::Release(void) 7904 unsigned long COleControlSite::XRowsetNotify::Release(void) 7905 unsigned long COleControl::XSpecifyPropertyPages::Release(void) 7906 unsigned long COleControl::XViewObject::Release(void) 7907 void CDC::ReleaseAttribDC(void) 7908 void ATL::CSimpleStringT::ReleaseBuffer(int) 7909 void ATL::CSimpleStringT::ReleaseBuffer(int) 7910 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7911 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7912 void COleControl::ReleaseCaches(void) 7913 int COleControl::ReleaseCapture(void) 7914 int COleControl::ReleaseDC(CDC *) 7915 int CWnd::ReleaseDC(CDC *) 7916 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7917 void COleDispatchDriver::ReleaseDispatch(void) 7918 void CDocObjectServer::ReleaseDocSite(void) 7919 void CDocument::ReleaseFile(CFile *,int) 7920 void CFontHolder::ReleaseFont(void) 7921 void CDC::ReleaseOutputDC(void) 7922 void CMetaFileDC::ReleaseOutputDC(void) 7923 void CPreviewDC::ReleaseOutputDC(void) 7924 int COleClientItem::Reload(void) 7925 int ATL::CStringT > >::Remove(wchar_t) 7926 int ATL::CStringT > >::Remove(char) 7927 void CFile::Remove(char const *) 7928 int CFtpConnection::Remove(char const *) 7929 int CImageList::Remove(int) 7930 void CPropertySection::Remove(unsigned long) 7931 void CPropertySet::Remove(_GUID) 7932 void CPropertySet::Remove(_GUID,unsigned long) 7933 void CRecentFileList::Remove(int) 7934 int CSimpleList::Remove(void *) 7935 void CByteArray::RemoveAll(void) 7936 void CDWordArray::RemoveAll(void) 7937 void CMapPtrToPtr::RemoveAll(void) 7938 void CMapPtrToWord::RemoveAll(void) 7939 void CMapStringToOb::RemoveAll(void) 7940 void CMapStringToPtr::RemoveAll(void) 7941 void CMapStringToString::RemoveAll(void) 7942 void CMapWordToOb::RemoveAll(void) 7943 void CMapWordToPtr::RemoveAll(void) 7944 void CObArray::RemoveAll(void) 7945 void CObList::RemoveAll(void) 7946 void CPropertySection::RemoveAll(void) 7947 void CPropertySet::RemoveAll(void) 7948 void CPtrArray::RemoveAll(void) 7949 void CPtrList::RemoveAll(void) 7950 void CStringArray::RemoveAll(void) 7951 void CStringList::RemoveAll(void) 7952 void CTypeLibCacheMap::RemoveAll(void *) 7953 void CUIntArray::RemoveAll(void) 7954 void CWordArray::RemoveAll(void) 7955 void CByteArray::RemoveAt(int,int) 7956 void CDWordArray::RemoveAt(int,int) 7957 void CObArray::RemoveAt(int,int) 7958 void CObList::RemoveAt(__POSITION *) 7959 void CPtrArray::RemoveAt(int,int) 7960 void CPtrList::RemoveAt(__POSITION *) 7961 void CStringArray::RemoveAt(int,int) 7962 void CStringList::RemoveAt(__POSITION *) 7963 void CUIntArray::RemoveAt(int,int) 7964 void CWordArray::RemoveAt(int,int) 7965 int CDockBar::RemoveControlBar(CControlBar *,int,int) 7966 void CFrameWnd::RemoveControlBar(CControlBar *) 7967 int CFtpConnection::RemoveDirectoryA(char const *) 7968 void CDocTemplate::RemoveDocument(CDocument *) 7969 void CMultiDocTemplate::RemoveDocument(CDocument *) 7970 void CSingleDocTemplate::RemoveDocument(CDocument *) 7971 void COleControl::RemoveFrameLevelUI(void) 7972 void CFrameWnd::RemoveFrameWnd(void) 7973 void CHandleMap::RemoveHandle(void *) 7974 CObject * CObList::RemoveHead(void) 7975 void * CPtrList::RemoveHead(void) 7976 ATL::CStringT > > CStringList::RemoveHead(void) 7977 void CTabCtrl::RemoveImage(int) 7978 void CListCtrl::RemoveImageList(int) 7979 void CListView::RemoveImageList(int) 7980 void CTreeCtrl::RemoveImageList(int) 7981 void CTreeView::RemoveImageList(int) 7982 void COleDocument::RemoveItem(CDocItem *) 7983 int CMapPtrToPtr::RemoveKey(void *) 7984 int CMapPtrToWord::RemoveKey(void *) 7985 int CMapStringToOb::RemoveKey(char const *) 7986 int CMapStringToPtr::RemoveKey(char const *) 7987 int CMapStringToString::RemoveKey(char const *) 7988 int CMapWordToOb::RemoveKey(unsigned short) 7989 int CMapWordToPtr::RemoveKey(unsigned short) 7990 int CMenu::RemoveMenu(unsigned int,unsigned int) 7991 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 7992 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 7993 void CPropertySheet::RemovePage(int) 7994 void CPropertySheet::RemovePage(CPropertyPage *) 7995 void CDockBar::RemovePlaceHolder(CControlBar *) 7996 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 7997 void CDataBoundProperty::RemoveSource(void) 7998 CObject * CObList::RemoveTail(void) 7999 void * CPtrList::RemoveTail(void) 8000 ATL::CStringT > > CStringList::RemoveTail(void) 8001 void CDocument::RemoveView(CView *) 8002 void CFile::Rename(char const *,char const *) 8003 int CFtpConnection::Rename(char const *,char const *) 8004 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 8005 void CDaoWorkspace::RepairDatabase(char const *) 8006 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 8007 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 8008 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 8009 int ATL::CStringT > >::Replace(char,char) 8010 int ATL::CStringT > >::Replace(char const *,char const *) 8011 int CImageList::Replace(int,HICON__ *) 8012 int CImageList::Replace(int,CBitmap *,CBitmap *) 8013 int CFindReplaceDialog::ReplaceAll(void)const 8014 int CToolBarCtrl::ReplaceBitmap(TBREPLACEBITMAP *) 8015 void CDatabase::ReplaceBrackets(char *) 8016 int CFindReplaceDialog::ReplaceCurrent(void)const 8017 void CEdit::ReplaceSel(char const *,int) 8018 void CRichEditCtrl::ReplaceSel(char const *,int) 8019 int CException::ReportError(unsigned int,unsigned int) 8020 int COleClientItem::ReportError(long)const 8021 void CDocument::ReportSaveLoadException(char const *,CException *,int,unsigned int) 8022 void COleLinkingDoc::ReportSaveLoadException(char const *,CException *,int,unsigned int) 8023 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 8024 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 8025 void CDaoRecordset::Requery(void) 8026 int CRecordset::Requery(void) 8027 void COleControl::RequestAsynchronousExchange(unsigned long) 8028 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 8029 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 8030 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 8031 long COleClientItem::XOleClientSite::RequestNewObjectLayout(void) 8032 long COleControlSite::XOleClientSite::RequestNewObjectLayout(void) 8033 void COleServerDoc::RequestPositionChange(tagRECT const *) 8034 void CRichEditCtrl::RequestResize(void) 8035 long COleControlSite::XOleIPSite::RequestUIActivate(void) 8036 long CEnumArray::XEnumVOID::Reset(void) 8037 void CComboBox::ResetContent(void) 8038 void CListBox::ResetContent(void) 8039 void CRecordset::ResetCursor(void) 8040 void CCachedDataPathProperty::ResetData(void) 8041 void CDataPathProperty::ResetData(void) 8042 int CDC::ResetDCA(_devicemodeA const *) 8043 int CEvent::ResetEvent(void) 8044 void COleControl::ResetStockProps(void) 8045 void CControlBar::ResetTimer(unsigned int,unsigned int) 8046 void COleControl::ResetVersion(unsigned long) 8047 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8048 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8049 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8050 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8051 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8052 void COleControl::ResizeFrameWindow(int,int) 8053 void COleSafeArray::ResizeOneDim(unsigned long) 8054 void COleControl::ResizeOpenControl(int,int) 8055 int CPalette::ResizePalette(unsigned int) 8056 void CScrollView::ResizeParentToFit(int) 8057 void CWaitCursor::Restore(void) 8058 void CReBarCtrl::RestoreBand(unsigned int) 8059 int CDC::RestoreDC(int) 8060 int CPreviewDC::RestoreDC(int) 8061 void CToolBarCtrl::RestoreState(HKEY__ *,char const *,char const *) 8062 void CCmdTarget::RestoreWaitCursor(void) 8063 unsigned long CWinThread::ResumeThread(void) 8064 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 8065 int ATL::CStringT > >::ReverseFind(wchar_t)const 8066 int ATL::CStringT > >::ReverseFind(char)const 8067 long CArchiveStream::Revert(void) 8068 void COleDropTarget::Revoke(void) 8069 void COleLinkingDoc::Revoke(void) 8070 void COleMessageFilter::Revoke(void) 8071 void COleObjectFactory::Revoke(void) 8072 void COleObjectFactory::RevokeAll(void) 8073 void RFX_BigInt(CFieldExchange *,char const *,__int64 &) 8074 void RFX_Binary(CFieldExchange *,char const *,CByteArray &,int) 8075 void RFX_Binary_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *,int) 8076 void RFX_Bool(CFieldExchange *,char const *,int &) 8077 void RFX_Bool_Bulk(CFieldExchange *,char const *,int * *,long * *) 8078 void RFX_Byte(CFieldExchange *,char const *,unsigned char &) 8079 void RFX_Byte_Bulk(CFieldExchange *,char const *,unsigned char * *,long * *) 8080 void RFX_Date(CFieldExchange *,char const *,tagTIMESTAMP_&) 8081 void RFX_Date(CFieldExchange *,char const *,ATL::COleDateTime &) 8082 void RFX_Date(CFieldExchange *,char const *,ATL::CTime &) 8083 void RFX_Date_Bulk(CFieldExchange *,char const *,tagTIMESTAMP_* *,long * *) 8084 void RFX_Double(CFieldExchange *,char const *,double &) 8085 void RFX_Double_Bulk(CFieldExchange *,char const *,double * *,long * *) 8086 void RFX_Int(CFieldExchange *,char const *,int &) 8087 void RFX_Int_Bulk(CFieldExchange *,char const *,int * *,long * *) 8088 void RFX_Long(CFieldExchange *,char const *,long &) 8089 void RFX_Long_Bulk(CFieldExchange *,char const *,long * *,long * *) 8090 void RFX_LongBinary(CFieldExchange *,char const *,CLongBinary &) 8091 void RFX_Single(CFieldExchange *,char const *,float &) 8092 void RFX_Single_Bulk(CFieldExchange *,char const *,float * *,long * *) 8093 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 8094 void RFX_Text(CFieldExchange *,char const *,ATL::CStringT > > &,int,int,short) 8095 void RFX_Text(CFieldExchange *,char const *,wchar_t *,int,int,short) 8096 void RFX_Text(CFieldExchange *,char const *,char *,int,int,short) 8097 void RFX_Text_Bulk(CFieldExchange *,char const *,wchar_t * *,long * *,int) 8098 void RFX_Text_Bulk(CFieldExchange *,char const *,char * *,long * *,int) 8099 ATL::CStringT > > ATL::CStringT > >::Right(int)const 8100 ATL::CStringT > > ATL::CStringT > >::Right(int)const 8101 void CDaoWorkspace::Rollback(void) 8102 int CDatabase::Rollback(void) 8103 int CDC::RoundRect(int,int,int,int,int,int) 8104 int CDC::RoundRect(tagRECT const *,tagPOINT) 8105 void COleClientItem::Run(void) 8106 int CWinApp::Run(void) 8107 int CWinThread::Run(void) 8108 int CWinApp::RunAutomated(void) 8109 int CWinApp::RunEmbedded(void) 8110 int CWnd::RunModalLoop(unsigned long) 8111 int COleControlSite::SafeSetProperty(long,unsigned short,...) 8112 int CEditView::SameAsSelected(char const *,int) 8113 int CRichEditView::SameAsSelected(char const *,int,int) 8114 long CBlobProperty::Save(IStream *,int) 8115 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 8116 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 8117 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 8118 long COleControl::XPersistStorage::Save(IStorage *,int) 8119 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 8120 long COleControl::XPersistStreamInit::Save(IStream *,int) 8121 int CDocManager::SaveAllModified(void) 8122 int CDocTemplate::SaveAllModified(void) 8123 int CWinApp::SaveAllModified(void) 8124 void CFrameWnd::SaveBarState(char const *)const 8125 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 8126 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 8127 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 8128 int CDC::SaveDC(void) 8129 int CPreviewDC::SaveDC(void) 8130 void COleServerDoc::SaveEmbedding(void) 8131 int CFormView::SaveFocusControl(void) 8132 int CDocument::SaveModified(void) 8133 int COleDocument::SaveModified(void) 8134 int COleServerDoc::SaveModified(void) 8135 int COleServerDoc::SaveModifiedPrompt(void) 8136 long COleClientItem::XOleClientSite::SaveObject(void) 8137 long COleControlSite::XOleClientSite::SaveObject(void) 8138 int CControlBarInfo::SaveState(char const *,int) 8139 void CDockState::SaveState(char const *) 8140 long COleControl::SaveState(IStream *) 8141 void CToolBarCtrl::SaveState(HKEY__ *,char const *,char const *) 8142 void CWinApp::SaveStdProfileSettings(void) 8143 void COleDocument::SaveToStorage(CObject *) 8144 void COleLinkingDoc::SaveToStorage(CObject *) 8145 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 8146 void CDockState::ScalePoint(CPoint &) 8147 void CDockState::ScaleRectPos(CRect &) 8148 CSize CDC::ScaleViewportExt(int,int,int,int) 8149 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 8150 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 8151 CSize CDC::ScaleWindowExt(int,int,int,int) 8152 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 8153 void CWnd::ScreenToClient(tagPOINT *)const 8154 void CWnd::ScreenToClient(tagRECT *)const 8155 int CListCtrl::Scroll(CSize) 8156 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 8157 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 8158 void COleControlContainer::ScrollChildren(int,int) 8159 int COleServerDoc::ScrollContainerBy(CSize) 8160 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 8161 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 8162 void CScrollView::ScrollToDevicePosition(tagPOINT) 8163 void CScrollView::ScrollToPosition(tagPOINT) 8164 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 8165 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 8166 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 8167 int CFindReplaceDialog::SearchDown(void)const 8168 int CAnimateCtrl::Seek(unsigned int) 8169 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 8170 int CDaoRecordset::Seek(char const *,COleVariant *,COleVariant *,COleVariant *) 8171 int CDaoRecordset::Seek(char const *,COleVariant *,unsigned short) 8172 unsigned __int64 CFile::Seek(__int64,unsigned int) 8173 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 8174 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 8175 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 8176 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 8177 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 8178 void CFile::SeekToBegin(void) 8179 unsigned __int64 CFile::SeekToEnd(void) 8180 CFont * CFontHolder::Select(CDC *,long,long) 8181 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 8182 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 8183 int CDC::SelectClipPath(int) 8184 int CDC::SelectClipRgn(CRgn *) 8185 int CDC::SelectClipRgn(CRgn *,int) 8186 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 8187 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 8188 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 8189 long CPrintDialogEx::SelectionChange(void) 8190 int CTreeCtrl::SelectItem(_TREEITEM *) 8191 int CDC::SelectObject(CRgn *) 8192 CBitmap * CDC::SelectObject(CBitmap *) 8193 CBrush * CDC::SelectObject(CBrush *) 8194 CGdiObject * CDC::SelectObject(CGdiObject *) 8195 CPen * CDC::SelectObject(CPen *) 8196 void * CDC::SelectObject(void *) 8197 CFont * CDC::SelectObject(CFont *) 8198 CFont * CPreviewDC::SelectObject(CFont *) 8199 CPalette * CDC::SelectPalette(CPalette *,int) 8200 void CWinApp::SelectPrinter(void *,void *,int) 8201 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 8202 CFont * COleControl::SelectStockFont(CDC *) 8203 CGdiObject * CDC::SelectStockObject(int) 8204 CGdiObject * CPreviewDC::SelectStockObject(int) 8205 int CComboBox::SelectString(int,char const *) 8206 int CListBox::SelectString(int,char const *) 8207 int CListBox::SelItemRange(int,int,int) 8208 int CAsyncSocket::Send(void const *,int,int) 8209 int CSocket::Send(void const *,int,int) 8210 void COleControl::SendAdvise(unsigned int) 8211 int CWnd::SendChildNotifyLastMsg(long *) 8212 int CSocket::SendChunk(void const *,int,int) 8213 long COleControlContainer::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 8214 long CWnd::SendDlgItemMessageA(int,unsigned int,unsigned int,long) 8215 void CDocument::SendInitialUpdate(void) 8216 void CRecordset::SendLongBinaryData(void *) 8217 long CWnd::SendMessage(unsigned int,unsigned int,long)const 8218 long CWnd::SendMessageA(unsigned int,unsigned int,long)const 8219 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 8220 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 8221 void COleControlSite::SendMnemonic(tagMSG *) 8222 int CWnd::SendNotifyMessageA(unsigned int,unsigned int,long) 8223 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 8224 int CHttpFile::SendRequest(char const *,unsigned long,void *,unsigned long) 8225 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 8226 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSA *,_INTERNET_BUFFERSA *,unsigned long,unsigned long) 8227 int CAsyncSocket::SendTo(void const *,int,unsigned int,char const *,int) 8228 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 8229 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 8230 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 8231 void CByteArray::Serialize(CArchive &) 8232 void CControlBarInfo::Serialize(CArchive &,CDockState *) 8233 void CDocItem::Serialize(CArchive &) 8234 void CDockState::Serialize(CArchive &) 8235 void CDWordArray::Serialize(CArchive &) 8236 void CEditView::Serialize(CArchive &) 8237 void CMapStringToOb::Serialize(CArchive &) 8238 void CMapStringToString::Serialize(CArchive &) 8239 void CMapWordToOb::Serialize(CArchive &) 8240 void CObArray::Serialize(CArchive &) 8241 void CObject::Serialize(CArchive &) 8242 void CObList::Serialize(CArchive &) 8243 void COleClientItem::Serialize(CArchive &) 8244 void COleControl::Serialize(CArchive &) 8245 void COleDocument::Serialize(CArchive &) 8246 void CRichEditDoc::Serialize(CArchive &) 8247 void CRichEditView::Serialize(CArchive &) 8248 void CStringArray::Serialize(CArchive &) 8249 void CStringList::Serialize(CArchive &) 8250 void CWordArray::Serialize(CArchive &) 8251 CArchive & ATL::CTime::Serialize64(CArchive &) 8252 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 8253 void CArchive::SerializeClass(CRuntimeconst *) 8254 void COleControl::SerializeExtent(CArchive &) 8255 void CEditView::SerializeRaw(CArchive &) 8256 void COleControl::SerializeStockProps(CArchive &) 8257 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 8258 int CProperty::Set(unsigned long,void * const,unsigned long) 8259 int CProperty::Set(void * const) 8260 int CProperty::Set(void * const,unsigned long) 8261 int CPropertySection::Set(unsigned long,void *) 8262 int CPropertySection::Set(unsigned long,void *,unsigned long) 8263 int CPropertySet::Set(_GUID,unsigned long,void *) 8264 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 8265 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 8266 void CDaoRecordset::SetAbsolutePosition(long) 8267 void CRecordset::SetAbsolutePosition(long) 8268 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 8269 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 8270 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 8271 int CPropertySheet::SetActivePage(int) 8272 int CPropertySheet::SetActivePage(CPropertyPage *) 8273 void CSplitterWnd::SetActivePane(int,int,CWnd *) 8274 void CFrameWnd::SetActiveView(CView *,int) 8275 CWnd * CWnd::SetActiveWindow(void) 8276 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 8277 void CIPAddressCtrl::SetAddress(unsigned long) 8278 void CHtmlView::SetAddressBar(int) 8279 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 8280 int CToolBarCtrl::SetAnchorHighlight(int) 8281 void CListBox::SetAnchorIndex(int) 8282 void COleControl::SetAppearance(short) 8283 int CDC::SetArcDirection(int) 8284 void ATL::CSimpleStringT::SetAt(int,wchar_t) 8285 void ATL::CSimpleStringT::SetAt(int,char) 8286 void CByteArray::SetAt(int,unsigned char) 8287 void CDWordArray::SetAt(int,unsigned long) 8288 void CMapPtrToPtr::SetAt(void *,void *) 8289 void CMapPtrToWord::SetAt(void *,unsigned short) 8290 void CMapStringToOb::SetAt(char const *,CObject *) 8291 void CMapStringToPtr::SetAt(char const *,void *) 8292 void CMapStringToString::SetAt(char const *,char const *) 8293 void CMapWordToOb::SetAt(unsigned short,CObject *) 8294 void CMapWordToPtr::SetAt(unsigned short,void *) 8295 void CObArray::SetAt(int,CObject *) 8296 void CObList::SetAt(__POSITION *,CObject *) 8297 void CPtrArray::SetAt(int,void *) 8298 void CPtrList::SetAt(__POSITION *,void *) 8299 void CStringArray::SetAt(int,ATL::CStringT > > const &) 8300 void CStringArray::SetAt(int,char const *) 8301 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 8302 void CStringList::SetAt(__POSITION *,char const *) 8303 void CUIntArray::SetAt(int,unsigned int) 8304 void CWordArray::SetAt(int,unsigned short) 8305 void CByteArray::SetAtGrow(int,unsigned char) 8306 void CDWordArray::SetAtGrow(int,unsigned long) 8307 void CObArray::SetAtGrow(int,CObject *) 8308 void CPtrArray::SetAtGrow(int,void *) 8309 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 8310 void CStringArray::SetAtGrow(int,char const *) 8311 void CUIntArray::SetAtGrow(int,unsigned int) 8312 void CWordArray::SetAtGrow(int,unsigned short) 8313 void CDC::SetAttribDC(HDC__ *) 8314 void CMetaFileDC::SetAttribDC(HDC__ *) 8315 void CPreviewDC::SetAttribDC(HDC__ *) 8316 void CDaoTableDef::SetAttributes(long) 8317 int CRichEditCtrl::SetAutoURLDetect(int) 8318 void COleControl::SetBackColor(unsigned long) 8319 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 8320 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOA *) 8321 unsigned long CProgressCtrl::SetBarColor(unsigned long) 8322 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 8323 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 8324 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 8325 void CControlBar::SetBarStyle(unsigned long) 8326 int CSpinButtonCtrl::SetBase(int) 8327 void CAsyncMonikerFile::SetBinding(IBinding *) 8328 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 8329 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 8330 int CToolBar::SetBitmap(HBITMAP__ *) 8331 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 8332 CSize CBitmap::SetBitmapDimension(int,int) 8333 int CHeaderCtrl::SetBitmapMargin(int) 8334 int CToolBarCtrl::SetBitmapSize(CSize) 8335 unsigned long CDC::SetBkColor(unsigned long) 8336 unsigned long CImageList::SetBkColor(unsigned long) 8337 int CListCtrl::SetBkColor(unsigned long) 8338 unsigned long CPreviewDC::SetBkColor(unsigned long) 8339 unsigned long CProgressCtrl::SetBkColor(unsigned long) 8340 unsigned long CReBarCtrl::SetBkColor(unsigned long) 8341 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 8342 unsigned long CTreeCtrl::SetBkColor(unsigned long) 8343 int CListCtrl::SetBkImage(char *,int,int,int) 8344 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 8345 int CListCtrl::SetBkImage(tagLVBKIMAGEA *) 8346 int CDC::SetBkMode(int) 8347 void CDaoRecordset::SetBookmark(COleVariant) 8348 void CRecordset::SetBookmark(CDBVariant const &) 8349 void CControlBar::SetBorders(int,int,int,int) 8350 void CControlBar::SetBorders(tagRECT const *) 8351 void CStatusBar::SetBorders(int,int,int,int) 8352 void CStatusBar::SetBorders(tagRECT const *) 8353 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 8354 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 8355 void COleControl::SetBorderStyle(short) 8356 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 8357 CPoint CDC::SetBrushOrg(int,int) 8358 CPoint CDC::SetBrushOrg(tagPOINT) 8359 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 8360 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 8361 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 8362 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 8363 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOA *) 8364 int CToolBar::SetButtons(unsigned int const *,int) 8365 int CToolBarCtrl::SetButtonSize(CSize) 8366 void CToolBarCtrl::SetButtonStructSize(int) 8367 void CButton::SetButtonStyle(unsigned int,int) 8368 void CToolBar::SetButtonStyle(int,unsigned int) 8369 int CToolBar::SetButtonText(int,char const *) 8370 int CToolBarCtrl::SetButtonWidth(int,int) 8371 void CDaoRecordset::SetCacheSize(long) 8372 void CDaoRecordset::SetCacheStart(COleVariant) 8373 int CListCtrl::SetCallbackMask(unsigned int) 8374 CWnd * COleControl::SetCapture(void) 8375 CWnd * CWnd::SetCapture(void) 8376 long COleControlSite::XOleIPSite::SetCapture(int) 8377 int CListBox::SetCaretIndex(int,int) 8378 void CWnd::SetCaretPos(tagPOINT) 8379 void CRichEditView::SetCharFormat(CHARFORMAT2A) 8380 void CButton::SetCheck(int) 8381 void CCheckListBox::SetCheck(int,int) 8382 void CCmdUI::SetCheck(int) 8383 int CListCtrl::SetCheck(int,int) 8384 void COleCmdUI::SetCheck(int) 8385 void CStatusCmdUI::SetCheck(int) 8386 void CTestCmdUI::SetCheck(int) 8387 void CToolCmdUI::SetCheck(int) 8388 int CTreeCtrl::SetCheck(_TREEITEM *,int) 8389 void CCheckListBox::SetCheckStyle(unsigned int) 8390 void CPropertySet::SetClassID(_GUID) 8391 void CDataBoundProperty::SetClientSite(COleControlSite *) 8392 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 8393 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 8394 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 8395 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 8396 void COleDataSource::SetClipboard(void) 8397 HWND__ * CWnd::SetClipboardViewer(void) 8398 int CToolBarCtrl::SetCmdID(int,unsigned int) 8399 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 8400 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 8401 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 8402 void CToolBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 8403 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 8404 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 8405 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 8406 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 8407 int CListCtrl::SetColumn(int,tagLVCOLUMNA const *) 8408 void CSplitterWnd::SetColumnInfo(int,int,int) 8409 int CListCtrl::SetColumnOrderArray(int,int *) 8410 void CListBox::SetColumnWidth(int) 8411 int CListCtrl::SetColumnWidth(int,int) 8412 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 8413 void CDaoQueryDef::SetConnect(char const *) 8414 void CDaoTableDef::SetConnect(char const *) 8415 void CDocTemplate::SetContainerInfo(unsigned int) 8416 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 8417 void CDataPathProperty::SetControl(COleControl *) 8418 void CReflectorWnd::SetControl(COleControl *) 8419 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 8420 void CDHtmlDialog::SetControlProperty(char const *,char const *,tagVARIANT *) 8421 void CDHtmlDialog::SetControlProperty(char const *,long,tagVARIANT *) 8422 int COleControl::SetControlSize(int,int) 8423 int COlePropertyPage::SetControlStatus(unsigned int,int) 8424 void CFileDialog::SetControlText(int,char const *) 8425 int CInternetSession::SetCookie(char const *,char const *,char const *) 8426 void CTabCtrl::SetCurFocus(int) 8427 void COleCurrency::SetCurrency(long,long) 8428 void CColorDialog::SetCurrentColor(unsigned long) 8429 int CFtpConnection::SetCurrentDirectory(char const *) 8430 int CFtpConnection::SetCurrentDirectoryA(char const *) 8431 void CWinApp::SetCurrentHandles(void) 8432 void CDaoRecordset::SetCurrentIndex(char const *) 8433 void CPreviewView::SetCurrentPage(unsigned int,int) 8434 int CComboBox::SetCurSel(int) 8435 int CListBox::SetCurSel(int) 8436 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 8437 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 8438 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 8439 int CTabCtrl::SetCurSel(int) 8440 HICON__ * CButton::SetCursor(HICON__ *) 8441 int CRectTracker::SetCursor(CWnd *,unsigned int)const 8442 HICON__ * CStatic::SetCursor(HICON__ *) 8443 void CDaoRecordset::SetCursorAttributes(void) 8444 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8445 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8446 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8447 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8448 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8449 int CMonthCalCtrl::SetDayState(int,unsigned long *) 8450 void COccManager::SetDefaultButton(CWnd *,int) 8451 void COleControlSite::SetDefaultButton(int) 8452 int CRichEditCtrl::SetDefaultCharFormat(_charformat &) 8453 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2A &) 8454 int CMenu::SetDefaultItem(unsigned int,int) 8455 void CDaoWorkspace::SetDefaultPassword(char const *) 8456 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 8457 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 8458 void CDaoWorkspace::SetDefaultUser(char const *) 8459 void CFileDialog::SetDefExt(char const *) 8460 void CDialog::SetDefID(unsigned int) 8461 void CToolTipCtrl::SetDelayTime(unsigned int) 8462 void CToolTipCtrl::SetDelayTime(unsigned long,int) 8463 void CDumpContext::SetDepth(int) 8464 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 8465 void COlePropertyPage::SetDialogResource(void *) 8466 void CDaoRecordset::SetDirtyFields(void) 8467 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 8468 void CRecordset::SetDirtyFieldStatus(unsigned long) 8469 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 8470 int COleControlSite::SetDlgCtrlID(int) 8471 int CWnd::SetDlgCtrlID(int) 8472 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 8473 void CWnd::SetDlgItemInt(int,unsigned int,int) 8474 void COleControlContainer::SetDlgItemTextA(int,char const *) 8475 void CWnd::SetDlgItemTextA(int,char const *) 8476 void CFrameWnd::SetDockState(CDockState const &) 8477 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 8478 int CImageList::SetDragCursorImage(int,CPoint) 8479 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 8480 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 8481 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 8482 int CComboBox::SetDroppedWidth(unsigned int) 8483 void CDataBoundProperty::SetDSCSite(COleControlSite *) 8484 int CComboBox::SetEditSel(int,int) 8485 int CComboBoxEx::SetEditSel(int,int) 8486 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 8487 void CDHtmlDialog::SetElementHtml(char const *,wchar_t *) 8488 void CDHtmlDialog::SetElementProperty(char const *,long,tagVARIANT *) 8489 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 8490 void CDHtmlDialog::SetElementText(char const *,wchar_t *) 8491 void COleControl::SetEnabled(int) 8492 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 8493 int CEvent::SetEvent(void) 8494 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 8495 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 8496 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 8497 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 8498 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 8499 int CComboBox::SetExtendedUI(int) 8500 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 8501 int COleControlSite::SetExtent(void) 8502 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 8503 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 8504 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 8505 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 8506 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 8507 void CDaoRecordset::SetFieldDirty(void *,int) 8508 void CRecordset::SetFieldDirty(void *,int) 8509 void CIPAddressCtrl::SetFieldFocus(unsigned short) 8510 void CDaoRecordset::SetFieldNull(void *,int) 8511 void CRecordset::SetFieldNull(void *,int) 8512 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 8513 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 8514 void CDaoFieldExchange::SetFieldType(unsigned int) 8515 void CFieldExchange::SetFieldType(unsigned int) 8516 void CDaoRecordset::SetFieldValue(int,char const *) 8517 void CDaoRecordset::SetFieldValue(char const *,char const *) 8518 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 8519 void CDaoRecordset::SetFieldValue(char const *,COleVariant const &) 8520 void CDaoRecordset::SetFieldValueNull(int) 8521 void CDaoRecordset::SetFieldValueNull(char const *) 8522 void CFile::SetFilePath(char const *) 8523 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 8524 void CPropertySheet::SetFinishText(char const *) 8525 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 8526 CWnd * COleControl::SetFocus(void) 8527 CWnd * COleControlSite::SetFocus(tagMSG *) 8528 CWnd * COleControlSite::SetFocus(void) 8529 CWnd * CWnd::SetFocus(void) 8530 long COleControlSite::XOleIPSite::SetFocus(int) 8531 void CDHtmlDialog::SetFocusToElement(char const *) 8532 int CDialogTemplate::SetFont(char const *,unsigned short) 8533 void CFontHolder::SetFont(IFont *) 8534 void COleControl::SetFont(IFontDisp *) 8535 void CWnd::SetFont(CFont *,int) 8536 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 8537 void COleControl::SetForeColor(unsigned long) 8538 int CWnd::SetForegroundWindow(void) 8539 int CDateTimeCtrl::SetFormat(char const *) 8540 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 8541 void CPropertySection::SetFormatID(_GUID) 8542 void CPropertySet::SetFormatVersion(unsigned short) 8543 void CHtmlView::SetFullScreen(int) 8544 int CDC::SetGraphicsMode(int) 8545 void CEdit::SetHandle(void *) 8546 void CSharedFile::SetHandle(void *,int) 8547 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 8548 void CHtmlView::SetHeight(long) 8549 void CToolBar::SetHeight(int) 8550 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 8551 void CDialog::SetHelpID(unsigned int) 8552 void COlePropertyPage::SetHelpInfo(char const *,char const *,unsigned long) 8553 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 8554 void CComboBox::SetHorizontalExtent(unsigned int) 8555 void CListBox::SetHorizontalExtent(int) 8556 void CDHtmlDialog::SetHostFlags(unsigned long) 8557 void COleClientItem::SetHostNames(char const *,char const *) 8558 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8559 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8560 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8561 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8562 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 8563 int CHeaderCtrl::SetHotDivider(int) 8564 int CHeaderCtrl::SetHotDivider(CPoint) 8565 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 8566 int CListCtrl::SetHotItem(int) 8567 int CToolBarCtrl::SetHotItem(int) 8568 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 8569 unsigned long CListCtrl::SetHoverTime(unsigned long) 8570 HICON__ * CButton::SetIcon(HICON__ *) 8571 HICON__ * CStatic::SetIcon(HICON__ *) 8572 int CStatusBarCtrl::SetIcon(int,HICON__ *) 8573 HICON__ * CWnd::SetIcon(HICON__ *,int) 8574 int COleClientItem::SetIconicMetafile(void *) 8575 CSize CListCtrl::SetIconSpacing(int,int) 8576 CSize CListCtrl::SetIconSpacing(CSize) 8577 void CProperty::SetID(unsigned long) 8578 int CImageList::SetImageCount(unsigned int) 8579 CImageList * CComboBoxEx::SetImageList(CImageList *) 8580 CImageList * CHeaderCtrl::SetImageList(CImageList *,int) 8581 CImageList * CListCtrl::SetImageList(CImageList *,int) 8582 int CReBarCtrl::SetImageList(CImageList *) 8583 CImageList * CTabCtrl::SetImageList(CImageList *) 8584 CImageList * CToolBarCtrl::SetImageList(CImageList *) 8585 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 8586 int CToolBarCtrl::SetIndent(int) 8587 void CTreeCtrl::SetIndent(unsigned int) 8588 int CStatusBar::SetIndicators(unsigned int const *,int) 8589 void CDaoWorkspace::SetIniPath(char const *) 8590 void COleControl::SetInitialDataFormats(void) 8591 long CDocObjectServer::XPrint::SetInitialPageNum(long) 8592 void COleControl::SetInitialSize(int,int) 8593 void CControlBar::SetInPlaceOwner(CWnd *) 8594 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 8595 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 8596 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 8597 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 8598 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 8599 void CDaoWorkspace::SetIsolateODBCTrans(int) 8600 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMA const *) 8601 int CHeaderCtrl::SetItem(int,_HD_ITEMA *) 8602 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long) 8603 int CListCtrl::SetItem(int,int,unsigned int,char const *,int,unsigned int,unsigned int,long,int) 8604 int CListCtrl::SetItem(tagLVITEMA const *) 8605 int CTabCtrl::SetItem(int,tagTCITEMA *) 8606 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long) 8607 int CTreeCtrl::SetItem(tagTVITEMA *) 8608 void CListCtrl::SetItemCount(int) 8609 int CListCtrl::SetItemCountEx(int,unsigned long) 8610 int CComboBox::SetItemData(int,unsigned long) 8611 int CListBox::SetItemData(int,unsigned long) 8612 int CListCtrl::SetItemData(int,unsigned long) 8613 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 8614 int CComboBox::SetItemDataPtr(int,void *) 8615 int CListBox::SetItemDataPtr(int,void *) 8616 int CTreeCtrl::SetItemEx(_TREEITEM *,unsigned int,char const *,int,int,unsigned int,unsigned int,long,unsigned int,HWND__ *,int) 8617 int CTabCtrl::SetItemExtra(int) 8618 int CComboBox::SetItemHeight(int,unsigned int) 8619 int CListBox::SetItemHeight(int,unsigned int) 8620 short CTreeCtrl::SetItemHeight(short) 8621 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 8622 void COleServerItem::SetItemName(char const *) 8623 int CListCtrl::SetItemPosition(int,tagPOINT) 8624 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 8625 CSize CTabCtrl::SetItemSize(CSize) 8626 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 8627 int CListCtrl::SetItemState(int,tagLVITEMA *) 8628 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 8629 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 8630 int CListCtrl::SetItemText(int,int,char const *) 8631 int CTreeCtrl::SetItemText(_TREEITEM *,char const *) 8632 unsigned long CDC::SetLayout(unsigned long) 8633 void CHtmlView::SetLeft(long) 8634 void ATL::CSimpleStringT::SetLength(int) 8635 void ATL::CSimpleStringT::SetLength(int) 8636 void CFile::SetLength(unsigned __int64) 8637 void CInternetFile::SetLength(unsigned __int64) 8638 void CMemFile::SetLength(unsigned __int64) 8639 void COleStreamFile::SetLength(unsigned __int64) 8640 void CSocketFile::SetLength(unsigned __int64) 8641 void CEdit::SetLimitText(unsigned int) 8642 unsigned long CTreeCtrl::SetLineColor(unsigned long) 8643 int CSliderCtrl::SetLineSize(int) 8644 long COleUILinkInfo::SetLinkSource(unsigned long,char *,unsigned long,unsigned long *,int) 8645 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 8646 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 8647 void CArchive::SetLoadParams(unsigned int) 8648 unsigned long CComboBox::SetLocale(unsigned long) 8649 unsigned long CListBox::SetLocale(unsigned long) 8650 void CDaoRecordset::SetLockingMode(int) 8651 void CRecordset::SetLockingMode(unsigned int) 8652 void CDaoWorkspace::SetLoginTimeout(short) 8653 void CDatabase::SetLoginTimeout(unsigned long) 8654 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8655 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8656 int CDC::SetMapMode(int) 8657 int CPreviewDC::SetMapMode(int) 8658 unsigned long CDC::SetMapperFlags(unsigned long) 8659 void CToolTipCtrl::SetMargin(tagRECT *) 8660 void CEdit::SetMargins(unsigned int,unsigned int) 8661 void CRichEditView::SetMargins(CRect const &) 8662 void CPrintInfo::SetMaxPage(unsigned int) 8663 int CMonthCalCtrl::SetMaxSelCount(int) 8664 int CToolBarCtrl::SetMaxTextRows(int) 8665 int CToolTipCtrl::SetMaxTipWidth(int) 8666 int CFrameWnd::SetMenu(CMenu *) 8667 int CWnd::SetMenu(CMenu *) 8668 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8669 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8670 void CHtmlView::SetMenuBar(int) 8671 int CFrameWnd::SetMenuBarState(unsigned long) 8672 int CMDIFrameWnd::SetMenuBarState(unsigned long) 8673 void CFrameWnd::SetMenuBarVisibility(unsigned long) 8674 void CMDIFrameWnd::SetMenuBarVisibility(unsigned long) 8675 int CMenu::SetMenuContextHelpId(unsigned long) 8676 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 8677 int CMenu::SetMenuItemInfoA(unsigned int,tagMENUITEMINFOA *,int) 8678 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 8679 void CFrameWnd::SetMessageText(unsigned int) 8680 void CFrameWnd::SetMessageText(char const *) 8681 void CStatusBarCtrl::SetMinHeight(int) 8682 void CPrintInfo::SetMinPage(unsigned int) 8683 int CTabCtrl::SetMinTabWidth(int) 8684 int CDC::SetMiterLimit(float) 8685 void CPropertyPage::SetModified(int) 8686 void CDocument::SetModifiedFlag(int) 8687 void COleControl::SetModifiedFlag(int) 8688 void COlePropertyPage::SetModifiedFlag(int) 8689 void CRichEditDoc::SetModifiedFlag(int) 8690 void CEdit::SetModify(int) 8691 void CRichEditCtrl::SetModify(int) 8692 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 8693 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 8694 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 8695 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 8696 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 8697 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 8698 int CMonthCalCtrl::SetMonthDelta(int) 8699 void CDaoQueryDef::SetName(char const *) 8700 void CDaoTableDef::SetName(char const *) 8701 int CPropertySection::SetName(unsigned long,char const *) 8702 void COleControl::SetNotPermitted(void) 8703 void CCmdTarget::SetNotSupported(void) 8704 void COleControl::SetNotSupported(void) 8705 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 8706 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 8707 void CDaoRecordset::SetNullFieldStatus(unsigned int) 8708 void CRecordset::SetNullFieldStatus(unsigned long) 8709 void CRecordset::SetNullParamStatus(unsigned long) 8710 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 8711 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8712 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8713 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 8714 void CArchive::SetObjectSchema(unsigned int) 8715 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8716 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8717 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8718 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8719 void CDaoQueryDef::SetODBCTimeout(short) 8720 void CHtmlView::SetOffline(int) 8721 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 8722 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 8723 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 8724 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 8725 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 8726 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 8727 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 8728 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 8729 int CHeaderCtrl::SetOrderArray(int,int *) 8730 void CPropertySet::SetOSVersion(unsigned long) 8731 void CDC::SetOutputDC(HDC__ *) 8732 void CMetaFileDC::SetOutputDC(HDC__ *) 8733 void CPreviewDC::SetOutputDC(HDC__ *) 8734 int CImageList::SetOverlayImage(int,int) 8735 CWnd * CReBarCtrl::SetOwner(CWnd *) 8736 void CToolBar::SetOwner(CWnd *) 8737 void CToolBarCtrl::SetOwner(CWnd *) 8738 void CWnd::SetOwner(CWnd *) 8739 void CTabCtrl::SetPadding(CSize) 8740 unsigned long CToolBarCtrl::SetPadding(int,int) 8741 void COlePropertyPage::SetPageName(char const *) 8742 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 8743 int CSliderCtrl::SetPageSize(int) 8744 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 8745 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 8746 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 8747 void CStatusBar::SetPaneStyle(int,unsigned int) 8748 int CStatusBar::SetPaneText(int,char const *,int) 8749 void CRichEditView::SetPaperSize(CSize) 8750 int CRichEditCtrl::SetParaFormat(_paraformat &) 8751 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 8752 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 8753 void CRecordset::SetParamNull(int,int) 8754 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 8755 void CDaoQueryDef::SetParamValue(char const *,COleVariant const &) 8756 void CDaoRecordset::SetParamValue(int,COleVariant const &) 8757 void CDaoRecordset::SetParamValue(char const *,COleVariant const &) 8758 void CDaoQueryDef::SetParamValueNull(int) 8759 void CDaoQueryDef::SetParamValueNull(char const *) 8760 void CDaoRecordset::SetParamValueNull(int) 8761 void CDaoRecordset::SetParamValueNull(char const *) 8762 CWnd * CWnd::SetParent(CWnd *) 8763 int CStatusBarCtrl::SetParts(int,int *) 8764 void CEdit::SetPasswordChar(char) 8765 void CDataPathProperty::SetPath(char const *) 8766 void CDocument::SetPathName(char const *,int) 8767 void COleDocument::SetPathName(char const *,int) 8768 void CRichEditDoc::SetPathName(char const *,int) 8769 void CDaoRecordset::SetPercentPosition(float) 8770 void CHandleMap::SetPermanent(void *,CObject *) 8771 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 8772 unsigned long CDC::SetPixel(int,int,unsigned long) 8773 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 8774 int CDC::SetPixelV(int,int,unsigned long) 8775 int CDC::SetPixelV(tagPOINT,unsigned long) 8776 int CDC::SetPolyFillMode(int) 8777 int CProgressCtrl::SetPos(int) 8778 void CSliderCtrl::SetPos(int) 8779 int CSpinButtonCtrl::SetPos(int) 8780 int CSpinButtonCtrl::SetPos32(int) 8781 void COleIPFrameWnd::SetPreviewMode(int) 8782 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 8783 int COleClientItem::SetPrintDevice(tagPDA const *) 8784 void CEditView::SetPrinterFont(CFont *) 8785 int CPreviewView::SetPrintView(CView *) 8786 int COlePropertyPage::SetPropCheck(char const *,int) 8787 void COleControlSite::SetProperty(long,unsigned short,...) 8788 void COleDispatchDriver::SetProperty(long,unsigned short,...) 8789 void CWnd::SetProperty(long,unsigned short,...) 8790 void COleControlSite::SetPropertyV(long,unsigned short,char *) 8791 int COlePropertyPage::SetPropIndex(char const *,int) 8792 int COlePropertyPage::SetPropRadio(char const *,int) 8793 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 8794 int COlePropertyPage::SetPropText(char const *,unsigned char &) 8795 int COlePropertyPage::SetPropText(char const *,short &) 8796 int COlePropertyPage::SetPropText(char const *,int &) 8797 int COlePropertyPage::SetPropText(char const *,unsigned int &) 8798 int COlePropertyPage::SetPropText(char const *,long &) 8799 int COlePropertyPage::SetPropText(char const *,unsigned long &) 8800 int COlePropertyPage::SetPropText(char const *,float &) 8801 int COlePropertyPage::SetPropText(char const *,double &) 8802 int COlePropertyPage::SetPropText(char const *,ATL::CStringT > > &) 8803 long CWnd::SetProxy(IAccessibleProxy *) 8804 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 8805 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 8806 void CDaoDatabase::SetQueryTimeout(short) 8807 void CDatabase::SetQueryTimeout(unsigned long) 8808 void CCmdUI::SetRadio(int) 8809 void CTestCmdUI::SetRadio(int) 8810 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8811 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8812 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8813 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8814 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8815 void CProgressCtrl::SetRange(short,short) 8816 void CSliderCtrl::SetRange(int,int,int) 8817 void CSpinButtonCtrl::SetRange(short,short) 8818 void CProgressCtrl::SetRange32(int,int) 8819 void CSpinButtonCtrl::SetRange32(int,int) 8820 void CSliderCtrl::SetRangeMax(int,int) 8821 void CSliderCtrl::SetRangeMin(int,int) 8822 int CInternetFile::SetReadBufferSize(unsigned int) 8823 int CEdit::SetReadOnly(int) 8824 int CRichEditCtrl::SetReadOnly(int) 8825 void CEdit::SetRect(tagRECT const *) 8826 void CRichEditCtrl::SetRect(tagRECT const *) 8827 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 8828 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 8829 int COleControl::SetRectInContainer(tagRECT const *) 8830 void CEdit::SetRectNP(tagRECT const *) 8831 void CRgn::SetRectRgn(int,int,int,int) 8832 void CRgn::SetRectRgn(tagRECT const *) 8833 void CWnd::SetRedraw(int) 8834 void CHtmlView::SetRegisterAsBrowser(int) 8835 void CHtmlView::SetRegisterAsDropTarget(int) 8836 void CWinApp::SetRegistryKey(unsigned int) 8837 void CWinApp::SetRegistryKey(char const *) 8838 void COleMessageFilter::SetRetryReply(unsigned long) 8839 void CDaoQueryDef::SetReturnsRecords(int) 8840 int CDC::SetROP2(int) 8841 void CSplitterWnd::SetRowInfo(int,int,int) 8842 void CToolBarCtrl::SetRows(int,int,tagRECT *) 8843 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 8844 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 8845 void CRecordset::SetRowsetSize(unsigned long) 8846 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 8847 void CPreviewView::SetScaledSize(unsigned int) 8848 void CPreviewDC::SetScaleRatio(int,int) 8849 void CScrollView::SetScaleToFitSize(tagSIZE) 8850 void CDockState::SetScreenSize(CSize &) 8851 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 8852 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 8853 int CScrollBar::SetScrollPos(int,int) 8854 int CWnd::SetScrollPos(int,int,int) 8855 void CScrollBar::SetScrollRange(int,int,int) 8856 void CWnd::SetScrollRange(int,int,int,int) 8857 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8858 void CSplitterWnd::SetScrollStyle(unsigned long) 8859 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8860 int CPropertySection::SetSectionName(char const *) 8861 void CEdit::SetSel(int,int,int) 8862 void CEdit::SetSel(unsigned long,int) 8863 int CListBox::SetSel(int,int) 8864 void CRichEditCtrl::SetSel(_charrange &) 8865 void CRichEditCtrl::SetSel(long,long) 8866 void CSliderCtrl::SetSelection(int,int) 8867 int CRichEditCtrl::SetSelectionCharFormat(_charformat &) 8868 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2A &) 8869 void CCheckListBox::SetSelectionCheck(int) 8870 int CListCtrl::SetSelectionMark(int) 8871 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8872 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8873 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8874 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8875 void CHtmlView::SetSilent(int) 8876 int CStatusBarCtrl::SetSimple(int) 8877 long CPrintDialogEx::SetSite(IUnknown *) 8878 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8879 void CByteArray::SetSize(int,int) 8880 void CDWordArray::SetSize(int,int) 8881 void CObArray::SetSize(int,int) 8882 void CPtrArray::SetSize(int,int) 8883 void CStringArray::SetSize(int,int) 8884 void CUIntArray::SetSize(int,int) 8885 void CWordArray::SetSize(int,int) 8886 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8887 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8888 void CDaoTableDef::SetSourceTableName(char const *) 8889 void CSplitterWnd::SetSplitCursor(int) 8890 void CDaoQueryDef::SetSQL(char const *) 8891 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8892 void CButton::SetState(int) 8893 void CRecordset::SetState(int,char const *,unsigned long) 8894 int CToolBarCtrl::SetState(int,unsigned int) 8895 void CFile::SetStatus(char const *,CFileStatus const &) 8896 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8897 void CHtmlView::SetStatusBar(int) 8898 int CControlBar::SetStatusText(int) 8899 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8900 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8901 int CProgressCtrl::SetStep(int) 8902 void CArchive::SetStoreParams(unsigned int,unsigned int) 8903 int CDC::SetStretchBltMode(int) 8904 void ATL::CSimpleStringT::SetString(wchar_t const *) 8905 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 8906 void ATL::CSimpleStringT::SetString(char const *) 8907 void ATL::CSimpleStringT::SetString(char const *,int) 8908 void COleVariant::SetString(char const *,unsigned short) 8909 void CToolBarCtrl::SetStyle(unsigned long) 8910 void CDatabase::SetSynchronousMode(int) 8911 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8912 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8913 int CDialogTemplate::SetSystemFont(unsigned short) 8914 int CEdit::SetTabStops(int const &) 8915 int CEdit::SetTabStops(int,int *) 8916 void CEdit::SetTabStops(void) 8917 void CEditView::SetTabStops(int) 8918 int CListBox::SetTabStops(int const &) 8919 int CListBox::SetTabStops(int,int *) 8920 void CListBox::SetTabStops(void) 8921 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8922 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8923 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8924 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8925 void CFileDialog::SetTemplate(char const *,char const *) 8926 void CCmdUI::SetText(char const *) 8927 void COleCmdUI::SetText(char const *) 8928 void COleControl::SetText(char const *) 8929 int CStatusBarCtrl::SetText(char const *,int,int) 8930 void CStatusCmdUI::SetText(char const *) 8931 void CTestCmdUI::SetText(char const *) 8932 void CToolCmdUI::SetText(char const *) 8933 unsigned int CDC::SetTextAlign(unsigned int) 8934 int CListCtrl::SetTextBkColor(unsigned long) 8935 int CDC::SetTextCharacterExtra(int) 8936 unsigned long CDC::SetTextColor(unsigned long) 8937 int CListCtrl::SetTextColor(unsigned long) 8938 unsigned long CPreviewDC::SetTextColor(unsigned long) 8939 unsigned long CReBarCtrl::SetTextColor(unsigned long) 8940 unsigned long CTreeCtrl::SetTextColor(unsigned long) 8941 int CDC::SetTextJustification(int,int) 8942 int CRichEditCtrl::SetTextMode(unsigned int) 8943 void CHtmlView::SetTheaterMode(int) 8944 int CWinThread::SetThreadPriority(int) 8945 void CSliderCtrl::SetThumbLength(int) 8946 int CSliderCtrl::SetTic(int) 8947 void CSliderCtrl::SetTicFreq(int) 8948 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 8949 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 8950 int CDateTimeCtrl::SetTime(ATL::CTime const *) 8951 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 8952 void CToolTipCtrl::SetTipBkColor(unsigned long) 8953 int CSliderCtrl::SetTipSide(int) 8954 void CStatusBarCtrl::SetTipText(int,char const *) 8955 void CToolTipCtrl::SetTipTextColor(unsigned long) 8956 void CDocument::SetTitle(char const *) 8957 void CFrameWnd::SetTitle(char const *) 8958 void CPropertySheet::SetTitle(char const *,unsigned int) 8959 void CRichEditDoc::SetTitle(char const *) 8960 int CToolTipCtrl::SetTitle(unsigned int,char const *) 8961 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 8962 void CMonthCalCtrl::SetToday(ATL::CTime const *) 8963 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 8964 void CHtmlView::SetToolBar(int) 8965 void CToolTipCtrl::SetToolInfo(tagTOOLINFOA *) 8966 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 8967 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 8968 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 8969 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 8970 void CTabCtrl::SetToolTips(CToolTipCtrl *) 8971 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 8972 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 8973 void CHtmlView::SetTop(long) 8974 int CComboBox::SetTopIndex(int) 8975 int CListBox::SetTopIndex(int) 8976 void CPreviewDC::SetTopLeftOffset(CSize) 8977 void CProperty::SetType(unsigned long) 8978 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 8979 void CRecordset::SetUpdateMethod(void) 8980 void CDaoTableDef::SetValidationRule(char const *) 8981 void CDaoTableDef::SetValidationText(char const *) 8982 void CThreadSlotData::SetValue(int,void *) 8983 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 8984 CSize CDC::SetViewportExt(tagSIZE) 8985 CSize CDC::SetViewportExt(int,int) 8986 CSize CMetaFileDC::SetViewportExt(tagSIZE) 8987 CSize CMetaFileDC::SetViewportExt(int,int) 8988 CSize CPreviewDC::SetViewportExt(int,int) 8989 CPoint CDC::SetViewportOrg(tagPOINT) 8990 CPoint CDC::SetViewportOrg(int,int) 8991 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 8992 CPoint CMetaFileDC::SetViewportOrg(int,int) 8993 CPoint CPreviewDC::SetViewportOrg(int,int) 8994 void CHtmlView::SetVisible(int) 8995 void CHtmlView::SetWidth(long) 8996 int CWnd::SetWindowContextHelpId(unsigned long) 8997 CSize CDC::SetWindowExt(tagSIZE) 8998 CSize CDC::SetWindowExt(int,int) 8999 CSize CPreviewDC::SetWindowExt(int,int) 9000 CPoint CDC::SetWindowOrg(int,int) 9001 CPoint CDC::SetWindowOrg(tagPOINT) 9002 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 9003 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 9004 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 9005 int CWnd::SetWindowRgn(HRGN__ *,int) 9006 void COleControlSite::SetWindowTextA(char const *) 9007 void CWnd::SetWindowTextA(char const *) 9008 void CPropertySheet::SetWizardButtons(unsigned long) 9009 void CPropertySheet::SetWizardMode(void) 9010 int CRichEditCtrl::SetWordCharFormat(_charformat &) 9011 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2A &) 9012 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 9013 void CListCtrl::SetWorkAreas(int,tagRECT *) 9014 int CDC::SetWorldTransform(tagXFORM const *) 9015 int CInternetFile::SetWriteBufferSize(unsigned int) 9016 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 9017 long CDocObjectServer::XOleDocumentView::Show(int) 9018 long COlePropertyPage::XPropertyPage::Show(unsigned int) 9019 void CDockBar::ShowAll(int) 9020 int CWinApp::ShowAppMessageBox(CWinApp *,char const *,unsigned int,unsigned int) 9021 int CReBarCtrl::ShowBand(unsigned int,int) 9022 void CWnd::ShowCaret(void) 9023 long CRichEditCntrItem::ShowContainerUI(int) 9024 long CRichEditView::ShowContainerUI(int) 9025 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 9026 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 9027 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 9028 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 9029 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 9030 void CComboBox::ShowDropDown(int) 9031 long COleClientItem::XOleClientSite::ShowObject(void) 9032 long COleControlSite::XOleClientSite::ShowObject(void) 9033 void CWnd::ShowOwnedPopups(int) 9034 void CFrameWnd::ShowOwnedWindows(int) 9035 long COleControlSite::XOleControlSite::ShowPropertyFrame(void) 9036 void CScrollBar::ShowScrollBar(int) 9037 void CWnd::ShowScrollBar(unsigned int,int) 9038 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 9039 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 9040 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 9041 int COleControlSite::ShowWindow(int) 9042 int CWnd::ShowWindow(int) 9043 int CAsyncSocket::ShutDown(int) 9044 tagSIZE const CScrollView::sizeDefault 9045 int CMonthCalCtrl::SizeMinReq(int) 9046 void CBitmapButton::SizeToContent(void) 9047 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 9048 int CReBarCtrl::SizeToRect(CRect &) 9049 long CEnumArray::XEnumVOID::Skip(unsigned long) 9050 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 9051 int CAsyncSocket::Socket(int,long,int,int) 9052 int CTreeCtrl::SortChildren(_TREEITEM *) 9053 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 9054 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 9055 int CListCtrl::SortItemsEx(int (__stdcall*)(long,long,long),unsigned long) 9056 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 9057 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 9058 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 9059 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 9060 int CSplitterWnd::SplitColumn(int) 9061 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 9062 int CSplitterWnd::SplitRow(int) 9063 int CDC::StartDocA(_DOCINFOA *) 9064 int CDC::StartDocA(char const *) 9065 void CDockContext::StartDrag(CPoint) 9066 int CDC::StartPage(void) 9067 void CDockContext::StartResize(int,CPoint) 9068 void CSplitterWnd::StartTracking(int) 9069 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 9070 int CProgressCtrl::StepIt(void) 9071 int CAnimateCtrl::Stop(void) 9072 void CHtmlView::Stop(void) 9073 void CRichEditCtrl::StopGroupTyping(void) 9074 void CSplitterWnd::StopTracking(int) 9075 void CRuntimeClass::Store(CArchive &)const 9076 void CDaoRecordset::StoreFields(void) 9077 void CRecordset::StoreFields(void) 9078 void CRichEditView::Stream(CArchive &,int) 9079 long CRichEditCtrl::StreamIn(int,_editstream &) 9080 long CRichEditCtrl::StreamOut(int,_editstream &) 9081 void CDockContext::Stretch(CPoint) 9082 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 9083 int ATL::CSimpleStringT::StringLength(wchar_t const *) 9084 int ATL::CSimpleStringT::StringLength(char const *) 9085 int ATL::CSimpleStringT::StringLength(wchar_t const *) 9086 int ATL::CSimpleStringT::StringLength(char const *) 9087 void CDaoRecordset::StripBrackets(char const *,char *) 9088 int CDC::StrokeAndFillPath(void) 9089 int CDC::StrokePath(void) 9090 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 9091 int CWnd::SubclassWindow(HWND__ *) 9092 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 9093 int COleDocObjectItem::SupportsIPrint(void) 9094 unsigned long CWinThread::SuspendThread(void) 9095 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 9096 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 9097 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 9098 CSize CDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 9099 CSize CDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 9100 CSize CMetaFileDC::TabbedTextOutA(int,int,ATL::CStringT > > const &,int,int *,int) 9101 CSize CMetaFileDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 9102 CSize CPreviewDC::TabbedTextOutA(int,int,char const *,int,int,int *,int) 9103 void CRichEditView::TextNotFound(char const *) 9104 int CDC::TextOutA(int,int,ATL::CStringT > > const &) 9105 int CDC::TextOutA(int,int,char const *,int) 9106 int CMetaFileDC::TextOutA(int,int,ATL::CStringT > > const &) 9107 int CMetaFileDC::TextOutA(int,int,char const *,int) 9108 int CPreviewDC::TextOutA(int,int,char const *,int) 9109 void CDaoDatabase::ThrowDaoException(int) 9110 void CDaoQueryDef::ThrowDaoException(int) 9111 void CDaoRecordset::ThrowDaoException(int) 9112 void CDaoTableDef::ThrowDaoException(int) 9113 void CDaoWorkspace::ThrowDaoException(int) 9114 void CDatabase::ThrowDBException(short) 9115 void CRecordset::ThrowDBException(short,void *) 9116 void CFileException::ThrowErrno(int,char const *) 9117 void COleControl::ThrowError(long,unsigned int,unsigned int) 9118 void COleControl::ThrowError(long,char const *,unsigned int) 9119 void ThrowGetRowsDaoException(long) 9120 void ATL::CSimpleStringT::ThrowMemoryException(void) 9121 void ATL::CSimpleStringT::ThrowMemoryException(void) 9122 void CFileException::ThrowOsError(long,char const *) 9123 void CDockContext::ToggleDocking(void) 9124 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 9125 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 9126 COleVariant CDataSourceControl::ToVariant(int) 9127 ATL::CTraceCategory traceAppMsg 9128 ATL::CTraceCategory traceCmdRouting 9129 ATL::CTraceCategory traceDatabase 9130 ATL::CTraceCategory traceDumpContext 9131 void CDBException::TraceErrorMessage(char const *)const 9132 ATL::CTraceCategory traceGdi 9133 ATL::CTraceCategory traceHtml 9134 ATL::CTraceCategory traceInternet 9135 ATL::CTraceCategory traceKernel 9136 ATL::CTraceCategory traceMemory 9137 ATL::CTraceCategory traceMultiApp 9138 ATL::CTraceCategory traceOle 9139 ATL::CTraceCategory traceSocket 9140 ATL::CTraceCategory traceUser 9141 ATL::CTraceCategory traceWinMsg 9142 int CDockContext::Track(void) 9143 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 9144 void CSplitterWnd::TrackColumnSize(int,int) 9145 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 9146 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 9147 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 9148 void CSplitterWnd::TrackRowSize(int,int) 9149 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 9150 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 9151 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 9152 long CBrowserControlSite::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 9153 long CDHtmlDialog::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 9154 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorA(tagMSG *,_GUID const *,unsigned long) 9155 long COleControlSite::XOleControlSite::TranslateAcceleratorA(tagMSG *,unsigned long) 9156 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 9157 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorA(tagMSG *) 9158 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 9159 long COleControlContainer::XOleIPFrame::TranslateAcceleratorA(tagMSG *,unsigned short) 9160 long COlePropertyPage::XPropertyPage::TranslateAcceleratorA(tagMSG *) 9161 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 9162 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 9163 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 9164 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 9165 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 9166 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 9167 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 9168 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 9169 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 9170 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 9171 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 9172 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 9173 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 9174 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 9175 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 9176 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 9177 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 9178 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 9179 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 9180 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 9181 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 9182 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 9183 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 9184 void ATL::CSimpleStringT::Truncate(int) 9185 void ATL::CSimpleStringT::Truncate(int) 9186 long CDocObjectServer::XOleDocumentView::UIActivate(int) 9187 void COccManager::UIActivateControl(CWnd *) 9188 long COleControl::XOleInPlaceObject::UIDeactivate(void) 9189 long COleServerDoc::XOleInPlaceObject::UIDeactivate(void) 9190 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 9191 void COleSafeArray::UnaccessData(void) 9192 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 9193 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 9194 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 9195 long COleControl::XOleObject::Unadvise(unsigned long) 9196 long COleServerDoc::XOleObject::Unadvise(unsigned long) 9197 long COleServerItem::XOleObject::Unadvise(unsigned long) 9198 void CRecordset::UnbindFieldsForUpdate(void) 9199 long COleControl::XOleCache::Uncache(unsigned long) 9200 int CEdit::Undo(void) 9201 int CRichEditCtrl::Undo(void) 9202 long COleControl::XViewObject::Unfreeze(unsigned long) 9203 int CCriticalSection::Unlock(void) 9204 int CEvent::Unlock(void) 9205 int CMultiLock::Unlock(long,long *) 9206 int CMultiLock::Unlock(void) 9207 int CMutex::Unlock(void) 9208 void COleSafeArray::Unlock(void) 9209 int CSemaphore::Unlock(long,long *) 9210 int CSemaphore::Unlock(void) 9211 int CSingleLock::Unlock(long,long *) 9212 int CSingleLock::Unlock(void) 9213 void CTypeLibCache::Unlock(void) 9214 void ATL::CSimpleStringT::UnlockBuffer(void) 9215 void ATL::CSimpleStringT::UnlockBuffer(void) 9216 void CEditView::UnlockBuffer(void)const 9217 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 9218 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 9219 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 9220 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 9221 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 9222 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 9223 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 9224 void CWnd::UnlockWindowUpdate(void) 9225 int CGdiObject::UnrealizeObject(void) 9226 int COleObjectFactory::Unregister(void) 9227 int COleTemplateServer::Unregister(void) 9228 int CWinApp::Unregister(void) 9229 int COleObjectFactory::UnregisterAll(void) 9230 void CDocManager::UnregisterShellFileTypes(void) 9231 void CWinApp::UnregisterShellFileTypes(void) 9232 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 9233 HWND__ * CWnd::UnsubclassWindow(void) 9234 void CDaoRecordset::Update(void) 9235 int CListCtrl::Update(int) 9236 int CRecordset::Update(void) 9237 void CToolTipCtrl::Update(void) 9238 long CDocObjectServer::XOleObject::Update(void) 9239 long COleControl::XOleObject::Update(void) 9240 long COleServerDoc::XOleObject::Update(void) 9241 long COleServerItem::XOleObject::Update(void) 9242 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 9243 void CStatusBar::UpdateAllPanes(int,int) 9244 void CDocument::UpdateAllViews(CView *,long,CObject *) 9245 void CScrollView::UpdateBars(void) 9246 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 9247 void CDC::UpdateColors(void) 9248 long CDataSourceControl::UpdateControls(void) 9249 long CDataSourceControl::UpdateCursor(void) 9250 void CMemoryState::UpdateData(void) 9251 int CWnd::UpdateData(int) 9252 void CWnd::UpdateDialogControls(CCmdTarget *,int) 9253 void CDocument::UpdateFrameCounts(void) 9254 void CFrameWnd::UpdateFrameTitleForDocument(char const *) 9255 int CRecordset::UpdateInsertDelete(void) 9256 void COleClientItem::UpdateItemType(void) 9257 int COleClientItem::UpdateLink(void) 9258 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 9259 void CRecentFileList::UpdateMenu(CCmdUI *) 9260 void COleDocument::UpdateModifiedFlag(void) 9261 void CRichEditDoc::UpdateModifiedFlag(void) 9262 void CRichEditDoc::UpdateObjectCache(void) 9263 void CFileDialog::UpdateOFNFromShellDialog(void) 9264 void CWinApp::UpdatePrinterSelection(int) 9265 int COleObjectFactory::UpdateRegistry(int) 9266 void COleObjectFactory::UpdateRegistry(char const *) 9267 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,char const * *,char const * *,int) 9268 int COleObjectFactory::UpdateRegistryAll(int) 9269 void CDockContext::UpdateState(int *,int) 9270 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 9271 void CToolTipCtrl::UpdateTipText(char const *,CWnd *,unsigned int) 9272 long CBrowserControlSite::UpdateUI(void) 9273 long CDHtmlDialog::UpdateUI(void) 9274 long CHtmlControlSite::XDocHostUIHandler::UpdateUI(void) 9275 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 9276 void COleLinkingDoc::UpdateVisibleLock(int,int) 9277 void CWnd::UpdateWindow(void) 9278 void CWnd::ValidateRect(tagRECT const *) 9279 void CWnd::ValidateRgn(CRgn *) 9280 void CDatabase::VerifyConnect(void) 9281 unsigned long CRecordset::VerifyCursorSupport(void) 9282 void CRecordset::VerifyDriverBehavior(void) 9283 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 9284 int COleObjectFactory::VerifyUserLicense(void) 9285 int CListBox::VKeyToItem(unsigned int,unsigned int) 9286 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 9287 int CDC::WidenPath(void) 9288 int COleControl::WillAmbientsBeValidDuringLoad(void) 9289 CWnd * CWnd::WindowFromPoint(tagPOINT) 9290 long CControlBar::WindowProc(unsigned int,unsigned int,long) 9291 long COleControl::WindowProc(unsigned int,unsigned int,long) 9292 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 9293 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 9294 long CReBar::WindowProc(unsigned int,unsigned int,long) 9295 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 9296 long CWnd::WindowProc(unsigned int,unsigned int,long) 9297 void CWinApp::WinHelpA(unsigned long,unsigned int) 9298 void CWnd::WinHelpA(unsigned long,unsigned int) 9299 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 9300 void CWnd::WinHelpInternal(unsigned long,unsigned int) 9301 CWnd const CWnd::wndBottom 9302 CWnd const CWnd::wndNoTopMost 9303 CWnd const CWnd::wndTop 9304 CWnd const CWnd::wndTopMost 9305 void CRichEditView::WrapChanged(void) 9306 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 9307 void CArchive::Write(void const *,unsigned int) 9308 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 9309 void CFile::Write(void const *,unsigned int) 9310 void CGopherFile::Write(void const *,unsigned int) 9311 int CImageList::Write(CArchive *) 9312 void CInternetFile::Write(void const *,unsigned int) 9313 void CMemFile::Write(void const *,unsigned int) 9314 void COleStreamFile::Write(void const *,unsigned int) 9315 void CSocketFile::Write(void const *,unsigned int) 9316 void CStdioFile::Write(void const *,unsigned int) 9317 void CArchive::WriteClass(CRuntimeconst *) 9318 void CArchive::WriteCount(unsigned long) 9319 void COleClientItem::WriteItem(CArchive &) 9320 void COleClientItem::WriteItemCompound(CArchive &) 9321 void COleClientItem::WriteItemFlat(CArchive &) 9322 void CRecentFileList::WriteList(void) 9323 int CPropertySection::WriteNameDictToStream(IStream *) 9324 void CArchive::WriteObject(CObject const *) 9325 int CWinApp::WriteProfileBinary(char const *,char const *,unsigned char *,unsigned int) 9326 int CWinApp::WriteProfileInt(char const *,char const *,int) 9327 int CWinApp::WriteProfileStringA(char const *,char const *,char const *) 9328 void CArchive::WriteString(char const *) 9329 void CGopherFile::WriteString(char const *) 9330 void CInternetFile::WriteString(char const *) 9331 void CStdioFile::WriteString(char const *) 9332 void CEditView::WriteToArchive(CArchive &) 9333 int CProperty::WriteToStream(IStream *) 9334 int CPropertySection::WriteToStream(IStream *) 9335 int CPropertySet::WriteToStream(IStream *) 9336 void AfxSetPerUserRegistration(int) 9337 int AfxGetPerUserRegistration(void) ================================================ FILE: Bin/i386/mfc_sym/mfc90u.def ================================================ 256 ??$CopyElements@VCOleVariant@@@@YGXPAVCOleVariant@@PBV0@H@Z 257 ??$HashKey@ABUtagVARIANT@@@@YGIABUtagVARIANT@@@Z 258 ??$HashKey@PB_W@@YGIPB_W@Z 259 ??$HashKey@PBD@@YGIPBD@Z 260 ??$HashKey@VCComBSTR@ATL@@@@YGIVCComBSTR@ATL@@@Z 261 ??$SerializeElements@V?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z 262 ??$SerializeElements@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@H@Z 263 ??$SerializeElements@VCComBSTR@ATL@@@@YGXAAVCArchive@@PAVCComBSTR@ATL@@H@Z 264 ??$SerializeElements@VCOleVariant@@@@YGXAAVCArchive@@PAVCOleVariant@@H@Z 265 void * operator new[](unsigned int) 266 void operator delete[](void *) 267 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 268 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 269 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 270 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 271 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 272 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 275 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 277 ATL::CStringT > >::CStringT > >(wchar_t,int) 278 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 279 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 280 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 281 ATL::CStringT > >::CStringT > >(char,int) 282 ATL::CStringT > >::CStringT > >(wchar_t *) 283 ATL::CStringT > >::CStringT > >(char *) 284 ATL::CStringT > >::CStringT > >(unsigned char *) 285 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(wchar_t const *) 287 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 288 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 289 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 290 ATL::CStringT > >::CStringT > >(char const *) 291 ATL::CStringT > >::CStringT > >(char const *,int) 292 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 293 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 294 ATL::CStringT > >::CStringT > >(unsigned char const *) 295 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(void) 297 ATL::CStringT > >::CStringT > >(wchar_t,int) 298 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 299 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 301 ATL::CStringT > >::CStringT > >(char,int) 302 ATL::CStringT > >::CStringT > >(wchar_t *) 303 ATL::CStringT > >::CStringT > >(char *) 304 ATL::CStringT > >::CStringT > >(unsigned char *) 305 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(wchar_t const *) 307 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 308 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 309 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 310 ATL::CStringT > >::CStringT > >(char const *) 311 ATL::CStringT > >::CStringT > >(char const *,int) 312 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 313 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 314 ATL::CStringT > >::CStringT > >(unsigned char const *) 315 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >(void) 317 _AFX_DAO_STATE::_AFX_DAO_STATE(void) 318 _AFX_THREAD_STATE::_AFX_THREAD_STATE(void) 319 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 320 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK(void) 321 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 322 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 323 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE(void) 324 CArchive::CArchive(CFile *,unsigned int,int,void *) 325 CArchivePropExchange::CArchivePropExchange(CArchive &) 326 CArchiveStream::CArchiveStream(CArchive *) 327 CAsyncMonikerFile::CAsyncMonikerFile(void) 328 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 329 CAsyncSocket::CAsyncSocket(void) 330 CBlobProperty::CBlobProperty(void *) 331 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 332 CBrush::CBrush(int,unsigned long) 333 CBrush::CBrush(unsigned long) 334 CBrush::CBrush(CBitmap *) 335 CByteArray::CByteArray(void) 336 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu(void) 337 CClientDC::CClientDC(CWnd *) 338 CCmdTarget::CCmdTarget(void) 339 CCmdUI::CCmdUI(void) 340 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 341 CCommandLineInfo::CCommandLineInfo(void) 342 CConnectionPoint::CConnectionPoint(void) 343 CControlBar::CControlBar(void) 344 CControlBarInfo::CControlBarInfo(void) 345 CControlCreationInfo::CControlCreationInfo(void) 346 COleControl::CControlDataSource::CControlDataSource(COleControl *) 347 CControlFrameWnd::CControlFrameWnd(COleControl *) 348 CControlSiteFactoryMgr::CControlSiteFactoryMgr(void) 349 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 350 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 351 CDaoException::CDaoException(void) 352 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 353 CDaoIndexInfo::CDaoIndexInfo(void) 354 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 355 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 356 CDaoRecordView::CDaoRecordView(unsigned int) 357 CDaoRecordView::CDaoRecordView(wchar_t const *) 358 CDaoRelationInfo::CDaoRelationInfo(void) 359 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 360 CDaoWorkspace::CDaoWorkspace(void) 361 CDatabase::CDatabase(void) 362 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 363 CDataExchange::CDataExchange(CWnd *,int) 364 CDataSourceControl::CDataSourceControl(COleControlSite *) 365 CDBException::CDBException(short) 366 CDBVariant::CDBVariant(void) 367 CDC::CDC(void) 368 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 369 CDHtmlControlSink::CDHtmlControlSink(void) 370 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 371 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 372 CDHtmlDialog::CDHtmlDialog(void) 373 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 374 CDialog::CDialog(unsigned int,CWnd *) 375 CDialog::CDialog(wchar_t const *,CWnd *) 376 CDialog::CDialog(void) 377 CDialogBar::CDialogBar(void) 378 CDialogTemplate::CDialogTemplate(void *) 379 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 380 CDocItem::CDocItem(void) 381 CDockBar::CDockBar(int) 382 CDockContext::CDockContext(CControlBar *) 383 CDockState::CDockState(void) 384 CDocManager::CDocManager(void) 385 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 386 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 387 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 388 CDocument::CDocument(void) 389 CDumpContext::CDumpContext(CFile *) 390 CDWordArray::CDWordArray(void) 391 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 392 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 393 CEditView::CEditView(void) 394 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 395 CEnumConnections::CEnumConnections(void const *,unsigned int) 396 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 397 CEnumFormatEtc::CEnumFormatEtc(void) 398 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 399 CException::CException(int) 400 CException::CException(void) 401 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 402 CFile::CFile(void *) 403 CFile::CFile(wchar_t const *,unsigned int) 404 CFile::CFile(void) 405 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long,int) 406 CFileFind::CFileFind(void) 407 CFindReplaceDialog::CFindReplaceDialog(void) 408 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 409 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 410 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 411 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 412 CFontHolder::CFontHolder(IPropertyNotifySink *) 413 CFormView::CFormView(unsigned int) 414 CFormView::CFormView(wchar_t const *) 415 CFrameWnd::CFrameWnd(void) 416 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 417 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 418 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 419 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 420 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 421 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 422 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 423 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 424 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 425 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 426 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 427 CHtmlEditCtrl::CHtmlEditCtrl(void) 428 CHtmlEditDoc::CHtmlEditDoc(void) 429 CHtmlEditView::CHtmlEditView(void) 430 CHtmlView::CHtmlView(void) 431 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 432 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 433 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 434 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 435 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 436 CImageList::CImageList(void) 437 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 438 CInternetException::CInternetException(unsigned long) 439 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 440 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 441 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 442 CLongBinary::CLongBinary(void) 443 CMapPtrToPtr::CMapPtrToPtr(int) 444 CMapPtrToWord::CMapPtrToWord(int) 445 CMapStringToOb::CMapStringToOb(int) 446 CMapStringToPtr::CMapStringToPtr(int) 447 CMapStringToString::CMapStringToString(int) 448 CMapWordToOb::CMapWordToOb(int) 449 CMapWordToPtr::CMapWordToPtr(int) 450 CMDIChildWnd::CMDIChildWnd(void) 451 CMDIFrameWnd::CMDIFrameWnd(void) 452 CMemFile::CMemFile(unsigned int) 453 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 454 CMetaFileDC::CMetaFileDC(void) 455 CMiniDockFrameWnd::CMiniDockFrameWnd(void) 456 CMiniFrameWnd::CMiniFrameWnd(void) 457 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 458 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 459 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 460 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 461 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(void) 462 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 463 CObArray::CObArray(void) 464 CObList::CObList(int) 465 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 466 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 467 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 468 COleClientItem::COleClientItem(COleDocument *) 469 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 470 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 471 COleControl::COleControl(void) 472 COleControlContainer::COleControlContainer(CWnd *) 473 COleControlLock::COleControlLock(_GUID const &) 474 COleControlSite::COleControlSite(COleControlContainer *) 475 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 476 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 477 COleControlSiteOrWnd::COleControlSiteOrWnd(void) 478 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 479 COleCurrency::COleCurrency(long,long) 480 COleDataObject::COleDataObject(void) 481 COleDataSource::COleDataSource(void) 482 COleDialog::COleDialog(CWnd *) 483 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 484 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 485 COleDispatchDriver::COleDispatchDriver(void) 486 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 487 COleDocIPFrameWnd::COleDocIPFrameWnd(void) 488 COleDocObjectItem::COleDocObjectItem(COleDocument *) 489 COleDocument::COleDocument(void) 490 COleDropSource::COleDropSource(void) 491 COleDropTarget::COleDropTarget(void) 492 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 493 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 494 COleIPFrameWnd::COleIPFrameWnd(void) 495 COleLinkingDoc::COleLinkingDoc(void) 496 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 497 COleMessageFilter::COleMessageFilter(void) 498 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 499 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 500 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 501 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 502 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 503 COleResizeBar::COleResizeBar(void) 504 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 505 COleSafeArray::COleSafeArray(tagVARIANT const &) 506 COleSafeArray::COleSafeArray(COleSafeArray const &) 507 COleSafeArray::COleSafeArray(COleVariant const &) 508 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 509 COleSafeArray::COleSafeArray(tagVARIANT const *) 510 COleServerDoc::COleServerDoc(void) 511 COleServerItem::COleServerItem(COleServerDoc *,int) 512 COleStreamFile::COleStreamFile(IStream *) 513 COleTemplateServer::COleTemplateServer(void) 514 COleUILinkInfo::COleUILinkInfo(COleDocument *) 515 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 516 COleVariant::COleVariant(tagVARIANT const &) 517 COleVariant::COleVariant(COleVariant const &) 518 COleVariant::COleVariant(short,unsigned short) 519 COleVariant::COleVariant(long,unsigned short) 520 COleVariant::COleVariant(wchar_t const *,unsigned short) 521 COleVariant::COleVariant(_ITEMIDLIST const *) 522 COleVariant::COleVariant(tagVARIANT const *) 523 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 524 CPaintDC::CPaintDC(CWnd *) 525 CPen::CPen(int,int,unsigned long) 526 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 527 CPictureHolder::CPictureHolder(void) 528 CPreviewDC::CPreviewDC(void) 529 CPreviewView::CPreviewView(void) 530 CPrintDialog::CPrintDialog(tagPDW &) 531 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 532 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 533 CPrintInfo::CPrintInfo(void) 534 CPrintPreviewState::CPrintPreviewState(void) 535 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 536 CProperty::CProperty(unsigned long,void * const,unsigned long) 537 CProperty::CProperty(void) 538 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 539 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 540 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 541 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 542 CPropertyPage::CPropertyPage(void) 543 CPropertySection::CPropertySection(_GUID) 544 CPropertySection::CPropertySection(void) 545 CPropertySet::CPropertySet(_GUID) 546 CPropertySet::CPropertySet(void) 547 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 548 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 549 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 550 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 551 CPropertySheet::CPropertySheet(void) 552 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 553 CPtrArray::CPtrArray(void) 554 CPtrList::CPtrList(int) 555 CReBar::CReBar(void) 556 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 557 CRecordset::CRecordset(CDatabase *) 558 CRecordView::CRecordView(unsigned int) 559 CRecordView::CRecordView(wchar_t const *) 560 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 561 CReObject::CReObject(CRichEditCntrItem *) 562 CReObject::CReObject(void) 563 CResetPropExchange::CResetPropExchange(void) 564 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 565 CRichEditDoc::CRichEditDoc(void) 566 CRichEditView::CRichEditView(void) 567 CScrollView::CScrollView(void) 568 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 569 CSharedFile::CSharedFile(unsigned int,unsigned int) 570 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 571 CSingleLock::CSingleLock(CSyncObject *,int) 572 CSocket::CSocket(void) 573 CSocketFile::CSocketFile(CSocket *,int) 574 CSocketWnd::CSocketWnd(void) 575 CSplitterWnd::CSplitterWnd(void) 576 CStatusBar::CStatusBar(void) 577 CStdioFile::CStdioFile(_iobuf *) 578 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 579 CStdioFile::CStdioFile(void) 580 CStringArray::CStringArray(void) 581 CStringList::CStringList(int) 582 CSyncObject::CSyncObject(wchar_t const *) 583 CTestCmdUI::CTestCmdUI(void) 584 CThreadSlotData::CThreadSlotData(void) 585 CToolBar::CToolBar(void) 586 CToolTipCtrl::CToolTipCtrl(void) 587 CUIntArray::CUIntArray(void) 588 CView::CView(void) 589 CWinApp::CWinApp(wchar_t const *) 590 CWindowDC::CWindowDC(CWnd *) 591 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 592 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 593 CWinThread::CWinThread(void) 594 CWnd::CWnd(HWND__ *) 595 CWnd::CWnd(void) 596 CWordArray::CWordArray(void) 597 CPreviewView::PAGE_INFO::PAGE_INFO(void) 598 ATL::CSimpleStringT::~CSimpleStringT(void) 599 ATL::CSimpleStringT::~CSimpleStringT(void) 600 ATL::CStringT > >::~CStringT > >(void) 601 ATL::CStringT > >::~CStringT > >(void) 602 _AFX_DAO_STATE::~_AFX_DAO_STATE(void) 603 _AFX_THREAD_STATE::~_AFX_THREAD_STATE(void) 604 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE(void) 605 AFX_MODULE_STATE::~AFX_MODULE_STATE(void) 606 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE(void) 607 CAnimateCtrl::~CAnimateCtrl(void) 608 CArchive::~CArchive(void) 609 CAsyncMonikerFile::~CAsyncMonikerFile(void) 610 CAsyncSocket::~CAsyncSocket(void) 611 CButton::~CButton(void) 612 CByteArray::~CByteArray(void) 613 CClientDC::~CClientDC(void) 614 CCmdTarget::~CCmdTarget(void) 615 CComboBox::~CComboBox(void) 616 CComboBoxEx::~CComboBoxEx(void) 617 CCommandLineInfo::~CCommandLineInfo(void) 618 CConnectionPoint::~CConnectionPoint(void) 619 CControlBar::~CControlBar(void) 620 CControlSiteFactoryMgr::~CControlSiteFactoryMgr(void) 621 CCtrlView::~CCtrlView(void) 622 CDaoDatabase::~CDaoDatabase(void) 623 CDaoException::~CDaoException(void) 624 CDaoIndexInfo::~CDaoIndexInfo(void) 625 CDaoQueryDef::~CDaoQueryDef(void) 626 CDaoRecordset::~CDaoRecordset(void) 627 CDaoRecordView::~CDaoRecordView(void) 628 CDaoRelationInfo::~CDaoRelationInfo(void) 629 CDaoTableDef::~CDaoTableDef(void) 630 CDaoWorkspace::~CDaoWorkspace(void) 631 CDatabase::~CDatabase(void) 632 CDataSourceControl::~CDataSourceControl(void) 633 CDateTimeCtrl::~CDateTimeCtrl(void) 634 CDBException::~CDBException(void) 635 CDBVariant::~CDBVariant(void) 636 CDC::~CDC(void) 637 CDHtmlControlSink::~CDHtmlControlSink(void) 638 CDHtmlDialog::~CDHtmlDialog(void) 639 CDialog::~CDialog(void) 640 CDialogBar::~CDialogBar(void) 641 CDialogTemplate::~CDialogTemplate(void) 642 CDocItem::~CDocItem(void) 643 CDockBar::~CDockBar(void) 644 CDockContext::~CDockContext(void) 645 CDockState::~CDockState(void) 646 CDocManager::~CDocManager(void) 647 CDocObjectServer::~CDocObjectServer(void) 648 CDocObjectServerItem::~CDocObjectServerItem(void) 649 CDocTemplate::~CDocTemplate(void) 650 CDocument::~CDocument(void) 651 CDragListBox::~CDragListBox(void) 652 CDWordArray::~CDWordArray(void) 653 CDynLinkLibrary::~CDynLinkLibrary(void) 654 CEdit::~CEdit(void) 655 CEditView::~CEditView(void) 656 CEnumArray::~CEnumArray(void) 657 CEnumConnections::~CEnumConnections(void) 658 CEnumConnPoints::~CEnumConnPoints(void) 659 CEnumFormatEtc::~CEnumFormatEtc(void) 660 CEnumOleVerb::~CEnumOleVerb(void) 661 CEnumUnknown::~CEnumUnknown(void) 662 CEvent::~CEvent(void) 663 CFile::~CFile(void) 664 CFileDialog::~CFileDialog(void) 665 CFileFind::~CFileFind(void) 666 CFixedAlloc::~CFixedAlloc(void) 667 CFixedAllocNoSync::~CFixedAllocNoSync(void) 668 CFontHolder::~CFontHolder(void) 669 CFormView::~CFormView(void) 670 CFrameWnd::~CFrameWnd(void) 671 CFtpConnection::~CFtpConnection(void) 672 CFtpFileFind::~CFtpFileFind(void) 673 CGopherConnection::~CGopherConnection(void) 674 CGopherFile::~CGopherFile(void) 675 CGopherFileFind::~CGopherFileFind(void) 676 CGopherLocator::~CGopherLocator(void) 677 CHeaderCtrl::~CHeaderCtrl(void) 678 CHotKeyCtrl::~CHotKeyCtrl(void) 679 CHtmlControlSite::~CHtmlControlSite(void) 680 CHtmlEditCtrl::~CHtmlEditCtrl(void) 681 CHtmlEditDoc::~CHtmlEditDoc(void) 682 CHtmlEditView::~CHtmlEditView(void) 683 CHtmlView::~CHtmlView(void) 684 CHttpConnection::~CHttpConnection(void) 685 CHttpFile::~CHttpFile(void) 686 CImageList::~CImageList(void) 687 CInternetConnection::~CInternetConnection(void) 688 CInternetException::~CInternetException(void) 689 CInternetFile::~CInternetFile(void) 690 CInternetSession::~CInternetSession(void) 691 CIPAddressCtrl::~CIPAddressCtrl(void) 692 CListBox::~CListBox(void) 693 CListCtrl::~CListCtrl(void) 694 CLongBinary::~CLongBinary(void) 695 CMapPtrToPtr::~CMapPtrToPtr(void) 696 CMapPtrToWord::~CMapPtrToWord(void) 697 CMapStringToOb::~CMapStringToOb(void) 698 CMapStringToPtr::~CMapStringToPtr(void) 699 CMapStringToString::~CMapStringToString(void) 700 CMapWordToOb::~CMapWordToOb(void) 701 CMapWordToPtr::~CMapWordToPtr(void) 702 CMemFile::~CMemFile(void) 703 CMetaFileDC::~CMetaFileDC(void) 704 CMiniFrameWnd::~CMiniFrameWnd(void) 705 CMonikerFile::~CMonikerFile(void) 706 CMonthCalCtrl::~CMonthCalCtrl(void) 707 CMultiDocTemplate::~CMultiDocTemplate(void) 708 CMultiLock::~CMultiLock(void) 709 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog(void) 710 CMutex::~CMutex(void) 711 CObArray::~CObArray(void) 712 CObList::~CObList(void) 713 COleBusyDialog::~COleBusyDialog(void) 714 COleChangeIconDialog::~COleChangeIconDialog(void) 715 COleChangeSourceDialog::~COleChangeSourceDialog(void) 716 COleClientItem::~COleClientItem(void) 717 COleCntrFrameWnd::~COleCntrFrameWnd(void) 718 COleControl::~COleControl(void) 719 COleControlContainer::~COleControlContainer(void) 720 COleControlLock::~COleControlLock(void) 721 COleControlSite::~COleControlSite(void) 722 COleControlSiteOrWnd::~COleControlSiteOrWnd(void) 723 COleConvertDialog::~COleConvertDialog(void) 724 COleDataSource::~COleDataSource(void) 725 COleDispatchException::~COleDispatchException(void) 726 COleDocIPFrameWnd::~COleDocIPFrameWnd(void) 727 COleDocObjectItem::~COleDocObjectItem(void) 728 COleDocument::~COleDocument(void) 729 COleDropTarget::~COleDropTarget(void) 730 COleFrameHook::~COleFrameHook(void) 731 COleInsertDialog::~COleInsertDialog(void) 732 COleIPFrameWnd::~COleIPFrameWnd(void) 733 COleLinkingDoc::~COleLinkingDoc(void) 734 COleLinksDialog::~COleLinksDialog(void) 735 COleMessageFilter::~COleMessageFilter(void) 736 COleObjectFactory::~COleObjectFactory(void) 737 COlePasteSpecialDialog::~COlePasteSpecialDialog(void) 738 COlePropertyPage::~COlePropertyPage(void) 739 COleResizeBar::~COleResizeBar(void) 740 COleServerDoc::~COleServerDoc(void) 741 COleServerItem::~COleServerItem(void) 742 COleStreamFile::~COleStreamFile(void) 743 COleUpdateDialog::~COleUpdateDialog(void) 744 CPaintDC::~CPaintDC(void) 745 CPictureHolder::~CPictureHolder(void) 746 CPreviewDC::~CPreviewDC(void) 747 CPreviewView::~CPreviewView(void) 748 CPrintInfo::~CPrintInfo(void) 749 CProcessLocalObject::~CProcessLocalObject(void) 750 CProgressCtrl::~CProgressCtrl(void) 751 CPropbagPropExchange::~CPropbagPropExchange(void) 752 CProperty::~CProperty(void) 753 CPropertyPage::~CPropertyPage(void) 754 CPropertySection::~CPropertySection(void) 755 CPropertySet::~CPropertySet(void) 756 CPropertySheet::~CPropertySheet(void) 757 CPtrArray::~CPtrArray(void) 758 CPtrList::~CPtrList(void) 759 CReBarCtrl::~CReBarCtrl(void) 760 CRecentFileList::~CRecentFileList(void) 761 CRecordset::~CRecordset(void) 762 CRecordView::~CRecordView(void) 763 CRectTracker::~CRectTracker(void) 764 CReObject::~CReObject(void) 765 CRichEditCntrItem::~CRichEditCntrItem(void) 766 CRichEditCtrl::~CRichEditCtrl(void) 767 CScrollBar::~CScrollBar(void) 768 CScrollView::~CScrollView(void) 769 CSemaphore::~CSemaphore(void) 770 CSharedFile::~CSharedFile(void) 771 CSingleDocTemplate::~CSingleDocTemplate(void) 772 CSliderCtrl::~CSliderCtrl(void) 773 CSocket::~CSocket(void) 774 CSocketFile::~CSocketFile(void) 775 CSpinButtonCtrl::~CSpinButtonCtrl(void) 776 CSplitButton::~CSplitButton(void) 777 CSplitterWnd::~CSplitterWnd(void) 778 CStatic::~CStatic(void) 779 CStatusBar::~CStatusBar(void) 780 CStatusBarCtrl::~CStatusBarCtrl(void) 781 CStdioFile::~CStdioFile(void) 782 CStringArray::~CStringArray(void) 783 CStringList::~CStringList(void) 784 CSyncObject::~CSyncObject(void) 785 CTabCtrl::~CTabCtrl(void) 786 CThreadLocalObject::~CThreadLocalObject(void) 787 CThreadSlotData::~CThreadSlotData(void) 788 CToolBar::~CToolBar(void) 789 CToolBarCtrl::~CToolBarCtrl(void) 790 CToolTipCtrl::~CToolTipCtrl(void) 791 CTreeCtrl::~CTreeCtrl(void) 792 CUIntArray::~CUIntArray(void) 793 CView::~CView(void) 794 CWinApp::~CWinApp(void) 795 CWindowDC::~CWindowDC(void) 796 CWinThread::~CWinThread(void) 797 CWnd::~CWnd(void) 798 CWordArray::~CWordArray(void) 799 void * operator new(unsigned int) 800 void * CNoTrackObject::operator new(unsigned int) 801 void operator delete(void *) 802 void CNoTrackObject::operator delete(void *) 803 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 804 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 805 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 806 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 807 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 808 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 809 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 810 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 811 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 812 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 813 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 814 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 815 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 816 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 817 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 818 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 819 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 820 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 821 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 822 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 823 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 824 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 825 COleCurrency const & COleCurrency::operator=(union tagCY) 826 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 827 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 828 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 829 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 830 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 831 COleVariant const & COleVariant::operator=(__int64) 832 COleVariant const & COleVariant::operator=(unsigned __int64) 833 COleVariant const & COleVariant::operator=(tagVARIANT const &) 834 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 835 COleVariant const & COleVariant::operator=(COleVariant const &) 836 COleVariant const & COleVariant::operator=(CByteArray const &) 837 COleVariant const & COleVariant::operator=(CLongBinary const &) 838 COleVariant const & COleVariant::operator=(COleCurrency const &) 839 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 840 COleVariant const & COleVariant::operator=(unsigned char) 841 COleVariant const & COleVariant::operator=(short) 842 COleVariant const & COleVariant::operator=(long) 843 COleVariant const & COleVariant::operator=(float) 844 COleVariant const & COleVariant::operator=(double) 845 COleVariant const & COleVariant::operator=(tagVARIANT const *) 846 COleVariant const & COleVariant::operator=(wchar_t const * const) 847 CArchive & operator>>(CArchive &,CByteArray * &) 848 CArchive & operator>>(CArchive &,CDocItem * &) 849 CArchive & operator>>(CArchive &,CDockState * &) 850 CArchive & operator>>(CArchive &,CDWordArray * &) 851 CArchive & operator>>(CArchive &,CMapStringToOb * &) 852 CArchive & operator>>(CArchive &,CMapStringToString * &) 853 CArchive & operator>>(CArchive &,CMapWordToOb * &) 854 CArchive & operator>>(CArchive &,CObArray * &) 855 CArchive & operator>>(CArchive &,CObList * &) 856 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 857 CArchive & operator>>(CArchive &,CStringArray * &) 858 CArchive & operator>>(CArchive &,CStringList * &) 859 CArchive & operator>>(CArchive &,CWordArray * &) 860 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 861 CArchive & operator>>(CArchive &,COleCurrency &) 862 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 863 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 864 CArchive & operator>>(CArchive &,COleVariant &) 865 CArchive & operator>>(CArchive &,ATL::CTime &) 866 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 867 CArchive & operator<<(CArchive &,ATL::CComBSTR) 868 CArchive & operator<<(CArchive &,COleCurrency) 869 CArchive & operator<<(CArchive &,ATL::COleDateTime) 870 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 871 CArchive & operator<<(CArchive &,COleVariant) 872 CArchive & operator<<(CArchive &,ATL::CTime) 873 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 874 CDumpContext & CDumpContext::operator<<(__int64) 875 CDumpContext & CDumpContext::operator<<(unsigned __int64) 876 CDumpContext & CDumpContext::operator<<(CObject const &) 877 CDumpContext & CDumpContext::operator<<(unsigned char) 878 CDumpContext & CDumpContext::operator<<(unsigned short) 879 CDumpContext & CDumpContext::operator<<(int) 880 CDumpContext & CDumpContext::operator<<(unsigned int) 881 CDumpContext & CDumpContext::operator<<(long) 882 CDumpContext & CDumpContext::operator<<(unsigned long) 883 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 884 CDumpContext & CDumpContext::operator<<(HDC__ *) 885 CDumpContext & CDumpContext::operator<<(HFONT__ *) 886 CDumpContext & CDumpContext::operator<<(HMENU__ *) 887 CDumpContext & CDumpContext::operator<<(HWND__ *) 888 CDumpContext & CDumpContext::operator<<(wchar_t const *) 889 CDumpContext & CDumpContext::operator<<(char const *) 890 CDumpContext & CDumpContext::operator<<(CObject const *) 891 CDumpContext & CDumpContext::operator<<(void const *) 892 int COleSafeArray::operator==(tagSAFEARRAY const &)const 893 int COleSafeArray::operator==(tagVARIANT const &)const 894 int COleSafeArray::operator==(COleSafeArray const &)const 895 int COleSafeArray::operator==(COleVariant const &)const 896 int COleSafeArray::operator==(tagSAFEARRAY const *)const 897 int COleSafeArray::operator==(tagVARIANT const *)const 898 int COleVariant::operator==(tagVARIANT const &)const 899 wchar_t ATL::CSimpleStringT::operator[](int)const 900 char ATL::CSimpleStringT::operator[](int)const 901 void * & CMapPtrToPtr::operator[](void *) 902 unsigned short & CMapPtrToWord::operator[](void *) 903 CObject * & CMapStringToOb::operator[](wchar_t const *) 904 void * & CMapStringToPtr::operator[](wchar_t const *) 905 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 906 CObject * & CMapWordToOb::operator[](unsigned short) 907 void * & CMapWordToPtr::operator[](unsigned short) 908 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 909 ATL::CSimpleStringT::operator wchar_t const *(void)const 910 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 911 ATL::CSimpleStringT::operator char const *(void)const 912 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 913 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 914 COleCurrency COleCurrency::operator*(long)const 915 COleCurrency COleCurrency::operator-(COleCurrency const &)const 916 COleCurrency COleCurrency::operator-(void)const 917 COleCurrency COleCurrency::operator+(COleCurrency const &)const 918 COleCurrency COleCurrency::operator/(long)const 919 int COleCurrency::operator<(COleCurrency const &)const 920 int COleCurrency::operator<=(COleCurrency const &)const 921 int COleCurrency::operator>(COleCurrency const &)const 922 int COleCurrency::operator>=(COleCurrency const &)const 923 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 924 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 925 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 926 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 927 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 928 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 929 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 930 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 931 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 932 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 933 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 934 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 935 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 936 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 937 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 938 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 939 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 940 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 941 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 942 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 943 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 944 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 945 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 946 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 947 int _AfxDeleteRegKey(wchar_t const *) 948 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 949 int _AfxSocketInit(WSAData *) 950 void CArchive::Abort(void) 951 void CFile::Abort(void) 952 void CInternetFile::Abort(void) 953 void CMemFile::Abort(void) 954 void CMirrorFile::Abort(void) 955 void COleStreamFile::Abort(void) 956 void CSocketFile::Abort(void) 957 void CStdioFile::Abort(void) 958 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 959 long CCheckListBox::accDoDefaultAction(tagVARIANT) 960 long CWnd::accDoDefaultAction(tagVARIANT) 961 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 962 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 963 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 964 void COleSafeArray::AccessData(void * *) 965 long CWnd::accHitTest(long,long,tagVARIANT *) 966 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 967 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 968 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 969 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 970 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 971 long CWnd::accSelect(long,tagVARIANT) 972 long CWnd::XAccessible::accSelect(long,tagVARIANT) 973 void COleClientItem::Activate(long,CView *,tagMSG *) 974 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 975 void COleDocObjectItem::ActivateAndShow(void) 976 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 977 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 978 void CDocObjectServer::ActivateDocObject(void) 979 void COleServerDoc::ActivateDocObject(void) 980 void CFrameWnd::ActivateFrame(int) 981 void CMDIChildWnd::ActivateFrame(int) 982 int COleServerDoc::ActivateInPlace(void) 983 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 984 void CSplitterWnd::ActivateNext(int) 985 void CWnd::ActivateTopParent(void) 986 void CRecentFileList::Add(wchar_t const *) 987 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 988 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 989 int CToolBarCtrl::AddBitmap(int,unsigned int) 990 int CToolBarCtrl::AddBitmap(int,CBitmap *) 991 void COleClientItem::AddCachedData(COleDataSource *) 992 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 993 void CEnumConnections::AddConnection(tagCONNECTDATA *) 994 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 995 void CDocManager::AddDocTemplate(CDocTemplate *) 996 void CWinApp::AddDocTemplate(CDocTemplate *) 997 void CDocTemplate::AddDocument(CDocument *) 998 void CMultiDocTemplate::AddDocument(CDocument *) 999 void CSingleDocTemplate::AddDocument(CDocument *) 1000 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1001 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 1002 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1003 void COleControl::AddFrameLevelUI(void) 1004 void CFrameWnd::AddFrameWnd(void) 1005 __POSITION * CObList::AddHead(CObject *) 1006 void CObList::AddHead(CObList *) 1007 __POSITION * CPtrList::AddHead(void *) 1008 void CPtrList::AddHead(CPtrList *) 1009 void CSimpleList::AddHead(void *) 1010 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1011 __POSITION * CStringList::AddHead(wchar_t const *) 1012 void CStringList::AddHead(CStringList *) 1013 void COleDocument::AddItem(CDocItem *) 1014 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1015 void CDaoRecordset::AddNew(void) 1016 void CRecordset::AddNew(void) 1017 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1018 void CPropertySheet::AddPage(CPropertyPage *) 1019 void CPropertySection::AddProperty(CProperty *) 1020 void CPropertySet::AddProperty(_GUID,CProperty *) 1021 unsigned long CArchiveStream::AddRef(void) 1022 unsigned long CBlobProperty::AddRef(void) 1023 unsigned long CBrowserControlSite::AddRef(void) 1024 unsigned long CDHtmlControlSink::AddRef(void) 1025 unsigned long CDHtmlElementEventSink::AddRef(void) 1026 unsigned long CDHtmlEventSink::AddRef(void) 1027 unsigned long CInnerUnknown::AddRef(void) 1028 unsigned long COleConnPtContainer::AddRef(void) 1029 unsigned long COleDispatchImpl::AddRef(void) 1030 unsigned long COleUILinkInfo::AddRef(void) 1031 unsigned long CPrintDialogEx::AddRef(void) 1032 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1033 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1034 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 1035 CPropertySection * CPropertySet::AddSection(_GUID) 1036 void CPropertySet::AddSection(CPropertySection *) 1037 void COlePasteSpecialDialog::AddStandardFormats(int) 1038 int CToolBarCtrl::AddString(unsigned int) 1039 __POSITION * CObList::AddTail(CObject *) 1040 void CObList::AddTail(CObList *) 1041 __POSITION * CPtrList::AddTail(void *) 1042 void CPtrList::AddTail(CPtrList *) 1043 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1044 __POSITION * CStringList::AddTail(wchar_t const *) 1045 void CStringList::AddTail(CStringList *) 1046 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1047 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1048 void CWinApp::AddToRecentFileList(wchar_t const *) 1049 void CDocument::AddView(CView *) 1050 void CMetaFileDC::AdjustCP(int) 1051 void CRichEditView::AdjustDialogPosition(CDialog *) 1052 void CRectTracker::AdjustRect(int,tagRECT *) 1053 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1054 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1055 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1056 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1057 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1058 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1059 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1060 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1061 void AfxAbort(void) 1062 int AfxActivateActCtx(void *,unsigned long *) 1063 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 1064 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1065 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1066 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1067 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1068 void AfxCancelModes(HWND__ *) 1069 void AfxCheckError(long) 1070 void AfxClassInit(CRuntime*) 1071 int AfxComparePath(wchar_t const *,wchar_t const *) 1072 int AfxCompareValueByRef(void *,void *,int) 1073 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1074 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1075 void AfxCopyValueByRef(void *,void *,long *,int) 1076 void AfxCoreInitModule(void) 1077 void * AfxCreateActCtxW(tagACTCTXW const *) 1078 HDC__ * AfxCreateDC(void *,void *) 1079 int AfxCriticalInit(void) 1080 int AfxCriticalNewHandler(unsigned int) 1081 void AfxCriticalTerm(void) 1082 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1083 void AfxDaoCheck(long,char const *,char const *,int,int,int) 1084 _DAODBEngine * AfxDaoGetEngine(void) 1085 void AfxDaoInit(void) 1086 void AfxDaoTerm(void) 1087 AUX_DATA afxData 1088 int AfxDeactivateActCtx(unsigned long,unsigned long) 1089 void AfxDeleteObject(void * *) 1090 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1091 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1092 long AfxDllCanUnloadNow(void) 1093 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1094 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1095 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1096 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1097 void AfxEditviewTerm(void) 1098 void AfxEnableControlContainer(COccManager *) 1099 int AfxEndDeferRegisterClass(long) 1100 void AfxEndThread(unsigned int,int) 1101 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1102 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1103 void AfxFailMaxChars(CDataExchange *,int) 1104 void AfxFailRadio(CDataExchange *) 1105 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 1106 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1107 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1108 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1109 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1110 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1111 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1112 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1113 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1114 int AfxFreeLibrary(HINSTANCE__ *) 1115 int AfxFullPath(wchar_t *,wchar_t const *) 1116 long (__stdcall*AfxGetAfxWndProc(void))(HWND__ *,unsigned int,unsigned int,long) 1117 AFX_MODULE_STATE * AfxGetAppModuleState(void) 1118 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1119 tagMSG * AfxGetCurrentMessage(void) 1120 _AFX_DAO_STATE * AfxGetDaoState(void) 1121 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 1122 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1123 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 1124 unsigned long AfxGetDllVersion(void) 1125 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 1126 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1127 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1128 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1129 void * AfxGetHENV(void) 1130 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1131 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 1132 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 1133 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1134 HINSTANCE__ * AfxGetInstanceHandleHelper(void) 1135 unsigned long AfxGetInternetHandleType(void *) 1136 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1137 AFX_MODULE_STATE * AfxGetModuleState(void) 1138 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState(void) 1139 int (__cdecl*AfxGetNewHandler(void))(unsigned int) 1140 HWND__ * AfxGetParentOwner(HWND__ *) 1141 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1142 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1143 ATL::IAtlStringMgr * AfxGetStringManager(void) 1144 CWinThread * AfxGetThread(void) 1145 _AFX_THREAD_STATE * AfxGetThreadState(void) 1146 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1147 void AfxGlobalFree(void *) 1148 int AfxHelpEnabled(void) 1149 void AfxHookWindowCreate(CWnd *) 1150 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1151 int AfxInitCurrentStateApp(void) 1152 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1153 void AfxInitLocalData(HINSTANCE__ *) 1154 int AfxInitNetworkAddressControl(void) 1155 int AfxInitRichEdit(void) 1156 int AfxInitRichEdit2(void) 1157 void AfxInitThread(void) 1158 int AfxInternalIsIdleMessage(tagMSG *) 1159 int AfxInternalPreTranslateMessage(tagMSG *) 1160 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1161 int AfxInternalPumpMessage(void) 1162 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1163 int AfxIsDescendant(HWND__ *,HWND__ *) 1164 int AfxIsIdleMessage(tagMSG *) 1165 int AfxIsModuleDll(void) 1166 int AfxIsValidAddress(void const *,unsigned int,int) 1167 int AfxIsValidAtom(unsigned short) 1168 int AfxIsValidAtom(wchar_t const *) 1169 int AfxIsValidString(wchar_t const *,int) 1170 int AfxIsValidString(char const *,int) 1171 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1172 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1173 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *,wchar_t const *) 1174 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1175 HINSTANCE__ * AfxLoadLibraryEx(wchar_t const *,void *,unsigned long) 1176 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1177 int AfxLoadString(unsigned int,char *,unsigned int) 1178 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1179 void AfxLockGlobals(int) 1180 void AfxLockTempMaps(void) 1181 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1182 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1183 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1184 int AfxOleCanExitApp(void) 1185 int AfxOleGetUserCtrl(void) 1186 int AfxOleInit(void) 1187 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1188 void AfxOleLockApp(void) 1189 int AfxOleLockControl(_GUID const &) 1190 int AfxOleLockControl(wchar_t const *) 1191 void AfxOleOnReleaseAllObjects(void) 1192 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1193 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1194 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1195 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1196 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1197 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1198 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1199 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1200 void AfxOleSetUserCtrl(int) 1201 void AfxOleTerm(int) 1202 void AfxOleTermOrFreeLib(int,int) 1203 void AfxOleUnlockAllControls(void) 1204 void AfxOleUnlockApp(void) 1205 int AfxOleUnlockControl(_GUID const &) 1206 int AfxOleUnlockControl(wchar_t const *) 1207 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1208 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1209 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1210 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1211 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1212 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1213 void AfxPostQuitMessage(int) 1214 int AfxPreTranslateMessage(tagMSG *) 1215 long AfxProcessWndProcException(CException *,tagMSG const *) 1216 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1217 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1218 int AfxPumpMessage(void) 1219 unsigned int AfxReadStringLength(CArchive &,int &) 1220 int AfxRegisterClass(tagWNDCLASSW *) 1221 int AfxRegisterSiteFactory(IControlSiteFactory *) 1222 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1223 void AfxReleaseActCtx(void *) 1224 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1225 void AfxResetMsgCache(void) 1226 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1227 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1228 void AfxSafeArrayInit(COleSafeArray *) 1229 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 1230 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 1231 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1232 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 1233 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1234 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1235 void AfxSetWindowText(HWND__ *,wchar_t const *) 1236 void AfxSocketTerm(void) 1237 void AfxStoreField(CRecordset &,unsigned int,void *) 1238 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1239 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1240 void AfxTermLocalData(HINSTANCE__ *,int) 1241 void AfxTermThread(HINSTANCE__ *) 1242 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1243 void AfxThrowArchiveException(int,wchar_t const *) 1244 void AfxThrowDaoException(int,long) 1245 void AfxThrowDBException(short,CDatabase *,void *) 1246 void AfxThrowFileException(int,long,wchar_t const *) 1247 void AfxThrowInternetException(unsigned long,unsigned long) 1248 void AfxThrowInvalidArgException(void) 1249 void AfxThrowLastCleanup(void) 1250 void AfxThrowMemoryException(void) 1251 void AfxThrowNotSupportedException(void) 1252 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1253 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1254 void AfxThrowOleException(long) 1255 void AfxThrowResourceException(void) 1256 void AfxThrowUserException(void) 1257 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1258 void AfxTlsAddRef(void) 1259 void AfxTlsRelease(void) 1260 void AfxTrackerTerm(void) 1261 void AfxTryCleanup(void) 1262 int AfxUnhookWindowCreate(void) 1263 void AfxUnlockGlobals(int) 1264 int AfxUnlockTempMaps(int) 1265 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1266 int AfxUnregisterSiteFactory(IControlSiteFactory *) 1267 void AfxUnregisterWndClasses(void) 1268 void AfxVariantInit(tagVARIANT *) 1269 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1270 char * AfxW2AHelper(char *,wchar_t const *,int) 1271 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1272 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1273 void AfxWinTerm(void) 1274 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1275 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1276 void AfxWriteStringLength(CArchive &,unsigned int,int) 1277 void * CFixedAlloc::Alloc(void) 1278 void * CFixedAllocNoSync::Alloc(void) 1279 unsigned char * CMemFile::Alloc(unsigned long) 1280 unsigned char * CSharedFile::Alloc(unsigned long) 1281 void CRecordset::AllocAndCacheFieldInfo(void) 1282 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1283 void CDaoRecordset::AllocCache(void) 1284 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 1285 void CDatabase::AllocConnect(unsigned long) 1286 void COleSafeArray::AllocData(void) 1287 void CDaoRecordset::AllocDatabase(void) 1288 void CRecordset::AllocDataCache(void) 1289 void COleSafeArray::AllocDescriptor(unsigned long) 1290 int CControlBar::AllocElements(int,int) 1291 int CStatusBar::AllocElements(int,int) 1292 int CRecordset::AllocHstmt(void) 1293 void AllocLongBinary(CLongBinary &,unsigned long) 1294 void CPropertyPage::AllocPSP(unsigned long) 1295 void CRecordset::AllocRowset(void) 1296 int CThreadSlotData::AllocSlot(void) 1297 void CRecordset::AllocStatusArrays(void) 1298 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1299 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1300 void * CProperty::AllocValue(unsigned long) 1301 short COleControl::AmbientAppearance(void) 1302 unsigned long COleControl::AmbientBackColor(void) 1303 ATL::CStringT > > COleControl::AmbientDisplayName(void) 1304 IFontDisp * COleControl::AmbientFont(void) 1305 unsigned long COleControl::AmbientForeColor(void) 1306 unsigned long COleControl::AmbientLocaleID(void) 1307 ATL::CStringT > > COleControl::AmbientScaleUnits(void) 1308 int COleControl::AmbientShowGrabHandles(void) 1309 int COleControl::AmbientShowHatching(void) 1310 short COleControl::AmbientTextAlign(void) 1311 int COleControl::AmbientUIDead(void) 1312 int COleControl::AmbientUserMode(void) 1313 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1314 void ATL::CSimpleStringT::Append(wchar_t const *) 1315 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1316 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1317 void ATL::CSimpleStringT::Append(char const *) 1318 void ATL::CSimpleStringT::Append(char const *,int) 1319 int CByteArray::Append(CByteArray const &) 1320 void CDaoQueryDef::Append(void) 1321 void CDaoTableDef::Append(void) 1322 void CDaoWorkspace::Append(void) 1323 int CDWordArray::Append(CDWordArray const &) 1324 int CObArray::Append(CObArray const &) 1325 int CPtrArray::Append(CPtrArray const &) 1326 int CStringArray::Append(CStringArray const &) 1327 int CUIntArray::Append(CUIntArray const &) 1328 int CWordArray::Append(CWordArray const &) 1329 void ATL::CSimpleStringT::AppendChar(wchar_t) 1330 void ATL::CSimpleStringT::AppendChar(char) 1331 void CRecordset::AppendFilterAndSortSQL(void) 1332 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1333 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1334 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1335 void ATL::CStringT > >::AppendFormat(char const *,...) 1336 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1337 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1338 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1339 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1340 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 1341 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1342 long COlePropertyPage::XPropertyPage::Apply(void) 1343 void CFileDialog::ApplyOFNToShellDialog(void) 1344 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1345 int COleDocument::ApplyPrintDevice(tagPDW const *) 1346 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1347 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1348 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1349 int CAsyncSocket::AsyncSelect(long) 1350 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1351 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1352 int CAsyncSocket::Attach(unsigned int,long) 1353 int CDC::Attach(HDC__ *) 1354 int CGdiObject::Attach(void *) 1355 int CImageList::Attach(_IMAGELIST *) 1356 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1357 int CMenu::Attach(HMENU__ *) 1358 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1359 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1360 void COleDataObject::Attach(IDataObject *,int) 1361 void COleSafeArray::Attach(tagVARIANT &) 1362 void COleStreamFile::Attach(IStream *) 1363 void COleVariant::Attach(tagVARIANT &) 1364 int CWnd::Attach(HWND__ *) 1365 int COleDataObject::AttachClipboard(void) 1366 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1367 void CWnd::AttachControlSite(CHandleMap *) 1368 void CWnd::AttachControlSite(CWnd *,unsigned int) 1369 void COleClientItem::AttachDataObject(COleDataObject &)const 1370 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1371 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1372 CPrintDialog * CPrintDialog::AttachOnSetup(void) 1373 void COleControlSite::AttachWindow(void) 1374 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1375 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1376 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1377 void COleMessageFilter::BeginBusyState(void) 1378 int CDragListBox::BeginDrag(CPoint) 1379 void COleDataObject::BeginEnumFormats(void) 1380 void CFrameWnd::BeginModalState(void) 1381 void CDaoWorkspace::BeginTrans(void) 1382 int CDatabase::BeginTrans(void) 1383 void CCmdTarget::BeginWaitCursor(void) 1384 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1385 void CDataSourceControl::BindColumns(void) 1386 void COccManager::BindControls(CWnd *) 1387 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1388 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1389 void CDaoRecordset::BindFields(void) 1390 void CRecordset::BindFieldsForUpdate(void) 1391 unsigned int CRecordset::BindFieldsToColumns(void) 1392 void CDaoRecordset::BindParameters(void) 1393 void CDatabase::BindParameters(void *) 1394 unsigned int CRecordset::BindParams(void *) 1395 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1396 void CDataSourceControl::BindProp(COleControlSite *,int) 1397 void COleControlSite::BindProperty(long,CWnd *) 1398 void CWnd::BindProperty(long,CWnd *) 1399 void COleControl::BoundPropertyChanged(long) 1400 int COleControl::BoundPropertyRequestEdit(long) 1401 void CFrameWnd::BringToTop(int) 1402 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1403 void CDBException::BuildErrorString(CDatabase *,void *,int) 1404 void CDaoRecordset::BuildParameterList(void) 1405 void CPropertySheet::BuildPropPageArray(void) 1406 void CDaoRecordset::BuildSelectList(void) 1407 void CRecordset::BuildSelectSQL(void) 1408 int COleControl::BuildSharedMenu(void) 1409 int COleDocIPFrameWnd::BuildSharedMenu(void) 1410 int COleIPFrameWnd::BuildSharedMenu(void) 1411 void CDaoRecordset::BuildSQL(void) 1412 void CRecordset::BuildSQL(wchar_t const *) 1413 void CRecordset::BuildUpdateSQL(void) 1414 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1415 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1416 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1417 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1418 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1419 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1420 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1421 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1422 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1423 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1424 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1425 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1426 CSize CControlBar::CalcFixedLayout(int,int) 1427 CSize CDialogBar::CalcFixedLayout(int,int) 1428 CSize CDockBar::CalcFixedLayout(int,int) 1429 CSize CReBar::CalcFixedLayout(int,int) 1430 CSize CStatusBar::CalcFixedLayout(int,int) 1431 CSize CToolBar::CalcFixedLayout(int,int) 1432 void CControlBar::CalcInsideRect(CRect &,int)const 1433 void CStatusBar::CalcInsideRect(CRect &,int)const 1434 CSize CToolBar::CalcLayout(unsigned long,int) 1435 int CCheckListBox::CalcMinimumItemHeight(void) 1436 CSize CPreviewView::CalcPageDisplaySize(void) 1437 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1438 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1439 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1440 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1441 void CView::CalcWindowRect(tagRECT *,unsigned int) 1442 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1443 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1444 int CDHtmlDialog::CanAccessExternal(void) 1445 int COleClientItem::CanActivate(void) 1446 int CRichEditCntrItem::CanActivate(void) 1447 int CSplitterWnd::CanActivateNext(int) 1448 int CDaoRecordset::CanAppend(void)const 1449 int CDaoRecordset::CanBookmark(void) 1450 int CRecordset::CanBookmark(void)const 1451 void CDatabase::Cancel(void) 1452 void CRecordset::Cancel(void) 1453 void CSocket::CancelBlockingCall(void) 1454 void CDragListBox::CancelDrag(CPoint) 1455 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1456 long COleUILinkInfo::CancelLink(unsigned long) 1457 void CDockContext::CancelLoop(void) 1458 void CPropertyPage::CancelToClose(void) 1459 void CWnd::CancelToolTips(int) 1460 void CDaoRecordset::CancelUpdate(void) 1461 void CRecordset::CancelUpdate(void) 1462 int CDocument::CanCloseFrame(CFrameWnd *) 1463 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1464 int COleClientItem::CanCreateFromData(COleDataObject const *) 1465 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1466 unsigned long CDockContext::CanDock(void) 1467 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1468 int CFrameWnd::CanEnterHelpMode(void) 1469 long COleClientItem::XOleIPSite::CanInPlaceActivate(void) 1470 long COleControlSite::XOleIPSite::CanInPlaceActivate(void) 1471 int COleClientItem::CanPaste(void) 1472 int CRichEditCtrl::CanPaste(unsigned int)const 1473 int CRichEditView::CanPaste(void)const 1474 int COleClientItem::CanPasteLink(void) 1475 int CDaoRecordset::CanRestart(void) 1476 int CDaoRecordset::CanScroll(void)const 1477 int CDaoDatabase::CanTransact(void) 1478 int CDaoRecordset::CanTransact(void) 1479 int CDaoDatabase::CanUpdate(void) 1480 int CDaoQueryDef::CanUpdate(void) 1481 int CDaoRecordset::CanUpdate(void)const 1482 int CDaoTableDef::CanUpdate(void) 1483 long COleControlSite::XOleIPSite::CanWindowlessActivate(void) 1484 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 1485 void CScrollView::CenterOnPoint(CPoint) 1486 void CWnd::CenterWindow(CWnd *) 1487 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 1488 int CListBox::CharToItem(unsigned int,unsigned int) 1489 void ATL::CStringT > >::CharToOemA(void) 1490 int CDatabase::Check(short)const 1491 int CRecordset::Check(short)const 1492 int CDialog::CheckAutoCenter(void) 1493 int CWnd::CheckAutoCenter(void) 1494 void CArchive::CheckCount(void) 1495 void COleControlContainer::CheckDlgButton(int,unsigned int) 1496 void CWnd::CheckDlgButton(int,unsigned int) 1497 int CCheckListBox::CheckFromPoint(CPoint,int &) 1498 void COleClientItem::CheckGeneral(long) 1499 int CDatabase::CheckHstmt(short,void *)const 1500 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1501 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 1502 void COleControlContainer::CheckRadioButton(int,int,int) 1503 void CWnd::CheckRadioButton(int,int,int) 1504 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 1505 void CRecordset::CheckRowsetError(short) 1506 void CScrollView::CheckScrollBars(int &,int &)const 1507 CRuntimeconst CDaoDatabase::classCDaoDatabase 1508 CRuntimeconst CDaoException::classCDaoException 1509 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 1510 CRuntimeconst CDaoRecordset::classCDaoRecordset 1511 CRuntimeconst CDaoRecordView::classCDaoRecordView 1512 CRuntimeconst CDaoTableDef::classCDaoTableDef 1513 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 1514 CRuntimeconst CDatabase::classCDatabase 1515 CRuntimeconst CDBException::classCDBException 1516 CRuntimeconst CLongBinary::classCLongBinary 1517 CRuntimeconst COleDBRecordView::classCOleDBRecordView 1518 CRuntimeconst CRecordset::classCRecordset 1519 CRuntimeconst CRecordView::classCRecordView 1520 void CPropertyPage::Cleanup(void) 1521 void CSplitButton::Cleanup(void) 1522 void COlePropertyPage::CleanupObjectArray(void) 1523 void CDBVariant::Clear(void) 1524 void CDockState::Clear(void) 1525 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 1526 void CRecordset::ClearDirtyFieldStatus(unsigned long) 1527 void CRecordset::ClearFieldStatus(void) 1528 void CDaoRecordset::ClearFieldStatusFlags(void) 1529 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 1530 void CRecordset::ClearNullFieldStatus(unsigned long) 1531 void CRecordset::ClearNullParamStatus(unsigned long) 1532 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 1533 void CWnd::ClientToScreen(tagRECT *)const 1534 int COleControl::ClipCaretRect(tagRECT *) 1535 void CPreviewDC::ClipToPage(void) 1536 ATL::IAtlStringMgr * CAfxStringMgr::Clone(void) 1537 long CArchiveStream::Clone(IStream * *) 1538 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 1539 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 1540 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1541 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 1542 void CArchive::Close(void) 1543 void CAsyncMonikerFile::Close(void) 1544 void CAsyncSocket::Close(void) 1545 void CCachedDataPathProperty::Close(void) 1546 void CDaoDatabase::Close(void) 1547 void CDaoQueryDef::Close(void) 1548 void CDaoRecordset::Close(void) 1549 void CDaoTableDef::Close(void) 1550 void CDaoWorkspace::Close(void) 1551 void CDatabase::Close(void) 1552 void CFile::Close(void) 1553 void CFileFind::Close(void) 1554 void CInternetConnection::Close(void) 1555 void CInternetFile::Close(void) 1556 void CInternetSession::Close(void) 1557 void CMemFile::Close(void) 1558 void CMirrorFile::Close(void) 1559 void CMonikerFile::Close(void) 1560 void COleClientItem::Close(enum tagOLECLOSE) 1561 void COleStreamFile::Close(void) 1562 void CRecordset::Close(void) 1563 void CSocket::Close(void) 1564 void CSocketFile::Close(void) 1565 void CStdioFile::Close(void) 1566 long CDocObjectServer::XOleObject::Close(unsigned long) 1567 long COleControl::XOleObject::Close(unsigned long) 1568 long COleServerDoc::XOleObject::Close(unsigned long) 1569 long COleServerItem::XOleObject::Close(unsigned long) 1570 void CDocManager::CloseAllDocuments(int) 1571 void CDocTemplate::CloseAllDocuments(int) 1572 void CWinApp::CloseAllDocuments(int) 1573 void CFileFind::CloseContext(void) 1574 void CFtpFileFind::CloseContext(void) 1575 void CGopherFileFind::CloseContext(void) 1576 long CThemeHelper::CloseThemeData(void *) 1577 long CThemeHelper::CloseThemeDataFail(void *) 1578 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 1579 int ATL::CStringT > >::Collate(wchar_t const *)const 1580 int ATL::CStringT > >::Collate(char const *)const 1581 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 1582 int ATL::CStringT > >::CollateNoCase(char const *)const 1583 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 1584 int CStatusBar::CommandToIndex(unsigned int)const 1585 int CToolBar::CommandToIndex(unsigned int)const 1586 long CArchiveStream::Commit(unsigned long) 1587 void COleClientItem::CommitItem(int) 1588 void COleDocument::CommitItems(int,IStorage *) 1589 void CDaoWorkspace::CommitTrans(void) 1590 int CDatabase::CommitTrans(void) 1591 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 1592 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 1593 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1594 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 1595 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1596 void CWinThread::CommonConstruct(void) 1597 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 1598 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 1599 int ATL::CStringT > >::Compare(wchar_t const *)const 1600 int ATL::CStringT > >::Compare(char const *)const 1601 int CComboBox::CompareItem(tagCOMPAREITEM*) 1602 int CListBox::CompareItem(tagCOMPAREITEM*) 1603 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 1604 int ATL::CStringT > >::CompareNoCase(char const *)const 1605 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 1606 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 1607 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 1608 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 1609 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 1610 int CDatabase::Connect(unsigned long) 1611 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 1612 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 1613 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 1614 int CSocket::ConnectHelper(sockaddr const *,int) 1615 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 1616 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 1617 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 1618 long CDHtmlControlSink::ConnectToControl(IUnknown *) 1619 void COleServerDoc::ConnectView(CWnd *,CView *) 1620 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1621 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 1622 void CPropertyPage::Construct(unsigned int,unsigned int) 1623 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 1624 void CPropertyPage::Construct(wchar_t const *,unsigned int) 1625 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 1626 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 1627 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1628 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 1629 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 1630 void CRectTracker::Construct(void) 1631 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1632 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 1633 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 1634 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 1635 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 1636 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 1637 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 1638 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 1639 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 1640 int CPropertySheet::ContinueModal(void) 1641 int CWnd::ContinueModal(void) 1642 void COleControl::ControlInfoChanged(void) 1643 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 1644 int COleClientItem::ConvertTo(_GUID const &) 1645 int CRichEditCntrItem::ConvertTo(_GUID const &) 1646 void CByteArray::Copy(CByteArray const &) 1647 void CDWordArray::Copy(CDWordArray const &) 1648 void CObArray::Copy(CObArray const &) 1649 void COleSafeArray::Copy(tagSAFEARRAY * *) 1650 void CPtrArray::Copy(CPtrArray const &) 1651 void CStringArray::Copy(CStringArray const &) 1652 void CUIntArray::Copy(CUIntArray const &) 1653 void CWordArray::Copy(CWordArray const &) 1654 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 1655 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 1656 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 1657 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 1658 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 1659 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 1660 void COleClientItem::CopyToClipboard(int) 1661 void COleServerItem::CopyToClipboard(int) 1662 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 1663 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1664 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 1665 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1666 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1667 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1668 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1669 int CControlFrameWnd::Create(wchar_t const *) 1670 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 1671 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 1672 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 1673 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 1674 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1675 int CDialog::Create(wchar_t const *,CWnd *) 1676 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 1677 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 1678 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1679 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 1680 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1681 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 1682 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1683 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1684 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 1685 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1686 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1687 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 1688 int CImageList::Create(int,int,unsigned int,int,int) 1689 int CImageList::Create(unsigned int,int,int,unsigned long) 1690 int CImageList::Create(CImageList *) 1691 int CImageList::Create(wchar_t const *,int,int,unsigned long) 1692 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1693 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1694 int CLinkCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1695 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1696 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1697 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 1698 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 1699 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1700 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 1701 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1702 int CNetAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1703 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 1704 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 1705 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 1706 int CPagerCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1707 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 1708 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1709 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 1710 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 1711 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1712 int CReflectorWnd::Create(CRect const &,HWND__ *) 1713 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1714 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1715 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1716 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1717 int CSplitButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1718 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 1719 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1720 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 1721 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1722 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1723 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 1724 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1725 int CToolTipCtrl::Create(CWnd *,unsigned long) 1726 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 1727 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 1728 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 1729 void AFX_MODULE_STATE::CreateActivationContext(void) 1730 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 1731 IBindHost * CMonikerFile::CreateBindHost(void) 1732 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 1733 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 1734 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 1735 int COleClientItem::CreateCloneFrom(COleClientItem const *) 1736 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 1737 void CConnectionPoint::CreateConnectionArray(void) 1738 COleControlContainer * COccManager::CreateContainer(CWnd *) 1739 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1740 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1741 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 1742 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 1743 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 1744 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1745 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1746 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 1747 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 1748 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 1749 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 1750 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 1751 int CWnd::CreateControlContainer(COleControlContainer * *) 1752 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1753 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1754 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 1755 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 1756 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 1757 int CFtpConnection::CreateDirectoryW(wchar_t const *) 1758 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 1759 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 1760 int CWnd::CreateDlg(wchar_t const *,CWnd *) 1761 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 1762 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 1763 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 1764 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 1765 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 1766 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 1767 int CPictureHolder::CreateEmpty(void) 1768 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1769 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1770 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1771 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1772 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1773 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1774 int CLinkCtrl::CreateEx(wchar_t const *,unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1775 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1776 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 1777 int CNetAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1778 int CPagerCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1779 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1780 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1781 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1782 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1783 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1784 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 1785 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1786 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1787 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 1788 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1789 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 1790 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 1791 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 1792 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 1793 void CDaoTableDef::CreateField(CDaoFieldInfo &) 1794 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 1795 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 1796 CControlFrameWnd * COleControl::CreateFrameWindow(void) 1797 int CPictureHolder::CreateFromBitmap(unsigned int) 1798 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 1799 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 1800 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1801 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1802 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1803 int CPictureHolder::CreateFromIcon(unsigned int) 1804 int CPictureHolder::CreateFromIcon(HICON__ *,int) 1805 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 1806 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 1807 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 1808 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 1809 int CDialog::CreateIndirect(void *,CWnd *) 1810 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 1811 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 1812 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 1813 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 1814 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 1815 int COleInsertDialog::CreateItem(COleClientItem *) 1816 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 1817 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1818 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1819 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1820 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 1821 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 1822 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 1823 int COleStreamFile::CreateMemoryStream(CFileException *) 1824 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 1825 CDocument * CDocTemplate::CreateNewDocument(void) 1826 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 1827 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1828 CObject * CByteArray::CreateObject(void) 1829 CObject * CDC::CreateObject(void) 1830 CObject * CDocItem::CreateObject(void) 1831 CObject * CDockState::CreateObject(void) 1832 CObject * CDWordArray::CreateObject(void) 1833 CObject * CEditView::CreateObject(void) 1834 CObject * CFrameWnd::CreateObject(void) 1835 CObject * CGdiObject::CreateObject(void) 1836 CObject * CHtmlEditView::CreateObject(void) 1837 CObject * CHtmlView::CreateObject(void) 1838 CObject * CImageList::CreateObject(void) 1839 CObject * CListView::CreateObject(void) 1840 CObject * CMapStringToOb::CreateObject(void) 1841 CObject * CMapStringToString::CreateObject(void) 1842 CObject * CMapWordToOb::CreateObject(void) 1843 CObject * CMDIChildWnd::CreateObject(void) 1844 CObject * CMDIFrameWnd::CreateObject(void) 1845 CObject * CMenu::CreateObject(void) 1846 CObject * CMiniDockFrameWnd::CreateObject(void) 1847 CObject * CMiniFrameWnd::CreateObject(void) 1848 CObject * CObArray::CreateObject(void) 1849 CObject * CObList::CreateObject(void) 1850 CObject * COleDocIPFrameWnd::CreateObject(void) 1851 CObject * COleIPFrameWnd::CreateObject(void) 1852 CObject * CPreviewView::CreateObject(void) 1853 CObject * CRichEditCntrItem::CreateObject(void) 1854 CObject * CRichEditView::CreateObject(void) 1855 CObject * CRuntimeClass::CreateObject(void) 1856 CObject * CRuntimeClass::CreateObject(wchar_t const *) 1857 CObject * CRuntimeClass::CreateObject(char const *) 1858 CObject * CStringArray::CreateObject(void) 1859 CObject * CStringList::CreateObject(void) 1860 CObject * CTreeView::CreateObject(void) 1861 CObject * CWnd::CreateObject(void) 1862 CObject * CWordArray::CreateObject(void) 1863 void COleControlContainer::CreateOleFont(CFont *) 1864 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 1865 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 1866 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 1867 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 1868 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 1869 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 1870 HDC__ * CPageSetupDialog::CreatePrinterDC(void) 1871 HDC__ * CPrintDialog::CreatePrinterDC(void) 1872 HDC__ * CPrintDialogEx::CreatePrinterDC(void) 1873 int CWinApp::CreatePrinterDC(CDC &) 1874 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 1875 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 1876 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 1877 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 1878 COleControlSite * COccManager::CreateSite(COleControlContainer *) 1879 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 1880 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 1881 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 1882 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 1883 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 1884 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 1885 void COleControl::CreateTracker(int,int) 1886 void COleControl::CreateTracker(int,int,tagRECT const *) 1887 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 1888 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 1889 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 1890 void COleControl::CreateWindowForSubclassedControl(void) 1891 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1892 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1893 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1894 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 1895 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 1896 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 1897 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 1898 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 1899 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 1900 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 1901 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 1902 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 1903 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 1904 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 1905 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 1906 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 1907 void DDP_PostProcessing(CDataExchange *) 1908 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 1909 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 1910 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 1911 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 1912 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 1913 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 1914 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 1915 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 1916 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 1917 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 1918 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 1919 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 1920 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1921 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1922 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 1923 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 1924 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 1925 void DDV_MinMaxInt(CDataExchange *,int,int,int) 1926 void DDV_MinMaxLong(CDataExchange *,long,long,long) 1927 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 1928 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 1929 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 1930 void DDV_MinMaxShort(CDataExchange *,short,short,short) 1931 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 1932 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 1933 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 1934 void DDX_CBIndex(CDataExchange *,int,int &) 1935 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 1936 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 1937 void DDX_Check(CDataExchange *,int,int &) 1938 void DDX_Control(CDataExchange *,int,CWnd &) 1939 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 1940 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 1941 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 1942 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 1943 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 1944 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 1945 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 1946 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 1947 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 1948 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 1949 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 1950 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 1951 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 1952 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 1953 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 1954 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 1955 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 1956 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 1957 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 1958 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 1959 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 1960 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 1961 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 1962 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 1963 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 1964 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 1965 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 1966 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 1967 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 1968 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 1969 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 1970 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 1971 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 1972 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1973 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 1974 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 1975 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 1976 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 1977 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1978 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1979 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1980 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1981 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 1982 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 1983 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 1984 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 1985 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1986 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1987 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 1988 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 1989 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 1990 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 1991 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 1992 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 1993 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 1994 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 1995 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 1996 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 1997 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 1998 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 1999 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2000 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 2001 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2002 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 2003 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2004 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 2005 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2006 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 2007 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2008 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2009 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2010 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 2011 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 2012 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 2013 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 2014 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2015 void DDX_LBIndex(CDataExchange *,int,int &) 2016 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2017 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2018 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2019 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2020 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2021 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2022 void DDX_OCBool(CDataExchange *,int,long,int &) 2023 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2024 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2025 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2026 void DDX_OCFloat(CDataExchange *,int,long,float &) 2027 void DDX_OCFloat(CDataExchange *,int,long,double &) 2028 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2029 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2030 void DDX_OCInt(CDataExchange *,int,long,int &) 2031 void DDX_OCInt(CDataExchange *,int,long,long &) 2032 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2033 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2034 void DDX_OCShort(CDataExchange *,int,long,short &) 2035 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2036 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2037 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2038 void DDX_Radio(CDataExchange *,int,int &) 2039 void DDX_Scroll(CDataExchange *,int,int &) 2040 void DDX_Slider(CDataExchange *,int,int &) 2041 void DDX_Text(CDataExchange *,int,__int64 &) 2042 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2043 void DDX_Text(CDataExchange *,int,unsigned char &) 2044 void DDX_Text(CDataExchange *,int,short &) 2045 void DDX_Text(CDataExchange *,int,int &) 2046 void DDX_Text(CDataExchange *,int,unsigned int &) 2047 void DDX_Text(CDataExchange *,int,long &) 2048 void DDX_Text(CDataExchange *,int,unsigned long &) 2049 void DDX_Text(CDataExchange *,int,float &) 2050 void DDX_Text(CDataExchange *,int,double &) 2051 void DDX_Text(CDataExchange *,int,_FILETIME &) 2052 void DDX_Text(CDataExchange *,int,_GUID &) 2053 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2054 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2055 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2056 void DDX_Text(CDataExchange *,int,tagDEC &) 2057 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2058 void DDX_Text(CDataExchange *,int,COleCurrency &) 2059 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2060 void DDX_Text(CDataExchange *,int,wchar_t *,int) 2061 void COleClientItem::Deactivate(void) 2062 long COlePropertyPage::XPropertyPage::Deactivate(void) 2063 int COleServerDoc::DeactivateAndUndo(void) 2064 long COleClientItem::XOleIPSite::DeactivateAndUndo(void) 2065 long COleControlSite::XOleIPSite::DeactivateAndUndo(void) 2066 void COleClientItem::DeactivateUI(void) 2067 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 2068 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 2069 long CWnd::Default(void) 2070 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 2071 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 2072 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 2073 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 2074 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 2075 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2076 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2077 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2078 void CControlBar::DelayShow(int) 2079 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2080 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2081 int ATL::CStringT > >::Delete(int,int) 2082 int ATL::CStringT > >::Delete(int,int) 2083 void CDaoRecordset::Delete(void) 2084 void CException::Delete(void) 2085 void COleClientItem::Delete(int) 2086 void CRecordset::Delete(void) 2087 void CWinThread::Delete(void) 2088 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 2089 void CSplitterWnd::DeleteColumn(int) 2090 void CDocument::DeleteContents(void) 2091 void CEditView::DeleteContents(void) 2092 void CHtmlEditDoc::DeleteContents(void) 2093 void COleDocument::DeleteContents(void) 2094 void COleServerDoc::DeleteContents(void) 2095 void CRichEditDoc::DeleteContents(void) 2096 void CRichEditView::DeleteContents(void) 2097 int CDC::DeleteDC(void) 2098 void CDaoTableDef::DeleteField(int) 2099 void CDaoTableDef::DeleteField(wchar_t const *) 2100 int CImageList::DeleteImageList(void) 2101 void CDaoTableDef::DeleteIndex(int) 2102 void CDaoTableDef::DeleteIndex(wchar_t const *) 2103 void CComboBox::DeleteItem(tagDELETEITEM*) 2104 int CComboBoxEx::DeleteItem(int) 2105 void CListBox::DeleteItem(tagDELETEITEM*) 2106 int CGdiObject::DeleteObject(void) 2107 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2108 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 2109 void CDaoDatabase::DeleteRelation(wchar_t const *) 2110 void CSplitterWnd::DeleteRow(int) 2111 void CDaoDatabase::DeleteTableDef(wchar_t const *) 2112 void CHandleMap::DeleteTemp(void) 2113 void CDC::DeleteTempMap(void) 2114 void CGdiObject::DeleteTempMap(void) 2115 void CImageList::DeleteTempMap(void) 2116 void CMenu::DeleteTempMap(void) 2117 void CWnd::DeleteTempMap(void) 2118 void CRichEditDoc::DeleteUnmarkedItems(void)const 2119 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2120 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2121 void CSplitterWnd::DeleteView(int,int) 2122 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2123 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2124 void COleSafeArray::Destroy(void) 2125 int COleControlSite::DestroyControl(void) 2126 void COleSafeArray::DestroyData(void) 2127 void COleSafeArray::DestroyDescriptor(void) 2128 void CFrameWnd::DestroyDockBars(void) 2129 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2130 int CMenu::DestroyMenu(void) 2131 void CDHtmlDialog::DestroyModeless(void) 2132 void COleControl::DestroySharedMenu(void) 2133 void COleDocIPFrameWnd::DestroySharedMenu(void) 2134 void COleIPFrameWnd::DestroySharedMenu(void) 2135 int CToolTipCtrl::DestroyToolTipCtrl(void) 2136 void COleControl::DestroyTracker(void) 2137 int CControlBar::DestroyWindow(void) 2138 int CMDIChildWnd::DestroyWindow(void) 2139 int CWnd::DestroyWindow(void) 2140 unsigned int CAsyncSocket::Detach(void) 2141 HDC__ * CDC::Detach(void) 2142 void * CDialogTemplate::Detach(void) 2143 void * CGdiObject::Detach(void) 2144 _IMAGELIST * CImageList::Detach(void) 2145 unsigned char * CMemFile::Detach(void) 2146 HMENU__ * CMenu::Detach(void) 2147 int CMonikerFile::Detach(CFileException *) 2148 IDataObject * COleDataObject::Detach(void) 2149 tagVARIANT COleSafeArray::Detach(void) 2150 IStream * COleStreamFile::Detach(void) 2151 tagVARIANT COleVariant::Detach(void) 2152 void * CSharedFile::Detach(void) 2153 HDC__ * CWindowlessDC::Detach(void) 2154 HWND__ * CWnd::Detach(void) 2155 IDispatch * COleDispatchDriver::DetachDispatch(void) 2156 void CAsyncSocket::DetachHandle(unsigned int,int) 2157 void COleControlSite::DetachWindow(void) 2158 void CWinApp::DevModeChange(wchar_t *) 2159 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 2160 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 2161 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 2162 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 2163 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 2164 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 2165 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 2166 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 2167 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 2168 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 2169 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 2170 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2171 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2172 int COleServerDoc::DiscardUndoState(void) 2173 long COleClientItem::XOleIPSite::DiscardUndoState(void) 2174 long COleControlSite::XOleIPSite::DiscardUndoState(void) 2175 void COleDispatchImpl::Disconnect(void) 2176 void CDHtmlDialog::DisconnectDHtmlElementEvents(void) 2177 void CDHtmlDialog::DisconnectDHtmlEvents(void) 2178 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2179 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2180 void CDocument::DisconnectViews(void) 2181 void CWinThread::DispatchThreadMessage(tagMSG *) 2182 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2183 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 2184 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2185 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2186 void CAsyncSocket::DoCallBack(unsigned int,long) 2187 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2188 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2189 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2190 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2191 void COleControl::DoClick(void) 2192 int COleFrameHook::DoContextSensitiveHelp(int) 2193 int COleConvertDialog::DoConvert(COleClientItem *) 2194 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2195 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2196 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2197 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2198 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2199 int COleFrameHook::DoEnableModeless(int) 2200 void CWinApp::DoEnableModeless(int) 2201 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2202 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 2203 void CRecordset::DoFieldExchange(CFieldExchange *) 2204 int CDocument::DoFileSave(void) 2205 int CSplitterWnd::DoKeyboardSplit(void) 2206 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2207 int CColorDialog::DoModal(void) 2208 int CDialog::DoModal(void) 2209 int CFileDialog::DoModal(void) 2210 int CFontDialog::DoModal(void) 2211 int COleBusyDialog::DoModal(void) 2212 int COleChangeIconDialog::DoModal(void) 2213 int COleChangeSourceDialog::DoModal(void) 2214 int COleConvertDialog::DoModal(void) 2215 int COleInsertDialog::DoModal(unsigned long) 2216 int COleInsertDialog::DoModal(void) 2217 int COleLinksDialog::DoModal(void) 2218 int COlePasteSpecialDialog::DoModal(void) 2219 int COlePropertiesDialog::DoModal(void) 2220 int COleUpdateDialog::DoModal(void) 2221 int CPageSetupDialog::DoModal(void) 2222 int CPrintDialog::DoModal(void) 2223 int CPrintDialogEx::DoModal(void) 2224 int CPropertySheet::DoModal(void) 2225 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2226 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2227 void CControlBar::DoPaint(CDC *) 2228 void CDockBar::DoPaint(CDC *) 2229 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2230 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2231 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2232 int CView::DoPreparePrinting(CPrintInfo *) 2233 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2234 int CWinApp::DoPrintDialog(CPrintDialog *) 2235 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2236 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2237 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2238 void COleControl::DoPropExchange(CPropExchange *) 2239 int CDocument::DoSave(wchar_t const *,int) 2240 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2241 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2242 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2243 int CCmdUI::DoUpdate(CCmdTarget *,int) 2244 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2245 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2246 long COleControlSite::DoVerb(long,tagMSG *) 2247 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2248 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2249 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2250 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2251 void CWinApp::DoWaitCursor(int) 2252 void CPreviewView::DoZoom(unsigned int,CPoint) 2253 void CDC::DPtoHIMETRIC(tagSIZE *)const 2254 void CDC::DPtoLP(tagSIZE *)const 2255 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2256 unsigned int CDragListBox::Dragging(CPoint) 2257 long COleDropTarget::XDropTarget::DragLeave(void) 2258 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2259 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2260 void CRectTracker::Draw(CDC *)const 2261 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2262 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2263 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2264 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2265 void CControlBar::DrawBorders(CDC *,CRect &) 2266 void COleControl::DrawContent(CDC *,CRect &) 2267 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2268 void CDockContext::DrawFocusRect(int) 2269 void CControlBar::DrawGripper(CDC *,CRect const &) 2270 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2271 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2272 void CDragListBox::DrawInsert(int) 2273 void CBitmapButton::DrawItem(tagDRAWITEM*) 2274 void CButton::DrawItem(tagDRAWITEM*) 2275 void CCheckListBox::DrawItem(tagDRAWITEM*) 2276 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2277 void CComboBox::DrawItem(tagDRAWITEM*) 2278 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2279 void CListBox::DrawItem(tagDRAWITEM*) 2280 void CListCtrl::DrawItem(tagDRAWITEM*) 2281 void CListView::DrawItem(tagDRAWITEM*) 2282 void CMenu::DrawItem(tagDRAWITEM*) 2283 void CStatic::DrawItem(tagDRAWITEM*) 2284 void CStatusBar::DrawItem(tagDRAWITEM*) 2285 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2286 void CTabCtrl::DrawItem(tagDRAWITEM*) 2287 void COleControl::DrawMetafile(CDC *,CRect &) 2288 void CControlBar::DrawNCGripper(CDC *,CRect const &) 2289 int CControlBar::DrawNonThemedGripper(CDC *,CRect const &) 2290 void CDragListBox::DrawSingle(int) 2291 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2292 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2293 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2294 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2295 long CThemeHelper::DrawThemeBackground(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2296 long CThemeHelper::DrawThemeBackgroundFail(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2297 int CControlBar::DrawThemedGripper(CDC *,CRect const &,int) 2298 long CThemeHelper::DrawThemeParentBackground(HWND__ *,HDC__ *,tagRECT *) 2299 long CThemeHelper::DrawThemeParentBackgroundFail(HWND__ *,HDC__ *,tagRECT *) 2300 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2301 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2302 void CDragListBox::Dropped(int,CPoint) 2303 CDumpContext & CDumpContext::DumpAsHex(__int64) 2304 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 2305 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 2306 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 2307 CDumpContext & CDumpContext::DumpAsHex(int) 2308 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 2309 CDumpContext & CDumpContext::DumpAsHex(long) 2310 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 2311 long COleControl::XDataObject::DUnadvise(unsigned long) 2312 long COleDataSource::XDataObject::DUnadvise(unsigned long) 2313 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 2314 long COleServerItem::XDataObject::DUnadvise(unsigned long) 2315 CFile * CFile::Duplicate(void)const 2316 CFile * CInternetFile::Duplicate(void)const 2317 CFile * CMemFile::Duplicate(void)const 2318 CFile * COleStreamFile::Duplicate(void)const 2319 CFile * CSocketFile::Duplicate(void)const 2320 CFile * CStdioFile::Duplicate(void)const 2321 unsigned long const CEditView::dwStyleDefault 2322 void CDaoRecordset::Edit(void) 2323 void CRecordset::Edit(void) 2324 long COlePropertyPage::XPropertyPage::EditProperty(long) 2325 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 2326 void ATL::CSimpleStringT::Empty(void) 2327 void ATL::CSimpleStringT::Empty(void) 2328 void CDBException::Empty(void) 2329 void COleDataSource::Empty(void) 2330 void CCheckListBox::Enable(int,int) 2331 void CCmdUI::Enable(int) 2332 void COleCmdUI::Enable(int) 2333 void CStatusCmdUI::Enable(int) 2334 void CTestCmdUI::Enable(int) 2335 void CToolCmdUI::Enable(int) 2336 void CCmdTarget::EnableAggregation(void) 2337 void CCmdTarget::EnableAutomation(void) 2338 void CRecordset::EnableBookmarks(void) 2339 void CCmdTarget::EnableConnections(void) 2340 void CControlBar::EnableDocking(unsigned long) 2341 void CFrameWnd::EnableDocking(unsigned long) 2342 void COleControlSite::EnableDSC(void) 2343 long CBrowserControlSite::EnableModeless(int) 2344 long CDHtmlDialog::EnableModeless(int) 2345 void CWinApp::EnableModeless(int) 2346 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 2347 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 2348 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 2349 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 2350 long COleControlContainer::XOleIPFrame::EnableModeless(int) 2351 void CWnd::EnableScrollBarCtrl(int,int) 2352 void CWinApp::EnableShellOpen(void) 2353 void COleControl::EnableSimpleFrame(void) 2354 void CPropertySheet::EnableStackedTabs(int) 2355 int CInternetSession::EnableStatusCallback(int) 2356 int CWnd::EnableToolTips(int) 2357 int CWnd::EnableTrackingToolTips(int) 2358 void CCmdTarget::EnableTypeLib(void) 2359 int COleControlSite::EnableWindow(int) 2360 int CWnd::EnableWindow(int) 2361 void COleMessageFilter::EndBusyState(void) 2362 void CAsyncMonikerFile::EndCallbacks(void) 2363 long COleLinkingDoc::EndDeferErrors(long) 2364 void CDialog::EndDialog(int) 2365 void CPropertyPage::EndDialog(int) 2366 void CPropertySheet::EndDialog(int) 2367 void CDockContext::EndDrag(void) 2368 void CWnd::EndModalLoop(int) 2369 void CFrameWnd::EndModalState(void) 2370 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 2371 void CDockContext::EndResize(void) 2372 void CCmdTarget::EndWaitCursor(void) 2373 void COleDataObject::EnsureClipboardObject(void) 2374 void CArchive::EnsureSchemaMapExists(CArray * *) 2375 long CWnd::EnsureStdObj(void) 2376 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2377 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2378 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2379 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 2380 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 2381 int COlePropertyPage::EnumChildProc(HWND__ *,long) 2382 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 2383 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 2384 int COlePropertyPage::EnumControls(HWND__ *,long) 2385 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2386 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2387 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2388 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 2389 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2390 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2391 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2392 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 2393 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2394 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 2395 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 2396 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2397 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2398 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2399 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 2400 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 2401 void CControlBar::EraseNonClient(void) 2402 int CFileException::ErrnoToException(int) 2403 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 2404 int CMetaFileDC::Escape(int,int,char const *,void *) 2405 int CPreviewDC::Escape(int,int,char const *,void *) 2406 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2407 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2408 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2409 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2410 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 2411 int COleControl::ExchangeExtent(CPropExchange *) 2412 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2413 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2414 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2415 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2416 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 2417 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2418 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2419 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2420 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2421 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 2422 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2423 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2424 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2425 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2426 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 2427 void COleControl::ExchangeStockProps(CPropExchange *) 2428 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2429 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 2430 int CDC::ExcludeClipRect(int,int,int,int) 2431 int CDC::ExcludeClipRect(tagRECT const *) 2432 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2433 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 2434 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 2435 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 2436 int CHtmlEditView::ExecHandler(unsigned int) 2437 void CDaoDatabase::Execute(wchar_t const *,int) 2438 void CDaoQueryDef::Execute(int) 2439 int CWnd::ExecuteDlgInit(void *) 2440 int CWnd::ExecuteDlgInit(wchar_t const *) 2441 void CRecordset::ExecuteSetPosUpdate(void) 2442 void CDatabase::ExecuteSQL(wchar_t const *) 2443 void CRecordset::ExecuteUpdateSQL(void) 2444 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 2445 void CFrameWnd::ExitHelpMode(void) 2446 int COleControlModule::ExitInstance(void) 2447 int CWinApp::ExitInstance(void) 2448 int CWinThread::ExitInstance(void) 2449 unsigned long CCmdTarget::ExternalAddRef(void) 2450 void CCmdTarget::ExternalDisconnect(void) 2451 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 2452 unsigned long CCmdTarget::ExternalRelease(void) 2453 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2454 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 2455 void CDataExchange::Fail(void) 2456 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2457 short CRecordset::FetchData(unsigned short,long,unsigned long *) 2458 void CArchive::FillBuffer(unsigned int) 2459 void CDaoRecordset::FillCache(long *,COleVariant *) 2460 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 2461 void CDaoException::FillErrorInfo(void) 2462 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 2463 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 2464 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 2465 void CScrollView::FillOutsideRect(CDC *,CBrush *) 2466 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 2467 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 2468 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 2469 void CDC::FillSolidRect(int,int,int,int,unsigned long) 2470 void CDC::FillSolidRect(tagRECT const *,unsigned long) 2471 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 2472 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 2473 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 2474 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 2475 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 2476 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 2477 void CWnd::FilterToolTipMessage(tagMSG *) 2478 int ATL::CStringT > >::Find(wchar_t,int)const 2479 int ATL::CStringT > >::Find(wchar_t const *,int)const 2480 int ATL::CStringT > >::Find(char,int)const 2481 int ATL::CStringT > >::Find(char const *,int)const 2482 int CDaoRecordset::Find(long,wchar_t const *) 2483 __POSITION * CObList::Find(CObject *,__POSITION *)const 2484 __POSITION * CPtrList::Find(void *,__POSITION *)const 2485 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 2486 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 2487 int CDockBar::FindBar(CControlBar *,int) 2488 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 2489 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 2490 int CFileFind::FindFile(wchar_t const *,unsigned long) 2491 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 2492 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 2493 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 2494 int CDaoRecordset::FindFirst(wchar_t const *) 2495 __POSITION * CObList::FindIndex(int)const 2496 __POSITION * CPtrList::FindIndex(int)const 2497 __POSITION * CStringList::FindIndex(int)const 2498 COleControlSite * COleControlContainer::FindItem(unsigned int)const 2499 int CDaoRecordset::FindLast(wchar_t const *) 2500 int CDaoRecordset::FindNext(wchar_t const *) 2501 int CFileFind::FindNextFileW(void) 2502 int CFtpFileFind::FindNextFileW(void) 2503 int CGopherFileFind::FindNextFileW(void) 2504 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 2505 int ATL::CStringT > >::FindOneOf(char const *)const 2506 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 2507 int CDaoRecordset::FindPrev(wchar_t const *) 2508 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 2509 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 2510 __POSITION * CWnd::FindSiteOrWndWithFocus(void)const 2511 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 2512 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 2513 int CEditView::FindTextW(wchar_t const *,int,int) 2514 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 2515 int COleClientItem::FinishCreate(long) 2516 void COleControl::FireError(long,wchar_t const *,unsigned int) 2517 void COleControl::FireEvent(long,unsigned char *,...) 2518 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 2519 void COleControl::FireEventV(long,unsigned char *,char *) 2520 void CDaoRecordset::Fixup(void) 2521 void CRecordset::Fixups(void) 2522 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 2523 void CArchive::Flush(void) 2524 void CDumpContext::Flush(void) 2525 void CFile::Flush(void) 2526 void CInternetFile::Flush(void) 2527 void CMemFile::Flush(void) 2528 void CMonikerFile::Flush(void) 2529 void COleStreamFile::Flush(void) 2530 void CSocketFile::Flush(void) 2531 void CStdioFile::Flush(void) 2532 void COleDataSource::FlushClipboard(void) 2533 int CRecordset::FlushResultSet(void) 2534 void ATL::CSimpleStringT::Fork(int) 2535 void ATL::CSimpleStringT::Fork(int) 2536 void ATL::CStringT > >::Format(unsigned int,...) 2537 void ATL::CStringT > >::Format(wchar_t const *,...) 2538 void ATL::CStringT > >::Format(unsigned int,...) 2539 void ATL::CStringT > >::Format(char const *,...) 2540 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 2541 void ATL::CStringT > >::FormatMessage(unsigned int,...) 2542 void ATL::CStringT > >::FormatMessage(wchar_t const *,...) 2543 void ATL::CStringT > >::FormatMessage(unsigned int,...) 2544 void ATL::CStringT > >::FormatMessage(char const *,...) 2545 void ATL::CStringT > >::FormatMessageV(wchar_t const *,char * *) 2546 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 2547 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 2548 void ATL::CStringT > >::FormatMessageW(wchar_t const *,...) 2549 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 2550 void ATL::CStringT > >::FormatMessageW(char const *,...) 2551 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 2552 void ATL::CStringT > >::FormatV(char const *,char *) 2553 void COleControl::ForwardActivationMsg(tagMSG *) 2554 void CAfxStringMgr::Free(ATL::CStringData *) 2555 void CDatabase::Free(void) 2556 void CFixedAlloc::Free(void *) 2557 void CFixedAllocNoSync::Free(void *) 2558 void CMemFile::Free(unsigned char *) 2559 void CSharedFile::Free(unsigned char *) 2560 void CFixedAlloc::FreeAll(void) 2561 void CFixedAllocNoSync::FreeAll(void) 2562 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 2563 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 2564 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 2565 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 2566 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 2567 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 2568 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 2569 void CDaoRecordset::FreeCache(void) 2570 void CRecordset::FreeDataCache(void) 2571 void CPlex::FreeDataChain(void) 2572 void ATL::CSimpleStringT::FreeExtra(void) 2573 void ATL::CSimpleStringT::FreeExtra(void) 2574 void CByteArray::FreeExtra(void) 2575 void CDWordArray::FreeExtra(void) 2576 void CObArray::FreeExtra(void) 2577 void CPtrArray::FreeExtra(void) 2578 void CStringArray::FreeExtra(void) 2579 void CUIntArray::FreeExtra(void) 2580 void CWordArray::FreeExtra(void) 2581 void CObList::FreeNode(CObList::CNode *) 2582 void CPtrList::FreeNode(CPtrList::CNode *) 2583 void CStringList::FreeNode(CStringList::CNode *) 2584 void CRecordset::FreeRowset(void) 2585 void CThreadSlotData::FreeSlot(int) 2586 void CProperty::FreeValue(void) 2587 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 2588 void COleControlContainer::FreezeAllEvents(int) 2589 void COleControlSite::FreezeEvents(int) 2590 long COleControl::XOleControl::FreezeEvents(int) 2591 int COleClientItem::FreezeLink(void) 2592 CDC * CDC::FromHandle(HDC__ *) 2593 CGdiObject * CGdiObject::FromHandle(void *) 2594 CObject * CHandleMap::FromHandle(void *) 2595 CImageList * CImageList::FromHandle(_IMAGELIST *) 2596 CMenu * CMenu::FromHandle(HMENU__ *) 2597 CWnd * CWnd::FromHandle(HWND__ *) 2598 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 2599 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 2600 CWnd * CWnd::FromHandlePermanent(HWND__ *) 2601 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 2602 CRuntime* CRuntimeClass::FromName(wchar_t const *) 2603 CRuntime* CRuntimeClass::FromName(char const *) 2604 void * CProperty::Get(unsigned long *) 2605 void * CProperty::Get(void) 2606 void * CPropertySection::Get(unsigned long) 2607 void * CPropertySection::Get(unsigned long,unsigned long *) 2608 void * CPropertySet::Get(_GUID,unsigned long) 2609 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 2610 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 2611 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 2612 long CWnd::get_accChildCount(long *) 2613 long CWnd::XAccessible::get_accChildCount(long *) 2614 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 2615 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 2616 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 2617 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 2618 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 2619 long CWnd::get_accFocus(tagVARIANT *) 2620 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 2621 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 2622 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 2623 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2624 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 2625 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2626 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 2627 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 2628 long CWnd::get_accName(tagVARIANT,wchar_t * *) 2629 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 2630 long CWnd::get_accParent(IDispatch * *) 2631 long CWnd::XAccessible::get_accParent(IDispatch * *) 2632 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 2633 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 2634 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 2635 long CWnd::get_accSelection(tagVARIANT *) 2636 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 2637 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 2638 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 2639 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 2640 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 2641 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 2642 long CDaoRecordset::GetAbsolutePosition(void) 2643 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 2644 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 2645 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 2646 long CWnd::GetAccessibleChildCount(void) 2647 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 2648 unsigned long COleControl::GetActivationPolicy(void) 2649 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 2650 CDocument * CFrameWnd::GetActiveDocument(void) 2651 CFrameWnd * CFrameWnd::GetActiveFrame(void) 2652 CFrameWnd * CMDIFrameWnd::GetActiveFrame(void) 2653 int CPropertySheet::GetActiveIndex(void)const 2654 CPropertyPage * CPropertySheet::GetActivePage(void)const 2655 CWnd * CSplitterWnd::GetActivePane(int *,int *) 2656 CView * CFrameWnd::GetActiveView(void)const 2657 IOleDocumentView * COleDocObjectItem::GetActiveView(void)const 2658 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &)const 2659 int CHtmlView::GetAddressBar(void)const 2660 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 2661 int ATL::CSimpleStringT::GetAllocLength(void)const 2662 int ATL::CSimpleStringT::GetAllocLength(void)const 2663 COleDispatchDriver * COleControl::GetAmbientDispatchDriver(void) 2664 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 2665 int COleControl::GetAmbientProperty(long,unsigned short,void *) 2666 short COleControl::GetAppearance(void) 2667 IDispatch * CHtmlView::GetApplication(void)const 2668 HKEY__ * CWinApp::GetAppRegistryKey(void) 2669 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 2670 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 2671 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2672 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2673 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 2674 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2675 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 2676 wchar_t ATL::CSimpleStringT::GetAt(int)const 2677 char ATL::CSimpleStringT::GetAt(int)const 2678 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 2679 long CDaoTableDef::GetAttributes(void) 2680 unsigned long COleControl::GetBackColor(void) 2681 void CControlBar::GetBarInfo(CControlBarInfo *) 2682 void CDockBar::GetBarInfo(CControlBarInfo *) 2683 unsigned long CAsyncMonikerFile::GetBindInfo(void)const 2684 void * CBlobProperty::GetBlob(void) 2685 COleVariant CDaoRecordset::GetBookmark(void) 2686 void CRecordset::GetBookmark(CDBVariant &) 2687 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 2688 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 2689 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 2690 short COleControl::GetBorderStyle(void) 2691 long CDataSourceControl::GetBoundClientRow(void) 2692 int CRecordset::GetBoundFieldIndex(void *) 2693 int CRecordset::GetBoundParamIndex(void *) 2694 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 2695 wchar_t * ATL::CSimpleStringT::GetBuffer(void) 2696 char * ATL::CSimpleStringT::GetBuffer(int) 2697 char * ATL::CSimpleStringT::GetBuffer(void) 2698 unsigned int CEditView::GetBufferLength(void)const 2699 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2700 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2701 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 2702 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 2703 char * ATL::CSimpleStringT::GetBufferSetLength(int) 2704 int CHtmlView::GetBusy(void)const 2705 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 2706 unsigned int CToolBar::GetButtonStyle(int)const 2707 ATL::CStringT > > CToolBar::GetButtonText(int)const 2708 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 2709 void COleSafeArray::GetByteArray(CByteArray &) 2710 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 2711 unsigned short CPropertySet::GetByteOrder(void) 2712 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 2713 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 2714 long CDaoRecordset::GetCacheSize(void) 2715 COleVariant CDaoRecordset::GetCacheStart(void) 2716 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 2717 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2718 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2719 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2720 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 2721 CWnd * COleControl::GetCapture(void) 2722 long COleControlSite::XOleIPSite::GetCapture(void) 2723 void CFontDialog::GetCharFormat(_charformatw &)const 2724 CHARFORMAT2W & CRichEditView::GetCharFormatSelection(void) 2725 int CCheckListBox::GetCheck(int) 2726 int CListCtrl::GetCheck(int)const 2727 int CTreeCtrl::GetCheck(_TREEITEM *)const 2728 int CWnd::GetCheckedRadioButton(int,int)const 2729 long CBlobProperty::GetClassID(_GUID *) 2730 void COleClientItem::GetClassID(_GUID *)const 2731 _GUID CPropertySet::GetClassID(void) 2732 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 2733 long COleControl::XPersistMemory::GetClassID(_GUID *) 2734 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 2735 long COleControl::XPersistStorage::GetClassID(_GUID *) 2736 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 2737 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 2738 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 2739 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 2740 void COleControl::GetClientOffset(long *,long *)const 2741 void COleControl::GetClientRect(tagRECT *)const 2742 IOleClientSite * COleClientItem::GetClientSite(void) 2743 IOleClientSite * COleControl::GetClientSite(void) 2744 IOleClientSite * CRichEditCntrItem::GetClientSite(void) 2745 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 2746 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 2747 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 2748 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 2749 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2750 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 2751 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 2752 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2753 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2754 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2755 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 2756 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 2757 COleDataSource * COleDataSource::GetClipboardOwner(void) 2758 int CDC::GetClipBox(tagRECT *)const 2759 int CMetaFileDC::GetClipBox(tagRECT *)const 2760 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *)const 2761 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 2762 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 2763 int CListCtrl::GetColumnOrderArray(int *,int)const 2764 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap(void)const 2765 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap(void)const 2766 ATL::CStringT > > CDaoDatabase::GetConnect(void) 2767 ATL::CStringT > > CDaoQueryDef::GetConnect(void) 2768 ATL::CStringT > > CDaoTableDef::GetConnect(void) 2769 void CDatabase::GetConnectInfo(void) 2770 int CConnectionPoint::GetConnectionCount(void) 2771 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 2772 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 2773 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 2774 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap(void)const 2775 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap(void)const 2776 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 2777 CPtrArray const * CConnectionPoint::GetConnections(void) 2778 IConnectionPointContainer * CConnectionPoint::GetContainer(void) 2779 IDispatch * CHtmlView::GetContainer(void)const 2780 IOleItemContainer * COleDocument::GetContainer(void) 2781 IOleItemContainer * COleLinkingDoc::GetContainer(void) 2782 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 2783 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 2784 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 2785 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 2786 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 2787 CControlBar * CFrameWnd::GetControlBar(unsigned int) 2788 COleControlContainer * CWnd::GetControlContainer(void) 2789 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 2790 unsigned long COleControl::GetControlFlags(void) 2791 void COleControlSite::GetControlInfo(void) 2792 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 2793 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame(void)const 2794 IUnknown * CCmdTarget::GetControllingUnknown(void) 2795 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 2796 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 2797 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 2798 void COleControl::GetControlSize(int *,int *) 2799 int COlePropertyPage::GetControlStatus(unsigned int) 2800 IUnknown * CWnd::GetControlUnknown(void) 2801 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 2802 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 2803 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 2804 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 2805 int CPrintDialog::GetCopies(void)const 2806 int CPrintDialogEx::GetCopies(void)const 2807 unsigned long CPropertySection::GetCount(void) 2808 unsigned long CPropertySet::GetCount(void) 2809 int CFileFind::GetCreationTime(ATL::CTime &)const 2810 int CFileFind::GetCreationTime(_FILETIME *)const 2811 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 2812 int CGopherFileFind::GetCreationTime(_FILETIME *)const 2813 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 2814 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 2815 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 2816 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 2817 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 2818 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 2819 ATL::CStringT > > CDaoRecordset::GetCurrentIndex(void) 2820 tagMSG const * CWnd::GetCurrentMessage(void) 2821 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 2822 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 2823 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 2824 IUnknown * CDataBoundProperty::GetCursor(void) 2825 IUnknown * CDataSourceControl::GetCursor(void) 2826 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 2827 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 2828 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 2829 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 2830 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 2831 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 2832 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 2833 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 2834 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2835 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2836 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2837 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 2838 void CDaoRecordset::GetDataAndFixupNulls(void) 2839 short CDaoWorkspace::GetDatabaseCount(void) 2840 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 2841 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 2842 ATL::CStringT > > CDatabase::GetDatabaseName(void)const 2843 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 2844 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2845 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2846 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2847 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 2848 CNoTrackObject * CThreadLocalObject::GetDataNA(void) 2849 IDataObject * COleServerItem::GetDataObject(void) 2850 COleControl::CControlDataSource * COleControl::GetDataSource(void) 2851 ATL::COleDateTime CDaoQueryDef::GetDateCreated(void) 2852 ATL::COleDateTime CDaoRecordset::GetDateCreated(void) 2853 ATL::COleDateTime CDaoTableDef::GetDateCreated(void) 2854 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated(void) 2855 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated(void) 2856 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated(void) 2857 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 2858 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 2859 HACCEL__ * CDocument::GetDefaultAccelerator(void) 2860 HACCEL__ * CFrameWnd::GetDefaultAccelerator(void) 2861 HACCEL__ * COleServerDoc::GetDefaultAccelerator(void) 2862 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 2863 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 2864 ATL::CStringT > > CRecordset::GetDefaultConnect(void) 2865 ATL::CStringT > > CDaoRecordset::GetDefaultDBName(void) 2866 short CRecordset::GetDefaultFieldType(short) 2867 HMENU__ * CDocument::GetDefaultMenu(void) 2868 HMENU__ * COleServerDoc::GetDefaultMenu(void) 2869 int CPrintDialog::GetDefaults(void) 2870 int CPrintDialogEx::GetDefaults(void) 2871 ATL::CStringT > > CDaoRecordset::GetDefaultSQL(void) 2872 ATL::CStringT > > CRecordset::GetDefaultSQL(void) 2873 unsigned long COccManager::GetDefBtnCode(CWnd *) 2874 unsigned long COleControlSite::GetDefBtnCode(void) 2875 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 2876 ATL::CStringT > > CPageSetupDialog::GetDeviceName(void)const 2877 ATL::CStringT > > CPrintDialog::GetDeviceName(void)const 2878 ATL::CStringT > > CPrintDialogEx::GetDeviceName(void)const 2879 CPoint CScrollView::GetDeviceScrollPosition(void)const 2880 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 2881 _devicemodeW * CPageSetupDialog::GetDevMode(void)const 2882 _devicemodeW * CPrintDialog::GetDevMode(void)const 2883 _devicemodeW * CPrintDialogEx::GetDevMode(void)const 2884 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 2885 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 2886 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 2887 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 2888 DHtmlEventMapEntry const * GetDHtmlEventMap(void) 2889 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap(void) 2890 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap(void) 2891 int CCmdTarget::GetDispatchIID(_GUID *) 2892 int COleControl::GetDispatchIID(_GUID *) 2893 AFX_DISPMAP const * CCmdTarget::GetDispatchMap(void)const 2894 AFX_DISPMAP const * COleControlContainer::GetDispatchMap(void)const 2895 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 2896 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 2897 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 2898 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 2899 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 2900 int COleControlSite::GetDlgCtrlID(void)const 2901 int CWnd::GetDlgCtrlID(void)const 2902 CWnd * COleControlContainer::GetDlgItem(int)const 2903 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 2904 CWnd * CWnd::GetDlgItem(int)const 2905 void CWnd::GetDlgItem(int,HWND__ * *)const 2906 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 2907 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 2908 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 2909 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 2910 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 2911 CDockBar * CDockContext::GetDockBar(unsigned long) 2912 CControlBar * CDockBar::GetDockedControlBar(int)const 2913 int CDockBar::GetDockedCount(void)const 2914 int CDockBar::GetDockedVisibleCount(void)const 2915 CFrameWnd * CControlBar::GetDockingFrame(void)const 2916 void CFrameWnd::GetDockState(CDockState &)const 2917 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 2918 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 2919 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 2920 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 2921 int CDocManager::GetDocumentCount(void) 2922 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 2923 ATL::CStringT > > CPageSetupDialog::GetDriverName(void)const 2924 ATL::CStringT > > CPrintDialog::GetDriverName(void)const 2925 ATL::CStringT > > CPrintDialogEx::GetDriverName(void)const 2926 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 2927 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 2928 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 2929 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 2930 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 2931 IUnknown * CWnd::GetDSCCursor(void) 2932 short CDaoRecordset::GetEditMode(void) 2933 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 2934 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 2935 void COleSafeArray::GetElement(long *,void *) 2936 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 2937 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 2938 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 2939 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 2940 COleServerItem * COleServerDoc::GetEmbeddedItem(void) 2941 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 2942 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 2943 int COleControl::GetEnabled(void) 2944 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 2945 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 2946 int ATL::CStringT > >::GetEnvironmentVariableW(wchar_t const *) 2947 int ATL::CStringT > >::GetEnvironmentVariableW(char const *) 2948 short CDaoException::GetErrorCount(void) 2949 void CDaoException::GetErrorInfo(int) 2950 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2951 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2952 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2953 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 2954 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2955 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2956 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2957 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2958 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2959 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 2960 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 2961 int COleControlSite::GetEventIID(_GUID *) 2962 AFX_EVENTMAP const * COleControl::GetEventMap(void)const 2963 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 2964 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 2965 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 2966 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap(void)const 2967 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap(void)const 2968 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap(void)const 2969 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap(void)const 2970 unsigned long COleControlSite::GetExStyle(void)const 2971 unsigned long CWnd::GetExStyle(void)const 2972 IDispatch * COleControl::GetExtendedControl(void) 2973 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 2974 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 2975 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 2976 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 2977 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 2978 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 2979 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 2980 long CBrowserControlSite::GetExternal(IDispatch * *) 2981 long CDHtmlDialog::GetExternal(IDispatch * *) 2982 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 2983 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 2984 int COleControl::GetExtraConnectionPoints(CPtrArray *) 2985 short CDaoQueryDef::GetFieldCount(void) 2986 short CDaoRecordset::GetFieldCount(void) 2987 short CDaoTableDef::GetFieldCount(void) 2988 int CDaoRecordset::GetFieldIndex(void *) 2989 short CRecordset::GetFieldIndexByName(wchar_t const *) 2990 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 2991 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 2992 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 2993 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 2994 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 2995 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 2996 unsigned long CDaoRecordset::GetFieldLength(int) 2997 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 2998 unsigned char CRecordset::GetFieldStatus(unsigned long) 2999 COleVariant CDaoRecordset::GetFieldValue(int) 3000 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 3001 void CDaoRecordset::GetFieldValue(int,COleVariant &) 3002 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 3003 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3004 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 3005 void CRecordset::GetFieldValue(short,CDBVariant &,short) 3006 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 3007 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 3008 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 3009 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 3010 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 3011 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 3012 ATL::CStringT > > CFileDialog::GetFileExt(void)const 3013 ATL::CStringT > > CFile::GetFileName(void)const 3014 ATL::CStringT > > CFileDialog::GetFileName(void)const 3015 ATL::CStringT > > CFileFind::GetFileName(void)const 3016 ATL::CStringT > > CGopherFileFind::GetFileName(void)const 3017 ATL::CStringT > > CFile::GetFilePath(void)const 3018 ATL::CStringT > > CFileFind::GetFilePath(void)const 3019 ATL::CStringT > > CGopherFileFind::GetFilePath(void)const 3020 ATL::CStringT > > CFile::GetFileTitle(void)const 3021 ATL::CStringT > > CFileDialog::GetFileTitle(void)const 3022 ATL::CStringT > > CFileFind::GetFileTitle(void)const 3023 ATL::CStringT > > CGopherFileFind::GetFileTitle(void)const 3024 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 3025 ATL::CStringT > > CFileFind::GetFileURL(void)const 3026 ATL::CStringT > > CFtpFileFind::GetFileURL(void)const 3027 ATL::CStringT > > CGopherFileFind::GetFileURL(void)const 3028 ATL::CStringT > > CHttpFile::GetFileURL(void)const 3029 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 3030 __POSITION * CMultiDocTemplate::GetFirstDocPosition(void)const 3031 __POSITION * CSingleDocTemplate::GetFirstDocPosition(void)const 3032 __POSITION * CDocManager::GetFirstDocTemplatePosition(void)const 3033 __POSITION * CWinApp::GetFirstDocTemplatePosition(void)const 3034 CFrameWnd * COleDocument::GetFirstFrame(void) 3035 __POSITION * CDocument::GetFirstViewPosition(void)const 3036 CWnd * COleControl::GetFocus(void) 3037 long COleControlSite::XOleIPSite::GetFocus(void) 3038 ATL::CStringT > > CFileDialog::GetFolderPath(void)const 3039 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 3040 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 3041 IFontDisp * COleControl::GetFont(void) 3042 IFontDisp * CFontHolder::GetFontDispatch(void) 3043 HFONT__ * CFontHolder::GetFontHandle(long,long) 3044 HFONT__ * CFontHolder::GetFontHandle(void) 3045 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 3046 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 3047 unsigned long COleControl::GetForeColor(void) 3048 _GUID CPropertySection::GetFormatID(void) 3049 unsigned short CPropertySet::GetFormatVersion(void) 3050 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 3051 ATL::CStringT > > CHtmlView::GetFullName(void)const 3052 int CHtmlView::GetFullScreen(void)const 3053 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 3054 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 3055 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 3056 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 3057 CBrush * CDC::GetHalftoneBrush(void) 3058 unsigned int CRectTracker::GetHandleMask(void)const 3059 void CRectTracker::GetHandleRect(int,CRect *)const 3060 int CRectTracker::GetHandleSize(tagRECT const *)const 3061 CHeaderCtrl * CListCtrl::GetHeaderCtrl(void)const 3062 long CHtmlView::GetHeight(void)const 3063 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 3064 void CSplitterWnd::GetHitRect(int,CRect &) 3065 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 3066 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 3067 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 3068 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 3069 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName(void)const 3070 IDispatch * CHtmlView::GetHtmlDocument(void)const 3071 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 3072 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 3073 unsigned int COleControl::GetHwnd(void) 3074 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 3075 HICON__ * COleClientItem::GetIconFromRegistry(void)const 3076 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 3077 void * COleClientItem::GetIconicMetafile(void) 3078 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 3079 unsigned long CProperty::GetID(void) 3080 int CPropertySection::GetID(wchar_t const *,unsigned long *) 3081 IDataObject * COleDataObject::GetIDataObject(int) 3082 IDispatch * CCmdTarget::GetIDispatch(int) 3083 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3084 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3085 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3086 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3087 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3088 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3089 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 3090 IFileDialogCustomize * CFileDialog::GetIFileDialogCustomize(void) 3091 IFileOpenDialog * CFileDialog::GetIFileOpenDialog(void) 3092 IFileSaveDialog * CFileDialog::GetIFileSaveDialog(void) 3093 _GUID const & COleControl::XEventConnPt::GetIID(void) 3094 CImageList * CReBarCtrl::GetImageList(void)const 3095 short CDaoRecordset::GetIndexCount(void) 3096 short CDaoTableDef::GetIndexCount(void) 3097 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3098 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 3099 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 3100 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 3101 ATL::CStringT > > CDaoWorkspace::GetIniPath(void) 3102 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 3103 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 3104 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem(void)const 3105 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 3106 HMENU__ * COleIPFrameWnd::GetInPlaceMenu(void) 3107 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 3108 CWnd * COleClientItem::GetInPlaceWindow(void) 3109 void CSplitterWnd::GetInsideRect(CRect &)const 3110 IUnknown * CCmdTarget::GetInterface(void const *) 3111 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 3112 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 3113 IUnknown * COleControl::GetInterfaceHook(void const *) 3114 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 3115 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap(void)const 3116 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap(void)const 3117 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap(void)const 3118 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap(void)const 3119 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap(void)const 3120 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap(void)const 3121 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap(void)const 3122 AFX_INTERFACEMAP const * CFileDialog::GetInterfaceMap(void)const 3123 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap(void)const 3124 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap(void)const 3125 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap(void)const 3126 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap(void)const 3127 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap(void)const 3128 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap(void)const 3129 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap(void)const 3130 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap(void)const 3131 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap(void)const 3132 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap(void)const 3133 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap(void)const 3134 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap(void)const 3135 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap(void)const 3136 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap(void)const 3137 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap(void)const 3138 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap(void)const 3139 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap(void)const 3140 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap(void)const 3141 IRichEditOle * CRichEditCtrl::GetIRichEditOle(void)const 3142 int CDaoWorkspace::GetIsolateODBCTrans(void) 3143 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 3144 void COleServerDoc::GetItemClipRect(tagRECT *)const 3145 unsigned long CListCtrl::GetItemData(int)const 3146 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 3147 int CTreeCtrl::GetItemExpandedImageIndex(_TREEITEM *)const 3148 unsigned int CStatusBar::GetItemID(int)const 3149 unsigned int CToolBar::GetItemID(int)const 3150 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 3151 void COleClientItem::GetItemName(wchar_t *)const 3152 void COleClientItem::GetItemName(wchar_t *,unsigned int)const 3153 int CTreeCtrl::GetItemPartRect(_TREEITEM *,enum _TVITEMPART,tagRECT *) 3154 void COleServerDoc::GetItemPosition(tagRECT *)const 3155 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 3156 void CStatusBar::GetItemRect(int,tagRECT *)const 3157 void CToolBar::GetItemRect(int,tagRECT *)const 3158 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 3159 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 3160 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 3161 unsigned int CTreeCtrl::GetItemStateEx(_TREEITEM *)const 3162 void COleClientItem::GetItemStorage(void) 3163 void COleClientItem::GetItemStorageCompound(void) 3164 void COleClientItem::GetItemStorageFlat(void) 3165 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 3166 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 3167 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 3168 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 3169 int CFileFind::GetLastAccessTime(ATL::CTime &)const 3170 int CFileFind::GetLastAccessTime(_FILETIME *)const 3171 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 3172 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 3173 COleVariant CDaoRecordset::GetLastModifiedBookmark(void) 3174 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 3175 int CFileFind::GetLastWriteTime(ATL::CTime &)const 3176 int CFileFind::GetLastWriteTime(_FILETIME *)const 3177 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 3178 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 3179 unsigned long CDC::GetLayout(void)const 3180 long CRecordset::GetLBFetchSize(long) 3181 void COleSafeArray::GetLBound(unsigned long,long *) 3182 long CRecordset::GetLBReallocSize(long) 3183 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 3184 long CHtmlView::GetLeft(void)const 3185 int ATL::CSimpleStringT::GetLength(void)const 3186 int ATL::CSimpleStringT::GetLength(void)const 3187 unsigned __int64 CFile::GetLength(void)const 3188 unsigned __int64 CFileFind::GetLength(void)const 3189 unsigned __int64 CGopherFileFind::GetLength(void)const 3190 unsigned __int64 CInternetFile::GetLength(void)const 3191 unsigned __int64 CMemFile::GetLength(void)const 3192 unsigned __int64 COleStreamFile::GetLength(void)const 3193 unsigned __int64 CSocketFile::GetLength(void)const 3194 unsigned __int64 CStdioFile::GetLength(void)const 3195 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 3196 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 3197 int CRichEditCtrl::GetLine(int,wchar_t *)const 3198 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 3199 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 3200 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 3201 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 3202 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 3203 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions(void) 3204 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 3205 CPtrList * CPropertySection::GetList(void) 3206 CPtrList * CPropertySet::GetList(void) 3207 ATL::CStringT > > CHtmlView::GetLocationName(void)const 3208 ATL::CStringT > > CHtmlView::GetLocationURL(void)const 3209 CGopherLocator CGopherFileFind::GetLocator(void)const 3210 int CDaoRecordset::GetLockingMode(void) 3211 short CDaoWorkspace::GetLoginTimeout(void) 3212 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 3213 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 3214 long CFieldExchange::GetLongBinarySize(int) 3215 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3216 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 3217 CWnd * CWinThread::GetMainWnd(void) 3218 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 3219 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 3220 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 3221 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 3222 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 3223 int CConnectionPoint::GetMaxConnections(void) 3224 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame(void) 3225 CMenu * CFrameWnd::GetMenu(void)const 3226 CMenu * CWnd::GetMenu(void)const 3227 int CHtmlView::GetMenuBar(void)const 3228 int CFrameWnd::GetMenuBarInfo(long,long,tagMENUBARINFO *)const 3229 unsigned long CFrameWnd::GetMenuBarState(void)const 3230 unsigned long CFrameWnd::GetMenuBarVisibility(void)const 3231 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 3232 CWnd * CFrameWnd::GetMessageBar(void) 3233 CWnd * CMDIChildWnd::GetMessageBar(void) 3234 AFX_MSGMAP const * CCheckListBox::GetMessageMap(void)const 3235 AFX_MSGMAP const * CCmdTarget::GetMessageMap(void)const 3236 AFX_MSGMAP const * CCommonDialog::GetMessageMap(void)const 3237 AFX_MSGMAP const * CControlBar::GetMessageMap(void)const 3238 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap(void)const 3239 AFX_MSGMAP const * CCtrlView::GetMessageMap(void)const 3240 AFX_MSGMAP const * CDaoRecordView::GetMessageMap(void)const 3241 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap(void)const 3242 AFX_MSGMAP const * CDialog::GetMessageMap(void)const 3243 AFX_MSGMAP const * CDialogBar::GetMessageMap(void)const 3244 AFX_MSGMAP const * CDockBar::GetMessageMap(void)const 3245 AFX_MSGMAP const * CDocObjectServer::GetMessageMap(void)const 3246 AFX_MSGMAP const * CDocument::GetMessageMap(void)const 3247 AFX_MSGMAP const * CEditView::GetMessageMap(void)const 3248 AFX_MSGMAP const * CFormView::GetMessageMap(void)const 3249 AFX_MSGMAP const * CFrameWnd::GetMessageMap(void)const 3250 AFX_MSGMAP const * CHtmlEditView::GetMessageMap(void)const 3251 AFX_MSGMAP const * CHtmlView::GetMessageMap(void)const 3252 AFX_MSGMAP const * CListCtrl::GetMessageMap(void)const 3253 AFX_MSGMAP const * CListView::GetMessageMap(void)const 3254 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap(void)const 3255 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap(void)const 3256 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap(void)const 3257 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap(void)const 3258 AFX_MSGMAP const * COleControl::GetMessageMap(void)const 3259 AFX_MSGMAP const * COleDBRecordView::GetMessageMap(void)const 3260 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap(void)const 3261 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap(void)const 3262 AFX_MSGMAP const * COlePropertyPage::GetMessageMap(void)const 3263 AFX_MSGMAP const * COleResizeBar::GetMessageMap(void)const 3264 AFX_MSGMAP const * COleServerDoc::GetMessageMap(void)const 3265 AFX_MSGMAP const * CPreviewView::GetMessageMap(void)const 3266 AFX_MSGMAP const * CPrintDialog::GetMessageMap(void)const 3267 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap(void)const 3268 AFX_MSGMAP const * CPropertyPage::GetMessageMap(void)const 3269 AFX_MSGMAP const * CPropertySheet::GetMessageMap(void)const 3270 AFX_MSGMAP const * CReBar::GetMessageMap(void)const 3271 AFX_MSGMAP const * CRecordView::GetMessageMap(void)const 3272 AFX_MSGMAP const * CRichEditView::GetMessageMap(void)const 3273 AFX_MSGMAP const * CScrollView::GetMessageMap(void)const 3274 AFX_MSGMAP const * CSocketWnd::GetMessageMap(void)const 3275 AFX_MSGMAP const * CSplitButton::GetMessageMap(void)const 3276 AFX_MSGMAP const * CSplitterWnd::GetMessageMap(void)const 3277 AFX_MSGMAP const * CStatusBar::GetMessageMap(void)const 3278 AFX_MSGMAP const * CTabCtrl::GetMessageMap(void)const 3279 AFX_MSGMAP const * CToolBar::GetMessageMap(void)const 3280 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap(void)const 3281 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap(void)const 3282 AFX_MSGMAP const * CTreeCtrl::GetMessageMap(void)const 3283 AFX_MSGMAP const * CTreeView::GetMessageMap(void)const 3284 AFX_MSGMAP const * CView::GetMessageMap(void)const 3285 AFX_MSGMAP const * CWinApp::GetMessageMap(void)const 3286 AFX_MSGMAP const * CWnd::GetMessageMap(void)const 3287 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 3288 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 3289 long CDataSourceControl::GetMetaData(void) 3290 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3291 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 3292 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3293 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3294 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3295 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 3296 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 3297 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 3298 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 3299 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 3300 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 3301 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3302 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3303 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3304 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3305 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3306 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 3307 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 3308 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 3309 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 3310 ATL::CStringT > > CDaoDatabase::GetName(void) 3311 ATL::CStringT > > CDaoQueryDef::GetName(void) 3312 ATL::CStringT > > CDaoRecordset::GetName(void) 3313 ATL::CStringT > > CDaoTableDef::GetName(void) 3314 ATL::CStringT > > CDaoWorkspace::GetName(void) 3315 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 3316 unsigned long COleClientItem::GetNewItemNumber(void) 3317 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 3318 CDataBoundProperty * CDataBoundProperty::GetNext(void) 3319 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 3320 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 3321 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 3322 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 3323 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 3324 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 3325 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 3326 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 3327 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 3328 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 3329 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 3330 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 3331 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 3332 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 3333 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 3334 int COleDataObject::GetNextFormat(tagFORMATETC *) 3335 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 3336 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 3337 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 3338 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 3339 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 3340 CView * CDocument::GetNextView(__POSITION * &)const 3341 ATL::CStringData * CAfxStringMgr::GetNilString(void) 3342 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 3343 void CCmdTarget::GetNotSupported(void) 3344 void COleControl::GetNotSupported(void) 3345 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 3346 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3347 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 3348 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 3349 unsigned int CArchive::GetObjectSchema(void) 3350 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 3351 ATL::CStringT > > CHttpFile::GetObjectW(void)const 3352 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 3353 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo(void) 3354 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo(void) 3355 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo(void) 3356 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 3357 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 3358 short CDaoQueryDef::GetODBCTimeout(void) 3359 int CHtmlView::GetOffline(void)const 3360 tagOFNW & CFileDialog::GetOFN(void) 3361 tagOFNW const & CFileDialog::GetOFN(void)const 3362 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 3363 IOleObject * COleServerItem::GetOleObject(void) 3364 unsigned long COleSafeArray::GetOneDimSize(void) 3365 int CDocManager::GetOpenDocumentCount(void) 3366 int CWinApp::GetOpenDocumentCount(void) 3367 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 3368 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 3369 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 3370 int CHeaderCtrl::GetOrderArray(int *,int)const 3371 unsigned long CPropertySet::GetOSVersion(void) 3372 CWnd * COleControl::GetOuterWindow(void)const 3373 int COleDocObjectItem::GetPageCount(long *,long *) 3374 int CPropertySheet::GetPageCount(void)const 3375 int CPropertySheet::GetPageIndex(CPropertyPage *) 3376 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 3377 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 3378 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 3379 IPropertyPageSite * COlePropertyPage::GetPageSite(void) 3380 CWnd * CSplitterWnd::GetPane(int,int)const 3381 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 3382 unsigned int CStatusBar::GetPaneStyle(int)const 3383 ATL::CStringT > > CStatusBar::GetPaneText(int)const 3384 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 3385 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 3386 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 3387 PARAFORMAT2 & CRichEditView::GetParaFormatSelection(void) 3388 short CDaoQueryDef::GetParameterCount(void) 3389 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 3390 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 3391 COleVariant CDaoQueryDef::GetParamValue(int) 3392 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 3393 COleVariant CDaoRecordset::GetParamValue(int) 3394 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 3395 IDispatch * CHtmlView::GetParentBrowser(void)const 3396 CFrameWnd * CWnd::GetParentFrame(void)const 3397 CWnd * CWnd::GetParentOwner(void)const 3398 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 3399 ATL::CStringT > > CFileDialog::GetPathName(void)const 3400 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 3401 float CDaoRecordset::GetPercentPosition(void) 3402 IPictureDisp * CPictureHolder::GetPictureDispatch(void) 3403 ATL::CStringT > > CPageSetupDialog::GetPortName(void)const 3404 ATL::CStringT > > CPrintDialog::GetPortName(void)const 3405 ATL::CStringT > > CPrintDialogEx::GetPortName(void)const 3406 unsigned __int64 CFile::GetPosition(void)const 3407 unsigned __int64 CMemFile::GetPosition(void)const 3408 unsigned __int64 COleStreamFile::GetPosition(void)const 3409 unsigned __int64 CSocketFile::GetPosition(void)const 3410 unsigned __int64 CStdioFile::GetPosition(void)const 3411 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 3412 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 3413 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 3414 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 3415 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 3416 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 3417 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 3418 CFont * CEditView::GetPrinterFont(void)const 3419 long CAsyncMonikerFile::GetPriority(void)const 3420 void * CThemeHelper::GetProc(char const *,void *) 3421 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 3422 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 3423 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 3424 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 3425 COleVariant CHtmlView::GetProperty(wchar_t const *) 3426 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 3427 void COleControlSite::GetProperty(long,unsigned short,void *)const 3428 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 3429 CProperty * CPropertySection::GetProperty(unsigned long) 3430 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 3431 void CWnd::GetProperty(long,unsigned short,void *)const 3432 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 3433 _GUID * COleControl::GetPropPageIDs(unsigned long &) 3434 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 3435 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 3436 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 3437 int COlePropertyPage::GetPropText(wchar_t const *,short *) 3438 int COlePropertyPage::GetPropText(wchar_t const *,int *) 3439 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 3440 int COlePropertyPage::GetPropText(wchar_t const *,long *) 3441 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 3442 int COlePropertyPage::GetPropText(wchar_t const *,float *) 3443 int COlePropertyPage::GetPropText(wchar_t const *,double *) 3444 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 3445 _PROPSHEETPAGEW & CPropertyPage::GetPSP(void) 3446 _PROPSHEETPAGEW const & CPropertyPage::GetPSP(void)const 3447 short CDaoDatabase::GetQueryDefCount(void) 3448 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 3449 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 3450 short CDaoDatabase::GetQueryTimeout(void) 3451 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3452 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3453 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3454 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 3455 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 3456 void CProgressCtrl::GetRange(int &,int &)const 3457 void CSliderCtrl::GetRange(int &,int &)const 3458 void CSpinButtonCtrl::GetRange(int &,int &)const 3459 void * CProperty::GetRawValue(void) 3460 enum tagREADYSTATE CHtmlView::GetReadyState(void)const 3461 long COleControl::GetReadyState(void) 3462 long CDaoRecordset::GetRecordCount(void) 3463 long CDaoTableDef::GetRecordCount(void) 3464 long CDaoDatabase::GetRecordsAffected(void) 3465 long CDaoQueryDef::GetRecordsAffected(void) 3466 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 3467 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 3468 int COleControl::GetRectInContainer(tagRECT *) 3469 int CHtmlView::GetRegisterAsBrowser(void)const 3470 int CHtmlView::GetRegisterAsDropTarget(void)const 3471 short CDaoDatabase::GetRelationCount(void) 3472 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 3473 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 3474 int CDaoQueryDef::GetReturnsRecords(void) 3475 ATL::CStringT > > CFileFind::GetRoot(void)const 3476 ATL::CStringT > > CGopherFileFind::GetRoot(void)const 3477 CFrameWnd * CCmdTarget::GetRoutingFrame(void) 3478 CFrameWnd * CCmdTarget::GetRoutingFrame_(void) 3479 CView * CCmdTarget::GetRoutingView(void) 3480 CView * CCmdTarget::GetRoutingView_(void) 3481 void CSplitterWnd::GetRowInfo(int,int &,int &)const 3482 CRuntime* CAnimateCtrl::GetRuntimeClass(void)const 3483 CRuntime* CArchiveException::GetRuntimeClass(void)const 3484 CRuntime* CAsyncMonikerFile::GetRuntimeClass(void)const 3485 CRuntime* CAsyncSocket::GetRuntimeClass(void)const 3486 CRuntime* CBitmap::GetRuntimeClass(void)const 3487 CRuntime* CBitmapButton::GetRuntimeClass(void)const 3488 CRuntime* CBrush::GetRuntimeClass(void)const 3489 CRuntime* CButton::GetRuntimeClass(void)const 3490 CRuntime* CByteArray::GetRuntimeClass(void)const 3491 CRuntime* CCachedDataPathProperty::GetRuntimeClass(void)const 3492 CRuntime* CCheckListBox::GetRuntimeClass(void)const 3493 CRuntime* CClientDC::GetRuntimeClass(void)const 3494 CRuntime* CCmdTarget::GetRuntimeClass(void)const 3495 CRuntime* CColorDialog::GetRuntimeClass(void)const 3496 CRuntime* CComboBox::GetRuntimeClass(void)const 3497 CRuntime* CComboBoxEx::GetRuntimeClass(void)const 3498 CRuntime* CCommonDialog::GetRuntimeClass(void)const 3499 CRuntime* CControlBar::GetRuntimeClass(void)const 3500 CRuntime* CCriticalSection::GetRuntimeClass(void)const 3501 CRuntime* CCtrlView::GetRuntimeClass(void)const 3502 CRuntime* CDaoDatabase::GetRuntimeClass(void)const 3503 CRuntime* CDaoException::GetRuntimeClass(void)const 3504 CRuntime* CDaoQueryDef::GetRuntimeClass(void)const 3505 CRuntime* CDaoRecordset::GetRuntimeClass(void)const 3506 CRuntime* CDaoRecordView::GetRuntimeClass(void)const 3507 CRuntime* CDaoTableDef::GetRuntimeClass(void)const 3508 CRuntime* CDaoWorkspace::GetRuntimeClass(void)const 3509 CRuntime* CDatabase::GetRuntimeClass(void)const 3510 CRuntime* CDataPathProperty::GetRuntimeClass(void)const 3511 CRuntime* CDateTimeCtrl::GetRuntimeClass(void)const 3512 CRuntime* CDBException::GetRuntimeClass(void)const 3513 CRuntime* CDC::GetRuntimeClass(void)const 3514 CRuntime* CDHtmlDialog::GetRuntimeClass(void)const 3515 CRuntime* CDialog::GetRuntimeClass(void)const 3516 CRuntime* CDialogBar::GetRuntimeClass(void)const 3517 CRuntime* CDocItem::GetRuntimeClass(void)const 3518 CRuntime* CDockBar::GetRuntimeClass(void)const 3519 CRuntime* CDockState::GetRuntimeClass(void)const 3520 CRuntime* CDocManager::GetRuntimeClass(void)const 3521 CRuntime* CDocObjectServer::GetRuntimeClass(void)const 3522 CRuntime* CDocObjectServerItem::GetRuntimeClass(void)const 3523 CRuntime* CDocTemplate::GetRuntimeClass(void)const 3524 CRuntime* CDocument::GetRuntimeClass(void)const 3525 CRuntime* CDragListBox::GetRuntimeClass(void)const 3526 CRuntime* CDWordArray::GetRuntimeClass(void)const 3527 CRuntime* CDynLinkLibrary::GetRuntimeClass(void)const 3528 CRuntime* CEdit::GetRuntimeClass(void)const 3529 CRuntime* CEditView::GetRuntimeClass(void)const 3530 CRuntime* CEvent::GetRuntimeClass(void)const 3531 CRuntime* CException::GetRuntimeClass(void)const 3532 CRuntime* CFile::GetRuntimeClass(void)const 3533 CRuntime* CFileDialog::GetRuntimeClass(void)const 3534 CRuntime* CFileException::GetRuntimeClass(void)const 3535 CRuntime* CFileFind::GetRuntimeClass(void)const 3536 CRuntime* CFindReplaceDialog::GetRuntimeClass(void)const 3537 CRuntime* CFont::GetRuntimeClass(void)const 3538 CRuntime* CFontDialog::GetRuntimeClass(void)const 3539 CRuntime* CFormView::GetRuntimeClass(void)const 3540 CRuntime* CFrameWnd::GetRuntimeClass(void)const 3541 CRuntime* CFtpConnection::GetRuntimeClass(void)const 3542 CRuntime* CFtpFileFind::GetRuntimeClass(void)const 3543 CRuntime* CGdiObject::GetRuntimeClass(void)const 3544 CRuntime* CGopherConnection::GetRuntimeClass(void)const 3545 CRuntime* CGopherFile::GetRuntimeClass(void)const 3546 CRuntime* CGopherFileFind::GetRuntimeClass(void)const 3547 CRuntime* CHeaderCtrl::GetRuntimeClass(void)const 3548 CRuntime* CHotKeyCtrl::GetRuntimeClass(void)const 3549 CRuntime* CHtmlEditDoc::GetRuntimeClass(void)const 3550 CRuntime* CHtmlEditView::GetRuntimeClass(void)const 3551 CRuntime* CHtmlView::GetRuntimeClass(void)const 3552 CRuntime* CHttpConnection::GetRuntimeClass(void)const 3553 CRuntime* CHttpFile::GetRuntimeClass(void)const 3554 CRuntime* CImageList::GetRuntimeClass(void)const 3555 CRuntime* CInternetConnection::GetRuntimeClass(void)const 3556 CRuntime* CInternetException::GetRuntimeClass(void)const 3557 CRuntime* CInternetFile::GetRuntimeClass(void)const 3558 CRuntime* CInternetSession::GetRuntimeClass(void)const 3559 CRuntime* CInvalidArgException::GetRuntimeClass(void)const 3560 CRuntime* CIPAddressCtrl::GetRuntimeClass(void)const 3561 CRuntime* CLinkCtrl::GetRuntimeClass(void)const 3562 CRuntime* CListBox::GetRuntimeClass(void)const 3563 CRuntime* CListCtrl::GetRuntimeClass(void)const 3564 CRuntime* CListView::GetRuntimeClass(void)const 3565 CRuntime* CLongBinary::GetRuntimeClass(void)const 3566 CRuntime* CMapPtrToPtr::GetRuntimeClass(void)const 3567 CRuntime* CMapPtrToWord::GetRuntimeClass(void)const 3568 CRuntime* CMapStringToOb::GetRuntimeClass(void)const 3569 CRuntime* CMapStringToPtr::GetRuntimeClass(void)const 3570 CRuntime* CMapStringToString::GetRuntimeClass(void)const 3571 CRuntime* CMapWordToOb::GetRuntimeClass(void)const 3572 CRuntime* CMapWordToPtr::GetRuntimeClass(void)const 3573 CRuntime* CMDIChildWnd::GetRuntimeClass(void)const 3574 CRuntime* CMDIFrameWnd::GetRuntimeClass(void)const 3575 CRuntime* CMemFile::GetRuntimeClass(void)const 3576 CRuntime* CMemoryException::GetRuntimeClass(void)const 3577 CRuntime* CMenu::GetRuntimeClass(void)const 3578 CRuntime* CMetaFileDC::GetRuntimeClass(void)const 3579 CRuntime* CMiniDockFrameWnd::GetRuntimeClass(void)const 3580 CRuntime* CMiniFrameWnd::GetRuntimeClass(void)const 3581 CRuntime* CMonikerFile::GetRuntimeClass(void)const 3582 CRuntime* CMonthCalCtrl::GetRuntimeClass(void)const 3583 CRuntime* CMultiDocTemplate::GetRuntimeClass(void)const 3584 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass(void)const 3585 CRuntime* CMutex::GetRuntimeClass(void)const 3586 CRuntime* CNetAddressCtrl::GetRuntimeClass(void)const 3587 CRuntime* CNotSupportedException::GetRuntimeClass(void)const 3588 CRuntime* CObArray::GetRuntimeClass(void)const 3589 CRuntime* CObject::GetRuntimeClass(void)const 3590 CRuntime* CObList::GetRuntimeClass(void)const 3591 CRuntime* COleBusyDialog::GetRuntimeClass(void)const 3592 CRuntime* COleChangeIconDialog::GetRuntimeClass(void)const 3593 CRuntime* COleChangeSourceDialog::GetRuntimeClass(void)const 3594 CRuntime* COleClientItem::GetRuntimeClass(void)const 3595 CRuntime* COleControl::GetRuntimeClass(void)const 3596 CRuntime* COleControlModule::GetRuntimeClass(void)const 3597 CRuntime* COleConvertDialog::GetRuntimeClass(void)const 3598 CRuntime* COleDBRecordView::GetRuntimeClass(void)const 3599 CRuntime* COleDialog::GetRuntimeClass(void)const 3600 CRuntime* COleDispatchException::GetRuntimeClass(void)const 3601 CRuntime* COleDocIPFrameWnd::GetRuntimeClass(void)const 3602 CRuntime* COleDocObjectItem::GetRuntimeClass(void)const 3603 CRuntime* COleDocument::GetRuntimeClass(void)const 3604 CRuntime* COleException::GetRuntimeClass(void)const 3605 CRuntime* COleInsertDialog::GetRuntimeClass(void)const 3606 CRuntime* COleIPFrameWnd::GetRuntimeClass(void)const 3607 CRuntime* COleLinkingDoc::GetRuntimeClass(void)const 3608 CRuntime* COleLinksDialog::GetRuntimeClass(void)const 3609 CRuntime* COleObjectFactory::GetRuntimeClass(void)const 3610 CRuntime* COlePasteSpecialDialog::GetRuntimeClass(void)const 3611 CRuntime* COlePropertiesDialog::GetRuntimeClass(void)const 3612 CRuntime* COlePropertyPage::GetRuntimeClass(void)const 3613 CRuntime* COleResizeBar::GetRuntimeClass(void)const 3614 CRuntime* COleServerDoc::GetRuntimeClass(void)const 3615 CRuntime* COleServerItem::GetRuntimeClass(void)const 3616 CRuntime* COleStreamFile::GetRuntimeClass(void)const 3617 CRuntime* COleUpdateDialog::GetRuntimeClass(void)const 3618 CRuntime* CPagerCtrl::GetRuntimeClass(void)const 3619 CRuntime* CPageSetupDialog::GetRuntimeClass(void)const 3620 CRuntime* CPaintDC::GetRuntimeClass(void)const 3621 CRuntime* CPalette::GetRuntimeClass(void)const 3622 CRuntime* CPen::GetRuntimeClass(void)const 3623 CRuntime* CPreviewDC::GetRuntimeClass(void)const 3624 CRuntime* CPreviewView::GetRuntimeClass(void)const 3625 CRuntime* CPrintDialog::GetRuntimeClass(void)const 3626 CRuntime* CPrintDialogEx::GetRuntimeClass(void)const 3627 CRuntime* CProgressCtrl::GetRuntimeClass(void)const 3628 CRuntime* CPropertyPage::GetRuntimeClass(void)const 3629 CRuntime* CPropertySheet::GetRuntimeClass(void)const 3630 CRuntime* CPtrArray::GetRuntimeClass(void)const 3631 CRuntime* CPtrList::GetRuntimeClass(void)const 3632 CRuntime* CReBar::GetRuntimeClass(void)const 3633 CRuntime* CReBarCtrl::GetRuntimeClass(void)const 3634 CRuntime* CRecordset::GetRuntimeClass(void)const 3635 CRuntime* CRecordView::GetRuntimeClass(void)const 3636 CRuntime* CResourceException::GetRuntimeClass(void)const 3637 CRuntime* CRgn::GetRuntimeClass(void)const 3638 CRuntime* CRichEditCntrItem::GetRuntimeClass(void)const 3639 CRuntime* CRichEditCtrl::GetRuntimeClass(void)const 3640 CRuntime* CRichEditDoc::GetRuntimeClass(void)const 3641 CRuntime* CRichEditView::GetRuntimeClass(void)const 3642 CRuntime* CScrollBar::GetRuntimeClass(void)const 3643 CRuntime* CScrollView::GetRuntimeClass(void)const 3644 CRuntime* CSemaphore::GetRuntimeClass(void)const 3645 CRuntime* CSharedFile::GetRuntimeClass(void)const 3646 CRuntime* CSimpleException::GetRuntimeClass(void)const 3647 CRuntime* CSingleDocTemplate::GetRuntimeClass(void)const 3648 CRuntime* CSliderCtrl::GetRuntimeClass(void)const 3649 CRuntime* CSocket::GetRuntimeClass(void)const 3650 CRuntime* CSocketFile::GetRuntimeClass(void)const 3651 CRuntime* CSpinButtonCtrl::GetRuntimeClass(void)const 3652 CRuntime* CSplitButton::GetRuntimeClass(void)const 3653 CRuntime* CSplitterWnd::GetRuntimeClass(void)const 3654 CRuntime* CStatic::GetRuntimeClass(void)const 3655 CRuntime* CStatusBar::GetRuntimeClass(void)const 3656 CRuntime* CStatusBarCtrl::GetRuntimeClass(void)const 3657 CRuntime* CStdioFile::GetRuntimeClass(void)const 3658 CRuntime* CStringArray::GetRuntimeClass(void)const 3659 CRuntime* CStringList::GetRuntimeClass(void)const 3660 CRuntime* CSyncObject::GetRuntimeClass(void)const 3661 CRuntime* CTabCtrl::GetRuntimeClass(void)const 3662 CRuntime* CToolBar::GetRuntimeClass(void)const 3663 CRuntime* CToolBarCtrl::GetRuntimeClass(void)const 3664 CRuntime* CToolTipCtrl::GetRuntimeClass(void)const 3665 CRuntime* CTreeCtrl::GetRuntimeClass(void)const 3666 CRuntime* CTreeView::GetRuntimeClass(void)const 3667 CRuntime* CUIntArray::GetRuntimeClass(void)const 3668 CRuntime* CUserException::GetRuntimeClass(void)const 3669 CRuntime* CView::GetRuntimeClass(void)const 3670 CRuntime* CWinApp::GetRuntimeClass(void)const 3671 CRuntime* CWindowDC::GetRuntimeClass(void)const 3672 CRuntime* CWindowlessDC::GetRuntimeClass(void)const 3673 CRuntime* CWinThread::GetRuntimeClass(void)const 3674 CRuntime* CWnd::GetRuntimeClass(void)const 3675 CRuntime* CWordArray::GetRuntimeClass(void)const 3676 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 3677 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 3678 unsigned long * CColorDialog::GetSavedCustomColors(void) 3679 ATL::CStringT > > CGopherFileFind::GetScreenName(void)const 3680 CSize CDockState::GetScreenSize(void) 3681 CScrollBar * CView::GetScrollBarCtrl(int)const 3682 CScrollBar * CWnd::GetScrollBarCtrl(int)const 3683 void CScrollView::GetScrollBarSizes(CSize &) 3684 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 3685 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 3686 int CWnd::GetScrollLimit(int) 3687 int CWnd::GetScrollPos(int)const 3688 CPoint CScrollView::GetScrollPosition(void)const 3689 void CWnd::GetScrollRange(int,int *,int *)const 3690 unsigned long CSplitterWnd::GetScrollStyle(void)const 3691 CPropertySection * CPropertySet::GetSection(_GUID) 3692 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 3693 wchar_t const * CPropertySection::GetSectionName(void) 3694 void CRichEditCtrl::GetSel(long &,long &)const 3695 CRichEditCntrItem * CRichEditView::GetSelectedItem(void)const 3696 void CEditView::GetSelectedText(ATL::CStringT > > &)const 3697 void CSliderCtrl::GetSelection(int &,int &)const 3698 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 3699 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 3700 unsigned int COleConvertDialog::GetSelectionType(void)const 3701 unsigned int COleInsertDialog::GetSelectionType(void)const 3702 unsigned int COlePasteSpecialDialog::GetSelectionType(void)const 3703 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 3704 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 3705 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 3706 ATL::CStringT > > CRichEditCtrl::GetSelText(void)const 3707 int CHtmlView::GetSilent(void)const 3708 long CPrintDialogEx::GetSite(_GUID const &,void * *) 3709 unsigned long CPropertySection::GetSize(void) 3710 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 3711 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 3712 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 3713 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 3714 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 3715 CWnd * CSplitterWnd::GetSizingParent(void) 3716 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 3717 int CHtmlView::GetSource(ATL::CStringT > > &) 3718 ATL::CStringT > > CDaoTableDef::GetSourceTableName(void) 3719 ATL::CStringT > > CDaoQueryDef::GetSQL(void) 3720 ATL::CStringT > > CDaoRecordset::GetSQL(void)const 3721 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 3722 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 3723 wchar_t const * CHtmlEditCtrl::GetStartDocument(void) 3724 wchar_t const * CHtmlEditView::GetStartDocument(void) 3725 __POSITION * CConnectionPoint::GetStartPosition(void)const 3726 __POSITION * COleDocument::GetStartPosition(void)const 3727 __POSITION * CRichEditDoc::GetStartPosition(void)const 3728 int CFile::GetStatus(CFileStatus &)const 3729 int CFile::GetStatus(wchar_t const *,CFileStatus &) 3730 int CMemFile::GetStatus(CFileStatus &)const 3731 int COleStreamFile::GetStatus(CFileStatus &)const 3732 int CHtmlView::GetStatusBar(void)const 3733 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 3734 ATL::CStringT > > const COleStreamFile::GetStorageName(void)const 3735 IStream * COleStreamFile::GetStream(void)const 3736 wchar_t const * ATL::CSimpleStringT::GetString(void)const 3737 char const * ATL::CSimpleStringT::GetString(void)const 3738 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 3739 unsigned long COleControlSite::GetStyle(void)const 3740 unsigned long COleControlSiteOrWnd::GetStyle(void)const 3741 unsigned long CWnd::GetStyle(void)const 3742 int CListCtrl::GetSubItemRect(int,int,int,CRect &)const 3743 long (__stdcall** CWnd::GetSuperWndProcAddr(void))(HWND__ *,unsigned int,unsigned int,long) 3744 int CWinApp::GetSysPolicyValue(unsigned long,int *) 3745 short CDaoDatabase::GetTableDefCount(void) 3746 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 3747 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 3748 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 3749 void CListBox::GetText(int,ATL::CStringT > > &)const 3750 wchar_t * COleControl::GetText(void) 3751 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 3752 int CStatusBarCtrl::GetText(wchar_t *,int,int *)const 3753 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 3754 long CRecordset::GetTextLen(short,unsigned long) 3755 int CStatusBarCtrl::GetTextLength(int,int *)const 3756 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 3757 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 3758 int CHtmlView::GetTheaterMode(void)const 3759 long CThemeHelper::GetThemePartSize(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 3760 long CThemeHelper::GetThemePartSizeFail(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 3761 CRuntime* CAnimateCtrl::GetThisClass(void) 3762 CRuntime* CArchiveException::GetThisClass(void) 3763 CRuntime* CAsyncMonikerFile::GetThisClass(void) 3764 CRuntime* CAsyncSocket::GetThisClass(void) 3765 CRuntime* CBitmap::GetThisClass(void) 3766 CRuntime* CBitmapButton::GetThisClass(void) 3767 CRuntime* CBrush::GetThisClass(void) 3768 CRuntime* CButton::GetThisClass(void) 3769 CRuntime* CByteArray::GetThisClass(void) 3770 CRuntime* CCachedDataPathProperty::GetThisClass(void) 3771 CRuntime* CCheckListBox::GetThisClass(void) 3772 CRuntime* CClientDC::GetThisClass(void) 3773 CRuntime* CCmdTarget::GetThisClass(void) 3774 CRuntime* CColorDialog::GetThisClass(void) 3775 CRuntime* CComboBox::GetThisClass(void) 3776 CRuntime* CComboBoxEx::GetThisClass(void) 3777 CRuntime* CCommonDialog::GetThisClass(void) 3778 CRuntime* CControlBar::GetThisClass(void) 3779 CRuntime* CCriticalSection::GetThisClass(void) 3780 CRuntime* CCtrlView::GetThisClass(void) 3781 CRuntime* CDaoDatabase::GetThisClass(void) 3782 CRuntime* CDaoException::GetThisClass(void) 3783 CRuntime* CDaoQueryDef::GetThisClass(void) 3784 CRuntime* CDaoRecordset::GetThisClass(void) 3785 CRuntime* CDaoRecordView::GetThisClass(void) 3786 CRuntime* CDaoTableDef::GetThisClass(void) 3787 CRuntime* CDaoWorkspace::GetThisClass(void) 3788 CRuntime* CDatabase::GetThisClass(void) 3789 CRuntime* CDataPathProperty::GetThisClass(void) 3790 CRuntime* CDateTimeCtrl::GetThisClass(void) 3791 CRuntime* CDBException::GetThisClass(void) 3792 CRuntime* CDC::GetThisClass(void) 3793 CRuntime* CDHtmlDialog::GetThisClass(void) 3794 CRuntime* CDialog::GetThisClass(void) 3795 CRuntime* CDialogBar::GetThisClass(void) 3796 CRuntime* CDocItem::GetThisClass(void) 3797 CRuntime* CDockBar::GetThisClass(void) 3798 CRuntime* CDockState::GetThisClass(void) 3799 CRuntime* CDocManager::GetThisClass(void) 3800 CRuntime* CDocObjectServer::GetThisClass(void) 3801 CRuntime* CDocObjectServerItem::GetThisClass(void) 3802 CRuntime* CDocTemplate::GetThisClass(void) 3803 CRuntime* CDocument::GetThisClass(void) 3804 CRuntime* CDragListBox::GetThisClass(void) 3805 CRuntime* CDWordArray::GetThisClass(void) 3806 CRuntime* CDynLinkLibrary::GetThisClass(void) 3807 CRuntime* CEdit::GetThisClass(void) 3808 CRuntime* CEditView::GetThisClass(void) 3809 CRuntime* CEvent::GetThisClass(void) 3810 CRuntime* CException::GetThisClass(void) 3811 CRuntime* CFile::GetThisClass(void) 3812 CRuntime* CFileDialog::GetThisClass(void) 3813 CRuntime* CFileException::GetThisClass(void) 3814 CRuntime* CFileFind::GetThisClass(void) 3815 CRuntime* CFindReplaceDialog::GetThisClass(void) 3816 CRuntime* CFont::GetThisClass(void) 3817 CRuntime* CFontDialog::GetThisClass(void) 3818 CRuntime* CFormView::GetThisClass(void) 3819 CRuntime* CFrameWnd::GetThisClass(void) 3820 CRuntime* CFtpConnection::GetThisClass(void) 3821 CRuntime* CFtpFileFind::GetThisClass(void) 3822 CRuntime* CGdiObject::GetThisClass(void) 3823 CRuntime* CGopherConnection::GetThisClass(void) 3824 CRuntime* CGopherFile::GetThisClass(void) 3825 CRuntime* CGopherFileFind::GetThisClass(void) 3826 CRuntime* CHeaderCtrl::GetThisClass(void) 3827 CRuntime* CHotKeyCtrl::GetThisClass(void) 3828 CRuntime* CHtmlEditDoc::GetThisClass(void) 3829 CRuntime* CHtmlEditView::GetThisClass(void) 3830 CRuntime* CHtmlView::GetThisClass(void) 3831 CRuntime* CHttpConnection::GetThisClass(void) 3832 CRuntime* CHttpFile::GetThisClass(void) 3833 CRuntime* CImageList::GetThisClass(void) 3834 CRuntime* CInternetConnection::GetThisClass(void) 3835 CRuntime* CInternetException::GetThisClass(void) 3836 CRuntime* CInternetFile::GetThisClass(void) 3837 CRuntime* CInternetSession::GetThisClass(void) 3838 CRuntime* CInvalidArgException::GetThisClass(void) 3839 CRuntime* CIPAddressCtrl::GetThisClass(void) 3840 CRuntime* CLinkCtrl::GetThisClass(void) 3841 CRuntime* CListBox::GetThisClass(void) 3842 CRuntime* CListCtrl::GetThisClass(void) 3843 CRuntime* CListView::GetThisClass(void) 3844 CRuntime* CLongBinary::GetThisClass(void) 3845 CRuntime* CMapPtrToPtr::GetThisClass(void) 3846 CRuntime* CMapPtrToWord::GetThisClass(void) 3847 CRuntime* CMapStringToOb::GetThisClass(void) 3848 CRuntime* CMapStringToPtr::GetThisClass(void) 3849 CRuntime* CMapStringToString::GetThisClass(void) 3850 CRuntime* CMapWordToOb::GetThisClass(void) 3851 CRuntime* CMapWordToPtr::GetThisClass(void) 3852 CRuntime* CMDIChildWnd::GetThisClass(void) 3853 CRuntime* CMDIFrameWnd::GetThisClass(void) 3854 CRuntime* CMemFile::GetThisClass(void) 3855 CRuntime* CMemoryException::GetThisClass(void) 3856 CRuntime* CMenu::GetThisClass(void) 3857 CRuntime* CMetaFileDC::GetThisClass(void) 3858 CRuntime* CMiniDockFrameWnd::GetThisClass(void) 3859 CRuntime* CMiniFrameWnd::GetThisClass(void) 3860 CRuntime* CMonikerFile::GetThisClass(void) 3861 CRuntime* CMonthCalCtrl::GetThisClass(void) 3862 CRuntime* CMultiDocTemplate::GetThisClass(void) 3863 CRuntime* CMultiPageDHtmlDialog::GetThisClass(void) 3864 CRuntime* CMutex::GetThisClass(void) 3865 CRuntime* CNetAddressCtrl::GetThisClass(void) 3866 CRuntime* CNotSupportedException::GetThisClass(void) 3867 CRuntime* CObArray::GetThisClass(void) 3868 CRuntime* CObject::GetThisClass(void) 3869 CRuntime* CObList::GetThisClass(void) 3870 CRuntime* COleBusyDialog::GetThisClass(void) 3871 CRuntime* COleChangeIconDialog::GetThisClass(void) 3872 CRuntime* COleChangeSourceDialog::GetThisClass(void) 3873 CRuntime* COleClientItem::GetThisClass(void) 3874 CRuntime* COleControl::GetThisClass(void) 3875 CRuntime* COleControlModule::GetThisClass(void) 3876 CRuntime* COleConvertDialog::GetThisClass(void) 3877 CRuntime* COleDBRecordView::GetThisClass(void) 3878 CRuntime* COleDialog::GetThisClass(void) 3879 CRuntime* COleDispatchException::GetThisClass(void) 3880 CRuntime* COleDocIPFrameWnd::GetThisClass(void) 3881 CRuntime* COleDocObjectItem::GetThisClass(void) 3882 CRuntime* COleDocument::GetThisClass(void) 3883 CRuntime* COleException::GetThisClass(void) 3884 CRuntime* COleInsertDialog::GetThisClass(void) 3885 CRuntime* COleIPFrameWnd::GetThisClass(void) 3886 CRuntime* COleLinkingDoc::GetThisClass(void) 3887 CRuntime* COleLinksDialog::GetThisClass(void) 3888 CRuntime* COleObjectFactory::GetThisClass(void) 3889 CRuntime* COlePasteSpecialDialog::GetThisClass(void) 3890 CRuntime* COlePropertiesDialog::GetThisClass(void) 3891 CRuntime* COlePropertyPage::GetThisClass(void) 3892 CRuntime* COleResizeBar::GetThisClass(void) 3893 CRuntime* COleServerDoc::GetThisClass(void) 3894 CRuntime* COleServerItem::GetThisClass(void) 3895 CRuntime* COleStreamFile::GetThisClass(void) 3896 CRuntime* COleUpdateDialog::GetThisClass(void) 3897 CRuntime* CPagerCtrl::GetThisClass(void) 3898 CRuntime* CPageSetupDialog::GetThisClass(void) 3899 CRuntime* CPaintDC::GetThisClass(void) 3900 CRuntime* CPalette::GetThisClass(void) 3901 CRuntime* CPen::GetThisClass(void) 3902 CRuntime* CPreviewDC::GetThisClass(void) 3903 CRuntime* CPreviewView::GetThisClass(void) 3904 CRuntime* CPrintDialog::GetThisClass(void) 3905 CRuntime* CPrintDialogEx::GetThisClass(void) 3906 CRuntime* CProgressCtrl::GetThisClass(void) 3907 CRuntime* CPropertyPage::GetThisClass(void) 3908 CRuntime* CPropertySheet::GetThisClass(void) 3909 CRuntime* CPtrArray::GetThisClass(void) 3910 CRuntime* CPtrList::GetThisClass(void) 3911 CRuntime* CReBar::GetThisClass(void) 3912 CRuntime* CReBarCtrl::GetThisClass(void) 3913 CRuntime* CRecordset::GetThisClass(void) 3914 CRuntime* CRecordView::GetThisClass(void) 3915 CRuntime* CResourceException::GetThisClass(void) 3916 CRuntime* CRgn::GetThisClass(void) 3917 CRuntime* CRichEditCntrItem::GetThisClass(void) 3918 CRuntime* CRichEditCtrl::GetThisClass(void) 3919 CRuntime* CRichEditDoc::GetThisClass(void) 3920 CRuntime* CRichEditView::GetThisClass(void) 3921 CRuntime* CScrollBar::GetThisClass(void) 3922 CRuntime* CScrollView::GetThisClass(void) 3923 CRuntime* CSemaphore::GetThisClass(void) 3924 CRuntime* CSharedFile::GetThisClass(void) 3925 CRuntime* CSimpleException::GetThisClass(void) 3926 CRuntime* CSingleDocTemplate::GetThisClass(void) 3927 CRuntime* CSliderCtrl::GetThisClass(void) 3928 CRuntime* CSocket::GetThisClass(void) 3929 CRuntime* CSocketFile::GetThisClass(void) 3930 CRuntime* CSpinButtonCtrl::GetThisClass(void) 3931 CRuntime* CSplitButton::GetThisClass(void) 3932 CRuntime* CSplitterWnd::GetThisClass(void) 3933 CRuntime* CStatic::GetThisClass(void) 3934 CRuntime* CStatusBar::GetThisClass(void) 3935 CRuntime* CStatusBarCtrl::GetThisClass(void) 3936 CRuntime* CStdioFile::GetThisClass(void) 3937 CRuntime* CStringArray::GetThisClass(void) 3938 CRuntime* CStringList::GetThisClass(void) 3939 CRuntime* CSyncObject::GetThisClass(void) 3940 CRuntime* CTabCtrl::GetThisClass(void) 3941 CRuntime* CToolBar::GetThisClass(void) 3942 CRuntime* CToolBarCtrl::GetThisClass(void) 3943 CRuntime* CToolTipCtrl::GetThisClass(void) 3944 CRuntime* CTreeCtrl::GetThisClass(void) 3945 CRuntime* CTreeView::GetThisClass(void) 3946 CRuntime* CUIntArray::GetThisClass(void) 3947 CRuntime* CUserException::GetThisClass(void) 3948 CRuntime* CView::GetThisClass(void) 3949 CRuntime* CWinApp::GetThisClass(void) 3950 CRuntime* CWindowDC::GetThisClass(void) 3951 CRuntime* CWindowlessDC::GetThisClass(void) 3952 CRuntime* CWinThread::GetThisClass(void) 3953 CRuntime* CWnd::GetThisClass(void) 3954 CRuntime* CWordArray::GetThisClass(void) 3955 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap(void) 3956 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap(void) 3957 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap(void) 3958 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap(void) 3959 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap(void) 3960 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap(void) 3961 AFX_EVENTMAP const * COleControl::GetThisEventMap(void) 3962 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap(void) 3963 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap(void) 3964 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap(void) 3965 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap(void) 3966 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap(void) 3967 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap(void) 3968 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap(void) 3969 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap(void) 3970 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap(void) 3971 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap(void) 3972 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap(void) 3973 AFX_INTERFACEMAP const * CFileDialog::GetThisInterfaceMap(void) 3974 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap(void) 3975 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap(void) 3976 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap(void) 3977 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap(void) 3978 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap(void) 3979 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap(void) 3980 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap(void) 3981 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap(void) 3982 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap(void) 3983 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap(void) 3984 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap(void) 3985 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap(void) 3986 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap(void) 3987 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap(void) 3988 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap(void) 3989 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap(void) 3990 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap(void) 3991 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap(void) 3992 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap(void) 3993 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap(void) 3994 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap(void) 3995 AFX_MSGMAP const * CControlBar::GetThisMessageMap(void) 3996 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap(void) 3997 AFX_MSGMAP const * CCtrlView::GetThisMessageMap(void) 3998 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap(void) 3999 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap(void) 4000 AFX_MSGMAP const * CDialog::GetThisMessageMap(void) 4001 AFX_MSGMAP const * CDialogBar::GetThisMessageMap(void) 4002 AFX_MSGMAP const * CDockBar::GetThisMessageMap(void) 4003 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap(void) 4004 AFX_MSGMAP const * CDocument::GetThisMessageMap(void) 4005 AFX_MSGMAP const * CEditView::GetThisMessageMap(void) 4006 AFX_MSGMAP const * CFormView::GetThisMessageMap(void) 4007 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap(void) 4008 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap(void) 4009 AFX_MSGMAP const * CHtmlView::GetThisMessageMap(void) 4010 AFX_MSGMAP const * CListCtrl::GetThisMessageMap(void) 4011 AFX_MSGMAP const * CListView::GetThisMessageMap(void) 4012 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap(void) 4013 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap(void) 4014 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap(void) 4015 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap(void) 4016 AFX_MSGMAP const * COleControl::GetThisMessageMap(void) 4017 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap(void) 4018 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap(void) 4019 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap(void) 4020 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap(void) 4021 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap(void) 4022 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap(void) 4023 AFX_MSGMAP const * CPreviewView::GetThisMessageMap(void) 4024 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap(void) 4025 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap(void) 4026 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap(void) 4027 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap(void) 4028 AFX_MSGMAP const * CReBar::GetThisMessageMap(void) 4029 AFX_MSGMAP const * CRecordView::GetThisMessageMap(void) 4030 AFX_MSGMAP const * CRichEditView::GetThisMessageMap(void) 4031 AFX_MSGMAP const * CScrollView::GetThisMessageMap(void) 4032 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap(void) 4033 AFX_MSGMAP const * CSplitButton::GetThisMessageMap(void) 4034 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap(void) 4035 AFX_MSGMAP const * CStatusBar::GetThisMessageMap(void) 4036 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap(void) 4037 AFX_MSGMAP const * CToolBar::GetThisMessageMap(void) 4038 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap(void) 4039 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap(void) 4040 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap(void) 4041 AFX_MSGMAP const * CTreeView::GetThisMessageMap(void) 4042 AFX_MSGMAP const * CView::GetThisMessageMap(void) 4043 AFX_MSGMAP const * CWinApp::GetThisMessageMap(void) 4044 AFX_MSGMAP const * CWnd::GetThisMessageMap(void) 4045 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 4046 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 4047 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 4048 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 4049 int CMonthCalCtrl::GetToday(ATL::CTime &)const 4050 int CHtmlView::GetToolBar(void)const 4051 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 4052 long CHtmlView::GetTop(void)const 4053 int CHtmlView::GetTopLevelContainer(void)const 4054 CFrameWnd * CWnd::GetTopLevelFrame(void)const 4055 CWnd * CWnd::GetTopLevelOwner(void)const 4056 CWnd * CWnd::GetTopLevelParent(void)const 4057 int CScrollView::GetTrueClientSize(CSize &,CSize &) 4058 void CRectTracker::GetTrueRect(tagRECT *)const 4059 short CDaoQueryDef::GetType(void) 4060 short CDaoRecordset::GetType(void) 4061 ATL::CStringT > > CHtmlView::GetType(void)const 4062 short CPictureHolder::GetType(void) 4063 unsigned long CProperty::GetType(void) 4064 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4065 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4066 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4067 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4068 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4069 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4070 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 4071 unsigned int CCmdTarget::GetTypeInfoCount(void) 4072 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 4073 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 4074 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 4075 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 4076 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 4077 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 4078 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 4079 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 4080 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 4081 CTypeLibCache * CCmdTarget::GetTypeLibCache(void) 4082 void COleSafeArray::GetUBound(unsigned long,long *) 4083 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 4084 long COleControl::XOleObject::GetUserClassID(_GUID *) 4085 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 4086 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 4087 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 4088 ATL::CStringT > > CDaoWorkspace::GetUserNameW(void) 4089 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 4090 void COleControl::GetUserType(wchar_t *) 4091 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 4092 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 4093 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 4094 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 4095 ATL::CStringT > > CDaoRecordset::GetValidationRule(void) 4096 ATL::CStringT > > CDaoTableDef::GetValidationRule(void) 4097 ATL::CStringT > > CDaoRecordset::GetValidationText(void) 4098 ATL::CStringT > > CDaoTableDef::GetValidationText(void) 4099 void * CMapPtrToPtr::GetValueAt(void *)const 4100 ATL::CStringT > > CHttpFile::GetVerb(void)const 4101 ATL::CStringT > > CDaoDatabase::GetVersion(void) 4102 ATL::CStringT > > CDaoWorkspace::GetVersion(void) 4103 unsigned long CDockState::GetVersion(void) 4104 CHtmlEditView * CHtmlEditDoc::GetView(void)const 4105 CRichEditView * CRichEditDoc::GetView(void)const 4106 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 4107 long COleControl::XViewObject::GetViewStatus(unsigned long *) 4108 int CHtmlView::GetVisible(void)const 4109 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 4110 long CHtmlView::GetWidth(void)const 4111 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 4112 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 4113 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 4114 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 4115 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 4116 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 4117 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 4118 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 4119 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 4120 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 4121 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 4122 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 4123 long CWnd::GetWindowedChildCount(void) 4124 long CWnd::GetWindowLessChildCount(void) 4125 IDropTarget * COleControl::GetWindowlessDropTarget(void) 4126 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 4127 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 4128 int CWnd::GetWindowTextLengthW(void)const 4129 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 4130 int CWnd::GetWindowTextW(wchar_t *,int)const 4131 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 4132 short CDaoWorkspace::GetWorkspaceCount(void) 4133 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 4134 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 4135 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 4136 long COleDropSource::GiveFeedback(unsigned long) 4137 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 4138 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 4139 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 4140 void CMemFile::GrowFile(unsigned long) 4141 int CWnd::HandleFloatingSysCommand(unsigned int,long) 4142 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 4143 long CDialog::HandleInitDialog(unsigned int,long) 4144 long CDialogBar::HandleInitDialog(unsigned int,long) 4145 long CFormView::HandleInitDialog(unsigned int,long) 4146 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 4147 long CPropertySheet::HandleInitDialog(unsigned int,long) 4148 long CScrollView::HandleMButtonDown(unsigned int,long) 4149 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 4150 int COleControlContainer::HandleSetFocus(void) 4151 long CDialog::HandleSetFont(unsigned int,long) 4152 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 4153 long COleControl::XPersistStorage::HandsOffStorage(void) 4154 long COleServerDoc::XPersistStorage::HandsOffStorage(void) 4155 int COleDocument::HasBlankItems(void)const 4156 int CDialogTemplate::HasFont(void)const 4157 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 4158 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 4159 void * CFile::hFileNull 4160 void CWinApp::HideApplication(void) 4161 void CFileDialog::HideControl(int) 4162 long CBrowserControlSite::HideUI(void) 4163 long CDHtmlDialog::HideUI(void) 4164 long CHtmlControlSite::XDocHostUIHandler::HideUI(void) 4165 void CDC::HIMETRICtoDP(tagSIZE *)const 4166 void CDC::HIMETRICtoLP(tagSIZE *)const 4167 int CListCtrl::HitTest(CPoint,unsigned int *)const 4168 int CRectTracker::HitTest(CPoint)const 4169 int CSplitterWnd::HitTest(CPoint)const 4170 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 4171 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 4172 int CRectTracker::HitTestHandles(CPoint)const 4173 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 4174 void CWnd::HtmlHelpW(unsigned long,unsigned int) 4175 int CSplitterWnd::IdFromRowCol(int,int)const 4176 void CDaoWorkspace::Idle(int) 4177 void COlePropertyPage::IgnoreApply(unsigned int) 4178 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 4179 int CWinApp::InitApplication(void) 4180 long COleControl::XOleCache::InitCache(IDataObject *) 4181 int CWnd::InitControlContainer(int) 4182 void CDaoWorkspace::InitDatabasesCollection(void) 4183 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 4184 long CPrintDialogEx::InitDone(void) 4185 void CDaoException::InitErrorsCollection(void) 4186 void CDaoQueryDef::InitFieldsCollection(void) 4187 void CDaoRecordset::InitFieldsCollection(void) 4188 void CDaoTableDef::InitFieldsCollection(void) 4189 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4190 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4191 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4192 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 4193 void CMapPtrToPtr::InitHashTable(unsigned int,int) 4194 void CMapPtrToWord::InitHashTable(unsigned int,int) 4195 void CMapStringToOb::InitHashTable(unsigned int,int) 4196 void CMapStringToPtr::InitHashTable(unsigned int,int) 4197 void CMapStringToString::InitHashTable(unsigned int,int) 4198 void CMapWordToOb::InitHashTable(unsigned int,int) 4199 void CMapWordToPtr::InitHashTable(unsigned int,int) 4200 long CDataSourceControl::Initialize(void) 4201 void CDHtmlDialog::Initialize(void) 4202 void CDaoWorkspace::InitializeEngine(void) 4203 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 4204 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 4205 int CEditView::InitializeReplace(void) 4206 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 4207 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 4208 void CDaoRecordset::InitIndexesCollection(void) 4209 void CDaoTableDef::InitIndexesCollection(void) 4210 int COleControlModule::InitInstance(void) 4211 int CWinApp::InitInstance(void) 4212 int CWinThread::InitInstance(void) 4213 void CWinApp::InitLibId(void) 4214 void CDockContext::InitLoop(void) 4215 int CDialog::InitModalIndirect(void *,CWnd *) 4216 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 4217 long COleControl::XPersistMemory::InitNew(void) 4218 long COleControl::XPersistPropertyBag::InitNew(void) 4219 long COleControl::XPersistStorage::InitNew(IStorage *) 4220 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 4221 long COleControl::XPersistStreamInit::InitNew(void) 4222 void CDaoQueryDef::InitParametersCollection(void) 4223 void CDaoDatabase::InitQueryDefsCollection(void) 4224 void CRecordset::InitRecord(void) 4225 void CDaoDatabase::InitRelationsCollection(void) 4226 void COleControl::InitStockEventMask(void) 4227 void COleControl::InitStockPropMask(void) 4228 void CSimpleException::InitString(void) 4229 void CDaoDatabase::InitTableDefsCollection(void) 4230 void CDaoDatabase::InitWorkspace(void) 4231 void CDaoWorkspace::InitWorkspacesCollection(void) 4232 long COleControl::XOleInPlaceObject::InPlaceDeactivate(void) 4233 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate(void) 4234 int ATL::CStringT > >::Insert(int,wchar_t) 4235 int ATL::CStringT > >::Insert(int,wchar_t const *) 4236 int ATL::CStringT > >::Insert(int,char) 4237 int ATL::CStringT > >::Insert(int,char const *) 4238 int CDockBar::Insert(CControlBar *,CRect,CPoint) 4239 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 4240 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 4241 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 4242 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 4243 void CByteArray::InsertAt(int,unsigned char,int) 4244 void CByteArray::InsertAt(int,CByteArray *) 4245 void CDWordArray::InsertAt(int,unsigned long,int) 4246 void CDWordArray::InsertAt(int,CDWordArray *) 4247 void CObArray::InsertAt(int,CObArray *) 4248 void CObArray::InsertAt(int,CObject *,int) 4249 void CPtrArray::InsertAt(int,CPtrArray *) 4250 void CPtrArray::InsertAt(int,void *,int) 4251 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 4252 void CStringArray::InsertAt(int,wchar_t const *,int) 4253 void CStringArray::InsertAt(int,CStringArray const *) 4254 void CUIntArray::InsertAt(int,unsigned int,int) 4255 void CUIntArray::InsertAt(int,CUIntArray *) 4256 void CWordArray::InsertAt(int,unsigned short,int) 4257 void CWordArray::InsertAt(int,CWordArray *) 4258 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 4259 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 4260 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 4261 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 4262 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 4263 void CStringArray::InsertEmpty(int,int) 4264 void CRichEditView::InsertFileAsObject(wchar_t const *) 4265 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 4266 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 4267 long CRichEditView::InsertItem(CRichEditCntrItem *) 4268 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 4269 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 4270 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 4271 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 4272 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 4273 CFontHolder & COleControl::InternalGetFont(void) 4274 ATL::CStringT > > const & COleControl::InternalGetText(void) 4275 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 4276 unsigned long CCmdTarget::InternalRelease(void) 4277 int CDC::IntersectClipRect(int,int,int,int) 4278 int CDC::IntersectClipRect(tagRECT const *) 4279 void CCheckListBox::InvalidateCheck(int) 4280 void COleControl::InvalidateControl(tagRECT const *,int) 4281 void CCheckListBox::InvalidateItem(int) 4282 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 4283 void COleControl::InvalidateRgn(CRgn *,int) 4284 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 4285 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4286 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4287 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4288 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4289 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4290 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4291 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 4292 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(void),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 4293 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4294 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4295 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 4296 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4297 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 4298 int CThemeHelper::IsAppThemed(void) 4299 int CThemeHelper::IsAppThemedFail(void) 4300 int CDocItem::IsBlank(void)const 4301 int COleServerItem::IsBlank(void)const 4302 int CDaoRecordset::IsBOF(void)const 4303 int CPropertyPage::IsButtonEnabled(int) 4304 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 4305 int COleServerItem::IsConnected(void)const 4306 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 4307 int COleControlSite::IsDefaultButton(void) 4308 int CDaoRecordset::IsDeleted(void)const 4309 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 4310 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 4311 int CWnd::IsDialogMessageW(tagMSG *) 4312 long CBlobProperty::IsDirty(void) 4313 long COleLinkingDoc::XPersistFile::IsDirty(void) 4314 long COleControl::XPersistMemory::IsDirty(void) 4315 long COleControl::XPersistStorage::IsDirty(void) 4316 long COleServerDoc::XPersistStorage::IsDirty(void) 4317 long COleControl::XPersistStreamInit::IsDirty(void) 4318 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 4319 unsigned int CWnd::IsDlgButtonChecked(int)const 4320 int CControlBar::IsDockBar(void)const 4321 int CDockBar::IsDockBar(void)const 4322 int CFileFind::IsDots(void)const 4323 int CGopherFileFind::IsDots(void)const 4324 bool ATL::CSimpleStringT::IsEmpty(void)const 4325 bool ATL::CSimpleStringT::IsEmpty(void)const 4326 int CCheckListBox::IsEnabled(int) 4327 int CDaoRecordset::IsEOF(void)const 4328 int CDHtmlDialog::IsExternalDispatchSafe(void) 4329 int CDaoRecordset::IsFieldDirty(void *) 4330 int CRecordset::IsFieldDirty(void *) 4331 int CDaoRecordset::IsFieldNull(void *) 4332 int CRecordset::IsFieldNull(void *) 4333 int CDaoRecordset::IsFieldNullable(void *) 4334 int CRecordset::IsFieldNullable(void *) 4335 int CRecordset::IsFieldNullable(unsigned long)const 4336 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 4337 int CRecordset::IsFieldStatusDirty(unsigned long)const 4338 int CDaoRecordset::IsFieldStatusNull(unsigned int) 4339 int CRecordset::IsFieldStatusNull(unsigned long)const 4340 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 4341 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 4342 int CFieldExchange::IsFieldType(unsigned int *) 4343 int CControlBar::IsFloating(void)const 4344 int CFrameWnd::IsFrameWnd(void)const 4345 int CWnd::IsFrameWnd(void)const 4346 int IsHelpKey(tagMSG *) 4347 int CWinThread::IsIdleMessage(tagMSG *) 4348 int CCmdTarget::IsInvokeAllowed(long) 4349 int COleControl::IsInvokeAllowed(long) 4350 int CRecordset::IsJoin(wchar_t const *) 4351 int CObject::IsKindOf(CRuntimeconst *)const 4352 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 4353 int COccManager::IsLabelControl(CWnd *) 4354 int COleObjectFactory::IsLicenseValid(void) 4355 int CControlCreationInfo::IsManaged(void)const 4356 int CDaoRecordset::IsMatch(void) 4357 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 4358 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 4359 int COleControlSite::IsMatchingMnemonic(tagMSG *) 4360 int CHtmlEditDoc::IsModified(void) 4361 int COleClientItem::IsModified(void)const 4362 int COleControl::IsModified(void) 4363 int COlePropertyPage::IsModified(void) 4364 int CRichEditDoc::IsModified(void) 4365 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 4366 int CDaoRecordView::IsOnFirstRecord(void) 4367 int CRecordView::IsOnFirstRecord(void) 4368 int CDaoRecordView::IsOnLastRecord(void) 4369 int CRecordView::IsOnLastRecord(void) 4370 int CRecordset::IsOpen(void)const 4371 long COlePropertyPage::XPropertyPage::IsPageDirty(void) 4372 int CRecordset::IsParamStatusNull(unsigned long)const 4373 int CRecordset::IsRecordsetUpdatable(void) 4374 int CCmdTarget::IsResultExpected(void) 4375 int CRichEditView::IsRichEditFormat(unsigned short) 4376 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 4377 int CRichEditView::IsSelected(CObject const *)const 4378 int CView::IsSelected(CObject const *)const 4379 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 4380 int CObject::IsSerializable(void)const 4381 int COleMessageFilter::IsSignificantMessage(tagMSG *) 4382 int CDHtmlDialog::IsSinkedElement(IDispatch *) 4383 int CRecordset::IsSQLUpdatable(wchar_t const *) 4384 int COleControl::IsSubclassedControl(void) 4385 int CThemeHelper::IsThemeBackgroundPartiallyTransparent(void *,int,int) 4386 int CThemeHelper::IsThemeBackgroundPartiallyTransparentFail(void *,int,int) 4387 int CThemeHelper::IsThemePartDefined(void *,int,int) 4388 int CThemeHelper::IsThemePartDefinedFail(void *,int,int) 4389 int CWnd::IsTopParentActive(void)const 4390 int CFrameWnd::IsTracking(void)const 4391 long CDocObjectServer::XOleObject::IsUpToDate(void) 4392 long COleControl::XOleObject::IsUpToDate(void) 4393 long COleServerDoc::XOleObject::IsUpToDate(void) 4394 long COleServerItem::XOleObject::IsUpToDate(void) 4395 int CDaoFieldExchange::IsValidOperation(void) 4396 int CControlBar::IsVisible(void)const 4397 int COleControlSite::IsWindowEnabled(void)const 4398 int CWnd::IsWindowEnabled(void)const 4399 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 4400 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 4401 void COleControl::KeyDown(unsigned short *) 4402 void COleControl::KeyUp(unsigned short *) 4403 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 4404 void CToolBar::Layout(void) 4405 ATL::CStringT > > ATL::CStringT > >::Left(int)const 4406 ATL::CStringT > > ATL::CStringT > >::Left(int)const 4407 int CRichEditCtrl::LineIndex(int)const 4408 int CRichEditCtrl::LineLength(int)const 4409 void CRichEditCtrl::LineScroll(int,int) 4410 int CDC::LineTo(int,int) 4411 unsigned long CRichEditView::lMaxSize 4412 long CBlobProperty::Load(IStream *) 4413 int CDialogTemplate::Load(wchar_t const *) 4414 void COleControl::Load(wchar_t const *,CDataPathProperty &) 4415 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 4416 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 4417 long COleControl::XPersistMemory::Load(void *,unsigned long) 4418 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 4419 long COleControl::XPersistStorage::Load(IStorage *) 4420 long COleServerDoc::XPersistStorage::Load(IStorage *) 4421 long COleControl::XPersistStreamInit::Load(IStream *) 4422 int CFrameWnd::LoadAccelTable(wchar_t const *) 4423 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL(void) 4424 void CFrameWnd::LoadBarState(wchar_t const *) 4425 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 4426 int CToolBar::LoadBitmapW(wchar_t const *) 4427 void CDaoRecordset::LoadFields(void) 4428 void CRecordset::LoadFields(void) 4429 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4430 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4431 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4432 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 4433 int CDHtmlDialog::LoadFromResource(unsigned int) 4434 int CDHtmlDialog::LoadFromResource(wchar_t const *) 4435 int CHtmlView::LoadFromResource(unsigned int) 4436 int CHtmlView::LoadFromResource(wchar_t const *) 4437 void COleDocument::LoadFromStorage(void) 4438 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 4439 void CDockState::LoadState(wchar_t const *) 4440 long COleControl::LoadState(IStream *) 4441 void CWinApp::LoadStdProfileSettings(unsigned int) 4442 int ATL::CStringT > >::LoadStringW(unsigned int) 4443 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 4444 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 4445 int ATL::CStringT > >::LoadStringW(unsigned int) 4446 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 4447 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 4448 int CWinApp::LoadSysPolicies(void) 4449 void CDocTemplate::LoadTemplate(void) 4450 void CMultiDocTemplate::LoadTemplate(void) 4451 int CToolBar::LoadToolBar(wchar_t const *) 4452 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 4453 void COleSafeArray::Lock(void) 4454 int CSingleLock::Lock(unsigned long) 4455 int CSyncObject::Lock(unsigned long) 4456 void CTypeLibCache::Lock(void) 4457 wchar_t * ATL::CSimpleStringT::LockBuffer(void) 4458 char * ATL::CSimpleStringT::LockBuffer(void) 4459 wchar_t const * CEditView::LockBuffer(void)const 4460 long COleControlContainer::XOleContainer::LockContainer(int) 4461 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 4462 void COleLinkingDoc::LockExternal(int,int) 4463 int COleControl::LockInPlaceActive(int) 4464 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 4465 void CFile::LockRange(unsigned __int64,unsigned __int64) 4466 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 4467 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 4468 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 4469 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 4470 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 4471 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 4472 long COleObjectFactory::XClassFactory::LockServer(int) 4473 int CMapPtrToPtr::Lookup(void *,void * &)const 4474 int CMapPtrToWord::Lookup(void *,unsigned short &)const 4475 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 4476 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 4477 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 4478 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 4479 int CMapWordToPtr::Lookup(unsigned short,void * &)const 4480 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 4481 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 4482 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 4483 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 4484 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 4485 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 4486 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 4487 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 4488 void CDC::LPtoDP(tagSIZE *)const 4489 void CDC::LPtoHIMETRIC(tagSIZE *)const 4490 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 4491 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 4492 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 4493 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 4494 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 4495 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 4496 void CArchive::MapObject(CObject const *) 4497 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 4498 int COleDialog::MapResult(unsigned int) 4499 long CPropertyPage::MapWizardResult(long) 4500 void CDaoRecordset::MarkForAddNew(void) 4501 void CRecordset::MarkForAddNew(void) 4502 void CDaoRecordset::MarkForEdit(void) 4503 void CRecordset::MarkForUpdate(void) 4504 void CRichEditDoc::MarkItemsClear(void)const 4505 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 4506 int CFileFind::MatchesMask(unsigned long)const 4507 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 4508 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 4509 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 4510 void CComboBox::MeasureItem(tagMEASUREITEM*) 4511 void CListBox::MeasureItem(tagMEASUREITEM*) 4512 void CMenu::MeasureItem(tagMEASUREITEM*) 4513 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 4514 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 4515 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 4516 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 4517 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 4518 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4519 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4520 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 4521 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 4522 void CPreviewDC::MirrorAttributes(void) 4523 void CPreviewDC::MirrorFont(void) 4524 void CPreviewDC::MirrorMappingMode(int) 4525 void CPreviewDC::MirrorViewportOrg(void) 4526 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 4527 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 4528 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 4529 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4530 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 4531 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 4532 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 4533 void CDaoRecordset::Move(long) 4534 void CDockContext::Move(CPoint) 4535 void CRecordset::Move(long,unsigned short) 4536 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 4537 void CDaoRecordset::MoveFirst(void) 4538 void CDaoRecordset::MoveLast(void) 4539 void CDaoRecordset::MoveNext(void) 4540 void CDaoRecordset::MovePrev(void) 4541 CPoint CDC::MoveTo(int,int) 4542 void COleControlSite::MoveWindow(int,int,int,int) 4543 void CWnd::MoveWindow(int,int,int,int,int) 4544 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4545 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4546 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 4547 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 4548 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 4549 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 4550 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 4551 unsigned int COleDropSource::nDragDelay 4552 unsigned int COleDropSource::nDragMinDist 4553 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 4554 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc(void) 4555 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc(void) 4556 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc(void) 4557 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc(void) 4558 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 4559 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc(void) 4560 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc(void) 4561 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 4562 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 4563 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 4564 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 4565 unsigned int const CEditView::nMaxSize 4566 int CRectTracker::NormalizeHit(int)const 4567 void CDataBoundProperty::Notify(void) 4568 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 4569 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 4570 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 4571 void CFrameWnd::NotifyFloatingWindows(unsigned long) 4572 void COleServerDoc::NotifyRename(wchar_t const *) 4573 unsigned int COleDropTarget::nScrollDelay 4574 int COleDropTarget::nScrollInset 4575 unsigned int COleDropTarget::nScrollInterval 4576 void ATL::CStringT > >::OemToCharA(void) 4577 int CDC::OffsetClipRgn(int,int) 4578 int CDC::OffsetClipRgn(tagSIZE) 4579 CPoint CDC::OffsetViewportOrg(int,int) 4580 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 4581 CPoint CPreviewDC::OffsetViewportOrg(int,int) 4582 CPoint CDC::OffsetWindowOrg(int,int) 4583 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 4584 void CAsyncSocket::OnAccept(int) 4585 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 4586 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 4587 void COleClientItem::OnActivate(void) 4588 void COleFrameHook::OnActivate(int) 4589 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 4590 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 4591 long COleControl::OnActivateInPlace(int,tagMSG *) 4592 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 4593 long CWnd::OnActivateTopLevel(unsigned int,long) 4594 void COleClientItem::OnActivateUI(void) 4595 long CDocObjectServer::OnActivateView(void) 4596 void CFormView::OnActivateView(int,CView *,CView *) 4597 void CPreviewView::OnActivateView(int,CView *,CView *) 4598 void CRichEditView::OnActivateView(int,CView *,CView *) 4599 void CView::OnActivateView(int,CView *,CView *) 4600 long CToolTipCtrl::OnAddTool(unsigned int,long) 4601 void CConnectionPoint::OnAdvise(int) 4602 void COleControl::XEventConnPt::OnAdvise(int) 4603 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 4604 void COleControl::OnAmbientPropertyChange(long) 4605 long COleControl::XOleControl::OnAmbientPropertyChange(long) 4606 void COleControl::OnAppearanceChanged(void) 4607 void CWinApp::OnAppExit(void) 4608 int CPropertyPage::OnApply(void) 4609 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 4610 void CDocObjectServer::OnApplyViewState(CArchive &) 4611 void COleControl::OnBackColorChanged(void) 4612 int CFrameWnd::OnBarCheck(unsigned int) 4613 int COleIPFrameWnd::OnBarCheck(unsigned int) 4614 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 4615 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 4616 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 4617 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 4618 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 4619 int COleDropSource::OnBeginDrag(CWnd *) 4620 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4621 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 4622 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 4623 void COleControl::OnBorderStyleChanged(void) 4624 void CRichEditView::OnBullet(void) 4625 int COleMessageFilter::OnBusyDialog(HTASK__ *) 4626 long CFileDialog::XFileDialogControlEvents::OnButtonClicked(IFileDialogCustomize *,unsigned long) 4627 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 4628 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 4629 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 4630 void CCommonDialog::OnCancel(void) 4631 void CDialog::OnCancel(void) 4632 void CPropertyPage::OnCancel(void) 4633 void CRichEditView::OnCancelEditCntr(void) 4634 void COleControl::OnCancelMode(void) 4635 void CSplitterWnd::OnCancelMode(void) 4636 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 4637 long COleControl::XFontNotification::OnChanged(long) 4638 long COleControlSite::XPropertyNotifySink::OnChanged(long) 4639 long COlePropertyPage::XPropNotifySink::OnChanged(long) 4640 void CRectTracker::OnChangedRect(CRect const &) 4641 void CDocument::OnChangedViewList(void) 4642 int COleClientItem::OnChangeItemPosition(CRect const &) 4643 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 4644 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 4645 void CRichEditView::OnCharBold(void) 4646 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 4647 void CRichEditView::OnCharItalic(void) 4648 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 4649 void CRichEditView::OnCharUnderline(void) 4650 long CFileDialog::XFileDialogControlEvents::OnCheckButtonToggled(IFileDialogCustomize *,unsigned long,int) 4651 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 4652 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 4653 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4654 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4655 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4656 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4657 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 4658 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4659 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 4660 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 4661 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 4662 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4663 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 4664 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 4665 void COleControl::OnClick(unsigned short) 4666 CEnumArray * CEnumArray::OnClone(void) 4667 CEnumArray * CEnumConnections::OnClone(void) 4668 void CAsyncSocket::OnClose(int) 4669 void CControlFrameWnd::OnClose(void) 4670 void CFrameWnd::OnClose(void) 4671 void CMiniDockFrameWnd::OnClose(void) 4672 void COleControl::OnClose(unsigned long) 4673 void COleServerDoc::OnClose(enum tagOLECLOSE) 4674 void CPropertySheet::OnClose(void) 4675 void COleClientItem::XAdviseSink::OnClose(void) 4676 void CDocObjectServer::OnCloseDocument(void) 4677 void CDocument::OnCloseDocument(void) 4678 void COleDocument::OnCloseDocument(void) 4679 void COleLinkingDoc::OnCloseDocument(void) 4680 void COleServerDoc::OnCloseDocument(void) 4681 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4682 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4683 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4684 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4685 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4686 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4687 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4688 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4689 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4690 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4691 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4692 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4693 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 4694 void CRichEditView::OnColorDefault(void) 4695 int CColorDialog::OnColorOK(void) 4696 void CRichEditView::OnColorPick(unsigned long) 4697 int CFrameWnd::OnCommand(unsigned int,long) 4698 int CMDIFrameWnd::OnCommand(unsigned int,long) 4699 int COlePropertyPage::OnCommand(unsigned int,long) 4700 int CPropertySheet::OnCommand(unsigned int,long) 4701 int CSplitterWnd::OnCommand(unsigned int,long) 4702 int CWnd::OnCommand(unsigned int,long) 4703 long CDialog::OnCommandHelp(unsigned int,long) 4704 long CFrameWnd::OnCommandHelp(unsigned int,long) 4705 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 4706 long CPropertySheet::OnCommandHelp(unsigned int,long) 4707 void CHtmlView::OnCommandStateChange(long,int) 4708 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 4709 void CAsyncSocket::OnConnect(int) 4710 void CFrameWnd::OnContextHelp(void) 4711 int COleFrameHook::OnContextHelp(int) 4712 void COleIPFrameWnd::OnContextHelp(void) 4713 void CWinApp::OnContextHelp(void) 4714 long CFileDialog::XFileDialogControlEvents::OnControlActivating(IFileDialogCustomize *,unsigned long) 4715 long COleControlSite::XOleControlSite::OnControlInfoChanged(void) 4716 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 4717 int CControlBar::OnCreate(tagCREATESTRUCTW *) 4718 int CEditView::OnCreate(tagCREATESTRUCTW *) 4719 int CFormView::OnCreate(tagCREATESTRUCTW *) 4720 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 4721 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 4722 int COleControl::OnCreate(tagCREATESTRUCTW *) 4723 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 4724 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 4725 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 4726 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 4727 int CView::OnCreate(tagCREATESTRUCTW *) 4728 int CCmdTarget::OnCreateAggregates(void) 4729 int COleControl::OnCreateAggregates(void) 4730 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4731 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 4732 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 4733 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 4734 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 4735 CCmdTarget * COleObjectFactory::OnCreateObject(void) 4736 CCmdTarget * COleTemplateServer::OnCreateObject(void) 4737 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 4738 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4739 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 4740 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 4741 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 4742 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 4743 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 4744 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4745 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 4746 int CDocManager::OnDDECommand(wchar_t *) 4747 int CWinApp::OnDDECommand(wchar_t *) 4748 long CFrameWnd::OnDDEExecute(unsigned int,long) 4749 long CFrameWnd::OnDDEInitiate(unsigned int,long) 4750 long CFrameWnd::OnDDETerminate(unsigned int,long) 4751 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 4752 void COleClientItem::OnDeactivate(void) 4753 void COleServerDoc::OnDeactivate(void) 4754 void COleClientItem::OnDeactivateAndUndo(void) 4755 void COleClientItem::OnDeactivateUI(int) 4756 void COleServerDoc::OnDeactivateUI(int) 4757 void CRichEditCntrItem::OnDeactivateUI(int) 4758 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 4759 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 4760 void CControlBar::OnDestroy(void) 4761 void CDHtmlDialog::OnDestroy(void) 4762 void CEditView::OnDestroy(void) 4763 void CFrameWnd::OnDestroy(void) 4764 void CHtmlView::OnDestroy(void) 4765 void CMDIChildWnd::OnDestroy(void) 4766 void CMDIFrameWnd::OnDestroy(void) 4767 void COleControl::OnDestroy(void) 4768 void COleIPFrameWnd::OnDestroy(void) 4769 void CRichEditView::OnDestroy(void) 4770 void CTabCtrl::OnDestroy(void) 4771 void CTreeCtrl::OnDestroy(void) 4772 void CTreeView::OnDestroy(void) 4773 void CView::OnDestroy(void) 4774 void CWnd::OnDestroy(void) 4775 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 4776 void CRichEditView::OnDevModeChange(wchar_t *) 4777 void CWnd::OnDevModeChange(wchar_t *) 4778 long CToolTipCtrl::OnDisableModal(unsigned int,long) 4779 void COleClientItem::OnDiscardUndoState(void) 4780 void CSplitterWnd::OnDisplayChange(void) 4781 long CWnd::OnDisplayChange(unsigned int,long) 4782 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 4783 int COleFrameHook::OnDocActivate(int) 4784 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 4785 void CHtmlView::OnDocumentComplete(wchar_t const *) 4786 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 4787 long CBrowserControlSite::OnDocWindowActivate(int) 4788 long CDHtmlDialog::OnDocWindowActivate(int) 4789 long CHtmlView::OnDocWindowActivate(int) 4790 void COleServerDoc::OnDocWindowActivate(int) 4791 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 4792 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4793 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 4794 void CDocObjectServerItem::OnDoVerb(long) 4795 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 4796 void COleServerItem::OnDoVerb(long) 4797 void CHtmlView::OnDownloadBegin(void) 4798 void CHtmlView::OnDownloadComplete(void) 4799 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 4800 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 4801 void COleDropTarget::OnDragLeave(CWnd *) 4802 void CView::OnDragLeave(void) 4803 long CWnd::OnDragList(unsigned int,long) 4804 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 4805 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 4806 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 4807 unsigned long CView::OnDragScroll(unsigned long,CPoint) 4808 void CCtrlView::OnDraw(CDC *) 4809 void CFormView::OnDraw(CDC *) 4810 void CHtmlView::OnDraw(CDC *) 4811 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 4812 void CPreviewView::OnDraw(CDC *) 4813 void CView::OnDraw(CDC *) 4814 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 4815 void CWnd::OnDrawItem(int,tagDRAWITEM*) 4816 void COleControl::OnDrawMetafile(CDC *,CRect const &) 4817 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 4818 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 4819 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 4820 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 4821 void CSplitButton::OnDropDown(tagNMHDR *,long *) 4822 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 4823 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 4824 void CFrameWnd::OnDropFiles(HDROP__ *) 4825 void CRichEditView::OnDropFiles(HDROP__ *) 4826 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 4827 int CEditView::OnEditChange(void) 4828 void COleDocument::OnEditChangeIcon(void) 4829 void CEditView::OnEditClear(void) 4830 void CRichEditView::OnEditClear(void) 4831 void COleDocument::OnEditConvert(void) 4832 void CEditView::OnEditCopy(void) 4833 void CHtmlView::OnEditCopy(void) 4834 void CRichEditView::OnEditCopy(void) 4835 void CEditView::OnEditCut(void) 4836 void CHtmlView::OnEditCut(void) 4837 void CRichEditView::OnEditCut(void) 4838 void CEditView::OnEditFind(void) 4839 void CRichEditView::OnEditFind(void) 4840 void CEditView::OnEditFindReplace(int) 4841 void CRichEditView::OnEditFindReplace(int) 4842 void COleDocument::OnEditLinks(void) 4843 void CEditView::OnEditPaste(void) 4844 void CHtmlView::OnEditPaste(void) 4845 void CRichEditView::OnEditPaste(void) 4846 void CRichEditView::OnEditPasteSpecial(void) 4847 void CRichEditView::OnEditProperties(void) 4848 int COlePropertyPage::OnEditProperty(long) 4849 void CRichEditView::OnEditRedo(void) 4850 void CEditView::OnEditRepeat(void) 4851 void CRichEditView::OnEditRepeat(void) 4852 void CEditView::OnEditReplace(void) 4853 void CRichEditView::OnEditReplace(void) 4854 void CEditView::OnEditSelectAll(void) 4855 void CRichEditView::OnEditSelectAll(void) 4856 void CEditView::OnEditUndo(void) 4857 void CRichEditView::OnEditUndo(void) 4858 void CFrameWnd::OnEnable(int) 4859 void CToolTipCtrl::OnEnable(int) 4860 void COleControl::OnEnabledChanged(void) 4861 long CHtmlView::OnEnableModeless(int) 4862 void COleFrameHook::OnEnableModeless(int) 4863 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 4864 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 4865 void CView::OnEndPrinting(CDC *,CPrintInfo *) 4866 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 4867 void CFrameWnd::OnEndSession(int) 4868 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 4869 void COleControl::OnEnterIdle(unsigned int,CWnd *) 4870 void CWnd::OnEnterIdle(unsigned int,CWnd *) 4871 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 4872 int CDockBar::OnEraseBkgnd(CDC *) 4873 int CFrameWnd::OnEraseBkgnd(CDC *) 4874 int COleControl::OnEraseBkgnd(CDC *) 4875 int COleResizeBar::OnEraseBkgnd(CDC *) 4876 int CPreviewView::OnEraseBkgnd(CDC *) 4877 int CReBar::OnEraseBkgnd(CDC *) 4878 int CToolBar::OnEraseBkgnd(CDC *) 4879 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4880 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 4881 int COleControlSite::OnEvent(AFX_EVENT *) 4882 void COleControl::OnEventAdvise(int) 4883 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4884 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 4885 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 4886 void CDocument::OnFileClose(void) 4887 void CFileDialog::OnFileNameChange(void) 4888 int CFileDialog::OnFileNameOK(void) 4889 void CDocManager::OnFileNew(void) 4890 void CWinApp::OnFileNew(void) 4891 long CFileDialog::XFileDialogEvents::OnFileOk(IFileDialog *) 4892 void CDocManager::OnFileOpen(void) 4893 void CWinApp::OnFileOpen(void) 4894 void CHtmlView::OnFilePrint(void) 4895 void CView::OnFilePrint(void) 4896 void CView::OnFilePrintPreview(void) 4897 void CWinApp::OnFilePrintSetup(void) 4898 void CDocument::OnFileSave(void) 4899 void CDocument::OnFileSaveAs(void) 4900 void COleServerDoc::OnFileSaveCopyAs(void) 4901 void CDocument::OnFileSendMail(void) 4902 void COleDocument::OnFileSendMail(void) 4903 void COleServerDoc::OnFileUpdate(void) 4904 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 4905 void CCmdTarget::OnFinalRelease(void) 4906 void CDocument::OnFinalRelease(void) 4907 void COleControl::OnFinalRelease(void) 4908 void COlePropertyPage::OnFinalRelease(void) 4909 void COleServerItem::OnFinalRelease(void) 4910 void CWnd::OnFinalRelease(void) 4911 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 4912 void CEditView::OnFindNext(wchar_t const *,int,int) 4913 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 4914 long CEditView::OnFindReplaceCmd(unsigned int,long) 4915 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 4916 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 4917 long COleControlSite::XOleControlSite::OnFocus(int) 4918 void CFileDialog::OnFolderChange(void) 4919 long CFileDialog::XFileDialogEvents::OnFolderChange(IFileDialog *) 4920 long CFileDialog::XFileDialogEvents::OnFolderChanging(IFileDialog *,IShellItem *) 4921 void COleControl::OnFontChanged(void) 4922 void COleControl::OnForeColorChanged(void) 4923 void CRichEditView::OnFormatFont(void) 4924 void COleControl::OnFrameClose(void) 4925 long CBrowserControlSite::OnFrameWindowActivate(int) 4926 long CDHtmlDialog::OnFrameWindowActivate(int) 4927 long CHtmlView::OnFrameWindowActivate(int) 4928 void COleServerDoc::OnFrameWindowActivate(int) 4929 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 4930 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4931 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 4932 void COleControl::OnFreezeEvents(int) 4933 void CHtmlView::OnFullScreen(int) 4934 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 4935 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4936 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 4937 void COleClientItem::OnGetClipRect(CRect &) 4938 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 4939 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 4940 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 4941 unsigned int COleControl::OnGetDlgCode(void) 4942 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 4943 COleServerItem * CRichEditDoc::OnGetEmbeddedItem(void) 4944 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 4945 long CHtmlView::OnGetExternal(IDispatch * *) 4946 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 4947 HMENU__ * COleControl::OnGetInPlaceMenu(void) 4948 void COleClientItem::OnGetItemPosition(CRect &) 4949 void COleDocObjectItem::OnGetItemPosition(CRect &) 4950 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 4951 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 4952 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 4953 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4954 long CWnd::OnGetObject(unsigned int,long) 4955 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 4956 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 4957 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 4958 long CStatusBar::OnGetText(unsigned int,long) 4959 long CStatusBar::OnGetTextLength(unsigned int,long) 4960 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4961 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 4962 unsigned long COleControl::OnGetViewStatus(void) 4963 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 4964 void CReBar::OnHeightChange(tagNMHDR *,long *) 4965 void CFrameWnd::OnHelp(void) 4966 int COlePropertyPage::OnHelp(wchar_t const *) 4967 void CWinApp::OnHelp(void) 4968 void CWnd::OnHelp(void) 4969 long CFileDialog::XFileDialogEvents::OnHelp(IFileDialog *) 4970 void CWinApp::OnHelpFinder(void) 4971 void CWnd::OnHelpFinder(void) 4972 long CControlBar::OnHelpHitTest(unsigned int,long) 4973 long CDialog::OnHelpHitTest(unsigned int,long) 4974 long CFrameWnd::OnHelpHitTest(unsigned int,long) 4975 void CWinApp::OnHelpIndex(void) 4976 void CWnd::OnHelpIndex(void) 4977 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 4978 int CWnd::OnHelpInfo(tagHELPINFO *) 4979 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 4980 void CWinApp::OnHelpUsing(void) 4981 void CWnd::OnHelpUsing(void) 4982 void CDocObjectServerItem::OnHide(void) 4983 long COleControl::OnHide(void) 4984 void COleServerItem::OnHide(void) 4985 void CFrameWnd::OnHideMenuBar(void) 4986 void COleControl::OnHideToolBars(void) 4987 long CHtmlView::OnHideUI(void) 4988 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4989 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4990 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4991 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4992 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 4993 void CDocTemplate::OnIdle(void) 4994 void CDocument::OnIdle(void) 4995 void COleDocument::OnIdle(void) 4996 int CWinApp::OnIdle(long) 4997 int CWinThread::OnIdle(long) 4998 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 4999 void CFrameWnd::OnIdleUpdateCmdUI(void) 5000 void CMDIFrameWnd::OnIdleUpdateCmdUI(void) 5001 void COleCntrFrameWnd::OnIdleUpdateCmdUI(void) 5002 void COleIPFrameWnd::OnIdleUpdateCmdUI(void) 5003 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 5004 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 5005 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 5006 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 5007 int CDHtmlDialog::OnInitDialog(void) 5008 int CDialog::OnInitDialog(void) 5009 int COlePropertiesDialog::OnInitDialog(void) 5010 int COlePropertyPage::OnInitDialog(void) 5011 int CPropertySheet::OnInitDialog(void) 5012 void CFileDialog::OnInitDone(void) 5013 int COleServerItem::OnInitFromData(COleDataObject *,int) 5014 void CControlBar::OnInitialUpdate(void) 5015 void CDaoRecordView::OnInitialUpdate(void) 5016 void CFormView::OnInitialUpdate(void) 5017 void COleDBRecordView::OnInitialUpdate(void) 5018 void CRecordView::OnInitialUpdate(void) 5019 void CRichEditView::OnInitialUpdate(void) 5020 void CView::OnInitialUpdate(void) 5021 void CFrameWnd::OnInitMenu(CMenu *) 5022 void COleFrameHook::OnInitMenu(CMenu *) 5023 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 5024 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 5025 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 5026 long COleClientItem::XOleIPSite::OnInPlaceActivate(void) 5027 long COleControlSite::XOleIPSite::OnInPlaceActivate(void) 5028 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 5029 long COleClientItem::XOleIPSite::OnInPlaceDeactivate(void) 5030 long COleControlSite::XOleIPSite::OnInPlaceDeactivate(void) 5031 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 5032 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 5033 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 5034 void CRichEditView::OnInsertObject(void) 5035 void CSplitterWnd::OnInvertTracker(CRect const &) 5036 long CFileDialog::XFileDialogControlEvents::OnItemSelected(IFileDialogCustomize *,unsigned long,unsigned long) 5037 void CDockContext::OnKey(int,int) 5038 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 5039 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 5040 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 5041 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 5042 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 5043 void COleControl::OnKeyPressEvent(unsigned short) 5044 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 5045 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 5046 long CPropertySheet::OnKickIdle(unsigned int,long) 5047 int CPropertyPage::OnKillActive(void) 5048 void COleControl::OnKillFocus(CWnd *) 5049 long CCheckListBox::OnLBAddString(unsigned int,long) 5050 long CCheckListBox::OnLBFindString(unsigned int,long) 5051 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 5052 long CCheckListBox::OnLBGetItemData(unsigned int,long) 5053 long CCheckListBox::OnLBGetText(unsigned int,long) 5054 long CCheckListBox::OnLBInsertString(unsigned int,long) 5055 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 5056 long CCheckListBox::OnLBSelectString(unsigned int,long) 5057 long CCheckListBox::OnLBSetItemData(unsigned int,long) 5058 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 5059 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 5060 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 5061 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 5062 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 5063 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 5064 void CControlBar::OnLButtonDown(unsigned int,CPoint) 5065 void COleControl::OnLButtonDown(unsigned int,CPoint) 5066 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 5067 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 5068 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 5069 void COleControl::OnLButtonUp(unsigned int,CPoint) 5070 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 5071 void CAsyncMonikerFile::OnLowResource(void) 5072 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 5073 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 5074 void COleControl::OnMButtonDown(unsigned int,CPoint) 5075 void COleControl::OnMButtonUp(unsigned int,CPoint) 5076 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 5077 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 5078 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 5079 void CHtmlView::OnMenuBar(int) 5080 long CFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 5081 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 5082 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 5083 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 5084 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 5085 int COleMessageFilter::OnMessagePending(tagMSG const *) 5086 int CSocket::OnMessagePending(void) 5087 void COleControl::OnMnemonic(tagMSG *) 5088 long COleControl::XOleControl::OnMnemonic(tagMSG *) 5089 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5090 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5091 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5092 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5093 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 5094 void COleControl::OnMouseMove(unsigned int,CPoint) 5095 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 5096 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 5097 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 5098 int CDaoRecordView::OnMove(unsigned int) 5099 void COleControl::OnMove(int,int) 5100 int COleDBRecordView::OnMove(unsigned int) 5101 int CRecordView::OnMove(unsigned int) 5102 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 5103 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 5104 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 5105 void CHtmlView::OnNavigateComplete2(wchar_t const *) 5106 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 5107 int CFrameWnd::OnNcActivate(int) 5108 int CMDIChildWnd::OnNcActivate(int) 5109 int CMiniFrameWnd::OnNcActivate(int) 5110 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5111 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5112 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5113 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5114 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 5115 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 5116 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 5117 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 5118 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 5119 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 5120 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 5121 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 5122 void CListCtrl::OnNcDestroy(void) 5123 void CListView::OnNcDestroy(void) 5124 void CWnd::OnNcDestroy(void) 5125 long CMiniFrameWnd::OnNcHitTest(CPoint) 5126 long COleControl::OnNcHitTest(CPoint) 5127 long CStatusBar::OnNcHitTest(CPoint) 5128 long CToolBar::OnNcHitTest(CPoint) 5129 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 5130 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 5131 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 5132 void CDockBar::OnNcPaint(void) 5133 void COleControl::OnNcPaint(void) 5134 void CReBar::OnNcPaint(void) 5135 void CStatusBar::OnNcPaint(void) 5136 void CToolBar::OnNcPaint(void) 5137 int CDocument::OnNewDocument(void) 5138 int CHtmlEditDoc::OnNewDocument(void) 5139 int COleDocument::OnNewDocument(void) 5140 int COleLinkingDoc::OnNewDocument(void) 5141 void COleServerDoc::OnNewEmbedding(IStorage *) 5142 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 5143 int CEnumArray::OnNext(void *) 5144 int CEnumConnections::OnNext(void *) 5145 int CEnumConnPoints::OnNext(void *) 5146 int CEnumFormatEtc::OnNext(void *) 5147 int CEnumOleVerb::OnNext(void *) 5148 int CEnumUnknown::OnNext(void *) 5149 void CPreviewView::OnNextPage(void) 5150 int CView::OnNextPaneCmd(unsigned int) 5151 int CFileDialog::OnNotify(unsigned int,long,long *) 5152 int CPropertyPage::OnNotify(unsigned int,long,long *) 5153 int CSplitterWnd::OnNotify(unsigned int,long,long *) 5154 int CWnd::OnNotify(unsigned int,long,long *) 5155 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 5156 long CWnd::OnNTCtlColor(unsigned int,long) 5157 void CPreviewView::OnNumPageChange(void) 5158 void COlePropertyPage::OnObjectsChanged(void) 5159 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 5160 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 5161 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 5162 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 5163 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 5164 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 5165 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 5166 void CCommonDialog::OnOK(void) 5167 void CDialog::OnOK(void) 5168 void CPropertyPage::OnOK(void) 5169 long COleControl::OnOpen(int,tagMSG *) 5170 void COleServerItem::OnOpen(void) 5171 int CDocument::OnOpenDocument(wchar_t const *) 5172 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 5173 int COleDocument::OnOpenDocument(wchar_t const *) 5174 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 5175 void COleServerDoc::OnOpenEmbedding(IStorage *) 5176 int CWinApp::OnOpenRecentFile(unsigned int) 5177 void CAsyncSocket::OnOutOfBandData(int) 5178 long CFileDialog::XFileDialogEvents::OnOverwrite(IFileDialog *,IShellItem *,enum tagFDE_OVERWRITE_RESPONSE *) 5179 void CCommonDialog::OnPaint(void) 5180 void CControlBar::OnPaint(void) 5181 void CCtrlView::OnPaint(void) 5182 void CDialog::OnPaint(void) 5183 void CDockBar::OnPaint(void) 5184 void CHtmlEditView::OnPaint(void) 5185 void CHtmlView::OnPaint(void) 5186 void COleControl::OnPaint(CDC *) 5187 int COleControlContainer::OnPaint(CDC *) 5188 void COleResizeBar::OnPaint(void) 5189 void CReBar::OnPaint(void) 5190 void CSplitterWnd::OnPaint(void) 5191 void CStatusBar::OnPaint(void) 5192 void CToolBar::OnPaint(void) 5193 void CView::OnPaint(void) 5194 void CWnd::OnPaint(void) 5195 void CFrameWnd::OnPaletteChanged(CWnd *) 5196 void COleFrameHook::OnPaletteChanged(CWnd *) 5197 void CRichEditView::OnParaAlign(unsigned short) 5198 void CRichEditView::OnParaCenter(void) 5199 void CRichEditView::OnParaLeft(void) 5200 void CRichEditView::OnParaRight(void) 5201 void CWnd::OnParentNotify(unsigned int,long) 5202 int CRichEditView::OnPasteNativeObject(IStorage *) 5203 long CFrameWnd::OnPopMessageString(unsigned int,long) 5204 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 5205 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 5206 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 5207 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 5208 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 5209 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 5210 void CView::OnPrepareDC(CDC *,CPrintInfo *) 5211 int CEditView::OnPreparePrinting(CPrintInfo *) 5212 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 5213 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 5214 int CView::OnPreparePrinting(CPrintInfo *) 5215 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 5216 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 5217 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 5218 void CPreviewView::OnPreviewClose(void) 5219 void CPreviewView::OnPreviewPrint(void) 5220 void CPreviewView::OnPrevPage(void) 5221 void CEditView::OnPrint(CDC *,CPrintInfo *) 5222 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 5223 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 5224 void CView::OnPrint(CDC *,CPrintInfo *) 5225 void CRichEditView::OnPrinterChanged(CDC const &) 5226 void CPrintDialog::OnPrintSetup(void) 5227 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 5228 void CHtmlView::OnProgressChange(long,long) 5229 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 5230 void CHtmlView::OnPropertyChange(wchar_t const *) 5231 int CPropertyPage::OnQueryCancel(void) 5232 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 5233 int CFrameWnd::OnQueryEndSession(void) 5234 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5235 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5236 int CFrameWnd::OnQueryNewPalette(void) 5237 int COleFrameHook::OnQueryNewPalette(void) 5238 int COleServerItem::OnQueryUpdateItems(void) 5239 void CHtmlView::OnQuit(void) 5240 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 5241 void COleControl::OnRButtonDown(unsigned int,CPoint) 5242 void COleControl::OnRButtonUp(unsigned int,CPoint) 5243 int COleServerDoc::OnReactivateAndUndo(void) 5244 void COleFrameHook::OnRecalcLayout(void) 5245 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 5246 void CReBar::OnRecalcParent(void) 5247 void CAsyncSocket::OnReceive(int) 5248 void COleControl::OnReflectorDestroyed(void) 5249 void COleClientItem::OnRemoveMenus(CMenu *) 5250 void COleDocObjectItem::OnRemoveMenus(CMenu *) 5251 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 5252 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5253 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5254 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5255 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5256 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 5257 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 5258 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 5259 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 5260 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 5261 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 5262 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 5263 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 5264 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 5265 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 5266 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 5267 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 5268 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 5269 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 5270 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 5271 long COleControl::XFontNotification::OnRequestEdit(long) 5272 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 5273 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 5274 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 5275 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 5276 void CEnumArray::OnReset(void) 5277 void CPropertyPage::OnReset(void) 5278 void COleControl::OnResetState(void) 5279 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5280 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5281 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 5282 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 5283 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 5284 void COleClientItem::XAdviseSink::OnSave(void) 5285 int CDocument::OnSaveDocument(wchar_t const *) 5286 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 5287 int COleDocument::OnSaveDocument(wchar_t const *) 5288 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 5289 int COleServerDoc::OnSaveDocument(wchar_t const *) 5290 void COleServerDoc::OnSaveEmbedding(IStorage *) 5291 void COleServerItem::OnSaveEmbedding(IStorage *) 5292 void CDocObjectServer::OnSaveViewState(CArchive &) 5293 int CScrollView::OnScroll(unsigned int,unsigned int,int) 5294 int CView::OnScroll(unsigned int,unsigned int,int) 5295 int COleClientItem::OnScrollBy(CSize) 5296 int CScrollView::OnScrollBy(CSize,int) 5297 int CView::OnScrollBy(CSize,int) 5298 void CRichEditView::OnSelChange(tagNMHDR *,long *) 5299 long CFileDialog::XFileDialogEvents::OnSelectionChange(IFileDialog *) 5300 void CAsyncSocket::OnSend(int) 5301 int CPropertyPage::OnSetActive(void) 5302 long CToolBar::OnSetBitmapSize(unsigned int,long) 5303 long CToolBar::OnSetButtonSize(unsigned int,long) 5304 void COleControl::OnSetClientSite(void) 5305 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 5306 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 5307 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 5308 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 5309 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 5310 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 5311 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5312 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5313 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5314 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5315 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 5316 long CPropertySheet::OnSetDefID(unsigned int,long) 5317 int COleControl::OnSetExtent(tagSIZE *) 5318 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 5319 void CFormView::OnSetFocus(CWnd *) 5320 void CFrameWnd::OnSetFocus(CWnd *) 5321 void COleControl::OnSetFocus(CWnd *) 5322 void CWnd::OnSetFocus(CWnd *) 5323 long CCheckListBox::OnSetFont(unsigned int,long) 5324 void CDialog::OnSetFont(CFont *) 5325 long CEditView::OnSetFont(unsigned int,long) 5326 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 5327 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 5328 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 5329 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 5330 long CFrameWnd::OnSetMessageString(unsigned int,long) 5331 long COleControl::OnSetMessageString(unsigned int,long) 5332 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 5333 long CStatusBar::OnSetMinHeight(unsigned int,long) 5334 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 5335 void CDatabase::OnSetOptions(void *) 5336 void CRecordset::OnSetOptions(void *) 5337 void COlePropertyPage::OnSetPageSite(void) 5338 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 5339 long CToolBar::OnSetSizeHelper(CSize &,long) 5340 long COleControl::OnSetText(unsigned int,long) 5341 long CStatusBar::OnSetText(unsigned int,long) 5342 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 5343 void CRecordset::OnSetUpdateOptions(void *) 5344 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 5345 long CFileDialog::XFileDialogEvents::OnShareViolation(IFileDialog *,IShellItem *,enum tagFDE_SHAREVIOLATION_RESPONSE *) 5346 void CDocObjectServerItem::OnShow(void) 5347 void COleServerItem::OnShow(void) 5348 long CReBar::OnShowBand(unsigned int,long) 5349 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 5350 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 5351 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 5352 void COleServerDoc::OnShowDocument(int) 5353 void COleClientItem::OnShowItem(void) 5354 void CFrameWnd::OnShowMenuBar(void) 5355 void COleControl::OnShowToolBars(void) 5356 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 5357 void COleDocument::OnShowViews(int) 5358 void COleLinkingDoc::OnShowViews(int) 5359 void COleControl::OnShowWindow(int,unsigned int) 5360 long COleClientItem::XOleClientSite::OnShowWindow(int) 5361 long COleControlSite::XOleClientSite::OnShowWindow(int) 5362 void CDHtmlDialog::OnSize(unsigned int,int,int) 5363 void CFrameWnd::OnSize(unsigned int,int,int) 5364 void CHtmlView::OnSize(unsigned int,int,int) 5365 void CMDIChildWnd::OnSize(unsigned int,int,int) 5366 void CMDIFrameWnd::OnSize(unsigned int,int,int) 5367 void COleControl::OnSize(unsigned int,int,int) 5368 void COleIPFrameWnd::OnSize(unsigned int,int,int) 5369 void COleResizeBar::OnSize(unsigned int,int,int) 5370 void CPreviewView::OnSize(unsigned int,int,int) 5371 void CScrollView::OnSize(unsigned int,int,int) 5372 void CSplitterWnd::OnSize(unsigned int,int,int) 5373 void CStatusBar::OnSize(unsigned int,int,int) 5374 long CControlBar::OnSizeParent(unsigned int,long) 5375 long CDockBar::OnSizeParent(unsigned int,long) 5376 long COleResizeBar::OnSizeParent(unsigned int,long) 5377 int CEnumArray::OnSkip(void) 5378 long CSocketWnd::OnSocketDead(unsigned int,long) 5379 long CSocketWnd::OnSocketNotify(unsigned int,long) 5380 int CView::OnSplitCmd(unsigned int) 5381 void CAsyncMonikerFile::OnStartBinding(void) 5382 void CHtmlView::OnStatusBar(int) 5383 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 5384 void CHtmlView::OnStatusTextChange(wchar_t const *) 5385 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 5386 void CToolBar::OnSysColorChange(void) 5387 void CWnd::OnSysColorChange(void) 5388 void CFrameWnd::OnSysCommand(unsigned int,long) 5389 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 5390 void CPropertySheet::OnSysCommand(unsigned int,long) 5391 void CSplitterWnd::OnSysCommand(unsigned int,long) 5392 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 5393 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 5394 void COleControl::OnTextChanged(void) 5395 void CEditView::OnTextNotFound(wchar_t const *) 5396 void CRichEditView::OnTextNotFound(wchar_t const *) 5397 void CHtmlView::OnTheaterMode(int) 5398 long CControlBar::OnThemeChanged(void) 5399 void CControlBar::OnTimer(unsigned int) 5400 void CHtmlView::OnTitleChange(wchar_t const *) 5401 void CHtmlView::OnToolBar(int) 5402 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 5403 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 5404 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 5405 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 5406 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 5407 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 5408 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 5409 void CFileDialog::OnTypeChange(void) 5410 long CFileDialog::XFileDialogEvents::OnTypeChange(IFileDialog *) 5411 void COleControlContainer::OnUIActivate(COleControlSite *) 5412 long COleClientItem::XOleIPSite::OnUIActivate(void) 5413 long COleControlSite::XOleIPSite::OnUIActivate(void) 5414 void COleControlContainer::OnUIDeactivate(COleControlSite *) 5415 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 5416 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 5417 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 5418 void CView::OnUpdate(CView *,long,CObject *) 5419 void CRichEditView::OnUpdateBullet(CCmdUI *) 5420 void CRichEditView::OnUpdateCharBold(CCmdUI *) 5421 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 5422 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 5423 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 5424 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 5425 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 5426 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 5427 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 5428 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 5429 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 5430 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 5431 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5432 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 5433 int COleServerDoc::OnUpdateDocument(void) 5434 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 5435 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 5436 void CHtmlView::OnUpdateEditCut(CCmdUI *) 5437 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 5438 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 5439 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 5440 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 5441 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 5442 void CEditView::OnUpdateEditUndo(CCmdUI *) 5443 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 5444 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 5445 void CDocument::OnUpdateFileSendMail(CCmdUI *) 5446 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 5447 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5448 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 5449 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 5450 void CFrameWnd::OnUpdateFrameTitle(int) 5451 void CMDIChildWnd::OnUpdateFrameTitle(int) 5452 void CMDIFrameWnd::OnUpdateFrameTitle(int) 5453 int COleClientItem::OnUpdateFrameTitle(void) 5454 int COleFrameHook::OnUpdateFrameTitle(void) 5455 void COleServerItem::OnUpdateItems(void) 5456 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 5457 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 5458 void CEditView::OnUpdateNeedClip(CCmdUI *) 5459 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 5460 void CEditView::OnUpdateNeedFind(CCmdUI *) 5461 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 5462 void CEditView::OnUpdateNeedSel(CCmdUI *) 5463 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 5464 void CEditView::OnUpdateNeedText(CCmdUI *) 5465 void CRichEditView::OnUpdateNeedText(CCmdUI *) 5466 void CPreviewView::OnUpdateNextPage(CCmdUI *) 5467 void CView::OnUpdateNextPaneMenu(CCmdUI *) 5468 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 5469 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 5470 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 5471 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 5472 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 5473 void CRichEditView::OnUpdateParaRight(CCmdUI *) 5474 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 5475 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 5476 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 5477 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 5478 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 5479 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 5480 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 5481 void CRecordView::OnUpdateRecordLast(CCmdUI *) 5482 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 5483 void CRecordView::OnUpdateRecordNext(CCmdUI *) 5484 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 5485 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 5486 void CView::OnUpdateSplitCmd(CCmdUI *) 5487 long CHtmlView::OnUpdateUI(void) 5488 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 5489 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 5490 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 5491 void CHtmlView::OnVisible(int) 5492 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 5493 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5494 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5495 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5496 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5497 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 5498 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 5499 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 5500 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 5501 void CMDIFrameWnd::OnWindowNew(void) 5502 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 5503 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 5504 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 5505 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 5506 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 5507 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 5508 long CPropertyPage::OnWizardBack(void) 5509 int CPropertyPage::OnWizardFinish(void) 5510 HWND__ * CPropertyPage::OnWizardFinishEx(void) 5511 long CPropertyPage::OnWizardNext(void) 5512 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 5513 void CPreviewView::OnZoomIn(void) 5514 void CPreviewView::OnZoomOut(void) 5515 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 5516 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 5517 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 5518 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 5519 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 5520 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 5521 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 5522 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 5523 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 5524 void CDaoQueryDef::Open(wchar_t const *) 5525 void CDaoRecordset::Open(int,wchar_t const *,int) 5526 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 5527 void CDaoRecordset::Open(CDaoTableDef *,int,int) 5528 void CDaoTableDef::Open(wchar_t const *) 5529 void CDaoWorkspace::Open(wchar_t const *) 5530 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 5531 int CDataPathProperty::Open(CFileException *) 5532 int CDataPathProperty::Open(COleControl *,CFileException *) 5533 int CDataPathProperty::Open(wchar_t const *,CFileException *) 5534 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 5535 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 5536 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 5537 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5538 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 5539 int CMonikerFile::Open(IMoniker *,CFileException *) 5540 int CMonikerFile::Open(wchar_t const *,CFileException *) 5541 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 5542 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 5543 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 5544 long CDocObjectServer::XOleDocumentView::Open(void) 5545 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 5546 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 5547 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 5548 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 5549 int CDatabase::OpenEx(wchar_t const *,unsigned long) 5550 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 5551 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 5552 long COleUILinkInfo::OpenLinkSource(unsigned long) 5553 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 5554 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 5555 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 5556 void * CThemeHelper::OpenThemeData(HWND__ *,wchar_t const *) 5557 void * CThemeHelper::OpenThemeDataFail(HWND__ *,wchar_t const *) 5558 int CHtmlEditDoc::OpenURL(wchar_t const *) 5559 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 5560 int CFileException::OsErrorToException(long) 5561 void CDumpContext::OutputString(wchar_t const *) 5562 int CEditView::PaginateTo(CDC *,CPrintInfo *) 5563 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 5564 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 5565 int CWnd::PaintWindowlessControls(CDC *) 5566 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 5567 void CWinApp::ParseCommandLine(CCommandLineInfo &) 5568 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 5569 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5570 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 5571 void CCommandLineInfo::ParseLast(int) 5572 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 5573 void CCommandLineInfo::ParseParam(char const *,int,int) 5574 void CCommandLineInfo::ParseParamFlag(char const *) 5575 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 5576 void CCommandLineInfo::ParseParamNotFlag(char const *) 5577 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 5578 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc(void) 5579 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc(void)const 5580 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 5581 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 5582 int CDC::PlayMetaFile(HMETAFILE__ *) 5583 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 5584 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 5585 int CDC::PolyBezierTo(tagPOINT const *,int) 5586 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 5587 int CDC::PolylineTo(tagPOINT const *,int) 5588 void CPreviewView::PositionPage(unsigned int) 5589 int CAsyncMonikerFile::PostBindToStream(CFileException *) 5590 int CMonikerFile::PostBindToStream(CFileException *) 5591 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 5592 void CDialog::PostModal(void) 5593 void CPrintDialogEx::PostModal(void) 5594 void COleControl::PostModalDialog(HWND__ *) 5595 void CControlBar::PostNcDestroy(void) 5596 void CControlFrameWnd::PostNcDestroy(void) 5597 void CFindReplaceDialog::PostNcDestroy(void) 5598 void CFrameWnd::PostNcDestroy(void) 5599 void COleCntrFrameWnd::PostNcDestroy(void) 5600 void CReflectorWnd::PostNcDestroy(void) 5601 void CView::PostNcDestroy(void) 5602 void CWnd::PostNcDestroy(void) 5603 void ATL::CSimpleStringT::Preallocate(int) 5604 void ATL::CSimpleStringT::Preallocate(int) 5605 void CRecordset::PreBindFields(void) 5606 void CDocument::PreCloseFrame(CFrameWnd *) 5607 void COleDocument::PreCloseFrame(CFrameWnd *) 5608 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 5609 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 5610 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 5611 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 5612 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5613 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 5614 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 5615 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5616 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 5617 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 5618 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 5619 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5620 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 5621 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 5622 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 5623 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 5624 int CView::PreCreateWindow(tagCREATESTRUCTW &) 5625 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 5626 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 5627 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 5628 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 5629 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 5630 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 5631 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 5632 void CDialog::PreInitDialog(void) 5633 void COleChangeSourceDialog::PreInitDialog(void) 5634 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 5635 HWND__ * CDialog::PreModal(void) 5636 HWND__ * CPrintDialogEx::PreModal(void) 5637 void COleControl::PreModalDialog(HWND__ *) 5638 void CRecordset::PrepareAndExecute(void) 5639 HWND__ * CDataExchange::PrepareCtrl(int) 5640 HWND__ * CDataExchange::PrepareEditCtrl(int) 5641 void CWnd::PrepareForHelp(void) 5642 COleControlSite * CDataExchange::PrepareOleCtrl(int) 5643 void CRecordset::PrepareUpdateHstmt(void) 5644 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 5645 char * ATL::CSimpleStringT::PrepareWrite(int) 5646 void ATL::CSimpleStringT::PrepareWrite2(int) 5647 void ATL::CSimpleStringT::PrepareWrite2(int) 5648 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 5649 void CDragListBox::PreSubclassWindow(void) 5650 void CWnd::PreSubclassWindow(void) 5651 int CWnd::PreTranslateInput(tagMSG *) 5652 int CControlBar::PreTranslateMessage(tagMSG *) 5653 int CDialog::PreTranslateMessage(tagMSG *) 5654 int CFormView::PreTranslateMessage(tagMSG *) 5655 int CFrameWnd::PreTranslateMessage(tagMSG *) 5656 int CHtmlView::PreTranslateMessage(tagMSG *) 5657 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 5658 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 5659 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 5660 int COlePropertyPage::PreTranslateMessage(tagMSG *) 5661 int CPropertyPage::PreTranslateMessage(tagMSG *) 5662 int CPropertySheet::PreTranslateMessage(tagMSG *) 5663 int CWinThread::PreTranslateMessage(tagMSG *) 5664 int CWnd::PreTranslateMessage(tagMSG *) 5665 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 5666 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 5667 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 5668 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 5669 long CRichEditView::PrintPage(CDC *,long,long) 5670 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 5671 long COleException::Process(CException const *) 5672 int CSocket::ProcessAuxQueue(void) 5673 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 5674 int CWinThread::ProcessMessageFilter(int,tagMSG *) 5675 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 5676 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 5677 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 5678 void COleSafeArray::PtrOfIndex(long *,void * *) 5679 int CMetaFileDC::PtVisible(int,int)const 5680 int CWinThread::PumpMessage(void) 5681 int CSocket::PumpMessages(unsigned int) 5682 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 5683 long CWnd::put_accName(tagVARIANT,wchar_t *) 5684 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 5685 long CWnd::put_accValue(tagVARIANT,wchar_t *) 5686 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 5687 void COleSafeArray::PutElement(long *,void *) 5688 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 5689 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 5690 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 5691 int PX_Bool(CPropExchange *,wchar_t const *,int &) 5692 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 5693 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 5694 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5695 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 5696 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 5697 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 5698 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 5699 int PX_Double(CPropExchange *,wchar_t const *,double &) 5700 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 5701 int PX_Float(CPropExchange *,wchar_t const *,float &) 5702 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 5703 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 5704 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 5705 int PX_Long(CPropExchange *,wchar_t const *,long &) 5706 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 5707 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 5708 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 5709 int PX_Short(CPropExchange *,wchar_t const *,short &) 5710 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 5711 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 5712 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 5713 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 5714 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 5715 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 5716 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 5717 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 5718 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 5719 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5720 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 5721 IUnknown * CCmdTarget::QueryAggregates(void const *) 5722 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 5723 long COleDropSource::QueryContinueDrag(int,unsigned long) 5724 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 5725 void * COleControl::QueryDefHandler(_GUID const &) 5726 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 5727 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 5728 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 5729 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 5730 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 5731 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 5732 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 5733 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 5734 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 5735 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 5736 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 5737 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 5738 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 5739 long CArchiveStream::QueryInterface(_GUID const &,void * *) 5740 long CBlobProperty::QueryInterface(_GUID const &,void * *) 5741 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 5742 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 5743 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 5744 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 5745 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 5746 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 5747 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 5748 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 5749 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 5750 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 5751 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 5752 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 5753 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 5754 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 5755 long CPropertyPage::QuerySiblings(unsigned int,long) 5756 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 5757 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 5758 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5759 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 5760 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 5761 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 5762 int COleControlSite::QuickActivate(void) 5763 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 5764 int COleClientItem::ReactivateAndUndo(void) 5765 long COleControl::XOleInPlaceObject::ReactivateAndUndo(void) 5766 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo(void) 5767 unsigned int CArchive::Read(void *,unsigned int) 5768 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 5769 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 5770 unsigned int CFile::Read(void *,unsigned int) 5771 int CImageList::Read(CArchive *) 5772 unsigned int CInternetFile::Read(void *,unsigned int) 5773 unsigned int CMemFile::Read(void *,unsigned int) 5774 unsigned int COleStreamFile::Read(void *,unsigned int) 5775 unsigned int CSocketFile::Read(void *,unsigned int) 5776 unsigned int CStdioFile::Read(void *,unsigned int) 5777 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 5778 unsigned long CArchive::ReadCount(void) 5779 void CEditView::ReadFromArchive(CArchive &,unsigned int) 5780 int CProperty::ReadFromStream(IStream *) 5781 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 5782 int CPropertySet::ReadFromStream(IStream *) 5783 void COleClientItem::ReadItem(CArchive &) 5784 void COleClientItem::ReadItemCompound(CArchive &) 5785 void COleClientItem::ReadItemFlat(CArchive &) 5786 void CRecentFileList::ReadList(void) 5787 int CPropertySection::ReadNameDictFromStream(IStream *) 5788 CObject * CArchive::ReadObject(CRuntimeconst *) 5789 int CArchive::ReadString(ATL::CStringT > > &) 5790 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 5791 int CInternetFile::ReadString(ATL::CStringT > > &) 5792 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 5793 int CStdioFile::ReadString(ATL::CStringT > > &) 5794 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 5795 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 5796 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 5797 void ATL::CSimpleStringT::Reallocate(int) 5798 void ATL::CSimpleStringT::Reallocate(int) 5799 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 5800 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 5801 void CRecordset::RebindParams(void *) 5802 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 5803 void CFrameWnd::RecalcLayout(int) 5804 void CMiniDockFrameWnd::RecalcLayout(int) 5805 void COleCntrFrameWnd::RecalcLayout(int) 5806 void COleDocIPFrameWnd::RecalcLayout(int) 5807 void COleIPFrameWnd::RecalcLayout(int) 5808 void CSplitterWnd::RecalcLayout(void) 5809 int CAsyncSocket::Receive(void *,int,int) 5810 int CSocket::Receive(void *,int,int) 5811 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 5812 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5813 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 5814 void COleControl::RecreateControlWindow(void) 5815 CRect const CFrameWnd::rectDefault 5816 int CMetaFileDC::RectVisible(tagRECT const *)const 5817 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 5818 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 5819 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 5820 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 5821 int CWnd::ReflectLastMsg(HWND__ *,long *) 5822 void COleControl::Refresh(void) 5823 void CDaoTableDef::RefreshLink(void) 5824 void CRecordset::RefreshRowset(unsigned short,unsigned short) 5825 int COleDropTarget::Register(CWnd *) 5826 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 5827 int COleMessageFilter::Register(void) 5828 int COleObjectFactory::Register(void) 5829 int COleTemplateServer::Register(void) 5830 int CWinApp::Register(void) 5831 int COleObjectFactory::RegisterAll(void) 5832 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 5833 void CDocManager::RegisterShellFileTypes(int) 5834 void CWinApp::RegisterShellFileTypes(int) 5835 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 5836 unsigned long CArchiveStream::Release(void) 5837 unsigned long CBlobProperty::Release(void) 5838 unsigned long CBrowserControlSite::Release(void) 5839 unsigned long CDHtmlControlSink::Release(void) 5840 unsigned long CDHtmlElementEventSink::Release(void) 5841 unsigned long CDHtmlEventSink::Release(void) 5842 unsigned long CInnerUnknown::Release(void) 5843 void COleClientItem::Release(enum tagOLECLOSE) 5844 unsigned long COleConnPtContainer::Release(void) 5845 void COleDataObject::Release(void) 5846 unsigned long COleDispatchImpl::Release(void) 5847 void COleDocObjectItem::Release(enum tagOLECLOSE) 5848 unsigned long COleUILinkInfo::Release(void) 5849 unsigned long CPrintDialogEx::Release(void) 5850 void CDC::ReleaseAttribDC(void) 5851 void ATL::CSimpleStringT::ReleaseBuffer(int) 5852 void ATL::CSimpleStringT::ReleaseBuffer(int) 5853 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5854 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 5855 void COleControl::ReleaseCaches(void) 5856 int COleControl::ReleaseCapture(void) 5857 int COleControl::ReleaseDC(CDC *) 5858 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 5859 void COleDispatchDriver::ReleaseDispatch(void) 5860 void CDocObjectServer::ReleaseDocSite(void) 5861 void CDocument::ReleaseFile(CFile *,int) 5862 void CFontHolder::ReleaseFont(void) 5863 void CDC::ReleaseOutputDC(void) 5864 void CMetaFileDC::ReleaseOutputDC(void) 5865 void CPreviewDC::ReleaseOutputDC(void) 5866 int COleClientItem::Reload(void) 5867 int ATL::CStringT > >::Remove(wchar_t) 5868 int ATL::CStringT > >::Remove(char) 5869 void CFile::Remove(wchar_t const *) 5870 int CFtpConnection::Remove(wchar_t const *) 5871 void CPropertySection::Remove(unsigned long) 5872 void CPropertySet::Remove(_GUID) 5873 void CPropertySet::Remove(_GUID,unsigned long) 5874 void CRecentFileList::Remove(int) 5875 int CSimpleList::Remove(void *) 5876 void CMapPtrToPtr::RemoveAll(void) 5877 void CMapPtrToWord::RemoveAll(void) 5878 void CMapStringToOb::RemoveAll(void) 5879 void CMapStringToPtr::RemoveAll(void) 5880 void CMapStringToString::RemoveAll(void) 5881 void CMapWordToOb::RemoveAll(void) 5882 void CMapWordToPtr::RemoveAll(void) 5883 void CObList::RemoveAll(void) 5884 void CPropertySection::RemoveAll(void) 5885 void CPropertySet::RemoveAll(void) 5886 void CPtrList::RemoveAll(void) 5887 void CStringList::RemoveAll(void) 5888 void CTypeLibCacheMap::RemoveAll(void *) 5889 void CByteArray::RemoveAt(int,int) 5890 void CDWordArray::RemoveAt(int,int) 5891 void CObArray::RemoveAt(int,int) 5892 void CObList::RemoveAt(__POSITION *) 5893 void CPtrArray::RemoveAt(int,int) 5894 void CPtrList::RemoveAt(__POSITION *) 5895 void CStringArray::RemoveAt(int,int) 5896 void CStringList::RemoveAt(__POSITION *) 5897 void CUIntArray::RemoveAt(int,int) 5898 void CWordArray::RemoveAt(int,int) 5899 int CDockBar::RemoveControlBar(CControlBar *,int,int) 5900 void CFrameWnd::RemoveControlBar(CControlBar *) 5901 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 5902 void CDocTemplate::RemoveDocument(CDocument *) 5903 void CMultiDocTemplate::RemoveDocument(CDocument *) 5904 void CSingleDocTemplate::RemoveDocument(CDocument *) 5905 void COleControl::RemoveFrameLevelUI(void) 5906 void CFrameWnd::RemoveFrameWnd(void) 5907 CObject * CObList::RemoveHead(void) 5908 void * CPtrList::RemoveHead(void) 5909 ATL::CStringT > > CStringList::RemoveHead(void) 5910 void CListCtrl::RemoveImageList(int) 5911 void CListView::RemoveImageList(int) 5912 void CTreeCtrl::RemoveImageList(int) 5913 void CTreeView::RemoveImageList(int) 5914 void COleDocument::RemoveItem(CDocItem *) 5915 int CMapPtrToPtr::RemoveKey(void *) 5916 int CMapPtrToWord::RemoveKey(void *) 5917 int CMapStringToOb::RemoveKey(wchar_t const *) 5918 int CMapStringToPtr::RemoveKey(wchar_t const *) 5919 int CMapStringToString::RemoveKey(wchar_t const *) 5920 int CMapWordToOb::RemoveKey(unsigned short) 5921 int CMapWordToPtr::RemoveKey(unsigned short) 5922 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 5923 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 5924 void CPropertySheet::RemovePage(int) 5925 void CPropertySheet::RemovePage(CPropertyPage *) 5926 void CDockBar::RemovePlaceHolder(CControlBar *) 5927 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 5928 void CDataBoundProperty::RemoveSource(void) 5929 CObject * CObList::RemoveTail(void) 5930 void * CPtrList::RemoveTail(void) 5931 ATL::CStringT > > CStringList::RemoveTail(void) 5932 void CDocument::RemoveView(CView *) 5933 void CFile::Rename(wchar_t const *,wchar_t const *) 5934 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 5935 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 5936 void CDaoWorkspace::RepairDatabase(wchar_t const *) 5937 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 5938 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 5939 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 5940 int ATL::CStringT > >::Replace(char,char) 5941 int ATL::CStringT > >::Replace(char const *,char const *) 5942 void CDatabase::ReplaceBrackets(wchar_t *) 5943 int CException::ReportError(unsigned int,unsigned int) 5944 int COleClientItem::ReportError(long)const 5945 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5946 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 5947 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 5948 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 5949 void CDaoRecordset::Requery(void) 5950 int CRecordset::Requery(void) 5951 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 5952 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 5953 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 5954 long COleClientItem::XOleClientSite::RequestNewObjectLayout(void) 5955 long COleControlSite::XOleClientSite::RequestNewObjectLayout(void) 5956 void COleServerDoc::RequestPositionChange(tagRECT const *) 5957 long COleControlSite::XOleIPSite::RequestUIActivate(void) 5958 long CEnumArray::XEnumVOID::Reset(void) 5959 void CRecordset::ResetCursor(void) 5960 void CCachedDataPathProperty::ResetData(void) 5961 void CDataPathProperty::ResetData(void) 5962 void COleControl::ResetStockProps(void) 5963 void CControlBar::ResetTimer(unsigned int,unsigned int) 5964 void COleControl::ResetVersion(unsigned long) 5965 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5966 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5967 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5968 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5969 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 5970 void COleControl::ResizeFrameWindow(int,int) 5971 void COleSafeArray::ResizeOneDim(unsigned long) 5972 void COleControl::ResizeOpenControl(int,int) 5973 void CScrollView::ResizeParentToFit(int) 5974 int CDC::RestoreDC(int) 5975 int CPreviewDC::RestoreDC(int) 5976 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 5977 void CCmdTarget::RestoreWaitCursor(void) 5978 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 5979 int ATL::CStringT > >::ReverseFind(wchar_t)const 5980 int ATL::CStringT > >::ReverseFind(char)const 5981 long CArchiveStream::Revert(void) 5982 void COleDropTarget::Revoke(void) 5983 void COleLinkingDoc::Revoke(void) 5984 void COleMessageFilter::Revoke(void) 5985 void COleObjectFactory::Revoke(void) 5986 void COleObjectFactory::RevokeAll(void) 5987 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 5988 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 5989 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 5990 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 5991 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 5992 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 5993 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 5994 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 5995 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 5996 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 5997 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 5998 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 5999 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 6000 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 6001 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 6002 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 6003 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 6004 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 6005 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 6006 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 6007 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 6008 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 6009 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 6010 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 6011 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 6012 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 6013 ATL::CStringT > > ATL::CStringT > >::Right(int)const 6014 ATL::CStringT > > ATL::CStringT > >::Right(int)const 6015 void CDaoWorkspace::Rollback(void) 6016 int CDatabase::Rollback(void) 6017 void COleClientItem::Run(void) 6018 int CWinApp::Run(void) 6019 int CWinThread::Run(void) 6020 int CWinApp::RunAutomated(void) 6021 int CWinApp::RunEmbedded(void) 6022 int CWnd::RunModalLoop(unsigned long) 6023 int COleControlSite::SafeSetProperty(long,unsigned short,...) 6024 int CEditView::SameAsSelected(wchar_t const *,int) 6025 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 6026 long CBlobProperty::Save(IStream *,int) 6027 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 6028 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 6029 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 6030 long COleControl::XPersistStorage::Save(IStorage *,int) 6031 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 6032 long COleControl::XPersistStreamInit::Save(IStream *,int) 6033 int CDocManager::SaveAllModified(void) 6034 int CDocTemplate::SaveAllModified(void) 6035 int CWinApp::SaveAllModified(void) 6036 void CFrameWnd::SaveBarState(wchar_t const *)const 6037 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 6038 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 6039 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 6040 int CDC::SaveDC(void) 6041 int CPreviewDC::SaveDC(void) 6042 void COleServerDoc::SaveEmbedding(void) 6043 int CFormView::SaveFocusControl(void) 6044 int CDocument::SaveModified(void) 6045 int COleDocument::SaveModified(void) 6046 int COleServerDoc::SaveModified(void) 6047 int COleServerDoc::SaveModifiedPrompt(void) 6048 long COleClientItem::XOleClientSite::SaveObject(void) 6049 long COleControlSite::XOleClientSite::SaveObject(void) 6050 int CControlBarInfo::SaveState(wchar_t const *,int) 6051 void CDockState::SaveState(wchar_t const *) 6052 long COleControl::SaveState(IStream *) 6053 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 6054 void CWinApp::SaveStdProfileSettings(void) 6055 void COleDocument::SaveToStorage(CObject *) 6056 void COleLinkingDoc::SaveToStorage(CObject *) 6057 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 6058 void CDockState::ScalePoint(CPoint &) 6059 void CDockState::ScaleRectPos(CRect &) 6060 CSize CDC::ScaleViewportExt(int,int,int,int) 6061 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 6062 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 6063 CSize CDC::ScaleWindowExt(int,int,int,int) 6064 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 6065 void CWnd::ScreenToClient(tagRECT *)const 6066 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 6067 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 6068 void COleControlContainer::ScrollChildren(int,int) 6069 int COleServerDoc::ScrollContainerBy(CSize) 6070 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 6071 void CScrollView::ScrollToDevicePosition(tagPOINT) 6072 void CScrollView::ScrollToPosition(tagPOINT) 6073 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 6074 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 6075 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 6076 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 6077 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 6078 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 6079 unsigned __int64 CFile::Seek(__int64,unsigned int) 6080 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 6081 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 6082 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 6083 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 6084 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 6085 CFont * CFontHolder::Select(CDC *,long,long) 6086 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 6087 int CDC::SelectClipPath(int) 6088 int CDC::SelectClipRgn(CRgn *) 6089 int CDC::SelectClipRgn(CRgn *,int) 6090 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 6091 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 6092 long CPrintDialogEx::SelectionChange(void) 6093 int CDC::SelectObject(CRgn *) 6094 CBrush * CDC::SelectObject(CBrush *) 6095 CPen * CDC::SelectObject(CPen *) 6096 CFont * CDC::SelectObject(CFont *) 6097 CFont * CPreviewDC::SelectObject(CFont *) 6098 CPalette * CDC::SelectPalette(CPalette *,int) 6099 void CWinApp::SelectPrinter(void *,void *,int) 6100 CFont * COleControl::SelectStockFont(CDC *) 6101 CGdiObject * CDC::SelectStockObject(int) 6102 CGdiObject * CPreviewDC::SelectStockObject(int) 6103 int CAsyncSocket::Send(void const *,int,int) 6104 int CSocket::Send(void const *,int,int) 6105 void COleControl::SendAdvise(unsigned int) 6106 int CWnd::SendChildNotifyLastMsg(long *) 6107 int CSocket::SendChunk(void const *,int,int) 6108 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 6109 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 6110 void CDocument::SendInitialUpdate(void) 6111 void CRecordset::SendLongBinaryData(void *) 6112 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 6113 void COleControlSite::SendMnemonic(tagMSG *) 6114 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 6115 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 6116 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 6117 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 6118 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 6119 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 6120 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 6121 void CByteArray::Serialize(CArchive &) 6122 void CControlBarInfo::Serialize(CArchive &,CDockState *) 6123 void CDocItem::Serialize(CArchive &) 6124 void CDockState::Serialize(CArchive &) 6125 void CDWordArray::Serialize(CArchive &) 6126 void CEditView::Serialize(CArchive &) 6127 void CMapStringToOb::Serialize(CArchive &) 6128 void CMapStringToString::Serialize(CArchive &) 6129 void CMapWordToOb::Serialize(CArchive &) 6130 void CObArray::Serialize(CArchive &) 6131 void CObList::Serialize(CArchive &) 6132 void COleClientItem::Serialize(CArchive &) 6133 void COleControl::Serialize(CArchive &) 6134 void COleDocument::Serialize(CArchive &) 6135 void CRichEditDoc::Serialize(CArchive &) 6136 void CRichEditView::Serialize(CArchive &) 6137 void CStringArray::Serialize(CArchive &) 6138 void CStringList::Serialize(CArchive &) 6139 void CWordArray::Serialize(CArchive &) 6140 CArchive & ATL::CTime::Serialize64(CArchive &) 6141 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 6142 void CArchive::SerializeClass(CRuntimeconst *) 6143 void COleControl::SerializeExtent(CArchive &) 6144 void CEditView::SerializeRaw(CArchive &) 6145 void COleControl::SerializeStockProps(CArchive &) 6146 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 6147 int CProperty::Set(unsigned long,void * const,unsigned long) 6148 int CProperty::Set(void * const) 6149 int CProperty::Set(void * const,unsigned long) 6150 int CPropertySection::Set(unsigned long,void *) 6151 int CPropertySection::Set(unsigned long,void *,unsigned long) 6152 int CPropertySet::Set(_GUID,unsigned long,void *) 6153 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 6154 void CDaoRecordset::SetAbsolutePosition(long) 6155 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 6156 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 6157 int CPropertySheet::SetActivePage(int) 6158 int CPropertySheet::SetActivePage(CPropertyPage *) 6159 void CSplitterWnd::SetActivePane(int,int,CWnd *) 6160 void CFrameWnd::SetActiveView(CView *,int) 6161 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 6162 void COleControl::SetAppearance(short) 6163 int CDC::SetArcDirection(int) 6164 void ATL::CSimpleStringT::SetAt(int,wchar_t) 6165 void ATL::CSimpleStringT::SetAt(int,char) 6166 void CByteArray::SetAtGrow(int,unsigned char) 6167 void CDWordArray::SetAtGrow(int,unsigned long) 6168 void CObArray::SetAtGrow(int,CObject *) 6169 void CPtrArray::SetAtGrow(int,void *) 6170 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 6171 void CStringArray::SetAtGrow(int,wchar_t const *) 6172 void CUIntArray::SetAtGrow(int,unsigned int) 6173 void CWordArray::SetAtGrow(int,unsigned short) 6174 void CDC::SetAttribDC(HDC__ *) 6175 void CMetaFileDC::SetAttribDC(HDC__ *) 6176 void CPreviewDC::SetAttribDC(HDC__ *) 6177 void CDaoTableDef::SetAttributes(long) 6178 void COleControl::SetBackColor(unsigned long) 6179 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 6180 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 6181 void CControlBar::SetBarStyle(unsigned long) 6182 int CToolBar::SetBitmap(HBITMAP__ *) 6183 unsigned long CDC::SetBkColor(unsigned long) 6184 unsigned long CPreviewDC::SetBkColor(unsigned long) 6185 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 6186 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 6187 int CDC::SetBkMode(int) 6188 void CDaoRecordset::SetBookmark(COleVariant) 6189 void CRecordset::SetBookmark(CDBVariant const &) 6190 void CControlBar::SetBorders(int,int,int,int) 6191 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 6192 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 6193 void COleControl::SetBorderStyle(short) 6194 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 6195 int CToolBar::SetButtons(unsigned int const *,int) 6196 void CToolBar::SetButtonStyle(int,unsigned int) 6197 int CToolBar::SetButtonText(int,wchar_t const *) 6198 void CDaoRecordset::SetCacheSize(long) 6199 void CDaoRecordset::SetCacheStart(COleVariant) 6200 CWnd * COleControl::SetCapture(void) 6201 long COleControlSite::XOleIPSite::SetCapture(int) 6202 void CRichEditView::SetCharFormat(CHARFORMAT2W) 6203 void CCheckListBox::SetCheck(int,int) 6204 void CCmdUI::SetCheck(int) 6205 int CListCtrl::SetCheck(int,int) 6206 void COleCmdUI::SetCheck(int) 6207 void CStatusCmdUI::SetCheck(int) 6208 void CTestCmdUI::SetCheck(int) 6209 void CToolCmdUI::SetCheck(int) 6210 int CTreeCtrl::SetCheck(_TREEITEM *,int) 6211 void CCheckListBox::SetCheckStyle(unsigned int) 6212 void CPropertySet::SetClassID(_GUID) 6213 void CDataBoundProperty::SetClientSite(COleControlSite *) 6214 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 6215 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 6216 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 6217 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 6218 void COleDataSource::SetClipboard(void) 6219 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 6220 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 6221 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 6222 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 6223 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 6224 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 6225 void CSplitterWnd::SetColumnInfo(int,int,int) 6226 int CListCtrl::SetColumnOrderArray(int,int *) 6227 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 6228 void CDaoQueryDef::SetConnect(wchar_t const *) 6229 void CDaoTableDef::SetConnect(wchar_t const *) 6230 void CDocTemplate::SetContainerInfo(unsigned int) 6231 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 6232 void CReflectorWnd::SetControl(COleControl *) 6233 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 6234 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 6235 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 6236 int COleControl::SetControlSize(int,int) 6237 int COlePropertyPage::SetControlStatus(unsigned int,int) 6238 void CFileDialog::SetControlText(int,wchar_t const *) 6239 void CFileDialog::SetControlText(int,char const *) 6240 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 6241 void COleCurrency::SetCurrency(long,long) 6242 void CColorDialog::SetCurrentColor(unsigned long) 6243 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 6244 void CWinApp::SetCurrentHandles(void) 6245 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 6246 void CPreviewView::SetCurrentPage(unsigned int,int) 6247 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 6248 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 6249 int CRectTracker::SetCursor(CWnd *,unsigned int)const 6250 void CDaoRecordset::SetCursorAttributes(void) 6251 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6252 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6253 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6254 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6255 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 6256 int CMonthCalCtrl::SetDayState(int,unsigned long *) 6257 void COccManager::SetDefaultButton(CWnd *,int) 6258 void COleControlSite::SetDefaultButton(int) 6259 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 6260 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 6261 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 6262 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 6263 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 6264 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 6265 void CFileDialog::SetDefExt(char const *) 6266 void COlePropertyPage::SetDialogResource(void *) 6267 void CDaoRecordset::SetDirtyFields(void) 6268 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 6269 void CRecordset::SetDirtyFieldStatus(unsigned long) 6270 int COleControlSite::SetDlgCtrlID(int) 6271 int CWnd::SetDlgCtrlID(int) 6272 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 6273 void CWnd::SetDlgItemInt(int,unsigned int,int) 6274 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 6275 void CWnd::SetDlgItemTextW(int,wchar_t const *) 6276 void CFrameWnd::SetDockState(CDockState const &) 6277 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 6278 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 6279 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 6280 void CSplitButton::SetDropDownMenu(unsigned int,unsigned int) 6281 void CSplitButton::SetDropDownMenu(CMenu *) 6282 void CDataBoundProperty::SetDSCSite(COleControlSite *) 6283 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 6284 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 6285 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 6286 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 6287 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 6288 void COleControl::SetEnabled(int) 6289 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 6290 int COleControlSite::SetExtent(void) 6291 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 6292 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 6293 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 6294 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 6295 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 6296 void CDaoRecordset::SetFieldDirty(void *,int) 6297 void CRecordset::SetFieldDirty(void *,int) 6298 void CDaoRecordset::SetFieldNull(void *,int) 6299 void CRecordset::SetFieldNull(void *,int) 6300 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 6301 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 6302 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 6303 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 6304 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 6305 void CDaoRecordset::SetFieldValueNull(int) 6306 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 6307 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 6308 CWnd * COleControl::SetFocus(void) 6309 CWnd * COleControlSite::SetFocus(tagMSG *) 6310 CWnd * COleControlSite::SetFocus(void) 6311 CWnd * CWnd::SetFocus(void) 6312 long COleControlSite::XOleIPSite::SetFocus(int) 6313 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 6314 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 6315 void CFontHolder::SetFont(IFont *) 6316 void COleControl::SetFont(IFontDisp *) 6317 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 6318 void COleControl::SetForeColor(unsigned long) 6319 void CPropertySection::SetFormatID(_GUID) 6320 void CPropertySet::SetFormatVersion(unsigned short) 6321 int CDC::SetGraphicsMode(int) 6322 void CSharedFile::SetHandle(void *,int) 6323 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 6324 void CToolBar::SetHeight(int) 6325 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 6326 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 6327 void CDHtmlDialog::SetHostFlags(unsigned long) 6328 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 6329 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6330 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6331 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6332 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 6333 int COleClientItem::SetIconicMetafile(void *) 6334 CSize CListCtrl::SetIconSpacing(int,int) 6335 CSize CListCtrl::SetIconSpacing(CSize) 6336 void CProperty::SetID(unsigned long) 6337 int CReBarCtrl::SetImageList(CImageList *) 6338 int CStatusBar::SetIndicators(unsigned int const *,int) 6339 void CDaoWorkspace::SetIniPath(wchar_t const *) 6340 void COleControl::SetInitialDataFormats(void) 6341 long CDocObjectServer::XPrint::SetInitialPageNum(long) 6342 void COleControl::SetInitialSize(int,int) 6343 void CControlBar::SetInPlaceOwner(CWnd *) 6344 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 6345 void CDaoWorkspace::SetIsolateODBCTrans(int) 6346 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 6347 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 6348 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 6349 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 6350 int CListCtrl::SetItemCountEx(int,unsigned long) 6351 int CTreeCtrl::SetItemEx(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,unsigned int,HWND__ *,int) 6352 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 6353 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 6354 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 6355 int CListCtrl::SetItemText(int,int,wchar_t const *) 6356 unsigned long CDC::SetLayout(unsigned long) 6357 void ATL::CSimpleStringT::SetLength(int) 6358 void ATL::CSimpleStringT::SetLength(int) 6359 void CFile::SetLength(unsigned __int64) 6360 void CInternetFile::SetLength(unsigned __int64) 6361 void CMemFile::SetLength(unsigned __int64) 6362 void COleStreamFile::SetLength(unsigned __int64) 6363 void CSocketFile::SetLength(unsigned __int64) 6364 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 6365 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 6366 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 6367 void CDaoRecordset::SetLockingMode(int) 6368 void CRecordset::SetLockingMode(unsigned int) 6369 void CDaoWorkspace::SetLoginTimeout(short) 6370 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 6371 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 6372 int CDC::SetMapMode(int) 6373 int CPreviewDC::SetMapMode(int) 6374 unsigned long CDC::SetMapperFlags(unsigned long) 6375 int CFrameWnd::SetMenu(CMenu *) 6376 int CWnd::SetMenu(CMenu *) 6377 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6378 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 6379 int CFrameWnd::SetMenuBarState(unsigned long) 6380 int CMDIFrameWnd::SetMenuBarState(unsigned long) 6381 void CFrameWnd::SetMenuBarVisibility(unsigned long) 6382 void CMDIFrameWnd::SetMenuBarVisibility(unsigned long) 6383 void CFrameWnd::SetMessageText(unsigned int) 6384 void CFrameWnd::SetMessageText(wchar_t const *) 6385 void CPropertyPage::SetModified(int) 6386 void COleControl::SetModifiedFlag(int) 6387 void COlePropertyPage::SetModifiedFlag(int) 6388 void CRichEditDoc::SetModifiedFlag(int) 6389 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 6390 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 6391 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 6392 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 6393 void CDaoQueryDef::SetName(wchar_t const *) 6394 void CDaoTableDef::SetName(wchar_t const *) 6395 int CPropertySection::SetName(unsigned long,wchar_t const *) 6396 void COleControl::SetNotPermitted(void) 6397 void CCmdTarget::SetNotSupported(void) 6398 void COleControl::SetNotSupported(void) 6399 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 6400 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 6401 void CDaoRecordset::SetNullFieldStatus(unsigned int) 6402 void CRecordset::SetNullFieldStatus(unsigned long) 6403 void CRecordset::SetNullParamStatus(unsigned long) 6404 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 6405 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6406 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 6407 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 6408 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6409 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6410 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6411 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 6412 void CDaoQueryDef::SetODBCTimeout(short) 6413 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 6414 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 6415 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 6416 int CHeaderCtrl::SetOrderArray(int,int *) 6417 void CPropertySet::SetOSVersion(unsigned long) 6418 void CDC::SetOutputDC(HDC__ *) 6419 void CMetaFileDC::SetOutputDC(HDC__ *) 6420 void CPreviewDC::SetOutputDC(HDC__ *) 6421 void CToolBar::SetOwner(CWnd *) 6422 void COlePropertyPage::SetPageName(wchar_t const *) 6423 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 6424 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 6425 void CStatusBar::SetPaneStyle(int,unsigned int) 6426 int CStatusBar::SetPaneText(int,wchar_t const *,int) 6427 int CRichEditCtrl::SetParaFormat(_paraformat &) 6428 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 6429 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 6430 void CRecordset::SetParamNull(int,int) 6431 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 6432 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 6433 void CDaoRecordset::SetParamValue(int,COleVariant const &) 6434 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 6435 void CDaoQueryDef::SetParamValueNull(int) 6436 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 6437 void CDaoRecordset::SetParamValueNull(int) 6438 void CDaoRecordset::SetParamValueNull(wchar_t const *) 6439 void CDocument::SetPathName(wchar_t const *,int) 6440 void COleDocument::SetPathName(wchar_t const *,int) 6441 void CRichEditDoc::SetPathName(wchar_t const *,int) 6442 void CDaoRecordset::SetPercentPosition(float) 6443 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 6444 int CDC::SetPolyFillMode(int) 6445 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 6446 int COleClientItem::SetPrintDevice(tagPDW const *) 6447 void CEditView::SetPrinterFont(CFont *) 6448 int CPreviewView::SetPrintView(CView *) 6449 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 6450 void COleControlSite::SetProperty(long,unsigned short,...) 6451 void COleDispatchDriver::SetProperty(long,unsigned short,...) 6452 void CWnd::SetProperty(long,unsigned short,...) 6453 void COleControlSite::SetPropertyV(long,unsigned short,char *) 6454 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 6455 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 6456 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 6457 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 6458 int COlePropertyPage::SetPropText(wchar_t const *,short &) 6459 int COlePropertyPage::SetPropText(wchar_t const *,int &) 6460 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 6461 int COlePropertyPage::SetPropText(wchar_t const *,long &) 6462 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 6463 int COlePropertyPage::SetPropText(wchar_t const *,float &) 6464 int COlePropertyPage::SetPropText(wchar_t const *,double &) 6465 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 6466 long CWnd::SetProxy(IAccessibleProxy *) 6467 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 6468 void CDaoDatabase::SetQueryTimeout(short) 6469 void CCmdUI::SetRadio(int) 6470 void CTestCmdUI::SetRadio(int) 6471 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 6472 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 6473 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 6474 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 6475 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6476 void CSliderCtrl::SetRange(int,int,int) 6477 int CInternetFile::SetReadBufferSize(unsigned int) 6478 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 6479 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 6480 int COleControl::SetRectInContainer(tagRECT const *) 6481 void CWinApp::SetRegistryKey(unsigned int) 6482 void CWinApp::SetRegistryKey(wchar_t const *) 6483 void CDaoQueryDef::SetReturnsRecords(int) 6484 int CDC::SetROP2(int) 6485 void CSplitterWnd::SetRowInfo(int,int,int) 6486 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 6487 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 6488 void CRecordset::SetRowsetSize(unsigned long) 6489 void CPreviewView::SetScaledSize(unsigned int) 6490 void CPreviewDC::SetScaleRatio(int,int) 6491 void CScrollView::SetScaleToFitSize(tagSIZE) 6492 void CDockState::SetScreenSize(CSize &) 6493 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 6494 int CWnd::SetScrollPos(int,int,int) 6495 void CWnd::SetScrollRange(int,int,int,int) 6496 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 6497 void CSplitterWnd::SetScrollStyle(unsigned long) 6498 int CPropertySection::SetSectionName(wchar_t const *) 6499 void CRichEditCtrl::SetSel(long,long) 6500 void CSliderCtrl::SetSelection(int,int) 6501 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 6502 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 6503 void CCheckListBox::SetSelectionCheck(int) 6504 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 6505 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 6506 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 6507 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 6508 long CPrintDialogEx::SetSite(IUnknown *) 6509 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 6510 void CByteArray::SetSize(int,int) 6511 void CDWordArray::SetSize(int,int) 6512 void CObArray::SetSize(int,int) 6513 void CPtrArray::SetSize(int,int) 6514 void CStringArray::SetSize(int,int) 6515 void CUIntArray::SetSize(int,int) 6516 void CWordArray::SetSize(int,int) 6517 void CToolBar::SetSizes(tagSIZE,tagSIZE) 6518 void CDaoTableDef::SetSourceTableName(wchar_t const *) 6519 void CSplitterWnd::SetSplitCursor(int) 6520 void CDaoQueryDef::SetSQL(wchar_t const *) 6521 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 6522 void CRecordset::SetState(int,wchar_t const *,unsigned long) 6523 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 6524 int CControlBar::SetStatusText(int) 6525 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 6526 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 6527 int CDC::SetStretchBltMode(int) 6528 void ATL::CSimpleStringT::SetString(wchar_t const *) 6529 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 6530 void ATL::CSimpleStringT::SetString(char const *) 6531 void ATL::CSimpleStringT::SetString(char const *,int) 6532 void COleVariant::SetString(wchar_t const *,unsigned short) 6533 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6534 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 6535 int CDialogTemplate::SetSystemFont(unsigned short) 6536 void CEditView::SetTabStops(int) 6537 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 6538 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 6539 void CCmdUI::SetText(wchar_t const *) 6540 void COleCmdUI::SetText(wchar_t const *) 6541 void COleControl::SetText(wchar_t const *) 6542 void CStatusCmdUI::SetText(wchar_t const *) 6543 void CTestCmdUI::SetText(wchar_t const *) 6544 void CToolCmdUI::SetText(wchar_t const *) 6545 unsigned int CDC::SetTextAlign(unsigned int) 6546 int CDC::SetTextCharacterExtra(int) 6547 unsigned long CDC::SetTextColor(unsigned long) 6548 unsigned long CPreviewDC::SetTextColor(unsigned long) 6549 int CDC::SetTextJustification(int,int) 6550 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 6551 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 6552 int CDateTimeCtrl::SetTime(ATL::CTime const *) 6553 void CDocument::SetTitle(wchar_t const *) 6554 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 6555 void CRichEditDoc::SetTitle(wchar_t const *) 6556 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 6557 void CMonthCalCtrl::SetToday(ATL::CTime const *) 6558 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 6559 void CPreviewDC::SetTopLeftOffset(CSize) 6560 void CProperty::SetType(unsigned long) 6561 void CRecordset::SetUpdateMethod(void) 6562 void CDaoTableDef::SetValidationRule(wchar_t const *) 6563 void CDaoTableDef::SetValidationText(wchar_t const *) 6564 void CThreadSlotData::SetValue(int,void *) 6565 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 6566 CSize CDC::SetViewportExt(int,int) 6567 CSize CMetaFileDC::SetViewportExt(int,int) 6568 CSize CPreviewDC::SetViewportExt(int,int) 6569 CPoint CDC::SetViewportOrg(int,int) 6570 CPoint CMetaFileDC::SetViewportOrg(int,int) 6571 CPoint CPreviewDC::SetViewportOrg(int,int) 6572 CSize CDC::SetWindowExt(int,int) 6573 CSize CPreviewDC::SetWindowExt(int,int) 6574 CPoint CDC::SetWindowOrg(int,int) 6575 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 6576 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6577 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 6578 void COleControlSite::SetWindowTextW(wchar_t const *) 6579 void CWnd::SetWindowTextW(wchar_t const *) 6580 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 6581 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 6582 int CDC::SetWorldTransform(tagXFORM const *) 6583 int CInternetFile::SetWriteBufferSize(unsigned int) 6584 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 6585 long CDocObjectServer::XOleDocumentView::Show(int) 6586 long COlePropertyPage::XPropertyPage::Show(unsigned int) 6587 void CDockBar::ShowAll(int) 6588 int CWinApp::ShowAppMessageBox(CWinApp *,wchar_t const *,unsigned int,unsigned int) 6589 long CRichEditCntrItem::ShowContainerUI(int) 6590 long CRichEditView::ShowContainerUI(int) 6591 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 6592 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6593 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6594 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 6595 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 6596 long COleClientItem::XOleClientSite::ShowObject(void) 6597 long COleControlSite::XOleClientSite::ShowObject(void) 6598 void CFrameWnd::ShowOwnedWindows(int) 6599 long COleControlSite::XOleControlSite::ShowPropertyFrame(void) 6600 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6601 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6602 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 6603 int COleControlSite::ShowWindow(int) 6604 int CWnd::ShowWindow(int) 6605 tagSIZE const CScrollView::sizeDefault 6606 int CMonthCalCtrl::SizeMinReq(int) 6607 void CBitmapButton::SizeToContent(void) 6608 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 6609 long CEnumArray::XEnumVOID::Skip(unsigned long) 6610 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 6611 int CAsyncSocket::Socket(int,long,int,int) 6612 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 6613 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 6614 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 6615 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 6616 int CSplitterWnd::SplitColumn(int) 6617 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 6618 int CSplitterWnd::SplitRow(int) 6619 int CDC::StartDocW(wchar_t const *) 6620 void CDockContext::StartDrag(CPoint) 6621 void CDockContext::StartResize(int,CPoint) 6622 void CSplitterWnd::StartTracking(int) 6623 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 6624 void CSplitterWnd::StopTracking(int) 6625 void CRuntimeClass::Store(CArchive &)const 6626 void CDaoRecordset::StoreFields(void) 6627 void CRecordset::StoreFields(void) 6628 void CRichEditView::Stream(CArchive &,int) 6629 void CDockContext::Stretch(CPoint) 6630 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6631 int ATL::CSimpleStringT::StringLength(char const *) 6632 int ATL::CSimpleStringT::StringLength(wchar_t const *) 6633 int ATL::CSimpleStringT::StringLength(char const *) 6634 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 6635 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 6636 int CWnd::SubclassWindow(HWND__ *) 6637 int COleDocObjectItem::SupportsIPrint(void) 6638 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6639 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6640 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 6641 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 6642 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 6643 void CRichEditView::TextNotFound(wchar_t const *) 6644 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 6645 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 6646 void CDaoDatabase::ThrowDaoException(int) 6647 void CDaoQueryDef::ThrowDaoException(int) 6648 void CDaoRecordset::ThrowDaoException(int) 6649 void CDaoTableDef::ThrowDaoException(int) 6650 void CDaoWorkspace::ThrowDaoException(int) 6651 void CFileException::ThrowErrno(int,wchar_t const *) 6652 void COleControl::ThrowError(long,unsigned int,unsigned int) 6653 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 6654 void ThrowGetRowsDaoException(long) 6655 void ATL::CSimpleStringT::ThrowMemoryException(void) 6656 void ATL::CSimpleStringT::ThrowMemoryException(void) 6657 void CFileException::ThrowOsError(long,wchar_t const *) 6658 void CDockContext::ToggleDocking(void) 6659 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 6660 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 6661 COleVariant CDataSourceControl::ToVariant(int) 6662 int CDockContext::Track(void) 6663 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 6664 void CSplitterWnd::TrackColumnSize(int,int) 6665 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 6666 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 6667 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 6668 void CSplitterWnd::TrackRowSize(int,int) 6669 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 6670 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6671 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 6672 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6673 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6674 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 6675 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 6676 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6677 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 6678 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6679 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 6680 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 6681 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 6682 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6683 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6684 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 6685 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 6686 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 6687 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 6688 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 6689 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 6690 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 6691 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 6692 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 6693 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 6694 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 6695 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 6696 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 6697 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 6698 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 6699 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 6700 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 6701 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 6702 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 6703 void ATL::CSimpleStringT::Truncate(int) 6704 void ATL::CSimpleStringT::Truncate(int) 6705 long CDocObjectServer::XOleDocumentView::UIActivate(int) 6706 void COccManager::UIActivateControl(CWnd *) 6707 long COleControl::XOleInPlaceObject::UIDeactivate(void) 6708 long COleServerDoc::XOleInPlaceObject::UIDeactivate(void) 6709 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 6710 void COleSafeArray::UnaccessData(void) 6711 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 6712 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 6713 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 6714 long COleControl::XOleObject::Unadvise(unsigned long) 6715 long COleServerDoc::XOleObject::Unadvise(unsigned long) 6716 long COleServerItem::XOleObject::Unadvise(unsigned long) 6717 void CRecordset::UnbindFieldsForUpdate(void) 6718 long COleControl::XOleCache::Uncache(unsigned long) 6719 long COleControl::XViewObject::Unfreeze(unsigned long) 6720 int CEvent::Unlock(void) 6721 int CMultiLock::Unlock(long,long *) 6722 int CMultiLock::Unlock(void) 6723 int CMutex::Unlock(void) 6724 void COleSafeArray::Unlock(void) 6725 int CSemaphore::Unlock(long,long *) 6726 int CSingleLock::Unlock(long,long *) 6727 int CSingleLock::Unlock(void) 6728 void CTypeLibCache::Unlock(void) 6729 void ATL::CSimpleStringT::UnlockBuffer(void) 6730 void ATL::CSimpleStringT::UnlockBuffer(void) 6731 void CEditView::UnlockBuffer(void)const 6732 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 6733 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 6734 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 6735 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 6736 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 6737 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 6738 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6739 int COleObjectFactory::Unregister(void) 6740 int COleTemplateServer::Unregister(void) 6741 int CWinApp::Unregister(void) 6742 int COleObjectFactory::UnregisterAll(void) 6743 void CDocManager::UnregisterShellFileTypes(void) 6744 void CWinApp::UnregisterShellFileTypes(void) 6745 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 6746 HWND__ * CWnd::UnsubclassWindow(void) 6747 void CDaoRecordset::Update(void) 6748 int CRecordset::Update(void) 6749 long CDocObjectServer::XOleObject::Update(void) 6750 long COleControl::XOleObject::Update(void) 6751 long COleServerDoc::XOleObject::Update(void) 6752 long COleServerItem::XOleObject::Update(void) 6753 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 6754 void CStatusBar::UpdateAllPanes(int,int) 6755 void CDocument::UpdateAllViews(CView *,long,CObject *) 6756 void CScrollView::UpdateBars(void) 6757 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 6758 long CDataSourceControl::UpdateControls(void) 6759 long CDataSourceControl::UpdateCursor(void) 6760 int CWnd::UpdateData(int) 6761 void CWnd::UpdateDialogControls(CCmdTarget *,int) 6762 void CDocument::UpdateFrameCounts(void) 6763 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 6764 int CRecordset::UpdateInsertDelete(void) 6765 void COleClientItem::UpdateItemType(void) 6766 int COleClientItem::UpdateLink(void) 6767 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 6768 void CRecentFileList::UpdateMenu(CCmdUI *) 6769 void COleDocument::UpdateModifiedFlag(void) 6770 void CRichEditDoc::UpdateModifiedFlag(void) 6771 void CRichEditDoc::UpdateObjectCache(void) 6772 void CFileDialog::UpdateOFNFromShellDialog(void) 6773 void CWinApp::UpdatePrinterSelection(int) 6774 int COleObjectFactory::UpdateRegistry(int) 6775 void COleObjectFactory::UpdateRegistry(wchar_t const *) 6776 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 6777 int COleObjectFactory::UpdateRegistryAll(int) 6778 void CDockContext::UpdateState(int *,int) 6779 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 6780 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 6781 long CBrowserControlSite::UpdateUI(void) 6782 long CDHtmlDialog::UpdateUI(void) 6783 long CHtmlControlSite::XDocHostUIHandler::UpdateUI(void) 6784 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 6785 void COleLinkingDoc::UpdateVisibleLock(int,int) 6786 void CDatabase::VerifyConnect(void) 6787 unsigned long CRecordset::VerifyCursorSupport(void) 6788 void CRecordset::VerifyDriverBehavior(void) 6789 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 6790 int COleObjectFactory::VerifyUserLicense(void) 6791 int CListBox::VKeyToItem(unsigned int,unsigned int) 6792 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 6793 int COleControl::WillAmbientsBeValidDuringLoad(void) 6794 long CControlBar::WindowProc(unsigned int,unsigned int,long) 6795 long COleControl::WindowProc(unsigned int,unsigned int,long) 6796 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 6797 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 6798 long CReBar::WindowProc(unsigned int,unsigned int,long) 6799 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 6800 long CWnd::WindowProc(unsigned int,unsigned int,long) 6801 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 6802 void CWnd::WinHelpInternal(unsigned long,unsigned int) 6803 void CWinApp::WinHelpW(unsigned long,unsigned int) 6804 void CWnd::WinHelpW(unsigned long,unsigned int) 6805 CWnd const CWnd::wndBottom 6806 CWnd const CWnd::wndNoTopMost 6807 CWnd const CWnd::wndTop 6808 CWnd const CWnd::wndTopMost 6809 void CRichEditView::WrapChanged(void) 6810 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 6811 void CArchive::Write(void const *,unsigned int) 6812 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 6813 void CFile::Write(void const *,unsigned int) 6814 void CGopherFile::Write(void const *,unsigned int) 6815 int CImageList::Write(CArchive *) 6816 void CInternetFile::Write(void const *,unsigned int) 6817 void CMemFile::Write(void const *,unsigned int) 6818 void COleStreamFile::Write(void const *,unsigned int) 6819 void CSocketFile::Write(void const *,unsigned int) 6820 void CStdioFile::Write(void const *,unsigned int) 6821 void CArchive::WriteClass(CRuntimeconst *) 6822 void CArchive::WriteCount(unsigned long) 6823 void COleClientItem::WriteItem(CArchive &) 6824 void COleClientItem::WriteItemCompound(CArchive &) 6825 void COleClientItem::WriteItemFlat(CArchive &) 6826 void CRecentFileList::WriteList(void) 6827 int CPropertySection::WriteNameDictToStream(IStream *) 6828 void CArchive::WriteObject(CObject const *) 6829 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 6830 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 6831 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 6832 void CArchive::WriteString(wchar_t const *) 6833 void CGopherFile::WriteString(wchar_t const *) 6834 void CInternetFile::WriteString(wchar_t const *) 6835 void CStdioFile::WriteString(wchar_t const *) 6836 void CEditView::WriteToArchive(CArchive &) 6837 int CProperty::WriteToStream(IStream *) 6838 int CPropertySection::WriteToStream(IStream *) 6839 int CPropertySet::WriteToStream(IStream *) 6840 void AfxSetPerUserRegistration(int) 6841 int AfxGetPerUserRegistration(void) ================================================ FILE: Bin/i386/mfc_sym/mfc90ud.def ================================================ 256 ??$CopyElements@VCOleVariant@@@@YGXPAVCOleVariant@@PBV0@H@Z 257 ??$DumpElements@VCOleVariant@@@@YGXAAVCDumpContext@@PBVCOleVariant@@H@Z 258 ??$HashKey@ABUtagVARIANT@@@@YGIABUtagVARIANT@@@Z 259 ??$HashKey@PB_W@@YGIPB_W@Z 260 ??$HashKey@PBD@@YGIPBD@Z 261 ??$HashKey@VCComBSTR@ATL@@@@YGIVCComBSTR@ATL@@@Z 262 ??$SerializeElements@V?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@H@Z 263 ??$SerializeElements@V?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@@YGXAAVCArchive@@PAV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@H@Z 264 ??$SerializeElements@VCComBSTR@ATL@@@@YGXAAVCArchive@@PAVCComBSTR@ATL@@H@Z 265 ??$SerializeElements@VCOleVariant@@@@YGXAAVCArchive@@PAVCOleVariant@@H@Z 266 COleCurrency const & COleCurrency::operator/=(long) 267 void * operator new[](unsigned int) 268 void * operator new[](unsigned int,int,char const *,int) 269 void * operator new[](unsigned int,char const *,int) 270 void operator delete[](void *) 271 void operator delete[](void *,int,char const *,int) 272 void operator delete[](void *,char const *,int) 273 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 274 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 275 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 276 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,int,ATL::IAtlStringMgr *) 277 ATL::CSimpleStringT::CSimpleStringT(wchar_t const *,ATL::IAtlStringMgr *) 278 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 279 ATL::CSimpleStringT::CSimpleStringT(ATL::CSimpleStringT const &) 280 ATL::CSimpleStringT::CSimpleStringT(ATL::IAtlStringMgr *) 281 ATL::CSimpleStringT::CSimpleStringT(char const *,int,ATL::IAtlStringMgr *) 282 ATL::CSimpleStringT::CSimpleStringT(char const *,ATL::IAtlStringMgr *) 283 ATL::CStringT > >::CStringT > >(wchar_t,int) 284 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 285 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 286 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 287 ATL::CStringT > >::CStringT > >(char,int) 288 ATL::CStringT > >::CStringT > >(wchar_t *) 289 ATL::CStringT > >::CStringT > >(char *) 290 ATL::CStringT > >::CStringT > >(unsigned char *) 291 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 292 ATL::CStringT > >::CStringT > >(wchar_t const *) 293 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 294 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 295 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 296 ATL::CStringT > >::CStringT > >(char const *) 297 ATL::CStringT > >::CStringT > >(char const *,int) 298 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 299 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 300 ATL::CStringT > >::CStringT > >(unsigned char const *) 301 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 302 ATL::CStringT > >::CStringT > >(void) 303 ATL::CStringT > >::CStringT > >(wchar_t,int) 304 ATL::CStringT > >::CStringT > >(tagVARIANT const &) 305 ATL::CStringT > >::CStringT > >(tagVARIANT const &,ATL::IAtlStringMgr *) 306 ATL::CStringT > >::CStringT > >(ATL::CStringT > > const &) 307 ATL::CStringT > >::CStringT > >(char,int) 308 ATL::CStringT > >::CStringT > >(wchar_t *) 309 ATL::CStringT > >::CStringT > >(char *) 310 ATL::CStringT > >::CStringT > >(unsigned char *) 311 ATL::CStringT > >::CStringT > >(ATL::IAtlStringMgr *) 312 ATL::CStringT > >::CStringT > >(wchar_t const *) 313 ATL::CStringT > >::CStringT > >(wchar_t const *,int) 314 ATL::CStringT > >::CStringT > >(wchar_t const *,int,ATL::IAtlStringMgr *) 315 ATL::CStringT > >::CStringT > >(wchar_t const *,ATL::IAtlStringMgr *) 316 ATL::CStringT > >::CStringT > >(char const *) 317 ATL::CStringT > >::CStringT > >(char const *,int) 318 ATL::CStringT > >::CStringT > >(char const *,int,ATL::IAtlStringMgr *) 319 ATL::CStringT > >::CStringT > >(char const *,ATL::IAtlStringMgr *) 320 ATL::CStringT > >::CStringT > >(unsigned char const *) 321 ATL::CStringT > >::CStringT > >(unsigned char const *,ATL::IAtlStringMgr *) 322 ATL::CStringT > >::CStringT > >(void) 323 _AFX_CHECKLIST_STATE::_AFX_CHECKLIST_STATE(void) 324 _AFX_COLOR_STATE::_AFX_COLOR_STATE(void) 325 _AFX_DAO_STATE::_AFX_DAO_STATE(void) 326 _AFX_DEBUG_STATE::_AFX_DEBUG_STATE(void) 327 _AFX_EDIT_STATE::_AFX_EDIT_STATE(void) 328 _AFX_OLE_STATE::_AFX_OLE_STATE(void) 329 _AFX_THREAD_STATE::_AFX_THREAD_STATE(void) 330 _AFXCTL_AMBIENT_CACHE::_AFXCTL_AMBIENT_CACHE(void) 331 _AFXCTL_UIACTIVE_INFO::_AFXCTL_UIACTIVE_INFO(HMENU__ *,IOleInPlaceFrame *) 332 AFX_DDPDATA::AFX_DDPDATA(void *,int,int,void *,unsigned int,wchar_t const *) 333 AFX_EXCEPTION_LINK::AFX_EXCEPTION_LINK(void) 334 AFX_MAINTAIN_STATE::AFX_MAINTAIN_STATE(AFX_MODULE_STATE *) 335 AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(AFX_MODULE_STATE *) 336 AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(HWND__ *,unsigned int,unsigned int,long),unsigned long,int) 337 AFX_MODULE_THREAD_STATE::AFX_MODULE_THREAD_STATE(void) 338 CAnimateCtrl::CAnimateCtrl(void) 339 CArchive::CArchive(CArchive const &) 340 CArchive::CArchive(CFile *,unsigned int,int,void *) 341 CArchiveException::CArchiveException(int,wchar_t const *) 342 CArchivePropExchange::CArchivePropExchange(CArchive &) 343 CArchiveStream::CArchiveStream(CArchive *) 344 CAsyncMonikerFile::CAsyncMonikerFile(void) 345 CAsyncPropExchange::CAsyncPropExchange(unsigned long) 346 CAsyncSocket::CAsyncSocket(void) 347 CBitmap::CBitmap(void) 348 CBitmapButton::CBitmapButton(void) 349 CBlobProperty::CBlobProperty(void *) 350 CBrowserControlSite::CBrowserControlSite(COleControlContainer *,CDHtmlDialog *) 351 CBrush::CBrush(int,unsigned long) 352 CBrush::CBrush(unsigned long) 353 CBrush::CBrush(CBitmap *) 354 CBrush::CBrush(void) 355 CButton::CButton(void) 356 CByteArray::CByteArray(void) 357 CCachedDataPathProperty::CCachedDataPathProperty(COleControl *) 358 CCachedDataPathProperty::CCachedDataPathProperty(wchar_t const *,COleControl *) 359 CCheckListBox::CCheckListBox(void) 360 CChevronOwnerDrawMenu::CChevronOwnerDrawMenu(void) 361 CClientDC::CClientDC(CWnd *) 362 CCmdTarget::CCmdTarget(void) 363 CCmdUI::CCmdUI(void) 364 CColorDialog::CColorDialog(unsigned long,unsigned long,CWnd *) 365 CComboBox::CComboBox(void) 366 CComboBoxEx::CComboBoxEx(void) 367 CCommandLineInfo::CCommandLineInfo(void) 368 CCommonDialog::CCommonDialog(CWnd *) 369 CConnectionPoint::CConnectionPoint(void) 370 CControlBar::CControlBar(void) 371 CControlBarInfo::CControlBarInfo(void) 372 CControlCreationInfo::CControlCreationInfo(void) 373 COleControl::CControlDataSource::CControlDataSource(COleControl *) 374 CControlFrameWnd::CControlFrameWnd(COleControl *) 375 CControlSiteFactoryMgr::CControlSiteFactoryMgr(void) 376 CCreateContext::CCreateContext(void) 377 CCriticalSection::CCriticalSection(void) 378 CCtrlView::CCtrlView(wchar_t const *,unsigned long) 379 CDaoDatabase::CDaoDatabase(CDaoWorkspace *) 380 CDaoException::CDaoException(void) 381 CDaoFieldExchange::CDaoFieldExchange(unsigned int,CDaoRecordset *,void *) 382 CDaoIndexInfo::CDaoIndexInfo(void) 383 CDaoQueryDef::CDaoQueryDef(CDaoDatabase *) 384 CDaoRecordset::CDaoRecordset(CDaoDatabase *) 385 CDaoRecordView::CDaoRecordView(unsigned int) 386 CDaoRecordView::CDaoRecordView(wchar_t const *) 387 CDaoRelationInfo::CDaoRelationInfo(void) 388 CDaoTableDef::CDaoTableDef(CDaoDatabase *) 389 CDaoWorkspace::CDaoWorkspace(void) 390 CDatabase::CDatabase(void) 391 CDataBoundProperty::CDataBoundProperty(CDataBoundProperty *,long,unsigned short) 392 CDataExchange::CDataExchange(CWnd *,int) 393 CDataPathProperty::CDataPathProperty(COleControl *) 394 CDataPathProperty::CDataPathProperty(wchar_t const *,COleControl *) 395 CDataSourceControl::CDataSourceControl(COleControlSite *) 396 CDateTimeCtrl::CDateTimeCtrl(void) 397 CDBException::CDBException(short) 398 CDBVariant::CDBVariant(void) 399 CDC::CDC(void) 400 CDHtmlControlSink::CDHtmlControlSink(IUnknown *,CDHtmlSinkHandler *,wchar_t const *,unsigned long) 401 CDHtmlControlSink::CDHtmlControlSink(void) 402 CDHtmlDialog::CDHtmlDialog(unsigned int,unsigned int,CWnd *) 403 CDHtmlDialog::CDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 404 CDHtmlDialog::CDHtmlDialog(void) 405 CDHtmlElementEventSink::CDHtmlElementEventSink(CDHtmlEventSink *,IDispatch *) 406 CDialog::CDialog(unsigned int,CWnd *) 407 CDialog::CDialog(wchar_t const *,CWnd *) 408 CDialog::CDialog(void) 409 CDialogBar::CDialogBar(void) 410 CDialogTemplate::CDialogTemplate(void *) 411 CDialogTemplate::CDialogTemplate(DLGTEMPLATE const *) 412 CDocItem::CDocItem(void) 413 CDockBar::CDockBar(int) 414 CDockContext::CDockContext(CControlBar *) 415 CDockState::CDockState(void) 416 CDocManager::CDocManager(void) 417 CDocObjectServer::CDocObjectServer(COleServerDoc *,IOleDocumentSite *) 418 CDocObjectServerItem::CDocObjectServerItem(COleServerDoc *,int) 419 CDocTemplate::CDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 420 CDocument::CDocument(void) 421 CDragListBox::CDragListBox(void) 422 CDumpContext::CDumpContext(CDumpContext const &) 423 CDumpContext::CDumpContext(CFile *) 424 CDWordArray::CDWordArray(void) 425 CDynLinkLibrary::CDynLinkLibrary(AFX_EXTENSION_MODULE &,int) 426 CDynLinkLibrary::CDynLinkLibrary(HINSTANCE__ *,HINSTANCE__ *) 427 CEdit::CEdit(void) 428 CEditView::CEditView(void) 429 CEnumArray::CEnumArray(unsigned int,void const *,unsigned int,int) 430 CEnumConnections::CEnumConnections(void const *,unsigned int) 431 CEnumConnPoints::CEnumConnPoints(void const *,unsigned int) 432 CEnumFormatEtc::CEnumFormatEtc(void) 433 CEvent::CEvent(int,int,wchar_t const *,_SECURITY_ATTRIBUTES *) 434 CException::CException(int) 435 CException::CException(void) 436 CFieldExchange::CFieldExchange(unsigned int,CRecordset *,void *) 437 CFile::CFile(void *) 438 CFile::CFile(wchar_t const *,unsigned int) 439 CFile::CFile(void) 440 CFileDialog::CFileDialog(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const *,CWnd *,unsigned long,int) 441 CFileException::CFileException(int,long,wchar_t const *) 442 CFileFind::CFileFind(void) 443 CFindReplaceDialog::CFindReplaceDialog(void) 444 CFixedAlloc::CFixedAlloc(unsigned int,unsigned int) 445 CFixedAllocNoSync::CFixedAllocNoSync(unsigned int,unsigned int) 446 CFont::CFont(void) 447 CFontDialog::CFontDialog(_charformatw const &,unsigned long,CDC *,CWnd *) 448 CFontDialog::CFontDialog(tagLOGFONTW *,unsigned long,CDC *,CWnd *) 449 CFontHolder::CFontHolder(IPropertyNotifySink *) 450 CFormView::CFormView(unsigned int) 451 CFormView::CFormView(wchar_t const *) 452 CFrameWnd::CFrameWnd(void) 453 CFtpConnection::CFtpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 454 CFtpConnection::CFtpConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short,int) 455 CFtpFileFind::CFtpFileFind(CFtpConnection *,unsigned long) 456 CGdiObject::CGdiObject(void) 457 CGopherConnection::CGopherConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 458 CGopherConnection::CGopherConnection(CInternetSession *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 459 CGopherFile::CGopherFile(void *,void *,wchar_t const *,unsigned long,unsigned long) 460 CGopherFile::CGopherFile(void *,CGopherLocator &,CGopherConnection *) 461 CGopherFileFind::CGopherFileFind(CGopherConnection *,unsigned long) 462 CGopherLocator::CGopherLocator(wchar_t const *,unsigned long) 463 CGopherLocator::CGopherLocator(CGopherLocator const &) 464 CHandleMap::CHandleMap(CRuntime*,void (__stdcall*)(CObject *),void (__stdcall*)(CObject *),unsigned int,int) 465 CHeaderCtrl::CHeaderCtrl(void) 466 CHotKeyCtrl::CHotKeyCtrl(void) 467 CHtmlControlSite::CHtmlControlSite(COleControlContainer *) 468 CHtmlEditCtrl::CHtmlEditCtrl(void) 469 CHtmlEditDoc::CHtmlEditDoc(void) 470 CHtmlEditView::CHtmlEditView(void) 471 CHtmlView::CHtmlView(void) 472 CHttpConnection::CHttpConnection(CInternetSession *,void *,wchar_t const *,unsigned long) 473 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 474 CHttpConnection::CHttpConnection(CInternetSession *,wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *,unsigned long) 475 CHttpFile::CHttpFile(void *,void *,wchar_t const *,wchar_t const *,wchar_t const *,unsigned long) 476 CHttpFile::CHttpFile(void *,wchar_t const *,wchar_t const *,CHttpConnection *) 477 CImageList::CImageList(void) 478 CInternetConnection::CInternetConnection(CInternetSession *,wchar_t const *,unsigned short,unsigned long) 479 CInternetException::CInternetException(unsigned long) 480 CInternetFile::CInternetFile(void *,void *,wchar_t const *,wchar_t const *,unsigned long,int) 481 CInternetFile::CInternetFile(void *,wchar_t const *,CInternetConnection *,int) 482 CInternetSession::CInternetSession(wchar_t const *,unsigned long,unsigned long,wchar_t const *,wchar_t const *,unsigned long) 483 CInvalidArgException::CInvalidArgException(int,unsigned int) 484 CInvalidArgException::CInvalidArgException(void) 485 CIPAddressCtrl::CIPAddressCtrl(void) 486 CListBox::CListBox(void) 487 CListCtrl::CListCtrl(void) 488 CListView::CListView(void) 489 CLongBinary::CLongBinary(void) 490 CMapPtrToPtr::CMapPtrToPtr(int) 491 CMapPtrToWord::CMapPtrToWord(int) 492 CMapStringToOb::CMapStringToOb(int) 493 CMapStringToPtr::CMapStringToPtr(int) 494 CMapStringToString::CMapStringToString(int) 495 CMapWordToOb::CMapWordToOb(int) 496 CMapWordToPtr::CMapWordToPtr(int) 497 CMDIChildWnd::CMDIChildWnd(void) 498 CMDIFrameWnd::CMDIFrameWnd(void) 499 CMemFile::CMemFile(unsigned int) 500 CMemFile::CMemFile(unsigned char *,unsigned int,unsigned int) 501 CMemoryException::CMemoryException(int,unsigned int) 502 CMemoryException::CMemoryException(void) 503 CMemoryState::CMemoryState(void) 504 CMenu::CMenu(void) 505 CMetaFileDC::CMetaFileDC(void) 506 CMiniDockFrameWnd::CMiniDockFrameWnd(void) 507 CMiniFrameWnd::CMiniFrameWnd(void) 508 CMonikerFile::CMonikerFile(void) 509 CMonthCalCtrl::CMonthCalCtrl(void) 510 CMultiDocTemplate::CMultiDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 511 CMultiLock::CMultiLock(CSyncObject * * const,unsigned long,int) 512 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(unsigned int,unsigned int,CWnd *) 513 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(wchar_t const *,wchar_t const *,CWnd *) 514 CMultiPageDHtmlDialog::CMultiPageDHtmlDialog(void) 515 CMutex::CMutex(int,wchar_t const *,_SECURITY_ATTRIBUTES *) 516 CNotSupportedException::CNotSupportedException(int,unsigned int) 517 CNotSupportedException::CNotSupportedException(void) 518 CObArray::CObArray(void) 519 CObject::CObject(void) 520 CObList::CObList(int) 521 COleBusyDialog::COleBusyDialog(HTASK__ *,int,unsigned long,CWnd *) 522 COleChangeIconDialog::COleChangeIconDialog(COleClientItem *,unsigned long,CWnd *) 523 COleChangeSourceDialog::COleChangeSourceDialog(COleClientItem *,CWnd *) 524 COleClientItem::COleClientItem(COleDocument *) 525 COleCmdUI::COleCmdUI(_tagOLECMD *,unsigned long,_GUID const *) 526 COleCntrFrameWnd::COleCntrFrameWnd(COleIPFrameWnd *) 527 COleControl::COleControl(void) 528 COleControlContainer::COleControlContainer(CWnd *) 529 COleControlLock::COleControlLock(_GUID const &) 530 COleControlSite::COleControlSite(COleControlContainer *) 531 COleControlSiteOrWnd::COleControlSiteOrWnd(HWND__ *,int) 532 COleControlSiteOrWnd::COleControlSiteOrWnd(COleControlSite *) 533 COleControlSiteOrWnd::COleControlSiteOrWnd(void) 534 COleConvertDialog::COleConvertDialog(COleClientItem *,unsigned long,_GUID *,CWnd *) 535 COleCurrency::COleCurrency(tagVARIANT const &) 536 COleCurrency::COleCurrency(COleCurrency const &) 537 COleCurrency::COleCurrency(long,long) 538 COleCurrency::COleCurrency(union tagCY) 539 COleCurrency::COleCurrency(void) 540 COleDataObject::COleDataObject(void) 541 COleDataSource::COleDataSource(void) 542 COleDialog::COleDialog(CWnd *) 543 COleDispatchDriver::COleDispatchDriver(COleDispatchDriver const &) 544 COleDispatchDriver::COleDispatchDriver(IDispatch *,int) 545 COleDispatchDriver::COleDispatchDriver(void) 546 COleDispatchException::COleDispatchException(wchar_t const *,unsigned int,unsigned short) 547 COleDocIPFrameWnd::COleDocIPFrameWnd(void) 548 COleDocObjectItem::COleDocObjectItem(COleDocument *) 549 COleDocument::COleDocument(void) 550 COleDropSource::COleDropSource(void) 551 COleDropTarget::COleDropTarget(void) 552 COleException::COleException(void) 553 COleFrameHook::COleFrameHook(CFrameWnd *,COleClientItem *) 554 COleInsertDialog::COleInsertDialog(unsigned long,CWnd *) 555 COleIPFrameWnd::COleIPFrameWnd(void) 556 COleLinkingDoc::COleLinkingDoc(void) 557 COleLinksDialog::COleLinksDialog(COleDocument *,CView *,unsigned long,CWnd *) 558 COleMessageFilter::COleMessageFilter(void) 559 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,int,wchar_t const *) 560 COleObjectFactory::COleObjectFactory(_GUID const &,CRuntime*,int,wchar_t const *) 561 COlePasteSpecialDialog::COlePasteSpecialDialog(unsigned long,COleDataObject *,CWnd *) 562 COlePropertiesDialog::COlePropertiesDialog(COleClientItem *,unsigned int,unsigned int,CWnd *) 563 COlePropertyPage::COlePropertyPage(unsigned int,unsigned int) 564 COleResizeBar::COleResizeBar(void) 565 COleSafeArray::COleSafeArray(tagSAFEARRAY const &,unsigned short) 566 COleSafeArray::COleSafeArray(tagVARIANT const &) 567 COleSafeArray::COleSafeArray(COleSafeArray const &) 568 COleSafeArray::COleSafeArray(COleVariant const &) 569 COleSafeArray::COleSafeArray(tagSAFEARRAY const *,unsigned short) 570 COleSafeArray::COleSafeArray(tagVARIANT const *) 571 COleSafeArray::COleSafeArray(void) 572 COleServerDoc::COleServerDoc(void) 573 COleServerItem::COleServerItem(COleServerDoc *,int) 574 COleStreamFile::COleStreamFile(IStream *) 575 COleTemplateServer::COleTemplateServer(void) 576 COleUILinkInfo::COleUILinkInfo(COleDocument *) 577 COleUpdateDialog::COleUpdateDialog(COleDocument *,int,int,CWnd *) 578 COleVariant::COleVariant(__int64) 579 COleVariant::COleVariant(unsigned __int64) 580 COleVariant::COleVariant(ATL::CStringT > > &) 581 COleVariant::COleVariant(tagVARIANT const &) 582 COleVariant::COleVariant(COleVariant const &) 583 COleVariant::COleVariant(CByteArray const &) 584 COleVariant::COleVariant(CLongBinary const &) 585 COleVariant::COleVariant(COleCurrency const &) 586 COleVariant::COleVariant(ATL::COleDateTime const &) 587 COleVariant::COleVariant(unsigned char) 588 COleVariant::COleVariant(short,unsigned short) 589 COleVariant::COleVariant(long,unsigned short) 590 COleVariant::COleVariant(float) 591 COleVariant::COleVariant(double) 592 COleVariant::COleVariant(wchar_t const *) 593 COleVariant::COleVariant(wchar_t const *,unsigned short) 594 COleVariant::COleVariant(_ITEMIDLIST const *) 595 COleVariant::COleVariant(tagVARIANT const *) 596 COleVariant::COleVariant(void) 597 CPageSetupDialog::CPageSetupDialog(unsigned long,CWnd *) 598 CPaintDC::CPaintDC(CWnd *) 599 CPalette::CPalette(void) 600 CPen::CPen(int,int,unsigned long) 601 CPen::CPen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 602 CPen::CPen(void) 603 CPictureHolder::CPictureHolder(void) 604 CPreviewDC::CPreviewDC(void) 605 CPreviewView::CPreviewView(void) 606 CPrintDialog::CPrintDialog(tagPDW &) 607 CPrintDialog::CPrintDialog(int,unsigned long,CWnd *) 608 CPrintDialogEx::CPrintDialogEx(unsigned long,CWnd *) 609 CPrintInfo::CPrintInfo(void) 610 CPrintPreviewState::CPrintPreviewState(void) 611 CProgressCtrl::CProgressCtrl(void) 612 CPropbagPropExchange::CPropbagPropExchange(IPropertyBag *,IErrorLog *,int,int) 613 CProperty::CProperty(unsigned long,void * const,unsigned long) 614 CProperty::CProperty(void) 615 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned int,unsigned int,unsigned long) 616 CPropertyPage::CPropertyPage(unsigned int,unsigned int,unsigned long) 617 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned int,unsigned int,unsigned long) 618 CPropertyPage::CPropertyPage(wchar_t const *,unsigned int,unsigned long) 619 CPropertyPage::CPropertyPage(void) 620 CPropertySection::CPropertySection(_GUID) 621 CPropertySection::CPropertySection(void) 622 CPropertySet::CPropertySet(_GUID) 623 CPropertySet::CPropertySet(void) 624 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int) 625 CPropertySheet::CPropertySheet(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 626 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int) 627 CPropertySheet::CPropertySheet(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 628 CPropertySheet::CPropertySheet(void) 629 CPropExchange::CPropExchange(void) 630 CPropsetPropExchange::CPropsetPropExchange(CPropertySection &,IStorage *,int) 631 CPtrArray::CPtrArray(void) 632 CPtrList::CPtrList(int) 633 CReBar::CReBar(void) 634 CReBarCtrl::CReBarCtrl(void) 635 CRecentFileList::CRecentFileList(unsigned int,wchar_t const *,wchar_t const *,int,int) 636 CRecordset::CRecordset(CDatabase *) 637 CRecordView::CRecordView(unsigned int) 638 CRecordView::CRecordView(wchar_t const *) 639 CRectTracker::CRectTracker(tagRECT const *,unsigned int) 640 CRectTracker::CRectTracker(void) 641 CReObject::CReObject(CRichEditCntrItem *) 642 CReObject::CReObject(void) 643 CResetPropExchange::CResetPropExchange(void) 644 CResourceException::CResourceException(int,unsigned int) 645 CResourceException::CResourceException(void) 646 CRgn::CRgn(void) 647 CRichEditCntrItem::CRichEditCntrItem(_reobject *,CRichEditDoc *) 648 CRichEditCtrl::CRichEditCtrl(void) 649 CRichEditDoc::CRichEditDoc(void) 650 CRichEditView::CRichEditView(void) 651 CScrollBar::CScrollBar(void) 652 CScrollView::CScrollView(void) 653 CSemaphore::CSemaphore(long,long,wchar_t const *,_SECURITY_ATTRIBUTES *) 654 CSharedFile::CSharedFile(unsigned int,unsigned int) 655 CSimpleException::CSimpleException(int) 656 CSimpleException::CSimpleException(void) 657 CSingleDocTemplate::CSingleDocTemplate(unsigned int,CRuntime*,CRuntime*,CRuntime*) 658 CSingleLock::CSingleLock(CSyncObject *,int) 659 CSliderCtrl::CSliderCtrl(void) 660 CSocket::CSocket(void) 661 CSocketFile::CSocketFile(CSocket *,int) 662 CSocketWnd::CSocketWnd(void) 663 CSpinButtonCtrl::CSpinButtonCtrl(void) 664 CSplitButton::CSplitButton(unsigned int,unsigned int) 665 CSplitButton::CSplitButton(CMenu *) 666 CSplitButton::CSplitButton(void) 667 CSplitterWnd::CSplitterWnd(void) 668 CStatic::CStatic(void) 669 CStatusBar::CStatusBar(void) 670 CStatusBarCtrl::CStatusBarCtrl(void) 671 CStdioFile::CStdioFile(_iobuf *) 672 CStdioFile::CStdioFile(wchar_t const *,unsigned int) 673 CStdioFile::CStdioFile(void) 674 CStringArray::CStringArray(void) 675 CStringList::CStringList(int) 676 CSyncObject::CSyncObject(wchar_t const *) 677 CTabCtrl::CTabCtrl(void) 678 CTestCmdUI::CTestCmdUI(void) 679 CThreadSlotData::CThreadSlotData(void) 680 CToolBar::CToolBar(void) 681 CToolBarCtrl::CToolBarCtrl(void) 682 CToolTipCtrl::CToolTipCtrl(void) 683 CTreeCtrl::CTreeCtrl(void) 684 CTreeView::CTreeView(void) 685 CUIntArray::CUIntArray(void) 686 CUserException::CUserException(int,unsigned int) 687 CUserException::CUserException(void) 688 CView::CView(void) 689 CWaitCursor::CWaitCursor(void) 690 CWinApp::CWinApp(wchar_t const *) 691 CWindowDC::CWindowDC(CWnd *) 692 CWindowlessDC::CWindowlessDC(HDC__ *,CPoint &) 693 CWinThread::CWinThread(unsigned int (__cdecl*)(void *),void *) 694 CWinThread::CWinThread(void) 695 CWnd::CWnd(HWND__ *) 696 CWnd::CWnd(void) 697 CWordArray::CWordArray(void) 698 CPreviewView::PAGE_INFO::PAGE_INFO(void) 699 ATL::CSimpleStringT::~CSimpleStringT(void) 700 ATL::CSimpleStringT::~CSimpleStringT(void) 701 ATL::CStringT > >::~CStringT > >(void) 702 ATL::CStringT > >::~CStringT > >(void) 703 _AFX_CHECKLIST_STATE::~_AFX_CHECKLIST_STATE(void) 704 _AFX_DAO_STATE::~_AFX_DAO_STATE(void) 705 _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE(void) 706 _AFX_EDIT_STATE::~_AFX_EDIT_STATE(void) 707 _AFX_MAIL_STATE::~_AFX_MAIL_STATE(void) 708 _AFX_OLE_STATE::~_AFX_OLE_STATE(void) 709 _AFX_RICHEDIT_STATE::~_AFX_RICHEDIT_STATE(void) 710 _AFX_SOCK_STATE::~_AFX_SOCK_STATE(void) 711 _AFX_THREAD_STATE::~_AFX_THREAD_STATE(void) 712 _AFXCTL_UIACTIVE_INFO::~_AFXCTL_UIACTIVE_INFO(void) 713 AFX_MAINTAIN_STATE::~AFX_MAINTAIN_STATE(void) 714 AFX_MAINTAIN_STATE2::~AFX_MAINTAIN_STATE2(void) 715 AFX_MODULE_STATE::~AFX_MODULE_STATE(void) 716 AFX_MODULE_THREAD_STATE::~AFX_MODULE_THREAD_STATE(void) 717 CAnimateCtrl::~CAnimateCtrl(void) 718 CArchive::~CArchive(void) 719 CArchiveException::~CArchiveException(void) 720 CAsyncMonikerFile::~CAsyncMonikerFile(void) 721 CAsyncSocket::~CAsyncSocket(void) 722 CBitmap::~CBitmap(void) 723 CBrush::~CBrush(void) 724 CButton::~CButton(void) 725 CByteArray::~CByteArray(void) 726 CClientDC::~CClientDC(void) 727 CCmdTarget::~CCmdTarget(void) 728 CComboBox::~CComboBox(void) 729 CComboBoxEx::~CComboBoxEx(void) 730 CCommandLineInfo::~CCommandLineInfo(void) 731 CConnectionPoint::~CConnectionPoint(void) 732 CControlBar::~CControlBar(void) 733 CControlSiteFactoryMgr::~CControlSiteFactoryMgr(void) 734 CCriticalSection::~CCriticalSection(void) 735 CCtrlView::~CCtrlView(void) 736 CDaoDatabase::~CDaoDatabase(void) 737 CDaoException::~CDaoException(void) 738 CDaoIndexInfo::~CDaoIndexInfo(void) 739 CDaoQueryDef::~CDaoQueryDef(void) 740 CDaoRecordset::~CDaoRecordset(void) 741 CDaoRecordView::~CDaoRecordView(void) 742 CDaoRelationInfo::~CDaoRelationInfo(void) 743 CDaoTableDef::~CDaoTableDef(void) 744 CDaoWorkspace::~CDaoWorkspace(void) 745 CDatabase::~CDatabase(void) 746 CDataSourceControl::~CDataSourceControl(void) 747 CDateTimeCtrl::~CDateTimeCtrl(void) 748 CDBException::~CDBException(void) 749 CDBVariant::~CDBVariant(void) 750 CDC::~CDC(void) 751 CDHtmlControlSink::~CDHtmlControlSink(void) 752 CDHtmlDialog::~CDHtmlDialog(void) 753 CDialog::~CDialog(void) 754 CDialogBar::~CDialogBar(void) 755 CDialogTemplate::~CDialogTemplate(void) 756 CDocItem::~CDocItem(void) 757 CDockBar::~CDockBar(void) 758 CDockContext::~CDockContext(void) 759 CDockState::~CDockState(void) 760 CDocManager::~CDocManager(void) 761 CDocObjectServer::~CDocObjectServer(void) 762 CDocObjectServerItem::~CDocObjectServerItem(void) 763 CDocTemplate::~CDocTemplate(void) 764 CDocument::~CDocument(void) 765 CDragListBox::~CDragListBox(void) 766 CDWordArray::~CDWordArray(void) 767 CDynLinkLibrary::~CDynLinkLibrary(void) 768 CEdit::~CEdit(void) 769 CEditView::~CEditView(void) 770 CEnumArray::~CEnumArray(void) 771 CEnumConnections::~CEnumConnections(void) 772 CEnumConnPoints::~CEnumConnPoints(void) 773 CEnumFormatEtc::~CEnumFormatEtc(void) 774 CEnumOleVerb::~CEnumOleVerb(void) 775 CEnumUnknown::~CEnumUnknown(void) 776 CEvent::~CEvent(void) 777 CException::~CException(void) 778 CFile::~CFile(void) 779 CFileDialog::~CFileDialog(void) 780 CFileException::~CFileException(void) 781 CFileFind::~CFileFind(void) 782 CFixedAlloc::~CFixedAlloc(void) 783 CFixedAllocNoSync::~CFixedAllocNoSync(void) 784 CFont::~CFont(void) 785 CFontHolder::~CFontHolder(void) 786 CFormView::~CFormView(void) 787 CFrameWnd::~CFrameWnd(void) 788 CFtpConnection::~CFtpConnection(void) 789 CFtpFileFind::~CFtpFileFind(void) 790 CGdiObject::~CGdiObject(void) 791 CGopherConnection::~CGopherConnection(void) 792 CGopherFile::~CGopherFile(void) 793 CGopherFileFind::~CGopherFileFind(void) 794 CGopherLocator::~CGopherLocator(void) 795 CHeaderCtrl::~CHeaderCtrl(void) 796 CHotKeyCtrl::~CHotKeyCtrl(void) 797 CHtmlControlSite::~CHtmlControlSite(void) 798 CHtmlEditCtrl::~CHtmlEditCtrl(void) 799 CHtmlEditDoc::~CHtmlEditDoc(void) 800 CHtmlEditView::~CHtmlEditView(void) 801 CHtmlView::~CHtmlView(void) 802 CHttpConnection::~CHttpConnection(void) 803 CHttpFile::~CHttpFile(void) 804 CImageList::~CImageList(void) 805 CInternetConnection::~CInternetConnection(void) 806 CInternetException::~CInternetException(void) 807 CInternetFile::~CInternetFile(void) 808 CInternetSession::~CInternetSession(void) 809 CInvalidArgException::~CInvalidArgException(void) 810 CIPAddressCtrl::~CIPAddressCtrl(void) 811 CListBox::~CListBox(void) 812 CListCtrl::~CListCtrl(void) 813 CLongBinary::~CLongBinary(void) 814 CMapPtrToPtr::~CMapPtrToPtr(void) 815 CMapPtrToWord::~CMapPtrToWord(void) 816 CMapStringToOb::~CMapStringToOb(void) 817 CMapStringToPtr::~CMapStringToPtr(void) 818 CMapStringToString::~CMapStringToString(void) 819 CMapWordToOb::~CMapWordToOb(void) 820 CMapWordToPtr::~CMapWordToPtr(void) 821 CMemFile::~CMemFile(void) 822 CMemoryException::~CMemoryException(void) 823 CMenu::~CMenu(void) 824 CMetaFileDC::~CMetaFileDC(void) 825 CMiniFrameWnd::~CMiniFrameWnd(void) 826 CMonikerFile::~CMonikerFile(void) 827 CMonthCalCtrl::~CMonthCalCtrl(void) 828 CMultiDocTemplate::~CMultiDocTemplate(void) 829 CMultiLock::~CMultiLock(void) 830 CMultiPageDHtmlDialog::~CMultiPageDHtmlDialog(void) 831 CMutex::~CMutex(void) 832 CNotSupportedException::~CNotSupportedException(void) 833 CObArray::~CObArray(void) 834 CObject::~CObject(void) 835 CObList::~CObList(void) 836 COleBusyDialog::~COleBusyDialog(void) 837 COleChangeIconDialog::~COleChangeIconDialog(void) 838 COleChangeSourceDialog::~COleChangeSourceDialog(void) 839 COleClientItem::~COleClientItem(void) 840 COleCntrFrameWnd::~COleCntrFrameWnd(void) 841 COleControl::~COleControl(void) 842 COleControlContainer::~COleControlContainer(void) 843 COleControlLock::~COleControlLock(void) 844 COleControlSite::~COleControlSite(void) 845 COleControlSiteOrWnd::~COleControlSiteOrWnd(void) 846 COleConvertDialog::~COleConvertDialog(void) 847 COleDataObject::~COleDataObject(void) 848 COleDataSource::~COleDataSource(void) 849 COleDispatchDriver::~COleDispatchDriver(void) 850 COleDispatchException::~COleDispatchException(void) 851 COleDocIPFrameWnd::~COleDocIPFrameWnd(void) 852 COleDocObjectItem::~COleDocObjectItem(void) 853 COleDocument::~COleDocument(void) 854 COleDropTarget::~COleDropTarget(void) 855 COleException::~COleException(void) 856 COleFrameHook::~COleFrameHook(void) 857 COleInsertDialog::~COleInsertDialog(void) 858 COleIPFrameWnd::~COleIPFrameWnd(void) 859 COleLinkingDoc::~COleLinkingDoc(void) 860 COleLinksDialog::~COleLinksDialog(void) 861 COleMessageFilter::~COleMessageFilter(void) 862 COleObjectFactory::~COleObjectFactory(void) 863 COlePasteSpecialDialog::~COlePasteSpecialDialog(void) 864 COlePropertyPage::~COlePropertyPage(void) 865 COleResizeBar::~COleResizeBar(void) 866 COleSafeArray::~COleSafeArray(void) 867 COleServerDoc::~COleServerDoc(void) 868 COleServerItem::~COleServerItem(void) 869 COleStreamFile::~COleStreamFile(void) 870 COleUpdateDialog::~COleUpdateDialog(void) 871 COleVariant::~COleVariant(void) 872 CPaintDC::~CPaintDC(void) 873 CPalette::~CPalette(void) 874 CPen::~CPen(void) 875 CPictureHolder::~CPictureHolder(void) 876 CPreviewDC::~CPreviewDC(void) 877 CPreviewView::~CPreviewView(void) 878 CPrintInfo::~CPrintInfo(void) 879 CProcessLocalObject::~CProcessLocalObject(void) 880 CProgressCtrl::~CProgressCtrl(void) 881 CPropbagPropExchange::~CPropbagPropExchange(void) 882 CProperty::~CProperty(void) 883 CPropertyPage::~CPropertyPage(void) 884 CPropertySection::~CPropertySection(void) 885 CPropertySet::~CPropertySet(void) 886 CPropertySheet::~CPropertySheet(void) 887 CPtrArray::~CPtrArray(void) 888 CPtrList::~CPtrList(void) 889 CReBarCtrl::~CReBarCtrl(void) 890 CRecentFileList::~CRecentFileList(void) 891 CRecordset::~CRecordset(void) 892 CRecordView::~CRecordView(void) 893 CRectTracker::~CRectTracker(void) 894 CReObject::~CReObject(void) 895 CResourceException::~CResourceException(void) 896 CRgn::~CRgn(void) 897 CRichEditCntrItem::~CRichEditCntrItem(void) 898 CRichEditCtrl::~CRichEditCtrl(void) 899 CScrollBar::~CScrollBar(void) 900 CScrollView::~CScrollView(void) 901 CSemaphore::~CSemaphore(void) 902 CSharedFile::~CSharedFile(void) 903 CSimpleException::~CSimpleException(void) 904 CSingleDocTemplate::~CSingleDocTemplate(void) 905 CSingleLock::~CSingleLock(void) 906 CSliderCtrl::~CSliderCtrl(void) 907 CSocket::~CSocket(void) 908 CSocketFile::~CSocketFile(void) 909 CSpinButtonCtrl::~CSpinButtonCtrl(void) 910 CSplitButton::~CSplitButton(void) 911 CSplitterWnd::~CSplitterWnd(void) 912 CStatic::~CStatic(void) 913 CStatusBar::~CStatusBar(void) 914 CStatusBarCtrl::~CStatusBarCtrl(void) 915 CStdioFile::~CStdioFile(void) 916 CStringArray::~CStringArray(void) 917 CStringList::~CStringList(void) 918 CSyncObject::~CSyncObject(void) 919 CTabCtrl::~CTabCtrl(void) 920 CThreadLocalObject::~CThreadLocalObject(void) 921 CThreadSlotData::~CThreadSlotData(void) 922 CToolBar::~CToolBar(void) 923 CToolBarCtrl::~CToolBarCtrl(void) 924 CToolTipCtrl::~CToolTipCtrl(void) 925 CTreeCtrl::~CTreeCtrl(void) 926 CUIntArray::~CUIntArray(void) 927 CUserException::~CUserException(void) 928 CView::~CView(void) 929 CWaitCursor::~CWaitCursor(void) 930 CWinApp::~CWinApp(void) 931 CWindowDC::~CWindowDC(void) 932 CWinThread::~CWinThread(void) 933 CWnd::~CWnd(void) 934 CWordArray::~CWordArray(void) 935 void * operator new(unsigned int) 936 void * operator new(unsigned int,int,char const *,int) 937 void * operator new(unsigned int,char const *,int) 938 void * CNoTrackObject::operator new(unsigned int) 939 void * CNoTrackObject::operator new(unsigned int,char const *,int) 940 void * CObject::operator new(unsigned int) 941 void * CObject::operator new(unsigned int,void *) 942 void * CObject::operator new(unsigned int,char const *,int) 943 void operator delete(void *) 944 void operator delete(void *,int,char const *,int) 945 void operator delete(void *,char const *,int) 946 void CException::operator delete(void *) 947 void CException::operator delete(void *,char const *,int) 948 void CNoTrackObject::operator delete(void *) 949 void CNoTrackObject::operator delete(void *,char const *,int) 950 void CObject::operator delete(void *) 951 void CObject::operator delete(void *,void *) 952 void CObject::operator delete(void *,char const *,int) 953 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 954 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 955 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(wchar_t const *) 956 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 957 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(ATL::CSimpleStringT const &) 958 ATL::CSimpleStringT & ATL::CSimpleStringT::operator=(char const *) 959 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 960 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 961 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 962 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 963 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 964 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 965 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 966 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t) 967 ATL::CStringT > > & ATL::CStringT > >::operator=(tagVARIANT const &) 968 ATL::CStringT > > & ATL::CStringT > >::operator=(ATL::CStringT > > const &) 969 ATL::CStringT > > & ATL::CStringT > >::operator=(char) 970 ATL::CStringT > > & ATL::CStringT > >::operator=(wchar_t const *) 971 ATL::CStringT > > & ATL::CStringT > >::operator=(char const *) 972 ATL::CStringT > > & ATL::CStringT > >::operator=(unsigned char const *) 973 void CArchive::operator=(CArchive const &) 974 void CDumpContext::operator=(CDumpContext const &) 975 COleCurrency const & COleCurrency::operator=(tagVARIANT const &) 976 COleCurrency const & COleCurrency::operator=(COleCurrency const &) 977 COleCurrency const & COleCurrency::operator=(union tagCY) 978 COleDispatchDriver const & COleDispatchDriver::operator=(COleDispatchDriver const &) 979 COleSafeArray & COleSafeArray::operator=(tagVARIANT const &) 980 COleSafeArray & COleSafeArray::operator=(COleSafeArray const &) 981 COleSafeArray & COleSafeArray::operator=(COleVariant const &) 982 COleSafeArray & COleSafeArray::operator=(tagVARIANT const *) 983 COleVariant const & COleVariant::operator=(__int64) 984 COleVariant const & COleVariant::operator=(unsigned __int64) 985 COleVariant const & COleVariant::operator=(tagVARIANT const &) 986 COleVariant const & COleVariant::operator=(ATL::CStringT > > const &) 987 COleVariant const & COleVariant::operator=(COleVariant const &) 988 COleVariant const & COleVariant::operator=(CByteArray const &) 989 COleVariant const & COleVariant::operator=(CLongBinary const &) 990 COleVariant const & COleVariant::operator=(COleCurrency const &) 991 COleVariant const & COleVariant::operator=(ATL::COleDateTime const &) 992 COleVariant const & COleVariant::operator=(unsigned char) 993 COleVariant const & COleVariant::operator=(short) 994 COleVariant const & COleVariant::operator=(long) 995 COleVariant const & COleVariant::operator=(float) 996 COleVariant const & COleVariant::operator=(double) 997 COleVariant const & COleVariant::operator=(tagVARIANT const *) 998 COleVariant const & COleVariant::operator=(wchar_t const * const) 999 CArchive & operator>>(CArchive &,CByteArray * &) 1000 CArchive & operator>>(CArchive &,CDocItem * &) 1001 CArchive & operator>>(CArchive &,CDockState * &) 1002 CArchive & operator>>(CArchive &,CDWordArray * &) 1003 CArchive & operator>>(CArchive &,CMapStringToOb * &) 1004 CArchive & operator>>(CArchive &,CMapStringToString * &) 1005 CArchive & operator>>(CArchive &,CMapWordToOb * &) 1006 CArchive & operator>>(CArchive &,CObArray * &) 1007 CArchive & operator>>(CArchive &,CObject * &) 1008 CArchive & operator>>(CArchive &,CObList * &) 1009 CArchive & operator>>(CArchive &,CRichEditCntrItem * &) 1010 CArchive & operator>>(CArchive &,CStringArray * &) 1011 CArchive & operator>>(CArchive &,CStringList * &) 1012 CArchive & operator>>(CArchive &,CWordArray * &) 1013 CArchive & operator>>(CArchive &,CObject const * &) 1014 CArchive & operator>>(CArchive &,tagPOINT &) 1015 CArchive & operator>>(CArchive &,tagRECT &) 1016 CArchive & operator>>(CArchive &,tagSIZE &) 1017 CArchive & operator>>(CArchive &,ATL::CComBSTR &) 1018 CArchive & operator>>(CArchive &,COleCurrency &) 1019 CArchive & operator>>(CArchive &,ATL::COleDateTime &) 1020 CArchive & operator>>(CArchive &,ATL::COleDateTimeSpan &) 1021 CArchive & operator>>(CArchive &,COleVariant &) 1022 CArchive & operator>>(CArchive &,ATL::CTime &) 1023 CArchive & operator>>(CArchive &,ATL::CTimeSpan &) 1024 CArchive & CArchive::operator>>(__int64 &) 1025 CArchive & CArchive::operator>>(unsigned __int64 &) 1026 CArchive & CArchive::operator>>(bool &) 1027 CArchive & CArchive::operator>>(wchar_t &) 1028 CArchive & CArchive::operator>>(char &) 1029 CArchive & CArchive::operator>>(unsigned char &) 1030 CArchive & CArchive::operator>>(short &) 1031 CArchive & CArchive::operator>>(unsigned short &) 1032 CArchive & CArchive::operator>>(int &) 1033 CArchive & CArchive::operator>>(unsigned int &) 1034 CArchive & CArchive::operator>>(long &) 1035 CArchive & CArchive::operator>>(unsigned long &) 1036 CArchive & CArchive::operator>>(float &) 1037 CArchive & CArchive::operator>>(double &) 1038 CArchive & operator<<(CArchive &,tagRECT const &) 1039 CArchive & operator<<(CArchive &,CObject const *) 1040 CArchive & operator<<(CArchive &,tagPOINT) 1041 CArchive & operator<<(CArchive &,tagSIZE) 1042 CArchive & operator<<(CArchive &,ATL::CComBSTR) 1043 CArchive & operator<<(CArchive &,COleCurrency) 1044 CArchive & operator<<(CArchive &,ATL::COleDateTime) 1045 CArchive & operator<<(CArchive &,ATL::COleDateTimeSpan) 1046 CArchive & operator<<(CArchive &,COleVariant) 1047 CArchive & operator<<(CArchive &,ATL::CTime) 1048 CArchive & operator<<(CArchive &,ATL::CTimeSpan) 1049 CDumpContext & operator<<(CDumpContext &,COleSafeArray &) 1050 CDumpContext & operator<<(CDumpContext &,tagRECT const &) 1051 CDumpContext & operator<<(CDumpContext &,tagPOINT) 1052 CDumpContext & operator<<(CDumpContext &,tagSIZE) 1053 CDumpContext & operator<<(CDumpContext &,COleCurrency) 1054 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTime) 1055 CDumpContext & operator<<(CDumpContext &,ATL::COleDateTimeSpan) 1056 CDumpContext & operator<<(CDumpContext &,COleVariant) 1057 CDumpContext & operator<<(CDumpContext &,ATL::CTime) 1058 CDumpContext & operator<<(CDumpContext &,ATL::CTimeSpan) 1059 CArchive & CArchive::operator<<(__int64) 1060 CArchive & CArchive::operator<<(unsigned __int64) 1061 CArchive & CArchive::operator<<(bool) 1062 CArchive & CArchive::operator<<(wchar_t) 1063 CArchive & CArchive::operator<<(char) 1064 CArchive & CArchive::operator<<(unsigned char) 1065 CArchive & CArchive::operator<<(short) 1066 CArchive & CArchive::operator<<(unsigned short) 1067 CArchive & CArchive::operator<<(int) 1068 CArchive & CArchive::operator<<(unsigned int) 1069 CArchive & CArchive::operator<<(long) 1070 CArchive & CArchive::operator<<(unsigned long) 1071 CArchive & CArchive::operator<<(float) 1072 CArchive & CArchive::operator<<(double) 1073 CDumpContext & CDumpContext::operator<<(__int64) 1074 CDumpContext & CDumpContext::operator<<(unsigned __int64) 1075 CDumpContext & CDumpContext::operator<<(CObject const &) 1076 CDumpContext & CDumpContext::operator<<(unsigned char) 1077 CDumpContext & CDumpContext::operator<<(unsigned short) 1078 CDumpContext & CDumpContext::operator<<(int) 1079 CDumpContext & CDumpContext::operator<<(unsigned int) 1080 CDumpContext & CDumpContext::operator<<(long) 1081 CDumpContext & CDumpContext::operator<<(unsigned long) 1082 CDumpContext & CDumpContext::operator<<(float) 1083 CDumpContext & CDumpContext::operator<<(double) 1084 CDumpContext & CDumpContext::operator<<(HACCEL__ *) 1085 CDumpContext & CDumpContext::operator<<(HDC__ *) 1086 CDumpContext & CDumpContext::operator<<(HFONT__ *) 1087 CDumpContext & CDumpContext::operator<<(HMENU__ *) 1088 CDumpContext & CDumpContext::operator<<(HWND__ *) 1089 CDumpContext & CDumpContext::operator<<(wchar_t const *) 1090 CDumpContext & CDumpContext::operator<<(char const *) 1091 CDumpContext & CDumpContext::operator<<(CObject const *) 1092 CDumpContext & CDumpContext::operator<<(void const *) 1093 int CGdiObject::operator==(CGdiObject const &)const 1094 int CMenu::operator==(CMenu const &)const 1095 int COleCurrency::operator==(COleCurrency const &)const 1096 int COleSafeArray::operator==(tagSAFEARRAY const &)const 1097 int COleSafeArray::operator==(tagVARIANT const &)const 1098 int COleSafeArray::operator==(COleSafeArray const &)const 1099 int COleSafeArray::operator==(COleVariant const &)const 1100 int COleSafeArray::operator==(tagSAFEARRAY const *)const 1101 int COleSafeArray::operator==(tagVARIANT const *)const 1102 int COleVariant::operator==(tagVARIANT const &)const 1103 int COleVariant::operator==(tagVARIANT const *)const 1104 int CWnd::operator==(CWnd const &)const 1105 int CGdiObject::operator!=(CGdiObject const &)const 1106 int CMenu::operator!=(CMenu const &)const 1107 int COleCurrency::operator!=(COleCurrency const &)const 1108 int CWnd::operator!=(CWnd const &)const 1109 wchar_t ATL::CSimpleStringT::operator[](int)const 1110 char ATL::CSimpleStringT::operator[](int)const 1111 unsigned char & CByteArray::operator[](int) 1112 unsigned char CByteArray::operator[](int)const 1113 unsigned long & CDWordArray::operator[](int) 1114 unsigned long CDWordArray::operator[](int)const 1115 void * & CMapPtrToPtr::operator[](void *) 1116 unsigned short & CMapPtrToWord::operator[](void *) 1117 CObject * & CMapStringToOb::operator[](wchar_t const *) 1118 void * & CMapStringToPtr::operator[](wchar_t const *) 1119 ATL::CStringT > > & CMapStringToString::operator[](wchar_t const *) 1120 CObject * & CMapWordToOb::operator[](unsigned short) 1121 void * & CMapWordToPtr::operator[](unsigned short) 1122 CObject * & CObArray::operator[](int) 1123 CObject * CObArray::operator[](int)const 1124 void * & CPtrArray::operator[](int) 1125 void * CPtrArray::operator[](int)const 1126 ATL::CStringT > > & CStringArray::operator[](int) 1127 ATL::CStringT > > const & CStringArray::operator[](int)const 1128 unsigned int & CUIntArray::operator[](int) 1129 unsigned int CUIntArray::operator[](int)const 1130 unsigned short & CWordArray::operator[](int) 1131 unsigned short CWordArray::operator[](int)const 1132 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 1133 ATL::CSimpleStringT::operator wchar_t const *(void)const 1134 ATL::CSimpleStringT::operator ATL::CSimpleStringT &(void) 1135 ATL::CSimpleStringT::operator char const *(void)const 1136 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 1137 ATL::CStringT > >::operator ATL::CSimpleStringT &(void) 1138 CAsyncSocket::operator unsigned int(void)const 1139 CBitmap::operator HBITMAP__ *(void)const 1140 CBrush::operator HBRUSH__ *(void)const 1141 CCriticalSection::operator _RTL_CRITICAL_SECTION *(void) 1142 CDC::operator HDC__ *(void)const 1143 CFile::operator void *(void)const 1144 CFont::operator HFONT__ *(void)const 1145 CGdiObject::operator void *(void)const 1146 CGopherLocator::operator wchar_t const *(void)const 1147 CImageList::operator _IMAGELIST *(void)const 1148 CInternetConnection::operator void *(void)const 1149 CInternetFile::operator void *(void)const 1150 CInternetSession::operator void *(void)const 1151 CMenu::operator HMENU__ *(void)const 1152 COleCurrency::operator union tagCY(void)const 1153 COleDispatchDriver::operator IDispatch *(void) 1154 COleSafeArray::operator tagVARIANT *(void) 1155 COleSafeArray::operator tagVARIANT const *(void)const 1156 COleVariant::operator tagVARIANT *(void) 1157 COleVariant::operator tagVARIANT const *(void)const 1158 CPalette::operator HPALETTE__ *(void)const 1159 CPen::operator HPEN__ *(void)const 1160 CRgn::operator HRGN__ *(void)const 1161 CSyncObject::operator void *(void)const 1162 CWinThread::operator void *(void)const 1163 CWnd::operator HWND__ *(void)const 1164 COleCurrency COleCurrency::operator*(long)const 1165 COleCurrency COleCurrency::operator-(COleCurrency const &)const 1166 COleCurrency COleCurrency::operator-(void)const 1167 COleCurrency COleCurrency::operator+(COleCurrency const &)const 1168 COleCurrency COleCurrency::operator/(long)const 1169 int COleCurrency::operator<(COleCurrency const &)const 1170 int COleCurrency::operator<=(COleCurrency const &)const 1171 int COleCurrency::operator>(COleCurrency const &)const 1172 int COleCurrency::operator>=(COleCurrency const &)const 1173 COleCurrency const & COleCurrency::operator*=(long) 1174 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1175 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1176 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1177 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1178 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t const *) 1179 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(wchar_t) 1180 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(ATL::CSimpleStringT const &) 1181 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char) 1182 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(unsigned char) 1183 ATL::CSimpleStringT & ATL::CSimpleStringT::operator+=(char const *) 1184 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1185 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1186 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1187 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1188 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1189 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1190 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1191 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t) 1192 ATL::CStringT > > & ATL::CStringT > >::operator+=(tagVARIANT const &) 1193 ATL::CStringT > > & ATL::CStringT > >::operator+=(ATL::CSimpleStringT const &) 1194 ATL::CStringT > > & ATL::CStringT > >::operator+=(char) 1195 ATL::CStringT > > & ATL::CStringT > >::operator+=(unsigned char) 1196 ATL::CStringT > > & ATL::CStringT > >::operator+=(wchar_t const *) 1197 ATL::CStringT > > & ATL::CStringT > >::operator+=(char const *) 1198 COleCurrency const & COleCurrency::operator+=(COleCurrency const &) 1199 COleCurrency const & COleCurrency::operator-=(COleCurrency const &) 1200 int _AfxAbortProc(HDC__ *,int) 1201 CThreadLocal<_AFXCTL_AMBIENT_CACHE> _afxAmbientCache 1202 int _AfxDeleteRegKey(wchar_t const *) 1203 COleControlSiteOrWnd * _AfxFindSiteOrWnd(CWnd *,CWnd *) 1204 CProcessLocal<_AFX_RICHEDIT_STATE> _afxRichEditState 1205 int _AfxSocketInit(WSAData *) 1206 void CArchive::Abort(void) 1207 void CFile::Abort(void) 1208 void CInternetFile::Abort(void) 1209 void CMemFile::Abort(void) 1210 void CMirrorFile::Abort(void) 1211 void COleStreamFile::Abort(void) 1212 void CSocketFile::Abort(void) 1213 void CStdioFile::Abort(void) 1214 int CDC::AbortDoc(void) 1215 int CDC::AbortPath(void) 1216 long COleControlSite::XNotifyDBEvents::AboutToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1217 long CCheckListBox::accDoDefaultAction(tagVARIANT) 1218 long CWnd::accDoDefaultAction(tagVARIANT) 1219 long CWnd::XAccessible::accDoDefaultAction(tagVARIANT) 1220 int CAsyncSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1221 int CSocket::Accept(CAsyncSocket &,sockaddr *,int *) 1222 void COleSafeArray::AccessData(void * *) 1223 long CWnd::accHitTest(long,long,tagVARIANT *) 1224 long CWnd::XAccessible::accHitTest(long,long,tagVARIANT *) 1225 long CWnd::accLocation(long *,long *,long *,long *,tagVARIANT) 1226 long CWnd::XAccessible::accLocation(long *,long *,long *,long *,tagVARIANT) 1227 long CWnd::accNavigate(long,tagVARIANT,tagVARIANT *) 1228 long CWnd::XAccessible::accNavigate(long,tagVARIANT,tagVARIANT *) 1229 long CWnd::accSelect(long,tagVARIANT) 1230 long CWnd::XAccessible::accSelect(long,tagVARIANT) 1231 void COleClientItem::Activate(long,CView *,tagMSG *) 1232 void CToolTipCtrl::Activate(int) 1233 long COlePropertyPage::XPropertyPage::Activate(HWND__ *,tagRECT const *,int) 1234 void COleDocObjectItem::ActivateAndShow(void) 1235 int COleClientItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1236 int CRichEditCntrItem::ActivateAs(wchar_t const *,_GUID const &,_GUID const &) 1237 void CDocObjectServer::ActivateDocObject(void) 1238 void COleServerDoc::ActivateDocObject(void) 1239 void CFrameWnd::ActivateFrame(int) 1240 void CMDIChildWnd::ActivateFrame(int) 1241 int COleServerDoc::ActivateInPlace(void) 1242 long COleDocObjectItem::XOleDocumentSite::ActivateMe(IOleDocumentView *) 1243 void CSplitterWnd::ActivateNext(int) 1244 void CWnd::ActivateTopParent(void) 1245 int CByteArray::Add(unsigned char) 1246 int CDWordArray::Add(unsigned long) 1247 int CImageList::Add(HICON__ *) 1248 int CImageList::Add(CBitmap *,CBitmap *) 1249 int CImageList::Add(CBitmap *,unsigned long) 1250 int CObArray::Add(CObject *) 1251 int CPtrArray::Add(void *) 1252 void CRecentFileList::Add(wchar_t const *) 1253 int CStringArray::Add(ATL::CStringT > > const &) 1254 int CStringArray::Add(wchar_t const *) 1255 int CUIntArray::Add(unsigned int) 1256 int CWordArray::Add(unsigned short) 1257 int CReBar::AddBar(CWnd *,unsigned long,unsigned long,wchar_t const *,unsigned long) 1258 int CReBar::AddBar(CWnd *,wchar_t const *,CBitmap *,unsigned long) 1259 int CToolBarCtrl::AddBitmap(int,unsigned int) 1260 int CToolBarCtrl::AddBitmap(int,CBitmap *) 1261 int CToolBarCtrl::AddButtons(int,_TBBUTTON *) 1262 void COleClientItem::AddCachedData(COleDataSource *) 1263 void COleInsertDialog::AddClassIDToList(_GUID * &,int &,int &,_GUID *) 1264 void CEnumConnections::AddConnection(tagCONNECTDATA *) 1265 void CEnumConnPoints::AddConnPoint(IConnectionPoint *) 1266 void CFrameWnd::AddControlBar(CControlBar *) 1267 void CDocManager::AddDocTemplate(CDocTemplate *) 1268 void CWinApp::AddDocTemplate(CDocTemplate *) 1269 void CDocTemplate::AddDocument(CDocument *) 1270 void CMultiDocTemplate::AddDocument(CDocument *) 1271 void CSingleDocTemplate::AddDocument(CDocument *) 1272 void CEnumFormatEtc::AddFormat(tagFORMATETC const *) 1273 void COlePasteSpecialDialog::AddFormat(tagFORMATETC const &,wchar_t *,wchar_t *,unsigned long) 1274 void COlePasteSpecialDialog::AddFormat(unsigned int,unsigned long,unsigned int,int,int) 1275 void COleControl::AddFrameLevelUI(void) 1276 void CFrameWnd::AddFrameWnd(void) 1277 __POSITION * CObList::AddHead(CObject *) 1278 void CObList::AddHead(CObList *) 1279 __POSITION * CPtrList::AddHead(void *) 1280 void CPtrList::AddHead(CPtrList *) 1281 void CSimpleList::AddHead(void *) 1282 __POSITION * CStringList::AddHead(ATL::CStringT > > const &) 1283 __POSITION * CStringList::AddHead(wchar_t const *) 1284 void CStringList::AddHead(CStringList *) 1285 void COleDocument::AddItem(CDocItem *) 1286 enum tagOLEUIPASTEFLAG COlePasteSpecialDialog::AddLinkEntry(unsigned int) 1287 int CDC::AddMetaFileComment(unsigned int,unsigned char const *) 1288 void CDaoRecordset::AddNew(void) 1289 void CRecordset::AddNew(void) 1290 void COleServerItem::AddOtherClipboardData(COleDataSource *) 1291 void CPropertySheet::AddPage(CPropertyPage *) 1292 void CPropertySection::AddProperty(CProperty *) 1293 void CPropertySet::AddProperty(_GUID,CProperty *) 1294 unsigned long CArchiveStream::AddRef(void) 1295 unsigned long CBlobProperty::AddRef(void) 1296 unsigned long CBrowserControlSite::AddRef(void) 1297 unsigned long CDHtmlControlSink::AddRef(void) 1298 unsigned long CDHtmlElementEventSink::AddRef(void) 1299 unsigned long CDHtmlEventSink::AddRef(void) 1300 unsigned long CInnerUnknown::AddRef(void) 1301 unsigned long COleConnPtContainer::AddRef(void) 1302 unsigned long COleDispatchImpl::AddRef(void) 1303 unsigned long COleUILinkInfo::AddRef(void) 1304 unsigned long CPrintDialogEx::AddRef(void) 1305 unsigned long CWnd::XAccessible::AddRef(void) 1306 unsigned long CWnd::XAccessibleServer::AddRef(void) 1307 unsigned long COleClientItem::XAdviseSink::AddRef(void) 1308 unsigned long COleControlSite::XAmbientProps::AddRef(void) 1309 unsigned long COleControlSite::XBoundObjectSite::AddRef(void) 1310 unsigned long COleObjectFactory::XClassFactory::AddRef(void) 1311 unsigned long CConnectionPoint::XConnPt::AddRef(void) 1312 unsigned long COleControl::XDataObject::AddRef(void) 1313 unsigned long COleDataSource::XDataObject::AddRef(void) 1314 unsigned long COleServerDoc::XDataObject::AddRef(void) 1315 unsigned long COleServerItem::XDataObject::AddRef(void) 1316 unsigned long CHtmlControlSite::XDocHostUIHandler::AddRef(void) 1317 unsigned long COleDropSource::XDropSource::AddRef(void) 1318 unsigned long COleDropTarget::XDropTarget::AddRef(void) 1319 unsigned long CEnumArray::XEnumVOID::AddRef(void) 1320 unsigned long COleControlSite::XEventSink::AddRef(void) 1321 unsigned long CFileDialog::XFileDialogControlEvents::AddRef(void) 1322 unsigned long CFileDialog::XFileDialogEvents::AddRef(void) 1323 unsigned long COleControl::XFontNotification::AddRef(void) 1324 unsigned long COleMessageFilter::XMessageFilter::AddRef(void) 1325 unsigned long COleControlSite::XNotifyDBEvents::AddRef(void) 1326 unsigned long COleControl::XOleCache::AddRef(void) 1327 unsigned long COleClientItem::XOleClientSite::AddRef(void) 1328 unsigned long COleControlSite::XOleClientSite::AddRef(void) 1329 unsigned long CDocObjectServer::XOleCommandTarget::AddRef(void) 1330 unsigned long COleFrameHook::XOleCommandTarget::AddRef(void) 1331 unsigned long COleControlContainer::XOleContainer::AddRef(void) 1332 unsigned long COleControl::XOleControl::AddRef(void) 1333 unsigned long COleControlSite::XOleControlSite::AddRef(void) 1334 unsigned long CDocObjectServer::XOleDocument::AddRef(void) 1335 unsigned long COleDocObjectItem::XOleDocumentSite::AddRef(void) 1336 unsigned long CDocObjectServer::XOleDocumentView::AddRef(void) 1337 unsigned long COleControl::XOleInPlaceActiveObject::AddRef(void) 1338 unsigned long COleServerDoc::XOleInPlaceActiveObject::AddRef(void) 1339 unsigned long COleFrameHook::XOleInPlaceFrame::AddRef(void) 1340 unsigned long COleControl::XOleInPlaceObject::AddRef(void) 1341 unsigned long COleServerDoc::XOleInPlaceObject::AddRef(void) 1342 unsigned long COleControlContainer::XOleIPFrame::AddRef(void) 1343 unsigned long COleClientItem::XOleIPSite::AddRef(void) 1344 unsigned long COleControlSite::XOleIPSite::AddRef(void) 1345 unsigned long COleLinkingDoc::XOleItemContainer::AddRef(void) 1346 unsigned long CDocObjectServer::XOleObject::AddRef(void) 1347 unsigned long COleControl::XOleObject::AddRef(void) 1348 unsigned long COleServerDoc::XOleObject::AddRef(void) 1349 unsigned long COleServerItem::XOleObject::AddRef(void) 1350 unsigned long COlePropertiesDialog::XOleUIObjInfo::AddRef(void) 1351 unsigned long COleControl::XPerPropertyBrowsing::AddRef(void) 1352 unsigned long COleLinkingDoc::XPersistFile::AddRef(void) 1353 unsigned long COleControl::XPersistMemory::AddRef(void) 1354 unsigned long COleControl::XPersistPropertyBag::AddRef(void) 1355 unsigned long COleControl::XPersistStorage::AddRef(void) 1356 unsigned long COleServerDoc::XPersistStorage::AddRef(void) 1357 unsigned long COleControl::XPersistStreamInit::AddRef(void) 1358 unsigned long COleControl::XPointerInactive::AddRef(void) 1359 unsigned long CDocObjectServer::XPrint::AddRef(void) 1360 unsigned long COleControlSite::XPropertyNotifySink::AddRef(void) 1361 unsigned long COlePropertyPage::XPropertyPage::AddRef(void) 1362 unsigned long COlePropertyPage::XPropNotifySink::AddRef(void) 1363 unsigned long COleControl::XProvideClassInfo::AddRef(void) 1364 unsigned long COleControl::XQuickActivate::AddRef(void) 1365 unsigned long CRichEditView::XRichEditOleCallback::AddRef(void) 1366 unsigned long COleControlSite::XRowsetNotify::AddRef(void) 1367 unsigned long COleControl::XSpecifyPropertyPages::AddRef(void) 1368 unsigned long COleControl::XViewObject::AddRef(void) 1369 int CToolBar::AddReplaceBitmap(HBITMAP__ *) 1370 int CHttpFile::AddRequestHeaders(ATL::CStringT > > &,unsigned long) 1371 int CHttpFile::AddRequestHeaders(wchar_t const *,unsigned long,int) 1372 CPropertySection * CPropertySet::AddSection(_GUID) 1373 void CPropertySet::AddSection(CPropertySection *) 1374 void COlePasteSpecialDialog::AddStandardFormats(int) 1375 int CComboBox::AddString(wchar_t const *) 1376 int CComboBoxEx::AddString(wchar_t const *) 1377 int CListBox::AddString(wchar_t const *) 1378 int CToolBarCtrl::AddString(unsigned int) 1379 int CToolBarCtrl::AddStrings(wchar_t const *) 1380 __POSITION * CObList::AddTail(CObject *) 1381 void CObList::AddTail(CObList *) 1382 __POSITION * CPtrList::AddTail(void *) 1383 void CPtrList::AddTail(CPtrList *) 1384 __POSITION * CStringList::AddTail(ATL::CStringT > > const &) 1385 __POSITION * CStringList::AddTail(wchar_t const *) 1386 void CStringList::AddTail(CStringList *) 1387 int CToolTipCtrl::AddTool(CWnd *,unsigned int,tagRECT const *,unsigned int) 1388 int CToolTipCtrl::AddTool(CWnd *,wchar_t const *,tagRECT const *,unsigned int) 1389 void CWinApp::AddToRecentFileList(wchar_t const *) 1390 void CDocument::AddView(CView *) 1391 void CMetaFileDC::AdjustCP(int) 1392 void CRichEditView::AdjustDialogPosition(CDialog *) 1393 void CRectTracker::AdjustRect(int,tagRECT *) 1394 void CTabCtrl::AdjustRect(int,tagRECT *) 1395 int CToolTipCtrl::AdjustRect(tagRECT *,int) 1396 long COleControlSite::XOleIPSite::AdjustRect(tagRECT *) 1397 long CDHtmlElementEventSink::Advise(IUnknown *,_GUID const &) 1398 long CConnectionPoint::XConnPt::Advise(IUnknown *,unsigned long *) 1399 long CDocObjectServer::XOleObject::Advise(IAdviseSink *,unsigned long *) 1400 long COleControl::XOleObject::Advise(IAdviseSink *,unsigned long *) 1401 long COleServerDoc::XOleObject::Advise(IAdviseSink *,unsigned long *) 1402 long COleServerItem::XOleObject::Advise(IAdviseSink *,unsigned long *) 1403 wchar_t * AfxA2WHelper(wchar_t *,char const *,int) 1404 void AfxAbort(void) 1405 int AfxActivateActCtx(void *,unsigned long *) 1406 enum eActCtxResult AfxActivateActCtxWrapper(void *,unsigned long *) 1407 void * AfxAllocMemoryDebug(unsigned int,int,char const *,int) 1408 int AfxAssertFailedLine(char const *,int) 1409 void AfxAssertValidObject(CObject const *,char const *,int) 1410 CWinThread * AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1411 CWinThread * AfxBeginThread(CRuntime*,int,unsigned int,unsigned long,_SECURITY_ATTRIBUTES *) 1412 void AfxBSTR2CString(ATL::CStringT > > *,wchar_t *) 1413 long AfxCallWndProc(CWnd *,HWND__ *,unsigned int,unsigned int,long) 1414 void AfxCancelModes(HWND__ *) 1415 void AfxCheckError(long) 1416 int AfxCheckMemory(void) 1417 void AfxClassInit(CRuntime*) 1418 int AfxComparePath(wchar_t const *,wchar_t const *) 1419 int AfxCompareValueByRef(void *,void *,int) 1420 int AfxConnectionAdvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long *) 1421 int AfxConnectionUnadvise(IUnknown *,_GUID const &,IUnknown *,int,unsigned long) 1422 void AfxCopyValueByRef(void *,void *,long *,int) 1423 void AfxCoreInitModule(void) 1424 void * AfxCreateActCtxW(tagACTCTXW const *) 1425 HDC__ * AfxCreateDC(void *,void *) 1426 int AfxCriticalInit(void) 1427 int AfxCriticalNewHandler(unsigned int) 1428 void AfxCriticalTerm(void) 1429 int AfxCustomLogFont(unsigned int,tagLOGFONTW *) 1430 void AfxDaoCheck(long,char const *,char const *,int,int,int) 1431 _DAODBEngine * AfxDaoGetEngine(void) 1432 void AfxDaoInit(void) 1433 void AfxDaoTerm(void) 1434 void AfxDaoTrace(long,char const *,char const *,int) 1435 AUX_DATA afxData 1436 int AfxDeactivateActCtx(unsigned long,unsigned long) 1437 void AfxDeleteObject(void * *) 1438 long AfxDelRegTreeHelper(HKEY__ *,ATL::CStringT > > const &) 1439 int AfxDiagnosticInit(void) 1440 int AfxDlgProc(HWND__ *,unsigned int,unsigned int,long) 1441 long AfxDllCanUnloadNow(void) 1442 long AfxDllGetClassObject(_GUID const &,_GUID const &,void * *) 1443 void AfxDoForAllClasses(void (__cdecl*)(CRuntimeconst *,void *),void *) 1444 void AfxDoForAllObjects(void (__cdecl*)(CObject *,void *),void *) 1445 void AfxDrawDitheredBitmap(CDC *,int,int,CBitmap const &,unsigned long,unsigned long) 1446 void AfxDrawGrayBitmap(CDC *,int,int,CBitmap const &,unsigned long) 1447 CDumpContext afxDump 1448 void AfxDump(CObject const *) 1449 int AfxDumpMemoryLeaks(void) 1450 CObject * AfxDynamicDownCast(CRuntime*,CObject *) 1451 CObject const * AfxDynamicDownCast(CRuntime*,CObject const *) 1452 void AfxEditviewTerm(void) 1453 void AfxEnableControlContainer(COccManager *) 1454 int AfxEnableMemoryLeakOverride(int) 1455 int AfxEnableMemoryTracking(int) 1456 int AfxEndDeferRegisterClass(long) 1457 void AfxEndThread(unsigned int,int) 1458 int AfxEnumMetaFileProc(HDC__ *,tagHANDLETABLE *,tagMETARECORD *,int,long) 1459 int AfxExtractSubString(ATL::CStringT > > &,wchar_t const *,int,wchar_t) 1460 void AfxFailMaxChars(CDataExchange *,int) 1461 void AfxFailRadio(CDataExchange *) 1462 int AfxFieldText(CDataExchange *,int,void *,CDaoRecordset *) 1463 int AfxFieldText(CDataExchange *,int,void *,CRecordset *) 1464 AFX_MSGMAP_ENTRY const * AfxFindMessageEntry(AFX_MSGMAP_ENTRY const *,unsigned int,unsigned int,unsigned int) 1465 HINSTANCE__ * AfxFindResourceHandle(wchar_t const *,wchar_t const *) 1466 HINSTANCE__ * AfxFindStringResourceHandle(unsigned int) 1467 void AfxFormatString1(ATL::CStringT > > &,unsigned int,wchar_t const *) 1468 void AfxFormatString2(ATL::CStringT > > &,unsigned int,wchar_t const *,wchar_t const *) 1469 void AfxFormatStrings(ATL::CStringT > > &,unsigned int,wchar_t const * const *,int) 1470 void AfxFormatStrings(ATL::CStringT > > &,wchar_t const *,wchar_t const * const *,int) 1471 int AfxFreeLibrary(HINSTANCE__ *) 1472 void AfxFreeMemoryDebug(void *,int) 1473 int AfxFullPath(wchar_t *,wchar_t const *) 1474 long (__stdcall*AfxGetAfxWndProc(void))(HWND__ *,unsigned int,unsigned int,long) 1475 int AfxGetAmbientActCtx(void) 1476 CWinApp * AfxGetApp(void) 1477 AFX_MODULE_STATE * AfxGetAppModuleState(void) 1478 wchar_t const * AfxGetAppName(void) 1479 long AfxGetClassIDFromString(wchar_t const *,_GUID *) 1480 tagMSG * AfxGetCurrentMessage(void) 1481 _AFX_DAO_STATE * AfxGetDaoState(void) 1482 void AfxGetDefaultValue(_DAOField *,ATL::CStringT > > &) 1483 void AfxGetDitheredBitmap(CBitmap const &,CBitmap *,unsigned long,unsigned long) 1484 HWND__ * AfxGetDlgItemStartFromHWND(int,HWND__ *) 1485 unsigned long AfxGetDllVersion(void) 1486 wchar_t const * AfxGetFacilityString(long) 1487 void AfxGetFieldInfo(_DAOField *,CDaoFieldInfo &,unsigned long) 1488 unsigned int AfxGetFileName(wchar_t const *,wchar_t *,unsigned int) 1489 unsigned int AfxGetFileTitle(wchar_t const *,wchar_t *,unsigned int) 1490 wchar_t const * AfxGetFullScodeString(long) 1491 void AfxGetGrayBitmap(CBitmap const &,CBitmap *,unsigned long) 1492 void * AfxGetHENV(void) 1493 wchar_t const * AfxGetIIDString(_GUID const &) 1494 void AfxGetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1495 void AfxGetIndexFields(_DAOIndex *,DAOIndexFields * *) 1496 void AfxGetIndexInfo(_DAOIndex *,CDaoIndexInfo &,unsigned long) 1497 int AfxGetInProcServer(wchar_t const *,ATL::CStringT > > &) 1498 HINSTANCE__ * AfxGetInstanceHandle(void) 1499 HINSTANCE__ * AfxGetInstanceHandleHelper(void) 1500 unsigned long AfxGetInternetHandleType(void *) 1501 CWnd * AfxGetMainWnd(void) 1502 void AfxGetModuleShortFileName(HINSTANCE__ *,ATL::CStringT > > &) 1503 AFX_MODULE_STATE * AfxGetModuleState(void) 1504 AFX_MODULE_THREAD_STATE * AfxGetModuleThreadState(void) 1505 int (__cdecl*AfxGetNewHandler(void))(unsigned int) 1506 HWND__ * AfxGetParentOwner(HWND__ *) 1507 int AfxGetPropSheetFont(ATL::CStringT > > &,unsigned short &,int) 1508 HINSTANCE__ * AfxGetResourceHandle(void) 1509 _AFX_RICHEDIT_STATE * AfxGetRichEditState(void) 1510 void AfxGetRoot(wchar_t const *,ATL::CStringT > > &) 1511 wchar_t const * AfxGetScodeRangeString(long) 1512 wchar_t const * AfxGetScodeString(long) 1513 wchar_t const * AfxGetSeverityString(long) 1514 ATL::IAtlStringMgr * AfxGetStringManager(void) 1515 CWinThread * AfxGetThread(void) 1516 _AFX_THREAD_STATE * AfxGetThreadState(void) 1517 CTypeLibCache * AfxGetTypeLibCache(_GUID const *) 1518 void AfxGlobalFree(void *) 1519 int AfxHelpEnabled(void) 1520 void AfxHookWindowCreate(CWnd *) 1521 HWND__ * AfxHtmlHelp(HWND__ *,wchar_t const *,unsigned int,unsigned long) 1522 int AfxInitCurrentStateApp(void) 1523 int AfxInitExtensionModule(AFX_EXTENSION_MODULE &,HINSTANCE__ *) 1524 void AfxInitLocalData(HINSTANCE__ *) 1525 int AfxInitNetworkAddressControl(void) 1526 int AfxInitRichEdit(void) 1527 int AfxInitRichEdit2(void) 1528 void AfxInitThread(void) 1529 int AfxInternalIsIdleMessage(tagMSG *) 1530 int AfxInternalPreTranslateMessage(tagMSG *) 1531 long AfxInternalProcessWndProcException(CException *,tagMSG const *) 1532 int AfxInternalPumpMessage(void) 1533 void AfxInternetStatusCallback(void *,unsigned long,unsigned long,void *,unsigned long) 1534 void AfxInternetStatusCallbackDebug(void *,unsigned long,unsigned long,void *,unsigned long) 1535 int AfxIsDescendant(HWND__ *,HWND__ *) 1536 int AfxIsIdleMessage(tagMSG *) 1537 int AfxIsMemoryBlock(void const *,unsigned int,long *) 1538 int AfxIsModuleDll(void) 1539 int AfxIsValidAddress(void const *,unsigned int,int) 1540 int AfxIsValidAtom(unsigned short) 1541 int AfxIsValidAtom(wchar_t const *) 1542 int AfxIsValidString(wchar_t const *,int) 1543 int AfxIsValidString(char const *,int) 1544 void AfxLoadField(CRecordset &,unsigned int,void *,long *) 1545 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *) 1546 HINSTANCE__ * AfxLoadLangResourceDLL(wchar_t const *,wchar_t const *) 1547 HINSTANCE__ * AfxLoadLibrary(wchar_t const *) 1548 HINSTANCE__ * AfxLoadLibraryEx(wchar_t const *,void *,unsigned long) 1549 int AfxLoadString(unsigned int,wchar_t *,unsigned int) 1550 int AfxLoadString(unsigned int,char *,unsigned int) 1551 HBITMAP__ * AfxLoadSysColorBitmap(HINSTANCE__ *,HRSRC__ *,int) 1552 void AfxLockGlobals(int) 1553 void AfxLockTempMaps(void) 1554 CHandleMap * afxMapHDC(int) 1555 CHandleMap * afxMapHGDIOBJ(int) 1556 CHandleMap * afxMapHIMAGELIST(int) 1557 CHandleMap * afxMapHMENU(int) 1558 CHandleMap * afxMapHWND(int) 1559 HMENU__ * AfxMergeMenus(HMENU__ *,HMENU__ *,long *,int,int) 1560 int AfxMessageBox(unsigned int,unsigned int,unsigned int) 1561 int AfxMessageBox(wchar_t const *,unsigned int,unsigned int) 1562 int AfxNewHandler(unsigned int) 1563 int AfxOleCanExitApp(void) 1564 COleMessageFilter * AfxOleGetMessageFilter(void) 1565 int AfxOleGetUserCtrl(void) 1566 unsigned int AfxOleHookProc(HWND__ *,unsigned int,unsigned int,long) 1567 int AfxOleInit(void) 1568 int AfxOleInprocRegisterHelper(HKEY__ *,HKEY__ *,int) 1569 void AfxOleLockApp(void) 1570 int AfxOleLockControl(_GUID const &) 1571 int AfxOleLockControl(wchar_t const *) 1572 void AfxOleOnReleaseAllObjects(void) 1573 int AfxOleRegisterControlClass(HINSTANCE__ *,_GUID const &,wchar_t const *,unsigned int,unsigned int,int,unsigned long,_GUID const &,unsigned short,unsigned short) 1574 int AfxOleRegisterHelper(wchar_t const * const *,wchar_t const * const *,int,int,HKEY__ *) 1575 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int) 1576 int AfxOleRegisterPropertyPageClass(HINSTANCE__ *,_GUID const &,unsigned int,int) 1577 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *) 1578 int AfxOleRegisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int,wchar_t const *,wchar_t const *) 1579 int AfxOleRegisterTypeLib(HINSTANCE__ *,_GUID const &,wchar_t const *,wchar_t const *) 1580 void AfxOleSetEditMenu(COleClientItem *,CMenu *,unsigned int,unsigned int,unsigned int,unsigned int) 1581 void AfxOleSetUserCtrl(int) 1582 void AfxOleTerm(int) 1583 void AfxOleTermOrFreeLib(int,int) 1584 void AfxOleUnlockAllControls(void) 1585 void AfxOleUnlockApp(void) 1586 int AfxOleUnlockControl(_GUID const &) 1587 int AfxOleUnlockControl(wchar_t const *) 1588 int AfxOleUnregisterClass(_GUID const &,wchar_t const *) 1589 int AfxOleUnregisterHelper(wchar_t const * const *,wchar_t const * const *,int,HKEY__ *) 1590 int AfxOleUnregisterServerClass(_GUID const &,wchar_t const *,wchar_t const *,wchar_t const *,enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *) 1591 int AfxOleUnregisterTypeLib(_GUID const &,unsigned short,unsigned short,unsigned long) 1592 int AfxParseURL(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &) 1593 int AfxParseURLEx(wchar_t const *,unsigned long &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned short &,ATL::CStringT > > &,ATL::CStringT > > &,unsigned long) 1594 void AfxPostQuitMessage(int) 1595 int AfxPreTranslateMessage(tagMSG *) 1596 long AfxProcessWndProcException(CException *,tagMSG const *) 1597 unsigned int AfxPropPageCallback(HWND__ *,unsigned int,_PROPSHEETPAGEW *) 1598 int AfxPropSheetCallback(HWND__ *,unsigned int,long) 1599 int AfxPumpMessage(void) 1600 unsigned int AfxReadStringLength(CArchive &,int &) 1601 int AfxRegisterClass(tagWNDCLASSW *) 1602 int AfxRegisterSiteFactory(IControlSiteFactory *) 1603 wchar_t const * AfxRegisterWndClass(unsigned int,HICON__ *,HBRUSH__ *,HICON__ *) 1604 void AfxReleaseActCtx(void *) 1605 void AfxRepositionWindow(AFX_SIZEPARENTPARAMS *,HWND__ *,tagRECT const *) 1606 void AfxResetMsgCache(void) 1607 int AfxResolveShortcut(CWnd *,wchar_t const *,wchar_t *,int) 1608 void AfxRFXBulkDefault(CFieldExchange *,wchar_t const *,void *,long *,int,unsigned long) 1609 void AfxSafeArrayInit(COleSafeArray *) 1610 int (__stdcall*AfxSetAllocHook(int (__stdcall*)(unsigned int,int,long)))(unsigned int,int,long) 1611 void AfxSetAllocStop(long) 1612 void AfxSetAmbientActCtx(int) 1613 void AfxSetDefaultValue(_DAOField *,ATL::CStringT > > &) 1614 void AfxSetFieldInfo(_DAOField *,CDaoFieldInfo &) 1615 void AfxSetIndexFieldInfo(_DAOIndex *,CDaoIndexInfo &) 1616 void AfxSetIndexInfo(_DAOIndex *,CDaoIndexInfo &) 1617 AFX_MODULE_STATE * AfxSetModuleState(AFX_MODULE_STATE *) 1618 int (__cdecl*AfxSetNewHandler(int (__cdecl*)(unsigned int)))(unsigned int) 1619 void AfxSetResourceHandle(HINSTANCE__ *) 1620 void AfxSetWindowText(HWND__ *,wchar_t const *) 1621 void AfxSocketTerm(void) 1622 CObject * AfxStaticDownCast(CRuntime*,CObject *) 1623 CObject const * AfxStaticDownCast(CRuntime*,CObject const *) 1624 void AfxStoreField(CRecordset &,unsigned int,void *) 1625 ATL::CStringT > > AfxStringFromCLSID(_GUID const &) 1626 void AfxTermExtensionModule(AFX_EXTENSION_MODULE &,int) 1627 void AfxTermLocalData(HINSTANCE__ *,int) 1628 void AfxTermThread(HINSTANCE__ *) 1629 void AfxTextFloatFormat(CDataExchange *,int,void *,double,int) 1630 void AfxThrowArchiveException(int,wchar_t const *) 1631 void AfxThrowDaoException(int,long) 1632 void AfxThrowDBException(short,CDatabase *,void *) 1633 void AfxThrowFileException(int,long,wchar_t const *) 1634 void AfxThrowInternetException(unsigned long,unsigned long) 1635 void AfxThrowInvalidArgException(void) 1636 void AfxThrowLastCleanup(void) 1637 void AfxThrowMemoryException(void) 1638 void AfxThrowNotSupportedException(void) 1639 void AfxThrowOleDispatchException(unsigned short,unsigned int,unsigned int) 1640 void AfxThrowOleDispatchException(unsigned short,wchar_t const *,unsigned int) 1641 void AfxThrowOleException(long) 1642 void AfxThrowResourceException(void) 1643 void AfxThrowUserException(void) 1644 void AfxTimeToFileTime(ATL::CTime const &,_FILETIME *) 1645 void AfxTlsAddRef(void) 1646 void AfxTlsRelease(void) 1647 void AfxTrace(wchar_t const *,...) 1648 int afxTraceEnabled 1649 unsigned int afxTraceFlags 1650 void AfxTrackerTerm(void) 1651 void AfxTryCleanup(void) 1652 int AfxUnhookWindowCreate(void) 1653 void AfxUnlockGlobals(int) 1654 int AfxUnlockTempMaps(int) 1655 void AfxUnmergeMenus(HMENU__ *,HMENU__ *,HMENU__ *) 1656 int AfxUnregisterSiteFactory(IControlSiteFactory *) 1657 void AfxUnregisterWndClasses(void) 1658 void AfxVariantInit(tagVARIANT *) 1659 int AfxVerifyLicFile(HINSTANCE__ *,wchar_t const *,wchar_t const *,unsigned int) 1660 char * AfxW2AHelper(char *,wchar_t const *,int) 1661 void AfxWingdixTerm(void) 1662 int AfxWinInit(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1663 int AfxWinMain(HINSTANCE__ *,HINSTANCE__ *,wchar_t *,int) 1664 void AfxWinTerm(void) 1665 long AfxWndProc(HWND__ *,unsigned int,unsigned int,long) 1666 long AfxWndProcBase(HWND__ *,unsigned int,unsigned int,long) 1667 long AfxWndProcDllOle(HWND__ *,unsigned int,unsigned int,long) 1668 void AfxWriteStringLength(CArchive &,unsigned int,int) 1669 void * CFixedAlloc::Alloc(void) 1670 void * CFixedAllocNoSync::Alloc(void) 1671 unsigned char * CMemFile::Alloc(unsigned long) 1672 unsigned char * CSharedFile::Alloc(unsigned long) 1673 void CRecordset::AllocAndCacheFieldInfo(void) 1674 ATL::CStringData * CAfxStringMgr::Allocate(int,int) 1675 void CDaoRecordset::AllocCache(void) 1676 void CDaoFieldExchange::AllocCacheValue(CDaoFieldCache * &,unsigned long) 1677 void CDatabase::AllocConnect(unsigned long) 1678 void COleSafeArray::AllocData(void) 1679 void CDaoRecordset::AllocDatabase(void) 1680 void CRecordset::AllocDataCache(void) 1681 void COleSafeArray::AllocDescriptor(unsigned long) 1682 int CControlBar::AllocElements(int,int) 1683 int CStatusBar::AllocElements(int,int) 1684 int CRecordset::AllocHstmt(void) 1685 void AllocLongBinary(CLongBinary &,unsigned long) 1686 void CPropertyPage::AllocPSP(unsigned long) 1687 void CRecordset::AllocRowset(void) 1688 int CThreadSlotData::AllocSlot(void) 1689 void CRecordset::AllocStatusArrays(void) 1690 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1691 wchar_t * ATL::CStringT > >::AllocSysString(void)const 1692 void * CProperty::AllocValue(unsigned long) 1693 int CDC::AlphaBlend(int,int,int,int,CDC *,int,int,int,int,_BLENDFUNCTION) 1694 short COleControl::AmbientAppearance(void) 1695 unsigned long COleControl::AmbientBackColor(void) 1696 ATL::CStringT > > COleControl::AmbientDisplayName(void) 1697 IFontDisp * COleControl::AmbientFont(void) 1698 unsigned long COleControl::AmbientForeColor(void) 1699 unsigned long COleControl::AmbientLocaleID(void) 1700 ATL::CStringT > > COleControl::AmbientScaleUnits(void) 1701 int COleControl::AmbientShowGrabHandles(void) 1702 int COleControl::AmbientShowHatching(void) 1703 short COleControl::AmbientTextAlign(void) 1704 int COleControl::AmbientUIDead(void) 1705 int COleControl::AmbientUserMode(void) 1706 int CDC::AngleArc(int,int,int,float,float) 1707 void CPalette::AnimatePalette(unsigned int,unsigned int,tagPALETTEENTRY *) 1708 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1709 void ATL::CSimpleStringT::Append(wchar_t const *) 1710 void ATL::CSimpleStringT::Append(wchar_t const *,int) 1711 void ATL::CSimpleStringT::Append(ATL::CSimpleStringT const &) 1712 void ATL::CSimpleStringT::Append(char const *) 1713 void ATL::CSimpleStringT::Append(char const *,int) 1714 int CByteArray::Append(CByteArray const &) 1715 void CDaoQueryDef::Append(void) 1716 void CDaoTableDef::Append(void) 1717 void CDaoWorkspace::Append(void) 1718 int CDWordArray::Append(CDWordArray const &) 1719 int CObArray::Append(CObArray const &) 1720 int CPtrArray::Append(CPtrArray const &) 1721 int CStringArray::Append(CStringArray const &) 1722 int CUIntArray::Append(CUIntArray const &) 1723 int CWordArray::Append(CWordArray const &) 1724 void ATL::CSimpleStringT::AppendChar(wchar_t) 1725 void ATL::CSimpleStringT::AppendChar(char) 1726 void CRecordset::AppendFilterAndSortSQL(void) 1727 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1728 void ATL::CStringT > >::AppendFormat(wchar_t const *,...) 1729 void ATL::CStringT > >::AppendFormat(unsigned int,...) 1730 void ATL::CStringT > >::AppendFormat(char const *,...) 1731 void ATL::CStringT > >::AppendFormatV(wchar_t const *,char *) 1732 void ATL::CStringT > >::AppendFormatV(char const *,char *) 1733 int CMenu::AppendMenuW(unsigned int,unsigned int,wchar_t const *) 1734 int CMenu::AppendMenuW(unsigned int,unsigned int,CBitmap const *) 1735 unsigned int CRecordset::AppendNames(ATL::CStringT > > *,wchar_t const *) 1736 unsigned int CRecordset::AppendNamesValues(void *,ATL::CStringT > > *,wchar_t const *) 1737 void CDaoFieldExchange::AppendParamType(ATL::CStringT > > &,unsigned long) 1738 unsigned int CRecordset::AppendValues(void *,ATL::CStringT > > *,wchar_t const *) 1739 long COlePropertyPage::XPropertyPage::Apply(void) 1740 void CFileDialog::ApplyOFNToShellDialog(void) 1741 int COleDocument::ApplyPrintDevice(tagDVTARGETDEVICE const *) 1742 int COleDocument::ApplyPrintDevice(tagPDW const *) 1743 long CDocObjectServer::XOleDocumentView::ApplyViewState(IStream *) 1744 CSize CListCtrl::ApproximateViewRect(CSize,int)const 1745 int CDC::Arc(int,int,int,int,int,int,int,int) 1746 int CDC::Arc(tagRECT const *,tagPOINT,tagPOINT) 1747 int CDC::ArcTo(int,int,int,int,int,int,int,int) 1748 int CDC::ArcTo(tagRECT const *,tagPOINT,tagPOINT) 1749 int CListCtrl::Arrange(unsigned int) 1750 unsigned int CWnd::ArrangeIconicWindows(void) 1751 void CAsyncMonikerFile::AssertValid(void)const 1752 void CAsyncSocket::AssertValid(void)const 1753 void CBitmapButton::AssertValid(void)const 1754 void CByteArray::AssertValid(void)const 1755 void CCachedDataPathProperty::AssertValid(void)const 1756 void CClientDC::AssertValid(void)const 1757 void CCmdTarget::AssertValid(void)const 1758 void CControlBar::AssertValid(void)const 1759 void CCtrlView::AssertValid(void)const 1760 void CDaoDatabase::AssertValid(void)const 1761 void CDaoQueryDef::AssertValid(void)const 1762 void CDaoRecordset::AssertValid(void)const 1763 void CDaoRecordView::AssertValid(void)const 1764 void CDaoTableDef::AssertValid(void)const 1765 void CDaoWorkspace::AssertValid(void)const 1766 void CDatabase::AssertValid(void)const 1767 void CDataPathProperty::AssertValid(void)const 1768 void CDC::AssertValid(void)const 1769 void CDialog::AssertValid(void)const 1770 void CDocItem::AssertValid(void)const 1771 void CDockBar::AssertValid(void)const 1772 void CDocManager::AssertValid(void)const 1773 void CDocObjectServer::AssertValid(void)const 1774 void CDocObjectServerItem::AssertValid(void)const 1775 void CDocTemplate::AssertValid(void)const 1776 void CDocument::AssertValid(void)const 1777 void CDWordArray::AssertValid(void)const 1778 void CDynLinkLibrary::AssertValid(void)const 1779 void CEditView::AssertValid(void)const 1780 void CFile::AssertValid(void)const 1781 void CFileFind::AssertValid(void)const 1782 void CFormView::AssertValid(void)const 1783 void CFrameWnd::AssertValid(void)const 1784 void CFtpConnection::AssertValid(void)const 1785 void CFtpFileFind::AssertValid(void)const 1786 void CGdiObject::AssertValid(void)const 1787 void CGopherConnection::AssertValid(void)const 1788 void CGopherFile::AssertValid(void)const 1789 void CGopherFileFind::AssertValid(void)const 1790 void CHtmlEditDoc::AssertValid(void)const 1791 void CHtmlEditView::AssertValid(void)const 1792 void CHtmlView::AssertValid(void)const 1793 void CHttpConnection::AssertValid(void)const 1794 void CHttpFile::AssertValid(void)const 1795 void CImageList::AssertValid(void)const 1796 void CInternetConnection::AssertValid(void)const 1797 void CInternetFile::AssertValid(void)const 1798 void CLongBinary::AssertValid(void)const 1799 void CMapPtrToPtr::AssertValid(void)const 1800 void CMapPtrToWord::AssertValid(void)const 1801 void CMapStringToOb::AssertValid(void)const 1802 void CMapStringToPtr::AssertValid(void)const 1803 void CMapStringToString::AssertValid(void)const 1804 void CMapWordToOb::AssertValid(void)const 1805 void CMapWordToPtr::AssertValid(void)const 1806 void CMDIChildWnd::AssertValid(void)const 1807 void CMDIFrameWnd::AssertValid(void)const 1808 void CMemFile::AssertValid(void)const 1809 void CMenu::AssertValid(void)const 1810 void CMonikerFile::AssertValid(void)const 1811 void CMultiDocTemplate::AssertValid(void)const 1812 void CObArray::AssertValid(void)const 1813 void CObject::AssertValid(void)const 1814 void CObList::AssertValid(void)const 1815 void COleChangeSourceDialog::AssertValid(void)const 1816 void COleClientItem::AssertValid(void)const 1817 void COleCntrFrameWnd::AssertValid(void)const 1818 void COleControl::AssertValid(void)const 1819 void COleDataSource::AssertValid(void)const 1820 void COleDocIPFrameWnd::AssertValid(void)const 1821 void COleDocument::AssertValid(void)const 1822 void COleDropTarget::AssertValid(void)const 1823 void COleIPFrameWnd::AssertValid(void)const 1824 void COleLinkingDoc::AssertValid(void)const 1825 void COleLinksDialog::AssertValid(void)const 1826 void COleMessageFilter::AssertValid(void)const 1827 void COleObjectFactory::AssertValid(void)const 1828 void COlePasteSpecialDialog::AssertValid(void)const 1829 void COlePropertiesDialog::AssertValid(void)const 1830 void COleServerDoc::AssertValid(void)const 1831 void COleServerItem::AssertValid(void)const 1832 void COleStreamFile::AssertValid(void)const 1833 void CPaintDC::AssertValid(void)const 1834 void CPreviewDC::AssertValid(void)const 1835 void CPreviewView::AssertValid(void)const 1836 void CPropertyPage::AssertValid(void)const 1837 void CPropertySheet::AssertValid(void)const 1838 void CPtrArray::AssertValid(void)const 1839 void CPtrList::AssertValid(void)const 1840 void CRecordset::AssertValid(void)const 1841 void CRecordView::AssertValid(void)const 1842 void CRichEditCntrItem::AssertValid(void)const 1843 void CRichEditDoc::AssertValid(void)const 1844 void CRichEditView::AssertValid(void)const 1845 void CScrollView::AssertValid(void)const 1846 void CSingleDocTemplate::AssertValid(void)const 1847 void CSocket::AssertValid(void)const 1848 void CSocketFile::AssertValid(void)const 1849 void CSplitterWnd::AssertValid(void)const 1850 void CStatusBar::AssertValid(void)const 1851 void CStringArray::AssertValid(void)const 1852 void CStringList::AssertValid(void)const 1853 void CSyncObject::AssertValid(void)const 1854 void CToolBar::AssertValid(void)const 1855 void CUIntArray::AssertValid(void)const 1856 void CView::AssertValid(void)const 1857 void CWinApp::AssertValid(void)const 1858 void CWindowDC::AssertValid(void)const 1859 void CWinThread::AssertValid(void)const 1860 void CWnd::AssertValid(void)const 1861 void CWordArray::AssertValid(void)const 1862 void CThreadSlotData::AssignInstance(HINSTANCE__ *) 1863 int CAsyncSocket::AsyncSelect(long) 1864 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1865 void ATL::CSimpleStringT::Attach(ATL::CStringData *) 1866 int CAsyncSocket::Attach(unsigned int,long) 1867 int CDC::Attach(HDC__ *) 1868 int CGdiObject::Attach(void *) 1869 int CImageList::Attach(_IMAGELIST *) 1870 void CMemFile::Attach(unsigned char *,unsigned int,unsigned int) 1871 int CMenu::Attach(HMENU__ *) 1872 int CMonikerFile::Attach(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1873 int CMonikerFile::Attach(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 1874 void COleDataObject::Attach(IDataObject *,int) 1875 void COleSafeArray::Attach(tagVARIANT &) 1876 void COleStreamFile::Attach(IStream *) 1877 void COleVariant::Attach(tagVARIANT &) 1878 int CSocket::Attach(unsigned int) 1879 int CWnd::Attach(HWND__ *) 1880 int COleDataObject::AttachClipboard(void) 1881 void COleControlContainer::AttachControlSite(CWnd *,unsigned int) 1882 void CWnd::AttachControlSite(CHandleMap *) 1883 void CWnd::AttachControlSite(CWnd *,unsigned int) 1884 void COleClientItem::AttachDataObject(COleDataObject &)const 1885 void COleDispatchDriver::AttachDispatch(IDispatch *,int) 1886 void CAsyncSocket::AttachHandle(unsigned int,CAsyncSocket *,int) 1887 CPrintDialog * CPrintDialog::AttachOnSetup(void) 1888 void COleControlSite::AttachWindow(void) 1889 int CBitmapButton::AutoLoad(unsigned int,CWnd *) 1890 void CToolBarCtrl::AutoSize(void) 1891 void CSocket::AuxQueueAdd(unsigned int,unsigned int,long) 1892 void CHtmlView::BeforeNavigate2(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 1893 void COleMessageFilter::BeginBusyState(void) 1894 void COleLinkingDoc::BeginDeferErrors(void) 1895 int CDragListBox::BeginDrag(CPoint) 1896 int CImageList::BeginDrag(int,CPoint) 1897 void CReBarCtrl::BeginDrag(unsigned int,unsigned long) 1898 void COleDataObject::BeginEnumFormats(void) 1899 void CFrameWnd::BeginModalState(void) 1900 void CWnd::BeginModalState(void) 1901 CDC * CWnd::BeginPaint(tagPAINT*) 1902 int CDC::BeginPath(void) 1903 void CDaoWorkspace::BeginTrans(void) 1904 int CDatabase::BeginTrans(void) 1905 void CCmdTarget::BeginWaitCursor(void) 1906 int CAsyncSocket::Bind(unsigned int,wchar_t const *) 1907 int CAsyncSocket::Bind(sockaddr const *,int) 1908 void CDataSourceControl::BindColumns(void) 1909 void COccManager::BindControls(CWnd *) 1910 void COleControlSite::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1911 void CWnd::BindDefaultProperty(long,unsigned short,wchar_t const *,CWnd *) 1912 void CDaoRecordset::BindFields(void) 1913 void CRecordset::BindFieldsForUpdate(void) 1914 unsigned int CRecordset::BindFieldsToColumns(void) 1915 void CDaoRecordset::BindParameters(void) 1916 void CDatabase::BindParameters(void *) 1917 unsigned int CRecordset::BindParams(void *) 1918 void CDataSourceControl::BindProp(CDataBoundProperty *,int) 1919 void CDataSourceControl::BindProp(COleControlSite *,int) 1920 void COleControlSite::BindProperty(long,CWnd *) 1921 void CWnd::BindProperty(long,CWnd *) 1922 int CDC::BitBlt(int,int,int,int,CDC *,int,int,unsigned long) 1923 void COleControl::BoundPropertyChanged(long) 1924 int COleControl::BoundPropertyRequestEdit(long) 1925 void CFrameWnd::BringToTop(int) 1926 void CWnd::BringWindowToTop(void) 1927 void COleControlContainer::BroadcastAmbientPropertyChange(long) 1928 void CDBException::BuildErrorString(CDatabase *,void *,int) 1929 void CDaoRecordset::BuildParameterList(void) 1930 void CPropertySheet::BuildPropPageArray(void) 1931 void CDaoRecordset::BuildSelectList(void) 1932 void CRecordset::BuildSelectSQL(void) 1933 int COleControl::BuildSharedMenu(void) 1934 int COleDocIPFrameWnd::BuildSharedMenu(void) 1935 int COleIPFrameWnd::BuildSharedMenu(void) 1936 void CDaoRecordset::BuildSQL(void) 1937 void CRecordset::BuildSQL(wchar_t const *) 1938 void CRecordset::BuildUpdateSQL(void) 1939 void COleControl::ButtonDblClk(unsigned short,unsigned int,CPoint) 1940 void COleControl::ButtonDown(unsigned short,unsigned int,CPoint) 1941 void COleControl::ButtonUp(unsigned short,unsigned int,CPoint) 1942 void _AFXCTL_AMBIENT_CACHE::Cache(tagQACONTAINER *) 1943 void CTypeLibCache::Cache(unsigned long,ITypeLib *) 1944 long COleControl::XOleCache::Cache(tagFORMATETC *,unsigned long,unsigned long *) 1945 void COleDataSource::CacheData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 1946 void COleDataSource::CacheGlobalData(unsigned short,void *,tagFORMATETC *) 1947 void CTypeLibCache::CacheTypeInfo(unsigned long,_GUID const &,ITypeInfo *) 1948 void CMiniFrameWnd::CalcBorders(tagRECT *,unsigned long,unsigned long) 1949 CSize CControlBar::CalcDynamicLayout(int,unsigned long) 1950 CSize CReBar::CalcDynamicLayout(int,unsigned long) 1951 CSize CToolBar::CalcDynamicLayout(int,unsigned long) 1952 CSize CControlBar::CalcFixedLayout(int,int) 1953 CSize CDialogBar::CalcFixedLayout(int,int) 1954 CSize CDockBar::CalcFixedLayout(int,int) 1955 CSize CReBar::CalcFixedLayout(int,int) 1956 CSize CStatusBar::CalcFixedLayout(int,int) 1957 CSize CToolBar::CalcFixedLayout(int,int) 1958 void CControlBar::CalcInsideRect(CRect &,int)const 1959 void CStatusBar::CalcInsideRect(CRect &,int)const 1960 CSize CToolBar::CalcLayout(unsigned long,int) 1961 int CCheckListBox::CalcMinimumItemHeight(void) 1962 CSize CPreviewView::CalcPageDisplaySize(void) 1963 CSize CPreviewView::CalcScaleRatio(CSize,CSize) 1964 CSize CToolBar::CalcSize(_TBBUTTON *,int) 1965 void CEditView::CalcWindowRect(tagRECT *,unsigned int) 1966 void CScrollView::CalcWindowRect(tagRECT *,unsigned int) 1967 void CView::CalcWindowRect(tagRECT *,unsigned int) 1968 void CWnd::CalcWindowRect(tagRECT *,unsigned int) 1969 long CCmdTarget::CallMemberFunc(AFX_DISPMAP_ENTRY const *,unsigned short,tagVARIANT *,tagDISPPARAMS *,unsigned int *) 1970 int CDHtmlDialog::CanAccessExternal(void) 1971 int COleClientItem::CanActivate(void) 1972 int CRichEditCntrItem::CanActivate(void) 1973 int CSplitterWnd::CanActivateNext(int) 1974 int CDaoRecordset::CanAppend(void)const 1975 int CRecordset::CanAppend(void)const 1976 int CDaoRecordset::CanBookmark(void) 1977 int CRecordset::CanBookmark(void)const 1978 void CDatabase::Cancel(void) 1979 void CRecordset::Cancel(void) 1980 void CSocket::CancelBlockingCall(void) 1981 void CDragListBox::CancelDrag(CPoint) 1982 long COleControlSite::XNotifyDBEvents::Cancelled(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 1983 long COleUILinkInfo::CancelLink(unsigned long) 1984 void CDockContext::CancelLoop(void) 1985 void CPropertyPage::CancelToClose(void) 1986 void CWnd::CancelToolTips(int) 1987 void CDaoRecordset::CancelUpdate(void) 1988 void CRecordset::CancelUpdate(void) 1989 int CDocument::CanCloseFrame(CFrameWnd *) 1990 int COleServerDoc::CanCloseFrame(CFrameWnd *) 1991 int COleClientItem::CanCreateFromData(COleDataObject const *) 1992 int COleClientItem::CanCreateLinkFromData(COleDataObject const *) 1993 unsigned long CDockContext::CanDock(void) 1994 unsigned long CFrameWnd::CanDock(CRect,unsigned long,CDockBar * *) 1995 int CFrameWnd::CanEnterHelpMode(void) 1996 long COleClientItem::XOleIPSite::CanInPlaceActivate(void) 1997 long COleControlSite::XOleIPSite::CanInPlaceActivate(void) 1998 int COleClientItem::CanPaste(void) 1999 int CRichEditCtrl::CanPaste(unsigned int)const 2000 int CRichEditView::CanPaste(void)const 2001 int COleClientItem::CanPasteLink(void) 2002 int CRichEditCtrl::CanRedo(void)const 2003 int CDaoRecordset::CanRestart(void) 2004 int CRecordset::CanRestart(void)const 2005 int CDaoRecordset::CanScroll(void)const 2006 int CRecordset::CanScroll(void)const 2007 int CDaoDatabase::CanTransact(void) 2008 int CDaoRecordset::CanTransact(void) 2009 int CDatabase::CanTransact(void)const 2010 int CRecordset::CanTransact(void)const 2011 int CEdit::CanUndo(void)const 2012 int CRichEditCtrl::CanUndo(void)const 2013 int CDaoDatabase::CanUpdate(void) 2014 int CDaoQueryDef::CanUpdate(void) 2015 int CDaoRecordset::CanUpdate(void)const 2016 int CDaoTableDef::CanUpdate(void) 2017 int CDatabase::CanUpdate(void)const 2018 int CRecordset::CanUpdate(void)const 2019 long COleControlSite::XOleIPSite::CanWindowlessActivate(void) 2020 long CDHtmlEventSink::CDHtmlSinkHandlerQueryInterface(_GUID const &,void * *) 2021 void CScrollView::CenterOnPoint(CPoint) 2022 void CWnd::CenterWindow(CWnd *) 2023 int CToolBarCtrl::ChangeBitmap(int,int) 2024 int CWnd::ChangeClipboardChain(HWND__ *) 2025 void COleVariant::ChangeType(unsigned short,tagVARIANT *) 2026 int CEdit::CharFromPos(CPoint)const 2027 int CRichEditCtrl::CharFromPos(CPoint)const 2028 int CListBox::CharToItem(unsigned int,unsigned int) 2029 void ATL::CStringT > >::CharToOemA(void) 2030 int CDatabase::Check(short)const 2031 int CRecordset::Check(short)const 2032 int CDialog::CheckAutoCenter(void) 2033 int CWnd::CheckAutoCenter(void) 2034 int CToolBarCtrl::CheckButton(int,int) 2035 void CArchive::CheckCount(void) 2036 void COleControlContainer::CheckDlgButton(int,unsigned int) 2037 void CWnd::CheckDlgButton(int,unsigned int) 2038 int CCheckListBox::CheckFromPoint(CPoint,int &) 2039 void COleClientItem::CheckGeneral(long) 2040 int CDatabase::CheckHstmt(short,void *)const 2041 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 2042 bool ATL::CStringT > >::CheckImplicitLoad(void const *) 2043 unsigned int CMenu::CheckMenuItem(unsigned int,unsigned int) 2044 int CMenu::CheckMenuRadioItem(unsigned int,unsigned int,unsigned int,unsigned int) 2045 void CMemoryState::Checkpoint(void) 2046 void COleControlContainer::CheckRadioButton(int,int,int) 2047 void CWnd::CheckRadioButton(int,int,int) 2048 void CRecordset::CheckRowsetCurrencyStatus(unsigned short,long) 2049 void CRecordset::CheckRowsetError(short) 2050 void CScrollView::CheckScrollBars(int &,int &)const 2051 CWnd * CWnd::ChildWindowFromPoint(tagPOINT)const 2052 CWnd * CWnd::ChildWindowFromPoint(tagPOINT,unsigned int)const 2053 int CDC::Chord(int,int,int,int,int,int,int,int) 2054 int CDC::Chord(tagRECT const *,tagPOINT,tagPOINT) 2055 CRuntimeconst CDaoDatabase::classCDaoDatabase 2056 CRuntimeconst CDaoException::classCDaoException 2057 CRuntimeconst CDaoQueryDef::classCDaoQueryDef 2058 CRuntimeconst CDaoRecordset::classCDaoRecordset 2059 CRuntimeconst CDaoRecordView::classCDaoRecordView 2060 CRuntimeconst CDaoTableDef::classCDaoTableDef 2061 CRuntimeconst CDaoWorkspace::classCDaoWorkspace 2062 CRuntimeconst CDatabase::classCDatabase 2063 CRuntimeconst CDBException::classCDBException 2064 CRuntimeconst CLongBinary::classCLongBinary 2065 CRuntimeconst COleDBRecordView::classCOleDBRecordView 2066 CRuntimeconst CRecordset::classCRecordset 2067 CRuntimeconst CRecordView::classCRecordView 2068 void CPropertyPage::Cleanup(void) 2069 void CSplitButton::Cleanup(void) 2070 void COlePropertyPage::CleanupObjectArray(void) 2071 void CComboBox::Clear(void) 2072 void CDBVariant::Clear(void) 2073 void CDockState::Clear(void) 2074 void CEdit::Clear(void) 2075 void COleSafeArray::Clear(void) 2076 void COleVariant::Clear(void) 2077 void CRichEditCtrl::Clear(void) 2078 void CIPAddressCtrl::ClearAddress(void) 2079 int CHeaderCtrl::ClearAllFilters(void) 2080 void CDaoRecordset::ClearDirtyFieldStatus(unsigned int) 2081 void CRecordset::ClearDirtyFieldStatus(unsigned long) 2082 void CRecordset::ClearFieldStatus(void) 2083 void CDaoRecordset::ClearFieldStatusFlags(void) 2084 int CHeaderCtrl::ClearFilter(int) 2085 void CDaoRecordset::ClearNullFieldStatus(unsigned int) 2086 void CRecordset::ClearNullFieldStatus(unsigned long) 2087 void CRecordset::ClearNullParamStatus(unsigned long) 2088 void CSliderCtrl::ClearSel(int) 2089 void CSliderCtrl::ClearTics(int) 2090 void COleControl::ClientToParent(tagRECT const *,tagPOINT *)const 2091 void CWnd::ClientToScreen(tagPOINT *)const 2092 void CWnd::ClientToScreen(tagRECT *)const 2093 int COleControl::ClipCaretRect(tagRECT *) 2094 void CPreviewDC::ClipToPage(void) 2095 ATL::IAtlStringMgr * CAfxStringMgr::Clone(void) 2096 long CArchiveStream::Clone(IStream * *) 2097 long CEnumArray::XEnumVOID::Clone(IEnumVOID * *) 2098 long CDocObjectServer::XOleDocumentView::Clone(IOleInPlaceSite *,IOleDocumentView * *) 2099 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 2100 ATL::CStringData * ATL::CSimpleStringT::CloneData(ATL::CStringData *) 2101 int CAnimateCtrl::Close(void) 2102 void CArchive::Close(void) 2103 void CAsyncMonikerFile::Close(void) 2104 void CAsyncSocket::Close(void) 2105 void CCachedDataPathProperty::Close(void) 2106 void CDaoDatabase::Close(void) 2107 void CDaoQueryDef::Close(void) 2108 void CDaoRecordset::Close(void) 2109 void CDaoTableDef::Close(void) 2110 void CDaoWorkspace::Close(void) 2111 void CDatabase::Close(void) 2112 void CFile::Close(void) 2113 void CFileFind::Close(void) 2114 void CInternetConnection::Close(void) 2115 void CInternetFile::Close(void) 2116 void CInternetSession::Close(void) 2117 void CMemFile::Close(void) 2118 HMETAFILE__ * CMetaFileDC::Close(void) 2119 void CMirrorFile::Close(void) 2120 void CMonikerFile::Close(void) 2121 void COleClientItem::Close(enum tagOLECLOSE) 2122 void COleStreamFile::Close(void) 2123 void CRecordset::Close(void) 2124 void CSocket::Close(void) 2125 void CSocketFile::Close(void) 2126 void CStdioFile::Close(void) 2127 long CDocObjectServer::XOleObject::Close(unsigned long) 2128 long COleControl::XOleObject::Close(unsigned long) 2129 long COleServerDoc::XOleObject::Close(unsigned long) 2130 long COleServerItem::XOleObject::Close(unsigned long) 2131 void CDocManager::CloseAllDocuments(int) 2132 void CDocTemplate::CloseAllDocuments(int) 2133 void CWinApp::CloseAllDocuments(int) 2134 void CFileFind::CloseContext(void) 2135 void CFtpFileFind::CloseContext(void) 2136 void CGopherFileFind::CloseContext(void) 2137 HENHMETAFILE__ * CMetaFileDC::CloseEnhanced(void) 2138 int CDC::CloseFigure(void) 2139 void CDateTimeCtrl::CloseMonthCal(void) 2140 long CThemeHelper::CloseThemeData(void *) 2141 long CThemeHelper::CloseThemeDataFail(void *) 2142 long CDocObjectServer::XOleDocumentView::CloseView(unsigned long) 2143 void CWnd::CloseWindow(void) 2144 int ATL::CStringT > >::Collate(wchar_t const *)const 2145 int ATL::CStringT > >::Collate(char const *)const 2146 int ATL::CStringT > >::CollateNoCase(wchar_t const *)const 2147 int ATL::CStringT > >::CollateNoCase(char const *)const 2148 int CRgn::CombineRgn(CRgn const *,CRgn const *,int) 2149 CInternetFile * CFtpConnection::Command(wchar_t const *,enum CFtpConnection::CmdResponseType,unsigned long,unsigned long) 2150 int CStatusBar::CommandToIndex(unsigned int)const 2151 int CToolBar::CommandToIndex(unsigned int)const 2152 unsigned int CToolBarCtrl::CommandToIndex(unsigned int)const 2153 long CArchiveStream::Commit(unsigned long) 2154 void COleClientItem::CommitItem(int) 2155 void COleDocument::CommitItems(int,IStorage *) 2156 void CDaoWorkspace::CommitTrans(void) 2157 int CDatabase::CommitTrans(void) 2158 void COleObjectFactory::CommonConstruct(_GUID const &,CRuntime*,int,int,wchar_t const *) 2159 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int) 2160 void CPropertyPage::CommonConstruct(wchar_t const *,unsigned int,unsigned int,unsigned int) 2161 void CPropertySheet::CommonConstruct(CWnd *,unsigned int) 2162 void CPropertySheet::CommonConstruct(CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2163 void CWinThread::CommonConstruct(void) 2164 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int) 2165 void CDaoWorkspace::CompactDatabase(wchar_t const *,wchar_t const *,wchar_t const *,int,wchar_t const *) 2166 int ATL::CStringT > >::Compare(wchar_t const *)const 2167 int ATL::CStringT > >::Compare(char const *)const 2168 int CComboBox::CompareItem(tagCOMPAREITEM*) 2169 int CListBox::CompareItem(tagCOMPAREITEM*) 2170 int ATL::CStringT > >::CompareNoCase(wchar_t const *)const 2171 int ATL::CStringT > >::CompareNoCase(char const *)const 2172 int CDaoFieldExchange::CompareValue(void *,void *,unsigned long) 2173 CSize CPreviewDC::ComputeDeltas(int &,wchar_t const *,unsigned int &,int,unsigned int,int *,int,wchar_t *,int *,int &) 2174 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,wchar_t const *,int,wchar_t const *,int) 2175 void ATL::CSimpleStringT::Concatenate(ATL::CSimpleStringT &,char const *,int,char const *,int) 2176 int CAsyncSocket::Connect(wchar_t const *,unsigned int) 2177 int CAsyncSocket::Connect(sockaddr const *,int) 2178 int CDatabase::Connect(unsigned long) 2179 long CDHtmlDialog::ConnectDHtmlElementEvents(unsigned long) 2180 long CDHtmlDialog::ConnectDHtmlEvents(IUnknown *) 2181 int CAsyncSocket::ConnectHelper(sockaddr const *,int) 2182 int CSocket::ConnectHelper(sockaddr const *,int) 2183 unsigned long COleControlSite::ConnectSink(_GUID const &,IUnknown *) 2184 void COleTemplateServer::ConnectTemplate(_GUID const &,CDocTemplate *,int) 2185 long CDHtmlEventSink::ConnectToConnectionPoint(IUnknown *,_GUID const &,unsigned long *) 2186 long CDHtmlControlSink::ConnectToControl(IUnknown *) 2187 void COleServerDoc::ConnectView(CWnd *,CView *) 2188 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2189 void ATL::CStringT > >::Construct(ATL::CStringT > > *) 2190 void CPropertyPage::Construct(unsigned int,unsigned int) 2191 void CPropertyPage::Construct(unsigned int,unsigned int,unsigned int,unsigned int) 2192 void CPropertyPage::Construct(wchar_t const *,unsigned int) 2193 void CPropertyPage::Construct(wchar_t const *,unsigned int,unsigned int,unsigned int) 2194 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int) 2195 void CPropertySheet::Construct(unsigned int,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2196 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int) 2197 void CPropertySheet::Construct(wchar_t const *,CWnd *,unsigned int,HBITMAP__ *,HPALETTE__ *,HBITMAP__ *) 2198 void CRectTracker::Construct(void) 2199 long COleControl::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2200 long COleServerDoc::XOleInPlaceActiveObject::ContextSensitiveHelp(int) 2201 long COleFrameHook::XOleInPlaceFrame::ContextSensitiveHelp(int) 2202 long COleControl::XOleInPlaceObject::ContextSensitiveHelp(int) 2203 long COleServerDoc::XOleInPlaceObject::ContextSensitiveHelp(int) 2204 long COleControlContainer::XOleIPFrame::ContextSensitiveHelp(int) 2205 long COleClientItem::XOleIPSite::ContextSensitiveHelp(int) 2206 long COleControlSite::XOleIPSite::ContextSensitiveHelp(int) 2207 long CRichEditView::XRichEditOleCallback::ContextSensitiveHelp(int) 2208 int CPropertySheet::ContinueModal(void) 2209 int CWnd::ContinueModal(void) 2210 void CCmdUI::ContinueRouting(void) 2211 void COleControl::ControlInfoChanged(void) 2212 long COlePropertiesDialog::XOleUIObjInfo::ConvertObject(unsigned long,_GUID const &) 2213 int COleClientItem::ConvertTo(_GUID const &) 2214 int CRichEditCntrItem::ConvertTo(_GUID const &) 2215 void CByteArray::Copy(CByteArray const &) 2216 void CComboBox::Copy(void) 2217 void CDWordArray::Copy(CDWordArray const &) 2218 void CEdit::Copy(void) 2219 int CImageList::Copy(int,int,unsigned int) 2220 int CImageList::Copy(int,CImageList *,int,unsigned int) 2221 void CObArray::Copy(CObArray const &) 2222 void COleSafeArray::Copy(tagSAFEARRAY * *) 2223 void CPtrArray::Copy(CPtrArray const &) 2224 void CRichEditCtrl::Copy(void) 2225 void CStringArray::Copy(CStringArray const &) 2226 void CUIntArray::Copy(CUIntArray const &) 2227 void CWordArray::Copy(CWordArray const &) 2228 void ATL::CSimpleStringT::CopyChars(wchar_t *,wchar_t const *,int) 2229 void ATL::CSimpleStringT::CopyChars(char *,char const *,int) 2230 void ATL::CSimpleStringT::CopyCharsOverlapped(wchar_t *,wchar_t const *,int) 2231 void ATL::CSimpleStringT::CopyCharsOverlapped(char *,char const *,int) 2232 int CDataSourceControl::CopyColumnID(tagDBCOLUMNID *,tagDBCOLUMNID const *) 2233 int CRgn::CopyRgn(CRgn const *) 2234 long CArchiveStream::CopyTo(IStream *,union _ULARGE_INTEGER,union _ULARGE_INTEGER *,union _ULARGE_INTEGER *) 2235 void COleClientItem::CopyToClipboard(int) 2236 void COleServerItem::CopyToClipboard(int) 2237 void CDaoFieldExchange::CopyValue(void *,void *,unsigned long) 2238 int CAnimateCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2239 int CAsyncSocket::Create(unsigned int,int,long,wchar_t const *) 2240 int CButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2241 int CCheckListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2242 int CComboBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2243 int CComboBoxEx::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2244 int CControlFrameWnd::Create(wchar_t const *) 2245 void CDaoDatabase::Create(wchar_t const *,wchar_t const *,int) 2246 void CDaoQueryDef::Create(wchar_t const *,wchar_t const *) 2247 void CDaoTableDef::Create(wchar_t const *,long,wchar_t const *,wchar_t const *) 2248 void CDaoWorkspace::Create(wchar_t const *,wchar_t const *,wchar_t const *) 2249 int CDateTimeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2250 int CDialog::Create(unsigned int,CWnd *) 2251 int CDialog::Create(wchar_t const *,CWnd *) 2252 int CDialogBar::Create(CWnd *,unsigned int,unsigned int,unsigned int) 2253 int CDialogBar::Create(CWnd *,wchar_t const *,unsigned int,unsigned int) 2254 int CDockBar::Create(CWnd *,unsigned long,unsigned int) 2255 int CEdit::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2256 int CFindReplaceDialog::Create(int,wchar_t const *,wchar_t const *,unsigned long,CWnd *) 2257 int CFormView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2258 int CFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,wchar_t const *,unsigned long,CCreateContext *) 2259 int CHeaderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2260 int CHotKeyCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2261 int CHtmlEditCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,int,CCreateContext *) 2262 int CHtmlEditView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2263 int CHtmlView::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2264 int CImageList::Create(CImageList &,int,CImageList &,int,int,int) 2265 int CImageList::Create(int,int,unsigned int,int,int) 2266 int CImageList::Create(unsigned int,int,int,unsigned long) 2267 int CImageList::Create(CImageList *) 2268 int CImageList::Create(wchar_t const *,int,int,unsigned long) 2269 int CIPAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2270 int CLinkCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2271 int CLinkCtrl::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2272 int CListBox::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2273 int CListCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2274 int CMDIChildWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CMDIFrameWnd *,CCreateContext *) 2275 int CMetaFileDC::Create(wchar_t const *) 2276 int CMiniDockFrameWnd::Create(CWnd *,unsigned long) 2277 int CMiniFrameWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2278 int CMonthCalCtrl::Create(unsigned long,tagPOINT const &,CWnd *,unsigned int) 2279 int CMonthCalCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2280 int CNetAddressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2281 int COleResizeBar::Create(CWnd *,unsigned long,unsigned int) 2282 void COleSafeArray::Create(unsigned short,unsigned long,unsigned long *) 2283 void COleSafeArray::Create(unsigned short,unsigned long,tagSAFEARRAYBOUND *) 2284 int CPagerCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2285 CPlex * CPlex::Create(CPlex * &,unsigned int,unsigned int) 2286 int CProgressCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2287 int CPropertySheet::Create(CWnd *,unsigned long,unsigned long) 2288 int CReBar::Create(CWnd *,unsigned long,unsigned long,unsigned int) 2289 int CReBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2290 int CReflectorWnd::Create(CRect const &,HWND__ *) 2291 int CRichEditCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2292 int CScrollBar::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2293 int CSliderCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2294 int CSocket::Create(unsigned int,int,wchar_t const *) 2295 int CSpinButtonCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2296 int CSplitButton::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2297 int CSplitterWnd::Create(CWnd *,int,int,tagSIZE,CCreateContext *,unsigned long,unsigned int) 2298 int CStatic::Create(wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2299 int CStatusBar::Create(CWnd *,unsigned long,unsigned int) 2300 int CStatusBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2301 int CTabCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2302 int CToolBar::Create(CWnd *,unsigned long,unsigned int) 2303 int CToolBarCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2304 int CToolTipCtrl::Create(CWnd *,unsigned long) 2305 int CTreeCtrl::Create(unsigned long,tagRECT const &,CWnd *,unsigned int) 2306 int CWnd::Create(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CCreateContext *) 2307 long CWnd::CreateAccessibleProxy(unsigned int,long,long *) 2308 void AFX_MODULE_STATE::CreateActivationContext(void) 2309 IBindCtx * CMonikerFile::CreateBindContext(CFileException *) 2310 IBindHost * CMonikerFile::CreateBindHost(void) 2311 IUnknown * CAsyncMonikerFile::CreateBindStatusCallback(IUnknown *) 2312 int CBitmap::CreateBitmap(int,int,unsigned int,unsigned int,void const *) 2313 int CBitmap::CreateBitmapIndirect(tagBITMAP *) 2314 int CBrush::CreateBrushIndirect(tagLOGBRUSH const *) 2315 void CWnd::CreateCaret(CBitmap *) 2316 int CMDIFrameWnd::CreateClient(tagCREATESTRUCTW *,CMenu *) 2317 CRichEditCntrItem * CRichEditDoc::CreateClientItem(_reobject *)const 2318 int COleClientItem::CreateCloneFrom(COleClientItem const *) 2319 int CSplitterWnd::CreateCommon(CWnd *,tagSIZE,unsigned long,unsigned int) 2320 int CBitmap::CreateCompatibleBitmap(CDC *,int,int) 2321 int CDC::CreateCompatibleDC(CDC *) 2322 void CConnectionPoint::CreateConnectionArray(void) 2323 COleControlContainer * COccManager::CreateContainer(CWnd *) 2324 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2325 int COleControlContainer::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2326 int COleControlContainer::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 2327 long COleControlSite::CreateControl(CWnd *,CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int) 2328 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagRECT const &,unsigned int,CFile *,int,wchar_t *) 2329 long COleControlSite::CreateControl(CWnd *,_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2330 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2331 int CWnd::CreateControl(_GUID const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int,CFile *,int,wchar_t *) 2332 int CWnd::CreateControl(CControlCreationInfo const &,unsigned long,tagPOINT const *,tagSIZE const *,CWnd *,unsigned int) 2333 int CWnd::CreateControl(wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,CFile *,int,wchar_t *) 2334 int COleControlContainer::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *,COleControlSite * *) 2335 long COleControlSite::CreateControlCommon(CWnd *,_GUID const &,CControlCreationInfo const &,wchar_t const *,unsigned long,tagPOINT const *,tagSIZE const *,unsigned int,CFile *,int,wchar_t *) 2336 int CWnd::CreateControlContainer(COleControlContainer * *) 2337 int CDHtmlDialog::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2338 int CHtmlView::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2339 int CWnd::CreateControlSite(COleControlContainer *,COleControlSite * *,unsigned int,_GUID const &) 2340 int COleControl::CreateControlWindow(HWND__ *,CRect const &,tagRECT const *) 2341 int CDC::CreateDCW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2342 int CBrush::CreateDIBPatternBrush(void *,unsigned int) 2343 int CBrush::CreateDIBPatternBrush(void const *,unsigned int) 2344 int CFtpConnection::CreateDirectory(wchar_t const *) 2345 int CFtpConnection::CreateDirectoryW(wchar_t const *) 2346 int CBitmap::CreateDiscardableBitmap(CDC *,int,int) 2347 int COleDispatchDriver::CreateDispatch(_GUID const &,COleException *) 2348 int COleDispatchDriver::CreateDispatch(wchar_t const *,COleException *) 2349 int CWnd::CreateDlg(wchar_t const *,CWnd *) 2350 int COccManager::CreateDlgControl(CWnd *,HWND__ *,int,DLGITEMTEMPLATE *,unsigned short,unsigned char *,unsigned long,HWND__ * *) 2351 int COccManager::CreateDlgControls(CWnd *,void *,_AFX_OCC_DIALOG_INFO *) 2352 int COccManager::CreateDlgControls(CWnd *,wchar_t const *,_AFX_OCC_DIALOG_INFO *) 2353 int CWnd::CreateDlgIndirect(DLGTEMPLATE const *,CWnd *,HINSTANCE__ *) 2354 CImageList * CHeaderCtrl::CreateDragImage(int) 2355 CImageList * CListCtrl::CreateDragImage(int,tagPOINT *) 2356 CImageList * CTreeCtrl::CreateDragImage(_TREEITEM *) 2357 int CRgn::CreateEllipticRgn(int,int,int,int) 2358 int CRgn::CreateEllipticRgnIndirect(tagRECT const *) 2359 int CPictureHolder::CreateEmpty(void) 2360 int CMetaFileDC::CreateEnhanced(CDC *,wchar_t const *,tagRECT const *,wchar_t const *) 2361 int CAnimateCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2362 int CComboBoxEx::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2363 int CHeaderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2364 int CHotKeyCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2365 int CIPAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2366 int CLinkCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2367 int CLinkCtrl::CreateEx(wchar_t const *,unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2368 int CListCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2369 int CMiniFrameWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int) 2370 int CNetAddressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2371 int CPagerCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2372 int CProgressCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2373 int CReBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2374 int CRichEditCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2375 int CSliderCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2376 int CSpinButtonCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2377 int CStatusBar::CreateEx(CWnd *,unsigned long,unsigned long,unsigned int) 2378 int CStatusBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2379 int CTabCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2380 int CToolBar::CreateEx(CWnd *,unsigned long,unsigned long,CRect,unsigned int) 2381 int CToolBarCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2382 int CToolTipCtrl::CreateEx(CWnd *,unsigned long,unsigned long) 2383 int CTreeCtrl::CreateEx(unsigned long,unsigned long,tagRECT const &,CWnd *,unsigned int) 2384 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,tagRECT const &,CWnd *,unsigned int,void *) 2385 int CWnd::CreateEx(unsigned long,wchar_t const *,wchar_t const *,unsigned long,int,int,int,int,HWND__ *,HMENU__ *,void *) 2386 void CDaoTableDef::CreateField(CDaoFieldInfo &) 2387 void CDaoTableDef::CreateField(wchar_t const *,short,long,long) 2388 CMiniDockFrameWnd * CFrameWnd::CreateFloatingFrame(unsigned long) 2389 int CFont::CreateFontIndirectW(tagLOGFONTW const *) 2390 int CFont::CreateFontW(int,int,int,int,int,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,unsigned char,wchar_t const *) 2391 CControlFrameWnd * COleControl::CreateFrameWindow(void) 2392 int CPictureHolder::CreateFromBitmap(unsigned int) 2393 int CPictureHolder::CreateFromBitmap(HBITMAP__ *,HPALETTE__ *,int) 2394 int CPictureHolder::CreateFromBitmap(CBitmap *,CPalette *,int) 2395 int COleClientItem::CreateFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2396 int COleClientItem::CreateFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2397 int CRgn::CreateFromData(tagXFORM const *,int,_RGNDATA const *) 2398 int COleClientItem::CreateFromFile(wchar_t const *,_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2399 int CPictureHolder::CreateFromIcon(unsigned int) 2400 int CPictureHolder::CreateFromIcon(HICON__ *,int) 2401 int CPictureHolder::CreateFromMetafile(HMETAFILE__ *,int,int,int) 2402 int CRgn::CreateFromPath(CDC *) 2403 void CWnd::CreateGrayCaret(int,int) 2404 int CPalette::CreateHalftonePalette(CDC *) 2405 int CBrush::CreateHatchBrush(int,unsigned long) 2406 int CDC::CreateICW(wchar_t const *,wchar_t const *,wchar_t const *,void const *) 2407 void CDaoTableDef::CreateIndex(CDaoIndexInfo &) 2408 int CDialog::CreateIndirect(void *,CWnd *,HINSTANCE__ *) 2409 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *,HINSTANCE__ *) 2410 int CDialog::CreateIndirect(void *,CWnd *) 2411 int CDialog::CreateIndirect(DLGTEMPLATE const *,CWnd *,void *) 2412 COleIPFrameWnd * COleServerDoc::CreateInPlaceFrame(CWnd *) 2413 long AFX_COM::CreateInstance(_GUID const &,IUnknown *,_GUID const &,void * *) 2414 long COleObjectFactory::XClassFactory::CreateInstance(IUnknown *,_GUID const &,void * *) 2415 long COleObjectFactory::XClassFactory::CreateInstanceLic(IUnknown *,IUnknown *,_GUID const &,wchar_t *,void * *) 2416 int COleInsertDialog::CreateItem(COleClientItem *) 2417 int COlePasteSpecialDialog::CreateItem(COleClientItem *) 2418 int COleClientItem::CreateLinkFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2419 int COleClientItem::CreateLinkFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2420 int COleClientItem::CreateLinkFromFile(wchar_t const *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2421 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,unsigned long) 2422 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *) 2423 CGopherLocator CGopherConnection::CreateLocator(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,unsigned short) 2424 int COleStreamFile::CreateMemoryStream(CFileException *) 2425 int CMenu::CreateMenu(void) 2426 CMDIChildWnd * CMDIFrameWnd::CreateNewChild(CRuntime*,unsigned int,HMENU__ *,HACCEL__ *) 2427 CDocument * CDocTemplate::CreateNewDocument(void) 2428 CFrameWnd * CDocTemplate::CreateNewFrame(CDocument *,CFrameWnd *) 2429 int COleClientItem::CreateNewItem(_GUID const &,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2430 CObject * CByteArray::CreateObject(void) 2431 CObject * CDC::CreateObject(void) 2432 CObject * CDocItem::CreateObject(void) 2433 CObject * CDockState::CreateObject(void) 2434 CObject * CDWordArray::CreateObject(void) 2435 CObject * CEditView::CreateObject(void) 2436 CObject * CFrameWnd::CreateObject(void) 2437 CObject * CGdiObject::CreateObject(void) 2438 CObject * CHtmlEditView::CreateObject(void) 2439 CObject * CHtmlView::CreateObject(void) 2440 CObject * CImageList::CreateObject(void) 2441 CObject * CListView::CreateObject(void) 2442 CObject * CMapStringToOb::CreateObject(void) 2443 CObject * CMapStringToString::CreateObject(void) 2444 CObject * CMapWordToOb::CreateObject(void) 2445 CObject * CMDIChildWnd::CreateObject(void) 2446 CObject * CMDIFrameWnd::CreateObject(void) 2447 CObject * CMenu::CreateObject(void) 2448 CObject * CMiniDockFrameWnd::CreateObject(void) 2449 CObject * CMiniFrameWnd::CreateObject(void) 2450 CObject * CObArray::CreateObject(void) 2451 CObject * CObList::CreateObject(void) 2452 CObject * COleDocIPFrameWnd::CreateObject(void) 2453 CObject * COleIPFrameWnd::CreateObject(void) 2454 CObject * CPreviewView::CreateObject(void) 2455 CObject * CRichEditCntrItem::CreateObject(void) 2456 CObject * CRichEditView::CreateObject(void) 2457 CObject * CRuntimeClass::CreateObject(void) 2458 CObject * CRuntimeClass::CreateObject(wchar_t const *) 2459 CObject * CRuntimeClass::CreateObject(char const *) 2460 CObject * CStringArray::CreateObject(void) 2461 CObject * CStringList::CreateObject(void) 2462 CObject * CTreeView::CreateObject(void) 2463 CObject * CWnd::CreateObject(void) 2464 CObject * CWordArray::CreateObject(void) 2465 void COleControlContainer::CreateOleFont(CFont *) 2466 CFrameWnd * CDocTemplate::CreateOleFrame(CWnd *,CDocument *,int) 2467 void COleSafeArray::CreateOneDim(unsigned short,unsigned long,void const *,long) 2468 long COleControlSite::CreateOrLoad(_GUID const &,CFile *,int,wchar_t *) 2469 long COleControlSite::CreateOrLoad(CControlCreationInfo const &) 2470 int CPalette::CreatePalette(tagLOGPALETTE *) 2471 int CBrush::CreatePatternBrush(CBitmap *) 2472 int CPen::CreatePen(int,int,unsigned long) 2473 int CPen::CreatePen(int,int,tagLOGBRUSH const *,int,unsigned long const *) 2474 int CPen::CreatePenIndirect(tagLOGPEN *) 2475 int CFont::CreatePointFont(int,wchar_t const *,CDC *) 2476 int CFont::CreatePointFontIndirect(tagLOGFONTW const *,CDC *) 2477 int CRgn::CreatePolygonRgn(tagPOINT *,int,int) 2478 int CRgn::CreatePolyPolygonRgn(tagPOINT *,int *,int,int) 2479 int CMenu::CreatePopupMenu(void) 2480 HDC__ * CPageSetupDialog::CreatePrinterDC(void) 2481 HDC__ * CPrintDialog::CreatePrinterDC(void) 2482 HDC__ * CPrintDialogEx::CreatePrinterDC(void) 2483 int CWinApp::CreatePrinterDC(CDC &) 2484 int CRgn::CreateRectRgn(int,int,int,int) 2485 int CRgn::CreateRectRgnIndirect(tagRECT const *) 2486 void CDaoDatabase::CreateRelation(CDaoRelationInfo &) 2487 void CDaoDatabase::CreateRelation(wchar_t const *,wchar_t const *,wchar_t const *,long,wchar_t const *,wchar_t const *) 2488 int CRgn::CreateRoundRectRgn(int,int,int,int,int,int) 2489 int CSplitterWnd::CreateScrollBarCtrl(unsigned long,unsigned int) 2490 COleControlSite * CControlSiteFactoryMgr::CreateSite(COleControlContainer *,CControlCreationInfo const &) 2491 COleControlSite * COccManager::CreateSite(COleControlContainer *) 2492 COleControlSite * COccManager::CreateSite(COleControlContainer *,CControlCreationInfo const &) 2493 int CBrush::CreateSolidBrush(unsigned long) 2494 void CWnd::CreateSolidCaret(int,int) 2495 int CSplitterWnd::CreateStatic(CWnd *,int,int,unsigned long,unsigned int) 2496 int COleClientItem::CreateStaticFromClipboard(enum tagOLERENDER,unsigned short,tagFORMATETC *) 2497 int COleClientItem::CreateStaticFromData(COleDataObject *,enum tagOLERENDER,unsigned short,tagFORMATETC *) 2498 int CGdiObject::CreateStockObject(int) 2499 int COleStreamFile::CreateStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 2500 int CBrush::CreateSysColorBrush(int) 2501 int CWinThread::CreateThread(unsigned long,unsigned int,_SECURITY_ATTRIBUTES *) 2502 void COleControl::CreateTracker(int,int) 2503 void COleControl::CreateTracker(int,int,tagRECT const *) 2504 CWnd * CFrameWnd::CreateView(CCreateContext *,unsigned int) 2505 int CSplitterWnd::CreateView(int,int,CRuntime*,tagSIZE,CCreateContext *) 2506 long CDocObjectServer::XOleDocument::CreateView(IOleInPlaceSite *,IStream *,unsigned long,IOleDocumentView * *) 2507 void COleControl::CreateWindowForSubclassedControl(void) 2508 void CToolBarCtrl::Customize(void) 2509 void CComboBox::Cut(void) 2510 void CEdit::Cut(void) 2511 void CRichEditCtrl::Cut(void) 2512 long COleControl::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2513 long COleDataSource::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2514 long COleServerDoc::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2515 long COleServerItem::XDataObject::DAdvise(tagFORMATETC *,unsigned long,IAdviseSink *,unsigned long *) 2516 void DDP_CBIndex(CDataExchange *,int,int &,wchar_t const *) 2517 void DDP_CBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2518 void DDP_CBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2519 void DDP_Check(CDataExchange *,int,int &,wchar_t const *) 2520 void DDP_EndCheck(CDataExchange *,int,int *,wchar_t const *) 2521 void DDP_EndRadio(CDataExchange *,int,int *,wchar_t const *) 2522 void DDP_EndText(CDataExchange *,int,unsigned char *,wchar_t const *) 2523 void DDP_EndText(CDataExchange *,int,short *,wchar_t const *) 2524 void DDP_EndText(CDataExchange *,int,int *,wchar_t const *) 2525 void DDP_EndText(CDataExchange *,int,unsigned int *,wchar_t const *) 2526 void DDP_EndText(CDataExchange *,int,long *,wchar_t const *) 2527 void DDP_EndText(CDataExchange *,int,unsigned long *,wchar_t const *) 2528 void DDP_EndText(CDataExchange *,int,float *,wchar_t const *) 2529 void DDP_EndText(CDataExchange *,int,double *,wchar_t const *) 2530 void DDP_EndText(CDataExchange *,int,ATL::CStringT > > *,wchar_t const *) 2531 void DDP_LBIndex(CDataExchange *,int,int &,wchar_t const *) 2532 void DDP_LBString(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2533 void DDP_LBStringExact(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2534 void DDP_PostProcessing(CDataExchange *) 2535 void DDP_Radio(CDataExchange *,int,int &,wchar_t const *) 2536 void DDP_Text(CDataExchange *,int,unsigned char &,wchar_t const *) 2537 void DDP_Text(CDataExchange *,int,short &,wchar_t const *) 2538 void DDP_Text(CDataExchange *,int,int &,wchar_t const *) 2539 void DDP_Text(CDataExchange *,int,unsigned int &,wchar_t const *) 2540 void DDP_Text(CDataExchange *,int,long &,wchar_t const *) 2541 void DDP_Text(CDataExchange *,int,unsigned long &,wchar_t const *) 2542 void DDP_Text(CDataExchange *,int,float &,wchar_t const *) 2543 void DDP_Text(CDataExchange *,int,double &,wchar_t const *) 2544 void DDP_Text(CDataExchange *,int,ATL::CStringT > > &,wchar_t const *) 2545 void DDV_MaxChars(CDataExchange *,ATL::CStringT > > const &,int) 2546 void DDV_MinMaxByte(CDataExchange *,unsigned char,unsigned char,unsigned char) 2547 void DDV_MinMaxDateTime(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2548 void DDV_MinMaxDateTime(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2549 void DDV_MinMaxDouble(CDataExchange *,double const &,double,double) 2550 void DDV_MinMaxDWord(CDataExchange *,unsigned long,unsigned long,unsigned long) 2551 void DDV_MinMaxFloat(CDataExchange *,float const &,float,float) 2552 void DDV_MinMaxInt(CDataExchange *,int,int,int) 2553 void DDV_MinMaxLong(CDataExchange *,long,long,long) 2554 void DDV_MinMaxLongLong(CDataExchange *,__int64,__int64,__int64) 2555 void DDV_MinMaxMonth(CDataExchange *,ATL::COleDateTime &,ATL::COleDateTime const *,ATL::COleDateTime const *) 2556 void DDV_MinMaxMonth(CDataExchange *,ATL::CTime &,ATL::CTime const *,ATL::CTime const *) 2557 void DDV_MinMaxShort(CDataExchange *,short,short,short) 2558 void DDV_MinMaxSlider(CDataExchange *,unsigned long,unsigned long,unsigned long) 2559 void DDV_MinMaxUInt(CDataExchange *,unsigned int,unsigned int,unsigned int) 2560 void DDV_MinMaxULongLong(CDataExchange *,unsigned __int64,unsigned __int64,unsigned __int64) 2561 void DDX_CBIndex(CDataExchange *,int,int &) 2562 void DDX_CBString(CDataExchange *,int,ATL::CStringT > > &) 2563 void DDX_CBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2564 void DDX_Check(CDataExchange *,int,int &) 2565 void DDX_Control(CDataExchange *,int,CWnd &) 2566 void DDX_DateTimeCtrl(CDataExchange *,int,_FILETIME &) 2567 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBDATE &) 2568 void DDX_DateTimeCtrl(CDataExchange *,int,tagDBTIME &) 2569 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CStringT > > &) 2570 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::COleDateTime &) 2571 void DDX_DateTimeCtrl(CDataExchange *,int,ATL::CTime &) 2572 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,wchar_t const *,tagVARIANT &,int) 2573 void CDHtmlDialog::DDX_DHtml_AxControl(wchar_t const *,long,tagVARIANT &,int) 2574 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,wchar_t const *,tagVARIANT &) 2575 void CDHtmlDialog::DDX_DHtml_AxControl(CDataExchange *,wchar_t const *,long,tagVARIANT &) 2576 void CDHtmlDialog::DDX_DHtml_CheckBox(wchar_t const *,int &,int) 2577 void CDHtmlDialog::DDX_DHtml_CheckBox(CDataExchange *,wchar_t const *,int &) 2578 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,short &,int) 2579 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,int &,int) 2580 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,long &,int) 2581 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,unsigned long &,int) 2582 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,float &,int) 2583 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,double &,int) 2584 void CDHtmlDialog::DDX_DHtml_ElementText(wchar_t const *,long,ATL::CStringT > > &,int) 2585 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,short &) 2586 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,int &) 2587 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,long &) 2588 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,unsigned long &) 2589 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,float &) 2590 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,double &) 2591 void CDHtmlDialog::DDX_DHtml_ElementText(CDataExchange *,wchar_t const *,long,ATL::CStringT > > &) 2592 void CDHtmlDialog::DDX_DHtml_ElementTextFloatFormat(wchar_t const *,long,void *,double,int,int) 2593 void CDHtmlDialog::DDX_DHtml_ElementTextWithFormat(wchar_t const *,long,wchar_t const *,unsigned int,int,...) 2594 void CDHtmlDialog::DDX_DHtml_Radio(wchar_t const *,long &,int) 2595 void CDHtmlDialog::DDX_DHtml_Radio(CDataExchange *,wchar_t const *,long &) 2596 void CDHtmlDialog::DDX_DHtml_SelectIndex(wchar_t const *,long &,int) 2597 void CDHtmlDialog::DDX_DHtml_SelectIndex(CDataExchange *,wchar_t const *,long &) 2598 void CDHtmlDialog::DDX_DHtml_SelectString(wchar_t const *,ATL::CStringT > > &,int) 2599 void CDHtmlDialog::DDX_DHtml_SelectString(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2600 void CDHtmlDialog::DDX_DHtml_SelectValue(wchar_t const *,ATL::CStringT > > &,int) 2601 void CDHtmlDialog::DDX_DHtml_SelectValue(CDataExchange *,wchar_t const *,ATL::CStringT > > &) 2602 void DDX_FieldCBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2603 void DDX_FieldCBIndex(CDataExchange *,int,int &,CRecordset *) 2604 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2605 void DDX_FieldCBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2606 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2607 void DDX_FieldCBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2608 void DDX_FieldCheck(CDataExchange *,int,int &,CDaoRecordset *) 2609 void DDX_FieldCheck(CDataExchange *,int,int &,CRecordset *) 2610 void DDX_FieldLBIndex(CDataExchange *,int,int &,CDaoRecordset *) 2611 void DDX_FieldLBIndex(CDataExchange *,int,int &,CRecordset *) 2612 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2613 void DDX_FieldLBString(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2614 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2615 void DDX_FieldLBStringExact(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2616 void DDX_FieldRadio(CDataExchange *,int,int &,CDaoRecordset *) 2617 void DDX_FieldRadio(CDataExchange *,int,int &,CRecordset *) 2618 void DDX_FieldScroll(CDataExchange *,int,int &,CDaoRecordset *) 2619 void DDX_FieldScroll(CDataExchange *,int,int &,CRecordset *) 2620 void DDX_FieldSlider(CDataExchange *,int,int &,CDaoRecordset *) 2621 void DDX_FieldText(CDataExchange *,int,unsigned char &,CDaoRecordset *) 2622 void DDX_FieldText(CDataExchange *,int,unsigned char &,CRecordset *) 2623 void DDX_FieldText(CDataExchange *,int,short &,CDaoRecordset *) 2624 void DDX_FieldText(CDataExchange *,int,int &,CDaoRecordset *) 2625 void DDX_FieldText(CDataExchange *,int,int &,CRecordset *) 2626 void DDX_FieldText(CDataExchange *,int,unsigned int &,CRecordset *) 2627 void DDX_FieldText(CDataExchange *,int,long &,CDaoRecordset *) 2628 void DDX_FieldText(CDataExchange *,int,long &,CRecordset *) 2629 void DDX_FieldText(CDataExchange *,int,unsigned long &,CDaoRecordset *) 2630 void DDX_FieldText(CDataExchange *,int,unsigned long &,CRecordset *) 2631 void DDX_FieldText(CDataExchange *,int,float &,CDaoRecordset *) 2632 void DDX_FieldText(CDataExchange *,int,float &,CRecordset *) 2633 void DDX_FieldText(CDataExchange *,int,double &,CDaoRecordset *) 2634 void DDX_FieldText(CDataExchange *,int,double &,CRecordset *) 2635 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CDaoRecordset *) 2636 void DDX_FieldText(CDataExchange *,int,ATL::CStringT > > &,CRecordset *) 2637 void DDX_FieldText(CDataExchange *,int,COleCurrency &,CDaoRecordset *) 2638 void DDX_FieldText(CDataExchange *,int,ATL::COleDateTime &,CDaoRecordset *) 2639 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CDaoRecordset *) 2640 void DDX_FieldText(CDataExchange *,int,wchar_t *,int,CRecordset *) 2641 void DDX_IPAddress(CDataExchange *,int,unsigned long &) 2642 void DDX_LBIndex(CDataExchange *,int,int &) 2643 void DDX_LBString(CDataExchange *,int,ATL::CStringT > > &) 2644 void DDX_LBStringExact(CDataExchange *,int,ATL::CStringT > > &) 2645 void DDX_MonthCalCtrl(CDataExchange *,int,_FILETIME &) 2646 void DDX_MonthCalCtrl(CDataExchange *,int,tagDBDATE &) 2647 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::COleDateTime &) 2648 void DDX_MonthCalCtrl(CDataExchange *,int,ATL::CTime &) 2649 void DDX_OCBool(CDataExchange *,int,long,int &) 2650 void DDX_OCBoolRO(CDataExchange *,int,long,int &) 2651 void DDX_OCColor(CDataExchange *,int,long,unsigned long &) 2652 void DDX_OCColorRO(CDataExchange *,int,long,unsigned long &) 2653 void DDX_OCFloat(CDataExchange *,int,long,float &) 2654 void DDX_OCFloat(CDataExchange *,int,long,double &) 2655 void DDX_OCFloatRO(CDataExchange *,int,long,float &) 2656 void DDX_OCFloatRO(CDataExchange *,int,long,double &) 2657 void DDX_OCInt(CDataExchange *,int,long,int &) 2658 void DDX_OCInt(CDataExchange *,int,long,long &) 2659 void DDX_OCIntRO(CDataExchange *,int,long,int &) 2660 void DDX_OCIntRO(CDataExchange *,int,long,long &) 2661 void DDX_OCShort(CDataExchange *,int,long,short &) 2662 void DDX_OCShortRO(CDataExchange *,int,long,short &) 2663 void DDX_OCText(CDataExchange *,int,long,ATL::CStringT > > &) 2664 void DDX_OCTextRO(CDataExchange *,int,long,ATL::CStringT > > &) 2665 void DDX_Radio(CDataExchange *,int,int &) 2666 void DDX_Scroll(CDataExchange *,int,int &) 2667 void DDX_Slider(CDataExchange *,int,int &) 2668 void DDX_Text(CDataExchange *,int,__int64 &) 2669 void DDX_Text(CDataExchange *,int,unsigned __int64 &) 2670 void DDX_Text(CDataExchange *,int,unsigned char &) 2671 void DDX_Text(CDataExchange *,int,short &) 2672 void DDX_Text(CDataExchange *,int,int &) 2673 void DDX_Text(CDataExchange *,int,unsigned int &) 2674 void DDX_Text(CDataExchange *,int,long &) 2675 void DDX_Text(CDataExchange *,int,unsigned long &) 2676 void DDX_Text(CDataExchange *,int,float &) 2677 void DDX_Text(CDataExchange *,int,double &) 2678 void DDX_Text(CDataExchange *,int,_FILETIME &) 2679 void DDX_Text(CDataExchange *,int,_GUID &) 2680 void DDX_Text(CDataExchange *,int,tagDB_NUMERIC &) 2681 void DDX_Text(CDataExchange *,int,tagDBDATE &) 2682 void DDX_Text(CDataExchange *,int,tagDBTIME &) 2683 void DDX_Text(CDataExchange *,int,tagDEC &) 2684 void DDX_Text(CDataExchange *,int,ATL::CStringT > > &) 2685 void DDX_Text(CDataExchange *,int,COleCurrency &) 2686 void DDX_Text(CDataExchange *,int,ATL::COleDateTime &) 2687 void DDX_Text(CDataExchange *,int,wchar_t *,int) 2688 void COleClientItem::Deactivate(void) 2689 long COlePropertyPage::XPropertyPage::Deactivate(void) 2690 int COleServerDoc::DeactivateAndUndo(void) 2691 long COleClientItem::XOleIPSite::DeactivateAndUndo(void) 2692 long COleControlSite::XOleIPSite::DeactivateAndUndo(void) 2693 void COleClientItem::DeactivateUI(void) 2694 void CDaoFieldExchange::Default(wchar_t const *,void *,unsigned long,unsigned long) 2695 void CFieldExchange::Default(wchar_t const *,void *,long *,int,unsigned long,unsigned long) 2696 long CWnd::Default(void) 2697 long CMDIChildWnd::DefWindowProcW(unsigned int,unsigned int,long) 2698 long CMDIFrameWnd::DefWindowProcW(unsigned int,unsigned int,long) 2699 long COleControl::DefWindowProcW(unsigned int,unsigned int,long) 2700 long CPrintDialogEx::DefWindowProcW(unsigned int,unsigned int,long) 2701 long CWnd::DefWindowProcW(unsigned int,unsigned int,long) 2702 void CFrameWnd::DelayRecalcLayout(int) 2703 void COleDataSource::DelayRenderData(unsigned short,tagFORMATETC *) 2704 void COleDataSource::DelayRenderFileData(unsigned short,tagFORMATETC *) 2705 void COleDataSource::DelaySetData(unsigned short,tagFORMATETC *) 2706 void CControlBar::DelayShow(int) 2707 void CFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2708 void CMDIFrameWnd::DelayUpdateFrameMenu(HMENU__ *) 2709 void CFrameWnd::DelayUpdateFrameTitle(void) 2710 int ATL::CStringT > >::Delete(int,int) 2711 int ATL::CStringT > >::Delete(int,int) 2712 void CDaoRecordset::Delete(void) 2713 void CException::Delete(void) 2714 void COleClientItem::Delete(int) 2715 void CRecordset::Delete(void) 2716 void CWinThread::Delete(void) 2717 int CListCtrl::DeleteAllItems(void) 2718 int CTabCtrl::DeleteAllItems(void) 2719 int CTreeCtrl::DeleteAllItems(void) 2720 int CReBarCtrl::DeleteBand(unsigned int) 2721 int CToolBarCtrl::DeleteButton(int) 2722 void CDaoFieldExchange::DeleteCacheValue(CDaoFieldCache *,unsigned long) 2723 int CListCtrl::DeleteColumn(int) 2724 void CSplitterWnd::DeleteColumn(int) 2725 void CDocument::DeleteContents(void) 2726 void CEditView::DeleteContents(void) 2727 void CHtmlEditDoc::DeleteContents(void) 2728 void COleDocument::DeleteContents(void) 2729 void COleServerDoc::DeleteContents(void) 2730 void CRichEditDoc::DeleteContents(void) 2731 void CRichEditView::DeleteContents(void) 2732 int CDC::DeleteDC(void) 2733 void CDaoTableDef::DeleteField(int) 2734 void CDaoTableDef::DeleteField(wchar_t const *) 2735 int CImageList::DeleteImageList(void) 2736 void CDaoTableDef::DeleteIndex(int) 2737 void CDaoTableDef::DeleteIndex(wchar_t const *) 2738 void CComboBox::DeleteItem(tagDELETEITEM*) 2739 int CComboBoxEx::DeleteItem(int) 2740 int CHeaderCtrl::DeleteItem(int) 2741 void CListBox::DeleteItem(tagDELETEITEM*) 2742 int CListCtrl::DeleteItem(int) 2743 int CTabCtrl::DeleteItem(int) 2744 int CTreeCtrl::DeleteItem(_TREEITEM *) 2745 int CMenu::DeleteMenu(unsigned int,unsigned int) 2746 int CGdiObject::DeleteObject(void) 2747 long CRichEditView::XRichEditOleCallback::DeleteObject(IOleObject *) 2748 void CDaoDatabase::DeleteQueryDef(wchar_t const *) 2749 void CDaoDatabase::DeleteRelation(wchar_t const *) 2750 void CSplitterWnd::DeleteRow(int) 2751 int CComboBox::DeleteString(unsigned int) 2752 int CListBox::DeleteString(unsigned int) 2753 void CDaoDatabase::DeleteTableDef(wchar_t const *) 2754 void CHandleMap::DeleteTemp(void) 2755 void CDC::DeleteTempMap(void) 2756 void CGdiObject::DeleteTempMap(void) 2757 void CImageList::DeleteTempMap(void) 2758 void CMenu::DeleteTempMap(void) 2759 void CWnd::DeleteTempMap(void) 2760 void CRichEditDoc::DeleteUnmarkedItems(void)const 2761 void CThreadSlotData::DeleteValues(CThreadData *,HINSTANCE__ *) 2762 void CThreadSlotData::DeleteValues(HINSTANCE__ *,int) 2763 void CSplitterWnd::DeleteView(int,int) 2764 long CWinApp::DelRegTree(HKEY__ *,ATL::CStringT > > const &) 2765 void CToolTipCtrl::DelTool(CWnd *,unsigned int) 2766 void CTabCtrl::DeselectAll(int) 2767 void COleSafeArray::Destroy(void) 2768 int COleControlSite::DestroyControl(void) 2769 void COleSafeArray::DestroyData(void) 2770 void COleSafeArray::DestroyDescriptor(void) 2771 void CFrameWnd::DestroyDockBars(void) 2772 void COleServerDoc::DestroyInPlaceFrame(COleIPFrameWnd *) 2773 int CMenu::DestroyMenu(void) 2774 void CDHtmlDialog::DestroyModeless(void) 2775 void COleControl::DestroySharedMenu(void) 2776 void COleDocIPFrameWnd::DestroySharedMenu(void) 2777 void COleIPFrameWnd::DestroySharedMenu(void) 2778 int CToolTipCtrl::DestroyToolTipCtrl(void) 2779 void COleControl::DestroyTracker(void) 2780 int CControlBar::DestroyWindow(void) 2781 int CMDIChildWnd::DestroyWindow(void) 2782 int CWnd::DestroyWindow(void) 2783 unsigned int CAsyncSocket::Detach(void) 2784 HDC__ * CDC::Detach(void) 2785 void * CDialogTemplate::Detach(void) 2786 void * CGdiObject::Detach(void) 2787 _IMAGELIST * CImageList::Detach(void) 2788 unsigned char * CMemFile::Detach(void) 2789 HMENU__ * CMenu::Detach(void) 2790 int CMonikerFile::Detach(CFileException *) 2791 IDataObject * COleDataObject::Detach(void) 2792 tagVARIANT COleSafeArray::Detach(void) 2793 IStream * COleStreamFile::Detach(void) 2794 tagVARIANT COleVariant::Detach(void) 2795 void * CSharedFile::Detach(void) 2796 HDC__ * CWindowlessDC::Detach(void) 2797 HWND__ * CWnd::Detach(void) 2798 IDispatch * COleDispatchDriver::DetachDispatch(void) 2799 void CAsyncSocket::DetachHandle(unsigned int,int) 2800 void COleControlSite::DetachWindow(void) 2801 void CWinApp::DevModeChange(wchar_t *) 2802 void DFX_Binary(CDaoFieldExchange *,wchar_t const *,CByteArray &,int,unsigned long) 2803 void DFX_Bool(CDaoFieldExchange *,wchar_t const *,int &,unsigned long) 2804 void DFX_Byte(CDaoFieldExchange *,wchar_t const *,unsigned char &,unsigned long) 2805 void DFX_Currency(CDaoFieldExchange *,wchar_t const *,COleCurrency &,unsigned long) 2806 void DFX_DateTime(CDaoFieldExchange *,wchar_t const *,ATL::COleDateTime &,unsigned long) 2807 void DFX_Double(CDaoFieldExchange *,wchar_t const *,double &,unsigned long) 2808 void DFX_Long(CDaoFieldExchange *,wchar_t const *,long &,unsigned long) 2809 void DFX_LongBinary(CDaoFieldExchange *,wchar_t const *,CLongBinary &,unsigned long,unsigned long) 2810 void DFX_Short(CDaoFieldExchange *,wchar_t const *,short &,unsigned long) 2811 void DFX_Single(CDaoFieldExchange *,wchar_t const *,float &,unsigned long) 2812 void DFX_Text(CDaoFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,unsigned long) 2813 int CDHtmlEventSink::DHtmlEventHook(long *,long,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 2814 long COleControlSite::XNotifyDBEvents::DidEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 2815 int CMemoryState::Difference(CMemoryState const &,CMemoryState const &) 2816 int CComboBox::Dir(unsigned int,wchar_t const *) 2817 int CComboBoxEx::Dir(unsigned int,wchar_t const *) 2818 int CListBox::Dir(unsigned int,wchar_t const *) 2819 int COleServerDoc::DiscardUndoState(void) 2820 long COleClientItem::XOleIPSite::DiscardUndoState(void) 2821 long COleControlSite::XOleIPSite::DiscardUndoState(void) 2822 void COleDispatchImpl::Disconnect(void) 2823 void CDHtmlDialog::DisconnectDHtmlElementEvents(void) 2824 void CDHtmlDialog::DisconnectDHtmlEvents(void) 2825 void CDHtmlEventSink::DisconnectFromConnectionPoint(IUnknown *,_GUID const &,unsigned long &) 2826 void COleControlSite::DisconnectSink(_GUID const &,unsigned long) 2827 void CDocument::DisconnectViews(void) 2828 void CWinThread::DispatchThreadMessage(tagMSG *) 2829 int CWinThread::DispatchThreadMessageEx(tagMSG *) 2830 int CRichEditCtrl::DisplayBand(tagRECT *) 2831 void COleControl::DisplayError(long,wchar_t const *,wchar_t const *,wchar_t const *,unsigned int) 2832 int CWnd::DlgDirListComboBoxW(wchar_t *,int,int,unsigned int) 2833 int CWnd::DlgDirListW(wchar_t *,int,int,unsigned int) 2834 int CWnd::DlgDirSelect(wchar_t *,int) 2835 int CWnd::DlgDirSelect(wchar_t *,int,int) 2836 int CWnd::DlgDirSelectComboBox(wchar_t *,int) 2837 int CWnd::DlgDirSelectComboBox(wchar_t *,int,int) 2838 void CDocObjectServer::DoBeginPrinting(CView *,CDC *,CPrintInfo *) 2839 void CRecordset::DoBulkFieldExchange(CFieldExchange *) 2840 void CAsyncSocket::DoCallBack(unsigned int,long) 2841 int COleChangeIconDialog::DoChangeIcon(COleClientItem *) 2842 void CDockBar::DockControlBar(CControlBar *,tagRECT const *) 2843 void CFrameWnd::DockControlBar(CControlBar *,unsigned int,tagRECT const *) 2844 void CFrameWnd::DockControlBar(CControlBar *,CDockBar *,tagRECT const *) 2845 void COleControl::DoClick(void) 2846 int COleFrameHook::DoContextSensitiveHelp(int) 2847 int COleConvertDialog::DoConvert(COleClientItem *) 2848 void CHtmlView::DocumentComplete(IDispatch *,tagVARIANT *) 2849 void CWnd::DoDataExchange(CDataExchange *) 2850 long COleDocObjectItem::DoDefaultPrinting(CView *,CPrintInfo *) 2851 unsigned long COleClientItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2852 unsigned long COleDataSource::DoDragDrop(unsigned long,tagRECT const *,COleDropSource *) 2853 unsigned long COleServerItem::DoDragDrop(tagRECT const *,CPoint,int,unsigned long,tagRECT const *) 2854 int COleFrameHook::DoEnableModeless(int) 2855 void CWinApp::DoEnableModeless(int) 2856 void CDocObjectServer::DoEndPrinting(CView *,CDC *,CPrintInfo *) 2857 void CDaoRecordset::DoFieldExchange(CDaoFieldExchange *) 2858 void CRecordset::DoFieldExchange(CFieldExchange *) 2859 int CDocument::DoFileSave(void) 2860 int CSplitterWnd::DoKeyboardSplit(void) 2861 int CWinApp::DoMessageBox(wchar_t const *,unsigned int,unsigned int) 2862 int CColorDialog::DoModal(void) 2863 int CDialog::DoModal(void) 2864 int CFileDialog::DoModal(void) 2865 int CFontDialog::DoModal(void) 2866 int COleBusyDialog::DoModal(void) 2867 int COleChangeIconDialog::DoModal(void) 2868 int COleChangeSourceDialog::DoModal(void) 2869 int COleConvertDialog::DoModal(void) 2870 int COleInsertDialog::DoModal(unsigned long) 2871 int COleInsertDialog::DoModal(void) 2872 int COleLinksDialog::DoModal(void) 2873 int COlePasteSpecialDialog::DoModal(void) 2874 int COlePropertiesDialog::DoModal(void) 2875 int COleUpdateDialog::DoModal(void) 2876 int CPageSetupDialog::DoModal(void) 2877 int CPrintDialog::DoModal(void) 2878 int CPrintDialogEx::DoModal(void) 2879 int CPropertySheet::DoModal(void) 2880 int CScrollView::DoMouseWheel(unsigned int,short,CPoint) 2881 int CCmdTarget::DoOleVerb(long,tagMSG *,HWND__ *,tagRECT const *) 2882 void CControlBar::DoPaint(CDC *) 2883 void CDockBar::DoPaint(CDC *) 2884 void CRichEditView::DoPaste(COleDataObject &,unsigned short,void *) 2885 void CDocObjectServer::DoPrepareDC(CView *,CDC *,CPrintInfo *) 2886 int CDocObjectServer::DoPreparePrinting(CView *,CPrintInfo *) 2887 int CView::DoPreparePrinting(CPrintInfo *) 2888 void CDocObjectServer::DoPrint(CView *,CDC *,CPrintInfo *) 2889 int CWinApp::DoPrintDialog(CPrintDialog *) 2890 int CView::DoPrintPreview(unsigned int,CView *,CRuntime*,CPrintPreviewState *) 2891 int CDocManager::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2892 int CWinApp::DoPromptFileName(ATL::CStringT > > &,unsigned int,unsigned long,int,CDocTemplate *) 2893 void COleControl::DoPropExchange(CPropExchange *) 2894 int CDocument::DoSave(wchar_t const *,int) 2895 int CSplitterWnd::DoScroll(CView *,unsigned int,int) 2896 int CSplitterWnd::DoScrollBy(CView *,CSize,int) 2897 void COleControl::DoSuperclassPaint(CDC *,CRect const &) 2898 int CCmdUI::DoUpdate(CCmdTarget *,int) 2899 int COleCmdUI::DoUpdate(CCmdTarget *,int) 2900 int COleClientItem::DoVerb(long,CView *,tagMSG *) 2901 long COleControlSite::DoVerb(long,tagMSG *) 2902 long CDocObjectServer::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2903 long COleControl::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2904 long COleServerDoc::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2905 long COleServerItem::XOleObject::DoVerb(long,tagMSG *,IOleClientSite *,long,HWND__ *,tagRECT const *) 2906 void CWinApp::DoWaitCursor(int) 2907 void CPreviewView::DoZoom(unsigned int,CPoint) 2908 void CDC::DPtoHIMETRIC(tagSIZE *)const 2909 void CDC::DPtoLP(tagPOINT *,int)const 2910 void CDC::DPtoLP(tagRECT *)const 2911 void CDC::DPtoLP(tagSIZE *)const 2912 void CWnd::DragAcceptFiles(int) 2913 int CWnd::DragDetect(tagPOINT)const 2914 int CImageList::DragEnter(CWnd *,CPoint) 2915 long COleDropTarget::XDropTarget::DragEnter(IDataObject *,unsigned long,_POINTL,unsigned long *) 2916 unsigned int CDragListBox::Dragging(CPoint) 2917 int CImageList::DragLeave(CWnd *) 2918 long COleDropTarget::XDropTarget::DragLeave(void) 2919 int CImageList::DragMove(CPoint) 2920 void CReBarCtrl::DragMove(unsigned long) 2921 long COleDropTarget::XDropTarget::DragOver(unsigned long,_POINTL,unsigned long *) 2922 int CImageList::DragShowNolock(int) 2923 int CImageList::Draw(CDC *,int,tagPOINT,unsigned int) 2924 int COleClientItem::Draw(CDC *,tagRECT const *,enum tagDVASPECT) 2925 void CRectTracker::Draw(CDC *)const 2926 long COleControl::XViewObject::Draw(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,HDC__ *,_RECTL const *,_RECTL const *,int (__stdcall*)(unsigned long),unsigned long) 2927 void CDC::Draw3dRect(int,int,int,int,unsigned long,unsigned long) 2928 void CDC::Draw3dRect(tagRECT const *,unsigned long,unsigned long) 2929 void CSplitterWnd::DrawAllSplitBars(CDC *,int,int) 2930 int CWnd::DrawAnimatedRects(int,tagRECT const *,tagRECT const *) 2931 void CControlBar::DrawBorders(CDC *,CRect &) 2932 int CWnd::DrawCaption(CDC *,tagRECT const *,unsigned int) 2933 void COleControl::DrawContent(CDC *,CRect &) 2934 void CDC::DrawDragRect(tagRECT const *,tagSIZE,tagRECT const *,tagSIZE,CBrush *,CBrush *) 2935 int CDC::DrawEdge(tagRECT *,unsigned int,unsigned int) 2936 int CDC::DrawEscape(int,int,char const *) 2937 int CImageList::DrawEx(CDC *,int,tagPOINT,tagSIZE,unsigned long,unsigned long,unsigned int) 2938 void CDC::DrawFocusRect(tagRECT const *) 2939 void CDockContext::DrawFocusRect(int) 2940 int CDC::DrawFrameControl(tagRECT *,unsigned int,unsigned int) 2941 void CControlBar::DrawGripper(CDC *,CRect const &) 2942 int CDC::DrawIcon(int,int,HICON__ *) 2943 int CDC::DrawIcon(tagPOINT,HICON__ *) 2944 int CImageList::DrawIndirect(_IMAGELISTDRAWPARAMS *) 2945 int CImageList::DrawIndirect(CDC *,int,tagPOINT,tagSIZE,tagPOINT,unsigned int,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long) 2946 void CDragListBox::DrawInsert(int) 2947 void CBitmapButton::DrawItem(tagDRAWITEM*) 2948 void CButton::DrawItem(tagDRAWITEM*) 2949 void CCheckListBox::DrawItem(tagDRAWITEM*) 2950 void CChevronOwnerDrawMenu::DrawItem(tagDRAWITEM*) 2951 void CComboBox::DrawItem(tagDRAWITEM*) 2952 void CHeaderCtrl::DrawItem(tagDRAWITEM*) 2953 void CListBox::DrawItem(tagDRAWITEM*) 2954 void CListCtrl::DrawItem(tagDRAWITEM*) 2955 void CListView::DrawItem(tagDRAWITEM*) 2956 void CMenu::DrawItem(tagDRAWITEM*) 2957 void CStatic::DrawItem(tagDRAWITEM*) 2958 void CStatusBar::DrawItem(tagDRAWITEM*) 2959 void CStatusBarCtrl::DrawItem(tagDRAWITEM*) 2960 void CTabCtrl::DrawItem(tagDRAWITEM*) 2961 void CWnd::DrawMenuBar(void) 2962 void COleControl::DrawMetafile(CDC *,CRect &) 2963 void CControlBar::DrawNCGripper(CDC *,CRect const &) 2964 int CControlBar::DrawNonThemedGripper(CDC *,CRect const &) 2965 void CDragListBox::DrawSingle(int) 2966 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,HBRUSH__ *) 2967 int CDC::DrawState(CPoint,CSize,int (__stdcall*)(HDC__ *,long,unsigned int,int,int),long,unsigned int,CBrush *) 2968 int CDC::DrawState(CPoint,CSize,HBITMAP__ *,unsigned int,HBRUSH__ *) 2969 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,HBRUSH__ *) 2970 int CDC::DrawState(CPoint,CSize,HICON__ *,unsigned int,CBrush *) 2971 int CDC::DrawState(CPoint,CSize,CBitmap *,unsigned int,CBrush *) 2972 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,HBRUSH__ *) 2973 int CDC::DrawState(CPoint,CSize,wchar_t const *,unsigned int,int,int,CBrush *) 2974 int CDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 2975 int CDC::DrawText(wchar_t const *,int,tagRECT *,unsigned int) 2976 int CMetaFileDC::DrawText(ATL::CStringT > > const &,tagRECT *,unsigned int) 2977 int CMetaFileDC::DrawText(wchar_t const *,int,tagRECT *,unsigned int) 2978 int CDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2979 int CDC::DrawTextEx(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2980 int CMetaFileDC::DrawTextEx(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2981 int CMetaFileDC::DrawTextEx(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2982 int CDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2983 int CDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2984 int CMetaFileDC::DrawTextExW(ATL::CStringT > > const &,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2985 int CMetaFileDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2986 int CPreviewDC::DrawTextExW(wchar_t *,int,tagRECT *,unsigned int,tagDRAWTEXTPARAMS *) 2987 int CDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2988 int CDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2989 int CMetaFileDC::DrawTextW(ATL::CStringT > > const &,tagRECT *,unsigned int) 2990 int CMetaFileDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2991 int CPreviewDC::DrawTextW(wchar_t const *,int,tagRECT *,unsigned int) 2992 long CThemeHelper::DrawThemeBackground(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2993 long CThemeHelper::DrawThemeBackgroundFail(void *,HDC__ *,int,int,tagRECT const *,tagRECT const *) 2994 int CControlBar::DrawThemedGripper(CDC *,CRect const &,int) 2995 long CThemeHelper::DrawThemeParentBackground(HWND__ *,HDC__ *,tagRECT *) 2996 long CThemeHelper::DrawThemeParentBackgroundFail(HWND__ *,HDC__ *,tagRECT *) 2997 void CRectTracker::DrawTrackerRect(tagRECT const *,CWnd *,CDC *,CWnd *) 2998 long COleDropTarget::XDropTarget::Drop(IDataObject *,unsigned long,_POINTL,unsigned long *) 2999 void CDragListBox::Dropped(int,CPoint) 3000 void CArchiveException::Dump(CDumpContext &)const 3001 void CAsyncMonikerFile::Dump(CDumpContext &)const 3002 void CAsyncSocket::Dump(CDumpContext &)const 3003 void CBitmap::Dump(CDumpContext &)const 3004 void CBitmapButton::Dump(CDumpContext &)const 3005 void CBrush::Dump(CDumpContext &)const 3006 void CByteArray::Dump(CDumpContext &)const 3007 void CCachedDataPathProperty::Dump(CDumpContext &)const 3008 void CClientDC::Dump(CDumpContext &)const 3009 void CCmdTarget::Dump(CDumpContext &)const 3010 void CColorDialog::Dump(CDumpContext &)const 3011 void CControlBar::Dump(CDumpContext &)const 3012 void CCtrlView::Dump(CDumpContext &)const 3013 void CDaoDatabase::Dump(CDumpContext &)const 3014 void CDaoDatabaseInfo::Dump(CDumpContext &)const 3015 void CDaoErrorInfo::Dump(CDumpContext &)const 3016 void CDaoFieldInfo::Dump(CDumpContext &)const 3017 void CDaoIndexFieldInfo::Dump(CDumpContext &)const 3018 void CDaoIndexInfo::Dump(CDumpContext &)const 3019 void CDaoParameterInfo::Dump(CDumpContext &)const 3020 void CDaoQueryDef::Dump(CDumpContext &)const 3021 void CDaoQueryDefInfo::Dump(CDumpContext &)const 3022 void CDaoRecordset::Dump(CDumpContext &)const 3023 void CDaoRecordView::Dump(CDumpContext &)const 3024 void CDaoRelationFieldInfo::Dump(CDumpContext &)const 3025 void CDaoRelationInfo::Dump(CDumpContext &)const 3026 void CDaoTableDef::Dump(CDumpContext &)const 3027 void CDaoTableDefInfo::Dump(CDumpContext &)const 3028 void CDaoWorkspace::Dump(CDumpContext &)const 3029 void CDaoWorkspaceInfo::Dump(CDumpContext &)const 3030 void CDatabase::Dump(CDumpContext &)const 3031 void CDataPathProperty::Dump(CDumpContext &)const 3032 void CDC::Dump(CDumpContext &)const 3033 void CDialog::Dump(CDumpContext &)const 3034 void CDocItem::Dump(CDumpContext &)const 3035 void CDockBar::Dump(CDumpContext &)const 3036 void CDocManager::Dump(CDumpContext &)const 3037 void CDocObjectServer::Dump(CDumpContext &)const 3038 void CDocObjectServerItem::Dump(CDumpContext &)const 3039 void CDocTemplate::Dump(CDumpContext &)const 3040 void CDocument::Dump(CDumpContext &)const 3041 void CDWordArray::Dump(CDumpContext &)const 3042 void CDynLinkLibrary::Dump(CDumpContext &)const 3043 void CEditView::Dump(CDumpContext &)const 3044 void CFile::Dump(CDumpContext &)const 3045 void CFileDialog::Dump(CDumpContext &)const 3046 void CFileException::Dump(CDumpContext &)const 3047 void CFileFind::Dump(CDumpContext &)const 3048 void CFileStatus::Dump(CDumpContext &)const 3049 void CFindReplaceDialog::Dump(CDumpContext &)const 3050 void CFont::Dump(CDumpContext &)const 3051 void CFontDialog::Dump(CDumpContext &)const 3052 void CFormView::Dump(CDumpContext &)const 3053 void CFrameWnd::Dump(CDumpContext &)const 3054 void CFtpConnection::Dump(CDumpContext &)const 3055 void CFtpFileFind::Dump(CDumpContext &)const 3056 void CGdiObject::Dump(CDumpContext &)const 3057 void CGopherConnection::Dump(CDumpContext &)const 3058 void CGopherFile::Dump(CDumpContext &)const 3059 void CGopherFileFind::Dump(CDumpContext &)const 3060 void CHtmlEditDoc::Dump(CDumpContext &)const 3061 void CHtmlEditView::Dump(CDumpContext &)const 3062 void CHtmlView::Dump(CDumpContext &)const 3063 void CHttpConnection::Dump(CDumpContext &)const 3064 void CHttpFile::Dump(CDumpContext &)const 3065 void CImageList::Dump(CDumpContext &)const 3066 void CInternetConnection::Dump(CDumpContext &)const 3067 void CInternetException::Dump(CDumpContext &)const 3068 void CInternetFile::Dump(CDumpContext &)const 3069 void CInternetSession::Dump(CDumpContext &)const 3070 void CLongBinary::Dump(CDumpContext &)const 3071 void CMapPtrToPtr::Dump(CDumpContext &)const 3072 void CMapPtrToWord::Dump(CDumpContext &)const 3073 void CMapStringToOb::Dump(CDumpContext &)const 3074 void CMapStringToPtr::Dump(CDumpContext &)const 3075 void CMapStringToString::Dump(CDumpContext &)const 3076 void CMapWordToOb::Dump(CDumpContext &)const 3077 void CMapWordToPtr::Dump(CDumpContext &)const 3078 void CMDIChildWnd::Dump(CDumpContext &)const 3079 void CMDIFrameWnd::Dump(CDumpContext &)const 3080 void CMemFile::Dump(CDumpContext &)const 3081 void CMenu::Dump(CDumpContext &)const 3082 void CMonikerFile::Dump(CDumpContext &)const 3083 void CMultiDocTemplate::Dump(CDumpContext &)const 3084 void CObArray::Dump(CDumpContext &)const 3085 void CObject::Dump(CDumpContext &)const 3086 void CObList::Dump(CDumpContext &)const 3087 void COleBusyDialog::Dump(CDumpContext &)const 3088 void COleChangeIconDialog::Dump(CDumpContext &)const 3089 void COleChangeSourceDialog::Dump(CDumpContext &)const 3090 void COleClientItem::Dump(CDumpContext &)const 3091 void COleControl::Dump(CDumpContext &)const 3092 void COleConvertDialog::Dump(CDumpContext &)const 3093 void COleDataSource::Dump(CDumpContext &)const 3094 void COleDialog::Dump(CDumpContext &)const 3095 void COleDocIPFrameWnd::Dump(CDumpContext &)const 3096 void COleDocument::Dump(CDumpContext &)const 3097 void COleDropSource::Dump(CDumpContext &)const 3098 void COleDropTarget::Dump(CDumpContext &)const 3099 void COleInsertDialog::Dump(CDumpContext &)const 3100 void COleIPFrameWnd::Dump(CDumpContext &)const 3101 void COleLinkingDoc::Dump(CDumpContext &)const 3102 void COleLinksDialog::Dump(CDumpContext &)const 3103 void COleMessageFilter::Dump(CDumpContext &)const 3104 void COleObjectFactory::Dump(CDumpContext &)const 3105 void COlePasteSpecialDialog::Dump(CDumpContext &)const 3106 void COlePropertiesDialog::Dump(CDumpContext &)const 3107 void COleServerDoc::Dump(CDumpContext &)const 3108 void COleServerItem::Dump(CDumpContext &)const 3109 void COleStreamFile::Dump(CDumpContext &)const 3110 void COleUpdateDialog::Dump(CDumpContext &)const 3111 void CPageSetupDialog::Dump(CDumpContext &)const 3112 void CPaintDC::Dump(CDumpContext &)const 3113 void CPen::Dump(CDumpContext &)const 3114 void CPreviewDC::Dump(CDumpContext &)const 3115 void CPreviewView::Dump(CDumpContext &)const 3116 void CPrintDialog::Dump(CDumpContext &)const 3117 void CPrintDialogEx::Dump(CDumpContext &)const 3118 void CPropertyPage::Dump(CDumpContext &)const 3119 void CPropertySheet::Dump(CDumpContext &)const 3120 void CPtrArray::Dump(CDumpContext &)const 3121 void CPtrList::Dump(CDumpContext &)const 3122 void CRecordset::Dump(CDumpContext &)const 3123 void CRecordView::Dump(CDumpContext &)const 3124 void CRichEditCntrItem::Dump(CDumpContext &)const 3125 void CRichEditDoc::Dump(CDumpContext &)const 3126 void CRichEditView::Dump(CDumpContext &)const 3127 void CScrollView::Dump(CDumpContext &)const 3128 void CSingleDocTemplate::Dump(CDumpContext &)const 3129 void CSocket::Dump(CDumpContext &)const 3130 void CSocketFile::Dump(CDumpContext &)const 3131 void CSplitterWnd::Dump(CDumpContext &)const 3132 void CStatusBar::Dump(CDumpContext &)const 3133 void CStdioFile::Dump(CDumpContext &)const 3134 void CStringArray::Dump(CDumpContext &)const 3135 void CStringList::Dump(CDumpContext &)const 3136 void CSyncObject::Dump(CDumpContext &)const 3137 void CToolBar::Dump(CDumpContext &)const 3138 void CUIntArray::Dump(CDumpContext &)const 3139 void CView::Dump(CDumpContext &)const 3140 void CWinApp::Dump(CDumpContext &)const 3141 void CWindowDC::Dump(CDumpContext &)const 3142 void CWinThread::Dump(CDumpContext &)const 3143 void CWnd::Dump(CDumpContext &)const 3144 void CWordArray::Dump(CDumpContext &)const 3145 void CMemoryState::DumpAllObjectsSince(void)const 3146 CDumpContext & CDumpContext::DumpAsHex(__int64) 3147 CDumpContext & CDumpContext::DumpAsHex(unsigned __int64) 3148 CDumpContext & CDumpContext::DumpAsHex(unsigned char) 3149 CDumpContext & CDumpContext::DumpAsHex(unsigned short) 3150 CDumpContext & CDumpContext::DumpAsHex(int) 3151 CDumpContext & CDumpContext::DumpAsHex(unsigned int) 3152 CDumpContext & CDumpContext::DumpAsHex(long) 3153 CDumpContext & CDumpContext::DumpAsHex(unsigned long) 3154 void CRecordset::DumpFields(CDumpContext &)const 3155 void CMemoryState::DumpStatistics(void)const 3156 long COleControl::XDataObject::DUnadvise(unsigned long) 3157 long COleDataSource::XDataObject::DUnadvise(unsigned long) 3158 long COleServerDoc::XDataObject::DUnadvise(unsigned long) 3159 long COleServerItem::XDataObject::DUnadvise(unsigned long) 3160 CFile * CFile::Duplicate(void)const 3161 CFile * CInternetFile::Duplicate(void)const 3162 CFile * CMemFile::Duplicate(void)const 3163 CFile * COleStreamFile::Duplicate(void)const 3164 CFile * CSocketFile::Duplicate(void)const 3165 CFile * CStdioFile::Duplicate(void)const 3166 unsigned long const CEditView::dwStyleDefault 3167 void CDaoRecordset::Edit(void) 3168 void CRecordset::Edit(void) 3169 int CHeaderCtrl::EditFilter(int,int) 3170 CEdit * CListCtrl::EditLabel(int) 3171 CEdit * CTreeCtrl::EditLabel(_TREEITEM *) 3172 long COlePropertyPage::XPropertyPage::EditProperty(long) 3173 unsigned long CRichEditView::EditStreamCallBack(unsigned long,unsigned char *,long,long *) 3174 unsigned char & CByteArray::ElementAt(int) 3175 unsigned long & CDWordArray::ElementAt(int) 3176 CObject * & CObArray::ElementAt(int) 3177 void * & CPtrArray::ElementAt(int) 3178 ATL::CStringT > > & CStringArray::ElementAt(int) 3179 unsigned int & CUIntArray::ElementAt(int) 3180 unsigned short & CWordArray::ElementAt(int) 3181 int CDC::Ellipse(int,int,int,int) 3182 int CDC::Ellipse(tagRECT const *) 3183 void ATL::CSimpleStringT::Empty(void) 3184 void ATL::CSimpleStringT::Empty(void) 3185 void CDBException::Empty(void) 3186 void COleDataSource::Empty(void) 3187 void CEdit::EmptyUndoBuffer(void) 3188 void CRichEditCtrl::EmptyUndoBuffer(void) 3189 void CCheckListBox::Enable(int,int) 3190 void CCmdUI::Enable(int) 3191 void COleCmdUI::Enable(int) 3192 void CStatusCmdUI::Enable(int) 3193 void CTestCmdUI::Enable(int) 3194 void CToolCmdUI::Enable(int) 3195 int CWinApp::Enable3dControls(void) 3196 void CWnd::EnableActiveAccessibility(void) 3197 void CCmdTarget::EnableAggregation(void) 3198 void CCmdTarget::EnableAutomation(void) 3199 void CRecordset::EnableBookmarks(void) 3200 void COleMessageFilter::EnableBusyDialog(int) 3201 int CToolBarCtrl::EnableButton(int,int) 3202 void COleDocument::EnableCompoundFile(int) 3203 void CCmdTarget::EnableConnections(void) 3204 void CControlBar::EnableDocking(unsigned long) 3205 void CFrameWnd::EnableDocking(unsigned long) 3206 void CReBar::EnableDocking(unsigned long) 3207 void CStatusBar::EnableDocking(unsigned long) 3208 void COleControlSite::EnableDSC(void) 3209 void CWinApp::EnableHtmlHelp(void) 3210 unsigned int CMenu::EnableMenuItem(unsigned int,unsigned int) 3211 long CBrowserControlSite::EnableModeless(int) 3212 long CDHtmlDialog::EnableModeless(int) 3213 void CWinApp::EnableModeless(int) 3214 long CHtmlControlSite::XDocHostUIHandler::EnableModeless(int) 3215 long COleControl::XOleInPlaceActiveObject::EnableModeless(int) 3216 long COleServerDoc::XOleInPlaceActiveObject::EnableModeless(int) 3217 long COleFrameHook::XOleInPlaceFrame::EnableModeless(int) 3218 long COleControlContainer::XOleIPFrame::EnableModeless(int) 3219 void COleMessageFilter::EnableNotRespondingDialog(int) 3220 int CScrollBar::EnableScrollBar(unsigned int) 3221 int CWnd::EnableScrollBar(int,unsigned int) 3222 void CWnd::EnableScrollBarCtrl(int,int) 3223 void CWinApp::EnableShellOpen(void) 3224 void COleControl::EnableSimpleFrame(void) 3225 void CPropertySheet::EnableStackedTabs(int) 3226 int CInternetSession::EnableStatusCallback(int) 3227 int CWnd::EnableToolTips(int) 3228 int CWnd::EnableTrackingToolTips(int) 3229 void CCmdTarget::EnableTypeLib(void) 3230 int COleControlSite::EnableWindow(int) 3231 int CWnd::EnableWindow(int) 3232 void COleMessageFilter::EndBusyState(void) 3233 void CAsyncMonikerFile::EndCallbacks(void) 3234 long COleLinkingDoc::EndDeferErrors(long) 3235 void CDialog::EndDialog(int) 3236 void CPropertyPage::EndDialog(int) 3237 void CPropertySheet::EndDialog(int) 3238 int CDC::EndDoc(void) 3239 void CDockContext::EndDrag(void) 3240 void CImageList::EndDrag(void) 3241 void CReBarCtrl::EndDrag(void) 3242 int CTreeCtrl::EndEditLabelNow(int) 3243 void CWnd::EndModalLoop(int) 3244 void CFrameWnd::EndModalState(void) 3245 void CWnd::EndModalState(void) 3246 int CDC::EndPage(void) 3247 void CWnd::EndPaint(tagPAINT*) 3248 int CDC::EndPath(void) 3249 int CHttpFile::EndRequest(unsigned long,_INTERNET_BUFFERSW *,unsigned long) 3250 void CDockContext::EndResize(void) 3251 void CCmdTarget::EndWaitCursor(void) 3252 void COleDataObject::EnsureClipboardObject(void) 3253 CFrameWnd * CWnd::EnsureParentFrame(void)const 3254 void CArchive::EnsureRead(void *,unsigned int) 3255 void CArchive::EnsureSchemaMapExists(CArray * *) 3256 long CWnd::EnsureStdObj(void) 3257 CWnd * CWnd::EnsureTopLevelParent(void)const 3258 int CListCtrl::EnsureVisible(int,int) 3259 int CTreeCtrl::EnsureVisible(_TREEITEM *) 3260 long CDocObjectServer::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3261 long COleControl::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3262 long COleServerDoc::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3263 long COleServerItem::XOleObject::EnumAdvise(IEnumSTATDATA * *) 3264 long COleControl::XOleCache::EnumCache(IEnumSTATDATA * *) 3265 int COlePropertyPage::EnumChildProc(HWND__ *,long) 3266 long COleConnPtContainer::EnumConnectionPoints(IEnumConnectionPoints * *) 3267 long CConnectionPoint::XConnPt::EnumConnections(IEnumConnections * *) 3268 int COlePropertyPage::EnumControls(HWND__ *,long) 3269 long COleControl::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3270 long COleDataSource::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3271 long COleServerDoc::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3272 long COleServerItem::XDataObject::EnumDAdvise(IEnumSTATDATA * *) 3273 long COleControl::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3274 long COleDataSource::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3275 long COleServerDoc::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3276 long COleServerItem::XDataObject::EnumFormatEtc(unsigned long,IEnumFORMATETC * *) 3277 int CDC::EnumObjects(int,int (__stdcall*)(void *,long),long) 3278 long COleControlContainer::XOleContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3279 long COleLinkingDoc::XOleItemContainer::EnumObjects(unsigned long,IEnumUnknown * *) 3280 int CCmdTarget::EnumOleVerbs(IEnumOLEVERB * *) 3281 long CDocObjectServer::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3282 long COleControl::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3283 long COleServerDoc::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3284 long COleServerItem::XOleObject::EnumVerbs(IEnumOLEVERB * *) 3285 long CDocObjectServer::XOleDocument::EnumViews(IEnumOleDocumentViews * *,IOleDocumentView * *) 3286 int CRgn::EqualRgn(CRgn const *)const 3287 void CControlBar::EraseNonClient(void) 3288 int CFileException::ErrnoToException(int) 3289 unsigned long CHttpFile::ErrorDlg(CWnd *,unsigned long,unsigned long,void * *) 3290 int CDC::Escape(int,int,char const *,int,char *) 3291 int CDC::Escape(int,int,char const *,void *) 3292 int CMetaFileDC::Escape(int,int,char const *,void *) 3293 int CPreviewDC::Escape(int,int,char const *,void *) 3294 int CArchivePropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3295 int CAsyncPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3296 int CPropbagPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3297 int CPropsetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3298 int CResetPropExchange::ExchangeBlobProp(wchar_t const *,void * *,void *) 3299 int COleControl::ExchangeExtent(CPropExchange *) 3300 int CArchivePropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3301 int CAsyncPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3302 int CPropbagPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3303 int CPropsetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3304 int CResetPropExchange::ExchangeFontProp(wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 3305 int CArchivePropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3306 int CAsyncPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3307 int CPropbagPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3308 int CPropsetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3309 int CResetPropExchange::ExchangePersistentProp(wchar_t const *,IUnknown * *,_GUID const &,IUnknown *) 3310 int CArchivePropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3311 int CAsyncPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3312 int CPropbagPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3313 int CPropsetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3314 int CResetPropExchange::ExchangeProp(wchar_t const *,unsigned short,void *,void const *) 3315 void COleControl::ExchangeStockProps(CPropExchange *) 3316 int CAsyncPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3317 int COleControl::ExchangeVersion(CPropExchange *,unsigned long,int) 3318 int CPropExchange::ExchangeVersion(unsigned long &,unsigned long,int) 3319 int CDC::ExcludeClipRect(int,int,int,int) 3320 int CDC::ExcludeClipRect(tagRECT const *) 3321 int CDC::ExcludeUpdateRgn(CWnd *) 3322 long CDocObjectServer::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3323 long COleFrameHook::XOleCommandTarget::Exec(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 3324 long COleDocObjectItem::ExecCommand(unsigned long,unsigned long,_GUID const *) 3325 long CHtmlView::ExecFormsCommand(unsigned long,tagVARIANT *,tagVARIANT *) 3326 int CHtmlEditView::ExecHandler(unsigned int) 3327 void CDaoDatabase::Execute(wchar_t const *,int) 3328 void CDaoQueryDef::Execute(int) 3329 int CWnd::ExecuteDlgInit(void *) 3330 int CWnd::ExecuteDlgInit(wchar_t const *) 3331 void CRecordset::ExecuteSetPosUpdate(void) 3332 void CDatabase::ExecuteSQL(wchar_t const *) 3333 void CRecordset::ExecuteUpdateSQL(void) 3334 void CHtmlView::ExecWB(enum OLECMDID,enum OLECMDEXECOPT,tagVARIANT *,tagVARIANT *) 3335 void CFrameWnd::ExitHelpMode(void) 3336 int COleControlModule::ExitInstance(void) 3337 int CWinApp::ExitInstance(void) 3338 int CWinThread::ExitInstance(void) 3339 int CTreeCtrl::Expand(_TREEITEM *,unsigned int) 3340 unsigned long CCmdTarget::ExternalAddRef(void) 3341 void CCmdTarget::ExternalDisconnect(void) 3342 unsigned long CCmdTarget::ExternalQueryInterface(void const *,void * *) 3343 unsigned long CCmdTarget::ExternalRelease(void) 3344 int CDC::ExtFloodFill(int,int,unsigned long,unsigned int) 3345 HICON__ * CImageList::ExtractIconW(int) 3346 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3347 int CDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3348 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,ATL::CStringT > > const &,int *) 3349 int CMetaFileDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3350 int CPreviewDC::ExtTextOutW(int,int,unsigned int,tagRECT const *,wchar_t const *,unsigned int,int *) 3351 void CDataExchange::Fail(void) 3352 long COleControlSite::XNotifyDBEvents::FailedToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 3353 short CRecordset::FetchData(unsigned short,long,unsigned long *) 3354 void CArchive::FillBuffer(unsigned int) 3355 void CDaoRecordset::FillCache(long *,COleVariant *) 3356 void CDaoWorkspace::FillDatabaseInfo(DAODatabase *,CDaoDatabaseInfo &,unsigned long) 3357 void CDaoException::FillErrorInfo(void) 3358 unsigned long CFontDialog::FillInLogFont(_charformatw const &) 3359 void CToolTipCtrl::FillInToolInfo(tagTOOLINFOW &,CWnd *,unsigned int)const 3360 int COleControlContainer::FillListSitesOrWnds(_AFX_OCC_DIALOG_INFO *) 3361 void CScrollView::FillOutsideRect(CDC *,CBrush *) 3362 void CDaoQueryDef::FillParameterInfo(DAOParameter *,CDaoParameterInfo &,unsigned long) 3363 int CDC::FillPath(void) 3364 void CDaoDatabase::FillQueryDefInfo(_DAOQueryDef *,CDaoQueryDefInfo &,unsigned long) 3365 void CDC::FillRect(tagRECT const *,CBrush *) 3366 void CDaoDatabase::FillRelationInfo(_DAORelation *,CDaoRelationInfo &,unsigned long) 3367 int CDC::FillRgn(CRgn *,CBrush *) 3368 void CDC::FillSolidRect(int,int,int,int,unsigned long) 3369 void CDC::FillSolidRect(tagRECT const *,unsigned long) 3370 void CDaoDatabase::FillTableDefInfo(_DAOTableDef *,CDaoTableDefInfo &,unsigned long) 3371 void CDaoFieldExchange::FillVariant(void *,unsigned long,COleVariant * *) 3372 void CDaoWorkspace::FillWorkspaceInfo(DAOWorkspace *,CDaoWorkspaceInfo &,unsigned long) 3373 long CBrowserControlSite::FilterDataObject(IDataObject *,IDataObject * *) 3374 long CDHtmlDialog::FilterDataObject(IDataObject *,IDataObject * *) 3375 long CHtmlControlSite::XDocHostUIHandler::FilterDataObject(IDataObject *,IDataObject * *) 3376 void CWnd::FilterToolTipMessage(tagMSG *) 3377 int ATL::CStringT > >::Find(wchar_t,int)const 3378 int ATL::CStringT > >::Find(wchar_t const *,int)const 3379 int ATL::CStringT > >::Find(char,int)const 3380 int ATL::CStringT > >::Find(char const *,int)const 3381 int CDaoRecordset::Find(long,wchar_t const *) 3382 __POSITION * CObList::Find(CObject *,__POSITION *)const 3383 __POSITION * CPtrList::Find(void *,__POSITION *)const 3384 __POSITION * CStringList::Find(wchar_t const *,__POSITION *)const 3385 long CRichEditView::FindAndSelect(unsigned long,_findtextexw &) 3386 int CDockBar::FindBar(CControlBar *,int) 3387 long COleConnPtContainer::FindConnectionPoint(_GUID const &,IConnectionPoint * *) 3388 int CDHtmlEventSink::FindDHtmlEventEntry(DHtmlEventMapEntry const *,long,IHTMLElement * *) 3389 int CFileFind::FindFile(wchar_t const *,unsigned long) 3390 int CFtpFileFind::FindFile(wchar_t const *,unsigned long) 3391 int CGopherFileFind::FindFile(CGopherLocator &,wchar_t const *,unsigned long) 3392 int CGopherFileFind::FindFile(wchar_t const *,unsigned long) 3393 int CDaoRecordset::FindFirst(wchar_t const *) 3394 __POSITION * CObList::FindIndex(int)const 3395 __POSITION * CPtrList::FindIndex(int)const 3396 __POSITION * CStringList::FindIndex(int)const 3397 int CListCtrl::FindItem(tagLVFINDINFOW *,int)const 3398 COleControlSite * COleControlContainer::FindItem(unsigned int)const 3399 int CDaoRecordset::FindLast(wchar_t const *) 3400 int CDaoRecordset::FindNext(wchar_t const *) 3401 int CFindReplaceDialog::FindNext(void)const 3402 int CFileFind::FindNextFileW(void) 3403 int CFtpFileFind::FindNextFileW(void) 3404 int CGopherFileFind::FindNextFileW(void) 3405 int ATL::CStringT > >::FindOneOf(wchar_t const *)const 3406 int ATL::CStringT > >::FindOneOf(char const *)const 3407 int CPreviewView::FindPageRect(CPoint &,unsigned int &) 3408 int CDaoRecordset::FindPrev(wchar_t const *) 3409 int CDHtmlDialog::FindSinkForObject(wchar_t const *) 3410 __POSITION * CWnd::FindSiteOrWnd(COleControlSiteOrWnd const *)const 3411 __POSITION * CWnd::FindSiteOrWndWithFocus(void)const 3412 wchar_t const * CRecordset::FindSQLToken(wchar_t const *,wchar_t const *) 3413 int CComboBox::FindString(int,wchar_t const *)const 3414 int CComboBoxEx::FindString(int,wchar_t const *)const 3415 int CListBox::FindString(int,wchar_t const *)const 3416 int CComboBox::FindStringExact(int,wchar_t const *)const 3417 int CListBox::FindStringExact(int,wchar_t const *)const 3418 int CRichEditView::FindTextSimple(_AFX_RICHEDIT_STATE *) 3419 int CRichEditView::FindTextSimple(wchar_t const *,int,int,int) 3420 int CEditView::FindTextW(wchar_t const *,int,int) 3421 long CRichEditCtrl::FindTextW(unsigned long,_findtextexw *)const 3422 int CRichEditView::FindTextW(_AFX_RICHEDIT_STATE *) 3423 int CRichEditView::FindTextW(wchar_t const *,int,int,int) 3424 CWnd * CWnd::FindWindowExW(HWND__ *,HWND__ *,wchar_t const *,wchar_t const *) 3425 CWnd * CWnd::FindWindowW(wchar_t const *,wchar_t const *) 3426 unsigned long CRichEditCtrl::FindWordBreak(unsigned int,unsigned long)const 3427 int COleClientItem::FinishCreate(long) 3428 void COleControl::FireClick(void) 3429 void COleControl::FireDblClick(void) 3430 void COleControl::FireError(long,wchar_t const *,unsigned int) 3431 void COleControl::FireEvent(long,unsigned char *,...) 3432 long COleControlSite::XNotifyDBEvents::FireEvent(unsigned long,unsigned long,tagDBNOTIFYREASON * const,enum DSCSTATE) 3433 void COleControl::FireEventV(long,unsigned char *,char *) 3434 void COleControl::FireKeyDown(unsigned short *,short) 3435 void COleControl::FireKeyPress(unsigned short *) 3436 void COleControl::FireKeyUp(unsigned short *,short) 3437 void COleControl::FireMouseDown(short,short,long,long) 3438 void COleControl::FireMouseMove(short,short,long,long) 3439 void COleControl::FireMouseUp(short,short,long,long) 3440 void COleControl::FireReadyStateChange(void) 3441 void CDaoRecordset::Fixup(void) 3442 void CRecordset::Fixups(void) 3443 int CWnd::FlashWindow(int) 3444 int CDC::FlattenPath(void) 3445 void CFrameWnd::FloatControlBar(CControlBar *,CPoint,unsigned long) 3446 int CDC::FloodFill(int,int,unsigned long) 3447 void CArchive::Flush(void) 3448 void CDumpContext::Flush(void) 3449 void CFile::Flush(void) 3450 void CInternetFile::Flush(void) 3451 void CMemFile::Flush(void) 3452 void CMonikerFile::Flush(void) 3453 void COleStreamFile::Flush(void) 3454 void CSocketFile::Flush(void) 3455 void CStdioFile::Flush(void) 3456 void COleDataSource::FlushClipboard(void) 3457 int CRecordset::FlushResultSet(void) 3458 int CEdit::FmtLines(int) 3459 void ATL::CSimpleStringT::Fork(int) 3460 void ATL::CSimpleStringT::Fork(int) 3461 void ATL::CStringT > >::Format(unsigned int,...) 3462 void ATL::CStringT > >::Format(wchar_t const *,...) 3463 void ATL::CStringT > >::Format(unsigned int,...) 3464 void ATL::CStringT > >::Format(char const *,...) 3465 ATL::CStringT > > COleCurrency::Format(unsigned long,unsigned long)const 3466 void ATL::CStringT > >::FormatMessage(unsigned int,...) 3467 void ATL::CStringT > >::FormatMessage(wchar_t const *,...) 3468 void ATL::CStringT > >::FormatMessage(unsigned int,...) 3469 void ATL::CStringT > >::FormatMessage(char const *,...) 3470 void ATL::CStringT > >::FormatMessageV(wchar_t const *,char * *) 3471 void ATL::CStringT > >::FormatMessageV(char const *,char * *) 3472 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 3473 void ATL::CStringT > >::FormatMessageW(wchar_t const *,...) 3474 void ATL::CStringT > >::FormatMessageW(unsigned int,...) 3475 void ATL::CStringT > >::FormatMessageW(char const *,...) 3476 long CRichEditCtrl::FormatRange(_formatrange *,int) 3477 void ATL::CStringT > >::FormatV(wchar_t const *,char *) 3478 void ATL::CStringT > >::FormatV(char const *,char *) 3479 void COleControl::ForwardActivationMsg(tagMSG *) 3480 void CDC::FrameRect(tagRECT const *,CBrush *) 3481 int CDC::FrameRgn(CRgn *,CBrush *,int,int) 3482 void CAfxStringMgr::Free(ATL::CStringData *) 3483 void CDatabase::Free(void) 3484 void CFixedAlloc::Free(void *) 3485 void CFixedAllocNoSync::Free(void *) 3486 void CMemFile::Free(unsigned char *) 3487 void CSharedFile::Free(unsigned char *) 3488 void CFixedAlloc::FreeAll(void) 3489 void CFixedAllocNoSync::FreeAll(void) 3490 void CMapPtrToPtr::FreeAssoc(CMapPtrToPtr::CAssoc *) 3491 void CMapPtrToWord::FreeAssoc(CMapPtrToWord::CAssoc *) 3492 void CMapStringToOb::FreeAssoc(CMapStringToOb::CAssoc *) 3493 void CMapStringToPtr::FreeAssoc(CMapStringToPtr::CAssoc *) 3494 void CMapStringToString::FreeAssoc(CMapStringToString::CAssoc *) 3495 void CMapWordToOb::FreeAssoc(CMapWordToOb::CAssoc *) 3496 void CMapWordToPtr::FreeAssoc(CMapWordToPtr::CAssoc *) 3497 void CDaoRecordset::FreeCache(void) 3498 void CRecordset::FreeDataCache(void) 3499 void CPlex::FreeDataChain(void) 3500 void ATL::CSimpleStringT::FreeExtra(void) 3501 void ATL::CSimpleStringT::FreeExtra(void) 3502 void CByteArray::FreeExtra(void) 3503 void CDWordArray::FreeExtra(void) 3504 void CObArray::FreeExtra(void) 3505 void CPtrArray::FreeExtra(void) 3506 void CStringArray::FreeExtra(void) 3507 void CUIntArray::FreeExtra(void) 3508 void CWordArray::FreeExtra(void) 3509 void CObList::FreeNode(CObList::CNode *) 3510 void CPtrList::FreeNode(CPtrList::CNode *) 3511 void CStringList::FreeNode(CStringList::CNode *) 3512 void CRecordset::FreeRowset(void) 3513 void CThreadSlotData::FreeSlot(int) 3514 void CProperty::FreeValue(void) 3515 long COleControl::XViewObject::Freeze(unsigned long,long,void *,unsigned long *) 3516 void COleControlContainer::FreezeAllEvents(int) 3517 void COleControlSite::FreezeEvents(int) 3518 long COleControl::XOleControl::FreezeEvents(int) 3519 int COleClientItem::FreezeLink(void) 3520 CAsyncSocket * CAsyncSocket::FromHandle(unsigned int) 3521 CBitmap * CBitmap::FromHandle(HBITMAP__ *) 3522 CBrush * CBrush::FromHandle(HBRUSH__ *) 3523 CDC * CDC::FromHandle(HDC__ *) 3524 CFont * CFont::FromHandle(HFONT__ *) 3525 CGdiObject * CGdiObject::FromHandle(void *) 3526 CObject * CHandleMap::FromHandle(void *) 3527 CImageList * CImageList::FromHandle(_IMAGELIST *) 3528 CMenu * CMenu::FromHandle(HMENU__ *) 3529 CPalette * CPalette::FromHandle(HPALETTE__ *) 3530 CPen * CPen::FromHandle(HPEN__ *) 3531 CRgn * CRgn::FromHandle(HRGN__ *) 3532 CSocket * CSocket::FromHandle(unsigned int) 3533 CWnd * CWnd::FromHandle(HWND__ *) 3534 CImageList * CImageList::FromHandlePermanent(_IMAGELIST *) 3535 CMenu * CMenu::FromHandlePermanent(HMENU__ *) 3536 CWnd * CWnd::FromHandlePermanent(HWND__ *) 3537 CCmdTarget * CCmdTarget::FromIDispatch(IDispatch *) 3538 CRuntime* CRuntimeClass::FromName(wchar_t const *) 3539 CRuntime* CRuntimeClass::FromName(char const *) 3540 void * CProperty::Get(unsigned long *) 3541 void * CProperty::Get(void) 3542 void * CPropertySection::Get(unsigned long) 3543 void * CPropertySection::Get(unsigned long,unsigned long *) 3544 void * CPropertySet::Get(_GUID,unsigned long) 3545 void * CPropertySet::Get(_GUID,unsigned long,unsigned long *) 3546 long CWnd::get_accChild(tagVARIANT,IDispatch * *) 3547 long CWnd::XAccessible::get_accChild(tagVARIANT,IDispatch * *) 3548 long CWnd::get_accChildCount(long *) 3549 long CWnd::XAccessible::get_accChildCount(long *) 3550 long CCheckListBox::get_accDefaultAction(tagVARIANT,wchar_t * *) 3551 long CWnd::get_accDefaultAction(tagVARIANT,wchar_t * *) 3552 long CWnd::XAccessible::get_accDefaultAction(tagVARIANT,wchar_t * *) 3553 long CWnd::get_accDescription(tagVARIANT,wchar_t * *) 3554 long CWnd::XAccessible::get_accDescription(tagVARIANT,wchar_t * *) 3555 long CWnd::get_accFocus(tagVARIANT *) 3556 long CWnd::XAccessible::get_accFocus(tagVARIANT *) 3557 long CWnd::get_accHelp(tagVARIANT,wchar_t * *) 3558 long CWnd::XAccessible::get_accHelp(tagVARIANT,wchar_t * *) 3559 long CWnd::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3560 long CWnd::XAccessible::get_accHelpTopic(wchar_t * *,tagVARIANT,long *) 3561 long CWnd::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3562 long CWnd::XAccessible::get_accKeyboardShortcut(tagVARIANT,wchar_t * *) 3563 long CToolBar::get_accName(tagVARIANT,wchar_t * *) 3564 long CWnd::get_accName(tagVARIANT,wchar_t * *) 3565 long CWnd::XAccessible::get_accName(tagVARIANT,wchar_t * *) 3566 long CWnd::get_accParent(IDispatch * *) 3567 long CWnd::XAccessible::get_accParent(IDispatch * *) 3568 long CCheckListBox::get_accRole(tagVARIANT,tagVARIANT *) 3569 long CWnd::get_accRole(tagVARIANT,tagVARIANT *) 3570 long CWnd::XAccessible::get_accRole(tagVARIANT,tagVARIANT *) 3571 long CWnd::get_accSelection(tagVARIANT *) 3572 long CWnd::XAccessible::get_accSelection(tagVARIANT *) 3573 long CCheckListBox::get_accState(tagVARIANT,tagVARIANT *) 3574 long CWnd::get_accState(tagVARIANT,tagVARIANT *) 3575 long CWnd::XAccessible::get_accState(tagVARIANT,tagVARIANT *) 3576 long CWnd::get_accValue(tagVARIANT,wchar_t * *) 3577 long CWnd::XAccessible::get_accValue(tagVARIANT,wchar_t * *) 3578 long CDaoRecordset::GetAbsolutePosition(void) 3579 unsigned int CSpinButtonCtrl::GetAccel(int,_UDACCEL *)const 3580 long CWnd::GetAccessibilityHitTest(long,long,tagVARIANT *) 3581 long CWnd::GetAccessibilityLocation(tagVARIANT,long *,long *,long *,long *) 3582 long CWnd::GetAccessibleChild(tagVARIANT,IDispatch * *) 3583 long CWnd::GetAccessibleChildCount(void) 3584 long CWnd::GetAccessibleName(tagVARIANT,wchar_t * *) 3585 unsigned long COleControl::GetActivationPolicy(void) 3586 long COleControl::XPointerInactive::GetActivationPolicy(unsigned long *) 3587 CDocument * CFrameWnd::GetActiveDocument(void) 3588 CFrameWnd * CFrameWnd::GetActiveFrame(void) 3589 CFrameWnd * CMDIFrameWnd::GetActiveFrame(void) 3590 int CPropertySheet::GetActiveIndex(void)const 3591 CPropertyPage * CPropertySheet::GetActivePage(void)const 3592 CWnd * CSplitterWnd::GetActivePane(int &,int &) 3593 CWnd * CSplitterWnd::GetActivePane(int *,int *) 3594 CView * CFrameWnd::GetActiveView(void)const 3595 CView * COleClientItem::GetActiveView(void)const 3596 IOleDocumentView * COleDocObjectItem::GetActiveView(void)const 3597 CRichEditView * CRichEditCntrItem::GetActiveView(void) 3598 CWnd * CWnd::GetActiveWindow(void) 3599 int CIPAddressCtrl::GetAddress(unsigned char &,unsigned char &,unsigned char &,unsigned char &)const 3600 int CIPAddressCtrl::GetAddress(unsigned long &)const 3601 int CHtmlView::GetAddressBar(void)const 3602 long COleControl::XViewObject::GetAdvise(unsigned long *,unsigned long *,IAdviseSink * *) 3603 int ATL::CSimpleStringT::GetAllocLength(void)const 3604 int ATL::CSimpleStringT::GetAllocLength(void)const 3605 COleDispatchDriver * COleControl::GetAmbientDispatchDriver(void) 3606 int COleControlContainer::GetAmbientProp(COleControlSite *,long,tagVARIANT *) 3607 int COleControl::GetAmbientProperty(long,unsigned short,void *) 3608 int CToolBarCtrl::GetAnchorHighlight(void)const 3609 int CListBox::GetAnchorIndex(void)const 3610 short COleControl::GetAppearance(void) 3611 IDispatch * CHtmlView::GetApplication(void)const 3612 HKEY__ * CWinApp::GetAppRegistryKey(void) 3613 int CDC::GetArcDirection(void)const 3614 CSize CDC::GetAspectRatioFilter(void)const 3615 CMapPtrToPtr::CAssoc * CMapPtrToPtr::GetAssocAt(void *,unsigned int &,unsigned int &)const 3616 CMapPtrToWord::CAssoc * CMapPtrToWord::GetAssocAt(void *,unsigned int &,unsigned int &)const 3617 CMapStringToOb::CAssoc * CMapStringToOb::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3618 CMapStringToPtr::CAssoc * CMapStringToPtr::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3619 CMapStringToString::CAssoc * CMapStringToString::GetAssocAt(wchar_t const *,unsigned int &,unsigned int &)const 3620 CMapWordToOb::CAssoc * CMapWordToOb::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3621 CMapWordToPtr::CAssoc * CMapWordToPtr::GetAssocAt(unsigned short,unsigned int &,unsigned int &)const 3622 wchar_t ATL::CSimpleStringT::GetAt(int)const 3623 char ATL::CSimpleStringT::GetAt(int)const 3624 unsigned char CByteArray::GetAt(int)const 3625 unsigned long CDWordArray::GetAt(int)const 3626 CObject * CObArray::GetAt(int)const 3627 CObject * & CObList::GetAt(__POSITION *) 3628 CObject const * CObList::GetAt(__POSITION *)const 3629 void * CPtrArray::GetAt(int)const 3630 void * & CPtrList::GetAt(__POSITION *) 3631 void const * CPtrList::GetAt(__POSITION *)const 3632 ATL::CStringT > > const & CStringArray::GetAt(int)const 3633 ATL::CStringT > > & CStringList::GetAt(__POSITION *) 3634 ATL::CStringT > > const & CStringList::GetAt(__POSITION *)const 3635 unsigned int CUIntArray::GetAt(int)const 3636 unsigned short CWordArray::GetAt(int)const 3637 int CGopherConnection::GetAttribute(CGopherLocator &,ATL::CStringT > >,ATL::CStringT > > &) 3638 long CDaoTableDef::GetAttributes(void) 3639 unsigned long COleControl::GetBackColor(void) 3640 void CReBarCtrl::GetBandBorders(unsigned int,tagRECT *)const 3641 unsigned int CReBarCtrl::GetBandCount(void)const 3642 int CReBarCtrl::GetBandInfo(unsigned int,tagREBARBANDINFOW *)const 3643 unsigned long CProgressCtrl::GetBarColor(void)const 3644 unsigned int CReBarCtrl::GetBarHeight(void)const 3645 void CControlBar::GetBarInfo(CControlBarInfo *) 3646 void CDockBar::GetBarInfo(CControlBarInfo *) 3647 int CReBarCtrl::GetBarInfo(tagREBARINFO *)const 3648 unsigned long CControlBar::GetBarStyle(void) 3649 unsigned int CSpinButtonCtrl::GetBase(void)const 3650 unsigned long CAsyncMonikerFile::GetBindInfo(void)const 3651 IBinding * CAsyncMonikerFile::GetBinding(void)const 3652 int CBitmap::GetBitmap(tagBITMAP *) 3653 HBITMAP__ * CButton::GetBitmap(void)const 3654 HBITMAP__ * CStatic::GetBitmap(void)const 3655 int CToolBarCtrl::GetBitmap(int)const 3656 unsigned long CBitmap::GetBitmapBits(unsigned long,void *)const 3657 CSize CBitmap::GetBitmapDimension(void)const 3658 unsigned int CToolBarCtrl::GetBitmapFlags(void)const 3659 int CHeaderCtrl::GetBitmapMargin(void)const 3660 unsigned long CDC::GetBkColor(void)const 3661 unsigned long CImageList::GetBkColor(void)const 3662 unsigned long CListCtrl::GetBkColor(void)const 3663 unsigned long CProgressCtrl::GetBkColor(void)const 3664 unsigned long CReBarCtrl::GetBkColor(void)const 3665 unsigned long CTreeCtrl::GetBkColor(void)const 3666 int CListCtrl::GetBkImage(tagLVBKIMAGEW *)const 3667 int CDC::GetBkMode(void)const 3668 void * CBlobProperty::GetBlob(void) 3669 COleVariant CDaoRecordset::GetBookmark(void) 3670 void CRecordset::GetBookmark(CDBVariant &) 3671 unsigned long CDatabase::GetBookmarkPersistence(void)const 3672 long COleFrameHook::XOleInPlaceFrame::GetBorder(tagRECT *) 3673 long COleControlContainer::XOleIPFrame::GetBorder(tagRECT *) 3674 CRect CControlBar::GetBorders(void)const 3675 int CStatusBarCtrl::GetBorders(int &,int &,int &)const 3676 int CStatusBarCtrl::GetBorders(int *)const 3677 short COleControl::GetBorderStyle(void) 3678 long CDataSourceControl::GetBoundClientRow(void) 3679 int CRecordset::GetBoundFieldIndex(void *) 3680 int CRecordset::GetBoundParamIndex(void *) 3681 unsigned int CDC::GetBoundsRect(tagRECT *,unsigned int) 3682 CPoint CDC::GetBrushOrg(void)const 3683 CSize CToolTipCtrl::GetBubbleSize(tagTOOLINFOW *)const 3684 CWnd * CSliderCtrl::GetBuddy(int)const 3685 CWnd * CSpinButtonCtrl::GetBuddy(void)const 3686 wchar_t * ATL::CSimpleStringT::GetBuffer(int) 3687 wchar_t * ATL::CSimpleStringT::GetBuffer(void) 3688 char * ATL::CSimpleStringT::GetBuffer(int) 3689 char * ATL::CSimpleStringT::GetBuffer(void) 3690 unsigned int CEditView::GetBufferLength(void)const 3691 unsigned int CFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3692 unsigned int CMemFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3693 unsigned int CSocketFile::GetBufferPtr(unsigned int,unsigned int,void * *,void * *) 3694 wchar_t * ATL::CSimpleStringT::GetBufferSetLength(int) 3695 char * ATL::CSimpleStringT::GetBufferSetLength(int) 3696 int CHtmlView::GetBusy(void)const 3697 int CToolBarCtrl::GetButton(int,_TBBUTTON *)const 3698 int CToolBarCtrl::GetButtonCount(void)const 3699 void CToolBar::GetButtonInfo(int,unsigned int &,unsigned int &,int &)const 3700 int CToolBarCtrl::GetButtonInfo(int,TBBUTTONINFOW *)const 3701 unsigned long CToolBarCtrl::GetButtonSize(void)const 3702 unsigned int CButton::GetButtonStyle(void)const 3703 unsigned int CToolBar::GetButtonStyle(int)const 3704 ATL::CStringT > > CToolBar::GetButtonText(int)const 3705 void CToolBar::GetButtonText(int,ATL::CStringT > > &)const 3706 void COleSafeArray::GetByteArray(CByteArray &) 3707 void COleVariant::GetByteArrayFromVariantArray(CByteArray &) 3708 unsigned short CPropertySet::GetByteOrder(void) 3709 int COleClientItem::GetCachedExtent(tagSIZE *,enum tagDVASPECT) 3710 AFX_DATACACHE_ENTRY * COleDataSource::GetCacheEntry(tagFORMATETC *,enum tagDATADIR) 3711 long CDaoRecordset::GetCacheSize(void) 3712 COleVariant CDaoRecordset::GetCacheStart(void) 3713 CDaoFieldCache * CDaoFieldExchange::GetCacheValue(CDaoRecordset *,void *) 3714 int CMonthCalCtrl::GetCalendarBorder(void)const 3715 int CMonthCalCtrl::GetCalendarCount(void)const 3716 int CMonthCalCtrl::GetCalendarGridInfo(tagMCGRIDINFO *)const 3717 unsigned long CMonthCalCtrl::GetCalID(void)const 3718 unsigned int CListCtrl::GetCallbackMask(void)const 3719 long COleControl::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3720 long COleDataSource::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3721 long COleServerDoc::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3722 long COleServerItem::XDataObject::GetCanonicalFormatEtc(tagFORMATETC *,tagFORMATETC *) 3723 CWnd * COleControl::GetCapture(void) 3724 CWnd * CWnd::GetCapture(void) 3725 long COleControlSite::XOleIPSite::GetCapture(void) 3726 int CListBox::GetCaretIndex(void)const 3727 CPoint CWnd::GetCaretPos(void) 3728 void CSliderCtrl::GetChannelRect(tagRECT *)const 3729 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABC *)const 3730 int CDC::GetCharABCWidthsW(unsigned int,unsigned int,_ABCFLOAT *)const 3731 unsigned long CDC::GetCharacterPlacementW(ATL::CStringT > > &,int,tagGCP_RESULTSW *,unsigned long)const 3732 unsigned long CDC::GetCharacterPlacementW(wchar_t const *,int,int,tagGCP_RESULTSW *,unsigned long)const 3733 void CFontDialog::GetCharFormat(_charformatw &)const 3734 CHARFORMAT2W & CRichEditView::GetCharFormatSelection(void) 3735 CPoint CRichEditCtrl::GetCharPos(long)const 3736 int CDC::GetCharWidthW(unsigned int,unsigned int,int *)const 3737 int CDC::GetCharWidthW(unsigned int,unsigned int,float *)const 3738 int CButton::GetCheck(void)const 3739 int CCheckListBox::GetCheck(int) 3740 int CListCtrl::GetCheck(int)const 3741 int CTreeCtrl::GetCheck(_TREEITEM *)const 3742 int CWnd::GetCheckedRadioButton(int,int)const 3743 unsigned int CCheckListBox::GetCheckStyle(void) 3744 _TREEITEM * CTreeCtrl::GetChildItem(_TREEITEM *)const 3745 long CBlobProperty::GetClassID(_GUID *) 3746 void COleClientItem::GetClassID(_GUID *)const 3747 _GUID const & COleConvertDialog::GetClassID(void)const 3748 _GUID const & COleInsertDialog::GetClassID(void)const 3749 _GUID const & COleObjectFactory::GetClassID(void)const 3750 _GUID CPropertySet::GetClassID(void) 3751 long COleLinkingDoc::XPersistFile::GetClassID(_GUID *) 3752 long COleControl::XPersistMemory::GetClassID(_GUID *) 3753 long COleControl::XPersistPropertyBag::GetClassID(_GUID *) 3754 long COleControl::XPersistStorage::GetClassID(_GUID *) 3755 long COleServerDoc::XPersistStorage::GetClassID(_GUID *) 3756 long COleControl::XPersistStreamInit::GetClassID(_GUID *) 3757 long COleControl::XProvideClassInfo::GetClassInfoW(ITypeInfo * *) 3758 long AFX_COM::GetClassObject(_GUID const &,_GUID const &,void * *) 3759 void COleControl::GetClientOffset(long *,long *)const 3760 void COleControl::GetClientRect(tagRECT *)const 3761 void CWnd::GetClientRect(tagRECT *)const 3762 IOleClientSite * COleClientItem::GetClientSite(void) 3763 IOleClientSite * COleControl::GetClientSite(void) 3764 IOleClientSite * COleServerDoc::GetClientSite(void)const 3765 IOleClientSite * CRichEditCntrItem::GetClientSite(void) 3766 long CDocObjectServer::XOleObject::GetClientSite(IOleClientSite * *) 3767 long COleControl::XOleObject::GetClientSite(IOleClientSite * *) 3768 long COleServerDoc::XOleObject::GetClientSite(IOleClientSite * *) 3769 long COleServerItem::XOleObject::GetClientSite(IOleClientSite * *) 3770 void COleClientItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3771 void COleServerItem::GetClipboardData(COleDataSource *,int,tagPOINT *,tagSIZE *) 3772 long CRichEditView::GetClipboardData(_charrange *,unsigned long,IDataObject *,IDataObject * *) 3773 long CDocObjectServer::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3774 long COleControl::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3775 long COleServerDoc::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3776 long COleServerItem::XOleObject::GetClipboardData(unsigned long,IDataObject * *) 3777 long CRichEditView::XRichEditOleCallback::GetClipboardData(_charrange *,unsigned long,IDataObject * *) 3778 COleDataSource * COleDataSource::GetClipboardOwner(void) 3779 CWnd * CWnd::GetClipboardOwner(void) 3780 CWnd * CWnd::GetClipboardViewer(void) 3781 int CDC::GetClipBox(tagRECT *)const 3782 int CMetaFileDC::GetClipBox(tagRECT *)const 3783 unsigned long CColorDialog::GetColor(void)const 3784 unsigned long CFontDialog::GetColor(void)const 3785 unsigned long CMonthCalCtrl::GetColor(int)const 3786 int CDC::GetColorAdjustment(tagCOLORADJUSTMENT *)const 3787 int CReBarCtrl::GetColorScheme(tagCOLORSCHEME *)const 3788 int CToolBarCtrl::GetColorScheme(tagCOLORSCHEME *)const 3789 long COleControl::XViewObject::GetColorSet(unsigned long,long,void *,tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 3790 int CListCtrl::GetColumn(int,tagLVCOLUMNW *)const 3791 int CSplitterWnd::GetColumnCount(void)const 3792 void CSplitterWnd::GetColumnInfo(int,int &,int &)const 3793 int CListCtrl::GetColumnOrderArray(int *,int)const 3794 int CListCtrl::GetColumnWidth(int)const 3795 CComboBox * CComboBoxEx::GetComboBoxCtrl(void)const 3796 AFX_OLECMDMAP const * CCmdTarget::GetCommandMap(void)const 3797 AFX_OLECMDMAP const * COleDocObjectItem::GetCommandMap(void)const 3798 ATL::CStringT > > CDaoDatabase::GetConnect(void) 3799 ATL::CStringT > > CDaoQueryDef::GetConnect(void) 3800 ATL::CStringT > > CDaoTableDef::GetConnect(void) 3801 ATL::CStringT > > const & CDatabase::GetConnect(void)const 3802 void CDatabase::GetConnectInfo(void) 3803 int CConnectionPoint::GetConnectionCount(void) 3804 IConnectionPoint * CCmdTarget::GetConnectionHook(_GUID const &) 3805 IConnectionPoint * COleControl::GetConnectionHook(_GUID const &) 3806 long CConnectionPoint::XConnPt::GetConnectionInterface(_GUID *) 3807 AFX_CONNECTIONMAP const * CCmdTarget::GetConnectionMap(void)const 3808 AFX_CONNECTIONMAP const * COleControl::GetConnectionMap(void)const 3809 long CConnectionPoint::XConnPt::GetConnectionPointContainer(IConnectionPointContainer * *) 3810 CPtrArray const * CConnectionPoint::GetConnections(void) 3811 IConnectionPointContainer * CConnectionPoint::GetContainer(void) 3812 IDispatch * CHtmlView::GetContainer(void)const 3813 IOleItemContainer * COleDocument::GetContainer(void) 3814 IOleItemContainer * COleLinkingDoc::GetContainer(void) 3815 long COleClientItem::XOleClientSite::GetContainer(IOleContainer * *) 3816 long COleControlSite::XOleClientSite::GetContainer(IOleContainer * *) 3817 long COleControl::XQuickActivate::GetContentExtent(tagSIZE *) 3818 unsigned long CInternetConnection::GetContext(void)const 3819 unsigned long CInternetFile::GetContext(void)const 3820 unsigned long CInternetSession::GetContext(void)const 3821 HMENU__ * CRichEditView::GetContextMenu(unsigned short,IOleObject *,_charrange *) 3822 long CRichEditView::XRichEditOleCallback::GetContextMenu(unsigned short,IOleObject *,_charrange *,HMENU__ * *) 3823 COleControl * CDataPathProperty::GetControl(void) 3824 CControlBar * CFrameWnd::GetControlBar(unsigned int) 3825 COleControlContainer * CWnd::GetControlContainer(void) 3826 long CDHtmlDialog::GetControlDispatch(wchar_t const *,IDispatch * *) 3827 unsigned long COleControl::GetControlFlags(void) 3828 void COleControlSite::GetControlInfo(void) 3829 long COleControl::XOleControl::GetControlInfo(tagCONTROLINFO *) 3830 COleDocIPFrameWnd * CDocObjectServer::GetControllingFrame(void)const 3831 IUnknown * CCmdTarget::GetControllingUnknown(void) 3832 tagVARIANT CDHtmlDialog::GetControlProperty(IDispatch *,long) 3833 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,wchar_t const *) 3834 tagVARIANT CDHtmlDialog::GetControlProperty(wchar_t const *,long) 3835 void COleControl::GetControlSize(int *,int *) 3836 int COlePropertyPage::GetControlStatus(unsigned int) 3837 IUnknown * CWnd::GetControlUnknown(void) 3838 long COlePropertiesDialog::XOleUIObjInfo::GetConvertInfo(unsigned long,_GUID *,unsigned short *,_GUID *,_GUID * *,unsigned int *) 3839 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,ATL::CStringT > > &) 3840 int CInternetSession::GetCookie(wchar_t const *,wchar_t const *,wchar_t *,unsigned long) 3841 unsigned long CInternetSession::GetCookieLength(wchar_t const *,wchar_t const *) 3842 int CPrintDialog::GetCopies(void)const 3843 int CPrintDialogEx::GetCopies(void)const 3844 int CByteArray::GetCount(void)const 3845 int CComboBox::GetCount(void)const 3846 int CControlBar::GetCount(void)const 3847 int CDWordArray::GetCount(void)const 3848 int CListBox::GetCount(void)const 3849 int CMapPtrToPtr::GetCount(void)const 3850 int CMapPtrToWord::GetCount(void)const 3851 int CMapStringToOb::GetCount(void)const 3852 int CMapStringToPtr::GetCount(void)const 3853 int CMapStringToString::GetCount(void)const 3854 int CMapWordToOb::GetCount(void)const 3855 int CMapWordToPtr::GetCount(void)const 3856 int CObArray::GetCount(void)const 3857 int CObList::GetCount(void)const 3858 unsigned long CPropertySection::GetCount(void) 3859 unsigned long CPropertySet::GetCount(void) 3860 int CPtrArray::GetCount(void)const 3861 int CPtrList::GetCount(void)const 3862 int CStringArray::GetCount(void)const 3863 int CStringList::GetCount(void)const 3864 unsigned int CTreeCtrl::GetCount(void)const 3865 int CUIntArray::GetCount(void)const 3866 int CWordArray::GetCount(void)const 3867 int CListCtrl::GetCountPerPage(void)const 3868 int CFileFind::GetCreationTime(ATL::CTime &)const 3869 int CFileFind::GetCreationTime(_FILETIME *)const 3870 int CGopherFileFind::GetCreationTime(ATL::CTime &)const 3871 int CGopherFileFind::GetCreationTime(_FILETIME *)const 3872 long COleLinkingDoc::XPersistFile::GetCurFile(wchar_t * *) 3873 int CTabCtrl::GetCurFocus(void)const 3874 CBitmap * CDC::GetCurrentBitmap(void)const 3875 CBrush * CDC::GetCurrentBrush(void)const 3876 int CFtpConnection::GetCurrentDirectoryAsURL(ATL::CStringT > > &)const 3877 int CFtpConnection::GetCurrentDirectoryAsURL(wchar_t *,unsigned long *)const 3878 int CFtpConnection::GetCurrentDirectoryW(ATL::CStringT > > &)const 3879 int CFtpConnection::GetCurrentDirectoryW(wchar_t *,unsigned long *)const 3880 CFont * CDC::GetCurrentFont(void)const 3881 void CFontDialog::GetCurrentFont(tagLOGFONTW *) 3882 ATL::CStringT > > CDaoRecordset::GetCurrentIndex(void) 3883 tagMSG const * CWnd::GetCurrentMessage(void) 3884 CPalette * CDC::GetCurrentPalette(void)const 3885 CPen * CDC::GetCurrentPen(void)const 3886 CPoint CDC::GetCurrentPosition(void)const 3887 int CToolTipCtrl::GetCurrentTool(tagTOOLINFOW *)const 3888 void CDHtmlDialog::GetCurrentUrl(ATL::CStringT > > &) 3889 unsigned long CMonthCalCtrl::GetCurrentView(void)const 3890 int CComboBox::GetCurSel(void)const 3891 int CListBox::GetCurSel(void)const 3892 int CMonthCalCtrl::GetCurSel(ATL::COleDateTime &)const 3893 int CMonthCalCtrl::GetCurSel(ATL::CTime &)const 3894 int CMonthCalCtrl::GetCurSel(_SYSTEMTIME *)const 3895 int CTabCtrl::GetCurSel(void)const 3896 HICON__ * CButton::GetCursor(void) 3897 IUnknown * CDataBoundProperty::GetCursor(void) 3898 IUnknown * CDataSourceControl::GetCursor(void) 3899 long COleControlSite::GetCursor(long,IUnknown * *,void * *) 3900 HICON__ * CStatic::GetCursor(void) 3901 long COleControlSite::XBoundObjectSite::GetCursor(long,ICursor * *,void * *) 3902 int CDatabase::GetCursorCommitBehavior(void)const 3903 int CDatabase::GetCursorRollbackBehavior(void)const 3904 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 3905 ATL::CStringData * ATL::CSimpleStringT::GetData(void)const 3906 unsigned char * CByteArray::GetData(void) 3907 unsigned char const * CByteArray::GetData(void)const 3908 unsigned long * CDWordArray::GetData(void) 3909 unsigned long const * CDWordArray::GetData(void)const 3910 CObject * * CObArray::GetData(void) 3911 CObject const * * CObArray::GetData(void)const 3912 int COleDataObject::GetData(unsigned short,tagSTGMEDIUM *,tagFORMATETC *) 3913 CNoTrackObject * CProcessLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 3914 void * * CPtrArray::GetData(void) 3915 void const * * CPtrArray::GetData(void)const 3916 long CRecordset::GetData(CDatabase *,void *,short,short,void *,long,short) 3917 ATL::CStringT > > * CStringArray::GetData(void) 3918 ATL::CStringT > > const * CStringArray::GetData(void)const 3919 CNoTrackObject * CThreadLocalObject::GetData(CNoTrackObject * (__stdcall*)(void)) 3920 unsigned int * CUIntArray::GetData(void) 3921 unsigned int const * CUIntArray::GetData(void)const 3922 unsigned short * CWordArray::GetData(void) 3923 unsigned short const * CWordArray::GetData(void)const 3924 long COleControl::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3925 long COleDataSource::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3926 long COleServerDoc::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3927 long COleServerItem::XDataObject::GetData(tagFORMATETC *,tagSTGMEDIUM *) 3928 void CDaoRecordset::GetDataAndFixupNulls(void) 3929 short CDaoWorkspace::GetDatabaseCount(void) 3930 void CDaoWorkspace::GetDatabaseInfo(int,CDaoDatabaseInfo &,unsigned long) 3931 void CDaoWorkspace::GetDatabaseInfo(wchar_t const *,CDaoDatabaseInfo &,unsigned long) 3932 ATL::CStringT > > CDatabase::GetDatabaseName(void)const 3933 void * CRecordset::GetDataBuffer(CDBVariant &,short,long *,short,unsigned long) 3934 long COleControl::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3935 long COleDataSource::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3936 long COleServerDoc::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3937 long COleServerItem::XDataObject::GetDataHere(tagFORMATETC *,tagSTGMEDIUM *) 3938 CNoTrackObject * CThreadLocalObject::GetDataNA(void) 3939 IDataObject * COleServerItem::GetDataObject(void) 3940 COleControl::CControlDataSource * COleControl::GetDataSource(void) 3941 COleDataSource * COleServerItem::GetDataSource(void) 3942 ATL::COleDateTime CDaoQueryDef::GetDateCreated(void) 3943 ATL::COleDateTime CDaoRecordset::GetDateCreated(void) 3944 ATL::COleDateTime CDaoTableDef::GetDateCreated(void) 3945 ATL::COleDateTime CDaoQueryDef::GetDateLastUpdated(void) 3946 ATL::COleDateTime CDaoRecordset::GetDateLastUpdated(void) 3947 ATL::COleDateTime CDaoTableDef::GetDateLastUpdated(void) 3948 int CDateTimeCtrl::GetDateTimePickerInfo(tagDATETIMEPICKERINFO *)const 3949 CDC * COleControl::GetDC(tagRECT const *,unsigned long) 3950 CDC * CWnd::GetDC(void) 3951 long COleControlSite::XOleIPSite::GetDC(tagRECT const *,unsigned long,HDC__ * *) 3952 CDC * CWnd::GetDCEx(CRgn *,unsigned long) 3953 HACCEL__ * CDocument::GetDefaultAccelerator(void) 3954 HACCEL__ * CFrameWnd::GetDefaultAccelerator(void) 3955 HACCEL__ * COleServerDoc::GetDefaultAccelerator(void) 3956 unsigned long CRichEditCtrl::GetDefaultCharFormat(_charformatw &)const 3957 unsigned long CRichEditCtrl::GetDefaultCharFormat(CHARFORMAT2W &)const 3958 ATL::CStringT > > CRecordset::GetDefaultConnect(void) 3959 ATL::CStringT > > CDaoRecordset::GetDefaultDBName(void) 3960 short CRecordset::GetDefaultFieldType(short) 3961 unsigned int CMenu::GetDefaultItem(unsigned int,int) 3962 HMENU__ * CDocument::GetDefaultMenu(void) 3963 HMENU__ * COleServerDoc::GetDefaultMenu(void) 3964 int CPrintDialog::GetDefaults(void) 3965 int CPrintDialogEx::GetDefaults(void) 3966 ATL::CStringT > > CDaoRecordset::GetDefaultSQL(void) 3967 ATL::CStringT > > CRecordset::GetDefaultSQL(void) 3968 unsigned long COccManager::GetDefBtnCode(CWnd *) 3969 unsigned long COleControlSite::GetDefBtnCode(void) 3970 unsigned long CDialog::GetDefID(void)const 3971 int CToolTipCtrl::GetDelayTime(unsigned long)const 3972 int CDumpContext::GetDepth(void)const 3973 CWnd * CWnd::GetDescendantWindow(int,int)const 3974 CWnd * CWnd::GetDescendantWindow(HWND__ *,int,int) 3975 CWnd * CWnd::GetDesktopWindow(void) 3976 int CDC::GetDeviceCaps(int)const 3977 ATL::CStringT > > CPageSetupDialog::GetDeviceName(void)const 3978 ATL::CStringT > > CPrintDialog::GetDeviceName(void)const 3979 ATL::CStringT > > CPrintDialogEx::GetDeviceName(void)const 3980 CPoint CScrollView::GetDeviceScrollPosition(void)const 3981 void CScrollView::GetDeviceScrollSizes(int &,tagSIZE &,tagSIZE &,tagSIZE &)const 3982 _devicemodeW * CPageSetupDialog::GetDevMode(void)const 3983 _devicemodeW * CPrintDialog::GetDevMode(void)const 3984 _devicemodeW * CPrintDialogEx::GetDevMode(void)const 3985 unsigned int CHtmlEditView::GetDHtmlCommandMapping(unsigned int,int &,unsigned int &) 3986 long CDHtmlDialog::GetDHtmlDocument(IHTMLDocument2 * *) 3987 int CHtmlEditCtrl::GetDHtmlDocument(IHTMLDocument2 * *)const 3988 int CHtmlEditView::GetDHtmlDocument(IHTMLDocument2 * *)const 3989 DHtmlEventMapEntry const * GetDHtmlEventMap(void) 3990 DHtmlEventMapEntry const * CDHtmlDialog::GetDHtmlEventMap(void) 3991 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetDHtmlEventMap(void) 3992 unsigned long COleSafeArray::GetDim(void) 3993 CImageList * CToolBarCtrl::GetDisabledImageList(void)const 3994 int CCmdTarget::GetDispatchIID(_GUID *) 3995 int COleControl::GetDispatchIID(_GUID *) 3996 AFX_DISPMAP const * CCmdTarget::GetDispatchMap(void)const 3997 AFX_DISPMAP const * COleControlContainer::GetDispatchMap(void)const 3998 AFX_DISPMAP_ENTRY const * CCmdTarget::GetDispEntry(long) 3999 ATL::CStringT > > COleChangeSourceDialog::GetDisplayName(void) 4000 int CRecentFileList::GetDisplayName(ATL::CStringT > > &,int,wchar_t const *,int,int)const 4001 int CFontHolder::GetDisplayString(ATL::CStringT > > &) 4002 int CPictureHolder::GetDisplayString(ATL::CStringT > > &) 4003 long COleControl::XPerPropertyBrowsing::GetDisplayString(long,wchar_t * *) 4004 int COleControlSite::GetDlgCtrlID(void)const 4005 int CWnd::GetDlgCtrlID(void)const 4006 CWnd * COleControlContainer::GetDlgItem(int)const 4007 void COleControlContainer::GetDlgItem(int,HWND__ * *)const 4008 CWnd * CWnd::GetDlgItem(int)const 4009 void CWnd::GetDlgItem(int,HWND__ * *)const 4010 unsigned int COleControlContainer::GetDlgItemInt(int,int *,int)const 4011 unsigned int CWnd::GetDlgItemInt(int,int *,int)const 4012 int COleControlContainer::GetDlgItemTextW(int,wchar_t *,int)const 4013 int CWnd::GetDlgItemTextW(int,ATL::CStringT > > &)const 4014 int CWnd::GetDlgItemTextW(int,wchar_t *,int)const 4015 CFrameWnd * COleIPFrameWnd::GetDocFrame(void) 4016 CDockBar * CDockContext::GetDockBar(unsigned long) 4017 CControlBar * CDockBar::GetDockedControlBar(int)const 4018 int CDockBar::GetDockedCount(void)const 4019 int CDockBar::GetDockedVisibleCount(void)const 4020 CFrameWnd * CControlBar::GetDockingFrame(void)const 4021 void CFrameWnd::GetDockState(CDockState &)const 4022 long CDocObjectServer::XOleDocument::GetDocMiscStatus(unsigned long *) 4023 CDocObjectServer * COleServerDoc::GetDocObjectServer(IOleDocumentSite *) 4024 int CDocTemplate::GetDocString(ATL::CStringT > > &,enum CDocTemplate::DocStringIndex)const 4025 CDocTemplate * CDocument::GetDocTemplate(void)const 4026 CDocument * CDocItem::GetDocument(void)const 4027 COleDocument * COleClientItem::GetDocument(void)const 4028 COleServerDoc * COleServerItem::GetDocument(void)const 4029 CRichEditDoc * CRichEditCntrItem::GetDocument(void) 4030 CRichEditDoc * CRichEditView::GetDocument(void)const 4031 CDocument * CView::GetDocument(void)const 4032 long CDocObjectServer::XOleDocumentView::GetDocument(IUnknown * *) 4033 int CDocManager::GetDocumentCount(void) 4034 long CRichEditView::XRichEditOleCallback::GetDragDropEffect(int,unsigned long,unsigned long *) 4035 CImageList * CImageList::GetDragImage(tagPOINT *,tagPOINT *) 4036 enum tagDVASPECT COleClientItem::GetDrawAspect(void)const 4037 enum tagDVASPECT COleConvertDialog::GetDrawAspect(void)const 4038 enum tagDVASPECT COleInsertDialog::GetDrawAspect(void)const 4039 enum tagDVASPECT COlePasteSpecialDialog::GetDrawAspect(void)const 4040 ATL::CStringT > > CPageSetupDialog::GetDriverName(void)const 4041 ATL::CStringT > > CPrintDialog::GetDriverName(void)const 4042 ATL::CStringT > > CPrintDialogEx::GetDriverName(void)const 4043 _TREEITEM * CTreeCtrl::GetDropHilightItem(void)const 4044 void CComboBox::GetDroppedControlRect(tagRECT *)const 4045 int CComboBox::GetDroppedState(void)const 4046 int CComboBox::GetDroppedWidth(void)const 4047 long CBrowserControlSite::GetDropTarget(IDropTarget *,IDropTarget * *) 4048 long CDHtmlDialog::GetDropTarget(IDropTarget *,IDropTarget * *) 4049 IDropTarget * CReBarCtrl::GetDropTarget(void)const 4050 long CToolBarCtrl::GetDropTarget(IDropTarget * *)const 4051 long CHtmlControlSite::XDocHostUIHandler::GetDropTarget(IDropTarget *,IDropTarget * *) 4052 long COleControl::XOleInPlaceObject::GetDropTarget(IDropTarget * *) 4053 IUnknown * CWnd::GetDSCCursor(void) 4054 CEdit * CListCtrl::GetEditControl(void)const 4055 CEdit * CTreeCtrl::GetEditControl(void)const 4056 CEdit * CComboBoxEx::GetEditCtrl(void)const 4057 CEdit & CEditView::GetEditCtrl(void)const 4058 short CDaoRecordset::GetEditMode(void) 4059 unsigned long CComboBox::GetEditSel(void)const 4060 long CDHtmlDialog::GetElement(wchar_t const *,IDispatch * *,int *) 4061 long CDHtmlDialog::GetElement(wchar_t const *,IHTMLElement * *) 4062 void COleSafeArray::GetElement(long *,void *) 4063 wchar_t * CDHtmlDialog::GetElementHtml(wchar_t const *) 4064 long CDHtmlDialog::GetElementInterface(wchar_t const *,_GUID const &,void * *) 4065 tagVARIANT CDHtmlDialog::GetElementProperty(wchar_t const *,long) 4066 wchar_t * CDHtmlDialog::GetElementText(wchar_t const *) 4067 unsigned long COleSafeArray::GetElemSize(void) 4068 COleServerItem * COleServerDoc::GetEmbeddedItem(void) 4069 void COleClientItem::GetEmbeddedItemData(tagSTGMEDIUM *) 4070 void COleServerItem::GetEmbedSourceData(tagSTGMEDIUM *) 4071 int COleControl::GetEnabled(void) 4072 HENHMETAFILE__ * CStatic::GetEnhMetaFileW(void)const 4073 unsigned int CCmdTarget::GetEntryCount(AFX_DISPMAP const *) 4074 int CPalette::GetEntryCount(void) 4075 long CWnd::XAccessibleServer::GetEnumVariant(IEnumVARIANT * *) 4076 int ATL::CStringT > >::GetEnvironmentVariableW(wchar_t const *) 4077 int ATL::CStringT > >::GetEnvironmentVariableW(char const *) 4078 short CDaoException::GetErrorCount(void) 4079 void CDaoException::GetErrorInfo(int) 4080 int CArchiveException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4081 int CDaoException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4082 int CDBException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4083 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *) 4084 int CException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4085 int CFileException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4086 int CInternetException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4087 int COleDispatchException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4088 int COleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4089 int CSimpleException::GetErrorMessage(wchar_t *,unsigned int,unsigned int *)const 4090 long CDHtmlDialog::GetEvent(IHTMLEventObj * *) 4091 int COleControlSite::GetEventIID(_GUID *) 4092 AFX_EVENTMAP const * COleControl::GetEventMap(void)const 4093 AFX_EVENTMAP_ENTRY const * COleControl::GetEventMapEntry(wchar_t const *,long *)const 4094 DHtmlEventMapEntry const * CMultiPageDHtmlDialog::GetEventMapForUrl(wchar_t const *) 4095 long CRichEditCtrl::GetEventMask(void)const 4096 AFX_EVENTSINKMAP_ENTRY const * CCmdTarget::GetEventSinkEntry(unsigned int,AFX_EVENT *) 4097 AFX_EVENTSINKMAP const * CCmdTarget::GetEventSinkMap(void)const 4098 AFX_EVENTSINKMAP const * CDHtmlDialog::GetEventSinkMap(void)const 4099 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetEventSinkMap(void)const 4100 AFX_EVENTSINKMAP const * CHtmlView::GetEventSinkMap(void)const 4101 unsigned long COleControlSite::GetExStyle(void)const 4102 unsigned long CWnd::GetExStyle(void)const 4103 IDispatch * COleControl::GetExtendedControl(void) 4104 long COleControlSite::XOleControlSite::GetExtendedControl(IDispatch * *) 4105 unsigned long CComboBoxEx::GetExtendedStyle(void)const 4106 unsigned long CListCtrl::GetExtendedStyle(void)const 4107 unsigned long CReBarCtrl::GetExtendedStyle(void)const 4108 unsigned long CTabCtrl::GetExtendedStyle(void)const 4109 unsigned long CToolBarCtrl::GetExtendedStyle(void)const 4110 unsigned long CTreeCtrl::GetExtendedStyle(void)const 4111 int CComboBox::GetExtendedUI(void)const 4112 int COleClientItem::GetExtent(tagSIZE *,enum tagDVASPECT) 4113 long CDocObjectServer::XOleObject::GetExtent(unsigned long,tagSIZE *) 4114 long COleControl::XOleObject::GetExtent(unsigned long,tagSIZE *) 4115 long COleServerDoc::XOleObject::GetExtent(unsigned long,tagSIZE *) 4116 long COleServerItem::XOleObject::GetExtent(unsigned long,tagSIZE *) 4117 long COleControl::XViewObject::GetExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 4118 long CBrowserControlSite::GetExternal(IDispatch * *) 4119 long CDHtmlDialog::GetExternal(IDispatch * *) 4120 long CHtmlControlSite::XDocHostUIHandler::GetExternal(IDispatch * *) 4121 int CPen::GetExtLogPen(tagEXTLOGPEN *) 4122 int CCmdTarget::GetExtraConnectionPoints(CPtrArray *) 4123 int COleControl::GetExtraConnectionPoints(CPtrArray *) 4124 ATL::CStringT > > CFontDialog::GetFaceName(void)const 4125 short CDaoQueryDef::GetFieldCount(void) 4126 short CDaoRecordset::GetFieldCount(void) 4127 short CDaoTableDef::GetFieldCount(void) 4128 int CDaoRecordset::GetFieldIndex(void *) 4129 short CRecordset::GetFieldIndexByName(wchar_t const *) 4130 void CDaoQueryDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 4131 void CDaoQueryDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 4132 void CDaoRecordset::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 4133 void CDaoRecordset::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 4134 void CDaoTableDef::GetFieldInfo(int,CDaoFieldInfo &,unsigned long) 4135 void CDaoTableDef::GetFieldInfo(wchar_t const *,CDaoFieldInfo &,unsigned long) 4136 unsigned long CDaoRecordset::GetFieldLength(int) 4137 long * CRecordset::GetFieldLengthBuffer(unsigned long,int) 4138 unsigned char CRecordset::GetFieldStatus(unsigned long) 4139 COleVariant CDaoRecordset::GetFieldValue(int) 4140 COleVariant CDaoRecordset::GetFieldValue(wchar_t const *) 4141 void CDaoRecordset::GetFieldValue(int,COleVariant &) 4142 void CDaoRecordset::GetFieldValue(wchar_t const *,COleVariant &) 4143 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 4144 void CRecordset::GetFieldValue(short,ATL::CStringT > > &) 4145 void CRecordset::GetFieldValue(short,CDBVariant &,short) 4146 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 4147 void CRecordset::GetFieldValue(wchar_t const *,ATL::CStringT > > &) 4148 void CRecordset::GetFieldValue(wchar_t const *,CDBVariant &,short) 4149 CFile * CArchive::GetFile(void)const 4150 CFile * CDocument::GetFile(wchar_t const *,unsigned int,CFileException *) 4151 int CFtpConnection::GetFile(wchar_t const *,wchar_t const *,int,unsigned long,unsigned long,unsigned long) 4152 CFile * COleDataObject::GetFileData(unsigned short,tagFORMATETC *) 4153 ATL::CStringT > > CFileDialog::GetFileExt(void)const 4154 ATL::CStringT > > CFile::GetFileName(void)const 4155 ATL::CStringT > > CFileDialog::GetFileName(void)const 4156 ATL::CStringT > > CFileFind::GetFileName(void)const 4157 ATL::CStringT > > CGopherFileFind::GetFileName(void)const 4158 ATL::CStringT > > COleChangeSourceDialog::GetFileName(void) 4159 ATL::CStringT > > CFile::GetFilePath(void)const 4160 ATL::CStringT > > CFileFind::GetFilePath(void)const 4161 ATL::CStringT > > CGopherFileFind::GetFilePath(void)const 4162 ATL::CStringT > > CFile::GetFileTitle(void)const 4163 ATL::CStringT > > CFileDialog::GetFileTitle(void)const 4164 ATL::CStringT > > CFileFind::GetFileTitle(void)const 4165 ATL::CStringT > > CGopherFileFind::GetFileTitle(void)const 4166 int COleServerDoc::GetFileTypeString(ATL::CStringT > > &) 4167 ATL::CStringT > > CFileFind::GetFileURL(void)const 4168 ATL::CStringT > > CFtpFileFind::GetFileURL(void)const 4169 ATL::CStringT > > CGopherFileFind::GetFileURL(void)const 4170 ATL::CStringT > > CHttpFile::GetFileURL(void)const 4171 ATL::CStringT > > CFindReplaceDialog::GetFindString(void)const 4172 int CMonthCalCtrl::GetFirstDayOfWeek(int *)const 4173 __POSITION * CMultiDocTemplate::GetFirstDocPosition(void)const 4174 __POSITION * CSingleDocTemplate::GetFirstDocPosition(void)const 4175 __POSITION * CDocManager::GetFirstDocTemplatePosition(void)const 4176 __POSITION * CWinApp::GetFirstDocTemplatePosition(void)const 4177 CFrameWnd * COleDocument::GetFirstFrame(void) 4178 __POSITION * CListCtrl::GetFirstSelectedItemPosition(void)const 4179 __POSITION * CDocument::GetFirstViewPosition(void)const 4180 _TREEITEM * CTreeCtrl::GetFirstVisibleItem(void)const 4181 int CEdit::GetFirstVisibleLine(void)const 4182 int CRichEditCtrl::GetFirstVisibleLine(void)const 4183 CWnd * COleControl::GetFocus(void) 4184 CWnd * CWnd::GetFocus(void) 4185 long COleControlSite::XOleIPSite::GetFocus(void) 4186 int CHeaderCtrl::GetFocusedItem(void)const 4187 ATL::CStringT > > CFileDialog::GetFolderPath(void)const 4188 int CDialogTemplate::GetFont(ATL::CStringT > > &,unsigned short &)const 4189 int CDialogTemplate::GetFont(DLGTEMPLATE const *,ATL::CStringT > > &,unsigned short &) 4190 IFontDisp * COleControl::GetFont(void) 4191 CFont * CWnd::GetFont(void)const 4192 unsigned long CDC::GetFontData(unsigned long,unsigned long,void *,unsigned long)const 4193 IFontDisp * CFontHolder::GetFontDispatch(void) 4194 HFONT__ * CFontHolder::GetFontHandle(long,long) 4195 HFONT__ * CFontHolder::GetFontHandle(void) 4196 unsigned long CDC::GetFontLanguageInfo(void)const 4197 unsigned char * CDialogTemplate::GetFontSizeField(DLGTEMPLATE const *) 4198 void COleControl::GetFontTextMetrics(tagTEXTMETRICW *,CFontHolder &) 4199 unsigned long COleControl::GetForeColor(void) 4200 CWnd * CWnd::GetForegroundWindow(void) 4201 tagFORMATETC * CAsyncMonikerFile::GetFormatEtc(void)const 4202 _GUID CPropertySection::GetFormatID(void) 4203 unsigned short CPropertySet::GetFormatVersion(void) 4204 int CPrintDialog::GetFromPage(void)const 4205 unsigned int CPrintInfo::GetFromPage(void)const 4206 ATL::CStringT > > COleChangeSourceDialog::GetFromPrefix(void) 4207 CFtpConnection * CInternetSession::GetFtpConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short,int) 4208 ATL::CStringT > > CHtmlView::GetFullName(void)const 4209 int CHtmlView::GetFullScreen(void)const 4210 long CDHtmlControlSink::GetFuncInfoFromId(_GUID const &,long,unsigned long,ATL::_ATL_FUNC_INFO &) 4211 void * COleDataObject::GetGlobalData(unsigned short,tagFORMATETC *) 4212 unsigned long CDC::GetGlyphOutlineW(unsigned int,unsigned int,_GLYPHMETRICS *,unsigned long,void *,_MAT2 const *)const 4213 CGopherConnection * CInternetSession::GetGopherConnection(wchar_t const *,wchar_t const *,wchar_t const *,unsigned short) 4214 int CDC::GetGraphicsMode(void)const 4215 long COleControl::XProvideClassInfo::GetGUID(unsigned long,_GUID *) 4216 CBrush * CDC::GetHalftoneBrush(void) 4217 void * CEdit::GetHandle(void)const 4218 unsigned int CRectTracker::GetHandleMask(void)const 4219 void CRectTracker::GetHandleRect(int,CRect *)const 4220 int CRectTracker::GetHandleSize(tagRECT const *)const 4221 unsigned int CMapPtrToPtr::GetHashTableSize(void)const 4222 unsigned int CMapPtrToWord::GetHashTableSize(void)const 4223 unsigned int CMapStringToOb::GetHashTableSize(void)const 4224 unsigned int CMapStringToPtr::GetHashTableSize(void)const 4225 unsigned int CMapStringToString::GetHashTableSize(void)const 4226 unsigned int CMapWordToOb::GetHashTableSize(void)const 4227 unsigned int CMapWordToPtr::GetHashTableSize(void)const 4228 CObject * & CObList::GetHead(void) 4229 CObject const * CObList::GetHead(void)const 4230 void * & CPtrList::GetHead(void) 4231 void const * CPtrList::GetHead(void)const 4232 ATL::CStringT > > & CStringList::GetHead(void) 4233 ATL::CStringT > > const & CStringList::GetHead(void)const 4234 CHeaderCtrl * CListCtrl::GetHeaderCtrl(void)const 4235 __POSITION * CObList::GetHeadPosition(void)const 4236 __POSITION * CPtrList::GetHeadPosition(void)const 4237 __POSITION * CStringList::GetHeadPosition(void)const 4238 long CHtmlView::GetHeight(void)const 4239 CMenu * COleDocObjectItem::GetHelpMenu(unsigned int &) 4240 enum AFX_HELP_TYPE CWinApp::GetHelpMode(void) 4241 void CSplitterWnd::GetHitRect(int,CRect &) 4242 unsigned int CComboBox::GetHorizontalExtent(void)const 4243 int CListBox::GetHorizontalExtent(void)const 4244 long CBrowserControlSite::GetHostInfo(_DOCHOSTUIINFO *) 4245 long CDHtmlDialog::GetHostInfo(_DOCHOSTUIINFO *) 4246 long CHtmlControlSite::XDocHostUIHandler::GetHostInfo(_DOCHOSTUIINFO *) 4247 HICON__ * CListCtrl::GetHotCursor(void)const 4248 CImageList * CToolBarCtrl::GetHotImageList(void)const 4249 int CListCtrl::GetHotItem(void)const 4250 int CToolBarCtrl::GetHotItem(void)const 4251 unsigned long CHotKeyCtrl::GetHotKey(void)const 4252 void CHotKeyCtrl::GetHotKey(unsigned short &,unsigned short &)const 4253 ATL::CStringT > > CHotKeyCtrl::GetHotKeyName(void)const 4254 unsigned long CListCtrl::GetHoverTime(void)const 4255 IDispatch * CHtmlView::GetHtmlDocument(void)const 4256 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned short,wchar_t const *,wchar_t const *) 4257 CHttpConnection * CInternetSession::GetHttpConnection(wchar_t const *,unsigned long,unsigned short,wchar_t const *,wchar_t const *) 4258 unsigned int COleControl::GetHwnd(void) 4259 long CWnd::XAccessibleServer::GetHWND(HWND__ * *) 4260 HICON__ * CButton::GetIcon(void)const 4261 HICON__ * CStatic::GetIcon(void)const 4262 HICON__ * CStatusBarCtrl::GetIcon(int)const 4263 HICON__ * CWnd::GetIcon(int)const 4264 HICON__ * COleClientItem::GetIconFromRegistry(void)const 4265 HICON__ * COleClientItem::GetIconFromRegistry(_GUID &) 4266 void * COleChangeIconDialog::GetIconicMetafile(void)const 4267 void * COleClientItem::GetIconicMetafile(void) 4268 void * COleConvertDialog::GetIconicMetafile(void)const 4269 void * COleInsertDialog::GetIconicMetafile(void)const 4270 void * COlePasteSpecialDialog::GetIconicMetafile(void)const 4271 wchar_t const * CFrameWnd::GetIconWndClass(unsigned long,unsigned int) 4272 unsigned long CProperty::GetID(void) 4273 int CPropertySection::GetID(wchar_t const *,unsigned long *) 4274 IDataObject * COleDataObject::GetIDataObject(int) 4275 int CDateTimeCtrl::GetIdealSize(tagSIZE *)const 4276 IDispatch * CCmdTarget::GetIDispatch(int) 4277 long CDHtmlControlSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4278 long CDHtmlElementEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4279 long CDHtmlEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4280 long COleDispatchImpl::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4281 long CWnd::XAccessible::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4282 long COleControlSite::XAmbientProps::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4283 long COleControlSite::XEventSink::GetIDsOfNames(_GUID const &,wchar_t * *,unsigned int,unsigned long,long *) 4284 IFileDialogCustomize * CFileDialog::GetIFileDialogCustomize(void) 4285 IFileOpenDialog * CFileDialog::GetIFileOpenDialog(void) 4286 IFileSaveDialog * CFileDialog::GetIFileSaveDialog(void) 4287 _GUID const & COleControl::XEventConnPt::GetIID(void) 4288 int CImageList::GetImageCount(void)const 4289 int CImageList::GetImageInfo(int,_IMAGEINFO *)const 4290 CImageList * CComboBoxEx::GetImageList(void)const 4291 CImageList * CHeaderCtrl::GetImageList(int)const 4292 CImageList * CListCtrl::GetImageList(int)const 4293 CImageList * CReBarCtrl::GetImageList(void)const 4294 CImageList * CTabCtrl::GetImageList(void)const 4295 CImageList * CToolBarCtrl::GetImageList(void)const 4296 CImageList * CTreeCtrl::GetImageList(int)const 4297 unsigned int CTreeCtrl::GetIndent(void)const 4298 short CDaoRecordset::GetIndexCount(void) 4299 short CDaoTableDef::GetIndexCount(void) 4300 void CDaoRecordset::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 4301 void CDaoRecordset::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 4302 void CDaoTableDef::GetIndexInfo(int,CDaoIndexInfo &,unsigned long) 4303 void CDaoTableDef::GetIndexInfo(wchar_t const *,CDaoIndexInfo &,unsigned long) 4304 ATL::CStringT > > CDaoWorkspace::GetIniPath(void) 4305 COleClientItem * COleDocument::GetInPlaceActiveItem(CWnd *) 4306 COleClientItem * CRichEditDoc::GetInPlaceActiveItem(CWnd *) 4307 CRichEditCntrItem * CRichEditView::GetInPlaceActiveItem(void)const 4308 long CRichEditView::XRichEditOleCallback::GetInPlaceContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 4309 long COleIPFrameWnd::GetInPlaceDocFrame(IOleInPlaceUIWindow * *) 4310 long COleIPFrameWnd::GetInPlaceFrame(IOleInPlaceUIWindow * *) 4311 HMENU__ * COleIPFrameWnd::GetInPlaceMenu(void) 4312 long CDocObjectServer::XOleDocumentView::GetInPlaceSite(IOleInPlaceSite * *) 4313 CWnd * COleClientItem::GetInPlaceWindow(void) 4314 void CToolBarCtrl::GetInsertMark(TBINSERTMARK *)const 4315 unsigned long CToolBarCtrl::GetInsertMarkColor(void)const 4316 unsigned long CTreeCtrl::GetInsertMarkColor(void)const 4317 void CSplitterWnd::GetInsideRect(CRect &)const 4318 IUnknown * CCmdTarget::GetInterface(void const *) 4319 IUnknown * CBrowserControlSite::GetInterfaceHook(void const *) 4320 IUnknown * CCmdTarget::GetInterfaceHook(void const *) 4321 IUnknown * COleControl::GetInterfaceHook(void const *) 4322 IUnknown * COleServerDoc::GetInterfaceHook(void const *) 4323 AFX_INTERFACEMAP const * CCmdTarget::GetInterfaceMap(void)const 4324 AFX_INTERFACEMAP const * CDocObjectServer::GetInterfaceMap(void)const 4325 AFX_INTERFACEMAP const * CEnumConnections::GetInterfaceMap(void)const 4326 AFX_INTERFACEMAP const * CEnumConnPoints::GetInterfaceMap(void)const 4327 AFX_INTERFACEMAP const * CEnumFormatEtc::GetInterfaceMap(void)const 4328 AFX_INTERFACEMAP const * CEnumOleVerb::GetInterfaceMap(void)const 4329 AFX_INTERFACEMAP const * CEnumUnknown::GetInterfaceMap(void)const 4330 AFX_INTERFACEMAP const * CFileDialog::GetInterfaceMap(void)const 4331 AFX_INTERFACEMAP const * CHtmlControlSite::GetInterfaceMap(void)const 4332 AFX_INTERFACEMAP const * COleClientItem::GetInterfaceMap(void)const 4333 AFX_INTERFACEMAP const * COleControl::GetInterfaceMap(void)const 4334 AFX_INTERFACEMAP const * COleControlContainer::GetInterfaceMap(void)const 4335 AFX_INTERFACEMAP const * COleControlSite::GetInterfaceMap(void)const 4336 AFX_INTERFACEMAP const * COleDataSource::GetInterfaceMap(void)const 4337 AFX_INTERFACEMAP const * COleDocObjectItem::GetInterfaceMap(void)const 4338 AFX_INTERFACEMAP const * COleDropSource::GetInterfaceMap(void)const 4339 AFX_INTERFACEMAP const * COleDropTarget::GetInterfaceMap(void)const 4340 AFX_INTERFACEMAP const * COleFrameHook::GetInterfaceMap(void)const 4341 AFX_INTERFACEMAP const * COleLinkingDoc::GetInterfaceMap(void)const 4342 AFX_INTERFACEMAP const * COleMessageFilter::GetInterfaceMap(void)const 4343 AFX_INTERFACEMAP const * COleObjectFactory::GetInterfaceMap(void)const 4344 AFX_INTERFACEMAP const * COlePropertyPage::GetInterfaceMap(void)const 4345 AFX_INTERFACEMAP const * COleServerDoc::GetInterfaceMap(void)const 4346 AFX_INTERFACEMAP const * COleServerItem::GetInterfaceMap(void)const 4347 AFX_INTERFACEMAP const * CRichEditView::GetInterfaceMap(void)const 4348 AFX_INTERFACEMAP const * CWnd::GetInterfaceMap(void)const 4349 IRichEditOle * CRichEditCtrl::GetIRichEditOle(void)const 4350 int CDaoWorkspace::GetIsolateODBCTrans(void) 4351 int CComboBoxEx::GetItem(tagCOMBOBOXEXITEMW *) 4352 int CHeaderCtrl::GetItem(int,_HD_ITEMW *)const 4353 int CListCtrl::GetItem(tagLVITEMW *)const 4354 int CTabCtrl::GetItem(int,tagTCITEMW *)const 4355 int CTreeCtrl::GetItem(tagTVITEMW *)const 4356 void COleServerDoc::GetItemClipRect(tagRECT *)const 4357 int CHeaderCtrl::GetItemCount(void)const 4358 int CListCtrl::GetItemCount(void)const 4359 int CTabCtrl::GetItemCount(void)const 4360 unsigned long CComboBox::GetItemData(int)const 4361 unsigned long CListBox::GetItemData(int)const 4362 unsigned long CListCtrl::GetItemData(int)const 4363 unsigned long CTreeCtrl::GetItemData(_TREEITEM *)const 4364 void * CComboBox::GetItemDataPtr(int)const 4365 void * CListBox::GetItemDataPtr(int)const 4366 int CHeaderCtrl::GetItemDropDownRect(int,tagRECT *)const 4367 int CTreeCtrl::GetItemExpandedImageIndex(_TREEITEM *)const 4368 int CComboBox::GetItemHeight(int)const 4369 int CListBox::GetItemHeight(int)const 4370 short CTreeCtrl::GetItemHeight(void)const 4371 unsigned int CStatusBar::GetItemID(int)const 4372 unsigned int CToolBar::GetItemID(int)const 4373 int CTreeCtrl::GetItemImage(_TREEITEM *,int &,int &)const 4374 ATL::CStringT > > COleChangeSourceDialog::GetItemName(void) 4375 void COleClientItem::GetItemName(wchar_t *)const 4376 void COleClientItem::GetItemName(wchar_t *,unsigned int)const 4377 ATL::CStringT > > const & COleServerItem::GetItemName(void)const 4378 int CTreeCtrl::GetItemPartRect(_TREEITEM *,enum _TVITEMPART,tagRECT *) 4379 int CListCtrl::GetItemPosition(int,tagPOINT *)const 4380 void COleServerDoc::GetItemPosition(tagRECT *)const 4381 int CHeaderCtrl::GetItemRect(int,tagRECT *)const 4382 int CListBox::GetItemRect(int,tagRECT *)const 4383 int CListCtrl::GetItemRect(int,tagRECT *,unsigned int)const 4384 void CStatusBar::GetItemRect(int,tagRECT *)const 4385 int CTabCtrl::GetItemRect(int,tagRECT *)const 4386 void CToolBar::GetItemRect(int,tagRECT *)const 4387 int CToolBarCtrl::GetItemRect(int,tagRECT *)const 4388 int CTreeCtrl::GetItemRect(_TREEITEM *,tagRECT *,int)const 4389 int CListCtrl::GetItemSpacing(int,int *,int *)const 4390 unsigned int CListCtrl::GetItemState(int,unsigned int)const 4391 unsigned int COleClientItem::GetItemState(void)const 4392 unsigned long CTabCtrl::GetItemState(int,unsigned long)const 4393 unsigned int CTreeCtrl::GetItemState(_TREEITEM *,unsigned int)const 4394 unsigned int CTreeCtrl::GetItemStateEx(_TREEITEM *)const 4395 void COleClientItem::GetItemStorage(void) 4396 void COleClientItem::GetItemStorageCompound(void) 4397 void COleClientItem::GetItemStorageFlat(void) 4398 ATL::CStringT > > CListCtrl::GetItemText(int,int)const 4399 int CListCtrl::GetItemText(int,int,wchar_t *,int)const 4400 ATL::CStringT > > CTreeCtrl::GetItemText(_TREEITEM *)const 4401 int CDC::GetKerningPairsW(int,tagKERNINGPAIR *)const 4402 ATL::CStringT > > CHotKeyCtrl::GetKeyName(unsigned int,int) 4403 int CFileFind::GetLastAccessTime(ATL::CTime &)const 4404 int CFileFind::GetLastAccessTime(_FILETIME *)const 4405 int CGopherFileFind::GetLastAccessTime(ATL::CTime &)const 4406 int CGopherFileFind::GetLastAccessTime(_FILETIME *)const 4407 CWnd * CWnd::GetLastActivePopup(void)const 4408 int CAsyncSocket::GetLastError(void) 4409 unsigned int COleDialog::GetLastError(void)const 4410 COleVariant CDaoRecordset::GetLastModifiedBookmark(void) 4411 long COleClientItem::GetLastStatus(void)const 4412 long COleUILinkInfo::GetLastUpdate(unsigned long,_FILETIME *) 4413 _TREEITEM * CTreeCtrl::GetLastVisibleItem(void)const 4414 int CFileFind::GetLastWriteTime(ATL::CTime &)const 4415 int CFileFind::GetLastWriteTime(_FILETIME *)const 4416 int CGopherFileFind::GetLastWriteTime(ATL::CTime &)const 4417 int CGopherFileFind::GetLastWriteTime(_FILETIME *)const 4418 unsigned long CDC::GetLayout(void)const 4419 long CRecordset::GetLBFetchSize(long) 4420 void COleSafeArray::GetLBound(unsigned long,long *) 4421 long CRecordset::GetLBReallocSize(long) 4422 int CComboBox::GetLBText(int,wchar_t *)const 4423 void CComboBox::GetLBText(int,ATL::CStringT > > &)const 4424 int CComboBox::GetLBTextLen(int)const 4425 long CHtmlView::GetLeft(void)const 4426 int ATL::CSimpleStringT::GetLength(void)const 4427 int ATL::CSimpleStringT::GetLength(void)const 4428 unsigned __int64 CFile::GetLength(void)const 4429 unsigned __int64 CFileFind::GetLength(void)const 4430 unsigned __int64 CGopherFileFind::GetLength(void)const 4431 unsigned __int64 CInternetFile::GetLength(void)const 4432 unsigned __int64 CMemFile::GetLength(void)const 4433 unsigned __int64 COleStreamFile::GetLength(void)const 4434 unsigned __int64 CSocketFile::GetLength(void)const 4435 unsigned __int64 CStdioFile::GetLength(void)const 4436 int COleObjectFactory::GetLicenseKey(unsigned long,wchar_t * *) 4437 long COleObjectFactory::XClassFactory::GetLicInfo(tagLICINFO *) 4438 unsigned int CEdit::GetLimitText(void)const 4439 long CRichEditCtrl::GetLimitText(void)const 4440 int CEdit::GetLine(int,wchar_t *)const 4441 int CEdit::GetLine(int,wchar_t *,int)const 4442 int CRichEditCtrl::GetLine(int,wchar_t *)const 4443 int CRichEditCtrl::GetLine(int,wchar_t *,int)const 4444 unsigned long CTreeCtrl::GetLineColor(void)const 4445 int CEdit::GetLineCount(void)const 4446 int CRichEditCtrl::GetLineCount(void)const 4447 int CSliderCtrl::GetLineSize(void)const 4448 COleClientItem * COleUILinkInfo::GetLinkItem(unsigned long) 4449 long COleUILinkInfo::GetLinkSource(unsigned long,wchar_t * *,unsigned long *,wchar_t * *,wchar_t * *,int *,int *) 4450 int COleClientItem::GetLinkSourceData(tagSTGMEDIUM *) 4451 int COleServerItem::GetLinkSourceData(tagSTGMEDIUM *) 4452 enum tagOLEUPDATE COleClientItem::GetLinkUpdateOptions(void) 4453 long COleUILinkInfo::GetLinkUpdateOptions(unsigned long,unsigned long *) 4454 CPtrList * CPropertySection::GetList(void) 4455 CPtrList * CPropertySet::GetList(void) 4456 CListCtrl & CListView::GetListCtrl(void)const 4457 unsigned long CComboBox::GetLocale(void)const 4458 unsigned long CListBox::GetLocale(void)const 4459 ATL::CStringT > > CHtmlView::GetLocationName(void)const 4460 ATL::CStringT > > CHtmlView::GetLocationURL(void)const 4461 CGopherLocator CGopherFileFind::GetLocator(void)const 4462 int CGopherLocator::GetLocatorType(unsigned long &)const 4463 int CDaoRecordset::GetLockingMode(void) 4464 int CBrush::GetLogBrush(tagLOGBRUSH *) 4465 int CFont::GetLogFont(tagLOGFONTW *) 4466 short CDaoWorkspace::GetLoginTimeout(void) 4467 int CPen::GetLogPen(tagLOGPEN *) 4468 void CFieldExchange::GetLongBinaryData(int,CLongBinary &,long *) 4469 void CRecordset::GetLongBinaryDataAndCleanup(CDatabase *,void *,short,long,void * *,long,CDBVariant &,short) 4470 long CFieldExchange::GetLongBinarySize(int) 4471 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4472 void CRecordset::GetLongCharDataAndCleanup(CDatabase *,void *,short,long,void * *,long,ATL::CStringT > > &,short,short) 4473 CFrameWnd * COleIPFrameWnd::GetMainFrame(void) 4474 CWnd * CWinThread::GetMainWnd(void) 4475 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 4476 ATL::IAtlStringMgr * ATL::CSimpleStringT::GetManager(void)const 4477 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 4478 ATL::IAtlStringMgr * ATL::CStringT > >::GetManager(void)const 4479 int CDC::GetMapMode(void)const 4480 void CToolTipCtrl::GetMargin(tagRECT *)const 4481 unsigned long CEdit::GetMargins(void)const 4482 void CPageSetupDialog::GetMargins(tagRECT *,tagRECT *)const 4483 CRect CRichEditView::GetMargins(void)const 4484 int CConnectionPoint::GetMaxConnections(void) 4485 unsigned int CPrintInfo::GetMaxPage(void)const 4486 int CMonthCalCtrl::GetMaxSelCount(void)const 4487 int CToolBarCtrl::GetMaxSize(tagSIZE *)const 4488 int CToolBarCtrl::GetMaxTextRows(void)const 4489 int CToolTipCtrl::GetMaxTipWidth(void)const 4490 unsigned long CMonthCalCtrl::GetMaxTodayWidth(void)const 4491 CMDIFrameWnd * CMDIChildWnd::GetMDIFrame(void) 4492 CMenu * CFrameWnd::GetMenu(void)const 4493 CMenu * CWnd::GetMenu(void)const 4494 int CHtmlView::GetMenuBar(void)const 4495 int CFrameWnd::GetMenuBarInfo(long,long,tagMENUBARINFO *)const 4496 unsigned long CFrameWnd::GetMenuBarState(void)const 4497 unsigned long CFrameWnd::GetMenuBarVisibility(void)const 4498 unsigned long CMenu::GetMenuContextHelpId(void)const 4499 unsigned int CMenu::GetMenuItemCount(void)const 4500 unsigned int CMenu::GetMenuItemID(int)const 4501 int CMenu::GetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 4502 unsigned int CMenu::GetMenuState(unsigned int,unsigned int)const 4503 int CMenu::GetMenuStringW(unsigned int,ATL::CStringT > > &,unsigned int)const 4504 int CMenu::GetMenuStringW(unsigned int,wchar_t *,int,unsigned int)const 4505 CWnd * CFrameWnd::GetMessageBar(void) 4506 CWnd * CMDIChildWnd::GetMessageBar(void) 4507 AFX_MSGMAP const * CCheckListBox::GetMessageMap(void)const 4508 AFX_MSGMAP const * CCmdTarget::GetMessageMap(void)const 4509 AFX_MSGMAP const * CCommonDialog::GetMessageMap(void)const 4510 AFX_MSGMAP const * CControlBar::GetMessageMap(void)const 4511 AFX_MSGMAP const * CControlFrameWnd::GetMessageMap(void)const 4512 AFX_MSGMAP const * CCtrlView::GetMessageMap(void)const 4513 AFX_MSGMAP const * CDaoRecordView::GetMessageMap(void)const 4514 AFX_MSGMAP const * CDHtmlDialog::GetMessageMap(void)const 4515 AFX_MSGMAP const * CDialog::GetMessageMap(void)const 4516 AFX_MSGMAP const * CDialogBar::GetMessageMap(void)const 4517 AFX_MSGMAP const * CDockBar::GetMessageMap(void)const 4518 AFX_MSGMAP const * CDocObjectServer::GetMessageMap(void)const 4519 AFX_MSGMAP const * CDocument::GetMessageMap(void)const 4520 AFX_MSGMAP const * CEditView::GetMessageMap(void)const 4521 AFX_MSGMAP const * CFormView::GetMessageMap(void)const 4522 AFX_MSGMAP const * CFrameWnd::GetMessageMap(void)const 4523 AFX_MSGMAP const * CHtmlEditView::GetMessageMap(void)const 4524 AFX_MSGMAP const * CHtmlView::GetMessageMap(void)const 4525 AFX_MSGMAP const * CListCtrl::GetMessageMap(void)const 4526 AFX_MSGMAP const * CListView::GetMessageMap(void)const 4527 AFX_MSGMAP const * CMDIChildWnd::GetMessageMap(void)const 4528 AFX_MSGMAP const * CMDIFrameWnd::GetMessageMap(void)const 4529 AFX_MSGMAP const * CMiniDockFrameWnd::GetMessageMap(void)const 4530 AFX_MSGMAP const * CMiniFrameWnd::GetMessageMap(void)const 4531 AFX_MSGMAP const * COleControl::GetMessageMap(void)const 4532 AFX_MSGMAP const * COleDBRecordView::GetMessageMap(void)const 4533 AFX_MSGMAP const * COleDocIPFrameWnd::GetMessageMap(void)const 4534 AFX_MSGMAP const * COleIPFrameWnd::GetMessageMap(void)const 4535 AFX_MSGMAP const * COlePropertyPage::GetMessageMap(void)const 4536 AFX_MSGMAP const * COleResizeBar::GetMessageMap(void)const 4537 AFX_MSGMAP const * COleServerDoc::GetMessageMap(void)const 4538 AFX_MSGMAP const * CPreviewView::GetMessageMap(void)const 4539 AFX_MSGMAP const * CPrintDialog::GetMessageMap(void)const 4540 AFX_MSGMAP const * CPrintDialogEx::GetMessageMap(void)const 4541 AFX_MSGMAP const * CPropertyPage::GetMessageMap(void)const 4542 AFX_MSGMAP const * CPropertySheet::GetMessageMap(void)const 4543 AFX_MSGMAP const * CReBar::GetMessageMap(void)const 4544 AFX_MSGMAP const * CRecordView::GetMessageMap(void)const 4545 AFX_MSGMAP const * CRichEditView::GetMessageMap(void)const 4546 AFX_MSGMAP const * CScrollView::GetMessageMap(void)const 4547 AFX_MSGMAP const * CSocketWnd::GetMessageMap(void)const 4548 AFX_MSGMAP const * CSplitButton::GetMessageMap(void)const 4549 AFX_MSGMAP const * CSplitterWnd::GetMessageMap(void)const 4550 AFX_MSGMAP const * CStatusBar::GetMessageMap(void)const 4551 AFX_MSGMAP const * CTabCtrl::GetMessageMap(void)const 4552 AFX_MSGMAP const * CToolBar::GetMessageMap(void)const 4553 AFX_MSGMAP const * CToolBarCtrl::GetMessageMap(void)const 4554 AFX_MSGMAP const * CToolTipCtrl::GetMessageMap(void)const 4555 AFX_MSGMAP const * CTreeCtrl::GetMessageMap(void)const 4556 AFX_MSGMAP const * CTreeView::GetMessageMap(void)const 4557 AFX_MSGMAP const * CView::GetMessageMap(void)const 4558 AFX_MSGMAP const * CWinApp::GetMessageMap(void)const 4559 AFX_MSGMAP const * CWnd::GetMessageMap(void)const 4560 void CFrameWnd::GetMessageString(unsigned int,ATL::CStringT > > &)const 4561 void COleControl::GetMessageString(unsigned int,ATL::CStringT > > &)const 4562 long CDataSourceControl::GetMetaData(void) 4563 int COleControl::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4564 int COleServerItem::GetMetafileData(tagFORMATETC *,tagSTGMEDIUM *) 4565 unsigned int CPrintInfo::GetMinPage(void)const 4566 int CMonthCalCtrl::GetMinReqRect(tagRECT *)const 4567 long CDocObjectServer::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4568 long COleControl::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4569 long COleServerDoc::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4570 long COleServerItem::XOleObject::GetMiscStatus(unsigned long,unsigned long *) 4571 float CDC::GetMiterLimit(void)const 4572 int CEdit::GetModify(void)const 4573 int CRichEditCtrl::GetModify(void)const 4574 void CRectTracker::GetModifyPointers(int,int * *,int * *,int *,int *) 4575 IMoniker * CMonikerFile::GetMoniker(void)const 4576 IMoniker * COleDocument::GetMoniker(enum tagOLEGETMONIKER) 4577 IMoniker * COleLinkingDoc::GetMoniker(enum tagOLEGETMONIKER) 4578 IMoniker * COleServerDoc::GetMoniker(enum tagOLEGETMONIKER) 4579 IMoniker * COleServerItem::GetMoniker(enum tagOLEGETMONIKER) 4580 long COleClientItem::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4581 long COleControlSite::XOleClientSite::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4582 long CDocObjectServer::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4583 long COleControl::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4584 long COleServerDoc::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4585 long COleServerItem::XOleObject::GetMoniker(unsigned long,unsigned long,IMoniker * *) 4586 unsigned long CDateTimeCtrl::GetMonthCalColor(int)const 4587 CMonthCalCtrl * CDateTimeCtrl::GetMonthCalCtrl(void)const 4588 CFont * CDateTimeCtrl::GetMonthCalFont(void)const 4589 unsigned long CDateTimeCtrl::GetMonthCalStyle(void)const 4590 int CMonthCalCtrl::GetMonthDelta(void)const 4591 int CMonthCalCtrl::GetMonthRange(ATL::COleDateTime &,ATL::COleDateTime &,unsigned long)const 4592 int CMonthCalCtrl::GetMonthRange(ATL::CTime &,ATL::CTime &,unsigned long)const 4593 int CMonthCalCtrl::GetMonthRange(_SYSTEMTIME *,_SYSTEMTIME *,unsigned long)const 4594 ATL::CStringT > > CDaoDatabase::GetName(void) 4595 ATL::CStringT > > CDaoQueryDef::GetName(void) 4596 ATL::CStringT > > CDaoRecordset::GetName(void) 4597 ATL::CStringT > > CDaoTableDef::GetName(void) 4598 ATL::CStringT > > CDaoWorkspace::GetName(void) 4599 long COleControl::XViewObject::GetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 4600 unsigned long CDC::GetNearestColor(unsigned long)const 4601 unsigned int CPalette::GetNearestPaletteIndex(unsigned long)const 4602 unsigned long COleClientItem::GetNewItemNumber(void) 4603 long CRichEditView::XRichEditOleCallback::GetNewStorage(IStorage * *) 4604 CDataBoundProperty * CDataBoundProperty::GetNext(void) 4605 CObject * & CObList::GetNext(__POSITION * &) 4606 CObject const * CObList::GetNext(__POSITION * &)const 4607 void * & CPtrList::GetNext(__POSITION * &) 4608 void const * CPtrList::GetNext(__POSITION * &)const 4609 ATL::CStringT > > & CStringList::GetNext(__POSITION * &) 4610 ATL::CStringT > > const & CStringList::GetNext(__POSITION * &)const 4611 void CMapPtrToPtr::GetNextAssoc(__POSITION * &,void * &,void * &)const 4612 void CMapPtrToWord::GetNextAssoc(__POSITION * &,void * &,unsigned short &)const 4613 void CMapStringToOb::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,CObject * &)const 4614 void CMapStringToPtr::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,void * &)const 4615 void CMapStringToString::GetNextAssoc(__POSITION * &,ATL::CStringT > > &,ATL::CStringT > > &)const 4616 void CMapWordToOb::GetNextAssoc(__POSITION * &,unsigned short &,CObject * &)const 4617 void CMapWordToPtr::GetNextAssoc(__POSITION * &,unsigned short &,void * &)const 4618 COleClientItem * COleDocument::GetNextClientItem(__POSITION * &)const 4619 IUnknown * CConnectionPoint::GetNextConnection(__POSITION * &)const 4620 COleControlSiteOrWnd * CWnd::GetNextDlgGroupItem(COleControlSiteOrWnd *)const 4621 CWnd * CWnd::GetNextDlgGroupItem(CWnd *,int)const 4622 COleControlSiteOrWnd * CWnd::GetNextDlgTabItem(COleControlSiteOrWnd *,int)const 4623 CWnd * CWnd::GetNextDlgTabItem(CWnd *,int)const 4624 CDocument * CMultiDocTemplate::GetNextDoc(__POSITION * &)const 4625 CDocument * CSingleDocTemplate::GetNextDoc(__POSITION * &)const 4626 CDocTemplate * CDocManager::GetNextDocTemplate(__POSITION * &)const 4627 CDocTemplate * CWinApp::GetNextDocTemplate(__POSITION * &)const 4628 int COleDataObject::GetNextFormat(tagFORMATETC *) 4629 int CListCtrl::GetNextItem(int,int)const 4630 CDocItem * COleDocument::GetNextItem(__POSITION * &)const 4631 _TREEITEM * CTreeCtrl::GetNextItem(_TREEITEM *,unsigned int)const 4632 CDocItem * COleDocument::GetNextItemOfKind(__POSITION * &,CRuntime*)const 4633 unsigned long COleUILinkInfo::GetNextLink(unsigned long) 4634 ATL::CStringT > > CFileDialog::GetNextPathName(__POSITION * &)const 4635 int CListCtrl::GetNextSelectedItem(__POSITION * &)const 4636 COleServerItem * COleDocument::GetNextServerItem(__POSITION * &)const 4637 _TREEITEM * CTreeCtrl::GetNextSiblingItem(_TREEITEM *)const 4638 CView * CDocument::GetNextView(__POSITION * &)const 4639 _TREEITEM * CTreeCtrl::GetNextVisibleItem(_TREEITEM *)const 4640 CWnd * CWnd::GetNextWindow(unsigned int)const 4641 ATL::CStringData * CAfxStringMgr::GetNilString(void) 4642 CFindReplaceDialog * CFindReplaceDialog::GetNotifier(long) 4643 void CCmdTarget::GetNotSupported(void) 4644 void COleControl::GetNotSupported(void) 4645 unsigned int CListCtrl::GetNumberOfWorkAreas(void)const 4646 unsigned int CSliderCtrl::GetNumTics(void)const 4647 int CGdiObject::GetObject(int,void *)const 4648 ATL::CStringT > > CHttpFile::GetObject(void)const 4649 IDispatch * * COlePropertyPage::GetObjectArray(unsigned long *) 4650 void COleClientItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4651 void COleServerItem::GetObjectDescriptorData(tagPOINT *,tagSIZE *,tagSTGMEDIUM *) 4652 long COlePropertiesDialog::XOleUIObjInfo::GetObjectInfo(unsigned long,unsigned long *,wchar_t * *,wchar_t * *,wchar_t * *,wchar_t * *) 4653 unsigned int CArchive::GetObjectSchema(void) 4654 long COleLinkingDoc::XOleItemContainer::GetObjectStorage(wchar_t *,IBindCtx *,_GUID const &,void * *) 4655 unsigned int CGdiObject::GetObjectType(void)const 4656 int CGdiObject::GetObjectW(int,void *)const 4657 ATL::CStringT > > CHttpFile::GetObjectW(void)const 4658 long COleLinkingDoc::XOleItemContainer::GetObjectW(wchar_t *,unsigned long,IBindCtx *,_GUID const &,void * *) 4659 _AFX_OCC_DIALOG_INFO * CDialog::GetOccDialogInfo(void) 4660 _AFX_OCC_DIALOG_INFO * CFormView::GetOccDialogInfo(void) 4661 _AFX_OCC_DIALOG_INFO * CWnd::GetOccDialogInfo(void) 4662 short CRecordset::GetODBCFieldCount(void)const 4663 void CRecordset::GetODBCFieldInfo(short,CODBCFieldInfo &) 4664 void CRecordset::GetODBCFieldInfo(wchar_t const *,CODBCFieldInfo &) 4665 short CDaoQueryDef::GetODBCTimeout(void) 4666 int CHtmlView::GetOffline(void)const 4667 tagOFNW & CFileDialog::GetOFN(void) 4668 tagOFNW const & CFileDialog::GetOFN(void)const 4669 COleControlSite * CWnd::GetOleControlSite(unsigned int)const 4670 IOleObject * COleServerItem::GetOleObject(void) 4671 unsigned long COleSafeArray::GetOneDimSize(void) 4672 CWnd * CWnd::GetOpenClipboardWindow(void) 4673 int CDocManager::GetOpenDocumentCount(void) 4674 int CWinApp::GetOpenDocumentCount(void) 4675 long CBrowserControlSite::GetOptionKeyPath(wchar_t * *,unsigned long) 4676 long CDHtmlDialog::GetOptionKeyPath(wchar_t * *,unsigned long) 4677 long CHtmlControlSite::XDocHostUIHandler::GetOptionKeyPath(wchar_t * *,unsigned long) 4678 unsigned int CRichEditCtrl::GetOptions(void)const 4679 int CHeaderCtrl::GetOrderArray(int *,int)const 4680 int CListCtrl::GetOrigin(tagPOINT *)const 4681 unsigned long CPropertySet::GetOSVersion(void) 4682 CWnd * COleControl::GetOuterWindow(void)const 4683 unsigned int CDC::GetOutlineTextMetricsW(unsigned int,_OUTLINETEXTMETRICW *)const 4684 int CDC::GetOutputCharWidth(unsigned int,unsigned int,int *)const 4685 CSize CDC::GetOutputTabbedTextExtent(ATL::CStringT > > const &,int,int *)const 4686 CSize CDC::GetOutputTabbedTextExtent(wchar_t const *,int,int,int *)const 4687 CSize CDC::GetOutputTextExtent(ATL::CStringT > > const &)const 4688 CSize CDC::GetOutputTextExtent(wchar_t const *,int)const 4689 int CDC::GetOutputTextMetrics(tagTEXTMETRICW *)const 4690 int CHeaderCtrl::GetOverflowRect(tagRECT *)const 4691 CWnd * CWnd::GetOwner(void)const 4692 void CToolBarCtrl::GetPadding(int &,int &)const 4693 CPropertyPage * CPropertySheet::GetPage(int)const 4694 int COleDocObjectItem::GetPageCount(long *,long *) 4695 int CPropertySheet::GetPageCount(void)const 4696 int CPropertySheet::GetPageIndex(CPropertyPage *) 4697 long CDocObjectServer::XPrint::GetPageInfo(long *,long *) 4698 long COlePropertyPage::XPropertyPage::GetPageInfo(tagPROPPAGEINFO *) 4699 CRect CRichEditView::GetPageRect(void)const 4700 long COleControl::XSpecifyPropertyPages::GetPages(tagCAUUID *) 4701 IPropertyPageSite * COlePropertyPage::GetPageSite(void) 4702 int CSliderCtrl::GetPageSize(void)const 4703 CPalette * CReBarCtrl::GetPalette(void)const 4704 unsigned int CPalette::GetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *)const 4705 CWnd * CSplitterWnd::GetPane(int,int)const 4706 void CStatusBar::GetPaneInfo(int,unsigned int &,unsigned int &,int &)const 4707 unsigned int CStatusBar::GetPaneStyle(int)const 4708 ATL::CStringT > > CStatusBar::GetPaneText(int)const 4709 void CStatusBar::GetPaneText(int,ATL::CStringT > > &)const 4710 CSize CPageSetupDialog::GetPaperSize(void)const 4711 CSize CRichEditView::GetPaperSize(void)const 4712 unsigned long CRichEditCtrl::GetParaFormat(_paraformat &)const 4713 unsigned long CRichEditCtrl::GetParaFormat(PARAFORMAT2 &)const 4714 PARAFORMAT2 & CRichEditView::GetParaFormatSelection(void) 4715 short CDaoQueryDef::GetParameterCount(void) 4716 void CDaoQueryDef::GetParameterInfo(int,CDaoParameterInfo &,unsigned long) 4717 void CDaoQueryDef::GetParameterInfo(wchar_t const *,CDaoParameterInfo &,unsigned long) 4718 COleVariant CDaoQueryDef::GetParamValue(int) 4719 COleVariant CDaoQueryDef::GetParamValue(wchar_t const *) 4720 COleVariant CDaoRecordset::GetParamValue(int) 4721 COleVariant CDaoRecordset::GetParamValue(wchar_t const *) 4722 CWnd * CWnd::GetParent(void)const 4723 IDispatch * CHtmlView::GetParentBrowser(void)const 4724 CFrameWnd * CWnd::GetParentFrame(void)const 4725 _TREEITEM * CTreeCtrl::GetParentItem(_TREEITEM *)const 4726 CWnd * CWnd::GetParentOwner(void)const 4727 CSplitterWnd * CView::GetParentSplitter(CWnd const *,int) 4728 int CStatusBarCtrl::GetParts(int,int *)const 4729 wchar_t CEdit::GetPasswordChar(void)const 4730 int COlePasteSpecialDialog::GetPasteIndex(void)const 4731 ATL::CStringT > > CDataPathProperty::GetPath(void)const 4732 int CDC::GetPath(tagPOINT *,unsigned char *,int)const 4733 ATL::CStringT > > const & CDocument::GetPathName(void)const 4734 ATL::CStringT > > CFileDialog::GetPathName(void)const 4735 ATL::CStringT > > COleInsertDialog::GetPathName(void)const 4736 int CAsyncSocket::GetPeerName(ATL::CStringT > > &,unsigned int &) 4737 int CAsyncSocket::GetPeerName(sockaddr *,int *) 4738 float CDaoRecordset::GetPercentPosition(void) 4739 IPictureDisp * CPictureHolder::GetPictureDispatch(void) 4740 unsigned long CDC::GetPixel(int,int)const 4741 unsigned long CDC::GetPixel(tagPOINT)const 4742 int CDC::GetPolyFillMode(void)const 4743 ATL::CStringT > > CPageSetupDialog::GetPortName(void)const 4744 ATL::CStringT > > CPrintDialog::GetPortName(void)const 4745 ATL::CStringT > > CPrintDialogEx::GetPortName(void)const 4746 int CProgressCtrl::GetPos(void)const 4747 int CSliderCtrl::GetPos(void)const 4748 int CSpinButtonCtrl::GetPos(void)const 4749 int CSpinButtonCtrl::GetPos32(int *)const 4750 unsigned __int64 CFile::GetPosition(void)const 4751 unsigned __int64 CMemFile::GetPosition(void)const 4752 unsigned __int64 COleStreamFile::GetPosition(void)const 4753 unsigned __int64 CSocketFile::GetPosition(void)const 4754 unsigned __int64 CStdioFile::GetPosition(void)const 4755 long COleControl::XPerPropertyBrowsing::GetPredefinedStrings(long,tagCALPOLESTR *,tagCADWORD *) 4756 long COleControl::XPerPropertyBrowsing::GetPredefinedValue(long,unsigned long,tagVARIANT *) 4757 CObject * & CObList::GetPrev(__POSITION * &) 4758 CObject const * CObList::GetPrev(__POSITION * &)const 4759 void * & CPtrList::GetPrev(__POSITION * &) 4760 void const * CPtrList::GetPrev(__POSITION * &)const 4761 ATL::CStringT > > & CStringList::GetPrev(__POSITION * &) 4762 ATL::CStringT > > const & CStringList::GetPrev(__POSITION * &)const 4763 COleControlSiteOrWnd * CWnd::GetPrevDlgGroupItem(COleControlSiteOrWnd *)const 4764 _TREEITEM * CTreeCtrl::GetPrevSiblingItem(_TREEITEM *)const 4765 _TREEITEM * CTreeCtrl::GetPrevVisibleItem(_TREEITEM *)const 4766 COleClientItem * COleDocument::GetPrimarySelectedItem(CView *) 4767 COleClientItem * CRichEditDoc::GetPrimarySelectedItem(CView *) 4768 int COleClientItem::GetPrintDeviceInfo(IOleCache * *,tagDVTARGETDEVICE * *,unsigned long *) 4769 HDC__ * CPrintDialog::GetPrinterDC(void)const 4770 HDC__ * CPrintDialogEx::GetPrinterDC(void)const 4771 int CWinApp::GetPrinterDeviceDefaults(tagPDW *) 4772 CFont * CEditView::GetPrinterFont(void)const 4773 CRect CRichEditView::GetPrintRect(void)const 4774 int CRichEditView::GetPrintWidth(void)const 4775 long CAsyncMonikerFile::GetPriority(void)const 4776 void * CThemeHelper::GetProc(char const *,void *) 4777 int CWinApp::GetProfileBinary(wchar_t const *,wchar_t const *,unsigned char * *,unsigned int *) 4778 unsigned int CWinApp::GetProfileIntW(wchar_t const *,wchar_t const *,int) 4779 ATL::CStringT > > CWinApp::GetProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 4780 int COlePropertyPage::GetPropCheck(wchar_t const *,int *) 4781 COleVariant CHtmlView::GetProperty(wchar_t const *) 4782 int CHtmlView::GetProperty(wchar_t const *,ATL::CStringT > > &) 4783 void COleControlSite::GetProperty(long,unsigned short,void *)const 4784 void COleDispatchDriver::GetProperty(long,unsigned short,void *)const 4785 CProperty * CPropertySection::GetProperty(unsigned long) 4786 CProperty * CPropertySet::GetProperty(_GUID,unsigned long) 4787 void CWnd::GetProperty(long,unsigned short,void *)const 4788 int COlePropertyPage::GetPropIndex(wchar_t const *,int *) 4789 _GUID * COleControl::GetPropPageIDs(unsigned long &) 4790 int COlePropertyPage::GetPropRadio(wchar_t const *,int *) 4791 int COleControl::GetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 4792 int COlePropertyPage::GetPropText(wchar_t const *,unsigned char *) 4793 int COlePropertyPage::GetPropText(wchar_t const *,short *) 4794 int COlePropertyPage::GetPropText(wchar_t const *,int *) 4795 int COlePropertyPage::GetPropText(wchar_t const *,unsigned int *) 4796 int COlePropertyPage::GetPropText(wchar_t const *,long *) 4797 int COlePropertyPage::GetPropText(wchar_t const *,unsigned long *) 4798 int COlePropertyPage::GetPropText(wchar_t const *,float *) 4799 int COlePropertyPage::GetPropText(wchar_t const *,double *) 4800 int COlePropertyPage::GetPropText(wchar_t const *,ATL::CStringT > > *) 4801 _PROPSHEETPAGEW & CPropertyPage::GetPSP(void) 4802 _PROPSHEETPAGEW const & CPropertyPage::GetPSP(void)const 4803 int CRichEditCtrl::GetPunctuation(unsigned int,_punctuation *)const 4804 short CDaoDatabase::GetQueryDefCount(void) 4805 void CDaoDatabase::GetQueryDefInfo(int,CDaoQueryDefInfo &,unsigned long) 4806 void CDaoDatabase::GetQueryDefInfo(wchar_t const *,CDaoQueryDefInfo &,unsigned long) 4807 short CDaoDatabase::GetQueryTimeout(void) 4808 unsigned long CDateTimeCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4809 unsigned long CDateTimeCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4810 unsigned long CMonthCalCtrl::GetRange(_SYSTEMTIME *,_SYSTEMTIME *)const 4811 unsigned long CMonthCalCtrl::GetRange(ATL::COleDateTime *,ATL::COleDateTime *)const 4812 unsigned long CMonthCalCtrl::GetRange(ATL::CTime *,ATL::CTime *)const 4813 void CProgressCtrl::GetRange(int &,int &)const 4814 void CSliderCtrl::GetRange(int &,int &)const 4815 unsigned long CSpinButtonCtrl::GetRange(void)const 4816 void CSpinButtonCtrl::GetRange(int &,int &)const 4817 void CSpinButtonCtrl::GetRange32(int &,int &)const 4818 int CSliderCtrl::GetRangeMax(void)const 4819 int CSliderCtrl::GetRangeMin(void)const 4820 void * CProperty::GetRawValue(void) 4821 int CFileDialog::GetReadOnlyPref(void)const 4822 enum tagREADYSTATE CHtmlView::GetReadyState(void)const 4823 long COleControl::GetReadyState(void) 4824 CReBarCtrl & CReBar::GetReBarCtrl(void)const 4825 long CDaoRecordset::GetRecordCount(void) 4826 long CDaoTableDef::GetRecordCount(void) 4827 long CRecordset::GetRecordCount(void)const 4828 long CDaoDatabase::GetRecordsAffected(void) 4829 long CDaoQueryDef::GetRecordsAffected(void) 4830 void CEdit::GetRect(tagRECT *)const 4831 int CReBarCtrl::GetRect(unsigned int,tagRECT *)const 4832 void CRichEditCtrl::GetRect(tagRECT *)const 4833 int CStatusBarCtrl::GetRect(int,tagRECT *)const 4834 int CToolBarCtrl::GetRect(int,tagRECT *)const 4835 long CDocObjectServer::XOleDocumentView::GetRect(tagRECT *) 4836 long COleControl::XViewObject::GetRect(unsigned long,_RECTL *) 4837 int COleControl::GetRectInContainer(tagRECT *) 4838 enum _undonameid CRichEditCtrl::GetRedoName(void)const 4839 int CRgn::GetRegionData(_RGNDATA *,int)const 4840 int CHtmlView::GetRegisterAsBrowser(void)const 4841 int CHtmlView::GetRegisterAsDropTarget(void)const 4842 short CDaoDatabase::GetRelationCount(void) 4843 void CDaoDatabase::GetRelationInfo(int,CDaoRelationInfo &,unsigned long) 4844 void CDaoDatabase::GetRelationInfo(wchar_t const *,CDaoRelationInfo &,unsigned long) 4845 ATL::CStringT > > CFindReplaceDialog::GetReplaceString(void)const 4846 int CDaoQueryDef::GetReturnsRecords(void) 4847 int CRgn::GetRgnBox(tagRECT *)const 4848 CRichEditCtrl & CRichEditView::GetRichEditCtrl(void)const 4849 ATL::CStringT > > CFileFind::GetRoot(void)const 4850 ATL::CStringT > > CGopherFileFind::GetRoot(void)const 4851 _TREEITEM * CTreeCtrl::GetRootItem(void)const 4852 int CDC::GetROP2(void)const 4853 CFrameWnd * CCmdTarget::GetRoutingFrame(void) 4854 CFrameWnd * CCmdTarget::GetRoutingFrame_(void) 4855 CView * CCmdTarget::GetRoutingView(void) 4856 CView * CCmdTarget::GetRoutingView_(void) 4857 unsigned int CReBarCtrl::GetRowCount(void)const 4858 int CSplitterWnd::GetRowCount(void)const 4859 int CTabCtrl::GetRowCount(void)const 4860 unsigned int CReBarCtrl::GetRowHeight(unsigned int)const 4861 void CSplitterWnd::GetRowInfo(int,int &,int &)const 4862 int CToolBarCtrl::GetRows(void)const 4863 unsigned long CRecordset::GetRowsetSize(void)const 4864 unsigned long CRecordset::GetRowsFetched(void)const 4865 unsigned short CRecordset::GetRowStatus(unsigned short)const 4866 CRuntime* CAnimateCtrl::GetRuntimeClass(void)const 4867 CRuntime* CArchiveException::GetRuntimeClass(void)const 4868 CRuntime* CAsyncMonikerFile::GetRuntimeClass(void)const 4869 CRuntime* CAsyncSocket::GetRuntimeClass(void)const 4870 CRuntime* CBitmap::GetRuntimeClass(void)const 4871 CRuntime* CBitmapButton::GetRuntimeClass(void)const 4872 CRuntime* CBrush::GetRuntimeClass(void)const 4873 CRuntime* CButton::GetRuntimeClass(void)const 4874 CRuntime* CByteArray::GetRuntimeClass(void)const 4875 CRuntime* CCachedDataPathProperty::GetRuntimeClass(void)const 4876 CRuntime* CCheckListBox::GetRuntimeClass(void)const 4877 CRuntime* CClientDC::GetRuntimeClass(void)const 4878 CRuntime* CCmdTarget::GetRuntimeClass(void)const 4879 CRuntime* CColorDialog::GetRuntimeClass(void)const 4880 CRuntime* CComboBox::GetRuntimeClass(void)const 4881 CRuntime* CComboBoxEx::GetRuntimeClass(void)const 4882 CRuntime* CCommonDialog::GetRuntimeClass(void)const 4883 CRuntime* CControlBar::GetRuntimeClass(void)const 4884 CRuntime* CCriticalSection::GetRuntimeClass(void)const 4885 CRuntime* CCtrlView::GetRuntimeClass(void)const 4886 CRuntime* CDaoDatabase::GetRuntimeClass(void)const 4887 CRuntime* CDaoException::GetRuntimeClass(void)const 4888 CRuntime* CDaoQueryDef::GetRuntimeClass(void)const 4889 CRuntime* CDaoRecordset::GetRuntimeClass(void)const 4890 CRuntime* CDaoRecordView::GetRuntimeClass(void)const 4891 CRuntime* CDaoTableDef::GetRuntimeClass(void)const 4892 CRuntime* CDaoWorkspace::GetRuntimeClass(void)const 4893 CRuntime* CDatabase::GetRuntimeClass(void)const 4894 CRuntime* CDataPathProperty::GetRuntimeClass(void)const 4895 CRuntime* CDateTimeCtrl::GetRuntimeClass(void)const 4896 CRuntime* CDBException::GetRuntimeClass(void)const 4897 CRuntime* CDC::GetRuntimeClass(void)const 4898 CRuntime* CDHtmlDialog::GetRuntimeClass(void)const 4899 CRuntime* CDialog::GetRuntimeClass(void)const 4900 CRuntime* CDialogBar::GetRuntimeClass(void)const 4901 CRuntime* CDocItem::GetRuntimeClass(void)const 4902 CRuntime* CDockBar::GetRuntimeClass(void)const 4903 CRuntime* CDockState::GetRuntimeClass(void)const 4904 CRuntime* CDocManager::GetRuntimeClass(void)const 4905 CRuntime* CDocObjectServer::GetRuntimeClass(void)const 4906 CRuntime* CDocObjectServerItem::GetRuntimeClass(void)const 4907 CRuntime* CDocTemplate::GetRuntimeClass(void)const 4908 CRuntime* CDocument::GetRuntimeClass(void)const 4909 CRuntime* CDragListBox::GetRuntimeClass(void)const 4910 CRuntime* CDWordArray::GetRuntimeClass(void)const 4911 CRuntime* CDynLinkLibrary::GetRuntimeClass(void)const 4912 CRuntime* CEdit::GetRuntimeClass(void)const 4913 CRuntime* CEditView::GetRuntimeClass(void)const 4914 CRuntime* CEvent::GetRuntimeClass(void)const 4915 CRuntime* CException::GetRuntimeClass(void)const 4916 CRuntime* CFile::GetRuntimeClass(void)const 4917 CRuntime* CFileDialog::GetRuntimeClass(void)const 4918 CRuntime* CFileException::GetRuntimeClass(void)const 4919 CRuntime* CFileFind::GetRuntimeClass(void)const 4920 CRuntime* CFindReplaceDialog::GetRuntimeClass(void)const 4921 CRuntime* CFont::GetRuntimeClass(void)const 4922 CRuntime* CFontDialog::GetRuntimeClass(void)const 4923 CRuntime* CFormView::GetRuntimeClass(void)const 4924 CRuntime* CFrameWnd::GetRuntimeClass(void)const 4925 CRuntime* CFtpConnection::GetRuntimeClass(void)const 4926 CRuntime* CFtpFileFind::GetRuntimeClass(void)const 4927 CRuntime* CGdiObject::GetRuntimeClass(void)const 4928 CRuntime* CGopherConnection::GetRuntimeClass(void)const 4929 CRuntime* CGopherFile::GetRuntimeClass(void)const 4930 CRuntime* CGopherFileFind::GetRuntimeClass(void)const 4931 CRuntime* CHeaderCtrl::GetRuntimeClass(void)const 4932 CRuntime* CHotKeyCtrl::GetRuntimeClass(void)const 4933 CRuntime* CHtmlEditDoc::GetRuntimeClass(void)const 4934 CRuntime* CHtmlEditView::GetRuntimeClass(void)const 4935 CRuntime* CHtmlView::GetRuntimeClass(void)const 4936 CRuntime* CHttpConnection::GetRuntimeClass(void)const 4937 CRuntime* CHttpFile::GetRuntimeClass(void)const 4938 CRuntime* CImageList::GetRuntimeClass(void)const 4939 CRuntime* CInternetConnection::GetRuntimeClass(void)const 4940 CRuntime* CInternetException::GetRuntimeClass(void)const 4941 CRuntime* CInternetFile::GetRuntimeClass(void)const 4942 CRuntime* CInternetSession::GetRuntimeClass(void)const 4943 CRuntime* CInvalidArgException::GetRuntimeClass(void)const 4944 CRuntime* CIPAddressCtrl::GetRuntimeClass(void)const 4945 CRuntime* CLinkCtrl::GetRuntimeClass(void)const 4946 CRuntime* CListBox::GetRuntimeClass(void)const 4947 CRuntime* CListCtrl::GetRuntimeClass(void)const 4948 CRuntime* CListView::GetRuntimeClass(void)const 4949 CRuntime* CLongBinary::GetRuntimeClass(void)const 4950 CRuntime* CMapPtrToPtr::GetRuntimeClass(void)const 4951 CRuntime* CMapPtrToWord::GetRuntimeClass(void)const 4952 CRuntime* CMapStringToOb::GetRuntimeClass(void)const 4953 CRuntime* CMapStringToPtr::GetRuntimeClass(void)const 4954 CRuntime* CMapStringToString::GetRuntimeClass(void)const 4955 CRuntime* CMapWordToOb::GetRuntimeClass(void)const 4956 CRuntime* CMapWordToPtr::GetRuntimeClass(void)const 4957 CRuntime* CMDIChildWnd::GetRuntimeClass(void)const 4958 CRuntime* CMDIFrameWnd::GetRuntimeClass(void)const 4959 CRuntime* CMemFile::GetRuntimeClass(void)const 4960 CRuntime* CMemoryException::GetRuntimeClass(void)const 4961 CRuntime* CMenu::GetRuntimeClass(void)const 4962 CRuntime* CMetaFileDC::GetRuntimeClass(void)const 4963 CRuntime* CMiniDockFrameWnd::GetRuntimeClass(void)const 4964 CRuntime* CMiniFrameWnd::GetRuntimeClass(void)const 4965 CRuntime* CMonikerFile::GetRuntimeClass(void)const 4966 CRuntime* CMonthCalCtrl::GetRuntimeClass(void)const 4967 CRuntime* CMultiDocTemplate::GetRuntimeClass(void)const 4968 CRuntime* CMultiPageDHtmlDialog::GetRuntimeClass(void)const 4969 CRuntime* CMutex::GetRuntimeClass(void)const 4970 CRuntime* CNetAddressCtrl::GetRuntimeClass(void)const 4971 CRuntime* CNotSupportedException::GetRuntimeClass(void)const 4972 CRuntime* CObArray::GetRuntimeClass(void)const 4973 CRuntime* CObject::GetRuntimeClass(void)const 4974 CRuntime* CObList::GetRuntimeClass(void)const 4975 CRuntime* COleBusyDialog::GetRuntimeClass(void)const 4976 CRuntime* COleChangeIconDialog::GetRuntimeClass(void)const 4977 CRuntime* COleChangeSourceDialog::GetRuntimeClass(void)const 4978 CRuntime* COleClientItem::GetRuntimeClass(void)const 4979 CRuntime* COleControl::GetRuntimeClass(void)const 4980 CRuntime* COleControlModule::GetRuntimeClass(void)const 4981 CRuntime* COleConvertDialog::GetRuntimeClass(void)const 4982 CRuntime* COleDBRecordView::GetRuntimeClass(void)const 4983 CRuntime* COleDialog::GetRuntimeClass(void)const 4984 CRuntime* COleDispatchException::GetRuntimeClass(void)const 4985 CRuntime* COleDocIPFrameWnd::GetRuntimeClass(void)const 4986 CRuntime* COleDocObjectItem::GetRuntimeClass(void)const 4987 CRuntime* COleDocument::GetRuntimeClass(void)const 4988 CRuntime* COleException::GetRuntimeClass(void)const 4989 CRuntime* COleInsertDialog::GetRuntimeClass(void)const 4990 CRuntime* COleIPFrameWnd::GetRuntimeClass(void)const 4991 CRuntime* COleLinkingDoc::GetRuntimeClass(void)const 4992 CRuntime* COleLinksDialog::GetRuntimeClass(void)const 4993 CRuntime* COleObjectFactory::GetRuntimeClass(void)const 4994 CRuntime* COlePasteSpecialDialog::GetRuntimeClass(void)const 4995 CRuntime* COlePropertiesDialog::GetRuntimeClass(void)const 4996 CRuntime* COlePropertyPage::GetRuntimeClass(void)const 4997 CRuntime* COleResizeBar::GetRuntimeClass(void)const 4998 CRuntime* COleServerDoc::GetRuntimeClass(void)const 4999 CRuntime* COleServerItem::GetRuntimeClass(void)const 5000 CRuntime* COleStreamFile::GetRuntimeClass(void)const 5001 CRuntime* COleUpdateDialog::GetRuntimeClass(void)const 5002 CRuntime* CPagerCtrl::GetRuntimeClass(void)const 5003 CRuntime* CPageSetupDialog::GetRuntimeClass(void)const 5004 CRuntime* CPaintDC::GetRuntimeClass(void)const 5005 CRuntime* CPalette::GetRuntimeClass(void)const 5006 CRuntime* CPen::GetRuntimeClass(void)const 5007 CRuntime* CPreviewDC::GetRuntimeClass(void)const 5008 CRuntime* CPreviewView::GetRuntimeClass(void)const 5009 CRuntime* CPrintDialog::GetRuntimeClass(void)const 5010 CRuntime* CPrintDialogEx::GetRuntimeClass(void)const 5011 CRuntime* CProgressCtrl::GetRuntimeClass(void)const 5012 CRuntime* CPropertyPage::GetRuntimeClass(void)const 5013 CRuntime* CPropertySheet::GetRuntimeClass(void)const 5014 CRuntime* CPtrArray::GetRuntimeClass(void)const 5015 CRuntime* CPtrList::GetRuntimeClass(void)const 5016 CRuntime* CReBar::GetRuntimeClass(void)const 5017 CRuntime* CReBarCtrl::GetRuntimeClass(void)const 5018 CRuntime* CRecordset::GetRuntimeClass(void)const 5019 CRuntime* CRecordView::GetRuntimeClass(void)const 5020 CRuntime* CResourceException::GetRuntimeClass(void)const 5021 CRuntime* CRgn::GetRuntimeClass(void)const 5022 CRuntime* CRichEditCntrItem::GetRuntimeClass(void)const 5023 CRuntime* CRichEditCtrl::GetRuntimeClass(void)const 5024 CRuntime* CRichEditDoc::GetRuntimeClass(void)const 5025 CRuntime* CRichEditView::GetRuntimeClass(void)const 5026 CRuntime* CScrollBar::GetRuntimeClass(void)const 5027 CRuntime* CScrollView::GetRuntimeClass(void)const 5028 CRuntime* CSemaphore::GetRuntimeClass(void)const 5029 CRuntime* CSharedFile::GetRuntimeClass(void)const 5030 CRuntime* CSimpleException::GetRuntimeClass(void)const 5031 CRuntime* CSingleDocTemplate::GetRuntimeClass(void)const 5032 CRuntime* CSliderCtrl::GetRuntimeClass(void)const 5033 CRuntime* CSocket::GetRuntimeClass(void)const 5034 CRuntime* CSocketFile::GetRuntimeClass(void)const 5035 CRuntime* CSpinButtonCtrl::GetRuntimeClass(void)const 5036 CRuntime* CSplitButton::GetRuntimeClass(void)const 5037 CRuntime* CSplitterWnd::GetRuntimeClass(void)const 5038 CRuntime* CStatic::GetRuntimeClass(void)const 5039 CRuntime* CStatusBar::GetRuntimeClass(void)const 5040 CRuntime* CStatusBarCtrl::GetRuntimeClass(void)const 5041 CRuntime* CStdioFile::GetRuntimeClass(void)const 5042 CRuntime* CStringArray::GetRuntimeClass(void)const 5043 CRuntime* CStringList::GetRuntimeClass(void)const 5044 CRuntime* CSyncObject::GetRuntimeClass(void)const 5045 CRuntime* CTabCtrl::GetRuntimeClass(void)const 5046 CRuntime* CToolBar::GetRuntimeClass(void)const 5047 CRuntime* CToolBarCtrl::GetRuntimeClass(void)const 5048 CRuntime* CToolTipCtrl::GetRuntimeClass(void)const 5049 CRuntime* CTreeCtrl::GetRuntimeClass(void)const 5050 CRuntime* CTreeView::GetRuntimeClass(void)const 5051 CRuntime* CUIntArray::GetRuntimeClass(void)const 5052 CRuntime* CUserException::GetRuntimeClass(void)const 5053 CRuntime* CView::GetRuntimeClass(void)const 5054 CRuntime* CWinApp::GetRuntimeClass(void)const 5055 CRuntime* CWindowDC::GetRuntimeClass(void)const 5056 CRuntime* CWindowlessDC::GetRuntimeClass(void)const 5057 CRuntime* CWinThread::GetRuntimeClass(void)const 5058 CRuntime* CWnd::GetRuntimeClass(void)const 5059 CRuntime* CWordArray::GetRuntimeClass(void)const 5060 void * CGdiObject::GetSafeHandle(void)const 5061 _IMAGELIST * CImageList::GetSafeHandle(void)const 5062 HDC__ * CDC::GetSafeHdc(void)const 5063 HMENU__ * CMenu::GetSafeHmenu(void)const 5064 HWND__ * CWnd::GetSafeHwnd(void)const 5065 CWnd * CWnd::GetSafeOwner(CWnd *,HWND__ * *) 5066 HWND__ * CWnd::GetSafeOwner_(HWND__ *,HWND__ * *) 5067 unsigned long * CColorDialog::GetSavedCustomColors(void) 5068 ATL::CStringT > > CGopherFileFind::GetScreenName(void)const 5069 CSize CDockState::GetScreenSize(void) 5070 CScrollBar * CView::GetScrollBarCtrl(int)const 5071 CScrollBar * CWnd::GetScrollBarCtrl(int)const 5072 void CScrollView::GetScrollBarSizes(CSize &) 5073 void CScrollView::GetScrollBarState(CSize,CSize &,CSize &,CPoint &,int) 5074 int CScrollBar::GetScrollInfo(tagSCROLLINFO *,unsigned int) 5075 int CWnd::GetScrollInfo(int,tagSCROLLINFO *,unsigned int) 5076 int CScrollBar::GetScrollLimit(void) 5077 int CWnd::GetScrollLimit(int) 5078 int CScrollBar::GetScrollPos(void)const 5079 int CWnd::GetScrollPos(int)const 5080 CPoint CScrollView::GetScrollPosition(void)const 5081 void CScrollBar::GetScrollRange(int *,int *)const 5082 void CWnd::GetScrollRange(int,int *,int *)const 5083 unsigned long CSplitterWnd::GetScrollStyle(void)const 5084 unsigned int CTreeCtrl::GetScrollTime(void)const 5085 CPropertySection * CPropertySet::GetSection(_GUID) 5086 HKEY__ * CWinApp::GetSectionKey(wchar_t const *) 5087 wchar_t const * CPropertySection::GetSectionName(void) 5088 unsigned long CEdit::GetSel(void)const 5089 void CEdit::GetSel(int &,int &)const 5090 int CListBox::GetSel(int)const 5091 void CRichEditCtrl::GetSel(long &,long &)const 5092 void CRichEditCtrl::GetSel(_charrange &)const 5093 int CListBox::GetSelCount(void)const 5094 unsigned int CListCtrl::GetSelectedCount(void)const 5095 unsigned int CTreeCtrl::GetSelectedCount(void) 5096 CRichEditCntrItem * CRichEditView::GetSelectedItem(void)const 5097 _TREEITEM * CTreeCtrl::GetSelectedItem(void)const 5098 void CEditView::GetSelectedText(ATL::CStringT > > &)const 5099 void CSliderCtrl::GetSelection(int &,int &)const 5100 unsigned long CRichEditCtrl::GetSelectionCharFormat(_charformatw &)const 5101 unsigned long CRichEditCtrl::GetSelectionCharFormat(CHARFORMAT2W &)const 5102 int CListCtrl::GetSelectionMark(void)const 5103 unsigned int COleBusyDialog::GetSelectionType(void)const 5104 unsigned int COleConvertDialog::GetSelectionType(void)const 5105 unsigned int COleInsertDialog::GetSelectionType(void)const 5106 unsigned int COlePasteSpecialDialog::GetSelectionType(void)const 5107 unsigned short CRichEditCtrl::GetSelectionType(void)const 5108 int CListBox::GetSelItems(int,int *)const 5109 int CMonthCalCtrl::GetSelRange(ATL::COleDateTime &,ATL::COleDateTime &)const 5110 int CMonthCalCtrl::GetSelRange(ATL::CTime &,ATL::CTime &)const 5111 int CMonthCalCtrl::GetSelRange(_SYSTEMTIME *,_SYSTEMTIME *)const 5112 ATL::CStringT > > CRichEditCtrl::GetSelText(void)const 5113 long CRichEditCtrl::GetSelText(char *)const 5114 ATL::CStringT > > CInternetConnection::GetServerName(void)const 5115 CInternetSession * CInternetConnection::GetSession(void)const 5116 int CHtmlView::GetSilent(void)const 5117 long CPrintDialogEx::GetSite(_GUID const &,void * *) 5118 int CByteArray::GetSize(void)const 5119 int CDWordArray::GetSize(void)const 5120 int CFontDialog::GetSize(void)const 5121 int CMapPtrToPtr::GetSize(void)const 5122 int CMapPtrToWord::GetSize(void)const 5123 int CMapStringToOb::GetSize(void)const 5124 int CMapStringToPtr::GetSize(void)const 5125 int CMapStringToString::GetSize(void)const 5126 int CMapWordToOb::GetSize(void)const 5127 int CMapWordToPtr::GetSize(void)const 5128 int CObArray::GetSize(void)const 5129 int CObList::GetSize(void)const 5130 unsigned long CPropertySection::GetSize(void) 5131 int CPtrArray::GetSize(void)const 5132 int CPtrList::GetSize(void)const 5133 int CStringArray::GetSize(void)const 5134 int CStringList::GetSize(void)const 5135 int CUIntArray::GetSize(void)const 5136 int CWordArray::GetSize(void)const 5137 void CDialogTemplate::GetSizeInDialogUnits(tagSIZE *)const 5138 void CDialogTemplate::GetSizeInPixels(tagSIZE *)const 5139 long CBlobProperty::GetSizeMax(union _ULARGE_INTEGER *) 5140 long COleControl::XPersistMemory::GetSizeMax(unsigned long *) 5141 long COleControl::XPersistStreamInit::GetSizeMax(union _ULARGE_INTEGER *) 5142 CWnd * CSplitterWnd::GetSizingParent(void) 5143 int CAsyncSocket::GetSockName(ATL::CStringT > > &,unsigned int &) 5144 int CAsyncSocket::GetSockName(sockaddr *,int *) 5145 int CAsyncSocket::GetSockOpt(int,void *,int *,int) 5146 int CHtmlView::GetSource(ATL::CStringT > > &) 5147 ATL::CStringT > > CDaoTableDef::GetSourceTableName(void) 5148 ATL::CStringT > > CDaoQueryDef::GetSQL(void) 5149 ATL::CStringT > > CDaoRecordset::GetSQL(void)const 5150 ATL::CStringT > > const & CRecordset::GetSQL(void)const 5151 unsigned int CCmdTarget::GetStackSize(unsigned char const *,unsigned short) 5152 void CCmdTarget::GetStandardProp(AFX_DISPMAP_ENTRY const *,tagVARIANT *,unsigned int *) 5153 wchar_t const * CHtmlEditCtrl::GetStartDocument(void) 5154 wchar_t const * CHtmlEditView::GetStartDocument(void) 5155 __POSITION * CConnectionPoint::GetStartPosition(void)const 5156 __POSITION * CFileDialog::GetStartPosition(void)const 5157 __POSITION * CMapPtrToPtr::GetStartPosition(void)const 5158 __POSITION * CMapPtrToWord::GetStartPosition(void)const 5159 __POSITION * CMapStringToOb::GetStartPosition(void)const 5160 __POSITION * CMapStringToPtr::GetStartPosition(void)const 5161 __POSITION * CMapStringToString::GetStartPosition(void)const 5162 __POSITION * CMapWordToOb::GetStartPosition(void)const 5163 __POSITION * CMapWordToPtr::GetStartPosition(void)const 5164 __POSITION * COleDocument::GetStartPosition(void)const 5165 __POSITION * CRichEditDoc::GetStartPosition(void)const 5166 unsigned int CButton::GetState(void)const 5167 int CProgressCtrl::GetState(void)const 5168 int CToolBarCtrl::GetState(int)const 5169 int CFile::GetStatus(CFileStatus &)const 5170 int CFile::GetStatus(wchar_t const *,CFileStatus &) 5171 int CMemFile::GetStatus(CFileStatus &)const 5172 enum COleCurrency::CurrencyStatus COleCurrency::GetStatus(void)const 5173 int COleStreamFile::GetStatus(CFileStatus &)const 5174 void CRecordset::GetStatus(CRecordsetStatus &)const 5175 int CHtmlView::GetStatusBar(void)const 5176 CStatusBarCtrl & CStatusBar::GetStatusBarCtrl(void)const 5177 int CProgressCtrl::GetStep(void)const 5178 unsigned long COleControl::GetStockEventMask(void)const 5179 unsigned long COleControl::GetStockPropMask(void)const 5180 void COleControl::GetStockTextMetrics(tagTEXTMETRICW *) 5181 ATL::CStringT > > const COleStreamFile::GetStorageName(void)const 5182 IStream * COleStreamFile::GetStream(void)const 5183 int CRichEditDoc::GetStreamFormat(void)const 5184 int CDC::GetStretchBltMode(void)const 5185 wchar_t const * ATL::CSimpleStringT::GetString(void)const 5186 char const * ATL::CSimpleStringT::GetString(void)const 5187 int CToolBarCtrl::GetString(int,ATL::CStringT > > &)const 5188 int CToolBarCtrl::GetString(int,wchar_t *,unsigned int)const 5189 int CListCtrl::GetStringWidth(wchar_t const *)const 5190 unsigned long COleControlSite::GetStyle(void)const 5191 unsigned long COleControlSiteOrWnd::GetStyle(void)const 5192 unsigned long CToolBarCtrl::GetStyle(void)const 5193 unsigned long CWnd::GetStyle(void)const 5194 ATL::CStringT > > CFontDialog::GetStyleName(void)const 5195 int CListCtrl::GetSubItemRect(int,int,int,CRect &)const 5196 CMenu * CMenu::GetSubMenu(int)const 5197 long (__stdcall** CWnd::GetSuperWndProcAddr(void))(HWND__ *,unsigned int,unsigned int,long) 5198 int CWinApp::GetSysPolicyValue(unsigned long,int *) 5199 CMenu * CWnd::GetSystemMenu(int)const 5200 CSize CDC::GetTabbedTextExtentW(ATL::CStringT > > const &,int,int *)const 5201 CSize CDC::GetTabbedTextExtentW(wchar_t const *,int,int,int *)const 5202 CTabCtrl * CPropertySheet::GetTabControl(void)const 5203 short CDaoDatabase::GetTableDefCount(void) 5204 void CDaoDatabase::GetTableDefInfo(int,CDaoTableDefInfo &,unsigned long) 5205 void CDaoDatabase::GetTableDefInfo(wchar_t const *,CDaoTableDefInfo &,unsigned long) 5206 ATL::CStringT > > const & CRecordset::GetTableName(void)const 5207 CObject * & CObList::GetTail(void) 5208 CObject const * CObList::GetTail(void)const 5209 void * & CPtrList::GetTail(void) 5210 void const * CPtrList::GetTail(void)const 5211 ATL::CStringT > > & CStringList::GetTail(void) 5212 ATL::CStringT > > const & CStringList::GetTail(void)const 5213 __POSITION * CObList::GetTailPosition(void)const 5214 __POSITION * CPtrList::GetTailPosition(void)const 5215 __POSITION * CStringList::GetTailPosition(void)const 5216 unsigned int CDialogTemplate::GetTemplateSize(DLGTEMPLATE const *) 5217 int CListBox::GetText(int,wchar_t *)const 5218 void CListBox::GetText(int,ATL::CStringT > > &)const 5219 wchar_t * COleControl::GetText(void) 5220 ATL::CStringT > > CStatusBarCtrl::GetText(int,int *)const 5221 int CStatusBarCtrl::GetText(wchar_t *,int,int *)const 5222 void CToolTipCtrl::GetText(ATL::CStringT > > &,CWnd *,unsigned int)const 5223 unsigned int CDC::GetTextAlign(void)const 5224 unsigned long CListCtrl::GetTextBkColor(void)const 5225 int CDC::GetTextCharacterExtra(void)const 5226 unsigned long CDC::GetTextColor(void)const 5227 unsigned long CListCtrl::GetTextColor(void)const 5228 unsigned long CReBarCtrl::GetTextColor(void)const 5229 unsigned long CTreeCtrl::GetTextColor(void)const 5230 CSize CDC::GetTextExtent(ATL::CStringT > > const &)const 5231 CSize CDC::GetTextExtent(wchar_t const *,int)const 5232 int CDC::GetTextFaceW(ATL::CStringT > > &)const 5233 int CDC::GetTextFaceW(int,wchar_t *)const 5234 int CListBox::GetTextLen(int)const 5235 long CRecordset::GetTextLen(short,unsigned long) 5236 long CRichEditCtrl::GetTextLength(void)const 5237 long CRichEditView::GetTextLength(void)const 5238 int CStatusBarCtrl::GetTextLength(int,int *)const 5239 long CRichEditCtrl::GetTextLengthEx(unsigned long,unsigned int)const 5240 long CRichEditView::GetTextLengthEx(unsigned long,unsigned int)const 5241 int CDC::GetTextMetrics(tagTEXTMETRICW *)const 5242 int CDC::GetTextMetricsW(tagTEXTMETRICW *)const 5243 unsigned int CRichEditCtrl::GetTextMode(void)const 5244 int CRichEditCtrl::GetTextRange(int,int,ATL::CStringT > > &)const 5245 int CHtmlView::GetTheaterMode(void)const 5246 long CThemeHelper::GetThemePartSize(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 5247 long CThemeHelper::GetThemePartSizeFail(void *,HDC__ *,int,int,tagRECT *,enum THEMESIZE,tagSIZE *) 5248 CRuntime* CAnimateCtrl::GetThisClass(void) 5249 CRuntime* CArchiveException::GetThisClass(void) 5250 CRuntime* CAsyncMonikerFile::GetThisClass(void) 5251 CRuntime* CAsyncSocket::GetThisClass(void) 5252 CRuntime* CBitmap::GetThisClass(void) 5253 CRuntime* CBitmapButton::GetThisClass(void) 5254 CRuntime* CBrush::GetThisClass(void) 5255 CRuntime* CButton::GetThisClass(void) 5256 CRuntime* CByteArray::GetThisClass(void) 5257 CRuntime* CCachedDataPathProperty::GetThisClass(void) 5258 CRuntime* CCheckListBox::GetThisClass(void) 5259 CRuntime* CClientDC::GetThisClass(void) 5260 CRuntime* CCmdTarget::GetThisClass(void) 5261 CRuntime* CColorDialog::GetThisClass(void) 5262 CRuntime* CComboBox::GetThisClass(void) 5263 CRuntime* CComboBoxEx::GetThisClass(void) 5264 CRuntime* CCommonDialog::GetThisClass(void) 5265 CRuntime* CControlBar::GetThisClass(void) 5266 CRuntime* CCriticalSection::GetThisClass(void) 5267 CRuntime* CCtrlView::GetThisClass(void) 5268 CRuntime* CDaoDatabase::GetThisClass(void) 5269 CRuntime* CDaoException::GetThisClass(void) 5270 CRuntime* CDaoQueryDef::GetThisClass(void) 5271 CRuntime* CDaoRecordset::GetThisClass(void) 5272 CRuntime* CDaoRecordView::GetThisClass(void) 5273 CRuntime* CDaoTableDef::GetThisClass(void) 5274 CRuntime* CDaoWorkspace::GetThisClass(void) 5275 CRuntime* CDatabase::GetThisClass(void) 5276 CRuntime* CDataPathProperty::GetThisClass(void) 5277 CRuntime* CDateTimeCtrl::GetThisClass(void) 5278 CRuntime* CDBException::GetThisClass(void) 5279 CRuntime* CDC::GetThisClass(void) 5280 CRuntime* CDHtmlDialog::GetThisClass(void) 5281 CRuntime* CDialog::GetThisClass(void) 5282 CRuntime* CDialogBar::GetThisClass(void) 5283 CRuntime* CDocItem::GetThisClass(void) 5284 CRuntime* CDockBar::GetThisClass(void) 5285 CRuntime* CDockState::GetThisClass(void) 5286 CRuntime* CDocManager::GetThisClass(void) 5287 CRuntime* CDocObjectServer::GetThisClass(void) 5288 CRuntime* CDocObjectServerItem::GetThisClass(void) 5289 CRuntime* CDocTemplate::GetThisClass(void) 5290 CRuntime* CDocument::GetThisClass(void) 5291 CRuntime* CDragListBox::GetThisClass(void) 5292 CRuntime* CDWordArray::GetThisClass(void) 5293 CRuntime* CDynLinkLibrary::GetThisClass(void) 5294 CRuntime* CEdit::GetThisClass(void) 5295 CRuntime* CEditView::GetThisClass(void) 5296 CRuntime* CEvent::GetThisClass(void) 5297 CRuntime* CException::GetThisClass(void) 5298 CRuntime* CFile::GetThisClass(void) 5299 CRuntime* CFileDialog::GetThisClass(void) 5300 CRuntime* CFileException::GetThisClass(void) 5301 CRuntime* CFileFind::GetThisClass(void) 5302 CRuntime* CFindReplaceDialog::GetThisClass(void) 5303 CRuntime* CFont::GetThisClass(void) 5304 CRuntime* CFontDialog::GetThisClass(void) 5305 CRuntime* CFormView::GetThisClass(void) 5306 CRuntime* CFrameWnd::GetThisClass(void) 5307 CRuntime* CFtpConnection::GetThisClass(void) 5308 CRuntime* CFtpFileFind::GetThisClass(void) 5309 CRuntime* CGdiObject::GetThisClass(void) 5310 CRuntime* CGopherConnection::GetThisClass(void) 5311 CRuntime* CGopherFile::GetThisClass(void) 5312 CRuntime* CGopherFileFind::GetThisClass(void) 5313 CRuntime* CHeaderCtrl::GetThisClass(void) 5314 CRuntime* CHotKeyCtrl::GetThisClass(void) 5315 CRuntime* CHtmlEditDoc::GetThisClass(void) 5316 CRuntime* CHtmlEditView::GetThisClass(void) 5317 CRuntime* CHtmlView::GetThisClass(void) 5318 CRuntime* CHttpConnection::GetThisClass(void) 5319 CRuntime* CHttpFile::GetThisClass(void) 5320 CRuntime* CImageList::GetThisClass(void) 5321 CRuntime* CInternetConnection::GetThisClass(void) 5322 CRuntime* CInternetException::GetThisClass(void) 5323 CRuntime* CInternetFile::GetThisClass(void) 5324 CRuntime* CInternetSession::GetThisClass(void) 5325 CRuntime* CInvalidArgException::GetThisClass(void) 5326 CRuntime* CIPAddressCtrl::GetThisClass(void) 5327 CRuntime* CLinkCtrl::GetThisClass(void) 5328 CRuntime* CListBox::GetThisClass(void) 5329 CRuntime* CListCtrl::GetThisClass(void) 5330 CRuntime* CListView::GetThisClass(void) 5331 CRuntime* CLongBinary::GetThisClass(void) 5332 CRuntime* CMapPtrToPtr::GetThisClass(void) 5333 CRuntime* CMapPtrToWord::GetThisClass(void) 5334 CRuntime* CMapStringToOb::GetThisClass(void) 5335 CRuntime* CMapStringToPtr::GetThisClass(void) 5336 CRuntime* CMapStringToString::GetThisClass(void) 5337 CRuntime* CMapWordToOb::GetThisClass(void) 5338 CRuntime* CMapWordToPtr::GetThisClass(void) 5339 CRuntime* CMDIChildWnd::GetThisClass(void) 5340 CRuntime* CMDIFrameWnd::GetThisClass(void) 5341 CRuntime* CMemFile::GetThisClass(void) 5342 CRuntime* CMemoryException::GetThisClass(void) 5343 CRuntime* CMenu::GetThisClass(void) 5344 CRuntime* CMetaFileDC::GetThisClass(void) 5345 CRuntime* CMiniDockFrameWnd::GetThisClass(void) 5346 CRuntime* CMiniFrameWnd::GetThisClass(void) 5347 CRuntime* CMonikerFile::GetThisClass(void) 5348 CRuntime* CMonthCalCtrl::GetThisClass(void) 5349 CRuntime* CMultiDocTemplate::GetThisClass(void) 5350 CRuntime* CMultiPageDHtmlDialog::GetThisClass(void) 5351 CRuntime* CMutex::GetThisClass(void) 5352 CRuntime* CNetAddressCtrl::GetThisClass(void) 5353 CRuntime* CNotSupportedException::GetThisClass(void) 5354 CRuntime* CObArray::GetThisClass(void) 5355 CRuntime* CObject::GetThisClass(void) 5356 CRuntime* CObList::GetThisClass(void) 5357 CRuntime* COleBusyDialog::GetThisClass(void) 5358 CRuntime* COleChangeIconDialog::GetThisClass(void) 5359 CRuntime* COleChangeSourceDialog::GetThisClass(void) 5360 CRuntime* COleClientItem::GetThisClass(void) 5361 CRuntime* COleControl::GetThisClass(void) 5362 CRuntime* COleControlModule::GetThisClass(void) 5363 CRuntime* COleConvertDialog::GetThisClass(void) 5364 CRuntime* COleDBRecordView::GetThisClass(void) 5365 CRuntime* COleDialog::GetThisClass(void) 5366 CRuntime* COleDispatchException::GetThisClass(void) 5367 CRuntime* COleDocIPFrameWnd::GetThisClass(void) 5368 CRuntime* COleDocObjectItem::GetThisClass(void) 5369 CRuntime* COleDocument::GetThisClass(void) 5370 CRuntime* COleException::GetThisClass(void) 5371 CRuntime* COleInsertDialog::GetThisClass(void) 5372 CRuntime* COleIPFrameWnd::GetThisClass(void) 5373 CRuntime* COleLinkingDoc::GetThisClass(void) 5374 CRuntime* COleLinksDialog::GetThisClass(void) 5375 CRuntime* COleObjectFactory::GetThisClass(void) 5376 CRuntime* COlePasteSpecialDialog::GetThisClass(void) 5377 CRuntime* COlePropertiesDialog::GetThisClass(void) 5378 CRuntime* COlePropertyPage::GetThisClass(void) 5379 CRuntime* COleResizeBar::GetThisClass(void) 5380 CRuntime* COleServerDoc::GetThisClass(void) 5381 CRuntime* COleServerItem::GetThisClass(void) 5382 CRuntime* COleStreamFile::GetThisClass(void) 5383 CRuntime* COleUpdateDialog::GetThisClass(void) 5384 CRuntime* CPagerCtrl::GetThisClass(void) 5385 CRuntime* CPageSetupDialog::GetThisClass(void) 5386 CRuntime* CPaintDC::GetThisClass(void) 5387 CRuntime* CPalette::GetThisClass(void) 5388 CRuntime* CPen::GetThisClass(void) 5389 CRuntime* CPreviewDC::GetThisClass(void) 5390 CRuntime* CPreviewView::GetThisClass(void) 5391 CRuntime* CPrintDialog::GetThisClass(void) 5392 CRuntime* CPrintDialogEx::GetThisClass(void) 5393 CRuntime* CProgressCtrl::GetThisClass(void) 5394 CRuntime* CPropertyPage::GetThisClass(void) 5395 CRuntime* CPropertySheet::GetThisClass(void) 5396 CRuntime* CPtrArray::GetThisClass(void) 5397 CRuntime* CPtrList::GetThisClass(void) 5398 CRuntime* CReBar::GetThisClass(void) 5399 CRuntime* CReBarCtrl::GetThisClass(void) 5400 CRuntime* CRecordset::GetThisClass(void) 5401 CRuntime* CRecordView::GetThisClass(void) 5402 CRuntime* CResourceException::GetThisClass(void) 5403 CRuntime* CRgn::GetThisClass(void) 5404 CRuntime* CRichEditCntrItem::GetThisClass(void) 5405 CRuntime* CRichEditCtrl::GetThisClass(void) 5406 CRuntime* CRichEditDoc::GetThisClass(void) 5407 CRuntime* CRichEditView::GetThisClass(void) 5408 CRuntime* CScrollBar::GetThisClass(void) 5409 CRuntime* CScrollView::GetThisClass(void) 5410 CRuntime* CSemaphore::GetThisClass(void) 5411 CRuntime* CSharedFile::GetThisClass(void) 5412 CRuntime* CSimpleException::GetThisClass(void) 5413 CRuntime* CSingleDocTemplate::GetThisClass(void) 5414 CRuntime* CSliderCtrl::GetThisClass(void) 5415 CRuntime* CSocket::GetThisClass(void) 5416 CRuntime* CSocketFile::GetThisClass(void) 5417 CRuntime* CSpinButtonCtrl::GetThisClass(void) 5418 CRuntime* CSplitButton::GetThisClass(void) 5419 CRuntime* CSplitterWnd::GetThisClass(void) 5420 CRuntime* CStatic::GetThisClass(void) 5421 CRuntime* CStatusBar::GetThisClass(void) 5422 CRuntime* CStatusBarCtrl::GetThisClass(void) 5423 CRuntime* CStdioFile::GetThisClass(void) 5424 CRuntime* CStringArray::GetThisClass(void) 5425 CRuntime* CStringList::GetThisClass(void) 5426 CRuntime* CSyncObject::GetThisClass(void) 5427 CRuntime* CTabCtrl::GetThisClass(void) 5428 CRuntime* CToolBar::GetThisClass(void) 5429 CRuntime* CToolBarCtrl::GetThisClass(void) 5430 CRuntime* CToolTipCtrl::GetThisClass(void) 5431 CRuntime* CTreeCtrl::GetThisClass(void) 5432 CRuntime* CTreeView::GetThisClass(void) 5433 CRuntime* CUIntArray::GetThisClass(void) 5434 CRuntime* CUserException::GetThisClass(void) 5435 CRuntime* CView::GetThisClass(void) 5436 CRuntime* CWinApp::GetThisClass(void) 5437 CRuntime* CWindowDC::GetThisClass(void) 5438 CRuntime* CWindowlessDC::GetThisClass(void) 5439 CRuntime* CWinThread::GetThisClass(void) 5440 CRuntime* CWnd::GetThisClass(void) 5441 CRuntime* CWordArray::GetThisClass(void) 5442 AFX_OLECMDMAP const * CCmdTarget::GetThisCommandMap(void) 5443 AFX_OLECMDMAP const * COleDocObjectItem::GetThisCommandMap(void) 5444 AFX_CONNECTIONMAP const * CCmdTarget::GetThisConnectionMap(void) 5445 AFX_CONNECTIONMAP const * COleControl::GetThisConnectionMap(void) 5446 AFX_DISPMAP const * CCmdTarget::GetThisDispatchMap(void) 5447 AFX_DISPMAP const * COleControlContainer::GetThisDispatchMap(void) 5448 AFX_EVENTMAP const * COleControl::GetThisEventMap(void) 5449 AFX_EVENTSINKMAP const * CCmdTarget::GetThisEventSinkMap(void) 5450 AFX_EVENTSINKMAP const * CDHtmlDialog::GetThisEventSinkMap(void) 5451 AFX_EVENTSINKMAP const * CHtmlEditCtrl::GetThisEventSinkMap(void) 5452 AFX_EVENTSINKMAP const * CHtmlView::GetThisEventSinkMap(void) 5453 AFX_INTERFACEMAP const * CCmdTarget::GetThisInterfaceMap(void) 5454 AFX_INTERFACEMAP const * CDocObjectServer::GetThisInterfaceMap(void) 5455 AFX_INTERFACEMAP const * CEnumConnections::GetThisInterfaceMap(void) 5456 AFX_INTERFACEMAP const * CEnumConnPoints::GetThisInterfaceMap(void) 5457 AFX_INTERFACEMAP const * CEnumFormatEtc::GetThisInterfaceMap(void) 5458 AFX_INTERFACEMAP const * CEnumOleVerb::GetThisInterfaceMap(void) 5459 AFX_INTERFACEMAP const * CEnumUnknown::GetThisInterfaceMap(void) 5460 AFX_INTERFACEMAP const * CFileDialog::GetThisInterfaceMap(void) 5461 AFX_INTERFACEMAP const * CHtmlControlSite::GetThisInterfaceMap(void) 5462 AFX_INTERFACEMAP const * COleClientItem::GetThisInterfaceMap(void) 5463 AFX_INTERFACEMAP const * COleControl::GetThisInterfaceMap(void) 5464 AFX_INTERFACEMAP const * COleControlContainer::GetThisInterfaceMap(void) 5465 AFX_INTERFACEMAP const * COleControlSite::GetThisInterfaceMap(void) 5466 AFX_INTERFACEMAP const * COleDataSource::GetThisInterfaceMap(void) 5467 AFX_INTERFACEMAP const * COleDocObjectItem::GetThisInterfaceMap(void) 5468 AFX_INTERFACEMAP const * COleDropSource::GetThisInterfaceMap(void) 5469 AFX_INTERFACEMAP const * COleDropTarget::GetThisInterfaceMap(void) 5470 AFX_INTERFACEMAP const * COleFrameHook::GetThisInterfaceMap(void) 5471 AFX_INTERFACEMAP const * COleLinkingDoc::GetThisInterfaceMap(void) 5472 AFX_INTERFACEMAP const * COleMessageFilter::GetThisInterfaceMap(void) 5473 AFX_INTERFACEMAP const * COleObjectFactory::GetThisInterfaceMap(void) 5474 AFX_INTERFACEMAP const * COlePropertyPage::GetThisInterfaceMap(void) 5475 AFX_INTERFACEMAP const * COleServerDoc::GetThisInterfaceMap(void) 5476 AFX_INTERFACEMAP const * COleServerItem::GetThisInterfaceMap(void) 5477 AFX_INTERFACEMAP const * CRichEditView::GetThisInterfaceMap(void) 5478 AFX_INTERFACEMAP const * CWnd::GetThisInterfaceMap(void) 5479 AFX_MSGMAP const * CCheckListBox::GetThisMessageMap(void) 5480 AFX_MSGMAP const * CCmdTarget::GetThisMessageMap(void) 5481 AFX_MSGMAP const * CCommonDialog::GetThisMessageMap(void) 5482 AFX_MSGMAP const * CControlBar::GetThisMessageMap(void) 5483 AFX_MSGMAP const * CControlFrameWnd::GetThisMessageMap(void) 5484 AFX_MSGMAP const * CCtrlView::GetThisMessageMap(void) 5485 AFX_MSGMAP const * CDaoRecordView::GetThisMessageMap(void) 5486 AFX_MSGMAP const * CDHtmlDialog::GetThisMessageMap(void) 5487 AFX_MSGMAP const * CDialog::GetThisMessageMap(void) 5488 AFX_MSGMAP const * CDialogBar::GetThisMessageMap(void) 5489 AFX_MSGMAP const * CDockBar::GetThisMessageMap(void) 5490 AFX_MSGMAP const * CDocObjectServer::GetThisMessageMap(void) 5491 AFX_MSGMAP const * CDocument::GetThisMessageMap(void) 5492 AFX_MSGMAP const * CEditView::GetThisMessageMap(void) 5493 AFX_MSGMAP const * CFormView::GetThisMessageMap(void) 5494 AFX_MSGMAP const * CFrameWnd::GetThisMessageMap(void) 5495 AFX_MSGMAP const * CHtmlEditView::GetThisMessageMap(void) 5496 AFX_MSGMAP const * CHtmlView::GetThisMessageMap(void) 5497 AFX_MSGMAP const * CListCtrl::GetThisMessageMap(void) 5498 AFX_MSGMAP const * CListView::GetThisMessageMap(void) 5499 AFX_MSGMAP const * CMDIChildWnd::GetThisMessageMap(void) 5500 AFX_MSGMAP const * CMDIFrameWnd::GetThisMessageMap(void) 5501 AFX_MSGMAP const * CMiniDockFrameWnd::GetThisMessageMap(void) 5502 AFX_MSGMAP const * CMiniFrameWnd::GetThisMessageMap(void) 5503 AFX_MSGMAP const * COleControl::GetThisMessageMap(void) 5504 AFX_MSGMAP const * COleDBRecordView::GetThisMessageMap(void) 5505 AFX_MSGMAP const * COleDocIPFrameWnd::GetThisMessageMap(void) 5506 AFX_MSGMAP const * COleIPFrameWnd::GetThisMessageMap(void) 5507 AFX_MSGMAP const * COlePropertyPage::GetThisMessageMap(void) 5508 AFX_MSGMAP const * COleResizeBar::GetThisMessageMap(void) 5509 AFX_MSGMAP const * COleServerDoc::GetThisMessageMap(void) 5510 AFX_MSGMAP const * CPreviewView::GetThisMessageMap(void) 5511 AFX_MSGMAP const * CPrintDialog::GetThisMessageMap(void) 5512 AFX_MSGMAP const * CPrintDialogEx::GetThisMessageMap(void) 5513 AFX_MSGMAP const * CPropertyPage::GetThisMessageMap(void) 5514 AFX_MSGMAP const * CPropertySheet::GetThisMessageMap(void) 5515 AFX_MSGMAP const * CReBar::GetThisMessageMap(void) 5516 AFX_MSGMAP const * CRecordView::GetThisMessageMap(void) 5517 AFX_MSGMAP const * CRichEditView::GetThisMessageMap(void) 5518 AFX_MSGMAP const * CScrollView::GetThisMessageMap(void) 5519 AFX_MSGMAP const * CSocketWnd::GetThisMessageMap(void) 5520 AFX_MSGMAP const * CSplitButton::GetThisMessageMap(void) 5521 AFX_MSGMAP const * CSplitterWnd::GetThisMessageMap(void) 5522 AFX_MSGMAP const * CStatusBar::GetThisMessageMap(void) 5523 AFX_MSGMAP const * CTabCtrl::GetThisMessageMap(void) 5524 AFX_MSGMAP const * CToolBar::GetThisMessageMap(void) 5525 AFX_MSGMAP const * CToolBarCtrl::GetThisMessageMap(void) 5526 AFX_MSGMAP const * CToolTipCtrl::GetThisMessageMap(void) 5527 AFX_MSGMAP const * CTreeCtrl::GetThisMessageMap(void) 5528 AFX_MSGMAP const * CTreeView::GetThisMessageMap(void) 5529 AFX_MSGMAP const * CView::GetThisMessageMap(void) 5530 AFX_MSGMAP const * CWinApp::GetThisMessageMap(void) 5531 AFX_MSGMAP const * CWnd::GetThisMessageMap(void) 5532 int CWinThread::GetThreadPriority(void) 5533 int CSliderCtrl::GetThumbLength(void)const 5534 void CSliderCtrl::GetThumbRect(tagRECT *)const 5535 int CSliderCtrl::GetTic(int)const 5536 unsigned long * CSliderCtrl::GetTicArray(void)const 5537 int CSliderCtrl::GetTicPos(int)const 5538 int CDateTimeCtrl::GetTime(ATL::COleDateTime &)const 5539 unsigned long CDateTimeCtrl::GetTime(ATL::CTime &)const 5540 unsigned long CDateTimeCtrl::GetTime(_SYSTEMTIME *)const 5541 unsigned long CToolTipCtrl::GetTipBkColor(void)const 5542 ATL::CStringT > > CStatusBarCtrl::GetTipText(int)const 5543 unsigned long CToolTipCtrl::GetTipTextColor(void)const 5544 ATL::CStringT > > const & CDocument::GetTitle(void)const 5545 ATL::CStringT > > CFrameWnd::GetTitle(void)const 5546 void CToolTipCtrl::GetTitle(_TTGETTITLE *)const 5547 int CMonthCalCtrl::GetToday(ATL::COleDateTime &)const 5548 int CMonthCalCtrl::GetToday(ATL::CTime &)const 5549 int CMonthCalCtrl::GetToday(_SYSTEMTIME *)const 5550 int CHtmlView::GetToolBar(void)const 5551 CToolBarCtrl & CToolBar::GetToolBarCtrl(void)const 5552 int CToolTipCtrl::GetToolCount(void)const 5553 int CToolTipCtrl::GetToolInfo(CToolInfo &,CWnd *,unsigned int)const 5554 CToolTipCtrl * CListCtrl::GetToolTips(void)const 5555 CToolTipCtrl * CReBarCtrl::GetToolTips(void)const 5556 CToolTipCtrl * CSliderCtrl::GetToolTips(void)const 5557 CToolTipCtrl * CTabCtrl::GetToolTips(void)const 5558 CToolTipCtrl * CToolBarCtrl::GetToolTips(void)const 5559 CToolTipCtrl * CTreeCtrl::GetToolTips(void)const 5560 long CHtmlView::GetTop(void)const 5561 int CPrintDialog::GetToPage(void)const 5562 unsigned int CPrintInfo::GetToPage(void)const 5563 int CComboBox::GetTopIndex(void)const 5564 int CListBox::GetTopIndex(void)const 5565 int CListCtrl::GetTopIndex(void)const 5566 int CHtmlView::GetTopLevelContainer(void)const 5567 CFrameWnd * CWnd::GetTopLevelFrame(void)const 5568 CWnd * CWnd::GetTopLevelOwner(void)const 5569 CWnd * CWnd::GetTopLevelParent(void)const 5570 ATL::CStringT > > COleChangeSourceDialog::GetToPrefix(void) 5571 CWnd * CWnd::GetTopWindow(void)const 5572 CSize CScrollView::GetTotalSize(void)const 5573 CTreeCtrl & CTreeView::GetTreeCtrl(void)const 5574 int CScrollView::GetTrueClientSize(CSize &,CSize &) 5575 void CRectTracker::GetTrueRect(tagRECT *)const 5576 short CDaoQueryDef::GetType(void) 5577 short CDaoRecordset::GetType(void) 5578 ATL::CStringT > > CHtmlView::GetType(void)const 5579 enum OLE_OBJTYPE COleClientItem::GetType(void)const 5580 short CPictureHolder::GetType(void) 5581 unsigned long CProperty::GetType(void) 5582 long CDHtmlControlSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5583 long CDHtmlElementEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5584 long CDHtmlEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5585 long COleDispatchImpl::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5586 long CWnd::XAccessible::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5587 long COleControlSite::XAmbientProps::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5588 long COleControlSite::XEventSink::GetTypeInfo(unsigned int,unsigned long,ITypeInfo * *) 5589 unsigned int CCmdTarget::GetTypeInfoCount(void) 5590 long CDHtmlControlSink::GetTypeInfoCount(unsigned int *) 5591 long CDHtmlElementEventSink::GetTypeInfoCount(unsigned int *) 5592 long CDHtmlEventSink::GetTypeInfoCount(unsigned int *) 5593 long COleDispatchImpl::GetTypeInfoCount(unsigned int *) 5594 long CWnd::XAccessible::GetTypeInfoCount(unsigned int *) 5595 long COleControlSite::XAmbientProps::GetTypeInfoCount(unsigned int *) 5596 long COleControlSite::XEventSink::GetTypeInfoCount(unsigned int *) 5597 long CCmdTarget::GetTypeInfoOfGuid(unsigned long,_GUID const &,ITypeInfo * *) 5598 long CCmdTarget::GetTypeLib(unsigned long,ITypeLib * *) 5599 CTypeLibCache * CCmdTarget::GetTypeLibCache(void) 5600 void COleSafeArray::GetUBound(unsigned long,long *) 5601 enum _undonameid CRichEditCtrl::GetUndoName(void)const 5602 int CWnd::GetUpdateRect(tagRECT *,int) 5603 int CWnd::GetUpdateRgn(CRgn *,int) 5604 int CByteArray::GetUpperBound(void)const 5605 int CDWordArray::GetUpperBound(void)const 5606 int CObArray::GetUpperBound(void)const 5607 int CPtrArray::GetUpperBound(void)const 5608 int CStringArray::GetUpperBound(void)const 5609 int CUIntArray::GetUpperBound(void)const 5610 int CWordArray::GetUpperBound(void)const 5611 long CDocObjectServer::XOleObject::GetUserClassID(_GUID *) 5612 long COleControl::XOleObject::GetUserClassID(_GUID *) 5613 long COleServerDoc::XOleObject::GetUserClassID(_GUID *) 5614 long COleServerItem::XOleObject::GetUserClassID(_GUID *) 5615 unsigned short CDHtmlControlSink::GetUserDefinedType(ITypeInfo *,unsigned long) 5616 ATL::CStringT > > CDaoWorkspace::GetUserNameW(void) 5617 void COleClientItem::GetUserType(enum tagUSERCLASSTYPE,ATL::CStringT > > &) 5618 void COleControl::GetUserType(wchar_t *) 5619 long CDocObjectServer::XOleObject::GetUserType(unsigned long,wchar_t * *) 5620 long COleControl::XOleObject::GetUserType(unsigned long,wchar_t * *) 5621 long COleServerDoc::XOleObject::GetUserType(unsigned long,wchar_t * *) 5622 long COleServerItem::XOleObject::GetUserType(unsigned long,wchar_t * *) 5623 ATL::CStringT > > CDaoRecordset::GetValidationRule(void) 5624 ATL::CStringT > > CDaoTableDef::GetValidationRule(void) 5625 ATL::CStringT > > CDaoRecordset::GetValidationText(void) 5626 ATL::CStringT > > CDaoTableDef::GetValidationText(void) 5627 void * CMapPtrToPtr::GetValueAt(void *)const 5628 ATL::CStringT > > CHttpFile::GetVerb(void)const 5629 ATL::CStringT > > CDaoDatabase::GetVersion(void) 5630 ATL::CStringT > > CDaoWorkspace::GetVersion(void) 5631 unsigned long CDockState::GetVersion(void) 5632 unsigned long CPropExchange::GetVersion(void) 5633 CHtmlEditView * CHtmlEditDoc::GetView(void)const 5634 CRichEditView * CRichEditDoc::GetView(void)const 5635 long COlePropertiesDialog::XOleUIObjInfo::GetViewInfo(unsigned long,void * *,unsigned long *,int *) 5636 CSize CDC::GetViewportExt(void)const 5637 CPoint CDC::GetViewportOrg(void)const 5638 int CListCtrl::GetViewRect(tagRECT *)const 5639 long COleControl::XViewObject::GetViewStatus(unsigned long *) 5640 int CHtmlView::GetVisible(void)const 5641 unsigned int CTreeCtrl::GetVisibleCount(void)const 5642 int CFontDialog::GetWeight(void)const 5643 CSize CScrollView::GetWheelScrollDistance(CSize,int,int) 5644 long CHtmlView::GetWidth(void)const 5645 CWnd * CDC::GetWindow(void)const 5646 CWnd * CWnd::GetWindow(unsigned int)const 5647 long COleControl::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5648 long COleServerDoc::XOleInPlaceActiveObject::GetWindow(HWND__ * *) 5649 long COleFrameHook::XOleInPlaceFrame::GetWindow(HWND__ * *) 5650 long COleControl::XOleInPlaceObject::GetWindow(HWND__ * *) 5651 long COleServerDoc::XOleInPlaceObject::GetWindow(HWND__ * *) 5652 long COleControlContainer::XOleIPFrame::GetWindow(HWND__ * *) 5653 long COleClientItem::XOleIPSite::GetWindow(HWND__ * *) 5654 long COleControlSite::XOleIPSite::GetWindow(HWND__ * *) 5655 long CRichEditCntrItem::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5656 long CRichEditView::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagOIFI *) 5657 long COleClientItem::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5658 long COleControlSite::XOleIPSite::GetWindowContext(IOleInPlaceFrame * *,IOleInPlaceUIWindow * *,tagRECT *,tagRECT *,tagOIFI *) 5659 unsigned long CWnd::GetWindowContextHelpId(void)const 5660 CDC * CWnd::GetWindowDC(void) 5661 long CWnd::GetWindowedChildCount(void) 5662 CSize CDC::GetWindowExt(void)const 5663 long CWnd::GetWindowLessChildCount(void) 5664 IDropTarget * COleControl::GetWindowlessDropTarget(void) 5665 HMENU__ * CMDIFrameWnd::GetWindowMenuPopup(HMENU__ *) 5666 CPoint CDC::GetWindowOrg(void)const 5667 int CWnd::GetWindowPlacement(tagWINDOWPLACEMENT *)const 5668 void CWnd::GetWindowRect(tagRECT *)const 5669 int CWnd::GetWindowRgn(HRGN__ *)const 5670 int CWnd::GetWindowTextLengthW(void)const 5671 void COleControlSite::GetWindowTextW(ATL::CStringT > > &)const 5672 int CWnd::GetWindowTextW(wchar_t *,int)const 5673 void CWnd::GetWindowTextW(ATL::CStringT > > &)const 5674 unsigned int CRichEditCtrl::GetWordWrapMode(void)const 5675 void CListCtrl::GetWorkAreas(int,tagRECT *)const 5676 short CDaoWorkspace::GetWorkspaceCount(void) 5677 void CDaoWorkspace::GetWorkspaceInfo(int,CDaoWorkspaceInfo &,unsigned long) 5678 void CDaoWorkspace::GetWorkspaceInfo(wchar_t const *,CDaoWorkspaceInfo &,unsigned long) 5679 int CDC::GetWorldTransform(tagXFORM *)const 5680 int COleServerDoc::GetZoomFactor(tagSIZE *,tagSIZE *,tagRECT const *)const 5681 long COleDropSource::GiveFeedback(unsigned long) 5682 long COleDropSource::XDropSource::GiveFeedback(unsigned long) 5683 void CHtmlView::GoBack(void) 5684 void CHtmlView::GoForward(void) 5685 void CHtmlView::GoHome(void) 5686 void CHtmlView::GoSearch(void) 5687 void CDialog::GotoDlgCtrl(CWnd *) 5688 int CDC::GradientFill(_TRIVERTEX *,unsigned long,void *,unsigned long,unsigned long) 5689 int CWnd::GrayCtlColor(HDC__ *,HWND__ *,unsigned int,HBRUSH__ *,unsigned long) 5690 int CDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5691 int CPreviewDC::GrayStringW(CBrush *,int (__stdcall*)(HDC__ *,long,int),long,int,int,int,int,int) 5692 void CMemFile::GrowFile(unsigned long) 5693 int CWnd::HandleFloatingSysCommand(unsigned int,long) 5694 unsigned long COleMessageFilter::XMessageFilter::HandleInComingCall(unsigned long,HTASK__ *,unsigned long,tagINTERFACEINFO *) 5695 long CDialog::HandleInitDialog(unsigned int,long) 5696 long CDialogBar::HandleInitDialog(unsigned int,long) 5697 long CFormView::HandleInitDialog(unsigned int,long) 5698 long CPrintDialogEx::HandleInitDialog(unsigned int,long) 5699 long CPropertySheet::HandleInitDialog(unsigned int,long) 5700 long CScrollView::HandleMButtonDown(unsigned int,long) 5701 long CPrintDialogEx::HandleMessage(HWND__ *,unsigned int,unsigned int,long,long *) 5702 int COleControlContainer::HandleSetFocus(void) 5703 long CDialog::HandleSetFont(unsigned int,long) 5704 int COleControlContainer::HandleWindowlessMessage(unsigned int,unsigned int,long,long *) 5705 long COleControl::XPersistStorage::HandsOffStorage(void) 5706 long COleServerDoc::XPersistStorage::HandsOffStorage(void) 5707 int COleDocument::HasBlankItems(void)const 5708 int CComboBoxEx::HasEditChanged(void) 5709 int CDialogTemplate::HasFont(void)const 5710 long COlePropertyPage::XPropertyPage::Help(wchar_t const *) 5711 void CDumpContext::HexDump(wchar_t const *,unsigned char *,int,int) 5712 void * CFile::hFileNull 5713 void CWinApp::HideApplication(void) 5714 int CToolBarCtrl::HideButton(int,int) 5715 void CWnd::HideCaret(void) 5716 void CFileDialog::HideControl(int) 5717 void CRichEditCtrl::HideSelection(int,int) 5718 long CBrowserControlSite::HideUI(void) 5719 long CDHtmlDialog::HideUI(void) 5720 long CHtmlControlSite::XDocHostUIHandler::HideUI(void) 5721 int CTabCtrl::HighlightItem(int,int) 5722 int CWnd::HiliteMenuItem(CMenu *,unsigned int,unsigned int) 5723 void CDC::HIMETRICtoDP(tagSIZE *)const 5724 void CDC::HIMETRICtoLP(tagSIZE *)const 5725 int CHeaderCtrl::HitTest(_HD_HITTESTINFO *) 5726 int CListCtrl::HitTest(tagLVHITTESTINFO *)const 5727 int CListCtrl::HitTest(CPoint,unsigned int *)const 5728 unsigned long CMonthCalCtrl::HitTest(MCHITTESTINFO *) 5729 int CReBarCtrl::HitTest(_RB_HITTESTINFO *) 5730 int CRectTracker::HitTest(CPoint)const 5731 int CSplitterWnd::HitTest(CPoint)const 5732 int CTabCtrl::HitTest(tagTCHITTESTINFO *)const 5733 int CToolBarCtrl::HitTest(tagPOINT *)const 5734 int CToolTipCtrl::HitTest(CWnd *,CPoint,tagTOOLINFOW *)const 5735 _TREEITEM * CTreeCtrl::HitTest(tagTVHITTESTINFO *)const 5736 _TREEITEM * CTreeCtrl::HitTest(CPoint,unsigned int *)const 5737 int CRectTracker::HitTestHandles(CPoint)const 5738 void CWinApp::HtmlHelpW(unsigned long,unsigned int) 5739 void CWnd::HtmlHelpW(unsigned long,unsigned int) 5740 int CSplitterWnd::IdFromRowCol(int,int)const 5741 void CDaoWorkspace::Idle(int) 5742 int CReBarCtrl::IDToIndex(unsigned int)const 5743 void COlePropertyPage::IgnoreApply(unsigned int) 5744 int COleControl::IgnoreWindowMessage(unsigned int,unsigned int,long,long *) 5745 int CToolBarCtrl::Indeterminate(int,int) 5746 int CCriticalSection::Init(void) 5747 int CWinApp::InitApplication(void) 5748 long COleControl::XOleCache::InitCache(IDataObject *) 5749 int CWnd::InitControlContainer(int) 5750 void CDaoWorkspace::InitDatabasesCollection(void) 5751 DLGTEMPLATE const * CPropertyPage::InitDialogInfo(DLGTEMPLATE const *) 5752 long CPrintDialogEx::InitDone(void) 5753 void CDaoException::InitErrorsCollection(void) 5754 void CDaoQueryDef::InitFieldsCollection(void) 5755 void CDaoRecordset::InitFieldsCollection(void) 5756 void CDaoTableDef::InitFieldsCollection(void) 5757 long CDocObjectServer::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5758 long COleControl::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5759 long COleServerDoc::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5760 long COleServerItem::XOleObject::InitFromData(IDataObject *,int,unsigned long) 5761 void CMapPtrToPtr::InitHashTable(unsigned int,int) 5762 void CMapPtrToWord::InitHashTable(unsigned int,int) 5763 void CMapStringToOb::InitHashTable(unsigned int,int) 5764 void CMapStringToPtr::InitHashTable(unsigned int,int) 5765 void CMapStringToString::InitHashTable(unsigned int,int) 5766 void CMapWordToOb::InitHashTable(unsigned int,int) 5767 void CMapWordToPtr::InitHashTable(unsigned int,int) 5768 long CDataSourceControl::Initialize(void) 5769 void CDHtmlDialog::Initialize(void) 5770 void CDaoWorkspace::InitializeEngine(void) 5771 void CFontHolder::InitializeFont(tagFONTDESC const *,IDispatch *) 5772 void COleControl::InitializeIIDs(_GUID const *,_GUID const *) 5773 int CEditView::InitializeReplace(void) 5774 void CDocTemplate::InitialUpdateFrame(CFrameWnd *,CDocument *,int) 5775 void CFrameWnd::InitialUpdateFrame(CDocument *,int) 5776 void CDaoRecordset::InitIndexesCollection(void) 5777 void CDaoTableDef::InitIndexesCollection(void) 5778 int COleControlModule::InitInstance(void) 5779 int CWinApp::InitInstance(void) 5780 int CWinThread::InitInstance(void) 5781 void CWinApp::InitLibId(void) 5782 void CDockContext::InitLoop(void) 5783 int CDialog::InitModalIndirect(void *,CWnd *) 5784 int CDialog::InitModalIndirect(DLGTEMPLATE const *,CWnd *,void *) 5785 long COleControl::XPersistMemory::InitNew(void) 5786 long COleControl::XPersistPropertyBag::InitNew(void) 5787 long COleControl::XPersistStorage::InitNew(IStorage *) 5788 long COleServerDoc::XPersistStorage::InitNew(IStorage *) 5789 long COleControl::XPersistStreamInit::InitNew(void) 5790 void CDaoQueryDef::InitParametersCollection(void) 5791 void CDaoDatabase::InitQueryDefsCollection(void) 5792 void CRecordset::InitRecord(void) 5793 void CDaoDatabase::InitRelationsCollection(void) 5794 void COleControl::InitStockEventMask(void) 5795 void COleControl::InitStockPropMask(void) 5796 int CComboBox::InitStorage(int,unsigned int) 5797 int CListBox::InitStorage(int,unsigned int) 5798 void CSimpleException::InitString(void) 5799 void CDaoDatabase::InitTableDefsCollection(void) 5800 void CDaoDatabase::InitWorkspace(void) 5801 void CDaoWorkspace::InitWorkspacesCollection(void) 5802 int CFrameWnd::InModalState(void)const 5803 long COleControl::XOleInPlaceObject::InPlaceDeactivate(void) 5804 long COleServerDoc::XOleInPlaceObject::InPlaceDeactivate(void) 5805 int ATL::CStringT > >::Insert(int,wchar_t) 5806 int ATL::CStringT > >::Insert(int,wchar_t const *) 5807 int ATL::CStringT > >::Insert(int,char) 5808 int ATL::CStringT > >::Insert(int,char const *) 5809 int CDockBar::Insert(CControlBar *,CRect,CPoint) 5810 __POSITION * CObList::InsertAfter(__POSITION *,CObject *) 5811 __POSITION * CPtrList::InsertAfter(__POSITION *,void *) 5812 __POSITION * CStringList::InsertAfter(__POSITION *,ATL::CStringT > > const &) 5813 __POSITION * CStringList::InsertAfter(__POSITION *,wchar_t const *) 5814 void CByteArray::InsertAt(int,unsigned char,int) 5815 void CByteArray::InsertAt(int,CByteArray *) 5816 void CDWordArray::InsertAt(int,unsigned long,int) 5817 void CDWordArray::InsertAt(int,CDWordArray *) 5818 void CObArray::InsertAt(int,CObArray *) 5819 void CObArray::InsertAt(int,CObject *,int) 5820 void CPtrArray::InsertAt(int,CPtrArray *) 5821 void CPtrArray::InsertAt(int,void *,int) 5822 void CStringArray::InsertAt(int,ATL::CStringT > > const &,int) 5823 void CStringArray::InsertAt(int,wchar_t const *,int) 5824 void CStringArray::InsertAt(int,CStringArray const *) 5825 void CUIntArray::InsertAt(int,unsigned int,int) 5826 void CUIntArray::InsertAt(int,CUIntArray *) 5827 void CWordArray::InsertAt(int,unsigned short,int) 5828 void CWordArray::InsertAt(int,CWordArray *) 5829 int CReBarCtrl::InsertBand(unsigned int,tagREBARBANDINFOW *) 5830 __POSITION * CObList::InsertBefore(__POSITION *,CObject *) 5831 __POSITION * CPtrList::InsertBefore(__POSITION *,void *) 5832 __POSITION * CStringList::InsertBefore(__POSITION *,ATL::CStringT > > const &) 5833 __POSITION * CStringList::InsertBefore(__POSITION *,wchar_t const *) 5834 int CToolBarCtrl::InsertButton(int,_TBBUTTON *) 5835 int CListCtrl::InsertColumn(int,wchar_t const *,int,int,int) 5836 int CListCtrl::InsertColumn(int,tagLVCOLUMNW const *) 5837 void CStringArray::InsertEmpty(int,int) 5838 void CRichEditView::InsertFileAsObject(wchar_t const *) 5839 int CComboBoxEx::InsertItem(tagCOMBOBOXEXITEMW const *) 5840 int CHeaderCtrl::InsertItem(int,_HD_ITEMW *) 5841 int CListCtrl::InsertItem(int,wchar_t const *) 5842 int CListCtrl::InsertItem(int,wchar_t const *,int) 5843 int CListCtrl::InsertItem(unsigned int,int,wchar_t const *,unsigned int,unsigned int,int,long) 5844 int CListCtrl::InsertItem(tagLVITEMW const *) 5845 long CRichEditView::InsertItem(CRichEditCntrItem *) 5846 long CTabCtrl::InsertItem(int,tagTCITEMW *) 5847 long CTabCtrl::InsertItem(int,wchar_t const *) 5848 long CTabCtrl::InsertItem(int,wchar_t const *,int) 5849 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long) 5850 long CTabCtrl::InsertItem(unsigned int,int,wchar_t const *,int,long,unsigned long,unsigned long) 5851 _TREEITEM * CTreeCtrl::InsertItem(unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,_TREEITEM *,_TREEITEM *) 5852 _TREEITEM * CTreeCtrl::InsertItem(tagTVINSERTSTRUCTW *) 5853 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,int,int,_TREEITEM *,_TREEITEM *) 5854 _TREEITEM * CTreeCtrl::InsertItem(wchar_t const *,_TREEITEM *,_TREEITEM *) 5855 int CToolBarCtrl::InsertMarkHitTest(tagPOINT *,TBINSERTMARK *)const 5856 int CMenu::InsertMenuItemW(unsigned int,tagMENUITEMINFOW *,int) 5857 long COleFrameHook::XOleInPlaceFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5858 long COleControlContainer::XOleIPFrame::InsertMenus(HMENU__ *,tagOleMenuGroupWidths *) 5859 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 5860 int CMenu::InsertMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 5861 int CComboBox::InsertString(int,wchar_t const *) 5862 int CComboBoxEx::InsertString(int,wchar_t const *) 5863 int CListBox::InsertString(int,wchar_t const *) 5864 unsigned long CCmdTarget::InternalAddRef(void) 5865 CFontHolder & COleControl::InternalGetFont(void) 5866 ATL::CStringT > > const & COleControl::InternalGetText(void) 5867 unsigned long CCmdTarget::InternalQueryInterface(void const *,void * *) 5868 unsigned long CCmdTarget::InternalRelease(void) 5869 void COleControl::InternalSetReadyState(long) 5870 int CDC::IntersectClipRect(int,int,int,int) 5871 int CDC::IntersectClipRect(tagRECT const *) 5872 void CWnd::Invalidate(int) 5873 void CCheckListBox::InvalidateCheck(int) 5874 void COleControl::InvalidateControl(tagRECT const *,int) 5875 void CCheckListBox::InvalidateItem(int) 5876 void CRichEditDoc::InvalidateObjectCache(void) 5877 void CWnd::InvalidateRect(tagRECT const *,int) 5878 long COleControlSite::XOleIPSite::InvalidateRect(tagRECT const *,int) 5879 void COleControl::InvalidateRgn(CRgn *,int) 5880 void CWnd::InvalidateRgn(CRgn *,int) 5881 long COleControlSite::XOleIPSite::InvalidateRgn(HRGN__ *,int) 5882 void CDC::InvertRect(tagRECT const *) 5883 int CDC::InvertRgn(CRgn *) 5884 long CDHtmlControlSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5885 long CDHtmlElementEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5886 long CDHtmlEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5887 long COleDispatchImpl::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5888 long CWnd::XAccessible::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5889 long COleControlSite::XAmbientProps::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5890 long COleControlSite::XEventSink::Invoke(long,_GUID const &,unsigned long,unsigned short,tagDISPPARAMS *,tagVARIANT *,tagEXCEPINFO *,unsigned int *) 5891 long CDHtmlControlSink::InvokeFromFuncInfo(void (CDHtmlSinkHandler::*)(void),ATL::_ATL_FUNC_INFO &,tagDISPPARAMS *,tagVARIANT *) 5892 void COleControlSite::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5893 void COleDispatchDriver::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5894 void CWnd::InvokeHelper(long,unsigned short,unsigned short,void *,unsigned char const *,...) 5895 void COleControlSite::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5896 void COleDispatchDriver::InvokeHelperV(long,unsigned short,unsigned short,void *,unsigned char const *,char *) 5897 int CAsyncSocket::IOCtl(long,unsigned long *) 5898 int CThemeHelper::IsAppThemed(void) 5899 int CThemeHelper::IsAppThemedFail(void) 5900 int CFileFind::IsArchived(void)const 5901 int CPropExchange::IsAsynchronous(void) 5902 int CDocItem::IsBlank(void)const 5903 int CIPAddressCtrl::IsBlank(void)const 5904 int COleServerItem::IsBlank(void)const 5905 int CSocket::IsBlocking(void) 5906 int CDaoRecordset::IsBOF(void)const 5907 int CRecordset::IsBOF(void)const 5908 int CFontDialog::IsBold(void)const 5909 int CArchive::IsBufferEmpty(void)const 5910 int CToolBarCtrl::IsButtonChecked(int)const 5911 int CPropertyPage::IsButtonEnabled(int) 5912 int CToolBarCtrl::IsButtonEnabled(int)const 5913 int CToolBarCtrl::IsButtonHidden(int)const 5914 int CToolBarCtrl::IsButtonHighlighted(int)const 5915 int CToolBarCtrl::IsButtonIndeterminate(int)const 5916 int CToolBarCtrl::IsButtonPressed(int)const 5917 int CArchive::IsByteSwapping(void)const 5918 int CMonthCalCtrl::IsCenturyView(void)const 5919 int CWnd::IsChild(CWnd const *)const 5920 int CSplitterWnd::IsChildPane(CWnd *,int &,int &) 5921 int CSplitterWnd::IsChildPane(CWnd *,int *,int *) 5922 int CFileFind::IsCompressed(void)const 5923 int COleServerItem::IsConnected(void)const 5924 int COleControl::IsConvertingVBX(void) 5925 int COleDataObject::IsDataAvailable(unsigned short,tagFORMATETC *) 5926 int CMonthCalCtrl::IsDecadeView(void)const 5927 int COleControlSite::IsDefaultButton(void) 5928 int CDaoRecordset::IsDeleted(void)const 5929 int CRecordset::IsDeleted(void)const 5930 int CRuntimeClass::IsDerivedFrom(CRuntimeconst *)const 5931 int COccManager::IsDialogMessageW(CWnd *,tagMSG *) 5932 int CWnd::IsDialogMessageW(tagMSG *) 5933 int CFileFind::IsDirectory(void)const 5934 long CBlobProperty::IsDirty(void) 5935 long COleLinkingDoc::XPersistFile::IsDirty(void) 5936 long COleControl::XPersistMemory::IsDirty(void) 5937 long COleControl::XPersistStorage::IsDirty(void) 5938 long COleServerDoc::XPersistStorage::IsDirty(void) 5939 long COleControl::XPersistStreamInit::IsDirty(void) 5940 unsigned int COleControlContainer::IsDlgButtonChecked(int)const 5941 unsigned int CWnd::IsDlgButtonChecked(int)const 5942 int CControlBar::IsDockBar(void)const 5943 int CDockBar::IsDockBar(void)const 5944 int COleServerDoc::IsDocObject(void)const 5945 int CFileFind::IsDots(void)const 5946 int CGopherFileFind::IsDots(void)const 5947 int COleServerDoc::IsEmbedded(void)const 5948 bool ATL::CSimpleStringT::IsEmpty(void)const 5949 bool ATL::CSimpleStringT::IsEmpty(void)const 5950 int CByteArray::IsEmpty(void)const 5951 int CDWordArray::IsEmpty(void)const 5952 int CMapPtrToPtr::IsEmpty(void)const 5953 int CMapPtrToWord::IsEmpty(void)const 5954 int CMapStringToOb::IsEmpty(void)const 5955 int CMapStringToPtr::IsEmpty(void)const 5956 int CMapStringToString::IsEmpty(void)const 5957 int CMapWordToOb::IsEmpty(void)const 5958 int CMapWordToPtr::IsEmpty(void)const 5959 int CObArray::IsEmpty(void)const 5960 int CObList::IsEmpty(void)const 5961 int CPtrArray::IsEmpty(void)const 5962 int CPtrList::IsEmpty(void)const 5963 int CStringArray::IsEmpty(void)const 5964 int CStringList::IsEmpty(void)const 5965 int CUIntArray::IsEmpty(void)const 5966 int CWordArray::IsEmpty(void)const 5967 int CCheckListBox::IsEnabled(int) 5968 int CDaoRecordset::IsEOF(void)const 5969 int CRecordset::IsEOF(void)const 5970 int CDHtmlDialog::IsExternalDispatchSafe(void) 5971 int CDaoRecordset::IsFieldDirty(void *) 5972 int CRecordset::IsFieldDirty(void *) 5973 int CDaoRecordset::IsFieldNull(void *) 5974 int CRecordset::IsFieldNull(void *) 5975 int CDaoRecordset::IsFieldNullable(void *) 5976 int CRecordset::IsFieldNullable(void *) 5977 int CRecordset::IsFieldNullable(unsigned long)const 5978 int CDaoRecordset::IsFieldStatusDirty(unsigned int) 5979 int CRecordset::IsFieldStatusDirty(unsigned long)const 5980 int CDaoRecordset::IsFieldStatusNull(unsigned int) 5981 int CRecordset::IsFieldStatusNull(unsigned long)const 5982 int CDaoRecordset::IsFieldStatusNullable(unsigned int) 5983 int CDaoRecordset::IsFieldStatusNullableKnown(unsigned int) 5984 int CFieldExchange::IsFieldType(unsigned int *) 5985 int CControlBar::IsFloating(void)const 5986 int CFrameWnd::IsFrameWnd(void)const 5987 int CWnd::IsFrameWnd(void)const 5988 int IsHelpKey(tagMSG *) 5989 int CFileFind::IsHidden(void)const 5990 int CWnd::IsIconic(void)const 5991 int CWinThread::IsIdleMessage(tagMSG *) 5992 int COleClientItem::IsInPlaceActive(void)const 5993 int COleServerDoc::IsInPlaceActive(void)const 5994 int CCmdTarget::IsInvokeAllowed(long) 5995 int COleControl::IsInvokeAllowed(long) 5996 int CFontDialog::IsItalic(void)const 5997 int CRecordset::IsJoin(wchar_t const *) 5998 int CObject::IsKindOf(CRuntimeconst *)const 5999 int COccManager::IsLabelControl(COleControlSiteOrWnd *) 6000 int COccManager::IsLabelControl(CWnd *) 6001 int COleObjectFactory::IsLicenseValid(void) 6002 int COleServerItem::IsLinkedItem(void)const 6003 int COleClientItem::IsLinkUpToDate(void)const 6004 int CArchive::IsLoading(void)const 6005 int CPropExchange::IsLoading(void) 6006 int CMultiLock::IsLocked(unsigned long) 6007 int CSingleLock::IsLocked(void) 6008 int CControlCreationInfo::IsManaged(void)const 6009 int CRichEditCntrItem::IsMarked(void) 6010 int CDaoRecordset::IsMatch(void) 6011 int COccManager::IsMatchingMnemonic(COleControlSiteOrWnd *,tagMSG *) 6012 int COccManager::IsMatchingMnemonic(CWnd *,tagMSG *) 6013 int COleControlSite::IsMatchingMnemonic(tagMSG *) 6014 int CPropertySheet::IsModeless(void)const 6015 int CDocument::IsModified(void) 6016 int CHtmlEditDoc::IsModified(void) 6017 int COleClientItem::IsModified(void)const 6018 int COleControl::IsModified(void) 6019 int COlePropertyPage::IsModified(void) 6020 int CRichEditDoc::IsModified(void) 6021 int CMonthCalCtrl::IsMonthView(void)const 6022 int CDaoWorkspace::IsNew(void)const 6023 int CFileFind::IsNormal(void)const 6024 int CDaoFieldExchange::IsNullValue(void *,unsigned long) 6025 int CDaoRecordView::IsOnFirstRecord(void) 6026 int CRecordView::IsOnFirstRecord(void) 6027 int CDaoRecordView::IsOnLastRecord(void) 6028 int CRecordView::IsOnLastRecord(void) 6029 int CDaoDatabase::IsOpen(void)const 6030 int CDaoQueryDef::IsOpen(void)const 6031 int CDaoRecordset::IsOpen(void)const 6032 int CDaoTableDef::IsOpen(void)const 6033 int CDaoWorkspace::IsOpen(void)const 6034 int CDatabase::IsOpen(void)const 6035 int COleClientItem::IsOpen(void)const 6036 int CRecordset::IsOpen(void)const 6037 int COleControl::IsOptimizedDraw(void) 6038 long COlePropertyPage::XPropertyPage::IsPageDirty(void) 6039 int CRecordset::IsParamStatusNull(unsigned long)const 6040 int CAnimateCtrl::IsPlaying(void)const 6041 int CDC::IsPrinting(void)const 6042 int CFileFind::IsReadOnly(void)const 6043 int CRecordset::IsRecordsetUpdatable(void) 6044 int COleObjectFactory::IsRegistered(void)const 6045 int CCmdTarget::IsResultExpected(void) 6046 int CRichEditView::IsRichEditFormat(unsigned short) 6047 int COleClientItem::IsRunning(void)const 6048 long COleLinkingDoc::XOleItemContainer::IsRunning(wchar_t *) 6049 int CRichEditView::IsSelected(CObject const *)const 6050 int CView::IsSelected(CObject const *)const 6051 int CRecordset::IsSelectQueryUpdatable(wchar_t const *) 6052 int CObject::IsSerializable(void)const 6053 int COleMessageFilter::IsSignificantMessage(tagMSG *) 6054 int CStatusBarCtrl::IsSimple(void)const 6055 int CDHtmlDialog::IsSinkedElement(IDispatch *) 6056 int CRecordset::IsSQLUpdatable(wchar_t const *) 6057 int CArchive::IsStoring(void)const 6058 int CFontDialog::IsStrikeOut(void)const 6059 int COleControl::IsSubclassedControl(void) 6060 int CFileFind::IsSystem(void)const 6061 int CFileFind::IsTemporary(void)const 6062 int CFindReplaceDialog::IsTerminating(void)const 6063 int CThemeHelper::IsThemeBackgroundPartiallyTransparent(void *,int,int) 6064 int CThemeHelper::IsThemeBackgroundPartiallyTransparentFail(void *,int,int) 6065 int CThemeHelper::IsThemePartDefined(void *,int,int) 6066 int CThemeHelper::IsThemePartDefinedFail(void *,int,int) 6067 int CWnd::IsTopParentActive(void)const 6068 int CFrameWnd::IsTracking(void)const 6069 int CSplitterWnd::IsTracking(void) 6070 int CFontDialog::IsUnderline(void)const 6071 long CDocObjectServer::XOleObject::IsUpToDate(void) 6072 long COleControl::XOleObject::IsUpToDate(void) 6073 long COleServerDoc::XOleObject::IsUpToDate(void) 6074 long COleServerItem::XOleObject::IsUpToDate(void) 6075 int CDaoFieldExchange::IsValidOperation(void) 6076 int COleChangeSourceDialog::IsValidSource(void) 6077 int CControlBar::IsVisible(void)const 6078 int COleControlSite::IsWindowEnabled(void)const 6079 int CWnd::IsWindowEnabled(void)const 6080 int CWnd::IsWindowVisible(void)const 6081 int CPropertySheet::IsWizard(void)const 6082 int CMonthCalCtrl::IsYearView(void)const 6083 int CWnd::IsZoomed(void)const 6084 unsigned int CListBox::ItemFromPoint(CPoint,int &)const 6085 int CDragListBox::ItemFromPt(CPoint,int)const 6086 int CTreeCtrl::ItemHasChildren(_TREEITEM *)const 6087 void COleControl::KeyDown(unsigned short *) 6088 void COleControl::KeyUp(unsigned short *) 6089 void CAsyncSocket::KillSocket(unsigned int,CAsyncSocket *) 6090 int CWnd::KillTimer(unsigned int) 6091 int CHeaderCtrl::Layout(_HD_LAYOUT *) 6092 void CToolBar::Layout(void) 6093 ATL::CStringT > > ATL::CStringT > >::Left(int)const 6094 ATL::CStringT > > ATL::CStringT > >::Left(int)const 6095 int CComboBox::LimitText(int) 6096 void CEdit::LimitText(int) 6097 void CRichEditCtrl::LimitText(long) 6098 int CEdit::LineFromChar(int)const 6099 long CRichEditCtrl::LineFromChar(long)const 6100 int CEdit::LineIndex(int)const 6101 int CRichEditCtrl::LineIndex(int)const 6102 int CEdit::LineLength(int)const 6103 int CRichEditCtrl::LineLength(int)const 6104 void CEdit::LineScroll(int,int) 6105 void CRichEditCtrl::LineScroll(int,int) 6106 int CDC::LineTo(int,int) 6107 int CDC::LineTo(tagPOINT) 6108 int CAsyncSocket::Listen(int) 6109 unsigned long CRichEditView::lMaxSize 6110 long CBlobProperty::Load(IStream *) 6111 int CDialogTemplate::Load(wchar_t const *) 6112 void COleControl::Load(wchar_t const *,CDataPathProperty &) 6113 CRuntime* CRuntimeClass::Load(CArchive &,unsigned int *) 6114 long COleLinkingDoc::XPersistFile::Load(wchar_t const *,unsigned long) 6115 long COleControl::XPersistMemory::Load(void *,unsigned long) 6116 long COleControl::XPersistPropertyBag::Load(IPropertyBag *,IErrorLog *) 6117 long COleControl::XPersistStorage::Load(IStorage *) 6118 long COleServerDoc::XPersistStorage::Load(IStorage *) 6119 long COleControl::XPersistStreamInit::Load(IStream *) 6120 int CFrameWnd::LoadAccelTable(wchar_t const *) 6121 HINSTANCE__ * CWinApp::LoadAppLangResourceDLL(void) 6122 void CFrameWnd::LoadBarState(wchar_t const *) 6123 int CBitmapButton::LoadBitmaps(unsigned int,unsigned int,unsigned int,unsigned int) 6124 int CBitmapButton::LoadBitmaps(wchar_t const *,wchar_t const *,wchar_t const *,wchar_t const *) 6125 int CBitmap::LoadBitmapW(unsigned int) 6126 int CBitmap::LoadBitmapW(wchar_t const *) 6127 int CToolBar::LoadBitmapW(unsigned int) 6128 int CToolBar::LoadBitmapW(wchar_t const *) 6129 HICON__ * CWinApp::LoadCursorW(unsigned int)const 6130 HICON__ * CWinApp::LoadCursorW(wchar_t const *)const 6131 void CDaoRecordset::LoadFields(void) 6132 void CRecordset::LoadFields(void) 6133 int CFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6134 int CMDIChildWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6135 int CMDIFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6136 int COleIPFrameWnd::LoadFrame(unsigned int,unsigned long,CWnd *,CCreateContext *) 6137 int CDHtmlDialog::LoadFromResource(unsigned int) 6138 int CDHtmlDialog::LoadFromResource(wchar_t const *) 6139 int CHtmlView::LoadFromResource(unsigned int) 6140 int CHtmlView::LoadFromResource(wchar_t const *) 6141 void COleDocument::LoadFromStorage(void) 6142 HICON__ * CWinApp::LoadIconW(unsigned int)const 6143 HICON__ * CWinApp::LoadIconW(wchar_t const *)const 6144 void CToolBarCtrl::LoadImages(int,HINSTANCE__ *) 6145 int CBitmap::LoadMappedBitmap(unsigned int,unsigned int,_COLORMAP *,int) 6146 int CMenu::LoadMenuIndirectW(void const *) 6147 int CMenu::LoadMenuW(unsigned int) 6148 int CMenu::LoadMenuW(wchar_t const *) 6149 int CBitmap::LoadOEMBitmap(unsigned int) 6150 HICON__ * CWinApp::LoadOEMCursor(unsigned int)const 6151 HICON__ * CWinApp::LoadOEMIcon(unsigned int)const 6152 HICON__ * CWinApp::LoadStandardCursor(wchar_t const *)const 6153 HICON__ * CWinApp::LoadStandardIcon(wchar_t const *)const 6154 int CControlBarInfo::LoadState(wchar_t const *,int,CDockState *) 6155 void CDockState::LoadState(wchar_t const *) 6156 long COleControl::LoadState(IStream *) 6157 void CWinApp::LoadStdProfileSettings(unsigned int) 6158 int ATL::CStringT > >::LoadStringW(unsigned int) 6159 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 6160 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 6161 int ATL::CStringT > >::LoadStringW(unsigned int) 6162 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int) 6163 int ATL::CStringT > >::LoadStringW(HINSTANCE__ *,unsigned int,unsigned short) 6164 int CWinApp::LoadSysPolicies(void) 6165 void CDocTemplate::LoadTemplate(void) 6166 void CMultiDocTemplate::LoadTemplate(void) 6167 int CToolBar::LoadToolBar(unsigned int) 6168 int CToolBar::LoadToolBar(wchar_t const *) 6169 int CCriticalSection::Lock(void) 6170 int CCriticalSection::Lock(unsigned long) 6171 unsigned long CMultiLock::Lock(unsigned long,int,unsigned long) 6172 void COleSafeArray::Lock(void) 6173 int CSingleLock::Lock(unsigned long) 6174 int CSyncObject::Lock(unsigned long) 6175 void CTypeLibCache::Lock(void) 6176 wchar_t * ATL::CSimpleStringT::LockBuffer(void) 6177 char * ATL::CSimpleStringT::LockBuffer(void) 6178 wchar_t const * CEditView::LockBuffer(void)const 6179 long COleControlContainer::XOleContainer::LockContainer(int) 6180 long COleLinkingDoc::XOleItemContainer::LockContainer(int) 6181 void COleLinkingDoc::LockExternal(int,int) 6182 int COleControl::LockInPlaceActive(int) 6183 long COleControlSite::XOleControlSite::LockInPlaceActive(int) 6184 void CFile::LockRange(unsigned __int64,unsigned __int64) 6185 void CInternetFile::LockRange(unsigned __int64,unsigned __int64) 6186 void CMemFile::LockRange(unsigned __int64,unsigned __int64) 6187 void COleStreamFile::LockRange(unsigned __int64,unsigned __int64) 6188 void CSocketFile::LockRange(unsigned __int64,unsigned __int64) 6189 void CStdioFile::LockRange(unsigned __int64,unsigned __int64) 6190 long CArchiveStream::LockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 6191 long COleObjectFactory::XClassFactory::LockServer(int) 6192 int CWnd::LockWindowUpdate(void) 6193 int CMapPtrToPtr::Lookup(void *,void * &)const 6194 int CMapPtrToWord::Lookup(void *,unsigned short &)const 6195 int CMapStringToOb::Lookup(wchar_t const *,CObject * &)const 6196 int CMapStringToPtr::Lookup(wchar_t const *,void * &)const 6197 int CMapStringToString::Lookup(wchar_t const *,ATL::CStringT > > &)const 6198 int CMapWordToOb::Lookup(unsigned short,CObject * &)const 6199 int CMapWordToPtr::Lookup(unsigned short,void * &)const 6200 AFX_DATACACHE_ENTRY * COleDataSource::Lookup(tagFORMATETC *,enum tagDATADIR)const 6201 int CTypeLibCache::Lookup(unsigned long,ITypeLib * *) 6202 CAsyncSocket * CAsyncSocket::LookupHandle(unsigned int,int) 6203 CRichEditCntrItem * CRichEditDoc::LookupItem(IOleObject *)const 6204 int CMapStringToOb::LookupKey(wchar_t const *,wchar_t const * &)const 6205 int CMapStringToPtr::LookupKey(wchar_t const *,wchar_t const * &)const 6206 int CMapStringToString::LookupKey(wchar_t const *,wchar_t const * &)const 6207 int CTypeLibCache::LookupTypeInfo(unsigned long,_GUID const &,ITypeInfo * *) 6208 void CDC::LPtoDP(tagPOINT *,int)const 6209 void CDC::LPtoDP(tagRECT *)const 6210 void CDC::LPtoDP(tagSIZE *)const 6211 void CDC::LPtoHIMETRIC(tagSIZE *)const 6212 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 6213 ATL::CStringT > > & ATL::CStringT > >::MakeLower(void) 6214 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 6215 ATL::CStringT > > & ATL::CStringT > >::MakeReverse(void) 6216 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 6217 ATL::CStringT > > & ATL::CStringT > >::MakeUpper(void) 6218 int CToolBarCtrl::MapAccelerator(wchar_t,unsigned int *) 6219 _TREEITEM * CTreeCtrl::MapAccIdToItem(unsigned int)const 6220 void CDialog::MapDialogRect(tagRECT *)const 6221 void CPropertySheet::MapDialogRect(tagRECT *)const 6222 unsigned int CTreeCtrl::MapItemToAccId(_TREEITEM *)const 6223 void CArchive::MapObject(CObject const *) 6224 long COleControl::XPerPropertyBrowsing::MapPropertyToPage(long,_GUID *) 6225 int COleDialog::MapResult(unsigned int) 6226 void CWnd::MapWindowPoints(CWnd *,tagPOINT *,unsigned int)const 6227 void CWnd::MapWindowPoints(CWnd *,tagRECT *)const 6228 long CPropertyPage::MapWizardResult(long) 6229 void CRichEditCntrItem::Mark(int) 6230 int CToolBarCtrl::MarkButton(int,int) 6231 void CDaoRecordset::MarkForAddNew(void) 6232 void CRecordset::MarkForAddNew(void) 6233 void CDaoRecordset::MarkForEdit(void) 6234 void CRecordset::MarkForUpdate(void) 6235 void CRichEditDoc::MarkItemsClear(void)const 6236 int CDC::MaskBlt(int,int,int,int,CDC *,int,int,CBitmap &,int,int,unsigned long) 6237 int CFindReplaceDialog::MatchCase(void)const 6238 enum CDocTemplate::Confidence CDocTemplate::MatchDocType(wchar_t const *,CDocument * &) 6239 int CFileFind::MatchesMask(unsigned long)const 6240 int CFindReplaceDialog::MatchWholeWord(void)const 6241 void CReBarCtrl::MaximizeBand(unsigned int) 6242 void CMDIChildWnd::MDIActivate(void) 6243 void CMDIFrameWnd::MDIActivate(CWnd *) 6244 void CMDIFrameWnd::MDICascade(int) 6245 void CMDIFrameWnd::MDICascade(void) 6246 void CMDIChildWnd::MDIDestroy(void) 6247 CMDIChildWnd * CMDIFrameWnd::MDIGetActive(int *)const 6248 void CMDIFrameWnd::MDIIconArrange(void) 6249 void CMDIChildWnd::MDIMaximize(void) 6250 void CMDIFrameWnd::MDIMaximize(CWnd *) 6251 void CMDIFrameWnd::MDINext(void) 6252 void CMDIFrameWnd::MDIPrev(void) 6253 void CMDIChildWnd::MDIRestore(void) 6254 void CMDIFrameWnd::MDIRestore(CWnd *) 6255 CMenu * CMDIFrameWnd::MDISetMenu(CMenu *,CMenu *) 6256 void CMDIFrameWnd::MDITile(int) 6257 void CMDIFrameWnd::MDITile(void) 6258 void CCheckListBox::MeasureItem(tagMEASUREITEM*) 6259 void CChevronOwnerDrawMenu::MeasureItem(tagMEASUREITEM*) 6260 void CComboBox::MeasureItem(tagMEASUREITEM*) 6261 void CListBox::MeasureItem(tagMEASUREITEM*) 6262 void CMenu::MeasureItem(tagMEASUREITEM*) 6263 long CCmdTarget::MemberIDFromName(AFX_DISPMAP const *,wchar_t const *) 6264 unsigned char * CMemFile::Memcpy(unsigned char *,unsigned char const *,unsigned long) 6265 int COlePropertyPage::MessageBox(wchar_t const *,wchar_t const *,unsigned int) 6266 int CWnd::MessageBox(wchar_t const *,wchar_t const *,unsigned int) 6267 int COlePropertyPage::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 6268 int CWnd::MessageBoxW(wchar_t const *,wchar_t const *,unsigned int) 6269 unsigned long COleMessageFilter::XMessageFilter::MessagePending(HTASK__ *,unsigned long,unsigned long) 6270 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 6271 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 6272 ATL::CStringT > > ATL::CStringT > >::Mid(int)const 6273 ATL::CStringT > > ATL::CStringT > >::Mid(int,int)const 6274 void CReBarCtrl::MinimizeBand(unsigned int) 6275 void CPreviewDC::MirrorAttributes(void) 6276 void CPreviewDC::MirrorFont(void) 6277 void CPreviewDC::MirrorMappingMode(int) 6278 void CPreviewDC::MirrorViewportOrg(void) 6279 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,wchar_t const *) 6280 int CMenu::ModifyMenuW(unsigned int,unsigned int,unsigned int,CBitmap const *) 6281 int COleControlSite::ModifyStyle(unsigned long,unsigned long,unsigned int) 6282 int CWnd::ModifyStyle(unsigned long,unsigned long,unsigned int) 6283 int CWnd::ModifyStyle(HWND__ *,unsigned long,unsigned long,unsigned int) 6284 int COleControlSite::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 6285 int CWnd::ModifyStyleEx(unsigned long,unsigned long,unsigned int) 6286 int CWnd::ModifyStyleEx(HWND__ *,unsigned long,unsigned long,unsigned int) 6287 int CDC::ModifyWorldTransform(tagXFORM const *,unsigned long) 6288 void CDaoRecordset::Move(long) 6289 void CDockContext::Move(CPoint) 6290 void CRecordset::Move(long,unsigned short) 6291 long COlePropertyPage::XPropertyPage::Move(tagRECT const *) 6292 int CReBarCtrl::MoveBand(unsigned int,unsigned int) 6293 int CToolBarCtrl::MoveButton(unsigned int,unsigned int) 6294 void CDaoRecordset::MoveFirst(void) 6295 void CRecordset::MoveFirst(void) 6296 void CDaoRecordset::MoveLast(void) 6297 void CRecordset::MoveLast(void) 6298 void CDaoRecordset::MoveNext(void) 6299 void CRecordset::MoveNext(void) 6300 void CDaoRecordset::MovePrev(void) 6301 void CRecordset::MovePrev(void) 6302 CPoint CDC::MoveTo(int,int) 6303 CPoint CDC::MoveTo(tagPOINT) 6304 void COleControlSite::MoveWindow(int,int,int,int) 6305 void CWnd::MoveWindow(int,int,int,int,int) 6306 void CWnd::MoveWindow(tagRECT const *,int) 6307 void CDHtmlDialog::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 6308 void CHtmlView::Navigate(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 6309 void CHtmlView::Navigate2(_ITEMIDLIST *,unsigned long,wchar_t const *) 6310 void CHtmlView::Navigate2(wchar_t const *,unsigned long,wchar_t const *,wchar_t const *,void *,unsigned long) 6311 void CHtmlView::Navigate2(wchar_t const *,unsigned long,CByteArray &,wchar_t const *,wchar_t const *) 6312 void CHtmlView::NavigateComplete2(IDispatch *,tagVARIANT *) 6313 void CHtmlView::NavigateError(IDispatch *,tagVARIANT *,tagVARIANT *,tagVARIANT *,short *) 6314 unsigned int COleDropSource::nDragDelay 6315 unsigned int COleDropSource::nDragMinDist 6316 int CFrameWnd::NegotiateBorderSpace(unsigned int,tagRECT *) 6317 CMapPtrToPtr::CAssoc * CMapPtrToPtr::NewAssoc(void) 6318 CMapPtrToWord::CAssoc * CMapPtrToWord::NewAssoc(void) 6319 CMapStringToOb::CAssoc * CMapStringToOb::NewAssoc(void) 6320 CMapStringToPtr::CAssoc * CMapStringToPtr::NewAssoc(void) 6321 CMapStringToString::CAssoc * CMapStringToString::NewAssoc(wchar_t const *) 6322 CMapWordToOb::CAssoc * CMapWordToOb::NewAssoc(void) 6323 CMapWordToPtr::CAssoc * CMapWordToPtr::NewAssoc(void) 6324 CObList::CNode * CObList::NewNode(CObList::CNode *,CObList::CNode *) 6325 CPtrList::CNode * CPtrList::NewNode(CPtrList::CNode *,CPtrList::CNode *) 6326 CStringList::CNode * CStringList::NewNode(CStringList::CNode *,CStringList::CNode *) 6327 long CEnumArray::XEnumVOID::Next(unsigned long,void *,unsigned long *) 6328 void CDialog::NextDlgCtrl(void)const 6329 unsigned int const CEditView::nMaxSize 6330 int CRectTracker::NormalizeHit(int)const 6331 void CDataBoundProperty::Notify(void) 6332 int COleFrameHook::NotifyAllInPlace(int,int (COleFrameHook::*)(int)) 6333 void COleServerDoc::NotifyAllItems(enum OLE_NOTIFICATION,unsigned long) 6334 void COleServerDoc::NotifyChanged(void) 6335 void COleServerItem::NotifyChanged(enum tagDVASPECT) 6336 void COleServerItem::NotifyClient(enum OLE_NOTIFICATION,unsigned long) 6337 void COleServerDoc::NotifyClosed(void) 6338 void CFrameWnd::NotifyFloatingWindows(unsigned long) 6339 void COleServerDoc::NotifyRename(wchar_t const *) 6340 void COleServerDoc::NotifySaved(void) 6341 void CWnd::NotifyWinEvent(unsigned long,long,long) 6342 unsigned int COleDropTarget::nScrollDelay 6343 int COleDropTarget::nScrollInset 6344 unsigned int COleDropTarget::nScrollInterval 6345 void ATL::CStringT > >::OemToCharA(void) 6346 int CDC::OffsetClipRgn(int,int) 6347 int CDC::OffsetClipRgn(tagSIZE) 6348 int CProgressCtrl::OffsetPos(int) 6349 int CRgn::OffsetRgn(int,int) 6350 int CRgn::OffsetRgn(tagPOINT) 6351 CPoint CDC::OffsetViewportOrg(int,int) 6352 CPoint CMetaFileDC::OffsetViewportOrg(int,int) 6353 CPoint CPreviewDC::OffsetViewportOrg(int,int) 6354 CPoint CDC::OffsetWindowOrg(int,int) 6355 long COleControlSite::XNotifyDBEvents::OKToDo(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 6356 void CAsyncSocket::OnAccept(int) 6357 void CControlFrameWnd::OnActivate(unsigned int,CWnd *,int) 6358 void CFrameWnd::OnActivate(unsigned int,CWnd *,int) 6359 void COleClientItem::OnActivate(void) 6360 void COleFrameHook::OnActivate(int) 6361 void CWnd::OnActivate(unsigned int,CWnd *,int) 6362 void CWnd::OnActivateApp(int,unsigned long) 6363 void CFormView::OnActivateFrame(unsigned int,CFrameWnd *) 6364 void CView::OnActivateFrame(unsigned int,CFrameWnd *) 6365 long COleControl::OnActivateInPlace(int,tagMSG *) 6366 long CFrameWnd::OnActivateTopLevel(unsigned int,long) 6367 long CWnd::OnActivateTopLevel(unsigned int,long) 6368 void COleClientItem::OnActivateUI(void) 6369 long CDocObjectServer::OnActivateView(void) 6370 void CFormView::OnActivateView(int,CView *,CView *) 6371 void CPreviewView::OnActivateView(int,CView *,CView *) 6372 void CRichEditView::OnActivateView(int,CView *,CView *) 6373 void CView::OnActivateView(int,CView *,CView *) 6374 long CToolTipCtrl::OnAddTool(unsigned int,long) 6375 void CConnectionPoint::OnAdvise(int) 6376 void COleControl::XEventConnPt::OnAdvise(int) 6377 int CWnd::OnAmbientProperty(COleControlSite *,long,tagVARIANT *) 6378 void COleControl::OnAmbientPropertyChange(long) 6379 long COleControl::XOleControl::OnAmbientPropertyChange(long) 6380 int CWnd::OnAppCommand(CWnd *,unsigned int,unsigned int,unsigned int) 6381 void COleControl::OnAppearanceChanged(void) 6382 void CWinApp::OnAppExit(void) 6383 int CPropertyPage::OnApply(void) 6384 int COlePropertiesDialog::OnApplyScale(COleClientItem *,int,int) 6385 void CDocObjectServer::OnApplyViewState(CArchive &) 6386 void CWnd::OnAskCbFormatName(unsigned int,wchar_t *) 6387 void COleControl::OnBackColorChanged(void) 6388 int CFrameWnd::OnBarCheck(unsigned int) 6389 int COleIPFrameWnd::OnBarCheck(unsigned int) 6390 void CControlBar::OnBarStyleChange(unsigned long,unsigned long) 6391 void CStatusBar::OnBarStyleChange(unsigned long,unsigned long) 6392 void CToolBar::OnBarStyleChange(unsigned long,unsigned long) 6393 void CDHtmlDialog::OnBeforeNavigate(IDispatch *,wchar_t const *) 6394 void CHtmlView::OnBeforeNavigate2(wchar_t const *,unsigned long,wchar_t const *,CByteArray &,wchar_t const *,int *) 6395 int COleDropSource::OnBeginDrag(CWnd *) 6396 void CEditView::OnBeginPrinting(CDC *,CPrintInfo *) 6397 void CRichEditView::OnBeginPrinting(CDC *,CPrintInfo *) 6398 void CView::OnBeginPrinting(CDC *,CPrintInfo *) 6399 void COleControl::OnBorderStyleChanged(void) 6400 void CRichEditView::OnBullet(void) 6401 int COleMessageFilter::OnBusyDialog(HTASK__ *) 6402 long CFileDialog::XFileDialogControlEvents::OnButtonClicked(IFileDialogCustomize *,unsigned long) 6403 void COleControl::OnButtonDblClk(unsigned short,unsigned int,CPoint) 6404 void COleControl::OnButtonDown(unsigned short,unsigned int,CPoint) 6405 void COleControl::OnButtonUp(unsigned short,unsigned int,CPoint) 6406 void CCommonDialog::OnCancel(void) 6407 void CDialog::OnCancel(void) 6408 void CPropertyPage::OnCancel(void) 6409 void CRichEditView::OnCancelEditCntr(void) 6410 void COleControl::OnCancelMode(void) 6411 void CSplitterWnd::OnCancelMode(void) 6412 void CWnd::OnCancelMode(void) 6413 void CWnd::OnCaptureChanged(CWnd *) 6414 void COleClientItem::OnChange(enum OLE_NOTIFICATION,unsigned long) 6415 void CWnd::OnChangeCbChain(HWND__ *,HWND__ *) 6416 long COleControl::XFontNotification::OnChanged(long) 6417 long COleControlSite::XPropertyNotifySink::OnChanged(long) 6418 long COlePropertyPage::XPropNotifySink::OnChanged(long) 6419 void CRectTracker::OnChangedRect(CRect const &) 6420 void CDocument::OnChangedViewList(void) 6421 int COleClientItem::OnChangeItemPosition(CRect const &) 6422 int CRichEditCntrItem::OnChangeItemPosition(CRect const &) 6423 void CWnd::OnChangeUIState(unsigned int,unsigned int) 6424 void COleControl::OnChar(unsigned int,unsigned int,unsigned int) 6425 void CWnd::OnChar(unsigned int,unsigned int,unsigned int) 6426 void CRichEditView::OnCharBold(void) 6427 void CRichEditView::OnCharEffect(unsigned long,unsigned long) 6428 void CRichEditView::OnCharItalic(void) 6429 int CWnd::OnCharToItem(unsigned int,CListBox *,unsigned int) 6430 void CRichEditView::OnCharUnderline(void) 6431 long CFileDialog::XFileDialogControlEvents::OnCheckButtonToggled(IFileDialogCustomize *,unsigned long,int) 6432 int CFrameWnd::OnChevronPushed(unsigned int,tagNMHDR *,long *) 6433 void CWnd::OnChildActivate(void) 6434 int CButton::OnChildNotify(unsigned int,unsigned int,long,long *) 6435 int CCheckListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6436 int CComboBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6437 int CDragListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6438 int CHeaderCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6439 int CListBox::OnChildNotify(unsigned int,unsigned int,long,long *) 6440 int CListCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6441 int CListView::OnChildNotify(unsigned int,unsigned int,long,long *) 6442 int CStatic::OnChildNotify(unsigned int,unsigned int,long,long *) 6443 int CStatusBar::OnChildNotify(unsigned int,unsigned int,long,long *) 6444 int CStatusBarCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6445 int CTabCtrl::OnChildNotify(unsigned int,unsigned int,long,long *) 6446 int CWnd::OnChildNotify(unsigned int,unsigned int,long,long *) 6447 void COleControl::OnClick(unsigned short) 6448 void CWnd::OnClipboardUpdate(void) 6449 CEnumArray * CEnumArray::OnClone(void) 6450 CEnumArray * CEnumConnections::OnClone(void) 6451 void CAsyncSocket::OnClose(int) 6452 void CControlFrameWnd::OnClose(void) 6453 void CFrameWnd::OnClose(void) 6454 void CMiniDockFrameWnd::OnClose(void) 6455 void COleControl::OnClose(unsigned long) 6456 void COleServerDoc::OnClose(enum tagOLECLOSE) 6457 void CPropertySheet::OnClose(void) 6458 void CWnd::OnClose(void) 6459 void COleClientItem::XAdviseSink::OnClose(void) 6460 void CDocObjectServer::OnCloseDocument(void) 6461 void CDocument::OnCloseDocument(void) 6462 void COleDocument::OnCloseDocument(void) 6463 void COleLinkingDoc::OnCloseDocument(void) 6464 void COleServerDoc::OnCloseDocument(void) 6465 int CCmdTarget::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6466 int CDialog::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6467 int CDocTemplate::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6468 int CDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6469 int CFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6470 int CHtmlEditView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6471 int CMDIFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6472 int COleCntrFrameWnd::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6473 int COleDocObjectItem::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6474 int COleDocument::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6475 int COleTemplateServer::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6476 int CPropertySheet::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6477 int CView::OnCmdMsg(unsigned int,int,void *,AFX_CMDHANDLERINFO *) 6478 void CRichEditView::OnColorDefault(void) 6479 void CWnd::OnColorizationColorChanged(unsigned long,int) 6480 int CColorDialog::OnColorOK(void) 6481 void CRichEditView::OnColorPick(unsigned long) 6482 int CFrameWnd::OnCommand(unsigned int,long) 6483 int CMDIFrameWnd::OnCommand(unsigned int,long) 6484 int COlePropertyPage::OnCommand(unsigned int,long) 6485 int CPropertySheet::OnCommand(unsigned int,long) 6486 int CSplitterWnd::OnCommand(unsigned int,long) 6487 int CWnd::OnCommand(unsigned int,long) 6488 long CDialog::OnCommandHelp(unsigned int,long) 6489 long CFrameWnd::OnCommandHelp(unsigned int,long) 6490 long CMDIFrameWnd::OnCommandHelp(unsigned int,long) 6491 long CPropertySheet::OnCommandHelp(unsigned int,long) 6492 void CHtmlView::OnCommandStateChange(long,int) 6493 void CWnd::OnCompacting(unsigned int) 6494 int CWnd::OnCompareItem(int,tagCOMPAREITEM*) 6495 void CWnd::OnCompositionChanged(void) 6496 void CAsyncSocket::OnConnect(int) 6497 void CFrameWnd::OnContextHelp(void) 6498 int COleFrameHook::OnContextHelp(int) 6499 void COleIPFrameWnd::OnContextHelp(void) 6500 void CWinApp::OnContextHelp(void) 6501 void CWnd::OnContextMenu(CWnd *,CPoint) 6502 long CFileDialog::XFileDialogControlEvents::OnControlActivating(IFileDialogCustomize *,unsigned long) 6503 long COleControlSite::XOleControlSite::OnControlInfoChanged(void) 6504 int CWnd::OnCopyData(CWnd *,tagCOPYDATA*) 6505 int CCheckListBox::OnCreate(tagCREATESTRUCTW *) 6506 int CControlBar::OnCreate(tagCREATESTRUCTW *) 6507 int CEditView::OnCreate(tagCREATESTRUCTW *) 6508 int CFormView::OnCreate(tagCREATESTRUCTW *) 6509 int CFrameWnd::OnCreate(tagCREATESTRUCTW *) 6510 int CMDIChildWnd::OnCreate(tagCREATESTRUCTW *) 6511 int COleControl::OnCreate(tagCREATESTRUCTW *) 6512 int COleIPFrameWnd::OnCreate(tagCREATESTRUCTW *) 6513 int CPreviewView::OnCreate(tagCREATESTRUCTW *) 6514 int CRichEditView::OnCreate(tagCREATESTRUCTW *) 6515 int CToolBarCtrl::OnCreate(tagCREATESTRUCTW *) 6516 int CView::OnCreate(tagCREATESTRUCTW *) 6517 int CWnd::OnCreate(tagCREATESTRUCTW *) 6518 int CCmdTarget::OnCreateAggregates(void) 6519 int COleControl::OnCreateAggregates(void) 6520 int CFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 6521 int CMDIFrameWnd::OnCreateClient(tagCREATESTRUCTW *,CCreateContext *) 6522 int COleIPFrameWnd::OnCreateControlBars(CFrameWnd *,CFrameWnd *) 6523 int COleIPFrameWnd::OnCreateControlBars(CWnd *,CWnd *) 6524 int CFrameWnd::OnCreateHelper(tagCREATESTRUCTW *,CCreateContext *) 6525 CCmdTarget * COleObjectFactory::OnCreateObject(void) 6526 CCmdTarget * COleTemplateServer::OnCreateObject(void) 6527 HBRUSH__ * CControlBar::OnCtlColor(CDC *,CWnd *,unsigned int) 6528 HBRUSH__ * COlePropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6529 HBRUSH__ * CPropertyPage::OnCtlColor(CDC *,CWnd *,unsigned int) 6530 HBRUSH__ * CPropertySheet::OnCtlColor(CDC *,CWnd *,unsigned int) 6531 HBRUSH__ * CWnd::OnCtlColor(CDC *,CWnd *,unsigned int) 6532 void CAsyncMonikerFile::OnDataAvailable(unsigned long,unsigned long) 6533 void CCachedDataPathProperty::OnDataAvailable(unsigned long,unsigned long) 6534 void COleClientItem::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6535 void COleClientItem::XAdviseSink::OnDataChange(tagFORMATETC *,tagSTGMEDIUM *) 6536 int CDocManager::OnDDECommand(wchar_t *) 6537 int CWinApp::OnDDECommand(wchar_t *) 6538 long CFrameWnd::OnDDEExecute(unsigned int,long) 6539 long CFrameWnd::OnDDEInitiate(unsigned int,long) 6540 long CFrameWnd::OnDDETerminate(unsigned int,long) 6541 void CDHtmlDialog::OnDDXError(wchar_t const *,unsigned int,int) 6542 void COleClientItem::OnDeactivate(void) 6543 void COleServerDoc::OnDeactivate(void) 6544 void COleClientItem::OnDeactivateAndUndo(void) 6545 void COleClientItem::OnDeactivateUI(int) 6546 void COleServerDoc::OnDeactivateUI(int) 6547 void CRichEditCntrItem::OnDeactivateUI(int) 6548 void CWnd::OnDeadChar(unsigned int,unsigned int,unsigned int) 6549 long COleControlSite::XOleIPSite::OnDefWindowMessage(unsigned int,unsigned int,long,long *) 6550 void CWnd::OnDeleteItem(int,tagDELETEITEM*) 6551 void CControlBar::OnDestroy(void) 6552 void CDHtmlDialog::OnDestroy(void) 6553 void CEditView::OnDestroy(void) 6554 void CFrameWnd::OnDestroy(void) 6555 void CHtmlView::OnDestroy(void) 6556 void CMDIChildWnd::OnDestroy(void) 6557 void CMDIFrameWnd::OnDestroy(void) 6558 void COleControl::OnDestroy(void) 6559 void COleIPFrameWnd::OnDestroy(void) 6560 void CRichEditView::OnDestroy(void) 6561 void CTabCtrl::OnDestroy(void) 6562 void CTreeCtrl::OnDestroy(void) 6563 void CTreeView::OnDestroy(void) 6564 void CView::OnDestroy(void) 6565 void CWnd::OnDestroy(void) 6566 void CWnd::OnDestroyClipboard(void) 6567 long CDHtmlDialog::OnDestroyModeless(unsigned int,long) 6568 int CWnd::OnDeviceChange(unsigned int,unsigned long) 6569 void CRichEditView::OnDevModeChange(wchar_t *) 6570 void CWnd::OnDevModeChange(wchar_t *) 6571 long CToolTipCtrl::OnDisableModal(unsigned int,long) 6572 void COleClientItem::OnDiscardUndoState(void) 6573 void CSplitterWnd::OnDisplayChange(void) 6574 long CWnd::OnDisplayChange(unsigned int,long) 6575 void CPreviewView::OnDisplayPageNumber(unsigned int,unsigned int) 6576 int COleFrameHook::OnDocActivate(int) 6577 void CDHtmlDialog::OnDocumentComplete(IDispatch *,wchar_t const *) 6578 void CHtmlView::OnDocumentComplete(wchar_t const *) 6579 long CDHtmlDialog::OnDocumentReadyStateChange(IHTMLElement *) 6580 long CBrowserControlSite::OnDocWindowActivate(int) 6581 long CDHtmlDialog::OnDocWindowActivate(int) 6582 long CHtmlView::OnDocWindowActivate(int) 6583 void COleServerDoc::OnDocWindowActivate(int) 6584 long CHtmlControlSite::XDocHostUIHandler::OnDocWindowActivate(int) 6585 long COleControl::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6586 long COleServerDoc::XOleInPlaceActiveObject::OnDocWindowActivate(int) 6587 void CDocObjectServerItem::OnDoVerb(long) 6588 int COleControl::OnDoVerb(long,tagMSG *,HWND__ *,tagRECT const *) 6589 void COleServerItem::OnDoVerb(long) 6590 void CHtmlView::OnDownloadBegin(void) 6591 void CHtmlView::OnDownloadComplete(void) 6592 unsigned long COleDropTarget::OnDragEnter(CWnd *,COleDataObject *,unsigned long,CPoint) 6593 unsigned long CView::OnDragEnter(COleDataObject *,unsigned long,CPoint) 6594 void COleDropTarget::OnDragLeave(CWnd *) 6595 void CView::OnDragLeave(void) 6596 long CWnd::OnDragList(unsigned int,long) 6597 unsigned long COleDropTarget::OnDragOver(CWnd *,COleDataObject *,unsigned long,CPoint) 6598 unsigned long CView::OnDragOver(COleDataObject *,unsigned long,CPoint) 6599 unsigned long COleDropTarget::OnDragScroll(CWnd *,unsigned long,CPoint) 6600 unsigned long CView::OnDragScroll(unsigned long,CPoint) 6601 void CCtrlView::OnDraw(CDC *) 6602 void CFormView::OnDraw(CDC *) 6603 void CHtmlView::OnDraw(CDC *) 6604 void COleControl::OnDraw(CDC *,CRect const &,CRect const &) 6605 void CPreviewView::OnDraw(CDC *) 6606 void CView::OnDraw(CDC *) 6607 void CWnd::OnDrawClipboard(void) 6608 int COleServerItem::OnDrawEx(CDC *,enum tagDVASPECT,CSize &) 6609 void CWnd::OnDrawItem(int,tagDRAWITEM*) 6610 void COleControl::OnDrawMetafile(CDC *,CRect const &) 6611 unsigned int CPageSetupDialog::OnDrawPage(CDC *,unsigned int,tagRECT *) 6612 void CSplitterWnd::OnDrawSplitter(CDC *,enum CSplitterWnd::ESplitType,CRect const &) 6613 int COleDropTarget::OnDrop(CWnd *,COleDataObject *,unsigned long,CPoint) 6614 int CView::OnDrop(COleDataObject *,unsigned long,CPoint) 6615 void CSplitButton::OnDropDown(tagNMHDR *,long *) 6616 unsigned long COleDropTarget::OnDropEx(CWnd *,COleDataObject *,unsigned long,unsigned long,CPoint) 6617 unsigned long CView::OnDropEx(COleDataObject *,unsigned long,unsigned long,CPoint) 6618 void CFrameWnd::OnDropFiles(HDROP__ *) 6619 void CRichEditView::OnDropFiles(HDROP__ *) 6620 void CWnd::OnDropFiles(HDROP__ *) 6621 int COleControl::OnEdit(tagMSG *,HWND__ *,tagRECT const *) 6622 int CEditView::OnEditChange(void) 6623 void COleDocument::OnEditChangeIcon(void) 6624 void CEditView::OnEditClear(void) 6625 void CRichEditView::OnEditClear(void) 6626 void COleDocument::OnEditConvert(void) 6627 void CEditView::OnEditCopy(void) 6628 void CHtmlView::OnEditCopy(void) 6629 void CRichEditView::OnEditCopy(void) 6630 void CEditView::OnEditCut(void) 6631 void CHtmlView::OnEditCut(void) 6632 void CRichEditView::OnEditCut(void) 6633 void CEditView::OnEditFind(void) 6634 void CRichEditView::OnEditFind(void) 6635 void CEditView::OnEditFindReplace(int) 6636 void CRichEditView::OnEditFindReplace(int) 6637 void COleDocument::OnEditLinks(void) 6638 void CEditView::OnEditPaste(void) 6639 void CHtmlView::OnEditPaste(void) 6640 void CRichEditView::OnEditPaste(void) 6641 void CRichEditView::OnEditPasteSpecial(void) 6642 void CRichEditView::OnEditProperties(void) 6643 int COlePropertyPage::OnEditProperty(long) 6644 void CRichEditView::OnEditRedo(void) 6645 void CEditView::OnEditRepeat(void) 6646 void CRichEditView::OnEditRepeat(void) 6647 void CEditView::OnEditReplace(void) 6648 void CRichEditView::OnEditReplace(void) 6649 void CEditView::OnEditSelectAll(void) 6650 void CRichEditView::OnEditSelectAll(void) 6651 void CEditView::OnEditUndo(void) 6652 void CRichEditView::OnEditUndo(void) 6653 void CFrameWnd::OnEnable(int) 6654 void CToolTipCtrl::OnEnable(int) 6655 void CWnd::OnEnable(int) 6656 void COleControl::OnEnabledChanged(void) 6657 long CHtmlView::OnEnableModeless(int) 6658 void COleFrameHook::OnEnableModeless(int) 6659 void CEditView::OnEndPrinting(CDC *,CPrintInfo *) 6660 void CRichEditView::OnEndPrinting(CDC *,CPrintInfo *) 6661 void CView::OnEndPrinting(CDC *,CPrintInfo *) 6662 void CView::OnEndPrintPreview(CDC *,CPrintInfo *,tagPOINT,CPreviewView *) 6663 void CFrameWnd::OnEndSession(int) 6664 void CWnd::OnEndSession(int) 6665 void CFrameWnd::OnEnterIdle(unsigned int,CWnd *) 6666 void COleControl::OnEnterIdle(unsigned int,CWnd *) 6667 void CWnd::OnEnterIdle(unsigned int,CWnd *) 6668 void CWnd::OnEnterMenuLoop(int) 6669 void CWnd::OnEnterSizeMove(void) 6670 int COleControl::OnEnumVerbs(IEnumOLEVERB * *) 6671 int CDockBar::OnEraseBkgnd(CDC *) 6672 int CFrameWnd::OnEraseBkgnd(CDC *) 6673 int COleControl::OnEraseBkgnd(CDC *) 6674 int COleResizeBar::OnEraseBkgnd(CDC *) 6675 int CPreviewView::OnEraseBkgnd(CDC *) 6676 int CReBar::OnEraseBkgnd(CDC *) 6677 int CToolBar::OnEraseBkgnd(CDC *) 6678 int CWnd::OnEraseBkgnd(CDC *) 6679 int CCmdTarget::OnEvent(unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6680 int COccManager::OnEvent(CCmdTarget *,unsigned int,AFX_EVENT *,AFX_CMDHANDLERINFO *) 6681 int COleControlSite::OnEvent(AFX_EVENT *) 6682 void COleControl::OnEventAdvise(int) 6683 long CDocObjectServer::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6684 long COleServerDoc::OnExecOleCmd(_GUID const *,unsigned long,unsigned long,tagVARIANT *,tagVARIANT *) 6685 void CWnd::OnExitMenuLoop(int) 6686 void CWnd::OnExitSizeMove(void) 6687 long COleControlSite::XRowsetNotify::OnFieldChange(IRowset *,unsigned long,unsigned long,unsigned long * const,unsigned long,unsigned long,int) 6688 void CDocument::OnFileClose(void) 6689 void CFileDialog::OnFileNameChange(void) 6690 int CFileDialog::OnFileNameOK(void) 6691 void CDocManager::OnFileNew(void) 6692 void CWinApp::OnFileNew(void) 6693 long CFileDialog::XFileDialogEvents::OnFileOk(IFileDialog *) 6694 void CDocManager::OnFileOpen(void) 6695 void CWinApp::OnFileOpen(void) 6696 void CHtmlView::OnFilePrint(void) 6697 void CView::OnFilePrint(void) 6698 void CView::OnFilePrintPreview(void) 6699 void CWinApp::OnFilePrintSetup(void) 6700 void CDocument::OnFileSave(void) 6701 void CDocument::OnFileSaveAs(void) 6702 void COleServerDoc::OnFileSaveCopyAs(void) 6703 void CDocument::OnFileSendMail(void) 6704 void COleDocument::OnFileSendMail(void) 6705 void COleServerDoc::OnFileUpdate(void) 6706 long CHtmlView::OnFilterDataObject(IDataObject *,IDataObject * *) 6707 void CCmdTarget::OnFinalRelease(void) 6708 void CDocument::OnFinalRelease(void) 6709 void COleControl::OnFinalRelease(void) 6710 void COlePropertyPage::OnFinalRelease(void) 6711 void COleServerItem::OnFinalRelease(void) 6712 void CWnd::OnFinalRelease(void) 6713 COleClientItem * COleLinkingDoc::OnFindEmbeddedItem(wchar_t const *) 6714 void CEditView::OnFindNext(wchar_t const *,int,int) 6715 void CRichEditView::OnFindNext(wchar_t const *,int,int,int) 6716 long CEditView::OnFindReplaceCmd(unsigned int,long) 6717 long CRichEditView::OnFindReplaceCmd(unsigned int,long) 6718 long CMiniFrameWnd::OnFloatStatus(unsigned int,long) 6719 long COleControlSite::XOleControlSite::OnFocus(int) 6720 void CFileDialog::OnFolderChange(void) 6721 long CFileDialog::XFileDialogEvents::OnFolderChange(IFileDialog *) 6722 long CFileDialog::XFileDialogEvents::OnFolderChanging(IFileDialog *,IShellItem *) 6723 void CWnd::OnFontChange(void) 6724 void COleControl::OnFontChanged(void) 6725 void COleControl::OnForeColorChanged(void) 6726 void CRichEditView::OnFormatFont(void) 6727 void COleControl::OnFrameClose(void) 6728 long CBrowserControlSite::OnFrameWindowActivate(int) 6729 long CDHtmlDialog::OnFrameWindowActivate(int) 6730 long CHtmlView::OnFrameWindowActivate(int) 6731 void COleServerDoc::OnFrameWindowActivate(int) 6732 long CHtmlControlSite::XDocHostUIHandler::OnFrameWindowActivate(int) 6733 long COleControl::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6734 long COleServerDoc::XOleInPlaceActiveObject::OnFrameWindowActivate(int) 6735 void COleControl::OnFreezeEvents(int) 6736 void CHtmlView::OnFullScreen(int) 6737 CRect CCheckListBox::OnGetCheckPosition(CRect,CRect) 6738 COleDataSource * COleClientItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6739 COleDataSource * COleServerItem::OnGetClipboardData(int,tagPOINT *,tagSIZE *) 6740 void COleClientItem::OnGetClipRect(CRect &) 6741 int COleControl::OnGetColorSet(tagDVTARGETDEVICE *,HDC__ *,tagLOGPALETTE * *) 6742 void COleControl::OnGetControlInfo(tagCONTROLINFO *) 6743 int COleControl::OnGetDisplayString(long,ATL::CStringT > > &) 6744 unsigned int COleControl::OnGetDlgCode(void) 6745 unsigned int CWnd::OnGetDlgCode(void) 6746 long CHtmlView::OnGetDropTarget(IDropTarget *,IDropTarget * *) 6747 COleServerItem * CRichEditDoc::OnGetEmbeddedItem(void) 6748 int COleServerItem::OnGetExtent(enum tagDVASPECT,CSize &) 6749 long CHtmlView::OnGetExternal(IDispatch * *) 6750 long CHtmlView::OnGetHostInfo(_DOCHOSTUIINFO *) 6751 HMENU__ * COleControl::OnGetInPlaceMenu(void) 6752 void COleClientItem::OnGetItemPosition(CRect &) 6753 void COleDocObjectItem::OnGetItemPosition(CRect &) 6754 COleServerItem * COleLinkingDoc::OnGetLinkedItem(wchar_t const *) 6755 COleServerItem * COleServerDoc::OnGetLinkedItem(wchar_t const *) 6756 void CMiniFrameWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6757 void CWnd::OnGetMinMaxInfo(tagMINMAXINFO *) 6758 int COleControl::OnGetNaturalExtent(unsigned long,long,tagDVTARGETDEVICE *,HDC__ *,tagExtentInfo *,tagSIZE *) 6759 long CWnd::OnGetObject(unsigned int,long) 6760 long CHtmlView::OnGetOptionKeyPath(wchar_t * *,unsigned long) 6761 int COleControl::OnGetPredefinedStrings(long,CStringArray *,CDWordArray *) 6762 int COleControl::OnGetPredefinedValue(long,unsigned long,tagVARIANT *) 6763 long CStatusBar::OnGetText(unsigned int,long) 6764 long CStatusBar::OnGetTextLength(unsigned int,long) 6765 int COleControl::OnGetViewExtent(unsigned long,long,tagDVTARGETDEVICE *,tagSIZE *) 6766 int COleControl::OnGetViewRect(unsigned long,_RECTL *) 6767 unsigned long COleControl::OnGetViewStatus(void) 6768 int COleClientItem::OnGetWindowContext(CFrameWnd * *,CFrameWnd * *,tagOIFI *) 6769 void CReBar::OnHeightChange(tagNMHDR *,long *) 6770 void CFrameWnd::OnHelp(void) 6771 int COlePropertyPage::OnHelp(wchar_t const *) 6772 void CWinApp::OnHelp(void) 6773 void CWnd::OnHelp(void) 6774 long CFileDialog::XFileDialogEvents::OnHelp(IFileDialog *) 6775 void CWinApp::OnHelpFinder(void) 6776 void CWnd::OnHelpFinder(void) 6777 long CControlBar::OnHelpHitTest(unsigned int,long) 6778 long CDialog::OnHelpHitTest(unsigned int,long) 6779 long CFrameWnd::OnHelpHitTest(unsigned int,long) 6780 void CWinApp::OnHelpIndex(void) 6781 void CWnd::OnHelpIndex(void) 6782 int CCommonDialog::OnHelpInfo(tagHELPINFO *) 6783 int CWnd::OnHelpInfo(tagHELPINFO *) 6784 long CFrameWnd::OnHelpPromptAddr(unsigned int,long) 6785 void CWinApp::OnHelpUsing(void) 6786 void CWnd::OnHelpUsing(void) 6787 void CDocObjectServerItem::OnHide(void) 6788 long COleControl::OnHide(void) 6789 void COleServerItem::OnHide(void) 6790 void CFrameWnd::OnHideMenuBar(void) 6791 void COleControl::OnHideToolBars(void) 6792 long CHtmlView::OnHideUI(void) 6793 void CWnd::OnHotKey(unsigned int,unsigned int,unsigned int) 6794 void CFrameWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6795 void CPreviewView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6796 void CScrollView::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6797 void CSplitterWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6798 void CWnd::OnHScroll(unsigned int,unsigned int,CScrollBar *) 6799 void CWnd::OnHScrollClipboard(CWnd *,unsigned int,unsigned int) 6800 void CWnd::OnIconEraseBkgnd(CDC *) 6801 void CDocTemplate::OnIdle(void) 6802 void CDocument::OnIdle(void) 6803 void COleDocument::OnIdle(void) 6804 int CWinApp::OnIdle(long) 6805 int CWinThread::OnIdle(long) 6806 long CControlBar::OnIdleUpdateCmdUI(unsigned int,long) 6807 void CFrameWnd::OnIdleUpdateCmdUI(void) 6808 void CMDIFrameWnd::OnIdleUpdateCmdUI(void) 6809 void COleCntrFrameWnd::OnIdleUpdateCmdUI(void) 6810 void COleIPFrameWnd::OnIdleUpdateCmdUI(void) 6811 void COleControl::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6812 long COleControl::XPointerInactive::OnInactiveMouseMove(tagRECT const *,long,long,unsigned long) 6813 int COleControl::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6814 long COleControl::XPointerInactive::OnInactiveSetCursor(tagRECT const *,long,long,unsigned long,int) 6815 int CDHtmlDialog::OnInitDialog(void) 6816 int CDialog::OnInitDialog(void) 6817 int COlePropertiesDialog::OnInitDialog(void) 6818 int COlePropertyPage::OnInitDialog(void) 6819 int CPropertySheet::OnInitDialog(void) 6820 void CFileDialog::OnInitDone(void) 6821 int COleServerItem::OnInitFromData(COleDataObject *,int) 6822 void CControlBar::OnInitialUpdate(void) 6823 void CDaoRecordView::OnInitialUpdate(void) 6824 void CFormView::OnInitialUpdate(void) 6825 void COleDBRecordView::OnInitialUpdate(void) 6826 void CRecordView::OnInitialUpdate(void) 6827 void CRichEditView::OnInitialUpdate(void) 6828 void CView::OnInitialUpdate(void) 6829 void CFrameWnd::OnInitMenu(CMenu *) 6830 void COleFrameHook::OnInitMenu(CMenu *) 6831 void CWnd::OnInitMenu(CMenu *) 6832 void CFrameWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6833 void COleControl::OnInitMenuPopup(CMenu *,unsigned int,int) 6834 int COleFrameHook::OnInitMenuPopup(CMenu *,int,int) 6835 void CWnd::OnInitMenuPopup(CMenu *,unsigned int,int) 6836 long COleClientItem::XOleIPSite::OnInPlaceActivate(void) 6837 long COleControlSite::XOleIPSite::OnInPlaceActivate(void) 6838 long COleControlSite::XOleIPSite::OnInPlaceActivateEx(int *,unsigned long) 6839 long COleClientItem::XOleIPSite::OnInPlaceDeactivate(void) 6840 long COleControlSite::XOleIPSite::OnInPlaceDeactivate(void) 6841 long COleControlSite::XOleIPSite::OnInPlaceDeactivateEx(int) 6842 void CWnd::OnInputDeviceChange(unsigned short) 6843 void CWnd::OnInputLangChange(unsigned int,unsigned int) 6844 void CWnd::OnInputLangChangeRequest(unsigned int,unsigned int) 6845 void COleClientItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6846 void COleDocObjectItem::OnInsertMenus(CMenu *,tagOleMenuGroupWidths *) 6847 void CRichEditView::OnInsertObject(void) 6848 void CSplitterWnd::OnInvertTracker(CRect const &) 6849 long CFileDialog::XFileDialogControlEvents::OnItemSelected(IFileDialogCustomize *,unsigned long,unsigned long) 6850 void CDockContext::OnKey(int,int) 6851 void CCheckListBox::OnKeyDown(unsigned int,unsigned int,unsigned int) 6852 void COleControl::OnKeyDown(unsigned int,unsigned int,unsigned int) 6853 void CRichEditView::OnKeyDown(unsigned int,unsigned int,unsigned int) 6854 void CSplitterWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6855 void CWnd::OnKeyDown(unsigned int,unsigned int,unsigned int) 6856 void COleControl::OnKeyDownEvent(unsigned short,unsigned short) 6857 void COleControl::OnKeyPressEvent(unsigned short) 6858 void COleControl::OnKeyUp(unsigned int,unsigned int,unsigned int) 6859 void CWnd::OnKeyUp(unsigned int,unsigned int,unsigned int) 6860 void COleControl::OnKeyUpEvent(unsigned short,unsigned short) 6861 long CPropertySheet::OnKickIdle(unsigned int,long) 6862 int CPropertyPage::OnKillActive(void) 6863 void COleControl::OnKillFocus(CWnd *) 6864 void CWnd::OnKillFocus(CWnd *) 6865 long CCheckListBox::OnLBAddString(unsigned int,long) 6866 long CCheckListBox::OnLBFindString(unsigned int,long) 6867 long CCheckListBox::OnLBFindStringExact(unsigned int,long) 6868 long CCheckListBox::OnLBGetItemData(unsigned int,long) 6869 long CCheckListBox::OnLBGetText(unsigned int,long) 6870 long CCheckListBox::OnLBInsertString(unsigned int,long) 6871 void CFileDialog::OnLBSelChangedNotify(unsigned int,unsigned int,unsigned int) 6872 long CCheckListBox::OnLBSelectString(unsigned int,long) 6873 long CCheckListBox::OnLBSetItemData(unsigned int,long) 6874 long CCheckListBox::OnLBSetItemHeight(unsigned int,long) 6875 void CCheckListBox::OnLButtonDblClk(unsigned int,CPoint) 6876 void CControlBar::OnLButtonDblClk(unsigned int,CPoint) 6877 void COleControl::OnLButtonDblClk(unsigned int,CPoint) 6878 void CSplitterWnd::OnLButtonDblClk(unsigned int,CPoint) 6879 void CWnd::OnLButtonDblClk(unsigned int,CPoint) 6880 void CCheckListBox::OnLButtonDown(unsigned int,CPoint) 6881 void CControlBar::OnLButtonDown(unsigned int,CPoint) 6882 void COleControl::OnLButtonDown(unsigned int,CPoint) 6883 void COleResizeBar::OnLButtonDown(unsigned int,CPoint) 6884 void CPreviewView::OnLButtonDown(unsigned int,CPoint) 6885 void CSplitterWnd::OnLButtonDown(unsigned int,CPoint) 6886 void CWnd::OnLButtonDown(unsigned int,CPoint) 6887 void COleControl::OnLButtonUp(unsigned int,CPoint) 6888 void CSplitterWnd::OnLButtonUp(unsigned int,CPoint) 6889 void CWnd::OnLButtonUp(unsigned int,CPoint) 6890 void CAsyncMonikerFile::OnLowResource(void) 6891 int COleControl::OnMapPropertyToPage(long,_GUID *,int *) 6892 void COleControl::OnMButtonDblClk(unsigned int,CPoint) 6893 void CWnd::OnMButtonDblClk(unsigned int,CPoint) 6894 void COleControl::OnMButtonDown(unsigned int,CPoint) 6895 void CWnd::OnMButtonDown(unsigned int,CPoint) 6896 void COleControl::OnMButtonUp(unsigned int,CPoint) 6897 void CWnd::OnMButtonUp(unsigned int,CPoint) 6898 void CMDIChildWnd::OnMDIActivate(int,CWnd *,CWnd *) 6899 void CWnd::OnMDIActivate(int,CWnd *,CWnd *) 6900 int CMDIFrameWnd::OnMDIWindowCmd(unsigned int) 6901 void CWnd::OnMeasureItem(int,tagMEASUREITEM*) 6902 void CHtmlView::OnMenuBar(int) 6903 long CFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6904 long CMDIFrameWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6905 long CWnd::OnMenuChar(unsigned int,unsigned int,CMenu *) 6906 void CWnd::OnMenuCommand(unsigned int,CMenu *) 6907 unsigned int CWnd::OnMenuDrag(unsigned int,CMenu *) 6908 unsigned int CWnd::OnMenuGetObject(tagMENUGETOBJECTINFO *) 6909 void CWnd::OnMenuRButtonUp(unsigned int,CMenu *) 6910 void CFrameWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6911 void COleControl::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6912 int COleFrameHook::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6913 void CWnd::OnMenuSelect(unsigned int,unsigned int,HMENU__ *) 6914 int COleMessageFilter::OnMessagePending(tagMSG const *) 6915 int CSocket::OnMessagePending(void) 6916 void COleControl::OnMnemonic(tagMSG *) 6917 long COleControl::XOleControl::OnMnemonic(tagMSG *) 6918 int CControlBar::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6919 int CMDIChildWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6920 int CMiniDockFrameWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6921 int COleControl::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6922 int CView::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6923 int CWnd::OnMouseActivate(CWnd *,unsigned int,unsigned int) 6924 void CWnd::OnMouseHover(unsigned int,CPoint) 6925 void CWnd::OnMouseHWheel(unsigned int,short,CPoint) 6926 void CWnd::OnMouseLeave(void) 6927 void COleControl::OnMouseMove(unsigned int,CPoint) 6928 void CSplitterWnd::OnMouseMove(unsigned int,CPoint) 6929 void CWnd::OnMouseMove(unsigned int,CPoint) 6930 int CScrollView::OnMouseWheel(unsigned int,short,CPoint) 6931 int CSplitterWnd::OnMouseWheel(unsigned int,short,CPoint) 6932 int CWnd::OnMouseWheel(unsigned int,short,CPoint) 6933 void CDaoRecordView::OnMove(int,int) 6934 int CDaoRecordView::OnMove(unsigned int) 6935 void COleControl::OnMove(int,int) 6936 int COleDBRecordView::OnMove(unsigned int) 6937 void CRecordView::OnMove(int,int) 6938 int CRecordView::OnMove(unsigned int) 6939 void CWnd::OnMove(int,int) 6940 void CWnd::OnMoving(unsigned int,tagRECT *) 6941 void CDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6942 void CMultiPageDHtmlDialog::OnNavigateComplete(IDispatch *,wchar_t const *) 6943 void CHtmlEditView::OnNavigateComplete2(wchar_t const *) 6944 void CHtmlView::OnNavigateComplete2(wchar_t const *) 6945 void CHtmlView::OnNavigateError(wchar_t const *,wchar_t const *,unsigned long,int *) 6946 int CFrameWnd::OnNcActivate(int) 6947 int CMDIChildWnd::OnNcActivate(int) 6948 int CMiniFrameWnd::OnNcActivate(int) 6949 int CWnd::OnNcActivate(int) 6950 void CDockBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6951 void COleControl::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6952 void CReBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6953 void CStatusBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6954 void CToolBar::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6955 void CWnd::OnNcCalcSize(int,tagNCCALCSIZE_PARAMS *) 6956 int CMDIChildWnd::OnNcCreate(tagCREATESTRUCTW *) 6957 int CMiniFrameWnd::OnNcCreate(tagCREATESTRUCTW *) 6958 int COleControl::OnNcCreate(tagCREATESTRUCTW *) 6959 int CPropertySheet::OnNcCreate(tagCREATESTRUCTW *) 6960 int CReBar::OnNcCreate(tagCREATESTRUCTW *) 6961 int CSplitterWnd::OnNcCreate(tagCREATESTRUCTW *) 6962 int CToolBar::OnNcCreate(tagCREATESTRUCTW *) 6963 int CWnd::OnNcCreate(tagCREATESTRUCTW *) 6964 void CListCtrl::OnNcDestroy(void) 6965 void CListView::OnNcDestroy(void) 6966 void CWnd::OnNcDestroy(void) 6967 long CMiniFrameWnd::OnNcHitTest(CPoint) 6968 long COleControl::OnNcHitTest(CPoint) 6969 long CStatusBar::OnNcHitTest(CPoint) 6970 long CToolBar::OnNcHitTest(CPoint) 6971 long CWnd::OnNcHitTest(CPoint) 6972 void CMiniDockFrameWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6973 void CWnd::OnNcLButtonDblClk(unsigned int,CPoint) 6974 void CMiniDockFrameWnd::OnNcLButtonDown(unsigned int,CPoint) 6975 void COleControl::OnNcLButtonDown(unsigned int,CPoint) 6976 void CWnd::OnNcLButtonDown(unsigned int,CPoint) 6977 void CWnd::OnNcLButtonUp(unsigned int,CPoint) 6978 void CWnd::OnNcMButtonDblClk(unsigned int,CPoint) 6979 void CWnd::OnNcMButtonDown(unsigned int,CPoint) 6980 void CWnd::OnNcMButtonUp(unsigned int,CPoint) 6981 void CWnd::OnNcMouseHover(unsigned int,CPoint) 6982 void CWnd::OnNcMouseLeave(void) 6983 void CWnd::OnNcMouseMove(unsigned int,CPoint) 6984 void CDockBar::OnNcPaint(void) 6985 void COleControl::OnNcPaint(void) 6986 void CReBar::OnNcPaint(void) 6987 void CStatusBar::OnNcPaint(void) 6988 void CToolBar::OnNcPaint(void) 6989 void CWnd::OnNcPaint(void) 6990 void CWnd::OnNcRButtonDblClk(unsigned int,CPoint) 6991 void CWnd::OnNcRButtonDown(unsigned int,CPoint) 6992 void CWnd::OnNcRButtonUp(unsigned int,CPoint) 6993 void CWnd::OnNcRenderingChanged(int) 6994 void CWnd::OnNcXButtonDblClk(short,unsigned int,CPoint) 6995 void CWnd::OnNcXButtonDown(short,unsigned int,CPoint) 6996 void CWnd::OnNcXButtonUp(short,unsigned int,CPoint) 6997 int CDocument::OnNewDocument(void) 6998 int CHtmlEditDoc::OnNewDocument(void) 6999 int COleDocument::OnNewDocument(void) 7000 int COleLinkingDoc::OnNewDocument(void) 7001 void COleServerDoc::OnNewEmbedding(IStorage *) 7002 void CHtmlView::OnNewWindow2(IDispatch * *,int *) 7003 int CEnumArray::OnNext(void *) 7004 int CEnumConnections::OnNext(void *) 7005 int CEnumConnPoints::OnNext(void *) 7006 int CEnumFormatEtc::OnNext(void *) 7007 int CEnumOleVerb::OnNext(void *) 7008 int CEnumUnknown::OnNext(void *) 7009 void CWnd::OnNextMenu(unsigned int,tagMDINEXTMENU *) 7010 void CPreviewView::OnNextPage(void) 7011 int CView::OnNextPaneCmd(unsigned int) 7012 int CFileDialog::OnNotify(unsigned int,long,long *) 7013 int CPropertyPage::OnNotify(unsigned int,long,long *) 7014 int CSplitterWnd::OnNotify(unsigned int,long,long *) 7015 int CWnd::OnNotify(unsigned int,long,long *) 7016 unsigned int CWnd::OnNotifyFormat(CWnd *,unsigned int) 7017 int COleMessageFilter::OnNotRespondingDialog(HTASK__ *) 7018 long CWnd::OnNTCtlColor(unsigned int,long) 7019 void CPreviewView::OnNumPageChange(void) 7020 void COlePropertyPage::OnObjectsChanged(void) 7021 long COleControl::OnOcmCtlColorBtn(unsigned int,long) 7022 long COleControl::OnOcmCtlColorDlg(unsigned int,long) 7023 long COleControl::OnOcmCtlColorEdit(unsigned int,long) 7024 long COleControl::OnOcmCtlColorListBox(unsigned int,long) 7025 long COleControl::OnOcmCtlColorMsgBox(unsigned int,long) 7026 long COleControl::OnOcmCtlColorScrollBar(unsigned int,long) 7027 long COleControl::OnOcmCtlColorStatic(unsigned int,long) 7028 void CCommonDialog::OnOK(void) 7029 void CDialog::OnOK(void) 7030 void CPropertyPage::OnOK(void) 7031 long COleControl::OnOpen(int,tagMSG *) 7032 void COleServerItem::OnOpen(void) 7033 int CDocument::OnOpenDocument(wchar_t const *) 7034 int CHtmlEditDoc::OnOpenDocument(wchar_t const *) 7035 int COleDocument::OnOpenDocument(wchar_t const *) 7036 int COleLinkingDoc::OnOpenDocument(wchar_t const *) 7037 void COleServerDoc::OnOpenEmbedding(IStorage *) 7038 int CWinApp::OnOpenRecentFile(unsigned int) 7039 void CAsyncSocket::OnOutOfBandData(int) 7040 long CFileDialog::XFileDialogEvents::OnOverwrite(IFileDialog *,IShellItem *,enum tagFDE_OVERWRITE_RESPONSE *) 7041 void CCommonDialog::OnPaint(void) 7042 void CControlBar::OnPaint(void) 7043 void CCtrlView::OnPaint(void) 7044 void CDialog::OnPaint(void) 7045 void CDockBar::OnPaint(void) 7046 void CHtmlEditView::OnPaint(void) 7047 void CHtmlView::OnPaint(void) 7048 void COleControl::OnPaint(CDC *) 7049 int COleControlContainer::OnPaint(CDC *) 7050 void COleResizeBar::OnPaint(void) 7051 void CReBar::OnPaint(void) 7052 void CSplitterWnd::OnPaint(void) 7053 void CStatusBar::OnPaint(void) 7054 void CToolBar::OnPaint(void) 7055 void CView::OnPaint(void) 7056 void CWnd::OnPaint(void) 7057 void CWnd::OnPaintClipboard(CWnd *,void *) 7058 void CFrameWnd::OnPaletteChanged(CWnd *) 7059 void COleFrameHook::OnPaletteChanged(CWnd *) 7060 void CWnd::OnPaletteChanged(CWnd *) 7061 void CWnd::OnPaletteIsChanging(CWnd *) 7062 void CRichEditView::OnParaAlign(unsigned short) 7063 void CRichEditView::OnParaCenter(void) 7064 void CRichEditView::OnParaLeft(void) 7065 void CRichEditView::OnParaRight(void) 7066 void CWnd::OnParentNotify(unsigned int,long) 7067 int CRichEditView::OnPasteNativeObject(IStorage *) 7068 long CFrameWnd::OnPopMessageString(unsigned int,long) 7069 long COleClientItem::XOleIPSite::OnPosRectChange(tagRECT const *) 7070 long COleControlSite::XOleIPSite::OnPosRectChange(tagRECT const *) 7071 unsigned int CWnd::OnPowerBroadcast(unsigned int,unsigned int) 7072 void CEditView::OnPrepareDC(CDC *,CPrintInfo *) 7073 void CPreviewView::OnPrepareDC(CDC *,CPrintInfo *) 7074 void CRichEditView::OnPrepareDC(CDC *,CPrintInfo *) 7075 void CScrollView::OnPrepareDC(CDC *,CPrintInfo *) 7076 void CView::OnPrepareDC(CDC *,CPrintInfo *) 7077 int CEditView::OnPreparePrinting(CPrintInfo *) 7078 int CHtmlEditView::OnPreparePrinting(CPrintInfo *) 7079 int COleDocObjectItem::OnPreparePrinting(CView *,CPrintInfo *,int) 7080 int CView::OnPreparePrinting(CPrintInfo *) 7081 long CToolBar::OnPreserveSizingPolicyHelper(unsigned int,long) 7082 long CToolBar::OnPreserveZeroBorderHelper(unsigned int,long) 7083 int COleFrameHook::OnPreTranslateMessage(tagMSG *) 7084 void CPreviewView::OnPreviewClose(void) 7085 void CPreviewView::OnPreviewPrint(void) 7086 void CPreviewView::OnPrevPage(void) 7087 void CEditView::OnPrint(CDC *,CPrintInfo *) 7088 void COleDocObjectItem::OnPrint(CView *,CPrintInfo *,int) 7089 void CRichEditView::OnPrint(CDC *,CPrintInfo *) 7090 void CView::OnPrint(CDC *,CPrintInfo *) 7091 void CRichEditView::OnPrinterChanged(CDC const &) 7092 void CPrintDialog::OnPrintSetup(void) 7093 void CAsyncMonikerFile::OnProgress(unsigned long,unsigned long,unsigned long,wchar_t const *) 7094 void CHtmlView::OnProgressChange(long,long) 7095 int COleControl::OnProperties(tagMSG *,HWND__ *,tagRECT const *) 7096 void CHtmlView::OnPropertyChange(wchar_t const *) 7097 int CPropertyPage::OnQueryCancel(void) 7098 long CMiniFrameWnd::OnQueryCenterWnd(unsigned int,long) 7099 HICON__ * CWnd::OnQueryDragIcon(void) 7100 int CFrameWnd::OnQueryEndSession(void) 7101 int CWnd::OnQueryEndSession(void) 7102 int COleControl::OnQueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7103 int COleControl::OnQueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7104 int CFrameWnd::OnQueryNewPalette(void) 7105 int COleFrameHook::OnQueryNewPalette(void) 7106 int CWnd::OnQueryNewPalette(void) 7107 int CWnd::OnQueryOpen(void) 7108 unsigned int CWnd::OnQueryUIState(void) 7109 int COleServerItem::OnQueryUpdateItems(void) 7110 void CHtmlView::OnQuit(void) 7111 void CWnd::OnRawInput(unsigned int,HRAWINPUT__ *) 7112 void COleControl::OnRButtonDblClk(unsigned int,CPoint) 7113 void CWnd::OnRButtonDblClk(unsigned int,CPoint) 7114 void COleControl::OnRButtonDown(unsigned int,CPoint) 7115 void CWnd::OnRButtonDown(unsigned int,CPoint) 7116 void COleControl::OnRButtonUp(unsigned int,CPoint) 7117 void CWnd::OnRButtonUp(unsigned int,CPoint) 7118 int COleServerDoc::OnReactivateAndUndo(void) 7119 void COleFrameHook::OnRecalcLayout(void) 7120 long COleIPFrameWnd::OnRecalcParent(unsigned int,long) 7121 void CReBar::OnRecalcParent(void) 7122 void CAsyncSocket::OnReceive(int) 7123 void COleControl::OnReflectorDestroyed(void) 7124 void COleClientItem::OnRemoveMenus(CMenu *) 7125 void COleDocObjectItem::OnRemoveMenus(CMenu *) 7126 void COleClientItem::XAdviseSink::OnRename(IMoniker *) 7127 void CWnd::OnRenderAllFormats(void) 7128 int COleControl::CControlDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7129 int COleServerItem::CItemDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7130 int COleControl::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7131 int COleDataSource::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7132 int COleServerItem::OnRenderData(tagFORMATETC *,tagSTGMEDIUM *) 7133 int COleControl::CControlDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 7134 int COleServerItem::CItemDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 7135 int COleControl::OnRenderFileData(tagFORMATETC *,CFile *) 7136 int COleDataSource::OnRenderFileData(tagFORMATETC *,CFile *) 7137 int COleServerItem::OnRenderFileData(tagFORMATETC *,CFile *) 7138 void CWnd::OnRenderFormat(unsigned int) 7139 int COleControl::CControlDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 7140 int COleServerItem::CItemDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 7141 int COleControl::OnRenderGlobalData(tagFORMATETC *,void * *) 7142 int COleDataSource::OnRenderGlobalData(tagFORMATETC *,void * *) 7143 int COleServerItem::OnRenderGlobalData(tagFORMATETC *,void * *) 7144 void CEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int) 7145 void CRichEditView::OnReplaceAll(wchar_t const *,wchar_t const *,int,int) 7146 void CEditView::OnReplaceSel(wchar_t const *,int,int,wchar_t const *) 7147 void CRichEditView::OnReplaceSel(wchar_t const *,int,int,int,wchar_t const *) 7148 long COleControl::XFontNotification::OnRequestEdit(long) 7149 long COleControlSite::XPropertyNotifySink::OnRequestEdit(long) 7150 long COlePropertyPage::XPropNotifySink::OnRequestEdit(long) 7151 void COleDocIPFrameWnd::OnRequestPositionChange(tagRECT const *) 7152 void COleIPFrameWnd::OnRequestPositionChange(tagRECT const *) 7153 void CEnumArray::OnReset(void) 7154 void CPropertyPage::OnReset(void) 7155 void COleControl::OnResetState(void) 7156 long CHtmlView::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7157 void COleServerDoc::OnResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 7158 long COleIPFrameWnd::OnResizeChild(unsigned int,long) 7159 long COleControlSite::XRowsetNotify::OnRowChange(IRowset *,unsigned long,unsigned long const * const,unsigned long,unsigned long,int) 7160 long COleControlSite::XRowsetNotify::OnRowsetChange(IRowset *,unsigned long,unsigned long,int) 7161 void COleClientItem::XAdviseSink::OnSave(void) 7162 int CDocument::OnSaveDocument(wchar_t const *) 7163 int CHtmlEditDoc::OnSaveDocument(wchar_t const *) 7164 int COleDocument::OnSaveDocument(wchar_t const *) 7165 int COleLinkingDoc::OnSaveDocument(wchar_t const *) 7166 int COleServerDoc::OnSaveDocument(wchar_t const *) 7167 void COleServerDoc::OnSaveEmbedding(IStorage *) 7168 void COleServerItem::OnSaveEmbedding(IStorage *) 7169 void CDocObjectServer::OnSaveViewState(CArchive &) 7170 int CScrollView::OnScroll(unsigned int,unsigned int,int) 7171 int CView::OnScroll(unsigned int,unsigned int,int) 7172 int COleClientItem::OnScrollBy(CSize) 7173 int CScrollView::OnScrollBy(CSize,int) 7174 int CView::OnScrollBy(CSize,int) 7175 void CRichEditView::OnSelChange(tagNMHDR *,long *) 7176 long CFileDialog::XFileDialogEvents::OnSelectionChange(IFileDialog *) 7177 void CAsyncSocket::OnSend(int) 7178 void CWnd::OnSessionChange(unsigned int,unsigned int) 7179 int CPropertyPage::OnSetActive(void) 7180 long CToolBar::OnSetBitmapSize(unsigned int,long) 7181 long CToolBar::OnSetButtonSize(unsigned int,long) 7182 void COleControl::OnSetClientSite(void) 7183 int COleServerItem::OnSetColorScheme(tagLOGPALETTE const *) 7184 int CFrameWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 7185 int COleControl::OnSetCursor(CWnd *,unsigned int,unsigned int) 7186 int COleResizeBar::OnSetCursor(CWnd *,unsigned int,unsigned int) 7187 int CPreviewView::OnSetCursor(CWnd *,unsigned int,unsigned int) 7188 int CSplitterWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 7189 int CWnd::OnSetCursor(CWnd *,unsigned int,unsigned int) 7190 int COleControl::CControlDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7191 int COleServerItem::CItemDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7192 int COleControl::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7193 int COleDataSource::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7194 int COleServerItem::OnSetData(tagFORMATETC *,tagSTGMEDIUM *,int) 7195 long CPropertySheet::OnSetDefID(unsigned int,long) 7196 int COleControl::OnSetExtent(tagSIZE *) 7197 int COleServerItem::OnSetExtent(enum tagDVASPECT,CSize const &) 7198 void CFormView::OnSetFocus(CWnd *) 7199 void CFrameWnd::OnSetFocus(CWnd *) 7200 void COleControl::OnSetFocus(CWnd *) 7201 void CWnd::OnSetFocus(CWnd *) 7202 long CCheckListBox::OnSetFont(unsigned int,long) 7203 void CDialog::OnSetFont(CFont *) 7204 long CEditView::OnSetFont(unsigned int,long) 7205 void COleServerDoc::OnSetHostNames(wchar_t const *,wchar_t const *) 7206 void CDocObjectServer::OnSetItemRects(tagRECT *,tagRECT *) 7207 void COleServerDoc::OnSetItemRects(tagRECT const *,tagRECT const *) 7208 void COleClientItem::OnSetMenu(CMenu *,void *,HWND__ *) 7209 long CFrameWnd::OnSetMessageString(unsigned int,long) 7210 long COleControl::OnSetMessageString(unsigned int,long) 7211 long COleIPFrameWnd::OnSetMessageString(unsigned int,long) 7212 long CStatusBar::OnSetMinHeight(unsigned int,long) 7213 int COleControl::OnSetObjectRects(tagRECT const *,tagRECT const *) 7214 void CDatabase::OnSetOptions(void *) 7215 void CRecordset::OnSetOptions(void *) 7216 void COlePropertyPage::OnSetPageSite(void) 7217 void CFrameWnd::OnSetPreviewMode(int,CPrintPreviewState *) 7218 long CToolBar::OnSetSizeHelper(CSize &,long) 7219 long COleControl::OnSetText(unsigned int,long) 7220 long CStatusBar::OnSetText(unsigned int,long) 7221 void CWnd::OnSettingChange(unsigned int,wchar_t const *) 7222 void CRecordset::OnSetUpdateOptions(void *) 7223 unsigned int CFileDialog::OnShareViolation(wchar_t const *) 7224 long CFileDialog::XFileDialogEvents::OnShareViolation(IFileDialog *,IShellItem *,enum tagFDE_SHAREVIOLATION_RESPONSE *) 7225 void CDocObjectServerItem::OnShow(void) 7226 void COleServerItem::OnShow(void) 7227 long CReBar::OnShowBand(unsigned int,long) 7228 long CHtmlView::OnShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 7229 int COleClientItem::OnShowControlBars(CFrameWnd *,int) 7230 void COleServerDoc::OnShowControlBars(CFrameWnd *,int) 7231 void COleServerDoc::OnShowDocument(int) 7232 void COleClientItem::OnShowItem(void) 7233 void CFrameWnd::OnShowMenuBar(void) 7234 void COleControl::OnShowToolBars(void) 7235 long CHtmlView::OnShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 7236 void COleDocument::OnShowViews(int) 7237 void COleLinkingDoc::OnShowViews(int) 7238 void COleControl::OnShowWindow(int,unsigned int) 7239 void CWnd::OnShowWindow(int,unsigned int) 7240 long COleClientItem::XOleClientSite::OnShowWindow(int) 7241 long COleControlSite::XOleClientSite::OnShowWindow(int) 7242 void CDHtmlDialog::OnSize(unsigned int,int,int) 7243 void CFrameWnd::OnSize(unsigned int,int,int) 7244 void CHtmlView::OnSize(unsigned int,int,int) 7245 void CMDIChildWnd::OnSize(unsigned int,int,int) 7246 void CMDIFrameWnd::OnSize(unsigned int,int,int) 7247 void COleControl::OnSize(unsigned int,int,int) 7248 void COleIPFrameWnd::OnSize(unsigned int,int,int) 7249 void COleResizeBar::OnSize(unsigned int,int,int) 7250 void CPreviewView::OnSize(unsigned int,int,int) 7251 void CScrollView::OnSize(unsigned int,int,int) 7252 void CSplitterWnd::OnSize(unsigned int,int,int) 7253 void CStatusBar::OnSize(unsigned int,int,int) 7254 void CWnd::OnSize(unsigned int,int,int) 7255 void CWnd::OnSizeClipboard(CWnd *,void *) 7256 long CControlBar::OnSizeParent(unsigned int,long) 7257 long CDockBar::OnSizeParent(unsigned int,long) 7258 long COleResizeBar::OnSizeParent(unsigned int,long) 7259 void CWnd::OnSizing(unsigned int,tagRECT *) 7260 int CEnumArray::OnSkip(void) 7261 long CSocketWnd::OnSocketDead(unsigned int,long) 7262 long CSocketWnd::OnSocketNotify(unsigned int,long) 7263 int CView::OnSplitCmd(unsigned int) 7264 void CWnd::OnSpoolerStatus(unsigned int,unsigned int) 7265 void CAsyncMonikerFile::OnStartBinding(void) 7266 void CHtmlView::OnStatusBar(int) 7267 void CInternetSession::OnStatusCallback(unsigned long,unsigned long,void *,unsigned long) 7268 void CHtmlView::OnStatusTextChange(wchar_t const *) 7269 void CAsyncMonikerFile::OnStopBinding(long,wchar_t const *) 7270 void CWnd::OnStyleChanged(int,tagSTYLE*) 7271 void CWnd::OnStyleChanging(int,tagSTYLE*) 7272 void CWnd::OnSyncPaint(void) 7273 void CWnd::OnSysChar(unsigned int,unsigned int,unsigned int) 7274 void CToolBar::OnSysColorChange(void) 7275 void CWnd::OnSysColorChange(void) 7276 void CFrameWnd::OnSysCommand(unsigned int,long) 7277 void CMiniFrameWnd::OnSysCommand(unsigned int,long) 7278 void CPropertySheet::OnSysCommand(unsigned int,long) 7279 void CSplitterWnd::OnSysCommand(unsigned int,long) 7280 void CWnd::OnSysCommand(unsigned int,long) 7281 void CWnd::OnSysDeadChar(unsigned int,unsigned int,unsigned int) 7282 void COleControl::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 7283 void CWnd::OnSysKeyDown(unsigned int,unsigned int,unsigned int) 7284 void COleControl::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 7285 void CWnd::OnSysKeyUp(unsigned int,unsigned int,unsigned int) 7286 void CWnd::OnTCard(unsigned int,unsigned long) 7287 void COleControl::OnTextChanged(void) 7288 void CEditView::OnTextNotFound(wchar_t const *) 7289 void CRichEditView::OnTextNotFound(wchar_t const *) 7290 void CHtmlView::OnTheaterMode(int) 7291 long CControlBar::OnThemeChanged(void) 7292 void CWnd::OnTimeChange(void) 7293 void CControlBar::OnTimer(unsigned int) 7294 void CWnd::OnTimer(unsigned int) 7295 void CHtmlView::OnTitleChange(wchar_t const *) 7296 void CHtmlView::OnToolBar(int) 7297 int CReBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 7298 int CToolBar::OnToolHitTest(CPoint,tagTOOLINFOW *)const 7299 int CWnd::OnToolHitTest(CPoint,tagTOOLINFOW *)const 7300 int CFrameWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 7301 int CMDIChildWnd::OnToolTipText(unsigned int,tagNMHDR *,long *) 7302 long CHtmlView::OnTranslateAccelerator(tagMSG *,_GUID const *,unsigned long) 7303 long CHtmlView::OnTranslateUrl(unsigned long,wchar_t *,wchar_t * *) 7304 void CFileDialog::OnTypeChange(void) 7305 long CFileDialog::XFileDialogEvents::OnTypeChange(IFileDialog *) 7306 void COleControlContainer::OnUIActivate(COleControlSite *) 7307 long COleClientItem::XOleIPSite::OnUIActivate(void) 7308 long COleControlSite::XOleIPSite::OnUIActivate(void) 7309 void COleControlContainer::OnUIDeactivate(COleControlSite *) 7310 long COleClientItem::XOleIPSite::OnUIDeactivate(int) 7311 long COleControlSite::XOleIPSite::OnUIDeactivate(int) 7312 void CWnd::OnUniChar(unsigned int,unsigned int,unsigned int) 7313 void CWnd::OnUnInitMenuPopup(CMenu *,unsigned int) 7314 void COleServerItem::OnUpdate(COleServerItem *,long,CObject *,enum tagDVASPECT) 7315 void CView::OnUpdate(CView *,long,CObject *) 7316 void CRichEditView::OnUpdateBullet(CCmdUI *) 7317 void CRichEditView::OnUpdateCharBold(CCmdUI *) 7318 void CRichEditView::OnUpdateCharEffect(CCmdUI *,unsigned long,unsigned long) 7319 void CRichEditView::OnUpdateCharItalic(CCmdUI *) 7320 void CRichEditView::OnUpdateCharUnderline(CCmdUI *) 7321 void CDialogBar::OnUpdateCmdUI(CFrameWnd *,int) 7322 void CDockBar::OnUpdateCmdUI(CFrameWnd *,int) 7323 void COleResizeBar::OnUpdateCmdUI(CFrameWnd *,int) 7324 void CReBar::OnUpdateCmdUI(CFrameWnd *,int) 7325 void CStatusBar::OnUpdateCmdUI(CFrameWnd *,int) 7326 void CToolBar::OnUpdateCmdUI(CFrameWnd *,int) 7327 void CFrameWnd::OnUpdateContextHelp(CCmdUI *) 7328 void CFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 7329 void COleIPFrameWnd::OnUpdateControlBarMenu(CCmdUI *) 7330 int COleServerDoc::OnUpdateDocument(void) 7331 void COleDocument::OnUpdateEditChangeIcon(CCmdUI *) 7332 void CHtmlView::OnUpdateEditCopy(CCmdUI *) 7333 void CHtmlView::OnUpdateEditCut(CCmdUI *) 7334 void COleDocument::OnUpdateEditLinksMenu(CCmdUI *) 7335 void CHtmlView::OnUpdateEditPaste(CCmdUI *) 7336 void CRichEditView::OnUpdateEditPasteSpecial(CCmdUI *) 7337 void CRichEditView::OnUpdateEditProperties(CCmdUI *) 7338 void CRichEditView::OnUpdateEditRedo(CCmdUI *) 7339 void CEditView::OnUpdateEditUndo(CCmdUI *) 7340 void CRichEditView::OnUpdateEditUndo(CCmdUI *) 7341 void COleServerDoc::OnUpdateFileExit(CCmdUI *) 7342 void CDocument::OnUpdateFileSendMail(CCmdUI *) 7343 void COleServerDoc::OnUpdateFileUpdate(CCmdUI *) 7344 void CFrameWnd::OnUpdateFrameMenu(HMENU__ *) 7345 void CMDIChildWnd::OnUpdateFrameMenu(int,CWnd *,HMENU__ *) 7346 void CMDIFrameWnd::OnUpdateFrameMenu(HMENU__ *) 7347 void CFrameWnd::OnUpdateFrameTitle(int) 7348 void CMDIChildWnd::OnUpdateFrameTitle(int) 7349 void CMDIFrameWnd::OnUpdateFrameTitle(int) 7350 int COleClientItem::OnUpdateFrameTitle(void) 7351 int COleFrameHook::OnUpdateFrameTitle(void) 7352 void COleServerItem::OnUpdateItems(void) 7353 void CFrameWnd::OnUpdateKeyIndicator(CCmdUI *) 7354 void CMDIFrameWnd::OnUpdateMDIWindowCmd(CCmdUI *) 7355 void CEditView::OnUpdateNeedClip(CCmdUI *) 7356 void CRichEditView::OnUpdateNeedClip(CCmdUI *) 7357 void CEditView::OnUpdateNeedFind(CCmdUI *) 7358 void CRichEditView::OnUpdateNeedFind(CCmdUI *) 7359 void CEditView::OnUpdateNeedSel(CCmdUI *) 7360 void CRichEditView::OnUpdateNeedSel(CCmdUI *) 7361 void CEditView::OnUpdateNeedText(CCmdUI *) 7362 void CRichEditView::OnUpdateNeedText(CCmdUI *) 7363 void CPreviewView::OnUpdateNextPage(CCmdUI *) 7364 void CView::OnUpdateNextPaneMenu(CCmdUI *) 7365 void CPreviewView::OnUpdateNumPageChange(CCmdUI *) 7366 void COleDocument::OnUpdateObjectVerbMenu(CCmdUI *) 7367 void CRichEditView::OnUpdateParaAlign(CCmdUI *,unsigned short) 7368 void CRichEditView::OnUpdateParaCenter(CCmdUI *) 7369 void CRichEditView::OnUpdateParaLeft(CCmdUI *) 7370 void CRichEditView::OnUpdateParaRight(CCmdUI *) 7371 void COleDocument::OnUpdatePasteLinkMenu(CCmdUI *) 7372 void COleDocument::OnUpdatePasteMenu(CCmdUI *) 7373 void CPreviewView::OnUpdatePrevPage(CCmdUI *) 7374 void CWinApp::OnUpdateRecentFileMenu(CCmdUI *) 7375 void CDaoRecordView::OnUpdateRecordFirst(CCmdUI *) 7376 void COleDBRecordView::OnUpdateRecordFirst(CCmdUI *) 7377 void CRecordView::OnUpdateRecordFirst(CCmdUI *) 7378 void CDaoRecordView::OnUpdateRecordLast(CCmdUI *) 7379 void COleDBRecordView::OnUpdateRecordLast(CCmdUI *) 7380 void CRecordView::OnUpdateRecordLast(CCmdUI *) 7381 void CDaoRecordView::OnUpdateRecordNext(CCmdUI *) 7382 void COleDBRecordView::OnUpdateRecordNext(CCmdUI *) 7383 void CRecordView::OnUpdateRecordNext(CCmdUI *) 7384 void CDaoRecordView::OnUpdateRecordPrev(CCmdUI *) 7385 void COleDBRecordView::OnUpdateRecordPrev(CCmdUI *) 7386 void CRecordView::OnUpdateRecordPrev(CCmdUI *) 7387 void CView::OnUpdateSplitCmd(CCmdUI *) 7388 long CHtmlView::OnUpdateUI(void) 7389 void CWnd::OnUpdateUIState(unsigned int,unsigned int) 7390 void CPreviewView::OnUpdateZoomIn(CCmdUI *) 7391 void CPreviewView::OnUpdateZoomOut(CCmdUI *) 7392 void CWnd::OnUserChanged(void) 7393 void COleClientItem::XAdviseSink::OnViewChange(unsigned long,long) 7394 void CHtmlView::OnVisible(int) 7395 int CWnd::OnVKeyToItem(unsigned int,CListBox *,unsigned int) 7396 void CFrameWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7397 void CPreviewView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7398 void CScrollView::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7399 void CSplitterWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7400 void CWnd::OnVScroll(unsigned int,unsigned int,CScrollBar *) 7401 void CWnd::OnVScrollClipboard(CWnd *,unsigned int,unsigned int) 7402 long CToolTipCtrl::OnWindowFromPoint(unsigned int,long) 7403 int COleControl::OnWindowlessMessage(unsigned int,unsigned int,long,long *) 7404 void CWnd::OnWindowMaximizedChange(int) 7405 long COleControl::XOleInPlaceObject::OnWindowMessage(unsigned int,unsigned int,long,long *) 7406 void CMDIFrameWnd::OnWindowNew(void) 7407 void CWnd::OnWindowPosChanged(tagWINDOWPOS *) 7408 void CControlBar::OnWindowPosChanging(tagWINDOWPOS *) 7409 void CDockBar::OnWindowPosChanging(tagWINDOWPOS *) 7410 void CMDIChildWnd::OnWindowPosChanging(tagWINDOWPOS *) 7411 void COleIPFrameWnd::OnWindowPosChanging(tagWINDOWPOS *) 7412 void CStatusBar::OnWindowPosChanging(tagWINDOWPOS *) 7413 void CToolBar::OnWindowPosChanging(tagWINDOWPOS *) 7414 void CWnd::OnWindowPosChanging(tagWINDOWPOS *) 7415 void CWnd::OnWinIniChange(wchar_t const *) 7416 long CPropertyPage::OnWizardBack(void) 7417 int CPropertyPage::OnWizardFinish(void) 7418 HWND__ * CPropertyPage::OnWizardFinishEx(void) 7419 long CPropertyPage::OnWizardNext(void) 7420 int CWnd::OnWndMsg(unsigned int,unsigned int,long,long *) 7421 void CWnd::OnXButtonDblClk(unsigned int,unsigned int,CPoint) 7422 void CWnd::OnXButtonDown(unsigned int,unsigned int,CPoint) 7423 void CWnd::OnXButtonUp(unsigned int,unsigned int,CPoint) 7424 void CPreviewView::OnZoomIn(void) 7425 void CPreviewView::OnZoomOut(void) 7426 int CAnimateCtrl::Open(unsigned int) 7427 int CAnimateCtrl::Open(wchar_t const *) 7428 int CAsyncMonikerFile::Open(IMoniker *,IBindHost *,CFileException *) 7429 int CAsyncMonikerFile::Open(IMoniker *,IServiceProvider *,CFileException *) 7430 int CAsyncMonikerFile::Open(IMoniker *,IUnknown *,CFileException *) 7431 int CAsyncMonikerFile::Open(IMoniker *,CFileException *) 7432 int CAsyncMonikerFile::Open(wchar_t const *,IBindHost *,CFileException *) 7433 int CAsyncMonikerFile::Open(wchar_t const *,IServiceProvider *,CFileException *) 7434 int CAsyncMonikerFile::Open(wchar_t const *,IUnknown *,CFileException *) 7435 int CAsyncMonikerFile::Open(wchar_t const *,CFileException *) 7436 void CDaoDatabase::Open(wchar_t const *,int,int,wchar_t const *) 7437 void CDaoQueryDef::Open(wchar_t const *) 7438 void CDaoRecordset::Open(int,wchar_t const *,int) 7439 void CDaoRecordset::Open(CDaoQueryDef *,int,int) 7440 void CDaoRecordset::Open(CDaoTableDef *,int,int) 7441 void CDaoTableDef::Open(wchar_t const *) 7442 void CDaoWorkspace::Open(wchar_t const *) 7443 int CDatabase::Open(wchar_t const *,int,int,wchar_t const *,int) 7444 int CDataPathProperty::Open(CFileException *) 7445 int CDataPathProperty::Open(COleControl *,CFileException *) 7446 int CDataPathProperty::Open(wchar_t const *,CFileException *) 7447 int CDataPathProperty::Open(wchar_t const *,COleControl *,CFileException *) 7448 int CFile::Open(wchar_t const *,unsigned int,CFileException *) 7449 int CMirrorFile::Open(wchar_t const *,unsigned int,CFileException *) 7450 int CMonikerFile::Open(IMoniker *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 7451 int CMonikerFile::Open(wchar_t const *,IBindHost *,IBindStatusCallback *,IBindCtx *,CFileException *) 7452 int CMonikerFile::Open(IMoniker *,CFileException *) 7453 int CMonikerFile::Open(wchar_t const *,CFileException *) 7454 int CRecordset::Open(unsigned int,wchar_t const *,unsigned long) 7455 int CSocketFile::Open(wchar_t const *,unsigned int,CFileException *) 7456 int CStdioFile::Open(wchar_t const *,unsigned int,CFileException *) 7457 long CDocObjectServer::XOleDocumentView::Open(void) 7458 int CWnd::OpenClipboard(void) 7459 CDocument * CDocManager::OpenDocumentFile(wchar_t const *) 7460 CDocument * CMultiDocTemplate::OpenDocumentFile(wchar_t const *,int) 7461 CDocument * CSingleDocTemplate::OpenDocumentFile(wchar_t const *,int) 7462 CDocument * CWinApp::OpenDocumentFile(wchar_t const *) 7463 int CDatabase::OpenEx(wchar_t const *,unsigned long) 7464 CInternetFile * CFtpConnection::OpenFile(wchar_t const *,unsigned long,unsigned long,unsigned long) 7465 CGopherFile * CGopherConnection::OpenFile(CGopherLocator &,unsigned long,wchar_t const *,unsigned long) 7466 int CWnd::OpenIcon(void) 7467 long COleUILinkInfo::OpenLinkSource(unsigned long) 7468 CHttpFile * CHttpConnection::OpenRequest(int,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 7469 CHttpFile * CHttpConnection::OpenRequest(wchar_t const *,wchar_t const *,wchar_t const *,unsigned long,wchar_t const * *,wchar_t const *,unsigned long) 7470 int COleStreamFile::OpenStream(IStorage *,wchar_t const *,unsigned long,CFileException *) 7471 void * CThemeHelper::OpenThemeData(HWND__ *,wchar_t const *) 7472 void * CThemeHelper::OpenThemeDataFail(HWND__ *,wchar_t const *) 7473 int CHtmlEditDoc::OpenURL(wchar_t const *) 7474 CStdioFile * CInternetSession::OpenURL(wchar_t const *,unsigned long,unsigned long,wchar_t const *,unsigned long) 7475 int CHeaderCtrl::OrderToIndex(int)const 7476 int CFileException::OsErrorToException(long) 7477 void CDumpContext::OutputString(wchar_t const *) 7478 int CEditView::PaginateTo(CDC *,CPrintInfo *) 7479 int CRichEditView::PaginateTo(CDC *,CPrintInfo *) 7480 unsigned int CPageSetupDialog::PaintHookProc(HWND__ *,unsigned int,unsigned int,long) 7481 int CDC::PaintRgn(CRgn *) 7482 int CWnd::PaintWindowlessControls(CDC *) 7483 unsigned int COleControl::ParentToClient(tagRECT const *,tagPOINT *,int)const 7484 void CWinApp::ParseCommandLine(CCommandLineInfo &) 7485 int COleCurrency::ParseCurrency(wchar_t const *,unsigned long,unsigned long) 7486 long COleControlContainer::XOleContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 7487 long COleLinkingDoc::XOleItemContainer::ParseDisplayName(IBindCtx *,wchar_t *,unsigned long *,IMoniker * *) 7488 void CCommandLineInfo::ParseLast(int) 7489 void CCommandLineInfo::ParseParam(wchar_t const *,int,int) 7490 void CCommandLineInfo::ParseParam(char const *,int,int) 7491 void CCommandLineInfo::ParseParamFlag(char const *) 7492 void CCommandLineInfo::ParseParamNotFlag(wchar_t const *) 7493 void CCommandLineInfo::ParseParamNotFlag(char const *) 7494 void CComboBox::Paste(void) 7495 void CEdit::Paste(void) 7496 void CRichEditCtrl::Paste(void) 7497 void CRichEditCtrl::PasteSpecial(unsigned int,unsigned long,HMETAFILE__ *) 7498 int CDC::PatBlt(int,int,int,int,unsigned long) 7499 CMapStringToString::CPair * CMapStringToString::PGetFirstAssoc(void) 7500 CMapStringToString::CPair const * CMapStringToString::PGetFirstAssoc(void)const 7501 CMapStringToString::CPair * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *) 7502 CMapStringToString::CPair const * CMapStringToString::PGetNextAssoc(CMapStringToString::CPair const *)const 7503 int CDC::Pie(int,int,int,int,int,int,int,int) 7504 int CDC::Pie(tagRECT const *,tagPOINT,tagPOINT) 7505 int CAnimateCtrl::Play(unsigned int,unsigned int,unsigned int) 7506 int CDC::PlayMetaFile(HENHMETAFILE__ *,tagRECT const *) 7507 int CDC::PlayMetaFile(HMETAFILE__ *) 7508 int CDC::PlgBlt(tagPOINT *,CDC *,int,int,int,int,CBitmap &,int,int) 7509 CMapStringToString::CPair * CMapStringToString::PLookup(wchar_t const *) 7510 CMapStringToString::CPair const * CMapStringToString::PLookup(wchar_t const *)const 7511 int CDC::PolyBezier(tagPOINT const *,int) 7512 int CDC::PolyBezierTo(tagPOINT const *,int) 7513 int CDC::PolyDraw(tagPOINT const *,unsigned char const *,int) 7514 int CDC::Polygon(tagPOINT const *,int) 7515 int CDC::Polyline(tagPOINT const *,int) 7516 int CDC::PolylineTo(tagPOINT const *,int) 7517 int CDC::PolyPolygon(tagPOINT const *,int const *,int) 7518 int CDC::PolyPolyline(tagPOINT const *,unsigned long const *,int) 7519 void CToolTipCtrl::Pop(void) 7520 void CToolTipCtrl::Popup(void) 7521 CPoint CEdit::PosFromChar(unsigned int)const 7522 CPoint CRichEditCtrl::PosFromChar(unsigned int)const 7523 void CPreviewView::PositionPage(unsigned int) 7524 int CAsyncMonikerFile::PostBindToStream(CFileException *) 7525 int CMonikerFile::PostBindToStream(CFileException *) 7526 void COccManager::PostCreateDialog(_AFX_OCC_DIALOG_INFO *) 7527 int CWnd::PostMessageW(unsigned int,unsigned int,long) 7528 void CDialog::PostModal(void) 7529 void CPrintDialogEx::PostModal(void) 7530 void COleControl::PostModalDialog(HWND__ *) 7531 void CControlBar::PostNcDestroy(void) 7532 void CControlFrameWnd::PostNcDestroy(void) 7533 void CFindReplaceDialog::PostNcDestroy(void) 7534 void CFrameWnd::PostNcDestroy(void) 7535 void COleCntrFrameWnd::PostNcDestroy(void) 7536 void CReflectorWnd::PostNcDestroy(void) 7537 void CView::PostNcDestroy(void) 7538 void CWnd::PostNcDestroy(void) 7539 int CWinThread::PostThreadMessageW(unsigned int,unsigned int,long) 7540 void ATL::CSimpleStringT::Preallocate(int) 7541 void ATL::CSimpleStringT::Preallocate(int) 7542 void CRecordset::PreBindFields(void) 7543 void CDocument::PreCloseFrame(CFrameWnd *) 7544 void COleDocument::PreCloseFrame(CFrameWnd *) 7545 void CRichEditDoc::PreCloseFrame(CFrameWnd *) 7546 int CCheckListBox::PreCompareItem(tagCOMPAREITEM*) 7547 DLGTEMPLATE const * COccManager::PreCreateDialog(_AFX_OCC_DIALOG_INFO *,DLGTEMPLATE const *) 7548 int CControlBar::PreCreateWindow(tagCREATESTRUCTW &) 7549 int CControlFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 7550 int CCtrlView::PreCreateWindow(tagCREATESTRUCTW &) 7551 int CEditView::PreCreateWindow(tagCREATESTRUCTW &) 7552 int CFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 7553 int CHtmlView::PreCreateWindow(tagCREATESTRUCTW &) 7554 int CListView::PreCreateWindow(tagCREATESTRUCTW &) 7555 int CMDIChildWnd::PreCreateWindow(tagCREATESTRUCTW &) 7556 int CMDIFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 7557 int CMiniFrameWnd::PreCreateWindow(tagCREATESTRUCTW &) 7558 int CRichEditView::PreCreateWindow(tagCREATESTRUCTW &) 7559 int CStatusBar::PreCreateWindow(tagCREATESTRUCTW &) 7560 int CTreeView::PreCreateWindow(tagCREATESTRUCTW &) 7561 int CView::PreCreateWindow(tagCREATESTRUCTW &) 7562 int CWnd::PreCreateWindow(tagCREATESTRUCTW &) 7563 void CCheckListBox::PreDeleteItem(tagDELETEITEM*) 7564 void CCheckListBox::PreDrawItem(tagDRAWITEM*) 7565 void CCheckListBox::PreDrawItemHelper(tagDRAWITEM*) 7566 void CCheckListBox::PreDrawItemNonThemed(CDC *,tagDRAWITEM&,int,int) 7567 bool CCheckListBox::PreDrawItemThemed(CDC *,tagDRAWITEM&,int,int) 7568 unsigned int CPageSetupDialog::PreDrawPage(unsigned short,unsigned short,tagPSDW *) 7569 void CDialog::PreInitDialog(void) 7570 void COleChangeSourceDialog::PreInitDialog(void) 7571 void CCheckListBox::PreMeasureItem(tagMEASUREITEM*) 7572 HWND__ * CDialog::PreModal(void) 7573 HWND__ * CPrintDialogEx::PreModal(void) 7574 void COleControl::PreModalDialog(HWND__ *) 7575 void CRecordset::PrepareAndExecute(void) 7576 HWND__ * CDataExchange::PrepareCtrl(int) 7577 HWND__ * CDataExchange::PrepareEditCtrl(int) 7578 void CWnd::PrepareForHelp(void) 7579 COleControlSite * CDataExchange::PrepareOleCtrl(int) 7580 void CRecordset::PrepareUpdateHstmt(void) 7581 wchar_t * ATL::CSimpleStringT::PrepareWrite(int) 7582 char * ATL::CSimpleStringT::PrepareWrite(int) 7583 void ATL::CSimpleStringT::PrepareWrite2(int) 7584 void ATL::CSimpleStringT::PrepareWrite2(int) 7585 void CPropertyPage::PreProcessPageTemplate(_PROPSHEETPAGEW &,int) 7586 void CPropertySheet::PressButton(int) 7587 int CToolBarCtrl::PressButton(int,int) 7588 void CCheckListBox::PreSubclassWindow(void) 7589 void CDragListBox::PreSubclassWindow(void) 7590 void CWnd::PreSubclassWindow(void) 7591 int CWnd::PreTranslateInput(tagMSG *) 7592 int CControlBar::PreTranslateMessage(tagMSG *) 7593 int CDialog::PreTranslateMessage(tagMSG *) 7594 int CFormView::PreTranslateMessage(tagMSG *) 7595 int CFrameWnd::PreTranslateMessage(tagMSG *) 7596 int CHtmlView::PreTranslateMessage(tagMSG *) 7597 int CMDIChildWnd::PreTranslateMessage(tagMSG *) 7598 int CMDIFrameWnd::PreTranslateMessage(tagMSG *) 7599 int COleIPFrameWnd::PreTranslateMessage(tagMSG *) 7600 int COlePropertyPage::PreTranslateMessage(tagMSG *) 7601 int CPropertyPage::PreTranslateMessage(tagMSG *) 7602 int CPropertySheet::PreTranslateMessage(tagMSG *) 7603 int CWinThread::PreTranslateMessage(tagMSG *) 7604 int CWnd::PreTranslateMessage(tagMSG *) 7605 void CDialog::PrevDlgCtrl(void)const 7606 void CWnd::Print(CDC *,unsigned long)const 7607 long CDocObjectServer::XPrint::Print(unsigned long,tagDVTARGETDEVICE * *,tagPAGESET * *,tagSTGMEDIUM *,IContinueCallback *,long,long *,long *) 7608 int CPrintDialog::PrintAll(void)const 7609 int CPrintDialogEx::PrintAll(void)const 7610 void CWnd::PrintClient(CDC *,unsigned long)const 7611 int CPrintDialog::PrintCollate(void)const 7612 int CPrintDialogEx::PrintCollate(void)const 7613 int CPrintDialogEx::PrintCurrentPage(void)const 7614 void CPreviewDC::PrinterDPtoScreenDP(tagPOINT *)const 7615 unsigned int CEditView::PrintInsideRect(CDC *,tagRECT &,unsigned int,unsigned int) 7616 long CRichEditView::PrintInsideRect(CDC *,tagRECT &,long,long,int) 7617 long CRichEditView::PrintPage(CDC *,long,long) 7618 int CPrintDialog::PrintRange(void)const 7619 int CPrintDialogEx::PrintRange(void)const 7620 int CPrintDialog::PrintSelection(void)const 7621 int CPrintDialogEx::PrintSelection(void)const 7622 void COleDispatchException::Process(tagEXCEPINFO *,CException const *) 7623 long COleException::Process(CException const *) 7624 int CSocket::ProcessAuxQueue(void) 7625 int CFrameWnd::ProcessHelpMsg(tagMSG &,unsigned long *) 7626 int CWinThread::ProcessMessageFilter(int,tagMSG *) 7627 int CWinApp::ProcessShellCommand(CCommandLineInfo &) 7628 long CWinApp::ProcessWndProcException(CException *,tagMSG const *) 7629 long CWinThread::ProcessWndProcException(CException *,tagMSG const *) 7630 int CRgn::PtInRegion(int,int)const 7631 int CRgn::PtInRegion(tagPOINT)const 7632 void COleSafeArray::PtrOfIndex(long *,void * *) 7633 int CDC::PtVisible(tagPOINT)const 7634 int CDC::PtVisible(int,int)const 7635 int CMetaFileDC::PtVisible(tagPOINT)const 7636 int CMetaFileDC::PtVisible(int,int)const 7637 int CEvent::PulseEvent(void) 7638 int CWinThread::PumpMessage(void) 7639 int CSocket::PumpMessages(unsigned int) 7640 void CReBarCtrl::PushChevron(unsigned int,long) 7641 long CCmdTarget::PushStackArgs(unsigned char *,unsigned char const *,void *,unsigned short,tagDISPPARAMS *,unsigned int *,tagVARIANT *,CVariantBoolConverter *) 7642 long CWnd::put_accName(tagVARIANT,wchar_t *) 7643 long CWnd::XAccessible::put_accName(tagVARIANT,wchar_t *) 7644 long CWnd::put_accValue(tagVARIANT,wchar_t *) 7645 long CWnd::XAccessible::put_accValue(tagVARIANT,wchar_t *) 7646 void COleSafeArray::PutElement(long *,void *) 7647 int CFtpConnection::PutFile(wchar_t const *,wchar_t const *,unsigned long,unsigned long) 7648 void CHtmlView::PutProperty(wchar_t const *,wchar_t const *) 7649 void CHtmlView::PutProperty(wchar_t const *,tagVARIANT const &) 7650 void CHtmlView::PutProperty(wchar_t const *,short) 7651 void CHtmlView::PutProperty(wchar_t const *,long) 7652 void CHtmlView::PutProperty(wchar_t const *,double) 7653 int PX_Blob(CPropExchange *,wchar_t const *,void * &,void *) 7654 int PX_Bool(CPropExchange *,wchar_t const *,int &) 7655 int PX_Bool(CPropExchange *,wchar_t const *,int &,int) 7656 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &) 7657 int PX_Color(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 7658 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &) 7659 int PX_Currency(CPropExchange *,wchar_t const *,union tagCY &,union tagCY) 7660 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,wchar_t const *) 7661 int PX_DataPath(CPropExchange *,wchar_t const *,CDataPathProperty &,ATL::CStringT > > const &) 7662 int PX_Double(CPropExchange *,wchar_t const *,double &) 7663 int PX_Double(CPropExchange *,wchar_t const *,double &,double) 7664 int PX_Float(CPropExchange *,wchar_t const *,float &) 7665 int PX_Float(CPropExchange *,wchar_t const *,float &,float) 7666 int PX_Font(CPropExchange *,wchar_t const *,CFontHolder &,tagFONTDESC const *,IFontDisp *) 7667 int PX_IUnknown(CPropExchange *,wchar_t const *,IUnknown * &,_GUID const &,IUnknown *) 7668 int PX_Long(CPropExchange *,wchar_t const *,long &) 7669 int PX_Long(CPropExchange *,wchar_t const *,long &,long) 7670 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &) 7671 int PX_Picture(CPropExchange *,wchar_t const *,CPictureHolder &,CPictureHolder &) 7672 int PX_Short(CPropExchange *,wchar_t const *,short &) 7673 int PX_Short(CPropExchange *,wchar_t const *,short &,short) 7674 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &) 7675 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,wchar_t const *) 7676 int PX_String(CPropExchange *,wchar_t const *,ATL::CStringT > > &,ATL::CStringT > > const &) 7677 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &) 7678 int PX_ULong(CPropExchange *,wchar_t const *,unsigned long &,unsigned long) 7679 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &) 7680 int PX_UShort(CPropExchange *,wchar_t const *,unsigned short &,unsigned short) 7681 int PX_VBXFontConvert(CPropExchange *,CFontHolder &) 7682 long CRichEditView::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7683 long CRichEditView::XRichEditOleCallback::QueryAcceptData(IDataObject *,unsigned short *,unsigned long,int,void *) 7684 IUnknown * CCmdTarget::QueryAggregates(void const *) 7685 long COleDocObjectItem::QueryCommand(unsigned long,unsigned long *,_tagOLECMDTEXT *,_GUID const *) 7686 long COleDropSource::QueryContinueDrag(int,unsigned long) 7687 long COleDropSource::XDropSource::QueryContinueDrag(int,unsigned long) 7688 void * COleControl::QueryDefHandler(_GUID const &) 7689 long CHtmlView::QueryFormsCommand(unsigned long,int *,int *,int *) 7690 long COleControl::XDataObject::QueryGetData(tagFORMATETC *) 7691 long COleDataSource::XDataObject::QueryGetData(tagFORMATETC *) 7692 long COleServerDoc::XDataObject::QueryGetData(tagFORMATETC *) 7693 long COleServerItem::XDataObject::QueryGetData(tagFORMATETC *) 7694 long COleControl::XViewObject::QueryHitPoint(unsigned long,tagRECT const *,tagPOINT,long,unsigned long *) 7695 long COleControl::XViewObject::QueryHitRect(unsigned long,tagRECT const *,tagRECT const *,long,unsigned long *) 7696 int CHttpFile::QueryInfo(unsigned long,unsigned long &,unsigned long *)const 7697 int CHttpFile::QueryInfo(unsigned long,ATL::CStringT > > &,unsigned long *)const 7698 int CHttpFile::QueryInfo(unsigned long,_SYSTEMTIME *,unsigned long *)const 7699 int CHttpFile::QueryInfo(unsigned long,void *,unsigned long *,unsigned long *)const 7700 int CHttpFile::QueryInfoStatusCode(unsigned long &)const 7701 long CRichEditView::XRichEditOleCallback::QueryInsertObject(_GUID *,IStorage *,long) 7702 long CArchiveStream::QueryInterface(_GUID const &,void * *) 7703 long CBlobProperty::QueryInterface(_GUID const &,void * *) 7704 long CBrowserControlSite::QueryInterface(_GUID const &,void * *) 7705 long CDHtmlControlSink::QueryInterface(_GUID const &,void * *) 7706 long CDHtmlElementEventSink::QueryInterface(_GUID const &,void * *) 7707 long CInnerUnknown::QueryInterface(_GUID const &,void * *) 7708 long COleConnPtContainer::QueryInterface(_GUID const &,void * *) 7709 long COleDispatchImpl::QueryInterface(_GUID const &,void * *) 7710 long COleUILinkInfo::QueryInterface(_GUID const &,void * *) 7711 long CPrintDialogEx::QueryInterface(_GUID const &,void * *) 7712 long CWnd::XAccessible::QueryInterface(_GUID const &,void * *) 7713 long CWnd::XAccessibleServer::QueryInterface(_GUID const &,void * *) 7714 long COleClientItem::XAdviseSink::QueryInterface(_GUID const &,void * *) 7715 long COleControlSite::XAmbientProps::QueryInterface(_GUID const &,void * *) 7716 long COleControlSite::XBoundObjectSite::QueryInterface(_GUID const &,void * *) 7717 long COleObjectFactory::XClassFactory::QueryInterface(_GUID const &,void * *) 7718 long CConnectionPoint::XConnPt::QueryInterface(_GUID const &,void * *) 7719 long COleControl::XDataObject::QueryInterface(_GUID const &,void * *) 7720 long COleDataSource::XDataObject::QueryInterface(_GUID const &,void * *) 7721 long COleServerDoc::XDataObject::QueryInterface(_GUID const &,void * *) 7722 long COleServerItem::XDataObject::QueryInterface(_GUID const &,void * *) 7723 long CHtmlControlSite::XDocHostUIHandler::QueryInterface(_GUID const &,void * *) 7724 long COleDropSource::XDropSource::QueryInterface(_GUID const &,void * *) 7725 long COleDropTarget::XDropTarget::QueryInterface(_GUID const &,void * *) 7726 long CEnumArray::XEnumVOID::QueryInterface(_GUID const &,void * *) 7727 long COleControlSite::XEventSink::QueryInterface(_GUID const &,void * *) 7728 long CFileDialog::XFileDialogControlEvents::QueryInterface(_GUID const &,void * *) 7729 long CFileDialog::XFileDialogEvents::QueryInterface(_GUID const &,void * *) 7730 long COleControl::XFontNotification::QueryInterface(_GUID const &,void * *) 7731 long COleMessageFilter::XMessageFilter::QueryInterface(_GUID const &,void * *) 7732 long COleControlSite::XNotifyDBEvents::QueryInterface(_GUID const &,void * *) 7733 long COleControl::XOleCache::QueryInterface(_GUID const &,void * *) 7734 long COleClientItem::XOleClientSite::QueryInterface(_GUID const &,void * *) 7735 long COleControlSite::XOleClientSite::QueryInterface(_GUID const &,void * *) 7736 long CDocObjectServer::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7737 long COleFrameHook::XOleCommandTarget::QueryInterface(_GUID const &,void * *) 7738 long COleControlContainer::XOleContainer::QueryInterface(_GUID const &,void * *) 7739 long COleControl::XOleControl::QueryInterface(_GUID const &,void * *) 7740 long COleControlSite::XOleControlSite::QueryInterface(_GUID const &,void * *) 7741 long CDocObjectServer::XOleDocument::QueryInterface(_GUID const &,void * *) 7742 long COleDocObjectItem::XOleDocumentSite::QueryInterface(_GUID const &,void * *) 7743 long CDocObjectServer::XOleDocumentView::QueryInterface(_GUID const &,void * *) 7744 long COleControl::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7745 long COleServerDoc::XOleInPlaceActiveObject::QueryInterface(_GUID const &,void * *) 7746 long COleFrameHook::XOleInPlaceFrame::QueryInterface(_GUID const &,void * *) 7747 long COleControl::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7748 long COleServerDoc::XOleInPlaceObject::QueryInterface(_GUID const &,void * *) 7749 long COleControlContainer::XOleIPFrame::QueryInterface(_GUID const &,void * *) 7750 long COleClientItem::XOleIPSite::QueryInterface(_GUID const &,void * *) 7751 long COleControlSite::XOleIPSite::QueryInterface(_GUID const &,void * *) 7752 long COleLinkingDoc::XOleItemContainer::QueryInterface(_GUID const &,void * *) 7753 long CDocObjectServer::XOleObject::QueryInterface(_GUID const &,void * *) 7754 long COleControl::XOleObject::QueryInterface(_GUID const &,void * *) 7755 long COleServerDoc::XOleObject::QueryInterface(_GUID const &,void * *) 7756 long COleServerItem::XOleObject::QueryInterface(_GUID const &,void * *) 7757 long COlePropertiesDialog::XOleUIObjInfo::QueryInterface(_GUID const &,void * *) 7758 long COleControl::XPerPropertyBrowsing::QueryInterface(_GUID const &,void * *) 7759 long COleLinkingDoc::XPersistFile::QueryInterface(_GUID const &,void * *) 7760 long COleControl::XPersistMemory::QueryInterface(_GUID const &,void * *) 7761 long COleControl::XPersistPropertyBag::QueryInterface(_GUID const &,void * *) 7762 long COleControl::XPersistStorage::QueryInterface(_GUID const &,void * *) 7763 long COleServerDoc::XPersistStorage::QueryInterface(_GUID const &,void * *) 7764 long COleControl::XPersistStreamInit::QueryInterface(_GUID const &,void * *) 7765 long COleControl::XPointerInactive::QueryInterface(_GUID const &,void * *) 7766 long CDocObjectServer::XPrint::QueryInterface(_GUID const &,void * *) 7767 long COleControlSite::XPropertyNotifySink::QueryInterface(_GUID const &,void * *) 7768 long COlePropertyPage::XPropertyPage::QueryInterface(_GUID const &,void * *) 7769 long COlePropertyPage::XPropNotifySink::QueryInterface(_GUID const &,void * *) 7770 long COleControl::XProvideClassInfo::QueryInterface(_GUID const &,void * *) 7771 long COleControl::XQuickActivate::QueryInterface(_GUID const &,void * *) 7772 long CRichEditView::XRichEditOleCallback::QueryInterface(_GUID const &,void * *) 7773 long COleControlSite::XRowsetNotify::QueryInterface(_GUID const &,void * *) 7774 long COleControl::XSpecifyPropertyPages::QueryInterface(_GUID const &,void * *) 7775 long COleControl::XViewObject::QueryInterface(_GUID const &,void * *) 7776 int CInternetConnection::QueryOption(unsigned long,unsigned long &)const 7777 int CInternetConnection::QueryOption(unsigned long,void *,unsigned long *)const 7778 int CInternetFile::QueryOption(unsigned long,unsigned long &)const 7779 int CInternetFile::QueryOption(unsigned long,void *,unsigned long *)const 7780 int CInternetSession::QueryOption(unsigned long,unsigned long &)const 7781 int CInternetSession::QueryOption(unsigned long,void *,unsigned long *)const 7782 long CPropertyPage::QuerySiblings(unsigned int,long) 7783 long CConnectionPoint::QuerySinkInterface(IUnknown *,void * *) 7784 long COleControl::XEventConnPt::QuerySinkInterface(IUnknown *,void * *) 7785 long CDocObjectServer::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7786 long COleFrameHook::XOleCommandTarget::QueryStatus(_GUID const *,unsigned long,_tagOLECMD * const,_tagOLECMDTEXT *) 7787 enum OLECMDF CHtmlView::QueryStatusWB(enum OLECMDID)const 7788 void CFontHolder::QueryTextMetrics(tagTEXTMETRICW *) 7789 int COleControlSite::QuickActivate(void) 7790 long COleControl::XQuickActivate::QuickActivate(tagQACONTAINER *,tagQACONTROL *) 7791 int COleClientItem::ReactivateAndUndo(void) 7792 long COleControl::XOleInPlaceObject::ReactivateAndUndo(void) 7793 long COleServerDoc::XOleInPlaceObject::ReactivateAndUndo(void) 7794 unsigned int CArchive::Read(void *,unsigned int) 7795 long CArchiveStream::Read(void *,unsigned long,unsigned long *) 7796 unsigned int CAsyncMonikerFile::Read(void *,unsigned int) 7797 unsigned int CFile::Read(void *,unsigned int) 7798 int CImageList::Read(CArchive *) 7799 unsigned int CInternetFile::Read(void *,unsigned int) 7800 unsigned int CMemFile::Read(void *,unsigned int) 7801 unsigned int COleStreamFile::Read(void *,unsigned int) 7802 unsigned int CSocketFile::Read(void *,unsigned int) 7803 unsigned int CStdioFile::Read(void *,unsigned int) 7804 CRuntime* CArchive::ReadClass(CRuntimeconst *,unsigned int *,unsigned long *) 7805 unsigned long CArchive::ReadCount(void) 7806 void CEditView::ReadFromArchive(CArchive &,unsigned int) 7807 int CProperty::ReadFromStream(IStream *) 7808 int CPropertySection::ReadFromStream(IStream *,union _LARGE_INTEGER) 7809 int CPropertySet::ReadFromStream(IStream *) 7810 void COleClientItem::ReadItem(CArchive &) 7811 void COleClientItem::ReadItemCompound(CArchive &) 7812 void COleClientItem::ReadItemFlat(CArchive &) 7813 void CRecentFileList::ReadList(void) 7814 int CPropertySection::ReadNameDictFromStream(IStream *) 7815 CObject * CArchive::ReadObject(CRuntimeconst *) 7816 int CArchive::ReadString(ATL::CStringT > > &) 7817 wchar_t * CArchive::ReadString(wchar_t *,unsigned int) 7818 int CInternetFile::ReadString(ATL::CStringT > > &) 7819 wchar_t * CInternetFile::ReadString(wchar_t *,unsigned int) 7820 int CStdioFile::ReadString(ATL::CStringT > > &) 7821 wchar_t * CStdioFile::ReadString(wchar_t *,unsigned int) 7822 unsigned int CDC::RealizePalette(void) 7823 unsigned char * CMemFile::Realloc(unsigned char *,unsigned long) 7824 unsigned char * CSharedFile::Realloc(unsigned char *,unsigned long) 7825 void ATL::CSimpleStringT::Reallocate(int) 7826 void ATL::CSimpleStringT::Reallocate(int) 7827 ATL::CStringData * CAfxStringMgr::Reallocate(ATL::CStringData *,int,int) 7828 unsigned char * CFieldExchange::ReallocLongBinary(CLongBinary &,long,long) 7829 void CRecordset::RebindParams(void *) 7830 unsigned long CControlBar::RecalcDelayShow(AFX_SIZEPARENTPARAMS *) 7831 void CFrameWnd::RecalcLayout(int) 7832 void CMiniDockFrameWnd::RecalcLayout(int) 7833 void COleCntrFrameWnd::RecalcLayout(int) 7834 void COleDocIPFrameWnd::RecalcLayout(int) 7835 void COleIPFrameWnd::RecalcLayout(int) 7836 void CSplitterWnd::RecalcLayout(void) 7837 int CAsyncSocket::Receive(void *,int,int) 7838 int CSocket::Receive(void *,int,int) 7839 int CAsyncSocket::ReceiveFrom(void *,int,ATL::CStringT > > &,unsigned int &,int) 7840 int CAsyncSocket::ReceiveFrom(void *,int,sockaddr *,int *,int) 7841 int CAsyncSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7842 int CSocket::ReceiveFromHelper(void *,int,sockaddr *,int *,int) 7843 void COleControl::RecreateControlWindow(void) 7844 int CDC::Rectangle(int,int,int,int) 7845 int CDC::Rectangle(tagRECT const *) 7846 CRect const CFrameWnd::rectDefault 7847 int CRgn::RectInRegion(tagRECT const *)const 7848 int CDC::RectVisible(tagRECT const *)const 7849 int CMetaFileDC::RectVisible(tagRECT const *)const 7850 void COleSafeArray::Redim(tagSAFEARRAYBOUND *) 7851 int CRichEditCtrl::Redo(void) 7852 void CDockBar::ReDockControlBar(CControlBar *,tagRECT const *) 7853 void CFrameWnd::ReDockControlBar(CControlBar *,CDockBar *,tagRECT const *) 7854 int CListCtrl::RedrawItems(int,int) 7855 int CWnd::RedrawWindow(tagRECT const *,CRgn *,unsigned int) 7856 int CWnd::ReflectChildNotify(unsigned int,unsigned int,long,long *) 7857 int CWnd::ReflectLastMsg(HWND__ *,long *) 7858 void CHtmlView::Refresh(void) 7859 void COleControl::Refresh(void) 7860 void CHtmlView::Refresh2(int) 7861 void CDaoTableDef::RefreshLink(void) 7862 void CRecordset::RefreshRowset(unsigned short,unsigned short) 7863 int COleDropTarget::Register(CWnd *) 7864 int COleLinkingDoc::Register(COleObjectFactory *,wchar_t const *) 7865 int COleMessageFilter::Register(void) 7866 int COleObjectFactory::Register(void) 7867 int COleTemplateServer::Register(void) 7868 int CWinApp::Register(void) 7869 int COleObjectFactory::RegisterAll(void) 7870 int COleLinkingDoc::RegisterIfServerAttached(wchar_t const *,int) 7871 void CDocManager::RegisterShellFileTypes(int) 7872 void CWinApp::RegisterShellFileTypes(int) 7873 int CControlSiteFactoryMgr::RegisterSiteFactory(IControlSiteFactory *) 7874 void CToolTipCtrl::RelayEvent(tagMSG *) 7875 unsigned long CArchiveStream::Release(void) 7876 unsigned long CBlobProperty::Release(void) 7877 unsigned long CBrowserControlSite::Release(void) 7878 unsigned long CDHtmlControlSink::Release(void) 7879 unsigned long CDHtmlElementEventSink::Release(void) 7880 unsigned long CDHtmlEventSink::Release(void) 7881 unsigned long CInnerUnknown::Release(void) 7882 void COleClientItem::Release(enum tagOLECLOSE) 7883 unsigned long COleConnPtContainer::Release(void) 7884 void COleDataObject::Release(void) 7885 unsigned long COleDispatchImpl::Release(void) 7886 void COleDocObjectItem::Release(enum tagOLECLOSE) 7887 unsigned long COleUILinkInfo::Release(void) 7888 unsigned long CPrintDialogEx::Release(void) 7889 unsigned long CWnd::XAccessible::Release(void) 7890 unsigned long CWnd::XAccessibleServer::Release(void) 7891 unsigned long COleClientItem::XAdviseSink::Release(void) 7892 unsigned long COleControlSite::XAmbientProps::Release(void) 7893 unsigned long COleControlSite::XBoundObjectSite::Release(void) 7894 unsigned long COleObjectFactory::XClassFactory::Release(void) 7895 unsigned long CConnectionPoint::XConnPt::Release(void) 7896 unsigned long COleControl::XDataObject::Release(void) 7897 unsigned long COleDataSource::XDataObject::Release(void) 7898 unsigned long COleServerDoc::XDataObject::Release(void) 7899 unsigned long COleServerItem::XDataObject::Release(void) 7900 unsigned long CHtmlControlSite::XDocHostUIHandler::Release(void) 7901 unsigned long COleDropSource::XDropSource::Release(void) 7902 unsigned long COleDropTarget::XDropTarget::Release(void) 7903 unsigned long CEnumArray::XEnumVOID::Release(void) 7904 unsigned long COleControlSite::XEventSink::Release(void) 7905 unsigned long CFileDialog::XFileDialogControlEvents::Release(void) 7906 unsigned long CFileDialog::XFileDialogEvents::Release(void) 7907 unsigned long COleControl::XFontNotification::Release(void) 7908 unsigned long COleMessageFilter::XMessageFilter::Release(void) 7909 unsigned long COleControlSite::XNotifyDBEvents::Release(void) 7910 unsigned long COleControl::XOleCache::Release(void) 7911 unsigned long COleClientItem::XOleClientSite::Release(void) 7912 unsigned long COleControlSite::XOleClientSite::Release(void) 7913 unsigned long CDocObjectServer::XOleCommandTarget::Release(void) 7914 unsigned long COleFrameHook::XOleCommandTarget::Release(void) 7915 unsigned long COleControlContainer::XOleContainer::Release(void) 7916 unsigned long COleControl::XOleControl::Release(void) 7917 unsigned long COleControlSite::XOleControlSite::Release(void) 7918 unsigned long CDocObjectServer::XOleDocument::Release(void) 7919 unsigned long COleDocObjectItem::XOleDocumentSite::Release(void) 7920 unsigned long CDocObjectServer::XOleDocumentView::Release(void) 7921 unsigned long COleControl::XOleInPlaceActiveObject::Release(void) 7922 unsigned long COleServerDoc::XOleInPlaceActiveObject::Release(void) 7923 unsigned long COleFrameHook::XOleInPlaceFrame::Release(void) 7924 unsigned long COleControl::XOleInPlaceObject::Release(void) 7925 unsigned long COleServerDoc::XOleInPlaceObject::Release(void) 7926 unsigned long COleControlContainer::XOleIPFrame::Release(void) 7927 unsigned long COleClientItem::XOleIPSite::Release(void) 7928 unsigned long COleControlSite::XOleIPSite::Release(void) 7929 unsigned long COleLinkingDoc::XOleItemContainer::Release(void) 7930 unsigned long CDocObjectServer::XOleObject::Release(void) 7931 unsigned long COleControl::XOleObject::Release(void) 7932 unsigned long COleServerDoc::XOleObject::Release(void) 7933 unsigned long COleServerItem::XOleObject::Release(void) 7934 unsigned long COlePropertiesDialog::XOleUIObjInfo::Release(void) 7935 unsigned long COleControl::XPerPropertyBrowsing::Release(void) 7936 unsigned long COleLinkingDoc::XPersistFile::Release(void) 7937 unsigned long COleControl::XPersistMemory::Release(void) 7938 unsigned long COleControl::XPersistPropertyBag::Release(void) 7939 unsigned long COleControl::XPersistStorage::Release(void) 7940 unsigned long COleServerDoc::XPersistStorage::Release(void) 7941 unsigned long COleControl::XPersistStreamInit::Release(void) 7942 unsigned long COleControl::XPointerInactive::Release(void) 7943 unsigned long CDocObjectServer::XPrint::Release(void) 7944 unsigned long COleControlSite::XPropertyNotifySink::Release(void) 7945 unsigned long COlePropertyPage::XPropertyPage::Release(void) 7946 unsigned long COlePropertyPage::XPropNotifySink::Release(void) 7947 unsigned long COleControl::XProvideClassInfo::Release(void) 7948 unsigned long COleControl::XQuickActivate::Release(void) 7949 unsigned long CRichEditView::XRichEditOleCallback::Release(void) 7950 unsigned long COleControlSite::XRowsetNotify::Release(void) 7951 unsigned long COleControl::XSpecifyPropertyPages::Release(void) 7952 unsigned long COleControl::XViewObject::Release(void) 7953 void CDC::ReleaseAttribDC(void) 7954 void ATL::CSimpleStringT::ReleaseBuffer(int) 7955 void ATL::CSimpleStringT::ReleaseBuffer(int) 7956 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7957 void ATL::CSimpleStringT::ReleaseBufferSetLength(int) 7958 void COleControl::ReleaseCaches(void) 7959 int COleControl::ReleaseCapture(void) 7960 int COleControl::ReleaseDC(CDC *) 7961 int CWnd::ReleaseDC(CDC *) 7962 long COleControlSite::XOleIPSite::ReleaseDC(HDC__ *) 7963 void COleDispatchDriver::ReleaseDispatch(void) 7964 void CDocObjectServer::ReleaseDocSite(void) 7965 void CDocument::ReleaseFile(CFile *,int) 7966 void CFontHolder::ReleaseFont(void) 7967 void CDC::ReleaseOutputDC(void) 7968 void CMetaFileDC::ReleaseOutputDC(void) 7969 void CPreviewDC::ReleaseOutputDC(void) 7970 int COleClientItem::Reload(void) 7971 int ATL::CStringT > >::Remove(wchar_t) 7972 int ATL::CStringT > >::Remove(char) 7973 void CFile::Remove(wchar_t const *) 7974 int CFtpConnection::Remove(wchar_t const *) 7975 int CImageList::Remove(int) 7976 void CPropertySection::Remove(unsigned long) 7977 void CPropertySet::Remove(_GUID) 7978 void CPropertySet::Remove(_GUID,unsigned long) 7979 void CRecentFileList::Remove(int) 7980 int CSimpleList::Remove(void *) 7981 void CByteArray::RemoveAll(void) 7982 void CDWordArray::RemoveAll(void) 7983 void CMapPtrToPtr::RemoveAll(void) 7984 void CMapPtrToWord::RemoveAll(void) 7985 void CMapStringToOb::RemoveAll(void) 7986 void CMapStringToPtr::RemoveAll(void) 7987 void CMapStringToString::RemoveAll(void) 7988 void CMapWordToOb::RemoveAll(void) 7989 void CMapWordToPtr::RemoveAll(void) 7990 void CObArray::RemoveAll(void) 7991 void CObList::RemoveAll(void) 7992 void CPropertySection::RemoveAll(void) 7993 void CPropertySet::RemoveAll(void) 7994 void CPtrArray::RemoveAll(void) 7995 void CPtrList::RemoveAll(void) 7996 void CStringArray::RemoveAll(void) 7997 void CStringList::RemoveAll(void) 7998 void CTypeLibCacheMap::RemoveAll(void *) 7999 void CUIntArray::RemoveAll(void) 8000 void CWordArray::RemoveAll(void) 8001 void CByteArray::RemoveAt(int,int) 8002 void CDWordArray::RemoveAt(int,int) 8003 void CObArray::RemoveAt(int,int) 8004 void CObList::RemoveAt(__POSITION *) 8005 void CPtrArray::RemoveAt(int,int) 8006 void CPtrList::RemoveAt(__POSITION *) 8007 void CStringArray::RemoveAt(int,int) 8008 void CStringList::RemoveAt(__POSITION *) 8009 void CUIntArray::RemoveAt(int,int) 8010 void CWordArray::RemoveAt(int,int) 8011 int CDockBar::RemoveControlBar(CControlBar *,int,int) 8012 void CFrameWnd::RemoveControlBar(CControlBar *) 8013 int CFtpConnection::RemoveDirectoryW(wchar_t const *) 8014 void CDocTemplate::RemoveDocument(CDocument *) 8015 void CMultiDocTemplate::RemoveDocument(CDocument *) 8016 void CSingleDocTemplate::RemoveDocument(CDocument *) 8017 void COleControl::RemoveFrameLevelUI(void) 8018 void CFrameWnd::RemoveFrameWnd(void) 8019 void CHandleMap::RemoveHandle(void *) 8020 CObject * CObList::RemoveHead(void) 8021 void * CPtrList::RemoveHead(void) 8022 ATL::CStringT > > CStringList::RemoveHead(void) 8023 void CTabCtrl::RemoveImage(int) 8024 void CListCtrl::RemoveImageList(int) 8025 void CListView::RemoveImageList(int) 8026 void CTreeCtrl::RemoveImageList(int) 8027 void CTreeView::RemoveImageList(int) 8028 void COleDocument::RemoveItem(CDocItem *) 8029 int CMapPtrToPtr::RemoveKey(void *) 8030 int CMapPtrToWord::RemoveKey(void *) 8031 int CMapStringToOb::RemoveKey(wchar_t const *) 8032 int CMapStringToPtr::RemoveKey(wchar_t const *) 8033 int CMapStringToString::RemoveKey(wchar_t const *) 8034 int CMapWordToOb::RemoveKey(unsigned short) 8035 int CMapWordToPtr::RemoveKey(unsigned short) 8036 int CMenu::RemoveMenu(unsigned int,unsigned int) 8037 long COleFrameHook::XOleInPlaceFrame::RemoveMenus(HMENU__ *) 8038 long COleControlContainer::XOleIPFrame::RemoveMenus(HMENU__ *) 8039 void CPropertySheet::RemovePage(int) 8040 void CPropertySheet::RemovePage(CPropertyPage *) 8041 void CDockBar::RemovePlaceHolder(CControlBar *) 8042 void CWnd::RemoveRadioCheckFromGroup(COleControlSiteOrWnd const *)const 8043 void CDataBoundProperty::RemoveSource(void) 8044 CObject * CObList::RemoveTail(void) 8045 void * CPtrList::RemoveTail(void) 8046 ATL::CStringT > > CStringList::RemoveTail(void) 8047 void CDocument::RemoveView(CView *) 8048 void CFile::Rename(wchar_t const *,wchar_t const *) 8049 int CFtpConnection::Rename(wchar_t const *,wchar_t const *) 8050 void CPictureHolder::Render(CDC *,CRect const &,CRect const &) 8051 void CDaoWorkspace::RepairDatabase(wchar_t const *) 8052 void COleControl::ReparentControlWindow(HWND__ *,HWND__ *) 8053 int ATL::CStringT > >::Replace(wchar_t,wchar_t) 8054 int ATL::CStringT > >::Replace(wchar_t const *,wchar_t const *) 8055 int ATL::CStringT > >::Replace(char,char) 8056 int ATL::CStringT > >::Replace(char const *,char const *) 8057 int CImageList::Replace(int,HICON__ *) 8058 int CImageList::Replace(int,CBitmap *,CBitmap *) 8059 int CFindReplaceDialog::ReplaceAll(void)const 8060 int CToolBarCtrl::ReplaceBitmap(TBREPLACEBITMAP *) 8061 void CDatabase::ReplaceBrackets(wchar_t *) 8062 int CFindReplaceDialog::ReplaceCurrent(void)const 8063 void CEdit::ReplaceSel(wchar_t const *,int) 8064 void CRichEditCtrl::ReplaceSel(wchar_t const *,int) 8065 int CException::ReportError(unsigned int,unsigned int) 8066 int COleClientItem::ReportError(long)const 8067 void CDocument::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 8068 void COleLinkingDoc::ReportSaveLoadException(wchar_t const *,CException *,int,unsigned int) 8069 void CWnd::RepositionBars(unsigned int,unsigned int,unsigned int,unsigned int,tagRECT *,tagRECT const *,int) 8070 void COleIPFrameWnd::RepositionFrame(tagRECT const *,tagRECT const *) 8071 void CDaoRecordset::Requery(void) 8072 int CRecordset::Requery(void) 8073 void COleControl::RequestAsynchronousExchange(unsigned long) 8074 long COleFrameHook::XOleInPlaceFrame::RequestBorderSpace(tagRECT const *) 8075 long COleControlContainer::XOleIPFrame::RequestBorderSpace(tagRECT const *) 8076 long COleObjectFactory::XClassFactory::RequestLicKey(unsigned long,wchar_t * *) 8077 long COleClientItem::XOleClientSite::RequestNewObjectLayout(void) 8078 long COleControlSite::XOleClientSite::RequestNewObjectLayout(void) 8079 void COleServerDoc::RequestPositionChange(tagRECT const *) 8080 void CRichEditCtrl::RequestResize(void) 8081 long COleControlSite::XOleIPSite::RequestUIActivate(void) 8082 long CEnumArray::XEnumVOID::Reset(void) 8083 void CComboBox::ResetContent(void) 8084 void CListBox::ResetContent(void) 8085 void CRecordset::ResetCursor(void) 8086 void CCachedDataPathProperty::ResetData(void) 8087 void CDataPathProperty::ResetData(void) 8088 int CDC::ResetDCW(_devicemodeW const *) 8089 int CEvent::ResetEvent(void) 8090 void COleControl::ResetStockProps(void) 8091 void CControlBar::ResetTimer(unsigned int,unsigned int) 8092 void COleControl::ResetVersion(unsigned long) 8093 long CBrowserControlSite::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8094 long CDHtmlDialog::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8095 long CHtmlControlSite::XDocHostUIHandler::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8096 long COleControl::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8097 long COleServerDoc::XOleInPlaceActiveObject::ResizeBorder(tagRECT const *,IOleInPlaceUIWindow *,int) 8098 void COleControl::ResizeFrameWindow(int,int) 8099 void COleSafeArray::ResizeOneDim(unsigned long) 8100 void COleControl::ResizeOpenControl(int,int) 8101 int CPalette::ResizePalette(unsigned int) 8102 void CScrollView::ResizeParentToFit(int) 8103 void CWaitCursor::Restore(void) 8104 void CReBarCtrl::RestoreBand(unsigned int) 8105 int CDC::RestoreDC(int) 8106 int CPreviewDC::RestoreDC(int) 8107 void CToolBarCtrl::RestoreState(HKEY__ *,wchar_t const *,wchar_t const *) 8108 void CCmdTarget::RestoreWaitCursor(void) 8109 unsigned long CWinThread::ResumeThread(void) 8110 unsigned long COleMessageFilter::XMessageFilter::RetryRejectedCall(HTASK__ *,unsigned long,unsigned long) 8111 int ATL::CStringT > >::ReverseFind(wchar_t)const 8112 int ATL::CStringT > >::ReverseFind(char)const 8113 long CArchiveStream::Revert(void) 8114 void COleDropTarget::Revoke(void) 8115 void COleLinkingDoc::Revoke(void) 8116 void COleMessageFilter::Revoke(void) 8117 void COleObjectFactory::Revoke(void) 8118 void COleObjectFactory::RevokeAll(void) 8119 void RFX_BigInt(CFieldExchange *,wchar_t const *,__int64 &) 8120 void RFX_Binary(CFieldExchange *,wchar_t const *,CByteArray &,int) 8121 void RFX_Binary_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *,int) 8122 void RFX_Bool(CFieldExchange *,wchar_t const *,int &) 8123 void RFX_Bool_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 8124 void RFX_Byte(CFieldExchange *,wchar_t const *,unsigned char &) 8125 void RFX_Byte_Bulk(CFieldExchange *,wchar_t const *,unsigned char * *,long * *) 8126 void RFX_Date(CFieldExchange *,wchar_t const *,tagTIMESTAMP_&) 8127 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::COleDateTime &) 8128 void RFX_Date(CFieldExchange *,wchar_t const *,ATL::CTime &) 8129 void RFX_Date_Bulk(CFieldExchange *,wchar_t const *,tagTIMESTAMP_* *,long * *) 8130 void RFX_Double(CFieldExchange *,wchar_t const *,double &) 8131 void RFX_Double_Bulk(CFieldExchange *,wchar_t const *,double * *,long * *) 8132 void RFX_Int(CFieldExchange *,wchar_t const *,int &) 8133 void RFX_Int_Bulk(CFieldExchange *,wchar_t const *,int * *,long * *) 8134 void RFX_Long(CFieldExchange *,wchar_t const *,long &) 8135 void RFX_Long_Bulk(CFieldExchange *,wchar_t const *,long * *,long * *) 8136 void RFX_LongBinary(CFieldExchange *,wchar_t const *,CLongBinary &) 8137 void RFX_Single(CFieldExchange *,wchar_t const *,float &) 8138 void RFX_Single_Bulk(CFieldExchange *,wchar_t const *,float * *,long * *) 8139 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 8140 void RFX_Text(CFieldExchange *,wchar_t const *,ATL::CStringT > > &,int,int,short) 8141 void RFX_Text(CFieldExchange *,wchar_t const *,wchar_t *,int,int,short) 8142 void RFX_Text(CFieldExchange *,wchar_t const *,char *,int,int,short) 8143 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,wchar_t * *,long * *,int) 8144 void RFX_Text_Bulk(CFieldExchange *,wchar_t const *,char * *,long * *,int) 8145 ATL::CStringT > > ATL::CStringT > >::Right(int)const 8146 ATL::CStringT > > ATL::CStringT > >::Right(int)const 8147 void CDaoWorkspace::Rollback(void) 8148 int CDatabase::Rollback(void) 8149 int CDC::RoundRect(int,int,int,int,int,int) 8150 int CDC::RoundRect(tagRECT const *,tagPOINT) 8151 void COleClientItem::Run(void) 8152 int CWinApp::Run(void) 8153 int CWinThread::Run(void) 8154 int CWinApp::RunAutomated(void) 8155 int CWinApp::RunEmbedded(void) 8156 int CWnd::RunModalLoop(unsigned long) 8157 int COleControlSite::SafeSetProperty(long,unsigned short,...) 8158 int CEditView::SameAsSelected(wchar_t const *,int) 8159 int CRichEditView::SameAsSelected(wchar_t const *,int,int) 8160 long CBlobProperty::Save(IStream *,int) 8161 long COleLinkingDoc::XPersistFile::Save(wchar_t const *,int) 8162 long COleControl::XPersistMemory::Save(void *,int,unsigned long) 8163 long COleControl::XPersistPropertyBag::Save(IPropertyBag *,int,int) 8164 long COleControl::XPersistStorage::Save(IStorage *,int) 8165 long COleServerDoc::XPersistStorage::Save(IStorage *,int) 8166 long COleControl::XPersistStreamInit::Save(IStream *,int) 8167 int CDocManager::SaveAllModified(void) 8168 int CDocTemplate::SaveAllModified(void) 8169 int CWinApp::SaveAllModified(void) 8170 void CFrameWnd::SaveBarState(wchar_t const *)const 8171 long COleLinkingDoc::XPersistFile::SaveCompleted(wchar_t const *) 8172 long COleControl::XPersistStorage::SaveCompleted(IStorage *) 8173 long COleServerDoc::XPersistStorage::SaveCompleted(IStorage *) 8174 int CDC::SaveDC(void) 8175 int CPreviewDC::SaveDC(void) 8176 void COleServerDoc::SaveEmbedding(void) 8177 int CFormView::SaveFocusControl(void) 8178 int CDocument::SaveModified(void) 8179 int COleDocument::SaveModified(void) 8180 int COleServerDoc::SaveModified(void) 8181 int COleServerDoc::SaveModifiedPrompt(void) 8182 long COleClientItem::XOleClientSite::SaveObject(void) 8183 long COleControlSite::XOleClientSite::SaveObject(void) 8184 int CControlBarInfo::SaveState(wchar_t const *,int) 8185 void CDockState::SaveState(wchar_t const *) 8186 long COleControl::SaveState(IStream *) 8187 void CToolBarCtrl::SaveState(HKEY__ *,wchar_t const *,wchar_t const *) 8188 void CWinApp::SaveStdProfileSettings(void) 8189 void COleDocument::SaveToStorage(CObject *) 8190 void COleLinkingDoc::SaveToStorage(CObject *) 8191 long CDocObjectServer::XOleDocumentView::SaveViewState(IStream *) 8192 void CDockState::ScalePoint(CPoint &) 8193 void CDockState::ScaleRectPos(CRect &) 8194 CSize CDC::ScaleViewportExt(int,int,int,int) 8195 CSize CMetaFileDC::ScaleViewportExt(int,int,int,int) 8196 CSize CPreviewDC::ScaleViewportExt(int,int,int,int) 8197 CSize CDC::ScaleWindowExt(int,int,int,int) 8198 CSize CPreviewDC::ScaleWindowExt(int,int,int,int) 8199 void CWnd::ScreenToClient(tagPOINT *)const 8200 void CWnd::ScreenToClient(tagRECT *)const 8201 int CListCtrl::Scroll(CSize) 8202 long COleClientItem::XOleIPSite::Scroll(tagSIZE) 8203 long COleControlSite::XOleIPSite::Scroll(tagSIZE) 8204 void COleControlContainer::ScrollChildren(int,int) 8205 int COleServerDoc::ScrollContainerBy(CSize) 8206 int CDC::ScrollDC(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *) 8207 long COleControlSite::XOleIPSite::ScrollRect(int,int,tagRECT const *,tagRECT const *) 8208 void CScrollView::ScrollToDevicePosition(tagPOINT) 8209 void CScrollView::ScrollToPosition(tagPOINT) 8210 void COleControl::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 8211 void CWnd::ScrollWindow(int,int,tagRECT const *,tagRECT const *) 8212 int CWnd::ScrollWindowEx(int,int,tagRECT const *,tagRECT const *,CRgn *,tagRECT *,unsigned int) 8213 int CFindReplaceDialog::SearchDown(void)const 8214 int CAnimateCtrl::Seek(unsigned int) 8215 long CArchiveStream::Seek(union _LARGE_INTEGER,unsigned long,union _ULARGE_INTEGER *) 8216 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,COleVariant *,COleVariant *) 8217 int CDaoRecordset::Seek(wchar_t const *,COleVariant *,unsigned short) 8218 unsigned __int64 CFile::Seek(__int64,unsigned int) 8219 unsigned __int64 CInternetFile::Seek(__int64,unsigned int) 8220 unsigned __int64 CMemFile::Seek(__int64,unsigned int) 8221 unsigned __int64 COleStreamFile::Seek(__int64,unsigned int) 8222 unsigned __int64 CSocketFile::Seek(__int64,unsigned int) 8223 unsigned __int64 CStdioFile::Seek(__int64,unsigned int) 8224 void CFile::SeekToBegin(void) 8225 unsigned __int64 CFile::SeekToEnd(void) 8226 CFont * CFontHolder::Select(CDC *,long,long) 8227 int CTreeCtrl::Select(_TREEITEM *,unsigned int) 8228 long CDHtmlDialog::Select_FindString(IHTMLSelectElement *,wchar_t *,int) 8229 int CDC::SelectClipPath(int) 8230 int CDC::SelectClipRgn(CRgn *) 8231 int CDC::SelectClipRgn(CRgn *,int) 8232 int CTreeCtrl::SelectDropTarget(_TREEITEM *) 8233 CFont * COleControl::SelectFontObject(CDC *,CFontHolder &) 8234 CGdiObject * CDC::SelectGdiObject(HDC__ *,void *) 8235 long CPrintDialogEx::SelectionChange(void) 8236 int CTreeCtrl::SelectItem(_TREEITEM *) 8237 int CDC::SelectObject(CRgn *) 8238 CBitmap * CDC::SelectObject(CBitmap *) 8239 CBrush * CDC::SelectObject(CBrush *) 8240 CGdiObject * CDC::SelectObject(CGdiObject *) 8241 CPen * CDC::SelectObject(CPen *) 8242 void * CDC::SelectObject(void *) 8243 CFont * CDC::SelectObject(CFont *) 8244 CFont * CPreviewDC::SelectObject(CFont *) 8245 CPalette * CDC::SelectPalette(CPalette *,int) 8246 void CWinApp::SelectPrinter(void *,void *,int) 8247 int CTreeCtrl::SelectSetFirstVisible(_TREEITEM *) 8248 CFont * COleControl::SelectStockFont(CDC *) 8249 CGdiObject * CDC::SelectStockObject(int) 8250 CGdiObject * CPreviewDC::SelectStockObject(int) 8251 int CComboBox::SelectString(int,wchar_t const *) 8252 int CListBox::SelectString(int,wchar_t const *) 8253 int CListBox::SelItemRange(int,int,int) 8254 int CAsyncSocket::Send(void const *,int,int) 8255 int CSocket::Send(void const *,int,int) 8256 void COleControl::SendAdvise(unsigned int) 8257 int CWnd::SendChildNotifyLastMsg(long *) 8258 int CSocket::SendChunk(void const *,int,int) 8259 long COleControlContainer::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 8260 long CWnd::SendDlgItemMessageW(int,unsigned int,unsigned int,long) 8261 void CDocument::SendInitialUpdate(void) 8262 void CRecordset::SendLongBinaryData(void *) 8263 long CWnd::SendMessage(unsigned int,unsigned int,long)const 8264 void CWnd::SendMessageToDescendants(unsigned int,unsigned int,long,int,int) 8265 void CWnd::SendMessageToDescendants(HWND__ *,unsigned int,unsigned int,long,int,int) 8266 long CWnd::SendMessageW(unsigned int,unsigned int,long)const 8267 void COleControlSite::SendMnemonic(tagMSG *) 8268 int CWnd::SendNotifyMessageW(unsigned int,unsigned int,long) 8269 int CHttpFile::SendRequest(ATL::CStringT > > &,void *,unsigned long) 8270 int CHttpFile::SendRequest(wchar_t const *,unsigned long,void *,unsigned long) 8271 int CHttpFile::SendRequestEx(unsigned long,unsigned long,unsigned long) 8272 int CHttpFile::SendRequestEx(_INTERNET_BUFFERSW *,_INTERNET_BUFFERSW *,unsigned long,unsigned long) 8273 int CAsyncSocket::SendTo(void const *,int,unsigned int,wchar_t const *,int) 8274 int CAsyncSocket::SendTo(void const *,int,sockaddr const *,int,int) 8275 int CAsyncSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 8276 int CSocket::SendToHelper(void const *,int,sockaddr const *,int,int) 8277 void CByteArray::Serialize(CArchive &) 8278 void CControlBarInfo::Serialize(CArchive &,CDockState *) 8279 void CDocItem::Serialize(CArchive &) 8280 void CDockState::Serialize(CArchive &) 8281 void CDWordArray::Serialize(CArchive &) 8282 void CEditView::Serialize(CArchive &) 8283 void CMapStringToOb::Serialize(CArchive &) 8284 void CMapStringToString::Serialize(CArchive &) 8285 void CMapWordToOb::Serialize(CArchive &) 8286 void CObArray::Serialize(CArchive &) 8287 void CObject::Serialize(CArchive &) 8288 void CObList::Serialize(CArchive &) 8289 void COleClientItem::Serialize(CArchive &) 8290 void COleControl::Serialize(CArchive &) 8291 void COleDocument::Serialize(CArchive &) 8292 void CRichEditDoc::Serialize(CArchive &) 8293 void CRichEditView::Serialize(CArchive &) 8294 void CStringArray::Serialize(CArchive &) 8295 void CStringList::Serialize(CArchive &) 8296 void CWordArray::Serialize(CArchive &) 8297 CArchive & ATL::CTime::Serialize64(CArchive &) 8298 CArchive & ATL::CTimeSpan::Serialize64(CArchive &) 8299 void CArchive::SerializeClass(CRuntimeconst *) 8300 void COleControl::SerializeExtent(CArchive &) 8301 void CEditView::SerializeRaw(CArchive &) 8302 void COleControl::SerializeStockProps(CArchive &) 8303 unsigned long COleControl::SerializeVersion(CArchive &,unsigned long,int) 8304 int CProperty::Set(unsigned long,void * const,unsigned long) 8305 int CProperty::Set(void * const) 8306 int CProperty::Set(void * const,unsigned long) 8307 int CPropertySection::Set(unsigned long,void *) 8308 int CPropertySection::Set(unsigned long,void *,unsigned long) 8309 int CPropertySet::Set(_GUID,unsigned long,void *) 8310 int CPropertySet::Set(_GUID,unsigned long,void *,unsigned long) 8311 int CDC::SetAbortProc(int (__stdcall*)(HDC__ *,int)) 8312 void CDaoRecordset::SetAbsolutePosition(long) 8313 void CRecordset::SetAbsolutePosition(long) 8314 int CSpinButtonCtrl::SetAccel(int,_UDACCEL *) 8315 long COleFrameHook::XOleInPlaceFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 8316 long COleControlContainer::XOleIPFrame::SetActiveObject(IOleInPlaceActiveObject *,wchar_t const *) 8317 int CPropertySheet::SetActivePage(int) 8318 int CPropertySheet::SetActivePage(CPropertyPage *) 8319 void CSplitterWnd::SetActivePane(int,int,CWnd *) 8320 void CFrameWnd::SetActiveView(CView *,int) 8321 CWnd * CWnd::SetActiveWindow(void) 8322 void CIPAddressCtrl::SetAddress(unsigned char,unsigned char,unsigned char,unsigned char) 8323 void CIPAddressCtrl::SetAddress(unsigned long) 8324 void CHtmlView::SetAddressBar(int) 8325 long COleControl::XViewObject::SetAdvise(unsigned long,unsigned long,IAdviseSink *) 8326 int CToolBarCtrl::SetAnchorHighlight(int) 8327 void CListBox::SetAnchorIndex(int) 8328 void COleControl::SetAppearance(short) 8329 int CDC::SetArcDirection(int) 8330 void ATL::CSimpleStringT::SetAt(int,wchar_t) 8331 void ATL::CSimpleStringT::SetAt(int,char) 8332 void CByteArray::SetAt(int,unsigned char) 8333 void CDWordArray::SetAt(int,unsigned long) 8334 void CMapPtrToPtr::SetAt(void *,void *) 8335 void CMapPtrToWord::SetAt(void *,unsigned short) 8336 void CMapStringToOb::SetAt(wchar_t const *,CObject *) 8337 void CMapStringToPtr::SetAt(wchar_t const *,void *) 8338 void CMapStringToString::SetAt(wchar_t const *,wchar_t const *) 8339 void CMapWordToOb::SetAt(unsigned short,CObject *) 8340 void CMapWordToPtr::SetAt(unsigned short,void *) 8341 void CObArray::SetAt(int,CObject *) 8342 void CObList::SetAt(__POSITION *,CObject *) 8343 void CPtrArray::SetAt(int,void *) 8344 void CPtrList::SetAt(__POSITION *,void *) 8345 void CStringArray::SetAt(int,ATL::CStringT > > const &) 8346 void CStringArray::SetAt(int,wchar_t const *) 8347 void CStringList::SetAt(__POSITION *,ATL::CStringT > > const &) 8348 void CStringList::SetAt(__POSITION *,wchar_t const *) 8349 void CUIntArray::SetAt(int,unsigned int) 8350 void CWordArray::SetAt(int,unsigned short) 8351 void CByteArray::SetAtGrow(int,unsigned char) 8352 void CDWordArray::SetAtGrow(int,unsigned long) 8353 void CObArray::SetAtGrow(int,CObject *) 8354 void CPtrArray::SetAtGrow(int,void *) 8355 void CStringArray::SetAtGrow(int,ATL::CStringT > > const &) 8356 void CStringArray::SetAtGrow(int,wchar_t const *) 8357 void CUIntArray::SetAtGrow(int,unsigned int) 8358 void CWordArray::SetAtGrow(int,unsigned short) 8359 void CDC::SetAttribDC(HDC__ *) 8360 void CMetaFileDC::SetAttribDC(HDC__ *) 8361 void CPreviewDC::SetAttribDC(HDC__ *) 8362 void CDaoTableDef::SetAttributes(long) 8363 int CTreeCtrl::SetAutoscrollInfo(unsigned int,unsigned int) 8364 int CRichEditCtrl::SetAutoURLDetect(int) 8365 void COleControl::SetBackColor(unsigned long) 8366 unsigned long CRichEditCtrl::SetBackgroundColor(int,unsigned long) 8367 int CReBarCtrl::SetBandInfo(unsigned int,tagREBARBANDINFOW *) 8368 int CReBarCtrl::SetBandWidth(unsigned int,int) 8369 unsigned long CProgressCtrl::SetBarColor(unsigned long) 8370 void CControlBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 8371 void CDockBar::SetBarInfo(CControlBarInfo *,CFrameWnd *) 8372 int CReBarCtrl::SetBarInfo(tagREBARINFO *) 8373 void CControlBar::SetBarStyle(unsigned long) 8374 int CSpinButtonCtrl::SetBase(int) 8375 void CAsyncMonikerFile::SetBinding(IBinding *) 8376 HBITMAP__ * CButton::SetBitmap(HBITMAP__ *) 8377 HBITMAP__ * CStatic::SetBitmap(HBITMAP__ *) 8378 int CToolBar::SetBitmap(HBITMAP__ *) 8379 unsigned long CBitmap::SetBitmapBits(unsigned long,void const *) 8380 CSize CBitmap::SetBitmapDimension(int,int) 8381 int CHeaderCtrl::SetBitmapMargin(int) 8382 int CToolBarCtrl::SetBitmapSize(CSize) 8383 unsigned long CDC::SetBkColor(unsigned long) 8384 unsigned long CImageList::SetBkColor(unsigned long) 8385 int CListCtrl::SetBkColor(unsigned long) 8386 unsigned long CPreviewDC::SetBkColor(unsigned long) 8387 unsigned long CProgressCtrl::SetBkColor(unsigned long) 8388 unsigned long CReBarCtrl::SetBkColor(unsigned long) 8389 unsigned long CStatusBarCtrl::SetBkColor(unsigned long) 8390 unsigned long CTreeCtrl::SetBkColor(unsigned long) 8391 int CListCtrl::SetBkImage(wchar_t *,int,int,int) 8392 int CListCtrl::SetBkImage(HBITMAP__ *,int,int,int) 8393 int CListCtrl::SetBkImage(tagLVBKIMAGEW *) 8394 int CDC::SetBkMode(int) 8395 void CDaoRecordset::SetBookmark(COleVariant) 8396 void CRecordset::SetBookmark(CDBVariant const &) 8397 void CControlBar::SetBorders(int,int,int,int) 8398 void CControlBar::SetBorders(tagRECT const *) 8399 void CStatusBar::SetBorders(int,int,int,int) 8400 void CStatusBar::SetBorders(tagRECT const *) 8401 long COleFrameHook::XOleInPlaceFrame::SetBorderSpace(tagRECT const *) 8402 long COleControlContainer::XOleIPFrame::SetBorderSpace(tagRECT const *) 8403 void COleControl::SetBorderStyle(short) 8404 unsigned int CDC::SetBoundsRect(tagRECT const *,unsigned int) 8405 CPoint CDC::SetBrushOrg(int,int) 8406 CPoint CDC::SetBrushOrg(tagPOINT) 8407 CWnd * CSliderCtrl::SetBuddy(CWnd *,int) 8408 CWnd * CSpinButtonCtrl::SetBuddy(CWnd *) 8409 void COleMessageFilter::SetBusyReply(enum tagSERVERCALL) 8410 void CToolBar::SetButtonInfo(int,unsigned int,unsigned int,int) 8411 int CToolBarCtrl::SetButtonInfo(int,TBBUTTONINFOW *) 8412 int CToolBar::SetButtons(unsigned int const *,int) 8413 int CToolBarCtrl::SetButtonSize(CSize) 8414 void CToolBarCtrl::SetButtonStructSize(int) 8415 void CButton::SetButtonStyle(unsigned int,int) 8416 void CToolBar::SetButtonStyle(int,unsigned int) 8417 int CToolBar::SetButtonText(int,wchar_t const *) 8418 int CToolBarCtrl::SetButtonWidth(int,int) 8419 void CDaoRecordset::SetCacheSize(long) 8420 void CDaoRecordset::SetCacheStart(COleVariant) 8421 void CMonthCalCtrl::SetCalendarBorder(int) 8422 void CMonthCalCtrl::SetCalendarBorderDefault(void) 8423 int CMonthCalCtrl::SetCalID(unsigned long) 8424 int CListCtrl::SetCallbackMask(unsigned int) 8425 CWnd * COleControl::SetCapture(void) 8426 CWnd * CWnd::SetCapture(void) 8427 long COleControlSite::XOleIPSite::SetCapture(int) 8428 int CListBox::SetCaretIndex(int,int) 8429 void CWnd::SetCaretPos(tagPOINT) 8430 int CMonthCalCtrl::SetCenturyView(void) 8431 void CRichEditView::SetCharFormat(CHARFORMAT2W) 8432 void CButton::SetCheck(int) 8433 void CCheckListBox::SetCheck(int,int) 8434 void CCmdUI::SetCheck(int) 8435 int CListCtrl::SetCheck(int,int) 8436 void COleCmdUI::SetCheck(int) 8437 void CStatusCmdUI::SetCheck(int) 8438 void CTestCmdUI::SetCheck(int) 8439 void CToolCmdUI::SetCheck(int) 8440 int CTreeCtrl::SetCheck(_TREEITEM *,int) 8441 void CCheckListBox::SetCheckStyle(unsigned int) 8442 void CPropertySet::SetClassID(_GUID) 8443 void CDataBoundProperty::SetClientSite(COleControlSite *) 8444 long CDocObjectServer::XOleObject::SetClientSite(IOleClientSite *) 8445 long COleControl::XOleObject::SetClientSite(IOleClientSite *) 8446 long COleServerDoc::XOleObject::SetClientSite(IOleClientSite *) 8447 long COleServerItem::XOleObject::SetClientSite(IOleClientSite *) 8448 void COleDataSource::SetClipboard(void) 8449 HWND__ * CWnd::SetClipboardViewer(void) 8450 int CToolBarCtrl::SetCmdID(int,unsigned int) 8451 unsigned long CMonthCalCtrl::SetColor(int,unsigned long) 8452 int CDC::SetColorAdjustment(tagCOLORADJUSTMENT const *) 8453 void CReBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 8454 void CToolBarCtrl::SetColorScheme(tagCOLORSCHEME const *) 8455 long CDocObjectServer::XOleObject::SetColorScheme(tagLOGPALETTE *) 8456 long COleControl::XOleObject::SetColorScheme(tagLOGPALETTE *) 8457 long COleServerDoc::XOleObject::SetColorScheme(tagLOGPALETTE *) 8458 long COleServerItem::XOleObject::SetColorScheme(tagLOGPALETTE *) 8459 int CListCtrl::SetColumn(int,tagLVCOLUMNW const *) 8460 void CSplitterWnd::SetColumnInfo(int,int,int) 8461 int CListCtrl::SetColumnOrderArray(int,int *) 8462 void CListBox::SetColumnWidth(int) 8463 int CListCtrl::SetColumnWidth(int,int) 8464 void CRecordset::SetConcurrencyAndCursorType(void *,unsigned long) 8465 void CDaoQueryDef::SetConnect(wchar_t const *) 8466 void CDaoTableDef::SetConnect(wchar_t const *) 8467 void CDocTemplate::SetContainerInfo(unsigned int) 8468 long COleControl::XQuickActivate::SetContentExtent(tagSIZE *) 8469 void CDataPathProperty::SetControl(COleControl *) 8470 void CReflectorWnd::SetControl(COleControl *) 8471 void CDHtmlDialog::SetControlProperty(IDispatch *,long,tagVARIANT *) 8472 void CDHtmlDialog::SetControlProperty(wchar_t const *,wchar_t const *,tagVARIANT *) 8473 void CDHtmlDialog::SetControlProperty(wchar_t const *,long,tagVARIANT *) 8474 int COleControl::SetControlSize(int,int) 8475 int COlePropertyPage::SetControlStatus(unsigned int,int) 8476 void CFileDialog::SetControlText(int,wchar_t const *) 8477 void CFileDialog::SetControlText(int,char const *) 8478 int CInternetSession::SetCookie(wchar_t const *,wchar_t const *,wchar_t const *) 8479 void CTabCtrl::SetCurFocus(int) 8480 void COleCurrency::SetCurrency(long,long) 8481 void CColorDialog::SetCurrentColor(unsigned long) 8482 int CFtpConnection::SetCurrentDirectory(wchar_t const *) 8483 int CFtpConnection::SetCurrentDirectoryW(wchar_t const *) 8484 void CWinApp::SetCurrentHandles(void) 8485 void CDaoRecordset::SetCurrentIndex(wchar_t const *) 8486 void CPreviewView::SetCurrentPage(unsigned int,int) 8487 int CMonthCalCtrl::SetCurrentView(unsigned long) 8488 int CComboBox::SetCurSel(int) 8489 int CListBox::SetCurSel(int) 8490 int CMonthCalCtrl::SetCurSel(ATL::COleDateTime const &) 8491 int CMonthCalCtrl::SetCurSel(ATL::CTime const &) 8492 int CMonthCalCtrl::SetCurSel(_SYSTEMTIME * const) 8493 int CTabCtrl::SetCurSel(int) 8494 HICON__ * CButton::SetCursor(HICON__ *) 8495 int CRectTracker::SetCursor(CWnd *,unsigned int)const 8496 HICON__ * CStatic::SetCursor(HICON__ *) 8497 void CDaoRecordset::SetCursorAttributes(void) 8498 long COleControl::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8499 long COleDataSource::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8500 long COleServerDoc::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8501 long COleServerItem::XDataObject::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8502 long COleControl::XOleCache::SetData(tagFORMATETC *,tagSTGMEDIUM *,int) 8503 int CMonthCalCtrl::SetDayState(int,unsigned long *) 8504 int CMonthCalCtrl::SetDecadeView(void) 8505 void COccManager::SetDefaultButton(CWnd *,int) 8506 void COleControlSite::SetDefaultButton(int) 8507 int CRichEditCtrl::SetDefaultCharFormat(_charformatw &) 8508 int CRichEditCtrl::SetDefaultCharFormat(CHARFORMAT2W &) 8509 int CMenu::SetDefaultItem(unsigned int,int) 8510 void CDaoWorkspace::SetDefaultPassword(wchar_t const *) 8511 void CMultiDocTemplate::SetDefaultTitle(CDocument *) 8512 void CSingleDocTemplate::SetDefaultTitle(CDocument *) 8513 void CDaoWorkspace::SetDefaultUser(wchar_t const *) 8514 void CFileDialog::SetDefExt(char const *) 8515 void CDialog::SetDefID(unsigned int) 8516 void CToolTipCtrl::SetDelayTime(unsigned int) 8517 void CToolTipCtrl::SetDelayTime(unsigned long,int) 8518 void CDumpContext::SetDepth(int) 8519 void CWinApp::SetDialogBkColor(unsigned long,unsigned long) 8520 void COlePropertyPage::SetDialogResource(void *) 8521 void CDaoRecordset::SetDirtyFields(void) 8522 void CDaoRecordset::SetDirtyFieldStatus(unsigned int) 8523 void CRecordset::SetDirtyFieldStatus(unsigned long) 8524 CImageList * CToolBarCtrl::SetDisabledImageList(CImageList *) 8525 int COleControlSite::SetDlgCtrlID(int) 8526 int CWnd::SetDlgCtrlID(int) 8527 void COleControlContainer::SetDlgItemInt(int,unsigned int,int) 8528 void CWnd::SetDlgItemInt(int,unsigned int,int) 8529 void COleControlContainer::SetDlgItemTextW(int,wchar_t const *) 8530 void CWnd::SetDlgItemTextW(int,wchar_t const *) 8531 void CFrameWnd::SetDockState(CDockState const &) 8532 void CDocObjectServer::SetDocSite(IOleDocumentSite *) 8533 int CImageList::SetDragCursorImage(int,CPoint) 8534 void COleClientItem::SetDrawAspect(enum tagDVASPECT) 8535 void CRichEditCntrItem::SetDrawAspect(enum tagDVASPECT) 8536 unsigned long CToolBarCtrl::SetDrawTextFlags(unsigned long,unsigned long) 8537 void CSplitButton::SetDropDownMenu(unsigned int,unsigned int) 8538 void CSplitButton::SetDropDownMenu(CMenu *) 8539 int CComboBox::SetDroppedWidth(unsigned int) 8540 void CDataBoundProperty::SetDSCSite(COleControlSite *) 8541 int CComboBox::SetEditSel(int,int) 8542 int CComboBoxEx::SetEditSel(int,int) 8543 void CDHtmlDialog::SetElementHtml(IUnknown *,wchar_t *) 8544 void CDHtmlDialog::SetElementHtml(wchar_t const *,wchar_t *) 8545 void CDHtmlDialog::SetElementProperty(wchar_t const *,long,tagVARIANT *) 8546 void CDHtmlDialog::SetElementText(IUnknown *,wchar_t *) 8547 void CDHtmlDialog::SetElementText(wchar_t const *,wchar_t *) 8548 void COleControl::SetEnabled(int) 8549 HENHMETAFILE__ * CStatic::SetEnhMetaFile(HENHMETAFILE__ *) 8550 int CEvent::SetEvent(void) 8551 unsigned long CRichEditCtrl::SetEventMask(unsigned long) 8552 unsigned long CComboBoxEx::SetExtendedStyle(unsigned long,unsigned long) 8553 unsigned long CListCtrl::SetExtendedStyle(unsigned long) 8554 unsigned long CReBarCtrl::SetExtendedStyle(unsigned long,unsigned long) 8555 unsigned long CTabCtrl::SetExtendedStyle(unsigned long,unsigned long) 8556 unsigned long CToolBarCtrl::SetExtendedStyle(unsigned long) 8557 unsigned long CTreeCtrl::SetExtendedStyle(unsigned long,unsigned long) 8558 int CComboBox::SetExtendedUI(int) 8559 void COleClientItem::SetExtent(CSize const &,enum tagDVASPECT) 8560 int COleControlSite::SetExtent(void) 8561 long CDocObjectServer::XOleObject::SetExtent(unsigned long,tagSIZE *) 8562 long COleControl::XOleObject::SetExtent(unsigned long,tagSIZE *) 8563 long COleServerDoc::XOleObject::SetExtent(unsigned long,tagSIZE *) 8564 long COleServerItem::XOleObject::SetExtent(unsigned long,tagSIZE *) 8565 void CDHtmlDialog::SetExternalDispatch(IDispatch *) 8566 void CDaoRecordset::SetFieldDirty(void *,int) 8567 void CRecordset::SetFieldDirty(void *,int) 8568 void CIPAddressCtrl::SetFieldFocus(unsigned short) 8569 void CDaoRecordset::SetFieldNull(void *,int) 8570 void CRecordset::SetFieldNull(void *,int) 8571 void CIPAddressCtrl::SetFieldRange(int,unsigned char,unsigned char) 8572 void CRecordset::SetFieldStatus(unsigned long,unsigned char) 8573 void CDaoFieldExchange::SetFieldType(unsigned int) 8574 void CFieldExchange::SetFieldType(unsigned int) 8575 void CDaoRecordset::SetFieldValue(int,wchar_t const *) 8576 void CDaoRecordset::SetFieldValue(wchar_t const *,wchar_t const *) 8577 void CDaoRecordset::SetFieldValue(int,COleVariant const &) 8578 void CDaoRecordset::SetFieldValue(wchar_t const *,COleVariant const &) 8579 void CDaoRecordset::SetFieldValueNull(int) 8580 void CDaoRecordset::SetFieldValueNull(wchar_t const *) 8581 void CFile::SetFilePath(wchar_t const *) 8582 int CHeaderCtrl::SetFilterChangeTimeout(unsigned long) 8583 void CPropertySheet::SetFinishText(wchar_t const *) 8584 int CMonthCalCtrl::SetFirstDayOfWeek(int,int *) 8585 CWnd * COleControl::SetFocus(void) 8586 CWnd * COleControlSite::SetFocus(tagMSG *) 8587 CWnd * COleControlSite::SetFocus(void) 8588 CWnd * CWnd::SetFocus(void) 8589 long COleControlSite::XOleIPSite::SetFocus(int) 8590 int CHeaderCtrl::SetFocusedItem(int) 8591 void CDHtmlDialog::SetFocusToElement(wchar_t const *) 8592 int CDialogTemplate::SetFont(wchar_t const *,unsigned short) 8593 void CFontHolder::SetFont(IFont *) 8594 void COleControl::SetFont(IFontDisp *) 8595 void CWnd::SetFont(CFont *,int) 8596 void CFontHolder::SetFontNotifySink(IPropertyNotifySink *) 8597 void COleControl::SetForeColor(unsigned long) 8598 int CWnd::SetForegroundWindow(void) 8599 int CDateTimeCtrl::SetFormat(wchar_t const *) 8600 void CAsyncMonikerFile::SetFormatEtc(tagFORMATETC *) 8601 void CPropertySection::SetFormatID(_GUID) 8602 void CPropertySet::SetFormatVersion(unsigned short) 8603 void CHtmlView::SetFullScreen(int) 8604 int CDC::SetGraphicsMode(int) 8605 void CEdit::SetHandle(void *) 8606 void CSharedFile::SetHandle(void *,int) 8607 void CMDIChildWnd::SetHandles(HMENU__ *,HACCEL__ *) 8608 void CHtmlView::SetHeight(long) 8609 void CToolBar::SetHeight(int) 8610 HWND__ * CFrameWnd::SetHelpCapture(tagPOINT,int *) 8611 void CDialog::SetHelpID(unsigned int) 8612 void COlePropertyPage::SetHelpInfo(wchar_t const *,wchar_t const *,unsigned long) 8613 void CWinApp::SetHelpMode(enum AFX_HELP_TYPE) 8614 void CComboBox::SetHorizontalExtent(unsigned int) 8615 void CListBox::SetHorizontalExtent(int) 8616 void CDHtmlDialog::SetHostFlags(unsigned long) 8617 void COleClientItem::SetHostNames(wchar_t const *,wchar_t const *) 8618 long CDocObjectServer::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8619 long COleControl::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8620 long COleServerDoc::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8621 long COleServerItem::XOleObject::SetHostNames(wchar_t const *,wchar_t const *) 8622 HICON__ * CListCtrl::SetHotCursor(HICON__ *) 8623 int CHeaderCtrl::SetHotDivider(int) 8624 int CHeaderCtrl::SetHotDivider(CPoint) 8625 CImageList * CToolBarCtrl::SetHotImageList(CImageList *) 8626 int CListCtrl::SetHotItem(int) 8627 int CToolBarCtrl::SetHotItem(int) 8628 void CHotKeyCtrl::SetHotKey(unsigned short,unsigned short) 8629 unsigned long CListCtrl::SetHoverTime(unsigned long) 8630 HICON__ * CButton::SetIcon(HICON__ *) 8631 HICON__ * CStatic::SetIcon(HICON__ *) 8632 int CStatusBarCtrl::SetIcon(int,HICON__ *) 8633 HICON__ * CWnd::SetIcon(HICON__ *,int) 8634 int COleClientItem::SetIconicMetafile(void *) 8635 CSize CListCtrl::SetIconSpacing(int,int) 8636 CSize CListCtrl::SetIconSpacing(CSize) 8637 void CProperty::SetID(unsigned long) 8638 int CImageList::SetImageCount(unsigned int) 8639 CImageList * CComboBoxEx::SetImageList(CImageList *) 8640 CImageList * CHeaderCtrl::SetImageList(CImageList *,int) 8641 CImageList * CListCtrl::SetImageList(CImageList *,int) 8642 int CReBarCtrl::SetImageList(CImageList *) 8643 CImageList * CTabCtrl::SetImageList(CImageList *) 8644 CImageList * CToolBarCtrl::SetImageList(CImageList *) 8645 CImageList * CTreeCtrl::SetImageList(CImageList *,int) 8646 int CToolBarCtrl::SetIndent(int) 8647 void CTreeCtrl::SetIndent(unsigned int) 8648 int CStatusBar::SetIndicators(unsigned int const *,int) 8649 void CDaoWorkspace::SetIniPath(wchar_t const *) 8650 void COleControl::SetInitialDataFormats(void) 8651 long CDocObjectServer::XPrint::SetInitialPageNum(long) 8652 void COleControl::SetInitialSize(int,int) 8653 void CControlBar::SetInPlaceOwner(CWnd *) 8654 long CDocObjectServer::XOleDocumentView::SetInPlaceSite(IOleInPlaceSite *) 8655 void CToolBarCtrl::SetInsertMark(TBINSERTMARK *) 8656 int CTreeCtrl::SetInsertMark(_TREEITEM *,int) 8657 unsigned long CToolBarCtrl::SetInsertMarkColor(unsigned long) 8658 unsigned long CTreeCtrl::SetInsertMarkColor(unsigned long) 8659 void CDaoWorkspace::SetIsolateODBCTrans(int) 8660 int CComboBoxEx::SetItem(tagCOMBOBOXEXITEMW const *) 8661 int CHeaderCtrl::SetItem(int,_HD_ITEMW *) 8662 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long) 8663 int CListCtrl::SetItem(int,int,unsigned int,wchar_t const *,int,unsigned int,unsigned int,long,int) 8664 int CListCtrl::SetItem(tagLVITEMW const *) 8665 int CTabCtrl::SetItem(int,tagTCITEMW *) 8666 int CTreeCtrl::SetItem(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long) 8667 int CTreeCtrl::SetItem(tagTVITEMW *) 8668 void CListCtrl::SetItemCount(int) 8669 int CListCtrl::SetItemCountEx(int,unsigned long) 8670 int CComboBox::SetItemData(int,unsigned long) 8671 int CListBox::SetItemData(int,unsigned long) 8672 int CListCtrl::SetItemData(int,unsigned long) 8673 int CTreeCtrl::SetItemData(_TREEITEM *,unsigned long) 8674 int CComboBox::SetItemDataPtr(int,void *) 8675 int CListBox::SetItemDataPtr(int,void *) 8676 int CTreeCtrl::SetItemEx(_TREEITEM *,unsigned int,wchar_t const *,int,int,unsigned int,unsigned int,long,unsigned int,HWND__ *,int) 8677 int CTreeCtrl::SetItemExpandedImageIndex(_TREEITEM *,int) 8678 int CTabCtrl::SetItemExtra(int) 8679 int CComboBox::SetItemHeight(int,unsigned int) 8680 int CListBox::SetItemHeight(int,unsigned int) 8681 short CTreeCtrl::SetItemHeight(short) 8682 int CTreeCtrl::SetItemImage(_TREEITEM *,int,int) 8683 void COleServerItem::SetItemName(wchar_t const *) 8684 int CListCtrl::SetItemPosition(int,tagPOINT) 8685 int COleClientItem::SetItemRects(tagRECT const *,tagRECT const *) 8686 CSize CTabCtrl::SetItemSize(CSize) 8687 int CListCtrl::SetItemState(int,unsigned int,unsigned int) 8688 int CListCtrl::SetItemState(int,tagLVITEMW *) 8689 int CTabCtrl::SetItemState(int,unsigned long,unsigned long) 8690 int CTreeCtrl::SetItemState(_TREEITEM *,unsigned int,unsigned int) 8691 int CTreeCtrl::SetItemStateEx(_TREEITEM *,unsigned int) 8692 int CListCtrl::SetItemText(int,int,wchar_t const *) 8693 int CTreeCtrl::SetItemText(_TREEITEM *,wchar_t const *) 8694 unsigned long CDC::SetLayout(unsigned long) 8695 void CHtmlView::SetLeft(long) 8696 void ATL::CSimpleStringT::SetLength(int) 8697 void ATL::CSimpleStringT::SetLength(int) 8698 void CFile::SetLength(unsigned __int64) 8699 void CInternetFile::SetLength(unsigned __int64) 8700 void CMemFile::SetLength(unsigned __int64) 8701 void COleStreamFile::SetLength(unsigned __int64) 8702 void CSocketFile::SetLength(unsigned __int64) 8703 void CEdit::SetLimitText(unsigned int) 8704 unsigned long CTreeCtrl::SetLineColor(unsigned long) 8705 int CSliderCtrl::SetLineSize(int) 8706 long COleUILinkInfo::SetLinkSource(unsigned long,wchar_t *,unsigned long,unsigned long *,int) 8707 void COleClientItem::SetLinkUpdateOptions(enum tagOLEUPDATE) 8708 long COleUILinkInfo::SetLinkUpdateOptions(unsigned long,unsigned long) 8709 void CArchive::SetLoadParams(unsigned int) 8710 unsigned long CComboBox::SetLocale(unsigned long) 8711 unsigned long CListBox::SetLocale(unsigned long) 8712 void CDaoRecordset::SetLockingMode(int) 8713 void CRecordset::SetLockingMode(unsigned int) 8714 void CDaoWorkspace::SetLoginTimeout(short) 8715 void CDatabase::SetLoginTimeout(unsigned long) 8716 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8717 void ATL::CSimpleStringT::SetManager(ATL::IAtlStringMgr *) 8718 int CDC::SetMapMode(int) 8719 int CPreviewDC::SetMapMode(int) 8720 unsigned long CDC::SetMapperFlags(unsigned long) 8721 void CToolTipCtrl::SetMargin(tagRECT *) 8722 void CEdit::SetMargins(unsigned int,unsigned int) 8723 void CRichEditView::SetMargins(CRect const &) 8724 int CProgressCtrl::SetMarquee(int,int) 8725 void CPrintInfo::SetMaxPage(unsigned int) 8726 int CMonthCalCtrl::SetMaxSelCount(int) 8727 int CToolBarCtrl::SetMaxTextRows(int) 8728 int CToolTipCtrl::SetMaxTipWidth(int) 8729 int CFrameWnd::SetMenu(CMenu *) 8730 int CWnd::SetMenu(CMenu *) 8731 long COleFrameHook::XOleInPlaceFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8732 long COleControlContainer::XOleIPFrame::SetMenu(HMENU__ *,void *,HWND__ *) 8733 void CHtmlView::SetMenuBar(int) 8734 int CFrameWnd::SetMenuBarState(unsigned long) 8735 int CMDIFrameWnd::SetMenuBarState(unsigned long) 8736 void CFrameWnd::SetMenuBarVisibility(unsigned long) 8737 void CMDIFrameWnd::SetMenuBarVisibility(unsigned long) 8738 int CMenu::SetMenuContextHelpId(unsigned long) 8739 int CMenu::SetMenuItemBitmaps(unsigned int,unsigned int,CBitmap const *,CBitmap const *) 8740 int CMenu::SetMenuItemInfoW(unsigned int,tagMENUITEMINFOW *,int) 8741 void COleMessageFilter::SetMessagePendingDelay(unsigned long) 8742 void CFrameWnd::SetMessageText(unsigned int) 8743 void CFrameWnd::SetMessageText(wchar_t const *) 8744 void CStatusBarCtrl::SetMinHeight(int) 8745 void CPrintInfo::SetMinPage(unsigned int) 8746 int CTabCtrl::SetMinTabWidth(int) 8747 int CDC::SetMiterLimit(float) 8748 void CPropertyPage::SetModified(int) 8749 void CDocument::SetModifiedFlag(int) 8750 void COleControl::SetModifiedFlag(int) 8751 void COlePropertyPage::SetModifiedFlag(int) 8752 void CRichEditDoc::SetModifiedFlag(int) 8753 void CEdit::SetModify(int) 8754 void CRichEditCtrl::SetModify(int) 8755 long CDocObjectServer::XOleObject::SetMoniker(unsigned long,IMoniker *) 8756 long COleControl::XOleObject::SetMoniker(unsigned long,IMoniker *) 8757 long COleServerDoc::XOleObject::SetMoniker(unsigned long,IMoniker *) 8758 long COleServerItem::XOleObject::SetMoniker(unsigned long,IMoniker *) 8759 unsigned long CDateTimeCtrl::SetMonthCalColor(int,unsigned long) 8760 void CDateTimeCtrl::SetMonthCalFont(HFONT__ *,int) 8761 unsigned long CDateTimeCtrl::SetMonthCalStyle(unsigned long) 8762 int CMonthCalCtrl::SetMonthDelta(int) 8763 int CMonthCalCtrl::SetMonthView(void) 8764 void CDaoQueryDef::SetName(wchar_t const *) 8765 void CDaoTableDef::SetName(wchar_t const *) 8766 int CPropertySection::SetName(unsigned long,wchar_t const *) 8767 void COleControl::SetNotPermitted(void) 8768 void CCmdTarget::SetNotSupported(void) 8769 void COleControl::SetNotSupported(void) 8770 void CDaoRecordset::SetNullableFieldStatus(unsigned int) 8771 void CDaoRecordset::SetNullableKnownFieldStatus(unsigned int) 8772 void CDaoRecordset::SetNullFieldStatus(unsigned int) 8773 void CRecordset::SetNullFieldStatus(unsigned long) 8774 void CRecordset::SetNullParamStatus(unsigned long) 8775 void CDaoFieldExchange::SetNullValue(void *,unsigned long) 8776 long COleControl::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8777 long COleServerDoc::XOleInPlaceObject::SetObjectRects(tagRECT const *,tagRECT const *) 8778 long COlePropertyPage::XPropertyPage::SetObjects(unsigned long,IUnknown * *) 8779 void CArchive::SetObjectSchema(unsigned int) 8780 int CDialog::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8781 int CDialogBar::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8782 int CFormView::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8783 int CWnd::SetOccDialogInfo(_AFX_OCC_DIALOG_INFO *) 8784 void CDaoQueryDef::SetODBCTimeout(short) 8785 void CHtmlView::SetOffline(int) 8786 int CRichEditCtrl::SetOLECallback(IRichEditOleCallback *) 8787 int CInternetConnection::SetOption(unsigned long,unsigned long,unsigned long) 8788 int CInternetConnection::SetOption(unsigned long,void *,unsigned long,unsigned long) 8789 int CInternetFile::SetOption(unsigned long,unsigned long,unsigned long) 8790 int CInternetFile::SetOption(unsigned long,void *,unsigned long,unsigned long) 8791 int CInternetSession::SetOption(unsigned long,unsigned long,unsigned long) 8792 int CInternetSession::SetOption(unsigned long,void *,unsigned long,unsigned long) 8793 void CRichEditCtrl::SetOptions(unsigned short,unsigned long) 8794 int CHeaderCtrl::SetOrderArray(int,int *) 8795 void CPropertySet::SetOSVersion(unsigned long) 8796 void CDC::SetOutputDC(HDC__ *) 8797 void CMetaFileDC::SetOutputDC(HDC__ *) 8798 void CPreviewDC::SetOutputDC(HDC__ *) 8799 int CImageList::SetOverlayImage(int,int) 8800 CWnd * CReBarCtrl::SetOwner(CWnd *) 8801 void CToolBar::SetOwner(CWnd *) 8802 void CToolBarCtrl::SetOwner(CWnd *) 8803 void CWnd::SetOwner(CWnd *) 8804 void CTabCtrl::SetPadding(CSize) 8805 unsigned long CToolBarCtrl::SetPadding(int,int) 8806 void COlePropertyPage::SetPageName(wchar_t const *) 8807 long COlePropertyPage::XPropertyPage::SetPageSite(IPropertyPageSite *) 8808 int CSliderCtrl::SetPageSize(int) 8809 CPalette * CReBarCtrl::SetPalette(HPALETTE__ *) 8810 unsigned int CPalette::SetPaletteEntries(unsigned int,unsigned int,tagPALETTEENTRY *) 8811 void CStatusBar::SetPaneInfo(int,unsigned int,unsigned int,int) 8812 void CStatusBar::SetPaneStyle(int,unsigned int) 8813 int CStatusBar::SetPaneText(int,wchar_t const *,int) 8814 void CRichEditView::SetPaperSize(CSize) 8815 int CRichEditCtrl::SetParaFormat(_paraformat &) 8816 int CRichEditCtrl::SetParaFormat(PARAFORMAT2 &) 8817 int CRichEditView::SetParaFormat(PARAFORMAT2 &) 8818 void CRecordset::SetParamNull(int,int) 8819 void CDaoQueryDef::SetParamValue(int,COleVariant const &) 8820 void CDaoQueryDef::SetParamValue(wchar_t const *,COleVariant const &) 8821 void CDaoRecordset::SetParamValue(int,COleVariant const &) 8822 void CDaoRecordset::SetParamValue(wchar_t const *,COleVariant const &) 8823 void CDaoQueryDef::SetParamValueNull(int) 8824 void CDaoQueryDef::SetParamValueNull(wchar_t const *) 8825 void CDaoRecordset::SetParamValueNull(int) 8826 void CDaoRecordset::SetParamValueNull(wchar_t const *) 8827 CWnd * CWnd::SetParent(CWnd *) 8828 int CStatusBarCtrl::SetParts(int,int *) 8829 void CEdit::SetPasswordChar(wchar_t) 8830 void CDataPathProperty::SetPath(wchar_t const *) 8831 void CDocument::SetPathName(wchar_t const *,int) 8832 void COleDocument::SetPathName(wchar_t const *,int) 8833 void CRichEditDoc::SetPathName(wchar_t const *,int) 8834 void CDaoRecordset::SetPercentPosition(float) 8835 void CHandleMap::SetPermanent(void *,CObject *) 8836 void CPictureHolder::SetPictureDispatch(IPictureDisp *) 8837 unsigned long CDC::SetPixel(int,int,unsigned long) 8838 unsigned long CDC::SetPixel(tagPOINT,unsigned long) 8839 int CDC::SetPixelV(int,int,unsigned long) 8840 int CDC::SetPixelV(tagPOINT,unsigned long) 8841 int CDC::SetPolyFillMode(int) 8842 int CProgressCtrl::SetPos(int) 8843 void CSliderCtrl::SetPos(int) 8844 int CSpinButtonCtrl::SetPos(int) 8845 int CSpinButtonCtrl::SetPos32(int) 8846 void COleIPFrameWnd::SetPreviewMode(int) 8847 int COleClientItem::SetPrintDevice(tagDVTARGETDEVICE const *) 8848 int COleClientItem::SetPrintDevice(tagPDW const *) 8849 void CEditView::SetPrinterFont(CFont *) 8850 int CPreviewView::SetPrintView(CView *) 8851 int COlePropertyPage::SetPropCheck(wchar_t const *,int) 8852 void COleControlSite::SetProperty(long,unsigned short,...) 8853 void COleDispatchDriver::SetProperty(long,unsigned short,...) 8854 void CWnd::SetProperty(long,unsigned short,...) 8855 void COleControlSite::SetPropertyV(long,unsigned short,char *) 8856 int COlePropertyPage::SetPropIndex(wchar_t const *,int) 8857 int COlePropertyPage::SetPropRadio(wchar_t const *,int) 8858 int COleControl::SetPropsetData(tagFORMATETC *,tagSTGMEDIUM *,_GUID const &) 8859 int COlePropertyPage::SetPropText(wchar_t const *,unsigned char &) 8860 int COlePropertyPage::SetPropText(wchar_t const *,short &) 8861 int COlePropertyPage::SetPropText(wchar_t const *,int &) 8862 int COlePropertyPage::SetPropText(wchar_t const *,unsigned int &) 8863 int COlePropertyPage::SetPropText(wchar_t const *,long &) 8864 int COlePropertyPage::SetPropText(wchar_t const *,unsigned long &) 8865 int COlePropertyPage::SetPropText(wchar_t const *,float &) 8866 int COlePropertyPage::SetPropText(wchar_t const *,double &) 8867 int COlePropertyPage::SetPropText(wchar_t const *,ATL::CStringT > > &) 8868 long CWnd::SetProxy(IAccessibleProxy *) 8869 long CWnd::XAccessibleServer::SetProxy(IAccessibleProxy *) 8870 int CRichEditCtrl::SetPunctuation(unsigned int,_punctuation *) 8871 void CDaoDatabase::SetQueryTimeout(short) 8872 void CDatabase::SetQueryTimeout(unsigned long) 8873 void CCmdUI::SetRadio(int) 8874 void CTestCmdUI::SetRadio(int) 8875 int CDateTimeCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8876 int CDateTimeCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8877 int CMonthCalCtrl::SetRange(ATL::COleDateTime const *,ATL::COleDateTime const *) 8878 int CMonthCalCtrl::SetRange(ATL::CTime const *,ATL::CTime const *) 8879 int CMonthCalCtrl::SetRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8880 void CProgressCtrl::SetRange(short,short) 8881 void CSliderCtrl::SetRange(int,int,int) 8882 void CSpinButtonCtrl::SetRange(short,short) 8883 void CProgressCtrl::SetRange32(int,int) 8884 void CSpinButtonCtrl::SetRange32(int,int) 8885 void CSliderCtrl::SetRangeMax(int,int) 8886 void CSliderCtrl::SetRangeMin(int,int) 8887 int CInternetFile::SetReadBufferSize(unsigned int) 8888 int CEdit::SetReadOnly(int) 8889 int CRichEditCtrl::SetReadOnly(int) 8890 void CEdit::SetRect(tagRECT const *) 8891 void CRichEditCtrl::SetRect(tagRECT const *) 8892 long CDocObjectServer::XOleDocumentView::SetRect(tagRECT *) 8893 long CDocObjectServer::XOleDocumentView::SetRectComplex(tagRECT *,tagRECT *,tagRECT *,tagRECT *) 8894 int COleControl::SetRectInContainer(tagRECT const *) 8895 void CEdit::SetRectNP(tagRECT const *) 8896 void CRgn::SetRectRgn(int,int,int,int) 8897 void CRgn::SetRectRgn(tagRECT const *) 8898 void CWnd::SetRedraw(int) 8899 void CHtmlView::SetRegisterAsBrowser(int) 8900 void CHtmlView::SetRegisterAsDropTarget(int) 8901 void CWinApp::SetRegistryKey(unsigned int) 8902 void CWinApp::SetRegistryKey(wchar_t const *) 8903 void COleMessageFilter::SetRetryReply(unsigned long) 8904 void CDaoQueryDef::SetReturnsRecords(int) 8905 int CDC::SetROP2(int) 8906 void CSplitterWnd::SetRowInfo(int,int,int) 8907 void CToolBarCtrl::SetRows(int,int,tagRECT *) 8908 void CRecordset::SetRowsetCurrencyStatus(short,unsigned short,long,unsigned long) 8909 void CRecordset::SetRowsetCursorPosition(unsigned short,unsigned short) 8910 void CRecordset::SetRowsetSize(unsigned long) 8911 void CHotKeyCtrl::SetRules(unsigned short,unsigned short) 8912 void CPreviewView::SetScaledSize(unsigned int) 8913 void CPreviewDC::SetScaleRatio(int,int) 8914 void CScrollView::SetScaleToFitSize(tagSIZE) 8915 void CDockState::SetScreenSize(CSize &) 8916 int CScrollBar::SetScrollInfo(tagSCROLLINFO *,int) 8917 int CWnd::SetScrollInfo(int,tagSCROLLINFO *,int) 8918 int CScrollBar::SetScrollPos(int,int) 8919 int CWnd::SetScrollPos(int,int,int) 8920 void CScrollBar::SetScrollRange(int,int,int) 8921 void CWnd::SetScrollRange(int,int,int,int) 8922 void CScrollView::SetScrollSizes(int,tagSIZE,tagSIZE const &,tagSIZE const &) 8923 void CSplitterWnd::SetScrollStyle(unsigned long) 8924 unsigned int CTreeCtrl::SetScrollTime(unsigned int) 8925 int CPropertySection::SetSectionName(wchar_t const *) 8926 void CEdit::SetSel(int,int,int) 8927 void CEdit::SetSel(unsigned long,int) 8928 int CListBox::SetSel(int,int) 8929 void CRichEditCtrl::SetSel(_charrange &) 8930 void CRichEditCtrl::SetSel(long,long) 8931 void CSliderCtrl::SetSelection(int,int) 8932 int CRichEditCtrl::SetSelectionCharFormat(_charformatw &) 8933 int CRichEditCtrl::SetSelectionCharFormat(CHARFORMAT2W &) 8934 void CCheckListBox::SetSelectionCheck(int) 8935 int CListCtrl::SetSelectionMark(int) 8936 int CMonthCalCtrl::SetSelRange(ATL::COleDateTime const &,ATL::COleDateTime const &) 8937 int CMonthCalCtrl::SetSelRange(ATL::CTime const &,ATL::CTime const &) 8938 int CMonthCalCtrl::SetSelRange(_SYSTEMTIME * const,_SYSTEMTIME * const) 8939 void CDocTemplate::SetServerInfo(unsigned int,unsigned int,CRuntime*,CRuntime*) 8940 void CHtmlView::SetSilent(int) 8941 int CStatusBarCtrl::SetSimple(int) 8942 long CPrintDialogEx::SetSite(IUnknown *) 8943 long CArchiveStream::SetSize(union _ULARGE_INTEGER) 8944 void CByteArray::SetSize(int,int) 8945 void CDWordArray::SetSize(int,int) 8946 void CObArray::SetSize(int,int) 8947 void CPtrArray::SetSize(int,int) 8948 void CStringArray::SetSize(int,int) 8949 void CUIntArray::SetSize(int,int) 8950 void CWordArray::SetSize(int,int) 8951 void CToolBar::SetSizes(tagSIZE,tagSIZE) 8952 int CAsyncSocket::SetSockOpt(int,void const *,int,int) 8953 void CDaoTableDef::SetSourceTableName(wchar_t const *) 8954 void CSplitterWnd::SetSplitCursor(int) 8955 void CDaoQueryDef::SetSQL(wchar_t const *) 8956 long CCmdTarget::SetStandardProp(AFX_DISPMAP_ENTRY const *,tagDISPPARAMS *,unsigned int *) 8957 void CButton::SetState(int) 8958 int CProgressCtrl::SetState(int) 8959 void CRecordset::SetState(int,wchar_t const *,unsigned long) 8960 int CToolBarCtrl::SetState(int,unsigned int) 8961 void CFile::SetStatus(wchar_t const *,CFileStatus const &) 8962 void COleCurrency::SetStatus(enum COleCurrency::CurrencyStatus) 8963 void CHtmlView::SetStatusBar(int) 8964 int CControlBar::SetStatusText(int) 8965 long COleFrameHook::XOleInPlaceFrame::SetStatusText(wchar_t const *) 8966 long COleControlContainer::XOleIPFrame::SetStatusText(wchar_t const *) 8967 int CProgressCtrl::SetStep(int) 8968 void CArchive::SetStoreParams(unsigned int,unsigned int) 8969 int CDC::SetStretchBltMode(int) 8970 void ATL::CSimpleStringT::SetString(wchar_t const *) 8971 void ATL::CSimpleStringT::SetString(wchar_t const *,int) 8972 void ATL::CSimpleStringT::SetString(char const *) 8973 void ATL::CSimpleStringT::SetString(char const *,int) 8974 void COleVariant::SetString(wchar_t const *,unsigned short) 8975 void CToolBarCtrl::SetStyle(unsigned long) 8976 void CDatabase::SetSynchronousMode(int) 8977 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8978 wchar_t * ATL::CStringT > >::SetSysString(wchar_t * *)const 8979 int CDialogTemplate::SetSystemFont(unsigned short) 8980 int CEdit::SetTabStops(int const &) 8981 int CEdit::SetTabStops(int,int *) 8982 void CEdit::SetTabStops(void) 8983 void CEditView::SetTabStops(int) 8984 int CListBox::SetTabStops(int const &) 8985 int CListBox::SetTabStops(int,int *) 8986 void CListBox::SetTabStops(void) 8987 int CRichEditCtrl::SetTargetDevice(CDC &,long) 8988 int CRichEditCtrl::SetTargetDevice(HDC__ *,long) 8989 int CDialogTemplate::SetTemplate(DLGTEMPLATE const *,unsigned int) 8990 void CFileDialog::SetTemplate(unsigned int,unsigned int) 8991 void CFileDialog::SetTemplate(wchar_t const *,wchar_t const *) 8992 void CCmdUI::SetText(wchar_t const *) 8993 void COleCmdUI::SetText(wchar_t const *) 8994 void COleControl::SetText(wchar_t const *) 8995 int CStatusBarCtrl::SetText(wchar_t const *,int,int) 8996 void CStatusCmdUI::SetText(wchar_t const *) 8997 void CTestCmdUI::SetText(wchar_t const *) 8998 void CToolCmdUI::SetText(wchar_t const *) 8999 unsigned int CDC::SetTextAlign(unsigned int) 9000 int CListCtrl::SetTextBkColor(unsigned long) 9001 int CDC::SetTextCharacterExtra(int) 9002 unsigned long CDC::SetTextColor(unsigned long) 9003 int CListCtrl::SetTextColor(unsigned long) 9004 unsigned long CPreviewDC::SetTextColor(unsigned long) 9005 unsigned long CReBarCtrl::SetTextColor(unsigned long) 9006 unsigned long CTreeCtrl::SetTextColor(unsigned long) 9007 int CDC::SetTextJustification(int,int) 9008 int CRichEditCtrl::SetTextMode(unsigned int) 9009 void CHtmlView::SetTheaterMode(int) 9010 int CWinThread::SetThreadPriority(int) 9011 void CSliderCtrl::SetThumbLength(int) 9012 int CSliderCtrl::SetTic(int) 9013 void CSliderCtrl::SetTicFreq(int) 9014 int CDateTimeCtrl::SetTime(ATL::COleDateTime const &) 9015 int CDateTimeCtrl::SetTime(_SYSTEMTIME *) 9016 int CDateTimeCtrl::SetTime(ATL::CTime const *) 9017 unsigned int CWnd::SetTimer(unsigned int,unsigned int,void (__stdcall*)(HWND__ *,unsigned int,unsigned int,unsigned long)) 9018 void CToolTipCtrl::SetTipBkColor(unsigned long) 9019 int CSliderCtrl::SetTipSide(int) 9020 void CStatusBarCtrl::SetTipText(int,wchar_t const *) 9021 void CToolTipCtrl::SetTipTextColor(unsigned long) 9022 void CDocument::SetTitle(wchar_t const *) 9023 void CFrameWnd::SetTitle(wchar_t const *) 9024 void CPropertySheet::SetTitle(wchar_t const *,unsigned int) 9025 void CRichEditDoc::SetTitle(wchar_t const *) 9026 int CToolTipCtrl::SetTitle(unsigned int,wchar_t const *) 9027 void CMonthCalCtrl::SetToday(ATL::COleDateTime const &) 9028 void CMonthCalCtrl::SetToday(ATL::CTime const *) 9029 void CMonthCalCtrl::SetToday(_SYSTEMTIME * const) 9030 void CHtmlView::SetToolBar(int) 9031 void CToolTipCtrl::SetToolInfo(tagTOOLINFOW *) 9032 void CToolTipCtrl::SetToolRect(CWnd *,unsigned int,tagRECT const *) 9033 CToolTipCtrl * CListCtrl::SetToolTips(CToolTipCtrl *) 9034 void CReBarCtrl::SetToolTips(CToolTipCtrl *) 9035 void CSliderCtrl::SetToolTips(CToolTipCtrl *) 9036 void CTabCtrl::SetToolTips(CToolTipCtrl *) 9037 void CToolBarCtrl::SetToolTips(CToolTipCtrl *) 9038 CToolTipCtrl * CTreeCtrl::SetToolTips(CToolTipCtrl *) 9039 void CHtmlView::SetTop(long) 9040 int CComboBox::SetTopIndex(int) 9041 int CListBox::SetTopIndex(int) 9042 void CPreviewDC::SetTopLeftOffset(CSize) 9043 void CProperty::SetType(unsigned long) 9044 unsigned int CRichEditCtrl::SetUndoLimit(unsigned int) 9045 void CRecordset::SetUpdateMethod(void) 9046 void CDaoTableDef::SetValidationRule(wchar_t const *) 9047 void CDaoTableDef::SetValidationText(wchar_t const *) 9048 void CThreadSlotData::SetValue(int,void *) 9049 long COlePropertiesDialog::XOleUIObjInfo::SetViewInfo(unsigned long,void *,unsigned long,int,int) 9050 CSize CDC::SetViewportExt(tagSIZE) 9051 CSize CDC::SetViewportExt(int,int) 9052 CSize CMetaFileDC::SetViewportExt(tagSIZE) 9053 CSize CMetaFileDC::SetViewportExt(int,int) 9054 CSize CPreviewDC::SetViewportExt(int,int) 9055 CPoint CDC::SetViewportOrg(tagPOINT) 9056 CPoint CDC::SetViewportOrg(int,int) 9057 CPoint CMetaFileDC::SetViewportOrg(tagPOINT) 9058 CPoint CMetaFileDC::SetViewportOrg(int,int) 9059 CPoint CPreviewDC::SetViewportOrg(int,int) 9060 void CHtmlView::SetVisible(int) 9061 void CHtmlView::SetWidth(long) 9062 int CWnd::SetWindowContextHelpId(unsigned long) 9063 CSize CDC::SetWindowExt(tagSIZE) 9064 CSize CDC::SetWindowExt(int,int) 9065 CSize CPreviewDC::SetWindowExt(int,int) 9066 CPoint CDC::SetWindowOrg(int,int) 9067 CPoint CDC::SetWindowOrg(tagPOINT) 9068 int CWnd::SetWindowPlacement(tagWINDOWPLACEMENT const *) 9069 int COleControlSite::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 9070 int CWnd::SetWindowPos(CWnd const *,int,int,int,int,unsigned int) 9071 int CWnd::SetWindowRgn(HRGN__ *,int) 9072 void COleControlSite::SetWindowTextW(wchar_t const *) 9073 void CWnd::SetWindowTextW(wchar_t const *) 9074 void CPropertySheet::SetWizardButtons(unsigned long) 9075 void CPropertySheet::SetWizardMode(void) 9076 int CRichEditCtrl::SetWordCharFormat(_charformatw &) 9077 int CRichEditCtrl::SetWordCharFormat(CHARFORMAT2W &) 9078 unsigned int CRichEditCtrl::SetWordWrapMode(unsigned int)const 9079 void CListCtrl::SetWorkAreas(int,tagRECT *) 9080 int CDC::SetWorldTransform(tagXFORM const *) 9081 int CInternetFile::SetWriteBufferSize(unsigned int) 9082 int CMonthCalCtrl::SetYearView(void) 9083 void CPreviewView::SetZoomState(unsigned int,unsigned int,CPoint) 9084 long CDocObjectServer::XOleDocumentView::Show(int) 9085 long COlePropertyPage::XPropertyPage::Show(unsigned int) 9086 void CDockBar::ShowAll(int) 9087 int CWinApp::ShowAppMessageBox(CWinApp *,wchar_t const *,unsigned int,unsigned int) 9088 int CReBarCtrl::ShowBand(unsigned int,int) 9089 void CWnd::ShowCaret(void) 9090 long CRichEditCntrItem::ShowContainerUI(int) 9091 long CRichEditView::ShowContainerUI(int) 9092 long CRichEditView::XRichEditOleCallback::ShowContainerUI(int) 9093 long CBrowserControlSite::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 9094 long CDHtmlDialog::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 9095 long CHtmlControlSite::XDocHostUIHandler::ShowContextMenu(unsigned long,tagPOINT *,IUnknown *,IDispatch *) 9096 void CFrameWnd::ShowControlBar(CControlBar *,int,int) 9097 void CComboBox::ShowDropDown(int) 9098 void CTreeCtrl::ShowInfoTip(_TREEITEM *) 9099 long COleClientItem::XOleClientSite::ShowObject(void) 9100 long COleControlSite::XOleClientSite::ShowObject(void) 9101 void CWnd::ShowOwnedPopups(int) 9102 void CFrameWnd::ShowOwnedWindows(int) 9103 long COleControlSite::XOleControlSite::ShowPropertyFrame(void) 9104 void CScrollBar::ShowScrollBar(int) 9105 void CWnd::ShowScrollBar(unsigned int,int) 9106 long CBrowserControlSite::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 9107 long CDHtmlDialog::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 9108 long CHtmlControlSite::XDocHostUIHandler::ShowUI(unsigned long,IOleInPlaceActiveObject *,IOleCommandTarget *,IOleInPlaceFrame *,IOleInPlaceUIWindow *) 9109 int COleControlSite::ShowWindow(int) 9110 int CWnd::ShowWindow(int) 9111 int CAsyncSocket::ShutDown(int) 9112 tagSIZE const CScrollView::sizeDefault 9113 int CMonthCalCtrl::SizeMinReq(int) 9114 void CMonthCalCtrl::SizeRectToMin(tagRECT *) 9115 void CBitmapButton::SizeToContent(void) 9116 void CToolBar::SizeToolBar(_TBBUTTON *,int,int,int) 9117 int CReBarCtrl::SizeToRect(CRect &) 9118 long CEnumArray::XEnumVOID::Skip(unsigned long) 9119 void CRecordset::SkipDeletedRecords(unsigned short,long,unsigned long *,short *) 9120 int CAsyncSocket::Socket(int,long,int,int) 9121 int CTreeCtrl::SortChildren(_TREEITEM *) 9122 int CTreeCtrl::SortChildrenCB(tagTVSORTCB *) 9123 int CListCtrl::SortItems(int (__stdcall*)(long,long,long),unsigned long) 9124 int CListCtrl::SortItemsEx(int (__stdcall*)(long,long,long),unsigned long) 9125 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(wchar_t const *)const 9126 ATL::CStringT > > ATL::CStringT > >::SpanExcluding(char const *)const 9127 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(wchar_t const *)const 9128 ATL::CStringT > > ATL::CStringT > >::SpanIncluding(char const *)const 9129 int CSplitterWnd::SplitColumn(int) 9130 DLGTEMPLATE * COccManager::SplitDialogTemplate(DLGTEMPLATE const *,DLGITEMTEMPLATE * *) 9131 int CSplitterWnd::SplitRow(int) 9132 int CDC::StartDocW(_DOCINFOW *) 9133 int CDC::StartDocW(wchar_t const *) 9134 void CDockContext::StartDrag(CPoint) 9135 int CDC::StartPage(void) 9136 void CDockContext::StartResize(int,CPoint) 9137 void CSplitterWnd::StartTracking(int) 9138 long CArchiveStream::Stat(tagSTATSTG *,unsigned long) 9139 int CProgressCtrl::StepIt(void) 9140 int CAnimateCtrl::Stop(void) 9141 void CHtmlView::Stop(void) 9142 void CRichEditCtrl::StopGroupTyping(void) 9143 void CSplitterWnd::StopTracking(int) 9144 void CRuntimeClass::Store(CArchive &)const 9145 void CDaoRecordset::StoreFields(void) 9146 void CRecordset::StoreFields(void) 9147 void CRichEditView::Stream(CArchive &,int) 9148 long CRichEditCtrl::StreamIn(int,_editstream &) 9149 long CRichEditCtrl::StreamOut(int,_editstream &) 9150 void CDockContext::Stretch(CPoint) 9151 int CDC::StretchBlt(int,int,int,int,CDC *,int,int,int,int,unsigned long) 9152 int ATL::CSimpleStringT::StringLength(wchar_t const *) 9153 int ATL::CSimpleStringT::StringLength(char const *) 9154 int ATL::CSimpleStringT::StringLength(wchar_t const *) 9155 int ATL::CSimpleStringT::StringLength(char const *) 9156 void CDaoRecordset::StripBrackets(wchar_t const *,wchar_t *) 9157 int CDC::StrokeAndFillPath(void) 9158 int CDC::StrokePath(void) 9159 int CWnd::SubclassDlgItem(unsigned int,CWnd *) 9160 int CWnd::SubclassWindow(HWND__ *) 9161 int CListCtrl::SubItemHitTest(tagLVHITTESTINFO *) 9162 int COleDocObjectItem::SupportsIPrint(void) 9163 unsigned long CWinThread::SuspendThread(void) 9164 long COleControlSite::XNotifyDBEvents::SyncAfter(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 9165 long COleControlSite::XNotifyDBEvents::SyncBefore(unsigned long,unsigned long,tagDBNOTIFYREASON * const) 9166 void CRichEditCntrItem::SyncToRichEditObject(_reobject &) 9167 CSize CDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 9168 CSize CDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 9169 CSize CMetaFileDC::TabbedTextOutW(int,int,ATL::CStringT > > const &,int,int *,int) 9170 CSize CMetaFileDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 9171 CSize CPreviewDC::TabbedTextOutW(int,int,wchar_t const *,int,int,int *,int) 9172 void CRichEditView::TextNotFound(wchar_t const *) 9173 int CDC::TextOutW(int,int,ATL::CStringT > > const &) 9174 int CDC::TextOutW(int,int,wchar_t const *,int) 9175 int CMetaFileDC::TextOutW(int,int,ATL::CStringT > > const &) 9176 int CMetaFileDC::TextOutW(int,int,wchar_t const *,int) 9177 int CPreviewDC::TextOutW(int,int,wchar_t const *,int) 9178 void CDaoDatabase::ThrowDaoException(int) 9179 void CDaoQueryDef::ThrowDaoException(int) 9180 void CDaoRecordset::ThrowDaoException(int) 9181 void CDaoTableDef::ThrowDaoException(int) 9182 void CDaoWorkspace::ThrowDaoException(int) 9183 void CDatabase::ThrowDBException(short) 9184 void CRecordset::ThrowDBException(short,void *) 9185 void CFileException::ThrowErrno(int,wchar_t const *) 9186 void COleControl::ThrowError(long,unsigned int,unsigned int) 9187 void COleControl::ThrowError(long,wchar_t const *,unsigned int) 9188 void ThrowGetRowsDaoException(long) 9189 void ATL::CSimpleStringT::ThrowMemoryException(void) 9190 void ATL::CSimpleStringT::ThrowMemoryException(void) 9191 void CFileException::ThrowOsError(long,wchar_t const *) 9192 void CDockContext::ToggleDocking(void) 9193 ATL::CStringT > > ATL::CStringT > >::Tokenize(wchar_t const *,int &)const 9194 ATL::CStringT > > ATL::CStringT > >::Tokenize(char const *,int &)const 9195 COleVariant CDataSourceControl::ToVariant(int) 9196 ATL::CTraceCategory traceAppMsg 9197 ATL::CTraceCategory traceCmdRouting 9198 ATL::CTraceCategory traceDatabase 9199 ATL::CTraceCategory traceDumpContext 9200 void CDBException::TraceErrorMessage(wchar_t const *)const 9201 ATL::CTraceCategory traceGdi 9202 ATL::CTraceCategory traceHtml 9203 ATL::CTraceCategory traceInternet 9204 ATL::CTraceCategory traceKernel 9205 ATL::CTraceCategory traceMemory 9206 ATL::CTraceCategory traceMultiApp 9207 ATL::CTraceCategory traceOle 9208 ATL::CTraceCategory traceSocket 9209 ATL::CTraceCategory traceUser 9210 ATL::CTraceCategory traceWinMsg 9211 int CDockContext::Track(void) 9212 int CRectTracker::Track(CWnd *,CPoint,int,CWnd *) 9213 void CSplitterWnd::TrackColumnSize(int,int) 9214 int CRectTracker::TrackHandle(int,CWnd *,CPoint,CWnd *) 9215 int CMenu::TrackPopupMenu(unsigned int,int,int,CWnd *,tagRECT const *) 9216 int CMenu::TrackPopupMenuEx(unsigned int,int,int,CWnd *,tagTPMPARAMS *) 9217 void CSplitterWnd::TrackRowSize(int,int) 9218 int CRectTracker::TrackRubberBand(CWnd *,CPoint,int) 9219 void COleControl::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 9220 long COleControlSite::XOleControlSite::TransformCoords(_POINTL *,tagPOINTF *,unsigned long) 9221 long CBrowserControlSite::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 9222 long CDHtmlDialog::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 9223 long CHtmlControlSite::XDocHostUIHandler::TranslateAcceleratorW(tagMSG *,_GUID const *,unsigned long) 9224 long COleControlSite::XOleControlSite::TranslateAcceleratorW(tagMSG *,unsigned long) 9225 long COleControl::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 9226 long COleServerDoc::XOleInPlaceActiveObject::TranslateAcceleratorW(tagMSG *) 9227 long COleFrameHook::XOleInPlaceFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 9228 long COleControlContainer::XOleIPFrame::TranslateAcceleratorW(tagMSG *,unsigned short) 9229 long COlePropertyPage::XPropertyPage::TranslateAcceleratorW(tagMSG *) 9230 unsigned long COleControl::TranslateColor(unsigned long,HPALETTE__ *) 9231 long CBrowserControlSite::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 9232 long CDHtmlDialog::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 9233 long CHtmlControlSite::XDocHostUIHandler::TranslateUrl(unsigned long,wchar_t *,wchar_t * *) 9234 int CDC::TransparentBlt(int,int,int,int,CDC *,int,int,int,int,unsigned int) 9235 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t) 9236 ATL::CStringT > > & ATL::CStringT > >::Trim(wchar_t const *) 9237 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 9238 ATL::CStringT > > & ATL::CStringT > >::Trim(char) 9239 ATL::CStringT > > & ATL::CStringT > >::Trim(char const *) 9240 ATL::CStringT > > & ATL::CStringT > >::Trim(void) 9241 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t) 9242 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(wchar_t const *) 9243 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 9244 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char) 9245 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(char const *) 9246 ATL::CStringT > > & ATL::CStringT > >::TrimLeft(void) 9247 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t) 9248 ATL::CStringT > > & ATL::CStringT > >::TrimRight(wchar_t const *) 9249 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 9250 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char) 9251 ATL::CStringT > > & ATL::CStringT > >::TrimRight(char const *) 9252 ATL::CStringT > > & ATL::CStringT > >::TrimRight(void) 9253 void ATL::CSimpleStringT::Truncate(int) 9254 void ATL::CSimpleStringT::Truncate(int) 9255 long CDocObjectServer::XOleDocumentView::UIActivate(int) 9256 void COccManager::UIActivateControl(CWnd *) 9257 long COleControl::XOleInPlaceObject::UIDeactivate(void) 9258 long COleServerDoc::XOleInPlaceObject::UIDeactivate(void) 9259 void COccManager::UIDeactivateIfNecessary(CWnd *,CWnd *) 9260 void COleSafeArray::UnaccessData(void) 9261 long CDHtmlElementEventSink::UnAdvise(IUnknown *,_GUID const &) 9262 long CConnectionPoint::XConnPt::Unadvise(unsigned long) 9263 long CDocObjectServer::XOleObject::Unadvise(unsigned long) 9264 long COleControl::XOleObject::Unadvise(unsigned long) 9265 long COleServerDoc::XOleObject::Unadvise(unsigned long) 9266 long COleServerItem::XOleObject::Unadvise(unsigned long) 9267 void CRecordset::UnbindFieldsForUpdate(void) 9268 long COleControl::XOleCache::Uncache(unsigned long) 9269 int CEdit::Undo(void) 9270 int CRichEditCtrl::Undo(void) 9271 long COleControl::XViewObject::Unfreeze(unsigned long) 9272 int CCriticalSection::Unlock(void) 9273 int CEvent::Unlock(void) 9274 int CMultiLock::Unlock(long,long *) 9275 int CMultiLock::Unlock(void) 9276 int CMutex::Unlock(void) 9277 void COleSafeArray::Unlock(void) 9278 int CSemaphore::Unlock(long,long *) 9279 int CSemaphore::Unlock(void) 9280 int CSingleLock::Unlock(long,long *) 9281 int CSingleLock::Unlock(void) 9282 void CTypeLibCache::Unlock(void) 9283 void ATL::CSimpleStringT::UnlockBuffer(void) 9284 void ATL::CSimpleStringT::UnlockBuffer(void) 9285 void CEditView::UnlockBuffer(void)const 9286 void CFile::UnlockRange(unsigned __int64,unsigned __int64) 9287 void CInternetFile::UnlockRange(unsigned __int64,unsigned __int64) 9288 void CMemFile::UnlockRange(unsigned __int64,unsigned __int64) 9289 void COleStreamFile::UnlockRange(unsigned __int64,unsigned __int64) 9290 void CSocketFile::UnlockRange(unsigned __int64,unsigned __int64) 9291 void CStdioFile::UnlockRange(unsigned __int64,unsigned __int64) 9292 long CArchiveStream::UnlockRegion(union _ULARGE_INTEGER,union _ULARGE_INTEGER,unsigned long) 9293 void CWnd::UnlockWindowUpdate(void) 9294 int CGdiObject::UnrealizeObject(void) 9295 int COleObjectFactory::Unregister(void) 9296 int COleTemplateServer::Unregister(void) 9297 int CWinApp::Unregister(void) 9298 int COleObjectFactory::UnregisterAll(void) 9299 void CDocManager::UnregisterShellFileTypes(void) 9300 void CWinApp::UnregisterShellFileTypes(void) 9301 int CControlSiteFactoryMgr::UnregisterSiteFactory(IControlSiteFactory *) 9302 HWND__ * CWnd::UnsubclassWindow(void) 9303 void CDaoRecordset::Update(void) 9304 int CListCtrl::Update(int) 9305 int CRecordset::Update(void) 9306 void CToolTipCtrl::Update(void) 9307 long CDocObjectServer::XOleObject::Update(void) 9308 long COleControl::XOleObject::Update(void) 9309 long COleServerDoc::XOleObject::Update(void) 9310 long COleServerItem::XOleObject::Update(void) 9311 void COleServerDoc::UpdateAllItems(COleServerItem *,long,CObject *,enum tagDVASPECT) 9312 void CStatusBar::UpdateAllPanes(int,int) 9313 void CDocument::UpdateAllViews(CView *,long,CObject *) 9314 void CScrollView::UpdateBars(void) 9315 int CMDIChildWnd::UpdateClientEdge(tagRECT *) 9316 void CDC::UpdateColors(void) 9317 long CDataSourceControl::UpdateControls(void) 9318 long CDataSourceControl::UpdateCursor(void) 9319 void CMemoryState::UpdateData(void) 9320 int CWnd::UpdateData(int) 9321 void CWnd::UpdateDialogControls(CCmdTarget *,int) 9322 void CDocument::UpdateFrameCounts(void) 9323 void CFrameWnd::UpdateFrameTitleForDocument(wchar_t const *) 9324 int CRecordset::UpdateInsertDelete(void) 9325 void COleClientItem::UpdateItemType(void) 9326 int COleClientItem::UpdateLink(void) 9327 long COleUILinkInfo::UpdateLink(unsigned long,int,int) 9328 void CRecentFileList::UpdateMenu(CCmdUI *) 9329 void COleDocument::UpdateModifiedFlag(void) 9330 void CRichEditDoc::UpdateModifiedFlag(void) 9331 void CRichEditDoc::UpdateObjectCache(void) 9332 void CFileDialog::UpdateOFNFromShellDialog(void) 9333 void CWinApp::UpdatePrinterSelection(int) 9334 int COleObjectFactory::UpdateRegistry(int) 9335 void COleObjectFactory::UpdateRegistry(wchar_t const *) 9336 void COleTemplateServer::UpdateRegistry(enum OLE_APPTYPE,wchar_t const * *,wchar_t const * *,int) 9337 int COleObjectFactory::UpdateRegistryAll(int) 9338 void CDockContext::UpdateState(int *,int) 9339 void CToolTipCtrl::UpdateTipText(unsigned int,CWnd *,unsigned int) 9340 void CToolTipCtrl::UpdateTipText(wchar_t const *,CWnd *,unsigned int) 9341 long CBrowserControlSite::UpdateUI(void) 9342 long CDHtmlDialog::UpdateUI(void) 9343 long CHtmlControlSite::XDocHostUIHandler::UpdateUI(void) 9344 void COleServerDoc::UpdateUsingHostObj(unsigned int,CCmdUI *) 9345 void COleLinkingDoc::UpdateVisibleLock(int,int) 9346 void CWnd::UpdateWindow(void) 9347 void CWnd::ValidateRect(tagRECT const *) 9348 void CWnd::ValidateRgn(CRgn *) 9349 void CDatabase::VerifyConnect(void) 9350 unsigned long CRecordset::VerifyCursorSupport(void) 9351 void CRecordset::VerifyDriverBehavior(void) 9352 int COleObjectFactory::VerifyLicenseKey(wchar_t *) 9353 int COleObjectFactory::VerifyUserLicense(void) 9354 int CListBox::VKeyToItem(unsigned int,unsigned int) 9355 int CWnd::WalkPreTranslateTree(HWND__ *,tagMSG *) 9356 int CDC::WidenPath(void) 9357 int COleControl::WillAmbientsBeValidDuringLoad(void) 9358 CWnd * CWnd::WindowFromPoint(tagPOINT) 9359 long CControlBar::WindowProc(unsigned int,unsigned int,long) 9360 long COleControl::WindowProc(unsigned int,unsigned int,long) 9361 long COlePropertyPage::WindowProc(unsigned int,unsigned int,long) 9362 long CParkingWnd::WindowProc(unsigned int,unsigned int,long) 9363 long CReBar::WindowProc(unsigned int,unsigned int,long) 9364 long CReflectorWnd::WindowProc(unsigned int,unsigned int,long) 9365 long CWnd::WindowProc(unsigned int,unsigned int,long) 9366 void CWinApp::WinHelpInternal(unsigned long,unsigned int) 9367 void CWnd::WinHelpInternal(unsigned long,unsigned int) 9368 void CWinApp::WinHelpW(unsigned long,unsigned int) 9369 void CWnd::WinHelpW(unsigned long,unsigned int) 9370 CWnd const CWnd::wndBottom 9371 CWnd const CWnd::wndNoTopMost 9372 CWnd const CWnd::wndTop 9373 CWnd const CWnd::wndTopMost 9374 void CRichEditView::WrapChanged(void) 9375 int CToolBar::WrapToolBar(_TBBUTTON *,int,int) 9376 void CArchive::Write(void const *,unsigned int) 9377 long CArchiveStream::Write(void const *,unsigned long,unsigned long *) 9378 void CFile::Write(void const *,unsigned int) 9379 void CGopherFile::Write(void const *,unsigned int) 9380 int CImageList::Write(CArchive *) 9381 void CInternetFile::Write(void const *,unsigned int) 9382 void CMemFile::Write(void const *,unsigned int) 9383 void COleStreamFile::Write(void const *,unsigned int) 9384 void CSocketFile::Write(void const *,unsigned int) 9385 void CStdioFile::Write(void const *,unsigned int) 9386 void CArchive::WriteClass(CRuntimeconst *) 9387 void CArchive::WriteCount(unsigned long) 9388 void COleClientItem::WriteItem(CArchive &) 9389 void COleClientItem::WriteItemCompound(CArchive &) 9390 void COleClientItem::WriteItemFlat(CArchive &) 9391 void CRecentFileList::WriteList(void) 9392 int CPropertySection::WriteNameDictToStream(IStream *) 9393 void CArchive::WriteObject(CObject const *) 9394 int CWinApp::WriteProfileBinary(wchar_t const *,wchar_t const *,unsigned char *,unsigned int) 9395 int CWinApp::WriteProfileInt(wchar_t const *,wchar_t const *,int) 9396 int CWinApp::WriteProfileStringW(wchar_t const *,wchar_t const *,wchar_t const *) 9397 void CArchive::WriteString(wchar_t const *) 9398 void CGopherFile::WriteString(wchar_t const *) 9399 void CInternetFile::WriteString(wchar_t const *) 9400 void CStdioFile::WriteString(wchar_t const *) 9401 void CEditView::WriteToArchive(CArchive &) 9402 int CProperty::WriteToStream(IStream *) 9403 int CPropertySection::WriteToStream(IStream *) 9404 int CPropertySet::WriteToStream(IStream *) 9405 void AfxSetPerUserRegistration(int) 9406 int AfxGetPerUserRegistration(void) ================================================ FILE: Bin/i386/symsrv.yes ================================================ ================================================ FILE: Doc/build.md ================================================ Under construction. Welcome to PR. ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright (c) 2021 RapidOCR Authors. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: Project/BootVid/Source/bootvid.cpp ================================================ extern "C" { #include NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath); } #ifdef ALLOC_PRAGMA #pragma alloc_text(INIT, DriverEntry) #endif NTSTATUS DllInitialize( IN PUNICODE_STRING pus ) { DbgPrint("SAMPLE: DllInitialize(%S)\n", pus->Buffer ); return STATUS_SUCCESS; } NTSTATUS DllUnload( ) { DbgPrint("SAMPLE: DllUnload\n"); return STATUS_SUCCESS; } extern "C" __declspec(dllexport) int VidResetDisplay(int) { return 0; } extern "C" __declspec(dllexport) int VidSetScrollRegion(int,int,int,int) { return 0; } extern "C" __declspec(dllexport) int VidDisplayString(char* pStr) { return 0; } extern "C" __declspec(dllexport) int VidInitialize(int mode) { return 0; } extern "C" __declspec(dllexport) int VidCleanUp() { return 0; } extern "C" __declspec(dllexport) int VidSetTextColor(int NewTextColor) { return 0; } extern "C" __declspec(dllexport) void VidSolidColorFill(int x,int y,int x1,int y1,int TextColor) { return ; } extern "C" __declspec(dllexport) void VidDisplayStringXY(char* pStr,int x,int y,int TextColor) { return ; } extern "C" __declspec(dllexport) void VidBitBlt(char* colorbuf,int x,int y) { return ; } extern "C" __declspec(dllexport) int VidBufferToScreenBlt(char* buffer,int x,int y,int width,int height,int copymode) { return 0; } extern "C" __declspec(dllexport) int VidScreenToBufferBlt(char* buffer,int x,int y,int width,int heigh,int bitcount) { return 0; } // The DLL must have an entry point, but it is never called. // NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath) { return STATUS_SUCCESS; } ================================================ FILE: Project/BootVid/Source/bootvid.def ================================================ ; ; DEF file for sample kernel-mode DLL. ; NAME bootvid.dll EXPORTS DllInitialize PRIVATE DllUnload PRIVATE VidDisplayStringXY VidDisplayString VidSolidColorFill VidBitBlt VidScreenToBufferBlt VidBufferToScreenBlt VidSetTextColor VidInitialize VidSetScrollRegion VidResetDisplay VidCleanUp ================================================ FILE: Project/BootVid/Source/bootvid.h ================================================ #ifndef _BOOTVID_H_ #define _BOOTVID_H_ extern "C" DECLSPEC_IMPORT void VidSolidColorFill(int x,int y,int x1,int y1,int TextColor); extern "C" DECLSPEC_IMPORT void VidDisplayStringXY(char* pStr,int x,int y,int TextColor); extern "C" DECLSPEC_IMPORT void VidBitBlt(unsigned char* colorbuf,int x,int y); extern "C" DECLSPEC_IMPORT int VidScreenToBufferBlt(char* buffer,int x,int y,int width,int heigh,int linedistance); extern "C" DECLSPEC_IMPORT int VidBufferToScreenBlt(char* buffer,int x,int y,int width,int height,int neg_linedistance); extern "C" DECLSPEC_IMPORT int VidSetTextColor(int NewTextColor); extern "C" DECLSPEC_IMPORT int VidCleanUp(); extern "C" DECLSPEC_IMPORT int VidInitialize(int mode); extern "C" DECLSPEC_IMPORT int VidDisplayString(char* pStr); extern "C" DECLSPEC_IMPORT int VidSetScrollRegion(int,int,int,int); extern "C" DECLSPEC_IMPORT int VidResetDisplay(int); #endif //_BOOTVID_H_ ================================================ FILE: Project/BootVid/Source/bootvid.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""bootvid.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "bootvid.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/BootVid/Source/bootvid.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser bootvid stub" #define VER_ORIGINALFILENAME_STR "bootvid.dll" #define VER_INTERNALNAME_STR "bootvid.dll" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/BootVid/Source/makefile ================================================ !IF 0 Copyright (C) Microsoft Corporation, 1998 - 1998 Module Name: makefile. !ENDIF # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the components of Windows NT # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/BootVid/Source/resource.h ================================================ ================================================ FILE: Project/BootVid/Source/sources ================================================ TARGETNAME=bootvid TARGETPATH=obj TARGETTYPE=EXPORT_DRIVER #TARGETLIBS= ... any libraries you need ... #INCLUDES= ... any include files you need ... SOURCES=bootvid.cpp \ bootvid.rc DLLDEF= bootvid.def ================================================ FILE: Project/BootVid/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/BootVid/WinXPDrv32/bootvid.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bootvid", "bootvid.vcproj", "{69B33E6E-91E3-43DC-80A7-20F0867F9ED5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {69B33E6E-91E3-43DC-80A7-20F0867F9ED5}.Debug|Win32.ActiveCfg = Debug|Win32 {69B33E6E-91E3-43DC-80A7-20F0867F9ED5}.Debug|Win32.Build.0 = Debug|Win32 {69B33E6E-91E3-43DC-80A7-20F0867F9ED5}.Release|Win32.ActiveCfg = Release|Win32 {69B33E6E-91E3-43DC-80A7-20F0867F9ED5}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/BootVid/WinXPDrv32/bootvid.vcproj ================================================ ================================================ FILE: Project/BootVid/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/Code/Source/CmdParser.cpp ================================================ #include "StdAfx.h" #include "CmdParser.h" NAME_SPACE_BEGIN CCmdParser::CCmdParser(void) { } CCmdParser::~CCmdParser(void) { } bool CCmdParser::InsertCmd(const CMD_CHAR*szCmd,CMDPROC pCmdProc,void*pUserData,const CMD_CHAR*pComment,const CMD_CHAR*pUsage) { CMD_CHAR szCmdBuff[256]; CCmdMap::IT Iter; TStrCpy(szCmdBuff,szCmd); TStrLwr(szCmdBuff); Iter = m_CmdMap.InsertUnique(szCmdBuff); if(Iter==m_CmdMap.End()) return false; Iter->pCmdProc = pCmdProc; Iter->pComment = pComment; Iter->pUserData = pUserData; Iter->pUsage = pUsage; return true; } void CCmdParser::RemoveCmd(const CMD_CHAR*szCmd) { CCmdString Str(szCmd); Str.MakeLower(); m_CmdMap.Remove(Str); } void CCmdParser::Reset() { m_CmdMap.Clear(); } int CCmdParser::ParseCmd(CMD_CHAR*szCmd,CMD_CHAR*pszCmdParam[]) { CMD_CHAR*pStr; int Length,ParamCount; Length = TStrLen(szCmd); while(Length) { Length--; if(szCmd[Length]=='\n') szCmd[Length]=0; } ParamCount=1; pStr=szCmd; pszCmdParam[0] = pStr; while(*pStr) { pStr = TStrChr(pStr,' '); if(pStr==NULL) break; while(*pStr==' ') { *pStr=0; pStr++; } if(*pStr) { pszCmdParam[ParamCount]=pStr; ParamCount++; } } return ParamCount; } bool CCmdParser::RunCmd(const CMD_CHAR*szCmd,int*pResult) { CMD_CHAR CmdStr[MAX_CHARS_PER_LINE],*CmdParam[MAX_PARAM_PER_LINE]; int Result,Length,ParamCount; while(*szCmd==' '||*szCmd=='\t') szCmd++; Length = TStrCpyLimit(CmdStr,szCmd,MAX_CHARS_PER_LINE); if(Length==0) return false; ParamCount = ParseCmd(CmdStr,CmdParam); CCmdMap::IT Iter=m_CmdMap.Find(CmdStr); if(Iter!=m_CmdMap.End()) { Result = Iter->pCmdProc(ParamCount,CmdParam,szCmd,Iter->pUserData); if(pResult) *pResult = Result; return true; } return false; } void CCmdParser::RunCmdList(const CMD_CHAR*szCmd,CMD_CHAR SplitChar) { const CMD_CHAR*pBegin,*pEnd; CMD_CHAR szCurCmd[512]; pBegin = szCmd; while(pBegin && *pBegin) { while(*pBegin==SplitChar) pBegin++; pEnd = TStrChr(pBegin,SplitChar); if(pEnd) { TStrCpyLimit(szCurCmd,pBegin,MIN((int)(pEnd-pBegin),512)); pBegin = pEnd; } else { TStrCpyLimit(szCurCmd,pBegin,512); pBegin = NULL; } RunCmd(szCurCmd); } } bool CCmdParser::CmpCmd(const CMD_CHAR*szCmd1,const CMD_CHAR*szCmd2) { CMD_CHAR CmdStr1[MAX_CHARS_PER_LINE],*CmdParam1[MAX_PARAM_PER_LINE]; CMD_CHAR CmdStr2[MAX_CHARS_PER_LINE],*CmdParam2[MAX_PARAM_PER_LINE]; int ParamCount1,ParamCount2; TStrCpyLimit(CmdStr1,szCmd1,MAX_CHARS_PER_LINE); TStrCpyLimit(CmdStr2,szCmd2,MAX_CHARS_PER_LINE); ParamCount1 = ParseCmd(CmdStr1,CmdParam1); ParamCount2 = ParseCmd(CmdStr2,CmdParam2); if(ParamCount1!=ParamCount2) return false; for(int n=0;n CCmdString; struct COMMAND_ENTRY { const CMD_CHAR* pComment; const CMD_CHAR* pUsage; CMDPROC pCmdProc; void* pUserData; }; typedef TMap CCmdMap; #define MAX_CHARS_PER_LINE 256 #define MAX_PARAM_PER_LINE 32 class CCmdParser { public: CCmdParser(void); ~CCmdParser(void); public: virtual void PrintString(const CMD_CHAR* pString){}; public: CCmdMap m_CmdMap; public: virtual void Reset(); virtual bool InsertCmd(const CMD_CHAR*szCmd,CMDPROC pCmdProc,void*pUserData,const CMD_CHAR*pComment,const CMD_CHAR*pUsage); virtual void RemoveCmd(const CMD_CHAR*szCmd); int ParseCmd(CMD_CHAR*szCmd,CMD_CHAR*pszCmdParam[]); bool RunCmd(const CMD_CHAR*szCmd,int*pResult = NULL); void RunCmdList(const CMD_CHAR*szCmd,CMD_CHAR SplitChar=';'); bool CmpCmd(const CMD_CHAR*szCmd1,const CMD_CHAR*szCmd2); }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Code.h ================================================ #ifndef _CODE_H_ #define _CODE_H_ #include "CodeConfig.h" #include "CodeDepInc.h" #include "Define.h" #include "NewAlloc.h" #ifdef CODE_DEBUG_ALLOC #include "DebugNewAlloc.h" #define new new(__FILE__,__LINE__) #endif #include "alt/alt.hpp" #include "StrMem.h" #include "TStrMem.h" #include "Maths.h" #include "SysDep.h" #include "Compress.h" #include "CmdParser.h" #include "TXTFile.h" #include "LogFile.h" #include "INIFile.h" #include "PolyFS.h" #include "Heap.h" #include "OptionValue.h" #include "Float2String.h" #include "LangLib.h" #include "Crc.h" #ifdef CODE_OS_WIN #include "WinReg.h" #include "HttpDownload.h" #include "HttpUpload.h" #endif #ifdef CODE_OS_NT_DRV #include "NTDrvRuntime.h" #endif #ifdef CODE_USE_NAME_SPACE using namespace code; #endif #endif//_CODE_H_ ================================================ FILE: Project/Code/Source/CodeConfig.h ================================================ #ifndef _CODE_CONFIG_H_ #define _CODE_CONFIG_H_ //ϵͳѡ //CODE_OS_WIN WindowӦó //CODE_OS_NT_DRV Window NT //CODE_OS_UNIX UNIX #define _CRT_SECURE_NO_WARNINGS //VC8ȫ⾯ #ifdef WIN32 #ifndef CODE_OS_NT_DRV #define CODE_OS_WIN #endif #else //WIN32 #ifndef CODE_OS_CATOS #define CODE_OS_UNIX #endif #endif #define CODE_INT_BYTES 4 #ifndef CODE_OS_WIN #ifndef CODE_OS_NT_DRV /////////////////////////////////////////// //ֽ #define CODE_BIG_ENDIAN /////////////////////////////////////////// /////////////////////////////////////////// //Bus #define CODE_BUS_ALIGN /////////////////////////////////////////// //ڶĽṹԶָֽڶ //#define CODE_ST_PACK /////////////////////////////////////////// #endif //not define CODE_OS_NT_DRV #endif //not define CODE_OS_WIN /////////////////////////////////////////// //ɱ //#define CODE_VA_DEFINE /////////////////////////////////////////// //UNIXǷʹ߳غ //#define CODE_UNIX_THREAD /////////////////////////////////////////// /////////////////////////////////////////// //ڴй© //#define CODE_DEBUG_ALLOC /////////////////////////////////////////// /////////////////////////////////////////// //ڴ //#define CODE_ALLOC_OVERLOAD /////////////////////////////////////////// /////////////////////////////////////////// //ʹCFixedHeapڴ //#define CODE_ALLOC_USER_HEAP 30*0x100000 //#define CODE_ALLOC_USER_HEAP_FREE_CHECK //ͷڴʱڴ߽־Ƿڴ //#define CODE_ALLOC_USER_HEAP_OVERFLOW_OUTPUT //#define CODE_ALLOC_USER_HEAP_DEBUG_BREAK /////////////////////////////////////////// //////////////////////////////////////////// //#define CODE_USE_NAME_SPACE //ʹcodeֿռ //////////////////////////////////////////// /////////////////////////////////////////// //ϵ don't modify /////////////////////////////////////////// #ifdef CODE_USE_NAME_SPACE #define NAME_SPACE code #define NAME_SPACE_BEGIN namespace NAME_SPACE{ #define NAME_SPACE_END } #else #define NAME_SPACE #define NAME_SPACE_BEGIN #define NAME_SPACE_END #endif #ifdef CODE_ALLOC_USER_HEAP #define CODE_ALLOC_OVERLOAD #endif #ifndef CODE_VA_DEFINE #ifdef CODE_OS_NT_DRV #define CODE_VA_DEFINE #endif #endif /////////////////////////////////////////// //ϵ /////////////////////////////////////////// #endif ================================================ FILE: Project/Code/Source/CodeDepInc.h ================================================ #ifndef _CODE_DEPENDENT_INCLUDE_H_ #define _CODE_DEPENDENT_INCLUDE_H_ #include #include #include //////////////////////////////////////////////// //Windows Application //////////////////////////////////////////////// #ifdef CODE_OS_WIN #include #define CODE_OS_DEFINED #endif//CODE_OS_WIN //////////////////////////////////////////////// //Windows Application //////////////////////////////////////////////// //////////////////////////////////////////////// //Windows NT Driver //////////////////////////////////////////////// #ifdef CODE_OS_NT_DRV #ifdef __cplusplus extern "C"{ #endif #include NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath); #ifdef __cplusplus } #endif #define CODE_OS_DEFINED #endif//CODE_OS_NT_DRV //////////////////////////////////////////////// //Windows Driver //////////////////////////////////////////////// //////////////////////////////////////////////// //UNIX Application //////////////////////////////////////////////// #ifdef CODE_OS_UNIX #include #include #include #include #include #include #include #include #include #define CODE_OS_DEFINED #endif//CODE_OS_UNIX //////////////////////////////////////////////// //UNIX Application //////////////////////////////////////////////// #ifdef CODE_OS_CATOS #define CODE_OS_DEFINED #endif #endif ================================================ FILE: Project/Code/Source/CodeTest.cpp ================================================ #include "stdafx.h" #include #include #include #include #include using namespace std; struct x_char_traits : public char_traits { static int __cdecl compare(const char *_First1, const char *_First2,size_t _Count) { return (::memicmp(_First1, _First2, _Count)); } }; typedef basic_string istring; typedef map MAPSTR; typedef listLISTSTR; typedef map MAPFILE2ID; typedef map MAPID2STR; void SaveFile(const char* filename,MAPFILE2ID& File2IDMap); void Tr(MAPFILE2ID& File2IDMap); void LoadFile(const char* filename,MAPFILE2ID& File2IDMap); void help(char* Name) { char* p=strrchr(Name,'\\'); if(p==NULL) p=Name; fprintf(stderr,"usage: %s filename\n\n"); } map k1; int print3dnow(int argc, char* argv[]) { map k1; k1[0x90]="PFCMPGE"; k1[0x94]="PFMIN"; k1[0x96]="PFRCP"; k1[0x97]="PFRSQRT"; k1[0xa0]="PFCMPGT"; k1[0xa4]="PFMAX"; k1[0xa6]="PFRCPIT1"; k1[0xa7]="PFRSQIT1"; k1[0xb0]="PFCMPEQ"; k1[0xb4]="PFMUL"; k1[0xb6]="PFRCPIT2"; k1[0xb7]="PMULHRW"; k1[0x0c]="PI2FW"; k1[0x0d]="PI2FD"; k1[0x1c]="PF2IW"; k1[0x1d]="PF2ID"; k1[0x8a]="PFNACC"; k1[0x8e]="PFPNACC"; k1[0x9a]="PFSUB"; k1[0x9e]="PFADD"; k1[0xaa]="PFSUBR"; k1[0xae]="PFACC"; k1[0xbb]="PSWAPD"; k1[0xbf]="PAVGUSB"; for(int i = 0 ;i<256;i++) { map::iterator findit = k1.find(i); if(findit!=k1.end()) { printf("{R_M, C_%s, D__Pq, D__Qq, D__NONE, \"%s\" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x%02x<<16)}, //0x%02x\n",findit->second.c_str(),findit->second.c_str(),i,i); } else printf("{R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x%02x\n",i); if((i%8)==7) printf("\n"); } return 0; } int main(int argc, char* argv[]) { float f1=123.876; double d2=123456.987; long double d3=0.0098423; char buffer[1024]; sprintf(buffer,"%f %g %e\n",f1,d2,d3); TSPrintf(buffer,"%f %g %e\n",f1,d2,d3); return 0; print3dnow(argc,argv); return 0; bool bOk; CTXTFile TxtFile; char* p; TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open("c:\\1.txt"); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; char*p1,*p2,*p4,*p3; int i=0; int num; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; if(TStrNCmp(p,"DIS_OPCODE_T Group0x",sizeof("DIS_OPCODE_T Group0x")-1)==0) { p2=p+sizeof("DIS_OPCODE_T Group0x")-1; p3=p2; while((*p2>='0' && *p2 <='9')||(*p2>='A'&&*p2<='F') || (*p2>='a'&&*p2<='f')) p2++; tmpchar=*p2; *p2=0; SHexStrToNum(p3,&num); *p2=tmpchar; i=0; } p1=TStrChr(p,'}'); if(p1==NULL) printf("%s\n",p); else { p3=p1+1; while(*p3==' '||*p3=='\t' )p3++; if(*p3==';') { printf("%s\n",p); continue; } p2 = TStrStr(p,"C_NULL"); if(p2) { printf("%s\n",p); i++; continue; } *p1=0; p2=p1; p2--; while(*p2==' '|| *p2=='\t')p2--; if(*p2==',') *p2=' '; printf("%s|(%d<<16)}%s\n",p,i,p1+1); i++; *p1='}'; } } return 0; } int mainQAZ(int argc, char* argv[]) { bool bOk; CTXTFile TxtFile; char* p; TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open("c:\\1.txt"); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; char*p1,*p2,*p4,*p3; int i=0; int num; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; p1=TStrChr(p,'}'); if(p1==NULL) printf("%s\n",p); else { p3=p1+1; while(*p3==' '||*p3=='\t' )p3++; if(*p3==';') { printf("%s\n",p); continue; } p2 = TStrStr(p,"C_NULL"); if(p2) { printf("%s\n",p); i++; continue; } *p1=0; p2=p1; p2--; while(*p2==' '|| *p2=='\t')p2--; if(*p2==',') *p2=' '; printf("%s|C_GRP2_GROUP_TYPE|(%d<<16)}%s\n",p,i,p1+1); i++; *p1='}'; } } return 0; } int mainrt(int argc, char* argv[]) { bool bOk; CTXTFile TxtFile; char* p; TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open("c:\\1.txt"); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; char*p1,*p2,*p4,*p3; int i=0; int num; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; if(TStrNCmp(p,"DIS_OPCODE_T Group0x",sizeof("DIS_OPCODE_T Group0x")-1)==0) { p2=p+sizeof("DIS_OPCODE_T Group0x")-1; p3=p2; while((*p2>='0' && *p2 <='9')||(*p2>='A'&&*p2<='F') || (*p2>='a'&&*p2<='f')) p2++; tmpchar=*p2; *p2=0; SHexStrToNum(p3,&num); *p2=tmpchar; i=0; } p1=TStrChr(p,'}'); if(p1==NULL) printf("%s\n",p); else { p3=p1+1; while(*p3==' '||*p3=='\t' )p3++; if(*p3==';') { printf("%s\n",p); continue; } p2 = TStrStr(p,"C_NULL"); if(p2) { printf("%s\n",p); i++; continue; } *p1=0; p2=p1; p2--; while(*p2==' '|| *p2=='\t')p2--; if(*p2==',') *p2=' '; printf("%s,0x%02x,1}%s\n",p,num&0xff,p1+1); i++; *p1='}'; } } return 0; } int mainiuiui(int argc, char* argv[]) { bool bOk; CTXTFile TxtFile; char* p; TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open("c:\\1.txt"); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; char*p1,*p2,*p4,*p3; int i=0; int num; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; p1=TStrChr(p,'}'); if(p1==NULL) printf("%s\n",p); else { p3=p1+1; while(*p3==' '||*p3=='\t' )p3++; if(*p3==';') { printf("%s\n",p); continue; } p2 = TStrStr(p,"C_NULL"); if(p2) { printf("%s\n",p); i++; continue; } *p1=0; p2=p1; p2--; while(*p2==' '|| *p2=='\t')p2--; if(*p2==',') *p2=' '; printf("%s,0x%02x380f,3}%s\n",p,i,p1+1); i++; *p1='}'; } } return 0; } int main23k(int argc, char* argv[]) { bool bOk; CTXTFile TxtFile; char* p; TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open("c:\\1.txt"); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; char*p1,*p2,*p4,*p3; int i=0; int num; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; if(TStrNCmp(p,"DIS_OPCODE_T Group0x",sizeof("DIS_OPCODE_T Group0x")-1)==0) { p2=p+sizeof("DIS_OPCODE_T Group0x")-1; p3=p2; while((*p2>='0' && *p2 <='9')||(*p2>='A'&&*p2<='F') || (*p2>='a'&&*p2<='f')) p2++; tmpchar=*p2; *p2=0; SHexStrToNum(p3,&num); *p2=tmpchar; i=0; } p1=TStrChr(p,'}'); if(p1==NULL) printf("%s\n",p); else { p3=p1+1; while(*p3==' '||*p3=='\t' )p3++; if(*p3==';') { printf("%s\n",p); continue; } p2 = TStrStr(p,"C_NULL"); if(p2) { printf("%s\n",p); i++; continue; } *p1=0; p2=p1; p2--; while(*p2==' '|| *p2=='\t')p2--; if(*p2==',') *p2=' '; printf("%s,0x%02x%02x,2}%s\n",p,num&0xff,(num>>8)&0xff,p1+1); i++; *p1='}'; } } return 0; } int mainopop(int argc, char* argv[]) { bool bOk; CTXTFile TxtFile; char* p; TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open("c:\\1.txt"); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; char*p1,*p2,*p4,*p3; int i=0; int num; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; if(TStrNCmp(p,"DIS_OPCODE_T Group0x",sizeof("DIS_OPCODE_T Group0x")-1)==0) { p2=p+sizeof("DIS_OPCODE_T Group0x")-1; p3=p2; while((*p2>='0' && *p2 <='9')||(*p2>='A'&&*p2<='F') || (*p2>='a'&&*p2<='f')) p2++; tmpchar=*p2; *p2=0; SHexStrToNum(p3,&num); *p2=tmpchar; i=0; } p1=TStrChr(p,'}'); if(p1==NULL) printf("%s\n",p); else { p3=p1+1; while(*p3==' '||*p3=='\t' )p3++; if(*p3==';') { printf("%s\n",p); continue; } p2 = TStrStr(p,"C_NULL"); if(p2) { printf("%s\n",p); i++; continue; } *p1=0; p2=p1; p2--; while(*p2==' '|| *p2=='\t')p2--; if(*p2==',') *p2=' '; switch(i%4) { case 0: printf("%s,0x%02x%02x,2}%s\n",p,num&0xff,(num>>8)&0xff,p1+1); break; case 1: printf("%s,0x%02x%02x66,3}%s\n",p,num&0xff,(num>>8)&0xff,p1+1); break; case 2: printf("%s,0x%02x%02xf2,3}%s\n",p,num&0xff,(num>>8)&0xff,p1+1); break; case 3: printf("%s,0x%02x%02xf3,3}%s\n",p,num&0xff,(num>>8)&0xff,p1+1); break; } i++; *p1='}'; } } return 0; } int main1111(int argc, char* argv[]) { int FileID=0; CTXTFile TxtFile; bool bOk; FILE* fp; int j,i; size_t m; char filename[4096]; char* p,*p2,*p4,*p5; MAPSTR StrMap; LISTSTR StrList; MAPFILE2ID File2IDMap; pair pr1; pair pr; unsigned char* p1,*p3; if(argc!=2) { help(argv[0]); return 1; } GetModulePath(filename); strcat(filename,"tmp.txt"); fp=fopen(filename,"w"); TTXTStrList::IT BeginIT,EndIT; bOk=TxtFile.Open(argv[1]); if(bOk==false) return 0; BeginIT=TxtFile.m_StrList.Begin(); EndIT=TxtFile.m_StrList.End(); char tmpchar; for(;BeginIT!=EndIT;BeginIT++) { p=*BeginIT; p4=p; for(j=0;j!=2;p++) { if(*p==0) break; if(*p==':') j++; } if(*p==0) continue; p5=p-1; while(*p5!='(')p5--; *p5=0; if(strncmp(p,"#include",8)==0) { continue; } p1=(unsigned char*)p; //for(;*p1;p1++) //{ // if(*p1>0x7f) // break; //} //if(*p1==0) //{ // continue; //} while(*p) { local_001: while(*p!='"' && *p)p++; if(*p==0) break; p2=p+1; local_002: while(*p2!='"')p2++; p2--; i=0; while(*p2=='\\')i++,p2--; if((i%2)==0) { p2=p2+i+2; tmpchar=*p2; *p2=0; //p3=(unsigned char*)p; //for(;*p3;p3++) //{ // if(*p3>0x7f) // break; //} //if(*p3!=0) { while((*p4==' ' || *p4=='\t') && *p4)p4++; pr1=File2IDMap.insert(MAPFILE2ID::value_type(p4,MAPSTR())); pr = pr1.first->second.insert(MAPSTR::value_type(p,1)); if(pr.second==false) { pr.first->second++; m=pr.first->second; } pr = StrMap.insert(MAPSTR::value_type(p,0)); if(pr.second==true) StrList.push_back(p); } *p2=tmpchar; p=p2; goto local_001; } else { p2=p2+i+2; goto local_002; } } } LISTSTR::iterator BIT,EIT; BIT=StrList.begin(); EIT=StrList.end(); for(;BIT!=EIT;BIT++) { p2=(char*)BIT->c_str(); fputs(p2,fp); fprintf(fp,"\n"); } TxtFile.Close(); fclose(fp); StrList.clear(); StrMap.clear(); SaveFile("dump.txt",File2IDMap); Tr(File2IDMap); return 0; } void SaveFile(const char* filename,MAPFILE2ID& File2IDMap) { size_t m; FILE*fp; char FileName[8192]; GetModulePath(FileName); strcat(FileName,filename); fp=fopen(FileName,"w+b"); MAPFILE2ID::iterator FBIT,FEIT; size_t count=File2IDMap.size(); fwrite(&count,1,sizeof(count),fp); MAPSTR::iterator StrBIT,StrEIT; FBIT=File2IDMap.begin(); FEIT=File2IDMap.end(); for(;FBIT!=FEIT;FBIT++) { fputs(FBIT->first.c_str(),fp); count=FBIT->second.size(); fwrite(&count,1,sizeof(count),fp); StrBIT=FBIT->second.begin(); StrEIT=FBIT->second.end(); for(;StrBIT!=StrEIT;StrBIT++) { m=StrBIT->second; fwrite(&m,1,sizeof(m),fp); fputs(StrBIT->first.c_str(),fp); } } fclose(fp); } void LoadFile(const char* filename,MAPFILE2ID& File2IDMap) { size_t i,j,ii,jj,kk; FILE*fp; char FileName[8192]; GetModulePath(FileName); char* p; pair pr1; strcat(FileName,"dump.txt"); fp=fopen(FileName,"rb"); i=fread(&ii,1,sizeof(ii),fp); for(i=0;isecond.insert(MAPSTR::value_type(p,kk)); } } fclose(fp); } typedef struct _POSINFO { unsigned char* pBuf; unsigned char* pEnd; size_t nLen; bool bTr; }POSINFO,*PPOSINFO; typedef list LISTPOSINFO; typedef list LISTDELETE; void Tr(MAPFILE2ID& File2IDMap) { char ModulePath[4096]; int ModulePathLen; MAPFILE2ID::iterator FBIT,FEIT; FBIT=File2IDMap.begin(); const char* filename; size_t m,mm; char loadbuf[200]="LoadString("; FEIT=File2IDMap.end(); MAPSTR::iterator BeginIT,EndIT; FILE* fp; MAPSTR mapstr; size_t CurID=101; size_t StringID; unsigned char* buf,*p2,*p8,*pa,*pb,*pc; pair pr; LISTPOSINFO PosinfoList; POSINFO PosInfo; LISTDELETE DeleteList; LISTPOSINFO::iterator PosBeginIT,PosEndIT,OrgBeginIT; ModulePathLen=GetModulePath(ModulePath); for(;FBIT!=FEIT;FBIT++) { filename=FBIT->first.c_str(); p2=(unsigned char*)strrchr(filename,'\\'); p2++; if(stricmp((char*)p2,"washnote.cpp")==0) continue; printf("tr %s\n",filename); fp=fopen(filename,"rb"); if(fp==NULL) continue; if(fseek(fp,0,SEEK_END)!=0) fprintf(stderr,"error: fseek(\"%s\"\n",FBIT->first.c_str()); long len=ftell(fp); buf=new unsigned char[len]; fseek(fp,0,SEEK_SET); size_t readlen=fread(buf,1,len,fp); if(readlen!=len) { fprintf(stderr,"error: fread read bytes [%d],file full size [%d] \"%s\"\n",readlen,len,FBIT->first.c_str()); len=(long)readlen; } fclose(fp); BeginIT = FBIT->second.begin(); EndIT=FBIT->second.end(); /* ԭʼļݵб */ PosinfoList.clear(); PosInfo.pBuf=buf; PosInfo.nLen= len; PosInfo.bTr=false; PosInfo.pEnd=buf+len; PosinfoList.push_back(PosInfo); bool bInsert; for(;BeginIT!=EndIT;BeginIT++) { const char* matchstr=BeginIT->first.c_str(); pr=mapstr.insert(MAPSTR::value_type(matchstr,CurID)); if(pr.second) { StringID=CurID; CurID++; } else { StringID=pr.first->second; } int trlen = sprintf(loadbuf,"LoadString(IDS_STRING_%d)",StringID); p8=new unsigned char[trlen+1]; strcpy((char*)p8,loadbuf); DeleteList.push_back(p8); mm = BeginIT->second; char* p5=(char*)BeginIT->first.c_str(); int l= (int)BeginIT->first.length(); PosBeginIT=PosinfoList.begin(); PosEndIT=PosinfoList.end(); for(m=0;PosBeginIT!=PosinfoList.end();PosBeginIT++) { if(PosBeginIT->bTr) continue; char* pk=(char*)PosBeginIT->pBuf; size_t nk=PosBeginIT->nLen; p2=(unsigned char*)MemSearch(pk,(int)nk,p5,l); if(p2==NULL) continue; m++; if(m>mm) break; OrgBeginIT=PosBeginIT; if(p2==PosBeginIT->pBuf) //ڴĿʼƥ䵽滻Ĵǰ { bInsert=(p2+l!=PosBeginIT->pEnd);//жǷΪ滻 if(bInsert) { PosInfo.pBuf=p2+l; PosInfo.pEnd=PosBeginIT->pEnd; PosInfo.bTr=false; PosInfo.nLen=*(size_t*)&PosInfo.pEnd-*(size_t*)&PosInfo.pBuf; } PosBeginIT->pBuf=p8; PosBeginIT->nLen=trlen; PosBeginIT->pEnd=p8+trlen; PosBeginIT->bTr=true; if(bInsert) { pa=PosBeginIT->pBuf; PosBeginIT++; PosinfoList.insert(PosBeginIT,PosInfo); } } else { bInsert=(p2+l!=PosBeginIT->pEnd); unsigned char* pEnd; pEnd=PosBeginIT->pEnd; PosBeginIT->nLen=*(size_t*)&p2-*(size_t*)&PosBeginIT->pBuf; PosBeginIT->bTr=false; PosInfo.pBuf=p8; PosInfo.nLen=trlen; PosInfo.pEnd=p8+trlen; PosInfo.bTr=true; PosBeginIT++; PosinfoList.insert(PosBeginIT,PosInfo); PosBeginIT--; if(bInsert) { PosInfo.pBuf=p2+l; PosInfo.pEnd=pEnd; PosInfo.nLen=*(size_t*)&PosInfo.pEnd-*(size_t*)&PosInfo.pBuf; PosInfo.bTr=false; PosBeginIT++; PosinfoList.insert(PosBeginIT,PosInfo); } OrgBeginIT->pEnd=OrgBeginIT->pBuf+OrgBeginIT->nLen; } PosBeginIT = OrgBeginIT; if(m==mm) break; } } PosBeginIT=PosinfoList.begin(); PosEndIT=PosinfoList.end(); fp=fopen(FBIT->first.c_str(),"wb"); for(m=0;PosBeginIT!=PosEndIT;PosBeginIT++) { fwrite(PosBeginIT->pBuf,1,PosBeginIT->nLen,fp); } fclose(fp); LISTDELETE::iterator DelBIT,DelEIT;// DeleteList; DelBIT = DeleteList.begin(); DelEIT=DeleteList.end(); for(;DelBIT!=DelEIT;DelBIT++) { delete []*DelBIT; } DeleteList.clear(); } BeginIT=mapstr.begin(); EndIT=mapstr.end(); FILE* fp1; strcat(ModulePath,"strtab.rc"); fp=fopen(ModulePath,"w"); fprintf(fp,"STRINGTABLE\nBEGIN\n"); MAPID2STR Id2String; for(;BeginIT!=EndIT;BeginIT++) { Id2String.insert(MAPID2STR::value_type(BeginIT->second,BeginIT->first.c_str())); } ModulePath[ModulePathLen]=0; strcat(ModulePath,"stringtable.h"); fp1=fopen(ModulePath,"w"); MAPID2STR::iterator ID2StrBIT,ID2StrEIT; ID2StrBIT=Id2String.begin(); ID2StrEIT=Id2String.end(); for(m=0;ID2StrBIT!=ID2StrEIT;ID2StrBIT++,m++) { if(m==20) { fprintf(fp,"END\n\nSTRINGTABLE\nBEGIN\n"); m=0; } fprintf(fp1,"#define IDS_STRING_%d\t\t\t\t%s\n",ID2StrBIT->first,ID2StrBIT->second.c_str()); fprintf(fp,"\tIDS_STRING_%d\t\t%s\n",ID2StrBIT->first,ID2StrBIT->second.c_str()); } fprintf(fp,"END\n"); fclose(fp); fclose(fp1); } ================================================ FILE: Project/Code/Source/Compress.cpp ================================================ #include "StdAfx.h" #include "Compress.h" NAME_SPACE_BEGIN typedef unsigned char BIT8; typedef unsigned int BIT32; long do_compress(void*in,long in_len,void*out,long*out_len,BIT8**work_mem) { BIT8 *ip,*op,*in_end,*ip_end,*ii,*m_pos,*end,*m; BIT32 m_off,m_len,dindex,t,tt; in_end = (BIT8*)in + in_len; ip_end = (BIT8*)in + in_len - 13; op = (BIT8*)out; ip = (BIT8*)in; ii = ip; ip += 4; for(;;) { dindex = ((0x21*(((((((BIT32)(ip[3])<<6)^ip[2])<<5)^ip[1])<<5)^ip[0]))>>5) & 0x3FFF; m_pos = work_mem [dindex]; if( m_pos < in || (m_off = (BIT32)(ip-m_pos)) <= 0 || m_off > 0xBFFF) goto literal; if(m_off <= 0x0800 || m_pos[3] == ip[3]) goto try_match; dindex = (dindex & 0x7FF ) ^ 0x201F; m_pos = work_mem[dindex]; if( m_pos 0xBFFF) goto literal; if (m_off <= 0x0800 || m_pos[3] == ip[3]) goto try_match; goto literal; try_match: if(m_pos[0] == ip[0] && m_pos[1] == ip[1] && m_pos[2]==ip[2]) goto match; literal: work_mem[dindex] = ip; if(++ip >= ip_end) break; continue; match: work_mem[dindex] = ip; if(ip - ii > 0) { t = (BIT32)(ip - ii); if (t <= 3) op[-2] |= (BIT8)t; else if(t <= 18) *op++ = (BIT8)(t - 3); else { tt = t - 18; *op++ = 0; while(tt > 255) { tt -= 255; *op++ = 0; } *op++ = (BIT8)tt; } do *op++ = *ii++; while (--t > 0); } ip += 3; if( m_pos[3] != *ip++ || m_pos[4] != *ip++ || m_pos[5] != *ip++ || m_pos[6] != *ip++ || m_pos[7] != *ip++ || m_pos[8] != *ip++ ) { m_len = (BIT32)(--ip - ii); if(m_off <= 0x0800 ) { --m_off; *op++ = (BIT8)(((m_len - 1) << 5) | ((m_off & 7) << 2)); *op++ = (BIT8)(m_off >> 3); } else if (m_off <= 0x4000 ) { m_off--; *op++ = (BIT8)(32 | (m_len - 2)); goto m3_m4_offset; } else { m_off -= 0x4000; *op++ = (BIT8)(16 | ((m_off & 0x4000) >> 11) | (m_len - 2)); goto m3_m4_offset; } } else { end = in_end; m = m_pos + 9; while (ip < end && *m == *ip) { m++; ip++; } m_len = (BIT32)(ip - ii); if(m_off <= 0x4000) { m_off--; if (m_len <= 33) *op++ = (BIT8)(32 | (m_len - 2)); else { m_len -= 33; *op++=32; goto m3_m4_len; } } else { m_off -= 0x4000; if(m_len <= 9) *op++ = (BIT8)(16|((m_off & 0x4000) >> 11) | (m_len - 2)); else { m_len -= 9; *op++ = (BIT8)(16 | ((m_off & 0x4000) >> 11)); m3_m4_len: while (m_len > 255) { m_len -= 255; *op++ = 0; } *op++ = (BIT8)m_len; } } m3_m4_offset: *op++ = (BIT8)((m_off & 63) << 2); *op++ = (BIT8)(m_off >> 6); } ii = ip; if (ip >= ip_end) break; } *out_len = (long)(op - (BIT8*)out); return (long) (in_end - ii); } long Compress(void *in, long in_len,void *out) { long out_len; BIT8 *op,*ii; BIT32 t,tt; BIT8*work_mem[0x4000]; op = &((BIT8*)out)[4]; if (in_len <= 13) { t = in_len; } else { t = do_compress ((BIT8*)in,in_len,op,&out_len,work_mem); op += out_len; } if (t > 0) { ii = (BIT8*)in + in_len - t; if (op == &((BIT8*)out)[4] && t <= 238) *op++ = (BIT8) ( 17 + t ); else if (t <= 3) op[-2] |= (BIT8)t ; else if (t <= 18) *op++ = (BIT8)(t-3); else { tt = t - 18; *op++ = 0; while (tt > 255) { tt -= 255; *op++ = 0; } *op++ = (BIT8)tt; } do *op++ = *ii++; while (--t > 0); } *op++ = 17; *op++ = 0; *op++ = 0; *(long*)out = in_len; return (long)(op - (BIT8*)out); } long Decompress(void *in, long in_len,void *out) { BIT32 t; BIT8 *op,*ip,*m_pos,*ip_end; ip_end = &((BIT8*)in)[4] + in_len; op = (BIT8*)out; ip = &((BIT8*)in)[4]; if(*ip > 17) { t = *ip++ - 17; if (t < 4) goto match_next; do *op++ = *ip++; while (--t > 0); goto first_literal_run; } for(;;) { t = *ip++; if (t >= 16) goto match; if (t == 0) { while (*ip == 0) { t += 255; ip++; } t += 15 + *ip++; } op[0]=ip[0]; op[1]=ip[1]; op[2]=ip[2]; op[3]=ip[3]; op += 4; ip += 4; if(--t > 0) { if (t >= 4) { do { op[0]=ip[0]; op[1]=ip[1]; op[2]=ip[2]; op[3]=ip[3]; op += 4; ip += 4; t -= 4; } while (t >= 4); if (t > 0) do *op++ = *ip++; while (--t > 0); } else do *op++ = *ip++; while (--t > 0); } first_literal_run: t = *ip++; if (t >= 16) goto match; m_pos = op - 0x0801; m_pos -= t >> 2; m_pos -= *ip++ << 2; *op++ = *m_pos++; *op++ = *m_pos++; *op++ = *m_pos; goto match_done; for(;;) { match: if (t >= 64) { m_pos = op - 1; m_pos -= (t >> 2) & 7; m_pos -= *ip++ << 3; t = (t >> 5) - 1; goto copy_match; } else if (t >= 32) { t &= 31; if (t == 0) { while (*ip == 0) { t += 255; ip++; } t += 31 + *ip++; } m_pos = op - 1; m_pos -= (ip[0]+(ip[1]<<8)) >> 2; ip += 2; } else if (t >= 16) { m_pos = op; m_pos -= (t & 8) << 11; t &= 7; if (t == 0) { while (*ip == 0) { t += 255; ip++; } t += 7 + *ip++; } m_pos -= (ip[0]+(ip[1]<<8)) >> 2; ip += 2; if (m_pos == op) goto eof_found; m_pos -= 0x4000; } else { m_pos = op - 1; m_pos -= t >> 2; m_pos -= *ip++ << 2; *op++ = *m_pos++; *op++ = *m_pos; goto match_done; } if (t >= 6 && (op - m_pos) >= 4) { op[0]=m_pos[0]; op[1]=m_pos[1]; op[2]=m_pos[2]; op[3]=m_pos[3]; op += 4; m_pos += 4; t -= 2; do { op[0]=m_pos[0]; op[1]=m_pos[1]; op[2]=m_pos[2]; op[3]=m_pos[3]; op += 4; m_pos += 4; t -= 4; }while (t >= 4); if (t > 0) do *op++ = *m_pos++; while (--t > 0); } else { copy_match: *op++ = *m_pos++; *op++ = *m_pos++; do *op++ = *m_pos++; while (--t > 0); } match_done: t = ip[-2] & 3; if (t == 0) break; match_next: do *op++ = *ip++; while (--t > 0); t = *ip++; } } eof_found: return (long)(op - (BIT8*)out); } long GetDecompressLength(void *in) { return *(long*)in; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/Compress.h ================================================ #ifndef _CODE_COMPRESS_H_ #define _CODE_COMPRESS_H_ NAME_SPACE_BEGIN long Compress(void *in,long in_len,void *out); long Decompress(void *in,long in_len,void*out); long GetDecompressLength(void *in); NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Crc.cpp ================================================ #include "StdAfx.h" #include "Crc.h" const unsigned int crc32_table[256]= { 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D, } ; const unsigned int crc16_table[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040 }; const unsigned short crc16table_ccitt[256] = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 }; unsigned int crc16(const char* buffer, unsigned int len) { unsigned int crc=0; while (len--) crc =(crc >> 8) ^ crc16_table[(crc ^ *buffer++) & 0xff] ; return crc; } unsigned int crc32(const char* csData, unsigned int dwSize) { unsigned int crc(0xffffffff); int len; unsigned char* buffer; len = dwSize; buffer = (unsigned char*)csData; while(len--) crc = (crc >> 8) ^ crc32_table[(crc & 0xFF) ^ *buffer++]; return crc^0xffffffff; } #define CRC16_INIT_VALUE_CCITT 0xffff #define CRC16_XOR_VALUE_CCITT 0x0000 unsigned int CRC16_CCITT( const char *buf, unsigned int length ) { unsigned short crc=CRC16_INIT_VALUE_CCITT; while( length-- ) { crc = ( crc << 8 ) ^ crc16table_ccitt[ ( crc >> 8 ) ^ *buf++ ]; } crc ^= CRC16_XOR_VALUE_CCITT; return crc; } ================================================ FILE: Project/Code/Source/Crc.h ================================================ #ifndef __CRC__H__ #define __CRC__H__ unsigned int crc16_ccitt(const char *buffer, unsigned int length); unsigned int crc32(const char* buffer, unsigned int length); unsigned int crc16(const char* buffer, unsigned int length); extern const unsigned int crc32_table[256]; extern const unsigned int crc16_table[256]; extern const unsigned short crc16table_ccitt[256]; #endif //__CRC__H__ ================================================ FILE: Project/Code/Source/DebugNewAlloc.cpp ================================================ #include "StdAfx.h" #include "DebugNewAlloc.h" #include "NewAlloc.h" #ifdef CODE_DEBUG_ALLOC #ifdef new #undef new #endif #ifdef delete #undef delete #endif void* __cdecl operator new(size_t size,char*FileName,int Line) { return CodeDebugAlloc(size,FileName,Line); } void* __cdecl operator new[](size_t size,char*FileName,int Line) { return CodeDebugAlloc(size,FileName,Line); } void __cdecl operator delete(void*p,char*FileName,int Line) { CodeDebugFree(p); } void __cdecl operator delete[](void*p,char*FileName,int Line) { CodeDebugFree(p); } void __cdecl operator delete(void*p) { CodeDebugFree(p); } void __cdecl operator delete[](void*p) { CodeDebugFree(p); } NAME_SPACE_BEGIN class CMemoryAllocateMonite { size_t m_MaxMemBytesUsed; size_t m_MemBytesUsed; struct CODE_MEMORY_BLOCK { const char* FileName; int Line; size_t Size; }; typedef TMap TMemBlkMap; TMemBlkMap m_MemoryBlock; public: CMemoryAllocateMonite(); ~CMemoryAllocateMonite(); public: void InsertBlock(const char*FileName,int Line,void*p,size_t size); void RemoveBlock(void*p); void Report(); }; int gNewCount = 0; extern int gMainHeapSize; CMemoryAllocateMonite*gpMemoryAllocateMonite = NULL; void*CodeDebugAlloc(size_t size,char*FileName,int Line) { void*p=CodeAlloc(size); if(gMainHeapSize) { if(gNewCount==0) gpMemoryAllocateMonite = new CMemoryAllocateMonite; gNewCount++; if(gpMemoryAllocateMonite) gpMemoryAllocateMonite->InsertBlock(FileName,Line,p,size); } return p; } void CodeDebugFree(void*p) { if(p) CodeFree(p); if(gpMemoryAllocateMonite && gMainHeapSize) gpMemoryAllocateMonite->RemoveBlock(p); } void MemoryAllocMoniteReport() { if(gpMemoryAllocateMonite) { gpMemoryAllocateMonite->Report(); delete gpMemoryAllocateMonite; } else { CODE_DEBUG_OUTPUT("---------------------------------------------------------------------------\n"); CODE_DEBUG_OUTPUT("δnew\n"); CODE_DEBUG_OUTPUT("---------------------------------------------------------------------------\n"); } } CMemoryAllocateMonite::CMemoryAllocateMonite() { m_MemBytesUsed = m_MaxMemBytesUsed = 0; InitMemoryAllocMonite(); } CMemoryAllocateMonite::~CMemoryAllocateMonite() { gpMemoryAllocateMonite = NULL; ReleaseMemoryAllocMonite(); } void CMemoryAllocateMonite::InsertBlock(const char*FileName,int Line,void*p,size_t size) { gpMemoryAllocateMonite = NULL;//CMemoryAllocateMonitenew delete CODE_MEMORY_BLOCK MemoryBlock; MemoryBlock.FileName = FileName; MemoryBlock.Size = size; MemoryBlock.Line = Line; m_MemoryBlock.InsertUnique(p,MemoryBlock); m_MemBytesUsed+=size; if(m_MemBytesUsed>m_MaxMemBytesUsed) m_MaxMemBytesUsed=m_MemBytesUsed; gpMemoryAllocateMonite = this;//¼new delete } void CMemoryAllocateMonite::RemoveBlock(void*p) { gpMemoryAllocateMonite = NULL; TMemBlkMap::IT Iter = m_MemoryBlock.Find(p); if(Iter!=m_MemoryBlock.End()) { m_MemBytesUsed-=Iter->Size; m_MemoryBlock.Remove(Iter); } gpMemoryAllocateMonite = this; } void CMemoryAllocateMonite::Report() { char szBuffer[0x200]; int Count = m_MemoryBlock.Count(); CODE_DEBUG_OUTPUT("---------------------------------------------------------------------------\n"); TSPrintf(szBuffer,"ڴʹ÷ֵС %d ֽ\n",m_MaxMemBytesUsed); CODE_DEBUG_OUTPUT(szBuffer); if(Count==0) { CODE_DEBUG_OUTPUT("ûзڴй©\n"); TSPrintf(szBuffer,"%dڴ\n",gNewCount); CODE_DEBUG_OUTPUT(szBuffer); CODE_DEBUG_OUTPUT( "(`----/`)____----^^^^^-__\n" " `6__6 ) `-_ ( )_`-___-`)\n" " (_Y_ ) __) |____/ ``-__-/\n" " /--_--_/ /--__/ __/\n" "(TT) (TT) (T(T_)\n" ); } else { TSPrintf(szBuffer,"%dڴй©¼\nڴй©Ϣб\n",Count); CODE_DEBUG_OUTPUT(szBuffer); size_t size=0; int Display = 10; for(TMemBlkMap::IT Iter = m_MemoryBlock.Begin();Iter!=m_MemoryBlock.End();Iter++) { size+=Iter->Size; if(Display>0) { int Length; BYTE Buffer[0x10]; char szBuffer1[0x100],szBuffer2[0x100]; Length = MIN(0x10,(int)Iter->Size); TMemCpy(Buffer,(BYTE*)Iter.Key(),Length); THexBytesToASCII(Buffer,szBuffer1,Length); THexBytesToStr(Buffer,szBuffer2,Length,1," "); TSPrintf(szBuffer,"%s (%d) С [%d],ַ [%p] ASCII [%s] ֽ [%s]\n",Iter->FileName,Iter->Line,Iter->Size,Iter.Key(),szBuffer1,szBuffer2); CODE_DEBUG_OUTPUT(szBuffer); Display--; } else if(Display==0) { CODE_DEBUG_OUTPUT("........ʾǰ10¼\n"); Display--; } } TSPrintf(szBuffer,"ڴй©ܴС %d ֽ\n",size); CODE_DEBUG_OUTPUT(szBuffer); } CODE_DEBUG_OUTPUT("---------------------------------------------------------------------------\n"); } NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/DebugNewAlloc.h ================================================ #ifndef _DEBUG_NEW_ALLOC_H_ #define _DEBUG_NEW_ALLOC_H_ #ifdef CODE_DEBUG_ALLOC void* __cdecl operator new(size_t size,char*FileName,int Line); void* __cdecl operator new[](size_t size,char*FileName,int Line); void __cdecl operator delete(void*p); void __cdecl operator delete[](void*p); void __cdecl operator delete(void*p,char*FileName,int Line); void __cdecl operator delete[](void*p,char*FileName,int Line); NAME_SPACE_BEGIN void* CodeDebugAlloc(size_t size,char*FileName,int Line); void CodeDebugFree(void *p); void InitMemoryAllocMonite(); void ReleaseMemoryAllocMonite(); void MemoryAllocMoniteReport(); NAME_SPACE_END #endif//CODE_DEBUG_ALLOC #endif//_DEBUG_NEW_ALLOC_H_ ================================================ FILE: Project/Code/Source/DebugNewAllocNTDrv.cpp ================================================ #include "stdafx.h" #include "DebugNewAlloc.h" #ifdef CODE_DEBUG_ALLOC void InitMemoryAllocMonite() { } void ReleaseMemoryAllocMonite() { } #endif ================================================ FILE: Project/Code/Source/DebugNewAllocUnix.cpp ================================================ #include "StdAfx.h" #include "DebugNewAlloc.h" #ifdef CODE_DEBUG_ALLOC //޸ı׼Cпȫ๹캯 void InitMemoryAllocMonite() { } void ReleaseMemoryAllocMonite() { } #endif ================================================ FILE: Project/Code/Source/DebugNewAllocWin32.cpp ================================================ #include "StdAfx.h" #include "DebugNewAlloc.h" #ifdef CODE_DEBUG_ALLOC NAME_SPACE_BEGIN void InitMemoryAllocMonite() { } void ReleaseMemoryAllocMonite() { } NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Define.h ================================================ /////////////////////////////////////////////////////// //base define //coded by Finaldoom /////////////////////////////////////////////////////// #ifndef _DEFINE_H_ #define _DEFINE_H_ #ifndef CODE_OS_DEFINED #include #include #include #ifdef WIN32 #ifndef CODE_OS_NT_DRV #define CODE_OS_WIN #include #endif #else //WIN32 #ifndef CODE_OS_CATOS #define CODE_OS_UNIX #endif #endif #endif #ifndef CODE_INT_BYTES #define CODE_INT_BYTES 4 #endif #define KdPrint(_x_) #define KdBreakPoint() /////////////////////////////////////////////////////// //Debugغ /////////////////////////////////////////////////////// #ifdef CODE_OS_WIN #define CODE_WARNING(__str) MessageBox(NULL,__str,"쳣",MB_OK|MB_ICONWARNING) #if _MSC_VER >=1400 #define CODE_ASSERT(_b) {if(!(_b)){char Str[256];sprintf_s(Str,sizeof(Str),"Դļ%s\nУ%d",__FILE__,__LINE__);MessageBox(NULL,Str,"쳣",MB_OK|MB_ICONWARNING);KdBreakPoint();}} #else #define CODE_ASSERT(_b) {if(!(_b)){char Str[256];sprintf(Str,"Դļ%s\nУ%d",__FILE__,__LINE__);MessageBox(NULL,Str,"쳣",MB_OK|MB_ICONWARNING);KdBreakPoint();}} #endif #define CODE_DEBUG_OUTPUT CodeDebugPrintf #endif //CODE_OS #ifdef CODE_OS_NT_DRV #define CODE_WARNING(__str) {DbgPrint(__str);KdBreakPoint();} #define CODE_ASSERT(_b) {if(!(_b)){::DbgPrint("쳣\nԴļ%s\nУ%d\n",__FILE__,__LINE__);KdBreakPoint();}} #define CODE_DEBUG_OUTPUT ::DbgPrint #endif //CODE_OS_NT_DRV #ifdef CODE_OS_UNIX #define CODE_WARNING(__str) {printf(__str);getch();} #define CODE_ASSERT(_b) {if(!(_b))printf("쳣\nԴļ%s\nУ%d\n",__FILE__,__LINE__);} #define CODE_DEBUG_OUTPUT printf #endif //CODE_OS_UNIX #ifdef _DEBUG #define NOP_OPTR do{}while(0) #else #undef CODE_WARNING #define CODE_WARNING(_str) do{}while(0) #undef CODE_ASSERT #define CODE_ASSERT(_b) #endif ///////////////////////////////////////////////////////////////////////////// //Debugغ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //ó ///////////////////////////////////////////////////////////////////////////// #ifndef NULL #define NULL 0 #endif #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #define ERROR_USCODE -1 #define PI 3.141592653549 #define MAX_FN_LEN 260 #define MAX_SHORT_NAME_LEN 32 #define MAX_NAME_LEN 64 #define MAX_LONG_NAME_LEN 128 #ifndef MAX_PATH #define MAX_PATH 260 #endif #define MAX_BYTE 0xFF #define MAX_WORD 0xFFFF #define MAX_DWORD 0xFFFFFFFF #define IN #define OUT #define INOUT #define OPTIONAL #ifdef CODE_OS_UNIX #define PATH_SEPARATOR_CHAR '/' #define PATH_SEPARATOR_STR "/" #define PATH_SEPARATOR_WCHAR L'/' #define PATH_SEPARATOR_WSTR L"/" #else #define PATH_SEPARATOR_CHAR '\\' #define PATH_SEPARATOR_STR "\\" #define PATH_SEPARATOR_WCHAR L'\\' #define PATH_SEPARATOR_WSTR L"\\" #endif #define WSTR(s) (L##s) ///////////////////////////////////////////////////////////////////////////// //ó ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //ú ///////////////////////////////////////////////////////////////////////////// #ifdef _MSC_VER #ifndef FASTCALL #define FASTCALL __fastcall #endif #endif #ifndef FASTCALL #define FASTCALL #endif #ifndef PASCAL #define PASCAL __stdcall #endif #ifndef INLINE #define INLINE inline #endif ///////////////////////////////////////////////////////////////////////////// //ú ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //ѡ ///////////////////////////////////////////////////////////////////////////// #ifdef CODE_ST_PACK #define ST_PACK_ONE_BYTE __attribute__((packed)) #else #define ST_PACK_ONE_BYTE #endif ///////////////////////////////////////////////////////////////////////////// //ѡ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////// #ifdef _MSC_VER typedef __int64 LONGLONG; typedef unsigned __int64 ULONGLONG; typedef unsigned __int64 NUM_PTR; #ifndef _WCHAR_T_DEFINED typedef unsigned short wchar_t; #define _WCHAR_T_DEFINED #endif #else //_MSC_VER typedef long long LONGLONG; typedef unsigned long long ULONGLONG; typedef unsigned long long NUM_PTR; #endif //_MSC_VER typedef ULONGLONG QWORD; typedef unsigned long DWORD; typedef unsigned short WORD; typedef unsigned char BYTE; typedef long LONG; typedef int INT; typedef short SHORT; typedef char CHAR; typedef unsigned long ULONG; typedef unsigned int UINT; typedef unsigned short USHORT; typedef unsigned char UCHAR; typedef int BOOL; typedef wchar_t WCHAR; typedef DWORD DCHAR; typedef DWORD* PDWORD; typedef WORD* PWORD; typedef BYTE* PBYTE; typedef INT* PINT; typedef UINT* PUINT; typedef LONG* PLONG; typedef ULONG* PULONG; typedef DWORD* LPDWORD; typedef WORD* LPWORD; typedef BYTE* LPBYTE; typedef INT* LPINT; typedef UINT* LPUINT; typedef LONG* LPLONG; typedef ULONG* LPULONG; #define VOID void typedef void* PVOID; typedef void* LPVOID; typedef const void* PCVOID; typedef const void* LPCVOID; typedef void* HANDLE; typedef CHAR* PCHAR; typedef CHAR* PSTR; typedef const char* PCSTR; typedef CHAR* LPSTR; typedef const char* LPCSTR; typedef WCHAR* PWSTR; typedef const WCHAR* PCWSTR; typedef PWSTR LPWSTR; typedef PCWSTR LPCWSTR; typedef DCHAR* PDSTR; typedef const DCHAR* PCDSTR; typedef PDSTR LPDSTR; typedef PCDSTR LPCDSTR; typedef DWORD COLORREF; #if CODE_INT_BYTES <= 4 typedef unsigned long ULSIZE; typedef unsigned long ULPOS; typedef long LPOS; #else typedef ULONGLONG ULSIZE; typedef ULONGLONG ULPOS; typedef LONGLONG LPOS; #endif typedef ULONGLONG ULLSIZE; typedef ULONGLONG ULLPOS; typedef LONGLONG LLPOS; ///////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //úԭ ///////////////////////////////////////////////////////////////////////////// typedef void (*PVFV)(void); typedef void (*PVFI)(int); typedef int (*PIFV)(void); typedef int (*PIFI)(int); ///////////////////////////////////////////////////////////////////////////// //úԭ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //ɱ ///////////////////////////////////////////////////////////////////////////// #ifdef __cplusplus #define ADDRESS_OF(v) ( &reinterpret_cast(v) ) #else #define ADDRESS_OF(v) ( &(v) ) #endif #define INT_SIZE_OF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) ) #ifdef CODE_VA_DEFINE typedef char* va_list; #define va_start(ap,v) ( ap = (va_list)ADDRESS_OF(v) + INT_SIZE_OF(v) ) #define va_arg(ap,at) ( *(at*)((ap += INT_SIZE_OF(at)) - INT_SIZE_OF(at)) ) #define va_end(ap) ( ap = (va_list)0 ) #endif ///////////////////////////////////////////////////////////////////////////// //ɱ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //ȡֵ ///////////////////////////////////////////////////////////////////////////// #define MAKE_WORD(HB,LB) ((WORD)( (WORD)(LB) | ((WORD)(HB)<<8) )) #define MAKE_DWORD(HW,LW) ((DWORD)( (DWORD)(LW) | ((DWORD)(HW)<<16) )) #define MAKE_QDWORD(HD,LD) ((ULONGLONG)( (ULONGLONG)(LD) | ((ULONGLONG)(HD)<<32) )) #define GET_BIT(Ptr,BitOff) ((RT_BYTE(Ptr,((BitOff)>>3)) >>((BitOff)&7)) & 1) #define SET_BIT(Ptr,BitOff) RT_BYTE(Ptr,((BitOff)>>3))|=1<<((BitOff)&7) #define CLR_BIT(Ptr,BitOff) RT_BYTE(Ptr,((BitOff)>>3))&=~(1<<((BitOff)&7)) #define PTR_TO_NUM(Ptr) ((unsigned int)(NUM_PTR)(Ptr)) #define NUM_TO_PTR(Num) ((void*)(NUM_PTR)(Num)) #define PTR_DELTA(__Ptr1,__Ptr2) ((UINT)(__Ptr2-__Ptr1)) #define LOW_BYTE(w) ((BYTE)(w)) #define HIGH_BYTE(w) ((BYTE)((WORD)(w)>>8)) #define LOW_WORD(l) ((WORD)(l)) #define HIGH_WORD(l) ((WORD)((DWORD)(l)>>16)) #define LOW_DWORD(l) ((DWORD)(l)) #define HIGH_DWORD(l) ((DWORD)((QWORD)(l)>>32)) //ָָ #define RT_PVOID(ptr,off) ((void*)( (BYTE*)(ptr) + (off) )) #define RT_LPVOID(ptr,off) ((void*)( (BYTE*)(ptr) + (off) )) #define RT_PDWORD(ptr,off) ((DWORD*)( (BYTE*)(ptr) + (off) )) #define RT_PWORD(ptr,off) ((WORD *)( (BYTE*)(ptr) + (off) )) #define RT_PBYTE(ptr,off) ((BYTE *)( (BYTE*)(ptr) + (off) )) #define RT_PCHAR(ptr,off) ((CHAR *)( (BYTE*)(ptr) + (off) )) #define _RT_PDWORD(ptr) ((DWORD*)(ptr) ) #define _RT_PWORD(ptr) ((WORD *)(ptr) ) #define _RT_PBYTE(ptr) ((BYTE *)(ptr) ) #define _RT_PCHAR(ptr) ((CHAR *)(ptr) ) #define _RT_PVOID(ptr) ((void *)(ptr) ) #define GET_CHAR(ptr,off) (*(CHAR *)( (BYTE*)(ptr) + (off) ) ) #define _GET_CHAR(ptr) (*(CHAR *)(ptr) ) #define _GET_CCHAR(ptr) (*(const CHAR *)(ptr) ) #define PUT_CHAR(ptr,off,val) do{(*(CHAR *)( (BYTE*)(ptr) + (off) ) ) = val;}while(0) #define _PUT_CHAR(ptr,val) do{(*(CHAR *)(ptr) ) = val;}while(0) #define GET_BYTE(ptr,off) (*(BYTE *)( (BYTE*)(ptr) + (off) ) ) #define _GET_BYTE(ptr) (*(BYTE *)(ptr) ) #define PUT_BYTE(ptr,off,val) do{(*(BYTE *)( (BYTE*)(ptr) + (off) ) ) = val;}while(0) #define _PUT_BYTE(ptr,val) do{(*(BYTE *)(ptr) ) = val;}while(0) #ifdef CODE_BIG_ENDIAN #define BIG_ENDIAN_DWORD(x) (x = _GET_DWORD(&(x))) #define BIG_ENDIAN_WORD(x) (x = _GET_WORD(&(x))) //ֽ #define GET_WORD(ptr,off) (*RT_PBYTE(ptr,off)+(*RT_PBYTE(ptr,(off)+1)<<8)) #define _GET_WORD(ptr) (*_RT_PBYTE(ptr)+(*RT_PBYTE(ptr,1)<<8)) #define PUT_WORD(ptr,off,val) do{PUT_BYTE(ptr,off,LOW_BYTE(val));PUT_BYTE(ptr,(off)+1,HIGH_BYTE(val));}while(0) #define _PUT_WORD(ptr,val) PUT_WORD(ptr,0,val) #define GET_3BYTES(ptr,off) (*RT_PBYTE(ptr,off)+(*RT_PBYTE(ptr,(off)+1)<<8)+(*RT_PBYTE(ptr,(off)+2)<<16)) #define _GET_3BYTES(ptr) (*_RT_PBYTE(ptr)+(*RT_PBYTE(ptr,1)<<8)+(*RT_PBYTE(ptr,2)<<16)) #define PUT_3BYTES(ptr,off,val) do{PUT_WORD(ptr,(off)+1,(WORD)((val)>>8));PUT_BYTE(ptr,off,LOW_BYTE(val));}while(0) #define _PUT_3BYTES(ptr,val) PUT_3BYTES(ptr,0,val) #define GET_DWORD(ptr,off) (*RT_PBYTE(ptr,off)+(*RT_PBYTE(ptr,(off)+1)<<8)+(*RT_PBYTE(ptr,(off)+2)<<16)+(*RT_PBYTE(ptr,(off)+3)<<24)) #define _GET_DWORD(ptr) (*_RT_PBYTE(ptr)+(*RT_PBYTE(ptr,1)<<8)+(*RT_PBYTE(ptr,2)<<16)+(*RT_PBYTE(ptr,3)<<24)) #define PUT_DWORD(ptr,off,val) do{PUT_WORD(ptr,off,LOW_WORD(val));PUT_WORD(ptr,(off)+2,HIGH_WORD(val));}while(0) #define _PUT_DWORD(ptr,val) PUT_DWORD(ptr,0,val) #else//CODE_BIG_ENDIAN //Сֽ #define GET_WORD(ptr,off) (*(WORD*)( (BYTE*)(ptr) + (off) ) ) #define _GET_WORD(ptr) (*(WORD*)( (BYTE*)(ptr)) ) #define PUT_WORD(ptr,off,val) do{(*(WORD*)( (BYTE*)(ptr) + (off) ) )=val;}while(0) #define _PUT_WORD(ptr,val) do{(*(WORD*)( (BYTE*)(ptr)) )=val;}while(0) #define GET_3BYTES(ptr,off) MAKE_DWORD((BYTE)GET_WORD(ptr,(off)+2),GET_BYTE(ptr,off)) #define _GET_3BYTES(ptr) MAKE_DWORD((BYTE)GET_WORD(ptr,2),_GET_BYTE(ptr)) #define PUT_3BYTES(ptr,off,val) do{PUT_WORD(ptr,off,LOW_WORD(val));PUT_BYTE(ptr,(off)+2,(BYTE)HIGH_WORD(val));}while(0) #define _PUT_3BYTES(ptr,val) PUT_3BYTES(ptr,0,val) #define GET_DWORD(ptr,off) (*(DWORD*)( (BYTE*)(ptr) + (off) ) ) #define _GET_DWORD(ptr) (*(DWORD*)( (BYTE*)(ptr) ) ) #define PUT_DWORD(ptr,off,val) do{(*(DWORD*)( (BYTE*)(ptr) + (off) ) )=(DWORD)(val);}while(0) #define _PUT_DWORD(ptr,val) do{(*(DWORD*)( (BYTE*)(ptr) ) )=(DWORD)(val);}while(0) #define BIG_ENDIAN_DWORD #define BIG_ENDIAN_WORD #endif//CODE_BIG_ENDIAN ///////////////////////////////////////////////////////////////////////////// //ָ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////// #ifndef ABS #define ABS(a) ((a)>=0?(a):-(a)) #endif #ifndef MIN #define MIN(a,b) ((a)>(b)?(b):(a)) #endif #ifndef MAX #define MAX(a,b) ((a)>(b)?(a):(b)) #endif #ifndef IS_DIGIT #define IS_DIGIT(c) ((c)>='0'&&(c)<='9') #endif #ifndef IS_HEX_LETTER #define IS_HEX_LETTER ( ((c)>='a'&&(c)<='f') || ((c)>='A'&&(c)<='F') ) #endif #ifndef IS_HEX_DIGIT #define IS_HEX_DIGIT(c) (IS_DIGIT(c) || IS_HEX_LETTER(c)) #endif #ifndef SWAP #define SWAP(a,b) {a=a^b;b=a^b;a=a^b;} #endif #define PAGE_COUNT(__size,__page) ((__size)/(__page)+((__size)%(__page)?1:0)) #define ALIGN_SIZE(__size,__page) (PAGE_COUNT((__size),(__page))*(__page)) #define CENTER_ALGN(__size,__total) (((__total)-(__size))/2) #ifndef ZeroMemory #define ZeroMemory(__Buffer,__Size) memset((__Buffer),0,(__Size)) #endif #define STZeroMemory(__ST) ZeroMemory(&__ST,sizeof(__ST)) #ifndef FillMemory #define FillMemory(__Buffer,__Data,__Size) memset(__Buffer,__Data,__Size) #endif #define SafeDelete(__Ptr) if(__Ptr){delete __Ptr;__Ptr=NULL;} #define SafeDeleteAry(__Ptr) if(__Ptr){delete[] __Ptr;__Ptr=NULL;} #define SafeRelease(__Ptr) if(__Ptr){__Ptr->Release();__Ptr=NULL;} #define ST_FIELD_OFF(__type,__field) ((int)(NUM_PTR)&(((__type*)NULL)->__field))////ȡṹеƫ #define BCDBYTE(__byte) ( (((__byte)/10)<<4) | ((__byte)%10) ) #define MAKE_CHAR_UPPER(__c) if(__c>='a' && __c <='z')__c +='A'-'a' #define MAKE_CHAR_LOWER(__c) if(__c>='A' && __c <='Z')__c +='a'-'A' #define UPPER_CHAR(__c) ((__c>='a' && __c<='z')?__c+'A'-'a':__c) #define LOWER_CHAR(__c) ((__c>='A' && __c<='Z')?__c+'a'-'A':__c) #define MAX_LIMIT(__L,__M) if((__L)>(__M))__L=__M #define MIN_LIMIT(__L,__M) if((__L)<(__M))__L=__M #define MEMBER_OFFSET(TypeName,MemberName) ((int)(&(((TypeName*)(0))->##MemberName))) #define MEMBER_OFFSET2(TypeName,MemberName,ReturnTypeName) ((ReturnTypeName)(&(((TypeName*)(0))->##MemberName))) ///////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////// #endif//_CODE_DEFINE_H_ ================================================ FILE: Project/Code/Source/FileIO.cpp ================================================ #include "StdAfx.h" #include "FileIO.h" NAME_SPACE_BEGIN CFileIO::CFileIO() { m_pszSepar=PATH_SEPARATOR_STR; } bool CFileIO::OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode) { return false; } bool CFileIO::CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode) { return false; } bool CFileIO::CreateDir(IN PCSTR FileName) { return false; } bool CFileIO::CloseHandle(IN HANDLE hFile) { return false; } ULSIZE CFileIO::ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset) { return 0; } ULSIZE CFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset) { return 0; } ULSIZE CFileIO::ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size) { return 0; } ULSIZE CFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size) { return 0; } ULLPOS CFileIO::SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos) { return 0; } ULLSIZE CFileIO::GetFileLength(IN HANDLE hFile) { return 0; } bool CFileIO::SetFileLength(IN HANDLE hFile,IN ULLSIZE Length) { return false; } bool CFileIO::DeleteFile(IN PCSTR FileName) { return false; } bool CFileIO::RenameFile(IN PCSTR FileName,IN PCSTR NewFileName) { return false; } bool CFileIO::IsDir(IN PCSTR FileName) { return false; } bool CFileIO::DeleteDir(IN PCSTR FileName) { return false; } bool CFileIO::SetFileAttr(IN PCSTR FileName,DWORD Attr) { return false; } DWORD CFileIO::GetFileAttr(IN PCSTR FileName) { return FIO_FA_ERROR; } bool CFileIO::FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData) { *pFindData->FileName=0; return false; } bool CFileIO::FindNextFile(INOUT FILE_FIND_DATA*pFindData) { *pFindData->FileName=0; return false; } bool CFileIO::FindClose(IN FILE_FIND_DATA*pFindData) { *pFindData->FileName=0; return false; } bool CFileIO::WriteToFile(IN PCSTR Filename,IN const void* Buffer,IN ULSIZE BufSize) { HANDLE hFile; if(CreateFile(Filename,&hFile)==false) return false; WriteFile(hFile,Buffer,BufSize,0); CloseHandle(hFile); return true; } ULSIZE CFileIO::ReadFromFile(IN PCSTR Filename,OUT void* Buffer,IN ULSIZE BufSize) { HANDLE hFile; ULSIZE cbRW; if(OpenFile(Filename,&hFile)==false) return false; if(BufSize==0) BufSize=(ULSIZE)GetFileLength(hFile); cbRW = ReadFile(hFile,Buffer,BufSize,0); CloseHandle(hFile); return cbRW; } ULLSIZE CFileIO::GetFileSize(IN PCSTR Filename) { #ifdef CODE_OS_WIN int Len=TStrLen(Filename); if((Len==2 || Len==3 ) && Filename[1]==':') { ULARGE_INTEGER FreeBytesAvailable,TotalNumberOfBytes,TotalNumberOfFreeBytes; FreeBytesAvailable.QuadPart = 0; TotalNumberOfBytes.QuadPart = 0; TotalNumberOfFreeBytes.QuadPart = 0; GetDiskFreeSpaceEx(Filename,&FreeBytesAvailable,&TotalNumberOfBytes,&TotalNumberOfFreeBytes); return TotalNumberOfBytes.QuadPart; } #endif HANDLE hFile; ULLSIZE Result; if(OpenFile(Filename,&hFile)==false) return (ULLSIZE)-1; Result=GetFileLength(hFile); CloseHandle(hFile); return Result; } bool CFileIO::GetFileTime(IN PCSTR FileName,IN ULONGLONG*pModifyTime,IN ULONGLONG*pCreateTime,IN ULONGLONG*pAccessTime) { return false; } bool CFileIO::IsFileExist(IN PCSTR FileName) { HANDLE hFile; if(OpenFile(FileName,&hFile)==false) return false; return CloseHandle(hFile); } bool CFileIO::IsDirEmpty(IN PCSTR FileName) { return false; } bool CFileIO::DeleteDirTree(IN PCSTR FileName) { FILE_FIND_DATA FindData; bool bFind = FindFirstFile(FileName,&FindData); while(bFind) { if(FindData.FileAttribute & FIO_FA_DIR) { if(DeleteDirTree(FileName)==false) return false; } else { DeleteFile(FileName); } bFind = FindNextFile(&FindData); } return true; } bool CFileIO::XDelete(IN PCSTR FileName) { if(IsDir(FileName)) return DeleteDirTree(FileName); else return DeleteFile(FileName); } bool CFileIO::XCopy(CFileIO*pSrcIO,CFileIO*pDesIO,PCSTR SrcFileName,PCSTR DesFileName,FUNC_XCOPY_CB pfnCallBack,void*CBParam) { int Length; if(pSrcIO->IsDir(SrcFileName)) { if(pDesIO->IsDir(DesFileName)==false && pDesIO->CreateDir(DesFileName)==false) return false; FILE_FIND_DATA FindData; if(pSrcIO->FindFirstFile(SrcFileName,&FindData)==false) return true; do { if( (FindData.FileName[0]=='.' && FindData.FileName[1]==0) || (FindData.FileName[0]=='.' && FindData.FileName[1]=='.' && FindData.FileName[2]==0) ) continue; char szSrcBuffer[MAX_FN_LEN],szDesBuffer[MAX_FN_LEN]; Length = TStrCpy(szSrcBuffer,SrcFileName); if(Length && szSrcBuffer[Length-1] != *pSrcIO->m_pszSepar) TStrCat(szSrcBuffer,pSrcIO->m_pszSepar); TStrCat(szSrcBuffer,FindData.FileName); Length = TStrCpy(szDesBuffer,DesFileName); if(Length && szDesBuffer[Length-1] != *pDesIO->m_pszSepar) TStrCat(szDesBuffer,pDesIO->m_pszSepar); TStrCat(szDesBuffer,FindData.FileName); if(XCopy(pSrcIO,pDesIO,szSrcBuffer,szDesBuffer,pfnCallBack,CBParam)==false) break; }while(pSrcIO->FindNextFile(&FindData)); pSrcIO->FindClose(&FindData); } else { ULSIZE Size = (ULSIZE)pSrcIO->GetFileSize(SrcFileName); if(pfnCallBack) { switch(pfnCallBack(pSrcIO,pDesIO,SrcFileName,DesFileName,Size,CBParam)) { case XCOPY_RES_COPY: break; case XCOPY_RES_IGNORE: return true; case XCOPY_RES_BREAK: return false; } } BYTE*Buffer = new BYTE[Size]; pSrcIO->ReadFromFile(SrcFileName,Buffer); pDesIO->WriteToFile(DesFileName,Buffer,Size); delete Buffer; } return true; } void CFileIO::FlushFileBuffer(IN HANDLE hFile) { } int CFileIO::XScan(PCSTR DirName,FUNC_XSCAN_CB pfnCallBack,void*CBParam,bool Recursive,XSCAN_RES*pRes) { XSCAN_RES Res; int Count,Length; FILE_FIND_DATA FindData; char *pFileName,szDirName[MAX_FN_LEN],szSrcBuffer[MAX_FN_LEN],szPattern[MAX_FN_LEN]; Count = 0; if(pRes==NULL) { pRes = &Res; Res = XSCAN_RES_CONTINUE; } pFileName = TGetFileName(DirName); if(TStrChr(pFileName,'*')==NULL && TStrChr(pFileName,'?')==NULL) { *szPattern=0; if(IsDir(DirName)==false && IsFileExist(DirName)) { if(pfnCallBack(this,DirName,(ULSIZE)GetFileSize(DirName),CBParam)==XSCAN_RES_CONTINUE) Count++; return Count; } } else { TStrCpy(szPattern,TGetFileName(DirName)); TGetFilePath(DirName,szDirName); DirName = szDirName; } if(FindFirstFile(DirName,&FindData)==false) return Count; do { if( (FindData.FileName[0]=='.' && FindData.FileName[1]==0) || (FindData.FileName[0]=='.' && FindData.FileName[1]=='.' && FindData.FileName[2]==0) ) continue; Length = TStrCpy(szSrcBuffer,szDirName); if(Length && szSrcBuffer[Length-1] != *m_pszSepar) TStrCat(szSrcBuffer,m_pszSepar); TStrCat(szSrcBuffer,FindData.FileName); if( (FindData.FileAttribute&FIO_FA_DIR) && (FindData.FileAttribute&FIO_FA_SYM_LINK)==0) { if(Recursive) { if(*szPattern) { TStrCat(szSrcBuffer,"\\"); TStrCat(szSrcBuffer,szPattern); } Count+=XScan(szSrcBuffer,pfnCallBack,CBParam,Recursive,pRes); if(*pRes!=XSCAN_RES_CONTINUE) break; } } else { if((FindData.FileAttribute&FIO_FA_NON_REG)==0) { if(*szPattern==0 || TIMultiMatchWithPattern(szPattern,szSrcBuffer)) { XSCAN_RES Result = pfnCallBack(this,szSrcBuffer,(ULSIZE)FindData.FileLength,CBParam); if(Result==XSCAN_RES_BREAK) { *pRes=XSCAN_RES_BREAK; break; } if(Result==XSCAN_RES_CONTINUE) Count++; } } } }while(FindNextFile(&FindData)); FindClose(&FindData); return Count; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/FileIO.h ================================================ #ifndef _FILE_IO_H_ #define _FILE_IO_H_ NAME_SPACE_BEGIN #define FIO_READ 0x00000000 #define FIO_WRITE 0x00000001 #define FIO_NEW 0x00000000 #define FIO_CREATE 0x00000001 #define FIO_SHARE_READ 0x00010000 #define FIO_SHARE_WRITE 0x00020000 #define FIO_FA_NORMAL 0x00000000 #define FIO_FA_READONLY 0x00000001 #define FIO_FA_HIDDEN 0x00000002 #define FIO_FA_SYSTEM 0x00000004 #define FIO_FA_DIR 0x00000010 #define FIO_FA_COMPRESS 0x00000020 #define FIO_FA_SYM_LINK 0x00000040 #define FIO_FA_NON_REG 0x80000000 #define FIO_FA_ERROR 0xFFFFFFFF #define FIO_ERROR_FILE_PTR ((ULLPOS)-1) struct FILE_FIND_DATA { char FileName[MAX_FN_LEN]; DWORD FileAttribute; HANDLE hFindFile; void* FindDataBuffer; ULLSIZE FileLength; }; enum XCOPY_RES { XCOPY_RES_COPY, XCOPY_RES_IGNORE, XCOPY_RES_BREAK, }; enum XSCAN_RES { XSCAN_RES_CONTINUE, XSCAN_RES_BREAK, XSCAN_RES_IGNORE, }; class CFileIO; typedef XCOPY_RES (*FUNC_XCOPY_CB)(CFileIO*pSrcIO,CFileIO*pDesIO,PCSTR SrcFileName,PCSTR DesFileName,ULSIZE FileSize,void*CBParam); typedef XSCAN_RES (*FUNC_XSCAN_CB)(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParam); class CFileIO { public: char* m_pszSepar; CFileIO(); virtual bool OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_READ | FIO_SHARE_READ); virtual bool CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_CREATE | FIO_SHARE_READ); virtual bool CreateDir(IN PCSTR FileName); virtual bool CloseHandle(IN HANDLE hFile); virtual ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); virtual ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); virtual ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size); virtual ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size); virtual ULLPOS SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos); virtual ULLSIZE GetFileLength(IN HANDLE hFile); virtual bool SetFileLength(IN HANDLE hFile,IN ULLSIZE Length); virtual bool DeleteFile(IN PCSTR FileName); virtual bool RenameFile(IN PCSTR FileName,IN PCSTR NewFileName); virtual bool GetFileTime(IN PCSTR FileName,IN ULONGLONG*pModifyTime=NULL,IN ULONGLONG*pCreateTime=NULL,IN ULONGLONG*pAccessTime=NULL); virtual bool IsDir(IN PCSTR FileName); virtual bool DeleteDir(IN PCSTR FileName); virtual bool SetFileAttr(IN PCSTR FileName,DWORD Attr); virtual DWORD GetFileAttr(IN PCSTR FileName); virtual bool FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData); virtual bool FindNextFile(INOUT FILE_FIND_DATA*pFindData); virtual bool FindClose(IN FILE_FIND_DATA*pFindData); virtual void FlushFileBuffer(IN HANDLE hFile); public: virtual bool WriteToFile(IN PCSTR Filename,IN const void* Buffer,IN ULSIZE BufSize); virtual ULSIZE ReadFromFile(IN PCSTR Filename,IN void* Buffer,IN ULSIZE BufSize = 0); virtual ULLSIZE GetFileSize(IN PCSTR Filename); virtual bool IsFileExist(IN PCSTR FileName); virtual bool IsDirEmpty(IN PCSTR FileName); virtual bool DeleteDirTree(IN PCSTR FileName); virtual bool XDelete(IN PCSTR FileName); virtual int XScan(PCSTR DirName,FUNC_XSCAN_CB pfnCallBack,void*CBParam = NULL,bool Recursive = true,XSCAN_RES*pRes=NULL); static bool XCopy(CFileIO*pSrcIO,CFileIO*pDesIO,PCSTR SrcFileName,PCSTR DesFileName,FUNC_XCOPY_CB pfnCallBack=NULL,void*CBParam = NULL); }; NAME_SPACE_END #ifdef CODE_OS_WIN #include "FileIOWin32.h" #endif #ifdef CODE_OS_UNIX #include "FileIOUnix.h" #endif #ifdef CODE_OS_NT_DRV #include "FileIONTDrv.h" #endif #endif ================================================ FILE: Project/Code/Source/FileIONTDrv.cpp ================================================ #include "StdAfx.h" #include "FileIO.h" NAME_SPACE_BEGIN WCHAR CLocalFileIO::m_CurDirName[MAX_FN_LEN]; void CLocalFileIO::SetCurDir(IN PCWSTR DirName) { int Length; Length=TStrCpy(m_CurDirName,DirName); if(Length && m_CurDirName[Length-1]!='\\' && m_CurDirName[Length-1]!='/') { m_CurDirName[Length] = '\\'; m_CurDirName[Length+1]=0; } } #define NT_FILE_OPEN_OPTION (FILE_RANDOM_ACCESS|FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_COMPLETE_IF_OPLOCKED) bool CLocalFileIO::OpenFile(IN PCSTR FileName,INOUT HANDLE*phFile,IN DWORD Mode) { ANSI_STRING AnsiName; UNICODE_STRING UniName; IO_STATUS_BLOCK IOStatus; OBJECT_ATTRIBUTES oa; int Length; ULONG ShareMode; ACCESS_MASK DesiredAccess; WCHAR szBuffer[MAX_FN_LEN]; if(*FileName!='\\' && TStrChr(FileName,':')==NULL) Length = TStrCpy(szBuffer,m_CurDirName); else Length = 0; AnsiName.Buffer = (PCHAR)FileName; AnsiName.Length = (USHORT)TStrLen(FileName); AnsiName.MaximumLength = AnsiName.Length+1; UniName.Buffer = &szBuffer[Length]; UniName.Length = 0; UniName.MaximumLength =sizeof(WCHAR)*MAX_FN_LEN - Length*sizeof(WCHAR); RtlAnsiStringToUnicodeString(&UniName,&AnsiName,false); UniName.Buffer = szBuffer; UniName.Length = TStrLen(szBuffer)*sizeof(WCHAR); UniName.MaximumLength = sizeof(WCHAR)*MAX_FN_LEN; InitializeObjectAttributes(&oa,&UniName,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL); DesiredAccess = GENERIC_READ; if(Mode & FIO_WRITE) DesiredAccess |= GENERIC_WRITE; ShareMode=0; if(Mode & FIO_SHARE_READ) ShareMode |= FILE_SHARE_READ; if(Mode & FIO_SHARE_WRITE) ShareMode |= FILE_SHARE_WRITE; return ZwOpenFile(phFile,DesiredAccess,&oa,&IOStatus,ShareMode,NT_FILE_OPEN_OPTION)==STATUS_SUCCESS; } bool CLocalFileIO::OpenFile(PUNICODE_STRING FullImageName,OUT HANDLE*phFile,IN DWORD Mode) { OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; ACCESS_MASK DesiredAccess; ULONG ShareMode; InitializeObjectAttributes(&oa,FullImageName, OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE, NULL, NULL); DesiredAccess = GENERIC_READ; if(Mode & FIO_WRITE) DesiredAccess |= GENERIC_WRITE; ShareMode = 0; if(Mode & FIO_SHARE_READ) ShareMode |= FILE_SHARE_READ; if(Mode & FIO_SHARE_WRITE) ShareMode |= FILE_SHARE_WRITE; return ZwOpenFile(phFile,DesiredAccess,&oa,&IOStatus,ShareMode,NT_FILE_OPEN_OPTION)==STATUS_SUCCESS; } bool CLocalFileIO::CreateFile(IN PCSTR FileName,INOUT HANDLE*phFile,IN DWORD Mode) { ANSI_STRING AnsiName; UNICODE_STRING UniName; OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; int Length; ULONG CreateMode,ShareMode; WCHAR NameBuf[MAX_FN_LEN]; if(*FileName!='\\' && TStrChr(FileName,':')==NULL) Length = TStrCpy(NameBuf,m_CurDirName); else Length = 0; AnsiName.Buffer = (PCHAR)FileName; AnsiName.Length = (USHORT)TStrLen(FileName); AnsiName.MaximumLength = AnsiName.Length+1; UniName.Buffer = &NameBuf[Length]; UniName.Length = 0; UniName.MaximumLength = MAX_FN_LEN*sizeof(WCHAR) - Length*sizeof(WCHAR); RtlAnsiStringToUnicodeString(&UniName,&AnsiName,false); UniName.Buffer = NameBuf; UniName.Length = TStrLen(NameBuf)*sizeof(WCHAR); UniName.MaximumLength = MAX_FN_LEN*sizeof(WCHAR); InitializeObjectAttributes(&oa,&UniName, OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE, NULL, NULL); CreateMode = FILE_CREATE; if(Mode & FIO_CREATE) CreateMode = FILE_OVERWRITE_IF; ShareMode=0; if(Mode & FIO_SHARE_READ) ShareMode |= FILE_SHARE_READ; if(Mode & FIO_SHARE_WRITE) ShareMode |= FILE_SHARE_WRITE; return ZwCreateFile(phFile,GENERIC_READ|GENERIC_WRITE,&oa,&IOStatus,NULL,FILE_ATTRIBUTE_NORMAL,ShareMode,CreateMode,NT_FILE_OPEN_OPTION,NULL,0)==STATUS_SUCCESS; } bool CLocalFileIO::CloseHandle(HANDLE hFile) { return ZwClose(hFile)==STATUS_SUCCESS; } ULSIZE CLocalFileIO::ReadFile(HANDLE hFile,void* Buffer,ULSIZE Size,ULLPOS Offset) { IO_STATUS_BLOCK IOStatus; LARGE_INTEGER Offset64; Offset64.LowPart = LOW_DWORD(Offset); Offset64.HighPart = HIGH_DWORD(Offset); if(ZwReadFile(hFile,NULL,NULL,NULL,&IOStatus,Buffer,Size,&Offset64,NULL)!=STATUS_SUCCESS) return 0; return (ULSIZE)IOStatus.Information; } ULSIZE CLocalFileIO::WriteFile(HANDLE hFile,const void* Buffer,ULSIZE Size,ULLPOS Offset) { IO_STATUS_BLOCK IOStatus; LARGE_INTEGER Offset64; Offset64.LowPart = LOW_DWORD(Offset); Offset64.HighPart = HIGH_DWORD(Offset); if(ZwWriteFile(hFile,NULL,NULL,NULL,&IOStatus,(void*)Buffer,Size,&Offset64,NULL)!=STATUS_SUCCESS) return 0; return (ULSIZE)IOStatus.Information; } ULLSIZE CLocalFileIO::GetFileLength(HANDLE hFile) { IO_STATUS_BLOCK IOStatus; FILE_STANDARD_INFORMATION StdInfo; if(ZwQueryInformationFile(hFile,&IOStatus,&StdInfo,sizeof(FILE_STANDARD_INFORMATION),FileStandardInformation)!=STATUS_SUCCESS) return 0; return (ULLSIZE)StdInfo.EndOfFile.QuadPart; } bool CLocalFileIO::SetFileLength(HANDLE hFile,ULLSIZE Length) { IO_STATUS_BLOCK IOStatus; FILE_END_OF_FILE_INFORMATION feofi; feofi.EndOfFile.QuadPart = (LONGLONG)Length; return ZwSetInformationFile(hFile,&IOStatus,&feofi,sizeof(FILE_END_OF_FILE_INFORMATION),FileEndOfFileInformation)==STATUS_SUCCESS; } bool CLocalFileIO::DeleteFile(PCSTR FileName) { return false; } bool CLocalFileIO::RenameFile(IN PCSTR FileName,IN PCSTR NewFileName) { return false; } bool CLocalFileIO::OpenDirectory(IN PCSTR FileName,INOUT HANDLE*phFile,IN DWORD Mode) { NTSTATUS Status; OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; int Length; ANSI_STRING AnsiName; UNICODE_STRING UniName; WCHAR NameBuf[MAX_FN_LEN]; if(*FileName!='\\' && TStrChr(FileName,':')==NULL) Length = TStrCpy(NameBuf,m_CurDirName); else Length = 0; AnsiName.Buffer = (PCHAR)FileName; AnsiName.Length = (USHORT)TStrLen(FileName); AnsiName.MaximumLength = AnsiName.Length+1; UniName.Buffer = &NameBuf[Length]; UniName.Length = 0; UniName.MaximumLength = MAX_FN_LEN*sizeof(WCHAR) - Length*sizeof(WCHAR); RtlAnsiStringToUnicodeString(&UniName,&AnsiName,false); UniName.Buffer = NameBuf; UniName.Length = TStrLen(NameBuf)*sizeof(WCHAR); UniName.MaximumLength = MAX_FN_LEN*sizeof(WCHAR); InitializeObjectAttributes(&oa,&UniName, OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE, NULL, NULL); Status = ZwOpenFile(phFile,Mode,&oa,&IOStatus,FILE_SHARE_WRITE|FILE_SHARE_DELETE|FILE_SHARE_READ,FILE_DIRECTORY_FILE); return Status==STATUS_SUCCESS; } bool CLocalFileIO::FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData) { IO_STATUS_BLOCK IOStatus; NTSTATUS Status; DWORD BufferLength=MAX_FN_LEN*sizeof(WCHAR)+sizeof(CODEFILE_NAMES_INFORMATION)+sizeof(FILE_STANDARD_INFORMATION); KEVENT Event; char *OrgDirName; PCODEFILE_NAMES_INFORMATION pFileNamesInformation; if(pFindData==NULL) return false; memset(pFindData,0,sizeof(FILE_FIND_DATA)); *pFindData->FileName=0; if(KeGetCurrentIrql()>PASSIVE_LEVEL) return false; if(OpenDirectory(DirName,&pFindData->hFindFile,FILE_LIST_DIRECTORY|FILE_ALL_ACCESS)==false) return false; pFileNamesInformation =(PCODEFILE_NAMES_INFORMATION) new char [BufferLength]; if(pFileNamesInformation==NULL) return false; OrgDirName = new char[MAX_FN_LEN]; if(OrgDirName==NULL) { delete []pFileNamesInformation; ZwClose(pFindData->hFindFile); return false; } TStrCpyLimit(OrgDirName,DirName,MAX_FN_LEN); pFindData->FindDataBuffer=OrgDirName; KeInitializeEvent(&Event, SynchronizationEvent,FALSE); memset(pFileNamesInformation,0,BufferLength); Status = ZwQueryDirectoryFile(pFindData->hFindFile,NULL,ZwQueryDirectoryFileApc,&Event,&IOStatus,pFileNamesInformation,BufferLength-2, FileNamesInformation,TRUE,NULL,TRUE); if (Status == STATUS_PENDING) KeWaitForSingleObject(&Event, UserRequest,KernelMode, TRUE, NULL); if(IOStatus.Status) { ZwClose(pFindData->hFindFile); delete []pFileNamesInformation; return false; } TStrCpyLimit(pFindData->FileName,pFileNamesInformation->FileName,MAX_FN_LEN); if(TStrCmp(pFindData->FileName,".")==0 || TStrCmp(pFindData->FileName,"..")==0) pFindData->FileAttribute |= FIO_FA_DIR; else { //TODO: if(IsDir(pFindData->FileName)) pFindData->FileAttribute |= FIO_FA_DIR; else pFindData->FileAttribute &= (~FIO_FA_DIR); } delete []pFileNamesInformation; return true; } bool CLocalFileIO::FindNextFile(INOUT FILE_FIND_DATA*pFindData) { IO_STATUS_BLOCK IOStatus; NTSTATUS Status; DWORD BufferLength=MAX_FN_LEN*sizeof(WCHAR)+sizeof(CODEFILE_NAMES_INFORMATION)+sizeof(FILE_STANDARD_INFORMATION); KEVENT Event; char *TempFileName; PCODEFILE_NAMES_INFORMATION pFileNamesInformation; *pFindData->FileName=0; if(KeGetCurrentIrql()>PASSIVE_LEVEL) return false; KeInitializeEvent(&Event, SynchronizationEvent,FALSE); pFileNamesInformation = (PCODEFILE_NAMES_INFORMATION)new char [BufferLength]; if(pFileNamesInformation==NULL) return false; memset(pFileNamesInformation,0,BufferLength); Status = ZwQueryDirectoryFile(pFindData->hFindFile,NULL,ZwQueryDirectoryFileApc,&Event,&IOStatus,pFileNamesInformation,BufferLength-2, FileNamesInformation,TRUE,NULL,FALSE); if (Status == STATUS_PENDING) KeWaitForSingleObject(&Event, UserRequest,KernelMode, TRUE, NULL); if(IOStatus.Status) { delete []pFileNamesInformation; return false; } TStrCpyLimit(pFindData->FileName,pFileNamesInformation->FileName,MAX_FN_LEN); pFindData->FileAttribute=FIO_FA_NORMAL; if(TStrCmp(pFindData->FileName,".")==0 || TStrCmp(pFindData->FileName,"..")==0) pFindData->FileAttribute |= FIO_FA_DIR; else { TempFileName=(char*)pFileNamesInformation; char * OrgDirName = (char*)pFindData->FindDataBuffer; TStrCpy(TempFileName,OrgDirName); int len = strlen(OrgDirName); if(OrgDirName[len-1]!='\\') TStrCat(TempFileName,"\\"); TStrCat(TempFileName,pFindData->FileName); if(IsDir(TempFileName)) pFindData->FileAttribute|=FIO_FA_DIR; } delete []pFileNamesInformation; return true; } bool CLocalFileIO::FindClose(IN FILE_FIND_DATA*pFindData) { *pFindData->FileName=0; CloseHandle(pFindData->hFindFile); if(pFindData->FindDataBuffer) { delete []pFindData->FindDataBuffer; pFindData->FindDataBuffer=NULL; } return true; } bool CLocalFileIO::IsDir(IN HANDLE hFile) { NTSTATUS Status; IO_STATUS_BLOCK IOStatus; FILE_STANDARD_INFORMATION StdInfo; Status = ZwQueryInformationFile(hFile,&IOStatus,&StdInfo,sizeof(FILE_STANDARD_INFORMATION),FileStandardInformation); if(Status) return false; return StdInfo.Directory==TRUE; } bool CLocalFileIO::IsDir(IN PCSTR FileName) { HANDLE hFile; bool bOK; bOK = OpenDirectory(FileName,&hFile,FILE_LIST_DIRECTORY); if(bOK) CloseHandle(hFile); return bOK; } CLocalFileIO* gpFileIO = NULL; NAME_SPACE_END VOID NTAPI ZwQueryDirectoryFileApc (IN PVOID ApcContext,IN PIO_STATUS_BLOCK IoStatusBlock,IN ULONG Reserved ) { KeSetEvent(PRKEVENT (ApcContext),0,false); return; } ================================================ FILE: Project/Code/Source/FileIONTDrv.h ================================================ #ifndef _FILE_IO_NT_DRV_H_ #define _FILE_IO_NT_DRV_H_ #define FIO_INVALID_HANDLE INVALID_HANDLE_VALUE VOID NTAPI ZwQueryDirectoryFileApc (IN PVOID ApcContext,IN PIO_STATUS_BLOCK IoStatusBlock,IN ULONG Reserved ); extern "C" NTSYSAPI NTSTATUS NTAPI ZwQueryDirectoryFile(IN HANDLE FileHandle, IN HANDLE Event , IN PIO_APC_ROUTINE ApcRoutine , IN PVOID ApcContext , OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG FileInformationLength, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName , IN BOOLEAN RestartScan ); NAME_SPACE_BEGIN typedef struct _CODEFILE_NAMES_INFORMATION { ULONG NextEntryOffset; ULONG FileIndex; ULONG FileNameLength; WCHAR FileName[1]; } CODEFILE_NAMES_INFORMATION, *PCODEFILE_NAMES_INFORMATION; typedef struct _FILE_FULL_DIRECTORY_INFORMATION { // Information Class 2 ULONG NextEntryOffset; ULONG Unknown; LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER EndOfFile; LARGE_INTEGER AllocationSize; ULONG FileAttributes; ULONG FileNameLength; ULONG EaInformationLength; WCHAR FileName[1]; } FILE_FULL_DIRECTORY_INFORMATION, *PFILE_FULL_DIRECTORY_INFORMATION; class CLocalFileIO : public CFileIO { public: bool OpenDirectory(IN PCSTR FileName,INOUT HANDLE*phFile,IN DWORD Mode); public: static WCHAR m_CurDirName[MAX_FN_LEN]; //static BYTE m_FindNamesBuffer[MAX_FN_LEN*sizeof(WCHAR)+sizeof(CODEFILE_NAMES_INFORMATION)+sizeof(FILE_STANDARD_INFORMATION)]; void SetCurDir(IN PCWSTR DirName); bool OpenFile(PUNICODE_STRING FullImageName,OUT HANDLE*phFile,IN DWORD Mode = FIO_READ | FIO_SHARE_READ); public: bool OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_READ | FIO_SHARE_READ); bool CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_CREATE | FIO_SHARE_READ); bool CloseHandle(IN HANDLE hFile); ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); ULLSIZE GetFileLength(IN HANDLE hFile); bool SetFileLength(IN HANDLE hFile,IN ULLSIZE Length); bool DeleteFile(IN PCSTR FileName); bool RenameFile(IN PCSTR FileName,IN PCSTR NewFileName); bool IsDir(IN HANDLE hFile); bool IsDir(IN PCSTR FileName); bool FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData); bool FindNextFile(INOUT FILE_FIND_DATA*pFindData); bool FindClose(IN FILE_FIND_DATA*pFindData); }; extern CLocalFileIO*gpFileIO; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/FileIOUnix.cpp ================================================ #include "StdAfx.h" #include "FileIO.h" NAME_SPACE_BEGIN bool CLocalFileIO::OpenFile(IN PCSTR FileName,INOUT HANDLE*phFile,IN DWORD Mode) { PSTR ModeStr; ModeStr="r"; if(Mode&FIO_WRITE) ModeStr="r+"; *(FILE**)phFile=fopen(FileName,ModeStr); return *phFile!=NULL; } bool CLocalFileIO::CreateFile(IN PCSTR FileName,INOUT HANDLE*phFile,IN DWORD Mode) { PSTR ModeStr; ModeStr="w+"; if((Mode&FIO_CREATE)==0) { if(OpenFile(FileName,phFile,FIO_WRITE)) { CloseHandle(*phFile); return false; } return true; } *(FILE**)phFile=fopen(FileName,ModeStr); return *phFile!=NULL; } bool CLocalFileIO::CloseHandle(HANDLE hFile) { return fclose((FILE*)hFile)==0; } ULSIZE CLocalFileIO::ReadFile(HANDLE hFile,void* Buffer,ULONG Size,ULLPOS Offset) { if(fseek((FILE*)hFile,Offset,SEEK_SET)) return 0; return (ULONG)fread(Buffer,1,Size,(FILE*)hFile); } ULSIZE CLocalFileIO::WriteFile(HANDLE hFile,const void* Buffer,ULSIZE Size,ULLPOS Offset) { if(fseek((FILE*)hFile,Offset,SEEK_SET)) return 0; return (ULSIZE)fwrite(Buffer,1,Size,(FILE*)hFile); } ULSIZE CLocalFileIO::ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size) { return (ULONG)fread(Buffer,1,Size,(FILE*)hFile); } ULSIZE CLocalFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size) { return (ULSIZE)fwrite(Buffer,1,Size,(FILE*)hFile); } ULLPOS CLocalFileIO::SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos) { fseek((FILE*)hFile,Offset,Pos); return ftell((FILE*)hFile); } ULLSIZE CLocalFileIO::GetFileLength(HANDLE hFile) { DWORD dwFileLength,dwOldFileLength; dwOldFileLength = dwFileLength = ftell((FILE*)hFile); fseek((FILE*)hFile,0,SEEK_END); dwFileLength=ftell((FILE*)hFile); fseek((FILE*)hFile,dwOldFileLength,SEEK_SET); return (ULLSIZE)dwFileLength; } bool CLocalFileIO::SetFileLength(HANDLE hFile,ULLSIZE Length) { ULSIZE FileSize=GetFileLength(hFile); if(Length==FileSize || Length==0) return true; if(Length>FileSize) { FileSize=fseek((FILE*)hFile,Length-1,SEEK_SET); fputc(0,(FILE*)hFile); return true; } #ifdef CODE_OS_UNIX int fd; fd = fileno((FILE *)hFile); return ftruncate(fd,Length)==0; #else return false; #endif } bool CLocalFileIO::IsDir(IN PCSTR FileName) { struct stat st; int bRet = lstat(FileName,&st); if(bRet) return false; return S_ISDIR(st.st_mode) && S_ISLNK(st.st_mode)==0; } bool CLocalFileIO::DeleteDir(IN PCSTR FileName) { return false; } bool CLocalFileIO::CreateDir(IN PCSTR FileName) { return false; } bool CLocalFileIO::DeleteFile(PCSTR FileName) { return remove(FileName)==0; } bool CLocalFileIO::RenameFile(IN PCSTR FileName,IN PCSTR NewFileName) { return rename(FileName,NewFileName)==0; } bool CLocalFileIO::FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData) { struct dirent *pdir; char CurrentDirName[MAX_FN_LEN]; struct stat st; char *tmpstr; int ret,Len; if(IsDir(DirName)==false) return false; pFindData->hFindFile = opendir(DirName); if(pFindData->hFindFile==NULL) return false; tmpstr = new char[MAX_FN_LEN]; pFindData->FindDataBuffer = tmpstr; TStrCpyLimit((char*)pFindData->FindDataBuffer,DirName,MAX_FN_LEN); Len = TStrLen(tmpstr); if(tmpstr[Len-1]!='/') tmpstr[Len]='/', tmpstr[Len+1]=0; TStrCpy(CurrentDirName,tmpstr); do { pdir = readdir((DIR*)pFindData->hFindFile); if(pdir == NULL) { delete [](char*)pFindData->FindDataBuffer; pFindData->FindDataBuffer=NULL; FindClose(pFindData); return false; } }while(strcmp(pdir->d_name,".") == 0 || strcmp(pdir->d_name,"..") == 0); TStrCpyLimit(pFindData->FileName,pdir->d_name,MAX_FN_LEN); TStrCat(CurrentDirName,pdir->d_name); pFindData->FileAttribute = lstat(CurrentDirName,&st) ? 0 : ConvertFileAttribute(st.st_mode); return true; } DWORD CLocalFileIO::ConvertFileAttribute(unsigned short st_mode) { DWORD Result; Result = 0; if(S_ISDIR(st_mode)) Result|=FIO_FA_DIR; if(S_ISLNK(st_mode)) Result|=FIO_FA_SYM_LINK; if(S_ISREG(st_mode)==0) Result|=FIO_FA_NON_REG; return Result; } bool CLocalFileIO::FindNextFile(INOUT FILE_FIND_DATA*pFindData) { char CurrentDirName[MAX_FN_LEN]; struct dirent *pdir; struct stat st; pdir = readdir((DIR*)pFindData->hFindFile); if(pdir == NULL) return false; TStrCpyLimit(pFindData->FileName,pdir->d_name,MAX_FN_LEN); TStrCpyLimit(CurrentDirName,(const char *)pFindData->FindDataBuffer,MAX_FN_LEN); TStrCat(CurrentDirName,pdir->d_name); pFindData->FileAttribute = lstat(CurrentDirName,&st) ? 0 : ConvertFileAttribute(st.st_mode); return true; } bool CLocalFileIO::FindClose(IN FILE_FIND_DATA*pFindData) { SafeDelete((char*)pFindData->FindDataBuffer) return closedir((DIR*)pFindData->hFindFile); } bool CLocalFileIO::IsFileExist(IN PCSTR FileName) { int ret; struct stat st; ret = lstat(FileName,&st); if(ret != 0) { if(errno==ENOENT) return false; } return true; } bool CLocalFileIO::IsDirEmpty(IN PCSTR FileName) { FILE_FIND_DATA FileFindData; if(FindFirstFile(FileName,&FileFindData)) { FindClose(&FileFindData); return false; } return true; } DWORD CLocalFileIO::GetFileAttr(IN PCSTR FileName) { int ret; struct stat st; ret = lstat(FileName,&st); if(ret!=0) return FIO_FA_ERROR; return ConvertFileAttribute(st.st_mode); } CLocalFileIO gLocalFileIO; CLocalFileIO* gpFileIO = &gLocalFileIO; NAME_SPACE_END ================================================ FILE: Project/Code/Source/FileIOUnix.h ================================================ #ifndef _FILE_IO_UNIX_H_ #define _FILE_IO_UNIX_H_ #define FIO_INVALID_HANDLE NULL NAME_SPACE_BEGIN class CLocalFileIO : public CFileIO { public: bool OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_READ | FIO_SHARE_READ); bool CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_CREATE | FIO_SHARE_READ); bool CloseHandle(IN HANDLE hFile); ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size); ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size); ULLSIZE GetFileLength(IN HANDLE hFile); bool SetFileLength(IN HANDLE hFile,IN ULLSIZE Length); bool DeleteFile(IN PCSTR FileName); bool RenameFile(IN PCSTR FileName,IN PCSTR NewFileName); bool IsDir(IN PCSTR FileName); bool DeleteDir(IN PCSTR FileName); bool CreateDir(IN PCSTR FileName); ULLPOS SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos); bool FindFirstFile(IN PCSTR DirName,IN FILE_FIND_DATA*pFindData); bool FindNextFile(INOUT FILE_FIND_DATA*pFindData); bool FindClose(IN FILE_FIND_DATA*pFindData); bool IsFileExist(IN PCSTR FileName); bool IsDirEmpty(IN PCSTR FileName); DWORD GetFileAttr(IN PCSTR FileName); DWORD ConvertFileAttribute(unsigned short st_mode); }; extern CLocalFileIO*gpFileIO; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/FileIOWin32.cpp ================================================ #include "StdAfx.h" #include "FileIO.h" NAME_SPACE_BEGIN bool CLocalFileIO::OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode) { DWORD OpenMode,ShareMode; OpenMode = GENERIC_READ; if(Mode & FIO_WRITE) OpenMode |= GENERIC_WRITE; ShareMode = 0; if(Mode & FIO_SHARE_READ) ShareMode |= FILE_SHARE_READ; if(Mode & FIO_SHARE_WRITE) ShareMode |= FILE_SHARE_WRITE; *phFile = ::CreateFile(FileName,OpenMode,ShareMode,NULL,OPEN_EXISTING,0,NULL); return *phFile != INVALID_HANDLE_VALUE; } bool CLocalFileIO::CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode) { DWORD ShareMode,CreateMode; CreateMode = CREATE_NEW; if(Mode & FIO_CREATE) CreateMode = CREATE_ALWAYS; ShareMode = 0; if(Mode & FIO_SHARE_READ) ShareMode |= FILE_SHARE_READ; if(Mode & FIO_SHARE_WRITE) ShareMode |= FILE_SHARE_WRITE; *phFile = ::CreateFile(FileName,GENERIC_READ | GENERIC_WRITE,ShareMode,NULL,CreateMode,0,NULL); return *phFile != INVALID_HANDLE_VALUE; } bool CLocalFileIO::CreateDir(IN PCSTR FileName) { return ::CreateDirectory(FileName,NULL)!=0; } bool CLocalFileIO::CloseHandle(IN HANDLE hFile) { return ::CloseHandle(hFile)!=0; } void CLocalFileIO::FlushFileBuffer(IN HANDLE hFile) { ::FlushFileBuffers(hFile); } ULSIZE CLocalFileIO::ReadFile(IN HANDLE hFile,OUT void* Buffer,IN ULSIZE Size,IN ULLPOS Offset) { DWORD RDSize; if(SetFilePointer(hFile,(LLPOS)Offset,FILE_BEGIN)==FIO_ERROR_FILE_PTR) return 0; ::ReadFile(hFile,Buffer,Size,&RDSize,NULL); return RDSize; } ULSIZE CLocalFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset) { DWORD WTSize=0; if(SetFilePointer(hFile,(LLPOS)Offset,FILE_BEGIN)==FIO_ERROR_FILE_PTR) return 0; ::WriteFile(hFile,Buffer,Size,&WTSize,NULL); return WTSize; } ULSIZE CLocalFileIO::ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size) { DWORD RDSize=0; ::ReadFile(hFile,Buffer,Size,&RDSize,NULL); return RDSize; } ULSIZE CLocalFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size) { DWORD WTSize=0; ::WriteFile(hFile,Buffer,Size,&WTSize,NULL); return WTSize; } ULLPOS CLocalFileIO::SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos) { ULLPOS NewPos; ULONG FilePosLow; LONG FilePosHigh; FilePosLow = LOW_DWORD(Offset); FilePosHigh = HIGH_DWORD(Offset); FilePosLow = ::SetFilePointer(hFile,FilePosLow,&FilePosHigh,Pos); if(FilePosLow==INVALID_SET_FILE_POINTER) return FIO_ERROR_FILE_PTR; NewPos = MAKE_QDWORD(FilePosHigh,FilePosLow); return NewPos; } ULLSIZE CLocalFileIO::GetFileLength(IN HANDLE hFile) { return ::GetFileSize(hFile,NULL); } bool CLocalFileIO::SetFileLength(IN HANDLE hFile,IN ULLSIZE Length) { ULONG FilePosLow; LONG FilePosHigh; FilePosLow = LOW_DWORD(Length); FilePosHigh = HIGH_DWORD(Length); if(::SetFilePointer(hFile,FilePosLow,&FilePosHigh,FILE_BEGIN)==INVALID_SET_FILE_POINTER) return false; return ::SetEndOfFile(hFile)!=0; } bool CLocalFileIO::DeleteFile(IN PCSTR FileName) { return ::DeleteFile(FileName)!=0; } bool CLocalFileIO::RenameFile(IN PCSTR FileName,IN PCSTR NewFileName) { return ::MoveFile(FileName,NewFileName)!=0; } bool CLocalFileIO::GetFileTime(IN PCSTR FileName,IN ULONGLONG*pModifyTime,IN ULONGLONG*pCreateTime,IN ULONGLONG*pAccessTime) { bool Result; HANDLE hFile = ::CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hFile==INVALID_HANDLE_VALUE) return false; Result = ::GetFileTime(hFile,(FILETIME*)pCreateTime,(FILETIME*)pAccessTime,(FILETIME*)pModifyTime) == TRUE; CloseHandle(hFile); return Result; } bool CLocalFileIO::IsDir(IN PCSTR FileName) { DWORD Attr; Attr = ::GetFileAttributes(FileName); if(Attr == (DWORD)-1) return GetDriveType(FileName)!=DRIVE_NO_ROOT_DIR; return (Attr & FILE_ATTRIBUTE_DIRECTORY)!=0; } bool CLocalFileIO::DeleteDir(IN PCSTR FileName) { return ::RemoveDirectory(FileName)!=0; } bool CLocalFileIO::FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData) { char szBuffer[MAX_FN_LEN]; DWORD Attr; pFindData->FindDataBuffer = (void*)new WIN32_FIND_DATA; TStrCpy(szBuffer,DirName); if(TStrChr(DirName,'*')==NULL && TStrChr(DirName,'?')==NULL) { TStrCat(szBuffer,m_pszSepar); TStrCat(szBuffer,"*"); } pFindData->hFindFile = ::FindFirstFile(szBuffer,(LPWIN32_FIND_DATA)pFindData->FindDataBuffer); if(pFindData->hFindFile==INVALID_HANDLE_VALUE) { delete pFindData->FindDataBuffer; pFindData->FindDataBuffer=NULL; return false; } TStrCpy(pFindData->FileName,((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->cFileName); pFindData->FileAttribute = 0; Attr = ((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->dwFileAttributes; if(Attr & FILE_ATTRIBUTE_READONLY) pFindData->FileAttribute|=FIO_FA_READONLY; if(Attr & FILE_ATTRIBUTE_HIDDEN) pFindData->FileAttribute|=FIO_FA_HIDDEN; if(Attr & FILE_ATTRIBUTE_SYSTEM) pFindData->FileAttribute|=FIO_FA_SYSTEM; if(Attr & FILE_ATTRIBUTE_DIRECTORY) pFindData->FileAttribute|=FIO_FA_DIR; pFindData->FileLength = ((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->nFileSizeLow; return true; } bool CLocalFileIO::FindNextFile(INOUT FILE_FIND_DATA*pFindData) { DWORD Attr; bool Result=::FindNextFile(pFindData->hFindFile,(LPWIN32_FIND_DATA)pFindData->FindDataBuffer)!=0; strcpy_s(pFindData->FileName,sizeof(pFindData->FileName),((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->cFileName); pFindData->FileAttribute = ((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->dwFileAttributes; pFindData->FileAttribute = 0; Attr = ((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->dwFileAttributes; if(Attr & FILE_ATTRIBUTE_READONLY) pFindData->FileAttribute|=FIO_FA_READONLY; if(Attr & FILE_ATTRIBUTE_HIDDEN) pFindData->FileAttribute|=FIO_FA_HIDDEN; if(Attr & FILE_ATTRIBUTE_SYSTEM) pFindData->FileAttribute|=FIO_FA_SYSTEM; if(Attr & FILE_ATTRIBUTE_DIRECTORY) pFindData->FileAttribute|=FIO_FA_DIR; pFindData->FileLength = ((LPWIN32_FIND_DATA)pFindData->FindDataBuffer)->nFileSizeLow; return Result; } bool CLocalFileIO::FindClose(IN FILE_FIND_DATA*pFindData) { if(pFindData->FindDataBuffer) delete pFindData->FindDataBuffer; return ::FindClose(pFindData->hFindFile)!=0; } CLocalFileIO gLocalFileIO; CLocalFileIO* gpFileIO = &gLocalFileIO; NAME_SPACE_END ================================================ FILE: Project/Code/Source/FileIOWin32.h ================================================ #ifndef _FILE_IO_WIN32_H_ #define _FILE_IO_WIN32_H_ #define FIO_INVALID_HANDLE INVALID_HANDLE_VALUE NAME_SPACE_BEGIN class CLocalFileIO : public CFileIO { public: bool OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_READ | FIO_SHARE_READ); bool CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_CREATE | FIO_SHARE_READ); bool CloseHandle(IN HANDLE hFile); ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size); ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size); ULLSIZE GetFileLength(IN HANDLE hFile); bool SetFileLength(IN HANDLE hFile,IN ULLSIZE Length); bool DeleteFile(IN PCSTR FileName); bool RenameFile(IN PCSTR FileName,IN PCSTR NewFileName); bool GetFileTime(IN PCSTR FileName,IN ULONGLONG*pModifyTime=NULL,IN ULONGLONG*pCreateTime=NULL,IN ULONGLONG*pAccessTime=NULL); bool IsDir(IN PCSTR FileName); bool DeleteDir(IN PCSTR FileName); bool CreateDir(IN PCSTR FileName); ULLPOS SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos); bool FindFirstFile(IN PCSTR DirName,IN FILE_FIND_DATA*pFindData); bool FindNextFile(INOUT FILE_FIND_DATA*pFindData); bool FindClose(IN FILE_FIND_DATA*pFindData); void FlushFileBuffer(IN HANDLE hFile); }; extern CLocalFileIO*gpFileIO; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Float2String.cpp ================================================ #include "StdAfx.h" #include "Float2String.h" LONGLONG pwr(int a, int b) { LONGLONG i = 0, val = 1; for(i=0; i 0) { if(exp > 31) { sprintf(str, " >= 2^31 !!"); return; } else integral <<= exp; } else if(exp < 0) { if(flag == GET_FLOAT) frac |= (1 << FLOAT_MANTISSA_BITS); else if(flag == GET_DOUBLE) frac |= ((ULONGLONG)1 << DOUBLE_MANTISSA_BITS); else frac |= ((ULONGLONG)1 << LONG_DOUBLE_MANTISSA_BITS); frac >>= (-exp); } for(i=1; i<=mantissa_bits; i++, bit_mask /= 2) { if(i > exp) { tmp = (tmp/2); mantissa += (((frac & bit_mask) >> (mantissa_bits -i)) * tmp); } else { if(exp <= mantissa_bits) tmp1 = ((frac & bit_mask) >> (mantissa_bits - exp)); else tmp1 = ((frac & bit_mask) << (exp - mantissa_bits)); integral |= tmp1; } } if((exp > 0) && (exp < exp_max)) //integral part should be converted for long long type //sprintf(str, " = %c%llu.%08u", (sign ? '-' : ' '), TSPrintf(str, " = %c%u.%08u", (sign ? '-' : ' '), (unsigned long)integral, (unsigned long)mantissa); else if(exp == 0) TSPrintf(str, " = %c1.%08u", (sign ? '-' : ' '), mantissa); else if(exp < 0) TSPrintf(str, " = %c0.%08u", (sign ? '-' : ' '), mantissa); } void Hex2Float(char *str, unsigned long addr) { ULONGLONG frac; unsigned char a, b; int exp; char sign; char* tmpptr=*(char**)&addr; a = *((tmpptr+3)); b = *((tmpptr+2)); //Get the sign , exponent, significand fraction sign = (a & 0x80) >> 7; exp = (a & 0x7F); exp <<= 1; exp |= ((b & 0x80) >> 7); exp -= (FLOAT_EXP_MAX-1); memcpy(&frac, (void *)tmpptr, 4); frac &= 0x7FFFFF; GetDisplayString(str, frac, exp, sign, GET_FLOAT); } void Hex2Double(char *str, unsigned long addr) { int exp; unsigned char a, b; char sign; ULONGLONG frac; char* tmpptr=*(char**)&addr; a = *((char *)(tmpptr+7)); b = *((char *)(tmpptr+6)); //Get the sign , exponent, significand fraction sign = (a & 0x80) >> 7; exp = (a & 0x7F); exp <<= 4; exp |= ((b & 0xF0) >> 4); exp -= (DOUBLE_EXP_MAX-1); memcpy(&frac, (void *)tmpptr, 8); frac &= 0x000FFFFFFFFFFFFF; GetDisplayString(str, frac, exp, sign, GET_DOUBLE); } void Hex2LongDouble(char *str, unsigned long addr) { int exp; unsigned char a, b; char sign; ULONGLONG frac; char* tmpptr=*(char**)&addr; a = *((char *)(tmpptr+9)); b = *((char *)(tmpptr+8)); //Get the sign , exponent, significand fraction sign = (a & 0x80) >> 7; exp = (a & 0x7F); exp <<= 8; exp |= b; exp -= (LONG_DOUBLE_EXP_MAX-1); memcpy(&frac, (void *)tmpptr, 8); GetDisplayString(str, frac, exp, sign, GET_LONG_DOUBLE); } typedef union { float value; struct { unsigned int fraction:23; unsigned int exponent:8; unsigned int sign:1; } ; unsigned int val; } myieee_float_shape_type; int ftype(float value) { myieee_float_shape_type fval; fval.value=value; if(fval.val==0) return POSITIVE_ZERO; if(fval.val==0x80000000) return NEGATIVE_ZERO; if(fval.fraction==0 && fval.exponent==255 && fval.sign==0) return POSITIVE_INDEFINITE; if(fval.fraction==0 && fval.exponent==255 && fval.sign==1) return NEGATIVE_INDEFINITE; if(fval.exponent==255 && (fval.fraction & 0x400000)==0) return SNAN; if(fval.exponent==255 && (fval.fraction & 0x400000)==1) return QNAN; if(fval.exponent==255 && fval.fraction==0x400000) return QNAN_INDEFINITE; if(fval.exponent>=1 && fval.exponent <=254 && fval.sign==0) return POSITIVE_NORMALS; if(fval.exponent>=1 && fval.exponent <=254 && fval.sign==1) return NEGITIVE_NORMALS; if(fval.exponent==0 && fval.fraction && fval.sign==0) return POSITIVE_DENORMALS; if(fval.exponent==0 && fval.fraction && fval.sign==1) return NEGITIVE_DENORMALS; return UNKNOW_FLOAT_NUMBER; } typedef union { double value; struct { unsigned int fractionl; unsigned int fractionh:20; unsigned int exponent:11; unsigned int sign:1; } ; unsigned __int64 val; } myieee_double_shape_type; int ftype(double value) { myieee_double_shape_type fval; fval.value=value; if(fval.val==0) return POSITIVE_ZERO; if(fval.val==0x8000000000000000I64) return NEGATIVE_ZERO; if(fval.fractionl==0 &&fval.fractionh==0 && fval.exponent==0x7ff && fval.sign==0) return POSITIVE_INDEFINITE; if(fval.fractionl==0 &&fval.fractionh==0 && fval.exponent==0x7ff && fval.sign==1) return NEGATIVE_INDEFINITE; if(fval.exponent==0x7ff && (fval.fractionh & 0x80000)==0) return SNAN; if(fval.exponent==0x7ff && (fval.fractionh & 0x80000)==1) return QNAN; if(fval.exponent==0x7ff && fval.fractionh ==0x80000 && fval.fractionl==0) return QNAN_INDEFINITE; if(fval.exponent>=1 && fval.exponent <0x7ff && fval.sign==0) return POSITIVE_NORMALS; if(fval.exponent>=1 && fval.exponent <0x7ff && fval.sign==1) return NEGITIVE_NORMALS; if(fval.exponent==0 && (fval.fractionh || fval.fractionl) && fval.sign==0) return POSITIVE_DENORMALS; if(fval.exponent==0 && (fval.fractionh || fval.fractionl) && fval.sign==1) return NEGITIVE_DENORMALS; return UNKNOW_FLOAT_NUMBER; } int ftype(myieee_long_double_shape_type fval) { if(fval.fractionl==0 && fval.fractionh==0 && fval.sign==0 && fval.exponent==0 &&fval.integer==0) return POSITIVE_ZERO; if(fval.fractionl==0 && fval.fractionh==0 && fval.sign==1 && fval.exponent==0 &&fval.integer==0) return NEGATIVE_ZERO; if(fval.fractionl==0 &&fval.fractionh==0 && fval.exponent==0x7fff && fval.sign==0&&fval.integer==1) return POSITIVE_INDEFINITE; if(fval.fractionl==0 &&fval.fractionh==0 && fval.exponent==0x7fff && fval.sign==1 &&fval.integer==1) return NEGATIVE_INDEFINITE; if(fval.exponent==0x7fff && (fval.fractionh & 0x40000000)==0 &&fval.integer==1) return SNAN; if(fval.exponent==0x7fff && (fval.fractionh & 0x40000000)==1 &&fval.integer==1) return QNAN; if(fval.exponent==0x7fff && fval.fractionh==0x40000000 && fval.fractionl==0 &&fval.integer==1) return QNAN_INDEFINITE; if(fval.exponent>=1 && fval.exponent <0x7fff && fval.sign==0&&fval.integer==1) return POSITIVE_NORMALS; if(fval.exponent>=1 && fval.exponent <0x7fff && fval.sign==1&&fval.integer==1) return NEGITIVE_NORMALS; if(fval.exponent==0 && (fval.fractionh || fval.fractionl) && fval.sign==0&&fval.integer==0) return POSITIVE_DENORMALS; if(fval.exponent==0 && (fval.fractionh || fval.fractionl) && fval.sign==1&&fval.integer==0) return NEGITIVE_DENORMALS; return UNKNOW_FLOAT_NUMBER; } ================================================ FILE: Project/Code/Source/Float2String.h ================================================ #ifndef _FLOAT2STRING_H_ #define _FLOAT2STRING_H_ #define FLOAT_MANTISSA_MSBIT 22 #define DOUBLE_MANTISSA_MSBIT 51 #define LONG_DOUBLE_MANTISSA_MSBIT 62 #define FLOAT_MANTISSA_BITS 23 #define DOUBLE_MANTISSA_BITS 52 #define LONG_DOUBLE_MANTISSA_BITS 63 #define FLOAT_EXP_MAX 128 #define DOUBLE_EXP_MAX 1024 #define LONG_DOUBLE_EXP_MAX 16384 #define GET_FLOAT 1 #define GET_DOUBLE 2 #define GET_LONG_DOUBLE 3 void Hex2Float(char *str, unsigned long addr); void Hex2Double(char *str, unsigned long addr); void Hex2LongDouble(char *str, unsigned long addr); enum{ POSITIVE_ZERO, NEGATIVE_ZERO, POSITIVE_INDEFINITE, NEGATIVE_INDEFINITE, SNAN, QNAN, QNAN_INDEFINITE, POSITIVE_NORMALS, NEGITIVE_NORMALS, POSITIVE_DENORMALS, NEGITIVE_DENORMALS, UNKNOW_FLOAT_NUMBER, }; typedef union { long double value; struct { unsigned int fractionl; unsigned int fractionh:31; unsigned int integer:1; unsigned int exponent:15; unsigned int sign:1; unsigned int empty:16; } ; } myieee_long_double_shape_type; int ftypef(myieee_long_double_shape_type fval); int ftyped(double value); int ftypeld(float value); #endif //_FLOAT2STRING_H_ ================================================ FILE: Project/Code/Source/Handle.cpp ================================================ #include "StdAfx.h" #include "Handle.h" NAME_SPACE_BEGIN CHandle::CHandle() { ZeroMemory(m_RegisterType,sizeof(m_RegisterType)); ZeroMemory(m_HandleInfoDir,sizeof(m_HandleInfoDir)); } void CHandle::Reset() { CloseAllHandle(); ZeroMemory(m_RegisterType,sizeof(m_RegisterType)); ZeroMemory(m_HandleInfoDir,sizeof(m_HandleInfoDir)); } HANDLE_TYPE CHandle::CreateHandle(void* HandleInfo,DWORD Type) { HANDLE_TYPE Result; DWORD nDir,nSlot; HANDLE_INFO*pFreeSlot=NULL; for(nDir=0;nDirHandleInfo = HandleInfo; pFreeSlot->Attribute = MAKE_DWORD(Type,HANDLE_EXIST); return Result; } bool CHandle::CloseHandle(HANDLE_TYPE Handle) { HANDLE_INFO*pHandleInfo; DWORD nDir,nSlot,m; DWORD Type; Type = HIGH_WORD(Handle); nSlot = Handle&0x03FF; nDir = (Handle>>10)&0x3F; if( m_HandleInfoDir[nDir] == NULL || (m_HandleInfoDir[nDir][nSlot].Attribute&HANDLE_EXIST)==0 || HIGH_WORD(m_HandleInfoDir[nDir][nSlot].Attribute)!=Type) return false; if(Type >= MAX_HANDLE_TYPE || m_RegisterType[Type].bExist==false) return false; pHandleInfo = &m_HandleInfoDir[nDir][nSlot]; if(m_RegisterType[Type].RelHIFunc) m_RegisterType[Type].RelHIFunc(m_RegisterType[Type].Param,pHandleInfo->HandleInfo); else delete (BYTE*)pHandleInfo->HandleInfo; pHandleInfo->HandleInfo = NULL; pHandleInfo->Attribute = 0; pHandleInfo = m_HandleInfoDir[nDir]; for(m=0;m=HANDLE_SLOT_COUNT) { delete m_HandleInfoDir[nDir]; m_HandleInfoDir[nDir] = NULL; } return true; } void CHandle::CloseAllHandle() { DWORD Type; HANDLE_INFO*HandleInfoAry; for(int n=0;n= MAX_HANDLE_TYPE || m_RegisterType[Type].bExist==false) continue; if(HandleInfoAry[m].Attribute & HANDLE_EXIST) { if(m_RegisterType[Type].RelHIFunc) m_RegisterType[Type].RelHIFunc(m_RegisterType[Type].Param,HandleInfoAry[m].HandleInfo); else delete (BYTE*)HandleInfoAry[m].HandleInfo; } } delete HandleInfoAry; m_HandleInfoDir[n]=NULL; } } } bool CHandle::IsHandleExist(HANDLE_TYPE Handle) { DWORD nDir,nSlot; DWORD Type; Type = HIGH_WORD(Handle); nSlot = Handle&0x03FF; nDir = (Handle>>10)&0x3F; if( m_HandleInfoDir[nDir] == NULL || (m_HandleInfoDir[nDir][nSlot].Attribute&HANDLE_EXIST)==0 || HIGH_WORD(m_HandleInfoDir[nDir][nSlot].Attribute)!=Type) return false; return true; } void* CHandle::GetHandleInfo(HANDLE_TYPE Handle) { DWORD nDir,nSlot; DWORD Type; Type = HIGH_WORD(Handle); nSlot = Handle&0x03FF; nDir = (Handle>>10)&0x3F; if(Type >= MAX_HANDLE_TYPE || m_RegisterType[Type].bExist==false) return false; if( m_HandleInfoDir[nDir] == NULL || (m_HandleInfoDir[nDir][nSlot].Attribute&HANDLE_EXIST)==0 || HIGH_WORD(m_HandleInfoDir[nDir][nSlot].Attribute)!=Type) return NULL; return m_HandleInfoDir[nDir][nSlot].HandleInfo; } DWORD CHandle::GetHandleType(HANDLE_TYPE Handle) { return HIGH_WORD(Handle); } HANDLE_TYPE CHandle::GetFirstHandle(DWORD Type) { DWORD nDir,nSlot; nSlot = 0; nDir = 0; if(Type >= MAX_HANDLE_TYPE || m_RegisterType[Type].bExist==false) return false; for(DWORD n=nDir;n>10)&0x3F; if(Type >= MAX_HANDLE_TYPE || m_RegisterType[Type].bExist==false) return false; nSlot++; for(DWORD n=nDir;n= MAX_HANDLE_TYPE || m_RegisterType[Type].bExist==false) return false; m_RegisterType[Type].RelHIFunc=NULL; m_RegisterType[Type].Param=NULL; m_RegisterType[Type].bExist=false; return true; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/Handle.h ================================================ #ifndef _HANDLE_H_ #define _HANDLE_H_ NAME_SPACE_BEGIN ///////////////////////////////////λֲ//////////////////////////////////////////////////// //[ ] [ҳĿ¼ ] [ ڲ ] //1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 ///////////////////////////////////////////////////////////////////////////////////////////////// typedef DWORD HANDLE_TYPE; #define INVALID_HANDLE 0x00 //Ч #define HANDLE_DIR_COUNT 0x40 //ҳ #define HANDLE_SLOT_COUNT 0x400 //ÿҳ #define HANDLE_TYPE_COUNT 0x40 //ǼǾ #define HANDLE_EXIST 0x00000001 //æ־ #define HANDLE_BUSY 0x00000002 //æ־ #define HANDLE_DUP 0x00000004 //Ƿɸ #define HANDLE_INHERIT 0x00000008 //Ƿɼ̳ #define MAX_HANDLE_TYPE 0x100 //͸ #define INVALID_HANDLE_TYPE 0 struct HANDLE_INFO { void* HandleInfo; DWORD Attribute; }; typedef bool(*REL_HI_FUNC)(void* Param,void* pInfo); struct HANDLE_TYPE_INFO { REL_HI_FUNC RelHIFunc; void* Param; bool bExist; }; #define CHandle CCodeHandle class CHandle { HANDLE_INFO* m_HandleInfoDir[HANDLE_DIR_COUNT]; HANDLE_TYPE_INFO m_RegisterType[MAX_HANDLE_TYPE]; public: CHandle(); HANDLE_TYPE CreateHandle(void* HandleInfo,DWORD Type); bool CloseHandle(HANDLE_TYPE Handle); void CloseAllHandle(); void Reset(); HANDLE_TYPE GetFirstHandle(DWORD Type); DWORD GetHandleType(HANDLE_TYPE Handle); bool IsHandleExist(HANDLE_TYPE Handle); void* GetHandleInfo(HANDLE_TYPE Handle); HANDLE_TYPE GetNextHandle(HANDLE_TYPE Handle); DWORD Register(REL_HI_FUNC RelHIFunc = NULL,void* Param = NULL); bool Unregister(DWORD Type); }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Heap.cpp ================================================ #include "StdAfx.h" #include "Heap.h" NAME_SPACE_BEGIN #define HEAP_SIGN 0x77777777 #define HEAP_ALIGN_SIGN 0x77777778 CFixedHeap::CFixedHeap() { m_HeapBuffer = NULL; m_HeapSize = 0; } CFixedHeap::~CFixedHeap() { Destroy(); } bool CFixedHeap::Create(ULSIZE Size) { m_AllocateCount = 0; m_HeapSize = ALIGN_SIZE(Size,CHUNK_SIZE); m_HeapBuffer = (BYTE*)AllocSysMem(m_HeapSize); if(m_HeapBuffer==NULL) return false; ZeroMemory(m_HeapBuffer,m_HeapSize); m_MinFreeChunkCount = m_FreeChunkCount = InitFreeListBuffer(CHUNK_SIZE,m_HeapBuffer,m_HeapSize); m_pCacheFreeChunk = m_pFirstFreeChunk = (FREE_LIST*) m_HeapBuffer; m_pLastFreeChunk = (FREE_LIST*)&m_HeapBuffer[m_HeapSize-CHUNK_SIZE]; ZeroMemory(m_FreeList,sizeof(m_FreeList)); return true; } void CFixedHeap::Destroy() { if(m_HeapBuffer) { FreeSysMem(m_HeapBuffer); m_HeapBuffer = NULL; m_HeapSize = 0; } } ULSIZE CFixedHeap::InitFreeListBuffer(ULSIZE BlockSize,void*ListBuffer,ULSIZE BufferSize) { ULSIZE ListSize; FREE_LIST*pList,*pPrevList,HeadList; pPrevList = &HeadList; pList =(FREE_LIST*)ListBuffer; for(ListSize=0;ListSize+BlockSize<=BufferSize;ListSize+=BlockSize) { pPrevList->pNext = pList; pList->pNext = NULL; pPrevList = pList; pList = (FREE_LIST*)((BYTE*)pList+BlockSize); } return ListSize/BlockSize; } bool CFixedHeap::InfuseFreeMemory(ULSIZE Index) { m_FreeList[Index]=(FREE_LIST*) ChunkAlloc(CHUNK_SIZE); if(m_FreeList[Index]) { InitFreeListBuffer(INDEX_BLOCK_SIZE(Index),m_FreeList[Index]->ChunkBuffer,CHUNK_SIZE); return true; } ULSIZE Size,LargerIndex; Size = INDEX_BLOCK_SIZE(Index); for(ULSIZE IndexSize=Size*2;IndexSize<=MAX_BLOCK_SIZE;IndexSize+=Size) { LargerIndex = FREE_LIST_INDEX(IndexSize); if(m_FreeList[LargerIndex]) { m_FreeList[Index] = m_FreeList[LargerIndex]; m_FreeList[LargerIndex] = m_FreeList[LargerIndex]->pNext; InitFreeListBuffer(INDEX_BLOCK_SIZE(Index),m_FreeList[Index]->ChunkBuffer,INDEX_BLOCK_SIZE(LargerIndex)); return true; } } return false; } void*CFixedHeap::Allocate(ULSIZE Size) { if(m_HeapBuffer==NULL) return NULL; m_AllocateCount++; CODE_ASSERT(m_pFirstFreeChunk && m_FreeChunkCount);//ѿռ⵽ƻ if(Size+BLOCK_EXT_DATA>MAX_BLOCK_SIZE) return HugeAllocate(Size); ULSIZE Index; MIN_LIMIT(Size,1); Index = FREE_LIST_INDEX(Size+BLOCK_EXT_DATA); if(m_FreeList[Index]==NULL && InfuseFreeMemory(Index)==false) { return NULL; } if(m_FreeList[Index]==NULL) return NULL; FREE_LIST*pList = m_FreeList[Index]->pNext; m_FreeList[Index]->Block.BlockSize = Size; void*Buffer = m_FreeList[Index]->Block.UserData; #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK m_FreeList[Index]->Block.CheckSign = HEAP_SIGN; PUT_DWORD(Buffer,Size,HEAP_SIGN); #endif m_FreeList[Index] = pList; return Buffer; } bool CFixedHeap::Free(void*Ptr) { if(m_HeapBuffer==NULL) return false; if(IsHeapMemory(Ptr)==false) return false; if(HugeFree(Ptr)) return true; FREE_LIST*pList = (FREE_LIST*)((BYTE*)Ptr-BLOCK_EXT_DATA_AHEAD); #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK if(GET_DWORD(Ptr,pList->Block.BlockSize)!=HEAP_SIGN)//ڴ汻 ReportMemoryOverflow(Ptr,pList->Block.BlockSize); if(pList->Block.CheckSign!=HEAP_SIGN) ReportMemoryRedelete(Ptr,pList->Block.BlockSize); pList->Block.CheckSign = 0; #endif ULSIZE Index = FREE_LIST_INDEX(pList->Block.BlockSize+BLOCK_EXT_DATA); pList->pNext = m_FreeList[Index]; m_FreeList[Index] = pList; return true; } void* CFixedHeap::AlignAllocate(ULSIZE Size,ULSIZE Align) { ALIGN_PTR_HEAD*pHead; void*Buffer; NUM_PTR Ptr; Buffer = Allocate(Size+sizeof(ALIGN_PTR_HEAD)+Align); if(Buffer==NULL) return NULL; Ptr = (NUM_PTR)Buffer; Ptr += Align-Ptr%Align; if(Ptr<(NUM_PTR)Buffer+sizeof(ALIGN_PTR_HEAD)) Ptr+=Align; pHead = (ALIGN_PTR_HEAD*)(Ptr-sizeof(ALIGN_PTR_HEAD)); #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK pHead->CheckSign = HEAP_ALIGN_SIGN; #endif pHead->Offset =(ULSIZE) (Ptr - (NUM_PTR)Buffer); Buffer = (void*)Ptr; return Buffer; } bool CFixedHeap::AlignFree(void*Ptr) { ALIGN_PTR_HEAD*pHead; if(Ptr==NULL) return false; pHead = (ALIGN_PTR_HEAD*)((NUM_PTR)Ptr-sizeof(ALIGN_PTR_HEAD)); #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK if(pHead->CheckSign!=HEAP_ALIGN_SIGN) { ReportMemoryOverflow(Ptr,0); return false; } #endif Ptr = (void*)((NUM_PTR)Ptr - pHead->Offset); return Free(Ptr); } void* CFixedHeap::HugeAllocate(ULSIZE Size) { FREE_LIST*pList =(FREE_LIST*) ChunkAlloc(ALIGN_SIZE(Size+BLOCK_EXT_DATA,CHUNK_SIZE)); if(pList == NULL) { return NULL; } pList->Block.BlockSize = Size; #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK pList->Block.CheckSign = HEAP_SIGN; PUT_DWORD(pList->Block.UserData,Size,HEAP_SIGN); #endif return pList->Block.UserData; } bool CFixedHeap::HugeFree(void*Ptr) { FREE_LIST*pList = (FREE_LIST*)((BYTE*)Ptr-BLOCK_EXT_DATA_AHEAD); if(pList->Block.BlockSize+BLOCK_EXT_DATA<=MAX_BLOCK_SIZE) { return false; } #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK if(GET_DWORD(Ptr,pList->Block.BlockSize)!=HEAP_SIGN) ReportMemoryOverflow(Ptr,pList->Block.BlockSize); if(pList->Block.CheckSign!=HEAP_SIGN) ReportMemoryRedelete(Ptr,pList->Block.BlockSize); pList->Block.CheckSign = 0; #endif bool Result = ChunkFree(pList,ALIGN_SIZE(pList->Block.BlockSize+BLOCK_EXT_DATA,CHUNK_SIZE)); return Result; } BYTE*CFixedHeap::ChunkAlloc(ULSIZE Size) { BYTE*pChunkBuffer; FREE_LIST*pFreeChunk,*pEndFreeChunk,*pPrevChunk; ULSIZE ChunkCount; CODE_ASSERT(!(m_pFirstFreeChunk && m_pFirstFreeChunk->pNext ==NULL && m_FreeChunkCount>=1)); ChunkCount = PAGE_COUNT(Size,CHUNK_SIZE); pFreeChunk = m_pFirstFreeChunk; while(pFreeChunk) { if(pEndFreeChunk=IsSeriate(pFreeChunk,CHUNK_SIZE,ChunkCount)) break; pPrevChunk = pFreeChunk; pFreeChunk = pFreeChunk->pNext; } if(pFreeChunk==NULL) return NULL; pChunkBuffer = pFreeChunk->ChunkBuffer; m_FreeChunkCount-=ChunkCount; if(m_MinFreeChunkCount>m_FreeChunkCount) m_MinFreeChunkCount=m_FreeChunkCount; if(m_pFirstFreeChunk==pFreeChunk) m_pFirstFreeChunk = pEndFreeChunk->pNext; else pPrevChunk->pNext = pEndFreeChunk->pNext; if(pEndFreeChunk==m_pLastFreeChunk) m_pLastFreeChunk = m_pFirstFreeChunk; if(m_pCacheFreeChunk>=pFreeChunk && m_pCacheFreeChunk<=pEndFreeChunk) { m_pCacheFreeChunk = pEndFreeChunk->pNext; if(m_pCacheFreeChunk==NULL) m_pCacheFreeChunk = m_pFirstFreeChunk; } return pChunkBuffer; } bool CFixedHeap::ChunkFree(void*pChunkBuffer,ULSIZE Size) { ULSIZE ChunkCount; FREE_LIST*pFreeList,*pFreeEndList; if(((BYTE*)pChunkBuffer - m_HeapBuffer)%CHUNK_SIZE) return false; Size = ALIGN_SIZE(Size,CHUNK_SIZE); ChunkCount = InitFreeListBuffer(CHUNK_SIZE,pChunkBuffer,Size); pFreeList=(FREE_LIST*)pChunkBuffer; pFreeEndList = (FREE_LIST*)((BYTE*)pChunkBuffer+Size-CHUNK_SIZE); CODE_ASSERT(pFreeList!=m_pFirstFreeChunk&&pFreeList!=m_pLastFreeChunk&&pFreeList!=m_pCacheFreeChunk); if(m_pFirstFreeChunk==NULL && m_pLastFreeChunk==NULL) { m_pFirstFreeChunk = pFreeList; m_pLastFreeChunk = pFreeEndList; } else if(pFreeList < m_pFirstFreeChunk) { pFreeEndList->pNext = m_pFirstFreeChunk; m_pFirstFreeChunk = pFreeList; } else if(pFreeList > m_pLastFreeChunk) { m_pLastFreeChunk->pNext = pFreeList; m_pLastFreeChunk = pFreeEndList; } else if(pFreeList > m_pFirstFreeChunk && pFreeList < m_pCacheFreeChunk) { m_pCacheFreeChunk = m_pFirstFreeChunk; while(m_pCacheFreeChunk->pNext < pFreeList) m_pCacheFreeChunk = m_pCacheFreeChunk->pNext; pFreeEndList->pNext = m_pCacheFreeChunk->pNext; m_pCacheFreeChunk->pNext = pFreeList; } else//if(pFreeList > m_pCacheFreeChunk && pFreeList < m_pLastFreeChunk) { while(m_pCacheFreeChunk->pNext < pFreeList) m_pCacheFreeChunk = m_pCacheFreeChunk->pNext; pFreeEndList->pNext = m_pCacheFreeChunk->pNext; m_pCacheFreeChunk->pNext = pFreeList; } m_FreeChunkCount+=ChunkCount; m_pCacheFreeChunk = (FREE_LIST*)pChunkBuffer; return true; } FREE_LIST*CFixedHeap::IsSeriate(FREE_LIST*pList,ULSIZE BlockSize,ULSIZE Count) { for(ULSIZE n=1;npNext - (BYTE*)pList)!=BlockSize) return NULL; pList=pList->pNext; } return pList; } bool CFixedHeap::IsHeapMemory(void*pData) { return m_HeapBuffer && (BYTE*)pData>m_HeapBuffer && (BYTE*)pDatapNext && pList->pNext<=pList) return 0; pList = pList->pNext; Count++; } return Count; } ULSIZE CFixedHeap::GetFreeChunkSpace() { ULSIZE Size; FREE_LIST* pFreeChunk; pFreeChunk = m_pFirstFreeChunk; Size = 0; while(pFreeChunk) { Size+=CHUNK_SIZE; pFreeChunk=pFreeChunk->pNext; } return Size; } void* CFixedHeap::AllocSysMem(ULSIZE Size) { #ifdef CODE_OS_NT_DRV return ExAllocatePoolWithTag(NonPagedPool, Size,'Heap'); #else return malloc(Size); #endif } void CFixedHeap::FreeSysMem(void*Ptr) { #ifdef CODE_OS_NT_DRV ExFreePool(Ptr); #else free(Ptr); #endif } bool CFixedHeap::IsValidMemory(void*Ptr) { return true; } void CFixedHeap::ReportMemoryOverflow(void*ptr,ULSIZE Size) { char szBuffer[256]; TSPrintf(szBuffer,"ڴ[%p]\n",ptr); #ifdef CODE_ALLOC_USER_HEAP_OVERFLOW_OUTPUT CODE_DEBUG_OUTPUT(szBuffer); #endif #ifdef CODE_ALLOC_USER_HEAP_DEBUG_BREAK CODE_ASSERT(false); #endif return; } void CFixedHeap::ReportMemoryRedelete(void*ptr,ULSIZE Size) { char szBuffer[256]; TSPrintf(szBuffer,"ڴ[%p]ظͷŻ鸲\n",ptr); #ifdef CODE_ALLOC_USER_HEAP_OVERFLOW_OUTPUT CODE_DEBUG_OUTPUT(szBuffer); #endif #ifdef CODE_ALLOC_USER_HEAP_DEBUG_BREAK CODE_ASSERT(false); #endif return; } /* void CFixedHeapTest() { CFixedHeap Heap; Heap.Create(0x10000+0x4000); void*ptr[0x100],*ptr1,*ptr2; ptr1 = Heap.Allocate(0x3FFC); ZeroMemory(ptr1,0x3FFC); for(int n=0;n<0x100;n++) { ptr[n]=Heap.Allocate(12); ZeroMemory(ptr[n],12); printf("ptr[%d] = %p \n",n,ptr[n]); if(ptr[n]==NULL) { printf("Alloc %d Error \n",n); return; } } ptr2 = Heap.Allocate(0x3FFC); Heap.Free(ptr2); for(int n=0;n<0x100;n++) { if(Heap.Free(ptr[n])==false) { printf("Free %d Error\n",n); return; } } Heap.Free(ptr1); printf("Free Chunk Space %X (bytes)\n",Heap.GetFreeChunkSpace()); Heap.Destroy(); return; } */ NAME_SPACE_END ================================================ FILE: Project/Code/Source/Heap.h ================================================ #ifndef _HEAP_H_ #define _HEAP_H_ NAME_SPACE_BEGIN #define BLOCK_ALIGN 0x10 #define MAX_BLOCK_SIZE 0x400 #define FREE_LIST_COUNT (MAX_BLOCK_SIZE/BLOCK_ALIGN) #define FREE_LIST_INDEX(__size) (((__size)+BLOCK_ALIGN-1)/BLOCK_ALIGN-1) #define CHUNK_SIZE 0x1000 #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK #define BLOCK_EXT_DATA (sizeof(ULSIZE)+sizeof(DWORD)*2) #define BLOCK_EXT_DATA_AHEAD (sizeof(ULSIZE)+sizeof(DWORD)) #else #define BLOCK_EXT_DATA (sizeof(ULSIZE)+sizeof(DWORD)) #define BLOCK_EXT_DATA_AHEAD sizeof(ULSIZE) #endif #define INDEX_BLOCK_SIZE(__index) (((__index)+1)*BLOCK_ALIGN) union FREE_LIST { FREE_LIST*pNext; struct { #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK DWORD CheckSign; #endif ULSIZE BlockSize; BYTE UserData[4]; }Block; BYTE ChunkBuffer[1]; }; struct ALIGN_PTR_HEAD { #ifdef CODE_ALLOC_USER_HEAP_FREE_CHECK DWORD CheckSign; #endif ULSIZE Offset; }; class CFixedHeap { public: CFixedHeap(); ~CFixedHeap(); public: virtual void* AllocSysMem(ULSIZE Size); virtual void FreeSysMem(void*Ptr); virtual bool IsValidMemory(void*Ptr); virtual void ReportMemoryOverflow(void*ptr,ULSIZE Size); virtual void ReportMemoryRedelete(void*ptr,ULSIZE Size); public: bool Create(ULSIZE Size); void Destroy(); void* Allocate(ULSIZE Size); bool Free(void*Ptr); void* AlignAllocate(ULSIZE Size,ULSIZE Align); bool AlignFree(void*Ptr); void Compact(); bool Validate(); ULSIZE GetFreeChunkCount(); ULSIZE GetFreeChunkSpace(); private: ULSIZE InitFreeListBuffer(ULSIZE BlockSize,VOID*ListBuffer,ULSIZE BufferSize); bool InfuseFreeMemory(ULSIZE Index); void* HugeAllocate(ULSIZE Size); bool HugeFree(void*Ptr); FREE_LIST* IsSeriate(FREE_LIST*pList,ULSIZE BlockSize,ULSIZE Count); public: ULSIZE m_AllocateCount; BYTE* m_HeapBuffer; ULSIZE m_HeapSize; ULSIZE m_MinFreeChunkCount; ULSIZE m_FreeChunkCount; FREE_LIST* m_FreeList[FREE_LIST_COUNT];//Сڴ FREE_LIST* m_pFirstFreeChunk; FREE_LIST* m_pLastFreeChunk; FREE_LIST* m_pCacheFreeChunk; BYTE* ChunkAlloc(ULSIZE Size); bool ChunkFree(void*pChunkBuffer,ULSIZE Size); bool IsHeapMemory(void*pData); }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/HttpDownload.cpp ================================================ #include "StdAfx.h" #include #ifdef WIN32 // Windows Head Files #include #include #pragma comment(lib, "wsock32.lib") #else // Unix Head Files #include #include #include #include #include #include #include #include #include #endif // WIN32 #include "HttpDownload.h" #define strdup _strdup enum HTTPSTATUS { HTTP_OK = 0, HTTP_PARTIAL, HTTP_ERROR, HTTP_REDIRECT }; #ifndef INVALID_SOCKET #define INVALID_SOCKET (unsigned int)(~0) #endif #ifndef SOCKET_ERROR #define SOCKET_ERROR (-1) #endif #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif #define BUF_LEN 10240 char g_szBase64TAB[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int g_nBase64Mask[]= { 0, 1, 3, 7, 15, 31, 63, 127, 255 }; bool DefaultCallback(long wParam, long lParam) { return true; } ////////////////////////////////////////////////////////////////////////////////// // int Base64Encode( // IN LPCTSTR lpszEncoding, // char* lpszOutEncoded // long lOutSize) // ;BASE64 // ȫֱӰ죺 // // lpszEncoding : ַ // strEncoded : (ǰҪ㹻ڴ) // lOutSize : ڴС // ֵintijȣ-1ʾڴ治 //////////////////////////////////////////////////////////////////////////////// int Base64Encode(const char* lpszEncoding, char* lpszOutEncoded, long lOutSize) { int nDigit; int nNumBits = 6; int nIndex = 0; size_t nInputSize = 0; int nEncodeLength = 0; memset(lpszOutEncoded, 0, strlen(lpszOutEncoded)); if( lpszEncoding == NULL ) return 0; if( ( nInputSize = strlen(lpszEncoding) ) == 0 ) return 0; int nBitsRemaining = 0; long lBitsStorage =0; long lScratch =0; int nBits; unsigned char c; while( nNumBits > 0 ) { while( ( nBitsRemaining < nNumBits ) && ( nIndex < (int)nInputSize ) ) { c = lpszEncoding[ nIndex++ ]; lBitsStorage <<= 8; lBitsStorage |= (c & 0xff); nBitsRemaining += 8; } if( nBitsRemaining < nNumBits ) { lScratch = lBitsStorage << ( nNumBits - nBitsRemaining ); nBits = nBitsRemaining; nBitsRemaining = 0; } else { lScratch = lBitsStorage >> ( nBitsRemaining - nNumBits ); nBits = nNumBits; nBitsRemaining -= nNumBits; } nDigit = (int)(lScratch & g_nBase64Mask[nNumBits]); nNumBits = nBits; if( nNumBits <=0 ) break; lpszOutEncoded[nEncodeLength] = g_szBase64TAB[ nDigit ]; nEncodeLength++; if(nEncodeLength >= lOutSize - 4) { printf("Err: Over Base64 out buf!\n"); return -1; } } // Pad with '=' as per RFC 1521 while( nEncodeLength % 4 != 0 ) { lpszOutEncoded[nEncodeLength] = '='; nEncodeLength++; } return nEncodeLength; } ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CHttpDownload::CHttpDownload() { m_hSocket = INVALID_SOCKET; memset(m_strDownURL,0,sizeof(m_strDownURL)); memset(m_strServer,0,sizeof(m_strServer)); memset(m_strSaveFileName,0,sizeof(m_strSaveFileName)); m_nHeaderLength = 0; m_nContentLength = 0; m_nFileTotalSize = 0; time(&m_TimeLastModified); m_bStopDownload = false; m_nErrorCode = ERROR_DOWNLOAD_NONE; m_lpCallbackProc = NULL; m_bProxy = false; memset(m_strProxyServer, 0, sizeof(m_strProxyServer)); m_nProxyPort = 0; m_bProxyAuthorization = false; memset(m_szProxyUser, 0, sizeof(m_szProxyUser)); memset(m_szProxyPwd, 0, sizeof(m_szProxyPwd)); m_lpCallbackProc=DefaultCallback; } CHttpDownload::~CHttpDownload() { CloseSocket(); } bool CHttpDownload::StartupWinsock() { #ifdef WIN32 WSADATA wsaData; return (WSAStartup(0x0101,&wsaData) == 0); #else return true; #endif } void CHttpDownload::CleanupWinsock() { #ifdef WIN32 WSACleanup(); #endif } bool CHttpDownload::CreateSocket() { CloseSocket(); m_hSocket = (unsigned int)socket(AF_INET,SOCK_STREAM,0); return (m_hSocket != INVALID_SOCKET); } void CHttpDownload::CloseSocket() { if (m_hSocket != INVALID_SOCKET) { #ifdef WIN32 closesocket(m_hSocket); #else close(m_hSocket); #endif m_hSocket = INVALID_SOCKET; } } int CHttpDownload::DownloadToBuffer(const char *lpszDownloadURL, char *Buffer,int BufLen,int* ReturnedLength) { strcpy_s(m_strDownURL,sizeof(m_strDownURL),lpszDownloadURL); m_bStopDownload = false; ReDownload: int nStatusCode = SendRequest(); if (nStatusCode == HTTP_ERROR) { CloseSocket(); return -1; } long nDownloadedSize = 0; m_nErrorCode = ERROR_RECEIVE_FILE; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_DOWNLOAD_FILE); m_lpCallbackProc(MSG_FILE_TOTAL_SIZE,m_nFileTotalSize); char* ReadBuf=new char[BufLen+m_nHeaderLength+1]; if(ReadBuf==NULL) { CloseSocket(); return -1; } long nRecv = 0; int begin=0; bool bFirstRecv = true; int currentlen=BufLen+m_nHeaderLength; memset(ReadBuf,0,BufLen+m_nHeaderLength+1); memset(Buffer,0,BufLen); do { if (m_bStopDownload) { delete []ReadBuf; CloseSocket(); return -1; } int nRet = recv(m_hSocket,&ReadBuf[begin],currentlen,0); if (nRet == SOCKET_ERROR) { CloseSocket(); //ٴη delete []ReadBuf; goto ReDownload; } if (nRet == 0) break; nRecv+=nRet; begin+=nRet; currentlen-=nRet; m_lpCallbackProc(MSG_DOWNLOADED_SIZE,nRecv+nDownloadedSize); }while(currentlen); *ReturnedLength=0; if(nRecv>m_nHeaderLength) { *ReturnedLength=nRecv-m_nHeaderLength; memcpy(Buffer,&ReadBuf[m_nHeaderLength],*ReturnedLength); } delete []ReadBuf; //һصļǷȷ CloseSocket(); m_nErrorCode = ERROR_DOWNLOAD_NONE; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_DOWN_FINISHED); m_bStopDownload = true; return 0; } //ֵ //0سɹɣ //-1ʧܣ //1Ҫصļ뱾صǰļȫͬļСļʱ䣩 int CHttpDownload::Download(const char *lpszDownloadURL, const char *lpszSaveFileName) { strcpy_s(m_strDownURL,sizeof(m_strDownURL),lpszDownloadURL); sprintf_s(m_strSaveFileName,sizeof(m_strSaveFileName),"%s.sy",lpszSaveFileName); m_bStopDownload = false; struct stat fs; ReDownload: int nStatusCode = SendRequest(); if (nStatusCode == HTTP_ERROR) { CloseSocket(); return -1; } long nDownloadedSize = 0; if (stat(m_strSaveFileName,&fs) != 0) { //˵ļδع if (stat(lpszSaveFileName,&fs) == 0) { if( (fs.st_size == m_nFileTotalSize) && (abs((int)(fs.st_mtime - m_TimeLastModified)) <= 2) ) { //Ҫصļ뱾صǰļȫͬļСļʱ䣩 CloseSocket(); return 1; } } } else { if (nStatusCode == HTTP_PARTIAL) nDownloadedSize = fs.st_size; } m_nErrorCode = ERROR_RECEIVE_FILE; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_DOWNLOAD_FILE); m_lpCallbackProc(MSG_FILE_TOTAL_SIZE,m_nFileTotalSize); FILE *fileDown = fopen(m_strSaveFileName,"a+b"); if (fileDown == NULL) { CloseSocket(); return -1; } if (nStatusCode == HTTP_PARTIAL) fseek(fileDown,0,SEEK_END); char szBuf[BUF_LEN]; long nRecv = 0; bool bFirstRecv = true; do { if (m_bStopDownload) { fclose(fileDown); CloseSocket(); return -1; } memset(szBuf,0,BUF_LEN); int nRet = recv(m_hSocket,szBuf,BUF_LEN,0); if (nRet == SOCKET_ERROR) { fclose(fileDown); CloseSocket(); //ٴη goto ReDownload; } if (nRet == 0) break; try { if (bFirstRecv) { if (nRet >= m_nHeaderLength) { fwrite(&szBuf[m_nHeaderLength],sizeof(char),nRet-m_nHeaderLength,fileDown); fflush(fileDown); nRecv += nRet - m_nHeaderLength; bFirstRecv = false; } else { fclose(fileDown); CloseSocket(); //ٴη goto ReDownload; } } else { fwrite(szBuf,sizeof(char),nRet,fileDown); fflush(fileDown); nRecv += nRet; } } catch(...) { fclose(fileDown); CloseSocket(); goto ReDownload; } m_lpCallbackProc(MSG_DOWNLOADED_SIZE,nRecv+nDownloadedSize); }while(nRecv < m_nContentLength); //һصļǷȷ fflush(fileDown); if (m_nFileTotalSize != ftell(fileDown)) { fclose(fileDown); CloseSocket(); //ɾصIJȷļ remove(m_strSaveFileName); goto ReDownload; } fclose(fileDown); CloseSocket(); m_nErrorCode = ERROR_DOWNLOAD_NONE; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_DOWN_FINISHED); //Ƚеļɾ remove(lpszSaveFileName); //ٽصļ rename(m_strSaveFileName,lpszSaveFileName); //ٽصļʱĻȥ struct utimbuf newTime; newTime.actime = 0; newTime.modtime = m_TimeLastModified; utime(lpszSaveFileName,&newTime); m_bStopDownload = true; return 0; } void delStrSpace(char *str) { char *ptr; for (ptr =str;*ptr != '\0' && *ptr == ' ';ptr++); strcpy(str,ptr); } int CHttpDownload::GetInformation(const char *lpszReceived,long &nHeaderLength,long &nContentLength,time_t &TimeLastModified) { size_t newLen; char *szPos = strstr((char*)lpszReceived,"\r\n\r\n"); if (szPos == NULL) return HTTP_ERROR; //HTTPӦͷϢ newLen = strlen("\r\n\r\n"); nHeaderLength = *(long*)&szPos-*(long*)&lpszReceived+(long)newLen; char *strHeader = (char *)malloc(nHeaderLength+1); strHeader[nHeaderLength]=0; //HTTPӦͷϢӦһհ"\r\n" strncpy(strHeader,lpszReceived,nHeaderLength); char *strLowerHeader = strdup(strHeader); StringMakeLower(strLowerHeader); //ֳHTTPӦͷϢĵһУ÷صHTTP״̬ szPos = strstr(strHeader,"\r\n"); char *strStatusCode = (char *)malloc(szPos-strHeader+1); strncpy(strStatusCode,strHeader,szPos-strHeader); szPos = strchr(strStatusCode,' '); if (szPos == NULL) { free(strStatusCode); free(strLowerHeader); free(strHeader); return HTTP_ERROR; } char *szPos1 = szPos+1; szPos = strchr(szPos1,' '); if (szPos == NULL) { free(strStatusCode); free(strLowerHeader); free(strHeader); return HTTP_ERROR; } *szPos = '\0'; int nStatusCode = atoi(szPos1); free(strStatusCode); //ȼһ·ӦǷΪض if (nStatusCode >= 300 && nStatusCode < 400) { szPos = strstr(strLowerHeader,"location:"); if (szPos == NULL) { free(strLowerHeader); free(strHeader); return HTTP_ERROR; } char *strRedirectURL = strdup(szPos+strlen("location:")); szPos = strstr(strRedirectURL,"\r\n"); if (szPos == NULL) { free(strRedirectURL); free(strLowerHeader); free(strHeader); return HTTP_ERROR; } *szPos = '\0'; char *p=strRedirectURL; do { if (*p == '\\') *p = '/'; p++; }while (*p != '\0'); /* del the space in the string 01/12/05 */ delStrSpace(strRedirectURL); //жǷΪضķ if (strncmp(strRedirectURL,"http://",strlen("http://")) == 0) { strcpy(m_strDownURL,strRedirectURL); free(strRedirectURL); free(strLowerHeader); free(strHeader); return HTTP_REDIRECT; } //жǷΪڸĿ¼ if (*strRedirectURL == '/') { sprintf(m_strDownURL,"http://%s%s",m_strServer,strRedirectURL); free(strRedirectURL); free(strLowerHeader); free(strHeader); return HTTP_REDIRECT; } //˵ڵǰĿ¼ int nParentDirCount = 0; char *szPos1 = strRedirectURL; szPos = strstr(szPos1,"../"); while (szPos != NULL) { szPos1 = szPos+3; nParentDirCount++; szPos = strstr(szPos1,"../"); } for (int i=0; i<=nParentDirCount; i++) { szPos = strrchr(m_strDownURL,'/'); if (szPos == NULL) { free(strRedirectURL); free(strLowerHeader); free(strHeader); return HTTP_ERROR; } *szPos = '\0'; } strcat(m_strDownURL,"/"); strcat(m_strDownURL,szPos1); free(strRedirectURL); free(strLowerHeader); free(strHeader); return HTTP_REDIRECT; } //ټһηӦǷΪ200(OK)206(Partial Content) if (nStatusCode != 200 && nStatusCode != 206) { free(strLowerHeader); free(strHeader); return HTTP_ERROR; } //Content-Length szPos = strstr(strLowerHeader,"content-length:"); if (szPos == NULL) { free(strLowerHeader); free(strHeader); return HTTP_ERROR; } char *strLength = strdup(szPos+strlen("content-length:")); szPos = strstr(strLength,"\r\n"); if (szPos == NULL) { free(strLength); free(strLowerHeader); free(strHeader); return HTTP_ERROR; } *szPos = '\0'; nContentLength = atol(strLength); free(strLength); //Last-Modified time(&TimeLastModified); szPos = strstr(strLowerHeader,"last-modified:"); if (szPos != NULL) { char *strTime = strdup(szPos+strlen("last-modified:")); szPos = strstr(strTime,"\r\n"); if (szPos != NULL) { *szPos = '\0'; ConvertTime(strTime,TimeLastModified); } free(strTime); } free(strLowerHeader); free(strHeader); if (nStatusCode == 200) return HTTP_OK; else if (nStatusCode == 206) return HTTP_PARTIAL; else return HTTP_ERROR; } void CHttpDownload::ConvertTime(const char *lpszTime,time_t &TimeLastModified) { int nDay,nMonth,nYear,nHour,nMinute,nSecond; char *strTime = strdup(lpszTime); char *szPos = strchr(strTime,','); if (szPos != NULL) { char *szPos1 = szPos+1; while (*szPos1==' ') szPos1++; const char *strAllMonth = "jan,feb,mar,apr,may,jan,jul,aug,sep,oct,nov,dec"; char strDay[3] = { 0 }; strncpy(strDay,szPos1,2); nDay = atoi(strDay); char strMonth[4] = { 0 }; strncpy(strMonth,szPos1+3,3); StringMakeLower(strMonth); szPos = strstr((char*)strAllMonth,strMonth); if (szPos != NULL) { sprintf(strMonth,"%d",(((szPos-strAllMonth)/4)+1)); nMonth = atoi(strMonth)-1; } else nMonth = 0; szPos1 += 6; while (*szPos1==' ') szPos1++; szPos = strchr(szPos1,' '); char strYear[5] = { 0 }; if (szPos != NULL) { strncpy(strYear,szPos1,4); nYear = atoi(strYear); if (strlen(strYear) > 3) nYear -= 1900; } else nYear = 2001-1900; szPos1 = szPos+1; char strHour[3] = { 0 }; strncpy(strHour,szPos1,2); nHour = atoi(strHour); char strMinute[3] = { 0 }; strncpy(strMinute,szPos1+3,2); nMinute = atoi(strMinute); char strSecond[3] = { 0 }; strncpy(strSecond,szPos1+6,2); nSecond = atoi(strSecond); } free(strTime); struct tm tmLastModified; tmLastModified.tm_year = nYear; tmLastModified.tm_mon = nMonth; tmLastModified.tm_mday = nDay; tmLastModified.tm_hour = nHour; tmLastModified.tm_min = nMinute; tmLastModified.tm_sec = nSecond; TimeLastModified = mktime(&tmLastModified); } char *CHttpDownload::URLEncode(const char *lpszURL, char *szURL) { #define ToHex(nNumber) ((nNumber < 10) ? (nNumber+'0') : (nNumber+'A'-10)) char *pszOut = szURL; char *pch = (char *)lpszURL; if (strchr(lpszURL, '%') != NULL) { strcpy(szURL, lpszURL); return szURL; } for (; pch!=NULL && *pch!='\0'; pch++) { if (isalnum(*pch)) *pszOut++ = *pch; else if (*pch=='/' || *pch=='\\' || *pch=='.' || *pch==':' || *pch=='?' || *pch=='&' || *pch=='=') *pszOut++ = *pch; else { *pszOut++ = '%'; *pszOut++ = ToHex(*pch/16); *pszOut++ = ToHex(*pch%16); } } *pszOut = '\0'; return szURL; } bool CHttpDownload::ParseURL(const char *lpszURL,char *strServer,char *strObject) { //ַϵĿļλ char *strLowerURL = strdup(lpszURL); StringMakeLower(strLowerURL); char *szPos = strstr(strLowerURL,"http://"); if (szPos == NULL) { free(strLowerURL); return false; } const char *strURL = lpszURL+(szPos-strLowerURL)+strlen("http://"); free(strLowerURL); szPos = strchr((char*)strURL,'/'); if (szPos == NULL) return false; memset(strServer, 0, sizeof(strServer)); strncpy(strServer,strURL,szPos-strURL); //strcpy(strObject, szPos); URLEncode(szPos, strObject); return true; } bool CHttpDownload::GetHostIP(char *strServer) { // printf("gethostbyname %s\n", strServer); struct hostent *pHost = gethostbyname(strServer); if(pHost == NULL) { printf("gethostbyname %s error : %d\n", strServer, h_errno); return false; } strcpy(strServer,inet_ntoa(*(struct in_addr *)*pHost->h_addr_list)); return true; } int CHttpDownload::SendRequest() { char szAuthIn[256] = {0}; char szAuthOut[501] = {0}; char szOriServer[512]={0}; int nOutLength = 0; m_nErrorCode = ERROR_RESOLVE_HOST; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_RESOLVE_HOST); char strObject[2048]= { 0 }; memset(m_strServer, 0, 128); if (!ParseURL(m_strDownURL,m_strServer,strObject)) return HTTP_ERROR; struct sockaddr_in sockAddr; sockAddr.sin_family = 2; strncpy(szOriServer,m_strServer,511); if (!m_bProxy) { // sockAddr.sin_port = htons(80); sockAddr.sin_addr.s_addr = inet_addr(m_strServer); if (sockAddr.sin_addr.s_addr == 0xffffffff) { if (m_bStopDownload) return HTTP_ERROR; if (!GetHostIP(m_strServer)) return HTTP_ERROR; sockAddr.sin_addr.s_addr = inet_addr(m_strServer); } } else { //Proxy sockAddr.sin_port = htons(m_nProxyPort); sockAddr.sin_addr.s_addr = inet_addr(m_strProxyServer); if (sockAddr.sin_addr.s_addr == 0xffffffff) { if (m_bStopDownload) return HTTP_ERROR; if (!GetHostIP(m_strProxyServer)) return HTTP_ERROR; sockAddr.sin_addr.s_addr = inet_addr(m_strProxyServer); } } if (!CreateSocket()) return HTTP_ERROR; if (m_bStopDownload) return HTTP_ERROR; m_nErrorCode = ERROR_CONNECT_HOST; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_CONNECT_HOST); // int nRet = connect(m_hSocket,(struct sockaddr *)&sockAddr,sizeof(sockAddr)); if (nRet == SOCKET_ERROR) return HTTP_ERROR; if (m_bStopDownload) return HTTP_ERROR; //HTTP char strSend[10240]; if (!m_bProxy) sprintf(strSend,"GET %s HTTP/1.1\r\n",strObject); else sprintf(strSend,"GET http://%s%s HTTP/1.1\r\n",m_strServer,strObject); strcat(strSend,"Host: "); strcat(strSend,szOriServer); strcat(strSend,"\r\n"); strcat(strSend,"Accept: */*\r\n"); strcat(strSend,"Cache-Control: no-cache\r\n"); strcat(strSend,"User-Agent: HttpDownload/1.00\r\n"); if( m_bProxyAuthorization ) { sprintf(szAuthIn, "%s:%s", m_szProxyUser, m_szProxyPwd); nOutLength = Base64Encode(szAuthIn, szAuthOut, 500); if(nOutLength > 0) { strcat(strSend, "Authorization: Basic "); strcat(strSend, szAuthOut); strcat(strSend, "\r\n"); } } strcat(strSend,"Connection: close\r\n"); //鿴ļصֽڳ struct stat fs; long nRange = 0; if (stat(m_strSaveFileName,&fs) == 0) nRange = fs.st_size; if (nRange > 0) { char strRange[128]; sprintf(strRange,"Range: bytes=%d-\r\n",nRange); strcat(strSend,strRange); } //ҪһУHttpӦ strcat(strSend,"\r\n"); m_nErrorCode = ERROR_SEND_REQUEST; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_SEND_REQUEST); // nRet = send(m_hSocket,strSend,(int)strlen(strSend),0); if (nRet == SOCKET_ERROR) return HTTP_ERROR; if (m_bStopDownload) return HTTP_ERROR; m_nErrorCode = ERROR_RECV_RESPONSE; m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_RECV_RESPONSE); char szBuf[BUF_LEN]; memset(szBuf,0,sizeof(szBuf)); //Ȳ鿴һݣݿ뵽BufferУ nRet = recv(m_hSocket,szBuf,sizeof(szBuf),MSG_PEEK); if (nRet == SOCKET_ERROR) return HTTP_ERROR; nRet = GetInformation(szBuf,m_nHeaderLength,m_nContentLength,m_TimeLastModified); if (nRet == HTTP_ERROR) return HTTP_ERROR; if (nRet == HTTP_OK || nRet == HTTP_PARTIAL) { if (m_nHeaderLength == 0) return HTTP_ERROR; m_nFileTotalSize = m_nContentLength; if (nRet == HTTP_PARTIAL) m_nFileTotalSize += nRange; return nRet; } if (m_bStopDownload) return HTTP_ERROR; if (nRet == HTTP_REDIRECT) { m_lpCallbackProc(MSG_DOWNLOAD_STATUS,STATUS_HOST_REDIRECT); //ٴη nRet = SendRequest(); if (nRet != HTTP_REDIRECT) return nRet; } return HTTP_ERROR; } void CHttpDownload::SetCalllbackProc(DownloadCallbackProc proc) { if(proc==NULL) m_lpCallbackProc=DefaultCallback; else m_lpCallbackProc = proc; } void CHttpDownload::SetProxy(const char *lpszProxyServer,unsigned short nProxyPort) { m_bProxy = true; strcpy(m_strProxyServer,lpszProxyServer); m_nProxyPort = nProxyPort; } void CHttpDownload::SetProxy(const char *lpszProxyServer,unsigned short nProxyPort, bool bProxyAuthorization, const char *lpszProxyUser, char *lpszProxyPwd) { m_bProxyAuthorization = bProxyAuthorization; strcpy(m_szProxyUser, lpszProxyUser); strcpy(m_szProxyPwd, lpszProxyPwd); SetProxy(lpszProxyServer, nProxyPort); } void CHttpDownload::StopDownload() { m_nErrorCode = ERROR_STOP_DOWNLOAD; m_bStopDownload = true; } int CHttpDownload::GetErrorCode() { return m_nErrorCode; } void CHttpDownload::StringMakeLower(char *str) { for (char *p=str; *p!='\0'; p++) { if (isupper(*p)) *p = tolower(*p); } } bool CHttpDownload::SendFinishRequest(const char *lpszFinishURL) { strcpy(m_strDownURL,lpszFinishURL); strcpy(m_strSaveFileName,"|"); m_bStopDownload = false; int nRet = SendRequest(); CloseSocket(); m_bStopDownload = true; return (nRet != HTTP_ERROR); } ================================================ FILE: Project/Code/Source/HttpDownload.h ================================================ // HttpDownload.h: interface for the CHttpDownload class. // ////////////////////////////////////////////////////////////////////// #ifndef _HTTPDOWNLOAD_H_ #define _HTTPDOWNLOAD_H_ #include //Ϣ const long MSG_DOWNLOAD_STATUS = 101; //״̬ const long MSG_FILE_TOTAL_SIZE = 102; //ҪصļܴС const long MSG_DOWNLOADED_SIZE = 103; //صļС //״̬Ϣ const long STATUS_RESOLVE_HOST = 201; // const long STATUS_CONNECT_HOST = 202; // const long STATUS_SEND_REQUEST = 203; // const long STATUS_RECV_RESPONSE = 204; //ȴӦ const long STATUS_HOST_REDIRECT = 205; //ض const long STATUS_DOWNLOAD_FILE = 206; //ʼļ const long STATUS_DOWN_FINISHED = 207; // //Ϣ const int ERROR_DOWNLOAD_NONE = 300; //ûд const int ERROR_RESOLVE_HOST = 301; //ʧ const int ERROR_CONNECT_HOST = 302; //ʧ const int ERROR_SEND_REQUEST = 303; //ʧ const int ERROR_RECV_RESPONSE = 304; //ȴӦ const int ERROR_RECEIVE_FILE = 305; //ļʱ const int ERROR_STOP_DOWNLOAD = 306; //ûֹ typedef bool (* DownloadCallbackProc)(long wParam, long lParam); /////////////////////////////////////////////////////////////////////////////////////////////// class CHttpDownload { public: CHttpDownload(); virtual ~CHttpDownload(); static bool StartupWinsock(); static void CleanupWinsock(); void SetCalllbackProc(DownloadCallbackProc proc); void SetProxy(const char *lpszProxyServer, unsigned short nProxyPort); void SetProxy(const char *lpszProxyServer, unsigned short nProxyPort, bool bProxyAuthorization, const char *lpszProxyUser, char *lpszProxyPwd); int DownloadToBuffer(const char *lpszDownloadURL, char *Buffer,int BufLen,int* ReturnedLength); int Download(const char *lpszDownloadURL,const char *lpszSaveFileName); void StopDownload(); bool SendFinishRequest(const char *lpszFinishURL); int GetErrorCode(); private: bool CreateSocket(); void CloseSocket(); int SendRequest(); bool GetHostIP(char *strServer); char *URLEncode(const char *lpszURL, char *szURL); bool ParseURL(const char *lpszURL,char *strServer,char *strObject); int GetInformation(const char *lpszReceived,long &nHeaderLength,long &nContentLength,time_t &TimeLastModified); void ConvertTime(const char *lpszTime,time_t &TimeLastModified); void StringMakeLower(char *str); private: unsigned int m_hSocket; char m_strDownURL[4096]; char m_strServer[128]; char m_strSaveFileName[260]; long m_nHeaderLength; long m_nContentLength; long m_nFileTotalSize; time_t m_TimeLastModified; bool m_bStopDownload; int m_nErrorCode; //ص DownloadCallbackProc m_lpCallbackProc; //ʹô bool m_bProxy; char m_strProxyServer[128]; unsigned short m_nProxyPort; bool m_bProxyAuthorization; char m_szProxyUser[128]; char m_szProxyPwd[128]; }; #endif //_HTTPDOWNLOAD_H_ //#define IBM ================================================ FILE: Project/Code/Source/HttpUpload.cpp ================================================ #include "stdafx.h" #include "HttpUpload.h" CHttpUpload::CHttpUpload() { WSADATA wsaData; WORD wVersionRequested = MAKEWORD(2, 2); WSAStartup(wVersionRequested, &wsaData); DataVarInit(); } CHttpUpload::~CHttpUpload() { WSACleanup(); } void CHttpUpload::DataVarInit() { m_hSock = INVALID_SOCKET; m_nSvrPort = 80; m_bChunkTransferEncoding = FALSE; memset(m_szRetData, 0, sizeof(m_szRetData)); memset(m_szReqObj, 0, sizeof(m_szReqObj)); memset(m_szSvrName, 0, sizeof(m_szSvrName)); } int CHttpUpload::Init(const char* cszUrl, int nUrlLen) { DataVarInit(); if(!UrlParse(cszUrl, nUrlLen)) { return ERROR_CODE_ELSE; } if (!CreateSock()) { return ERROR_CODE_ELSE; } if (!ConnectSvr()) { return ERROR_CODE_CONNECT_FAILURE; } return 0; } BOOL CHttpUpload::CreateSock() { if (m_hSock == INVALID_SOCKET) { m_hSock = socket(AF_INET, SOCK_STREAM, 0); if (m_hSock == INVALID_SOCKET) return FALSE; } return TRUE; } BOOL CHttpUpload::ConnectSvr() { if (m_hSock == INVALID_SOCKET) return FALSE; sockaddr_in addrSvr; memset(&addrSvr, 0, sizeof(addrSvr)); PHOSTENT pHost = gethostbyname(m_szSvrName); if (pHost == NULL) return FALSE; addrSvr.sin_family = AF_INET; addrSvr.sin_port = htons((u_short)m_nSvrPort); addrSvr.sin_addr.s_addr = *(ULONG*)pHost->h_addr_list[0]; if (SOCKET_ERROR == connect(m_hSock, (sockaddr*)&addrSvr, sizeof(addrSvr))) return FALSE; return TRUE; } BOOL CHttpUpload::AddFormTextField(const char* cszFieldName, const char* cszValue) { if ((cszFieldName == NULL) || (cszValue == 0)) return FALSE; char szSend[2 * 1024]; sprintf_s(szSend,sizeof(szSend), "--FORM_BOUNDARY\r\ncontent-disposition: form-data; name=\"%s\"\r\n\r\n", cszFieldName); strcat_s(szSend,sizeof(szSend), cszValue); strcat_s(szSend,sizeof(szSend), "\r\n"); m_strFormDataContent += szSend; return TRUE; } BOOL CHttpUpload::AddFormDataEndFlag() { m_strFormDataContent += "--FORM_BOUNDARY--\r\n"; return TRUE; } BOOL CHttpUpload::AddFormFileField( const char* cszFieldName, const char* cszFileName, BOOL bIsBinary /* = FALSE */ ) { if ((cszFieldName == NULL) || (cszFileName == NULL)) return FALSE; //content type HKEY hKEY; char* pszFileExt; char szContentType[80] = {0}; DWORD dwLen; dwLen = sizeof(szContentType); pszFileExt = strrchr((char*)cszFileName, '.'); if(::RegOpenKeyEx(HKEY_CLASSES_ROOT, pszFileExt, 0, KEY_QUERY_VALUE, &hKEY)==ERROR_SUCCESS) { if(::RegQueryValueEx(hKEY, TEXT("Content Type"), NULL, NULL, (LPBYTE)szContentType, (unsigned long*)&dwLen)!=ERROR_SUCCESS) strcpy_s(szContentType,sizeof(szContentType), "application/octet-stream"); ::RegCloseKey(hKEY); } else strcpy_s(szContentType, sizeof(szContentType),"application/octet-stream"); //form field header char szSend[1024] = {0}; char szFilename[100] = {0}; strcpy_s(szFilename, sizeof(szFilename),strrchr(cszFileName, '\\') + 1); sprintf_s(szSend, sizeof(szSend), "--FORM_BOUNDARY\r\ncontent-disposition: form-data; name=\"%s\"; filename=\"%s\"\r\nContent-Type: %s\r\n", cszFieldName, szFilename, szContentType); if (bIsBinary) strcat_s(szSend, sizeof(szSend),"Content-Transfer-Encoding: Base64\r\n"); strcat_s(szSend,sizeof(szSend), "\r\n"); m_strFormDataContent += szSend; //file content encoded with base64 BYTE pbDataBuf[3] = {0}; char szEncodeStr[5]; DWORD dwBytesRead; int nCurPosValue = 0; HANDLE hFile = ::CreateFile(cszFileName, GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) return FALSE; while(TRUE) { memset(szEncodeStr, 0, sizeof(szEncodeStr)); if (0 == ::ReadFile(hFile, (LPVOID)pbDataBuf, 3, &dwBytesRead, NULL)) return FALSE; if (bIsBinary) //encode data { switch(dwBytesRead) { case 3: nCurPosValue = (pbDataBuf[0] >> 2) & (0x3F); szEncodeStr[0] = BASE64_Alphabet[nCurPosValue]; //first 6-bits nCurPosValue = ((pbDataBuf[0] << 4) & (0x30)) + ((pbDataBuf[1] >> 4) & (0x0F)); szEncodeStr[1] = BASE64_Alphabet[nCurPosValue]; //second 6-bits nCurPosValue = ((pbDataBuf[1] << 2) & (0x3C)) + ((pbDataBuf[2] >> 6) & (0x03)); szEncodeStr[2] = BASE64_Alphabet[nCurPosValue]; //third 6-bits nCurPosValue = pbDataBuf[2] & (0x3F); szEncodeStr[3] = BASE64_Alphabet[nCurPosValue]; //forth 6-bits szEncodeStr[4] = 0; break; case 2: nCurPosValue = (pbDataBuf[0] >> 2) & (0x3F); szEncodeStr[0] = BASE64_Alphabet[nCurPosValue]; //first 6-bits nCurPosValue = ((pbDataBuf[0] << 4) & (0x30)) + ((pbDataBuf[1] >> 4) & (0x0F)); szEncodeStr[1] = BASE64_Alphabet[nCurPosValue]; //second 6-bits nCurPosValue = (pbDataBuf[1] << 2) & (0x3C); szEncodeStr[2] = BASE64_Alphabet[nCurPosValue]; //third 6-bits szEncodeStr[3] = '='; szEncodeStr[4] = 0; break; case 1: nCurPosValue = (pbDataBuf[0] >> 2) & (0x3F); szEncodeStr[0] = BASE64_Alphabet[nCurPosValue]; //first 6-bits nCurPosValue = (pbDataBuf[0] << 4) & (0x30); szEncodeStr[1] = BASE64_Alphabet[nCurPosValue]; //second 6-bits szEncodeStr[2] = '='; szEncodeStr[3] = '='; szEncodeStr[4] = 0; break; default: szEncodeStr[0] = 0; } } else { if (dwBytesRead == 0) szEncodeStr[0] = 0; else { memset(szEncodeStr, 0, sizeof(szEncodeStr)); memcpy(szEncodeStr, pbDataBuf, dwBytesRead); } } if (szEncodeStr[0] == 0) { ::CloseHandle(hFile); hFile = INVALID_HANDLE_VALUE; break; } m_strFormDataContent += szEncodeStr; } m_strFormDataContent += "\r\n"; if (hFile != INVALID_HANDLE_VALUE) ::CloseHandle(hFile); return TRUE; } BOOL CHttpUpload::Request() { char szSend[1024] = {0}; int nLen; AddFormDataEndFlag(); //request web server sprintf_s(szSend, sizeof(szSend),"POST %s HTTP/1.1\r\nHOST: %s\r\nContent-Length: %d\r\n", m_szReqObj, m_szSvrName, m_strFormDataContent.size()); strcat_s(szSend, sizeof(szSend),"Connection: close\r\n"); strcat_s(szSend, sizeof(szSend),"Content-type: multipart/form-data, boundary=FORM_BOUNDARY\r\n\r\n"); nLen = send(m_hSock, szSend, (int)strlen(szSend), 0); if ((nLen == SOCKET_ERROR) || (nLen < (int)strlen(szSend))) return FALSE; AMLOGDEVINFO("%s", szSend); nLen = send(m_hSock, (const char*)m_strFormDataContent.c_str(), (int)m_strFormDataContent.size(), 0); if ((nLen == SOCKET_ERROR) || (nLen < (int)m_strFormDataContent.size())) return FALSE; AMLOGDEVINFO("%s",m_strFormDataContent.c_str()); return TRUE; } char* CHttpUpload::RetRecvDataPt() { if (!RecvResponse()) { memset(m_szRetData, 0, sizeof(m_szRetData)); AMLOGDEVINFO("RetRecvDataPt = %s",m_szRetData); } if (m_szRetData[0] == 0) return NULL; return m_szRetData; } BOOL CHttpUpload::RecvResponse() { char szRetHeader[1024] = {0}; int nLen; char szRecvBuf[1024] = {0}; char* pTemp = NULL; //receive header while(TRUE) { nLen = recv(m_hSock, szRecvBuf, sizeof(szRecvBuf), 0); if (nLen == SOCKET_ERROR) return FALSE; AMLOGDEVINFO("%s",szRecvBuf); pTemp = strstr(szRecvBuf, "\r\n\r\n"); if (pTemp != NULL) //header receive finish { *pTemp = 0; strcat_s(szRetHeader,sizeof(szRetHeader), szRecvBuf); pTemp += 4; nLen = nLen - (int)strlen(szRecvBuf) - 4; memcpy((void*)m_szRetData, pTemp, nLen); break; } strcat_s(szRetHeader, sizeof(szRetHeader),szRecvBuf); } //response header parse if (!ParseRetHeader(szRetHeader, (int)strlen(szRetHeader))) return FALSE; while(TRUE) { memset(szRecvBuf, 0, sizeof(szRecvBuf)); nLen = recv(m_hSock, szRecvBuf, sizeof(szRecvBuf), 0); if (nLen == SOCKET_ERROR) return FALSE; if (nLen == 0) //data receive finish break; strcat_s(m_szRetData,sizeof(m_szRetData), szRecvBuf); } //chunk process if (m_bChunkTransferEncoding) { char szSectionLen[50]; int nSectionLen; char* pEndPos = NULL; char* pStartPos = NULL; int nDataLenCopyed = 0; pStartPos = m_szRetData; while(*pStartPos != 0) { pEndPos = strstr(pStartPos, "\r\n"); memset(szSectionLen, 0, sizeof(szSectionLen)); strcpy_s(szSectionLen,sizeof(szSectionLen), "0x"); memcpy(szSectionLen + 2, pStartPos, pEndPos - pStartPos); nSectionLen = HexStrToInt(szSectionLen, (int)strlen(szSectionLen)); if (nSectionLen == 0) break; pStartPos = pEndPos + 2; pEndPos = pStartPos + nSectionLen; memcpy(m_szRetData + nDataLenCopyed, pStartPos, pEndPos - pStartPos); nDataLenCopyed += nSectionLen; pStartPos = pEndPos + 2; } *(m_szRetData + nDataLenCopyed) = 0; } if (m_hSock != INVALID_SOCKET) { ::closesocket(m_hSock); m_hSock = INVALID_SOCKET; } return TRUE; } BOOL CHttpUpload::UrlParse(const char* cszUrl, int nUrlLen) { if ((cszUrl == NULL) || (nUrlLen == 0)) return FALSE; if (_strnicmp(cszUrl, "http://", strlen("http://"))) return FALSE; char szTemp[1024] = {0}; char* pPos = (char*)cszUrl; pPos += 7; strcpy_s(szTemp, sizeof(szTemp),pPos); pPos = strchr(szTemp, '/'); strcpy_s(m_szReqObj,sizeof(m_szReqObj), pPos); //get object requested *pPos = 0; strcpy_s(m_szSvrName,sizeof(m_szSvrName),szTemp);//get server name return TRUE; } BOOL CHttpUpload::ParseRetHeader(const char* cszRetHeader, int nHeaderLen) { if ((cszRetHeader == NULL) || (nHeaderLen == 0)) return FALSE; char* pTemp = NULL; char szStatusStr[4] = {0}; int nStatusCode; //response code pTemp = strchr((char*)cszRetHeader, ' '); pTemp++; memcpy((void*)szStatusStr, (void*)pTemp, 3); nStatusCode = atoi(szStatusStr); if ((nStatusCode < 200) || (nStatusCode >= 300)) return FALSE; //chunking ? if (strstr(cszRetHeader, "Transfer-Encoding: chunked\r\n")) m_bChunkTransferEncoding = TRUE; else m_bChunkTransferEncoding = FALSE; return TRUE; } /* first: 0xabc101 second: 10000001 */ int CHttpUpload::HexStrToInt(const char* cszHexStr, int nStrLen) { if ((cszHexStr == NULL) || (nStrLen == 0)) return -1; const char* pstr=cszHexStr; int nResult = 0,i; for(i = 0; cszHexStr[i];i++) { if(cszHexStr[i]=='x' || cszHexStr[i]=='X') { pstr=&cszHexStr[i+1]; break; } } for(i = 0; pstr[i];i++) { if((pstr[i]>='a'&&pstr[i]<='f')) { nResult = nResult*16; nResult += pstr[i]-'a'+10; } else if((pstr[i]>='A'&&pstr[i]<='F')) { nResult = nResult*16; nResult += pstr[i]-'A'+10; } else if((pstr[i]>='0'&&pstr[i]<='9')) { nResult = nResult*16+pstr[i]-'0'; } } return nResult; } ================================================ FILE: Project/Code/Source/HttpUpload.h ================================================ #ifndef UPLOAD_H #define UPLOAD_H #include #include using namespace std; #pragma comment(lib, "Ws2_32.lib") const int ERROR_CODE_CONNECT_FAILURE = -1; const int ERROR_CODE_HTTP_REQUEST_FAILURE = -2; const int ERROR_CODE_ELSE = -3; static char* BASE64_Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; #define AMLOGDEVINFO(x,y) class CHttpUpload { public: CHttpUpload(); ~CHttpUpload(); BOOL Init(const char* cszUrl, int nUrlLen); //add text content BOOL AddFormTextField( const char* cszFieldName, //the field name in form const char* cszValue //field value ); //add a file BOOL AddFormFileField( const char* cszFieldName, //the field name in form const char* cszFileName, //the file name which need upload BOOL bIsBinary = FALSE ); //upload request BOOL Request(); //return data (that received) pointer char* RetRecvDataPt(); protected: void DataVarInit(); BOOL UrlParse(const char* cszUrl, int nUrlLen); //url parse BOOL CreateSock(); BOOL ConnectSvr(); BOOL AddFormDataEndFlag(); BOOL RecvResponse(); BOOL ParseRetHeader(const char* cszRetHeader, int nHeaderLen); int HexStrToInt(const char* cszHexStr, int nStrLen); protected: SOCKET m_hSock; char m_szSvrName[1024]; //web server name int m_nSvrPort; //web server port char m_szReqObj[1024]; //request object BOOL m_bChunkTransferEncoding; //Is Transfer-Encoding: chunked ? char m_szRetData[1024 * 5]; //receive data(not include header) string m_strFormDataContent; //form data encoded }; #endif ================================================ FILE: Project/Code/Source/INIFile.cpp ================================================ #include "StdAfx.h" #include "INIFile.h" NAME_SPACE_BEGIN CINIFile::CINIFile() { } CINIFile::~CINIFile() { } bool CodeGetPrivateProfileString(IN LPCSTR lpAppName,IN LPCSTR lpKeyName,IN LPCSTR lpDefault,OUT LPSTR lpReturnedString,IN DWORD nSize,IN LPCSTR lpFileName) { CTXTFile TxtFile; char * pLine; char* pValue,*pNewValue; bool bSectionFind; char* pSectionReturnName; DWORD pSectionReturnNameLen; DWORD before=0,after=0; DWORD offset=0; char* lpDestKeyName; DWORD DestKeyNameLen; DWORD ValueLen; if(TxtFile.Open(lpFileName)==false) return false; TTXTStrList::IT BeginIt,EndIt,SectionIt; BeginIt = TxtFile.m_StrList.Begin(); EndIt = TxtFile.m_StrList.End(); bSectionFind=false; SectionIt=EndIt; for(;BeginIt!=EndIt;BeginIt++) { pLine=*BeginIt; if(FindSection(pLine,(const char*)lpAppName,&pSectionReturnName,&pSectionReturnNameLen)==false) continue; if(lpAppName) { BeginIt++; SectionIt=BeginIt; break; } if(lpReturnedString) { if(nSize>pSectionReturnNameLen) { TStrNCpy(&lpReturnedString[offset],pSectionReturnName,pSectionReturnNameLen); offset+=pSectionReturnNameLen; lpReturnedString[offset]=0; offset++; nSize-=(pSectionReturnNameLen+1); bSectionFind=true; continue; } } return bSectionFind; } if(lpAppName==NULL)// section name { TxtFile.Close(); return bSectionFind; } if(SectionIt!=EndIt) { for(;BeginIt!=EndIt;BeginIt++)//ҵһ section Ŀʼ { pLine=*BeginIt; if(FindSection(pLine,NULL)==false) continue; EndIt=BeginIt; break; } } offset=0; for(;SectionIt!=EndIt;SectionIt++) { pLine=*SectionIt; if(FindKey(pLine,lpKeyName,&lpDestKeyName,&DestKeyNameLen)==false) continue; if(lpKeyName==NULL)// key name. { if(lpReturnedString) { if(nSize>DestKeyNameLen) { TStrNCpy(&lpReturnedString[offset],lpDestKeyName,DestKeyNameLen); offset+=DestKeyNameLen; lpReturnedString[offset]=0; offset++; nSize-=(DestKeyNameLen+1); bSectionFind=true; continue; } } continue; } pValue = TStrChr(&lpDestKeyName[DestKeyNameLen],'='); pNewValue=TStrTrim(pValue+1,&ValueLen); bSectionFind=true; if(lpReturnedString) { if(nSize>ValueLen) { TStrNCpy(lpReturnedString,pNewValue,ValueLen); lpReturnedString[ValueLen]=0; } } break; } if(lpKeyName==NULL) { TxtFile.Close(); return bSectionFind; } if(bSectionFind==false) { if(lpReturnedString&&nSize) { if(lpDefault) { int DefaultLen=TStrLen(lpDefault); if(DefaultLen<(int)nSize) TStrCpy(lpReturnedString,lpDefault); else TStrNCpy(lpReturnedString,lpDefault,nSize); lpReturnedString[nSize-1]=0; } } } TxtFile.Close(); return bSectionFind; } bool FindKey(const char*pLine,const char* KeyName,char** pDestKeyName,DWORD* dwDestKeyNameLen) { const char* pFindKey,*pValue; int len; pFindKey = TStrTrimBefore(pLine,NULL); if(KeyName) { len = TStrLen(KeyName); if(TStrNICmp(pFindKey,KeyName,len)) return false; pValue=TStrTrimBefore(&pFindKey[len],NULL); if(pValue[0]!='=') return false; if(pDestKeyName) *pDestKeyName=(char*)pFindKey; if(dwDestKeyNameLen) *dwDestKeyNameLen=len; return true; } if(pFindKey[0]=='='||pFindKey[0]==0) return false; pValue=TStrChr(pFindKey,'='); if(pValue==NULL) return false; if(pDestKeyName) *pDestKeyName=(char*)pFindKey; if(dwDestKeyNameLen) { len=*(int*)&pValue-*(int*)&pFindKey; len--; for(;len;len--) if(pFindKey[len]!=' '&&pFindKey[len]!= '\t') break; len++; *dwDestKeyNameLen=len; } return true; } bool FindSection(const char* pLine,const char* SectionName,char** pDestSectionName,DWORD* dwDestSectionNameLen) { bool bSectionFind=false; int i,j,m,n; for(i = 0;pLine[i];i++) if(pLine[i]==' '||pLine[i]=='\t') continue; else if(pLine[i]!='[') break; else { i++; if(!pLine[i]) break; for(j =i; pLine[j]; j++)//˵ո { if(pLine[j]==' '||pLine[j]=='\t') continue; break; } if(!pLine[j]||pLine[j]==']')//жǷΪ [ ] break; n = j; //n ʱΪ section name Ŀʼλ for(;pLine[j]&&pLine[j]!=']';j++); if(!pLine[j]) break; for(m=j-1;m>n;m--)//˵ section name ĺĿո if(pLine[m]==' '||pLine[m]=='\t') continue; else break; if(SectionName)//ֵ section Ƚ { if(TStrNICmp(&pLine[n],SectionName,m-n+1)) break; } j++; for(;pLine[j];j++) { if(pLine[j]==' '||pLine[j]=='\t') continue; break; } if(pLine[j]) break; if(pDestSectionName) { *pDestSectionName=(char*)&pLine[n]; } if(dwDestSectionNameLen) *dwDestSectionNameLen=m-n+1; return true; } return bSectionFind; } bool CodeWritePrivateProfileString( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpString, IN LPCSTR lpFileName ) { CTXTFile TxtFile; char * pLine; char* pValue; bool bSectionFind; char* pSectionReturnName; DWORD pSectionReturnNameLen; DWORD before=0,after=0; DWORD offset=0; char* lpDestKeyName; DWORD DestKeyNameLen; int len; if(lpAppName==NULL) return false; if(TxtFile.Open(lpFileName)==false) return false; TTXTStrList::IT BeginIt,EndIt,SectionIt; BeginIt = TxtFile.m_StrList.Begin(); EndIt = TxtFile.m_StrList.End(); bSectionFind=false; SectionIt=EndIt; for(;BeginIt!=EndIt;BeginIt++) { pLine=*BeginIt; if(FindSection(pLine,(const char*)lpAppName,&pSectionReturnName,&pSectionReturnNameLen)==false) continue; BeginIt++; SectionIt=BeginIt; bSectionFind=true; break; } if(bSectionFind==false)// section { len=TStrLen(lpAppName)+1+1+3;//1 == [ 1 == ] 3 == 0d0a00 pValue=new char[len]; TStrCpy(pValue,"["); TStrCat(pValue,lpAppName); TStrCat(pValue,"]"); TxtFile.m_StrList.InsertBefore(EndIt,pValue); EndIt = TxtFile.m_StrList.End(); SectionIt=EndIt; } bSectionFind=false; if(SectionIt!=EndIt) { for(;BeginIt!=EndIt;BeginIt++)//ҵһ section Ŀʼ { pLine=*BeginIt; if(FindSection(pLine,NULL)==false) continue; EndIt=BeginIt; break; } } offset=0; if(lpKeyName==NULL) { for(;SectionIt!=EndIt;SectionIt++) { delete *SectionIt; SectionIt=TxtFile.m_StrList.Remove(SectionIt); bSectionFind=true; } if(bSectionFind) { TxtFile.Save(lpFileName); } } else { BeginIt=SectionIt; for(;SectionIt!=EndIt;SectionIt++) { pLine=*SectionIt; if(FindKey(pLine,lpKeyName,&lpDestKeyName,&DestKeyNameLen)==false) continue; bSectionFind=true; delete *SectionIt;//ܻ⣬ windows CTXTFileڶ̬ʱ*SectionItָ ̬еĶѵڴ棬 //delete exeĶ SectionIt=TxtFile.m_StrList.Remove(SectionIt); if(lpString==NULL) { break; } len = TStrLen(lpKeyName)+1+TStrLen(lpString)+3; pValue=new char[len]; TStrCpy(pValue,lpKeyName); TStrCat(pValue,"="); TStrCat(pValue,lpString); //TStrCat(pValue,"\r\n"); TxtFile.m_StrList.InsertAfter(SectionIt,pValue); break; } if(bSectionFind) { TxtFile.Save(lpFileName); } else { if(lpString)//һµļ { len = TStrLen(lpKeyName)+1+TStrLen(lpString)+3; pValue=new char[len]; TStrCpy(pValue,lpKeyName); TStrCat(pValue,"="); TStrCat(pValue,lpString); //TStrCat(pValue,"\r\n"); TxtFile.m_StrList.InsertBefore(BeginIt,pValue); TxtFile.Save(lpFileName); bSectionFind=true; } } } TxtFile.Close(); return bSectionFind; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/INIFile.h ================================================ #ifndef _INIFILE_H_ #define _INIFILE_H_ #include "Define.h" #include "TXTFile.h" NAME_SPACE_BEGIN typedef TList CommentSeparatorList; class CINIFile:public CTXTFile { CommentSeparatorList m_CommentSeparatorStrList; TList m_SectionList; public: CINIFile(); ~CINIFile(); bool GetString(IN char* lpSectionName,IN char*lpKeyName,OUT char *lpString); bool SetString(IN char* lpSectionName,IN char*lpKeyName,IN char*lpString); bool IsSectionExist(IN char* lpSectionName); bool IsKeyExist(IN char* lpSectionName,IN char*lpKeyName); bool CreateSection(IN char* lpSectionName); bool DeleteSection(IN char* lpSectionName); void AddCommentSeparatorStr(IN char* SeparatorStr); void DelCommentSeparatorStr(IN char* SeparatorStr); }; bool FindKey(const char*pLine,const char* KeyName,char** pDestKeyName=NULL,DWORD* dwDestKeyNameLen=NULL); bool FindSection(const char* pLine,const char* SectionName,char** pDestSectionName=NULL,DWORD* dwDestSectionNameLen=NULL); bool CodeWritePrivateProfileString( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpString, IN LPCSTR lpFileName ); bool CodeGetPrivateProfileString( IN LPCSTR lpAppName, IN LPCSTR lpKeyName, IN LPCSTR lpDefault, OUT LPSTR lpReturnedString, IN DWORD nSize, IN LPCSTR lpFileName ); NAME_SPACE_END #endif // _INIFILE_H_ ================================================ FILE: Project/Code/Source/ImageFile.cpp ================================================ #include "StdAfx.h" #include "ImageFile.h" NAME_SPACE_BEGIN CImageFile::CImageFile() { m_hFile = NULL; m_FileType = FILE_TYPE_BIN; m_pFileIO = gpFileIO; m_Buffer=NULL; m_FileObjType = FILE_OBJ_TYPE_NULL; m_FilePointer = 0; m_ReadMemory = (RWProc)StaticReadMemory; m_RMObj = this; m_WriteMemory = (RWProc)StaticWriteMemory; m_WMObj = this; } void CImageFile::InitParam() { m_PageAttribute=MP_READWRITE | MP_IMAGE; m_ImageBase = m_BaseOffset = m_EntryPoint = 0; m_ImageHighBase=m_ImageSize=m_FileSize; m_FileType=FILE_TYPE_BIN; m_FilePointer=0; } bool CImageFile::Create(IN PCSTR FileName,IN ULSIZE Size) { if(m_pFileIO==NULL) m_pFileIO = gpFileIO; if(m_pFileIO->CreateFile(FileName,&m_hFile)==false) return false; m_ImageName=FileName; m_FileObjType=FILE_OBJ_TYPE_OPEN_FOR_WRITE; SetFileLength(Size); GetFileLength(); InitParam(); return true; } bool CImageFile::Create(IN ULSIZE Size,IN BYTE*Buffer,bool bCompress) { if(Buffer==NULL || bCompress) { m_Buffer=new BYTE[Size]; m_FileObjType |= FILE_OBJ_TYPE_MEMORY_IMAGE; } else { m_Buffer = Buffer; m_FileObjType |= FILE_OBJ_TYPE_USER_MEMORY_IMAGE; } if(bCompress) { #ifdef _CODE_COMPRESS_H_ if(Buffer==NULL || Size==0) return false; if(Decompress(Buffer,Size,m_Buffer)!=Size) { delete m_Buffer; m_FileObjType &= ~FILE_OBJ_TYPE_MEMORY_IMAGE; return false; } #else return false; #endif } m_FileSize = Size; m_FilePointer = 0; InitParam(); return true; } bool CImageFile::Open(IN PCSTR FileName,IN HANDLE*pHandleOpen) { if(m_pFileIO==NULL) m_pFileIO = gpFileIO; if(FileName) { m_FileObjType = FILE_OBJ_TYPE_NULL; if(m_pFileIO->OpenFile(FileName,&m_hFile)==false) return false; m_ImageName=FileName; } else { m_FileObjType |= FILE_OBJ_TYPE_OPEN_FOR_WRITE; if(m_FileObjType&FILE_OBJ_TYPE_MEMORY_IMAGE_MASK) return true; m_hFile=*pHandleOpen; m_ImageName.Empty(); m_FileObjType |= FILE_OBJ_TYPE_OPEN_BY_HANDLE; } m_FilePointer = 0; m_FileSize=(ULSIZE)m_pFileIO->GetFileLength(m_hFile); InitParam(); return true; } void CImageFile::Close() { m_ImageName.Empty(); if(m_FileObjType&FILE_OBJ_TYPE_MEMORY_IMAGE) SafeDelete(m_Buffer); if((m_FileObjType&FILE_OBJ_TYPE_OPEN_BY_HANDLE)==0) { m_pFileIO->CloseHandle(m_hFile); m_hFile=NULL; } m_ImageHighBase = m_ImageBase = 0; m_ImageSize = 0; m_FilePointer = 0; if(m_FileObjType&FILE_OBJ_TYPE_AUTO_DELETE) delete this; else m_FileObjType=FILE_OBJ_TYPE_NULL; } void CImageFile::ChangeFileIO(IN CFileIO*pFileIO) { m_pFileIO = pFileIO; } bool CImageFile::ReadFile(IN ULPOS Pos,OUT void* Buffer,IN ULSIZE Size) { ULSIZE RDSize; if(m_Buffer) { if(Pos>=m_FileSize) return false; RDSize = m_FileSize-Pos; MAX_LIMIT(RDSize,Size); memcpy(Buffer,RT_PBYTE(m_Buffer,Pos+m_BaseOffset),RDSize); m_FilePointer=Pos+RDSize; return true; } if(m_FileSize==0) GetFileLength(); if(Pos>m_FileSize) return false; RDSize=m_pFileIO->ReadFile(m_hFile,Buffer,Size,Pos+m_BaseOffset); m_FilePointer=Pos+m_BaseOffset+RDSize; return RDSize==Size; } bool CImageFile::WriteFile(IN ULPOS Pos,IN void* Buffer,IN ULSIZE Size) { ULSIZE WTSize; if(m_Buffer) { if(Pos>=m_FileSize) return false; WTSize = m_FileSize-Pos; MAX_LIMIT(WTSize,Size); memcpy(RT_PBYTE(m_Buffer,Pos+m_BaseOffset),Buffer,WTSize); m_FilePointer=Pos+WTSize; return true; } if((m_FileObjType&FILE_OBJ_TYPE_OPEN_FOR_WRITE)==0) { m_pFileIO->CloseHandle(m_hFile); if(m_pFileIO->OpenFile(m_ImageName,&m_hFile,FIO_WRITE|FIO_SHARE_READ)==false) return false; m_FileObjType |= FILE_OBJ_TYPE_OPEN_FOR_WRITE; } WTSize=m_pFileIO->WriteFile(m_hFile,Buffer,Size,Pos+m_BaseOffset); m_FilePointer=Pos+m_BaseOffset+WTSize; if(m_FileSize=m_FileSize) return false; RDSize = m_FileSize-m_FilePointer; MAX_LIMIT(RDSize,Size); memcpy(Buffer,RT_PBYTE(m_Buffer,m_FilePointer),RDSize); m_FilePointer+=RDSize; return true; } RDSize = m_pFileIO->ReadFile(m_hFile,Buffer,Size,m_FilePointer); m_FilePointer+=RDSize; return RDSize == Size; } bool CImageFile::WriteFile(IN void* Buffer,IN ULSIZE Size) { ULSIZE WTSize; if(m_Buffer) { if(m_FilePointer>=m_FileSize) return false; WTSize = m_FileSize-m_FilePointer; MAX_LIMIT(WTSize,Size); memcpy(RT_PBYTE(m_Buffer,m_FilePointer),Buffer,WTSize); m_FilePointer+=WTSize; return true; } WTSize = m_pFileIO->WriteFile(m_hFile,Buffer,Size,m_FilePointer); m_FilePointer+=WTSize; if(m_FileSizem_FileSize) return false; TailSize = m_FileSize - Pos - Size; if(TailSize <= MAX_FILE_OPT_SIZE) { Buffer = new BYTE[TailSize]; if(Buffer==NULL) return false; ReadFile(Pos+Size,Buffer,TailSize); WriteFile(Pos,Buffer,TailSize); SetFileLength(Pos+TailSize); delete Buffer; } else { Buffer = new BYTE[MAX_FILE_OPT_SIZE]; if(Buffer==NULL) return false; nBlock = PAGE_COUNT(TailSize,MAX_FILE_OPT_SIZE); Offset = 0; LeftSize = TailSize%MAX_FILE_OPT_SIZE; for(int n=1;nDeleteFile(m_ImageName); } ULSIZE CImageFile::ReadString(IN ULPOS Pos,OUT CHAR* Buffer,IN ULSIZE MaxLen,IN ULSIZE AlignLen) { ULPOS Offset; ULSIZE Len; Offset=0; if(MaxLen==0) return 0; while(OffsetGetFileLength(m_hFile); return m_FileSize; } bool CImageFile::SetFileLength(IN ULSIZE Length) { if(m_Buffer) return false; if((m_FileObjType&FILE_OBJ_TYPE_OPEN_FOR_WRITE)==0) { m_pFileIO->CloseHandle(m_hFile); if(!m_pFileIO->OpenFile(m_ImageName,&m_hFile,FIO_WRITE | FIO_SHARE_READ)) return false; m_FileObjType|=FILE_OBJ_TYPE_OPEN_FOR_WRITE; } if(m_pFileIO->SetFileLength(m_hFile,Length)==false) return false; m_FileSize = (ULSIZE)m_pFileIO->GetFileLength(m_hFile); return true; } ULSIZE CImageFile::ReadImageMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size) { ////ü/////////////////////////////////// if(Address < m_ImageBase || Address>= m_ImageHighBase) return 0; if(Address< m_ImageHighBase && Address+Size >m_ImageHighBase) Size=m_ImageHighBase-Address; ////ü/////////////////////////////////// ReadFile(Address-m_ImageBase,Buffer,Size); return Size; } ULSIZE CImageFile::WriteImageMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size) { ////ü/////////////////////////////////// if(Address < m_ImageBase || Address>= m_ImageHighBase) return 0; if(Address< m_ImageHighBase && Address+Size >m_ImageHighBase) Size=m_ImageHighBase-Address; ////ü/////////////////////////////////// WriteFile(Address-m_ImageBase,Buffer,Size); return Size; } bool CImageFile::LoadPage(IN ULPOS Address,OUT void* Buffer) { ZeroMemory(Buffer,MP_SIZE); ReadMemory(Address-m_ImageBase,Buffer,MP_SIZE); return true; } bool CImageFile::SavePage(IN ULPOS Address,OUT void* Buffer) { return WriteFile(Address-m_ImageBase,Buffer,MP_SIZE); } DWORD CImageFile::GetPageAttribute(IN ULPOS Address) { return m_PageAttribute; } void CImageFile::RelocLoad(IN ULPOS BaseAddr) { ULPOS Delta; Delta=BaseAddr-m_ImageBase; m_ImageBase=BaseAddr; m_ImageHighBase+=Delta; m_EntryPoint+=Delta; } void CImageFile::SetRMProc(IN RWProc RMFunc,IN void*RMObj) { m_ReadMemory = RMFunc; m_RMObj = RMObj; } void CImageFile::SetWMProc(IN RWProc WMFunc,IN void*WMObj) { m_WriteMemory = WMFunc; m_WMObj = WMObj; } ULSIZE CImageFile::ReadMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size) { if(m_ReadMemory==NULL) return 0; return m_ReadMemory(Address,Buffer,Size,m_RMObj); } ULSIZE CImageFile::WriteMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size) { if(m_WriteMemory==NULL) return 0; return m_WriteMemory(Address,Buffer,Size,m_WMObj); } ULSIZE CImageFile::StaticReadMemory(IN ULPOS Address,IN void*Buffer,IN ULSIZE Size,IN void*RMObj) { return ((CImageFile*)RMObj)->ReadImageMemory(Address,Buffer,Size); } ULSIZE CImageFile::StaticWriteMemory(IN ULPOS Address,IN void*Buffer,IN ULSIZE Size,IN void*RMObj) { return ((CImageFile*)RMObj)->WriteImageMemory(Address,Buffer,Size); } ULSIZE CImageFile::StaticReadRealMemory(IN ULPOS Address,IN void*Buffer,IN ULSIZE Size,IN void*RMObj) { memcpy(Buffer,NUM_TO_PTR(Address),Size); return Size; } ULSIZE CImageFile::StaticWriteRealMemory(IN ULPOS Address,IN void*Buffer,IN ULSIZE Size,IN void*RMObj) { memcpy(NUM_TO_PTR(Address),Buffer,Size); return Size; } bool CImageFile::IsInvalidAddress(ULPOS Address) { return Address=m_ImageHighBase; } int CImageFileStream::Puts(void*Buffer,int Size) { return WriteFile(Buffer,Size)?Size:0; } int CImageFileStream::Gets(void*Buffer,int Size) { return ReadFile(Buffer,Size)?Size:0; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/ImageFile.h ================================================ /////////////////////////////////////////////////////// //image file //coded by Finaldoom /////////////////////////////////////////////////////// #ifndef _IMAGEFILE_H_ #define _IMAGEFILE_H_ #include "FileIO.h" NAME_SPACE_BEGIN typedef ULSIZE (*RWProc)(ULPOS Address,void*Buffer,ULSIZE Size,void*Param); #define MAX_FILE_OPT_SIZE 0x100000 ///////////////////////////////////////////////////////////////////////////////////////////////////// //File type define #define FILE_TYPE_ERROR 0x00000000 #define FILE_TYPE_BIN 0x00000001 #define FILE_TYPE_EXECUTE 0x00000002 #define FILE_TYPE_NON_I386 0x00000004 #define FILE_TYPE_16BIT 0x00000008 #define FILE_TYPE_32BIT 0x00000010 #define FILE_TYPE_64BIT 0x00000020 #define FILE_TYPE_MEMORY_IMAGE 0x00000040 #define FILE_TYPE_MAIN_MODULE 0x00001000 #define FILE_TYPE_USER_MODULE 0x00002000 #define FILE_TYPE_KERNEL_MODULE 0x00004000 //-------------------------------------------------------------------------------------------------- #define FILE_TYPE_MZ (FILE_TYPE_BIN|FILE_TYPE_EXECUTE|FILE_TYPE_16BIT|0x00000100) #define FILE_TYPE_NE (FILE_TYPE_BIN|FILE_TYPE_EXECUTE|FILE_TYPE_16BIT|0x00000200) #define FILE_TYPE_PE (FILE_TYPE_BIN|FILE_TYPE_EXECUTE|FILE_TYPE_32BIT|0x00000300) #define FILE_TYPE_ELF (FILE_TYPE_BIN|FILE_TYPE_EXECUTE|FILE_TYPE_32BIT|0x00000400) //////////////////////////////////////////////////////////////////////////////////////////////////// //FILE_TYPE_PE #define FILE_TYPE_PE_EXE (FILE_TYPE_PE|FILE_TYPE_MAIN_MODULE) #define FILE_TYPE_PE_DLL (FILE_TYPE_PE|FILE_TYPE_USER_MODULE) #define FILE_TYPE_PE_SYS (FILE_TYPE_PE|FILE_TYPE_KERNEL_MODULE) //////////////////////////////////////////////////////////////////////////////////////////////////// //Page Attribute #define MP_ERROR 0xFFFFFFFF #define MP_MASK 0x0FFF #define MP_NOT_MASK 0xFFFFF000 #define MP64_NOT_MASK 0xFFFFFFFFFFFFF000 #define MP_SIZE 0x1000 #define MP_FREE 0x0000 #define MP_DIRTY 0x0001 #define MP_READ 0x0002 #define MP_WRITE 0x0004 #define MP_WRITEBACK 0x0008 #define MP_IMAGE 0x0010 #define MP_CONST 0x0020 #define MP_WATCH 0x1000 #define MP_KERNEL 0x2000 #define MP_COMMIT 0x4000 #define MP_LOCK 0x8000 //MP_COMMIT MP_DIRTY , MP_IMAGE ͻ #define MP_USER_ALL_ATTR (MP_DIRTY | MP_READ | MP_WRITE) #define MP_KERNEL_ALL_ATTR (MP_DIRTY | MP_READ | MP_WRITE | MP_KERNEL) #define MP_READWRITE (MP_READ | MP_WRITE) /////////////////////////////////////////////////////////////////////////////////////////////////// #define FILE_OBJ_USER_MASK 0x0000FFFF #define FILE_OBJ_TYPE_NULL 0x00000000 #define FILE_OBJ_TYPE_AUTO_DELETE 0x00010000 #define FILE_OBJ_TYPE_OPEN_BY_HANDLE 0x00020000 #define FILE_OBJ_TYPE_OPEN_FOR_WRITE 0x00040000 //------------------------------------------------------------------------------------------------- #define FILE_OBJ_TYPE_MEMORY_IMAGE 0x01000000 #define FILE_OBJ_TYPE_USER_MEMORY_IMAGE 0x02000000 #define FILE_OBJ_TYPE_OS_MEMORY_IMAGE 0x04000000 #define FILE_OBJ_TYPE_MEMORY_IMAGE_MASK (FILE_OBJ_TYPE_USER_MEMORY_IMAGE|FILE_OBJ_TYPE_OS_MEMORY_IMAGE|FILE_OBJ_TYPE_OS_MEMORY_IMAGE) /////////////////////////////////////////////////////////////////////////////////////////////////// class CPageImage { public: CStrA m_ImageName; ULSIZE m_ImageSize; ULPOS m_ImageBase; ULPOS m_ImageHighBase; virtual bool LoadPage(IN ULPOS Address,OUT void* Buffer)=0; virtual bool SavePage(IN ULPOS Address,OUT void* Buffer){return false;} virtual DWORD GetPageAttribute(IN ULPOS Address){return MP_READ;} }; class CImageFile : public CPageImage { HANDLE m_hFile; protected: RWProc m_ReadMemory; RWProc m_WriteMemory; void* m_RMObj; void* m_WMObj; public: CImageFile(); virtual bool Create(IN PCSTR FileName,IN ULSIZE Size = 0); //ͨļ virtual bool Create(IN ULSIZE Size,IN BYTE*Buffer = NULL OPTIONAL,bool bCompress = false); //ڴļ virtual bool Open(IN PCSTR FileName,IN HANDLE*pHandleOpen = NULL OPTIONAL); virtual void Close(); virtual ULSIZE ReadImageMemory(IN ULPOS Address,OUT void* Buffer,IN ULSIZE Size); virtual ULSIZE WriteImageMemory(IN ULPOS Address,OUT void* Buffer,IN ULSIZE Size); virtual bool LoadPage(IN ULPOS Address,OUT void* Buffer); virtual bool SavePage(IN ULPOS Address,OUT void* Buffer); virtual DWORD GetPageAttribute(IN ULPOS Address); virtual void RelocLoad(IN ULPOS BaseAddr); virtual void SetRMProc(IN RWProc RMFunc,IN void*RMObj = NULL); virtual void SetWMProc(IN RWProc WMFunc,IN void*WMObj = NULL); virtual bool IsInvalidAddress(ULPOS Address); virtual ULSIZE ReadMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size); virtual ULSIZE WriteMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size); virtual void DumpInfo(){}; static ULSIZE StaticReadMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size,IN void*RMObj); static ULSIZE StaticWriteMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size,IN void*RMObj); static ULSIZE StaticReadRealMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size,IN void*RMObj); static ULSIZE StaticWriteRealMemory(IN ULPOS Address,OUT void*Buffer,IN ULSIZE Size,IN void*RMObj); public: void InitParam(); void ChangeFileIO(IN CFileIO*pFileIO); bool ReadFile(IN ULPOS Pos,OUT void* Buffer,IN ULSIZE Size); bool WriteFile(IN ULPOS Pos,IN void* Buffer,IN ULSIZE Size); bool ReadFile(OUT void* Buffer,IN ULSIZE Size); bool WriteFile(IN void* Buffer,IN ULSIZE Size); bool CutFile(IN ULPOS Pos,IN ULSIZE Size); ULSIZE ReadString(IN ULPOS Pos,OUT CHAR * Buffer,IN ULSIZE MaxLen,ULSIZE AlignLen = 24); ULSIZE ReadString(IN ULPOS Pos,OUT WORD * Buffer,IN ULSIZE MaxLen,ULSIZE AlignLen = 24); ULSIZE ReadString(IN ULPOS Pos,OUT DCHAR* Buffer,IN ULSIZE MaxLen,ULSIZE AlignLen = 24); ULSIZE GetFileLength(); bool SetFileLength(IN ULSIZE Length); bool DeleteFile(); bool inline IsOpened(){ return m_hFile!= NULL || m_Buffer!=NULL; } ULPOS m_EntryPoint; UINT m_FileType; UINT m_FileObjType; DWORD m_PageAttribute; ULSIZE m_FileSize; ULPOS m_BaseOffset; ULPOS m_FilePointer; BYTE* m_Buffer; CFileIO*m_pFileIO; }; class CImageFileStream : public ALTFileStream,public CImageFile { public: int Puts(void*Buffer,int Size); int Gets(void*Buffer,int Size); }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/LDasm.c ================================================ /* ___________________________________________________ Opcode Length Disassembler. Coded By Ms-Rem ( Ms-Rem@yandex.ru ) ICQ 286370715 --------------------------------------------------- 12.08.2005 - fixed many bugs... 09.08.2005 - fixed bug with 0F BA opcode. 07.08.2005 - added SSE, SSE2, SSE3 and 3Dnow instruction support. 06.08.2005 - fixed bug with F6 and F7 opcodes. 29.07.2005 - fixed bug with OP_WORD opcodes. */ #include "LDasm.h" #define OP_NONE 0x00 #define OP_MODRM 0x01 #define OP_DATA_I8 0x02 #define OP_DATA_I16 0x04 #define OP_DATA_I32 0x08 #define OP_DATA_PRE66_67 0x10 #define OP_WORD 0x20 #define OP_REL32 0x40 #define UCHAR unsigned char #define ULONG unsigned long #define PVOID void* #define PUCHAR unsigned char* #define BOOLEAN char #define FALSE 0 #define TRUE 1 UCHAR OpcodeFlags[256] = { OP_MODRM, // 00 OP_MODRM, // 01 OP_MODRM, // 02 OP_MODRM, // 03 OP_DATA_I8, // 04 OP_DATA_PRE66_67, // 05 OP_NONE, // 06 OP_NONE, // 07 OP_MODRM, // 08 OP_MODRM, // 09 OP_MODRM, // 0A OP_MODRM, // 0B OP_DATA_I8, // 0C OP_DATA_PRE66_67, // 0D OP_NONE, // 0E OP_NONE, // 0F OP_MODRM, // 10 OP_MODRM, // 11 OP_MODRM, // 12 OP_MODRM, // 13 OP_DATA_I8, // 14 OP_DATA_PRE66_67, // 15 OP_NONE, // 16 OP_NONE, // 17 OP_MODRM, // 18 OP_MODRM, // 19 OP_MODRM, // 1A OP_MODRM, // 1B OP_DATA_I8, // 1C OP_DATA_PRE66_67, // 1D OP_NONE, // 1E OP_NONE, // 1F OP_MODRM, // 20 OP_MODRM, // 21 OP_MODRM, // 22 OP_MODRM, // 23 OP_DATA_I8, // 24 OP_DATA_PRE66_67, // 25 OP_NONE, // 26 OP_NONE, // 27 OP_MODRM, // 28 OP_MODRM, // 29 OP_MODRM, // 2A OP_MODRM, // 2B OP_DATA_I8, // 2C OP_DATA_PRE66_67, // 2D OP_NONE, // 2E OP_NONE, // 2F OP_MODRM, // 30 OP_MODRM, // 31 OP_MODRM, // 32 OP_MODRM, // 33 OP_DATA_I8, // 34 OP_DATA_PRE66_67, // 35 OP_NONE, // 36 OP_NONE, // 37 OP_MODRM, // 38 OP_MODRM, // 39 OP_MODRM, // 3A OP_MODRM, // 3B OP_DATA_I8, // 3C OP_DATA_PRE66_67, // 3D OP_NONE, // 3E OP_NONE, // 3F OP_NONE, // 40 OP_NONE, // 41 OP_NONE, // 42 OP_NONE, // 43 OP_NONE, // 44 OP_NONE, // 45 OP_NONE, // 46 OP_NONE, // 47 OP_NONE, // 48 OP_NONE, // 49 OP_NONE, // 4A OP_NONE, // 4B OP_NONE, // 4C OP_NONE, // 4D OP_NONE, // 4E OP_NONE, // 4F OP_NONE, // 50 OP_NONE, // 51 OP_NONE, // 52 OP_NONE, // 53 OP_NONE, // 54 OP_NONE, // 55 OP_NONE, // 56 OP_NONE, // 57 OP_NONE, // 58 OP_NONE, // 59 OP_NONE, // 5A OP_NONE, // 5B OP_NONE, // 5C OP_NONE, // 5D OP_NONE, // 5E OP_NONE, // 5F OP_NONE, // 60 OP_NONE, // 61 OP_MODRM, // 62 OP_MODRM, // 63 OP_NONE, // 64 OP_NONE, // 65 OP_NONE, // 66 OP_NONE, // 67 OP_DATA_PRE66_67, // 68 OP_MODRM | OP_DATA_PRE66_67, // 69 OP_DATA_I8, // 6A OP_MODRM | OP_DATA_I8, // 6B OP_NONE, // 6C OP_NONE, // 6D OP_NONE, // 6E OP_NONE, // 6F OP_DATA_I8, // 70 OP_DATA_I8, // 71 OP_DATA_I8, // 72 OP_DATA_I8, // 73 OP_DATA_I8, // 74 OP_DATA_I8, // 75 OP_DATA_I8, // 76 OP_DATA_I8, // 77 OP_DATA_I8, // 78 OP_DATA_I8, // 79 OP_DATA_I8, // 7A OP_DATA_I8, // 7B OP_DATA_I8, // 7C OP_DATA_I8, // 7D OP_DATA_I8, // 7E OP_DATA_I8, // 7F OP_MODRM | OP_DATA_I8, // 80 OP_MODRM | OP_DATA_PRE66_67, // 81 OP_MODRM | OP_DATA_I8, // 82 OP_MODRM | OP_DATA_I8, // 83 OP_MODRM, // 84 OP_MODRM, // 85 OP_MODRM, // 86 OP_MODRM, // 87 OP_MODRM, // 88 OP_MODRM, // 89 OP_MODRM, // 8A OP_MODRM, // 8B OP_MODRM, // 8C OP_MODRM, // 8D OP_MODRM, // 8E OP_MODRM, // 8F OP_NONE, // 90 OP_NONE, // 91 OP_NONE, // 92 OP_NONE, // 93 OP_NONE, // 94 OP_NONE, // 95 OP_NONE, // 96 OP_NONE, // 97 OP_NONE, // 98 OP_NONE, // 99 OP_DATA_I16 | OP_DATA_PRE66_67,// 9A OP_NONE, // 9B OP_NONE, // 9C OP_NONE, // 9D OP_NONE, // 9E OP_NONE, // 9F OP_DATA_PRE66_67, // A0 OP_DATA_PRE66_67, // A1 OP_DATA_PRE66_67, // A2 OP_DATA_PRE66_67, // A3 OP_NONE, // A4 OP_NONE, // A5 OP_NONE, // A6 OP_NONE, // A7 OP_DATA_I8, // A8 OP_DATA_PRE66_67, // A9 OP_NONE, // AA OP_NONE, // AB OP_NONE, // AC OP_NONE, // AD OP_NONE, // AE OP_NONE, // AF OP_DATA_I8, // B0 OP_DATA_I8, // B1 OP_DATA_I8, // B2 OP_DATA_I8, // B3 OP_DATA_I8, // B4 OP_DATA_I8, // B5 OP_DATA_I8, // B6 OP_DATA_I8, // B7 OP_DATA_PRE66_67, // B8 OP_DATA_PRE66_67, // B9 OP_DATA_PRE66_67, // BA OP_DATA_PRE66_67, // BB OP_DATA_PRE66_67, // BC OP_DATA_PRE66_67, // BD OP_DATA_PRE66_67, // BE OP_DATA_PRE66_67, // BF OP_MODRM | OP_DATA_I8, // C0 OP_MODRM | OP_DATA_I8, // C1 OP_DATA_I16, // C2 OP_NONE, // C3 OP_MODRM, // C4 OP_MODRM, // C5 OP_MODRM | OP_DATA_I8, // C6 OP_MODRM | OP_DATA_PRE66_67, // C7 OP_DATA_I8 | OP_DATA_I16, // C8 OP_NONE, // C9 OP_DATA_I16, // CA OP_NONE, // CB OP_NONE, // CC OP_DATA_I8, // CD OP_NONE, // CE OP_NONE, // CF OP_MODRM, // D0 OP_MODRM, // D1 OP_MODRM, // D2 OP_MODRM, // D3 OP_DATA_I8, // D4 OP_DATA_I8, // D5 OP_NONE, // D6 OP_NONE, // D7 OP_WORD, // D8 OP_WORD, // D9 OP_WORD, // DA OP_WORD, // DB OP_WORD, // DC OP_WORD, // DD OP_WORD, // DE OP_WORD, // DF OP_DATA_I8, // E0 OP_DATA_I8, // E1 OP_DATA_I8, // E2 OP_DATA_I8, // E3 OP_DATA_I8, // E4 OP_DATA_I8, // E5 OP_DATA_I8, // E6 OP_DATA_I8, // E7 OP_DATA_PRE66_67 | OP_REL32, // E8 OP_DATA_PRE66_67 | OP_REL32, // E9 OP_DATA_I16 | OP_DATA_PRE66_67,// EA OP_DATA_I8, // EB OP_NONE, // EC OP_NONE, // ED OP_NONE, // EE OP_NONE, // EF OP_NONE, // F0 OP_NONE, // F1 OP_NONE, // F2 OP_NONE, // F3 OP_NONE, // F4 OP_NONE, // F5 OP_MODRM, // F6 OP_MODRM, // F7 OP_NONE, // F8 OP_NONE, // F9 OP_NONE, // FA OP_NONE, // FB OP_NONE, // FC OP_NONE, // FD OP_MODRM, // FE OP_MODRM | OP_REL32 // FF }; UCHAR OpcodeFlagsExt[256] = { OP_MODRM, // 00 OP_MODRM, // 01 OP_MODRM, // 02 OP_MODRM, // 03 OP_NONE, // 04 OP_NONE, // 05 OP_NONE, // 06 OP_NONE, // 07 OP_NONE, // 08 OP_NONE, // 09 OP_NONE, // 0A OP_NONE, // 0B OP_NONE, // 0C OP_MODRM, // 0D OP_NONE, // 0E OP_MODRM | OP_DATA_I8, // 0F OP_MODRM, // 10 OP_MODRM, // 11 OP_MODRM, // 12 OP_MODRM, // 13 OP_MODRM, // 14 OP_MODRM, // 15 OP_MODRM, // 16 OP_MODRM, // 17 OP_MODRM, // 18 OP_NONE, // 19 OP_NONE, // 1A OP_NONE, // 1B OP_NONE, // 1C OP_NONE, // 1D OP_NONE, // 1E OP_NONE, // 1F OP_MODRM, // 20 OP_MODRM, // 21 OP_MODRM, // 22 OP_MODRM, // 23 OP_MODRM, // 24 OP_NONE, // 25 OP_MODRM, // 26 OP_NONE, // 27 OP_MODRM, // 28 OP_MODRM, // 29 OP_MODRM, // 2A OP_MODRM, // 2B OP_MODRM, // 2C OP_MODRM, // 2D OP_MODRM, // 2E OP_MODRM, // 2F OP_NONE, // 30 OP_NONE, // 31 OP_NONE, // 32 OP_NONE, // 33 OP_NONE, // 34 OP_NONE, // 35 OP_NONE, // 36 OP_NONE, // 37 OP_NONE, // 38 OP_NONE, // 39 OP_NONE, // 3A OP_NONE, // 3B OP_NONE, // 3C OP_NONE, // 3D OP_NONE, // 3E OP_NONE, // 3F OP_MODRM, // 40 OP_MODRM, // 41 OP_MODRM, // 42 OP_MODRM, // 43 OP_MODRM, // 44 OP_MODRM, // 45 OP_MODRM, // 46 OP_MODRM, // 47 OP_MODRM, // 48 OP_MODRM, // 49 OP_MODRM, // 4A OP_MODRM, // 4B OP_MODRM, // 4C OP_MODRM, // 4D OP_MODRM, // 4E OP_MODRM, // 4F OP_MODRM, // 50 OP_MODRM, // 51 OP_MODRM, // 52 OP_MODRM, // 53 OP_MODRM, // 54 OP_MODRM, // 55 OP_MODRM, // 56 OP_MODRM, // 57 OP_MODRM, // 58 OP_MODRM, // 59 OP_MODRM, // 5A OP_MODRM, // 5B OP_MODRM, // 5C OP_MODRM, // 5D OP_MODRM, // 5E OP_MODRM, // 5F OP_MODRM, // 60 OP_MODRM, // 61 OP_MODRM, // 62 OP_MODRM, // 63 OP_MODRM, // 64 OP_MODRM, // 65 OP_MODRM, // 66 OP_MODRM, // 67 OP_MODRM, // 68 OP_MODRM, // 69 OP_MODRM, // 6A OP_MODRM, // 6B OP_MODRM, // 6C OP_MODRM, // 6D OP_MODRM, // 6E OP_MODRM, // 6F OP_MODRM | OP_DATA_I8, // 70 OP_MODRM | OP_DATA_I8, // 71 OP_MODRM | OP_DATA_I8, // 72 OP_MODRM | OP_DATA_I8, // 73 OP_MODRM, // 74 OP_MODRM, // 75 OP_MODRM, // 76 OP_NONE, // 77 OP_NONE, // 78 OP_NONE, // 79 OP_NONE, // 7A OP_NONE, // 7B OP_MODRM, // 7C OP_MODRM, // 7D OP_MODRM, // 7E OP_MODRM, // 7F OP_DATA_PRE66_67 | OP_REL32, // 80 OP_DATA_PRE66_67 | OP_REL32, // 81 OP_DATA_PRE66_67 | OP_REL32, // 82 OP_DATA_PRE66_67 | OP_REL32, // 83 OP_DATA_PRE66_67 | OP_REL32, // 84 OP_DATA_PRE66_67 | OP_REL32, // 85 OP_DATA_PRE66_67 | OP_REL32, // 86 OP_DATA_PRE66_67 | OP_REL32, // 87 OP_DATA_PRE66_67 | OP_REL32, // 88 OP_DATA_PRE66_67 | OP_REL32, // 89 OP_DATA_PRE66_67 | OP_REL32, // 8A OP_DATA_PRE66_67 | OP_REL32, // 8B OP_DATA_PRE66_67 | OP_REL32, // 8C OP_DATA_PRE66_67 | OP_REL32, // 8D OP_DATA_PRE66_67 | OP_REL32, // 8E OP_DATA_PRE66_67 | OP_REL32, // 8F OP_MODRM, // 90 OP_MODRM, // 91 OP_MODRM, // 92 OP_MODRM, // 93 OP_MODRM, // 94 OP_MODRM, // 95 OP_MODRM, // 96 OP_MODRM, // 97 OP_MODRM, // 98 OP_MODRM, // 99 OP_MODRM, // 9A OP_MODRM, // 9B OP_MODRM, // 9C OP_MODRM, // 9D OP_MODRM, // 9E OP_MODRM, // 9F OP_NONE, // A0 OP_NONE, // A1 OP_NONE, // A2 OP_MODRM, // A3 OP_MODRM | OP_DATA_I8, // A4 OP_MODRM, // A5 OP_NONE, // A6 OP_NONE, // A7 OP_NONE, // A8 OP_NONE, // A9 OP_NONE, // AA OP_MODRM, // AB OP_MODRM | OP_DATA_I8, // AC OP_MODRM, // AD OP_MODRM, // AE OP_MODRM, // AF OP_MODRM, // B0 OP_MODRM, // B1 OP_MODRM, // B2 OP_MODRM, // B3 OP_MODRM, // B4 OP_MODRM, // B5 OP_MODRM, // B6 OP_MODRM, // B7 OP_NONE, // B8 OP_NONE, // B9 OP_MODRM | OP_DATA_I8, // BA OP_MODRM, // BB OP_MODRM, // BC OP_MODRM, // BD OP_MODRM, // BE OP_MODRM, // BF OP_MODRM, // C0 OP_MODRM, // C1 OP_MODRM | OP_DATA_I8, // C2 OP_MODRM, // C3 OP_MODRM | OP_DATA_I8, // C4 OP_MODRM | OP_DATA_I8, // C5 OP_MODRM | OP_DATA_I8, // C6 OP_MODRM, // C7 OP_NONE, // C8 OP_NONE, // C9 OP_NONE, // CA OP_NONE, // CB OP_NONE, // CC OP_NONE, // CD OP_NONE, // CE OP_NONE, // CF OP_MODRM, // D0 OP_MODRM, // D1 OP_MODRM, // D2 OP_MODRM, // D3 OP_MODRM, // D4 OP_MODRM, // D5 OP_MODRM, // D6 OP_MODRM, // D7 OP_MODRM, // D8 OP_MODRM, // D9 OP_MODRM, // DA OP_MODRM, // DB OP_MODRM, // DC OP_MODRM, // DD OP_MODRM, // DE OP_MODRM, // DF OP_MODRM, // E0 OP_MODRM, // E1 OP_MODRM, // E2 OP_MODRM, // E3 OP_MODRM, // E4 OP_MODRM, // E5 OP_MODRM, // E6 OP_MODRM, // E7 OP_MODRM, // E8 OP_MODRM, // E9 OP_MODRM, // EA OP_MODRM, // EB OP_MODRM, // EC OP_MODRM, // ED OP_MODRM, // EE OP_MODRM, // EF OP_MODRM, // F0 OP_MODRM, // F1 OP_MODRM, // F2 OP_MODRM, // F3 OP_MODRM, // F4 OP_MODRM, // F5 OP_MODRM, // F6 OP_MODRM, // F7 OP_MODRM, // F8 OP_MODRM, // F9 OP_MODRM, // FA OP_MODRM, // FB OP_MODRM, // FC OP_MODRM, // FD OP_MODRM, // FE OP_NONE // FF }; unsigned long __fastcall SizeOfCode(void *Code, unsigned char **pOpcode) { PUCHAR cPtr; UCHAR Flags; BOOLEAN PFX66, PFX67; BOOLEAN SibPresent; UCHAR iMod, iRM, iReg; UCHAR OffsetSize, Add; UCHAR Opcode; OffsetSize = 0; PFX66 = FALSE; PFX67 = FALSE; cPtr = (PUCHAR)Code; while ( (*cPtr == 0x2E) || (*cPtr == 0x3E) || (*cPtr == 0x36) || (*cPtr == 0x26) || (*cPtr == 0x64) || (*cPtr == 0x65) || (*cPtr == 0xF0) || (*cPtr == 0xF2) || (*cPtr == 0xF3) || (*cPtr == 0x66) || (*cPtr == 0x67) ) { if (*cPtr == 0x66) PFX66 = TRUE; if (*cPtr == 0x67) PFX67 = TRUE; cPtr++; if (cPtr > (PUCHAR)Code + 16) return 0; } Opcode = *cPtr; if (pOpcode) *pOpcode = cPtr; if (*cPtr == 0x0F) { cPtr++; Flags = OpcodeFlagsExt[*cPtr]; } else { Flags = OpcodeFlags[Opcode]; if (Opcode >= 0xA0 && Opcode <= 0xA3) PFX66 = PFX67; } cPtr++; if (Flags & OP_WORD) cPtr++; if (Flags & OP_MODRM) { iMod = *cPtr >> 6; iReg = (*cPtr & 0x38) >> 3; iRM = *cPtr & 7; cPtr++; if ((Opcode == 0xF6) && !iReg) Flags |= OP_DATA_I8; if ((Opcode == 0xF7) && !iReg) Flags |= OP_DATA_PRE66_67; SibPresent = !PFX67 & (iRM == 4); switch (iMod) { case 0: if ( PFX67 && (iRM == 6)) OffsetSize = 2; if (!PFX67 && (iRM == 5)) OffsetSize = 4; break; case 1: OffsetSize = 1; break; case 2: if (PFX67) OffsetSize = 2; else OffsetSize = 4; break; case 3: SibPresent = FALSE; } if (SibPresent) { if (((*cPtr & 7) == 5) && ( (!iMod) || (iMod == 2) )) OffsetSize = 4; cPtr++; } cPtr = (PUCHAR)(ULONG)cPtr + OffsetSize; } if (Flags & OP_DATA_I8) cPtr++; if (Flags & OP_DATA_I16) cPtr += 2; if (Flags & OP_DATA_I32) cPtr += 4; if (PFX66) Add = 2; else Add = 4; if (Flags & OP_DATA_PRE66_67) cPtr += Add; return (ULONG)cPtr - (ULONG)Code; } /* ( RET)*/ unsigned long __fastcall SizeOfProc(void *Proc) { ULONG Length; PUCHAR pOpcode; ULONG Result = 0; do { Length = SizeOfCode(Proc, &pOpcode); Result += Length; // keenjoy95 modify 2008-11-4 17:19:32 if (((Length == 1) && (*pOpcode == 0xC3)) || ((Length == 3) && (*pOpcode == 0xC2))) break; Proc = (PVOID)((ULONG)Proc + Length); } while (Length); return Result; } /* , rel32 offset*/ char __fastcall IsRelativeCmd(unsigned char *pOpcode) { UCHAR Flags; if (*pOpcode == 0x0F) Flags = OpcodeFlagsExt[*(PUCHAR)((ULONG)pOpcode + 1)]; else Flags = OpcodeFlags[*pOpcode]; return (Flags & OP_REL32); } ================================================ FILE: Project/Code/Source/LDasm.h ================================================ #ifndef _LDASM_ #define _LDASM_ #ifdef __cplusplus extern "C" { #endif unsigned long __fastcall SizeOfCode(void *Code, unsigned char **pOpcode); unsigned long __fastcall SizeOfProc(void *Proc); char __fastcall IsRelativeCmd(unsigned char *pOpcode); #ifdef __cplusplus } #endif #endif ================================================ FILE: Project/Code/Source/LangLib.cpp ================================================ #include "StdAfx.h" #include "LangLib.h" CLangLib::CLangLib() { } bool CLangLib::Load(PCSTR szFileName) { PCWSTR szStr,szLang; CUTXTFile File; m_StrMap.Clear(); if(File.Open(szFileName)==false) return false; TTXTStrWList::IT LineIter=File.m_StrList.Begin(); while(LineIter!=File.m_StrList.End()) { szStr = *LineIter; LineIter++; if(*szStr==0) continue; if(LineIter==File.m_StrList.End()) break; szLang = *LineIter; if(*szLang==0) { LineIter++; continue; } m_StrMap.InsertUnique(szStr,szLang); LineIter++; } File.Close(); return true; } PCWSTR CLangLib::GetString(PCWSTR szStr,bool bDefault) { CStrMap::IT Iter = m_StrMap.Find(szStr); if(Iter.IsExist()) return *Iter; if(bDefault) return szStr; return NULL; } XSCAN_RES CLangLib::ScanLang(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParam) { TList*pLangList=(TList*)CBParam; char szFileTitle[MAX_FN_LEN]; TGetFileTitle(FileName,szFileTitle); pLangList->Append(szFileTitle); return XSCAN_RES_CONTINUE; } int CLangLib::ListLang(PCSTR PathName,TList*pLangList) { pLangList->Clear(); gpFileIO->XScan(PathName,ScanLang,pLangList); return pLangList->Count(); } ================================================ FILE: Project/Code/Source/LangLib.h ================================================ #ifndef _LANG_LIB_ #define _LANG_LIB_ typedef TMap CStrMap; class CLangLib { public: CLangLib(); CStrMap m_StrMap; bool Load(PCSTR szFileName); PCWSTR GetString(PCWSTR szStr,bool bDefault=true); static XSCAN_RES ScanLang(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParam); int ListLang(PCSTR PathName,TList*pLangList); }; #endif ================================================ FILE: Project/Code/Source/LogFile.cpp ================================================ #include "StdAfx.h" #include "LogFile.h" #include "StrMem.h" NAME_SPACE_BEGIN ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// bool CLogFile::CreateNew(PCSTR Filename) { CHAR LogFileName[MAX_FN_LEN]; m_BufLen=0; m_TickCount=0; TStrCpy(LogFileName,Filename); return Create(LogFileName,0); } bool CLogFile::CreateConsole() { #ifdef CODE_OS_WIN AllocConsole(); m_hFile=GetStdHandle(STD_OUTPUT_HANDLE); return m_hFile!= INVALID_HANDLE_VALUE; #else return false; #endif } CLogFile& CLogFile::operator <<(PCSTR LogStr) { Record(LogStr); return *this; } CLogFile& CLogFile::operator <<(PCWSTR LogStr) { CHAR szBuffer[0x400],*pStr; int Len; Len=(int)TStrLen(LogStr); if(Len>=sizeof(szBuffer)) pStr=new CHAR[Len+1]; else pStr=szBuffer; TStrCpy(pStr,LogStr); Record(pStr); if(pStr!=szBuffer) delete pStr; return *this; } CLogFile& CLogFile::operator <<(LONG Hex) { CHAR szBuffer[32]; szBuffer[0]='0'; szBuffer[1]='x'; uNumToStr(Hex,&szBuffer[2]); Record(szBuffer); return *this; } CLogFile& CLogFile::operator <<(INT Hex) { CHAR szBuffer[32]; szBuffer[0]='0'; szBuffer[1]='x'; uNumToStr(Hex,&szBuffer[2]); Record(szBuffer); return *this; } CLogFile& CLogFile::operator <<(CHAR Hex) { CHAR szBuffer[32]; szBuffer[0]='0'; szBuffer[1]='x'; uNumToStr(Hex,&szBuffer[2]); Record(szBuffer); return *this; } CLogFile& CLogFile::operator <<(DWORD Hex) { CHAR szBuffer[32]; szBuffer[0]='0'; szBuffer[1]='x'; uNumToStr(Hex,&szBuffer[2]); Record(szBuffer); return *this; } CLogFile& CLogFile::operator <<(WORD Hex) { CHAR szBuffer[32]; szBuffer[0]='0'; szBuffer[1]='x'; uNumToStr(Hex,&szBuffer[2]); Record(szBuffer); return *this; } CLogFile& CLogFile::operator <<(BYTE Hex) { CHAR szBuffer[32]; szBuffer[0]='0'; szBuffer[1]='x'; uNumToStr(Hex,&szBuffer[2]); Record(szBuffer); return *this; } CLogFile& CLogFile::operator ++(int) { Record("\r\n"); return *this; } bool CLogFile::Record(PCSTR LogString) { int Strlen; Strlen=TStrLen(LogString); if(m_BufLen+Strlen>=LOG_BUFFER_SIZE) { if(m_BufLen) { WriteFile(m_Buffer,m_BufLen); m_BufLen=0; } else { return WriteFile((LPVOID)LogString,Strlen); } } TStrCpy(&m_Buffer[m_BufLen],LogString); m_BufLen+=Strlen; return true; } void CLogFile::Close() { m_Timer.Clear(); if(m_BufLen) { WriteFile(m_Buffer,m_BufLen); m_BufLen=0; } CImageFile::Close(); } bool CLogFile::EnterTimer(DWORD ID) { UpdateTickCount(&m_TickCount); m_Timer.InsertUnique(ID,m_TickCount); return true; } bool CLogFile::ExitTimer(DWORD ID,PCSTR FormatStr) { CHAR szBuffer[256]; CLogTimer::IT Iter=m_Timer.Find(ID); if(Iter==m_Timer.End()) return false; UpdateTickCount(&m_TickCount); TSPrintf(szBuffer,FormatStr,(void*)(m_TickCount - *Iter)); Record(szBuffer); m_Timer.Remove(Iter); return true; } int CLogFile::Printf(PCSTR szMsg,...) { int Length; char szBuffer[0x400]; va_list Next; va_start(Next,szMsg); Length = TVSPrintf(szBuffer,szMsg,Next); va_end(Next); Record(szBuffer); return Length; } int CLogFile::Printf(PCWSTR szMsg,...) { int Length; WCHAR wszBuffer[0x400]; char szBuffer[0x400]; va_list Next; va_start(Next,szMsg); Length = TVSPrintf(wszBuffer,szMsg,Next); va_end(Next); UnicodeToAnsi(wszBuffer,szBuffer,sizeof(szBuffer)); Record(szBuffer); return Length; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/LogFile.h ================================================ #ifndef _LOGFILE_H_ #define _LOGFILE_H_ #include "ImageFile.h" #include "SysDep.h" NAME_SPACE_BEGIN #define LOG_BUFFER_SIZE 0x1000 typedef TMap CLogTimer; class CLogFile : CImageFile { public: CHAR m_Buffer[LOG_BUFFER_SIZE]; int m_BufLen; DWORD m_CurLine; DWORD m_MaxLine; HANDLE m_hFile; bool CreateNew(PCSTR Filename); bool CreateConsole(); CLogFile& operator <<(PCSTR LogStr); CLogFile& operator <<(PCWSTR LogStr); CLogFile& operator <<(LONG Hex); CLogFile& operator <<(INT Hex); CLogFile& operator <<(CHAR Hex); CLogFile& operator <<(DWORD Hex); CLogFile& operator <<(WORD Hex); CLogFile& operator <<(BYTE Hex); CLogFile& operator ++(int); int Printf(PCSTR szMsg,...); int Printf(PCWSTR szMsg,...); bool Record(PCSTR LogString); void Close(); bool EnterTimer(DWORD ID); bool ExitTimer(DWORD ID,PCSTR FormatStr = "%d (ms)"); CLogTimer m_Timer; ULONGLONG m_TickCount; }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Makefile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/Code/Source/Maths.cpp ================================================ #include "StdAfx.h" #include "Maths.h" NAME_SPACE_BEGIN DWORD Mul64(DWORD MulN1Low,DWORD MulN2Low,DWORD*ResHigh) { DWORD MulResHigh,MulResLow,MulN1High; MulN1High = MulResHigh = MulResLow = 0; while(MulN2Low!=0) { if(MulN2Low&1) { if((DWORD)(MulResLow + MulN1Low) < MulResLow ) { MulResLow += MulN1Low; MulResHigh += MulN1High+1; } else { MulResLow += MulN1Low; MulResHigh += MulN1High; } } MulN1High=(MulN1High<<1)+(MulN1Low>>0x1F); MulN1Low =(MulN1Low<<1); MulN2Low =(MulN2Low>>1); } *ResHigh=MulResHigh; return MulResLow; } DWORD Mul64(int Num1,int Num2,int*ResHigh) { int MulResHigh,Sign; DWORD MulResLow; if(Num1 == 0 || Num2 == 0) { *ResHigh = 0; return 0; } if(Num1 < 0 && Num2<0) { Num1 = -Num1; Num2 = -Num2; Sign = 1; } else if(Num1 > 0 && Num2 > 0) { Sign = 1; } else if(Num1 < 0 && Num2 > 0) { Num1 = -Num1; Sign = -1; } else if(Num1 > 0 && Num2 < 0) { Num2 = -Num2; Sign = -1; } MulResLow = Mul64((DWORD)Num1,(DWORD)Num2,(DWORD*)&MulResHigh); if(Sign==-1) { MulResLow = ~MulResLow; MulResHigh = ~MulResHigh; if(MulResLow+1DivisorHigh) { if(*NumLow>=DivisorLow) { *NumLow-=DivisorLow; *NumHigh-=DivisorHigh; } else { *NumLow-=DivisorLow; *NumHigh-=DivisorHigh+1; } DivResLow++; } else if(*NumHigh==DivisorHigh&&*NumLow>=DivisorLow) { *NumLow-=DivisorLow; *NumHigh-=DivisorHigh; DivResLow++; } if(i==0) break; DivisorLow=(DivisorLow>>1)+(DivisorHigh<<0x1F); DivisorHigh>>=1; DivResHigh=(DivResHigh<<1)+(DivResLow>>0x1F); DivResLow<<=1; } *ResHigh = DivResHigh; *ResLow = DivResLow; if(DivResHigh>0) return false; return true; } bool Div64(DWORD*NumLow,int*NumHigh,int DivisorLow,DWORD*ResLow,int*ResHigh) { int Sign; if(DivisorLow==0) return false; if(*NumHigh<=0 && DivisorLow<0) { Sign = 1; Neg64(NumLow,NumHigh); DivisorLow = -DivisorLow; } else if(*NumHigh>=0 && DivisorLow>0) { Sign = 1; } else if(*NumHigh>=0 && DivisorLow<0) { Sign = -1; DivisorLow = -DivisorLow; } else if(*NumHigh<=0 && DivisorLow>0) { Sign = -1; Neg64(NumLow,NumHigh); } if(Div64(NumLow,(DWORD*)NumHigh,DivisorLow,ResLow,(DWORD*)ResHigh)==false) return false; if(*ResLow & 0x80000000) return false; if(Sign==-1) { Neg64(ResLow,ResHigh); } return true; } LONG Pow(INT a,INT n) { LONG Result; if(n==0) return 1; Result=n; do { n--; Result*=n; }while(n); return Result; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/Maths.h ================================================ #ifndef _MATH_H_ #define _MATH_H_ NAME_SPACE_BEGIN DWORD Mul64(DWORD NulN1Low,DWORD NulN2Low,DWORD*ResHigh);//64λ޷ų DWORD Mul64(int Num1,int Num2,int *ResHigh);//64λзų bool Div64(DWORD*NumLow,DWORD*NumHigh,DWORD DivisorLow,DWORD*ResLow,DWORD*ResHigh);//64λ޷ų bool Div64(DWORD*NumLow,int*NumHigh,int DivisorLow,DWORD*ResLow,int*ResHigh);//64λзų void Neg64(DWORD*NumLow,int*NumHigh);//64λȡ LONG Pow(INT a,INT n); NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/NTDrvRuntime.cpp ================================================ #include "stdafx.h" #include "NTDrvRuntime.h" #define _PAGESIZE_ 4096 // void __declspec(naked) __cdecl _chkstk(void) // { // __asm // { // push ecx ; save ecx // cmp eax,_PAGESIZE_ ; more than one page requested? // lea ecx,[esp] + 8 ; compute new stack pointer in ecx // ; correct for return address and // ; saved ecx // jb short lastpage ; no // probepages: // sub ecx,_PAGESIZE_ ; yes, move down a page // sub eax,_PAGESIZE_ ; adjust request and... // test dword ptr [ecx],eax ; ...probe it // cmp eax,_PAGESIZE_ ; more than one page requested? // jae short probepages ; no // lastpage: // sub ecx,eax ; move stack down by eax // mov eax,esp ; save current tos and do a... // test dword ptr [ecx],eax ; ...probe in case a page was crossed // mov esp,ecx ; set the new stack pointer // mov ecx,dword ptr [eax] ; recover ecx // mov eax,dword ptr [eax + 4] ; recover return address // push eax ; prepare return address // ret // } // } int UnicodeStrCpy(PWSTR szBuffer,PUNICODE_STRING pUnicodeString,int MaxLength) { if(szBuffer == NULL || MaxLength<=0 || pUnicodeString==NULL || pUnicodeString->Buffer==NULL || pUnicodeString->Length<=0) { *szBuffer=0; return 0; } if(MaxLength>pUnicodeString->Length/2) { MaxLength = pUnicodeString->Length/2; memcpy(szBuffer,pUnicodeString->Buffer,pUnicodeString->Length); } else { MaxLength--; memcpy(szBuffer,pUnicodeString->Buffer,MaxLength*2); } szBuffer[MaxLength] = 0; return MaxLength; } ================================================ FILE: Project/Code/Source/NTDrvRuntime.h ================================================ #ifndef _NT_DRV_RUNTIME_H_ #define _NT_DRV_RUNTIME_H_ extern "C" void __cdecl _chkstk(void); int UnicodeStrCpy(PWSTR szBuffer,PUNICODE_STRING pUnicodeString,int MaxLength); #endif ================================================ FILE: Project/Code/Source/NewAlloc.cpp ================================================ #include "StdAfx.h" #include "NewAlloc.h" #ifdef CODE_ALLOC_OVERLOAD #ifdef new #undef new #endif void* __cdecl operator new(size_t size) { return CodeAlloc(size); } void* __cdecl operator new[](size_t size) { return CodeAlloc(size); } #ifndef CODE_DEBUG_ALLOC #ifdef delete #undef delete #endif void __cdecl operator delete(void*p) { CodeFree(p); } void __cdecl operator delete[](void*p) { CodeFree(p); } #endif//CODE_DEBUG_ALLOC #endif//CODE_ALLOC_OVERLOAD #ifdef CODE_ALLOC_USER_HEAP void SwitchHeap(int Index) { if(Index < gMaxUserHeapCount) gCurUserHeapIndex = Index; } int GetCurrentHeapIndex() { return gCurUserHeapIndex; } CFixedHeap* GetCurrentHeap() { return gpUserHeap[gCurUserHeapIndex]; } CFixedHeap* GetHeapByIndex(int Index) { if(Index < gMaxUserHeapCount) return gpUserHeap[Index]; return NULL; } #endif//CODE_ALLOC_USER_HEAP ================================================ FILE: Project/Code/Source/NewAlloc.h ================================================ #ifndef _NEW_ALLOC_H_ #define _NEW_ALLOC_H_ #define MAX_USER_HEAP_COUNT 16 #ifdef CODE_ALLOC_OVERLOAD void* __cdecl operator new(size_t size); void* __cdecl operator new[](size_t size); #ifndef CODE_DEBUG_ALLOC void __cdecl operator delete(void*p); void __cdecl operator delete[](void*p); #endif//CODE_DEBUG_ALLOC #endif//CODE_ALLOC_OVERLOAD NAME_SPACE_BEGIN void* CodeAlloc(size_t size); void CodeFree(void *p); #ifdef CODE_ALLOC_USER_HEAP void InitMemoryAllocUserHeap(); void ReleaseMemoryAllocUserHeap(); class CFixedHeap; extern CFixedHeap* gpUserHeap[MAX_USER_HEAP_COUNT]; extern int gMainHeapSize; extern int gCurUserHeapIndex; extern int gMaxUserHeapCount; void SwitchHeap(int Index); int GetCurrentHeapIndex(); CFixedHeap* GetCurrentHeap(); CFixedHeap* GetHeapByIndex(int Index); #endif//CODE_ALLOC_USER_HEAP NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/NewAllocNTDrv.cpp ================================================ #include "stdafx.h" #include "NewAlloc.h" NAME_SPACE_BEGIN #ifdef CODE_OS_NT_DRV #ifdef CODE_ALLOC_USER_HEAP CFixedHeap* gpUserHeap[MAX_USER_HEAP_COUNT]; int gMainHeapSize = CODE_ALLOC_USER_HEAP; int gCurUserHeapIndex = 0; int gMaxUserHeapCount = 0; void InitMemoryAllocUserHeap() { } void ReleaseMemoryAllocUserHeap() { int AllocCount,NeverUsedSizeK; if(gMaxUserHeapCount==0) return; AllocCount = 0; NeverUsedSizeK = 0; for(int n=0;nm_AllocateCount; NeverUsedSizeK+=gpUserHeap[n]->m_MinFreeChunkCount*CHUNK_SIZE/1024; } for(int n = gMaxUserHeapCount-1;n>0;n--) { gMaxUserHeapCount--; if(gpUserHeap[n]==NULL)continue; gpUserHeap[n]->Destroy(); delete gpUserHeap[n]; gpUserHeap[n]=NULL; } #ifdef CODE_DEBUG_ALLOC MemoryAllocMoniteReport(); #endif gMaxUserHeapCount--; gpUserHeap[0]->Destroy(); gMainHeapSize = 0; delete gpUserHeap[0]; gpUserHeap[0] = NULL; } void*CodeAlloc(size_t size) { if(gMainHeapSize < sizeof(CFixedHeap)) { return ExAllocatePoolWithTag(NonPagedPool,size,'CODE'); } if(gpUserHeap[gCurUserHeapIndex]==NULL) { int OldSize; InitMemoryAllocUserHeap(); OldSize = gMainHeapSize; gMainHeapSize = 0; gpUserHeap[gCurUserHeapIndex] = new CFixedHeap; gMainHeapSize = OldSize; gpUserHeap[gCurUserHeapIndex]->Create(OldSize); gMaxUserHeapCount++; } void*p = gpUserHeap[gCurUserHeapIndex]->Allocate((ULSIZE)size); if(p==NULL) KeBugCheckEx('MEMN',size,gCurUserHeapIndex,gMainHeapSize,(ULONG_PTR)&gpUserHeap[0]); return p; } void CodeFree(void*p) { if(gMainHeapSize < sizeof(CFixedHeap)) { ExFreePool(p); return; } for(int n=0;nFree(p)) return; } DbgPrint("************ Invaild Free (%08X) !\n************",p); } #else //CODE_ALLOC_USER_HEAP void*CodeAlloc(size_t size) { return ExAllocatePool(NonPagedPool, size); } void CodeFree(void*p) { ExFreePool(p); } #endif //CODE_ALLOC_USER_HEAP #endif //CODE_OS_NT_DRV NAME_SPACE_END ================================================ FILE: Project/Code/Source/NewAllocUnix.cpp ================================================ #include "StdAfx.h" #include "NewAlloc.h" #ifdef malloc #undef malloc #endif #ifdef free #undef free #endif #ifdef CODE_ALLOC_USER_HEAP #include "Heap.h" CFixedHeap*gpUserHeap = NULL; bool bInCode = false; void InitMemoryAllocUserHeap() { } void ReleaseMemoryAllocUserHeap() { } void*CodeAlloc(size_t size) { if(bInCode) { return malloc(size); } else { void*p; bInCode = true; if(gpUserHeap==NULL) { InitMemoryAllocUserHeap(); gpUserHeap = new CFixedHeap; gpUserHeap->Create(CODE_ALLOC_USER_HEAP); } p = gpUserHeap->Allocate(size); bInCode = false; return p; } } void CodeFree(void*p) { if(bInCode) { return free(p); } else { bInCode = true; gpUserHeap->Free(p); bInCode = false; } } #else void*CodeAlloc(size_t size) { return malloc(size); } void CodeFree(void*p) { free(p); } #endif//CODE_ALLOC_USER_HEAP ================================================ FILE: Project/Code/Source/NewAllocWin32.cpp ================================================ #include "StdAfx.h" #include "NewAlloc.h" #include "Heap.h" NAME_SPACE_BEGIN #ifdef CODE_ALLOC_USER_HEAP CFixedHeap* gpUserHeap[MAX_USER_HEAP_COUNT]; int gMainHeapSize = CODE_ALLOC_USER_HEAP; int gCurUserHeapIndex = 0; int gMaxUserHeapCount = 0; typedef void (__cdecl *_PVFV)(void); extern "C" { extern _PVFV *__onexitbegin; extern _PVFV *__onexitend; } void InitMemoryAllocUserHeap() { atexit(ReleaseMemoryAllocUserHeap); _PVFV * pf = __onexitend; pf--; _PVFV fBackup = *pf; while(pf>__onexitbegin) { pf--; pf[1] = pf[0]; } *pf=fBackup; } void ReleaseMemoryAllocUserHeap() { char szBuffer[256]; int AllocCount,NeverUsedSizeK; if(gMaxUserHeapCount==0) return; AllocCount = 0; NeverUsedSizeK = 0; for(int n=0;nm_AllocateCount; NeverUsedSizeK+=gpUserHeap[n]->m_MinFreeChunkCount*CHUNK_SIZE/1024; } TSPrintf(szBuffer," = %d , δʹùĶѿռ = %d(k)\n",AllocCount,NeverUsedSizeK); CODE_DEBUG_OUTPUT(szBuffer); for(int n = gMaxUserHeapCount-1;n>0;n--) { gMaxUserHeapCount--; gpUserHeap[n]->Destroy(); delete gpUserHeap[n]; gpUserHeap[n]=NULL; } #ifdef CODE_DEBUG_ALLOC MemoryAllocMoniteReport(); #endif gMaxUserHeapCount--; gpUserHeap[0]->Destroy(); delete gpUserHeap[0]; gpUserHeap[0] = NULL; } void*CodeAlloc(size_t size) { if(gMainHeapSize < sizeof(CFixedHeap)) { return malloc(size); } if(gpUserHeap[gCurUserHeapIndex]==NULL) { int OldSize; InitMemoryAllocUserHeap(); OldSize = gMainHeapSize; gMainHeapSize = 0; gpUserHeap[gCurUserHeapIndex] = new CFixedHeap; gMainHeapSize = OldSize; gpUserHeap[gCurUserHeapIndex]->Create(OldSize); gMaxUserHeapCount++; } return gpUserHeap[gCurUserHeapIndex]->Allocate((ULSIZE)size); } void CodeFree(void*p) { if(gMainHeapSize < sizeof(CFixedHeap)) { free(p); return; } for(int n=0;nFree(p)) return; } free(p); } #else void*CodeAlloc(size_t size) { return malloc(size); } void CodeFree(void*p) { free(p); } #endif//CODE_ALLOC_USER_HEAP NAME_SPACE_END ================================================ FILE: Project/Code/Source/OptionValue.cpp ================================================ #include "StdAfx.h" #include "OptionValue.h" COptionValue::COptionValue() { } COptionValue::~COptionValue() { } void COptionValue::RegisterValueAry(STRegOptVal*pValAry) { while(pValAry->szName) { switch(pValAry->Type) { case STOptVal::STR_VAL: InsertStrValue(pValAry->szName,(WCHAR*)pValAry->pValue,pValAry->Length); break; case STOptVal::INT_VAL: InsertIntValue(pValAry->szName,(int*)pValAry->pValue); break; case STOptVal::UINT_VAL: InsertUintValue(pValAry->szName,(UINT*)pValAry->pValue); break; case STOptVal::FLOAT_VAL: InsertFloatValue(pValAry->szName,(float*)pValAry->pValue); break; } pValAry++; } } //Unicode bool COptionValue::InsertStrValue(PCWSTR szName,WCHAR*pValue,int Length) { COptValMap::IT Iter = m_OptValMap.InsertUnique(szName); if(Iter==m_OptValMap.End()) return false; Iter->Type = STOptVal::STR_VAL; Iter->pStrVal = pValue; Iter->Length = Length; return true; } bool COptionValue::InsertIntValue(PCWSTR szName,int*pValue) { COptValMap::IT Iter = m_OptValMap.InsertUnique(szName); if(Iter==m_OptValMap.End()) return false; Iter->Type = STOptVal::INT_VAL; Iter->pIntVal = pValue; Iter->Length = sizeof(int); return true; } bool COptionValue::InsertUintValue(PCWSTR szName,UINT*pValue) { COptValMap::IT Iter = m_OptValMap.InsertUnique(szName); if(Iter==m_OptValMap.End()) return false; Iter->Type = STOptVal::UINT_VAL; Iter->pUintVal = pValue; Iter->Length = sizeof(UINT); return true; } bool COptionValue::InsertFloatValue(PCWSTR szName,float*pValue) { COptValMap::IT Iter = m_OptValMap.InsertUnique(szName); if(Iter==m_OptValMap.End()) return false; Iter->Type = STOptVal::FLOAT_VAL; Iter->pFloatVal = pValue; Iter->Length = sizeof(float); return true; } bool COptionValue::RemoveValue(PCWSTR szName) { return m_OptValMap.Remove(szName)!=0; } STOptVal::TYPE COptionValue::GetValue(PCWSTR szName,void**ppValue,int*pLength) { COptValMap::IT Iter = m_OptValMap.Find(szName); if(Iter==m_OptValMap.End()) return STOptVal::NULL_VAL; *ppValue = Iter->pValue; if(pLength) *pLength = Iter->Length; return Iter->Type; } WCHAR*COptionValue::GetStrValue(PCWSTR szName,int*pLength) { COptValMap::IT Iter = m_OptValMap.Find(szName); if(Iter==m_OptValMap.End()) return NULL; if(Iter->Type != STOptVal::STR_VAL) return NULL; if(pLength) *pLength = Iter->Length; return Iter->pStrVal; } int*COptionValue::GetIntValue(PCWSTR szName) { COptValMap::IT Iter = m_OptValMap.Find(szName); if(Iter==m_OptValMap.End()) return NULL; if(Iter->Type != STOptVal::INT_VAL) return NULL; return Iter->pIntVal; } UINT*COptionValue::GetUintValue(PCWSTR szName) { COptValMap::IT Iter = m_OptValMap.Find(szName); if(Iter==m_OptValMap.End()) return NULL; if(Iter->Type != STOptVal::UINT_VAL) return NULL; return Iter->pUintVal; } float*COptionValue::GetFloatValue(PCWSTR szName) { COptValMap::IT Iter = m_OptValMap.Find(szName); if(Iter==m_OptValMap.End()) return NULL; if(Iter->Type != STOptVal::FLOAT_VAL) return NULL; return Iter->pFloatVal; } //Ansi bool COptionValue::InsertStrValue(PCSTR szName,WCHAR*pValue,int Length) { WCHAR wszName[MAX_LONG_NAME_LEN]; AnsiToUnicode(szName,wszName,MAX_LONG_NAME_LEN); return InsertStrValue(wszName,pValue,Length); } bool COptionValue::InsertIntValue(PCSTR szName,int*pValue) { WCHAR wszName[MAX_LONG_NAME_LEN]; AnsiToUnicode(szName,wszName,MAX_LONG_NAME_LEN); return InsertIntValue(wszName,pValue); } bool COptionValue::InsertUintValue(PCSTR szName,UINT*pValue) { WCHAR wszName[MAX_LONG_NAME_LEN]; AnsiToUnicode(szName,wszName,MAX_LONG_NAME_LEN); return InsertUintValue(wszName,pValue); } bool COptionValue::InsertFloatValue(PCSTR szName,float*pValue) { WCHAR wszName[MAX_LONG_NAME_LEN]; AnsiToUnicode(szName,wszName,MAX_LONG_NAME_LEN); return InsertFloatValue(wszName,pValue); } bool COptionValue::RemoveValue(PCSTR szName) { WCHAR wszName[MAX_LONG_NAME_LEN]; AnsiToUnicode(szName,wszName,MAX_LONG_NAME_LEN); return RemoveValue(wszName); } ================================================ FILE: Project/Code/Source/OptionValue.h ================================================ #ifndef _OPTION_VALUE_H_ #define _OPTION_VALUE_H_ struct STOptVal { enum TYPE{NULL_VAL,STR_VAL,INT_VAL,UINT_VAL,FLOAT_VAL}; TYPE Type; union { int*pIntVal; UINT*pUintVal; WCHAR*pStrVal; float*pFloatVal; void*pValue; }; int Length; }; struct STRegOptVal { PCWSTR szName; STOptVal::TYPE Type; void*pValue; int Length; }; typedef TMap COptValMap; class COptionValue { public: COptionValue(); ~COptionValue(); public://Unicode //Insert void RegisterValueAry(STRegOptVal*pValAry); bool InsertStrValue(PCWSTR szName,WCHAR*pValue,int Length); bool InsertIntValue(PCWSTR szName,int*pValue); bool InsertUintValue(PCWSTR szName,UINT*pValue); bool InsertFloatValue(PCWSTR szName,float*pValue); //Remove bool RemoveValue(PCWSTR szName); //GetValue STOptVal::TYPE GetValue(PCWSTR szName,void**ppValue,int*pLength); WCHAR*GetStrValue(PCWSTR szName,int*pLength); int*GetIntValue(PCWSTR szName); UINT*GetUintValue(PCWSTR szName); float*GetFloatValue(PCWSTR szName); public://Ansi //Insert bool InsertStrValue(PCSTR szName,WCHAR*pValue,int Length); bool InsertIntValue(PCSTR szName,int*pValue); bool InsertUintValue(PCSTR szName,UINT*pValue); bool InsertFloatValue(PCSTR szName,float*pValue); //Remove bool RemoveValue(PCSTR szName); public: COptValMap m_OptValMap; }; #endif ================================================ FILE: Project/Code/Source/PageMem.cpp ================================================ #include "StdAfx.h" #include "PageMem.h" NAME_SPACE_BEGIN ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CPageMemory::CPageMemory() { m_PhysMemory=NULL; m_PageExistMap=NULL; ZeroMemory(m_PageDir,sizeof(m_PageDir)); m_Style = PMS_NO_PAGE_OUT; } CPageMemory::~CPageMemory() { } bool CPageMemory::Init(int PageCount,UINT Style) { m_Style = Style; if((m_Style & PMS_DYN_PAGE)==0) { m_PhysMemory = new BYTE[PageCount*MP_SIZE]; if(m_PhysMemory==NULL) return false; m_PageExistMap = new BYTE[PageCount]; if(m_PageExistMap==NULL) { SafeDelete(m_PhysMemory); return false; } ZeroMemory(m_PageExistMap,PageCount); } ZeroMemory(m_PageDir,sizeof(m_PageDir)); ZeroMemory(&m_PageDataCache1,sizeof(m_PageDataCache1)); ZeroMemory(&m_PageDataCache2,sizeof(m_PageDataCache2)); m_PageCount=PageCount; m_PageUsedCount = 0; m_FreePhysIndex=0; m_WriteAccessPageCount = 0; return true; } void CPageMemory::Release() { if(m_Style & PMS_DYN_PAGE) { for(DWORD n=0;nAttribute & MP_DIRTY) && (pPage->Attribute & MP_LOCK)==0 && pPage->PhysAddr) { if(SavePage(Address,pPage)) count++; } } } return count; } CPageImage*CPageMemory::GetImage(PCSTR ModuleName) { for(CImgRangeMap::IT Iter = m_ImageRangeMap.Begin();Iter!=m_ImageRangeMap.End();Iter++) { if(TCmpModuleName((PCSTR)(*Iter)->m_ImageName,ModuleName)) return *Iter; } return NULL; } CPageImage*CPageMemory::GetImage(ULPOS ModuleBase) { CImgRangeMap::IT Iter; Iter = m_ImageRangeMap.Find(CImgRangeMap::RANGE(ModuleBase)); if(Iter == m_ImageRangeMap.End()) return NULL; return *Iter; } bool CPageMemory::MapImage(CPageImage*pImageFile) { CImgRangeMap::IT Iter; DWORD DirIndex,PageIndex,PageCount,Address,Size; MEMORY_PAGE*pPage; Iter = m_ImageRangeMap.Find(CImgRangeMap::RANGE(pImageFile->m_ImageBase)); if(Iter!=m_ImageRangeMap.End()) return false; Address = pImageFile->m_ImageBase; Size = (DWORD)pImageFile->m_ImageSize; PageIndex = (Address>>12) & 0x3FF; DirIndex = Address>>22; PageCount = PAGE_COUNT(Size,MP_SIZE); while(DirIndexAttribute!=MP_FREE) return false; pPage->Attribute = pImageFile->GetPageAttribute(Address) | MP_IMAGE; pPage->PhysAddr = NULL; pPage->AccessWriteCount = pPage->AccessReadCount = 0; PageCount--; Address+=MP_SIZE; PageIndex++; } DirIndex++; PageIndex = 0; } m_ImageRangeMap.InsertUnique(CImgRangeMap::RANGE(pImageFile->m_ImageBase,pImageFile->m_ImageHighBase-1),pImageFile); return true; } bool CPageMemory::UnmapImage(CPageImage*pImageFile) { DWORD DirIndex,PageIndex,Address,PageCount; MEMORY_PAGE*pPage; CImgRangeMap::IT Iter = m_ImageRangeMap.Find(CImgRangeMap::RANGE(pImageFile->m_ImageBase)); if(Iter==m_ImageRangeMap.End()) return false; Address = pImageFile->m_ImageBase; PageIndex = (Address>>12) & 0x3FF; DirIndex = Address>>22; PageCount = (DWORD)pImageFile->m_ImageSize / MP_SIZE; while(DirIndex=m_PageCount && ExchangePage()==false) return false;//޿õҳ PageIndex = (Address>>12) & 0x3FF; DirIndex=Address>>22; if(m_PageDir[DirIndex]==NULL) { m_PageDir[DirIndex] = new MEMORY_PAGE[PAGE_DIR_CONTENT]; ZeroMemory(m_PageDir[DirIndex],sizeof(MEMORY_PAGE)*PAGE_DIR_CONTENT); } pPage = &m_PageDir[DirIndex][PageIndex]; if(pPage->Attribute!=MP_FREE) return false; pPage->Attribute = Attribute; if((pPage->Attribute & MP_COMMIT)==0) { if(NewPage(pPage)==false) { pPage->Attribute = MP_FREE; return false; } pPage->Attribute |=MP_DIRTY; } pPage->AccessWriteCount = pPage->AccessReadCount = 0; if(Size>MP_SIZE) Size=MP_SIZE; if((pPage->Attribute & MP_COMMIT)==0) { if(Buffer) { if(Size>MP_SIZE) Size=MP_SIZE; memcpy(pPage->PhysAddr,Buffer,Size); if(SizePhysAddr[Size],MP_SIZE-Size); } else ZeroMemory(pPage->PhysAddr,MP_SIZE); } return true; } bool CPageMemory::AllocatePage(ULPOS Address,UINT Attribute,BYTE PageData) { DWORD DirIndex,PageIndex; MEMORY_PAGE*pPage; PageIndex = (Address>>12) & 0x3FF; DirIndex=Address>>22; if(m_PageDir[DirIndex]==NULL) { m_PageDir[DirIndex] = new MEMORY_PAGE[PAGE_DIR_CONTENT]; ZeroMemory(m_PageDir[DirIndex],sizeof(MEMORY_PAGE)*PAGE_DIR_CONTENT); } pPage = &m_PageDir[DirIndex][PageIndex]; if(pPage->Attribute!=MP_FREE) return false; ZeroMemory(pPage,sizeof(MEMORY_PAGE)); pPage->Attribute = Attribute|MP_CONST; pPage->PageData = PageData; return true; } bool CPageMemory::ReleasePage(ULPOS Address) { int DirIndex,PageIndex; MEMORY_PAGE*pPage; Address>>=12; PageIndex = Address & 0x3FF; DirIndex=Address>>10; pPage = m_PageDir[DirIndex]; if(pPage==NULL || pPage[PageIndex].PhysAddr == NULL) return false; pPage = &pPage[PageIndex]; DeletePage(pPage); ZeroMemory(pPage,sizeof(MEMORY_PAGE)); return true; } DWORD CPageMemory::ReleaseClearPage() { MEMORY_PAGE*pPage; int Count=0; for(int n=0;nAttribute&MP_DIRTY)==0&&(pPage->Attribute&MP_LOCK)==0&&pPage->PhysAddr) { DeletePage(pPage); if(pPage->Attribute & MP_IMAGE) pPage->PhysAddr=NULL; else ZeroMemory(pPage,sizeof(MEMORY_PAGE)); Count++; if(m_PageUsedCount<=0) return Count; } } } return Count; } bool CPageMemory::IsPageExist(ULPOS Address) { DWORD DirIndex,PageIndex; MEMORY_PAGE*pPage; Address>>=12; PageIndex = Address & 0x3FF; DirIndex=Address>>10; pPage = m_PageDir[DirIndex]; if( pPage==NULL || pPage[PageIndex].Attribute == MP_FREE) return false; return true; } bool CPageMemory::IsPageDirExist(ULPOS Address) { DWORD DirIndex,PageIndex; MEMORY_PAGE*pPage; Address>>=12; PageIndex = Address & 0x3FF; DirIndex=Address>>10; pPage = m_PageDir[DirIndex]; if( pPage==NULL ) return false; return true; } MEMORY_PAGE*CPageMemory::GetDataPage(ULPOS Address,bool bWrite) { DWORD DirIndex,PageIndex; MEMORY_PAGE*pPage; Address&=MP_NOT_MASK; if(m_PageDataCache1.bExist && Address == m_PageDataCache1.BaseAddr) { m_PageDataCache1.AccessCount++; return m_PageDataCache1.MemoryPage; } if(m_PageDataCache2.bExist && Address == m_PageDataCache2.BaseAddr) { m_PageDataCache2.AccessCount++; return m_PageDataCache2.MemoryPage; } PageIndex = (Address>>12) & 0x3FF; DirIndex = Address>>22; pPage = m_PageDir[DirIndex]; if(pPage==NULL || pPage[PageIndex].Attribute == MP_FREE) return NULL; pPage = &pPage[PageIndex]; if(pPage->Attribute&MP_COMMIT) { if(NewPage(pPage)==false) return NULL; } else if((pPage->Attribute&MP_IMAGE) && pPage->PhysAddr==NULL && LoadPage(Address,pPage)==false) return NULL; if(m_PageDataCache1.AccessCount>m_PageDataCache2.AccessCount) { m_PageDataCache2.bExist = true; m_PageDataCache2.BaseAddr = Address; m_PageDataCache2.AccessCount = 0; m_PageDataCache2.MemoryPage = pPage; } else { m_PageDataCache1.bExist = true; m_PageDataCache1.BaseAddr = Address; m_PageDataCache1.AccessCount = 0; m_PageDataCache1.MemoryPage = pPage; } return pPage; } bool CPageMemory::LoadPage(ULPOS Address,MEMORY_PAGE*pPage) { CPageImage*pImageFile; if(m_PageUsedCount>=m_PageCount && ExchangePage()==false) return false; CImgRangeMap::IT Iter = m_ImageRangeMap.Find(CImgRangeMap::RANGE(Address)); if(Iter==m_ImageRangeMap.End()) return false; pImageFile = *Iter; CODE_ASSERT((pPage->Attribute&MP_COMMIT)==0); if(NewPage(pPage)==false) return false; if(pImageFile->LoadPage(Address,pPage->PhysAddr)==false) { DeletePage(pPage); ZeroMemory(pPage,sizeof(MEMORY_PAGE)); return false; } return true; } bool CPageMemory::SavePage(ULPOS Address,MEMORY_PAGE*pPage) { if((pPage->Attribute & MP_IMAGE)==0 || (m_Style & PMS_PAGE_OUT)==0 || pPage->PhysAddr==NULL) return false; CImgRangeMap::IT Iter = m_ImageRangeMap.Find(CImgRangeMap::RANGE(Address)); if(Iter==m_ImageRangeMap.End()) return false; if((*Iter)->SavePage(Address,pPage->PhysAddr)==false) return false; DeletePage(pPage); pPage->Attribute &= ~MP_DIRTY; return true; } ULSIZE CPageMemory::ReadMemX(ULPOS Address,void*Buffer,ULSIZE Size) { MEMORY_PAGE*pPage; ULSIZE RSize; ULPOS RAddr; RAddr=Address; RSize=MIN(Size,MP_SIZE-Address%MP_SIZE); while(Size>0) { pPage=GetDataPage(RAddr); if(pPage==NULL) return RAddr - Address; if(pPage->Attribute & MP_CONST) memset(RT_PBYTE(Buffer,RAddr-Address),(BYTE)pPage->PageData,RSize); else memcpy(RT_PBYTE(Buffer,RAddr-Address),&pPage->PhysAddr[RAddr&MP_MASK],RSize); Size-=RSize; RAddr+=RSize; RSize=MIN(Size,MP_SIZE); } return RAddr - Address; } ULSIZE CPageMemory::WriteMemX(ULPOS Address,void*Buffer,ULSIZE Size) { MEMORY_PAGE*pPage; ULPOS WAddr; ULSIZE WSize; WAddr=Address; WSize=MIN(Size,MP_SIZE-Address%MP_SIZE); while(Size>0) { pPage=GetDataPage(WAddr,true); if(pPage==NULL) return WAddr - Address; if((pPage->Attribute & MP_CONST)==0) memcpy(&pPage->PhysAddr[WAddr&MP_MASK],RT_PBYTE(Buffer,WAddr-Address),WSize); pPage->Attribute |= MP_DIRTY; Size-=WSize; WAddr+=WSize; WSize=MIN(Size,MP_SIZE); } return WAddr - Address; } ULSIZE CPageMemory::ZeroMemX(ULPOS Address,ULSIZE Size) { MEMORY_PAGE*pPage; ULPOS WAddr; ULSIZE WSize; WAddr=Address; WSize=MIN(Size,MP_SIZE-Address%MP_SIZE); while(Size>0) { pPage=GetDataPage(WAddr,true); if(pPage==NULL) return WAddr - Address; if((pPage->Attribute & MP_CONST)==0) ZeroMemory(&pPage->PhysAddr[WAddr&MP_MASK],WSize); pPage->Attribute |= MP_DIRTY; Size-=WSize; WAddr+=WSize; WSize=MIN(Size,MP_SIZE); } return WAddr - Address; } ULSIZE CPageMemory::ReadMemory(ULPOS Address,void* Buffer,ULSIZE Size,CPageMemory*pPageMemory) { return pPageMemory->ReadMemX(Address,Buffer,Size); } ULSIZE CPageMemory::WriteMemory(ULPOS Address,void* Buffer,ULSIZE Size,CPageMemory*pPageMemory) { return pPageMemory->WriteMemX(Address,Buffer,Size); } ULSIZE CPageMemory::ReadString(ULPOS Address,PSTR Buffer,ULSIZE MaxLen) { ULSIZE Readed; BYTE Str; MaxLen--; for(Readed=0;Readed=MaxLen) WriteMemB(Address+Written-1,(BYTE*)"\x00"); return Written-1; } ULSIZE CPageMemory::ReadString(ULPOS Address,PWORD Buffer,ULSIZE MaxLen) { ULSIZE Readed; WORD Str; MaxLen--; for(Readed=0;Readed=MaxLen) WriteMemW(Address+(Written-1)*2,(PWORD)"\x00\x00"); return Written-1; } ULSIZE CPageMemory::ReadString(ULPOS Address,PDSTR Buffer,ULSIZE MaxLen) { ULSIZE Readed; WORD Str; MaxLen--; for(Readed=0;Readed=MaxLen) WriteMemD(Address+(Written-1)*4,(PDSTR)"\x00\x00\x00\x00"); return Written-1; } bool CPageMemory::ReadMemB(ULPOS Address,void* Buffer) { MEMORY_PAGE*pPage=GetDataPage(Address); if(pPage==NULL) return false; if(pPage->Attribute & MP_CONST) *_RT_PBYTE(Buffer)=(BYTE)pPage->PageData; else *_RT_PBYTE(Buffer)=pPage->PhysAddr[Address & MP_MASK]; pPage->AccessReadCount++; return true; } bool CPageMemory::ReadMemW(ULPOS Address,void* Buffer) { MEMORY_PAGE*pPage=GetDataPage(Address); if((Address & MP_MASK)<= MP_SIZE-2) { if(pPage==NULL) return false; if(pPage->Attribute & MP_CONST) { _PUT_BYTE(Buffer,(BYTE)pPage->PageData); PUT_BYTE(Buffer,1,(BYTE)pPage->PageData); } else { #ifdef CODE_BUS_ALIGN BYTE*VirtualBuffer=&pPage->PhysAddr[Address & MP_MASK]; PUT_BYTE(Buffer,1,VirtualBuffer[0]); _PUT_BYTE(Buffer,VirtualBuffer[1]); #else *_RT_PWORD(Buffer)=GET_WORD(pPage->PhysAddr,Address & MP_MASK); #endif } pPage->AccessReadCount++; return true; } #ifndef CODE_BIG_ENDIAN if( ReadMemB(Address,Buffer)==false || ReadMemB(Address+1,RT_PVOID(Buffer,1))==false) return false; #else if( ReadMemB(Address,RT_PVOID(Buffer,1))==false || ReadMemB(Address+1,Buffer)==false) return false; #endif return true; } bool CPageMemory::ReadMemD(ULPOS Address,void* Buffer) { MEMORY_PAGE*pPage=GetDataPage(Address); if((Address & MP_SIZE)<= MP_SIZE-4) { if(pPage==NULL) return false; if(pPage->Attribute & MP_CONST) { _PUT_BYTE(Buffer, (BYTE)pPage->PageData); PUT_BYTE(Buffer,1,(BYTE)pPage->PageData); PUT_BYTE(Buffer,2,(BYTE)pPage->PageData); PUT_BYTE(Buffer,3,(BYTE)pPage->PageData); } else { #ifdef CODE_BUS_ALIGN BYTE*VirtualBuffer=&pPage->PhysAddr[Address & MP_MASK]; PUT_BYTE(Buffer,3,VirtualBuffer[0]); PUT_BYTE(Buffer,2,VirtualBuffer[1]); PUT_BYTE(Buffer,1,VirtualBuffer[2]); _PUT_BYTE(Buffer,VirtualBuffer[3]); #else *_RT_PDWORD(Buffer)=GET_DWORD(pPage->PhysAddr,Address & MP_MASK); #endif } pPage->AccessReadCount++; return true; } #ifndef CODE_BIG_ENDIAN if( ReadMemW(Address,Buffer)==false || ReadMemW(Address+2,RT_PVOID(Buffer,2))==false) return false; #else if( ReadMemW(Address,RT_PVOID(Buffer,2))==false || ReadMemW(Address+2,Buffer)==false) return false; #endif return true; } bool CPageMemory::WriteMemB(ULPOS Address,void* Buffer) { MEMORY_PAGE*pPage=GetDataPage(Address,true); if(pPage==NULL) return false; if((pPage->Attribute & MP_CONST)==0) pPage->PhysAddr[Address&MP_MASK]=_GET_BYTE(Buffer); if((pPage->Attribute & MP_DIRTY)==0) { m_WriteAccessPageCount++; pPage->Attribute |= MP_DIRTY; } pPage->AccessWriteCount++; return true; } bool CPageMemory::WriteMemW(ULPOS Address,void* Buffer) { MEMORY_PAGE*pPage=GetDataPage(Address,true); if((Address & MP_MASK)<= MP_SIZE-2) { if(pPage==NULL) return false; if((pPage->Attribute & MP_CONST)==0) { #ifdef CODE_BUS_ALIGN BYTE*VirtualBuffer=&pPage->PhysAddr[Address & MP_MASK]; VirtualBuffer[0]=GET_BYTE(Buffer,1); VirtualBuffer[1]=_GET_BYTE(Buffer); #else PUT_WORD(pPage->PhysAddr,Address & MP_MASK,*_RT_PWORD(Buffer)); #endif } if((pPage->Attribute & MP_DIRTY)==0) { m_WriteAccessPageCount++; pPage->Attribute |= MP_DIRTY; } pPage->AccessWriteCount++; return true; } #ifndef CODE_BIG_ENDIAN if( WriteMemB(Address,Buffer)==false || WriteMemB(Address+1,RT_PVOID(Buffer,1))) return false; #else if( WriteMemB(Address,RT_PVOID(Buffer,1))==false || WriteMemB(Address+1,Buffer)) return false; #endif return true; } bool CPageMemory::WriteMemD(ULPOS Address,void* Buffer) { MEMORY_PAGE*pPage=GetDataPage(Address,true); /////////////////////ݶϵ//////////////////////// if((Address & MP_MASK)<=MP_SIZE-4) { if(pPage==NULL) return false; if((pPage->Attribute & MP_CONST)==0) { #ifdef CODE_BUS_ALIGN BYTE*VirtualBuffer=&pPage->PhysAddr[Address & MP_MASK]; VirtualBuffer[0]=GET_BYTE(Buffer,3); VirtualBuffer[1]=GET_BYTE(Buffer,2); VirtualBuffer[2]=GET_BYTE(Buffer,1); VirtualBuffer[3]=_GET_BYTE(Buffer); #else PUT_DWORD(pPage->PhysAddr,Address & MP_MASK,*_RT_PDWORD(Buffer)); #endif } if((pPage->Attribute & MP_DIRTY)==0) { m_WriteAccessPageCount++; pPage->Attribute |= MP_DIRTY; } pPage->AccessWriteCount++; return true; } #ifndef CODE_BIG_ENDIAN if( WriteMemW(Address,Buffer)==false || WriteMemW(Address+2,RT_PVOID(Buffer,2))==false) return false; #else if( WriteMemW(Address,RT_PVOID(Buffer,2))==false || WriteMemW(Address+2,Buffer)==false) return false; #endif return true; } bool CPageMemory::NewPage(MEMORY_PAGE*pPage) { if(m_Style & PMS_DYN_PAGE) { pPage->PhysAddr = new BYTE[MP_SIZE]; ZeroMemory(pPage->PhysAddr,MP_SIZE); } else { CODE_ASSERT(m_FreePhysIndex>=0); if(m_FreePhysIndex>=m_PageCount) return false; pPage->PhysAddr = RT_PBYTE(m_PhysMemory,m_FreePhysIndex*MP_SIZE); m_PageExistMap[m_FreePhysIndex] = PHYS_PAGE_EXIST; while(m_FreePhysIndexAttribute &= ~MP_COMMIT; m_PageUsedCount++; return true; } bool CPageMemory::DeletePage(MEMORY_PAGE*pPage) { int PhysIndex; if((pPage->Attribute&MP_COMMIT)==0 && pPage->PhysAddr) { if(m_Style & PMS_DYN_PAGE) { delete pPage->PhysAddr; pPage->PhysAddr = NULL; } else { CODE_ASSERT(pPage->PhysAddr>=m_PhysMemory); PhysIndex = (int)((pPage->PhysAddr-m_PhysMemory) / MP_SIZE); m_PageExistMap[PhysIndex] = PHYS_PAGE_NULL; pPage->PhysAddr = NULL; if(PhysIndex CImgRangeMap; ////////////////////////////////////32ַλֲ///////////////////////////////////////////// //[ ҳĿ¼(10BIT) ] [ ҳ(10BIT) ] [ ַҳƫ(12BIT) ] //1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 ///////////////////////////////////////////////////////////////////////////////////////////////// class CPageMemory { public: CPageMemory(); virtual ~CPageMemory(); MEMORY_PAGE_CACHE m_PageDataCache1; //ݶд1 MEMORY_PAGE_CACHE m_PageDataCache2; //ݶд2 int m_PageUsedCount; //ҳ int m_PageCount; //ҳ BYTE* m_PhysMemory; //ڴ BYTE* m_PageExistMap; //ҳĿ¼ MEMORY_PAGE*m_PageDir[PAGE_DIR_COUNT]; //ҳĿ¼ int m_WriteAccessPageCount; //дڴҳ int m_FreePhysIndex; UINT m_Style; CImgRangeMap m_ImageRangeMap; public: virtual bool Init(int PageCount,UINT Style); virtual void Release(); virtual void RefreshCache(MEMORY_PAGE*pPage); virtual bool LoadPage(ULPOS Address,MEMORY_PAGE*pPage); //ַҳСı virtual bool SavePage(ULPOS Address,MEMORY_PAGE*pPage); virtual bool ExchangePage(); virtual int FlushAllPage(); virtual bool MapImage(CPageImage*pImageFile); virtual bool UnmapImage(CPageImage*pImageFile); MEMORY_PAGE*GetDataPage(ULPOS Address,bool bWrite = false); //ݵַõҳ CPageImage* GetImage(PCSTR ModuleName); CPageImage* GetImage(ULPOS ModuleBase); bool AllocatePage(ULPOS Address,UINT Attribute=MP_READ|MP_WRITE,void*Buffer=NULL,ULSIZE Size=MP_SIZE); bool AllocatePage(ULPOS Address,UINT Attribute,BYTE PageData); bool ReleasePage(ULPOS Address); DWORD ReleaseClearPage(); bool IsPageExist(ULPOS Address); bool IsPageDirExist(ULPOS Address); public: static ULSIZE ReadMemory(ULPOS Address,void* Buffer,ULSIZE Size,CPageMemory*pPageMemory); static ULSIZE WriteMemory(ULPOS Address,void* Buffer,ULSIZE Size,CPageMemory*pPageMemory); ULSIZE ReadString(ULPOS Address,PSTR Buffer,ULSIZE MaxLen); ULSIZE ReadString(ULPOS Address,PWORD Buffer,ULSIZE MaxLen); ULSIZE ReadString(ULPOS Address,PDSTR Buffer,ULSIZE MaxLen); ULSIZE WriteString(ULPOS Address,PSTR Buffer,ULSIZE MaxLen); ULSIZE WriteString(ULPOS Address,PWORD Buffer,ULSIZE MaxLen); ULSIZE WriteString(ULPOS Address,PDSTR Buffer,ULSIZE MaxLen); ULSIZE ReadMemX(ULPOS Address,void* Buffer,ULSIZE Size); ULSIZE WriteMemX(ULPOS Address,void* Buffer,ULSIZE Size); ULSIZE ZeroMemX(ULPOS Address,ULSIZE Size); bool ReadMemB(ULPOS Address,void* Buffer); bool ReadMemW(ULPOS Address,void* Buffer); bool ReadMemD(ULPOS Address,void* Buffer); bool WriteMemB(ULPOS Address,void* Buffer); bool WriteMemW(ULPOS Address,void* Buffer); bool WriteMemD(ULPOS Address,void* Buffer); protected: bool NewPage(MEMORY_PAGE*pPage); bool DeletePage(MEMORY_PAGE*pPage); }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/PolyFS.cpp ================================================ #include "StdAfx.h" #include "PolyFS.h" NAME_SPACE_BEGIN CPolyFS::CPolyFS() { m_pFileIO = gpFileIO; m_ZeroBuffer=NULL; m_MaxCachePageCount = 0x100; } CPolyFS::~CPolyFS() { CloseDisk(); } void CPolyFS::ChangeFileIO(CFileIO*pFileIO) { m_pFileIO = pFileIO; } bool CPolyFS::Format(PCSTR DiskFileName,ULONG Size,DWORD ClusSize) { DWORD Data; if(Size==0) return false; if(ClusSize==0) ClusSize=0x1000; m_DiskImage.ChangeFileIO(m_pFileIO); if(m_DiskImage.Create(DiskFileName)==false) return false; m_ClusSize = ALIGN_SIZE(ClusSize,0x100); PFS_HEAD PFSHead; STZeroMemory(PFSHead); TStrCpy((char*)PFSHead.Sign,"PFS"); m_ClusCount = PFSHead.ClusCount = ALIGN_SIZE(Size/m_ClusSize,m_ClusSize/4); Size = m_ClusCount*m_ClusSize; PFSHead.ClusSize = m_ClusSize; TStrCpy(PFSHead.FatEntry.FileName,"*FAT*"); PFSHead.FatEntry.Attribute=PFS_FILE_SYSTEM; PFSHead.FatEntry.BeginClus=1; PFSHead.FatEntry.FileSize=PFSHead.ClusCount*4; PFSHead.FatEntry.NameCode=TGetNameCode(PFSHead.FatEntry.FileName); m_DiskImage.m_FileSize = m_ClusSize*m_ClusCount; m_Style = PFS_NORMAL; InitParam(); m_FatOff = PFSHead.FatEntry.BeginClus*m_ClusSize; if(WriteDiskFile(0,&PFSHead,sizeof(PFS_HEAD))==false) { CloseDisk(); return false; } DWORD nClusOfFat=PFSHead.FatEntry.FileSize/m_ClusSize; for(DWORD n=0;n=m_ClusCount) return false; return ReadDiskFile(Index*m_ClusSize,Buffer,m_ClusSize); } bool CPolyFS::WriteClus(DWORD Index,void*Buffer) { if(Index>=m_ClusCount) return false; return WriteDiskFile(Index*m_ClusSize,Buffer,m_ClusSize); } DWORD CPolyFS::FileOffToDP(DWORD ClusIndex,DWORD Offset) { while(Offset>=m_ClusSize) { if(ReadFatCell(ClusIndex,&ClusIndex)==false) return 0; if(ClusIndex==PFS_END_CLUS) return 0; Offset-=m_ClusSize; } return ClusIndex*m_ClusSize+Offset; } DWORD CPolyFS::FileOffToClus(DWORD ClusIndex,DWORD Offset) { while(Offset>=m_ClusSize) { if(ReadFatCell(ClusIndex,&ClusIndex)==false) return PFS_END_CLUS; if(ClusIndex==PFS_END_CLUS) return PFS_END_CLUS; Offset-=m_ClusSize; } return ClusIndex; } DWORD CPolyFS::ReadFile(PFS_FILE_DATA*pHandleData,DWORD Offset,void*Buffer,DWORD Size) { DWORD CompressSize,RealFileLength; BYTE*CompressBuffer; if((pHandleData->ThisFileEntry.Attribute&PFS_FILE_COMPRESS)==0) return ReadFile(&pHandleData->ThisFileEntry,Offset,Buffer,Size); if(ReadFile(&pHandleData->ThisFileEntry,0,&RealFileLength,4)!=4) return 0; if(Offset!=0 || Size!=RealFileLength) return 0; CompressSize = pHandleData->ThisFileEntry.FileSize; CompressBuffer = new BYTE[CompressSize]; if(CompressBuffer==NULL) return 0; if(ReadFile(&pHandleData->ThisFileEntry,0,CompressBuffer,CompressSize)!=CompressSize) { delete CompressBuffer; return 0; } Decompress(CompressBuffer,CompressSize,Buffer); delete CompressBuffer; return Size; } DWORD CPolyFS::WriteFile(PFS_FILE_DATA*pHandleData,DWORD Offset,const void*Buffer,DWORD Size) { if(Offset+Size>pHandleData->ThisFileEntry.FileSize) { if(SetFileLength(pHandleData,Offset+Size)==false) return false; } return WriteFile(&pHandleData->ThisFileEntry,Offset,Buffer,Size); } DWORD CPolyFS::ReadFile(PFS_FILE_ENTRY*pFileEntry,DWORD Offset,void*Buffer,DWORD Size) { DWORD FileDP,nBytes,PageSize,Mod,ClusIndex; if(Offset>=pFileEntry->FileSize || Size==0) return 0; nBytes=0; Mod = Offset%m_ClusSize; if(Mod) { FileDP=FileOffToDP(pFileEntry->BeginClus,Offset); if(FileDP==0) return 0; PageSize=MIN(m_ClusSize-Mod,Size); if(ReadDiskFile(FileDP,RT_PVOID(Buffer,nBytes),PageSize)==false) return 0; nBytes+=PageSize; } ClusIndex=FileOffToClus(pFileEntry->BeginClus,Offset+nBytes); for(DWORD n=(Size-nBytes)/m_ClusSize;n>0 && Offset+nBytesFileSize;n--) { if(ClusIndex==PFS_END_CLUS || ReadClus(ClusIndex,RT_PVOID(Buffer,nBytes))==false) return false; nBytes+=m_ClusSize; ClusIndex = FileOffToClus(ClusIndex,m_ClusSize); } if(Size-nBytes && Offset+nBytesFileSize) { FileDP=FileOffToDP(ClusIndex,(Offset+nBytes)%m_ClusSize); if(FileDP==0) return nBytes; PageSize = Size-nBytes; if(ReadDiskFile(FileDP,RT_PVOID(Buffer,nBytes),PageSize)==false) return nBytes; nBytes+=PageSize; } return nBytes; } DWORD CPolyFS::WriteFile(PFS_FILE_ENTRY*pFileEntry,DWORD Offset,const void*Buffer,DWORD Size) { DWORD FileDP,nBytes,PageSize,Mod,ClusIndex; if(Offset>=pFileEntry->FileSize || Size==0) return 0; nBytes=0; Mod = Offset%m_ClusSize; if(Mod) { FileDP=FileOffToDP(pFileEntry->BeginClus,Offset); if(FileDP==0) return 0; PageSize=MIN(m_ClusSize-Mod,Size); if(WriteDiskFile(FileDP,RT_PVOID(Buffer,nBytes),PageSize)==false) return 0; nBytes+=PageSize; } ClusIndex=FileOffToClus(pFileEntry->BeginClus,Offset+nBytes); for(DWORD n=(Size-nBytes)/m_ClusSize;n>0 && Offset+nBytesFileSize;n--) { if(ClusIndex==PFS_END_CLUS || WriteClus(ClusIndex,RT_PVOID(Buffer,nBytes))==false) return false; nBytes+=m_ClusSize; ClusIndex = FileOffToClus(ClusIndex,m_ClusSize); } if(Size-nBytes && Offset+nBytesFileSize) { FileDP=FileOffToDP(ClusIndex,(Offset+nBytes)%m_ClusSize); if(FileDP==0) return nBytes; PageSize = Size-nBytes; if(WriteDiskFile(FileDP,RT_PVOID(Buffer,nBytes),PageSize)==false) return nBytes; nBytes+=PageSize; } return nBytes; } DWORD CPolyFS::FindFreeFileEntryFP(PFS_FILE_ENTRY*pParentEntry) { PFS_FILE_ENTRY FileEntry; DWORD Off; Off=0; while(OffFileSize) { if(ReadFile(pParentEntry,Off,&FileEntry,sizeof(FileEntry))!=sizeof(FileEntry)) return PFS_ERROR_FP; if(FileEntry.NameCode==0 || FileEntry.NameCode==PFS_ERROR_NAME_CODE) return Off; Off+=sizeof(FileEntry); } return PFS_ERROR_FP; } bool CPolyFS::CreateFile(PCSTR FileName,DWORD Attr,DWORD Size,PFS_FILE_ENTRY*pParentDirEntry,DWORD ParenFileEntryFP) { DWORD BeginClus,NextClus,PrevClus,nClus,Off; nClus=PAGE_COUNT(Size,m_ClusSize); if(nClus==0) { BeginClus=PFS_END_CLUS; } else { BeginClus=NextClus=FindNextFreeClus(0); for(DWORD n=0;nFilePoint=0; pHandleData->ParentEntry = FindData.ParentEntry; pHandleData->FileEntryFP = FreeFileEntryFP; return CPolyFS::ReadFile(&pHandleData->ParentEntry,FreeFileEntryFP,&pHandleData->ThisFileEntry,sizeof(pHandleData->ThisFileEntry))==sizeof(pHandleData->ThisFileEntry); } else { TStrCpy(FileName,TGetFileName(FullFileName)); TGetFilePath(FullFileName,PathName); if(*PathName==0) TStrCpy(PathName,"\\"); if(FindFirstFile(PathName,&FindData)==false) return false; FreeFileEntryFP=FindFreeFileEntryFP(&FindData.ThisFileEntry); if(FreeFileEntryFP==PFS_ERROR_FP) { if(SetFileLength(PathName,FindData.ThisFileEntry.FileSize+m_ClusSize)==false) return false; FindData.ThisFileEntry.FileSize+=m_ClusSize; if(*PathName=='\\' && PathName[1]==0) m_RootEntry = FindData.ThisFileEntry; FreeFileEntryFP=FindFreeFileEntryFP(&FindData.ThisFileEntry); if(FreeFileEntryFP==PFS_ERROR_FP) return false; } pHandleData->FilePoint=0; if(CreateFile(FileName,Attr,Size,&FindData.ThisFileEntry,FreeFileEntryFP)==false) return false; pHandleData->ParentEntry = FindData.ThisFileEntry; pHandleData->FileEntryFP = FreeFileEntryFP; return CPolyFS::ReadFile(&pHandleData->ParentEntry,FreeFileEntryFP,&pHandleData->ThisFileEntry,sizeof(pHandleData->ThisFileEntry))==sizeof(pHandleData->ThisFileEntry); } } bool CPolyFS::OpenFile(PCSTR FullFileName,PFS_FILE_DATA*pHandleData) { PFS_FIND_DATA FindData; if(FindFirstFile(FullFileName,&FindData)==false) return false; pHandleData->FilePoint=0; pHandleData->ThisFileEntry = FindData.ThisFileEntry; pHandleData->ParentEntry = FindData.ParentEntry; pHandleData->FileEntryFP = FindData.FileEntryFP; return true; } DWORD CPolyFS::FindNextFreeClus(DWORD ClusIdx) { DWORD Data; for(DWORD Index=ClusIdx;IndexThisFileEntry.FileSize,m_ClusSize); if(nNewClus>nOldClus) { if(nOldClus) { ClusIdx=FileOffToClus(pHandleData->ThisFileEntry.BeginClus,(nOldClus-1)*m_ClusSize); if(ClusIdx==PFS_END_CLUS) return false; } for(DWORD n=nOldClus;nParentEntry.BeginClus,pHandleData->FileEntryFP)+ST_FIELD_OFF(PFS_FILE_ENTRY,BeginClus); if(PrevFatDP==0) return false; ClusIdx=FindNextFreeClus(1); pHandleData->ThisFileEntry.BeginClus = ClusIdx; if(WriteDiskFile(PrevFatDP,&ClusIdx,4)==false) return false; } else { PrevIdx = ClusIdx; ClusIdx=FindNextFreeClus(ClusIdx+1); if(ClusIdx==PFS_END_CLUS) return false; if(WriteFatCell(PrevIdx,&ClusIdx)==false) return false; } } Data=PFS_END_CLUS; if(WriteFatCell(ClusIdx,&Data)==false) return false; DWORD Off,WTSize; Off = pHandleData->ThisFileEntry.FileSize; pHandleData->ThisFileEntry.FileSize = Length; while(Off < pHandleData->ThisFileEntry.FileSize) { WTSize = MIN(m_ClusSize,pHandleData->ThisFileEntry.FileSize - Off); WriteFile(&pHandleData->ThisFileEntry,Off,m_ZeroBuffer,WTSize); Off+=WTSize; } } else if(nNewClusThisFileEntry.BeginClus,nNewClus*m_ClusSize); if(DeleteFileClus(ClusIdx)==false) return false; Data=PFS_END_CLUS; if(WriteFatCell(ClusIdx,&Data)==false) return false; pHandleData->ThisFileEntry.FileSize=Length; } else { pHandleData->ThisFileEntry.FileSize = Length; } return WriteFile(&pHandleData->ParentEntry,pHandleData->FileEntryFP+ST_FIELD_OFF(PFS_FILE_ENTRY,FileSize),&Length,4)==4; } DWORD CPolyFS::GetFileLength(PCSTR FullFileName) { DWORD RealFileLength; PFS_FIND_DATA FindData; if(FindFirstFile(FullFileName,&FindData)==false) return false; if(FindData.ThisFileEntry.Attribute&PFS_FILE_COMPRESS) { if(ReadFile(&FindData.ThisFileEntry,0,&RealFileLength,4)!=4) return 0; return RealFileLength; } return FindData.ThisFileEntry.FileSize; } bool CPolyFS::DeleteFile(PCSTR FullFileName) { PFS_FIND_DATA FindData; if(*FullFileName!='\\' || FullFileName[1]==0) return false; if(FindFirstFile(FullFileName,&FindData)==false) return false; if(DeleteFileClus(FindData.ThisFileEntry.BeginClus)==false) return false; PFS_FILE_ENTRY FileEntry; STZeroMemory(FileEntry); FileEntry.NameCode = PFS_ERROR_NAME_CODE; return WriteFile(&FindData.ParentEntry,FindData.FileEntryFP,&FileEntry,sizeof(FileEntry))==sizeof(FileEntry); } bool CPolyFS::DeleteFileClus(DWORD BeginClus) { DWORD Data,nThisClus,nNextClus = BeginClus; Data=0; while(nNextClus!=PFS_END_CLUS) { nThisClus = nNextClus; if(ReadFatCell(nThisClus,&nNextClus)==false) return false; if(WriteFatCell(nThisClus,&Data)==false) return false; } return true; } bool CPolyFS::FindFirstFile(PCSTR FullFileName,PFS_FIND_DATA*pFindData) { PFS_FIND_DATA FindData; int Length; if(*FullFileName=='\\') { PCSTR pStr; char FileName[256]; STZeroMemory(FindData); FindData.ThisFileEntry=m_RootEntry; FindData.ParentEntry.BeginClus = 0; FindData.ParentEntry.FileSize = sizeof(PFS_HEAD); FindData.ParentEntry.Attribute = m_RootEntry.Attribute; FindData.FileEntryFP = ST_FIELD_OFF(PFS_HEAD,RootEntry); pStr=FullFileName; while(*pStr) { Length=0; while(*pStr && *pStr!='\\') { FileName[Length]=*pStr; Length++; pStr++; } FileName[Length]=0; if(Length) { FindData.ParentEntry=FindData.ThisFileEntry; if(FindFirstFile(FileName,&FindData)==false) return false; } while(*pStr=='\\') *pStr++; } *pFindData = FindData; return true; } DWORD Off=0; while(OffParentEntry.FileSize) { if(ReadFile(&pFindData->ParentEntry,Off,&pFindData->ThisFileEntry,sizeof(PFS_FILE_ENTRY))!=sizeof(PFS_FILE_ENTRY)) return false; if(CmpFileName(FullFileName,&pFindData->ThisFileEntry)) { TStrCpyLimit(pFindData->FileName,pFindData->ThisFileEntry.FileName,sizeof(pFindData->FileName)); pFindData->FileEntryFP = Off; TStrCpyLimit(pFindData->PattenName,FullFileName,sizeof(pFindData->PattenName)); return true; } Off+=sizeof(PFS_FILE_ENTRY); } return false; } bool CPolyFS::FindNextFile(PFS_FIND_DATA*pFindData) { DWORD Off; Off=pFindData->FileEntryFP+sizeof(PFS_FILE_ENTRY); while(OffParentEntry.FileSize) { if(ReadFile(&pFindData->ParentEntry,Off,&pFindData->ThisFileEntry,sizeof(PFS_FILE_ENTRY))!=sizeof(PFS_FILE_ENTRY)) return false; if(pFindData->ThisFileEntry.NameCode==0) return false; if(CmpFileName(pFindData->PattenName,&pFindData->ThisFileEntry)) { TStrCpyLimit(pFindData->FileName,pFindData->ThisFileEntry.FileName,sizeof(pFindData->FileName)); pFindData->FileEntryFP = Off; return true; } Off+=sizeof(PFS_FILE_ENTRY); } return false; } bool CPolyFS::CmpFileName(PCSTR FilePattenName,PFS_FILE_ENTRY*pFileEntry) { if(*pFileEntry->FileName==0) return false; if(FilePattenName[0]=='*' && FilePattenName[1]=='0') return true; if(TStrChr(FilePattenName,'*') || TStrChr(FilePattenName,'?')) return TIMultiMatchWithPattern(FilePattenName,pFileEntry->FileName); if(TStrICmp(FilePattenName,pFileEntry->FileName)==0) return true; return false; } bool CPolyFS::SetFileAttribute(PCSTR FullFileName,DWORD Attr) { PFS_FIND_DATA FindData; if(FindFirstFile(FullFileName,&FindData)==false) return false; return WriteFile(&FindData.ParentEntry,FindData.FileEntryFP+ST_FIELD_OFF(PFS_FILE_ENTRY,Attribute),&Attr,4)==4; } DWORD CPolyFS::GetFileAttribute(PCSTR FullFileName) { PFS_FIND_DATA FindData; if(FindFirstFile(FullFileName,&FindData)==false) return false; return FindData.ThisFileEntry.Attribute; } void CPolyFS::InitParam() { UINT MemMode; int PageCount; if(m_Style & PFS_FULL_DISK_CACHE) PageCount = (int)PAGE_COUNT(m_DiskImage.m_FileSize,MP_SIZE); else PageCount = (int)MIN(PAGE_COUNT(m_DiskImage.m_FileSize,MP_SIZE),m_MaxCachePageCount); if(m_Style & PFS_WRITE_COPY) MemMode = PMS_NO_PAGE_OUT; else MemMode = PMS_PAGE_OUT; m_PageMemory.Init(PageCount,MemMode); m_DiskImage.m_ImageBase = 0; m_DiskImage.m_ImageSize = m_ClusSize*m_ClusCount; m_DiskImage.m_ImageHighBase = m_DiskImage.m_ImageBase + m_DiskImage.m_ImageSize; m_PageMemory.MapImage(&m_DiskImage); m_ZeroBuffer = new BYTE[m_ClusSize]; if(m_Style & PFS_FULL_DISK_CACHE) { for(DWORD Address=(DWORD)m_DiskImage.m_ImageBase;Address<(DWORD)PageCount*MP_SIZE;Address+=m_ClusSize) { ReadDiskFile(Address,m_ZeroBuffer,m_ClusSize); } } ZeroMemory(m_ZeroBuffer,m_ClusSize); } bool CPolyFS::OpenDisk(PCSTR FileName,UINT Style) { m_Style = Style; m_DiskImage.ChangeFileIO(m_pFileIO); if(m_DiskImage.Open(FileName)==false) return false; PFS_HEAD PFSHead; if(m_DiskImage.ReadFile(&PFSHead,sizeof(PFSHead))==false) return false; if(TStrNCmp(PFSHead.Sign,"PFS",3)) { m_DiskImage.Close(); return false; } m_ClusSize = PFSHead.ClusSize; m_ClusCount = PFSHead.ClusCount; m_FatOff = PFSHead.FatEntry.BeginClus*m_ClusSize; m_RootEntry = PFSHead.RootEntry; InitParam(); return true; } void CPolyFS::CloseDisk() { if(m_DiskImage.IsOpened()==false) return; if((m_Style & PFS_WRITE_COPY)==0) m_PageMemory.FlushAllPage(); m_PageMemory.Release(); SafeDelete(m_ZeroBuffer); m_DiskImage.Close(); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //CPFSFileIO ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// CPFSFileIO::CPFSFileIO() { m_pszSepar = "\\"; m_pFileIO = NULL; } void CPFSFileIO::ChangeFileIO(CFileIO*pFileIO) { m_pFileIO = pFileIO; } bool CPFSFileIO::OpenDisk(PCSTR FileName,UINT Style) { m_Handle.Reset(); m_Handle.Register(); TList::IT Iter = m_PolyFSList.Append(); if(m_pFileIO) Iter->ChangeFileIO(m_pFileIO); if(Iter->OpenDisk(FileName,Style)==false) { m_PolyFSList.Remove(Iter); return false; } return true; } void CPFSFileIO::CloseAllDisk() { m_Handle.CloseAllHandle(); m_PolyFSList.Clear(); } bool CPFSFileIO::OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode) { PFS_FILE_DATA FileData; TList::IT Iter = m_PolyFSList.Begin(); while(Iter!=m_PolyFSList.End()) { if(Iter->OpenFile(FileName,&FileData)) break; Iter++; } if(Iter==m_PolyFSList.End()) return false; PFS_FILE_IO_HANDLE*pHandle= new PFS_FILE_IO_HANDLE; pHandle->FileData = FileData; pHandle->pDisk = &(*Iter); *phFile = NUM_TO_PTR(m_Handle.CreateHandle(pHandle,PFS_HANDLE_FILE)); return true; } bool CPFSFileIO::CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode) { PFS_FILE_DATA FileData; if(m_PolyFSList.Count()==0) return false; TList::IT Iter = m_PolyFSList.Begin(); if(Iter->CreateFile(FileName,PFS_FILE_NORMAL,0,&FileData)==false) return false; PFS_FILE_IO_HANDLE*pHandle= new PFS_FILE_IO_HANDLE; pHandle->FileData = FileData; pHandle->pDisk = &(*Iter); *phFile = NUM_TO_PTR(m_Handle.CreateHandle(pHandle,PFS_HANDLE_FILE)); return true; } bool CPFSFileIO::CreateDir(IN PCSTR FileName) { if(m_PolyFSList.Count()==0) return false; TList::IT Iter = m_PolyFSList.Begin(); PFS_FILE_DATA FileData; return Iter->CreateFile(FileName,PFS_FILE_DIR,Iter->m_ClusSize,&FileData); } bool CPFSFileIO::CloseHandle(IN HANDLE hFile) { return m_Handle.CloseHandle(PTR_TO_NUM(hFile)); } ULSIZE CPFSFileIO::ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset) { PFS_FILE_IO_HANDLE*pHandle; pHandle = (PFS_FILE_IO_HANDLE*)m_Handle.GetHandleInfo(PTR_TO_NUM(hFile)); if(pHandle==NULL) return 0; return pHandle->pDisk->ReadFile(&pHandle->FileData,(DWORD)Offset,Buffer,Size); } ULSIZE CPFSFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset) { PFS_FILE_IO_HANDLE*pHandle; pHandle = (PFS_FILE_IO_HANDLE*)m_Handle.GetHandleInfo(PTR_TO_NUM(hFile)); if(pHandle==NULL) return 0; return pHandle->pDisk->WriteFile(&pHandle->FileData,(DWORD)Offset,Buffer,Size); } ULSIZE CPFSFileIO::ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size) { return 0; } ULSIZE CPFSFileIO::WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size) { return 0; } ULLPOS CPFSFileIO::SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos) { return 0; } ULLSIZE CPFSFileIO::GetFileLength(IN HANDLE hFile) { DWORD RealFileLength; PFS_FILE_IO_HANDLE*pHandle; pHandle = (PFS_FILE_IO_HANDLE*)m_Handle.GetHandleInfo(PTR_TO_NUM(hFile)); if(pHandle==NULL) return (ULLSIZE)-1; if(pHandle->FileData.ThisFileEntry.Attribute&PFS_FILE_COMPRESS) { if(pHandle->pDisk->ReadFile(&pHandle->FileData.ThisFileEntry,0,&RealFileLength,4)!=4) return 0; return RealFileLength; } return pHandle->FileData.ThisFileEntry.FileSize; } bool CPFSFileIO::SetFileLength(IN HANDLE hFile,IN ULLSIZE Length) { PFS_FILE_IO_HANDLE*pHandle; pHandle = (PFS_FILE_IO_HANDLE*)m_Handle.GetHandleInfo(PTR_TO_NUM(hFile)); if(pHandle==NULL) return false; return pHandle->pDisk->SetFileLength(&pHandle->FileData,(DWORD)Length); } bool CPFSFileIO::DeleteFile(IN PCSTR FileName) { int Count=0; for(TList::IT Iter=m_PolyFSList.Begin();Iter!=m_PolyFSList.End();Iter++) { if(Iter->DeleteFile(FileName)) Count++; } return Count>0; } bool CPFSFileIO::RenameFile(IN PCSTR FileName,IN PCSTR NewFileName) { return 0; } bool CPFSFileIO::SetFileAttr(IN PCSTR FileName,DWORD Attr) { DWORD PFSAttr; PFSAttr=0; if(Attr & FIO_FA_READONLY) PFSAttr|=PFS_FILE_READONLY; if(Attr & FIO_FA_SYSTEM) PFSAttr|=PFS_FILE_SYSTEM; if(Attr & FIO_FA_DIR) PFSAttr|=PFS_FILE_DIR; if(Attr & FIO_FA_HIDDEN) PFSAttr|=PFS_FILE_HIDDEN; if(Attr & FIO_FA_COMPRESS) PFSAttr|=PFS_FILE_COMPRESS; int Count=0; for(TList::IT Iter=m_PolyFSList.Begin();Iter!=m_PolyFSList.End();Iter++) { if(Iter->SetFileAttribute(FileName,PFSAttr)) Count++; } return Count>0; } DWORD CPFSFileIO::GetFileAttr(IN PCSTR FileName) { DWORD PFSAttr,FIOAttr; TList::IT Iter=m_PolyFSList.Begin(); PFSAttr=PFS_FILE_ERROR; while(Iter!=m_PolyFSList.End()) { PFSAttr = Iter->GetFileAttribute(FileName); if(PFSAttr!=FIO_FA_ERROR) break; Iter++; } if(PFSAttr==PFS_FILE_ERROR) return FIO_FA_ERROR; FIOAttr = 0; if(PFSAttr & PFS_FILE_SYSTEM) FIOAttr|=FIO_FA_SYSTEM; if(PFSAttr & PFS_FILE_READONLY) FIOAttr|=FIO_FA_READONLY; if(PFSAttr & PFS_FILE_HIDDEN) FIOAttr|=FIO_FA_HIDDEN; if(PFSAttr & PFS_FILE_DIR) FIOAttr|=FIO_FA_DIR; if(PFSAttr & PFS_FILE_COMPRESS) FIOAttr|=FIO_FA_COMPRESS; return FIOAttr; } bool CPFSFileIO::IsDir(IN PCSTR FileName) { PFS_FIND_DATA FindData; TList::IT Iter=m_PolyFSList.Begin(); while(Iter!=m_PolyFSList.End()) { if(Iter->FindFirstFile(FileName,&FindData)) return (FindData.ThisFileEntry.Attribute & PFS_FILE_DIR)!=0; Iter++; } return false; } bool CPFSFileIO::DeleteDir(IN PCSTR FileName) { PFS_FIND_DATA FindData; char szBuffer[MAX_FN_LEN]; TStrCpy(szBuffer,FileName); TStrCat(szBuffer,"\\*"); TList::IT Iter=m_PolyFSList.Begin(); while(Iter!=m_PolyFSList.End()) { if(Iter->FindFirstFile(FileName,&FindData)) break; Iter++; } if(Iter==m_PolyFSList.End()) return false; return Iter->DeleteFile(szBuffer); } bool CPFSFileIO::FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData) { int Length; char szBuffer[MAX_FN_LEN]; DWORD PFSAttr; PFS_FILE_IO_FIND_DATA*pPFSFindData; PFS_FIND_DATA FindData; ZeroMemory(pFindData,sizeof(FILE_FIND_DATA)); Length = TStrCpy(szBuffer,DirName); if(Length && szBuffer[Length-1]=='\\') TStrCat(szBuffer,"*"); else TStrCat(szBuffer,"\\*"); TList::IT Iter=m_PolyFSList.Begin(); while(Iter!=m_PolyFSList.End()) { if(Iter->FindFirstFile(szBuffer,&FindData)) break; Iter++; } if(Iter==m_PolyFSList.End()) return false; pPFSFindData = new PFS_FILE_IO_FIND_DATA; pPFSFindData->FindData = FindData; pPFSFindData->pDisk = &(*Iter); pFindData->FindDataBuffer = pPFSFindData; TStrCpy(pFindData->FileName,pPFSFindData->FindData.FileName); pFindData->FileAttribute = 0; PFSAttr = FindData.ThisFileEntry.Attribute; if(PFSAttr & PFS_FILE_READONLY) pFindData->FileAttribute|=FIO_FA_READONLY; if(PFSAttr & PFS_FILE_HIDDEN) pFindData->FileAttribute|=FIO_FA_HIDDEN; if(PFSAttr & PFS_FILE_SYSTEM) pFindData->FileAttribute|=FIO_FA_SYSTEM; if(PFSAttr & PFS_FILE_DIR) pFindData->FileAttribute|=FIO_FA_DIR; if(PFSAttr & PFS_FILE_COMPRESS) pFindData->FileAttribute|=FIO_FA_COMPRESS; pFindData->FileLength = pPFSFindData->FindData.ThisFileEntry.FileSize; pFindData->hFindFile = NULL; return true; } bool CPFSFileIO::FindNextFile(INOUT FILE_FIND_DATA*pFindData) { DWORD PFSAttr; PFS_FILE_IO_FIND_DATA*pPFSFindData; pPFSFindData = (PFS_FILE_IO_FIND_DATA*)pFindData->FindDataBuffer; if(pPFSFindData->pDisk->FindNextFile(&pPFSFindData->FindData)==false) return false; TStrCpy(pFindData->FileName,pPFSFindData->FindData.FileName); pFindData->FileAttribute = 0; PFSAttr = pPFSFindData->FindData.ThisFileEntry.Attribute; if(PFSAttr & PFS_FILE_READONLY) pFindData->FileAttribute|=FIO_FA_READONLY; if(PFSAttr & PFS_FILE_HIDDEN) pFindData->FileAttribute|=FIO_FA_HIDDEN; if(PFSAttr & PFS_FILE_SYSTEM) pFindData->FileAttribute|=FIO_FA_SYSTEM; if(PFSAttr & PFS_FILE_DIR) pFindData->FileAttribute|=FIO_FA_DIR; if(PFSAttr & PFS_FILE_COMPRESS) pFindData->FileAttribute|=FIO_FA_COMPRESS; pFindData->FileLength = pPFSFindData->FindData.ThisFileEntry.FileSize; pFindData->hFindFile = NULL; return true; } bool CPFSFileIO::FindClose(IN FILE_FIND_DATA*pFindData) { delete (BYTE*)pFindData->FindDataBuffer; return true; } NAME_SPACE_END ================================================ FILE: Project/Code/Source/PolyFS.h ================================================ #ifndef _POLY_FS_H_ #define _POLY_FS_H_ #include "FileIO.h" #include "Handle.h" #include "PageMem.h" NAME_SPACE_BEGIN #define PFS_ERROR_NAME_CODE 0x00FFFFFF #define PFS_END_CLUS 0xFFFFFFFF #define PFS_ERROR_FP 0xFFFFFFFF #define PFS_FILE_ERROR 0x00000000 #define PFS_FILE_DIR 0x00000001 #define PFS_FILE_NORMAL 0x00000002 #define PFS_FILE_READONLY 0x00000004 #define PFS_FILE_HIDDEN 0x00000008 #define PFS_FILE_SYSTEM 0x00000010 #define PFS_FILE_COMPRESS 0x00000020 struct PFS_FILE_ENTRY { DWORD BeginClus; DWORD FileSize; DWORD Attribute; DWORD NameCode; char FileName[0x20]; }; struct PFS_HEAD { char Sign[8]; //"PFS" DWORD ClusSize; DWORD ClusCount; PFS_FILE_ENTRY FatEntry; PFS_FILE_ENTRY RootEntry; }; struct PFS_FILE_DATA { DWORD FilePoint; DWORD FileEntryFP; PFS_FILE_ENTRY ThisFileEntry; PFS_FILE_ENTRY ParentEntry; }; struct PFS_FIND_DATA { char FileName[256]; char PattenName[256]; PFS_FILE_ENTRY ParentEntry; PFS_FILE_ENTRY ThisFileEntry; DWORD FileEntryFP; }; #define PFS_NORMAL 0x00000000 #define PFS_WRITE_COPY 0x00000001 #define PFS_FULL_DISK_CACHE 0x00000002 class CPFSFileIO; class CPolyFS { public: CPolyFS(); virtual ~CPolyFS(); friend class CPFSFileIO; public: CImageFile m_DiskImage; CPageMemory m_PageMemory; CFileIO* m_pFileIO; DWORD m_MaxCachePageCount; DWORD m_FatOff; DWORD m_ClusSize; DWORD m_ClusCount; UINT m_Style; PFS_FILE_ENTRY m_RootEntry; BYTE* m_ZeroBuffer; public: bool ReadDiskFile(DWORD Pos,void*Buffer,DWORD Size); bool WriteDiskFile(DWORD Pos,void*Buffer,DWORD Size); bool ReadClus(DWORD Index,void*Buffer); bool WriteClus(DWORD Index,void*Buffer); bool ReadFatCell(DWORD Index,void*Buffer); bool WriteFatCell(DWORD Index,void*Buffer); protected: DWORD FindFreeFileEntryFP(PFS_FILE_ENTRY*pParentEntry); DWORD FindNextFreeClus(DWORD ClusIdx); bool CreateFile(PCSTR FileName,DWORD Attr,DWORD Size,PFS_FILE_ENTRY*pParentEntry,DWORD ParenFileEntryFP); DWORD ReadFile(PFS_FILE_ENTRY*pFileEntry,DWORD Offset,void*Buffer,DWORD Size); DWORD WriteFile(PFS_FILE_ENTRY*pFileEntry,DWORD Offset,const void*Buffer,DWORD Size); bool DeleteFileClus(DWORD BeginClus); DWORD FileOffToDP(DWORD ClusIndex,DWORD Offset); DWORD FileOffToClus(DWORD ClusIndex,DWORD Offset); bool CmpFileName(PCSTR FilePattenName,PFS_FILE_ENTRY*pFileEntry); public: void ChangeFileIO(CFileIO*pFileIO); virtual bool OpenDisk(PCSTR FileName,UINT Style = PFS_NORMAL); virtual void CloseDisk(); virtual void InitParam(); bool Format(PCSTR DiskFileName,ULONG Size,DWORD ClusSize); bool DeleteFile(PCSTR FullFileName); bool FindFirstFile(PCSTR FullFileName,PFS_FIND_DATA*pFindData); bool FindNextFile(PFS_FIND_DATA*pFindData); bool CreateFile(PCSTR FullFileName,DWORD Attr,DWORD Size,PFS_FILE_DATA*pHandleData); bool OpenFile(PCSTR FullFileName,PFS_FILE_DATA*pHandleData); DWORD WriteFile(PFS_FILE_DATA*pHandleData,DWORD Offset,const void*Buffer,DWORD Size); DWORD ReadFile(PFS_FILE_DATA*pHandleData,DWORD Offset,void*Buffer,DWORD Size); bool SetFileLength(PFS_FILE_DATA*pHandleData,DWORD Length); bool SetFileLength(PCSTR FullFileName,DWORD Length); DWORD GetFileLength(PCSTR FullFileName); bool SetFileAttribute(PCSTR FullFileName,DWORD Attr); DWORD GetFileAttribute(PCSTR FullFileName); }; #define PFS_HANDLE_FILE 0x0001 struct PFS_FILE_IO_HANDLE { CPolyFS* pDisk; PFS_FILE_DATA FileData; }; struct PFS_FILE_IO_FIND_DATA { CPolyFS* pDisk; PFS_FIND_DATA FindData; }; class CPFSFileIO : public CFileIO { CHandle m_Handle; TList m_PolyFSList; CFileIO* m_pFileIO; public: CPFSFileIO(); void ChangeFileIO(CFileIO*pFileIO); virtual bool OpenDisk(PCSTR FileName,UINT Style = PFS_NORMAL); virtual void CloseAllDisk(); virtual bool OpenFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_READ | FIO_SHARE_READ); virtual bool CreateFile(IN PCSTR FileName,OUT HANDLE*phFile,IN DWORD Mode = FIO_CREATE | FIO_SHARE_READ); virtual bool CreateDir(IN PCSTR FileName); virtual bool CloseHandle(IN HANDLE hFile); virtual ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); virtual ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size,IN ULLPOS Offset); virtual ULSIZE ReadFile(IN HANDLE hFile,IN void* Buffer,IN ULSIZE Size); virtual ULSIZE WriteFile(IN HANDLE hFile,IN const void* Buffer,IN ULSIZE Size); virtual ULLPOS SetFilePointer(IN HANDLE hFile,IN LLPOS Offset,IN DWORD Pos); virtual ULLSIZE GetFileLength(IN HANDLE hFile); virtual bool SetFileLength(IN HANDLE hFile,IN ULLSIZE Length); virtual bool DeleteFile(IN PCSTR FileName); virtual bool RenameFile(IN PCSTR FileName,IN PCSTR NewFileName); virtual bool SetFileAttr(IN PCSTR FileName,DWORD Attr); virtual DWORD GetFileAttr(IN PCSTR FileName); virtual bool IsDir(IN PCSTR FileName); virtual bool DeleteDir(IN PCSTR FileName); virtual bool FindFirstFile(IN PCSTR DirName,OUT FILE_FIND_DATA*pFindData); virtual bool FindNextFile(INOUT FILE_FIND_DATA*pFindData); virtual bool FindClose(IN FILE_FIND_DATA*pFindData); }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/Sources ================================================ TARGETNAME=Code TARGETPATH=Obj TARGETTYPE=DRIVER_LIBRARY C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h PRECOMPILED_PCH=StdAfx.pch PRECOMPILED_OBJ=StdAfx.obj SOURCES=NTDrvRuntime.cpp \ FileIO.cpp \ FileIONTDrv.cpp \ Handle.cpp \ ImageFile.cpp \ LogFile.cpp \ Maths.cpp \ TXTFile.cpp \ StrMem.cpp \ SysDep.cpp \ NewAlloc.cpp \ NewAllocNTDrv.cpp \ DebugNewAlloc.cpp \ DebugNewAllocNTDrv.cpp \ Compress.cpp \ CmdParser.cpp \ PolyFS.cpp \ PageMem.cpp \ Heap.cpp \ Float2String.cpp \ Crc.cpp \ OptionValue.cpp ================================================ FILE: Project/Code/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/Code/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "Code.h" #endif /* _STDAFX_H_ */ ================================================ FILE: Project/Code/Source/StrMem.cpp ================================================ #include "StdAfx.h" #include "StrMem.h" NAME_SPACE_BEGIN #ifndef CODE_OS_NT_DRV int __cdecl sprintfcat_s(char*buffer,int buffer_size,const char*format,...) { int length; length=(int)strlen(buffer); if(length>=buffer_size) return 0; va_list Next; va_start(Next,format); length += vsprintf_s(&buffer[length],buffer_size-length,format,Next); va_end(Next); return length; } #endif int CSToStr(COLOR_STRING*pCS,PSTR pStr) { int Len; *pStr=0; Len=0; while(pCS->StrLen) { TStrCpy(&pStr[Len],pCS->String); Len+=pCS->StrLen; pCS=CSBuf(&pCS->String[pCS->StrLen+1]); } return Len; } UINT SplitCmdString(PSTR CmdString,PSTR*Param,UINT MaxParam) { UINT Start,End,nParam,Length; PSTR pStr; nParam=End=Start=0; Length=(UINT)TStrLen(CmdString); pStr=TStrChr(CmdString,' '); if(pStr==NULL) { Param[0]=CmdString; nParam=1; } else { End=(UINT)(pStr-CmdString); memcpy(Param[0],CmdString,End); Param[0][End]=0; TStrUpr(Param[0]); nParam=1; Start=End; while(Start=MaxParam)break; nParam++; } } return nParam; } PSTR Tab2SpaceString(PCSTR TabBuffer,PSTR SpaceBuffer) { DWORD toff=0,soff=0; while(TabBuffer[toff]) { if(TabBuffer[toff]=='\t') { *(DWORD*)&SpaceBuffer[soff]=0x20202020; soff+=4; } else { SpaceBuffer[soff]=TabBuffer[toff]; soff++; } toff++; } SpaceBuffer[soff]=0; return SpaceBuffer; } CHAR InvalidVarStr[]=" \\|-={}[]/?*,:.&^%$#@!~`();\"<>^"; int Str2VarName(PSTR Str,int MaxLen) { int size = 0; while(*Str && MaxLen) { if(TStrChr(InvalidVarStr,*Str)) *Str='_'; Str++; MaxLen--; size++; } *Str=0; return size; } bool IsASCString(PCSTR Str,int Length) { while(*Str && Length) { if(*Str<=(char)0x20 && *Str>(char)0x80) return false; Str++; Length--; } return true; } DWORD GetCRCCode(BYTE*Buffer,int Len) { WORD WordSum=0; WORD ByteSum=0; for(int n=0;n=Len) return RT_PBYTE(Buffer,n); } return NULL; } void PutByteAtBit(INOUT BYTE*Ptr,IN int BitOff,IN BYTE nBit,IN BYTE Data) { BYTE Shift,Mask=0xFF; Shift=8-nBit; Mask=0xFF; Data<<=Shift; Data>>=Shift; Mask<<=Shift; Mask>>=Shift; if(nBit+BitOff%8<=8)//һֽ { Shift=(BYTE)BitOff%8; Data<<=Shift; Mask<<=Shift; Mask=~Mask; Ptr[BitOff/8]&=Mask; Ptr[BitOff/8]|=Data; } else { PutByteAtBit(Ptr,BitOff,(BYTE)(8-BitOff%8),Data); PutByteAtBit(Ptr,BitOff+8-BitOff%8,nBit-(BYTE)(8-BitOff%8),Data>>(8-BitOff%8)); } return ; } #ifdef CODE_OS_NT_DRV int UnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen) { ANSI_STRING AnsiName; UNICODE_STRING UniName; UniName.Buffer =(PWSTR) WszBuf; UniName.Length = TStrLen(WszBuf)*2; UniName.MaximumLength = UniName.Length + 2; AnsiName.Buffer = (PCHAR)szBuf; AnsiName.Length = 0; AnsiName.MaximumLength = (USHORT)MaxLen; RtlUnicodeStringToAnsiString(&AnsiName,&UniName,false); return UniName.Length/2; } int AnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen) { ANSI_STRING AnsiName; UNICODE_STRING UniName; AnsiName.Buffer = (PCHAR)szBuf; AnsiName.Length = (USHORT)TStrLen(szBuf); AnsiName.MaximumLength = AnsiName.Length + 1; UniName.Buffer = WszBuf; UniName.Length = 0; UniName.MaximumLength = MaxLen*2; RtlAnsiStringToUnicodeString(&UniName,&AnsiName,false); return AnsiName.Length; } #endif #ifdef CODE_OS_WIN int UnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen) { int Length; if(Length = WideCharToMultiByte(CP_ACP,0,WszBuf,-1,szBuf,MaxLen,NULL,NULL)) return Length-1; return 0; } int AnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen) { int Length; if(Length = MultiByteToWideChar(CP_ACP,0,szBuf,-1,WszBuf,MaxLen)) return Length-1; return 0; } #endif #ifdef CODE_OS_UNIX int UnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen) { return 0; } int AnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen) { return 0; } #endif NAME_SPACE_END ================================================ FILE: Project/Code/Source/StrMem.h ================================================ #ifndef _STRMEM_H_ #define _STRMEM_H_ NAME_SPACE_BEGIN struct COLOR_STRING { WORD StrLen; WORD Attribute; COLORREF Color; CHAR String[1]; }; #define CSBuf(__P) ((COLOR_STRING*)__P) int __cdecl sprintfcat_s(char*buffer,int buffer_size,const char*format,...); int CSToStr(COLOR_STRING*pCS,PSTR pStr); PSTR Tab2SpaceString(PCSTR TabBuffer,PSTR SpaceBuffer); UINT SplitCmdString(PSTR CmdString,PSTR*Param,UINT MaxParam); int Str2VarName(PSTR Str,int MaxLen);//ַתCԱ bool IsASCString(PCSTR Str,int Length); ///////////////////////////////////////////////////////////////////////// //ڴ ///////////////////////////////////////////////////////////////////////// void* MemSearch(IN void*Buffer,IN int BufSize,IN void*SchBuf,IN int Len); void* CodeSearch(IN void*Buffer,IN int BufSize,IN void*SchBuf,IN int Len,BYTE IgnoreByte = 0xFF); void PutByteAtBit(INOUT BYTE*Ptr,IN int BitOff,IN BYTE nBit,IN BYTE Data); int UnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen); int AnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen); DWORD GetCRCCode(BYTE*Buffer,int Len); #ifdef CODE_OS_CATOS #define memcpy(d,s,c) TMemCpy((BYTE*)(d),(BYTE*)(s),(int)(c)) #endif NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/SysDep.cpp ================================================ #include "StdAfx.h" #include "SysDep.h" NAME_SPACE_BEGIN #ifdef CODE_OS_WIN DWORD PASCAL WinThread(THREAD_PROC pFunc) { pFunc(); return 0; } DWORD CreateThread(THREAD_PROC pFunc) { DWORD ThreadID; ThreadID=0; ::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)WinThread,pFunc,THREAD_SUSPEND_RESUME | THREAD_TERMINATE,&ThreadID); return ThreadID; } void UpdateTickCount(ULONGLONG*pTickCount) { static DWORD PrevTickCount=0; DWORD TickCount; TickCount=GetTickCount(); if(TickCount>PrevTickCount) *pTickCount+=TickCount-PrevTickCount; else *pTickCount+=TickCount+(~PrevTickCount+1); PrevTickCount=TickCount; } int GetModulePath(PSTR szPathName,bool bSeparator) { DWORD Size; *szPathName=0; Size = GetModuleFileName(NULL,szPathName,MAX_FN_LEN); if(szPathName[1]==':'&&szPathName[0]>='a'&&szPathName[0]<='z') szPathName[0]+='A'-'a'; char*pStr=TStrRChr(szPathName,PATH_SEPARATOR_CHAR); if(pStr) { if(bSeparator) pStr++; *pStr=0; } return TStrLen(szPathName); } int GetModulePath(PWSTR szPathName,bool bSeparator) { DWORD Size; *szPathName=0; Size = GetModuleFileNameW(NULL,szPathName,MAX_FN_LEN); if(szPathName[1]==':'&&szPathName[0]>='a'&&szPathName[0]<='z') szPathName[0]+='A'-'a'; WCHAR*pStr=TStrRChr(szPathName,(WCHAR)PATH_SEPARATOR_CHAR); if(pStr) { if(bSeparator) pStr++; *pStr=0; } return TStrLen(szPathName); } int CodeDebugPrintf(PCSTR Format,...) { int Length; char Buffer[0x400]; va_list Next; va_start(Next,Format); Length = TVSPrintf(Buffer,Format,Next); va_end(Next); OutputDebugString(Buffer); return Length; } #endif #ifdef CODE_OS_NT_DRV /// ȡǰϵͳʱ /// תɱʱȡʱ /// ϲʱ䴮 /// 17:35 ֣ת1735 /// short GetCurTime() { /* __int64 Date=864000000000,Year,mDate,Minute,Hour=0,Second; LARGE_INTEGER Large; SYSTEM_TIME_OF_DAY_INFORMATION TimeDay; ULONG len; status = ZwQuerySystemInformation(3,&TimeDay,sizeof(SYSTEM_TIME_OF_DAY_INFORMATION),&len); Hour = TimeDay.CurrentTime.QuadPart % Date; Date = TimeDay.CurrentTime.QuadPart/Date; Minute = Hour % 36000000000; Second = Minute % 600000000; Second = Second / 10000000; Minute = Minute / 600000000; Hour = Hour / 36000000000; DbgPrint("ZwQuerySystemInformation %I64d:%I64d:%I64d\n",(Hour+8)%24,Minute,Second); */ LARGE_INTEGER ulTimeStamp,ulLocalTime; TIME_FIELDS tfTime; KeQuerySystemTime(& ulTimeStamp); ExSystemTimeToLocalTime(&ulTimeStamp,&ulLocalTime); RtlTimeToTimeFields(&ulTimeStamp,&tfTime); return (short)(tfTime.Hour*100+tfTime.Minute); } #define REGISTRY_VALUE_NAME_LEN_MAX 32 typedef struct _KEY__VALUE_FULL_INFORMATION_STRUCT { KEY_VALUE_FULL_INFORMATION KeyValueInformation; WCHAR ValueName[32]; DWORD Value[1]; }KEY__VALUE_FULL_INFORMATION_STRUCT,*PKEY__VALUE_FULL_INFORMATION_STRUCT; bool ReadDwordValueRegistry(WCHAR *pValue,DWORD *pdwRetValue,WCHAR *pKey) { ULONG ResultLength; NTSTATUS ntStatus; UNICODE_STRING RegKey,ValueName; HANDLE hKeyHandle; ACCESS_MASK DesiredAccess; OBJECT_ATTRIBUTES ObjectAttributes; KEY__VALUE_FULL_INFORMATION_STRUCT KeyValueInformation; PKEY__VALUE_FULL_INFORMATION_STRUCT pKeyValueInformation; ULONG BufLen; BufLen = sizeof(KeyValueInformation); pKeyValueInformation=&KeyValueInformation; if(pKey==NULL) return false; RtlInitUnicodeString(&RegKey,pKey); DesiredAccess=KEY_QUERY_VALUE; ObjectAttributes.Length=sizeof(OBJECT_ATTRIBUTES); ObjectAttributes.RootDirectory=0; ObjectAttributes.ObjectName=&RegKey; ObjectAttributes.Attributes=OBJ_CASE_INSENSITIVE; ObjectAttributes.SecurityDescriptor=0; ObjectAttributes.SecurityQualityOfService=0; ntStatus = ZwOpenKey(&hKeyHandle,DesiredAccess,&ObjectAttributes); if(ntStatus != STATUS_SUCCESS) return false; RtlInitUnicodeString(&ValueName,pValue); ResultLength = TStrLen(pValue); if(ResultLength>REGISTRY_VALUE_NAME_LEN_MAX) { BufLen =ResultLength + BufLen-REGISTRY_VALUE_NAME_LEN_MAX*sizeof(WCHAR); pKeyValueInformation =(PKEY__VALUE_FULL_INFORMATION_STRUCT) new BYTE[BufLen]; if(pKeyValueInformation==NULL) { ZwClose(hKeyHandle); return false; } } ntStatus = ZwQueryValueKey(hKeyHandle, &ValueName,KeyValueFullInformation,pKeyValueInformation,BufLen,&ResultLength); if(ntStatus!=STATUS_SUCCESS) { if(pKeyValueInformation!=&KeyValueInformation) delete []pKeyValueInformation; ZwClose(hKeyHandle); return false; } *pdwRetValue = *(DWORD*)(pKeyValueInformation->KeyValueInformation.DataOffset+(DWORD)pKeyValueInformation); if(pKeyValueInformation!=&KeyValueInformation) delete []pKeyValueInformation; ZwClose(hKeyHandle); return true; } bool WriteDwordValueRegistry(WCHAR *pValue,DWORD dwValue,WCHAR *pKey) { ULONG ResultLength; NTSTATUS ntStatus; UNICODE_STRING RegKey,ValueName; HANDLE hKeyHandle; ACCESS_MASK DesiredAccess; OBJECT_ATTRIBUTES ObjectAttributes; if(pKey==NULL||pValue==NULL) return false; RtlInitUnicodeString(&RegKey,pKey); DesiredAccess=KEY_SET_VALUE; ObjectAttributes.Length=sizeof(OBJECT_ATTRIBUTES); ObjectAttributes.RootDirectory=0; ObjectAttributes.ObjectName=&RegKey; ObjectAttributes.Attributes=OBJ_CASE_INSENSITIVE; ObjectAttributes.SecurityDescriptor=0; ObjectAttributes.SecurityQualityOfService=0; ntStatus = ZwOpenKey(&hKeyHandle,DesiredAccess,&ObjectAttributes); if(ntStatus != STATUS_SUCCESS) return false; RtlInitUnicodeString(&ValueName,pValue); ntStatus = ZwSetValueKey(hKeyHandle,&ValueName,0,REG_DWORD,&dwValue,sizeof(DWORD)); ZwClose(hKeyHandle); return ntStatus==STATUS_SUCCESS; } bool WriteStringValueRegistry(WCHAR *pValue,WCHAR* szValue,WCHAR *pKey) { ULONG ResultLength; NTSTATUS ntStatus; UNICODE_STRING RegKey,ValueName; HANDLE hKeyHandle; ACCESS_MASK DesiredAccess; OBJECT_ATTRIBUTES ObjectAttributes; if(pKey==NULL||pValue==NULL) return false; RtlInitUnicodeString(&RegKey,pKey); DesiredAccess=KEY_SET_VALUE; ObjectAttributes.Length=sizeof(OBJECT_ATTRIBUTES); ObjectAttributes.RootDirectory=0; ObjectAttributes.ObjectName=&RegKey; ObjectAttributes.Attributes=OBJ_CASE_INSENSITIVE; ObjectAttributes.SecurityDescriptor=0; ObjectAttributes.SecurityQualityOfService=0; ntStatus = ZwOpenKey(&hKeyHandle,DesiredAccess,&ObjectAttributes); if(ntStatus != STATUS_SUCCESS) return false; RtlInitUnicodeString(&ValueName,pValue); ntStatus = ZwSetValueKey(hKeyHandle,&ValueName,0,REG_SZ,szValue,TStrLen(szValue)*2+2); ZwClose(hKeyHandle); return ntStatus==STATUS_SUCCESS; } void WinDrvThread(IN THREAD_PROC pFunc) { pFunc(); } bool CreateThread(THREAD_PROC pFunc,void*Param) { HANDLE hThread; return NT_SUCCESS(PsCreateSystemThread(&hThread,THREAD_ALL_ACCESS,NULL,NULL,NULL,(PKSTART_ROUTINE)WinDrvThread,pFunc)); } DWORD dwCPUMHz=0; ULONGLONG TmpDrvCurTickCount; ULONGLONG TmpDrvPrevTickCount; ULONGLONG GetRDTSC() { // DWORD dwHighValue=0; // DWORD dwLowValue=0; // ULONGLONG Value; // __asm // { // push eax // push edx // rdtsc // mov dwHighValue,edx // mov dwLowValue,eax // pop edx // pop eax // } // Value=dwHighValue; // Value<<=32; // Value|=dwLowValue; // // return Value; return SyserGetRdTsc(); } void InitTickCount() { DWORD dwHighValue=0; DWORD dwLowValue=0; if(ReadDwordValueRegistry(L"~MHz",&dwCPUMHz,L"\\REGISTRY\\MACHINE\\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")==false) { dwCPUMHz=500; } TmpDrvPrevTickCount = GetRDTSC(); } void UpdateTickCount(ULONGLONG*pTickCount) { // __asm push ecx // __asm push eax // __asm push edx TmpDrvCurTickCount = GetRDTSC(); *pTickCount+=(TmpDrvCurTickCount-TmpDrvPrevTickCount); TmpDrvPrevTickCount=TmpDrvCurTickCount; // __asm pop edx // __asm pop eax // __asm pop ecx } int GetModulePath(PSTR szPathName,bool bSeparator) { *szPathName=0; return 0; } bool GetSystemRootPath(WCHAR* RegistryServiceName,WCHAR* SystemPathBuffer ,ULONG SystemPathLen) { NTSTATUS Status; UNICODE_STRING UniSystemRootDir; RTL_QUERY_REGISTRY_TABLE RegTable[2]; WCHAR *ReturnBuffer=NULL; ULONG BufferByteSize =0x1000; RTL_OSVERSIONINFOEXW RtlOsVersion; int Len; if(SystemPathBuffer==NULL) return false; ReturnBuffer = (WCHAR*)ExAllocatePoolWithTag(NonPagedPool,BufferByteSize,'SDep'); if(ReturnBuffer==NULL) return false; ZeroMemory(RegTable,sizeof(RegTable)); ZeroMemory(ReturnBuffer,BufferByteSize); wcscpy(ReturnBuffer,WSTR("\\??\\")); UniSystemRootDir.Length=0; UniSystemRootDir.MaximumLength=(USHORT)(BufferByteSize-(wcslen(ReturnBuffer)+1)*sizeof(WCHAR)); UniSystemRootDir.Buffer=&ReturnBuffer[wcslen(ReturnBuffer)]; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("SystemRoot"); RegTable[0].EntryContext = &UniSystemRootDir; Status = RtlQueryRegistryValues(RTL_REGISTRY_WINDOWS_NT,WSTR(""),RegTable,NULL,NULL); if(NT_SUCCESS(Status)) { Len = wcslen(ReturnBuffer); if(ReturnBuffer[Len-1]!='\\') { ReturnBuffer[Len]='\\'; ReturnBuffer[Len+1]=0; Len++; } Len++; if(SystemPathLen=1) wcscpy(ReturnBuffer,WSTR("\\??\\C:\\WINDOWS\\")); else wcscpy(ReturnBuffer,WSTR("\\??\\C:\\WINNT\\")); Len = wcslen(ReturnBuffer); Len++; if(SystemPathLenPrevTickCount) *pTickCount+=TickCount-PrevTickCount; else *pTickCount+=TickCount+(~PrevTickCount+1); PrevTickCount=TickCount; } int GetModulePath(PSTR szPathName,bool bSeparator) { int Size =1; TStrCpy(szPathName,"."); if(bSeparator) { TStrCat(szPathName,PATH_SEPARATOR_STR); Size++; } return Size; } void* LinuxThread(void*pFunc) { ((THREAD_PROC)pFunc)(); return NULL; } DWORD CreateThread(THREAD_PROC pFunc) { #ifdef CODE_UNIX_THREAD pthread_t pid; DWORD dwRet; pthread_create(&pid,NULL,LinuxThread,(void*)pFunc); return pid; #else return 0; #endif } DWORD CreateThreadDetach(THREAD_PROC pFunc) { #ifdef CODE_UNIX_THREAD pthread_t pid; DWORD dwRet; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); pthread_create(&pid,&attr,LinuxThread,(void*)pFunc); return pid; #else return 0; #endif } void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection) { #ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP pthread_mutex_t temp=PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; lpCriticalSection->LockSemaphore=temp; #else pthread_mutex_t temp=PTHREAD_MUTEX_INITIALIZER; lpCriticalSection->LockSemaphore=temp; #endif } void DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection) { #ifdef CODE_UNIX_THREAD pthread_mutex_destroy(&lpCriticalSection->LockSemaphore); #endif } void EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection) { #ifdef CODE_UNIX_THREAD pthread_mutex_lock(&lpCriticalSection->LockSemaphore); #endif } void LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection) { #ifdef CODE_UNIX_THREAD pthread_mutex_unlock(&lpCriticalSection->LockSemaphore); #endif } bool TryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection) { #ifdef CODE_UNIX_THREAD pthread_mutex_trylock(&lpCriticalSection->LockSemaphore); #else return false; #endif return true; } #endif //CODE_OS_UNIX DWORD gRandomMem[]= { 0x5a2b2e15, 0x15562e15, 0x9742a171, 0x8515582e, 0x0f510693, 0x0708c533, 0x14c80e0b, 0xfe161780, 0x712a3dc2, 0xeb494746, 0x08f9900a, 0xf7b908d0, 0x0384d5b6, 0x1b212c2b, 0x2022743f, 0x3416e197, 0x06777bc9, 0xbab7c768, 0xe9837d6b, 0x2af10303, 0xa6d7eb26, 0xe103eb3e, 0x90b7d0bd, 0x59cde23d, 0x25ebeb07, 0x0a4a0690, 0x1207c337, 0x6920ee83, 0x690b739e, 0xedda9417, 0x6010eb06, 0x55f2e920, 0xe959cbf4, 0x089df8fd, 0x525706f9, 0x43c35351, 0xfe9bb757, 0x5be2809a, 0x4315191d, 0x34dbc2fb, 0x0f740504, 0x74280b52, 0x0d820552, 0x4c5cdffc, 0x1e8dab6e, 0x058a0e79, 0x0b72803c, 0xbadf5154, 0x776b6e07, 0x30d77509, 0x36e68a24, 0x76b669a1, 0x3b03fdb3, 0x18721a44, 0x721e6708, 0x650a1f0f, 0x6c0bff46, 0xeb2d721c, 0x58f99002, 0x5f5a595b, 0xe23bb494, 0x1e0cecb7, 0x160ab907, 0x0dea75ae, 0x1b7fb26c, 0xe0090666, 0x0000daeb, 0x76da06ff, 0x02f9db83, 0xfe012a40, 0x6a0b0807, 0x0fec5a2e, 0xc9706854, 0x0b40c803, 0x6d555419, 0x0addb179, 0x2073037d, 0x6968116f, 0x1f6e6407, 0xffde61a1, 0x54204350, 0x59736c27, 0x2de40d43, 0x2ea36370, 0x9d5dc358, 0x1e2f06d4, 0x8071b569, 0x2f701b11, 0x7f014b70, 0x1a7307c2, 0x2a7550d9, 0xc52c2c52, 0xeac518b8, 0x16431995, 0x63226066, 0xdc0c0bb7, 0x08ce0ee2, 0x0283c010, 0xdb40cce9, 0x5a0c940c, 0xb78a50b8, 0x8781b15e, 0xd6821cb4, 0xbda35c16, 0xfe15eefd, 0x0e8920c2, 0xf9810352, 0xb90373ce, 0xb6ec4f04, 0x320e7037, 0x8a0354dd, 0x095c0507, 0x36230327, 0xef1c49dd, 0x085f7789, 0x2daf4e97, 0x2c1ec524, 0xf8a67060, 0x28e09740, 0x032a9303, 0xdb80ad79, 0x730470b6, 0xbb23a886, 0x0e6e344c, 0x4d1544de, 0x6b754ea6, 0x1adb6e82, 0x6a39a52c, 0x0d176109, 0xda1b7313, 0x570954b6, 0x745f0e13, 0x1d22e44f, 0xfe7f8ddd, 0x123c1975, }; DWORD GetRandom(DWORD MinNum,DWORD MaxNum) { ULONGLONG TickCount; DWORD Random,Tmp,RMemDw,Delta; static DWORD RMemIndex=0; static DWORD Seek=0; UpdateTickCount(&TickCount); Random=(DWORD)TickCount; if(RMemIndex>=sizeof(gRandomMem)-4) RMemIndex=0; else RMemIndex++; Tmp=Random+GET_DWORD(gRandomMem,RMemIndex); RMemDw=gRandomMem[Tmp%(sizeof(gRandomMem)-4)]; for(int n=0;n<32;n++) { Tmp^=gRandomMem[(Seek+n)%sizeof(gRandomMem)]; RMemDw=Seek; Random-=Tmp; Random+=RMemDw; Random^=Seek; } Seek=Random; if(MaxNum=sizeof(gRandomMem)-4) RMemIndex=0; else RMemIndex++; Tmp=Random+GET_DWORD(gRandomMem,RMemIndex); RMemDw=gRandomMem[Tmp%(sizeof(gRandomMem)-4)]; for(int n=0;n<32;n++) { Tmp^=gRandomMem[(Seek+n)%sizeof(gRandomMem)]; RMemDw=Seek; Random-=Tmp; Random+=RMemDw; Random^=Seek; } Seek=Random; if(MaxNum typedef struct _CRITICAL_SECTION { pthread_mutex_t LockSemaphore; }CRITICAL_SECTION,*LPCRITICAL_SECTION; void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); void DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection); void EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection); void LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection); bool TryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection); #endif //CODE_OS_UNIX //////////////////////////////////////////////////// //ͬ //////////////////////////////////////////////////// extern DWORD dwCPUMHz; extern ULONGLONG TmpDrvCurTickCount; extern ULONGLONG TmpDrvPrevTickCount; void InitTickCount(); void UpdateTickCount(ULONGLONG*pTickCount); DWORD GetRandom(DWORD MinNum,DWORD MaxNum); void SetRandomMem(void*Buffer,int Size); void InitStaticRandom(DWORD Seed); DWORD GetStaticRandom(DWORD MinNum,DWORD MaxNum); //////////////////////////////////////////////////// //ļ //////////////////////////////////////////////////// int GetModulePath(PSTR szPathName,bool bSeparator = true); int GetModulePath(PWSTR szPathName,bool bSeparator = true); int CodeDebugPrintf(PCSTR Format,...); bool ReadDwordValueRegistry(WCHAR *pValue,DWORD *pdwRetValue,WCHAR *pKey); bool WriteDwordValueRegistry(WCHAR *pValue,DWORD dwValue,WCHAR *pKey); bool WriteStringValueRegistry(WCHAR *pValue,WCHAR* szValue,WCHAR *pKey); bool GetSystemRootPath(WCHAR* RegistryServiceName,WCHAR* SystemPathBuffer ,ULONG SystemPathLen); NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/TStrMem.h ================================================ #ifndef _TSTRMEM_H_ #define _TSTRMEM_H_ NAME_SPACE_BEGIN template bool TCmpModuleName(IN const CHAR_TYPE*FileName,IN const MODULE_CHAR_TYPE*ModuleName) { CHAR_TYPE FileCmpName[MAX_FN_LEN],*pStr; MODULE_CHAR_TYPE ModuleCmpName[MAX_FN_LEN]; pStr = TStrRChr(ModuleName,(MODULE_CHAR_TYPE)PATH_SEPARATOR_CHAR); if(pStr) return TStrICmp(FileName,ModuleName)==0; pStr = TStrRChr(ModuleName,(MODULE_CHAR_TYPE)'.'); if(pStr && TStrRChr(FileName,(MODULE_CHAR_TYPE)'.')==NULL) pStr = NULL; if(pStr) { TStrCpy(FileCmpName,TGetFileName(FileName)); TStrCpy(ModuleCmpName,TGetFileName(ModuleName)); } else { TGetFileTitle(FileName,FileCmpName); TGetFileTitle(ModuleName,ModuleCmpName); } return TStrICmp(FileCmpName,ModuleCmpName)==0; } #define HEX_CHAR(h) (h<=9?'0'+h:'A'+h-10) template CHAR_TYPE*THexBytesToStr(IN BYTE* Hex,OUT CHAR_TYPE*String,IN int nHex,IN int Length,IN const CHAR_TYPE*szSpc=NULL) { BYTE tmp,Data; CHAR_TYPE*pStr; int LeftLen,Turn=2*Length,StrLen=0,n; if(szSpc) { StrLen=TStrLen(szSpc); Turn+=StrLen; } for(n=0;n>4; pStr--; *pStr=HEX_CHAR(tmp); } } LeftLen=nHex%Length; if(LeftLen) { pStr=&String[n*Turn+2*LeftLen]; for(int m=0;m>4; pStr--; *pStr=HEX_CHAR(tmp); } StrLen=0; } pStr=&String[n*Turn-StrLen+LeftLen*2]; *pStr=0; return pStr; } template void THexBytesToASCII(IN BYTE*Hex,OUT CHAR_TYPE*String,IN int nHex) { int n; for(n=0;n int THexStrToBytes(IN const CHAR_TYPE*HexString,OUT BYTE*Mem,int MaxLength=32) { CHAR_TYPE Char; BYTE Hex; int n=0; while(*HexString && n='0'&&Char<='9') Hex=Char-'0'; else if(Char>='A'&&Char<='F') Hex=Char-'A'+10; else if(Char>='a'&&Char<='f') Hex=Char-'a'+10; else return 0; Char = *HexString; if(Char>='0'&&Char<='9') Hex+=(Char-'0')*16; else if(Char>='A'&&Char<='F') Hex+=(Char-'A'+10)*16; else if(Char>='a'&&Char<='f') Hex+=(Char-'a'+10)*16; else return 0; HexString+=2; Char = *HexString; if(Char==' ' || Char==',') HexString++; Mem[n++]=Hex; } return n; } template DWORD TGetNameCode(CHAR_TYPE*Name) { int Len; WORD Word=0; BYTE Byte=0; Len=TStrLen(Name); for(int n=0;n void TCorrectFileName(CHAR_TYPE*Name) { while(*Name) { if(TStrChr("\\/:*?\"<>|",*Name)) *Name='_'; Name++; } } template TYPE*TStrTrimBefore(TYPE*buf,DWORD *Pos) { int i; for(i=0;buf[i];i++) if(buf[i]==' '||buf[i]=='\t') continue; else break; if(!buf[i]) i=0; if(Pos) *Pos=i; return buf+i; } template TYPE*TStrTrimAfter(TYPE*buf,DWORD* Pos) { int i; for(i = 0;buf[i];)i++; i--; for(;i;i--) if(buf[i]==' '||buf[i]=='\t') continue; else break; if(Pos) *Pos=i; if(i) (*Pos)++; else { if(buf[i]==' '||buf[i]=='\t') { return buf; } return NULL; } return buf+i; } template TYPE TStrTrim(TYPE buf,DWORD* Len) { int m,j; int i; for(i = 0;buf[i];i++) if(buf[i]==' '||buf[i]=='\t') continue; else break; for(j=i;buf[j];j++); m=j-1; for(;m>=i;m--) if(buf[m]!=' '&&buf[m]!='\t') break; if(Len) *Len=m+1-i; return buf[i]?buf+i:buf; } NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/TXTFile.cpp ================================================ #include "StdAfx.h" #include "TXTFile.h" NAME_SPACE_BEGIN CTXTFile::CTXTFile() { } CTXTFile::~CTXTFile() { for(TTXTStrList::IT Iter=m_StrList.Begin();Iter!=m_StrList.End();Iter++) delete *Iter; m_StrList.Clear(); } bool CTXTFile::Open(PCSTR FileName,HANDLE*pHandleOpen) { char*FileBuffer; if(CImageFile::Open(FileName,pHandleOpen)==false) return false; FileBuffer=new CHAR[m_FileSize+1]; FileBuffer[m_FileSize]=0; ReadFile(0,FileBuffer,m_FileSize); if(_GET_WORD(FileBuffer)==0xFEFF) { delete FileBuffer; Close(); return false; } SplitLine(FileBuffer,m_FileSize); delete FileBuffer; return true; } int CTXTFile::SplitLine(PCSTR FileBuffer,ULLSIZE BufferSize) { ULPOS nBegin,nEnd,nOffset; char*szLine; nBegin=nOffset=0; while(nOffsetWriteToFile(FileName,FileBuffer,Length); if(bClose) return CImageFile::Open(FileName); return true; } void CTXTFile::Close() { CImageFile::Close(); for(TTXTStrList::IT Iter=m_StrList.Begin();Iter!=m_StrList.End();Iter++) delete *Iter; m_StrList.Clear(); } bool CTXTFile::Insert(ULPOS nLine,ULPOS nCol,char*szBuffer) { ULPOS nBegin,nEnd,nOffset; ULSIZE Length; char*FileBuffer,*pStr,*szLine; TTXTStrList::IT Iter=m_StrList.Begin(); while(nLine) { if(Iter==m_StrList.End()) return false; nLine--; Iter++; } Length=TStrLen(*Iter); if(Length<=nCol) return false; Length+=TStrLen(szBuffer); FileBuffer = new char[Length+1]; pStr=FileBuffer; TStrNCpy(pStr,*Iter,nCol); pStr[nCol]=0; pStr+=TStrLen(pStr); TStrCpy(pStr,szBuffer); pStr+=TStrLen(pStr); TStrCpy(pStr,&(*Iter)[nCol]); delete *Iter; TTXTStrList::IT DelIter; DelIter=Iter; Iter++; m_StrList.Remove(DelIter); nOffset=0; nBegin=0; while(nOffsetWriteToFile(FileName,FileBuffer,Length*2); if(bClose) return CImageFile::Open(FileName); return true; } void CUTXTFile::Close() { CImageFile::Close(); for(TTXTStrWList::IT Iter=m_StrList.Begin();Iter!=m_StrList.End();Iter++) delete *Iter; m_StrList.Clear(); } bool CUTXTFile::Insert(ULPOS nLine,ULPOS nCol,WCHAR*szBuffer) { ULPOS nBegin,nEnd,nOffset; ULSIZE Length; WCHAR*FileBuffer,*pStr,*szLine; TTXTStrWList::IT Iter=m_StrList.Begin(); while(nLine) { if(Iter==m_StrList.End()) return false; nLine--; Iter++; } Length=TStrLen(*Iter); if(Length<=nCol) return false; Length+=TStrLen(szBuffer); FileBuffer = new WCHAR[Length+1]; pStr=FileBuffer; TStrNCpy(pStr,*Iter,nCol); pStr[nCol]=0; pStr+=TStrLen(pStr); TStrCpy(pStr,szBuffer); pStr+=TStrLen(pStr); TStrCpy(pStr,&(*Iter)[nCol]); delete *Iter; TTXTStrWList::IT DelIter; DelIter=Iter; Iter++; m_StrList.Remove(DelIter); nOffset=0; nBegin=0; while(nOffset TTXTStrList; class CTXTFile : public CImageFile { public: CTXTFile(); ~CTXTFile(); bool Open(PCSTR FileName,HANDLE*pHandleOpen = NULL); bool Open(PCSTR szTXTBuffer,ULLSIZE BufferSize); int SplitLine(PCSTR Buffer,ULLSIZE BufferSize); bool Save(PCSTR FileName); void Close(); bool Insert(ULPOS nLine,ULPOS nCol,char*szBuffer); bool Replace(ULPOS nLine,ULPOS nCol,char*szBuffer,ULSIZE Replen); TTXTStrList m_StrList; }; //////////////////////////////////////////////////////////////////////////////////////////// typedef TList TTXTStrWList; class CUTXTFile : public CImageFile { public: CUTXTFile(); ~CUTXTFile(); bool Open(PCSTR FileName,HANDLE*pHandleOpen = NULL); bool Open(PCWSTR szTXTBuffer,ULLSIZE BufferSize); int SplitLine(PCWSTR Buffer,ULLSIZE BufferSize); bool Save(PCSTR FileName); void Close(); bool Insert(ULPOS nLine,ULPOS nCol,WCHAR*szBuffer); bool Replace(ULPOS nLine,ULPOS nCol,WCHAR*szBuffer,ULSIZE Replen); TTXTStrWList m_StrList; }; NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/WinReg.cpp ================================================ #include "StdAfx.h" #include "WinReg.h" HKEY OpenReg(HKEY h,PCSTR son) { HKEY res; if(RegOpenKeyEx(h,son,0,KEY_ALL_ACCESS,&res)==ERROR_SUCCESS) return res; else return 0; } HKEY OpenCreateReg(HKEY h,PCSTR son) { HKEY res; if(RegCreateKeyEx(h,son,0,NULL,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,NULL,&res,NULL)==ERROR_SUCCESS) return res; else return 0; } void CloseReg(HKEY h) { RegCloseKey(h); } bool GetRegValue(HKEY h,PCSTR name,void* value) { DWORD size=1024; return RegQueryValueEx(h,name,0,NULL,(PBYTE)value,&size)==ERROR_SUCCESS; } bool SetRegValue(HKEY h,PCSTR name,void* value,int type) { DWORD size; switch(type) { case REG_DWORD:size=4; break; case REG_SZ :size=(DWORD)strlen((char*)value); break; default: size=0; break; } return RegSetValueEx(h,name,0,type,(PBYTE)value,size)==ERROR_SUCCESS; } bool GetRegValueEx(PCSTR KeyValue,void* value,int Size) { DWORD Type; HKEY hRoot,hKey; char KeyValueBuf[256]; char *p,*p1,*p2; strcpy_s(KeyValueBuf,sizeof(KeyValueBuf),KeyValue); p=KeyValueBuf; p1=strchr (KeyValueBuf,'\\'); p2=strrchr(KeyValueBuf,'\\'); *p2=*p1='\0'; p1++; p2++; if(strcmp(p,"HKCR")==0)hRoot=HKEY_CLASSES_ROOT; else if(strcmp(p,"HKCU")==0)hRoot=HKEY_CURRENT_USER; else if(strcmp(p,"HKLM")==0)hRoot=HKEY_LOCAL_MACHINE; else if(strcmp(p,"HKU" )==0)hRoot=HKEY_USERS; else if(strcmp(p,"HKCC")==0)hRoot=HKEY_CURRENT_CONFIG; else if(strcmp(p,"HKDD")==0)hRoot=HKEY_DYN_DATA; else return false; if(RegOpenKeyEx(hRoot,p1,0,KEY_QUERY_VALUE,&hKey)!=ERROR_SUCCESS) return false; if(RegQueryValueEx(hKey,p2,0,&Type,(PBYTE)value,(DWORD*)&Size)!=ERROR_SUCCESS) { RegCloseKey(hKey); return false; } RegCloseKey(hKey); return true; } bool SetRegValueEx(PCSTR KeyValue,void* value,int type,int Size) { HKEY hRoot,hKey; DWORD size; char KeyValueBuf[256]; char *p,*p1,*p2; strcpy_s(KeyValueBuf,sizeof(KeyValueBuf),KeyValue); p=KeyValueBuf; p1=strchr (KeyValueBuf,'\\'); p2=strrchr(KeyValueBuf,'\\'); *p2=*p1='\0'; p1++; p2++; if(strcmp(p,"HKCR")==0)hRoot=HKEY_CLASSES_ROOT; else if(strcmp(p,"HKCU")==0)hRoot=HKEY_CURRENT_USER; else if(strcmp(p,"HKLM")==0)hRoot=HKEY_LOCAL_MACHINE; else if(strcmp(p,"HKU" )==0)hRoot=HKEY_USERS; else if(strcmp(p,"HKCC")==0)hRoot=HKEY_CURRENT_CONFIG; else if(strcmp(p,"HKDD")==0)hRoot=HKEY_DYN_DATA; else return false; if(RegCreateKeyEx(hRoot,p1,0,NULL,REG_OPTION_NON_VOLATILE, KEY_SET_VALUE,NULL,&hKey,NULL)!=ERROR_SUCCESS) return false; if(Size==0) { switch(type) { case REG_DWORD:size=4; break; case REG_SZ :size=(DWORD)strlen((PCHAR)value); break; case REG_QWORD:size=8; break; default: size=0; break; } } else size = Size; if(RegSetValueEx(hKey,p2,0,type,(PBYTE)value,size)!=ERROR_SUCCESS) { RegCloseKey(hKey); return false; } RegCloseKey(hKey); return true; } bool DelReg(HKEY h,PCSTR sub) { return RegDeleteKey(h,sub)==ERROR_SUCCESS; } bool DelRegValue(HKEY h,PCSTR name) { return RegDeleteValue(h,name)==ERROR_SUCCESS; } bool DelRegValueEx(PCSTR name) { HKEY hRoot,hKey; char KeyValueBuf[256]; char *p,*p1,*p2; strcpy_s(KeyValueBuf,sizeof(KeyValueBuf),name); p=KeyValueBuf; p1=strchr (KeyValueBuf,'\\'); p2=strrchr(KeyValueBuf,'\\'); *p2=*p1='\0'; p1++; p2++; if(strcmp(p,"HKCR")==0)hRoot=HKEY_CLASSES_ROOT; else if(strcmp(p,"HKCU")==0)hRoot=HKEY_CURRENT_USER; else if(strcmp(p,"HKLM")==0)hRoot=HKEY_LOCAL_MACHINE; else if(strcmp(p,"HKU" )==0)hRoot=HKEY_USERS; else if(strcmp(p,"HKCC")==0)hRoot=HKEY_CURRENT_CONFIG; else if(strcmp(p,"HKDD")==0)hRoot=HKEY_DYN_DATA; else return false; if(RegOpenKeyEx(hRoot,p1,0,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS) return false; if(RegDeleteValue(hKey,p2)!=ERROR_SUCCESS) { RegCloseKey(hKey); return false; } RegCloseKey(hKey); return true; } void RegisterFileType(PCSTR FullPrgName,PCSTR OpenName) { HKEY hOpenWith,hCommand; CHAR FileName[512],ValueBuf[512]; bool bSuccess; strcpy_s(FileName,sizeof(FileName),FullPrgName); strcat_s(FileName,sizeof(FileName)," %1"); hOpenWith=OpenCreateReg(HKEY_CLASSES_ROOT,OpenName); if(hOpenWith) { hCommand=OpenCreateReg(hOpenWith,"command"); if(hCommand) { bSuccess=GetRegValue(hCommand,"",ValueBuf)==FALSE; if(bSuccess==FALSE || (bSuccess && TStrICmp(FileName,ValueBuf))) SetRegValue(hCommand,"",FileName,REG_SZ); CloseReg(hCommand); } CloseReg(hOpenWith); } } void UnregisterFileType(PCSTR OpenName) { HKEY hKey; CHAR RegName[256],*pStr; hKey=OpenReg(HKEY_CLASSES_ROOT,OpenName); if(hKey) { DelReg(hKey,"command"); CloseReg(hKey); strcpy_s(RegName,sizeof(RegName),OpenName); pStr=strrchr(RegName,'\\'); if(pStr) { *pStr=0; *pStr++; hKey=OpenReg(HKEY_CLASSES_ROOT,RegName); if(hKey) { DelReg(hKey,pStr); CloseReg(hKey); } } } } ================================================ FILE: Project/Code/Source/WinReg.h ================================================ #ifndef _WIN_REG_H_ #define _WIN_REG_H_ #define HKCR HKEY_CLASSES_ROOT #define HKCU HKEY_CURRENT_USER #define HKLM HKEY_LOCAL_MACHINE #define HKU HKEY_USERS #define HKCC HKEY_CURRENT_CONFIG #define HKDD HKEY_DYN_DATA #define SUB_RUN "Software\\Microsoft\\Windows\\CurrentVersion\\Run" #define SUB_RUNSERVICES "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices" #define SUB_EXPLORER "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer" #define VALUE_NODRV "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\NoDrives" HKEY OpenCreateReg(HKEY h,PCSTR son); HKEY OpenReg(HKEY h,PCSTR son); void CloseReg(HKEY h); bool SetRegValue(HKEY h,PCSTR name,void* value,int type); bool SetRegValueEx(PCSTR KeyValue,void* value,int type,int Size = 0); bool GetRegValue(HKEY h,PCSTR name,void* value); bool GetRegValueEx(PCSTR KeyValue,void* value,int Size); bool DelReg(HKEY h,PCSTR sub); bool DelRegValue(HKEY h,PCSTR name); bool DelRegValueEx(PCSTR name); void RegisterFileType(PCSTR FullPrgName,PCSTR OpenName); void UnregisterFileType(PCSTR OpenName); #endif ================================================ FILE: Project/Code/Source/alt/ALTArray.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //Array //Coded by Finaldoom //̬ //ߣ¿ /////////////////////////////////////////////////////////////////////////////// #ifndef _ALT_ARRAY_HPP_ #define _ALT_ARRAY_HPP_ ALT_NAME_SPACE_BEGIN template class TArray : public ALTObj { public: int m_Count; int m_Size; protected: VALUE* m_ValueAry; public: TArray() { m_Count=m_Size=0; m_ValueAry = NULL; Resize(SIZE); } TArray(const TArray&Obj) { CopyConstruct(Obj); } TArray(VALUE*pValueAry,int m_Count) { Attach(pValueAry,m_Count); } ~TArray() { if(m_ValueAry) { DestructArray(m_ValueAry); m_ValueAry = NULL; } m_Count=m_Size=0; } void CopyConstruct(const TArray&Obj) { m_ValueAry = NULL; m_Count=m_Size=0; Resize(Obj.m_Size); for(int n=0;n=m_Size) Resize(m_Size*2); if(&Value) m_ValueAry[m_Count]=Value; m_Count++; return &m_ValueAry[m_Count-1]; } operator VALUE*() const { return m_ValueAry; } bool Remove() { if(m_Count<=0) return false; m_Count--; return true; } inline VALUE& operator[](int n)const { return m_ValueAry[n]; } void operator=(const TArray&Obj) { Clear(); CopyConstruct(Obj); } void Attach(VALUE*pValueAry,int m_Count) { Clear(); if(m_ValueAry) { DestructArray(m_ValueAry); m_ValueAry = NULL; } m_ValueAry = pValueAry; m_Count = m_Count; m_Size = SIZE; } void Detach() { m_ValueAry = NULL; m_Count = 0; m_Size = 0; } int Find(const VALUE&Value) { int Index,n; n = m_Count; Index = 0; while(n) { if(n%2) n++; n/=2; Index+=n; if(Value==m_ValueAry[Index]) return Index; if(ValueLoad(Stream); if(Length==0) return 0; TotalLength+=Length; } return TotalLength; } }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTBTree.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //Map (Binary Tree) //Coded by Finaldoom // //ߣ¿ #ifndef _ALT_BTREE_H_ #define _ALT_BTREE_H_ ALT_NAME_SPACE_BEGIN template class TBTreeNode { public: VALUE Value; TBTreeNode* pParentNode; TBTreeNode* pLeftNode; TBTreeNode* pRightNode; int Level; }; template class TBTreeIter { public: typedef TBTreeNode NODE; public: NODE* m_pNode; NODE* m_pLeftNode; NODE* m_pRightNode; NODE* m_pParentNode; public: TBTreeIter(){ m_pNode = m_pParentNode = m_pLeftNode = m_pRightNode = NULL;} TBTreeIter(NODE*pNode){ m_pNode = pNode; Update();} void operator++(int){ m_pNode = m_pRightNode; Update();} void operator--(int){ m_pNode = m_pParentNode; Update();} void operator++(){ m_pNode = m_pLeftNode;Update();} VALUE* operator->(){ return &m_pNode->Value;} VALUE& operator*(){ return m_pNode->Value;} bool operator==(NODE*pNode){ return m_pNode == pNode; } bool operator!=(NODE*pNode){ return m_pNode != pNode; } bool operator==(const NODE&Iter){ return m_pNode == Iter.m_pNode; } bool operator!=(const NODE&Iter){ return m_pNode != Iter.m_pNode; } TBTreeIter GetLeft()const{TBTreeIter Iter(m_pLeftNode);return Iter;} TBTreeIter GetRight()const{TBTreeIter Iter(m_pRightNode);return Iter;} private: void Update() { if(m_pNode) { m_pParentNode = m_pNode->pParentNode; m_pLeftNode = m_pNode->pLeftNode; m_pRightNode = m_pNode->pRightNode; } else m_pParentNode = m_pLeftNode = m_pRightNode = NULL; } }; template class TBTree { public: typedef TBTreeNode NODE; typedef TBTreeIter IT; public: NODE*m_pRootNode; public: TBTree(); ~TBTree(); void Clear(); IT Root(); IT CreateRoot(const VALUE&Value); IT InsertLeft(IT&ParentIter,const VALUE&Value); IT InsertRight(IT&ParentIter,const VALUE&Value); void Remove(const IT&Iter); void Remove(const NODE*pNode); }; ///////////////////////////////////////////////////////////////////////////// //TBTree ///////////////////////////////////////////////////////////////////////////// template TBTree::TBTree() { m_pRootNode = NULL; } template TBTree::~TBTree() { Clear(); } template void TBTree::Clear() { Remove(m_pRootNode); m_pRootNode = NULL; } template TBTreeIter TBTree::Root() { IT Iter; Iter = m_pRootNode; return Iter; } template TBTreeIter TBTree::CreateRoot(const VALUE&Value) { IT Iter; m_pRootNode = new NODE; m_pRootNode->pParentNode = m_pRootNode->pLeftNode = m_pRootNode->pRightNode = NULL; m_pRootNode->Value = Value; m_pRootNode->Level = 0; Iter = m_pRootNode; return Iter; } template TBTreeIter TBTree::InsertLeft(IT&ParentIter,const VALUE&Value) { IT Iter; ParentIter.m_pNode->pLeftNode = new NODE; ParentIter.m_pNode->pLeftNode->pParentNode = ParentIter.m_pNode; ParentIter.m_pNode->pLeftNode->pLeftNode = ParentIter.m_pNode->pLeftNode->pRightNode = NULL; ParentIter.m_pNode->pLeftNode->Value = Value; ParentIter.m_pNode->pLeftNode->Level = ParentIter.m_pNode->Level + 1; Iter = ParentIter.m_pNode->pLeftNode; return Iter; } template TBTreeIter TBTree::InsertRight(IT&ParentIter,const VALUE&Value) { IT Iter; ParentIter.m_pNode->pRightNode = new NODE; ParentIter.m_pNode->pRightNode->pParentNode = ParentIter.m_pNode; ParentIter.m_pNode->pRightNode->pLeftNode = ParentIter.m_pNode->pRightNode->pRightNode = NULL; ParentIter.m_pNode->pRightNode->Value = Value; ParentIter.m_pNode->pRightNode->Level = ParentIter.m_pNode->Level + 1; Iter = ParentIter.m_pNode->pRightNode; return Iter; } template void TBTree::Remove(const IT&Iter) { Remove(Iter.m_pNode); } template void TBTree::Remove(const NODE*pNode) { if(pNode==NULL) return; if(pNode->pLeftNode) Remove(pNode->pLeftNode); if(pNode->pRightNode) Remove(pNode->pRightNode); if(m_pRootNode==pNode) m_pRootNode = NULL; delete pNode; } ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTBase.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //ALT Base Object //Coded by Finaldoom //ALT //ߣ¿ /////////////////////////////////////////////////////////////////////////////// #ifndef _ALT_BASE_HPP_ #define _ALT_BASE_HPP_ #include "ALTConfig.hpp" #ifndef NULL #define NULL 0 #endif #ifndef PATH_SEPARATOR_CHAR #define PATH_SEPARATOR_CHAR '\\' #endif #ifndef PATH_SEPARATOR_STR #define PATH_SEPARATOR_STR "\\" #endif ALT_NAME_SPACE_BEGIN class ALTFileStream { public: virtual int Puts(void*Buffer,int Size){return 0;} virtual int Gets(void*Buffer,int Size){return 0;} }; struct ALT_EMPTY_STRUCT { int Save(ALTFileStream&Stream){return 0;} int Load(ALTFileStream&Stream){return 0;} }; class ALTEmptyArchive { public: int Save(ALTFileStream&Stream){return 0;} int Load(ALTFileStream&Stream){return 0;} }; template class ALTObj { public: OBJ* Construct(){return new OBJ;} void Destruct(OBJ*pObj){delete pObj;} OBJ* ConstructArray(int Count){return new OBJ[Count];} void DestructArray(OBJ*pObj){delete[] pObj;} void*ConstructPtrArray(int Count){return new void*[Count];} void DestructPtrArray(void*Ptr){delete[] (void**)Ptr;} int Save(ALTFileStream&Stream){return 0;} int Load(ALTFileStream&Stream){return 0;} }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTConfig.hpp ================================================ #ifndef _ALT_CONFIG_HPP_ #define _ALT_CONFIG_HPP_ //ALT config header file #define ALT_FILE_STREAM //support file stream #define ALT_NAME_SPACE ALT /////////////////////////////////////////// //ϵ don't modify /////////////////////////////////////////// #ifdef CODE_ASSERT #define ALT_ASSERT CODE_ASSERT #else// CODE_ASSERT #ifdef assert #define ALT_ASSERT assert #endif//assert #endif//CODE_ASSERT #ifndef ALT_ASSERT #define ALT_ASSERT #endif #ifdef ALT_NAME_SPACE #define ALT_NAME_SPACE_BEGIN namespace ALT_NAME_SPACE{ #define ALT_NAME_SPACE_END } #else #define ALT_NAME_SPACE_BEGIN #define ALT_NAME_SPACE_END #endif #endif ================================================ FILE: Project/Code/Source/alt/ALTExpCalc.hpp ================================================ #ifndef _ALT_EXP_CALC_HPP_ #define _ALT_EXP_CALC_HPP_ ALT_NAME_SPACE_BEGIN #define FP_VALUE_FUNC_TYPE_DEF typedef VALUE_TYPE (*FPValueFunc)(CHAR_TYPE*pszSym,void*Param) #define EXP_CALC_MAX_LEVEL 6 #define EXP_MAX_OPT_STRLEN 2 template class TExpCalcSym { public: enum TYPE { CONSTANT, PTR, FUNC, }; FP_VALUE_FUNC_TYPE_DEF; public: union { VALUE_TYPE Const; struct { void* Ptr; int Length; }Ptr; struct { FPValueFunc fpValueFunc; void* Param; }Func; }Value; TYPE Type; }; struct STOptFunc { CStrA OptStr; int Level; void* OptFunc; void* Param; }; template class TExpItem { public: enum TYPE { RESULT, SYM, STR, OPTR }; union { VALUE_TYPE Value; STOptFunc* pOptFunc; const CHAR_TYPE*pStr; }Value; TYPE Type; int Length; const CHAR_TYPE*ItemStr; }; template class TExpCalc { public: typedef TList STOptFuncList; typedef TExpItem STExpItem; typedef TList STExpItemList; typedef TListIter STExpItemListIT; typedef TString CExpCalcStr; typedef TExpCalcSym CExpCalcSym; typedef TMap CExpCalcSymMap; typedef TMapIter CExpCalcSymMapIT; typedef STExpItem*(*PFOptFunc)(STExpItemListIT&OptIter,STExpItemList&ExpItemList,void*Param); FP_VALUE_FUNC_TYPE_DEF; public: TExpCalc(); bool CalcExp(const CHAR_TYPE*ExpStr,VALUE_TYPE*pResult); bool CalcExpA(const CHAR*ExpStr,VALUE_TYPE*pResult); bool CalcExpW(const WCHAR*ExpStr,VALUE_TYPE*pResult); virtual bool GetValue (const CHAR_TYPE*szItem,VALUE_TYPE*pValue); virtual VALUE_TYPE GetPtrValue(VALUE_TYPE Address){return 0;} virtual int GetStringA(VALUE_TYPE Address,PSTR szBuffer,int MaxLen); virtual int GetStringW(VALUE_TYPE Address,PWSTR szBuffer,int MaxLen); virtual void GetMem(VALUE_TYPE Address,BYTE* Buffer,int Len); bool InsertOptFunc(const char*szOpt,int Level,PFOptFunc pfOptFunc,void*Param); bool InsertConstSym(CHAR_TYPE*szSym,VALUE_TYPE Value); bool InsertPtrSym(CHAR_TYPE*szSym,void*pValue,int Length); bool InsertFuncSym(CHAR_TYPE*szSym,FPValueFunc fpFunc,void*Param); void ClearAllSym(); void ClearConstSym(); void ClearPtrSym(); void ClearFuncSym(); bool RemoveSym(CHAR_TYPE*szSym); bool CheckCalcItem(int nPrev,STExpItemListIT&OptIter,int nNext,STExpItemList&ExpItemList); bool RemoveCalcItem(const STExpItemListIT&BeginIter,int Count,STExpItemList&ExpItemList); bool SetPtrValue(const CHAR_TYPE*szValue,VALUE_TYPE Value); STOptFuncList m_OptFuncList; CExpCalcSymMap m_SymMap; private: bool CalcItem(STExpItemListIT&ItemIter,STExpItemList&ExpItemList); bool GetItemValue(STExpItem*pItem); bool GetItem(const CHAR_TYPE*ExpStr,STExpItemList&ExpItemList); STOptFunc*IsOptString(const CHAR_TYPE*ExpStr); ////////////////////////////////////////////////////////////////////////////////////////// //ͨò ////////////////////////////////////////////////////////////////////////////////////////// static STExpItem*Null(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*PtrValue(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*LogicAnd(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*LogicOr(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*LogicXor(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*NotBelow(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*NotAbove(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Below(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Above(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Equal(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*NotEqual(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*ShiftRight(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*ShiftLeft(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Add(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Sub(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Mul(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Div(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Mod(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Xor(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Not(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*And(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*Or(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*LeftBracket(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); static STExpItem*NonOptr(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis); }; typedef TExpCalc CExpCalcA; typedef TExpCalc CExpCalcW; template TExpCalc::TExpCalc() { InsertOptFunc("&&",5,(PFOptFunc)LogicAnd,this); InsertOptFunc("||",5,(PFOptFunc)LogicOr,this); InsertOptFunc("^^",5,(PFOptFunc)LogicXor,this); InsertOptFunc(">=",4,(PFOptFunc)NotBelow,this); InsertOptFunc("<=",4,(PFOptFunc)NotAbove,this); InsertOptFunc("==",4,(PFOptFunc)Equal,this); InsertOptFunc("!=",4,(PFOptFunc)NotEqual,this); InsertOptFunc(">>",1,(PFOptFunc)ShiftRight,this); InsertOptFunc("<<",1,(PFOptFunc)ShiftLeft,this); InsertOptFunc(">",4,(PFOptFunc)Above,this); InsertOptFunc("<",4,(PFOptFunc)Below,this); InsertOptFunc("+",3,(PFOptFunc)Add,this); InsertOptFunc("-",3,(PFOptFunc)Sub,this); InsertOptFunc("*",2,(PFOptFunc)Mul,this); InsertOptFunc("/",2,(PFOptFunc)Div,this); InsertOptFunc("%",2,(PFOptFunc)Mod,this); InsertOptFunc("@",1,(PFOptFunc)PtrValue,this); InsertOptFunc("^",1,(PFOptFunc)Xor,this); InsertOptFunc("!",1,(PFOptFunc)Not,this); InsertOptFunc("&",1,(PFOptFunc)And,this); InsertOptFunc("|",1,(PFOptFunc)Or,this); InsertOptFunc("(",0,(PFOptFunc)LeftBracket,this); InsertOptFunc(")",0,(PFOptFunc)NonOptr,this); InsertOptFunc("\"",0,(PFOptFunc)Null,this); InsertOptFunc("\'",0,(PFOptFunc)Null,this); } template bool TExpCalc::CalcExp(const CHAR_TYPE*ExpStr,VALUE_TYPE*pResult) { STExpItemList ExpItemList; if(ExpStr==NULL || *ExpStr==0) { *pResult = 0; return true; } if(GetItem(ExpStr,ExpItemList)==false) return false; if(CalcItem(ExpItemList.Begin(),ExpItemList)==false) return false; if(pResult) *pResult=ExpItemList.Begin()->Value.Value; return true; } template bool TExpCalc::CalcExpA(const CHAR*ExpStr,VALUE_TYPE*pResult) { CHAR_TYPE szBuffer[512]; if(ExpStr==NULL) return false; TStrCpy(szBuffer,ExpStr); return CalcExp(szBuffer,pResult); } template bool TExpCalc::CalcExpW(const WCHAR*ExpStr,VALUE_TYPE*pResult) { CHAR_TYPE szBuffer[512]; if(ExpStr==NULL) return false; TStrCpy(szBuffer,ExpStr); return CalcExp(szBuffer,pResult); } template bool TExpCalc::InsertOptFunc(const char*szOpt,int Level,PFOptFunc pfOptFunc,void*Param) { STOptFuncList::IT Iter; int OptLen = TStrLen(szOpt); for( Iter = m_OptFuncList.Begin();Iter!=m_OptFuncList.End();Iter++) { if(Iter->Level>Level || (Iter->Level==Level && OptLen>=Iter->OptStr.Length()) ) break; } Iter = m_OptFuncList.InsertBefore(Iter); Iter->OptStr = szOpt; Iter->Level = Level; Iter->OptFunc = pfOptFunc; Iter->Param = Param; return true; } template bool TExpCalc::InsertConstSym(CHAR_TYPE*szSym,VALUE_TYPE Value) { CExpCalcSymMapIT Iter = m_SymMap.InsertUnique(szSym); if(Iter==m_SymMap.End()) return false; Iter->Value.Const = Value; Iter->Type = CExpCalcSym::CONSTANT; return true; } template bool TExpCalc::InsertPtrSym(CHAR_TYPE*szSym,void*pValue,int Length) { CExpCalcSymMapIT Iter = m_SymMap.InsertUnique(szSym); if(Iter==m_SymMap.End()) return false; Iter->Value.Ptr.Ptr = pValue; Iter->Value.Ptr.Length = Length; Iter->Type = CExpCalcSym::PTR; return true; } template bool TExpCalc::InsertFuncSym(CHAR_TYPE*szSym,FPValueFunc fpFunc,void*Param) { CExpCalcSymMapIT Iter; Iter = m_SymMap.InsertUnique(szSym); if(Iter==m_SymMap.End()) return false; Iter->Value.Func.fpValueFunc = fpFunc; Iter->Value.Func.Param = Param; Iter->Type = CExpCalcSym::FUNC; return true; } template void TExpCalc::ClearAllSym() { m_SymMap.Clear(); } template void TExpCalc::ClearConstSym() { CExpCalcSymMapIT RemoveIter,Iter=m_SymMap.Begin(); while(Iter!=m_SymMap.End()) { if(Iter->Type == CExpCalcSym::CONST) { RemoveIter = Iter; Iter++; m_SymMap.Remove(RemoveIter); } else { Iter++; } } } template void TExpCalc::ClearPtrSym() { CExpCalcSymMapIT RemoveIter,Iter=m_SymMap.Begin(); while(Iter!=m_SymMap.End()) { if(Iter->Type == CExpCalcSym::PTR) { RemoveIter = Iter; Iter++; m_SymMap.Remove(RemoveIter); } else { Iter++; } } } template void TExpCalc::ClearFuncSym() { CExpCalcSymMapIT RemoveIter,Iter=m_SymMap.Begin(); while(Iter!=m_SymMap.End()) { if(Iter->Type == CExpCalcSym::FUNC) { RemoveIter = Iter; Iter++; m_SymMap.Remove(RemoveIter); } else { Iter++; } } } template bool TExpCalc::RemoveSym(CHAR_TYPE*szSym) { CExpCalcSymMapIT Iter = m_SymMap.Find(szSym); if(Iter==m_SymMap.End()) return false; m_SymMap.Remove(Iter); return true; } template STOptFunc*TExpCalc::IsOptString(const CHAR_TYPE*ExpStr) { static CHAR_TYPE OptrStr[]= { '`','~','!','@','#','$','%','^','&','*','(',')','-','+','=', '|','{','}',':',';','\"','\'','<','>',',','.','?','/','\\','\'','\"','\0' }; if(TStrChr(OptrStr,*ExpStr)==NULL) return NULL; for(int OptLen = EXP_MAX_OPT_STRLEN; OptLen>0 ; OptLen--) { for(STOptFuncList::IT FuncIter=m_OptFuncList.Begin();FuncIter!=m_OptFuncList.End();FuncIter++) { if(OptLen== FuncIter->OptStr.Length() && TStrNCmp(ExpStr,(const char*)FuncIter->OptStr,FuncIter->OptStr.Length())==0) return &(*FuncIter); } } return NULL; } template bool TExpCalc::GetItemValue(STExpItem*pItem) { CHAR_TYPE NumStr[128]; TStrCpyLimit(NumStr,pItem->ItemStr,pItem->Length+1); if(GetValue(NumStr,&pItem->Value.Value)==false) { pItem->Type = STExpItem::SYM; return false; } pItem->Type = STExpItem::RESULT; return true; } template bool TExpCalc::GetItem(const CHAR_TYPE*ExpStr,STExpItemList&ExpItemList) { static CHAR_TYPE IgnoreStr[]={'\r','\n','\t',' ','\0'}; STOptFunc*pOptFunc; STExpItem*pExpItem,*PrevItem; int Begin,End,Length; Length=TStrLen(ExpStr); Begin = End = 0; PrevItem = NULL; while(EndLength = End - Begin; GetItemValue(PrevItem); PrevItem = NULL; } } else { pOptFunc = IsOptString(&ExpStr[End]); if(pOptFunc) { if(PrevItem) { PrevItem->Length = End - Begin; GetItemValue(PrevItem); PrevItem = NULL; } if(ExpStr[End]=='\"' || ExpStr[End]=='\'') { pExpItem = &(*ExpItemList.Append()); End++; Begin = End; pExpItem->ItemStr=&ExpStr[Begin]; while(ExpStr[End] && ExpStr[End]!='\"' && ExpStr[End]!='\'') End++; pExpItem->Length=End-Begin; pExpItem->Value.pStr=&ExpStr[Begin]; pExpItem->Type = STExpItem::STR; Begin = End; } else { pExpItem = &(*ExpItemList.Append()); pExpItem->ItemStr=&ExpStr[End]; pExpItem->Length=pOptFunc->OptStr.Length(); pExpItem->Value.pOptFunc=pOptFunc; pExpItem->Type = STExpItem::OPTR; End = Begin = End + pExpItem->Length - 1; } } else if(PrevItem==NULL) { PrevItem = &(*ExpItemList.Append()); PrevItem->ItemStr = &ExpStr[End]; PrevItem->Value.pOptFunc = NULL; Begin = End; } } End++; } if(PrevItem) { PrevItem->Length = End - Begin; GetItemValue(PrevItem); PrevItem = NULL; } return true; } template bool TExpCalc::CheckCalcItem(int nPrev,STExpItemListIT&OptIter,int nNext,STExpItemList&ExpItemList) { int n; STExpItemListIT Iter; Iter = OptIter-1; for(n=0;nType != STExpItem::RESULT) return false; Iter--; } Iter = OptIter+1; for(n=0;nType != STExpItem::RESULT) return false; Iter++; } return true; } template bool TExpCalc::RemoveCalcItem(const STExpItemListIT&BeginIter,int Count,STExpItemList&ExpItemList) { STExpItemListIT Iter = BeginIter; for(int n=0;n bool TExpCalc::CalcItem(STExpItemListIT&ItemIter,STExpItemList&ExpItemList) { STExpItem*pResult; STOptFunc*pOptFunc; STExpItemListIT CurItemIter = ItemIter; for(int Level=0;LevelType == STExpItem::OPTR) { pOptFunc=CurItemIter->Value.pOptFunc; if(pOptFunc->Level==Level) { pResult = ((PFOptFunc)pOptFunc->OptFunc)(CurItemIter,ExpItemList,this); if(pResult==NULL) return false; pResult->Type = STExpItem::RESULT; CurItemIter = *pResult; } } CurItemIter++; } } return ExpItemList.Count()==1 && ExpItemList.Begin()->Type == STExpItem::RESULT; } template bool TExpCalc::SetPtrValue(const CHAR_TYPE*szValue,VALUE_TYPE Value) { CExpCalcSymMapIT Iter = m_SymMap.Find(szValue); if(Iter==m_SymMap.End()) return false; if(Iter->Type != CExpCalcSym::PTR) return false; memcpy(Iter->Value.Ptr.Ptr,&Value,Iter->Value.Ptr.Length); return true; } template bool TExpCalc::GetValue(const CHAR_TYPE*szItem,VALUE_TYPE*pValue) { if(USHexStrToNum(szItem,pValue)) return true; CExpCalcSymMapIT Iter = m_SymMap.Find(szItem); if(Iter!=m_SymMap.End()) { switch(Iter->Type) { case CExpCalcSym::CONSTANT: *pValue = Iter->Value.Const; break; case CExpCalcSym::PTR: *pValue=0; TMemCpy((BYTE*)pValue,(BYTE*)Iter->Value.Ptr.Ptr,Iter->Value.Ptr.Length); break; case CExpCalcSym::FUNC: *pValue = Iter->Value.Func.fpValueFunc(Iter.Key(),Iter->Value.Func.Param); break; default: return false; } return true; } return false; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// template int TExpCalc::GetStringA(VALUE_TYPE Address,PSTR szBuffer,int MaxLen) { CHAR Value; int Length=0; while(Length int TExpCalc::GetStringW(VALUE_TYPE Address,PWSTR szBuffer,int MaxLen) { WCHAR Value; int Length=0; while(Length void TExpCalc::GetMem(VALUE_TYPE Address,BYTE* Buffer,int Len) { int Length=0; while(Length TExpItem*TExpCalc::Null(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { return NULL; } template TExpItem*TExpCalc::PtrValue(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(0,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT NextIter; NextIter = OptIter+1; OptIter->Value.Value = pThis->GetPtrValue(NextIter->Value.Value); pThis->RemoveCalcItem(NextIter,1,ExpItemList); return &(*OptIter); } template TExpItem*TExpCalc::LogicAnd(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value && NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::LogicOr(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value || NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::LogicXor(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; if(PrevIter->Value.Value && !NextIter->Value.Value) PrevIter->Value.Value=true; else if(!PrevIter->Value.Value && NextIter->Value.Value) PrevIter->Value.Value=true; else PrevIter->Value.Value=false; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::NotBelow(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value >= NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::NotAbove(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value <= NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Below(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value < NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Above(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value > NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Equal(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { STExpItemListIT PrevIter,NextIter; if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) { PrevIter = OptIter-1; if(PrevIter == ExpItemList.End()) return NULL; NextIter = OptIter+1; if(NextIter == ExpItemList.End()) return NULL; STExpItemListIT StrIter,PtrIter; if(PrevIter->Type == STExpItem::STR && NextIter->Type == STExpItem::RESULT) { StrIter = PrevIter; PtrIter = NextIter; } else if(PrevIter->Type == STExpItem::RESULT && NextIter->Type == STExpItem::STR) { StrIter = NextIter; PtrIter = PrevIter; } else return NULL; BYTE szBuffer[64]; pThis->GetMem(PtrIter->Value.Value,szBuffer,MIN(StrIter->Length*2,sizeof(szBuffer))); VALUE_TYPE Result=1; if(TStrNICmp((PCSTR)szBuffer,StrIter->Value.pStr,MIN(StrIter->Length,sizeof(szBuffer)))) { if(TStrNICmp((PCWSTR)szBuffer,StrIter->Value.pStr,MIN(StrIter->Length,sizeof(szBuffer)/2))) Result=0; } PrevIter->Type = STExpItem::RESULT; PrevIter->Value.Value = Result; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value == NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::NotEqual(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value != NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::ShiftRight(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value >> NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::ShiftLeft(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value << NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Add(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value + NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Sub(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) { if(pThis->CheckCalcItem(0,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT NextIter; NextIter = OptIter+1; OptIter->Value.Value=(VALUE_TYPE)(0-NextIter->Value.Value); pThis->RemoveCalcItem(NextIter,1,ExpItemList); return &(*OptIter); } STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value - NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Mul(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { STExpItemListIT PrevIter,NextIter; if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) { if(pThis->CheckCalcItem(0,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT NextIter; NextIter = OptIter+1; OptIter->Value.Value=pThis->GetPtrValue(NextIter->Value.Value); pThis->RemoveCalcItem(NextIter,1,ExpItemList); return &(*OptIter); } PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value * NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Div(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; if(NextIter->Value.Value==0) return NULL; PrevIter->Value.Value=PrevIter->Value.Value / NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Mod(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value % NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Xor(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value ^ NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Not(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(0,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT NextIter; NextIter = OptIter+1; OptIter->Value.Value=!NextIter->Value.Value; pThis->RemoveCalcItem(NextIter,1,ExpItemList); return &(*OptIter); } template TExpItem*TExpCalc::And(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value & NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::Or(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { if(pThis->CheckCalcItem(1,OptIter,1,ExpItemList)==false) return NULL; STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; PrevIter->Value.Value=PrevIter->Value.Value | NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } template TExpItem*TExpCalc::LeftBracket(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { int BracketStack; STExpItemListIT BeginIter,EndIter; BeginIter = OptIter+1; BracketStack = 0; EndIter=BeginIter; while(EndIter!=ExpItemList.End()) { if(TStrNCmp(EndIter->ItemStr,"(",EndIter->Length)==0) BracketStack++; if(TStrNCmp(EndIter->ItemStr,")",EndIter->Length)==0) { if(BracketStack) BracketStack--; else break; } EndIter++; } if(EndIter==ExpItemList.End()) return NULL; STExpItemList BracketExpItemList; ExpItemList.Move(BeginIter,EndIter,BracketExpItemList,BracketExpItemList.Begin()); if(pThis->CalcItem(BracketExpItemList.Begin(),BracketExpItemList)==false) return false; OptIter->Value.Value = BracketExpItemList.Begin()->Value.Value; BeginIter = OptIter+1; pThis->RemoveCalcItem(BeginIter,1,ExpItemList); return &(*OptIter); } template TExpItem*TExpCalc::NonOptr(STExpItemListIT&OptIter,STExpItemList&ExpItemList,TExpCalc*pThis) { return NULL; } ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTFileStream.hpp ================================================ #ifndef _ALT_FILE_STREAM_HPP #define _ALT_FILE_STREAM_HPP #include ALT_NAME_SPACE_BEGIN class CALTFileStream : public ALTFileStream { public: FILE*m_hFile; bool Open(const char*Filename) { #if _MSC_VER >=1400 return fopen_s(&m_hFile,Filename,"rb")==0; #else m_hFile = fopen(Filename,"rb"); return m_hFile!=NULL; #endif } bool Create(const char*Filename) { #if _MSC_VER >=1400 return fopen_s(&m_hFile,Filename,"w+b")==0; #else m_hFile = fopen(Filename,"w+b"); return m_hFile!=NULL; #endif } void Close(){fclose(m_hFile);} virtual int Seek(LONG FilePtr){ return fseek(m_hFile,FilePtr,SEEK_SET);} virtual int Puts(void*Buffer,int Size){return (int)fwrite(Buffer,1,Size,m_hFile);} virtual int Gets(void*Buffer,int Size){return (int)fread(Buffer,1,Size,m_hFile);} }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTList.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //List //Coded by Finaldoom // //ߣ¿ /////////////////////////////////////////////////////////////////////////////// #ifndef _ALT_LIST_HPP #define _ALT_LIST_HPP ALT_NAME_SPACE_BEGIN template class TListNode; template class TListNodeBase { public: typedef TListNode* NODE_PTR; NODE_PTR pNext; NODE_PTR pPrev; }; template class TListNode : public TListNodeBase { public: VALUE Value; }; template class TListIter { public: typedef TListNode NODE; NODE* pNode; public: inline TListIter(){pNode = NULL;} inline TListIter(NODE*pNewNode){pNode=pNewNode;} inline TListIter(const VALUE&Value){ pNode= (NODE*)((char*)&Value - (char*)&((NODE*)NULL)->Value); } inline void operator++(int){pNode = pNode->pNext;} inline void operator--(int){pNode = pNode->pPrev;} inline void operator+=(int n); inline void operator-=(int n); inline TListIter operator+(int n)const{TListIter Iter;Iter=pNode;Iter+=n;return Iter;} inline TListIter operator-(int n)const{TListIter Iter;Iter=pNode;Iter-=n;return Iter;} inline VALUE* operator->()const{ return &pNode->Value; } inline VALUE& operator*()const{ return pNode->Value; } inline bool operator==(NODE*pCmpNode){ return pNode == pCmpNode; } inline bool operator!=(NODE*pCmpNode){ return pNode != pCmpNode; } inline bool operator==(const TListIter&Iter){ return pNode == Iter.pNode; } inline bool operator!=(const TListIter&Iter){ return pNode != Iter.pNode; } }; template //ALTArchive> class TList : public ALTObj > { public: typedef TListNodeBase NODE_BASE; typedef TListNode NODE; typedef TListIter IT; protected: NODE_BASE m_Head; NODE* m_pHead; int m_Count; public: TList(); TList(const TList&Obj); ~TList(); void Init(); public: inline int Count()const { return m_Count; } inline IT Begin()const{return IT(m_pHead->pNext);} inline IT End()const{return IT(m_pHead);} inline IT Last()const{return IT(m_pHead->pPrev);} inline IT operator[](int n)const; TList& operator=(const TList&Obj); void Clear(); IT Find(const VALUE&Value); IT Append(const VALUE&Value = *(VALUE*)NULL); IT InsertAfter(const IT&Iter,const VALUE&Value = *(VALUE*)NULL); IT InsertBefore(const IT&Iter,const VALUE&Value = *(VALUE*)NULL); IT Remove(const IT&Iter); IT Remove(const IT&BeginIter,const IT&EndIter); int Move(const IT&BeginIter,const IT&EndIter,TList&Obj,const IT&NewBeginIter); int Copy(const IT&BeginIter,const IT&EndIter,TList&Obj,const IT&NewBeginIter); int Save(ALTFileStream&Stream); int Load(ALTFileStream&Stream); }; ////////////////////////////////////////////////////////////////////////////// //TListIter ////////////////////////////////////////////////////////////////////////////// template void TListIter::operator+=(int n) { while(n>0) { pNode = pNode->pNext; n--; } } template void TListIter::operator-=(int n) { while(n>0) { pNode = pNode->pPrev; n--; } } ////////////////////////////////////////////////////////////////////////////// //TList ////////////////////////////////////////////////////////////////////////////// template void TList::Init() { m_pHead = (NODE*)&m_Head; m_Head.pPrev = m_Head.pNext = m_pHead; m_Count = 0; } template TList::TList() { Init(); } template TList::TList(const TList&Obj) { Init(); for(IT Iter=Obj.Begin();Iter!=Obj.End();Iter++) Append(*Iter); } template TList::~TList() { Clear(); } template void TList::Clear() { NODE*pDelNode,*pNextNode = m_pHead->pNext; while(pNextNode!=m_pHead) { pDelNode = pNextNode; pNextNode=pNextNode->pNext; Destruct(pDelNode); } Init(); } template TListIter TList::operator[](int n)const { IT Iter; if(n==m_Count-1) return Last(); if(n>=m_Count) return End(); Iter = m_pHead->pNext; if(n>0) return Iter+n; else return Iter-(-n); } template TList& TList::operator=(const TList&Obj) { Clear(); if(Obj.Count()) { for(IT Iter = Obj.Begin();Iter!=Obj.End();Iter++) Append(*Iter); } return (*this); } template TListIter TList::Find(const VALUE&Value) { IT Iter(m_pHead->pNext); while(Iter!=m_pHead) { if(Value == Iter.pNode->Value) break; Iter++; } return Iter; } template TListIter TList::Append(const VALUE&Value) { IT Iter; Iter.pNode=Construct(); if(&Value) Iter.pNode->Value = Value; if(m_Count==0) m_pHead->pNext=Iter.pNode; Iter.pNode->pNext = m_pHead; Iter.pNode->pPrev = m_pHead->pPrev; Iter.pNode->pPrev->pNext = Iter.pNode; m_pHead->pPrev=Iter.pNode; m_Count++; return Iter; } template TListIter TList::InsertAfter(const IT&Iter,const VALUE&Value) { IT NewIter; NewIter.pNode =Construct(); if(&Value) NewIter.pNode->Value=Value; NewIter.pNode->pNext=Iter.pNode->pNext; NewIter.pNode->pPrev=Iter.pNode; Iter.pNode->pNext->pPrev = NewIter.pNode; Iter.pNode->pNext=NewIter.pNode; m_Count++; return NewIter; } template TListIter TList::InsertBefore(const IT&Iter,const VALUE&Value) { IT NewIter(Iter.pNode->pPrev); return InsertAfter(NewIter,Value); } template TListIter TList::Remove(const IT&Iter)//ݵɾһڵ { NODE*pPrev; if(Iter.pNode == m_pHead) return (IT&)m_pHead; Iter.pNode->pPrev->pNext = Iter.pNode->pNext; Iter.pNode->pNext->pPrev = Iter.pNode->pPrev; pPrev = Iter.pNode->pPrev; Destruct(Iter.pNode); m_Count--; return pPrev; } template TListIter TList::Remove(const IT&BeginIter,const IT&EndIter) { NODE*pPrev = BeginIter.pNode->pPrev; for(IT Iter= BeginIter;Iter!=EndIter;Iter++) Iter = Remove(Iter); return pPrev; } template int TList::Move(const IT&BeginIter,const IT&EndIter,TList&Obj,const IT&NewBeginIter) { NODE*pBegin,*pLast; int Count=0; for(IT Iter=BeginIter;Iter!=EndIter;Iter++) Count++; if(Count==0) return Count; pBegin = BeginIter.pNode; pLast = EndIter.pNode->pPrev; BeginIter.pNode->pPrev->pNext = EndIter.pNode; EndIter.pNode->pPrev = pBegin->pPrev; m_Count-=Count; pBegin->pPrev = NewBeginIter.pNode; pLast->pNext = NewBeginIter.pNode->pNext; NewBeginIter.pNode->pNext = pBegin; pLast->pNext->pPrev = pLast; Obj.m_Count+=Count; return Count; } template int TList::Copy(const IT&BeginIter,const IT&EndIter,TList&Obj,const IT&NewBeginIter) { int Count=0; IT NewIter = NewBeginIter; for(IT Iter=BeginIter;Iter!=EndIter;Iter++) { NewIter = Obj.InsertAfter(NewIter,*Iter); Count++; } return Count; } template int TList::Save(ALTFileStream&Stream) { int Length=Stream.Puts(&m_Count,sizeof(m_Count)); for(IT Iter= Begin();Iter!=End();Iter++) Length+=Iter->Save(Stream); return Length; } template int TList::Load(ALTFileStream&Stream) { int TotalLength,Length,Count; IT Iter; Clear(); TotalLength = 0; Length=Stream.Gets(&Count,sizeof(Count)); if(Length!=sizeof(Count)) return 0; TotalLength+=Length; while(Count>0) { Iter = Append(); Length=Iter->Load(Stream); if(Length==0) return 0; TotalLength+=Length; Count--; } return TotalLength; } ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTMap.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //Map (Red-Black Tree) //Coded by Finaldoom //ӳ () //ߣ¿ /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// //ȡڵ int Count(); //ֵ: ڵ /////////////////////////////////////////////////////////////////////////////// //ȡСֵ IT Begin(); //ֵ: Сֵָʾ /////////////////////////////////////////////////////////////////////////////// //ȡֵ IT Last(); //ֵ: ֵָʾ /////////////////////////////////////////////////////////////////////////////// //ȡֵ IT End(); //ֵ: Чֵָʾ /////////////////////////////////////////////////////////////////////////////// //ɾнڵ void Clear(); /////////////////////////////////////////////////////////////////////////////// //Ψһ IT InsertUnique(const KEY&Key,const VALUE&Value); //ظ IT InsertEqual(const KEY&Key,const VALUE&Value); // const KEY&Key : ؼ // const VALUE&Value : ֵ //ֵ: λõָʾ /////////////////////////////////////////////////////////////////////////////// //ɾָڵ void Remove(const IT&Iter); // const IT&Iter : ָʾ /////////////////////////////////////////////////////////////////////////////// //ɾKeyڵ int Remove(const KEY&Key); // const KEY&Key : ؼ //ֵ: ɾĽڵ /////////////////////////////////////////////////////////////////////////////// //Keyڵ IT Find(const KEY&Key); // const KEY&Key : ؼ //ֵ: ڵָʾ /////////////////////////////////////////////////////////////////////////////// #ifndef _ALT_MAP_HPP_ #define _ALT_MAP_HPP_ ALT_NAME_SPACE_BEGIN template class TMapNode; template class TMapNodeBase { public: enum COLOR{RB_BLACK,RB_RED}; typedef TMapNode NODE; public: NODE* pLeft; NODE* pRight; NODE* pParent; COLOR Color; bool bNode; }; template class TMapNode : public TMapNodeBase { public: KEY Key; VALUE Value; bool inline IsHead(){ return !bNode;} bool inline IsNode(){ return bNode;} }; template class TMapIter { public: typedef TMapNode NODE; NODE* pNode; public: inline TMapIter(){ pNode = NULL;} inline TMapIter(NODE*pOther){ pNode = pOther;} inline TMapIter(const VALUE&Value){ pNode= (NODE*)((char*)&Value - (char*)&((NODE*)NULL)->Value); } void operator++(int){ Increment();} void operator--(int){ Decrement();} void operator++(){ Increment();} void operator--(){ Decrement();} inline void operator+=(int n); inline void operator-=(int n); inline TMapIter operator+(int n)const{TMapIter Iter;Iter=pNode;Iter+=n;return Iter;} inline TMapIter operator-(int n)const{TMapIter Iter;Iter=pNode;Iter-=n;return Iter;} inline VALUE* operator->()const{ return &pNode->Value;} inline VALUE& operator*()const{ return pNode->Value;} inline bool operator==(NODE*pOther){ return pNode == pOther; } inline bool operator!=(NODE*pOther){ return pNode != pOther; } inline bool operator==(const TMapIter&Iter){ return pNode == Iter.pNode; } inline bool operator!=(const TMapIter&Iter){ return pNode != Iter.pNode; } inline KEY& Key()const{ return pNode->Key;} inline bool IsExist(){ return pNode && pNode->IsNode();} protected: void Increment(); void Decrement(); }; template class TMap : public ALTObj > { public: typedef TMapNodeBase NODE_BASE; typedef TMapNode NODE; typedef TMapIter IT; protected: NODE_BASE m_Head; NODE* m_pRoot; NODE* m_pHead; public: int m_Count; TMap(); TMap(const TMap&Obj); ~TMap(); inline int Count()const{return m_Count;} inline IT Begin()const{return IT(m_pHead->pLeft);} inline IT End()const{return IT(m_pHead);} inline IT Last()const{return IT(m_pHead->pRight);} inline IT operator[](int n); IT InsertUnique(const KEY&Key,const VALUE&Value = *(VALUE*)NULL); IT InsertEqual(const KEY&Key,const VALUE&Value = *(VALUE*)NULL); IT Find(const KEY&Key); IT FindAlmost(const KEY&Key); TMap& operator=(const TMap&Obj); void Clear(); void Remove(const IT&Iter); int Remove(const KEY&Key); int Index(const IT&Iter); int Save(ALTFileStream&Stream); int Load(ALTFileStream&Stream); private: void Init(); void RotateLeft(NODE*pRotate); void RotateRight(NODE*pRotate); void RemoveTree(NODE*pNode); IT Insert(bool bAddLeft,NODE*pParent,const KEY&Key,const VALUE*pValue); }; ///////////////////////////////////////////////////////////////////////////// //TMapIter ///////////////////////////////////////////////////////////////////////////// template void TMapIter::Increment() { NODE*pParent; if(pNode==NULL) return; if(pNode->IsHead()) { pNode = pNode->pLeft; } else if(pNode->pRight->IsNode()) { pNode = pNode->pRight; while(pNode->pLeft->IsNode()) pNode = pNode->pLeft; } else { while((pParent = pNode->pParent)->IsNode() && pNode == pParent->pRight) pNode = pParent; pNode = pParent; } } template void TMapIter::Decrement() { NODE*pParent; if(pNode==NULL) return; if(pNode->IsHead()) { pNode = pNode->pRight; } else if(pNode->pLeft->IsNode()) { pNode=pNode->pLeft; while(pNode->pRight->IsNode()) pNode = pNode->pRight; } else { while((pParent = pNode->pParent)->IsNode() && pNode == pParent->pLeft) pNode = pParent; pNode = pParent; } } template void TMapIter::operator+=(int n) { while(n>0) { (*this)++; n--; } } template void TMapIter::operator-=(int n) { TMapIter Iter = *this; while(n>0) { (*this)--; n--; } } ///////////////////////////////////////////////////////////////////////////// //TMap ///////////////////////////////////////////////////////////////////////////// template void TMap::Init() { m_Head.Color = NODE::RB_BLACK; m_Head.bNode = false; m_pHead = (NODE*)&m_Head; m_pRoot = m_Head.pParent = m_Head.pLeft = m_Head.pRight = m_pHead; m_Count = 0; } template TMap::TMap() { Init(); } template TMap::TMap(const TMap&Obj) { Init(); for(IT It = Obj.Begin();It!=Obj.End();It++) InsertEqual(It.Key(),*It); } template TMap::~TMap() { Clear(); } template void TMap::Clear() { if(m_Count) { RemoveTree(m_pRoot); Init(); } } template int TMap::Remove(const KEY&Key) { IT Iter,DelIter; int RemoveCount = 0; Iter = Find(Key); while(Iter!=End() && Iter.Key() == Key) { DelIter = Iter; Iter++; RemoveCount++; Remove(DelIter); } return RemoveCount; } template void TMap::Remove(const IT&Iter) { NODE* pErasedNode,*pFixNode,*pFixNodeParent,*pNode; pNode = pErasedNode = Iter.pNode; if(pNode->pLeft->IsHead()) pFixNode = pNode->pRight; else if(pNode->pRight->IsHead()) pFixNode = pNode->pLeft; else { IT NextIter(Iter.pNode); NextIter++; pNode = NextIter.pNode; pFixNode = pNode->pRight; } if (pNode == pErasedNode) { pFixNodeParent = pErasedNode->pParent; if(pFixNode->IsNode()) pFixNode->pParent = pFixNodeParent; if(m_pRoot == pErasedNode) m_pRoot = pFixNode; else if(pFixNodeParent->pLeft == pErasedNode) pFixNodeParent->pLeft = pFixNode; else pFixNodeParent->pRight = pFixNode; if(m_pHead->pLeft == pErasedNode) { if(pFixNode->IsNode()) { m_pHead->pLeft = pFixNode; while(m_pHead->pLeft->pLeft->IsNode()) m_pHead->pLeft = m_pHead->pLeft->pLeft; } else m_pHead->pLeft = pFixNodeParent; } if (m_pHead->pRight == pErasedNode) { if(pFixNode->IsNode()) { m_pHead->pRight = pFixNode; while(m_pHead->pRight->pRight->IsNode()) m_pHead->pRight = m_pHead->pRight->pRight; } else m_pHead->pRight = pFixNodeParent; } } else { pErasedNode->pLeft->pParent = pNode; pNode->pLeft = pErasedNode->pLeft; if (pNode == pErasedNode->pRight) pFixNodeParent = pNode; else { pFixNodeParent = pNode->pParent; if(pFixNode->IsNode()) pFixNode->pParent = pFixNodeParent; pFixNodeParent->pLeft = pFixNode; pNode->pRight = pErasedNode->pRight; pErasedNode->pRight->pParent = pNode; } if (m_pRoot == pErasedNode) m_pRoot = pNode; else if (pErasedNode->pParent->pLeft == pErasedNode) pErasedNode->pParent->pLeft = pNode; else pErasedNode->pParent->pRight = pNode; pNode->pParent = pErasedNode->pParent; NODE_BASE SwapNode; SwapNode.Color = pNode->Color; pNode->Color = pErasedNode->Color; pErasedNode->Color = SwapNode.Color; } //Balance if(pErasedNode->Color == NODE::RB_BLACK) { for(;pFixNode != m_pRoot && pFixNode->Color == NODE::RB_BLACK ; pFixNodeParent = pFixNode->pParent) { if(pFixNode == pFixNodeParent->pLeft) { pNode = pFixNodeParent->pRight; if (pNode->Color == NODE::RB_RED) { pNode->Color = NODE::RB_BLACK; pFixNodeParent->Color = NODE::RB_RED; RotateLeft(pFixNodeParent); pNode = pFixNodeParent->pRight; } if(pNode->IsHead()) pFixNode = pFixNodeParent;// shouldn't happen else if(pNode->pLeft->Color == NODE::RB_BLACK && pNode->pRight->Color == NODE::RB_BLACK) { pNode->Color = NODE::RB_RED; pFixNode = pFixNodeParent; } else { if(pNode->pRight->Color == NODE::RB_BLACK) { pNode->pLeft->Color = NODE::RB_BLACK; pNode->Color = NODE::RB_RED; RotateRight(pNode); pNode = pFixNodeParent->pRight; } pNode->Color = pFixNodeParent->Color; pNode->pRight->Color = NODE::RB_BLACK; pFixNodeParent->Color = NODE::RB_BLACK; RotateLeft(pFixNodeParent); break; } } else { pNode = pFixNodeParent->pLeft; if(pNode->Color == NODE::RB_RED) { pNode->Color = NODE::RB_BLACK; pFixNodeParent->Color = NODE::RB_RED; RotateRight(pFixNodeParent); pNode = pFixNodeParent->pLeft; } if(pNode->IsHead()) pFixNode = pFixNodeParent; // shouldn't happen else if(pNode->pRight->Color == NODE::RB_BLACK && pNode->pLeft->Color == NODE::RB_BLACK) { pNode->Color = NODE::RB_RED; pFixNode = pFixNodeParent; } else { if(pNode->pLeft->Color == NODE::RB_BLACK) { pNode->pRight->Color = NODE::RB_BLACK; pNode->Color = NODE::RB_RED; RotateLeft(pNode); pNode = pFixNodeParent->pLeft; } pNode->Color = pFixNodeParent->Color; pFixNodeParent->Color = NODE::RB_BLACK; pNode->pLeft->Color = NODE::RB_BLACK; RotateRight(pFixNodeParent); break; } } } pFixNode->Color = NODE::RB_BLACK; } Destruct(pErasedNode); if(0 < m_Count) m_Count--; } template void TMap::RemoveTree(NODE*pNode) { if(pNode->IsHead()) return; if(pNode->pLeft->IsNode()) RemoveTree(pNode->pLeft); if(pNode->pRight->IsNode()) RemoveTree(pNode->pRight); if(m_pRoot==pNode) m_pRoot = m_pHead; if(pNode->pParent->pLeft==pNode) pNode->pParent->pLeft=m_pHead; else pNode->pParent->pRight=m_pHead; if(m_pHead->pLeft == pNode) { IT It(pNode); It++; m_pHead->pLeft = It.pNode; } if(m_pHead->pRight == pNode) { IT It(pNode); It--; m_pHead->pLeft = It.pNode; } m_Count--; Destruct(pNode); } template void TMap::RotateLeft(NODE*pRotate) { NODE*pNode = pRotate->pRight; pRotate->pRight = pNode->pLeft; if(pNode->pLeft->IsNode()) pNode->pLeft->pParent = pRotate; pNode->pParent = pRotate->pParent; if(pRotate == m_pRoot) m_pRoot = pNode; else if(pRotate == pRotate->pParent->pLeft) pRotate->pParent->pLeft = pNode; else pRotate->pParent->pRight = pNode; pNode->pLeft = pRotate; pRotate->pParent = pNode; } template void TMap::RotateRight(NODE*pRotate) { NODE*pNode = pRotate->pLeft; pRotate->pLeft = pNode->pRight; if(pNode->pRight->IsNode()) pNode->pRight->pParent = pRotate; pNode->pParent = pRotate->pParent; if(pRotate == m_pRoot) m_pRoot = pNode; else if(pRotate == pRotate->pParent->pRight) pRotate->pParent->pRight = pNode; else pRotate->pParent->pLeft = pNode; pNode->pRight = pRotate; pRotate->pParent = pNode; } template TMapIter TMap::operator[](int n) { IT Iter; Iter = Begin(); return Iter+n; } template TMap& TMap::operator=(const TMap&Obj) { Clear(); if(Obj.Count()) { for(IT It = Obj.Begin();It!=Obj.End();It++) InsertEqual(It.Key(),*It); } return (*this); } template TMapIter TMap::InsertUnique(const KEY&Key,const VALUE&Value) { bool bAddLeft = true; NODE*pNode,*pParent; pParent = m_pHead; pNode = m_pRoot; while(pNode->IsHead()==false) { pParent = pNode; bAddLeft = KeyKey; pNode = bAddLeft ? pNode->pLeft : pNode->pRight; } IT It = pParent; if(bAddLeft==false); else if (It == Begin()) return Insert(true,pParent,Key,&Value); else It--; if(It.pNode->Key < Key) return Insert(bAddLeft,pParent,Key,&Value); else return End(); } template TMapIter TMap::InsertEqual(const KEY&Key,const VALUE&Value) { bool bAddLeft = true; NODE*pNode,*pParent; pParent = m_pHead; pNode = m_pRoot; while(pNode->IsNode()) { pParent = pNode; bAddLeft = KeyKey; pNode = bAddLeft ? pNode->pLeft : pNode->pRight; } return Insert(bAddLeft,pParent,Key,&Value); } template TMapIter TMap::Insert(bool bAddLeft,NODE*pParent,const KEY&Key,const VALUE*pValue) { NODE* pNew = Construct(); pNew->Key = Key; if(pValue) pNew->Value = *pValue; pNew->pLeft = pNew->pRight = m_pHead; pNew->pParent = pParent; pNew->Color = NODE::RB_RED; pNew->bNode = true; m_Count++; if (pParent == m_pHead) { m_pRoot = pNew; m_pHead->pLeft = m_pHead->pRight = pNew; } else if (bAddLeft) { pParent->pLeft = pNew; if (pParent == m_pHead->pLeft) m_pHead->pLeft = pNew; } else { pParent->pRight = pNew; if (pParent == m_pHead->pRight) m_pHead->pRight = pNew; } NODE*pNode=pNew; while(pNode->pParent->Color == NODE::RB_RED) { if(pNode->pParent == pNode->pParent->pParent->pLeft) { pParent = pNode->pParent->pParent->pRight; if(pParent->Color == NODE::RB_RED) { pNode->pParent->Color = NODE::RB_BLACK; pParent->Color = NODE::RB_BLACK; pNode->pParent->pParent->Color = NODE::RB_RED; pNode = pNode->pParent->pParent; } else { if(pNode == pNode->pParent->pRight) { pNode = pNode->pParent; RotateLeft(pNode); } pNode->pParent->Color = NODE::RB_BLACK; pNode->pParent->pParent->Color = NODE::RB_RED; RotateRight(pNode->pParent->pParent); } } else { pParent = pNode->pParent->pParent->pLeft; if(pParent->Color == NODE::RB_RED) { pNode->pParent->Color = NODE::RB_BLACK; pParent->Color = NODE::RB_BLACK; pNode->pParent->pParent->Color = NODE::RB_RED; pNode = pNode->pParent->pParent; } else { if(pNode == pNode->pParent->pLeft) { pNode = pNode->pParent; RotateRight(pNode); } pNode->pParent->Color = NODE::RB_BLACK; pNode->pParent->pParent->Color = NODE::RB_RED; RotateLeft(pNode->pParent->pParent); } } } m_pRoot->Color = NODE::RB_BLACK; return pNew; } template TMapIter TMap::Find(const KEY&Key) { NODE*pNode=m_pRoot; NODE*pWhereNode=m_pHead; while(pNode->IsNode()) { if(pNode->Key < Key) { pNode = pNode->pRight; } else { pWhereNode = pNode; pNode = pNode->pLeft; } } return pWhereNode==m_pHead || Key < pWhereNode->Key ? End():pWhereNode; } template TMapIter TMap::FindAlmost(const KEY&Key) { NODE*pNode=m_pRoot; NODE*pWhereNode,*pLastNode; pWhereNode=pLastNode=m_pHead; while(pNode->IsNode()) { if(pNode->Key < Key) { pLastNode = pNode; pNode = pNode->pRight; } else { pWhereNode = pNode; pLastNode = pNode; pNode = pNode->pLeft; } } if(pWhereNode!=m_pHead && !(KeyKey)) return pWhereNode; if(pLastNode==m_pHead) return End(); if(pLastNode->Key int TMap::Index(const IT&Iter) { IT It = Iter; int Index = -1; while(It!=End()) { Index++; It--; } return Index; } template int TMap::Save(ALTFileStream&Stream) { int Length; Length=Stream.Puts(&m_Count,sizeof(m_Count)); for(IT Iter= Begin();Iter!=End();Iter++) { Length+=Iter.Key().Save(Stream); Length+=Iter->Save(Stream); } return Length; } template int TMap::Load(ALTFileStream&Stream) { KEY Key; int TotalLength,Length,Count; IT Iter; Clear(); Count = 0; TotalLength = 0; Length = Stream.Gets(&Count,sizeof(Count)); if(Length != sizeof(Count)) return 0; TotalLength+=Length; while(Count > 0) { Length = Key.Load(Stream); if(Length==0) return 0; TotalLength+=Length; Iter = InsertEqual(Key); Length = Iter->Load(Stream); if(Length==0) return 0; TotalLength+=Length; Count--; } return TotalLength; } ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTQueue.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //Queue //Coded by Finaldoom // //ߣ¿ /////////////////////////////////////////////////////////////////////////////// #ifndef _ALT_QUEUE_HPP_ #define _ALT_QUEUE_HPP_ ALT_NAME_SPACE_BEGIN template class TQueue : public TArray { protected: int m_HeadIndex; public: TQueue() { m_HeadIndex=-1; } TQueue(const TQueue&Obj) { m_HeadIndex=-1; Resize(Obj.m_Size); for(int n=0;n::Clear(); m_HeadIndex=-1; } VALUE*Append(const VALUE&Value = *(VALUE*)NULL) { if(m_Size==0) return NULL; if(m_CountLoad(Stream); if(Length==0) return 0; TotalLength+=Length; } return TotalLength; } }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTRangeMap.hpp ================================================ #ifndef _ALT_RANGE_MAP_HPP_ #define _ALT_RANGE_MAP_HPP_ ALT_NAME_SPACE_BEGIN template class TRangeKey { public: KEY Start; KEY End; TRangeKey(const KEY&Key = 0){ Start=End=Key; } TRangeKey(const KEY&StartKey,const KEY&EndKey){ Start=StartKey; End=EndKey; } public: const KEY& operator=(const KEY&Key){return Start = End = Key;} bool inline operator==(const KEY& Key)const{ return Key>=Start && Key<=End; } bool inline operator!=(const KEY& Key)const{ return KeyEnd; } bool inline operator==(const TRangeKey& RangeKey)const { if(RangeKey.Start == RangeKey.End) return operator==(RangeKey.Start); return Start==RangeKey.Start && End==RangeKey.End; } bool inline operator!=(const TRangeKey& RangeKey)const { return ! operator==(RangeKey); } bool inline operator<(const TRangeKey& RangeKey)const { if(RangeKey.Start == RangeKey.End) return End class TRangeMap : public TMap,VALUE> { public: typedef TRangeKey RANGE; }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTSet.hpp ================================================ /////////////////////////////////////////////////////////////////////////////// //Map (Red-Black Tree) //Coded by Finaldoom // (ûֵΨһMap) //ߣ¿ #ifndef _ALT_SET_HPP_ #define _ALT_SET_HPP_ ALT_NAME_SPACE_BEGIN template class TSetIter : public TMapIter { public: typedef TMapNode NODE; public: inline TSetIter(){ pNode = NULL;} inline TSetIter(NODE*pOther){ pNode = pOther;} inline TSetIter(const KEY&Key){ pNode= (NODE*)((char*)&Key - (char*)&((NODE*)NULL)->Key); } void operator++(int){ Increment();} void operator--(int){ Decrement();} void operator++(){ Increment();} void operator--(){ Decrement();} inline void operator+=(int n); inline void operator-=(int n); inline TSetIter operator+(int n)const{TSetIter Iter;Iter=pNode;Iter+=n;return Iter;} inline TSetIter operator-(int n)const{TSetIter Iter;Iter=pNode;Iter-=n;return Iter;} inline KEY* operator->()const{ return &pNode->Key;} inline KEY& operator*()const{ return pNode->Key;} inline bool operator==(NODE*pOther){ return pNode == pOther; } inline bool operator!=(NODE*pOther){ return pNode != pOther; } inline bool operator==(const TSetIter&Iter){ return pNode == Iter.pNode; } inline bool operator!=(const TSetIter&Iter){ return pNode != Iter.pNode; } }; template class TSet : public TMap { public: typedef TSetIter IT; public: inline IT& Begin()const{return *(IT*)&m_pHead->pLeft;} inline IT& End()const{return *(IT*)&m_pHead;} inline IT& Last()const{return *(IT*)&m_pHead->pRight;} inline IT operator[](int n); inline IT Insert(const KEY&Key){ return *(IT*)&InsertUnique(Key);} inline IT Find(const KEY&Key){ return *(IT*)&TMap::Find(Key);} inline IT FindAlmost(const KEY&Key){ return *(IT*)&TMap::FindAlmost(Key);} }; template TSetIter TSet::operator[](int n) { IT Iter; Iter = Begin(); return Iter+n; } /* void test() { int Num; TSet SetObj; TArray NumAry; InitStaticRandom(0x10000000); for(int n=0;n class TStack : public TQueue { public: void Push(const VALUE&Value) { Append(Value); } bool Pop(VALUE&Value) { int Index; if(m_Count<=0) return false; Index=(m_HeadIndex+m_Size)%m_Size; m_HeadIndex--; m_HeadIndex = m_HeadIndex % m_Size; m_Count--; Value = m_ValueAry[Index]; return true; } VALUE& operator[](int n) { return m_ValueAry[(m_HeadIndex+m_Size-n)%m_Size]; } }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTString.hpp ================================================ #ifndef _ALT_STRING_HPP_ #define _ALT_STRING_HPP_ ALT_NAME_SPACE_BEGIN //TMemCpy memcpyģ //TMemCCpy memccpyģ //TMemChr memchrģ //TMemCmp memcmpģ //TMemICmp memicmpģ //TMemSet memsetģ //TStrCpy strcpyģ //TStrLen strlenģ //TStrCat strcatģ //TStrChr strchrģ //TStrCmp strcmpģ //TStrICmp stricmpģ //TStrNCat strncatģ //TStrNCmp strncmpģ //TStrNCpy strncpyģ //TStrNICmp strnicmpģ //TStrNSet strnsetģ //TStrRChr strrchrģ //TStrSet strsetģ //TStrStr strstrģ //TStrIStr strstrĴСд԰汾ģ //TStrUpr struprģ //TStrOmit ַ̳ʡʽ //TStrFillTail ijһַַβ //TStrCpyLimit 󳤶Ƶַ template TYPE*TMemCpy(TYPE*dst,const TYPE*src,int count) { TYPE*ret = dst; while(count--) { *dst = *src; dst++; src++; } return ret; } template TYPE*TMemCCpy(TYPE*dest,const TYPE*src,unsigned char c,int count) { while ( count && (*((unsigned char *)(dest = (unsigned char *)dest + 1) - 1) = *((unsigned char *)(src = (unsigned char *)src + 1) - 1)) != c ) count--; return(count ? dest : NULL); } template TYPE*TMemChr(const TYPE*buf,TYPE chr,int cnt) { while( cnt && *buf != chr) { buf++; cnt--; } return cnt ? buf : NULL; } template TYPE TMemCmp(const TYPE*buf1,const TYPE*buf2,int count) { if(count==0) return 0; while(--count && *buf1 == *buf2) { buf1++; buf2++; } return *buf1-*buf2; } template TYPE TMemICmp(const TYPE*first,const TYPE*last,int count) { TYPE f = 0; TYPE l = 0; while(count--) { f=*first; l=*last; if(f>='A' && f<='Z') f-='A'-'a'; if(l>='A' && l<='Z') l-='A'-'a'; if(f==l) { first++; last++; } else break; } return f - l; } template TYPE*TMemSet(TYPE *dst,TYPE val,int count) { TYPE*start = dst; if(dst) { while(count--) { *dst = val; dst++; } } return start; } template int TStrCpy(DES_CHAR_TYPE*dst,const SRC_CHAR_TYPE*src) { if(NULL == dst) return NULL; int len=0; DES_CHAR_TYPE*cp = dst; if(src) { while( *cp++ = (DES_CHAR_TYPE)*src++ ) len++; } return len; } template int TStrLen(const CHAR_TYPE*str) { if(NULL == str) return 0; const CHAR_TYPE*eos = str; while( *eos++ ); return( (int)(eos - str - 1) ); } template DES_CHAR_TYPE*TStrCat(DES_CHAR_TYPE*dst,const SRC_CHAR_TYPE*src) { if(dst && src) { DES_CHAR_TYPE*cp=dst; while( *cp ) cp++; while( *cp++ = (DES_CHAR_TYPE)*src++ ) ; } return( dst ); } template SRC_CHAR_TYPE*TStrChr(const SRC_CHAR_TYPE*string,DES_CHAR_TYPE ch) { if(string) { while(*string && *string != ch) string++; if(*string==ch) return (SRC_CHAR_TYPE*)string; } return NULL; } template SRC_CHAR_TYPE*TStrNChr(const SRC_CHAR_TYPE*string,DES_CHAR_TYPE ch,int count) { if(string) { while(*string && *string != ch && count--) string++; if(*string==ch) return (SRC_CHAR_TYPE*)string; } return NULL; } template SRC_CHAR_TYPE*TStrIChr(const SRC_CHAR_TYPE*string,DES_CHAR_TYPE ch) { if(string) { DES_CHAR_TYPE och; if((ch<'A'&&ch>'Z')&&(ch<'a'&&ch>'z')) return TStrChr(string,ch); och=(ch>='A' && ch<='Z')?(ch+'a'-'A'):(ch+'A' -'a'); while(*string) { if(ch == *string || och == *string) return (SRC_CHAR_TYPE*)string; string++; } } return NULL; } template SRC_CHAR_TYPE*TStrNIChr(const SRC_CHAR_TYPE*string,DES_CHAR_TYPE ch,int count) { if(string && (count>=0)) { DES_CHAR_TYPE och; if((ch<'A'&&ch>'Z')&&(ch<'a'&&ch>'z')) return TStrChr(string,ch); och=(ch>='A' && ch<='Z')?(ch+'a'-'A'):(ch+'A' -'a'); while(*string) { if(ch == *string || och == *string) return (SRC_CHAR_TYPE*)string; count--; if(count<0) break; string++; } } return NULL; } template int TStrCmp(const DES_CHAR_TYPE* dst,const SRC_CHAR_TYPE* src) { SRC_CHAR_TYPE ret; if(dst==NULL || src==NULL) { if(dst==NULL && src) return -(*src); if(dst && src==NULL) return (SRC_CHAR_TYPE)(*dst); return 0; } ret = 0 ; while( ! (ret = ( ((SRC_CHAR_TYPE)*dst) - *src)) && *dst) ++src, ++dst; if( ret < 0 ) ret = -1; else if ( ret > 0 ) ret = 1; return (int)ret; } template int TStrICmp(const DES_CHAR_TYPE* dst,const SRC_CHAR_TYPE* src) { SRC_CHAR_TYPE f, l; if(dst==NULL || src==NULL) { if(dst==NULL && src) return -(*src); if(dst && src==NULL) return (SRC_CHAR_TYPE)(*dst); return 0; } do { if ( ((f = (SRC_CHAR_TYPE)(*(dst++))) >= 'A') && (f <= 'Z') ) f -= 'A' - 'a'; if ( ((l = (SRC_CHAR_TYPE)(*(src++))) >= 'A') && (l <= 'Z') ) l -= 'A' - 'a'; } while ( f && (f == l) ); return(f - l); } template int TStrNICmp(const DES_CHAR_TYPE*dst,const SRC_CHAR_TYPE*src,int count) { SRC_CHAR_TYPE f, l; if(dst==NULL || src==NULL) { if(dst==NULL && src) return -(*src); if(dst && src==NULL) return (SRC_CHAR_TYPE)(*dst); return 0; } do { if ( ((f = (SRC_CHAR_TYPE)(*(dst++))) >= 'A') && (f <= 'Z') ) f -= 'A' - 'a'; if ( ((l = (SRC_CHAR_TYPE)(*(src++))) >= 'A') && (l <= 'Z') ) l -= 'A' - 'a'; } while ( --count && f && (f == l) ); return (int)(f - l); } template DES_CHAR_TYPE*TStrNCat(DES_CHAR_TYPE*front,const SRC_CHAR_TYPE*back,int count) { DES_CHAR_TYPE*start = front; if(front && back && (count>0) ) { while(*front++); front--; while(count--) if (!(*front++ = (DES_CHAR_TYPE)*back++)) return start; *front = '\0'; } return start; } template int TStrNCmp(const DES_CHAR_TYPE* dst,const SRC_CHAR_TYPE* src,int count) { if(!count) return 0; if(dst==NULL || src==NULL) { if(dst==NULL && src) return -(int)(*src); if(dst && src==NULL) return (int)(*dst); return 0; } while(--count && *dst && *dst == *src) { dst++; src++; } return (int)*(SRC_CHAR_TYPE*)dst-(int)*(DES_CHAR_TYPE*)src; } template DES_CHAR_TYPE*TStrNCpy(DES_CHAR_TYPE* dest,const SRC_CHAR_TYPE*source,int count) { DES_CHAR_TYPE*start = dest; if(dest && source && (count>0) ) { while(count && (*dest++ = (DES_CHAR_TYPE)*source++)) count--; if(count) { while(--count) *dest++ = '\0'; } } return start; } template int TCountOfChar(const CHAR_TYPE*string,CHAR_TYPE val) { int count=0; if(string) { while(*string) { if(*string==val) count++; string++; } } return count; } template CHAR_TYPE*TStrNSet(CHAR_TYPE*string,CHAR_TYPE val,int count) { CHAR_TYPE*start = string; if(string && (count>0)) { while(count-- && *string) *string++ = val; } return start; } template CHAR_TYPE*TStrRChr(const CHAR_TYPE* string,CHAR_TYPE ch) { CHAR_TYPE*start = (CHAR_TYPE*)string; while(*string++); while(--string != start && *string != (CHAR_TYPE)ch); if (*string == (CHAR_TYPE)ch) return( (CHAR_TYPE*)string ); return NULL; } template CHAR_TYPE*TStrRChr(const CHAR_TYPE* string,const CHAR_TYPE* start_string,CHAR_TYPE ch) { CHAR_TYPE*start = (CHAR_TYPE*)string; string=start_string; while(--string != start && *string != (CHAR_TYPE)ch); if (*string == (CHAR_TYPE)ch) return( (CHAR_TYPE*)string ); return NULL; } template CHAR_TYPE*TStrSet(CHAR_TYPE*string,CHAR_TYPE val) { CHAR_TYPE*start = string; if(string) { while(*string) *string++ = (CHAR_TYPE)val; } return start; } template DES_CHAR_TYPE*TStrIStr(const DES_CHAR_TYPE* str1,const SRC_CHAR_TYPE* str2) { DES_CHAR_TYPE c1; SRC_CHAR_TYPE c2; const DES_CHAR_TYPE*s1; const SRC_CHAR_TYPE*s2; const DES_CHAR_TYPE*cp = str1; if( (NULL == str1) || (NULL == str2) ) return NULL; if(!*str2) return (DES_CHAR_TYPE*)str1; while(*cp) { s1 = cp; s2 = str2; while ( *s1 && *s2 ) { c1 = *s1; c2 = *s2; if(c1>='A' && c1<='Z') c1-='A'-'a'; if(c2>='A' && c2<='Z') c2-='A'-'a'; if(c1!=c2) break; s1++, s2++; } if(!*s2) return (DES_CHAR_TYPE*)cp; cp++; } return NULL; } template DES_CHAR_TYPE*TStrStr(const DES_CHAR_TYPE* str1,const SRC_CHAR_TYPE* str2) { const DES_CHAR_TYPE*cp = str1; const DES_CHAR_TYPE*s1; const SRC_CHAR_TYPE*s2; if( (NULL == str1) || (NULL == str2) ) return NULL; if ( !*str2 ) return((DES_CHAR_TYPE*)str1); while (*cp) { s1 = cp; s2 = str2; while ( *s1 && *s2 && !(*s1-*s2) ) s1++, s2++; if (!*s2) return (DES_CHAR_TYPE*)cp; cp++; } return NULL; } template CHAR_TYPE* TStrUpr(CHAR_TYPE* string) { CHAR_TYPE*cp; if(NULL != string) { for ( cp = string ; *cp ; ++cp ) if ( ('a' <= *cp) && (*cp <= 'z') ) *cp -= 'a' - 'A'; } return string; } template CHAR_TYPE* TStrLwr(CHAR_TYPE* string) { CHAR_TYPE*cp; if(NULL != string) { for ( cp = string ; *cp ; ++cp ) if ( ('A' <= *cp) && (*cp <= 'Z') ) *cp += 'a' - 'A'; } return string; } template int TStrToStr(const SRC_CHAR_TYPE*Src,DES_CHAR_TYPE*Des) { int Count=0; if( (NULL != Src) && (NULL != Des) ) { while(Src[Count]) { Des[Count]=(DES_CHAR_TYPE)Src[Count]; Count++; } Des[Count]=0; } return Count; } template int TStrOmit(const SRC_CHAR_TYPE*Src,DES_CHAR_TYPE*Des,int MaxLen) { int StrLen; MaxLen--; if( (MaxLen<=0) || (NULL == Src) || (NULL == Des) ) return 0; StrLen=TStrLen(Src); if(StrLen<=MaxLen) { TStrCpy(Des,Src); return StrLen; } TStrCpyLimit(Des,Src,MaxLen+1); for(int i=1;i<=3;i++) Des[MaxLen-i]='.'; return MaxLen; } template int TStrFillTail(CHAR_TYPE*Str,int MaxLen,CHAR_TYPE FillChar) { int StrLen=TStrLen(Str); if(StrLen >= MaxLen) return StrLen; else TMemSet(&Str[StrLen],FillChar,MaxLen-StrLen); Str[MaxLen]=0; return MaxLen; } template int TStrCpyLimit(DES_CHAR_TYPE*Des,const SRC_CHAR_TYPE*Src,int Limit) { int Len=0; Limit--; while(*Src && Len < Limit) { *Des=(DES_CHAR_TYPE)*Src; Des++; Src++; Len++; } *Des=0; return Len; } //////////////////////////////////////////////////////////////////////// //ļ ///////////////////////////////////////////////////////////////////////// template CHAR_TYPE*TGetPathItem(const CHAR_TYPE*PathName,CHAR_TYPE*ItemName) { CHAR_TYPE*pStart,*pEnd; pStart=(CHAR_TYPE*)PathName; if(*pStart==PATH_SEPARATOR_CHAR) pStart++; pEnd=TStrChr(PathName,PATH_SEPARATOR_CHAR); if(pEnd==NULL) pEnd=&pStart[TStrLen(pStart)]; TStrNCpy(ItemName,pStart,(int)(pEnd-pStart)); if(pEnd) pEnd++; return pEnd; } template CHAR_TYPE*TGetFileName(const CHAR_TYPE*szFullName) { CHAR_TYPE*pStr; if(*szFullName==0) return NULL; pStr = TStrRChr(szFullName,(CHAR_TYPE)PATH_SEPARATOR_CHAR); if(pStr==NULL) return (CHAR_TYPE*)szFullName; return &pStr[1]; } template CHAR_TYPE*TGetFileExt(const CHAR_TYPE*szFullName) { CHAR_TYPE*pStr; pStr = TGetFileName(szFullName); if(pStr==NULL) return NULL; pStr = TStrRChr(pStr,(CHAR_TYPE)'.'); if(pStr==NULL || pStr[1]==0) return NULL; return &pStr[1]; } template int TGetFileTitle(const CHAR_TYPE*szFullName,CHAR_TYPE*szTitle) { CHAR_TYPE*pStr,*pDot; if(NULL == szTitle) return 0; pStr = TGetFileName(szFullName); if(pStr==NULL) { *szTitle=0; return 0; } pDot = TStrRChr(pStr,(CHAR_TYPE)'.'); if(pDot==NULL) { return TStrCpy(szTitle,pStr); } else { int Length = (int)(pDot-pStr); TMemCpy(szTitle,pStr,Length); szTitle[Length]=0; return Length; } } template int TGetFilePath(const CHAR_TYPE*szFullName,CHAR_TYPE*szPath) { CHAR_TYPE*pStr; pStr = TGetFileName(szFullName); if(pStr) { int Length; Length = (int)(pStr-szFullName); if(Length>0) Length--; TMemCpy(szPath,szFullName,Length); szPath[Length]=0; return Length; } else { return TStrCpy(szPath,szFullName); } } //////////////////////////////////////////////////////////////////////////////////////////////// //ͨ //////////////////////////////////////////////////////////////////////////////////////////////// template bool TMatchWithPattern(const CHAR_TYPE*Pattern,const CHAR_TYPE*Name) { if(*Pattern=='\0') return true; if( *Pattern == '*' ) { Pattern++; if(*Pattern=='\0') return true; while( *Name ) { if( *Pattern == *Name || *Pattern == '?') if( TMatchWithPattern( Pattern+1, Name+1 )) return true; Name++; } return !(*Pattern && *Pattern != '*'); } while( *Name && *Pattern != '*' ) { if( *Pattern == *Name || *Pattern=='?') { Pattern++; Name++; } else return false; } if( *Name ) return TMatchWithPattern( Pattern, Name ); return !(*Pattern && *Pattern != '*'); } template bool TMultiMatchWithPattern(const CHAR_TYPE*Pattern,const CHAR_TYPE*Name) { CHAR_TYPE buf[256]; CHAR_TYPE* pBegin,*pEnd; bool Result; if(*Pattern=='\0') return true; TStrCpy(buf,Pattern); pBegin=buf+TStrLen(buf)-1; if(*pBegin==';')*pBegin='\0'; pBegin=buf; while(pEnd=TStrChr(pBegin,(CHAR_TYPE)';')) { *pEnd='\0'; Result=TMatchWithPattern(pBegin,Name); if(Result) return true; pBegin=pEnd+1; } Result=TMatchWithPattern(pBegin,Name); return Result; } template bool TIMatchWithPattern(const CHAR_TYPE*Pattern,const CHAR_TYPE*Name) { if(*Pattern=='\0') return true; if( *Pattern == '*' ) { Pattern++; if(*Pattern=='\0') return true; while( *Name ) { if( LOWER_CHAR(*Pattern) == LOWER_CHAR(*Name) || *Pattern == '?') if( TIMatchWithPattern( Pattern+1, Name+1 )) return true; Name++; } return !(*Pattern && *Pattern != '*'); } while( *Name && *Pattern != '*' ) { if( LOWER_CHAR(*Pattern) == LOWER_CHAR(*Name) || *Pattern=='?') { Pattern++; Name++; } else return false; } if( *Name ) return TIMatchWithPattern( Pattern, Name ); return !(*Pattern && *Pattern != '*'); } template bool TIMultiMatchWithPattern(const CHAR_TYPE*Pattern,const CHAR_TYPE*Name) { CHAR_TYPE buf[256]; CHAR_TYPE* pBegin,*pEnd; bool Result; if(*Pattern=='\0') return true; TStrCpy(buf,Pattern); pBegin=buf+TStrLen(buf)-1; if(*pBegin==';')*pBegin='\0'; pBegin=buf; while(pEnd=TStrChr(pBegin,';')) { *pEnd='\0'; Result=TIMatchWithPattern(pBegin,Name); if(Result) return true; pBegin=pEnd+1; } Result=TIMatchWithPattern(pBegin,Name); return Result; } //////////////////////////////////////////////////////////////////////////////////////////////// //ת //////////////////////////////////////////////////////////////////////////////////////////////// template CHAR_TYPE* uNumToStr(TYPE Num,CHAR_TYPE* String,int Radix = 16) { TYPE Pow,PrevPow,Digit; CHAR_TYPE* pStr; if(Num == 0) { String[0]='0'; String[1]=0; return String; } if(Radix< 2||Radix>36) { *String = 0; return String; } pStr = String; for(PrevPow=0,Pow=1;(Num>=Pow)&&( (((Pow%Radix) == 0) || (Pow==1)) && (Pow > PrevPow));Pow*=(TYPE)Radix) PrevPow=Pow; Pow = PrevPow; while(Pow!= 0) { Digit = Num/Pow; *pStr = (CHAR) ((Digit <= 9) ? ('0'+Digit) : ('A'-10+Digit)); pStr++; Num -= Digit*Pow; Pow /= (TYPE)Radix; } *pStr = 0; return String; } template CHAR_TYPE* NumToStr(TYPE Num,CHAR_TYPE* String,int Radix = 16) { TYPE Pow,PrevPow,Digit; CHAR_TYPE* pStr; if(Num==0) { String[0]='0'; String[1]=0; return String; } if(Radix< 2||Radix>36) { *String = 0; return String; } pStr = String; if(Num<0) { *String='-'; Num = -Num; pStr++; } for(PrevPow=0,Pow=1;(Num>=Pow)&&( (((Pow%Radix) == 0) || (Pow==1)) && (Pow > PrevPow));Pow*=Radix) PrevPow=Pow; Pow = PrevPow; while(Pow) { Digit = Num/Pow; *pStr = (CHAR_TYPE) ((Digit <= 9) ? ('0'+Digit) : ('a'-10+Digit)); pStr++; Num -= Digit*Pow; Pow /= Radix; } *pStr = 0; return String; } template//ʮַתз32λ bool SHexStrToNum(const CHAR_TYPE* String,TYPE* SHex) { CHAR_TYPE Char; TYPE Sign,tmp,Len,Result; if(*String=='-') { Sign=-1; String++; } else { if(*String=='+') String++; Sign=1; } Len=Result=0; while(String[Len]) Len++; if(Len>sizeof(TYPE)*2) return false; for(TYPE n=0;n='0'&&Char<='9') tmp=(TYPE)(Char-'0'); else if(Char>='A'&&Char<='F') tmp=(TYPE)(Char-'A'+10); else if(Char>='a'&&Char<='f') tmp=(TYPE)(Char-'a'+10); else return false; tmp<<=4*n; Result|=tmp; } Result*=Sign; if(SHex) *SHex=Result; return true; } template/*ʮַת޷32λ */ bool USHexStrToNum(const CHAR_TYPE* String,TYPE*USHex) { CHAR_TYPE Char; TYPE tmp,Len,Result; Len=Result=0; while(String[Len]) Len++; if(Len==0) return false; if(Len>sizeof(TYPE)*2) return false; for(TYPE n=0;n='0'&&Char<='9') tmp=(TYPE)(Char-'0'); else if(Char>='A'&&Char<='F') tmp=(TYPE)(Char-'A'+10); else if(Char>='a'&&Char<='f') tmp=(TYPE)(Char-'a'+10); else return false; tmp<<=4*n; Result|=tmp; } if(USHex) *USHex=Result; return true; } //ʮַתз32λ template bool SDecStrToNum(const CHAR_TYPE* String,TYPE*SDec) { CHAR_TYPE Char; TYPE Sign,tmp,Len,Result,X10Base; if(*String=='-') { Sign=-1; String++; } else { if(*String=='+') String++; Sign=1; } Len=Result=0; while(String[Len]) Len++; if(Len==0) return false; X10Base=1; for(TYPE n=0;n='0'&&Char<='9') tmp=(TYPE)(Char-'0'); else return false; Result+=tmp*X10Base; X10Base*=10; } Result*=Sign; if(SDec) *SDec=Result; return true; } //ʮַת޷32λ template bool USDecStrToNum(const CHAR_TYPE* String,TYPE*USDec) { CHAR_TYPE c; TYPE tmp,Len,Result,X10Base; Len=Result=0; while(String[Len]) Len++; if(Len==0) return false; X10Base=1; for(TYPE n=0;n='0'&&c<='9') tmp=(TYPE)c-'0'; else return false; Result+=tmp*X10Base; X10Base*=10; } if(USDec) *USDec=Result; return true; } #define MAX_SIG_DIGITS 20 #define EXP_DENORM_ADJUST MAX_SIG_DIGITS #define MAX_ALLOWED_EXP (MAX_SIG_DIGITS + EXP_DENORM_ADJUST - DBL_MIN_10_EXP) #define DBL_DIG 15 /* # of decimal digits of precision */ #if DBL_DIG > MAX_SIG_DIGITS #error need to adjust MAX_SIG_DIGITS #endif #define INT_MAX 2147483647 /* maximum (signed) int value */ #if MAX_ALLOWED_EXP > INT_MAX #error size assumption violated for MAX_ALLOWED_EXP #endif /* Note: For i386 the macro resulted in smaller code than the function call. */ #undef isdigit #define isdigit(x) ( (x >= '0') && (x <= '9') ) template double strtod(const CHAR_TYPE *str, CHAR_TYPE **endptr) { double number; double p10; char *pos0; char *pos1; char *pos = (char *) str; int exponent_power; int exponent_temp; int negative; int num_digits; while (isspace(*pos)) { /* skip leading whitespace */ ++pos; } negative = 0; switch(*pos) { /* handle optional sign */ case '-': negative = 1; /* fall through to increment position */ case '+': ++pos; } number = 0.; num_digits = -1; exponent_power = 0; pos0 = NULL; LOOP: while (isdigit(*pos)) { /* process string of digits */ if (num_digits < 0) { /* first time through? */ ++num_digits; /* we've now seen a digit */ } if (num_digits || (*pos != '0')) { /* had/have nonzero */ ++num_digits; if (num_digits <= MAX_SIG_DIGITS) { /* is digit significant */ number = number * 10. + (*pos - '0'); } } ++pos; } if ((*pos == '.') && !pos0) { /* is this the first decimal point? */ pos0 = ++pos; /* save position of decimal point */ goto LOOP; /* and process rest of digits */ } if (num_digits<0) { /* must have at least one digit */ pos = (char *) str; goto DONE; } if (num_digits > MAX_SIG_DIGITS) { /* adjust exponent for skipped digits */ exponent_power += num_digits - MAX_SIG_DIGITS; } if (pos0) { exponent_power += pos0 - pos; /* adjust exponent for decimal point */ } if (negative) { /* correct for sign */ number = -number; negative = 0; /* reset for exponent processing below */ } /* process an exponent string */ if (*pos == 'e' || *pos == 'E') { pos1 = pos; switch(*++pos) { /* handle optional sign */ case '-': negative = 1; /* fall through to increment pos */ case '+': ++pos; } pos0 = pos; exponent_temp = 0; while (isdigit(*pos)) { /* process string of digits */ if (exponent_temp < MAX_ALLOWED_EXP) { /* overflow check */ exponent_temp = exponent_temp * 10 + (*pos - '0'); } ++pos; } if (pos == pos0) { /* were there no digits? */ pos = pos1; /* back up to e|E */ } /* else */ if (negative) { exponent_power -= exponent_temp; } else { exponent_power += exponent_temp; } } /* scale the result */ exponent_temp = exponent_power; p10 = 10.; if (exponent_temp < 0) { exponent_temp = -exponent_temp; } while (exponent_temp) { if (exponent_temp & 1) { if (exponent_power < 0) { number /= p10; } else { number *= p10; } } exponent_temp >>= 1; p10 *= p10; } DONE: if (endptr) { *endptr = pos; } return number; } #define PUTONE(c) {if(buffer)*buffer++ = (c); Length++;} #define CVTBUFSIZE 5000 typedef union { double value; struct { unsigned int lsw; unsigned int msw; } parts; } ieee_double_shape_type; /* Get two 32 bit ints from a double. */ #define EXTRACT_WORDS(ix0,ix1,d) \ do { \ ieee_double_shape_type ew_u; \ ew_u.value = (d); \ (ix0) = ew_u.parts.msw; \ (ix1) = ew_u.parts.lsw; \ } while (0) /* Get the more significant 32 bit int from a double. */ #define GET_HIGH_WORD(i,d) \ do { \ ieee_double_shape_type gh_u; \ gh_u.value = (d); \ (i) = gh_u.parts.msw; \ } while (0) /* Get the less significant 32 bit int from a double. */ #define GET_LOW_WORD(i,d) \ do { \ ieee_double_shape_type gl_u; \ gl_u.value = (d); \ (i) = gl_u.parts.lsw; \ } while (0) /* Set a double from two 32 bit ints. */ #define INSERT_WORDS(d,ix0,ix1) \ do { \ ieee_double_shape_type iw_u; \ iw_u.parts.msw = (ix0); \ iw_u.parts.lsw = (ix1); \ (d) = iw_u.value; \ } while (0) /* Set the more significant 32 bits of a double from an int. */ #define SET_HIGH_WORD(d,v) \ do { \ ieee_double_shape_type sh_u; \ sh_u.value = (d); \ sh_u.parts.msw = (v); \ (d) = sh_u.value; \ } while (0) /* Set the less significant 32 bits of a double from an int. */ #define SET_LOW_WORD(d,v) \ do { \ ieee_double_shape_type sl_u; \ sl_u.value = (d); \ sl_u.parts.lsw = (v); \ (d) = sl_u.value; \ } while (0) typedef union { long double value; struct { unsigned int lsw; unsigned int msw; int sign_exponent:16; unsigned int empty:16; } parts; } ieee_long_double_shape_type; /* Get three 32 bit ints from a double. */ #define GET_LDOUBLE_WORDS(exp,ix0,ix1,d) \ do { \ ieee_long_double_shape_type ew_u; \ ew_u.value = (d); \ (exp) = ew_u.parts.sign_exponent; \ (ix0) = ew_u.parts.msw; \ (ix1) = ew_u.parts.lsw; \ } while (0) /* Set a double from two 32 bit ints. */ #define SET_LDOUBLE_WORDS(d,exp,ix0,ix1) \ do { \ ieee_long_double_shape_type iw_u; \ iw_u.parts.sign_exponent = (exp); \ iw_u.parts.msw = (ix0); \ iw_u.parts.lsw = (ix1); \ (d) = iw_u.value; \ } while (0) /* Get the more significant 32 bits of a long double mantissa. */ #define GET_LDOUBLE_MSW(v,d) \ do { \ ieee_long_double_shape_type sh_u; \ sh_u.value = (d); \ (v) = sh_u.parts.msw; \ } while (0) /* Set the more significant 32 bits of a long double mantissa from an int. */ #define SET_LDOUBLE_MSW(d,v) \ do { \ ieee_long_double_shape_type sh_u; \ sh_u.value = (d); \ sh_u.parts.msw = (v); \ (d) = sh_u.value; \ } while (0) /* Get int from the exponent of a long double. */ #define GET_LDOUBLE_EXP(exp,d) \ do { \ ieee_long_double_shape_type ge_u; \ ge_u.value = (d); \ (exp) = ge_u.parts.sign_exponent; \ } while (0) /* Set exponent of a long double from an int. */ #define SET_LDOUBLE_EXP(d,exp) \ do { \ ieee_long_double_shape_type se_u; \ se_u.value = (d); \ se_u.parts.sign_exponent = (exp); \ (d) = se_u.value; \ } while (0) const long double one = 1.0; template FLOAT_TYPE modfl_for_ten_byte(FLOAT_TYPE x, FLOAT_TYPE *iptr) { int i0,i1,j0; unsigned int i,se; GET_LDOUBLE_WORDS(se,i0,i1,x); j0 = (se&0x7fff)-0x3fff; /* exponent of x */ if(j0<32) { /* integer part in high x */ if(j0<0) { /* |x|<1 */ SET_LDOUBLE_WORDS(*iptr,se&0x8000,0,0); /* *iptr = +-0 */ return x; } else { i = (0x7fffffff)>>j0; if(((i0&i)|i1)==0) { /* x is integral */ *iptr = x; SET_LDOUBLE_WORDS(x,se&0x8000,0,0); /* return +-0 */ return x; } else { SET_LDOUBLE_WORDS(*iptr,se,i0&(~i),0); return x - *iptr; } } } else if (j0>63) { /* no fraction part */ *iptr = x*one; /* We must handle NaNs separately. */ if (j0 == 0x4000 && ((i0 & 0x7fffffff) | i1)) return x*one; SET_LDOUBLE_WORDS(x,se&0x8000,0,0); /* return +-0 */ return x; } else { /* fraction part in low x */ i = ((u_int32_t)(0x7fffffff))>>(j0-32); if((i1&i)==0) { /* x is integral */ *iptr = x; SET_LDOUBLE_WORDS(x,se&0x8000,0,0); /* return +-0 */ return x; } else { SET_LDOUBLE_WORDS(*iptr,se,i0,i1&(~i)); return x - *iptr; } } } template FLOAT_TYPE mymodfl(FLOAT_TYPE x, FLOAT_TYPE *iptr) { int i0,i1,j0; unsigned int i; EXTRACT_WORDS(i0,i1,x); j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */ if(j0<20) { /* integer part in high x */ if(j0<0) { /* |x|<1 */ INSERT_WORDS(*iptr,i0&0x80000000,0); /* *iptr = +-0 */ return x; } else { i = (0x000fffff)>>j0; if(((i0&i)|i1)==0) { /* x is integral */ *iptr = x; INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */ return x; } else { INSERT_WORDS(*iptr,i0&(~i),0); return x - *iptr; } } } else if (j0>51) { /* no fraction part */ *iptr = x*one; /* We must handle NaNs separately. */ if (j0 == 0x400 && ((i0 & 0xfffff) | i1)) return x*one; INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */ return x; } else { /* fraction part in low x */ i = ((unsigned int)(0xffffffff))>>(j0-20); if((i1&i)==0) { /* x is integral */ *iptr = x; INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */ return x; } else { INSERT_WORDS(*iptr,i0,i1&(~i)); return x - *iptr; } } } //#include "fcvt.h" template static CHAR_TYPE * mycvt( double arg, int ndigits, int * decpt, int * sign, CHAR_TYPE * buf, int eflag ) { int r2,r3=0; bool overflow=false; double fi, fj,fb,fa=0.0; CHAR_TYPE * p, * p1; if ( ndigits < 0 ) ndigits = 0; if ( ndigits >= CVTBUFSIZE - 1 ) ndigits = CVTBUFSIZE - 2; r2 = 0; * sign = 0; p = & buf[0]; if ( arg < 0 ) { * sign = 1; arg = - arg; } arg = mymodfl( arg, & fi ); p1 = & buf[CVTBUFSIZE]; if ( fi != 0 ) { p1 = & buf[CVTBUFSIZE]; fb = fi; while ( fi != 0 ) { fj = mymodfl( fi / 10, & fi ); if(p1 > p) { *-- p1 = ( int )(( fj + .03 ) * 10 ) + '0'; fb=fi; } else { overflow=true; r3++; } r2 ++; } while ( p1 < & buf[CVTBUFSIZE] ) * p ++ = * p1 ++; } else if ( arg > 0 ) { while (( fj = arg * 10 ) < 1 ) { arg = fj; r2 --; } } p1 = & buf[ndigits]; if ( eflag == 0 ) p1 += r2; * decpt = r2; if ( p1 < & buf[0] ) { buf[0] = '\0'; return buf; } while ( p <= p1 && p < & buf[CVTBUFSIZE] ) { arg *= 10; arg = mymodfl( arg, & fj ); * p ++ = ( int ) fj + '0'; } if ( p1 >= & buf[CVTBUFSIZE] ) { buf[CVTBUFSIZE - 1] = '\0'; return buf; } p = p1; * p1 += 5; while (* p1 > '9' ) { * p1 = '0'; if ( p1 > buf ) ++*-- p1; else { * p1 = '1'; (* decpt )++; if ( eflag == 0 ) { if ( p > buf ) * p = '0'; p ++; } } } * p = '\0'; return buf; } template CHAR_TYPE * ecvtbuf( double arg, int ndigits, int * decpt, int * sign, CHAR_TYPE * buf ) { return mycvt( arg, ndigits, decpt, sign, buf, 1 ); } template CHAR_TYPE * fcvtbuf( double arg, int ndigits, int * decpt, int * sign, CHAR_TYPE * buf ) { return mycvt( arg, ndigits, decpt, sign, buf, 0 ); } template void cfltcvt( double value, CHAR_TYPE * buffer, CHAR_TYPE fmt, int precision ) { int decpt, sign, exp, pos; CHAR_TYPE * digits = NULL; CHAR_TYPE cvtbuf[CVTBUFSIZE + 1]; int capexp = 0; int magnitude; if ( fmt == 'G' || fmt == 'E' ) { capexp = 1; fmt += 'a' - 'A'; } if ( fmt == 'g' ) { digits = ecvtbuf( value, precision, & decpt, & sign, cvtbuf ); magnitude = decpt - 1; if ( magnitude < - 4 || magnitude > precision - 1 ) { fmt = 'e'; precision -= 1; } else { fmt = 'f'; precision -= decpt; } } if ( fmt == 'e' ) { digits = ecvtbuf( value, precision + 1, & decpt, & sign, cvtbuf ); if ( sign ) * buffer ++ = '-'; * buffer ++ = * digits; if ( precision > 0 ) * buffer ++ = '.'; memcpy( buffer, digits + 1, precision*sizeof(CHAR_TYPE) ); buffer += (precision); * buffer ++ = capexp ? 'E' : 'e'; if ( decpt == 0 ) { if ( value == 0.0 ) exp = 0; else exp = - 1; } else exp = decpt - 1; if ( exp < 0 ) { * buffer ++ = '-'; exp = - exp; } else * buffer ++ = '+'; buffer[2] = ( exp % 10 ) + '0'; exp = exp / 10; buffer[1] = ( exp % 10 ) + '0'; exp = exp / 10; buffer[0] = ( exp % 10 ) + '0'; buffer += 3; } else if ( fmt == 'f' ) { digits = fcvtbuf( value, precision, & decpt, & sign, cvtbuf ); if ( sign ) * buffer ++ = '-'; if (* digits ) { if ( decpt <= 0 ) { * buffer ++ = '0'; * buffer ++ = '.'; for ( pos = 0; pos < - decpt; pos ++) * buffer ++ = '0'; while (* digits ) * buffer ++ = * digits ++; } else { pos = 0; while (* digits ) { if ( pos ++ == decpt ) * buffer ++ = '.'; * buffer ++ = * digits ++; } } } else { * buffer ++ = '0'; if ( precision > 0 ) { * buffer ++ = '.'; for ( pos = 0; pos < precision; pos ++) * buffer ++ = '0'; } } } * buffer = '\0'; } template void forcdecpt( CHAR_TYPE * buffer ) { while (* buffer ) { if (* buffer == '.' ) return; if (* buffer == 'e' || * buffer == 'E' ) break; buffer ++; } if (* buffer ) { int n = TStrLen( buffer ); while ( n > 0 ) { buffer[n + 1] = buffer[n]; n --; } * buffer = '.'; } else { * buffer ++ = '.'; * buffer = '\0'; } } template void cropzeros( CHAR_TYPE * buffer ) { CHAR_TYPE * stop; while (* buffer && * buffer != '.' ) buffer ++; if (* buffer ++) { while (* buffer && * buffer != 'e' && * buffer != 'E' ) buffer ++; stop = buffer --; while (* buffer == '0' ) buffer --; if (* buffer == '.' ) buffer --; while (*++ buffer = * stop ++); } } #define TVSP_ZEROPAD 1 // Pad with zero #define TVSP_SIGN 2 // Unsigned/signed long #define TVSP_PLUS 4 // Show plus #define TVSP_SPACE 8 // Space if plus #define TVSP_LEFT 16 // Left justified #define TVSP_SPECIAL 32 // 0x #define TVSP_LARGE 64 // Use 'ABCDEF' instead of 'abcdef' template CHAR_TYPE * myflt( CHAR_TYPE * str, double num, int size, int precision, CHAR_TYPE fmt, int flags ) { CHAR_TYPE tmp[80]; char c, sign; int n, i; // Left align means no zero padding if ( flags & TVSP_LEFT ) flags &= ~ TVSP_ZEROPAD; // Determine padding and sign char c = ( flags & TVSP_ZEROPAD ) ? '0' : ' '; sign = 0; if ( flags & TVSP_SIGN ) { if ( num < 0.0 ) { sign = '-'; num = - num; size --; } else if ( flags & TVSP_PLUS ) { sign = '+'; size --; } else if ( flags & TVSP_SPACE ) { sign = ' '; size --; } } // Compute the precision value if ( precision < 0 ) precision = 6; // Default precision: 6 else if ( precision == 0 && fmt == 'g' ) precision = 1; // ANSI specified // Convert floating point number to text cfltcvt( num, tmp, fmt, precision ); // '#' and precision == 0 means force a decimal point if (( flags & TVSP_SPECIAL ) && precision == 0 ) forcdecpt( tmp ); // 'g' format means crop zero unless '#' given if ( fmt == 'g' && !( flags & TVSP_SPECIAL )) cropzeros( tmp ); n = TStrLen( tmp ); // Output number with alignment and padding size -= n; if (!( flags & ( TVSP_ZEROPAD | TVSP_LEFT ))) while ( size -- > 0 ) * str ++ = ' '; if ( sign ) * str ++ = sign; if (!( flags & TVSP_LEFT )) while ( size -- > 0 ) * str ++ = c; for ( i = 0; i < n; i ++) * str ++ = tmp[i]; while ( size -- > 0 ) * str ++ = ' '; return str; } template int TVSPrintf(CHAR_TYPE*buffer,const CHAR_TYPE*format,void*ParamList) { int nFlags; int Length; // Limit at entry point bool bMore; // Loop control int Width; // Optional width int Precision; // Optional precision CHAR_TYPE *str; // String CHAR_TYPE strbuf[128]; // Constructed string int len; // Length of string int nLeadingZeros; // Number of leading zeros required int nPad; // Number of pad characters required CHAR_TYPE *sPrefix; // Prefix string ULONG val; // Value of current number bool bLeftJustify; // Justification bool bPlusSign; // Show plus sign? bool bBlankSign; // Blank for positives? bool bZeroPrefix; // Want 0x for hex, 0 for octal? bool bIsShort; // true if short bool bIsLong; // true if long CHAR_TYPE cPad; CHAR_TYPE* savestr; bool bIsLonglong; // true if LONGLONG LONGLONG val64; va_list Next; Next = (va_list)ParamList; Length=0; nFlags=0; static CHAR_TYPE strPlus[]={'+',0}; static CHAR_TYPE strSub[]={'-',0}; static CHAR_TYPE str0x[]={'0','x',0}; static CHAR_TYPE str0X[]={'0','X',0}; static CHAR_TYPE strNULL[]={0}; static CHAR_TYPE strSpace[]={' ',0}; static CHAR_TYPE strZero[]={'0',0}; static CHAR_TYPE strError[]={'<','E','r','r','o','r','>',0}; while(*format != '\0') { // Everything but '%' is copied to buffer if (*format != '%') { if(buffer) *buffer++ = *format; Length++; format++; } else// '%' gets special handling here { // Set default flags, etc Width = 0; Precision = -1; bLeftJustify = false; bPlusSign = false; bBlankSign = false; bZeroPrefix = false; bIsShort = false; bIsLong = false; bIsLonglong = false; nFlags = 0; cPad = ' '; sPrefix = strNULL; format++; bMore = true; while (bMore) { // optional flags switch (*format) { case '-': bLeftJustify = true; format++;nFlags|=TVSP_LEFT; break; case '+': bPlusSign = true; format++; nFlags|=TVSP_PLUS;break; case '0': cPad = '0'; format++; nFlags|=TVSP_ZEROPAD;break; case ' ': bBlankSign = true; format++; nFlags|=TVSP_SPACE;break; case '#': bZeroPrefix = true; format++; nFlags|=TVSP_SPECIAL;break; default: bMore = false; } } // optional width if (*format == '*') { Width = (int) va_arg(Next, int); format++; if ( Width < 0 ) { Width = - Width; bLeftJustify = true; nFlags|=TVSP_LEFT; } } else if (IS_DIGIT(*format)) { while (IS_DIGIT(*format)) { Width *= 10; Width += (*format++) - '0'; } } // optional precision if (*format == '.') { format++; Precision = 0; if (*format == '*') { Precision = (int) va_arg(Next, int); format++; } else while (IS_DIGIT(*format)) { Precision *= 10; Precision += (*format++) - '0'; } if ( Precision < 0 ) Precision = 0; } // optional size'o' switch (*format) { case 'h': bIsShort = true; format++; break; case 'l': bIsLong = true; format++; break; case 'I': if ( (format[1]=='6') && (format[2]=='4') ) { format += 3; bIsLonglong = true; } break; } // All controls are completed, dispatch on the conversion character switch (*format++) { case 'd': case 'i': nFlags |= TVSP_SIGN; if (bIsLonglong) NumToStr( (LONGLONG) va_arg (Next, LONGLONG), strbuf, 10); else if (bIsLong) // Signed long int NumToStr( (long) va_arg(Next, long), strbuf, 10); else // Signed int NumToStr( (int) va_arg(Next, int), strbuf, 10); if (strbuf[0] == '-') sPrefix = strSub; else { if (bPlusSign) sPrefix = strPlus; else if (bBlankSign) sPrefix = strSpace; } goto EmitNumber; case 'u': if (bIsLonglong) uNumToStr( (LONGLONG) va_arg(Next, ULONGLONG), strbuf, 10); else if (bIsLong) // Unsigned long int uNumToStr( (ULONG) va_arg(Next, ULONG), strbuf, 10); else // Unsigned int uNumToStr( (ULONG) (int) va_arg(Next, int), strbuf, 10); goto EmitNumber; // set sPrefix for these... case 'o': if (bIsLonglong) uNumToStr( (LONGLONG) va_arg(Next, LONGLONG), strbuf, 10); else { if (bZeroPrefix) sPrefix = strZero; if (bIsLong) val = (long) va_arg(Next, long); else val = (int) va_arg(Next, int); uNumToStr(val, strbuf, 8); if (val == 0) sPrefix = strNULL; } goto EmitNumber; case 'p': // pointer case 'x': if (bZeroPrefix) sPrefix = str0x; if (bIsLonglong) { val64 = (LONGLONG) va_arg(Next, LONGLONG); uNumToStr( val64, strbuf, 16); if (val64 == 0) sPrefix = strNULL; } else { if (bIsLong) val = (ULONG) va_arg(Next, long); else val = (unsigned int) va_arg(Next, int); uNumToStr(val, strbuf, 16); if (val == 0) sPrefix = strNULL; } TStrLwr(strbuf); goto EmitNumber; case 'X': if (bZeroPrefix) sPrefix = str0X; if (bIsLonglong) { val64 = (LONGLONG) va_arg(Next, LONGLONG); uNumToStr( val64, strbuf, 16); if (val64 == 0) sPrefix = strNULL; } else { if (bIsLong) val = (ULONG) va_arg(Next, long); else val = (unsigned int) va_arg(Next, int); uNumToStr(val, strbuf, 16); if (val == 0) sPrefix = strNULL; } TStrUpr(strbuf); goto EmitNumber; case 'c': strbuf[0] = (CHAR_TYPE) va_arg(Next, int); str = strbuf; len = 1; goto EmitString; case 's': str = (CHAR_TYPE *) va_arg(Next, CHAR_TYPE*); len = TStrLen(str); if (Precision != -1 && Precision < len) len = Precision; goto EmitString; case 'n': break; case '%': strbuf[0] = '%'; str = strbuf; len = 1; goto EmitString; break; case 'f': case 'e': case 'E': case 'g': case 'G': // case 'U': str = myflt( (CHAR_TYPE*)&strbuf[0], va_arg( Next, double ), Width, Precision, *(format-1), nFlags | TVSP_SIGN ); *str='\0'; str=strbuf; len = TStrLen(str); goto EmitNumber; default: str = strError;//""; len = TStrLen(str); goto EmitString; } EmitNumber: if (Precision == -1) Precision = 1; str = strbuf; if (*str == '-') str++; // if negative, already have prefix len = TStrLen(str); nLeadingZeros = Precision - len; if (nLeadingZeros < 0) nLeadingZeros = 0; nPad = Width - (len + nLeadingZeros + TStrLen(sPrefix)); if (nPad < 0) nPad = 0; // If 0-padding, emit prefix first. // if ' ' padding, emit padding first if (cPad == '0') { while (*sPrefix != '\0') PUTONE(*sPrefix++); } if (nPad && !bLeftJustify) { // Left padding required while (nPad--) { PUTONE(cPad); } nPad = 0; // Indicate padding completed } // Put prefix now if not used up earlier (i.e. if blank padding) while (*sPrefix != '\0') PUTONE(*sPrefix++); while (nLeadingZeros-- > 0) PUTONE('0'); while (len-- > 0) { PUTONE(*str++); } if (nPad) { // Right padding required while (nPad--) PUTONE(' '); } goto Done; EmitString: // Here we have the string ready to emit. Handle padding, etc. if (Width > len) nPad = Width - len; else nPad = 0; if (nPad && !bLeftJustify) { // Left padding required while (nPad--) PUTONE(cPad); } savestr = str; while (len-- > 0) PUTONE(*str++); if (nPad && bLeftJustify) { // Right padding required while (nPad--) PUTONE(' '); } Done: ; } } if(buffer) *buffer = '\0'; return Length; // Don't count terminating NULL } template int TSPrintf(CHAR_TYPE*buffer,const CHAR_TYPE*format,...) { int Result; va_list Next; va_start(Next,format); Result = TVSPrintf(buffer,format,Next); va_end(Next); return Result; } template class TString { public://m_pData!=NULL && m_MaxLength==0ʱTStringǸַ CHAR_TYPE*m_pData; int m_Length; int m_MaxLength; public: void Init() { m_pData = NULL; m_MaxLength = m_Length = 0; } TString() { Init(); } TString(const CHAR_TYPE* pString) { Init(); m_pData = (CHAR_TYPE*)pString; m_Length = TStrLen(m_pData); } TString(const TString&String) { Init(); if(String.m_Length) Preallocate(String.m_Length+1,String.m_pData); } virtual ~TString() { if(m_pData) { if(m_MaxLength) delete m_pData; m_pData = NULL; } m_MaxLength = m_Length = 0; } // LengthʵռС virtual void Preallocate(int Length, const CHAR_TYPE* pNewString = NULL) { CHAR_TYPE* pNewData = m_pData; int OldMaxLength = m_MaxLength; if(Length>m_MaxLength) { m_MaxLength = Length+(Align-Length%Align); pNewData = new CHAR_TYPE[m_MaxLength]; *pNewData = 0; } if(pNewString && pNewString!=pNewData) { m_Length = TStrLen(pNewString); TStrCpyLimit(pNewData, pNewString, m_MaxLength); } if(m_pData && pNewData!=m_pData) { if(OldMaxLength) delete m_pData; m_pData = NULL; } m_pData = pNewData; } int GetLength() const { return m_Length; } int Length() const { return m_Length; } virtual void Empty() { if(m_pData) { if(m_MaxLength) delete m_pData; m_pData = NULL; } m_MaxLength = m_Length = 0; } bool IsEmpty() const { return (m_pData==NULL)||(m_Length==0)||(m_pData[0]==0); } int Compare(const TString String) const { if(m_pData == NULL || String.m_pData) return -1; return TStrCmp(m_pData, String.m_pData); } int CompareNoCase(const TString String) const { if(m_pData == NULL || String.m_pData) return -1; return TStrICmp(m_pData, String.m_pData); } CHAR_TYPE GetAt(int nIndex) const { if(nIndex= m_MaxLength ) { Preallocate(nNewLen+m_Length+1,m_pData); } ReverseCpy(m_pData+nIndex+nNewLen, m_pData+nIndex, m_Length-nIndex); ReverseCpy(m_pData+nIndex, pszString, nNewLen); m_Length+=nNewLen; *(m_pData+m_Length) = 0; return m_Length; } int Insert(int nIndex, CHAR_TYPE ch) { if(m_pData==NULL) Preallocate(nIndex+1); if( m_Length+1 >= m_MaxLength ) { Preallocate(m_Length+1+1,m_pData); } ReverseCpy(m_pData+nIndex+1, m_pData+nIndex, m_Length-nIndex); *(m_pData+nIndex) = ch; m_Length++; *(m_pData+m_Length) = 0; return m_Length; } int Delete( int nIndex, int nCount = 1) { if(nIndex<0 || nIndex>=m_Length) return m_Length; if(nIndex+nCount>m_Length) nCount = m_Length-nIndex; TMemCpy(m_pData+nIndex, m_pData+nIndex+nCount, m_Length-(nIndex+nCount)); m_Length -= nCount; m_pData[m_Length] = 0; return m_Length; } TString& operator=(const CHAR_TYPE* pString) { if(pString) Preallocate(TStrLen(pString)+1, pString); else Empty(); return *this; } TString& operator=(const TString& String) { if(String.m_Length) Preallocate(String.m_Length+1, String.m_pData); else Empty(); return *this; } TString& operator+=(const CHAR_TYPE* pString) { int nNewLen = TStrLen(pString); Preallocate(nNewLen+m_Length+1,m_pData); TStrCat(m_pData, pString); m_Length += nNewLen; return *this; } TString& operator+=(const TString& String) { Preallocate(String.m_Length+m_Length+1,m_pData); TStrCat(m_pData, String.m_pData); m_Length += String.m_Length; return *this; } TString&operator+=(CHAR_TYPE Char) { Preallocate(m_Length+2,m_pData); m_pData[m_Length]=Char; m_Length++; m_pData[m_Length]=0; return *this; } TString& Fill(CHAR_TYPE Char,int Count) { Preallocate(Count+1); for(int i =0; i < Count; i++) { m_pData[i]=Char; m_Length++; } m_pData[m_Length]=0; return *this; } TString& Append(CHAR_TYPE Char,int Count) { Preallocate(m_Length+Count+1,m_pData); for(int i =0; i < Count; i++) { m_pData[m_Length]=Char; m_Length++; } m_pData[m_Length]=0; return *this; } operator CHAR_TYPE*() { static CHAR_TYPE NullChar; NullChar = 0; if(m_pData==NULL) return &NullChar; return m_pData; } TString operator+(const TString& String) { TString NewString; NewString = *this; NewString += String; return NewString; } TString operator+(const CHAR_TYPE* pString) { TString NewString; NewString = *this; NewString += pString; return NewString; } CHAR_TYPE& operator[](int n) { return m_pData[n]; } bool operator==(const TString&StrObj) const { return (bIgnoreCase?!TStrICmp(m_pData,StrObj.m_pData):!TStrCmp(m_pData,StrObj.m_pData));} bool operator!=(const TString&StrObj) const { return (bIgnoreCase?TStrICmp(m_pData,StrObj.m_pData):TStrCmp(m_pData,StrObj.m_pData))!=0;} bool operator<(const TString&StrObj) const { return (bIgnoreCase?TStrICmp(m_pData,StrObj.m_pData):TStrCmp(m_pData,StrObj.m_pData))<0;} bool operator>(const TString&StrObj) const { return (bIgnoreCase?TStrICmp(m_pData,StrObj.m_pData):TStrCmp(m_pData,StrObj.m_pData))>0;} bool operator<=(const TString&StrObj) const { return (bIgnoreCase?TStrICmp(m_pData,StrObj.m_pData):TStrCmp(m_pData,StrObj.m_pData))<=0;} bool operator>=(const TString&StrObj) const { return (bIgnoreCase?TStrICmp(m_pData,StrObj.m_pData):TStrCmp(m_pData,StrObj.m_pData))>=0;} bool operator==(const CHAR_TYPE*pStr) const { return (bIgnoreCase?!TStrICmp(m_pData,pStr):!TStrCmp(m_pData,pStr));} bool operator!=(const CHAR_TYPE*pStr) const { return (bIgnoreCase?TStrICmp(m_pData,pStr):TStrCmp(m_pData,pStr))!=0;} bool operator<(const CHAR_TYPE*pStr) const { return (bIgnoreCase?TStrICmp(m_pData,pStr):TStrCmp(m_pData,pStr))<0;} bool operator>(const CHAR_TYPE*pStr) const { return (bIgnoreCase?TStrICmp(m_pData,pStr):TStrCmp(m_pData,pStr))>0;} bool operator<=(const CHAR_TYPE*pStr) const { return (bIgnoreCase?TStrICmp(m_pData,pStr):TStrCmp(m_pData,pStr))<=0;} bool operator>=(const CHAR_TYPE*pStr) const { return (bIgnoreCase?TStrICmp(m_pData,pStr):TStrCmp(m_pData,pStr))>=0;} void FormatV(const CHAR_TYPE* pFormat, va_list va) { int nLen = TVSPrintf((CHAR_TYPE*)NULL, pFormat, va); Preallocate(nLen+1); TVSPrintf(m_pData, pFormat, va); m_Length = nLen; } void Format(const CHAR_TYPE* pFormat, ...) { va_list va; va_start(va, pFormat); FormatV(pFormat, va); va_end(va); } TString& MakeUpper() { if(m_pData) TStrUpr(m_pData); return *this; } TString& MakeLower() { if(m_pData) TStrLwr(m_pData); return *this; } /////////////////////////////////////// //· ////////////////////////////////////// //ȡļ //"C:\Windows\Notepad.exe" //"Notepad.exe" CHAR_TYPE*GetFileName() { return TGetFileName(m_pData); } //ȡļչ //"C:\Windows\Notepad.exe" //"exe" CHAR_TYPE*GetFileExt() { return TGetFileExt(m_pData); } //ȡļ //"C:\Windows\Notepad.exe" //"Notepad" int GetFileTitle(CHAR_TYPE*szTitle) { return TGetFileTitle(m_pData,szTitle); } //ȡļ· //"C:\Windows\Notepad.exe" //C:\Windows int GetFilePath(CHAR_TYPE*szPath) { return TGetFilePath(m_pData,szPath); } int Save(ALTFileStream&Stream) { int Length = Stream.Puts(&m_Length,sizeof(m_Length)); if(m_Length>0) Length += Stream.Puts(m_pData,m_Length*sizeof(CHAR_TYPE)); return Length; } int Load(ALTFileStream&Stream) { int TotalLength,Length; TotalLength = 0; Length = Stream.Gets(&m_Length,sizeof(m_Length)); if(Length!=sizeof(m_Length)) return 0; TotalLength+=Length; if(m_Length==0) return TotalLength; Preallocate(m_Length+1); Length = Stream.Gets(m_pData,m_Length*sizeof(CHAR_TYPE)); if(Length!=m_Length*sizeof(CHAR_TYPE)) return 0; TotalLength+=Length; m_pData[m_Length]=0; return TotalLength; } }; typedef TString CStrA; typedef TString CStrW; typedef TString CIStrA; typedef TString CIStrW; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/ALTVector.hpp ================================================ #ifndef _ALT_VECTOR_H_ #define _ALT_VECTOR_H_ #include "ALTBase.hpp" ALT_NAME_SPACE_BEGIN template // ALTArchive> class TVector : public ALTObj { public: int m_Size; int m_Count; VALUE** m_ValueAry; public: TVector() { m_ValueAry = NULL; m_Count = m_Size = 0; Resize(InitSize); } ~TVector() { Clear(); } public: void Resize(int NewSize) { VALUE** NewVauleArray; if(NewSize==m_Size) return; NewVauleArray = (VALUE**)ConstructPtrArray(NewSize); for(int n=0;nNewSize) m_Count=NewSize; if(m_ValueAry) { for(int n=0;n=m_Size) Resize(m_Size*2); m_ValueAry[m_Count]=Construct(); if(&Value) *m_ValueAry[m_Count]=Value; m_Count++; return m_ValueAry[m_Count-1]; } void Remove() { if(m_Count<=0) return; m_Count--; Destruct(m_ValueAry[m_Count]); m_ValueAry[m_Count]=NULL; } inline VALUE& operator[](int n)const { return *m_ValueAry[n]; } inline int Size(){return m_Size;} inline int Count(){return m_Count;} public: int Save(ALTFileStream&Stream) { int Length; Length=Stream.Puts(&m_Size,sizeof(m_Size)); Length+=Stream.Puts(&m_Count,sizeof(m_Count)); for(int n=0;nSave(Stream); } static int Load(ALTFileStream&Stream,TVector*Obj,int m_Size){ return Obj->Load(Stream); } }; ALT_NAME_SPACE_END #endif ================================================ FILE: Project/Code/Source/alt/alt.hpp ================================================ #ifndef _ALT_H_ #define _ALT_H_ #include "ALTBase.hpp" #include "ALTString.hpp" #include "ALTList.hpp" #include "ALTBTree.hpp" #include "ALTMap.hpp" #include "ALTSet.hpp" #include "ALTRangeMap.hpp" #include "ALTArray.hpp" #include "ALTQueue.hpp" #include "ALTStack.hpp" #include "ALTVector.hpp" #include "ALTExpCalc.hpp" #ifdef ALT_FILE_STREAM #include "ALTFileStream.hpp" #endif #ifdef ALT_NAME_SPACE using namespace ALT_NAME_SPACE; #endif #endif ================================================ FILE: Project/Code/Source/buildchk_win7_x86.log ================================================ BUILD: Examining d:\syserdbg\project\code\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling d:\syserdbg\project\code\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>d:\syserdbg\project\code\source: TARGETPATH is Obj 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /Id:\syserdbg\project\code\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x06010000 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlCode /YcStdAfx.h /Fpd:\syserdbg\project\code\source\objchk_win7_x86\i386\StdAfx.pch /Fo"d:\syserdbg\project\code\source\objchk_win7_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @d:\syserdbg\project\code\source\objchk_win7_x86\i386\cl.rsp 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\Code.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @d:\syserdbg\project\code\source\objchk_win7_x86\i386\lib.rsp ================================================ FILE: Project/Code/Source/buildchk_wnet_x86.log ================================================ 0>Bad Path string: L'e:\ F ' BUILD: Computing Include file dependencies: BUILD: Examining f:\syserdbg\project\code\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling f:\syserdbg\project\code\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>f:\syserdbg\project\code\source: TARGETPATH is Obj 1>BUILDMSG: _NT_TARGET_VERSION SET TO WS03 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /If:\syserdbg\project\code\source\objchk_wnet_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0502 /DWINVER=0x0502 /D_WIN32_IE=0x0603 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x05020100 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlCode /YcStdAfx.h /Fpf:\syserdbg\project\code\source\objchk_wnet_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\code\source\objchk_wnet_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\code\source\objchk_wnet_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0502 1> /DWINVER=0x0502 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05020100 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /YlCode /Ycstdafx.h /Fpf:\syserdbg\project\code\source\objchk_wnet_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\code\source\objchk_wnet_x86\i386\StdAfx.obj" 1>pch_hdr.src 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @f:\syserdbg\project\code\source\objchk_wnet_x86\i386\cl.rsp 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Fo"f:\syserdbg\project\code\source\objchk_wnet_x86\i386/" 1> /FC 1> /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\code\source\objchk_wnet_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0502 1> /DWINVER=0x0502 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05020100 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /Yustdafx.h 1> /Fpf:\syserdbg\project\code\source\objchk_wnet_x86\i386\StdAfx.pch 1> .\ntdrvruntime.cpp .\fileio.cpp .\fileiontdrv.cpp .\handle.cpp .\imagefile.cpp .\logfile.cpp .\maths.cpp .\txtfile.cpp .\strmem.cpp .\sysdep.cpp .\newalloc.cpp .\newallocntdrv.cpp .\debugnewalloc.cpp .\debugnewallocntdrv.cpp .\compress.cpp .\cmdparser.cpp .\polyfs.cpp .\pagemem.cpp .\heap.cpp .\float2string.cpp .\crc.cpp .\optionvalue.cpp 1>ntdrvruntime.cpp 1>fileio.cpp 1>fileiontdrv.cpp 1>handle.cpp 1>imagefile.cpp 1>logfile.cpp 1>maths.cpp 1>txtfile.cpp 1>strmem.cpp 1>sysdep.cpp 1>newalloc.cpp 1>newallocntdrv.cpp 1>debugnewalloc.cpp 1>debugnewallocntdrv.cpp 1>compress.cpp 1>cmdparser.cpp 1>polyfs.cpp 1>pagemem.cpp 1>heap.cpp 1>float2string.cpp 1>Generating Code... 1>Compiling... 1>crc.cpp 1>optionvalue.cpp 1>Generating Code... 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\Code.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @f:\syserdbg\project\code\source\objchk_wnet_x86\i386\lib.rsp 1>Microsoft (R) Library Manager Version 9.00.30729.207 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\StdAfx.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\ntdrvruntime.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\fileio.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\fileiontdrv.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\handle.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\imagefile.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\logfile.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\maths.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\txtfile.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\strmem.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\sysdep.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\newalloc.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\newallocntdrv.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\debugnewalloc.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\debugnewallocntdrv.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\compress.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\cmdparser.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\polyfs.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\pagemem.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\heap.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\float2string.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\crc.obj 1>f:\syserdbg\project\code\source\objchk_wnet_x86\i386\optionvalue.obj ================================================ FILE: Project/Code/Source/buildchk_wxp_x86.log ================================================ 0>Bad Path string: L'e:\ F ' BUILD: Computing Include file dependencies: BUILD: Examining f:\syserdbg\project\code\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling f:\syserdbg\project\code\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>f:\syserdbg\project\code\source: TARGETPATH is Obj 1>BUILDMSG: _NT_TARGET_VERSION SET TO WINXP 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /If:\syserdbg\project\code\source\objchk_wxp_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0501 /DWINVER=0x0501 /D_WIN32_IE=0x0603 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x05010200 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlCode /YcStdAfx.h /Fpf:\syserdbg\project\code\source\objchk_wxp_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\code\source\objchk_wxp_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\code\source\objchk_wxp_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0501 1> /DWINVER=0x0501 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05010200 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /YlCode /Ycstdafx.h /Fpf:\syserdbg\project\code\source\objchk_wxp_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\code\source\objchk_wxp_x86\i386\StdAfx.obj" 1>pch_hdr.src 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @f:\syserdbg\project\code\source\objchk_wxp_x86\i386\cl.rsp 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Fo"f:\syserdbg\project\code\source\objchk_wxp_x86\i386/" 1> /FC 1> /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\code\source\objchk_wxp_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0501 1> /DWINVER=0x0501 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05010200 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /Yustdafx.h 1> /Fpf:\syserdbg\project\code\source\objchk_wxp_x86\i386\StdAfx.pch 1> .\ntdrvruntime.cpp .\fileio.cpp .\fileiontdrv.cpp .\handle.cpp .\imagefile.cpp .\logfile.cpp .\maths.cpp .\txtfile.cpp .\strmem.cpp .\sysdep.cpp .\newalloc.cpp .\newallocntdrv.cpp .\debugnewalloc.cpp .\debugnewallocntdrv.cpp .\compress.cpp .\cmdparser.cpp .\polyfs.cpp .\pagemem.cpp .\heap.cpp .\float2string.cpp .\crc.cpp .\optionvalue.cpp 1>ntdrvruntime.cpp 1>fileio.cpp 1>fileiontdrv.cpp 1>handle.cpp 1>imagefile.cpp 1>logfile.cpp 1>maths.cpp 1>txtfile.cpp 1>strmem.cpp 1>sysdep.cpp 1>newalloc.cpp 1>newallocntdrv.cpp 1>debugnewalloc.cpp 1>debugnewallocntdrv.cpp 1>compress.cpp 1>cmdparser.cpp 1>polyfs.cpp 1>pagemem.cpp 1>heap.cpp 1>float2string.cpp 1>Generating Code... 1>Compiling... 1>crc.cpp 1>optionvalue.cpp 1>Generating Code... 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\Code.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @f:\syserdbg\project\code\source\objchk_wxp_x86\i386\lib.rsp 1>Microsoft (R) Library Manager Version 9.00.30729.207 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\StdAfx.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\ntdrvruntime.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\fileio.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\fileiontdrv.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\handle.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\imagefile.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\logfile.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\maths.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\txtfile.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\strmem.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\sysdep.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\newalloc.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\newallocntdrv.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\debugnewalloc.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\debugnewallocntdrv.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\compress.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\cmdparser.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\polyfs.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\pagemem.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\heap.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\float2string.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\crc.obj 1>f:\syserdbg\project\code\source\objchk_wxp_x86\i386\optionvalue.obj ================================================ FILE: Project/Code/Win32/Code.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/Code/Win32/Code.vcproj ================================================ ================================================ FILE: Project/Code/Win32/Code.vcxproj ================================================ Debug Win32 Release Win32 Trial Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113} Win32Proj StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte <_ProjectFileVersion>16.0.33801.447 Debug\ Debug\ Release\ Release\ $(Configuration)\ $(Configuration)\ Disabled WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true Default MultiThreadedDebug Use Level3 EditAndContinue $(OutDir)Code.lib false OnlyExplicitInline Neither true WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded false true Use Level3 ProgramDatabase $(OutDir)Code.lib OnlyExplicitInline Neither true WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded false true Use Level3 ProgramDatabase $(OutDir)Code.lib Create Create Create ================================================ FILE: Project/Code/Win32/CodeTest.sln ================================================ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodeTest", "CodeTest.vcproj", "{A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}" ProjectSection(ProjectDependencies) = postProject {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Debug|Win32.ActiveCfg = Debug|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Debug|Win32.Build.0 = Debug|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Release|Win32.ActiveCfg = Release|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Release|Win32.Build.0 = Release|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Trial|Win32.ActiveCfg = Release|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Code/Win32/CodeTest.vcproj ================================================ ================================================ FILE: Project/Code/WinDrv32/Code.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "Code.vcproj", "{91B10728-79E2-44EE-81DE-E2F59222F8DA}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {91B10728-79E2-44EE-81DE-E2F59222F8DA}.Debug.ActiveCfg = Debug|Win32 {91B10728-79E2-44EE-81DE-E2F59222F8DA}.Debug.Build.0 = Debug|Win32 {91B10728-79E2-44EE-81DE-E2F59222F8DA}.Release.ActiveCfg = Release|Win32 {91B10728-79E2-44EE-81DE-E2F59222F8DA}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/Code/WinDrv32/Code.vcproj ================================================ ================================================ FILE: Project/Code/WinXPDrv32/Code.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "Code.vcproj", "{651091F4-30CA-4134-91EF-88FB5F4D7477}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {651091F4-30CA-4134-91EF-88FB5F4D7477}.Debug|Win32.ActiveCfg = Debug|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Debug|Win32.Build.0 = Debug|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Release|Win32.ActiveCfg = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Release|Win32.Build.0 = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Trial|Win32.ActiveCfg = Trial|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Code/WinXPDrv32/Code.vcproj ================================================ ================================================ FILE: Project/Code/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/Code/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/Code/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/Code/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/Code/incfile.txt ================================================ ================================================ FILE: Project/Code/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/Code/vc8/Code.sln ================================================ Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Code/vc8/Code.vcproj ================================================ ================================================ FILE: Project/Code/vc8/CodeMD.vcproj ================================================ ================================================ FILE: Project/Code/vc8/CodeTest.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CodeTest", "CodeTest.vcproj", "{A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}" ProjectSection(ProjectDependencies) = postProject {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Debug|Win32.ActiveCfg = Debug|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Debug|Win32.Build.0 = Debug|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Release|Win32.ActiveCfg = Release|Win32 {A63EC8C0-0571-4002-A1C4-BC4B00EDF3F2}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Code/vc8/CodeTest.vcproj ================================================ ================================================ FILE: Project/EXEAnalyzer/Source/CodeDoc.cpp ================================================ #include "StdAfx.h" #include "CodeDoc.h" CCodeDoc::CCodeDoc() { m_DocRangeStart = 0; m_DocRangeEnd = 0xFFFFFFFF; m_bIsOpened = false; } CCodeDoc::~CCodeDoc() { } bool CCodeDoc::Open(PCSTR Name) { m_bIsOpened = true; return true; } void CCodeDoc::Close() { m_bIsOpened = false; } bool CCodeDoc::GetSymbol(ULPOS Address,WCHAR*szSymbol,int BufSize) { return false; } bool CCodeDoc::GetComment(ULPOS Address,WCHAR*szComment,int BufSize) { return false; } bool CCodeDoc::SetComment(ULPOS Address,WCHAR*szComment) { return false; } bool CCodeDoc::GetLabel(ULPOS Address,WCHAR*szLabel,int BufSize) { return GetSymbol(Address,szLabel,BufSize); } UINT CCodeDoc::GetLineMark(ULPOS Address) { return CV_MARK_NULL; } ================================================ FILE: Project/EXEAnalyzer/Source/CodeDoc.h ================================================ #ifndef _CODE_DOC_H_ #define _CODE_DOC_H_ #include "DbgModule.h" enum CV_COLOR//ɫ { COLOR_NULL = 0, COLOR_BK, // COLOR_ADDRESS, //ַ COLOR_PREFIX, //ǰ׺ COLOR_OPCODE, // COLOR_REGISTER, //Ĵ COLOR_SEG_REG, //μĴ COLOR_IMMED, // COLOR_OPTR, // COLOR_SYMBOL, // COLOR_COMMENT, //ע COLOR_KEYWORD, //ؼ COLOR_STR, //ַ COLOR_BPX_STRIP, //ϵ COLOR_EIP_STRIP, //EIP COLOR_BPXEIP_STRIP, //ϵ COLOR_API_NAME, //API COLOR_API_PARAM_TYPE, //API COLOR_API_PARAM_NAME, //API COLOR_JMP_LINE, //Jmp COLOR_ACTIVED_JMP_LINE, //ҪתJmp COLOR_PREFIX_BYTE, //opcode е prefix ֽڵɫ COLOR_OPCODE_BYTE, // opcode ֽڵɫ COLOR_REGRM_BYTE, //opcode RegRM ֽڵɫ COLOR_SIB_BYPE, //opcode SIB ֽڵɫ COLOR_OTHER_OPCODE_BYTE, //opcode ֽڵɫ COLOR_3DNOW_BYTE, //ָ 3dNow ָһֽڵɫ //immediate byte MAX_COLOR }; #define CV_MARK_NULL 0x00000000 #define CV_MARK_EIP 0x00000001 #define CV_MARK_BPX 0x00000002 #define CV_MARK_DISABLED_BPX 0x00000004 #define CV_MARK_BOOK_MARK 0x00000008 typedef TExpCalc CExpCalc; class CCodeDoc { bool m_bIsOpened; public: CCodeDoc(); virtual ~CCodeDoc(); public: ULPOS m_DocRangeStart; ULPOS m_DocRangeEnd; virtual bool Open(PCSTR Name); virtual void Close(); virtual ULSIZE ReadImage(ULPOS Address,void*Buffer,ULSIZE Size) = 0; virtual ULPOS GetNextAddress(ULPOS Address,int Count) = 0; virtual bool GetSymbol(ULPOS Address,WCHAR*szSymbol,int BufSize); virtual bool GetComment(ULPOS Address,WCHAR*szComment,int BufSize); virtual bool SetComment(ULPOS Address,WCHAR*szComment); virtual bool GetLabel(ULPOS Address,WCHAR*szLabel,int BufSize); virtual UINT GetLineMark(ULPOS Address); public: bool inline IsOpened(){ return m_bIsOpened; } }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/DbgModule.cpp ================================================ #include "StdAfx.h" #include "DbgModule.h" CSymbolModule::CSymbolModule() { m_ReferenceCount = 0; m_ModuleName = NULL; m_pParam = NULL; m_ModuleID = 0; m_ModuleBase = 0; m_ModuleSize = 0; } bool CSymbolModule::InsertSymbol(IN ULPOS Offset,IN PCSYMSTR szSym) { return m_SymbolMap.InsertUnique(Offset,szSym)!=m_SymbolMap.End(); } bool CSymbolModule::SetSymbol(IN ULPOS Offset,IN PCSYMSTR szSym) { CSymbolMap::IT Iter = m_SymbolMap.Find(Offset); if(Iter!=m_SymbolMap.End()) { if(*Iter == szSym) return false; *Iter = szSym; return true; } return m_SymbolMap.InsertUnique(Offset,szSym)!=m_SymbolMap.End(); } bool CSymbolModule::RemoveSymbol(IN ULPOS Offset) { return m_SymbolMap.Remove(Offset)>0; } bool CSymbolModule::RemoveSymbol(IN PCSYMSTR szSym) { int Count = 0; CSymbolMap::IT RemovIter,Iter = m_SymbolMap.Begin(); while(Iter!=m_SymbolMap.End()) { if(TStrICmp((PCSYMSTR)(*Iter),szSym)==0) { RemovIter = Iter; Iter++; Count++; m_SymbolMap.Remove(RemovIter); } else Iter++; } return Count>0; } bool CSymbolModule::GetAddress(IN PCSYMSTR szSym,OUT ULPOS*pAddress) { if(m_ModuleBase==0) return false; for(CSymbolMap::IT Iter = m_SymbolMap.Begin();Iter.IsExist();Iter++) { if(*Iter==szSym) { if(pAddress) *pAddress = Iter.Key()+m_ModuleBase; return true; } } return false; } CCommentModule::CCommentModule() { m_ReferenceCount = 0; m_ModuleName = NULL; m_pParam = NULL; } bool CCommentModule::InsertComment(IN ULPOS Offset,IN PCCMTSTR szComment) { return m_CommentMap.InsertUnique(Offset,szComment)!=m_CommentMap.End(); } bool CCommentModule::SetComment(IN ULPOS Offset,IN PCCMTSTR szComment) { CCommentMap::IT Iter = m_CommentMap.Find(Offset); if(Iter!=m_CommentMap.End()) { if(*Iter==szComment) return false; *Iter = szComment; return true; } return m_CommentMap.InsertUnique(Offset,szComment)!=m_CommentMap.End(); } bool CCommentModule::RemoveComment(IN ULPOS Offset) { return m_CommentMap.Remove(Offset)>0; } CSymbolModule*CSymbolContainer::GetSymbolModule(MODULE_ID MID) { TMap::IT Iter = Find(MID); if(Iter.IsExist()) return &(*Iter); return NULL; } CSymbolModule*CSymbolContainer::InsertSymbolModule(MODULE_ID MID) { TMap::IT Iter = InsertUnique(MID); if(Iter.IsExist()==false) return NULL; Iter->m_ModuleID = MID; return &(*Iter); } bool CSymbolContainer::RemoveSymbolModule(MODULE_ID MID) { return Remove(MID)>0; } void CSymbolContainer::RemoveUnusedSymbolModule() { TMap::IT RemoveIter,Iter = Begin(); while(Iter.IsExist()) { if(Iter->m_ReferenceCount<=0) { RemoveIter = Iter; Iter++; Remove(RemoveIter); } else { Iter++; } } } bool CSymbolContainer::GetFullSymbol(IN ULPOS Address,OUT PSYMSTR SymbolName,int MaxLength) { int Len; ULPOS Offset; for(CSymbolContainer::IT SymModIter=Begin();SymModIter.IsExist();SymModIter++) { if(SymModIter->m_ModuleBase==0 || Addressm_ModuleBase || Address>=SymModIter->m_ModuleBase+SymModIter->m_ModuleSize) continue; Offset = Address-SymModIter->m_ModuleBase; CSymbolMap::IT Iter = SymModIter->m_SymbolMap.Find(Offset); if(Iter.IsExist()==false) continue; Len = TGetFileTitle((PCSYMSTR)SymModIter->m_ModuleName,SymbolName); Len+=TStrCpy(&SymbolName[Len],CDbgModule::m_SplitStr); TStrCpyLimit(&SymbolName[Len],(PCSYMSTR)*Iter,MaxLength-Len); return true; } return false; } PCSYMSTR CSymbolContainer::GetSymbol(IN ULPOS Address) { for(CSymbolContainer::IT SymModIter=Begin();SymModIter.IsExist();SymModIter++) { if(SymModIter->m_ModuleBase==0 || Addressm_ModuleBase || Address>=SymModIter->m_ModuleBase+SymModIter->m_ModuleSize) continue; CSymbolMap::IT Iter = SymModIter->m_SymbolMap.Find(Address-SymModIter->m_ModuleBase); if(Iter.IsExist()==false) continue; return *Iter; } return NULL; } CCommentModule*CCommentContainer::GetCommentModule(MODULE_ID MID) { TMap::IT Iter = Find(MID); if(Iter.IsExist()) return &(*Iter); return NULL; } CCommentModule*CCommentContainer::InsertCommentModule(MODULE_ID MID) { TMap::IT Iter = InsertUnique(MID); if(Iter.IsExist()==false) return NULL; Iter->m_ModuleID = MID; return &(*Iter); } bool CCommentContainer::RemoveCommentModule(MODULE_ID MID) { return Remove(MID)>0; } void CCommentContainer::RemoveUnusedCommentModule() { TMap::IT Iter,RemoveIter; Iter = Begin(); while(Iter.IsExist()) { if(Iter->m_ReferenceCount<=0) { RemoveIter = Iter; Iter++; Remove(RemoveIter); } else { Iter++; } } } PCSYMSTR CDbgModule::m_SplitStr = "_"; CDbgModule::CDbgModule() { m_ModuleID=0; m_ModuleBase = 0; m_ModuleSize = 0; m_pParam = NULL; m_pSymbolModule = NULL; m_pCommentModule = NULL; } bool CDbgModule::GetOffset(IN PCSYMSTR szSym,INOUT ULPOS*pOffset) { if(m_pSymbolModule==NULL) return false; for(CSymbolMap::IT Iter = m_pSymbolModule->m_SymbolMap.Begin();Iter!=m_pSymbolModule->m_SymbolMap.End();Iter++) { if(*Iter==szSym) { if(pOffset) *pOffset = Iter.Key(); return true; } } return false; } bool CDbgModule::GetAddress(IN PCSYMSTR szSym,INOUT ULPOS*pAddress) { if(GetOffset(szSym,pAddress)==false) return false; if(pAddress) *pAddress+=m_ModuleBase; return true; } bool CDbgModule::GetFullSymbol(IN ULPOS Address,INOUT PSYMSTR szSym,int MaxLength) { int Len; ULPOS Offset; if(m_pSymbolModule==NULL) return false; Offset = Address-m_ModuleBase; CSymbolMap::IT Iter = m_pSymbolModule->m_SymbolMap.Find(Offset); if(Iter==m_pSymbolModule->m_SymbolMap.End()) return false; Len = TStrCpyLimit(szSym,(PCSYMSTR)m_ModuleTitle,MaxLength); szSym += Len; MaxLength -= Len; if(MaxLength<=0) return false; if(m_ModuleTitle.Length()) { Len = TStrCpyLimit(szSym,m_SplitStr,MaxLength); szSym += Len; MaxLength -= Len; if(MaxLength<=0) return false; } TStrCpyLimit(szSym,(PCSYMSTR)(*Iter),MaxLength); return true; } PCSYMSTR CDbgModule::GetSymbol(IN ULPOS Address) { if(m_pSymbolModule==NULL) return NULL; ULPOS Offset = Address-m_ModuleBase; CSymbolMap::IT Iter = m_pSymbolModule->m_SymbolMap.Find(Offset); if(Iter==m_pSymbolModule->m_SymbolMap.End()) return NULL; return (PCSYMSTR)(*Iter); } PCCMTSTR CDbgModule::GetComment(IN ULPOS Address) { if(m_pCommentModule==NULL) return NULL; ULPOS Offset = Address-m_ModuleBase; CCommentMap::IT Iter = m_pCommentModule->m_CommentMap.Find(Offset); if(Iter==m_pCommentModule->m_CommentMap.End()) return NULL; return (PCCMTSTR)(*Iter); } bool CDbgModule::GetNearbySymbolAddrress(INOUT ULPOS*pAddress) { if(m_pSymbolModule==NULL) return false; ULPOS Offset = *pAddress-m_ModuleBase; CSymbolMap::IT Iter = m_pSymbolModule->m_SymbolMap.FindAlmost(Offset); if(Iter==m_pSymbolModule->m_SymbolMap.End()) return false; *pAddress = Iter.Key() + m_ModuleBase; return true; } void CDbgModule::AttachSymbolModule(CSymbolModule*pSymbolModule) { m_pSymbolModule = pSymbolModule; if(m_pSymbolModule) m_pSymbolModule->m_ReferenceCount++; } void CDbgModule::DetachSymbolModule(CSymbolContainer*pSymContainer) { if(m_pSymbolModule==NULL) return; m_pSymbolModule->m_ReferenceCount--; if(pSymContainer && m_pSymbolModule->m_ReferenceCount<=0) pSymContainer->RemoveSymbolModule(m_pSymbolModule->m_ModuleID); m_pSymbolModule=NULL; } void CDbgModule::AttachCommentModule(CCommentModule*pCommentModule) { m_pCommentModule = pCommentModule; if(m_pCommentModule) m_pCommentModule->m_ReferenceCount++; } void CDbgModule::DetachCommentModule(CCommentContainer*pCmtContainer) { if(m_pCommentModule==NULL) return; m_pCommentModule->m_ReferenceCount--; if(pCmtContainer && m_pCommentModule->m_ReferenceCount<=0) pCmtContainer->RemoveCommentModule(m_pCommentModule->m_ModuleID); m_pCommentModule=NULL; } bool CDbgModuleList::GetFullSymbol(IN ULPOS Address,INOUT PSYMSTR szSym,int MaxLength) { CDbgModuleMap::IT ModuleIter = m_DbgModuleMap.Find(Address); if(ModuleIter==m_DbgModuleMap.End()) return false; return ModuleIter->GetFullSymbol(Address,szSym,MaxLength); } PCSYMSTR CDbgModuleList::GetSymbol(IN ULPOS Address) { CDbgModuleMap::IT ModuleIter = m_DbgModuleMap.Find(Address); if(ModuleIter==m_DbgModuleMap.End()) return NULL; return ModuleIter->GetSymbol(Address); } CDbgModule*CDbgModuleList::GetModule(IN PCSYMSTR szModule) { PCSYMSTR pStr; for(CDbgModuleMap::IT Iter=m_DbgModuleMap.Begin();Iter!=m_DbgModuleMap.End();Iter++) { if(TCmpModuleName((PCSYMSTR)Iter->m_ModuleFullName,szModule)) return &(*Iter); } pStr = TStrRChr(szModule,'\\'); if(pStr) { pStr++; for(CDbgModuleMap::IT Iter=m_DbgModuleMap.Begin();Iter!=m_DbgModuleMap.End();Iter++) { if(TCmpModuleName((PCSYMSTR)Iter->m_ModuleFullName,pStr)) return &(*Iter); } } return NULL; } CDbgModule*CDbgModuleList::GetModule(IN ULPOS Address) { CDbgModuleMap::IT Iter = m_DbgModuleMap.Find(Address); if(Iter==m_DbgModuleMap.End()) return NULL; return &(*Iter); } CDbgModule* CDbgModuleList::GetModuleByID(IN MODULE_ID ModuleID) { for(CDbgModuleMap::IT Iter=m_DbgModuleMap.Begin();Iter!=m_DbgModuleMap.End();Iter++) { if(Iter->m_ModuleID==ModuleID) return &(*Iter); } return NULL; } CDbgModule*CDbgModuleList::InsertModule(IN PCSYMSTR szModuleFullName,ULPOS Address,ULSIZE Size,MODULE_ID ModuleID) { SYMCHAR szFileNameTitle[MAX_FN_LEN]; CDbgModuleMap::IT Iter = m_DbgModuleMap.InsertUnique(CDbgModuleMap::RANGE(Address,Address+Size-1)); if(Iter==m_DbgModuleMap.End()) return NULL; Iter->m_ModuleBase = Address; Iter->m_ModuleSize = Size; Iter->m_ModuleFullName = szModuleFullName; Iter->m_ModuleID = ModuleID; TGetFileTitle(szModuleFullName,szFileNameTitle); Iter->m_ModuleTitle = szFileNameTitle; Iter->m_ModuleName = TGetFileName((PCSYMSTR)Iter->m_ModuleFullName); return &(*Iter); } bool CDbgModuleList::RemoveModule(IN ULPOS Address) { CDbgModuleMap::IT Iter = m_DbgModuleMap.Find(Address); if(Iter==m_DbgModuleMap.End()) return false; if(Iter->m_pSymbolModule) Iter->m_pSymbolModule->m_ReferenceCount--; m_DbgModuleMap.Remove(Iter); return true; } bool CDbgModuleList::GetNearbySymbolAddrress(INOUT ULPOS*pAddress) { CDbgModuleMap::IT ModuleIter = m_DbgModuleMap.Find(*pAddress); if(ModuleIter==m_DbgModuleMap.End()) return false; return ModuleIter->GetNearbySymbolAddrress(pAddress); } PCCMTSTR CDbgModuleList::GetComment(IN ULPOS Address) { CDbgModuleMap::IT ModuleIter = m_DbgModuleMap.Find(Address); if(ModuleIter==m_DbgModuleMap.End()) return NULL; return ModuleIter->GetComment(Address); } int CCommentModule::Save(ALTFileStream&Stream) { ULPOS Address; int Length = m_ModuleName.Save(Stream); Length+=Stream.Puts(&m_CommentMap.m_Count,sizeof(m_CommentMap.m_Count)); for(CCommentMap::IT Iter = m_CommentMap.Begin();Iter!=m_CommentMap.End();Iter++) { Address = Iter.Key(); Length += Stream.Puts(&Address,sizeof(Address)); Length += Iter->Save(Stream); } return Length; } int CCommentModule::Load(ALTFileStream&Stream) { ULPOS Address; int Count,Length,TotalLength; Length = m_ModuleName.Load(Stream); if(Length==0) return 0; TotalLength=Length; Length = Stream.Gets(&Count,sizeof(Count)); if(Length==0 || Count > 0x1000) return 0; TotalLength+=Length; CCommentMap::IT Iter; CSymStr Str; while(Count) { TotalLength += Stream.Gets(&Address,sizeof(Address)); Iter=m_CommentMap.InsertUnique(Address); if(Iter==m_CommentMap.End()) return 0; Length=Iter->Load(Stream); if(Length==0) { m_CommentMap.Remove(Iter); return 0; } TotalLength+=Length; Count--; } return TotalLength; } int CCommentContainer::Save(ALTFileStream&Stream) { int Length; DWORD Ver = CMT_MODULE_VER; Length = Stream.Puts(&Ver,sizeof(Ver)); Length += Stream.Puts(&m_Count,sizeof(m_Count)); for(CCommentContainer::IT Iter = Begin();Iter!=End();Iter++) { Length += Stream.Puts(&Iter.Key(),sizeof(MODULE_ID)); Length += Iter->Save(Stream); } return Length; } int CCommentContainer::Load(ALTFileStream&Stream) { DWORD Ver; int Count,Length,TotalLength; TotalLength = 0; Length = Stream.Gets(&Ver,sizeof(Ver)); if(Length!=sizeof(Ver) || Ver!=CMT_MODULE_VER) return 0; TotalLength+=Length; Length = Stream.Gets(&Count,sizeof(Count)); if(Length==0 || Count > 0x10000) return 0; TotalLength+=Length; TMap::IT Iter; MODULE_ID MID; while(Count) { Length = Stream.Gets(&MID,sizeof(MID)); if(Length==0) return 0; TotalLength+=Length; Iter=InsertUnique(MID); if(Iter.IsExist()==false) return 0; Iter->m_ModuleID = MID; Length = Iter->Load(Stream); if(Length==0) { Remove(Iter); return 0; } TotalLength+=Length; Count--; } return TotalLength; } ================================================ FILE: Project/EXEAnalyzer/Source/DbgModule.h ================================================ #ifndef _DBG_MODULE_H_ #define _DBG_MODULE_H_ #define MAX_CMT_LEN 128 ////////////////////////////////////////////// //ַͶ typedef CHAR SYMCHAR; typedef CHAR CMTCHAR; typedef SYMCHAR* PSYMSTR; typedef const SYMCHAR* PCSYMSTR; typedef TString CSymStr; typedef CMTCHAR* PCMTSTR; typedef const CMTCHAR* PCCMTSTR; typedef TString CCmtStr; typedef TMap CCommentMap; typedef TMap CSymbolMap; //ַͶ ////////////////////////////////////////////// #define MAKE_MODULE_ID(CheckSum,TimeDateStamp) MAKE_QDWORD(CheckSum,TimeDateStamp) typedef ULONGLONG MODULE_ID; class CSymbolModule { public: CSymbolModule(); public: virtual bool InsertSymbol(IN ULPOS Offset,IN PCSYMSTR szSym); virtual bool SetSymbol(IN ULPOS Offset,IN PCSYMSTR szSym); virtual bool RemoveSymbol(IN ULPOS Offset); virtual bool RemoveSymbol(IN PCSYMSTR szSym); virtual bool GetAddress(IN PCSYMSTR szSym,OUT ULPOS*pAddress); ///////////////////////////////////////////////////////////////////////// public: ULPOS m_ModuleBase; ULSIZE m_ModuleSize; CSymbolMap m_SymbolMap; CSymStr m_ModuleName; int m_ReferenceCount; void* m_pParam; MODULE_ID m_ModuleID; }; #define CMT_MODULE_VER 0x1000 class CCommentModule { public: CCommentModule(); virtual bool InsertComment(IN ULPOS Offset,IN PCCMTSTR szComment); virtual bool SetComment(IN ULPOS Offset,IN PCCMTSTR szComment); virtual bool RemoveComment(IN ULPOS Offset); int Save(ALTFileStream&Stream); int Load(ALTFileStream&Stream); CCommentMap m_CommentMap; CCmtStr m_ModuleName; int m_ReferenceCount; void* m_pParam; MODULE_ID m_ModuleID; }; //ļΪKeyķףظ class CSymbolContainer : public TMap { public: virtual CSymbolModule*GetSymbolModule(MODULE_ID MID); virtual CSymbolModule*InsertSymbolModule(MODULE_ID MID); virtual bool RemoveSymbolModule(MODULE_ID MID); virtual void RemoveUnusedSymbolModule(); //ֻ԰ModuleBaseģЧ virtual bool GetFullSymbol(IN ULPOS Address,OUT PSYMSTR SymbolName,int MaxLength); virtual PCSYMSTR GetSymbol(IN ULPOS Address); }; class CCommentContainer : public TMap { public: virtual CCommentModule*GetCommentModule(MODULE_ID MID); virtual CCommentModule*InsertCommentModule(MODULE_ID MID); virtual bool RemoveCommentModule(MODULE_ID MID); virtual void RemoveUnusedCommentModule(); int Save(ALTFileStream&Stream); int Load(ALTFileStream&Stream); }; class CDbgModule { public: static PCSYMSTR m_SplitStr; CDbgModule(); public: virtual bool GetOffset(IN PCSYMSTR szSym,OUT ULPOS*pOffset); virtual bool GetAddress(IN PCSYMSTR szSym,OUT ULPOS*pAddress); virtual bool GetFullSymbol(IN ULPOS Address,OUT PSYMSTR SymbolName,int MaxLength); virtual PCSYMSTR GetSymbol(IN ULPOS Address); virtual PCCMTSTR GetComment(IN ULPOS Address); virtual bool GetNearbySymbolAddrress(INOUT ULPOS*pAddress); virtual void AttachSymbolModule(CSymbolModule*pSymbolModule); virtual void DetachSymbolModule(CSymbolContainer*pSymContainer); virtual void AttachCommentModule(CCommentModule*pCommentModule); virtual void DetachCommentModule(CCommentContainer*pCmtContainer); public: CSymbolModule*m_pSymbolModule; CCommentModule*m_pCommentModule; CSymStr m_ModuleFullName; CSymStr m_ModuleTitle; PCSYMSTR m_ModuleName; ULPOS m_ModuleBase; ULSIZE m_ModuleSize; void* m_pParam; MODULE_ID m_ModuleID; }; typedef TRangeMap CDbgModuleMap; class CDbgModuleList { public: virtual CDbgModule* GetModule(IN PCSYMSTR szModule); virtual CDbgModule* GetModule(IN ULPOS Address); virtual CDbgModule* GetModuleByID(IN MODULE_ID ModuleID); virtual CDbgModule* InsertModule(IN PCSYMSTR szModuleFullName,ULPOS Address,ULSIZE Size,MODULE_ID ModuleID); virtual bool RemoveModule(IN ULPOS Address); virtual bool GetFullSymbol(IN ULPOS Address,INOUT PSYMSTR szSym,int MaxLength); virtual PCSYMSTR GetSymbol(IN ULPOS Address); virtual bool GetNearbySymbolAddrress(INOUT ULPOS*pAddress); virtual PCCMTSTR GetComment(IN ULPOS Address); public: CDbgModuleMap m_DbgModuleMap; }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/Debugger.cpp ================================================ #include "StdAfx.h" #include "Debugger.h" #define MAX_CONDITION_INSTR_COUNT 0x100000 bool IsTypeMatched(UINT TypeInc,UINT TypeExc,BREAK_POINT&BP) { if(TypeInc & BP_TYPE_FULL_CMP) { TypeInc&=~BP_TYPE_FULL_CMP; if((BP.Type&TypeInc)!=TypeInc) return false; } else { if(TypeInc && (BP.Type&TypeInc)==0) return false; } if(TypeExc & BP_TYPE_FULL_CMP) { TypeExc&=~BP_TYPE_FULL_CMP; if((BP.Type&TypeExc)==TypeExc) return false; } else { if(BP.Type & TypeExc) return false; } return true; } CDebugger::CDebugger() { m_pCodeBPMap = &m_CodeBPMap; m_pDataBPList = &m_DataBPList; } CDebugger::~CDebugger() { } BREAK_POINT*CDebugger::GetCodeBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { ULONGLONG PhysAddr; if(MapToPhysAddr(Address,PhysAddr)==false) return NULL; CCodeBPMap::IT Iter = m_pCodeBPMap->Find(PhysAddr); if(!Iter.IsExist()) return NULL; if(IsTypeMatched(TypeInc,TypeExc,*Iter)==false) return NULL; return &(*Iter); } BREAK_POINT*CDebugger::InsertCodeBP(ULPOS Address,UINT Type,BP_STATE State) { ULONGLONG PhysAddr; if(SwitchProcessSpace(m_PID)==false) { m_LastError = BP_ERROR_SWITCH_PROCESS; return NULL; } if(MapToPhysAddr(Address,PhysAddr)==false) { RestoreProcessSpace(); m_LastError = BP_ERROR_MAP_TO_PHYS; return NULL; } CCodeBPMap::IT Iter = m_pCodeBPMap->Find(PhysAddr); if(Iter.IsExist()) { RestoreProcessSpace(); m_LastError = BP_ERROR_BP_EXIST; return NULL; } Iter = m_pCodeBPMap->InsertUnique(PhysAddr); Iter->Address = Address; Iter->Type = Type; Iter->State = BP_STATE_DISABLE; Iter->Length = 0; Iter->UserData = 0; Iter->PID = m_PID; Iter->OwnerName = m_ProcName; Iter->pModuleBP = NULL; Iter->BPCount=0; if(State == BP_STATE_ENABLE && SetCodeBreakPoint(*Iter)==false) { m_pCodeBPMap->Remove(Iter); RestoreProcessSpace(); m_LastError = BP_ERROR_FAIL_TO_SET; return NULL; } Iter->State = State; RestoreProcessSpace(); m_LastError = BP_ERROR_SUCCESS; return &(*Iter); } bool CDebugger::RemoveCodeBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { ULONGLONG PhysAddr; if(SwitchProcessSpace(m_PID)==false) { RestoreProcessSpace(); m_LastError = BP_ERROR_SWITCH_PROCESS; return false; } if(MapToPhysAddr(Address,PhysAddr)==false) { RestoreProcessSpace(); m_LastError = BP_ERROR_MAP_TO_PHYS; return false; } CCodeBPMap::IT Iter = m_pCodeBPMap->Find(PhysAddr); if(!Iter.IsExist()) { RestoreProcessSpace(); m_LastError = BP_ERROR_BP_NOT_EXIST; return false; } if(!IsTypeMatched(TypeInc,TypeExc,*Iter)) { RestoreProcessSpace(); return false; } if(Iter->State == BP_STATE_ENABLE && ClearCodeBreakPoint(*Iter)==false) { RestoreProcessSpace(); m_LastError = BP_ERROR_FAIL_TO_CLEAR; return false; } m_pCodeBPMap->Remove(Iter); RestoreProcessSpace(); m_LastError = BP_ERROR_SUCCESS; return true; } bool CDebugger::RemoveCodeBP(BREAK_POINT*pBP) { CCodeBPMap::IT Iter=*pBP; ULONGLONG PhysAddr; if(SwitchProcessSpace(pBP->PID)==false) return false; if(MapToPhysAddr(Iter->Address,PhysAddr)==false || PhysAddr!=Iter.Key()) { RestoreProcessSpace(); return false; } if(Iter->State == BP_STATE_ENABLE && ClearCodeBreakPoint(*Iter)==false) { RestoreProcessSpace(); return false; } m_pCodeBPMap->Remove(Iter); RestoreProcessSpace(); return true; } int CDebugger::RemoveAllCodeBP(UINT TypeInc,UINT TypeExc) { int Count=0; CCodeBPMap::IT RemoveIter,Iter; Iter=m_pCodeBPMap->Begin(); while(Iter.IsExist()) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { RemoveIter = Iter; Iter++; if(RemoveCodeBP(&(*RemoveIter))) Count++; } else Iter++; } return Count; } int CDebugger::EnableAllCodeBP(UINT TypeInc,UINT TypeExc) { int Count=0; CCodeBPMap::IT Iter; Iter=m_pCodeBPMap->Begin(); while(Iter!=m_pCodeBPMap->End()) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(EnableCodeBP(&(*Iter))) Count++; } Iter++; } return Count; } int CDebugger::DisableAllCodeBP(UINT TypeInc,UINT TypeExc) { int Count=0; CCodeBPMap::IT Iter; Iter=m_pCodeBPMap->Begin(); while(Iter!=m_pCodeBPMap->End()) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(DisableCodeBP(&(*Iter))) Count++; } Iter++; } return Count; } bool CDebugger::EnableCodeBP(BREAK_POINT*pBP) { if(pBP->State == BP_STATE_ENABLE || pBP->State == BP_STATE_RECOV) return true; if(SwitchProcessSpace(pBP->PID)==false) return false; if(SetCodeBreakPoint(*pBP)==false) { RestoreProcessSpace(); return false; } pBP->State = BP_STATE_ENABLE; RestoreProcessSpace(); return true; } bool CDebugger::EnableCodeBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { BREAK_POINT*pBP = GetCodeBP(Address,TypeInc,TypeExc); if(pBP) return EnableCodeBP(pBP); return NULL; } bool CDebugger::DisableCodeBP(BREAK_POINT*pBP) { if(pBP->State == BP_STATE_DISABLE) return true; if(pBP->State==BP_STATE_ENABLE) { if(SwitchProcessSpace(pBP->PID)==false) return false; if(ClearCodeBreakPoint(*pBP)==false) { RestoreProcessSpace(); return false; } RestoreProcessSpace(); } pBP->State = BP_STATE_DISABLE; return true; } bool CDebugger::DisableCodeBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { BREAK_POINT*pBP=GetCodeBP(Address,TypeInc,TypeExc); if(pBP) return DisableCodeBP(pBP); return NULL; } BREAK_POINT*CDebugger::InsertDataBP(ULPOS Address,UINT Type,BP_STATE State,UINT Length) { CDataBPList::IT Iter = m_pDataBPList->Append(); Iter->Address = Address; Iter->Type = Type; Iter->State = BP_STATE_DISABLE; Iter->Length = Length; Iter->UserData = 0; Iter->PID = m_PID; Iter->BPCount=0; Iter->OwnerName = m_ProcName; if(State == BP_STATE_ENABLE && SetDataBreakPoint(*Iter)==false) { m_pDataBPList->Remove(Iter); return NULL; } Iter->State = State; return &(*Iter); } int CDebugger::RemoveDataBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { int Count=0; for(CDataBPList::IT Iter=m_pDataBPList->Begin();Iter!=m_pDataBPList->End();Iter++) { if(Iter->Address == Address && IsTypeMatched(TypeInc,TypeExc,*Iter)) { RemoveDataBP(&(*Iter)); Count++; } } return Count; } bool CDebugger::RemoveDataBP(BREAK_POINT*pBP) { if(pBP->State == BP_STATE_ENABLE) { if(ClearDataBreakPoint(*pBP)==false) return false; } CDataBPList::IT Iter = *pBP; m_pDataBPList->Remove(Iter); return true; } int CDebugger::RemoveAllDataBP(UINT TypeInc,UINT TypeExc) { int Count=0; CDataBPList::IT RemoveIter,Iter=m_pDataBPList->Begin(); while(Iter!=m_pDataBPList->End()) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { RemoveIter = Iter; Iter++; if(RemoveDataBP(&(*RemoveIter))) Count++; } else Iter++; } return Count; } int CDebugger::EnableAllDataBP(UINT TypeInc,UINT TypeExc) { int Count=0; CDataBPList::IT Iter=m_pDataBPList->Begin(); while(Iter!=m_pDataBPList->End()) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(EnableDataBP(&(*Iter))) Count++; } Iter++; } return Count; } int CDebugger::DisableAllDataBP(UINT TypeInc,UINT TypeExc) { int Count=0; CDataBPList::IT Iter=m_pDataBPList->Begin(); while(Iter!=m_pDataBPList->End()) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(DisableDataBP(&(*Iter))) Count++; } Iter++; } return Count; } bool CDebugger::EnableDataBP(BREAK_POINT*pBP) { if(pBP->State == BP_STATE_ENABLE || pBP->State == BP_STATE_RECOV) return true; if(SetDataBreakPoint(*pBP)==false) return false; pBP->State = BP_STATE_ENABLE; return true; } int CDebugger::EnableDataBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { int Count=0; CDataBPList::IT Iter=m_pDataBPList->Begin(); while(Iter!=m_pDataBPList->End()) { if(Address == Iter->Address && IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(EnableDataBP(&(*Iter))) Count++; } Iter++; } return Count; } bool CDebugger::DisableDataBP(BREAK_POINT*pBP) { if(pBP->State == BP_STATE_DISABLE) return true; if(pBP->State == BP_STATE_ENABLE) { if(ClearDataBreakPoint(*pBP)==false) return false; } pBP->State = BP_STATE_DISABLE; return true; } int CDebugger::DisableDataBP(ULPOS Address,UINT TypeInc,UINT TypeExc) { int Count=0; CDataBPList::IT Iter=m_pDataBPList->Begin(); while(Iter!=m_pDataBPList->End()) { if(Address == Iter->Address && IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(DisableDataBP(&(*Iter))) Count++; } Iter++; } return Count; } int CDebugger::GetDataBPList(UINT TypeInc,UINT TypeExc,TList*pList) { int Count=0; for(CDataBPList::IT Iter=m_pDataBPList->Begin();Iter!=m_pDataBPList->End();Iter++) { if(IsTypeMatched(TypeInc,TypeExc,*Iter)) { if(pList) pList->Append(&(*Iter)); Count++; } } return Count; } ULSIZE CDebugger::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size,void*Param) { return ((CDebugger*)Param)->ReadMemory(Address,Buffer,Size); } bool CDebugger::Init(CDebugInterface*pDebugInterface) { m_pDebugInterface=pDebugInterface; return true; } void CDebugger::Release() { m_pDebugInterface=NULL; } bool CDebugger::Open(PCSTR ModuleName) { return true; } bool CDebugger::Close() { for(CDbgModuleMap::IT ModIter = m_ModuleList.m_DbgModuleMap.Begin();ModIter!=m_ModuleList.m_DbgModuleMap.End();ModIter++) { if(ModIter->m_pSymbolModule) ModIter->m_pSymbolModule->m_ReferenceCount--; if(ModIter->m_pCommentModule) ModIter->m_pCommentModule->m_ReferenceCount--; } if(m_pDebugInterface) { if(m_pDebugInterface->m_pSymbolContainer) m_pDebugInterface->m_pSymbolContainer->RemoveUnusedSymbolModule(); if(m_pDebugInterface->m_pCommentContainer) m_pDebugInterface->m_pCommentContainer->RemoveUnusedCommentModule(); } m_ModuleList.m_DbgModuleMap.Clear(); m_ProcName.Empty(); return true; } ULSIZE CDebugger::WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } ULSIZE CDebugger::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } ULSIZE CDebugger::MoveMem(ULPOS DesAddr,ULPOS SrcAddr,ULSIZE Size) { BYTE Buffer[256]; ULSIZE Length,RDSize = 0; while(Size>0) { Length = Size > sizeof(Buffer) ? sizeof(Buffer) : Size; if(ReadMemory(SrcAddr+RDSize,Buffer,Length)!=Length) return RDSize; if(WriteMemory(DesAddr+RDSize,Buffer,Length)!=Length) return RDSize; RDSize+=Length; if(Sizesizeof(Buffer)) return -1; for(ULPOS Pos=0;PosSectMaxPos) { LSize=Length-Pos; if(LSize>sizeof(Buffer)) LSize=sizeof(Buffer); RDAddr=Address+Pos; RDSize=LSize; SectPos=Pos; RDSize = ReadMemory(RDAddr,Buffer,RDSize); if(RDSize==0) { Pos = (RDAddr&0xFFFFF000)+0x1000; Pos -= Address; Pos -= 1; SectMaxPos=Pos+RDSize; continue; } SectMaxPos=Pos+RDSize; } if(bCase) { if(memcmp(&Buffer[Pos-SectPos],ByteCode,Size)==0) return Pos+Address; } else { if(TMemICmp(&Buffer[Pos-SectPos],ByteCode,Size)==0) return Pos+Address; } } return -1; } bool CDebugger::SetSingleStep() { return true; } bool CDebugger::RemoveSingleStep() { return true; } bool CDebugger::UpdateRegister() { return true; } bool CDebugger::SaveRegister() { return true; } bool CDebugger::SetCodeBreakPoint(BREAK_POINT&BP) { return true; } bool CDebugger::ClearCodeBreakPoint(BREAK_POINT&BP) { return true; } bool CDebugger::SetDataBreakPoint(BREAK_POINT&BP) { return true; } bool CDebugger::ClearDataBreakPoint(BREAK_POINT&BP) { return true; } bool CDebugger::MapToPhysAddr(ULPOS Address,ULONGLONG&PhysAddr) { PhysAddr = Address; return true; } bool CDebugger::SwitchProcessSpace(UINT PID) { return true; } void CDebugger::RestoreProcessSpace() { } bool CDebugger::ContinueDebug(bool bRestoreScreen) { return false; } CDebugInterface::CDebugInterface() { m_TraceType = TRACE_NULL; m_TraceCount = 0; m_RangeStart = 0; m_RangeEnd = 0; } bool CDebugInterface::IsHandledTraceEvent() { ULPOS EIP; //char szBuffer[256]; switch(m_TraceType) { case TRACE_NULL: return true; case TRACE_STEP_RANGE_IN: EIP =*(GetCurrentDebugger()->m_pExecutePoint); if(EIP >= m_RangeStart && EIP < m_RangeEnd) { ResetTrace(); return true; } else { RunCmd("T"); } break; case TRACE_STEP_RANGE_OUT: EIP =*(GetCurrentDebugger()->m_pExecutePoint); if(EIP < m_RangeStart || EIP >= m_RangeEnd) { ResetTrace(); return true; } else { RunCmd("T"); } break; case TRACE_PROCEED_STEP_RANGE_IN: EIP =*(GetCurrentDebugger()->m_pExecutePoint); if(EIP >= m_RangeStart && EIP < m_RangeEnd) { ResetTrace(); return true; } else { RunCmd("P"); } break; case TRACE_PROCEED_STEP_RANGE_OUT: EIP =*(GetCurrentDebugger()->m_pExecutePoint); if(EIP < m_RangeStart || EIP >= m_RangeEnd) { ResetTrace(); return true; } else { RunCmd("P"); } break; case TRACE_STEP_COUNT: m_TraceCount--; if(m_TraceCount<=0) { ResetTrace(); return true; } else { RunCmd("T"); } break; case TRACE_PROCEED_STEP_COUNT: m_TraceCount--; if(m_TraceCount<=0) { ResetTrace(); return true; } else { RunCmd("P"); } break; case TRACE_CONDITION: UpdateTraceConditionVal(); if(TestCondition(m_strTraceCondition)) { ResetTrace(); return true; } else { m_TraceCount++; if(m_TraceCount>=MAX_CONDITION_INSTR_COUNT) { ResetTrace(); return false; } RunCmd("T"); } break; case TRACE_PROCEED_CONDITION: UpdateTraceConditionVal(); if(TestCondition(m_strTraceCondition)) { ResetTrace(); return true; } else { m_TraceCount++; if(m_TraceCount>=MAX_CONDITION_INSTR_COUNT) { ResetTrace(); return false; } RunCmd("P"); } break; case TRACE_PAGE_RANGE_BREAK: return CalcPageRangeCondition(); case TRACE_X86_RET_BREAK: { BYTE Opcode; ULPOS EIP =*(GetCurrentDebugger()->m_pExecutePoint); if(m_pCodeDoc->ReadImage(EIP,&Opcode,sizeof(Opcode))) { switch(Opcode) { case 0xC3://ret case 0xC2://ret imm case 0xCB://retf case 0xCA://retf imm case 0xCF://iret ResetTrace(); return true; } } m_TraceCount++; if(m_TraceCount>=MAX_CONDITION_INSTR_COUNT) { ResetTrace(); return false; } RunCmd("P"); } break; case TRACE_RECOVER_BREAK_POINT: ResetTrace(); break; } return false; } void CDebugInterface::SetTraceRange(ULPOS RangeStart,ULPOS RangeEnd,bool bRangeIn) { m_TraceType = bRangeIn ? TRACE_STEP_RANGE_IN : TRACE_STEP_RANGE_OUT; m_RangeStart = RangeStart; m_RangeEnd = RangeEnd; } void CDebugInterface::SetProceedRange(ULPOS RangeStart,ULPOS RangeEnd,bool bRangeIn) { m_TraceType = bRangeIn ? TRACE_PROCEED_STEP_RANGE_IN : TRACE_PROCEED_STEP_RANGE_OUT; m_RangeStart = RangeStart; m_RangeEnd = RangeEnd; } void CDebugInterface::SetTraceCondition(PCSTR szTraceCondition) { m_TraceType = TRACE_CONDITION; m_strTraceCondition = szTraceCondition; m_TraceCount = 0; } void CDebugInterface::SetTraceProceedCondition(PCSTR szTraceCondition) { m_TraceType = TRACE_PROCEED_CONDITION; m_strTraceCondition = szTraceCondition; m_TraceCount = 0; } void CDebugInterface::SetTraceCount(int StepCount) { m_TraceType = TRACE_STEP_COUNT; m_TraceCount = StepCount; } void CDebugInterface::SetTracePageRangeCondition(DWORD dwPageCR2,DWORD dwPageEIP) { m_TraceType = TRACE_PAGE_RANGE_BREAK; m_PageCR2=dwPageCR2; m_PageEIP=dwPageEIP; } bool CDebugInterface::CalcPageRangeCondition() { return true; } void CDebugInterface::SetProceedCount(int StepCount) { m_TraceType = TRACE_PROCEED_STEP_COUNT; m_TraceCount = StepCount; } void CDebugInterface::SetX86RetBreak(CDebugger*pDbg) { m_TraceType = TRACE_X86_RET_BREAK; m_TraceCount = 0; m_TraceDebugger = pDbg; } void CDebugInterface::ResetTrace() { m_TraceType = TRACE_NULL; m_TraceCount = 0; m_RangeStart = m_RangeEnd = 0; m_strTraceCondition.Empty(); } ================================================ FILE: Project/EXEAnalyzer/Source/Debugger.h ================================================ #ifndef _DEBUGGER_H_ #define _DEBUGGER_H_ enum BP_STATE { BP_STATE_DISABLE=0, //Ч BP_STATE_ENABLE, //Ч BP_STATE_RECOV, //ҪָĶϵ BP_STATE_RECOV_COPY_ON_WRITE, //ַıҪָĶϵ BP_REV_BPR_TYPE = 0x40000000, //Ҫָ BPR ͵Ķϵ㣬Ҫҳ P BP_SET_BPR_TYPE = 0x80000000 //Ѿ BPR ͵Ķϵ }; typedef struct _BP_RANGE_INFO { DWORD RangeStartAddress; DWORD RangeLength; DWORD State; DWORD Type; //1 read ,2 write, 4 execute read and write DWORD PTEAddress; WORD PTESize; WORD PTECount; DWORD PageSize; CStrA Condition; //ڶϵʱȽ CStrA DoCmd; //ʱִе }BP_RANGE_INFO; struct MODULE_BP { CIStrA ModuleFileName; CStrA Condition; CStrA Name; CStrA DoCmd; //ʱִе BP_STATE State; }; typedef struct _BREAK_POINT { CStrA Name; //ʾ CStrA Description; //,ݶϵRW,W,X CStrA Condition; //ڶϵʱȽ CStrA OwnerName; //ʾ CStrA DoCmd; //ʱִе UINT BPCount; //ϵ㱻ִеĴֻҪϵ㱻ִеǷΪ ULPOS Address; //ϵַ UINT PID; //ID BP_STATE State; //ϵ״̬ UINT Type; //ϵ UINT Length; //ϵ㳤,ݶϵ NUM_PTR UserData; //Զ,PatchϵPatchָ MODULE_BP* pModuleBP; BYTE CodeBackup; }BREAK_POINT,*PBREAK_POINT; typedef TMap CCodeBPMap; typedef TMap CModuleBPMap; typedef TList CDataBPList; #define BP_TYPE_HARDWARE 0x00000001 #define BP_TYPE_EXECUTE 0x00000002 //Ӳִжϵ #define BP_TYPE_WRITE 0x00000004 #define BP_TYPE_READ 0x00000008 #define BP_TYPE_READWRITE (BP_TYPE_WRITE|BP_TYPE_READ) #define BP_TYPE_IO_WRITE 0x00000010 #define BP_TYPE_IO_READ 0x00000020 #define BP_TYPE_IO_READWRITE (BP_TYPE_IO_READ|BP_TYPE_IO_WRITE) #define BP_TYPE_PATCH 0x00000100 #define BP_TYPE_DEBUG 0x00000200 #define BP_TYPE_ONCE 0x00000400 #define BP_TYPE_FULL_CMP 0x80000000 #define BP_TYPE_INC_ALL 0x00000000 #define BP_TYPE_EXC_NON 0x00000000 enum { DEBUG_PLUNGE_OTHER, DEBUG_PLUNGE_BREAK_POINT, DEBUG_PLUNGE_HARD_BREAK_POINT, DEBUG_PLUNGE_STEP, DEBUG_PLUNGE_EXCEPTION, DEBUG_PLUNGE_USER_BREAK, }; enum TRACE_TYPE { TRACE_NULL, TRACE_STEP_RANGE_IN, TRACE_STEP_RANGE_OUT, TRACE_PROCEED_STEP_RANGE_IN, TRACE_PROCEED_STEP_RANGE_OUT, TRACE_STEP_COUNT, TRACE_PROCEED_STEP_COUNT, TRACE_CONDITION, TRACE_PROCEED_CONDITION, TRACE_X86_RET_BREAK, TRACE_PAGE_RANGE_BREAK, TRACE_RECOVER_BREAK_POINT, //ָ int3 ϵ TRACE_MAX_COUNT }; class CDebugger; class CCodeDoc; class CSymbolContainer; class CCommentContainer; bool IsTypeMatched(UINT TypeInc,UINT TypeExc,BREAK_POINT&BP); class CDebugInterface//ṩCDebuggerĻصӿں { friend class CDebugger; public: CCodeDoc* m_pCodeDoc; CSymbolContainer* m_pSymbolContainer; CCommentContainer* m_pCommentContainer; public: CDebugInterface(); virtual void OnLoadModule(CDebugger*pDbgProc,PCSTR szFileName,ULPOS ModuleBase,ULSIZE ModuleSize,MODULE_ID ModuleID)=0; virtual void OnUnloadModule(CDebugger*pDbgProc,ULPOS ModuleBase)=0; ////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////// virtual void UpdateTraceConditionVal(){}; virtual bool OnDebugTerminate(bool bCloseDoc)=0; virtual bool OnDebugPlunge(UINT PlungeType)=0; virtual bool OnDebugTerminateMultiThread(bool bCloseDoc)=0; //е߳ virtual bool OnDebugPlungeMultiThread(UINT PlungeType)=0; //е߳ virtual void DisplayMsg(PCSTR szMessage){} virtual void UpdateContext(){} virtual bool TestCondition(PCSTR szCondition,PBREAK_POINT pBP=NULL){return true;} virtual bool RunCmd(PCSTR szCmd){return false;} virtual void RunCmdList(PCSTR szCmd){} public://Trace virtual bool IsHandledTraceEvent(); virtual void SetTraceRange(ULPOS RangeStart,ULPOS RangeEnd,bool bRangeIn = false); virtual void SetProceedRange(ULPOS RangeStart,ULPOS RangeEnd,bool bRangeIn = false); virtual void SetTraceCondition(PCSTR szTraceCondition); virtual void SetTraceProceedCondition(PCSTR szTraceCondition); virtual void SetTracePageRangeCondition(DWORD dwPageCR2,DWORD dwPageEIP); virtual void SetTraceCount(int StepCount); virtual void SetProceedCount(int StepCount); virtual void SetX86RetBreak(CDebugger*pDbg); virtual void ResetTrace(); virtual bool CalcPageRangeCondition(); virtual CDebugger*GetCurrentDebugger()=0; CStrA m_strTraceCondition; CDebugger* m_TraceDebugger; int m_TraceCount; TRACE_TYPE m_TraceType; ULPOS m_RangeStart; ULPOS m_RangeEnd; ULPOS m_PageCR2;//Ҫ BPR ڴ淶ΧϵʹáȱҳжϷʱȱҳַ ULPOS m_PageEIP;//Ҫ BPR ڴ淶ΧϵʹáȱҳжϷʱEIPֵ }; enum { BP_ERROR_SUCCESS = 0, BP_ERROR_SWITCH_PROCESS, BP_ERROR_MAP_TO_PHYS, BP_ERROR_BP_EXIST, BP_ERROR_BP_NOT_EXIST, BP_ERROR_FAIL_TO_SET, BP_ERROR_FAIL_TO_CLEAR, }; class CDebugger { public: CDebugger(); virtual ~CDebugger(); public: /////////////////////////////////////////////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////////////////////////////////////////// virtual bool Init(CDebugInterface*pDebugInterface);//ʼDebug virtual void Release();//ͷDebug virtual bool Open(PCSTR ModuleName); virtual bool Close(); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //ڴ virtual ULSIZE WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size); //дڴ virtual ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size); //ڴ virtual ULSIZE MoveMem(ULPOS DesAddr,ULPOS SrcAddr,ULSIZE Size); //ڽ̿ռƶ virtual ULSIZE CmpMem(ULPOS DesAddr,ULPOS SrcAddr,ULSIZE Size); //ڿռڱȽڴ virtual ULPOS SearchMem(ULPOS Address,ULSIZE Length,BYTE*ByteCode,ULSIZE Size,bool bCase = true); static ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size,void*Param); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Ĵ virtual bool UpdateRegister(); //¼Ĵ virtual bool SaveRegister(); //ıĴ /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //ϵ virtual bool SetCodeBreakPoint(BREAK_POINT&BP); //ôϵ virtual bool ClearCodeBreakPoint(BREAK_POINT&BP); //ϵ virtual bool SetDataBreakPoint(BREAK_POINT&BP); //ݶϵ virtual bool ClearDataBreakPoint(BREAK_POINT&BP); //ݶϵ /////////////////////////////////////////////////////////////////////////////////////////////////////////////// // virtual bool MapToPhysAddr(ULPOS Address,ULONGLONG&PhysAddr); virtual bool SwitchProcessSpace(UINT PID); //лָ̿ռ virtual void RestoreProcessSpace(); //ָ̿ռ /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Կ virtual bool SetSingleStep(); //õϵ virtual bool RemoveSingleStep(); //ȥϵ virtual bool ContinueDebug(bool bRestoreScreen = true); // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Code BP virtual BREAK_POINT*GetCodeBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual BREAK_POINT*InsertCodeBP(ULPOS Address,UINT Type,BP_STATE State = BP_STATE_ENABLE); virtual bool RemoveCodeBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual bool RemoveCodeBP(BREAK_POINT*pBP); virtual int RemoveAllCodeBP(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual int EnableAllCodeBP(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual int DisableAllCodeBP(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual bool EnableCodeBP(BREAK_POINT*pBP); virtual bool EnableCodeBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual bool DisableCodeBP(BREAK_POINT*pBP); virtual bool DisableCodeBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Data BP virtual int GetDataBPList(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON,TList*pList = NULL); virtual BREAK_POINT*InsertDataBP(ULPOS Address,UINT Type,BP_STATE State,UINT Length); virtual int RemoveDataBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual bool RemoveDataBP(BREAK_POINT*pBP); virtual int RemoveAllDataBP(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual int EnableAllDataBP(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual int DisableAllDataBP(UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual bool EnableDataBP(BREAK_POINT*pBP); virtual int EnableDataBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); virtual bool DisableDataBP(BREAK_POINT*pBP); virtual int DisableDataBP(ULPOS Address,UINT TypeInc = BP_TYPE_INC_ALL,UINT TypeExc = BP_TYPE_EXC_NON); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// private: CCodeBPMap m_CodeBPMap; CDataBPList m_DataBPList; public: UINT m_PID; CStrA m_ProcName; ULPOS* m_pExecutePoint; CDebugInterface* m_pDebugInterface; CDbgModuleList m_ModuleList; CCodeBPMap* m_pCodeBPMap; CDataBPList* m_pDataBPList; UINT m_LastError; }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/ELFFile.cpp ================================================ #include "StdAfx.h" #include "ELFFile.h" CELFFile::CELFFile() { m_FileType = FILE_TYPE_ELF; m_PrgSeg = NULL; m_Section = NULL; m_SectCount = m_PrgSegCount = 0; } CELFFile::~CELFFile() { } bool CELFFile::Open(PCSTR FileName,HANDLE*pHandleOpen) { if(CImageFile::Open(FileName,pHandleOpen)==false) goto ErrorExit; if(ReadFile(0,&m_ELFHeader,sizeof(m_ELFHeader))==false) goto ErrorExit; if(m_ELFHeader.e_ehsize!=sizeof(ELF_HEADER)) goto ErrorExit; if(memcmp(m_ELFHeader.e_ident,"\177ELF",4)) goto ErrorExit; m_SectCount = (int)m_ELFHeader.e_shnum; MAX_LIMIT(m_SectCount,MAX_SECTION_COUNT); if(m_SectCount) { m_Section = new ELF_SECTION[m_SectCount]; if(ReadFile(m_ELFHeader.e_shoff,m_Section,sizeof(ELF_SECTION)*m_SectCount)==false) goto ErrorExit; } m_PrgSegCount = (int)m_ELFHeader.e_phnum; MAX_LIMIT(m_PrgSegCount,MAX_SEGMENT_COUNT); if(m_PrgSegCount) { m_PrgSeg = new ELF_PRG_SEG[m_PrgSegCount]; if(ReadFile(m_ELFHeader.e_phoff,m_PrgSeg,sizeof(ELF_PRG_SEG)*m_PrgSegCount)==false) goto ErrorExit; } return true; ErrorExit: Close(); return false; } void CELFFile::Close() { SafeDelete(m_PrgSeg); SafeDelete(m_Section); m_SectCount = m_PrgSegCount = 0; CImageFile::Close(); } void CELFFile::DumpInfo() { int n; printf("FileName %s\n",m_ImageName); printf("ELF Header\n"); printf("e_type = %04X\n",m_ELFHeader.e_type); printf("e_machine = %04X\n",m_ELFHeader.e_machine); printf("e_version = %08X\n",m_ELFHeader.e_version); printf("e_entry = %08X\n",m_ELFHeader.e_entry); printf("e_phoff = %08X\n",m_ELFHeader.e_phoff); printf("e_shoff = %08X\n",m_ELFHeader.e_shoff); printf("e_flags = %08X\n",m_ELFHeader.e_flags); printf("e_ehsize = %04X\n",m_ELFHeader.e_ehsize); printf("e_phentsize = %04X\n",m_ELFHeader.e_phentsize); printf("e_phnum = %04X\n",m_ELFHeader.e_phnum); printf("e_shentsize = %04X\n",m_ELFHeader.e_shentsize); printf("e_shnum = %04X\n",m_ELFHeader.e_shnum); printf("e_shstrndx = %04X\n",m_ELFHeader.e_shstrndx); printf("Program Segment\n"); printf("PrgType PhysAddr VirtAddr FileOff Size\n"); for(n=0;n #include #define WIN_PE64 0 #define WIN_PE32 1 extern unsigned char grawData_pe32[512]; extern unsigned char grawData_pe64[512]; using namespace std; #define StreamObject CMemoryStream int create_pe_file(const char* dirname,int mode); XSCAN_RES dump_hex(CFileIO*pFileIO,PCSTR filename,ULSIZE FileSize,void*CBParam); class CStream; int OutBinCodeWithOutPrefix_ib_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix); typedef int (*OUTPUT_BIN_FP)(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_ib_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int opcode_creater_without_rm_id(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix); int opcode_creater_without_rm_iw(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix); int OutBinCodeWithPrefix_ib_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_ib_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_ib_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_iz_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_iv_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix); int OutBinCodeWithPrefix_iz_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix); #define OutBinCodeWithPrefix_iv_for_Normal OutBinCodeWithPrefix_iz_for_Normal extern unsigned char rawdata[512]; int main1(int argc, char* argv[]); XSCAN_RES dump_asm_and_hex(CFileIO*pFileIO,PCSTR filename,ULSIZE FileSize,void*CBParam); enum{ RM_0_4, RM_0_3, RM_4, }; int opcode_creater(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix,int defaulttype=RM_0_4); int opcode_creater_without_rm(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix); int opcode_creater_2(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix,int defaulttype=RM_0_4,unsigned int mask=0XFFFFFFFF); class CStream { public: CStream(){} virtual ~CStream(){} virtual int Write(void* Buffer,int Len)=0; virtual int Write(void* Buffer,int Len,int Pos)=0; virtual int GetSize()const =0; virtual void Flush()=0; virtual int WriteString(char* Buffer) { int Len = strlen(Buffer); return Write(Buffer,Len); } }; class CFileStream: public CStream { public: ~CFileStream() { Flush(); fclose(m_fp); } CFileStream(const char* name,const char* mode="wb") { m_fp=fopen(name,mode); } int Write(void* Buffer,int Len) { fwrite(Buffer,Len,1,m_fp); return Len; } int Write(void* Buffer,int Len,int Pos) { long oldpos=ftell(m_fp); fseek(m_fp,Pos,SEEK_SET); Write(Buffer,Len); fseek(m_fp,oldpos,SEEK_SET); return Len; } int GetSize()const{return 0;}; void Flush() { fflush(m_fp); } private: FILE* m_fp; }; class CMemoryStream: public CFileStream { public: CMemoryStream(const char* name,const char* mode="wb"):CFileStream(name,mode) { m_CurPos=0; m_Length=0x100000*110; m_Buffer=new char[m_Length]; } ~CMemoryStream() { if(m_CurPos) CFileStream::Write(m_Buffer,m_CurPos); if(m_Buffer) delete m_Buffer; } int Write(void* Buffer,int Len) { if(Len+m_CurPosm_Length) CFileStream::Write(Buffer,Len); else { memcpy(m_Buffer+m_CurPos,Buffer,Len); m_CurPos=Len; } } return Len; } int Write(void* Buffer,int Len,int Pos) { memcpy(m_Buffer+Pos,Buffer,Len); return Len; } int GetSize()const{return 0;}; void Flush() { if(m_CurPos) CFileStream::Write(m_Buffer,m_CurPos); CFileStream::Flush(); } private: char* m_Buffer; int m_CurPos; int m_Length; }; enum { IDA_OUTPUT, DUMPBIN_OUTPUT, }; typedef struct _CB_PARAM { int type; char* dirname; char* hexdirname; int mode; }CB_PARAM; int main(int argc, char*agv[]) { #if 0 main1(argc,agv); #else DWORD dwBegin=GetTickCount(); CB_PARAM cb={IDA_OUTPUT,"c:\\disasm_test\\syser_test","c:\\disasm_test\\syser_hex",WIN_PE32}; char dirname[512]="c:\\disasm_test\\exe_sample\\*.exe"; create_pe_file("c:\\disasm_test\\exe_sample",WIN_PE32); create_pe_file("c:\\disasm_test\\exe_sample",WIN_PE64); printf("%d\n",GetTickCount()-dwBegin); gpFileIO->XScan(dirname,dump_asm_and_hex,&cb); //gpFileIO->XScan(dirname,dump_hex,&cb); #endif return 0; } int main1(int argc, char* argv[]) { char CodeBuffer[16]={0x0f, 0xae, 0x38, 0x04, 0x0d, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }; int nLen2=0; INSTRUCTION_INFORMATION InstInfo; char buffer[1024]; memset(&InstInfo,0,sizeof(InstInfo)); InstInfo.pasm=buffer; unsigned long long dwEip=0x140008000ll; memset(&InstInfo,0,sizeof(InstInfo)); nLen2=Disassembly(&InstInfo,(BYTE*)CodeBuffer,dwEip,BIT64,NULL); if(nLen2) { InstInfo.pasm=buffer; PrintPasmForIDA(&InstInfo,buffer,0,0); dwEip+=nLen2; printf("\t\t%-50s",InstInfo.pasm); for(int q=0;qmode; char* dirname=(char*)pCb->dirname; HANDLE hFile; gpFileIO->OpenFile(filename,&hFile); unsigned long size=FileSize; unsigned char *CodeBuffer=new unsigned char[size]; gpFileIO->ReadFile(hFile,CodeBuffer,size,0); gpFileIO->CloseHandle(hFile); int nLen2=0; INSTRUCTION_INFORMATION InstInfo; char buffer[1024]; memset(&InstInfo,0,sizeof(InstInfo)); InstInfo.U_x1=13; InstInfo.pasm=buffer; unsigned long long dwEip=0x140001000ll; int n=size; int i=0x2a00; char WriteBuffer[1024]; char filetitle[512]; TGetFileTitle(filename,filetitle); if(TStrStr(filename,"_win32_")) mode=WIN_PE32; else mode=WIN_PE64; sprintf(hexfilename,"%s\\%s.hex",pCb->hexdirname,filetitle); StreamObject HexStream(hexfilename,"wt"); printf("Create asm file for %s (%s)\n",filename,mode==WIN_PE32?"WIN32":"WIN64"); for(i=0x200;itype!=IDA_OUTPUT) { InstInfo.pasm=buffer; PrintPasm(&InstInfo,buffer,0,12); } else { InstInfo.pasm=buffer; PrintPasmForIDA(&InstInfo,buffer,0,0); } if(nLen2) { dwEip+=nLen2; strcpy(WriteBuffer,InstInfo.pasm); int n=0; n=sprintf(WriteBuffer,"%llx ",dwEip); HexStream.Write(WriteBuffer,n); HexStream.WriteString(InstInfo.pasm); HexStream.WriteString(" ("); n=0; for(int j=0;jmode; char* dirname=(char*)pCb->dirname; HANDLE hFile; gpFileIO->OpenFile(filename,&hFile); unsigned long size=FileSize; unsigned char *CodeBuffer=new unsigned char[size]; gpFileIO->ReadFile(hFile,CodeBuffer,size,0); gpFileIO->CloseHandle(hFile); int nLen2=0; INSTRUCTION_INFORMATION InstInfo; char buffer[1024]; memset(&InstInfo,0,sizeof(InstInfo)); InstInfo.U_x1=13; InstInfo.pasm=buffer; unsigned long long dwEip=0x140001000ll; int n=size; int i=0x2a00; char WriteBuffer[1024]; char filetitle[512]; TGetFileTitle(filename,filetitle); if(TStrStr(filename,"_win32_")) mode=WIN_PE32; else mode=WIN_PE64; sprintf(asmfilename,"%s\\%s.txt",dirname,filetitle); sprintf(hexfilename,"%s\\%s.hex",pCb->hexdirname,filetitle); StreamObject TxtStream(asmfilename,"wt"); StreamObject HexStream(hexfilename,"wt"); printf("Create asm file for %s (%s)\n",filename,mode==WIN_PE32?"WIN32":"WIN64"); for(i=0x200;itype!=IDA_OUTPUT) { InstInfo.pasm=buffer; PrintPasm(&InstInfo,buffer,0,12); } else { InstInfo.pasm=buffer; PrintPasmForIDA(&InstInfo,buffer,0,0); } if(nLen2) { strcpy(WriteBuffer,InstInfo.pasm); TxtStream.WriteString(WriteBuffer); TxtStream.Write("\n",1); int n=0; n=sprintf(WriteBuffer,"%llx ",dwEip); HexStream.Write(WriteBuffer,n); HexStream.WriteString(InstInfo.pasm); HexStream.WriteString(" ("); n=0; for(int j=0;jWrite(rawdata,512); if((opcode_with_00_rm[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_with_00_rm[i],3,0x66); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_with_00_rm[i],3,0x66); } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_with_00_rm[i],opcodelen,0x66); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_with_00_rm[i],opcodelen,0x66); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_with_66_rm[]={ 0x00,0x01,0x02,0x03, 0x10,0x11,0x12,0x13, 0x20,0x21,0x22,0x23, 0x30,0x31,0x32,0x33, 0x84,0x85,0x86,0x87, 0x63, 0x08,0x09,0x0a,0x0b, 0x18,0x19,0x1a,0x1b, 0x28,0x29,0x2a,0x2b, 0x38,0x39,0x3a,0x3b, 0x88,0x89,0x8a,0x8b,0x8c,0x8e, 0x0d0f, 0x100f,0x110f,0x140f,0x150f,0x1f0f, 0x020f,0x030f, 0x400f,0x410f,0x420f,0x430f,0x440f,0x450f,0x460f,0x470f,0x480f,0x490f,0x4a0f,0x4b0f,0x4c0f,0x4d0f,0x4e0f,0x4f0f, 0x510f,0x540f,0x550f,0x560f,0x570f, 0x600f,0x610f,0x620f,0x630f,0x640f,0x650f,0x660f,0x670f, 0x740f,0x750f,0x760f, 0x280f,0x290f,0x2a0f,0x2c0f,0x2d0f,0x2e0f,0x2f0f, 0x580f,0x590f,0x5a0f,0x5b0f,0x5c0f,0x5d0f,0x5e0f,0x5f0f, 0x680f,0x690f,0x6a0f,0x6b0f,0x6c0f,0x6d0f,0x6e0f,0x6f0f, 0x7c0f,0x7d0f,0x7e0f,0x7f0f, 0xab0f,0xaf0f,0xa30f,0xa50f, 0xb00f,0xb10f,0xb30f,0xb60f,0xb70f, 0xbb0f,0xbc0f,0xbd0f,0xbe0f,0xbf0f, 0xc00f,0xc10f, 0xd00f,0xd10f,0xd20f,0xd30f,0xd40f,0xd50f,0xd60f, 0xe00f,0xe10f,0xe20f,0xe30f,0xe40f,0xe50f,0xe60f, 0xf10f,0xf20f,0xf30f,0xf40f,0xf50f,0xf60f, 0xd80f,0xd90f,0xda0f,0xdb0f,0xdc0f,0xdd0f,0xde0f,0xdf0f, 0xe80f,0xe90f,0xea0f,0xeb0f,0xec0f,0xed0f,0xee0f,0xef0f, 0xf80f,0xf90f,0xfa0f,0xfb0f,0xfc0f,0xfd0f,0xfe0f, 0x00380f,0x01380f,0x02380f,0x03380f,0x04380f,0x05380f,0x06380f,0x07380f,0x08380f, 0x10380f,0x14380f,0x15380f,0x17380f, 0x20380f,0x21380f,0x22380f,0x23380f,0x24380f,0x25380f, 0x30380f,0x31380f,0x32380f,0x33380f,0x34380f,0x35380f,0x37380f, 0x40380f,0x41380f, 0x08380f,0x09380f,0x0a380f,0x0b380f, 0x1c380f,0x1d380f,0x1e380f, 0x28380f,0x29380f,0x2b380f, 0x38380f,0x39380f,0x3a380f,0x3b380f,0x3c380f,0x3d380f,0x3e380f,0x3f380f, 0xdb380f,0xdc380f,0xdd380f,0xde380f,0xdf380f, 0x143a0f,0x153a0f,0x163a0f,0x173a0f,//ida 0x153a0f bug //0x143a0f,0x153a0f,0x163a0f 0x203a0f,0x223a0f 0x203a0f,0x213a0f,0x223a0f, 0x403a0f,0x413a0f,0x423a0f,0x443a0f, 0x603a0f,0x613a0f,0x623a0f,0x633a0f, 0x083a0f,0x093a0f,0x0a3a0f,0x0b3a0f,0x0c3a0f,0x3d3a0f,0x0e3a0f,0x0f3a0f, 0xdf3a0f, }; for(int i = 0 ; iWrite(rawdata,512); if((opcode_with_66_rm[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_with_66_rm[i],3,0x66); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_with_66_rm[i],3,0x66); } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_with_66_rm[i],opcodelen,0x66); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_with_66_rm[i],opcodelen,0x66); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_with_f2_rm[]={ 0x100f,0x110f,0x120f, 0x510f, 0x2a0f,0x2c0f,0x2d0f, 0x580f,0x590f,0x5a0f,0x5c0f,0x5d0f,0x5f0f, 0x7c0f,0x7d0f, 0xd00f,0xe60f, 0xf0380f,0xf1380f, }; for(int i = 0 ; iWrite(rawdata,512); if((opcode_with_f2_rm[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_with_f2_rm[i],3,0xf2); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_with_f2_rm[i],3,0xf2); } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_with_f2_rm[i],opcodelen,0xf2); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_with_f2_rm[i],opcodelen,0xf2); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_with_f3_rm[]={ 0x160f,0x100f,0x110f,0x120f, 0x510f,0x520f,0x530f, 0x2a0f,0x2c0f,0x2d0f, 0x580f,0x590f,0x5a0f,0x5b0f,0x5c0f,0x5d0f,0x5e0f,0x5f0f, 0x6f0f, 0x7e0f,0x7f0f, 0xb80f, 0xe60f, 0x160f,0x520f,0x530f,0x5b0f,0x6f0f,0x7e0f,0x7f0f }; for(int i = 0 ; iWrite(rawdata,512); if((opcode_with_f3_rm[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_with_f3_rm[i],3,0xf3); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_with_f3_rm[i],3,0xf3); } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_with_f3_rm[i],opcodelen,0xf3); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_with_f3_rm[i],opcodelen,0xf3); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } //only support memory address mode int opcode_memory_prefix_00_[]= { 0xf0380f,0xf1380f,0xe70f,0xb20f,0xb40f,0xb50f,0x2b0f,0x170f,0x130f,0xc30f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_memory_prefix_00_[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_memory_prefix_00_[i],opcodelen,0x00,RM_0_3); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_memory_prefix_00_[i],opcodelen,0x00,RM_0_3); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_memory_prefix_00_[i],opcodelen,0x00,RM_0_3); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_memory_prefix_00_[i],opcodelen,0x00,RM_0_3); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_memory_prefix_00_66[]= { 0xf0380f,0xf1380f,0xe70f,0xb20f,0xb40f,0xb50f,0x2b0f,0x170f,0x130f,0x160f,0x120f,0x2a380f,0x80380f,0x81380f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_memory_prefix_00_66[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_memory_prefix_00_66[i],opcodelen,0x66,RM_0_3); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_memory_prefix_00_66[i],opcodelen,0x66,RM_0_3); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_memory_prefix_00_66[i],opcodelen,0x66,RM_0_3); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_memory_prefix_00_66[i],opcodelen,0x66,RM_0_3); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_memory_prefix_00_f2_[]= { 0xf00f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_memory_prefix_00_f2_[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_memory_prefix_00_f2_[i],opcodelen,0xf2,RM_0_3); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_memory_prefix_00_f2_[i],opcodelen,0xf2,RM_0_3); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_memory_prefix_00_f2_[i],opcodelen,0xf2,RM_0_3); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_memory_prefix_00_f2_[i],opcodelen,0xf2,RM_0_3); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_reg_prefix_00_[]= { 0x500f,0xd70f,0xf70f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_reg_prefix_00_[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_reg_prefix_00_[i],opcodelen,0x00,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_reg_prefix_00_[i],opcodelen,0x00,RM_4); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_reg_prefix_00_[i],opcodelen,0x00,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_reg_prefix_00_[i],opcodelen,0x00,RM_4); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_reg_prefix_66[]= { 0x500f,0xd70f,0xf70f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_reg_prefix_66[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_reg_prefix_66[i],opcodelen,0x66,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_reg_prefix_66[i],opcodelen,0x66,RM_4); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_reg_prefix_66[i],opcodelen,0x66,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_reg_prefix_66[i],opcodelen,0x66,RM_4); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_reg_prefix_f2_[]= { 0xd60f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_reg_prefix_f2_[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_reg_prefix_f2_[i],opcodelen,0xf2,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_reg_prefix_f2_[i],opcodelen,0xf2,RM_4); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_reg_prefix_f2_[i],opcodelen,0xf2,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_reg_prefix_f2_[i],opcodelen,0xf2,RM_4); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_reg_prefix_f3_[]= { 0xd60f, }; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); if((opcode_reg_prefix_f3_[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_reg_prefix_f3_[i],opcodelen,0xf3,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_reg_prefix_f3_[i],opcodelen,0xf3,RM_4); } } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_Normal,opcode_reg_prefix_f3_[i],opcodelen,0xf3,RM_4); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_for_64,opcode_reg_prefix_f3_[i],opcodelen,0xf3,RM_4); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_rm_ib_00_[]= { 0x6b,0xc20f,0xc60f,0x700f,0xc50f,0x80,0x82,0x83 }; unsigned int opcode_rm_ib_00_prefix[]= { 0x6701,0xf4f36601,0x6701,0xf4f36701,0x6701,0x6701,0x6701,0x6701, }; int opcode_rm_ib_00_rmbyte[]= { (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_4 << 8)|(RM_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), (RM_0_4 << 24)|(RM_0_4 << 16)|(RM_0_4 << 8)|(RM_0_4), }; int mask[4]={0xff000000,0xff0000,0xff00,0xff}; int shift[4]={24,16,8,0}; totalsize=0; for(int i = 0 ; iWrite(rawdata,512); unsigned int val; unsigned int rmbyte; for(int ip=0;ip<4;ip++) { val=opcode_rm_ib_00_prefix[i]; val=((val&mask[ip])>>shift[ip])-1; if(val==-1) continue; rmbyte=opcode_rm_ib_00_rmbyte[i]; rmbyte=((rmbyte&mask[ip])>>shift[ip]); totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_rm_ib_00_[i],opcodelen,0,rmbyte); if(mode==WIN_PE64) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_rm_ib_00_[i],opcodelen,0,rmbyte); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } { totalsize=0; sprintf(filename,"%s\\%s0xc8-0xcf.exe",dirname,nameprefix); StreamObject* Stream=new CMemoryStream(filename,"wb"); printf("create %s\n",filename); Stream->Write(rawdata,512); for(int i=0xc8;i<0xd0;i++) { int iii; iii=(i<<8)|0x0f; if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&iii,2,0); totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&iii,2,0x66); } else { totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&iii,2,0); totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&iii,2,0x66); } } for(int i=0x50;i<0x60;i++) { if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0x66); } else { totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0x66); } } for(int i=0x90;i<0x98;i++) { if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0x66); if(i==0x90) totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0xf3); } else { totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0x66); if(i==0x90) totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0xf3); } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } { totalsize=0; sprintf(filename,"%s\\%s0x20-0x25.exe",dirname,nameprefix); StreamObject* Stream=new CMemoryStream(filename,"wb"); printf("create %s\n",filename); Stream->Write(rawdata,512); for(int i=0x20;i<0x27;i++) { if(i==0x25) continue; for(int ii=0xc0;ii<0x100;ii++) { int iii; iii=(i<<8)|0x0f|(ii<<16); if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&iii,3,0); totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&iii,3,0x66); } else { totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&iii,3,0); totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&iii,3,0x66); } } } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } { totalsize=0; sprintf(filename,"%s\\%s0xb0-0xbf.exe",dirname,nameprefix); StreamObject* Stream=new CMemoryStream(filename,"wb"); printf("create %s\n",filename); Stream->Write(rawdata,512); for(int i=0xb0;i<0xb8;i++) { if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_ib_for_64(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_ib_for_64(Stream,(unsigned char*)&i,1,0x66); } else { totalsize+=OutBinCodeWithPrefix_ib_for_Normal(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_ib_for_Normal(Stream,(unsigned char*)&i,1,0x66); } } for(int i=0xb8;i<0xc0;i++) { if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_iv_for_64(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_iv_for_64(Stream,(unsigned char*)&i,1,0x66); } else { totalsize+=OutBinCodeWithPrefix_iv_for_Normal(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_iv_for_Normal(Stream,(unsigned char*)&i,1,0x66); } } for(int i=0x50;i<0x60;i++) { if(mode==WIN_PE64) { totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_for_64(Stream,(unsigned char*)&i,1,0x66); } else { totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0); totalsize+=OutBinCodeWithPrefix_for_Normal(Stream,(unsigned char*)&i,1,0x66); } } int only_Iz[]={0x05,0x15,0x25,0x35,0x0d,0x1d,0x2d,0x3d,0x68,0xa9}; for(int i=0;iWrite(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_with_iz_rm[]={ /*0x69,*/0x81 }; for(int i = 0 ; iWrite(rawdata,512); if((opcode_with_iz_rm[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_iz_for_Normal,opcode_with_iz_rm[i],opcodelen,0x00); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_iz_for_64,opcode_with_iz_rm[i],opcodelen,0x66); } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_iz_for_Normal,opcode_with_iz_rm[i],opcodelen,0x00); if(mode==WIN_PE64) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_iz_for_64,opcode_with_iz_rm[i],opcodelen,0x66); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_with_ib_rm[]={ /*0x69,*/0x80,0x82,0x83 }; for(int i = 0 ; iWrite(rawdata,512); if((opcode_with_ib_rm[i]&0xffff)==0x3a0f) { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_with_ib_rm[i],opcodelen,0x00); if(mode==WIN_PE64 && opcode_with_ib_rm[i]!=0x82) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_with_ib_rm[i],opcodelen,0x66); } else { totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_with_ib_rm[i],opcodelen,0x00); if(mode==WIN_PE64&& opcode_with_ib_rm[i]!=0x82) totalsize += opcode_creater(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_with_ib_rm[i],opcodelen,0x66); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_f6_f7[]={ 0xf6,0xf7 }; for(int i = 0 ; iWrite(rawdata,512); if(opcode_f6_f7[i]==0xf7) { totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_iz_for_Normal,opcode_f6_f7[i],opcodelen,0x00,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_iz_for_64,opcode_f6_f7[i],opcodelen,0x66,RM_0_4,0x1ff); } else { totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_f6_f7[i],opcodelen,0x00,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_f6_f7[i],opcodelen,0x66,RM_0_4,0x1ff); } totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_f6_f7[i],opcodelen,0x00,RM_0_4,0xfcff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_f6_f7[i],opcodelen,0x66,RM_0_4,0xfcff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_fe[]={ 0xfe }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_fe[i],opcodelen,0x00,RM_0_4,0x3ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_fe[i],opcodelen,0x66,RM_0_4,0x3ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_ff[]={ 0xff }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_ff[i],opcodelen,0x00,RM_0_4,0x57ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_ff[i],opcodelen,0x66,RM_0_4,0x57ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0f00[]={ 0x000f }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0f00[i],opcodelen,0x00,RM_0_4,0x3fff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0f00[i],opcodelen,0x00,RM_0_4,0x3fff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0f00[i],opcodelen,0x66,RM_0_4,0x3fff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0f00[i],opcodelen,0x66,RM_0_4,0x3fff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,0x010f,2,0x00,RM_0_3,0xdfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,0x010f,2,0x00,RM_0_3,0xdfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,0x010f,2,0x66,RM_0_3,0xdfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,0x010f,2,0x66,RM_0_3,0xdfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,0x010f,2,0x00,RM_4,0x8603); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,0x010f,2,0x00,RM_4,0x8603); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,0x010f,2,0x66,RM_4,0x8603); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,0x010f,2,0x66,RM_4,0x8603); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,0x010f,2,0x00,RM_4,0x11e); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,0x010f,2,0x00,RM_4,0x11e); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,0x010f,2,0x66,RM_4,0x11e); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,0x010f,2,0x66,RM_4,0x11e); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0fba[]={ 0xba0f }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_0fba[i],opcodelen,0x00,RM_0_4,0xf0ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_0fba[i],opcodelen,0x00,RM_0_4,0xf0ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_0fba[i],opcodelen,0x66,RM_0_4,0xf0ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_0fba[i],opcodelen,0x66,RM_0_4,0xf0ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0fc7[]={ 0xc70f }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0fc7[i],opcodelen,0x00,RM_0_3,0xc2ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0fc7[i],opcodelen,0x00,RM_0_3,0xc2ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0fc7[i],opcodelen,0x66,RM_0_3,0x42ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0fc7[i],opcodelen,0x66,RM_0_3,0x42ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0fc7[i],opcodelen,0xf3,RM_0_3,0x40ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0fc7[i],opcodelen,0xf3,RM_0_3,0x40ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0xc6_0xc7[]={ 0xc6, }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,0xc6,1,0x00,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,0xc6,1,0x00,RM_0_4,0x1ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,0xc6,1,0x66,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,0xc6,1,0x66,RM_0_4,0x1ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_iz_for_Normal,0xc7,1,0x00,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_iz_for_64,0xc7,1,0x00,RM_0_4,0x1ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_iz_for_Normal,0xc7,1,0x66,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_iz_for_64,0xc7,1,0x66,RM_0_4,0x1ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0x710f_720f_730f[]={ 0x710f,0x720f,0x730f, }; int opcode_0x710f_720f_730f_mask[]={ 0x54ff,0x54ff,0x44ff, }; int opcode_0x710f_720f_730f_mask_66[]={ 0x54ff,0x54ff,0xccff, }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_0x710f_720f_730f[i],opcodelen,0x00,RM_4,opcode_0x710f_720f_730f_mask[i]); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_0x710f_720f_730f[i],opcodelen,0x00,RM_4,opcode_0x710f_720f_730f_mask[i]); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_0x710f_720f_730f[i],opcodelen,0x66,RM_4,opcode_0x710f_720f_730f_mask_66[i]); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_0x710f_720f_730f[i],opcodelen,0x66,RM_4,opcode_0x710f_720f_730f_mask_66[i]); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0xae0f[]={ 0xae0f, }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0xae0f[i],opcodelen,0x00,RM_0_3,0xbfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0xae0f[i],opcodelen,0x00,RM_0_3,0xbfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0xae0f[i],opcodelen,0x66,RM_0_3,0xbfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0xae0f[i],opcodelen,0x66,RM_0_3,0xbfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0xae0f[i],opcodelen,0x00,RM_4,0xe0ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0xae0f[i],opcodelen,0x00,RM_4,0xe0ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0xae0f[i],opcodelen,0x66,RM_4,0xe0ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0xae0f[i],opcodelen,0x66,RM_4,0xe0ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0x180f[]={ 0x180f, }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0x180f[i],opcodelen,0x00,RM_0_3,0xfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0x180f[i],opcodelen,0x00,RM_0_3,0xfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0x180f[i],opcodelen,0x66,RM_0_3,0xfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0x180f[i],opcodelen,0x66,RM_0_3,0xfff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } int opcode_0x8f[]={ 0x8f, }; for(int i = 0 ; iWrite(rawdata,512); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0x8f[i],opcodelen,0x00,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0x8f[i],opcodelen,0x00,RM_0_4,0x1ff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0x8f[i],opcodelen,0x66,RM_0_4,0x1ff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0x8f[i],opcodelen,0x66,RM_0_4,0x1ff); Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } #endif int opcode_0xc0_0xc1[]={ 0xc0,0xc1,0xd0,0xd1,0xd2,0xd3 }; for(int i = 0 ; iWrite(rawdata,512); if(opcode_0xc0_0xc1[i]==0xc0 || opcode_0xc0_0xc1[i]==0xc1) { totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_0xc0_0xc1[i],opcodelen,0x00,RM_0_4,0xbfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_0xc0_0xc1[i],opcodelen,0x00,RM_0_4,0xbfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_Normal,opcode_0xc0_0xc1[i],opcodelen,0x66,RM_0_4,0xbfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_ib_for_64,opcode_0xc0_0xc1[i],opcodelen,0x66,RM_0_4,0xbfff); } else { totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0xc0_0xc1[i],opcodelen,0x00,RM_0_4,0xbfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0xc0_0xc1[i],opcodelen,0x00,RM_0_4,0xbfff); totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_Normal,opcode_0xc0_0xc1[i],opcodelen,0x66,RM_0_4,0xbfff); if(mode==WIN_PE64) totalsize += opcode_creater_2(Stream,OutBinCodeWithPrefix_for_64,opcode_0xc0_0xc1[i],opcodelen,0x66,RM_0_4,0xbfff); } Stream->Write(&totalsize,4,0x1c8); newvalue=totalsize + 0x1ff -(totalsize+0x1ff)%0x200; Stream->Write(&newvalue,4,0x1d0); Stream->Write(&newvalue,4,sizecodeoffset); newvalue=(totalsize+0x1000-1)-(totalsize+0x1000-1)%0x1000+0x1000; Stream->Write(&newvalue,4,imagesizeoffset); delete Stream; } return 0; } int OutBinCodeWithPrefix_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; if(Prefix) Totals+=Stream->Write(&Prefix,1); Totals+=Stream->Write(Buf,Len); return Totals; } int OutBinCodeWithPrefix_ib_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned char ibyte[]={0,0x7f,0x80,0xff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&ibyte[i],1); } return Totals; } int OutBinCodeWithPrefix_iw_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned short iword[]={0,0x7fff,0x8000,0xffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&iword[i],2); } return Totals; } int OutBinCodeWithPrefix_id_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned int idword[]={0,0x7fffffff,0x80000000,0xffffffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&idword[i],4); } return Totals; } int OutBinCodeWithPrefix_iz_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned int idword[]={0,0x7fffffff,0x80000000,0xffffffff}; unsigned short iword[]={0,0x7fff,0x8000,0xffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(Buf,Len); if(Prefix==0x66) Totals+=Stream->Write(&iword[i],2); else Totals+=Stream->Write(&idword[i],4); } return Totals; } int OutBinCodeWithPrefix_iq_for_Normal(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned __int64 iqword[]={0,0x7fffffffffffffffll,0x8000000000000000ll,0xffffffffffffffffll}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&iqword[i],1); } return Totals; } int OutBinCodeWithPrefix_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; for(int j=0x40;j<0x50;j++) { if(Prefix) Totals+=Stream->Write(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); } return Totals; } int OutBinCodeWithPrefix_ib_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned char ibyte[]={0,0x7f,0x80,0xff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&ibyte[i],1); } } return Totals; } int OutBinCodeWithPrefix_iw_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned short iword[]={0,0x7fff,0x8000,0xffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&iword[i],2); } } return Totals; } int OutBinCodeWithPrefix_id_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned int idword[]={0,0x7fffffff,0x80000000,0xffffffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&idword[i],4); } } return Totals; } int OutBinCodeWithPrefix_iq_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned __int64 iqword[]={0,0x7fffffffffffffffll,0x8000000000000000ll,0xffffffffffffffffll}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); Totals+=Stream->Write(&iqword[i],8); } } return Totals; } int OutBinCodeWithPrefix_iz_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned int idword[]={0,0x7fffffff,0x80000000,0xffffffff}; unsigned short iword[]={0,0x7fff,0x8000,0xffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); if(j<0x48) { if (Prefix==0x66) Totals+=Stream->Write(&iword[i],2); else Totals+=Stream->Write(&idword[i],4); } else Totals+=Stream->Write(&idword[i],4); } } return Totals; } int OutBinCodeWithPrefix_iv_for_64(CStream* Stream,unsigned char *Buf,int Len,int Prefix) { int Totals=0; unsigned __int64 iqword[]={0,0x7fffffffffffffffll,0x8000000000000000ll,0xffffffffffffffffll}; unsigned int idword[]={0,0x7fffffff,0x80000000,0xffffffff}; unsigned short iword[]={0,0x7fff,0x8000,0xffff}; for(int i=0;iWrite(&Prefix,1); Totals+=Stream->Write(&j,1); Totals+=Stream->Write(Buf,Len); if(j<0x48) { if (Prefix==0x66) Totals+=Stream->Write(&iword[i],2); else Totals+=Stream->Write(&idword[i],4); } else Totals+=Stream->Write(&iqword[i],8); } } return Totals; } int opcode_creater_without_rm(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix) { unsigned char Buf[16]; int Len=0; char* pOpcode=(char*)&Opcode; char OpcodeArray[4]={pOpcode[0],pOpcode[1],pOpcode[2],pOpcode[3]}; unsigned long totals=0; if(OpcodeLen>4) return 0; for(int ii = 0; ii < OpcodeLen;ii++) { Buf[Len++]=OpcodeArray[ii]; } Buf[OpcodeLen]=0; totals+=OutputFunction(Stream,Buf,Len+1,Prefix); Buf[OpcodeLen]=0x7f; totals+=OutputFunction(Stream,Buf,Len+1,Prefix); Buf[OpcodeLen]=0x80; totals+=OutputFunction(Stream,Buf,Len+1,Prefix); Buf[OpcodeLen]=0xff; totals+=OutputFunction(Stream,Buf,Len+1,Prefix); return totals; } int opcode_creater_without_rm_iw(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix) { unsigned char Buf[16]; int Len=0; char* pOpcode=(char*)&Opcode; char OpcodeArray[4]={pOpcode[0],pOpcode[1],pOpcode[2],pOpcode[3]}; unsigned long totals=0; if(OpcodeLen>4) return 0; for(int ii = 0; ii < OpcodeLen;ii++) { Buf[Len++]=OpcodeArray[ii]; } *(int*)&Buf[OpcodeLen]=0; totals+=OutputFunction(Stream,Buf,Len+2,Prefix); *(int*)&Buf[OpcodeLen]=0x7fff; totals+=OutputFunction(Stream,Buf,Len+2,Prefix); *(int*)&Buf[OpcodeLen]=0x8000; totals+=OutputFunction(Stream,Buf,Len+2,Prefix); *(int*)&Buf[OpcodeLen]=0xffff; totals+=OutputFunction(Stream,Buf,Len+2,Prefix); return totals; } int opcode_creater_without_rm_id(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix) { unsigned char Buf[16]; int Len=0; char* pOpcode=(char*)&Opcode; char OpcodeArray[4]={pOpcode[0],pOpcode[1],pOpcode[2],pOpcode[3]}; unsigned long totals=0; if(OpcodeLen>4) return 0; for(int ii = 0; ii < OpcodeLen;ii++) { Buf[Len++]=OpcodeArray[ii]; } *(int*)&Buf[OpcodeLen]=0; totals+=OutputFunction(Stream,Buf,Len+4,Prefix); *(int*)&Buf[OpcodeLen]=0x7fffffff; totals+=OutputFunction(Stream,Buf,Len+4,Prefix); *(int*)&Buf[OpcodeLen]=0x80000000; totals+=OutputFunction(Stream,Buf,Len+4,Prefix); *(int*)&Buf[OpcodeLen]=0xffffffff; totals+=OutputFunction(Stream,Buf,Len+4,Prefix); return totals; } int opcode_creater(CStream* Stream,OUTPUT_BIN_FP OutputFunction,int Opcode,int OpcodeLen,int Prefix,int defaulttype) { unsigned char Buf[16]; int Mod; int Reg; int Rm; int ModRM; int Scaled; int Index; int Base; int Sib; int Len=0; int EndMod; char* pOpcode=(char*)&Opcode; char OpcodeArray[4]={pOpcode[0],pOpcode[1],pOpcode[2],pOpcode[3]}; unsigned long totals=0; if(OpcodeLen>4) return 0; for(int ii = 0; ii < OpcodeLen;ii++) { Buf[Len++]=OpcodeArray[ii]; } switch(defaulttype) { case RM_0_4: Mod=0; EndMod=4; break; case RM_0_3: Mod=0; EndMod=3; break; case RM_4: Mod=3; EndMod=4; break; } for(;Mod>8); unsigned int rmmask=mask&0xff; if(OpcodeLen>4) return 0; for(int ii = 0; ii < OpcodeLen;ii++) { Buf[Len++]=OpcodeArray[ii]; } switch(defaulttype) { case RM_0_4: Mod=0; EndMod=4; break; case RM_0_3: Mod=0; EndMod=3; break; case RM_4: Mod=3; EndMod=4; break; } for(;ModMaxUnpackSize) return false; return true; } bool CFileType::IsUPXFile(CPEFile*pPEFile) { ULPOS FilePos; BYTE Buffer[0x10]; if(pPEFile->MapToFile(pPEFile->m_EntryPoint,&FilePos)==false) return false; if(pPEFile->ReadFile(FilePos,Buffer,sizeof(Buffer))==false) return false; return Buffer[0x0] == 0x60 && Buffer[0x1] == 0xBE &&Buffer[0x6] == 0x8D &&Buffer[0xC] == 0x57; } ================================================ FILE: Project/EXEAnalyzer/Source/FileType.h ================================================ #ifndef _FILE_TYPE_H_ #define _FILE_TYPE_H_ class CFileType : public CImageFile { public: DWORD GetFileType(); bool IsMaybePEUnpackSelfFile(DWORD MaxUnpackSize,bool bExcludeDll = true); static bool IsUPXFile(CPEFile*pPEFile); }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/InstrSym.cpp ================================================ // InstrSym.cpp: implementation of the CInstrSym class. // ////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "InstrSym.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// #define MAX_PREV_INSTR_LEN MAX_INSTR_LEN*2 PCWSTR CInstrSym::m_RegStr[3][16]= { WSTR("AX"),WSTR("CX"),WSTR("DX"),WSTR("BX"),WSTR("SP"),WSTR("BP"),WSTR("SI"),WSTR("DI"), WSTR("R8W"),WSTR("R9W"),WSTR("R10W"),WSTR("R11W"),WSTR("R12W"),WSTR("R13W"),WSTR("R14W"),WSTR("R15W"), WSTR("EAX"),WSTR("ECX"),WSTR("EDX"),WSTR("EBX"),WSTR("ESP"),WSTR("EBP"),WSTR("ESI"),WSTR("EDI"), WSTR("R8D"),WSTR("R9D"),WSTR("R10D"),WSTR("R11D"),WSTR("R12D"),WSTR("R13D"),WSTR("R14D"),WSTR("R15D"), WSTR("RAX"),WSTR("RCX"),WSTR("RDX"),WSTR("RBX"),WSTR("RSP"),WSTR("RBP"),WSTR("RSI"),WSTR("RDI"), WSTR("R8"),WSTR("R9"),WSTR("R10"),WSTR("R11"),WSTR("R12"),WSTR("R13"),WSTR("R14"),WSTR("R15") }; PCWSTR CInstrSym::m_ScaleStr[4]= { WSTR("1"),WSTR("2"),WSTR("4"),WSTR("8") }; PCWSTR CInstrSym::m_SizePtr[9]= { WSTR("Err"),WSTR("%02X"),WSTR("%04X"),WSTR("Err"),WSTR("%08X"),WSTR("Err"),WSTR("Err"),WSTR("Err"),WSTR("%16I64X") }; PCWSTR CInstrSym::m_SizeSym[11]= { WSTR(""),WSTR("BYTE"),WSTR("WORD"),WSTR(""),WSTR("DWORD"),WSTR(""),WSTR("FWORD"),WSTR(""),WSTR("QWORD"),WSTR(""),WSTR("TWORD") }; PCWSTR CInstrSym::m_SegStr[6]= { WSTR("ES"),WSTR("CS"),WSTR("SS"),WSTR("DS"),WSTR("FS"),WSTR("GS") }; PCWSTR CInstrSym::m_LengthStr[5]= { WSTR("DB"),WSTR("DB"),WSTR("DW"),WSTR("Err"),WSTR("DD") }; PCWSTR CInstrSym::m_DefaultOPSize[2]= { WSTR("%04X"),WSTR("%08X") }; PCSTR CInstrSym::m_TransDesInst[]= { "CALL", "JMP", NULL }; PCWSTR CInstrSym::m_UnReaded=WSTR("????????"); #define UxAlign 6 WCHAR*OptItemToStr(OPERAND_ITEM*OpArray,int nOp,WCHAR*pString,INSTRUCTION_INFORMATION*pDasmInstr) { DIS_ADDRESS*pAddr; OPERAND_ITEM*pOp; WCHAR szBuffer[32]; for(int n=0;nmode==mode_invalid) break; if(n>0) {// pString+=TStrCpy(pString,","); } if(pOp->mode==mode_address) {//ַṹ pAddr=(DIS_ADDRESS*)&pOp->addr; //if(pDasmInstr->xxxxptr!=-1) { pString+=TStrCpy(pString,","); if(pOp->opersize!=-1) { pString+=TStrCpy(pString,CInstrSym::m_SizeSym[pOp->opersize]); pString+=TStrCpy(pString," PTR "); } } if(pDasmInstr->SegmentPrefix!=-1) { pString+=TStrCpy(pString,CInstrSym::m_SegStr[pDasmInstr->SegmentPrefix]); pString+=TStrCpy(pString,":"); } pString+=TStrCpy(pString,"["); if(pAddr->base!=-1)//BaseĴ { pString+=TStrCpy(pString,CInstrSym::m_RegStr[pAddr->address_size][pAddr->base]); } if(pAddr->index!=-1)//IndexĴ { if(pAddr->base!=-1) { pString+=TStrCpy(pString,"+"); } pString+=TStrCpy(pString,CInstrSym::m_RegStr[pAddr->address_size][pAddr->index]); if(pAddr->scale>1) { pString+=TStrCpy(pString,"*"); pString+=TStrCpy(pString,CInstrSym::m_ScaleStr[pAddr->scale]); } } if(pAddr->displacement || (pAddr->base==-1 && pAddr->index==-1)) {//displacement if(pAddr->index!=-1 || pAddr->base!=-1) { pString+=TStrCpy(pString,"+"); } TSPrintf(szBuffer,CInstrSym::m_SizePtr[pAddr->displacement_size],pAddr->displacement); pString+=TStrCpy(pString,szBuffer); } pString+=TStrCpy(pString,"]"); } else switch(pOp->mode) { case mode_register: pString+=TStrCpy(pString,pOp->string); break; case mode_segment: pString+=TStrCpy(pString,pOp->string); break; case mode_far: TSPrintf(szBuffer,WSTR("%04X"),pOp->farptr.segment); pString+=TStrCpy(pString,szBuffer); pString+=TStrCpy(pString,WSTR(":")); TSPrintf(szBuffer,CInstrSym::m_SizePtr[pOp->opersize-2],pOp->farptr.offset); pString+=TStrCpy(pString,szBuffer); break; case mode_near: case mode_immed: pString+=TStrCpy(pString,pOp->string); break; case mode_datadup: if(n>0) break; for(n=0;ndatadup.count;n++) { if(n>0) { pString+=TStrCpy(pString,WSTR(",")); } TSPrintf(szBuffer,WSTR("%02X"),pOp->datadup.buffer[n]); pString+=TStrCpy(pString,szBuffer); } break; case mode_symbol: if(pOp->symbol.offset) { pString+=TStrCpy(pString,WSTR("OFFSET ")); } pString+=TStrCpy(pString,pOp->symbol.string); break; case mode_align: if(n>0) break; TSPrintf(szBuffer,WSTR("%X"),pOp->align.nBytes); pString+=TStrCpy(pString,szBuffer); break; } } return pString; } WCHAR* InstrToStr(INSTRUCTION_INFORMATION*pDasmInstr,WCHAR*pString) { bool bFirstStr = TRUE; /////////////////////////////////////////////////// //LOCKǰ׺ /////////////////////////////////////////////////// if(pDasmInstr->Lock!=-1) { TStrCpy(pString,pDasmInstr->LockName); TStrCat(pString," "); if(bFirstStr)//ڴδʹö { pString+=TStrFillTail(pString,UxAlign,WSTR(' ')); bFirstStr = FALSE; } else pString+=TStrLen(pString); } /////////////////////////////////////////////////// //REPǰ׺ /////////////////////////////////////////////////// if(pDasmInstr->Repeat!=-1) { TStrCpy(pString,pDasmInstr->RepeatName); TStrCat(pString," "); if(bFirstStr) { pString+=TStrFillTail(pString,UxAlign,WSTR(' ')); bFirstStr = FALSE; } else pString+=TStrLen(pString); pString+=TStrLen(pString); } /////////////////////////////////////////////////// //OPCODE /////////////////////////////////////////////////// TStrCpy(pString,pDasmInstr->Name); TStrCat(pString," "); if(*pDasmInstr->Name && bFirstStr)//ڴδʹö { pString+=TStrFillTail(pString,UxAlign,WSTR(' ')); bFirstStr = FALSE; } else pString+=TStrLen(pString); /////////////////////////////////////////////////// //Ԫ /////////////////////////////////////////////////// return OptItemToStr(pDasmInstr->op,3,pString,pDasmInstr); } CInstrSym::CInstrSym() { m_bUseSym=TRUE; m_UxAlign=6; m_Mode = BIT32; m_Style=DS_USE_SYM|DS_JMP_API; } CInstrSym::~CInstrSym() { } bool CInstrSym::AddrToSym(ULPOS Address,PSTR szSym,int BufSize) { return false; } ULSIZE CInstrSym::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size) { for(ULPOS n=0;naddr.base!=-1 || pOp->addr.index!=-1 || pInstrInfo->SegmentPrefix!=-1) { szInfo+=TStrCpy(szInfo,"["); szInfo+=TSPrintf(szInfo,CInstrSym::m_DefaultOPSize[pInstrInfo->CodeMode],pOp->addr.line_address); szInfo+=TStrCpy(szInfo,"] = "); } Size = pOp->opersize; if(Size<=0 || Size>4) Size = 4; Data = 0; if(ReadMemory((ULPOS)pOp->addr.line_address,&Data,Size)!=Size) { szInfo+=TStrCpy(szInfo,"????"); return; } szInfo+=TSPrintf(szInfo,CInstrSym::m_SizePtr[Size],Data); if(AddrToSym(Data,szSym,sizeof(szSym)/sizeof(WCHAR))) { szInfo+=TStrCpy(szInfo," = "); TStrCpy(szInfo,szSym); } } ULSIZE CInstrSym::Dasm(INSTRUCTION_INFORMATION*pDasmInstr,DIS_CPU*pDisCPU,ULSIZE MaxSize) { ULPOS Address; ULSIZE CodeLen,RDSize; RDSize = ReadMemory(pDasmInstr->eip,pDasmInstr->CodeBuff,MAX_INSTR_LEN); if(RDSize==0) { pDasmInstr->OpCode=-1; strcpy(pDasmInstr->Name,"???"); pDasmInstr->Lock =-1; pDasmInstr->Repeat=-1; pDasmInstr->SegmentPrefix=-1; pDasmInstr->op[0].mode=mode_invalid; pDasmInstr->op[1].mode=mode_invalid; pDasmInstr->op[2].mode=mode_invalid; return 0; } if(RDSize > MaxSize) RDSize = MaxSize; CodeLen=Disassembler(pDasmInstr,pDisCPU); if(CodeLen==0 || CodeLen>RDSize) { if(CodeLen>RDSize) CodeLen=RDSize; pDasmInstr->OpCode=-1; strcpy(pDasmInstr->Name,"DB"); pDasmInstr->Lock=-1; pDasmInstr->Repeat=-1; pDasmInstr->SegmentPrefix=-1; pDasmInstr->op[1].mode=mode_invalid; pDasmInstr->op[2].mode=mode_invalid; pDasmInstr->op[0].mode=mode_datadup; pDasmInstr->op[0].datadup.count=1; if(1 && pDasmInstr->CodeBuff) memcpy(pDasmInstr->op[0].datadup.buffer,pDasmInstr->CodeBuff,1); return 0; } if((m_Style & DS_USE_SYM) ==0) return CodeLen; if((_GET_WORD(pDasmInstr->CodeBuff)==0x15FF)||(_GET_WORD(pDasmInstr->CodeBuff)==0x25FF)) { RDSize = ReadMemory(_GET_DWORD(&pDasmInstr->CodeBuff[2]),&Address,sizeof(Address)); if(RDSize==sizeof(Address)) { if(AddrToSym(Address,pDasmInstr->op[0].symbol.string,MAX_SYMBOL_LEN)) { pDasmInstr->op->symbol.mode = pDasmInstr->op[0].mode; pDasmInstr->op->mode=mode_symbol; pDasmInstr->op->symbol.offset = FALSE; pDasmInstr->op->symbol.addr = Address; return CodeLen; } } } if((m_Style & DS_JMP_API) && TStrCmp(pDasmInstr->Name,"CALL")==0) {//Call API if(pDasmInstr->op->mode == mode_near) { UINT OldStyle; BYTE Buffer[MAX_INSTR_LEN]; INSTRUCTION_INFORMATION DasmInstr; DasmInstr.pasm = NULL; DasmInstr.CodeMode = pDasmInstr->CodeMode; DasmInstr.eip = (DWORD)pDasmInstr->op->nearptr.label ; DasmInstr.CodeBuff = Buffer; OldStyle = m_Style; m_Style &= ~DS_JMP_API; Dasm(&DasmInstr); m_Style = OldStyle; if((_GET_WORD(DasmInstr.CodeBuff)==0x15FF)||(_GET_WORD(DasmInstr.CodeBuff)==0x25FF)||(_GET_BYTE(DasmInstr.CodeBuff)==0xE9) && DasmInstr.op->mode ==mode_symbol) { TStrCpy(pDasmInstr->op->symbol.string,DasmInstr.op->symbol.string); pDasmInstr->op->symbol.mode = pDasmInstr->op->mode; pDasmInstr->op->mode=mode_symbol; pDasmInstr->op->symbol.offset=FALSE; pDasmInstr->op->symbol.addr = DasmInstr.op->symbol.addr; return CodeLen; } } } for(int n=0;n<3;n++) { if(pDasmInstr->op[n].mode == mode_immed) { Address = (ULPOS)pDasmInstr->op[n].immed.immed_value; if(AddrToSym(Address,pDasmInstr->op[n].symbol.string,MAX_SYMBOL_LEN)) { pDasmInstr->op[n].symbol.mode = pDasmInstr->op[n].mode; pDasmInstr->op[n].mode=mode_symbol; pDasmInstr->op[n].symbol.offset = TRUE; pDasmInstr->op[n].symbol.addr = Address; } } else if(pDasmInstr->op[n].mode == mode_near) { Address = pDasmInstr->eip + (ULPOS)pDasmInstr->op[n].nearptr.offset + CodeLen; if(AddrToSym(Address,pDasmInstr->op[n].symbol.string,MAX_SYMBOL_LEN)) { pDasmInstr->op[n].symbol.mode = pDasmInstr->op[n].mode; pDasmInstr->op[n].mode=mode_symbol; pDasmInstr->op[n].symbol.offset = FALSE; pDasmInstr->op[n].symbol.addr = Address; } } else if(pDasmInstr->op[n].mode==mode_address) { if(pDasmInstr->SegmentPrefix==-1&&pDasmInstr->op[n].addr.base==-1&&pDasmInstr->op[n].addr.index==-1) { Address = (ULPOS)pDasmInstr->op[n].addr.effect_address; if(AddrToSym(Address,pDasmInstr->op[n].symbol.string,MAX_SYMBOL_LEN)) { pDasmInstr->op[n].symbol.mode = pDasmInstr->op[n].mode; pDasmInstr->op[n].mode=mode_symbol; pDasmInstr->op[n].symbol.offset = FALSE; pDasmInstr->op[n].symbol.addr = Address; } else if(pDasmInstr->op[n].opersize == 4) { RDSize=ReadMemory((ULPOS)pDasmInstr->op[n].addr.effect_address,&Address,sizeof(Address)); if(RDSize==sizeof(Address)) { if(AddrToSym(Address,pDasmInstr->op[n].symbol.string,MAX_SYMBOL_LEN)) { pDasmInstr->op[n].symbol.mode = pDasmInstr->op[n].mode; pDasmInstr->op[n].mode=mode_symbol; pDasmInstr->op[n].symbol.offset = FALSE; pDasmInstr->op[n].symbol.addr = Address; } } } } } } return CodeLen; } bool CInstrSym::GetNearJmpDes(BYTE*CodeBuffer,ULPOS EIP,ULPOS*pDes) { if(CodeBuffer[0]>=0x70 && CodeBuffer[0] <=0x7f) { if(pDes) *pDes=EIP+2+(char)CodeBuffer[1]; return true; } if(CodeBuffer[0]==0xf && CodeBuffer[1]>=0x80 && CodeBuffer[1] <=0x8f) { if(pDes) *pDes=EIP+6+*(int*)&CodeBuffer[2]; return true; } return false; } bool CInstrSym::IsActiveNearJmp(BYTE*CodeBuffer,DWORD Eflags) { switch(*CodeBuffer) { case 0x70: return (Eflags&EFLAGS_OF_MASK) != 0; case 0x71: return (Eflags&EFLAGS_OF_MASK) == 0; case 0x72: return (Eflags&EFLAGS_CF_MASK) != 0; case 0x73: return (Eflags&EFLAGS_CF_MASK) == 0; case 0x74: return (Eflags&EFLAGS_ZF_MASK) != 0; case 0x75: return (Eflags&EFLAGS_ZF_MASK) == 0; case 0x76: return ((Eflags&EFLAGS_ZF_MASK) != 0)&&((Eflags&EFLAGS_CF_MASK) != 0); case 0x77: return ((Eflags&EFLAGS_ZF_MASK) == 0)&&((Eflags&EFLAGS_CF_MASK) == 0); case 0x78: return (Eflags&EFLAGS_SF_MASK) != 0; case 0x79: return (Eflags&EFLAGS_SF_MASK) == 0; case 0x7a: return (Eflags&EFLAGS_PF_MASK) != 0; case 0x7b: return (Eflags&EFLAGS_PF_MASK) == 0; case 0x7c: return (Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT != (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT; case 0x7d: return (Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT == (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT; case 0x7e: return ((Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT != (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT) && (Eflags&EFLAGS_ZF_MASK) != 0; case 0x7f: return ((Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT == (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT) && (Eflags&EFLAGS_ZF_MASK) == 0; } return false; } ULSIZE CInstrSym::PrevInstrLen(ULPOS Address) { ULPOS RefAddress; ULSIZE MaxLen,Count,PrevLenCount,MaxRef,MaxRefIdx,PrevLen; BYTE PrevLenAry[MAX_PREV_INSTR_LEN],CodeBuffer[MAX_PREV_INSTR_LEN],CodeLenArray[MAX_PREV_INSTR_LEN],RefLenAry[MAX_PREV_INSTR_LEN]; MaxLen = Address >= m_ImageBase + MAX_PREV_INSTR_LEN ? MAX_PREV_INSTR_LEN : Address - m_ImageBase; if(MaxLen==0) return 1; Count = ReadMemory(Address - MaxLen,CodeBuffer,MaxLen); if(Count) { MaxLen = Count; } else { for(Count=MaxLen-1;Count>0;Count--) { if(ReadMemory(Address - Count,CodeBuffer,Count)) break; } MaxLen = Count; } if(MaxLen==0) return 1; PrevLenCount = 0; for(ULSIZE PrevOff=1;PrevOff<=MaxLen;PrevOff++) { Count = InstrCount(&CodeBuffer[MaxLen-PrevOff],PrevOff,CodeLenArray); if(Count) { PrevLenAry[PrevLenCount] = CodeLenArray[Count-1]; PrevLenCount++; } } if(PrevLenCount==0) return 1; ZeroMemory(RefLenAry,sizeof(RefLenAry)); RefAddress = Address; if(GetInstrRefPoint(&RefAddress) && RefAddress < Address && (PrevLen = Address - RefAddress) < MAX_PREV_INSTR_LEN) { PrevLen = Address - RefAddress; for(Count=0;CountRDSize || CodeLen<2) return false; if(DasmInstr.op[0].mode==mode_invalid||DasmInstr.op[1].mode!=mode_invalid) return false; if(GetNearJmpDes(Buffer)==false) { n=0; while(m_TransDesInst[n]) { if(TStrICmp(DasmInstr.Name,m_TransDesInst[n])==0) break; n++; } if(m_TransDesInst[n]==NULL) return false; } switch(DasmInstr.op->mode) { case mode_near: *pDesAddr = (ULPOS)DasmInstr.op->nearptr.label; return true; case mode_immed: *pDesAddr=(ULPOS)DasmInstr.op->immed.immed_value; return true; case mode_address: if(DasmInstr.SegmentPrefix==-1&&DasmInstr.op->addr.base==-1&&DasmInstr.op->addr.index==-1&&DasmInstr.op->addr.displacement_size==4) { *pDesAddr=0; if(ReadMemory((ULPOS)DasmInstr.op->addr.effect_address,pDesAddr,sizeof(*pDesAddr))!=sizeof(*pDesAddr)) return false; return true; } break; } return false; } bool CInstrSym::GetInstrDesAddress(ULPOS Address,ULPOS*pDesAddr) { BYTE Buffer[MAX_INSTR_LEN]; INSTRUCTION_INFORMATION DasmInstr; DasmInstr.eip = Address; DasmInstr.pasm = NULL; DasmInstr.CodeBuff=Buffer; ULSIZE CodeLen,RDSize; RDSize = ReadMemory(Address,Buffer,MAX_INSTR_LEN); if(RDSize==0) return false; CodeLen=Disassembler(&DasmInstr,NULL); if(CodeLen==0 || CodeLen>RDSize || CodeLen<2) return false; for(int n=0;n<3;n++) { if(DasmInstr.op[n].mode == mode_near) { *pDesAddr = DasmInstr.eip + (ULPOS)DasmInstr.op[n].nearptr.offset + CodeLen; return true; } else if(DasmInstr.op[n].mode==mode_address) { if(DasmInstr.SegmentPrefix==-1&&DasmInstr.op[n].addr.base==-1&&DasmInstr.op[n].addr.index==-1&&DasmInstr.op[n].addr.displacement_size==4) { *pDesAddr=0; if(ReadMemory((ULPOS)DasmInstr.op[n].addr.effect_address,pDesAddr,sizeof(*pDesAddr))!=sizeof(*pDesAddr)) return false; return true; } }else if(DasmInstr.op[n].mode == mode_immed) { *pDesAddr=(ULPOS)DasmInstr.op[n].immed.immed_value; return true; } } return false; } int CInstrSym::GetInstrImmediateAndDesAddress(ULPOS Address,ULPOS*pDesAddr,ULPOS* pImmediate) { BYTE Buffer[MAX_INSTR_LEN]; DWORD dwValue[3]; int retvalue=0; INSTRUCTION_INFORMATION DasmInstr; DasmInstr.eip = Address; DasmInstr.pasm = NULL; DasmInstr.CodeBuff=Buffer; ULSIZE CodeLen,RDSize; RDSize = ReadMemory(Address,Buffer,MAX_INSTR_LEN); *pDesAddr=0-1; *pImmediate=0-1; if(RDSize==0) return retvalue; CodeLen=Disassembler(&DasmInstr,NULL); if(CodeLen==0 || CodeLen>RDSize || CodeLen<2) return retvalue; for(int n=0;n<3;n++) { //if(DasmInstr.op[n].mode == mode_near) //{ // dwValue[retvalue]=DasmInstr.eip + DasmInstr.op[n].nearptr.offset + CodeLen; // *pDesAddr=dwValue[retvalue]; // retvalue++; //} //else if(DasmInstr.op[n].mode==mode_address) { if(DasmInstr.SegmentPrefix==-1&&DasmInstr.op[n].addr.base==-1&&DasmInstr.op[n].addr.index==-1&&DasmInstr.op[n].addr.displacement_size==4) { *pDesAddr=0-1; if(ReadMemory((ULPOS)DasmInstr.op[n].addr.effect_address,&RDSize,sizeof(RDSize))==sizeof(RDSize)) { dwValue[retvalue]=(DWORD)DasmInstr.op[n].addr.effect_address; retvalue++; *pDesAddr=(ULPOS)DasmInstr.op[n].addr.effect_address; } } }else if(DasmInstr.op[n].mode == mode_immed) { if(ReadMemory((ULPOS)DasmInstr.op[n].immed.immed_value,&RDSize,sizeof(RDSize))==sizeof(RDSize)) { dwValue[retvalue]=(DWORD)DasmInstr.op[n].immed.immed_value; *pImmediate=(ULPOS)DasmInstr.op[n].immed.immed_value; retvalue++; } } } return retvalue; } bool CInstrSym::GetVariableDesAddress(ULPOS Address,ULPOS*pDesAddr) { BYTE Buffer[MAX_INSTR_LEN]; INSTRUCTION_INFORMATION DasmInstr; DasmInstr.eip=Address; DasmInstr.pasm = NULL; DasmInstr.CodeBuff=Buffer; ULSIZE CodeLen,RDSize; RDSize = ReadMemory(Address,Buffer,MAX_INSTR_LEN); if(RDSize==0) return false; CodeLen=Disassembler(&DasmInstr,NULL); if(CodeLen==0 || CodeLen>RDSize || CodeLen<2) return false; for(int n=0;n<3;n++) { if(DasmInstr.op[n].mode==mode_address) { if(DasmInstr.SegmentPrefix==-1&&DasmInstr.op[n].addr.base==-1&&DasmInstr.op[n].addr.index==-1) { *pDesAddr = (ULPOS)DasmInstr.op[n].addr.effect_address; return true; } } } if(DasmInstr.CodeBuff[0]==0x68) { *pDesAddr=(ULPOS)DasmInstr.op[0].immed.immed_value; return true; } return false; } int CInstrSym::IsPrevCodeCallInstr(ULPOS Address,PSTR szFunc,ULPOS*pDesAddr) { static ULSIZE TestSize[]={6,5,4,3,2}; ULSIZE CodeLen; INSTRUCTION_INFORMATION DasmInstr; BYTE Buffer[MAX_INSTR_LEN]; for(int n=0;nmode) { case mode_symbol: if(szFunc) TStrCpy(szFunc,DasmInstr.op->symbol.string); if(pDesAddr) *pDesAddr=DasmInstr.op->symbol.addr; break; case mode_near: if(szFunc) *szFunc=0; if(pDesAddr) *pDesAddr = (ULPOS)DasmInstr.op->nearptr.label; break; case mode_address: if(szFunc) *szFunc=0; if(pDesAddr) *pDesAddr = 0; if(DasmInstr.SegmentPrefix==-1&&DasmInstr.op->addr.base==-1&&DasmInstr.op->addr.index==-1) { if(pDesAddr) ReadMemory((ULPOS)DasmInstr.op->addr.effect_address,pDesAddr,sizeof(*pDesAddr)); } break; default: if(szFunc) *szFunc=0; if(pDesAddr) *pDesAddr=0; break; } return CodeLen; } } return 0; } bool CInstrSym::IsCallInstruction(ULPOS Address,PSTR szFunc) { ULPOS CodeLen; BYTE Buffer[MAX_INSTR_LEN]; INSTRUCTION_INFORMATION DasmInstr; DasmInstr.eip=Address; DasmInstr.pasm = NULL; DasmInstr.CodeBuff=Buffer; CodeLen=Dasm(&DasmInstr); if(CodeLen<2) return false; if(TStrICmp(DasmInstr.Name,"CALL")==0) { if(szFunc) { *szFunc=0; if(DasmInstr.op[0].mode==mode_symbol) TStrCpy(szFunc,DasmInstr.op[0].symbol.string); } return true; } return false; } ULSIZE CInstrSym::InstrLen(ULPOS Address,ULSIZE MaxSize) { ULSIZE CodeLen,Size; BYTE Buffer[MAX_INSTR_LEN]; Size = ReadMemory(Address,Buffer,MaxSize); if(Size==0) return 0; CodeLen=InstrLen(Buffer,Size); if(CodeLen>Size) CodeLen=Size; return CodeLen; } ULSIZE CInstrSym::InstrLen(BYTE*Buffer,ULSIZE BufSize) { ULSIZE CodeLen=::Disassembler(NULL,Buffer,0,BIT32); if(CodeLen>BufSize) return 0; return CodeLen; } ULSIZE CInstrSym::InstrLen16(BYTE*Buffer,ULSIZE BufSize) { ULSIZE CodeLen=::Disassembler(NULL,Buffer,0,BIT16); if(CodeLen>BufSize) return 0; return CodeLen; } ================================================ FILE: Project/EXEAnalyzer/Source/InstrSym.h ================================================ #ifndef _INSTR_SYM_H_ #define _INSTR_SYM_H_ #include "IntelDis.h" #include "PEFile.h" #define MAX_INSTR_LEN 0x10 #define MAX_LINES_PER_PAGE 0x80 #define MAX_STR_PER_LINE 0x40 // #define DS_USE_SYM 0x00000001 #define DS_JMP_API 0x00000002 #define MAX_LINE_BYTES 0x10 class CInstrSym : public CIntelDisassembler { public: BYTE m_CodeBuffer[MAX_INSTR_LEN]; bool m_bUseSym; ULPOS m_ImageBase; ULPOS m_ImageHighBase; UINT m_UxAlign; UINT m_Style; public: virtual bool AddrToSym(ULPOS Address,PSTR szSym,int BufSize); virtual ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size); virtual bool GetInstrRefPoint(ULPOS*pAddress){return false;} public: CInstrSym(); virtual ~CInstrSym(); public: void SetDasmStyle(UINT Style){m_Style = Style;} ULPOS GetDasmStyle(){return m_Style;} void HandleAddressOp(OPERAND_ITEM*pOp,WCHAR* szInfo,INSTRUCTION_INFORMATION*pInstrInfo); public:// ULSIZE Dasm(IN OUT INSTRUCTION_INFORMATION*pDasmInstr,DIS_CPU*pDisCPU = NULL,ULSIZE MaxSize = MAX_INSTR_LEN); ULSIZE Asm(PSTR InstString,PBYTE OutPutCode,ULPOS EIP); public://ָ ULSIZE PrevInstrLen(ULPOS Address); ULSIZE InstrCount(BYTE*CodeBuffer,ULSIZE CodeSize,BYTE*LenAry); bool IsProcessCode(ULPOS Address); bool IsCallInstruction(ULPOS Address,PSTR szFunc=NULL); int IsPrevCodeCallInstr(ULPOS Address,PSTR szFunc,ULPOS*pDesAddr); ULSIZE InstrLen(ULPOS Address,ULSIZE MaxSize = MAX_INSTR_LEN); bool GetInstrDesAddress(ULPOS Address,ULPOS*pDesAddr); bool GetTransferAddress(ULPOS Address,ULPOS*pDesAddr); int GetInstrImmediateAndDesAddress(ULPOS Address,ULPOS*pDesAddr,ULPOS* pImmediate);//Ҫ code view е enter ת bool GetVariableDesAddress(ULPOS Address,ULPOS*pDesAddr); static bool GetNearJmpDes(BYTE*CodeBuffer,ULPOS EIP=0,ULPOS*pDes=NULL); static bool IsActiveNearJmp(BYTE*CodeBuffer,DWORD Eflags); static ULSIZE InstrLen(BYTE*Buffer,ULSIZE BufSize = MAX_INSTR_LEN); static ULSIZE InstrLen16(BYTE*Buffer,ULSIZE BufSize = MAX_INSTR_LEN); static PCWSTR m_RegStr[3][16]; static PCWSTR m_ScaleStr[4]; static PCWSTR m_SizePtr[9]; static PCWSTR m_SizeSym[11]; static PCWSTR m_SegStr[6]; static PCWSTR m_LengthStr[5]; static PCWSTR m_DefaultOPSize[2]; static PCSTR m_TransDesInst[]; static PCWSTR m_UnReaded; }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/IntelDef.h ================================================ #ifndef _INTEL_DEFINE_H_ #define _INTEL_DEFINE_H_ #define BIT16 0 #define BIT32 1 #define BIT64 2 #define INTEL_MAX_LENGTH 0x10 #define sign_BYTE 0x80 #define sign_WORD 0x8000 #define sign_DWORD 0x80000000 #define sign_QWORD 0x8000000000000000ll #define shift_BYTE 0x07 #define shift_WORD 0x0f #define shift_DWORD 0x1f #define max_BYTE 0xff #define max_WORD 0xffff #define max_DWORD 0xffffffff #define min_BYTE 0x7f #define min_WORD 0x7fff #define min_DWORD 0x7fffffff #define OP_R 1 #define OP_W 2 #define OP_RW 3 #define MAKE_OP_RW_FLAG(f1,f2,f3) ((f1)|((f2)<<2)|((f3)<<4)) #ifndef BYTE typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned long DWORD; typedef int BOOL; #endif #ifndef BIT8U typedef unsigned char BIT8U; typedef unsigned short BIT16U; typedef unsigned long BIT32U; typedef ULONGLONG BIT64U; #endif #ifndef BIT8S typedef char BIT8S; typedef short BIT16S; typedef int BIT32S; #endif #ifndef BX_BIG_ENDIAN #define GetValue_b(p) (*(BYTE*)(p)) #define GetValue_w(p) (*(WORD*)(p)) #define GetValue_d(p) (*(DWORD*)(p)) #define GetValue_q(p) (*(QWORD*)(p)) #define SetValue_b(p,value) (*(BYTE*)(p) = (value)) #define SetValue_w(p,value) (*(WORD*)(p) = (value)) #define SetValue_d(p,value) (*(DWORD*)(p) = (value)) #else #define GetValue_b(p) (*(BYTE*)(p)) #define GetValue_w(p) ((*(BYTE*)(p)) +\ (*(BYTE*)(p+1)<<0x08)) #define GetValue_d(p) ((*(BYTE*)(p)) +\ (*(BYTE*)(p+1)<<0x08) +\ (*(BYTE*)(p+2)<<0x10) +\ (*(BYTE*)(p+3)<<0x18)) #define GetValue_q(p) ((*(BYTE*)(p)) +\ (*(BYTE*)(p+1)<<0x08) +\ (*(BYTE*)(p+2)<<0x10) +\ (*(BYTE*)(p+3)<<0x18) +\ (*(BYTE*)(p+4)<<0x20) +\ (*(BYTE*)(p+5)<<0x28) +\ (*(BYTE*)(p+6)<<0x30) +\ (*(BYTE*)(p+7)<<0x38) +\ ) #define SetValue_b(p,value) (*(BYTE*)(p) = (value)); #define SetValue_w(p,value) (*(BYTE*)(p) = (value));\ (*(BYTE*)(p+1) = (value)>>0x08); #define SetValue_d(p,value) (*(BYTE*)(p) = (value));\ (*(BYTE*)(p+1) = (value)>>0x08);\ (*(BYTE*)(p+2) = (value)>>0x10);\ (*(BYTE*)(p+3) = (value)>>0x18); #endif #define MOD_NNN_RM_MOD00 0x00 #define MOD_NNN_RM_MOD01 0x40 #define MOD_NNN_RM_MOD10 0x80 #define MOD_NNN_RM_MOD11 0xc0 // ʽµж쳣 // Ƿ ˵ Դ #define INTEL_DE_EXCEPTION 0 // Divide Error (fault) #define INTEL_DB_EXCEPTION 1 // Debug (fault/trap) #define INTEL_BP_EXCEPTION 3 // Breakpoint (trap) #define INTEL_OF_EXCEPTION 4 // Overflow (trap) #define INTEL_BR_EXCEPTION 5 // BOUND (fault) #define INTEL_UD_EXCEPTION 6 #define INTEL_NM_EXCEPTION 7 #define INTEL_DF_EXCEPTION 8 #define INTEL_TS_EXCEPTION 10 #define INTEL_NP_EXCEPTION 11 #define INTEL_SS_EXCEPTION 12 #define INTEL_GP_EXCEPTION 13 #define INTEL_PF_EXCEPTION 14 #define INTEL_MF_EXCEPTION 16 #define INTEL_AC_EXCEPTION 17 #define INTEL_MC_EXCEPTION 0x12 #define INTEL_XF_EXCEPTION 0x13 #define BX_DE_EXCEPTION 0 // Divide Error (fault) #define BX_DB_EXCEPTION 1 // Debug (fault/trap) #define BX_BP_EXCEPTION 3 // Breakpoint (trap) #define BX_OF_EXCEPTION 4 // Overflow (trap) #define BX_BR_EXCEPTION 5 // BOUND (fault) #define BX_UD_EXCEPTION 6 #define BX_NM_EXCEPTION 7 #define BX_DF_EXCEPTION 8 #define BX_TS_EXCEPTION 10 #define BX_NP_EXCEPTION 11 #define BX_SS_EXCEPTION 12 #define BX_GP_EXCEPTION 13 #define BX_PF_EXCEPTION 14 #define BX_MF_EXCEPTION 16 #define BX_AC_EXCEPTION 17 //INTEL_DE_EXCEPTION //(\) int 0x00 ޴ #DE //INTEL_DB_EXCEPTION //߽(BOUNDָ) int 0x05 ޴ #BR //INTEL_BP_EXCEPTION //INTEL_OF_EXCEPTION //INTEL_BR_EXCEPTION //INTEL_UD_EXCEPTION //Ƿָ int 0x06 ޴ #UD //INTEL_NM_EXCEPTION //Э int 0x07 ޴ #NM //INTEL_DF_EXCEPTION //˫ع int 0x08 errorcode #DF() // //ϵͳس:ҳж //INTEL_TS_EXCEPTION //ǷTSS int 0x0a errorcode #TS() //INTEL_NP_EXCEPTION //βڹ int 0x0b errorcode #NP //INTEL_SS_EXCEPTION //ջι int 0x0c errorcode #SS //INTEL_GP_EXCEPTION //һ㱣 int 0x0d errorcode #GP() // //вһ쳣ıΥ // //һһ㱣쳣 //INTEL_PF_EXCEPTION //ҳ int 0x0e errorcode #PF(fault-code) // //CR2Ĵд // //쳣ķеԵַ //INTEL_MF_EXCEPTION //Э int 0x10 ޴ #MF //INTEL_AC_EXCEPTION //Any data reference in memory int 0x11 ޴ #AC //INTEL_MC_EXCEPTION //Model dependent machine check errors int 0x12 #MC //INTEL_XF_EXCEPTION //Floating-Point Numeric ErrorSSE and SSE2 floating-point // //instructions. int 0x13 #XF //INTEL_HF_EXCEPTION //ش󣬴ֹͣ // //ϵͳس:ҳж //CODE SEGMENT and DATA SEGMENT type define // ֻ;/д;չ;ִֻ;ִ/;;ѷ; #define CODE_DATA_SEGMENT_R 0x0 // ֻ; #define CODE_DATA_SEGMENT_RA 0x1 // ֻ;ѷ; #define CODE_DATA_SEGMENT_RW 0x2 // /д; #define CODE_DATA_SEGMENT_RWA 0x3 // /д;ѷ; #define CODE_DATA_SEGMENT_RD 0x4 // ֻ;չ; #define CODE_DATA_SEGMENT_RDA 0x5 // ֻ;չ;ѷ; #define CODE_DATA_SEGMENT_RWD 0x6 // /д;չ; #define CODE_DATA_SEGMENT_RWDA 0x7 // /д;չ;ѷ; #define CODE_DATA_SEGMENT_E 0x8 // ִֻ; #define CODE_DATA_SEGMENT_EA 0x9 // ִֻ;ѷ; #define CODE_DATA_SEGMENT_ER 0xa // ִ/; #define CODE_DATA_SEGMENT_ERA 0xb // ִ/;ѷ; #define CODE_DATA_SEGMENT_EC 0xc // ִֻ;; #define CODE_DATA_SEGMENT_ECA 0xd // ִֻ;;ѷ; #define CODE_DATA_SEGMENT_ERC 0xe // ִ/;; #define CODE_DATA_SEGMENT_ERCA 0xf // ִ/;;ѷ; //SYSTEM SEGMENT and SYSTEM GATE type define // ;16λ;32λ;TSS();LDT;TSS(æ);;;ж;; #define SYSTEM_SEGMENT_UNDEFINE0x0 0x0 // ; #define SYSTEM_SEGMENT_286TSS 0x1 // 16λTSS(); #define SYSTEM_SEGMENT_LDT 0x2 // LDT; #define SYSTEM_SEGMENT_286TSS_BUSY 0x3 // 16λTSS(æ); #define SYSTEM_GATE_286CALL 0x4 // 16λ; #define SYSTEM_GATE_TASK 0x5 // ; #define SYSTEM_GATE_286INT 0x6 // 16λж; #define SYSTEM_GATE_286TRAP 0x7 // 16λ; #define SYSTEM_SEGMENT_UNDEFINE0x8 0x8 // ; #define SYSTEM_SEGMENT_386TSS 0x9 // 32λTSS(); #define SYSTEM_SEGMENT_UNDEFINE0xA 0xA // ; #define SYSTEM_SEGMENT_386TSS_BUSY 0xB // 32λTSS(æ); #define SYSTEM_GATE_386CALL 0xC // 32λ; #define SYSTEM_SEGMENT_UNDEFINE0xD 0xD // ; #define SYSTEM_GATE_386INT 0xE // 32λж; #define SYSTEM_GATE_386TRAP 0xF // 32λ; #define I_EAX 0 #define I_ECX 1 #define I_EDX 2 #define I_EBX 3 #define I_ESP 4 #define I_EBP 5 #define I_ESI 6 #define I_EDI 7 #define I_NUL 8 #define I_ES 0 #define I_CS 1 #define I_SS 2 #define I_DS 3 #define I_FS 4 #define I_GS 5 #define I_6S 6 #define I_7S 7 #define I_TR 8 #define I_LDTR 9 #define INTEL_GEG_REG_EAX 0 #define INTEL_GEG_REG_ECX 1 #define INTEL_GEG_REG_EDX 2 #define INTEL_GEG_REG_EBX 3 #define INTEL_GEG_REG_ESP 4 #define INTEL_GEG_REG_EBP 5 #define INTEL_GEG_REG_ESI 6 #define INTEL_GEG_REG_EDI 7 #define INTEL_SEG_REG_ES 0 #define INTEL_SEG_REG_CS 1 #define INTEL_SEG_REG_SS 2 #define INTEL_SEG_REG_DS 3 #define INTEL_SEG_REG_FS 4 #define INTEL_SEG_REG_GS 5 #define INTEL_SEG_REG_6S 6 #define INTEL_SEG_REG_7S 7 #define INTEL_SEG_REG_TR 8 #define INTEL_SEG_REG_LDTR 9 #define INTEL_SEG_REG_NULL 0x0f #define R_M 0x0200 #define D_64 0x8000000 #define F_64 0x4000000 #define O_64 0x10000000 #define I_64 0x20000000 #define C_ESC_GROUP_TYPE (0x100) #define C_GROUP_0_TYPE (0x200) #define C_GROUP_1_TYPE (0x400) #define C_GROUP_2_TYPE (0x800) #define C_GROUP_3_TYPE (0x1000) #define C_GROUP_4_TYPE (0x2000) #define C_GROUP_5_TYPE (0x4000) #define C_GROUP_3DNOW_TYPE (0x8000) #define Immediate___ 0x00ff // bits 3..0: any immediate typedef enum _IMMEDIATE___ { Immediate_, // 8 bits regardless Immediate_1, // shl eax,1 Immediate_CL, // shl eax,cl Immediate_Ib, // 8 bits regardless Immediate_sIb, // sign extend to OS size Immediate_zIb, // zero extend to OS size Immediate_Iv, // 16 or 32 depending on OS size Immediate_Iw, // 16 bits regardless Immediate_Iz, // Word for 16-bit operand-size or doubleword for 32 or 64-bit operand-size Immediate_IvIw, // call_Ap Immediate_IwIb, // enter_IwIb Immediate_O, // mov_ALOb, mov_ObAL, mov_eAXOv, mov_OveAX Immediate_BrOff8, // Relative branch offset byte Immediate_BrOff16, // Relative branch offset word Immediate_BrOff32, // Relative branch offset dword Immediate_Jb, // Relative branch offset byte Immediate_Jv, // Relative branch offset word/dword //PREFIX_ES, // 0x26 segment override prefix. //PREFIX_CS, // 0x2e segment override prefix. //PREFIX_SS, // 0x36 segment override prefix. //PREFIX_DS, // 0x3e segment override prefix. //PREFIX_FS, // 0x64 segment override prefix. //PREFIX_GS, // 0x65 segment override prefix. //PREFIX_66, // 0x66 Operand-size override prefix. //PREFIX_67, // 0x67 Address-size override prefix. //PREFIX_F0, // 0xf0 LOCK //PREFIX_F2, // 0xf2 REPNE/REPNZ (used only with string instructions). //PREFIX_F3, // 0xf3 REPE/REPZ (use only with string instructions). // //STRING_Move, // movs stos lods ins outs (use only with string instructions). //STRING_Comp, // cmps scan (use only with string instructions). //Extended_2byte, // pop cs (use only with two byte instructions). //Extended_Group, // mov al,0x80 (use only with extent opcode byte instructions). //Extended_Float, // fld [bx] (use only with float exten byte instructions). //Extended_Group1,// prefetch (use only with extent opcode byte instructions). //OPCODE_UD, }; typedef enum _OPCODETYPE { //---------------------------------------------- //---------------------------------------------- C_NULL, C_ES,C_CS,C_SS,C_DS,C_FS,C_GS, // 0x26 0x2e 0x36 0x3e 0x64 0x65 segment override // 0x2e 0x3e branch hint prefixes // 0x2e Branch not taken (used only with Jcc instructions). // 0x3e Branch taken (used only with Jcc instructions). C_REX_PREFIX, //---------------------------------------------- C_OPER, // 0x66 Operand-size override prefix. C_ADDR, // 0x67 Address-size override prefix. C_LOCK, // 0xf0 LOCK C_REPN, // 0xf2 REPNE/REPNZ (used only with string instructions). C_REPZ, // 0xf3 REPE/REPZ (use only with string instructions). //---------------------------------------------- C_GRP,C_ESC,C_2BYTE,C_GRP1,C_GRP2,C_3BYTE_0X38,C_3BYTE_0X3A,C_GRP3,C_GRP4,C_GRP5,C_3DNOW_GRP,C_GRP6, //---------------------------------------------- C_MOVS,C_STOS,C_LODS,C_INS,C_OUTS, C_CMPS,C_SCAS, C_IN,C_OUT, //---------------------------------------------- C_LES,C_LCS,C_LSS,C_LDS,C_LFS,C_LGS,C_POPCNT,C_LZCNT, //---------------------------------------------- C_LOOPNZ,C_LOOPZ,C_LOOP,C_JCXZ,C_JMP, //---------------------------------------------- C_MOVUPS,C_MOVUSS,C_MOVLPS,C_UNPCKLPS,C_UNPCKHPS,C_MOVHLPS,C_MOVHPS, C_CVTPS2PS, C_CVTPS2SS, C_CVTTPS2PI, C_CVTTPS2SI,C_CVTPS2PI, C_CVTPS2SI, C_SQRTPS, C_SQRTSS, C_RSQRTPS, C_RSQRTSS, C_RCPPS, C_RCPSS, C_ADDPS, C_ADDSS, C_MULPS, C_MULSS, C_SUBPS, C_SUBSS, C_MINPS, C_MINSS, C_DIVPS, C_DIVSS, C_MAXPS, C_MAXSS, C_CMPPS, C_CMPSS, //---------------------------------------------- //---------------------------------------------- C_ADD,C_OR,C_ADC,C_SBB,C_AND,C_SUB,C_XOR,C_CMP, C_ROL,C_ROR,C_RCL,C_RCR,C_SHL,C_SHR,C_SAL,C_SAR, //---------------------------------------------- //---------------------------------------------- C_DAA,C_DAS,C_AAA,C_AAS, C_INC,C_DEC,C_PUSH,C_POP,C_PUSHA,C_POPA, C_BOUND,C_ARPL,C_IMUL,C_MOVSXD, //---------------------------------------------- //---------------------------------------------- C_JtO, C_JfO, C_JtC, C_JfC, C_JtZ, C_JfZ, C_JfA, C_JtA, C_JtS, C_JfS, C_JtP, C_JfP, C_JtL, C_JfL, C_JfG, C_JtG, C_SETtO, C_SETfO, C_SETtC, C_SETfC, C_SETtZ, C_SETfZ, C_SETfA, C_SETtA, C_SETtS, C_SETfS, C_SETtP, C_SETfP, C_SETtL, C_SETfL, C_SETfG, C_SETtG, C_CMOVtO, C_CMOVfO, C_CMOVtC, C_CMOVfC, C_CMOVtZ, C_CMOVfZ, C_CMOVfA, C_CMOVtA, C_CMOVtS, C_CMOVfS, C_CMOVtP, C_CMOVfP, C_CMOVtL, C_CMOVfL, C_CMOVfG, C_CMOVtG, //---------------------------------------------- //---------------------------------------------- C_TEST,C_NOP,C_XCHG,C_MOV,C_LEA,C_CBW,C_CWD,C_CALL,C_WAIT,C_XCHG_NOP, C_PUSHF,C_POPF,C_SAHF,C_LAHF, C_RET,C_ENTER,C_LEAVE,C_RETF,C_INT1,C_INT3,C_INT,C_INTO,C_IRET, C_AAM,C_AAD, C_SALC,C_XLAT, C_HLT,C_CMC,C_CLC,C_STC,C_CLI,C_STI,C_CLD,C_STD, C_NOT,C_NEG,C_MUL,C_DIV,C_IDIV, // One-byte opcode table completed. //FPU Instruction C_FSTCW,C_FSTENV,C_FCLEX,C_FINIT,C_FSAVE,C_FSTSW,C_FWAIT, C_FADD,C_FMUL,C_FCOM,C_FCOMP,C_FSUB,C_FSUBR,C_FDIV,C_FDIVR, C_FLD,C_FXCH,C_FNOP,C_FCHS,C_FABS,C_FTST, C_FLD1,C_FLDL2T,C_FLDL2E,C_FLDPI,C_FLDLG2, C_FLDLN2, C_FLDZ, C_F2XM1, C_FPTAN, C_FPATAN, C_FXTRACT, C_FPREM1, C_FDECSTP, C_FINCSTP, C_FYL2XP1, C_FSQRT, C_FSINCOS, C_FRNDINT, C_FSCALE, C_FSIN, C_FCOS, C_FLDCW, C_FLDENV, C_FNSTCW, C_FNSTENV, C_FST, C_FSTP, C_FCMOVB, C_FCMOVE, C_FCMOVBE, C_FCMOVU, C_FUCOMPP, C_FIADD,C_FICOM,C_FICOMP,C_FIDIV,C_FIDIVR,C_FIMUL,C_FISUB,C_FISUBR, C_FCMOVNB, C_FCMOVNE, C_FCMOVNBE, C_FCMOVNU, C_FNCLEX, C_FNINIT, C_FUCOMI, C_FCOMI, C_FILD, C_FISTTP, C_FIST, C_FISTP, C_FFREE, C_FUCOM, C_FUCOMP, C_FNSAVE, C_FNSTSW, C_FRSTOR, C_FADDP, C_FMULP, C_FCOMPP, C_FSUBRP, C_FSUBP, C_FDIVRP, C_FDIVP, C_FUCOMIP, C_FCOMIP, C_FBLD, C_FBSTP, C_FXAM, C_FLD2T, C_FYL2X, C_FPREM, //386 CPU Instruction //---------------------------------------------- //---------------------------------------------- C_SLDT,C_STR,C_LLDT,C_LTR,C_VERR,C_VERW, C_SGDT,C_SIDT,C_LGDT,C_LIDT,C_SMSW,C_LMSW, //---------------------------------------------- //---------------------------------------------- C_LAR, C_LSL, C_MOVZX, C_MOVSX, C_RSM,//0F AA RSM Resume operation of interrupted program //Resume from System Management Mode C_BT, C_BTR, C_BTS, C_BTC, C_BSF, C_BSR, C_SHLD, C_SHRD, C_CMPXCHG_XBTS, C_CMPXCHG_IBTS, C_CMPXCHG, C_XADD, C_BSWAP,//Byte Swap C_CLTS, C_CPUID, //0F A2 CPUID Returns processor identification and feature information // to the EAX, EBX, ECX, and EDX registers, according to // the input value entered initially in the EAX register C_MOVAPS, C_CVTPI2PS, C_MOVNTPS, C_UCOMISS, C_COMISS, C_MOVMSKPS, C_ANDPS, C_ANDNPS, C_ORPS, C_XORPS, C_XORPD, C_MOVNTI, C_PINSRW, C_PEXTRW, C_SHUFPS, C_PSRLW, C_PSRLD, C_PSRLQ, C_PADDQ, C_PMULLW, C_MOVQ, C_PMOVMSKB, C_CVTPS2PD, C_CVTDQ2PS, C_PSHUFW, C_PCMPEQB, C_PCMPEQW, C_PCMPEQD, C_EMMS, C_PREFETCH, C_FXSAVE, C_FXRSTOR, C_LDMXCSR, C_STMXCSR, C_XSAVE, C_XRSTOR, C_WRMSR, //0F 30 WRMSR Write the value in EDX:EAX to MSR specified by ECX C_RDTSC, //0F 31 RDTSC Read time-stamp counter into EDX:EAX C_RDMSR, //0F 32 RDMSR Load MSR specified by ECX into EDX:EAX C_RDPMC, //0F 33 RDPMC Read performance-monitoring counter specified by ECX into EDX:EAX C_SYSCALL, C_SYSRET, C_SYSENTER, //0F 34 Fast call to privilege level 0 system procedures C_SYSEXIT, //0F 35 Fast return to privilege level 3 user code C_GETSEC, C_INVD, //0F 08 INVD Flush internal caches; initiate flushing of external caches. C_WBINVD, //0F 09 WBINVD Write back and flush Internal caches; initiate writing-back //and flushing of external caches C_INVLPG, C_CMPXCHG8B, C_CMPXCHG16B, C_PUNPCKLBW, C_PUNPCKLWD, C_PUNPCKLDQ, C_PACKSSWB, C_PCMPGTB, C_PCMPGTW, C_PCMPGTD, C_PACKUSWB, C_PUNPCKHBW, C_PUNPCKHWD, C_PUNPCKHDQ, C_PACKSSDW, C_PUNPCKLQDQ, C_PUNPCKHQDQ, C_MOVD, C_PSUBB, C_PSUBW, C_PSUBD, C_PSUBQ, C_PADDB, C_PADDW, C_PADDD, C_PSUBUSB, C_PSUNUSW, C_PMINUB, C_PAND, C_PADDUSB, C_PADDUSW, C_PMAXUB, C_PANDN, C_PAVGB, C_PSRAW, C_PSRAD, C_PAVGW, C_PMULHUW, C_PMULHW, C_CVTPD2DQ, C_MOVNTQ, C_PSUBSB, C_PSUBSW, C_PMINSW, C_POR, C_PADDSB, C_PADDSW, C_PMAXSW, C_PXOR, C_PSLLW, C_PSLLD, C_PSLLQ, C_PMULUDQ, C_PMADDWD, C_PSADBW, C_MASKMOVQ, C_CLFLUSH, C_LFENCE, C_MFENCE, C_SFENCE, C_UD2, C_VMPTRLD, C_VMCLEAR, C_VMXON, C_VMPTRST, C_VMCALL, C_VMLAUNCH, C_VMRESUME, C_VMXOFF, C_VMREAD, C_VMWRITE, C_MONITOR, C_MWAIT, C_SWAPGS, C_PSHUFB, C_PHADDW, C_PHADDD, C_PHADDSW, C_PMADDUDSW, C_PHSUBW, C_PHSUBD, C_PHSUBSW, C_PSIGNB, C_PSIGNW, C_PSIGND, C_PMULHRSW, C_PABSB, C_PABSW, C_PABSD, C_PALIGNR, C_PSHUFD, C_PSHUFHW, C_PSHUFLW, C_HADDPD, C_HADDPS, C_HSUBPD, C_HSUBPS, C_MOVDQA, C_MOVDQU, C_MOVMSKPD, C_SQRTPD, C_SQRTSD, C_ANDPD, C_ANDNPD, C_ORPD, C_ADDPD, C_ADDSD, C_MULPD, C_MULSD, C_CVTPD2PS, C_CVTSD2SS, C_CVTSS2SD, C_CVTPS2DQ, C_CVTTPS2DQ, C_SUBPD, C_SUBSD, C_MINPD, C_MINSD, C_DIVPD, C_DIVSD, C_MAXPD, C_MAXSD, C_MOVUPD, C_MOVSD, C_MOVSS, C_MOVLPD, C_MOVDDUP, C_MOVSLDUP, C_UNPCKLPD, C_UNPCKHPD, C_MOVHPD, C_MOVSHDUP, C_MOVLHPS, C_MOVAPD, C_CVTPI2PD, C_CVTSI2SD, C_CVTSI2SS, C_MOVNTPD, C_MOVNTSD, C_MOVNTSS, C_CVTTPD2PI, C_CVTTSD2SI, C_CVTTSS2SI, C_CVTPD2PI, C_CVTSD2SI, C_CVTSS2SI, C_UCOMISD, C_COMISD, C_ADDSUBPD, C_ADDSUBPS, C_MOVDQ2Q, C_MOVQ2DQ, C_PSUBUSW, C_CVTTPD2DQ, C_CVTDQ2PD, C_MOVNTDQ, C_LDDQU, C_MASKMOVDQU, C_PMADDUBSW, C_PMOVSXBW, C_PMOVSXBD, C_PMOVSXBQ, C_PMOVSXWD, C_PMOVSXWQ, C_PMOVSXDQ, C_PMULDQ, C_PCMPEQQ, C_MOVNTDQA, C_PACKUSDW, C_PMOVZXBW, C_PMOVZXBD, C_PMOVZXBQ, C_PMOVZXWD, C_PMOVZXWQ, C_PMOVZXDQ, C_PCMPGTQ, C_PMINSB, C_PMINSD, C_PMINUW, C_PMINUD, C_PMAXSB, C_PMAXSD, C_PMAXUW, C_PMAXUD, C_PMULLD, C_PHMINPOSUW, C_CRC32, C_PBLENDVB, C_BLENDVPS, C_BLENDVPD, C_PTEST, C_ROUNDPS, C_ROUNDPD, C_ROUNDSS, C_ROUNDSD, C_BLENDPS, C_BLENDPD, C_PBLENDW, C_PEXTRB, C_PEXTRD, C_PEXTRQ, C_EXTRACTPS, C_PINSRB, C_INSERTPS, C_PINSRD, C_DPPS, C_DPPD, C_MPSADBW, C_PCLMULQDQ, C_PCMPESTRM, C_PCMPESTRI, C_PCMPISTRM, C_PCMPISTRI, C_SHUFPD, C_INVEPT, C_INVVPID, C_MOVBE, C_AESKEYGENASSIST, C_AESIMC, C_AESENC, C_AESENCLAST, C_AESDEC, C_AESDECLAST, C_XGETBV, C_XSETBV, C_RDTSCP, C_PAUSE, C_CMPPD, C_CMPSD, C_PSRLDQ, C_PSLLDQ, //AMD CPU INSTRUCTION C_VMRUN, C_VMMCALL, C_VMLOAD, C_VMSAVE, C_STGI, C_CLGI, C_SKINIT, C_INVLPGA, C_EXTRQ, //AMD 3DNOW! INSTRUCTION C_PI2FW, C_PI2FD, C_PF2IW, C_PF2ID, C_PFNACC, C_PFPNACC, C_PFCMPGE, C_PFMIN, C_PFRCP, C_PFRSQRT, C_PFSUB, C_PFADD, C_PFCMPGT, C_PFMAX, C_PFRCPIT1, C_PFRSQIT1, C_PFSUBR, C_PFACC, C_PFCMPEQ, C_PFMUL, C_PFRCPIT2, C_PMULHRW, C_PSWAPD, C_PAVGUSB, C_3DNOW, // Two-byte opcode table completed. //--------------------------------------- C_DBYTE, C_DWORD, C_DDWORD, C_TAIL }; /* A.1. KEY TO ABBREVIATIONS Operands are identified by a two-character code of the form Zz. The first character, an uppercase letter, specifies the addressing method; the second character, a lowercase letter, specifies the type of operand. A.1.1. Codes for Addressing Method The following abbreviations are used for addressing methods: A Direct address. The instruction has no ModR/M byte; the address of the operand is en-coded in the instruction; and no base register, index register, or scaling factor can be applied (for example, far JMP (EA)). C The reg field of the ModR/M byte selects a control register (for example, MOV (0F20, 0F22)). D The reg field of the ModR/M byte selects a debug register (for example, MOV (0F21,0F23)). E A ModR/M byte follows the opcode and specifies the operand. The operand is either a general-purpose register or a memory address. If it is a memory address, the address is computed from a segment register and any of the following values: a base register, an index register, a scaling factor, a displacement. F EFLAGS Register. G The reg field of the ModR/M byte selects a general register (for example, AX (000)). I Immediate data. The operand value is encoded in subsequent bytes of the instruction. J The instruction contains a relative offset to be added to the instruction pointer register (for example, JMP (0E9), LOOP). M The ModR/M byte may refer only to memory (for example, BOUND, LES, LDS, LSS, LFS, LGS, CMPXCHG8B). O The instruction has no ModR/M byte; the offset of the operand is coded as a word or double word (depending on address size attribute) in the instruction. No base register, index register, or scaling factor can be applied (for example, MOV (A0A3)). P The reg field of the ModR/M byte selects a packed quadword MMX?technology reg-ister. Q A ModR/M byte follows the opcode and specifies the operand. The operand is either an MMX?technology register or a memory address. If it is a memory address, the ad-dress is computed from a segment register and any of the following values: a base reg-ister, an index register, a scaling factor, and a displacement. R The mod field of the ModR/M byte may refer only to a general register (for example, MOV (0F20-0F24, 0F26)). S The reg field of the ModR/M byte selects a segment register (for example, MOV (8C,8E)). T The reg field of the ModR/M byte selects a test register (for example, MOV (0F24,0F26)). V The reg field of the ModR/M byte selects a packed SIMD floating-point register. W An ModR/M byte follows the opcode and specifies the operand. The operand is either a SIMD floating-point register or a memory address. If it is a memory address, the ad-dress is computed from a segment register and any of the following values: a base reg-ister, an index register, a scaling factor, and a displacement X Memory addressed by the DS:SI register pair (for example, MOVS, CMPS, OUTS, or LODS). Y Memory addressed by the ES:DI register pair (for example, MOVS, CMPS, INS, STOS, or SCAS). A.1.2. Codes for Operand Type The following abbreviations are used for operand types: a Two one-word operands in memory or two double-word operands in memory, depend-ing on operand-size attribute (used only by the BOUND instruction). b Byte, regardless of operand-size attribute. c Byte or word, depending on operand-size attribute. d Doubleword, regardless of operand-size attribute. dq Double-quadword, regardless of operand-size attribute. p 32-bit or 48-bit pointer, depending on operand-size attribute. pi Quadword MMX?technology register (e.g. mm0) ps 128-bit packed FP single-precision data. q Quadword, regardless of operand-size attribute. s 6-byte pseudo-descriptor. ss Scalar element of a 128-bit packed FP single-precision data. si Doubleword integer register (e.g., eax) v Word or doubleword, depending on operand-size attribute. w Word, regardless of operand-size attribute. A.1.3. Register Codes When an operand is a specific register encoded in the opcode, the register is identified by its name (for example, AX, CL, or ESI). The name of the register indicates whether the register is 32, 16, or 8 bits wide. A register identifier of the form eXX is used when the width of the register depends on the operand-size attribute. For example, eAX indicates that the AX register is used when the operand-size attribute is 16, and the EAX register is used when the operand-size at-tribute is 32. */ typedef enum _OPERATOR_DATA_TYPE { D__NONE, // The reg field of the ModR/M byte selects a control register (for example, // MOV (0F20, 0F22)). D__Cd, // The reg field of the ModR/M byte selects a debug register (for example, // MOV (0F21,0F23)). D__Dd, // The reg field of the ModR/M byte selects a test register (for example, // MOV (0F24,0F26)). D__Td, // EFLAGS Register. D__Fv, // The reg field of the ModR/M byte selects a general register (for example, AX (000)). D__Gb,D__rGb,D__wGb,D__rwGb, D__Gw,D__rGw,D__wGw,D__rwGw, D__Gv,D__rGv,D__wGv,D__rwGv, D__Gd,D__rGd,D__wGd,D__rwGd, D__Gy,D__rGy,D__wGy,D__rwGy, // Immediate data. The operand value is encoded in subsequent bytes of the instruction. D__Ib,D__Ib2,D__sIb,D__Iw,D__Id,D__Iv,D__1,D__Iz, // The instruction contains a relative offset to be added to the instruction pointer register // (for example, JMP (0E9), LOOP). D__Jb,D__Jz, // The instruction has no ModR/M byte; the offset of the operand is coded as a word or // double word (depending on address size attribute) in the instruction. No base register, // index register, or scaling factor can be applied (for example, MOV (A0-A3)). D__Ob,D__rOb,D__wOb,D__rwOb, D__Ov,D__rOv,D__wOv,D__rwOv, // Direct address. The instruction has no ModR/M byte; the address of the operand is en-coded // in the instruction; and no base register, index register, or scaling factor can be // applied (for example, far JMP (EA)). D__Ap, // The reg field of the ModR/M byte selects a packed quadword MMX?technology reg-ister. D__Pd,D__rPd,D__wPd,D__rwPd, D__Pq,D__rPq,D__wPq,D__rwPq, D__Ppi,D__rPpi,D__wPpi,D__rwPpi, // The mod field of the ModR/M byte may refer only to a general register (for example, // MOV (0F20-0F24, 0F26)). D__Rd, D__Ry, // The reg field of the ModR/M byte selects a segment register (for example, MOV //(8C,8E)). D__Sw, //unkown opdata D__NTA, // The reg field of the ModR/M byte selects a test register (for example, MOV // (0F24,0F26)). D__T0,D__T1,D__T2,D__T3,D__T4,D__T5,D__T6,D__T7, // The reg field of the ModR/M byte selects a packed SIMD floating-point register. // Memory addressed by the DS:SI register pair (for example, MOVS, CMPS, OUTS, or // LODS). D__Xb,D_rXb,D_wXb, D__Xw,D_rXw,D_wXw, D__Xv,D_rXv,D_wXv, D__Xd,D_rXd,D_wXd, D__Xz,D_rXz,D_wXz, // Memory addressed by the ES:DI register pair (for example, MOVS, CMPS, INS, //STOS, or SCAS). D__Yb,D__rYb,D__wYb, D__Yw,D__rYw,D__wYw, D__Yv,D__rYv,D__wYv, D__Yd,D__rYd,D__wYd, D__Yz,D__rYz,D__wYz, // When an operand is a specific register encoded in the opcode, the register is identified by its // name (for example, AX, CL, or ESI). The name of the register indicates whether the register is // 32, 16, or 8 bits wide. A register identifier of the form eXX is used when the width of the register // depends on the operand-size attribute. For example, eAX indicates that the AX register is used // when the operand-size attribute is 16, and the EAX register is used when the operand-size at-tribute // is 32. D__AL,D__CL,D__DL,D__BL,D__AH,D__CH,D__DH,D__BH, D__AL_r8L,D__CL_r9L,D__DL_r10L,D__BL_r11L,D__AH_r12L,D__CH_r13L,D__DH_r14L,D__BH_r15L, D__AX,D__CX,D__DX,D__BX,D__SP,D__BP,D__SI,D__DI, D__eAX,D__eCX,D__eDX,D__eBX,D__eSP,D__eBP,D__eSI,D__eDI, D__rAX_r8,D__rCX_r9,D__rDX_r10,D__rBX_r11,D__rSP_r12,D__rBP_r13,D__rSI_r14,D__rDI_r15, D__rAX,D__rCX,D__rDX,D__rBX,D__rSP,D__rBP,D__rSI,D__rDI, #define D__eX D__eAX D__EAX,D__ECX,D__EDX,D__EBX,D__ESP,D__EBP,D__ESI,D__EDI, D__RAX_EAX_R8_R8D,D__RCX_ECX_R9_R9D,D__RDX_EDX_R10_R10D,D__RBX_EBX_R11_R11D,D__RSP_ESP_R12_R12D,D__RBP_EBP_R13_R13D,D__RSI_ESI_R14_R14D,D__RDI_EDI_R15_R15D, D__ES,D__CS,D__SS,D__DS,D__FS,D__GS, D__st, D__st0,D__st1,D__st2,D__st3,D__st4,D__st5,D__st6,D__st7, // A ModR/M byte follows the opcode and specifies the operand. The operand is either a // general-purpose register or a memory address. If it is a memory address, the address is // computed from a segment register and any of the following values: a base register, an // index register, a scaling factor, a displacement. D__Eb,D__rEb,D__wEb,D__rwEb, D__Ew,D__rEw,D__wEw,D__rwEw, D__Ev,D__rEv,D__wEv,D__rwEv, D__Ed,D__rEd,D__wEd,D__rwEd, D__Ep,D__rEp,D__wEp,D__rwEp, D__Ey,D__rEy,D__wEy,D__rwEy, // The ModR/M byte may refer only to memory (for example, LEA,BOUND, LES, LDS, LSS, // LFS, LGS, CMPXCHG8B). D__M,D__rM,D__wM,D__rwM, D__Ma,D__rMa,D__wMa,D__rwMa, D__Mb,D__rMb,D__wMb,D__rwMb, D__Mp,D__rMp,D__wMp,D__rwMp, D__Ms,D__rMs,D__wMs,D__rwMs, D__Mq,D__wMq,D__rMq,D__rwMq, D__MqMdq,D__wMqMdq,D__rMqMdq,D__rwMqMdq, D__Mps,D__wMps,D__rMps,D__rwMps, D__Mpd,D__wMpd,D__rMpd,D__rwMpd, D__Mdq,D__wMdq,D__rMdq,D__rwMdq, D__Md,D__rMd,D__wMd,D__rwMd, D__Mw,D__rMw,D__wMw,D__rwMw, //D__MwRv,D__rMwRv,D__wMwRv,D__rwMwRv, D__wMwRv, D__Mv,D__rMv,D__wMv,D__rwMv, D__My,D__rMy,D__wMy,D__rwMy, // A ModR/M byte follows the opcode and specifies the operand. The operand is either // an MMX?technology register or a memory address. If it is a memory address, the ad-dress // is computed from a segment register and any of the following values: a base reg-ister, // an index register, a scaling factor, and a displacement. D__Qd,D__wQd,D__rQd,D__rwQd, D__Qq,D__wQq,D__rQq,D__rwQq, D__Qpi,D__wQpi,D__rQpi,D__rwQpi, D__Qdq,D__wQdq,D__rQdq,D__rwQdq, // An ModR/M byte follows the opcode and specifies the operand. The operand is either // a SIMD floating-point register or a memory address. If it is a memory address, the ad-dress // is computed from a segment register and any of the following values: a base reg-ister, // an index register, a scaling factor, and a displacement D__Vpd,D__rVpd,D__wVpd,D__rwVpd, D__Vdq,D__rVdq,D__wVdq,D__rwVdq, D__Vsd,D__wVsd,D__rVsd,D__rwVsd, D__Vq,D__wVq,D__rVq,D__rwVq, D__Vps,D__wVps,D__rVps,D__rwVps, D__Vss,D__wVss,D__rVss,D__rwVss, D__Vy,D__wVy,D__rVy,D__rwVy, D__Wsd,D__wWsd,D__rWsd,D__rwWsd, D__Wdq,D__rWdq,D__wWdq,D__rwWdq, D__Wpd,D__wWpd,D__rWpd,D__rwWpd, D__Wq,D__wWq,D__rWq,D__rwWq, D__Wps,D__wWps,D__rWps,D__rwWps, D__Wss,D__wWss,D__rWss,D__rwWss, D__Ups,D__wUps,D__rUps,D__rwUps, D__Upd,D__wUpd,D__rUpd,D__rwUpd, D__Uq,D__wUq,D__rUq,D__rwUq, D__Udq,D__wUdq,D__rUdq,D__rwUdq, D__Nq,D__wNq,D__rNq,D__rwNq, // D__word_int, D__dword_int, D__qword_int, D__single_real, D__double_real, D__extend_real, D__packed_BCD, D__2b, D__14_28b, D__98_108b, //ΪִжIJ D__tO,D__fO,D__tC,D__fC,D__tZ,D__fZ,D__fA,D__tA, D__tS,D__fS,D__tP,D__fP,D__tL,D__fL,D__fG,D__tG, D__LOOPNZ, D__LOOPZ, D__LOOP, D__JCXZ, D__JMP, //ΪIJ D_NEAR,D_MFAR, // The ModR/M byte may refer only to memory or word register for call and jmp D_DBYTE, // db D_DWORD, // dw D_DDWORD,// dd D_STRING,// db "string" }OPCODETYPE; #endif ================================================ FILE: Project/EXEAnalyzer/Source/IntelDis.cpp ================================================ #include "StdAfx.h" #include "IntelDef.h" #include "IntelDis.h" LOCKREPXX LockRepxx[]= { {"LOCK " ,0xf0}, {"REP " ,0xf3}, {"REPZ " ,0xf3}, {"REPE " ,0xf3}, {"REPNE " ,0xf2}, {"REPNZ " ,0xf2} }; OPDATAWIDE OpDataWide[]= { {1, "SHORT PTR" }, {2, "NEAR PTR" }, {4, "FAR PTR" }, {1, "BYTE PTR" }, {2, "WORD PTR" }, {4, "DWORD PTR" }, {6, "FWORD PTR" }, {8, "QWORD PTR" }, {10, "TBYTE PTR" }, {16, "OWORD PTR" }, }; char *RegAddr16[]= { "[BX+SI]" , "[SI+BX]" , "[BX][SI]" , "[SI][BX]", "[BX+DI]" , "[DI+BX]" , "[BX][DI]" , "[DI][BX]", "[BP+SI]" , "[SI+BP]" , "[BP][SI]" , "[SI][BP]", "[BP+DI]" , "[DI+BP]" , "[BP][DI]" , "[DI][BP]", "[SI]" , "[SI]" , "[SI]" , "[SI]", "[DI]" , "[DI]" , "[DI]" , "[DI]", "[BP]" , "[BP]" , "[BP]" , "[BP]", "[BX]" , "[BX]" , "[BX]" , "[BX]" }; char *xxxxptr[] = { NULL, "BYTE", "WORD", NULL, "DWORD", NULL, "FWORD", NULL, "QWORD", NULL, "TBYTE", NULL, NULL, NULL, NULL, NULL, "OWORD" }; BYTE SegmentValue[8] = { 0x26,0x2e,0x36,0x3e,0x64,0x65,0x00,0x00 }; char *SegReg[8] = { "ES","CS","SS","DS","FS","GS","??","??" }; char *RegByte[8] = { "AL","CL","DL","BL","AH","CH","DH","BH" }; char *RegByteFor64bit[16] = { "AL","CL","DL","BL","SPL","BPL","SIL","DIL", //"R8L","R9L","R10L","R11L","R12L","R13L","R14L","R15L", "R8B","R9B","R10B","R11B","R12B","R13B","R14B","R15B", }; char *RegWord[16] = { "AX","CX","DX","BX","SP","BP","SI","DI", "R8W","R9W","R10W","R11W","R12W","R13W","R14W","R15W", }; char *RegQWord[16] = { "RAX","RCX","RDX","RBX","RSP","RBP","RSI","RDI", "R8","R9","R10","R11","R12","R13","R14","R15", }; char *RegDWord[16] = { "EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI", "R8D","R9D","R10D","R11D","R12D","R13D","R14D","R15D", }; char *RegMMXQWord[8] = { "MM0","MM1","MM2","MM3","MM4","MM5","MM6","MM7", }; char *RegCR[16] = { "CR0","CR1","CR2","CR3","CR4","CR5","CR6","CR7", "CR8","CR9","CR10","CR11","CR12","CR13","CR14","CR15", }; char *RegTR[16] = { "TR0","TR1","TR2","TR3","TR4","TR5","TR6","TR7", "TR8","TR9","TR10","TR11","TR12","TR13","TR14","TR15", }; char *RegDR[16] = { "DR0","DR1","DR2","DR3","DR4","DR5","DR6","DR7", "DR8","DR9","DR10","DR11","DR12","DR13","DR14","DR15", }; char *RegXMMOWord[16] = { "XMM0","XMM1","XMM2","XMM3","XMM4","XMM5","XMM6","XMM7", "XMM8","XMM9","XMM10","XMM11","XMM12","XMM13","XMM14","XMM15", }; char *RegFPU[9] = { "ST(0)","ST(1)","ST(2)","ST(3)","ST(4)","ST(5)","ST(6)","ST(7)","ST" }; char *FlagS[2][8]= { {"NV","UP","DI","PL","NZ","NA","PO","NC"}, {"OV","DN","EI","NG","ZR","AC","PE","CY"} }; char *FlagICE[2][8]= { {"o","d","i","s","z","a","p","c"}, {"O","D","I","S","Z","A","P","C"} }; BYTE Segment[8] = { 0x26,0x2e,0x36,0x3e,0x64,0x65,0x00,0x00 }; char *CtrReg[8] = { "IP","EIP","FLAGS","FLAG","FL","EFLAGS","EFLAG","EFL" }; char *RegName[][8] = { {"ES","CS","SS","DS","FS","GS","??","??"}, {"AL","CL","DL","BL","AH","CH","DH","BH"}, {"AX","CX","DX","BX","SP","BP","SI","DI"}, {"EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI"} }; char *Emblem[0x200] = { "ES","CS","SS","DS","FS","GS", "AL","CL","DL","BL","AH","CH","DH","BH", "AX","CX","DX","BX","SP","BP","SI","DI", "EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI", //---------------------------------- "IP","EIP","FLAGS","EFLAGS", //---------------------------------- "BYTE","WORD","DWORD","FWORD","QWORD","TWORD", //---------------------------------- "SHORT","NEAR","FAR","PTR", //---------------------------------- "ADD","ADC","SUB","SBB","MUL","IDIV", "XOR","AND","OR" ,"NOT","NEG","TEST" }; DIS_OPCODE_T Group0x0f00[] = //CPUģʽָ { {R_M, C_SLDT, D__wMwRv, D__NONE, D__NONE, "SLDT" ,0x000f,2|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x0 {R_M, C_STR, D__wMwRv, D__NONE, D__NONE, "STR" ,0x000f,2|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x1 {R_M, C_LLDT, D__rEw, D__NONE, D__NONE, "LLDT" ,0x000f,2|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_LTR, D__rEw, D__NONE, D__NONE, "LTR" ,0x000f,2|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M, C_VERR, D__rEw, D__NONE, D__NONE, "VERR" ,0x000f,2|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_VERW, D__rEw, D__NONE, D__NONE, "VERW" ,0x000f,2|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_NULL }, //0x6 {R_M, C_NULL } //0x7 }; DIS_OPCODE_T Group0x0fba[] = //80386 { {R_M, C_NULL, }, //0x0 {R_M, C_NULL, }, //0x1 {R_M, C_NULL, }, //0x2 {R_M, C_NULL, }, //0x3 {R_M |Immediate_Ib, C_BT, D__rEv, D__Ib, D__NONE, "BT" ,0xba0f,2|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x4 {R_M |Immediate_Ib, C_BTS, D__Ev, D__Ib, D__NONE, "BTS" ,0xba0f,2|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x5 {R_M |Immediate_Ib, C_BTR, D__Ev, D__Ib, D__NONE, "BTR" ,0xba0f,2|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x6 {R_M |Immediate_Ib, C_BTC, D__Ev, D__Ib, D__NONE, "BTC" ,0xba0f,2|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)} //0x7 }; //--------------------------------------------------------------- //intel ָ //---------------------------------------------------------------- DIS_OPCODE_T Group0x80[] = //immediate group { {R_M |Immediate_Ib, C_ADD, D__Eb, D__Ib, D__NONE, "ADD" ,0x80,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_Ib, C_OR, D__Eb, D__Ib, D__NONE, "OR" ,0x80,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_Ib, C_ADC, D__Eb, D__Ib, D__NONE, "ADC" ,0x80,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_Ib, C_SBB, D__Eb, D__Ib, D__NONE, "SBB" ,0x80,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_Ib, C_AND, D__Eb, D__Ib, D__NONE, "AND" ,0x80,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_Ib, C_SUB, D__Eb, D__Ib, D__NONE, "SUB" ,0x80,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_Ib, C_XOR, D__Eb, D__Ib, D__NONE, "XOR" ,0x80,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_Ib, C_CMP, D__rEb, D__Ib, D__NONE, "CMP" ,0x80,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0x81[] = //immediate group { {R_M |Immediate_Iz, C_ADD, D__Ev, D__Iz, D__NONE, "ADD" ,0x81,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_Iz, C_OR, D__Ev, D__Iz, D__NONE, "OR" ,0x81,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_Iz, C_ADC, D__Ev, D__Iz, D__NONE, "ADC" ,0x81,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_Iz, C_SBB, D__Ev, D__Iz, D__NONE, "SBB" ,0x81,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_Iz, C_AND, D__Ev, D__Iz, D__NONE, "AND" ,0x81,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_Iz, C_SUB, D__Ev, D__Iz, D__NONE, "SUB" ,0x81,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_Iz, C_XOR, D__Ev, D__Iz, D__NONE, "XOR" ,0x81,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_Iz, C_CMP, D__rEv, D__Iz, D__NONE, "CMP" ,0x81,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0x82[] = //immediate group { {R_M |Immediate_Ib|I_64, C_ADD, D__Eb, D__Ib, D__NONE, "ADD" ,0x82,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_Ib|I_64, C_OR, D__Eb, D__Ib, D__NONE, "OR" ,0x82,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_Ib|I_64, C_ADC, D__Eb, D__Ib, D__NONE, "ADC" ,0x82,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_Ib|I_64, C_SBB, D__Eb, D__Ib, D__NONE, "SBB" ,0x82,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_Ib|I_64, C_AND, D__Eb, D__Ib, D__NONE, "AND" ,0x82,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_Ib|I_64, C_SUB, D__Eb, D__Ib, D__NONE, "SUB" ,0x82,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_Ib|I_64, C_XOR, D__Eb, D__Ib, D__NONE, "XOR" ,0x82,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_Ib|I_64, C_CMP, D__rEb, D__Ib, D__NONE, "CMP" ,0x82,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0x83[] = //immediate group { {R_M |Immediate_sIb, C_ADD, D__Ev, D__sIb, D__NONE, "ADD" ,0x83,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_sIb, C_OR, D__Ev, D__sIb, D__NONE, "OR" ,0x83,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_sIb, C_ADC, D__Ev, D__sIb, D__NONE, "ADC" ,0x83,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_sIb, C_SBB, D__Ev, D__sIb, D__NONE, "SBB" ,0x83,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_sIb, C_AND, D__Ev, D__sIb, D__NONE, "AND" ,0x83,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_sIb, C_SUB, D__Ev, D__sIb, D__NONE, "SUB" ,0x83,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_sIb, C_XOR, D__Ev, D__sIb, D__NONE, "XOR" ,0x83,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_sIb, C_CMP, D__rEv, D__sIb, D__NONE, "CMP" ,0x83,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xc0[] = //shift group { {R_M |Immediate_Ib, C_ROL, D__Eb, D__Ib, D__NONE, "ROL" ,0xc0,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_Ib, C_ROR, D__Eb, D__Ib, D__NONE, "ROR" ,0xc0,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_Ib, C_RCL, D__Eb, D__Ib, D__NONE, "RCL" ,0xc0,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_Ib, C_RCR, D__Eb, D__Ib, D__NONE, "RCR" ,0xc0,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_Ib, C_SHL, D__Eb, D__Ib, D__NONE, "SHL" ,0xc0,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_Ib, C_SHR, D__Eb, D__Ib, D__NONE, "SHR" ,0xc0,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_Ib, C_SAL, D__Eb, D__Ib, D__NONE, "SAL" ,0xc0,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_Ib, C_SAR, D__Eb, D__Ib, D__NONE, "SAR" ,0xc0,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xc1[] = //shift group { {R_M |Immediate_Ib, C_ROL, D__Ev, D__Ib, D__NONE, "ROL" ,0xc1,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_Ib, C_ROR, D__Ev, D__Ib, D__NONE, "ROR" ,0xc1,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_Ib, C_RCL, D__Ev, D__Ib, D__NONE, "RCL" ,0xc1,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_Ib, C_RCR, D__Ev, D__Ib, D__NONE, "RCR" ,0xc1,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_Ib, C_SHL, D__Ev, D__Ib, D__NONE, "SHL" ,0xc1,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_Ib, C_SHR, D__Ev, D__Ib, D__NONE, "SHR" ,0xc1,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_Ib, C_SAL, D__Ev, D__Ib, D__NONE, "SAL" ,0xc1,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_Ib, C_SAR, D__Ev, D__Ib, D__NONE, "SAR" ,0xc1,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xc6[] = //mov group { {R_M |Immediate_Ib, C_MOV, D__wEb, D__Ib, D__NONE, "MOV" ,0xc6,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x0 {R_M, C_NULL }, //0x1 {R_M, C_NULL }, //0x2 {R_M, C_NULL }, //0x3 {R_M, C_NULL }, //0x4 {R_M, C_NULL }, //0x5 {R_M, C_NULL }, //0x6 {R_M, C_NULL }, //0x7 }; DIS_OPCODE_T Group0xc7[] = //mov group { {R_M |Immediate_Iz, C_MOV, D__wEv, D__Iz, D__NONE, "MOV" ,0xc7,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x0 {R_M, C_NULL }, //0x1 {R_M, C_NULL }, //0x2 {R_M, C_NULL }, //0x3 {R_M, C_NULL }, //0x4 {R_M, C_NULL }, //0x5 {R_M, C_NULL }, //0x6 {R_M, C_NULL }, //0x7 }; DIS_OPCODE_T Group0xd0[] = //shift group { {R_M |Immediate_1, C_ROL, D__Eb, D__1, D__NONE, "ROL" ,0xd0,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_1, C_ROR, D__Eb, D__1, D__NONE, "ROR" ,0xd0,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_1, C_RCL, D__Eb, D__1, D__NONE, "RCL" ,0xd0,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_1, C_RCR, D__Eb, D__1, D__NONE, "RCR" ,0xd0,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_1, C_SHL, D__Eb, D__1, D__NONE, "SHL" ,0xd0,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_1, C_SHR, D__Eb, D__1, D__NONE, "SHR" ,0xd0,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_1, C_SAL, D__Eb, D__1, D__NONE, "SAL" ,0xd0,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_1, C_SAR, D__Eb, D__1, D__NONE, "SAR" ,0xd0,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xd1[] = //shift group { {R_M |Immediate_1, C_ROL, D__Ev, D__1, D__NONE, "ROL" ,0xd1,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M |Immediate_1, C_ROR, D__Ev, D__1, D__NONE, "ROR" ,0xd1,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M |Immediate_1, C_RCL, D__Ev, D__1, D__NONE, "RCL" ,0xd1,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M |Immediate_1, C_RCR, D__Ev, D__1, D__NONE, "RCR" ,0xd1,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M |Immediate_1, C_SHL, D__Ev, D__1, D__NONE, "SHL" ,0xd1,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M |Immediate_1, C_SHR, D__Ev, D__1, D__NONE, "SHR" ,0xd1,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M |Immediate_1, C_SAL, D__Ev, D__1, D__NONE, "SAL" ,0xd1,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M |Immediate_1, C_SAR, D__Ev, D__1, D__NONE, "SAR" ,0xd1,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xd2[] = //shift group { {R_M, C_ROL, D__Eb, D__CL, D__NONE, "ROL" ,0xd2,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M, C_ROR, D__Eb, D__CL, D__NONE, "ROR" ,0xd2,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M, C_RCL, D__Eb, D__CL, D__NONE, "RCL" ,0xd2,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M, C_RCR, D__Eb, D__CL, D__NONE, "RCR" ,0xd2,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M, C_SHL, D__Eb, D__CL, D__NONE, "SHL" ,0xd2,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M, C_SHR, D__Eb, D__CL, D__NONE, "SHR" ,0xd2,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M, C_SAL, D__Eb, D__CL, D__NONE, "SAL" ,0xd2,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M, C_SAR, D__Eb, D__CL, D__NONE, "SAR" ,0xd2,1|C_GROUP_0_TYPE|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xd3[] = //shift group { {R_M, C_ROL, D__Ev, D__CL, D__NONE, "ROL" ,0xd3,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M, C_ROR, D__Ev, D__CL, D__NONE, "ROR" ,0xd3,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M, C_RCL, D__Ev, D__CL, D__NONE, "RCL" ,0xd3,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2 {R_M, C_RCR, D__Ev, D__CL, D__NONE, "RCR" ,0xd3,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x3 {R_M, C_SHL, D__Ev, D__CL, D__NONE, "SHL" ,0xd3,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M, C_SHR, D__Ev, D__CL, D__NONE, "SHR" ,0xd3,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M, C_SAL, D__Ev, D__CL, D__NONE, "SAL" ,0xd3,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M, C_SAR, D__Ev, D__CL, D__NONE, "SAR" ,0xd3,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0x7 }; DIS_OPCODE_T Group0xf6[] = //test/not/neg/mul/div group { {R_M |Immediate_Ib, C_TEST, D__rEb, D__Ib, D__NONE, "TEST" ,0xf6,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x0 {0, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0xf6,1|C_GROUP_0_TYPE|(1<<16)}, //0x1 {R_M, C_NOT, D__Eb, D__NONE, D__NONE, "NOT" ,0xf6,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x2 {R_M, C_NEG, D__Eb, D__NONE, D__NONE, "NEG" ,0xf6,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x3 {R_M, C_MUL, D__rEb, D__NONE, D__NONE, "MUL" ,0xf6,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_IMUL, D__rEb, D__NONE, D__NONE, "IMUL" ,0xf6,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_DIV, D__rEb, D__NONE, D__NONE, "DIV" ,0xf6,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_IDIV, D__rEb, D__NONE, D__NONE, "IDIV" ,0xf6,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x7 }; DIS_OPCODE_T Group0xf7[] = //test/not/neg/mul/div group { {R_M |Immediate_Iz, C_TEST, D__rEv, D__Iz, D__NONE, "TEST" ,0xf7,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x0 {0,C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0xf7,1|C_GROUP_0_TYPE|(1<<16)}, //0x1 {R_M, C_NOT, D__Ev, D__NONE, D__NONE, "NOT" ,0xf7,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x2 {R_M, C_NEG, D__Ev, D__NONE, D__NONE, "NEG" ,0xf7,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x3 {R_M, C_MUL, D__rEv, D__NONE, D__NONE, "MUL" ,0xf7,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_IMUL, D__rEv, D__NONE, D__NONE, "IMUL" ,0xf7,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_DIV, D__rEv, D__NONE, D__NONE, "DIV" ,0xf7,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_IDIV, D__rEv, D__NONE, D__NONE, "IDIV" ,0xf7,1|C_GROUP_0_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)} //0x7 }; DIS_OPCODE_T Group0xfe[] = //inc/dec group { {R_M, C_INC, D__Eb, D__NONE, D__NONE, "INC" ,0xfe,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x0 {R_M, C_DEC, D__Eb, D__NONE, D__NONE, "DEC" ,0xfe,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x1 {R_M, C_NULL }, //0x2 {R_M, C_NULL }, //0x3 {R_M, C_NULL }, //0x4 {R_M, C_NULL }, //0x5 {R_M, C_NULL }, //0x6 {R_M, C_NULL }, //0x7 }; DIS_OPCODE_T Group0xff[] = //inc/dec/תָ/push group { {R_M, C_INC, D__rwEv, D__NONE, D__NONE, "INC" ,0xff,1|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x0 {R_M, C_DEC, D__rwEv, D__NONE, D__NONE, "DEC" ,0xff,1|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x1 {R_M|F_64, C_CALL, D__rEv, D__NONE, D__NONE, "CALL" ,0xff,1|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_CALL, D__rEp, D__NONE, D__NONE, "CALL" ,0xff,1|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M|F_64, C_JMP, D__rEv, D__NONE, D__NONE, "JMP" ,0xff,1|C_GROUP_0_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_JMP, D__rEp, D__NONE, D__NONE, "JMP" ,0xff,1|C_GROUP_0_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M|D_64, C_PUSH, D__rEv, D__NONE, D__NONE, "PUSH" ,0xff,1|C_GROUP_0_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_NULL } //0x7 }; DIS_OPCODE_T Group0x8f[] = //pop group { {R_M | D_64, C_POP, D__wEv, D__NONE, D__NONE, "POP" ,0x8f,1|C_GROUP_0_TYPE,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x0 {R_M, C_NULL }, //0x1 {R_M, C_NULL }, //0x2 {R_M, C_NULL }, //0x3 {R_M, C_NULL }, //0x4 {R_M, C_NULL }, //0x5 {R_M, C_NULL }, //0x6 {R_M, C_NULL }, //0x7 }; DIS_OPCODE_T Group0xd8[] = //fpu group { {R_M, C_FADD, D__single_real, D__NONE,D__NONE, "FADD" ,0xd8,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FMUL, D__single_real, D__NONE,D__NONE, "FMUL" ,0xd8,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1 {R_M, C_FCOM, D__single_real, D__NONE,D__NONE, "FCOM" ,0xd8,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_FCOMP, D__single_real, D__NONE,D__NONE, "FCOMP" ,0xd8,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M, C_FSUB, D__single_real, D__NONE,D__NONE, "FSUB" ,0xd8,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_FSUBR, D__single_real, D__NONE,D__NONE, "FSUBR" ,0xd8,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_FDIV, D__single_real, D__NONE,D__NONE, "FDIV" ,0xd8,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_FDIVR, D__single_real, D__NONE,D__NONE, "FDIVR" ,0xd8,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x7 //˫ֽڸָ { 0 , C_FADD, D__st, D__st0, D__NONE, "FADD" ,0xc0d8,2|C_ESC_GROUP_TYPE|(8<<16) ,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc0 { 0 , C_FADD, D__st, D__st1, D__NONE, "FADD" ,0xc1d8,2|C_ESC_GROUP_TYPE|(9<<16) ,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc1 { 0 , C_FADD, D__st, D__st2, D__NONE, "FADD" ,0xc2d8,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc2 { 0 , C_FADD, D__st, D__st3, D__NONE, "FADD" ,0xc3d8,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc3 { 0 , C_FADD, D__st, D__st4, D__NONE, "FADD" ,0xc4d8,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc4 { 0 , C_FADD, D__st, D__st5, D__NONE, "FADD" ,0xc5d8,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc5 { 0 , C_FADD, D__st, D__st6, D__NONE, "FADD" ,0xc6d8,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc6 { 0 , C_FADD, D__st, D__st7, D__NONE, "FADD" ,0xc7d8,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc7 { 0 , C_FMUL, D__st, D__st0, D__NONE, "FMUL" ,0xc8d8,2|C_ESC_GROUP_TYPE|(16<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc8 { 0 , C_FMUL, D__st, D__st1, D__NONE, "FMUL" ,0xc9d8,2|C_ESC_GROUP_TYPE|(17<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc9 { 0 , C_FMUL, D__st, D__st2, D__NONE, "FMUL" ,0xcad8,2|C_ESC_GROUP_TYPE|(18<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xca { 0 , C_FMUL, D__st, D__st3, D__NONE, "FMUL" ,0xcbd8,2|C_ESC_GROUP_TYPE|(19<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcb { 0 , C_FMUL, D__st, D__st4, D__NONE, "FMUL" ,0xccd8,2|C_ESC_GROUP_TYPE|(20<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcc { 0 , C_FMUL, D__st, D__st5, D__NONE, "FMUL" ,0xcdd8,2|C_ESC_GROUP_TYPE|(21<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcd { 0 , C_FMUL, D__st, D__st6, D__NONE, "FMUL" ,0xced8,2|C_ESC_GROUP_TYPE|(22<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xce { 0 , C_FMUL, D__st, D__st7, D__NONE, "FMUL" ,0xcfd8,2|C_ESC_GROUP_TYPE|(23<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcf { 0 , C_FCOM, D__st, D__st0, D__NONE, "FCOM" ,0xd0d8,2|C_ESC_GROUP_TYPE|(24<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd0 { 0 , C_FCOM, D__st, D__st1, D__NONE, "FCOM" ,0xd1d8,2|C_ESC_GROUP_TYPE|(25<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd1 { 0 , C_FCOM, D__st, D__st2, D__NONE, "FCOM" ,0xd2d8,2|C_ESC_GROUP_TYPE|(26<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd2 { 0 , C_FCOM, D__st, D__st3, D__NONE, "FCOM" ,0xd3d8,2|C_ESC_GROUP_TYPE|(27<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd3 { 0 , C_FCOM, D__st, D__st4, D__NONE, "FCOM" ,0xd4d8,2|C_ESC_GROUP_TYPE|(28<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd4 { 0 , C_FCOM, D__st, D__st5, D__NONE, "FCOM" ,0xd5d8,2|C_ESC_GROUP_TYPE|(29<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd5 { 0 , C_FCOM, D__st, D__st6, D__NONE, "FCOM" ,0xd6d8,2|C_ESC_GROUP_TYPE|(30<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd6 { 0 , C_FCOM, D__st, D__st7, D__NONE, "FCOM" ,0xd7d8,2|C_ESC_GROUP_TYPE|(31<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd7 { 0 , C_FCOMP, D__st, D__st0, D__NONE, "FCOMP" ,0xd8d8,2|C_ESC_GROUP_TYPE|(32<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd8 { 0 , C_FCOMP, D__st, D__st1, D__NONE, "FCOMP" ,0xd9d8,2|C_ESC_GROUP_TYPE|(33<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd9 { 0 , C_FCOMP, D__st, D__st2, D__NONE, "FCOMP" ,0xdad8,2|C_ESC_GROUP_TYPE|(34<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xda { 0 , C_FCOMP, D__st, D__st3, D__NONE, "FCOMP" ,0xdbd8,2|C_ESC_GROUP_TYPE|(35<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdb { 0 , C_FCOMP, D__st, D__st4, D__NONE, "FCOMP" ,0xdcd8,2|C_ESC_GROUP_TYPE|(36<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdc { 0 , C_FCOMP, D__st, D__st5, D__NONE, "FCOMP" ,0xddd8,2|C_ESC_GROUP_TYPE|(37<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdd { 0 , C_FCOMP, D__st, D__st6, D__NONE, "FCOMP" ,0xded8,2|C_ESC_GROUP_TYPE|(38<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xde { 0 , C_FCOMP, D__st, D__st7, D__NONE, "FCOMP" ,0xdfd8,2|C_ESC_GROUP_TYPE|(39<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdf { 0 , C_FSUB, D__st, D__st0, D__NONE, "FSUB" ,0xe0d8,2|C_ESC_GROUP_TYPE|(40<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe0 { 0 , C_FSUB, D__st, D__st1, D__NONE, "FSUB" ,0xe1d8,2|C_ESC_GROUP_TYPE|(41<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe1 { 0 , C_FSUB, D__st, D__st2, D__NONE, "FSUB" ,0xe2d8,2|C_ESC_GROUP_TYPE|(42<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe2 { 0 , C_FSUB, D__st, D__st3, D__NONE, "FSUB" ,0xe3d8,2|C_ESC_GROUP_TYPE|(43<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe3 { 0 , C_FSUB, D__st, D__st4, D__NONE, "FSUB" ,0xe4d8,2|C_ESC_GROUP_TYPE|(44<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe4 { 0 , C_FSUB, D__st, D__st5, D__NONE, "FSUB" ,0xe5d8,2|C_ESC_GROUP_TYPE|(45<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe5 { 0 , C_FSUB, D__st, D__st6, D__NONE, "FSUB" ,0xe6d8,2|C_ESC_GROUP_TYPE|(46<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe6 { 0 , C_FSUB, D__st, D__st7, D__NONE, "FSUB" ,0xe7d8,2|C_ESC_GROUP_TYPE|(47<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe7 { 0 , C_FSUBR, D__st, D__st0, D__NONE, "FSUBR" ,0xe8d8,2|C_ESC_GROUP_TYPE|(48<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe8 { 0 , C_FSUBR, D__st, D__st1, D__NONE, "FSUBR" ,0xe9d8,2|C_ESC_GROUP_TYPE|(49<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe9 { 0 , C_FSUBR, D__st, D__st2, D__NONE, "FSUBR" ,0xead8,2|C_ESC_GROUP_TYPE|(50<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xea { 0 , C_FSUBR, D__st, D__st3, D__NONE, "FSUBR" ,0xebd8,2|C_ESC_GROUP_TYPE|(51<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xeb { 0 , C_FSUBR, D__st, D__st4, D__NONE, "FSUBR" ,0xecd8,2|C_ESC_GROUP_TYPE|(52<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xec { 0 , C_FSUBR, D__st, D__st5, D__NONE, "FSUBR" ,0xedd8,2|C_ESC_GROUP_TYPE|(53<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xed { 0 , C_FSUBR, D__st, D__st6, D__NONE, "FSUBR" ,0xeed8,2|C_ESC_GROUP_TYPE|(54<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xee { 0 , C_FSUBR, D__st, D__st7, D__NONE, "FSUBR" ,0xefd8,2|C_ESC_GROUP_TYPE|(55<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xef { 0 , C_FDIV, D__st, D__st0, D__NONE, "FDIV" ,0xf0d8,2|C_ESC_GROUP_TYPE|(56<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf0 { 0 , C_FDIV, D__st, D__st1, D__NONE, "FDIV" ,0xf1d8,2|C_ESC_GROUP_TYPE|(57<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf1 { 0 , C_FDIV, D__st, D__st2, D__NONE, "FDIV" ,0xf2d8,2|C_ESC_GROUP_TYPE|(58<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 { 0 , C_FDIV, D__st, D__st3, D__NONE, "FDIV" ,0xf3d8,2|C_ESC_GROUP_TYPE|(59<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 { 0 , C_FDIV, D__st, D__st4, D__NONE, "FDIV" ,0xf4d8,2|C_ESC_GROUP_TYPE|(60<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf4 { 0 , C_FDIV, D__st, D__st5, D__NONE, "FDIV" ,0xf5d8,2|C_ESC_GROUP_TYPE|(61<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf5 { 0 , C_FDIV, D__st, D__st6, D__NONE, "FDIV" ,0xf6d8,2|C_ESC_GROUP_TYPE|(62<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf6 { 0 , C_FDIV, D__st, D__st7, D__NONE, "FDIV" ,0xf7d8,2|C_ESC_GROUP_TYPE|(63<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf7 { 0 , C_FDIVR, D__st, D__st0, D__NONE, "FDIVR" ,0xf8d8,2|C_ESC_GROUP_TYPE|(64<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf8 { 0 , C_FDIVR, D__st, D__st1, D__NONE, "FDIVR" ,0xf9d8,2|C_ESC_GROUP_TYPE|(65<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf9 { 0 , C_FDIVR, D__st, D__st2, D__NONE, "FDIVR" ,0xfad8,2|C_ESC_GROUP_TYPE|(66<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfa { 0 , C_FDIVR, D__st, D__st3, D__NONE, "FDIVR" ,0xfbd8,2|C_ESC_GROUP_TYPE|(67<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfb { 0 , C_FDIVR, D__st, D__st4, D__NONE, "FDIVR" ,0xfcd8,2|C_ESC_GROUP_TYPE|(68<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfc { 0 , C_FDIVR, D__st, D__st5, D__NONE, "FDIVR" ,0xfdd8,2|C_ESC_GROUP_TYPE|(69<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfd { 0 , C_FDIVR, D__st, D__st6, D__NONE, "FDIVR" ,0xfed8,2|C_ESC_GROUP_TYPE|(70<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfe { 0 , C_FDIVR, D__st, D__st7, D__NONE, "FDIVR" ,0xffd8,2|C_ESC_GROUP_TYPE|(71<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0xff }; DIS_OPCODE_T Group0xd9[] = //fpu group { {R_M, C_FLD, D__single_real, D__NONE,D__NONE, "FLD" ,0xd9,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {0, C_NULL }, //0x1 {R_M, C_FST, D__single_real, D__NONE,D__NONE, "FST" ,0xd9,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x2 {R_M, C_FSTP, D__single_real, D__NONE,D__NONE, "FSTP" ,0xd9,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x3 {R_M, C_FLDENV, D__14_28b, D__NONE,D__NONE, "FLDENV" ,0xd9,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_FLDCW, D__2b, D__NONE,D__NONE, "FLDCW" ,0xd9,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_FSTENV, D__14_28b, D__NONE,D__NONE, "FSTENV" ,0xd9,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x6 {R_M, C_FSTCW, D__2b, D__NONE,D__NONE, "FSTCW" ,0xd9,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x7 //˫ֽڸָ { 0 , C_FLD, D__st, D__st0, D__NONE, "FLD" ,0xc0d9,2|C_ESC_GROUP_TYPE|(8<<16) ,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc0 { 0 , C_FLD, D__st, D__st1, D__NONE, "FLD" ,0xc1d9,2|C_ESC_GROUP_TYPE|(9<<16) ,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc1 { 0 , C_FLD, D__st, D__st2, D__NONE, "FLD" ,0xc2d9,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc2 { 0 , C_FLD, D__st, D__st3, D__NONE, "FLD" ,0xc3d9,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc3 { 0 , C_FLD, D__st, D__st4, D__NONE, "FLD" ,0xc4d9,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc4 { 0 , C_FLD, D__st, D__st5, D__NONE, "FLD" ,0xc5d9,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc5 { 0 , C_FLD, D__st, D__st6, D__NONE, "FLD" ,0xc6d9,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc6 { 0 , C_FLD, D__st, D__st7, D__NONE, "FLD" ,0xc7d9,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc7 { 0 , C_FXCH, D__st, D__st0, D__NONE, "FXCH" ,0xc8d9,2|C_ESC_GROUP_TYPE|(16<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xc8 { 0 , C_FXCH, D__st, D__st1, D__NONE, "FXCH" ,0xc9d9,2|C_ESC_GROUP_TYPE|(17<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xc9 { 0 , C_FXCH, D__st, D__st2, D__NONE, "FXCH" ,0xcad9,2|C_ESC_GROUP_TYPE|(18<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xca { 0 , C_FXCH, D__st, D__st3, D__NONE, "FXCH" ,0xcbd9,2|C_ESC_GROUP_TYPE|(19<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xcb { 0 , C_FXCH, D__st, D__st4, D__NONE, "FXCH" ,0xccd9,2|C_ESC_GROUP_TYPE|(20<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xcc { 0 , C_FXCH, D__st, D__st5, D__NONE, "FXCH" ,0xcdd9,2|C_ESC_GROUP_TYPE|(21<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xcd { 0 , C_FXCH, D__st, D__st6, D__NONE, "FXCH" ,0xced9,2|C_ESC_GROUP_TYPE|(22<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xce { 0 , C_FXCH, D__st, D__st7, D__NONE, "FXCH" ,0xcfd9,2|C_ESC_GROUP_TYPE|(23<<16),MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xcf { 0 , C_FNOP, D__NONE, D__NONE, D__NONE, "FNOP" ,0xd0d9,2|C_ESC_GROUP_TYPE|(24<<16)}, //0xd0 { 0 , C_NULL }, //0xd1 { 0 , C_NULL }, //0xd2 { 0 , C_NULL }, //0xd3 { 0 , C_NULL }, //0xd4 { 0 , C_NULL }, //0xd5 { 0 , C_NULL }, //0xd6 { 0 , C_NULL }, //0xd7 { 0 , C_NULL }, //0xd8 { 0 , C_NULL }, //0xd9 { 0 , C_NULL }, //0xda { 0 , C_NULL }, //0xdb { 0 , C_NULL }, //0xdc { 0 , C_NULL }, //0xdd { 0 , C_NULL }, //0xde { 0 , C_NULL }, //0xdf { 0 , C_FCHS, D__NONE, D__NONE, D__NONE, "FCHS" ,0xe0d9,2|C_ESC_GROUP_TYPE|(40<<16)}, //0xe0 { 0 , C_FABS, D__NONE, D__NONE, D__NONE, "FABS" ,0xe1d9,2|C_ESC_GROUP_TYPE|(41<<16)}, //0xe1 { 0 , C_NULL }, //0xe2 { 0 , C_NULL }, //0xe3 { 0 , C_FTST, D__NONE, D__NONE, D__NONE, "FTST" ,0xe4d9,2|C_ESC_GROUP_TYPE|(44<<16)}, //0xe4 { 0 , C_FXAM, D__NONE, D__NONE, D__NONE, "FXAM" ,0xe5d9,2|C_ESC_GROUP_TYPE|(45<<16)}, //0xe5 { 0 , C_NULL }, //0xe6 { 0 , C_NULL }, //0xe7 { 0 , C_FLD1, D__NONE, D__NONE, D__NONE, "FLD1" ,0xe8d9,2|C_ESC_GROUP_TYPE|(48<<16)}, //0xe8 { 0 , C_FLDL2T, D__NONE, D__NONE, D__NONE, "FLDL2T" ,0xe9d9,2|C_ESC_GROUP_TYPE|(49<<16)}, //0xe9 { 0 , C_FLDL2E, D__NONE, D__NONE, D__NONE, "FLDL2E" ,0xead9,2|C_ESC_GROUP_TYPE|(50<<16)}, //0xea { 0 , C_FLDPI, D__NONE, D__NONE, D__NONE, "FLDPI" ,0xebd9,2|C_ESC_GROUP_TYPE|(51<<16)}, //0xeb { 0 , C_FLDLG2, D__NONE, D__NONE, D__NONE, "FLDLG2" ,0xecd9,2|C_ESC_GROUP_TYPE|(52<<16)}, //0xec { 0 , C_FLDLN2, D__NONE, D__NONE, D__NONE, "FLDLN2" ,0xedd9,2|C_ESC_GROUP_TYPE|(53<<16)}, //0xed { 0 , C_FLDZ, D__NONE, D__NONE, D__NONE, "FLDZ" ,0xeed9,2|C_ESC_GROUP_TYPE|(54<<16)}, //0xee { 0 , C_NULL }, //0xef { 0 , C_F2XM1, D__NONE, D__NONE, D__NONE, "F2XM1" ,0xf0d9,2|C_ESC_GROUP_TYPE|(56<<16)}, //0xf0 { 0 , C_FYL2X, D__NONE, D__NONE, D__NONE, "FYL2X" ,0xf1d9,2|C_ESC_GROUP_TYPE|(57<<16)}, //0xf1 { 0 , C_FPTAN, D__NONE, D__NONE, D__NONE, "FPTAN" ,0xf2d9,2|C_ESC_GROUP_TYPE|(58<<16)}, //0xf2 { 0 , C_FPATAN, D__NONE, D__NONE, D__NONE, "FPATAN" ,0xf3d9,2|C_ESC_GROUP_TYPE|(59<<16)}, //0xf3 { 0 , C_FXTRACT,D__NONE, D__NONE, D__NONE, "FXTRACT" ,0xf4d9,2|C_ESC_GROUP_TYPE|(60<<16)}, //0xf4 { 0 , C_FPREM1, D__NONE, D__NONE, D__NONE, "FPREM1" ,0xf5d9,2|C_ESC_GROUP_TYPE|(61<<16)}, //0xf5 { 0 , C_FDECSTP,D__NONE, D__NONE, D__NONE, "FDECSTP" ,0xf6d9,2|C_ESC_GROUP_TYPE|(62<<16)}, //0xf6 { 0 , C_FINCSTP,D__NONE, D__NONE, D__NONE, "FINCSTP" ,0xf7d9,2|C_ESC_GROUP_TYPE|(63<<16)}, //0xf7 { 0 , C_FPREM, D__NONE, D__NONE, D__NONE, "FPREM" ,0xf8d9,2|C_ESC_GROUP_TYPE|(64<<16)}, //0xf8 { 0 , C_FYL2XP1,D__NONE, D__NONE, D__NONE, "FYL2XP1" ,0xf9d9,2|C_ESC_GROUP_TYPE|(65<<16)}, //0xf9 { 0 , C_FSQRT, D__NONE, D__NONE, D__NONE, "FSQRT" ,0xfad9,2|C_ESC_GROUP_TYPE|(66<<16)}, //0xfa { 0 , C_FSINCOS,D__NONE, D__NONE, D__NONE, "FSINCOS" ,0xfbd9,2|C_ESC_GROUP_TYPE|(67<<16)}, //0xfb { 0 , C_FRNDINT,D__NONE, D__NONE, D__NONE, "FRNDINT" ,0xfcd9,2|C_ESC_GROUP_TYPE|(68<<16)}, //0xfc { 0 , C_FSCALE, D__NONE, D__NONE, D__NONE, "FSCALE" ,0xfdd9,2|C_ESC_GROUP_TYPE|(69<<16)}, //0xfd { 0 , C_FSIN, D__NONE, D__NONE, D__NONE, "FSIN" ,0xfed9,2|C_ESC_GROUP_TYPE|(70<<16)}, //0xfe { 0 , C_FCOS, D__NONE, D__NONE, D__NONE, "FCOS" ,0xffd9,2|C_ESC_GROUP_TYPE|(71<<16)} //0xff }; DIS_OPCODE_T Group0xda[] = //fpu group { {R_M, C_FIADD, D__dword_int,D__NONE,D__NONE, "FIADD" ,0xda,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FIMUL, D__dword_int,D__NONE,D__NONE, "FIMUL" ,0xda,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1 {R_M, C_FICOM, D__dword_int,D__NONE,D__NONE, "FICOM" ,0xda,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_FICOMP, D__dword_int,D__NONE,D__NONE, "FICOMP" ,0xda,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M, C_FISUB, D__dword_int,D__NONE,D__NONE, "FISUB" ,0xda,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_FISUBR, D__dword_int,D__NONE,D__NONE, "FISUBR" ,0xda,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_FIDIV, D__dword_int,D__NONE,D__NONE, "FIDIV" ,0xda,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_FIDIVR, D__dword_int,D__NONE,D__NONE, "FIDIVR" ,0xda,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x7 //˫ֽڸָ { 0 , C_FCMOVB, D__st, D__st0, D__NONE, "FCMOVB" ,0xc0da,2|C_ESC_GROUP_TYPE|(8<<16) ,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc0 { 0 , C_FCMOVB, D__st, D__st1, D__NONE, "FCMOVB" ,0xc1da,2|C_ESC_GROUP_TYPE|(9<<16) ,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc1 { 0 , C_FCMOVB, D__st, D__st2, D__NONE, "FCMOVB" ,0xc2da,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc2 { 0 , C_FCMOVB, D__st, D__st3, D__NONE, "FCMOVB" ,0xc3da,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc3 { 0 , C_FCMOVB, D__st, D__st4, D__NONE, "FCMOVB" ,0xc4da,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc4 { 0 , C_FCMOVB, D__st, D__st5, D__NONE, "FCMOVB" ,0xc5da,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc5 { 0 , C_FCMOVB, D__st, D__st6, D__NONE, "FCMOVB" ,0xc6da,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc6 { 0 , C_FCMOVB, D__st, D__st7, D__NONE, "FCMOVB" ,0xc7da,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc7 { 0 , C_FCMOVE, D__st, D__st0, D__NONE, "FCMOVE" ,0xc8da,2|C_ESC_GROUP_TYPE|(16<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc8 { 0 , C_FCMOVE, D__st, D__st1, D__NONE, "FCMOVE" ,0xc9da,2|C_ESC_GROUP_TYPE|(17<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc9 { 0 , C_FCMOVE, D__st, D__st2, D__NONE, "FCMOVE" ,0xcada,2|C_ESC_GROUP_TYPE|(18<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xca { 0 , C_FCMOVE, D__st, D__st3, D__NONE, "FCMOVE" ,0xcbda,2|C_ESC_GROUP_TYPE|(19<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xcb { 0 , C_FCMOVE, D__st, D__st4, D__NONE, "FCMOVE" ,0xccda,2|C_ESC_GROUP_TYPE|(20<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xcc { 0 , C_FCMOVE, D__st, D__st5, D__NONE, "FCMOVE" ,0xcdda,2|C_ESC_GROUP_TYPE|(21<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xcd { 0 , C_FCMOVE, D__st, D__st6, D__NONE, "FCMOVE" ,0xceda,2|C_ESC_GROUP_TYPE|(22<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xce { 0 , C_FCMOVE, D__st, D__st7, D__NONE, "FCMOVE" ,0xcfda,2|C_ESC_GROUP_TYPE|(23<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xcf { 0 , C_FCMOVBE, D__st, D__st0, D__NONE, "FCMOVBE" ,0xd0da,2|C_ESC_GROUP_TYPE|(24<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd0 { 0 , C_FCMOVBE, D__st, D__st1, D__NONE, "FCMOVBE" ,0xd1da,2|C_ESC_GROUP_TYPE|(25<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd1 { 0 , C_FCMOVBE, D__st, D__st2, D__NONE, "FCMOVBE" ,0xd2da,2|C_ESC_GROUP_TYPE|(26<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd2 { 0 , C_FCMOVBE, D__st, D__st3, D__NONE, "FCMOVBE" ,0xd3da,2|C_ESC_GROUP_TYPE|(27<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd3 { 0 , C_FCMOVBE, D__st, D__st4, D__NONE, "FCMOVBE" ,0xd4da,2|C_ESC_GROUP_TYPE|(28<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd4 { 0 , C_FCMOVBE, D__st, D__st5, D__NONE, "FCMOVBE" ,0xd5da,2|C_ESC_GROUP_TYPE|(29<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd5 { 0 , C_FCMOVBE, D__st, D__st6, D__NONE, "FCMOVBE" ,0xd6da,2|C_ESC_GROUP_TYPE|(30<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd6 { 0 , C_FCMOVBE, D__st, D__st7, D__NONE, "FCMOVBE" ,0xd7da,2|C_ESC_GROUP_TYPE|(31<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd7 { 0 , C_FCMOVU, D__st, D__st0, D__NONE, "FCMOVU" ,0xd8da,2|C_ESC_GROUP_TYPE|(32<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd8 { 0 , C_FCMOVU, D__st, D__st1, D__NONE, "FCMOVU" ,0xd9da,2|C_ESC_GROUP_TYPE|(33<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd9 { 0 , C_FCMOVU, D__st, D__st2, D__NONE, "FCMOVU" ,0xdada,2|C_ESC_GROUP_TYPE|(34<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xda { 0 , C_FCMOVU, D__st, D__st3, D__NONE, "FCMOVU" ,0xdbda,2|C_ESC_GROUP_TYPE|(35<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdb { 0 , C_FCMOVU, D__st, D__st4, D__NONE, "FCMOVU" ,0xdcda,2|C_ESC_GROUP_TYPE|(36<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdc { 0 , C_FCMOVU, D__st, D__st5, D__NONE, "FCMOVU" ,0xddda,2|C_ESC_GROUP_TYPE|(37<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdd { 0 , C_FCMOVU, D__st, D__st6, D__NONE, "FCMOVU" ,0xdeda,2|C_ESC_GROUP_TYPE|(38<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xde { 0 , C_FCMOVU, D__st, D__st7, D__NONE, "FCMOVU" ,0xdfda,2|C_ESC_GROUP_TYPE|(39<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xdf { 0 , C_NULL }, //0xe0 { 0 , C_NULL }, //0xe1 { 0 , C_NULL }, //0xe2 { 0 , C_NULL }, //0xe3 { 0 , C_NULL }, //0xe4 { 0 , C_NULL }, //0xe5 { 0 , C_NULL }, //0xe6 { 0 , C_NULL }, //0xe7 { 0 , C_NULL }, //0xe8 { 0 , C_FUCOMPP, D__NONE, D__NONE, D__NONE, "FUCOMPP" ,0xe9da,2|C_ESC_GROUP_TYPE|(49<<16)}, //0xe9 { 0 , C_NULL }, //0xea { 0 , C_NULL }, //0xeb { 0 , C_NULL }, //0xec { 0 , C_NULL }, //0xed { 0 , C_NULL }, //0xee { 0 , C_NULL }, //0xef { 0 , C_NULL }, //0xf0 { 0 , C_NULL }, //0xf1 { 0 , C_NULL }, //0xf2 { 0 , C_NULL }, //0xf3 { 0 , C_NULL }, //0xf4 { 0 , C_NULL }, //0xf5 { 0 , C_NULL }, //0xf6 { 0 , C_NULL }, //0xf7 { 0 , C_NULL }, //0xf8 { 0 , C_NULL }, //0xf9 { 0 , C_NULL }, //0xfa { 0 , C_NULL }, //0xfb { 0 , C_NULL }, //0xfc { 0 , C_NULL }, //0xfd { 0 , C_NULL }, //0xfe { 0 , C_NULL } //0xff }; DIS_OPCODE_T Group0xdb[] = //fpu group { {R_M, C_FILD, D__dword_int, D__NONE,D__NONE, "FILD" ,0xdb,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FISTTP, D__dword_int, D__NONE,D__NONE, "FISTTP" ,0xdb,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x1 {R_M, C_FIST, D__dword_int, D__NONE,D__NONE, "FIST" ,0xdb,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x2 {R_M, C_FISTP, D__dword_int, D__NONE,D__NONE, "FISTP" ,0xdb,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x3 {R_M, C_NULL }, //0x4 {R_M, C_FLD, D__extend_real, D__NONE,D__NONE, "FLD" ,0xdb,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_NULL }, //0x6 {R_M, C_FSTP, D__extend_real, D__NONE,D__NONE, "FSTP" ,0xdb,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x7 //˫ֽڸָ { 0 , C_FCMOVNB, D__st, D__st0, D__NONE, "FCMOVNB" ,0xc0db,2|C_ESC_GROUP_TYPE|(8<<16) ,MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc0 { 0 , C_FCMOVNB, D__st, D__st1, D__NONE, "FCMOVNB" ,0xc1db,2|C_ESC_GROUP_TYPE|(9<<16) ,MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc1 { 0 , C_FCMOVNB, D__st, D__st2, D__NONE, "FCMOVNB" ,0xc2db,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc2 { 0 , C_FCMOVNB, D__st, D__st3, D__NONE, "FCMOVNB" ,0xc3db,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc3 { 0 , C_FCMOVNB, D__st, D__st4, D__NONE, "FCMOVNB" ,0xc4db,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc4 { 0 , C_FCMOVNB, D__st, D__st5, D__NONE, "FCMOVNB" ,0xc5db,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc5 { 0 , C_FCMOVNB, D__st, D__st6, D__NONE, "FCMOVNB" ,0xc6db,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc6 { 0 , C_FCMOVNB, D__st, D__st7, D__NONE, "FCMOVNB" ,0xc7db,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc7 { 0 , C_FCMOVNE, D__st, D__st0, D__NONE, "FCMOVNE" ,0xc8db,2|C_ESC_GROUP_TYPE|(16<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc8 { 0 , C_FCMOVNE, D__st, D__st1, D__NONE, "FCMOVNE" ,0xc9db,2|C_ESC_GROUP_TYPE|(17<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xc9 { 0 , C_FCMOVNE, D__st, D__st2, D__NONE, "FCMOVNE" ,0xcadb,2|C_ESC_GROUP_TYPE|(18<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xca { 0 , C_FCMOVNE, D__st, D__st3, D__NONE, "FCMOVNE" ,0xcbdb,2|C_ESC_GROUP_TYPE|(19<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xcb { 0 , C_FCMOVNE, D__st, D__st4, D__NONE, "FCMOVNE" ,0xccdb,2|C_ESC_GROUP_TYPE|(20<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xcc { 0 , C_FCMOVNE, D__st, D__st5, D__NONE, "FCMOVNE" ,0xcddb,2|C_ESC_GROUP_TYPE|(21<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xcd { 0 , C_FCMOVNE, D__st, D__st6, D__NONE, "FCMOVNE" ,0xcedb,2|C_ESC_GROUP_TYPE|(22<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xce { 0 , C_FCMOVNE, D__st, D__st7, D__NONE, "FCMOVNE" ,0xcfdb,2|C_ESC_GROUP_TYPE|(23<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xcf { 0 , C_FCMOVNBE,D__st, D__st0, D__NONE, "FCMOVNBE" ,0xd0db,2|C_ESC_GROUP_TYPE|(24<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd0 { 0 , C_FCMOVNBE,D__st, D__st1, D__NONE, "FCMOVNBE" ,0xd1db,2|C_ESC_GROUP_TYPE|(25<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd1 { 0 , C_FCMOVNBE,D__st, D__st2, D__NONE, "FCMOVNBE" ,0xd2db,2|C_ESC_GROUP_TYPE|(26<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd2 { 0 , C_FCMOVNBE,D__st, D__st3, D__NONE, "FCMOVNBE" ,0xd3db,2|C_ESC_GROUP_TYPE|(27<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd3 { 0 , C_FCMOVNBE,D__st, D__st4, D__NONE, "FCMOVNBE" ,0xd4db,2|C_ESC_GROUP_TYPE|(28<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd4 { 0 , C_FCMOVNBE,D__st, D__st5, D__NONE, "FCMOVNBE" ,0xd5db,2|C_ESC_GROUP_TYPE|(29<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd5 { 0 , C_FCMOVNBE,D__st, D__st6, D__NONE, "FCMOVNBE" ,0xd6db,2|C_ESC_GROUP_TYPE|(30<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd6 { 0 , C_FCMOVNBE,D__st, D__st7, D__NONE, "FCMOVNBE" ,0xd7db,2|C_ESC_GROUP_TYPE|(31<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd7 { 0 , C_FCMOVNU, D__st, D__st0, D__NONE, "FCMOVNU" ,0xd8db,2|C_ESC_GROUP_TYPE|(32<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd8 { 0 , C_FCMOVNU, D__st, D__st1, D__NONE, "FCMOVNU" ,0xd9db,2|C_ESC_GROUP_TYPE|(33<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xd9 { 0 , C_FCMOVNU, D__st, D__st2, D__NONE, "FCMOVNU" ,0xdadb,2|C_ESC_GROUP_TYPE|(34<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xda { 0 , C_FCMOVNU, D__st, D__st3, D__NONE, "FCMOVNU" ,0xdbdb,2|C_ESC_GROUP_TYPE|(35<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xdb { 0 , C_FCMOVNU, D__st, D__st4, D__NONE, "FCMOVNU" ,0xdcdb,2|C_ESC_GROUP_TYPE|(36<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xdc { 0 , C_FCMOVNU, D__st, D__st5, D__NONE, "FCMOVNU" ,0xdddb,2|C_ESC_GROUP_TYPE|(37<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xdd { 0 , C_FCMOVNU, D__st, D__st6, D__NONE, "FCMOVNU" ,0xdedb,2|C_ESC_GROUP_TYPE|(38<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xde { 0 , C_FCMOVNU, D__st, D__st7, D__NONE, "FCMOVNU" ,0xdfdb,2|C_ESC_GROUP_TYPE|(39<<16),MAKE_OP_RW_FLAG(0,OP_R,0)}, //0xdf { 0 , C_NULL }, //0xe0 { 0 , C_NULL }, //0xe1 { 0 , C_FCLEX, D__NONE, D__NONE, D__NONE, "FCLEX" ,0xe2db,2|C_ESC_GROUP_TYPE|(42<<16)}, //0xe2 { 0 , C_FINIT, D__NONE, D__NONE, D__NONE, "FINIT" ,0xe3db,2|C_ESC_GROUP_TYPE|(43<<16)}, //0xe3 { 0 , C_NULL }, //0xe4 { 0 , C_NULL }, //0xe5 { 0 , C_NULL }, //0xe6 { 0 , C_NULL }, //0xe7 { 0 , C_FUCOMI, D__st, D__st0, D__NONE, "FUCOMI" ,0xe8db,2|C_ESC_GROUP_TYPE|(48<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe8 { 0 , C_FUCOMI, D__st, D__st1, D__NONE, "FUCOMI" ,0xe9db,2|C_ESC_GROUP_TYPE|(49<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe9 { 0 , C_FUCOMI, D__st, D__st2, D__NONE, "FUCOMI" ,0xeadb,2|C_ESC_GROUP_TYPE|(50<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xea { 0 , C_FUCOMI, D__st, D__st3, D__NONE, "FUCOMI" ,0xebdb,2|C_ESC_GROUP_TYPE|(51<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xeb { 0 , C_FUCOMI, D__st, D__st4, D__NONE, "FUCOMI" ,0xecdb,2|C_ESC_GROUP_TYPE|(52<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xec { 0 , C_FUCOMI, D__st, D__st5, D__NONE, "FUCOMI" ,0xeddb,2|C_ESC_GROUP_TYPE|(53<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xed { 0 , C_FUCOMI, D__st, D__st6, D__NONE, "FUCOMI" ,0xeedb,2|C_ESC_GROUP_TYPE|(54<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xee { 0 , C_FUCOMI, D__st, D__st7, D__NONE, "FUCOMI" ,0xefdb,2|C_ESC_GROUP_TYPE|(55<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xef { 0 , C_FCOMI, D__st, D__st0, D__NONE, "FCOMI" ,0xf0db,2|C_ESC_GROUP_TYPE|(56<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf0 { 0 , C_FCOMI, D__st, D__st1, D__NONE, "FCOMI" ,0xf1db,2|C_ESC_GROUP_TYPE|(57<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf1 { 0 , C_FCOMI, D__st, D__st2, D__NONE, "FCOMI" ,0xf2db,2|C_ESC_GROUP_TYPE|(58<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf2 { 0 , C_FCOMI, D__st, D__st3, D__NONE, "FCOMI" ,0xf3db,2|C_ESC_GROUP_TYPE|(59<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf3 { 0 , C_FCOMI, D__st, D__st4, D__NONE, "FCOMI" ,0xf4db,2|C_ESC_GROUP_TYPE|(60<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf4 { 0 , C_FCOMI, D__st, D__st5, D__NONE, "FCOMI" ,0xf5db,2|C_ESC_GROUP_TYPE|(61<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf5 { 0 , C_FCOMI, D__st, D__st6, D__NONE, "FCOMI" ,0xf6db,2|C_ESC_GROUP_TYPE|(62<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf6 { 0 , C_FCOMI, D__st, D__st7, D__NONE, "FCOMI" ,0xf7db,2|C_ESC_GROUP_TYPE|(63<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf7 { 0 , C_NULL }, //0xf8 { 0 , C_NULL }, //0xf9 { 0 , C_NULL }, //0xfa { 0 , C_NULL }, //0xfb { 0 , C_NULL }, //0xfc { 0 , C_NULL }, //0xfd { 0 , C_NULL }, //0xfe { 0 , C_NULL } //0xff }; DIS_OPCODE_T Group0xdc[] = //fpu group { {R_M, C_FADD, D__double_real, D__NONE,D__NONE, "FADD" ,0xdc,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FMUL, D__double_real, D__NONE,D__NONE, "FMUL" ,0xdc,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1 {R_M, C_FCOM, D__double_real, D__NONE,D__NONE, "FCOM" ,0xdc,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_FCOMP, D__double_real, D__NONE,D__NONE, "FCOMP" ,0xdc,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M, C_FSUB, D__double_real, D__NONE,D__NONE, "FSUB" ,0xdc,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_FSUBR, D__double_real, D__NONE,D__NONE, "FSUBR" ,0xdc,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_FDIV, D__double_real, D__NONE,D__NONE, "FDIV" ,0xdc,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_FDIVR, D__double_real, D__NONE,D__NONE, "FDIVR" ,0xdc,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x7 //˫ֽڸָ { 0 , C_FADD, D__st0, D__st, D__NONE, "FADD" ,0xc0dc,2|C_ESC_GROUP_TYPE|(8<<16) ,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc0 { 0 , C_FADD, D__st1, D__st, D__NONE, "FADD" ,0xc1dc,2|C_ESC_GROUP_TYPE|(9<<16) ,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc1 { 0 , C_FADD, D__st2, D__st, D__NONE, "FADD" ,0xc2dc,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc2 { 0 , C_FADD, D__st3, D__st, D__NONE, "FADD" ,0xc3dc,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc3 { 0 , C_FADD, D__st4, D__st, D__NONE, "FADD" ,0xc4dc,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc4 { 0 , C_FADD, D__st5, D__st, D__NONE, "FADD" ,0xc5dc,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc5 { 0 , C_FADD, D__st6, D__st, D__NONE, "FADD" ,0xc6dc,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc6 { 0 , C_FADD, D__st7, D__st, D__NONE, "FADD" ,0xc7dc,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc7 { 0 , C_FMUL, D__st0, D__st, D__NONE, "FMUL" ,0xc8dc,2|C_ESC_GROUP_TYPE|(16<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc8 { 0 , C_FMUL, D__st1, D__st, D__NONE, "FMUL" ,0xc9dc,2|C_ESC_GROUP_TYPE|(17<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc9 { 0 , C_FMUL, D__st2, D__st, D__NONE, "FMUL" ,0xcadc,2|C_ESC_GROUP_TYPE|(18<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xca { 0 , C_FMUL, D__st3, D__st, D__NONE, "FMUL" ,0xcbdc,2|C_ESC_GROUP_TYPE|(19<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcb { 0 , C_FMUL, D__st4, D__st, D__NONE, "FMUL" ,0xccdc,2|C_ESC_GROUP_TYPE|(20<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcc { 0 , C_FMUL, D__st5, D__st, D__NONE, "FMUL" ,0xcddc,2|C_ESC_GROUP_TYPE|(21<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcd { 0 , C_FMUL, D__st6, D__st, D__NONE, "FMUL" ,0xcedc,2|C_ESC_GROUP_TYPE|(22<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xce { 0 , C_FMUL, D__st7, D__st, D__NONE, "FMUL" ,0xcfdc,2|C_ESC_GROUP_TYPE|(23<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcf { 0 , C_NULL }, //0xd0 { 0 , C_NULL }, //0xd1 { 0 , C_NULL }, //0xd2 { 0 , C_NULL }, //0xd3 { 0 , C_NULL }, //0xd4 { 0 , C_NULL }, //0xd5 { 0 , C_NULL }, //0xd6 { 0 , C_NULL }, //0xd7 { 0 , C_NULL }, //0xd8 { 0 , C_NULL }, //0xd9 { 0 , C_NULL }, //0xda { 0 , C_NULL }, //0xdb { 0 , C_NULL }, //0xdc { 0 , C_NULL }, //0xdd { 0 , C_NULL }, //0xde { 0 , C_NULL }, //0xdf { 0 , C_FSUBR, D__st0, D__st, D__NONE, "FSUBR" ,0xe0dc,2|C_ESC_GROUP_TYPE|(40<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe0 { 0 , C_FSUBR, D__st1, D__st, D__NONE, "FSUBR" ,0xe1dc,2|C_ESC_GROUP_TYPE|(41<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe1 { 0 , C_FSUBR, D__st2, D__st, D__NONE, "FSUBR" ,0xe2dc,2|C_ESC_GROUP_TYPE|(42<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe2 { 0 , C_FSUBR, D__st3, D__st, D__NONE, "FSUBR" ,0xe3dc,2|C_ESC_GROUP_TYPE|(43<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe3 { 0 , C_FSUBR, D__st4, D__st, D__NONE, "FSUBR" ,0xe4dc,2|C_ESC_GROUP_TYPE|(44<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe4 { 0 , C_FSUBR, D__st5, D__st, D__NONE, "FSUBR" ,0xe5dc,2|C_ESC_GROUP_TYPE|(45<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe5 { 0 , C_FSUBR, D__st6, D__st, D__NONE, "FSUBR" ,0xe6dc,2|C_ESC_GROUP_TYPE|(46<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe6 { 0 , C_FSUBR, D__st7, D__st, D__NONE, "FSUBR" ,0xe7dc,2|C_ESC_GROUP_TYPE|(47<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe7 { 0 , C_FSUB, D__st0, D__st, D__NONE, "FSUB" ,0xe8dc,2|C_ESC_GROUP_TYPE|(48<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe8 { 0 , C_FSUB, D__st1, D__st, D__NONE, "FSUB" ,0xe9dc,2|C_ESC_GROUP_TYPE|(49<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe9 { 0 , C_FSUB, D__st2, D__st, D__NONE, "FSUB" ,0xeadc,2|C_ESC_GROUP_TYPE|(50<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xea { 0 , C_FSUB, D__st3, D__st, D__NONE, "FSUB" ,0xebdc,2|C_ESC_GROUP_TYPE|(51<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xeb { 0 , C_FSUB, D__st4, D__st, D__NONE, "FSUB" ,0xecdc,2|C_ESC_GROUP_TYPE|(52<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xec { 0 , C_FSUB, D__st5, D__st, D__NONE, "FSUB" ,0xeddc,2|C_ESC_GROUP_TYPE|(53<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xed { 0 , C_FSUB, D__st6, D__st, D__NONE, "FSUB" ,0xeedc,2|C_ESC_GROUP_TYPE|(54<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xee { 0 , C_FSUB, D__st7, D__st, D__NONE, "FSUB" ,0xefdc,2|C_ESC_GROUP_TYPE|(55<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xef { 0 , C_FDIVR, D__st0, D__st, D__NONE, "FDIVR" ,0xf0dc,2|C_ESC_GROUP_TYPE|(56<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf0 { 0 , C_FDIVR, D__st1, D__st, D__NONE, "FDIVR" ,0xf1dc,2|C_ESC_GROUP_TYPE|(57<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf1 { 0 , C_FDIVR, D__st2, D__st, D__NONE, "FDIVR" ,0xf2dc,2|C_ESC_GROUP_TYPE|(58<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 { 0 , C_FDIVR, D__st3, D__st, D__NONE, "FDIVR" ,0xf3dc,2|C_ESC_GROUP_TYPE|(59<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 { 0 , C_FDIVR, D__st4, D__st, D__NONE, "FDIVR" ,0xf4dc,2|C_ESC_GROUP_TYPE|(60<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf4 { 0 , C_FDIVR, D__st5, D__st, D__NONE, "FDIVR" ,0xf5dc,2|C_ESC_GROUP_TYPE|(61<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf5 { 0 , C_FDIVR, D__st6, D__st, D__NONE, "FDIVR" ,0xf6dc,2|C_ESC_GROUP_TYPE|(62<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf6 { 0 , C_FDIVR, D__st7, D__st, D__NONE, "FDIVR" ,0xf7dc,2|C_ESC_GROUP_TYPE|(63<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf7 { 0 , C_FDIV, D__st0, D__st, D__NONE, "FDIV" ,0xf8dc,2|C_ESC_GROUP_TYPE|(64<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf8 { 0 , C_FDIV, D__st1, D__st, D__NONE, "FDIV" ,0xf9dc,2|C_ESC_GROUP_TYPE|(65<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf9 { 0 , C_FDIV, D__st2, D__st, D__NONE, "FDIV" ,0xfadc,2|C_ESC_GROUP_TYPE|(66<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfa { 0 , C_FDIV, D__st3, D__st, D__NONE, "FDIV" ,0xfbdc,2|C_ESC_GROUP_TYPE|(67<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfb { 0 , C_FDIV, D__st4, D__st, D__NONE, "FDIV" ,0xfcdc,2|C_ESC_GROUP_TYPE|(68<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfc { 0 , C_FDIV, D__st5, D__st, D__NONE, "FDIV" ,0xfddc,2|C_ESC_GROUP_TYPE|(69<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfd { 0 , C_FDIV, D__st6, D__st, D__NONE, "FDIV" ,0xfedc,2|C_ESC_GROUP_TYPE|(70<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfe { 0 , C_FDIV, D__st7, D__st, D__NONE, "FDIV" ,0xffdc,2|C_ESC_GROUP_TYPE|(71<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0xff }; DIS_OPCODE_T Group0xdd[] = //fpu group { {R_M, C_FLD, D__double_real, D__NONE,D__NONE, "FLD" ,0xdd,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FISTTP, D__double_real, D__NONE,D__NONE, "FISTTP" ,0xdd,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x1 {R_M, C_FST, D__double_real, D__NONE,D__NONE, "FST" ,0xdd,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x2 {R_M, C_FSTP, D__double_real, D__NONE,D__NONE, "FSTP" ,0xdd,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x3 {R_M, C_FRSTOR, D__98_108b, D__NONE,D__NONE, "FRSTOR" ,0xdd,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_NULL }, //0x5 {R_M, C_FSAVE, D__98_108b, D__NONE,D__NONE, "FSAVE" ,0xdd,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x6 {R_M, C_FSTSW, D__2b, D__NONE,D__NONE, "FSTSW" ,0xdd,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x7 //˫ֽڸָ { 0 , C_FFREE, D__st0, D__NONE, D__NONE, "FFREE" ,0xc0dd,2|C_ESC_GROUP_TYPE|(8<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc0 { 0 , C_FFREE, D__st1, D__NONE, D__NONE, "FFREE" ,0xc1dd,2|C_ESC_GROUP_TYPE|(9<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc1 { 0 , C_FFREE, D__st2, D__NONE, D__NONE, "FFREE" ,0xc2dd,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc2 { 0 , C_FFREE, D__st3, D__NONE, D__NONE, "FFREE" ,0xc3dd,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc3 { 0 , C_FFREE, D__st4, D__NONE, D__NONE, "FFREE" ,0xc4dd,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc4 { 0 , C_FFREE, D__st5, D__NONE, D__NONE, "FFREE" ,0xc5dd,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc5 { 0 , C_FFREE, D__st6, D__NONE, D__NONE, "FFREE" ,0xc6dd,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc6 { 0 , C_FFREE, D__st7, D__NONE, D__NONE, "FFREE" ,0xc7dd,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(0,0,0)}, //0xc7 { 0 , C_NULL }, //0xc8 { 0 , C_NULL }, //0xc9 { 0 , C_NULL }, //0xca { 0 , C_NULL }, //0xcb { 0 , C_NULL }, //0xcc { 0 , C_NULL }, //0xcd { 0 , C_NULL }, //0xce { 0 , C_NULL }, //0xcf { 0 , C_FST, D__st0, D__NONE, D__NONE, "FST" ,0xd0dd,2|C_ESC_GROUP_TYPE|(24<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd0 { 0 , C_FST, D__st1, D__NONE, D__NONE, "FST" ,0xd1dd,2|C_ESC_GROUP_TYPE|(25<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd1 { 0 , C_FST, D__st2, D__NONE, D__NONE, "FST" ,0xd2dd,2|C_ESC_GROUP_TYPE|(26<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd2 { 0 , C_FST, D__st3, D__NONE, D__NONE, "FST" ,0xd3dd,2|C_ESC_GROUP_TYPE|(27<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd3 { 0 , C_FST, D__st4, D__NONE, D__NONE, "FST" ,0xd4dd,2|C_ESC_GROUP_TYPE|(28<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd4 { 0 , C_FST, D__st5, D__NONE, D__NONE, "FST" ,0xd5dd,2|C_ESC_GROUP_TYPE|(29<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd5 { 0 , C_FST, D__st6, D__NONE, D__NONE, "FST" ,0xd6dd,2|C_ESC_GROUP_TYPE|(30<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd6 { 0 , C_FST, D__st7, D__NONE, D__NONE, "FST" ,0xd7dd,2|C_ESC_GROUP_TYPE|(31<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd7 { 0 , C_FSTP, D__st0, D__NONE, D__NONE, "FSTP" ,0xd8dd,2|C_ESC_GROUP_TYPE|(32<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd8 { 0 , C_FSTP, D__st1, D__NONE, D__NONE, "FSTP" ,0xd9dd,2|C_ESC_GROUP_TYPE|(33<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd9 { 0 , C_FSTP, D__st2, D__NONE, D__NONE, "FSTP" ,0xdadd,2|C_ESC_GROUP_TYPE|(34<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xda { 0 , C_FSTP, D__st3, D__NONE, D__NONE, "FSTP" ,0xdbdd,2|C_ESC_GROUP_TYPE|(35<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xdb { 0 , C_FSTP, D__st4, D__NONE, D__NONE, "FSTP" ,0xdcdd,2|C_ESC_GROUP_TYPE|(36<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xdc { 0 , C_FSTP, D__st5, D__NONE, D__NONE, "FSTP" ,0xdddd,2|C_ESC_GROUP_TYPE|(37<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xdd { 0 , C_FSTP, D__st6, D__NONE, D__NONE, "FSTP" ,0xdedd,2|C_ESC_GROUP_TYPE|(38<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xde { 0 , C_FSTP, D__st7, D__NONE, D__NONE, "FSTP" ,0xdfdd,2|C_ESC_GROUP_TYPE|(39<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xdf { 0 , C_FUCOM, D__st0, D__st, D__NONE, "FUCOM" ,0xe0dd,2|C_ESC_GROUP_TYPE|(40<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe0 { 0 , C_FUCOM, D__st1, D__st, D__NONE, "FUCOM" ,0xe1dd,2|C_ESC_GROUP_TYPE|(41<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe1 { 0 , C_FUCOM, D__st2, D__st, D__NONE, "FUCOM" ,0xe2dd,2|C_ESC_GROUP_TYPE|(42<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe2 { 0 , C_FUCOM, D__st3, D__st, D__NONE, "FUCOM" ,0xe3dd,2|C_ESC_GROUP_TYPE|(43<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe3 { 0 , C_FUCOM, D__st4, D__st, D__NONE, "FUCOM" ,0xe4dd,2|C_ESC_GROUP_TYPE|(44<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe4 { 0 , C_FUCOM, D__st5, D__st, D__NONE, "FUCOM" ,0xe5dd,2|C_ESC_GROUP_TYPE|(45<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe5 { 0 , C_FUCOM, D__st6, D__st, D__NONE, "FUCOM" ,0xe6dd,2|C_ESC_GROUP_TYPE|(46<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe6 { 0 , C_FUCOM, D__st7, D__st, D__NONE, "FUCOM" ,0xe7dd,2|C_ESC_GROUP_TYPE|(47<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe7 { 0 , C_FUCOMP, D__st0, D__NONE, D__NONE, "FUCOMP" ,0xe8dd,2|C_ESC_GROUP_TYPE|(48<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe8 { 0 , C_FUCOMP, D__st1, D__NONE, D__NONE, "FUCOMP" ,0xe9dd,2|C_ESC_GROUP_TYPE|(49<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe9 { 0 , C_FUCOMP, D__st2, D__NONE, D__NONE, "FUCOMP" ,0xeadd,2|C_ESC_GROUP_TYPE|(50<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xea { 0 , C_FUCOMP, D__st3, D__NONE, D__NONE, "FUCOMP" ,0xebdd,2|C_ESC_GROUP_TYPE|(51<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xeb { 0 , C_FUCOMP, D__st4, D__NONE, D__NONE, "FUCOMP" ,0xecdd,2|C_ESC_GROUP_TYPE|(52<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xec { 0 , C_FUCOMP, D__st5, D__NONE, D__NONE, "FUCOMP" ,0xeddd,2|C_ESC_GROUP_TYPE|(53<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xed { 0 , C_FUCOMP, D__st6, D__NONE, D__NONE, "FUCOMP" ,0xeedd,2|C_ESC_GROUP_TYPE|(54<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xee { 0 , C_FUCOMP, D__st7, D__NONE, D__NONE, "FUCOMP" ,0xefdd,2|C_ESC_GROUP_TYPE|(55<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xef { 0 , C_NULL }, //0xf0 { 0 , C_NULL }, //0xf1 { 0 , C_NULL }, //0xf2 { 0 , C_NULL }, //0xf3 { 0 , C_NULL }, //0xf4 { 0 , C_NULL }, //0xf5 { 0 , C_NULL }, //0xf6 { 0 , C_NULL }, //0xf7 { 0 , C_NULL }, //0xf8 { 0 , C_NULL }, //0xf9 { 0 , C_NULL }, //0xfa { 0 , C_NULL }, //0xfb { 0 , C_NULL }, //0xfc { 0 , C_NULL }, //0xfd { 0 , C_NULL }, //0xfe { 0 , C_NULL } //0xff }; DIS_OPCODE_T Group0xde[] = //fpu group { {R_M, C_FIADD, D__word_int,D__NONE,D__NONE, "FIADD" ,0xde,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0 {R_M, C_FIMUL, D__word_int,D__NONE,D__NONE, "FIMUL" ,0xde,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1 {R_M, C_FICOM, D__word_int,D__NONE,D__NONE, "FICOM" ,0xde,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x2 {R_M, C_FICOMP, D__word_int,D__NONE,D__NONE, "FICOMP" ,0xde,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x3 {R_M, C_FISUB, D__word_int,D__NONE,D__NONE, "FISUB" ,0xde,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4 {R_M, C_FISUBR, D__word_int,D__NONE,D__NONE, "FISUBR" ,0xde,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x5 {R_M, C_FIDIV, D__word_int,D__NONE,D__NONE, "FIDIV" ,0xde,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x6 {R_M, C_FIDIVR, D__word_int,D__NONE,D__NONE, "FIDIVR" ,0xde,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x7 //˫ֽڸָ { 0 , C_FADDP, D__st0, D__st, D__NONE, "FADDP" ,0xc0de,2|C_ESC_GROUP_TYPE|(8<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc0 { 0 , C_FADDP, D__st1, D__st, D__NONE, "FADDP" ,0xc1de,2|C_ESC_GROUP_TYPE|(9<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc1 { 0 , C_FADDP, D__st2, D__st, D__NONE, "FADDP" ,0xc2de,2|C_ESC_GROUP_TYPE|(10<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc2 { 0 , C_FADDP, D__st3, D__st, D__NONE, "FADDP" ,0xc3de,2|C_ESC_GROUP_TYPE|(11<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc3 { 0 , C_FADDP, D__st4, D__st, D__NONE, "FADDP" ,0xc4de,2|C_ESC_GROUP_TYPE|(12<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc4 { 0 , C_FADDP, D__st5, D__st, D__NONE, "FADDP" ,0xc5de,2|C_ESC_GROUP_TYPE|(13<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc5 { 0 , C_FADDP, D__st6, D__st, D__NONE, "FADDP" ,0xc6de,2|C_ESC_GROUP_TYPE|(14<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc6 { 0 , C_FADDP, D__st7, D__st, D__NONE, "FADDP" ,0xc7de,2|C_ESC_GROUP_TYPE|(15<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc7 { 0 , C_FMULP, D__st0, D__st, D__NONE, "FMULP" ,0xc8de,2|C_ESC_GROUP_TYPE|(16<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc8 { 0 , C_FMULP, D__st1, D__st, D__NONE, "FMULP" ,0xc9de,2|C_ESC_GROUP_TYPE|(17<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc9 { 0 , C_FMULP, D__st2, D__st, D__NONE, "FMULP" ,0xcade,2|C_ESC_GROUP_TYPE|(18<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xca { 0 , C_FMULP, D__st3, D__st, D__NONE, "FMULP" ,0xcbde,2|C_ESC_GROUP_TYPE|(19<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcb { 0 , C_FMULP, D__st4, D__st, D__NONE, "FMULP" ,0xccde,2|C_ESC_GROUP_TYPE|(20<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcc { 0 , C_FMULP, D__st5, D__st, D__NONE, "FMULP" ,0xcdde,2|C_ESC_GROUP_TYPE|(21<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcd { 0 , C_FMULP, D__st6, D__st, D__NONE, "FMULP" ,0xcede,2|C_ESC_GROUP_TYPE|(22<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xce { 0 , C_FMULP, D__st7, D__st, D__NONE, "FMULP" ,0xcfde,2|C_ESC_GROUP_TYPE|(23<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xcf { 0 , C_NULL }, //0xd0 { 0 , C_NULL }, //0xd1 { 0 , C_NULL }, //0xd2 { 0 , C_NULL }, //0xd3 { 0 , C_NULL }, //0xd4 { 0 , C_NULL }, //0xd5 { 0 , C_NULL }, //0xd6 { 0 , C_NULL }, //0xd7 { 0 , C_NULL }, //0xd8 { 0 , C_FCOMPP, D__NONE, D__NONE, D__NONE, "FCOMPP" ,0xd9de,2|C_ESC_GROUP_TYPE|(33<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xd9 { 0 , C_NULL }, //0xda { 0 , C_NULL }, //0xdb { 0 , C_NULL }, //0xdc { 0 , C_NULL }, //0xdd { 0 , C_NULL }, //0xde { 0 , C_NULL }, //0xdf { 0 , C_FSUBRP, D__st0, D__st, D__NONE, "FSUBRP" ,0xe0de,2|C_ESC_GROUP_TYPE|(40<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe0 { 0 , C_FSUBRP, D__st1, D__st, D__NONE, "FSUBRP" ,0xe1de,2|C_ESC_GROUP_TYPE|(41<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe1 { 0 , C_FSUBRP, D__st2, D__st, D__NONE, "FSUBRP" ,0xe2de,2|C_ESC_GROUP_TYPE|(42<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe2 { 0 , C_FSUBRP, D__st3, D__st, D__NONE, "FSUBRP" ,0xe3de,2|C_ESC_GROUP_TYPE|(43<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe3 { 0 , C_FSUBRP, D__st4, D__st, D__NONE, "FSUBRP" ,0xe4de,2|C_ESC_GROUP_TYPE|(44<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe4 { 0 , C_FSUBRP, D__st5, D__st, D__NONE, "FSUBRP" ,0xe5de,2|C_ESC_GROUP_TYPE|(45<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe5 { 0 , C_FSUBRP, D__st6, D__st, D__NONE, "FSUBRP" ,0xe6de,2|C_ESC_GROUP_TYPE|(46<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe6 { 0 , C_FSUBRP, D__st7, D__st, D__NONE, "FSUBRP" ,0xe7de,2|C_ESC_GROUP_TYPE|(47<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe7 { 0 , C_FSUBP, D__st0, D__st, D__NONE, "FSUBP" ,0xe8de,2|C_ESC_GROUP_TYPE|(48<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe8 { 0 , C_FSUBP, D__st1, D__st, D__NONE, "FSUBP" ,0xe9de,2|C_ESC_GROUP_TYPE|(49<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xe9 { 0 , C_FSUBP, D__st2, D__st, D__NONE, "FSUBP" ,0xeade,2|C_ESC_GROUP_TYPE|(50<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xea { 0 , C_FSUBP, D__st3, D__st, D__NONE, "FSUBP" ,0xebde,2|C_ESC_GROUP_TYPE|(51<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xeb { 0 , C_FSUBP, D__st4, D__st, D__NONE, "FSUBP" ,0xecde,2|C_ESC_GROUP_TYPE|(52<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xec { 0 , C_FSUBP, D__st5, D__st, D__NONE, "FSUBP" ,0xedde,2|C_ESC_GROUP_TYPE|(53<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xed { 0 , C_FSUBP, D__st6, D__st, D__NONE, "FSUBP" ,0xeede,2|C_ESC_GROUP_TYPE|(54<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xee { 0 , C_FSUBP, D__st7, D__st, D__NONE, "FSUBP" ,0xefde,2|C_ESC_GROUP_TYPE|(55<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xef { 0 , C_FDIVRP, D__st0, D__st, D__NONE, "FDIVRP" ,0xf0de,2|C_ESC_GROUP_TYPE|(56<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf0 { 0 , C_FDIVRP, D__st1, D__st, D__NONE, "FDIVRP" ,0xf1de,2|C_ESC_GROUP_TYPE|(57<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf1 { 0 , C_FDIVRP, D__st2, D__st, D__NONE, "FDIVRP" ,0xf2de,2|C_ESC_GROUP_TYPE|(58<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 { 0 , C_FDIVRP, D__st3, D__st, D__NONE, "FDIVRP" ,0xf3de,2|C_ESC_GROUP_TYPE|(59<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 { 0 , C_FDIVRP, D__st4, D__st, D__NONE, "FDIVRP" ,0xf4de,2|C_ESC_GROUP_TYPE|(60<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf4 { 0 , C_FDIVRP, D__st5, D__st, D__NONE, "FDIVRP" ,0xf5de,2|C_ESC_GROUP_TYPE|(61<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf5 { 0 , C_FDIVRP, D__st6, D__st, D__NONE, "FDIVRP" ,0xf6de,2|C_ESC_GROUP_TYPE|(62<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf6 { 0 , C_FDIVRP, D__st7, D__st, D__NONE, "FDIVRP" ,0xf7de,2|C_ESC_GROUP_TYPE|(63<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf7 { 0 , C_FDIVP, D__st0, D__st, D__NONE, "FDIVP" ,0xf8de,2|C_ESC_GROUP_TYPE|(64<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf8 { 0 , C_FDIVP, D__st1, D__st, D__NONE, "FDIVP" ,0xf9de,2|C_ESC_GROUP_TYPE|(65<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf9 { 0 , C_FDIVP, D__st2, D__st, D__NONE, "FDIVP" ,0xfade,2|C_ESC_GROUP_TYPE|(66<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfa { 0 , C_FDIVP, D__st3, D__st, D__NONE, "FDIVP" ,0xfbde,2|C_ESC_GROUP_TYPE|(67<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfb { 0 , C_FDIVP, D__st4, D__st, D__NONE, "FDIVP" ,0xfcde,2|C_ESC_GROUP_TYPE|(68<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfc { 0 , C_FDIVP, D__st5, D__st, D__NONE, "FDIVP" ,0xfdde,2|C_ESC_GROUP_TYPE|(69<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfd { 0 , C_FDIVP, D__st6, D__st, D__NONE, "FDIVP" ,0xfede,2|C_ESC_GROUP_TYPE|(70<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xfe { 0 , C_FDIVP, D__st7, D__st, D__NONE, "FDIVP" ,0xffde,2|C_ESC_GROUP_TYPE|(71<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)} //0xff }; DIS_OPCODE_T Group0xdf[] = //fpu group { //ڴйصĸָ ȸָ(add D__Gb,D__Eb)һ {R_M, C_FILD, D__word_int, D__NONE,D__NONE, "FILD" ,0xdf,1|C_ESC_GROUP_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FISTTP, D__word_int, D__NONE,D__NONE, "FISTTP" ,0xdf,1|C_ESC_GROUP_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1 {R_M, C_FIST, D__word_int, D__NONE,D__NONE, "FIST" ,0xdf,1|C_ESC_GROUP_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x2 {R_M, C_FISTP, D__word_int, D__NONE,D__NONE, "FISTP" ,0xdf,1|C_ESC_GROUP_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x3 {R_M, C_FBLD, D__packed_BCD, D__NONE,D__NONE, "FBLD" ,0xdf,1|C_ESC_GROUP_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x4 {R_M, C_FILD, D__qword_int, D__NONE,D__NONE, "FILD" ,0xdf,1|C_ESC_GROUP_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_FBSTP, D__packed_BCD, D__NONE,D__NONE, "FBSTP" ,0xdf,1|C_ESC_GROUP_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x6 {R_M, C_FISTP, D__qword_int, D__NONE,D__NONE, "FISTP" ,0xdf,1|C_ESC_GROUP_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x7 //˫ֽڸָ { 0 , C_NULL }, //0xc0 { 0 , C_NULL }, //0xc1 { 0 , C_NULL }, //0xc2 { 0 , C_NULL }, //0xc3 { 0 , C_NULL }, //0xc4 { 0 , C_NULL }, //0xc5 { 0 , C_NULL }, //0xc6 { 0 , C_NULL }, //0xc7 { 0 , C_NULL }, //0xc8 { 0 , C_NULL }, //0xc9 { 0 , C_NULL }, //0xca { 0 , C_NULL }, //0xcb { 0 , C_NULL }, //0xcc { 0 , C_NULL }, //0xcd { 0 , C_NULL }, //0xce { 0 , C_NULL }, //0xcf { 0 , C_NULL }, //0xd0 { 0 , C_NULL }, //0xd1 { 0 , C_NULL }, //0xd2 { 0 , C_NULL }, //0xd3 { 0 , C_NULL }, //0xd4 { 0 , C_NULL }, //0xd5 { 0 , C_NULL }, //0xd6 { 0 , C_NULL }, //0xd7 { 0 , C_NULL }, //0xd8 { 0 , C_NULL }, //0xd9 { 0 , C_NULL }, //0xda { 0 , C_NULL }, //0xdb { 0 , C_NULL }, //0xdc { 0 , C_NULL }, //0xdd { 0 , C_NULL }, //0xde { 0 , C_NULL }, //0xdf { 0 , C_FSTSW, D__AX, D__NONE, D__NONE, "FSTSW" ,0xe0df,2|C_ESC_GROUP_TYPE|(40<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0xe0 { 0 , C_NULL }, //0xe1 { 0 , C_NULL }, //0xe2 { 0 , C_NULL }, //0xe3 { 0 , C_NULL }, //0xe4 { 0 , C_NULL }, //0xe5 { 0 , C_NULL }, //0xe6 { 0 , C_NULL }, //0xe7 { 0 , C_FUCOMIP, D__st0, D__st, D__NONE, "FUCOMIP" ,0xe8df,2|C_ESC_GROUP_TYPE|(48<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe8 { 0 , C_FUCOMIP, D__st1, D__st, D__NONE, "FUCOMIP" ,0xe9df,2|C_ESC_GROUP_TYPE|(49<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe9 { 0 , C_FUCOMIP, D__st2, D__st, D__NONE, "FUCOMIP" ,0xeadf,2|C_ESC_GROUP_TYPE|(50<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xea { 0 , C_FUCOMIP, D__st3, D__st, D__NONE, "FUCOMIP" ,0xebdf,2|C_ESC_GROUP_TYPE|(51<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xeb { 0 , C_FUCOMIP, D__st4, D__st, D__NONE, "FUCOMIP" ,0xecdf,2|C_ESC_GROUP_TYPE|(52<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xec { 0 , C_FUCOMIP, D__st5, D__st, D__NONE, "FUCOMIP" ,0xeddf,2|C_ESC_GROUP_TYPE|(53<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xed { 0 , C_FUCOMIP, D__st6, D__st, D__NONE, "FUCOMIP" ,0xeedf,2|C_ESC_GROUP_TYPE|(54<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xee { 0 , C_FUCOMIP, D__st7, D__st, D__NONE, "FUCOMIP" ,0xefdf,2|C_ESC_GROUP_TYPE|(55<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xef { 0 , C_FCOMIP, D__st0, D__st, D__NONE, "FCOMIP" ,0xf0df,2|C_ESC_GROUP_TYPE|(56<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf0 { 0 , C_FCOMIP, D__st1, D__st, D__NONE, "FCOMIP" ,0xf1df,2|C_ESC_GROUP_TYPE|(57<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf1 { 0 , C_FCOMIP, D__st2, D__st, D__NONE, "FCOMIP" ,0xf2df,2|C_ESC_GROUP_TYPE|(58<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf2 { 0 , C_FCOMIP, D__st3, D__st, D__NONE, "FCOMIP" ,0xf3df,2|C_ESC_GROUP_TYPE|(59<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf3 { 0 , C_FCOMIP, D__st4, D__st, D__NONE, "FCOMIP" ,0xf4df,2|C_ESC_GROUP_TYPE|(60<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf4 { 0 , C_FCOMIP, D__st5, D__st, D__NONE, "FCOMIP" ,0xf5df,2|C_ESC_GROUP_TYPE|(61<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf5 { 0 , C_FCOMIP, D__st6, D__st, D__NONE, "FCOMIP" ,0xf6df,2|C_ESC_GROUP_TYPE|(62<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf6 { 0 , C_FCOMIP, D__st7, D__st, D__NONE, "FCOMIP" ,0xf7df,2|C_ESC_GROUP_TYPE|(63<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xf7 { 0 , C_NULL }, //0xf8 { 0 , C_NULL }, //0xf9 { 0 , C_NULL }, //0xfa { 0 , C_NULL }, //0xfb { 0 , C_NULL }, //0xfc { 0 , C_NULL }, //0xfd { 0 , C_NULL }, //0xfe { 0 , C_NULL } //0xff }; DIS_OPCODE_T Group0x0f01[] = //CPUģʽָ { {R_M, C_SGDT, D__wMs, D__NONE, D__NONE, "SGDT" ,0x010f,2|C_GROUP_2_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x0 {R_M, C_SIDT, D__wMs, D__NONE, D__NONE, "SIDT" ,0x010f,2|C_GROUP_2_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x1 {R_M, C_LGDT, D__rMs, D__NONE, D__NONE, "LGDT" ,0x010f,2|C_GROUP_2_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_LIDT, D__rMs, D__NONE, D__NONE, "LIDT" ,0x010f,2|C_GROUP_2_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x4 {R_M, C_NULL }, //0x5 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6 {R_M, C_INVLPG, D__Mb, D__NONE, D__NONE, "INVLPG",0x010f,2|C_GROUP_2_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x7 //Group0x0f01_11_000[] = //80386 reg=000 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x0 {R_M, C_VMCALL, D__NONE, D__NONE, D__NONE, "VMCALL",0x010f,2|C_GROUP_2_TYPE|(9<<16)}, //RM=0x1 {R_M, C_VMLAUNCH, D__NONE, D__NONE, D__NONE, "VMLAUNCH",0x010f,2|C_GROUP_2_TYPE|(10<<16)}, //RM=0x2 {R_M, C_VMRESUME, D__NONE, D__NONE, D__NONE, "VMRESUME",0x010f,2|C_GROUP_2_TYPE|(11<<16)}, //RM=0x3 {R_M, C_VMXOFF, D__NONE, D__NONE, D__NONE, "VMXOFF",0x010f,2|C_GROUP_2_TYPE|(12<<16)}, //RM=0X4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=001 {R_M, C_MONITOR, D__NONE, D__NONE, D__NONE, "monitor",0x010f,2|C_GROUP_2_TYPE|(16<<16)}, //RM=0x0 {R_M, C_MWAIT, D__NONE, D__NONE, D__NONE, "mwait",0x010f,2|C_GROUP_2_TYPE|(17<<16)}, //RM=0x1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=002 {R_M, C_XGETBV, D__NONE, D__NONE, D__NONE,"xgetbv" ,0x010f,2|C_GROUP_2_TYPE|(24<<16)}, //RM=0x0 {R_M, C_XSETBV, D__NONE, D__NONE, D__NONE,"xsetbv" ,0x010f,2|C_GROUP_2_TYPE|(25<<16)}, //RM=0x1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=003 {R_M, C_VMRUN, D__EAX, D__NONE, D__NONE,"VMRUN" ,0x010f,2|C_GROUP_2_TYPE|(32<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x0 {R_M, C_VMMCALL, D__NONE, D__NONE, D__NONE,"VMMCALL" ,0x010f,2|C_GROUP_2_TYPE|(33<<16) }, //RM=0x1 {R_M, C_VMLOAD, D__EAX, D__NONE, D__NONE,"VMLOAD" ,0x010f,2|C_GROUP_2_TYPE|(34<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x2 {R_M, C_VMSAVE, D__EAX, D__NONE, D__NONE,"VMSAVE" ,0x010f,2|C_GROUP_2_TYPE|(35<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x3 {R_M, C_STGI, D__NONE, D__NONE, D__NONE,"STGI" ,0x010f,2|C_GROUP_2_TYPE|(36<<16)}, //RM=0x4 {R_M, C_CLGI, D__NONE, D__NONE, D__NONE,"CLGI" ,0x010f,2|C_GROUP_2_TYPE|(37<<16)}, //RM=0x5 {R_M, C_SKINIT, D__EAX, D__NONE, D__NONE,"SKINIT" ,0x010f,2|C_GROUP_2_TYPE|(38<<16) }, //RM=0x6 {R_M, C_INVLPGA, D__EAX, D__ECX, D__NONE,"INVLPGA" ,0x010f,2|C_GROUP_2_TYPE|(39<<16) }, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=004 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(40<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x0 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(41<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x1 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(42<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x2 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(43<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x3 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(44<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x4 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(45<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x5 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(46<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x6 {R_M, C_SMSW, D__wMwRv, D__NONE, D__NONE, "SMSW" ,0x010f,2|C_GROUP_2_TYPE|(47<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=005 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//RM=0x1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=006 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(56<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x0 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(57<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x1 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(58<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x2 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(59<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x3 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(60<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x4 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(61<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x5 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(62<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x6 {R_M, C_LMSW, D__rEw, D__NONE, D__NONE, "LMSW" ,0x010f,2|C_GROUP_2_TYPE|(63<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //RM=0x7 //Group0x0f01_11_000[] = //80386 reg=007 {R_M, C_SWAPGS, D__NONE, D__NONE, D__NONE,"SWAPGS" ,0x010f,2|C_GROUP_2_TYPE|(64<<16)}, //RM=0x0 {R_M, C_RDTSCP, D__NONE, D__NONE, D__NONE,"RDTSCP" ,0x010f,2|C_GROUP_2_TYPE|(65<<16)}, //RM=0x1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //RM=0x7 }; DIS_OPCODE_T Group0x0f18[] = //80386 { {R_M, C_PREFETCH, D__Mb, D__NONE, D__NONE, "prefetchnta" ,0x180f,2|C_GROUP_0_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_PREFETCH, D__Mb, D__NONE, D__NONE, "prefetcht0" ,0x180f,2|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1 {R_M, C_PREFETCH, D__Mb, D__NONE, D__NONE, "prefetcht1" ,0x180f,2|C_GROUP_0_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_PREFETCH, D__Mb, D__NONE, D__NONE, "prefetcht2" ,0x180f,2|C_GROUP_0_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x3 {R_M, C_NULL, }, //0x4 {R_M, C_NULL, }, //0x5 {R_M, C_NULL, }, //0x6 {R_M, C_NULL, }, //0x7 }; DIS_OPCODE_T Group0x0f71_reg_010[] = { {R_M |Immediate_Ib, C_PSRLW, D__Nq, D__Ib, D__NONE,"psrlw" ,0x710f,2|C_GROUP_5_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSRLW, D__Udq, D__Ib, D__NONE,"psrlw" ,0x710f66,3|C_GROUP_5_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f71_reg_100[] = { {R_M |Immediate_Ib, C_PSRAW, D__Nq, D__Ib, D__NONE,"psraw" ,0x710f,2|C_GROUP_5_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSRAW, D__Udq, D__Ib, D__NONE,"psraw" ,0x710f66,3|C_GROUP_5_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f71_reg_110[] = { {R_M |Immediate_Ib, C_PSLLW, D__Nq, D__Ib, D__NONE,"psllw" ,0x710f,2|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSLLW, D__Udq, D__Ib, D__NONE,"psllw" ,0x710f66,3|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f71[] = //80386 { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x1 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f71_reg_010 ,0x710f,2|C_GROUP_0_TYPE|(10<<16)}, //0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x3 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f71_reg_100 ,0x710f,2|C_GROUP_0_TYPE|(12<<16)}, //0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x5 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f71_reg_110 ,0x710f,2|C_GROUP_0_TYPE|(14<<16)}, //0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, } //0x7 }; DIS_OPCODE_T Group0x0f72_reg_010[] = { {R_M |Immediate_Ib, C_PSRLD, D__Nq, D__Ib, D__NONE,"psrld" ,0x720f,2|C_GROUP_5_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSRLD, D__Udq, D__Ib, D__NONE,"psrld" ,0x720f66,3|C_GROUP_5_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f72_reg_100[] = { {R_M |Immediate_Ib, C_PSRAD, D__Nq, D__Ib, D__NONE,"psrad" ,0x720f,2|C_GROUP_5_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSRAD, D__Udq, D__Ib, D__NONE,"psrad" ,0x720f66,3|C_GROUP_5_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f72_reg_110[] = { {R_M |Immediate_Ib, C_PSLLD, D__Nq, D__Ib, D__NONE,"pslld" ,0x720f,2|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSLLD, D__Udq, D__Ib, D__NONE,"pslld" ,0x720f66,3|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f72[] = //80386 { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x1 {R_M |Immediate_Ib, C_GRP3, D__Pq, D__Ib, D__NONE, (char*)Group0x0f72_reg_010 ,0x720f,2|C_GROUP_1_TYPE|(10<<16)}, //0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x3 {R_M |Immediate_Ib, C_GRP3, D__Pq, D__Ib, D__NONE, (char*)Group0x0f72_reg_100 ,0x720f,2|C_GROUP_1_TYPE|(12<<16)}, //0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x5 {R_M |Immediate_Ib, C_GRP3, D__Pq, D__Ib, D__NONE, (char*)Group0x0f72_reg_110 ,0x720f,2|C_GROUP_1_TYPE|(14<<16)}, //0x6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, } //0x7 }; DIS_OPCODE_T Group0x0f73_reg_010[] = { {R_M |Immediate_Ib, C_PSRLQ, D__Nq, D__Ib, D__NONE,"psrlq" ,0x730f,2|C_GROUP_5_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSRLQ, D__Udq, D__Ib, D__NONE,"psrlq" ,0x730f66,3|C_GROUP_5_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f73_reg_011[] = { {R_M |Immediate_Ib, C_NULL, }, //no prefix {R_M |Immediate_Ib, C_PSRLDQ, D__Udq, D__Ib, D__NONE,"psrldq" ,0x730f66,3|C_GROUP_5_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f73_reg_110[] = { {R_M |Immediate_Ib, C_PSLLQ, D__Nq, D__Ib, D__NONE,"psllq" ,0x730f,2|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M |Immediate_Ib, C_PSLLQ, D__Udq, D__Ib, D__NONE,"psllq" ,0x730f66,3|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f73_reg_111[] = { {0, C_NULL, D__NONE, D__NONE, D__NONE,}, {R_M |Immediate_Ib, C_PSLLDQ, D__Udq, D__Ib, D__NONE,"pslldq" ,0x730f66,3|C_GROUP_5_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0f73[] = //80386 { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x1 {R_M |Immediate_Ib, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f73_reg_010 ,0x730f,2|C_GROUP_5_TYPE|(10<<16)}, //0x2 {R_M |Immediate_Ib, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f73_reg_011 ,0x730f,2|C_GROUP_5_TYPE|(10<<16)}, //0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x5 {R_M |Immediate_Ib, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f73_reg_110 ,0x730f,2|C_GROUP_5_TYPE|(14<<16)}, //0x6 {R_M |Immediate_Ib, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f73_reg_111 ,0x730f,2|C_GROUP_5_TYPE|(14<<16)}, //0x6 }; DIS_OPCODE_T Group0x0fae[] = //80386 { {R_M, C_FXSAVE, D__M, D__NONE, D__NONE, "fxsave" ,0xae0f,2|C_GROUP_1_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0 {R_M, C_FXRSTOR,D__M, D__NONE, D__NONE, "fxrstor" ,0xae0f,2|C_GROUP_1_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1 {R_M, C_LDMXCSR,D__Ed, D__NONE, D__NONE, "ldmxcsr" ,0xae0f,2|C_GROUP_1_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x2 {R_M, C_STMXCSR,D__Ed, D__NONE, D__NONE, "stmxcsr" ,0xae0f,2|C_GROUP_1_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x3 {R_M, C_XSAVE,D__M, D__NONE, D__NONE, "XSAVE" ,0xae0f,2|C_GROUP_1_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x4 {R_M, C_XRSTOR,D__M, D__NONE, D__NONE, "XRSTOR" ,0xae0f,2|C_GROUP_1_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x5 {R_M, C_NULL, }, //0x6 {R_M, C_CLFLUSH,D__Eb, D__NONE, D__NONE, "clflush" ,0xae0f,2|C_GROUP_1_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x7 //Group0x0fae_11b[] = //80386 {R_M, C_NULL, }, //0x0 {R_M, C_NULL, }, //0x1 {R_M, C_NULL, }, //0x2 {R_M, C_NULL, }, //0x3 {R_M, C_NULL, }, //0x4 {R_M, C_LFENCE, D__NONE, D__NONE, D__NONE, "lfence" ,0xae0f,2|C_GROUP_1_TYPE|(13<<16)}, //0x5 {R_M, C_MFENCE, D__NONE, D__NONE, D__NONE, "mfence" ,0xae0f,2|C_GROUP_1_TYPE|(14<<16)}, //0x6 {R_M, C_SFENCE, D__NONE, D__NONE, D__NONE, "sfence" ,0xae0f,2|C_GROUP_1_TYPE|(15<<16)} //0x7 }; DIS_OPCODE_T Group0x0fc7_reg_001[] = { {R_M|F_64 , C_CMPXCHG8B, D__MqMdq, D__NONE, D__NONE,"CMPXCHG8B" ,0xc70f,2|C_GROUP_5_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x63 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0fc7_reg_110[] = { {R_M , C_VMPTRLD, D__Mq, D__NONE, D__NONE,"VMPTRLD" ,0xc70f,2|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //no prefix {R_M , C_VMCLEAR, D__Mq, D__NONE, D__NONE,"VMCLEAR" ,0xc70f66,3|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {R_M, C_VMXON, D__Mq, D__NONE, D__NONE,"VMXON",0xc70ff3,3|C_GROUP_5_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xf3 }; DIS_OPCODE_T Group0x0fc7_reg_111[] = { {R_M|F_64 , C_VMPTRST, D__Mq, D__NONE, D__NONE,"VMPTRST" ,0xc70f,2|C_GROUP_5_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_R,0,0)}, //no prefix {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0x66 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf2 {0, C_NULL, D__NONE, D__NONE, D__NONE,}, //0xf3 }; DIS_OPCODE_T Group0x0fc7[] = //80386 { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x00 {R_M|F_64 , C_CMPXCHG8B, D__MqMdq, D__NONE, D__NONE,"CMPXCHG8B" ,0xc70f,2|C_GROUP_0_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x63 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x5 {R_M, C_GRP3,D__NONE, D__NONE, D__NONE, (char*)Group0x0fc7_reg_110 ,0xc70f,2|C_GROUP_0_TYPE|(6<<16)}, //0x6 {R_M, C_GRP3,D__NONE, D__NONE, D__NONE, (char*)Group0x0fc7_reg_111 ,0xc70f,2|C_GROUP_0_TYPE|(7<<16)}, //0x7 }; DIS_OPCODE_T Group0x0f3800[] = { {R_M, C_PSHUFB, D__Pq, D__Qq, D__NONE ,"pshufb", 0x00380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSHUFB, D__Vdq, D__Wdq, D__NONE ,"pshufb" ,0x00380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3801[] = { {R_M, C_PHADDW, D__Pq, D__Qq, D__NONE ,"phaddw",0x01380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PHADDW, D__Vdq, D__Wdq, D__NONE ,"phaddw",0x01380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3802[] = { {R_M, C_PHADDD, D__Pq, D__Qq, D__NONE ,"phaddd",0x02380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PHADDD, D__Vdq, D__Wdq, D__NONE ,"phaddd",0x02380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3803[] = { {R_M, C_PHADDSW, D__Pq, D__Qq, D__NONE ,"phaddsw",0x03380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PHADDSW, D__Vdq, D__Wdq, D__NONE ,"phaddsw",0x03380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3804[] = { {R_M, C_PMADDUBSW, D__Pq, D__Qq, D__NONE ,"pmaddubsw",0x04380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMADDUBSW, D__Vdq, D__Wdq, D__NONE ,"pmaddubsw",0x04380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3805[] = { {R_M, C_PHSUBW, D__Pq, D__Qq, D__NONE ,"phsubw",0x05380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PHSUBW, D__Vdq, D__Wdq, D__NONE ,"phsubw",0x05380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3806[] = { {R_M, C_PHSUBD, D__Pq, D__Qq, D__NONE ,"phsubd",0x06380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PHSUBD, D__Vdq, D__Wdq, D__NONE ,"phsubd",0x06380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3807[] = { {R_M, C_PHSUBSW, D__Pq, D__Qq, D__NONE ,"phsubsw",0x07380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PHSUBSW, D__Vdq, D__Wdq, D__NONE ,"phsubsw",0x07380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3808[] = { {R_M, C_PSIGNB, D__Pq, D__Qq, D__NONE ,"psignb",0x08380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSIGNB, D__Vdq, D__Wdq, D__NONE ,"psignb",0x08380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3809[] = { {R_M, C_PSIGNW, D__Pq, D__Qq, D__NONE ,"psignw" ,0x09380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSIGNW, D__Vdq, D__Wdq, D__NONE ,"psignw" ,0x09380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f380a[] = { {R_M, C_PSIGND, D__Pq, D__Qq, D__NONE ,"psignd",0x0a380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSIGND, D__Vdq, D__Wdq, D__NONE ,"psignd",0x0a380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f380b[] = { {R_M, C_PMULHRSW, D__Pq, D__Qq, D__NONE ,"pmulhrsw",0x0b380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMULHRSW, D__Vdq, D__Wdq, D__NONE ,"pmulhrsw" ,0x0b380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3810[] = { {R_M, C_NULL}, //no prefix {R_M, C_PBLENDVB, D__Vdq, D__Wdq, D__NONE ,"pblendvb" ,0x10380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3814[] = { {R_M, C_NULL}, //no prefix {R_M, C_BLENDVPS, D__Vdq, D__Wdq, D__NONE ,"blendvps" ,0x14380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3815[] = { {R_M, C_NULL, }, //no prefix {R_M, C_BLENDVPD, D__Vdq, D__Wdq, D__NONE ,"blendvpd" ,0x15380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3817[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PTEST, D__Vdq, D__Wdq, D__NONE ,"ptest" ,0x17380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f381c[] = { {R_M, C_PABSB, D__Pq, D__Qq, D__NONE ,"pabsb",0x1c380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_PABSB, D__Vdq, D__Wdq, D__NONE ,"pabsb",0x1c380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f381d[] = { {R_M, C_PABSW, D__Pq, D__Qq, D__NONE ,"pabsw",0x1d380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_PABSW, D__Vdq, D__Wdq, D__NONE ,"pabsw",0x1d380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f381e[] = { {R_M, C_PABSD, D__Pq, D__Qq, D__NONE ,"pabsd",0x1e380f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_PABSD, D__Vdq, D__Wdq, D__NONE ,"pabsd",0x1e380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3820[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBW,D__Vdq,D__Mq, D__NONE ,"pmovsxbw" ,0x20380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBW,D__Vdq,D__Udq, D__NONE ,"pmovsxbw" ,0x20380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3821[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBD,D__Vdq,D__Md, D__NONE ,"pmovsxbd" ,0x21380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBW,D__Vdq,D__Udq, D__NONE ,"pmovsxbd" ,0x21380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3822[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBQ,D__Vdq,D__Mw, D__NONE ,"pmovsxbq" ,0x22380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBQ,D__Vdq,D__Udq, D__NONE ,"pmovsxbq" ,0x22380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3823[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXWD,D__Vdq,D__Mq, D__NONE ,"pmovsxwd" ,0x23380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXWD,D__Vdq,D__Udq, D__NONE ,"pmovsxwd" ,0x23380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3824[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXWQ,D__Vdq,D__Md, D__NONE ,"pmovsxwq" ,0x24380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXBQ,D__Vdq,D__Udq, D__NONE ,"pmovsxwq" ,0x24380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3825[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXDQ,D__Vdq,D__Mq, D__NONE ,"pmovsxdq" ,0x25380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVSXDQ,D__Vdq,D__Udq, D__NONE ,"pmovsxdq" ,0x25380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3828[]= { {R_M, C_NULL, }, //no prefix {R_M, C_PMULDQ,D__Vdq,D__Wdq, D__NONE ,"pmuldq" ,0x28380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3829[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PCMPEQQ,D__Vdq,D__Wdq, D__NONE ,"pcmpeqq" ,0x29380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f382a[] = { {R_M, C_NULL, }, //no prefix {R_M, C_MOVNTDQA,D__Vdq,D__Mdq, D__NONE ,"movntdqa" ,0x2a380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f382b[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PACKUSDW,D__Vdq,D__Wdq, D__NONE ,"packusdw" ,0x2b380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3830[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBW,D__Vdq,D__Mq, D__NONE ,"pmovzxbw" ,0x30380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBW,D__Vdq,D__Udq, D__NONE ,"pmovzxbw" ,0x30380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3831[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBD,D__Vdq,D__Md, D__NONE ,"pmovzxbd" ,0x31380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBW,D__Vdq,D__Udq, D__NONE ,"pmovzxbd" ,0x31380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3832[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBQ,D__Vdq,D__Mw, D__NONE ,"pmovzxbq" ,0x32380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBQ,D__Vdq,D__Udq, D__NONE ,"pmovzxbq" ,0x32380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3833[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXWD,D__Vdq,D__Mq, D__NONE ,"pmovzxwd" ,0x33380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXWD,D__Vdq,D__Udq, D__NONE ,"pmovzxwd" ,0x33380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3834[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXWQ,D__Vdq,D__Md, D__NONE ,"pmovzxwq" ,0x34380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXBQ,D__Vdq,D__Udq, D__NONE ,"pmovzxwq" ,0x34380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3835[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXDQ,D__Vdq,D__Mq, D__NONE ,"pmovzxdq" ,0x35380f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_PMOVZXDQ,D__Vdq,D__Udq, D__NONE ,"pmovzxdq" ,0x35380f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3837[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PCMPGTQ,D__Vdq,D__Wdq, D__NONE ,"pcmpgtq" ,0x37380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix }; DIS_OPCODE_T Group0x0f3838[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMINSB,D__Vdq,D__Wdq, D__NONE ,"pminsb" ,0x38380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3839[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMINSD,D__Vdq,D__Wdq, D__NONE ,"pminsd" ,0x39380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f383a[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMINUW,D__Vdq,D__Wdq, D__NONE ,"pminuw" ,0x3a380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f383b[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMINUD,D__Vdq,D__Wdq, D__NONE ,"pminud" ,0x3b380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f383c[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMAXSB,D__Vdq,D__Wdq, D__NONE ,"pmaxsb" ,0x3c380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f383d[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMAXSD,D__Vdq,D__Wdq, D__NONE ,"pmaxsd" ,0x3d380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f383e[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMAXUW,D__Vdq,D__Wdq, D__NONE ,"pmaxuw" ,0x3e380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f383f[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMAXUD,D__Vdq,D__Wdq, D__NONE ,"pmaxud" ,0x3f380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3840[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PMULLD,D__Vdq,D__Wdq, D__NONE ,"pmulld" ,0x40380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3841[] = { {R_M, C_NULL, }, //no prefix {R_M, C_PHMINPOSUW, D__Vdq, D__Wdq, D__NONE, "phminposuw" ,0x41380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3880[] = { {R_M, C_NULL, }, //no prefix {R_M, C_INVEPT,D__Gy,D__Mdq, D__NONE ,"invept" ,0x80380f66,4|C_GROUP_4_TYPE|(1<<16)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_NULL, }, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3881[] = { {R_M, C_NULL, }, //no prefix {R_M, C_INVVPID, D__Gy, D__Mdq, D__NONE, "invvpid" ,0x81380f66,4|C_GROUP_4_TYPE|(1<<16)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_NULL, }, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38db[] = { {R_M, C_NULL, }, //no prefix {R_M, C_AESIMC, D__Vdq, D__Wdq, D__NONE, "aesimc" ,0xdb380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38dc[] = { {R_M, C_NULL, }, //no prefix {R_M, C_AESENC, D__Vdq, D__Wdq, D__NONE, "aesenc" ,0xdc380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38dd[] = { {R_M, C_NULL, }, //no prefix {R_M, C_AESENCLAST, D__Vdq, D__Wdq, D__NONE, "aesenclast",0xdd380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38de[] = { {R_M, C_NULL, }, //no prefix {R_M, C_AESDEC, D__Vdq, D__Wdq, D__NONE, "aesdec" ,0xde380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38df[] = { {R_M, C_NULL, }, //no prefix {R_M, C_AESDECLAST, D__Vdq, D__Wdq, D__NONE, "aesdeclast",0xdf380f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38f0[] = { {R_M, C_MOVBE,D__Gy,D__My,D__NONE,"movbe" ,0xf0380f,3|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVBE,D__Gw,D__Mw,D__NONE,"movbe" ,0xf0380f,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_CRC32,D__Gy,D__Eb, D__NONE ,"crc32" ,0xf0380ff2,4|C_GROUP_4_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_NULL, }, //prefix 0x66 {R_M, C_CRC32,D__Gy,D__Eb, D__NONE ,"crc32" ,0xf0380ff2,4|C_GROUP_4_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38f1[] = { {R_M, C_MOVBE,D__My,D__Gy,D__NONE,"movbe",0xf1380f,3|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVBE,D__Mw,D__Gw,D__NONE,"movbe" ,0xf1380f,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_CRC32, D__Gy, D__Ey, D__NONE ,"crc32" ,0xf1380ff2,4|C_GROUP_4_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod=11 {R_M, C_NULL, }, //no prefix {R_M, C_NULL, }, //prefix 0x66 {R_M, C_CRC32, D__Gy, D__Ev, D__NONE ,"crc32" ,0xf1380ff2,4|C_GROUP_4_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f38[] = { {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3800,0x00380f,3},//0f 38 00 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3801,0x01380f,3},//0f 38 01 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3802,0x02380f,3},//0f 38 02 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3803,0x03380f,3},//0f 38 03 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3804,0x04380f,3},//0f 38 04 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3805,0x05380f,3},//0f 38 05 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3806,0x06380f,3},//0f 38 06 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3807,0x07380f,3},//0f 38 07 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3808,0x08380f,3},//0f 38 08 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f3809,0x09380f,3},//0f 38 09 {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f380a,0x0a380f,3},//0f 38 0a {R_M, C_GRP3,D__Pq, D__Qq, D__NONE,(char*)Group0x0f380b,0x0b380f,3},//0f 38 0b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 0c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 0d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 0e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 0f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3810,0x10380f,3},//0f 38 10 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 11 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 12 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 13 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3814,0x14380f,3},//0f 38 14 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3815,0x15380f,3},//0f 38 15 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 16 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3817,0x17380f,3},//0f 38 17 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 18 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 19 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 1a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 1b {R_M, C_GRP3, D__Pq, D__Qq, D__NONE,(char*)Group0x0f381c,0x1c380f,3},//0f 38 1c {R_M, C_GRP3, D__Pq, D__Qq, D__NONE,(char*)Group0x0f381d,0x1d380f,3},//0f 38 1d {R_M, C_GRP3, D__Pq, D__Qq, D__NONE,(char*)Group0x0f381e,0x1e380f,3},//0f 38 1e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 1f {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3820,0x20380f,3},//0f 38 20 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3821,0x21380f,3},//0f 38 21 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3822,0x22380f,3},//0f 38 22 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3823,0x23380f,3},//0f 38 23 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3824,0x24380f,3},//0f 38 24 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3825,0x25380f,3},//0f 38 25 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 26 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 27 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3828,0x28380f,3},//0f 38 28 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3829,0x29380f,3},//0f 38 29 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f382a,0x2a380f,3},//0f 38 2a {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f382b,0x2b380f,3},//0f 38 2b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 2c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 2d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 2e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 2f {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3830,0x30380f,3},//0f 38 30 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3831,0x31380f,3},//0f 38 31 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3832,0x32380f,3},//0f 38 32 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3833,0x33380f,3},//0f 38 33 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3834,0x34380f,3},//0f 38 34 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3835,0x35380f,3},//0f 38 35 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 36 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3837,0x37380f,3},//0f 38 37 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3838,0x38380f,3},//0f 38 38 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3839,0x39380f,3},//0f 38 39 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f383a,0x3a380f,3},//0f 38 3a {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f383b,0x3b380f,3},//0f 38 3b {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f383c,0x3c380f,3},//0f 38 3c {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f383d,0x3d380f,3},//0f 38 3d {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f383e,0x3e380f,3},//0f 38 3e {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f383f,0x3f380f,3},//0f 38 3f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3840,0x40380f,3},//0f 38 40 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3841,0x41380f,3},//0f 38 41 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 42 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 43 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 44 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 45 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 46 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 47 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 48 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 49 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 4a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 4b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 4c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 4d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 4e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 4f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 50 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 51 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 52 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 53 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 54 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 55 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 56 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 57 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 58 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 59 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 5a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 5b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 5c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 5d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 5e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 5f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 60 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 61 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 62 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 63 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 64 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 65 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 67 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 68 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 69 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 6a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 6b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 6c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 6d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 6e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 6f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 70 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 71 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 72 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 73 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 74 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 75 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 76 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 77 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 78 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 79 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 7a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 7b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 7c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 7d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 7e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 7f {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3880 ,0x80380f,3},//0f 38 80 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3881 ,0x81380f,3},//0f 38 81 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 82 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 83 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 84 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 85 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 86 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 87 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 88 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 89 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 8a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 8b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 8c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 8d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 8e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 8f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 90 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 91 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 92 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 93 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 94 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 95 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 96 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 97 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 98 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 99 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 9a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 9b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 9c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 9d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 9e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 9f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 a9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 aa {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ab {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ac {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ad {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ae {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 af {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 b9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ba {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 bb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 bc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 bd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 be {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 bf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 c9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ca {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 cb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 cc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 cd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ce {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 cf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 d9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 da {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38db,0xdb380f,3},//0f 38 db {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38dc,0xdc380f,3},//0f 38 dc {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38dd,0xdd380f,3},//0f 38 dd {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38de,0xde380f,3},//0f 38 de {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38df,0xdf380f,3},//0f 38 df {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 e9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ea {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 eb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ec {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ed {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ee {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ef {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38f0,0xf0380f,3},//0f 38 f0 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f38f1,0xf1380f,3},//0f 38 f1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 f9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 fa {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 fb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 fc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 fd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 fe {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 38 ff }; DIS_OPCODE_T Group0x0f3a08[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_ROUNDPS, D__Vdq, D__Wdq, D__Ib, "roundps" ,0x083a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a09[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_ROUNDPD, D__Vdq, D__Wdq, D__Ib, "roundpd" ,0x093a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a0a[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_ROUNDSS, D__Vdq, D__Wdq, D__Ib, "roundss" ,0x0a3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a0b[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_ROUNDSD, D__Vdq, D__Wdq, D__Ib, "roundsd" ,0x0b3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a0c[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_BLENDPS, D__Vdq, D__Wdq, D__Ib, "blendps" ,0x0c3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a0d[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_BLENDPD, D__Vdq, D__Wdq, D__Ib, "blendpd" ,0x0d3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a0e[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_PBLENDW, D__Vdq, D__Wdq, D__Ib, "pblendw" ,0x0e3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a0f[] = { {R_M | Immediate_Ib, C_PALIGNR, D__Pq, D__Qq, D__Ib, "palignr" ,0x0f3a0f,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_PALIGNR, D__Vdq, D__Wdq, D__Ib, "palignr" ,0x0f3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a14[] = { {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib, C_PEXTRB, D__Mb, D__Vdq, D__Ib, "pextrb" ,0x143a0f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod = 0x11 {R_M, C_NULL, }, //no prefix {R_M | Immediate_Ib|D_64, C_PEXTRB, D__Ry, D__Vdq, D__Ib, "pextrb" ,0x143a0f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a15[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PEXTRW, D__Mw, D__Vdq, D__Ib, "pextrw" ,0x153a0f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib|D_64, C_PEXTRW, D__Ry, D__Vdq, D__Ib, "pextrw" ,0x153a0f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a16[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PEXTRD, D__Ey, D__Vdq, D__Ib, "pextrd" ,0x163a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a17[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_EXTRACTPS, D__Ed, D__Vdq, D__Ib, "extractps" ,0x173a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a20[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PINSRB, D__Vdq, D__Mb, D__Ib, "pinsrb" ,0x203a0f66,4|C_GROUP_3_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PINSRB, D__Vdq, D__Ry, D__Ib, "pinsrb" ,0x203a0f66,4|C_GROUP_3_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a21[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_INSERTPS, D__Vdq, D__Md, D__Ib, "insertps" ,0x213a0f66,4|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_INSERTPS, D__Vdq, D__Udq, D__Ib, "insertps" ,0x213a0f66,4|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a22[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PINSRD, D__Vdq, D__Ey, D__Ib, "pinsrd" ,0x223a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a40[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_DPPS, D__Vdq, D__Wdq, D__Ib, "dpps" ,0x403a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a41[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_DPPD, D__Vdq, D__Wdq, D__Ib, "dppd" ,0x413a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a42[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_MPSADBW, D__Vdq, D__Wdq, D__Ib, "mpsadbw" ,0x423a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a44[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PCLMULQDQ, D__Vdq, D__Wdq, D__Ib, "pclmulqdq" ,0x443a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a60[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PCMPESTRM, D__Vdq, D__Wdq, D__Ib, "pcmpestrm" ,0x603a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a61[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PCMPESTRI, D__Vdq, D__Wdq, D__Ib, "pcmpestri" ,0x613a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a62[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PCMPISTRM, D__Vdq, D__Wdq, D__Ib, "pcmpistrm" ,0x623a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a63[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_PCMPISTRI, D__Vdq, D__Wdq, D__Ib, "pcmpistri" ,0x633a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3adf[] = { {R_M, C_NULL }, //no prefix {R_M | Immediate_Ib, C_AESKEYGENASSIST, D__Vdq, D__Wdq, D__Ib, "aeskeygenassist" ,0xdf3a0f66,4|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f3a[] = { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 00 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 01 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 02 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 03 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 04 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 05 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 06 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 07 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a08,0x083a0f,3},//0f 3a 08 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a09,0x093a0f,3},//0f 3a 09 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a0a,0x0a3a0f,3},//0f 3a 0a {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a0b,0x0b3a0f,3},//0f 3a 0b {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a0c,0x0c3a0f,3},//0f 3a 0c {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a0d,0x0d3a0f,3},//0f 3a 0d {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a0e,0x0e3a0f,3},//0f 3a 0e {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a0f,0x0f3a0f,3},//0f 3a 0f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 10 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 11 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 12 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 13 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a14,0x143a0f,3},//0f 3a 14 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a15,0x153a0f,3},//0f 3a 15 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a16,0x163a0f,3},//0f 3a 16 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a17,0x173a0f,3},//0f 3a 17 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 18 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 19 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 1a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 1b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 1c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 1d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 1e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 1f {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a20,0x203a0f,3},//0f 3a 20 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a21,0x213a0f,3},//0f 3a 21 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a22,0x223a0f,3},//0f 3a 22 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 23 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 24 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 25 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 26 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 27 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 28 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 29 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 2a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 2b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 2c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 2d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 2e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 2f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 30 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 31 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 32 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 33 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 34 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 35 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 36 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 37 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 38 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 39 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 3a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 3b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 3c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 3d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 3e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 3f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a40,0x403a0f,3},//0f 3a 40 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a41,0x413a0f,3},//0f 3a 41 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a42,0x423a0f,3},//0f 3a 42 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 43 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a44,0x443a0f,3},//0f 3a 44 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 45 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 46 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 47 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 48 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 49 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 4a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 4b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 4c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 4d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 4e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 4f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 50 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 51 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 52 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 53 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 54 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 55 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 56 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 57 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 58 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 59 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 5a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 5b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 5c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 5d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 5e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 5f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a60,0x603a0f,3},//0f 3a 60 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a61,0x613a0f,3},//0f 3a 61 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a62,0x623a0f,3},//0f 3a 62 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3a63,0x633a0f,3},//0f 3a 63 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 64 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 65 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 67 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 68 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 69 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 6a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 6b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 6c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 6d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 6e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 6f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 70 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 71 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 72 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 73 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 74 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 75 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 76 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 77 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 78 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 79 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 7a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 7b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 7c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 7d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 7e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 7f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 80 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 81 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 82 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 83 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 84 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 85 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 86 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 87 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 88 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 89 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 8a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 8b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 8c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 8d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 8e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 8f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 90 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 91 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 92 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 93 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 94 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 95 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 96 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 97 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 98 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 99 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 9a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 9b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 9c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 9d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 9e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a 9f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a a9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a aa {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ab {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ac {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ad {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ae {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a af {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a b9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ba {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a bb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a bc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a bd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a be {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a bf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a c9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ca {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a cb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a cc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a cd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ce {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a cf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a d9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a da {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a db {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a dc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a dd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a de {R_M, C_GRP3, D__NONE, D__NONE, D__NONE,(char*)Group0x0f3adf,0xdf3a0f,3},//0f 3a df {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a e9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ea {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a eb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ec {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ed {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ee {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ef {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a f9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a fa {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a fb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a fc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a fd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a fe {R_M, C_NULL, D__NONE, D__NONE, D__NONE, },//0f 3a ff }; DIS_OPCODE_T Group0x0f70[] = { {R_M | Immediate_Ib, C_PSHUFW, D__Pq, D__Qq, D__Ib, "pshufw" ,0x700f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_PSHUFD, D__Vdq, D__Wdq, D__Ib, "pshufd" ,0x700f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0x66 {R_M | Immediate_Ib, C_PSHUFLW, D__Vdq, D__Wdq, D__Ib, "pshuflw" ,0x700ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0xf2 {R_M | Immediate_Ib, C_PSHUFHW, D__Vdq, D__Wdq, D__Ib, "pshufhw" ,0x700ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0xf3 }; DIS_OPCODE_T Group0x0f74[] = { {R_M, C_PCMPEQB, D__Pq, D__Qq, D__NONE, "pcmpeqb" ,0x740f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PCMPEQB, D__Vdq, D__Wdq, D__NONE, "pcmpeqb" ,0x740f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, }, //0xf2 {R_M, C_NULL, }, //0xf3 }; DIS_OPCODE_T Group0x0f75[] = { {R_M, C_PCMPEQW, D__Pq, D__Qq, D__NONE, "pcmpeqw" ,0x750f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PCMPEQW, D__Vdq, D__Wdq, D__NONE, "pcmpeqw" ,0x750f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, }, //0xf2 {R_M, C_NULL, }, //0xf3 }; DIS_OPCODE_T Group0x0f76[] = { {R_M, C_PCMPEQD, D__Pq, D__Qq, D__NONE, "pcmpeqd" ,0x760f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PCMPEQD, D__Vdq, D__Wdq, D__NONE, "pcmpeqd" ,0x760f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, }, //0xf2 {R_M, C_NULL, }, //0xf3 }; DIS_OPCODE_T Group0x0f78[] = { {R_M|F_64, C_VMREAD, D__Ey, D__Gy, D__NONE, "VMREAD" ,0x780f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M| Immediate_Ib, C_EXTRQ, D__Vdq, D__Ib, D__Ib2,"extrq" ,0x780f66,3|C_GROUP_3_TYPE}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f79[] = { {R_M|F_64, C_VMWRITE,D__Gy, D__Ey, D__NONE, "VMWRITE" ,0x790f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x79 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f7c[] = { {R_M, C_NULL, }, //no prefix {R_M, C_HADDPD, D__Vdq, D__Wdq, D__NONE, "haddpd" ,0x7c0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_HADDPS, D__Vps, D__Wps, D__NONE, "haddps" ,0x7c0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_NULL, }, //0xf3 }; DIS_OPCODE_T Group0x0f7d[] = { {R_M, C_NULL, }, //no prefix {R_M, C_HSUBPD, D__Vdq, D__Wdq, D__NONE, "hsubpd" ,0x7d0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_HSUBPS, D__Vps, D__Wps, D__NONE, "hsubps" ,0x7d0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_NULL, }, //0xf3 }; DIS_OPCODE_T Group0x0f7e[] = { {R_M, C_MOVD, D__Ey, D__Pd, D__NONE, "movd" ,0x7e0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVD, D__Ey, D__Vdq, D__NONE, "movd" ,0x7e0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL, }, //0xf2 {R_M, C_MOVQ, D__Vq, D__Wq,D__NONE,"movq" ,0x7e0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f7f[] = { {R_M, C_MOVQ, D__Qq, D__Pq, D__NONE, "movq" ,0x7f0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVDQA, D__Wdq, D__Vdq, D__NONE, "movdqa" ,0x7f0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL, }, //0xf2 {R_M, C_MOVDQU, D__Wdq, D__Vdq, D__NONE, "movdqu" ,0x7f0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f60[] = { {R_M, C_PUNPCKLBW, D__Pq, D__Qq, D__NONE,"punpcklbw" ,0x600f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PUNPCKLBW, D__Vdq, D__Wdq, D__NONE,"punpcklbw" ,0x600f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f61[] = { {R_M, C_PUNPCKLWD, D__Pq, D__Qq, D__NONE,"punpcklwd" ,0x610f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PUNPCKLWD, D__Vdq, D__Wdq, D__NONE,"punpcklwd" ,0x610f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f62[] = { {R_M, C_PUNPCKLDQ, D__Pq, D__Qq, D__NONE,"punpckldq" ,0x620f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PUNPCKLDQ, D__Vdq, D__Wdq, D__NONE,"punpckldq" ,0x620f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f63[] = { {R_M, C_PACKSSWB, D__Pq, D__Qq, D__NONE,"packsswb" ,0x630f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PACKSSWB, D__Vdq, D__Wdq, D__NONE,"packsswb" ,0x630f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f64[] = { {R_M, C_PCMPGTB, D__Pq, D__Qq, D__NONE,"pcmpgtb" ,0x640f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PCMPGTB, D__Vdq, D__Wdq, D__NONE,"pcmpgtb" ,0x640f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f65[] = { {R_M, C_PCMPGTW, D__Pq, D__Qq, D__NONE,"pcmpgtw" ,0x650f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PCMPGTW, D__Vdq, D__Wdq, D__NONE,"pcmpgtw" ,0x650f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f66[] = { {R_M, C_PCMPGTD, D__Pq, D__Qq, D__NONE,"pcmpgtd" ,0x660f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PCMPGTD, D__Vdq, D__Wdq, D__NONE,"pcmpgtd" ,0x660f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f67[] = { {R_M, C_PACKUSWB, D__Pq, D__Qq, D__NONE,"packuswb" ,0x670f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PACKUSWB, D__Vdq, D__Wdq, D__NONE,"packuswb" ,0x670f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f68[] = { {R_M, C_PUNPCKHBW, D__Pq, D__Qq, D__NONE,"punpckhbw" ,0x680f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PUNPCKHBW, D__Vdq, D__Wdq, D__NONE,"punpckhbw" ,0x680f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f69[] = { {R_M, C_PUNPCKHWD, D__Pq, D__Qq, D__NONE,"punpckhwd" ,0x690f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PUNPCKHWD, D__Vdq, D__Wdq, D__NONE,"punpckhwd" ,0x690f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f6a[] = { {R_M, C_PUNPCKHDQ, D__Pq, D__Qq, D__NONE,"punpckhdq" ,0x6a0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PUNPCKHDQ, D__Vdq, D__Wdq, D__NONE,"punpckhdq" ,0x6a0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f6b[] = { {R_M, C_PACKSSDW, D__Pq, D__Qq, D__NONE,"packssdw" ,0x6b0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PACKSSDW, D__Vdq, D__Wdq, D__NONE,"packssdw" ,0x6b0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f6c[] = { {R_M, C_NULL,D__NONE, D__NONE, D__NONE }, //no prefix {R_M, C_PUNPCKLQDQ, D__Vdq, D__Wdq, D__NONE,"punpcklqdq" ,0x6c0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f6d[] = { {R_M, C_NULL,D__NONE, D__NONE, D__NONE }, //no prefix {R_M, C_PUNPCKHQDQ, D__Vdq, D__Wdq, D__NONE,"punpckhqdq" ,0x6d0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f6e[] = { {R_M, C_MOVD, D__Pq, D__Ey, D__NONE,"movd" ,0x6e0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVD, D__Vdq, D__Ey, D__NONE,"movd" ,0x6e0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f6f[] = { {R_M, C_MOVQ, D__Pq, D__Qq, D__NONE,"movq" ,0x6f0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVDQA, D__Vdq, D__Wdq, D__NONE,"movdqa" ,0x6f0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_MOVDQU,D__Vdq, D__Wdq, D__NONE,"movdqu",0x6f0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f50[] = { {R_M, C_NULL, D__NONE, D__NONE, D__NONE,}, //no prefix {R_M, C_NULL, D__NONE, D__NONE, D__NONE,}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE}, //0xf3 //mod=0x11 {R_M, C_MOVMSKPS, D__Gy, D__Ups, D__NONE,"movmskps" ,0x500f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVMSKPD, D__Gy, D__Upd, D__NONE,"movmskpd" ,0x500f66,3|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f51[] = { {R_M, C_SQRTPS, D__Vps, D__Wps, D__NONE,"sqrtps" ,0x510f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_SQRTPD, D__Vpd, D__Wpd, D__NONE,"sqrtpd" ,0x510f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_SQRTSD, D__Vsd, D__Wsd, D__NONE,"sqrtsd",0x510ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf2 {R_M, C_SQRTSS,D__Vss, D__Wss, D__NONE,"sqrtss",0x510ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f52[] = { {R_M, C_RSQRTPS, D__Vps, D__Wps, D__NONE,"rsqrtps" ,0x520f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_RSQRTSS,D__Vss, D__Wss, D__NONE,"rsqrtss",0x520ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f53[] = { {R_M, C_RCPPS, D__Vps, D__Wps, D__NONE,"rcpps" ,0x530f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x66 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf2 {R_M, C_RCPSS,D__Vss, D__Wss, D__NONE,"rcpss",0x530ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f54[] = { {R_M, C_ANDPS, D__Vps, D__Wps, D__NONE,"andps" ,0x540f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_ANDPD,D__Vpd, D__Wpd, D__NONE,"andpd",0x540f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f55[] = { {R_M, C_ANDNPS, D__Vps, D__Wps, D__NONE,"andnps" ,0x550f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_ANDNPD,D__Vpd, D__Wpd, D__NONE,"andnpd",0x550f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f56[] = { {R_M, C_ORPS, D__Vps, D__Wps, D__NONE,"orps" ,0x560f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_ORPD,D__Vpd, D__Wpd, D__NONE,"orpd",0x560f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f57[] = { {R_M, C_XORPS, D__Vps, D__Wps, D__NONE,"xorps" ,0x570f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_XORPD,D__Vpd, D__Wpd, D__NONE,"xorpd",0x570f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL,D__NONE, D__NONE, D__NONE}, //0xf3 }; DIS_OPCODE_T Group0x0f58[] = { {R_M, C_ADDPS, D__rwVps, D__rWps,D__NONE,"addps" ,0x580f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_ADDPD, D__rwVpd, D__rWpd,D__NONE,"addpd" ,0x580f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_ADDSD, D__rwVsd, D__rWsd,D__NONE,"addsd" ,0x580ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_ADDSS, D__rwVss, D__rWss,D__NONE,"addss" ,0x580ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f59[] = { {R_M, C_MULPS, D__rwVps, D__rWps, D__NONE,"mulps" ,0x590f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_MULPD, D__rwVpd, D__rWpd, D__NONE,"mulpd" ,0x590f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_MULSD, D__rwVsd, D__rWsd, D__NONE,"mulsd" ,0x590ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_MULSS, D__rwVss, D__rWss, D__NONE,"mulss" ,0x590ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f5a[] = { {R_M, C_CVTPS2PD, D__wVpd, D__rWps, D__NONE,"cvtps2pd" ,0x5a0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_CVTPD2PS, D__wVps, D__rWpd, D__NONE,"cvtpd2ps" ,0x5a0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_CVTSD2SS, D__wVsd, D__rWsd, D__NONE,"cvtsd2ss" ,0x5a0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf2 {R_M, C_CVTSS2SD, D__wVss, D__rWss, D__NONE,"cvtss2sd" ,0x5a0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f5b[] = { {R_M, C_CVTDQ2PS, D__wVps, D__rWdq, D__NONE,"cvtdq2ps" ,0x5b0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_CVTPS2DQ, D__wVdq, D__rWps, D__NONE,"cvtps2dq" ,0x5b0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_CVTTPS2DQ, D__wVss, D__rWss, D__NONE,"cvttps2dq" ,0x5b0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f5c[] = { {R_M, C_SUBPS, D__rwVps, D__rWps, D__NONE,"subps" ,0x5c0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_SUBPD, D__rwVpd, D__rWpd, D__NONE,"subpd" ,0x5c0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_SUBSD, D__rwVsd, D__rWsd, D__NONE,"subsd" ,0x5c0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_SUBSS, D__rwVss, D__rWss, D__NONE,"subss" ,0x5c0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f5d[] = { {R_M, C_MINPS, D__rwVps, D__rWps, D__NONE,"minps" ,0x5d0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_MINPD, D__rwVpd, D__rWpd, D__NONE,"minpd" ,0x5d0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_MINSD, D__rwVsd, D__rWsd, D__NONE,"minsd" ,0x5d0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_MINSS, D__rwVss, D__rWss, D__NONE,"minss" ,0x5d0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f5e[] = { {R_M, C_DIVPS, D__Vps, D__Wps, D__NONE,"divps" ,0x5e0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_DIVPD, D__Vpd, D__Wpd, D__NONE,"divpd" ,0x5e0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_DIVSD, D__Vsd, D__Wsd, D__NONE,"divsd" ,0x5e0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_DIVSS, D__Vss, D__Wss, D__NONE,"divss" ,0x5e0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f5f[] = { {R_M, C_MAXPS, D__Vps, D__Wps, D__NONE,"maxps" ,0x5f0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_MAXPD, D__Vpd, D__Wpd, D__NONE,"maxpd" ,0x5f0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_MAXSD, D__Vsd, D__Wsd, D__NONE,"maxsd" ,0x5f0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf2 {R_M, C_MAXSS, D__Vss, D__Wss, D__NONE,"maxss" ,0x5f0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f10[] = { {R_M, C_MOVUPS, D__Vps, D__Wps, D__NONE,"movups" ,0x100f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVUPD, D__Vpd, D__Wpd, D__NONE,"movupd" ,0x100f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_MOVSD, D__Vsd, D__Wsd, D__NONE,"movsd" ,0x100ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf2 {R_M, C_MOVSS, D__Vss, D__Wss, D__NONE,"movss" ,0x100ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f11[] = { {R_M, C_MOVUPS, D__Wps, D__Vps, D__NONE,"movups" ,0x110f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVUPD, D__Wpd, D__Vpd, D__NONE,"movupd" ,0x110f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_MOVSD, D__Wsd, D__Vsd, D__NONE,"movsd" ,0x110ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf2 {R_M, C_MOVSS, D__Wss, D__Vss, D__NONE,"movss" ,0x110ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f12[] = { // mod=mem (eg. 00 01 10) {R_M, C_MOVLPS, D__Vq, D__Mq, D__NONE,"movlps" ,0x120f,2|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_MOVLPD, D__Vq, D__Mq, D__NONE,"movlpd" ,0x120f66,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_MOVDDUP, D__Vq, D__Wq, D__NONE,"movddup" ,0x120ff2,3|C_GROUP_4_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf2 {R_M, C_MOVSLDUP, D__Vq, D__Wq, D__NONE,"movsldup" ,0x120ff3,3|C_GROUP_4_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 // mod=11 {R_M, C_MOVHLPS, D__Vq, D__Uq, D__NONE,"movhlps" ,0x120f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_NULL, D__NONE, D__NONE,D__NONE, }, //0x66 {R_M, C_MOVDDUP, D__Vq, D__Wq, D__NONE,"movddup" ,0x120ff2,3|C_GROUP_4_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf2 {R_M, C_MOVSLDUP, D__Vq, D__Wq, D__NONE,"movsldup" ,0x120ff3,3|C_GROUP_4_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f13[] = { {R_M, C_MOVLPS, D__Mq, D__Vq, D__NONE,"movlps" ,0x130f,2|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVLPD, D__Mq, D__Vq, D__NONE,"movlpd" ,0x130f66,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf3 }; DIS_OPCODE_T Group0x0f14[] = { {R_M, C_UNPCKLPS, D__Vps, D__Wq, D__NONE,"unpcklps" ,0x140f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_UNPCKLPD, D__Vpd, D__Wq, D__NONE,"unpcklpd" ,0x140f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf3 }; DIS_OPCODE_T Group0x0f15[] = { {R_M, C_UNPCKHPS, D__Vps, D__Wq, D__NONE,"unpckhps" ,0x150f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_UNPCKHPD, D__Vpd, D__Wq, D__NONE,"unpckhpd" ,0x150f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, D__Vq, D__Mq, D__NONE, }, //0xf2 {R_M, C_NULL, D__Vq, D__Mq, D__NONE, }, //0xf3 }; DIS_OPCODE_T Group0x0f16[] = { // mod=mem (eg: 00 01 10) {R_M, C_MOVHPS, D__Vq, D__Mq, D__NONE,"movhps" ,0x160f,2|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_MOVHPD, D__Vpd, D__Mq, D__NONE,"movhpd" ,0x160f66,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 this opcode need to fixed. there is one bugs. {R_M, C_MOVSHDUP, D__Vq, D__Wq, D__NONE,"movshdup" ,0x160ff3,3|C_GROUP_4_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 // mod=11 {R_M, C_MOVLHPS, D__Vq, D__Uq, D__NONE,"movlhps" ,0x160f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 this opcode need to fixed. there is one bugs. {R_M, C_MOVSHDUP, D__Vq, D__Wq, D__NONE,"movshdup" ,0x160ff3,3|C_GROUP_4_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xf3 }; DIS_OPCODE_T Group0x0f17[] = { {R_M, C_MOVHPS, D__Mq, D__Vq, D__NONE,"movhps" ,0x170f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVHPD, D__Mq, D__Vq, D__NONE,"movhpd" ,0x170f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //0xf3 }; DIS_OPCODE_T Group0x0f28[] = { {R_M, C_MOVAPS, D__Vps, D__Wps, D__NONE,"movaps" ,0x280f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVAPD, D__Vpd, D__Wpd, D__NONE,"movapd" ,0x280f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {0, C_NULL, }, //prefix 0xf2 {0, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f29[] = { {R_M, C_MOVAPS, D__Wps,D__Vps, D__NONE,"movaps" ,0x290f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVAPD, D__Wpd,D__Vpd, D__NONE,"movapd" ,0x290f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {0, C_NULL, }, //prefix 0xf2 {0, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f2a[] = { {R_M, C_CVTPI2PS, D__Vps, D__Qpi, D__NONE,"cvtpi2ps" ,0x2a0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_CVTPI2PD, D__Vpd, D__Qpi, D__NONE,"cvtpi2pd" ,0x2a0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_CVTSI2SD, D__Vsd, D__Ey, D__NONE,"cvtsi2sd" ,0x2a0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf2 {R_M, C_CVTSI2SS, D__Vss, D__Ey, D__NONE,"cvtsi2ss" ,0x2a0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f2b[] = { {R_M, C_MOVNTPS, D__Mps, D__Vps, D__NONE,"movntps" ,0x2b0f,2|C_GROUP_3_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVNTPD, D__Mpd, D__Vpd, D__NONE,"movntpd" ,0x2b0f66,3|C_GROUP_3_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_MOVNTSD, D__Mq, D__Vsd, D__NONE,"movntsd" ,0x2b0ff2,3|C_GROUP_3_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//prefix 0xf2 {R_M, C_MOVNTSS, D__Md, D__Vss, D__NONE,"movntss" ,0x2b0ff3,3|C_GROUP_3_TYPE|(3<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)} //prefix 0xf3 }; DIS_OPCODE_T Group0x0f2c[] = { {R_M, C_CVTTPS2PI, D__Ppi, D__Wps, D__NONE,"cvttps2pi" ,0x2c0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_CVTTPD2PI, D__Ppi, D__Wpd, D__NONE,"cvttpd2pi" ,0x2c0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_CVTTSD2SI, D__Gy, D__Wsd, D__NONE,"cvttsd2si" ,0x2c0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf2 {R_M, C_CVTTSS2SI, D__Gy, D__Wss, D__NONE,"cvttss2si" ,0x2c0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f2d[] = { {R_M, C_CVTPS2PI, D__Ppi, D__Wps, D__NONE,"cvtps2pi" ,0x2d0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_CVTPD2PI, D__Ppi, D__Wpd, D__NONE,"cvtpd2pi" ,0x2d0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_CVTSD2SI, D__Gy, D__Wsd, D__NONE,"cvtsd2si" ,0x2d0ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf2 {R_M, C_CVTSS2SI, D__Gy, D__Wss, D__NONE,"cvtss2si" ,0x2d0ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f2e[] = { {R_M, C_UCOMISS, D__Vss, D__Wss, D__NONE,"ucomiss" ,0x2e0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //no prefix {R_M, C_UCOMISD, D__Vsd, D__Wsd, D__NONE,"ucomisd" ,0x2e0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f2f[] = { {R_M, C_COMISS, D__Vss, D__Wss, D__NONE,"comiss" ,0x2f0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //no prefix {R_M, C_COMISD, D__Vsd, D__Wsd, D__NONE,"comisd" ,0x2f0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd0[] = { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //no prefix {R_M, C_ADDSUBPD,D__rwVpd, D__rWpd, D__NONE,"addsubpd" ,0xd00f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_ADDSUBPS,D__rwVps, D__rWps, D__NONE,"addsubps" ,0xd00ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd1[] = { {R_M, C_PSRLW, D__Pq, D__Qq, D__NONE,"psrlw" ,0xd10f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSRLW, D__Vdq, D__Wdq, D__NONE,"psrlw" ,0xd10f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd2[] = { {R_M, C_PSRLD, D__Pq, D__Qq, D__NONE,"psrld" ,0xd20f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSRLD, D__Vdq, D__Wdq, D__NONE,"psrld" ,0xd20f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd3[] = { {R_M, C_PSRLQ, D__Pq, D__Qq, D__NONE,"psrlq" ,0xd30f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSRLQ, D__Vdq, D__Wdq, D__NONE,"psrlq" ,0xd30f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd4[] = { {R_M, C_PADDQ, D__Pq, D__Qq, D__NONE,"paddq" ,0xd40f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDQ, D__Vdq, D__Wdq, D__NONE,"paddq" ,0xd40f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd5[] = { {R_M, C_PMULLW, D__Pq, D__Qq, D__NONE,"pmullw" ,0xd50f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMULLW, D__Vdq, D__Wdq, D__NONE,"pmullw" ,0xd50f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd6[] = { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, }, //no prefix {R_M, C_MOVQ, D__Wq, D__Vq, D__NONE,"movq" ,0xd60f66,3|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix 0x66 {R_M, C_MOVDQ2Q, D__Pq, D__Uq, D__NONE,"movdq2q" ,0xd60ff2,3|C_GROUP_4_TYPE|(6<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf2 {R_M, C_MOVQ2DQ, D__Vdq, D__Nq, D__NONE,"movq2dq" ,0xd60ff3,3|C_GROUP_4_TYPE|(7<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd7[] = { {R_M, C_PMOVMSKB, D__Gy, D__Nq, D__NONE,"pmovmskb" ,0xd70f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_PMOVMSKB, D__Gy, D__Udq, D__NONE,"pmovmskb" ,0xd70f66,3|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd8[] = { {R_M, C_PSUBUSB, D__Pq, D__Qq, D__NONE,"psubusb" ,0xd80f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBUSB, D__Vdq, D__Wdq, D__NONE,"psubusb" ,0xd80f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fd9[] = { {R_M, C_PSUBUSW, D__Pq, D__Qq, D__NONE,"psubusw" ,0xd90f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBUSW, D__Vdq, D__Wdq, D__NONE,"psubusw" ,0xd90f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fda[] = { {R_M, C_PMINUB, D__Pq, D__Qq, D__NONE,"pminub" ,0xda0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMINUB, D__Vdq, D__Wdq, D__NONE,"pminub" ,0xda0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fdb[] = { {R_M, C_PAND, D__Pq, D__Qq, D__NONE,"pand" ,0xdb0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PAND, D__Vdq, D__Wdq, D__NONE,"pand" ,0xdb0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fdc[] = { {R_M, C_PADDUSB, D__Pq, D__Qq, D__NONE,"paddusb" ,0xdc0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDUSB, D__Vdq, D__Wdq, D__NONE,"paddusb" ,0xdc0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fdd[] = { {R_M, C_PADDUSW, D__Pq, D__Qq, D__NONE,"paddusw" ,0xdd0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDUSW, D__Vdq, D__Wdq, D__NONE,"paddusw" ,0xdd0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fde[] = { {R_M, C_PMAXUB, D__Pq, D__Qq, D__NONE,"pmaxub" ,0xde0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMAXUB, D__Vdq, D__Wdq, D__NONE,"pmaxub" ,0xde0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fdf[] = { {R_M, C_PANDN, D__Pq, D__Qq, D__NONE,"pandn" ,0xdf0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PANDN, D__Vdq, D__Wdq, D__NONE,"pandn" ,0xdf0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe0[] = { {R_M, C_PAVGB, D__Pq, D__Qq, D__NONE,"pavgb" ,0xe00f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PAVGB, D__Vdq, D__Wdq, D__NONE,"pavgb" ,0xe00f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe1[] = { {R_M, C_PSRAW, D__Pq, D__Qq, D__NONE,"psraw" ,0xe10f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSRAW, D__Vdq, D__Wdq, D__NONE,"psraw" ,0xe10f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe2[] = { {R_M, C_PSRAD, D__Pq, D__Qq, D__NONE,"psrad" ,0xe20f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSRAD, D__Vdq, D__Wdq, D__NONE,"psrad" ,0xe20f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe3[] = { {R_M, C_PAVGW, D__Pq, D__Qq, D__NONE,"pavgw" ,0xe30f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PAVGW, D__Vdq, D__Wdq, D__NONE,"pavgw" ,0xe30f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe4[] = { {R_M, C_PMULHUW, D__Pq, D__Qq, D__NONE,"pmulhuw" ,0xe40f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMULHUW, D__Vdq, D__Wdq, D__NONE,"pmulhuw" ,0xe40f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe5[] = { {R_M, C_PMULHW, D__Pq, D__Qq, D__NONE,"pmulhw" ,0xe50f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMULHW, D__Vdq, D__Wdq, D__NONE,"pmulhw" ,0xe50f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe6[] = { {R_M, C_NULL, }, //no prefix {R_M, C_CVTTPD2DQ, D__Vdq, D__Wpd, D__NONE,"cvttpd2dq" ,0xe60f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_CVTPD2DQ, D__Vdq, D__Wpd, D__NONE,"cvtpd2dq" ,0xe60ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf2 {R_M, C_CVTDQ2PD, D__Vpd, D__Wdq, D__NONE,"cvtdq2pd" ,0xe60ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe7[] = { {R_M, C_MOVNTQ, D__Mq, D__Pq, D__NONE,"movntq" ,0xe70f,2|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_MOVNTDQ, D__Mdq, D__Vdq, D__NONE,"movntdq" ,0xe70f66,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe8[] = { {R_M, C_PSUBSB, D__Pq, D__Qq, D__NONE,"psubsb" ,0xe80f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBSB, D__Vdq, D__Wdq, D__NONE,"psubsb" ,0xe80f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fe9[] = { {R_M, C_PSUBSW, D__Pq, D__Qq, D__NONE,"psubsw" ,0xe90f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBSW, D__Vdq, D__Wdq, D__NONE,"psubsw" ,0xe90f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fea[] = { {R_M, C_PMINSW, D__Pq, D__Qq, D__NONE,"pminsw" ,0xea0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMINSW, D__Vdq, D__Wdq, D__NONE,"pminsw" ,0xea0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0feb[] = { {R_M, C_POR, D__Pq, D__Qq, D__NONE,"por" ,0xeb0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_POR, D__Vdq, D__Wdq, D__NONE,"por" ,0xeb0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fec[] = { {R_M, C_PADDSB, D__Pq, D__Qq, D__NONE,"paddsb" ,0xec0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDSB, D__Vdq, D__Wdq, D__NONE,"paddsb" ,0xec0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fed[] = { {R_M, C_PADDSW, D__Pq, D__Qq, D__NONE,"paddsw" ,0xed0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDSW, D__Vdq, D__Wdq, D__NONE,"paddsw" ,0xed0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fee[] = { {R_M, C_PMAXSW, D__Pq, D__Qq, D__NONE,"pmaxsw" ,0xee0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMAXSW, D__Vdq, D__Wdq, D__NONE,"pmaxsw" ,0xee0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fef[] = { {R_M, C_PXOR, D__Pq, D__Qq, D__NONE,"pxor" ,0xef0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PXOR, D__Vdq, D__Wdq, D__NONE,"pxor" ,0xef0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff0[] = { {R_M, C_NULL, }, //no prefix {R_M, C_NULL, }, //prefix 0x66 {R_M, C_LDDQU, D__Vdq, D__Mdq, D__NONE,"lddqu" ,0xf00ff2,3|C_GROUP_4_TYPE|(2<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff1[] = { {R_M, C_PSLLW, D__Pq, D__Qq, D__NONE,"psllw" ,0xf10f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSLLW, D__Vdq, D__Wdq, D__NONE,"psllw" ,0xf10f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff2[] = { {R_M, C_PSLLD, D__Pq, D__Qq, D__NONE,"pslld" ,0xf20f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSLLD, D__Vdq, D__Wdq, D__NONE,"pslld" ,0xf20f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff3[] = { {R_M, C_PSLLQ, D__Pq, D__Qq, D__NONE,"psllq" ,0xf30f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSLLQ, D__Vdq, D__Wdq, D__NONE,"psllq" ,0xf30f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff4[] = { {R_M, C_PMULUDQ, D__Pq, D__Qq, D__NONE,"pmuludq" ,0xf40f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMULUDQ, D__Vdq, D__Wdq, D__NONE,"pmuludq" ,0xf40f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff5[] = { {R_M, C_PMADDWD, D__Pq, D__Qq, D__NONE,"pmaddwd" ,0xf50f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PMADDWD, D__Vdq, D__Wdq, D__NONE,"pmaddwd" ,0xf50f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff6[] = { {R_M, C_PSADBW, D__Pq, D__Qq, D__NONE,"psadbw" ,0xf60f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSADBW, D__Vdq, D__Wdq, D__NONE,"psadbw" ,0xf60f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff7[] = { {R_M, C_MASKMOVQ, D__Pq, D__Nq, D__NONE,"maskmovq" ,0xf70f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //no prefix {R_M, C_MASKMOVDQU, D__Vdq, D__Udq, D__NONE,"maskmovdqu" ,0xf70f66,3|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff8[] = { {R_M, C_PSUBB, D__Pq, D__Qq, D__NONE,"psubb" ,0xf80f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBB, D__Vdq, D__Wdq, D__NONE,"psubb" ,0xf80f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ff9[] = { {R_M, C_PSUBW, D__Pq, D__Qq, D__NONE,"psubw" ,0xf90f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBW, D__Vdq, D__Wdq, D__NONE,"psubw" ,0xf90f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ffa[] = { {R_M, C_PSUBD, D__Pq, D__Qq, D__NONE,"psubd" ,0xfa0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBD, D__Vdq, D__Wdq, D__NONE,"psubd" ,0xfa0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ffb[] = { {R_M, C_PSUBQ, D__Pq, D__Qq, D__NONE,"psubq" ,0xfb0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PSUBQ, D__Vdq, D__Wdq, D__NONE,"psubq" ,0xfb0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ffc[] = { {R_M, C_PADDB, D__Pq, D__Qq, D__NONE,"paddb" ,0xfc0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDB, D__Vdq, D__Wdq, D__NONE,"paddb" ,0xfc0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ffd[] = { {R_M, C_PADDW, D__Pq, D__Qq, D__NONE,"paddw" ,0xfd0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDW, D__Vdq, D__Wdq, D__NONE,"paddw" ,0xfd0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0ffe[] = { {R_M, C_PADDD, D__Pq, D__Qq, D__NONE,"paddd" ,0xfe0f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //no prefix {R_M, C_PADDD, D__Vdq, D__Wdq, D__NONE,"paddd" ,0xfe0f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fc2[] = { {R_M | Immediate_Ib, C_CMPPS, D__Vps, D__Wps, D__Ib,"cmpps" ,0xc20f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_CMPPD, D__Vpd, D__Wpd, D__Ib,"cmppd" ,0xc20f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M | Immediate_Ib, C_CMPSD, D__Vsd, D__Wsd, D__Ib,"cmpsd" ,0xc20ff2,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0xf2 {R_M | Immediate_Ib, C_CMPSS, D__Vss, D__Wss, D__Ib,"cmpss",0xc20ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fb8[] = { {R_M, C_NULL, }, //no prefix {R_M, C_NULL, }, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_POPCNT, D__Gv, D__Ev, D__NONE, "popcnt",0xb80ff3,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fc4[] = { {R_M | Immediate_Ib, C_PINSRW, D__Pq, D__Mw, D__Ib,"pinsrw" ,0xc40f,2|C_GROUP_4_TYPE|(0<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_PINSRW, D__Vdq, D__Mw, D__Ib,"pinsrw" ,0xc40f66,3|C_GROUP_4_TYPE|(1<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 //mod = 0x11 {R_M | Immediate_Ib, C_PINSRW, D__Pq, D__Rd, D__Ib,"pinsrw" ,0xc40f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_PINSRW, D__Vdq, D__Rd, D__Ib,"pinsrw" ,0xc40f66,3|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fc5[] = { {R_M | Immediate_Ib, C_PEXTRW,D__Gy,D__Nq,D__Ib,"pextrw" ,0xc50f,2|C_GROUP_4_TYPE|(4<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_PEXTRW,D__Gy,D__Udq,D__Ib,"pextrw" ,0xc50f66,3|C_GROUP_4_TYPE|(5<<16),MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x0fc6[] = { {R_M | Immediate_Ib, C_SHUFPS, D__Vps, D__Wps, D__Ib,"shufps" ,0xc60f,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //no prefix {R_M | Immediate_Ib, C_SHUFPD, D__Vpd, D__Wpd, D__Ib,"shufpd" ,0xc60f66,3|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {R_M, C_NULL, }, //prefix 0xf3 }; DIS_OPCODE_T Group0x90[] = { {0, C_XCHG_NOP, D__rAX,D__rAX_r8, D__NONE,"XCHG" , 0x90,1|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //no prefix {0, C_XCHG_NOP, D__rAX,D__rAX_r8, D__NONE,"XCHG" , 0x9066,2|C_GROUP_3_TYPE,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //prefix 0x66 {R_M, C_NULL, }, //prefix 0xf2 {0, C_PAUSE,D__NONE, D__NONE, D__NONE,"PAUSE",0x90f3,2|C_GROUP_3_TYPE}, //prefix 0xf3 }; DIS_OPCODE_T Group0x0f0f[]= { {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x00 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x01 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x02 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x03 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x04 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x05 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x06 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x07 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x08 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x09 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x0a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x0b {R_M, C_PI2FW, D__Pq, D__Qq, D__NONE, "PI2FW" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x0c<<16)}, //0x0c {R_M, C_PI2FD, D__Pq, D__Qq, D__NONE, "PI2FD" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x0d<<16)}, //0x0d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x0e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x0f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x10 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x11 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x12 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x13 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x14 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x15 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x16 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x17 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x18 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x19 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x1a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x1b {R_M, C_PF2IW, D__Pq, D__Qq, D__NONE, "PF2IW" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x1c<<16)}, //0x1c {R_M, C_PF2ID, D__Pq, D__Qq, D__NONE, "PF2ID" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x1d<<16)}, //0x1d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x1e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x1f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x20 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x21 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x22 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x23 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x24 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x25 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x26 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x27 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x28 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x29 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x2a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x2b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x2c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x2d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x2e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x2f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x30 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x31 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x32 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x33 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x34 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x35 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x36 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x37 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x38 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x39 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x3a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x3b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x3c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x3d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x3e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x3f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x40 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x41 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x42 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x43 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x44 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x45 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x46 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x47 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x48 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x49 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x4a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x4b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x4c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x4d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x4e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x4f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x50 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x51 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x52 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x53 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x54 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x55 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x56 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x57 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x58 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x59 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x5a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x5b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x5c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x5d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x5e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x5f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x60 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x61 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x62 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x63 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x64 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x65 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x66 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x67 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x68 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x69 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x6a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x6b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x6c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x6d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x6e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x6f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x70 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x71 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x72 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x73 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x74 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x75 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x76 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x77 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x78 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x79 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x7a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x7b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x7c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x7d {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x7e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x7f {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x80 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x81 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x82 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x83 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x84 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x85 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x86 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x87 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x88 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x89 {R_M, C_PFNACC, D__Pq, D__Qq, D__NONE, "PFNACC" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x8a<<16)}, //0x8a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x8b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x8c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x8d {R_M, C_PFPNACC, D__Pq, D__Qq, D__NONE, "PFPNACC" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x8e<<16)}, //0x8e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x8f {R_M, C_PFCMPGE, D__Pq, D__Qq, D__NONE, "PFCMPGE" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x90<<16)}, //0x90 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x91 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x92 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x93 {R_M, C_PFMIN, D__Pq, D__Qq, D__NONE, "PFMIN" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x94<<16)}, //0x94 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x95 {R_M, C_PFRCP, D__Pq, D__Qq, D__NONE, "PFRCP" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x96<<16)}, //0x96 {R_M, C_PFRSQRT, D__Pq, D__Qq, D__NONE, "PFRSQRT" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x97<<16)}, //0x97 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x98 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x99 {R_M, C_PFSUB, D__Pq, D__Qq, D__NONE, "PFSUB" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x9a<<16)}, //0x9a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x9b {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x9c {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x9d {R_M, C_PFADD, D__Pq, D__Qq, D__NONE, "PFADD" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0x9e<<16)}, //0x9e {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0x9f {R_M, C_PFCMPGT, D__Pq, D__Qq, D__NONE, "PFCMPGT" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xa0<<16)}, //0xa0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xa1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xa2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xa3 {R_M, C_PFMAX, D__Pq, D__Qq, D__NONE, "PFMAX" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xa4<<16)}, //0xa4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xa5 {R_M, C_PFRCPIT1, D__Pq, D__Qq, D__NONE, "PFRCPIT1" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xa6<<16)}, //0xa6 {R_M, C_PFRSQIT1, D__Pq, D__Qq, D__NONE, "PFRSQIT1" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xa7<<16)}, //0xa7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xa8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xa9 {R_M, C_PFSUBR, D__Pq, D__Qq, D__NONE, "PFSUBR" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xaa<<16)}, //0xaa {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xab {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xac {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xad {R_M, C_PFACC, D__Pq, D__Qq, D__NONE, "PFACC" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xae<<16)}, //0xae {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xaf {R_M, C_PFCMPEQ, D__Pq, D__Qq, D__NONE, "PFCMPEQ" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xb0<<16)}, //0xb0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xb1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xb2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xb3 {R_M, C_PFMUL, D__Pq, D__Qq, D__NONE, "PFMUL" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xb4<<16)}, //0xb4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xb5 {R_M, C_PFRCPIT2, D__Pq, D__Qq, D__NONE, "PFRCPIT2" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xb6<<16)}, //0xb6 {R_M, C_PMULHRW, D__Pq, D__Qq, D__NONE, "PMULHRW" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xb7<<16)}, //0xb7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xb8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xb9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xba {R_M, C_PSWAPD, D__Pq, D__Qq, D__NONE, "PSWAPD" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xbb<<16)}, //0xbb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xbc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xbd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xbe {R_M, C_PAVGUSB, D__Pq, D__Qq, D__NONE, "PAVGUSB" ,0x0f0f,2|C_GROUP_3DNOW_TYPE|(0xbf<<16)}, //0xbf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xc9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xca {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xcb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xcc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xcd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xce {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xcf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xd9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xda {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xdb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xdc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xdd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xde {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xdf {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xe9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xea {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xeb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xec {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xed {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xee {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xef {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf0 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf1 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf2 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf3 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf4 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf5 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf6 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf7 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf8 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xf9 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xfa {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xfb {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xfc {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xfd {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xfe {R_M, C_NULL, D__NONE, D__NONE, D__NONE, NULL ,0x0f0f,2|C_GROUP_3DNOW_TYPE}, //0xff }; DIS_OPCODE_T Group0x0f[] = { {R_M, C_GRP, D__NONE, D__NONE, D__NONE, (char*)Group0x0f00 ,0x000f,2}, //0x00 {R_M, C_GRP2, D__NONE, D__NONE, D__NONE, (char*)Group0x0f01 ,0x010f,2}, //0x01 {R_M, C_LAR, D__Gv, D__rEv, D__NONE, "LAR" ,0x020f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x02 {R_M, C_LSL, D__Gv, D__rEv, D__NONE, "LSL" ,0x030f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x03 {R_M, C_NULL, }, //0x04 { 0 | O_64, C_SYSCALL,D__NONE, D__NONE, D__NONE, "SYSCALL" ,0x050f,2}, //0x05 { 0 , C_CLTS, D__NONE, D__NONE, D__NONE, "CLTS" ,0x060f,2}, //0x06 { 0 | O_64, C_SYSRET, D__NONE, D__NONE, D__NONE, "SYSRET" ,0x070f,2}, //0x07 { 0 , C_INVD, D__NONE, D__NONE, D__NONE, "INVD" ,0x080f,2}, //0x08 { 0 , C_WBINVD, D__NONE, D__NONE, D__NONE, "WBINVD" ,0x090f,2}, //0x09 { 0 , C_NULL }, //0x0a { 0 , C_UD2, D__NONE, D__NONE, D__NONE, "UD2",0x0b0f,2}, //0x0b {R_M, C_NULL, }, //0x0c {R_M, C_NOP,D__Ev,D__NONE,D__NONE,"NOP",0x0d0f,2 }, //0x0d {R_M, C_NULL, }, //0x0e {R_M, C_3DNOW, D__Pq, D__Qq, D__NONE,(char*) "" ,0x0f0f,2}, //0x0f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f10 ,0x100f,2}, //0x10 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f11 ,0x110f,2}, //0x11 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE, (char*)Group0x0f12 ,0x120f,2}, //0x12 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f13 ,0x130f,2}, //0x13 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f14 ,0x140f,2}, //0x14 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f15 ,0x150f,2}, //0x15 {R_M, C_GRP4, D__NONE, D__NONE, D__NONE, (char*)Group0x0f16 ,0x160f,2}, //0x16 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f17 ,0x170f,2}, //0x17 {R_M, C_GRP, D__NONE, D__NONE, D__NONE, (char*)Group0x0f18,0x180f,2}, //0x18 { 0 , C_NULL, }, //0x19 { 0 , C_NULL, }, //0x1a { 0 , C_NULL, }, //0x1b { 0 , C_NULL, }, //0x1c { 0 , C_NULL, }, //0x1d { 0 , C_NULL, }, //0x1e {R_M, C_NOP,D__Ev,D__NONE,D__NONE,"NOP",0x1f0f,2 }, //0x1f {R_M|F_64, C_MOV, D__Ry, D__Cd, D__NONE, "MOV" ,0x200f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x20 {R_M|F_64, C_MOV, D__Ry, D__Dd, D__NONE, "MOV" ,0x210f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x21 {R_M|F_64, C_MOV, D__Cd, D__Ry, D__NONE, "MOV" ,0x220f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x22 {R_M|F_64, C_MOV, D__Dd, D__Ry, D__NONE, "MOV" ,0x230f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x23 {R_M|F_64, C_MOV, D__Ry, D__Td, D__NONE, "MOV" ,0x240f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x24 { 0 , C_NULL, }, //0x25 {R_M|F_64, C_MOV, D__Td, D__Ry, D__NONE, "MOV" ,0x260f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x26 {R_M, C_NULL, }, //0x27 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f28 ,0x280f,2}, //0x28 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f29 ,0x290f,2}, //0x29 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f2a ,0x2a0f,2}, //0x2a {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f2b ,0x2b0f,2}, //0x2b {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f2c ,0x2c0f,2}, //0x2c {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f2d ,0x2d0f,2}, //0x2d {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f2e ,0x2e0f,2}, //0x2e {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f2f ,0x2f0f,2}, //0x2f { 0 , C_WRMSR, D__NONE, D__NONE, D__NONE, "WRMSR" ,0x300f,2}, //0x30 { 0 , C_RDTSC, D__NONE, D__NONE, D__NONE, "RDTSC" ,0x310f,2}, //0x31 { 0 , C_RDMSR, D__NONE, D__NONE, D__NONE, "RDMSR" ,0x320f,2}, //0x32 { 0 , C_RDPMC, D__NONE, D__NONE, D__NONE, "RDPMC" ,0x330f,2}, //0x33 { 0 , C_SYSENTER, D__NONE, D__NONE, D__NONE, "SYSENTER" ,0x340f,2}, //0x34 { 0 , C_SYSEXIT, D__NONE, D__NONE, D__NONE, "SYSEXIT" ,0x350f,2}, //0x35 { 0 , C_NULL, }, //0x36 { 0 , C_GETSEC, D__NONE, D__NONE, D__NONE, "GETSEC" ,0x370f,2}, //0x37 {R_M, C_3BYTE_0X38,D__NONE, D__NONE, D__NONE, (char*)Group0x0f38 ,0x380f,2}, //0x38 {R_M, C_NULL, }, //0x39 {R_M, C_3BYTE_0X3A,D__NONE, D__NONE, D__NONE, (char*)Group0x0f3a ,0x3a0f,2}, //0x3a {R_M, C_NULL, }, //0x3b {R_M, C_NULL, }, //0x3c {R_M, C_NULL, }, //0x3d {R_M, C_NULL, }, //0x3e {R_M, C_NULL, }, //0x3f {R_M, C_CMOVtO, D__Gv, D__rEv, D__tO, "CMOVO" ,0x400f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x40 {R_M, C_CMOVfO, D__Gv, D__rEv, D__fO, "CMOVNO" ,0x410f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x41 {R_M, C_CMOVtC, D__Gv, D__rEv, D__tC, "CMOVB" ,0x420f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x42 {R_M, C_CMOVfC, D__Gv, D__rEv, D__fC, "CMOVNB" ,0x430f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x43 {R_M, C_CMOVtZ, D__Gv, D__rEv, D__tZ, "CMOVZ" ,0x440f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x44 {R_M, C_CMOVfZ, D__Gv, D__rEv, D__fZ, "CMOVNZ" ,0x450f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x45 {R_M, C_CMOVfA, D__Gv, D__rEv, D__fA, "CMOVBE" ,0x460f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x46 {R_M, C_CMOVtA, D__Gv, D__rEv, D__tA, "CMOVA" ,0x470f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x47 {R_M, C_CMOVtS, D__Gv, D__rEv, D__tS, "CMOVS" ,0x480f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x48 {R_M, C_CMOVfS, D__Gv, D__rEv, D__fS, "CMOVNS" ,0x490f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x49 {R_M, C_CMOVtP, D__Gv, D__rEv, D__tP, "CMOVP" ,0x4a0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4a {R_M, C_CMOVfP, D__Gv, D__rEv, D__fP, "CMOVNP" ,0x4b0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4b {R_M, C_CMOVtL, D__Gv, D__rEv, D__tL, "CMOVL" ,0x4c0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4c {R_M, C_CMOVfL, D__Gv, D__rEv, D__fL, "CMOVGE" ,0x4d0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4d {R_M, C_CMOVfG, D__Gv, D__rEv, D__fG, "CMOVLE" ,0x4e0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4e {R_M, C_CMOVtG, D__Gv, D__rEv, D__tG, "CMOVG" ,0x4f0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4f {R_M, C_GRP4,D__Ed, D__Vps, D__NONE, (char*)Group0x0f50 ,0x500f,2}, //0x50 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f51 ,0x510f,2}, //0x51 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f52 ,0x520f,2}, //0x52 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f53 ,0x530f,2}, //0x53 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f54 ,0x540f,2}, //0x54 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f55 ,0x550f,2}, //0x55 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f56 ,0x560f,2}, //0x56 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f57 ,0x570f,2}, //0x57 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f58 ,0x580f,2}, //0x58 {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f59 ,0x590f,2}, //0x59 {R_M, C_GRP3,D__Vpd, D__Wps, D__NONE, (char*)Group0x0f5a ,0x5a0f,2}, //0x5a {R_M, C_GRP3,D__Vps, D__Wdq, D__NONE, (char*)Group0x0f5b ,0x5b0f,2}, //0x5b {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f5c ,0x5c0f,2}, //0x5c {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f5d ,0x5d0f,2}, //0x5d {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f5e ,0x5e0f,2}, //0x5e {R_M, C_GRP3,D__Vps, D__Wps, D__NONE, (char*)Group0x0f5f ,0x5f0f,2}, //0x5f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f60,0x600f,2}, //0x60 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f61,0x610f,2}, //0x61 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f62,0x620f,2}, //0x62 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f63,0x630f,2}, //0x63 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f64,0x640f,2}, //0x64 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f65,0x650f,2}, //0x65 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f66,0x660f,2}, //0x66 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f67,0x670f,2}, //0x67 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f68,0x680f,2}, //0x68 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f69,0x690f,2}, //0x69 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f6a,0x6a0f,2}, //0x6a {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f6b,0x6b0f,2}, //0x6b {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f6c,0x6c0f,2}, //0x6c {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f6d,0x6d0f,2}, //0x6d {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f6e,0x6e0f,2}, //0x6e {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f6f,0x6f0f,2}, //0x6f {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f70 ,0x700f,2}, //0x70 {R_M, C_GRP5, D__NONE, D__NONE, D__NONE, (char*)Group0x0f71 ,0x710f,2}, //0x71 {R_M, C_GRP5, D__NONE, D__NONE, D__NONE, (char*)Group0x0f72 ,0x720f,2}, //0x72 {R_M, C_GRP5, D__NONE, D__NONE, D__NONE, (char*)Group0x0f73 ,0x730f,2}, //0x73 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f74 ,0x740f,2}, //0x74 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f75 ,0x750f,2}, //0x75 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f76 ,0x760f,2}, //0x76 { 0 , C_EMMS, D__NONE, D__NONE, D__NONE, "emms",0x770f,2}, //0x77 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f78 ,0x780f,2}, //0x78 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f79 ,0x790f,2}, //0x79 {R_M, C_NULL, D__NONE, D__NONE, D__NONE, "MMX UD" }, //0x7a {R_M, C_NULL, D__NONE, D__NONE, D__NONE, "MMX UD" }, //0x7b {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f7c ,0x7c0f,2}, //0x7c {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f7d ,0x7d0f,2}, //0x7d {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f7e ,0x7e0f,2}, //0x7e {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0f7f ,0x7f0f,2}, //0x7f { 0 |Immediate_Jv|F_64, C_JtO, D__Jz, D__tO, D__NONE, "JO" ,0x800f,2}, //0x80 { 0 |Immediate_Jv|F_64, C_JfO, D__Jz, D__fO, D__NONE, "JNO" ,0x810f,2}, //0x81 { 0 |Immediate_Jv|F_64, C_JtC, D__Jz, D__tC, D__NONE, "JC" ,0x820f,2}, //0x82 { 0 |Immediate_Jv|F_64, C_JfC, D__Jz, D__fC, D__NONE, "JNC" ,0x830f,2}, //0x83 { 0 |Immediate_Jv|F_64, C_JtZ, D__Jz, D__tZ, D__NONE, "JZ" ,0x840f,2}, //0x84 { 0 |Immediate_Jv|F_64, C_JfZ, D__Jz, D__fZ, D__NONE, "JNZ" ,0x850f,2}, //0x85 { 0 |Immediate_Jv|F_64, C_JfA, D__Jz, D__fA, D__NONE, "JNA" ,0x860f,2}, //0x86 { 0 |Immediate_Jv|F_64, C_JtA, D__Jz, D__tA, D__NONE, "JA" ,0x870f,2}, //0x87 { 0 |Immediate_Jv|F_64, C_JtS, D__Jz, D__tS, D__NONE, "JS" ,0x880f,2}, //0x88 { 0 |Immediate_Jv|F_64, C_JfS, D__Jz, D__fS, D__NONE, "JNS" ,0x890f,2}, //0x89 { 0 |Immediate_Jv|F_64, C_JtP, D__Jz, D__tP, D__NONE, "JP" ,0x8a0f,2}, //0x8a { 0 |Immediate_Jv|F_64, C_JfP, D__Jz, D__fP, D__NONE, "JNP" ,0x8b0f,2}, //0x8b { 0 |Immediate_Jv|F_64, C_JtL, D__Jz, D__tL, D__NONE, "JL" ,0x8c0f,2}, //0x8c { 0 |Immediate_Jv|F_64, C_JfL, D__Jz, D__fL, D__NONE, "JNL" ,0x8d0f,2}, //0x8d { 0 |Immediate_Jv|F_64, C_JfG, D__Jz, D__fG, D__NONE, "JNG" ,0x8e0f,2}, //0x8e { 0 |Immediate_Jv|F_64, C_JtG, D__Jz, D__tG, D__NONE, "JG" ,0x8f0f,2}, //0x8f {R_M, C_SETtO, D__wEb, D__tO, D__NONE, "SETO" ,0x900f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x90 {R_M, C_SETfO, D__wEb, D__fO, D__NONE, "SETNO" ,0x910f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x91 {R_M, C_SETtC, D__wEb, D__tC, D__NONE, "SETC" ,0x920f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x92 {R_M, C_SETfC, D__wEb, D__fC, D__NONE, "SETNC" ,0x930f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x93 {R_M, C_SETtZ, D__wEb, D__tZ, D__NONE, "SETZ" ,0x940f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x94 {R_M, C_SETfZ, D__wEb, D__fZ, D__NONE, "SETNZ" ,0x950f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x95 {R_M, C_SETfA, D__wEb, D__fA, D__NONE, "SETNA" ,0x960f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x96 {R_M, C_SETtA, D__wEb, D__tA, D__NONE, "SETA" ,0x970f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x97 {R_M, C_SETtS, D__wEb, D__tS, D__NONE, "SETS" ,0x980f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x98 {R_M, C_SETfS, D__wEb, D__fS, D__NONE, "SETNS" ,0x990f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x99 {R_M, C_SETtP, D__wEb, D__tP, D__NONE, "SETP" ,0x9a0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9a {R_M, C_SETfP, D__wEb, D__fP, D__NONE, "SETNP" ,0x9b0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9b {R_M, C_SETtL, D__wEb, D__tL, D__NONE, "SETL" ,0x9c0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9c {R_M, C_SETfL, D__wEb, D__fL, D__NONE, "SETNL" ,0x9d0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9d {R_M, C_SETfG, D__wEb, D__fG, D__NONE, "SETNG" ,0x9e0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9e {R_M, C_SETtG, D__wEb, D__tG, D__NONE, "SETG" ,0x9f0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9f { 0 | D_64 , C_PUSH, D__FS, D__NONE, D__NONE, "PUSH" ,0xa00f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xa0 { 0 | D_64 , C_POP, D__FS, D__NONE, D__NONE, "POP" ,0xa10f,2,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0xa1 { 0 , C_CPUID, D__NONE, D__NONE, D__NONE, "CPUID" ,0xa20f,2}, //0xa2 {R_M, C_BT, D__rEv, D__Gv, D__NONE, "BT" ,0xa30f,2,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xa3 {R_M |Immediate_Ib, C_SHLD, D__Ev, D__Gv, D__Ib, "SHLD" ,0xa40f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0xa4 {R_M |Immediate_Ib, C_SHLD, D__Ev, D__Gv, D__CL, "SHLD" ,0xa50f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0xa5 { 0 , C_NULL }, //0xa6 { 0 , C_NULL }, //0xa7 { 0 | D_64 , C_PUSH, D__GS, D__NONE, D__NONE, "PUSP" ,0xa80f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xa8 { 0 | D_64 , C_POP, D__GS, D__NONE, D__NONE, "POP" ,0xa90f,2,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0xa9 { 0 , C_RSM, D__NONE, D__NONE, D__NONE, "RSM" ,0xaa0f,2}, //0xaa {R_M, C_BTS, D__Ev, D__Gv, D__NONE, "BTS" ,0xab0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xab {R_M |Immediate_Ib, C_SHRD, D__Ev, D__Gv, D__Ib, "SHRD" ,0xac0f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0xac {R_M, C_SHRD, D__Ev, D__Gv, D__CL, "SHRD" ,0xad0f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,OP_R)}, //0xad {R_M, C_GRP1, D__NONE, D__NONE, D__NONE, (char*)Group0x0fae ,0xae0f,2}, //0xae {R_M, C_IMUL, D__Gv, D__rEv, D__NONE, "IMUL" ,0xaf0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xaf {R_M, C_CMPXCHG, D__Eb, D__Gb, D__NONE, "CMPXCHG" ,0xb00f,2,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xb0 {R_M, C_CMPXCHG, D__Ev, D__Gv, D__NONE, "CMPXCHG" ,0xb10f,2,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0xb1 {R_M, C_LSS, D__Gv, D__rMp, D__NONE, "LSS" ,0xb20f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb2 {R_M, C_BTR, D__Ev, D__Gv, D__NONE, "BTR" ,0xb30f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb3 {R_M, C_LFS, D__Gv, D__rMp, D__NONE, "LFS" ,0xb40f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb4 {R_M, C_LGS, D__Gv, D__rMp, D__NONE, "LGS" ,0xb50f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb5 {R_M, C_MOVZX, D__Gv, D__rEb, D__NONE, "MOVZX" ,0xb60f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb6 {R_M, C_MOVZX, D__Gv, D__rEw, D__NONE, "MOVZX" ,0xb70f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb7 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0fb8 ,0xb80f,2}, //0xb8 {R_M, C_NULL }, //0xb9 {R_M |Immediate_Ib, C_GRP, D__Ev, D__Ib, D__NONE, (char*)Group0x0fba ,0xba0f,2}, //0xba {R_M, C_BTC, D__Ev, D__Gv, D__NONE, "BTC" ,0xbb0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xbb {R_M, C_BSF, D__Gv, D__Ev, D__NONE, "BSF" ,0xbc0f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbc {R_M, C_BSR, D__Gv, D__Ev, D__NONE, "BSR" ,0xbd0f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbd {R_M, C_MOVSX, D__Gv, D__rEb, D__NONE, "MOVSX" ,0xbe0f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbe {R_M, C_MOVSX, D__Gv, D__rEw, D__NONE, "MOVSX" ,0xbf0f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbf {R_M, C_XADD, D__Eb, D__Gb, D__NONE, "XADD" ,0xc00f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc0 {R_M, C_XADD, D__Ev, D__Gv, D__NONE, "XADD" ,0xc10f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0xc1 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0fc2 ,0xc20f,2}, //0xc2 {R_M, C_MOVNTI, D__My, D__Gy, D__NONE, "movnti" ,0xc30f,2,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //no prefix {R_M, C_GRP4, D__NONE, D__NONE, D__NONE, (char*)Group0x0fc4,0xc40f,2}, //0xc4 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0fc5,0xc50f,2}, //0xc5 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0fc6,0xc60f,2}, //0xc6 {R_M, C_GRP5, D__NONE, D__NONE, D__NONE, (char*)Group0x0fc7,0xc70f,2}, //0xc7 //D__RAX_EAX_R8_R8D,D__RCX_ECX_R9_R9D,D__RDX_EDX_R10_R10D,D__RBX_EBX_R11_R11D,D__RSP_ESP_R12_R12D,D__RBP_EBP_R13_R13D,D__RSI_ESI_R14_R14D,D__RDI_EDI_R15_R15D, { 0 , C_BSWAP, D__RAX_EAX_R8_R8D, D__NONE, D__NONE, "BSWAP" ,0xc80f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xc8 { 0 , C_BSWAP, D__RCX_ECX_R9_R9D, D__NONE, D__NONE, "BSWAP" ,0xc90f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xc9 { 0 , C_BSWAP, D__RDX_EDX_R10_R10D, D__NONE, D__NONE, "BSWAP" ,0xca0f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xca { 0 , C_BSWAP, D__RBX_EBX_R11_R11D, D__NONE, D__NONE, "BSWAP" ,0xcb0f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xcb { 0 , C_BSWAP, D__RSP_ESP_R12_R12D, D__NONE, D__NONE, "BSWAP" ,0xcc0f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xcc { 0 , C_BSWAP, D__RBP_EBP_R13_R13D, D__NONE, D__NONE, "BSWAP" ,0xcd0f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xcd { 0 , C_BSWAP, D__RSI_ESI_R14_R14D, D__NONE, D__NONE, "BSWAP" ,0xce0f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xce { 0 , C_BSWAP, D__RDI_EDI_R15_R15D, D__NONE, D__NONE, "BSWAP" ,0xcf0f,2,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0xcf {R_M, C_GRP3, D__Pq, D__Pq, D__NONE, (char*)Group0x0fd0 ,0xd00f,2}, //0xd0 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd1 ,0xd10f,2}, //0xd1 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd2 ,0xd20f,2}, //0xd2 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd3 ,0xd30f,2}, //0xd3 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd4 ,0xd40f,2}, //0xd4 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd5 ,0xd50f,2}, //0xd5 {R_M, C_GRP3, D__Wq, D__Vq, D__NONE, (char*)Group0x0fd6 ,0xd60f,2}, //0xd6 {R_M, C_GRP3, D__Gd, D__Pq, D__NONE, (char*)Group0x0fd7 ,0xd70f,2}, //0xd7 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd8,0xd80f,2}, //0xd8 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fd9,0xd90f,2}, //0xd9 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fda,0xda0f,2}, //0xda {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fdb,0xdb0f,2}, //0xdb {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fdc,0xdc0f,2}, //0xdc {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fdd,0xdd0f,2}, //0xdd {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fde,0xde0f,2}, //0xde {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fdf,0xdf0f,2} , //0xdf {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe0 ,0xe00f,2}, //0xe0 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe1 ,0xe10f,2}, //0xe1 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe2 ,0xe20f,2}, //0xe2 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe3 ,0xe30f,2}, //0xe3 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe4 ,0xe40f,2}, //0xe4 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe5 ,0xe50f,2}, //0xe5 {R_M, C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x0fe6 ,0xe60f,2}, //0xe6 {R_M, C_GRP3, D__Wq, D__Vq, D__NONE, (char*)Group0x0fe7 ,0xe70f,2}, //0xe7 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe8 ,0xe80f,2}, //0xe8 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fe9 ,0xe90f,2}, //0xe9 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fea ,0xea0f,2}, //0xea {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0feb ,0xeb0f,2}, //0xeb {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fec ,0xec0f,2}, //0xec {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fed ,0xed0f,2}, //0xed {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fee ,0xee0f,2}, //0xee {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0fef ,0xef0f,2}, //0xef {R_M, C_GRP4, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff0 ,0xf00f,2}, //0xf0 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff1 ,0xf10f,2}, //0xf1 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff2 ,0xf20f,2}, //0xf2 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff3 ,0xf30f,2}, //0xf3 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff4 ,0xf40f,2}, //0xf4 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff5 ,0xf50f,2}, //0xf5 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff6 ,0xf60f,2}, //0xf6 {R_M, C_GRP3, D__Ppi, D__Qpi, D__NONE, (char*)Group0x0ff7 ,0xf70f,2}, //0xf7 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff8 ,0xf80f,2}, //0xf8 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ff9 ,0xf90f,2}, //0xf9 {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ffa ,0xfa0f,2}, //0xfa {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ffb ,0xfb0f,2}, //0xfb {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ffc ,0xfc0f,2}, //0xfc {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ffd ,0xfd0f,2}, //0xfd {R_M, C_GRP3, D__Pq, D__Qq, D__NONE, (char*)Group0x0ffe ,0xfe0f,2}, //0xfe {R_M, C_NULL }, //0xff }; DIS_OPCODE_T Group0x63[]= { {R_M|I_64, C_ARPL, D__Ew, D__Gw, D__NONE, "ARPL" ,0x63,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x63 {R_M|O_64, C_MOVSXD,D__Gv, D__Ev, D__NONE, "MOVSXD" ,0x63,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x63 }; DIS_OPCODE_T Group_main[] = { {R_M, C_ADD, D__Eb, D__Gb, D__NONE, "ADD" ,0x00,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x00 {R_M, C_ADD, D__Ev, D__Gv, D__NONE, "ADD" ,0x01,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x01 {R_M, C_ADD, D__Gb, D__rEb, D__NONE, "ADD" ,0x02,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x02 {R_M, C_ADD, D__Gv, D__rEv, D__NONE, "ADD" ,0x03,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x03 { 0 |Immediate_Ib, C_ADD, D__AL, D__Ib, D__NONE, "ADD" ,0x04,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x04 { 0 |Immediate_Iz, C_ADD, D__rAX, D__Iz, D__NONE, "ADD" ,0x05,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x05 { 0 |I_64, C_PUSH, D__ES, D__NONE, D__NONE, "PUSH" ,0x06,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x06 { 0 |I_64, C_POP, D__ES, D__NONE, D__NONE, "POP" ,0x07,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x07 {R_M, C_OR, D__Eb, D__Gb, D__NONE, "OR" ,0x08,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x08 {R_M, C_OR, D__Ev, D__Gv, D__NONE, "OR" ,0x09,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x09 {R_M, C_OR, D__Gb, D__rEb, D__NONE, "OR" ,0x0a,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0a {R_M, C_OR, D__Gv, D__rEv, D__NONE, "OR" ,0x0b,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0b { 0 |Immediate_Ib, C_OR, D__AL, D__Ib, D__NONE, "OR" ,0x0c,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0c { 0 |Immediate_Iz, C_OR, D__rAX, D__Iz, D__NONE, "OR" ,0x0d,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x0d { 0 |I_64, C_PUSH, D__CS, D__NONE, D__NONE, "PUSH" ,0x0e,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x0e { 0 , C_2BYTE, D__CS, D__NONE, D__NONE, (char*)Group0x0f,0x0f,1}, //0x0f {R_M, C_ADC, D__Eb, D__Gb, D__NONE, "ADC" ,0x10,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x10 {R_M, C_ADC, D__Ev, D__Gv, D__NONE, "ADC" ,0x11,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x11 {R_M, C_ADC, D__Gb, D__rEb, D__NONE, "ADC" ,0x12,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x12 {R_M, C_ADC, D__Gv, D__rEv, D__NONE, "ADC" ,0x13,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x13 { 0 |Immediate_Ib, C_ADC, D__AL, D__Ib, D__NONE, "ADC" ,0x14,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x14 { 0 |Immediate_Iz, C_ADC, D__rAX, D__Iz, D__NONE, "ADC" ,0x15,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x15 { 0 |I_64, C_PUSH, D__SS, D__NONE, D__NONE, "PUSH" ,0x16,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x16 { 0 |I_64, C_POP, D__SS, D__NONE, D__NONE, "POP" ,0x17,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x17 {R_M, C_SBB, D__Eb, D__Gb, D__NONE, "SBB" ,0x18,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x18 {R_M, C_SBB, D__Ev, D__Gv, D__NONE, "SBB" ,0x19,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x19 {R_M, C_SBB, D__Gb, D__rEb, D__NONE, "SBB" ,0x1a,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1a {R_M, C_SBB, D__Gv, D__rEv, D__NONE, "SBB" ,0x1b,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1b { 0 |Immediate_Ib, C_SBB, D__AL, D__Ib, D__NONE, "SBB" ,0x1c,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1c { 0 |Immediate_Iz, C_SBB, D__rAX, D__Iz, D__NONE, "SBB" ,0x1d,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x1d { 0 |I_64, C_PUSH, D__DS, D__NONE, D__NONE, "PUSH" ,0x1e,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x1e { 0 |I_64, C_POP, D__DS, D__NONE, D__NONE, "POP" ,0x1f,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x1f {R_M, C_AND, D__Eb, D__Gb, D__NONE, "AND" ,0x20,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x20 {R_M, C_AND, D__Ev, D__Gv, D__NONE, "AND" ,0x21,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x21 {R_M, C_AND, D__Gb, D__rEb, D__NONE, "AND" ,0x22,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x22 {R_M, C_AND, D__Gv, D__rEv, D__NONE, "AND" ,0x23,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x23 { 0 |Immediate_Ib, C_AND, D__AL, D__Ib, D__NONE, "AND" ,0x24,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x24 { 0 |Immediate_Iz, C_AND, D__rAX, D__Iz, D__NONE, "AND" ,0x25,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x25 { 0 , C_ES, D__NONE, D__NONE, D__NONE, "ES:" ,0x26,1}, //0x26 { 0 |I_64, C_DAA, D__NONE, D__NONE, D__NONE, "DAA" ,0x27,1}, //0x27 {R_M, C_SUB, D__Eb, D__Gb, D__NONE, "SUB" ,0x28,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x28 {R_M, C_SUB, D__Ev, D__Gv, D__NONE, "SUB" ,0x29,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x29 {R_M, C_SUB, D__Gb, D__rEb, D__NONE, "SUB" ,0x2a,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2a {R_M, C_SUB, D__Gv, D__rEv, D__NONE, "SUB" ,0x2b,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2b { 0 |Immediate_Ib, C_SUB, D__AL, D__Ib, D__NONE, "SUB" ,0x2c,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2c { 0 |Immediate_Iz, C_SUB, D__rAX, D__Iz, D__NONE, "SUB" ,0x2d,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x2d { 0 , C_CS, D__NONE, D__NONE, D__NONE, "CS:" ,0x2e,1}, //0x2e { 0 |I_64, C_DAS, D__NONE, D__NONE, D__NONE, "DAS" ,0x2f,1}, //0x2f {R_M, C_XOR, D__Eb, D__Gb, D__NONE, "XOR" ,0x30,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x30 {R_M, C_XOR, D__Ev, D__Gv, D__NONE, "XOR" ,0x31,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x31 {R_M, C_XOR, D__Gb, D__rEb, D__NONE, "XOR" ,0x32,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x32 {R_M, C_XOR, D__Gv, D__rEv, D__NONE, "XOR" ,0x33,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x33 { 0 |Immediate_Ib, C_XOR, D__AL, D__Ib, D__NONE, "XOR" ,0x34,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x34 { 0 |Immediate_Iz, C_XOR, D__rAX, D__Iz, D__NONE, "XOR" ,0x35,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x35 { 0 , C_SS, D__NONE, D__NONE, D__NONE, "SS:" ,0x36,1}, //0x36 { 0 |I_64, C_AAA, D__NONE, D__NONE, D__NONE, "AAA" ,0x37,1}, //0x37 {R_M, C_CMP, D__rEb, D__Gb, D__NONE, "CMP" ,0x38,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x38 {R_M, C_CMP, D__rEv, D__Gv, D__NONE, "CMP" ,0x39,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x39 {R_M, C_CMP, D__Gb, D__rEb, D__NONE, "CMP" ,0x3a,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x3a {R_M, C_CMP, D__Gv, D__rEv, D__NONE, "CMP" ,0x3b,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x3b { 0 |Immediate_Ib, C_CMP, D__AL, D__Ib, D__NONE, "CMP" ,0x3c,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x3c { 0 |Immediate_Iz, C_CMP, D__rAX, D__Iz, D__NONE, "CMP" ,0x3d,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x3d { 0 , C_DS, D__NONE, D__NONE, D__NONE, "DS:" ,0x3e,1}, //0x3e { 0 |I_64, C_AAS, D__NONE, D__NONE, D__NONE, "AAS" ,0x3f,1}, //0x3f { 0 |I_64, C_INC, D__eAX, D__NONE, D__NONE, "INC" ,0x40,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x40 { 0 |I_64, C_INC, D__eCX, D__NONE, D__NONE, "INC" ,0x41,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x41 { 0 |I_64, C_INC, D__eDX, D__NONE, D__NONE, "INC" ,0x42,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x42 { 0 |I_64, C_INC, D__eBX, D__NONE, D__NONE, "INC" ,0x43,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x43 { 0 |I_64, C_INC, D__eSP, D__NONE, D__NONE, "INC" ,0x44,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x44 { 0 |I_64, C_INC, D__eBP, D__NONE, D__NONE, "INC" ,0x45,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x45 { 0 |I_64, C_INC, D__eSI, D__NONE, D__NONE, "INC" ,0x46,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x46 { 0 |I_64, C_INC, D__eDI, D__NONE, D__NONE, "INC" ,0x47,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x47 { 0 |I_64, C_DEC, D__eAX, D__NONE, D__NONE, "DEC" ,0x48,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x48 { 0 |I_64, C_DEC, D__eCX, D__NONE, D__NONE, "DEC" ,0x49,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x49 { 0 |I_64, C_DEC, D__eDX, D__NONE, D__NONE, "DEC" ,0x4a,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x4a { 0 |I_64, C_DEC, D__eBX, D__NONE, D__NONE, "DEC" ,0x4b,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x4b { 0 |I_64, C_DEC, D__eSP, D__NONE, D__NONE, "DEC" ,0x4c,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x4c { 0 |I_64, C_DEC, D__eBP, D__NONE, D__NONE, "DEC" ,0x4d,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x4d { 0 |I_64, C_DEC, D__eSI, D__NONE, D__NONE, "DEC" ,0x4e,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x4e { 0 |I_64, C_DEC, D__eDI, D__NONE, D__NONE, "DEC" ,0x4f,1,MAKE_OP_RW_FLAG(OP_RW,0,0)}, //0x4f { 0 | D_64 , C_PUSH, D__rAX_r8, D__NONE, D__NONE, "PUSH" ,0x50,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x50 { 0 | D_64 , C_PUSH, D__rCX_r9, D__NONE, D__NONE, "PUSH" ,0x51,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x51 { 0 | D_64 , C_PUSH, D__rDX_r10, D__NONE, D__NONE, "PUSH" ,0x52,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x52 { 0 | D_64 , C_PUSH, D__rBX_r11, D__NONE, D__NONE, "PUSH" ,0x53,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x53 { 0 | D_64 , C_PUSH, D__rSP_r12, D__NONE, D__NONE, "PUSH" ,0x54,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x54 { 0 | D_64 , C_PUSH, D__rBP_r13, D__NONE, D__NONE, "PUSH" ,0x55,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x55 { 0 | D_64 , C_PUSH, D__rSI_r14, D__NONE, D__NONE, "PUSH" ,0x56,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x56 { 0 | D_64 , C_PUSH, D__rDI_r15, D__NONE, D__NONE, "PUSH" ,0x57,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x57 { 0 | D_64 , C_POP, D__rAX_r8, D__NONE, D__NONE, "POP" ,0x58,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x58 { 0 | D_64 , C_POP, D__rCX_r9, D__NONE, D__NONE, "POP" ,0x59,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x59 { 0 | D_64 , C_POP, D__rDX_r10, D__NONE, D__NONE, "POP" ,0x5a,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x5a { 0 | D_64 , C_POP, D__rBX_r11, D__NONE, D__NONE, "POP" ,0x5b,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x5b { 0 | D_64 , C_POP, D__rSP_r12, D__NONE, D__NONE, "POP" ,0x5c,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x5c { 0 | D_64 , C_POP, D__rBP_r13, D__NONE, D__NONE, "POP" ,0x5d,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x5d { 0 | D_64 , C_POP, D__rSI_r14, D__NONE, D__NONE, "POP" ,0x5e,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x5e { 0 | D_64 , C_POP, D__rDI_r15, D__NONE, D__NONE, "POP" ,0x5f,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x5f { 0 |I_64, C_PUSHA, D__NONE, D__NONE, D__NONE, "PUSHA" ,0x60,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x60 { 0 |I_64, C_POPA, D__NONE, D__NONE, D__NONE, "POPA" ,0x61,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x61 {R_M|I_64, C_BOUND, D__Gv, D__rMa, D__NONE, "BOUND" ,0x62,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x62 {R_M, C_GRP6, D__NONE, D__NONE, D__NONE, (char*)Group0x63 ,0x63,1}, //0x63 { 0 , C_FS, D__NONE, D__NONE, D__NONE, "FS:" ,0x64,1}, //0x64 { 0 , C_GS, D__NONE, D__NONE, D__NONE, "GS:" ,0x65,1}, //0x65 { 0 , C_OPER ,0x66,1}, //0x66 { 0 , C_ADDR ,0x67,1}, //0x67 { 0 |Immediate_Iz | D_64, C_PUSH, D__Iz, D__NONE, D__NONE, "PUSH" ,0x68,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x68 {R_M |Immediate_Iz, C_IMUL, D__Gv, D__rEv, D__Iz, "IMUL" ,0x69,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x69 { 0 |Immediate_sIb | D_64, C_PUSH, D__sIb, D__NONE, D__NONE, "PUSH" ,0x6a,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x6a {R_M |Immediate_sIb, C_IMUL, D__Gv, D__rEv, D__sIb, "IMUL" ,0x6b,1,MAKE_OP_RW_FLAG(OP_RW,OP_R,OP_R)}, //0x6b { 0 , C_INS, D__Yb, D__DX, D__NONE, "INS" ,0x6c,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x6c { 0 , C_INS, D__Yz, D__DX, D__NONE, "INS" ,0x6d,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x6d { 0 , C_OUTS, D__DX, D__Xb, D__NONE, "OUTS" ,0x6e,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x6e { 0 , C_OUTS, D__DX, D__Xz, D__NONE, "OUTS" ,0x6f,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x6f { 0 |Immediate_Jb|F_64, C_JtO, D__Jb, D__tO, D__NONE, "JO" ,0x70,1}, //0x70 { 0 |Immediate_Jb|F_64, C_JfO, D__Jb, D__fO, D__NONE, "JNO" ,0x71,1}, //0x71 { 0 |Immediate_Jb|F_64, C_JtC, D__Jb, D__tC, D__NONE, "JC" ,0x72,1}, //0x72 { 0 |Immediate_Jb|F_64, C_JfC, D__Jb, D__fC, D__NONE, "JNC" ,0x73,1}, //0x73 { 0 |Immediate_Jb|F_64, C_JtZ, D__Jb, D__tZ, D__NONE, "JZ" ,0x74,1}, //0x74 { 0 |Immediate_Jb|F_64, C_JfZ, D__Jb, D__fZ, D__NONE, "JNZ" ,0x75,1}, //0x75 { 0 |Immediate_Jb|F_64, C_JfA, D__Jb, D__fA, D__NONE, "JNA" ,0x76,1}, //0x76 { 0 |Immediate_Jb|F_64, C_JtA, D__Jb, D__tA, D__NONE, "JA" ,0x77,1}, //0x77 { 0 |Immediate_Jb|F_64, C_JfS, D__Jb, D__fP, D__NONE, "JS" ,0x78,1}, //0x78 { 0 |Immediate_Jb|F_64, C_JtS, D__Jb, D__tS, D__NONE, "JNS" ,0x79,1}, //0x79 { 0 |Immediate_Jb|F_64, C_JtP, D__Jb, D__tP, D__NONE, "JP" ,0x7a,1}, //0x7a { 0 |Immediate_Jb|F_64, C_JfP, D__Jb, D__fS, D__NONE, "JNP" ,0x7b,1}, //0x7b { 0 |Immediate_Jb|F_64, C_JtL, D__Jb, D__tL, D__NONE, "JL" ,0x7c,1}, //0x7c { 0 |Immediate_Jb|F_64, C_JfL, D__Jb, D__fL, D__NONE, "JNL" ,0x7d,1}, //0x7d { 0 |Immediate_Jb|F_64, C_JfG, D__Jb, D__fG, D__NONE, "JNG" ,0x7e,1}, //0x7e { 0 |Immediate_Jb|F_64, C_JtG, D__Jb, D__tG, D__NONE, "JG" ,0x7f,1}, //0x7f {R_M|Immediate_Ib, C_GRP, D__Eb, D__Ib, D__NONE, (char*)Group0x80 ,0x80,1}, //0x80 {R_M|Immediate_Iz, C_GRP, D__Ev, D__Iz, D__NONE, (char*)Group0x81 ,0x81,1}, //0x81 {R_M|Immediate_Ib, C_GRP, D__Eb, D__Ib, D__NONE, (char*)Group0x82 ,0x82,1}, //0x82 {R_M|Immediate_sIb, C_GRP, D__Ev, D__sIb, D__NONE, (char*)Group0x83 ,0x83,1}, //0x83 {R_M, C_TEST, D__rEb, D__Gb, D__NONE, "TEST" ,0x84,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x84 {R_M, C_TEST, D__rEv, D__Gv, D__NONE, "TEST" ,0x85,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0x85 // {R_M, C_XCHG, D__Eb, D__Gb, D__NONE, "XCHG" ,0x86,1}, //0x86 // {R_M, C_XCHG, D__Ev, D__Gv, D__NONE, "XCHG" ,0x87,1}, //0x87 {R_M, C_XCHG, D__Gb, D__Eb, D__NONE, "XCHG" ,0x86,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x86 {R_M, C_XCHG, D__Gv, D__Ev, D__NONE, "XCHG" ,0x87,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x87 {R_M, C_MOV, D__wEb, D__Gb, D__NONE, "MOV" ,0x88,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x88 {R_M, C_MOV, D__wEv, D__Gv, D__NONE, "MOV" ,0x89,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x89 {R_M, C_MOV, D__Gb, D__rEb, D__NONE, "MOV" ,0x8a,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x8a {R_M, C_MOV, D__Gv, D__rEv, D__NONE, "MOV" ,0x8b,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x8b {R_M, C_MOV, D__wEw, D__Sw, D__NONE, "MOV" ,0x8c,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x8c {R_M, C_LEA, D__Gv, D__M, D__NONE, "LEA" ,0x8d,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x8d {R_M, C_MOV, D__Sw, D__rEw, D__NONE, "MOV" ,0x8e,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0x8e {R_M, C_GRP, D__Ev, D__NONE, D__NONE, (char*)Group0x8f,0x8f,1}, //0x8f { 0 , C_XCHG_NOP, D__rAX,D__rAX_r8, D__NONE,"XCHG" , 0x90,1}, //{ 0 , C_GRP3, D__NONE, D__NONE, D__NONE, (char*)Group0x90 ,0x90,1}, //0x90 { 0 , C_XCHG, D__rAX,D__rCX_r9, D__NONE, "XCHG" ,0x91,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x91 { 0 , C_XCHG, D__rAX,D__rDX_r10, D__NONE, "XCHG" ,0x92,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x92 { 0 , C_XCHG, D__rAX,D__rBX_r11, D__NONE, "XCHG" ,0x93,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x93 { 0 , C_XCHG, D__rAX,D__rSP_r12, D__NONE, "XCHG" ,0x94,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x94 { 0 , C_XCHG, D__rAX,D__rBP_r13, D__NONE, "XCHG" ,0x95,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x95 { 0 , C_XCHG, D__rAX,D__rSI_r14, D__NONE, "XCHG" ,0x96,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x96 { 0 , C_XCHG, D__rAX,D__rDI_r15, D__NONE, "XCHG" ,0x97,1,MAKE_OP_RW_FLAG(OP_RW,OP_RW,0)}, //0x97 { 0 , C_CBW, D__NONE, D__NONE, D__NONE, "CBW" ,0x98,1}, //0x98 { 0 , C_CWD, D__NONE, D__NONE, D__NONE, "CWD" ,0x99,1}, //0x99 { 0 |Immediate_IvIw|I_64, C_CALL, D__Ap, D__NONE, D__NONE, "CALL" ,0x9a,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9a { 0 , C_WAIT, D__NONE, D__NONE, D__NONE, "WAIT" ,0x9b,1}, //0x9b { 0 | D_64 , C_PUSHF, D__Fv, D__NONE, D__NONE, "PUSHF" ,0x9c,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9c { 0 | D_64 , C_POPF, D__Fv, D__NONE, D__NONE, "POPF" ,0x9d,1,MAKE_OP_RW_FLAG(OP_W,0,0)}, //0x9d { 0 , C_SAHF, D__NONE, D__NONE, D__NONE, "SAHF" ,0x9e,1}, //0x9e { 0 , C_LAHF, D__NONE, D__NONE, D__NONE, "LAHF" ,0x9f,1}, //0x9f { 0 , C_MOV, D__AL, D__rOb, D__NONE, "MOV" ,0xa0,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xa0 { 0 , C_MOV, D__rAX, D__rOv, D__NONE, "MOV" ,0xa1,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xa1 { 0 , C_MOV, D__wOb, D__AL, D__NONE, "MOV" ,0xa2,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xa2 { 0 , C_MOV, D__wOv, D__rAX, D__NONE, "MOV" ,0xa3,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xa3 { 0 , C_MOVS, D__wYb, D_rXb, D__NONE, "MOVS" ,0xa4,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xa4 { 0 , C_MOVS, D__wYv, D_rXv, D__NONE, "MOVS" ,0xa5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xa5 { 0 , C_CMPS, D_rXb, D__rYb, D__NONE, "CMPS" ,0xa6,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xa6 { 0 , C_CMPS, D_rXv, D__rYv, D__NONE, "CMPS" ,0xa7,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xa7 { 0 | Immediate_Ib, C_TEST, D__AL, D__Ib, D__NONE, "TEST" ,0xa8,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xa8 { 0 | Immediate_Iz, C_TEST, D__rAX, D__Iz, D__NONE, "TEST" ,0xa9,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xa9 { 0 , C_STOS, D__wYb, D__AL, D__NONE, "STOS" ,0xaa,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xaa { 0 , C_STOS, D__wYv, D__rAX, D__NONE, "STOS" ,0xab,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xab { 0 , C_LODS, D__AL, D_rXb, D__NONE, "LODS" ,0xac,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xac { 0 , C_LODS, D__rAX, D_rXv, D__NONE, "LODS" ,0xad,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xad { 0 , C_SCAS, D__rYb, D__AL, D__NONE, "SCAS" ,0xae,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xae { 0 , C_SCAS, D__rYv, D__rAX, D__NONE, "SCAS" ,0xaf,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xaf { 0 |Immediate_Ib, C_MOV, D__AL_r8L, D__Ib, D__NONE, "MOV" ,0xb0,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb0 { 0 |Immediate_Ib, C_MOV, D__CL_r9L, D__Ib, D__NONE, "MOV" ,0xb1,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb1 { 0 |Immediate_Ib, C_MOV, D__DL_r10L, D__Ib, D__NONE, "MOV" ,0xb2,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb2 { 0 |Immediate_Ib, C_MOV, D__BL_r11L, D__Ib, D__NONE, "MOV" ,0xb3,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb3 { 0 |Immediate_Ib, C_MOV, D__AH_r12L, D__Ib, D__NONE, "MOV" ,0xb4,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb4 { 0 |Immediate_Ib, C_MOV, D__CH_r13L, D__Ib, D__NONE, "MOV" ,0xb5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb5 { 0 |Immediate_Ib, C_MOV, D__DH_r14L, D__Ib, D__NONE, "MOV" ,0xb6,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb6 { 0 |Immediate_Ib, C_MOV, D__BH_r15L, D__Ib, D__NONE, "MOV" ,0xb7,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb7 { 0 |Immediate_Iv, C_MOV, D__rAX_r8, D__Iv, D__NONE, "MOV" ,0xb8,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb8 { 0 |Immediate_Iv, C_MOV, D__rCX_r9, D__Iv, D__NONE, "MOV" ,0xb9,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xb9 { 0 |Immediate_Iv, C_MOV, D__rDX_r10, D__Iv, D__NONE, "MOV" ,0xba,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xba { 0 |Immediate_Iv, C_MOV, D__rBX_r11, D__Iv, D__NONE, "MOV" ,0xbb,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbb { 0 |Immediate_Iv, C_MOV, D__rSP_r12, D__Iv, D__NONE, "MOV" ,0xbc,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbc { 0 |Immediate_Iv, C_MOV, D__rBP_r13, D__Iv, D__NONE, "MOV" ,0xbd,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbd { 0 |Immediate_Iv, C_MOV, D__rSI_r14, D__Iv, D__NONE, "MOV" ,0xbe,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbe { 0 |Immediate_Iv, C_MOV, D__rDI_r15, D__Iv, D__NONE, "MOV" ,0xbf,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xbf {R_M|Immediate_Ib, C_GRP, D__NONE, D__NONE, D__NONE, (char*)Group0xc0 ,0xc0,1}, //0xc0 {R_M|Immediate_Ib, C_GRP, D__NONE, D__NONE, D__NONE, (char*)Group0xc1 ,0xc1,1}, //0xc1 { 0 |Immediate_Iw|F_64, C_RET, D__Iw, D__NONE, D__NONE, "RET" ,0xc2,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xc2 { 0 |F_64, C_RET, D__NONE, D__NONE, D__NONE, "RET" ,0xc3,1}, //0xc3 {R_M|I_64, C_LES, D__Gv, D__rMp, D__NONE, "LES" ,0xc4,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xc4 {R_M|I_64, C_LDS, D__Gv, D__rMp, D__NONE, "LDS" ,0xc5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xc5 {R_M, C_GRP, D__NONE, D__NONE, D__NONE, (char*)Group0xc6 ,0xc6,1}, //0xc6 {R_M, C_GRP, D__NONE, D__NONE, D__NONE, (char*)Group0xc7 ,0xc7,1}, //0xc7 { 0 |Immediate_IwIb, C_ENTER, D__Iw, D__Ib, D__NONE, "ENTER" ,0xc8,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xc8 { 0 | D_64 , C_LEAVE, D__NONE, D__NONE, D__NONE, "LEAVE" ,0xc9,1}, //0xc9 { 0 |Immediate_Iw, C_RETF, D__Iw, D__NONE, D__NONE, "RETF" ,0xca,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xca { 0 , C_RETF, D__NONE, D__NONE, D__NONE, "RETF" ,0xcb,1}, //0xcb { 0 , C_INT3, D__NONE, D__NONE, D__NONE, "INT3" ,0xcc,1}, //0xcc { 0 |Immediate_Ib, C_INT, D__Ib, D__NONE, D__NONE, "INT" ,0xcd,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xcd { 0 |I_64, C_INTO, D__NONE, D__NONE, D__NONE, "INTO" ,0xce,1}, //0xce { 0 , C_IRET, D__NONE, D__NONE, D__NONE, "IRET" ,0xcf,1}, //0xcf {R_M, C_GRP, D__Eb, D__1, D__NONE, (char*)Group0xd0 ,0xd0,1}, //0xd0 {R_M, C_GRP, D__Ev, D__1, D__NONE, (char*)Group0xd1 ,0xd1,1}, //0xd1 {R_M, C_GRP, D__Eb, D__CL, D__NONE, (char*)Group0xd2 ,0xd2,1}, //0xd2 {R_M, C_GRP, D__Ev, D__CL, D__NONE, (char*)Group0xd3 ,0xd3,1}, //0xd3 { 0 |Immediate_Ib|I_64, C_AAM, D__Ib, D__NONE, D__NONE,"AAM" ,0xd4,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd4 { 0 |Immediate_Ib|I_64, C_AAD, D__Ib, D__NONE, D__NONE,"AAD" ,0xd5,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xd5 { 0 , C_SALC, D__NONE, D__NONE, D__NONE, "SALC" ,0xd6,1}, //0xd6 { 0 , C_XLAT, D__NONE, D__NONE, D__NONE, "XLAT" ,0xd7,1}, //0xd7 {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xd8 ,0xd8,1}, //0xd8 {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xd9 ,0xd9,1}, //0xd9 {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xda ,0xda,1}, //0xda {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xdb ,0xdb,1}, //0xdb {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xdc ,0xdc,1}, //0xdc {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xdd ,0xdd,1}, //0xdd {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xde ,0xde,1}, //0xde {R_M, C_ESC, D__NONE, D__NONE, D__NONE, (char*)Group0xdf ,0xdf,1}, //0xdf { 0 |Immediate_Jb, C_LOOPNZ, D__Jb, D__NONE, D__NONE, "LOOPNZ" ,0xe0,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe0 { 0 |Immediate_Jb, C_LOOPZ, D__Jb, D__NONE, D__NONE, "LOOPZ" ,0xe1,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe1 { 0 |Immediate_Jb, C_LOOP, D__Jb, D__NONE, D__NONE, "LOOP" ,0xe2,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe2 { 0 |Immediate_Jb, C_JCXZ, D__Jb, D__NONE, D__NONE, "JCXZ" ,0xe3,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe3 { 0 |Immediate_Ib, C_IN, D__AL, D__Ib, D__NONE, "IN" ,0xe4,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xe4 { 0 |Immediate_Ib, C_IN, D__eX, D__Ib, D__NONE, "IN" ,0xe5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xe5 { 0 |Immediate_Ib, C_OUT, D__Ib, D__AL, D__NONE, "OUT" ,0xe6,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe6 { 0 |Immediate_Ib, C_OUT, D__Ib, D__eX, D__NONE, "OUT" ,0xe7,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xe7 { 0 |Immediate_Jv|F_64, C_CALL, D__Jz, D__NONE, D__NONE, "CALL" ,0xe8,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe8 { 0 |Immediate_Jv|F_64, C_JMP, D__Jz, D__NONE, D__NONE, "JMP" ,0xe9,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xe9 { 0 |Immediate_IvIw|I_64, C_JMP, D__Ap, D__NONE, D__NONE, "JMP" ,0xea,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xea { 0 |Immediate_Jb|F_64, C_JMP, D__Jb, D__NONE, D__NONE, "JMP" ,0xeb,1,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0xeb { 0 , C_IN, D__AL, D__DX, D__NONE, "IN" ,0xec,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xec { 0 , C_IN, D__eX, D__DX, D__NONE, "IN" ,0xed,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)}, //0xed { 0 , C_OUT, D__DX, D__AL, D__NONE, "OUT" ,0xee,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xee { 0 , C_OUT, D__DX, D__eX, D__NONE, "OUT" ,0xef,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)}, //0xef { 0 , C_LOCK, D__NONE, D__NONE, D__NONE, "LOCK" ,0xf0,1}, //0xf0 { 0 , C_INT1, D__NONE, D__NONE, D__NONE, "INT1" ,0xf1,1}, //0xf1 { 0 , C_REPN, D__NONE, D__NONE, D__NONE, "REPNE" ,0xf2,1}, //0xf2 { 0 , C_REPZ, D__NONE, D__NONE, D__NONE, "REP" ,0xf3,1}, //0xf3 { 0 , C_HLT, D__NONE, D__NONE, D__NONE, "HLT" ,0xf4,1}, //0xf4 { 0 , C_CMC, D__NONE, D__NONE, D__NONE, "CMC" ,0xf5,1}, //0xf5 {R_M, C_GRP, D__Eb, D__NONE, D__NONE, (char*)Group0xf6 ,0xf6,1}, //0xf6 {R_M, C_GRP, D__Ev, D__NONE, D__NONE, (char*)Group0xf7 ,0xf7,1}, //0xf7 { 0 , C_CLC, D__NONE, D__NONE, D__NONE, "CLC" ,0xf8,1}, //0xf8 { 0 , C_STC, D__NONE, D__NONE, D__NONE, "STC" ,0xf9,1}, //0xf9 { 0 , C_CLI, D__NONE, D__NONE, D__NONE, "CLI" ,0xfa,1}, //0xfa { 0 , C_STI, D__NONE, D__NONE, D__NONE, "STI" ,0xfb,1}, //0xfb { 0 , C_CLD, D__NONE, D__NONE, D__NONE, "CLD" ,0xfc,1}, //0xfc { 0 , C_STD, D__NONE, D__NONE, D__NONE, "STD" ,0xfd,1}, //0xfd {R_M, C_GRP, D__Eb, D__NONE, D__NONE, (char*)Group0xfe ,0xfe,1}, //0xfe {R_M, C_GRP, D__Ev, D__NONE, D__NONE, (char*)Group0xff ,0xff,1}, //0xff //________________________________________________________________________________________ //________________________________________________________________________________________ {R_M , C_INS, D__Yb, D__DX, D__NONE, "INSB" ,0x6c,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0x6c, {R_M , C_INS, D__Yw, D__DX, D__NONE, "INSW" ,0x6d,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0x6d, {R_M , C_INS, D__Yd, D__DX, D__NONE, "INSD" ,0x6d,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0x6d, {R_M , C_OUTS, D__DX, D__Xb, D__NONE, "OUTSB" ,0x6e,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0x6e, {R_M , C_OUTS, D__DX, D__Xw, D__NONE, "OUTSW" ,0x6f,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0x6f, {R_M , C_OUTS, D__DX, D__Xd, D__NONE, "OUTSD" ,0x6f,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0x6f, //______________________________________________ //______________________________________________ {0 |D_64, C_PUSHF, D__NONE, D__NONE,D__NONE, "PUSHFD" ,0x9c,1,MAKE_OP_RW_FLAG(OP_R,0,0)},//0x9c, {0 |D_64, C_POPF, D__NONE, D__NONE,D__NONE, "POPFD" ,0x9d,1,MAKE_OP_RW_FLAG(OP_W,0,0)},//0x9d, {0 , C_PUSHA, D__NONE, D__NONE,D__NONE, "PUSHAD" ,0x60,1,MAKE_OP_RW_FLAG(OP_R,0,0)},//0x60, {0 , C_POPA, D__NONE, D__NONE,D__NONE, "POPAD" ,0x61,1,MAKE_OP_RW_FLAG(OP_W,0,0)},//0x61, //____________________________________ //____________________________________ {R_M , C_MOVS, D__Yb, D__NONE,D__NONE, "MOVSB" ,0xa4,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xa4, {R_M , C_MOVS, D__Yw, D__NONE,D__NONE, "MOVSW" ,0xa5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xa5, {R_M , C_MOVS, D__Yd, D__NONE,D__NONE, "MOVSD" ,0xa5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xa5, {R_M , C_MOVS, D__Yd, D__NONE,D__NONE, "MOVSQ" ,0xa5,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xa5, {R_M , C_CMPS, D__Yb, D__NONE,D__NONE, "CMPSB" ,0xa6,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xa6, {R_M , C_CMPS, D__Yw, D__NONE,D__NONE, "CMPSW" ,0xa7,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xa7, {R_M , C_CMPS, D__Yd, D__NONE,D__NONE, "CMPSD" ,0xa7,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xa7, {R_M , C_CMPS, D__Yd, D__NONE,D__NONE, "CMPSQ" ,0xa7,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xa7, {R_M , C_STOS, D__Yb, D__NONE,D__NONE, "STOSB" ,0xaa,1,MAKE_OP_RW_FLAG(OP_W,0,0)},//0xaa, {R_M , C_STOS, D__Yw, D__NONE,D__NONE, "STOSW" ,0xab,1,MAKE_OP_RW_FLAG(OP_W,0,0)},//0xab, {R_M , C_STOS, D__Yd, D__NONE,D__NONE, "STOSD" ,0xab,1,MAKE_OP_RW_FLAG(OP_W,0,0)},//0xab, {R_M , C_STOS, D__Yd, D__NONE,D__NONE, "STOSQ" ,0xab,1,MAKE_OP_RW_FLAG(OP_W,0,0)},//0xab, {R_M , C_LODS, D__AL, D__Xb, D__NONE, "LODSB" ,0xac,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xac, {R_M , C_LODS, D__AX, D__Xw, D__NONE, "LODSW" ,0xad,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xad, {R_M , C_LODS, D__EAX, D__Xd, D__NONE, "LODSD" ,0xad,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xad, {R_M , C_LODS, D__EAX, D__Xd, D__NONE, "LODSQ" ,0xad,1,MAKE_OP_RW_FLAG(OP_W,OP_R,0)},//0xad, {R_M , C_SCAS, D__Yb, D__NONE,D__NONE, "SCASB" ,0xae,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xae, {R_M , C_SCAS, D__Yw, D__NONE,D__NONE, "SCASW" ,0xaf,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xaf, {R_M , C_SCAS, D__Yd, D__NONE,D__NONE, "SCASD" ,0xaf,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xaf, {R_M , C_SCAS, D__Yd, D__NONE,D__NONE, "SCASQ" ,0xaf,1,MAKE_OP_RW_FLAG(OP_R,OP_R,0)},//0xaf, //____________________________________ //____________________________________ {0 , C_XLAT, D__NONE, D__NONE,D__NONE, "XLATB" ,0xd7,1},//0xd7, //____________________________________ //____________________________________ {0 , C_REPN, D__NONE, D__NONE,D__NONE, "REPNZ" ,0xf2,1},//0xf2 {0 , C_REPZ, D__NONE, D__NONE,D__NONE, "REPZ" ,0xf3,1},//0xf3 {0 , C_REPZ, D__NONE, D__NONE,D__NONE, "REPE" ,0xf3,1},//0xf3 //____________________________________ //____________________________________ {0 |Immediate_Jb, C_JtC, D__Jb, D__NONE, D__NONE, "JB" ,0x72,1},//0x72, {0 |Immediate_Jb, C_JtC, D__Jb, D__NONE, D__NONE, "JNAE" ,0x72,1},//0x72, {0 |Immediate_Jb, C_JfC, D__Jb, D__NONE, D__NONE, "JAE" ,0x73,1},//0x73, {0 |Immediate_Ib, C_JfC, D__Jb, D__NONE, D__NONE, "JNB" ,0x73,1},//0x73, {0 |Immediate_Ib, C_JtZ, D__Jb, D__NONE, D__NONE, "JE" ,0x74,1},//0x74, {0 |Immediate_Ib, C_JfZ, D__Jb, D__NONE, D__NONE, "JNE" ,0x75,1},//0x75, {0 |Immediate_Ib, C_JfA, D__Jb, D__NONE, D__NONE, "JBE" ,0x76,1},//0x76, {0 |Immediate_Jb, C_JtA, D__Jb, D__NONE, D__NONE, "JNBE" ,0x77,1},//0x77, {0 |Immediate_Jb, C_JtP, D__Jb, D__NONE, D__NONE, "JPE" ,0x7a,1},//0x7a, {0 |Immediate_Jb, C_JfP, D__Jb, D__NONE, D__NONE, "JPO" ,0x7b,1},//0x7b, {0 |Immediate_Jb, C_JtL, D__Jb, D__NONE, D__NONE, "JNGE" ,0x7c,1},//0x7c, {0 |Immediate_Ib, C_JfL, D__Jb, D__NONE, D__NONE, "JGE" ,0x7d,1},//0x7d, {0 |Immediate_Ib, C_JfG, D__Jb, D__NONE, D__NONE, "JLE" ,0x7e,1},//0x7e, {0 |Immediate_Ib, C_JtG, D__Jb, D__NONE, D__NONE, "JNLE" ,0x7f,1},//0x7f, { 0 |Immediate_Jv|F_64, C_JtC, D__Jz, D__tC, D__NONE, "JB" ,0x820f,2}, //0x82 { 0 |Immediate_Jv|F_64, C_JtC, D__Jz, D__tC, D__NONE, "JNAE" ,0x820f,2}, //0x82 { 0 |Immediate_Jv|F_64, C_JfC, D__Jz, D__fC, D__NONE, "JNB" ,0x830f,2}, //0x83 { 0 |Immediate_Jv|F_64, C_JfC, D__Jz, D__fC, D__NONE, "JAE" ,0x830f,2}, //0x83 { 0 |Immediate_Jv|F_64, C_JtZ, D__Jz, D__tZ, D__NONE, "JE" ,0x840f,2}, //0x84 { 0 |Immediate_Jv|F_64, C_JfZ, D__Jz, D__fZ, D__NONE, "JNE" ,0x850f,2}, //0x85 { 0 |Immediate_Jv|F_64, C_JfA, D__Jz, D__fA, D__NONE, "JBE" ,0x860f,2}, //0x86 { 0 |Immediate_Jv|F_64, C_JtA, D__Jz, D__tA, D__NONE, "JNBE" ,0x870f,2}, //0x87 { 0 |Immediate_Jv|F_64, C_JtP, D__Jz, D__tP, D__NONE, "JPE" ,0x8a0f,2}, //0x8a { 0 |Immediate_Jv|F_64, C_JfP, D__Jz, D__fP, D__NONE, "JPO" ,0x8b0f,2}, //0x8b { 0 |Immediate_Jv|F_64, C_JtL, D__Jz, D__tL, D__NONE, "JNGE" ,0x8c0f,2}, //0x8c { 0 |Immediate_Jv|F_64, C_JfL, D__Jz, D__fL, D__NONE, "JGE" ,0x8d0f,2}, //0x8d { 0 |Immediate_Jv|F_64, C_JfG, D__Jz, D__fG, D__NONE, "JLE" ,0x8e0f,2}, //0x8e { 0 |Immediate_Jv|F_64, C_JtG, D__Jz, D__tG, D__NONE, "JNLE" ,0x8f0f,2}, //0x8f {R_M, C_SETtC, D__wEb, D__tC, D__NONE, "SETB" ,0x920f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x92 {R_M, C_SETtC, D__wEb, D__tC, D__NONE, "SETNAE",0x920f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x92 {R_M, C_SETfC, D__wEb, D__fC, D__NONE, "SETNB" ,0x930f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x93 {R_M, C_SETfC, D__wEb, D__fC, D__NONE, "SETAE" ,0x930f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x93 {R_M, C_SETtZ, D__wEb, D__tZ, D__NONE, "SETE" ,0x940f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x94 {R_M, C_SETfZ, D__wEb, D__fZ, D__NONE, "SETNE" ,0x950f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x95 {R_M, C_SETfA, D__wEb, D__fA, D__NONE, "SETBE" ,0x960f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x96 {R_M, C_SETtA, D__wEb, D__tA, D__NONE, "SETNBE",0x970f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x97 {R_M, C_SETtP, D__wEb, D__tP, D__NONE, "SETPE" ,0x9a0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9a {R_M, C_SETfP, D__wEb, D__fP, D__NONE, "SETPO" ,0x9b0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9b {R_M, C_SETtL, D__wEb, D__tL, D__NONE, "SETNGE",0x9c0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9c {R_M, C_SETfL, D__wEb, D__fL, D__NONE, "SETGE" ,0x9d0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9d {R_M, C_SETfG, D__wEb, D__fG, D__NONE, "SETLE" ,0x9e0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9e {R_M, C_SETtG, D__wEb, D__tG, D__NONE, "SETNLE",0x9f0f,2,MAKE_OP_RW_FLAG(OP_R,0,0)}, //0x9f //____________________________________ {R_M, C_CMOVtC, D__Gv, D__rEv, D__tC, "CMOVNAE" ,0x420f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x42 {R_M, C_CMOVtC, D__Gv, D__rEv, D__tC, "CMOVC" ,0x420f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x42 {R_M, C_CMOVfC, D__Gv, D__rEv, D__fC, "CMOVNC" ,0x430f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x43 {R_M, C_CMOVfC, D__Gv, D__rEv, D__fC, "CMOVAE" ,0x430f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x43 {R_M, C_CMOVtZ, D__Gv, D__rEv, D__tZ, "CMOVE" ,0x440f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x44 {R_M, C_CMOVfZ, D__Gv, D__rEv, D__fZ, "CMOVNE" ,0x450f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x45 {R_M, C_CMOVfA, D__Gv, D__rEv, D__fA, "CMOVNA" ,0x460f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x46 {R_M, C_CMOVtA, D__Gv, D__rEv, D__tA, "CMOVNBE" ,0x470f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x47 {R_M, C_CMOVtP, D__Gv, D__rEv, D__tP, "CMOVPE" ,0x4a0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4a {R_M, C_CMOVfP, D__Gv, D__rEv, D__fP, "CMOVPO" ,0x4b0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4b {R_M, C_CMOVtL, D__Gv, D__rEv, D__tL, "CMOVNGE" ,0x4c0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4c {R_M, C_CMOVfL, D__Gv, D__rEv, D__fL, "CMOVNL" ,0x4d0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4d {R_M, C_CMOVfG, D__Gv, D__rEv, D__fG, "CMOVNG" ,0x4e0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4e {R_M, C_CMOVtG, D__Gv, D__rEv, D__tG, "CMOVNLE" ,0x4f0f,2,MAKE_OP_RW_FLAG(OP_RW,OP_R,0)}, //0x4f { 0 |Immediate_Jb, C_LOOPNZ, D__Jb, D__NONE, D__NONE, "LOOPNE" ,0xe0,1}, //0xe0 { 0 |Immediate_Jb, C_LOOPZ, D__Jb, D__NONE, D__NONE, "LOOPE" ,0xe1,1}, //0xe1 { 0 , C_NOP, D__NONE,D__NONE, D__NONE,"NOP" , 0x90,1}, //____________________________________ {R_M , C_DBYTE, D_DBYTE, D__NONE, D__NONE, "DB" }, //db xx {R_M , C_DWORD, D_DWORD, D__NONE, D__NONE, "DW" }, //dw xx {R_M , C_DDWORD,D_DDWORD, D__NONE, D__NONE, "DD" }, //dd xx {R_M , C_DBYTE, D_STRING, D__NONE, D__NONE, "DB" }, //db xx //____________________________________ }; DIS_OPCODE_T RexPrefixFor64Bit[]= { {0 , C_REX_PREFIX, D__NONE, D__NONE, D__NONE, "" }, //Rex prefix only for 64 bit }; //______________________________________________________ //______________________________________________________ int GetEffectAddress32Dis(DIS_CPU * pDisCPU,BYTE *pbuff,DISP_INSTRUCTION_T *disp_i) { int r_m,reg,mod,base,index,scale; int length; QWORD base_index; QWORD base_register_val; r_m = ((DIS_MODR_M*)pbuff)->r_m; reg = ((DIS_MODR_M*)pbuff)->reg; mod = ((DIS_MODR_M*)pbuff)->mod; reg |= ((disp_i->rex_prefix & 0x4)<<1); if(disp_i->rex_prefix & 0x8) // if ture then ignore 0x66 prefix { disp_i->os_32=BIT64; } disp_i->rm = r_m; disp_i->nnn = reg; disp_i->mod = mod; disp_i->have_regrm=1; disp_i->have_sib=-1; if (r_m==4)// ָ SIB ֽ { base = ((DIS_MODR_M*)pbuff)->base; index = ((DIS_MODR_M*)pbuff)->index; scale = ((DIS_MODR_M*)pbuff)->scale; if(disp_i->mode==BIT64) { index |= ((disp_i->rex_prefix & 0x2)<<2); base |= ((disp_i->rex_prefix & 0x1)<<3); disp_i->rm |= ((disp_i->rex_prefix & 0x1)<<3); } disp_i->have_sib=1; pbuff += 2; //skip modrm and sib byte disp_i->base = base; if((disp_i->base&0x7)==5 && mod==0) //only ebp as base register is not used disp_i->base=0-1; disp_i->index = index; disp_i->scale = scale; if(disp_i->base==-1) base_register_val=0; else base_register_val=pDisCPU->gen_reg[base].erx; if (index==4) //rsp must not be index register { base_index = base_register_val; disp_i->index = 0-1; } else { base_index = base_register_val + (pDisCPU->gen_reg[index].erx<base==4 || disp_i->base==5) disp_i->seg = I_SS; else disp_i->seg = I_DS; switch(mod) { case 0: if ((base&0x7)==5) { // address form [xxxxxxxx] there is a modrm and a sib byte disp_i->addr_displacement = (__int64)(int)GetValue_d(pbuff); disp_i->displacement_size = sizeof(DWORD); length = 0x06; if (index==4) base_index = 0; else base_index = (pDisCPU->gen_reg[index].erx<seg = I_DS; } else { // address form [register] disp_i->addr_displacement = 0; disp_i->displacement_size = 0; length = 0x02; } break; case 1: disp_i->addr_displacement = (long)(*(char*)pbuff); disp_i->displacement_size = sizeof(BYTE); length = 0x03; break; case 2: disp_i->addr_displacement = (__int64)(int)GetValue_d(pbuff); disp_i->displacement_size = sizeof(DWORD); length = 0x06; break; case 3: //mod == 3 disp_i->displacement_size = 0; length = 0x01; disp_i->have_sib=-1; break; } } else { pbuff++;//skip modrm byte r_m |= ((disp_i->rex_prefix & 0x1)<<3); disp_i->base = r_m; disp_i->index = 0-1; disp_i->scale = 0; disp_i->rm = r_m; base_index = pDisCPU->gen_reg[r_m].erx; if (r_m==4 || r_m==5) disp_i->seg = I_SS; else disp_i->seg = I_DS; switch(mod) { case 0: if ((r_m&7)==5) { disp_i->addr_displacement = (__int64)(int)GetValue_d(pbuff); disp_i->displacement_size = sizeof(DWORD); if(disp_i->mode==BIT64) { disp_i->seg = I_CS; disp_i->RIP_Relative=1; //disp_i->displacement_size=sizeof(QWORD); } else disp_i->seg = I_DS; base_index = 0; disp_i->base = 0-1; } else { disp_i->addr_displacement = 0; disp_i->displacement_size = 0; } break; case 1: disp_i->addr_displacement = (__int64)(*(char*)pbuff); disp_i->displacement_size = sizeof(BYTE); break; case 2: disp_i->addr_displacement = (__int64)GetValue_d(pbuff); disp_i->displacement_size = sizeof(DWORD); break; default: //mod == 3 disp_i->displacement_size = 0; } length = disp_i->displacement_size + 1; } disp_i->rm_addr = base_index + disp_i->addr_displacement; //ЧַΪʮλ return length; } int GetEffectAddress16Dis(DIS_CPU * pDisCPU,BYTE *pbuff,DISP_INSTRUCTION_T *disp_i) { int r_m,reg,mod; int length; DWORD base_index; r_m = ((DIS_MODR_M*)pbuff)->r_m; reg = ((DIS_MODR_M*)pbuff)->reg; mod = ((DIS_MODR_M*)pbuff)->mod; disp_i->rm = r_m; disp_i->nnn = reg; disp_i->mod = mod; disp_i->have_regrm=1; disp_i->have_sib=-1; pbuff++; disp_i->as_32 = BIT16; disp_i->scale = 0; switch(r_m) { case 0: base_index = pDisCPU->gen_reg[I_EBX].word.u_word.rx + pDisCPU->gen_reg[I_ESI].word.u_word.rx; disp_i->seg = I_DS; disp_i->base = INTEL_GEG_REG_EBX; disp_i->index = INTEL_GEG_REG_ESI; break; case 1: base_index = pDisCPU->gen_reg[I_EBX].word.u_word.rx + pDisCPU->gen_reg[I_EDI].word.u_word.rx; disp_i->seg = I_DS; disp_i->base = INTEL_GEG_REG_EBX; disp_i->index = INTEL_GEG_REG_EDI; break; case 2: base_index = pDisCPU->gen_reg[I_EBP].word.u_word.rx + pDisCPU->gen_reg[I_ESI].word.u_word.rx; disp_i->seg = I_SS; disp_i->base = INTEL_GEG_REG_EBP; disp_i->index = INTEL_GEG_REG_ESI; break; case 3: base_index = pDisCPU->gen_reg[I_EBP].word.u_word.rx + pDisCPU->gen_reg[I_EDI].word.u_word.rx; disp_i->seg = I_SS; disp_i->base = INTEL_GEG_REG_EBP; disp_i->index = INTEL_GEG_REG_EDI; break; case 4: base_index = pDisCPU->gen_reg[I_ESI].word.u_word.rx; disp_i->seg = I_DS; disp_i->base = INTEL_GEG_REG_ESI; disp_i->index = 0-1; break; case 5: base_index = pDisCPU->gen_reg[I_EDI].word.u_word.rx; disp_i->seg = I_DS; disp_i->base = INTEL_GEG_REG_EDI; disp_i->index = 0-1; break; case 6: base_index = pDisCPU->gen_reg[I_EBP].word.u_word.rx; disp_i->seg = I_SS; disp_i->base = INTEL_GEG_REG_EBP; disp_i->index = 0-1; break; case 7: base_index = pDisCPU->gen_reg[I_EBX].word.u_word.rx; disp_i->seg = I_DS; disp_i->base = INTEL_GEG_REG_EBX; disp_i->index = 0-1; break; }; switch(mod) { case 0: if (r_m==6) { disp_i->addr_displacement = GetValue_w(pbuff); disp_i->displacement_size = sizeof(WORD); base_index = 0; disp_i->seg = I_DS; disp_i->base = 0-1; disp_i->index = 0-1; } else { disp_i->addr_displacement = 0x00; disp_i->displacement_size = 0; } break; case 1: disp_i->addr_displacement = (long)(*(char*)pbuff); disp_i->displacement_size = sizeof(BYTE); break; case 2: disp_i->addr_displacement = GetValue_w(pbuff); disp_i->displacement_size = sizeof(WORD); break; default: //mod == 3 disp_i->displacement_size = 0; } disp_i->rm_addr = (unsigned short)(base_index + disp_i->addr_displacement); //ЧַΪʮλ length = disp_i->displacement_size + 1; return length; } void DispTranDis(DIS_ADDRESS * dis_a,DISP_INSTRUCTION_T *disp_i,QWORD eip) { dis_a->mod = disp_i->mod; dis_a->reg = disp_i->nnn; dis_a->r_m = disp_i->rm; dis_a->base = disp_i->base; dis_a->index = disp_i->index; dis_a->scale = disp_i->scale; dis_a->segment = disp_i->seg; dis_a->address_size = disp_i->as_32; dis_a->displacement_size = disp_i->displacement_size; if(disp_i->RIP_Relative) { disp_i->addr_displacement+=eip+disp_i->ilen; dis_a->displacement_size = 8; } dis_a->displacement = disp_i->addr_displacement; dis_a->effect_address = disp_i->rm_addr; return ; } //ģ顪 bool ProcessName_dis(INSTRUCTION_INFORMATION* pInstInfo,DIS_OPCODE_T *pIntelOpcode,int OperandSize,int AddressSize) { int opcodetype,Opdata1,Opdata2; opcodetype = pIntelOpcode->OpcodeType; Opdata1 = pIntelOpcode->Opdata1; Opdata2 = pIntelOpcode->Opdata2; if (pInstInfo->Lock==0xf0) strcpy(pInstInfo->LockName,"LOCK"); else pInstInfo->LockName[0] = '\0'; if (pInstInfo->Repeat==0xf2) strcpy(pInstInfo->RepeatName,"REPNE"); else if (pInstInfo->Repeat==0xf3) strcpy(pInstInfo->RepeatName,"REP"); else pInstInfo->RepeatName[0] = '\0'; if (opcodetype==C_NULL) return false; strcpy(pInstInfo->Name,pIntelOpcode->name); if (Opdata1>=D__Xb&&Opdata1<=D_wXb||Opdata1>=D__Yb&&Opdata1<=D__wYb|| Opdata2>=D__Xb&&Opdata2<=D_wXb||Opdata2>=D__Yb&&Opdata2<=D__wYb) sprintf(pInstInfo->Name,"%sB",pIntelOpcode->name); if (Opdata1>=D__Xv&&Opdata1<=D_wXv||Opdata1>=D__Yv&&Opdata1<=D__wYv|| Opdata2>=D__Xv&&Opdata2<=D_wXv||Opdata2>=D__Yv&&Opdata2<=D__wYv) { switch(OperandSize) { case BIT16: sprintf(pInstInfo->Name,"%sW",pIntelOpcode->name); break; case BIT32: sprintf(pInstInfo->Name,"%sD",pIntelOpcode->name); break; case BIT64: sprintf(pInstInfo->Name,"%sQ",pIntelOpcode->name); break; } } switch(OperandSize) { case BIT16: break; case BIT32: switch(opcodetype) { case C_CBW: strcpy(pInstInfo->Name,"CWDE"); break; case C_CWD: strcpy(pInstInfo->Name,"CDQ"); break; case C_PUSHA: strcpy(pInstInfo->Name,"PUSHAD"); break; case C_POPA: strcpy(pInstInfo->Name,"POPAD"); break; case C_PUSHF: strcpy(pInstInfo->Name,"PUSHFD"); break; case C_POPF: strcpy(pInstInfo->Name,"POPFD"); break; case C_JCXZ: strcpy(pInstInfo->Name,"JECXZ"); break; case C_IRET: strcpy(pInstInfo->Name,"IRETD"); break; case C_MOVD: strcpy(pInstInfo->Name,"MOVD"); break; case C_PEXTRD: strcpy(pInstInfo->Name,"pextrd"); break; case C_PINSRD: strcpy(pInstInfo->Name,"pinsrd"); break; }; break; case BIT64: switch(opcodetype) { case C_CMPXCHG8B: if(pInstInfo->Rex_Prefix&0x8) strcpy(pInstInfo->Name,"CMPXCHG16B"); break; case C_CBW: strcpy(pInstInfo->Name,"CDQE"); break; case C_CWD: strcpy(pInstInfo->Name,"CQO"); break; case C_PUSHA: strcpy(pInstInfo->Name,""); break; case C_POPA: strcpy(pInstInfo->Name,""); break; case C_PUSHF: strcpy(pInstInfo->Name,"PUSHFQ"); break; case C_POPF: strcpy(pInstInfo->Name,"POPFQ"); break; case C_JCXZ: strcpy(pInstInfo->Name,"JRCXZ"); break; case C_IRET: strcpy(pInstInfo->Name,"IRETQ"); break; case C_MOVD: strcpy(pInstInfo->Name,"MOVQ"); break; case C_PEXTRD: strcpy(pInstInfo->Name,"pextrq"); break; case C_PINSRD: strcpy(pInstInfo->Name,"pinsrq"); break; }; break; } return true; } int ProcessOpdata_dis(int opdata,POPERAND_ITEM op,QWORD eip,DISP_INSTRUCTION_T *disp_i,DIS_CPU *pDisCPU) { int OperandSize = disp_i->os_32; int AddressSize = disp_i->as_32; __int64 k; int opimmedlength; int SIZE_c,SIZE_v,SIZE_p,SIZE_z,SIZE_s1,SIZE_y; switch(OperandSize) { case BIT32: SIZE_v = 4; SIZE_c = 2; SIZE_p = 6; SIZE_z=4; SIZE_s1=6; SIZE_y=4; break; case BIT16: SIZE_v = 2; SIZE_c = 1; SIZE_p = 4; SIZE_z=2; SIZE_s1=6; SIZE_y=4; break; case BIT64: SIZE_v = 8; SIZE_c = 2; SIZE_p = 10; SIZE_z=4; SIZE_s1=10; SIZE_y=8; break; } opimmedlength = 0; op->mode = mode_invalid; op->opersize = 0; switch(opdata) { case D__NONE: break; case D__1: op->mode = mode_immed; op->opersize = 1; op->immed.immed_value = 1; strcpy(op->string,"1"); break; // Immediate data. The operand value is encoded in subsequent bytes of the instruction. case D__Ib: op->mode = mode_immed; op->opersize = SIZE_b; opimmedlength = SIZE_b; op->immed.immed_value = disp_i->Ib; if(disp_i->Ib>=0xa0) sprintf(op->string,"0%X",op->immed.immed_value); else sprintf(op->string,"%X",op->immed.immed_value); break; case D__Ib2: op->mode = mode_immed; op->opersize = SIZE_b; opimmedlength = SIZE_b; op->immed.immed_value = disp_i->Ib2; //sprintf(op->string,"%02X",op->immed.immed_value); if(disp_i->Ib2>=0xa0) sprintf(op->string,"0%X",op->immed.immed_value); else sprintf(op->string,"%X",op->immed.immed_value); break; case D__sIb: { __int64 value; op->mode = mode_immed; op->opersize = SIZE_b; opimmedlength = SIZE_b; value=(int)disp_i->Ib; op->immed.immed_value = value; k = op->immed.immed_value; if (k>=sign_BYTE) sprintf(op->string,"-%X",(BYTE)(0-k)); else sprintf(op->string,"%X",(BYTE)k); break; } case D__Iw: op->mode = mode_immed; op->opersize = SIZE_w; opimmedlength = SIZE_w; op->immed.immed_value = disp_i->Iw; sprintf(op->string,"%X",op->immed.immed_value); break; case D__Iv: op->mode = mode_immed; op->opersize = SIZE_v; opimmedlength = SIZE_v; if (SIZE_v==SIZE_w) { op->immed.immed_value = disp_i->Iw; if(disp_i->Iw>=0xa000) sprintf(op->string,"0%X",op->immed.immed_value); else sprintf(op->string,"%X",op->immed.immed_value); } else if (SIZE_v==SIZE_d) { op->immed.immed_value = disp_i->Id; if(disp_i->Id>=0xa0000000) sprintf(op->string,"0%X",op->immed.immed_value); else sprintf(op->string,"%X",op->immed.immed_value); } else if(SIZE_v==SIZE_q) { op->immed.immed_value = disp_i->Iq; if(disp_i->Iq>=0xa000000000000000I64) sprintf(op->string,"0%I64X",op->immed.immed_value); else sprintf(op->string,"%I64X",op->immed.immed_value); } break; case D__Iz: op->mode = mode_immed; op->opersize = SIZE_z; opimmedlength = SIZE_z; if (SIZE_z==SIZE_w) { op->immed.immed_value = disp_i->Iw; if(disp_i->Iw>=0xa000) sprintf(op->string,"0%X",op->immed.immed_value); else sprintf(op->string,"%X",op->immed.immed_value); } else { if(OperandSize==BIT64) { __int64 value=(int)disp_i->Id; if(value<0) { sprintf(op->string,"0%I64X",value); } else { sprintf(op->string,"%I64X",value); } } else { op->immed.immed_value = disp_i->Id; if(disp_i->Id>=0xa0000000) sprintf(op->string,"0%X",op->immed.immed_value); else sprintf(op->string,"%X",op->immed.immed_value); } } break; // The instruction contains a relative offset to be added to the instruction pointer register // (for example, JMP (0E9), LOOP). case D__Jb: op->mode = mode_near; op->opersize = SIZE_b; op->nearptr.offset = (__int64)(char)disp_i->Ib; opimmedlength = 1; k = eip+disp_i->ilen+op->nearptr.offset; op->nearptr.label = k; switch(OperandSize) { case BIT32:sprintf(op->string,"%08X",k);break; case BIT16:sprintf(op->string,"%04X",k);break; case BIT64:sprintf(op->string,"%016I64X",k);break; } break; case D__Jz: op->mode = mode_near; op->opersize = SIZE_z; switch(SIZE_z) { case SIZE_w: op->nearptr.offset = (int)(short)disp_i->Iw; break; case SIZE_d: op->nearptr.offset = (__int64)(int)disp_i->Id; break; } opimmedlength = SIZE_z; k = eip+disp_i->ilen+op->nearptr.offset; op->nearptr.label = k; switch(OperandSize) { case BIT32:sprintf(op->string,"%08X",k);break; case BIT16:sprintf(op->string,"%04X",k);break; case BIT64:sprintf(op->string,"%016I64X",k);break; } break; // The instruction has no ModR/M byte; the offset of the operand is coded as a word or // double word (depending on address size attribute) in the instruction. No base register, // index register, or scaling factor can be applied (for example, MOV (A0-A3)). case D__Ob:if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ|RWFLG_WRITE;; case D__rOb:if (op->opersize==0)op->opersize = SIZE_b, op->rwflag = RWFLG_READ;; case D__wOb:if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_WRITE;; case D__rwOb:if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ|RWFLG_WRITE;; case D__Ov: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rOv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ; case D__wOv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_WRITE; case D__rwOv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; disp_i->base = 0-1; disp_i->index = 0-1; disp_i->scale = 0; disp_i->seg = I_DS; if (AddressSize==BIT64) { disp_i->as_32 = BIT64; disp_i->displacement_size = 8; disp_i->addr_displacement = disp_i->Iq; opimmedlength = 8; sprintf(op->string,"%016I64X",disp_i->addr_displacement); } else if (AddressSize==BIT32) { disp_i->as_32 = BIT32; disp_i->displacement_size = 4; disp_i->addr_displacement = disp_i->Id; opimmedlength = 4; sprintf(op->string,"%08X",disp_i->Id); } else { disp_i->as_32 = BIT16; disp_i->displacement_size = 2; disp_i->addr_displacement = disp_i->Iw; opimmedlength = 2; sprintf(op->string,"%04X",disp_i->Iw); } disp_i->rm_addr = disp_i->addr_displacement; op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); break; case D__Ap: op->mode = mode_far; if (OperandSize==BIT32) { op->farptr.offset = disp_i->Id; op->farptr.segment = disp_i->Iw2; } else { op->farptr.offset = disp_i->Iw; op->farptr.segment = disp_i->Iw2; } op->opersize = SIZE_p; opimmedlength = SIZE_p; if (OperandSize==BIT32) sprintf(op->string,"%04X:%08X",op->farptr.segment,op->farptr.offset); else sprintf(op->string,"%04X:%04X",op->farptr.segment,op->farptr.offset); break; // Direct address. The instruction has no ModR/M byte; the address of the operand is en-coded // in the instruction; and no base register, index register, or scaling factor can be // applied (for example, far JMP (EA)). // The reg field of the ModR/M byte selects a control register (for example, // MOV (0F20, 0F22)). case D__Cd: if(disp_i->mode == BIT64) op->opersize = SIZE_q; else op->opersize = SIZE_d; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegCR[disp_i->nnn]); break; // The reg field of the ModR/M byte selects a debug register (for example, // MOV (0F21,0F23)). case D__Dd: if(disp_i->mode == BIT64) op->opersize = SIZE_q; else op->opersize = SIZE_d; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegDR[disp_i->nnn]); break; case D__Td: if(disp_i->mode == BIT64) op->opersize = SIZE_q; else op->opersize = SIZE_d; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegTR[disp_i->nnn]); break; // EFLAGS Register. case D__Fv: break; // The reg field of the ModR/M byte selects a general register (for example, AX (000)). case D__Gb:if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ|RWFLG_WRITE;; case D__rGb:if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ;; case D__wGb:if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_WRITE;; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; if(disp_i->mode==BIT64 && disp_i->rex_prefix) strcpy(op->string,RegByteFor64bit[disp_i->nnn]); else strcpy(op->string,RegByte[disp_i->nnn]); break; case D__Gw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rGw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ; case D__wGw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_WRITE;; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegWord[disp_i->nnn]); break; case D__Gv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rGv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ;; case D__wGv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_WRITE;; case D__rwGv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; if (op->opersize ==SIZE_w) strcpy(op->string,RegWord[disp_i->nnn]); else if(op->opersize == SIZE_d) strcpy(op->string,RegDWord[disp_i->nnn]); else if(op->opersize == SIZE_q) strcpy(op->string,RegQWord[disp_i->nnn]); break; case D__Gd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ|RWFLG_WRITE;; case D__rGd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ; case D__wGd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_WRITE;; case D__rwGd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ|RWFLG_WRITE;; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegDWord[disp_i->nnn]); break; case D__Gy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ|RWFLG_WRITE;; case D__rGy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ; case D__wGy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_WRITE;; case D__rwGy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ|RWFLG_WRITE;; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; if(op->opersize!=SIZE_d) { strcpy(op->string,RegQWord[disp_i->nnn]); } else { strcpy(op->string,RegDWord[disp_i->nnn]); } break; // The reg field of the ModR/M byte selects a packed quadword MMX?technology reg-ister. case D__Pd: if (op->opersize==0) op->opersize = SIZE_d; case D__rPd: if (op->opersize==0) op->opersize = SIZE_d,op->rwflag=RWFLG_READ;; case D__wPd: if (op->opersize==0) op->opersize = SIZE_d,op->rwflag=RWFLG_WRITE;; case D__rwPd: if (op->opersize==0) op->opersize = SIZE_d,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Pq: if (op->opersize==0) op->opersize = SIZE_q; case D__rPq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ;; case D__wPq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_WRITE;; case D__rwPq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Ppi: if (op->opersize==0) op->opersize = SIZE_pi; case D__rPpi: if (op->opersize==0) op->opersize = SIZE_pi,op->rwflag=RWFLG_READ;; case D__wPpi: if (op->opersize==0) op->opersize = SIZE_pi,op->rwflag=RWFLG_WRITE;; case D__rwPpi: if (op->opersize==0) op->opersize = SIZE_pi,op->rwflag=RWFLG_READ|RWFLG_WRITE;; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegMMXQWord[disp_i->nnn&7]); break; case D__Uq: if(op->opersize==0) op->opersize = SIZE_q; case D__rUq: if(op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ; case D__wUq: if(op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_WRITE; case D__rwUq: if(op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ|RWFLG_WRITE; if(disp_i->mod!=3) return 0-1; op->mode = mode_register; op->opersize=SIZE_q; op->reg.reg_index = disp_i->rm; strcpy(op->string,RegXMMOWord[disp_i->rm]); break; case D__Nq: if(op->opersize==0) op->opersize = SIZE_q; case D__rNq: if(op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ; case D__wNq: if(op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_WRITE; case D__rwNq: if(op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ|RWFLG_WRITE; if(disp_i->mod!=3) { return 0-1; } op->mode = mode_register; op->opersize=SIZE_q; op->reg.reg_index = disp_i->rm; strcpy(op->string,RegMMXQWord[disp_i->rm&7]); break; // The mod field of the ModR/M byte may refer only to a general register (for example, // MOV (0F20-0F24, 0F26)). case D__Rd: if (disp_i->mod!=3) return 0-1; op->mode = mode_register; op->opersize = SIZE_d; op->reg.reg_index = disp_i->rm; strcpy(op->string,RegDWord[disp_i->rm]); break; case D__Ry: if (disp_i->mod!=3) return 0-1; op->mode = mode_register; op->opersize = SIZE_y; op->reg.reg_index = disp_i->rm; if(op->opersize==SIZE_d) strcpy(op->string,RegDWord[disp_i->rm]); else strcpy(op->string,RegQWord[disp_i->rm]); break; // The reg field of the ModR/M byte selects a segment register (for example, MOV //(8C,8E)). case D__Sw: op->mode = mode_segment; op->opersize = SIZE_w; op->seg.seg_index = (disp_i->nnn&7); strcpy(op->string,SegReg[(disp_i->nnn&7)]); break; // The reg field of the ModR/M byte selects a test register (for example, MOV // (0F24,0F26)). case D__NTA: break; case D__T0: case D__T1: case D__T2: op->mode = mode_register; op->opersize = SIZE_d; op->reg.reg_index = opdata - D__T0; sprintf(op->string,"T%x",opdata-D__T0); break; // The reg field of the ModR/M byte selects a packed SIMD floating-point register. case D__Vq: if (op->opersize==0) op->opersize = SIZE_q; case D__rVq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ;; case D__wVq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_WRITE;; case D__rwVq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Vdq: if (op->opersize==0) op->opersize = SIZE_dq; case D__rVdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ;; case D__wVdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_WRITE;; case D__rwVdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Vps: if (op->opersize==0) op->opersize = SIZE_ps; case D__rVps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ;; case D__wVps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_WRITE;; case D__rwVps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Vss: if (op->opersize==0) op->opersize = SIZE_ss; case D__rVss: if (op->opersize==0) op->opersize = SIZE_ss,op->rwflag=RWFLG_READ;; case D__wVss: if (op->opersize==0) op->opersize = SIZE_ss,op->rwflag=RWFLG_WRITE;; case D__rwVss: if (op->opersize==0) op->opersize = SIZE_ss,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Vsd: if (op->opersize==0) op->opersize = SIZE_sd; case D__rVsd: if (op->opersize==0) op->opersize = SIZE_sd,op->rwflag=RWFLG_READ;; case D__wVsd: if (op->opersize==0) op->opersize = SIZE_sd,op->rwflag=RWFLG_WRITE;; case D__rwVsd: if (op->opersize==0) op->opersize = SIZE_sd,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Vpd: if (op->opersize==0) op->opersize = SIZE_pd; case D__rVpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ;; case D__wVpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_WRITE;; case D__rwVpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ|RWFLG_WRITE;; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegXMMOWord[disp_i->nnn]); break; case D__Vy: if (op->opersize==0) op->opersize = SIZE_y; case D__rVy: if (op->opersize==0) op->opersize = SIZE_y,op->rwflag=RWFLG_READ;; case D__wVy: if (op->opersize==0) op->opersize = SIZE_y,op->rwflag=RWFLG_WRITE;; case D__rwVy: if (op->opersize==0) op->opersize = SIZE_y,op->rwflag=RWFLG_READ|RWFLG_WRITE;; if(op->opersize!=SIZE_d) op->opersize = SIZE_q; op->mode = mode_register; op->reg.reg_index = disp_i->nnn; strcpy(op->string,RegXMMOWord[disp_i->nnn]); break; // Memory addressed by the DS:SI register pair (for example, MOVS, CMPS, OUTS, or // LODS). case D__Xb:if (op->opersize==0) op->opersize = SIZE_b; case D_rXb:if (op->opersize==0) op->opersize = SIZE_b; case D_wXb:if (op->opersize==0) op->opersize = SIZE_b; case D__Xw:if (op->opersize==0) op->opersize = SIZE_w; case D_rXw:if (op->opersize==0) op->opersize = SIZE_w; case D_wXw:if (op->opersize==0) op->opersize = SIZE_w; case D__Xv:if (op->opersize==0) op->opersize = SIZE_v; case D_rXv:if (op->opersize==0) op->opersize = SIZE_v; case D_wXv:if (op->opersize==0) op->opersize = SIZE_v; case D__Xd:if (op->opersize==0) op->opersize = SIZE_d; case D_rXd:if (op->opersize==0) op->opersize = SIZE_d; case D_wXd:if (op->opersize==0) op->opersize = SIZE_d; case D__Xz:if (op->opersize==0) op->opersize = SIZE_z; case D_rXz:if (op->opersize==0) op->opersize = SIZE_z; case D_wXz:if (op->opersize==0) op->opersize = SIZE_z; opimmedlength = 0; op->mode=mode_address; disp_i->seg=I_DS; disp_i->addr_displacement=0; disp_i->displacement_size=0; disp_i->index=-1; disp_i->base=6; disp_i->scale=0; disp_i->rm_addr=pDisCPU->gen_reg[disp_i->base].erx; DispTranDis(&op->addr,disp_i,eip); break; // Memory addressed by the ES:DI register pair (for example, MOVS, CMPS, INS, //STOS, or SCAS). case D__Yb:if (op->opersize==0) op->opersize = SIZE_b; case D__rYb:if (op->opersize==0) op->opersize = SIZE_b; case D__wYb:if (op->opersize==0) op->opersize = SIZE_b; case D__Yw:if (op->opersize==0) op->opersize = SIZE_w; case D__rYw:if (op->opersize==0) op->opersize = SIZE_w; case D__wYw:if (op->opersize==0) op->opersize = SIZE_w; case D__Yv:if (op->opersize==0) op->opersize = SIZE_v; case D__rYv:if (op->opersize==0) op->opersize = SIZE_v; case D__wYv:if (op->opersize==0) op->opersize = SIZE_v; case D__Yd:if (op->opersize==0) op->opersize = SIZE_d; case D__rYd:if (op->opersize==0) op->opersize = SIZE_d; case D__wYd:if (op->opersize==0) op->opersize = SIZE_d; case D__Yz:if (op->opersize==0) op->opersize = SIZE_z; case D__rYz:if (op->opersize==0) op->opersize = SIZE_z; case D__wYz:if (op->opersize==0) op->opersize = SIZE_z; opimmedlength = 0; op->mode=mode_address; disp_i->seg=I_ES; disp_i->addr_displacement=0; disp_i->displacement_size=0; disp_i->index=-1; disp_i->base=7; disp_i->scale=0; disp_i->rm_addr=pDisCPU->gen_reg[disp_i->base].erx; DispTranDis(&op->addr,disp_i,eip); break; // When an operand is a specific register encoded in the opcode, the register is identified by its // name (for example, AX, CL, or ESI). The name of the register indicates whether the register is // 32, 16, or 8 bits wide. A register identifier of the form eXX is used when the width of the register // depends on the operand-size attribute. For example, eAX indicates that the AX register is used // when the operand-size attribute is 16, and the EAX register is used when the operand-size at-tribute // is 32. case D__AL: case D__CL: case D__DL: case D__BL: case D__AH: case D__CH: case D__DH: case D__BH: op->mode = mode_register; op->opersize = SIZE_b; op->reg.reg_index = opdata - D__AL; strcpy(op->string,RegByte[opdata-D__AL]); break; case D__AL_r8L: case D__CL_r9L: case D__DL_r10L: case D__BL_r11L: case D__AH_r12L: case D__CH_r13L: case D__DH_r14L: case D__BH_r15L: op->mode = mode_register; op->opersize = SIZE_b; op->reg.reg_index = (opdata - D__AL_r8L)|((disp_i->rex_prefix & 1) << 3) ; if(disp_i->mode==BIT64) strcpy(op->string,RegByteFor64bit[op->reg.reg_index]); else strcpy(op->string,RegByte[op->reg.reg_index]); break; case D__AX: case D__CX: case D__DX: case D__BX: case D__SP: case D__BP: case D__SI: case D__DI: op->mode = mode_register; op->opersize = SIZE_w; op->reg.reg_index = opdata - D__AX; strcpy(op->string,RegWord[op->reg.reg_index]); break; case D__eAX: case D__eCX: case D__eDX: case D__eBX: case D__eSP: case D__eBP: case D__eSI: case D__eDI: op->mode = mode_register; op->opersize = SIZE_v; op->reg.reg_index = opdata - D__eAX; if (op->opersize==SIZE_w) strcpy(op->string,RegWord[opdata-D__eAX]); else strcpy(op->string,RegDWord[opdata-D__eAX]); break; case D__rAX_r8: case D__rCX_r9: case D__rDX_r10: case D__rBX_r11: case D__rSP_r12: case D__rBP_r13: case D__rSI_r14: case D__rDI_r15: op->mode = mode_register; op->opersize = SIZE_v; op->reg.reg_index = opdata - D__rAX_r8 | ((disp_i->rex_prefix & 1) << 3); if (op->opersize==SIZE_w) strcpy(op->string,RegWord[op->reg.reg_index]); else if (op->opersize==SIZE_d) strcpy(op->string,RegDWord[op->reg.reg_index]); else if (op->opersize == SIZE_q) strcpy(op->string,RegQWord[op->reg.reg_index]); break; case D__rAX: case D__rCX: case D__rDX: case D__rBX: case D__rSP: case D__rBP: case D__rSI: case D__rDI: op->mode = mode_register; op->opersize = SIZE_v; op->reg.reg_index = opdata - D__rAX; if (op->opersize==SIZE_w) strcpy(op->string,RegWord[opdata-D__rAX]); else if(op->opersize == SIZE_d) strcpy(op->string,RegDWord[opdata-D__rAX]); else if(op->opersize == SIZE_q) strcpy(op->string,RegQWord[opdata-D__rAX]); break; case D__EAX: case D__ECX: case D__EDX: case D__EBX: case D__ESP: case D__EBP: case D__ESI: case D__EDI: op->mode = mode_register; op->opersize = SIZE_d; op->reg.reg_index = opdata - D__EAX; strcpy(op->string,RegDWord[opdata-D__EAX]); break; case D__RAX_EAX_R8_R8D: case D__RCX_ECX_R9_R9D: case D__RDX_EDX_R10_R10D: case D__RBX_EBX_R11_R11D: case D__RSP_ESP_R12_R12D: case D__RBP_EBP_R13_R13D: case D__RSI_ESI_R14_R14D: case D__RDI_EDI_R15_R15D: op->mode = mode_register; op->reg.reg_index = (opdata - D__RAX_EAX_R8_R8D) | ((disp_i->rex_prefix & 1) << 3) ; if(disp_i->os_32==BIT64) { op->opersize=SIZE_q; strcpy(op->string,RegQWord[op->reg.reg_index]); } else { op->opersize=SIZE_d; strcpy(op->string,RegDWord[op->reg.reg_index]); } break; case D__ES: case D__CS: case D__SS: case D__DS: case D__FS: case D__GS: op->mode = mode_segment; op->opersize = SIZE_w; op->reg.reg_index = opdata - D__ES; strcpy(op->string,SegReg[opdata-D__ES]); break; case D__st: op->mode = mode_register; op->opersize = SIZE_t; op->reg.reg_index = 0; strcpy(op->string,"ST"); break; case D__st0: case D__st1: case D__st2: case D__st3: case D__st4: case D__st5: case D__st6: case D__st7: op->mode = mode_register; op->opersize = SIZE_t; op->reg.reg_index = opdata - D__st0; sprintf(op->string,"ST(%x)",opdata-D__st0); break; // A ModR/M byte follows the opcode and specifies the operand. The operand is either a // general-purpose register or a memory address. If it is a memory address, the address is // computed from a segment register and any of the following values: a base register, an // index register, a scaling factor, a displacement. case D__Eb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rEb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ; case D__wEb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_WRITE; case D__rwEb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_WRITE; case D__Ew: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rEw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ; case D__wEw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_WRITE; case D__rwEw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_WRITE|RWFLG_WRITE; case D__Ev: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rEv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ; case D__wEv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_WRITE; case D__rwEv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_WRITE|RWFLG_WRITE; case D__Ed: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rEd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ; case D__wEd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_WRITE; case D__rwEd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Ep: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rEp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_READ; case D__wEp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_WRITE; case D__rwEp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_READ|RWFLG_WRITE; if (disp_i->mod==3) { if (opdata==D__Ep||opdata==D__rEp) { return 0-1; } else { op->mode = mode_register; } k = disp_i->rm; op->reg.reg_index = (int)k; if (op->opersize==SIZE_b) { if(disp_i->mode==BIT64&&disp_i->rex_prefix) strcpy(op->string,RegByteFor64bit[k]); else strcpy(op->string,RegByte[k]); } else if (op->opersize==SIZE_w) strcpy(op->string,RegWord[k]); else if (op->opersize==SIZE_d) strcpy(op->string,RegDWord[k]); else if (op->opersize==SIZE_q) strcpy(op->string,RegQWord[k]); } else { op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); } break; case D__Ey: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rEy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ; case D__wEy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_WRITE; case D__rwEy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ|RWFLG_WRITE; if (disp_i->mod==3) { op->mode = mode_register; k = disp_i->rm; op->reg.reg_index = (int)k; //if(disp_i->mode==BIT64) // op->opersize=SIZE_q; if (op->opersize==SIZE_d) strcpy(op->string,RegDWord[k]); else //if (op->opersize==SIZE_q) strcpy(op->string,RegQWord[k]); } else { op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); } break; // The ModR/M byte may refer only to memory (for example, BOUND, LES, LDS, LSS, // LFS, LGS, CMPXCHG8B). case D__M: if (op->opersize==0)op->opersize = 0-1,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rM: if (op->opersize==0)op->opersize = 0-1,op->rwflag = RWFLG_READ; case D__wM: if (op->opersize==0)op->opersize = 0-1,op->rwflag = RWFLG_WRITE; case D__rwM: if (op->opersize==0)op->opersize = 0-1,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Ma: if (op->opersize==0)op->opersize = SIZE_a,op->rwflag = RWFLG_READ|RWFLG_WRITE; //read|write case D__rMa: if (op->opersize==0)op->opersize = SIZE_a,op->rwflag = RWFLG_READ; case D__wMa: if (op->opersize==0)op->opersize = SIZE_a,op->rwflag = RWFLG_WRITE; case D__rwMa: if (op->opersize==0)op->opersize = SIZE_a,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Mb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ; case D__wMb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_WRITE; case D__rwMb: if (op->opersize==0)op->opersize = SIZE_b,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Mp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_READ; case D__wMp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_WRITE; case D__rwMp: if (op->opersize==0)op->opersize = SIZE_p,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Ms: if (op->opersize==0)op->opersize = SIZE_s,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMs: if (op->opersize==0)op->opersize = SIZE_s,op->rwflag = RWFLG_READ; case D__wMs: if (op->opersize==0)op->opersize = SIZE_s,op->rwflag = RWFLG_WRITE; case D__rwMs: if (op->opersize==0)op->opersize = SIZE_s,op->rwflag = RWFLG_WRITE; case D__Mq: if (op->opersize==0)op->opersize = SIZE_q,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMq: if (op->opersize==0)op->opersize = SIZE_q,op->rwflag = RWFLG_READ; case D__wMq: if (op->opersize==0)op->opersize = SIZE_q,op->rwflag = RWFLG_WRITE; case D__rwMq: if (op->opersize==0)op->opersize = SIZE_q,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Mw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ; case D__wMw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_WRITE; case D__rwMw: if (op->opersize==0)op->opersize = SIZE_w,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Md: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ; case D__wMd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_WRITE; case D__rwMd: if (op->opersize==0)op->opersize = SIZE_d,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__My: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ; case D__wMy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_WRITE; case D__rwMy: if (op->opersize==0)op->opersize = SIZE_y,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Mv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ; case D__wMv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_WRITE; case D__rwMv: if (op->opersize==0)op->opersize = SIZE_v,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__Mdq: if (op->opersize==0) op->opersize = SIZE_dq; case D__rMdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ; case D__wMdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_WRITE; case D__rwMdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ|RWFLG_WRITE; case D__Mpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ|RWFLG_WRITE; case D__rMpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ; case D__wMpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_WRITE; case D__rwMpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ|RWFLG_WRITE; case D__Mps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ|RWFLG_WRITE; case D__rMps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ; case D__wMps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_WRITE; case D__rwMps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ|RWFLG_WRITE; if (disp_i->mod==3) { return 0-1; } op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); break; case D__MqMdq: if (op->opersize==0)op->opersize = (disp_i->rex_prefix &0x8)?SIZE_dq:SIZE_q,op->rwflag = RWFLG_READ|RWFLG_WRITE; case D__rMqMdq: if (op->opersize==0)op->opersize = (disp_i->rex_prefix &0x8)?SIZE_dq:SIZE_q,op->rwflag = RWFLG_READ; case D__wMqMdq: if (op->opersize==0)op->opersize = (disp_i->rex_prefix &0x8)?SIZE_dq:SIZE_q,op->rwflag = RWFLG_WRITE; case D__rwMqMdq: if (op->opersize==0)op->opersize = (disp_i->rex_prefix &0x8)?SIZE_dq:SIZE_q,op->rwflag = RWFLG_READ|RWFLG_WRITE; if (disp_i->mod==3) { return 0-1; } op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); break; //case D__MwRv: if (op->opersize==0)op->opersize = (disp_i->mod==3)?SIZE_v:SIZE_w,op->rwflag = RWFLG_READ|RWFLG_WRITE; //case D__rMwRv: if (op->opersize==0)op->opersize = (disp_i->mod==3)?SIZE_v:SIZE_w,op->rwflag = RWFLG_READ; case D__wMwRv: if (op->opersize==0)op->opersize = (disp_i->mod==3)?SIZE_v:SIZE_w,op->rwflag = RWFLG_WRITE; //case D__rwMwRv: if (op->opersize==0)op->opersize = (disp_i->mod==3)?SIZE_v:SIZE_w,op->rwflag = RWFLG_READ|RWFLG_WRITE; if (disp_i->mod==3) { op->mode = mode_register; k = disp_i->rm; op->reg.reg_index = (int)k; if (op->opersize==SIZE_w) strcpy(op->string,RegWord[k]); else if (op->opersize==SIZE_d) strcpy(op->string,RegDWord[k]); else if (op->opersize==SIZE_q) strcpy(op->string,RegQWord[k]); } else { op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); } break; // A ModR/M byte follows the opcode and specifies the operand. The operand is either // an MMX?technology register or a memory address. If it is a memory address, the ad-dress // is computed from a segment register and any of the following values: a base reg-ister, // an index register, a scaling factor, and a displacement. case D__Qd: if (op->opersize==0) op->opersize = SIZE_d; case D__rQd: if (op->opersize==0) op->opersize = SIZE_d,op->rwflag=RWFLG_READ;; case D__wQd: if (op->opersize==0) op->opersize = SIZE_d,op->rwflag=RWFLG_WRITE;; case D__rwQd: if (op->opersize==0) op->opersize = SIZE_d,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Qq: if (op->opersize==0) op->opersize = SIZE_q; case D__rQq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ;; case D__wQq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_WRITE;; case D__rwQq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Qpi: if (op->opersize==0) op->opersize = SIZE_pi; case D__rQpi: if (op->opersize==0) op->opersize = SIZE_pi,op->rwflag=RWFLG_READ;; case D__wQpi: if (op->opersize==0) op->opersize = SIZE_pi,op->rwflag=RWFLG_WRITE;; case D__rwQpi: if (op->opersize==0) op->opersize = SIZE_pi,op->rwflag=RWFLG_READ|RWFLG_WRITE;; if (disp_i->mod==3) { op->mode = mode_register; op->reg.reg_index = disp_i->rm; strcpy(op->string,RegMMXQWord[(disp_i->rm)&0x7]); } else { op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); } break; case D__Ups: if (op->opersize==0) op->opersize = SIZE_ps; case D__rUps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ;; case D__wUps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_WRITE;; case D__rwUps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Upd: if (op->opersize==0) op->opersize = SIZE_pd; case D__rUpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ;; case D__wUpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_WRITE;; case D__rwUpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Udq: if (op->opersize==0) op->opersize = SIZE_dq; case D__rUdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ;; case D__wUdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_WRITE;; case D__rwUdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ|RWFLG_WRITE;; if (disp_i->mod!=3) return 0-1; op->mode = mode_register; op->reg.reg_index = disp_i->rm; sprintf(op->string,RegXMMOWord[disp_i->rm]); break; // An ModR/M byte follows the opcode and specifies the operand. The operand is either // a SIMD floating-point register or a memory address. If it is a memory address, the ad-dress // is computed from a segment register and any of the following values: a base reg-ister, // an index register, a scaling factor, and a displacement case D__Wq: if (op->opersize==0) op->opersize = SIZE_q; case D__rWq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ; case D__wWq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_WRITE; case D__rwWq: if (op->opersize==0) op->opersize = SIZE_q,op->rwflag=RWFLG_READ|RWFLG_WRITE; case D__Wdq: if (op->opersize==0) op->opersize = SIZE_dq; case D__rWdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ;; case D__wWdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_WRITE;; case D__rwWdq: if (op->opersize==0) op->opersize = SIZE_dq,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Wps: if (op->opersize==0) op->opersize = SIZE_ps; case D__rWps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ;; case D__wWps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_WRITE;; case D__rwWps: if (op->opersize==0) op->opersize = SIZE_ps,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Wss: if (op->opersize==0) op->opersize = SIZE_ss; case D__rWss: if (op->opersize==0) op->opersize = SIZE_ss,op->rwflag=RWFLG_READ;; case D__wWss: if (op->opersize==0) op->opersize = SIZE_ss,op->rwflag=RWFLG_WRITE;; case D__rwWss: if (op->opersize==0) op->opersize = SIZE_ss,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Wpd: if (op->opersize==0) op->opersize = SIZE_pd; case D__rWpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ;; case D__wWpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_WRITE;; case D__rwWpd: if (op->opersize==0) op->opersize = SIZE_pd,op->rwflag=RWFLG_READ|RWFLG_WRITE;; case D__Wsd: if (op->opersize==0) op->opersize = SIZE_sd; case D__rWsd: if (op->opersize==0) op->opersize = SIZE_sd,op->rwflag=RWFLG_READ;; case D__wWsd: if (op->opersize==0) op->opersize = SIZE_sd,op->rwflag=RWFLG_WRITE;; case D__rwWsd: if (op->opersize==0) op->opersize = SIZE_sd,op->rwflag=RWFLG_READ|RWFLG_WRITE;; if (disp_i->mod==3) { op->mode = mode_register; op->reg.reg_index = disp_i->rm; strcpy(op->string,RegXMMOWord[disp_i->rm]); } else { op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); } break; case D__word_int: if (op->opersize==0) op->opersize = SIZE_w; case D__dword_int: if (op->opersize==0) op->opersize = SIZE_d; case D__qword_int: if (op->opersize==0) op->opersize = SIZE_q; case D__single_real: if (op->opersize==0) op->opersize = SIZE_d; case D__double_real: if (op->opersize==0) op->opersize = SIZE_q; case D__extend_real: if (op->opersize==0) op->opersize = SIZE_t; case D__packed_BCD: if (op->opersize==0) op->opersize = SIZE_t; case D__2b: if (op->opersize==0) op->opersize = SIZE_w; case D__14_28b: if (op->opersize==0) op->opersize = SIZE_t; case D__98_108b: if (op->opersize==0) op->opersize = SIZE_t; if (disp_i->mod==3) { return 0-1; } else { op->mode = mode_address; DispTranDis(&op->addr,disp_i,eip); } break; default: opimmedlength = 0; op->mode = mode_invalid; op->opersize = 0; } return opimmedlength; } int ProcessOpdata_immde(int opdata,BYTE *inbuff,DISP_INSTRUCTION_T *disp_i) { int opimmedlength; int SIZE_c,SIZE_v,SIZE_p,SIZE_z; switch(disp_i->os_32) { case BIT32: SIZE_v = 4; SIZE_c = 2; SIZE_p = 6; SIZE_z = 4; break; case BIT16: SIZE_v = 2; SIZE_c = 1; SIZE_p = 4; SIZE_z = 2; break; case BIT64: SIZE_v = 8; SIZE_c = 2; SIZE_p = 10; SIZE_z = 4; break; } opimmedlength = 0; switch(opdata) { case D__1: disp_i->Ib = 1; break; // Immediate data. The operand value is encoded in subsequent bytes of the instruction. // The instruction contains a relative offset to be added to the instruction pointer register // (for example, JMP (0E9), LOOP). case D__Jb: case D__Ib: case D__sIb: opimmedlength = SIZE_b; disp_i->Ib = GetValue_b(inbuff); break; case D__Ib2: opimmedlength = SIZE_b; disp_i->Ib2 = GetValue_b(inbuff); break; case D__Iw: opimmedlength = SIZE_w; disp_i->Iw = GetValue_w(inbuff); break; case D__Iv: opimmedlength = SIZE_v; switch(SIZE_v) { case SIZE_w: disp_i->Iw = GetValue_w(inbuff); break; case SIZE_d: disp_i->Id = GetValue_d(inbuff); break; case SIZE_q: disp_i->Iq = GetValue_q(inbuff); break; } break; case D__Jz: case D__Iz: opimmedlength = SIZE_z; if (SIZE_z==SIZE_w) { disp_i->Iw = GetValue_w(inbuff); } else { disp_i->Id = GetValue_d(inbuff); } break; // The instruction has no ModR/M byte; the offset of the operand is coded as a word or // double word (depending on address size attribute) in the instruction. No base register, // index register, or scaling factor can be applied (for example, MOV (A0-A3)). case D__Ob: case D__rOb: case D__wOb: case D__rwOb: case D__Ov: case D__rOv: case D__wOv: case D__rwOv: if (disp_i->as_32==BIT64) { opimmedlength = 8; disp_i->Iq = GetValue_q(inbuff); } else if (disp_i->as_32==BIT32) { opimmedlength = 4; disp_i->Id = GetValue_d(inbuff); } else { opimmedlength = 2; disp_i->Iw = GetValue_w(inbuff); } break; case D__Ap: opimmedlength = SIZE_v+2; if (SIZE_v==SIZE_w) { disp_i->Iw = GetValue_w(inbuff); disp_i->Iw2 = GetValue_w(inbuff+2); } else { disp_i->Id = GetValue_d(inbuff); disp_i->Iw2 = GetValue_w(inbuff+4); } break; } return opimmedlength; } int PutStr(char *buff,char *s) { int i; for (i=0;s[i]!='\0';i++) buff[i] = s[i]; return i; } int PrintPasm(INSTRUCTION_INFORMATION *pInstInfo,char *pasm,int u_x1,int u_x2) { int i,length; char buff[0x20]; char **preg; for (i=0;i<=0x50;i++) pasm[i]=' '; pasm[i]='\0'; length = u_x1; if (pInstInfo->Lock!=-1) { i = PutStr(pasm+length,pInstInfo->LockName); if (i) length += i+1; } if (pInstInfo->Repeat!=-1) { i = PutStr(pasm+length,pInstInfo->RepeatName); if (i) length += i+1; } length += PutStr(pasm+length,pInstInfo->Name); OPERAND_ITEM *op = pInstInfo->op; bool brsp=false; for(int ii=0;ii<3;ii++) { if(op[ii].mode==mode_register && (op[ii].opersize==4 || op[ii].opersize==8)) { if(op[ii].reg.reg_index==4) { brsp=true; break; } } } for (i=0;i<3&&op->mode!=mode_invalid;i++,op++) { if (i==0) { if (length0) length +=PutStr(pasm+length,","); if (op->mode==mode_address) { if (pInstInfo->xxxxptr!=-1&&pInstInfo->xxxxptr!=0) { length += PutStr(pasm+length,xxxxptr[pInstInfo->xxxxptr]); length += PutStr(pasm+length," PTR "); } if (pInstInfo->SegmentPrefix!=-1) { length += PutStr(pasm+length,SegReg[pInstInfo->SegmentPrefix]); length += PutStr(pasm+length,":"); } if (op->addr.address_size==BIT32) preg = RegDWord; else if(op->addr.address_size==BIT64) preg = RegQWord; else preg = RegWord; //if(!(op->addr.base==-1 && op->addr.index==-1 && brsp)) length += PutStr(pasm+length,"["); if (op->addr.base!=-1) length += PutStr(pasm+length,preg[op->addr.base]); if (op->addr.index!=-1) { if (op->addr.base!=-1) length += PutStr(pasm+length,"+"); length += PutStr(pasm+length,preg[op->addr.index]); if (op->addr.scale>0) { sprintf(buff,"*%1x",1<addr.scale); length += PutStr(pasm+length,buff); } } if (op->addr.displacement_size>=1&&(op->addr.base!=-1||op->addr.index!=-1)) if(!(op->addr.displacement_size==1 && op->addr.displacement==0)) length += PutStr(pasm+length,"+"); if (op->addr.displacement_size==1) { if(op->addr.displacement) if (op->addr.displacement>=sign_BYTE) { length--; sprintf(buff,"-%X",(BYTE)(0-op->addr.displacement)); } else sprintf(buff,"%X",(BYTE)op->addr.displacement); else buff[0]=0; length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==2) { sprintf(buff,"%04X",op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==4) { sprintf(buff,"%08X",(DWORD)op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==8) { sprintf(buff,"%08X",(DWORD)op->addr.displacement); length += PutStr(pasm+length,buff); //sprintf(buff,"%llX",(QWORD)op->addr.displacement); //length += PutStr(pasm+length,buff); } length += PutStr(pasm+length,"]"); } else length +=PutStr(pasm+length,op->string); } pasm[length] = '\0'; for(int m=0;m='A' && pasm[m]<='Z') pasm[m]+=0x20; return length; } int PrintPasmForIDA(INSTRUCTION_INFORMATION *pInstInfo,char *pasm,int u_x1,int u_x2) { int i,length; char buff[0x20]; char **preg; for (i=0;i<=0x50;i++) pasm[i]=' '; pasm[i]='\0'; length = u_x1; if (pInstInfo->Lock!=-1) { i = PutStr(pasm+length,pInstInfo->LockName); if (i) length += i+1; } if (pInstInfo->Repeat!=-1) { i = PutStr(pasm+length,pInstInfo->RepeatName); if (i) length += i+1; } length += PutStr(pasm+length,pInstInfo->Name); OPERAND_ITEM *op = pInstInfo->op; bool brsp=false; for(int ii=0;ii<3;ii++) { if(op[ii].mode==mode_register && (op[ii].opersize==4 || op[ii].opersize==8)) { if(op[ii].reg.reg_index==4) { brsp=true; break; } } } for (i=0;i<3&&op->mode!=mode_invalid;i++,op++) { if (i==0) { if (length0) length +=PutStr(pasm+length,", "); if (op->mode==mode_address) { if (pInstInfo->xxxxptr!=-1&&pInstInfo->xxxxptr!=0) { length += PutStr(pasm+length,xxxxptr[pInstInfo->xxxxptr]); length += PutStr(pasm+length," PTR "); } if (pInstInfo->SegmentPrefix!=-1) { length += PutStr(pasm+length,SegReg[pInstInfo->SegmentPrefix]); length += PutStr(pasm+length,":"); } if (op->addr.address_size==BIT32) preg = RegDWord; else if(op->addr.address_size==BIT64) preg = RegQWord; else preg = RegWord; //if(!brsp && op->addr.base==-1 && op->addr.displacement_size) if(op->addr.base==-1 && op->addr.displacement_size) { if (op->addr.displacement_size==1) { if (op->addr.displacement>=sign_BYTE) sprintf(buff,"-%X",(BYTE)(0-op->addr.displacement)); else sprintf(buff,"+%X",(BYTE)op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==2) { sprintf(buff,"%04X",op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==4) { if(op->addr.address_size==BIT64) { sprintf(buff,"0%I64X",(QWORD)op->addr.displacement); if(buff[1]>='A' && buff[1]<='F') length += PutStr(pasm+length,buff); else length += PutStr(pasm+length,buff+1); } else { sprintf(buff,"0%X",(DWORD)op->addr.displacement); if(buff[1]>='A' && buff[1]<='F') length += PutStr(pasm+length,buff); else length += PutStr(pasm+length,buff+1); } } else if(op->addr.displacement_size==8) { sprintf(buff,"0%llX",(QWORD)op->addr.displacement); if(buff[1]>='A' && buff[1]<='F') length += PutStr(pasm+length,buff); else length += PutStr(pasm+length,buff+1); } if(op->addr.index!=-1) { length += PutStr(pasm+length,"["); if (op->addr.base!=-1) length += PutStr(pasm+length,"+"); length += PutStr(pasm+length,preg[op->addr.index]); if (op->addr.scale>0) { sprintf(buff,"*%1x",1<addr.scale); length += PutStr(pasm+length,buff); } length += PutStr(pasm+length,"]"); } } else { if(!(op->addr.base==-1 && op->addr.index==-1 && brsp)) length += PutStr(pasm+length,"["); if (op->addr.base!=-1) length += PutStr(pasm+length,preg[op->addr.base]); if (op->addr.index!=-1) { if (op->addr.base!=-1) length += PutStr(pasm+length,"+"); length += PutStr(pasm+length,preg[op->addr.index]); if (op->addr.scale>0) { sprintf(buff,"*%1x",1<addr.scale); length += PutStr(pasm+length,buff); } } //if (op->addr.displacement_size>=2&&(op->addr.base!=-1||op->addr.index!=-1)) // length += PutStr(pasm+length,"+"); if (op->addr.displacement_size==1) { if (op->addr.displacement>=sign_BYTE) sprintf(buff,"-%X",(BYTE)(0-op->addr.displacement)); else sprintf(buff,"+%X",(BYTE)op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==2) { sprintf(buff,"%04X",op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==4) { if (op->addr.displacement>=sign_DWORD) sprintf(buff,"-%X",(DWORD)(0-op->addr.displacement)); else sprintf(buff,"+%X",(DWORD)op->addr.displacement); length += PutStr(pasm+length,buff); } else if (op->addr.displacement_size==8) { sprintf(buff,"%llX",(QWORD)op->addr.displacement); length += PutStr(pasm+length,buff); } length += PutStr(pasm+length,"]"); } } else length +=PutStr(pasm+length,op->string); } pasm[length] = '\0'; for(int m=0;m='A' && pasm[m]<='Z') pasm[m]+=0x20; return length; } void WriteEmblem(char *s) { int i; if (s==NULL) return; for (i=0;Emblem[i]!=NULL;i++) { if (strcmp(s,Emblem[i])==0) break; } if (Emblem[i]==NULL) Emblem[i] = s; if (i>=0x200) { //tang add MessageBox(NULL,"Emblem","洢ռ̫С",MB_OK); } } void ReadIntelName(char *s,int num) { int i; DIS_OPCODE_T *p = (DIS_OPCODE_T*)s; for (i=0;iIs3DNow=-1; GET_OPCODE: if (ByteCount>=0x0f) return 0; disp_i.b1 = inbuff[ByteCount++]; pIntelOpcode = Group_main + disp_i.b1; if(BIT64 == mode && (disp_i.b1 >=0x40 && disp_i.b1 <=0x4f)) { disp_i.rex_prefix = disp_i.b1; pIntelOpcode=RexPrefixFor64Bit+0; } GET_OPATTR: OpcodeType = pIntelOpcode->OpcodeType; switch(OpcodeType) { case C_REX_PREFIX: disp_i.perfix_len++; if(disp_i.rex_prefix & 0x8) { disp_i.os_32 = BIT64; OperatorSize=disp_i.os_32; } goto GET_OPCODE; case C_ES:case C_CS:case C_SS: case C_DS:case C_FS:case C_GS: disp_i.perfix_len++; Segment = OpcodeType-C_ES; disp_i.rex_prefix=0; disp_i.mandatory_used=0; goto GET_OPCODE; case C_OPER: switch(mode) { case BIT16: disp_i.os_32 = BIT32; break; case BIT32: case BIT64: disp_i.os_32 = BIT16; break; } disp_i.perfix_len++; disp_i.mandatory_used=1; disp_i.rex_prefix=0; goto GET_OPCODE; case C_ADDR: switch(mode) { case BIT32: disp_i.as_32 = BIT16; break; case BIT16: case BIT64: disp_i.as_32 = BIT32; break; } disp_i.perfix_len++; disp_i.mandatory_used=0; disp_i.rex_prefix=0; goto GET_OPCODE; case C_LOCK: disp_i.lock = 0xf0; disp_i.perfix_len++; disp_i.mandatory_used=0; disp_i.rex_prefix=0; goto GET_OPCODE; case C_REPN: disp_i.perfix_len++; disp_i.rep_used = 0xf2; disp_i.mandatory_used=2; disp_i.rex_prefix=0; goto GET_OPCODE; case C_REPZ: disp_i.rep_used = 0xf3; disp_i.mandatory_used=3; disp_i.perfix_len++; disp_i.rex_prefix=0; goto GET_OPCODE; case C_ESC: disp_i.opcode_len=2; if (inbuff[ByteCount]<0xc0) pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + ((inbuff[ByteCount]>>3)&0x07); else pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name+0x08 + inbuff[ByteCount++] - 0xc0; break; case C_3BYTE_0X38: disp_i.opcode_len=3; disp_i.b1 = inbuff[ByteCount++]; pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + disp_i.b1; goto GET_OPATTR; case C_3BYTE_0X3A: disp_i.opcode_len=3; disp_i.b1 = inbuff[ByteCount++]; pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + disp_i.b1; goto GET_OPATTR; case C_2BYTE: disp_i.opcode_len=2; disp_i.b1 = inbuff[ByteCount++]; pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + disp_i.b1; goto GET_OPATTR; case C_GRP: pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name +((inbuff[ByteCount]>>3)&0x07); break; case C_GRP5: pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name +((inbuff[ByteCount]>>3)&0x07); if(pIntelOpcode->OpcodeType==C_GRP3) { pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name+disp_i.mandatory_used; if(disp_i.mandatory_used==2 || disp_i.mandatory_used==3) disp_i.rep_used=0-1; else if(disp_i.mandatory_used==1) disp_i.os_32=OperatorSize; } break; case C_GRP1: if (inbuff[ByteCount]<0xc0) pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + ((inbuff[ByteCount]>>3)&0x07); else pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + 0x8 + ((inbuff[ByteCount]>>3)&0x07); break; case C_GRP2: if (inbuff[ByteCount]<0xc0) pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + ((inbuff[ByteCount]>>3)&0x07); else pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name + 0x8 + (((inbuff[ByteCount]>>3)&0x07)*8)+ ((inbuff[ByteCount])&0x07); break; case C_GRP3: pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name+disp_i.mandatory_used; if(disp_i.mandatory_used==2 || disp_i.mandatory_used==3) disp_i.rep_used=0-1; else if(disp_i.mandatory_used==1) disp_i.os_32=OperatorSize; break; case C_GRP4: if (inbuff[ByteCount]<0xc0)//mod = 0x00 0x01 0x10 pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name+disp_i.mandatory_used; else//mod=0x11 pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name+4+disp_i.mandatory_used; if(disp_i.mandatory_used==2 || disp_i.mandatory_used==3) disp_i.rep_used=0-1; else if(disp_i.mandatory_used==1) disp_i.os_32=OperatorSize; break; case C_GRP6: if(mode == BIT64) pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name+1; else pIntelOpcode = (DIS_OPCODE_T*)pIntelOpcode->name; break; } if (pIntelOpcode->name==NULL) { return 0; } if(BIT64 == mode && pIntelOpcode->Attr & I_64) return 0; if(pIntelOpcode->Attr & O_64 && BIT64 != mode) return 0; if(( pIntelOpcode->Attr & D_64) && BIT64 == mode && disp_i.os_32 == BIT32)//there are some instruction default operator size is fouce 64bit { disp_i.os_32 = BIT64; } if(( pIntelOpcode->Attr & F_64) && BIT64 == mode)//there are some instruction default operator size is fouce 64bit { disp_i.os_32 = BIT64; } disp_i.attr = pIntelOpcode->Attr; disp_i.destination = pIntelOpcode->Opdata1; disp_i.source = pIntelOpcode->Opdata2; disp_i.other = pIntelOpcode->Opdata3; if ((disp_i.attr&R_M)==R_M) { if (disp_i.as_32==BIT16) ByteCount += GetEffectAddress16Dis(DisCPU,inbuff+ByteCount,&disp_i); else ByteCount += GetEffectAddress32Dis(DisCPU,inbuff+ByteCount,&disp_i); } ByteCount += ProcessOpdata_immde(disp_i.destination,inbuff+ByteCount,&disp_i); ByteCount += ProcessOpdata_immde(disp_i.source,inbuff+ByteCount,&disp_i); ByteCount += ProcessOpdata_immde(disp_i.other,inbuff+ByteCount,&disp_i); if (ByteCount>=0x0f) return 0; disp_i.ilen = ByteCount; //-------------------------------------------------------------------- pInstInfo->OpCode = pIntelOpcode->OpcodeType; pInstInfo->OpType = 0; pInstInfo->CodeType = 0; pInstInfo->Length = disp_i.ilen; pInstInfo->Repeat = disp_i.rep_used; pInstInfo->Lock = disp_i.lock; pInstInfo->OpcodeLen=disp_i.opcode_len; pInstInfo->PrefixLen=disp_i.perfix_len; pInstInfo->Have_RegRM=disp_i.have_regrm; pInstInfo->Have_SIB=disp_i.have_sib; pInstInfo->Rex_Prefix=disp_i.rex_prefix; if (!ProcessName_dis(pInstInfo,pIntelOpcode,disp_i.os_32,disp_i.as_32)) return 0; int temp; temp = ProcessOpdata_dis(pIntelOpcode->Opdata1,&pInstInfo->op[0],eip,&disp_i,DisCPU); if (temp==-1) return 0; temp = ProcessOpdata_dis(pIntelOpcode->Opdata2,&pInstInfo->op[1],eip,&disp_i,DisCPU); if (temp==-1) return 0; temp = ProcessOpdata_dis(pIntelOpcode->Opdata3,&pInstInfo->op[2],eip,&disp_i,DisCPU); if (temp==-1) return 0; if (disp_i.seg!=Segment&&Segment!=-1) { pInstInfo->SegmentPrefix = Segment; for (int i=0;i<3;i++) { if (pInstInfo->op[i].mode==mode_address) { pInstInfo->op[i].addr.line_address = pInstInfo->op[i].addr.effect_address + DisCPU->SEG_BASE[Segment]; } } } else { pInstInfo->SegmentPrefix = 0-1; for (int i=0;i<3;i++) { if (pInstInfo->op[i].mode==mode_address) { pInstInfo->op[i].addr.line_address = pInstInfo->op[i].addr.effect_address + DisCPU->SEG_BASE[disp_i.seg]; } } } /* if (pInstInfo->op[0].mode==mode_address&&pInstInfo->op[0].opersize!=0&& (pInstInfo->op[1].mode==mode_immed||pInstInfo->op[1].mode==mode_invalid) ) { pInstInfo->xxxxptr = pInstInfo->op[0].opersize; } else { pInstInfo->xxxxptr = 0-1; } if (pInstInfo->op[1].mode==mode_address&&pInstInfo->op[1].opersize!=0&&pInstInfo->op[1].opersize < pInstInfo->op[0].opersize) { pInstInfo->xxxxptr = pInstInfo->op[1].opersize; } else { if(pInstInfo->op[1].mode!=mode_invalid) pInstInfo->xxxxptr = 0-1; } */ pInstInfo->xxxxptr=-1; if(pInstInfo->OpCode==C_3DNOW) { temp = GetValue_b(inbuff+ByteCount); if(Group0x0f0f[(temp&0xff)].OpcodeType==C_NULL||Group0x0f0f[(temp&0xff)].name==NULL) return 0; strcpy(pInstInfo->Name,Group0x0f0f[(temp&0xff)].name); pInstInfo->Length++; ByteCount++; pInstInfo->OpCode=Group0x0f0f[(temp&0xff)].OpcodeType; pInstInfo->Is3DNow=1; } if(pInstInfo->OpCode==C_XCHG_NOP) { if(pInstInfo->op[1].reg.reg_index==0) { if(disp_i.mandatory_used==3&&disp_i.rex_prefix==0) { pInstInfo->OpCode=C_PAUSE; pInstInfo->Repeat=-1; strcpy(pInstInfo->Name,"PAUSE"); pInstInfo->op[0].mode=mode_invalid; pInstInfo->op[1].mode=mode_invalid; } else if(pInstInfo->PrefixLen==0) { pInstInfo->OpCode=C_NOP; strcpy(pInstInfo->Name,"NOP"); pInstInfo->op[0].mode=mode_invalid; pInstInfo->op[1].mode=mode_invalid; } else pInstInfo->OpCode=C_XCHG; } else { pInstInfo->OpCode=C_XCHG; } } if (pInstInfo->pasm!=NULL) { pInstInfo->U_x3 = PrintPasm(pInstInfo,pInstInfo->pasm, pInstInfo->U_x1,pInstInfo->U_x2); } return ByteCount; } //ģ顪 //---------------------------------------------------------------------- //---------------------------------------------------------------------- //---------------------------------------------------------------------- //ģ顪 void PutCode_b(ASSEMBLY_INFOMATION *pasm_info,BYTE value) { SetValue_b(pasm_info->CodeBuff+pasm_info->InstLength,value); pasm_info->InstLength += 1; } void PutCode_w(ASSEMBLY_INFOMATION *pasm_info,WORD value) { SetValue_w(pasm_info->CodeBuff+pasm_info->InstLength,value); pasm_info->InstLength += 2; } void PutCode_d(ASSEMBLY_INFOMATION *pasm_info,DWORD value) { SetValue_d(pasm_info->CodeBuff+pasm_info->InstLength,value); pasm_info->InstLength += 4; } DWORD ProcessParameter(char * px,POPER_ITEM op) { int i,j,k,ii; DWORD v1,v2; v1=v2=0; char s1[0x80]; op->mode=OP_Invalid; op->opersize=0; op->prefix_size=-1; op->addr.seg_index=0xff; op->addr.off_value=0; if (px[0]=='\0') { op->mode=OP_Invalid; return 0; } //Get string i = 0; if (px[i]=='\''||px[i]=='"') { for (i++,j=0;px[i]!=px[0]&&px[i]!='\0';j++,i++) op->string[j] = px[i]; if (px[i]==px[0]) { op->string[j]='\0'; i++; op->mode = OP_String; return 0; } } //Get ES: CS: SS: DS: FS: GS: for (j=0;j<6;j++) { for (i=0;px[i]==SegReg[j][i];i++); if (i==2&&px[i]==':') { op->addr.seg_index=j; px=px+i+1; break; } } // Get ... Xptr for (j=0;j2||OpDataWide[j].Xptr[0]!='F'&&i>1) { for (;px[i]!='[' && px[i]!=' '&& px[i]!='\0' && (px[i]<'0'&& px[i]>'9');i++); if (px[i]==' ') i++; op->opersize=OpDataWide[j].Size; op->prefix_size=OpDataWide[j].Size; px=px+i; break; } } //ES: CS: SS: DS: FS: GS: for (j=0;jaddr.seg_index=j; px=px+i+1; break; } } //OP_Invalid if (px[0]=='\0') { op->mode=OP_Invalid; return 0; } //Register for (i=0;i<8;i++) { if (TStrICmp(px,RegByte[i])==0) { op->opersize=1; op->reg_type=OP_ByteRegister; break; } if (TStrICmp(px,RegWord[i])==0) { op->opersize=2; op->reg_type=OP_WordRegister; break; } if (TStrICmp(px,RegDWord[i])==0) { op->opersize=4; op->reg_type=OP_DwordRegister; break; } if(TStrICmp(px,RegMMXQWord[i])==0) { op->opersize=8; op->reg_type=OP_MMXRegister; break; } if(TStrICmp(px,RegXMMOWord[i])==0) { op->opersize=16; op->reg_type=OP_XMMRegister; break; } if(TStrICmp(px,RegCR[i])==0) { op->opersize=4; op->reg_type=OP_ControlRegister; break; } if(TStrICmp(px,RegDR[i])==0) { op->reg_type=OP_DebugRegister; op->opersize=4; break; } if(TStrICmp(px,RegFPU[i])==0) { op->reg_type=OP_FPURegister; op->opersize=10; break; } } if (i<8) { op->mode=OP_Register; op->reg.reg_index=i; return 0; } if(TStrICmp(px,RegFPU[8])==0) { op->reg_type=OP_FPURegister; op->mode=OP_Register; op->reg.reg_index=8; op->opersize=10; return 0; } //Segment register for (i=0;imode=OP_Segment; op->opersize=2; op->sreg.sreg_index=i; op->reg_type=OP_SegmentRegister; break; } } if (i<6) return 0; i=0; j=0; k=0; if (px[i]=='+'||px[i]=='-') i++; if (px[i]>='0'&&px[i]<='9'||px[i]>='A'&&px[i]<='F') { for ( ;px[i]=='0';i++); for (ii=0;px[i+ii]>='0'&&px[i+ii]<='9'|| px[i+ii]>='A'&&px[i+ii]<='F';ii++); if (px[i+ii]=='\0'&&ii<=0x8) { SHexStrToNum(px,&op->immed.immed_value); //sscanf(px,"%x",&(op->immed.immed_value)); op->mode=OP_Immed; return 0; } if (px[i+ii]==':'&&ii<=0x4) { for (k=i+ii+1;px[k]>='0'&&px[k]<='9'|| px[k]>='A'&&px[k]<='F';k++); if (px[k]=='\0') { op->mode=OP_Far; op->opersize=4; //sscanf(px,"%x:%x",&(op->farptr.segment),&(op->farptr.offset)); char szBuffer[256],*pStr; strcpy(szBuffer,px); pStr=TStrChr(szBuffer,':'); if(pStr==NULL) return 0; *pStr=0; pStr++; SHexStrToNum(szBuffer,&op->farptr.segment); SHexStrToNum(pStr,&op->farptr.offset); return 0; } } if (px[i+ii]=='['&&ii<=0x8) // 4010ac[ebx+ecx] { //sscanf(px,"%x",&(op->addr.off_value)); px[i+ii]=0; SHexStrToNum(px,&(op->addr.off_value)); px[i+ii]='['; i=i+ii; } else i=0; } else i=0; //Get address if (px[i]=='[') { for (ii=1;px[i+ii]!='\0';ii++); ii--; if (px[i+ii]==']') ii--; if (px[i+ii]>='0'&&px[i+ii]<='9'|| px[i+ii]>='A'&&px[i+ii]<='F') { for (;px[i+ii]>='0'&&px[i+ii]<='9'|| px[i+ii]>='A'&&px[i+ii]<='F';ii--); if (px[i+ii]=='*') ii++; if (px[i+ii]=='+'||px[i+ii]=='-') ii--; int oo=0; char tmpchr=0; oo=i+ii+1; for(;px[oo]!=']'&& px[oo];oo++); tmpchr=px[oo]; px[oo]=0; SHexStrToNum(&px[i+ii+1],&v1); px[oo]=tmpchr; op->addr.off_value=op->addr.off_value+v1; } else { //if (ii==0) return 1; } px[i+ii+1]=']'; px[i+ii+2]='\0'; px=px+i; //offset16 or offset32 if (TStrICmp(px,"[]")==0) { op->addr.reg_size=0; op->mode=OP_Address; return 0; } //RegAddr16 for (j=0;jaddr.reg_size=2; op->addr.base_reg_index=j>>2; op->mode=OP_Address; return 0; } } //RegAddr32 [eax] for (j=0;jaddr.reg_size=4; op->addr.base_reg_index=j; op->mode=OP_Address; return 0; } } //Regaddr32 [esp] or [esp+12] or [esp+12345678] if (TStrICmp(px,"[ESP]") == 0) { op->addr.reg_size=6; op->addr.base_reg_index=4; op->addr.off_reg_index=4; op->addr.off_reg_scale=0; op->mode=OP_Address; return 0; } //RegAddr32 [eax+eax*1] for (i=0;i<8;i++) for (j=0;j<8;j++) for (k=0;k<4;k++) { if (j==4) j++; sprintf(s1,"%s%s%s%s%s%c%s","[",RegDWord[i],"+", RegDWord[j],"*",(1<addr.reg_size=6; op->addr.base_reg_index=i; op->addr.off_reg_index=j; op->addr.off_reg_scale=k; op->mode=OP_Address; return 0; } if (k==0) { sprintf(s1,"%s%s%s%s%s","[",RegDWord[i],"+", RegDWord[j],"]"); if (TStrICmp(px,s1)==0) { op->addr.reg_size=6; op->addr.base_reg_index=i; op->addr.off_reg_index=j; op->addr.off_reg_scale=0; op->mode=OP_Address; return 0; } } } return 1; } //Get Invalid op->mode = OP_Invalid; return 1; } DWORD ModeAddress(ASSEMBLY_INFOMATION *pasm_info,POPER_ITEM op,int opsize) { if (op->addr.seg_index!=0xff) pasm_info->SegmentPrefix=SegmentValue[op->addr.seg_index]; if(opsize!=-1 && op->prefix_size!=-1) { if(opsize!=op->opersize) return 1; } if (op->addr.reg_size==0) { pasm_info->pmodr_m->mod = 0; if (pasm_info->CodeMode==BIT32) { pasm_info->AddressSize = 4; pasm_info->pmodr_m->r_m = 5; PutCode_d(pasm_info,(DWORD)(op->addr.off_value)); return 0; } if (op->addr.off_value<=0xffff) { pasm_info->AddressSize=2; pasm_info->pmodr_m->r_m=6; PutCode_w(pasm_info,(WORD)(op->addr.off_value)); } else { pasm_info->AddressSize=4; pasm_info->pmodr_m->r_m=5; PutCode_d(pasm_info,(DWORD)(op->addr.off_value)); } return 0; } if (op->addr.reg_size==2) { pasm_info->AddressSize=2; pasm_info->pmodr_m->r_m=op->addr.base_reg_index; pasm_info->InstLength=pasm_info->InstLength; if (op->addr.off_value==0) { pasm_info->pmodr_m->mod=0; if (op->addr.base_reg_index==6) { pasm_info->pmodr_m->mod=1; PutCode_b(pasm_info,(BYTE)(op->addr.off_value)); } return 0; } if (op->addr.off_value<=0xff||op->addr.off_value>=0xffffff80) { pasm_info->pmodr_m->mod=1; PutCode_b(pasm_info,(BYTE)(op->addr.off_value)); return 0; } if (op->addr.off_value<=0xffff) { pasm_info->pmodr_m->mod=2; PutCode_w(pasm_info,(WORD)(op->addr.off_value)); return 0; } if (op->addr.off_value>0xffff) return 1; } if (op->addr.reg_size==4) { pasm_info->AddressSize=4; pasm_info->pmodr_m->r_m=op->addr.base_reg_index; if (op->addr.off_value==0) { pasm_info->pmodr_m->mod=0; if (op->addr.base_reg_index==5) { pasm_info->pmodr_m->mod=1; PutCode_b(pasm_info,(BYTE)(op->addr.off_value)); } return 0; } if (op->addr.off_value<=0xff||op->addr.off_value>=0xffffff80) { pasm_info->pmodr_m->mod=1; PutCode_b(pasm_info,(BYTE)(op->addr.off_value)); return 0; } else { pasm_info->pmodr_m->mod=2; PutCode_d(pasm_info,(DWORD)(op->addr.off_value)); return 0; } } if (op->addr.reg_size==6) { pasm_info->AddressSize=4; pasm_info->pmodr_m->r_m=4; pasm_info->pmodr_m->base=op->addr.base_reg_index; pasm_info->pmodr_m->index=op->addr.off_reg_index; pasm_info->pmodr_m->scale=op->addr.off_reg_scale; pasm_info->InstLength=pasm_info->InstLength+1; if (op->addr.off_value==0) { pasm_info->pmodr_m->mod=0; if (op->addr.base_reg_index==5) { pasm_info->pmodr_m->mod=1; PutCode_b(pasm_info,(BYTE)(op->addr.off_value)); } return 0; } if (op->addr.off_value<=0xff) { pasm_info->pmodr_m->mod=1; PutCode_b(pasm_info,(BYTE)(op->addr.off_value)); return 0; } else { pasm_info->pmodr_m->mod=2; PutCode_d(pasm_info,(DWORD)(op->addr.off_value)); return 0; } } return 1; } int ProcessName_asm(ASSEMBLY_INFOMATION *pasm_info,DIS_OPCODE_T *inst) { int i,codesize; int opdata; if (inst==NULL) return 0-1; if (inst->name==NULL) return 0-1; if (strcmp(pasm_info->Name,inst->name)==0) { if (pasm_info->CodeMode==BIT32) codesize = 4; else codesize = 2; for (i=0;i<3;i++) { if (i==0) opdata = inst->Opdata1; else if (i==1) opdata = inst->Opdata2; else opdata = inst->Opdata3; switch(opdata) { case D__Xb: pasm_info->NameSize = SIZE_b; break; case D__Xv: // Used for ( MOVS: LODS: OUTS: ... ) pasm_info->NameSize = codesize; break; case D__Fv: // Used for PUSHA/POPA, PUSHF/POPF, SHAF/LAHF pasm_info->NameSize = codesize; break; }; } return inst->OpcodeType; } else return 0-1; } int ProcessOpdata_asm(ASSEMBLY_INFOMATION *pasm_info,int OpCodeDataType,POPER_ITEM op) { int i; int codesize; int optsize=-1; OPCODETYPE opdata=(OPCODETYPE)OpCodeDataType; if (pasm_info->CodeMode==BIT32) codesize = 4; else codesize = 2; switch(opdata) { case D__NONE: // No any types if (op->mode==OP_Invalid) return 0; break; case D__Eb:case D__rEb:case D__wEb:case D__rwEb: case D__Ew:case D__rEw:case D__wEw:case D__rwEw: case D__Ed:case D__rEd:case D__wEd:case D__rwEd: case D__Ev:case D__rEv:case D__wEv:case D__rwEv: // A ModR/M bytes: specifies the operand size. if (opdata>=D__Eb&&opdata<=D__rwEb&&op->opersize!=SIZE_b) break; if (opdata>=D__Ew&&opdata<=D__rwEw&&op->opersize!=SIZE_w) break; if (opdata>=D__Ed&&opdata<=D__rwEd&&op->opersize!=SIZE_d) break; if (opdata>=D__Ev&&opdata<=D__rwEv&&op->opersize!=SIZE_w&&op->opersize!=SIZE_d) break; if (opdata==D__Ev) pasm_info->OperandSize = op->opersize; if (op->mode==OP_Register) { pasm_info->pmodr_m->mod=3; pasm_info->pmodr_m->r_m=op->reg.reg_index; return 0; } if (op->mode==OP_Address) return ModeAddress(pasm_info,op,-1); break; case D__word_int: if (optsize==-1) optsize = SIZE_w; case D__dword_int: if (optsize==-1) optsize = SIZE_d; case D__qword_int: if (optsize==-1) optsize = SIZE_q; case D__single_real: if (optsize==-1) optsize = SIZE_d; case D__double_real: if (optsize==-1) optsize = SIZE_q; case D__extend_real: if (optsize==-1) optsize = SIZE_t; case D__packed_BCD: if (optsize==-1) optsize = SIZE_t; case D__2b: if (optsize==-1) optsize = SIZE_w; case D__14_28b: if (optsize==-1) optsize = SIZE_t; case D__98_108b: if (optsize==-1) optsize = SIZE_t; if (op->mode==OP_Address) return ModeAddress(pasm_info,op,optsize); break; case D__Gb:case D__rGb:case D__wGb:case D__rwGb: case D__Gd:case D__rGd:case D__wGd:case D__rwGd: case D__Gw:case D__rGw:case D__wGw:case D__rwGw: case D__Gv:case D__rGv:case D__wGv:case D__rwGv:// The reg field of the ModR/M byte selects a normal register. if (opdata==D__Gb&&op->opersize!=SIZE_b) break; if (opdata==D__Gw&&op->opersize!=SIZE_w) break; if (opdata==D__Gd&&op->opersize!=SIZE_d) break; if (opdata==D__Gv&&op->opersize!=SIZE_w&&op->opersize!=SIZE_d) break; if (opdata==D__Gv) pasm_info->OperandSize = op->opersize; if (op->mode==OP_Register) { pasm_info->pmodr_m->reg=op->reg.reg_index; return 0; } break; case D__Ib2: case D__Ib: if (op->mode==OP_Immed&&(op->immed.immed_value<=0xff||op->immed.immed_value>=0xffffff80)) { PutCode_b(pasm_info,(BYTE)op->immed.immed_value); return 0; } break; case D__Iw: if (op->mode==OP_Immed&&(op->immed.immed_value<=0xffff||op->immed.immed_value>=0xffff8000)) { PutCode_w(pasm_info,(WORD)op->immed.immed_value); return 0; } break; case D__Iv: // Immediate data. if (op->mode==OP_Immed&&(pasm_info->OperandSize==SIZE_w&&(op->immed.immed_value<=0xffff||op->immed.immed_value>=0xffff8000)||pasm_info->OperandSize==SIZE_d)) { if (pasm_info->OperandSize==SIZE_d) PutCode_d(pasm_info,(DWORD)op->immed.immed_value); else PutCode_w(pasm_info,(WORD)op->immed.immed_value); return 0; } break; case D__sIb: if (op->mode==OP_Immed&&(op->immed.immed_value<0x80||op->immed.immed_value>=0xffffff80)) { PutCode_b(pasm_info,(BYTE)op->immed.immed_value); return 0; } break; // Signed Immediate data. case D__Sw: // The reg field of the ModR/M byte selects a segment register. if (op->mode==OP_Segment&& op->opersize==SIZE_w) { pasm_info->pmodr_m->reg=op->sreg.sreg_index; pasm_info->OperandSize = op->opersize; return 0; } break; case D__M:case D__rM:case D__wM:case D__rwM: case D__Ma:case D__rMa:case D__wMa:case D__rwMa: case D__Mb:case D__rMb:case D__wMb:case D__rwMb: case D__Mp:case D__rMp:case D__wMp:case D__rwMp: case D__Ms:case D__rMs:case D__wMs:case D__rwMs: case D__Mq:case D__wMq:case D__rMq:case D__rwMq: case D__Mps:case D__wMps:case D__rMps:case D__rwMps: case D__Mpd:case D__wMpd:case D__rMpd:case D__rwMpd: case D__Mdq:case D__wMdq:case D__rMdq:case D__rwMdq: case D__Md:case D__rMd:case D__wMd:case D__rwMd: case D__Mw:case D__rMw:case D__wMw:case D__rwMw: case D__Mv:case D__rMv:case D__wMv:case D__rwMv: if (op->mode==OP_Address) return ModeAddress(pasm_info,op,-1); break; case D__st: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && (op->reg.reg_index==8||op->reg.reg_index==0)) return 0; break; case D__st0: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && (op->reg.reg_index==0|| op->reg.reg_index==8)) return 0; break; case D__st1: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==1) return 0; break; case D__st2: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==2) return 0; break; case D__st3: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==3) return 0; break; case D__st4: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==4) return 0; break; case D__st5: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==5) return 0; break; case D__st6: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==6) return 0; break; case D__st7: if(op->mode==OP_Register && op->reg_type==OP_FPURegister && op->reg.reg_index==7) return 0; break; case D_NEAR: if (op->mode==OP_Register&& (op->opersize==SIZE_w|| op->opersize==SIZE_d)) { pasm_info->OperandSize=op->opersize; pasm_info->pmodr_m->mod=3; pasm_info->pmodr_m->r_m=op->reg.reg_index; pasm_info->InstLength=pasm_info->InstLength+1; return 0; } if (op->mode==OP_Address&&op->opersize==codesize) { pasm_info->OperandSize=op->opersize; return ModeAddress(pasm_info,op,-1); } break; case D_MFAR: if (op->mode==OP_Address&&(op->opersize==SIZE_w+SIZE_w|| op->opersize==SIZE_d+SIZE_w)) { pasm_info->OperandSize=op->opersize-SIZE_w; return ModeAddress(pasm_info,op,-1); } break; case D__Ob:case D__rOb:case D__wOb:case D__rwOb: case D__Ov:case D__rOv:case D__wOv:case D__rwOv: // The offset of the operand is coded as a word or d-word ( no ModR/M ) if (op->mode==OP_Address&& op->addr.reg_size==0) { if (op->addr.seg_index!=0xff) pasm_info->SegmentPrefix=SegmentValue[op->addr.seg_index]; if (pasm_info->CodeMode==BIT32) { pasm_info->AddressSize= codesize; PutCode_d(pasm_info,(DWORD)(op->addr.off_value)); return 0; } if (op->addr.off_value<=0xffff) { pasm_info->AddressSize=SIZE_w; PutCode_w(pasm_info,(WORD)(op->addr.off_value)); return 0; } } break; case D__Jb: if (op->mode==OP_Immed&& (op->immed.immed_value-pasm_info->eip-2<0x80|| op->immed.immed_value-pasm_info->eip-2>=0xffffff80)) { PutCode_b(pasm_info,(BYTE)(op->immed.immed_value-pasm_info->eip-2)); return 0; } break; case D__Jz: if (op->mode==OP_Immed) { if (pasm_info->CodeMode==BIT32) { int deta=5; if(pasm_info->OpcodeType >= C_JtO && pasm_info->OpcodeType <= C_JtG) { if (op->mode==OP_Immed&& (op->immed.immed_value-pasm_info->eip-2<0x80|| op->immed.immed_value-pasm_info->eip-2>=0xffffff80)) break; deta=6; } PutCode_d(pasm_info,(DWORD)(op->immed.immed_value-pasm_info->eip-deta)); return 0; } if (op->immed.immed_value-pasm_info->eip-3<0x8000|| op->immed.immed_value-pasm_info->eip-3>=0xffff8000) { PutCode_w(pasm_info,(WORD)(op->immed.immed_value-pasm_info->eip-3)); } else { pasm_info->OperandSize = SIZE_d; PutCode_d(pasm_info,(DWORD)(op->immed.immed_value-pasm_info->eip-5)); } return 0; } break; case D__Ap: // The instruction contains a relative offset to be added to EIP. if (op->mode==OP_Far) { if (pasm_info->CodeMode==BIT32) { PutCode_d(pasm_info,(DWORD)(op->farptr.offset)); PutCode_w(pasm_info,(WORD)(op->farptr.segment)); return 0; } if (op->farptr.offset<=0xffff) { PutCode_w(pasm_info,(WORD)(op->farptr.offset)); PutCode_w(pasm_info,(WORD)(op->farptr.segment)); } else { pasm_info->OperandSize = SIZE_d; PutCode_d(pasm_info,(DWORD)(op->farptr.offset)); PutCode_w(pasm_info,(WORD)(op->farptr.segment)); } return 0; } break; case D__Rd: // The mod field of the ModR/M byte may refer only to a general register. if(op->reg_type==OP_DwordRegister && op->mode==OP_Register) { pasm_info->pmodr_m->mod=3; pasm_info->pmodr_m->r_m=op->reg.reg_index; return 0; } break; case D__Cd: // The reg field of the ModR/M byte selects a control register. if(op->reg_type==OP_ControlRegister && op->mode==OP_Register) { pasm_info->pmodr_m->reg=op->reg.reg_index; return 0; } break; case D__Dd: // The reg field of the ModR/M byte selects a debug register. if(op->reg_type==OP_DebugRegister && op->mode==OP_Register) { pasm_info->pmodr_m->reg=op->reg.reg_index; return 0; } break; case D__1: // Only used for ( Group2 SHL/SHR... instruction ) if (op->mode==OP_Immed&&op->immed.immed_value==1) return 0; break; case D__Pd:case D__rPd:case D__wPd:case D__rwPd: case D__Pq:case D__rPq:case D__wPq:case D__rwPq: case D__Ppi:case D__rPpi:case D__wPpi:case D__rwPpi: if(op->mode==OP_Register) { if(op->reg_type==OP_MMXRegister) { pasm_info->pmodr_m->reg=op->reg.reg_index; return 0; } } break; case D__Qd:case D__wQd:case D__rQd:case D__rwQd: case D__Qq:case D__wQq:case D__rQq:case D__rwQq: case D__Qpi:case D__wQpi:case D__rQpi:case D__rwQpi: case D__Qdq:case D__wQdq:case D__rQdq:case D__rwQdq: if(op->mode==OP_Register) { if(op->reg_type==OP_MMXRegister) { pasm_info->pmodr_m->mod=3; pasm_info->pmodr_m->r_m=op->reg.reg_index; return 0; } } else if(op->mode==OP_Address) { return ModeAddress(pasm_info,op,-1); } break; case D__Wq:case D__wWq:case D__rWq:case D__rwWq: case D__Wsd:case D__wWsd:case D__rWsd:case D__rwWsd: case D__Wdq:case D__rWdq:case D__wWdq:case D__rwWdq: case D__Wpd:case D__wWpd:case D__rWpd:case D__rwWpd: case D__Wps:case D__wWps:case D__rWps:case D__rwWps: case D__Wss:case D__wWss:case D__rWss:case D__rwWss: if(op->mode==OP_Register) { if(op->reg_type==OP_XMMRegister) { pasm_info->pmodr_m->mod=3; pasm_info->pmodr_m->r_m=op->reg.reg_index; return 0; } } else if(op->mode==OP_Address) { return ModeAddress(pasm_info,op,-1); } break; case D__Vq:case D__wVq: case D__rVq: case D__rwVq: case D__Vpd:case D__rVpd:case D__wVpd:case D__rwVpd: case D__Vdq:case D__rVdq:case D__wVdq:case D__rwVdq: case D__Vsd:case D__wVsd:case D__rVsd:case D__rwVsd: case D__Vps:case D__wVps:case D__rVps:case D__rwVps: case D__Vss:case D__wVss:case D__rVss:case D__rwVss: if(op->mode==OP_Register && op->reg_type==OP_XMMRegister) { pasm_info->pmodr_m->reg=op->reg.reg_index; return 0; } break; case D__Ups:case D__wUps:case D__rUps:case D__rwUps: case D__Upd:case D__wUpd:case D__rUpd:case D__rwUpd: case D__Uq: case D__wUq: case D__rUq: case D__rwUq: case D__Udq:case D__wUdq:case D__rUdq:case D__rwUdq: if(op->mode==OP_Register && op->reg_type==OP_XMMRegister) { pasm_info->pmodr_m->r_m=op->reg.reg_index; pasm_info->pmodr_m->mod=3; return 0; } break; case D__Nq:case D__wNq:case D__rNq:case D__rwNq: if(op->mode==OP_Register && op->reg_type==OP_MMXRegister) { pasm_info->pmodr_m->r_m=op->reg.reg_index; pasm_info->pmodr_m->mod=3; return 0; } break; case D__AL: // Specifying AL register case D__CL: // Specifying CL register case D__DL: // Specifying DL register case D__BL: // Specifying BL register case D__AH: // Specifying AH register case D__CH: // Specifying CH register case D__DH: // Specifying DH register case D__BH: // Specifying BH register if (op->mode==OP_Register&& op->opersize==SIZE_b&& op->reg.reg_index==opdata-D__AL) return 0; break; case D__AX: // Specifying AX register case D__CX: // Specifying CX register case D__DX: // Specifying DX register case D__BX: // Specifying BX register case D__SP: // Specifying SP register case D__BP: // Specifying BP register case D__SI: // Specifying SI register case D__DI: // Specifying DI register if (op->mode==OP_Register&& op->opersize==SIZE_w&& op->reg.reg_index==opdata-D__AX) return 0; break; case D__eAX: // Specifying eAX register case D__eCX: // Specifying eCX register case D__eDX: // Specifying eDX register case D__eBX: // Specifying eBX register case D__eSP: // Specifying eSP register case D__eBP: // Specifying eBP register case D__eSI: // Specifying eSI register case D__eDI: // Specifying eDI register if (op->mode==OP_Register&&(op->opersize==SIZE_w||op->opersize==SIZE_d)&&op->reg.reg_index==opdata-D__eAX) { pasm_info->OperandSize = op->opersize; return 0; } break; case D__ES: // Specifying ES register case D__CS: // Specifying CS register case D__SS: // Specifying SS register case D__DS: // Specifying DS register case D__FS: // Specifying FS register case D__GS: // Specifying GS register if (op->mode==OP_Segment&& op->opersize==SIZE_w&&op->sreg.sreg_index==opdata-D__ES) return 0; break; case D__Xb: if (op->mode==OP_Invalid&& pasm_info->NameSize==SIZE_b) return 0; break; case D__Xv: // Used for ( MOVS: LODS: OUTS: ... ) if (op->mode==OP_Invalid&& (pasm_info->NameSize ==SIZE_w|| pasm_info->NameSize ==SIZE_d)) { pasm_info->OperandSize = pasm_info->NameSize; return 0; } break; case D_DBYTE: if (op->mode==OP_Immed&&(op->immed.immed_value<=0xff|| op->immed.immed_value>=0xffffff80)) { pasm_info->InstLength --; PutCode_b(pasm_info,(BYTE)op->immed.immed_value); return 0; } break; case D_DWORD: if (op->mode==OP_Immed&&(op->immed.immed_value<=0xffff||op->immed.immed_value>=0xffff8000)) { pasm_info->InstLength --; PutCode_w(pasm_info,(WORD)op->immed.immed_value); return 0; } break; case D_DDWORD: if (op->mode==OP_Immed) { pasm_info->InstLength --; PutCode_d(pasm_info,(DWORD)op->immed.immed_value); return 0; } break; case D_STRING: if (op->mode==OP_String) { pasm_info->InstLength --; for (i=0;op->string[i]!='\0';i++,pasm_info->InstLength++) *(BYTE*)&pasm_info->CodeBuff[pasm_info->InstLength]=(BYTE)(op->string[i]); return 0; } default: if (op->mode==OP_Invalid) return 0; break; }; return 1; } DWORD ProcessAsmInfo(ASSEMBLY_INFOMATION *pasm_info, int OpcodeType, char *name, int Opdata1, int Opdata2, int Opdata3) { if (pasm_info->CodeMode==BIT32) { pasm_info->OperandSize = 4; pasm_info->AddressSize = 4; } else { pasm_info->OperandSize = 2; pasm_info->AddressSize = 2; } if (OpcodeType != pasm_info->OpcodeType) return 1; if (ProcessOpdata_asm(pasm_info,Opdata1,&pasm_info->op[0])!=0) return 1; if (ProcessOpdata_asm(pasm_info,Opdata2,&pasm_info->op[1])!=0) return 1; if (ProcessOpdata_asm(pasm_info,Opdata3,&pasm_info->op[2])!=0) return 1; if (pasm_info->OpcodeType == C_INT&&pasm_info->op[0].immed.immed_value==0x03) { pasm_info->InstLength -= 2; PutCode_b(pasm_info,0xcc); } return 0; } int ProcessGroup(ASSEMBLY_INFOMATION *pasm_info,DIS_OPCODE_T * pG,DIS_OPCODE_T * inst) { int i,j; DWORD value; int OldInstSize; j=C_CALL; OldInstSize = pasm_info->InstLength; for (i=0;i<0x08;i++) { pasm_info->InstLength = OldInstSize; pasm_info->pmodr_m->reg = (BYTE)i; DWORD Opdata1 = inst->Opdata1; DWORD Opdata2 = inst->Opdata2; DWORD Opdata3 = inst->Opdata3; if (pG[i].Opdata1 != D__NONE) Opdata1 = pG[i].Opdata1; if (pG[i].Opdata2 != D__NONE) Opdata2 = pG[i].Opdata2; if (pG[i].Opdata3 != D__NONE) Opdata3 = pG[i].Opdata3; value = ProcessAsmInfo(pasm_info, pG[i].OpcodeType, pG[i].name, Opdata1, Opdata2, Opdata3); if (value == 0) return 0; } return 1; } typedef TList ASSEMBLE_LIST; int AssemblerInstruction(ASSEMBLY_INFOMATION *pasm_info,NAME_OPCODE_MAP& pmap,int prefixlength,ASSEMBLE_LIST* plist) { int i,value; int OldInstSize; CIStrA strname; NAME_OPCODE_MAP::IT FindIT; DIS_OPCODE_T * pOpcode; pasm_info->InstLength = prefixlength; OldInstSize=pasm_info->InstLength; strname=pasm_info->Name; FindIT = pmap.Find(strname); for(;FindIT!=pmap.End();FindIT++) { pOpcode=*FindIT; if(pOpcode->OpcodeType!=pasm_info->OpcodeType) continue; pasm_info->InstLength=OldInstSize; BYTE*opbyte = (BYTE*)&pOpcode->opbyte; for(i=0;i<((pOpcode->opbytelen)&0xff);i++) { PutCode_b(pasm_info,opbyte[i]); } pasm_info->pmodr_m=(DIS_MODR_M*)&pasm_info->CodeBuff[pasm_info->InstLength]; if(pOpcode->Attr&R_M) pasm_info->InstLength+=1; switch(pOpcode->opbytelen & 0xff00) { case C_GROUP_0_TYPE: pasm_info->pmodr_m->reg=((pOpcode->opbytelen>>16)&7); break; case C_GROUP_1_TYPE: pasm_info->pmodr_m->reg=((pOpcode->opbytelen>>16)&7); if((pOpcode->opbytelen>>16)&8) pasm_info->pmodr_m->mod=3; break; case C_GROUP_2_TYPE: pasm_info->pmodr_m->reg=((pOpcode->opbytelen>>16)&7); if((pOpcode->opbytelen>>16)>=8) { int opbytelen=(pOpcode->opbytelen>>16)-8; pasm_info->pmodr_m->mod=3; pasm_info->pmodr_m->reg=((opbytelen>>3)&7); pasm_info->pmodr_m->r_m=(opbytelen&7); } break; case C_GROUP_3_TYPE: break; case C_GROUP_4_TYPE: break; case C_GROUP_5_TYPE: pasm_info->pmodr_m->reg=((pOpcode->opbytelen>>16)&7); break; case C_ESC_GROUP_TYPE: pasm_info->pmodr_m->reg=((pOpcode->opbytelen>>16)&7); break; } value = ProcessAsmInfo(pasm_info, pOpcode->OpcodeType, pOpcode->name, pOpcode->Opdata1, pOpcode->Opdata2, pOpcode->Opdata3); if (value == 0) { if((pOpcode->opbytelen & 0xff00)==C_GROUP_3DNOW_TYPE) { PutCode_b(pasm_info,(pOpcode->opbytelen>>16)); } if(plist) { unsigned char * pcode = new unsigned char[pasm_info->InstLength+1]; if(pcode) { pcode[0]=(unsigned char)pasm_info->InstLength; memcpy(pcode+1,pasm_info->CodeBuff,pasm_info->InstLength); plist->Append(pcode); } } else return 0; } } if(plist) return plist->Count()?0:1; return 1; } int ProcessAssemberLanguage(const char *pasm,char *OutBuff)//ԤȴĿոTABַ { int i,j; char tempbuff[0x200]; strcpy(tempbuff,pasm); for (i=0;tempbuff[i]!='\0';i++) tempbuff[i]=UPPER_CHAR(tempbuff[i]);//ַ дַ for (i--;i>=0 && (tempbuff[i]==' ' || tempbuff[i]=='\t');i--) tempbuff[i] = '\0';//ȥβĿոTABַ for (i=0;(tempbuff[i]==' '|| tempbuff[i]=='\t');i++);//ȥ׵ĿոTABַ for (j=0;tempbuff[i]!='\0';i++,j++) { if (tempbuff[i]==' '||tempbuff[i]=='\t') for ( ;tempbuff[i+1]==' '||tempbuff[i+1]=='\t';i++);//Ŀո ֻһĶȥ if (tempbuff[i]==' '||tempbuff[i]=='\t') { switch (tempbuff[i+1])// ոַѿո TAB ַҲȥ { case '+': case '-': case '*': case ',': case ']': i++; break; } } switch(tempbuff[i]) { case '[': case ']': case '+': case '-': case '*': case ',': case ':': OutBuff[j]=tempbuff[i]; for ( ;tempbuff[i+1]==' '||tempbuff[i+1]=='\t';i++);//ȥַĿո TAB ַ break; default : OutBuff[j]=tempbuff[i]; break; } } OutBuff[j]='\0'; return j; } int InsertGroupMap(DIS_OPCODE_T* pOpcodeTable,int num,NAME_OPCODE_MAP& NameOpcodeMap) { DIS_OPCODE_T* pOpcode; int i = 0; for(i=0;i>16)!=j) break; } break; case C_GRP1: pOpcode=(DIS_OPCODE_T*)pOpcodeTable[i].name; InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,16,NameOpcodeMap); for(int j=0;j<16;j++) { if(pOpcode[j].OpcodeType==C_NULL) continue; if((pOpcode[j].opbytelen&0xff00)!=C_GROUP_1_TYPE) break; if((pOpcode[j].opbytelen>>16)!=j) break; } break;; case C_GRP2: pOpcode=(DIS_OPCODE_T*)pOpcodeTable[i].name; InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,72,NameOpcodeMap); for(int j=0;j<72;j++) { if(pOpcode[j].OpcodeType==C_NULL) continue; if((pOpcode[j].opbytelen&0xff00)!=C_GROUP_2_TYPE) break; if((pOpcode[j].opbytelen>>16)!=j) break; } break; case C_GRP3: pOpcode=(DIS_OPCODE_T*)pOpcodeTable[i].name; InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,4,NameOpcodeMap); for(int j=0;j<4;j++) { if(pOpcode[j].OpcodeType==C_NULL) continue; if((pOpcode[j].opbytelen&0xff00)!=C_GROUP_3_TYPE) break; } break; case C_GRP4: pOpcode=(DIS_OPCODE_T*)pOpcodeTable[i].name; InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,8,NameOpcodeMap); for(int j=0;j<8;j++) { if(pOpcode[j].OpcodeType==C_NULL) continue; if((pOpcode[j].opbytelen&0xff00)!=C_GROUP_4_TYPE) break; if((pOpcode[j].opbytelen>>16)!=j) break; } break; case C_GRP5: pOpcode=(DIS_OPCODE_T*)pOpcodeTable[i].name; InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,8,NameOpcodeMap); for(int j=0;j<8;j++) { if(pOpcode[j].OpcodeType==C_NULL) continue; if(pOpcode[j].OpcodeType==C_GRP3) { InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,4,NameOpcodeMap); } } break; case C_2BYTE: InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,256,NameOpcodeMap); break; case C_3BYTE_0X3A: InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,256,NameOpcodeMap); break; case C_3BYTE_0X38: InsertGroupMap((DIS_OPCODE_T*)pOpcodeTable[i].name,256,NameOpcodeMap); break; default: if(pOpcodeTable[i].name==NULL || pOpcodeTable[i].name[0]==0) break; if(TStrICmp("cvtsi2sd",pOpcodeTable[i].name)==0) if(pOpcodeTable[i].name==NULL || pOpcodeTable[i].name[0]==0) break; NameOpcodeMap.InsertEqual(pOpcodeTable[i].name,pOpcodeTable+i); } } return 0; } int InitAssembler(NAME_OPCODE_MAP& NameOpcodeMap) { InsertGroupMap(Group_main,sizeof(Group_main)/sizeof(Group_main[0]),NameOpcodeMap); InsertGroupMap(Group0x0f0f,sizeof(Group0x0f0f)/sizeof(Group0x0f0f[0]),NameOpcodeMap); return 0; } NAME_OPCODE_MAP* gpNameOpcodeMap=NULL; int Assembler(const char *pasm,BYTE *outcode,DWORD eip,int mode) { int i,j,k; char tempbuffer[0x80]; unsigned char MachineCodeBuffer[0x20]; char InstructionName[0x80]; char PX[4][0x80]; ASSEMBLY_INFOMATION asm_info,*pasm_info; NAME_OPCODE_MAP::IT bit; if(gpNameOpcodeMap==NULL) { gpNameOpcodeMap=new NAME_OPCODE_MAP; } if(gpNameOpcodeMap==NULL) return 0; NAME_OPCODE_MAP &NameOpcodeMap=*gpNameOpcodeMap; if(NameOpcodeMap.Count()==0) InitAssembler(NameOpcodeMap); k=NameOpcodeMap.Count(); pasm_info = &asm_info; memset(pasm_info,0x00,sizeof(ASSEMBLY_INFOMATION)); memset(MachineCodeBuffer,0,sizeof(MachineCodeBuffer)); pasm_info->CodeBuff = &MachineCodeBuffer[0x10]; pasm_info->eip = eip; pasm_info->CodeMode = mode; i = ProcessAssemberLanguage(pasm,tempbuffer);//ԤȴոTABַ if(i<2) { pasm_info->error.name = 1; return 0; } i=0; for (k=0;kLock = LockRepxx[k].Code; else pasm_info->Repeat = LockRepxx[k].Code; i=i+j; break; } } for(j=0;(tempbuffer[i]>='A' && tempbuffer[i] <='Z') || (tempbuffer[i]>='0' && tempbuffer[i] <='9') || tempbuffer[i]=='_';j++,i++) InstructionName[j]=tempbuffer[i]; InstructionName[j]='\0'; pasm_info->Name = InstructionName; bit = NameOpcodeMap.Find(InstructionName); if(bit==NameOpcodeMap.End()) { pasm_info->error.name = 1; return 0; } pasm_info->OpcodeType = (*bit)->OpcodeType; DIS_OPCODE_T* pTmp=(*bit); for ( ;tempbuffer[i]==' '||tempbuffer[i]==',';i++ ); for (k=0;k<=3;k++) { for (j=0;tempbuffer[i]!=','&&tempbuffer[i]!='\0';i++,j++) //3 PX[k][j]=tempbuffer[i]; PX[k][j]='\0'; if (tempbuffer[i]==',') i++; } pTmp=NULL; if (PX[3][0]!='\0') { pasm_info->error.P4 = 1; return 0; } for (k=0;k<3;k++) { if (ProcessParameter(PX[k],&pasm_info->op[k])) { switch(k) { case 0: pasm_info->error.P1=1; break; case 1: pasm_info->error.P1=1; break; case 2: pasm_info->error.P1=1; break; default : break; }; return 0; } } i=0; for (k=0;k<3;k++) if (pasm_info->op[k].mode==OP_Register||pasm_info->op[k].mode==OP_Segment) i=pasm_info->op[k].opersize; for (k=0;k<3;k++) if (pasm_info->op[k].mode==OP_Address&& pasm_info->op[k].opersize!=0) i=pasm_info->op[k].opersize; for (k=0;k<3;k++) if (pasm_info->op[k].mode==OP_Immed&&pasm_info->op[k].opersize!=0) i=pasm_info->op[k].opersize; for (k=0;k<3;k++) if (pasm_info->op[k].mode==OP_Address&& pasm_info->op[k].opersize==0) pasm_info->op[k].opersize=i; for (k=0;k<3;k++) if (pasm_info->op[k].mode==OP_Immed&&pasm_info->op[k].opersize==0) pasm_info->op[k].opersize=i; i=0; ASSEMBLE_LIST pList; if (AssemblerInstruction(pasm_info,NameOpcodeMap,0,NULL)!=0) { pasm_info->error.PX = 1; return 0; } ASSEMBLE_LIST::IT lbit,leit; for(lbit=pList.Begin();lbit!=pList.End();lbit++) { unsigned char* pstr=*lbit; //for(int i =0;iPrefixLength = 0; if (pasm_info->Lock == 0xf0 ) { pasm_info->CodeBuff--; pasm_info->PrefixLength++; *pasm_info->CodeBuff=0xf0; } if (pasm_info->Repeat != 0) { pasm_info->CodeBuff--; pasm_info->PrefixLength++; *pasm_info->CodeBuff = pasm_info->Repeat; } int codesize; if (pasm_info->CodeMode==BIT32) codesize = 4; else codesize = 2; if (pasm_info->AddressSize!=codesize) { pasm_info->CodeBuff--; pasm_info->PrefixLength++; *pasm_info->CodeBuff=0x67; } if (pasm_info->OperandSize!=codesize) { pasm_info->CodeBuff--; pasm_info->PrefixLength++; *pasm_info->CodeBuff=0x66; } if (pasm_info->SegmentPrefix != 0) { pasm_info->CodeBuff--; pasm_info->PrefixLength++; *pasm_info->CodeBuff=pasm_info->SegmentPrefix; } k = pasm_info->InstLength+pasm_info->PrefixLength; for (i=0;iCodeBuff[i]; return k; } //ģ顪 // int Disassembler(char *OutBuff,BYTE *InBuff,DWORD EIP,int Mode,int U_x1,int U_x2) { INSTRUCTION_INFORMATION InstInfo; InstInfo.pasm = OutBuff; InstInfo.U_x1 = U_x1; InstInfo.U_x2 = U_x2; DIS_CPU DispCpu; return Disassembly(&InstInfo,InBuff,EIP,Mode,&DispCpu); } char ** GetIntelConstName(int *pNumb) { int i; static int NameNumb=0; if (NameNumb==0) { i=sizeof(Group_main)/sizeof(Group_main[0]); ReadIntelName((char*)Group_main,i); for (i=0;Emblem[i]!=NULL;i++) NameNumb = i; } if (pNumb!=NULL) { *pNumb = NameNumb; } return Emblem; } bool IsJmp(unsigned short pCode,DWORD Eflags) { switch(pCode) { case 0xf80: case 0x70: return (Eflags&EFLAGS_OF_MASK) != 0; case 0xf81: case 0x71: return (Eflags&EFLAGS_OF_MASK) == 0; case 0xf82: case 0x72: return (Eflags&EFLAGS_CF_MASK) != 0; case 0xf83: case 0x73: return (Eflags&EFLAGS_CF_MASK) == 0; case 0xf84: case 0x74: return (Eflags&EFLAGS_ZF_MASK) != 0; case 0xf85: case 0x75: return (Eflags&EFLAGS_ZF_MASK) == 0; case 0xf86: case 0x76: return ((Eflags&EFLAGS_ZF_MASK) != 0)&&((Eflags&EFLAGS_CF_MASK) != 0); case 0xf87: case 0x77: return ((Eflags&EFLAGS_ZF_MASK) == 0)&&((Eflags&EFLAGS_CF_MASK) == 0); case 0xf88: case 0x78: return (Eflags&EFLAGS_SF_MASK) != 0; case 0xf89: case 0x79: return (Eflags&EFLAGS_SF_MASK) == 0; case 0xf8a: case 0x7a: return (Eflags&EFLAGS_PF_MASK) != 0; case 0xf8b: case 0x7b: return (Eflags&EFLAGS_PF_MASK) == 0; case 0xf8c: case 0x7c: return (Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT != (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT; case 0xf8d: case 0x7d: return (Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT == (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT; case 0xf8e: case 0x7e: return ((Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT != (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT) && (Eflags&EFLAGS_ZF_MASK) != 0; case 0xf8f: case 0x7f: return ((Eflags & EFLAGS_OF_MASK)>>EFLAGS_OF_SHIFT == (Eflags & EFLAGS_SF_MASK)>>EFLAGS_SF_SHIFT) && (Eflags&EFLAGS_ZF_MASK) == 0; } return false; } int CIntelDisassembler::GetLength(BYTE *InBuff,int Mode) { return ::Disassembler(NULL,InBuff,0x100,Mode); } char ** CIntelDisassembler::GetIntelConstName(int *pNumb) { return ::GetIntelConstName(pNumb); } int CIntelDisassembler::Disassembler(INSTRUCTION_INFORMATION *pInstInfo,DIS_CPU *dis_cpu) { int mode; DWORD eip; BYTE *inbuff; mode = m_Mode; pInstInfo->CodeMode = mode; eip = pInstInfo->eip; inbuff = pInstInfo->CodeBuff; pInstInfo->U_x1 = m_U_x1; pInstInfo->U_x2 = m_U_x2; return ::Disassembly(pInstInfo,inbuff,eip,mode,dis_cpu); } int CIntelDisassembler::Assembler(const char *InBuff,BYTE *OutCode,DWORD EIP,int Mode) { return ::Assembler(InBuff,OutCode,EIP,Mode); } ================================================ FILE: Project/EXEAnalyzer/Source/IntelDis.h ================================================ #ifndef _INTEL_DISASSEMBLER_H_ #define _INTEL_DISASSEMBLER_H_ #include "IntelDef.h" #include "../../Code/Source/Code.h" #define EFLAGS_OF_MASK 0x800 #define EFLAGS_SF_MASK 0x80 #define EFLAGS_ZF_MASK 0x40 #define EFLAGS_AF_MASK 0x10 #define EFLAGS_PF_MASK 0x4 #define EFLAGS_CF_MASK 0x1 #define EFLAGS_OF_SHIFT 11 #define EFLAGS_SF_SHIFT 7 #define EFLAGS_ZF_SHIFT 6 #define EFLAGS_AF_SHIFT 4 #define EFLAGS_PF_SHIFT 2 #define EFLAGS_CF_SHIFT 0 #if 0 union DIS_GEN_REG_T { DWORD erx; struct { WORD word_filler; union { WORD rx; struct { BYTE rh; BYTE rl; } byte; } u_word; } word; }; #else union DIS_GEN_REG_T { QWORD erx; struct { union { WORD rx; struct { BYTE rl; BYTE rh; } byte; } u_word; WORD word_filler; } word; }; #endif struct DIS_CPU { DIS_GEN_REG_T gen_reg[0x16]; DWORD SEG_BASE[0x06]; DWORD Eflags; char* gen_regsymbolname[0x8]; }; typedef struct _DIS_MODR_M { unsigned int r_m:3; unsigned int reg:3; // Ĵ / չ unsigned int mod:2; unsigned int base:3; unsigned int index:3; unsigned int scale:2; unsigned int disp0:8; unsigned int disp1:8; unsigned int disp2:8; unsigned int disp3:8; } DIS_MODR_M,*PDIS_MODR_M; typedef struct _DIS_OPCODE_T { int Attr; //Ѱַʽֶ int OpcodeType; // int Opdata1; // int Opdata2; int Opdata3; char *name; //ָ(ָ) "PUSHF","IRET", "MOVSW",... //char *name32; //ָ(ָ) "PUSHFD","IRETD","MOVSD",... int opbyte; int opbytelen; int rwflags; } DIS_OPCODE_T,*PDIS_OPCODE_T; //ڴѰַṹ typedef struct _DIS_ADDRESS { unsigned int address_size; // ַָߴ BIT16/BIT32 : [bx+si]/[ebx+edi] //-------------- unsigned int r_m; unsigned int reg; // Ĵ / չ unsigned int mod; unsigned int base; //ַĴĺ [EBX + ESI*2 +99] е base = 3 unsigned int index; //Ĵĺ [EBX + ESI*8 +69] е index = 6 unsigned int scale; // [EBX + ESI*4 +96] е scale = 2 unsigned int segment; //ModR/Mֶξ μĴindex [EBX+ESI*4+96] Ϊ I_DS unsigned int displacement_size; //ModR/Mֶξ ƫֽ1/2/4 //-------------- QWORD displacement; //: mov eax,[ebx+esi*4+8f] displacement = 8f QWORD effect_address; //Чַ QWORD line_address; //-------------- } DIS_ADDRESS,*PDIS_ADDRESS; //intel ָIJ͡ #define mode_invalid 0 #define mode_address 1 #define mode_register 2 #define mode_segment 3 #define mode_immed 4 #define mode_near 5 #define mode_far 6 //intel assembler language ָIJ͡ #define mode_datadup 20 #define mode_symbol 21 #define mode_align 22 #define RWFLG_UNKNOWN 0 #define RWFLG_READ 1 #define RWFLG_WRITE 2 #define RWFLG_ACCESS 3 #define MAX_SYMBOL_LEN 0x40 //intel ṹ typedef struct _OPERAND_ITEM { int mode; //0:Invalid 1:Address 2:Register 3:Segment //4:Immed 5:Near Pointer 6:Far Pointer 7:STRING int rwflag; //0:Unknown 1:Read 2:Write 3:Access int opersize; //1:byte, 2:word, 4:dword, 8:double dword char string[0x20]; // "[eax+ebx]","ecx","ES","0x0123" union { DIS_ADDRESS addr; //for Mode 1:Address struct //example mov fs,cx { int reg_index; //reg_index = I_ECX (0x01) } reg; //for Mode 2:Register struct //example mov fs,ax { int seg_index; // seg_index = I_FS (0x04) } seg; //for Mode 3:Segment Register struct { QWORD immed_value; } immed; //for Mode 4:Immed struct //example 0x100:jmp 120 { __int64 offset; // offset = 0x1e QWORD label; // label = 0x120 } nearptr; //for Mode 5:Near Pointer struct //example jmp 0x28:0x100 { DWORD offset; //offset = 0x100 DWORD segment; //segment = 0x28 } farptr; //for Mode 6:Far Pointer struct { int count; BYTE buffer[0x20]; } datadup; //for Mode 20:mode_datadup struct { char string[MAX_SYMBOL_LEN]; BOOL offset; int mode; DWORD addr; } symbol; //for Mode 20:mode_symble struct { DWORD nBytes; } align; //for Mode 20:mode_align }; } OPERAND_ITEM,*POPERAND_ITEM; typedef struct _DISP_INSTRUCTION_T { // prefix stuff here... unsigned int attr; // attribute from fetchdecode unsigned int b1; // opcode1 byte unsigned int mandatory_used; // ǿǰ׺ 0x66 0xf2 0xf3 unsigned int rep_used; unsigned int lock; // tang add unsigned int rex_prefix; // for 64 bit unsigned int modrm; // mod-nnn-r/m byte unsigned int mod; unsigned int nnn; // Ĵ / չ unsigned int rm; WORD displ16u; // for 16-bit modrm forms DWORD displ32u; // for 32-bit modrm forms unsigned int seg; unsigned int sib; // scale-index-base (2nd modrm byte) unsigned int scale; unsigned int index; unsigned int base; QWORD addr_displacement; // address displacement QWORD rm_addr; QWORD Iq; DWORD Id; WORD Iw; BYTE Ib; BYTE Ib2; // for ENTER_IwIb EXTRQ Vdq,Ib,Ib2 WORD Iw2; // for JMP_Ap unsigned int ilen; // instruction length unsigned int modrm_length; // ModR/Mֶξ ָ unsigned int displacement_size; //ModR/Mֶξ ƫֽ1/2/4 unsigned int os_32, as_32; // OperandSize/AddressSize is 32bit unsigned int flags_in, flags_out; // flags needed, flags modified unsigned int destination,source,other; //tang add unsigned int opcode_len; unsigned int perfix_len; unsigned int have_regrm; unsigned int have_sib; unsigned int mode; unsigned int RIP_Relative; } DISP_INSTRUCTION_T; //intel ָṹ typedef struct _INSTRUCTION_INFORMATION { DWORD eip; //ָλ int CodeMode; //ģʽ---ʮλ(BIT16)ʮλ(BIT32) int Length; //ָ example: nop -- Length = 0x01 int OpCode; //example: mov eax,ebx ָСOpCode = C_MOV //C_MOV,C_ADD,C_ADC,C_SUB,C_SBB,C_CMP... int OpcodeLen; // int OpType; //Ŀǰ int CodeType; //Ŀǰ //====================== char Name[0x10]; //"ADD","ADC","SUB","MOV","INC","DEC" int Lock; // for LOCK prefix value = 0xf0 -1 char LockName[0x08]; // "LOCK" int Repeat; // for REPZ/REPNZ prefix vlaue = 0xf2 /0xf3 / -1 char RepeatName[0x08]; // "REP","REPZ","REPNZ","REPE","REPNE" //I_ES,I_CS,I_SS,I_DS,I_FS,I_GS int SegmentPrefix; //οԽǰ׺ mov es:[eax+ebx],ecx е segprefix = I_ES (0x00) int xxxxptr; //ָʾ mov dword ptr [ebx],0x01234567 е xxxxptr = sizeof(DWORD) (0x04) //(BYTE PTR) (WORD PTR) (DWORD PTR) //(FDWORD PTR) (NEAR) (FAR) //======================= OPERAND_ITEM op[3]; //intel ָ //======================= BYTE *CodeBuff; // ƵĴ example: '0xB8 0x01 0x23 0x45 0x67' // CodeBuff Ϊ NULL //======================= char *pasm; // ַ example: "mov eax,67543210" // pasm Ϊ NULL //char hexcode[0x20]; //ʮƵĴ봮 example: "B801234567" int U_x1,U_x2,U_x3; //Uasm Output Format Contral, //example: // MOV EAX,WORD PTR ES:[EAX] //0 x1 x2 x3 //ƷڻеĴʽ. //ûU_x1,U_x2; U_x3ֻд. int PrefixLen; //ָǰ׺ij int Have_RegRM; int Have_SIB; int Is3DNow; int Rex_Prefix; } INSTRUCTION_INFORMATION,*PINSTRUCTION_INFORMATION; #define SIZE_a 8 #define SIZE_b 1 #define SIZE_d 4 #define SIZE_dq 16 #define SIZE_pi 8 #define SIZE_ps 8 #define SIZE_q 8 #define SIZE_s 6 #define SIZE_ss 16 #define SIZE_sd 16 #define SIZE_t 10 #define SIZE_w 2 #define SIZE_pd 16 #define OPER_UNKNOWN 0 #define OPER_READ 1 #define OPER_WRITE 2 #define OPER_ACCESS 3 typedef enum _OP_TYPE_ENUM { OP_Invalid, OP_Address, OP_Register, OP_Segment, OP_Immed, OP_Near, OP_Far, OP_String, OP_ControlRegister, OP_DebugRegister, OP_MMXRegister, OP_XMMRegister, OP_ByteRegister, OP_WordRegister, OP_DwordRegister, OP_SegmentRegister, OP_FPURegister, }OP_TYPE_ENUM,*POP_TYPE_ENUM; // The list of the types of Opdata1, Opdata2, Opdata3 typedef struct _tagLOCKREPXX { char* Name; BYTE Code; } LOCKREPXX,PLOCKREPXX; typedef struct _OPDATAWIDE { int Size; char *Xptr; } OPDATAWIDE,POPDATAWIDE; typedef struct _OPER_ITEM { OP_TYPE_ENUM mode; //0:Invalid 1:Address 2:Regsiter 3:Segment 4:Immed //5:Near Pointer 6:Far Pointer 7:STRING BYTE rwflag; //0:Unknown 1:Read 2:Write 3:Access int opersize; //1:byte, 2:word, 4:dword, 8:double dword OP_TYPE_ENUM reg_type; int prefix_size;// dword ptr, word ptr,byte ptr,qword ptr ,tbyte ptr.if assembly instruction includes union { struct { int seg_index; //SegReg Index!!! int reg_size; //2:WORD 4:DWORD int base_reg_index; int off_reg_index; int off_reg_scale; DWORD off_value; } addr; //for Mode 1:Address struct { int reg_index; } reg; //for Mode 2:Register struct { int sreg_index; } sreg; //for Mode 3:Segment Register struct { QWORD immed_value; } immed; //for Mode 4:Immed struct { DWORD offset; } nearptr; //for Mode 5:Near Pointer struct { DWORD segment; DWORD offset; } farptr; //for Mode 6:Far Pointer char string[0x80]; }; } OPER_ITEM,*POPER_ITEM; struct ASSEMBLY_ERROR { unsigned int name:1; //ָǷûҵ unsigned int Type:1; //ָûҵ unsigned int P1:1; //һ unsigned int P2:1; // unsigned int P3:1; // unsigned int P4:1; //Ĵ unsigned int PX:1; //ì unsigned int Size:1; //޿ȴ }; typedef struct _ASSEMBLY_INFOMATION { int NameSize; BYTE Lock; // for LOCK prefix BYTE Repeat; // for REPZ/REPNZ prefix int OperandSize; int AddressSize; BYTE SegmentPrefix; // for ES: CS: SS: DS: FS: GS: int OpcodeType; char *Name; OPER_ITEM op[3]; DWORD eip; DIS_MODR_M * pmodr_m; int InstLength; int PrefixLength; DIS_MODR_M RegRM_SIB; //======================================================= int CodeMode; //ģʽ---ʮλ(BIT16)ʮλ(BIT32) int ByteCount; //ڲ BYTE *CodeBuff; //ڲ ASSEMBLY_ERROR error; } ASSEMBLY_INFOMATION,*PASSEMBLY_INFOMATION; //======================================== //======================================== //ຯ //Disassembly: ֵΪ ָ //InBuff: buffer Ϊ 1 -- 16 ֽ //EIP: ָĵǰλã jmp call jz jnz ָʱõ //Mode: òֵΪ BIT16 BIT32 ֱ 16λ/32λ int Disassembly(INSTRUCTION_INFORMATION *pInstInfo,BYTE *InBuff,QWORD EIP,int Mode,DIS_CPU *dis_cpu=NULL); int Disassembler(char *OutBuff,BYTE *InBuff,DWORD EIP,int Mode = BIT32,int U_x1=0,int U_x2=0x08); int Assembler(const char *InBuff,BYTE *OutBuff,DWORD EIP,int Mode = BIT32); int PrintPasm(INSTRUCTION_INFORMATION *pInstInfo,char *pasm,int u_x1,int u_x2); int PrintPasmForIDA(INSTRUCTION_INFORMATION *pInstInfo,char *pasm,int u_x1,int u_x2); //================================= class CIntelDisassembler { public: int m_U_x1; int m_U_x2; int m_U_x3; int m_Mode; public: CIntelDisassembler() { m_U_x1 = 6; m_U_x2 = 12; m_U_x3 = 20; } ~CIntelDisassembler() { } public: void SetStyle(int U_x1,int U_x2,int U_x3) { m_U_x1 = U_x1; m_U_x2 = U_x2; m_U_x3 = U_x3; } void SetMode(int Mode) { m_Mode = Mode; } static int GetLength(BYTE *InBuff,int Mode); static char ** GetIntelConstName(int *pNumb=(int*)(0)); int Disassembler(INSTRUCTION_INFORMATION *pInstInfo,DIS_CPU *dis_cpu=NULL); int Assembler(const char *InBuff,BYTE *OutCode,DWORD EIP,int Mode); }; bool IsJmp(unsigned short pCode,DWORD Eflags); extern DIS_OPCODE_T Group0x80[8]; extern DIS_OPCODE_T Group0x81[8]; extern DIS_OPCODE_T Group0x82[8]; extern DIS_OPCODE_T Group0x83[8]; extern DIS_OPCODE_T Group0xc0[8]; extern DIS_OPCODE_T Group0xc1[8]; extern DIS_OPCODE_T Group0xc6[8]; extern DIS_OPCODE_T Group0xc7[8]; extern DIS_OPCODE_T Group0xd0[8]; extern DIS_OPCODE_T Group0xd1[8]; extern DIS_OPCODE_T Group0xd2[8]; extern DIS_OPCODE_T Group0xd3[8]; extern DIS_OPCODE_T Group0xf6[8]; extern DIS_OPCODE_T Group0xf7[8]; extern DIS_OPCODE_T Group0xfe[8]; extern DIS_OPCODE_T Group0xff[8]; extern DIS_OPCODE_T Group0x8f[8]; extern DIS_OPCODE_T Group0xd8[72]; extern DIS_OPCODE_T Group0xd9[72]; extern DIS_OPCODE_T Group0xda[72]; extern DIS_OPCODE_T Group0xdb[72]; extern DIS_OPCODE_T Group0xdc[72]; extern DIS_OPCODE_T Group0xdd[72]; extern DIS_OPCODE_T Group0xde[72]; extern DIS_OPCODE_T Group0xdf[72]; extern DIS_OPCODE_T Group0x0f00[8]; extern DIS_OPCODE_T Group0x0f01[72]; extern DIS_OPCODE_T Group0x0f18[8]; extern DIS_OPCODE_T Group0x0f71[8]; extern DIS_OPCODE_T Group0x0f72[8]; extern DIS_OPCODE_T Group0x0f73[8]; extern DIS_OPCODE_T Group0x0fae[16]; extern DIS_OPCODE_T Group0x0fba[8]; extern DIS_OPCODE_T Group0x0fc7[8]; extern DIS_OPCODE_T Group0x0f3800[4]; extern DIS_OPCODE_T Group0x0f3801[4]; extern DIS_OPCODE_T Group0x0f3802[4]; extern DIS_OPCODE_T Group0x0f3803[4]; extern DIS_OPCODE_T Group0x0f3804[4]; extern DIS_OPCODE_T Group0x0f3805[4]; extern DIS_OPCODE_T Group0x0f3806[4]; extern DIS_OPCODE_T Group0x0f3807[4]; extern DIS_OPCODE_T Group0x0f3808[4]; extern DIS_OPCODE_T Group0x0f3809[4]; extern DIS_OPCODE_T Group0x0f380a[4]; extern DIS_OPCODE_T Group0x0f380b[4]; extern DIS_OPCODE_T Group0x0f3810[4]; extern DIS_OPCODE_T Group0x0f3814[4]; extern DIS_OPCODE_T Group0x0f3815[4]; extern DIS_OPCODE_T Group0x0f3817[4]; extern DIS_OPCODE_T Group0x0f381c[4]; extern DIS_OPCODE_T Group0x0f381d[4]; extern DIS_OPCODE_T Group0x0f381e[4]; extern DIS_OPCODE_T Group0x0f3820[8]; extern DIS_OPCODE_T Group0x0f3821[8]; extern DIS_OPCODE_T Group0x0f3822[8]; extern DIS_OPCODE_T Group0x0f3823[8]; extern DIS_OPCODE_T Group0x0f3824[8]; extern DIS_OPCODE_T Group0x0f3825[8]; extern DIS_OPCODE_T Group0x0f3828[4]; extern DIS_OPCODE_T Group0x0f3829[4]; extern DIS_OPCODE_T Group0x0f382a[4]; extern DIS_OPCODE_T Group0x0f382b[4]; extern DIS_OPCODE_T Group0x0f3830[8]; extern DIS_OPCODE_T Group0x0f3831[8]; extern DIS_OPCODE_T Group0x0f3832[8]; extern DIS_OPCODE_T Group0x0f3833[8]; extern DIS_OPCODE_T Group0x0f3834[8]; extern DIS_OPCODE_T Group0x0f3835[8]; extern DIS_OPCODE_T Group0x0f3837[4]; extern DIS_OPCODE_T Group0x0f3838[4]; extern DIS_OPCODE_T Group0x0f3839[4]; extern DIS_OPCODE_T Group0x0f383a[4]; extern DIS_OPCODE_T Group0x0f383b[4]; extern DIS_OPCODE_T Group0x0f383c[4]; extern DIS_OPCODE_T Group0x0f383d[4]; extern DIS_OPCODE_T Group0x0f383e[4]; extern DIS_OPCODE_T Group0x0f383f[4]; extern DIS_OPCODE_T Group0x0f3840[4]; extern DIS_OPCODE_T Group0x0f3841[4]; extern DIS_OPCODE_T Group0x0f3880[8]; extern DIS_OPCODE_T Group0x0f3881[8]; extern DIS_OPCODE_T Group0x0f38f0[8]; extern DIS_OPCODE_T Group0x0f38f1[8]; extern DIS_OPCODE_T Group0x0f38[256]; extern DIS_OPCODE_T Group0x0f3a08[4]; extern DIS_OPCODE_T Group0x0f3a09[4]; extern DIS_OPCODE_T Group0x0f3a0a[4]; extern DIS_OPCODE_T Group0x0f3a0b[4]; extern DIS_OPCODE_T Group0x0f3a0c[4]; extern DIS_OPCODE_T Group0x0f3a0d[4]; extern DIS_OPCODE_T Group0x0f3a0e[4]; extern DIS_OPCODE_T Group0x0f3a0f[4]; extern DIS_OPCODE_T Group0x0f3a14[8]; extern DIS_OPCODE_T Group0x0f3a15[8]; extern DIS_OPCODE_T Group0x0f3a16[4]; extern DIS_OPCODE_T Group0x0f3a17[4]; extern DIS_OPCODE_T Group0x0f3a20[8]; extern DIS_OPCODE_T Group0x0f3a21[8]; extern DIS_OPCODE_T Group0x0f3a22[4]; extern DIS_OPCODE_T Group0x0f3a40[4]; extern DIS_OPCODE_T Group0x0f3a41[4]; extern DIS_OPCODE_T Group0x0f3a42[4]; extern DIS_OPCODE_T Group0x0f3a60[4]; extern DIS_OPCODE_T Group0x0f3a61[4]; extern DIS_OPCODE_T Group0x0f3a62[4]; extern DIS_OPCODE_T Group0x0f3a63[4]; extern DIS_OPCODE_T Group0x0f3a[256]; extern DIS_OPCODE_T Group0x0f70[4]; extern DIS_OPCODE_T Group0x0f74[4]; extern DIS_OPCODE_T Group0x0f75[4]; extern DIS_OPCODE_T Group0x0f76[4]; extern DIS_OPCODE_T Group0x0f7c[4]; extern DIS_OPCODE_T Group0x0f7d[4]; extern DIS_OPCODE_T Group0x0f7e[4]; extern DIS_OPCODE_T Group0x0f7f[4]; extern DIS_OPCODE_T Group0x0f60[4]; extern DIS_OPCODE_T Group0x0f61[4]; extern DIS_OPCODE_T Group0x0f62[4]; extern DIS_OPCODE_T Group0x0f63[4]; extern DIS_OPCODE_T Group0x0f64[4]; extern DIS_OPCODE_T Group0x0f65[4]; extern DIS_OPCODE_T Group0x0f66[4]; extern DIS_OPCODE_T Group0x0f67[4]; extern DIS_OPCODE_T Group0x0f68[4]; extern DIS_OPCODE_T Group0x0f69[4]; extern DIS_OPCODE_T Group0x0f6a[4]; extern DIS_OPCODE_T Group0x0f6b[4]; extern DIS_OPCODE_T Group0x0f6c[4]; extern DIS_OPCODE_T Group0x0f6d[4]; extern DIS_OPCODE_T Group0x0f6e[4]; extern DIS_OPCODE_T Group0x0f6f[4]; extern DIS_OPCODE_T Group0x0f50[8]; extern DIS_OPCODE_T Group0x0f51[4]; extern DIS_OPCODE_T Group0x0f52[4]; extern DIS_OPCODE_T Group0x0f53[4]; extern DIS_OPCODE_T Group0x0f54[4]; extern DIS_OPCODE_T Group0x0f55[4]; extern DIS_OPCODE_T Group0x0f56[4]; extern DIS_OPCODE_T Group0x0f57[4]; extern DIS_OPCODE_T Group0x0f58[4]; extern DIS_OPCODE_T Group0x0f59[4]; extern DIS_OPCODE_T Group0x0f5a[4]; extern DIS_OPCODE_T Group0x0f5b[4]; extern DIS_OPCODE_T Group0x0f5c[4]; extern DIS_OPCODE_T Group0x0f5d[4]; extern DIS_OPCODE_T Group0x0f5e[4]; extern DIS_OPCODE_T Group0x0f5f[4]; extern DIS_OPCODE_T Group0x0f10[4]; extern DIS_OPCODE_T Group0x0f11[4]; extern DIS_OPCODE_T Group0x0f12[8]; extern DIS_OPCODE_T Group0x0f13[4]; extern DIS_OPCODE_T Group0x0f14[4]; extern DIS_OPCODE_T Group0x0f15[4]; extern DIS_OPCODE_T Group0x0f16[8]; extern DIS_OPCODE_T Group0x0f17[4]; extern DIS_OPCODE_T Group0x0f28[4]; extern DIS_OPCODE_T Group0x0f29[4]; extern DIS_OPCODE_T Group0x0f2a[4]; extern DIS_OPCODE_T Group0x0f2b[4]; extern DIS_OPCODE_T Group0x0f2c[4]; extern DIS_OPCODE_T Group0x0f2d[4]; extern DIS_OPCODE_T Group0x0f2e[4]; extern DIS_OPCODE_T Group0x0f2f[4]; extern DIS_OPCODE_T Group0x0fd0[4]; extern DIS_OPCODE_T Group0x0fd1[4]; extern DIS_OPCODE_T Group0x0fd2[4]; extern DIS_OPCODE_T Group0x0fd3[4]; extern DIS_OPCODE_T Group0x0fd4[4]; extern DIS_OPCODE_T Group0x0fd5[4]; extern DIS_OPCODE_T Group0x0fd6[4]; extern DIS_OPCODE_T Group0x0fd7[4]; extern DIS_OPCODE_T Group0x0fd8[4]; extern DIS_OPCODE_T Group0x0fd9[4]; extern DIS_OPCODE_T Group0x0fda[4]; extern DIS_OPCODE_T Group0x0fdb[4]; extern DIS_OPCODE_T Group0x0fdc[4]; extern DIS_OPCODE_T Group0x0fdd[4]; extern DIS_OPCODE_T Group0x0fde[4]; extern DIS_OPCODE_T Group0x0fdf[4]; extern DIS_OPCODE_T Group0x0fe0[4]; extern DIS_OPCODE_T Group0x0fe1[4]; extern DIS_OPCODE_T Group0x0fe2[4]; extern DIS_OPCODE_T Group0x0fe3[4]; extern DIS_OPCODE_T Group0x0fe4[4]; extern DIS_OPCODE_T Group0x0fe5[4]; extern DIS_OPCODE_T Group0x0fe6[4]; extern DIS_OPCODE_T Group0x0fe7[4]; extern DIS_OPCODE_T Group0x0fe8[4]; extern DIS_OPCODE_T Group0x0fe9[4]; extern DIS_OPCODE_T Group0x0fea[4]; extern DIS_OPCODE_T Group0x0feb[4]; extern DIS_OPCODE_T Group0x0fec[4]; extern DIS_OPCODE_T Group0x0fed[4]; extern DIS_OPCODE_T Group0x0fee[4]; extern DIS_OPCODE_T Group0x0fef[4]; extern DIS_OPCODE_T Group0x0ff0[4]; extern DIS_OPCODE_T Group0x0ff1[4]; extern DIS_OPCODE_T Group0x0ff2[4]; extern DIS_OPCODE_T Group0x0ff3[4]; extern DIS_OPCODE_T Group0x0ff4[4]; extern DIS_OPCODE_T Group0x0ff5[4]; extern DIS_OPCODE_T Group0x0ff6[4]; extern DIS_OPCODE_T Group0x0ff7[4]; extern DIS_OPCODE_T Group0x0ff8[4]; extern DIS_OPCODE_T Group0x0ff9[4]; extern DIS_OPCODE_T Group0x0ffa[4]; extern DIS_OPCODE_T Group0x0ffb[4]; extern DIS_OPCODE_T Group0x0ffc[4]; extern DIS_OPCODE_T Group0x0ffd[4]; extern DIS_OPCODE_T Group0x0ffe[4]; extern DIS_OPCODE_T Group0x0fc4[8]; extern DIS_OPCODE_T Group0x0fc5[4]; extern DIS_OPCODE_T Group0x0fc6[4]; extern DIS_OPCODE_T Group0x0f[256]; //extern DIS_OPCODE_T Group_main[398]; extern DIS_OPCODE_T RexPrefixFor64Bit[1]; typedef TMap NAME_OPCODE_MAP; #endif ================================================ FILE: Project/EXEAnalyzer/Source/MZFile.cpp ================================================ #include "StdAfx.h" #include "MZFile.h" CMZFile::CMZFile() { } void CMZFile::Close() { CImageFile::Close(); } bool CMZFile::Open(PCSTR FileName,HANDLE*pHandleOpen) { if(CImageFile::Open(FileName,pHandleOpen)==FALSE) return FALSE; ////ǷMZļ////////////////////// if(!ReadFile(0,&m_MZHead,sizeof(m_MZHead))) return FALSE; if(m_MZHead.Signature!=0x4D5A && m_MZHead.Signature!=0x5A4D) { CImageFile::Close(); return FALSE; } m_ImageBase=0x10000; m_ImageSize=m_MZHead.nPage*512+m_MZHead.cbLastPage-m_MZHead.cpHead*16; m_EntryPoint=m_MZHead.CS*16+m_MZHead.IP; return TRUE; } ULSIZE CMZFile::ReadImageMemory(IN ULPOS Address,OUT void* Buffer,IN ULSIZE Size) { MZRELOC Reloc; ULPOS Pos=m_MZHead.cpHead*16; ULPOS ImageHighBase=m_ImageBase+m_ImageSize; if(Size>(int)(ImageHighBase-Address)) Size=ImageHighBase-Address; if(!ReadFile(Pos+Address-m_ImageBase,Buffer,Size)) return 0; if((DWORD)(m_MZHead.fpReloc+m_MZHead.nReloc*4)>m_FileSize) return 0; for(WORD n=0;n=Address && Pos0) CObjFile::CObjFile() { m_StrTabBuf = NULL; m_Section = NULL; m_FuncCount = m_SectCount = 0; m_ObjSymAry = NULL; m_FileBody = NULL; } CObjFile::~CObjFile() { } bool CObjFile::Open(PCSTR FileName,HANDLE*pHandleOpen) { DWORD StrTabSize; int Offset,n; if(CImageFile::Open(FileName,pHandleOpen)==false) return false; if(m_FileSize<=0x100) { CImageFile::Close(); return false; } m_FileBody = new BYTE[m_FileSize]; if(ReadFile(0,m_FileBody,m_FileSize)==false) { delete []m_FileBody; CImageFile::Close(); return false; } if(ReadFile(0,&m_ObjHead,sizeof(OBJ_IMAGE_FILE_HEADER))==false) { delete []m_FileBody; CImageFile::Close(); return false; } for(n=0;m_ObjMachineSign[n];n++) { if(m_ObjHead.Machine==m_ObjMachineSign[n]) break; } if(m_ObjMachineSign[n]==IMAGE_FILE_MACHINE_UNKNOWN) { delete []m_FileBody; CImageFile::Close(); return false; } m_SectCount = m_ObjHead.NumberOfSections; m_Section = (OBJ_SECTION*)&m_FileBody[sizeof(m_ObjHead)]; //m_Section = new OBJ_SECTION[m_SectCount]; //ReadFile(sizeof(m_ObjHead),m_Section,sizeof(OBJ_SECTION)*m_SectCount); //Read String Table Offset = m_ObjHead.PointerToSymbolTable + IMAGE_SIZEOF_SYMBOL*m_ObjHead.NumberOfSymbols; m_StrTabBuf =(char*) &m_FileBody[Offset]; //StrTabSize = 0; StrTabSize = *(DWORD*)&m_FileBody[Offset]; //ReadFile(Offset,&StrTabSize,4); //m_StrTabBuf = new char[StrTabSize+6]; //m_StrTabBuf[StrTabSize+4]=m_StrTabBuf[StrTabSize+5]=0; //ReadFile(Offset,m_StrTabBuf,StrTabSize); //Read Symbol Table m_ObjSymAry = (OBJ_IMAGE_SYMBOL*)&m_FileBody[m_ObjHead.PointerToSymbolTable]; //m_ObjSymAry = new OBJ_IMAGE_SYMBOL[m_ObjHead.NumberOfSymbols]; /* Offset = m_ObjHead.PointerToSymbolTable; for(n=0;n<(int)m_ObjHead.NumberOfSymbols;n++) { ReadFile(Offset,&m_ObjSymAry[n],IMAGE_SIZEOF_SYMBOL); Offset+=IMAGE_SIZEOF_SYMBOL; } */ n=0; //Read Data while(n<(int)m_ObjHead.NumberOfSymbols) { if(IsFunction(m_ObjSymAry[n])) { AddFunction(&m_ObjSymAry[n]); } n+=m_ObjSymAry[n].NumberOfAuxSymbols+1; } return true; } void CObjFile::Close() { //SafeDelete(m_Section); //SafeDelete(m_ObjSymAry); //SafeDelete(m_StrTabBuf); SafeDelete(m_FileBody); m_FuncList.Clear(); CImageFile::Close(); } char* CObjFile::GetSectionName(int SectionIndex) { char TmpName[9]; DWORD StrIndex; if(SectionIndexm_ObjHead.NumberOfSymbols) return NULL; return GetSymbolName(&m_ObjSymAry[Index]); } char* CObjFile::GetSymbolName(OBJ_IMAGE_SYMBOL* Sym) { char* szName; if(Sym->N.Name.Short) { szName = new char[9]; TStrCpyLimit(szName,Sym->N.ShortName,9); return szName; } else { szName = new char [TStrLen(&m_StrTabBuf[Sym->N.Name.Long])+1]; TStrCpy(szName,&m_StrTabBuf[Sym->N.Name.Long]); return szName; } return 0; } void CObjFile::AddFunction(OBJ_IMAGE_SYMBOL*ObjSym) { char szName[9]; int nSec; OBJ_IMAGE_AUX_SYMBOL*ObjAuxSym; ObjAuxSym=(OBJ_IMAGE_AUX_SYMBOL*)&ObjSym[1]; nSec = (int)(ObjSym->SectionNumber-1); TObjFuncList::IT Iter = m_FuncList.Append(); Iter->FilePos = m_Section[nSec].PointerToRawData; Iter->Size = m_Section[nSec].SizeOfRawData; if(ObjSym->N.Name.Short) { TStrCpyLimit(szName,ObjSym->N.ShortName,9); Iter->FuncName = szName; } else { Iter->FuncName = &m_StrTabBuf[ObjSym->N.Name.Long]; } } DWORD CObjFile::m_ObjMachineSign[] = { IMAGE_FILE_MACHINE_I386, IMAGE_FILE_MACHINE_R3000, IMAGE_FILE_MACHINE_R4000, IMAGE_FILE_MACHINE_R10000, IMAGE_FILE_MACHINE_WCEMIPSV2, IMAGE_FILE_MACHINE_ALPHA, IMAGE_FILE_MACHINE_POWERPC, IMAGE_FILE_MACHINE_SH3, IMAGE_FILE_MACHINE_SH3E, IMAGE_FILE_MACHINE_SH4, IMAGE_FILE_MACHINE_ARM, IMAGE_FILE_MACHINE_THUMB, IMAGE_FILE_MACHINE_IA64, IMAGE_FILE_MACHINE_MIPS16, IMAGE_FILE_MACHINE_MIPSFPU, IMAGE_FILE_MACHINE_MIPSFPU16, IMAGE_FILE_MACHINE_ALPHA64, IMAGE_FILE_MACHINE_UNKNOWN }; ================================================ FILE: Project/EXEAnalyzer/Source/ObjFile.h ================================================ #ifndef _OBJ_FILE_H_ #define _OBJ_FILE_H_ #define IMAGE_FILE_MACHINE_UNKNOWN 0 #define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386. #define IMAGE_FILE_MACHINE_R3000 0x0162 // MIPS little-endian, 0x160 big-endian #define IMAGE_FILE_MACHINE_R4000 0x0166 // MIPS little-endian #define IMAGE_FILE_MACHINE_R10000 0x0168 // MIPS little-endian #define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 // MIPS little-endian WCE v2 #define IMAGE_FILE_MACHINE_ALPHA 0x0184 // Alpha_AXP #define IMAGE_FILE_MACHINE_POWERPC 0x01F0 // IBM PowerPC Little-Endian #define IMAGE_FILE_MACHINE_SH3 0x01a2 // SH3 little-endian #define IMAGE_FILE_MACHINE_SH3E 0x01a4 // SH3E little-endian #define IMAGE_FILE_MACHINE_SH4 0x01a6 // SH4 little-endian #define IMAGE_FILE_MACHINE_ARM 0x01c0 // ARM Little-Endian #define IMAGE_FILE_MACHINE_THUMB 0x01c2 #define IMAGE_FILE_MACHINE_IA64 0x0200 // Intel 64 #define IMAGE_FILE_MACHINE_MIPS16 0x0266 // MIPS #define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 // MIPS #define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 // MIPS #define IMAGE_FILE_MACHINE_ALPHA64 0x0284 // ALPHA64 #define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 ////////////////////////////////////////////////////////////// //Sym type ////////////////////////////////////////////////////////////// #define IMAGE_SYM_TYPE_NULL 0x0000 // no type. #define IMAGE_SYM_TYPE_VOID 0x0001 // #define IMAGE_SYM_TYPE_CHAR 0x0002 // type character. #define IMAGE_SYM_TYPE_SHORT 0x0003 // type short integer. #define IMAGE_SYM_TYPE_INT 0x0004 // #define IMAGE_SYM_TYPE_LONG 0x0005 // #define IMAGE_SYM_TYPE_FLOAT 0x0006 // #define IMAGE_SYM_TYPE_DOUBLE 0x0007 // #define IMAGE_SYM_TYPE_STRUCT 0x0008 // #define IMAGE_SYM_TYPE_UNION 0x0009 // #define IMAGE_SYM_TYPE_ENUM 0x000A // enumeration. #define IMAGE_SYM_TYPE_MOE 0x000B // member of enumeration. #define IMAGE_SYM_TYPE_BYTE 0x000C // #define IMAGE_SYM_TYPE_WORD 0x000D // #define IMAGE_SYM_TYPE_UINT 0x000E // #define IMAGE_SYM_TYPE_DWORD 0x000F // #define IMAGE_SYM_TYPE_PCODE 0x8000 // #define IMAGE_SYM_DTYPE_NULL 0 // no derived type. #define IMAGE_SYM_DTYPE_POINTER 1 // pointer. #define IMAGE_SYM_DTYPE_FUNCTION 2 // function. #define IMAGE_SYM_DTYPE_ARRAY 3 // array. ////////////////////////////////////////////////////////////// // Storage classes. ////////////////////////////////////////////////////////////// #define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1 #define IMAGE_SYM_CLASS_NULL 0x0000 #define IMAGE_SYM_CLASS_AUTOMATIC 0x0001 #define IMAGE_SYM_CLASS_EXTERNAL 0x0002 #define IMAGE_SYM_CLASS_STATIC 0x0003 #define IMAGE_SYM_CLASS_REGISTER 0x0004 #define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005 #define IMAGE_SYM_CLASS_LABEL 0x0006 #define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007 #define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008 #define IMAGE_SYM_CLASS_ARGUMENT 0x0009 #define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A #define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B #define IMAGE_SYM_CLASS_UNION_TAG 0x000C #define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D #define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E #define IMAGE_SYM_CLASS_ENUM_TAG 0x000F #define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010 #define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011 #define IMAGE_SYM_CLASS_BIT_FIELD 0x0012 #define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044 // #define IMAGE_SYM_CLASS_BLOCK 0x0064 #define IMAGE_SYM_CLASS_FUNCTION 0x0065 #define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066 #define IMAGE_SYM_CLASS_FILE 0x0067 #define IMAGE_SYM_CLASS_SECTION 0x0068 #define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069 #define IMAGE_SYM_CLASS_CLR_TOKEN 0x006B ////////////////////////////////////////////////////////////// // Section Number Values ////////////////////////////////////////////////////////////// /* #define IMAGE_SYM_UNDEFINED 0 #define IMAGE_SYM_ABSOLUTE -1 #define IMAGE_SYM_DEBUG -2 */ #include struct OBJ_IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; }; typedef struct _OBJ_LINENUMBER { union { DWORD SymbolTableIndex; DWORD VirtualAddress; }Type; WORD Linenumber; }OBJ_LINENUMBER,*POBJ_LINENUMBER; typedef struct _OBJ_RELOCATION_ITEM { DWORD VirtualAddress; DWORD SymbolTableIndex; WORD Type; }OBJ_RELOCATION_ITEM,*POBJ_RELOCATION_ITEM; struct OBJ_IMAGE_SYMBOL { union { BYTE ShortName[8]; struct { DWORD Short; // if 0, use LongName DWORD Long; // offset into string table } Name; DWORD LongName[2]; // PBYTE [2] } N; DWORD Value; short SectionNumber; WORD Type; BYTE StorageClass; BYTE NumberOfAuxSymbols; }; #define IMAGE_SIZEOF_SHORT_NAME 8 struct OBJ_SECTION { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; }Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; DWORD PointerToLinenumbers; WORD NumberOfRelocations; WORD NumberOfLinenumbers; DWORD Characteristics; }; #define IMAGE_SIZEOF_SYMBOL 18 union OBJ_IMAGE_AUX_SYMBOL { struct { DWORD TagIndex; // struct, union, or enum tag index union { struct { WORD Linenumber; // declaration line number WORD Size; // size of struct, union, or enum } LnSz; DWORD TotalSize; } Misc; union { struct { // if ISFCN, tag, or .bb DWORD PointerToLinenumber; DWORD PointerToNextFunction; } Function; struct { // if ISARY, up to 4 dimen. WORD Dimension[4]; } Array; } FcnAry; WORD TvIndex; // tv index } Sym; struct { DWORD Unused; WORD Linenumber; BYTE Unused1[6]; DWORD PointerToNextFunction; WORD Unused2; }bf; struct { DWORD Unused; WORD Linenumber; BYTE Unused1[6]; DWORD Unused3; WORD Unused2; }ef; struct { DWORD Unused; WORD Linenumber; BYTE Unused1[6]; DWORD PointerToNextFunction; WORD Unused2; }lf; struct { DWORD TagIndex; DWORD Characteristics; BYTE Unused[10]; }WeakExternals; struct { BYTE Name[IMAGE_SIZEOF_SYMBOL]; } File; struct { DWORD Length; // section length WORD NumberOfRelocations; // number of relocation entries WORD NumberOfLinenumbers; // number of line numbers DWORD CheckSum; // checksum for communal SHORT Number; // section number to associate with BYTE Selection; // communal selection type }Section; }; struct OBJ_IMAGE_LINENUMBER { union { DWORD SymbolTableIndex; // Symbol table index of function name if Linenumber is 0. DWORD VirtualAddress; // Virtual address of line number. } Type; WORD Linenumber; // Line number. }; #define IMAGE_SIZEOF_SYMBOL 18 #define IMAGE_SIZEOF_AUX_SYMBOL 18 #define IMAGE_SIZEOF_LINENUMBER 6 struct OBJ_FUNC { CStrA FuncName; DWORD FilePos; DWORD Size; }; #include typedef TList TObjFuncList; class CObjFile : public CImageFile { public: CObjFile(); ~CObjFile(); public: bool Open(PCSTR FileName,HANDLE*pHandleOpen = NULL); void Close(); void AddFunction(OBJ_IMAGE_SYMBOL*ObjSym); public: BYTE* m_FileBody; OBJ_IMAGE_FILE_HEADER m_ObjHead; OBJ_SECTION*m_Section; int m_SectCount; int m_FuncCount; TObjFuncList m_FuncList; OBJ_IMAGE_SYMBOL*m_ObjSymAry; char*m_StrTabBuf; static DWORD m_ObjMachineSign[]; char* GetSectionName(int SectionIndex); char* GetSymbolName(OBJ_IMAGE_SYMBOL* Sym); char* GetSymbolNameByIndex(DWORD Index); }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/PEFile.cpp ================================================ #include "StdAfx.h" #include "PEFile.h" CPEFile::CPEFile() { m_PEOff = 0; m_Section = NULL; m_ExportFunc = NULL; m_ImportModule = NULL; m_ResDir = NULL; m_BaseReloc = NULL; m_TLSCallBackFuncs = NULL; m_TLSData = NULL; m_SectCount=0; m_ImportModuleCount=m_ResDirCount=m_BaseRelocCount=m_AddressOfTLSIndex= m_TLSCallBackCount=m_TLSDataSize=m_ExportFuncCount=0; m_OpenMode = PE_OPEN_ALL; } bool CPEFile::MapToMemory(IN DWORD PhyOff,OUT DWORD*pMemAddr,IN bool bImageBase) { for(int n=0;n<=m_SectCount;n++) { if(PhyOff>=m_Section[n].PointerToRawData&&PhyOff=m_Section[n].VirtualAddress && MemAddr< m_Section[n].VirtualAddress + m_Section[n].VirtualSize && MemAddr-m_Section[n].VirtualAddress<=m_Section[n].SizeOfRawData ) { if(pPhysAddr) *pPhysAddr=MemAddr-m_Section[n].VirtualAddress+m_Section[n].PointerToRawData; return true; } } return false; } DWORD CPEFile::GetPageAttribute(DWORD Address) { DWORD Result=MP_READ | MP_WRITE; if(Address=m_ImageHighBase) return 0; Address-=m_ImageBase; for(int n=0;n<=m_SectCount;n++) { if(Address>=m_Section[n].VirtualAddress && Address< m_Section[n].VirtualAddress+m_Section[n].VirtualSize) { Result=0; if(m_Section[n].Characteristics & IMAGE_SCN_MEM_EXECUTE) Result|=MP_READ; if(m_Section[n].Characteristics & IMAGE_SCN_MEM_READ) Result|=MP_READ; if(m_Section[n].Characteristics & IMAGE_SCN_MEM_WRITE) Result|=MP_READ | MP_WRITE; //0ҳλɶдWin95ݣ if(m_Section[n].Characteristics==0) Result=MP_READ | MP_WRITE; return Result; } } return Result; } ULSIZE CPEFile::ReadImageMemory(ULPOS Address,void*Buffer,ULSIZE Size) { PE_SECTION* pCurSec; DWORD dwSize,ReadSize,Pos=0; DWORD LeftSize; DWORD RangeStart,RangeEnd; ////ü/////////////////////////////////// if(Address < m_ImageBase || Address>= m_ImageHighBase) return 0; if(Address< m_ImageHighBase && Address+Size >m_ImageHighBase) { Size=m_ImageHighBase-Address; } if(m_SectCount==0) return ReadFile(Address-m_ImageBase,Buffer,Size); ////ü/////////////////////////////////// LeftSize=Size; Address-=m_ImageBase; ZeroMemory(Buffer,Size); for(int n=0;n<=m_SectCount&&LeftSize;n++) { pCurSec=&m_Section[n]; RangeStart=pCurSec->VirtualAddress; RangeEnd=pCurSec->VirtualAddress+pCurSec->VirtualSize; if(Address>=RangeStart && Address < RangeEnd) { if(AddressSizeOfRawData+pCurSec->VirtualAddress) { dwSize=pCurSec->SizeOfRawData+pCurSec->VirtualAddress-Address; if(LeftSize > dwSize) { LeftSize=LeftSize-dwSize; ReadSize=dwSize; } else { ReadSize=LeftSize; LeftSize=0; } ReadFile(Address-pCurSec->VirtualAddress+pCurSec->PointerToRawData,RT_PBYTE(Buffer,Pos),ReadSize); Pos+=ReadSize; Address+=ReadSize; } else if(Address dwSize) { LeftSize=LeftSize-dwSize; ReadSize=dwSize; } else { ReadSize=LeftSize; LeftSize=0; } Pos+=ReadSize; Address+=ReadSize; } } } return Size; } ULSIZE CPEFile::WriteImageMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } bool CPEFile::LoadPage(ULPOS OldAddress,void*Buffer) { DWORD Delta; ULPOS Address; LONG Size; WORD TypeOffset,Offset,Type; if(m_SectCount==0 || m_Section==NULL) return false; Address = OldAddress; Address &= ~(0xfff); /* if(m_PEHead.SectionAlignment!=MP_SIZE) { ReadImageMemory(Address,Buffer,MP_SIZE); return true; } */ ZeroMemory(Buffer,MP_SIZE); Address-=m_ImageBase; for(int n=0;n<=m_SectCount;n++) { if(Address>=m_Section[n].VirtualAddress && Address < m_Section[n].VirtualAddress+m_Section[n].VirtualSize) { Size=m_Section[n].VirtualAddress+m_Section[n].SizeOfRawData-Address; if(Size>0) { if(Size>MP_SIZE) Size=MP_SIZE; ReadFile(Address-m_Section[n].VirtualAddress+m_Section[n].PointerToRawData,Buffer,Size); if(m_ImageBase==m_PEHead.ImageBase) return true; for(int i=0;i>12; Offset=TypeOffset&0x0FFF;/*@@*/ if(Type==3 && Offset>0x0FFC) { Delta=m_ImageBase-m_PEHead.ImageBase; switch(Offset) { case 0xFFD: PUT_3BYTES(Buffer,Offset,GET_3BYTES(Buffer,Offset)+Delta); break; case 0xFFE: PUT_WORD(Buffer,Offset,GET_WORD(Buffer,Offset)+(WORD)Delta); break; case 0xFFF: PUT_BYTE(Buffer,Offset,GET_BYTE(Buffer,Offset)+(WORD)Delta); break; } } } if(Address==m_BaseReloc[i].VirtualAddr) { for(DWORD r=0;r>12; Offset=TypeOffset&0x0FFF;/*@@*/ if(Type==3 && Offset<=0x0FFC) PUT_DWORD(Buffer,Offset,GET_DWORD(Buffer,Offset)+m_ImageBase-m_PEHead.ImageBase); } } } } return true; } } return false; } bool CPEFile::Open(PCSTR FileName,HANDLE*pHandleOpen) { DWORD MaxHighSectAddr,MinLowSectAddr,MinLowSectAddrFilePos,SafeSectionAlign,SafeFileAlign,NewSize; BYTE HeadBuffer[0x40]; int i; if(CImageFile::Open(FileName,pHandleOpen)==false) { return false; } ////////////////////////////////////////////////////////////// //ǷMZļ ////////////////////////////////////////////////////////////// if(ReadMemory(m_ImageBase,HeadBuffer,sizeof(HeadBuffer))==false) { CImageFile::Close(); return false; } if(_GET_WORD(HeadBuffer)!=0x4D5A && _GET_WORD(HeadBuffer)!=0x5A4D) { CImageFile::Close(); return false; } ////////////////////////////////////////////////////////////// //ǷPEļPEͷ ////////////////////////////////////////////////////////////// m_PEOff=GET_DWORD(HeadBuffer,0x3C); if(m_PEOff >=m_FileSize-sizeof(PE_HEAD)) { CImageFile::Close(); return false; } if(ReadMemory(m_ImageBase+m_PEOff,&m_PEHead,sizeof(PE_HEAD))==false) { CImageFile::Close(); return false; } m_FileType = FILE_TYPE_PE_EXE; //PEͷֽ BIG_ENDIAN_DWORD(m_PEHead.Signature); BIG_ENDIAN_WORD(m_PEHead.Machine); BIG_ENDIAN_WORD(m_PEHead.NumberOfSections); BIG_ENDIAN_DWORD(m_PEHead.TimeDateStamp); BIG_ENDIAN_DWORD(m_PEHead.PointerToSymbolTable); BIG_ENDIAN_DWORD(m_PEHead.NumberOfSymbols); BIG_ENDIAN_WORD(m_PEHead.SizeOfOptionalHeader); BIG_ENDIAN_WORD(m_PEHead.Characteristics); BIG_ENDIAN_WORD(m_PEHead.Magic); BIG_ENDIAN_DWORD(m_PEHead.SizeOfCode); BIG_ENDIAN_DWORD(m_PEHead.SizeOfInitializedData); BIG_ENDIAN_DWORD(m_PEHead.SizeOfUninitializedData); BIG_ENDIAN_DWORD(m_PEHead.AddressOfEntryPoint); BIG_ENDIAN_DWORD(m_PEHead.BaseOfCode); BIG_ENDIAN_DWORD(m_PEHead.BaseOfData); BIG_ENDIAN_DWORD(m_PEHead.ImageBase); BIG_ENDIAN_DWORD(m_PEHead.SectionAlignment); BIG_ENDIAN_DWORD(m_PEHead.FileAlignment); BIG_ENDIAN_WORD(m_PEHead.MajorOperatingSystemVersion); BIG_ENDIAN_WORD(m_PEHead.MinorOperatingSystemVersion); BIG_ENDIAN_WORD(m_PEHead.MajorImageVersion); BIG_ENDIAN_WORD(m_PEHead.MinorImageVersion); BIG_ENDIAN_WORD(m_PEHead.MajorSubsystemVersion); BIG_ENDIAN_WORD(m_PEHead.MinorSubsystemVersion); BIG_ENDIAN_DWORD(m_PEHead.Win32VersionValue); BIG_ENDIAN_DWORD(m_PEHead.SizeOfImage); BIG_ENDIAN_DWORD(m_PEHead.SizeOfHeaders); BIG_ENDIAN_DWORD(m_PEHead.CheckSum); BIG_ENDIAN_WORD(m_PEHead.Subsystem); BIG_ENDIAN_WORD(m_PEHead.DllCharacteristics); BIG_ENDIAN_DWORD(m_PEHead.SizeOfStackReserve); BIG_ENDIAN_DWORD(m_PEHead.SizeOfStackCommit); BIG_ENDIAN_DWORD(m_PEHead.SizeOfHeapReserve); BIG_ENDIAN_DWORD(m_PEHead.SizeOfHeapCommit); BIG_ENDIAN_DWORD(m_PEHead.LoaderFlags); BIG_ENDIAN_DWORD(m_PEHead.NumberOfRvaAndSizes); for(int n=0;nPE_MAX_SECTION_ALIGN || SafeSectionAlign==0) SafeSectionAlign = PE_DEFAULT_SECTION_ALIGN; if(SafeFileAlign>PE_MAX_FILE_ALIGN || SafeFileAlign==0) SafeFileAlign = PE_DEFAULT_FILE_ALIGN; if(m_PEHead.NumberOfSections <= 0 || m_PEHead.NumberOfSections>MAX_PE_SECTION) { CImageFile::Close(); m_ErrorCode = PE_ERROR_SECTION; return false; } m_Section=new PE_SECTION[m_PEHead.NumberOfSections+1]; if(m_Section==NULL) { SafeDelete(m_Section); CImageFile::Close(); m_ErrorCode = PE_ERROR_SECTION; return false; } if(ReadMemory(m_ImageBase+m_PEHead.SizeOfOptionalHeader+m_PEOff+0x18,&m_Section[1],sizeof(PE_SECTION)*m_PEHead.NumberOfSections)==0) { SafeDelete(m_Section); CImageFile::Close(); m_ErrorCode = PE_ERROR_SECTION; return false; } m_SectCount = m_PEHead.NumberOfSections; for(int n=1;n<=m_SectCount;n++) { BIG_ENDIAN_DWORD(m_Section[n].VirtualSize); BIG_ENDIAN_DWORD(m_Section[n].VirtualAddress); BIG_ENDIAN_DWORD(m_Section[n].SizeOfRawData); BIG_ENDIAN_DWORD(m_Section[n].PointerToRawData); BIG_ENDIAN_DWORD(m_Section[n].PointerToRelocations); BIG_ENDIAN_DWORD(m_Section[n].PointerToLinenumbers); BIG_ENDIAN_WORD(m_Section[n].NumberOfRelocations); BIG_ENDIAN_WORD(m_Section[n].NumberOfLinenumbers); BIG_ENDIAN_DWORD(m_Section[n].Characteristics); } ZeroMemory(m_Section,sizeof(PE_SECTION)); m_Section->PointerToRawData=m_Section->VirtualAddress=0; m_Section->SizeOfRawData=m_Section->VirtualSize=m_PEHead.SizeOfHeaders; m_Section->Characteristics = IMAGE_SCN_MEM_WRITE | IMAGE_SCN_MEM_READ; MaxHighSectAddr = 0; MinLowSectAddr = 0xFFFFFFFF; for(i=1;i<=m_SectCount;i++) { if(m_Section[i].VirtualSize == 0) m_Section[i].VirtualSize = m_Section[i].SizeOfRawData; if(m_Section[i].SizeOfRawData%SafeFileAlign) m_Section[i].SizeOfRawData = ALIGN_SIZE(m_Section[i].SizeOfRawData,SafeFileAlign); if(m_Section[i].VirtualSize%SafeSectionAlign) m_Section[i].VirtualSize = ALIGN_SIZE(m_Section[i].VirtualSize,SafeSectionAlign); if(i == m_SectCount) {//⴦һ if(m_Section[i].VirtualSize < m_Section[i].SizeOfRawData) { NewSize = ALIGN_SIZE(m_Section[i].SizeOfRawData,SafeSectionAlign); if(m_Section[i].VirtualAddress+NewSize <= ALIGN_SIZE(m_PEHead.SizeOfImage,MP_SIZE)) m_Section[i].VirtualSize = NewSize; } } if(m_Section[i].VirtualAddressm_FileSize) m_Section[i].SizeOfRawData = 0; if(m_Section[i].SizeOfRawData>MAX_PE_IMAGESIZE) m_Section[i].SizeOfRawData = m_Section[i].VirtualSize; if(m_Section[i].SizeOfRawData + m_Section[i].PointerToRawData > m_FileSize) m_Section[i].SizeOfRawData = m_FileSize - m_Section[i].PointerToRawData; if(m_Section[i].VirtualSize > MAX_PE_IMAGESIZE) m_Section[i].VirtualSize = m_Section[i].SizeOfRawData; if(m_Section[i].VirtualAddress+m_Section[i].VirtualSize >MaxHighSectAddr) MaxHighSectAddr = m_Section[i].VirtualAddress+m_Section[i].VirtualSize; if(m_Section[i].VirtualAddressSizeOfRawData < MinLowSectAddr && MinLowSectAddr!=0xFFFFFFFF) { m_Section->VirtualSize = MinLowSectAddr; if(MinLowSectAddrFilePos) m_Section->SizeOfRawData = MinLowSectAddrFilePos; } if(m_SectCount>0 && m_PEHead.AddressOfEntryPoint>=m_Section[m_SectCount].VirtualAddress+m_Section[m_SectCount].VirtualSize) { if(m_PEHead.AddressOfEntryPoint=m_Section[m_SectCount].PointerToRawData) m_Section[m_SectCount].SizeOfRawData = m_FileSize - m_Section[m_SectCount].PointerToRawData; } } m_FileType=FILE_TYPE_PE; if((m_FileObjType&FILE_OBJ_TYPE_OS_MEMORY_IMAGE)==0) m_ImageBase=m_PEHead.ImageBase; m_ImageSize=ALIGN_SIZE(m_PEHead.SizeOfImage,MP_SIZE); if( m_SectCount > 0 && m_Section[m_SectCount].VirtualAddress + m_Section[m_SectCount].SizeOfRawData > m_ImageSize) { m_ImageSize = m_Section[m_SectCount].VirtualAddress + m_Section[m_SectCount].SizeOfRawData; if(m_Section[m_SectCount].VirtualSize MAX_PE_IMAGESIZE && MaxHighSectAddrNameAddr+=Delta; pImportFunc->ThunkAddr+=Delta; pImportFunc++; } } for(n=0;n=Low && RVALowLow && RVAHigh<=High) return true; if(RVALow<=Low && RVAHigh>=High) return true; } return false; } bool CPEFile::IsImportThunkArea(ULPOS RVALow,ULPOS RVAHigh) { ULPOS ThunkRVALow,ThunkRVAHigh; if(GetImportThunkArea(&ThunkRVALow,&ThunkRVAHigh)==false) return false; if(RVALow>=ThunkRVALow && RVALowThunkRVALow && RVAHigh<=ThunkRVAHigh) return true; if(RVALow<=ThunkRVALow && RVAHigh>=ThunkRVAHigh) return true; return false; } bool CPEFile::GetImportThunkArea(ULPOS*pRVALow,ULPOS*pRVAHigh) { IMPORT_MODULE*pModule; IMPORT_FUNC*pFunc; ULPOS RVALow,RVAHigh; if(m_ImportModuleCount==0) return false; RVALow=0xFFFFFFFF; RVAHigh=0; pModule=m_ImportModule; for(int m=0;mFuncList; for(int f=0;fFuncCount;f++) { if(RVALow>pFunc->ThunkAddr) RVALow=pFunc->ThunkAddr; if(RVAHighThunkAddr) RVAHigh=pFunc->ThunkAddr; pFunc++; } pModule++; } if(RVALow>=RVAHigh) return false; *pRVALow=RVALow-m_ImageBase; *pRVAHigh=RVAHigh-m_ImageBase; return true; } void CPEFile::GetTLS() { ULPOS Pos,Address; TLS_DIRECTORY32 TLSDir; if(m_PEHead.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress==0) return; if(false==MapToFile(m_PEHead.DataDirectory[IMAGE_DIRECTORY_ENTRY_TLS].VirtualAddress,&Pos,false)) return; ReadFile(Pos,&TLSDir,sizeof(TLS_DIRECTORY32)); BIG_ENDIAN_DWORD(TLSDir.StartAddressOfRawData); BIG_ENDIAN_DWORD(TLSDir.EndAddressOfRawData); BIG_ENDIAN_DWORD(TLSDir.AddressOfIndex); BIG_ENDIAN_DWORD(TLSDir.AddressOfCallBacks); BIG_ENDIAN_DWORD(TLSDir.SizeOfZeroFill); BIG_ENDIAN_DWORD(TLSDir.Characteristics); if(TLSDir.AddressOfCallBacks==0) return; if(false==MapToFile(TLSDir.AddressOfCallBacks,&Pos,true)) return; m_TLSCallBackCount=0; m_TLSCallBackFuncs=NULL; while(ReadFile(Pos+m_TLSCallBackCount*4,&Address,4) && m_TLSCallBackCount0) { if(m_TLSCallBackCount>=MAX_PE_TLS_CALLBACK) { m_TLSCallBackCount=0; return; } m_TLSCallBackFuncs = new DWORD[m_TLSCallBackCount]; if(m_TLSCallBackFuncs==NULL) return; ReadFile(Pos,m_TLSCallBackFuncs,m_TLSCallBackCount*4); #ifdef CODE_BIG_ENDIAN for(int n=0;n0 && m_TLSDataSizeMAX_PE_TLS_BLOCK+sizeof(IMAGE_BASE_RELOC) || ImageReloc.BlockSize<=sizeof(IMAGE_BASE_RELOC)) break; m_BaseRelocCount++; ImageRelocPos+=ImageReloc.BlockSize; } if(m_BaseRelocCount<=0 || m_BaseRelocCount>MAX_PE_BASE_RELOC_PAGE) { m_BaseRelocCount = 0; return; } m_BaseReloc=new BASE_RELOC[m_BaseRelocCount]; if(m_BaseReloc==NULL) return; ZeroMemory(m_BaseReloc,sizeof(BASE_RELOC)*m_BaseRelocCount); ImageRelocPos=ImageRelocBasePos; for(int n=0;nMAX_PE_BASE_RELOC_PER_PAGE) { m_BaseReloc[n].Count=0; continue; } if(m_BaseReloc[n].Count>0) m_BaseReloc[n].TypeOffset=new WORD[m_BaseReloc[n].Count]; if(m_BaseReloc[n].TypeOffset==NULL) { m_BaseRelocCount=n; break; } if(!ReadFile(ImageRelocPos+sizeof(IMAGE_BASE_RELOC),m_BaseReloc[n].TypeOffset,sizeof(WORD)*m_BaseReloc[n].Count)) { delete m_BaseReloc[n].TypeOffset; m_BaseRelocCount=n; break; } #ifdef CODE_BIG_ENDIAN for(int m=0;m<(int)m_BaseReloc[n].Count;m++) BIG_ENDIAN_WORD(m_BaseReloc[n].TypeOffset[m]); #endif ImageRelocPos+=ImageReloc.BlockSize; } } void CPEFile::GetImportModule() { ULPOS Address; int ModuleCount,FuncCount; DWORD ImportDescrPos,FuncCallAddr; DWORD* TestFuncThunk; IMPORT_DESCR* pImportDescr,*TestImportDescr; IMPORT_MODULE* pImportModule; IMPORT_FUNC* pImportFunc; if(m_PEHead.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress==0) return; ///////////////////////////////////////////////////////// //ȡģڴ ///////////////////////////////////////////////////////// m_ImportModuleCount=ModuleCount=0; ImportDescrPos = m_PEHead.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress+m_ImageBase; TestImportDescr = new IMPORT_DESCR[MAX_PE_IMPORT_MODULE]; if(TestImportDescr==NULL) return; while(ModuleCount=MAX_PE_IMPORT_MODULE || ModuleCount<=0) return; TestFuncThunk = new DWORD[MAX_PE_FUNC_PER_IMPORT_MODULE]; if(TestFuncThunk==NULL) { delete TestImportDescr; return; } m_ImportModuleCount = ModuleCount; m_ImportModule=new IMPORT_MODULE[ModuleCount]; if(m_ImportModule==NULL) { delete TestFuncThunk; delete TestImportDescr; return; } ZeroMemory(m_ImportModule,sizeof(IMPORT_MODULE)*ModuleCount); //ģ,Ϣ ModuleCount=0; pImportModule = m_ImportModule; pImportDescr = TestImportDescr; while(ModuleCountFirstThunk==0) break; if(0==ReadString(pImportDescr->Name+m_ImageBase,pImportModule->FileName,sizeof(pImportModule->FileName))) break; pImportModule->Address=pImportDescr->Name+m_ImageBase; TGetFileTitle(pImportModule->FileName,pImportModule->ModuleName); //ȡ뺯 FuncCount = 0; if(pImportDescr->OriginalFirstThunk) { FuncCount=ReadString(pImportDescr->OriginalFirstThunk+m_ImageBase,TestFuncThunk,MAX_PE_FUNC_PER_IMPORT_MODULE); } if(FuncCount==0) { FuncCount=ReadString(pImportDescr->FirstThunk+m_ImageBase,TestFuncThunk,MAX_PE_FUNC_PER_IMPORT_MODULE); } if(FuncCount==0) break; if(FuncCountFuncCount = FuncCount; pImportFunc=pImportModule->FuncList = new IMPORT_FUNC[FuncCount]; if(pImportFunc==NULL) { if(m_ImportModule) { delete m_ImportModule; m_ImportModule = NULL; delete TestFuncThunk; delete TestImportDescr; return; } } ZeroMemory(pImportFunc,sizeof(IMPORT_FUNC)*FuncCount); FuncCount=0; FuncCallAddr=pImportDescr->FirstThunk; while(FuncCountFuncCount) { BIG_ENDIAN_DWORD(TestFuncThunk[FuncCount]); Address = TestFuncThunk[FuncCount]; pImportFunc->bUseOrd = (Address&0x80000000) && (Address=m_ImageHighBase); if(pImportFunc->bUseOrd) { pImportFunc->FuncOrd=LOW_WORD(TestFuncThunk[FuncCount]); TSPrintf(pImportFunc->FuncName,"Function_ORD_%04X",pImportFunc->FuncOrd); } else { pImportFunc->NameAddr = Address; if((m_FileObjType&FILE_OBJ_TYPE_OS_MEMORY_IMAGE)==0) pImportFunc->NameAddr+=m_ImageBase; else { if(AddressNameAddr+=m_ImageBase; } if(ReadString(pImportFunc->NameAddr + 2,pImportFunc->FuncName,sizeof(pImportFunc->FuncName))==0) break; } pImportFunc->ThunkAddr=FuncCallAddr+m_ImageBase; FuncCount++; FuncCallAddr+=4; pImportFunc++; }//뺯 pImportModule->FuncCount=FuncCount; } ModuleCount++; pImportModule++; pImportDescr++; } m_ImportModuleCount=ModuleCount; delete TestFuncThunk; delete TestImportDescr; } void CPEFile::GetExportFunc() { EXPORT_DESCR Export; DWORD FuncSize,NameSize; DWORD FuncAddrPos,FuncNameAddrPos,FuncOrdPos; DWORD FuncAddr,FuncNameAddr; WORD FuncOrd; DWORD n; m_ExportFuncCount = 0; if(m_PEHead.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress==0) return; if(ReadMemory(m_PEHead.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress+m_ImageBase,&Export,sizeof(EXPORT_DESCR))!=sizeof(EXPORT_DESCR)) return; BIG_ENDIAN_DWORD(Export.Characteristics); BIG_ENDIAN_DWORD(Export.TimeDateStamp); BIG_ENDIAN_WORD(Export.MajorVersion); BIG_ENDIAN_WORD(Export.MinorVersion); BIG_ENDIAN_DWORD(Export.Name); BIG_ENDIAN_DWORD(Export.Base); BIG_ENDIAN_DWORD(Export.NumberOfFunctions); BIG_ENDIAN_DWORD(Export.NumberOfNames); BIG_ENDIAN_DWORD(Export.AddressOfFunctions); BIG_ENDIAN_DWORD(Export.AddressOfNames); BIG_ENDIAN_DWORD(Export.AddressOfNameOrdinals); FuncSize=Export.NumberOfFunctions; NameSize=Export.NumberOfNames; if(FuncSize>MAX_PE_FUNC_SIZE || FuncSize == 0|| NameSize>MAX_PE_SIZE_SIZE) return; m_ExportFunc=new EXPORT_FUNC[FuncSize]; if(m_ExportFunc==NULL) return; ZeroMemory(m_ExportFunc,sizeof(EXPORT_FUNC)*(FuncSize)); FuncNameAddrPos = Export.AddressOfNames; FuncOrdPos = Export.AddressOfNameOrdinals; FuncAddrPos = Export.AddressOfFunctions,&FuncAddrPos; for( n=0;n= NameSize) { FuncOrd=(WORD)(n+Export.Base); TStrCpy(m_ExportFunc[n].FuncName,"Export_by_Ord_"); uNumToStr(FuncOrd,&m_ExportFunc[n].FuncName[sizeof("Export_by_Ord_")-1],16); } else { ReadString(FuncNameAddr+m_ImageBase,m_ExportFunc[n].FuncName,sizeof(m_ExportFunc[n].FuncName)); ReadMemory(FuncOrdPos+n*2+m_ImageBase,&FuncOrd,2); BIG_ENDIAN_WORD(FuncOrd); } if(FuncOrdMAX_PE_RES_DIR) { m_ResDirCount=0; return; } m_ResDir=new RES_DIR[m_ResDirCount]; if(m_ResDir==NULL) return; ZeroMemory(m_ResDir,m_ResDirCount*sizeof(RES_DIR)); for(int nType=0;nType=MAX_NAME_LEN) continue; if(ReadMemory(Addr+2,m_ResDir[nType].TypeName,RDSize) != RDSize) continue; m_ResDir[nType].Type=INVALID_RES_TYPE; } else { m_ResDir[nType].Type=LOW_WORD(ResDirEntry.Name); } ResDirAddr=Addr=ResBaseAddr+ResDirEntry.OffsetToData&0x7FFFFFFF; if(ReadMemory(Addr,&ResDir,sizeof(RESOURCE_DIRECTORY)) != sizeof(RESOURCE_DIRECTORY)) continue; BIG_ENDIAN_DWORD(ResDir.Characteristics); BIG_ENDIAN_DWORD(ResDir.TimeDateStamp); BIG_ENDIAN_WORD(ResDir.MajorVersion); BIG_ENDIAN_WORD(ResDir.MinorVersion); BIG_ENDIAN_WORD(ResDir.NumberOfNamedEntries); BIG_ENDIAN_WORD(ResDir.NumberOfIdEntries); m_ResDir[nType].ResCount=ResDir.NumberOfIdEntries+ResDir.NumberOfNamedEntries; if(m_ResDir[nType].ResCount<=0 || m_ResDir[nType].ResCount>MAX_PE_RES_PER_TYPE) { m_ResDir[nType].ResCount=0; continue; } if(m_ResDir[nType].ResCount) m_ResDir[nType].ResDataDir=new RES_DATA[m_ResDir[nType].ResCount]; if(m_ResDir[nType].ResDataDir==NULL) continue; ZeroMemory(m_ResDir[nType].ResDataDir,sizeof(RES_DATA)*m_ResDir[nType].ResCount); if(m_ResDir[nType].ResDataDir==NULL) continue; for(int nRes=0;nRessizeof(m_ResDir[nType].ResDataDir[nRes].IDName)/2) NameLength=sizeof(m_ResDir[nType].ResDataDir[nRes].IDName)/2; RDSize = NameLength*2; if(ReadMemory(Addr+2,m_ResDir[nType].ResDataDir[nRes].IDName,RDSize) != RDSize) continue; m_ResDir[nType].ResDataDir[nRes].IDName[RDSize/2]=0; } else { m_ResDir[nType].ResDataDir[nRes].ID=LOW_WORD(ResDirEntry.Name); } Addr=ResBaseAddr+ResDirEntry.OffsetToData&0x7FFFFFFF; if(ReadMemory(Addr,&ResDir,sizeof(RESOURCE_DIRECTORY)) != sizeof(RESOURCE_DIRECTORY)) continue; BIG_ENDIAN_DWORD(ResDir.Characteristics); BIG_ENDIAN_DWORD(ResDir.TimeDateStamp); BIG_ENDIAN_WORD(ResDir.MajorVersion); BIG_ENDIAN_WORD(ResDir.MinorVersion); BIG_ENDIAN_WORD(ResDir.NumberOfNamedEntries); BIG_ENDIAN_WORD(ResDir.NumberOfIdEntries); if(ResDir.NumberOfIdEntries!=1) continue; Addr=Addr+sizeof(RESOURCE_DIRECTORY); if(ReadMemory(Addr,&ResDirEntry,sizeof(RESOURCE_DIRECTORY_ENTRY)) != sizeof(RESOURCE_DIRECTORY_ENTRY)) continue; BIG_ENDIAN_DWORD(ResDirEntry.Name); BIG_ENDIAN_DWORD(ResDirEntry.OffsetToData); if(ResDirEntry.OffsetToData&0x80000000) continue; Addr = ResBaseAddr + ResDirEntry.OffsetToData&0x7FFFFFFF; if(ReadMemory(Addr,&ResDataEntry,sizeof(RESOURCE_DATA_ENTRY)) != sizeof(RESOURCE_DATA_ENTRY)) continue; BIG_ENDIAN_DWORD(ResDataEntry.OffsetToData); BIG_ENDIAN_DWORD(ResDataEntry.Size); BIG_ENDIAN_DWORD(ResDataEntry.CodePage); BIG_ENDIAN_DWORD(ResDataEntry.Reserved); m_ResDir[nType].ResDataDir[nRes].CodePage=ResDataEntry.CodePage; m_ResDir[nType].ResDataDir[nRes].Size=ResDataEntry.Size; m_ResDir[nType].ResDataDir[nRes].BufferAddr = ResDataEntry.OffsetToData + m_ImageBase; } } } int CPEFile::GetLastPhyPosSection() { DWORD LastPos; int Index; LastPos=0; Index=0; for(int i=1;iLastPos) { LastPos=m_Section[i].PointerToRawData; Index=i; } } return Index; } int CPEFile::GetLastMemAddrSection() { DWORD LastPos; int Index; LastPos=0; Index=0; for(int i=1;i<=m_SectCount;i++) { if(m_Section[i].VirtualAddress>LastPos) { LastPos=m_Section[i].VirtualAddress; Index=i; } } return Index; } int CPEFile::GetFirstPhyPosSection() { int Index; DWORD LastPos; Index=0; LastPos=0; for(int i=1;i<=m_SectCount;i++) { if(m_Section[i].PointerToRawData<=LastPos) { LastPos=m_Section[i].PointerToRawData; Index=i; } } return Index; } int CPEFile::GetFirstMemAddrSection() { int Index; DWORD LastPos; Index=0; LastPos=0; for(int i=1;i<=m_SectCount;i++) { if(m_Section[i].VirtualAddress<=LastPos) { LastPos=m_Section[i].VirtualAddress; Index=i; } } return Index; } DWORD CPEFile::GetExportFunc(PCSTR FuncName,int*pIndex) { for(int n=0;nResCount;nStrTab++) { if(StringTableID==ResDir->ResDataDir[nStrTab].ID) { Addr=ResDir->ResDataDir[nStrTab].BufferAddr; Length=ResDir->ResDataDir[nStrTab].Size; break; } } if(nStrTab>=ResDir->ResCount || Addr==0) { *szBuffer=0; return 0; } StringID=StrID%16; if(Length>=MAX_PE_BUFFER_SIZE) { *szBuffer=0; return 0; } pData=new BYTE[Length]; if(pData==NULL) { *szBuffer=0; return 0; } if(ReadMemory(Addr,pData,Length) == 0) { delete pData; *szBuffer=0; return 0; } Offset=0; while(Offset0 || Offset>=Length) { delete pData; *szBuffer=0; return 0; } StrLen=GET_WORD(pData,Offset); Offset+=2; MAX_LIMIT(StrLen,(MaxLen-2)/2); if(Offset+StrLen*2<=Length) memcpy(szBuffer,RT_PWORD(pData,Offset),StrLen*2); else StrLen=0; szBuffer[StrLen]=0; delete pData; return StrLen; } int CPEFile::LoadStringA(DWORD StrID,PSTR szBuffer,int MaxLen) { int StrLen; PWORD pWStr=new WORD[MaxLen]; if(pWStr==NULL) return false; *pWStr=0; LoadStringW(StrID,pWStr,MaxLen*2); StrLen=0; while(pWStr[StrLen]) { szBuffer[StrLen]=(CHAR)pWStr[StrLen]; StrLen++; } szBuffer[StrLen]=0; delete pWStr; return StrLen; } RES_DATA* CPEFile::FindResource(const PWORD szResID,DWORD ResID,const PWORD szType,DWORD Type) { DWORD Length,Addr; RES_DIR*ResDir; GetResource(); ResDir=NULL; for(int nType=0;nTypeResCount;nStrTab++) { if(szResID) { if(TStrICmp(ResDir->ResDataDir[nStrTab].IDName,szResID)==0) { Addr=ResDir->ResDataDir[nStrTab].BufferAddr; Length=ResDir->ResDataDir[nStrTab].Size; return &ResDir->ResDataDir[nStrTab]; } } else { if(ResID==ResDir->ResDataDir[nStrTab].ID) { Addr=ResDir->ResDataDir[nStrTab].BufferAddr; Length=ResDir->ResDataDir[nStrTab].Size; return &ResDir->ResDataDir[nStrTab]; } } } return NULL; } bool CPEFile::GetSectionIndex(IN DWORD Address,OUT int*pIndex) { Address-=m_ImageBase; for(int n=0;n=m_Section[n].VirtualAddress && AddressFuncCount;n++) { if( TStrICmp(pModule->FuncList[n].FuncName,FuncName)==0) return &pModule->FuncList[n]; } return NULL; } IMPORT_FUNC* CPEFile::GetImportModuleFunc(PCSTR ModuleName,PCSTR FuncName) { IMPORT_MODULE*pModule = GetImportModule(ModuleName); if(pModule==NULL) { return NULL; } return GetImportFunc(pModule,FuncName); } bool CPEFile::GetDataDirectory(IN int Index,OUT PPE_DATA_DIR DataDirectory)const { if(Index>=MAX_PE_DATA_DIR) return false; if(DataDirectory) *DataDirectory=m_PEHead.DataDirectory[Index]; return true; } bool CMemPEFile::Open(ULPOS ModuleBase,UINT OpenMode,IN RWProc RMFunc,IN void*RMObj) { if(OpenMode) m_OpenMode|=OpenMode; SetRMProc(RMFunc,RMObj); m_ImageBase = ModuleBase; m_FileObjType = FILE_OBJ_TYPE_OS_MEMORY_IMAGE; return CPEFile::Open(NULL); } ================================================ FILE: Project/EXEAnalyzer/Source/PEFile.h ================================================ #ifndef _PEFILE_H_ #define _PEFILE_H_ ////////////////////////////////////////////////////////////////// //ȫ ////////////////////////////////////////////////////////////////// #define MAX_PE_DATA_DIR 0x10 #define MAX_PE_SECTION 0x80 #define MAX_PE_IMAGESIZE 0x1000000 #define MAX_PE_BUFFER_SIZE 0xFFFF #define MAX_PE_TLS_DATA_SIZE 0x10000 #define MAX_PE_IMPORT_MODULE 0x100 #define MAX_PE_FUNC_PER_IMPORT_MODULE 0x1000 #define MAX_PE_RES_DIR 0x400 #define MAX_PE_RES_PER_TYPE 0x1000 #define MAX_PE_FUNC_SIZE 0xFFFF #define MAX_PE_SIZE_SIZE 0x1000 #define MAX_PE_TLS_BLOCK 0x1000 #define MAX_PE_TLS_CALLBACK 0x200 #define MAX_PE_BASE_RELOC_PAGE 0x1000 #define MAX_PE_BASE_RELOC_PER_PAGE 0x400 #define PE_MAX_SECTION_ALIGN 0x10000 #define PE_MAX_FILE_ALIGN 0x2000 #define PE_DEFAULT_SECTION_ALIGN 0x1000 #define PE_DEFAULT_FILE_ALIGN 0x200 #define INVALID_RES_TYPE 0xFFFFFFFF #define PE_OPEN_EXE 0x00000001 #define PE_OPEN_DLL 0x00000002 #define PE_OPEN_SYS 0x00000004 #define PE_OPEN_NON_I386 0x00000008 #define PE_OPEN_NO_IMPORT 0x00000010 #define PE_OPEN_NO_EXPORT 0x00000020 #define PE_OPEN_NO_IMPORT_STRING 0x00000040 #define PE_OPEN_ALL (PE_OPEN_EXE|PE_OPEN_DLL|PE_OPEN_SYS) enum { PE_ERROR_SUCCESS = 0, PE_ERROR_SIGN, PE_ERROR_SECTION, PE_ERROR_MODULE_TYPE, PE_ERROR_HEAD }; #define IMAGE_SCN_CNT_CODE 0x00000020 // Section contains code. #define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040 // Section contains initialized data. #define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080 // Section contains uninitialized data. #define IMAGE_SCN_MEM_EXECUTE 0x20000000 // Section is executable. #define IMAGE_SCN_MEM_READ 0x40000000 // Section is readable. #define IMAGE_SCN_MEM_WRITE 0x80000000 // Section is writeable. #define IMAGE_SCN_ALL_ATTRIB 0xE0000060 // // I386 relocation types. // #define IMAGE_REL_I386_ABSOLUTE 0x0000 // Reference is absolute, no relocation is necessary #define IMAGE_REL_I386_DIR16 0x0001 // Direct 16-bit reference to the symbols virtual address #define IMAGE_REL_I386_REL16 0x0002 // PC-relative 16-bit reference to the symbols virtual address #define IMAGE_REL_I386_DIR32 0x0006 // Direct 32-bit reference to the symbols virtual address #define IMAGE_REL_I386_DIR32NB 0x0007 // Direct 32-bit reference to the symbols virtual address, base not included #define IMAGE_REL_I386_SEG12 0x0009 // Direct 16-bit reference to the segment-selector bits of a 32-bit virtual address #define IMAGE_REL_I386_SECTION 0x000A #define IMAGE_REL_I386_SECREL 0x000B #define IMAGE_REL_I386_REL32 0x0014 // PC-relative 32-bit reference to the symbols virtual address struct PE_SECTION { CHAR Name[8]; //0x00 DWORD VirtualSize; //0x08 DWORD VirtualAddress; //0x0C DWORD SizeOfRawData; //0x10 DWORD PointerToRawData; //0x14 DWORD PointerToRelocations; //0x18 DWORD PointerToLinenumbers; //0x1C WORD NumberOfRelocations; //0x20 WORD NumberOfLinenumbers; //0x22 DWORD Characteristics; //0x24 }ST_PACK_ONE_BYTE; typedef struct _PE_DATA_DIR { DWORD VirtualAddress; DWORD Size; }PE_DATA_DIR,*PPE_DATA_DIR; typedef struct _PE_DEBUG_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; DWORD Type; DWORD SizeOfData; DWORD AddressOfRawData; DWORD PointerToRawData; } PE_DEBUG_DIRECTORY, *PPE_DEBUG_DIRECTORY; #define IMAGE_DEBUG_MISC_EXENAME 1 typedef struct _PE_DEBUG_MISC { DWORD DataType; // type of misc data, see defines DWORD Length; // total length of record, rounded to four // byte multiple. BYTE Unicode; // TRUE if data is unicode string BYTE Reserved[ 3 ]; BYTE Data[ 260 ]; // Actual data } PE_DEBUG_MISC, *PPE_DEBUG_MISC; typedef struct _PE_DEBUG_CODEVIEW { DWORD Signature; //0x00 NB10־0x3031 DWORD Reserved; // total length of record, rounded to four // byte multiple. DWORD TimeDateStamp; //0x08 DWORD Age; BYTE Name[ 260 ]; // Actual data } PE_DEBUG_CODEVIEW, *PPE_DEBUG_CODEVIEW; typedef struct _PD_DEBUG_PDB { DWORD Signature; union { ULONG Data1; USHORT Data2; USHORT Data3; UCHAR Data4[8]; }Guid; DWORD Reserved; DWORD Reserved1; DWORD Age; BYTE Name[780]; }PE_DEBUG_PDB,*PPE_DEBUG_PDB; struct EXPORT_DESCR { DWORD Characteristics; //0x00 DWORD TimeDateStamp; //0x04 WORD MajorVersion; //0x08 WORD MinorVersion; //0x0A DWORD Name; //0x0C DWORD Base; //0x10 DWORD NumberOfFunctions; //0x14 DWORD NumberOfNames; //0x18 DWORD AddressOfFunctions; //0x1C RVA from base of image DWORD AddressOfNames; //0x20 RVA from base of image DWORD AddressOfNameOrdinals; //0x24 RVA from base of image }ST_PACK_ONE_BYTE; struct IMPORT_DESCR { union { DWORD Characteristics; DWORD OriginalFirstThunk; }; DWORD TimeDateStamp; DWORD ForwarderChain; DWORD Name; DWORD FirstThunk; }; struct EXPORT_FUNC { char FuncName[MAX_NAME_LEN]; DWORD Address; DWORD FuncOrd; DWORD ThunkAddr; }; struct IMPORT_FUNC { char FuncName[MAX_NAME_LEN]; DWORD NameAddr; DWORD ThunkAddr; DWORD Address; DWORD FuncOrd; bool bUseOrd; }; struct IMPORT_MODULE { CHAR ModuleName[MAX_NAME_LEN]; CHAR FileName[MAX_NAME_LEN]; IMPORT_FUNC*FuncList; int FuncCount; DWORD Address; }; // Subsystem Values #define IMAGE_SUBSYSTEM_UNKNOWN 0 // Unknown subsystem. #define IMAGE_SUBSYSTEM_NATIVE 1 // Image doesn't require a subsystem. #define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 // Image runs in the Windows GUI subsystem. #define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 // Image runs in the Windows character subsystem. #define IMAGE_SUBSYSTEM_OS2_CUI 5 // image runs in the OS/2 character subsystem. #define IMAGE_SUBSYSTEM_POSIX_CUI 7 // image runs in the Posix character subsystem. #define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8 // image is a native Win9x driver. #define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 // Image runs in the Windows CE subsystem. #define IMAGE_FILE_MACHINE_UNKNOWN 0 #define IMAGE_FILE_MACHINE_I386 0x014c // Intel 386. #define IMAGE_FILE_MACHINE_R3000 0x0162 // MIPS little-endian, 0x160 big-endian #define IMAGE_FILE_MACHINE_R4000 0x0166 // MIPS little-endian #define IMAGE_FILE_MACHINE_R10000 0x0168 // MIPS little-endian #define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169 // MIPS little-endian WCE v2 #define IMAGE_FILE_MACHINE_ALPHA 0x0184 // Alpha_AXP #define IMAGE_FILE_MACHINE_POWERPC 0x01F0 // IBM PowerPC Little-Endian #define IMAGE_FILE_MACHINE_SH3 0x01a2 // SH3 little-endian #define IMAGE_FILE_MACHINE_SH3E 0x01a4 // SH3E little-endian #define IMAGE_FILE_MACHINE_SH4 0x01a6 // SH4 little-endian #define IMAGE_FILE_MACHINE_ARM 0x01c0 // ARM Little-Endian #define IMAGE_FILE_MACHINE_THUMB 0x01c2 #define IMAGE_FILE_MACHINE_IA64 0x0200 // Intel 64 #define IMAGE_FILE_MACHINE_MIPS16 0x0266 // MIPS #define IMAGE_FILE_MACHINE_MIPSFPU 0x0366 // MIPS #define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466 // MIPS #define IMAGE_FILE_MACHINE_ALPHA64 0x0284 // ALPHA64 #define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64 #define PE_HEAD_SIGNATURE ((0<<24)+(0<<16)+('E'<<8)+('P')) struct PE_HEAD { DWORD Signature; //0x00 PE־0x00004550 WORD Machine; //0x04 WORD NumberOfSections; //0x06 DWORD TimeDateStamp; //0x08 DWORD PointerToSymbolTable; //0x0C DWORD NumberOfSymbols; //0x10 WORD SizeOfOptionalHeader; //0x14 WORD Characteristics; //0x16 WORD Magic; //0x18 BYTE MajorLinkerVersion; //0x1A BYTE MinorLinkerVersion; //0x1B DWORD SizeOfCode; //0x1C DWORD SizeOfInitializedData; //0x20 DWORD SizeOfUninitializedData; //0x24 DWORD AddressOfEntryPoint; //0x28 DWORD BaseOfCode; //0x2C DWORD BaseOfData; //0x30 DWORD ImageBase; //0x34 DWORD SectionAlignment; //0x38 DWORD FileAlignment; //0x3C WORD MajorOperatingSystemVersion;//0x40 WORD MinorOperatingSystemVersion;//0x42 WORD MajorImageVersion; //0x44 WORD MinorImageVersion; //0x46 WORD MajorSubsystemVersion; //0x48 WORD MinorSubsystemVersion; //0x4A DWORD Win32VersionValue; //0x4C DWORD SizeOfImage; //0x50 DWORD SizeOfHeaders; //0x54 DWORD CheckSum; //0x58 WORD Subsystem; //0x5C WORD DllCharacteristics; //0x5E DWORD SizeOfStackReserve; //0x60 DWORD SizeOfStackCommit; //0x64 DWORD SizeOfHeapReserve; //0x68 DWORD SizeOfHeapCommit; //0x6C DWORD LoaderFlags; //0x70 DWORD NumberOfRvaAndSizes; //0x74 PE_DATA_DIR DataDirectory[MAX_PE_DATA_DIR];//0x78 }ST_PACK_ONE_BYTE; struct IMAGE_BASE_RELOC { DWORD VirtualAddress; DWORD BlockSize; }; struct RESOURCE_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; WORD MajorVersion; WORD MinorVersion; WORD NumberOfNamedEntries; WORD NumberOfIdEntries; //IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; }ST_PACK_ONE_BYTE; struct TLS_DIRECTORY32 { DWORD StartAddressOfRawData; DWORD EndAddressOfRawData; DWORD AddressOfIndex; // PDWORD DWORD AddressOfCallBacks; // PIMAGE_TLS_CALLBACK * DWORD SizeOfZeroFill; DWORD Characteristics; }; #define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000 #define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000 struct RESOURCE_DIRECTORY_ENTRY { DWORD Name; DWORD OffsetToData; }; struct RESOURCE_DIRECTORY_STRING { WORD Length; CHAR NameString[1]; }; struct RESOURCE_DATA_ENTRY { DWORD OffsetToData; DWORD Size; DWORD CodePage; DWORD Reserved; }; struct RES_DATA { DWORD CodePage; DWORD ID; WORD IDName[MAX_NAME_LEN]; DWORD BufferAddr; DWORD Size; }; struct RES_DIR { DWORD Type; WORD TypeName[MAX_NAME_LEN]; int ResCount; RES_DATA* ResDataDir; }; struct BASE_RELOC { DWORD VirtualAddr; DWORD Count; WORD* TypeOffset; }; #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory #define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP #define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers #define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor #define IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file. #define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved externel references). #define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 // Line nunbers stripped from file. #define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 // Local symbols stripped from file. #define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 // Agressively trim working set #define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 // App can handle >2gb addresses #define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 // Bytes of machine word are reversed. #define IMAGE_FILE_32BIT_MACHINE 0x0100 // 32 bit word machine. #define IMAGE_FILE_DEBUG_STRIPPED 0x0200 // Debugging info stripped from file in .DBG file #define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 // If Image is on removable media, copy and run from the swap file. #define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 // If Image is on Net, copy and run from the swap file. #define IMAGE_FILE_SYSTEM 0x1000 // System File. #define IMAGE_FILE_DLL 0x2000 // File is a DLL. #define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 // File should only be run on a UP machine #define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 // Bytes of machine word are reversed. #define RES_TYPE_CURSOR 1 #define RES_TYPE_BITMAP 2 #define RES_TYPE_ICON 3 #define RES_TYPE_MENU 4 #define RES_TYPE_DIALOG 5 #define RES_TYPE_STRING 6 #define RES_TYPE_FONTDIR 7 #define RES_TYPE_FONT 8 #define RES_TYPE_ACCELERATOR 9 #define RES_TYPE_RCDATA 10 #define RES_TYPE_MESSAGETABLE 11 #define RES_TYPE_GROUP_CURSOR RES_TYPE_CURSOR + DIFFERENCE #define RES_TYPE_GROUP_ICON RES_TYPE_ICON + DIFFERENCE #define RES_TYPE_VERSION 16 #define RES_TYPE_DLGINCLUDE 17 #define RES_TYPE_HTML 23 class CPEFile : public CImageFile { public: CPEFile(); ////ļغ////////////////////////////////////////////////////// bool MapToFile(IN DWORD MemAddr,OUT DWORD*pPhysAddr = NULL,IN bool bImageBase = TRUE); bool MapToMemory(IN DWORD PhyOff,OUT DWORD*pMemAddr = NULL,IN bool bImageBase = TRUE); public: bool Open(PCSTR FileName,HANDLE*pHandleOpen = NULL); void Close(); ULSIZE ReadImageMemory(ULPOS Address,void*Buffer,ULSIZE Size); ULSIZE WriteImageMemory(ULPOS Address,void*Buffer,ULSIZE Size); bool LoadPage(ULPOS Address,void*Buffer); DWORD GetPageAttribute(ULPOS Address); public: //////////////////////////////////////////////////////// //PE //////////////////////////////////////////////////////// bool Check(); void RelocLoad(IN ULPOS BaseAddr = 0); bool IsRelocArea(ULPOS RVALow,ULPOS RVAHigh); bool IsImportThunkArea(ULPOS RVALow,ULPOS RVAHigh); bool GetImportThunkArea(ULPOS*pRVALow,ULPOS*pRVAHigh); void GetBaseReloc(); void GetImportModule(); IMPORT_MODULE*GetImportModule(PCSTR ModuleName); IMPORT_FUNC*GetImportFunc(IMPORT_MODULE*pModule,PCSTR FuncName); IMPORT_FUNC*GetImportModuleFunc(PCSTR ModuleName,PCSTR FuncName); bool GetDataDirectory(IN int Index,OUT PPE_DATA_DIR DataDirectory)const; void GetExportFunc(); void GetTLS(); void GetResource(); DWORD GetExportFunc(IN PCSTR FuncName,int*pIndex=NULL); DWORD GetExportFunc(IN DWORD FuncOrd); int GetLastPhyPosSection(); //õַǸ int GetLastMemAddrSection(); //õַǸ int GetFirstPhyPosSection(); //õַСǸ int GetFirstMemAddrSection(); //õַСǸ bool GetSectionIndex(IN DWORD Address,OUT int*pIndex); ///////////////////////////////////////////////////////////// //Դ ///////////////////////////////////////////////////////////// int LoadStringW(DWORD StrID,PWORD szBuffer,int MaxLen); int LoadStringA(DWORD StrID,PSTR szBuffer,int MaxLen); RES_DATA*FindResource(const PWORD szResID,DWORD ResID,const PWORD szType,DWORD Type); public: UINT m_OpenMode; UINT m_ErrorCode; ULPOS m_PEOff; PE_SECTION*m_Section; int m_SectCount; PE_HEAD m_PEHead; IMPORT_MODULE* m_ImportModule; //ģ int m_ImportModuleCount;//ģ EXPORT_FUNC*m_ExportFunc; // int m_ExportFuncCount; // RES_DIR* m_ResDir; //ԴĿ¼ int m_ResDirCount; //ԴĿ¼ BASE_RELOC* m_BaseReloc; //ضλĿ¼ int m_BaseRelocCount; //ضλĿ¼ ///////////////////////////////////////////////////// //ֲԴ洢 ///////////////////////////////////////////////////// BYTE* m_TLSData; //TLSʼ int m_TLSDataSize; //TLS DWORD m_AddressOfTLSIndex;//TLSַ DWORD* m_TLSCallBackFuncs; //TLSص int m_TLSCallBackCount; //TLSص }; class CMemPEFile : public CPEFile { public: bool Open(ULPOS ModuleBase,UINT OpenMode,IN RWProc RMFunc,IN void*RMObj); }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/Sources ================================================ TARGETNAME=EXEAnalyzer TARGETPATH=Obj TARGETTYPE=DRIVER_LIBRARY C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h PRECOMPILED_PCH=StdAfx.pch PRECOMPILED_OBJ=StdAfx.obj SOURCES=FileType.cpp \ InstrSym.cpp \ IntelDis.cpp \ MZFile.cpp \ PEFile.cpp \ DbgModule.cpp \ Debugger.cpp \ X86Debugger.cpp \ CodeDoc.cpp ================================================ FILE: Project/EXEAnalyzer/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/EXEAnalyzer/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "EXEAnalyzer.h" #endif ================================================ FILE: Project/EXEAnalyzer/Source/X86Debugger.cpp ================================================ #include "StdAfx.h" #include "X86Debugger.h" CX86Debugger::CX86Debugger() { m_CodeMode = CODE_MODE_32; } CX86Debugger::~CX86Debugger() { } void CX86Debugger::GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr) { } void CX86Debugger::GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID) { } bool CX86Debugger::GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD *pSize) { return false; } bool CX86Debugger::SetCCBP(BREAK_POINT&BP) { if(BP.State == BP_STATE_ENABLE) return true; if(ReadMemory(BP.Address,&BP.CodeBackup,1)==0) return false; if(BP.CodeBackup==0xCC) return false; if(WriteMemory(BP.Address,"\xCC",1)==0) return false; return true; } bool CX86Debugger::ClearCCBP(BREAK_POINT&BP) { if(BP.State == BP_STATE_RECOV || BP.State == BP_STATE_DISABLE) return true; if(WriteMemory(BP.Address,&BP.CodeBackup,1)==0) return false; return true; } bool CX86Debugger::RecoverCCBP(BREAK_POINT&BP) { BYTE Data; if(BP.State != BP_STATE_RECOV) return false; if(ReadMemory(BP.Address,&Data,1)==0) return false; if(Data!=BP.CodeBackup) return false; if(WriteMemory(BP.Address,"\xCC",1)==0) return false; return true; } bool CX86Debugger::SetX86HDBP(BREAK_POINT&BP,DWORD*pDR,DWORD*pDR7) { int Index; DWORD GnLn,RWLen,Mask; //////////////////////////////////////////////////////// //Dr7Ƿп GnLn = 0x3;//11B Index=0; while(Index<4) { if((*pDR7&GnLn)==0) break; GnLn<<=2; Index++; } if(Index>=4) return false; //Dr7Ƿп //////////////////////////////////////////////////////// RWLen = 0; if(BP.Type&BP_TYPE_IO_READWRITE) { RWLen=0x2; BP.Description = "IO"; } if(BP.Type&BP_TYPE_EXECUTE) { RWLen=0x0; BP.Description = "X"; } if(BP.Type&BP_TYPE_WRITE&&(BP.Type&BP_TYPE_READ)==0) { BP.Description = "W"; RWLen=0x1; } else if(BP.Type&BP_TYPE_READWRITE) { BP.Description = "RW"; RWLen=0x3; } switch(BP.Length) { case 1: break; case 2: RWLen |= 0x04; break; case 4: RWLen |= 0x0C; break; default: if((BP.Type&BP_TYPE_EXECUTE)==0) RWLen |= 0x08;//Undefine or 8 byte break; } Mask = (0xF<<(Index*4+16))|GnLn|0xDF00;//0x2000 GD GDλ Mask=~Mask; *pDR7&=Mask;//ʹϵ *pDR7|=(RWLen<<(Index*4+16))|GnLn|0x700;//0x700 set GE and LE bit pDR[Index] = BP.Address; BP.CodeBackup = (BYTE)Index; SaveRegister(); return true; } bool CX86Debugger::ClearX86HDBP(BREAK_POINT&BP,DWORD*pDR,DWORD*pDR7) { DWORD Mask; int Index=0; while(Index<4) { if(pDR[Index]==BP.Address) break; Index++; } if(Index>=4) return true; Mask = (0xF<<(Index*4+16))|(0x3<<(Index*2))|0xDF00;//0x2000 GD GDλ Mask=~Mask; *pDR7&=Mask; if(*pDR7 & 0xFF) *pDR7 |= 0x700; pDR[Index] = 0; return true; } #define DR6_BD 0x2000 #define DR6_BS 0x4000 #define DR6_BT 0x8000 BREAK_POINT*CX86Debugger::IsHanldeHDBP(DWORD DR6) { DWORD Bn; int Index; if(DR6&(DR6_BD|DR6_BS|DR6_BT)) return NULL; Bn = 1; Index=0; while(Index<4) { Bn<<=1; } return NULL; } bool CX86Debugger::IsRecoverBPExist() { CCodeBPMap::IT Iter = m_pCodeBPMap->Begin(); while(Iter.IsExist()) { if(Iter->State == BP_STATE_RECOV) return true; Iter++; } return false; } int CX86Debugger::RecoverBreakPoint() { int Count=0; for(CCodeBPMap::IT Iter=m_pCodeBPMap->Begin();Iter.IsExist();Iter++) { if(Iter->State == BP_STATE_RECOV) { if(SwitchProcessSpace(Iter->PID)) { if(RecoverCCBP(*Iter)) Iter->State = BP_STATE_ENABLE; RestoreProcessSpace(); } Count++; } } return Count; } ================================================ FILE: Project/EXEAnalyzer/Source/X86Debugger.h ================================================ #ifndef _X86_DEBUGGER_H_ #define _X86_DEBUGGER_H_ #include "Debugger.h" struct EFL_REG {//־Ĵλζ int CF:1; //0 int b1:1; //1 int PF:1; //2 int b3:1; //3 int AF:1; //4 int b5:1; //5 int ZF:1; //6 int SF:1; //7 int TF:1; //8 int IF:1; //9 int DF:1; //10 int OF:1; //11 int IOPL:2; //12--13 int NT:1; //14 int bf:1; //15 int RF:1; //16 int VM:1; //17 int AC:1; //18 int VIF:1; //19 int VIP:1; //20 int ID:1; //21 int _22_23:2; //22--23 int _24_31:8; //24--31 }; struct X86_CPU_REG_PTR { DWORD*pEAX; DWORD*pEBX; DWORD*pECX; DWORD*pEDX; DWORD*pEDI; DWORD*pESI; DWORD*pEBP; DWORD*pESP; DWORD*pEIP; EFL_REG*pEFL; WORD*pCS; WORD*pDS; WORD*pES; WORD*pFS; WORD*pGS; WORD*pSS; DWORD*pDR[8]; DWORD*pGDTRBase; WORD*pGDTRLimit; DWORD*pIDTRBase; WORD*pIDTRLimit; WORD*pLDTR; WORD*pTR; DWORD* pCR2; WORD* pFPUControlWord; WORD* pFPUStatusWord; WORD* pFPUTagWord; BYTE* pFPURegisterArea; }; struct X86_CPU_REG { DWORD EAX; DWORD EBX; DWORD ECX; DWORD EDX; DWORD EDI; DWORD ESI; DWORD EBP; DWORD ESP; DWORD EIP; DWORD EFL; WORD CS; WORD DS; WORD ES; WORD FS; WORD GS; WORD SS; DWORD DR[8]; }; enum { CODE_MODE_16 = 0, CODE_MODE_32, }; class CX86Debugger : public CDebugger { public: CX86Debugger(); virtual ~CX86Debugger(); UINT m_CodeMode; public: virtual void GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr); //ⲿȡüĴָ virtual void GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID); virtual bool GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD* pSize=NULL); //ȡλַ virtual bool SetCCBP(BREAK_POINT&BP); virtual bool ClearCCBP(BREAK_POINT&BP); virtual bool RecoverCCBP(BREAK_POINT&BP); virtual bool SetX86HDBP(BREAK_POINT&BP,DWORD*pDR,DWORD*pDR7); virtual bool ClearX86HDBP(BREAK_POINT&BP,DWORD*pDR,DWORD*pDR7); virtual BREAK_POINT*IsHanldeHDBP(DWORD DR6); virtual bool IsRecoverBPExist(); virtual int RecoverBreakPoint(); }; #endif ================================================ FILE: Project/EXEAnalyzer/Source/buildchk_win7_x86.log ================================================ BUILD: Examining d:\syserdbg\project\exeana~1\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling d:\syserdbg\project\exeana~1\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>d:\syserdbg\project\exeana~1\source: TARGETPATH is Obj 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /Id:\syserdbg\project\exeana~1\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x06010000 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlEXEAnalyzer /YcStdAfx.h /Fpd:\syserdbg\project\exeana~1\source\objchk_win7_x86\i386\StdAfx.pch /Fo"d:\syserdbg\project\exeana~1\source\objchk_win7_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @d:\syserdbg\project\exeana~1\source\objchk_win7_x86\i386\cl.rsp 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\EXEAnalyzer.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @d:\syserdbg\project\exeana~1\source\objchk_win7_x86\i386\lib.rsp ================================================ FILE: Project/EXEAnalyzer/Source/buildchk_wnet_x86.log ================================================ 0>Bad Path string: L'e:\ F ' BUILD: Computing Include file dependencies: BUILD: Examining f:\syserdbg\project\exeanalyzer\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling f:\syserdbg\project\exeanalyzer\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>f:\syserdbg\project\exeanalyzer\source: TARGETPATH is Obj 1>BUILDMSG: _NT_TARGET_VERSION SET TO WS03 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /If:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0502 /DWINVER=0x0502 /D_WIN32_IE=0x0603 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x05020100 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlEXEAnalyzer /YcStdAfx.h /Fpf:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0502 1> /DWINVER=0x0502 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05020100 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /YlEXEAnalyzer /Ycstdafx.h /Fpf:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\StdAfx.obj" 1>pch_hdr.src 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\cl.rsp 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Fo"f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386/" 1> /FC 1> /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0502 1> /DWINVER=0x0502 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05020100 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /Yustdafx.h 1> /Fpf:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\StdAfx.pch 1> .\filetype.cpp .\instrsym.cpp .\inteldis.cpp .\mzfile.cpp .\pefile.cpp .\dbgmodule.cpp .\debugger.cpp .\x86debugger.cpp .\codedoc.cpp 1>filetype.cpp 1>instrsym.cpp 1>inteldis.cpp 1>mzfile.cpp 1>pefile.cpp 1>dbgmodule.cpp 1>debugger.cpp 1>x86debugger.cpp 1>codedoc.cpp 1>Generating Code... 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\EXEAnalyzer.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\lib.rsp 1>Microsoft (R) Library Manager Version 9.00.30729.207 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\StdAfx.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\filetype.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\instrsym.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\inteldis.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\mzfile.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\pefile.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\dbgmodule.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\debugger.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\x86debugger.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wnet_x86\i386\codedoc.obj ================================================ FILE: Project/EXEAnalyzer/Source/buildchk_wxp_x86.log ================================================ 0>Bad Path string: L'e:\ F ' BUILD: Computing Include file dependencies: BUILD: Examining f:\syserdbg\project\exeanalyzer\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling f:\syserdbg\project\exeanalyzer\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>f:\syserdbg\project\exeanalyzer\source: TARGETPATH is Obj 1>BUILDMSG: _NT_TARGET_VERSION SET TO WINXP 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /If:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0501 /DWINVER=0x0501 /D_WIN32_IE=0x0603 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x05010200 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlEXEAnalyzer /YcStdAfx.h /Fpf:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0501 1> /DWINVER=0x0501 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05010200 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /YlEXEAnalyzer /Ycstdafx.h /Fpf:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\StdAfx.obj" 1>pch_hdr.src 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\cl.rsp 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Fo"f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386/" 1> /FC 1> /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0501 1> /DWINVER=0x0501 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05010200 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /Yustdafx.h 1> /Fpf:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\StdAfx.pch 1> .\filetype.cpp .\instrsym.cpp .\inteldis.cpp .\mzfile.cpp .\pefile.cpp .\dbgmodule.cpp .\debugger.cpp .\x86debugger.cpp .\codedoc.cpp 1>filetype.cpp 1>instrsym.cpp 1>inteldis.cpp 1>mzfile.cpp 1>pefile.cpp 1>dbgmodule.cpp 1>debugger.cpp 1>x86debugger.cpp 1>codedoc.cpp 1>Generating Code... 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\EXEAnalyzer.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\lib.rsp 1>Microsoft (R) Library Manager Version 9.00.30729.207 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\StdAfx.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\filetype.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\instrsym.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\inteldis.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\mzfile.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\pefile.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\dbgmodule.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\debugger.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\x86debugger.obj 1>f:\syserdbg\project\exeanalyzer\source\objchk_wxp_x86\i386\codedoc.obj ================================================ FILE: Project/EXEAnalyzer/Win32/EXEAnalyzer.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/EXEAnalyzer/Win32/EXEAnalyzer.vcproj ================================================ ================================================ FILE: Project/EXEAnalyzer/Win32/EXEAnalyzer.vcxproj ================================================ Debug Win32 Release Win32 Trial Win32 {094FA380-E96B-4CCB-8F40-D58F53823984} Win32Proj StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte <_ProjectFileVersion>16.0.33801.447 Debug\ Debug\ Release\ Release\ $(Configuration)\ $(Configuration)\ Disabled WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true Default MultiThreadedDebug Use Level3 EditAndContinue $(OutDir)EXEAnalyzer.lib OnlyExplicitInline Neither true WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded false Use Level3 ProgramDatabase $(OutDir)EXEAnalyzer.lib OnlyExplicitInline Neither true WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded false Use Level3 ProgramDatabase $(OutDir)EXEAnalyzer.lib Create Create Create ================================================ FILE: Project/EXEAnalyzer/Win32/EXEAnalyzerTest.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzerTest", "EXEAnalyzerTest.vcproj", "{EE3803C0-88D2-4ECD-8CBB-9520809B64F1}" ProjectSection(ProjectDependencies) = postProject {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {EE3803C0-88D2-4ECD-8CBB-9520809B64F1}.Debug.ActiveCfg = Debug|Win32 {EE3803C0-88D2-4ECD-8CBB-9520809B64F1}.Debug.Build.0 = Debug|Win32 {EE3803C0-88D2-4ECD-8CBB-9520809B64F1}.Release.ActiveCfg = Release|Win32 {EE3803C0-88D2-4ECD-8CBB-9520809B64F1}.Release.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/EXEAnalyzer/Win32/EXEAnalyzerTest.vcproj ================================================ ================================================ FILE: Project/EXEAnalyzer/WinDrv32/EXEAnalyzer.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "EXEAnalyzer.vcproj", "{0D179212-76E2-4D00-ABC1-40B3A0D7DBE0}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0D179212-76E2-4D00-ABC1-40B3A0D7DBE0}.Debug|Win32.ActiveCfg = Debug|Win32 {0D179212-76E2-4D00-ABC1-40B3A0D7DBE0}.Debug|Win32.Build.0 = Debug|Win32 {0D179212-76E2-4D00-ABC1-40B3A0D7DBE0}.Release|Win32.ActiveCfg = Release|Win32 {0D179212-76E2-4D00-ABC1-40B3A0D7DBE0}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/EXEAnalyzer/WinDrv32/EXEAnalyzer.vcproj ================================================ ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/EXEAnalyzer.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "EXEAnalyzer.vcproj", "{75EBA530-480B-4CB3-A1A5-5887AE6C0252}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Debug|Win32.ActiveCfg = Debug|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Debug|Win32.Build.0 = Debug|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Release|Win32.ActiveCfg = Release|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Release|Win32.Build.0 = Release|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Trial|Win32.ActiveCfg = Trial|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/EXEAnalyzer.sln.old ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "EXEAnalyzer.vcproj", "{75EBA530-480B-4CB3-A1A5-5887AE6C0252}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Debug.ActiveCfg = Debug|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Debug.Build.0 = Debug|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Release.ActiveCfg = Release|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/EXEAnalyzer.vcproj ================================================ ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/UpgradeLog.XML ================================================ ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/_UpgradeReport_Files/UpgradeReport.css ================================================ BODY { BACKGROUND-COLOR: white; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-LEFT: 0px; MARGIN-TOP: 0px } P { FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 70%; LINE-HEIGHT: 12pt; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 10px; MARGIN-TOP: 10px } .note { BACKGROUND-COLOR: #ffffff; COLOR: #336699; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 0px; MARGIN-TOP: 0px; PADDING-RIGHT: 10px } .infotable { BACKGROUND-COLOR: #f0f0e0; BORDER-BOTTOM: #ffffff 0px solid; BORDER-COLLAPSE: collapse; BORDER-LEFT: #ffffff 0px solid; BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 70%; MARGIN-LEFT: 10px } .issuetable { BACKGROUND-COLOR: #ffffe8; BORDER-COLLAPSE: collapse; COLOR: #000000; FONT-SIZE: 100%; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 13px; MARGIN-TOP: 0px } .issuetitle { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px; COLOR: #003366; FONT-WEIGHT: normal } .header { BACKGROUND-COLOR: #cecf9c; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; COLOR: #000000; FONT-WEIGHT: bold } .issuehdr { BACKGROUND-COLOR: #E0EBF5; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; COLOR: #000000; FONT-WEIGHT: normal } .issuenone { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-RIGHT: 0px; BORDER-TOP: 0px; COLOR: #000000; FONT-WEIGHT: normal } .content { BACKGROUND-COLOR: #e7e7ce; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 3px } .issuecontent { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; PADDING-LEFT: 3px } A:link { COLOR: #cc6633; TEXT-DECORATION: underline } A:visited { COLOR: #cc6633; } A:active { COLOR: #cc6633; } A:hover { COLOR: #cc3300; TEXT-DECORATION: underline } H1 { BACKGROUND-COLOR: #003366; BORDER-BOTTOM: #336699 6px solid; COLOR: #ffffff; FONT-SIZE: 130%; FONT-WEIGHT: normal; MARGIN: 0em 0em 0em -20px; PADDING-BOTTOM: 8px; PADDING-LEFT: 30px; PADDING-TOP: 16px } H2 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 3px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px; PADDING-LEFT: 0px } H3 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: -5px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px } H4 { COLOR: #000000; FONT-SIZE: 70%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 0px; MARGIN-TOP: 15px; PADDING-BOTTOM: 0px } UL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } OL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } LI { LIST-STYLE: square; MARGIN-LEFT: 0px } .expandable { CURSOR: hand } .expanded { color: black } .collapsed { DISPLAY: none } .foot { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #cecf9c 1px solid; BORDER-TOP: #cecf9c 2px solid } .settings { MARGIN-LEFT: 25PX; } .help { TEXT-ALIGN: right; margin-right: 10px; } ================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/_UpgradeReport_Files/UpgradeReport.xslt ================================================

解决方案: 项目:

src
文件名 状态 错误 警告
javascript:document.images[''].click()src 已转换 已转换
个文件 1 个文件 已转换:
未转换:
: 转换报告 <xsl:if test="Properties/Property[@Name='LogNumber']"> <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> </xsl:if>

转换报告 -

转换时间:

转换设置

================================================ FILE: Project/EXEAnalyzer/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/EXEAnalyzer/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/EXEAnalyzer/incfile.txt ================================================ ================================================ FILE: Project/EXEAnalyzer/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/IntelCPU/Source/access.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: access.cc,v 1.12 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::write_virtual_checks(bx_segment_reg_t *seg, Bit32u offset, unsigned length) { Bit32u upper_limit; if ( seg->cache.valid==0 ) { BX_ERROR(("seg = %s", BX_CPU_THIS_PTR strseg(seg))); BX_ERROR(("seg->selector.value = %04x", (unsigned) seg->selector.value)); BX_ERROR(("write_virtual_checks: valid bit = 0")); BX_ERROR(("CS: %04x", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[1].selector.value)); BX_ERROR(("IP: %04x", (unsigned) BX_CPU_THIS_PTR prev_eip)); exception(BX_GP_EXCEPTION, 0, 0); return; } if (seg->cache.p == 0) { /* not present */ BX_INFO(("write_virtual_checks(): segment not present")); exception(int_number(seg), 0, 0); return; } switch ( seg->cache.type ) { case 0: case 1: // read only case 4: case 5: // read only, expand down case 8: case 9: // execute only case 10: case 11: // execute/read case 12: case 13: // execute only, conforming case 14: case 15: // execute/read-only, conforming BX_INFO(("write_virtual_checks(): no write access to seg")); exception(int_number(seg), 0, 0); return; case 2: case 3: /* read/write */ if (offset > (seg->cache.u.segment.limit_scaled - length + 1) || (length-1 > seg->cache.u.segment.limit_scaled)) { BX_INFO(("write_virtual_checks(): write beyond limit, r/w")); exception(int_number(seg), 0, 0); return; } break; case 6: case 7: /* read write, expand down */ if (seg->cache.u.segment.d_b) upper_limit = 0xffffffff; else upper_limit = 0x0000ffff; if ( (offset <= seg->cache.u.segment.limit_scaled) || (offset > upper_limit) || ((upper_limit - offset) < (length - 1)) ) { BX_INFO(("write_virtual_checks(): write beyond limit, r/w ED")); exception(int_number(seg), 0, 0); return; } break; } return; } void BX_CPU_C::read_virtual_checks(bx_segment_reg_t *seg, Bit32u offset, unsigned length) { Bit32u upper_limit; if ( seg->cache.valid==0 ) { BX_ERROR(("seg = %s", BX_CPU_THIS_PTR strseg(seg))); BX_ERROR(("seg->selector.value = %04x", (unsigned) seg->selector.value)); //BX_ERROR(("read_virtual_checks: valid bit = 0")); //BX_ERROR(("CS: %04x", (unsigned) // BX_CPU_THIS_PTR program_visible_sregs[1].selector.value)); //BX_ERROR(("IP: %04x", (unsigned) BX_CPU_THIS_PTR prev_eip)); //debug(BX_CPU_THIS_PTR eip); exception(BX_GP_EXCEPTION, 0, 0); return; } if (seg->cache.p == 0) { /* not present */ BX_INFO(("read_virtual_checks(): segment not present")); exception(int_number(seg), 0, 0); return; } switch ( seg->cache.type ) { case 0: case 1: /* read only */ case 10: case 11: /* execute/read */ case 14: case 15: /* execute/read-only, conforming */ if (offset > (seg->cache.u.segment.limit_scaled - length + 1) || (length-1 > seg->cache.u.segment.limit_scaled)) { BX_INFO(("read_virtual_checks(): write beyond limit")); exception(int_number(seg), 0, 0); return; } break; case 2: case 3: /* read/write */ if (offset > (seg->cache.u.segment.limit_scaled - length + 1) || (length-1 > seg->cache.u.segment.limit_scaled)) { BX_INFO(("read_virtual_checks(): write beyond limit")); exception(int_number(seg), 0, 0); return; } break; case 4: case 5: /* read only, expand down */ if (seg->cache.u.segment.d_b) upper_limit = 0xffffffff; else upper_limit = 0x0000ffff; if ( (offset <= seg->cache.u.segment.limit_scaled) || (offset > upper_limit) || ((upper_limit - offset) < (length - 1)) ) { BX_INFO(("read_virtual_checks(): write beyond limit")); exception(int_number(seg), 0, 0); return; } break; case 6: case 7: /* read write, expand down */ if (seg->cache.u.segment.d_b) upper_limit = 0xffffffff; else upper_limit = 0x0000ffff; if ( (offset <= seg->cache.u.segment.limit_scaled) || (offset > upper_limit) || ((upper_limit - offset) < (length - 1)) ) { BX_INFO(("read_virtual_checks(): write beyond limit")); exception(int_number(seg), 0, 0); return; } break; case 8: case 9: /* execute only */ case 12: case 13: /* execute only, conforming */ /* can't read or write an execute-only segment */ BX_INFO(("read_virtual_checks(): execute only")); exception(int_number(seg), 0, 0); return; break; } return; } char * BX_CPU_C::strseg(bx_segment_reg_t *seg) { return(seg->strseg); } void BX_CPU_C::write_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_WRITE); // all checks OK access_linear(laddr, 1, CPL==3, BX_WRITE, (void *) data); } void BX_CPU_C::write_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_WRITE); // all checks OK access_linear(laddr, 2, CPL==3, BX_WRITE, (void *) data); } void BX_CPU_C::write_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_WRITE); // all checks OK access_linear(laddr, 4, CPL==3, BX_WRITE, (void *) data); } void BX_CPU_C::read_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; read_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK access_linear(laddr, 1, CPL==3, BX_READ, (void *) data); } void BX_CPU_C::read_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; read_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK access_linear(laddr, 2, CPL==3, BX_READ, (void *) data); } void BX_CPU_C::read_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; read_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK access_linear(laddr, 4, CPL==3, BX_READ, (void *) data); } ////////////////////////////////////////////////////////////// // special Read-Modify-Write operations // // address translation info is kept across read/write calls // ////////////////////////////////////////////////////////////// void BX_CPU_C::read_RMW_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR cr0.pg) access_linear(laddr, 1, CPL==3, BX_RW, (void *) data); else #endif { BX_CPU_THIS_PTR address_xlation.paddress1 = laddr; BX_INSTR_LIN_READ(laddr, laddr, 1); BX_INSTR_LIN_WRITE(laddr, laddr, 1); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, laddr, 1, (void *) data); } } void BX_CPU_C::read_RMW_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR cr0.pg) access_linear(laddr, 2, CPL==3, BX_RW, (void *) data); else #endif { BX_CPU_THIS_PTR address_xlation.paddress1 = laddr; BX_INSTR_LIN_READ(laddr, laddr, 2); BX_INSTR_LIN_WRITE(laddr, laddr, 2); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, laddr, 2, data); } } void BX_CPU_C::read_RMW_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR cr0.pg) access_linear(laddr, 4, CPL==3, BX_RW, (void *) data); else #endif { BX_CPU_THIS_PTR address_xlation.paddress1 = laddr; BX_INSTR_LIN_READ(laddr, laddr, 4); BX_INSTR_LIN_WRITE(laddr, laddr, 4); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, laddr, 4, data); } } void BX_CPU_C::write_RMW_virtual_byte(Bit8u val8) { BX_INSTR_MEM_DATA(BX_CPU_THIS_PTR address_xlation.paddress1, 1, BX_WRITE); #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR cr0.pg) { // BX_CPU_THIS_PTR address_xlation.pages must be 1 BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 1, &val8); } else #endif { BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 1, &val8); } } void BX_CPU_C::write_RMW_virtual_word(Bit16u val16) { BX_INSTR_MEM_DATA(BX_CPU_THIS_PTR address_xlation.paddress1, 2, BX_WRITE); #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR cr0.pg) { if (BX_CPU_THIS_PTR address_xlation.pages == 1) { BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 2, &val16); } else { #ifdef BX_LITTLE_ENDIAN BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 1, &val16); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, 1, ((Bit8u *) &val16) + 1); #else BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 1, ((Bit8u *) &val16) + 1); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, 1, &val16); #endif } } else #endif { BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 2, &val16); } } void BX_CPU_C::write_RMW_virtual_dword(Bit32u val32) { BX_INSTR_MEM_DATA(BX_CPU_THIS_PTR address_xlation.paddress1, 4, BX_WRITE); #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR cr0.pg) { if (BX_CPU_THIS_PTR address_xlation.pages == 1) { BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 4, &val32); } else { #ifdef BX_LITTLE_ENDIAN BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1, &val32); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2, ((Bit8u *) &val32) + BX_CPU_THIS_PTR address_xlation.len1); #else BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1, ((Bit8u *) &val32) + (4 - BX_CPU_THIS_PTR address_xlation.len1)); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2, &val32); #endif } } else #endif { BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, 4, &val32); } } void BX_CPU_C::write_push_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_WRITE); // all checks OK access_linear(laddr, 2, CPL==3, BX_WRITE, (void *) data); } void BX_CPU_C::write_push_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_WRITE); // all checks OK access_linear(laddr, 4, CPL==3, BX_WRITE, (void *) data); } int BX_CPU_C::get_physical_host_memory(void **physical_address_base) { return 0; } Bit8u * BX_CPU_C::getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp) { return NULL; } void BX_CPU_C::access_io(Bit16u addr, unsigned length,unsigned pl, unsigned rw,void *data) { return ; } ================================================ FILE: Project/IntelCPU/Source/arith.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: arith.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ ָ //--------------------------------------------------------- void BX_CPU_C::INC_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 + 1; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC8; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 + 1; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC16; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 + 1; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC32; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_RX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; op1 = READ_VIRTUAL_16BIT_REG(OPCODEb1(i)&7); sum = op1 + 1; WRITE_VIRTUAL_16BIT_REG(OPCODEb1(i)&7, sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC16; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_ERX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; op1 = READ_VIRTUAL_32BIT_REG(OPCODEb1(i)&7); sum = op1 + 1; WRITE_VIRTUAL_32BIT_REG(OPCODEb1(i)&7, sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC32; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 - 1; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC8; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 - 1; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC16; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 - 1; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC32; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_RX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; op1 = READ_VIRTUAL_16BIT_REG(OPCODEb1(i)&7); sum = op1 - 1; WRITE_VIRTUAL_16BIT_REG(OPCODEb1(i)&7, sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC16; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_ERX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; op1 = READ_VIRTUAL_32BIT_REG(OPCODEb1(i)&7); sum = op1 - 1; WRITE_VIRTUAL_32BIT_REG(OPCODEb1(i)&7, sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC32; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NEG_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = 0- op1; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_NEG8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { NEG op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NEG_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = 0- op1; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_NEG16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { NEG op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NEG_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = 0- op1; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_NEG32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { NEG op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NOT_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = ~ op1; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NOT_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = ~ op1; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NOT_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = ~ op1; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); sum = op1 + 1; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC8; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); sum = op1 + 1; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC16; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::INC_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); sum = op1 + 1; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_INC32; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf INC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); sum = op1 - 1; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC8; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); sum = op1 - 1; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC16; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::DEC_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); sum = op1 - 1; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = BX_INSTR_DEC32; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf DEC op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NEG_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); sum = 0- op1; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_NEG8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { NEG op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NEG_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); sum = 0- op1; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_NEG16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { NEG op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NEG_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); sum = 0- op1; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_NEG32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { NEG op1 lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NOT_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); sum = ~ op1; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NOT_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); sum = ~ op1; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::NOT_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); sum = ~ op1; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 + op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 + op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 + op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 + op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 + op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 + op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 + op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 + op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 + op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 + op2; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 + op2; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 + op2; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 + op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 + op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 + op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 + op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 + op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 + op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 + op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_ADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 ADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 + op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_ADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 ADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADD_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 + op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_ADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 ADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 - op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 - op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 - op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 - op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 - op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 - op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 - op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 - op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 - op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 - op2; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 - op2; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 - op2; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 - op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 - op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 - op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 - op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_SUB8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 SUB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 - op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_SUB16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 SUB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SUB_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 - op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_SUB32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 SUB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 & op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 & op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 & op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 & op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 & op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 & op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 & op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 & op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 & op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 & op2; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 & op2; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 & op2; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 & op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 & op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 & op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 & op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 & op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 & op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 & op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 AND op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 & op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 AND op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::AND_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 & op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_AND32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 AND op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 ^ op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 ^ op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 ^ op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 ^ op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 ^ op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 ^ op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 ^ op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 ^ op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 ^ op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 ^ op2; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 ^ op2; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 ^ op2; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 ^ op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 ^ op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 ^ op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 ^ op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 ^ op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 ^ op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 ^ op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 XOR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 ^ op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 XOR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XOR_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 ^ op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_XOR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 XOR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 | op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 | op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 | op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 | op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 | op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 | op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 | op2; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 | op2; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 | op2; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 | op2; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 | op2; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 | op2; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 | op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 | op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 | op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 | op2; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 | op2; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 | op2; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 | op2; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 OR op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 | op2; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 OR op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C:: OR_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 | op2; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_OR32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 OR op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 + op2 + prev_cf; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 + op2 + prev_cf; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 + op2 + prev_cf; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 + op2 + prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 + op2 + prev_cf; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_ADC8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 ADC op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 + op2 + prev_cf; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_ADC16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 ADC op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ADC_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 + op2 + prev_cf; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_ADC32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 ADC op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_8BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_16BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_32BIT_REG(0,sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 - op2 - prev_cf; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 - op2 - prev_cf; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 - op2 - prev_cf; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2 - prev_cf; WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 - op2 - prev_cf; WRITE_RMW_VIRTUAL_BYTE(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8_CF(op1,op2,sum,BX_INSTR_SBB8,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dl,op2 SBB op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 - op2 - prev_cf; WRITE_RMW_VIRTUAL_WORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16_CF(op1,op2,sum,BX_INSTR_SBB16,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov dx,op2 SBB op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SBB_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; Boolean prev_cf; prev_cf = (BX_CPU_CLASS_PTR get_CF()); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 - op2 - prev_cf; WRITE_RMW_VIRTUAL_DWORD(sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32_CF(op1,op2,sum,BX_INSTR_SBB32,prev_cf); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov eax,x86_lf_flags sahf mov edx,op2 SBB op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_CMP8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 CMP op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_CMP16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 CMP op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMP_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 - op2; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_CMP32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 CMP op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIb(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = IMMEDIATEIw(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = IMMEDIATEId(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = IMMEDIATEIb(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_AXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = IMMEDIATEIw(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EAXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = IMMEDIATEId(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; op1 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1, op2, sum; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIb(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST8; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op2 TEST op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1, op2, sum; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEIw(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST16; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op2 TEST op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::TEST_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1, op2, sum; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = IMMEDIATEId(i); sum = op1 & op2; #if (HOST_CPU_IS_I80386==0) BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = sum; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = BX_INSTR_TEST32; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op2 TEST op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::XADD_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit8u op2, op1, sum; /* XADD dst(r/m8), src(r8) * temp <-- src + dst | sum = op2 + op1 * src <-- dst | op2 = op1 * dst <-- tmp | op1 = sum */ /* op2 is a register, RMAddr(i) is an index of a register */ op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); /* op1 is a register or memory reference */ op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 + op2; /* now write sum back to destination */ // and write destination into source // Note: if both op1 & op2 are registers, the last one written // should be the sum, as op1 & op2 may be the same register. // For example: XADD AL, AL WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i), op1); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_XADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 XADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) #else BX_PANIC(("XADD_EGbGb: not supported on < 80486")); UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::XADD_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit16u op2, op1, sum; /* XADD dst(r/m16), src(r16) * temp <-- src + dst | sum = op2 + op1 * src <-- dst | op2 = op1 * dst <-- tmp | op1 = sum */ /* op2 is a register, RMAddr(i) is an index of a register */ op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); /* op1 is a register or memory reference */ op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 + op2; /* now write sum back to destination */ // and write destination into source // Note: if both op1 & op2 are registers, the last one written // should be the sum, as op1 & op2 may be the same register. // For example: XADD AL, AL WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), op1); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_XADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 XADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) #else BX_PANIC(("XADD_EGwGw: not supported on < 80486")); UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::XADD_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit32u op2, op1, sum; /* XADD dst(r/m32), src(r32) * temp <-- src + dst | sum = op2 + op1 * src <-- dst | op2 = op1 * dst <-- tmp | op1 = sum */ /* op2 is a register, RMAddr(i) is an index of a register */ op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); /* op1 is a register or memory reference */ op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); sum = op1 + op2; /* now write sum back to destination */ // and write destination into source // Note: if both op1 & op2 are registers, the last one written // should be the sum, as op1 & op2 may be the same register. // For example: XADD AL, AL WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), op1); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_XADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 XADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) #else BX_PANIC(("XADD_EGdGd: not supported on < 80486")); UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::XADD_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit8u op2, op1, sum; /* XADD dst(r/m8), src(r8) * temp <-- src + dst | sum = op2 + op1 * src <-- dst | op2 = op1 * dst <-- tmp | op1 = sum */ /* op2 is a register, RMAddr(i) is an index of a register */ op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); /* op1 is a register or memory reference */ READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); sum = op1 + op2; /* now write sum back to destination */ WRITE_RMW_VIRTUAL_BYTE(sum); /* and write destination into source */ WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i), op1); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,sum,BX_INSTR_XADD8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 XADD op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) #else BX_PANIC(("XADD_EEbGb: not supported on < 80486")); UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::XADD_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit16u op2, op1, sum; /* XADD dst(r/m16), src(r16) * temp <-- src + dst | sum = op2 + op1 * src <-- dst | op2 = op1 * dst <-- tmp | op1 = sum */ /* op2 is a register, RMAddr(i) is an index of a register */ op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); /* op1 is a register or memory reference */ READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); sum = op1 + op2; /* now write sum back to destination */ WRITE_RMW_VIRTUAL_WORD(sum); /* and write destination into source */ WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), op1); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,sum,BX_INSTR_XADD16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 XADD op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) #else BX_PANIC(("XADD_EEwGw: not supported on < 80486")); UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::XADD_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit32u op2, op1, sum; /* XADD dst(r/m32), src(r32) * temp <-- src + dst | sum = op2 + op1 * src <-- dst | op2 = op1 * dst <-- tmp | op1 = sum */ /* op2 is a register, RMAddr(i) is an index of a register */ op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); /* op1 is a register or memory reference */ READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); sum = op1 + op2; /* now write sum back to destination */ WRITE_RMW_VIRTUAL_DWORD(sum); /* and write destination into source */ WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), op1); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,sum,BX_INSTR_XADD32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 XADD op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) #else BX_PANIC(("XADD_EEdGd: not supported on < 80486")); UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::CMPXCHG_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit8u op1, op2, diff; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); diff = READ_VIRTUAL_8BIT_REG(0) - op1; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(READ_VIRTUAL_8BIT_REG(0),op1,diff,BX_INSTR_CMP8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit8u temp; temp = READ_VIRTUAL_8BIT_REG(0); Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op1 cmp temp,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), op2); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest READ_VIRTUAL_8BIT_REG(0) = op1; } #else BX_PANIC(("CMPXCHG_EGbGb:")); #endif } void BX_CPU_C::CMPXCHG_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit16u op1, op2, diff; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); diff = READ_VIRTUAL_16BIT_REG(0) - op1; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(READ_VIRTUAL_16BIT_REG(0),op1,diff,BX_INSTR_CMP16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit16u temp; temp = READ_VIRTUAL_16BIT_REG(0); Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op1 cmp temp,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), op2); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest READ_VIRTUAL_16BIT_REG(0) = op1; } #else BX_PANIC(("CMPXCHG_EGwGw:")); #endif } void BX_CPU_C::CMPXCHG_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit32u op1, op2, diff; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); diff = READ_VIRTUAL_32BIT_REG(0) - op1; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(READ_VIRTUAL_32BIT_REG(0),op1,diff,BX_INSTR_CMP32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u temp; temp = READ_VIRTUAL_32BIT_REG(0); Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op1 cmp temp,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), op2); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest READ_VIRTUAL_32BIT_REG(0) = op1; } #else BX_PANIC(("CMPXCHG_EGdGd:")); #endif } void BX_CPU_C::CMPXCHG_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit8u op1, op2, diff; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); diff = READ_VIRTUAL_8BIT_REG(0) - op1; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(READ_VIRTUAL_8BIT_REG(0),op1,diff,BX_INSTR_CMP8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit8u temp; temp = READ_VIRTUAL_8BIT_REG(0); Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dl,op1 cmp temp,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); WRITE_RMW_VIRTUAL_BYTE(op2); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest READ_VIRTUAL_8BIT_REG(0) = op1; } #else BX_PANIC(("CMPXCHG_EEbGb:")); #endif } void BX_CPU_C::CMPXCHG_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit16u op1, op2, diff; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); diff = READ_VIRTUAL_16BIT_REG(0) - op1; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(READ_VIRTUAL_16BIT_REG(0),op1,diff,BX_INSTR_CMP16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit16u temp; temp = READ_VIRTUAL_16BIT_REG(0); Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov dx,op1 cmp temp,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); WRITE_RMW_VIRTUAL_WORD(op2); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest READ_VIRTUAL_16BIT_REG(0) = op1; } #else BX_PANIC(("CMPXCHG_EEwGw:")); #endif } void BX_CPU_C::CMPXCHG_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit32u op1, op2, diff; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); diff = READ_VIRTUAL_32BIT_REG(0) - op1; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(READ_VIRTUAL_32BIT_REG(0),op1,diff,BX_INSTR_CMP32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u temp; temp = READ_VIRTUAL_32BIT_REG(0); Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; __asm { mov edx,op1 cmp temp,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); WRITE_RMW_VIRTUAL_DWORD(op2); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest READ_VIRTUAL_32BIT_REG(0) = op1; } #else BX_PANIC(("CMPXCHG_EEdGd:")); #endif } void BX_CPU_C::MOV_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; sum = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), sum); } void BX_CPU_C::MOV_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; sum = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), sum); } void BX_CPU_C::MOV_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; sum = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), sum); } void BX_CPU_C::MOV_EGbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; if (MODRMnnn(i)!=0) { BX_PANIC(("MOV_EGbIb: incomplete MODRMnnn(i) !=0")); UndefinedOpcode(icpu,i); } sum = IMMEDIATEIb(i); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),sum); } void BX_CPU_C::MOV_EGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; if (MODRMnnn(i)!=0) { BX_PANIC(("MOV_EGwIw: incomplete MODRMnnn(i) !=0")); UndefinedOpcode(icpu,i); } sum = IMMEDIATEIw(i); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),sum); } void BX_CPU_C::MOV_EGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; if (MODRMnnn(i)!=0) { BX_PANIC(("MOV_EGdId: incomplete MODRMnnn(i) !=0")); UndefinedOpcode(icpu,i); } sum = IMMEDIATEId(i); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),sum); } void BX_CPU_C::MOV_GbEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; sum = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); } void BX_CPU_C::MOV_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; sum = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); } void BX_CPU_C::MOV_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; sum = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); } void BX_CPU_C::MOV_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; sum = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; sum = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; sum = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); WRITE_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_EEbIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; if (MODRMnnn(i)!=0) { BX_PANIC(("MOV_EEbIb: incomplete MODRMnnn(i) !=0")); UndefinedOpcode(icpu,i); } sum = IMMEDIATEIb(i); WRITE_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_EEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; if (MODRMnnn(i)!=0) { BX_PANIC(("MOV_EEwIw: incomplete MODRMnnn(i) !=0")); UndefinedOpcode(icpu,i); } sum = IMMEDIATEIw(i); WRITE_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_EEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; if (MODRMnnn(i)!=0) { BX_PANIC(("MOV_EEdId: incomplete MODRMnnn(i) !=0")); UndefinedOpcode(icpu,i); } sum = IMMEDIATEId(i); WRITE_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_GbEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i),sum); } void BX_CPU_C::MOV_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),sum); } void BX_CPU_C::MOV_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),sum); } void BX_CPU_C::MOVZX_GwEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GwEGb: not supported on < 386")); #else sum = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16u)sum); #endif } void BX_CPU_C::MOVSX_GwEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GwEGb: not supported on < 386")); #else sum = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit8s)sum); #endif } void BX_CPU_C::MOVZX_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GwEGw: not supported on < 386")); #else sum = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16u)sum); #endif } void BX_CPU_C::MOVSX_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GwEGw: not supported on < 386")); #else sum = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16s)sum); #endif } void BX_CPU_C::MOVZX_GdEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GdEGb: not supported on < 386")); #else sum = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit32u)sum); #endif } void BX_CPU_C::MOVSX_GdEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GdEGb: not supported on < 386")); #else sum = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit8s)sum); #endif } void BX_CPU_C::MOVZX_GdEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GdEGw: not supported on < 386")); #else sum = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit32u)sum); #endif } void BX_CPU_C::MOVSX_GdEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GdEGw: not supported on < 386")); #else sum = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit16s)sum); #endif } void BX_CPU_C::MOVZX_GwEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GwEEb: not supported on < 386")); #else READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16u)sum); #endif } void BX_CPU_C::MOVSX_GwEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GwEEb: not supported on < 386")); #else READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit8s)sum); #endif } void BX_CPU_C::MOVZX_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GwEEw: not supported on < 386")); #else READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16u)sum); #endif } void BX_CPU_C::MOVSX_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GwEEw: not supported on < 386")); #else READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16s)sum); #endif } void BX_CPU_C::MOVZX_GdEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GdEEb: not supported on < 386")); #else READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit32u)sum); #endif } void BX_CPU_C::MOVSX_GdEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GdEEb: not supported on < 386")); #else READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit8s)sum); #endif } void BX_CPU_C::MOVZX_GdEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVZX_GdEEw: not supported on < 386")); #else READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit32u)sum); #endif } void BX_CPU_C::MOVSX_GdEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOVSX_GdEEw: not supported on < 386")); #else READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit16s)sum); #endif } void BX_CPU_C::LEA_GwM(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->modC0()) { BX_PANIC(("LEA_GvM: op2 is a register")); UndefinedOpcode(icpu,i); return; } WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),(Bit16u)RMAddr(i)); } void BX_CPU_C::LEA_GdM(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->modC0()) { BX_PANIC(("LEA_GvM: op2 is a register")); UndefinedOpcode(icpu,i); return; } WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),(Bit32u)RMAddr(i)); } void BX_CPU_C::MOV_ALOb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; RMAddr(i) = IMMEDIATEId(i); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_8BIT_REG(0,sum); } void BX_CPU_C::MOV_ObAL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; RMAddr(i) = IMMEDIATEId(i); sum = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_AXOw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; RMAddr(i) = IMMEDIATEId(i); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_16BIT_REG(0,sum); } void BX_CPU_C::MOV_OwAX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; RMAddr(i) = IMMEDIATEId(i); sum = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_EAXOd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; RMAddr(i) = IMMEDIATEId(i); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&sum); WRITE_VIRTUAL_32BIT_REG(0,sum); } void BX_CPU_C::MOV_OdEAX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; RMAddr(i) = IMMEDIATEId(i); sum = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&sum); } void BX_CPU_C::MOV_RLIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; sum = IMMEDIATEIb(i); BX_CPU_CLASS_PTR program_visible_gen_reg[(OPCODEb1(i)&0x3)].word.byte.rl = sum; } void BX_CPU_C::MOV_RHIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u sum; sum = IMMEDIATEIb(i); BX_CPU_CLASS_PTR program_visible_gen_reg[(OPCODEb1(i)&0x3)].word.byte.rh = sum; } void BX_CPU_C::MOV_RXIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u sum; sum = IMMEDIATEIw(i); WRITE_VIRTUAL_16BIT_REG((OPCODEb1(i)&0x7),sum); } void BX_CPU_C::MOV_ERXId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u sum; sum = IMMEDIATEId(i); WRITE_VIRTUAL_32BIT_REG((OPCODEb1(i)&0x7),sum); } void BX_CPU_C::XCHG_EGbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2; op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), op2); WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i), op1); } void BX_CPU_C::XCHG_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), op2); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), op1); } void BX_CPU_C::XCHG_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), op2); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), op1); } void BX_CPU_C::XCHG_RXAX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2; op2 = READ_VIRTUAL_16BIT_REG(0); op1 = READ_VIRTUAL_16BIT_REG((OPCODEb1(i) & 0x07)); WRITE_VIRTUAL_16BIT_REG(0, op1); WRITE_VIRTUAL_16BIT_REG((OPCODEb1(i) & 0x07), op2); } void BX_CPU_C::XCHG_ERXEAX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2; op2 = READ_VIRTUAL_32BIT_REG(0); op1 = READ_VIRTUAL_32BIT_REG((OPCODEb1(i) & 0x07)); WRITE_VIRTUAL_32BIT_REG(0, op1); WRITE_VIRTUAL_32BIT_REG((OPCODEb1(i) & 0x07), op2); } void BX_CPU_C::XCHG_EEbGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2; op2 = READ_VIRTUAL_8BIT_REG(MODRMnnn(i)); READ_RMW_VIRTUAL_BYTE(MODRMSeg(i), RMAddr(i), &op1); WRITE_RMW_VIRTUAL_BYTE(op2); WRITE_VIRTUAL_8BIT_REG(MODRMnnn(i), op1); } void BX_CPU_C::XCHG_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_RMW_VIRTUAL_WORD(MODRMSeg(i), RMAddr(i), &op1); WRITE_RMW_VIRTUAL_WORD(op2); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), op1); } void BX_CPU_C::XCHG_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i), RMAddr(i), &op1); WRITE_RMW_VIRTUAL_DWORD(op2); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), op1); } ================================================ FILE: Project/IntelCPU/Source/bcd.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: bcd.cc,v 1.5 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::DAS(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u tmpCF, tmpAL; /* ??? */ /* the algorithm for DAS is fashioned after the pseudo code in the * Pentium Processor Family Developer's Manual, volume 3. It seems * to have changed from earlier processor's manuals. I'm not sure * if this is a correction in the algorithm printed, or Intel has * changed the handling of instruction. It might not even be * correct yet... */ //IF (AL AND 0FH) > 9 OR AF =1 //THEN //AL AL - 6; //CF CF OR BorrowFromLastSubtraction; (* CF OR borrow from AL AL - 6 *) //AF 1; //ELSE AF 0; //FI; //IF ((AL >9FH) or CF =1) //THEN //AL AL - 60H; //CF 1; //ELSE CF 0; //FI; tmpCF = 0; tmpAL = RW_AL; /* DAS effect the following flags: A,C,S,Z,P */ if (((tmpAL & 0x0F) > 0x09) || BX_CPU_CLASS_PTR get_AF()) { BX_CPU_CLASS_PTR set_AF(1); tmpCF = (RW_AL < 0x06) || BX_CPU_CLASS_PTR get_CF(); RW_AL = RW_AL - 0x06; /*tmpCF = (AL < 0) || CF;*/ } else { BX_CPU_CLASS_PTR set_AF(0); } if ( (tmpAL > 0x9f) || tmpCF ) { RW_AL = RW_AL - 0x60; tmpCF = 1; } BX_CPU_CLASS_PTR set_CF(tmpCF); BX_CPU_CLASS_PTR set_SF(RW_AL >> 7); BX_CPU_CLASS_PTR set_ZF(RW_AL==0); BX_CPU_CLASS_PTR set_PF_base(RW_AL); } void BX_CPU_C::AAA(BX_CPU_C *icpu,bxInstruction_c *i) { //IF ((AL AND 0FH) > 9) OR (AF =1) //THEN //AL (AL + 6); //AH AH + 1; //AF 1; //CF 1; //ELSE //AF 0; //CF 0; //FI; //AL AL AND 0FH; /* AAA effects the following flags: A,C */ if ( ((RW_AL & 0x0f) > 9) || BX_CPU_CLASS_PTR get_AF() ) { RW_AL = (RW_AL + 6); RW_AH = RW_AH + 1; BX_CPU_CLASS_PTR set_AF(1); BX_CPU_CLASS_PTR set_CF(1); } else { BX_CPU_CLASS_PTR set_AF(0); BX_CPU_CLASS_PTR set_CF(0); } RW_AL = RW_AL & 0x0f; } void BX_CPU_C::AAS(BX_CPU_C *icpu,bxInstruction_c *i) { //IF ((AL AND 0FH) > 9) OR (AF =1) //THEN //AL AL C 6; //AH AH C 1; //AF 1; //CF 1; //ELSE //CF 0; //AF 0; //FI; //AL AL AND 0FH; /* AAS affects the following flags: A,C */ if ( ((RW_AL & 0x0F) > 0x09) || BX_CPU_CLASS_PTR get_AF() ) { RW_AL = (RW_AL - 6); RW_AH = RW_AH - 1; BX_CPU_CLASS_PTR set_AF(1); BX_CPU_CLASS_PTR set_CF(1); } else { BX_CPU_CLASS_PTR set_CF(0); BX_CPU_CLASS_PTR set_AF(0); } RW_AL = RW_AL & 0x0f; } void BX_CPU_C::AAM(BX_CPU_C *icpu,bxInstruction_c *i) { //tempAL AL; //AH tempAL / imm8; (* imm8 is set to 0AH for the AAD mnemonic *) //AL tempAL MOD imm8; //The immediate value (imm8) is taken from the second byte of the instruction. //Flags Affected //The SF, ZF, and PF flags are set according to the resulting binary value in the AL register. The //OF, AF, and CF flags are undefined. Bit8u al, imm8; imm8 = IMMEDIATEIb(i); if (imm8==0) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } al = RW_AL; RW_AH = al / imm8; RW_AL = al % imm8; /* AAM affects the following flags: S,Z,P */ BX_CPU_CLASS_PTR set_SF(al>>7); BX_CPU_CLASS_PTR set_ZF(al==0); BX_CPU_CLASS_PTR set_PF_base(al); /* ??? */ } void BX_CPU_C::AAD(BX_CPU_C *icpu,bxInstruction_c *i) { //tempAL AL; //tempAH AH; //AL (tempAL + (tempAH imm8)) AND FFH; (* imm8 is set to 0AH for the AAD mnemonic *) //AH 0 //The immediate value (imm8) is taken from the second byte of the instruction. //Flags Affected //The SF, ZF, and PF flags are set according to the resulting binary value in the AL register; the //OF, AF, and CF flags are undefined. Bit8u imm8; imm8 = IMMEDIATEIb(i); RW_AL = RW_AH * imm8 + RW_AL; RW_AH = 0; /* AAD effects the following flags: S,Z,P */ BX_CPU_CLASS_PTR set_SF(RW_AL >> 7); BX_CPU_CLASS_PTR set_ZF(RW_AL == 0); BX_CPU_CLASS_PTR set_PF_base(RW_AL); } void BX_CPU_C::DAA(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u al; //IF (((AL AND 0FH) > 9) or AF =1) //THEN //AL AL + 6; //CF CF OR CarryFromLastAddition; (* CF OR carry from AL AL + 6 *) //AF 1; //ELSE //AF 0; //FI; //IF ((AL AND F0H) >90H) or CF =1) //THEN //AL AL + 60H; //CF 1; //ELSE //CF 0; //FI; al = RW_AL; // DAA affects the following flags: S,Z,A,P,C // ??? if (((al & 0x0F) > 0x09) || BX_CPU_CLASS_PTR get_AF()) { BX_CPU_CLASS_PTR set_CF(BX_CPU_CLASS_PTR get_CF() || (Bit8u)(al +6) <6 ); al = al + 0x06; BX_CPU_CLASS_PTR set_AF(1); } else { BX_CPU_CLASS_PTR set_AF(0); } if ((al > 0x9F) || BX_CPU_CLASS_PTR get_CF()) { al = al + 0x60; BX_CPU_CLASS_PTR set_CF(1); } else { BX_CPU_CLASS_PTR set_CF(0); } RW_AL = al; BX_CPU_CLASS_PTR set_SF(al >> 7); BX_CPU_CLASS_PTR set_ZF(al == 0); BX_CPU_CLASS_PTR set_PF_base(al); } ================================================ FILE: Project/IntelCPU/Source/bit.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: bit.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ λָ //--------------------------------------------------------- void BX_CPU_C::BSF_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSF_GwEGw(): not supported on < 386")) #else Bit16u op1,op2; op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = 0; while ( (op2 & 0x01) == 0 ) { op1++; op2 >>= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSF_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSF_GdEGd(): not supported on < 386")) #else Bit32u op1,op2; op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = 0; while ( (op2 & 0x01) == 0 ) { op1++; op2 >>= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSR_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSR_GwEGw(): not supported on < 386")) #else Bit16u op1,op2; op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = (16-1); while ( (op2 & (1<<(16-1)))== 0 ) { op1--; op2 <<= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSR_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSR_GdEGd(): not supported on < 386")) #else Bit32u op1,op2; op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = (32-1); while ( (op2 & (1<<(32-1)))== 0 ) { op1--; op2 <<= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSF_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSF_GwEEw(): not supported on < 386")) #else Bit16u op1,op2; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = 0; while ( (op2 & 0x01) == 0 ) { op1++; op2 >>= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSF_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSF_GdEEd(): not supported on < 386")) #else Bit32u op1,op2; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = 0; while ( (op2 & 0x01) == 0 ) { op1++; op2 >>= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSR_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSR_GwEEw(): not supported on < 386")) #else Bit16u op1,op2; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = (16-1); while ( (op2 & (1<<(16-1)))== 0 ) { op1--; op2 <<= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BSR_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BSR_GdEEd(): not supported on < 386")) #else Bit32u op1,op2; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); if (op2 == 0) { BX_CPU_CLASS_PTR set_ZF(1); /* op1 undefined */ return; } op1 = (32-1); while ( (op2 & (1<<(32-1)))== 0 ) { op1--; op2 <<= 1; } BX_CPU_CLASS_PTR set_ZF(0); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),op1); #endif } void BX_CPU_C::BT_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EGwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EGdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EGwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EGwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EGdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EGdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EEwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); RMAddr(i) += 2 * (((Bit16s) (op2 & (0-16))) / 16); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EEdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); RMAddr(i) += 4 * (((Bit32s) (op2 & (0-32))) / 32); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EEwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EEwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BT_EEdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BT_EEdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EGwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit16u) 1) << index); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EGdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit32u) 1) << index); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EGwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EGwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit16u) 1) << index); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EGdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EGdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit32u) 1) << index); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EEwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); RMAddr(i) += 2 * (((Bit16s) (op2 & (0-16))) / 16); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit16u) 1) << index); WRITE_RMW_VIRTUAL_WORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EEdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); RMAddr(i) += 4 * (((Bit32s) (op2 & (0-32))) / 32); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit32u) 1) << index); WRITE_RMW_VIRTUAL_DWORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EEwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EEwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit16u) 1) << index); WRITE_RMW_VIRTUAL_WORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTS_EEdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTS_EEdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 |= (((Bit32u) 1) << index); WRITE_RMW_VIRTUAL_DWORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EGwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EGdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EGwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EGwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EGdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EGdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EEwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); RMAddr(i) += 2 * (((Bit16s) (op2 & (0-16))) / 16); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); WRITE_RMW_VIRTUAL_WORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EEdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); RMAddr(i) += 4 * (((Bit32s) (op2 & (0-32))) / 32); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); WRITE_RMW_VIRTUAL_DWORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EEwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EEwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); WRITE_RMW_VIRTUAL_WORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTR_EEdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTR_EEdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); WRITE_RMW_VIRTUAL_DWORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EGwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); op1 |= (((Bit16u) !temp_cf) << index); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EGdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); op1 |= (((Bit32u) !temp_cf) << index); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EGwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EGwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); op1 |= (((Bit16u) !temp_cf) << index); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EGdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EGdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); op1 |= (((Bit32u) !temp_cf) << index); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EEwGw: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); index = op2 & (16-1); RMAddr(i) += 2 * (((Bit16s) (op2 & (0-16))) / 16); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); op1 |= (((Bit16u) !temp_cf) << index); WRITE_RMW_VIRTUAL_WORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EEdGd: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); index = op2 & (32-1); RMAddr(i) += 4 * (((Bit32s) (op2 & (0-32))) / 32); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); op1 |= (((Bit32u) !temp_cf) << index); WRITE_RMW_VIRTUAL_DWORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EEwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EEwIb: not available on <386")); #else Bit16u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (16-1); index = op2 & (16-1); READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit16u) 1) << index); op1 |= (((Bit16u) !temp_cf) << index); WRITE_RMW_VIRTUAL_WORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } void BX_CPU_C::BTC_EEdIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("BTC_EEdIb: not available on <386")); #else Bit32u op1,op2,index,temp_cf; op2 = IMMEDIATEIb(i) & (32-1); index = op2 & (32-1); READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); temp_cf = (op1 >> index) & 0x01; op1 &= ~(((Bit32u) 1) << index); op1 |= (((Bit32u) !temp_cf) << index); WRITE_RMW_VIRTUAL_DWORD(op1); BX_CPU_CLASS_PTR set_CF(temp_cf); #endif } ================================================ FILE: Project/IntelCPU/Source/cpu.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: cpu.cc,v 1.25 2002/03/20 23:50:23 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" /* __declspec(naked)int mysetjump(MY_JUMP_BUFFER *jump_buff) { unsigned int *p; unsigned int save_Eax; unsigned int save_Edx; unsigned int save_Ecx; unsigned int save_Ebx; unsigned int save_Esp; unsigned int save_Ebp; unsigned int save_Esi; unsigned int save_Edi; unsigned int save_Eip; __asm { push ebp mov ebp, esp sub esp, __LOCAL_SIZE } __asm { mov save_Eax,Eax mov save_Edx,Edx mov save_Ecx,Ecx mov save_Ebx,Ebx mov save_Esp,Esp mov save_Ebp,Ebp mov save_Esi,Esi mov save_Edi,Edi } jump_buff->Eax = save_Eax; jump_buff->Edx = save_Edx; jump_buff->Ecx = save_Ecx; jump_buff->Ebx = save_Ebx; jump_buff->Esp = save_Esp; jump_buff->Ebp = save_Ebp; jump_buff->Esi = save_Esi; jump_buff->Edi = save_Edi; jump_buff->Eip = save_Eip; jump_buff->Esp = save_Ebp; p = (unsigned int *)(save_Ebp); jump_buff->Ebp = *(p+0); jump_buff->Eip = *(p+1); jump_buff->check_s = 0x55aaaa55; jump_buff->check_e = 0x55aaaa55; __asm { xor eax,eax mov esp, ebp pop ebp ret } } void mylongjump(MY_JUMP_BUFFER *jump_buff,unsigned int code) { if (jump_buff->check_s != 0x55aaaa55 || jump_buff->check_e != 0x55aaaa55) { __asm int 3; } __asm { mov eax,code mov ebx,jump_buff // mov Eax,[ebx]MY_JUMP_BUFFER.Eax // mov Edx,[ebx]MY_JUMP_BUFFER.Edx // mov Ecx,[ebx]MY_JUMP_BUFFER.Ecx // mov Ebx,[ebx]MY_JUMP_BUFFER.Ebx mov Esp,[ebx]MY_JUMP_BUFFER.Esp mov Ebp,[ebx]MY_JUMP_BUFFER.Ebp mov Esi,[ebx]MY_JUMP_BUFFER.Esi mov Edi,[ebx]MY_JUMP_BUFFER.Edi mov ecx,[ebx]MY_JUMP_BUFFER.Ebp mov edx,[ebx]MY_JUMP_BUFFER.Eip mov dword ptr [esp+0],ecx mov dword ptr [esp+4],edx mov Edx,[ebx]MY_JUMP_BUFFER.Edx mov Ecx,[ebx]MY_JUMP_BUFFER.Ecx mov Ebx,[ebx]MY_JUMP_BUFFER.Ebx pop Ebp ret } return ; } */ #define BX_INSTR_SPY 0 //unsigned counter[2] = { 0, 0 }; #if BX_SIM_ID == 0 // only need to define once // This array defines a look-up table for the even parity-ness // of an 8bit quantity, for optimal assignment of the parity bit // in the EFLAGS register const Boolean bx_parity_lookup[256] = { 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1 }; #endif #if (X86CPU_MSWIN_MSDOS==1) bx_debug_t bx_dbg; #endif #if BX_SMP_PROCESSORS==1 // single processor simulation, so there's one of everything BX_CPU_C bx_cpu; BX_MEM_C bx_mem; #else // multiprocessor simulation, we need an array of cpus and memories BX_CPU_C *bx_cpu_array[BX_SMP_PROCESSORS+1]; BX_MEM_C *bx_mem_array[BX_ADDRESS_SPACES+1]; #endif // notes: // // check limit of CS? #ifdef REGISTER_IADDR extern void REGISTER_IADDR(Bit32u addr); #endif // The CHECK_MAX_INSTRUCTIONS macro allows cpu_loop to execute a few // instructions and then return so that the other processors have a chance to // run. This is used only when simulating multiple processors. // // If maximum instructions have been executed, return. A count less // than zero means run forever. #define CHECK_MAX_INSTRUCTIONS(count) if (count >= 0) { count--; if (count == 0) return; } #if BX_SMP_PROCESSORS==1 # define BX_TICK1_IF_SINGLE_PROCESSOR() BX_TICK1() #else # define BX_TICK1_IF_SINGLE_PROCESSOR() #endif #if BX_DYNAMIC_TRANSLATION == 0 void BX_CPU_C::cpu_loop(Bit32s max_instr_count) { unsigned ilength; bxInstruction_c i; Bit8u *fetch_ptr; Boolean is_32; #if BX_DEBUGGER BX_CPU_THIS_PTR break_point = 0; #ifdef MAGIC_BREAKPOINT BX_CPU_THIS_PTR magic_break = 0; #endif BX_CPU_THIS_PTR stop_reason = STOP_NO_REASON; #endif (void) setjmp( BX_CPU_THIS_PTR jmp_buf_env ); // not sure if these two are used during the async handling... --bbd BX_CPU_THIS_PTR prev_eip = X86_EIP; // commit new EIP BX_CPU_THIS_PTR prev_esp = X86_ESP; // commit new ESP main_cpu_loop: // ??? BX_CPU_THIS_PTR EXT = 0; BX_CPU_THIS_PTR errorno = 0; // First check on events which occurred for previous instructions // (traps) and ones which are asynchronous to the CPU // (hardware interrupts). if (BX_CPU_THIS_PTR async_event) goto handle_async_event; async_events_processed: // added so that all debugging/tracing code uses the correct EIP even in the // instruction just after a trap/intel_interrupt. If you use the prev_eip that was // set before handle_async_event, traces and breakpoints fail to show the // first instruction of int/trap handlers. BX_CPU_THIS_PTR prev_eip = X86_EIP; // commit new EIP BX_CPU_THIS_PTR prev_esp = X86_ESP; // commit new ESP // Now we can handle things which are synchronous to instruction // execution. if (BX_CPU_THIS_PTR eflags.rf) { BX_CPU_THIS_PTR eflags.rf = 0; } #if BX_X86_DEBUGGER else { // only bother comparing if any breakpoints enabled if ( BX_CPU_THIS_PTR dr7 & 0x000000ff ) { Bit32u iaddr = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + BX_CPU_THIS_PTR prev_eip; Bit32u dr6_bits; if ( (dr6_bits = hwdebug_compare(iaddr, 1, BX_HWDebugInstruction, BX_HWDebugInstruction)) ) { // Add to the list of debug events thus far. BX_CPU_THIS_PTR debug_trap |= dr6_bits; BX_CPU_THIS_PTR async_event = 1; // If debug events are not inhibited on this boundary, // fire off a debug fault. Otherwise handle it on the next // boundary. (becomes a trap) if ( !(BX_CPU_THIS_PTR inhibit_mask & BX_INHIBIT_DEBUG) ) { // Commit debug events to DR6 BX_CPU_THIS_PTR dr6 = BX_CPU_THIS_PTR debug_trap; exception(BX_DB_EXCEPTION, 0, 0); // no error, not intel_interrupt } } } } #endif // We have ignored processing of external interrupts and // debug events on this boundary. Reset the mask so they // will be processed on the next boundary. BX_CPU_THIS_PTR inhibit_mask = 0; #if BX_DEBUGGER { Bit32u debug_eip = BX_CPU_THIS_PTR prev_eip; if ( dbg_is_begin_instr_bpoint( BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, debug_eip, BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + debug_eip, BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b) ) { return; } } #endif // #if BX_DEBUGGER #if BX_INSTR_SPY { int n=0; if ((n & 0xffffff) == 0) { Bit32u cs = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; Bit32u eip = BX_CPU_THIS_PTR prev_eip; fprintf (stdout, "instr %d, time %lld, pc %04x:%08x, fetch_ptr=%p\n", n, bx_pc_system.time_ticks (), cs, eip, fetch_ptr); } n++; } #endif is_32 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b; if (BX_CPU_THIS_PTR bytesleft == 0) { prefetch(); } fetch_ptr = BX_CPU_THIS_PTR fetch_ptr; ilength = fetchDecode(fetch_ptr, &i,MIN(BX_CPU_THIS_PTR bytesleft,0x0f)); if (ilength) { if (i.ResolveModrm) { // call method on BX_CPU_C object BX_CPU_CALL_METHOD(i.ResolveModrm, (BX_CPU_THIS,&i)); } BX_CPU_THIS_PTR fetch_ptr += ilength; BX_CPU_THIS_PTR bytesleft -= ilength; fetch_decode_OK: #if BX_DEBUGGER if (BX_CPU_THIS_PTR trace) { // print the instruction that is about to be executed. #if (BX_SMP_PROCESSORS==1) bx_dbg_disassemble_current (0, 1); // only one cpu, print time stamp #else bx_dbg_disassemble_current (local_apic.get_id (), 1); // this cpu only #endif } #endif { // non repeating instruction BX_CPU_THIS_PTR program_visible_eip += ilength; BX_CPU_CALL_METHOD(i.execute, (BX_CPU_THIS,&i)); } BX_CPU_THIS_PTR prev_eip = X86_EIP; // commit new EIP BX_CPU_THIS_PTR prev_esp = X86_ESP; // commit new ESP #ifdef REGISTER_IADDR REGISTER_IADDR(BX_CPU_THIS_PTR program_visible_eip + BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].cache.u.segment.base); #endif #ifndef DEBUG_GUEST_MACHINE BX_TICK1_IF_SINGLE_PROCESSOR(); #endif //debugger_check: #ifdef DEBUG_GUEST_MACHINE CHECK_MAX_INSTRUCTIONS(max_instr_count); #endif #if (BX_SMP_PROCESSORS>1 && BX_DEBUGGER==0) // The CHECK_MAX_INSTRUCTIONS macro allows cpu_loop to execute a few // instructions and then return so that the other processors have a chance // to run. This is used only when simulating multiple processors. If only // one processor, don't waste any cycles on it! Also, it is not needed // with the debugger because its guard mechanism provides the same // functionality. CHECK_MAX_INSTRUCTIONS(max_instr_count); #endif #if BX_DEBUGGER // BW vm mode switch support is in dbg_is_begin_instr_bpoint // note instr generating exceptions never reach this point. // (mch) Read/write, time break point support if (BX_CPU_THIS_PTR break_point) { switch (BX_CPU_THIS_PTR break_point) { case BREAK_POINT_TIME: BX_INFO(("[%lld] Caught time breakpoint", bx_pc_system.time_ticks())); BX_CPU_THIS_PTR stop_reason = STOP_TIME_BREAK_POINT; return; case BREAK_POINT_READ: BX_INFO(("[%lld] Caught read watch point", bx_pc_system.time_ticks())); BX_CPU_THIS_PTR stop_reason = STOP_READ_WATCH_POINT; return; case BREAK_POINT_WRITE: BX_INFO(("[%lld] Caught write watch point", bx_pc_system.time_ticks())); BX_CPU_THIS_PTR stop_reason = STOP_WRITE_WATCH_POINT; return; default: BX_PANIC(("Weird break point condition")); } } #ifdef MAGIC_BREAKPOINT // (mch) Magic break point support if (BX_CPU_THIS_PTR magic_break) { if (bx_dbg.magic_break_enabled) { BX_DEBUG(("Stopped on MAGIC BREAKPOINT")); BX_CPU_THIS_PTR stop_reason = STOP_MAGIC_BREAK_POINT; return; } else { BX_CPU_THIS_PTR magic_break = 0; BX_CPU_THIS_PTR stop_reason = STOP_NO_REASON; BX_DEBUG(("Ignoring MAGIC BREAKPOINT")); } } #endif { // check for icount or control-C. If found, set guard reg and return. Bit32u debug_eip = BX_CPU_THIS_PTR prev_eip; if ( dbg_is_end_instr_bpoint( BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, debug_eip, BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + debug_eip, BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b) ) { return; } } #endif // #if BX_DEBUGGER goto main_cpu_loop; } else { unsigned remain,j; Bit8u FetchBuffer[16]; Bit8u *temp_ptr; remain = BX_CPU_THIS_PTR bytesleft; if (remain>=0x0f) { BX_PANIC(("fetchdecode: opcode length >= 0x0f")); exception(BX_GP_EXCEPTION, 0, 0); } // read all leftover bytes in current page for (j=0;j(remain+BX_CPU_THIS_PTR bytesleft)) { BX_PANIC(("fetchdecode: cross boundary: opcode length >= bytesleft")); exception(BX_GP_EXCEPTION, 0, 0); } if (i.ResolveModrm) { BX_CPU_CALL_METHOD(i.ResolveModrm, (BX_CPU_THIS,&i)); } remain = ilength - remain; // note: eip has already been advanced to beginning of page BX_CPU_THIS_PTR fetch_ptr = fetch_ptr + remain; BX_CPU_THIS_PTR bytesleft -= remain; //BX_CPU_THIS_PTR program_visible_eip += remain; BX_CPU_THIS_PTR program_visible_eip = BX_CPU_THIS_PTR prev_eip; goto fetch_decode_OK; } // // This area is where we process special conditions and events. // handle_async_event: if (BX_CPU_THIS_PTR debug_trap & 0x80000000) { // I made up the bitmask above to mean HALT state. #if BX_SMP_PROCESSORS==1 BX_CPU_THIS_PTR debug_trap = 0; // clear traps for after resume BX_CPU_THIS_PTR inhibit_mask = 0; // clear inhibits for after resume // for one processor, pass the time as quickly as possible until // an intel_interrupt wakes up the CPU. while (1) { if (BX_CPU_THIS_PTR INTR && BX_CPU_THIS_PTR eflags.if_) { break; } BX_TICK1(); } #else /* BX_SMP_PROCESSORS != 1 */ // for multiprocessor simulation, even if this CPU is halted we still // must give the others a chance to simulate. If an intel_interrupt has // arrived, then clear the HALT condition; otherwise just return from // the CPU loop with stop_reason STOP_CPU_HALTED. if (BX_CPU_THIS_PTR INTR && BX_CPU_THIS_PTR eflags.if_) { // intel_interrupt ends the HALT condition BX_CPU_THIS_PTR debug_trap = 0; // clear traps for after resume BX_CPU_THIS_PTR inhibit_mask = 0; // clear inhibits for after resume //bx_printf ("halt condition has been cleared in %s", name); } else { // HALT condition remains, return so other CPUs have a chance #if BX_DEBUGGER BX_CPU_THIS_PTR stop_reason = STOP_CPU_HALTED; #endif return; } #endif } // Priority 1: Hardware Reset and Machine Checks // RESET // Machine Check // (bochs doesn't support these) // Priority 2: Trap on Task Switch // T flag in TSS is set if (BX_CPU_THIS_PTR debug_trap & 0x00008000) { BX_CPU_THIS_PTR dr6 |= BX_CPU_THIS_PTR debug_trap; exception(BX_DB_EXCEPTION, 0, 0); // no error, not intel_interrupt } // Priority 3: External Hardware Interventions // FLUSH // STOPCLK // SMI // INIT // (bochs doesn't support these) // Priority 4: Traps on Previous Instruction // Breakpoints // Debug Trap Exceptions (TF flag set or data/IO breakpoint) if ( BX_CPU_THIS_PTR debug_trap && !(BX_CPU_THIS_PTR inhibit_mask & BX_INHIBIT_DEBUG) ) { // A trap may be inhibited on this boundary due to an instruction // which loaded SS. If so we clear the inhibit_mask below // and don't execute this code until the next boundary. // Commit debug events to DR6 BX_CPU_THIS_PTR dr6 |= BX_CPU_THIS_PTR debug_trap; exception(BX_DB_EXCEPTION, 0, 0); // no error, not intel_interrupt } // Priority 5: External Interrupts // NMI Interrupts // Maskable Hardware Interrupts if (BX_CPU_THIS_PTR inhibit_mask & BX_INHIBIT_INTERRUPTS) { // Processing external interrupts is inhibited on this // boundary because of certain instructions like STI. // inhibit_mask is cleared below, in which case we will have // an opportunity to check interrupts on the next instruction // boundary. } else if (BX_CPU_THIS_PTR INTR && BX_CPU_THIS_PTR eflags.if_ && BX_DBG_ASYNC_INTR) { Bit8u _vector; // NOTE: similar code in ::take_irq() #if BX_SUPPORT_APIC if (BX_CPU_THIS_PTR int_from_local_apic) _vector = BX_CPU_THIS_PTR local_apic.acknowledge_int (); else _vector = BX_IAC(); // may set INTR with next intel_interrupt #else // if no local APIC, always acknowledge the PIC. _vector = BX_IAC(); // may set INTR with next intel_interrupt #endif //BX_DEBUG(("decode: intel_interrupt %u", // (unsigned) _vector)); BX_CPU_THIS_PTR errorno = 0; BX_CPU_THIS_PTR EXT = 1; /* external event */ intel_interrupt(_vector, 0, 0, 0); BX_INSTR_HWINTERRUPT(_vector, BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_THIS_PTR program_visible_eip); } else if (BX_HRQ && BX_DBG_ASYNC_DMA) { // NOTE: similar code in ::take_dma() // assert Hold Acknowledge (HLDA) and go into a bus hold state BX_RAISE_HLDA(); } // Priority 6: Faults from fetching next instruction // Code breakpoint fault // Code segment limit violation (priority 7 on 486/Pentium) // Code page fault (priority 7 on 486/Pentium) // (handled in main decode loop) // Priority 7: Faults from decoding next instruction // Instruction length > 15 bytes // Illegal opcode // Coprocessor not available // (handled in main decode loop etc) // Priority 8: Faults on executing an instruction // Floating point execution // Overflow // Bound error // Invalid TSS // Segment not present // Stack fault // General protection // Data page fault // Alignment check // (handled by rest of the code) if (BX_CPU_THIS_PTR eflags.tf) { // TF is set before execution of next instruction. Schedule // a debug trap (#DB) after execution. After completion of // next instruction, the code above will invoke the trap. BX_CPU_THIS_PTR debug_trap |= 0x00004000; // BS flag in DR6 } if ( !(BX_CPU_THIS_PTR INTR || BX_CPU_THIS_PTR debug_trap || BX_HRQ || BX_CPU_THIS_PTR eflags.tf) ) { BX_CPU_THIS_PTR async_event = 0; } goto async_events_processed; } #endif // #if BX_DYNAMIC_TRANSLATION == 0 // boundaries of consideration: // // * physical memory boundary: 1024k (1Megabyte) (increments of...) // * A20 boundary: 1024k (1Megabyte) // * page boundary: 4k // * ROM boundary: 2k (dont care since we are only reading) // * segment boundary: any void BX_CPU_C::prefetch(void) { // cs:eIP // prefetch QSIZE byte quantity aligned on corresponding boundary Bit32u new_linear_addr; Bit32u new_phy_addr; Bit32u temp_eip, temp_limit; temp_eip = BX_CPU_THIS_PTR program_visible_eip; temp_limit = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled; new_linear_addr = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + temp_eip; BX_CPU_THIS_PTR prev_linear_page = new_linear_addr & 0xfffff000; if (temp_eip > temp_limit) { BX_PANIC(("prefetch: EIP > CS.limit")); exception(BX_GP_EXCEPTION, 0, 0); } #if BX_SUPPORT_PAGING if (BX_CPU_THIS_PTR cr0.pg) { // aligned block guaranteed to be all in one page, same A20 address new_phy_addr = itranslate_linear(new_linear_addr, CPL==3); new_phy_addr = A20ADDR(new_phy_addr); } else #endif // BX_SUPPORT_PAGING { new_phy_addr = A20ADDR(new_linear_addr); } if ( new_phy_addr >= BX_CPU_THIS_PTR mem->len ) { // don't take this out if dynamic translation enabled, // otherwise you must make a check to see if bytesleft is 0 after // a call to prefetch() in the dynamic code. BX_ERROR(("prefetch: running in bogus memory")); } // max physical address as confined by page boundary BX_CPU_THIS_PTR prev_phy_page = new_phy_addr & 0xfffff000; BX_CPU_THIS_PTR max_phy_addr = BX_CPU_THIS_PTR prev_phy_page | 0x00000fff; // check if segment boundary comes into play //if ((temp_limit - temp_eip) < 4096) { // } #if BX_PCI_SUPPORT if ((new_phy_addr >= 0x000C0000) && (new_phy_addr <= 0x000FFFFF)) { BX_CPU_THIS_PTR bytesleft = 0x4000 - (new_phy_addr & 0x3FFF); BX_CPU_THIS_PTR fetch_ptr = bx_devices.pci->i440fx_fetch_ptr(new_phy_addr); } else { BX_CPU_THIS_PTR bytesleft = (BX_CPU_THIS_PTR max_phy_addr - new_phy_addr) + 1; BX_CPU_THIS_PTR fetch_ptr = &BX_CPU_THIS_PTR mem->_vector[new_phy_addr]; } #else BX_CPU_THIS_PTR bytesleft = (BX_CPU_THIS_PTR max_phy_addr - new_phy_addr) + 1; BX_CPU_THIS_PTR fetch_ptr = &BX_CPU_THIS_PTR mem->_vector[new_phy_addr]; #endif } // If control has transfered locally, it is possible the prefetch Q is // still valid. This would happen for repeat instructions, and small // branches. void BX_CPU_C::revalidate_prefetch_q(void) { Bit32u new_linear_addr, new_linear_page, new_linear_offset; Bit32u new_phy_addr; #if (X86CPU_MSWIN_MSDOS==1) BX_CPU_THIS_PTR LBR.LastBranchToCS_EIP = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + BX_CPU_THIS_PTR program_visible_eip; BX_CPU_THIS_PTR LBR.LastBranchFromCS_EIP = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + BX_CPU_THIS_PTR prev_eip; return ; #endif new_linear_addr = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + BX_CPU_THIS_PTR program_visible_eip; new_linear_page = new_linear_addr & 0xfffff000; if (new_linear_page == BX_CPU_THIS_PTR prev_linear_page){ // same linear address, old linear->physical translation valid new_linear_offset = new_linear_addr & 0x00000fff; new_phy_addr = BX_CPU_THIS_PTR prev_phy_page | new_linear_offset; #if BX_PCI_SUPPORT if ((new_phy_addr >= 0x000C0000) && (new_phy_addr <= 0x000FFFFF)) { BX_CPU_THIS_PTR bytesleft = 0x4000 - (new_phy_addr & 0x3FFF); BX_CPU_THIS_PTR fetch_ptr = bx_devices.pci->i440fx_fetch_ptr(new_phy_addr); } else { BX_CPU_THIS_PTR bytesleft = (BX_CPU_THIS_PTR max_phy_addr - new_phy_addr) + 1; BX_CPU_THIS_PTR fetch_ptr = &BX_CPU_THIS_PTR mem->_vector[new_phy_addr]; } #else BX_CPU_THIS_PTR bytesleft = (BX_CPU_THIS_PTR max_phy_addr - new_phy_addr) + 1; BX_CPU_THIS_PTR fetch_ptr = &BX_CPU_THIS_PTR mem->_vector[new_phy_addr]; #endif } else { BX_CPU_THIS_PTR bytesleft = 0; // invalidate prefetch Q } } void BX_CPU_C::invalidate_prefetch_q(void) { BX_CPU_THIS_PTR eipPageWindowSize = 0; BX_CPU_THIS_PTR bytesleft = 0; } #if BX_DEBUGGER extern unsigned int dbg_show_mask; Boolean BX_CPU_C::dbg_is_begin_instr_bpoint(Bit32u cs, Bit32u eip, Bit32u laddr, Bit32u is_32) { //fprintf (stderr, "begin_instr_bp: checking cs:eip %04x:%08x\n", cs, eip); BX_CPU_THIS_PTR guard_found.cs = cs; BX_CPU_THIS_PTR guard_found.eip = eip; BX_CPU_THIS_PTR guard_found.laddr = laddr; BX_CPU_THIS_PTR guard_found.is_32bit_code = is_32; // BW mode switch breakpoint // instruction which generate exceptions never reach the end of the // loop due to a long jump. Thats why we check at start of instr. // Downside is that we show the instruction about to be executed // (not the one generating the mode switch). if (BX_CPU_THIS_PTR mode_break && (BX_CPU_THIS_PTR debug_vm != BX_CPU_THIS_PTR eflags.vm)) { BX_INFO(("Caught vm mode switch breakpoint")); BX_CPU_THIS_PTR debug_vm = BX_CPU_THIS_PTR eflags.vm; BX_CPU_THIS_PTR stop_reason = STOP_MODE_BREAK_POINT; return 1; } if( (BX_CPU_THIS_PTR show_flag) & (dbg_show_mask)) { int rv; if((rv = bx_dbg_symbolic_output())) return rv; } // see if debugger is looking for iaddr breakpoint of any type if (bx_guard.guard_for & BX_DBG_GUARD_IADDR_ALL) { #if BX_DBG_SUPPORT_VIR_BPOINT if (bx_guard.guard_for & BX_DBG_GUARD_IADDR_VIR) { if (BX_CPU_THIS_PTR guard_found.icount!=0) { for (unsigned i=0; i= bx_guard.icount) { BX_CPU_THIS_PTR guard_found.cs = cs; BX_CPU_THIS_PTR guard_found.eip = eip; BX_CPU_THIS_PTR guard_found.laddr = laddr; BX_CPU_THIS_PTR guard_found.is_32bit_code = is_32; BX_CPU_THIS_PTR guard_found.guard_found = BX_DBG_GUARD_ICOUNT; return(1); } } #if (BX_NUM_SIMULATORS >= 2) // if async event pending, acknowlege them if (bx_guard.async_changes_pending.which) { if (bx_guard.async_changes_pending.which & BX_DBG_ASYNC_PENDING_A20) bx_dbg_async_pin_ack(BX_DBG_ASYNC_PENDING_A20, bx_guard.async_changes_pending.a20); if (bx_guard.async_changes_pending.which) { BX_PANIC(("decode: async pending unrecognized.")); } } #endif return(0); // no breakpoint } void BX_CPU_C::dbg_take_irq(void) { unsigned _vector; // NOTE: similar code in ::cpu_loop() if ( BX_CPU_THIS_PTR INTR && BX_CPU_THIS_PTR eflags.if_ ) { if ( setjmp(BX_CPU_THIS_PTR jmp_buf_env) == 0 ) { // normal return from setjmp setup _vector = BX_IAC(); // may set INTR with next intel_interrupt BX_CPU_THIS_PTR errorno = 0; BX_CPU_THIS_PTR EXT = 1; // external event BX_CPU_THIS_PTR async_event = 1; // set in case INTR is triggered intel_interrupt(_vector, 0, 0, 0); } } } void BX_CPU_C::dbg_force_interrupt(unsigned _vector) { // Used to force slave simulator to take an intel_interrupt, without // regard to IF if ( setjmp(BX_CPU_THIS_PTR jmp_buf_env) == 0 ) { // normal return from setjmp setup BX_CPU_THIS_PTR errorno = 0; BX_CPU_THIS_PTR EXT = 1; // external event BX_CPU_THIS_PTR async_event = 1; // probably don't need this intel_interrupt(_vector, 0, 0, 0); } } void BX_CPU_C::dbg_take_dma(void) { // NOTE: similar code in ::cpu_loop() if ( BX_HRQ ) { BX_CPU_THIS_PTR async_event = 1; // set in case INTR is triggered BX_RAISE_HLDA(); } } #endif // #if BX_DEBUGGER #if BX_SUPPORT_FPU==0 #undef LOG_THIS #define LOG_THIS genlog-> // Nomenclature used to signify argument types // // Es = single real // El = double real // Ea = 14/28 bytes 98/108b bytes (FRSTOR,FSAVE)??? // Ew = word integer (2 bytes) // Ed = dword integer (4 bytes) (short int) // Et = extended real // Eb = packed BCD // Eq = quadword integer (8 bytes) (long integer) void BX_CPU_C::ESC0(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC0 not implemented")); #endif } void BX_CPU_C::ESC1(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC1 not implemented")); #endif } void BX_CPU_C::ESC2(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC2 not implemented")); #endif } void BX_CPU_C::ESC3(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } //BX_DEBUG(( "CS:EIP = %04x:%08x", // BX_CPU.sregs[BX_SEG_REG_CS].selector.value, BX_CPU.prev_eip)); #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC3 not implemented")); #endif } void BX_CPU_C::ESC4(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC4 not implemented")); #endif } void BX_CPU_C::ESC5(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC5 not implemented")); #endif } void BX_CPU_C::ESC6(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC6 not implemented")); #endif } void BX_CPU_C::ESC7(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC7 not implemented")); #endif } void BX_CPU_C::FWAIT(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 // WAIT doesn't generate single steps on 8086. // The same goes for prefix instructions, and instructions which // modify segment registers. (pg4-16) // single_step_event = 0; BX_PANIC(("WAIT: not implemented for < 386")); #else // BX_CPU_LEVEL >= 3 if ( BX_CPU_CLASS_PTR cr0.ts && BX_CPU_CLASS_PTR cr0.mp ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); // no error } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("FWAIT: no FPU")); #endif #endif } #if BX_SUPPORT_FPU==0 // if supporting FPU, this function in glue logic file void BX_CPU_C::fpu_init(void) { } #endif #endif ================================================ FILE: Project/IntelCPU/Source/cpu.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: cpu.h,v 1.17 2002/03/27 16:04:04 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #ifndef BX_CPU_H #define BX_CPU_H 1 #define X86CPU_MSWIN_MSDOS 1 #include /* typedef struct MY__JUMP_BUFFER { unsigned long check_s; unsigned long Eax; unsigned long Edx; unsigned long Ecx; unsigned long Ebx; unsigned long Esp; unsigned long Ebp; unsigned long Esi; unsigned long Edi; unsigned long Eip; unsigned long Registration; unsigned long TryLevel; unsigned long Cookie; unsigned long UnwindFunc; unsigned long UnwindData[6]; unsigned long check_e; } MY_JUMP_BUFFER; int mysetjump(MY_JUMP_BUFFER *jump_buff); void mylongjump(MY_JUMP_BUFFER *jump_buff,unsigned int code); #define setjmp(a) mysetjump(&a) #define longjmp(a,b) mylongjump(&a,b) typedef MY_JUMP_BUFFER* jmp_buf; */ #include "lazy_flg.h" #define BX_SREG_ES 0 #define BX_SREG_CS 1 #define BX_SREG_SS 2 #define BX_SREG_DS 3 #define BX_SREG_FS 4 #define BX_SREG_GS 5 // segment register encoding #define BX_SEG_REG_ES 0 #define BX_SEG_REG_CS 1 #define BX_SEG_REG_SS 2 #define BX_SEG_REG_DS 3 #define BX_SEG_REG_FS 4 #define BX_SEG_REG_GS 5 #define BX_SEG_REG_NULL 8 #define BX_NULL_SEG_REG(seg) ((seg) & BX_SEG_REG_NULL) #ifdef BX_LITTLE_ENDIAN #define BX_REG8L_OFFSET 0 #define BX_REG8H_OFFSET 1 #define BX_REG16_OFFSET 0 #else // BX_BIG_ENDIAN #define BX_REG8L_OFFSET 3 #define BX_REG8H_OFFSET 2 #define BX_REG16_OFFSET 2 #endif // ifdef BX_LITTLE_ENDIAN #define BX_8BIT_REG_AL 0 #define BX_8BIT_REG_CL 1 #define BX_8BIT_REG_DL 2 #define BX_8BIT_REG_BL 3 #define BX_8BIT_REG_AH 4 #define BX_8BIT_REG_CH 5 #define BX_8BIT_REG_DH 6 #define BX_8BIT_REG_BH 7 #define BX_16BIT_REG_AX 0 #define BX_16BIT_REG_CX 1 #define BX_16BIT_REG_DX 2 #define BX_16BIT_REG_BX 3 #define BX_16BIT_REG_SP 4 #define BX_16BIT_REG_BP 5 #define BX_16BIT_REG_SI 6 #define BX_16BIT_REG_DI 7 #define BX_32BIT_REG_EAX 0 #define BX_32BIT_REG_ECX 1 #define BX_32BIT_REG_EDX 2 #define BX_32BIT_REG_EBX 3 #define BX_32BIT_REG_ESP 4 #define BX_32BIT_REG_EBP 5 #define BX_32BIT_REG_ESI 6 #define BX_32BIT_REG_EDI 7 #if (X86CPU_MSWIN_MSDOS==1) #define program_visible_gen_reg program_visible_register.gen_reg #define program_visible_sregs program_visible_register.sregs #define program_visible_eip program_visible_register.eip #define program_visible_eflags program_visible_register.eflags #endif #if defined(NEED_CPU_REG_SHORTCUTS) /* WARNING: Only BX_CPU_C member functions can use these shortcuts safely! Functions that use the shortcuts outside of BX_CPU_C might work when BX_USE_CPU_SMF=1 but will fail when BX_USE_CPU_SMF=0 (for example in SMP mode). */ // access to 8 bit general registers #define X86_AL (BX_CPU_THIS_PTR program_visible_gen_reg[0].word.byte.rl) #define X86_CL (BX_CPU_THIS_PTR program_visible_gen_reg[1].word.byte.rl) #define X86_DL (BX_CPU_THIS_PTR program_visible_gen_reg[2].word.byte.rl) #define X86_BL (BX_CPU_THIS_PTR program_visible_gen_reg[3].word.byte.rl) #define X86_AH (BX_CPU_THIS_PTR program_visible_gen_reg[0].word.byte.rh) #define X86_CH (BX_CPU_THIS_PTR program_visible_gen_reg[1].word.byte.rh) #define X86_DH (BX_CPU_THIS_PTR program_visible_gen_reg[2].word.byte.rh) #define X86_BH (BX_CPU_THIS_PTR program_visible_gen_reg[3].word.byte.rh) // access to 16 bit general registers #define X86_AX (BX_CPU_THIS_PTR program_visible_gen_reg[0].word.rx) #define X86_CX (BX_CPU_THIS_PTR program_visible_gen_reg[1].word.rx) #define X86_DX (BX_CPU_THIS_PTR program_visible_gen_reg[2].word.rx) #define X86_BX (BX_CPU_THIS_PTR program_visible_gen_reg[3].word.rx) #define X86_SP (BX_CPU_THIS_PTR program_visible_gen_reg[4].word.rx) #define X86_BP (BX_CPU_THIS_PTR program_visible_gen_reg[5].word.rx) #define X86_SI (BX_CPU_THIS_PTR program_visible_gen_reg[6].word.rx) #define X86_DI (BX_CPU_THIS_PTR program_visible_gen_reg[7].word.rx) // access to 16 bit instruction pointer #define X86_IP (* (Bit16u *) (((Bit8u *) &BX_CPU_THIS_PTR program_visible_eip) + BX_REG16_OFFSET)) // accesss to 32 bit general registers #define X86_EAX BX_CPU_THIS_PTR program_visible_gen_reg[0].erx #define X86_ECX BX_CPU_THIS_PTR program_visible_gen_reg[1].erx #define X86_EDX BX_CPU_THIS_PTR program_visible_gen_reg[2].erx #define X86_EBX BX_CPU_THIS_PTR program_visible_gen_reg[3].erx #define X86_ESP BX_CPU_THIS_PTR program_visible_gen_reg[4].erx #define X86_EBP BX_CPU_THIS_PTR program_visible_gen_reg[5].erx #define X86_ESI BX_CPU_THIS_PTR program_visible_gen_reg[6].erx #define X86_EDI BX_CPU_THIS_PTR program_visible_gen_reg[7].erx // access to 32 bit instruction pointer #define X86_EIP BX_CPU_THIS_PTR program_visible_eip // access to 64 bit instruction pointer #if BX_SUPPORT_X86_64==1 #define X86_RIP BX_CPU_THIS_PTR program_visible_eip #define RIP BX_CPU_THIS_PTR program_visible_eip #endif #define BX_READ_8BIT_REG(index) (*(BX_CPU_THIS_PTR bytes_ptr[index])) #define BX_READ_16BIT_REG(index) (BX_CPU_THIS_PTR program_visible_gen_reg[index].word.rx) #define BX_READ_32BIT_REG(index) (BX_CPU_THIS_PTR program_visible_gen_reg[index].erx) #define BX_READ_16BIT_BASE_REG(var, index) { var = *BX_CPU_THIS_PTR _16bit_base_reg[index]; } #define BX_READ_16BIT_INDEX_REG(var, index) { var = *BX_CPU_THIS_PTR _16bit_index_reg[index]; } #define BX_WRITE_8BIT_REG(index, val) {*(BX_CPU_THIS_PTR bytes_ptr[index]) = val; } #define BX_WRITE_16BIT_REG(index, val) { BX_CPU_THIS_PTR program_visible_gen_reg[index].word.rx = val; } #define BX_WRITE_32BIT_REG(index, val) { BX_CPU_THIS_PTR program_visible_gen_reg[index].erx = val; } //=========================================================================== #define BX_CPU_CLASS_PTR icpu-> #define BX_CPU_CLASS icpu // access to 8 bit general registers #define RW_AL (BX_CPU_CLASS_PTR program_visible_gen_reg[0].word.byte.rl) #define RW_CL (BX_CPU_CLASS_PTR program_visible_gen_reg[1].word.byte.rl) #define RW_DL (BX_CPU_CLASS_PTR program_visible_gen_reg[2].word.byte.rl) #define RW_BL (BX_CPU_CLASS_PTR program_visible_gen_reg[3].word.byte.rl) #define RW_AH (BX_CPU_CLASS_PTR program_visible_gen_reg[0].word.byte.rh) #define RW_CH (BX_CPU_CLASS_PTR program_visible_gen_reg[1].word.byte.rh) #define RW_DH (BX_CPU_CLASS_PTR program_visible_gen_reg[2].word.byte.rh) #define RW_BH (BX_CPU_CLASS_PTR program_visible_gen_reg[3].word.byte.rh) // access to 16 bit general registers #define RW_AX (BX_CPU_CLASS_PTR program_visible_gen_reg[0].word.rx) #define RW_CX (BX_CPU_CLASS_PTR program_visible_gen_reg[1].word.rx) #define RW_DX (BX_CPU_CLASS_PTR program_visible_gen_reg[2].word.rx) #define RW_BX (BX_CPU_CLASS_PTR program_visible_gen_reg[3].word.rx) #define RW_SP (BX_CPU_CLASS_PTR program_visible_gen_reg[4].word.rx) #define RW_BP (BX_CPU_CLASS_PTR program_visible_gen_reg[5].word.rx) #define RW_SI (BX_CPU_CLASS_PTR program_visible_gen_reg[6].word.rx) #define RW_DI (BX_CPU_CLASS_PTR program_visible_gen_reg[7].word.rx) // access to 16 bit instruction pointer #define RW_IP (* (Bit16u *) (((Bit8u *) &BX_CPU_CLASS_PTR program_visible_eip) + BX_REG16_OFFSET)) // accesss to 32 bit general registers #define RW_EAX BX_CPU_CLASS_PTR program_visible_gen_reg[0].erx #define RW_ECX BX_CPU_CLASS_PTR program_visible_gen_reg[1].erx #define RW_EDX BX_CPU_CLASS_PTR program_visible_gen_reg[2].erx #define RW_EBX BX_CPU_CLASS_PTR program_visible_gen_reg[3].erx #define RW_ESP BX_CPU_CLASS_PTR program_visible_gen_reg[4].erx #define RW_EBP BX_CPU_CLASS_PTR program_visible_gen_reg[5].erx #define RW_ESI BX_CPU_CLASS_PTR program_visible_gen_reg[6].erx #define RW_EDI BX_CPU_CLASS_PTR program_visible_gen_reg[7].erx // access to 32 bit instruction pointer #define RW_EIP BX_CPU_CLASS_PTR program_visible_eip #define READ_VIRTUAL_8BIT_REG(index) (*(BX_CPU_CLASS_PTR bytes_ptr[index])) #define READ_VIRTUAL_16BIT_REG(index) (BX_CPU_CLASS_PTR program_visible_gen_reg[index].word.rx) #define READ_VIRTUAL_32BIT_REG(index) (BX_CPU_CLASS_PTR program_visible_gen_reg[index].erx) #define WRITE_VIRTUAL_8BIT_REG(index, val) { *(BX_CPU_CLASS_PTR bytes_ptr[index]) = val; } #define WRITE_VIRTUAL_16BIT_REG(index, val) { BX_CPU_CLASS_PTR program_visible_gen_reg[index].word.rx = val; } #define WRITE_VIRTUAL_32BIT_REG(index, val) { BX_CPU_CLASS_PTR program_visible_gen_reg[index].erx = val; } //#define WRITE_VIRTUAL_BYTE(seg,offset,data) BX_CPU_THIS_PTR write_virtual_byte(seg,offset,data) #define WRITE_VIRTUAL_BYTE BX_CPU_CLASS_PTR write_virtual_byte #define WRITE_VIRTUAL_WORD BX_CPU_CLASS_PTR write_virtual_word #define WRITE_VIRTUAL_DWORD BX_CPU_CLASS_PTR write_virtual_dword #define READ_VIRTUAL_BYTE BX_CPU_CLASS_PTR read_virtual_byte #define READ_VIRTUAL_WORD BX_CPU_CLASS_PTR read_virtual_word #define READ_VIRTUAL_DWORD BX_CPU_CLASS_PTR read_virtual_dword #define READ_RMW_VIRTUAL_BYTE BX_CPU_CLASS_PTR read_RMW_virtual_byte #define READ_RMW_VIRTUAL_WORD BX_CPU_CLASS_PTR read_RMW_virtual_word #define READ_RMW_VIRTUAL_DWORD BX_CPU_CLASS_PTR read_RMW_virtual_dword #define WRITE_RMW_VIRTUAL_BYTE BX_CPU_CLASS_PTR write_RMW_virtual_byte #define WRITE_RMW_VIRTUAL_WORD BX_CPU_CLASS_PTR write_RMW_virtual_word #define WRITE_RMW_VIRTUAL_DWORD BX_CPU_CLASS_PTR write_RMW_virtual_dword #define RW_IOPL BX_CPU_CLASS_PTR eflags.iopl #ifndef RW_CPL #define RW_CPL (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl) #endif //=========================================================================== #define X86_IOPL BX_CPU_THIS_PTR eflags.iopl #ifndef CPL #define CPL (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl) #endif #endif // defined(NEED_CPU_REG_SHORTCUTS) // ʽµж쳣 // Ƿ ˵ Դ #define BX_DE_EXCEPTION 0 // Divide Error (fault) #define BX_DB_EXCEPTION 1 // Debug (fault/trap) #define BX_BP_EXCEPTION 3 // Breakpoint (trap) #define BX_OF_EXCEPTION 4 // Overflow (trap) #define BX_BR_EXCEPTION 5 // BOUND (fault) #define BX_UD_EXCEPTION 6 #define BX_NM_EXCEPTION 7 #define BX_DF_EXCEPTION 8 #define BX_TS_EXCEPTION 10 #define BX_NP_EXCEPTION 11 #define BX_SS_EXCEPTION 12 #define BX_GP_EXCEPTION 13 #define BX_PF_EXCEPTION 14 #define BX_MF_EXCEPTION 16 #define BX_AC_EXCEPTION 17 /* #define X86_DE_EXCEPTION //(\) int 0x00 ޴ #DE #define X86_DB_EXCEPTION //߽(BOUNDָ) int 0x05 ޴ #BR #define X86_BP_EXCEPTION #define X86_OF_EXCEPTION #define X86_BR_EXCEPTION #define X86_UD_EXCEPTION //Ƿָ int 0x06 ޴ #UD #define X86_NM_EXCEPTION //Э int 0x07 ޴ #NM #define X86_DF_EXCEPTION //˫ع int 0x08 errorcode #DF() // //ϵͳس:ҳж #define X86_TS_EXCEPTION //ǷTSS int 0x0a errorcode #TS() #define X86_NP_EXCEPTION //βڹ int 0x0b errorcode #NP #define X86_SS_EXCEPTION //ջι int 0x0c errorcode #SS #define X86_GP_EXCEPTION //һ㱣 int 0x0d errorcode #GP() // //вһ쳣ıΥ // //һһ㱣쳣 #define X86_PF_EXCEPTION //ҳ int 0x0e errorcode #PF(fault-code) // //CR2Ĵд // //쳣ķеԵַ #define X86_MF_EXCEPTION //Э int 0x10 ޴ #MF #define X86_AC_EXCEPTION //Any data reference in memory int 0x11 ޴ #AC #define X86_MC_EXCEPTION //Model dependent machine check errors int 0x12 #MC #define X86_XF_EXCEPTION //Floating-Point Numeric ErrorSSE and SSE2 floating-point // //instructions. int 0x13 #XF #define X86_HF_EXCEPTION //ش󣬴ֹͣ // //ϵͳس:ҳж //CODE SEGMENT and DATA SEGMENT type define // ֻ;/д;չ;ִֻ;ִ/;;ѷ; #define CODE_DATA_SEGMENT_R 0x0 // ֻ; #define CODE_DATA_SEGMENT_RA 0x1 // ֻ;ѷ; #define CODE_DATA_SEGMENT_RW 0x2 // /д; #define CODE_DATA_SEGMENT_RWA 0x3 // /д;ѷ; #define CODE_DATA_SEGMENT_RD 0x4 // ֻ;չ; #define CODE_DATA_SEGMENT_RDA 0x5 // ֻ;չ;ѷ; #define CODE_DATA_SEGMENT_RWD 0x6 // /д;չ; #define CODE_DATA_SEGMENT_RWDA 0x7 // /д;չ;ѷ; #define CODE_DATA_SEGMENT_E 0x8 // ִֻ; #define CODE_DATA_SEGMENT_EA 0x9 // ִֻ;ѷ; #define CODE_DATA_SEGMENT_ER 0xa // ִ/; #define CODE_DATA_SEGMENT_ERA 0xb // ִ/;ѷ; #define CODE_DATA_SEGMENT_EC 0xc // ִֻ;; #define CODE_DATA_SEGMENT_ECA 0xd // ִֻ;;ѷ; #define CODE_DATA_SEGMENT_ERC 0xe // ִ/;; #define CODE_DATA_SEGMENT_ERCA 0xf // ִ/;;ѷ; //SYSTEM SEGMENT and SYSTEM GATE type define // ;16λ;32λ;TSS();LDT;TSS(æ);;;ж;; #define SYSTEM_SEGMENT_UNDEFINE0x0 0x0 // ; #define SYSTEM_SEGMENT_286TSS 0x1 // 16λTSS(); #define SYSTEM_SEGMENT_LDT 0x2 // LDT; #define SYSTEM_SEGMENT_286TSS_BUSY 0x3 // 16λTSS(æ); #define SYSTEM_GATE_286CALL 0x4 // 16λ; #define SYSTEM_GATE_TASK 0x5 // ; #define SYSTEM_GATE_286INT 0x6 // 16λж; #define SYSTEM_GATE_286TRAP 0x7 // 16λ; #define SYSTEM_SEGMENT_UNDEFINE0x8 0x8 // ; #define SYSTEM_SEGMENT_386TSS 0x9 // 32λTSS(); #define SYSTEM_SEGMENT_UNDEFINE0xA 0xA // ; #define SYSTEM_SEGMENT_386TSS_BUSY 0xB // 32λTSS(æ); #define SYSTEM_GATE_386CALL 0xC // 32λ; #define SYSTEM_SEGMENT_UNDEFINE0xD 0xD // ; #define SYSTEM_GATE_386INT 0xE // 32λж; #define SYSTEM_GATE_386TRAP 0xF // 32λ; {M_E, C_JtO, D__Jb, D__NONE, D__NONE, "JO" },//0x70, {M_E, C_JfO, D__Jb, D__NONE, D__NONE, "JNO" },//0x71, {M_E, C_JtC, D__Jb, D__NONE, D__NONE, "JB" },//0x72, {M_E, C_JtC, D__Jb, D__NONE, D__NONE, "JC" },//0x72, {M_E, C_JtC, D__Jb, D__NONE, D__NONE, "JNAE" },//0x72, {M_E, C_JfC, D__Jb, D__NONE, D__NONE, "JAE" },//0x73, {M_E, C_JfC, D__Jb, D__NONE, D__NONE, "JNB" },//0x73, {M_E, C_JfC, D__Jb, D__NONE, D__NONE, "JNC" },//0x73, {M_E, C_JtZ, D__Jb, D__NONE, D__NONE, "JE" },//0x74, {M_E, C_JtZ, D__Jb, D__NONE, D__NONE, "JZ" },//0x74, {M_E, C_JfZ, D__Jb, D__NONE, D__NONE, "JNE" },//0x75, {M_E, C_JfZ, D__Jb, D__NONE, D__NONE, "JNZ" },//0x75, {M_E, C_JfA, D__Jb, D__NONE, D__NONE, "JBE" },//0x76, {M_E, C_JfA, D__Jb, D__NONE, D__NONE, "JNA" },//0x76, {M_E, C_JtA, D__Jb, D__NONE, D__NONE, "JA" },//0x77, {M_E, C_JtA, D__Jb, D__NONE, D__NONE, "JNBE" },//0x77, {M_E, C_JtS, D__Jb, D__NONE, D__NONE, "JS" },//0x78, {M_E, C_JfS, D__Jb, D__NONE, D__NONE, "JNS" },//0x79, {M_E, C_JtP, D__Jb, D__NONE, D__NONE, "JP" },//0x7a, {M_E, C_JtP, D__Jb, D__NONE, D__NONE, "JPE" },//0x7a, {M_E, C_JfP, D__Jb, D__NONE, D__NONE, "JNP" },//0x7b, {M_E, C_JfP, D__Jb, D__NONE, D__NONE, "JPO" },//0x7b, {M_E, C_JtL, D__Jb, D__NONE, D__NONE, "JL" },//0x7c, {M_E, C_JtL, D__Jb, D__NONE, D__NONE, "JNGE" },//0x7c, {M_E, C_JfL, D__Jb, D__NONE, D__NONE, "JGE" },//0x7d, {M_E, C_JfL, D__Jb, D__NONE, D__NONE, "JNL" },//0x7d, {M_E, C_JfG, D__Jb, D__NONE, D__NONE, "JLE" },//0x7e, {M_E, C_JfG, D__Jb, D__NONE, D__NONE, "JNG" },//0x7e, {M_E, C_JtG, D__Jb, D__NONE, D__NONE, "JG" },//0x7f, {M_E, C_JtG, D__Jb, D__NONE, D__NONE, "JNLE" },//0x7f, */ /* MSR registers */ #define BX_MSR_P5_MC_ADDR 0x0000 #define BX_MSR_MC_TYPE 0x0001 #define BX_MSR_TSC 0x0010 #define BX_MSR_CESR 0x0011 #define BX_MSR_CTR0 0x0012 #define BX_MSR_CTR1 0x0013 #define BX_MSR_APICBASE 0x001b #define BX_MSR_EBL_CR_POWERON 0x002a #define BX_MSR_TEST_CTL 0x0033 #define BX_MSR_BIOS_UPDT_TRIG 0x0079 #define BX_MSR_BBL_CR_D0 0x0088 #define BX_MSR_BBL_CR_D1 0x0089 #define BX_MSR_BBL_CR_D2 0x008a #define BX_MSR_BBL_CR_D3 0x008b /* = BIOS_SIGN */ #define BX_MSR_PERFCTR0 0x00c1 #define BX_MSR_PERFCTR1 0x00c2 #define BX_MSR_MTRRCAP 0x00fe #define BX_MSR_BBL_CR_ADDR 0x0116 #define BX_MSR_BBL_DECC 0x0118 #define BX_MSR_BBL_CR_CTL 0x0119 #define BX_MSR_BBL_CR_TRIG 0x011a #define BX_MSR_BBL_CR_BUSY 0x011b #define BX_MSR_BBL_CR_CTL3 0x011e #define BX_MSR_MCG_CAP 0x0179 #define BX_MSR_MCG_STATUS 0x017a #define BX_MSR_MCG_CTL 0x017b #define BX_MSR_EVNTSEL0 0x0186 #define BX_MSR_EVNTSEL1 0x0187 #define BX_MSR_DEBUGCTLMSR 0x01d9 #define BX_MSR_LASTBRANCHFROMIP 0x01db #define BX_MSR_LASTBRANCHTOIP 0x01dc #define BX_MSR_LASTINTOIP 0x01dd #define BX_MSR_ROB_CR_BKUPTMPDR6 0x01e0 #define BX_MSR_MTRRPHYSBASE0 0x0200 #define BX_MSR_MTRRPHYSMASK0 0x0201 #define BX_MSR_MTRRPHYSBASE1 0x0202 typedef struct { /* 31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16 * ==|==|=====|==|==|==|==|==|==|==|==|==|==|==|== * 0| 0| 0| 0| 0| 0| 0| 0| 0| 0|ID|VP|VF|AC|VM|RF * * 15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0 * ==|==|=====|==|==|==|==|==|==|==|==|==|==|==|== * 0|NT| IOPL|OF|DF|IF|TF|SF|ZF| 0|AF| 0|PF| 1|CF */ // In order to get access to these fields from the Dynamic Translation // code, using only 8bit offsets, I needed to move these fields // together. unsigned cf; unsigned pf; unsigned af; unsigned zf; unsigned sf; unsigned of; Boolean bit1; Boolean bit3; Boolean bit5; Boolean tf; Boolean if_; Boolean df; #if BX_CPU_LEVEL >= 2 Bit8u iopl; Boolean nt; #endif Boolean bit15; #if BX_CPU_LEVEL >= 3 Boolean rf; Boolean vm; #endif #if BX_CPU_LEVEL >= 4 Boolean ac; // alignment check // Boolean vif; // Virtual Interrupt Flag // Boolean vip; // Virtual Interrupt Pending Boolean id; // late model 486 and beyond had CPUID #endif union { struct { unsigned of:8; unsigned cf:1; //0 unsigned b1:1; //1 unsigned pf:1; //2 unsigned b3:1; //3 unsigned af:1; //4 unsigned b5:1; //5 unsigned zf:1; //6 unsigned sf:1; //7 }Descr; struct { Bit8u seto; Bit8u lahf; }Word; Bit32u eax; } x86; } bx_flags_reg_t; #if BX_CPU_LEVEL >= 2 typedef struct { Bit32u val32; // 32bit value of register // bitfields broken out for efficient access #if BX_CPU_LEVEL >= 3 Boolean pg; // paging #endif // CR0 notes: // Each x86 level has its own quirks regarding how it handles // reserved bits. I used DOS DEBUG.EXE in real mode on the // following processors, tried to clear bits 1..30, then tried // to set bits 1..30, to see how these bits are handled. // I found the following: // // Processor try to clear bits 1..30 try to set bits 1..30 // 386 7FFFFFF0 7FFFFFFE // 486DX2 00000010 6005003E // Pentium 00000010 7FFFFFFE // Pentium-II 00000010 6005003E // // My assumptions: // All processors: bit 4 is hardwired to 1 (not true on all clones) // 386: bits 5..30 of CR0 are also hardwired to 1 // Pentium: reserved bits retain value set using mov cr0, reg32 // 486DX2/Pentium-II: reserved bits are hardwired to 0 #if BX_CPU_LEVEL >= 4 Boolean cd; // cache disable Boolean nw; // no write-through Boolean am; // alignment mask Boolean wp; // write-protect Boolean ne; // numerics exception #endif Boolean ts; // task switched Boolean em; // emulate math coprocessor Boolean mp; // monitor coprocessor Boolean pe; // protected mode enable } bx_cr0_t; #endif #if BX_CPU_LEVEL >= 5 typedef struct { Bit8u p5_mc_addr; Bit8u p5_mc_type; Bit8u tsc; Bit8u cesr; Bit8u ctr0; Bit8u ctr1; Bit64u apicbase; /* TODO finish of the others */ } bx_regs_msr_t; #endif typedef struct { /* bx_selector_t */ Bit16u value; /* the 16bit value of the selector */ #if BX_CPU_LEVEL >= 2 /* the following fields are extracted from the value field in protected mode only. They're used for sake of efficiency */ Bit16u index; /* 13bit index extracted from value in protected mode */ Bit8u ti; /* table indicator bit extracted from value */ Bit8u rpl; /* RPL extracted from value */ Boolean cpl__3; // system status or user status #endif } bx_selector_t; typedef struct { Boolean valid; /* 0 = invalid, 1 = valid */ Boolean p; /* present */ Bit8u dpl; /* descriptor privilege level 0..3 */ Boolean segment; /* 0 = system/gate, 1 = data/code segment */ Bit8u type; /* For system & gate descriptors, only * 0 = invalid descriptor (reserved) * 1 = 286 available Task State Segment (TSS) * 2 = LDT descriptor * 3 = 286 busy Task State Segment (TSS) * 4 = 286 call gate * 5 = task gate * 6 = 286 intel_interrupt gate * 7 = 286 trap gate * 8 = (reserved) * 9 = 386 available TSS * 10 = (reserved) * 11 = 386 busy TSS * 12 = 386 call gate * 13 = (reserved) * 14 = 386 intel_interrupt gate * 15 = 386 trap gate */ Bit8u AR_byte; union { struct { Boolean executable; /* 1=code, 0=data or stack segment */ Boolean c_ed; /* for code: 1=conforming, for data/stack: 1=expand down */ Boolean r_w; /* for code: readable?, for data/stack: writeable? */ Boolean a; /* accessed? */ Bit32u base; /* base address: 286=24bits, 386=32bits */ Bit32u limit; /* limit: 286=16bits, 386=20bits */ Bit32u limit_scaled; /* for efficiency, this contrived field is set to * limit for byte granular, and * (limit << 12) | 0xfff for page granular seg's */ #if BX_CPU_LEVEL >= 3 Boolean g; /* granularity: 0=byte, 1=4K (page) */ Boolean d_b; /* default size: 0=16bit, 1=32bit */ Boolean avl; /* available for use by system */ #endif } segment; struct { Bit8u word_count; /* 5bits (0..31) #words to copy from caller's stack * to called procedure's stack. (call gates only)*/ Bit16u dest_selector; Bit16u dest_offset; } gate286; struct { // type 5: Task Gate Descriptor Bit16u tss_selector; // TSS segment selector } taskgate; #if BX_CPU_LEVEL >= 3 struct { Bit8u dword_count; /* 5bits (0..31) #dwords to copy from caller's stack * to called procedure's stack. (call gates only)*/ Bit16u dest_selector; Bit32u dest_offset; } gate386; #endif struct { Bit32u base; /* 24 bit 286 TSS base */ Bit16u limit; /* 16 bit 286 TSS limit */ } tss286; #if BX_CPU_LEVEL >= 3 struct { Bit32u base; /* 32 bit 386 TSS base */ Bit32u limit; /* 20 bit 386 TSS limit */ Bit32u limit_scaled; // Same notes as for 'segment' field Boolean g; /* granularity: 0=byte, 1=4K (page) */ Boolean avl; /* available for use by system */ } tss386; #endif struct { Bit32u base; /* 286=24 386+ =32 bit LDT base */ Bit16u limit; /* 286+ =16 bit LDT limit */ } ldt; } u; } bx_descriptor_t; typedef struct { bx_selector_t selector; bx_descriptor_t cache; char strseg[4]; int exception_number; } bx_segment_reg_t; #if BX_USE_CPU_SMF == 0 // normal member functions. This can ONLY be used within BX_CPU_C classes. // Anyone on the outside should use the BX_CPU macro (defined in bochs.h) // instead. # define BX_CPU_THIS_PTR this-> # define BX_CPU_THIS this # define BX_SMF # define BX_CPU_C_PREFIX BX_CPU_C:: // with normal member functions, calling a member fn pointer looks like // object->*(fnptr)(arg, ...); // Since this is different from when SMF=1, encapsulate it in a macro. # define BX_CPU_CALL_METHOD(func, args) BX_INSTR_OPCODE_BEGIN(BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].cache.u.segment.base + BX_CPU_THIS_PTR prev_eip); (((BxExecutePtr_t) (func))) args BX_INSTR_OPCODE_END(BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].cache.u.segment.base + BX_CPU_THIS_PTR prev_eip); #else // static member functions. With SMF, there is only one CPU by definition. //# define BX_CPU_THIS_PTR BX_CPU(0)-> # define BX_CPU_THIS_PTR bx_cpu. # define BX_CPU_THIS &bx_cpu # define BX_SMF static # define BX_CPU_C_PREFIX # define BX_CPU_CALL_METHOD(func, args) BX_INSTR_OPCODE_BEGIN(BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].cache.u.segment.base + BX_CPU_THIS_PTR prev_eip); ((BxExecutePtr_t) (func)) args; BX_INSTR_OPCODE_END (BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].cache.u.segment.base + BX_CPU_THIS_PTR prev_eip); #endif typedef void * (*BxVoidFPtr_t)(void); class BX_CPU_C; class bxInstruction_c; #define OPCODEb1(i) i->i_b1 #define OPCODEb2(i) i->i_b2 #define MODRMrm(i) i->i_rm #define MODRMnnn(i) i->i_nnn #define MODRMSeg(i) i->i_seg #define IMMEDIATEIb(i) i->Word.i_Ib #define IMMEDIATEIw(i) i->i_Iw #define IMMEDIATEId(i) i->i_Id #define IMMEDIATEIb2(i) i->i_Ib2 #define IMMEDIATEIw2(i) i->i_Iw2 struct bxReadWriteGuess { Bit32u linear_address; Bit32u remain_bytes; Bit8u *host_page_ptr,*host_page_ptr1; Bit32u *stamp_ptr,*stamp_ptr1; }; class bxInstruction_c { public: // Function pointers; a function to resolve the modRM address // given the current state of the CPU and the instruction data, // and a function to execute the instruction after resolving // the memory address (if any). #if BX_USE_CPU_SMF // void (*ResolveModrm)(BX_CPU_C * , bxInstruction_c * ); // void (*execute)(BX_CPU_C * , bxInstruction_c * ); #else // void (BX_CPU_C::*ResolveModrm)(BX_CPU_C * , bxInstruction_c * ); // void (BX_CPU_C::*execute)(BX_CPU_C * , bxInstruction_c * ); #endif void (*ResolveModrm)(BX_CPU_C * , bxInstruction_c * ); void (*execute)(BX_CPU_C * , bxInstruction_c * ); #if BX_DYNAMIC_TRANSLATION BxVoidFPtr_t DTResolveModrm; #endif #if BX_DYNAMIC_TRANSLATION unsigned DTAttr; Bit8u * (*DTFPtr)(Bit8u *, bxInstruction_c *); unsigned DTMemRegsUsed; #endif Bit8u i_b1; // opcode1 byte Bit8u i_b2; // mod-nnn-r/m byte Bit8u i_nnn; Bit8u i_rm; Bit8u i_bytes; // instruction bytes Bit8u i_seg; short ReadWriteGuess; //ָڴд² struct { unsigned char os_32:1; // operand size is 32bit unsigned char as_32:1; // address size is 32bit }size_mode; union { Bit32u i_Id; Bit16u i_Iw; struct { Bit8u i_Ib; Bit8u shift; }Word; }; union { Bit16u displ16u; // for 16-bit modrm forms Bit32u displ32u; // for 32-bit modrm forms Bit8u i_Ib2; // for ENTER_IwIb Bit16u i_Iw2; // for JMP_Ap }; public: BX_CPP_INLINE unsigned as32B(void) { return size_mode.as_32; } BX_CPP_INLINE unsigned os32B(void) { return size_mode.os_32; } BX_CPP_INLINE unsigned seg(void) { return i_seg; } BX_CPP_INLINE unsigned b1(void) { return i_b1; } // Note this is the highest field, and thus needs no masking. // DON'T PUT ANY FIELDS HIGHER THAN THIS ONE WITHOUT ADDING A MASK. BX_CPP_INLINE unsigned ilen(void) { return i_bytes; } BX_CPP_INLINE unsigned modrm() { return i_b2; } BX_CPP_INLINE unsigned mod() { return i_b2 & 0xc0; } BX_CPP_INLINE unsigned modC0() { // This is a cheaper way to test for modRM instructions where // the mod field is 0xc0. FetchDecode flags this condition since // it is quite common to be tested for. return (i_b2>=0xc0); } // BX_CPP_INLINE unsigned nnn() { // return nnn; // } // BX_CPP_INLINE unsigned rm() { return rm; } }; typedef void (*BxVirtualToRealityPtr_t)(void); #if BX_USE_CPU_SMF //typedef void (*BxExecutePtr_t)(BX_CPU_C *,bxInstruction_c *); typedef int (*BxTranslatePtr_t)(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); #else //typedef void (BX_CPU_C::*BxExecutePtr_t)(BX_CPU_C *,bxInstruction_c *); typedef int (BX_CPU_C::*BxTranslatePtr_t)(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); #endif typedef void (*BxExecutePtr_t)(BX_CPU_C *,bxInstruction_c *); // ========== iCache ============================================= #define BX_SupportICache 0 // ========== iCache ============================================= #if BX_SupportICache #define BxICacheEntries (16*(4096)) // Must be a power of 2. // bit31: 1=CS is 32/64-bit, 0=CS is 16-bit. // bit30: 1=Long Mode, 0=not Long Mode. // bit29: 1=iCache page, 0=Data. #define ICacheWriteStampInvalid 0x1fffffff #define ICacheWriteStampMax 0x1fffffff // Decrements from here. #define ICacheWriteStampMask 0x1fffffff class bxICacheEntry_c { public: Bit32u pAddr; // Physical address of the instruction. Bit32u writeStamp; // Generation ID. Each write to a physical page // decrements this value. bxInstruction_c i; // The instruction decode information. }; #define BXREADWRITEMEMORYHOLES 16 struct bxReadWriteMemoryHole { Bit32u front_dummy; Bit8u bitMap[512]; //512 * 8 = 4096 Bit32u dummy; Bit32u LinearAddress; Bit32u page; int busy; }; struct bxPageHoleEntry { Bit32u laddr; Bit32u paddr; Bit32u bitLen; Bit8u bitMap[32]; Bit8u *pMaping; }; class bxICache_c { public: bxICacheEntry_c entry[BxICacheEntries/8]; bxReadWriteGuess guess[BxICacheEntries/8/4]; bxReadWriteGuess PushPop[32]; short iAllocStampEntry[BxICacheEntries]; short iAllocStamp; bxReadWriteMemoryHole hole[BXREADWRITEMEMORYHOLES]; bxPageHoleEntry writeHoleEntries[128]; int iAllocHoleEntry; int iAllocHole; int iAllocGuess; // A table (dynamically allocated) to store write-stamp // generation IDs. Each time a write occurs to a physical page, // a generation ID is decremented. Only iCache entries which have // write stamps matching the physical page write stamp are valid. Bit32u *pageWriteStampTable; // Allocated later. Bit8u *pageWriteHoleTable; // Allocated later. Bit8u *pageWriteHoleMaping; // Allocated later. Bit32u fetchModeMask; bxICache_c() { } ~bxICache_c() { } BX_CPP_INLINE void init(void) { // Initially clear the iCache; memset(this, 0, sizeof(*this)); pageWriteStampTable = NULL; pageWriteHoleTable = NULL; iAllocHoleEntry = 0; unsigned i; for (i=0; i>12)); for (i=0; i<(memSizeInBytes>>12); i++) { pageWriteStampTable[i] = ICacheWriteStampInvalid; } pageWriteHoleTable = (Bit8u*) malloc((memSizeInBytes>>12) + (memSizeInBytes>>12)/8); pageWriteHoleMaping = pageWriteHoleTable + (memSizeInBytes>>12); for (i=0; i<(memSizeInBytes>>12) + (memSizeInBytes>>12)/8; i++) { pageWriteHoleTable[i] = 0; } } int gatherWriteHole(bxReadWriteMemoryHole *h); bxReadWriteMemoryHole *allocWriteHole(Bit32u a20Addr); BX_CPP_INLINE void decWriteHole(BX_CPU_C *cpu,Bit32u a20Addr,int bits = 15) { bxReadWriteMemoryHole *h; h = hole + pageWriteHoleTable[a20Addr>>12]; if (h->page!=(a20Addr&0xffff000)) { h = allocWriteHole(a20Addr); } #ifdef BX_BIG_ENDIAN h->bitMap[((a20Addr&0xfff)>>3)] |= (bits<<(a20Addr&7)); h->bitMap[((a20Addr&0xfff)>>3)+1] |= (bits<<(a20Addr&7))>>8; #else *(Bit16u*)&h->bitMap[((a20Addr&0xfff)>>3)] |= (bits<<(a20Addr&7)); #endif } BX_CPP_INLINE void decWriteStamp(BX_CPU_C *cpu, Bit32u a20Addr); BX_CPP_INLINE void clear(void) { memset(this, 0, sizeof(*this)); } BX_CPP_INLINE unsigned hash(Bit32u pAddr) { // A pretty dumb hash function for now. return pAddr & (BxICacheEntries-1); } BX_CPP_INLINE Bit32u createFetchModeMask(BX_CPU_C *cpu); }; #endif // =============================================================== #if BX_DYNAMIC_TRANSLATION typedef Bit8u * (*BxDTASResolveModrm_t)(Bit8u *, bxInstruction_c *, unsigned, unsigned); #endif //extern BxExecutePtr_t BxResolve32Mod1or2EffectAddressBaseIndexScaled[0x100]; //extern BxExecutePtr_t BxResolve32Mod0EffectAddressBaseIndexScaled[0x100]; #if BX_DYNAMIC_TRANSLATION // Arrays of function pointers which handle a specific // mod-rm address format extern BxDTASResolveModrm_t BxDTResolve32Mod0[]; extern BxDTASResolveModrm_t BxDTResolve32Mod1or2[]; extern BxDTASResolveModrm_t BxDTResolve32Mod0Base[]; extern BxDTASResolveModrm_t BxDTResolve32Mod1or2Base[]; extern BxDTASResolveModrm_t BxDTResolve16Mod1or2[]; extern BxDTASResolveModrm_t BxDTResolve16Mod0[]; #endif #if BX_CPU_LEVEL < 2 /* no GDTR or IDTR register in an 8086 */ #else typedef struct { Bit32u base; /* base address: 24bits=286,32bits=386 */ Bit16u limit; /* limit, 16bits */ } bx_global_segment_reg_t; #endif #if BX_USE_TLB typedef struct { Bit32u lpf; // linear page frame Bit32u ppf; // physical page frame Bit32u pte_addr; // Page Table Address for updating A & D bits Bit32u combined_access; } bx_TLB_entry; #endif // #if BX_USE_TLB #ifdef BX_BIG_ENDIAN typedef struct { union { Bit32u erx; struct { Bit16u word_filler; union { Bit16u rx; struct { Bit8u rh; Bit8u rl; } byte; }; } word; }; } bx_gen_reg_t; #else typedef struct { union { Bit32u erx; struct { union { Bit16u rx; struct { Bit8u rl; Bit8u rh; } byte; }; Bit16u word_filler; } word; }; } bx_gen_reg_t; #endif typedef enum { APIC_TYPE_NONE, APIC_TYPE_IOAPIC, APIC_TYPE_LOCAL_APIC } bx_apic_type_t; #define APIC_BASE_ADDR 0xfee00000 // default APIC address #if BX_SUPPORT_APIC class bx_generic_apic_c //: public logfunctions { protected: Bit32u base_addr; Bit8u id; #define APIC_UNKNOWN_ID 0xff #define APIC_VERSION_ID 0x00170011 // same version as 82093 IOAPIC public: bx_generic_apic_c (); virtual ~bx_generic_apic_c (); virtual void init (); virtual void hwreset () { } Bit32u get_base (void) { return base_addr; } void set_base (Bit32u newbase); void set_id (Bit8u newid); Bit8u get_id () { return id; } virtual char *get_name(); Boolean is_selected (Bit32u addr, Bit32u len); void read (Bit32u addr, void *data, unsigned len); virtual void read_aligned(Bit32u address, Bit32u *data, unsigned len); virtual void write(Bit32u address, Bit32u *value, unsigned len); virtual void startup_msg (Bit32u _vector); // on local APIC, trigger means deliver to the CPU. // on I/O APIC, trigger means direct to another APIC according to table. virtual void trigger_irq (unsigned num, unsigned from); virtual void untrigger_irq (unsigned num, unsigned from); virtual Bit32u get_delivery_bitmask (Bit8u dest, Bit8u dest_mode); virtual Boolean deliver (Bit8u destination, Bit8u dest_mode, Bit8u delivery_mode, Bit8u _vector, Bit8u polarity, Bit8u trig_mode); virtual Boolean match_logical_addr (Bit8u address); virtual bx_apic_type_t get_type (); virtual void set_arb_id (int newid); // only implemented on local apics }; class bx_local_apic_c : public bx_generic_apic_c { #define BX_LOCAL_APIC_MAX_INTS 256 // TMR=trigger mode register. Cleared for edge-triggered interrupts // and set for level-triggered interrupts. If set, local APIC must send // EOI message to all other APICs. EOI's are not implemented. Bit8u tmr[BX_LOCAL_APIC_MAX_INTS]; // IRR=intel_interrupt request register. When an intel_interrupt is triggered by // the I/O APIC or another processor, it sets a bit in irr. The bit is // cleared when the intel_interrupt is acknowledged by the processor. Bit8u irr[BX_LOCAL_APIC_MAX_INTS]; // ISR=in-service register. When an IRR bit is cleared, the corresponding // bit in ISR is set. The ISR bit is cleared when Bit8u isr[BX_LOCAL_APIC_MAX_INTS]; Bit32u arb_id, arb_priority, task_priority, log_dest, dest_format, spurious_vec; Bit32u lvt[6]; #define APIC_LVT_TIMER 0 #define APIC_LVT_THERMAL 1 #define APIC_LVT_PERFORM 2 #define APIC_LVT_LINT0 3 #define APIC_LVT_LINT1 4 #define APIC_LVT_ERROR 5 Bit32u timer_initial, timer_current, timer_divconf; Boolean timer_active; // internal state, not accessible from bus Bit32u timer_divide_counter, timer_divide_factor; Bit32u icr_high, icr_low; Bit32u err_status; #define APIC_ERR_ILLEGAL_ADDR 0x80 #define APIC_ERR_RX_ILLEGAL_VEC 0x40 #define APIC_ERR_TX_ILLEGAL_VEC 0x20 #define APIC_ERR_RX_ACCEPT_ERR 0x08 #define APIC_ERR_TX_ACCEPT_ERR 0x04 #define APIC_ERR_RX_CHECKSUM 0x02 #define APIC_ERR_TX_CHECKSUM 0x01 public: bx_local_apic_c(BX_CPU_C *mycpu); virtual ~bx_local_apic_c(void); BX_CPU_C *cpu; virtual void hwreset (); virtual void init (); BX_CPU_C *get_cpu (Bit8u id); void set_id (Bit8u newid); // redefine to set cpu->name virtual char *get_name(); virtual void write (Bit32u addr, Bit32u *data, unsigned len); virtual void read_aligned(Bit32u address, Bit32u *data, unsigned len); virtual void startup_msg (Bit32u _vector); // on local APIC, trigger means raise the CPU's INTR line. For now // I also have to raise pc_system.INTR but that should be replaced // with the cpu-specific INTR signals. virtual void trigger_irq (unsigned num, unsigned from); virtual void untrigger_irq (unsigned num, unsigned from); Bit8u acknowledge_int (); // only the local CPU should call this int highest_priority_int (Bit8u *array); void service_local_apic (); void print_status (); virtual Boolean match_logical_addr (Bit8u address); virtual Boolean is_local_apic () { return true; } virtual bx_apic_type_t get_type () { return APIC_TYPE_LOCAL_APIC; } virtual Bit32u get_delivery_bitmask (Bit8u dest, Bit8u dest_mode); virtual Boolean deliver (Bit8u destination, Bit8u dest_mode, Bit8u delivery_mode, Bit8u _vector, Bit8u polarity, Bit8u trig_mode); Bit8u get_ppr (); Bit8u get_apr (); void periodic (Bit32u usec_delta); void set_divide_configuration (Bit32u value); virtual void update_msr_apicbase(Bit32u newaddr); virtual void set_arb_id (int newid); }; #define APIC_MAX_ID 16 extern bx_generic_apic_c *apic_index[APIC_MAX_ID]; #endif // if BX_SUPPORT_APIC typedef void (*BxDTShim_t)(void); //==================================================== typedef struct _X86_SEGMENT_DESCRIPTOR //descriptor { unsigned limit_L0:8; unsigned limit_L1:8; unsigned base_L0:8; unsigned base_L1:8; unsigned base_H0:8; unsigned TYPE:4; //type unsigned DT:1; //storage segment (value=1) system segment and system gate (value=0) unsigned DPL:2; //Descriptor Privilege Level unsigned P:1; //Present unsigned limit_H:4; unsigned AVL:1; //soft accessed unsigned :1; //reseved (value=0) unsigned D:1; // segment size BIT31(1) BIT16(0) (storage segment) unsigned G:1; //Granularity unsigned base_H1:8; } X86_SEGMENT_DESCRIPTOR; typedef struct _X86_GATE_DESCRIPTOR //system gate { unsigned offset_L0:8; unsigned offset_L1:8; unsigned select_L0:8; unsigned select_L1:8; unsigned dwordcount:5; unsigned :3; // reseved (value=0) unsigned TYPE:4; //type unsigned DT:1; //storage segment (value=1) system segment and system gate (value=0) unsigned DPL:2; //Descriptor Privilege Level unsigned P:1; //Present unsigned offset_H0:8; unsigned offset_H1:8; } X86_GATE_DESCRIPTOR; typedef struct _TASK16SEGMENT { Bit16u TaskLink; //------------- Bit16u SP0; Bit16u SS0; Bit16u SP1; Bit16u SS1; Bit16u SP2; Bit16u SS2; //------------- Bit16u ip; Bit16u fl; Bit16u ax; Bit16u cx; Bit16u dx; Bit16u bx; Bit16u sp; Bit16u bp; Bit16u si; Bit16u di; //------------- Bit16u ES; Bit16u CS; Bit16u SS; Bit16u DS; //------------- Bit16u LDT; } TASK16SEGMENT; typedef struct _LOADALL286_DESCRIPTOR_T { union { struct { unsigned Base:24; // 24bit segment line base address }All; struct { unsigned byte0:8; // base0 unsigned byte1:8; // base1 unsigned byte2:8; // base2 unsigned TYPE:4; //type unsigned DT:1; //storage segment (value=1) system segment and system gate (value=0) unsigned DPL:2; //Descriptor Privilege Level unsigned P:1; //Present }Descr; struct { Bit16u word0; Bit16u word1; Bit16u Limit; // segment limit }Dword; }; } LOADALL286_DESCRIPTOR_T; typedef struct _LOADALL286 { Bit16u _[3]; Bit16u MSW; Bit16u __[7]; Bit16u TR; Bit16u fl; Bit16u ip; Bit16u LDTR; Bit16u DS; Bit16u SS; Bit16u CS; Bit16u ES; Bit16u di; Bit16u si; Bit16u bp; Bit16u sp; Bit16u bx; Bit16u dx; Bit16u cx; Bit16u ax; LOADALL286_DESCRIPTOR_T ES_D; LOADALL286_DESCRIPTOR_T CS_D; LOADALL286_DESCRIPTOR_T SS_D; LOADALL286_DESCRIPTOR_T DS_D; LOADALL286_DESCRIPTOR_T GDT; LOADALL286_DESCRIPTOR_T LDT; LOADALL286_DESCRIPTOR_T IDT; LOADALL286_DESCRIPTOR_T TSS; } LOADALL286; typedef struct _TASK32SEGMENT { Bit16u TaskLink; Bit16u TaskLink_word_filler; //------------- Bit32u ESP0; Bit16u SS0; Bit16u SS0_word_filler; Bit32u ESP1; Bit16u SS1; Bit16u SS1_word_filler; Bit32u ESP2; Bit16u SS2; Bit16u SS2_word_filler; //------------- Bit32u CR3; Bit32u eip; Bit32u efl; Bit32u eax; Bit32u ecx; Bit32u edx; Bit32u ebx; Bit32u esp; Bit32u ebp; Bit32u esi; Bit32u edi; //------------- Bit16u ES; Bit16u ES_word_filler; Bit16u CS; Bit16u CS_word_filler; Bit16u SS; Bit16u SS_word_filler; Bit16u DS; Bit16u DS_word_filler; Bit16u FS; Bit16u FS_word_filler; Bit16u GS; Bit16u GS_word_filler; //------------- Bit16u LDT; Bit16u LDT_word_filler; //------------- Bit16u Trap; Bit16u io_map_base; Bit8u io_map; } TASK32SEGMENT; typedef struct _LOADALL386_DESCRIPTOR_T { struct { unsigned _:8; // Ϊ 0 unsigned TYPE:4; //type unsigned DT:1; //storage segment (value=1);system segment and system gate (value=0) unsigned DPL:2; //Descriptor Privilege Level unsigned P:1; //Present unsigned __:8; // Ϊ 0 unsigned ____:8; // Ϊ 0 }Descr; struct { Bit32u Base; // segment line base address Bit32u Limit; // segment limit }QWord; } LOADALL386_DESCRIPTOR_T; typedef struct _LOADALL386 { Bit32u CR0; Bit32u efl; Bit32u eip; Bit32u edi; Bit32u esi; Bit32u ebp; Bit32u esp; Bit32u ebx; Bit32u edx; Bit32u ecx; Bit32u eax; Bit32u DR6; Bit32u DR7; Bit32u TR; Bit32u LDTR; Bit32u GS; Bit32u FS; Bit32u DS; Bit32u SS; Bit32u CS; Bit32u ES; LOADALL386_DESCRIPTOR_T TSS; LOADALL386_DESCRIPTOR_T IDT; LOADALL386_DESCRIPTOR_T GDT; LOADALL386_DESCRIPTOR_T LDT; LOADALL386_DESCRIPTOR_T GS_D; LOADALL386_DESCRIPTOR_T FS_D; LOADALL386_DESCRIPTOR_T DS_D; LOADALL386_DESCRIPTOR_T SS_D; LOADALL386_DESCRIPTOR_T CS_D; LOADALL386_DESCRIPTOR_T ES_D; Bit32u Length; Bit32u _[12]; Bit32u TST; Bit32u IDX; Bit32u TempH; Bit32u TempG; Bit32u TempF; Bit32u TempE; Bit32u TempD; Bit32u TempC; Bit32u TempB; Bit32u TempA; Bit32u CR2; Bit32u CR3; Bit32u MSR0x1001L; Bit32u MSR0x1001H; Bit32u MSR0x1000L; Bit32u DR0; Bit32u DR1; Bit32u DR2; Bit32u DR3; Bit32u PEIP; } LOADALL386; typedef union //־Ĵλζ { Bit32u eflags; struct //־Ĵλζ { unsigned cf:1; //0 unsigned b1:1; //1 unsigned pf:1; //2 unsigned b3:1; //3 unsigned af:1; //4 unsigned b5:1; //5 unsigned zf:1; //6 unsigned sf:1; //7 unsigned tf:1; //8 unsigned _if:1; //9 unsigned df:1; //10 unsigned of:1; //11 unsigned iopl:2; //12--13 unsigned nt:1; //14 unsigned bf:1; //15 unsigned rf:1; //16 unsigned vm:1; //17 unsigned ac:1; //18 unsigned vif:1; //19 unsigned _vip:1; //20 unsigned id:1; //21 unsigned :2; //22--23 unsigned :8; //24--31 }Descr; } X86_CPU_EFLAGS; typedef struct //mul64 div64 ͨݼĴ { Bit32u l32; Bit32u h32; } X86_CPU_INT64; void DivideBit64(X86_CPU_INT64 *source,Bit32u dst,X86_CPU_INT64 *result); void MultiplyBit64(X86_CPU_INT64 *result,Bit32u src,Bit32u dst); //============================================ class BX_MEM_C; #include "i387.h" struct BxOpcodeShiftFun_t { BxExecutePtr_t shiftL_EG; BxExecutePtr_t shiftR_EG; BxExecutePtr_t shiftL_EE; BxExecutePtr_t shiftR_EE; }; struct BxOpcodeShiftTable_t { unsigned count; const BxOpcodeShiftFun_t *shift_fun; }; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RO__Eb[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RO__Ew[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RO__Ed[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RC__Eb[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RC__Ew[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RC__Ed[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH__Eb[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH__Ew[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH__Ed[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SA__Eb[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SA__Ew[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SA__Ed[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH_D_EwGw[]; extern const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH_D_EdGd[]; struct BxOpcodeInfo_t { unsigned Attr; BxExecutePtr_t ExecutePtr; const struct BxOpcodeInfo_t *OpcodeInfoPtr; BxTranslatePtr_t TranslatePtr; }; extern const BxOpcodeInfo_t BxOpcodeInfoG_INSB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_INSW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_OUTSB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_OUTSW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_MOVSB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_MOVSW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_CMPSB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_CMPSW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_STOSB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_STOSW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_LODSB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_LODSW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_SCASB[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_SCASW[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_INSD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_OUTSD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_MOVSD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_CMPSD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_STOSD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_LODSD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG_SCASD[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EGbIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EGwIw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EGwIsb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0x8fEGw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGbIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGwIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0xc6EGbIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0xc7EGwIw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGb_1[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGw_1[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGbCL[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGwCL[]; extern const BxOpcodeInfo_t BxOpcodeInfoG3EGb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG3EGw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG4EGb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG5EGw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG6[]; extern const BxOpcodeInfo_t BxOpcodeInfoG7[]; extern const BxOpcodeInfo_t BxOpcodeInfoG8EGwIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG9[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EGdId[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EGdIsb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0x8fEGd[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGdIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0xc7EGdId[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGd_1[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EGdCL[]; extern const BxOpcodeInfo_t BxOpcodeInfoG5EGd[]; extern const BxOpcodeInfo_t BxOpcodeInfoG8EGdIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EEbIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EEwIw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EEwIsb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0x8fEEw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEbIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEwIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0xc6EEbIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0xc7EEwIw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEb_1[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEw_1[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEbCL[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEwCL[]; extern const BxOpcodeInfo_t BxOpcodeInfoG3EEb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG3EEw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG3EGd[]; extern const BxOpcodeInfo_t BxOpcodeInfoG4EEb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG5EEw[]; extern const BxOpcodeInfo_t BxOpcodeInfoG8EEwIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EEdId[]; extern const BxOpcodeInfo_t BxOpcodeInfoG1EEdIsb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0x8fEEd[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEdIb[]; extern const BxOpcodeInfo_t BxOpcodeInfoG0xc7EEdId[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEd_1[]; extern const BxOpcodeInfo_t BxOpcodeInfoG2EEdCL[]; extern const BxOpcodeInfo_t BxOpcodeInfoG3EEd[]; extern const BxOpcodeInfo_t BxOpcodeInfoG5EEd[]; extern const BxOpcodeInfo_t BxOpcodeInfoG8EEdIb[]; extern const BxOpcodeInfo_t BxOpcodeInfo[]; //512*2*2 typedef struct _X86_CPU_PROGRAM_VISIBLE_REGISTER { bx_gen_reg_t gen_reg[8]; bx_segment_reg_t sregs[8]; Bit32u eip; Bit32u eflags; } X86_CPU_PROGRAM_VISIBLE_REGISTER; struct __LAST_READ_WRITE { Bit32u read_address,write_address; int read_bytes,write_bytes; int i_bytes; }; #if (X86CPU_MSWIN_MSDOS==0) class BX_CPU_C : public logfunctions #else class BX_CPU_C //: public logfunctions #endif { public: // for now... struct { Bit64u popCounter; Bit64u pushCounter; Bit64u ReadMemoryCounter; Bit64u WriteMemoryCounter; Bit64u cahceLoop; Bit64u fetchdecode; } stamp; bxInstruction_c *instr; int intNumber; int lastInstr; BxExecutePtr_t lastInstructionListTable[0x100]; char name[64]; // General register set // eax: accumulator // ebx: base // ecx: count // edx: data // ebp: base pointer // esi: source index // edi: destination index // esp: stack pointer #if (X86CPU_MSWIN_MSDOS==0) bx_gen_reg_t program_visible_gen_reg[8]; /* user segment register set */ bx_segment_reg_t program_visible_sregs[8]; // instruction pointer Bit32u program_visible_eip; Bit32u program_visible_eflags; #else X86_CPU_PROGRAM_VISIBLE_REGISTER program_visible_register; #endif struct __LAST_READ_WRITE last_read_write; Bit8u * bytes_ptr[8]; /* system segment registers */ #if BX_CPU_LEVEL >= 2 bx_global_segment_reg_t gdtr; /* global descriptor table register */ bx_global_segment_reg_t idtr; /* intel_interrupt descriptor table register */ #endif bx_segment_reg_t ldtr; /* intel_interrupt descriptor table register */ bx_segment_reg_t tr; /* task register */ #if BX_CPU_LEVEL > 0 // so that we can back up when handling faults, exceptions, etc. // we need to store the value of the instruction pointer, before // each fetch/execute cycle. Bit32u prev_eip; Bit32u prev_esp; #endif // A few pointer to functions for use by the dynamic translation // code. Keep them close to the program_visible_gen_reg declaration, so I can // use an 8bit offset to access them. #if BX_DYNAMIC_TRANSLATION BxDTShim_t DTWrite8vShim; BxDTShim_t DTWrite16vShim; BxDTShim_t DTWrite32vShim; BxDTShim_t DTRead8vShim; BxDTShim_t DTRead16vShim; BxDTShim_t DTRead32vShim; BxDTShim_t DTReadRMW8vShim; BxDTShim_t DTReadRMW16vShim; BxDTShim_t DTReadRMW32vShim; BxDTShim_t DTWriteRMW8vShim; BxDTShim_t DTWriteRMW16vShim; BxDTShim_t DTWriteRMW32vShim; BxDTShim_t DTSetFlagsOSZAPCPtr; BxDTShim_t DTIndBrHandler; BxDTShim_t DTDirBrHandler; #endif // status and control flags register set Bit32u jcc; Bit32u jcc_steps; Bit32u lf_flags_status; bx_flags_reg_t eflags; bx_lf_flags_entry lf_entrys[BX_LF_INDEX_SIZE]; BX_SMF int PRINTFLAGSINFO(int ,char *,int ,int); #define BX_INHIBIT_INTERRUPTS 0x01 #define BX_INHIBIT_DEBUG 0x02 // What events to inhibit at any given time. Certain instructions // inhibit interrupts, some debug exceptions and single-step traps. unsigned inhibit_mask; /* debug registers 0-7 (unimplemented) */ #if BX_CPU_LEVEL >= 3 Bit32u dr0; Bit32u dr1; Bit32u dr2; Bit32u dr3; Bit32u dr6; Bit32u dr7; #endif /* TR3 - TR7 (Test Register 3-7), unimplemented */ /* Control registers */ #if BX_CPU_LEVEL >= 2 bx_cr0_t cr0; Bit32u cr1; Bit32u cr2; Bit32u cr3; #endif #if BX_CPU_LEVEL >= 4 Bit32u cr4; #endif #if BX_CPU_LEVEL >= 5 bx_regs_msr_t msr; #endif i387_t the_i387; // pointer to the address space that this processor uses. BX_MEM_C *mem; Boolean EXT; /* 1 if processing external intel_interrupt or exception * or if not related to current instruction, * 0 if current CS:IP caused exception */ unsigned errorno; /* signal exception during instruction emulation */ Bit32u debug_trap; // holds DR6 value to be set as well volatile Boolean async_event; volatile Boolean INTR; /* wether this CPU is the BSP always set for UP */ Boolean bsp; // for accessing registers by index number Bit16u *_16bit_base_reg[8]; Bit16u *_16bit_index_reg[8]; Bit32u empty_register; // for decoding instructions; accessing seg reg's by index unsigned sreg_mod00_rm16[8]; unsigned sreg_mod01_rm16[8]; unsigned sreg_mod10_rm16[8]; unsigned sreg_mod01_rm32[8]; unsigned sreg_mod10_rm32[8]; unsigned sreg_mod0_base32[8]; unsigned sreg_mod1or2_base32[8]; // for exceptions jmp_buf jmp_buf_env; Bit8u curr_exception[2]; static const Boolean is_exception_OK[3][3]; bx_flags_reg_t save_eflags; bx_segment_reg_t save_cs; bx_segment_reg_t save_ss; Bit32u save_eip; Bit32u save_esp; // Boundaries of current page, based on EIP bx_address eipPageBias; bx_address eipPageWindowSize; Bit8u *eipFetchPtr; Bit32u pAddrA20Page; // Guest physical address of current instruction // page with A20() already applied. // For prefetch'ing instructions int bytesleft; Bit8u *fetch_ptr; Bit32u prev_linear_page; Bit32u prev_phy_page; Bit32u max_phy_addr; #if BX_DEBUGGER Bit8u break_point; #ifdef MAGIC_BREAKPOINT Bit8u magic_break; #endif Bit8u stop_reason; Bit8u trace; Bit8u trace_reg; Bit8u mode_break; /* BW */ Boolean debug_vm; /* BW contains current mode*/ Bit8u show_eip; /* BW record eip at special instr f.ex eip */ Bit8u show_flag; /* BW shows instr class executed */ bx_guard_found_t guard_found; #endif // for paging #if BX_USE_TLB struct { bx_TLB_entry entry[BX_TLB_SIZE]; } TLB; #endif // An instruction cache. Each entry should be exactly 32 bytes, and // this structure should be aligned on a 32-byte boundary to be friendly // with the host cache lines. #if BX_SupportICache bxICache_c iCache; // BX_CPP_AlignN(32); #endif struct { bx_address rm_addr; // The address offset after resolution. Bit32u paddress1; // physical address after translation of 1st len1 bytes of data Bit32u paddress2; // physical address after translation of 2nd len2 bytes of data Bit32u len1; // Number of bytes in page 1 Bit32u len2; // Number of bytes in page 2 Bit32u pages; // Number of pages access spans (1 or 2). Also used // for the case when a native host pointer is // available for the R-M-W instructions. The host // pointer is stuffed here. Since this field has // to be checked anyways (and thus cached), if it // is greated than 2 (the maximum possible for // normal cases) it is a native pointer and is used // for a direct write access. } address_xlation; struct { Bit32u LastBranchToCS_EIP; Bit32u LastBranchFromCS_EIP; Bit32u LastExceptionToCS_EIP; Bit32u LastExceptionFromCS_EIP; } LBR; // for lazy flags processing BX_SMF Boolean get_OF(void); BX_SMF Boolean get_SF(void); BX_SMF Boolean get_ZF(void); BX_SMF Boolean get_AF(void); BX_SMF Boolean get_PF(void); BX_SMF Boolean get_CF(void); // constructors & destructors... BX_CPU_C(); ~BX_CPU_C(void); void init (BX_MEM_C *addrspace); void exit (void); int x86_cpu_loop(Bit32s max_instr_count); unsigned x86_handleAsyncEvent(void); void x86_boundaryFetch(bxInstruction_c *i); void x86_prefetch(void); inline Bit16u READ_SEGMENT_SELECTOR(int i) { return program_visible_sregs[(i)].selector.value; } inline void WRITE_SEGMENT_SELECTOR(int i,Bit16u selector) { program_visible_sregs[(i)].selector.value = selector; program_visible_sregs[(i)].cache.u.segment.base = selector<<4; invalidate_prefetch_q(); } inline Bit16u READ_FLAGS_REGISTER(void) { return read_flags();} inline Bit32u READ_EFLAGS_REGISTER(void) { return read_eflags();} inline void WRITE_FLAGS_REGISTER(Bit16u flags) { write_flags(flags,true,true); } inline void WRITE_EFLAGS_REGISTER(Bit32u eflags) { write_eflags(eflags,true,true,true,true); } Bit32u mem_len; Bit32u *page_access_stamp_ptr; //ִ--ָ΢ #define HOST_CPU_IS_I80386 0 #define BIT16 0 #define BIT32 1 #define BIT64 2 #define PREV_EIP prev_eip #define REG_EIP program_visible_eip #define REG_EFLAGS program_visible_eflags #define LAST_INSTRUCTION_BYTES last_read_write.i_bytes #define GENERAL_REG_DWORD(x) program_visible_gen_reg[(x)].erx #define GENERAL_REG_WORD(x) program_visible_gen_reg[(x)].word.rx #define GENERAL_REG_BYTE_L(x) program_visible_gen_reg[(x)].word.byte.rl #define GENERAL_REG_BYTE_H(x) program_visible_gen_reg[(x)].word.byte.rh #define SEGMENT_REG(x) program_visible_sregs[(x)] #define SEGMENT_MODE(x) program_visible_sregs[(x)].cache.u.segment.d_b #define SEGMENT_SELECTOR(x) program_visible_sregs[(x)].selector.value #define SEGMENT_BASE_ADDRESS(x) program_visible_sregs[(x)].cache.u.segment.base #define PROGRAM_REG_EIP eip #define PROGRAM_REG_EFLAGS eflags #define PROGRAM_GENERAL_REG_DWORD(x) gen_reg[(x)].erx #define PROGRAM_GENERAL_REG_WORD(x) gen_reg[(x)].word.rx #define PROGRAM_GENERAL_REG_BYTE_L(x) gen_reg[(x)].word.byte.rl #define PROGRAM_GENERAL_REG_BYTE_H(x) gen_reg[(x)].word.byte.rh #define PROGRAM_SEGMENT_REG(x) sregs[(x)] #define PROGRAM_SEGMENT_MODE(x) sregs[(x)].cache.u.segment.d_b #define PROGRAM_SEGMENT_SELECTOR(x) sregs[(x)].selector.value #define PROGRAM_SEGMENT_BASE_ADDRESS(x) sregs[(x)].cache.u.segment.base #ifndef I_EAX #define I_EAX 0 #define I_ECX 1 #define I_EDX 2 #define I_EBX 3 #define I_ESP 4 #define I_EBP 5 #define I_ESI 6 #define I_EDI 7 #endif #ifndef I_ES #define I_ES 0 #define I_CS 1 #define I_SS 2 #define I_DS 3 #define I_FS 4 #define I_GS 5 #endif //------------------------------------------------------------------- //------------------------------------------------------------------- //ִ--ָ΢ BX_SMF int Translate_ADD_ALIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_AXIw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EAXId(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_RLIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_RHIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_RXIw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_ERXId(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_ALOb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_AXOw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_ObAL(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_OwAX(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_EAXOd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MOV_OdEAX(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGbGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGwGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGdGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGbIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGwIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGwIw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGdIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EGdId(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEbGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEwGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEdGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEbIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEwIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEwIw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEdIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_ADD_EEdId(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EEb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EEw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EEd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EGbIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EGwIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EGdIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EEbIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EEwIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_SHIFT_EEdIb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_b(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_w(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_d(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_EGbGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_EGwGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_EGdGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_EEbGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_EEwGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_1byte_EEdGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_b(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_w(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_d(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_EGbGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_EGwGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_EGdGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_EEbGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_EEwGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_2byte_EEdGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_INCDEC_EGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_INCDEC_EGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_INCDEC_EGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_INCDEC_EEb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_INCDEC_EEw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_INCDEC_EEd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NOT_EGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NOT_EGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NOT_EGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NOT_EEb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NOT_EEw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NOT_EEd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NEG_EGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NEG_EGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NEG_EGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NEG_EEb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NEG_EEw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_NEG_EEd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MULT_EGb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MULT_EGw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MULT_EGd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MULT_EEb(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MULT_EEw(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_MULT_EEd(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_AAM_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_AAD_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_XLAT_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_virtual_run(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_virtual_run_m(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_JCC_J_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_JMP_J_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_LOOP_J_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_JCXZ_J_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_JMP_(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); BX_SMF int Translate_JMP_m(bxInstruction_c *instr,int addrsize,int modrmlength,Bit8u *iptr,Bit8u *tptr); //ִ--ָ΢ #if 0 ADD SUB AND XOR OR ADC SBB CMP TEST #endif #define BX_SMF_FORCE static BX_SMF_FORCE void ADD_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADD_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void SUB_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SUB_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void AND_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AND_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void XOR_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XOR_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void OR_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OR_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void ADC_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EAXId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ADC_EEdId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void SBB_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SBB_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void CMP_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMP_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- BX_SMF_FORCE void TEST_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_ALIb ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_AXIw ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void TEST_EAXId( BX_CPU_C *,bxInstruction_c *); //--------------------- //------------------------------------------- BX_SMF_FORCE void INC_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_RX ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_ERX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_RX ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_ERX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NEG_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NEG_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NEG_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOT_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOT_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOT_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INC_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DEC_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NEG_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NEG_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NEG_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOT_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOT_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOT_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XADD_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XADD_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XADD_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XADD_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XADD_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XADD_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_GbEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EGbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_GbEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EEbIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EEdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GwEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GwEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GdEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GdEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GdEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GdEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GwEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GwEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GdEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GdEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVZX_GdEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSX_GdEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_ALOb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_ObAL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_AXOw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_OwAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EAXOd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_OdEAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_RLIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_RHIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_RXIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_ERXId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_EGbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_EEbGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_RXAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XCHG_ERXEAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSF_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSF_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSR_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSR_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSF_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSF_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSR_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSR_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EGwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EGdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EEwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BT_EEdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EGwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EGdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EEwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTS_EEdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EGwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EGdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EEwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTR_EEdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EGwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EGdIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EEwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BTC_EEdIb( BX_CPU_C *,bxInstruction_c *); //--------------------------------------------------------------- BX_SMF_FORCE void ROL_EGb_0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGw_0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGd_0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEb_0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEw_0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEd_0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGwGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGdGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGwGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGdGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGwGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGdGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGwGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGdGd_n( BX_CPU_C *,bxInstruction_c *); //------------------------------------------- BX_SMF_FORCE void ROL_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEb_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEb_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEwGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEdGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEwGw_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEdGd_1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEwGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEdGd_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEwGw_n( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEdGd_n( BX_CPU_C *,bxInstruction_c *); //-------------------------------------------- BX_SMF_FORCE void ROL_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGd( BX_CPU_C *,bxInstruction_c *); //------------------------------------------- BX_SMF_FORCE void ROL_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEd( BX_CPU_C *,bxInstruction_c *); //------------------------------------------- //------------------------------------------- BX_SMF_FORCE void ROL_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROL_EEdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ROR_EEdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCL_EEdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RCR_EEdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHL_EEdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHR_EEdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEbCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAR_EEdCL( BX_CPU_C *,bxInstruction_c *); //------------------------------------------- //------------------------------------------- BX_SMF_FORCE void SHLD_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEdGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGwGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EGdGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGwGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EGdGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEwGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHLD_EEdGdCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEwGwCL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SHRD_EEdGdCL( BX_CPU_C *,bxInstruction_c *); //------------------------------------------- //------------------------------------------- BX_SMF_FORCE void DIV_ALEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DIV_AXEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DIV_EAXEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IDIV_ALEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IDIV_AXEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IDIV_EAXEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DIV_ALEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DIV_AXEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DIV_EAXEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IDIV_ALEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IDIV_AXEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IDIV_EAXEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MUL_ALEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MUL_AXEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MUL_EAXEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_ALEGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_AXEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_EAXEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GwEGwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GdEGdId( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MUL_ALEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MUL_AXEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MUL_EAXEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_ALEEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_AXEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_EAXEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GwEEwIw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IMUL_GdEEdId( BX_CPU_C *,bxInstruction_c *); // prototypes for CPU instructions... BX_SMF_FORCE void PUSH_ES( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_CS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_SS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_DS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_FS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_GS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_ES( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_SS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_DS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_FS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_GS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_EwSw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_SwEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LES_GvMp( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LDS_GvMp( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LSS_GvMp( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LFS_GvMp( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LGS_GvMp( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DAA( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void DAS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AAA( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AAS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AAM( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void AAD( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CBW( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CWD( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CDQ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CWDE( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SALC( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void XLAT( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSHAD32( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSHAD16( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POPAD32( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POPAD16( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_Id( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_Iw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_Ev( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BOUND_GvMa( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ARPL_EwGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LEA_GdM( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LEA_GwM( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void FWAIT( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSHF( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POPF( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SAHF( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LAHF( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSB_XbYb_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSB_XbYb_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSB_XbYb_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSB_XbYb_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSB_XbYb_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSB_XbYb_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSW_XvYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSW_XvYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSW_XvYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSW_XvYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSW_XvYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSW_XvYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSD_XvYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSD_XvYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSD_XvYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSD_XvYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSD_XvYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOVSD_XvYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSB_XbYb_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSB_XbYb_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSB_XbYb_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSB_XbYb_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSB_XbYb_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSB_XbYb_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSW_XvYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSW_XvYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSW_XvYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSW_XvYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSW_XvYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSW_XvYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSD_XvYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSD_XvYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSD_XvYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSD_XvYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSD_XvYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPSD_XvYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASB_ALYb_E16_rep__ ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASB_ALYb_E16_repf2 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASB_ALYb_E16_repf3 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASB_ALYb_E32_rep__ ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASB_ALYb_E32_repf2 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASB_ALYb_E32_repf3 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASW_eAXYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASW_eAXYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASW_eAXYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASW_eAXYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASW_eAXYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASW_eAXYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASD_eAXYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASD_eAXYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASD_eAXYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASD_eAXYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASD_eAXYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SCASD_eAXYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSB_ALYb_E16_rep__ ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSB_ALYb_E16_repf2 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSB_ALYb_E16_repf3 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSB_ALYb_E32_rep__ ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSB_ALYb_E32_repf2 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSB_ALYb_E32_repf3 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSW_eAXYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSW_eAXYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSW_eAXYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSW_eAXYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSW_eAXYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSW_eAXYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSD_eAXYv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSD_eAXYv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSD_eAXYv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSD_eAXYv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSD_eAXYv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STOSD_eAXYv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSB_ALXb_E16_rep__ ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSB_ALXb_E16_repf2 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSB_ALXb_E16_repf3 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSB_ALXb_E32_rep__ ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSB_ALXb_E32_repf2 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSB_ALXb_E32_repf3 ( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSW_eAXXv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSW_eAXXv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSW_eAXXv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSW_eAXXv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSW_eAXXv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSW_eAXXv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSD_eAXXv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSD_eAXXv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSD_eAXXv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSD_eAXXv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSD_eAXXv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LODSD_eAXXv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSB_DXXb_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSW_DXXv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSD_DXXv_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSD_DXXv_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSD_DXXv_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSD_DXXv_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSD_DXXv_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUTSD_DXXv_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSB_YbDX_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSW_YvDX_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSD_YvDX_E16_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSD_YvDX_E16_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSD_YvDX_E16_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSD_YvDX_E32_rep__( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSD_YvDX_E32_repf2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INSD_YvDX_E32_repf3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ENTER_IwIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LEAVE( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INT1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INT3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INT_Ib( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INTO( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IRET32( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IRET16( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IN_ALIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IN_eAXIb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUT_IbAL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUT_IbeAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IN_ALDX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void IN_eAXDX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUT_DXAL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void OUT_DXeAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void HLT( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMC( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CLC( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STC( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CLI( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STI( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CLD( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STD( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LAR_GvEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LSL_GvEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CLTS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void INVD( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void WBINVD( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_CdRd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_DdRd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_RdCd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_RdDd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_TdRd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void MOV_RdTd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SETcc_EGb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SETcc_EEb( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc0_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc1_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc2_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc3_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc4_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc5_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc6_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc7_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc8_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc9_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcca_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccb_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccc_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccd_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcce_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccf_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc0_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc1_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc2_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc3_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc4_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc5_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc6_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc7_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc8_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcc9_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcca_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccb_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccc_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccd_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jcce_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Jccf_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JCXZ_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JCXZ_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOOP_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOOP_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOOPE_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOOPE_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOOPNE_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOOPNE_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL_Jw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL_Jd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP16_Ap( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP16_Ep( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP32_Ap( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void JMP32_Ep( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL16_Ap( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL16_Ep( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL32_Ap( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CALL32_Ep( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETnear32( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETnear16( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETnear32_Iw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETnear16_Iw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETfar32( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETfar16( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETfar32_Iw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RETfar16_Iw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_ERX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_EAX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_ECX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_EDX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_EBX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_ESP( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_EBP( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_ESI( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BSWAP_EDI( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SLDT_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void STR_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LLDT_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LTR_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void VERR_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void VERW_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SGDT_Ms( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SIDT_Ms( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LGDT_Ms( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LIDT_Ms( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void SMSW_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LMSW_Ew( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC0( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC1( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC2( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC3( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC4( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC5( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC6( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void ESC7( BX_CPU_C *,bxInstruction_c *); BX_SMF void fpu_execute(bxInstruction_c *i); BX_SMF void fpu_init(void); BX_SMF void fpu_print_regs (void); BX_SMF_FORCE void CMPXCHG_XBTS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG_IBTS( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMPXCHG8B( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CPUID( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void LOADALL( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMOV_GwEGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMOV_GwEEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMOV_GdEGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void CMOV_GdEEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void NOP( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_RX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_RX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_ERX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_ERX( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void PUSH_EEd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_EGw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_EEw( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_EGd( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void POP_EEd( BX_CPU_C *,bxInstruction_c *); // mch added BX_SMF_FORCE void INVLPG( BX_CPU_C *,bxInstruction_c *); BX_SMF void wait_for_interrupt(); BX_SMF_FORCE void RSM( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void WRMSR( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RDTSC( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void RDMSR( BX_CPU_C *,bxInstruction_c *); BX_SMF void SetCR0(Bit32u val_32); BX_SMF void dynamic_translate(void); BX_SMF void dynamic_init(void); /////////// FetchDecode BX_SMF unsigned fetchDecode(Bit8u *, bxInstruction_c *, unsigned); BX_SMF_FORCE void UndefinedOpcode( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BxError( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void BxResolveError( BX_CPU_C *,bxInstruction_c *); BX_SMF_FORCE void Resolve16Mod0Rm0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod0Rm7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve16Mod1or2Rm7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0Rm7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2Rm7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x00(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x01(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x02(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x03(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x04(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x05(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x06(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x07(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x08(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x09(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x0a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x0b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x0c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x0d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x0e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x0f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x10(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x11(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x12(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x13(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x14(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x15(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x16(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x17(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x18(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x19(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x1a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x1b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x1c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x1d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x1e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x1f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x20(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x21(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x22(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x23(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x24(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x25(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x26(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x27(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x28(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x29(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x2a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x2b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x2c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x2d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x2e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x2f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x30(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x31(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x32(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x33(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x34(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x35(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x36(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x37(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x38(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x39(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x3a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x3b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x3c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x3d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x3e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x3f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x40(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x41(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x42(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x43(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x44(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x45(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x46(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x47(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x48(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x49(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x4a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x4b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x4c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x4d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x4e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x4f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x50(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x51(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x52(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x53(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x54(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x55(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x56(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x57(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x58(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x59(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x5a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x5b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x5c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x5d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x5e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x5f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x60(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x61(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x62(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x63(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x64(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x65(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x66(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x67(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x68(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x69(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x6a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x6b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x6c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x6d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x6e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x6f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x70(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x71(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x72(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x73(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x74(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x75(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x76(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x77(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x78(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x79(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x7a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x7b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x7c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x7d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x7e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x7f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x80(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x81(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x82(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x83(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x84(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x85(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x86(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x87(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x88(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x89(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x8a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x8b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x8c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x8d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x8e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x8f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x90(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x91(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x92(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x93(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x94(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x95(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x96(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x97(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x98(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x99(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x9a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x9b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x9c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x9d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x9e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0x9f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xa9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xaa(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xab(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xac(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xad(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xae(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xaf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xb9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xba(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xbb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xbc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xbd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xbe(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xbf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xc9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xca(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xcb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xcc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xcd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xce(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xcf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xd9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xda(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xdb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xdc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xdd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xde(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xdf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xe9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xea(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xeb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xec(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xed(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xee(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xef(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xf9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xfa(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xfb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xfc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xfd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xfe(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod1or2EffectAddress_sib0xff(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x00(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x01(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x02(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x03(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x04(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x05(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x06(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x07(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x08(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x09(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x0a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x0b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x0c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x0d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x0e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x0f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x10(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x11(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x12(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x13(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x14(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x15(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x16(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x17(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x18(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x19(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x1a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x1b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x1c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x1d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x1e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x1f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x20(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x21(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x22(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x23(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x24(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x25(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x26(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x27(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x28(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x29(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x2a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x2b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x2c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x2d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x2e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x2f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x30(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x31(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x32(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x33(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x34(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x35(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x36(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x37(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x38(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x39(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x3a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x3b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x3c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x3d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x3e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x3f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x40(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x41(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x42(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x43(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x44(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x45(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x46(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x47(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x48(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x49(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x4a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x4b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x4c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x4d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x4e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x4f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x50(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x51(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x52(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x53(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x54(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x55(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x56(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x57(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x58(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x59(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x5a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x5b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x5c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x5d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x5e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x5f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x60(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x61(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x62(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x63(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x64(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x65(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x66(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x67(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x68(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x69(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x6a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x6b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x6c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x6d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x6e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x6f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x70(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x71(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x72(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x73(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x74(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x75(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x76(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x77(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x78(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x79(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x7a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x7b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x7c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x7d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x7e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x7f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x80(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x81(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x82(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x83(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x84(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x85(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x86(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x87(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x88(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x89(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x8a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x8b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x8c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x8d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x8e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x8f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x90(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x91(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x92(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x93(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x94(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x95(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x96(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x97(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x98(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x99(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x9a(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x9b(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x9c(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x9d(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x9e(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0x9f(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xa9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xaa(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xab(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xac(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xad(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xae(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xaf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xb9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xba(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xbb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xbc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xbd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xbe(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xbf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xc9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xca(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xcb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xcc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xcd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xce(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xcf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xd9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xda(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xdb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xdc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xdd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xde(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xdf(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xe9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xea(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xeb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xec(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xed(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xee(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xef(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf0(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf1(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf2(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf3(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf4(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf5(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf6(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf7(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf8(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xf9(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xfa(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xfb(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xfc(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xfd(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xfe(BX_CPU_C * , bxInstruction_c * ); BX_SMF_FORCE void Resolve32Mod0EffectAddress_sib0xff(BX_CPU_C * , bxInstruction_c * ); BX_SMF void REP(void (*)(void)); BX_SMF void REP_ZF(void (*)(void), unsigned rep_prefix); #if BX_DEBUGGER BX_SMF void dbg_take_irq(void); BX_SMF void dbg_force_interrupt(unsigned _vector); BX_SMF void dbg_take_dma(void); BX_SMF Boolean dbg_get_cpu(bx_dbg_cpu_t *cpu); BX_SMF Boolean dbg_set_cpu(bx_dbg_cpu_t *cpu); BX_SMF Boolean dbg_set_reg(unsigned reg, Bit32u val); BX_SMF Bit32u dbg_get_reg(unsigned reg); BX_SMF Boolean dbg_get_sreg(bx_dbg_sreg_t *sreg, unsigned sreg_no); BX_SMF unsigned dbg_query_pending(void); BX_SMF Bit32u dbg_get_descriptor_l(bx_descriptor_t *); BX_SMF Bit32u dbg_get_descriptor_h(bx_descriptor_t *); BX_SMF Bit32u dbg_get_eflags(void); BX_SMF Boolean dbg_is_begin_instr_bpoint(Bit32u cs, Bit32u eip, Bit32u laddr, Bit32u is_32); BX_SMF Boolean dbg_is_end_instr_bpoint(Bit32u cs, Bit32u eip, Bit32u laddr, Bit32u is_32); #endif #if BX_DEBUGGER || BX_DISASM || BX_INSTRUMENTATION BX_SMF void dbg_xlate_linear2phy(Bit32u linear, Bit32u *phy, Boolean *valid); #endif BX_SMF void atexit(void); // now for some ancillary functions... BX_SMF void cpu_loop(Bit32s max_instr_count); BX_SMF void decode_exgx16(unsigned need_fetch); BX_SMF void decode_exgx32(unsigned need_fetch); BX_SMF void prefetch(void); BX_SMF void revalidate_prefetch_q(void); BX_SMF void invalidate_prefetch_q(void); BX_SMF void write_virtual_checks(bx_segment_reg_t *seg, Bit32u offset, unsigned length); BX_SMF void read_virtual_checks(bx_segment_reg_t *seg, Bit32u offset, unsigned length); #define BX_IO_READ 0 #define BX_IO_WRITE 1 BX_SMF Bit32u read_io_(Bit16u addr,unsigned len) { Bit32u temp = 0; BX_CPU_THIS_PTR access_io(addr,len,0,BX_IO_READ,&temp); return temp; } BX_SMF void write_io_(Bit16u addr,unsigned len,Bit32u value) { BX_CPU_THIS_PTR access_io(addr,len,0,BX_IO_WRITE,&value); } #if (X86CPU_MSWIN_MSDOS==0) #define BX_LINEAR_MEMORY_READ_WRITE BX_SMF #else #define BX_LINEAR_MEMORY_READ_WRITE virtual #endif BX_LINEAR_MEMORY_READ_WRITE void write_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); BX_LINEAR_MEMORY_READ_WRITE void write_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); BX_LINEAR_MEMORY_READ_WRITE void write_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); BX_LINEAR_MEMORY_READ_WRITE void read_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); BX_LINEAR_MEMORY_READ_WRITE void read_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); BX_LINEAR_MEMORY_READ_WRITE void read_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); BX_LINEAR_MEMORY_READ_WRITE void read_RMW_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); BX_LINEAR_MEMORY_READ_WRITE void read_RMW_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); BX_LINEAR_MEMORY_READ_WRITE void read_RMW_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); BX_LINEAR_MEMORY_READ_WRITE void write_RMW_virtual_byte(Bit8u val8); BX_LINEAR_MEMORY_READ_WRITE void write_RMW_virtual_word(Bit16u val16); BX_LINEAR_MEMORY_READ_WRITE void write_RMW_virtual_dword(Bit32u val32); BX_LINEAR_MEMORY_READ_WRITE void access_io(Bit16u addr, unsigned length,unsigned pl, unsigned rw,void *data); BX_LINEAR_MEMORY_READ_WRITE void access_linear(Bit32u address, unsigned length, unsigned pl, unsigned rw, void *data); BX_SMF Bit32u itranslate_linear(Bit32u laddress, unsigned pl); BX_SMF Bit32u dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw); BX_LINEAR_MEMORY_READ_WRITE void write_push_word(unsigned seg, Bit32u offset, Bit16u *data); BX_LINEAR_MEMORY_READ_WRITE void write_push_dword(unsigned seg, Bit32u offset, Bit32u *data); // :physical page number physical_address_base:С physical page ıַ BX_LINEAR_MEMORY_READ_WRITE int get_physical_host_memory(void **physical_address_base); BX_LINEAR_MEMORY_READ_WRITE Bit8u *getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp); BX_SMF void TLB_flush(void); BX_SMF void TLB_clear(void); BX_SMF void TLB_init(void); BX_SMF void set_INTR(Boolean value); BX_SMF char *strseg(bx_segment_reg_t *seg); BX_SMF void intel_interrupt(Bit8u _vector, Boolean is_INT, Boolean is_error_code, Bit16u error_code); #if BX_CPU_LEVEL >= 2 BX_SMF void exception(unsigned _vector, Bit16u error_code, Boolean is_INT); #endif BX_SMF int int_number(bx_segment_reg_t *seg); BX_SMF void shutdown_cpu(void); BX_SMF void enable_paging(void); BX_SMF void disable_paging(void); BX_SMF void CR3_change(Bit32u value32); BX_SMF void reset(unsigned source); BX_SMF void jump_protected(bxInstruction_c *, Bit16u cs, Bit32u disp32); BX_SMF void call_protected(bxInstruction_c *, Bit16u cs, Bit32u disp32); BX_SMF void return_protected(bxInstruction_c *, Bit16u pop_bytes); BX_SMF void iret_protected(bxInstruction_c *); BX_SMF void validate_seg_regs(void); BX_SMF void stack_return_to_v86(Bit32u new_eip, Bit32u raw_cs_selector, Bit32u flags32); BX_SMF void stack_return_from_v86(bxInstruction_c *); BX_SMF void init_v8086_mode(void); BX_SMF void v8086_message(void); BX_SMF void task_switch(bx_selector_t *selector, bx_descriptor_t *descriptor, unsigned source, Bit32u dword1, Bit32u dword2); BX_SMF void get_SS_ESP_from_TSS(unsigned pl, Bit16u *ss, Bit32u *esp); BX_SMF void write_flags(Bit16u flags, Boolean change_IOPL, Boolean change_IF); BX_SMF void write_eflags(Bit32u eflags, Boolean change_IOPL, Boolean change_IF, Boolean change_VM, Boolean change_RF); BX_SMF Bit16u read_flags(void); BX_SMF Bit32u read_eflags(void); BX_SMF Bit8u inp8(Bit16u addr); BX_SMF void outp8(Bit16u addr, Bit8u value); BX_SMF Bit16u inp16(Bit16u addr); BX_SMF void outp16(Bit16u addr, Bit16u value); BX_SMF Bit32u inp32(Bit16u addr); BX_SMF void outp32(Bit16u addr, Bit32u value); BX_SMF Boolean allow_io(Bit16u addr, unsigned len); BX_SMF void enter_protected_mode(void); BX_SMF void enter_real_mode(void); BX_SMF void parse_selector(Bit16u raw_selector, bx_selector_t *selector); BX_SMF void parse_descriptor(Bit32u dword1, Bit32u dword2, bx_descriptor_t *temp); BX_SMF void load_ldtr(bx_selector_t *selector, bx_descriptor_t *descriptor); BX_SMF void load_cs(bx_selector_t *selector, bx_descriptor_t *descriptor, Bit8u cpl); BX_SMF void load_ss(bx_selector_t *selector, bx_descriptor_t *descriptor, Bit8u cpl); BX_SMF void fetch_raw_descriptor(bx_selector_t *selector, Bit32u *dword1, Bit32u *dword2, Bit8u exception); BX_SMF void load_seg_reg(bx_segment_reg_t *seg, Bit16u new_value); BX_SMF Boolean fetch_raw_descriptor2(bx_selector_t *selector, Bit32u *dword1, Bit32u *dword2); BX_SMF void push_16(Bit16u value16); BX_SMF void push_32(Bit32u value32); BX_SMF void call_push_16(Bit16u value16); BX_SMF void call_push_32(Bit32u value32); BX_SMF void pop_16(Bit16u *value16_ptr); BX_SMF void pop_32(Bit32u *value32_ptr); BX_SMF Boolean can_push(bx_descriptor_t *descriptor, Bit32u esp, Bit32u bytes); BX_SMF Boolean can_pop(Bit32u bytes); BX_SMF void sanity_checks(void); BX_SMF void debug(Bit32u offset); #if BX_X86_DEBUGGER // x86 hardware debug support BX_SMF Bit32u hwdebug_compare(Bit32u laddr, unsigned size, unsigned opa, unsigned opb); #endif BX_SMF BX_CPP_INLINE void set_CF(Boolean val); BX_SMF BX_CPP_INLINE void set_AF(Boolean val); BX_SMF BX_CPP_INLINE void set_ZF(Boolean val); BX_SMF BX_CPP_INLINE void set_SF(Boolean val); BX_SMF BX_CPP_INLINE void set_OF(Boolean val); BX_SMF BX_CPP_INLINE void set_PF(Boolean val); BX_SMF BX_CPP_INLINE void set_PF_base(Bit8u val); BX_SMF BX_CPP_INLINE void set_AX(Bit16u ax); BX_SMF BX_CPP_INLINE void set_BX(Bit16u bx); BX_SMF BX_CPP_INLINE void set_CX(Bit16u cx); BX_SMF BX_CPP_INLINE void set_DX(Bit16u dx); BX_SMF BX_CPP_INLINE void set_AL(Bit8u al); BX_SMF BX_CPP_INLINE void set_AH(Bit8u ah); BX_SMF BX_CPP_INLINE void set_BL(Bit8u bl); BX_SMF BX_CPP_INLINE void set_BH(Bit8u bh); BX_SMF BX_CPP_INLINE void set_CL(Bit8u cl); BX_SMF BX_CPP_INLINE void set_CH(Bit8u ch); BX_SMF BX_CPP_INLINE void set_DL(Bit8u dl); BX_SMF BX_CPP_INLINE void set_DH(Bit8u dh); BX_SMF BX_CPP_INLINE Bit8u get_AL(void); BX_SMF BX_CPP_INLINE Bit8u get_AH(void); BX_SMF BX_CPP_INLINE Bit8u get_BL(void); BX_SMF BX_CPP_INLINE Bit8u get_BH(void); BX_SMF BX_CPP_INLINE Bit8u get_CL(void); BX_SMF BX_CPP_INLINE Bit8u get_CH(void); BX_SMF BX_CPP_INLINE Bit8u get_DL(void); BX_SMF BX_CPP_INLINE Bit8u get_DH(void); BX_SMF BX_CPP_INLINE Bit16u get_AX(void); BX_SMF BX_CPP_INLINE Bit16u get_BX(void); BX_SMF BX_CPP_INLINE Bit16u get_CX(void); BX_SMF BX_CPP_INLINE Bit16u get_DX(void); BX_SMF BX_CPP_INLINE unsigned int get_DF(void); BX_SMF BX_CPP_INLINE unsigned int get_IF(void); BX_SMF BX_CPP_INLINE unsigned int get_VM(void); BX_SMF BX_CPP_INLINE unsigned int get_IOPL(void); BX_SMF BX_CPP_INLINE void set_IF(int _bit); #if BX_CPU_LEVEL >= 2 BX_SMF BX_CPP_INLINE Boolean real_mode(void); #endif #if BX_CPU_LEVEL >= 3 BX_SMF BX_CPP_INLINE Boolean protected_mode(void); BX_SMF BX_CPP_INLINE Boolean v8086_mode(void); #endif #if BX_SUPPORT_APIC bx_local_apic_c local_apic; Boolean int_from_local_apic; #endif }; #if BX_SupportICache BX_CPP_INLINE void bxICache_c::decWriteStamp(BX_CPU_C *cpu, Bit32u a20Addr) { // Increment page write stamp, so iCache entries with older stamps // are effectively invalidated. Bit32u pageIndex = a20Addr >> 12; Bit32u writeStamp = cpu->iCache.pageWriteStampTable[pageIndex]; if ( writeStamp & 0x20000000 ) { // Page possibly contains iCache code. if ( writeStamp & ICacheWriteStampMask ) { // Short case: there is room to decrement the generation counter. cpu->iCache.pageWriteStampTable[pageIndex]--; } else { // Long case: there is no more room to decrement. We have dump // all iCache entries which can possibly hash to this page since // we don't keep track of individual entries. // Take the hash of the 0th page offset. unsigned iCacheHash = cpu->iCache.hash(a20Addr & 0xfffff000); for (unsigned o=0; o<4096; o++) { cpu->iCache.entry[iCacheHash].writeStamp = ICacheWriteStampInvalid; iCacheHash = (iCacheHash + 1) % BxICacheEntries; } // Reset write stamp to highest value to begin the decrementing process // again. cpu->iCache.pageWriteStampTable[pageIndex] = ICacheWriteStampInvalid; } } } BX_CPP_INLINE Bit32u bxICache_c::createFetchModeMask(BX_CPU_C *cpu) { return (cpu->program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b << 31) #if BX_SUPPORT_X86_64 | ((cpu->cpu_mode == BX_MODE_LONG_64)<<30) #endif | (1<<29) // iCache code. ; } #endif #if BX_X86_DEBUGGER #define BX_HWDebugInstruction 0x00 #define BX_HWDebugMemW 0x01 #define BX_HWDebugIO 0x02 #define BX_HWDebugMemRW 0x03 #endif #if BX_SMP_PROCESSORS==1 // single processor simulation, so there's one of everything extern BX_CPU_C bx_cpu; #else // multiprocessor simulation, we need an array of cpus and memories extern BX_CPU_C *bx_cpu_array[BX_SMP_PROCESSORS+1]; #endif #if defined(NEED_CPU_REG_SHORTCUTS) BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_AX(Bit16u ax) { X86_AX = ax; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_BX(Bit16u bx) { X86_BX = bx; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_CX(Bit16u cx) { X86_CX = cx; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_DX(Bit16u dx) { X86_DX = dx; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_AL(Bit8u al) { X86_AL = al; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_AH(Bit8u ah) { X86_AH = ah; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_BL(Bit8u bl) { X86_BL = bl; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_BH(Bit8u bh) { X86_BH = bh; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_CL(Bit8u cl) { X86_CL = cl; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_CH(Bit8u ch) { X86_CH = ch; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_DL(Bit8u dl) { X86_DL = dl; }; BX_SMF BX_CPP_INLINE void BX_CPU_C_PREFIX set_DH(Bit8u dh) { X86_DH = dh; }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_AL(void) { return(X86_AL); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_AH(void) { return(X86_AH); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_BL(void) { return(X86_BL); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_BH(void) { return(X86_BH); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_CL(void) { return(X86_CL); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_CH(void) { return(X86_CH); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_DL(void) { return(X86_DL); }; BX_SMF BX_CPP_INLINE Bit8u BX_CPU_C_PREFIX get_DH(void) { return(X86_DH); }; BX_SMF BX_CPP_INLINE Bit16u BX_CPU_C_PREFIX get_AX(void) { return(X86_AX); }; BX_SMF BX_CPP_INLINE Bit16u BX_CPU_C_PREFIX get_BX(void) { return(X86_BX); }; BX_SMF BX_CPP_INLINE Bit16u BX_CPU_C_PREFIX get_CX(void) { return(X86_CX); }; BX_SMF BX_CPP_INLINE Bit16u BX_CPU_C_PREFIX get_DX(void) { return(X86_DX); }; #endif BX_CPP_INLINE unsigned int BX_CPU_C::get_DF(void) { return(BX_CPU_THIS_PTR eflags.df); }; BX_CPP_INLINE unsigned int BX_CPU_C::get_IF(void) { return(BX_CPU_THIS_PTR eflags.if_); }; BX_CPP_INLINE unsigned int BX_CPU_C::get_VM(void) { return(BX_CPU_THIS_PTR eflags.vm); }; BX_CPP_INLINE unsigned int BX_CPU_C::get_IOPL(void) { return(BX_CPU_THIS_PTR eflags.iopl); }; BX_CPP_INLINE void BX_CPU_C::set_IF(int _bit) { BX_CPU_THIS_PTR eflags.if_ = _bit; }; #if BX_CPU_LEVEL >= 2 BX_CPP_INLINE Boolean BX_CPU_C::real_mode(void) { return( !BX_CPU_THIS_PTR cr0.pe ); }; #endif #if BX_CPU_LEVEL == 2 BX_CPP_INLINE Boolean BX_CPU_C::protected_mode(void) { return( BX_CPU_THIS_PTR cr0.pe ); }; #endif #if BX_CPU_LEVEL >= 3 # if BX_SUPPORT_V8086_MODE BX_CPP_INLINE Boolean BX_CPU_C::v8086_mode(void) { return(BX_CPU_THIS_PTR eflags.vm); } BX_CPP_INLINE Boolean BX_CPU_C::protected_mode(void) { return(BX_CPU_THIS_PTR cr0.pe && !BX_CPU_THIS_PTR eflags.vm); } # else BX_CPP_INLINE Boolean BX_CPU_C::v8086_mode(void) { return(0); } BX_CPP_INLINE Boolean BX_CPU_C::protected_mode(void) { return(BX_CPU_THIS_PTR cr0.pe); } # endif #endif extern const Boolean bx_parity_lookup[256]; extern const char Translate_modrm32_length[1<<( 2 +3 +3)]; extern const char Translate_modrm16_length[1<<( 2 +3 +3)]; extern const unsigned Translate_modrm_to_rrr[0x100]; extern const Bit8u Translate_modrm_to_lea_modrm[0x100]; extern const Bit8u Translate_modrm_to_new_modrm[0x100]; extern const Bit8u Translate_jmp_codebuff[]; extern const Bit32u Translate_jmp_codeoffset[]; extern const Bit32u Translate_jmp_codeparam[]; #if (HOST_CPU_IS_I80386==0) BX_CPP_INLINE void BX_CPU_C::set_CF(Boolean val) { BX_CPU_THIS_PTR lf_flags_status &= 0xfffff0; BX_CPU_THIS_PTR eflags.cf = val; } BX_CPP_INLINE void BX_CPU_C::set_AF(Boolean val) { BX_CPU_THIS_PTR lf_flags_status &= 0xfff0ff; BX_CPU_THIS_PTR eflags.af = val; } BX_CPP_INLINE void BX_CPU_C::set_ZF(Boolean val) { BX_CPU_THIS_PTR lf_flags_status &= 0xff0fff; BX_CPU_THIS_PTR eflags.zf = val; } BX_CPP_INLINE void BX_CPU_C::set_SF(Boolean val) { BX_CPU_THIS_PTR lf_flags_status &= 0xf0ffff; BX_CPU_THIS_PTR eflags.sf = val; } BX_CPP_INLINE void BX_CPU_C::set_OF(Boolean val) { BX_CPU_THIS_PTR lf_flags_status &= 0x0fffff; BX_CPU_THIS_PTR eflags.of = val; } BX_CPP_INLINE void BX_CPU_C::set_PF(Boolean val) { BX_CPU_THIS_PTR lf_flags_status &= 0xffff0f; BX_CPU_THIS_PTR eflags.pf = val; } BX_CPP_INLINE void BX_CPU_C::set_PF_base(Bit8u val) { BX_CPU_THIS_PTR lf_flags_status &= 0xffff0f; BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[val]; // Always returns 0 or 1. } #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) BX_CPP_INLINE void BX_CPU_C::set_CF(Boolean val) { BX_CPU_THIS_PTR eflags.x86.Descr.cf = val; } BX_CPP_INLINE void BX_CPU_C::set_AF(Boolean val) { BX_CPU_THIS_PTR eflags.x86.Descr.af = val; } BX_CPP_INLINE void BX_CPU_C::set_ZF(Boolean val) { BX_CPU_THIS_PTR eflags.x86.Descr.zf = val; } BX_CPP_INLINE void BX_CPU_C::set_SF(Boolean val) { BX_CPU_THIS_PTR eflags.x86.Descr.sf = val; } BX_CPP_INLINE void BX_CPU_C::set_OF(Boolean val) { BX_CPU_THIS_PTR eflags.x86.Descr.of = val; } BX_CPP_INLINE void BX_CPU_C::set_PF(Boolean val) { BX_CPU_THIS_PTR eflags.x86.Descr.pf = val; } BX_CPP_INLINE void BX_CPU_C::set_PF_base(Bit8u val) { BX_CPU_THIS_PTR eflags.x86.Descr.pf = bx_parity_lookup[val]; } #endif //#if (HOST_CPU_IS_I80386==1) #if (HOST_CPU_IS_I80386==0) #define SET_FLAGS_OSZAPC_8(op1, op2, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op2_8 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; } #define SET_FLAGS_OSZAPC_8_CF(op1, op2, result, ins, last_cf) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op2_8 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = ins; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].prev_cf = last_cf; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; } #define SET_FLAGS_OSZAPC_16(op1, op2, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op2_16 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; } #define SET_FLAGS_OSZAPC_16_CF(op1, op2, result, ins, last_cf) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op2_16 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = ins; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].prev_cf = last_cf; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; } #define SET_FLAGS_OSZAPC_32(op1, op2, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op2_32 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; } #define SET_FLAGS_OSZAPC_32_CF(op1, op2, result, ins, last_cf) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].op2_32 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].instr = ins; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAPC].prev_cf = last_cf; BX_CPU_CLASS_PTR lf_flags_status = BX_LF_MASK_OSZAPC; } #define SET_FLAGS_OSZAP_8(op1, op2, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].op2_8 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; } #define SET_FLAGS_OSZAP_16(op1, op2, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].op2_16 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; } #define SET_FLAGS_OSZAP_32(op1, op2, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].op2_32 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZAP].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x00000f) | BX_LF_MASK_OSZAP; } #define SET_FLAGS_OxxxxC(new_of, new_cf) { BX_CPU_CLASS_PTR eflags.of = (Boolean) (new_of); BX_CPU_CLASS_PTR eflags.cf = (Boolean) (new_cf); BX_CPU_CLASS_PTR lf_flags_status &= 0x0ffff0; /* ??? could also mark other bits undefined here */ } //----------------------------------------------------------------------- #define SET_FLAGS_OSZPC_8(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x000f00) | BX_LF_MASK_OSZPC; } #define SET_FLAGS_OSZPC_16(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x000f00) | BX_LF_MASK_OSZPC; } #define SET_FLAGS_OSZPC_32(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x000f00) | BX_LF_MASK_OSZPC; } #define SET3_FLAGS_OSZPC_16(op1, op2, count,result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op2_16 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x000f00) | BX_LF_MASK_OSZPC; } #define SET3_FLAGS_OSZPC_32(op1, op2, count,result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].op2_32 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x000f00) | BX_LF_MASK_OSZPC; } #define SET_FLAGS_XSZPC_8(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xf00f00) | BX_LF_MASK_XSZPC; } #define SET_FLAGS_XSZPC_16(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xf00f00) | BX_LF_MASK_XSZPC; } #define SET_FLAGS_XSZPC_32(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xf00f00) | BX_LF_MASK_XSZPC; } #define SET3_FLAGS_XSZPC_16(op1, op2, count,result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op2_16 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xf00f00) | BX_LF_MASK_XSZPC; } #define SET3_FLAGS_XSZPC_32(op1, op2, count,result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].op2_32 = op2; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XSZPC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xf00f00) | BX_LF_MASK_XSZPC; } #define SET_FLAGS_OC_8(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x0ffff0) | BX_LF_MASK_OC; } #define SET_FLAGS_OC_16(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x0ffff0) | BX_LF_MASK_OC; } #define SET_FLAGS_OC_32(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_OC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0x0ffff0) | BX_LF_MASK_OC; } #define SET_FLAGS_XC_8(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].op1_8 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].result_8 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xfffff0) | BX_LF_MASK_XC; } #define SET_FLAGS_XC_16(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].op1_16 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].result_16 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xfffff0) | BX_LF_MASK_XC; } #define SET_FLAGS_XC_32(op1, count, result, ins) { BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].op1_32 = op1; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].shift_counter = count; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].result_32 = result; BX_CPU_CLASS_PTR lf_entrys[BX_LF_INDEX_XC].instr = ins; BX_CPU_CLASS_PTR lf_flags_status = (BX_CPU_CLASS_PTR lf_flags_status & 0xfffff0) | BX_LF_MASK_XC; } #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) #define SET_FLAGS_OxxxxC(new_of, new_cf) { BX_CPU_CLASS_PTR eflags.x86.Word.seto = (Boolean)(new_of); BX_CPU_CLASS_PTR eflags.x86.Word.lahf &= 0xfe; BX_CPU_CLASS_PTR eflags.x86.Word.lahf |= (Boolean)(new_cf); /* ??? could also mark other bits undefined here */ } #endif //#if (HOST_CPU_IS_I80386==1) extern const Boolean bx_parity_lookup[256]; #define BX_REPE_PREFIX 10 #define BX_REPNE_PREFIX 11 #define BX_TASK_FROM_JUMP 10 #define BX_TASK_FROM_CALL_OR_INT 11 #define BX_TASK_FROM_IRET 12 // // For decoding... // // If the Immediate bit is set, the lowest 3 bits of the attribute // specify which kinds of immediate data a required by instruction. #define BxImmediate 0x000f // bits 3..0: any immediate #define BxImmediate_Ib 0x0001 // 8 bits regardless #define BxImmediate_Ib_SE 0x0002 // sign extend to OS size #define BxImmediate_Iv 0x0003 // 16 or 32 depending on OS size #define BxImmediate_Iw 0x0004 // 16 bits regardless #define BxImmediate_IvIw 0x0005 // call_Ap #define BxImmediate_IwIb 0x0006 // enter_IwIb #define BxImmediate_O 0x0007 // mov_ALOb, mov_ObAL, mov_eAXOv, mov_OveAX #define BxImmediate_BrOff8 0x0008 // Relative branch offset byte #define BxImmediate_BrOff16 0x0009 // Relative branch offset word #define BxImmediate_BrOff32 0x000a // Relative branch offset dword #define BxImmediate_1 0x000b // shift counter 1 #define BxImmediate_CL 0x000c // shift counter cl #define BxPrefix 0x0010 // bit 4 #define BxAnother 0x0020 // bit 5 #define BxRepeatable 0x0040 // bit 6 #define BxRepeatableZF 0x0080 // bit 7 #define BxGroupN 0x0100 // bits 8 #define BxGroup1 BxGroupN #define BxGroup2 BxGroupN #define BxGroup3 BxGroupN #define BxGroup4 BxGroupN #define BxGroup5 BxGroupN #define BxGroup6 BxGroupN #define BxGroup7 BxGroupN #define BxGroup8 BxGroupN #define BxGroup9 BxGroupN #define BxGroupa BxGroupN #define BxBranch 0x000f0000 // // bits 19..16: any branch #define BxBranch_relative 0x00010000 // // bits 19..16: any branch #define BxBranch_absolute 0x00020000 // // bits 19..16: any branch #if BX_DEBUGGER typedef enum _show_flags { Flag_call = 0x1, Flag_ret = 0x2, Flag_int = 0x4, Flag_iret = 0x8, Flag_intsig = 0x10 } show_flags_t; #endif // Can be used as LHS or RHS. #define RMAddr(i) (BX_CPU_CLASS_PTR address_xlation.rm_addr) #endif // #ifndef BX_CPU_H ================================================ FILE: Project/IntelCPU/Source/ctrl.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: ctrl_xfer.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ תָ //--------------------------------------------------------- void BX_CPU_C::CALL16_Ap(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; new_eip = IMMEDIATEIw(i); new_cs = IMMEDIATEIw2(i); BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR call_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR call_push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); BX_CPU_CLASS_PTR call_push_16((Bit16u) BX_CPU_CLASS_PTR program_visible_eip); BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_CALL, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::CALL32_Ap(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; new_eip = IMMEDIATEId(i); new_cs = IMMEDIATEIw2(i); BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR call_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR call_push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); BX_CPU_CLASS_PTR call_push_32((Bit16u) BX_CPU_CLASS_PTR program_visible_eip); BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_CALL, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::JMP16_Ap(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; new_eip = IMMEDIATEIw(i); new_cs = IMMEDIATEIw2(i); BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR jump_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_JMP, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::JMP32_Ap(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; new_eip = IMMEDIATEId(i); new_cs = IMMEDIATEIw2(i); BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR jump_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_JMP, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::CALL16_Ep(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; Bit16u aim_ip; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&aim_ip); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i)+2,&new_cs); new_eip = aim_ip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR call_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR call_push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); BX_CPU_CLASS_PTR call_push_16((Bit16u) BX_CPU_CLASS_PTR program_visible_eip); BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_CALL, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::CALL32_Ep(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; Bit32u aim_eip; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&aim_eip); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i)+4,&new_cs); new_eip = aim_eip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR call_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR call_push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); BX_CPU_CLASS_PTR call_push_32((Bit16u) BX_CPU_CLASS_PTR program_visible_eip); BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_CALL, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::JMP16_Ep(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; Bit16u aim_ip; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&aim_ip); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i)+2,&new_cs); new_eip = aim_ip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR jump_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_JMP, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::JMP32_Ep(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u new_cs; Bit32u aim_eip; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&aim_eip); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i)+4,&new_cs); new_eip = aim_eip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR jump_protected(i,new_cs,new_eip); goto done; } BX_CPU_CLASS_PTR program_visible_eip = (Bit32u) new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_JMP, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::JMP_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; new_eip = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JMP_EGw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::JMP_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u op1; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); new_eip = op1; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JMP_EEw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::JMP_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; new_eip = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JMP_EGd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::JMP_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u op1; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); new_eip = op1; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JMP_EEd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::CALL_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; new_eip = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); BX_CPU_CLASS_PTR call_push_16((Bit16u)BX_CPU_CLASS_PTR program_visible_eip); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("CALL_EGw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::CALL_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u op1; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); new_eip = op1; BX_CPU_CLASS_PTR call_push_16((Bit16u)BX_CPU_CLASS_PTR program_visible_eip); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("CALL_EEw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::CALL_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; new_eip = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); BX_CPU_CLASS_PTR call_push_32(BX_CPU_CLASS_PTR program_visible_eip); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("CALL_EGd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::CALL_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u op1; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); new_eip = op1; BX_CPU_CLASS_PTR call_push_32(BX_CPU_CLASS_PTR program_visible_eip); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("CALL_EEd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::RETnear16(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u aim_ip; BX_CPU_CLASS_PTR pop_16(&aim_ip); new_eip = aim_ip; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("RETnear16_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::RETnear32(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u aim_eip; BX_CPU_CLASS_PTR pop_32(&aim_eip); new_eip = aim_eip; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("RETnear32_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::RETnear16_Iw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u aim_ip; BX_CPU_CLASS_PTR pop_16(&aim_ip); new_eip = aim_ip; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) RW_ESP += IMMEDIATEIw(i); else RW_SP += IMMEDIATEIw(i); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("RETnear16_Iw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::RETnear32_Iw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u aim_eip; BX_CPU_CLASS_PTR pop_32(&aim_eip); new_eip = aim_eip; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) RW_ESP += IMMEDIATEIw(i); else RW_SP += IMMEDIATEIw(i); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("RETnear32_Iw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } void BX_CPU_C::RETfar16(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR return_protected(i,0); goto done; } Bit16u aim_ip,new_cs; BX_CPU_CLASS_PTR pop_16(&aim_ip); BX_CPU_CLASS_PTR pop_16(&new_cs); new_eip = aim_ip; BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_RET, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::RETfar32(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR return_protected(i,0); goto done; } Bit32u aim_eip,new_cs; BX_CPU_CLASS_PTR pop_32(&aim_eip); BX_CPU_CLASS_PTR pop_32(&new_cs); new_eip = aim_eip; BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_RET, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::RETfar16_Iw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR return_protected(i,IMMEDIATEIw(i)); goto done; } Bit16u aim_ip,new_cs; BX_CPU_CLASS_PTR pop_16(&aim_ip); BX_CPU_CLASS_PTR pop_16(&new_cs); new_eip = aim_ip; BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) RW_ESP += IMMEDIATEIw(i); else RW_SP += IMMEDIATEIw(i); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_RET, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::RETfar32_Iw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { BX_CPU_CLASS_PTR return_protected(i,IMMEDIATEIw(i)); goto done; } Bit32u aim_eip,new_cs; BX_CPU_CLASS_PTR pop_32(&aim_eip); BX_CPU_CLASS_PTR pop_32(&new_cs); new_eip = aim_eip; BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) RW_ESP += IMMEDIATEIw(i); else RW_SP += IMMEDIATEIw(i); done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_RET, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::IRET16(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit16u aim_ip, new_cs,flags; #if BX_DEBUGGER BX_CPU_CLASS_PTR show_flag |= Flag_iret; BX_CPU_CLASS_PTR show_eip = BX_CPU_CLASS_PTR program_visible_eip; #endif BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR v8086_mode()) { // IOPL check in stack_return_from_v86() BX_CPU_CLASS_PTR stack_return_from_v86(i); goto done; } #if BX_CPU_LEVEL >= 2 if (BX_CPU_CLASS_PTR cr0.pe) { BX_CPU_CLASS_PTR iret_protected(i); goto done; } #endif BX_CPU_CLASS_PTR pop_16(&aim_ip); BX_CPU_CLASS_PTR pop_16(&new_cs); BX_CPU_CLASS_PTR pop_16(&flags); new_eip = aim_ip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS],new_cs); BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_CPU_CLASS_PTR write_flags(flags, /* change IOPL? */ 1, /* change IF? */ 1); BX_CPU_CLASS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS | BX_INHIBIT_DEBUG; BX_CPU_CLASS_PTR async_event = 1; done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_IRET, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } void BX_CPU_C::IRET32(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u aim_eip,new_cs,eflags; #if BX_DEBUGGER BX_CPU_CLASS_PTR show_flag |= Flag_iret; BX_CPU_CLASS_PTR show_eip = BX_CPU_CLASS_PTR program_visible_eip; #endif BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR v8086_mode()) { // IOPL check in stack_return_from_v86() BX_CPU_CLASS_PTR stack_return_from_v86(i); goto done; } #if BX_CPU_LEVEL >= 2 if (BX_CPU_CLASS_PTR cr0.pe) { BX_CPU_CLASS_PTR iret_protected(i); goto done; } #endif BX_ERROR(("IRET32 called when you're not in vm8086 mode or protected mode.")); BX_ERROR(("IRET32 may not be implemented right, since it doesn't check anything.")); BX_PANIC(("Please report that you have found a test case for BX_CPU_C::IRET32.")); BX_CPU_CLASS_PTR pop_32(&aim_eip); BX_CPU_CLASS_PTR pop_32(&new_cs); BX_CPU_CLASS_PTR pop_32(&eflags); new_eip = aim_eip; BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS], (Bit16u)new_cs); BX_CPU_CLASS_PTR program_visible_eip = new_eip; //FIXME: this should do (eflags & 0x257FD5) | (EFLAGS | 0x1A0000) BX_CPU_CLASS_PTR write_eflags(eflags, /* change IOPL? */ 1, /* change IF? */ 1, 0, 1); BX_CPU_CLASS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS | BX_INHIBIT_DEBUG; BX_CPU_CLASS_PTR async_event = 1; done: BX_INSTR_FAR_BRANCH(BX_INSTR_IS_IRET, BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR program_visible_eip); return ; } ================================================ FILE: Project/IntelCPU/Source/ctrl_pro.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: ctrl_xfer_pro.cc,v 1.10 2001/11/10 23:00:55 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" #if BX_CPU_LEVEL >= 2 void BX_CPU_C::jump_protected(bxInstruction_c *i, Bit16u cs_raw, Bit32u disp32) { bx_descriptor_t descriptor; bx_selector_t selector; Bit32u dword1, dword2; /* destination selector is not null else #GP(0) */ if ((cs_raw & 0xfffc) == 0) { BX_PANIC(("jump_protected: cs == 0")); exception(BX_GP_EXCEPTION, 0, 0); return; } parse_selector(cs_raw, &selector); /* destination selector index is whithin its descriptor table limits else #GP(selector) */ fetch_raw_descriptor(&selector, &dword1, &dword2, BX_GP_EXCEPTION); /* examine AR byte of destination selector for legal values: */ parse_descriptor(dword1, dword2, &descriptor); if ( descriptor.segment ) { if ( descriptor.u.segment.executable==0 ) { BX_ERROR(("jump_protected: S=1: descriptor not executable")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // CASE: JUMP CONFORMING CODE SEGMENT: if ( descriptor.u.segment.c_ed ) { // descripor DPL must be <= CPL else #GP(selector) if (descriptor.dpl > CPL) { BX_ERROR(("jump_protected: dpl > CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } /* segment must be PRESENT else #NP(selector) */ if (descriptor.p == 0) { BX_ERROR(("jump_protected: p == 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); return; } /* instruction pointer must be in code segment limit else #GP(0) */ if (disp32 > descriptor.u.segment.limit_scaled) { BX_PANIC(("jump_protected: IP > limit")); exception(BX_GP_EXCEPTION, 0, 0); return; } /* Load CS:IP from destination pointer */ /* Load CS-cache with new segment descriptor */ /* CPL does not change for conforming code segment */ load_cs(&selector, &descriptor, CPL); BX_CPU_THIS_PTR program_visible_eip = disp32; return; } // CASE: jump nonconforming code segment: else { /* RPL of destination selector must be <= CPL else #GP(selector) */ if (selector.rpl > CPL) { BX_PANIC(("jump_protected: rpl > CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // descriptor DPL must = CPL else #GP(selector) if (descriptor.dpl != CPL) { BX_ERROR(("jump_protected: dpl != CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } /* segment must be PRESENT else #NP(selector) */ if (descriptor.p == 0) { BX_ERROR(("jump_protected: p == 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); return; } /* IP must be in code segment limit else #GP(0) */ if (disp32 > descriptor.u.segment.limit_scaled) { BX_PANIC(("jump_protected: IP > limit")); exception(BX_GP_EXCEPTION, 0, 0); return; } /* load CS:IP from destination pointer */ /* load CS-cache with new segment descriptor */ /* set RPL field of CS register to CPL */ load_cs(&selector, &descriptor, CPL); BX_CPU_THIS_PTR program_visible_eip = disp32; return; } BX_PANIC(("jump_protected: segment=1")); } else { Bit16u raw_tss_selector; bx_selector_t tss_selector, gate_cs_selector; bx_descriptor_t tss_descriptor, gate_cs_descriptor; Bit16u gate_cs_raw; Bit32u temp_eIP; switch ( descriptor.type ) { case 1: // 286 available TSS case 9: // 386 available TSS //if ( descriptor.type==1 ) // BX_INFO(("jump to 286 TSS")); //else // BX_INFO(("jump to 386 TSS")); // TSS DPL must be >= CPL, else #GP(TSS selector) if (descriptor.dpl < CPL) { BX_PANIC(("jump_protected: TSS.dpl < CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // TSS DPL must be >= TSS selector RPL, else #GP(TSS selector) if (descriptor.dpl < selector.rpl) { BX_PANIC(("jump_protected: TSS.dpl < selector.rpl")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // descriptor AR byte must specify available TSS, // else #GP(TSS selector) */ // this is taken care of by the 'default' case of switch statement */ // Task State Seg must be present, else #NP(TSS selector) // checked in task_switch() // SWITCH_TASKS _without_ nesting to TSS task_switch(&selector, &descriptor, BX_TASK_FROM_JUMP, dword1, dword2); // IP must be in code seg limit, else #GP(0) if (X86_EIP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled) { BX_ERROR(("jump_protected: TSS.p == 0")); exception(BX_GP_EXCEPTION, 0, 0); return; } return; break; case 3: // Busy 286 TSS BX_PANIC(("jump_protected: JUMP to busy 286 TSS unsupported.")); return; break; case 4: // 286 call gate BX_ERROR(("jump_protected: JUMP TO 286 CALL GATE:")); // descriptor DPL must be >= CPL else #GP(gate selector) if (descriptor.dpl < CPL) { BX_ERROR(("jump_protected: gate.dpl < CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // descriptor DPL must be >= gate selector RPL else #GP(gate selector) if (descriptor.dpl < selector.rpl) { BX_ERROR(("jump_protected: gate.dpl < selector.rpl")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // gate must be present else #NP(gate selector) if (descriptor.p==0) { BX_PANIC(("jump_protected: task gate.p == 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // examine selector to code segment given in call gate descriptor // selector must not be null, else #GP(0) gate_cs_raw = descriptor.u.gate286.dest_selector; if ( (gate_cs_raw & 0xfffc) == 0 ) { BX_PANIC(("jump_protected: CS selector null")); exception(BX_GP_EXCEPTION, 0x0000, 0); } parse_selector(gate_cs_raw, &gate_cs_selector); // selector must be within its descriptor table limits else #GP(CS selector) fetch_raw_descriptor(&gate_cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &gate_cs_descriptor); // descriptor AR byte must indicate code segment else #GP(CS selector) if ( (gate_cs_descriptor.valid==0) || (gate_cs_descriptor.segment==0) || (gate_cs_descriptor.u.segment.executable==0) ) { BX_ERROR(("jump_protected: AR byte: not code segment.")); exception(BX_GP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } // if non-conforming, code segment descriptor DPL must = CPL else #GP(CS selector) if (gate_cs_descriptor.u.segment.c_ed==0) { if (gate_cs_descriptor.dpl != CPL) { BX_ERROR(("jump_protected: non-conform: code seg des DPL != CPL.")); exception(BX_GP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } } // if conforming, then code segment descriptor DPL must <= CPL else #GP(CS selector) else { if (gate_cs_descriptor.dpl > CPL) { BX_ERROR(("jump_protected: conform: code seg des DPL > CPL.")); exception(BX_GP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } } // code segment must be present else #NP(CS selector) if (gate_cs_descriptor.p==0) { BX_ERROR(("jump_protected: code seg not present.")); exception(BX_NP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } // IP must be in code segment limit else #GP(0) if ( descriptor.u.gate286.dest_offset > gate_cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("jump_protected: IP > limit")); exception(BX_GP_EXCEPTION, 0x0000, 0); } // load CS:IP from call gate // load CS cache with new code segment // set rpl of CS to CPL load_cs(&gate_cs_selector, &gate_cs_descriptor, CPL); X86_EIP = descriptor.u.gate286.dest_offset; return; break; case 5: // task gate //BX_INFO(("jump_pro: task gate")); // gate descriptor DPL must be >= CPL else #GP(gate selector) if (descriptor.dpl < CPL) { BX_PANIC(("jump_protected: gate.dpl < CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // gate descriptor DPL must be >= gate selector RPL // else #GP(gate selector) if (descriptor.dpl < selector.rpl) { BX_PANIC(("jump_protected: gate.dpl < selector.rpl")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // task gate must be present else #NP(gate selector) if (descriptor.p==0) { BX_PANIC(("jump_protected: task gate.p == 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // examine selector to TSS, given in Task Gate descriptor // must specify global in the local/global bit else #GP(TSS selector) raw_tss_selector = descriptor.u.taskgate.tss_selector; parse_selector(raw_tss_selector, &tss_selector); if (tss_selector.ti) { BX_PANIC(("jump_protected: tss_selector.ti=1")); exception(BX_GP_EXCEPTION, raw_tss_selector & 0xfffc, 0); return; } // index must be within GDT limits else #GP(TSS selector) fetch_raw_descriptor(&tss_selector, &dword1, &dword2, BX_GP_EXCEPTION); // descriptor AR byte must specify available TSS // else #GP(TSS selector) parse_descriptor(dword1, dword2, &tss_descriptor); if (tss_descriptor.valid==0 || tss_descriptor.segment) { BX_ERROR(("jump_protected: TSS selector points to bad TSS")); exception(BX_GP_EXCEPTION, raw_tss_selector & 0xfffc, 0); } if (tss_descriptor.type!=9 && tss_descriptor.type!=1) { BX_ERROR(("jump_protected: TSS selector points to bad TSS")); exception(BX_GP_EXCEPTION, raw_tss_selector & 0xfffc, 0); } // task state segment must be present, else #NP(tss selector) if (tss_descriptor.p==0) { BX_PANIC(("jump_protected: task descriptor.p == 0")); exception(BX_NP_EXCEPTION, raw_tss_selector & 0xfffc, 0); } // SWITCH_TASKS _without_ nesting to TSS task_switch(&tss_selector, &tss_descriptor, BX_TASK_FROM_JUMP, dword1, dword2); // eIP must be within code segment limit, else #GP(0) if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b) temp_eIP = X86_EIP; else temp_eIP = X86_IP; if (temp_eIP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled) { BX_PANIC(("jump_protected: eIP > cs.limit")); exception(BX_GP_EXCEPTION, 0x0000, 0); } break; case 11: // Busy 386 TSS BX_PANIC(("jump_protected: JUMP to busy 386 TSS unsupported.")); return; break; case 12: // 386 call gate //BX_ERROR(("jump_protected: JUMP TO 386 CALL GATE:")); // descriptor DPL must be >= CPL else #GP(gate selector) if (descriptor.dpl < CPL) { BX_PANIC(("jump_protected: gate.dpl < CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // descriptor DPL must be >= gate selector RPL else #GP(gate selector) if (descriptor.dpl < selector.rpl) { BX_PANIC(("jump_protected: gate.dpl < selector.rpl")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // gate must be present else #NP(gate selector) if (descriptor.p==0) { BX_PANIC(("jump_protected: task gate.p == 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // examine selector to code segment given in call gate descriptor // selector must not be null, else #GP(0) gate_cs_raw = descriptor.u.gate386.dest_selector; if ( (gate_cs_raw & 0xfffc) == 0 ) { BX_PANIC(("jump_protected: CS selector null")); exception(BX_GP_EXCEPTION, 0x0000, 0); } parse_selector(gate_cs_raw, &gate_cs_selector); // selector must be within its descriptor table limits else #GP(CS selector) fetch_raw_descriptor(&gate_cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &gate_cs_descriptor); // descriptor AR byte must indicate code segment else #GP(CS selector) if ( (gate_cs_descriptor.valid==0) || (gate_cs_descriptor.segment==0) || (gate_cs_descriptor.u.segment.executable==0) ) { BX_PANIC(("jump_protected: AR byte: not code segment.")); exception(BX_GP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } // if non-conforming, code segment descriptor DPL must = CPL else #GP(CS selector) if (gate_cs_descriptor.u.segment.c_ed==0) { if (gate_cs_descriptor.dpl != CPL) { BX_PANIC(("jump_protected: non-conform: code seg des DPL != CPL.")); exception(BX_GP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } } // if conforming, then code segment descriptor DPL must <= CPL else #GP(CS selector) else { if (gate_cs_descriptor.dpl > CPL) { BX_PANIC(("jump_protected: conform: code seg des DPL > CPL.")); exception(BX_GP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } } // code segment must be present else #NP(CS selector) if (gate_cs_descriptor.p==0) { BX_PANIC(("jump_protected: code seg not present.")); exception(BX_NP_EXCEPTION, gate_cs_raw & 0xfffc, 0); } // IP must be in code segment limit else #GP(0) if ( descriptor.u.gate386.dest_offset > gate_cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("jump_protected: IP > limit")); exception(BX_GP_EXCEPTION, 0x0000, 0); } // load CS:IP from call gate // load CS cache with new code segment // set rpl of CS to CPL load_cs(&gate_cs_selector, &gate_cs_descriptor, CPL); X86_EIP = descriptor.u.gate386.dest_offset; return; break; default: BX_ERROR(("jump_protected: gate type %u unsupported", (unsigned) descriptor.type)); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; break; } } return; } #endif /* if BX_CPU_LEVEL >= 2 */ #if BX_CPU_LEVEL >= 2 void BX_CPU_C::call_protected(bxInstruction_c *i, Bit16u cs_raw, Bit32u disp32) { bx_selector_t cs_selector; Bit32u dword1, dword2; bx_descriptor_t cs_descriptor; /* Opsize in effect for CALL is specified by the D bit for the * segment containing dest & by any opsize prefix. * For gate descriptor, deterermined by type of call gate: * 4=16bit, 12=32bit * count field: 16bit specifies #words, 32bit specifies #dwords */ /* new cs selector must not be null, else #GP(0) */ if ( (cs_raw & 0xfffc) == 0 ) { BX_PANIC(("call_protected: CS selector null")); exception(BX_GP_EXCEPTION, 0, 0); } parse_selector(cs_raw, &cs_selector); // check new CS selector index within its descriptor limits, // else #GP(new CS selector) fetch_raw_descriptor(&cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &cs_descriptor); // examine AR byte of selected descriptor for various legal values if (cs_descriptor.valid==0) { BX_PANIC(("call_protected: invalid CS descriptor")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); } if (cs_descriptor.segment) { // normal segment Bit32u temp_ESP; if (cs_descriptor.u.segment.executable==0) { BX_PANIC(("call_protected: non executable segment")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } if (cs_descriptor.u.segment.c_ed) { // conforming code segment // DPL must be <= CPL, else #GP(code seg selector) if (cs_descriptor.dpl > CPL) { BX_PANIC(("call_protected: cs.dpl > CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); return; } } else { // non-conforming code segment // RPL must be <= CPL, else #GP(code seg selector) // DPL must be = CPL, else #GP(code seg selector) if ( (cs_selector.rpl > CPL) || (cs_descriptor.dpl != CPL) ) { BX_PANIC(("call_protected: cs.rpl > CPL")); exception(BX_GP_EXCEPTION, cs_raw & 0xfffc, 0); } } // segment must be present, else #NP(code seg selector) if (cs_descriptor.p == 0) { BX_ERROR(("call_protected: cs.p = 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); } if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; // stack must be big enough for return addr, else #SS(0) if (i->size_mode.os_32) { if ( !can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 8) ) { BX_PANIC(("call_protected: stack doesn't have room for ret addr")); exception(BX_SS_EXCEPTION, 0, 0); } // IP must be in code seg limit, else #GP(0) if (disp32 > cs_descriptor.u.segment.limit_scaled) { BX_PANIC(("call_protected: IP not in code seg limit")); exception(BX_GP_EXCEPTION, 0, 0); } // push return address onto stack (CS padded to 32bits) call_push_32((Bit32u) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); call_push_32(X86_EIP); } else { // 16bit opsize if ( !can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 4) ) { BX_PANIC(("call_protected: stack doesn't have room for ret addr")); exception(BX_SS_EXCEPTION, 0, 0); } // IP must be in code seg limit, else #GP(0) if (disp32 > cs_descriptor.u.segment.limit_scaled) { BX_PANIC(("call_protected: IP not in code seg limit")); exception(BX_GP_EXCEPTION, 0, 0); } call_push_16(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); call_push_16(X86_IP); } // load code segment descriptor into CS cache // load CS with new code segment selector // set RPL of CS to CPL // load eIP with new offset load_cs(&cs_selector, &cs_descriptor, CPL); BX_CPU_THIS_PTR program_visible_eip = disp32; if (cs_descriptor.u.segment.d_b==0) BX_CPU_THIS_PTR program_visible_eip &= 0x0000ffff; return; } else { // gate & special segment bx_descriptor_t gate_descriptor; bx_selector_t gate_selector; Bit32u new_EIP; Bit16u dest_selector; Bit16u raw_tss_selector; bx_selector_t tss_selector; bx_descriptor_t tss_descriptor; Bit32u temp_eIP; /* 1 level of indirection via gate, switch gate & cs */ gate_descriptor = cs_descriptor; gate_selector = cs_selector; switch (gate_descriptor.type) { case 1: // available 16bit TSS case 9: // available 32bit TSS //if (gate_descriptor.type==1) // BX_INFO(("call_protected: 16bit available TSS")); //else // BX_INFO(("call_protected: 32bit available TSS")); // TSS DPL must be >= CPL, else #TS(TSS selector) if (gate_descriptor.dpl < CPL) { BX_PANIC(("call_protected: TSS.dpl < CPL")); exception(BX_TS_EXCEPTION, cs_raw & 0xfffc, 0); return; } // TSS DPL must be >= TSS selector RPL, else #TS(TSS selector) if (gate_descriptor.dpl < gate_selector.rpl) { BX_PANIC(("call_protected: TSS.dpl < selector.rpl")); exception(BX_TS_EXCEPTION, cs_raw & 0xfffc, 0); return; } // descriptor AR byte must specify available TSS, // else #TS(TSS selector) */ // this is taken care of by the 'default' case of switch statement */ // Task State Seg must be present, else #NP(TSS selector) // checked in task_switch() // SWITCH_TASKS _without_ nesting to TSS task_switch(&gate_selector, &gate_descriptor, BX_TASK_FROM_CALL_OR_INT, dword1, dword2); // IP must be in code seg limit, else #TS(0) if (X86_EIP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled) { BX_INFO(("call_protected: TSS.p == 0")); exception(BX_TS_EXCEPTION, 0, 0); return; } return; break; case 5: // TASK GATE //BX_INFO(("call_protected: task gate")); // gate descriptor DPL must be >= CPL else #TS(gate selector) if (gate_descriptor.dpl < CPL) { BX_PANIC(("call_protected: gate.dpl < CPL")); exception(BX_TS_EXCEPTION, cs_raw & 0xfffc, 0); return; } // gate descriptor DPL must be >= gate selector RPL // else #TS(gate selector) if (gate_descriptor.dpl < gate_selector.rpl) { BX_PANIC(("call_protected: gate.dpl < selector.rpl")); exception(BX_TS_EXCEPTION, cs_raw & 0xfffc, 0); return; } // task gate must be present else #NP(gate selector) if (gate_descriptor.p==0) { BX_PANIC(("call_protected: task gate.p == 0")); exception(BX_NP_EXCEPTION, cs_raw & 0xfffc, 0); return; } // examine selector to TSS, given in Task Gate descriptor // must specify global in the local/global bit else #TS(TSS selector) raw_tss_selector = gate_descriptor.u.taskgate.tss_selector; parse_selector(raw_tss_selector, &tss_selector); if (tss_selector.ti) { BX_PANIC(("call_protected: tss_selector.ti=1")); exception(BX_TS_EXCEPTION, raw_tss_selector & 0xfffc, 0); return; } // index must be within GDT limits else #TS(TSS selector) fetch_raw_descriptor(&tss_selector, &dword1, &dword2, BX_TS_EXCEPTION); // descriptor AR byte must specify available TSS // else #TS(TSS selector) parse_descriptor(dword1, dword2, &tss_descriptor); if (tss_descriptor.valid==0 || tss_descriptor.segment) { BX_PANIC(("call_protected: TSS selector points to bad TSS")); exception(BX_TS_EXCEPTION, raw_tss_selector & 0xfffc, 0); } if (tss_descriptor.type!=9 && tss_descriptor.type!=1) { BX_PANIC(("call_protected: TSS selector points to bad TSS")); exception(BX_TS_EXCEPTION, raw_tss_selector & 0xfffc, 0); } // task state segment must be present, else #NP(tss selector) if (tss_descriptor.p==0) { BX_PANIC(("call_protected: task descriptor.p == 0")); exception(BX_NP_EXCEPTION, raw_tss_selector & 0xfffc, 0); } // SWITCH_TASKS without nesting to TSS task_switch(&tss_selector, &tss_descriptor, BX_TASK_FROM_CALL_OR_INT, dword1, dword2); // eIP must be within code segment limit, else #TS(0) if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b) temp_eIP = X86_EIP; else temp_eIP = X86_IP; if (temp_eIP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled) { BX_PANIC(("call_protected: eIP > cs.limit")); exception(BX_TS_EXCEPTION, 0x0000, 0); } return; break; case 4: // 16bit CALL GATE case 12: // 32bit CALL GATE //if (gate_descriptor.type==4) // BX_INFO(("CALL: 16bit call gate")); //else // BX_INFO(("CALL: 32bit call gate")); // call gate DPL must be >= CPL, else #GP(call gate selector) // call gate DPL must be >= RPL, else #GP(call gate selector) if ( (gate_descriptor.dpl < CPL) || (gate_descriptor.dpl < gate_selector.rpl) ) { BX_PANIC(("call_protected: DPL < CPL or RPL")); exception(BX_GP_EXCEPTION, gate_selector.value & 0xfffc, 0); } // call gate must be present, else #NP(call gate selector) if (gate_descriptor.p==0) { BX_PANIC(("call_protected: not present")); exception(BX_NP_EXCEPTION, gate_selector.value & 0xfffc, 0); } // examine code segment selector in call gate descriptor if (gate_descriptor.type==4) { dest_selector = gate_descriptor.u.gate286.dest_selector; new_EIP = gate_descriptor.u.gate286.dest_offset; } else { dest_selector = gate_descriptor.u.gate386.dest_selector; new_EIP = gate_descriptor.u.gate386.dest_offset; } // selector must not be null else #GP(0) if ( (dest_selector & 0xfffc) == 0 ) { BX_PANIC(("call_protected: selector in gate null")); exception(BX_GP_EXCEPTION, 0, 0); } parse_selector(dest_selector, &cs_selector); // selector must be within its descriptor table limits, // else #GP(code segment selector) fetch_raw_descriptor(&cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &cs_descriptor); // AR byte of selected descriptor must indicate code segment, // else #GP(code segment selector) // DPL of selected descriptor must be <= CPL, // else #GP(code segment selector) if (cs_descriptor.valid==0 || cs_descriptor.segment==0 || cs_descriptor.u.segment.executable==0 || cs_descriptor.dpl > CPL) { BX_PANIC(("call_protected: selected desciptor not code")); exception(BX_GP_EXCEPTION, cs_selector.value & 0xfffc, 0); } // CALL GATE TO MORE PRIVILEGE // if non-conforming code segment and DPL < CPL then // ??? use gate_descriptor.dpl or cs_descriptor.dpl ??? if ( (cs_descriptor.u.segment.c_ed==0) && (cs_descriptor.dpl < CPL) ) { Bit16u SS_for_cpl_x; Bit32u ESP_for_cpl_x; bx_selector_t ss_selector; bx_descriptor_t ss_descriptor; unsigned room_needed; Bit8u param_count; Bit16u return_SS, return_CS; Bit32u return_ESP, return_EIP; Bit32u return_ss_base; unsigned i; Bit16u parameter_word[32]; Bit32u parameter_dword[32]; Bit32u temp_ESP; //BX_INFO(("CALL: Call Gate: to more priviliged level")); // get new SS selector for new privilege level from TSS get_SS_ESP_from_TSS(cs_descriptor.dpl, &SS_for_cpl_x, &ESP_for_cpl_x); /* ??? use dpl or rpl ??? */ // check selector & descriptor for new SS: // selector must not be null, else #TS(0) if ( (SS_for_cpl_x & 0xfffc) == 0 ) { BX_PANIC(("call_protected: new SS null")); exception(BX_TS_EXCEPTION, 0, 0); return; } // selector index must be within its descriptor table limits, // else #TS(SS selector) parse_selector(SS_for_cpl_x, &ss_selector); fetch_raw_descriptor(&ss_selector, &dword1, &dword2, BX_TS_EXCEPTION); parse_descriptor(dword1, dword2, &ss_descriptor); // selector's RPL must equal DPL of code segment, // else #TS(SS selector) if (ss_selector.rpl != cs_descriptor.dpl) { BX_PANIC(("call_protected: SS selector.rpl != CS descr.dpl")); exception(BX_TS_EXCEPTION, SS_for_cpl_x & 0xfffc, 0); return; } // stack segment DPL must equal DPL of code segment, // else #TS(SS selector) if (ss_descriptor.dpl != cs_descriptor.dpl) { BX_PANIC(("call_protected: SS descr.rpl != CS descr.dpl")); exception(BX_TS_EXCEPTION, SS_for_cpl_x & 0xfffc, 0); return; } // descriptor must indicate writable data segment, // else #TS(SS selector) if (ss_descriptor.valid==0 || ss_descriptor.segment==0 || ss_descriptor.u.segment.executable || ss_descriptor.u.segment.r_w==0) { BX_INFO(("call_protected: ss descriptor not writable data seg")); exception(BX_TS_EXCEPTION, SS_for_cpl_x & 0xfffc, 0); return; } // segment must be present, else #SS(SS selector) if (ss_descriptor.p==0) { BX_PANIC(("call_protected: ss descriptor not present.")); exception(BX_SS_EXCEPTION, SS_for_cpl_x & 0xfffc, 0); return; } if ( cs_descriptor.u.segment.d_b ) // new stack must have room for parameters plus 16 bytes room_needed = 16; else // new stack must have room for parameters plus 8 bytes room_needed = 8; if (gate_descriptor.type==4) { // get word count from call gate, mask to 5 bits param_count = gate_descriptor.u.gate286.word_count & 0x1f; room_needed += param_count*2; } else { // get word count from call gate, mask to 5 bits param_count = gate_descriptor.u.gate386.dword_count & 0x1f; room_needed += param_count*4; } // new stack must have room for parameters plus return info // else #SS(SS selector) if ( !can_push(&ss_descriptor, ESP_for_cpl_x, room_needed) ) { BX_INFO(("call_protected: stack doesn't have room")); exception(BX_SS_EXCEPTION, SS_for_cpl_x & 0xfffc, 0); return; } // new eIP must be in code segment limit else #GP(0) if ( new_EIP > cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("call_protected: IP not within CS limits")); exception(BX_GP_EXCEPTION, 0, 0); return; } // save return SS:eSP to be pushed on new stack return_SS = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) return_ESP = X86_ESP; else return_ESP = X86_SP; return_ss_base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base; // save return CS:eIP to be pushed on new stack return_CS = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; if ( cs_descriptor.u.segment.d_b ) return_EIP = X86_EIP; else return_EIP = X86_IP; if (gate_descriptor.type==4) { for (i=0; i0; i--) { call_push_16(parameter_word[i-1]); //BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + i*2, // 2, 0, BX_WRITE, ¶meter_word[i]); } } else { for (i=param_count; i>0; i--) { call_push_32(parameter_dword[i-1]); //BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + i*4, // 4, 0, BX_WRITE, ¶meter_dword[i]); } } // push return address onto new stack if (gate_descriptor.type==4) { call_push_16(return_CS); call_push_16((Bit16u) return_EIP); } else { call_push_32(return_CS); call_push_32(return_EIP); } return; } // CALL GATE TO SAME PRIVILEGE else { Bit32u temp_ESP; //BX_INFO(("CALL: Call Gate: to same priviliged level")); if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; if (gate_descriptor.type==12) { //if (i->size_mode.os_32) {} // stack must room for 8-byte return address (2 are padding) // else #SS(0) if ( !can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 8) ) { BX_PANIC(("call_protected: stack doesn't have room for 8 bytes")); exception(BX_SS_EXCEPTION, 0, 0); } } else { // stack must room for 4-byte return address // else #SS(0) if ( !can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 4) ) { BX_PANIC(("call_protected: stack doesn't have room for 4 bytes")); exception(BX_SS_EXCEPTION, 0, 0); } } // EIP must be within code segment limit, else #GP(0) if ( new_EIP > cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("call_protected: IP not within code segment limits")); exception(BX_GP_EXCEPTION, 0, 0); } if (gate_descriptor.type==12) { // push return address onto stack call_push_32(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); call_push_32(X86_EIP); } else { // push return address onto stack call_push_16(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); call_push_16(X86_IP); } // load CS:EIP from gate // load code segment descriptor into CS register // set RPL of CS to CPL load_cs(&cs_selector, &cs_descriptor, CPL); X86_EIP = new_EIP; return; } BX_PANIC(("call_protected: call gate: should not get here")); return; default: BX_PANIC(("call_protected: type = %d", (unsigned) cs_descriptor.type)); return; } BX_PANIC(("call_protected: gate segment unfinished")); } BX_PANIC(("call_protected: shouldn't get here!")); return; } #endif /* 286+ */ #if BX_CPU_LEVEL >= 2 void BX_CPU_C::return_protected(bxInstruction_c *i, Bit16u pop_bytes) { Bit16u raw_cs_selector, raw_ss_selector; bx_selector_t cs_selector, ss_selector; bx_descriptor_t cs_descriptor, ss_descriptor; Bit32u stack_cs_offset, stack_param_offset; Bit32u return_EIP, return_ESP, temp_ESP; Bit32u dword1, dword2; Bit16u return_IP; /* + 6+N*2: SS | +12+N*4: SS */ /* + 4+N*2: SP | + 8+N*4: ESP */ /* parm N | + parm N */ /* parm 3 | + parm 3 */ /* parm 2 | + parm 2 */ /* parm 1 | + 8: parm 1 */ /* + 2: CS | + 4: CS */ /* + 0: IP | + 0: EIP */ #if BX_CPU_LEVEL >= 3 if ( i->size_mode.os_32 ) { /* operand size=32: third word on stack must be within stack limits, * else #SS(0); */ if (!can_pop(6)) { BX_PANIC(("return_protected: 3rd word not in stack limits")); /* #SS(0) */ return; } stack_cs_offset = 4; stack_param_offset = 8; } else #endif { /* operand size=16: second word on stack must be within stack limits, * else #SS(0); */ if ( !can_pop(4) ) { BX_PANIC(("return_protected: 2nd word not in stack limits")); /* #SS(0) */ return; } stack_cs_offset = 2; stack_param_offset = 4; } if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; // return selector RPL must be >= CPL, else #GP(return selector) BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + stack_cs_offset, 2, CPL==3, BX_READ, &raw_cs_selector); parse_selector(raw_cs_selector, &cs_selector); if ( cs_selector.rpl < CPL ) { BX_ERROR(("return_protected: CS.rpl < CPL")); BX_ERROR((" CS.rpl=%u CPL=%u", (unsigned) cs_selector.rpl, (unsigned) CPL)); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } // if return selector RPL == CPL then // RETURN TO SAME LEVEL if ( cs_selector.rpl == CPL ) { //BX_INFO(("return: to same level %04x:%08x", // BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, // BX_CPU_THIS_PTR prev_eip)); // return selector must be non-null, else #GP(0) if ( (raw_cs_selector & 0xfffc) == 0 ) { BX_PANIC(("return_protected: CS null")); /* #GP(0) */ return; } // selector index must be within its descriptor table limits, // else #GP(selector) fetch_raw_descriptor(&cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); // descriptor AR byte must indicate code segment, else #GP(selector) parse_descriptor(dword1, dword2, &cs_descriptor); if (cs_descriptor.valid==0 || cs_descriptor.segment==0 || cs_descriptor.u.segment.executable==0) { BX_INFO(("return_protected: same: AR byte not code")); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); } // if non-conforming then code segment DPL must = CPL, // else #GP(selector) if ((cs_descriptor.u.segment.c_ed==0) && (cs_descriptor.dpl!=CPL)) { BX_PANIC(("return_protected: non-conforming, DPL!=CPL")); /* #GP(selector) */ return; } // if conforming then code segment DPL must be <= CPL, // else #GP(selector) if (cs_descriptor.u.segment.c_ed && (cs_descriptor.dpl>CPL)) { BX_INFO(("return_protected: conforming, DPL>CPL")); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); } // code segment must be present, else #NP(selector) if (cs_descriptor.p==0) { BX_ERROR(("return_protected: not present")); exception(BX_NP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } // top word on stack must be within stack limits, else #SS(0) if ( !can_pop(stack_param_offset + pop_bytes) ) { BX_PANIC(("return_protected: top word not in stack limits")); /* #SS(0) */ return; } // eIP must be in code segment limit, else #GP(0) #if BX_CPU_LEVEL >= 3 if (i->size_mode.os_32) { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 4, CPL==3, BX_READ, &return_EIP); } else #endif { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 2, CPL==3, BX_READ, &return_IP); return_EIP = return_IP; } if ( return_EIP > cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("return_protected: return IP > CS.limit")); /* #GP(0) */ return; } // load CS:eIP from stack // load CS register with descriptor // increment eSP load_cs(&cs_selector, &cs_descriptor, CPL); BX_CPU_THIS_PTR program_visible_eip = return_EIP; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) X86_ESP += stack_param_offset + pop_bytes; else X86_SP += stack_param_offset + pop_bytes; return; } /* RETURN TO OUTER PRIVILEGE LEVEL */ else { /* + 6+N*2: SS | +12+N*4: SS */ /* + 4+N*2: SP | + 8+N*4: ESP */ /* parm N | + parm N */ /* parm 3 | + parm 3 */ /* parm 2 | + parm 2 */ /* parm 1 | + 8: parm 1 */ /* + 2: CS | + 4: CS */ /* + 0: IP | + 0: EIP */ //BX_INFO(("return: to outer level %04x:%08x", // BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, // BX_CPU_THIS_PTR prev_eip)); if (i->size_mode.os_32) { /* top 16+immediate bytes on stack must be within stack limits, else #SS(0) */ if ( !can_pop(16 + pop_bytes) ) { BX_PANIC(("return_protected: 8 bytes not within stack limits")); /* #SS(0) */ return; } } else { /* top 8+immediate bytes on stack must be within stack limits, else #SS(0) */ if ( !can_pop(8 + pop_bytes) ) { BX_PANIC(("return_protected: 8 bytes not within stack limits")); /* #SS(0) */ return; } } /* examine return CS selector and associated descriptor */ /* selector must be non-null else #GP(0) */ if ( (raw_cs_selector & 0xfffc) == 0 ) { BX_PANIC(("return_protected: CS selector null")); /* #GP(0) */ return; } /* selector index must be within its descriptor table limits, * else #GP(selector) */ fetch_raw_descriptor(&cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &cs_descriptor); /* descriptor AR byte must indicate code segment else #GP(selector) */ if (cs_descriptor.valid==0 || cs_descriptor.segment==0 || cs_descriptor.u.segment.executable==0) { BX_PANIC(("return_protected: AR byte not code")); /* #GP(selector) */ return; } /* if non-conforming code then code seg DPL must equal return selector RPL * else #GP(selector) */ if (cs_descriptor.u.segment.c_ed==0 && cs_descriptor.dpl!=cs_selector.rpl) { BX_PANIC(("return_protected: non-conforming seg DPL != selector.rpl")); /* #GP(selector) */ return; } /* if conforming then code segment DPL must be <= return selector RPL * else #GP(selector) */ if (cs_descriptor.u.segment.c_ed && cs_descriptor.dpl>cs_selector.rpl) { BX_PANIC(("return_protected: conforming seg DPL > selector.rpl")); /* #GP(selector) */ return; } /* segment must be present else #NP(selector) */ if (cs_descriptor.p==0) { BX_PANIC(("return_protected: segment not present")); /* #NP(selector) */ return; } /* examine return SS selector and associated descriptor: */ if (i->size_mode.os_32) { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 12 + pop_bytes, 2, 0, BX_READ, &raw_ss_selector); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 8 + pop_bytes, 4, 0, BX_READ, &return_ESP); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 4, 0, BX_READ, &return_EIP); } else { Bit16u return_SP; BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 6 + pop_bytes, 2, 0, BX_READ, &raw_ss_selector); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 4 + pop_bytes, 2, 0, BX_READ, &return_SP); return_ESP = return_SP; BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 2, 0, BX_READ, &return_IP); return_EIP = return_IP; } /* selector must be non-null else #GP(0) */ if ( (raw_ss_selector & 0xfffc) == 0 ) { BX_PANIC(("return_protected: SS selector null")); /* #GP(0) */ return; } /* selector index must be within its descriptor table limits, * else #GP(selector) */ parse_selector(raw_ss_selector, &ss_selector); fetch_raw_descriptor(&ss_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &ss_descriptor); /* selector RPL must = RPL of the return CS selector, * else #GP(selector) */ if (ss_selector.rpl != cs_selector.rpl) { BX_INFO(("return_protected: ss.rpl != cs.rpl")); exception(BX_GP_EXCEPTION, raw_ss_selector & 0xfffc, 0); return; } /* descriptor AR byte must indicate a writable data segment, * else #GP(selector) */ if (ss_descriptor.valid==0 || ss_descriptor.segment==0 || ss_descriptor.u.segment.executable || ss_descriptor.u.segment.r_w==0) { BX_PANIC(("return_protected: SS.AR byte not writable data")); /* #GP(selector) */ return; } /* descriptor dpl must = RPL of the return CS selector, * else #GP(selector) */ if (ss_descriptor.dpl != cs_selector.rpl) { BX_PANIC(("return_protected: SS.dpl != cs.rpl")); /* #GP(selector) */ return; } /* segment must be present else #SS(selector) */ if (ss_descriptor.p==0) { BX_PANIC(("ss.p == 0")); /* #NP(selector) */ return; } /* eIP must be in code segment limit, else #GP(0) */ if (return_EIP > cs_descriptor.u.segment.limit_scaled) { BX_PANIC(("return_protected: eIP > cs.limit")); /* #GP(0) */ return; } /* set CPL to RPL of return CS selector */ /* load CS:IP from stack */ /* set CS RPL to CPL */ /* load the CS-cache with return CS descriptor */ load_cs(&cs_selector, &cs_descriptor, cs_selector.rpl); BX_CPU_THIS_PTR program_visible_eip = return_EIP; /* load SS:SP from stack */ /* load SS-cache with return SS descriptor */ load_ss(&ss_selector, &ss_descriptor, cs_selector.rpl); if (ss_descriptor.u.segment.d_b) X86_ESP = return_ESP + pop_bytes; else X86_SP = (Bit16u) return_ESP + pop_bytes; /* check ES, DS, FS, GS for validity */ validate_seg_regs(); return; } return; } #endif #if BX_CPU_LEVEL >= 2 void BX_CPU_C::iret_protected(bxInstruction_c *i) { Bit16u raw_cs_selector, raw_ss_selector; bx_selector_t cs_selector, ss_selector; Bit32u dword1, dword2; bx_descriptor_t cs_descriptor, ss_descriptor; if (BX_CPU_THIS_PTR eflags.nt) { /* NT = 1: RETURN FROM NESTED TASK */ /* what's the deal with NT & VM ? */ Bit32u base32; Bit16u raw_link_selector; bx_selector_t link_selector; bx_descriptor_t tss_descriptor; if (BX_CPU_THIS_PTR eflags.vm) BX_PANIC(("IRET: vm set?")); // TASK_RETURN: //BX_INFO(("IRET: nested task return")); if (BX_CPU_THIS_PTR tr.cache.valid==0) BX_PANIC(("IRET: TR not valid")); if (BX_CPU_THIS_PTR tr.cache.type == 1) base32 = BX_CPU_THIS_PTR tr.cache.u.tss286.base; else if (BX_CPU_THIS_PTR tr.cache.type == 9) base32 = BX_CPU_THIS_PTR tr.cache.u.tss386.base; else { BX_PANIC(("IRET: TR not valid")); base32 = 0; // keep compiler happy } // examine back link selector in TSS addressed by current TR: BX_CPU_THIS_PTR access_linear(base32 + 0, 2, 0, BX_READ, &raw_link_selector); // must specify global, else #TS(new TSS selector) parse_selector(raw_link_selector, &link_selector); if (link_selector.ti) { BX_PANIC(("iret: link selector.ti=1")); exception(BX_TS_EXCEPTION, raw_link_selector & 0xfffc, 0); } // index must be within GDT limits, else #TS(new TSS selector) fetch_raw_descriptor(&link_selector, &dword1, &dword2, BX_TS_EXCEPTION); // AR byte must specify TSS, else #TS(new TSS selector) // new TSS must be busy, else #TS(new TSS selector) parse_descriptor(dword1, dword2, &tss_descriptor); if (tss_descriptor.valid==0 || tss_descriptor.segment) { BX_INFO(("iret: TSS selector points to bad TSS")); exception(BX_TS_EXCEPTION, raw_link_selector & 0xfffc, 0); } if ((tss_descriptor.type!=11) && (tss_descriptor.type!=3)) { BX_INFO(("iret: TSS selector points to bad TSS")); exception(BX_TS_EXCEPTION, raw_link_selector & 0xfffc, 0); } // TSS must be present, else #NP(new TSS selector) if (tss_descriptor.p==0) { BX_INFO(("iret: task descriptor.p == 0")); exception(BX_NP_EXCEPTION, raw_link_selector & 0xfffc, 0); } // switch tasks (without nesting) to TSS specified by back link selector task_switch(&link_selector, &tss_descriptor, BX_TASK_FROM_IRET, dword1, dword2); // mark the task just abandoned as not busy // eIP must be within code seg limit, else #GP(0) if (X86_EIP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled) { BX_PANIC(("iret: eIP > cs.limit")); exception(BX_GP_EXCEPTION, 0x0000, 0); } return; } else { /* NT = 0: INTERRUPT RETURN ON STACK -or STACK_RETURN_TO_V86 */ Bit16u top_nbytes_same, top_nbytes_outer; Bit32u cs_offset, ss_offset; Bit32u new_eip, new_esp, temp_ESP, new_eflags; Bit16u new_ip, new_sp, new_flags; Bit8u prev_cpl; /* 16bit opsize | 32bit opsize * ============================== * SS eSP+8 | SS eSP+16 * SP eSP+6 | ESP eSP+12 * ------------------------------- * FLAGS eSP+4 | EFLAGS eSP+8 * CS eSP+2 | CS eSP+4 * IP eSP+0 | EIP eSP+0 */ if (i->size_mode.os_32) { top_nbytes_same = 12; top_nbytes_outer = 20; cs_offset = 4; ss_offset = 16; } else { top_nbytes_same = 6; top_nbytes_outer = 10; cs_offset = 2; ss_offset = 8; } /* CS on stack must be within stack limits, else #SS(0) */ if ( !can_pop(top_nbytes_same) ) { BX_PANIC(("iret: CS not within stack limits")); exception(BX_SS_EXCEPTION, 0, 0); return; } if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + cs_offset, 2, CPL==3, BX_READ, &raw_cs_selector); if (i->size_mode.os_32) { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 4, CPL==3, BX_READ, &new_eip); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 8, 4, CPL==3, BX_READ, &new_eflags); // if VM=1 in flags image on stack then STACK_RETURN_TO_V86 if (new_eflags & 0x00020000) { if (CPL != 0) BX_PANIC(("iret: VM set on stack, CPL!=0")); BX_CPU_THIS_PTR stack_return_to_v86(new_eip, raw_cs_selector, new_eflags); return; } } else { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 2, CPL==3, BX_READ, &new_ip); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 4, 2, CPL==3, BX_READ, &new_flags); } parse_selector(raw_cs_selector, &cs_selector); // return CS selector must be non-null, else #GP(0) if ( (raw_cs_selector & 0xfffc) == 0 ) { BX_PANIC(("iret: return CS selector null")); exception(BX_GP_EXCEPTION, 0, 0); return; } // selector index must be within descriptor table limits, // else #GP(return selector) fetch_raw_descriptor(&cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &cs_descriptor); // AR byte must indicate code segment else #GP(return selector) if ( cs_descriptor.valid==0 || cs_descriptor.segment==0 || cs_descriptor.u.segment.executable==0 ) { BX_PANIC(("iret: AR byte indicated non code segment")); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } // return CS selector RPL must be >= CPL, else #GP(return selector) if (cs_selector.rpl < CPL) { BX_PANIC(("iret: return selector RPL < CPL")); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } // if return code seg descriptor is conforming // and return code seg DPL > return code seg selector RPL // then #GP(return selector) if ( cs_descriptor.u.segment.c_ed && cs_descriptor.dpl > cs_selector.rpl ) { BX_PANIC(("iret: conforming, DPL > cs_selector.RPL")); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } // if return code seg descriptor is non-conforming // and return code seg DPL != return code seg selector RPL // then #GP(return selector) if ( cs_descriptor.u.segment.c_ed==0 && cs_descriptor.dpl != cs_selector.rpl ) { BX_INFO(("(mch) iret: Return with DPL != RPL. #GP(selector)")); exception(BX_GP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } // segment must be present else #NP(return selector) if ( cs_descriptor.p==0 ) { BX_PANIC(("iret: not present")); exception(BX_NP_EXCEPTION, raw_cs_selector & 0xfffc, 0); return; } if (cs_selector.rpl == CPL) { /* INTERRUPT RETURN TO SAME LEVEL */ /* top 6/12 bytes on stack must be within limits, else #SS(0) */ /* satisfied above */ if (i->size_mode.os_32) { /* return EIP must be in code segment limit else #GP(0) */ if ( new_eip > cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("iret: IP > descriptor limit")); exception(BX_GP_EXCEPTION, 0, 0); return; } /* load CS:EIP from stack */ /* load CS-cache with new code segment descriptor */ load_cs(&cs_selector, &cs_descriptor, CPL); X86_EIP = new_eip; /* load EFLAGS with 3rd doubleword from stack */ write_eflags(new_eflags, CPL==0, CPL<=X86_IOPL, 0, 1); } else { /* return IP must be in code segment limit else #GP(0) */ if ( new_ip > cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("iret: IP > descriptor limit")); exception(BX_GP_EXCEPTION, 0, 0); return; } /* load CS:IP from stack */ /* load CS-cache with new code segment descriptor */ load_cs(&cs_selector, &cs_descriptor, CPL); X86_EIP = new_ip; /* load flags with third word on stack */ write_flags(new_flags, CPL==0, CPL<=X86_IOPL); } /* increment stack by 6/12 */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) X86_ESP += top_nbytes_same; else X86_SP += top_nbytes_same; return; } else { /* INTERRUPT RETURN TO OUTER PRIVILEGE LEVEL */ /* 16bit opsize | 32bit opsize * ============================== * SS eSP+8 | SS eSP+16 * SP eSP+6 | ESP eSP+12 * FLAGS eSP+4 | EFLAGS eSP+8 * CS eSP+2 | CS eSP+4 * IP eSP+0 | EIP eSP+0 */ /* top 10/20 bytes on stack must be within limits else #SS(0) */ if ( !can_pop(top_nbytes_outer) ) { BX_PANIC(("iret: top 10/20 bytes not within stack limits")); exception(BX_SS_EXCEPTION, 0, 0); return; } /* examine return SS selector and associated descriptor */ BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + ss_offset, 2, 0, BX_READ, &raw_ss_selector); /* selector must be non-null, else #GP(0) */ if ( (raw_ss_selector & 0xfffc) == 0 ) { BX_PANIC(("iret: SS selector null")); exception(BX_GP_EXCEPTION, 0, 0); return; } parse_selector(raw_ss_selector, &ss_selector); /* selector RPL must = RPL of return CS selector, * else #GP(SS selector) */ if ( ss_selector.rpl != cs_selector.rpl) { BX_PANIC(("iret: SS.rpl != CS.rpl")); exception(BX_GP_EXCEPTION, raw_ss_selector & 0xfffc, 0); return; } /* selector index must be within its descriptor table limits, * else #GP(SS selector) */ fetch_raw_descriptor(&ss_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &ss_descriptor); /* AR byte must indicate a writable data segment, * else #GP(SS selector) */ if ( ss_descriptor.valid==0 || ss_descriptor.segment==0 || ss_descriptor.u.segment.executable || ss_descriptor.u.segment.r_w==0 ) { BX_PANIC(("iret: SS AR byte not writable code segment")); exception(BX_GP_EXCEPTION, raw_ss_selector & 0xfffc, 0); return; } /* stack segment DPL must equal the RPL of the return CS selector, * else #GP(SS selector) */ if ( ss_descriptor.dpl != cs_selector.rpl ) { BX_PANIC(("iret: SS.dpl != CS selector RPL")); exception(BX_GP_EXCEPTION, raw_ss_selector & 0xfffc, 0); return; } /* SS must be present, else #NP(SS selector) */ if ( ss_descriptor.p==0 ) { BX_PANIC(("iret: SS not present!")); exception(BX_NP_EXCEPTION, raw_ss_selector & 0xfffc, 0); return; } if (i->size_mode.os_32) { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 4, 0, BX_READ, &new_eip); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 8, 4, 0, BX_READ, &new_eflags); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 12, 4, 0, BX_READ, &new_esp); } else { BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 0, 2, 0, BX_READ, &new_ip); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 4, 2, 0, BX_READ, &new_flags); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP + 6, 2, 0, BX_READ, &new_sp); new_eip = new_ip; new_esp = new_sp; new_eflags = new_flags; } /* EIP must be in code segment limit, else #GP(0) */ if ( new_eip > cs_descriptor.u.segment.limit_scaled ) { BX_PANIC(("iret: IP > descriptor limit")); exception(BX_GP_EXCEPTION, 0, 0); return; } /* load CS:EIP from stack */ /* load the CS-cache with CS descriptor */ /* set CPL to the RPL of the return CS selector */ prev_cpl = CPL; /* previous CPL */ load_cs(&cs_selector, &cs_descriptor, cs_selector.rpl); BX_CPU_THIS_PTR program_visible_eip = new_eip; /* load flags from stack */ // perhaps I should always write_eflags(), thus zeroing // out the upper 16bits of eflags for CS.D_B==0 ??? if (cs_descriptor.u.segment.d_b) write_eflags(new_eflags, prev_cpl==0, prev_cpl<=X86_IOPL, 0, 1); else write_flags((Bit16u) new_eflags, prev_cpl==0, prev_cpl<=X86_IOPL); // load SS:eSP from stack // load the SS-cache with SS descriptor load_ss(&ss_selector, &ss_descriptor, cs_selector.rpl); if (ss_descriptor.u.segment.d_b) X86_ESP = new_esp; else X86_SP = new_esp; validate_seg_regs(); return; } } BX_PANIC(("IRET: shouldn't get here!")); } #endif #if BX_CPU_LEVEL >= 2 void BX_CPU_C::validate_seg_regs(void) { if ( BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.dpl= 3 if (i->size_mode.as_32) { offset_32 = RW_EBX + RW_AL; } else #endif /* BX_CPU_LEVEL >= 3 */ { offset_32 = RW_BX + RW_AL; } if (!BX_NULL_SEG_REG(MODRMSeg(i))) { BX_CPU_CLASS_PTR read_virtual_byte(MODRMSeg(i), offset_32, &al); } else { BX_CPU_CLASS_PTR read_virtual_byte(BX_SEG_REG_DS, offset_32, &al); } RW_AL = al; } void BX_CPU_C::CBW(BX_CPU_C *icpu,bxInstruction_c *i) { RW_AX = (Bit8s)RW_AL; } void BX_CPU_C::CWDE(BX_CPU_C *icpu,bxInstruction_c *i) { RW_EAX = (Bit16s)RW_AX; } void BX_CPU_C::CWD(BX_CPU_C *icpu,bxInstruction_c *i) { RW_DX = (0-(RW_AX>>15)); } void BX_CPU_C::CDQ(BX_CPU_C *icpu,bxInstruction_c *i) { RW_EDX = (0-(RW_EAX>>31)); } void BX_CPU_C::CMOV_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 6) || (BX_CPU_LEVEL_HACKED >= 6) // Note: CMOV accesses a memory source operand (read), regardless // of whether condition is true or not. Thus, exceptions may // occur even if the MOV does not take place. Boolean condition; Bit16u op2_16; switch (OPCODEb1(i)) { // CMOV opcodes: case 0x140: condition = BX_CPU_CLASS_PTR get_OF(); break; case 0x141: condition = !BX_CPU_CLASS_PTR get_OF(); break; case 0x142: condition = BX_CPU_CLASS_PTR get_CF(); break; case 0x143: condition = !BX_CPU_CLASS_PTR get_CF(); break; case 0x144: condition = BX_CPU_CLASS_PTR get_ZF(); break; case 0x145: condition = !BX_CPU_CLASS_PTR get_ZF(); break; case 0x146: condition = BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF(); break; case 0x147: condition = !BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF(); break; case 0x148: condition = BX_CPU_CLASS_PTR get_SF(); break; case 0x149: condition = !BX_CPU_CLASS_PTR get_SF(); break; case 0x14A: condition = BX_CPU_CLASS_PTR get_PF(); break; case 0x14B: condition = !BX_CPU_CLASS_PTR get_PF(); break; case 0x14C: condition = BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF(); break; case 0x14D: condition = BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF(); break; case 0x14E: condition = BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()); break; case 0x14F: condition = !BX_CPU_CLASS_PTR get_ZF() && (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()); break; default: condition = 0; BX_PANIC(("CMOV_GwEw: default case")); } if (i->modC0()) { op2_16 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &op2_16); } if (condition) { WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), op2_16); } #else BX_PANIC(("cmov_gwew called")); #endif } void BX_CPU_C::CMOV_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 6) || (BX_CPU_LEVEL_HACKED >= 6) // Note: CMOV accesses a memory source operand (read), regardless // of whether condition is true or not. Thus, exceptions may // occur even if the MOV does not take place. Boolean condition; Bit16u op2_16; switch (OPCODEb1(i)) { // CMOV opcodes: case 0x140: condition = BX_CPU_CLASS_PTR get_OF(); break; case 0x141: condition = !BX_CPU_CLASS_PTR get_OF(); break; case 0x142: condition = BX_CPU_CLASS_PTR get_CF(); break; case 0x143: condition = !BX_CPU_CLASS_PTR get_CF(); break; case 0x144: condition = BX_CPU_CLASS_PTR get_ZF(); break; case 0x145: condition = !BX_CPU_CLASS_PTR get_ZF(); break; case 0x146: condition = BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF(); break; case 0x147: condition = !BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF(); break; case 0x148: condition = BX_CPU_CLASS_PTR get_SF(); break; case 0x149: condition = !BX_CPU_CLASS_PTR get_SF(); break; case 0x14A: condition = BX_CPU_CLASS_PTR get_PF(); break; case 0x14B: condition = !BX_CPU_CLASS_PTR get_PF(); break; case 0x14C: condition = BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF(); break; case 0x14D: condition = BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF(); break; case 0x14E: condition = BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()); break; case 0x14F: condition = !BX_CPU_CLASS_PTR get_ZF() && (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()); break; default: condition = 0; BX_PANIC(("CMOV_GwEw: default case")); } if (i->modC0()) { op2_16 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &op2_16); } if (condition) { WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), op2_16); } #else BX_PANIC(("cmov_gwew called")); #endif } void BX_CPU_C::CMOV_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 6) || (BX_CPU_LEVEL_HACKED >= 6||1) // Note: CMOV accesses a memory source operand (read), regardless // of whether condition is true or not. Thus, exceptions may // occur even if the MOV does not take place. Boolean condition; Bit32u op2_32; switch (OPCODEb1(i)) { // CMOV opcodes: case 0x140: condition = BX_CPU_CLASS_PTR get_OF(); break; case 0x141: condition = !BX_CPU_CLASS_PTR get_OF(); break; case 0x142: condition = BX_CPU_CLASS_PTR get_CF(); break; case 0x143: condition = !BX_CPU_CLASS_PTR get_CF(); break; case 0x144: condition = BX_CPU_CLASS_PTR get_ZF(); break; case 0x145: condition = !BX_CPU_CLASS_PTR get_ZF(); break; case 0x146: condition = BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF(); break; case 0x147: condition = !BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF(); break; case 0x148: condition = BX_CPU_CLASS_PTR get_SF(); break; case 0x149: condition = !BX_CPU_CLASS_PTR get_SF(); break; case 0x14A: condition = BX_CPU_CLASS_PTR get_PF(); break; case 0x14B: condition = !BX_CPU_CLASS_PTR get_PF(); break; case 0x14C: condition = BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF(); break; case 0x14D: condition = BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF(); break; case 0x14E: condition = BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()); break; case 0x14F: condition = !BX_CPU_CLASS_PTR get_ZF() && (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()); break; default: condition = 0; BX_PANIC(("CMOV_GdEd: default case")); } if (i->modC0()) { op2_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), &op2_32); } if (condition) { WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), op2_32); } #else BX_PANIC(("cmov_gded called")); #endif } void BX_CPU_C::CMOV_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 6) || (BX_CPU_LEVEL_HACKED >= 6||1) // Note: CMOV accesses a memory source operand (read), regardless // of whether condition is true or not. Thus, exceptions may // occur even if the MOV does not take place. Boolean condition; Bit32u op2_32; switch (OPCODEb1(i)) { // CMOV opcodes: case 0x140: condition = BX_CPU_CLASS_PTR get_OF(); break; case 0x141: condition = !BX_CPU_CLASS_PTR get_OF(); break; case 0x142: condition = BX_CPU_CLASS_PTR get_CF(); break; case 0x143: condition = !BX_CPU_CLASS_PTR get_CF(); break; case 0x144: condition = BX_CPU_CLASS_PTR get_ZF(); break; case 0x145: condition = !BX_CPU_CLASS_PTR get_ZF(); break; case 0x146: condition = BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF(); break; case 0x147: condition = !BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF(); break; case 0x148: condition = BX_CPU_CLASS_PTR get_SF(); break; case 0x149: condition = !BX_CPU_CLASS_PTR get_SF(); break; case 0x14A: condition = BX_CPU_CLASS_PTR get_PF(); break; case 0x14B: condition = !BX_CPU_CLASS_PTR get_PF(); break; case 0x14C: condition = BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF(); break; case 0x14D: condition = BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF(); break; case 0x14E: condition = BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()); break; case 0x14F: condition = !BX_CPU_CLASS_PTR get_ZF() && (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()); break; default: condition = 0; BX_PANIC(("CMOV_GdEd: default case")); } if (i->modC0()) { op2_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), &op2_32); } if (condition) { WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), op2_32); } #else BX_PANIC(("cmov_gded called")); #endif } void BX_CPU_C::SETcc_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("SETO: not available on < 386")); #else Bit8u result_8; Boolean condition = 0; switch (OPCODEb1(i) & 0x0f) { case 0x00: /* JO */ condition = BX_CPU_CLASS_PTR get_OF(); break; case 0x01: /* JNO */ condition = !BX_CPU_CLASS_PTR get_OF(); break; case 0x02: /* JB */ condition = BX_CPU_CLASS_PTR get_CF(); break; case 0x03: /* JNB */ condition = !BX_CPU_CLASS_PTR get_CF(); break; case 0x04: /* JZ */ condition = BX_CPU_CLASS_PTR get_ZF(); break; case 0x05: /* JNZ */ condition = !BX_CPU_CLASS_PTR get_ZF(); break; case 0x06: /* JBE */ condition = BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF(); break; case 0x07: /* JNBE */ condition = !BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF(); break; case 0x08: /* JS */ condition = BX_CPU_CLASS_PTR get_SF(); break; case 0x09: /* JNS */ condition = !BX_CPU_CLASS_PTR get_SF(); break; case 0x0A: /* JP */ condition = BX_CPU_CLASS_PTR get_PF(); break; case 0x0B: /* JNP */ condition = !BX_CPU_CLASS_PTR get_PF(); break; case 0x0C: /* JL */ condition = BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF(); break; case 0x0D: /* JNL */ condition = BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF(); break; case 0x0E: /* JLE */ condition = BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()); break; case 0x0F: /* JNLE */ condition = (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()) && !BX_CPU_CLASS_PTR get_ZF(); break; } result_8 = condition; WRITE_VIRTUAL_8BIT_REG(MODRMrm(i), result_8); #endif } void BX_CPU_C::SETcc_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("SETO: not available on < 386")); #else Bit8u result_8; Boolean condition = 0; switch (OPCODEb1(i) & 0x0f) { case 0x00: /* JO */ condition = BX_CPU_CLASS_PTR get_OF(); break; case 0x01: /* JNO */ condition = !BX_CPU_CLASS_PTR get_OF(); break; case 0x02: /* JB */ condition = BX_CPU_CLASS_PTR get_CF(); break; case 0x03: /* JNB */ condition = !BX_CPU_CLASS_PTR get_CF(); break; case 0x04: /* JZ */ condition = BX_CPU_CLASS_PTR get_ZF(); break; case 0x05: /* JNZ */ condition = !BX_CPU_CLASS_PTR get_ZF(); break; case 0x06: /* JBE */ condition = BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF(); break; case 0x07: /* JNBE */ condition = !BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF(); break; case 0x08: /* JS */ condition = BX_CPU_CLASS_PTR get_SF(); break; case 0x09: /* JNS */ condition = !BX_CPU_CLASS_PTR get_SF(); break; case 0x0A: /* JP */ condition = BX_CPU_CLASS_PTR get_PF(); break; case 0x0B: /* JNP */ condition = !BX_CPU_CLASS_PTR get_PF(); break; case 0x0C: /* JL */ condition = BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF(); break; case 0x0D: /* JNL */ condition = BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF(); break; case 0x0E: /* JLE */ condition = BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()); break; case 0x0F: /* JNLE */ condition = (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()) && !BX_CPU_CLASS_PTR get_ZF(); break; } result_8 = condition; BX_CPU_CLASS_PTR write_virtual_byte(MODRMSeg(i), RMAddr(i), &result_8); #endif } void BX_CPU_C::BSWAP_ERX(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 4) || (BX_CPU_LEVEL_HACKED >= 4) Bit32u erx, b0, b1, b2, b3; erx = READ_VIRTUAL_32BIT_REG(OPCODEb1(i)&0x07); b0 = erx & 0xff; erx >>= 8; b1 = erx & 0xff; erx >>= 8; b2 = erx & 0xff; erx >>= 8; b3 = erx; erx = (b0<<24) | (b1<<16) | (b2<<8) | b3; WRITE_VIRTUAL_32BIT_REG(OPCODEb1(i)&0x07,erx); #else BX_PANIC(("BSWAP_ERX: not implemented CPU <= 3")); #endif } // Some info on the opcodes at {0F,A6} and {0F,A7} // On 386 steps A0-B0: // {OF,A6} = XBTS // {OF,A7} = IBTS // On 486 steps A0-B0: // {OF,A6} = CMPXCHG 8 // {OF,A7} = CMPXCHG 16|32 // // On 486 >= B steps, and further processors, the // CMPXCHG instructions were moved to opcodes: // {OF,B0} = CMPXCHG 8 // {OF,B1} = CMPXCHG 16|32 void BX_CPU_C::CMPXCHG_XBTS(BX_CPU_C *icpu,bxInstruction_c *i) { BX_INFO(("CMPXCHG_XBTS:")); UndefinedOpcode(icpu,i); } void BX_CPU_C::CMPXCHG_IBTS(BX_CPU_C *icpu,bxInstruction_c *i) { BX_INFO(("CMPXCHG_IBTS:")); UndefinedOpcode(icpu,i); } void BX_CPU_C::CMPXCHG8B(BX_CPU_C *icpu,bxInstruction_c *i) { #if (BX_CPU_LEVEL >= 5) || (BX_CPU_LEVEL_HACKED >= 5) Bit32u op1_64_lo, op1_64_hi, diff; if (i->modC0()) { BX_INFO(("CMPXCHG8B: dest is reg: #UD")); UndefinedOpcode(icpu,i); } /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), &op1_64_lo); BX_CPU_CLASS_PTR read_RMW_virtual_dword(MODRMSeg(i), RMAddr(i) + 4, &op1_64_hi); diff = RW_EAX - op1_64_lo; diff |= RW_EDX - op1_64_hi; // SET_FLAGS_OSZAPC_32(RW_EAX, op1_32, diff_32, BX_INSTR_CMP32); if (diff == 0) { // if accumulator == dest // ZF = 1 BX_CPU_CLASS_PTR set_ZF(1); // dest <-- src BX_CPU_CLASS_PTR write_RMW_virtual_dword(RW_ECX); BX_CPU_CLASS_PTR write_virtual_dword(MODRMSeg(i), RMAddr(i), &RW_EBX); } else { // ZF = 0 BX_CPU_CLASS_PTR set_ZF(0); // accumulator <-- dest RW_EAX = op1_64_lo; RW_EDX = op1_64_hi; } #else BX_INFO(("CMPXCHG8B: not implemented yet")); UndefinedOpcode(icpu,i); #endif } ================================================ FILE: Project/IntelCPU/Source/debugstu.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: debugstuff.cc,v 1.11 2001/10/09 21:15:14 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::debug(Bit32u offset) { BX_INFO(("| EAX=%08x EBX=%08x ECX=%08x EDX=%08x", (unsigned) X86_EAX, (unsigned) X86_EBX, (unsigned) X86_ECX, (unsigned) X86_EDX)); BX_INFO(("| BX_ESP=%08x EBP=%08x ESI=%08x EDI=%08x", (unsigned) X86_ESP, (unsigned) X86_EBP, (unsigned) X86_ESI, (unsigned) X86_EDI)); BX_INFO(("| IOPL=%1u %s %s %s %s %s %s %s %s", BX_CPU_THIS_PTR eflags.iopl, BX_CPU_THIS_PTR get_OF() ? "OV" : "NV", BX_CPU_THIS_PTR eflags.df ? "DW" : "UP", BX_CPU_THIS_PTR eflags.if_ ? "EI" : "DI", BX_CPU_THIS_PTR get_SF() ? "NG" : "PL", BX_CPU_THIS_PTR get_ZF() ? "ZR" : "NZ", BX_CPU_THIS_PTR get_AF() ? "AC" : "NA", BX_CPU_THIS_PTR get_PF() ? "PE" : "PO", BX_CPU_THIS_PTR get_CF() ? "CY" : "NC")); BX_INFO(("| SEG selector base limit G D")); BX_INFO(("| SEG sltr(index|ti|rpl) base limit G D")); BX_INFO(("| DS:%04x( %04x| %01u| %1u) %08x %08x %1u %1u", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.index, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.ti, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.rpl, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.g, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.d_b)); BX_INFO(("| ES:%04x( %04x| %01u| %1u) %08x %08x %1u %1u", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.index, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.ti, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.rpl, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.g, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.d_b)); BX_INFO(("| FS:%04x( %04x| %01u| %1u) %08x %08x %1u %1u", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.index, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.ti, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.rpl, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.base, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.g, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.d_b)); BX_INFO(("| GS:%04x( %04x| %01u| %1u) %08x %08x %1u %1u", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.index, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.ti, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.rpl, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.base, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.g, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.d_b)); BX_INFO(("| SS:%04x( %04x| %01u| %1u) %08x %08x %1u %1u", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.index, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.ti, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.g, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b)); BX_INFO(("| CS:%04x( %04x| %01u| %1u) %08x %08x %1u %1u", (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.index, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.ti, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.g, (unsigned) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b)); BX_INFO(("| EIP=%08x (%08x)", (unsigned) BX_CPU_THIS_PTR program_visible_eip, (unsigned) BX_CPU_THIS_PTR prev_eip)); #if 0 /* (mch) Hack to display the area round EIP and prev_EIP */ char buf[100]; sprintf(buf, "%04x:%08x ", BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].selector.value, BX_CPU_THIS_PTR program_visible_eip); for (int i = 0; i < 8; i++) { Bit8u data; BX_CPU_THIS_PTR read_virtual_byte(BX_SREG_CS, BX_CPU_THIS_PTR program_visible_eip + i, &data); sprintf(buf+strlen(buf), "%02x ", data); } BX_INFO((buf)); sprintf(buf, "%04x:%08x ", BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].selector.value, BX_CPU_THIS_PTR prev_eip); for (int i = 0; i < 8; i++) { Bit8u data; BX_CPU_THIS_PTR read_virtual_byte(BX_SREG_CS, BX_CPU_THIS_PTR prev_eip + i, &data); sprintf(buf+strlen(buf), "%02x ", data); } BX_INFO((buf)); #endif #if BX_DISASM Boolean valid; Bit32u phy_addr; Bit8u instr_buf[32]; char char_buf[256]; unsigned isize; dbg_xlate_linear2phy(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + offset, &phy_addr, &valid); if (valid) { BX_CPU_THIS_PTR mem->dbg_fetch_mem(phy_addr, 16, instr_buf); isize = bx_disassemble.disasm(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b, instr_buf, char_buf); for (unsigned j=0; j> %02x", (unsigned) instr_buf[j])); BX_INFO((">> : %s", char_buf)); } else { BX_INFO(("(instruction unavailable) page not present")); } #else UNUSED(offset); #endif // #if BX_DISASM } #if BX_DEBUGGER Bit32u BX_CPU_C::dbg_get_reg(unsigned reg) { Bit32u return_val32; switch (reg) { case BX_DBG_REG_EAX: return(EAX); case BX_DBG_REG_ECX: return(ECX); case BX_DBG_REG_EDX: return(EDX); case BX_DBG_REG_EBX: return(EBX); case BX_DBG_REG_ESP: return(BX_ESP); case BX_DBG_REG_EBP: return(EBP); case BX_DBG_REG_ESI: return(ESI); case BX_DBG_REG_EDI: return(EDI); case BX_DBG_REG_EIP: return(EIP); case BX_DBG_REG_EFLAGS: return_val32 = dbg_get_eflags(); return(return_val32); case BX_DBG_REG_CS: return(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); case BX_DBG_REG_SS: return(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value); case BX_DBG_REG_DS: return(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value); case BX_DBG_REG_ES: return(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value); case BX_DBG_REG_FS: return(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value); case BX_DBG_REG_GS: return(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value); default: BX_PANIC(("get_reg: request for unknown register")); return(0); } } Boolean BX_CPU_C::dbg_set_reg(unsigned reg, Bit32u val) { // returns 1=OK, 0=can't change bx_segment_reg_t *seg; Bit32u current_sys_bits; switch (reg) { case BX_DBG_REG_EAX: EAX = val; return(1); case BX_DBG_REG_ECX: ECX = val; return(1); case BX_DBG_REG_EDX: EDX = val; return(1); case BX_DBG_REG_EBX: EBX = val; return(1); case BX_DBG_REG_ESP: BX_ESP = val; return(1); case BX_DBG_REG_EBP: EBP = val; return(1); case BX_DBG_REG_ESI: ESI = val; return(1); case BX_DBG_REG_EDI: EDI = val; return(1); case BX_DBG_REG_EIP: EIP = val; return(1); case BX_DBG_REG_EFLAGS: BX_INFO(("dbg_set_reg: can not handle eflags yet.")); if ( val & 0xffff0000 ) { BX_INFO(("dbg_set_reg: can not set upper 16 bits of eflags.")); return(0); } // make sure none of the system bits are being changed current_sys_bits = (BX_CPU_THIS_PTR eflags.nt << 14) | (BX_CPU_THIS_PTR eflags.iopl << 12) | (BX_CPU_THIS_PTR eflags.tf << 8); if ( current_sys_bits != (val & 0x0000f100) ) { BX_INFO(("dbg_set_reg: can not modify NT, IOPL, or TF.")); return(0); } BX_CPU_THIS_PTR set_CF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR set_PF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR set_AF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR set_ZF(val & 0x01); val >>= 1; BX_CPU_THIS_PTR set_SF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR eflags.if_ = val & 0x01; val >>= 1; BX_CPU_THIS_PTR eflags.df = val & 0x01; val >>= 1; BX_CPU_THIS_PTR set_OF(val & 0x01); if (BX_CPU_THIS_PTR eflags.if_) BX_CPU_THIS_PTR async_event = 1; return(1); case BX_DBG_REG_CS: seg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS]; break; case BX_DBG_REG_SS: seg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS]; break; case BX_DBG_REG_DS: seg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS]; break; case BX_DBG_REG_ES: seg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES]; break; case BX_DBG_REG_FS: seg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS]; break; case BX_DBG_REG_GS: seg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS]; break; default: BX_PANIC(("dbg_set_reg: unrecognized register ID (%u)", reg)); return(0); } if (BX_CPU_THIS_PTR real_mode()) { seg->selector.value = val; seg->cache.valid = 1; seg->cache.p = 1; seg->cache.dpl = 0; seg->cache.segment = 1; // regular segment if (reg == BX_DBG_REG_CS) { seg->cache.u.segment.executable = 1; // code segment } else { seg->cache.u.segment.executable = 0; // data segment } seg->cache.u.segment.c_ed = 0; // expand up/non-conforming seg->cache.u.segment.r_w = 1; // writeable seg->cache.u.segment.a = 1; // accessed seg->cache.u.segment.base = val << 4; seg->cache.u.segment.limit = 0xffff; seg->cache.u.segment.limit_scaled = 0xffff; seg->cache.u.segment.g = 0; // byte granular seg->cache.u.segment.d_b = 0; // default 16bit size seg->cache.u.segment.avl = 0; return(1); // ok } return(0); // can't change when not in real mode } unsigned BX_CPU_C::dbg_query_pending(void) { unsigned ret = 0; if ( BX_HRQ ) { // DMA Hold Request ret |= BX_DBG_PENDING_DMA; } if ( BX_CPU_THIS_PTR INTR && BX_CPU_THIS_PTR eflags.if_ ) { ret |= BX_DBG_PENDING_IRQ; } return(ret); } Bit32u BX_CPU_C::dbg_get_eflags(void) { Bit32u val32; val32 = (BX_CPU_THIS_PTR get_CF()) | (BX_CPU_THIS_PTR eflags.bit1 << 1) | ((BX_CPU_THIS_PTR get_PF()) << 2) | (BX_CPU_THIS_PTR eflags.bit3 << 3) | ((BX_CPU_THIS_PTR get_AF()>0) << 4) | (BX_CPU_THIS_PTR eflags.bit5 << 5) | ((BX_CPU_THIS_PTR get_ZF()>0) << 6) | ((BX_CPU_THIS_PTR get_SF()>0) << 7) | (BX_CPU_THIS_PTR eflags.tf << 8) | (BX_CPU_THIS_PTR eflags.if_ << 9) | (BX_CPU_THIS_PTR eflags.df << 10) | ((BX_CPU_THIS_PTR get_OF()>0) << 11) | (BX_CPU_THIS_PTR eflags.iopl << 12) | (BX_CPU_THIS_PTR eflags.nt << 14) | (BX_CPU_THIS_PTR eflags.bit15 << 15) | (BX_CPU_THIS_PTR eflags.rf << 16) | (BX_CPU_THIS_PTR eflags.vm << 17); #if BX_CPU_LEVEL >= 4 val32 |= (BX_CPU_THIS_PTR eflags.ac << 18); //val32 |= (BX_CPU_THIS_PTR eflags.vif << 19); //val32 |= (BX_CPU_THIS_PTR eflags.vip << 20); val32 |= (BX_CPU_THIS_PTR eflags.id << 21); #endif return(val32); } Bit32u BX_CPU_C::dbg_get_descriptor_l(bx_descriptor_t *d) { Bit32u val; if (d->valid == 0) { return(0); } if (d->segment) { val = ((d->u.segment.base & 0xffff) << 16) | (d->u.segment.limit & 0xffff); return(val); } else { switch (d->type) { case 0: // Reserved (not yet defined) BX_ERROR(( "#get_descriptor_l(): type %d not finished", d->type )); return(0); case 1: // available 16bit TSS val = ((d->u.tss286.base & 0xffff) << 16) | (d->u.tss286.limit & 0xffff); return(val); case 2: // LDT val = ((d->u.ldt.base & 0xffff) << 16) | d->u.ldt.limit; return(val); case 9: // available 32bit TSS val = ((d->u.tss386.base & 0xffff) << 16) | (d->u.tss386.limit & 0xffff); return(val); default: BX_ERROR(( "#get_descriptor_l(): type %d not finished", d->type )); return(0); } } } Bit32u BX_CPU_C::dbg_get_descriptor_h(bx_descriptor_t *d) { Bit32u val; if (d->valid == 0) { return(0); } if (d->segment) { val = (d->u.segment.base & 0xff000000) | ((d->u.segment.base >> 16) & 0x000000ff) | (d->u.segment.executable << 11) | (d->u.segment.c_ed << 10) | (d->u.segment.r_w << 9) | (d->u.segment.a << 8) | (d->segment << 12) | (d->dpl << 13) | (d->p << 15) | (d->u.segment.limit & 0xf0000) | (d->u.segment.avl << 20) | (d->u.segment.d_b << 22) | (d->u.segment.g << 23); return(val); } else { switch (d->type) { case 0: // Reserved (not yet defined) BX_ERROR(( "#get_descriptor_h(): type %d not finished", d->type )); return(0); case 1: // available 16bit TSS val = ((d->u.tss286.base >> 16) & 0xff) | (d->type << 8) | (d->dpl << 13) | (d->p << 15); return(val); case 2: // LDT val = ((d->u.ldt.base >> 16) & 0xff) | (d->type << 8) | (d->dpl << 13) | (d->p << 15) | (d->u.ldt.base & 0xff000000); return(val); case 9: // available 32bit TSS val = ((d->u.tss386.base >> 16) & 0xff) | (d->type << 8) | (d->dpl << 13) | (d->p << 15) | (d->u.tss386.limit & 0xf0000) | (d->u.tss386.avl << 20) | (d->u.tss386.g << 23) | (d->u.tss386.base & 0xff000000); return(val); default: BX_ERROR(( "#get_descriptor_h(): type %d not finished", d->type )); return(0); } } } Boolean BX_CPU_C::dbg_get_sreg(bx_dbg_sreg_t *sreg, unsigned sreg_no) { if (sreg_no > 5) return(0); sreg->sel = BX_CPU_THIS_PTR program_visible_sregs[sreg_no].selector.value; sreg->des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[sreg_no].cache); sreg->des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[sreg_no].cache); sreg->valid = BX_CPU_THIS_PTR program_visible_sregs[sreg_no].cache.valid; return(1); } Boolean BX_CPU_C::dbg_get_cpu(bx_dbg_cpu_t *cpu) { cpu->eax = EAX; cpu->ebx = EBX; cpu->ecx = ECX; cpu->edx = EDX; cpu->ebp = EBP; cpu->esi = ESI; cpu->edi = EDI; cpu->esp = BX_ESP; cpu->eflags = dbg_get_eflags(); cpu->eip = BX_CPU_THIS_PTR program_visible_eip; cpu->cs.sel = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; cpu->cs.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache); cpu->cs.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache); cpu->cs.valid = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid; cpu->ss.sel = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value; cpu->ss.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache); cpu->ss.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache); cpu->ss.valid = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid; cpu->ds.sel = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value; cpu->ds.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache); cpu->ds.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache); cpu->ds.valid = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid; cpu->es.sel = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value; cpu->es.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache); cpu->es.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache); cpu->es.valid = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid; cpu->fs.sel = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value; cpu->fs.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache); cpu->fs.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache); cpu->fs.valid = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.valid; cpu->gs.sel = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value; cpu->gs.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache); cpu->gs.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache); cpu->gs.valid = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.valid; cpu->ldtr.sel = BX_CPU_THIS_PTR ldtr.selector.value; cpu->ldtr.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR ldtr.cache); cpu->ldtr.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR ldtr.cache); cpu->ldtr.valid = BX_CPU_THIS_PTR ldtr.cache.valid; cpu->tr.sel = BX_CPU_THIS_PTR tr.selector.value; cpu->tr.des_l = dbg_get_descriptor_l(&BX_CPU_THIS_PTR tr.cache); cpu->tr.des_h = dbg_get_descriptor_h(&BX_CPU_THIS_PTR tr.cache); cpu->tr.valid = BX_CPU_THIS_PTR tr.cache.valid; cpu->gdtr.base = BX_CPU_THIS_PTR gdtr.base; cpu->gdtr.limit = BX_CPU_THIS_PTR gdtr.limit; cpu->idtr.base = BX_CPU_THIS_PTR idtr.base; cpu->idtr.limit = BX_CPU_THIS_PTR idtr.limit; cpu->dr0 = BX_CPU_THIS_PTR dr0; cpu->dr1 = BX_CPU_THIS_PTR dr1; cpu->dr2 = BX_CPU_THIS_PTR dr2; cpu->dr3 = BX_CPU_THIS_PTR dr3; cpu->dr6 = BX_CPU_THIS_PTR dr6; cpu->dr7 = BX_CPU_THIS_PTR dr7; cpu->tr3 = 0; cpu->tr4 = 0; cpu->tr5 = 0; cpu->tr6 = 0; cpu->tr7 = 0; // cr0:32=pg,cd,nw,am,wp,ne,ts,em,mp,pe cpu->cr0 = BX_CPU_THIS_PTR cr0.val32; cpu->cr1 = 0; cpu->cr2 = BX_CPU_THIS_PTR cr2; cpu->cr3 = BX_CPU_THIS_PTR cr3; cpu->cr4 = 0; cpu->inhibit_mask = BX_CPU_THIS_PTR inhibit_mask; return(1); } Boolean BX_CPU_C::dbg_set_cpu(bx_dbg_cpu_t *cpu) { // returns 1=OK, 0=Error Bit32u val; Bit32u type; // ================================================= // Do checks first, before setting any CPU registers // ================================================= // CS, SS, DS, ES, FS, GS descriptor checks if (!cpu->cs.valid) { BX_ERROR(( "Error: CS not valid" )); return(0); // error } if ( (cpu->cs.des_h & 0x1000) == 0 ) { BX_ERROR(( "Error: CS not application type" )); return(0); // error } if ( (cpu->cs.des_h & 0x0800) == 0 ) { BX_ERROR(( "Error: CS not executable" )); return(0); // error } if (!cpu->ss.valid) { BX_ERROR(( "Error: SS not valid" )); return(0); // error } if ( (cpu->ss.des_h & 0x1000) == 0 ) { BX_ERROR(( "Error: SS not application type" )); return(0); // error } if (cpu->ds.valid) { if ( (cpu->ds.des_h & 0x1000) == 0 ) { BX_ERROR(( "Error: DS not application type" )); return(0); // error } } if (cpu->es.valid) { if ( (cpu->es.des_h & 0x1000) == 0 ) { BX_ERROR(( "Error: ES not application type" )); return(0); // error } } if (cpu->fs.valid) { if ( (cpu->fs.des_h & 0x1000) == 0 ) { BX_ERROR(( "Error: FS not application type" )); return(0); // error } } if (cpu->gs.valid) { if ( (cpu->gs.des_h & 0x1000) == 0 ) { BX_ERROR(( "Error: GS not application type" )); return(0); // error } } if (cpu->ldtr.valid) { if ( cpu->ldtr.des_h & 0x1000 ) { BX_ERROR(( "Error: LDTR not system type" )); return(0); // error } if ( ((cpu->ldtr.des_h >> 8) & 0x0f) != 2 ) { BX_ERROR(( "Error: LDTR descriptor type not LDT" )); return(0); // error } } if (cpu->tr.valid) { if ( cpu->tr.des_h & 0x1000 ) { BX_ERROR(( "Error: TR not system type")); return(0); // error } type = (cpu->tr.des_h >> 8) & 0x0f; if ( (type != 1) && (type != 9) ) { BX_ERROR(( "Error: TR descriptor type not TSS" )); return(0); // error } } // ============= // end of checks // ============= EAX = cpu->eax; EBX = cpu->ebx; ECX = cpu->ecx; EDX = cpu->edx; EBP = cpu->ebp; ESI = cpu->esi; EDI = cpu->edi; BX_ESP = cpu->esp; // eflags val = cpu->eflags; BX_CPU_THIS_PTR set_CF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR set_PF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR set_AF(val & 0x01); val >>= 2; BX_CPU_THIS_PTR set_ZF(val & 0x01); val >>= 1; BX_CPU_THIS_PTR set_SF(val & 0x01); val >>= 1; BX_CPU_THIS_PTR eflags.tf = val & 0x01; val >>= 1; BX_CPU_THIS_PTR eflags.if_ = val & 0x01; val >>= 1; BX_CPU_THIS_PTR eflags.df = val & 0x01; val >>= 1; BX_CPU_THIS_PTR set_OF(val & 0x01); val >>= 1; BX_CPU_THIS_PTR eflags.iopl = val & 0x03; val >>= 2; BX_CPU_THIS_PTR eflags.nt = val & 0x01; val >>= 2; BX_CPU_THIS_PTR eflags.rf = val & 0x01; val >>= 1; BX_CPU_THIS_PTR eflags.vm = val & 0x01; val >>= 1; #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR eflags.ac = val & 0x01; val >>= 1; //BX_CPU_THIS_PTR eflags.vif = val & 0x01; val >>= 1; //BX_CPU_THIS_PTR eflags.vip = val & 0x01; val >>= 1; BX_CPU_THIS_PTR eflags.id = val & 0x01; #endif BX_CPU_THIS_PTR program_visible_eip = cpu->eip; // CS: BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = cpu->cs.sel; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.index = cpu->cs.sel >> 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.ti = (cpu->cs.sel >> 2) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl = cpu->cs.sel & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid = cpu->cs.valid; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.p = (cpu->cs.des_h >> 15) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.dpl = (cpu->cs.des_h >> 13) & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.segment = (cpu->cs.des_h >> 12) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.type = (cpu->cs.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.executable = (cpu->cs.des_h >> 11) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.c_ed = (cpu->cs.des_h >> 10) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.r_w = (cpu->cs.des_h >> 9) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.a = (cpu->cs.des_h >> 8) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base = (cpu->cs.des_l >> 16); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base |= (cpu->cs.des_h & 0xff) << 16; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base |= (cpu->cs.des_h & 0xff000000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit = (cpu->cs.des_l & 0xffff); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit |= (cpu->cs.des_h & 0x000f0000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.g = (cpu->cs.des_h >> 23) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b = (cpu->cs.des_h >> 22) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.avl = (cpu->cs.des_h >> 20) & 0x01; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.g) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled = (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit << 12) | 0x0fff; else BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit; // SS: BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = cpu->ss.sel; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.index = cpu->ss.sel >> 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.ti = (cpu->ss.sel >> 2) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl = cpu->ss.sel & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = cpu->ss.valid; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.p = (cpu->ss.des_h >> 15) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.dpl = (cpu->ss.des_h >> 13) & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.segment = (cpu->ss.des_h >> 12) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.type = (cpu->ss.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.executable = (cpu->ss.des_h >> 11) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.c_ed = (cpu->ss.des_h >> 10) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.r_w = (cpu->ss.des_h >> 9) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.a = (cpu->ss.des_h >> 8) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base = (cpu->ss.des_l >> 16); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base |= (cpu->ss.des_h & 0xff) << 16; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base |= (cpu->ss.des_h & 0xff000000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit = (cpu->ss.des_l & 0xffff); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit |= (cpu->ss.des_h & 0x000f0000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.g = (cpu->ss.des_h >> 23) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b = (cpu->ss.des_h >> 22) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.avl = (cpu->ss.des_h >> 20) & 0x01; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.g) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled = (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit << 12) | 0x0fff; else BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit; // DS: BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = cpu->ds.sel; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.index = cpu->ds.sel >> 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.ti = (cpu->ds.sel >> 2) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.rpl = cpu->ds.sel & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = cpu->ds.valid; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.p = (cpu->ds.des_h >> 15) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.dpl = (cpu->ds.des_h >> 13) & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.segment = (cpu->ds.des_h >> 12) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.type = (cpu->ds.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.executable = (cpu->ds.des_h >> 11) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.c_ed = (cpu->ds.des_h >> 10) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.r_w = (cpu->ds.des_h >> 9) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.a = (cpu->ds.des_h >> 8) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base = (cpu->ds.des_l >> 16); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base |= (cpu->ds.des_h & 0xff) << 16; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base |= (cpu->ds.des_h & 0xff000000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit = (cpu->ds.des_l & 0xffff); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit |= (cpu->ds.des_h & 0x000f0000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.g = (cpu->ds.des_h >> 23) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.d_b = (cpu->ds.des_h >> 22) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.avl = (cpu->ds.des_h >> 20) & 0x01; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.g) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit_scaled = (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit << 12) | 0x0fff; else BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit_scaled = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit; // ES: BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = cpu->es.sel; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.index = cpu->es.sel >> 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.ti = (cpu->es.sel >> 2) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.rpl = cpu->es.sel & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid = cpu->es.valid; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.p = (cpu->es.des_h >> 15) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.dpl = (cpu->es.des_h >> 13) & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.segment = (cpu->es.des_h >> 12) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.type = (cpu->es.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.executable = (cpu->es.des_h >> 11) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.c_ed = (cpu->es.des_h >> 10) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.r_w = (cpu->es.des_h >> 9) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.a = (cpu->es.des_h >> 8) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base = (cpu->es.des_l >> 16); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base |= (cpu->es.des_h & 0xff) << 16; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base |= (cpu->es.des_h & 0xff000000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit = (cpu->es.des_l & 0xffff); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit |= (cpu->es.des_h & 0x000f0000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.g = (cpu->es.des_h >> 23) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.d_b = (cpu->es.des_h >> 22) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.avl = (cpu->es.des_h >> 20) & 0x01; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.g) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit_scaled = (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit << 12) | 0x0fff; else BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit_scaled = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit; // FS: BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value = cpu->fs.sel; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.index = cpu->fs.sel >> 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.ti = (cpu->fs.sel >> 2) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.rpl = cpu->fs.sel & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.valid = cpu->fs.valid; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.p = (cpu->fs.des_h >> 15) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.dpl = (cpu->fs.des_h >> 13) & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.segment = (cpu->fs.des_h >> 12) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.type = (cpu->fs.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.executable = (cpu->fs.des_h >> 11) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.c_ed = (cpu->fs.des_h >> 10) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.r_w = (cpu->fs.des_h >> 9) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.a = (cpu->fs.des_h >> 8) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.base = (cpu->fs.des_l >> 16); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.base |= (cpu->fs.des_h & 0xff) << 16; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.base |= (cpu->fs.des_h & 0xff000000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit = (cpu->fs.des_l & 0xffff); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit |= (cpu->fs.des_h & 0x000f0000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.g = (cpu->fs.des_h >> 23) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.d_b = (cpu->fs.des_h >> 22) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.avl = (cpu->fs.des_h >> 20) & 0x01; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.g) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit_scaled = (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit << 12) | 0x0fff; else BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit_scaled = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit; // GS: BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value = cpu->gs.sel; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.index = cpu->gs.sel >> 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.ti = (cpu->gs.sel >> 2) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.rpl = cpu->gs.sel & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.valid = cpu->gs.valid; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.p = (cpu->gs.des_h >> 15) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.dpl = (cpu->gs.des_h >> 13) & 0x03; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.segment = (cpu->gs.des_h >> 12) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.type = (cpu->gs.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.executable = (cpu->gs.des_h >> 11) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.c_ed = (cpu->gs.des_h >> 10) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.r_w = (cpu->gs.des_h >> 9) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.a = (cpu->gs.des_h >> 8) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.base = (cpu->gs.des_l >> 16); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.base |= (cpu->gs.des_h & 0xff) << 16; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.base |= (cpu->gs.des_h & 0xff000000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit = (cpu->gs.des_l & 0xffff); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit |= (cpu->gs.des_h & 0x000f0000); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.g = (cpu->gs.des_h >> 23) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.d_b = (cpu->gs.des_h >> 22) & 0x01; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.avl = (cpu->gs.des_h >> 20) & 0x01; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.g) BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit_scaled = (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit << 12) | 0x0fff; else BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit_scaled = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit; // LDTR: BX_CPU_THIS_PTR ldtr.selector.value = cpu->ldtr.sel; BX_CPU_THIS_PTR ldtr.selector.index = cpu->ldtr.sel >> 3; BX_CPU_THIS_PTR ldtr.selector.ti = (cpu->ldtr.sel >> 2) & 0x01; BX_CPU_THIS_PTR ldtr.selector.rpl = cpu->ldtr.sel & 0x03; BX_CPU_THIS_PTR ldtr.cache.valid = cpu->ldtr.valid; BX_CPU_THIS_PTR ldtr.cache.p = (cpu->ldtr.des_h >> 15) & 0x01; BX_CPU_THIS_PTR ldtr.cache.dpl = (cpu->ldtr.des_h >> 13) & 0x03; BX_CPU_THIS_PTR ldtr.cache.segment = (cpu->ldtr.des_h >> 12) & 0x01; BX_CPU_THIS_PTR ldtr.cache.type = (cpu->ldtr.des_h >> 8) & 0x0f; BX_CPU_THIS_PTR ldtr.cache.u.ldt.base = (cpu->ldtr.des_l >> 16); BX_CPU_THIS_PTR ldtr.cache.u.ldt.base |= (cpu->ldtr.des_h & 0xff) << 16; BX_CPU_THIS_PTR ldtr.cache.u.ldt.base |= (cpu->ldtr.des_h & 0xff000000); BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit = (cpu->ldtr.des_l & 0xffff); // TR type = (cpu->tr.des_h >> 8) & 0x0f; type &= ~2; // never allow busy bit in tr.cache.type BX_CPU_THIS_PTR tr.selector.value = cpu->tr.sel; BX_CPU_THIS_PTR tr.selector.index = cpu->tr.sel >> 3; BX_CPU_THIS_PTR tr.selector.ti = (cpu->tr.sel >> 2) & 0x01; BX_CPU_THIS_PTR tr.selector.rpl = cpu->tr.sel & 0x03; BX_CPU_THIS_PTR tr.cache.valid = cpu->tr.valid; BX_CPU_THIS_PTR tr.cache.p = (cpu->tr.des_h >> 15) & 0x01; BX_CPU_THIS_PTR tr.cache.dpl = (cpu->tr.des_h >> 13) & 0x03; BX_CPU_THIS_PTR tr.cache.segment = (cpu->tr.des_h >> 12) & 0x01; BX_CPU_THIS_PTR tr.cache.type = type; if (type == 1) { // 286 TSS BX_CPU_THIS_PTR tr.cache.u.tss286.base = (cpu->tr.des_l >> 16); BX_CPU_THIS_PTR tr.cache.u.tss286.base |= (cpu->tr.des_h & 0xff) << 16; BX_CPU_THIS_PTR tr.cache.u.tss286.limit = (cpu->tr.des_l & 0xffff); } else { // type == 9, 386 TSS BX_CPU_THIS_PTR tr.cache.u.tss386.base = (cpu->tr.des_l >> 16); BX_CPU_THIS_PTR tr.cache.u.tss386.base |= (cpu->tr.des_h & 0xff) << 16; BX_CPU_THIS_PTR tr.cache.u.tss386.base |= (cpu->tr.des_h & 0xff000000); BX_CPU_THIS_PTR tr.cache.u.tss386.limit = (cpu->tr.des_l & 0xffff); BX_CPU_THIS_PTR tr.cache.u.tss386.limit |= (cpu->tr.des_h & 0x000f0000); BX_CPU_THIS_PTR tr.cache.u.tss386.g = (cpu->tr.des_h >> 23) & 0x01; BX_CPU_THIS_PTR tr.cache.u.tss386.avl = (cpu->tr.des_h >> 20) & 0x01; } // gdtr BX_CPU_THIS_PTR gdtr.base = cpu->gdtr.base; BX_CPU_THIS_PTR gdtr.limit = cpu->gdtr.limit; // idtr BX_CPU_THIS_PTR idtr.base = cpu->idtr.base; BX_CPU_THIS_PTR idtr.limit = cpu->idtr.limit; BX_CPU_THIS_PTR dr0 = cpu->dr0; BX_CPU_THIS_PTR dr1 = cpu->dr1; BX_CPU_THIS_PTR dr2 = cpu->dr2; BX_CPU_THIS_PTR dr3 = cpu->dr3; BX_CPU_THIS_PTR dr6 = cpu->dr6; BX_CPU_THIS_PTR dr7 = cpu->dr7; // BX_CPU_THIS_PTR tr3 = cpu->tr3; // BX_CPU_THIS_PTR tr4 = cpu->tr4; // BX_CPU_THIS_PTR tr5 = cpu->tr5; // BX_CPU_THIS_PTR tr6 = cpu->tr6; // BX_CPU_THIS_PTR tr7 = cpu->tr7; // cr0, cr1, cr2, cr3, cr4 SetCR0(cpu->cr0); BX_CPU_THIS_PTR cr1 = cpu->cr1; BX_CPU_THIS_PTR cr2 = cpu->cr2; BX_CPU_THIS_PTR cr3 = cpu->cr3; #if BX_CPU_LEVEL >= 5 BX_CPU_THIS_PTR cr4 = cpu->cr4; #endif BX_CPU_THIS_PTR inhibit_mask = cpu->inhibit_mask; // // flush cached items, prefetch, paging, etc // BX_CPU_THIS_PTR CR3_change(cpu->cr3); BX_CPU_THIS_PTR invalidate_prefetch_q(); BX_CPU_THIS_PTR async_event = 1; return(1); } #if BX_SIM_ID == 0 # define BX_DBG_NULL_CALLBACK bx_dbg_null_callback0 #else # define BX_DBG_NULL_CALLBACK bx_dbg_null_callback1 #endif void BX_DBG_NULL_CALLBACK(unsigned val) { // bochs uses the pc_system variables, so this function is // a stub for notification by the debugger, that a change // occurred. UNUSED(val); } void #if BX_SIM_ID == 0 bx_dbg_init_cpu_mem_env0(bx_dbg_callback_t *callback, int argc, char *argv[]) #else bx_dbg_init_cpu_mem_env1(bx_dbg_callback_t *callback, int argc, char *argv[]) #endif { UNUSED(argc); UNUSED(argv); #if 0 #warning hardcoding BX_CPU_THIS_PTR mem[0] and cpu[0] callback->setphymem = BX_MEM(0)->dbg_set_mem; callback->getphymem = BX_MEM(0)->dbg_fetch_mem; callback->xlate_linear2phy = BX_CPU(0)->dbg_xlate_linear2phy; callback->set_reg = BX_CPU(0)->dbg_set_reg; callback->get_reg = BX_CPU(0)->dbg_get_reg; callback->get_sreg = BX_CPU(0)->dbg_get_sreg; callback->get_cpu = BX_CPU(0)->dbg_get_cpu; callback->set_cpu = BX_CPU(0)->dbg_set_cpu; callback->dirty_page_tbl_size = sizeof(BX_MEM(0)->dbg_dirty_pages); callback->dirty_page_tbl = BX_MEM(0)->dbg_dirty_pages; callback->atexit = BX_CPU(0)->atexit; callback->query_pending = BX_CPU(0)->dbg_query_pending; callback->execute = BX_CPU(0)->cpu_loop; callback->take_irq = BX_CPU(0)->dbg_take_irq; callback->take_dma = BX_CPU(0)->dbg_take_dma; callback->reset_cpu = BX_CPU(0)->reset; callback->init_mem = BX_MEM(0)->init_memory; callback->load_ROM = BX_MEM(0)->load_ROM; callback->set_A20 = NULL; callback->set_NMI = BX_DBG_NULL_CALLBACK; callback->set_RESET = BX_DBG_NULL_CALLBACK; callback->set_INTR = BX_CPU(0)->set_INTR; callback->force_interrupt = BX_CPU(0)->dbg_force_interrupt; #if BX_INSTRUMENTATION callback->instr_start = bx_instr_start; callback->instr_stop = bx_instr_stop; callback->instr_reset = bx_instr_reset; callback->instr_print = bx_instr_print; #endif #if BX_USE_LOADER callback->loader = bx_dbg_loader; #endif callback->crc32 = BX_MEM(0)->dbg_crc32; #endif } #endif // #if BX_DEBUGGER void BX_CPU_C::atexit(void) { if (protected_mode()) BX_INFO(("protected mode")); else if (v8086_mode()) BX_INFO(("v8086 mode")); else BX_INFO(("real mode")); BX_INFO(("CS.d_b = %u bit", BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS].cache.u.segment.d_b ? 32 : 16)); BX_INFO(("SS.d_b = %u bit", BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_SS].cache.u.segment.d_b ? 32 : 16)); debug(BX_CPU_THIS_PTR prev_eip); } ================================================ FILE: Project/IntelCPU/Source/except.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: exception.cc,v 1.12 2002/03/12 19:00:44 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" /* Exception classes. These are used as indexes into the 'is_exception_OK' * array below, and are stored in the 'exception' array also */ #define BX_ET_BENIGN 0 #define BX_ET_CONTRIBUTORY 1 #define BX_ET_PAGE_FAULT 2 #define BX_ET_DOUBLE_FAULT 10 const Boolean BX_CPU_C::is_exception_OK[3][3] = { { 1, 1, 1 }, /* 1st exception is BENIGN */ { 1, 0, 1 }, /* 1st exception is CONTRIBUTORY */ { 1, 0, 0 } /* 1st exception is PAGE_FAULT */ }; void BX_CPU_C::intel_interrupt(Bit8u _vector, Boolean is_INT, Boolean is_error_code, Bit16u error_code) { #if BX_DEBUGGER if (bx_guard.special_unwind_stack) { BX_INFO (("intel_interrupt() returning early because special_unwind_stack is set")); return; } BX_CPU_THIS_PTR show_flag |= Flag_intsig; #if BX_DEBUG_LINUX if (bx_dbg.linux_syscall) { if (_vector == 0x80) bx_dbg_linux_syscall (); } #endif #endif //BX_DEBUG(( "::intel_interrupt(%u)", _vector )); BX_INSTR_INTERRUPT(_vector); invalidate_prefetch_q(); // Discard any traps and inhibits for new context; traps will // resume upon return. BX_CPU_THIS_PTR debug_trap = 0; BX_CPU_THIS_PTR inhibit_mask = 0; #if BX_CPU_LEVEL >= 2 // unsigned prev_errno; BX_DEBUG(("intel_interrupt(): _vector = %u, INT = %u, EXT = %u", (unsigned) _vector, (unsigned) is_INT, (unsigned) BX_CPU_THIS_PTR EXT)); #if (X86CPU_MSWIN_MSDOS==1) BX_CPU_THIS_PTR save_eflags = BX_CPU_THIS_PTR eflags; #endif BX_CPU_THIS_PTR save_cs = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS]; BX_CPU_THIS_PTR save_ss = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS]; BX_CPU_THIS_PTR save_eip = X86_EIP; BX_CPU_THIS_PTR save_esp = X86_ESP; // prev_errno = BX_CPU_THIS_PTR errorno; if(!real_mode()) { Bit32u dword1, dword2; bx_descriptor_t gate_descriptor, cs_descriptor; bx_selector_t cs_selector; Bit16u raw_tss_selector; bx_selector_t tss_selector; bx_descriptor_t tss_descriptor; Bit16u gate_dest_selector; Bit32u gate_dest_offset; // intel_interrupt _vector must be within IDT table limits, // else #GP(_vector number*8 + 2 + EXT) if ( (_vector*8 + 7) > BX_CPU_THIS_PTR idtr.limit) { BX_DEBUG(("IDT.limit = %04x", (unsigned) BX_CPU_THIS_PTR idtr.limit)); BX_DEBUG(("IDT.base = %06x", (unsigned) BX_CPU_THIS_PTR idtr.base)); BX_DEBUG(("intel_interrupt _vector must be within IDT table limits")); BX_DEBUG(("bailing")); BX_DEBUG(("intel_interrupt(): _vector > idtr.limit")); exception(BX_GP_EXCEPTION, _vector*8 + 2, 0); } // descriptor AR byte must indicate intel_interrupt gate, trap gate, // or task gate, else #GP(_vector*8 + 2 + EXT) BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR idtr.base + _vector*8, 4, 0, BX_READ, &dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR idtr.base + _vector*8 + 4, 4, 0, BX_READ, &dword2); parse_descriptor(dword1, dword2, &gate_descriptor); if ( (gate_descriptor.valid==0) || gate_descriptor.segment) { BX_DEBUG(("intel_interrupt(): gate descriptor is not valid sys seg")); exception(BX_GP_EXCEPTION, _vector*8 + 2, 0); } switch (gate_descriptor.type) { case 5: // task gate case 6: // 286 intel_interrupt gate case 7: // 286 trap gate case 14: // 386 intel_interrupt gate case 15: // 386 trap gate break; default: BX_DEBUG(("intel_interrupt(): gate.type(%u) != {5,6,7,14,15}", (unsigned) gate_descriptor.type)); exception(BX_GP_EXCEPTION, _vector*8 + 2, 0); return; } // if software intel_interrupt, then gate descripor DPL must be >= CPL, // else #GP(_vector * 8 + 2 + EXT) if (is_INT && (gate_descriptor.dpl < CPL)) { /* ??? */ BX_DEBUG(("intel_interrupt(): is_INT && (dpl < CPL)")); exception(BX_GP_EXCEPTION, _vector*8 + 2, 0); return; } // Gate must be present, else #NP(_vector * 8 + 2 + EXT) if (gate_descriptor.p == 0) { BX_DEBUG(("intel_interrupt(): p == 0")); exception(BX_NP_EXCEPTION, _vector*8 + 2, 0); } switch (gate_descriptor.type) { case 5: // 286/386 task gate // examine selector to TSS, given in task gate descriptor raw_tss_selector = gate_descriptor.u.taskgate.tss_selector; parse_selector(raw_tss_selector, &tss_selector); // must specify global in the local/global bit, // else #TS(TSS selector) // +++ // 486/Pent books say #TSS(selector) // PPro+ says #GP(selector) if (tss_selector.ti) { BX_PANIC(("intel_interrupt: tss_selector.ti=1")); exception(BX_TS_EXCEPTION, raw_tss_selector & 0xfffc, 0); return; } // index must be within GDT limits, else #TS(TSS selector) fetch_raw_descriptor(&tss_selector, &dword1, &dword2, BX_TS_EXCEPTION); // AR byte must specify available TSS, // else #TS(TSS selector) parse_descriptor(dword1, dword2, &tss_descriptor); if (tss_descriptor.valid==0 || tss_descriptor.segment) { BX_PANIC(("exception: TSS selector points to bad TSS")); exception(BX_TS_EXCEPTION, raw_tss_selector & 0xfffc, 0); return; } if (tss_descriptor.type!=9 && tss_descriptor.type!=1) { BX_PANIC(("exception: TSS selector points to bad TSS")); exception(BX_TS_EXCEPTION, raw_tss_selector & 0xfffc, 0); return; } // TSS must be present, else #NP(TSS selector) // done in task_switch() // switch tasks with nesting to TSS task_switch(&tss_selector, &tss_descriptor, BX_TASK_FROM_CALL_OR_INT, dword1, dword2); // if intel_interrupt was caused by fault with error code // stack limits must allow push of 2 more bytes, else #SS(0) // push error code onto stack //??? push_16 vs push_32 if ( is_error_code ) { //if (tss_descriptor.type==9) if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b) call_push_32(error_code); else call_push_16(error_code); } // instruction pointer must be in CS limit, else #GP(0) //if (BX_EIP > cs_descriptor.u.segment.limit_scaled) {} if (X86_EIP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled) { BX_PANIC(("exception(): eIP > CS.limit")); exception(BX_GP_EXCEPTION, 0x0000, 0); } return; break; case 6: // 286 intel_interrupt gate case 7: // 286 trap gate case 14: // 386 intel_interrupt gate case 15: // 386 trap gate if ( gate_descriptor.type >= 14 ) { // 386 gate gate_dest_selector = gate_descriptor.u.gate386.dest_selector; gate_dest_offset = gate_descriptor.u.gate386.dest_offset; } else { // 286 gate gate_dest_selector = gate_descriptor.u.gate286.dest_selector; gate_dest_offset = gate_descriptor.u.gate286.dest_offset; } // examine CS selector and descriptor given in gate descriptor // selector must be non-null else #GP(EXT) if ( (gate_dest_selector & 0xfffc) == 0 ) { BX_PANIC(("int_trap_gate(): selector null")); exception(BX_GP_EXCEPTION, 0, 0); } parse_selector(gate_dest_selector, &cs_selector); // selector must be within its descriptor table limits // else #GP(selector+EXT) fetch_raw_descriptor(&cs_selector, &dword1, &dword2, BX_GP_EXCEPTION); parse_descriptor(dword1, dword2, &cs_descriptor); // descriptor AR byte must indicate code seg // and code segment descriptor DPL<=CPL, else #GP(selector+EXT) if ( cs_descriptor.valid==0 || cs_descriptor.segment==0 || cs_descriptor.u.segment.executable==0 || cs_descriptor.dpl>CPL ) { BX_DEBUG(("intel_interrupt(): not code segment")); exception(BX_GP_EXCEPTION, cs_selector.value & 0xfffc, 0); } // segment must be present, else #NP(selector + EXT) if ( cs_descriptor.p==0 ) { BX_DEBUG(("intel_interrupt(): segment not present")); exception(BX_NP_EXCEPTION, cs_selector.value & 0xfffc, 0); } // if code segment is non-conforming and DPL < CPL then // INTERRUPT TO INNER PRIVILEGE: if ( cs_descriptor.u.segment.c_ed==0 && cs_descriptor.dpl=14) { // 386 int/trap gate // new stack must have room for 20|24 bytes, else #SS(0) if ( is_error_code ) bytes = 24; else bytes = 20; if (v8086_mode()) bytes += 16; } else { // new stack must have room for 10|12 bytes, else #SS(0) if ( is_error_code ) bytes = 12; else bytes = 10; if (v8086_mode()) { bytes += 8; BX_PANIC(("intel_interrupt: int/trap gate VM")); } } // 486,Pentium books // new stack must have room for 10/12 bytes, else #SS(0) 486 book // PPro+ // new stack must have room for 10/12 bytes, else #SS(seg selector) if ( !can_push(&ss_descriptor, ESP_for_cpl_x, bytes) ) { BX_PANIC(("intel_interrupt(): new stack doesn't have room for %u bytes", (unsigned) bytes)); // SS(???) } // IP must be within CS segment boundaries, else #GP(0) if (gate_dest_offset > cs_descriptor.u.segment.limit_scaled) { BX_PANIC(("intel_interrupt(): gate eIP > CS.limit")); exception(BX_GP_EXCEPTION, 0, 0); } old_ESP = X86_ESP; old_SS = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value; old_EIP = X86_EIP; old_CS = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; // load new SS:SP values from TSS load_ss(&ss_selector, &ss_descriptor, cs_descriptor.dpl); if (ss_descriptor.u.segment.d_b) X86_ESP = ESP_for_cpl_x; else X86_SP = ESP_for_cpl_x; // leave upper 16bits // load new CS:IP values from gate // set CPL to new code segment DPL // set RPL of CS to CPL load_cs(&cs_selector, &cs_descriptor, cs_descriptor.dpl); X86_EIP = gate_dest_offset; if (gate_descriptor.type>=14) { // 386 int/trap gate if (v8086_mode()) { call_push_32(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value); call_push_32(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value); call_push_32(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value); call_push_32(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = 0; } // push long pointer to old stack onto new stack call_push_32(old_SS); call_push_32(old_ESP); // push EFLAGS call_push_32(read_eflags()); // push long pointer to return address onto new stack call_push_32(old_CS); call_push_32(old_EIP); if ( is_error_code ) call_push_32(error_code); } else { // 286 int/trap gate if (v8086_mode()) { BX_PANIC(("286 int/trap gate, VM")); } // push long pointer to old stack onto new stack call_push_16(old_SS); call_push_16(old_ESP); // ignores upper 16bits // push FLAGS call_push_16(read_flags()); // push return address onto new stack call_push_16(old_CS); call_push_16(old_EIP); // ignores upper 16bits if ( is_error_code ) call_push_16(error_code); } // if INTERRUPT GATE set IF to 0 if ( !(gate_descriptor.type & 1) ) // even is int-gate BX_CPU_THIS_PTR eflags.if_ = 0; BX_CPU_THIS_PTR eflags.tf = 0; BX_CPU_THIS_PTR eflags.vm = 0; BX_CPU_THIS_PTR eflags.rf = 0; BX_CPU_THIS_PTR eflags.nt = 0; return; } if (v8086_mode()) { exception(BX_GP_EXCEPTION, cs_selector.value & 0xfffc, 0); } // if code segment is conforming OR code segment DPL = CPL then // INTERRUPT TO SAME PRIVILEGE LEVEL: if ( cs_descriptor.u.segment.c_ed==1 || cs_descriptor.dpl==CPL ) { int bytes; Bit32u temp_ESP; if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; BX_DEBUG(("int_trap_gate286(): INTERRUPT TO SAME PRIVILEGE")); // Current stack limits must allow pushing 6|8 bytes, else #SS(0) if (gate_descriptor.type >= 14) { // 386 gate if ( is_error_code ) bytes = 16; else bytes = 12; } else { // 286 gate if ( is_error_code ) bytes = 8; else bytes = 6; } if ( !can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, bytes) ) { BX_DEBUG(("intel_interrupt(): stack doesn't have room")); exception(BX_SS_EXCEPTION, 0, 0); } // eIP must be in CS limit else #GP(0) if (gate_dest_offset > cs_descriptor.u.segment.limit_scaled) { BX_PANIC(("intel_interrupt(): IP > cs descriptor limit")); exception(BX_GP_EXCEPTION, 0, 0); } // push flags onto stack // push current CS selector onto stack // push return offset onto stack if (gate_descriptor.type >= 14) { // 386 gate call_push_32(read_eflags()); call_push_32(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); call_push_32(X86_EIP); if ( is_error_code ) call_push_32(error_code); } else { // 286 gate call_push_16(read_flags()); call_push_16(BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); call_push_16(X86_IP); if ( is_error_code ) call_push_16(error_code); } // load CS:IP from gate // load CS descriptor // set the RPL field of CS to CPL load_cs(&cs_selector, &cs_descriptor, CPL); X86_EIP = gate_dest_offset; // if intel_interrupt gate then set IF to 0 if ( !(gate_descriptor.type & 1) ) // even is int-gate BX_CPU_THIS_PTR eflags.if_ = 0; BX_CPU_THIS_PTR eflags.tf = 0; BX_CPU_THIS_PTR eflags.nt = 0; BX_CPU_THIS_PTR eflags.vm = 0; BX_CPU_THIS_PTR eflags.rf = 0; return; } // else #GP(CS selector + ext) BX_DEBUG(("intel_interrupt: bad descriptor")); BX_DEBUG(("c_ed=%u, descriptor.dpl=%u, CPL=%u", (unsigned) cs_descriptor.u.segment.c_ed, (unsigned) cs_descriptor.dpl, (unsigned) CPL)); BX_DEBUG(("cs.segment = %u", (unsigned) cs_descriptor.segment)); exception(BX_GP_EXCEPTION, cs_selector.value & 0xfffc, 0); break; default: BX_PANIC(("bad descriptor type in intel_interrupt()!")); break; } } else #endif { /* real mode */ Bit16u cs_selector, ip; #define _T_DEBUG_ 0 #if _T_DEBUG_ bx_segment_reg_t *tempseg; #endif if ( (_vector*4+3) > BX_CPU_THIS_PTR idtr.limit ) BX_PANIC(("intel_interrupt(real mode) _vector > limit")); call_push_16(read_flags()); cs_selector = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; call_push_16(cs_selector); ip = BX_CPU_THIS_PTR program_visible_eip; call_push_16(ip); #if _T_DEBUG_ tempseg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS]; printf("_vector==%02x, ip == %04x,cs_selector == %04x\n",_vector,ip,cs_selector); printf("base ==%08x, cs_selector == %04x,eip == %08x\n",tempseg->cache.u.segment.base,tempseg->selector.value,X86_EIP); #endif BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR idtr.base + 4 * _vector, 2, 0, BX_READ, &ip); X86_EIP = ip; BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR idtr.base + 4 * _vector + 2, 2, 0, BX_READ, &cs_selector); load_seg_reg(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS], cs_selector); #if _T_DEBUG_ tempseg = &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS]; printf("=_vector==%02x, ip == %04x,cs_selector == %04x\n",_vector,ip,cs_selector); printf("=base ==%08x, cs_selector == %04x,eip == %08x\n",tempseg->cache.u.segment.base,tempseg->selector.value,X86_EIP); #endif /* INT affects the following flags: I,T */ BX_CPU_THIS_PTR eflags.if_ = 0; BX_CPU_THIS_PTR eflags.tf = 0; #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR eflags.ac = 0; #endif BX_CPU_THIS_PTR eflags.rf = 0; } } void BX_CPU_C::exception(unsigned _vector, Bit16u error_code, Boolean is_INT) // _vector: 0..255: _vector in IDT // error_code: if exception generates and error, push this error code { Boolean push_error; Bit8u exception_type; unsigned prev_errno; #if BX_DEBUGGER if (bx_guard.special_unwind_stack) { BX_INFO (("exception() returning early because special_unwind_stack is set")); return; } #endif //BX_DEBUG(( "::exception(%u)", _vector )); BX_INSTR_EXCEPTION(_vector); invalidate_prefetch_q(); BX_CPU_THIS_PTR intNumber = _vector; UNUSED(is_INT); BX_DEBUG(("exception(%02x h)", (unsigned) _vector)); // if not initial error, restore previous register values from // previous attempt to handle exception if (BX_CPU_THIS_PTR errorno) { BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS] = BX_CPU_THIS_PTR save_cs; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS] = BX_CPU_THIS_PTR save_ss; X86_EIP = BX_CPU_THIS_PTR save_eip; X86_ESP = BX_CPU_THIS_PTR save_esp; } BX_CPU_THIS_PTR errorno++; if (BX_CPU_THIS_PTR errorno >= 3) { BX_PANIC(("exception(): 3rd exception with no resolution")); BX_ERROR(("WARNING: Any simulation after this point is completely bogus.")); #if BX_DEBUGGER bx_guard.special_unwind_stack = true; #endif shutdown_cpu(); return; } /* careful not to get here with curr_exception[1]==DOUBLE_FAULT */ /* ...index on DOUBLE_FAULT below, will be out of bounds */ /* if 1st was a double fault (software INT?), then shutdown */ if ( (BX_CPU_THIS_PTR errorno==2) && (BX_CPU_THIS_PTR curr_exception[0]==BX_ET_DOUBLE_FAULT) ) { BX_PANIC(("exception(): triple fault encountered")); BX_ERROR(("WARNING: Any simulation after this point is completely bogus.")); #if BX_DEBUGGER bx_guard.special_unwind_stack = true; #endif shutdown_cpu(); return; } /* ??? this is not totally correct, should be done depending on * _vector */ /* backup IP to value before error occurred */ X86_EIP = BX_CPU_THIS_PTR prev_eip; X86_ESP = BX_CPU_THIS_PTR prev_esp; // note: fault-class exceptions _except_ #DB set RF in // eflags image. switch (_vector) { case 0: // DIV by 0 push_error = 0; exception_type = BX_ET_CONTRIBUTORY; BX_CPU_THIS_PTR eflags.rf = 1; break; case 1: // debug exceptions push_error = 0; exception_type = BX_ET_BENIGN; break; case 2: // NMI push_error = 0; exception_type = BX_ET_BENIGN; break; case 3: // breakpoint push_error = 0; exception_type = BX_ET_BENIGN; break; case 4: // overflow push_error = 0; exception_type = BX_ET_BENIGN; break; case 5: // bounds check push_error = 0; exception_type = BX_ET_BENIGN; BX_CPU_THIS_PTR eflags.rf = 1; break; case 6: // invalid opcode push_error = 0; exception_type = BX_ET_BENIGN; BX_CPU_THIS_PTR eflags.rf = 1; break; case 7: // device not available push_error = 0; exception_type = BX_ET_BENIGN; BX_CPU_THIS_PTR eflags.rf = 1; break; case 8: // double fault push_error = 1; exception_type = BX_ET_DOUBLE_FAULT; break; case 9: // coprocessor segment overrun (286,386 only) push_error = 0; exception_type = BX_ET_CONTRIBUTORY; BX_CPU_THIS_PTR eflags.rf = 1; BX_PANIC(("exception(9): unfinished")); break; case 10: // invalid TSS push_error = 1; exception_type = BX_ET_CONTRIBUTORY; error_code = (error_code & 0xfffe) | BX_CPU_THIS_PTR EXT; BX_CPU_THIS_PTR eflags.rf = 1; break; case 11: // segment not present push_error = 1; exception_type = BX_ET_CONTRIBUTORY; error_code = (error_code & 0xfffe) | BX_CPU_THIS_PTR EXT; BX_CPU_THIS_PTR eflags.rf = 1; break; case 12: // stack fault push_error = 1; exception_type = BX_ET_CONTRIBUTORY; error_code = (error_code & 0xfffe) | BX_CPU_THIS_PTR EXT; BX_CPU_THIS_PTR eflags.rf = 1; break; case 13: // general protection push_error = 1; exception_type = BX_ET_CONTRIBUTORY; error_code = (error_code & 0xfffe) | BX_CPU_THIS_PTR EXT; BX_CPU_THIS_PTR eflags.rf = 1; break; case 14: // page fault push_error = 1; exception_type = BX_ET_PAGE_FAULT; // ??? special format error returned BX_CPU_THIS_PTR eflags.rf = 1; break; case 15: // reserved BX_PANIC(("exception(15): reserved")); push_error = 0; // keep compiler happy for now exception_type = 0; // keep compiler happy for now break; case 16: // floating-point error push_error = 0; exception_type = BX_ET_BENIGN; BX_CPU_THIS_PTR eflags.rf = 1; break; #if BX_CPU_LEVEL >= 4 case 17: // alignment check BX_PANIC(("exception(): alignment-check, _vector 17 unimplemented")); push_error = 0; // keep compiler happy for now exception_type = 0; // keep compiler happy for now BX_CPU_THIS_PTR eflags.rf = 1; break; #endif #if BX_CPU_LEVEL >= 5 case 18: // machine check BX_PANIC(("exception(): machine-check, _vector 18 unimplemented")); push_error = 0; // keep compiler happy for now exception_type = 0; // keep compiler happy for now break; #endif default: BX_PANIC(("exception(%u): bad _vector", (unsigned) _vector)); push_error = 0; // keep compiler happy for now exception_type = 0; // keep compiler happy for now break; } if (exception_type != BX_ET_PAGE_FAULT) { // Page faults have different format error_code = (error_code & 0xfffe) | BX_CPU_THIS_PTR EXT; } BX_CPU_THIS_PTR EXT = 1; /* if we've already had 1st exception, see if 2nd causes a * Double Fault instead. Otherwise, just record 1st exception */ if (BX_CPU_THIS_PTR errorno >= 2) { if (is_exception_OK[BX_CPU_THIS_PTR curr_exception[0]][exception_type]) BX_CPU_THIS_PTR curr_exception[1] = exception_type; else { BX_CPU_THIS_PTR curr_exception[1] = BX_ET_DOUBLE_FAULT; _vector = 8; } } else { BX_CPU_THIS_PTR curr_exception[0] = exception_type; } #if BX_CPU_LEVEL >= 2 if (!real_mode()) { prev_errno = BX_CPU_THIS_PTR errorno; BX_CPU_THIS_PTR intel_interrupt(_vector, 0, push_error, error_code); // if (BX_CPU_THIS_PTR errorno > prev_errno) { // BX_INFO(("segment_exception(): errorno changed")); // longjmp(jmp_buf_env, 1); // go back to main decode loop // return; // } // if (push_error) { // /* push error code on stack, after handling intel_interrupt */ // /* pushed as a word or dword depending upon default size ??? */ // if (ss.cache.u.segment.d_b) // call_push_32((Bit32u) error_code); /* upper bits reserved */ // else // call_push_16(error_code); // if (BX_CPU_THIS_PTR errorno > prev_errno) { // BX_PANIC(("segment_exception(): errorno changed")); // return; // } // } BX_CPU_THIS_PTR errorno = 0; // error resolved longjmp(BX_CPU_THIS_PTR jmp_buf_env, 1); // go back to main decode loop } else // real mode #endif { // not INT, no error code pushed BX_CPU_THIS_PTR intel_interrupt(_vector, 0, 0, 0); BX_CPU_THIS_PTR errorno = 0; // error resolved longjmp(BX_CPU_THIS_PTR jmp_buf_env, 1); // go back to main decode loop } } int BX_CPU_C::int_number(bx_segment_reg_t *seg) { if (seg == &BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS]) return(BX_SS_EXCEPTION); else return(BX_GP_EXCEPTION); } void BX_CPU_C::shutdown_cpu(void) { #if BX_CPU_LEVEL > 2 BX_PANIC(("shutdown_cpu(): not implemented for 386")); #endif invalidate_prefetch_q(); BX_PANIC(("shutdown_cpu(): not finished")); longjmp(BX_CPU_THIS_PTR jmp_buf_env, 2); // go back to main decode loop } ================================================ FILE: Project/IntelCPU/Source/fetch.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: fetchdecode.cc,v 1.7 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" /////////////////////////// // prefix bytes // opcode bytes // modrm/sib // address displacement // immediate constant /////////////////////////// // sign extended to osize: // 6a push ib // 6b imul gvevib // 70..7f jo..jnle // 83 G1 0..7 ADD..CMP EvIb // is 6b imul_gvevib sign extended? don't think // I'm sign extending it properly in old decode/execute //check all the groups. Make sure to add duplicates rather // than error. // mark instructions as changing control transfer, then // don't always load from fetch_ptr, etc. // cant use immediate as another because of Group3 where // some have immediate and some don't, and those won't // be picked up by logic until indirection. // get attr and execute ptr at same time // maybe move 16bit only i's like MOV_EwSw, MOV_SwEw // to 32 bit modules. // use 0F as a prefix too? void BxResolveError(bxInstruction_c *); #if BX_DYNAMIC_TRANSLATION // For 16-bit address mode, this matrix describes the registers // used to formulate the offset, indexed by the RM field. // This info is needed by the dynamic translation code for dataflow. static unsigned BxMemRegsUsed16[8] = { (1<<3) | (1<<6), // BX + SI (1<<3) | (1<<7), // BX + DI (1<<5) | (1<<6), // BP + SI (1<<5) | (1<<7), // BP + DI (1<<6), // SI (1<<7), // DI (1<<5), // BP (1<<3) // BX }; #endif static BxExecutePtr_t BxResolve16Mod0[8] = { &BX_CPU_C::Resolve16Mod0Rm0, &BX_CPU_C::Resolve16Mod0Rm1, &BX_CPU_C::Resolve16Mod0Rm2, &BX_CPU_C::Resolve16Mod0Rm3, &BX_CPU_C::Resolve16Mod0Rm4, &BX_CPU_C::Resolve16Mod0Rm5, &BX_CPU_C::Resolve16Mod0Rm6, // d16, no registers used &BX_CPU_C::Resolve16Mod0Rm7 }; static BxExecutePtr_t BxResolve16Mod1or2[8] = { &BX_CPU_C::Resolve16Mod1or2Rm0, &BX_CPU_C::Resolve16Mod1or2Rm1, &BX_CPU_C::Resolve16Mod1or2Rm2, &BX_CPU_C::Resolve16Mod1or2Rm3, &BX_CPU_C::Resolve16Mod1or2Rm4, &BX_CPU_C::Resolve16Mod1or2Rm5, &BX_CPU_C::Resolve16Mod1or2Rm6, &BX_CPU_C::Resolve16Mod1or2Rm7 }; static BxExecutePtr_t BxResolve32Mod0[8] = { &BX_CPU_C::Resolve32Mod0Rm0, &BX_CPU_C::Resolve32Mod0Rm1, &BX_CPU_C::Resolve32Mod0Rm2, &BX_CPU_C::Resolve32Mod0Rm3, &BX_CPU_C::Resolve32Mod0Rm4, // escape to 2-byte &BX_CPU_C::Resolve32Mod0Rm5, // d32, no registers used &BX_CPU_C::Resolve32Mod0Rm6, &BX_CPU_C::Resolve32Mod0Rm7 }; static BxExecutePtr_t BxResolve32Mod1or2[8] = { &BX_CPU_C::Resolve32Mod1or2Rm0, &BX_CPU_C::Resolve32Mod1or2Rm1, &BX_CPU_C::Resolve32Mod1or2Rm2, &BX_CPU_C::Resolve32Mod1or2Rm3, &BX_CPU_C::Resolve32Mod1or2Rm4, // escape to 2-byte &BX_CPU_C::Resolve32Mod1or2Rm5, &BX_CPU_C::Resolve32Mod1or2Rm6, &BX_CPU_C::Resolve32Mod1or2Rm7 }; static BxExecutePtr_t BxResolve32Mod1or2EffectAddressBaseIndexScaled[0x100] = { &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x00, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x01, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x02, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x03, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x04, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x05, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x06, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x07, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x08, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x09, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x10, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x11, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x12, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x13, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x14, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x15, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x16, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x17, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x18, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x19, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x20, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x21, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x22, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x23, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x24, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x25, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x26, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x27, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x28, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x29, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x30, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x31, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x32, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x33, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x34, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x35, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x36, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x37, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x38, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x39, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x40, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x41, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x42, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x43, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x44, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x45, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x46, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x47, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x48, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x49, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x50, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x51, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x52, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x53, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x54, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x55, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x56, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x57, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x58, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x59, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x60, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x61, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x62, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x63, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x64, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x65, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x66, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x67, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x68, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x69, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x70, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x71, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x72, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x73, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x74, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x75, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x76, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x77, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x78, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x79, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x80, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x81, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x82, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x83, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x84, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x85, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x86, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x87, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x88, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x89, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x90, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x91, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x92, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x93, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x94, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x95, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x96, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x97, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x98, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x99, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9a, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9b, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9c, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9d, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9e, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9f, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa0, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa1, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa2, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa3, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa4, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa5, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa6, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa7, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa8, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa9, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xaa, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xab, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xac, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xad, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xae, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xaf, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb0, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb1, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb2, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb3, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb4, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb5, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb6, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb7, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb8, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb9, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xba, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbb, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbc, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbd, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbe, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbf, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc0, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc1, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc2, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc3, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc4, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc5, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc6, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc7, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc8, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc9, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xca, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcb, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcc, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcd, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xce, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcf, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd0, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd1, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd2, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd3, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd4, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd5, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd6, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd7, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd8, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd9, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xda, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdb, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdc, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdd, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xde, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdf, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe0, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe1, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe2, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe3, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe4, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe5, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe6, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe7, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe8, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe9, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xea, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xeb, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xec, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xed, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xee, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xef, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf0, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf1, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf2, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf3, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf4, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf5, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf6, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf7, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf8, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf9, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfa, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfb, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfc, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfd, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfe, &BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xff }; static BxExecutePtr_t BxResolve32Mod0EffectAddressBaseIndexScaled[0x100] = { &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x00, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x01, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x02, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x03, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x04, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x05, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x06, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x07, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x08, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x09, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x10, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x11, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x12, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x13, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x14, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x15, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x16, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x17, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x18, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x19, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x20, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x21, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x22, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x23, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x24, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x25, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x26, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x27, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x28, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x29, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x30, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x31, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x32, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x33, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x34, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x35, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x36, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x37, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x38, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x39, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x40, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x41, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x42, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x43, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x44, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x45, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x46, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x47, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x48, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x49, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x50, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x51, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x52, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x53, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x54, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x55, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x56, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x57, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x58, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x59, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x60, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x61, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x62, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x63, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x64, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x65, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x66, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x67, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x68, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x69, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x70, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x71, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x72, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x73, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x74, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x75, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x76, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x77, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x78, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x79, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x80, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x81, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x82, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x83, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x84, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x85, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x86, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x87, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x88, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x89, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x90, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x91, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x92, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x93, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x94, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x95, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x96, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x97, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x98, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x99, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9a, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9b, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9c, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9d, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9e, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9f, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa0, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa1, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa2, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa3, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa4, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa5, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa6, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa7, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa8, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa9, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xaa, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xab, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xac, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xad, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xae, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xaf, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb0, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb1, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb2, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb3, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb4, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb5, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb6, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb7, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb8, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb9, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xba, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbb, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbc, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbd, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbe, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbf, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc0, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc1, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc2, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc3, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc4, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc5, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc6, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc7, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc8, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc9, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xca, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcb, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcc, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcd, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xce, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcf, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd0, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd1, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd2, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd3, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd4, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd5, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd6, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd7, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd8, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd9, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xda, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdb, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdc, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdd, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xde, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdf, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe0, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe1, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe2, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe3, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe4, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe5, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe6, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe7, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe8, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe9, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xea, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xeb, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xec, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xed, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xee, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xef, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf0, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf1, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf2, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf3, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf4, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf5, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf6, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf7, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf8, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf9, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfa, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfb, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfc, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfd, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfe, &BX_CPU_C::Resolve32Mod0EffectAddress_sib0xff }; const BxOpcodeInfo_t BxOpcodeInfoG_MOVSB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::MOVSB_XbYb_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::MOVSB_XbYb_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::MOVSB_XbYb_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::MOVSB_XbYb_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MOVSB_XbYb_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::MOVSB_XbYb_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::MOVSB_XbYb_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::MOVSB_XbYb_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_MOVSW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::MOVSW_XvYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::MOVSW_XvYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::MOVSW_XvYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::MOVSW_XvYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MOVSW_XvYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::MOVSW_XvYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::MOVSW_XvYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::MOVSW_XvYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_MOVSD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::MOVSD_XvYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::MOVSD_XvYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::MOVSD_XvYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::MOVSD_XvYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MOVSD_XvYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::MOVSD_XvYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::MOVSD_XvYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::MOVSD_XvYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_CMPSB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::CMPSB_XbYb_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::CMPSB_XbYb_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::CMPSB_XbYb_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::CMPSB_XbYb_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::CMPSB_XbYb_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::CMPSB_XbYb_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::CMPSB_XbYb_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMPSB_XbYb_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_CMPSW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::CMPSW_XvYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::CMPSW_XvYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::CMPSW_XvYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::CMPSW_XvYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::CMPSW_XvYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::CMPSW_XvYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::CMPSW_XvYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMPSW_XvYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_CMPSD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::CMPSD_XvYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::CMPSD_XvYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::CMPSD_XvYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::CMPSD_XvYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::CMPSD_XvYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::CMPSD_XvYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::CMPSD_XvYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMPSD_XvYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_SCASB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::SCASB_ALYb_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::SCASB_ALYb_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::SCASB_ALYb_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SCASB_ALYb_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SCASB_ALYb_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SCASB_ALYb_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SCASB_ALYb_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SCASB_ALYb_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_SCASW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::SCASW_eAXYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::SCASW_eAXYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::SCASW_eAXYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SCASW_eAXYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SCASW_eAXYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SCASW_eAXYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SCASW_eAXYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SCASW_eAXYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_SCASD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::SCASD_eAXYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::SCASD_eAXYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::SCASD_eAXYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SCASD_eAXYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SCASD_eAXYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SCASD_eAXYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SCASD_eAXYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SCASD_eAXYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_STOSB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::STOSB_ALYb_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::STOSB_ALYb_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::STOSB_ALYb_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::STOSB_ALYb_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::STOSB_ALYb_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::STOSB_ALYb_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::STOSB_ALYb_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::STOSB_ALYb_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_STOSW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::STOSW_eAXYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::STOSW_eAXYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::STOSW_eAXYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::STOSW_eAXYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::STOSW_eAXYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::STOSW_eAXYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::STOSW_eAXYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::STOSW_eAXYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_STOSD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::STOSD_eAXYv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::STOSD_eAXYv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::STOSD_eAXYv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::STOSD_eAXYv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::STOSD_eAXYv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::STOSD_eAXYv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::STOSD_eAXYv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::STOSD_eAXYv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_LODSB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::LODSB_ALXb_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::LODSB_ALXb_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::LODSB_ALXb_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::LODSB_ALXb_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::LODSB_ALXb_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::LODSB_ALXb_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::LODSB_ALXb_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::LODSB_ALXb_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_LODSW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::LODSW_eAXXv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::LODSW_eAXXv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::LODSW_eAXXv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::LODSW_eAXXv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::LODSW_eAXXv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::LODSW_eAXXv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::LODSW_eAXXv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::LODSW_eAXXv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_LODSD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::LODSD_eAXXv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::LODSD_eAXXv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::LODSD_eAXXv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::LODSD_eAXXv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::LODSD_eAXXv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::LODSD_eAXXv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::LODSD_eAXXv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::LODSD_eAXXv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_OUTSB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::OUTSB_DXXb_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::OUTSB_DXXb_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::OUTSB_DXXb_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::OUTSB_DXXb_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::OUTSB_DXXb_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::OUTSB_DXXb_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::OUTSB_DXXb_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::OUTSB_DXXb_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_OUTSW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::OUTSW_DXXv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::OUTSW_DXXv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::OUTSW_DXXv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::OUTSW_DXXv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::OUTSW_DXXv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::OUTSW_DXXv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::OUTSW_DXXv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::OUTSW_DXXv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_OUTSD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::OUTSD_DXXv_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::OUTSD_DXXv_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::OUTSD_DXXv_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::OUTSD_DXXv_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::OUTSD_DXXv_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::OUTSD_DXXv_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::OUTSD_DXXv_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::OUTSD_DXXv_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_INSB[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::INSB_YbDX_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::INSB_YbDX_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::INSB_YbDX_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::INSB_YbDX_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::INSB_YbDX_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::INSB_YbDX_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::INSB_YbDX_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::INSB_YbDX_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_INSW[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::INSW_YvDX_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::INSW_YvDX_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::INSW_YvDX_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::INSW_YvDX_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::INSW_YvDX_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::INSW_YvDX_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::INSW_YvDX_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::INSW_YvDX_E32_repf3, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG_INSD[8] = { // attributes defined in main area /* 0 */ { 0, &BX_CPU_C::INSD_YvDX_E16_rep__, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::INSD_YvDX_E16_rep__, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::INSD_YvDX_E16_repf2, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::INSD_YvDX_E16_repf3, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::INSD_YvDX_E32_rep__, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::INSD_YvDX_E32_rep__, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::INSD_YvDX_E32_repf2, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::INSD_YvDX_E32_repf3, NULL, NULL } }; //+=================================================== const BxOpcodeInfo_t BxOpcodeInfoG1EGbIb[] = { /* 0 */ { BxImmediate_Ib, &BX_CPU_C::ADD_EGbIb, NULL, NULL }, /* 1 */ { BxImmediate_Ib, &BX_CPU_C:: OR_EGbIb, NULL, NULL }, /* 2 */ { BxImmediate_Ib, &BX_CPU_C::ADC_EGbIb, NULL, NULL }, /* 3 */ { BxImmediate_Ib, &BX_CPU_C::SBB_EGbIb, NULL, NULL }, /* 4 */ { BxImmediate_Ib, &BX_CPU_C::AND_EGbIb, NULL, NULL }, /* 5 */ { BxImmediate_Ib, &BX_CPU_C::SUB_EGbIb, NULL, NULL }, /* 6 */ { BxImmediate_Ib, &BX_CPU_C::XOR_EGbIb, NULL, NULL }, /* 7 */ { BxImmediate_Ib, &BX_CPU_C::CMP_EGbIb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EEbIb[] = { /* 0 */ { BxImmediate_Ib, &BX_CPU_C::ADD_EEbIb, NULL, NULL }, /* 1 */ { BxImmediate_Ib, &BX_CPU_C:: OR_EEbIb, NULL, NULL }, /* 2 */ { BxImmediate_Ib, &BX_CPU_C::ADC_EEbIb, NULL, NULL }, /* 3 */ { BxImmediate_Ib, &BX_CPU_C::SBB_EEbIb, NULL, NULL }, /* 4 */ { BxImmediate_Ib, &BX_CPU_C::AND_EEbIb, NULL, NULL }, /* 5 */ { BxImmediate_Ib, &BX_CPU_C::SUB_EEbIb, NULL, NULL }, /* 6 */ { BxImmediate_Ib, &BX_CPU_C::XOR_EEbIb, NULL, NULL }, /* 7 */ { BxImmediate_Ib, &BX_CPU_C::CMP_EEbIb, NULL, NULL }, }; const BxOpcodeInfo_t BxOpcodeInfoG1EGwIsb[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EGwIw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EGwIw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EGwIw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EGwIw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EGwIw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EGwIw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EGwIw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EGwIw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EEwIsb[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EEwIw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EEwIw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EEwIw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EEwIw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EEwIw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EEwIw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EEwIw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EEwIw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EGwIw[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EGwIw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EGwIw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EGwIw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EGwIw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EGwIw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EGwIw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EGwIw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EGwIw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EEwIw[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EEwIw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EEwIw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EEwIw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EEwIw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EEwIw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EEwIw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EEwIw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EEwIw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EGdIsb[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EGdId, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EGdId, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EGdId, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EGdId, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EGdId, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EGdId, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EGdId, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EGdId, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EEdIsb[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EEdId, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EEdId, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EEdId, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EEdId, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EEdId, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EEdId, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EEdId, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EEdId, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EGdId[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EGdId, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EGdId, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EGdId, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EGdId, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EGdId, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EGdId, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EGdId, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EGdId, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG1EEdId[] = { /* 0 */ { 0, &BX_CPU_C::ADD_EEdId, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C:: OR_EEdId, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::ADC_EEdId, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::SBB_EEdId, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::AND_EEdId, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SUB_EEdId, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::XOR_EEdId, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::CMP_EEdId, NULL, NULL } }; //----------------------------------------------------------- //----------------------------------------------------------- const BxOpcodeInfo_t BxOpcodeInfoG0x8fEGw[] = { /* 0 */ { 0, &BX_CPU_C::POP_EGw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0x8fEEw[] = { /* 0 */ { 0, &BX_CPU_C::POP_EEw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0x8fEGd[] = { /* 0 */ { 0, &BX_CPU_C::POP_EGd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0x8fEEd[] = { /* 0 */ { 0, &BX_CPU_C::POP_EEd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0xc6EGbIb[] = { /* 0 */ { 0, &BX_CPU_C::MOV_EGbIb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0xc6EEbIb[] = { /* 0 */ { 0, &BX_CPU_C::MOV_EEbIb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0xc7EGwIw[] = { /* 0 */ { 0, &BX_CPU_C::MOV_EGwIw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0xc7EEwIw[] = { /* 0 */ { 0, &BX_CPU_C::MOV_EEwIw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0xc7EGdId[] = { /* 0 */ { 0, &BX_CPU_C::MOV_EGdId, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG0xc7EEdId[] = { /* 0 */ { 0, &BX_CPU_C::MOV_EEdId, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; //----------------------------------------------------------- //ƼΪ ֽĵ5λ const BxOpcodeInfo_t BxOpcodeInfoG2EGbIb[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGb, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGb, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGb, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGb, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGb, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEbIb[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEb, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEb, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEb, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEb, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEb, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EGwIb[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEwIb[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EGdIb[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGd, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGd, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGd, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGd, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEdIb[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEd, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEd, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEd, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEd, NULL, NULL } }; //----------------------------------------------------------- //ƼĬΪ 1 const BxOpcodeInfo_t BxOpcodeInfoG2EGb_1[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGb, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGb, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGb, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGb, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGb, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEb_1[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEb, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEb, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEb, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEb, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEb, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EGw_1[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEw_1[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EGd_1[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGd, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGd, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGd, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGd, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEd_1[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEd, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEd, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEd, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEd, NULL, NULL } }; //----------------------------------------------------------- //ƼΪ cl Ĵĵ5λ const BxOpcodeInfo_t BxOpcodeInfoG2EGbCL[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGbCL, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGbCL, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGbCL, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGbCL, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGbCL, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGbCL, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGbCL, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGbCL, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEbCL[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEbCL, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEbCL, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEbCL, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEbCL, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEbCL, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEbCL, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEbCL, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEbCL, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EGwCL[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGwCL, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGwCL, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGwCL, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGwCL, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGwCL, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGwCL, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGwCL, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGwCL, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEwCL[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEwCL, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEwCL, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEwCL, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEwCL, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEwCL, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEwCL, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEwCL, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEwCL, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EGdCL[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EGdCL, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EGdCL, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EGdCL, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EGdCL, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EGdCL, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EGdCL, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EGdCL, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EGdCL, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG2EEdCL[] = { /* 0 */ { 0, &BX_CPU_C::ROL_EEdCL, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::ROR_EEdCL, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::RCL_EEdCL, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::RCR_EEdCL, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SHL_EEdCL, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::SHR_EEdCL, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::SHL_EEdCL, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::SAR_EEdCL, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG3EGb[] = { /* 0 */ { BxImmediate_Ib, &BX_CPU_C::TEST_EGbIb, NULL, NULL }, /* 1 */ { BxImmediate_Ib, &BX_CPU_C::TEST_EGbIb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::NOT_EGb, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::NEG_EGb, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MUL_ALEGb, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::IMUL_ALEGb, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::DIV_ALEGb, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::IDIV_ALEGb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG3EEb[] = { /* 0 */ { BxImmediate_Ib, &BX_CPU_C::TEST_EEbIb, NULL, NULL }, /* 1 */ { BxImmediate_Ib, &BX_CPU_C::TEST_EEbIb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::NOT_EEb, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::NEG_EEb, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MUL_ALEEb, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::IMUL_ALEEb, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::DIV_ALEEb, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::IDIV_ALEEb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG3EGw[] = { /* 0 */ { BxImmediate_Iw, &BX_CPU_C::TEST_EGwIw, NULL, NULL }, /* 1 */ { BxImmediate_Iw, &BX_CPU_C::TEST_EGwIw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::NOT_EGw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::NEG_EGw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MUL_AXEGw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::IMUL_AXEGw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::DIV_AXEGw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::IDIV_AXEGw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG3EEw[] = { /* 0 */ { BxImmediate_Iw, &BX_CPU_C::TEST_EEwIw, NULL, NULL }, /* 1 */ { BxImmediate_Iw, &BX_CPU_C::TEST_EEwIw, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::NOT_EEw, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::NEG_EEw, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MUL_AXEEw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::IMUL_AXEEw, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::DIV_AXEEw, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::IDIV_AXEEw, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG3EGd[] = { /* 0 */ { BxImmediate_Iv, &BX_CPU_C::TEST_EGdId, NULL, NULL }, /* 1 */ { BxImmediate_Iv, &BX_CPU_C::TEST_EGdId, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::NOT_EGd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::NEG_EGd, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MUL_EAXEGd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::IMUL_EAXEGd, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::DIV_EAXEGd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::IDIV_EAXEGd, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG3EEd[] = { /* 0 */ { BxImmediate_Iv, &BX_CPU_C::TEST_EEdId, NULL, NULL }, /* 1 */ { BxImmediate_Iv, &BX_CPU_C::TEST_EEdId, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::NOT_EEd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::NEG_EEd, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::MUL_EAXEEd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::IMUL_EAXEEd, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::DIV_EAXEEd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::IDIV_EAXEEd, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG4EGb[] = { /* 0 */ { 0, &BX_CPU_C::INC_EGb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::DEC_EGb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG4EEb[] = { /* 0 */ { 0, &BX_CPU_C::INC_EEb, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::DEC_EEb, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG5EGw[] = { /* 0 */ { 0, &BX_CPU_C::INC_EGw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::DEC_EGw, NULL, NULL }, /* 2 */ { BxBranch_absolute, &BX_CPU_C::CALL_EGw,NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { BxBranch_absolute, &BX_CPU_C::JMP_EGw, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::PUSH_EGw,NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG5EEw[] = { /* 0 */ { 0, &BX_CPU_C::INC_EEw, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::DEC_EEw, NULL, NULL }, /* 2 */ { BxBranch_absolute, &BX_CPU_C::CALL_EEw,NULL, NULL }, /* 3 */ { BxBranch_absolute, &BX_CPU_C::CALL16_Ep,NULL, NULL }, /* 4 */ { BxBranch_absolute, &BX_CPU_C::JMP_EEw, NULL, NULL }, /* 5 */ { BxBranch_absolute, &BX_CPU_C::JMP16_Ep,NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::PUSH_EEw,NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG5EGd[] = { /* 0 */ { 0, &BX_CPU_C::INC_EGd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::DEC_EGd, NULL, NULL }, /* 2 */ { BxBranch_absolute, &BX_CPU_C::CALL_EGd, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { BxBranch_absolute, &BX_CPU_C::JMP_EGd, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::PUSH_EGd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG5EEd[] = { /* 0 */ { 0, &BX_CPU_C::INC_EEd, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::DEC_EEd, NULL, NULL }, /* 2 */ { BxBranch_absolute, &BX_CPU_C::CALL_EEd, NULL, NULL }, /* 3 */ { BxBranch_absolute, &BX_CPU_C::CALL32_Ep, NULL, NULL }, /* 4 */ { BxBranch_absolute, &BX_CPU_C::JMP_EEd, NULL, NULL }, /* 5 */ { BxBranch_absolute, &BX_CPU_C::JMP32_Ep, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::PUSH_EEd, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG6[] = { /* 0 */ { 0, &BX_CPU_C::SLDT_Ew, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::STR_Ew, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::LLDT_Ew, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::LTR_Ew, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::VERR_Ew, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::VERW_Ew, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG7[] = { /* 0 */ { 0, &BX_CPU_C::SGDT_Ms, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::SIDT_Ms, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::LGDT_Ms, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::LIDT_Ms, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::SMSW_Ew, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::LMSW_Ew, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::INVLPG, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG8EGwIb[] = { /* 0 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { BxImmediate_Ib, &BX_CPU_C::BT_EGwIb, NULL, NULL }, /* 5 */ { BxImmediate_Ib, &BX_CPU_C::BTS_EGwIb, NULL, NULL }, /* 6 */ { BxImmediate_Ib, &BX_CPU_C::BTR_EGwIb, NULL, NULL }, /* 7 */ { BxImmediate_Ib, &BX_CPU_C::BTC_EGwIb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG8EEwIb[] = { /* 0 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { BxImmediate_Ib, &BX_CPU_C::BT_EEwIb, NULL, NULL }, /* 5 */ { BxImmediate_Ib, &BX_CPU_C::BTS_EEwIb, NULL, NULL }, /* 6 */ { BxImmediate_Ib, &BX_CPU_C::BTR_EEwIb, NULL, NULL }, /* 7 */ { BxImmediate_Ib, &BX_CPU_C::BTC_EEwIb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG8EGdIb[] = { /* 0 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { BxImmediate_Ib, &BX_CPU_C::BT_EGdIb, NULL, NULL }, /* 5 */ { BxImmediate_Ib, &BX_CPU_C::BTS_EGdIb, NULL, NULL }, /* 6 */ { BxImmediate_Ib, &BX_CPU_C::BTR_EGdIb, NULL, NULL }, /* 7 */ { BxImmediate_Ib, &BX_CPU_C::BTC_EGdIb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG8EEdIb[] = { /* 0 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { BxImmediate_Ib, &BX_CPU_C::BT_EEdIb, NULL, NULL }, /* 5 */ { BxImmediate_Ib, &BX_CPU_C::BTS_EEdIb, NULL, NULL }, /* 6 */ { BxImmediate_Ib, &BX_CPU_C::BTR_EEdIb, NULL, NULL }, /* 7 */ { BxImmediate_Ib, &BX_CPU_C::BTC_EEdIb, NULL, NULL } }; const BxOpcodeInfo_t BxOpcodeInfoG9[] = { /* 0 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 1 */ { 0, &BX_CPU_C::CMPXCHG8B, NULL, NULL }, /* 2 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 3 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 4 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 5 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 6 */ { 0, &BX_CPU_C::BxError, NULL, NULL }, /* 7 */ { 0, &BX_CPU_C::BxError, NULL, NULL } }; //const BxOpcodeInfo_t BxOpcodeInfo[512*2*2] = //{ //}; unsigned BX_CPU_C::fetchDecode(Bit8u *iptr, bxInstruction_c *instruction, unsigned remain) { // remain must be at least 1 bx_bool is_32; unsigned b1, b2, i_bytes=1; unsigned attr; unsigned immed_mode,offset; unsigned fetch_rep; unsigned fetch_os32; unsigned fetch_as32; unsigned fetch_seg; unsigned fetch_mod; unsigned fetch_rm; is_32 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b; fetch_rep = 0xf0; fetch_os32 = is_32; fetch_as32 = is_32; fetch_seg = BX_SEG_REG_NULL; instruction->ResolveModrm = NULL; fetch_b1: b1 = *iptr++; another_byte: // BX_CPU_THIS_PTR iptr = iptr-1; offset = fetch_os32 << 9; // * 512 attr = BxOpcodeInfo[b1+offset].Attr; if (attr & BxAnother) { if (attr & BxPrefix) { switch (b1) { case 0x66: // OperSize fetch_os32 = !is_32; break; case 0x67: // AddrSize fetch_as32 = !is_32; break; case 0xf2: // REPNE/REPNZ fetch_rep = 0xf2; break; case 0xf3: // REP/REPE/REPZ fetch_rep = 0xf3; break; case 0x2e: // CS: fetch_seg = BX_SEG_REG_CS; break; case 0x26: // ES: fetch_seg = BX_SEG_REG_ES; break; case 0x36: // SS: fetch_seg = BX_SEG_REG_SS; break; case 0x3e: // DS: fetch_seg = BX_SEG_REG_DS; break; case 0x64: // FS: fetch_seg = BX_SEG_REG_FS; break; case 0x65: // GS: fetch_seg = BX_SEG_REG_GS; break; case 0xf0: // LOCK: break; default: BX_PANIC(("fetch_decode: prefix default = 0x%02x", b1)); } if (i_bytes < remain) { i_bytes++; goto fetch_b1; } return(0); } // opcode requires another byte if (i_bytes < remain) { i_bytes++; b2 = *iptr++; if (b1 == 0x0f) { // 2-byte prefix b1 = 0x100 | b2; goto another_byte; } } else return(0); // Parse mod-nnn-rm and related bytes OPCODEb2(instruction) = b2; fetch_mod = b2 & 0xc0; // leave unshifted fetch_rm = MODRMrm(instruction) = b2 & 0x07; MODRMnnn(instruction) = (b2 >> 3) & 0x07; if (fetch_mod == 0xc0) { // mod == 11b goto modrm_done; } offset += 512*2; if (fetch_as32) { //BX_CPU_THIS_PTR modrm_len = ::Translate_modrm32_length[(b2&0xc7)|((*iptr&0x7)<<3)]; // 32-bit addressing modes; note that mod==11b handled above if (fetch_rm != 4) { // no s-i-b byte #if BX_DYNAMIC_TRANSLATION instruction->DTMemRegsUsed = 1<ResolveModrm = BxResolve32Mod0[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve32Mod0[fetch_rm]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_SEG_REG_DS; if (fetch_rm == 5) { if ((i_bytes+3) < remain) { Bit32u imm32u; imm32u = *iptr++; imm32u |= (*iptr++) << 8; imm32u |= (*iptr++) << 16; imm32u |= (*iptr++) << 24; instruction->displ32u = imm32u; //RMAddr(instruction) = imm32u; i_bytes += 4; #if BX_DYNAMIC_TRANSLATION instruction->DTMemRegsUsed = 0; #endif goto modrm_done; } else { return(0); } } // mod==00b, rm!=4, rm!=5 goto modrm_done; } if (fetch_mod == 0x40) { // mod == 01b instruction->ResolveModrm = BxResolve32Mod1or2[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve32Mod1or2[fetch_rm]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod01_rm32[fetch_rm]; get_8bit_displ: if (i_bytes < remain) { // 8 sign extended to 32 instruction->displ32u = (Bit8s) *iptr++; i_bytes++; goto modrm_done; } else { return(0); } } // (mod == 0x80) mod == 10b instruction->ResolveModrm = BxResolve32Mod1or2[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve32Mod1or2[fetch_rm]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod10_rm32[fetch_rm]; get_32bit_displ: if ((i_bytes+3) < remain) { Bit32u imm32u; imm32u = *iptr++; imm32u |= (*iptr++) << 8; imm32u |= (*iptr++) << 16; imm32u |= (*iptr++) << 24; instruction->displ32u = imm32u; i_bytes += 4; goto modrm_done; } else { return(0); } } else { // mod!=11b, rm==4, s-i-b byte follows unsigned sib, base; if (i_bytes < remain) { sib = *iptr++; i_bytes++; } else { return(0); } base = sib & 0x07; #if BX_DYNAMIC_TRANSLATION if (instruction->index == 0x04) // 100b instruction->DTMemRegsUsed = 0; else instruction->DTMemRegsUsed = 1<index; #endif if (fetch_mod == 0x00) { // mod==00b, rm==4 instruction->ResolveModrm = BxResolve32Mod0EffectAddressBaseIndexScaled[sib];//effect_address #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve32Mod0Base[base]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod0_base32[base]; if (base == 0x05) { goto get_32bit_displ; } // mod==00b, rm==4, base!=5 #if BX_DYNAMIC_TRANSLATION instruction->DTMemRegsUsed |= 1<DTMemRegsUsed |= 1<ResolveModrm = BxResolve32Mod1or2EffectAddressBaseIndexScaled[sib];//effect_address #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve32Mod1or2Base[base]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod1or2_base32[base]; goto get_8bit_displ; } // (fetch_mod == 0x80), mod==10b, rm==4 instruction->ResolveModrm = BxResolve32Mod1or2EffectAddressBaseIndexScaled[sib];//effect_address #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve32Mod1or2Base[base]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod1or2_base32[base]; goto get_32bit_displ; } } else { //BX_CPU_THIS_PTR modrm_len = ::Translate_modrm16_length[b2]; // 16-bit addressing modes, mod==11b handled above if (fetch_mod == 0x40) { // mod == 01b instruction->ResolveModrm = BxResolve16Mod1or2[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve16Mod1or2[fetch_rm]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod01_rm16[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTMemRegsUsed = BxMemRegsUsed16[fetch_rm]; #endif if (i_bytes < remain) { // 8 sign extended to 16 instruction->displ16u = (Bit8s) *iptr++; i_bytes++; goto modrm_done; } else { return(0); } } if (fetch_mod == 0x80) { // mod == 10b instruction->ResolveModrm = BxResolve16Mod1or2[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve16Mod1or2[fetch_rm]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod10_rm16[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTMemRegsUsed = BxMemRegsUsed16[fetch_rm]; #endif if ((i_bytes+1) < remain) { Bit16u displ16u; displ16u = *iptr++; displ16u |= (*iptr++) << 8; instruction->displ16u = displ16u; i_bytes += 2; goto modrm_done; } else { return(0); } } // mod must be 00b at this point instruction->ResolveModrm = BxResolve16Mod0[fetch_rm]; #if BX_DYNAMIC_TRANSLATION instruction->DTResolveModrm = (BxVoidFPtr_t) BxDTResolve16Mod0[fetch_rm]; #endif if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_CPU_THIS_PTR sreg_mod00_rm16[fetch_rm]; if (fetch_rm == 0x06) { if ((i_bytes+1) < remain) { Bit16u displ16u; displ16u = *iptr++; displ16u |= (*iptr++) << 8; instruction->displ16u = displ16u; //RMAddr(instruction) = displ16u; i_bytes += 2; goto modrm_done; } else { return(0); } } // mod=00b rm!=6 #if BX_DYNAMIC_TRANSLATION instruction->DTMemRegsUsed = BxMemRegsUsed16[fetch_rm]; #endif } modrm_done: // BX_CPU_THIS_PTR modrm_len = iptr - BX_CPU_THIS_PTR iptr-1; if (attr & BxGroupN) { BxOpcodeInfo_t *OpcodeInfoPtr; OpcodeInfoPtr = (BxOpcodeInfo_t *)BxOpcodeInfo[b1+offset].OpcodeInfoPtr; instruction->execute = OpcodeInfoPtr[MODRMnnn(instruction)].ExecutePtr; // BX_CPU_THIS_PTR translateptr = // OpcodeInfoPtr[MODRMnnn(instruction)].TranslatePtr; // get additional attributes from group table attr |= OpcodeInfoPtr[MODRMnnn(instruction)].Attr; #if BX_DYNAMIC_TRANSLATION instruction->DTAttr = 0; // for now #endif } else { instruction->execute = BxOpcodeInfo[b1+offset].ExecutePtr; // BX_CPU_THIS_PTR translateptr = // BxOpcodeInfo[b1+offset].TranslatePtr; #if BX_DYNAMIC_TRANSLATION instruction->DTAttr = BxDTOpcodeInfo[b1+offset].DTAttr; instruction->DTFPtr = BxDTOpcodeInfo[b1+offset].DTASFPtr; #endif } } else { // Opcode does not require a MODRM byte. // Note that a 2-byte opcode (0F XX) will jump to before // the if() above after fetching the 2nd byte, so this path is // taken in all cases if a modrm byte is NOT required. instruction->execute = BxOpcodeInfo[b1+offset].ExecutePtr; // BX_CPU_THIS_PTR translateptr = BxOpcodeInfo[b1+offset].TranslatePtr; #if BX_DYNAMIC_TRANSLATION instruction->DTAttr = BxDTOpcodeInfo[b1+offset].DTAttr; instruction->DTFPtr = BxDTOpcodeInfo[b1+offset].DTASFPtr; #endif } immed_mode = attr & BxImmediate; if (immed_mode) { Bit8s temp8s; Bit32u imm32u; Bit16u imm16u; switch (immed_mode) { case BxImmediate_1: IMMEDIATEIb(instruction) = 1; break; case BxImmediate_CL: IMMEDIATEIb(instruction) = X86_CL; break; case BxImmediate_Ib: if(i_bytes>=remain) return 0; IMMEDIATEIb(instruction) = *iptr; i_bytes++; break; case BxImmediate_Ib_SE: // Sign extend to OS size if(i_bytes>=remain) return 0; temp8s = *iptr; if (fetch_os32) IMMEDIATEId(instruction) = (Bit32s) temp8s; else IMMEDIATEIw(instruction) = (Bit16s) temp8s; i_bytes++; break; case BxImmediate_Iv: // same as BxImmediate_BrOff32 case BxImmediate_IvIw: // CALL_Ap JMP_Ap if (fetch_os32) { if ((i_bytes+4) > remain) return 0; imm32u = *iptr++; imm32u |= (*iptr++) << 8; imm32u |= (*iptr++) << 16; imm32u |= (*iptr) << 24; IMMEDIATEId(instruction) = imm32u; i_bytes += 4; } else { if(i_bytes+2>remain) return 0; imm16u = *iptr++; imm16u |= (*iptr) << 8; IMMEDIATEIw(instruction) = imm16u; i_bytes += 2; } if (immed_mode != BxImmediate_IvIw) break; iptr++; // Get Iw for BxImmediate_IvIw if(i_bytes+2>remain) return 0; imm16u = *iptr++; imm16u |= (*iptr) << 8; IMMEDIATEIw2(instruction) = imm16u; i_bytes += 2; break; case BxImmediate_O: if (fetch_as32) { if ((i_bytes+4) > remain) return 0; // fetch 32bit address into Id imm32u = *iptr++; imm32u |= (*iptr++) << 8; imm32u |= (*iptr++) << 16; imm32u |= (*iptr) << 24; IMMEDIATEId(instruction) = imm32u; i_bytes += 4; } else { if(i_bytes+2>remain) return 0; // fetch 16bit address into Id imm32u = *iptr++; imm32u |= (*iptr) << 8; IMMEDIATEId(instruction) = imm32u; i_bytes += 2; } if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_SEG_REG_DS; break; case BxImmediate_Iw: case BxImmediate_IwIb: if(i_bytes+2>remain) return 0; imm16u = *iptr++; imm16u |= (*iptr) << 8; IMMEDIATEIw(instruction) = imm16u; i_bytes += 2; if (immed_mode == BxImmediate_Iw) break; if(i_bytes>=remain) return 0; iptr++; IMMEDIATEIb2(instruction) = *iptr; i_bytes++; break; case BxImmediate_BrOff8: if(i_bytes>=remain) return 0; temp8s = *iptr; IMMEDIATEId(instruction) = temp8s; i_bytes++; break; case BxImmediate_BrOff16: if(i_bytes+2>remain) return 0; imm16u = *iptr++; imm16u |= (*iptr) << 8; IMMEDIATEId(instruction) = (Bit16s) imm16u; i_bytes += 2; break; case BxImmediate_BrOff32: if ((i_bytes+4) > remain) return 0; imm32u = *iptr++; imm32u |= (*iptr++) << 8; imm32u |= (*iptr++) << 16; imm32u |= (*iptr) << 24; IMMEDIATEId(instruction) = imm32u; i_bytes += 4; break; default: BX_INFO(("b1 was %x", b1)); BX_PANIC(("fetchdecode: immed_mode = %u", immed_mode)); } if (i_bytes>remain) return(0); } if ((attr & BxRepeatable)) { // b1==0x6c||b1==0x6d|| //ins // b1==0x6e||b1==0x6f|| //outs // b1==0xa4||b1==0xa5|| //movs // b1==0xa6||b1==0xa7|| //cmps // b1==0xaa||b1==0xab|| //stos // b1==0xac||b1==0xad|| //lods // b1==0xae||b1==0xaf|| //scas BxOpcodeInfo_t *OpcodeInfoPtr; int string_num; if (BX_NULL_SEG_REG(fetch_seg)) fetch_seg = BX_SEG_REG_DS; string_num = fetch_rep-0xf0 + (fetch_as32<<2); OpcodeInfoPtr = (BxOpcodeInfo_t *)BxOpcodeInfo[b1+offset].OpcodeInfoPtr; instruction->execute = OpcodeInfoPtr[string_num].ExecutePtr; // BX_CPU_THIS_PTR translateptr = OpcodeInfoPtr[string_num].TranslatePtr; // get additional attributes from group table attr |= OpcodeInfoPtr[string_num].Attr; } OPCODEb1(instruction) = b1; MODRMSeg(instruction) = fetch_seg; instruction->size_mode.os_32 = fetch_os32; instruction->size_mode.as_32 = fetch_as32; instruction->i_bytes = (Bit8u)i_bytes; // BX_CPU_THIS_PTR attr = attr; return(i_bytes); } void BX_CPU_C::BxError(BX_CPU_C *icpu,bxInstruction_c *i) { // extern void dump_core(); BX_INFO(("BxError: instruction with op1=0x%x", i->b1)); BX_INFO(("nnn was %u", i->nnn)); BX_INFO(("WARNING: Encountered an unknown instruction (signalling illegal instruction):")); // dump_core(); BX_PANIC(("BxError:inst with op1=0x%x nnn was %u", i->b1,i->nnn)); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } void BX_CPU_C::BxResolveError(BX_CPU_C *icpu,bxInstruction_c *i) { BX_PANIC(("BxResolveError: instruction with op1=0x%x", i->b1)); } ================================================ FILE: Project/IntelCPU/Source/fetch_pr.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: fetchdecode_pro.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ָ //--------------------------------------------------------- #define BxOS16 0 #define BxOS32 0 #define BxSplitMod11b 0 const BxOpcodeInfo_t BxOpcodeInfo[512*2*2] = { /* 00 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EGbGb, NULL }, /* 01 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EGwGw, NULL }, /* 02 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GbEGb, NULL }, /* 03 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GwEGw, NULL }, /* 04 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: ADD_ALIb, NULL }, /* 05 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: ADD_AXIw, NULL }, /* 06 */ { 0, &BX_CPU_C:: PUSH_ES , NULL }, /* 07 */ { 0, &BX_CPU_C:: POP_ES , NULL }, /* 08 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EGbGb, NULL }, /* 09 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EGwGw, NULL }, /* 0a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GbEGb, NULL }, /* 0b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GwEGw, NULL }, /* 0c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: OR_ALIb, NULL }, /* 0d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: OR_AXIw, NULL }, /* 0e */ { 0, &BX_CPU_C:: PUSH_CS , NULL }, /* 0f */ { BxAnother, &BX_CPU_C:: BxError , NULL },// 2-byte escape /* 10 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EGbGb, NULL }, /* 11 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EGwGw, NULL }, /* 12 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GbEGb, NULL }, /* 13 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GwEGw, NULL }, /* 14 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: ADC_ALIb, NULL }, /* 15 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: ADC_AXIw, NULL }, /* 16 */ { 0, &BX_CPU_C:: PUSH_SS , NULL }, /* 17 */ { 0, &BX_CPU_C:: POP_SS , NULL }, /* 18 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EGbGb, NULL }, /* 19 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EGwGw, NULL }, /* 1a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GbEGb, NULL }, /* 1b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GwEGw, NULL }, /* 1c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: SBB_ALIb, NULL }, /* 1d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: SBB_AXIw, NULL }, /* 1e */ { 0, &BX_CPU_C:: PUSH_DS , NULL }, /* 1f */ { 0, &BX_CPU_C:: POP_DS , NULL }, /* 20 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EGbGb, NULL }, /* 21 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EGwGw, NULL }, /* 22 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GbEGb, NULL }, /* 23 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GwEGw, NULL }, /* 24 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: AND_ALIb, NULL }, /* 25 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: AND_AXIw, NULL }, /* 26 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 27 */ { 0, &BX_CPU_C:: DAA, NULL }, /* 28 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EGbGb, NULL }, /* 29 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EGwGw, NULL }, /* 2a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GbEGb, NULL }, /* 2b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GwEGw, NULL }, /* 2c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: SUB_ALIb, NULL }, /* 2d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: SUB_AXIw, NULL }, /* 2e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 2f */ { 0, &BX_CPU_C:: DAS, NULL }, /* 30 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EGbGb, NULL }, /* 31 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EGwGw, NULL }, /* 32 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GbEGb, NULL }, /* 33 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GwEGw, NULL }, /* 34 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: XOR_ALIb, NULL }, /* 35 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: XOR_AXIw, NULL }, /* 36 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 37 */ { 0, &BX_CPU_C:: AAA, NULL }, /* 38 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EGbGb, NULL }, /* 39 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EGwGw, NULL }, /* 3a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GbEGb, NULL }, /* 3b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GwEGw, NULL }, /* 3c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: CMP_ALIb, NULL }, /* 3d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: CMP_AXIw, NULL }, /* 3e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 3f */ { 0, &BX_CPU_C:: AAS, NULL }, /* 40 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 41 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 42 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 43 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 44 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 45 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 46 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 47 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 48 */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 49 */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4a */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4b */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4c */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4d */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4e */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4f */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 50 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 51 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 52 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 53 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 54 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 55 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 56 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 57 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 58 */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 59 */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5a */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5b */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5c */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5d */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5e */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5f */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 60 */ { BxOS16 | 0, &BX_CPU_C:: PUSHAD16 , NULL }, /* 61 */ { BxOS16 | 0, &BX_CPU_C:: POPAD16 , NULL }, /* 62 */ { BxAnother, &BX_CPU_C:: BOUND_GvMa , NULL }, /* 63 */ { BxAnother, &BX_CPU_C:: ARPL_EwGw , NULL }, /* 64 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 65 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 66 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 67 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 68 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: PUSH_Iw , NULL }, /* 69 */ { BxOS16 | BxAnother | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: IMUL_GwEGwIw , NULL }, /* 6a */ { BxOS16 | BxImmediate_Ib_SE, &BX_CPU_C:: PUSH_Iw , NULL }, /* 6b */ { BxOS16 | BxAnother | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: IMUL_GwEGwIw , NULL }, /* 6c */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSB }, /* 6d */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSW }, /* 6e */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSB }, /* 6f */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSW }, /* 70 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc0_Jw, NULL }, /* 71 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc1_Jw, NULL }, /* 72 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc2_Jw, NULL }, /* 73 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc3_Jw, NULL }, /* 74 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc4_Jw, NULL }, /* 75 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc5_Jw, NULL }, /* 76 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc6_Jw, NULL }, /* 77 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc7_Jw, NULL }, /* 78 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc8_Jw, NULL }, /* 79 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc9_Jw, NULL }, /* 7a */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcca_Jw, NULL }, /* 7b */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccb_Jw, NULL }, /* 7c */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccc_Jw, NULL }, /* 7d */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccd_Jw, NULL }, /* 7e */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcce_Jw, NULL }, /* 7f */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccf_Jw, NULL }, /* 80 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGbIb }, /* 81 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGwIw }, /* 82 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGbIb }, /* 83 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGwIsb }, /* 84 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EGbGb, NULL }, /* 85 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EGwGw, NULL }, /* 86 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EGbGb, NULL }, /* 87 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EGwGw, NULL }, /* 88 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EGbGb, NULL }, /* 89 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EGwGw, NULL }, /* 8a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GbEGb, NULL }, /* 8b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GwEGw, NULL }, /* 8c */ { BxAnother, &BX_CPU_C:: MOV_EwSw , NULL }, /* 8d */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BxError , NULL }, /* 8e */ { BxAnother, &BX_CPU_C:: MOV_SwEw , NULL }, /* 8f */ { BxOS16 | BxAnother | BxGroupN | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0x8fEGw }, /* 90 */ { BxOS16 | 0, &BX_CPU_C:: NOP, NULL }, /* 91 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 92 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 93 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 94 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 95 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 96 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 97 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 98 */ { BxOS16 | 0, &BX_CPU_C:: CBW, NULL }, /* 99 */ { BxOS16 | 0, &BX_CPU_C:: CWD, NULL }, /* 9a */ { BxOS16 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: CALL16_Ap, NULL }, /* 9b */ { 0, &BX_CPU_C:: FWAIT , NULL }, /* 9c */ { 0, &BX_CPU_C:: PUSHF , NULL }, /* 9d */ { 0, &BX_CPU_C:: POPF , NULL }, /* 9e */ { 0, &BX_CPU_C:: SAHF, NULL }, /* 9f */ { 0, &BX_CPU_C:: LAHF, NULL }, /* a0 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_ALOb, NULL }, /* a1 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_AXOw, NULL }, /* a2 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_ObAL, NULL }, /* a3 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_OwAX, NULL }, /* a4 */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSB }, /* a5 */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSW }, /* a6 */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSB }, /* a7 */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSW }, /* a8 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: TEST_ALIb, NULL }, /* a9 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: TEST_AXIw, NULL }, /* aa */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSB }, /* ab */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSW }, /* ac */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSB }, /* ad */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSW }, /* ae */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASB }, /* af */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASW }, /* b0 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b1 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b2 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b3 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b4 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b5 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b6 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b7 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b8 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* b9 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* ba */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bb */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bc */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bd */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* be */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bf */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* c0 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGbIb }, /* c1 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGwIb }, /* c2 */ { BxOS16 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETnear16_Iw, NULL }, /* c3 */ { BxOS16 | BxBranch_absolute, &BX_CPU_C:: RETnear16, NULL }, /* c4 */ { BxAnother, &BX_CPU_C:: LES_GvMp , NULL }, /* c5 */ { BxAnother, &BX_CPU_C:: LDS_GvMp , NULL }, /* c6 */ { BxOS16 | BxAnother | BxGroupN | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc6EGbIb }, /* c7 */ { BxOS16 | BxAnother | BxGroupN | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc7EGwIw }, /* c8 */ { BxImmediate_IwIb, &BX_CPU_C:: ENTER_IwIb , NULL }, /* c9 */ { 0, &BX_CPU_C:: LEAVE , NULL }, /* ca */ { BxOS16 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETfar16_Iw, NULL }, /* cb */ { BxOS16 | BxBranch_absolute, &BX_CPU_C:: RETfar16, NULL }, /* cc */ { BxBranch_absolute, &BX_CPU_C:: INT3, NULL }, /* cd */ { BxBranch_absolute | BxImmediate_Ib, &BX_CPU_C:: INT_Ib, NULL }, /* ce */ { BxBranch_absolute, &BX_CPU_C:: INTO, NULL }, /* cf */ { BxOS16 | BxBranch_absolute, &BX_CPU_C:: IRET16, NULL }, /* d0 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGb_1 }, /* d1 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGw_1 }, /* d2 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGbCL }, /* d3 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGwCL }, /* d4 */ { BxImmediate_Ib, &BX_CPU_C:: AAM, NULL }, /* d5 */ { BxImmediate_Ib, &BX_CPU_C:: AAD, NULL }, /* d6 */ { 0, &BX_CPU_C:: SALC, NULL }, /* d7 */ { 0, &BX_CPU_C:: XLAT, NULL }, /* d8 */ { BxAnother, &BX_CPU_C:: ESC0 , NULL }, /* d9 */ { BxAnother, &BX_CPU_C:: ESC1 , NULL }, /* da */ { BxAnother, &BX_CPU_C:: ESC2 , NULL }, /* db */ { BxAnother, &BX_CPU_C:: ESC3 , NULL }, /* dc */ { BxAnother, &BX_CPU_C:: ESC4 , NULL }, /* dd */ { BxAnother, &BX_CPU_C:: ESC5 , NULL }, /* de */ { BxAnother, &BX_CPU_C:: ESC6 , NULL }, /* df */ { BxAnother, &BX_CPU_C:: ESC7 , NULL }, /* e0 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPNE_Jw, NULL }, /* e1 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPE_Jw, NULL }, /* e2 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOP_Jw, NULL }, /* e3 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JCXZ_Jw, NULL }, /* e4 */ { BxImmediate_Ib, &BX_CPU_C:: IN_ALIb , NULL }, /* e5 */ { BxImmediate_Ib, &BX_CPU_C:: IN_eAXIb , NULL }, /* e6 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbAL , NULL }, /* e7 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbeAX , NULL }, /* e8 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: CALL_Jw, NULL }, /* e9 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: JMP_Jw, NULL }, /* ea */ { BxOS16 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: JMP16_Ap, NULL }, /* eb */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JMP_Jw, NULL }, /* ec */ { 0, &BX_CPU_C:: IN_ALDX , NULL }, /* ed */ { 0, &BX_CPU_C:: IN_eAXDX , NULL }, /* ee */ { 0, &BX_CPU_C:: OUT_DXAL , NULL }, /* ef */ { 0, &BX_CPU_C:: OUT_DXeAX , NULL }, /* f0 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f1 */ { BxBranch_absolute, &BX_CPU_C:: INT1, NULL }, /* f2 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f3 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f4 */ { 0, &BX_CPU_C:: HLT , NULL }, /* f5 */ { 0, &BX_CPU_C:: CMC, NULL }, /* f6 */ { BxOS16 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EGb }, /* f7 */ { BxOS16 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EGw }, /* f8 */ { 0, &BX_CPU_C:: CLC, NULL }, /* f9 */ { 0, &BX_CPU_C:: STC, NULL }, /* fa */ { 0, &BX_CPU_C:: CLI , NULL }, /* fb */ { 0, &BX_CPU_C:: STI , NULL }, /* fc */ { 0, &BX_CPU_C:: CLD , NULL }, /* fd */ { 0, &BX_CPU_C:: STD , NULL }, /* fe */ { BxOS16 | BxAnother | BxGroup4 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG4EGb }, /* ff */ { BxOS16 | BxAnother | BxGroup5 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG5EGw }, //--------------------------------------------------------- /* 100 */ { BxAnother | BxGroup6, &BX_CPU_C:: BxError, BxOpcodeInfoG6 }, /* 101 */ { BxAnother | BxGroup7, &BX_CPU_C:: BxError, BxOpcodeInfoG7 }, /* 102 */ { BxAnother, &BX_CPU_C:: LAR_GvEw , NULL }, /* 103 */ { BxAnother, &BX_CPU_C:: LSL_GvEw , NULL }, /* 104 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 105 */ { 0, &BX_CPU_C:: LOADALL , NULL }, /* 106 */ { 0, &BX_CPU_C:: CLTS , NULL }, /* 107 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 108 */ { 0, &BX_CPU_C:: INVD , NULL }, /* 109 */ { 0, &BX_CPU_C:: WBINVD , NULL }, /* 10a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 110 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 111 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 112 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 113 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 114 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 115 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 116 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 117 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 118 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 119 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 120 */ { BxAnother, &BX_CPU_C:: MOV_RdCd , NULL }, /* 121 */ { BxAnother, &BX_CPU_C:: MOV_RdDd , NULL }, /* 122 */ { BxAnother, &BX_CPU_C:: MOV_CdRd , NULL }, /* 123 */ { BxAnother, &BX_CPU_C:: MOV_DdRd , NULL }, /* 124 */ { BxAnother, &BX_CPU_C:: MOV_RdTd , NULL }, /* 125 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 126 */ { BxAnother, &BX_CPU_C:: MOV_TdRd , NULL }, /* 127 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 128 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 129 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 130 */ { 0, &BX_CPU_C:: WRMSR , NULL }, /* 131 */ { 0, &BX_CPU_C:: RDTSC , NULL }, /* 132 */ { 0, &BX_CPU_C:: RDMSR , NULL }, /* 133 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 134 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 135 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 136 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 137 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 138 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 139 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 140 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 141 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 142 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 143 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 144 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 145 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 146 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 147 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 148 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 149 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 14a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 14b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 14c */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 14d */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 14e */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 14f */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEGw, NULL }, /* 150 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 151 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 152 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 153 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 154 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 155 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 156 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 157 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 158 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 159 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 160 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 161 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 162 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 163 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 164 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 165 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 166 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 167 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 168 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 169 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 170 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 171 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 172 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 173 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 174 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 175 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 176 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 177 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 178 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 179 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 180 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc0_Jw, NULL }, /* 181 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc1_Jw, NULL }, /* 182 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc2_Jw, NULL }, /* 183 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc3_Jw, NULL }, /* 184 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc4_Jw, NULL }, /* 185 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc5_Jw, NULL }, /* 186 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc6_Jw, NULL }, /* 187 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc7_Jw, NULL }, /* 188 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc8_Jw, NULL }, /* 189 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc9_Jw, NULL }, /* 18a */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcca_Jw, NULL }, /* 18b */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccb_Jw, NULL }, /* 18c */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccc_Jw, NULL }, /* 18d */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccd_Jw, NULL }, /* 18e */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcce_Jw, NULL }, /* 18f */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccf_Jw, NULL }, /* 190 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 191 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 192 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 193 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 194 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 195 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 196 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 197 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 198 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 199 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19a */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19b */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19c */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19d */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19e */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19f */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 1a0 */ { 0, &BX_CPU_C:: PUSH_FS , NULL }, /* 1a1 */ { 0, &BX_CPU_C:: POP_FS , NULL }, /* 1a2 */ { 0, &BX_CPU_C:: CPUID , NULL }, /* 1a3 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BT_EGwGw , NULL }, /* 1a4 */ { BxOS16 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHLD_EGwGw, NULL }, /* 1a5 */ { BxOS16 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHLD_EGwGwCL, NULL }, /* 1a6 */ { 0, &BX_CPU_C:: CMPXCHG_XBTS , NULL }, /* 1a7 */ { 0, &BX_CPU_C:: CMPXCHG_IBTS , NULL }, /* 1a8 */ { 0, &BX_CPU_C:: PUSH_GS , NULL }, /* 1a9 */ { 0, &BX_CPU_C:: POP_GS , NULL }, /* 1aa */ { 0, &BX_CPU_C:: RSM , NULL }, /* 1ab */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTS_EGwGw , NULL }, /* 1ac */ { BxOS16 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHRD_EGwGw, NULL }, /* 1ad */ { BxOS16 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHRD_EGwGwCL, NULL }, /* 1ae */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1af */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: IMUL_GwEGw, NULL }, /* 1b0 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EGbGb, NULL }, /* 1b1 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EGwGw, NULL }, /* 1b2 */ { BxAnother, &BX_CPU_C:: LSS_GvMp , NULL }, /* 1b3 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTR_EGwGw , NULL }, /* 1b4 */ { BxAnother, &BX_CPU_C:: LFS_GvMp , NULL }, /* 1b5 */ { BxAnother, &BX_CPU_C:: LGS_GvMp , NULL }, /* 1b6 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GwEGb, NULL }, /* 1b7 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GwEGw, NULL }, /* 1b8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1b9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ba */ { BxOS16 | BxAnother | BxGroup8 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG8EGwIb }, /* 1bb */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTC_EGwGw , NULL }, /* 1bc */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSF_GwEGw , NULL }, /* 1bd */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSR_GwEGw , NULL }, /* 1be */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GwEGb, NULL }, /* 1bf */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GwEGw, NULL }, /* 1c0 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EGbGb, NULL }, /* 1c1 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EGwGw, NULL }, /* 1c2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c7 */ { BxAnother | BxGroup9, &BX_CPU_C:: BxError, BxOpcodeInfoG9 }, /* 1c8 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1c9 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ca */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cb */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cc */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cd */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ce */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cf */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1d0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1da */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1db */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dc */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dd */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1de */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1df */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ea */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1eb */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ec */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ed */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ee */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ef */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1f0 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f1 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f2 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f3 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f4 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f5 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f6 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f7 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f8 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f9 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fa */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fb */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fc */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fd */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fe */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1ff */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, //--------------------------------------------------------- //--------------------------------------------------------- /* 00 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EGbGb, NULL }, /* 01 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EGdGd, NULL }, /* 02 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GbEGb, NULL }, /* 03 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GdEGd, NULL }, /* 04 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: ADD_ALIb, NULL }, /* 05 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: ADD_EAXId, NULL }, /* 06 */ { 0, &BX_CPU_C:: PUSH_ES , NULL }, /* 07 */ { 0, &BX_CPU_C:: POP_ES , NULL }, /* 08 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EGbGb, NULL }, /* 09 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EGdGd, NULL }, /* 0a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GbEGb, NULL }, /* 0b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GdEGd, NULL }, /* 0c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: OR_ALIb, NULL }, /* 0d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: OR_EAXId, NULL }, /* 0e */ { 0, &BX_CPU_C:: PUSH_CS , NULL }, /* 0f */ { BxAnother, &BX_CPU_C:: BxError , NULL },// 2-byte escape /* 10 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EGbGb, NULL }, /* 11 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EGdGd, NULL }, /* 12 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GbEGb, NULL }, /* 13 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GdEGd, NULL }, /* 14 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: ADC_ALIb, NULL }, /* 15 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: ADC_EAXId, NULL }, /* 16 */ { 0, &BX_CPU_C:: PUSH_SS , NULL }, /* 17 */ { 0, &BX_CPU_C:: POP_SS , NULL }, /* 18 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EGbGb, NULL }, /* 19 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EGdGd, NULL }, /* 1a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GbEGb, NULL }, /* 1b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GdEGd, NULL }, /* 1c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: SBB_ALIb, NULL }, /* 1d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: SBB_EAXId, NULL }, /* 1e */ { 0, &BX_CPU_C:: PUSH_DS , NULL }, /* 1f */ { 0, &BX_CPU_C:: POP_DS , NULL }, /* 20 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EGbGb, NULL }, /* 21 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EGdGd, NULL }, /* 22 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GbEGb, NULL }, /* 23 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GdEGd, NULL }, /* 24 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: AND_ALIb, NULL }, /* 25 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: AND_EAXId, NULL }, /* 26 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 27 */ { 0, &BX_CPU_C:: DAA, NULL }, /* 28 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EGbGb, NULL }, /* 29 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EGdGd, NULL }, /* 2a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GbEGb, NULL }, /* 2b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GdEGd, NULL }, /* 2c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: SUB_ALIb, NULL }, /* 2d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: SUB_EAXId, NULL }, /* 2e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 2f */ { 0, &BX_CPU_C:: DAS, NULL }, /* 30 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EGbGb, NULL }, /* 31 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EGdGd, NULL }, /* 32 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GbEGb, NULL }, /* 33 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GdEGd, NULL }, /* 34 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: XOR_ALIb, NULL }, /* 35 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: XOR_EAXId, NULL }, /* 36 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 37 */ { 0, &BX_CPU_C:: AAA, NULL }, /* 38 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EGbGb, NULL }, /* 39 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EGdGd, NULL }, /* 3a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GbEGb, NULL }, /* 3b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GdEGd, NULL }, /* 3c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: CMP_ALIb, NULL }, /* 3d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: CMP_EAXId, NULL }, /* 3e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 3f */ { 0, &BX_CPU_C:: AAS, NULL }, /* 40 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 41 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 42 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 43 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 44 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 45 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 46 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 47 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 48 */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 49 */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4a */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4b */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4c */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4d */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4e */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4f */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 50 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 51 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 52 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 53 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 54 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 55 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 56 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 57 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 58 */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 59 */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5a */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5b */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5c */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5d */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5e */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5f */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 60 */ { BxOS32 | 0, &BX_CPU_C:: PUSHAD32 , NULL }, /* 61 */ { BxOS32 | 0, &BX_CPU_C:: POPAD32 , NULL }, /* 62 */ { BxAnother, &BX_CPU_C:: BOUND_GvMa , NULL }, /* 63 */ { BxAnother, &BX_CPU_C:: ARPL_EwGw , NULL }, /* 64 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 65 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 66 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 67 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 68 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: PUSH_Id , NULL }, /* 69 */ { BxOS32 | BxAnother | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: IMUL_GdEGdId , NULL }, /* 6a */ { BxOS32 | BxImmediate_Ib_SE, &BX_CPU_C:: PUSH_Id , NULL }, /* 6b */ { BxOS32 | BxAnother | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: IMUL_GdEGdId , NULL }, /* 6c */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSB }, /* 6d */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSD }, /* 6e */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSB }, /* 6f */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSD }, /* 70 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc0_Jd, NULL }, /* 71 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc1_Jd, NULL }, /* 72 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc2_Jd, NULL }, /* 73 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc3_Jd, NULL }, /* 74 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc4_Jd, NULL }, /* 75 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc5_Jd, NULL }, /* 76 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc6_Jd, NULL }, /* 77 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc7_Jd, NULL }, /* 78 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc8_Jd, NULL }, /* 79 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc9_Jd, NULL }, /* 7a */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcca_Jd, NULL }, /* 7b */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccb_Jd, NULL }, /* 7c */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccc_Jd, NULL }, /* 7d */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccd_Jd, NULL }, /* 7e */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcce_Jd, NULL }, /* 7f */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccf_Jd, NULL }, /* 80 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGbIb }, /* 81 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGdId }, /* 82 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGbIb }, /* 83 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EGdIsb }, /* 84 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EGbGb, NULL }, /* 85 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EGdGd, NULL }, /* 86 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EGbGb, NULL }, /* 87 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EGdGd, NULL }, /* 88 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EGbGb, NULL }, /* 89 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EGdGd, NULL }, /* 8a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GbEGb, NULL }, /* 8b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GdEGd, NULL }, /* 8c */ { BxAnother, &BX_CPU_C:: MOV_EwSw , NULL }, /* 8d */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BxError , NULL }, /* 8e */ { BxAnother, &BX_CPU_C:: MOV_SwEw , NULL }, /* 8f */ { BxOS32 | BxAnother | BxGroupN | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0x8fEGd }, /* 90 */ { BxOS32 | 0, &BX_CPU_C:: NOP, NULL }, /* 91 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 92 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 93 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 94 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 95 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 96 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 97 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 98 */ { BxOS32 | 0, &BX_CPU_C:: CWDE, NULL }, /* 99 */ { BxOS32 | 0, &BX_CPU_C:: CDQ, NULL }, /* 9a */ { BxOS32 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: CALL32_Ap, NULL }, /* 9b */ { 0, &BX_CPU_C:: FWAIT , NULL }, /* 9c */ { 0, &BX_CPU_C:: PUSHF , NULL }, /* 9d */ { 0, &BX_CPU_C:: POPF , NULL }, /* 9e */ { 0, &BX_CPU_C:: SAHF, NULL }, /* 9f */ { 0, &BX_CPU_C:: LAHF, NULL }, /* a0 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_ALOb, NULL }, /* a1 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_EAXOd, NULL }, /* a2 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_ObAL, NULL }, /* a3 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_OdEAX, NULL }, /* a4 */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSB }, /* a5 */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSD }, /* a6 */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSB }, /* a7 */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSD }, /* a8 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: TEST_ALIb, NULL }, /* a9 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: TEST_EAXId, NULL }, /* aa */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSB }, /* ab */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSD }, /* ac */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSB }, /* ad */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSD }, /* ae */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASB }, /* af */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASD }, /* b0 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b1 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b2 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b3 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b4 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b5 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b6 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b7 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b8 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* b9 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* ba */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bb */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bc */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bd */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* be */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bf */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* c0 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGbIb }, /* c1 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGdIb }, /* c2 */ { BxOS32 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETnear32_Iw, NULL }, /* c3 */ { BxOS32 | BxBranch_absolute, &BX_CPU_C:: RETnear32, NULL }, /* c4 */ { BxAnother, &BX_CPU_C:: LES_GvMp , NULL }, /* c5 */ { BxAnother, &BX_CPU_C:: LDS_GvMp , NULL }, /* c6 */ { BxOS32 | BxAnother | BxGroupN | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc6EGbIb }, /* c7 */ { BxOS32 | BxAnother | BxGroupN | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc7EGdId }, /* c8 */ { BxImmediate_IwIb, &BX_CPU_C:: ENTER_IwIb , NULL }, /* c9 */ { 0, &BX_CPU_C:: LEAVE , NULL }, /* ca */ { BxOS32 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETfar32_Iw, NULL }, /* cb */ { BxOS32 | BxBranch_absolute, &BX_CPU_C:: RETfar32, NULL }, /* cc */ { BxBranch_absolute, &BX_CPU_C:: INT3, NULL }, /* cd */ { BxBranch_absolute | BxImmediate_Ib, &BX_CPU_C:: INT_Ib, NULL }, /* ce */ { BxBranch_absolute, &BX_CPU_C:: INTO, NULL }, /* cf */ { BxOS32 | BxBranch_absolute, &BX_CPU_C:: IRET32, NULL }, /* d0 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGb_1 }, /* d1 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGd_1 }, /* d2 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGbCL }, /* d3 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EGdCL }, /* d4 */ { BxImmediate_Ib, &BX_CPU_C:: AAM, NULL }, /* d5 */ { BxImmediate_Ib, &BX_CPU_C:: AAD, NULL }, /* d6 */ { 0, &BX_CPU_C:: SALC, NULL }, /* d7 */ { 0, &BX_CPU_C:: XLAT, NULL }, /* d8 */ { BxAnother, &BX_CPU_C:: ESC0 , NULL }, /* d9 */ { BxAnother, &BX_CPU_C:: ESC1 , NULL }, /* da */ { BxAnother, &BX_CPU_C:: ESC2 , NULL }, /* db */ { BxAnother, &BX_CPU_C:: ESC3 , NULL }, /* dc */ { BxAnother, &BX_CPU_C:: ESC4 , NULL }, /* dd */ { BxAnother, &BX_CPU_C:: ESC5 , NULL }, /* de */ { BxAnother, &BX_CPU_C:: ESC6 , NULL }, /* df */ { BxAnother, &BX_CPU_C:: ESC7 , NULL }, /* e0 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPNE_Jd, NULL }, /* e1 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPE_Jd, NULL }, /* e2 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOP_Jd, NULL }, /* e3 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JCXZ_Jd, NULL }, /* e4 */ { BxImmediate_Ib, &BX_CPU_C:: IN_ALIb , NULL }, /* e5 */ { BxImmediate_Ib, &BX_CPU_C:: IN_eAXIb , NULL }, /* e6 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbAL , NULL }, /* e7 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbeAX , NULL }, /* e8 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: CALL_Jd, NULL }, /* e9 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: JMP_Jd, NULL }, /* ea */ { BxOS32 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: JMP32_Ap, NULL }, /* eb */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JMP_Jd, NULL }, /* ec */ { 0, &BX_CPU_C:: IN_ALDX , NULL }, /* ed */ { 0, &BX_CPU_C:: IN_eAXDX , NULL }, /* ee */ { 0, &BX_CPU_C:: OUT_DXAL , NULL }, /* ef */ { 0, &BX_CPU_C:: OUT_DXeAX , NULL }, /* f0 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f1 */ { BxBranch_absolute, &BX_CPU_C:: INT1, NULL }, /* f2 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f3 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f4 */ { 0, &BX_CPU_C:: HLT , NULL }, /* f5 */ { 0, &BX_CPU_C:: CMC, NULL }, /* f6 */ { BxOS32 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EGb }, /* f7 */ { BxOS32 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EGd }, /* f8 */ { 0, &BX_CPU_C:: CLC, NULL }, /* f9 */ { 0, &BX_CPU_C:: STC, NULL }, /* fa */ { 0, &BX_CPU_C:: CLI , NULL }, /* fb */ { 0, &BX_CPU_C:: STI , NULL }, /* fc */ { 0, &BX_CPU_C:: CLD , NULL }, /* fd */ { 0, &BX_CPU_C:: STD , NULL }, /* fe */ { BxOS32 | BxAnother | BxGroup4 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG4EGb }, /* ff */ { BxOS32 | BxAnother | BxGroup5 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG5EGd }, //--------------------------------------------------------- /* 100 */ { BxAnother | BxGroup6, &BX_CPU_C:: BxError, BxOpcodeInfoG6 }, /* 101 */ { BxAnother | BxGroup7, &BX_CPU_C:: BxError, BxOpcodeInfoG7 }, /* 102 */ { BxAnother, &BX_CPU_C:: LAR_GvEw , NULL }, /* 103 */ { BxAnother, &BX_CPU_C:: LSL_GvEw , NULL }, /* 104 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 105 */ { 0, &BX_CPU_C:: LOADALL , NULL }, /* 106 */ { 0, &BX_CPU_C:: CLTS , NULL }, /* 107 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 108 */ { 0, &BX_CPU_C:: INVD , NULL }, /* 109 */ { 0, &BX_CPU_C:: WBINVD , NULL }, /* 10a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 110 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 111 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 112 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 113 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 114 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 115 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 116 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 117 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 118 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 119 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 120 */ { BxAnother, &BX_CPU_C:: MOV_RdCd , NULL }, /* 121 */ { BxAnother, &BX_CPU_C:: MOV_RdDd , NULL }, /* 122 */ { BxAnother, &BX_CPU_C:: MOV_CdRd , NULL }, /* 123 */ { BxAnother, &BX_CPU_C:: MOV_DdRd , NULL }, /* 124 */ { BxAnother, &BX_CPU_C:: MOV_RdTd , NULL }, /* 125 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 126 */ { BxAnother, &BX_CPU_C:: MOV_TdRd , NULL }, /* 127 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 128 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 129 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 130 */ { 0, &BX_CPU_C:: WRMSR , NULL }, /* 131 */ { 0, &BX_CPU_C:: RDTSC , NULL }, /* 132 */ { 0, &BX_CPU_C:: RDMSR , NULL }, /* 133 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 134 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 135 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 136 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 137 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 138 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 139 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 140 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 141 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 142 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 143 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 144 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 145 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 146 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 147 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 148 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 149 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 14a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 14b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 14c */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 14d */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 14e */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 14f */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEGd, NULL }, /* 150 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 151 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 152 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 153 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 154 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 155 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 156 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 157 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 158 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 159 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 160 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 161 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 162 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 163 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 164 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 165 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 166 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 167 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 168 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 169 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 170 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 171 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 172 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 173 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 174 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 175 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 176 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 177 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 178 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 179 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 180 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc0_Jd, NULL }, /* 181 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc1_Jd, NULL }, /* 182 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc2_Jd, NULL }, /* 183 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc3_Jd, NULL }, /* 184 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc4_Jd, NULL }, /* 185 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc5_Jd, NULL }, /* 186 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc6_Jd, NULL }, /* 187 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc7_Jd, NULL }, /* 188 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc8_Jd, NULL }, /* 189 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc9_Jd, NULL }, /* 18a */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcca_Jd, NULL }, /* 18b */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccb_Jd, NULL }, /* 18c */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccc_Jd, NULL }, /* 18d */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccd_Jd, NULL }, /* 18e */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcce_Jd, NULL }, /* 18f */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccf_Jd, NULL }, /* 190 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 191 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 192 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 193 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 194 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 195 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 196 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 197 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 198 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 199 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19a */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19b */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19c */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19d */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19e */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 19f */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EGb, NULL }, /* 1a0 */ { 0, &BX_CPU_C:: PUSH_FS , NULL }, /* 1a1 */ { 0, &BX_CPU_C:: POP_FS , NULL }, /* 1a2 */ { 0, &BX_CPU_C:: CPUID , NULL }, /* 1a3 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BT_EGdGd , NULL }, /* 1a4 */ { BxOS32 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHLD_EGdGd, NULL }, /* 1a5 */ { BxOS32 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHLD_EGdGdCL, NULL }, /* 1a6 */ { 0, &BX_CPU_C:: CMPXCHG_XBTS , NULL }, /* 1a7 */ { 0, &BX_CPU_C:: CMPXCHG_IBTS , NULL }, /* 1a8 */ { 0, &BX_CPU_C:: PUSH_GS , NULL }, /* 1a9 */ { 0, &BX_CPU_C:: POP_GS , NULL }, /* 1aa */ { 0, &BX_CPU_C:: RSM , NULL }, /* 1ab */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTS_EGdGd , NULL }, /* 1ac */ { BxOS32 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHRD_EGdGd, NULL }, /* 1ad */ { BxOS32 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHRD_EGdGdCL, NULL }, /* 1ae */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1af */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: IMUL_GdEGd, NULL }, /* 1b0 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EGbGb, NULL }, /* 1b1 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EGdGd, NULL }, /* 1b2 */ { BxAnother, &BX_CPU_C:: LSS_GvMp , NULL }, /* 1b3 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTR_EGdGd , NULL }, /* 1b4 */ { BxAnother, &BX_CPU_C:: LFS_GvMp , NULL }, /* 1b5 */ { BxAnother, &BX_CPU_C:: LGS_GvMp , NULL }, /* 1b6 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GdEGb, NULL }, /* 1b7 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GdEGw, NULL }, /* 1b8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1b9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ba */ { BxOS32 | BxAnother | BxGroup8 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG8EGdIb }, /* 1bb */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTC_EGdGd , NULL }, /* 1bc */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSF_GdEGd , NULL }, /* 1bd */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSR_GdEGd , NULL }, /* 1be */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GdEGb, NULL }, /* 1bf */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GdEGw, NULL }, /* 1c0 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EGbGb, NULL }, /* 1c1 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EGdGd, NULL }, /* 1c2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c7 */ { BxAnother | BxGroup9, &BX_CPU_C:: BxError, BxOpcodeInfoG9 }, /* 1c8 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1c9 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ca */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cb */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cc */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cd */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ce */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cf */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1d0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1da */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1db */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dc */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dd */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1de */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1df */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ea */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1eb */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ec */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ed */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ee */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ef */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1f0 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f1 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f2 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f3 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f4 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f5 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f6 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f7 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f8 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f9 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fa */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fb */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fc */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fd */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fe */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1ff */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, //--------------------------------------------------------- //--------------------------------------------------------- /////////////////////////////////////////////////////////// //--------------------------------------------------------- //--------------------------------------------------------- /* 00 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EEbGb, NULL }, /* 01 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EEwGw, NULL }, /* 02 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GbEEb, NULL }, /* 03 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GwEEw, NULL }, /* 04 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: ADD_ALIb, NULL }, /* 05 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: ADD_AXIw, NULL }, /* 06 */ { 0, &BX_CPU_C:: PUSH_ES , NULL }, /* 07 */ { 0, &BX_CPU_C:: POP_ES , NULL }, /* 08 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EEbGb, NULL }, /* 09 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EEwGw, NULL }, /* 0a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GbEEb, NULL }, /* 0b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GwEEw, NULL }, /* 0c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: OR_ALIb, NULL }, /* 0d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: OR_AXIw, NULL }, /* 0e */ { 0, &BX_CPU_C:: PUSH_CS , NULL }, /* 0f */ { BxAnother, &BX_CPU_C:: BxError , NULL },// 2-byte escape /* 10 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EEbGb, NULL }, /* 11 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EEwGw, NULL }, /* 12 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GbEEb, NULL }, /* 13 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GwEEw, NULL }, /* 14 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: ADC_ALIb, NULL }, /* 15 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: ADC_AXIw, NULL }, /* 16 */ { 0, &BX_CPU_C:: PUSH_SS , NULL }, /* 17 */ { 0, &BX_CPU_C:: POP_SS , NULL }, /* 18 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EEbGb, NULL }, /* 19 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EEwGw, NULL }, /* 1a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GbEEb, NULL }, /* 1b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GwEEw, NULL }, /* 1c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: SBB_ALIb, NULL }, /* 1d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: SBB_AXIw, NULL }, /* 1e */ { 0, &BX_CPU_C:: PUSH_DS , NULL }, /* 1f */ { 0, &BX_CPU_C:: POP_DS , NULL }, /* 20 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EEbGb, NULL }, /* 21 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EEwGw, NULL }, /* 22 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GbEEb, NULL }, /* 23 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GwEEw, NULL }, /* 24 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: AND_ALIb, NULL }, /* 25 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: AND_AXIw, NULL }, /* 26 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 27 */ { 0, &BX_CPU_C:: DAA, NULL }, /* 28 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EEbGb, NULL }, /* 29 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EEwGw, NULL }, /* 2a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GbEEb, NULL }, /* 2b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GwEEw, NULL }, /* 2c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: SUB_ALIb, NULL }, /* 2d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: SUB_AXIw, NULL }, /* 2e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 2f */ { 0, &BX_CPU_C:: DAS, NULL }, /* 30 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EEbGb, NULL }, /* 31 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EEwGw, NULL }, /* 32 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GbEEb, NULL }, /* 33 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GwEEw, NULL }, /* 34 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: XOR_ALIb, NULL }, /* 35 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: XOR_AXIw, NULL }, /* 36 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 37 */ { 0, &BX_CPU_C:: AAA, NULL }, /* 38 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EEbGb, NULL }, /* 39 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EEwGw, NULL }, /* 3a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GbEEb, NULL }, /* 3b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GwEEw, NULL }, /* 3c */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: CMP_ALIb, NULL }, /* 3d */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: CMP_AXIw, NULL }, /* 3e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 3f */ { 0, &BX_CPU_C:: AAS, NULL }, /* 40 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 41 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 42 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 43 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 44 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 45 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 46 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 47 */ { BxOS16 | 0, &BX_CPU_C:: INC_RX, NULL }, /* 48 */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 49 */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4a */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4b */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4c */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4d */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4e */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 4f */ { BxOS16 | 0, &BX_CPU_C:: DEC_RX, NULL }, /* 50 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 51 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 52 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 53 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 54 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 55 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 56 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 57 */ { BxOS16 | 0, &BX_CPU_C:: PUSH_RX , NULL }, /* 58 */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 59 */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5a */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5b */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5c */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5d */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5e */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 5f */ { BxOS16 | 0, &BX_CPU_C:: POP_RX , NULL }, /* 60 */ { BxOS16 | 0, &BX_CPU_C:: PUSHAD16 , NULL }, /* 61 */ { BxOS16 | 0, &BX_CPU_C:: POPAD16 , NULL }, /* 62 */ { BxAnother, &BX_CPU_C:: BOUND_GvMa , NULL }, /* 63 */ { BxAnother, &BX_CPU_C:: ARPL_EwGw , NULL }, /* 64 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 65 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 66 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 67 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 68 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: PUSH_Iw , NULL }, /* 69 */ { BxOS16 | BxAnother | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: IMUL_GwEEwIw , NULL }, /* 6a */ { BxOS16 | BxImmediate_Ib_SE, &BX_CPU_C:: PUSH_Iw , NULL }, /* 6b */ { BxOS16 | BxAnother | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: IMUL_GwEEwIw , NULL }, /* 6c */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSB }, /* 6d */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSW }, /* 6e */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSB }, /* 6f */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSW }, /* 70 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc0_Jw, NULL }, /* 71 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc1_Jw, NULL }, /* 72 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc2_Jw, NULL }, /* 73 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc3_Jw, NULL }, /* 74 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc4_Jw, NULL }, /* 75 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc5_Jw, NULL }, /* 76 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc6_Jw, NULL }, /* 77 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc7_Jw, NULL }, /* 78 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc8_Jw, NULL }, /* 79 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc9_Jw, NULL }, /* 7a */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcca_Jw, NULL }, /* 7b */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccb_Jw, NULL }, /* 7c */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccc_Jw, NULL }, /* 7d */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccd_Jw, NULL }, /* 7e */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcce_Jw, NULL }, /* 7f */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccf_Jw, NULL }, /* 80 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEbIb }, /* 81 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEwIw }, /* 82 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEbIb }, /* 83 */ { BxOS16 | BxAnother | BxGroup1 | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEwIsb }, /* 84 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EEbGb, NULL }, /* 85 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EEwGw, NULL }, /* 86 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EEbGb, NULL }, /* 87 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EEwGw, NULL }, /* 88 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EEbGb, NULL }, /* 89 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EEwGw, NULL }, /* 8a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GbEEb, NULL }, /* 8b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GwEEw, NULL }, /* 8c */ { BxAnother, &BX_CPU_C:: MOV_EwSw , NULL }, /* 8d */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: LEA_GwM , NULL }, /* 8e */ { BxAnother, &BX_CPU_C:: MOV_SwEw , NULL }, /* 8f */ { BxOS16 | BxAnother | BxGroupN | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0x8fEEw }, /* 90 */ { BxOS16 | 0, &BX_CPU_C:: NOP, NULL }, /* 91 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 92 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 93 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 94 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 95 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 96 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 97 */ { BxOS16 | 0, &BX_CPU_C:: XCHG_RXAX, NULL }, /* 98 */ { BxOS16 | 0, &BX_CPU_C:: CBW, NULL }, /* 99 */ { BxOS16 | 0, &BX_CPU_C:: CWD, NULL }, /* 9a */ { BxOS16 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: CALL16_Ap, NULL }, /* 9b */ { 0, &BX_CPU_C:: FWAIT , NULL }, /* 9c */ { 0, &BX_CPU_C:: PUSHF , NULL }, /* 9d */ { 0, &BX_CPU_C:: POPF , NULL }, /* 9e */ { 0, &BX_CPU_C:: SAHF, NULL }, /* 9f */ { 0, &BX_CPU_C:: LAHF, NULL }, /* a0 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_ALOb, NULL }, /* a1 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_AXOw, NULL }, /* a2 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_ObAL, NULL }, /* a3 */ { BxOS16 | BxImmediate_O, &BX_CPU_C:: MOV_OwAX, NULL }, /* a4 */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSB }, /* a5 */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSW }, /* a6 */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSB }, /* a7 */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSW }, /* a8 */ { BxOS16 | BxImmediate_Ib, &BX_CPU_C:: TEST_ALIb, NULL }, /* a9 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: TEST_AXIw, NULL }, /* aa */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSB }, /* ab */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSW }, /* ac */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSB }, /* ad */ { BxOS16 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSW }, /* ae */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASB }, /* af */ { BxOS16 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASW }, /* b0 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b1 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b2 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b3 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b4 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b5 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b6 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b7 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b8 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* b9 */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* ba */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bb */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bc */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bd */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* be */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* bf */ { BxOS16 | BxImmediate_Iv, &BX_CPU_C:: MOV_RXIw, NULL }, /* c0 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEbIb }, /* c1 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEwIb }, /* c2 */ { BxOS16 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETnear16_Iw, NULL }, /* c3 */ { BxOS16 | BxBranch_absolute, &BX_CPU_C:: RETnear16, NULL }, /* c4 */ { BxAnother, &BX_CPU_C:: LES_GvMp , NULL }, /* c5 */ { BxAnother, &BX_CPU_C:: LDS_GvMp , NULL }, /* c6 */ { BxOS16 | BxAnother | BxGroupN | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc6EEbIb }, /* c7 */ { BxOS16 | BxAnother | BxGroupN | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc7EEwIw }, /* c8 */ { BxImmediate_IwIb, &BX_CPU_C:: ENTER_IwIb , NULL }, /* c9 */ { 0, &BX_CPU_C:: LEAVE , NULL }, /* ca */ { BxOS16 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETfar16_Iw, NULL }, /* cb */ { BxOS16 | BxBranch_absolute, &BX_CPU_C:: RETfar16, NULL }, /* cc */ { BxBranch_absolute, &BX_CPU_C:: INT3, NULL }, /* cd */ { BxBranch_absolute | BxImmediate_Ib, &BX_CPU_C:: INT_Ib, NULL }, /* ce */ { BxBranch_absolute, &BX_CPU_C:: INTO, NULL }, /* cf */ { BxOS16 | BxBranch_absolute, &BX_CPU_C:: IRET16, NULL }, /* d0 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEb_1 }, /* d1 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEw_1 }, /* d2 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEbCL }, /* d3 */ { BxOS16 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEwCL }, /* d4 */ { BxImmediate_Ib, &BX_CPU_C:: AAM, NULL }, /* d5 */ { BxImmediate_Ib, &BX_CPU_C:: AAD, NULL }, /* d6 */ { 0, &BX_CPU_C:: SALC, NULL }, /* d7 */ { 0, &BX_CPU_C:: XLAT, NULL }, /* d8 */ { BxAnother, &BX_CPU_C:: ESC0 , NULL }, /* d9 */ { BxAnother, &BX_CPU_C:: ESC1 , NULL }, /* da */ { BxAnother, &BX_CPU_C:: ESC2 , NULL }, /* db */ { BxAnother, &BX_CPU_C:: ESC3 , NULL }, /* dc */ { BxAnother, &BX_CPU_C:: ESC4 , NULL }, /* dd */ { BxAnother, &BX_CPU_C:: ESC5 , NULL }, /* de */ { BxAnother, &BX_CPU_C:: ESC6 , NULL }, /* df */ { BxAnother, &BX_CPU_C:: ESC7 , NULL }, /* e0 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPNE_Jw, NULL }, /* e1 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPE_Jw, NULL }, /* e2 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOP_Jw, NULL }, /* e3 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JCXZ_Jw, NULL }, /* e4 */ { BxImmediate_Ib, &BX_CPU_C:: IN_ALIb , NULL }, /* e5 */ { BxImmediate_Ib, &BX_CPU_C:: IN_eAXIb , NULL }, /* e6 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbAL , NULL }, /* e7 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbeAX , NULL }, /* e8 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: CALL_Jw, NULL }, /* e9 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: JMP_Jw, NULL }, /* ea */ { BxOS16 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: JMP16_Ap, NULL }, /* eb */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JMP_Jw, NULL }, /* ec */ { 0, &BX_CPU_C:: IN_ALDX , NULL }, /* ed */ { 0, &BX_CPU_C:: IN_eAXDX , NULL }, /* ee */ { 0, &BX_CPU_C:: OUT_DXAL , NULL }, /* ef */ { 0, &BX_CPU_C:: OUT_DXeAX , NULL }, /* f0 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f1 */ { BxBranch_absolute, &BX_CPU_C:: INT1, NULL }, /* f2 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f3 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f4 */ { 0, &BX_CPU_C:: HLT , NULL }, /* f5 */ { 0, &BX_CPU_C:: CMC, NULL }, /* f6 */ { BxOS16 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EEb }, /* f7 */ { BxOS16 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EEw }, /* f8 */ { 0, &BX_CPU_C:: CLC, NULL }, /* f9 */ { 0, &BX_CPU_C:: STC, NULL }, /* fa */ { 0, &BX_CPU_C:: CLI , NULL }, /* fb */ { 0, &BX_CPU_C:: STI , NULL }, /* fc */ { 0, &BX_CPU_C:: CLD , NULL }, /* fd */ { 0, &BX_CPU_C:: STD , NULL }, /* fe */ { BxOS16 | BxAnother | BxGroup4 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG4EEb }, /* ff */ { BxOS16 | BxAnother | BxGroup5 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG5EEw }, //--------------------------------------------------------- /* 100 */ { BxAnother | BxGroup6, &BX_CPU_C:: BxError, BxOpcodeInfoG6 }, /* 101 */ { BxAnother | BxGroup7, &BX_CPU_C:: BxError, BxOpcodeInfoG7 }, /* 102 */ { BxAnother, &BX_CPU_C:: LAR_GvEw , NULL }, /* 103 */ { BxAnother, &BX_CPU_C:: LSL_GvEw , NULL }, /* 104 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 105 */ { 0, &BX_CPU_C:: LOADALL , NULL }, /* 106 */ { 0, &BX_CPU_C:: CLTS , NULL }, /* 107 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 108 */ { 0, &BX_CPU_C:: INVD , NULL }, /* 109 */ { 0, &BX_CPU_C:: WBINVD , NULL }, /* 10a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 110 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 111 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 112 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 113 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 114 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 115 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 116 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 117 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 118 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 119 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 120 */ { BxAnother, &BX_CPU_C:: MOV_RdCd , NULL }, /* 121 */ { BxAnother, &BX_CPU_C:: MOV_RdDd , NULL }, /* 122 */ { BxAnother, &BX_CPU_C:: MOV_CdRd , NULL }, /* 123 */ { BxAnother, &BX_CPU_C:: MOV_DdRd , NULL }, /* 124 */ { BxAnother, &BX_CPU_C:: MOV_RdTd , NULL }, /* 125 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 126 */ { BxAnother, &BX_CPU_C:: MOV_TdRd , NULL }, /* 127 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 128 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 129 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 130 */ { 0, &BX_CPU_C:: WRMSR , NULL }, /* 131 */ { 0, &BX_CPU_C:: RDTSC , NULL }, /* 132 */ { 0, &BX_CPU_C:: RDMSR , NULL }, /* 133 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 134 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 135 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 136 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 137 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 138 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 139 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 140 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 141 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 142 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 143 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 144 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 145 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 146 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 147 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 148 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 149 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 14a */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 14b */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 14c */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 14d */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 14e */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 14f */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GwEEw, NULL }, /* 150 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 151 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 152 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 153 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 154 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 155 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 156 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 157 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 158 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 159 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 160 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 161 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 162 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 163 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 164 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 165 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 166 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 167 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 168 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 169 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 170 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 171 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 172 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 173 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 174 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 175 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 176 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 177 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 178 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 179 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 180 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc0_Jw, NULL }, /* 181 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc1_Jw, NULL }, /* 182 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc2_Jw, NULL }, /* 183 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc3_Jw, NULL }, /* 184 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc4_Jw, NULL }, /* 185 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc5_Jw, NULL }, /* 186 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc6_Jw, NULL }, /* 187 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc7_Jw, NULL }, /* 188 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc8_Jw, NULL }, /* 189 */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcc9_Jw, NULL }, /* 18a */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcca_Jw, NULL }, /* 18b */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccb_Jw, NULL }, /* 18c */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccc_Jw, NULL }, /* 18d */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccd_Jw, NULL }, /* 18e */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jcce_Jw, NULL }, /* 18f */ { BxOS16 | BxBranch_relative | BxImmediate_BrOff16, &BX_CPU_C:: Jccf_Jw, NULL }, /* 190 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 191 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 192 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 193 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 194 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 195 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 196 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 197 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 198 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 199 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19a */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19b */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19c */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19d */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19e */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19f */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 1a0 */ { 0, &BX_CPU_C:: PUSH_FS , NULL }, /* 1a1 */ { 0, &BX_CPU_C:: POP_FS , NULL }, /* 1a2 */ { 0, &BX_CPU_C:: CPUID , NULL }, /* 1a3 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BT_EEwGw , NULL }, /* 1a4 */ { BxOS16 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHLD_EEwGw, NULL }, /* 1a5 */ { BxOS16 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHLD_EEwGwCL, NULL }, /* 1a6 */ { 0, &BX_CPU_C:: CMPXCHG_XBTS , NULL }, /* 1a7 */ { 0, &BX_CPU_C:: CMPXCHG_IBTS , NULL }, /* 1a8 */ { 0, &BX_CPU_C:: PUSH_GS , NULL }, /* 1a9 */ { 0, &BX_CPU_C:: POP_GS , NULL }, /* 1aa */ { 0, &BX_CPU_C:: RSM , NULL }, /* 1ab */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTS_EEwGw , NULL }, /* 1ac */ { BxOS16 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHRD_EEwGw, NULL }, /* 1ad */ { BxOS16 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHRD_EEwGwCL, NULL }, /* 1ae */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1af */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: IMUL_GwEEw, NULL }, /* 1b0 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EEbGb, NULL }, /* 1b1 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EEwGw, NULL }, /* 1b2 */ { BxAnother, &BX_CPU_C:: LSS_GvMp , NULL }, /* 1b3 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTR_EEwGw , NULL }, /* 1b4 */ { BxAnother, &BX_CPU_C:: LFS_GvMp , NULL }, /* 1b5 */ { BxAnother, &BX_CPU_C:: LGS_GvMp , NULL }, /* 1b6 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GwEEb, NULL }, /* 1b7 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GwEEw, NULL }, /* 1b8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1b9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ba */ { BxOS16 | BxAnother | BxGroup8 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG8EEwIb }, /* 1bb */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTC_EEwGw , NULL }, /* 1bc */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSF_GwEEw , NULL }, /* 1bd */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSR_GwEEw , NULL }, /* 1be */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GwEEb, NULL }, /* 1bf */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GwEEw, NULL }, /* 1c0 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EEbGb, NULL }, /* 1c1 */ { BxOS16 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EEwGw, NULL }, /* 1c2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c7 */ { BxAnother | BxGroup9, &BX_CPU_C:: BxError, BxOpcodeInfoG9 }, /* 1c8 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1c9 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ca */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cb */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cc */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cd */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ce */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cf */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1d0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1da */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1db */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dc */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dd */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1de */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1df */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ea */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1eb */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ec */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ed */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ee */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ef */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1f0 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f1 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f2 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f3 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f4 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f5 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f6 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f7 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f8 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f9 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fa */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fb */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fc */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fd */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fe */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1ff */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, //--------------------------------------------------------- //--------------------------------------------------------- /* 00 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EEbGb, NULL }, /* 01 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_EEdGd, NULL }, /* 02 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GbEEb, NULL }, /* 03 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADD_GdEEd, NULL }, /* 04 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: ADD_ALIb, NULL }, /* 05 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: ADD_EAXId, NULL }, /* 06 */ { 0, &BX_CPU_C:: PUSH_ES , NULL }, /* 07 */ { 0, &BX_CPU_C:: POP_ES , NULL }, /* 08 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EEbGb, NULL }, /* 09 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_EEdGd, NULL }, /* 0a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GbEEb, NULL }, /* 0b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: OR_GdEEd, NULL }, /* 0c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: OR_ALIb, NULL }, /* 0d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: OR_EAXId, NULL }, /* 0e */ { 0, &BX_CPU_C:: PUSH_CS , NULL }, /* 0f */ { BxAnother, &BX_CPU_C:: BxError , NULL },// 2-byte escape /* 10 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EEbGb, NULL }, /* 11 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_EEdGd, NULL }, /* 12 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GbEEb, NULL }, /* 13 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: ADC_GdEEd, NULL }, /* 14 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: ADC_ALIb, NULL }, /* 15 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: ADC_EAXId, NULL }, /* 16 */ { 0, &BX_CPU_C:: PUSH_SS , NULL }, /* 17 */ { 0, &BX_CPU_C:: POP_SS , NULL }, /* 18 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EEbGb, NULL }, /* 19 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_EEdGd, NULL }, /* 1a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GbEEb, NULL }, /* 1b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SBB_GdEEd, NULL }, /* 1c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: SBB_ALIb, NULL }, /* 1d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: SBB_EAXId, NULL }, /* 1e */ { 0, &BX_CPU_C:: PUSH_DS , NULL }, /* 1f */ { 0, &BX_CPU_C:: POP_DS , NULL }, /* 20 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EEbGb, NULL }, /* 21 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_EEdGd, NULL }, /* 22 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GbEEb, NULL }, /* 23 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: AND_GdEEd, NULL }, /* 24 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: AND_ALIb, NULL }, /* 25 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: AND_EAXId, NULL }, /* 26 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 27 */ { 0, &BX_CPU_C:: DAA, NULL }, /* 28 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EEbGb, NULL }, /* 29 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_EEdGd, NULL }, /* 2a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GbEEb, NULL }, /* 2b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: SUB_GdEEd, NULL }, /* 2c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: SUB_ALIb, NULL }, /* 2d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: SUB_EAXId, NULL }, /* 2e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 2f */ { 0, &BX_CPU_C:: DAS, NULL }, /* 30 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EEbGb, NULL }, /* 31 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_EEdGd, NULL }, /* 32 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GbEEb, NULL }, /* 33 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XOR_GdEEd, NULL }, /* 34 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: XOR_ALIb, NULL }, /* 35 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: XOR_EAXId, NULL }, /* 36 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 37 */ { 0, &BX_CPU_C:: AAA, NULL }, /* 38 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EEbGb, NULL }, /* 39 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_EEdGd, NULL }, /* 3a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GbEEb, NULL }, /* 3b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMP_GdEEd, NULL }, /* 3c */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: CMP_ALIb, NULL }, /* 3d */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: CMP_EAXId, NULL }, /* 3e */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 3f */ { 0, &BX_CPU_C:: AAS, NULL }, /* 40 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 41 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 42 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 43 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 44 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 45 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 46 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 47 */ { BxOS32 | 0, &BX_CPU_C:: INC_ERX, NULL }, /* 48 */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 49 */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4a */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4b */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4c */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4d */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4e */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 4f */ { BxOS32 | 0, &BX_CPU_C:: DEC_ERX, NULL }, /* 50 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 51 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 52 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 53 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 54 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 55 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 56 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 57 */ { BxOS32 | 0, &BX_CPU_C:: PUSH_ERX , NULL }, /* 58 */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 59 */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5a */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5b */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5c */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5d */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5e */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 5f */ { BxOS32 | 0, &BX_CPU_C:: POP_ERX , NULL }, /* 60 */ { BxOS32 | 0, &BX_CPU_C:: PUSHAD32 , NULL }, /* 61 */ { BxOS32 | 0, &BX_CPU_C:: POPAD32 , NULL }, /* 62 */ { BxAnother, &BX_CPU_C:: BOUND_GvMa , NULL }, /* 63 */ { BxAnother, &BX_CPU_C:: ARPL_EwGw , NULL }, /* 64 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 65 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 66 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 67 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* 68 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: PUSH_Id , NULL }, /* 69 */ { BxOS32 | BxAnother | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: IMUL_GdEEdId , NULL }, /* 6a */ { BxOS32 | BxImmediate_Ib_SE, &BX_CPU_C:: PUSH_Id , NULL }, /* 6b */ { BxOS32 | BxAnother | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: IMUL_GdEEdId , NULL }, /* 6c */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSB }, /* 6d */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_INSD }, /* 6e */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSB }, /* 6f */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_OUTSD }, /* 70 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc0_Jd, NULL }, /* 71 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc1_Jd, NULL }, /* 72 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc2_Jd, NULL }, /* 73 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc3_Jd, NULL }, /* 74 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc4_Jd, NULL }, /* 75 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc5_Jd, NULL }, /* 76 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc6_Jd, NULL }, /* 77 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc7_Jd, NULL }, /* 78 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc8_Jd, NULL }, /* 79 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcc9_Jd, NULL }, /* 7a */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcca_Jd, NULL }, /* 7b */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccb_Jd, NULL }, /* 7c */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccc_Jd, NULL }, /* 7d */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccd_Jd, NULL }, /* 7e */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jcce_Jd, NULL }, /* 7f */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: Jccf_Jd, NULL }, /* 80 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEbIb }, /* 81 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEdId }, /* 82 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEbIb }, /* 83 */ { BxOS32 | BxAnother | BxGroup1 | BxImmediate_Ib_SE | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG1EEdIsb }, /* 84 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EEbGb, NULL }, /* 85 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: TEST_EEdGd, NULL }, /* 86 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EEbGb, NULL }, /* 87 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XCHG_EEdGd, NULL }, /* 88 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EEbGb, NULL }, /* 89 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_EEdGd, NULL }, /* 8a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GbEEb, NULL }, /* 8b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOV_GdEEd, NULL }, /* 8c */ { BxAnother, &BX_CPU_C:: MOV_EwSw , NULL }, /* 8d */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: LEA_GdM , NULL }, /* 8e */ { BxAnother, &BX_CPU_C:: MOV_SwEw , NULL }, /* 8f */ { BxOS32 | BxAnother | BxGroupN | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0x8fEEd }, /* 90 */ { BxOS32 | 0, &BX_CPU_C:: NOP, NULL }, /* 91 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 92 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 93 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 94 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 95 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 96 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 97 */ { BxOS32 | 0, &BX_CPU_C:: XCHG_ERXEAX, NULL }, /* 98 */ { BxOS32 | 0, &BX_CPU_C:: CWDE, NULL }, /* 99 */ { BxOS32 | 0, &BX_CPU_C:: CDQ, NULL }, /* 9a */ { BxOS32 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: CALL32_Ap, NULL }, /* 9b */ { 0, &BX_CPU_C:: FWAIT , NULL }, /* 9c */ { 0, &BX_CPU_C:: PUSHF , NULL }, /* 9d */ { 0, &BX_CPU_C:: POPF , NULL }, /* 9e */ { 0, &BX_CPU_C:: SAHF, NULL }, /* 9f */ { 0, &BX_CPU_C:: LAHF, NULL }, /* a0 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_ALOb, NULL }, /* a1 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_EAXOd, NULL }, /* a2 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_ObAL, NULL }, /* a3 */ { BxOS32 | BxImmediate_O, &BX_CPU_C:: MOV_OdEAX, NULL }, /* a4 */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSB }, /* a5 */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_MOVSD }, /* a6 */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSB }, /* a7 */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_CMPSD }, /* a8 */ { BxOS32 | BxImmediate_Ib, &BX_CPU_C:: TEST_ALIb, NULL }, /* a9 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: TEST_EAXId, NULL }, /* aa */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSB }, /* ab */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_STOSD }, /* ac */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSB }, /* ad */ { BxOS32 | BxRepeatable, &BX_CPU_C:: BxError, BxOpcodeInfoG_LODSD }, /* ae */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASB }, /* af */ { BxOS32 | BxRepeatable | BxRepeatableZF, &BX_CPU_C:: BxError, BxOpcodeInfoG_SCASD }, /* b0 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b1 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b2 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b3 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RLIb, NULL }, /* b4 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b5 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b6 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b7 */ { BxImmediate_Ib, &BX_CPU_C:: MOV_RHIb, NULL }, /* b8 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* b9 */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* ba */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bb */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bc */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bd */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* be */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* bf */ { BxOS32 | BxImmediate_Iv, &BX_CPU_C:: MOV_ERXId, NULL }, /* c0 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEbIb }, /* c1 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEdIb }, /* c2 */ { BxOS32 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETnear32_Iw, NULL }, /* c3 */ { BxOS32 | BxBranch_absolute, &BX_CPU_C:: RETnear32, NULL }, /* c4 */ { BxAnother, &BX_CPU_C:: LES_GvMp , NULL }, /* c5 */ { BxAnother, &BX_CPU_C:: LDS_GvMp , NULL }, /* c6 */ { BxOS32 | BxAnother | BxGroupN | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc6EEbIb }, /* c7 */ { BxOS32 | BxAnother | BxGroupN | BxImmediate_Iv | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG0xc7EEdId }, /* c8 */ { BxImmediate_IwIb, &BX_CPU_C:: ENTER_IwIb , NULL }, /* c9 */ { 0, &BX_CPU_C:: LEAVE , NULL }, /* ca */ { BxOS32 | BxBranch_absolute | BxImmediate_Iw, &BX_CPU_C:: RETfar32_Iw, NULL }, /* cb */ { BxOS32 | BxBranch_absolute, &BX_CPU_C:: RETfar32, NULL }, /* cc */ { BxBranch_absolute, &BX_CPU_C:: INT3, NULL }, /* cd */ { BxBranch_absolute | BxImmediate_Ib, &BX_CPU_C:: INT_Ib, NULL }, /* ce */ { BxBranch_absolute, &BX_CPU_C:: INTO, NULL }, /* cf */ { BxOS32 | BxBranch_absolute, &BX_CPU_C:: IRET32, NULL }, /* d0 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEb_1 }, /* d1 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_1 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEd_1 }, /* d2 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEbCL }, /* d3 */ { BxOS32 | BxAnother | BxGroup2 | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG2EEdCL }, /* d4 */ { BxImmediate_Ib, &BX_CPU_C:: AAM, NULL }, /* d5 */ { BxImmediate_Ib, &BX_CPU_C:: AAD, NULL }, /* d6 */ { 0, &BX_CPU_C:: SALC, NULL }, /* d7 */ { 0, &BX_CPU_C:: XLAT, NULL }, /* d8 */ { BxAnother, &BX_CPU_C:: ESC0 , NULL }, /* d9 */ { BxAnother, &BX_CPU_C:: ESC1 , NULL }, /* da */ { BxAnother, &BX_CPU_C:: ESC2 , NULL }, /* db */ { BxAnother, &BX_CPU_C:: ESC3 , NULL }, /* dc */ { BxAnother, &BX_CPU_C:: ESC4 , NULL }, /* dd */ { BxAnother, &BX_CPU_C:: ESC5 , NULL }, /* de */ { BxAnother, &BX_CPU_C:: ESC6 , NULL }, /* df */ { BxAnother, &BX_CPU_C:: ESC7 , NULL }, /* e0 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPNE_Jd, NULL }, /* e1 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOPE_Jd, NULL }, /* e2 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: LOOP_Jd, NULL }, /* e3 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JCXZ_Jd, NULL }, /* e4 */ { BxImmediate_Ib, &BX_CPU_C:: IN_ALIb , NULL }, /* e5 */ { BxImmediate_Ib, &BX_CPU_C:: IN_eAXIb , NULL }, /* e6 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbAL , NULL }, /* e7 */ { BxImmediate_Ib, &BX_CPU_C:: OUT_IbeAX , NULL }, /* e8 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: CALL_Jd, NULL }, /* e9 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: JMP_Jd, NULL }, /* ea */ { BxOS32 | BxBranch_absolute | BxImmediate_IvIw, &BX_CPU_C:: JMP32_Ap, NULL }, /* eb */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff8, &BX_CPU_C:: JMP_Jd, NULL }, /* ec */ { 0, &BX_CPU_C:: IN_ALDX , NULL }, /* ed */ { 0, &BX_CPU_C:: IN_eAXDX , NULL }, /* ee */ { 0, &BX_CPU_C:: OUT_DXAL , NULL }, /* ef */ { 0, &BX_CPU_C:: OUT_DXeAX , NULL }, /* f0 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f1 */ { BxBranch_absolute, &BX_CPU_C:: INT1, NULL }, /* f2 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f3 */ { BxPrefix | BxAnother, &BX_CPU_C:: BxError , NULL }, /* f4 */ { 0, &BX_CPU_C:: HLT , NULL }, /* f5 */ { 0, &BX_CPU_C:: CMC, NULL }, /* f6 */ { BxOS32 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EEb }, /* f7 */ { BxOS32 | BxAnother | BxGroup3 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG3EEd }, /* f8 */ { 0, &BX_CPU_C:: CLC, NULL }, /* f9 */ { 0, &BX_CPU_C:: STC, NULL }, /* fa */ { 0, &BX_CPU_C:: CLI , NULL }, /* fb */ { 0, &BX_CPU_C:: STI , NULL }, /* fc */ { 0, &BX_CPU_C:: CLD , NULL }, /* fd */ { 0, &BX_CPU_C:: STD , NULL }, /* fe */ { BxOS32 | BxAnother | BxGroup4 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG4EEb }, /* ff */ { BxOS32 | BxAnother | BxGroup5 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG5EEd }, //--------------------------------------------------------- /* 100 */ { BxAnother | BxGroup6, &BX_CPU_C:: BxError, BxOpcodeInfoG6 }, /* 101 */ { BxAnother | BxGroup7, &BX_CPU_C:: BxError, BxOpcodeInfoG7 }, /* 102 */ { BxAnother, &BX_CPU_C:: LAR_GvEw , NULL }, /* 103 */ { BxAnother, &BX_CPU_C:: LSL_GvEw , NULL }, /* 104 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 105 */ { 0, &BX_CPU_C:: LOADALL , NULL }, /* 106 */ { 0, &BX_CPU_C:: CLTS , NULL }, /* 107 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 108 */ { 0, &BX_CPU_C:: INVD , NULL }, /* 109 */ { 0, &BX_CPU_C:: WBINVD , NULL }, /* 10a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 10f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 110 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 111 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 112 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 113 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 114 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 115 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 116 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 117 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 118 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 119 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 11f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 120 */ { BxAnother, &BX_CPU_C:: MOV_RdCd , NULL }, /* 121 */ { BxAnother, &BX_CPU_C:: MOV_RdDd , NULL }, /* 122 */ { BxAnother, &BX_CPU_C:: MOV_CdRd , NULL }, /* 123 */ { BxAnother, &BX_CPU_C:: MOV_DdRd , NULL }, /* 124 */ { BxAnother, &BX_CPU_C:: MOV_RdTd , NULL }, /* 125 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 126 */ { BxAnother, &BX_CPU_C:: MOV_TdRd , NULL }, /* 127 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 128 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 129 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 12f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 130 */ { 0, &BX_CPU_C:: WRMSR , NULL }, /* 131 */ { 0, &BX_CPU_C:: RDTSC , NULL }, /* 132 */ { 0, &BX_CPU_C:: RDMSR , NULL }, /* 133 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 134 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 135 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 136 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 137 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 138 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 139 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 13f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 140 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 141 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 142 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 143 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 144 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 145 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 146 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 147 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 148 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 149 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 14a */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 14b */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 14c */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 14d */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 14e */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 14f */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMOV_GdEEd, NULL }, /* 150 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 151 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 152 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 153 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 154 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 155 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 156 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 157 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 158 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 159 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 15f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 160 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 161 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 162 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 163 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 164 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 165 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 166 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 167 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 168 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 169 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 16f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 170 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 171 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 172 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 173 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 174 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 175 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 176 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 177 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 178 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 179 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17a */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17b */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17c */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17d */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17e */ { 0, &BX_CPU_C:: BxError , NULL }, /* 17f */ { 0, &BX_CPU_C:: BxError , NULL }, /* 180 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc0_Jd, NULL }, /* 181 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc1_Jd, NULL }, /* 182 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc2_Jd, NULL }, /* 183 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc3_Jd, NULL }, /* 184 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc4_Jd, NULL }, /* 185 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc5_Jd, NULL }, /* 186 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc6_Jd, NULL }, /* 187 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc7_Jd, NULL }, /* 188 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc8_Jd, NULL }, /* 189 */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcc9_Jd, NULL }, /* 18a */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcca_Jd, NULL }, /* 18b */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccb_Jd, NULL }, /* 18c */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccc_Jd, NULL }, /* 18d */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccd_Jd, NULL }, /* 18e */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jcce_Jd, NULL }, /* 18f */ { BxOS32 | BxBranch_relative | BxImmediate_BrOff32, &BX_CPU_C:: Jccf_Jd, NULL }, /* 190 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 191 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 192 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 193 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 194 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 195 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 196 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 197 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 198 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 199 */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19a */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19b */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19c */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19d */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19e */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 19f */ { BxAnother | BxSplitMod11b, &BX_CPU_C:: SETcc_EEb, NULL }, /* 1a0 */ { 0, &BX_CPU_C:: PUSH_FS , NULL }, /* 1a1 */ { 0, &BX_CPU_C:: POP_FS , NULL }, /* 1a2 */ { 0, &BX_CPU_C:: CPUID , NULL }, /* 1a3 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BT_EEdGd , NULL }, /* 1a4 */ { BxOS32 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHLD_EEdGd, NULL }, /* 1a5 */ { BxOS32 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHLD_EEdGdCL, NULL }, /* 1a6 */ { 0, &BX_CPU_C:: CMPXCHG_XBTS , NULL }, /* 1a7 */ { 0, &BX_CPU_C:: CMPXCHG_IBTS , NULL }, /* 1a8 */ { 0, &BX_CPU_C:: PUSH_GS , NULL }, /* 1a9 */ { 0, &BX_CPU_C:: POP_GS , NULL }, /* 1aa */ { 0, &BX_CPU_C:: RSM , NULL }, /* 1ab */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTS_EEdGd , NULL }, /* 1ac */ { BxOS32 | BxAnother | BxImmediate_Ib | BxSplitMod11b, &BX_CPU_C:: SHRD_EEdGd, NULL }, /* 1ad */ { BxOS32 | BxAnother | BxImmediate_CL | BxSplitMod11b, &BX_CPU_C:: SHRD_EEdGdCL, NULL }, /* 1ae */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1af */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: IMUL_GdEEd, NULL }, /* 1b0 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EEbGb, NULL }, /* 1b1 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: CMPXCHG_EEdGd, NULL }, /* 1b2 */ { BxAnother, &BX_CPU_C:: LSS_GvMp , NULL }, /* 1b3 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTR_EEdGd , NULL }, /* 1b4 */ { BxAnother, &BX_CPU_C:: LFS_GvMp , NULL }, /* 1b5 */ { BxAnother, &BX_CPU_C:: LGS_GvMp , NULL }, /* 1b6 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GdEEb, NULL }, /* 1b7 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVZX_GdEEw, NULL }, /* 1b8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1b9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ba */ { BxOS32 | BxAnother | BxGroup8 | BxSplitMod11b, &BX_CPU_C:: BxError, BxOpcodeInfoG8EEdIb }, /* 1bb */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BTC_EEdGd , NULL }, /* 1bc */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSF_GdEEd , NULL }, /* 1bd */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: BSR_GdEEd , NULL }, /* 1be */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GdEEb, NULL }, /* 1bf */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: MOVSX_GdEEw, NULL }, /* 1c0 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EEbGb, NULL }, /* 1c1 */ { BxOS32 | BxAnother | BxSplitMod11b, &BX_CPU_C:: XADD_EEdGd, NULL }, /* 1c2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1c7 */ { BxAnother | BxGroup9, &BX_CPU_C:: BxError, BxOpcodeInfoG9 }, /* 1c8 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1c9 */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ca */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cb */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cc */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cd */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1ce */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1cf */ { 0, &BX_CPU_C:: BSWAP_ERX, NULL }, /* 1d0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1d9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1da */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1db */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dc */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1dd */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1de */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1df */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e0 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e1 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e2 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e3 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e4 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e5 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e6 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e7 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e8 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1e9 */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ea */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1eb */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ec */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ed */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ee */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1ef */ { 0, &BX_CPU_C:: BxError , NULL }, /* 1f0 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f1 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f2 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f3 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f4 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f5 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f6 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f7 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f8 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1f9 */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fa */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fb */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fc */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fd */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1fe */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, /* 1ff */ { 0, &BX_CPU_C:: UndefinedOpcode , NULL }, }; ================================================ FILE: Project/IntelCPU/Source/flag.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: flag_ctrl.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::SAHF(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR set_SF((RW_AH & 0x80) >> 7); BX_CPU_CLASS_PTR set_ZF((RW_AH & 0x40) >> 6); BX_CPU_CLASS_PTR set_AF((RW_AH & 0x10) >> 4); BX_CPU_CLASS_PTR set_CF(RW_AH & 0x01); BX_CPU_CLASS_PTR set_PF((RW_AH & 0x04) >> 2); } void BX_CPU_C::LAHF(BX_CPU_C *icpu,bxInstruction_c *i) { RW_AH = (BX_CPU_CLASS_PTR get_SF() ? 0x80 : 0) | (BX_CPU_CLASS_PTR get_ZF() ? 0x40 : 0) | (BX_CPU_CLASS_PTR get_AF() ? 0x10 : 0) | (BX_CPU_CLASS_PTR get_PF() ? 0x04 : 0) | (0x02) | (BX_CPU_CLASS_PTR get_CF() ? 0x01 : 0); } void BX_CPU_C::CLC(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR set_CF(0); } void BX_CPU_C::STC(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR set_CF(1); } void BX_CPU_C::CLI(BX_CPU_C *icpu,bxInstruction_c *i) { #if (X86CPU_MSWIN_MSDOS==1) BX_CPU_CLASS_PTR eflags.if_ = 0; return ; #endif #if BX_CPU_LEVEL >= 2 if (BX_CPU_CLASS_PTR protected_mode()) { if (RW_CPL > RW_IOPL) { //BX_INFO(("CLI: RW_CPL > IOPL")); /* ??? */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } } #if BX_CPU_LEVEL >= 3 else if (BX_CPU_CLASS_PTR v8086_mode()) { if (RW_IOPL != 3) { //BX_INFO(("CLI: IOPL != 3")); /* ??? */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } } #endif #endif BX_CPU_CLASS_PTR eflags.if_ = 0; } void BX_CPU_C::STI(BX_CPU_C *icpu,bxInstruction_c *i) { #if (X86CPU_MSWIN_MSDOS==1) BX_CPU_CLASS_PTR eflags.if_ = 1; return ; #endif #if BX_CPU_LEVEL >= 2 if (BX_CPU_CLASS_PTR protected_mode()) { if (RW_CPL > RW_IOPL) { //BX_INFO(("STI: RW_CPL > IOPL")); /* ??? */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } } #if BX_CPU_LEVEL >= 3 else if (BX_CPU_CLASS_PTR v8086_mode()) { if (RW_IOPL != 3) { //BX_INFO(("STI: IOPL != 3")); /* ??? */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } } #endif #endif if (!BX_CPU_CLASS_PTR eflags.if_) { BX_CPU_CLASS_PTR eflags.if_ = 1; BX_CPU_CLASS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS; BX_CPU_CLASS_PTR async_event = 1; } } void BX_CPU_C::CLD(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR eflags.df = 0; } void BX_CPU_C::STD(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR eflags.df = 1; } void BX_CPU_C::CMC(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR set_CF( !BX_CPU_CLASS_PTR get_CF() ); } void BX_CPU_C::PUSHF(BX_CPU_C *icpu,bxInstruction_c *i) { if (BX_CPU_CLASS_PTR v8086_mode() && (RW_IOPL<3)) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } #if BX_CPU_LEVEL >= 3 if (i->size_mode.os_32) { BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR read_eflags() & 0x00fcffff); } else #endif { BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR read_flags()); } } void BX_CPU_C::POPF(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL >= 3 if (BX_CPU_CLASS_PTR v8086_mode()) { if (RW_IOPL < 3) { //BX_INFO(("popf_fv: IOPL < 3")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } if (i->size_mode.os_32) { BX_PANIC(("POPFD(): not supported in virtual mode")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } } if (i->size_mode.os_32) { Bit32u eflags; BX_CPU_CLASS_PTR pop_32(&eflags); eflags &= 0x00277fd7; if (!BX_CPU_CLASS_PTR real_mode()) { BX_CPU_CLASS_PTR write_eflags(eflags, /* change IOPL? */ RW_CPL==0, /* change IF? */ RW_CPL<=RW_IOPL, 0, 0); } else { /* real mode */ BX_CPU_CLASS_PTR write_eflags(eflags, /* change IOPL? */ 1, /* change IF? */ 1, 0, 0); } } else #endif /* BX_CPU_LEVEL >= 3 */ { /* 16 bit opsize */ Bit16u flags; BX_CPU_CLASS_PTR pop_16(&flags); if (!BX_CPU_CLASS_PTR real_mode()) { BX_CPU_CLASS_PTR write_flags(flags, /* change IOPL? */ RW_CPL==0, /* change IF? */ RW_CPL<=RW_IOPL); } else { /* real mode */ BX_CPU_CLASS_PTR write_flags(flags, /* change IOPL? */ 1, /* change IF? */ 1); } } } void BX_CPU_C::SALC(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR get_CF() ) { RW_AL = 0xff; } else { RW_AL = 0x00; } } ================================================ FILE: Project/IntelCPU/Source/flag_pro.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: flag_ctrl_pro.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::write_flags(Bit16u flags, Boolean change_IOPL, Boolean change_IF) { BX_CPU_THIS_PTR set_CF(flags & 0x01); BX_CPU_THIS_PTR set_PF((flags >> 2) & 0x01); BX_CPU_THIS_PTR set_AF((flags >> 4) & 0x01); BX_CPU_THIS_PTR set_ZF((flags >> 6) & 0x01); BX_CPU_THIS_PTR set_SF((flags >> 7) & 0x01); #if 0 // +++ if (BX_CPU_THIS_PTR eflags.tf==0 && (flags&0x0100)) BX_DEBUG(( "TF 0->1" )); else if (BX_CPU_THIS_PTR eflags.tf && !(flags&0x0100)) BX_DEBUG(( "TF 1->0" )); else if (BX_CPU_THIS_PTR eflags.tf && (flags&0x0100)) BX_DEBUG(( "TF 1->1" )); #endif BX_CPU_THIS_PTR eflags.tf = (flags >> 8) & 0x01; if (BX_CPU_THIS_PTR eflags.tf) { BX_CPU_THIS_PTR async_event = 1; } if (change_IF) { if (!BX_CPU_THIS_PTR eflags.if_&&((flags >> 9) & 0x01)) { BX_CPU_THIS_PTR eflags.if_ = 1; BX_CPU_THIS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS; BX_CPU_THIS_PTR async_event = 1; } else { BX_CPU_THIS_PTR eflags.if_ = (flags >> 9) & 0x01; } } BX_CPU_THIS_PTR eflags.df = (flags >> 10) & 0x01; BX_CPU_THIS_PTR set_OF((flags >> 11) & 0x01); #if BX_CPU_LEVEL == 2 BX_CPU_THIS_PTR eflags.iopl = 0; BX_CPU_THIS_PTR eflags.nt = 0; #else if (change_IOPL) BX_CPU_THIS_PTR eflags.iopl = (flags >> 12) & 0x03; BX_CPU_THIS_PTR eflags.nt = (flags >> 14) & 0x01; #endif } #if BX_CPU_LEVEL >= 3 void BX_CPU_C::write_eflags(Bit32u eflags_raw, Boolean change_IOPL, Boolean change_IF, Boolean change_VM, Boolean change_RF) { BX_CPU_THIS_PTR set_CF(eflags_raw & 0x01); BX_CPU_THIS_PTR set_PF((eflags_raw >> 2) & 0x01); BX_CPU_THIS_PTR set_AF((eflags_raw >> 4) & 0x01); BX_CPU_THIS_PTR set_ZF((eflags_raw >> 6) & 0x01); BX_CPU_THIS_PTR set_SF((eflags_raw >> 7) & 0x01); #if 0 // +++ if (BX_CPU_THIS_PTR eflags.tf==0 && (eflags_raw&0x0100)) BX_DEBUG(( "TF 0->1" )); else if (BX_CPU_THIS_PTR eflags.tf && !(eflags_raw&0x0100)) BX_DEBUG(( "TF 1->0" )); else if (BX_CPU_THIS_PTR eflags.tf && (eflags_raw&0x0100)) BX_DEBUG(( "TF 1->1" )); #endif BX_CPU_THIS_PTR eflags.tf = (eflags_raw >> 8) & 0x01; if (BX_CPU_THIS_PTR eflags.tf) { BX_CPU_THIS_PTR async_event = 1; } if (change_IF) { if (!BX_CPU_THIS_PTR eflags.if_&&((eflags_raw >> 9) & 0x01)) { BX_CPU_THIS_PTR eflags.if_ = 1; BX_CPU_THIS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS; BX_CPU_THIS_PTR async_event = 1; } else { BX_CPU_THIS_PTR eflags.if_ = (eflags_raw >> 9) & 0x01; } } BX_CPU_THIS_PTR eflags.df = (eflags_raw >> 10) & 0x01; BX_CPU_THIS_PTR set_OF((eflags_raw >> 11) & 0x01); if (change_IOPL) BX_CPU_THIS_PTR eflags.iopl = (eflags_raw >> 12) & 0x03; BX_CPU_THIS_PTR eflags.nt = (eflags_raw >> 14) & 0x01; if (change_VM) { BX_CPU_THIS_PTR eflags.vm = (eflags_raw >> 17) & 0x01; #if BX_SUPPORT_V8086_MODE == 0 if (BX_CPU_THIS_PTR eflags.vm) BX_PANIC(("write_eflags: VM bit set: BX_SUPPORT_V8086_MODE==0")); #endif } if (change_RF) { BX_CPU_THIS_PTR eflags.rf = (eflags_raw >> 16) & 0x01; } #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR eflags.ac = (eflags_raw >> 18) & 0x01; BX_CPU_THIS_PTR eflags.id = (eflags_raw >> 21) & 0x01; #endif } #endif /* BX_CPU_LEVEL >= 3 */ Bit16u BX_CPU_C::read_flags(void) { Bit16u flags; flags = (get_CF()) | (BX_CPU_THIS_PTR eflags.bit1 << 1) | ((get_PF()) << 2) | (BX_CPU_THIS_PTR eflags.bit3 << 3) | ((get_AF()>0) << 4) | (BX_CPU_THIS_PTR eflags.bit5 << 5) | ((get_ZF()>0) << 6) | ((get_SF()>0) << 7) | (BX_CPU_THIS_PTR eflags.tf << 8) | (BX_CPU_THIS_PTR eflags.if_ << 9) | (BX_CPU_THIS_PTR eflags.df << 10) | ((get_OF()>0) << 11) | (BX_CPU_THIS_PTR eflags.iopl << 12) | (BX_CPU_THIS_PTR eflags.nt << 14) | (BX_CPU_THIS_PTR eflags.bit15 << 15); /* 8086: bits 12-15 always set to 1. * 286: in real mode, bits 12-15 always cleared. * 386+: real-mode: bit15 cleared, bits 14..12 are last loaded value * protected-mode: bit 15 clear, bit 14 = last loaded, IOPL? */ #if BX_CPU_LEVEL < 2 flags |= 0xF000; /* 8086 nature */ #elif BX_CPU_LEVEL == 2 if (real_mode()) { flags &= 0x0FFF; /* 80286 in real mode nature */ } #else /* 386+ */ #endif return(flags); } #if BX_CPU_LEVEL >= 3 Bit32u BX_CPU_C::read_eflags(void) { Bit32u eflags_raw; eflags_raw = (get_CF()) | (BX_CPU_THIS_PTR eflags.bit1 << 1) | ((get_PF()) << 2) | (BX_CPU_THIS_PTR eflags.bit3 << 3) | ((get_AF()>0) << 4) | (BX_CPU_THIS_PTR eflags.bit5 << 5) | ((get_ZF()>0) << 6) | ((get_SF()>0) << 7) | (BX_CPU_THIS_PTR eflags.tf << 8) | (BX_CPU_THIS_PTR eflags.if_ << 9) | (BX_CPU_THIS_PTR eflags.df << 10) | ((get_OF()>0) << 11) | (BX_CPU_THIS_PTR eflags.iopl << 12) | (BX_CPU_THIS_PTR eflags.nt << 14) | (BX_CPU_THIS_PTR eflags.bit15 << 15) | (BX_CPU_THIS_PTR eflags.rf << 16) | (BX_CPU_THIS_PTR eflags.vm << 17) #if BX_CPU_LEVEL >= 4 | (BX_CPU_THIS_PTR eflags.ac << 18) | (BX_CPU_THIS_PTR eflags.id << 21) #endif ; #if 0 /* * 386+: real-mode: bit15 cleared, bits 14..12 are last loaded value * protected-mode: bit 15 clear, bit 14 = last loaded, IOPL? */ #endif return(eflags_raw); } #endif /* BX_CPU_LEVEL >= 3 */ ================================================ FILE: Project/IntelCPU/Source/i387.h ================================================ #ifndef BX_I387_RELATED_EXTENSIONS_H #define BX_I387_RELATED_EXTENSIONS_H //PARANOID,NO_ASSEMBLER,USE_WITH_CPU_SIM //fpu/stubs /* Get data sizes from config.h generated from simulator's * configure script */ #include "iconfig.h" typedef Bit8u u8; /* for FPU only */ typedef Bit8s s8; typedef Bit16u u16; typedef Bit16s s16; typedef Bit32u u32; typedef Bit32s s32; typedef Bit64u u64; typedef Bit64s s64; // // Minimal i387 structure, pruned from the linux headers. Only // the fields which were necessary are included. // struct BxFpuRegisters { s32 cwd; s32 swd; s32 twd; s32 fip; s32 fcs; s32 foo; s32 fos; u32 fill0; /* to make sure the following aligns on an 8byte boundary */ u64 st_space[16]; /* 8*16 bytes per FP-reg (aligned) = 128 bytes */ unsigned char ftop; unsigned char no_update; unsigned char rm; unsigned char alimit; }; #if BX_SUPPORT_MMX typedef union { Bit8u u8; Bit8s s8; } MMX_BYTE; typedef union { Bit16u u16; Bit16s s16; struct { #ifdef BX_BIG_ENDIAN MMX_BYTE hi; MMX_BYTE lo; #else MMX_BYTE lo; MMX_BYTE hi; #endif } bytes; } MMX_WORD; typedef union { Bit32u u32; Bit32s s32; struct { #ifdef BX_BIG_ENDIAN MMX_WORD hi; MMX_WORD lo; #else MMX_WORD lo; MMX_WORD hi; #endif } words; } MMX_DWORD; typedef union { Bit64u u64; Bit64s s64; struct { #ifdef BX_BIG_ENDIAN MMX_DWORD hi; MMX_DWORD lo; #else MMX_DWORD lo; MMX_DWORD hi; #endif } dwords; } MMX_QWORD, BxPackedMmxRegister; #define MMXSB0(reg) (reg.dwords.lo.words.lo.bytes.lo.s8) #define MMXSB1(reg) (reg.dwords.lo.words.lo.bytes.hi.s8) #define MMXSB2(reg) (reg.dwords.lo.words.hi.bytes.lo.s8) #define MMXSB3(reg) (reg.dwords.lo.words.hi.bytes.hi.s8) #define MMXSB4(reg) (reg.dwords.hi.words.lo.bytes.lo.s8) #define MMXSB5(reg) (reg.dwords.hi.words.lo.bytes.hi.s8) #define MMXSB6(reg) (reg.dwords.hi.words.hi.bytes.lo.s8) #define MMXSB7(reg) (reg.dwords.hi.words.hi.bytes.hi.s8) #define MMXUB0(reg) (reg.dwords.lo.words.lo.bytes.lo.u8) #define MMXUB1(reg) (reg.dwords.lo.words.lo.bytes.hi.u8) #define MMXUB2(reg) (reg.dwords.lo.words.hi.bytes.lo.u8) #define MMXUB3(reg) (reg.dwords.lo.words.hi.bytes.hi.u8) #define MMXUB4(reg) (reg.dwords.hi.words.lo.bytes.lo.u8) #define MMXUB5(reg) (reg.dwords.hi.words.lo.bytes.hi.u8) #define MMXUB6(reg) (reg.dwords.hi.words.hi.bytes.lo.u8) #define MMXUB7(reg) (reg.dwords.hi.words.hi.bytes.hi.u8) #define MMXSW0(reg) (reg.dwords.lo.words.lo.s16) #define MMXSW1(reg) (reg.dwords.lo.words.hi.s16) #define MMXSW2(reg) (reg.dwords.hi.words.lo.s16) #define MMXSW3(reg) (reg.dwords.hi.words.hi.s16) #define MMXUW0(reg) (reg.dwords.lo.words.lo.u16) #define MMXUW1(reg) (reg.dwords.lo.words.hi.u16) #define MMXUW2(reg) (reg.dwords.hi.words.lo.u16) #define MMXUW3(reg) (reg.dwords.hi.words.hi.u16) #define MMXSD0(reg) (reg.dwords.lo.s32) #define MMXSD1(reg) (reg.dwords.hi.s32) #define MMXUD0(reg) (reg.dwords.lo.u32) #define MMXUD1(reg) (reg.dwords.hi.u32) #define MMXSQ(reg) (reg.s64) #define MMXUQ(reg) (reg.u64) typedef struct mmx_physical_reg_t { BxPackedMmxRegister packed_mmx_register; Bit16u exp; /* 4 bytes: exponent of fp register, set to 0xFFFF by all mmx commands */ Bit32u aligment; /* 4 bytes: aligment */ } BxMmxRegister; /* to be compatible with fpu register file */ struct BxMmxRegisters { Bit32u cwd; /* fpu control word */ Bit32u swd; /* fpu status word */ Bit32u twd; /* fpu tag word */ Bit32u fip; Bit32u fcs; Bit32u foo; Bit32u fos; Bit32u alignment; BxMmxRegister mmx[8]; unsigned char tos; /* top-of-stack */ unsigned char no_update; unsigned char rm; unsigned char alimit; }; #endif /* BX_SUPPORT_MMX */ typedef union FpuMmxRegisters { struct BxFpuRegisters soft; #if BX_SUPPORT_MMX struct BxMmxRegisters mmx; #endif } i387_t; #endif ================================================ FILE: Project/IntelCPU/Source/iconfig.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: config.h,v 1.17 2002/03/27 16:04:04 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// /* config.h. Generated automatically by configure. */ // // // config.h.in is distributed in the source TAR file. When you run // the configure script, it generates config.h with some changes // according to your build environment. For example, in config.h.in, // SIZEOF_UNSIGNED_CHAR is set to 0. When configure produces config.h // it will change "0" to the detected value for your system. // // config.h contains ONLY preprocessor #defines and a few typedefs. // It must be included by both C and C++ files, so it must not // contain anything language dependent such as a class declaration. // #ifdef _BX_CONFIG_H_ #else #define _BX_CONFIG_H_ 1 /////////////////////////////////////////////////////////////////// // USER CONFIGURABLE OPTIONS : EDIT ONLY OPTIONS IN THIS SECTION // /////////////////////////////////////////////////////////////////// #include "../../Code/Source/CodeConfig.h" #define BX_USE_CONTROL_PANEL 1 // I have tested the following combinations: // * processors=1, bootstrap=0, ioapic_id=1 (uniprocessor system) // * processors=2, bootstrap=0, ioapic_id=2 // * processors=4, bootstrap=2, ioapic_id=4 #define BX_SMP_PROCESSORS 1 #define BX_BOOTSTRAP_PROCESSOR 0 // choose IOAPIC id to be equal to the number of processors. This leaves // one space for each processor to have an ID, starting with 0. #define BX_IOAPIC_DEFAULT_ID 1 #define BX_ADDRESS_SPACES 1 // controls how many instances of BX_MEM_C are created. For // SMP, use several processors with one shared memory space. // For cosimulation, you could use two processors and two address // spaces. #define BX_SUPPORT_APIC 0 // include in APIC models, required for a multiprocessor system. #if (BX_SMP_PROCESSORS>1 && !BX_SUPPORT_APIC) #error For multiprocessor simulation, BX_SUPPORT_APIC is required. #endif #define BX_DEBUG_LINUX 0 // if simulating Linux, this provides a few more debugging options // such as tracing all system calls. #define HAVE_LIBREADLINE 0 #define HAVE_READLINE_HISTORY_H 1 // adds support for the GNU readline library in the debugger command // prompt. // if NE2K is enabled, this enables the ethertap device. #define HAVE_ETHERTAP 0 // I rebuilt the code which provides timers to IO devices. // Setting this to 1 will introduce a little code which // will panic out if cases which shouldn't happen occur. // Set this to 0 for optimal performance. #define BX_TIMER_DEBUG 1 // Settable A20 line. For efficiency, you can disable // having a settable A20 line, eliminating conditional // code for every physical memory access. You'll have // to tell your software not to mess with the A20 line, // and accept it as always being on if you change this. // 1 = use settable A20 line. (normal) // 0 = A20 is like the rest of the address lines #define BX_SUPPORT_A20 1 // Processor Instructions Per Second // To find out what value to use for the 'ips' directive // in your '.bochsrc' file, set BX_SHOW_IPS to 1, and // run the software in bochs you plan to use most. Bochs // will print out periodic IPS ratings. This will change // based on the processor mode at the time, and various // other factors. You'll get a reasonable estimate though. // When you're done, reset BX_SHOW_IPS to 0, do a // 'make all-clean', then 'make' again. #define BX_SHOW_IPS 0 #if (BX_SHOW_IPS) && defined(__MINGW32__) #define SIGALRM 14 #endif // Paging Options: // --------------- // Support Paging mechanism. // 0 = don't support paging at all (DOS & Minix don't require it) // 1 = support paging. (Most other OS's require paging) // Use Translation Lookaside Buffer (TLB) for caching // paging translations. This will make paging mode // more efficient. If you're OS doesn't use paging, // then you won't need either. // 1 = Use a TLB for effiency // 0 = don't use a TLB, walk the page tables for every access // BX_TLB_SIZE: Number of entries in TLB // BX_TLB_INDEX_OF(lpf): This macro is passed the linear page frame // (top 20 bits of the linear address. It must map these bits to // one of the TLB cache slots, given the size of BX_TLB_SIZE. // There will be a many-to-one mapping to each TLB cache slot. // When there are collisions, the old entry is overwritten with // one for the newest access. #define BX_SUPPORT_PAGING 1 #define BX_USE_TLB 1 #define BX_TLB_SIZE 1024 #define BX_TLB_INDEX_OF(lpf) (((lpf) & 0x003ff000) >> 12) // Compile in support for DMA & FLOPPY IO. You'll need this // if you plan to use the floppy drive emulation. But if // you're environment doesn't require it, you can change // it to 0. #define BX_DMA_FLOPPY_IO 1 // Default number of Megs of memory to emulate. The // 'megs:' directive in the '.bochsrc' file overrides this, // allowing per-run settings. #define BX_DEFAULT_MEM_MEGS 4 // // x86 hardware tasking. There is some tasking support now. // I'm trying to get Linux to boot. The default for this // is now 1, but if you don't need x86 tasking (DOS, Win'95), // then set this to 0. // #define BX_SUPPORT_TASKING 1 // CPU level emulation. Default level is set in // the configure script. BX_CPU_LEVEL defines the CPU level // to emulate. BX_CPU_LEVEL_HACKED is a hack to define the // level of some integer instructions, so they can be tested // before the rest of the emulation is up to that level. #define BX_CPU_LEVEL 5 #define BX_CPU_LEVEL_HACKED 5 // Virtual 8086 mode emulation. // 1 = compile in support for v8086 mode. // 0 = don't compile in support for v8086 mode. #define BX_SUPPORT_V8086_MODE 1 // Support shadowing of ROM from C0000 to FFFFF. // This allows that region to be written to. #define BX_SHADOW_RAM 0 // Number of CMOS registers #define BX_NUM_CMOS_REGS 64 //#define BX_NUM_CMOS_REGS 128 // Use Greg Alexander's new PIT model (summer 2001) instead of the original. #define BX_USE_NEW_PIT 1 #define BX_USE_REALTIME_PIT 0 #define BX_USE_SLOWDOWN_TIMER 0 #define BX_HAVE_SLEEP 1 #define BX_HAVE_USLEEP 1 #define BX_HAVE_NANOSLEEP 0 #define BX_HAVE_ABORT 1 #define BX_HAVE_SOCKLEN_T 1 // This turns on Roland Mainz's idle hack. Presently it is specific to the X11 // gui. If people try to enable it elsewhere, give a compile error after the // gui definition so that they don't waste their time trying. #define BX_USE_IDLE_HACK 0 // Use Static Member Funtions to eliminate 'this' pointer passing // If you want the efficiency of 'C', you can make all the // members of the C++ CPU class to be static. // This defaults to 1 since it should improve performance, but when // SMP mode is enabled, it will be turned off by configure. #define BX_USE_CPU_SMF 0 // Use static member functions in IO DEVice emulation modules. // For efficiency, use C like functions for IO handling, // and declare a device instance at compile time, // instead of using 'new' and storing the pointer. This // eliminates some overhead, especially for high-use IO // devices like the disk drive. // 1 = Use static member efficiency (normal) // 0 = Use nonstatic member functions (use only if you need // multiple instances of a device class #define BX_USE_HD_SMF 1 // Hard drive #define BX_USE_CMOS_SMF 1 // CMOS #define BX_USE_DMA_SMF 1 // DMA #define BX_USE_FD_SMF 1 // Floppy #define BX_USE_KEY_SMF 1 // Keyboard #define BX_USE_PAR_SMF 1 // Parallel #define BX_USE_PIC_SMF 1 // PIC #define BX_USE_PIT_SMF 1 // PIT #define BX_USE_SER_SMF 1 // Serial #define BX_USE_UM_SMF 1 // Unmapped #define BX_USE_VGA_SMF 1 // VGA #define BX_USE_SB16_SMF 1 // Sound (SB 16) #define BX_USE_DEV_SMF 1 // System Devices (port92) #define BX_USE_PCI_SMF 1 // PCI #define BX_USE_NE2K_SMF 1 // NE2K #define BX_SUPPORT_SB16 1 #if BX_SUPPORT_SB16 // Use virtual methods for the sound output functions #define BX_USE_SOUND_VIRTUAL 1 // Determines which sound output class is to be used. // Currently the following are available: // bx_sound_linux_c Output for Linux, to /dev/dsp and /dev/midi00 // bx_sound_windows_c Output for Windows midi and wave mappers // bx_sound_output_c Dummy functions, no output #define BX_SOUND_OUTPUT_C bx_sound_windows_c #endif #define USE_RAW_SERIAL 0 #define BX_USE_SPECIFIED_TIME0 0 // This enables writing to port 0xe9 and the output // is sent to the console. Reading from port 0xe9 // will return 0xe9 to let you know this is available. // Leave this 0 unless you have a reason to use it. #define BX_PORT_E9_HACK 1 // This option enables "split hard drive" support, which means // that a series of partial hard disk images can be treated // as a single large image. If you set up the partition sizes and // file sizes correctly, this allows you to store each partition // in a separate file, which is very convenient if you want to operate // on a single partition (e.g. mount with loopback, create filesystem, // fsck, etc.). // [[Provide example of partitioning]] #define BX_SPLIT_HD_SUPPORT 1 // ================================================================= // BEGIN: OPTIONAL DEBUGGER SECTION // // These options are only used if you compile in support for the // native command line debugging environment. Typically, the debugger // is not used, and this section can be ignored. // ================================================================= #define BX_MAX_DIRTY_PAGE_TABLE_MEGS 64 // Compile in support for virtual/linear/physical breakpoints. // Set to 1, only those you need. Recommend using only linear // breakpoints, unless you need others. Less supported means // slightly faster execution time. #define BX_DBG_SUPPORT_VIR_BPOINT 1 #define BX_DBG_SUPPORT_LIN_BPOINT 1 #define BX_DBG_SUPPORT_PHY_BPOINT 1 // You need only define one initial breakpoint into each // cpu simulator (emulator) here. Each simulator sets callbacks // and variables which the debugger uses from then on. #define BX_SIM1_INIT bx_dbg_init_cpu_mem_env0 #ifndef BX_SIM2_INIT #define BX_SIM2_INIT bx_dbg_init_cpu_mem_env1 #endif //#define BX_SIM2_INIT sim2_init // max number of virtual/linear/physical breakpoints handled #define BX_DBG_MAX_VIR_BPOINTS 10 #define BX_DBG_MAX_LIN_BPOINTS 10 #define BX_DBG_MAX_PHY_BPOINTS 10 // max file pathname size for debugger commands #define BX_MAX_PATH 256 // max nesting level for debug scripts including other scripts #define BX_INFILE_DEPTH 10 // use this command to include (nest) debug scripts #define BX_INCLUDE_CMD "source" // Use either 32 or 64 bit instruction counter for // debugger purposes. Uncomment one of these. //#define BX_DBG_ICOUNT_SIZE 32 #define BX_DBG_ICOUNT_SIZE 64 // Make a call to command line debugger extensions. If set to 1, // a call is made. An external routine has a chance to process // the command. If it does, than the debugger ignores the command. #define BX_DBG_EXTENSIONS 0 // ================================================================= // END: OPTIONAL DEBUGGER SECTION // ================================================================= ////////////////////////////////////////////////////////////////////// // END OF USER CONFIGURABLE OPTIONS : DON'T EDIT ANYTHING BELOW !!! // // THIS IS GENERATED BY THE ./configure SCRIPT // ////////////////////////////////////////////////////////////////////// #define BX_WITH_X11 0 #define BX_WITH_BEOS 0 #define BX_WITH_WIN32 1 #define BX_WITH_MACOS 0 #define BX_WITH_CARBON 0 #define BX_WITH_NOGUI 0 #define BX_WITH_TERM 0 #define BX_WITH_RFB 0 #define BX_WITH_AMIGAOS 0 #define BX_WITH_SDL 0 // Roland Mainz's idle hack is presently specific to X11. If people try to // enable it elsewhere, give a compile error so that they don't waste their // time trying. #if (BX_USE_IDLE_HACK && !BX_WITH_X11) # error IDLE_HACK will only work with the X11 gui. Correct configure args and retry. #endif #ifdef CODE_BIG_ENDIAN #define WORDS_BIGENDIAN 1 #else #define WORDS_BIGENDIAN 0 #endif #define SIZEOF_UNSIGNED_CHAR 1 #define SIZEOF_UNSIGNED_SHORT 2 #define SIZEOF_UNSIGNED_INT 4 #define SIZEOF_UNSIGNED_LONG 4 #define SIZEOF_UNSIGNED_LONG_LONG 8 #define SIZEOF_INT_P 4 #ifdef _MSC_VER #define BX_64BIT_CONSTANTS_USE_LL 0 #else #define BX_64BIT_CONSTANTS_USE_LL 1 #endif #if BX_64BIT_CONSTANTS_USE_LL // doesn't work on Microsoft Visual C++, maybe others #define BX_CONST64(x) (x##LL) #else #define BX_CONST64(x) (x) #endif #if defined(WIN32) typedef unsigned char Bit8u; typedef signed char Bit8s; typedef unsigned short Bit16u; typedef signed short Bit16s; typedef unsigned int Bit32u; typedef signed int Bit32s; #ifdef __MINGW32__ typedef unsigned long long Bit64u; typedef signed long long Bit64s; typedef Bit32s ssize_t; #else typedef unsigned __int64 Bit64u; typedef signed __int64 Bit64s; #endif #elif BX_WITH_MACOS typedef unsigned char Bit8u; typedef signed char Bit8s; typedef unsigned short Bit16u; typedef signed short Bit16s; typedef unsigned int Bit32u; typedef signed int Bit32s; typedef unsigned long long Bit64u; typedef signed long long Bit64s; #else // Unix like platforms #if SIZEOF_UNSIGNED_CHAR != 1 # error "sizeof (unsigned char) != 1" #else typedef unsigned char Bit8u; typedef signed char Bit8s; #endif #if SIZEOF_UNSIGNED_SHORT != 2 # error "sizeof (unsigned short) != 2" #else typedef unsigned short Bit16u; typedef signed short Bit16s; #endif #if SIZEOF_UNSIGNED_INT == 4 typedef unsigned int Bit32u; typedef signed int Bit32s; #elif SIZEOF_UNSIGNED_LONG == 4 typedef unsigned long Bit32u; typedef signed long Bit32s; #else # error "can't find sizeof(type) of 4 bytes!" #endif #if SIZEOF_UNSIGNED_LONG == 8 typedef unsigned long Bit64u; typedef signed long Bit64s; #elif SIZEOF_UNSIGNED_LONG_LONG == 8 typedef unsigned long long Bit64u; typedef signed long long Bit64s; #else # error "can't find data type of 8 bytes" #endif #endif // now that Bit32u and Bit64u exist, defined bx_address #if BX_SUPPORT_X86_64 typedef Bit64u bx_address; #else typedef Bit32u bx_address; #endif #define BX_MAX_UINT 4294967295 #define BX_MAX_INT 2147483647 // create an unsigned integer type that is the same size as a pointer. // You can typecast a pointer to a bx_pr_equiv_t without losing any // bits (and without getting the compiler excited). This is used in // the FPU emulation code, where pointers and integers are often // used interchangeably. #if SIZEOF_INT_P == 4 typedef Bit32u bx_ptr_equiv_t; #elif SIZEOF_INT_P == 8 typedef Bit64u bx_ptr_equiv_t; #else # error "could not define bx_ptr_equiv_t to size of int*" #endif #if BX_WITH_CARBON typedef unsigned char Boolean; #elif BX_WITH_MACOS // don't define Boolean at all #else typedef unsigned int Boolean; #endif // Use a boolean type that will not conflict with the builtin type // on any system. typedef Bit32u bx_bool; #if BX_WITH_MACOS # define bx_ptr_t char * #else # define bx_ptr_t void * #endif #if defined(WIN32) # define BX_LITTLE_ENDIAN #elif BX_WITH_MACOS # define BX_BIG_ENDIAN #else #if WORDS_BIGENDIAN # define BX_BIG_ENDIAN #else # define BX_LITTLE_ENDIAN #endif #endif // defined(WIN32) //+++++++++++++++++++++++++++ //# undef BX_BIG_ENDIAN # define BX_LITTLE_ENDIAN //+++++++++++++++++++++++++++ #ifdef CODE_BIG_ENDIAN #undef BX_LITTLE_ENDIAN #define BX_BIG_ENDIAN #endif // for now only term.cc requires a GUI sighandler. #define BX_GUI_SIGHANDLER (BX_WITH_TERM) #define HAVE_SIGACTION 1 // configure will change the definition of "inline" to the value // that the C compiler allows. It tests the following keywords to // see if any is permitted: inline, __inline__, __inline. If none // is permitted, it defines inline to be empty. #define inline __inline // inline functions in headers that are compiled with C compiler // (e.g. fpu code) are declared with BX_C_INLINE macro. Note that // the word "inline" itself may now be redefined by the above #define. // Many compilers are known to work with "static inline". If the // compiler can put the function inline, it does so and never creates // a symbol for the function. If optimization is off, or inline is // defined to be empty, the static keyword causes the function to create // a symbol that's visible only to that .c file. Each .c file that // includes the header will produde another local version of the // BX_C_INLINE function (not ideal). However without "static" you can // duplicate symbol problems which are even worse. #define BX_C_INLINE static inline // Use BX_CPP_INLINE for all C++ inline functions. Note that the // word "inline" itself may now be redefined by the above #define. #define BX_CPP_INLINE inline #define BX_DEBUGGER 0 #define BX_DISASM 0 #define BX_PROVIDE_CPU_MEMORY 1 #define BX_PROVIDE_DEVICE_MODELS 1 #define BX_PROVIDE_BIOS_HOOKS 1 #define BX_EMULATE_HGA_DUMPS 0 #define BX_SUPPORT_VGA 1 #define BX_SUPPORT_VBE 1 #define BX_PROVIDE_MAIN 1 #define BX_INSTRUMENTATION 0 #define BX_USE_LOADER 0 // for debugger, CPU simulator handle ID // 0 is the default, for using only one CPU simulator // 1 is for the 2nd CPU simulator #define BX_SIM_ID 0 #define BX_NUM_SIMULATORS 1 // limited i440FX PCI support #define BX_PCI_SUPPORT 0 // dynamic translation (future: not supported yet) #define BX_DYNAMIC_TRANSLATION 0 #define BX_DYNAMIC_CPU_I386 0 #define BX_DYNAMIC_CPU_SPARC 0 #define BX_SUPPORT_FPU 1 #define BX_HAVE_GETENV 1 #define BX_HAVE_SELECT 1 #define BX_HAVE_SNPRINTF 1 #define BX_HAVE_STRTOULL 0 #define BX_HAVE_STRTOUQ 0 #define BX_HAVE_STRDUP 1 #define BX_HAVE_STRUCT_TIMEVAL 1 // set if your compiler does not permit an empty struct #define BX_NO_EMPTY_STRUCTS 1 // set if your compiler does not understand __attribute__ after a struct #define BX_NO_ATTRIBUTES 1 #if BX_NO_ATTRIBUTES #define GCC_ATTRIBUTE(x) /* attribute not supported */ #else #define GCC_ATTRIBUTE __attribute__ #endif // set if your compiler does not allow label at the end of a {} block #define BX_NO_BLANK_LABELS 0 // set if you don't have , used in debug/dbg_main.c #define BX_HAVE_HASH_MAP 0 // Support x86 hardware debugger registers and facilites. // These are the debug facilites offered by the x86 architecture, // not the optional built-in debugger. #define BX_X86_DEBUGGER 0 #define BX_SUPPORT_CDROM 1 #if BX_SUPPORT_CDROM // This is the C++ class name to use if we are supporting // low-level CDROM. # define LOWLEVEL_CDROM cdrom_interface #endif // NE2K network emulation #define BX_NE2K_SUPPORT 1 #define BX_ETH_NULL_LOGGING 1 #define BX_ETH_FBSD_LOGGING 1 // I/O Interface to debug #define BX_IODEBUG_SUPPORT 0 #endif // _BX_CONFIG_H ================================================ FILE: Project/IntelCPU/Source/icpu_dos.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: inteli16.cpp,v 1.0 2002/10/08 16:04:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" #include "icpu_dos.h" void PrintfCPU(BX_CPU_C *cpu,char *s,int i=0); void CMSDOS_X86_CPU::write_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_WRITE); // all checks OK access_linear(laddr, 1, CPL==3, BX_WRITE, (void *) data); } void CMSDOS_X86_CPU::write_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_WRITE); // all checks OK access_linear(laddr, 2, CPL==3, BX_WRITE, (void *) data); } void CMSDOS_X86_CPU::write_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_WRITE); // all checks OK access_linear(laddr, 4, CPL==3, BX_WRITE, (void *) data); } void CMSDOS_X86_CPU::write_push_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_WRITE); // all checks OK access_linear(laddr, 2, CPL==3, BX_WRITE, (void *) data); last_read_write.write_bytes = 0; } void CMSDOS_X86_CPU::write_push_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_WRITE); // all checks OK access_linear(laddr, 4, CPL==3, BX_WRITE, (void *) data); last_read_write.write_bytes = 0; } void CMSDOS_X86_CPU::read_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //read_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK access_linear(laddr, 1, CPL==3, BX_READ, (void *) data); } void CMSDOS_X86_CPU::read_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //read_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK access_linear(laddr, 2, CPL==3, BX_READ, (void *) data); } void CMSDOS_X86_CPU::read_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //read_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK access_linear(laddr, 4, CPL==3, BX_READ, (void *) data); } ////////////////////////////////////////////////////////////// // special Read-Modify-Write operations // // address translation info is kept across read/write calls // ////////////////////////////////////////////////////////////// void CMSDOS_X86_CPU::read_RMW_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK access_linear(laddr, 1, CPL==3, BX_READ, (void *) data); ReadModifyWriteLinearAddress = laddr; return ; } void CMSDOS_X86_CPU::read_RMW_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK access_linear(laddr, 2, CPL==3, BX_READ, (void *) data); ReadModifyWriteLinearAddress = laddr; return ; } void CMSDOS_X86_CPU::read_RMW_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; //write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK access_linear(laddr, 4, CPL==3, BX_READ, (void *) data); ReadModifyWriteLinearAddress = laddr; return ; } void CMSDOS_X86_CPU::write_RMW_virtual_byte(Bit8u val8) { Bit32u laddr; laddr = ReadModifyWriteLinearAddress; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK access_linear(laddr, 1, CPL==3, BX_WRITE, (void *)&val8); return ; } void CMSDOS_X86_CPU::write_RMW_virtual_word(Bit16u val16) { Bit32u laddr; laddr = ReadModifyWriteLinearAddress; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK access_linear(laddr, 2, CPL==3, BX_WRITE, (void *)&val16); return ; } void CMSDOS_X86_CPU::write_RMW_virtual_dword(Bit32u val32) { Bit32u laddr; laddr = ReadModifyWriteLinearAddress; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK access_linear(laddr, 4, CPL==3, BX_WRITE, (void *)&val32); return ; } void CMSDOS_X86_CPU::access_linear(Bit32u address, unsigned length, unsigned pl, unsigned rw, void *data) { if (address>(0x100000+0x10000)) exception(BX_PF_EXCEPTION, 0, 0); if (rw==BX_WRITE) { last_read_write.write_address = address; last_read_write.write_bytes = length; if (length==4) { #ifdef BX_BIG_ENDIAN (*(LinearMemory+address)) = (*(Bit32u*)data); (*(LinearMemory+address+1)) = (*(Bit32u*)data)>>8; (*(LinearMemory+address+2)) = (*(Bit32u*)data)>>16; (*(LinearMemory+address+3)) = (*(Bit32u*)data)>>24; #else (*(Bit32u*)(LinearMemory+address)) = (*(Bit32u*)data); #endif #if BX_SupportICache iCache.decWriteStamp(this,address); iCache.decWriteStamp(this,address + 3); iCache.decWriteHole(this,address,0x000f); #endif return ; } if (length==2) { #ifdef BX_BIG_ENDIAN (*(LinearMemory+address)) = (*(Bit16u*)data); (*(LinearMemory+address+1)) = (*(Bit16u*)data)>>8; #else (*(Bit16u*)(LinearMemory+address)) = (*(Bit16u*)data); #endif #if BX_SupportICache iCache.decWriteStamp(this,address); iCache.decWriteStamp(this,address + 2); iCache.decWriteHole(this,address,0x0003); #endif return ; } if (length==1) { (*(LinearMemory+address)) = (*(Bit8u*)data); #if BX_SupportICache iCache.decWriteStamp(this,address); iCache.decWriteHole(this,address,0x0001); #endif return ; } } else { last_read_write.read_address = address; last_read_write.read_bytes = length; if (length==4) { #ifdef BX_BIG_ENDIAN *(Bit32u*)data = (*(LinearMemory+address)) + (*(LinearMemory+address+1)<<8) + (*(LinearMemory+address+2)<<16) + (*(LinearMemory+address+3)<<24); #else *(Bit32u*)data = (*(Bit32u*)(LinearMemory+address)); #endif return ; } if (length==2) { #ifdef BX_BIG_ENDIAN *(Bit16u*)data = (*(LinearMemory+address)) + (*(LinearMemory+address+1)<<8); #else *(Bit16u*)data = (*(Bit16u*)(LinearMemory+address)); #endif return ; } if (length==1) { *(Bit8u*)data = (*(LinearMemory+address)); return ; } } return; } Bit32u CMSDOS_X86_CPU::itranslate_linear(Bit32u laddress, unsigned pl) { return laddress; } Bit32u CMSDOS_X86_CPU::dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw) { return laddress; } int CMSDOS_X86_CPU::get_physical_host_memory(void **physical_address_base) { *physical_address_base = LinearMemory; return ((0x100000+0x10000)/0x1000); } Bit32u temp_access_stamp_ptr; Bit8u * CMSDOS_X86_CPU::getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp_ptr) { Bit8u *fetch_ptr; fetch_ptr = LinearMemory + (linear_addr&(0-1-0x0fff)); if (access_stamp_ptr) *access_stamp_ptr = &temp_access_stamp_ptr; if (linear_addr>(0x100000+0x10000)) { fetch_ptr = NULL; } if (fetch_ptr == NULL) exception(BX_PF_EXCEPTION, 0, 0); return fetch_ptr; } void CMSDOS_X86_CPU::Init(unsigned char *addrspace) { LinearMemory = addrspace; init(mem); strcpy(program_visible_sregs[BX_SEG_REG_ES].strseg,"ES"); strcpy(program_visible_sregs[BX_SEG_REG_CS].strseg,"CS"); strcpy(program_visible_sregs[BX_SEG_REG_SS].strseg,"SS"); strcpy(program_visible_sregs[BX_SEG_REG_DS].strseg,"DS"); strcpy(program_visible_sregs[BX_SEG_REG_FS].strseg,"FS"); strcpy(program_visible_sregs[BX_SEG_REG_GS].strseg,"GS"); program_visible_sregs[BX_SEG_REG_ES].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_CS].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_SS].exception_number = BX_SS_EXCEPTION; program_visible_sregs[BX_SEG_REG_DS].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_FS].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_GS].exception_number = BX_GP_EXCEPTION; return ; } void CMSDOS_X86_CPU::Exit(void) { this->exit(); } void CMSDOS_X86_CPU::Reset(void) { reset(1); BX_CPU_THIS_PTR lf_entrys[0].instr = 0; memset(&last_read_write,0,sizeof(last_read_write)); #if (HOST_CPU_IS_I80386==1) BX_CPU_THIS_PTR eflags.x86.Word.lahf = 0x02; BX_CPU_THIS_PTR eflags.x86.Word.seto = 0x00; #endif BX_CPU_THIS_PTR async_event = 0; BX_CPU_THIS_PTR program_visible_eflags = 0x02; //----------------------------------------- return; } int CMSDOS_X86_CPU::Steps(int steps) { return x86_cpu_loop(steps); } void CMSDOS_X86_CPU::UpdateContext(Boolean b) { if (b) { write_eflags(BX_CPU_THIS_PTR program_visible_eflags,true,true,true,true); bytesleft = 0; } else { BX_CPU_THIS_PTR program_visible_eflags = read_eflags(); } } ================================================ FILE: Project/IntelCPU/Source/icpu_dos.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: x86cpu.h,v 1.0 2002/10/08 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #ifndef MSDOS_X86_CPU_H #define MSDOS_X86_CPU_H #include "x86cpu.h" class CMSDOS_X86_CPU :public BX_CPU_C { unsigned char *LinearMemory; unsigned int ReadModifyWriteLinearAddress; public: public: void write_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void write_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void write_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void read_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void read_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void read_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void read_RMW_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void read_RMW_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void read_RMW_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void write_RMW_virtual_byte(Bit8u val8); void write_RMW_virtual_word(Bit16u val16); void write_RMW_virtual_dword(Bit32u val32); void access_linear(Bit32u address, unsigned length, unsigned pl, unsigned rw, void *data); Bit32u itranslate_linear(Bit32u laddress, unsigned pl); Bit32u dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw); void write_push_word(unsigned seg, Bit32u offset, Bit16u *data); void write_push_dword(unsigned seg, Bit32u offset, Bit32u *data); // :physical page number physical_address_base:С physical page ıַ int get_physical_host_memory(void **physical_address_base); Bit8u *getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp); // CPU ʼ void Init(unsigned char *addrspace); // CPU ʼ void Exit(void); // CPU λ void Reset(void); //ÿһαִָִеָ -1ִʧ. int Steps(int steps=1); void UpdateContext(Boolean b); }; #endif //#ifndef MSDOS_X86_CPU_H ================================================ FILE: Project/IntelCPU/Source/icpu_pc.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: x86cpu.h,v 1.0 2002/10/08 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #ifndef BIOS_X86_CPU_H #define BIOS_X86_CPU_H #include "x86cpu.h" #define BIOS_MEMORY_READ 1 #define BIOS_MEMORY_WRITE 2 #define BIOS_MEMORY_READWRITE 3 class CBIOS_X86_CPU :public BX_CPU_C { Bit8u *(*GetPageAddress)(unsigned int addr,int rw,void *user); void *user; unsigned int ReadModifyWriteLinearAddress; public: public: void write_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void write_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void write_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void read_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void read_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void read_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void read_RMW_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void read_RMW_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void read_RMW_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void write_RMW_virtual_byte(Bit8u val8); void write_RMW_virtual_word(Bit16u val16); void write_RMW_virtual_dword(Bit32u val32); void access_io(Bit16u addr, unsigned length,unsigned pl, unsigned rw,void *data); void access_linear(Bit32u address, unsigned length, unsigned pl, unsigned rw, void *data); Bit32u itranslate_linear(Bit32u laddress, unsigned pl); Bit32u dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw); void write_push_word(unsigned seg, Bit32u offset, Bit16u *data); void write_push_dword(unsigned seg, Bit32u offset, Bit32u *data); // :physical page number physical_address_base:С physical page ıַ int get_physical_host_memory(void **physical_address_base); Bit8u *getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp); // CPU ʼ (rw == 2 Ϊ write) (rw == 1 Ϊ read) (rw == 3 Ϊ read write) void Init(Bit8u *(*GetPageAddress)(unsigned int addr,int rw,void *user),void *user); // CPU ʼ void Exit(void); // CPU λ void Reset(void); //ÿһαִָִеָ -1ִʧ. int Steps(int steps=1); }; #endif //#ifndef MSDOS_X86_CPU_H ================================================ FILE: Project/IntelCPU/Source/icpu_win.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: inteli32.cpp,v 1.0 2002/10/08 16:04:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" #include "icpu_win.h" #include "../../vex86/Source/VEMemory.h" void PrintfCPU(BX_CPU_C *cpu,char *s,int i=0); #define T_READ_WRITE_BYTES 1 void CMSWIN_X86_CPU::write_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_WRITE); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->WriteMemByte(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return ; #endif access_linear(laddr, 1, CPL==3, BX_WRITE, (void *) data); } void CMSWIN_X86_CPU::write_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_WRITE); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->WriteMemWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif access_linear(laddr, 2, CPL==3, BX_WRITE, (void *) data); } void CMSWIN_X86_CPU::write_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_WRITE); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->WriteMemDWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif access_linear(laddr, 4, CPL==3, BX_WRITE, (void *) data); } void CMSWIN_X86_CPU::write_push_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_WRITE); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->WriteMemWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } LinearMemory->m_LastWriteMemSize = 0; return; #endif access_linear(laddr, 2, CPL==3, BX_WRITE, (void *) data); } void CMSWIN_X86_CPU::write_push_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_WRITE); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->WriteMemDWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } LinearMemory->m_LastWriteMemSize = 0; return; #endif access_linear(laddr, 4, CPL==3, BX_WRITE, (void *) data); } void CMSWIN_X86_CPU::read_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; read_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->ReadMemByte(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif access_linear(laddr, 1, CPL==3, BX_READ, (void *) data); } void CMSWIN_X86_CPU::read_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; read_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->ReadMemWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif access_linear(laddr, 2, CPL==3, BX_READ, (void *) data); } void CMSWIN_X86_CPU::read_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; read_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->ReadMemDWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif access_linear(laddr, 4, CPL==3, BX_READ, (void *) data); } ////////////////////////////////////////////////////////////// // special Read-Modify-Write operations // // address translation info is kept across read/write calls // ////////////////////////////////////////////////////////////// void CMSWIN_X86_CPU::read_RMW_virtual_byte(unsigned s, Bit32u offset, Bit8u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 1); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 1, BX_READ); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->ReadModifyMemByte(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif ReadModifyWriteLinearAddress = laddr; access_linear(laddr, 1, CPL==3, BX_RW, (void *) data); } void CMSWIN_X86_CPU::read_RMW_virtual_word(unsigned s, Bit32u offset, Bit16u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 2); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 2, BX_READ); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->ReadModifyMemWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif ReadModifyWriteLinearAddress = laddr; access_linear(laddr, 2, CPL==3, BX_RW, (void *) data); } void CMSWIN_X86_CPU::read_RMW_virtual_dword(unsigned s, Bit32u offset, Bit32u *data) { Bit32u laddr; bx_segment_reg_t *seg; seg = &BX_CPU_THIS_PTR program_visible_sregs[s]; write_virtual_checks(seg, offset, 4); laddr = seg->cache.u.segment.base + offset; BX_INSTR_MEM_DATA(laddr, 4, BX_READ); // all checks OK #if (T_READ_WRITE_BYTES==1) if (!(LinearMemory->ReadModifyMemDWord(laddr,(void *) data, CPL==3))) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = laddr; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } return; #endif ReadModifyWriteLinearAddress = laddr; access_linear(laddr, 4, CPL==3, BX_RW, (void *) data); } void CMSWIN_X86_CPU::write_RMW_virtual_byte(Bit8u val8) { BX_INSTR_MEM_DATA(BX_CPU_THIS_PTR address_xlation.paddress1, 1, BX_WRITE); #if (T_READ_WRITE_BYTES==1) LinearMemory->WriteModifyMemByte((void *)&val8); return; #endif Bit32u laddr = ReadModifyWriteLinearAddress; access_linear(laddr, 1, CPL==3, BX_WRITE, (void *)&val8); } void CMSWIN_X86_CPU::write_RMW_virtual_word(Bit16u val16) { BX_INSTR_MEM_DATA(BX_CPU_THIS_PTR address_xlation.paddress1, 2, BX_WRITE); #if (T_READ_WRITE_BYTES==1) LinearMemory->WriteModifyMemWord((void *)&val16); return; #endif Bit32u laddr = ReadModifyWriteLinearAddress; access_linear(laddr, 2, CPL==3, BX_WRITE, (void *)&val16); } void CMSWIN_X86_CPU::write_RMW_virtual_dword(Bit32u val32) { BX_INSTR_MEM_DATA(BX_CPU_THIS_PTR address_xlation.paddress1, 4, BX_WRITE); #if (T_READ_WRITE_BYTES==1) LinearMemory->WriteModifyMemDWord((void *)&val32); return; #endif Bit32u laddr = ReadModifyWriteLinearAddress; access_linear(laddr, 4, CPL==3, BX_WRITE, (void *)&val32); } void CMSWIN_X86_CPU::access_linear(Bit32u address, unsigned length, unsigned pl, unsigned rw, void *data) { bool ret_code; Bit8u buff[16]; if (rw==BX_WRITE) { if (length==4) { Bit32u temp = *(Bit32u*)data; buff[0] = (Bit8u)temp; buff[1] = (Bit8u)(temp>>8); buff[2] = (Bit8u)(temp>>16); buff[3] = (Bit8u)(temp>>24); } if (length==2) { Bit16u temp = *(Bit16u*)data; buff[0] = (Bit8u)temp; buff[1] = (Bit8u)(temp>>8); } if (length==1) { Bit8u temp = *(Bit8u*)data; buff[0] = (Bit8u)temp; } ret_code = LinearMemory->WriteMemXBytes(address,length,buff,pl); if (!ret_code) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = address; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } } else { ret_code = LinearMemory->ReadMemXBytes(address,length,buff,pl); if (!ret_code) { Bit16u error_code; error_code |= ((CPL==3) << 2) | (1 << 1); BX_CPU_THIS_PTR cr2 = address; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. exception(BX_PF_EXCEPTION, error_code, 0); } if (length==4) { *(Bit32u*)data = buff[0] + (buff[1]<<8) + (buff[2]<<16) + (buff[3]<<24); } if (length==2) { *(Bit16u*)data = buff[0] + (buff[1]<<8) ; } if (length==1) { *(Bit8u*)data = buff[0]; } } return; } Bit32u CMSWIN_X86_CPU::itranslate_linear(Bit32u laddress, unsigned pl) { return 0; } Bit32u CMSWIN_X86_CPU::dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw) { return 0; } int CMSWIN_X86_CPU::get_physical_host_memory(void **physical_address_base) { return LinearMemory->GetPhysicalHostMemory((Bit8u**)physical_address_base); } Bit8u * CMSWIN_X86_CPU::getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp_ptr) { MEMORY_PAGE *mem_page; Bit8u *fetch_ptr; mem_page = LinearMemory->GetCodePage(linear_addr); if( mem_page==NULL || ((mem_page->Attribute & MP_KERNEL) && CPL==3)) { fetch_ptr = NULL; } else { fetch_ptr = (Bit8u*)mem_page->PhysAddr; if (access_stamp_ptr) { *access_stamp_ptr = (Bit32u*)&mem_page->AccessExecuteCount; } } if (fetch_ptr == NULL) exception(BX_PF_EXCEPTION, 0, 0); return fetch_ptr; } void CMSWIN_X86_CPU::Init(CVEMemory *addrspace) { LinearMemory = addrspace; init(mem); memset(&last_read_write,0,sizeof(last_read_write)); strcpy(program_visible_sregs[BX_SEG_REG_ES].strseg,"ES"); strcpy(program_visible_sregs[BX_SEG_REG_CS].strseg,"CS"); strcpy(program_visible_sregs[BX_SEG_REG_SS].strseg,"SS"); strcpy(program_visible_sregs[BX_SEG_REG_DS].strseg,"DS"); strcpy(program_visible_sregs[BX_SEG_REG_FS].strseg,"FS"); strcpy(program_visible_sregs[BX_SEG_REG_GS].strseg,"GS"); program_visible_sregs[BX_SEG_REG_ES].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_CS].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_SS].exception_number = BX_SS_EXCEPTION; program_visible_sregs[BX_SEG_REG_DS].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_FS].exception_number = BX_GP_EXCEPTION; program_visible_sregs[BX_SEG_REG_GS].exception_number = BX_GP_EXCEPTION; return ; } void CMSWIN_X86_CPU::Exit(void) { this->exit(); } void CMSWIN_X86_CPU::Reset(void) { reset(1); BX_CPU_THIS_PTR lf_entrys[0].instr = 0; #if (HOST_CPU_IS_I80386==1) BX_CPU_THIS_PTR eflags.x86.Word.lahf = 0x02; BX_CPU_THIS_PTR eflags.x86.Word.seto = 0x00; #endif BX_CPU_THIS_PTR async_event = 0; BX_CPU_THIS_PTR program_visible_eflags = 0x02; //----------------------------------------- return; } int CMSWIN_X86_CPU::Execute(int steps) { return x86_cpu_loop(steps); } int CMSWIN_X86_CPU::LoadAll286(LOADALL286 *pLoadAll) { if (pLoadAll->MSW&0x01) { BX_CPU_THIS_PTR cr0.pe = 1; } else { BX_CPU_THIS_PTR cr0.pe = 0; } BX_CPU_THIS_PTR write_flags(pLoadAll->fl,true,true); BX_CPU_THIS_PTR REG_EIP = pLoadAll->ip; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_EAX) = pLoadAll->ax; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_ECX) = pLoadAll->cx; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_EDX) = pLoadAll->dx; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_EBX) = pLoadAll->bx; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_ESP) = pLoadAll->sp; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_EBP) = pLoadAll->bp; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_ESI) = pLoadAll->si; BX_CPU_THIS_PTR GENERAL_REG_WORD(I_EDI) = pLoadAll->di; BX_CPU_THIS_PTR gdtr.base = (Bit32u)pLoadAll->GDT.All.Base; BX_CPU_THIS_PTR gdtr.limit = (Bit16u)pLoadAll->GDT.Dword.Limit; BX_CPU_THIS_PTR idtr.base = (Bit32u)pLoadAll->GDT.All.Base; BX_CPU_THIS_PTR idtr.limit = (Bit16u)pLoadAll->GDT.Dword.Limit; BX_CPU_THIS_PTR tr.selector.value = (Bit16u)pLoadAll->TR; BX_CPU_THIS_PTR ldtr.selector.value = (Bit16u)pLoadAll->LDTR; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = (Bit16u)pLoadAll->ES; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = (Bit16u)pLoadAll->CS; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = (Bit16u)pLoadAll->SS; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = (Bit16u)pLoadAll->DS; WriteSegmentCache286(&BX_CPU_THIS_PTR tr,&pLoadAll->TSS); WriteSegmentCache286(&BX_CPU_THIS_PTR ldtr,&pLoadAll->LDT); WriteSegmentCache286(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES],&pLoadAll->ES_D); WriteSegmentCache286(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS],&pLoadAll->CS_D); WriteSegmentCache286(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS],&pLoadAll->SS_D); WriteSegmentCache286(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS],&pLoadAll->DS_D); BX_CPU_THIS_PTR async_event = 0; return 1; } int CMSWIN_X86_CPU::LoadAll386(LOADALL386 *pLoadAll) { if (pLoadAll->CR0&0x01) { BX_CPU_THIS_PTR cr0.pe = 1; } else { BX_CPU_THIS_PTR cr0.pe = 0; } BX_CPU_THIS_PTR write_eflags(pLoadAll->efl,true,true,true,true); BX_CPU_THIS_PTR REG_EIP = pLoadAll->eip; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_EAX) = pLoadAll->eax; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_ECX) = pLoadAll->ecx; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_EDX) = pLoadAll->edx; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_EBX) = pLoadAll->ebx; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_ESP) = pLoadAll->esp; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_EBP) = pLoadAll->ebp; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_ESI) = pLoadAll->esi; BX_CPU_THIS_PTR GENERAL_REG_DWORD(I_EDI) = pLoadAll->edi; BX_CPU_THIS_PTR gdtr.base = (Bit32u)pLoadAll->GDT.QWord.Base; BX_CPU_THIS_PTR gdtr.limit = (Bit16u)pLoadAll->GDT.QWord.Limit; BX_CPU_THIS_PTR idtr.base = (Bit32u)pLoadAll->IDT.QWord.Base; BX_CPU_THIS_PTR idtr.limit = (Bit16u)pLoadAll->IDT.QWord.Limit; BX_CPU_THIS_PTR tr.selector.value = (Bit16u)pLoadAll->TR; BX_CPU_THIS_PTR ldtr.selector.value = (Bit16u)pLoadAll->LDTR; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = (Bit16u)pLoadAll->ES; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = (Bit16u)pLoadAll->CS; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = (Bit16u)pLoadAll->SS; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = (Bit16u)pLoadAll->DS; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value = (Bit16u)pLoadAll->FS; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value = (Bit16u)pLoadAll->GS; WriteSegmentCache386(&BX_CPU_THIS_PTR tr,&pLoadAll->TSS); WriteSegmentCache386(&BX_CPU_THIS_PTR ldtr,&pLoadAll->LDT); WriteSegmentCache386(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES],&pLoadAll->ES_D); WriteSegmentCache386(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS],&pLoadAll->CS_D); WriteSegmentCache386(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS],&pLoadAll->SS_D); WriteSegmentCache386(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS],&pLoadAll->DS_D); WriteSegmentCache386(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS],&pLoadAll->FS_D); WriteSegmentCache386(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS],&pLoadAll->GS_D); BX_CPU_THIS_PTR async_event = 0; return 1; } Boolean CMSWIN_X86_CPU::WriteSegmentCache286(bx_segment_reg_t *pSegment,LOADALL286_DESCRIPTOR_T *pLoadDescriptor) { pSegment->selector.rpl = (Bit8u)(pSegment->selector.value&0x03); pSegment->selector.ti = ((pSegment->selector.value>>2)&0x01); pSegment->selector.index = (pSegment->selector.value>>3); pSegment->cache.valid = 1; // 0 = invalid, 1 = valid pSegment->cache.p = 1; //pLoadDescriptor->P; // present pSegment->cache.dpl = pLoadDescriptor->Descr.DPL; // descriptor privilege level 0..3 pSegment->cache.segment = pLoadDescriptor->Descr.DT; // 0 = system/gate, 1 = data/code segment pSegment->cache.type = pLoadDescriptor->Descr.TYPE; // For system & gate descriptors, only if (pSegment==&BX_CPU_THIS_PTR tr) { pSegment->cache.u.tss286.base = pLoadDescriptor->All.Base; pSegment->cache.u.tss286.limit = pLoadDescriptor->Dword.Limit; return true; } if (pSegment==&BX_CPU_THIS_PTR ldtr) { pSegment->cache.u.ldt.base = pLoadDescriptor->All.Base; pSegment->cache.u.ldt.limit = (Bit16u)pLoadDescriptor->Dword.Limit; return true; } pSegment->cache.u.segment.base = pLoadDescriptor->All.Base; pSegment->cache.u.segment.limit_scaled = pLoadDescriptor->Dword.Limit; pSegment->cache.u.segment.d_b = BIT16; pSegment->cache.u.segment.g = 0; pSegment->cache.u.segment.executable = ((pSegment->cache.type>>0x03)&0x01); pSegment->cache.u.segment.c_ed = ((pSegment->cache.type>>0x02)&0x01); pSegment->cache.u.segment.r_w = ((pSegment->cache.type>>0x01)&0x01); pSegment->cache.u.segment.a = 1; if ((pSegment->cache.type&0x08)==0x08) { pSegment->cache.u.segment.c_ed = (pSegment->cache.type>>2)&0x01; pSegment->cache.u.segment.executable = 1; } else { pSegment->cache.u.segment.c_ed = (pSegment->cache.type>>2)&0x01; pSegment->cache.u.segment.executable = 0; } return true; } Boolean CMSWIN_X86_CPU::WriteSegmentCache386(bx_segment_reg_t *pSegment,LOADALL386_DESCRIPTOR_T *pLoadDescriptor) { pSegment->selector.rpl = (Bit8u)(pSegment->selector.value&0x03); pSegment->selector.ti = ((pSegment->selector.value>>2)&0x01); pSegment->selector.index = (pSegment->selector.value>>3); pSegment->cache.valid = 1; // 0 = invalid, 1 = valid pSegment->cache.p = 1; //pLoadDescriptor->P; // present pSegment->cache.dpl = pLoadDescriptor->Descr.DPL; // descriptor privilege level 0..3 pSegment->cache.segment = pLoadDescriptor->Descr.DT; // 0 = system/gate, 1 = data/code segment pSegment->cache.type = pLoadDescriptor->Descr.TYPE; // For system & gate descriptors, only if (pSegment==&BX_CPU_THIS_PTR tr) { pSegment->cache.u.tss386.base = pLoadDescriptor->QWord.Base; pSegment->cache.u.tss386.limit = pLoadDescriptor->QWord.Limit; pSegment->cache.u.tss386.limit_scaled = pLoadDescriptor->QWord.Limit; return true; } if (pSegment==&BX_CPU_THIS_PTR ldtr) { pSegment->cache.u.ldt.base = pLoadDescriptor->QWord.Base; pSegment->cache.u.ldt.limit = (Bit16u)pLoadDescriptor->QWord.Limit; return true; } pSegment->cache.u.segment.base = pLoadDescriptor->QWord.Base; pSegment->cache.u.segment.limit_scaled = pLoadDescriptor->QWord.Limit; pSegment->cache.u.segment.d_b = BIT32; pSegment->cache.u.segment.g = 1; pSegment->cache.u.segment.executable = ((pSegment->cache.type>>0x03)&0x01); pSegment->cache.u.segment.c_ed = ((pSegment->cache.type>>0x02)&0x01); pSegment->cache.u.segment.r_w = ((pSegment->cache.type>>0x01)&0x01); pSegment->cache.u.segment.a = 1; if ((pSegment->cache.type&0x08)==0x08) { pSegment->cache.u.segment.c_ed = (pSegment->cache.type>>2)&0x01; pSegment->cache.u.segment.executable = 1; } else { pSegment->cache.u.segment.c_ed = (pSegment->cache.type>>2)&0x01; pSegment->cache.u.segment.executable = 0; } return true; } Boolean CMSWIN_X86_CPU::IntelIntFault(int _vector) { static int errorCode[0x20+0x08] = { 0,0,0,0, 0,0,0,0, 1,0,1,1, 1,1,1,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; if (_vector>0x20) _vector= 0x20; if (errorCode[_vector]==1) { X86_ESP += 4; } return true; } Boolean CMSWIN_X86_CPU::IntelIntIret(int _vector) { BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS] = BX_CPU_THIS_PTR save_cs; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS] = BX_CPU_THIS_PTR save_ss; X86_EIP = BX_CPU_THIS_PTR save_eip; X86_ESP = BX_CPU_THIS_PTR save_esp; BX_CPU_THIS_PTR eflags = BX_CPU_THIS_PTR save_eflags; return true; } void CMSWIN_X86_CPU::UpdateContext(Boolean b) { if (b) { write_eflags(BX_CPU_THIS_PTR program_visible_eflags,true,true,true,true); bytesleft = 0; } else { BX_CPU_THIS_PTR program_visible_eflags = read_eflags(); } } ================================================ FILE: Project/IntelCPU/Source/icpu_win.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: x86cpu.h,v 1.0 2002/10/08 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #ifndef MSWIN_X86_CPU_H #define MSWIN_X86_CPU_H #include "x86cpu.h" class CVEMemory; class CMSWIN_X86_CPU :public BX_CPU_C { public: void write_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void write_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void write_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void read_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void read_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void read_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void read_RMW_virtual_byte(unsigned seg, Bit32u offset, Bit8u *data); void read_RMW_virtual_word(unsigned seg, Bit32u offset, Bit16u *data); void read_RMW_virtual_dword(unsigned seg, Bit32u offset, Bit32u *data); void write_RMW_virtual_byte(Bit8u val8); void write_RMW_virtual_word(Bit16u val16); void write_RMW_virtual_dword(Bit32u val32); void access_linear(Bit32u address, unsigned length, unsigned pl, unsigned rw, void *data); Bit32u itranslate_linear(Bit32u laddress, unsigned pl); Bit32u dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw); void write_push_word(unsigned seg, Bit32u offset, Bit16u *data); void write_push_dword(unsigned seg, Bit32u offset, Bit32u *data); // :physical page number physical_address_base:С physical page ıַ int get_physical_host_memory(void **physical_address_base); Bit8u *getHostMemPtr(Bit32u linear_addr,unsigned op,Bit32u **access_stamp); //X86 CPU ʼ void Init(CVEMemory *addrspace); //X86 CPU ʼ void Exit(void); //X86 CPU λ void Reset(void); //ÿһαִָִеָ -1ִʧ. int Execute(int steps=1); //һβװе CPU Ĵ int LoadAll286(LOADALL286 *pLoadAll); int LoadAll386(LOADALL386 *pLoadAll); Boolean WriteSegmentCache286(bx_segment_reg_t *pSegment,LOADALL286_DESCRIPTOR_T *pLoadDescriptor); Boolean WriteSegmentCache386(bx_segment_reg_t *pSegment,LOADALL386_DESCRIPTOR_T *pLoadDescriptor); //쳣º Boolean IntelIntFault(int _vector); Boolean IntelIntIret(int _vector); void UpdateContext(Boolean b); CVEMemory *LinearMemory; unsigned int ReadModifyWriteLinearAddress; }; #endif //#ifndef MSWIN_X86_CPU_H ================================================ FILE: Project/IntelCPU/Source/init.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: init.cc,v 1.15 2002/03/27 16:04:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" /* the device id and stepping id are loaded into DH & DL upon processor startup. for device id: 3 = 80386, 4 = 80486. just make up a number for the stepping (revision) id. */ #define BX_DEVICE_ID 3 #define BX_STEPPING_ID 0 BX_CPU_C::BX_CPU_C() #if BX_SUPPORT_APIC : local_apic (this) #endif { // in case of SMF, you cannot reference any member data // in the constructor because the only access to it is via // global variables which aren't initialized quite yet. put("CPU"); settype (CPU0LOG); } void BX_CPU_C::init(BX_MEM_C *addrspace) { mem = addrspace; sanity_checks(); BX_DEBUG(( "Init $Id: init.cc,v 1.15 2002/03/27 16:04:05 bdenney Exp $")); // BX_CPU_C constructor BX_CPU_THIS_PTR set_INTR (0); #if BX_SUPPORT_APIC local_apic.init (); #endif // in SMP mode, the prefix of the CPU will be changed to [CPUn] in // bx_local_apic_c::set_id as soon as the apic ID is assigned. /* hack for the following fields. Its easier to decode mod-rm bytes if you can assume there's always a base & index register used. For modes which don't really use them, point to an empty (zeroed) register. */ empty_register = 0; bytes_ptr[0] = &program_visible_gen_reg[0].word.byte.rl; bytes_ptr[1] = &program_visible_gen_reg[1].word.byte.rl; bytes_ptr[2] = &program_visible_gen_reg[2].word.byte.rl; bytes_ptr[3] = &program_visible_gen_reg[3].word.byte.rl; bytes_ptr[4] = &program_visible_gen_reg[0].word.byte.rh; bytes_ptr[5] = &program_visible_gen_reg[1].word.byte.rh; bytes_ptr[6] = &program_visible_gen_reg[2].word.byte.rh; bytes_ptr[7] = &program_visible_gen_reg[3].word.byte.rh; // 16bit address mode base register, used for mod-rm decoding _16bit_base_reg[0] = &program_visible_gen_reg[BX_16BIT_REG_BX].word.rx; _16bit_base_reg[1] = &program_visible_gen_reg[BX_16BIT_REG_BX].word.rx; _16bit_base_reg[2] = &program_visible_gen_reg[BX_16BIT_REG_BP].word.rx; _16bit_base_reg[3] = &program_visible_gen_reg[BX_16BIT_REG_BP].word.rx; _16bit_base_reg[4] = (Bit16u*) &empty_register; _16bit_base_reg[5] = (Bit16u*) &empty_register; _16bit_base_reg[6] = &program_visible_gen_reg[BX_16BIT_REG_BP].word.rx; _16bit_base_reg[7] = &program_visible_gen_reg[BX_16BIT_REG_BX].word.rx; // 16bit address mode index register, used for mod-rm decoding _16bit_index_reg[0] = &program_visible_gen_reg[BX_16BIT_REG_SI].word.rx; _16bit_index_reg[1] = &program_visible_gen_reg[BX_16BIT_REG_DI].word.rx; _16bit_index_reg[2] = &program_visible_gen_reg[BX_16BIT_REG_SI].word.rx; _16bit_index_reg[3] = &program_visible_gen_reg[BX_16BIT_REG_DI].word.rx; _16bit_index_reg[4] = &program_visible_gen_reg[BX_16BIT_REG_SI].word.rx; _16bit_index_reg[5] = &program_visible_gen_reg[BX_16BIT_REG_DI].word.rx; _16bit_index_reg[6] = (Bit16u*) &empty_register; _16bit_index_reg[7] = (Bit16u*) &empty_register; // for decoding instructions: access to seg reg's via index number sreg_mod00_rm16[0] = BX_SEG_REG_DS; sreg_mod00_rm16[1] = BX_SEG_REG_DS; sreg_mod00_rm16[2] = BX_SEG_REG_SS; sreg_mod00_rm16[3] = BX_SEG_REG_SS; sreg_mod00_rm16[4] = BX_SEG_REG_DS; sreg_mod00_rm16[5] = BX_SEG_REG_DS; sreg_mod00_rm16[6] = BX_SEG_REG_DS; sreg_mod00_rm16[7] = BX_SEG_REG_DS; sreg_mod01_rm16[0] = BX_SEG_REG_DS; sreg_mod01_rm16[1] = BX_SEG_REG_DS; sreg_mod01_rm16[2] = BX_SEG_REG_SS; sreg_mod01_rm16[3] = BX_SEG_REG_SS; sreg_mod01_rm16[4] = BX_SEG_REG_DS; sreg_mod01_rm16[5] = BX_SEG_REG_DS; sreg_mod01_rm16[6] = BX_SEG_REG_SS; sreg_mod01_rm16[7] = BX_SEG_REG_DS; sreg_mod10_rm16[0] = BX_SEG_REG_DS; sreg_mod10_rm16[1] = BX_SEG_REG_DS; sreg_mod10_rm16[2] = BX_SEG_REG_SS; sreg_mod10_rm16[3] = BX_SEG_REG_SS; sreg_mod10_rm16[4] = BX_SEG_REG_DS; sreg_mod10_rm16[5] = BX_SEG_REG_DS; sreg_mod10_rm16[6] = BX_SEG_REG_SS; sreg_mod10_rm16[7] = BX_SEG_REG_DS; // the default segment to use for a one-byte modrm with mod==01b // and rm==i // sreg_mod01_rm32[0] = BX_SEG_REG_DS; sreg_mod01_rm32[1] = BX_SEG_REG_DS; sreg_mod01_rm32[2] = BX_SEG_REG_DS; sreg_mod01_rm32[3] = BX_SEG_REG_DS; sreg_mod01_rm32[4] = BX_SEG_REG_NULL; // this entry should never be accessed // (escape to 2-byte) sreg_mod01_rm32[5] = BX_SEG_REG_SS; sreg_mod01_rm32[6] = BX_SEG_REG_DS; sreg_mod01_rm32[7] = BX_SEG_REG_DS; // the default segment to use for a one-byte modrm with mod==10b // and rm==i // sreg_mod10_rm32[0] = BX_SEG_REG_DS; sreg_mod10_rm32[1] = BX_SEG_REG_DS; sreg_mod10_rm32[2] = BX_SEG_REG_DS; sreg_mod10_rm32[3] = BX_SEG_REG_DS; sreg_mod10_rm32[4] = BX_SEG_REG_NULL; // this entry should never be accessed // (escape to 2-byte) sreg_mod10_rm32[5] = BX_SEG_REG_SS; sreg_mod10_rm32[6] = BX_SEG_REG_DS; sreg_mod10_rm32[7] = BX_SEG_REG_DS; // the default segment to use for a two-byte modrm with mod==00b // and base==i // sreg_mod0_base32[0] = BX_SEG_REG_DS; sreg_mod0_base32[1] = BX_SEG_REG_DS; sreg_mod0_base32[2] = BX_SEG_REG_DS; sreg_mod0_base32[3] = BX_SEG_REG_DS; sreg_mod0_base32[4] = BX_SEG_REG_SS; sreg_mod0_base32[5] = BX_SEG_REG_DS; sreg_mod0_base32[6] = BX_SEG_REG_DS; sreg_mod0_base32[7] = BX_SEG_REG_DS; // the default segment to use for a two-byte modrm with // mod==01b or mod==10b and base==i sreg_mod1or2_base32[0] = BX_SEG_REG_DS; sreg_mod1or2_base32[1] = BX_SEG_REG_DS; sreg_mod1or2_base32[2] = BX_SEG_REG_DS; sreg_mod1or2_base32[3] = BX_SEG_REG_DS; sreg_mod1or2_base32[4] = BX_SEG_REG_SS; sreg_mod1or2_base32[5] = BX_SEG_REG_SS; sreg_mod1or2_base32[6] = BX_SEG_REG_DS; sreg_mod1or2_base32[7] = BX_SEG_REG_DS; #if BX_DYNAMIC_TRANSLATION DTWrite8vShim = NULL; DTWrite16vShim = NULL; DTWrite32vShim = NULL; DTRead8vShim = NULL; DTRead16vShim = NULL; DTRead32vShim = NULL; DTReadRMW8vShim = (BxDTShim_t) DTASReadRMW8vShim; BX_DEBUG(( "DTReadRMW8vShim is %x", (unsigned) DTReadRMW8vShim )); BX_DEBUG(( "&DTReadRMW8vShim is %x", (unsigned) &DTReadRMW8vShim )); DTReadRMW16vShim = NULL; DTReadRMW32vShim = NULL; DTWriteRMW8vShim = (BxDTShim_t) DTASWriteRMW8vShim; DTWriteRMW16vShim = NULL; DTWriteRMW32vShim = NULL; DTSetFlagsOSZAPCPtr = (BxDTShim_t) DTASSetFlagsOSZAPC; DTIndBrHandler = (BxDTShim_t) DTASIndBrHandler; DTDirBrHandler = (BxDTShim_t) DTASDirBrHandler; #endif sprintf (name, "CPU %p", this); BX_INSTR_INIT(); #if BX_SupportICache void *physical_address_base; int physical_pages; physical_pages = get_physical_host_memory(&physical_address_base); mem_len = (physical_pages<<12); //============================= iCache.init(); iCache.alloc(mem_len); iCache.fetchModeMask = 0; // KPL: fixme!!! #endif } void BX_CPU_C::exit(void) { #if BX_SupportICache iCache.exit(); #endif return ; } BX_CPU_C::~BX_CPU_C(void) { BX_INSTR_SHUTDOWN(); BX_DEBUG(( "Exit.")); } void BX_CPU_C::reset(unsigned source) { #if BX_SupportICache memset(&BX_CPU_THIS_PTR stamp,0,sizeof(BX_CPU_THIS_PTR stamp)); BX_CPU_THIS_PTR iCache.iAllocStamp = 0; #endif UNUSED(source); // either BX_RESET_HARDWARE or BX_RESET_SOFTWARE // general registers X86_EAX = 0; // processor passed test :-) X86_EBX = 0; // undefined X86_ECX = 0; // undefined X86_EDX = (BX_DEVICE_ID << 8) | BX_STEPPING_ID; // ??? X86_EBP = 0; // undefined X86_ESI = 0; // undefined X86_EDI = 0; // undefined X86_ESP = 0; // undefined // all status flags at known values, use BX_CPU_THIS_PTR eflags structure BX_CPU_THIS_PTR lf_flags_status = 0; // status and control flags register set BX_CPU_THIS_PTR set_CF(0); BX_CPU_THIS_PTR eflags.bit1 = 1; BX_CPU_THIS_PTR set_PF(0); BX_CPU_THIS_PTR eflags.bit3 = 0; BX_CPU_THIS_PTR set_AF(0); BX_CPU_THIS_PTR eflags.bit5 = 0; BX_CPU_THIS_PTR set_ZF(0); BX_CPU_THIS_PTR set_SF(0); BX_CPU_THIS_PTR eflags.tf = 0; BX_CPU_THIS_PTR eflags.if_ = 0; BX_CPU_THIS_PTR eflags.df = 0; BX_CPU_THIS_PTR set_OF(0); #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR eflags.iopl = 0; BX_CPU_THIS_PTR eflags.nt = 0; #endif BX_CPU_THIS_PTR eflags.bit15 = 0; #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR eflags.rf = 0; BX_CPU_THIS_PTR eflags.vm = 0; #endif #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR eflags.ac = 0; #endif BX_CPU_THIS_PTR inhibit_mask = 0; BX_CPU_THIS_PTR debug_trap = 0; /* instruction pointer */ #if BX_CPU_LEVEL < 2 BX_CPU_THIS_PTR prev_eip = BX_CPU_THIS_PTR program_visible_eip = 0x00000000; #else /* from 286 up */ BX_CPU_THIS_PTR prev_eip = BX_CPU_THIS_PTR program_visible_eip = 0x0000FFF0; #endif /* CS (Code Segment) and descriptor cache */ /* Note: on a real cpu, CS initially points to upper memory. After * the 1st jump, the descriptor base is zero'd out. Since I'm just * going to jump to my BIOS, I don't need to do this. * For future reference: * processor cs.selector cs.base cs.limit EIP * 8086 FFFF FFFF0 FFFF 0000 * 286 F000 FF0000 FFFF FFF0 * 386+ F000 FFFF0000 FFFF FFF0 */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = 0xf000; #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.index = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.ti = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.dpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.segment = 1; /* data/code segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.type = 3; /* read/write access */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.executable = 1; /* data/stack segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.c_ed = 0; /* normal expand up */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.r_w = 1; /* writeable */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.a = 1; /* accessed */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base = 0x000F0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled = 0xFFFF; #endif #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.g = 0; /* byte granular */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b = 0; /* 16bit default size */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.avl = 0; #endif /* SS (Stack Segment) and descriptor cache */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = 0x0000; #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.index = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.ti = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.dpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.segment = 1; /* data/code segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.type = 3; /* read/write access */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.executable = 0; /* data/stack segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.c_ed = 0; /* normal expand up */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.r_w = 1; /* writeable */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.a = 1; /* accessed */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base = 0x00000000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled = 0xFFFF; #endif #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.g = 0; /* byte granular */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b = 0; /* 16bit default size */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.avl = 0; #endif /* DS (Data Segment) and descriptor cache */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = 0x0000; #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.index = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.ti = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.rpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.dpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.segment = 1; /* data/code segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.type = 3; /* read/write access */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.executable = 0; /* data/stack segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.c_ed = 0; /* normal expand up */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.r_w = 1; /* writeable */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.a = 1; /* accessed */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base = 0x00000000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit_scaled = 0xFFFF; #endif #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.g = 0; /* byte granular */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.d_b = 0; /* 16bit default size */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.avl = 0; #endif /* ES (Extra Segment) and descriptor cache */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = 0x0000; #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.index = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.ti = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.rpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.dpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.segment = 1; /* data/code segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.type = 3; /* read/write access */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.executable = 0; /* data/stack segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.c_ed = 0; /* normal expand up */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.r_w = 1; /* writeable */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.a = 1; /* accessed */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base = 0x00000000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit_scaled = 0xFFFF; #endif #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.g = 0; /* byte granular */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.d_b = 0; /* 16bit default size */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.avl = 0; #endif /* FS and descriptor cache */ #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.index = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.ti = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.rpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.dpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.segment = 1; /* data/code segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.type = 3; /* read/write access */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.executable = 0; /* data/stack segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.c_ed = 0; /* normal expand up */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.r_w = 1; /* writeable */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.a = 1; /* accessed */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.base = 0x00000000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit_scaled = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.g = 0; /* byte granular */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.d_b = 0; /* 16bit default size */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.avl = 0; #endif /* GS and descriptor cache */ #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.index = 0x0000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.ti = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.rpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.dpl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.segment = 1; /* data/code segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.type = 3; /* read/write access */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.executable = 0; /* data/stack segment */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.c_ed = 0; /* normal expand up */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.r_w = 1; /* writeable */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.a = 1; /* accessed */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.base = 0x00000000; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit_scaled = 0xFFFF; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.g = 0; /* byte granular */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.d_b = 0; /* 16bit default size */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.avl = 0; #endif /* GDTR (Global Descriptor Table Register) */ #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR gdtr.base = 0x00000000; /* undefined */ BX_CPU_THIS_PTR gdtr.limit = 0x0000; /* undefined */ /* ??? AR=Present, Read/Write */ #endif /* IDTR (Interrupt Descriptor Table Register) */ #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR idtr.base = 0x00000000; BX_CPU_THIS_PTR idtr.limit = 0x03FF; /* always byte granular */ /* ??? */ /* ??? AR=Present, Read/Write */ #endif /* LDTR (Local Descriptor Table Register) */ #if BX_CPU_LEVEL >= 2 BX_CPU_THIS_PTR ldtr.selector.value = 0x0000; BX_CPU_THIS_PTR ldtr.selector.index = 0x0000; BX_CPU_THIS_PTR ldtr.selector.ti = 0; BX_CPU_THIS_PTR ldtr.selector.rpl = 0; BX_CPU_THIS_PTR ldtr.cache.valid = 0; /* not valid */ BX_CPU_THIS_PTR ldtr.cache.p = 0; /* not present */ BX_CPU_THIS_PTR ldtr.cache.dpl = 0; /* field not used */ BX_CPU_THIS_PTR ldtr.cache.segment = 0; /* system segment */ BX_CPU_THIS_PTR ldtr.cache.type = 2; /* LDT descriptor */ BX_CPU_THIS_PTR ldtr.cache.u.ldt.base = 0x00000000; BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit = 0xFFFF; #endif /* TR (Task Register) */ #if BX_CPU_LEVEL >= 2 /* ??? I don't know what state the TR comes up in */ BX_CPU_THIS_PTR tr.selector.value = 0x0000; BX_CPU_THIS_PTR tr.selector.index = 0x0000; /* undefined */ BX_CPU_THIS_PTR tr.selector.ti = 0; BX_CPU_THIS_PTR tr.selector.rpl = 0; BX_CPU_THIS_PTR tr.cache.valid = 0; BX_CPU_THIS_PTR tr.cache.p = 0; BX_CPU_THIS_PTR tr.cache.dpl = 0; /* field not used */ BX_CPU_THIS_PTR tr.cache.segment = 0; BX_CPU_THIS_PTR tr.cache.type = 0; /* invalid */ BX_CPU_THIS_PTR tr.cache.u.tss286.base = 0x00000000; /* undefined */ BX_CPU_THIS_PTR tr.cache.u.tss286.limit = 0x0000; /* undefined */ #endif // DR0 - DR7 (Debug Registers) #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR dr0 = 0; /* undefined */ BX_CPU_THIS_PTR dr1 = 0; /* undefined */ BX_CPU_THIS_PTR dr2 = 0; /* undefined */ BX_CPU_THIS_PTR dr3 = 0; /* undefined */ #endif #if BX_CPU_LEVEL == 3 BX_CPU_THIS_PTR dr6 = 0xFFFF1FF0; BX_CPU_THIS_PTR dr7 = 0x00000400; #elif BX_CPU_LEVEL == 4 BX_CPU_THIS_PTR dr6 = 0xFFFF1FF0; BX_CPU_THIS_PTR dr7 = 0x00000400; #elif BX_CPU_LEVEL == 5 BX_CPU_THIS_PTR dr6 = 0xFFFF0FF0; BX_CPU_THIS_PTR dr7 = 0x00000400; #elif BX_CPU_LEVEL == 6 BX_CPU_THIS_PTR dr6 = 0xFFFF0FF0; BX_CPU_THIS_PTR dr7 = 0x00000400; #else # error "DR6,7: CPU > 6" #endif #if 0 /* test registers 3-7 (unimplemented) */ BX_CPU_THIS_PTR tr3 = 0; /* undefined */ BX_CPU_THIS_PTR tr4 = 0; /* undefined */ BX_CPU_THIS_PTR tr5 = 0; /* undefined */ BX_CPU_THIS_PTR tr6 = 0; /* undefined */ BX_CPU_THIS_PTR tr7 = 0; /* undefined */ #endif #if BX_CPU_LEVEL >= 2 // MSW (Machine Status Word), so called on 286 // CR0 (Control Register 0), so called on 386+ BX_CPU_THIS_PTR cr0.ts = 0; // no task switch BX_CPU_THIS_PTR cr0.em = 0; // emulate math coprocessor BX_CPU_THIS_PTR cr0.mp = 0; // wait instructions not trapped BX_CPU_THIS_PTR cr0.pe = 0; // real mode BX_CPU_THIS_PTR cr0.val32 = 0; #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR cr0.pg = 0; // paging disabled // no change to cr0.val32 #endif #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR cr0.cd = 1; // caching disabled BX_CPU_THIS_PTR cr0.nw = 1; // not write-through BX_CPU_THIS_PTR cr0.am = 0; // disable alignment check BX_CPU_THIS_PTR cr0.wp = 0; // disable write-protect BX_CPU_THIS_PTR cr0.ne = 0; // ndp exceptions through int 13H, DOS compat BX_CPU_THIS_PTR cr0.val32 |= 0x60000000; #endif // handle reserved bits #if BX_CPU_LEVEL == 3 // reserved bits all set to 1 on 386 BX_CPU_THIS_PTR cr0.val32 |= 0x7ffffff0; #elif BX_CPU_LEVEL >= 4 // bit 4 is hardwired to 1 on all x86 BX_CPU_THIS_PTR cr0.val32 |= 0x00000010; #endif #endif // CPU >= 2 #if BX_CPU_LEVEL >= 3 BX_CPU_THIS_PTR cr2 = 0; BX_CPU_THIS_PTR cr3 = 0; #endif #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR cr4 = 0; #endif /* initialise MSR registers to defaults */ #if BX_CPU_LEVEL >= 5 /* APIC Address, APIC enabled and BSP is default, we'll fill in the rest later */ BX_CPU_THIS_PTR msr.apicbase = (APIC_BASE_ADDR << 12) + 0x900; #endif BX_CPU_THIS_PTR EXT = 0; //BX_INTR = 0; #if BX_SUPPORT_PAGING #if BX_USE_TLB TLB_init(); #endif // BX_USE_TLB #endif // BX_SUPPORT_PAGING BX_CPU_THIS_PTR bytesleft = 0; BX_CPU_THIS_PTR fetch_ptr = NULL; BX_CPU_THIS_PTR prev_linear_page = 0; BX_CPU_THIS_PTR prev_phy_page = 0; BX_CPU_THIS_PTR max_phy_addr = 0; //=================================== BX_CPU_THIS_PTR eipPageBias = 0; BX_CPU_THIS_PTR eipPageWindowSize = 0; BX_CPU_THIS_PTR eipFetchPtr = NULL; //=================================== #if BX_DEBUGGER #ifdef MAGIC_BREAKPOINT BX_CPU_THIS_PTR magic_break = 0; #endif BX_CPU_THIS_PTR stop_reason = STOP_NO_REASON; BX_CPU_THIS_PTR trace = 0; #endif // Init the Floating Point Unit fpu_init(); #if BX_DYNAMIC_TRANSLATION dynamic_init(); #endif #if (BX_SMP_PROCESSORS > 1) // notice if I'm the bootstrap processor. If not, do the equivalent of // a HALT instruction. int apic_id = local_apic.get_id (); if (BX_BOOTSTRAP_PROCESSOR == apic_id) { // boot normally BX_CPU_THIS_PTR bsp = 1; BX_CPU_THIS_PTR msr.apicbase |= 0x0100; /* set bit 8 BSP */ BX_INFO(("CPU[%d] is the bootstrap processor", apic_id)); } else { // it's an application processor, halt until IPI is heard. BX_CPU_THIS_PTR bsp = 0; BX_CPU_THIS_PTR msr.apicbase &= ~0x0100; /* clear bit 8 BSP */ BX_INFO(("CPU[%d] is an application processor. Halting until IPI.", apic_id)); debug_trap |= 0x80000000; async_event = 1; } #endif } void BX_CPU_C::sanity_checks(void) { Bit8u al, cl, dl, bl, ah, ch, dh, bh; Bit16u ax, cx, dx, bx, sp, bp, si, di; Bit32u eax, ecx, edx, ebx, esp, ebp, esi, edi; if (sizeof(Bit8u)!=1|| sizeof(Bit16u)!=2|| sizeof(Bit32u)!=4) { BX_PANIC(("problems using Bit8u Bit16u Bit32u!")); } X86_EAX = 0xFFEEDDCC; X86_ECX = 0xBBAA9988; X86_EDX = 0x77665544; X86_EBX = 0x332211FF; X86_ESP = 0xEEDDCCBB; X86_EBP = 0xAA998877; X86_ESI = 0x66554433; X86_EDI = 0x2211FFEE; al = X86_AL; cl = X86_CL; dl = X86_DL; bl = X86_BL; ah = X86_AH; ch = X86_CH; dh = X86_DH; bh = X86_BH; if ( al != (X86_EAX & 0xFF) || cl != (X86_ECX & 0xFF) || dl != (X86_EDX & 0xFF) || bl != (X86_EBX & 0xFF) || ah != ((X86_EAX >> 8) & 0xFF) || ch != ((X86_ECX >> 8) & 0xFF) || dh != ((X86_EDX >> 8) & 0xFF) || bh != ((X86_EBX >> 8) & 0xFF) ) { BX_PANIC(("problems using BX_READ_8BIT_REG()!")); } ax = X86_AX; cx = X86_CX; dx = X86_DX; bx = X86_BX; sp = X86_SP; bp = X86_BP; si = X86_SI; di = X86_DI; if ( ax != (X86_EAX & 0xFFFF) || cx != (X86_ECX & 0xFFFF) || dx != (X86_EDX & 0xFFFF) || bx != (X86_EBX & 0xFFFF) || sp != (X86_ESP & 0xFFFF) || bp != (X86_EBP & 0xFFFF) || si != (X86_ESI & 0xFFFF) || di != (X86_EDI & 0xFFFF) ) { BX_PANIC(("problems using BX_READ_16BIT_REG()!")); } eax = X86_EAX; ecx = X86_ECX; edx = X86_EDX; ebx = X86_EBX; esp = X86_ESP; ebp = X86_EBP; esi = X86_ESI; edi = X86_EDI; if (sizeof(Bit8u) != 1 || sizeof(Bit8s) != 1) BX_PANIC(("data type Bit8u or Bit8s is not of length 1 byte!")); if (sizeof(Bit16u) != 2 || sizeof(Bit16s) != 2) BX_PANIC(("data type Bit16u or Bit16s is not of length 2 bytes!")); if (sizeof(Bit32u) != 4 || sizeof(Bit32s) != 4) BX_PANIC(("data type Bit32u or Bit32s is not of length 4 bytes!")); BX_DEBUG(( "#(%u)all sanity checks passed!", BX_SIM_ID )); } void BX_CPU_C::set_INTR(Boolean value) { BX_CPU_THIS_PTR INTR = value; BX_CPU_THIS_PTR async_event = 1; } ================================================ FILE: Project/IntelCPU/Source/instrume.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: instrument.h,v 1.5 2001/10/03 13:10:38 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// // possible types passed to BX_INSTR_TLB_CNTRL() #define BX_INSTR_MOV_CR3 10 #define BX_INSTR_INVLPG 11 #define BX_INSTR_TASKSWITCH 12 // possible types passed to BX_INSTR_CACHE_CNTRL() #define BX_INSTR_INVD 20 #define BX_INSTR_WBINVD 21 #if BX_INSTRUMENTATION #define BX_INSTR_IS_CALL 10 #define BX_INSTR_IS_RET 11 #define BX_INSTR_IS_IRET 12 #define BX_INSTR_IS_JMP 13 #define BX_INSTR_IS_INT 14 // called from the CPU core void bx_instr_cnear_branch_taken(Bit32u new_eip); void bx_instr_cnear_branch_not_taken(void); void bx_instr_ucnear_branch(unsigned what, Bit32u new_eip); void bx_instr_far_branch(unsigned what, Bit32u new_cs, Bit32u new_eip); void bx_instr_opcode_byte1(Bit8u); void bx_instr_opcode_byte2(Bit8u); void bx_instr_opcode_g1ebib(unsigned nnn); void bx_instr_opcode_g1eviv(unsigned nnn); void bx_instr_opcode_g1evib(unsigned nnn); void bx_instr_opcode_g2ebib(unsigned nnn); void bx_instr_opcode_g2evib(unsigned nnn); void bx_instr_opcode_g2eb1(unsigned nnn); void bx_instr_opcode_g2ev1(unsigned nnn); void bx_instr_opcode_g2ebcl(unsigned nnn); void bx_instr_opcode_g2evcl(unsigned nnn); void bx_instr_opcode_g3eb(unsigned nnn); void bx_instr_opcode_g3ev(unsigned nnn); void bx_instr_opcode_g4(unsigned nnn); void bx_instr_opcode_g5(unsigned nnn); void bx_instr_opcode_g6(unsigned nnn); void bx_instr_opcode_g7(unsigned nnn); void bx_instr_opcode_g8evib(unsigned nnn); void bx_instr_mem_code(Bit32u linear, unsigned size); void bx_instr_mem_data(Bit32u linear, unsigned size, unsigned rw); void bx_instr_opcode_begin(Bit32u linear); void bx_instr_opcode_end(Bit32u linear); void bx_instr_fetch_byte(Bit8u val8); void bx_instr_fetch_word(Bit16u val16); void bx_instr_fetch_dword(Bit32u val32); void bx_instr_phy_write(Bit32u addr, unsigned len); void bx_instr_phy_read(Bit32u addr, unsigned len); void bx_instr_interrupt(unsigned _vector); void bx_instr_exception(unsigned _vector); void bx_instr_inp(Bit16u addr, unsigned len); void bx_instr_outp(Bit16u addr, unsigned len); void bx_instr_inp2(Bit16u addr, unsigned len, unsigned val); void bx_instr_outp2(Bit16u addr, unsigned len, unsigned val); void bx_instr_tlb_cntrl(unsigned what, Bit32u newval); void bx_instr_cache_cntrl(unsigned what); void bx_instr_hwinterrupt(unsigned _vector, Bit32u cs, Bit32u eip); void bx_instr_init(void); void bx_instr_shutdown(void); void bx_instr_opcode_repeating(void); void bx_instr_prefix_as(void); void bx_instr_prefix_os(void); void bx_instr_prefix_rep(void); void bx_instr_prefix_repne(void); void bx_instr_prefix_lock(void); void bx_instr_prefix_cs(void); void bx_instr_prefix_ss(void); void bx_instr_prefix_ds(void); void bx_instr_prefix_es(void); void bx_instr_prefix_fs(void); void bx_instr_prefix_gs(void); void bx_instr_modrm32(unsigned modrm); void bx_instr_sib32(unsigned sib); void bx_instr_modrm16(unsigned modrm); void bx_instr_iret(void); void bx_instr_debug_prompt(void); void bx_instr_lin_read(Bit32u lin, Bit32u phy, unsigned len); void bx_instr_lin_write(Bit32u lin, Bit32u phy, unsigned len); // called from the debug prompt void bx_instr_start(void); void bx_instr_stop(void); void bx_instr_reset(void); void bx_instr_print(void); # define BX_INSTR_INIT() bx_instr_init() # define BX_INSTR_SHUTDOWN() bx_instr_shutdown() # define BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip) bx_instr_cnear_branch_taken(new_eip) # define BX_INSTR_CNEAR_BRANCH_NOT_TAKEN() bx_instr_cnear_branch_not_taken() # define BX_INSTR_UCNEAR_BRANCH(what, new_eip) bx_instr_ucnear_branch(what, new_eip) # define BX_INSTR_FAR_BRANCH(what, new_cs, new_eip) bx_instr_far_branch(what, new_cs, new_eip) # define BX_INSTR_OPCODE_BEGIN(linear) bx_instr_opcode_begin(linear) # define BX_INSTR_OPCODE_END(linear) bx_instr_opcode_end(linear) # define BX_INSTR_OPCODE_BYTE1(b) bx_instr_opcode_byte1(b) # define BX_INSTR_OPCODE_BYTE2(b) bx_instr_opcode_byte2(b) # define BX_INSTR_OPCODE_G1EbIb(nnn) bx_instr_opcode_g1ebib(nnn) # define BX_INSTR_OPCODE_G1EvIv(nnn) bx_instr_opcode_g1eviv(nnn) # define BX_INSTR_OPCODE_G1EvIb(nnn) bx_instr_opcode_g1evib(nnn) # define BX_INSTR_OPCODE_G2EbIb(nnn) bx_instr_opcode_g2ebib(nnn) # define BX_INSTR_OPCODE_G2EvIb(nnn) bx_instr_opcode_g2evib(nnn) # define BX_INSTR_OPCODE_G2Eb1(nnn) bx_instr_opcode_g2eb1(nnn) # define BX_INSTR_OPCODE_G2Ev1(nnn) bx_instr_opcode_g2ev1(nnn) # define BX_INSTR_OPCODE_G2EbCL(nnn) bx_instr_opcode_g2ebcl(nnn) # define BX_INSTR_OPCODE_G2EvCL(nnn) bx_instr_opcode_g2evcl(nnn) # define BX_INSTR_OPCODE_G3Eb(nnn) bx_instr_opcode_g3eb(nnn) # define BX_INSTR_OPCODE_G3Ev(nnn) bx_instr_opcode_g3ev(nnn) # define BX_INSTR_OPCODE_G4(nnn) bx_instr_opcode_g4(nnn) # define BX_INSTR_OPCODE_G5(nnn) bx_instr_opcode_g5(nnn) # define BX_INSTR_OPCODE_G6(nnn) bx_instr_opcode_g6(nnn) # define BX_INSTR_OPCODE_G7(nnn) bx_instr_opcode_g7(nnn) # define BX_INSTR_OPCODE_G8EvIb(nnn) bx_instr_opcode_g8evib(nnn) # define BX_INSTR_MEM_CODE(linear, size) bx_instr_mem_code(linear, size) # define BX_INSTR_MEM_DATA(linear, size, rw) bx_instr_mem_data(linear, size, rw) # define BX_INSTR_EXCEPTION(_vector) bx_instr_exception(_vector) # define BX_INSTR_INP(addr, len) bx_instr_inp(addr, len) # define BX_INSTR_INP2(addr, len, val) bx_instr_inp2(addr, len, val) # define BX_INSTR_OUTP(addr, len) bx_instr_outp(addr, len) # define BX_INSTR_OUTP2(addr, len, val) bx_instr_outp2(addr, len, val) # define BX_INSTR_FETCH_BYTE(val8) bx_instr_fetch_byte(val8) # define BX_INSTR_FETCH_WORD(val16) bx_instr_fetch_word(val16) # define BX_INSTR_FETCH_DWORD(val32) bx_instr_fetch_dword(val32) # define BX_INSTR_PHY_WRITE(addr, len) bx_instr_phy_write(addr, len) # define BX_INSTR_PHY_READ(addr, len) bx_instr_phy_read(addr, len) # define BX_INSTR_INTERRUPT(_vector) bx_instr_interrupt(_vector) # define BX_INSTR_TLB_CNTRL(what, newval) bx_instr_tlb_cntrl(what, newval) # define BX_INSTR_CACHE_CNTRL(what) bx_instr_cache_cntrl(what) # define BX_INSTR_HWINTERRUPT(_vector, cs, eip) bx_instr_hwinterrupt(_vector, cs, eip) # define BX_INSTR_OPCODE_REPEATING() bx_instr_opcode_repeating() # define BX_INSTR_PREFIX_AS() bx_instr_prefix_as() # define BX_INSTR_PREFIX_OS() bx_instr_prefix_os() # define BX_INSTR_PREFIX_REP() bx_instr_prefix_rep() # define BX_INSTR_PREFIX_REPNE() bx_instr_prefix_repne() # define BX_INSTR_PREFIX_LOCK() bx_instr_prefix_lock() # define BX_INSTR_PREFIX_CS() bx_instr_prefix_cs() # define BX_INSTR_PREFIX_SS() bx_instr_prefix_ss() # define BX_INSTR_PREFIX_DS() bx_instr_prefix_ds() # define BX_INSTR_PREFIX_ES() bx_instr_prefix_es() # define BX_INSTR_PREFIX_FS() bx_instr_prefix_fs() # define BX_INSTR_PREFIX_GS() bx_instr_prefix_gs() # define BX_INSTR_MODRM32(modrm) bx_instr_modrm32(modrm) # define BX_INSTR_SIB32(sib) bx_instr_sib32(sib) # define BX_INSTR_MODRM16(modrm) bx_instr_modrm16(modrm) # define BX_INSTR_SIB_mod0_base5(ss) # define BX_INSTR_SIB_MOD0_IND4() # define BX_INSTR_SIB_MOD1_IND4() # define BX_INSTR_SIB_MOD2_IND4() # define BX_INSTR_IRET() bx_instr_iret() # define BX_INSTR_DEBUG_PROMPT() bx_instr_debug_prompt() # define BX_INSTR_LIN_READ(lin, phy, len) bx_instr_lin_read(lin, phy, len) # define BX_INSTR_LIN_WRITE(lin, phy, len) bx_instr_lin_write(lin, phy, len) # define BX_INSTR_START() bx_instr_start () # define BX_INSTR_STOP() bx_instr_stop () # define BX_INSTR_RESET() bx_instr_reset () # define BX_INSTR_PRINT() bx_instr_print () #else // #if BX_INSTRUMENTATION # define BX_INSTR_INIT() # define BX_INSTR_SHUTDOWN() # define BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip) # define BX_INSTR_CNEAR_BRANCH_NOT_TAKEN() # define BX_INSTR_UCNEAR_BRANCH(what, new_eip) # define BX_INSTR_FAR_BRANCH(what, new_cs, new_eip) # define BX_INSTR_OPCODE_BEGIN(linear) # define BX_INSTR_OPCODE_END(linear) # define BX_INSTR_OPCODE_BYTE1(b) # define BX_INSTR_OPCODE_BYTE2(b) # define BX_INSTR_OPCODE_G1EbIb(nnn) # define BX_INSTR_OPCODE_G1EvIv(nnn) # define BX_INSTR_OPCODE_G1EvIb(nnn) # define BX_INSTR_OPCODE_G2EbIb(nnn) # define BX_INSTR_OPCODE_G2EvIb(nnn) # define BX_INSTR_OPCODE_G2Eb1(nnn) # define BX_INSTR_OPCODE_G2Ev1(nnn) # define BX_INSTR_OPCODE_G2EbCL(nnn) # define BX_INSTR_OPCODE_G2EvCL(nnn) # define BX_INSTR_OPCODE_G3Eb(nnn) # define BX_INSTR_OPCODE_G3Ev(nnn) # define BX_INSTR_OPCODE_G4(nnn) # define BX_INSTR_OPCODE_G5(nnn) # define BX_INSTR_OPCODE_G6(nnn) # define BX_INSTR_OPCODE_G7(nnn) # define BX_INSTR_OPCODE_G8EvIb(nnn) # define BX_INSTR_MEM_CODE(linear, size) # define BX_INSTR_MEM_DATA(linear, size, rw) # define BX_INSTR_EXCEPTION(_vector) # define BX_INSTR_INP(addr, len) # define BX_INSTR_INP2(addr, len, val) # define BX_INSTR_OUTP(addr, len) # define BX_INSTR_OUTP2(addr, len, val) # define BX_INSTR_FETCH_BYTE(val8) # define BX_INSTR_FETCH_WORD(val16) # define BX_INSTR_FETCH_DWORD(val32) # define BX_INSTR_PHY_WRITE(addr, len) # define BX_INSTR_PHY_READ(addr, len) # define BX_INSTR_INTERRUPT(_vector) # define BX_INSTR_TLB_CNTRL(what, newval) # define BX_INSTR_CACHE_CNTRL(what) # define BX_INSTR_HWINTERRUPT(_vector, cs, eip) # define BX_INSTR_OPCODE_REPEATING() # define BX_INSTR_PREFIX_AS() # define BX_INSTR_PREFIX_OS() # define BX_INSTR_PREFIX_REP() # define BX_INSTR_PREFIX_REPNE() # define BX_INSTR_PREFIX_LOCK() # define BX_INSTR_PREFIX_CS() # define BX_INSTR_PREFIX_SS() # define BX_INSTR_PREFIX_DS() # define BX_INSTR_PREFIX_ES() # define BX_INSTR_PREFIX_FS() # define BX_INSTR_PREFIX_GS() # define BX_INSTR_MODRM32(modrm) # define BX_INSTR_SIB32(sib) # define BX_INSTR_MODRM16(modrm) # define BX_INSTR_SIB_mod0_base5(ss) # define BX_INSTR_SIB_MOD0_IND4() # define BX_INSTR_SIB_MOD1_IND4() # define BX_INSTR_SIB_MOD2_IND4() # define BX_INSTR_IRET() # define BX_INSTR_DEBUG_PROMPT() # define BX_INSTR_LIN_READ(lin, phy, len) # define BX_INSTR_LIN_WRITE(lin, phy, len) # define BX_INSTR_START() # define BX_INSTR_STOP() # define BX_INSTR_RESET() # define BX_INSTR_PRINT() #endif // #if BX_INSTRUMENTATION ================================================ FILE: Project/IntelCPU/Source/io.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: io.cc,v 1.5 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::INSB_YbDX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u value8=0; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR eflags.vm || (RW_CPL>RW_IOPL))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } if (i->size_mode.as_32) { // Write a zero to memory, to trigger any segment or page // faults before reading from IO port. BX_CPU_CLASS_PTR write_virtual_byte(BX_SEG_REG_ES, RW_EDI, &value8); value8 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); /* no seg override possible */ BX_CPU_CLASS_PTR write_virtual_byte(BX_SEG_REG_ES, RW_EDI, &value8); if (BX_CPU_CLASS_PTR eflags.df) { RW_EDI = RW_EDI - 1; } else { RW_EDI = RW_EDI + 1; } } else { // Write a zero to memory, to trigger any segment or page // faults before reading from IO port. BX_CPU_CLASS_PTR write_virtual_byte(BX_SEG_REG_ES, RW_DI, &value8); value8 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); /* no seg override possible */ BX_CPU_CLASS_PTR write_virtual_byte(BX_SEG_REG_ES, RW_DI, &value8); if (BX_CPU_CLASS_PTR eflags.df) { RW_DI = RW_DI - 1; } else { RW_DI = RW_DI + 1; } } } void BX_CPU_C::INSW_YvDX(BX_CPU_C *icpu,bxInstruction_c *i) // input word/doubleword from port to string { Bit32u edi; unsigned int incr; if (i->size_mode.as_32) edi = RW_EDI; else edi = RW_DI; if (i->size_mode.os_32) { Bit32u value32=0; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR eflags.vm || (RW_CPL>RW_IOPL))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } // Write a zero to memory, to trigger any segment or page // faults before reading from IO port. BX_CPU_CLASS_PTR write_virtual_dword(BX_SEG_REG_ES, edi, &value32); value32 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); /* no seg override allowed */ BX_CPU_CLASS_PTR write_virtual_dword(BX_SEG_REG_ES, edi, &value32); incr = 4; } else { Bit16u value16=0; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR eflags.vm || (RW_CPL>RW_IOPL))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } // Write a zero to memory, to trigger any segment or page // faults before reading from IO port. BX_CPU_CLASS_PTR write_virtual_word(BX_SEG_REG_ES, edi, &value16); value16 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); /* no seg override allowed */ BX_CPU_CLASS_PTR write_virtual_word(BX_SEG_REG_ES, edi, &value16); incr = 2; } if (i->size_mode.as_32) { if (BX_CPU_CLASS_PTR eflags.df) RW_EDI = RW_EDI - incr; else RW_EDI = RW_EDI + incr; } else { if (BX_CPU_CLASS_PTR eflags.df) RW_DI = RW_DI - incr; else RW_DI = RW_DI + incr; } } void BX_CPU_C::OUTSB_DXXb(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u value8; Bit32u esi; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR eflags.vm || (RW_CPL>RW_IOPL))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } if (!BX_NULL_SEG_REG(MODRMSeg(i))) { seg = MODRMSeg(i); } else { seg = BX_SEG_REG_DS; } if (i->size_mode.as_32) esi = RW_ESI; else esi = RW_SI; BX_CPU_CLASS_PTR read_virtual_byte(seg, esi, &value8); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, value8, 1); if (i->size_mode.as_32) { if (BX_CPU_CLASS_PTR eflags.df) RW_ESI -= 1; else RW_ESI += 1; } else { if (BX_CPU_CLASS_PTR eflags.df) RW_SI -= 1; else RW_SI += 1; } } void BX_CPU_C::OUTSW_DXXv(BX_CPU_C *icpu,bxInstruction_c *i) // output word/doubleword string to port { unsigned seg; Bit32u esi; unsigned int incr; if (!BX_NULL_SEG_REG(MODRMSeg(i))) { seg = MODRMSeg(i); } else { seg = BX_SEG_REG_DS; } if (i->size_mode.as_32) esi = RW_ESI; else esi = RW_SI; if (i->size_mode.os_32) { Bit32u value32; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR eflags.vm || (RW_CPL>RW_IOPL))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } BX_CPU_CLASS_PTR read_virtual_dword(seg, esi, &value32); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, value32, 4); incr = 4; } else { Bit16u value16; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR eflags.vm || (RW_CPL>RW_IOPL))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } BX_CPU_CLASS_PTR read_virtual_word(seg, esi, &value16); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, value16, 2); incr = 2; } if (i->size_mode.as_32) { if (BX_CPU_CLASS_PTR eflags.df) RW_ESI = RW_ESI - incr; else RW_ESI = RW_ESI + incr; } else { if (BX_CPU_CLASS_PTR eflags.df) RW_SI = RW_SI - incr; else RW_SI = RW_SI + incr; } } void BX_CPU_C::IN_ALIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u al, imm8; imm8 = IMMEDIATEIb(i); al = BX_CPU_CLASS_PTR inp8(imm8); RW_AL = al; } void BX_CPU_C::IN_eAXIb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u imm8; imm8 = IMMEDIATEIb(i); #if BX_CPU_LEVEL > 2 if (i->size_mode.os_32) { Bit32u eax; eax = BX_CPU_CLASS_PTR inp32(imm8); RW_EAX = eax; } else #endif /* BX_CPU_LEVEL > 2 */ { Bit16u ax; ax = BX_CPU_CLASS_PTR inp16(imm8); RW_AX = ax; } } void BX_CPU_C::OUT_IbAL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u al, imm8; imm8 = IMMEDIATEIb(i); al = RW_AL; BX_CPU_CLASS_PTR outp8(imm8, al); } void BX_CPU_C::OUT_IbeAX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u imm8; imm8 = IMMEDIATEIb(i); #if BX_CPU_LEVEL > 2 if (i->size_mode.os_32) { BX_CPU_CLASS_PTR outp32(imm8, RW_EAX); } else #endif /* BX_CPU_LEVEL > 2 */ { BX_CPU_CLASS_PTR outp16(imm8, RW_AX); } } void BX_CPU_C::IN_ALDX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u al; al = BX_CPU_CLASS_PTR inp8(RW_DX); RW_AL = al; } void BX_CPU_C::IN_eAXDX(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL > 2 if (i->size_mode.os_32) { Bit32u eax; eax = BX_CPU_CLASS_PTR inp32(RW_DX); RW_EAX = eax; } else #endif /* BX_CPU_LEVEL > 2 */ { Bit16u ax; ax = BX_CPU_CLASS_PTR inp16(RW_DX); RW_AX = ax; } } void BX_CPU_C::OUT_DXAL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u dx; Bit8u al; dx = RW_DX; al = RW_AL; BX_CPU_CLASS_PTR outp8(dx, al); } void BX_CPU_C::OUT_DXeAX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u dx; dx = RW_DX; #if BX_CPU_LEVEL > 2 if (i->size_mode.os_32) { BX_CPU_CLASS_PTR outp32(dx, RW_EAX); } else #endif /* BX_CPU_LEVEL > 2 */ { BX_CPU_CLASS_PTR outp16(dx, RW_AX); } } ================================================ FILE: Project/IntelCPU/Source/io_pro.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: io_pro.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" Bit16u BX_CPU_C::inp16(Bit16u addr) { Bit16u ret16; if (BX_CPU_THIS_PTR cr0.pe && (BX_CPU_THIS_PTR eflags.vm || (CPL>X86_IOPL))) { if ( !BX_CPU_THIS_PTR allow_io(addr, 2) ) { // BX_INFO(("cpu_inp16: GP0()!")); exception(BX_GP_EXCEPTION, 0, 0); return(0); } } ret16 = BX_INP(addr, 2); return( ret16 ); } void BX_CPU_C::outp16(Bit16u addr, Bit16u value) { /* If CPL <= IOPL, then all IO addresses are accessible. * Otherwise, must check the IO permission map on >286. * On the 286, there is no IO permissions map */ if (BX_CPU_THIS_PTR cr0.pe && (BX_CPU_THIS_PTR eflags.vm || (CPL>X86_IOPL))) { if ( !BX_CPU_THIS_PTR allow_io(addr, 2) ) { // BX_INFO(("cpu_outp16: GP0()!")); exception(BX_GP_EXCEPTION, 0, 0); return; } } BX_OUTP(addr, value, 2); } Bit32u BX_CPU_C::inp32(Bit16u addr) { Bit32u ret32; if (BX_CPU_THIS_PTR cr0.pe && (BX_CPU_THIS_PTR eflags.vm || (CPL>X86_IOPL))) { if ( !BX_CPU_THIS_PTR allow_io(addr, 4) ) { // BX_INFO(("cpu_inp32: GP0()!")); exception(BX_GP_EXCEPTION, 0, 0); return(0); } } ret32 = BX_INP(addr, 4); return( ret32 ); } void BX_CPU_C::outp32(Bit16u addr, Bit32u value) { /* If CPL <= IOPL, then all IO addresses are accessible. * Otherwise, must check the IO permission map on >286. * On the 286, there is no IO permissions map */ if (BX_CPU_THIS_PTR cr0.pe && (BX_CPU_THIS_PTR eflags.vm || (CPL>X86_IOPL))) { if ( !BX_CPU_THIS_PTR allow_io(addr, 4) ) { // BX_INFO(("cpu_outp32: GP0()!")); exception(BX_GP_EXCEPTION, 0, 0); return; } } BX_OUTP(addr, value, 4); } Bit8u BX_CPU_C::inp8(Bit16u addr) { Bit8u ret8; if (BX_CPU_THIS_PTR cr0.pe && (BX_CPU_THIS_PTR eflags.vm || (CPL>X86_IOPL))) { if ( !BX_CPU_THIS_PTR allow_io(addr, 1) ) { // BX_INFO(("cpu_inp8: GP0()!")); exception(BX_GP_EXCEPTION, 0, 0); return(0); } } ret8 = BX_INP(addr, 1); return( ret8 ); } void BX_CPU_C::outp8(Bit16u addr, Bit8u value) { /* If CPL <= IOPL, then all IO addresses are accessible. * Otherwise, must check the IO permission map on >286. * On the 286, there is no IO permissions map */ if (BX_CPU_THIS_PTR cr0.pe && (BX_CPU_THIS_PTR eflags.vm || (CPL>X86_IOPL))) { if ( !BX_CPU_THIS_PTR allow_io(addr, 1) ) { // BX_INFO(("cpu_outp8: GP0()!")); exception(BX_GP_EXCEPTION, 0, 0); return; } } BX_OUTP(addr, value, 1); } Boolean BX_CPU_C::allow_io(Bit16u addr, unsigned len) { Bit16u io_base, permission16; unsigned bit_index, i; if (BX_CPU_THIS_PTR tr.cache.valid==0 || BX_CPU_THIS_PTR tr.cache.type!=9) { BX_INFO(("allow_io(): TR doesn't point to a valid 32bit TSS")); return(0); } if (BX_CPU_THIS_PTR tr.cache.u.tss386.limit_scaled < 103) { BX_PANIC(("allow_io(): TR.limit < 103")); } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR tr.cache.u.tss386.base + 102, 2, 0, BX_READ, &io_base); if (io_base <= 103) { BX_INFO(("PE is %u", BX_CPU_THIS_PTR cr0.pe)); BX_INFO(("VM is %u", BX_CPU_THIS_PTR eflags.vm)); BX_INFO(("CPL is %u", CPL)); BX_INFO(("X86_IOPL is %u", X86_IOPL)); BX_INFO(("addr is %u", addr)); BX_INFO(("len is %u", len)); BX_PANIC(("allow_io(): TR:io_base <= 103")); } if (io_base > BX_CPU_THIS_PTR tr.cache.u.tss386.limit_scaled) { BX_INFO(("allow_io(): CPL > IOPL: no IO bitmap defined #GP(0)")); return(0); } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR tr.cache.u.tss386.base + io_base + addr/8, 2, 0, BX_READ, &permission16); bit_index = addr & 0x07; permission16 >>= bit_index; for (i=0; i>= 1; } return(1); } ================================================ FILE: Project/IntelCPU/Source/jcc.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: jcc.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ תָ //--------------------------------------------------------- void BX_CPU_C::Jcc0_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc0_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc1_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc1_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc2_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_CF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc2_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc3_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_CF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc3_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc4_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc4_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc5_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc5_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc6_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc6_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc7_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc7_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc8_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_SF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc8_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc9_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_SF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc9_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcca_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_PF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcca_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccb_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_PF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccb_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccc_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccc_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccd_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccd_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcce_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF())) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcce_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccf_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if ((BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()) &&!BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccf_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc0_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc0_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc1_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc1_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc2_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_CF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc2_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc3_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_CF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc3_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc4_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc4_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc5_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc5_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc6_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_CF() || BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc6_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc7_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_CF() && !BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc7_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc8_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_SF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc8_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcc9_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_SF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcc9_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcca_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_PF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcca_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccb_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (!BX_CPU_CLASS_PTR get_PF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccb_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccc_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccc_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccd_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccd_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jcce_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (BX_CPU_CLASS_PTR get_ZF() || (BX_CPU_CLASS_PTR get_SF() != BX_CPU_CLASS_PTR get_OF())) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jcce_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::Jccf_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if ((BX_CPU_CLASS_PTR get_SF() == BX_CPU_CLASS_PTR get_OF()) &&!BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("Jccf_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::JCXZ_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if ((i->size_mode.as_32 ? RW_ECX : RW_CX)==0) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JCXZ_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::JCXZ_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if ((i->size_mode.as_32 ? RW_ECX : RW_CX)==0) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JCXZ_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::LOOP_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u count; #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) count = (RW_ECX-1); else #endif // if BX_CPU_LEVEL >= 3 count = (RW_CX-1); if ((count)) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("LOOP_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) RW_ECX = count; else #endif //if BX_CPU_LEVEL >= 3 RW_CX = (Bit16u)count; } void BX_CPU_C::LOOP_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u count; #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) count = (RW_ECX-1); else #endif // if BX_CPU_LEVEL >= 3 count = (RW_CX-1); if ((count)) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("LOOP_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) RW_ECX = count; else #endif //if BX_CPU_LEVEL >= 3 RW_CX = (Bit16u)count; } void BX_CPU_C::LOOPE_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u count; #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) count = (RW_ECX-1); else #endif // if BX_CPU_LEVEL >= 3 count = (RW_CX-1); if ((count) && BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("LOOPE_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) RW_ECX = count; else #endif //if BX_CPU_LEVEL >= 3 RW_CX = (Bit16u)count; } void BX_CPU_C::LOOPE_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u count; #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) count = (RW_ECX-1); else #endif // if BX_CPU_LEVEL >= 3 count = (RW_CX-1); if ((count) && BX_CPU_CLASS_PTR get_ZF()) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("LOOPE_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) RW_ECX = count; else #endif //if BX_CPU_LEVEL >= 3 RW_CX = (Bit16u)count; } void BX_CPU_C::LOOPNE_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u count; #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) count = (RW_ECX-1); else #endif // if BX_CPU_LEVEL >= 3 count = (RW_CX-1); if ((count) && (!BX_CPU_CLASS_PTR get_ZF())) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("LOOPNE_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) RW_ECX = count; else #endif //if BX_CPU_LEVEL >= 3 RW_CX = (Bit16u)count; } void BX_CPU_C::LOOPNE_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; Bit32u count; #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) count = (RW_ECX-1); else #endif // if BX_CPU_LEVEL >= 3 count = (RW_CX-1); if ((count) && (!BX_CPU_CLASS_PTR get_ZF())) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("LOOPNE_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif #if BX_CPU_LEVEL>= 3 if (i->size_mode.as_32) RW_ECX = count; else #endif //if BX_CPU_LEVEL >= 3 RW_CX = (Bit16u)count; } void BX_CPU_C::JMP_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (1) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JMP_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); BX_CPU_CLASS_PTR eipPageWindowSize = 0; BX_CPU_CLASS_PTR bytesleft = 0; } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::JMP_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; if (1) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("JMP_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); BX_CPU_CLASS_PTR eipPageWindowSize = 0; BX_CPU_CLASS_PTR bytesleft = 0; } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::CALL_Jw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; BX_CPU_CLASS_PTR call_push_16((Bit16u)(BX_CPU_CLASS_PTR program_visible_eip)); if (1) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i))&0x0000ffff; #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("CALL_Jw_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); BX_CPU_CLASS_PTR eipPageWindowSize = 0; BX_CPU_CLASS_PTR bytesleft = 0; } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } void BX_CPU_C::CALL_Jd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u new_eip; BX_CPU_CLASS_PTR call_push_32(BX_CPU_CLASS_PTR program_visible_eip); if (1) { new_eip = (BX_CPU_CLASS_PTR program_visible_eip + IMMEDIATEId(i)); #if BX_CPU_LEVEL >= 2 if ( new_eip > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled ) { BX_PANIC(("CALL_Jd_routine: offset outside of CS limits")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif BX_CPU_CLASS_PTR program_visible_eip = new_eip; BX_INSTR_CNEAR_BRANCH_TAKEN(new_eip); BX_CPU_CLASS_PTR revalidate_prefetch_q(); BX_CPU_CLASS_PTR eipPageWindowSize = 0; BX_CPU_CLASS_PTR bytesleft = 0; } #if BX_INSTRUMENTATION else { BX_INSTR_CNEAR_BRANCH_NOT_TAKEN(); } #endif } ================================================ FILE: Project/IntelCPU/Source/lazy_flg.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: lazy_flags.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" #if (HOST_CPU_IS_I80386==0) Boolean BX_CPU_C::get_CF(void) { Bit32u lf_cf; bx_lf_flags_entry *lf_entry; unsigned lf_entry_index; lf_entry_index = (BX_CPU_THIS_PTR lf_flags_status & 0x00000f); if (lf_entry_index==0) { //PRINTFLAGSINFO(lf_entry_index,"get_CF",BX_CPU_THIS_PTR eflags.x86.cf,BX_CPU_THIS_PTR eflags.cf); return (BX_CPU_THIS_PTR eflags.cf); } lf_entry = &BX_CPU_THIS_PTR lf_entrys[lf_entry_index]; switch (lf_entry->instr) { case BX_INSTR_X86: lf_cf = BX_CPU_THIS_PTR eflags.cf; break; case BX_INSTR_ADD8: case BX_INSTR_XADD8: lf_cf = (lf_entry->result_8 op2_8); break; case BX_INSTR_ADD16: case BX_INSTR_XADD16: lf_cf = (lf_entry->result_16 op2_16); break; case BX_INSTR_ADD32: case BX_INSTR_XADD32: lf_cf = (lf_entry->result_32 < lf_entry->op2_32); break; case BX_INSTR_ADC8: lf_cf = (lf_entry->result_8 op2_8) || (lf_entry->prev_cf &&lf_entry->result_8 <=lf_entry->op2_8); break; case BX_INSTR_ADC16: lf_cf = (lf_entry->result_16 < lf_entry->op2_16) || (lf_entry->prev_cf &&lf_entry->result_16 <=lf_entry->op2_16); break; case BX_INSTR_ADC32: lf_cf = (lf_entry->result_32 < lf_entry->op2_32) || (lf_entry->prev_cf &&lf_entry->result_32 <=lf_entry->op2_32); break; case BX_INSTR_SUB8: case BX_INSTR_CMP8: case BX_INSTR_CMPS8: case BX_INSTR_SCAS8: lf_cf = (lf_entry->op1_8 < lf_entry->op2_8); break; case BX_INSTR_SUB16: case BX_INSTR_CMP16: case BX_INSTR_CMPS16: case BX_INSTR_SCAS16: lf_cf = (lf_entry->op1_16 < lf_entry->op2_16); break; case BX_INSTR_SUB32: case BX_INSTR_CMP32: case BX_INSTR_CMPS32: case BX_INSTR_SCAS32: lf_cf = (lf_entry->op1_32 < lf_entry->op2_32); break; case BX_INSTR_SBB8: lf_cf = (lf_entry->op1_8 < lf_entry->op2_8) || (lf_entry->prev_cf &&lf_entry->op1_8 <=lf_entry->op2_8); break; case BX_INSTR_SBB16: lf_cf = (lf_entry->op1_16 < lf_entry->op2_16) || (lf_entry->prev_cf &&lf_entry->op1_16 <=lf_entry->op2_16); break; case BX_INSTR_SBB32: lf_cf = (lf_entry->op1_32 < lf_entry->op2_32) || (lf_entry->prev_cf &&lf_entry->op1_32 <=lf_entry->op2_32); break; case BX_INSTR_NEG8: lf_cf = lf_entry->result_8 != 0; break; case BX_INSTR_NEG16: lf_cf = lf_entry->result_16 != 0; break; case BX_INSTR_NEG32: lf_cf = lf_entry->result_32 != 0; break; case BX_INSTR_OR8: case BX_INSTR_OR16: case BX_INSTR_OR32: case BX_INSTR_AND8: case BX_INSTR_AND16: case BX_INSTR_AND32: case BX_INSTR_TEST8: case BX_INSTR_TEST16: case BX_INSTR_TEST32: case BX_INSTR_XOR8: case BX_INSTR_XOR16: case BX_INSTR_XOR32: lf_cf = 0; break; case BX_INSTR_SHR8: lf_cf = (lf_entry->op1_8 >>(lf_entry->shift_counter - 1)) & 0x01; break; case BX_INSTR_SHR16: lf_cf = (lf_entry->op1_16 >>(lf_entry->shift_counter - 1)) & 0x01; break; case BX_INSTR_SHR32: lf_cf = (lf_entry->op1_32 >>(lf_entry->shift_counter - 1)) & 0x01; break; case BX_INSTR_SHL8: lf_cf = ((lf_entry->op1_8 <<(lf_entry->shift_counter - 1))>>0x7) & 0x01; break; case BX_INSTR_SHL16: lf_cf = ((lf_entry->op1_16 <<(lf_entry->shift_counter - 1))>>0xf) & 0x01; break; case BX_INSTR_SHL32: lf_cf = (lf_entry->op1_32 >>(32 - lf_entry->shift_counter)) & 0x01; break; case BX_INSTR_SAR8: lf_cf = ((lf_entry->op1_8 >> (lf_entry->shift_counter - 1)) | ((0-(lf_entry->op1_8>>(8-1))) << (8 - ((lf_entry->shift_counter- 1)&0x7))))&0x01; break; case BX_INSTR_SAR16: lf_cf = ((lf_entry->op1_16 >> (lf_entry->shift_counter - 1)) | ((0-(lf_entry->op1_16>>(16-1))) << (16 - ((lf_entry->shift_counter- 1)&0xf))))&0x01; break; case BX_INSTR_SAR32: lf_cf = ((lf_entry->op1_32 >> (lf_entry->shift_counter - 1)))&0x01; break; case BX_INSTR_SHRD16: { Bit32u temp_32; temp_32 = ((lf_entry->op2_16<<16) | (lf_entry->op1_16)); temp_32 = (temp_32>> (lf_entry->shift_counter - 1)) | (temp_32<< (32-(lf_entry->shift_counter - 1))); lf_cf = temp_32 & 0x01; } break; case BX_INSTR_SHRD32: lf_cf = (lf_entry->op1_32 >> (lf_entry->shift_counter - 1)) & 0x01; #if 0 __asm { mov ebx,lf_entry mov eax,[ebx]bx_lf_flags_entry.op1_32 mov edx,[ebx]bx_lf_flags_entry.op2_32 mov cl,[ebx]bx_lf_flags_entry.shift_counter shrd eax,edx,cl mov eax,0 setc al mov lf_cf,eax } #endif break; case BX_INSTR_SHLD16: { Bit32u temp_32; temp_32 = ((lf_entry->op2_16<<16) | (lf_entry->op1_16)); temp_32 = (temp_32<< (lf_entry->shift_counter - 1)) | (temp_32>> (32-(lf_entry->shift_counter - 1))); lf_cf = (temp_32>>15) & 0x01; } break; case BX_INSTR_SHLD32: lf_cf = (lf_entry->op1_32 << (32 - lf_entry->shift_counter)) & 0x01; #if 0 __asm { mov ebx,lf_entry mov eax,[ebx]bx_lf_flags_entry.op1_32 mov edx,[ebx]bx_lf_flags_entry.op2_32 mov cl,[ebx]bx_lf_flags_entry.shift_counter shld eax,edx,cl mov eax,0 setc al mov lf_cf,eax } #endif break; case BX_INSTR_ROR8: lf_cf = (lf_entry->result_8>>7); break; case BX_INSTR_ROR16: lf_cf = (lf_entry->result_16>>15); break; case BX_INSTR_ROR32: lf_cf = (lf_entry->result_32>>31); break; case BX_INSTR_ROL8: lf_cf = (lf_entry->result_8&0x01); break; case BX_INSTR_ROL16: lf_cf = (lf_entry->result_16&0x01); break; case BX_INSTR_ROL32: lf_cf = (lf_entry->result_32&0x01); break; case BX_INSTR_RCR8: lf_cf = ((lf_entry->op1_8 >> (lf_entry->shift_counter - 1)) & 0x01); break; case BX_INSTR_RCR16: lf_cf = ((lf_entry->op1_16 >> (lf_entry->shift_counter - 1)) & 0x01); break; case BX_INSTR_RCR32: lf_cf = ((lf_entry->op1_32 >> (lf_entry->shift_counter - 1)) & 0x01); break; case BX_INSTR_RCL8: lf_cf = ((lf_entry->op1_8 >> (8 - lf_entry->shift_counter)) & 0x01); break; case BX_INSTR_RCL16: lf_cf = ((lf_entry->op1_16 >> (16 - lf_entry->shift_counter)) & 0x01); break; case BX_INSTR_RCL32: lf_cf = ((lf_entry->op1_32 >> (32 - lf_entry->shift_counter)) & 0x01); break; default: BX_PANIC(("get_CF: OSZAPC,OSZPC,XSZPC,OC,XC: unknown instr %u", (unsigned) lf_entry->instr)); } BX_CPU_THIS_PTR lf_flags_status &= 0xfffff0; BX_CPU_THIS_PTR eflags.cf = lf_cf; //PRINTFLAGSINFO(lf_entry_index,"get_CF",BX_CPU_THIS_PTR eflags.x86.cf,BX_CPU_THIS_PTR eflags.cf); return (lf_cf); } Boolean BX_CPU_C::get_AF(void) { Bit32u lf_af; bx_lf_flags_entry *lf_entry; unsigned lf_entry_index; lf_entry_index = ((BX_CPU_THIS_PTR lf_flags_status>>8) & 0x00000f); if (lf_entry_index==0) { //PRINTFLAGSINFO(lf_entry_index,"get_AF",BX_CPU_THIS_PTR eflags.x86.af,BX_CPU_THIS_PTR eflags.af); return (BX_CPU_THIS_PTR eflags.af); } lf_entry = &BX_CPU_THIS_PTR lf_entrys[lf_entry_index]; switch (lf_entry->instr) { case BX_INSTR_X86: lf_af = BX_CPU_THIS_PTR eflags.af; break; case BX_INSTR_ADD8: case BX_INSTR_ADC8: case BX_INSTR_SUB8: case BX_INSTR_SBB8: case BX_INSTR_CMP8: case BX_INSTR_XADD8: case BX_INSTR_CMPS8: case BX_INSTR_SCAS8: lf_af = (((lf_entry->op1_8 ^ lf_entry->op2_8) ^lf_entry->result_8) & 0x10)>>4; break; case BX_INSTR_ADD16: case BX_INSTR_ADC16: case BX_INSTR_SUB16: case BX_INSTR_SBB16: case BX_INSTR_CMP16: case BX_INSTR_XADD16: case BX_INSTR_CMPS16: case BX_INSTR_SCAS16: lf_af = (((lf_entry->op1_16 ^ lf_entry->op2_16) ^lf_entry->result_16) & 0x10)>>4; break; case BX_INSTR_ADD32: case BX_INSTR_ADC32: case BX_INSTR_SUB32: case BX_INSTR_SBB32: case BX_INSTR_CMP32: case BX_INSTR_XADD32: case BX_INSTR_CMPS32: case BX_INSTR_SCAS32: lf_af = (((lf_entry->op1_32 ^ lf_entry->op2_32) ^lf_entry->result_32) & 0x10)>>4; break; case BX_INSTR_NEG8: lf_af = ((0-lf_entry->result_8) & 0x0f) > 0; break; case BX_INSTR_NEG16: lf_af = ((0-lf_entry->result_16) & 0x0f) > 0; break; case BX_INSTR_NEG32: lf_af = ((0-lf_entry->result_32) & 0x0f) > 0; break; case BX_INSTR_OR8: case BX_INSTR_OR16: case BX_INSTR_OR32: case BX_INSTR_AND8: case BX_INSTR_AND16: case BX_INSTR_AND32: case BX_INSTR_TEST8: case BX_INSTR_TEST16: case BX_INSTR_TEST32: case BX_INSTR_XOR8: case BX_INSTR_XOR16: case BX_INSTR_XOR32: lf_af = 0; break; case BX_INSTR_SHR8: case BX_INSTR_SHR16: case BX_INSTR_SHR32: case BX_INSTR_SHL8: case BX_INSTR_SHL16: case BX_INSTR_SHL32: /* undefined */ BX_PANIC(("get_AF: OSZAPC,OSZAP: unknown instr %u", (unsigned) lf_entry->instr)); break; case BX_INSTR_INC8: lf_af = (lf_entry->result_8 & 0x0f) == 0x00; break; case BX_INSTR_INC16: lf_af = (lf_entry->result_16 & 0x0f) == 0x00; break; case BX_INSTR_INC32: lf_af = (lf_entry->result_32 & 0x0f) == 0x00; break; case BX_INSTR_DEC8: lf_af = (lf_entry->result_8 & 0x0f) == 0x0f; break; case BX_INSTR_DEC16: lf_af = (lf_entry->result_16 & 0x0f) == 0x0f; break; case BX_INSTR_DEC32: lf_af = (lf_entry->result_32 & 0x0f) == 0x0f; break; default: BX_PANIC(("get_AF: OSZAPC,OSZAP: unknown instr %u", (unsigned) lf_entry->instr)); } BX_CPU_THIS_PTR lf_flags_status &= 0xfff0ff; BX_CPU_THIS_PTR eflags.af = lf_af; //PRINTFLAGSINFO(lf_entry_index,"get_AF",BX_CPU_THIS_PTR eflags.x86.af,BX_CPU_THIS_PTR eflags.af); return(lf_af); } Boolean BX_CPU_C::get_ZF(void) { bx_lf_flags_entry *lf_entry; unsigned lf_entry_index; lf_entry_index = ((BX_CPU_THIS_PTR lf_flags_status>>12) & 0x00000f); if (lf_entry_index==0) { //PRINTFLAGSINFO(lf_entry_index,"get_ZF",BX_CPU_THIS_PTR eflags.x86.zf,BX_CPU_THIS_PTR eflags.zf); return (BX_CPU_THIS_PTR eflags.zf); } lf_entry = &BX_CPU_THIS_PTR lf_entrys[lf_entry_index]; switch (lf_entry->instr) { case BX_INSTR_X86: BX_CPU_THIS_PTR eflags.zf = BX_CPU_THIS_PTR eflags.zf; break; case BX_INSTR_ADD8: case BX_INSTR_ADC8: case BX_INSTR_SUB8: case BX_INSTR_SBB8: case BX_INSTR_CMP8: case BX_INSTR_NEG8: case BX_INSTR_XADD8: case BX_INSTR_OR8: case BX_INSTR_AND8: case BX_INSTR_TEST8: case BX_INSTR_XOR8: case BX_INSTR_CMPS8: case BX_INSTR_SCAS8: case BX_INSTR_SHR8: case BX_INSTR_SHL8: case BX_INSTR_SAR8: BX_CPU_THIS_PTR eflags.zf = (lf_entry->result_8 == 0); break; case BX_INSTR_ADD16: case BX_INSTR_ADC16: case BX_INSTR_SUB16: case BX_INSTR_SBB16: case BX_INSTR_CMP16: case BX_INSTR_NEG16: case BX_INSTR_XADD16: case BX_INSTR_OR16: case BX_INSTR_AND16: case BX_INSTR_TEST16: case BX_INSTR_XOR16: case BX_INSTR_CMPS16: case BX_INSTR_SCAS16: case BX_INSTR_SHR16: case BX_INSTR_SHL16: case BX_INSTR_SAR16: case BX_INSTR_SHLD16: case BX_INSTR_SHRD16: BX_CPU_THIS_PTR eflags.zf = (lf_entry->result_16 == 0); break; case BX_INSTR_ADD32: case BX_INSTR_ADC32: case BX_INSTR_SUB32: case BX_INSTR_SBB32: case BX_INSTR_CMP32: case BX_INSTR_NEG32: case BX_INSTR_XADD32: case BX_INSTR_OR32: case BX_INSTR_AND32: case BX_INSTR_TEST32: case BX_INSTR_XOR32: case BX_INSTR_CMPS32: case BX_INSTR_SCAS32: case BX_INSTR_SHR32: case BX_INSTR_SHL32: case BX_INSTR_SAR32: case BX_INSTR_SHLD32: case BX_INSTR_SHRD32: BX_CPU_THIS_PTR eflags.zf = (lf_entry->result_32 == 0); break; case BX_INSTR_INC8: case BX_INSTR_DEC8: BX_CPU_THIS_PTR eflags.zf = (lf_entry->result_8 == 0); break; case BX_INSTR_INC16: case BX_INSTR_DEC16: BX_CPU_THIS_PTR eflags.zf = (lf_entry->result_16 == 0); break; case BX_INSTR_INC32: case BX_INSTR_DEC32: BX_CPU_THIS_PTR eflags.zf = (lf_entry->result_32 == 0); break; default: BX_PANIC(("get_ZF: OSZAPC,OSZAP,OSZPC,XSZPC: unknown instr", lf_entry->instr)); } BX_CPU_THIS_PTR lf_flags_status &= 0xff0fff; //PRINTFLAGSINFO(lf_entry_index,"get_ZF",BX_CPU_THIS_PTR eflags.x86.zf,BX_CPU_THIS_PTR eflags.zf); return(BX_CPU_THIS_PTR eflags.zf); } Boolean BX_CPU_C::get_SF(void) { bx_lf_flags_entry *lf_entry; unsigned lf_entry_index; lf_entry_index = ((BX_CPU_THIS_PTR lf_flags_status>>16) & 0x00000f); if (lf_entry_index==0) { //PRINTFLAGSINFO(lf_entry_index,"get_SF",BX_CPU_THIS_PTR eflags.x86.sf,BX_CPU_THIS_PTR eflags.sf); return (BX_CPU_THIS_PTR eflags.sf); } lf_entry = &BX_CPU_THIS_PTR lf_entrys[lf_entry_index]; switch (lf_entry->instr) { case BX_INSTR_X86: BX_CPU_THIS_PTR eflags.sf = BX_CPU_THIS_PTR eflags.sf; break; case BX_INSTR_ADD8: case BX_INSTR_ADC8: case BX_INSTR_SUB8: case BX_INSTR_SBB8: case BX_INSTR_CMP8: case BX_INSTR_NEG8: case BX_INSTR_XADD8: case BX_INSTR_OR8: case BX_INSTR_AND8: case BX_INSTR_TEST8: case BX_INSTR_XOR8: case BX_INSTR_CMPS8: case BX_INSTR_SCAS8: case BX_INSTR_SHR8: case BX_INSTR_SHL8: case BX_INSTR_SAR8: BX_CPU_THIS_PTR eflags.sf = (lf_entry->result_8 >> 7); break; case BX_INSTR_ADD16: case BX_INSTR_ADC16: case BX_INSTR_SUB16: case BX_INSTR_SBB16: case BX_INSTR_CMP16: case BX_INSTR_NEG16: case BX_INSTR_XADD16: case BX_INSTR_OR16: case BX_INSTR_AND16: case BX_INSTR_TEST16: case BX_INSTR_XOR16: case BX_INSTR_CMPS16: case BX_INSTR_SCAS16: case BX_INSTR_SHR16: case BX_INSTR_SHL16: case BX_INSTR_SAR16: case BX_INSTR_SHLD16: case BX_INSTR_SHRD16: BX_CPU_THIS_PTR eflags.sf = (lf_entry->result_16 >>15); break; case BX_INSTR_ADD32: case BX_INSTR_ADC32: case BX_INSTR_SUB32: case BX_INSTR_SBB32: case BX_INSTR_CMP32: case BX_INSTR_NEG32: case BX_INSTR_XADD32: case BX_INSTR_OR32: case BX_INSTR_AND32: case BX_INSTR_TEST32: case BX_INSTR_XOR32: case BX_INSTR_CMPS32: case BX_INSTR_SCAS32: case BX_INSTR_SHR32: case BX_INSTR_SHL32: case BX_INSTR_SAR32: case BX_INSTR_SHLD32: case BX_INSTR_SHRD32: BX_CPU_THIS_PTR eflags.sf = (lf_entry->result_32 >>31); break; case BX_INSTR_INC8: case BX_INSTR_DEC8: BX_CPU_THIS_PTR eflags.sf = (lf_entry->result_8 >> 7); break; case BX_INSTR_INC16: case BX_INSTR_DEC16: BX_CPU_THIS_PTR eflags.sf = (lf_entry->result_16 >> 15); break; case BX_INSTR_INC32: case BX_INSTR_DEC32: BX_CPU_THIS_PTR eflags.sf = (lf_entry->result_32 >> 31); break; default: BX_PANIC(("get_SF: OSZAPC,OSZAP,OSZPC,XSZPC: unknown instr %d", lf_entry->instr)); } BX_CPU_THIS_PTR lf_flags_status &= 0xf0ffff; //PRINTFLAGSINFO(lf_entry_index,"get_SF",BX_CPU_THIS_PTR eflags.x86.sf,BX_CPU_THIS_PTR eflags.sf); return(BX_CPU_THIS_PTR eflags.sf); } Boolean BX_CPU_C::get_OF(void) { bx_lf_flags_entry *lf_entry; unsigned lf_entry_index; lf_entry_index = ((BX_CPU_THIS_PTR lf_flags_status>>20) & 0x00000f); if (lf_entry_index==0) { //PRINTFLAGSINFO(lf_entry_index,"get_OF",BX_CPU_THIS_PTR eflags.x86.of,BX_CPU_THIS_PTR eflags.of); return (BX_CPU_THIS_PTR eflags.of); } lf_entry = &BX_CPU_THIS_PTR lf_entrys[lf_entry_index]; switch (lf_entry->instr) { case BX_INSTR_X86: BX_CPU_THIS_PTR eflags.of = BX_CPU_THIS_PTR eflags.of; break; case BX_INSTR_ADD8: case BX_INSTR_ADC8: case BX_INSTR_XADD8: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_8 ^ lf_entry->result_8) & (lf_entry->op2_8 ^ lf_entry->result_8))>>7; break; case BX_INSTR_ADD16: case BX_INSTR_ADC16: case BX_INSTR_XADD16: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_16 ^ lf_entry->result_16) & (lf_entry->op2_16 ^ lf_entry->result_16))>>15; break; case BX_INSTR_ADD32: case BX_INSTR_ADC32: case BX_INSTR_XADD32: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_32 ^ lf_entry->result_32) & (lf_entry->op2_32 ^ lf_entry->result_32))>>31; break; case BX_INSTR_SUB8: case BX_INSTR_SBB8: case BX_INSTR_CMP8: case BX_INSTR_CMPS8: case BX_INSTR_SCAS8: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_8 ^ lf_entry->op2_8) & (lf_entry->op1_8 ^ lf_entry->result_8))>>7; break; case BX_INSTR_SUB16: case BX_INSTR_SBB16: case BX_INSTR_CMP16: case BX_INSTR_CMPS16: case BX_INSTR_SCAS16: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_16 ^ lf_entry->op2_16) & (lf_entry->op1_16 ^ lf_entry->result_16))>>15; break; case BX_INSTR_SUB32: case BX_INSTR_SBB32: case BX_INSTR_CMP32: case BX_INSTR_CMPS32: case BX_INSTR_SCAS32: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_32 ^ lf_entry->op2_32) & (lf_entry->op1_32 ^ lf_entry->result_32))>>31; break; case BX_INSTR_NEG8: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_8 == 0x80); break; case BX_INSTR_NEG16: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_16 == 0x8000); break; case BX_INSTR_NEG32: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_32 == 0x80000000); break; case BX_INSTR_OR8: case BX_INSTR_OR16: case BX_INSTR_OR32: case BX_INSTR_AND8: case BX_INSTR_AND16: case BX_INSTR_AND32: case BX_INSTR_TEST8: case BX_INSTR_TEST16: case BX_INSTR_TEST32: case BX_INSTR_XOR8: case BX_INSTR_XOR16: case BX_INSTR_XOR32: BX_CPU_THIS_PTR eflags.of = 0; break; case BX_INSTR_INC8: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_8 == 0x80); break; case BX_INSTR_INC16: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_16 == 0x8000); break; case BX_INSTR_INC32: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_32 == 0x80000000); break; case BX_INSTR_DEC8: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_8 == 0x7f); break; case BX_INSTR_DEC16: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_16 == 0x7fff); break; case BX_INSTR_DEC32: BX_CPU_THIS_PTR eflags.of = (lf_entry->result_32 == 0x7fffffff); break; case BX_INSTR_SHR8: BX_CPU_THIS_PTR eflags.of = (lf_entry->op1_8 >>7); break; case BX_INSTR_SHR16: BX_CPU_THIS_PTR eflags.of = (lf_entry->op1_16 >>15); break; case BX_INSTR_SHR32: BX_CPU_THIS_PTR eflags.of = (lf_entry->op1_32 >>31); break; case BX_INSTR_SHL8: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_8 ^lf_entry->result_8) >> 7); break; case BX_INSTR_SHL16: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_16 ^lf_entry->result_16) >> 15); break; case BX_INSTR_SHL32: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_32 ^lf_entry->result_32) >>31); break; case BX_INSTR_SAR8: case BX_INSTR_SAR16: case BX_INSTR_SAR32: BX_CPU_THIS_PTR eflags.of = 0; break; case BX_INSTR_SHRD16: case BX_INSTR_SHLD16: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_16 ^lf_entry->result_16) >>15) &0x01; break; case BX_INSTR_SHRD32: case BX_INSTR_SHLD32: BX_CPU_THIS_PTR eflags.of = ((lf_entry->op1_32 ^lf_entry->result_32) >>31) &0x01; break; case BX_INSTR_ROR8: case BX_INSTR_ROL8: case BX_INSTR_RCR8: case BX_INSTR_RCL8: BX_CPU_THIS_PTR eflags.of = (((lf_entry->op1_8 ^ lf_entry->result_8)>>7)); break; case BX_INSTR_ROR16: case BX_INSTR_ROL16: case BX_INSTR_RCR16: case BX_INSTR_RCL16: BX_CPU_THIS_PTR eflags.of = (((lf_entry->op1_16 ^ lf_entry->result_16)>>15)); break; case BX_INSTR_ROR32: case BX_INSTR_ROL32: case BX_INSTR_RCR32: case BX_INSTR_RCL32: BX_CPU_THIS_PTR eflags.of = (((lf_entry->op1_32 ^ lf_entry->result_32)>>31)); break; default: BX_PANIC(("get_OF: OSZAPC,OSZAP,OSZPC,OC: unknown instr %d", lf_entry->instr)); } BX_CPU_THIS_PTR lf_flags_status &= 0x0fffff; //PRINTFLAGSINFO(lf_entry_index,"get_OF",BX_CPU_THIS_PTR eflags.x86.of,BX_CPU_THIS_PTR eflags.of); return(BX_CPU_THIS_PTR eflags.of); } Boolean BX_CPU_C::get_PF(void) { bx_lf_flags_entry *lf_entry; unsigned lf_entry_index; lf_entry_index = ((BX_CPU_THIS_PTR lf_flags_status>>4) & 0x00000f); if (lf_entry_index==0) { //PRINTFLAGSINFO(lf_entry_index,"get_PF",BX_CPU_THIS_PTR eflags.x86.pf,BX_CPU_THIS_PTR eflags.pf); return (BX_CPU_THIS_PTR eflags.pf); } lf_entry = &BX_CPU_THIS_PTR lf_entrys[lf_entry_index]; switch (lf_entry->instr) { case BX_INSTR_X86: BX_CPU_THIS_PTR eflags.pf = BX_CPU_THIS_PTR eflags.pf; break; case BX_INSTR_ADD8: case BX_INSTR_ADC8: case BX_INSTR_SUB8: case BX_INSTR_SBB8: case BX_INSTR_CMP8: case BX_INSTR_NEG8: case BX_INSTR_XADD8: case BX_INSTR_OR8: case BX_INSTR_AND8: case BX_INSTR_TEST8: case BX_INSTR_XOR8: case BX_INSTR_CMPS8: case BX_INSTR_SCAS8: case BX_INSTR_SHR8: case BX_INSTR_SHL8: case BX_INSTR_SAR8: BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[lf_entry->result_8]; break; case BX_INSTR_ADD16: case BX_INSTR_ADC16: case BX_INSTR_SUB16: case BX_INSTR_SBB16: case BX_INSTR_CMP16: case BX_INSTR_NEG16: case BX_INSTR_XADD16: case BX_INSTR_OR16: case BX_INSTR_AND16: case BX_INSTR_TEST16: case BX_INSTR_XOR16: case BX_INSTR_CMPS16: case BX_INSTR_SCAS16: case BX_INSTR_SHR16: case BX_INSTR_SHL16: case BX_INSTR_SAR16: case BX_INSTR_SHLD16: case BX_INSTR_SHRD16: BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[(Bit8u) lf_entry->result_16]; break; case BX_INSTR_ADD32: case BX_INSTR_ADC32: case BX_INSTR_SUB32: case BX_INSTR_SBB32: case BX_INSTR_CMP32: case BX_INSTR_NEG32: case BX_INSTR_XADD32: case BX_INSTR_OR32: case BX_INSTR_AND32: case BX_INSTR_TEST32: case BX_INSTR_XOR32: case BX_INSTR_CMPS32: case BX_INSTR_SCAS32: case BX_INSTR_SHR32: case BX_INSTR_SHL32: case BX_INSTR_SAR32: case BX_INSTR_SHLD32: case BX_INSTR_SHRD32: BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[(Bit8u) lf_entry->result_32]; break; case BX_INSTR_INC8: case BX_INSTR_DEC8: BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[lf_entry->result_8]; break; case BX_INSTR_INC16: case BX_INSTR_DEC16: BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[(Bit8u) lf_entry->result_16]; break; case BX_INSTR_INC32: case BX_INSTR_DEC32: BX_CPU_THIS_PTR eflags.pf = bx_parity_lookup[(Bit8u) lf_entry->result_32]; break; default: BX_PANIC(("get_PF: OSZAPC,OSZAP,OSZPC,XSZPC: unknown instr %d", lf_entry->instr)); } BX_CPU_THIS_PTR lf_flags_status &= 0xffff0f; //PRINTFLAGSINFO(lf_entry_index,"get_PF",BX_CPU_THIS_PTR eflags.x86.pf,BX_CPU_THIS_PTR eflags.pf); return(BX_CPU_THIS_PTR eflags.pf); } #else Boolean BX_CPU_C::get_CF(void) { return ((BX_CPU_THIS_PTR eflags.x86.Descr.cf)); } Boolean BX_CPU_C::get_AF(void) { return ((BX_CPU_THIS_PTR eflags.x86.Descr.af)); } Boolean BX_CPU_C::get_ZF(void) { return ((BX_CPU_THIS_PTR eflags.x86.Descr.zf)); } Boolean BX_CPU_C::get_SF(void) { return ((BX_CPU_THIS_PTR eflags.x86.Descr.sf)); } Boolean BX_CPU_C::get_OF(void) { return ((BX_CPU_THIS_PTR eflags.x86.Descr.of)); } Boolean BX_CPU_C::get_PF(void) { return ((BX_CPU_THIS_PTR eflags.x86.Descr.pf)); } #endif int BX_CPU_C::PRINTFLAGSINFO(int lf_entry_index,char *name,int m,int c) { if (m==c) return 0; BX_PANIC(("get_flags: instr = %d,index =%d :%s", BX_CPU_THIS_PTR lf_entrys[lf_entry_index].instr,lf_entry_index,name)); return 0; } ================================================ FILE: Project/IntelCPU/Source/lazy_flg.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: lazy_flags.h,v 1.3 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #ifndef BX_FLAGS_H #define BX_FLAGS_H #if BX_PROVIDE_CPU_MEMORY==1 #define BX_INSTR_X86 0 #define BX_INSTR_ADD8 1 #define BX_INSTR_ADD16 2 #define BX_INSTR_ADD32 3 #define BX_INSTR_SUB8 4 #define BX_INSTR_SUB16 5 #define BX_INSTR_SUB32 6 #define BX_INSTR_ADC8 7 #define BX_INSTR_ADC16 8 #define BX_INSTR_ADC32 9 #define BX_INSTR_SBB8 10 #define BX_INSTR_SBB16 11 #define BX_INSTR_SBB32 12 #define BX_INSTR_CMP8 13 #define BX_INSTR_CMP16 14 #define BX_INSTR_CMP32 15 #define BX_INSTR_INC8 16 #define BX_INSTR_INC16 17 #define BX_INSTR_INC32 18 #define BX_INSTR_DEC8 19 #define BX_INSTR_DEC16 20 #define BX_INSTR_DEC32 21 #define BX_INSTR_NEG8 22 #define BX_INSTR_NEG16 23 #define BX_INSTR_NEG32 24 #define BX_INSTR_XADD8 25 #define BX_INSTR_XADD16 26 #define BX_INSTR_XADD32 27 #define BX_INSTR_OR8 28 #define BX_INSTR_OR16 29 #define BX_INSTR_OR32 30 #define BX_INSTR_AND8 31 #define BX_INSTR_AND16 32 #define BX_INSTR_AND32 33 #define BX_INSTR_TEST8 34 #define BX_INSTR_TEST16 35 #define BX_INSTR_TEST32 36 #define BX_INSTR_XOR8 37 #define BX_INSTR_XOR16 38 #define BX_INSTR_XOR32 39 #define BX_INSTR_CMPS8 40 #define BX_INSTR_CMPS16 41 #define BX_INSTR_CMPS32 42 #define BX_INSTR_SCAS8 43 #define BX_INSTR_SCAS16 44 #define BX_INSTR_SCAS32 45 #define BX_INSTR_SHR8 46 #define BX_INSTR_SHR16 47 #define BX_INSTR_SHR32 48 #define BX_INSTR_SHL8 49 #define BX_INSTR_SHL16 50 #define BX_INSTR_SHL32 51 #define BX_INSTR_SAR8 52 #define BX_INSTR_SAR16 53 #define BX_INSTR_SAR32 54 #define BX_INSTR_ROL8 55 #define BX_INSTR_ROL16 56 #define BX_INSTR_ROL32 57 #define BX_INSTR_ROR8 58 #define BX_INSTR_ROR16 59 #define BX_INSTR_ROR32 60 #define BX_INSTR_RCL8 61 #define BX_INSTR_RCL16 62 #define BX_INSTR_RCL32 63 #define BX_INSTR_RCR8 64 #define BX_INSTR_RCR16 65 #define BX_INSTR_RCR32 66 #define BX_INSTR_SHRD16 67 #define BX_INSTR_SHRD32 68 #define BX_INSTR_SHLD16 69 #define BX_INSTR_SHLD32 70 #define BX_LF_INDEX_KNOWN 0 #define BX_LF_INDEX_OSZAPC 1 #define BX_LF_INDEX_OSZAP 2 #define BX_LF_INDEX_OSZPC 3 #define BX_LF_INDEX_XSZPC 4 #define BX_LF_INDEX_OC 5 #define BX_LF_INDEX_XC 6 #define BX_LF_INDEX_SIZE 7 #define BX_LF_MASK_OSZAPC 0x111111 #define BX_LF_MASK_OSZAP 0x222220 #define BX_LF_MASK_OSZPC 0x333033 #define BX_LF_MASK_XSZPC 0x044044 #define BX_LF_MASK_OC 0x500005 #define BX_LF_MASK_XC 0x000006 typedef struct { Bit8u op1_8; Bit8u op2_8; Bit8u result_8; Bit16u op1_16; Bit16u op2_16; Bit16u result_16; Bit32u op1_32; Bit32u op2_32; Bit32u result_32; unsigned shift_counter; unsigned prev_cf; unsigned instr; } bx_lf_flags_entry; #endif /* BX_PROVIDE_CPU_MEMORY==1 */ #endif //#ifndef BX_FLAGS_H ================================================ FILE: Project/IntelCPU/Source/mult.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: mult.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ ˳ָ //--------------------------------------------------------- void BX_CPU_C::DIV_ALEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2; X86_CPU_INT64 source,result; Bit16u op1; op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op1 = RW_AX; source.h32 = 0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x00ff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } RW_AH = (Bit8u)(source.l32); RW_AL = (Bit8u)(result.l32); // DIV_ALEGb affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::DIV_ALEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2; X86_CPU_INT64 source,result; Bit16u op1; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); op1 = RW_AX; source.h32 = 0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x00ff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } RW_AH = (Bit8u)(source.l32); RW_AL = (Bit8u)(result.l32); // DIV_ALEEb affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::DIV_AXEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2; X86_CPU_INT64 source,result; Bit32u op1; op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op1 = ((RW_DX<<16) | RW_AX); source.h32 =0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x0000ffff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } RW_DX = (Bit16u)(source.l32); RW_AX = (Bit16u)(result.l32); // DIV_AXEGw affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::DIV_AXEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2; X86_CPU_INT64 source,result; Bit32u op1; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); op1 = ((RW_DX<<16) | RW_AX); source.h32 =0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x0000ffff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } RW_DX = (Bit16u)(source.l32); RW_AX = (Bit16u)(result.l32); // DIV_AXEEw affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::DIV_EAXEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2; X86_CPU_INT64 source,result; op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); source.h32 = RW_EDX; source.l32 = RW_EAX; DivideBit64(&source,op2,&result); if (result.h32>0) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } RW_EDX = source.l32; RW_EAX = result.l32; // DIV_EAXEGd affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::DIV_EAXEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2; X86_CPU_INT64 source,result; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); source.h32 = RW_EDX; source.l32 = RW_EAX; DivideBit64(&source,op2,&result); if (result.h32>0) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } RW_EDX = source.l32; RW_EAX = result.l32; // DIV_EAXEEd affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::IDIV_ALEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2; X86_CPU_INT64 source,result; Boolean s2,s1; Bit16u op1; op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); op1 = RW_AX; s1 = op1>>15; s2 = op2>>7; if (s1) { op1 = 0 -op1; } if (s2) { op2 = 0 - op2; } source.h32 =0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x0007f) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } if (s1) { source.l32 = 0 -source.l32; } if (s1!=s2) { result.l32 = 0 -result.l32; } RW_AH = (Bit8u)(source.l32); RW_AL = (Bit8u)(result.l32); // IDIV_ALEGb affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::IDIV_ALEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2; X86_CPU_INT64 source,result; Boolean s2,s1; Bit16u op1; READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); op1 = RW_AX; s1 = op1>>15; s2 = op2>>7; if (s1) { op1 = 0 -op1; } if (s2) { op2 = 0 - op2; } source.h32 =0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x0007f) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } if (s1) { source.l32 = 0 -source.l32; } if (s1!=s2) { result.l32 = 0 -result.l32; } RW_AH = (Bit8u)(source.l32); RW_AL = (Bit8u)(result.l32); // IDIV_ALEEb affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::IDIV_AXEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2; X86_CPU_INT64 source,result; Boolean s2,s1; Bit32u op1; op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op1 = ((RW_DX<<16) | RW_AX); s1 = op1>>31; s2 = op2>>15; if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } source.h32 =0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x0007fff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } if (s1) { source.l32 = 0 -source.l32; } if (s1!=s2) { result.l32 = 0 -result.l32; } RW_DX = (Bit16u)(source.l32); RW_AX = (Bit16u)(result.l32); // IDIV_AXEGw affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::IDIV_AXEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2; X86_CPU_INT64 source,result; Boolean s2,s1; Bit32u op1; READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); op1 = ((RW_DX<<16) | RW_AX); s1 = op1>>31; s2 = op2>>15; if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } source.h32 =0; source.l32 = op1; DivideBit64(&source,op2,&result); if (result.l32>0x0007fff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } if (s1) { source.l32 = 0 -source.l32; } if (s1!=s2) { result.l32 = 0 -result.l32; } RW_DX = (Bit16u)(source.l32); RW_AX = (Bit16u)(result.l32); // IDIV_AXEEw affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::IDIV_EAXEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2; X86_CPU_INT64 source,result; Boolean s2,s1; op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); source.h32 = RW_EDX; source.l32 = RW_EAX; s1 = source.h32>>31; s2 = op2>>31; if (s1) { source.l32 = 0 -source.l32; if (!source.l32) { source.h32 = 0 -source.h32 - 0; } else { source.h32 = 0 -source.h32 - 1; } } if (s2) { op2 = 0 - op2; } DivideBit64(&source,op2,&result); if (result.h32>0||result.l32>0x7fffffff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } if (s1) { source.l32 = 0 -source.l32; } if (s1!=s2) { result.l32 = 0 -result.l32; } RW_EDX = source.l32; RW_EAX = result.l32; // IDIV_EAXEGd affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::IDIV_EAXEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2; X86_CPU_INT64 source,result; Boolean s2,s1; READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); source.h32 = RW_EDX; source.l32 = RW_EAX; s1 = source.h32>>31; s2 = op2>>31; if (s1) { source.l32 = 0 -source.l32; if (!source.l32) { source.h32 = 0 -source.h32 - 0; } else { source.h32 = 0 -source.h32 - 1; } } if (s2) { op2 = 0 - op2; } DivideBit64(&source,op2,&result); if (result.h32>0||result.l32>0x7fffffff) { BX_CPU_CLASS_PTR exception(BX_DE_EXCEPTION, 0, 0); } if (s1) { source.l32 = 0 -source.l32; } if (s1!=s2) { result.l32 = 0 -result.l32; } RW_EDX = source.l32; RW_EAX = result.l32; // IDIV_EAXEEd affects the following flags: O,S,Z,A,P,C are undefined } void BX_CPU_C::MUL_ALEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2, op1; Boolean temp_flag; Bit16u sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); sum = op1 * op2; temp_flag = (sum>0x00ff); RW_AX = sum; // MUL_ALEGb affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::MUL_ALEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2, op1; Boolean temp_flag; Bit16u sum; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); sum = op1 * op2; temp_flag = (sum>0x00ff); RW_AX = sum; // MUL_ALEEb affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::MUL_AXEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2, op1; Boolean temp_flag; Bit32u sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); sum = op1 * op2; temp_flag = (sum>0x0000ffff); RW_AX = (Bit16u)sum; RW_DX = (Bit16u)(sum>>16); // MUL_AXEGw affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::MUL_AXEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2, op1; Boolean temp_flag; Bit32u sum; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); sum = op1 * op2; temp_flag = (sum>0x0000ffff); RW_AX = (Bit16u)sum; RW_DX = (Bit16u)(sum>>16); // MUL_AXEEw affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::MUL_EAXEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2, op1; Boolean temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); MultiplyBit64(&result,op1,op2); temp_flag = (result.h32>0); RW_EAX = result.l32; RW_EDX = result.h32; // MUL_EAXEGd affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::MUL_EAXEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2, op1; Boolean temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); MultiplyBit64(&result,op1,op2); temp_flag = (result.h32>0); RW_EAX = result.l32; RW_EDX = result.h32; // MUL_EAXEEd affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_ALEGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2, op1; Boolean s2,s1,temp_flag; Bit16u sum; op1 = READ_VIRTUAL_8BIT_REG(0); op2 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); s1 = op1>>(8-1); s2 = op2>>(8-1); if (s1) { op1 = 0-op1; } if (s2) { op2 = 0-op2; } sum = op1 * op2; temp_flag = (sum>0x007f); if (s1!=s2) { sum = 0- sum; } RW_AX = sum; // IMUL_ALEGb affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_ALEEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op2, op1; Boolean s2,s1,temp_flag; Bit16u sum; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op2); s1 = op1>>(8-1); s2 = op2>>(8-1); if (s1) { op1 = 0-op1; } if (s2) { op2 = 0-op2; } sum = op1 * op2; temp_flag = (sum>0x007f); if (s1!=s2) { sum = 0- sum; } RW_AX = sum; // IMUL_ALEEb affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_AXEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2, op1; Boolean s2,s1,temp_flag; Bit32u sum; op1 = READ_VIRTUAL_16BIT_REG(0); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); s1 = op1>>(16-1); s2 = op2>>(16-1); if (s1) { op1 = 0-op1; } if (s2) { op2 = 0-op2; } sum = op1 * op2; temp_flag = (sum>0x00007fff); if (s1!=s2) { sum = 0- sum; } RW_AX = (Bit16u)sum; RW_DX = (Bit16u)(sum>>16); // IMUL_AXEGw affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_AXEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2, op1; Boolean s2,s1,temp_flag; Bit32u sum; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); s1 = op1>>(16-1); s2 = op2>>(16-1); if (s1) { op1 = 0-op1; } if (s2) { op2 = 0-op2; } sum = op1 * op2; temp_flag = (sum>0x00007fff); if (s1!=s2) { sum = 0- sum; } RW_AX = (Bit16u)sum; RW_DX = (Bit16u)(sum>>16); // IMUL_AXEEw affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_EAXEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2, op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_32BIT_REG(0); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); s1 = op1>>(32-1); s2 = op2>>(32-1); if (s1) { op1 = 0-op1; } if (s2) { op2 = 0-op2; } MultiplyBit64(&result,op1,op2); temp_flag = (result.h32>0||result.l32>0x7fffffff); if (s1!=s2) { result.l32 = 0 - result.l32; if (!result.l32) { result.h32 = 0 - result.h32 -0; } else { result.h32 = 0 - result.h32 -1; } } RW_EAX = result.l32; RW_EDX = result.h32; // IMUL_EAXEGd affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_EAXEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2, op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); s1 = op1>>(32-1); s2 = op2>>(32-1); if (s1) { op1 = 0-op1; } if (s2) { op2 = 0-op2; } MultiplyBit64(&result,op1,op2); temp_flag = (result.h32>0||result.l32>0x7fffffff); if (s1!=s2) { result.l32 = 0 - result.l32; if (!result.l32) { result.h32 = 0 - result.h32 -0; } else { result.h32 = 0 - result.h32 -1; } } RW_EAX = result.l32; RW_EDX = result.h32; // IMUL_EAXEEd affects the following flags: C,O SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GwEGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); s1 = (op1>>(16-1)); s2 = (op2>>(16-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.l32>0x00007fff); if (s1!=s2) { result.l32 = 0 - result.l32; } WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), ((Bit16u)result.l32)); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GwEEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); s1 = (op1>>(16-1)); s2 = (op2>>(16-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.l32>0x00007fff); if (s1!=s2) { result.l32 = 0 - result.l32; } WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), ((Bit16u)result.l32)); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GdEGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); s1 = (op1>>(32-1)); s2 = (op2>>(32-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.h32 >0 || result.l32 >0x7fffffff); if (s1!=s2) { result.l32 = 0 - result.l32; if (!result.l32) { result.h32 = 0 - result.h32 -0; } else { result.h32 = 0 - result.h32 -1; } } WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),result.l32); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GdEEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); s1 = (op1>>(32-1)); s2 = (op2>>(32-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.h32 >0 || result.l32 >0x7fffffff); if (s1!=s2) { result.l32 = 0 - result.l32; if (!result.l32) { result.h32 = 0 - result.h32 -0; } else { result.h32 = 0 - result.h32 -1; } } WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),result.l32); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GwEGwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = IMMEDIATEIw(i); op2 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); s1 = (op1>>(16-1)); s2 = (op2>>(16-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.l32>0x00007fff); if (s1!=s2) { result.l32 = 0 - result.l32; } WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), ((Bit16u)result.l32)); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GwEEwIw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = IMMEDIATEIw(i); READ_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op2); s1 = (op1>>(16-1)); s2 = (op2>>(16-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.l32>0x00007fff); if (s1!=s2) { result.l32 = 0 - result.l32; } WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), ((Bit16u)result.l32)); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GdEGdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = IMMEDIATEId(i); op2 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); s1 = (op1>>(32-1)); s2 = (op2>>(32-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.h32 >0 || result.l32 >0x7fffffff); if (s1!=s2) { result.l32 = 0 - result.l32; if (!result.l32) { result.h32 = 0 - result.h32 -0; } else { result.h32 = 0 - result.h32 -1; } } WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),result.l32); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } void BX_CPU_C::IMUL_GdEEdId(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op2,op1; Boolean s2,s1,temp_flag; X86_CPU_INT64 result; op1 = IMMEDIATEId(i); READ_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op2); s1 = (op1>>(32-1)); s2 = (op2>>(32-1)); if (s1) { op1 = 0 - op1; } if (s2) { op2 = 0 - op2; } MultiplyBit64(&result,op1,op2); // Imul r,r/m;Imul r,r/m,immed :affects the following flags CF & OF: // result exactly fits within r temp_flag = (result.h32 >0 || result.l32 >0x7fffffff); if (s1!=s2) { result.l32 = 0 - result.l32; if (!result.l32) { result.h32 = 0 - result.h32 -0; } else { result.h32 = 0 - result.h32 -1; } } WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i),result.l32); SET_FLAGS_OxxxxC(temp_flag, temp_flag); } ================================================ FILE: Project/IntelCPU/Source/mult_pro.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: mult32.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //----------------------------------------------------- #if (HOST_CPU_IS_I80386==0) void MultiplyBit64(X86_CPU_INT64 *result,Bit32u src,Bit32u dst) { Bit32u temp0_l,temp0_h; Bit32u temp1_l,temp1_h; Bit32u temp2_l,temp2_h; temp1_l = src; temp2_l = dst; temp0_l=temp0_h=temp1_h=temp2_h=0; while(temp2_l!=0) { if (temp2_l&0x1) { if ((Bit32u)(temp0_l+temp1_l)>0x1f); temp1_l =(temp1_l<<1); temp2_l =(temp2_l>>1); } result->l32 = temp0_l; result->h32 = temp0_h; } void DivideBit64(X86_CPU_INT64 *source,Bit32u dst,X86_CPU_INT64 *result) { int i; Bit32u temp0_l,temp0_h; Bit32u temp1_l,temp1_h; Bit32u temp2_l,temp2_h; temp0_l = source->l32; temp0_h = source->h32; temp1_l = dst; temp1_h=temp1_l; temp1_l=temp2_l=temp2_h=0; for (i=0;temp1_h<0x80000000&&i<0x1f;i++) temp1_h=temp1_h<<1; for (i=i+0x20;i>=0;i--) { if (temp0_h>temp1_h) { if (temp0_l>=temp1_l) { temp0_l=temp0_l-temp1_l; temp0_h=temp0_h-temp1_h; } else { temp0_l=temp0_l-temp1_l; temp0_h=temp0_h-temp1_h-0x1; } temp2_l=temp2_l+0x1; } else if (temp0_h==temp1_h&&temp0_l>=temp1_l) { temp0_l=temp0_l-temp1_l; temp0_h=temp0_h-temp1_h; temp2_l=temp2_l+0x1; } if (i==0) break; temp1_l=(temp1_l>>1)+(temp1_h<<0x1f); temp1_h=temp1_h>>1; temp2_h=(temp2_h<<1)+(temp2_l>>0x1f); temp2_l=(temp2_l<<1); } source->l32 = temp0_l; source->h32 = temp0_h; result->l32 = temp2_l; result->h32 = temp2_h; } #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) void MultiplyBit64(X86_CPU_INT64 *result,Bit32u src,Bit32u dst) { __asm { mov eax,src mul dst mov ebx,result mov [ebx]X86_CPU_INT64.l32,eax mov [ebx]X86_CPU_INT64.h32,edx } } void DivideBit64(X86_CPU_INT64 *source,Bit32u dst,X86_CPU_INT64 *result) { if (source->h32>=dst) { result->l32 = (Bit32u)(-1); result->h32 = (Bit32u)(-1); return ; } else { result->l32 = 0; result->h32 = 0; } __asm { mov ebx,source mov eax,[ebx]X86_CPU_INT64.l32 mov edx,[ebx]X86_CPU_INT64.h32 div dst mov [ebx]X86_CPU_INT64.l32,edx mov ebx,result mov [ebx]X86_CPU_INT64.l32,eax } } #endif //#if (HOST_CPU_IS_I80386==1) ================================================ FILE: Project/IntelCPU/Source/paging.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: paging.cc,v 1.8 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #if 0 // - what should the reserved bits in the error code be ? // - move CR0.wp bit in lookup table to cache. Then dump // cache whenever it is changed. This eliminates the // extra calculation and shifting. // - change BX_READ and BX_WRITE to 0,1 ??? #endif #include "stdafx.h" #include "x86cpu.h" #if 0 // X86 Registers Which Affect Paging: // ================================== // // CR0: // bit 31: PG, Paging (386+) // bit 16: WP, Write Protect (486+) // 0: allow supervisor level writes into user level RO pages // 1: inhibit supervisor level writes into user level RO pages // // CR3: // bit 31..12: PDBR, Page Directory Base Register (386+) // bit 4: PCD, Page level Cache Disable (486+) // Controls caching of current page directory. Affects only the processor's // internal caches (L1 and L2). // This flag ignored if paging disabled (PG=0) or cache disabled (CD=1). // Values: // 0: Page Directory can be cached // 1: Page Directory not cached // bit 3: PWT, Page level Writes Transparent (486+) // Controls write-through or write-back caching policy of current page // directory. Affects only the processor's internal caches (L1 and L2). // This flag ignored if paging disabled (PG=0) or cache disabled (CD=1). // Values: // 0: write-back caching enabled // 1: write-through caching enabled // // CR4: // bit 4: PSE, Page Size Extension (Pentium+) // 0: 4KByte pages (typical) // 1: 4MByte or 2MByte pages // bit 5: PAE, Physical Address Extension (Pentium Pro+) // 0: 32bit physical addresses // 1: 36bit physical addresses // bit 7: PGE, Page Global Enable (Pentium Pro+) // The global page feature allows frequently used or shared pages // to be marked as global (PDE or PTE bit 8). Global pages are // not flushed from TLB on a task switch or write to CR3. // Values: // 0: disables global page feature // 1: enables global page feature // // Page size extention and physical address size extention matrix // ==================================================================== // CR0.PG CR4.PAE CR4.PSE PDE.PS | page size physical address size // ==================================================================== // 0 X X X | - paging disabled // 1 0 0 X | 4K 32bits // 1 0 1 0 | 4K 32bits // 1 0 1 1 | 4M 32bits // 1 1 X 0 | 4K 36bits // 1 1 X 1 | 2M 36bits // Page Directory/Table Entry format when P=0: // =========================================== // // 31.. 1: available // 0: P=0 // Page Directory Entry format when P=1 (4-Kbyte Page Table): // ========================================================== // // 31..12: page table base address // 11.. 9: available // 8: G (Pentium Pro+), 0=reserved otherwise // 7: PS (Pentium+), 0=reserved otherwise // 6: 0=reserved // 5: A (386+) // 4: PCD (486+), 0=reserved otherwise // 3: PWT (486+), 0=reserved otherwise // 2: U/S (386+) // 1: R/W (386+) // 0: P=1 (386+) // Page Table Entry format when P=1 (4-Kbyte Page): // ================================================ // // 31..12: page base address // 11.. 9: available // 8: G (Pentium Pro+), 0=reserved otherwise // 7: 0=reserved // 6: D (386+) // 5: A (386+) // 4: PCD (486+), 0=reserved otherwise // 3: PWT (486+), 0=reserved otherwise // 2: U/S (386+) // 1: R/W (386+) // 0: P=1 (386+) // Page Directory/Table Entry Fields Defined: // ========================================== // G: Global flag // Indiciates a global page when set. When a page is marked // global and the PGE flag in CR4 is set, the page table or // directory entry for the page is not invalidated in the TLB // when CR3 is loaded or a task switch occurs. Only software // clears and sets this flag. For page directory entries that // point to page tables, this flag is ignored and the global // characteristics of a page are set in the page table entries. // // PS: Page Size flag // Only used in page directory entries. When PS=0, the page // size is 4KBytes and the page directory entry points to a // page table. When PS=1, the page size is 4MBytes for // normal 32-bit addressing and 2MBytes if extended physical // addressing // // D: Dirty bit: // Processor sets the Dirty bit in the 2nd-level page table before a // write operation to an address mapped by that page table entry. // Dirty bit in directory entries is undefined. // // A: Accessed bit: // Processor sets the Accessed bits in both levels of page tables before // a read/write operation to a page. // // PCD: Page level Cache Disable // Controls caching of individual pages or page tables. // This allows a per-page based mechanism to disable caching, for // those pages which contained memory mapped IO, or otherwise // should not be cached. Processor ignores this flag if paging // is not used (CR0.PG=0) or the cache disable bit is set (CR0.CD=1). // Values: // 0: page or page table can be cached // 1: page or page table is not cached (prevented) // // PWT: Page level Write Through // Controls the write-through or write-back caching policy of individual // pages or page tables. Processor ignores this flag if paging // is not used (CR0.PG=0) or the cache disable bit is set (CR0.CD=1). // Values: // 0: write-back caching // 1: write-through caching // // U/S: User/Supervisor level // 0: Supervisor level - for the OS, drivers, etc. // 1: User level - application code and data // // R/W: Read/Write access // 0: read-only access // 1: read/write access // // P: Present // 0: Not present // 1: Present // ========================================== // Combined page directory/page table protection: // ============================================== // There is one column for the combined effect on a 386 // and one column for the combined effect on a 486+ CPU. // // +----------------+-----------------+----------------+----------------+ // | Page Directory| Page Table | Combined 386 | Combined 486+ | // |Privilege Type | Privilege Type | Privilege Type| Privilege Type| // |----------------+-----------------+----------------+----------------| // |User R | User R | User R | User R | // |User R | User RW | User R | User R | // |User RW | User R | User R | User R | // |User RW | User RW | User RW | User RW | // |User R | Supervisor R | User R | Supervisor RW | // |User R | Supervisor RW | User R | Supervisor RW | // |User RW | Supervisor R | User R | Supervisor RW | // |User RW | Supervisor RW | User RW | Supervisor RW | // |Supervisor R | User R | User R | Supervisor RW | // |Supervisor R | User RW | User R | Supervisor RW | // |Supervisor RW | User R | User R | Supervisor RW | // |Supervisor RW | User RW | User RW | Supervisor RW | // |Supervisor R | Supervisor R | Supervisor RW | Supervisor RW | // |Supervisor R | Supervisor RW | Supervisor RW | Supervisor RW | // |Supervisor RW | Supervisor R | Supervisor RW | Supervisor RW | // |Supervisor RW | Supervisor RW | Supervisor RW | Supervisor RW | // +----------------+-----------------+----------------+----------------+ // Page Fault Error Code Format: // ============================= // // bits 31..4: Reserved // bit 3: RSVD (Pentium Pro+) // 0: fault caused by reserved bits set to 1 in a page directory // when the PSE or PAE flags in CR4 are set to 1 // 1: fault was not caused by reserved bit violation // bit 2: U/S (386+) // 0: fault originated when in supervior mode // 1: fault originated when in user mode // bit 1: R/W (386+) // 0: access causing the fault was a read // 1: access causing the fault was a write // bit 0: P (386+) // 0: fault caused by a nonpresent page // 1: fault caused by a page level protection violation // Some paging related notes: // ========================== // // - When the processor is running in supervisor level, all pages are both // readable and writable (write-protect ignored). When running at user // level, only pages which belong to the user level are accessible; // read/write & read-only are readable, read/write are writable. // // - If the Present bit is 0 in either level of page table, an // access which uses these entries will generate a page fault. // // - (A)ccess bit is used to report read or write access to a page // or 2nd level page table. // // - (D)irty bit is used to report write access to a page. // // - Processor running at CPL=0,1,2 maps to U/S=0 // Processor running at CPL=3 maps to U/S=1 // // - Pentium+ processors have separate TLB's for data and instruction caches // - Pentium Pro+ processors maintain separate 4K and 4M TLBs. #endif #if BX_SUPPORT_PAGING #define BX_INVALID_TLB_ENTRY 0xffffffff #if BX_CPU_LEVEL >= 4 # define BX_PRIV_CHECK_SIZE 32 #else # define BX_PRIV_CHECK_SIZE 16 #endif // The 'priv_check' array is used to decide if the current access // has the proper paging permissions. An index is formed, based // on parameters such as the access type and level, the write protect // flag and values cached in the TLB. The format of the index into this // array is: // // |4 |3 |2 |1 |0 | // |wp|us|us|rw|rw| // | | | | | // | | | | +---> r/w of current access // | | +--+------> u/s,r/w combined of page dir & table (cached) // | +------------> u/s of current access // +---------------> Current CR0.wp value // // The TLB cache holds the following info, from which the above // fields can efficiently be extracted to facilitate a privilege check: // // |4 |3 |2 |1 |0 | // | | |us|rw|D | // | | | // | | +---> Dirty bit from PTE (not used for privilege check) // +--+------> u/s,r/w combined of page dir & table // // // The rest of the fields are taken from current access parameters // and the write-protect field: // // |4 |3 |2 |1 |0 | // |wp|us| | |rw| // | | | // | | +---> r/w of current access // | | // | +------------> u/s of current access // +---------------> Current CR0.wp value static unsigned priv_check[BX_PRIV_CHECK_SIZE]; void BX_CPU_C::enable_paging(void) { TLB_flush(); if (bx_dbg.paging) BX_INFO(("enable_paging():")); //BX_DEBUG(( "enable_paging():-------------------------" )); } void BX_CPU_C::disable_paging(void) { TLB_flush(); if (bx_dbg.paging) BX_INFO(("disable_paging():")); } void BX_CPU_C::CR3_change(Bit32u value32) { if (bx_dbg.paging) { BX_INFO(("CR3_change(): flush TLB cache")); BX_INFO(("Page Directory Base %08x", (unsigned) value32)); } // flush TLB even if value does not change TLB_flush(); BX_CPU_THIS_PTR cr3 = value32; } void BX_CPU_C::TLB_init(void) { // Called to initialize the TLB upon startup. // Unconditional initialization of all TLB entries. #if BX_USE_TLB unsigned i; unsigned wp, us_combined, rw_combined, us_current, rw_current; for (i=0; i> 4; us_current = (i & 0x08) >> 3; us_combined = (i & 0x04) >> 2; rw_combined = (i & 0x02) >> 1; rw_current = (i & 0x01) >> 0; if (wp) { // when write protect on if (us_current > us_combined) // user access, supervisor page priv_check[i] = 0; else if (rw_current > rw_combined) // RW access, RO page priv_check[i] = 0; else priv_check[i] = 1; } else { // when write protect off if (us_current == 0) // Supervisor mode access, anything goes priv_check[i] = 1; else { // user mode access if (us_combined == 0) // user access, supervisor Page priv_check[i] = 0; else if (rw_current > rw_combined) // RW access, RO page priv_check[i] = 0; else priv_check[i] = 1; } } } #endif // #if BX_USE_TLB } void BX_CPU_C::TLB_flush(void) { #if BX_USE_TLB for (unsigned i=0; i= 4 invalidate_prefetch_q(); // Operand must not be a register if (i->modC0()) { BX_INFO(("INVLPG: op is a register")); UndefinedOpcode(icpu,i); } // Can not be executed in v8086 mode if (v8086_mode()) exception(BX_GP_EXCEPTION, 0, 0); // Protected instruction: CPL0 only if (BX_CPU_THIS_PTR cr0.pe) { if (CPL!=0) { BX_INFO(("INVLPG: CPL!=0")); exception(BX_GP_EXCEPTION, 0, 0); } } #if BX_USE_TLB // Just clear the entire TLB, ugh! TLB_clear(); #endif // BX_USE_TLB BX_INSTR_TLB_CNTRL(BX_INSTR_INVLPG, 0); #else // not supported on < 486 UndefinedOpcode(icpu,i); #endif } // Translate a linear address to a physical address, for // a data access (D) Bit32u BX_CPU_C::dtranslate_linear(Bit32u laddress, unsigned pl, unsigned rw) { Bit32u lpf, ppf, poffset, TLB_index, error_code, paddress; Bit32u pde, pde_addr; Bit32u pte, pte_addr; unsigned priv_index; Boolean is_rw; Bit32u combined_access, new_combined_access; lpf = laddress & 0xfffff000; // linear page frame poffset = laddress & 0x00000fff; // physical offset TLB_index = BX_TLB_INDEX_OF(lpf); is_rw = (rw>=BX_WRITE); // write or r-m-w if (BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf == lpf) { paddress = BX_CPU_THIS_PTR TLB.entry[TLB_index].ppf | poffset; combined_access = BX_CPU_THIS_PTR TLB.entry[TLB_index].combined_access; priv_check: priv_index = #if BX_CPU_LEVEL >= 4 (BX_CPU_THIS_PTR cr0.wp<<4) | // bit 4 #endif (pl<<3) | // bit 3 (combined_access & 0x06) | // bit 2,1 is_rw; // bit 0 if (priv_check[priv_index]) { // Operation has proper privilege. // See if A/D bits need updating. //BW !! a read access does not do any updates, patched load new_combined_access = combined_access | is_rw; if (new_combined_access == combined_access) { // A/D bits already up-to-date return(paddress); } // A/D bits need updating first BX_CPU_THIS_PTR TLB.entry[TLB_index].combined_access = new_combined_access; pte_addr = BX_CPU_THIS_PTR TLB.entry[TLB_index].pte_addr; BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pte_addr, 4, &pte); // get old PTE pte |= 0x20 | (is_rw << 6); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, pte_addr, 4, &pte); // write updated PTE return(paddress); } // Protection violation error_code = 0xfffffff9; // RSVD=1, P=1 goto page_fault_check; } // Get page dir entry pde_addr = (BX_CPU_THIS_PTR cr3 & 0xfffff000) | ((laddress & 0xffc00000) >> 20); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pde_addr, 4, &pde); if ( !(pde & 0x01) ) { // Page Directory Entry NOT present error_code = 0xfffffff8; // RSVD=1, P=0 goto page_fault_not_present; } // Get page table entry pte_addr = (pde & 0xfffff000) | ((laddress & 0x003ff000) >> 10); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pte_addr, 4, &pte); // update PDE if A bit was not set before if ( !(pde & 0x20) ) { pde |= 0x20; BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, pde_addr, 4, &pde); } if ( !(pte & 0x01) ) { // Page Table Entry NOT present error_code = 0xfffffff8; // RSVD=1, P=0 goto page_fault_not_present; } //BW added: update PTE if A bit was not set before if ( !(pte & 0x20) ) { pte |= 0x20; BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, pte_addr, 4, &pte); } // 386 and 486+ have different bahaviour for combining // privilege from PDE and PTE. #if BX_CPU_LEVEL == 3 combined_access = (pde | pte) & 0x04; // U/S combined_access |= (pde & pte) & 0x02; // R/W #else // 486+ combined_access = (pde & pte) & 0x06; // U/S and R/W #endif ppf = pte & 0xfffff000; paddress = ppf | poffset; BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf = lpf; BX_CPU_THIS_PTR TLB.entry[TLB_index].ppf = ppf; BX_CPU_THIS_PTR TLB.entry[TLB_index].pte_addr = pte_addr; BX_CPU_THIS_PTR TLB.entry[TLB_index].combined_access = combined_access; goto priv_check; page_fault_check: // (mch) Define RMW_WRITES for old behavior #if !defined(RMW_WRITES) /* (mch) Ok, so we know it's a page fault. It the access is a read-modify-write access we check if the read faults, if it does then we (optionally) do not set the write bit */ if (rw == BX_RW) { priv_index = #if BX_CPU_LEVEL >= 4 (BX_CPU_THIS_PTR cr0.wp<<4) | // bit 4 #endif (pl<<3) | // bit 3 (combined_access & 0x06) | // bit 2,1 0; // bit 0 (read) if (!priv_check[priv_index]) { // Fault on read is_rw = 0; } } #endif /* RMW_WRITES */ goto page_fault_proper; page_fault_not_present: #if !defined(RMW_WRITES) if (rw == BX_RW) is_rw = 0; #endif /* RMW_WRITES */ goto page_fault_proper; page_fault_proper: error_code |= (pl << 2) | (is_rw << 1); BX_CPU_THIS_PTR cr2 = laddress; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf = BX_INVALID_TLB_ENTRY; exception(BX_PF_EXCEPTION, error_code, 0); return(0); // keep compiler happy } // Translate a linear address to a physical address, for // an instruction fetch access (I) Bit32u BX_CPU_C::itranslate_linear(Bit32u laddress, unsigned pl) { Bit32u lpf, ppf, poffset, TLB_index, error_code, paddress; Bit32u pde, pde_addr; Bit32u pte, pte_addr; unsigned priv_index; Bit32u combined_access; lpf = laddress & 0xfffff000; // linear page frame poffset = laddress & 0x00000fff; // physical offset TLB_index = BX_TLB_INDEX_OF(lpf); if (BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf == lpf) { paddress = BX_CPU_THIS_PTR TLB.entry[TLB_index].ppf | poffset; combined_access = BX_CPU_THIS_PTR TLB.entry[TLB_index].combined_access; priv_check: priv_index = #if BX_CPU_LEVEL >= 4 (BX_CPU_THIS_PTR cr0.wp<<4) | // bit 4 #endif (pl<<3) | // bit 3 (combined_access & 0x06); // bit 2,1 // bit 0 == 0 if (priv_check[priv_index]) { // Operation has proper privilege. return(paddress); } // Protection violation error_code = 0xfffffff9; // RSVD=1, P=1 goto page_fault; } // Get page dir entry pde_addr = (BX_CPU_THIS_PTR cr3 & 0xfffff000) | ((laddress & 0xffc00000) >> 20); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pde_addr, 4, &pde); if ( !(pde & 0x01) ) { // Page Directory Entry NOT present error_code = 0xfffffff8; // RSVD=1, P=0 goto page_fault; } // Get page table entry pte_addr = (pde & 0xfffff000) | ((laddress & 0x003ff000) >> 10); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pte_addr, 4, &pte); // update PDE if A bit was not set before if ( !(pde & 0x20) ) { pde |= 0x20; BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, pde_addr, 4, &pde); } if ( !(pte & 0x01) ) { // Page Table Entry NOT present error_code = 0xfffffff8; // RSVD=1, P=0 goto page_fault; } //BW added: update PTE if A bit was not set before if ( !(pte & 0x20) ) { pte |= 0x20; BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, pte_addr, 4, &pte); } // 386 and 486+ have different bahaviour for combining // privilege from PDE and PTE. #if BX_CPU_LEVEL == 3 combined_access = (pde | pte) & 0x04; // U/S combined_access |= (pde & pte) & 0x02; // R/W #else // 486+ combined_access = (pde & pte) & 0x06; // U/S and R/W #endif ppf = pte & 0xfffff000; paddress = ppf | poffset; BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf = lpf; BX_CPU_THIS_PTR TLB.entry[TLB_index].ppf = ppf; BX_CPU_THIS_PTR TLB.entry[TLB_index].pte_addr = pte_addr; BX_CPU_THIS_PTR TLB.entry[TLB_index].combined_access = combined_access; goto priv_check; page_fault: error_code |= (pl << 2); BX_CPU_THIS_PTR cr2 = laddress; // invalidate entry - we can get away without maintaining A bit in PTE // if we don't maintain TLB entries without it set. BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf = BX_INVALID_TLB_ENTRY; exception(BX_PF_EXCEPTION, error_code, 0); return(0); // keep compiler happy } #if BX_DEBUGGER || BX_DISASM || BX_INSTRUMENTATION void BX_CPU_C::dbg_xlate_linear2phy(Bit32u laddress, Bit32u *phy, Boolean *valid) { Bit32u lpf, ppf, poffset, TLB_index, paddress; Bit32u pde, pde_addr; Bit32u pte, pte_addr; if (BX_CPU_THIS_PTR cr0.pg == 0) { *phy = laddress; *valid = 1; return; } lpf = laddress & 0xfffff000; // linear page frame poffset = laddress & 0x00000fff; // physical offset TLB_index = BX_TLB_INDEX_OF(lpf); // see if page is in the TLB first if (BX_CPU_THIS_PTR TLB.entry[TLB_index].lpf == lpf) { paddress = BX_CPU_THIS_PTR TLB.entry[TLB_index].ppf | poffset; *phy = paddress; *valid = 1; return; } // Get page dir entry pde_addr = (BX_CPU_THIS_PTR cr3 & 0xfffff000) | ((laddress & 0xffc00000) >> 20); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pde_addr, 4, &pde); if ( !(pde & 0x01) ) { // Page Directory Entry NOT present goto page_fault; } // Get page table entry pte_addr = (pde & 0xfffff000) | ((laddress & 0x003ff000) >> 10); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, pte_addr, 4, &pte); if ( !(pte & 0x01) ) { // Page Table Entry NOT present goto page_fault; } ppf = pte & 0xfffff000; paddress = ppf | poffset; *phy = paddress; *valid = 1; return; page_fault: *phy = 0; *valid = 0; return; } #endif void BX_CPU_C::access_linear(Bit32u laddress, unsigned length, unsigned pl, unsigned rw, void *data) { Bit32u mod4096; unsigned xlate_rw; #if BX_X86_DEBUGGER if ( BX_CPU_THIS_PTR dr7 & 0x000000ff ) { // Only compare debug registers if any breakpoints are enabled Bit32u dr6_bits; unsigned opa, opb; opa = BX_HWDebugMemRW; // Read or Write always compares vs 11b if (rw==BX_READ) // only compares vs 11b opb = opa; else // BX_WRITE or BX_RW; also compare vs 01b opb = BX_HWDebugMemW; dr6_bits = hwdebug_compare(laddress, length, opa, opb); if (dr6_bits) { BX_CPU_THIS_PTR debug_trap |= dr6_bits; BX_CPU_THIS_PTR async_event = 1; } } #endif if (rw==BX_RW) { xlate_rw = BX_RW; rw = BX_READ; } else { xlate_rw = rw; } // perhaps put this check before all code which calls this function, // so we don't have to here if (BX_CPU_THIS_PTR cr0.pg) { /* check for reference across multiple pages */ mod4096 = laddress & 0x00000fff; if ( (mod4096 + length) <= 4096 ) { // Bit32u paddress1; /* access within single page */ BX_CPU_THIS_PTR address_xlation.paddress1 = dtranslate_linear(laddress, pl, xlate_rw); BX_CPU_THIS_PTR address_xlation.pages = 1; if (rw == BX_READ) { BX_INSTR_LIN_READ(laddress, BX_CPU_THIS_PTR address_xlation.paddress1, length); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, length, data); } else { BX_INSTR_LIN_WRITE(laddress, BX_CPU_THIS_PTR address_xlation.paddress1, length); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, length, data); } return; } else { // access across 2 pages BX_CPU_THIS_PTR address_xlation.paddress1 = dtranslate_linear(laddress, pl, xlate_rw); BX_CPU_THIS_PTR address_xlation.len1 = 4096 - mod4096; BX_CPU_THIS_PTR address_xlation.len2 = length - BX_CPU_THIS_PTR address_xlation.len1; BX_CPU_THIS_PTR address_xlation.pages = 2; BX_CPU_THIS_PTR address_xlation.paddress2 = dtranslate_linear(laddress + BX_CPU_THIS_PTR address_xlation.len1, pl, xlate_rw); #ifdef BX_LITTLE_ENDIAN if (rw == BX_READ) { BX_INSTR_LIN_READ(laddress, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1, data); BX_INSTR_LIN_READ(laddress + BX_CPU_THIS_PTR address_xlation.len1, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2, ((Bit8u*)data) + BX_CPU_THIS_PTR address_xlation.len1); } else { BX_INSTR_LIN_WRITE(laddress, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1, data); BX_INSTR_LIN_WRITE(laddress + BX_CPU_THIS_PTR address_xlation.len1, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2, ((Bit8u*)data) + BX_CPU_THIS_PTR address_xlation.len1); } #else // BX_BIG_ENDIAN if (rw == BX_READ) { BX_INSTR_LIN_READ(laddress, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1, ((Bit8u*)data) + (length - BX_CPU_THIS_PTR address_xlation.len1)); BX_INSTR_LIN_READ(laddress + BX_CPU_THIS_PTR address_xlation.len1, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2, data); } else { BX_INSTR_LIN_WRITE(laddress, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress1, BX_CPU_THIS_PTR address_xlation.len1, ((Bit8u*)data) + (length - BX_CPU_THIS_PTR address_xlation.len1)); BX_INSTR_LIN_WRITE(laddress + BX_CPU_THIS_PTR address_xlation.len1, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, BX_CPU_THIS_PTR address_xlation.paddress2, BX_CPU_THIS_PTR address_xlation.len2, data); } #endif return; } } else { // paging off, pass linear address thru to physical if (rw == BX_READ) { BX_INSTR_LIN_READ(laddress, laddress, length); BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, laddress, length, data); } else { BX_INSTR_LIN_WRITE(laddress, laddress, length); BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, laddress, length, data); } return; } } #else // BX_SUPPORT_PAGING // stub functions for non-support of paging void BX_CPU_C::enable_paging(void) { BX_PANIC(("enable_paging(): not implemented")); } void BX_CPU_C::disable_paging(void) { BX_PANIC(("disable_paging() called")); } void BX_CPU_C::CR3_change(Bit32u value32) { BX_INFO(("CR3_change(): flush TLB cache")); BX_INFO(("Page Directory Base %08x", (unsigned) value32)); } void BX_CPU_C::access_linear(Bit32u laddress, unsigned length, unsigned pl, unsigned rw, void *data) { /* perhaps put this check before all code which calls this function, * so we don't have to here */ if (BX_CPU_THIS_PTR cr0.pg == 0) { if (rw == BX_READ) BX_CPU_THIS_PTR mem->read_physical(BX_CPU_THIS, laddress, length, data); else BX_CPU_THIS_PTR mem->write_physical(BX_CPU_THIS, laddress, length, data); return; } BX_PANIC(("access_linear: paging not supported")); } void BX_CPU_C::INVLPG(BX_CPU_C *icpu,bxInstruction_c *i) {} #endif // BX_SUPPORT_PAGING ================================================ FILE: Project/IntelCPU/Source/proc.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: proc_ctrl.cc,v 1.18 2002/03/27 16:04:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::UndefinedOpcode(BX_CPU_C *icpu,bxInstruction_c *i) { BX_DEBUG(("UndefinedOpcode: %02x causes exception 6", (unsigned) i->b1)); //BX_PANIC(("#UD %02x %02x instruction encountered in the opertem system", // i->b1,i->modrm)); BX_CPU_CLASS_PTR exception(BX_UD_EXCEPTION, 0, 0); } void BX_CPU_C::NOP(BX_CPU_C *icpu,bxInstruction_c *i) { } void BX_CPU_C::HLT(BX_CPU_C *icpu,bxInstruction_c *i) { // hack to panic if HLT comes from BIOS if ( BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value == 0xf000 ) BX_PANIC(("HALT instruction encountered in the BIOS ROM")); if (RW_CPL!=0) { BX_INFO(("HLT(): CPL!=0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } if ( ! BX_CPU_CLASS_PTR eflags.if_ ) { BX_INFO(("WARNING: HLT instruction with IF=0!")); } // stops instruction execution and places the processor in a // HALT state. An enabled interrupt, NMI, or reset will resume // execution. If interrupt (including NMI) is used to resume // execution after HLT, the saved CS:eIP points to instruction // following HLT. // artificial trap bit, why use another variable. BX_CPU_CLASS_PTR debug_trap |= 0x80000000; // artificial trap BX_CPU_CLASS_PTR async_event = 1; // so processor knows to check // Execution of this instruction completes. The processor // will remain in a halt state until one of the above conditions // is met. #if BX_USE_IDLE_HACK bx_gui.sim_is_idle (); #endif /* BX_USE_IDLE_HACK */ } void BX_CPU_C::CLTS(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("CLTS: not implemented for < 286")); #else if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("clts: v8086 mode unsupported")); /* read errata file */ // does CLTS also clear NT flag??? // #GP(0) if CPL is not 0 if (RW_CPL!=0) { BX_INFO(("CLTS(): CPL!=0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } BX_CPU_CLASS_PTR cr0.ts = 0; BX_CPU_CLASS_PTR cr0.val32 &= ~0x08; #endif } void BX_CPU_C::INVD(BX_CPU_C *icpu,bxInstruction_c *i) { BX_INFO(("---------------")); BX_INFO(("- INVD called -")); BX_INFO(("---------------")); #if BX_CPU_LEVEL >= 4 BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR cr0.pe) { if (RW_CPL!=0) { BX_INFO(("INVD: CPL!=0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } BX_INSTR_CACHE_CNTRL(BX_INSTR_INVD); #else BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::WBINVD(BX_CPU_C *icpu,bxInstruction_c *i) { BX_INFO(("WBINVD: (ignoring)")); #if BX_CPU_LEVEL >= 4 BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR cr0.pe) { if (RW_CPL!=0) { BX_INFO(("WBINVD: CPL!=0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } BX_INSTR_CACHE_CNTRL(BX_INSTR_WBINVD); #else BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::MOV_DdRd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_DdRd: not supported on < 386")); #else Bit32u val_32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("MOV_DdRd: v8086 mode unsupported")); /* NOTES: * 32bit operands always used * r/m field specifies general register * mod field should always be 11 binary * reg field specifies which special register */ if (!i->modC0()) { BX_PANIC(("MOV_DdRd(): rm field not a register!")); } //invalidate_prefetch_q(); #if (X86CPU_MSWIN_MSDOS==0) if (BX_CPU_CLASS_PTR protected_mode() && RW_CPL!=0) { BX_PANIC(("MOV_DdRd: CPL!=0")); /* #GP(0) if CPL is not 0 */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #endif val_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); if (bx_dbg.dreg) BX_INFO(("MOV_DdRd: DR[%u]=%08xh unhandled", (unsigned) MODRMnnn(i), (unsigned) val_32)); switch (MODRMnnn(i)) { case 0: // DR0 BX_CPU_CLASS_PTR dr0 = val_32; break; case 1: // DR1 BX_CPU_CLASS_PTR dr1 = val_32; break; case 2: // DR2 BX_CPU_CLASS_PTR dr2 = val_32; break; case 3: // DR3 BX_CPU_CLASS_PTR dr3 = val_32; break; case 4: // DR4 case 6: // DR6 // DR4 aliased to DR6 by default. With Debug Extensions on, // access to DR4 causes #UD #if BX_CPU_LEVEL >= 4 if ( (MODRMnnn(i) == 4) && (BX_CPU_CLASS_PTR cr4 & 0x00000008) ) { // Debug extensions on BX_INFO(("MOV_DdRd: access to DR4 causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } #endif #if BX_CPU_LEVEL <= 4 // On 386/486 bit12 is settable BX_CPU_CLASS_PTR dr6 = (BX_CPU_CLASS_PTR dr6 & 0xffff0ff0) | (val_32 & 0x0000f00f); #else // On Pentium+, bit12 is always zero BX_CPU_CLASS_PTR dr6 = (BX_CPU_CLASS_PTR dr6 & 0xffff0ff0) | (val_32 & 0x0000e00f); #endif break; case 5: // DR5 case 7: // DR7 // Note: 486+ ignore GE and LE flags. On the 386, exact // data breakpoint matching does not occur unless it is enabled // by setting the LE and/or GE flags. // DR5 aliased to DR7 by default. With Debug Extensions on, // access to DR5 causes #UD #if BX_CPU_LEVEL >= 4 if ( (MODRMnnn(i) == 5) && (BX_CPU_CLASS_PTR cr4 & 0x00000008) ) { // Debug extensions (CR4.DE) on BX_INFO(("MOV_DdRd: access to DR5 causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } #endif // Some sanity checks... if ( val_32 & 0x00002000 ) { BX_PANIC(("MOV_DdRd: GD bit not supported yet")); // Note: processor clears GD upon entering debug exception // handler, to allow access to the debug registers } if ( (((val_32>>16) & 3)==2) || (((val_32>>20) & 3)==2) || (((val_32>>24) & 3)==2) || (((val_32>>28) & 3)==2) ) { // IO breakpoints (10b) are not yet supported. BX_PANIC(("MOV_DdRd: write of %08x contains IO breakpoint", val_32)); } if ( (((val_32>>18) & 3)==2) || (((val_32>>22) & 3)==2) || (((val_32>>26) & 3)==2) || (((val_32>>30) & 3)==2) ) { // LEN0..3 contains undefined length specifier (10b) BX_PANIC(("MOV_DdRd: write of %08x contains undefined LENx", val_32)); } if ( ((((val_32>>16) & 3)==0) && (((val_32>>18) & 3)!=0)) || ((((val_32>>20) & 3)==0) && (((val_32>>22) & 3)!=0)) || ((((val_32>>24) & 3)==0) && (((val_32>>26) & 3)!=0)) || ((((val_32>>28) & 3)==0) && (((val_32>>30) & 3)!=0)) ) { // Instruction breakpoint with LENx not 00b (1-byte length) BX_PANIC(("MOV_DdRd: write of %08x, R/W=00b LEN!=00b", val_32)); } #if BX_CPU_LEVEL <= 4 // 386/486: you can play with all the bits except b10 is always 1 BX_CPU_CLASS_PTR dr7 = val_32 | 0x00000400; #else // Pentium+: bits15,14,12 are hardwired to 0, rest are settable. // Even bits 11,10 are changeable though reserved. BX_CPU_CLASS_PTR dr7 = (val_32 & 0xffff2fff) | 0x00000400; #endif break; default: BX_PANIC(("MOV_DdRd: control register index out of range")); break; } #endif } void BX_CPU_C::MOV_RdDd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_RdDd: not supported on < 386")); #else Bit32u val_32; if (BX_CPU_CLASS_PTR v8086_mode()) { BX_INFO(("MOV_RdDd: v8086 mode causes #GP")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } if (!i->modC0()) { BX_PANIC(("MOV_RdDd(): rm field not a register!")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } #if (X86CPU_MSWIN_MSDOS==0) if (BX_CPU_CLASS_PTR protected_mode() && (RW_CPL!=0)) { BX_INFO(("MOV_RdDd: CPL!=0 causes #GP")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } #endif if (bx_dbg.dreg) BX_INFO(("MOV_RdDd: DR%u not implemented yet", MODRMnnn(i))); switch (MODRMnnn(i)) { case 0: // DR0 val_32 = BX_CPU_CLASS_PTR dr0; break; case 1: // DR1 val_32 = BX_CPU_CLASS_PTR dr1; break; case 2: // DR2 val_32 = BX_CPU_CLASS_PTR dr2; break; case 3: // DR3 val_32 = BX_CPU_CLASS_PTR dr3; break; case 4: // DR4 case 6: // DR6 // DR4 aliased to DR6 by default. With Debug Extensions on, // access to DR4 causes #UD #if BX_CPU_LEVEL >= 4 if ( (MODRMnnn(i) == 4) && (BX_CPU_CLASS_PTR cr4 & 0x00000008) ) { // Debug extensions on BX_INFO(("MOV_RdDd: access to DR4 causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } #endif val_32 = BX_CPU_CLASS_PTR dr6; break; case 5: // DR5 case 7: // DR7 // DR5 aliased to DR7 by default. With Debug Extensions on, // access to DR5 causes #UD #if BX_CPU_LEVEL >= 4 if ( (MODRMnnn(i) == 5) && (BX_CPU_CLASS_PTR cr4 & 0x00000008) ) { // Debug extensions on BX_INFO(("MOV_RdDd: access to DR5 causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } #endif val_32 = BX_CPU_CLASS_PTR dr7; break; default: BX_PANIC(("MOV_RdDd: control register index out of range")); val_32 = 0; } WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), val_32); #endif } void BX_CPU_C::LMSW_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("LMSW_Ew(): not supported on 8086!")); #else Bit16u msw; Bit32u cr0; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("proc_ctrl: v8086 mode unsupported")); if ( BX_CPU_CLASS_PTR protected_mode()&& ( RW_CPL != 0 )) { BX_INFO(("LMSW: CPL != 0, CPL=%u", (unsigned) RW_CPL)); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } if (i->modC0()) { msw = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &msw); } // LMSW does not affect PG,CD,NW,AM,WP,NE,ET bits, and cannot clear PE // LMSW cannot clear PE if ( ((msw & 0x0001)==0) && BX_CPU_CLASS_PTR cr0.pe ) { msw |= 0x0001; // adjust PE bit to current value of 1 } msw &= 0x000f; // LMSW only affects last 4 flags cr0 = (BX_CPU_CLASS_PTR cr0.val32 & 0xfffffff0) | msw; BX_CPU_CLASS_PTR SetCR0(cr0); #endif /* BX_CPU_LEVEL < 2 */ } void BX_CPU_C::SMSW_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("SMSW_Ew: not supported yet!")); #else Bit16u msw; #if BX_CPU_LEVEL == 2 msw = 0xfff0; /* 80286 init value */ msw |= (BX_CPU_CLASS_PTR cr0.ts << 3) | (BX_CPU_CLASS_PTR cr0.em << 2) | (BX_CPU_CLASS_PTR cr0.mp << 1) | BX_CPU_CLASS_PTR cr0.pe; #else /* 386+ */ /* reserved bits 0 ??? */ /* should NE bit be included here ??? */ // should ET bit be included here (AW) msw = (BX_CPU_CLASS_PTR cr0.ts << 3) | (BX_CPU_CLASS_PTR cr0.em << 2) | (BX_CPU_CLASS_PTR cr0.mp << 1) | BX_CPU_CLASS_PTR cr0.pe; #endif if (i->modC0()) { if (i->size_mode.os_32) { WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), msw); // zeros out high 16bits } else { WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), msw); } } else { BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &msw); } #endif } void BX_CPU_C::MOV_CdRd(BX_CPU_C *icpu,bxInstruction_c *i) { // mov general register data to control register #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_CdRd: not supported on < 386")); #else Bit32u val_32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("proc_ctrl: v8086 mode unsupported")); /* NOTES: * 32bit operands always used * r/m field specifies general register * mod field should always be 11 binary * reg field specifies which special register */ if (!i->modC0()) { BX_PANIC(("MOV_CdRd(): rm field not a register!")); } //invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode() && RW_CPL!=0) { BX_PANIC(("MOV_CdRd: CPL!=0")); /* #GP(0) if CPL is not 0 */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } val_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); switch (MODRMnnn(i)) { case 0: // CR0 (MSW) // BX_INFO(("MOV_CdRd:CR0: R32 = %08x\n @CS:EIP %04x:%04x ", // (unsigned) val_32, // (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, // (unsigned) BX_CPU_CLASS_PTR eip)); BX_CPU_CLASS_PTR SetCR0(val_32); break; case 1: /* CR1 */ BX_PANIC(("MOV_CdRd: CR1 not implemented yet")); break; case 2: /* CR2 */ BX_DEBUG(("MOV_CdRd: CR2 not implemented yet")); BX_DEBUG(("MOV_CdRd: CR2 = reg")); BX_CPU_CLASS_PTR cr2 = val_32; break; case 3: // CR3 if (bx_dbg.creg) BX_INFO(("MOV_CdRd:CR3 = %08x", (unsigned) val_32)); // Reserved bits take on value of MOV instruction BX_CPU_CLASS_PTR CR3_change(val_32); BX_INSTR_TLB_CNTRL(BX_INSTR_MOV_CR3, val_32); break; case 4: // CR4 #if BX_CPU_LEVEL == 3 BX_PANIC(("MOV_CdRd: write to CR4 of 0x%08x on 386", val_32)); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #else // Protected mode: #GP(0) if attempt to write a 1 to // any reserved bit of CR4 BX_INFO(("MOV_CdRd: ignoring write to CR4 of 0x%08x", val_32)); if (val_32) { BX_INFO(("MOV_CdRd: (CR4) write of 0x%08x not supported!", val_32)); } // Only allow writes of 0 to CR4 for now. // Writes to bits in CR4 should not be 1s as CPUID // returns not-supported for all of these features. BX_CPU_CLASS_PTR cr4 = 0; #endif break; default: BX_PANIC(("MOV_CdRd: control register index out of range")); break; } #endif } void BX_CPU_C::MOV_RdCd(BX_CPU_C *icpu,bxInstruction_c *i) { // mov control register data to register #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_RdCd: not supported on < 386")); #else Bit32u val_32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("proc_ctrl: v8086 mode unsupported")); /* NOTES: * 32bit operands always used * r/m field specifies general register * mod field should always be 11 binary * reg field specifies which special register */ if (!i->modC0()) { BX_PANIC(("MOV_RdCd(): rm field not a register!")); } if (BX_CPU_CLASS_PTR protected_mode() && RW_CPL!=0) { BX_PANIC(("MOV_RdCd: CPL!=0")); /* #GP(0) if CPL is not 0 */ BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } switch (MODRMnnn(i)) { case 0: // CR0 (MSW) val_32 = BX_CPU_CLASS_PTR cr0.val32; #if 0 BX_INFO(("MOV_RdCd:CR0: R32 = %08x\n @CS:EIP %04x:%04x", (unsigned) val_32, (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value, (unsigned) BX_CPU_CLASS_PTR eip)); #endif break; case 1: /* CR1 */ BX_PANIC(("MOV_RdCd: CR1 not implemented yet")); val_32 = 0; break; case 2: /* CR2 */ if (bx_dbg.creg) BX_INFO(("MOV_RdCd: CR2")); val_32 = BX_CPU_CLASS_PTR cr2; break; case 3: // CR3 if (bx_dbg.creg) BX_INFO(("MOV_RdCd: reading CR3")); val_32 = BX_CPU_CLASS_PTR cr3; break; case 4: // CR4 #if BX_CPU_LEVEL == 3 val_32 = 0; BX_INFO(("MOV_RdCd: read of CR4 causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #else BX_INFO(("MOV_RdCd: read of CR4")); val_32 = BX_CPU_CLASS_PTR cr4; #endif break; default: BX_PANIC(("MOV_RdCd: control register index out of range")); val_32 = 0; } WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), val_32); #endif } void BX_CPU_C::MOV_TdRd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_TdRd:")); #elif BX_CPU_LEVEL <= 4 BX_PANIC(("MOV_TdRd:")); #else // Pentium+ does not have TRx. They were redesigned using the MSRs. BX_INFO(("MOV_TdRd: causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::MOV_RdTd(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_RdTd:")); #elif BX_CPU_LEVEL <= 4 BX_PANIC(("MOV_RdTd:")); #else // Pentium+ does not have TRx. They were redesigned using the MSRs. BX_INFO(("MOV_RdTd: causes #UD")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::LOADALL(BX_CPU_C *icpu,bxInstruction_c *i) { #if (X86CPU_MSWIN_MSDOS==1) BX_PANIC(("undocumented LOADALL instruction not supported on 8086")); return ; #endif #if BX_CPU_LEVEL < 2 BX_PANIC(("undocumented LOADALL instruction not supported on 8086")); #else Bit16u msw, tr, flags, ip, ldtr; Bit16u ds_raw, ss_raw, cs_raw, es_raw; Bit16u di, si, bp, sp, bx, dx, cx, ax; Bit16u base_15_0, limit; Bit8u base_23_16, access; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("proc_ctrl: v8086 mode unsupported")); #if BX_CPU_LEVEL > 2 BX_PANIC(("loadall: not implemented for 386")); // ??? need to set G and other bits, and compute .limit_scaled also // for all segments CS,DS,SS,... #endif if (BX_CPU_CLASS_PTR cr0.pe) { BX_PANIC(( "LOADALL not yet supported for protected mode")); } BX_PANIC(("LOADALL: handle CR0.val32")); // MSW BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x806, 2, &msw); BX_CPU_CLASS_PTR cr0.pe = (msw & 0x01); msw >>= 1; BX_CPU_CLASS_PTR cr0.mp = (msw & 0x01); msw >>= 1; BX_CPU_CLASS_PTR cr0.em = (msw & 0x01); msw >>= 1; BX_CPU_CLASS_PTR cr0.ts = (msw & 0x01); //BX_INFO(("LOADALL: pe=%u, mp=%u, em=%u, ts=%u", // (unsigned) BX_CPU_CLASS_PTR cr0.pe, (unsigned) BX_CPU_CLASS_PTR cr0.mp, // (unsigned) BX_CPU_CLASS_PTR cr0.em, (unsigned) BX_CPU_CLASS_PTR cr0.ts)); if (BX_CPU_CLASS_PTR cr0.pe || BX_CPU_CLASS_PTR cr0.mp || BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts) BX_PANIC(("LOADALL set PE, MP, EM or TS bits in MSW!")); // TR BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x816, 2, &tr); BX_CPU_CLASS_PTR tr.selector.value = tr; BX_CPU_CLASS_PTR tr.selector.rpl = (tr & 0x03); tr >>= 2; BX_CPU_CLASS_PTR tr.selector.ti = (tr & 0x01); tr >>= 1; BX_CPU_CLASS_PTR tr.selector.index = tr; BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x860, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x862, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x863, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x864, 2, &limit); BX_CPU_CLASS_PTR tr.cache.valid = BX_CPU_CLASS_PTR tr.cache.p = (access & 0x80) >> 7; BX_CPU_CLASS_PTR tr.cache.dpl = (access & 0x60) >> 5; BX_CPU_CLASS_PTR tr.cache.segment = (access & 0x10) >> 4; // don't allow busy bit in tr.cache.type, so bit 2 is masked away too. BX_CPU_CLASS_PTR tr.cache.type = (access & 0x0d); BX_CPU_CLASS_PTR tr.cache.u.tss286.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR tr.cache.u.tss286.limit = limit; if ( (BX_CPU_CLASS_PTR tr.selector.value & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR tr.cache.valid = 0; } if ( BX_CPU_CLASS_PTR tr.cache.valid == 0 ) { } if ( BX_CPU_CLASS_PTR tr.cache.u.tss286.limit < 43 ) { BX_CPU_CLASS_PTR tr.cache.valid = 0; } if ( BX_CPU_CLASS_PTR tr.cache.type != 1 ) { BX_CPU_CLASS_PTR tr.cache.valid = 0; } if ( BX_CPU_CLASS_PTR tr.cache.segment ) { BX_CPU_CLASS_PTR tr.cache.valid = 0; } if (BX_CPU_CLASS_PTR tr.cache.valid==0) { BX_CPU_CLASS_PTR tr.cache.u.tss286.base = 0; BX_CPU_CLASS_PTR tr.cache.u.tss286.limit = 0; BX_CPU_CLASS_PTR tr.cache.p = 0; BX_CPU_CLASS_PTR tr.selector.value = 0; BX_CPU_CLASS_PTR tr.selector.index = 0; BX_CPU_CLASS_PTR tr.selector.ti = 0; BX_CPU_CLASS_PTR tr.selector.rpl = 0; } // FLAGS BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x818, 2, &flags); BX_CPU_CLASS_PTR write_flags(flags, 1, 1); // IP BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x81a, 2, &ip); RW_IP = ip; // LDTR BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x81c, 2, &ldtr); BX_CPU_CLASS_PTR ldtr.selector.value = ldtr; BX_CPU_CLASS_PTR ldtr.selector.rpl = (ldtr & 0x03); ldtr >>= 2; BX_CPU_CLASS_PTR ldtr.selector.ti = (ldtr & 0x01); ldtr >>= 1; BX_CPU_CLASS_PTR ldtr.selector.index = ldtr; if ( (BX_CPU_CLASS_PTR ldtr.selector.value & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR ldtr.cache.valid = 0; BX_CPU_CLASS_PTR ldtr.cache.p = 0; BX_CPU_CLASS_PTR ldtr.cache.segment = 0; BX_CPU_CLASS_PTR ldtr.cache.type = 0; BX_CPU_CLASS_PTR ldtr.cache.u.ldt.base = 0; BX_CPU_CLASS_PTR ldtr.cache.u.ldt.limit = 0; BX_CPU_CLASS_PTR ldtr.selector.value = 0; BX_CPU_CLASS_PTR ldtr.selector.index = 0; BX_CPU_CLASS_PTR ldtr.selector.ti = 0; } else { BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x854, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x856, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x857, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x858, 2, &limit); BX_CPU_CLASS_PTR ldtr.cache.valid = BX_CPU_CLASS_PTR ldtr.cache.p = access >> 7; BX_CPU_CLASS_PTR ldtr.cache.dpl = (access >> 5) & 0x03; BX_CPU_CLASS_PTR ldtr.cache.segment = (access >> 4) & 0x01; BX_CPU_CLASS_PTR ldtr.cache.type = (access & 0x0f); BX_CPU_CLASS_PTR ldtr.cache.u.ldt.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR ldtr.cache.u.ldt.limit = limit; if (access == 0) { BX_PANIC(("loadall: LDTR case access byte=0.")); } if ( BX_CPU_CLASS_PTR ldtr.cache.valid==0 ) { BX_PANIC(("loadall: ldtr.valid=0")); } if (BX_CPU_CLASS_PTR ldtr.cache.segment) { // not a system segment BX_INFO((" AR byte = %02x", (unsigned) access)); BX_PANIC(("loadall: LDTR descriptor cache loaded with non system segment")); } if ( BX_CPU_CLASS_PTR ldtr.cache.type != 2 ) { BX_PANIC(("loadall: LDTR.type(%u) != 2", (unsigned) (access & 0x0f))); } } // DS BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x81e, 2, &ds_raw); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = ds_raw; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.rpl = (ds_raw & 0x03); ds_raw >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.ti = (ds_raw & 0x01); ds_raw >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.index = ds_raw; BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x848, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x84a, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x84b, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x84c, 2, &limit); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit = limit; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.a = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.r_w = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.c_ed = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.executable = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.segment = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.dpl = (access & 0x03); access >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.p = (access & 0x01); if ( (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = 0; } if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid==0 || BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.segment==0) { BX_PANIC(("loadall: DS invalid")); } // SS BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x820, 2, &ss_raw); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = ss_raw; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl = (ss_raw & 0x03); ss_raw >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.ti = (ss_raw & 0x01); ss_raw >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.index = ss_raw; BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x842, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x844, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x845, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x846, 2, &limit); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit = limit; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.a = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.r_w = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.c_ed = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.executable = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.segment = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.dpl = (access & 0x03); access >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.p = (access & 0x01); if ( (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = 0; } if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid==0 || BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.segment==0) { BX_PANIC(("loadall: SS invalid")); } // CS BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x822, 2, &cs_raw); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = cs_raw; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl = (cs_raw & 0x03); cs_raw >>= 2; //BX_INFO(("LOADALL: setting cs.selector.rpl to %u", // (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl)); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.ti = (cs_raw & 0x01); cs_raw >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.index = cs_raw; BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x83c, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x83e, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x83f, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x840, 2, &limit); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit = limit; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.a = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.r_w = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.c_ed = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.executable = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.segment = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.dpl = (access & 0x03); access >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.p = (access & 0x01); if ( (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid = 0; } if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid==0 || BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.segment==0) { BX_PANIC(("loadall: CS invalid")); } // ES BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x824, 2, &es_raw); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = es_raw; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.rpl = (es_raw & 0x03); es_raw >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.ti = (es_raw & 0x01); es_raw >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.index = es_raw; BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x836, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x838, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x839, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x83a, 2, &limit); BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit = limit; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.a = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.r_w = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.c_ed = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.executable = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.segment = (access & 0x01); access >>= 1; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.dpl = (access & 0x03); access >>= 2; BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.p = (access & 0x01); #if 0 BX_INFO(("cs.dpl = %02x", (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.dpl)); BX_INFO(("ss.dpl = %02x", (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.dpl)); BX_INFO(("BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].dpl = %02x", (unsigned) BX_CPU_CLASS_PTR ds.cache.dpl)); BX_INFO(("BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].dpl = %02x", (unsigned) BX_CPU_CLASS_PTR es.cache.dpl)); BX_INFO(("LOADALL: setting cs.selector.rpl to %u", (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl)); BX_INFO(("LOADALL: setting ss.selector.rpl to %u", (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl)); BX_INFO(("LOADALL: setting ds.selector.rpl to %u", (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.rpl)); BX_INFO(("LOADALL: setting es.selector.rpl to %u", (unsigned) BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.rpl)); #endif if ( (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid = 0; } if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid==0 || BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.segment==0) { BX_PANIC(("loadall: ES invalid")); } // DI BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x826, 2, &di); RW_DI = di; // SI BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x828, 2, &si); RW_SI = si; // BP BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x82a, 2, &bp); RW_BP = bp; // SP BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x82c, 2, &sp); RW_SP = sp; // BX BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x82e, 2, &bx); RW_BX = bx; // DX BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x830, 2, &dx); RW_DX = dx; // CX BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x832, 2, &cx); RW_CX = cx; // AX BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x834, 2, &ax); RW_AX = ax; // GDTR BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x84e, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x850, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x851, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x852, 2, &limit); BX_CPU_CLASS_PTR gdtr.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR gdtr.limit = limit; #if 0 if (access) BX_INFO(("LOADALL: GDTR access bits not 0 (%02x).", (unsigned) access)); #endif // IDTR BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x85a, 2, &base_15_0); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x85c, 1, &base_23_16); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x85d, 1, &access); BX_CPU_CLASS_PTR mem->read_physical(BX_CPU_CLASS, 0x85e, 2, &limit); BX_CPU_CLASS_PTR idtr.base = (base_23_16 << 16) | base_15_0; BX_CPU_CLASS_PTR idtr.limit = limit; #endif } void BX_CPU_C::CPUID(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL >= 4 unsigned type, family, model, stepping, features; #endif //invalidate_prefetch_q(); #if BX_CPU_LEVEL >= 4 switch (RW_EAX) { case 0: // EAX: highest input value understood by CPUID // EBX: vendor ID string // EDX: vendor ID string // ECX: vendor ID string RW_EAX = 1; // 486 or pentium RW_EBX = 0x756e6547; // "Genu" RW_EDX = 0x49656e69; // "ineI" RW_ECX = 0x6c65746e; // "ntel" break; case 1: // EAX[3:0] Stepping ID // EAX[7:4] Model: starts at 1 // EAX[11:8] Family: 4=486, 5=Pentium, 6=PPro // EAX[13:12] Type: 0=OEM,1=overdrive,2=dual cpu,3=reserved // EAX[31:14] Reserved // EBX: Reserved (0) // ECX: Reserved (0) // EDX: Feature Flags // [0:0] FPU on chip // [1:1] VME: Virtual-8086 Mode enhancements // [2:2] DE: Debug Extensions (I/O breakpoints) // [3:3] PSE: Page Size Extensions // [4:4] TSC: Time Stamp Counter // [5:5] MSR: RDMSR and WRMSR support // [6:6] PAE: Physical Address Extensions // [7:7] MCE: Machine Check Exception // [8:8] CXS: CMPXCHG8B instruction // [9:9] APIC: APIC on Chip // [11:10] Reserved // [12:12] MTRR: Memory Type Range Reg // [13:13] PGE/PTE Global Bit // [14:14] MCA: Machine Check Architecture // [15:15] CMOV: Cond Mov/Cmp Instructions // [22:16] Reserved // [23:23] MMX Technology // [31:24] Reserved features = 0; // start with none type = 0; // OEM #if BX_CPU_LEVEL == 4 family = 4; # if BX_SUPPORT_FPU // 486dx model = 1; stepping = 3; features |= 0x01; # else // 486sx model = 2; stepping = 3; # endif #elif BX_CPU_LEVEL == 5 family = 5; model = 1; // Pentium (60,66) stepping = 3; // ??? features |= (1<<4); // implement TSC # if BX_SUPPORT_FPU features |= 0x01; # endif #elif BX_CPU_LEVEL == 6 family = 6; model = 1; // Pentium Pro stepping = 3; // ??? features |= (1<<4); // implement TSC # if BX_SUPPORT_APIC features |= (1<<9); // APIC on chip # endif # if BX_SUPPORT_FPU features |= 0x01; // has FPU # endif #else BX_PANIC(("CPUID: not implemented for > 6")); #endif RW_EAX = (family <<8) | (model<<4) | stepping; RW_EBX = RW_ECX = 0; // reserved RW_EDX = features; break; default: RW_EAX = RW_EBX = RW_ECX = RW_EDX = 0; // Reserved, undefined break; } #else BX_PANIC(("CPUID: not available on < late 486")); #endif } void BX_CPU_C::SetCR0(Bit32u val_32) { // from either MOV_CdRd() or debug functions // protection checks made already or forcing from debug Boolean prev_pe, prev_pg; prev_pe = BX_CPU_THIS_PTR cr0.pe; prev_pg = BX_CPU_THIS_PTR cr0.pg; BX_CPU_THIS_PTR cr0.pe = val_32 & 0x01; BX_CPU_THIS_PTR cr0.mp = (val_32 >> 1) & 0x01; BX_CPU_THIS_PTR cr0.em = (val_32 >> 2) & 0x01; BX_CPU_THIS_PTR cr0.ts = (val_32 >> 3) & 0x01; // cr0.et is hardwired to 1 #if BX_CPU_LEVEL >= 4 BX_CPU_THIS_PTR cr0.ne = (val_32 >> 5) & 0x01; BX_CPU_THIS_PTR cr0.wp = (val_32 >> 16) & 0x01; BX_CPU_THIS_PTR cr0.am = (val_32 >> 18) & 0x01; BX_CPU_THIS_PTR cr0.nw = (val_32 >> 29) & 0x01; BX_CPU_THIS_PTR cr0.cd = (val_32 >> 30) & 0x01; #endif BX_CPU_THIS_PTR cr0.pg = (val_32 >> 31) & 0x01; // handle reserved bits behaviour #if BX_CPU_LEVEL == 3 BX_CPU_THIS_PTR cr0.val32 = val_32 | 0x7ffffff0; #elif BX_CPU_LEVEL == 4 BX_CPU_THIS_PTR cr0.val32 = (val_32 | 0x00000010) & 0xe005003f; #elif BX_CPU_LEVEL == 5 BX_CPU_THIS_PTR cr0.val32 = val_32 | 0x00000010; #elif BX_CPU_LEVEL == 6 BX_CPU_THIS_PTR cr0.val32 = (val_32 | 0x00000010) & 0xe005003f; #else #error "MOV_CdRd: implement reserved bits behaviour for this CPU_LEVEL" #endif //if (BX_CPU_CLASS_PTR cr0.ts) // BX_INFO(("MOV_CdRd:CR0.TS set 0x%x", (unsigned) val_32)); if (prev_pe==0 && BX_CPU_THIS_PTR cr0.pe) { enter_protected_mode(); } else if (prev_pe==1 && BX_CPU_THIS_PTR cr0.pe==0) { enter_real_mode(); } if (prev_pg==0 && BX_CPU_THIS_PTR cr0.pg) enable_paging(); else if (prev_pg==1 && BX_CPU_THIS_PTR cr0.pg==0) disable_paging(); } void BX_CPU_C::RSM(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL >= 4 BX_CPU_CLASS_PTR invalidate_prefetch_q(); BX_PANIC(("RSM: System Management Mode not implemented yet")); #else BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::RDTSC(BX_CPU_C *icpu,bxInstruction_c *i) { static Bit64u time_ticks; time_ticks += (Bit64u)BX_CONST64(0x112341234); #if BX_CPU_LEVEL >= 5 Boolean tsd = (BX_CPU_CLASS_PTR cr4 & 4)? 1 : 0; Boolean cpl = RW_CPL; if ((tsd==0) || (tsd==1 && cpl==0)) { // return ticks #if (X86CPU_MSWIN_MSDOS==1) Bit64u ticks = time_ticks;//bx_pc_system.time_ticks (); #else Bit64u ticks = bx_pc_system.time_ticks (); #endif RW_EAX = (Bit32u) (ticks & 0xffffffff); RW_EDX = (Bit32u) ((ticks >> 32) & 0xffffffff); //BX_INFO(("RDTSC: returning EDX:EAX = %08x:%08x", EDX, EAX)); } else { // not allowed to use RDTSC! BX_CPU_CLASS_PTR exception (BX_GP_EXCEPTION, 0, 0); } #else BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); #endif } void BX_CPU_C::RDMSR(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL >= 5 BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR v8086_mode()) { BX_INFO(("RDMSR: Invalid whilst in virtual 8086 mode")); goto do_exception; } if (RW_CPL!= 0) { BX_INFO(("RDMSR: CPL!= 0")); goto do_exception; } /* We have the requested MSR register in ECX */ switch(RW_ECX) { #if BX_CPU_LEVEL == 5 /* The following registers are defined for Pentium only */ case BX_MSR_P5_MC_ADDR: case BX_MSR_MC_TYPE: /* TODO */ return; case BX_MSR_TSC: BX_CPU_CLASS_PTR RDTSC(icpu,i); return; case BX_MSR_CESR: /* TODO */ return; #else /* These are noops on i686... */ case BX_MSR_P5_MC_ADDR: case BX_MSR_MC_TYPE: /* do nothing */ return; case BX_MSR_TSC: BX_CPU_CLASS_PTR RDTSC(i); return; /* ... And these cause an exception on i686 */ case BX_MSR_CESR: case BX_MSR_CTR0: case BX_MSR_CTR1: goto do_exception; #endif /* BX_CPU_LEVEL == 5 */ /* MSR_APICBASE 0:7 Reserved 8 This is set if its the BSP 9:10 Reserved 11 APIC Global Enable bit (1=enabled 0=disabled) 12:35 APIC Base Address 36:63 Reserved */ case BX_MSR_APICBASE: /* we return low 32 bits in EAX, and high in EDX */ //RW_EAX = BX_CPU_CLASS_PTR msr.apicbase & 0xff; //RW_EDX = BX_CPU_CLASS_PTR msr.apicbase >> 32; RW_EAX = (Bit32u)(BX_CPU_CLASS_PTR msr.apicbase); RW_EDX = (Bit32u)(BX_CPU_CLASS_PTR msr.apicbase>>32); BX_INFO(("RDMSR: Read %08x:%08x from MSR_APICBASE", RW_EDX, RW_EAX)); return; default: BX_INFO(("RDMSR: Unknown register!")); goto do_exception; } #endif /* BX_CPU_LEVEL >= 5 */ do_exception: BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } void BX_CPU_C::WRMSR(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL >= 5 BX_CPU_CLASS_PTR invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR v8086_mode()) { BX_INFO(("WRMSR: Invalid whilst in virtual 8086 mode")); goto do_exception; } if (RW_CPL!= 0) { BX_INFO(("WDMSR: CPL!= 0")); goto do_exception; } /* ECX has the MSR to write to */ switch(RW_ECX) { #if BX_CPU_LEVEL == 5 /* The following registers are defined for Pentium only */ case BX_MSR_P5_MC_ADDR: case BX_MSR_MC_TYPE: case BX_MSR_TSC: case BX_MSR_CESR: /* TODO */ return; #else /* These are noops on i686... */ case BX_MSR_P5_MC_ADDR: case BX_MSR_MC_TYPE: case BX_MSR_TSC: /* do nothing */ return; /* ... And these cause an exception on i686 */ case BX_MSR_CESR: case BX_MSR_CTR0: case BX_MSR_CTR1: goto do_exception; #endif /* BX_CPU_LEVEL == 5 */ /* MSR_APICBASE 0:7 Reserved 8 This is set if its the BSP 9:10 Reserved 11 APIC Global Enable bit (1=enabled 0=disabled) 12:35 APIC Base Address 36:63 Reserved */ case BX_MSR_APICBASE: BX_CPU_CLASS_PTR msr.apicbase = (RW_EDX << 32) + RW_EAX; BX_INFO(("WRMSR: wrote %08x:%08x to MSR_APICBASE", RW_EDX, RW_EAX)); return; default: BX_INFO(("WRMSR: Unknown register!")); goto do_exception; } #endif /* BX_CPU_LEVEL >= 5 */ do_exception: BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #if BX_X86_DEBUGGER Bit32u BX_CPU_C::hwdebug_compare(Bit32u laddr_0, unsigned size, unsigned opa, unsigned opb) { // Support x86 hardware debug facilities (DR0..DR7) Bit32u dr7 = BX_CPU_CLASS_PTR dr7; Boolean ibpoint_found = 0; Bit32u laddr_n = laddr_0 + (size - 1); Bit32u dr0, dr1, dr2, dr3; Bit32u dr0_n, dr1_n, dr2_n, dr3_n; Bit32u len0, len1, len2, len3; static unsigned alignment_mask[4] = // 00b=1 01b=2 10b=undef 11b=4 { 0xffffffff, 0xfffffffe, 0xffffffff, 0xfffffffc }; Bit32u dr0_op, dr1_op, dr2_op, dr3_op; len0 = (dr7>>18) & 3; len1 = (dr7>>22) & 3; len2 = (dr7>>26) & 3; len3 = (dr7>>30) & 3; dr0 = BX_CPU_CLASS_PTR dr0 & alignment_mask[len0]; dr1 = BX_CPU_CLASS_PTR dr1 & alignment_mask[len1]; dr2 = BX_CPU_CLASS_PTR dr2 & alignment_mask[len2]; dr3 = BX_CPU_CLASS_PTR dr3 & alignment_mask[len3]; dr0_n = dr0 + len0; dr1_n = dr1 + len1; dr2_n = dr2 + len2; dr3_n = dr3 + len3; dr0_op = (dr7>>16) & 3; dr1_op = (dr7>>20) & 3; dr2_op = (dr7>>24) & 3; dr3_op = (dr7>>28) & 3; // See if this instruction address matches any breakpoints if ( (dr7 & 0x00000003) ) { if ( (dr0_op==opa || dr0_op==opb) && (laddr_0 <= dr0_n) && (laddr_n >= dr0) ) ibpoint_found = 1; } if ( (dr7 & 0x0000000c) ) { if ( (dr1_op==opa || dr1_op==opb) && (laddr_0 <= dr1_n) && (laddr_n >= dr1) ) ibpoint_found = 1; } if ( (dr7 & 0x00000030) ) { if ( (dr2_op==opa || dr2_op==opb) && (laddr_0 <= dr2_n) && (laddr_n >= dr2) ) ibpoint_found = 1; } if ( (dr7 & 0x000000c0) ) { if ( (dr3_op==opa || dr3_op==opb) && (laddr_0 <= dr3_n) && (laddr_n >= dr3) ) ibpoint_found = 1; } // If *any* enabled breakpoints matched, then we need to // set status bits for *all* breakpoints, even disabled ones, // as long as they meet the other breakpoint criteria. // This code is similar to that above, only without the // breakpoint enabled check. Seems weird to duplicate effort, // but its more efficient to do it this way. if (ibpoint_found) { // dr6_mask is the return value. These bits represent the bits to // be OR'd into DR6 as a result of the debug event. Bit32u dr6_mask=0; if ( (dr0_op==opa || dr0_op==opb) && (laddr_0 <= dr0_n) && (laddr_n >= dr0) ) dr6_mask |= 0x01; if ( (dr1_op==opa || dr1_op==opb) && (laddr_0 <= dr1_n) && (laddr_n >= dr1) ) dr6_mask |= 0x02; if ( (dr2_op==opa || dr2_op==opb) && (laddr_0 <= dr2_n) && (laddr_n >= dr2) ) dr6_mask |= 0x04; if ( (dr3_op==opa || dr3_op==opb) && (laddr_0 <= dr3_n) && (laddr_n >= dr3) ) dr6_mask |= 0x08; return(dr6_mask); } return(0); } #endif ================================================ FILE: Project/IntelCPU/Source/prot.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: protect_ctrl.cc,v 1.10 2001/10/09 21:15:14 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" /* 1: available TSS */ /* 2: LDT */ /* 3: busy TSS */ /* 4: 286 call gate */ /* 5: task gate */ /* 9: available 32bit TSS */ /* 11: busy 32bit TSS */ /* 12: 32bit call gate */ /* xx: code data segment */ Bit8u AR_BYTE_LAR[0x20] = { 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; // 1: 16bit TSS // 3: 16bit TSS // 2: LDT // 9: 32bit TSS G00A // 11:32bit TSS G00A Bit8u AR_BYTE_LSL[0x20] = { 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; Bit8u AR_BYTE_VERR[0x20] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, }; Bit8u AR_BYTE_VERW[0x20] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, }; void BX_CPU_C::ARPL_EwGw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("ARPL_EwRw: not supported on 8086!")); #else /* 286+ */ Bit16u op2_16, op1_16; if (BX_CPU_CLASS_PTR protected_mode()) { /* op1_16 is a register or memory reference */ if (i->modC0()) { op1_16 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_RMW_virtual_word(MODRMSeg(i), RMAddr(i), &op1_16); } op2_16 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); if ( (op1_16 & 0x03) < (op2_16 & 0x03) ) { op1_16 = (op1_16 & 0xfffc) | (op2_16 & 0x03); /* now write back to destination */ if (i->modC0()) { /* if (i->size_mode.os_32) { // if 32bit opsize, then 0xff3f is or'd into // upper 16bits of register Bit32u op1_32; op1_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op1_32 = (op1_32 & 0xffff0000) | op1_16; op1_32 |= 0xff3f0000; WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), op1_32); } else { WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), op1_16); } */ WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), op1_16); } else { BX_CPU_CLASS_PTR write_RMW_virtual_word(op1_16); } BX_CPU_CLASS_PTR set_ZF(1); } else { BX_CPU_CLASS_PTR set_ZF(0); } } else { // ARPL not recognized in real or v8086 mode BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } #endif } void BX_CPU_C::LAR_GvEw(BX_CPU_C *icpu,bxInstruction_c *i) { /* for 16 bit operand size mode */ Bit16u raw_selector; bx_descriptor_t descriptor; bx_selector_t selector; Bit32u dword1, dword2; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (BX_CPU_CLASS_PTR real_mode()) { BX_PANIC(("LAR_GvEw: not recognized in real mode")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } if (i->modC0()) { raw_selector = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &raw_selector); } /* if selector null, clear ZF and done */ if ( (raw_selector & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR set_ZF(0); return; } BX_CPU_CLASS_PTR parse_selector(raw_selector, &selector); if ( !BX_CPU_CLASS_PTR fetch_raw_descriptor2(&selector, &dword1, &dword2) ) { /* not within descriptor table */ BX_CPU_CLASS_PTR set_ZF(0); return; } BX_CPU_CLASS_PTR parse_descriptor(dword1, dword2, &descriptor); /* if source selector is visible at CPL & RPL, * within the descriptor table, and of type accepted by LAR instruction, * then load register with segment limit and set ZF */ if (AR_BYTE_LAR[descriptor.AR_byte&0x1f]==0) { BX_CPU_CLASS_PTR set_ZF(0); //BX_DEBUG(("lar(): descriptor valid bit cleared")); return; } if ((descriptor.AR_byte&0x1c)!=0x1c) { if ( (descriptor.dplsize_mode.os_32) { /* masked by 00FxFF00, where x is undefined */ WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), dword2 & 0x00ffff00); } else { WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), dword2 & 0xff00); } return; } void BX_CPU_C::LSL_GvEw(BX_CPU_C *icpu,bxInstruction_c *i) { /* for 16 bit operand size mode */ Bit16u raw_selector; bx_descriptor_t descriptor; bx_selector_t selector; Bit32u dword1, dword2; Bit32u limit32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (BX_CPU_CLASS_PTR real_mode()) { BX_PANIC(("LSL_GvEw: not recognized in real mode")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } if (i->modC0()) { raw_selector = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &raw_selector); } /* if selector null, clear ZF and done */ if ( (raw_selector & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR set_ZF(0); return; } BX_CPU_CLASS_PTR parse_selector(raw_selector, &selector); if ( !BX_CPU_CLASS_PTR fetch_raw_descriptor2(&selector, &dword1, &dword2) ) { /* not within descriptor table */ BX_CPU_CLASS_PTR set_ZF(0); return; } BX_CPU_CLASS_PTR parse_descriptor(dword1, dword2, &descriptor); if (AR_BYTE_LSL[descriptor.AR_byte&0x1f]==0) { BX_CPU_CLASS_PTR set_ZF(0); //BX_DEBUG(("lar(): descriptor valid bit cleared")); return; } if ((descriptor.AR_byte&0x1c)!=0x1c) { if ( (descriptor.dplsize_mode.os_32) WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), limit32) else // chop off upper 16 bits WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), (Bit16u) limit32) return ; } void BX_CPU_C::SLDT_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("SLDT_Ew: not supported on 8086!")); #else if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (BX_CPU_CLASS_PTR real_mode()) { /* not recognized in real address mode */ BX_ERROR(("SLDT_Ew: encountered in real mode.")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } else { Bit16u val16; val16 = BX_CPU_CLASS_PTR ldtr.selector.value; if (i->modC0()) { if (i->size_mode.os_32) { WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), (Bit32u)val16); } else { WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),val16); } } else { BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &val16); } } #endif } void BX_CPU_C::STR_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (BX_CPU_CLASS_PTR real_mode()) { // not recognized in real address mode BX_PANIC(("STR_Ew: encountered in real mode.")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } else { Bit16u val16; val16 = BX_CPU_CLASS_PTR tr.selector.value; if (i->modC0()) { if (i->size_mode.os_32) { WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),(Bit32u)val16); } else { WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), val16); } } else { BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &val16); } } } void BX_CPU_C::LLDT_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("LLDT_Ew: not supported on 8086!")); #else if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); //invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR real_mode()) { BX_PANIC(("lldt: not recognized in real mode")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } else { /* protected mode */ bx_descriptor_t descriptor; bx_selector_t selector; Bit16u raw_selector; Bit32u dword1, dword2; /* #GP(0) if the current privilege level is not 0 */ if (RW_CPL != 0) { BX_PANIC(("LLDT: CPL != 0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } if (i->modC0()) { raw_selector = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &raw_selector); } /* if selector is NULL, invalidate and done */ if ((raw_selector & 0xfffc) == 0) { BX_CPU_CLASS_PTR ldtr.selector.value = raw_selector; BX_CPU_CLASS_PTR ldtr.cache.valid = 0; return; } /* parse fields in selector */ BX_CPU_CLASS_PTR parse_selector(raw_selector, &selector); // #GP(selector) if the selector operand does not point into GDT if (selector.ti != 0) { BX_ERROR(("LLDT: selector.ti != 0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, raw_selector & 0xfffc, 0); } if ((selector.index*8 + 7) > BX_CPU_CLASS_PTR gdtr.limit) { BX_PANIC(("lldt: GDT: index > limit")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, raw_selector & 0xfffc, 0); return; } BX_CPU_CLASS_PTR access_linear(BX_CPU_CLASS_PTR gdtr.base + selector.index*8, 4, 0, BX_READ, &dword1); BX_CPU_CLASS_PTR access_linear(BX_CPU_CLASS_PTR gdtr.base + selector.index*8 + 4, 4, 0, BX_READ, &dword2); BX_CPU_CLASS_PTR parse_descriptor(dword1, dword2, &descriptor); /* if selector doesn't point to an LDT descriptor #GP(selector) */ if ((descriptor.AR_byte&0x1f)!=0x02) { BX_ERROR(("lldt: doesn't point to an LDT descriptor!")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, raw_selector & 0xfffc, 0); } /* #NP(selector) if LDT descriptor is not present */ if (descriptor.p==0) { BX_ERROR(("lldt: LDT descriptor not present!")); BX_CPU_CLASS_PTR exception(BX_NP_EXCEPTION, raw_selector & 0xfffc, 0); } if (descriptor.u.ldt.limit < 7) { BX_ERROR(("lldt: ldtr.limit < 7")); } BX_CPU_CLASS_PTR ldtr.selector = selector; BX_CPU_CLASS_PTR ldtr.cache = descriptor; BX_CPU_CLASS_PTR ldtr.cache.valid = 1; return; } #endif } void BX_CPU_C::LTR_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("LTR_Ew: not supported on 8086!")); #else if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); //invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()) { bx_descriptor_t descriptor; bx_selector_t selector; Bit16u raw_selector; Bit32u dword1, dword2; /* #GP(0) if the current privilege level is not 0 */ if (RW_CPL != 0) { BX_PANIC(("LTR: CPL != 0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } if (i->modC0()) { raw_selector = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &raw_selector); } /* if selector is NULL, invalidate and done */ if ((raw_selector & 0xfffc) == 0) { BX_PANIC(("ltr: loading with NULL selector!")); /* if this is OK, then invalidate and load selector & descriptor cache */ /* load here */ BX_CPU_CLASS_PTR tr.selector.value = raw_selector; BX_CPU_CLASS_PTR tr.cache.valid = 0; return; } /* parse fields in selector, then check for null selector */ BX_CPU_CLASS_PTR parse_selector(raw_selector, &selector); if (selector.ti) { BX_PANIC(("ltr: selector.ti != 0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, raw_selector & 0xfffc, 0); return; } /* fetch 2 dwords of descriptor; call handles out of limits checks */ BX_CPU_CLASS_PTR fetch_raw_descriptor(&selector, &dword1, &dword2, BX_GP_EXCEPTION); BX_CPU_CLASS_PTR parse_descriptor(dword1, dword2, &descriptor); /* #GP(selector) if object is not a TSS or is already busy */ if ( (descriptor.AR_byte&0x1f) != 1 && (descriptor.AR_byte&0x1f) != 9) { BX_PANIC(("ltr: doesn't point to an available TSS descriptor!")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, raw_selector & 0xfffc, 0); /* 0 ??? */ return; } /* #NP(selector) if TSS descriptor is not present */ if (descriptor.p==0) { BX_PANIC(("ltr: LDT descriptor not present!")); BX_CPU_CLASS_PTR exception(BX_NP_EXCEPTION, raw_selector & 0xfffc, 0); /* 0 ??? */ return; } if (descriptor.type==1 && descriptor.u.tss286.limit<43) { BX_PANIC(("ltr:286TSS: loading tr.limit < 43")); } else if (descriptor.type==9 && descriptor.u.tss386.limit_scaled<103) { BX_PANIC(("ltr:386TSS: loading tr.limit < 103")); } BX_CPU_CLASS_PTR tr.selector = selector; BX_CPU_CLASS_PTR tr.cache = descriptor; BX_CPU_CLASS_PTR tr.cache.valid = 1; // tr.cache.type should not have busy bit, or it would not get // through the conditions above. BX_ASSERT((BX_CPU_CLASS_PTR tr.cache.type & 2) == 0); /* mark as busy */ dword2 |= 0x00000200; /* set busy bit */ BX_CPU_CLASS_PTR access_linear(BX_CPU_CLASS_PTR gdtr.base + selector.index*8 + 4, 4, 0, BX_WRITE, &dword2); return; } else { BX_PANIC(("ltr_ew: not recognized in real-mode!")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } #endif } void BX_CPU_C::VERR_Ew(BX_CPU_C *icpu,bxInstruction_c *i) { /* for 16 bit operand size mode */ Bit16u raw_selector; bx_descriptor_t descriptor; bx_selector_t selector; Bit32u dword1, dword2; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (BX_CPU_CLASS_PTR real_mode()) { BX_PANIC(("VERR_Ew: not recognized in real mode")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } if (i->modC0()) { raw_selector = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &raw_selector); } /* if selector null, clear ZF and done */ if ( (raw_selector & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR set_ZF(0); BX_ERROR(("VERR: null selector")); return; } /* if source selector is visible at CPL & RPL, * within the descriptor table, and of type accepted by VERR instruction, * then load register with segment limit and set ZF */ BX_CPU_CLASS_PTR parse_selector(raw_selector, &selector); if ( !BX_CPU_CLASS_PTR fetch_raw_descriptor2(&selector, &dword1, &dword2) ) { /* not within descriptor table */ BX_CPU_CLASS_PTR set_ZF(0); BX_ERROR(("VERR: not in table")); return; } BX_CPU_CLASS_PTR parse_descriptor(dword1, dword2, &descriptor); if (AR_BYTE_VERR[descriptor.AR_byte&0x1f]==0) { BX_CPU_CLASS_PTR set_ZF(0); /* inaccessible */ BX_ERROR(("VERR: system descriptor")); return; } if ((descriptor.AR_byte&0x1c)!=0x1c) { if ( (descriptor.dplmodC0()) { raw_selector = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { /* pointer, segment address pair */ BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &raw_selector); } /* if selector null, clear ZF and done */ if ( (raw_selector & 0xfffc) == 0 ) { BX_CPU_CLASS_PTR set_ZF(0); BX_ERROR(("VERW: null selector")); return; } /* if source selector is visible at CPL & RPL, * within the descriptor table, and of type accepted by VERW instruction, * then load register with segment limit and set ZF */ BX_CPU_CLASS_PTR parse_selector(raw_selector, &selector); if ( !BX_CPU_CLASS_PTR fetch_raw_descriptor2(&selector, &dword1, &dword2) ) { /* not within descriptor table */ BX_CPU_CLASS_PTR set_ZF(0); BX_ERROR(("VERW: not in table")); return; } BX_CPU_CLASS_PTR parse_descriptor(dword1, dword2, &descriptor); /* rule out system segments & code segments */ if (AR_BYTE_VERW[descriptor.AR_byte&0x1f]==0) { BX_CPU_CLASS_PTR set_ZF(0); BX_ERROR(("VERW: system seg or code")); BX_INFO(("VERW: data seg not writable")); return; } /* data segment */ if ( (descriptor.dplmodC0()) { /* undefined opcode exception */ BX_PANIC(("SGDT_Ms: use of register is undefined opcode.")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } limit_16 = BX_CPU_CLASS_PTR gdtr.limit; base_32 = BX_CPU_CLASS_PTR gdtr.base; #if BX_CPU_LEVEL == 2 base_32 |= 0xff000000; /* ??? */ #else /* 386+ */ /* 32bit processors always write 32bits of base */ #endif BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &limit_16); BX_CPU_CLASS_PTR write_virtual_dword(MODRMSeg(i), RMAddr(i)+2, &base_32); #endif } void BX_CPU_C::SIDT_Ms(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("SIDT_Ms: not supported on 8086!")); #else Bit16u limit_16; Bit32u base_32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); /* op1 is a register or memory reference */ if (i->modC0()) { /* undefined opcode exception */ BX_PANIC(("SIDT: use of register is undefined opcode.")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } limit_16 = BX_CPU_CLASS_PTR idtr.limit; base_32 = BX_CPU_CLASS_PTR idtr.base; #if BX_CPU_LEVEL == 2 base_32 |= 0xff000000; #else /* 386+ */ /* ??? regardless of operand size, all 32bits of base are stored */ #endif BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &limit_16); BX_CPU_CLASS_PTR write_virtual_dword(MODRMSeg(i), RMAddr(i)+2, &base_32); #endif } void BX_CPU_C::LGDT_Ms(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("LGDT_Ms: not supported on 8086!")); #else Bit16u limit_16; Bit32u base_32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); //invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode() && (RW_CPL!=0)) { BX_PANIC(("LGDT: protected mode: CPL!=0")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } /* op1 is a register or memory reference */ if (i->modC0()) { BX_PANIC(("LGDT generating exception 6")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &limit_16); BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i) + 2, &base_32); BX_CPU_CLASS_PTR gdtr.limit = limit_16; #if BX_CPU_LEVEL >= 3 if (i->size_mode.os_32) BX_CPU_CLASS_PTR gdtr.base = base_32; else #endif BX_CPU_CLASS_PTR gdtr.base = base_32 & 0x00ffffff; /* ignore upper 8 bits */ #endif } void BX_CPU_C::LIDT_Ms(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("LIDT_Ms: not supported on 8086!")); #else Bit16u limit_16; Bit32u base_32; if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); //invalidate_prefetch_q(); if (BX_CPU_CLASS_PTR protected_mode()&&(RW_CPL != 0)) { BX_PANIC(("LIDT(): CPL(%u) != 0", (unsigned) RW_CPL)); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); return; } /* op1 is a register or memory reference */ if (i->modC0()) { /* undefined opcode exception */ BX_PANIC(("LIDT generating exception 6")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); return; } BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &limit_16); BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i) + 2, &base_32); BX_CPU_CLASS_PTR idtr.limit = limit_16; #if BX_CPU_LEVEL >= 3 if (i->size_mode.os_32) BX_CPU_CLASS_PTR idtr.base = base_32; else #endif BX_CPU_CLASS_PTR idtr.base = base_32 & 0x00ffffff; /* ignore upper 8 bits */ #endif } ================================================ FILE: Project/IntelCPU/Source/prot_pro.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: protect_ctrl_pro.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::enter_protected_mode(void) { // BX_INFO(("processor switching into PROTECTED mode!!!")); // debug(BX_CPU_THIS_PTR prev_eip); if (v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (bx_dbg.reset) BX_INFO(("processor switching into PROTECTED mode!!!")); if ( BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl!=0 || BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl!=0 ) BX_PANIC(("enter_protected_mode: CS or SS rpl != 0")); } void BX_CPU_C::enter_real_mode(void) { // ??? // BX_INFO(("processor switching into REAL mode!!!")); // debug(BX_CPU_THIS_PTR prev_eip); if (v8086_mode()) BX_PANIC(("protect_ctrl: v8086 mode unsupported")); if (bx_dbg.reset) BX_INFO(("processor switching into REAL mode!!!")); if ( BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl!=0 || BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl!=0 ) BX_PANIC(("enter_real_mode: CS or SS rpl != 0")); } ================================================ FILE: Project/IntelCPU/Source/resol16.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: resolve16.cc,v 1.5 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::Resolve16Mod0Rm0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BX + RW_SI); } void BX_CPU_C::Resolve16Mod0Rm1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BX + RW_DI); } void BX_CPU_C::Resolve16Mod0Rm2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BP + RW_SI); } void BX_CPU_C::Resolve16Mod0Rm3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BP + RW_DI); } void BX_CPU_C::Resolve16Mod0Rm4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) RW_SI; } void BX_CPU_C::Resolve16Mod0Rm5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) RW_DI; } void BX_CPU_C::Resolve16Mod0Rm6(BX_CPU_C *icpu,bxInstruction_c *i) { // d16, no registers used RMAddr(i) = (Bit16u) i->displ16u; } void BX_CPU_C::Resolve16Mod0Rm7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) RW_BX; } void BX_CPU_C::Resolve16Mod1or2Rm0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BX + RW_SI + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BX + RW_DI + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BP + RW_SI + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BP + RW_DI + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_SI + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_DI + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BP + i->displ16u); } void BX_CPU_C::Resolve16Mod1or2Rm7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (Bit16u) (RW_BX + i->displ16u); } //------------------------------------------------ ================================================ FILE: Project/IntelCPU/Source/resol32.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: resolve32.cc,v 1.5 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ʮλЧַ 㺯 //--------------------------------------------------------- void BX_CPU_C::Resolve32Mod0Rm0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00); } void BX_CPU_C::Resolve32Mod0Rm1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01); } void BX_CPU_C::Resolve32Mod0Rm2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02); } void BX_CPU_C::Resolve32Mod0Rm3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03); } void BX_CPU_C::Resolve32Mod0Rm4(BX_CPU_C *icpu,bxInstruction_c *i) { // escape to 2-byte } void BX_CPU_C::Resolve32Mod0Rm5(BX_CPU_C *icpu,bxInstruction_c *i) { // d32, no registers used RMAddr(i) = i->displ32u; } void BX_CPU_C::Resolve32Mod0Rm6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06); } void BX_CPU_C::Resolve32Mod0Rm7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07); } //--------------------------------------------------------- void BX_CPU_C::Resolve32Mod1or2Rm0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2Rm1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2Rm2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2Rm3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2Rm4(BX_CPU_C *icpu,bxInstruction_c *i) { // escape to 2-byte } void BX_CPU_C::Resolve32Mod1or2Rm5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2Rm6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2Rm7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + i->displ32u; } //--------------------------------------------------------- void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x00(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x01(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x02(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x03(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x04(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x05(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x06(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x07(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x08(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x09(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x0f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x10(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x11(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x12(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x13(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x14(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x15(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x16(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x17(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x18(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x19(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x1f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x20(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x21(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x22(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x23(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x24(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x25(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x26(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x27(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x28(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x29(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x2f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x30(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x31(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x32(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x33(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x34(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x35(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x36(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x37(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x38(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x39(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x3f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x40(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x41(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x42(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x43(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x44(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x45(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x46(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x47(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x48(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x49(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x4f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x50(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x51(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x52(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x53(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x54(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x55(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x56(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x57(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x58(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x59(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x5f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x60(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x61(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x62(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x63(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x64(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x65(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x66(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x67(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x68(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x69(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x6f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x70(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x71(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x72(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x73(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x74(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x75(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x76(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x77(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x78(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x79(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x7f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x80(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x81(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x82(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x83(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x84(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x85(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x86(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x87(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x88(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x89(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x8f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x90(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x91(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x92(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x93(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x94(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x95(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x96(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x97(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x98(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x99(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0x9f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xa9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xaa(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xab(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xac(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xad(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xae(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xaf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xb9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xba(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbe(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xbf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xc9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xca(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xce(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xcf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xd9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xda(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xde(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xdf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xe9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xea(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xeb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xec(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xed(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xee(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xef(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xf9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfa(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x05) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xfe(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod1or2EffectAddress_sib0xff(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x00(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x01(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x02(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x03(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x04(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x05(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x00) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x06(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x07(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x08(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x09(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x01) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x0f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x10(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x11(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x12(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x13(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x14(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x15(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x02) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x16(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x17(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x18(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x19(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x03) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x1f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x20(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x21(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x22(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x23(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x24(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x25(BX_CPU_C *icpu,bxInstruction_c *i) { // d32, no registers used RMAddr(i) = i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x26(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x27(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x28(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x29(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x05) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x2f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x30(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x31(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x32(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x33(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x34(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x35(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x06) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x36(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x37(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x38(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x39(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x07) <<0x00) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x3f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x40(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x41(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x42(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x43(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x44(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x45(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x00) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x46(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x47(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x48(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x49(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x01) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x4f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x50(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x51(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x52(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x53(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x54(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x55(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x02) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x56(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x57(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x58(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x59(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x03) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x5f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x60(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x61(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x62(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x63(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x64(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x65(BX_CPU_C *icpu,bxInstruction_c *i) { // d32, no registers used RMAddr(i) = i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x66(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x67(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x68(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x69(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x05) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x6f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x70(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x71(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x72(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x73(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x74(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x75(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x06) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x76(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x77(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x78(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x79(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x07) <<0x01) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x7f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x80(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x81(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x82(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x83(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x84(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x85(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x00) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x86(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x87(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x88(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x89(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x01) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x8f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x90(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x91(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x92(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x93(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x94(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x95(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x02) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x96(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x97(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x98(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x99(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9a(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9b(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9c(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9d(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x03) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9e(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0x9f(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa5(BX_CPU_C *icpu,bxInstruction_c *i) { // d32, no registers used RMAddr(i) = i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xa9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xaa(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xab(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xac(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xad(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x05) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xae(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xaf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x06) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xb9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xba(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x07) <<0x02) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbe(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xbf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x00) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x00) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xc9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xca(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x01) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xce(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xcf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x01) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x02) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x02) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xd9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xda(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x03) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xde(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xdf(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x03) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe5(BX_CPU_C *icpu,bxInstruction_c *i) { // d32, no registers used RMAddr(i) = i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xe9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xea(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xeb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xec(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xed(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x05) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xee(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xef(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x05) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf0(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf1(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf2(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf3(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf4(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf5(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x06) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf6(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf7(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x06) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf8(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x00) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xf9(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x01) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfa(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x02) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfb(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x03) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfc(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x04) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfd(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = (READ_VIRTUAL_32BIT_REG(0x07) <<0x03) + i->displ32u; } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xfe(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x06) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } void BX_CPU_C::Resolve32Mod0EffectAddress_sib0xff(BX_CPU_C *icpu,bxInstruction_c *i) { RMAddr(i) = READ_VIRTUAL_32BIT_REG(0x07) + (READ_VIRTUAL_32BIT_REG(0x07) <<0x03); } ================================================ FILE: Project/IntelCPU/Source/seg.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: segment_ctrl.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::MOV_EwSw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u seg_reg; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_EwSw: incomplete for CPU < 3")); #endif if (MODRMnnn(i)>=0x06) { BX_PANIC(("MOV_EwSw: incomplete MODRMnnn(i) >= 6")); UndefinedOpcode(icpu,i); } seg_reg = BX_CPU_CLASS_PTR program_visible_sregs[MODRMnnn(i)].selector.value; if (i->modC0()) { // ??? WRITE_VIRTUAL_16BIT_REG(mem_addr, seg_reg); if ( i->size_mode.os_32 ) { // mov eax,ds WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), seg_reg); } else { //mov ax,ds WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), seg_reg); } } else { BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &seg_reg); } } void BX_CPU_C::MOV_SwEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op2_16; #if BX_CPU_LEVEL < 3 BX_PANIC(("MOV_SwEw: incomplete for CPU < 3")); #endif if (MODRMnnn(i)>=6||MODRMnnn(i)==1) { BX_PANIC(("MOV_EwSw: incomplete MODRMnnn(i) >= 6 or MODRMnnn(i) ==1")); UndefinedOpcode(icpu,i); } if (i->modC0()) { op2_16 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &op2_16); } BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[MODRMnnn(i)], op2_16); if (MODRMnnn(i) == BX_SEG_REG_SS) { // MOV SS inhibits interrupts, debug exceptions and single-step // trap exceptions until the execution boundary following the // next instruction is reached. // Same code as POP_SS() BX_CPU_CLASS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS | BX_INHIBIT_DEBUG; BX_CPU_CLASS_PTR async_event = 1; } } void BX_CPU_C::PUSH_CS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); else BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value); } void BX_CPU_C::PUSH_DS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value); else BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value); } void BX_CPU_C::PUSH_ES(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value); else BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value); } void BX_CPU_C::PUSH_FS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value); else BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value); } void BX_CPU_C::PUSH_GS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value); else BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value); } void BX_CPU_C::PUSH_SS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value); else BX_CPU_CLASS_PTR push_16(BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value); } void BX_CPU_C::POP_DS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u ds; BX_CPU_CLASS_PTR pop_32(&ds); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS], (Bit16u) ds); } else { /* 16 bit operand size */ Bit16u ds; BX_CPU_CLASS_PTR pop_16(&ds); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS], ds); } } void BX_CPU_C::POP_ES(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u es; BX_CPU_CLASS_PTR pop_32(&es); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES], (Bit16u) es); } else { /* 16 bit operand size */ Bit16u es; BX_CPU_CLASS_PTR pop_16(&es); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES], es); } } void BX_CPU_C::POP_FS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u fs; BX_CPU_CLASS_PTR pop_32(&fs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_FS], (Bit16u) fs); } else { /* 16 bit operand size */ Bit16u fs; BX_CPU_CLASS_PTR pop_16(&fs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_FS], fs); } } void BX_CPU_C::POP_GS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u gs; BX_CPU_CLASS_PTR pop_32(&gs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_GS], (Bit16u) gs); } else { /* 16 bit operand size */ Bit16u gs; BX_CPU_CLASS_PTR pop_16(&gs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_GS], gs); } } void BX_CPU_C::POP_SS(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u ss; BX_CPU_CLASS_PTR pop_32(&ss); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS], (Bit16u) ss); } else { /* 16 bit operand size */ Bit16u ss; BX_CPU_CLASS_PTR pop_16(&ss); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS], ss); } // POP SS inhibits interrupts, debug exceptions and single-step // trap exceptions until the execution boundary following the // next instruction is reached. // Same code as MOV_SwEw() BX_CPU_CLASS_PTR inhibit_mask |= BX_INHIBIT_INTERRUPTS | BX_INHIBIT_DEBUG; BX_CPU_CLASS_PTR async_event = 1; } void BX_CPU_C::LES_GvMp(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->modC0()) { // (BW) NT seems to use this when booting. BX_INFO(("invalid use of LES, must use memory reference!")); UndefinedOpcode(icpu,i); } #if BX_CPU_LEVEL > 2 if (i->size_mode.os_32) { /* 32 bit operand size */ Bit16u es; Bit32u reg_32; BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), ®_32); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 4, &es); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES], es); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), reg_32); } else #endif /* BX_CPU_LEVEL > 2 */ { /* 16 bit mode */ Bit16u reg_16, es; BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), ®_16); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 2, &es); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_ES], es); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), reg_16); } } void BX_CPU_C::LDS_GvMp(BX_CPU_C *icpu,bxInstruction_c *i) { if (i->modC0()) { BX_PANIC(("invalid use of LDS, must use memory reference!")); UndefinedOpcode(icpu,i); } #if BX_CPU_LEVEL > 2 if (i->size_mode.os_32) { /* 32 bit operand size */ Bit16u ds; Bit32u reg_32; BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), ®_32); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 4, &ds); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS], ds); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), reg_32); } else #endif /* BX_CPU_LEVEL > 2 */ { /* 16 bit mode */ Bit16u reg_16, ds; BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), ®_16); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 2, &ds); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_DS], ds); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), reg_16); } } void BX_CPU_C::LFS_GvMp(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("lfs_gvmp: not supported on 8086")); #else /* 386+ */ if (i->modC0()) { BX_PANIC(("invalid use of LFS, must use memory reference!")); UndefinedOpcode(icpu,i); } if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u reg_32; Bit16u fs; BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), ®_32); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 4, &fs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_FS], fs); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), reg_32); } else { /* 16 bit operand size */ Bit16u reg_16; Bit16u fs; BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), ®_16); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 2, &fs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_FS], fs); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), reg_16); } #endif } void BX_CPU_C::LGS_GvMp(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("lgs_gvmp: not supported on 8086")); #else /* 386+ */ if (i->modC0()) { BX_PANIC(("invalid use of LGS, must use memory reference!")); UndefinedOpcode(icpu,i); } if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u reg_32; Bit16u gs; BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), ®_32); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 4, &gs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_GS], gs); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), reg_32); } else { /* 16 bit operand size */ Bit16u reg_16; Bit16u gs; BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), ®_16); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 2, &gs); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_GS], gs); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), reg_16); } #endif } void BX_CPU_C::LSS_GvMp(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 BX_PANIC(("lss_gvmp: not supported on 8086")); #else /* 386+ */ if (i->modC0()) { BX_PANIC(("invalid use of LSS, must use memory reference!")); UndefinedOpcode(icpu,i); } if (i->size_mode.os_32) { /* 32 bit operand size */ Bit32u reg_32; Bit16u ss_raw; BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), ®_32); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 4, &ss_raw); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS], ss_raw); WRITE_VIRTUAL_32BIT_REG(MODRMnnn(i), reg_32); } else { /* 16 bit operand size */ Bit16u reg_16; Bit16u ss_raw; BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), ®_16); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i) + 2, &ss_raw); BX_CPU_CLASS_PTR load_seg_reg(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS], ss_raw); WRITE_VIRTUAL_16BIT_REG(MODRMnnn(i), reg_16); } #endif } ================================================ FILE: Project/IntelCPU/Source/seg_pro.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: segment_ctrl_pro.cc,v 1.11 2001/11/13 05:11:41 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" Bit8u AR_BYTE_READ[0x20] = //read { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, }; Bit8u AR_BYTE_READWRITE[0x20] = //read write { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, }; void BX_CPU_C::load_seg_reg(bx_segment_reg_t *seg, Bit16u new_value) { #if BX_CPU_LEVEL >= 2 if (protected_mode()) { if (seg == &BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_SS]) { Bit16u index; Bit8u ti; Bit8u rpl; bx_descriptor_t descriptor; Bit32u dword1, dword2; if ((new_value & 0xfffc) == 0) { /* null selector */ BX_PANIC(("load_seg_reg: SS: new_value == 0")); exception(BX_GP_EXCEPTION, 0, 0); return; } index = new_value >> 3; ti = (new_value >> 2) & 0x01; rpl = (new_value & 0x03); /* examine AR byte of destination selector for legal values: */ if (ti == 0) { /* GDT */ if ((index*8 + 7) > BX_CPU_THIS_PTR gdtr.limit) { BX_PANIC(("load_seg_reg: GDT: %s: index(%04x*8+7) > limit(%06x)", BX_CPU_THIS_PTR strseg(seg), (unsigned) index, (unsigned) BX_CPU_THIS_PTR gdtr.limit)); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + index*8, 4, 0, BX_READ, &dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + index*8 + 4, 4, 0, BX_READ, &dword2); } else { /* LDT */ if (BX_CPU_THIS_PTR ldtr.cache.valid==0) { /* ??? */ BX_ERROR(("load_seg_reg: LDT invalid")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } if ((index*8 + 7) > BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit) { BX_ERROR(("load_seg_reg ss: LDT: index > limit")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + index*8, 4, 0, BX_READ, &dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + index*8 + 4, 4, 0, BX_READ, &dword2); } /* selector's RPL must = CPL, else #GP(selector) */ if (rpl != CPL) { BX_ERROR(("load_seg_reg(): rpl != CPL")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } parse_descriptor(dword1, dword2, &descriptor); /* AR byte must indicate a writable data segment else #GP(selector) */ if (AR_BYTE_READWRITE[descriptor.AR_byte&0x1f]==0) { BX_ERROR(("load_seg_reg(): not writable data segment")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return ; } /* DPL in the AR byte must equal CPL else #GP(selector) */ if (descriptor.dpl != CPL) { BX_ERROR(("load_seg_reg(): dpl != CPL")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); } /* segment must be marked PRESENT else #SS(selector) */ if (descriptor.p == 0) { BX_ERROR(("load_seg_reg(): not present")); exception(BX_SS_EXCEPTION, new_value & 0xfffc, 0); } /* load SS with selector, load SS cache with descriptor */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = new_value; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.index = index; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.ti = ti; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl = rpl; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache = descriptor; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = 1; /* now set accessed bit in descriptor */ dword2 |= 0x0100; if (ti == 0) { /* GDT */ BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + index*8 + 4, 4, 0, BX_WRITE, &dword2); } else { /* LDT */ BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + index*8 + 4, 4, 0, BX_WRITE, &dword2); } return; } else { Bit16u index; Bit8u ti; Bit8u rpl; bx_descriptor_t descriptor; Bit32u dword1, dword2; if ((new_value & 0xfffc) == 0) { /* null selector */ seg->selector.index = 0; seg->selector.ti = 0; seg->selector.rpl = 0; seg->selector.value = 0; seg->cache.valid = 0; /* invalidate null selector */ return; } index = new_value >> 3; ti = (new_value >> 2) & 0x01; rpl = (new_value & 0x03); /* selector index must be within descriptor limits, else #GP(selector) */ if (ti == 0) { /* GDT */ if ((index*8 + 7) > BX_CPU_THIS_PTR gdtr.limit) { BX_ERROR(("load_seg_reg: GDT: %s: index(%04x) > limit(%06x)", BX_CPU_THIS_PTR strseg(seg), (unsigned) index, (unsigned) BX_CPU_THIS_PTR gdtr.limit)); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + index*8, 4, 0, BX_READ, &dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + index*8 + 4, 4, 0, BX_READ, &dword2); } else { /* LDT */ if (BX_CPU_THIS_PTR ldtr.cache.valid==0) { BX_ERROR(("load_seg_reg: LDT invalid")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } if ((index*8 + 7) > BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit) { BX_ERROR(("load_seg_reg ds,es: LDT: index > limit")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + index*8, 4, 0, BX_READ, &dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + index*8 + 4, 4, 0, BX_READ, &dword2); } parse_descriptor(dword1, dword2, &descriptor); /* AR byte must indicate data or readable code segment else #GP(selector) */ if (AR_BYTE_READ[descriptor.AR_byte&0x1f]==0) { BX_ERROR(("load_seg_reg(): not data or readable code")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } /* If data or non-conforming code, then both the RPL and the CPL * must be less than or equal to DPL in AR byte else #GP(selector) */ if ((descriptor.AR_byte&0x0c)!=0x0c) { if ((rpl > descriptor.dpl) || (CPL > descriptor.dpl)) { BX_ERROR(("load_seg_reg: RPL & CPL must be <= DPL")); exception(BX_GP_EXCEPTION, new_value & 0xfffc, 0); return; } } /* segment must be marked PRESENT else #NP(selector) */ if (descriptor.p == 0) { BX_ERROR(("load_seg_reg: segment not present")); exception(BX_NP_EXCEPTION, new_value & 0xfffc, 0); return; } /* load segment register with selector */ /* load segment register-cache with descriptor */ seg->selector.value = new_value; seg->selector.index = index; seg->selector.ti = ti; seg->selector.rpl = rpl; seg->cache = descriptor; seg->cache.valid = 1; /* now set accessed bit in descriptor */ /* wmr: don't bother if it's already set (thus allowing */ /* GDT to be in read-only pages like real hdwe does) */ if (!(dword2 & 0x0100)) { dword2 |= 0x0100; if (ti == 0) { /* GDT */ BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + index*8 + 4, 4, 0, BX_WRITE, &dword2); } else { /* LDT */ BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + index*8 + 4, 4, 0, BX_WRITE, &dword2); } } return; } } else { // real mode and vm86 mode // seg->limit = ; ??? different behaviours depening on seg reg. // something about honoring previous values // ??? don't need to set all these fields if (seg == &BX_CPU_THIS_PTR program_visible_sregs[BX_SREG_CS]) { seg->cache.AR_byte = 0x93; seg->cache.type = 3; seg->cache.u.segment.c_ed = 0; } seg->selector.value = new_value; seg->cache.u.segment.base = new_value << 4; } #else /* 8086 */ seg->selector.value = new_value; seg->cache.u.segment.base = new_value << 4; #endif #if BX_SupportICache BX_CPU_THIS_PTR iCache.fetchModeMask = BX_CPU_THIS_PTR iCache.createFetchModeMask(BX_CPU_THIS); #endif } #if BX_CPU_LEVEL >= 2 void BX_CPU_C::parse_selector(Bit16u raw_selector, bx_selector_t *selector) { selector->value = raw_selector; selector->index = raw_selector >> 3; selector->ti = (raw_selector >> 2) & 0x01; selector->rpl = raw_selector & 0x03; } #endif void BX_CPU_C::parse_descriptor(Bit32u dword1, Bit32u dword2, bx_descriptor_t *temp) { Bit8u AR_byte; temp->AR_byte = dword2 >> 8; AR_byte = dword2 >> 8; temp->p = (AR_byte >> 7) & 0x01; temp->dpl = (AR_byte >> 5) & 0x03; temp->segment = (AR_byte >> 4) & 0x01; temp->type = (AR_byte & 0x0f); temp->valid = 0; /* start out invalid */ if (temp->segment) { /* data/code segment descriptors */ temp->u.segment.executable = (AR_byte >> 3) & 0x01; temp->u.segment.c_ed = (AR_byte >> 2) & 0x01; temp->u.segment.r_w = (AR_byte >> 1) & 0x01; temp->u.segment.a = (AR_byte >> 0) & 0x01; temp->u.segment.limit = (dword1 & 0xffff); temp->u.segment.base = (dword1 >> 16) | ((dword2 & 0xFF) << 16); #if BX_CPU_LEVEL >= 3 temp->u.segment.limit |= (dword2 & 0x000F0000); temp->u.segment.g = (dword2 & 0x00800000) > 0; temp->u.segment.d_b = (dword2 & 0x00400000) > 0; temp->u.segment.avl = (dword2 & 0x00100000) > 0; temp->u.segment.base |= (dword2 & 0xFF000000); if (temp->u.segment.g) { if ( (temp->u.segment.executable==0) && (temp->u.segment.c_ed) ) temp->u.segment.limit_scaled = (temp->u.segment.limit << 12); else temp->u.segment.limit_scaled = (temp->u.segment.limit << 12) | 0x0fff; } else #endif temp->u.segment.limit_scaled = temp->u.segment.limit; temp->valid = 1; } else { // system & gate segment descriptors switch ( temp->type ) { case 0: // reserved case 8: // reserved case 10: // reserved case 13: // reserved temp->valid = 0; break; case 1: // 286 TSS (available) case 3: // 286 TSS (busy) temp->u.tss286.base = (dword1 >> 16) | ((dword2 & 0xff) << 16); temp->u.tss286.limit = (dword1 & 0xffff); temp->valid = 1; break; case 2: // LDT descriptor temp->u.ldt.base = (dword1 >> 16) | ((dword2 & 0xFF) << 16); #if BX_CPU_LEVEL >= 3 temp->u.ldt.base |= (dword2 & 0xff000000); #endif temp->u.ldt.limit = (dword1 & 0xffff); temp->valid = 1; break; case 4: // 286 call gate case 6: // 286 interrupt gate case 7: // 286 trap gate /* word count only used for call gate */ temp->u.gate286.word_count = dword2 & 0x1f; temp->u.gate286.dest_selector = dword1 >> 16;; temp->u.gate286.dest_offset = dword1 & 0xffff; temp->valid = 1; break; case 5: // 286/386 task gate temp->u.taskgate.tss_selector = dword1 >> 16;; temp->valid = 1; break; #if BX_CPU_LEVEL >= 3 case 9: // 386 TSS (available) case 11: // 386 TSS (busy) temp->u.tss386.base = (dword1 >> 16) | ((dword2 & 0xff) << 16) | (dword2 & 0xff000000); temp->u.tss386.limit = (dword1 & 0x0000ffff) | (dword2 & 0x000f0000); temp->u.tss386.g = (dword2 & 0x00800000) > 0; temp->u.tss386.avl = (dword2 & 0x00100000) > 0; if (temp->u.tss386.g) temp->u.tss386.limit_scaled = (temp->u.tss386.limit << 12) | 0x0fff; else temp->u.tss386.limit_scaled = temp->u.tss386.limit; temp->valid = 1; break; case 12: // 386 call gate case 14: // 386 interrupt gate case 15: // 386 trap gate // word count only used for call gate temp->u.gate386.dword_count = dword2 & 0x1f; temp->u.gate386.dest_selector = dword1 >> 16;; temp->u.gate386.dest_offset = (dword2 & 0xffff0000) | (dword1 & 0x0000ffff); temp->valid = 1; break; #endif default: BX_PANIC(("parse_descriptor(): case %d unfinished", (unsigned) temp->type)); temp->valid = 0; } } } void BX_CPU_C::load_ldtr(bx_selector_t *selector, bx_descriptor_t *descriptor) { /* check for null selector, if so invalidate LDTR */ if ( (selector->value & 0xfffc)==0 ) { BX_CPU_THIS_PTR ldtr.selector = *selector; BX_CPU_THIS_PTR ldtr.cache.valid = 0; return; } if (!descriptor) BX_PANIC(("load_ldtr(): descriptor == NULL!")); BX_CPU_THIS_PTR ldtr.cache = *descriptor; /* whole structure copy */ BX_CPU_THIS_PTR ldtr.selector = *selector; if (BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit < 7) { BX_PANIC(("load_ldtr(): ldtr.limit < 7")); } BX_CPU_THIS_PTR ldtr.cache.valid = 1; } void BX_CPU_C::load_cs(bx_selector_t *selector, bx_descriptor_t *descriptor, Bit8u cpl) { BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector = *selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache = *descriptor; /* caller may request different CPL then in selector */ BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl = cpl; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid = 1; /* ??? */ // (BW) Added cpl to the selector value. BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = (0xfffc & BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value) | cpl; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.cpl__3 = (cpl==3); #if BX_SupportICache BX_CPU_THIS_PTR iCache.fetchModeMask = BX_CPU_THIS_PTR iCache.createFetchModeMask(BX_CPU_THIS); #endif } void BX_CPU_C::load_ss(bx_selector_t *selector, bx_descriptor_t *descriptor, Bit8u cpl) { BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector = *selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache = *descriptor; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl = cpl; if ( (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value & 0xfffc) == 0 ) BX_PANIC(("load_ss(): null selector passed")); if ( !BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid ) { BX_PANIC(("load_ss(): invalid selector/descriptor passed.")); } } #if BX_CPU_LEVEL >= 2 void BX_CPU_C::fetch_raw_descriptor(bx_selector_t *selector, Bit32u *dword1, Bit32u *dword2, Bit8u exception_no) { if (selector->ti == 0) { /* GDT */ if ((selector->index*8 + 7) > BX_CPU_THIS_PTR gdtr.limit) { BX_INFO(("-----------------------------------")); BX_INFO(("selector->index*8 + 7 = %u", (unsigned) selector->index*8 + 7)); BX_INFO(("gdtr.limit = %u", (unsigned) BX_CPU_THIS_PTR gdtr.limit)); BX_INFO(("fetch_raw_descriptor: GDT: index > limit")); debug(BX_CPU_THIS_PTR prev_eip); BX_INFO(("-----------------------------------")); exception(exception_no, selector->value & 0xfffc, 0); return; } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + selector->index*8, 4, 0, BX_READ, dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + selector->index*8 + 4, 4, 0, BX_READ, dword2); } else { /* LDT */ if (BX_CPU_THIS_PTR ldtr.cache.valid==0) { BX_PANIC(("fetch_raw_descriptor: LDTR.valid=0")); exception(exception_no, selector->value & 0xfffc, 0); return; } if ((selector->index*8 + 7) > BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit) { BX_PANIC(("fetch_raw_descriptor: LDT: index > limit")); exception(exception_no, selector->value & 0xfffc, 0); return; } BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + selector->index*8, 4, 0, BX_READ, dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + selector->index*8 + 4, 4, 0, BX_READ, dword2); } } #endif Boolean BX_CPU_C::fetch_raw_descriptor2(bx_selector_t *selector, Bit32u *dword1, Bit32u *dword2) { if (selector->ti == 0) { /* GDT */ if ((selector->index*8 + 7) > BX_CPU_THIS_PTR gdtr.limit) return(0); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + selector->index*8, 4, 0, BX_READ, dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + selector->index*8 + 4, 4, 0, BX_READ, dword2); return(1); } else { /* LDT */ if (BX_CPU_THIS_PTR ldtr.cache.valid==0) return(0); if ((selector->index*8 + 7) > BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit) return(0); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + selector->index*8, 4, 0, BX_READ, dword1); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR ldtr.cache.u.ldt.base + selector->index*8 + 4, 4, 0, BX_READ, dword2); return(1); } } ================================================ FILE: Project/IntelCPU/Source/shift.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: shift.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ λָ //--------------------------------------------------------- // shift dst(r/m), src(i8/1/cl) // src <-- i8 | b1: 0xc0/0xc1 // src <-- 1 | b1: 0xd0/0xd1 // src <-- cl | b1: 0xd2/0xd3 // shift double dst(r/m),src(r), src(i8/cl) // src <-- i8 | b1: 0x1a4 // src <-- cl | b1: 0x1a5 void BX_CPU_C::ROL_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; i->execute = BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROL_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; i->execute = BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROL_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; i->execute = BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROR_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; i->execute = BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROR_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; i->execute = BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROR_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; i->execute = BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCL_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; i->execute = BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCL_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; i->execute = BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCL_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; i->execute = BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCR_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; i->execute = BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCR_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; i->execute = BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCR_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; i->execute = BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHL_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; i->execute = BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHL_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; i->execute = BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHL_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; i->execute = BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHR_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; i->execute = BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHR_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; i->execute = BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHR_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; i->execute = BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SAR_EGb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Eb[count].count; i->execute = BxOpcodeShiftTableG_SA__Eb[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SAR_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ew[count].count; i->execute = BxOpcodeShiftTableG_SA__Ew[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SAR_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ed[count].count; i->execute = BxOpcodeShiftTableG_SA__Ed[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROL_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; i->execute = BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROL_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; i->execute = BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROL_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; i->execute = BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROR_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; i->execute = BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROR_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; i->execute = BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROR_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; i->execute = BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCL_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; i->execute = BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCL_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; i->execute = BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCL_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; i->execute = BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCR_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; i->execute = BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCR_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; i->execute = BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::RCR_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; i->execute = BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHL_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; i->execute = BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHL_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; i->execute = BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHL_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; i->execute = BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHR_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; i->execute = BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHR_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; i->execute = BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHR_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; i->execute = BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SAR_EEb(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Eb[count].count; i->execute = BxOpcodeShiftTableG_SA__Eb[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SAR_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ew[count].count; i->execute = BxOpcodeShiftTableG_SA__Ew[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SAR_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ed[count].count; i->execute = BxOpcodeShiftTableG_SA__Ed[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHLD_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHLD_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftL_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHRD_EGwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHRD_EGdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftR_EG; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHLD_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHLD_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftL_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHRD_EEwGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::SHRD_EEdGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = IMMEDIATEIb(i)&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; i->execute = BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftR_EE; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->execute, (icpu,i)); } void BX_CPU_C::ROL_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::ROL_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::ROL_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::ROR_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::ROR_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::ROR_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::RCL_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::RCL_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::RCL_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::RCR_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::RCR_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::RCR_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SHL_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::SHL_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::SHL_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::SHR_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SHR_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SHR_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SAR_EGbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SA__Eb[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SAR_EGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SA__Ew[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SAR_EGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SA__Ed[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::ROL_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::ROL_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::ROL_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::ROR_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Eb[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::ROR_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ew[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::ROR_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RO__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RO__Ed[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::RCL_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::RCL_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::RCL_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::RCR_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Eb[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::RCR_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ew[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::RCR_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_RC__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_RC__Ed[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SHL_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::SHL_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::SHL_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::SHR_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Eb[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SHR_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ew[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SHR_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH__Ed[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SAR_EEbCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Eb[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SA__Eb[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SAR_EEwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ew[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SA__Ew[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SAR_EEdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SA__Ed[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SA__Ed[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SHLD_EGwGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::SHLD_EGdGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftL_EG,(icpu,i)); } void BX_CPU_C::SHRD_EGwGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SHRD_EGdGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftR_EG,(icpu,i)); } void BX_CPU_C::SHLD_EEwGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::SHLD_EEdGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftL_EE,(icpu,i)); } void BX_CPU_C::SHRD_EEwGwCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EwGw[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EwGw[count].shift_fun->shiftR_EE,(icpu,i)); } void BX_CPU_C::SHRD_EEdGdCL(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; count = RW_CL&0x1f; IMMEDIATEIb(i) = count; i->Word.shift = BxOpcodeShiftTableG_SH_D_EdGd[count].count; //call method on BX_CPU_C object BX_CPU_CALL_METHOD(BxOpcodeShiftTableG_SH_D_EdGd[count].shift_fun->shiftR_EE,(icpu,i)); } ================================================ FILE: Project/IntelCPU/Source/shift_pr.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: shift_pro.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ λָ //--------------------------------------------------------- // shift dst(r/m), src(i8/1/cl) // src <-- i8 | b1: 0xc0/0xc1 // src <-- 1 | b1: 0xd0/0xd1 // src <-- cl | b1: 0xd2/0xd3 // shift double dst(r/m),src(r), src(i8/cl) // src <-- i8 | b1: 0x1a4 // src <-- cl | b1: 0x1a5 void BX_CPU_C::ROL_EGb_0( BX_CPU_C *icpu,bxInstruction_c *i) { } void BX_CPU_C::ROL_EGw_0( BX_CPU_C *icpu,bxInstruction_c *i) { } void BX_CPU_C::ROL_EGd_0( BX_CPU_C *icpu,bxInstruction_c *i) { } void BX_CPU_C::ROL_EEb_0( BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op); } void BX_CPU_C::ROL_EEw_0( BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op); } void BX_CPU_C::ROL_EEd_0( BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op); } void BX_CPU_C::ROL_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 << 1) | (op1 >> (8-1)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_ROL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 << 1) | (op1 >> (16-1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_ROL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 << 1) | (op1 >> (32-1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_ROL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> 1) | (op1 << (8-1)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_ROR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> 1) | (op1 << (16-1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_ROR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> 1) | (op1 << (32-1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_ROR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 << 1) | (BX_CPU_CLASS_PTR get_CF()); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_RCL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 << 1) | (BX_CPU_CLASS_PTR get_CF()); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_RCL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 << 1) | (BX_CPU_CLASS_PTR get_CF()); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_RCL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> 1) | (BX_CPU_CLASS_PTR get_CF() << (8 - 1)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_RCR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> 1) | (BX_CPU_CLASS_PTR get_CF() << (16 - 1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_RCR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> 1) | (BX_CPU_CLASS_PTR get_CF() << (32 - 1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_RCR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 << 1); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 << 1); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 << 1); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> 1); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> 1); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> 1); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EGb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> 1) | ((0-(op1>>(8-1))) << (8 - 1)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> 1) | ((0-(op1>>(16-1))) << (16 - 1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> 1) | ((0-(op1>>(32-1))) << (32 - 1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 << count) | (op1 >> (8-count)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_ROL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 << count) | (op1 >> (16-count)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_ROL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 << count) | (op1 >> (32-count)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_ROL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> count) | (op1 << (8-count)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_ROR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> count) | (op1 << (16-count)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_ROR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> count) | (op1 << (32-count)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_ROR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 << count) | (op1 >> ((8+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (count - 1)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_RCL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 << count) | (op1 >> ((16+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (count - 1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_RCL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 << count) | (op1 >> ((32+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (count - 1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_RCL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> count) | (op1 << ((8+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (8 - count)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_RCR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> count) | (op1 << ((16+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (16 - count)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_RCR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> count) | (op1 << ((32+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (32 - count)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_RCR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 << count); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 << count); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 << count); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> count); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> count); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> count); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EGb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_8BIT_REG(MODRMrm(i)); result = (op1 >> count) | ((0-(op1>>(8-1))) << (8 - count)); WRITE_VIRTUAL_8BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); result = (op1 >> count) | ((0-(op1>>(16-1))) << (16 - count)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); result = (op1 >> count) | ((0-(op1>>(32-1))) << (32 - count)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EGwGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 << 1) | (op2 >> (16 - 1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHLD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EGdGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 << 1) | (op2 >> (32 - 1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHLD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EGwGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 >> 1) | (op2 << (16 - 1)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHRD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EGdGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 >> 1) | (op2 << (32 - 1)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHRD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EGwGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 << count) | (op2 >> (16 - count)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHLD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EGdGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 << count) | (op2 >> (32 - count)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHLD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EGwGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 >> count) | (op2 << (16 - count)); WRITE_VIRTUAL_16BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHRD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EGdGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; op1 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 >> count) | (op2 << (32 - count)); WRITE_VIRTUAL_32BIT_REG(MODRMrm(i),result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHRD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1) | (op1 >> (8-1)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_ROL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1) | (op1 >> (16-1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_ROL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1) | (op1 >> (32-1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_ROL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | (op1 << (8-1)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_ROR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | (op1 << (16-1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_ROR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | (op1 << (32-1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_ROR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1) | (BX_CPU_CLASS_PTR get_CF()); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_RCL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1) | (BX_CPU_CLASS_PTR get_CF()); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_RCL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1) | (BX_CPU_CLASS_PTR get_CF()); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_RCL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | (BX_CPU_CLASS_PTR get_CF() << (8 - 1)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_8(op1,i->Word.shift,result,BX_INSTR_RCR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | (BX_CPU_CLASS_PTR get_CF() << (16 - 1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_16(op1,i->Word.shift,result,BX_INSTR_RCR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | (BX_CPU_CLASS_PTR get_CF() << (32 - 1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OC_32(op1,i->Word.shift,result,BX_INSTR_RCR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << 1); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EEb_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | ((0-(op1>>(8-1))) << (8 - 1)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EEw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | ((0-(op1>>(16-1))) << (16 - 1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EEd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> 1) | ((0-(op1>>(32-1))) << (32 - 1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count) | (op1 >> (8-count)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_ROL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count) | (op1 >> (16-count)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_ROL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROL_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count) | (op1 >> (32-count)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_ROL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | (op1 << (8-count)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_ROR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | (op1 << (16-count)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_ROR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::ROR_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | (op1 << (32-count)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_ROR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count ROR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count) | (op1 >> ((8+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (count - 1)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_RCL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count) | (op1 >> ((16+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (count - 1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_RCL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCL_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count) | (op1 >> ((32+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (count - 1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_RCL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | (op1 << ((8+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (8 - count)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_8(op1,i->Word.shift,result,BX_INSTR_RCR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | (op1 << ((16+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (16 - count)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_16(op1,i->Word.shift,result,BX_INSTR_RCR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::RCR_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | (op1 << ((32+1) - count)) | (BX_CPU_CLASS_PTR get_CF() << (32 - count)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XC_32(op1,i->Word.shift,result,BX_INSTR_RCR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count RCR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHL_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 << count); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHL32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHL op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHR_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SHR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SHR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EEb_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit8u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_BYTE(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | ((0-(op1>>(8-1))) << (8 - count)); WRITE_RMW_VIRTUAL_BYTE(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_8(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR8) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EEw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | ((0-(op1>>(16-1))) << (16 - count)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_16(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SAR_EEd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); result = (op1 >> count) | ((0-(op1>>(32-1))) << (32 - count)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET_FLAGS_XSZPC_32(op1,IMMEDIATEIb(i),result,BX_INSTR_SAR32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count SAR op1,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EEwGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 << 1) | (op2 >> (16 - 1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHLD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EEdGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 << 1) | (op2 >> (32 - 1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHLD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EEwGw_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 >> 1) | (op2 << (16 - 1)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHRD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EEdGd_1(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 >> 1) | (op2 << (32 - 1)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_OSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHRD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EEwGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 << count) | (op2 >> (16 - count)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHLD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHLD_EEdGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 << count) | (op2 >> (32 - count)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHLD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHLD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EEwGw_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit16u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_WORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); result = (op1 >> count) | (op2 << (16 - count)); WRITE_RMW_VIRTUAL_WORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_16(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD16) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov dx,op2 SHRD op1,dx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SHRD_EEdGd_n(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u count; Bit32u op1,op2,result; count = i->Word.shift; READ_RMW_VIRTUAL_DWORD(MODRMSeg(i),RMAddr(i),&op1); op2 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); result = (op1 >> count) | (op2 << (32 - count)); WRITE_RMW_VIRTUAL_DWORD(result); #if (HOST_CPU_IS_I80386==0) SET3_FLAGS_XSZPC_32(op1,op2,IMMEDIATEIb(i),result,BX_INSTR_SHRD32) #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags = BX_CPU_CLASS_PTR eflags.x86.eax; count = IMMEDIATEIb(i); __asm { mov eax,x86_lf_flags cmp al,0x81 sahf mov cl,count mov edx,op2 SHRD op1,edx,cl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } const BxOpcodeShiftFun_t BxOpcodeShiftFunG_RO__Eb[4] = { /* 0 */ {&BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EEb_0, &BX_CPU_C::ROL_EEb_0 }, /* 1 */ {&BX_CPU_C::ROL_EGb_1, &BX_CPU_C::ROR_EGb_1, &BX_CPU_C::ROL_EEb_1, &BX_CPU_C::ROR_EEb_1 }, /* 2 */ {&BX_CPU_C::ROL_EGb_n, &BX_CPU_C::ROR_EGb_n, &BX_CPU_C::ROL_EEb_n, &BX_CPU_C::ROR_EEb_n }, /* 3 */ {&BX_CPU_C::ROL_EGb_n, &BX_CPU_C::ROR_EGb_n, &BX_CPU_C::ROL_EEb_n, &BX_CPU_C::ROR_EEb_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RO__Eb[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_RO__Eb[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_RO__Eb[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_RO__Eb[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 8 */ { 0, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 9 */ { 1, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* a */ { 2, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* b */ { 3, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* c */ { 4, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* d */ { 5, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* e */ { 6, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* f */ { 7, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 10 */ { 0, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 11 */ { 1, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 12 */ { 2, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 13 */ { 3, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 14 */ { 4, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 15 */ { 5, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 16 */ { 6, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 17 */ { 7, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 18 */ { 0, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 19 */ { 1, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 1a */ { 2, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 1b */ { 3, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 1c */ { 4, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 1d */ { 5, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 1e */ { 6, &BxOpcodeShiftFunG_RO__Eb[ 3] }, /* 1f */ { 7, &BxOpcodeShiftFunG_RO__Eb[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_RO__Ew[4] = { /* 0 */ {&BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EEw_0, &BX_CPU_C::ROL_EEw_0 }, /* 1 */ {&BX_CPU_C::ROL_EGw_1, &BX_CPU_C::ROR_EGw_1, &BX_CPU_C::ROL_EEw_1, &BX_CPU_C::ROR_EEw_1 }, /* 2 */ {&BX_CPU_C::ROL_EGw_n, &BX_CPU_C::ROR_EGw_n, &BX_CPU_C::ROL_EEw_n, &BX_CPU_C::ROR_EEw_n }, /* 3 */ {&BX_CPU_C::ROL_EGw_n, &BX_CPU_C::ROR_EGw_n, &BX_CPU_C::ROL_EEw_n, &BX_CPU_C::ROR_EEw_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RO__Ew[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_RO__Ew[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_RO__Ew[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_RO__Ew[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 10 */ { 0, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 11 */ { 1, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 12 */ { 2, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 13 */ { 3, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 14 */ { 4, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 15 */ { 5, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 16 */ { 6, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 17 */ { 7, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 18 */ { 8, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 19 */ { 9, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 1a */ { 10, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 1b */ { 11, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 1c */ { 12, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 1d */ { 13, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 1e */ { 14, &BxOpcodeShiftFunG_RO__Ew[ 3] }, /* 1f */ { 15, &BxOpcodeShiftFunG_RO__Ew[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_RO__Ed[4] = { /* 0 */ {&BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EEd_0, &BX_CPU_C::ROL_EEd_0 }, /* 1 */ {&BX_CPU_C::ROL_EGd_1, &BX_CPU_C::ROR_EGd_1, &BX_CPU_C::ROL_EEd_1, &BX_CPU_C::ROR_EEd_1 }, /* 2 */ {&BX_CPU_C::ROL_EGd_n, &BX_CPU_C::ROR_EGd_n, &BX_CPU_C::ROL_EEd_n, &BX_CPU_C::ROR_EEd_n }, /* 3 */ {&BX_CPU_C::ROL_EGd_n, &BX_CPU_C::ROR_EGd_n, &BX_CPU_C::ROL_EEd_n, &BX_CPU_C::ROR_EEd_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RO__Ed[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_RO__Ed[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_RO__Ed[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_RO__Ed[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 11 */ { 17, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 12 */ { 18, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 13 */ { 19, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 14 */ { 20, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 15 */ { 21, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 16 */ { 22, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 17 */ { 23, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 18 */ { 24, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 19 */ { 25, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 1a */ { 26, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 1b */ { 27, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 1c */ { 28, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 1d */ { 29, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 1e */ { 30, &BxOpcodeShiftFunG_RO__Ed[ 3] }, /* 1f */ { 31, &BxOpcodeShiftFunG_RO__Ed[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_RC__Eb[4] = { /* 0 */ {&BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EEb_0, &BX_CPU_C::ROL_EEb_0 }, /* 1 */ {&BX_CPU_C::RCL_EGb_1, &BX_CPU_C::RCR_EGb_1, &BX_CPU_C::RCL_EEb_1, &BX_CPU_C::RCR_EEb_1 }, /* 2 */ {&BX_CPU_C::RCL_EGb_n, &BX_CPU_C::RCR_EGb_n, &BX_CPU_C::RCL_EEb_n, &BX_CPU_C::RCR_EEb_n }, /* 3 */ {&BX_CPU_C::RCL_EGb_n, &BX_CPU_C::RCR_EGb_n, &BX_CPU_C::RCL_EEb_n, &BX_CPU_C::RCR_EEb_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RC__Eb[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_RC__Eb[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_RC__Eb[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_RC__Eb[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 9 */ { 0, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* a */ { 1, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* b */ { 2, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* c */ { 3, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* d */ { 4, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* e */ { 5, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* f */ { 6, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 10 */ { 7, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 11 */ { 8, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 12 */ { 0, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 13 */ { 1, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 14 */ { 2, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 15 */ { 3, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 16 */ { 4, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 17 */ { 5, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 18 */ { 6, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 19 */ { 7, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 1a */ { 8, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 1b */ { 0, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 1c */ { 1, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 1d */ { 2, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 1e */ { 3, &BxOpcodeShiftFunG_RC__Eb[ 3] }, /* 1f */ { 4, &BxOpcodeShiftFunG_RC__Eb[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_RC__Ew[4] = { /* 0 */ {&BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EEw_0, &BX_CPU_C::ROL_EEw_0 }, /* 1 */ {&BX_CPU_C::RCL_EGw_1, &BX_CPU_C::RCR_EGw_1, &BX_CPU_C::RCL_EEw_1, &BX_CPU_C::RCR_EEw_1 }, /* 2 */ {&BX_CPU_C::RCL_EGw_n, &BX_CPU_C::RCR_EGw_n, &BX_CPU_C::RCL_EEw_n, &BX_CPU_C::RCR_EEw_n }, /* 3 */ {&BX_CPU_C::RCL_EGw_n, &BX_CPU_C::RCR_EGw_n, &BX_CPU_C::RCL_EEw_n, &BX_CPU_C::RCR_EEw_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RC__Ew[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_RC__Ew[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_RC__Ew[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_RC__Ew[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 11 */ { 0, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 12 */ { 1, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 13 */ { 2, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 14 */ { 3, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 15 */ { 4, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 16 */ { 5, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 17 */ { 6, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 18 */ { 7, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 19 */ { 8, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 1a */ { 9, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 1b */ { 10, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 1c */ { 11, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 1d */ { 12, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 1e */ { 13, &BxOpcodeShiftFunG_RC__Ew[ 3] }, /* 1f */ { 14, &BxOpcodeShiftFunG_RC__Ew[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_RC__Ed[4] = { /* 0 */ {&BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EEd_0, &BX_CPU_C::ROL_EEd_0 }, /* 1 */ {&BX_CPU_C::RCL_EGd_1, &BX_CPU_C::RCR_EGd_1, &BX_CPU_C::RCL_EEd_1, &BX_CPU_C::RCR_EEd_1 }, /* 2 */ {&BX_CPU_C::RCL_EGd_n, &BX_CPU_C::RCR_EGd_n, &BX_CPU_C::RCL_EEd_n, &BX_CPU_C::RCR_EEd_n }, /* 3 */ {&BX_CPU_C::RCL_EGd_n, &BX_CPU_C::RCR_EGd_n, &BX_CPU_C::RCL_EEd_n, &BX_CPU_C::RCR_EEd_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_RC__Ed[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_RC__Ed[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_RC__Ed[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_RC__Ed[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 11 */ { 17, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 12 */ { 18, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 13 */ { 19, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 14 */ { 20, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 15 */ { 21, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 16 */ { 22, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 17 */ { 23, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 18 */ { 24, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 19 */ { 25, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 1a */ { 26, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 1b */ { 27, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 1c */ { 28, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 1d */ { 29, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 1e */ { 30, &BxOpcodeShiftFunG_RC__Ed[ 3] }, /* 1f */ { 31, &BxOpcodeShiftFunG_RC__Ed[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SH__Eb[4] = { /* 0 */ {&BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EEb_0, &BX_CPU_C::ROL_EEb_0 }, /* 1 */ {&BX_CPU_C::SHL_EGb_1, &BX_CPU_C::SHR_EGb_1, &BX_CPU_C::SHL_EEb_1, &BX_CPU_C::SHR_EEb_1 }, /* 2 */ {&BX_CPU_C::SHL_EGb_n, &BX_CPU_C::SHR_EGb_n, &BX_CPU_C::SHL_EEb_n, &BX_CPU_C::SHR_EEb_n }, /* 3 */ {&BX_CPU_C::SHL_EGb_n, &BX_CPU_C::SHR_EGb_n, &BX_CPU_C::SHL_EEb_n, &BX_CPU_C::SHR_EEb_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH__Eb[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SH__Eb[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SH__Eb[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SH__Eb[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 9 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* a */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* b */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* c */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* d */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* e */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* f */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 10 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 11 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 12 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 13 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 14 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 15 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 16 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 17 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 18 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 19 */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 1a */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 1b */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 1c */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 1d */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 1e */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] }, /* 1f */ { 8, &BxOpcodeShiftFunG_SH__Eb[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SH__Ew[4] = { /* 0 */ {&BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EEw_0, &BX_CPU_C::ROL_EEw_0 }, /* 1 */ {&BX_CPU_C::SHL_EGw_1, &BX_CPU_C::SHR_EGw_1, &BX_CPU_C::SHL_EEw_1, &BX_CPU_C::SHR_EEw_1 }, /* 2 */ {&BX_CPU_C::SHL_EGw_n, &BX_CPU_C::SHR_EGw_n, &BX_CPU_C::SHL_EEw_n, &BX_CPU_C::SHR_EEw_n }, /* 3 */ {&BX_CPU_C::SHL_EGw_n, &BX_CPU_C::SHR_EGw_n, &BX_CPU_C::SHL_EEw_n, &BX_CPU_C::SHR_EEw_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH__Ew[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SH__Ew[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SH__Ew[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SH__Ew[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 11 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 12 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 13 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 14 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 15 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 16 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 17 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 18 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 19 */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 1a */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 1b */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 1c */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 1d */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 1e */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] }, /* 1f */ { 16, &BxOpcodeShiftFunG_SH__Ew[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SH__Ed[4] = { /* 0 */ {&BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EEd_0, &BX_CPU_C::ROL_EEd_0 }, /* 1 */ {&BX_CPU_C::SHL_EGd_1, &BX_CPU_C::SHR_EGd_1, &BX_CPU_C::SHL_EEd_1, &BX_CPU_C::SHR_EEd_1 }, /* 2 */ {&BX_CPU_C::SHL_EGd_n, &BX_CPU_C::SHR_EGd_n, &BX_CPU_C::SHL_EEd_n, &BX_CPU_C::SHR_EEd_n }, /* 3 */ {&BX_CPU_C::SHL_EGd_n, &BX_CPU_C::SHR_EGd_n, &BX_CPU_C::SHL_EEd_n, &BX_CPU_C::SHR_EEd_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH__Ed[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SH__Ed[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SH__Ed[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SH__Ed[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 11 */ { 17, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 12 */ { 18, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 13 */ { 19, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 14 */ { 20, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 15 */ { 21, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 16 */ { 22, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 17 */ { 23, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 18 */ { 24, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 19 */ { 25, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 1a */ { 26, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 1b */ { 27, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 1c */ { 28, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 1d */ { 29, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 1e */ { 30, &BxOpcodeShiftFunG_SH__Ed[ 3] }, /* 1f */ { 31, &BxOpcodeShiftFunG_SH__Ed[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SA__Eb[4] = { /* 0 */ {&BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EGb_0, &BX_CPU_C::ROL_EEb_0, &BX_CPU_C::ROL_EEb_0 }, /* 1 */ {&BX_CPU_C::SHL_EGb_1, &BX_CPU_C::SAR_EGb_1, &BX_CPU_C::SHL_EEb_1, &BX_CPU_C::SAR_EEb_1 }, /* 2 */ {&BX_CPU_C::SHL_EGb_n, &BX_CPU_C::SAR_EGb_n, &BX_CPU_C::SHL_EEb_n, &BX_CPU_C::SAR_EEb_n }, /* 3 */ {&BX_CPU_C::SHL_EGb_n, &BX_CPU_C::SAR_EGb_n, &BX_CPU_C::SHL_EEb_n, &BX_CPU_C::SAR_EEb_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SA__Eb[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SA__Eb[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SA__Eb[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SA__Eb[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 9 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* a */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* b */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* c */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* d */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* e */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* f */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 10 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 11 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 12 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 13 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 14 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 15 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 16 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 17 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 18 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 19 */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 1a */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 1b */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 1c */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 1d */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 1e */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] }, /* 1f */ { 8, &BxOpcodeShiftFunG_SA__Eb[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SA__Ew[4] = { /* 0 */ {&BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EEw_0, &BX_CPU_C::ROL_EEw_0 }, /* 1 */ {&BX_CPU_C::SHL_EGw_1, &BX_CPU_C::SAR_EGw_1, &BX_CPU_C::SHL_EEw_1, &BX_CPU_C::SAR_EEw_1 }, /* 2 */ {&BX_CPU_C::SHL_EGw_n, &BX_CPU_C::SAR_EGw_n, &BX_CPU_C::SHL_EEw_n, &BX_CPU_C::SAR_EEw_n }, /* 3 */ {&BX_CPU_C::SHL_EGw_n, &BX_CPU_C::SAR_EGw_n, &BX_CPU_C::SHL_EEw_n, &BX_CPU_C::SAR_EEw_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SA__Ew[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SA__Ew[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SA__Ew[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SA__Ew[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 11 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 12 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 13 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 14 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 15 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 16 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 17 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 18 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 19 */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 1a */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 1b */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 1c */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 1d */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 1e */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] }, /* 1f */ { 16, &BxOpcodeShiftFunG_SA__Ew[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SA__Ed[4] = { /* 0 */ {&BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EEd_0, &BX_CPU_C::ROL_EEd_0 }, /* 1 */ {&BX_CPU_C::SHL_EGd_1, &BX_CPU_C::SAR_EGd_1, &BX_CPU_C::SHL_EEd_1, &BX_CPU_C::SAR_EEd_1 }, /* 2 */ {&BX_CPU_C::SHL_EGd_n, &BX_CPU_C::SAR_EGd_n, &BX_CPU_C::SHL_EEd_n, &BX_CPU_C::SAR_EEd_n }, /* 3 */ {&BX_CPU_C::SHL_EGd_n, &BX_CPU_C::SAR_EGd_n, &BX_CPU_C::SHL_EEd_n, &BX_CPU_C::SAR_EEd_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SA__Ed[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SA__Ed[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SA__Ed[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SA__Ed[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 11 */ { 17, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 12 */ { 18, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 13 */ { 19, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 14 */ { 20, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 15 */ { 21, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 16 */ { 22, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 17 */ { 23, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 18 */ { 24, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 19 */ { 25, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 1a */ { 26, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 1b */ { 27, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 1c */ { 28, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 1d */ { 29, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 1e */ { 30, &BxOpcodeShiftFunG_SA__Ed[ 3] }, /* 1f */ { 31, &BxOpcodeShiftFunG_SA__Ed[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SH_D_EwGw[4] = { /* 0 */ {&BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EGw_0, &BX_CPU_C::ROL_EEw_0, &BX_CPU_C::ROL_EEw_0 }, /* 1 */ {&BX_CPU_C::SHLD_EGwGw_1, &BX_CPU_C::SHRD_EGwGw_1, &BX_CPU_C::SHLD_EEwGw_1, &BX_CPU_C::SHRD_EEwGw_1 }, /* 2 */ {&BX_CPU_C::SHLD_EGwGw_n, &BX_CPU_C::SHRD_EGwGw_n, &BX_CPU_C::SHLD_EEwGw_n, &BX_CPU_C::SHRD_EEwGw_n }, /* 3 */ {&BX_CPU_C::SHLD_EGwGw_n, &BX_CPU_C::SHRD_EGwGw_n, &BX_CPU_C::SHLD_EEwGw_n, &BX_CPU_C::SHRD_EEwGw_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH_D_EwGw[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SH_D_EwGw[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SH_D_EwGw[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SH_D_EwGw[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 11 */ { 17, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 12 */ { 18, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 13 */ { 19, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 14 */ { 20, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 15 */ { 21, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 16 */ { 22, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 17 */ { 23, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 18 */ { 24, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 19 */ { 25, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 1a */ { 26, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 1b */ { 27, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 1c */ { 28, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 1d */ { 29, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 1e */ { 30, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] }, /* 1f */ { 31, &BxOpcodeShiftFunG_SH_D_EwGw[ 3] } }; const BxOpcodeShiftFun_t BxOpcodeShiftFunG_SH_D_EdGd[4] = { /* 0 */ {&BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EGd_0, &BX_CPU_C::ROL_EEd_0, &BX_CPU_C::ROL_EEd_0 }, /* 1 */ {&BX_CPU_C::SHLD_EGdGd_1, &BX_CPU_C::SHRD_EGdGd_1, &BX_CPU_C::SHLD_EEdGd_1, &BX_CPU_C::SHRD_EEdGd_1 }, /* 2 */ {&BX_CPU_C::SHLD_EGdGd_n, &BX_CPU_C::SHRD_EGdGd_n, &BX_CPU_C::SHLD_EEdGd_n, &BX_CPU_C::SHRD_EEdGd_n }, /* 3 */ {&BX_CPU_C::SHLD_EGdGd_n, &BX_CPU_C::SHRD_EGdGd_n, &BX_CPU_C::SHLD_EEdGd_n, &BX_CPU_C::SHRD_EEdGd_n }, }; const BxOpcodeShiftTable_t BxOpcodeShiftTableG_SH_D_EdGd[32] = { /* 0 */ { 0, &BxOpcodeShiftFunG_SH_D_EdGd[ 0] }, /* 1 */ { 1, &BxOpcodeShiftFunG_SH_D_EdGd[ 1] }, /* 2 */ { 2, &BxOpcodeShiftFunG_SH_D_EdGd[ 2] }, /* 3 */ { 3, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 4 */ { 4, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 5 */ { 5, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 6 */ { 6, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 7 */ { 7, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 8 */ { 8, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 9 */ { 9, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* a */ { 10, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* b */ { 11, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* c */ { 12, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* d */ { 13, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* e */ { 14, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* f */ { 15, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 10 */ { 16, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 11 */ { 17, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 12 */ { 18, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 13 */ { 19, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 14 */ { 20, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 15 */ { 21, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 16 */ { 22, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 17 */ { 23, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 18 */ { 24, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 19 */ { 25, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 1a */ { 26, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 1b */ { 27, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 1c */ { 28, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 1d */ { 29, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 1e */ { 30, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] }, /* 1f */ { 31, &BxOpcodeShiftFunG_SH_D_EdGd[ 3] } }; ================================================ FILE: Project/IntelCPU/Source/soft_int.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: soft_int.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::BOUND_GvMa(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("BOUND_GvMa: not supported on 8086!")); #else if (i->modC0()) { /* undefined opcode exception */ BX_PANIC(("bound: op2 must be mem ref")); UndefinedOpcode(icpu,i); } if (i->size_mode.os_32) { Bit32s bound_min, bound_max; Bit32s op1_32; op1_32 = READ_VIRTUAL_32BIT_REG(MODRMnnn(i)); BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), (Bit32u *) &bound_min); BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i)+4, (Bit32u *) &bound_max); /* ??? */ if ( (op1_32 < bound_min) || (op1_32 > bound_max) ) { BX_INFO(("BOUND: fails bounds test")); BX_CPU_CLASS_PTR exception(5, 0, 0); } } else { Bit16s bound_min, bound_max; Bit16s op1_16; op1_16 = READ_VIRTUAL_16BIT_REG(MODRMnnn(i)); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), (Bit16u *) &bound_min); BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i)+2, (Bit16u *) &bound_max); /* ??? */ if ( (op1_16 < bound_min) || (op1_16 > bound_max) ) { BX_INFO(("BOUND: fails bounds test")); BX_CPU_CLASS_PTR exception(5, 0, 0); } } #endif } void BX_CPU_C::INT1(BX_CPU_C *icpu,bxInstruction_c *i) { // This is an undocumented instrucion (opcode 0xf1) // which is useful for an ICE system. #if BX_DEBUGGER BX_CPU_CLASS_PTR show_flag |= Flag_int; #endif BX_CPU_CLASS_PTR intel_interrupt(1, 1, 0, 0); BX_INSTR_FAR_BRANCH(BX_INSTR_IS_INT, BX_CPU_CLASS_PTR sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR eip); } void BX_CPU_C::INT3(BX_CPU_C *icpu,bxInstruction_c *i) { // INT 3 is not IOPL sensitive #if BX_DEBUGGER BX_CPU_CLASS_PTR show_flag |= Flag_int; #endif //BX_PANIC(("INT3: bailing")); BX_CPU_CLASS_PTR intel_interrupt(3, 1, 0, 0); BX_INSTR_FAR_BRANCH(BX_INSTR_IS_INT, BX_CPU_CLASS_PTR sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR eip); } void BX_CPU_C::INT_Ib(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u imm8; #if BX_DEBUGGER BX_CPU_CLASS_PTR show_flag |= Flag_int; #endif imm8 = IMMEDIATEIb(i); if (BX_CPU_CLASS_PTR v8086_mode() && (RW_IOPL<3)) { //BX_INFO(("int_ib: v8086: IOPL<3")); BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } #ifdef SHOW_EXIT_STATUS if ( (imm8 == 0x21) && (AH == 0x4c) ) { BX_INFO(("INT 21/4C called AL=0x%02x, BX=0x%04x", (unsigned) AL, (unsigned) BX)); } #endif BX_CPU_CLASS_PTR intel_interrupt(imm8, 1, 0, 0); BX_INSTR_FAR_BRANCH(BX_INSTR_IS_INT, BX_CPU_CLASS_PTR sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR eip); } void BX_CPU_C::INTO(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_DEBUGGER BX_CPU_CLASS_PTR show_flag |= Flag_int; #endif /* ??? is this IOPL sensitive ? */ if (BX_CPU_CLASS_PTR v8086_mode()) BX_PANIC(("soft_int: v8086 mode unsupported")); if (BX_CPU_CLASS_PTR get_OF()) { BX_CPU_CLASS_PTR intel_interrupt(4, 1, 0, 0); BX_INSTR_FAR_BRANCH(BX_INSTR_IS_INT, BX_CPU_CLASS_PTR sregs[BX_SEG_REG_CS].selector.value, BX_CPU_CLASS_PTR eip); } } ================================================ FILE: Project/IntelCPU/Source/stack16.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: stack16.cc,v 1.7 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::PUSH_RX(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR push_16( BX_CPU_CLASS_PTR program_visible_gen_reg[OPCODEb1(i) & 0x07].word.rx ); } void BX_CPU_C::POP_RX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u rx; BX_CPU_CLASS_PTR pop_16(&rx); BX_CPU_CLASS_PTR program_visible_gen_reg[OPCODEb1(i) & 0x07].word.rx = rx; } void BX_CPU_C::POP_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u val16; if (MODRMnnn(i)!=0) { BX_PANIC(("POP_Ew: incomplete MODRMnnn(i) !=0")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } BX_CPU_CLASS_PTR pop_16(&val16); if (i->modC0()) { WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), val16); } else { // Note: there is one little weirdism here. When 32bit addressing // is used, it is possible to use ESP in the modrm addressing. // If used, the value of ESP after the pop is used to calculate // the address. if (i->size_mode.as_32&&MODRMrm(i)==4) { // call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->ResolveModrm, (icpu,i)); } BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &val16); } } void BX_CPU_C::POP_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u val16; if (MODRMnnn(i)!=0) { BX_PANIC(("POP_Ew: incomplete MODRMnnn(i) !=0")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } BX_CPU_CLASS_PTR pop_16(&val16); if (i->modC0()) { WRITE_VIRTUAL_16BIT_REG(MODRMrm(i), val16); } else { // Note: there is one little weirdism here. When 32bit addressing // is used, it is possible to use ESP in the modrm addressing. // If used, the value of ESP after the pop is used to calculate // the address. if (i->size_mode.as_32&&MODRMrm(i)==4) { // call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->ResolveModrm, (icpu,i)); } BX_CPU_CLASS_PTR write_virtual_word(MODRMSeg(i), RMAddr(i), &val16); } } void BX_CPU_C::PUSHAD16(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("PUSHAD: not supported on an 8086")); #else Bit32u temp_ESP; Bit16u sp; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = RW_ESP; else temp_ESP = RW_SP; #if BX_CPU_LEVEL >= 2 if (BX_CPU_CLASS_PTR protected_mode()) { if ( !BX_CPU_CLASS_PTR can_push(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 16) ) { BX_PANIC(("PUSHA(): stack doesn't have enough room!")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); return; } } else #endif { if (temp_ESP < 16) BX_PANIC(("pushad: eSP < 16")); } sp = RW_SP; /* ??? optimize this by using virtual write, all checks passed */ BX_CPU_CLASS_PTR push_16(RW_AX); BX_CPU_CLASS_PTR push_16(RW_CX); BX_CPU_CLASS_PTR push_16(RW_DX); BX_CPU_CLASS_PTR push_16(RW_BX); BX_CPU_CLASS_PTR push_16(sp); BX_CPU_CLASS_PTR push_16(RW_BP); BX_CPU_CLASS_PTR push_16(RW_SI); BX_CPU_CLASS_PTR push_16(RW_DI); #endif } void BX_CPU_C::POPAD16(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("POPAD not supported on an 8086")); #else /* 286+ */ Bit16u di, si, bp, sp, bx, dx, cx, ax; if (BX_CPU_CLASS_PTR protected_mode()) { if ( !BX_CPU_CLASS_PTR can_pop(16) ) { BX_PANIC(("pop_a: not enough bytes on stack")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); return; } } /* ??? optimize this */ BX_CPU_CLASS_PTR pop_16(&di); BX_CPU_CLASS_PTR pop_16(&si); BX_CPU_CLASS_PTR pop_16(&bp); BX_CPU_CLASS_PTR pop_16(&sp); /* value for SP discarded */ BX_CPU_CLASS_PTR pop_16(&bx); BX_CPU_CLASS_PTR pop_16(&dx); BX_CPU_CLASS_PTR pop_16(&cx); BX_CPU_CLASS_PTR pop_16(&ax); RW_DI = di; RW_SI = si; RW_BP = bp; // BX_SP = sp; RW_BX = bx; RW_DX = dx; RW_CX = cx; RW_AX = ax; #endif } void BX_CPU_C::PUSH_Iw(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("PUSH_Iv: not supported on 8086!")); #else Bit16u imm16; imm16 = IMMEDIATEIw(i); BX_CPU_CLASS_PTR push_16(imm16); #endif } void BX_CPU_C::PUSH_EGw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1_16; if (i->modC0()) { op1_16 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &op1_16); } BX_CPU_CLASS_PTR push_16(op1_16); } void BX_CPU_C::PUSH_EEw(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1_16; if (i->modC0()) { op1_16 = READ_VIRTUAL_16BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_word(MODRMSeg(i), RMAddr(i), &op1_16); } BX_CPU_CLASS_PTR push_16(op1_16); } ================================================ FILE: Project/IntelCPU/Source/stack32.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: stack32.cc,v 1.8 2002/03/05 15:50:17 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::POP_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u val32; if (MODRMnnn(i)!=0) { BX_PANIC(("POP_Ed: incomplete MODRMnnn(i) !=0")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } BX_CPU_CLASS_PTR pop_32(&val32); if (i->modC0()) { WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), val32); } else { // Note: there is one little weirdism here. When 32bit addressing // is used, it is possible to use ESP in the modrm addressing. // If used, the value of ESP after the pop is used to calculate // the address. if (i->size_mode.as_32&&MODRMrm(i)==4) { // call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->ResolveModrm, (icpu,i)); } BX_CPU_CLASS_PTR write_virtual_dword(MODRMSeg(i), RMAddr(i), &val32); } } void BX_CPU_C::POP_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u val32; if (MODRMnnn(i)!=0) { BX_PANIC(("POP_Ed: incomplete MODRMnnn(i) !=0")); BX_CPU_CLASS_PTR UndefinedOpcode(icpu,i); } BX_CPU_CLASS_PTR pop_32(&val32); if (i->modC0()) { WRITE_VIRTUAL_32BIT_REG(MODRMrm(i), val32); } else { // Note: there is one little weirdism here. When 32bit addressing // is used, it is possible to use ESP in the modrm addressing. // If used, the value of ESP after the pop is used to calculate // the address. if (i->size_mode.as_32&&MODRMrm(i)==4) { // call method on BX_CPU_C object BX_CPU_CALL_METHOD(i->ResolveModrm, (icpu,i)); } BX_CPU_CLASS_PTR write_virtual_dword(MODRMSeg(i), RMAddr(i), &val32); } } void BX_CPU_C::PUSH_ERX(BX_CPU_C *icpu,bxInstruction_c *i) { BX_CPU_CLASS_PTR push_32(BX_CPU_CLASS_PTR program_visible_gen_reg[OPCODEb1(i) & 0x07].erx); } void BX_CPU_C::POP_ERX(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u erx; BX_CPU_CLASS_PTR pop_32(&erx); BX_CPU_CLASS_PTR program_visible_gen_reg[OPCODEb1(i) & 0x07].erx = erx; } void BX_CPU_C::PUSHAD32(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("PUSHAD: not supported on an 8086")); #else Bit32u temp_ESP; Bit32u esp; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = RW_ESP; else temp_ESP = RW_SP; if (BX_CPU_CLASS_PTR protected_mode()) { if ( !BX_CPU_CLASS_PTR can_push(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 32) ) { BX_PANIC(("PUSHAD(): stack doesn't have enough room!")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); return; } } else { if (temp_ESP < 32) BX_PANIC(("pushad: eSP < 32")); } esp = RW_ESP; /* ??? optimize this by using virtual write, all checks passed */ BX_CPU_CLASS_PTR push_32(RW_EAX); BX_CPU_CLASS_PTR push_32(RW_ECX); BX_CPU_CLASS_PTR push_32(RW_EDX); BX_CPU_CLASS_PTR push_32(RW_EBX); BX_CPU_CLASS_PTR push_32(esp); BX_CPU_CLASS_PTR push_32(RW_EBP); BX_CPU_CLASS_PTR push_32(RW_ESI); BX_CPU_CLASS_PTR push_32(RW_EDI); #endif } void BX_CPU_C::POPAD32(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("POPAD not supported on an 8086")); #else /* 286+ */ Bit32u edi, esi, ebp, esp, ebx, edx, ecx, eax; if (BX_CPU_CLASS_PTR protected_mode()) { if ( !BX_CPU_CLASS_PTR can_pop(32) ) { BX_PANIC(("pop_ad: not enough bytes on stack")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); return; } } /* ??? optimize this */ BX_CPU_CLASS_PTR pop_32(&edi); BX_CPU_CLASS_PTR pop_32(&esi); BX_CPU_CLASS_PTR pop_32(&ebp); BX_CPU_CLASS_PTR pop_32(&esp); /* value for ESP discarded */ BX_CPU_CLASS_PTR pop_32(&ebx); BX_CPU_CLASS_PTR pop_32(&edx); BX_CPU_CLASS_PTR pop_32(&ecx); BX_CPU_CLASS_PTR pop_32(&eax); RW_EDI = edi; RW_ESI = esi; RW_EBP = ebp; // RW_ESP = esp; RW_EBX = ebx; RW_EDX = edx; RW_ECX = ecx; RW_EAX = eax; #endif } void BX_CPU_C::PUSH_Id(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("PUSH_Iv: not supported on 8086!")); #else Bit32u imm32; imm32 = IMMEDIATEId(i); BX_CPU_CLASS_PTR push_32(imm32); #endif } void BX_CPU_C::PUSH_EGd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1_32; if (i->modC0()) { op1_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), &op1_32); } BX_CPU_CLASS_PTR push_32(op1_32); } void BX_CPU_C::PUSH_EEd(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1_32; if (i->modC0()) { op1_32 = READ_VIRTUAL_32BIT_REG(MODRMrm(i)); } else { BX_CPU_CLASS_PTR read_virtual_dword(MODRMSeg(i), RMAddr(i), &op1_32); } BX_CPU_CLASS_PTR push_32(op1_32); } void BX_CPU_C::ENTER_IwIb(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("ENTER_IwIb: not supported by 8086!")); #else Bit32u frame_ptr32; Bit16u frame_ptr16; Bit8u level; static Bit8u first_time = 1; level = IMMEDIATEIb2(i); BX_CPU_CLASS_PTR invalidate_prefetch_q(); level %= 32; /* ??? */ if (first_time && level>0) { BX_ERROR(("enter() with level > 0. The emulation of this instruction may not be complete. This warning will be printed only once per bochs run.")); first_time = 0; } //if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b && i->size_mode.os_32==0) { // BX_INFO(("enter(): stacksize!=opsize: I'm unsure of the code for this")); // BX_PANIC((" The Intel manuals are a mess on this one!")); // } if ( BX_CPU_CLASS_PTR protected_mode() ) { Bit32u bytes_to_push, temp_ESP; if (level == 0) { if (i->size_mode.os_32) bytes_to_push = 4 + IMMEDIATEIw(i); else bytes_to_push = 2 + IMMEDIATEIw(i); } else { /* level > 0 */ if (i->size_mode.os_32) bytes_to_push = 4 + (level-1)*4 + 4 + IMMEDIATEIw(i); else bytes_to_push = 2 + (level-1)*2 + 2 + IMMEDIATEIw(i); } if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = RW_ESP; else temp_ESP = RW_SP; if ( !BX_CPU_CLASS_PTR can_push(&BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, bytes_to_push) ) { BX_PANIC(("ENTER: not enough room on stack!")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); } } if (i->size_mode.os_32) BX_CPU_CLASS_PTR push_32(RW_EBP); else BX_CPU_CLASS_PTR push_16(RW_BP); // can just do frame_ptr32 = ESP for either case ??? if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) frame_ptr32 = RW_ESP; else frame_ptr32 = RW_SP; if (level > 0) { /* do level-1 times */ while (--level) { if (i->size_mode.os_32) { Bit32u temp32; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* 32bit stacksize */ RW_EBP -= 4; BX_CPU_CLASS_PTR read_virtual_dword(BX_SEG_REG_SS, RW_EBP, &temp32); RW_ESP -= 4; BX_CPU_CLASS_PTR write_virtual_dword(BX_SEG_REG_SS, RW_ESP, &temp32); } else { /* 16bit stacksize */ RW_BP -= 4; BX_CPU_CLASS_PTR read_virtual_dword(BX_SEG_REG_SS, RW_BP, &temp32); RW_SP -= 4; BX_CPU_CLASS_PTR write_virtual_dword(BX_SEG_REG_SS, RW_SP, &temp32); } } else { /* 16bit opsize */ Bit16u temp16; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* 32bit stacksize */ RW_EBP -= 2; BX_CPU_CLASS_PTR read_virtual_word(BX_SEG_REG_SS, RW_EBP, &temp16); RW_ESP -= 2; BX_CPU_CLASS_PTR write_virtual_word(BX_SEG_REG_SS, RW_ESP, &temp16); } else { /* 16bit stacksize */ RW_BP -= 2; BX_CPU_CLASS_PTR read_virtual_word(BX_SEG_REG_SS, RW_BP, &temp16); RW_SP -= 2; BX_CPU_CLASS_PTR write_virtual_word(BX_SEG_REG_SS, RW_SP, &temp16); } } } /* while (--level) */ /* push(frame pointer) */ if (i->size_mode.os_32) { if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* 32bit stacksize */ RW_ESP -= 4; BX_CPU_CLASS_PTR write_virtual_dword(BX_SEG_REG_SS, RW_ESP, &frame_ptr32); } else { RW_SP -= 4; BX_CPU_CLASS_PTR write_virtual_dword(BX_SEG_REG_SS, RW_SP, &frame_ptr32); } } else { /* 16bit opsize */ if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* 32bit stacksize */ frame_ptr16 = frame_ptr32; RW_ESP -= 2; BX_CPU_CLASS_PTR write_virtual_word(BX_SEG_REG_SS, RW_ESP, &frame_ptr16); } else { frame_ptr16 = frame_ptr32; RW_SP -= 2; BX_CPU_CLASS_PTR write_virtual_word(BX_SEG_REG_SS, RW_SP, &frame_ptr16); } } } /* if (level > 0) ... */ if (i->size_mode.os_32) RW_EBP = frame_ptr32; else RW_BP = frame_ptr32; if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* 32bit stacksize */ RW_ESP = RW_ESP - IMMEDIATEIw(i); } else { /* 16bit stack */ RW_SP = RW_SP - IMMEDIATEIw(i); } #endif } void BX_CPU_C::LEAVE(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 2 BX_PANIC(("LEAVE: not supported by 8086!")); #else Bit32u temp_EBP; BX_CPU_CLASS_PTR invalidate_prefetch_q(); #if BX_CPU_LEVEL >= 3 if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_EBP = RW_EBP; else #endif temp_EBP = RW_BP; if ( BX_CPU_CLASS_PTR protected_mode() ) { if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.c_ed) { /* expand up */ if (temp_EBP <= BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled) { BX_PANIC(("LEAVE: BP > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].limit")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); return; } } else { /* normal */ if (temp_EBP > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled) { BX_PANIC(("LEAVE: BP > BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].limit")); BX_CPU_CLASS_PTR exception(BX_SS_EXCEPTION, 0, 0); return; } } } // delete frame #if BX_CPU_LEVEL >= 3 if (BX_CPU_CLASS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) RW_ESP = RW_EBP; else #endif RW_SP = RW_BP; // restore frame pointer #if BX_CPU_LEVEL >= 3 if (i->size_mode.os_32) { Bit32u temp32; BX_CPU_CLASS_PTR pop_32(&temp32); RW_EBP = temp32; } else #endif { Bit16u temp16; BX_CPU_CLASS_PTR pop_16(&temp16); RW_BP = temp16; } #endif } ================================================ FILE: Project/IntelCPU/Source/stack_pr.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: stack_pro.cc,v 1.6 2001/10/03 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" void BX_CPU_C::push_16(Bit16u value16) { Bit32u temp_ESP; #if BX_CPU_LEVEL >= 2 if (protected_mode()) { #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else #endif temp_ESP = X86_SP; if (!can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 2)) { BX_PANIC(("push_16(): can't push on stack")); exception(BX_SS_EXCEPTION, 0, 0); return; } /* access within limits */ #if BX_SupportICache bxReadWriteGuess *guess; guess = &BX_CPU_THIS_PTR iCache.PushPop[((temp_ESP-2)>>12)&(32-1)]; #endif BX_CPU_THIS_PTR write_virtual_word(BX_SEG_REG_SS, temp_ESP - 2, &value16); if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) X86_ESP -= 2; else X86_SP -= 2; return; } else #endif { /* real mode */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { if (X86_ESP == 1) BX_PANIC(("CPU shutting down due to lack of stack space, ESP==1")); X86_ESP -= 2; temp_ESP = X86_ESP; } else { if (X86_SP == 1) BX_PANIC(("CPU shutting down due to lack of stack space, SP==1")); X86_SP -= 2; temp_ESP = X86_SP; } BX_CPU_THIS_PTR write_virtual_word(BX_SEG_REG_SS, temp_ESP, &value16); return; } } void BX_CPU_C::call_push_16(Bit16u value16) { Bit32u temp_ESP; #if BX_CPU_LEVEL >= 2 if (protected_mode()) { #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else #endif temp_ESP = X86_SP; if (!can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, temp_ESP, 2)) { BX_PANIC(("push_16(): can't push on stack")); exception(BX_SS_EXCEPTION, 0, 0); return; } /* access within limits */ #if BX_SupportICache bxReadWriteGuess *guess; guess = &BX_CPU_THIS_PTR iCache.PushPop[((temp_ESP-2)>>12)&(32-1)]; #endif BX_CPU_THIS_PTR write_push_word(BX_SEG_REG_SS, temp_ESP - 2, &value16); if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) X86_ESP -= 2; else X86_SP -= 2; return; } else #endif { /* real mode */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { if (X86_ESP == 1) BX_PANIC(("CPU shutting down due to lack of stack space, ESP==1")); X86_ESP -= 2; temp_ESP = X86_ESP; } else { if (X86_SP == 1) BX_PANIC(("CPU shutting down due to lack of stack space, SP==1")); X86_SP -= 2; temp_ESP = X86_SP; } BX_CPU_THIS_PTR write_push_word(BX_SEG_REG_SS, temp_ESP, &value16); return; } } #if BX_CPU_LEVEL >= 3 /* push 32 bit operand size */ void BX_CPU_C::push_32(Bit32u value32) { /* must use StackAddrSize, and either ESP or SP accordingly */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* StackAddrSize = 32 */ /* 32bit stack size: pushes use SS:ESP */ if (protected_mode()) { if (!can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, X86_ESP, 4)) { BX_PANIC(("push_32(): push outside stack limits")); /* #SS(0) */ } } else { /* real mode */ if ((X86_ESP>=1) && (X86_ESP<=3)) { BX_PANIC(("push_32: ESP=%08x", (unsigned) X86_ESP)); } } BX_CPU_THIS_PTR write_virtual_dword(BX_SEG_REG_SS, X86_ESP-4, &value32); X86_ESP -= 4; /* will return after error anyway */ return; } else { /* 16bit stack size: pushes use SS:SP */ if (protected_mode()) { if (!can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, X86_SP, 4)) { BX_PANIC(("push_32(): push outside stack limits")); /* #SS(0) */ } } else { /* real mode */ if ((X86_SP>=1) && (X86_SP<=3)) { BX_PANIC(("push_32: SP=%08x", (unsigned) X86_SP)); } } BX_CPU_THIS_PTR write_virtual_dword(BX_SEG_REG_SS, (Bit16u) (X86_SP-4), &value32); X86_SP -= 4; /* will return after error anyway */ return; } } void BX_CPU_C::call_push_32(Bit32u value32) { /* must use StackAddrSize, and either ESP or SP accordingly */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* StackAddrSize = 32 */ /* 32bit stack size: pushes use SS:ESP */ if (protected_mode()) { if (!can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, X86_ESP, 4)) { BX_PANIC(("push_32(): push outside stack limits")); /* #SS(0) */ } } else { /* real mode */ if ((X86_ESP>=1) && (X86_ESP<=3)) { BX_PANIC(("push_32: ESP=%08x", (unsigned) X86_ESP)); } } BX_CPU_THIS_PTR write_push_dword(BX_SEG_REG_SS, X86_ESP-4, &value32); X86_ESP -= 4; /* will return after error anyway */ return; } else { /* 16bit stack size: pushes use SS:SP */ if (protected_mode()) { if (!can_push(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache, X86_SP, 4)) { BX_PANIC(("push_32(): push outside stack limits")); /* #SS(0) */ } } else { /* real mode */ if ((X86_SP>=1) && (X86_SP<=3)) { BX_PANIC(("push_32: SP=%08x", (unsigned) X86_SP)); } } BX_CPU_THIS_PTR write_push_dword(BX_SEG_REG_SS, (Bit16u) (X86_SP-4), &value32); X86_SP -= 4; /* will return after error anyway */ return; } } #endif /* BX_CPU_LEVEL >= 3 */ void BX_CPU_C::pop_16(Bit16u *value16_ptr) { Bit32u temp_ESP; #if BX_CPU_LEVEL >= 3 if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else #endif temp_ESP = X86_SP; #if BX_CPU_LEVEL >= 2 if (protected_mode()) { if ( !can_pop(2) ) { BX_INFO(("pop_16(): can't pop from stack")); exception(BX_SS_EXCEPTION, 0, 0); return; } } #endif /* access within limits */ BX_CPU_THIS_PTR read_virtual_word(BX_SEG_REG_SS, temp_ESP, value16_ptr); if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) X86_ESP += 2; else X86_SP += 2; } #if BX_CPU_LEVEL >= 3 void BX_CPU_C::pop_32(Bit32u *value32_ptr) { Bit32u temp_ESP; /* 32 bit stack mode: use SS:ESP */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; /* 16 bit stack mode: use SS:SP */ if (protected_mode()) { if ( !can_pop(4) ) { BX_PANIC(("pop_32(): can't pop from stack")); exception(BX_SS_EXCEPTION, 0, 0); return; } } /* access within limits */ BX_CPU_THIS_PTR read_virtual_dword(BX_SEG_REG_SS, temp_ESP, value32_ptr); if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b==1) X86_ESP += 4; else X86_SP += 4; } #endif #if BX_CPU_LEVEL >= 2 Boolean BX_CPU_C::can_push(bx_descriptor_t *descriptor, Bit32u esp, Bit32u bytes) { if ( real_mode() ) { /* code not needed ??? */ BX_PANIC(("can_push(): called in real mode")); return(0); /* never gets here */ } // small stack compares against 16-bit SP if (!descriptor->u.segment.d_b) esp &= 0x0000ffff; if (descriptor->valid==0) { BX_PANIC(("can_push(): SS invalidated.")); return(0); } if (descriptor->p==0) { BX_PANIC(("can_push(): not present")); return(0); } if (descriptor->u.segment.c_ed) { /* expand down segment */ Bit32u expand_down_limit; if (descriptor->u.segment.d_b) expand_down_limit = 0xffffffff; else expand_down_limit = 0x0000ffff; if (esp==0) { BX_PANIC(("can_push(): esp=0, wraparound?")); return(0); } if (esp < bytes) { BX_PANIC(("can_push(): expand-down: esp < N")); return(0); } if ( (esp - bytes) <= descriptor->u.segment.limit_scaled ) { BX_PANIC(("can_push(): expand-down: esp-N < limit")); return(0); } if ( esp > expand_down_limit ) { BX_PANIC(("can_push(): esp > expand-down-limit")); return(0); } return(1); } else { /* normal (expand-up) segment */ if (descriptor->u.segment.limit_scaled==0) { BX_PANIC(("can_push(): found limit of 0")); return(0); } // Look at case where esp==0. Possibly, it's an intentional wraparound // If so, limit must be the maximum for the given stack size if (esp==0) { if (descriptor->u.segment.d_b && (descriptor->u.segment.limit_scaled==0xffffffff)) return(1); if ((descriptor->u.segment.d_b==0) && (descriptor->u.segment.limit_scaled>=0xffff)) return(1); BX_PANIC(("can_push(): esp=0, normal, wraparound? limit=%08x", descriptor->u.segment.limit_scaled)); return(0); } if (esp < bytes) { BX_INFO(("can_push(): expand-up: esp < N")); return(0); } if ((esp-1) > descriptor->u.segment.limit_scaled) { BX_INFO(("can_push(): expand-up: SP > limit")); return(0); } /* all checks pass */ return(1); } } #endif #if BX_CPU_LEVEL >= 2 Boolean BX_CPU_C::can_pop(Bit32u bytes) { Bit32u temp_ESP, expand_down_limit; /* ??? */ if (real_mode()) BX_PANIC(("can_pop(): called in real mode?")); if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { /* Big bit set: use ESP */ temp_ESP = X86_ESP; expand_down_limit = 0xFFFFFFFF; } else { /* Big bit clear: use SP */ temp_ESP = X86_SP; expand_down_limit = 0xFFFF; } if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid==0) { BX_PANIC(("can_pop(): SS invalidated.")); return(0); /* never gets here */ } if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.p==0) { /* ??? */ BX_PANIC(("can_pop(): SS.p = 0")); return(0); } if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.c_ed) { /* expand down segment */ if ( temp_ESP == expand_down_limit ) { BX_PANIC(("can_pop(): found SP=ffff")); return(0); } if ( ((expand_down_limit - temp_ESP) + 1) >= bytes ) return(1); return(0); } else { /* normal (expand-up) segment */ if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled==0) { BX_PANIC(("can_pop(): SS.limit = 0")); } if ( temp_ESP == expand_down_limit ) { BX_PANIC(("can_pop(): found SP=ffff")); return(0); } if ( temp_ESP > BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled ) { BX_PANIC(("can_pop(): eSP > SS.limit")); return(0); } if ( ((BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled - temp_ESP) + 1) >= bytes ) return(1); return(0); } } #endif ================================================ FILE: Project/IntelCPU/Source/stdafx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // IntelCPU.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: Project/IntelCPU/Source/stdafx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #include "../../vex86/Source/VEMemory.h" ================================================ FILE: Project/IntelCPU/Source/string.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: string.cc,v 1.0 2002/10/10 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" //--------------------------------------------------------- //ִ--ָ΢ ָ //--------------------------------------------------------- /* MOVSB ES:[EDI], DS:[ESI] DS may be overridden * mov string from DS:[ESI] into ES:[EDI] */ void BX_CPU_C::MOVSB_XbYb_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_SI = esi; RW_DI = edi; } void BX_CPU_C::MOVSB_XbYb_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_SI = esi; RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSB_XbYb_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_SI = esi; RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSB_XbYb_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_ESI = esi; RW_EDI = edi; } void BX_CPU_C::MOVSB_XbYb_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSB_XbYb_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSW_XvYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_SI = esi; RW_DI = edi; } void BX_CPU_C::MOVSW_XvYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_SI = esi; RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSW_XvYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_SI = esi; RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSW_XvYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_ESI = esi; RW_EDI = edi; } void BX_CPU_C::MOVSW_XvYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSW_XvYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSD_XvYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_SI = esi; RW_DI = edi; } void BX_CPU_C::MOVSD_XvYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_SI = esi; RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSD_XvYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_SI = esi; RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSD_XvYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_ESI = esi; RW_EDI = edi; } void BX_CPU_C::MOVSD_XvYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::MOVSD_XvYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSB_XbYb_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1,op2,diff; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_BYTE(seg, esi, &op1); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_SI = esi; RW_DI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_CMPS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMPSB_XbYb_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_BYTE(seg, esi, &op1); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_SI = esi; RW_DI = edi; RW_CX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_CMPS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSB_XbYb_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_BYTE(seg, esi, &op1); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_SI = esi; RW_DI = edi; RW_CX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_CMPS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSB_XbYb_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1,op2,diff; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_BYTE(seg, esi, &op1); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_ESI = esi; RW_EDI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_CMPS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMPSB_XbYb_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_BYTE(seg, esi, &op1); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_CMPS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSB_XbYb_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_BYTE(seg, esi, &op1); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; edi -= 1; } else { esi += 1; edi += 1; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_CMPS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSW_XvYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1,op2,diff; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_WORD(seg, esi, &op1); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_SI = esi; RW_DI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_CMPS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMPSW_XvYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_WORD(seg, esi, &op1); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_SI = esi; RW_DI = edi; RW_CX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_CMPS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSW_XvYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_WORD(seg, esi, &op1); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_SI = esi; RW_DI = edi; RW_CX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_CMPS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSW_XvYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1,op2,diff; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_WORD(seg, esi, &op1); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_ESI = esi; RW_EDI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_CMPS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMPSW_XvYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_WORD(seg, esi, &op1); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_CMPS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSW_XvYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_WORD(seg, esi, &op1); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; edi -= 2; } else { esi += 2; edi += 2; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_CMPS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSD_XvYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1,op2,diff; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_DWORD(seg, esi, &op1); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_SI = esi; RW_DI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_CMPS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMPSD_XvYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_DWORD(seg, esi, &op1); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_SI = esi; RW_DI = edi; RW_CX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_CMPS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSD_XvYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_SI; edi = RW_DI; READ_VIRTUAL_DWORD(seg, esi, &op1); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_SI = esi; RW_DI = edi; RW_CX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_CMPS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSD_XvYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1,op2,diff; seg = MODRMSeg(i); Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_DWORD(seg, esi, &op1); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_ESI = esi; RW_EDI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_CMPS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::CMPSD_XvYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_DWORD(seg, esi, &op1); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_CMPS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::CMPSD_XvYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1,op2,diff; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi,edi; esi = RW_ESI; edi = RW_EDI; READ_VIRTUAL_DWORD(seg, esi, &op1); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; edi -= 4; } else { esi += 4; edi += 4; } RW_ESI = esi; RW_EDI = edi; RW_ECX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_CMPS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASB_ALYb_E16_rep__ (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2,diff; Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_SCAS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SCASB_ALYb_E16_repf2 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; RW_CX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_SCAS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASB_ALYb_E16_repf3 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; RW_CX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_SCAS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASB_ALYb_E32_rep__ (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2,diff; Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_SCAS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SCASB_ALYb_E32_repf2 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; RW_ECX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_SCAS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASB_ALYb_E32_repf3 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_8BIT_REG(0); READ_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; RW_ECX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_8(op1,op2,diff,BX_INSTR_SCAS8); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dl,op2 cmp op1,dl lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASW_eAXYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2,diff; Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_SCAS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SCASW_eAXYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; RW_CX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_SCAS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASW_eAXYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; RW_CX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_SCAS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASW_eAXYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2,diff; Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_SCAS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SCASW_eAXYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; RW_ECX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_SCAS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASW_eAXYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_16BIT_REG(0); READ_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; RW_ECX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_16(op1,op2,diff,BX_INSTR_SCAS16); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov dx,op2 cmp op1,dx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASD_eAXYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2,diff; Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_SCAS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SCASD_eAXYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; RW_CX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_SCAS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASD_eAXYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; RW_CX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_CX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_SCAS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASD_eAXYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2,diff; Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_SCAS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) } void BX_CPU_C::SCASD_eAXYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; RW_ECX--; //ԭĿ||ECX==0 ʱ˳,ظִ if (diff==0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_SCAS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::SCASD_eAXYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1,op2,diff; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_32BIT_REG(0); READ_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op2); diff = op1 - op2; if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; RW_ECX--; //ԭĿ겻||ECX==0 ʱ˳,ظִ if (diff!=0||RW_ECX==0) { #if (HOST_CPU_IS_I80386==0) SET_FLAGS_OSZAPC_32(op1,op2,diff,BX_INSTR_SCAS32); #endif //#if (HOST_CPU_IS_I80386==0) #if (HOST_CPU_IS_I80386==1) Bit32u x86_lf_flags; __asm { mov edx,op2 cmp op1,edx lahf seto al mov x86_lf_flags,eax } BX_CPU_CLASS_PTR eflags.x86.eax = x86_lf_flags; #endif //#if (HOST_CPU_IS_I80386==1) return; } if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSB_ALYb_E16_rep__ (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; } void BX_CPU_C::STOSB_ALYb_E16_repf2 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSB_ALYb_E16_repf3 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSB_ALYb_E32_rep__ (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; } void BX_CPU_C::STOSB_ALYb_E32_repf2 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSB_ALYb_E32_repf3 (BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_8BIT_REG(0); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSW_eAXYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; } void BX_CPU_C::STOSW_eAXYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSW_eAXYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSW_eAXYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; } void BX_CPU_C::STOSW_eAXYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSW_eAXYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_16BIT_REG(0); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSD_eAXYv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; } void BX_CPU_C::STOSD_eAXYv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSD_eAXYv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u edi; edi = RW_DI; op1 = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSD_eAXYv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; } void BX_CPU_C::STOSD_eAXYv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::STOSD_eAXYv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u edi; edi = RW_EDI; op1 = READ_VIRTUAL_32BIT_REG(0); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSB_ALXb_E16_rep__ (BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); Bit32u esi; esi = RW_SI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_8BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_SI = esi; } void BX_CPU_C::LODSB_ALXb_E16_repf2 (BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_8BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSB_ALXb_E16_repf3 (BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_8BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSB_ALXb_E32_rep__ (BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); Bit32u esi; esi = RW_ESI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_8BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_ESI = esi; } void BX_CPU_C::LODSB_ALXb_E32_repf2 (BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_8BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSB_ALXb_E32_repf3 (BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_BYTE(seg, esi, &op1); WRITE_VIRTUAL_8BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSW_eAXXv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); Bit32u esi; esi = RW_SI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_16BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_SI = esi; } void BX_CPU_C::LODSW_eAXXv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_16BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSW_eAXXv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_16BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSW_eAXXv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); Bit32u esi; esi = RW_ESI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_16BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_ESI = esi; } void BX_CPU_C::LODSW_eAXXv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_16BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSW_eAXXv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_WORD(seg, esi, &op1); WRITE_VIRTUAL_16BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSD_eAXXv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); Bit32u esi; esi = RW_SI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_32BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_SI = esi; } void BX_CPU_C::LODSD_eAXXv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_32BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSD_eAXXv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_32BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSD_eAXXv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); Bit32u esi; esi = RW_ESI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_32BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_ESI = esi; } void BX_CPU_C::LODSD_eAXXv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_32BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::LODSD_eAXXv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_DWORD(seg, esi, &op1); WRITE_VIRTUAL_32BIT_REG(0,op1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSB_DXXb_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u esi; esi = RW_SI; READ_VIRTUAL_BYTE(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_SI = esi; } void BX_CPU_C::OUTSB_DXXb_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_BYTE(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSB_DXXb_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_BYTE(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSB_DXXb_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u esi; esi = RW_ESI; READ_VIRTUAL_BYTE(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_ESI = esi; } void BX_CPU_C::OUTSB_DXXb_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_BYTE(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSB_DXXb_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit8u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_BYTE(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 1); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 1; } else { esi += 1; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSW_DXXv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u esi; esi = RW_SI; READ_VIRTUAL_WORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 2); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_SI = esi; } void BX_CPU_C::OUTSW_DXXv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_WORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 2); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSW_DXXv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_WORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 2); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSW_DXXv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u esi; esi = RW_ESI; READ_VIRTUAL_WORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 2); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_ESI = esi; } void BX_CPU_C::OUTSW_DXXv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_WORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 2); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSW_DXXv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit16u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_WORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 2); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 2; } else { esi += 2; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSD_DXXv_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u esi; esi = RW_SI; READ_VIRTUAL_DWORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 4); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_SI = esi; } void BX_CPU_C::OUTSD_DXXv_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_DWORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 4); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSD_DXXv_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_SI; READ_VIRTUAL_DWORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 4); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_SI = esi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSD_DXXv_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u esi; esi = RW_ESI; READ_VIRTUAL_DWORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 4); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_ESI = esi; } void BX_CPU_C::OUTSD_DXXv_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_DWORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 4); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::OUTSD_DXXv_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { unsigned seg; Bit32u op1; seg = MODRMSeg(i); //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u esi; esi = RW_ESI; READ_VIRTUAL_DWORD(seg, esi, &op1); BX_CPU_CLASS_PTR BX_OUTP(RW_DX, op1, 4); if (BX_CPU_CLASS_PTR get_DF()) { esi -= 4; } else { esi += 4; } RW_ESI = esi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSB_YbDX_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; } void BX_CPU_C::INSB_YbDX_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSB_YbDX_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSB_YbDX_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; } void BX_CPU_C::INSB_YbDX_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSB_YbDX_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit8u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 1) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 1); WRITE_VIRTUAL_BYTE(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 1; } else { edi += 1; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSW_YvDX_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; } void BX_CPU_C::INSW_YvDX_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSW_YvDX_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSW_YvDX_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; } void BX_CPU_C::INSW_YvDX_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSW_YvDX_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit16u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 2) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 2); WRITE_VIRTUAL_WORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 2; } else { edi += 2; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSD_YvDX_E16_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; } void BX_CPU_C::INSD_YvDX_E16_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSD_YvDX_E16_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_CX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_DI; op1 = 0; WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_DI = edi; RW_CX--; if (RW_CX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSD_YvDX_E32_rep__(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; } void BX_CPU_C::INSD_YvDX_E32_repf2(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } void BX_CPU_C::INSD_YvDX_E32_repf3(BX_CPU_C *icpu,bxInstruction_c *i) { Bit32u op1; //++++++++++++++++++++++++++++++++ //ECXʱ˳,ִ if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR cr0.pe && (BX_CPU_CLASS_PTR get_VM() || (RW_CPL>BX_CPU_CLASS_PTR get_IOPL()))) { if ( !BX_CPU_CLASS_PTR allow_io(RW_DX, 4) ) { BX_CPU_CLASS_PTR exception(BX_GP_EXCEPTION, 0, 0); } } RepeatRun: Bit32u edi; edi = RW_EDI; op1 = 0; WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); op1 = BX_CPU_CLASS_PTR BX_INP(RW_DX, 4); WRITE_VIRTUAL_DWORD(BX_SEG_REG_ES, edi, &op1); if (BX_CPU_CLASS_PTR get_DF()) { edi -= 4; } else { edi += 4; } RW_EDI = edi; RW_ECX--; if (RW_ECX==0) return; if (BX_CPU_CLASS_PTR async_event) { BX_CPU_CLASS_PTR invalidate_prefetch_q(); RW_EIP = BX_CPU_CLASS_PTR prev_eip; // commit old EIP return; } goto RepeatRun; } ================================================ FILE: Project/IntelCPU/Source/tasking.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: tasking.cc,v 1.9 2001/11/11 04:57:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" #if BX_SUPPORT_TASKING #if BX_CPU_LEVEL >= 2 // Notes: // ====== // Step 2: TSS descriptor is not busy TS (for IRET); GP (for JMP, CALL, INT) // returns error code (Task's backlink TSS)??? // * TSS selector must map to GDT // * TSS is stored in linear address space // * what to do with I/O Map Base // * what to do with T flag // * where to set CR3 and flush paging cache // * what happens when fault occurs, with some seg regs having valid bit cleared? // * should check validity of current TR(TSS) before writing into it // // ====================== // 286 Task State Segment // ====================== // dynamic item | hex dec offset // 0 task LDT selector | 2a 42 // 1 DS selector | 28 40 // 1 SS selector | 26 38 // 1 CS selector | 24 36 // 1 ES selector | 22 34 // 1 DI | 20 32 // 1 SI | 1e 30 // 1 BP | 1c 28 // 1 SP | 1a 26 // 1 BX | 18 24 // 1 DX | 16 22 // 1 CX | 14 20 // 1 AX | 12 18 // 1 flag word | 10 16 // 1 IP (entry point) | 0e 14 // 0 SS for CPL 2 | 0c 12 // 0 SP for CPL 2 | 0a 10 // 0 SS for CPL 1 | 08 08 // 0 SP for CPL 1 | 06 06 // 0 SS for CPL 0 | 04 04 // 0 SP for CPL 0 | 02 02 // back link selector to TSS | 00 00 // ====================== // 386 Task State Segment // ====================== // |31 16|15 0| // |I/O Map Base |000000000000000000000|T| 64 static // |0000000000000000| LDT | 60 static // |0000000000000000| GS selector | 5c dynamic // |0000000000000000| FS selector | 58 dynamic // |0000000000000000| DS selector | 54 dynamic // |0000000000000000| SS selector | 50 dynamic // |0000000000000000| CS selector | 4c dynamic // |0000000000000000| ES selector | 48 dynamic // | EDI | 44 dynamic // | ESI | 40 dynamic // | EBP | 3c dynamic // | ESP | 38 dynamic // | EBX | 34 dynamic // | EDX | 30 dynamic // | ECX | 2c dynamic // | EAX | 28 dynamic // | EFLAGS | 24 dynamic // | EIP (entry point) | 20 dynamic // | CR3 (PDPR) | 1c static // |000000000000000 | SS for CPL 2 | 18 static // | ESP for CPL 2 | 14 static // |000000000000000 | SS for CPL 1 | 10 static // | ESP for CPL 1 | 0c static // |000000000000000 | SS for CPL 0 | 08 static // | ESP for CPL 0 | 04 static // |000000000000000 | back link to prev TSS | 00 dynamic (updated only when return expected) // ================================================== // Effect of task switch on Busy, NT, and Link Fields // ================================================== // Field jump call/interrupt iret // ------------------------------------------------------ // new busy bit Set Set No change // old busy bit Cleared No change Cleared // new NT flag No change Set No change // old NT flag No change No change Cleared // new link No change old TSS selector No change // old link No change No change No change // CR0.TS Set Set Set // Note: I checked 386, 486, and Pentium, and they all exhibited // exactly the same behaviour as above. There seems to // be some misprints in the Intel docs. void BX_CPU_C::task_switch(bx_selector_t *tss_selector, bx_descriptor_t *tss_descriptor, unsigned source, Bit32u dword1, Bit32u dword2) { Bit32u obase32; // base address of old TSS Bit32u nbase32; // base address of new TSS Bit32u temp32, newCR3; Bit16u raw_cs_selector, raw_ss_selector, raw_ds_selector, raw_es_selector, raw_fs_selector, raw_gs_selector, raw_ldt_selector; Bit16u temp16, trap_word; bx_selector_t cs_selector, ss_selector, ds_selector, es_selector, fs_selector, gs_selector, ldt_selector; bx_descriptor_t cs_descriptor, ss_descriptor, ds_descriptor, es_descriptor, fs_descriptor, gs_descriptor, ldt_descriptor; Bit32u old_TSS_max, new_TSS_max, old_TSS_limit, new_TSS_limit; Bit32u newEAX, newECX, newEDX, newEBX; Bit32u newESP, newEBP, newESI, newEDI; Bit32u newEFLAGS, oldEFLAGS, newEIP; unsigned exception_no; Bit16u error_code; //BX_DEBUG(( "TASKING: ENTER" )); invalidate_prefetch_q(); // Discard any traps and inhibits for new context; traps will // resume upon return. BX_CPU_THIS_PTR debug_trap = 0; BX_CPU_THIS_PTR inhibit_mask = 0; // The following checks are made before calling task_switch(), for // JMP & CALL only. These checks are NOT made for exceptions, interrupts, & IRET // // 1) TSS DPL must be >= CPL // 2) TSS DPL must be >= TSS selector RPL // 3) TSS descriptor is not busy. TS(for IRET); GP(for JMP, CALL, INT) // Privilege and busy checks done in CALL, JUMP, INT, IRET exception_no = 256; // no exception error_code = 0; oldEFLAGS = read_eflags(); // Gather info about old TSS if (BX_CPU_THIS_PTR tr.cache.type <= 3) { // sanity check type: cannot have busy bit BX_ASSERT ((BX_CPU_THIS_PTR tr.cache.type & 2) == 0); obase32 = BX_CPU_THIS_PTR tr.cache.u.tss286.base; old_TSS_max = 43; old_TSS_limit = BX_CPU_THIS_PTR tr.cache.u.tss286.limit; } else { obase32 = BX_CPU_THIS_PTR tr.cache.u.tss386.base; old_TSS_max = 103; old_TSS_limit = BX_CPU_THIS_PTR tr.cache.u.tss386.limit_scaled; } // Gather info about new TSS if (tss_descriptor->type <= 3) { // {1,3} nbase32 = tss_descriptor->u.tss286.base; // new TSS.base new_TSS_max = 43; new_TSS_limit = tss_descriptor->u.tss286.limit; } else { // tss_descriptor->type = {9,11} nbase32 = tss_descriptor->u.tss386.base; // new TSS.base new_TSS_max = 103; new_TSS_limit = tss_descriptor->u.tss386.limit_scaled; } // Task State Seg must be present, else #NP(TSS selector) if (tss_descriptor->p==0) { BX_INFO(("task_switch: TSS.p == 0")); exception(BX_NP_EXCEPTION, tss_selector->value & 0xfffc, 0); } // TSS must have valid limit, else #TS(TSS selector) if (tss_selector->ti || tss_descriptor->valid==0 || new_TSS_limit < new_TSS_max) { BX_PANIC(("task_switch(): TR not valid")); exception(BX_TS_EXCEPTION, tss_selector->value & 0xfffc, 0); } #if BX_SUPPORT_PAGING // Check that old TSS, new TSS, and all segment descriptors // used in the task switch are paged in. if (BX_CPU_THIS_PTR cr0.pg) { //BX_RW, BX_READ, BX_WRITE // Old TSS (void) dtranslate_linear(obase32, 0, /*rw*/ BX_WRITE); (void) dtranslate_linear(obase32+old_TSS_max, 0, /*rw*/ BX_WRITE); // New TSS (void) dtranslate_linear(nbase32, 0, /*rw*/ 0); (void) dtranslate_linear(nbase32+new_TSS_max, 0, /*rw*/ 0); // ??? fix RW above // ??? touch old/new TSS descriptors here when necessary. } #endif // BX_SUPPORT_PAGING // Need to fetch all new registers and temporarily store them. if (tss_descriptor->type <= 3) { BX_CPU_THIS_PTR access_linear(nbase32 + 14, 2, 0, BX_READ, &temp16); newEIP = temp16; // zero out upper word BX_CPU_THIS_PTR access_linear(nbase32 + 16, 2, 0, BX_READ, &temp16); newEFLAGS = temp16; // incoming TSS is 16bit: // - upper word of general registers is set to 0xFFFF // - upper word of eflags is zero'd // - FS, GS are zero'd // - upper word of eIP is zero'd BX_CPU_THIS_PTR access_linear(nbase32 + 18, 2, 0, BX_READ, &temp16); newEAX = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 20, 2, 0, BX_READ, &temp16); newECX = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 22, 2, 0, BX_READ, &temp16); newEDX = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 24, 2, 0, BX_READ, &temp16); newEBX = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 26, 2, 0, BX_READ, &temp16); newESP = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 28, 2, 0, BX_READ, &temp16); newEBP = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 30, 2, 0, BX_READ, &temp16); newESI = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 32, 2, 0, BX_READ, &temp16); newEDI = 0xffff0000 | temp16; BX_CPU_THIS_PTR access_linear(nbase32 + 34, 2, 0, BX_READ, &raw_es_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 36, 2, 0, BX_READ, &raw_cs_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 38, 2, 0, BX_READ, &raw_ss_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 40, 2, 0, BX_READ, &raw_ds_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 42, 2, 0, BX_READ, &raw_ldt_selector); raw_fs_selector = 0; // use a NULL selector raw_gs_selector = 0; // use a NULL selector // No CR3 change for 286 task switch newCR3 = 0; // keep compiler happy (not used) trap_word = 0; // keep compiler happy (not used) } else { BX_CPU_THIS_PTR access_linear(nbase32 + 0x1c, 4, 0, BX_READ, &newCR3); BX_CPU_THIS_PTR access_linear(nbase32 + 0x20, 4, 0, BX_READ, &newEIP); BX_CPU_THIS_PTR access_linear(nbase32 + 0x24, 4, 0, BX_READ, &newEFLAGS); BX_CPU_THIS_PTR access_linear(nbase32 + 0x28, 4, 0, BX_READ, &newEAX); BX_CPU_THIS_PTR access_linear(nbase32 + 0x2c, 4, 0, BX_READ, &newECX); BX_CPU_THIS_PTR access_linear(nbase32 + 0x30, 4, 0, BX_READ, &newEDX); BX_CPU_THIS_PTR access_linear(nbase32 + 0x34, 4, 0, BX_READ, &newEBX); BX_CPU_THIS_PTR access_linear(nbase32 + 0x38, 4, 0, BX_READ, &newESP); BX_CPU_THIS_PTR access_linear(nbase32 + 0x3c, 4, 0, BX_READ, &newEBP); BX_CPU_THIS_PTR access_linear(nbase32 + 0x40, 4, 0, BX_READ, &newESI); BX_CPU_THIS_PTR access_linear(nbase32 + 0x44, 4, 0, BX_READ, &newEDI); BX_CPU_THIS_PTR access_linear(nbase32 + 0x48, 2, 0, BX_READ, &raw_es_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x4c, 2, 0, BX_READ, &raw_cs_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x50, 2, 0, BX_READ, &raw_ss_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x54, 2, 0, BX_READ, &raw_ds_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x58, 2, 0, BX_READ, &raw_fs_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x5c, 2, 0, BX_READ, &raw_gs_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x60, 2, 0, BX_READ, &raw_ldt_selector); BX_CPU_THIS_PTR access_linear(nbase32 + 0x64, 2, 0, BX_READ, &trap_word); // I/O Map Base Address ??? } #if 0 if (ss_descriptor.u.segment.d_b && (tss_descriptor->type<9)) { BX_DEBUG(( "++++++++++++++++++++++++++" )); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = 0; exception(BX_SS_EXCEPTION, raw_ss_selector & 0xfffc, 0); //exception(BX_TS_EXCEPTION, tss_selector->value & 0xfffc, 0); } #endif // // Step 6: If JMP or IRET, clear busy bit in old task TSS descriptor, // otherwise leave set. // // effect on Busy bit of old task if ( (source==BX_TASK_FROM_JUMP) || (source==BX_TASK_FROM_IRET) ) { // Bit is cleared BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + BX_CPU_THIS_PTR tr.selector.index*8 + 4, 4, 0, BX_READ, &temp32); temp32 &= ~0x00000200; BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + BX_CPU_THIS_PTR tr.selector.index*8 + 4, 4, 0, BX_WRITE, &temp32); } // // Step 7: If IRET, clear NT flag in temp image of EFLAGS, otherwise // leave alone. // if (source == BX_TASK_FROM_IRET) { // NT flags in old task is cleared with an IRET oldEFLAGS &= ~0x00004000; } // // Step 8: Save dynamic state of old task. // if (BX_CPU_THIS_PTR tr.cache.type <= 3) { // sanity check: tr.cache.type cannot have busy bit BX_ASSERT ((BX_CPU_THIS_PTR tr.cache.type & 2) == 0); temp16 = X86_IP; BX_CPU_THIS_PTR access_linear(obase32 + 14, 2, 0, BX_WRITE, &temp16); temp16 = oldEFLAGS; BX_CPU_THIS_PTR access_linear(obase32 + 16, 2, 0, BX_WRITE, &temp16); temp16 = X86_AX; BX_CPU_THIS_PTR access_linear(obase32 + 18, 2, 0, BX_WRITE, &temp16); temp16 = X86_CX; BX_CPU_THIS_PTR access_linear(obase32 + 20, 2, 0, BX_WRITE, &temp16); temp16 = X86_DX; BX_CPU_THIS_PTR access_linear(obase32 + 22, 2, 0, BX_WRITE, &temp16); temp16 = X86_BX; BX_CPU_THIS_PTR access_linear(obase32 + 24, 2, 0, BX_WRITE, &temp16); temp16 = X86_SP; BX_CPU_THIS_PTR access_linear(obase32 + 26, 2, 0, BX_WRITE, &temp16); temp16 = X86_BP; BX_CPU_THIS_PTR access_linear(obase32 + 28, 2, 0, BX_WRITE, &temp16); temp16 = X86_SI; BX_CPU_THIS_PTR access_linear(obase32 + 30, 2, 0, BX_WRITE, &temp16); temp16 = X86_DI; BX_CPU_THIS_PTR access_linear(obase32 + 32, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 34, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 36, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 38, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 40, 2, 0, BX_WRITE, &temp16); } else { temp32 = X86_EIP; BX_CPU_THIS_PTR access_linear(obase32 + 0x20, 4, 0, BX_WRITE, &temp32); temp32 = oldEFLAGS; BX_CPU_THIS_PTR access_linear(obase32 + 0x24, 4, 0, BX_WRITE, &temp32); temp32 = X86_EAX; BX_CPU_THIS_PTR access_linear(obase32 + 0x28, 4, 0, BX_WRITE, &temp32); temp32 = X86_ECX; BX_CPU_THIS_PTR access_linear(obase32 + 0x2c, 4, 0, BX_WRITE, &temp32); temp32 = X86_EDX; BX_CPU_THIS_PTR access_linear(obase32 + 0x30, 4, 0, BX_WRITE, &temp32); temp32 = X86_EBX; BX_CPU_THIS_PTR access_linear(obase32 + 0x34, 4, 0, BX_WRITE, &temp32); temp32 = X86_ESP; BX_CPU_THIS_PTR access_linear(obase32 + 0x38, 4, 0, BX_WRITE, &temp32); temp32 = X86_EBP; BX_CPU_THIS_PTR access_linear(obase32 + 0x3c, 4, 0, BX_WRITE, &temp32); temp32 = X86_ESI; BX_CPU_THIS_PTR access_linear(obase32 + 0x40, 4, 0, BX_WRITE, &temp32); temp32 = X86_EDI; BX_CPU_THIS_PTR access_linear(obase32 + 0x44, 4, 0, BX_WRITE, &temp32); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 0x48, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 0x4c, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 0x50, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 0x54, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 0x58, 2, 0, BX_WRITE, &temp16); temp16 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value; BX_CPU_THIS_PTR access_linear(obase32 + 0x5c, 2, 0, BX_WRITE, &temp16); } // // Commit point. At this point, we commit to the new // context. If an unrecoverable error occurs in further // processing, we complete the task switch without performing // additional access and segment availablility checks and // generate the appropriate exception prior to beginning // execution of the new task. // // Task switch clears LE/L3/L2/L1/L0 in DR7 BX_CPU_THIS_PTR dr7 &= ~0x00000155; // effect on link field of new task if ( source==BX_TASK_FROM_CALL_OR_INT ) { // set to selector of old task's TSS temp16 = BX_CPU_THIS_PTR tr.selector.value; BX_CPU_THIS_PTR access_linear(nbase32 + 0, 2, 0, BX_WRITE, &temp16); } // // Step 9: If call or interrupt, set the NT flag in the eflags // image stored in new task's TSS. If IRET or JMP, // NT is restored from new TSS eflags image. (no change) // // effect on NT flag of new task if ( source==BX_TASK_FROM_CALL_OR_INT ) { newEFLAGS |= 0x4000; // flag is set } // // Step 10: If CALL, interrupt, or JMP, set busy flag in new task's // TSS descriptor. If IRET, leave set. // if ( (source==BX_TASK_FROM_JUMP) || (source==BX_TASK_FROM_CALL_OR_INT) ) { // set the new task's busy bit BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + tss_selector->index*8 + 4, 4, 0, BX_READ, &dword2); dword2 |= 0x00000200; BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR gdtr.base + tss_selector->index*8 + 4, 4, 0, BX_WRITE, &dword2); } // // Step 11: Set TS flag in the CR0 image stored in the new task TSS. // // set TS bit in CR0 register BX_CPU_THIS_PTR cr0.ts = 1; BX_CPU_THIS_PTR cr0.val32 |= 0x00000008; // // Step 12: Load the task register with the segment selector and // descriptor for the new task TSS. // BX_CPU_THIS_PTR tr.selector = *tss_selector; BX_CPU_THIS_PTR tr.cache = *tss_descriptor; // Reset the busy-flag, because all functions expect non-busy types in // tr.cache. From Peter Lammich . BX_CPU_THIS_PTR tr.cache.type &= ~2; // // Step 13: Load the new task (dynamic) state from new TSS. // Any errors associated with loading and qualification of // segment descriptors in this step occur in the new task's // context. State loaded here includes LDTR, CR3, // EFLAGS, EIP, general purpose registers, and segment // descriptor parts of the segment registers. // if (tss_descriptor->type >= 9) { CR3_change(newCR3); // Tell paging unit about new cr3 value BX_DEBUG (("task_switch changing CR3 to 0x%08x\n", newCR3)); BX_INSTR_TLB_CNTRL(BX_INSTR_TASKSWITCH, newCR3); } BX_CPU_THIS_PTR prev_eip = X86_EIP = newEIP; write_eflags(newEFLAGS, 1,1,1,1); X86_EAX = newEAX; X86_ECX = newECX; X86_EDX = newEDX; X86_EBX = newEBX; X86_ESP = newESP; X86_EBP = newEBP; X86_ESI = newESI; X86_EDI = newEDI; // Fill in selectors for all segment registers. If errors // occur later, the selectors will at least be loaded. parse_selector(raw_es_selector, &es_selector); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector = es_selector; parse_selector(raw_cs_selector, &cs_selector); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector = cs_selector; parse_selector(raw_ss_selector, &ss_selector); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector = ss_selector; parse_selector(raw_ds_selector, &ds_selector); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector = ds_selector; parse_selector(raw_fs_selector, &fs_selector); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector = fs_selector; parse_selector(raw_gs_selector, &gs_selector); BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector = gs_selector; parse_selector(raw_ldt_selector, &ldt_selector); BX_CPU_THIS_PTR ldtr.selector = ldt_selector; // Start out with invalid descriptor caches, fill in // with values only as they are validated. BX_CPU_THIS_PTR ldtr.cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.valid = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.valid = 0; // need to test valid bit in fetch_raw_descriptor?() // or set limit to 0 instead when LDT is loaded with // null. ??? +++ BX_CPU_THIS_PTR ldtr.cache.u.ldt.limit = 0; // LDTR if (ldt_selector.ti) { // LDT selector must be in GDT BX_INFO(("task_switch: bad LDT selector TI=1")); exception_no = BX_TS_EXCEPTION; error_code = raw_ldt_selector & 0xfffc; goto post_exception; } // ??? is LDT loaded in v8086 mode if ( (raw_ldt_selector & 0xfffc) != 0 ) { Boolean good; good = fetch_raw_descriptor2(&ldt_selector, &dword1, &dword2); if (!good) { BX_INFO(("task_switch: bad LDT fetch")); exception_no = BX_TS_EXCEPTION; error_code = raw_ldt_selector & 0xfffc; goto post_exception; } parse_descriptor(dword1, dword2, &ldt_descriptor); // LDT selector of new task is valid, else #TS(new task's LDT) if (ldt_descriptor.valid==0 || ldt_descriptor.type!=2 || ldt_descriptor.segment || ldt_descriptor.u.ldt.limit<7) { BX_INFO(("task_switch: bad LDT segment")); exception_no = BX_TS_EXCEPTION; error_code = raw_ldt_selector & 0xfffc; goto post_exception; } // LDT of new task is present in memory, else #TS(new tasks's LDT) else if (ldt_descriptor.p==0) { exception_no = BX_TS_EXCEPTION; error_code = raw_ldt_selector & 0xfffc; goto post_exception; } // All checks pass, fill in LDTR shadow cache BX_CPU_THIS_PTR ldtr.cache = ldt_descriptor; } else { // NULL LDT selector is OK, leave cache invalid } if (v8086_mode()) { // load seg regs as 8086 registers BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = raw_es_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = raw_cs_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = raw_ss_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = raw_ds_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value = raw_fs_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value = raw_gs_selector; init_v8086_mode(); } else { // CS if ( (raw_cs_selector & 0xfffc) != 0 ) { Boolean good; good = fetch_raw_descriptor2(&cs_selector, &dword1, &dword2); if (!good) { BX_INFO(("task_switch: bad CS fetch")); exception_no = BX_TS_EXCEPTION; error_code = raw_cs_selector & 0xfffc; goto post_exception; } parse_descriptor(dword1, dword2, &cs_descriptor); // CS descriptor AR byte must indicate code segment else #TS(CS) if (cs_descriptor.valid==0 || cs_descriptor.segment==0 || cs_descriptor.u.segment.executable==0) { BX_PANIC(("task_switch: CS not valid executable seg")); exception_no = BX_TS_EXCEPTION; error_code = raw_cs_selector & 0xfffc; goto post_exception; } // if non-conforming then DPL must equal selector RPL else #TS(CS) else if (cs_descriptor.u.segment.c_ed==0 && cs_descriptor.dpl!=cs_selector.rpl) { BX_INFO(("task_switch: non-conforming: CS.dpl!=CS.RPL")); exception_no = BX_TS_EXCEPTION; error_code = raw_cs_selector & 0xfffc; goto post_exception; } // if conforming then DPL must be <= selector RPL else #TS(CS) else if (cs_descriptor.u.segment.c_ed && cs_descriptor.dpl>cs_selector.rpl) { BX_INFO(("task_switch: conforming: CS.dpl>RPL")); exception_no = BX_TS_EXCEPTION; error_code = raw_cs_selector & 0xfffc; goto post_exception; } // Code segment is present in memory, else #NP(new code segment) else if (cs_descriptor.p==0) { BX_PANIC(("task_switch: CS.p==0")); exception_no = BX_NP_EXCEPTION; error_code = raw_cs_selector & 0xfffc; goto post_exception; } // All checks pass, fill in shadow cache BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache = cs_descriptor; } else { // If new cs selector is null #TS(CS) BX_PANIC(("task_switch: CS NULL")); exception_no = BX_TS_EXCEPTION; error_code = raw_cs_selector & 0xfffc; goto post_exception; } // SS if ( (raw_ss_selector & 0xfffc) != 0 ) { Boolean good; good = fetch_raw_descriptor2(&ss_selector, &dword1, &dword2); if (!good) { BX_INFO(("task_switch: bad SS fetch")); exception_no = BX_TS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } parse_descriptor(dword1, dword2, &ss_descriptor); // SS selector must be within its descriptor table limits else #TS(SS) // SS descriptor AR byte must must indicate writable data segment, // else #TS(SS) if (ss_descriptor.valid==0 || ss_descriptor.segment==0 || ss_descriptor.u.segment.executable || ss_descriptor.u.segment.r_w==0) { BX_INFO(("task_switch: SS not valid")); exception_no = BX_TS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } // // Stack segment is present in memory, else #SF(new stack segment) // else if (ss_descriptor.p==0) { BX_PANIC(("task_switch: SS not present")); exception_no = BX_SS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } // Stack segment DPL matches CS.RPL, else #TS(new stack segment) else if (ss_descriptor.dpl != cs_selector.rpl) { BX_PANIC(("task_switch: SS.rpl != CS.RPL")); exception_no = BX_TS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } // Stack segment DPL matches selector RPL, else #TS(new stack segment) else if (ss_descriptor.dpl != ss_selector.rpl) { BX_PANIC(("task_switch: SS.dpl != SS.rpl")); exception_no = BX_TS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } #if 0 // +++ else if (ss_descriptor.u.segment.d_b && (tss_descriptor->type<9)) { BX_DEBUG(( "++++++++++++++++++++++++++" )); exception_no = BX_TS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } #endif // All checks pass, fill in shadow cache BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache = ss_descriptor; } else { // SS selector is valid, else #TS(new stack segment) BX_PANIC(("task_switch: SS NULL")); exception_no = BX_TS_EXCEPTION; error_code = raw_ss_selector & 0xfffc; goto post_exception; } // if new selector is not null then perform following checks: // index must be within its descriptor table limits else #TS(selector) // AR byte must indicate data or readable code else #TS(selector) // if data or non-conforming code then: // DPL must be >= CPL else #TS(selector) // DPL must be >= RPL else #TS(selector) // AR byte must indicate PRESENT else #NP(selector) // load cache with new segment descriptor and set valid bit // DS if ( (raw_ds_selector & 0xfffc) != 0 ) { Boolean good; good = fetch_raw_descriptor2(&ds_selector, &dword1, &dword2); if (!good) { BX_INFO(("task_switch: bad DS fetch")); exception_no = BX_TS_EXCEPTION; error_code = raw_ds_selector & 0xfffc; goto post_exception; } parse_descriptor(dword1, dword2, &ds_descriptor); if (ds_descriptor.valid==0 || ds_descriptor.segment==0 || (ds_descriptor.u.segment.executable && ds_descriptor.u.segment.r_w==0)) { BX_PANIC(("task_switch: DS not valid")); exception_no = BX_TS_EXCEPTION; error_code = raw_ds_selector & 0xfffc; goto post_exception; } // if data or non-conforming code else if (ds_descriptor.type<12 && (ds_descriptor.dpltype>=9) && (trap_word & 0x0001)) { BX_CPU_THIS_PTR debug_trap |= 0x00008000; // BT flag in DR6 BX_CPU_THIS_PTR async_event = 1; // so processor knows to check BX_INFO(("task_switch: T bit set in new TSS.")); } // // Step 14: Begin execution of new task. // //BX_DEBUG(( "TASKING: LEAVE" )); return; post_exception: BX_CPU_THIS_PTR debug_trap = 0; BX_CPU_THIS_PTR inhibit_mask = 0; BX_INFO(("task switch: posting exception %u after commit point", exception_no)); exception(exception_no, error_code, 0); return; } void BX_CPU_C::get_SS_ESP_from_TSS(unsigned pl, Bit16u *ss, Bit32u *esp) { if (BX_CPU_THIS_PTR tr.cache.valid==0) BX_PANIC(("get_SS_ESP_from_TSS: TR.cache invalid")); if (BX_CPU_THIS_PTR tr.cache.type==9) { // 32-bit TSS Bit32u TSSstackaddr; TSSstackaddr = 8*pl + 4; if ( (TSSstackaddr+7) > BX_CPU_THIS_PTR tr.cache.u.tss386.limit_scaled ) exception(BX_TS_EXCEPTION, BX_CPU_THIS_PTR tr.selector.value & 0xfffc, 0); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR tr.cache.u.tss386.base + TSSstackaddr+4, 2, 0, BX_READ, ss); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR tr.cache.u.tss386.base + TSSstackaddr, 4, 0, BX_READ, esp); } else if (BX_CPU_THIS_PTR tr.cache.type==1) { // 16-bit TSS Bit16u temp16; Bit32u TSSstackaddr; TSSstackaddr = 4*pl + 2; if ( (TSSstackaddr+4) > BX_CPU_THIS_PTR tr.cache.u.tss286.limit ) exception(BX_TS_EXCEPTION, BX_CPU_THIS_PTR tr.selector.value & 0xfffc, 0); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR tr.cache.u.tss286.base + TSSstackaddr+2, 2, 0, BX_READ, ss); BX_CPU_THIS_PTR access_linear(BX_CPU_THIS_PTR tr.cache.u.tss286.base + TSSstackaddr, 2, 0, BX_READ, &temp16); *esp = temp16; // truncate } else { BX_PANIC(("get_SS_ESP_from_TSS: TR is bogus type (%u)", (unsigned) BX_CPU_THIS_PTR tr.cache.type)); } } #endif #else // BX_SUPPORT_TASKING // for non-support of hardware tasking #if BX_CPU_LEVEL >= 2 /* corresponds to SWITCH_TASKS algorithm in Intel documentation */ void BX_CPU_C::task_switch(bx_selector_t *selector, bx_descriptor_t *descriptor, unsigned source, Bit32u dword1, Bit32u dword2) { UNUSED(selector); UNUSED(descriptor); UNUSED(source); UNUSED(dword1); UNUSED(dword2); BX_INFO(("task_switch(): not complete")); } #endif #endif // BX_SUPPORT_TASKING ================================================ FILE: Project/IntelCPU/Source/vm8086.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: vm8086.cc,v 1.9 2002/03/01 17:27:25 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" // Notes: // // The high bits of the 32bit eip image are ignored by // the IRET to VM. The high bits of the 32bit esp image // are loaded into ESP. A subsequent push uses // only the low 16bits since it's in VM. In neither case // did a protection fault occur during actual tests. This // is contrary to the Intel docs which claim a #GP for // eIP out of code limits. // // IRET to VM does affect IOPL, IF, VM, and RF #if BX_SUPPORT_V8086_MODE #if BX_CPU_LEVEL >= 3 void BX_CPU_C::stack_return_to_v86(Bit32u new_eip, Bit32u raw_cs_selector, Bit32u flags32) { Bit32u temp_ESP, new_esp, esp_laddr; Bit16u raw_es_selector, raw_ds_selector, raw_fs_selector, raw_gs_selector, raw_ss_selector; // Must be 32bit effective opsize, VM is in upper 16bits of eFLAGS // CPL = 0 to get here // ---------------- // | | OLD GS | eSP+32 // | | OLD FS | eSP+28 // | | OLD DS | eSP+24 // | | OLD ES | eSP+20 // | | OLD SS | eSP+16 // | OLD ESP | eSP+12 // | OLD EFLAGS | eSP+8 // | | OLD CS | eSP+4 // | OLD EIP | eSP+0 // ---------------- if (BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b) temp_ESP = X86_ESP; else temp_ESP = X86_SP; // top 36 bytes of stack must be within stack limits, else #GP(0) if ( !can_pop(36) ) { BX_PANIC(("iret: VM: top 36 bytes not within limits")); exception(BX_SS_EXCEPTION, 0, 0); return; } if ( new_eip & 0xffff0000 ) { BX_INFO(("IRET to V86-mode: ignoring upper 16-bits")); new_eip = new_eip & 0xffff; } esp_laddr = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base + temp_ESP; // load SS:ESP from stack BX_CPU_THIS_PTR access_linear(esp_laddr + 12, 4, 0, BX_READ, &new_esp); BX_CPU_THIS_PTR access_linear(esp_laddr + 16, 2, 0, BX_READ, &raw_ss_selector); // load ES,DS,FS,GS from stack BX_CPU_THIS_PTR access_linear(esp_laddr + 20, 2, 0, BX_READ, &raw_es_selector); BX_CPU_THIS_PTR access_linear(esp_laddr + 24, 2, 0, BX_READ, &raw_ds_selector); BX_CPU_THIS_PTR access_linear(esp_laddr + 28, 2, 0, BX_READ, &raw_fs_selector); BX_CPU_THIS_PTR access_linear(esp_laddr + 32, 2, 0, BX_READ, &raw_gs_selector); write_eflags(flags32, /*change IOPL*/ 1, /*change IF*/ 1, /*change VM*/ 1, /*change RF*/ 1); // load CS:EIP from stack; already read and passed as args BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value = raw_cs_selector; X86_EIP = new_eip; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value = raw_es_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value = raw_ds_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value = raw_fs_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value = raw_gs_selector; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value = raw_ss_selector; X86_ESP = new_esp; // Full 32bits are loaded. init_v8086_mode(); } void BX_CPU_C::stack_return_from_v86(bxInstruction_c *i) { // /* static Bit32u times = 0; times++; if (times<100) { BX_ERROR(("stack_return_from_v86 may not be implemented right!")); } else if (times==100) { BX_ERROR(("stack_return_from_v86 called 100 times. I won't print this error any more")); } //exception(BX_GP_EXCEPTION, 0, 0); //*/ #if 1 if (X86_IOPL != 3) { // trap to virtual 8086 monitor // BX_ERROR(("stack_return_from_v86: IOPL != 3")); exception(BX_GP_EXCEPTION, 0, 0); } if (i->size_mode.os_32) { Bit32u eip, ecs_raw, eflags; // ??? should be some stack checks here pop_32(&eip); pop_32(&ecs_raw); pop_32(&eflags); load_seg_reg(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS], (Bit16u) ecs_raw); BX_CPU_THIS_PTR program_visible_eip = eip; write_eflags(eflags, /*IOPL*/ CPL==0, /*IF*/ 1, /*VM*/ 0, /*RF*/ 1); } else { Bit16u ip, cs_raw, flags; // ??? should be some stack checks here pop_16(&ip); pop_16(&cs_raw); pop_16(&flags); load_seg_reg(&BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS], cs_raw); BX_CPU_THIS_PTR program_visible_eip = (Bit32u) ip; write_flags(flags, /*IOPL*/ CPL==0, /*IF*/ 1); } #endif } void BX_CPU_C::init_v8086_mode(void) { BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.cpl__3 = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.type = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.type = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.type = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.type = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.type = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.type = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.AR_byte = 0x93; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.AR_byte = 0x93; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.AR_byte = 0x93; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.AR_byte = 0x93; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.AR_byte = 0x93; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.AR_byte = 0x93; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.dpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.segment = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.executable = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.c_ed = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.r_w = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.a = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value << 4; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.g = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.avl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.rpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.dpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.segment = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.executable = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.c_ed = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.r_w = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.a = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.value << 4; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.limit_scaled = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.g = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.d_b = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].cache.u.segment.avl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_SS].selector.rpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.dpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.segment = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.executable = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.c_ed = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.r_w = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.a = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.value << 4; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.limit_scaled = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.g = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.d_b = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].cache.u.segment.avl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_ES].selector.rpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.dpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.segment = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.executable = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.c_ed = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.r_w = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.a = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.value << 4; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.limit_scaled = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.g = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.d_b = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].cache.u.segment.avl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_DS].selector.rpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.dpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.segment = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.executable = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.c_ed = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.r_w = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.a = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.value << 4; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.limit_scaled = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.g = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.d_b = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].cache.u.segment.avl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_FS].selector.rpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.valid = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.p = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.dpl = 3; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.segment = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.executable = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.c_ed = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.r_w = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.a = 1; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.base = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.value << 4; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.limit_scaled = 0xffff; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.g = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.d_b = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].cache.u.segment.avl = 0; BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_GS].selector.rpl = 3; } #endif /* BX_CPU_LEVEL >= 3 */ #else // BX_SUPPORT_V8086_MODE // non-support of v8086 mode void BX_CPU_C::stack_return_to_v86(Bit32u new_eip, Bit32u raw_cs_selector, Bit32u flags32) { BX_INFO(("stack_return_to_v86: VM bit set in EFLAGS stack image")); v8086_message(); } void BX_CPU_C::stack_return_from_v86(void) { BX_INFO(("stack_return_from_v86:")); v8086_message(); } void BX_CPU_C::v8086_message(void) { BX_INFO(("Program compiled with BX_SUPPORT_V8086_MODE = 0")); BX_INFO(("You need to rerun the configure script and recompile")); BX_INFO((" to use virtual-8086 mode features.")); BX_PANIC(("Bummer!")); } #endif // BX_SUPPORT_V8086_MODE ================================================ FILE: Project/IntelCPU/Source/x86cpu.cpp ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: x86cpu.cc,v 1.0 2002/10/08 16:04:05 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// // $Id: x86cpu.cc $Id: x86cpu.cc $Id: x86cpu.cc $Id: x86cpu.cc $Id: x86cpu.cc ///////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "x86cpu.h" // notes: // // check limit of CS? #ifdef REGISTER_IADDR extern void REGISTER_IADDR(bx_addr addr); #endif // The CHECK_MAX_INSTRUCTIONS macro allows cpu_loop to execute a few // instructions and then return so that the other processors have a chance to // run. This is used only when simulating multiple processors. // // If maximum instructions have been executed, return. A count less // than zero means run forever. #define CHECK_MAX_INSTRUCTIONS(count) if (count >= 0) { count--; if (count == 0) return; } #if BX_SMP_PROCESSORS==1 # define BX_TICK1_IF_SINGLE_PROCESSOR() BX_TICK1() #else # define BX_TICK1_IF_SINGLE_PROCESSOR() #endif // Make code more tidy with a few macros. #if BX_SUPPORT_X86_64==0 #define RIP X86_EIP #define RSP X86_ESP #endif void PrintfCPU(BX_CPU_C *cpu,char *s,int i=0) { return ; printf("%s %d\n",s,i); printf( "EAX=0x%08X , EBX=0x%08X , ECX=0x%08X , EDX=0x%08X\n" "ESI=0x%08X , EDI=0x%08X , EBP=0x%08X , ESP=0x%08X\n" "EIP=0x%08X , EFLAG=0x%08X\n" "CS Mode=0x%08X , CS SELECTOR=0x%08X ,CS Base=0x%08X\n", cpu->GENERAL_REG_DWORD(I_EAX),cpu->GENERAL_REG_DWORD(I_EBX), cpu->GENERAL_REG_DWORD(I_ECX),cpu->GENERAL_REG_DWORD(I_EDX), cpu->GENERAL_REG_DWORD(I_ESI),cpu->GENERAL_REG_DWORD(I_EDI), cpu->GENERAL_REG_DWORD(I_EBP),cpu->GENERAL_REG_DWORD(I_ESP), cpu->REG_EIP,cpu->REG_EFLAGS, cpu->SEGMENT_MODE(I_CS),cpu->SEGMENT_SELECTOR(I_CS),cpu->SEGMENT_BASE_ADDRESS(I_CS) ); getchar(); return ; } int BX_CPU_C::x86_cpu_loop(Bit32s max_instr_counter) { unsigned ret; bxInstruction_c iStorage;// BX_CPP_AlignN(32); bxInstruction_c *i = &iStorage; BxExecutePtr_t execute; int setjmp_result; int copy_max_instr_counter; copy_max_instr_counter = max_instr_counter; setjmp_result = setjmp( BX_CPU_THIS_PTR jmp_buf_env ); if (setjmp_result) { if (1==setjmp_result) { return copy_max_instr_counter - max_instr_counter; } if (2==setjmp_result) { return -1; } else { return -1; } } // We get here either by a normal function call, or by a longjmp // back from an exception() call. In either case, commit the // new EIP/ESP, and set up other environmental fields. This code // mirrors similar code below, after the interrupt() call. BX_CPU_THIS_PTR prev_eip = RIP; // commit new EIP BX_CPU_THIS_PTR prev_esp = RSP; // commit new ESP BX_CPU_THIS_PTR EXT = 0; BX_CPU_THIS_PTR errorno = 0; while (1) { // First check on events which occurred for previous instructions // (traps) and ones which are asynchronous to the CPU // (hardware interrupts). if (BX_CPU_THIS_PTR async_event) { if (x86_handleAsyncEvent()) { // If request to return to caller ASAP. return 0; } } #if BX_EXTERNAL_DEBUGGER if (regs.debug_state != debug_run) { bx_external_debugger(this); } #endif { bx_address eipBiased; Bit8u *fetchPtr; eipBiased = RIP + BX_CPU_THIS_PTR eipPageBias; if ( eipBiased >= BX_CPU_THIS_PTR eipPageWindowSize ) { x86_prefetch(); eipBiased = RIP + BX_CPU_THIS_PTR eipPageBias; #if (X86CPU_MSWIN_MSDOS==1) if (max_instr_counter != copy_max_instr_counter) longjmp(BX_CPU_THIS_PTR jmp_buf_env,1); #endif } #if BX_SupportICache unsigned iCacheHash; Bit32u pAddr, pageWriteStamp, fetchModeMask; //#define BxICacheInstructions 0x100 // 28% //#define BxICacheInstructions 0x200 // 47% //#define BxICacheInstructions 0x400 // 75% //#define BxICacheInstructions 0x800 // 85% //#define BxICacheInstructions 0x1000 // 88% //#define BxICacheInstructions 0x2000 // 89% //#define BxICacheInstructions 0x4000 // 89% //#define BxICacheInstructions 0x8000 // 89% #define BxICacheInstructions 0x1000 // 88% pAddr = BX_CPU_THIS_PTR pAddrA20Page + eipBiased; iCacheHash = BX_CPU_THIS_PTR iCache.hash( pAddr ); iCacheHash = BX_CPU_THIS_PTR iCache.iAllocStampEntry[iCacheHash]; i = & BX_CPU_THIS_PTR iCache.entry[iCacheHash].i; pageWriteStamp = BX_CPU_THIS_PTR iCache.pageWriteStampTable[pAddr>>12]; fetchModeMask = BX_CPU_THIS_PTR iCache.fetchModeMask; BX_CPU_THIS_PTR stamp.fetchdecode++; static int SPRINTF_COUNTER; if (++SPRINTF_COUNTER>=0x1000000) { SPRINTF_COUNTER = 0; char s_fetch[64],s_write[64],s_cahceLoop[64]; Bit64u all_stamp = BX_CPU_THIS_PTR stamp.fetchdecode; sprintf(s_fetch,"fetch: %08x-%08x",(int)(all_stamp>>32),(int)all_stamp); sprintf(s_write,"write: %d%%",(BX_CPU_THIS_PTR stamp.WriteMemoryCounter)*100/all_stamp); sprintf(s_cahceLoop,"loop: %d%%",(BX_CPU_THIS_PTR stamp.cahceLoop)*100/all_stamp); BX_PANIC(("%s %s %s\n",s_fetch,s_write,s_cahceLoop)); } if ( (BX_CPU_THIS_PTR iCache.entry[iCacheHash].pAddr == pAddr) && (BX_CPU_THIS_PTR iCache.entry[iCacheHash].writeStamp == pageWriteStamp) && ((pageWriteStamp & fetchModeMask) == fetchModeMask) ) { BX_CPU_THIS_PTR stamp.cahceLoop++; // iCache hit. Instruction is already decoded and stored in // the instruction cache. BxExecutePtr_t resolveModRM = i->ResolveModrm; // Get as soon as possible for speculation. execute = i->execute; // fetch as soon as possible for speculation. if (resolveModRM) { BX_CPU_CALL_METHOD(resolveModRM, (icpu,i)); } } else #endif { // iCache miss. No validated instruction with matching fetch parameters // is in the iCache. Or we're not compiling iCache support in, in which // case we always have an iCache miss. :^) bx_address remainingInPage; unsigned maxFetch; remainingInPage = (BX_CPU_THIS_PTR eipPageWindowSize - eipBiased); maxFetch = 15; if (remainingInPage < 15) maxFetch = remainingInPage; fetchPtr = BX_CPU_THIS_PTR eipFetchPtr + eipBiased; #if BX_SupportICache short iAllocStamp; iCacheHash = BX_CPU_THIS_PTR iCache.hash( pAddr ); iAllocStamp = BX_CPU_THIS_PTR iCache.iAllocStamp++&(BxICacheInstructions-1); BX_CPU_THIS_PTR iCache.iAllocStampEntry[iCacheHash] = iAllocStamp; iCacheHash = iAllocStamp; i = & BX_CPU_THIS_PTR iCache.entry[iCacheHash].i; // In the case where the page is marked ICacheWriteStampInvalid, all // counter bits will be high, being eqivalent to ICacheWriteStampMax. // In the case where the page is marked as possibly having associated // iCache entries, we need to leave the counter as-is, unless we're // willing to dump all iCache entries which can hash to this page. // Therefore, in either case, we can keep the counter as-is and // replace the fetch mode bits. pageWriteStamp &= 0x1fffffff; // Clear out old fetch mode bits. pageWriteStamp |= fetchModeMask; // Add in new ones. BX_CPU_THIS_PTR iCache.pageWriteStampTable[pAddr>>12] = pageWriteStamp; BX_CPU_THIS_PTR iCache.entry[iCacheHash].pAddr = pAddr; BX_CPU_THIS_PTR iCache.entry[iCacheHash].writeStamp = pageWriteStamp; #endif //((CMSWIN_X86_CPU*)this)->LinearMemory->m_pVEMemMon->m_ProcObj->LogPrint("EIP = 0x%08X\n"); #if BX_SUPPORT_X86_64 if (BX_CPU_THIS_PTR cpu_mode == BX_MODE_LONG_64) { ret = fetchDecode64(fetchPtr, i, maxFetch); } else #endif { ret = fetchDecode(fetchPtr, i, maxFetch); } BxExecutePtr_t resolveModRM = i->ResolveModrm; // Get function pointers early. if (ret==0) { #if BX_SupportICache // Invalidate entry, since fetch-decode failed with partial updates // to the i-> structure. BX_CPU_THIS_PTR iCache.entry[iCacheHash].writeStamp = ICacheWriteStampInvalid; // i = &iStorage; #endif if (maxFetch==15) exception(BX_GP_EXCEPTION, 0, 0); x86_boundaryFetch(i); resolveModRM = i->ResolveModrm; // Get function pointers as early } #if BX_INSTRUMENTATION else { // An instruction was either fetched, or found in the iCache. BX_INSTR_OPCODE(CPU_ID, fetchPtr, i->ilen(), BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.d_b); } #endif execute = i->execute; // fetch as soon as possible for speculation. if (resolveModRM) { BX_CPU_CALL_METHOD(resolveModRM, (BX_CPU_THIS,i)); #if BX_SupportICache i->ReadWriteGuess = BX_CPU_THIS_PTR iCache.iAllocGuess++&(BxICacheInstructions/4-1); #endif } } } // An instruction will have been fetched using either the normal case, // or the boundary fetch (across pages), by this point. // BX_INSTR_FETCH_DECODE_COMPLETED(CPU_ID, i); BX_CPU_THIS_PTR instr = i; if (1) { // non repeating instruction RIP += i->ilen(); BX_CPU_CALL_METHOD(execute, (BX_CPU_THIS,i)); (*page_access_stamp_ptr)++; ////++++++++ BX_CPU_THIS_PTR lastInstructionListTable[BX_CPU_THIS_PTR lastInstr++&0xff] = execute; #ifdef REGISTER_IADDR REGISTER_IADDR(RIP + BX_CPU_THIS_PTR sregs[BX_SEG_REG_CS].cache.u.segment.base); #endif BX_TICK1_IF_SINGLE_PROCESSOR(); if (max_instr_counter >= 0) { max_instr_counter--; if(!real_mode() && eflags.tf) { BX_CPU_THIS_PTR last_read_write.i_bytes = i->ilen(); return copy_max_instr_counter - max_instr_counter; } if (max_instr_counter == 0) { BX_CPU_THIS_PTR last_read_write.i_bytes = i->ilen(); return copy_max_instr_counter; } } else return copy_max_instr_counter; BX_CPU_THIS_PTR prev_eip = RIP; // commit new EIP BX_CPU_THIS_PTR prev_esp = RSP; // commit new ESP } //debugger_check: // inform instrumentation about new instruction //temp BX_INSTR_NEW_INSTRUCTION(CPU_ID); #if (BX_SMP_PROCESSORS>1 && BX_DEBUGGER==0) // The CHECK_MAX_INSTRUCTIONS macro allows cpu_loop to execute a few // instructions and then return so that the other processors have a chance // to run. This is used only when simulating multiple processors. If only // one processor, don't waste any cycles on it! Also, it is not needed // with the debugger because its guard mechanism provides the same // functionality. CHECK_MAX_INSTRUCTIONS(max_instr_counter); #endif } // while (1) } unsigned BX_CPU_C::x86_handleAsyncEvent(void) { // // This area is where we process special conditions and events. // if(!real_mode() && eflags.tf) { eflags.tf = false; exception(BX_DB_EXCEPTION,0,0); } return 0; } // boundaries of consideration: // // * physical memory boundary: 1024k (1Megabyte) (increments of...) // * A20 boundary: 1024k (1Megabyte) // * page boundary: 4k // * ROM boundary: 2k (dont care since we are only reading) // * segment boundary: any void BX_CPU_C::x86_prefetch(void) { // cs:eIP // x86_prefetch QSIZE byte quantity aligned on corresponding boundary bx_address laddr; Bit32u pAddr; bx_address temp_rip; Bit32u temp_limit; bx_address laddrPageOffset0, eipPageOffset0; temp_rip = RIP; temp_limit = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.limit_scaled; laddr = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.base + temp_rip; if (((Bit32u)temp_rip) > temp_limit) { BX_PANIC(("x86_prefetch: RIP > CS.limit")); exception(BX_GP_EXCEPTION, 0, 0); } #if BX_SUPPORT_PAGING if (BX_CPU_THIS_PTR cr0.pg) { // aligned block guaranteed to be all in one page, same A20 address pAddr = itranslate_linear(laddr, CPL==3); pAddr = A20ADDR(pAddr); } else #endif // BX_SUPPORT_PAGING { pAddr = A20ADDR(laddr); } // check if segment boundary comes into play //if ((temp_limit - (Bit32u)temp_rip) < 4096) { // } // Linear address at the beginning of the page. laddrPageOffset0 = laddr & 0xfffff000; // Calculate RIP at the beginning of the page. eipPageOffset0 = RIP - (laddr - laddrPageOffset0); BX_CPU_THIS_PTR eipPageBias = (0- eipPageOffset0); BX_CPU_THIS_PTR eipPageWindowSize = 4096; // FIXME: BX_CPU_THIS_PTR pAddrA20Page = pAddr & 0xfffff000; // BX_CPU_THIS_PTR eipFetchPtr = // BX_CPU_THIS_PTR mem->getHostMemAddr(this, BX_CPU_THIS_PTR pAddrA20Page, // BX_READ); BX_CPU_THIS_PTR eipFetchPtr = BX_CPU_THIS_PTR getHostMemPtr(laddr,BX_READ,&BX_CPU_THIS_PTR page_access_stamp_ptr); // Sanity checks if ( !BX_CPU_THIS_PTR eipFetchPtr ) { if ( pAddr >= BX_CPU_THIS_PTR mem_len ) { BX_PANIC(("x86_prefetch: running in bogus memory")); } else { BX_PANIC(("x86_prefetch: getHostMemAddr vetoed direct read, pAddr=0x%x.", pAddr)); } } } void BX_CPU_C::x86_boundaryFetch(bxInstruction_c *i) { unsigned j; Bit8u fetchBuffer[16]; // Really only need 15 bx_address eipBiased, remainingInPage; Bit8u *fetchPtr; unsigned ret; eipBiased = RIP + BX_CPU_THIS_PTR eipPageBias; remainingInPage = (BX_CPU_THIS_PTR eipPageWindowSize - eipBiased); if (remainingInPage > 15) { BX_PANIC(("fetch_decode: remaining > max ilen")); } fetchPtr = BX_CPU_THIS_PTR eipFetchPtr + eipBiased; // Read all leftover bytes in current page up to boundary. for (j=0; jilen(), //temp BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b); } #if BX_SupportICache int setbitmaping(Bit8u *buff,int offset) { int bit = (buff[offset>>3]>>(offset&7))&1; buff[offset>>3] |= (1<<(offset&7)); return bit; } int getbitmaping(Bit8u *buff,int offset) { return (buff[offset>>3]>>(offset&7))&1; } #include "../UPX/conf.h" int upxdata_compress(ucl_byte *inbuff,unsigned int inlen,ucl_byte *outbuff,unsigned int *poutlen,int method); int bxICache_c::gatherWriteHole(bxReadWriteMemoryHole *h) { int i,j; Bit8u outbuff[512]; unsigned int outlen; i =0;j =0; upxdata_compress(h->bitMap,512,outbuff,&outlen,4); if (outlen<=128) { i = outlen; } else { i = outlen; } memset(h->bitMap,0,sizeof(h->bitMap)); return 0; } bxReadWriteMemoryHole *bxICache_c::allocWriteHole(Bit32u a20Addr) { bxReadWriteMemoryHole *h; if (hole[iAllocHole&(BXREADWRITEMEMORYHOLES-1)].busy) { h = &hole[iAllocHole&(BXREADWRITEMEMORYHOLES-1)]; gatherWriteHole(h); setbitmaping(pageWriteHoleMaping,a20Addr>>12); } pageWriteHoleTable[a20Addr>>12] = iAllocHole++&(BXREADWRITEMEMORYHOLES-1); hole[pageWriteHoleTable[a20Addr>>12]].page = (a20Addr&0xffff000); hole[pageWriteHoleTable[a20Addr>>12]].busy = 1; h = hole + pageWriteHoleTable[a20Addr>>12]; return h; } #endif // BX_SupportICache ================================================ FILE: Project/IntelCPU/Source/x86cpu.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: x86cpu.h,v 1.0 2002/10/08 13:10:37 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// #ifndef X86_CPU_H #define X86_CPU_H #if 0 // no bochs #define LOG_THIS BX_CPU_THIS_PTR #define NEED_CPU_REG_SHORTCUTS 1 #include "bochs.h" #else #define LOG_THIS BX_CPU_THIS_PTR #define NEED_CPU_REG_SHORTCUTS 1 #include "iconfig.h" /* generated by configure script from config.h.in */ #include "instrume.h" extern "C" { #include #include #include #include #include #include #include } #undef BX_SUPPORT_PAGING #undef BX_USE_TLB #define BX_USE_MEM_SMF 0 #if BX_USE_MEM_SMF // if static member functions on, then there is only one memory # define BX_MEM_SMF static #else # define BX_MEM_SMF #endif class BX_CPU_C; class BX_MEM_C //: public logfunctions { public: Bit8u *_vector; size_t len; size_t megabytes; // (len in Megabytes) #if BX_DEBUGGER unsigned char dbg_dirty_pages[(BX_MAX_DIRTY_PAGE_TABLE_MEGS * 1024 * 1024) / 4096]; Bit32u dbg_count_dirty_pages () { return (BX_MAX_DIRTY_PAGE_TABLE_MEGS * 1024 * 1024) / 4096; } #endif BX_MEM_C(void){}; BX_MEM_C(size_t memsize){}; ~BX_MEM_C(void){}; BX_MEM_SMF void init_memory(int memsize); BX_MEM_SMF void read_physical(BX_CPU_C *cpu, Bit32u addr, unsigned len, void *data){}; BX_MEM_SMF void write_physical(BX_CPU_C *cpu, Bit32u addr, unsigned len, void *data){}; }; #if BX_DEBUGGER # define BX_DBG_DIRTY_PAGE(page) BX_MEM(0)->dbg_dirty_pages[page] = 1; #else # define BX_DBG_DIRTY_PAGE(page) #endif #include "cpu.h" # define UNUSED(offset) (offset) # define A20ADDR(x) (x) # define BX_DBG_ASYNC_INTR 1 # define BX_DBG_ASYNC_DMA 1 # define BX_DBG_DMA_REPORT(addr, len, what, val) # define BX_DBG_IAC_REPORT(_vector, irq) # define BX_DBG_A20_REPORT(val) # define BX_DBG_IO_REPORT(addr, size, op, val) # define BX_DBG_UCMEM_REPORT(addr, size, op, val) #define EMPTY do { } while(0) #define BX_INFO(x) EMPTY #define BX_DEBUG(x) EMPTY #define BX_ERROR(x) EMPTY #define BX_PANIC(x) EMPTY #define BX_READ 10 #define BX_WRITE 11 #define BX_RW 12 #define BX_INP(addr,len) read_io_(addr,len) #define BX_OUTP(addr,value,len) write_io_(addr,value,len) #define BX_HRQ 0 #define BX_RAISE_HLDA() 0 #define BX_TICK1() 0 #define BX_TICKN #define BX_INTR #define BX_SET_INTR #define BX_IAC() 0 #define put #define settype #define CPU0LOG 0 typedef struct { Boolean floppy; Boolean keyboard; Boolean video; Boolean disk; Boolean pit; Boolean pic; Boolean bios; Boolean cmos; Boolean a20; Boolean interrupts; Boolean exceptions; Boolean unsupported; Boolean temp; Boolean reset; Boolean debugger; Boolean mouse; Boolean io; Boolean xms; Boolean v8086; Boolean paging; Boolean creg; Boolean dreg; Boolean dma; Boolean unsupported_io; Boolean serial; Boolean cdrom; #ifdef MAGIC_BREAKPOINT Boolean magic_break_enabled; #endif /* MAGIC_BREAKPOINT */ #if BX_SUPPORT_APIC Boolean apic; Boolean ioapic; #endif #if BX_DEBUG_LINUX Boolean linux_syscall; #endif void* record_io; } bx_debug_t; #define BX_ASSERT(x) do {if (!(x)) BX_PANIC(("failed assertion \"%s\" at %s:%d\n", #x, __FILE__, __LINE__));} while (0) void bx_signal_handler (int signum); void bx_atexit(void); extern bx_debug_t bx_dbg; #define LOG_THIS BX_CPU_THIS_PTR //#include "icpu_pc.h" //#include "icpu_dos.h" //#include "x86cpu_mswin.h" #endif // no bochs #endif //#ifndef X86_CPU_H ================================================ FILE: Project/IntelCPU/Win32/IntelCPU.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IntelCPU", "IntelCPU.vcproj", "{BF306F5B-1173-49A2-9BA7-35016E0B63D0}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {BF306F5B-1173-49A2-9BA7-35016E0B63D0}.Debug.ActiveCfg = Debug|Win32 {BF306F5B-1173-49A2-9BA7-35016E0B63D0}.Debug.Build.0 = Debug|Win32 {BF306F5B-1173-49A2-9BA7-35016E0B63D0}.Release.ActiveCfg = Release|Win32 {BF306F5B-1173-49A2-9BA7-35016E0B63D0}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/IntelCPU/Win32/IntelCPU.vcproj ================================================ ================================================ FILE: Project/MFCSymbols/Source/MFCSymbols.cpp ================================================ // MFCSymbols.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include using namespace std; XSCAN_RES xScanCB3(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParam) { char Path[MAX_PATH]; GetSystemDirectoryA(Path,sizeof(Path)); HANDLE hFile; bool bOK; bOK=gpFileIO->OpenFile(FileName,&hFile); if(!bOK) return XSCAN_RES_CONTINUE; ULLSIZE Length; Length = gpFileIO->GetFileLength(hFile); DWORD* Ptr=(DWORD*)new char[Length]; gpFileIO->ReadFile(hFile,Ptr,Length,0); gpFileIO->CloseHandle(hFile); char* p2 = TStrRChr(FileName,'\\'); if(p2==NULL) p2=(char*)FileName; else p2++; TStrCat(Path,"\\drivers\\plugin\\"); TStrCat(Path,p2); p2 = TStrIStr(Path,".sym"); if(p2) p2[0]=0; ofstream of(Path); char* ptr=(char*)CBParam; for(DWORD i=0;iOpenFile(SourcePath,&hFile)==false) return 1; char* p = TStrRChr(SourcePath,'\\'); if(p==NULL) { GetCurrentDirectoryA(sizeof(SourcePath),SourcePath); } else { p[0]=0; } TStrCat(SourcePath,"\\*.sym"); ULLSIZE Length; Length = gpFileIO->GetFileLength(hFile); char* Ptr=new char[Length]; gpFileIO->ReadFile(hFile,Ptr,Length,0); gpFileIO->CloseHandle(hFile); gpFileIO->XScan(SourcePath,xScanCB3,Ptr,false); delete []Ptr; return 0; } ================================================ FILE: Project/MFCSymbols/Source/MFCSymbols.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\0" END 3 TEXTINCLUDE BEGIN "\r\n" "#include ""MFCSymbols.rc2""\r\0" END #endif // APSTUDIO_INVOKED #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "MFCSymbols.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/MFCSymbols/Source/MFCSymbols.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "Syser Debugger MFC Symbol Translator" #define VER_INTERNALNAME_STR "MFCSymbols.exe" #define VER_ORIGINALFILENAME_STR "MFCSymbols.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/MFCSymbols/Source/resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by MFCSymbols.rc // // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/MFCSymbols/Source/stdafx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // MFCSymbols.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: Project/MFCSymbols/Source/stdafx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. #define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows. #endif #include #include #include "../../Code/Source/Code.h" // TODO: reference additional headers your program requires here ================================================ FILE: Project/MFCSymbols/vc8/MFCSymbols.sln ================================================  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MFCSymbols", "MFCSymbols.vcproj", "{FED90798-E337-4389-A547-7E50C64CB426}" ProjectSection(ProjectDependencies) = postProject {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\vc8\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {FED90798-E337-4389-A547-7E50C64CB426}.Debug|Win32.ActiveCfg = Debug|Win32 {FED90798-E337-4389-A547-7E50C64CB426}.Debug|Win32.Build.0 = Debug|Win32 {FED90798-E337-4389-A547-7E50C64CB426}.Release|Win32.ActiveCfg = Release|Win32 {FED90798-E337-4389-A547-7E50C64CB426}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/MFCSymbols/vc8/MFCSymbols.vcproj ================================================ ================================================ FILE: Project/ObjectView/Source/MainFrame.cpp ================================================ #include "StdAfx.h" #include "MainFrame.h" WISP_MSG_MAP_BEGIN(CMainFrame) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP_END(CWispWnd) bool CMainFrame::OnCreate(IN WISP_MSG*pMsg) { m_Style|=WISP_WS_BACK_TRANS; m_ObjectWnd.Create(WSTR("Object Directory Wnd"),CWispRect(0,0,400,300),this,0,WISP_SWS_HORZ|WISP_WS_NULL); return true; } bool CMainFrame::OnSize(IN WISP_MSG*pMsg) { m_ObjectWnd.Resize(m_ClientRect.cx,m_ClientRect.cy); return true; } ================================================ FILE: Project/ObjectView/Source/MainFrame.h ================================================ #ifndef _MAIN_FRAME_H_ #define _MAIN_FRAME_H_ #include "ObjectDirectoryWnd.h" class CMainFrame : public CWispWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnSize); public: CObjectDirectoryWnd m_ObjectWnd; CWispSplitWnd m_SplitWnd; }; #endif ================================================ FILE: Project/ObjectView/Source/NTDLLDefine.h ================================================ #ifndef _NTDLL_DEFINE_H_ #define _NTDLL_DEFINE_H_ #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) #ifndef CONST #define CONST const #endif #define InitializeObjectAttributes( p, n, a, r, s ) { \ (p)->Length = sizeof( OBJECT_ATTRIBUTES ); \ (p)->RootDirectory = r; \ (p)->Attributes = a; \ (p)->ObjectName = n; \ (p)->SecurityDescriptor = s; \ (p)->SecurityQualityOfService = NULL; \ } typedef enum _SYSTEMINFOCLASS { SystemBasicInformation, // 0x002C SystemProcessorInformation, // 0x000C SystemPerformanceInformation, // 0x0138 SystemTimeInformation, // 0x0020 SystemPathInformation, // not implemented SystemProcessInformation, // 0x00C8+ per process SystemCallInformation, // 0x0018 + (n * 0x0004) SystemConfigurationInformation, // 0x0018 SystemProcessorCounters, // 0x0030 per cpu SystemGlobalFlag, // 0x0004 SystemInfo10, // not implemented SystemModuleInformation, // 0x0004 + (n * 0x011C) SystemLockInformation, // 0x0004 + (n * 0x0024) SystemInfo13, // not implemented SystemPagedPoolInformation, // checked build only SystemNonPagedPoolInformation, // checked build only SystemHandleInformation, // 0x0004 + (n * 0x0010) SystemObjectInformation, // 0x0038+ + (n * 0x0030+) SystemPageFileInformation, // 0x0018+ per page file SystemInstemulInformation, // 0x0088 SystemInfo20, // invalid info class SystemCacheInformation, // 0x0024 SystemPoolTagInformation, // 0x0004 + (n * 0x001C) SystemInfo23, // 0x0000, or 0x0018 per cpu SystemDpcInformation, // 0x0014 SystemInfo25, // checked build only SystemLoadDriver, // 0x0018, set mode only SystemUnloadDriver, // 0x0004, set mode only SystemTimeAdjustmentInformation, // 0x000C, 0x0008 writeable SystemInfo29, // checked build only SystemInfo30, // checked build only SystemInfo31, // checked build only SystemCrashDumpInformation, // 0x0004 SystemInfo33, // 0x0010 SystemCrashDumpStateInformation, // 0x0004 SystemDebuggerInformation, // 0x0002 SystemThreadSwitchInformation, // 0x0030 SystemRegistryQuotaInformation, // 0x000C SystemAddDriver, // 0x0008, set mode only SystemPrioritySeparationInformation,// 0x0004, set mode only SystemInfo40, // not implemented SystemInfo41, // not implemented SystemInfo42, // invalid info class SystemInfo43, // invalid info class SystemTimeZoneInformation, // 0x00AC SystemLookasideInformation, // n * 0x0020 MaxSystemInfoClass } SYSTEMINFOCLASS, *PSYSTEMINFOCLASS, **PPSYSTEMINFOCLASS; typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING; typedef UNICODE_STRING *PUNICODE_STRING; typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; PUNICODE_STRING ObjectName; ULONG Attributes; PVOID SecurityDescriptor; // Points to type SECURITY_DESCRIPTOR PVOID SecurityQualityOfService; // Points to type SECURITY_QUALITY_OF_SERVICE } OBJECT_ATTRIBUTES; typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; typedef LONG NTSTATUS; typedef ULONG ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; typedef struct _IO_STATUS_BLOCK { union { NTSTATUS Status; PVOID Pointer; }; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; #define OBJ_INHERIT 0x00000002L #define OBJ_PERMANENT 0x00000010L #define OBJ_EXCLUSIVE 0x00000020L #define OBJ_CASE_INSENSITIVE 0x00000040L #define OBJ_OPENIF 0x00000080L #define OBJ_OPENLINK 0x00000100L #define OBJ_KERNEL_HANDLE 0x00000200L #define OBJ_FORCE_ACCESS_CHECK 0x00000400L #define OBJ_VALID_ATTRIBUTES 0x000007F2L #define OBJ_CASE_INSENSITIVE 0x00000040L typedef struct _SYSTEM_HANDLE_INFORMATION{ ULONG ProcessId; UCHAR ObjectTypeNumber; UCHAR Flags; USHORT Handle; PVOID Object; ACCESS_MASK GrantedAccess; }SYSTEM_HANDLE_INFORMATION,*PSYSTEM_HANDLE_INFORMATION; typedef struct _SYSTEM_HANDLE_LIST { DWORD Counter; SYSTEM_HANDLE_INFORMATION Handle[1]; }SYSTEM_HANDLE_LIST,*PSYSTEM_HANDLE_LIST; typedef enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation, ObjectNameInformation, ObjectTypeInformation, ObjectAllTypesInformation, ObjectHandleInformation, }OBJECT_INFORMATION_CLASS; typedef struct _OBJECT_NAME_INFORMATION { UNICODE_STRING Name; }OBJECT_NAME_INFORMATION,*POBJECT_NAME_INFORMATION; typedef struct _DIRECTORY_BASIC_INFORMATION { UNICODE_STRING ObjectName; UNICODE_STRING ObjectTypeName; } DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION; typedef NTSYSAPI NTSTATUS (NTAPI *PZWOPENFILE)( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWOPENSECTION)( OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWCLOSE)( IN HANDLE Handle ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWQUERYSYSTEMINFORMATION)( SYSTEMINFOCLASS sic, PVOID pData, DWORD dSize, PDWORD pdSize ); typedef NTSYSAPI VOID (NTAPI *PRTLINITUNICODESTRING)( PUNICODE_STRING DestinationString, PCWSTR SourceString ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWQUERYOBJECT)( IN HANDLE ObjectHandle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG ObjectInformationLength, OUT PULONG ReturnLength ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWCREATEDIRECTORYOBJECT)( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWOPENDIRECTORYOBJECT)( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWQUERYDIRECTORYOBJECT)( IN HANDLE DirectoryHandle, OUT PVOID Buffer, IN ULONG BufferLength, IN BOOLEAN ReturnSingleEntry, IN BOOLEAN RestartScan, IN OUT PULONG Context, OUT PULONG ReturnLength OPTIONAL ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWOPENSYMBOLICLINKOBJECT)( OUT PHANDLE SymbolicLinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWQUERYSYMBOLICLINKOBJECT)( IN HANDLE SymbolicLinkHandle, IN OUT PUNICODE_STRING TargetName, OUT PULONG ReturnLength OPTIONAL ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWCREATESYMBOLICLINKOBJECT)( OUT PHANDLE SymbolicLinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PUNICODE_STRING TargetName ); #define DIRECTORY_QUERY (0x0001) #define DIRECTORY_TRAVERSE (0x0002) #define DIRECTORY_CREATE_OBJECT (0x0004) #define DIRECTORY_CREATE_SUBDIRECTORY (0x0008) #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF) #define SYMBOLIC_LINK_QUERY (0x0001) #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) typedef struct _FINDDATABUF { DIRECTORY_BASIC_INFORMATION DirectoryBaseInfo; WCHAR Buffer[4096]; }FINDDATABUF,*PFINDDATABUF; typedef struct _FIND_OBJECT_DATA { WCHAR Name[260]; WCHAR* CurrentDirName; HANDLE FindHandle; ULONG Context; PFINDDATABUF FindDataBuffer; ULONG NameMaxLen; }FIND_OBJECT_DATA,*PFIND_OBJECT_DATA; #endif /* _NTDLL_DEFINE_H_ */ ================================================ FILE: Project/ObjectView/Source/ObjectDirectoryWnd.cpp ================================================ #include "StdAfx.h" #include "ObjectDirectoryWnd.h" #ifdef CODE_OS_WIN #include "Ring3Object.h" #endif WISP_MSG_MAP_BEGIN(CObjectDirectoryWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispSplitWnd) WISP_MSG_CMD_MAP_BEGIN(CObjectDirectoryWnd) WISP_MSG_CMD_MAP(CHILD_WND_ID_OBJECTDIRECTORYTRE,OnCmdObjectDirectory) WISP_MSG_CMD_MAP(CHILD_WND_ID_OBJECTLIST,OnCmdObjectList) WISP_MSG_CMD_MAP_END bool CObjectDirectoryWnd::OnCmdObjectDirectory(IN WISP_MSG *pMsg) { NUM_PTR NumPtr; WCHAR* String; WISP_CHAR wcBuf[MAX_PATH]={0}; DWORD ObjectHandle; HANDLE hSubItem,hItem; if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_EXPANDED||pMsg->Command.CmdMsg==WISP_CMD_ITEM_SELECTED) { hItem = (HANDLE)pMsg->Command.Param2; hSubItem = m_ObjectDirectoryTree.GetItem(0,hItem); if(hSubItem==NULL) { m_ObjectList.ClearChildItem(); ObjectList(hItem); return true; } NumPtr = m_ObjectDirectoryTree.GetItemData(hItem,0); ObjectHandle = *(DWORD*)&NumPtr; String = m_ObjectDirectoryTree.GetItemText(hSubItem,0); if(TStrCmp(String, WISP_STR(".."))==0) { m_ObjectDirectoryTree.ClearChildItem(hItem); m_ObjectList.ClearChildItem(); #ifdef CODE_OS_WIN InitContext(hItem); #else InitContext(ObjectHandle,hItem); #endif } else { m_ObjectList.ClearChildItem(); ObjectList(hItem); } } if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_UNEXPANDED) { hItem = (HANDLE)pMsg->Command.Param2; hSubItem = m_ObjectDirectoryTree.GetItem(0,hItem); if(hSubItem==NULL) return true; m_ObjectDirectoryTree.ClearChildItem(hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hItem); } return true; } bool CObjectDirectoryWnd::OnCmdObjectList(IN WISP_MSG *pMsg) { return true; } bool CObjectDirectoryWnd::OnCreate(IN WISP_MSG *pMsg) { m_ObjectDirectoryTree.Create(NULL,CWispRect(0,0,0,0),this,CHILD_WND_ID_OBJECTDIRECTORYTRE,WISP_WLS_TREE); m_ObjectList.Create(NULL,CWispRect(0,0,0,0),this,CHILD_WND_ID_OBJECTLIST,WISP_WLS_TREE|WISP_WLS_COLUMN_TITLE); InsertWnd(&m_ObjectDirectoryTree,0,m_ClientRect.cx / 3); InsertWnd(&m_ObjectList,0,m_ClientRect.cx / 3 *2); AdjustWndPos(); m_ObjectList.InsertColumn(WSTR("Name"),150); m_ObjectList.InsertColumn(WSTR("Type"),80); m_ObjectList.InsertColumn(WSTR("SymLink"),100); m_ObjectDirectoryTree.InsertColumn(NULL,200); m_ObjectList.SetOwner(this); m_ObjectDirectoryTree.SetOwner(this); #ifdef CODE_OS_NT_DRV InitContext(0,NULL); #else InitContext(); #endif return true; } bool CObjectDirectoryWnd::UpdateContext() { return true; } bool CObjectDirectoryWnd::InitContext() { #if CODE_OS_NT_DRV DWORD ObjectHandle; OBJFINDDATA FindData; WISP_CHAR TypeName[65],ObjectName[65]; HANDLE hItem,hListItem,hChildItem; ObjectHandle = dwObjectRootDirectory; FindData.ObjectHandle=ObjectHandle; FindData.NextObjectPointer=NULL; FindData.DirectoryItemIndex=0; hItem=m_ObjectDirectoryTree.InsertItem(WSTR("\\")); while(FindNextObject(FindData)) { GetObjectTypeName(FindData.ReturnObjectHandle,TypeName); GetObjectName(FindData.ReturnObjectHandle,ObjectName); if(IsDirectoryObjectType(FindData.ReturnObjectHandle)) { hChildItem = m_ObjectDirectoryTree.InsertItem(ObjectName,hItem); m_ObjectDirectoryTree.SetItemData(hChildItem,0,FindData.ReturnObjectHandle); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hChildItem); } hListItem = m_ObjectList.InsertItem(ObjectName); m_ObjectList.SetItemData(hListItem,0,FindData.ReturnObjectHandle); m_ObjectList.SetItemText(hListItem,1,TypeName); } #else { LoadAPI(); bool bOK; FIND_OBJECT_DATA FindObjectData; HANDLE hItem,hSubItem; hItem=m_ObjectDirectoryTree.InsertItem(WSTR("\\")); bOK = FindFirstObject(L"\\",&FindObjectData); if(bOK) { while(bOK) { if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"Directory")==0) { hSubItem = m_ObjectDirectoryTree.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer,hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hSubItem); } bOK = FindNextObject(&FindObjectData); } CloseFindObject(&FindObjectData); } /* CLocalFileIO FileIO; FILE_FIND_DATA FindData; WISP_CHAR ObjectName[MAX_PATH]; bool bExit; hItem=m_ObjectDirectoryTree.InsertItem(WSTR("C:\\")); bExit = FileIO.FindFirstFile("c:\\",&FindData); while(bExit) { TStrToStr(FindData.FileName,ObjectName); if(FindData.FileAttribute & FIO_FA_DIR) { hChildItem = m_ObjectDirectoryTree.InsertItem(ObjectName,hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hChildItem); } hListItem = m_ObjectList.InsertItem(ObjectName); m_ObjectList.SetItemText(hListItem,1,WSTR("")); if (!FileIO.FindNextFile(&FindData)) bExit = false; } */ } #endif return true; } bool CObjectDirectoryWnd::InitContext(DWORD ObjectHandle,HANDLE hItem) { #ifdef CODE_OS_NT_DRV OBJFINDDATA FindData; WISP_CHAR TypeName[65],ObjectName[65]; HANDLE hListItem,hChildItem; if(ObjectHandle==0) ObjectHandle = dwObjectRootDirectory; FindData.ObjectHandle=ObjectHandle; FindData.NextObjectPointer=NULL; FindData.DirectoryItemIndex=0; if(hItem==NULL) hItem=m_ObjectDirectoryTree.InsertItem(WSTR("\\")); while(FindNextObject(FindData)) { GetObjectTypeName(FindData.ReturnObjectHandle,TypeName); GetObjectName(FindData.ReturnObjectHandle,ObjectName); if(IsDirectoryObjectType(FindData.ReturnObjectHandle)) { hChildItem = m_ObjectDirectoryTree.InsertItem(ObjectName,hItem); m_ObjectDirectoryTree.SetItemData(hChildItem,0,FindData.ReturnObjectHandle); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hChildItem); } hListItem = m_ObjectList.InsertItem(ObjectName); m_ObjectList.SetItemData(hListItem,0,FindData.ReturnObjectHandle); m_ObjectList.SetItemText(hListItem,1,TypeName); } #endif return true; } bool CObjectDirectoryWnd::InitContext(HANDLE hItem) { #ifdef CODE_OS_WIN bool bOK; WCHAR FullPathName[512]; HANDLE hSubItem; FIND_OBJECT_DATA FindObjectData; WCHAR TargetName[512]; UNICODE_STRING LinkTargetName; DWORD FullPathNameLen; ULONG ReturnLength; m_ObjectDirectoryTree.GetItemFullPath(hItem,0,FullPathName); FullPathNameLen=TStrLen(FullPathName); bOK = FindFirstObject(&FullPathName[1],&FindObjectData); if(bOK) { while(bOK) { if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"Directory")==0) { hSubItem = m_ObjectDirectoryTree.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer,hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hSubItem); } hSubItem = m_ObjectList.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); m_ObjectList.SetItemText(hSubItem,1,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer); if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"SymbolicLink")==0) { FullPathName[FullPathNameLen]=0; TStrCat(FullPathName,"\\"); TStrCat(FullPathName,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); LinkTargetName.Buffer=TargetName; LinkTargetName.MaximumLength=sizeof(TargetName); LinkTargetName.Length =sizeof(TargetName)-2; if(GetSymbolicLink(&FullPathName[1],&LinkTargetName,&ReturnLength)) { m_ObjectList.SetItemText(hSubItem,2,LinkTargetName.Buffer); } } bOK = FindNextObject(&FindObjectData); } CloseFindObject(&FindObjectData); } m_ObjectList.Update(); #endif return true; } bool CObjectDirectoryWnd::ObjectList(HANDLE hItem) { #ifdef CODE_OS_WIN bool bOK; WCHAR FullPathName[512]; HANDLE hSubItem; FIND_OBJECT_DATA FindObjectData; WCHAR TargetName[512]; UNICODE_STRING LinkTargetName; DWORD FullPathNameLen; ULONG ReturnLength; m_ObjectDirectoryTree.GetItemFullPath(hItem,0,FullPathName); FullPathNameLen=TStrLen(FullPathName); bOK = FindFirstObject(&FullPathName[1],&FindObjectData); if(bOK) { while(bOK) { hSubItem = m_ObjectList.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); m_ObjectList.SetItemText(hSubItem,1,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer); if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"SymbolicLink")==0) { FullPathName[FullPathNameLen]=0; TStrCat(FullPathName,"\\"); TStrCat(FullPathName,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); LinkTargetName.Buffer=TargetName; LinkTargetName.MaximumLength=sizeof(TargetName); LinkTargetName.Length =sizeof(TargetName)-2; if(GetSymbolicLink(&FullPathName[1],&LinkTargetName,&ReturnLength)) { m_ObjectList.SetItemText(hSubItem,2,LinkTargetName.Buffer); } } bOK = FindNextObject(&FindObjectData); } CloseFindObject(&FindObjectData); } m_ObjectList.Update(); #endif //CODE_OS_WIN return true; } ================================================ FILE: Project/ObjectView/Source/ObjectDirectoryWnd.h ================================================ #ifndef _OBJECTDIRECTORYWND_H_ #define _OBJECTDIRECTORYWND_H_ #ifdef CODE_OS_NT_DRV #include "ObjectDirectory.h" #endif enum { CHILD_WND_ID_OBJECTDIRECTORYTRE=WISP_ID_USER_START+600, CHILD_WND_ID_OBJECTLIST, }; class CObjectDirectoryWnd:public CWispSplitWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnCmdObjectDirectory) DECLARE_WISP_MSG_CMD(OnCmdObjectList) CWispList m_ObjectDirectoryTree; CWispList m_ObjectList; bool UpdateContext(); bool InitContext(); bool InitContext(DWORD ObjectHandle,HANDLE hItem); bool InitContext(HANDLE hItem); bool ObjectList(HANDLE hItem); }; #endif ================================================ FILE: Project/ObjectView/Source/ObjectView.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON_SYSER_OPTION ICON "Res\\ObjectView.ico" #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""ObjectView.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "ObjectView.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/ObjectView/Source/ObjectView.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "Syser Object View" #define VER_INTERNALNAME_STR "ObjectView.exe" #define VER_ORIGINALFILENAME_STR "ObjectView.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/ObjectView/Source/ObjectViewApp.cpp ================================================ #include "StdAfx.h" #include "ObjectViewApp.h" CObjectViewApp theApp; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return theApp.WinMainStart(hInstance,lpCmdLine,nCmdShow); } CObjectViewApp::CObjectViewApp(void) { } CObjectViewApp::~CObjectViewApp(void) { } bool CObjectViewApp::InitInstance() { m_hMutex = OpenMutex(MUTEX_ALL_ACCESS,false,"Object View"); if(m_hMutex) return false; m_hMutex = CreateMutex(NULL,false,"Object View"); m_pszDiskList = "Wisp.dat;Syser.dat"; if(CLocalWispApp::InitInstance()==false) return false; m_bHideMouse = true; m_hIcon = LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IDI_ICON_SYSER_OPTION)); m_FrameStyle&=~WS_VISIBLE; CreateFrame(WSTR("Object View"),540,400,0); m_MainFrame.Create(NULL,0,0,0,0,NULL,WISP_ID_MAIN_FRAME,WISP_WS_NULL); m_MainFrame.Resize(m_FrameBuffer.Width,m_FrameBuffer.Height); ShowWindow(m_hLocalWnd,SW_NORMAL); return true; } int CObjectViewApp::ExitInstance() { m_MainFrame.Destroy(); DestroyFrame(); CloseHandle(m_hMutex); return CLocalWispApp::ExitInstance(); } ================================================ FILE: Project/ObjectView/Source/ObjectViewApp.h ================================================ #ifndef _SYSER_OPTION_APP_H_ #define _SYSER_OPTION_APP_H_ #include "MainFrame.h" class CObjectViewApp : public CLocalWispApp { public: CObjectViewApp(void); ~CObjectViewApp(void); virtual bool InitInstance(); virtual int ExitInstance(); CMainFrame m_MainFrame; HANDLE m_hMutex; }; extern CObjectViewApp theApp; #endif ================================================ FILE: Project/ObjectView/Source/Ring3Object.cpp ================================================ #include "Stdafx.h" #include "Ring3Object.h" static HMODULE hNtdllModule=NULL; PZWCLOSE pZwClose=NULL; PZWOPENFILE pZwOpenFile=NULL; PZWOPENSECTION pZwOpenSection=NULL; PZWQUERYOBJECT pZwQueryObject=NULL; PRTLINITUNICODESTRING pRtlInitUnicodeString=NULL; PZWOPENDIRECTORYOBJECT pZwOpenDirectoryObject=NULL; PZWQUERYDIRECTORYOBJECT pZwQueryDirectoryObject=NULL; PZWQUERYSYSTEMINFORMATION pZwQuerySystemInformation=NULL; PZWOPENSYMBOLICLINKOBJECT pZwOpenSymbolicLinkObject=NULL; PZWQUERYSYMBOLICLINKOBJECT pZwQuerySymbolicLinkObject=NULL; bool UnloadAPI() { if(hNtdllModule) FreeLibrary(hNtdllModule); return TRUE; } bool LoadAPI() { hNtdllModule = GetModuleHandle("ntdll.dll"); if(!hNtdllModule) return false; pZwClose = (PZWCLOSE)GetProcAddress(hNtdllModule,"ZwClose"); if(!pZwClose) return false; pZwQuerySystemInformation = (PZWQUERYSYSTEMINFORMATION)GetProcAddress(hNtdllModule,"ZwQuerySystemInformation"); if(!pZwQuerySystemInformation) return false; pZwOpenSection = (PZWOPENSECTION)GetProcAddress(hNtdllModule,"ZwOpenSection"); if(!pZwOpenSection) return false; pZwOpenFile = (PZWOPENFILE)GetProcAddress(hNtdllModule,"ZwOpenFile"); if(!pZwOpenFile) return false; pRtlInitUnicodeString = (PRTLINITUNICODESTRING)GetProcAddress(hNtdllModule,"RtlInitUnicodeString"); if(!pRtlInitUnicodeString) return false; pZwQueryObject = (PZWQUERYOBJECT)GetProcAddress(hNtdllModule,"ZwQueryObject"); if(!pZwQueryObject) return false; pZwOpenDirectoryObject = (PZWOPENDIRECTORYOBJECT)GetProcAddress(hNtdllModule,"ZwOpenDirectoryObject"); if(!pZwOpenDirectoryObject) return false; pZwQueryDirectoryObject = (PZWQUERYDIRECTORYOBJECT)GetProcAddress(hNtdllModule,"ZwQueryDirectoryObject"); if(!pZwQueryDirectoryObject) return false; pZwOpenSymbolicLinkObject = (PZWOPENSYMBOLICLINKOBJECT)GetProcAddress(hNtdllModule,"ZwOpenSymbolicLinkObject"); if(!pZwOpenSymbolicLinkObject) return false; pZwQuerySymbolicLinkObject = (PZWQUERYSYMBOLICLINKOBJECT)GetProcAddress(hNtdllModule,"ZwQuerySymbolicLinkObject"); if(!pZwQuerySymbolicLinkObject) return false; return true; } bool GetSymbolicLink(WCHAR* LinkName,OUT UNICODE_STRING* LinkTargetName,OUT PULONG ReturnLength) { NTSTATUS NTStatus; HANDLE SymbolicHandle=NULL; UNICODE_STRING UnicodeString; OBJECT_ATTRIBUTES ObjectAttributes; if(pRtlInitUnicodeString==NULL) if(LoadAPI()==false) return false; if(pRtlInitUnicodeString) pRtlInitUnicodeString(&UnicodeString,LinkName); InitializeObjectAttributes(&ObjectAttributes,&UnicodeString,OBJ_CASE_INSENSITIVE,0,NULL); NTStatus = pZwOpenSymbolicLinkObject(&SymbolicHandle,SYMBOLIC_LINK_QUERY,&ObjectAttributes); if(NTStatus) return false; NTStatus = pZwQuerySymbolicLinkObject(SymbolicHandle,LinkTargetName,ReturnLength); if(NTStatus) { pZwClose(SymbolicHandle); return false; } pZwClose(SymbolicHandle); return true; } bool FindFirstObject(WCHAR* DirectoryName,INOUT PFIND_OBJECT_DATA pFindData) { NTSTATUS NTStatus; UNICODE_STRING DirString; HANDLE DirectoryHandle=NULL; OBJECT_ATTRIBUTES ObjectAttributes; pRtlInitUnicodeString(&DirString,DirectoryName); pFindData->FindDataBuffer = new FINDDATABUF; memset(pFindData->FindDataBuffer,0,sizeof(FINDDATABUF)); pFindData->CurrentDirName = new WCHAR[TStrLen(DirectoryName)+1]; TStrCpy(pFindData->CurrentDirName,DirectoryName); InitializeObjectAttributes(&ObjectAttributes,&DirString,OBJ_CASE_INSENSITIVE,0,NULL); NTStatus = pZwOpenDirectoryObject(&pFindData->FindHandle,DIRECTORY_QUERY,&ObjectAttributes); if(NTStatus) { delete pFindData->FindDataBuffer; delete pFindData->CurrentDirName; pFindData->FindHandle=NULL; return false; } NTStatus = pZwQueryDirectoryObject(pFindData->FindHandle,pFindData->FindDataBuffer,sizeof(FINDDATABUF),TRUE,TRUE,&pFindData->Context,&pFindData->NameMaxLen); if(NTStatus) { pZwClose(pFindData->FindHandle); delete pFindData->FindDataBuffer; delete pFindData->CurrentDirName; pFindData->FindHandle=NULL; return false; } return true; } bool FindNextObject(INOUT PFIND_OBJECT_DATA pFindData) { NTSTATUS NTStatus; NTStatus = pZwQueryDirectoryObject(pFindData->FindHandle,pFindData->FindDataBuffer,sizeof (FINDDATABUF),TRUE,FALSE,&pFindData->Context,&pFindData->NameMaxLen); if(NTStatus) return false; return true; } void CloseFindObject(PFIND_OBJECT_DATA pFindData) { if(pFindData->FindHandle) { pZwClose(pFindData->FindHandle); pFindData->FindHandle=NULL; } delete pFindData->FindDataBuffer; delete pFindData->CurrentDirName; return; } ================================================ FILE: Project/ObjectView/Source/Ring3Object.h ================================================ #ifndef _LOADHLPMODULE_H_ #define _LOADHLPMODULE_H_ #include "NTDLLDefine.h" extern PZWCLOSE pZwClose; extern PZWOPENFILE pZwOpenFile; extern PZWQUERYOBJECT pZwQueryObject; extern PZWOPENSECTION pZwOpenSection; extern PRTLINITUNICODESTRING pRtlInitUnicodeString; extern PZWOPENDIRECTORYOBJECT pZwOpenDirectoryObject; extern PZWQUERYDIRECTORYOBJECT pZwQueryDirectoryObject; extern PZWQUERYSYSTEMINFORMATION pZwQuerySystemInformation; extern PZWOPENSYMBOLICLINKOBJECT pZwOpenSymbolicLinkObject; extern PZWQUERYSYMBOLICLINKOBJECT pZwQuerySymbolicLinkObject; bool UnloadAPI(); bool LoadAPI(); bool GetSymbolicLink(WCHAR* LinkName,OUT UNICODE_STRING *LinkTargetName,OUT PULONG ReturnLength); void CloseFindObject(PFIND_OBJECT_DATA pFindData); bool FindNextObject(INOUT PFIND_OBJECT_DATA pFindData); bool FindFirstObject(WCHAR* DirectoryName,INOUT PFIND_OBJECT_DATA pFindData); #endif //_LOADHLPMODULE_H_ ================================================ FILE: Project/ObjectView/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/ObjectView/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "../../Wisp/Source/Wisp.h" #include "../../WinWisp/Source/WinWisp.h" #include "Resource.h" #endif ================================================ FILE: Project/ObjectView/Source/resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SyserOption.rc // #define IDI_ICON1 101 #define IDI_ICON_SYSER_OPTION 101 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/ObjectView/Win32/ObjectView.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ObjectView", "ObjectView.vcproj", "{019BD290-B361-4955-A6BA-950691B47459}" ProjectSection(ProjectDependencies) = postProject {142E5B2E-BB1F-42A2-B357-81F97F85F86E} = {142E5B2E-BB1F-42A2-B357-81F97F85F86E} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} = {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\Win32\Wisp.vcproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "..\..\WinWisp\Win32\WinWisp.vcproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {019BD290-B361-4955-A6BA-950691B47459}.Debug|Win32.ActiveCfg = Debug|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Debug|Win32.Build.0 = Debug|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Release|Win32.ActiveCfg = Release|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Release|Win32.Build.0 = Release|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Trial|Win32.ActiveCfg = Release|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.Build.0 = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.ActiveCfg = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.Build.0 = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.Build.0 = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.ActiveCfg = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/ObjectView/Win32/ObjectView.vcproj ================================================ ================================================ FILE: Project/ObjectView/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/ObjectView/incfile.txt ================================================ ================================================ FILE: Project/ObjectView/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/Pcre/Source/AUTHORS ================================================ THE MAIN PCRE LIBRARY --------------------- Written by: Philip Hazel Email local part: ph10 Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. Phone: +44 1223 334714. Copyright (c) 1997-2005 University of Cambridge All rights reserved THE C++ WRAPPER LIBRARY ----------------------- Written by: Google Inc. Copyright (c) 2005 Google Inc All rights reserved #### ================================================ FILE: Project/Pcre/Source/COPYING ================================================ PCRE LICENCE ------------ PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Release 6 of PCRE is distributed under the terms of the "BSD" licence, as specified below. The documentation for PCRE, supplied in the "doc" directory, is distributed under the same terms as the software itself. The basic library functions are written in C and are freestanding. Also included in the distribution is a set of C++ wrapper functions. THE BASIC LIBRARY FUNCTIONS --------------------------- Written by: Philip Hazel Email local part: ph10 Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. Phone: +44 1223 334714. Copyright (c) 1997-2005 University of Cambridge All rights reserved. THE C++ WRAPPER FUNCTIONS ------------------------- Contributed by: Google Inc. Copyright (c) 2005, Google Inc. All rights reserved. THE "BSD" LICENCE ----------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the name of Google Inc. nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. End ================================================ FILE: Project/Pcre/Source/ChangeLog ================================================ ChangeLog for PCRE ------------------ Version 6.1 21-Jun-05 --------------------- 1. There was one reference to the variable "posix" in pcretest.c that was not surrounded by "#if !defined NOPOSIX". 2. Make it possible to compile pcretest without DFA support, UTF8 support, or the cross-check on the old pcre_info() function, for the benefit of the cut-down version of PCRE that is currently imported into Exim. 3. A (silly) pattern starting with (?i)(?-i) caused an internal space allocation error. I've done the easy fix, which wastes 2 bytes for sensible patterns that start (?i) but I don't think that matters. The use of (?i) is just an example; this all applies to the other options as well. 4. Since libtool seems to echo the compile commands it is issuing, the output from "make" can be reduced a bit by putting "@" in front of each libtool compile command. 5. Patch from the folks at Google for configure.in to be a bit more thorough in checking for a suitable C++ installation before trying to compile the C++ stuff. This should fix a reported problem when a compiler was present, but no suitable headers. 6. The man pages all had just "PCRE" as their title. I have changed them to be the relevant file name. I have also arranged that these names are retained in the file doc/pcre.txt, which is a concatenation in text format of all the man pages except the little individual ones for each function. 7. The NON-UNIX-USE file had not been updated for the different set of source files that come with release 6. I also added a few comments about the C++ wrapper. Version 6.0 07-Jun-05 --------------------- 1. Some minor internal re-organization to help with my DFA experiments. 2. Some missing #ifdef SUPPORT_UCP conditionals in pcretest and printint that didn't matter for the library itself when fully configured, but did matter when compiling without UCP support, or within Exim, where the ucp files are not imported. 3. Refactoring of the library code to split up the various functions into different source modules. The addition of the new DFA matching code (see below) to a single monolithic source would have made it really too unwieldy, quite apart from causing all the code to be include in a statically linked application, when only some functions are used. This is relevant even without the DFA addition now that patterns can be compiled in one application and matched in another. The downside of splitting up is that there have to be some external functions and data tables that are used internally in different modules of the library but which are not part of the API. These have all had their names changed to start with "_pcre_" so that they are unlikely to clash with other external names. 4. Added an alternate matching function, pcre_dfa_exec(), which matches using a different (DFA) algorithm. Although it is slower than the original function, it does have some advantages for certain types of matching problem. 5. Upgrades to pcretest in order to test the features of pcre_dfa_exec(), including restarting after a partial match. 6. A patch for pcregrep that defines INVALID_FILE_ATTRIBUTES if it is not defined when compiling for Windows was sent to me. I have put it into the code, though I have no means of testing or verifying it. 7. Added the pcre_refcount() auxiliary function. 8. Added the PCRE_FIRSTLINE option. This constrains an unanchored pattern to match before or at the first newline in the subject string. In pcretest, the /f option on a pattern can be used to set this. 9. A repeated \w when used in UTF-8 mode with characters greater than 256 would behave wrongly. This has been present in PCRE since release 4.0. 10. A number of changes to the pcregrep command: (a) Refactored how -x works; insert ^(...)$ instead of setting PCRE_ANCHORED and checking the length, in preparation for adding something similar for -w. (b) Added the -w (match as a word) option. (c) Refactored the way lines are read and buffered so as to have more than one at a time available. (d) Implemented a pcregrep test script. (e) Added the -M (multiline match) option. This allows patterns to match over several lines of the subject. The buffering ensures that at least 8K, or the rest of the document (whichever is the shorter) is available for matching (and similarly the previous 8K for lookbehind assertions). (f) Changed the --help output so that it now says -w, --word-regex(p) instead of two lines, one with "regex" and the other with "regexp" because that confused at least one person since the short forms are the same. (This required a bit of code, as the output is generated automatically from a table. It wasn't just a text change.) (g) -- can be used to terminate pcregrep options if the next thing isn't an option but starts with a hyphen. Could be a pattern or a path name starting with a hyphen, for instance. (h) "-" can be given as a file name to represent stdin. (i) When file names are being printed, "(standard input)" is used for the standard input, for compatibility with GNU grep. Previously "" was used. (j) The option --label=xxx can be used to supply a name to be used for stdin when file names are being printed. There is no short form. (k) Re-factored the options decoding logic because we are going to add two more options that take data. Such options can now be given in four different ways, e.g. "-fname", "-f name", "--file=name", "--file name". (l) Added the -A, -B, and -C options for requesting that lines of context around matches be printed. (m) Added the -L option to print the names of files that do not contain any matching lines, that is, the complement of -l. (n) The return code is 2 if any file cannot be opened, but pcregrep does continue to scan other files. (o) The -s option was incorrectly implemented. For compatibility with other greps, it now suppresses the error message for a non-existent or non- accessible file (but not the return code). There is a new option called -q that suppresses the output of matching lines, which was what -s was previously doing. (p) Added --include and --exclude options to specify files for inclusion and exclusion when recursing. 11. The Makefile was not using the Autoconf-supported LDFLAGS macro properly. Hopefully, it now does. 12. Missing cast in pcre_study(). 13. Added an "uninstall" target to the makefile. 14. Replaced "extern" in the function prototypes in Makefile.in with "PCRE_DATA_SCOPE", which defaults to 'extern' or 'extern "C"' in the Unix world, but is set differently for Windows. 15. Added a second compiling function called pcre_compile2(). The only difference is that it has an extra argument, which is a pointer to an integer error code. When there is a compile-time failure, this is set non-zero, in addition to the error test pointer being set to point to an error message. The new argument may be NULL if no error number is required (but then you may as well call pcre_compile(), which is now just a wrapper). This facility is provided because some applications need a numeric error indication, but it has also enabled me to tidy up the way compile-time errors are handled in the POSIX wrapper. 16. Added VPATH=.libs to the makefile; this should help when building with one prefix path and installing with another. (Or so I'm told by someone who knows more about this stuff than I do.) 17. Added a new option, REG_DOTALL, to the POSIX function regcomp(). This passes PCRE_DOTALL to the pcre_compile() function, making the "." character match everything, including newlines. This is not POSIX-compatible, but somebody wanted the feature. From pcretest it can be activated by using both the P and the s flags. 18. AC_PROG_LIBTOOL appeared twice in Makefile.in. Removed one. 19. libpcre.pc was being incorrectly installed as executable. 20. A couple of places in pcretest check for end-of-line by looking for '\n'; it now also looks for '\r' so that it will work unmodified on Windows. 21. Added Google's contributed C++ wrapper to the distribution. 22. Added some untidy missing memory free() calls in pcretest, to keep Electric Fence happy when testing. Version 5.0 13-Sep-04 --------------------- 1. Internal change: literal characters are no longer packed up into items containing multiple characters in a single byte-string. Each character is now matched using a separate opcode. However, there may be more than one byte in the character in UTF-8 mode. 2. The pcre_callout_block structure has two new fields: pattern_position and next_item_length. These contain the offset in the pattern to the next match item, and its length, respectively. 3. The PCRE_AUTO_CALLOUT option for pcre_compile() requests the automatic insertion of callouts before each pattern item. Added the /C option to pcretest to make use of this. 4. On the advice of a Windows user, the lines #if defined(_WIN32) || defined(WIN32) _setmode( _fileno( stdout ), 0x8000 ); #endif /* defined(_WIN32) || defined(WIN32) */ have been added to the source of pcretest. This apparently does useful magic in relation to line terminators. 5. Changed "r" and "w" in the calls to fopen() in pcretest to "rb" and "wb" for the benefit of those environments where the "b" makes a difference. 6. The icc compiler has the same options as gcc, but "configure" doesn't seem to know about it. I have put a hack into configure.in that adds in code to set GCC=yes if CC=icc. This seems to end up at a point in the generated configure script that is early enough to affect the setting of compiler options, which is what is needed, but I have no means of testing whether it really works. (The user who reported this had patched the generated configure script, which of course I cannot do.) LATER: After change 22 below (new libtool files), the configure script seems to know about icc (and also ecc). Therefore, I have commented out this hack in configure.in. 7. Added support for pkg-config (2 patches were sent in). 8. Negated POSIX character classes that used a combination of internal tables were completely broken. These were [[:^alpha:]], [[:^alnum:]], and [[:^ascii]]. Typically, they would match almost any characters. The other POSIX classes were not broken in this way. 9. Matching the pattern "\b.*?" against "ab cd", starting at offset 1, failed to find the match, as PCRE was deluded into thinking that the match had to start at the start point or following a newline. The same bug applied to patterns with negative forward assertions or any backward assertions preceding ".*" at the start, unless the pattern required a fixed first character. This was a failing pattern: "(?!.bcd).*". The bug is now fixed. 10. In UTF-8 mode, when moving forwards in the subject after a failed match starting at the last subject character, bytes beyond the end of the subject string were read. 11. Renamed the variable "class" as "classbits" to make life easier for C++ users. (Previously there was a macro definition, but it apparently wasn't enough.) 12. Added the new field "tables" to the extra data so that tables can be passed in at exec time, or the internal tables can be re-selected. This allows a compiled regex to be saved and re-used at a later time by a different program that might have everything at different addresses. 13. Modified the pcre-config script so that, when run on Solaris, it shows a -R library as well as a -L library. 14. The debugging options of pcretest (-d on the command line or D on a pattern) showed incorrect output for anything following an extended class that contained multibyte characters and which was followed by a quantifier. 15. Added optional support for general category Unicode character properties via the \p, \P, and \X escapes. Unicode property support implies UTF-8 support. It adds about 90K to the size of the library. The meanings of the inbuilt class escapes such as \d and \s have NOT been changed. 16. Updated pcredemo.c to include calls to free() to release the memory for the compiled pattern. 17. The generated file chartables.c was being created in the source directory instead of in the building directory. This caused the build to fail if the source directory was different from the building directory, and was read-only. 18. Added some sample Win commands from Mark Tetrode into the NON-UNIX-USE file. No doubt somebody will tell me if they don't make sense... Also added Dan Mooney's comments about building on OpenVMS. 19. Added support for partial matching via the PCRE_PARTIAL option for pcre_exec() and the \P data escape in pcretest. 20. Extended pcretest with 3 new pattern features: (i) A pattern option of the form ">rest-of-line" causes pcretest to write the compiled pattern to the file whose name is "rest-of-line". This is a straight binary dump of the data, with the saved pointer to the character tables forced to be NULL. The study data, if any, is written too. After writing, pcretest reads a new pattern. (ii) If, instead of a pattern, ": new target : new target : use native compiler : use native linker : handle Windows platform correctly : ditto : ditto copy DLL to top builddir before testing As part of these changes, -no-undefined was removed again. This was reported to give trouble on HP-UX 11.0, so getting rid of it seems like a good idea in any case. 3. Some tidies to get rid of compiler warnings: . In the match_data structure, match_limit was an unsigned long int, whereas match_call_count was an int. I've made them both unsigned long ints. . In pcretest the fact that a const uschar * doesn't automatically cast to a void * provoked a warning. . Turning on some more compiler warnings threw up some "shadow" variables and a few more missing casts. 4. If PCRE was complied with UTF-8 support, but called without the PCRE_UTF8 option, a class that contained a single character with a value between 128 and 255 (e.g. /[\xFF]/) caused PCRE to crash. 5. If PCRE was compiled with UTF-8 support, but called without the PCRE_UTF8 option, a class that contained several characters, but with at least one whose value was between 128 and 255 caused PCRE to crash. Version 4.1 12-Mar-03 --------------------- 1. Compiling with gcc -pedantic found a couple of places where casts were needed, and a string in dftables.c that was longer than standard compilers are required to support. 2. Compiling with Sun's compiler found a few more places where the code could be tidied up in order to avoid warnings. 3. The variables for cross-compiling were called HOST_CC and HOST_CFLAGS; the first of these names is deprecated in the latest Autoconf in favour of the name CC_FOR_BUILD, because "host" is typically used to mean the system on which the compiled code will be run. I can't find a reference for HOST_CFLAGS, but by analogy I have changed it to CFLAGS_FOR_BUILD. 4. Added -no-undefined to the linking command in the Makefile, because this is apparently helpful for Windows. To make it work, also added "-L. -lpcre" to the linking step for the pcreposix library. 5. PCRE was failing to diagnose the case of two named groups with the same name. 6. A problem with one of PCRE's optimizations was discovered. PCRE remembers a literal character that is needed in the subject for a match, and scans along to ensure that it is present before embarking on the full matching process. This saves time in cases of nested unlimited repeats that are never going to match. Problem: the scan can take a lot of time if the subject is very long (e.g. megabytes), thus penalizing straightforward matches. It is now done only if the amount of subject to be scanned is less than 1000 bytes. 7. A lesser problem with the same optimization is that it was recording the first character of an anchored pattern as "needed", thus provoking a search right along the subject, even when the first match of the pattern was going to fail. The "needed" character is now not set for anchored patterns, unless it follows something in the pattern that is of non-fixed length. Thus, it still fulfils its original purpose of finding quick non-matches in cases of nested unlimited repeats, but isn't used for simple anchored patterns such as /^abc/. Version 4.0 17-Feb-03 --------------------- 1. If a comment in an extended regex that started immediately after a meta-item extended to the end of string, PCRE compiled incorrect data. This could lead to all kinds of weird effects. Example: /#/ was bad; /()#/ was bad; /a#/ was not. 2. Moved to autoconf 2.53 and libtool 1.4.2. 3. Perl 5.8 no longer needs "use utf8" for doing UTF-8 things. Consequently, the special perltest8 script is no longer needed - all the tests can be run from a single perltest script. 4. From 5.004, Perl has not included the VT character (0x0b) in the set defined by \s. It has now been removed in PCRE. This means it isn't recognized as whitespace in /x regexes too, which is the same as Perl. Note that the POSIX class [:space:] *does* include VT, thereby creating a mess. 5. Added the class [:blank:] (a GNU extension from Perl 5.8) to match only space and tab. 6. Perl 5.005 was a long time ago. It's time to amalgamate the tests that use its new features into the main test script, reducing the number of scripts. 7. Perl 5.8 has changed the meaning of patterns like /a(?i)b/. Earlier versions were backward compatible, and made the (?i) apply to the whole pattern, as if /i were given. Now it behaves more logically, and applies the option setting only to what follows. PCRE has been changed to follow suit. However, if it finds options settings right at the start of the pattern, it extracts them into the global options, as before. Thus, they show up in the info data. 8. Added support for the \Q...\E escape sequence. Characters in between are treated as literals. This is slightly different from Perl in that $ and @ are also handled as literals inside the quotes. In Perl, they will cause variable interpolation. Note the following examples: Pattern PCRE matches Perl matches \Qabc$xyz\E abc$xyz abc followed by the contents of $xyz \Qabc\$xyz\E abc\$xyz abc\$xyz \Qabc\E\$\Qxyz\E abc$xyz abc$xyz For compatibility with Perl, \Q...\E sequences are recognized inside character classes as well as outside them. 9. Re-organized 3 code statements in pcretest to avoid "overflow in floating-point constant arithmetic" warnings from a Microsoft compiler. Added a (size_t) cast to one statement in pcretest and one in pcreposix to avoid signed/unsigned warnings. 10. SunOS4 doesn't have strtoul(). This was used only for unpicking the -o option for pcretest, so I've replaced it by a simple function that does just that job. 11. pcregrep was ending with code 0 instead of 2 for the commands "pcregrep" or "pcregrep -". 12. Added "possessive quantifiers" ?+, *+, ++, and {,}+ which come from Sun's Java package. This provides some syntactic sugar for simple cases of what my documentation calls "once-only subpatterns". A pattern such as x*+ is the same as (?>x*). In other words, if what is inside (?>...) is just a single repeated item, you can use this simplified notation. Note that only makes sense with greedy quantifiers. Consequently, the use of the possessive quantifier forces greediness, whatever the setting of the PCRE_UNGREEDY option. 13. A change of greediness default within a pattern was not taking effect at the current level for patterns like /(b+(?U)a+)/. It did apply to parenthesized subpatterns that followed. Patterns like /b+(?U)a+/ worked because the option was abstracted outside. 14. PCRE now supports the \G assertion. It is true when the current matching position is at the start point of the match. This differs from \A when the starting offset is non-zero. Used with the /g option of pcretest (or similar code), it works in the same way as it does for Perl's /g option. If all alternatives of a regex begin with \G, the expression is anchored to the start match position, and the "anchored" flag is set in the compiled expression. 15. Some bugs concerning the handling of certain option changes within patterns have been fixed. These applied to options other than (?ims). For example, "a(?x: b c )d" did not match "XabcdY" but did match "Xa b c dY". It should have been the other way round. Some of this was related to change 7 above. 16. PCRE now gives errors for /[.x.]/ and /[=x=]/ as unsupported POSIX features, as Perl does. Previously, PCRE gave the warnings only for /[[.x.]]/ and /[[=x=]]/. PCRE now also gives an error for /[:name:]/ because it supports POSIX classes only within a class (e.g. /[[:alpha:]]/). 17. Added support for Perl's \C escape. This matches one byte, even in UTF8 mode. Unlike ".", it always matches newline, whatever the setting of PCRE_DOTALL. However, PCRE does not permit \C to appear in lookbehind assertions. Perl allows it, but it doesn't (in general) work because it can't calculate the length of the lookbehind. At least, that's the case for Perl 5.8.0 - I've been told they are going to document that it doesn't work in future. 18. Added an error diagnosis for escapes that PCRE does not support: these are \L, \l, \N, \P, \p, \U, \u, and \X. 19. Although correctly diagnosing a missing ']' in a character class, PCRE was reading past the end of the pattern in cases such as /[abcd/. 20. PCRE was getting more memory than necessary for patterns with classes that contained both POSIX named classes and other characters, e.g. /[[:space:]abc/. 21. Added some code, conditional on #ifdef VPCOMPAT, to make life easier for compiling PCRE for use with Virtual Pascal. 22. Small fix to the Makefile to make it work properly if the build is done outside the source tree. 23. Added a new extension: a condition to go with recursion. If a conditional subpattern starts with (?(R) the "true" branch is used if recursion has happened, whereas the "false" branch is used only at the top level. 24. When there was a very long string of literal characters (over 255 bytes without UTF support, over 250 bytes with UTF support), the computation of how much memory was required could be incorrect, leading to segfaults or other strange effects. 25. PCRE was incorrectly assuming anchoring (either to start of subject or to start of line for a non-DOTALL pattern) when a pattern started with (.*) and there was a subsequent back reference to those brackets. This meant that, for example, /(.*)\d+\1/ failed to match "abc123bc". Unfortunately, it isn't possible to check for precisely this case. All we can do is abandon the optimization if .* occurs inside capturing brackets when there are any back references whatsoever. (See below for a better fix that came later.) 26. The handling of the optimization for finding the first character of a non-anchored pattern, and for finding a character that is required later in the match were failing in some cases. This didn't break the matching; it just failed to optimize when it could. The way this is done has been re-implemented. 27. Fixed typo in error message for invalid (?R item (it said "(?p"). 28. Added a new feature that provides some of the functionality that Perl provides with (?{...}). The facility is termed a "callout". The way it is done in PCRE is for the caller to provide an optional function, by setting pcre_callout to its entry point. Like pcre_malloc and pcre_free, this is a global variable. By default it is unset, which disables all calling out. To get the function called, the regex must include (?C) at appropriate points. This is, in fact, equivalent to (?C0), and any number <= 255 may be given with (?C). This provides a means of identifying different callout points. When PCRE reaches such a point in the regex, if pcre_callout has been set, the external function is called. It is provided with data in a structure called pcre_callout_block, which is defined in pcre.h. If the function returns 0, matching continues; if it returns a non-zero value, the match at the current point fails. However, backtracking will occur if possible. [This was changed later and other features added - see item 49 below.] 29. pcretest is upgraded to test the callout functionality. It provides a callout function that displays information. By default, it shows the start of the match and the current position in the text. There are some new data escapes to vary what happens: \C+ in addition, show current contents of captured substrings \C- do not supply a callout function \C!n return 1 when callout number n is reached \C!n!m return 1 when callout number n is reached for the mth time 30. If pcregrep was called with the -l option and just a single file name, it output "" if a match was found, instead of the file name. 31. Improve the efficiency of the POSIX API to PCRE. If the number of capturing slots is less than POSIX_MALLOC_THRESHOLD, use a block on the stack to pass to pcre_exec(). This saves a malloc/free per call. The default value of POSIX_MALLOC_THRESHOLD is 10; it can be changed by --with-posix-malloc-threshold when configuring. 32. The default maximum size of a compiled pattern is 64K. There have been a few cases of people hitting this limit. The code now uses macros to handle the storing of links as offsets within the compiled pattern. It defaults to 2-byte links, but this can be changed to 3 or 4 bytes by --with-link-size when configuring. Tests 2 and 5 work only with 2-byte links because they output debugging information about compiled patterns. 33. Internal code re-arrangements: (a) Moved the debugging function for printing out a compiled regex into its own source file (printint.c) and used #include to pull it into pcretest.c and, when DEBUG is defined, into pcre.c, instead of having two separate copies. (b) Defined the list of op-code names for debugging as a macro in internal.h so that it is next to the definition of the opcodes. (c) Defined a table of op-code lengths for simpler skipping along compiled code. This is again a macro in internal.h so that it is next to the definition of the opcodes. 34. Added support for recursive calls to individual subpatterns, along the lines of Robin Houston's patch (but implemented somewhat differently). 35. Further mods to the Makefile to help Win32. Also, added code to pcregrep to allow it to read and process whole directories in Win32. This code was contributed by Lionel Fourquaux; it has not been tested by me. 36. Added support for named subpatterns. The Python syntax (?P...) is used to name a group. Names consist of alphanumerics and underscores, and must be unique. Back references use the syntax (?P=name) and recursive calls use (?P>name) which is a PCRE extension to the Python extension. Groups still have numbers. The function pcre_fullinfo() can be used after compilation to extract a name/number map. There are three relevant calls: PCRE_INFO_NAMEENTRYSIZE yields the size of each entry in the map PCRE_INFO_NAMECOUNT yields the number of entries PCRE_INFO_NAMETABLE yields a pointer to the map. The map is a vector of fixed-size entries. The size of each entry depends on the length of the longest name used. The first two bytes of each entry are the group number, most significant byte first. There follows the corresponding name, zero terminated. The names are in alphabetical order. 37. Make the maximum literal string in the compiled code 250 for the non-UTF-8 case instead of 255. Making it the same both with and without UTF-8 support means that the same test output works with both. 38. There was a case of malloc(0) in the POSIX testing code in pcretest. Avoid calling malloc() with a zero argument. 39. Change 25 above had to resort to a heavy-handed test for the .* anchoring optimization. I've improved things by keeping a bitmap of backreferences with numbers 1-31 so that if .* occurs inside capturing brackets that are not in fact referenced, the optimization can be applied. It is unlikely that a relevant occurrence of .* (i.e. one which might indicate anchoring or forcing the match to follow \n) will appear inside brackets with a number greater than 31, but if it does, any back reference > 31 suppresses the optimization. 40. Added a new compile-time option PCRE_NO_AUTO_CAPTURE. This has the effect of disabling numbered capturing parentheses. Any opening parenthesis that is not followed by ? behaves as if it were followed by ?: but named parentheses can still be used for capturing (and they will acquire numbers in the usual way). 41. Redesigned the return codes from the match() function into yes/no/error so that errors can be passed back from deep inside the nested calls. A malloc failure while inside a recursive subpattern call now causes the PCRE_ERROR_NOMEMORY return instead of quietly going wrong. 42. It is now possible to set a limit on the number of times the match() function is called in a call to pcre_exec(). This facility makes it possible to limit the amount of recursion and backtracking, though not in a directly obvious way, because the match() function is used in a number of different circumstances. The count starts from zero for each position in the subject string (for non-anchored patterns). The default limit is, for compatibility, a large number, namely 10 000 000. You can change this in two ways: (a) When configuring PCRE before making, you can use --with-match-limit=n to set a default value for the compiled library. (b) For each call to pcre_exec(), you can pass a pcre_extra block in which a different value is set. See 45 below. If the limit is exceeded, pcre_exec() returns PCRE_ERROR_MATCHLIMIT. 43. Added a new function pcre_config(int, void *) to enable run-time extraction of things that can be changed at compile time. The first argument specifies what is wanted and the second points to where the information is to be placed. The current list of available information is: PCRE_CONFIG_UTF8 The output is an integer that is set to one if UTF-8 support is available; otherwise it is set to zero. PCRE_CONFIG_NEWLINE The output is an integer that it set to the value of the code that is used for newline. It is either LF (10) or CR (13). PCRE_CONFIG_LINK_SIZE The output is an integer that contains the number of bytes used for internal linkage in compiled expressions. The value is 2, 3, or 4. See item 32 above. PCRE_CONFIG_POSIX_MALLOC_THRESHOLD The output is an integer that contains the threshold above which the POSIX interface uses malloc() for output vectors. See item 31 above. PCRE_CONFIG_MATCH_LIMIT The output is an unsigned integer that contains the default limit of the number of match() calls in a pcre_exec() execution. See 42 above. 44. pcretest has been upgraded by the addition of the -C option. This causes it to extract all the available output from the new pcre_config() function, and to output it. The program then exits immediately. 45. A need has arisen to pass over additional data with calls to pcre_exec() in order to support additional features. One way would have been to define pcre_exec2() (for example) with extra arguments, but this would not have been extensible, and would also have required all calls to the original function to be mapped to the new one. Instead, I have chosen to extend the mechanism that is used for passing in "extra" data from pcre_study(). The pcre_extra structure is now exposed and defined in pcre.h. It currently contains the following fields: flags a bitmap indicating which of the following fields are set study_data opaque data from pcre_study() match_limit a way of specifying a limit on match() calls for a specific call to pcre_exec() callout_data data for callouts (see 49 below) The flag bits are also defined in pcre.h, and are PCRE_EXTRA_STUDY_DATA PCRE_EXTRA_MATCH_LIMIT PCRE_EXTRA_CALLOUT_DATA The pcre_study() function now returns one of these new pcre_extra blocks, with the actual study data pointed to by the study_data field, and the PCRE_EXTRA_STUDY_DATA flag set. This can be passed directly to pcre_exec() as before. That is, this change is entirely upwards-compatible and requires no change to existing code. If you want to pass in additional data to pcre_exec(), you can either place it in a pcre_extra block provided by pcre_study(), or create your own pcre_extra block. 46. pcretest has been extended to test the PCRE_EXTRA_MATCH_LIMIT feature. If a data string contains the escape sequence \M, pcretest calls pcre_exec() several times with different match limits, until it finds the minimum value needed for pcre_exec() to complete. The value is then output. This can be instructive; for most simple matches the number is quite small, but for pathological cases it gets very large very quickly. 47. There's a new option for pcre_fullinfo() called PCRE_INFO_STUDYSIZE. It returns the size of the data block pointed to by the study_data field in a pcre_extra block, that is, the value that was passed as the argument to pcre_malloc() when PCRE was getting memory in which to place the information created by pcre_study(). The fourth argument should point to a size_t variable. pcretest has been extended so that this information is shown after a successful pcre_study() call when information about the compiled regex is being displayed. 48. Cosmetic change to Makefile: there's no need to have / after $(DESTDIR) because what follows is always an absolute path. (Later: it turns out that this is more than cosmetic for MinGW, because it doesn't like empty path components.) 49. Some changes have been made to the callout feature (see 28 above): (i) A callout function now has three choices for what it returns: 0 => success, carry on matching > 0 => failure at this point, but backtrack if possible < 0 => serious error, return this value from pcre_exec() Negative values should normally be chosen from the set of PCRE_ERROR_xxx values. In particular, returning PCRE_ERROR_NOMATCH forces a standard "match failed" error. The error number PCRE_ERROR_CALLOUT is reserved for use by callout functions. It will never be used by PCRE itself. (ii) The pcre_extra structure (see 45 above) has a void * field called callout_data, with corresponding flag bit PCRE_EXTRA_CALLOUT_DATA. The pcre_callout_block structure has a field of the same name. The contents of the field passed in the pcre_extra structure are passed to the callout function in the corresponding field in the callout block. This makes it easier to use the same callout-containing regex from multiple threads. For testing, the pcretest program has a new data escape \C*n pass the number n (may be negative) as callout_data If the callout function in pcretest receives a non-zero value as callout_data, it returns that value. 50. Makefile wasn't handling CFLAGS properly when compiling dftables. Also, there were some redundant $(CFLAGS) in commands that are now specified as $(LINK), which already includes $(CFLAGS). 51. Extensions to UTF-8 support are listed below. These all apply when (a) PCRE has been compiled with UTF-8 support *and* pcre_compile() has been compiled with the PCRE_UTF8 flag. Patterns that are compiled without that flag assume one-byte characters throughout. Note that case-insensitive matching applies only to characters whose values are less than 256. PCRE doesn't support the notion of cases for higher-valued characters. (i) A character class whose characters are all within 0-255 is handled as a bit map, and the map is inverted for negative classes. Previously, a character > 255 always failed to match such a class; however it should match if the class was a negative one (e.g. [^ab]). This has been fixed. (ii) A negated character class with a single character < 255 is coded as "not this character" (OP_NOT). This wasn't working properly when the test character was multibyte, either singly or repeated. (iii) Repeats of multibyte characters are now handled correctly in UTF-8 mode, for example: \x{100}{2,3}. (iv) The character escapes \b, \B, \d, \D, \s, \S, \w, and \W (either singly or repeated) now correctly test multibyte characters. However, PCRE doesn't recognize any characters with values greater than 255 as digits, spaces, or word characters. Such characters always match \D, \S, and \W, and never match \d, \s, or \w. (v) Classes may now contain characters and character ranges with values greater than 255. For example: [ab\x{100}-\x{400}]. (vi) pcregrep now has a --utf-8 option (synonym -u) which makes it call PCRE in UTF-8 mode. 52. The info request value PCRE_INFO_FIRSTCHAR has been renamed PCRE_INFO_FIRSTBYTE because it is a byte value. However, the old name is retained for backwards compatibility. (Note that LASTLITERAL is also a byte value.) 53. The single man page has become too large. I have therefore split it up into a number of separate man pages. These also give rise to individual HTML pages; these are now put in a separate directory, and there is an index.html page that lists them all. Some hyperlinking between the pages has been installed. 54. Added convenience functions for handling named capturing parentheses. 55. Unknown escapes inside character classes (e.g. [\M]) and escapes that aren't interpreted therein (e.g. [\C]) are literals in Perl. This is now also true in PCRE, except when the PCRE_EXTENDED option is set, in which case they are faulted. 56. Introduced HOST_CC and HOST_CFLAGS which can be set in the environment when calling configure. These values are used when compiling the dftables.c program which is run to generate the source of the default character tables. They default to the values of CC and CFLAGS. If you are cross-compiling PCRE, you will need to set these values. 57. Updated the building process for Windows DLL, as provided by Fred Cox. Version 3.9 02-Jan-02 --------------------- 1. A bit of extraneous text had somehow crept into the pcregrep documentation. 2. If --disable-static was given, the building process failed when trying to build pcretest and pcregrep. (For some reason it was using libtool to compile them, which is not right, as they aren't part of the library.) Version 3.8 18-Dec-01 --------------------- 1. The experimental UTF-8 code was completely screwed up. It was packing the bytes in the wrong order. How dumb can you get? Version 3.7 29-Oct-01 --------------------- 1. In updating pcretest to check change 1 of version 3.6, I screwed up. This caused pcretest, when used on the test data, to segfault. Unfortunately, this didn't happen under Solaris 8, where I normally test things. 2. The Makefile had to be changed to make it work on BSD systems, where 'make' doesn't seem to recognize that ./xxx and xxx are the same file. (This entry isn't in ChangeLog distributed with 3.7 because I forgot when I hastily made this fix an hour or so after the initial 3.7 release.) Version 3.6 23-Oct-01 --------------------- 1. Crashed with /(sens|respons)e and \1ibility/ and "sense and sensibility" if offsets passed as NULL with zero offset count. 2. The config.guess and config.sub files had not been updated when I moved to the latest autoconf. Version 3.5 15-Aug-01 --------------------- 1. Added some missing #if !defined NOPOSIX conditionals in pcretest.c that had been forgotten. 2. By using declared but undefined structures, we can avoid using "void" definitions in pcre.h while keeping the internal definitions of the structures private. 3. The distribution is now built using autoconf 2.50 and libtool 1.4. From a user point of view, this means that both static and shared libraries are built by default, but this can be individually controlled. More of the work of handling this static/shared cases is now inside libtool instead of PCRE's make file. 4. The pcretest utility is now installed along with pcregrep because it is useful for users (to test regexs) and by doing this, it automatically gets relinked by libtool. The documentation has been turned into a man page, so there are now .1, .txt, and .html versions in /doc. 5. Upgrades to pcregrep: (i) Added long-form option names like gnu grep. (ii) Added --help to list all options with an explanatory phrase. (iii) Added -r, --recursive to recurse into sub-directories. (iv) Added -f, --file to read patterns from a file. 6. pcre_exec() was referring to its "code" argument before testing that argument for NULL (and giving an error if it was NULL). 7. Upgraded Makefile.in to allow for compiling in a different directory from the source directory. 8. Tiny buglet in pcretest: when pcre_fullinfo() was called to retrieve the options bits, the pointer it was passed was to an int instead of to an unsigned long int. This mattered only on 64-bit systems. 9. Fixed typo (3.4/1) in pcre.h again. Sigh. I had changed pcre.h (which is generated) instead of pcre.in, which it its source. Also made the same change in several of the .c files. 10. A new release of gcc defines printf() as a macro, which broke pcretest because it had an ifdef in the middle of a string argument for printf(). Fixed by using separate calls to printf(). 11. Added --enable-newline-is-cr and --enable-newline-is-lf to the configure script, to force use of CR or LF instead of \n in the source. On non-Unix systems, the value can be set in config.h. 12. The limit of 200 on non-capturing parentheses is a _nesting_ limit, not an absolute limit. Changed the text of the error message to make this clear, and likewise updated the man page. 13. The limit of 99 on the number of capturing subpatterns has been removed. The new limit is 65535, which I hope will not be a "real" limit. Version 3.4 22-Aug-00 --------------------- 1. Fixed typo in pcre.h: unsigned const char * changed to const unsigned char *. 2. Diagnose condition (?(0) as an error instead of crashing on matching. Version 3.3 01-Aug-00 --------------------- 1. If an octal character was given, but the value was greater than \377, it was not getting masked to the least significant bits, as documented. This could lead to crashes in some systems. 2. Perl 5.6 (if not earlier versions) accepts classes like [a-\d] and treats the hyphen as a literal. PCRE used to give an error; it now behaves like Perl. 3. Added the functions pcre_free_substring() and pcre_free_substring_list(). These just pass their arguments on to (pcre_free)(), but they are provided because some uses of PCRE bind it to non-C systems that can call its functions, but cannot call free() or pcre_free() directly. 4. Add "make test" as a synonym for "make check". Corrected some comments in the Makefile. 5. Add $(DESTDIR)/ in front of all the paths in the "install" target in the Makefile. 6. Changed the name of pgrep to pcregrep, because Solaris has introduced a command called pgrep for grepping around the active processes. 7. Added the beginnings of support for UTF-8 character strings. 8. Arranged for the Makefile to pass over the settings of CC, CFLAGS, and RANLIB to ./ltconfig so that they are used by libtool. I think these are all the relevant ones. (AR is not passed because ./ltconfig does its own figuring out for the ar command.) Version 3.2 12-May-00 --------------------- This is purely a bug fixing release. 1. If the pattern /((Z)+|A)*/ was matched agained ZABCDEFG it matched Z instead of ZA. This was just one example of several cases that could provoke this bug, which was introduced by change 9 of version 2.00. The code for breaking infinite loops after an iteration that matches an empty string was't working correctly. 2. The pcretest program was not imitating Perl correctly for the pattern /a*/g when matched against abbab (for example). After matching an empty string, it wasn't forcing anchoring when setting PCRE_NOTEMPTY for the next attempt; this caused it to match further down the string than it should. 3. The code contained an inclusion of sys/types.h. It isn't clear why this was there because it doesn't seem to be needed, and it causes trouble on some systems, as it is not a Standard C header. It has been removed. 4. Made 4 silly changes to the source to avoid stupid compiler warnings that were reported on the Macintosh. The changes were from while ((c = *(++ptr)) != 0 && c != '\n'); to while ((c = *(++ptr)) != 0 && c != '\n') ; Totally extraordinary, but if that's what it takes... 5. PCRE is being used in one environment where neither memmove() nor bcopy() is available. Added HAVE_BCOPY and an autoconf test for it; if neither HAVE_MEMMOVE nor HAVE_BCOPY is set, use a built-in emulation function which assumes the way PCRE uses memmove() (always moving upwards). 6. PCRE is being used in one environment where strchr() is not available. There was only one use in pcre.c, and writing it out to avoid strchr() probably gives faster code anyway. Version 3.1 09-Feb-00 --------------------- The only change in this release is the fixing of some bugs in Makefile.in for the "install" target: (1) It was failing to install pcreposix.h. (2) It was overwriting the pcre.3 man page with the pcreposix.3 man page. Version 3.0 01-Feb-00 --------------------- 1. Add support for the /+ modifier to perltest (to output $` like it does in pcretest). 2. Add support for the /g modifier to perltest. 3. Fix pcretest so that it behaves even more like Perl for /g when the pattern matches null strings. 4. Fix perltest so that it doesn't do unwanted things when fed an empty pattern. Perl treats empty patterns specially - it reuses the most recent pattern, which is not what we want. Replace // by /(?#)/ in order to avoid this effect. 5. The POSIX interface was broken in that it was just handing over the POSIX captured string vector to pcre_exec(), but (since release 2.00) PCRE has required a bigger vector, with some working space on the end. This means that the POSIX wrapper now has to get and free some memory, and copy the results. 6. Added some simple autoconf support, placing the test data and the documentation in separate directories, re-organizing some of the information files, and making it build pcre-config (a GNU standard). Also added libtool support for building PCRE as a shared library, which is now the default. 7. Got rid of the leading zero in the definition of PCRE_MINOR because 08 and 09 are not valid octal constants. Single digits will be used for minor values less than 10. 8. Defined REG_EXTENDED and REG_NOSUB as zero in the POSIX header, so that existing programs that set these in the POSIX interface can use PCRE without modification. 9. Added a new function, pcre_fullinfo() with an extensible interface. It can return all that pcre_info() returns, plus additional data. The pcre_info() function is retained for compatibility, but is considered to be obsolete. 10. Added experimental recursion feature (?R) to handle one common case that Perl 5.6 will be able to do with (?p{...}). 11. Added support for POSIX character classes like [:alpha:], which Perl is adopting. Version 2.08 31-Aug-99 ---------------------- 1. When startoffset was not zero and the pattern began with ".*", PCRE was not trying to match at the startoffset position, but instead was moving forward to the next newline as if a previous match had failed. 2. pcretest was not making use of PCRE_NOTEMPTY when repeating for /g and /G, and could get into a loop if a null string was matched other than at the start of the subject. 3. Added definitions of PCRE_MAJOR and PCRE_MINOR to pcre.h so the version can be distinguished at compile time, and for completeness also added PCRE_DATE. 5. Added Paul Sokolovsky's minor changes to make it easy to compile a Win32 DLL in GnuWin32 environments. Version 2.07 29-Jul-99 ---------------------- 1. The documentation is now supplied in plain text form and HTML as well as in the form of man page sources. 2. C++ compilers don't like assigning (void *) values to other pointer types. In particular this affects malloc(). Although there is no problem in Standard C, I've put in casts to keep C++ compilers happy. 3. Typo on pcretest.c; a cast of (unsigned char *) in the POSIX regexec() call should be (const char *). 4. If NOPOSIX is defined, pcretest.c compiles without POSIX support. This may be useful for non-Unix systems who don't want to bother with the POSIX stuff. However, I haven't made this a standard facility. The documentation doesn't mention it, and the Makefile doesn't support it. 5. The Makefile now contains an "install" target, with editable destinations at the top of the file. The pcretest program is not installed. 6. pgrep -V now gives the PCRE version number and date. 7. Fixed bug: a zero repetition after a literal string (e.g. /abcde{0}/) was causing the entire string to be ignored, instead of just the last character. 8. If a pattern like /"([^\\"]+|\\.)*"/ is applied in the normal way to a non-matching string, it can take a very, very long time, even for strings of quite modest length, because of the nested recursion. PCRE now does better in some of these cases. It does this by remembering the last required literal character in the pattern, and pre-searching the subject to ensure it is present before running the real match. In other words, it applies a heuristic to detect some types of certain failure quickly, and in the above example, if presented with a string that has no trailing " it gives "no match" very quickly. 9. A new runtime option PCRE_NOTEMPTY causes null string matches to be ignored; other alternatives are tried instead. Version 2.06 09-Jun-99 ---------------------- 1. Change pcretest's output for amount of store used to show just the code space, because the remainder (the data block) varies in size between 32-bit and 64-bit systems. 2. Added an extra argument to pcre_exec() to supply an offset in the subject to start matching at. This allows lookbehinds to work when searching for multiple occurrences in a string. 3. Added additional options to pcretest for testing multiple occurrences: /+ outputs the rest of the string that follows a match /g loops for multiple occurrences, using the new startoffset argument /G loops for multiple occurrences by passing an incremented pointer 4. PCRE wasn't doing the "first character" optimization for patterns starting with \b or \B, though it was doing it for other lookbehind assertions. That is, it wasn't noticing that a match for a pattern such as /\bxyz/ has to start with the letter 'x'. On long subject strings, this gives a significant speed-up. Version 2.05 21-Apr-99 ---------------------- 1. Changed the type of magic_number from int to long int so that it works properly on 16-bit systems. 2. Fixed a bug which caused patterns starting with .* not to work correctly when the subject string contained newline characters. PCRE was assuming anchoring for such patterns in all cases, which is not correct because .* will not pass a newline unless PCRE_DOTALL is set. It now assumes anchoring only if DOTALL is set at top level; otherwise it knows that patterns starting with .* must be retried after every newline in the subject. Version 2.04 18-Feb-99 ---------------------- 1. For parenthesized subpatterns with repeats whose minimum was zero, the computation of the store needed to hold the pattern was incorrect (too large). If such patterns were nested a few deep, this could multiply and become a real problem. 2. Added /M option to pcretest to show the memory requirement of a specific pattern. Made -m a synonym of -s (which does this globally) for compatibility. 3. Subpatterns of the form (regex){n,m} (i.e. limited maximum) were being compiled in such a way that the backtracking after subsequent failure was pessimal. Something like (a){0,3} was compiled as (a)?(a)?(a)? instead of ((a)((a)(a)?)?)? with disastrous performance if the maximum was of any size. Version 2.03 02-Feb-99 ---------------------- 1. Fixed typo and small mistake in man page. 2. Added 4th condition (GPL supersedes if conflict) and created separate LICENCE file containing the conditions. 3. Updated pcretest so that patterns such as /abc\/def/ work like they do in Perl, that is the internal \ allows the delimiter to be included in the pattern. Locked out the use of \ as a delimiter. If \ immediately follows the final delimiter, add \ to the end of the pattern (to test the error). 4. Added the convenience functions for extracting substrings after a successful match. Updated pcretest to make it able to test these functions. Version 2.02 14-Jan-99 ---------------------- 1. Initialized the working variables associated with each extraction so that their saving and restoring doesn't refer to uninitialized store. 2. Put dummy code into study.c in order to trick the optimizer of the IBM C compiler for OS/2 into generating correct code. Apparently IBM isn't going to fix the problem. 3. Pcretest: the timing code wasn't using LOOPREPEAT for timing execution calls, and wasn't printing the correct value for compiling calls. Increased the default value of LOOPREPEAT, and the number of significant figures in the times. 4. Changed "/bin/rm" in the Makefile to "-rm" so it works on Windows NT. 5. Renamed "deftables" as "dftables" to get it down to 8 characters, to avoid a building problem on Windows NT with a FAT file system. Version 2.01 21-Oct-98 ---------------------- 1. Changed the API for pcre_compile() to allow for the provision of a pointer to character tables built by pcre_maketables() in the current locale. If NULL is passed, the default tables are used. Version 2.00 24-Sep-98 ---------------------- 1. Since the (>?) facility is in Perl 5.005, don't require PCRE_EXTRA to enable it any more. 2. Allow quantification of (?>) groups, and make it work correctly. 3. The first character computation wasn't working for (?>) groups. 4. Correct the implementation of \Z (it is permitted to match on the \n at the end of the subject) and add 5.005's \z, which really does match only at the very end of the subject. 5. Remove the \X "cut" facility; Perl doesn't have it, and (?> is neater. 6. Remove the ability to specify CASELESS, MULTILINE, DOTALL, and DOLLAR_END_ONLY at runtime, to make it possible to implement the Perl 5.005 localized options. All options to pcre_study() were also removed. 7. Add other new features from 5.005: $(?<= positive lookbehind $(?a*))*/ (a PCRE_EXTRA facility). Version 1.00 18-Nov-97 ---------------------- 1. Added compile-time macros to support systems such as SunOS4 which don't have memmove() or strerror() but have other things that can be used instead. 2. Arranged that "make clean" removes the executables. Version 0.99 27-Oct-97 ---------------------- 1. Fixed bug in code for optimizing classes with only one character. It was initializing a 32-byte map regardless, which could cause it to run off the end of the memory it had got. 2. Added, conditional on PCRE_EXTRA, the proposed (?>REGEX) construction. Version 0.98 22-Oct-97 ---------------------- 1. Fixed bug in code for handling temporary memory usage when there are more back references than supplied space in the ovector. This could cause segfaults. Version 0.97 21-Oct-97 ---------------------- 1. Added the \X "cut" facility, conditional on PCRE_EXTRA. 2. Optimized negated single characters not to use a bit map. 3. Brought error texts together as macro definitions; clarified some of them; fixed one that was wrong - it said "range out of order" when it meant "invalid escape sequence". 4. Changed some char * arguments to const char *. 5. Added PCRE_NOTBOL and PCRE_NOTEOL (from POSIX). 6. Added the POSIX-style API wrapper in pcreposix.a and testing facilities in pcretest. Version 0.96 16-Oct-97 ---------------------- 1. Added a simple "pgrep" utility to the distribution. 2. Fixed an incompatibility with Perl: "{" is now treated as a normal character unless it appears in one of the precise forms "{ddd}", "{ddd,}", or "{ddd,ddd}" where "ddd" means "one or more decimal digits". 3. Fixed serious bug. If a pattern had a back reference, but the call to pcre_exec() didn't supply a large enough ovector to record the related identifying subpattern, the match always failed. PCRE now remembers the number of the largest back reference, and gets some temporary memory in which to save the offsets during matching if necessary, in order to ensure that backreferences always work. 4. Increased the compatibility with Perl in a number of ways: (a) . no longer matches \n by default; an option PCRE_DOTALL is provided to request this handling. The option can be set at compile or exec time. (b) $ matches before a terminating newline by default; an option PCRE_DOLLAR_ENDONLY is provided to override this (but not in multiline mode). The option can be set at compile or exec time. (c) The handling of \ followed by a digit other than 0 is now supposed to be the same as Perl's. If the decimal number it represents is less than 10 or there aren't that many previous left capturing parentheses, an octal escape is read. Inside a character class, it's always an octal escape, even if it is a single digit. (d) An escaped but undefined alphabetic character is taken as a literal, unless PCRE_EXTRA is set. Currently this just reserves the remaining escapes. (e) {0} is now permitted. (The previous item is removed from the compiled pattern). 5. Changed all the names of code files so that the basic parts are no longer than 10 characters, and abolished the teeny "globals.c" file. 6. Changed the handling of character classes; they are now done with a 32-byte bit map always. 7. Added the -d and /D options to pcretest to make it possible to look at the internals of compilation without having to recompile pcre. Version 0.95 23-Sep-97 ---------------------- 1. Fixed bug in pre-pass concerning escaped "normal" characters such as \x5c or \x20 at the start of a run of normal characters. These were being treated as real characters, instead of the source characters being re-checked. Version 0.94 18-Sep-97 ---------------------- 1. The functions are now thread-safe, with the caveat that the global variables containing pointers to malloc() and free() or alternative functions are the same for all threads. 2. Get pcre_study() to generate a bitmap of initial characters for non- anchored patterns when this is possible, and use it if passed to pcre_exec(). Version 0.93 15-Sep-97 ---------------------- 1. /(b)|(:+)/ was computing an incorrect first character. 2. Add pcre_study() to the API and the passing of pcre_extra to pcre_exec(), but not actually doing anything yet. 3. Treat "-" characters in classes that cannot be part of ranges as literals, as Perl does (e.g. [-az] or [az-]). 4. Set the anchored flag if a branch starts with .* or .*? because that tests all possible positions. 5. Split up into different modules to avoid including unneeded functions in a compiled binary. However, compile and exec are still in one module. The "study" function is split off. 6. The character tables are now in a separate module whose source is generated by an auxiliary program - but can then be edited by hand if required. There are now no calls to isalnum(), isspace(), isdigit(), isxdigit(), tolower() or toupper() in the code. 7. Turn the malloc/free funtions variables into pcre_malloc and pcre_free and make them global. Abolish the function for setting them, as the caller can now set them directly. Version 0.92 11-Sep-97 ---------------------- 1. A repeat with a fixed maximum and a minimum of 1 for an ordinary character (e.g. /a{1,3}/) was broken (I mis-optimized it). 2. Caseless matching was not working in character classes if the characters in the pattern were in upper case. 3. Make ranges like [W-c] work in the same way as Perl for caseless matching. 4. Make PCRE_ANCHORED public and accept as a compile option. 5. Add an options word to pcre_exec() and accept PCRE_ANCHORED and PCRE_CASELESS at run time. Add escapes \A and \I to pcretest to cause it to pass them. 6. Give an error if bad option bits passed at compile or run time. 7. Add PCRE_MULTILINE at compile and exec time, and (?m) as well. Add \M to pcretest to cause it to pass that flag. 8. Add pcre_info(), to get the number of identifying subpatterns, the stored options, and the first character, if set. 9. Recognize C+ or C{n,m} where n >= 1 as providing a fixed starting character. Version 0.91 10-Sep-97 ---------------------- 1. PCRE was failing to diagnose unlimited repeats of subpatterns that could match the empty string as in /(a*)*/. It was looping and ultimately crashing. 2. PCRE was looping on encountering an indefinitely repeated back reference to a subpattern that had matched an empty string, e.g. /(a|)\1*/. It now does what Perl does - treats the match as successful. **** ================================================ FILE: Project/Pcre/Source/LICENCE ================================================ PCRE LICENCE ------------ PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Release 6 of PCRE is distributed under the terms of the "BSD" licence, as specified below. The documentation for PCRE, supplied in the "doc" directory, is distributed under the same terms as the software itself. The basic library functions are written in C and are freestanding. Also included in the distribution is a set of C++ wrapper functions. THE BASIC LIBRARY FUNCTIONS --------------------------- Written by: Philip Hazel Email local part: ph10 Email domain: cam.ac.uk University of Cambridge Computing Service, Cambridge, England. Phone: +44 1223 334714. Copyright (c) 1997-2005 University of Cambridge All rights reserved. THE C++ WRAPPER FUNCTIONS ------------------------- Contributed by: Google Inc. Copyright (c) 2005, Google Inc. All rights reserved. THE "BSD" LICENCE ----------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the name of Google Inc. nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. End ================================================ FILE: Project/Pcre/Source/Makefile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/Pcre/Source/NEWS ================================================ News about PCRE releases ------------------------ Release 6.0 07-Jun-05 --------------------- The release number has been increased to 6.0 because of the addition of several major new pieces of functionality. A new function, pcre_dfa_exec(), which implements pattern matching using a DFA algorithm, has been added. This has a number of advantages for certain cases, though it does run more slowly, and lacks the ability to capture substrings. On the other hand, it does find all matches, not just the first, and it works better for partial matching. The pcrematching man page discusses the differences. The pcretest program has been enhanced so that it can make use of the new pcre_dfa_exec() matching function and the extra features it provides. The distribution now includes a C++ wrapper library. This is built automatically if a C++ compiler is found. The pcrecpp man page discusses this interface. The code itself has been re-organized into many more files, one for each function, so it no longer requires everything to be linked in when static linkage is used. As a consequence, some internal functions have had to have their names exposed. These functions all have names starting with _pcre_. They are undocumented, and are not intended for use by outside callers. The pcregrep program has been enhanced with new functionality such as multiline-matching and options for output more matching context. See the ChangeLog for a complete list of changes to the library and the utility programs. Release 5.0 13-Sep-04 --------------------- The licence under which PCRE is released has been changed to the more conventional "BSD" licence. In the code, some bugs have been fixed, and there are also some major changes in this release (which is why I've increased the number to 5.0). Some changes are internal rearrangements, and some provide a number of new facilities. The new features are: 1. There's an "automatic callout" feature that inserts callouts before every item in the regex, and there's a new callout field that gives the position in the pattern - useful for debugging and tracing. 2. The extra_data structure can now be used to pass in a set of character tables at exec time. This is useful if compiled regex are saved and re-used at a later time when the tables may not be at the same address. If the default internal tables are used, the pointer saved with the compiled pattern is now set to NULL, which means that you don't need to do anything special unless you are using custom tables. 3. It is possible, with some restrictions on the content of the regex, to request "partial" matching. A special return code is given if all of the subject string matched part of the regex. This could be useful for testing an input field as it is being typed. 4. There is now some optional support for Unicode character properties, which means that the patterns items such as \p{Lu} and \X can now be used. Only the general category properties are supported. If PCRE is compiled with this support, an additional 90K data structure is include, which increases the size of the library dramatically. 5. There is support for saving compiled patterns and re-using them later. 6. There is support for running regular expressions that were compiled on a different host with the opposite endianness. 7. The pcretest program has been extended to accommodate the new features. The main internal rearrangement is that sequences of literal characters are no longer handled as strings. Instead, each character is handled on its own. This makes some UTF-8 handling easier, and makes the support of partial matching possible. Compiled patterns containing long literal strings will be larger as a result of this change; I hope that performance will not be much affected. Release 4.5 01-Dec-03 --------------------- Again mainly a bug-fix and tidying release, with only a couple of new features: 1. It's possible now to compile PCRE so that it does not use recursive function calls when matching. Instead it gets memory from the heap. This slows things down, but may be necessary on systems with limited stacks. 2. UTF-8 string checking has been tightened to reject overlong sequences and to check that a starting offset points to the start of a character. Failure of the latter returns a new error code: PCRE_ERROR_BADUTF8_OFFSET. 3. PCRE can now be compiled for systems that use EBCDIC code. Release 4.4 21-Aug-03 --------------------- This is mainly a bug-fix and tidying release. The only new feature is that PCRE checks UTF-8 strings for validity by default. There is an option to suppress this, just in case anybody wants that teeny extra bit of performance. Releases 4.1 - 4.3 ------------------ Sorry, I forgot about updating the NEWS file for these releases. Please take a look at ChangeLog. Release 4.0 17-Feb-03 --------------------- There have been a lot of changes for the 4.0 release, adding additional functionality and mending bugs. Below is a list of the highlights of the new functionality. For full details of these features, please consult the documentation. For a complete list of changes, see the ChangeLog file. 1. Support for Perl's \Q...\E escapes. 2. "Possessive quantifiers" ?+, *+, ++, and {,}+ which come from Sun's Java package. They provide some syntactic sugar for simple cases of "atomic grouping". 3. Support for the \G assertion. It is true when the current matching position is at the start point of the match. 4. A new feature that provides some of the functionality that Perl provides with (?{...}). The facility is termed a "callout". The way it is done in PCRE is for the caller to provide an optional function, by setting pcre_callout to its entry point. To get the function called, the regex must include (?C) at appropriate points. 5. Support for recursive calls to individual subpatterns. This makes it really easy to get totally confused. 6. Support for named subpatterns. The Python syntax (?P...) is used to name a group. 7. Several extensions to UTF-8 support; it is now fairly complete. There is an option for pcregrep to make it operate in UTF-8 mode. 8. The single man page has been split into a number of separate man pages. These also give rise to individual HTML pages which are put in a separate directory. There is an index.html page that lists them all. Some hyperlinking between the pages has been installed. Release 3.5 15-Aug-01 --------------------- 1. The configuring system has been upgraded to use later versions of autoconf and libtool. By default it builds both a shared and a static library if the OS supports it. You can use --disable-shared or --disable-static on the configure command if you want only one of them. 2. The pcretest utility is now installed along with pcregrep because it is useful for users (to test regexs) and by doing this, it automatically gets relinked by libtool. The documentation has been turned into a man page, so there are now .1, .txt, and .html versions in /doc. 3. Upgrades to pcregrep: (i) Added long-form option names like gnu grep. (ii) Added --help to list all options with an explanatory phrase. (iii) Added -r, --recursive to recurse into sub-directories. (iv) Added -f, --file to read patterns from a file. 4. Added --enable-newline-is-cr and --enable-newline-is-lf to the configure script, to force use of CR or LF instead of \n in the source. On non-Unix systems, the value can be set in config.h. 5. The limit of 200 on non-capturing parentheses is a _nesting_ limit, not an absolute limit. Changed the text of the error message to make this clear, and likewise updated the man page. 6. The limit of 99 on the number of capturing subpatterns has been removed. The new limit is 65535, which I hope will not be a "real" limit. Release 3.3 01-Aug-00 --------------------- There is some support for UTF-8 character strings. This is incomplete and experimental. The documentation describes what is and what is not implemented. Otherwise, this is just a bug-fixing release. Release 3.0 01-Feb-00 --------------------- 1. A "configure" script is now used to configure PCRE for Unix systems. It builds a Makefile, a config.h file, and the pcre-config script. 2. PCRE is built as a shared library by default. 3. There is support for POSIX classes such as [:alpha:]. 5. There is an experimental recursion feature. ---------------------------------------------------------------------------- IMPORTANT FOR THOSE UPGRADING FROM VERSIONS BEFORE 2.00 Please note that there has been a change in the API such that a larger ovector is required at matching time, to provide some additional workspace. The new man page has details. This change was necessary in order to support some of the new functionality in Perl 5.005. IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.00 Another (I hope this is the last!) change has been made to the API for the pcre_compile() function. An additional argument has been added to make it possible to pass over a pointer to character tables built in the current locale by pcre_maketables(). To use the default tables, this new arguement should be passed as NULL. IMPORTANT FOR THOSE UPGRADING FROM VERSION 2.05 Yet another (and again I hope this really is the last) change has been made to the API for the pcre_exec() function. An additional argument has been added to make it possible to start the match other than at the start of the subject string. This is important if there are lookbehinds. The new man page has the details, but you just want to convert existing programs, all you need to do is to stick in a new fifth argument to pcre_exec(), with a value of zero. For example, change pcre_exec(pattern, extra, subject, length, options, ovec, ovecsize) to pcre_exec(pattern, extra, subject, length, 0, options, ovec, ovecsize) **** ================================================ FILE: Project/Pcre/Source/NON-UNIX-USE ================================================ Compiling PCRE on non-Unix systems ---------------------------------- See below for comments on Cygwin or MinGW and OpenVMS usage. I (Philip Hazel) have no knowledge of Windows or VMS sytems and how their libraries work. The items in the PCRE Makefile that relate to anything other than Unix-like systems have been contributed by PCRE users. There are some other comments and files in the Contrib directory on the ftp site that you may find useful. See ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib If you want to compile PCRE for a non-Unix system (or perhaps, more strictly, for a system that does not support "configure" and "make" files), note that PCRE consists entirely of code written in Standard C, and so should compile successfully on any system that has a Standard C compiler and library. GENERIC INSTRUCTIONS FOR THE C LIBRARY The following are generic comments about building PCRE. The interspersed indented commands are suggestions from Mark Tetrode as to which commands you might use on a Windows system to build a static library. (1) Copy or rename the file config.in as config.h, and change the macros that define HAVE_STRERROR and HAVE_MEMMOVE to define them as 1 rather than 0. Unfortunately, because of the way Unix autoconf works, the default setting has to be 0. You may also want to make changes to other macros in config.h. In particular, if you want to force a specific value for newline, you can define the NEWLINE macro. The default is to use '\n', thereby using whatever value your compiler gives to '\n'. rem Mark Tetrode's commands copy config.in config.h rem Use write, because notepad cannot handle UNIX files. Change values. write config.h (2) Copy or rename the file pcre.in as pcre.h, and change the macro definitions for PCRE_MAJOR, PCRE_MINOR, and PCRE_DATE near its start to the values set in configure.in. rem Mark Tetrode's commands copy pcre.in pcre.h rem Read values from configure.in write configure.in rem Change values write pcre.h (3) Compile dftables.c as a stand-alone program, and then run it with the single argument "chartables.c". This generates a set of standard character tables and writes them to that file. rem Mark Tetrode's commands rem Compile & run cl -DSUPPORT_UTF8 -DSUPPORT_UCP dftables.c dftables.exe chartables.c (4) Compile the following source files: pcre_chartables.c pcre_compile.c pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c pcre_get.c pcre_globals.c pcre_info.c pcre_maketables.c pcre_ord2utf8.c pcre_printint.c pcre_refcount.c pcre_study.c pcre_tables.c pcre_try_flipped.c pcre_ucp_findchar.c pcre_valid_utf8.c pcre_version.c pcre_xclass.c and link them all together into an object library in whichever form your system keeps such libraries. This is the pcre C library. If your system has static and shared libraries, you may have to do this once for each type. rem These comments are out-of-date, referring to a previous release which rem had fewer source files. Replace with the file names from above. rem Mark Tetrode's commands, for a static library rem Compile & lib cl -DSUPPORT_UTF8 -DSUPPORT_UCP -DPOSIX_MALLOC_THRESHOLD=10 /c maketables.c get.c study.c pcre.c lib /OUT:pcre.lib maketables.obj get.obj study.obj pcre.obj (5) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix library. rem Mark Tetrode's commands, for a static library rem Compile & lib cl -DSUPPORT_UTF8 -DSUPPORT_UCP -DPOSIX_MALLOC_THRESHOLD=10 /c pcreposix.c lib /OUT:pcreposix.lib pcreposix.obj (6) Compile the test program pcretest.c. This needs the functions in the pcre and pcreposix libraries when linking. rem Mark Tetrode's commands rem compile & link cl /F0x400000 pcretest.c pcre.lib pcreposix.lib (7) Run pcretest on the testinput files in the testdata directory, and check that the output matches the corresponding testoutput files. You must use the -i option when checking testinput2. Note that the supplied files are in Unix format, with just LF characters as line terminators. You may need to edit them to change this if your system uses a different convention. rem Mark Tetrode's commands pcretest testdata\testinput1 testdata\myoutput1 windiff testdata\testoutput1 testdata\myoutput1 pcretest -i testdata\testinput2 testdata\myoutput2 windiff testdata\testoutput2 testdata\myoutput2 pcretest testdata\testinput3 testdata\myoutput3 windiff testdata\testoutput3 testdata\myoutput3 pcretest testdata\testinput4 testdata\myoutput4 windiff testdata\testoutput4 testdata\myoutput4 pcretest testdata\testinput5 testdata\myoutput5 windiff testdata\testoutput5 testdata\myoutput5 pcretest testdata\testinput6 testdata\myoutput6 windiff testdata\testoutput6 testdata\myoutput6 Note that there are now three more tests (7, 8, 9) that did not exist when Mark wrote those comments. The test the new pcre_dfa_exec() function. THE C++ WRAPPER FUNCTIONS The PCRE distribution now contains some C++ wrapper functions and tests, contributed by Google Inc. On a system that can use "configure" and "make", the functions are automatically built into a library called pcrecpp. It should be straightforward to compile the .cc files manually on other systems. The files called xxx_unittest.cc are test programs for each of the corresponding xxx.cc files. FURTHER REMARKS If you have a system without "configure" but where you can use a Makefile, edit Makefile.in to create Makefile, substituting suitable values for the variables at the head of the file. Some help in building a Win32 DLL of PCRE in GnuWin32 environments was contributed by Paul Sokolovsky. These environments are Mingw32 (http://www.xraylith.wisc.edu/~khan/software/gnu-win32/) and CygWin (http://sourceware.cygnus.com/cygwin/). Paul comments: For CygWin, set CFLAGS=-mno-cygwin, and do 'make dll'. You'll get pcre.dll (containing pcreposix also), libpcre.dll.a, and dynamically linked pgrep and pcretest. If you have /bin/sh, run RunTest (three main test go ok, locale not supported). Changes to do MinGW with autoconf 2.50 were supplied by Fred Cox , who comments as follows: If you are using the PCRE DLL, the normal Unix style configure && make && make check && make install should just work[*]. If you want to statically link against the .a file, you must define PCRE_STATIC before including pcre.h, otherwise the pcre_malloc and pcre_free exported functions will be declared __declspec(dllimport), with hilarious results. See the configure.in and pcretest.c for how it is done for the static test. Also, there will only be a libpcre.la, not a libpcreposix.la, as you would expect from the Unix version. The single DLL includes the pcreposix interface. [*] But note that the supplied test files are in Unix format, with just LF characters as line terminators. You will have to edit them to change to CR LF terminators. A script for building PCRE using Borland's C++ compiler for use with VPASCAL was contributed by Alexander Tokarev. It is called makevp.bat. These are some further comments about Win32 builds from Mark Evans. They were contributed before Fred Cox's changes were made, so it is possible that they may no longer be relevant. "The documentation for Win32 builds is a bit shy. Under MSVC6 I followed their instructions to the letter, but there were still some things missing. (1) Must #define STATIC for entire project if linking statically. (I see no reason to use DLLs for code this compact.) This of course is a project setting in MSVC under Preprocessor. (2) Missing some #ifdefs relating to the function pointers pcre_malloc and pcre_free. See my solution below. (The stubs may not be mandatory but they made me feel better.)" ========================= #ifdef _WIN32 #include void* malloc_stub(size_t N) { return malloc(N); } void free_stub(void* p) { free(p); } void *(*pcre_malloc)(size_t) = &malloc_stub; void (*pcre_free)(void *) = &free_stub; #else void *(*pcre_malloc)(size_t) = malloc; void (*pcre_free)(void *) = free; #endif ========================= BUILDING PCRE ON OPENVMS Dan Mooney sent the following comments about building PCRE on OpenVMS. They relate to an older version of PCRE that used fewer source files, so the exact commands will need changing. See the current list of source files above. "It was quite easy to compile and link the library. I don't have a formal make file but the attached file [reproduced below] contains the OpenVMS DCL commands I used to build the library. I had to add #define POSIX_MALLOC_THRESHOLD 10 to pcre.h since it was not defined anywhere. The library was built on: O/S: HP OpenVMS v7.3-1 Compiler: Compaq C v6.5-001-48BCD Linker: vA13-01 The test results did not match 100% due to the issues you mention in your documentation regarding isprint(), iscntrl(), isgraph() and ispunct(). I modified some of the character tables temporarily and was able to get the results to match. Tests using the fr locale did not match since I don't have that locale loaded. The study size was always reported to be 3 less than the value in the standard test output files." ========================= $! This DCL procedure builds PCRE on OpenVMS $! $! I followed the instructions in the non-unix-use file in the distribution. $! $ COMPILE == "CC/LIST/NOMEMBER_ALIGNMENT/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES $ COMPILE DFTABLES.C $ LINK/EXE=DFTABLES.EXE DFTABLES.OBJ $ RUN DFTABLES.EXE/OUTPUT=CHARTABLES.C $ COMPILE MAKETABLES.C $ COMPILE GET.C $ COMPILE STUDY.C $! I had to set POSIX_MALLOC_THRESHOLD to 10 in PCRE.H since the symbol $! did not seem to be defined anywhere. $! I edited pcre.h and added #DEFINE SUPPORT_UTF8 to enable UTF8 support. $ COMPILE PCRE.C $ LIB/CREATE PCRE MAKETABLES.OBJ, GET.OBJ, STUDY.OBJ, PCRE.OBJ $! I had to set POSIX_MALLOC_THRESHOLD to 10 in PCRE.H since the symbol $! did not seem to be defined anywhere. $ COMPILE PCREPOSIX.C $ LIB/CREATE PCREPOSIX PCREPOSIX.OBJ $ COMPILE PCRETEST.C $ LINK/EXE=PCRETEST.EXE PCRETEST.OBJ, PCRE/LIB, PCREPOSIX/LIB $! C programs that want access to command line arguments must be $! defined as a symbol $ PCRETEST :== "$ SYS$ROADSUSERS:[DMOONEY.REGEXP]PCRETEST.EXE" $! Arguments must be enclosed in quotes. $ PCRETEST "-C" $! Test results: $! $! The test results did not match 100%. The functions isprint(), iscntrl(), $! isgraph() and ispunct() on OpenVMS must not produce the same results $! as the system that built the test output files provided with the $! distribution. $! $! The study size did not match and was always 3 less on OpenVMS. $! $! Locale could not be set to fr $! ========================= **** ================================================ FILE: Project/Pcre/Source/README ================================================ README file for PCRE (Perl-compatible regular expression library) ----------------------------------------------------------------- The latest release of PCRE is always available from ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-xxx.tar.gz Please read the NEWS file if you are upgrading from a previous release. The PCRE APIs ------------- PCRE is written in C, and it has its own API. The distribution now includes a set of C++ wrapper functions, courtesy of Google Inc. (see the pcrecpp man page for details). Also included are a set of C wrapper functions that are based on the POSIX API. These end up in the library called libpcreposix. Note that this just provides a POSIX calling interface to PCRE: the regular expressions themselves still follow Perl syntax and semantics. The header file for the POSIX-style functions is called pcreposix.h. The official POSIX name is regex.h, but I didn't want to risk possible problems with existing files of that name by distributing it that way. To use it with an existing program that uses the POSIX API, it will have to be renamed or pointed at by a link. If you are using the POSIX interface to PCRE and there is already a POSIX regex library installed on your system, you must take care when linking programs to ensure that they link with PCRE's libpcreposix library. Otherwise they may pick up the "real" POSIX functions of the same name. Documentation for PCRE ---------------------- If you install PCRE in the normal way, you will end up with an installed set of man pages whose names all start with "pcre". The one that is called "pcre" lists all the others. In addition to these man pages, the PCRE documentation is supplied in two other forms; however, as there is no standard place to install them, they are left in the doc directory of the unpacked source distribution. These forms are: 1. Files called doc/pcre.txt, doc/pcregrep.txt, and doc/pcretest.txt. The first of these is a concatenation of the text forms of all the section 3 man pages except those that summarize individual functions. The other two are the text forms of the section 1 man pages for the pcregrep and pcretest commands. Text forms are provided for ease of scanning with text editors or similar tools. 2. A subdirectory called doc/html contains all the documentation in HTML form, hyperlinked in various ways, and rooted in a file called doc/index.html. Contributions by users of PCRE ------------------------------ You can find contributions from PCRE users in the directory ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/Contrib where there is also a README file giving brief descriptions of what they are. Several of them provide support for compiling PCRE on various flavours of Windows systems (I myself do not use Windows). Some are complete in themselves; others are pointers to URLs containing relevant files. Building PCRE on a Unix-like system ----------------------------------- To build PCRE on a Unix-like system, first run the "configure" command from the PCRE distribution directory, with your current directory set to the directory where you want the files to be created. This command is a standard GNU "autoconf" configuration script, for which generic instructions are supplied in INSTALL. Most commonly, people build PCRE within its own distribution directory, and in this case, on many systems, just running "./configure" is sufficient, but the usual methods of changing standard defaults are available. For example: CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local specifies that the C compiler should be run with the flags '-O2 -Wall' instead of the default, and that "make install" should install PCRE under /opt/local instead of the default /usr/local. If you want to build in a different directory, just run "configure" with that directory as current. For example, suppose you have unpacked the PCRE source into /source/pcre/pcre-xxx, but you want to build it in /build/pcre/pcre-xxx: cd /build/pcre/pcre-xxx /source/pcre/pcre-xxx/configure There are some optional features that can be included or omitted from the PCRE library. You can read more about them in the pcrebuild man page. . If you want to make use of the support for UTF-8 character strings in PCRE, you must add --enable-utf8 to the "configure" command. Without it, the code for handling UTF-8 is not included in the library. (Even when included, it still has to be enabled by an option at run time.) . If, in addition to support for UTF-8 character strings, you want to include support for the \P, \p, and \X sequences that recognize Unicode character properties, you must add --enable-unicode-properties to the "configure" command. This adds about 90K to the size of the library (in the form of a property table); only the basic two-letter properties such as Lu are supported. . You can build PCRE to recognized CR or NL as the newline character, instead of whatever your compiler uses for "\n", by adding --newline-is-cr or --newline-is-nl to the "configure" command, respectively. Only do this if you really understand what you are doing. On traditional Unix-like systems, the newline character is NL. . When called via the POSIX interface, PCRE uses malloc() to get additional storage for processing capturing parentheses if there are more than 10 of them. You can increase this threshold by setting, for example, --with-posix-malloc-threshold=20 on the "configure" command. . PCRE has a counter that can be set to limit the amount of resources it uses. If the limit is exceeded during a match, the match fails. The default is ten million. You can change the default by setting, for example, --with-match-limit=500000 on the "configure" command. This is just the default; individual calls to pcre_exec() can supply their own value. There is discussion on the pcreapi man page. . The default maximum compiled pattern size is around 64K. You can increase this by adding --with-link-size=3 to the "configure" command. You can increase it even more by setting --with-link-size=4, but this is unlikely ever to be necessary. If you build PCRE with an increased link size, test 2 (and 5 if you are using UTF-8) will fail. Part of the output of these tests is a representation of the compiled pattern, and this changes with the link size. . You can build PCRE so that its internal match() function that is called from pcre_exec() does not call itself recursively. Instead, it uses blocks of data from the heap via special functions pcre_stack_malloc() and pcre_stack_free() to save data that would otherwise be saved on the stack. To build PCRE like this, use --disable-stack-for-recursion on the "configure" command. PCRE runs more slowly in this mode, but it may be necessary in environments with limited stack sizes. This applies only to the pcre_exec() function; it does not apply to pcre_dfa_exec(), which does not use deeply nested recursion. The "configure" script builds eight files for the basic C library: . pcre.h is the header file for C programs that call PCRE . Makefile is the makefile that builds the library . config.h contains build-time configuration options for the library . pcre-config is a script that shows the settings of "configure" options . libpcre.pc is data for the pkg-config command . libtool is a script that builds shared and/or static libraries . RunTest is a script for running tests on the library . RunGrepTest is a script for running tests on the pcregrep command In addition, if a C++ compiler is found, the following are also built: . pcrecpp.h is the header file for programs that call PCRE via the C++ wrapper . pcre_stringpiece.h is the header for the C++ "stringpiece" functions The "configure" script also creates config.status, which is an executable script that can be run to recreate the configuration, and config.log, which contains compiler output from tests that "configure" runs. Once "configure" has run, you can run "make". It builds two libraries, called libpcre and libpcreposix, a test program called pcretest, and the pcregrep command. If a C++ compiler was found on your system, it also builds the C++ wrapper library, which is called libpcrecpp, and some test programs called pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest. The command "make test" runs all the appropriate tests. Details of the PCRE tests are given in a separate section of this document, below. You can use "make install" to copy the libraries, the public header files pcre.h, pcreposix.h, pcrecpp.h, and pcre_stringpiece.h (the last two only if the C++ wrapper was built), and the man pages to appropriate live directories on your system, in the normal way. If you want to remove PCRE from your system, you can run "make uninstall". This removes all the files that "make install" installed. However, it does not remove any directories, because these are often shared with other programs. Retrieving configuration information on Unix-like systems --------------------------------------------------------- Running "make install" also installs the command pcre-config, which can be used to recall information about the PCRE configuration and installation. For example: pcre-config --version prints the version number, and pcre-config --libs outputs information about where the library is installed. This command can be included in makefiles for programs that use PCRE, saving the programmer from having to remember too many details. The pkg-config command is another system for saving and retrieving information about installed libraries. Instead of separate commands for each library, a single command is used. For example: pkg-config --cflags pcre The data is held in *.pc files that are installed in a directory called pkgconfig. Shared libraries on Unix-like systems ------------------------------------- The default distribution builds PCRE as shared libraries and static libraries, as long as the operating system supports shared libraries. Shared library support relies on the "libtool" script which is built as part of the "configure" process. The libtool script is used to compile and link both shared and static libraries. They are placed in a subdirectory called .libs when they are newly built. The programs pcretest and pcregrep are built to use these uninstalled libraries (by means of wrapper scripts in the case of shared libraries). When you use "make install" to install shared libraries, pcregrep and pcretest are automatically re-built to use the newly installed shared libraries before being installed themselves. However, the versions left in the source directory still use the uninstalled libraries. To build PCRE using static libraries only you must use --disable-shared when configuring it. For example: ./configure --prefix=/usr/gnu --disable-shared Then run "make" in the usual way. Similarly, you can use --disable-static to build only shared libraries. Cross-compiling on a Unix-like system ------------------------------------- You can specify CC and CFLAGS in the normal way to the "configure" command, in order to cross-compile PCRE for some other host. However, during the building process, the dftables.c source file is compiled *and run* on the local host, in order to generate the default character tables (the chartables.c file). It therefore needs to be compiled with the local compiler, not the cross compiler. You can do this by specifying CC_FOR_BUILD (and if necessary CFLAGS_FOR_BUILD; there are also CXX_FOR_BUILD and CXXFLAGS_FOR_BUILD for the C++ wrapper) when calling the "configure" command. If they are not specified, they default to the values of CC and CFLAGS. Building on non-Unix systems ---------------------------- For a non-Unix system, read the comments in the file NON-UNIX-USE, though if the system supports the use of "configure" and "make" you may be able to build PCRE in the same way as for Unix systems. PCRE has been compiled on Windows systems and on Macintoshes, but I don't know the details because I don't use those systems. It should be straightforward to build PCRE on any system that has a Standard C compiler, because it uses only Standard C functions. Testing PCRE ------------ To test PCRE on a Unix system, run the RunTest script that is created by the configuring process. There is also a script called RunGrepTest that tests the options of the pcregrep command. If the C++ wrapper library is build, three test programs called pcrecpp_unittest, pcre_scanner_unittest, and pcre_stringpiece_unittest are provided. Both the scripts and all the program tests are run if you obey "make runtest", "make check", or "make test". For other systems, see the instructions in NON-UNIX-USE. The RunTest script runs the pcretest test program (which is documented in its own man page) on each of the testinput files (in the testdata directory) in turn, and compares the output with the contents of the corresponding testoutput file. A file called testtry is used to hold the main output from pcretest (testsavedregex is also used as a working file). To run pcretest on just one of the test files, give its number as an argument to RunTest, for example: RunTest 2 The first file can also be fed directly into the perltest script to check that Perl gives the same results. The only difference you should see is in the first few lines, where the Perl version is given instead of the PCRE version. The second set of tests check pcre_fullinfo(), pcre_info(), pcre_study(), pcre_copy_substring(), pcre_get_substring(), pcre_get_substring_list(), error detection, and run-time flags that are specific to PCRE, as well as the POSIX wrapper API. It also uses the debugging flag to check some of the internals of pcre_compile(). If you build PCRE with a locale setting that is not the standard C locale, the character tables may be different (see next paragraph). In some cases, this may cause failures in the second set of tests. For example, in a locale where the isprint() function yields TRUE for characters in the range 128-255, the use of [:isascii:] inside a character class defines a different set of characters, and this shows up in this test as a difference in the compiled code, which is being listed for checking. Where the comparison test output contains [\x00-\x7f] the test will contain [\x00-\xff], and similarly in some other cases. This is not a bug in PCRE. The third set of tests checks pcre_maketables(), the facility for building a set of character tables for a specific locale and using them instead of the default tables. The tests make use of the "fr_FR" (French) locale. Before running the test, the script checks for the presence of this locale by running the "locale" command. If that command fails, or if it doesn't include "fr_FR" in the list of available locales, the third test cannot be run, and a comment is output to say why. If running this test produces instances of the error ** Failed to set locale "fr_FR" in the comparison output, it means that locale is not available on your system, despite being listed by "locale". This does not mean that PCRE is broken. The fourth test checks the UTF-8 support. It is not run automatically unless PCRE is built with UTF-8 support. To do this you must set --enable-utf8 when running "configure". This file can be also fed directly to the perltest script, provided you are running Perl 5.8 or higher. (For Perl 5.6, a small patch, commented in the script, can be be used.) The fifth test checks error handling with UTF-8 encoding, and internal UTF-8 features of PCRE that are not relevant to Perl. The sixth and test checks the support for Unicode character properties. It it not run automatically unless PCRE is built with Unicode property support. To to this you must set --enable-unicode-properties when running "configure". The seventh, eighth, and ninth tests check the pcre_dfa_exec() alternative matching function, in non-UTF-8 mode, UTF-8 mode, and UTF-8 mode with Unicode property support, respectively. The eighth and ninth tests are not run automatically unless PCRE is build with the relevant support. Character tables ---------------- PCRE uses four tables for manipulating and identifying characters whose values are less than 256. The final argument of the pcre_compile() function is a pointer to a block of memory containing the concatenated tables. A call to pcre_maketables() can be used to generate a set of tables in the current locale. If the final argument for pcre_compile() is passed as NULL, a set of default tables that is built into the binary is used. The source file called chartables.c contains the default set of tables. This is not supplied in the distribution, but is built by the program dftables (compiled from dftables.c), which uses the ANSI C character handling functions such as isalnum(), isalpha(), isupper(), islower(), etc. to build the table sources. This means that the default C locale which is set for your system will control the contents of these default tables. You can change the default tables by editing chartables.c and then re-building PCRE. If you do this, you should probably also edit Makefile to ensure that the file doesn't ever get re-generated. The first two 256-byte tables provide lower casing and case flipping functions, respectively. The next table consists of three 32-byte bit maps which identify digits, "word" characters, and white space, respectively. These are used when building 32-byte bit maps that represent character classes. The final 256-byte table has bits indicating various character types, as follows: 1 white space character 2 letter 4 decimal digit 8 hexadecimal digit 16 alphanumeric or '_' 128 regular expression metacharacter or binary zero You should not alter the set of characters that contain the 128 bit, as that will cause PCRE to malfunction. Manifest -------- The distribution should contain the following files: (A) The actual source files of the PCRE library functions and their headers: dftables.c auxiliary program for building chartables.c pcreposix.c ) pcre_compile.c ) pcre_config.c ) pcre_dfa_exec.c ) pcre_exec.c ) pcre_fullinfo.c ) pcre_get.c ) sources for the functions in the library, pcre_globals.c ) and some internal functions that they use pcre_info.c ) pcre_maketables.c ) pcre_ord2utf8.c ) pcre_printint.c ) pcre_study.c ) pcre_tables.c ) pcre_try_flipped.c ) pcre_ucp_findchar.c ) pcre_valid_utf8.c ) pcre_version.c ) pcre_xclass.c ) ucp_findchar.c ) ucp.h ) source for the code that is used for ucpinternal.h ) Unicode property handling ucptable.c ) ucptypetable.c ) pcre.in "source" for the header for the external API; pcre.h is built from this by "configure" pcreposix.h header for the external POSIX wrapper API pcre_internal.h header for internal use config.in template for config.h, which is built by configure pcrecpp.h.in "source" for the header file for the C++ wrapper pcrecpp.cc ) pcre_scanner.cc ) source for the C++ wrapper library pcre_stringpiece.h.in "source" for pcre_stringpiece.h, the header for the C++ stringpiece functions pcre_stringpiece.cc source for the C++ stringpiece functions (B) Auxiliary files: AUTHORS information about the author of PCRE ChangeLog log of changes to the code INSTALL generic installation instructions LICENCE conditions for the use of PCRE COPYING the same, using GNU's standard name Makefile.in template for Unix Makefile, which is built by configure NEWS important changes in this release NON-UNIX-USE notes on building PCRE on non-Unix systems README this file RunTest.in template for a Unix shell script for running tests RunGrepTest.in template for a Unix shell script for pcregrep tests config.guess ) files used by libtool, config.sub ) used only when building a shared library configure a configuring shell script (built by autoconf) configure.in the autoconf input used to build configure doc/Tech.Notes notes on the encoding doc/*.3 man page sources for the PCRE functions doc/*.1 man page sources for pcregrep and pcretest doc/html/* HTML documentation doc/pcre.txt plain text version of the man pages doc/pcretest.txt plain text documentation of test program doc/perltest.txt plain text documentation of Perl test program install-sh a shell script for installing files libpcre.pc.in "source" for libpcre.pc for pkg-config ltmain.sh file used to build a libtool script mkinstalldirs script for making install directories pcretest.c comprehensive test program pcredemo.c simple demonstration of coding calls to PCRE perltest Perl test program pcregrep.c source of a grep utility that uses PCRE pcre-config.in source of script which retains PCRE information pcrecpp_unittest.c ) pcre_scanner_unittest.c ) test programs for the C++ wrapper pcre_stringpiece_unittest.c ) testdata/testinput* test data for main library tests testdata/testoutput* expected test results testdata/grep* input and output for pcregrep tests (C) Auxiliary files for Win32 DLL libpcre.def libpcreposix.def pcre.def (D) Auxiliary file for VPASCAL makevp.bat Philip Hazel Email local part: ph10 Email domain: cam.ac.uk June 2005 ================================================ FILE: Project/Pcre/Source/ReadMe.txt ================================================ ======================================================================== STATIC LIBRARY : pcre Project Overview ======================================================================== AppWizard has created this pcre library project for you. No source files were created as part of your project. pcre.vcproj This is the main project file for VC++ projects generated using an Application Wizard. It contains information about the version of Visual C++ that generated the file, and information about the platforms, configurations, and project features selected with the Application Wizard. ///////////////////////////////////////////////////////////////////////////// Other notes: AppWizard uses "TODO:" comments to indicate parts of the source code you should add to or customize. ///////////////////////////////////////////////////////////////////////////// ================================================ FILE: Project/Pcre/Source/Sources ================================================ TARGETNAME=pcre TARGETPATH=Obj TARGETTYPE=DRIVER_LIBRARY C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV #PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h PRECOMPILED_PCH=StdAfx.pch PRECOMPILED_OBJ=StdAfx.obj SOURCES= chartables.c \ pcre_compile.c \ pcre_config.c \ pcre_dfa_exec.c \ pcre_exec.c \ pcre_fullinfo.c \ pcre_get.c \ pcre_globals.c \ pcre_maketables.c \ pcre_ord2utf8.c \ pcre_printint.c \ pcre_refcount.c \ pcre_study.c \ pcre_tables.c \ pcre_try_flipped.c \ pcre_ucp_findchar.c \ pcre_valid_utf8.c \ pcre_version.c \ pcre_memory.c \ pcre_xclass.c ================================================ FILE: Project/Pcre/Source/Stdafx.c ================================================ #include "stdafx.h" ================================================ FILE: Project/Pcre/Source/Stdafx.h ================================================ ================================================ FILE: Project/Pcre/Source/chartables.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* This file is automatically written by the dftables auxiliary program. If you edit it by hand, you might like to edit the Makefile to prevent its ever being regenerated. This file contains the default tables for characters with codes less than 128 (ASCII characters). These tables are used when no external tables are passed to PCRE. */ const unsigned char _pcre_default_tables[] = { /* This table is a lower casing table. */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99,100,101,102,103, 104,105,106,107,108,109,110,111, 112,113,114,115,116,117,118,119, 120,121,122, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101,102,103, 104,105,106,107,108,109,110,111, 112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127, 128,129,130,131,132,133,134,135, 136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151, 152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167, 168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183, 184,185,186,187,188,189,190,191, 192,193,194,195,196,197,198,199, 200,201,202,203,204,205,206,207, 208,209,210,211,212,213,214,215, 216,217,218,219,220,221,222,223, 224,225,226,227,228,229,230,231, 232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247, 248,249,250,251,252,253,254,255, /* This table is a case flipping table. */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99,100,101,102,103, 104,105,106,107,108,109,110,111, 112,113,114,115,116,117,118,119, 120,121,122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127, 128,129,130,131,132,133,134,135, 136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151, 152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167, 168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183, 184,185,186,187,188,189,190,191, 192,193,194,195,196,197,198,199, 200,201,202,203,204,205,206,207, 208,209,210,211,212,213,214,215, 216,217,218,219,220,221,222,223, 224,225,226,227,228,229,230,231, 232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247, 248,249,250,251,252,253,254,255, /* This table contains bit maps for various character classes. Each map is 32 bytes long and the bits run from the least significant end of each byte. The classes that have their own maps are: space, xdigit, digit, upper, lower, word, graph print, punct, and cntrl. Other classes are built from combinations. */ 0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, 0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03, 0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc, 0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* This table identifies various classes of character by individual bits: 0x01 white space character 0x02 letter 0x04 decimal digit 0x08 hexadecimal digit 0x10 alphanumeric or '_' 0x80 regular expression metacharacter or binary zero */ 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */ 0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /* 8- 15 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ 0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* - ' */ 0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /* ( - / */ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */ 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /* 8 - ? */ 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* @ - G */ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* H - O */ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* P - W */ 0x12,0x12,0x12,0x80,0x00,0x00,0x80,0x10, /* X - _ */ 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* ` - g */ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* h - o */ 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* p - w */ 0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /* x -127 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */ /* End of chartables.c */ ================================================ FILE: Project/Pcre/Source/config.h ================================================ /* On Unix systems config.in is converted by configure into config.h. PCRE is written in Standard C, but there are a few non-standard things it can cope with, allowing it to run on SunOS4 and other "close to standard" systems. On a non-Unix system you should just copy this file into config.h, and set up the macros the way you need them. You should normally change the definitions of HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way autoconf works, these cannot be made the defaults. If your system has bcopy() and not memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE. If your system has neither bcopy() nor memmove(), leave them both as 0; an emulation function will be used. */ /* If you are compiling for a system that uses EBCDIC instead of ASCII character codes, define this macro as 1. On systems that can use "configure", this can be done via --enable-ebcdic. */ #ifndef EBCDIC #define EBCDIC 0 #endif /* If you are compiling for a system that needs some magic to be inserted before the definition of an exported function, define this macro to contain the relevant magic. It apears at the start of every exported function. */ #define EXPORT /* Define to empty if the "const" keyword does not work. */ //#undef const /* Define to "unsigned" if doesn't define size_t. */ //#undef size_t /* The following two definitions are mainly for the benefit of SunOS4, which doesn't have the strerror() or memmove() functions that should be present in all Standard C libraries. The macros HAVE_STRERROR and HAVE_MEMMOVE should normally be defined with the value 1 for other systems, but unfortunately we can't make this the default because "configure" files generated by autoconf will only change 0 to 1; they won't change 1 to 0 if the functions are not found. */ #define HAVE_STRERROR 1 #define HAVE_MEMMOVE 1 /* There are some non-Unix systems that don't even have bcopy(). If this macro is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of HAVE_BCOPY is not relevant. */ #define HAVE_BCOPY 0 /* The value of NEWLINE determines the newline character. The default is to leave it up to the compiler, but some sites want to force a particular value. On Unix systems, "configure" can be used to override this default. */ #ifndef NEWLINE #define NEWLINE '\n' #endif /* The value of LINK_SIZE determines the number of bytes used to store links as offsets within the compiled regex. The default is 2, which allows for compiled patterns up to 64K long. This covers the vast majority of cases. However, PCRE can also be compiled to use 3 or 4 bytes instead. This allows for longer patterns in extreme cases. On Unix systems, "configure" can be used to override this default. */ #ifndef LINK_SIZE #define LINK_SIZE 2 #endif /* The value of MATCH_LIMIT determines the default number of times the match() function can be called during a single execution of pcre_exec(). (There is a runtime method of setting a different limit.) The limit exists in order to catch runaway regular expressions that take for ever to determine that they do not match. The default is set very large so that it does not accidentally catch legitimate cases. On Unix systems, "configure" can be used to override this default default. */ #ifndef MATCH_LIMIT #define MATCH_LIMIT 10000000 #endif /* When calling PCRE via the POSIX interface, additional working storage is required for holding the pointers to capturing substrings because PCRE requires three integers per substring, whereas the POSIX interface provides only two. If the number of expected substrings is small, the wrapper function uses space on the stack, because this is faster than using malloc() for each call. The threshold above which the stack is no longer use is defined by POSIX_MALLOC_ THRESHOLD. On Unix systems, "configure" can be used to override this default. */ #ifndef POSIX_MALLOC_THRESHOLD #define POSIX_MALLOC_THRESHOLD 10 #endif /* PCRE uses recursive function calls to handle backtracking while matching. This can sometimes be a problem on systems that have stacks of limited size. Define NO_RECURSE to get a version that doesn't use recursion in the match() function; instead it creates its own stack by steam using pcre_recurse_malloc to get memory. For more detail, see comments and other stuff just above the match() function. On Unix systems, "configure" can be used to set this in the Makefile (use --disable-stack-for-recursion). */ /* #define NO_RECURSE */ /* End */ ================================================ FILE: Project/Pcre/Source/dftables.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This is a freestanding support program to generate a file containing default character tables for PCRE. The tables are built according to the default C locale. Now that pcre_maketables is a function visible to the outside world, we make use of its code from here in order to be consistent. */ #include #include #include #include "pcre_internal.h" #define DFTABLES /* pcre_maketables.c notices this */ #include "pcre_maketables.c" int main(int argc, char **argv) { int i; FILE *f; const unsigned char *tables = pcre_maketables(); const unsigned char *base_of_tables = tables; if (argc != 2) { fprintf(stderr, "dftables: one filename argument is required\n"); return 1; } f = fopen(argv[1], "w"); if (f == NULL) { fprintf(stderr, "dftables: failed to open %s for writing\n", argv[1]); return 1; } /* There are two fprintf() calls here, because gcc in pedantic mode complains about the very long string otherwise. */ fprintf(f, "/*************************************************\n" "* Perl-Compatible Regular Expressions *\n" "*************************************************/\n\n" "/* This file is automatically written by the dftables auxiliary \n" "program. If you edit it by hand, you might like to edit the Makefile to \n" "prevent its ever being regenerated.\n\n"); fprintf(f, "This file contains the default tables for characters with codes less than\n" "128 (ASCII characters). These tables are used when no external tables are\n" "passed to PCRE. */\n\n" "const unsigned char _pcre_default_tables[] = {\n\n" "/* This table is a lower casing table. */\n\n"); fprintf(f, " "); for (i = 0; i < 256; i++) { if ((i & 7) == 0 && i != 0) fprintf(f, "\n "); fprintf(f, "%3d", *tables++); if (i != 255) fprintf(f, ","); } fprintf(f, ",\n\n"); fprintf(f, "/* This table is a case flipping table. */\n\n"); fprintf(f, " "); for (i = 0; i < 256; i++) { if ((i & 7) == 0 && i != 0) fprintf(f, "\n "); fprintf(f, "%3d", *tables++); if (i != 255) fprintf(f, ","); } fprintf(f, ",\n\n"); fprintf(f, "/* This table contains bit maps for various character classes.\n" "Each map is 32 bytes long and the bits run from the least\n" "significant end of each byte. The classes that have their own\n" "maps are: space, xdigit, digit, upper, lower, word, graph\n" "print, punct, and cntrl. Other classes are built from combinations. */\n\n"); fprintf(f, " "); for (i = 0; i < cbit_length; i++) { if ((i & 7) == 0 && i != 0) { if ((i & 31) == 0) fprintf(f, "\n"); fprintf(f, "\n "); } fprintf(f, "0x%02x", *tables++); if (i != cbit_length - 1) fprintf(f, ","); } fprintf(f, ",\n\n"); fprintf(f, "/* This table identifies various classes of character by individual bits:\n" " 0x%02x white space character\n" " 0x%02x letter\n" " 0x%02x decimal digit\n" " 0x%02x hexadecimal digit\n" " 0x%02x alphanumeric or '_'\n" " 0x%02x regular expression metacharacter or binary zero\n*/\n\n", ctype_space, ctype_letter, ctype_digit, ctype_xdigit, ctype_word, ctype_meta); fprintf(f, " "); for (i = 0; i < 256; i++) { if ((i & 7) == 0 && i != 0) { fprintf(f, " /* "); if (isprint(i-8)) fprintf(f, " %c -", i-8); else fprintf(f, "%3d-", i-8); if (isprint(i-1)) fprintf(f, " %c ", i-1); else fprintf(f, "%3d", i-1); fprintf(f, " */\n "); } fprintf(f, "0x%02x", *tables++); if (i != 255) fprintf(f, ","); } fprintf(f, "};/* "); if (isprint(i-8)) fprintf(f, " %c -", i-8); else fprintf(f, "%3d-", i-8); if (isprint(i-1)) fprintf(f, " %c ", i-1); else fprintf(f, "%3d", i-1); fprintf(f, " */\n\n/* End of chartables.c */\n"); fclose(f); free((void *)base_of_tables); return 0; } /* End of dftables.c */ ================================================ FILE: Project/Pcre/Source/libpcre.def ================================================ LIBRARY libpcre EXPORTS pcre_malloc pcre_free pcre_config pcre_callout pcre_compile pcre_copy_substring pcre_dfa_exec pcre_exec pcre_get_substring pcre_get_stringnumber pcre_get_substring_list pcre_free_substring pcre_free_substring_list pcre_info pcre_fullinfo pcre_maketables pcre_study pcre_version ================================================ FILE: Project/Pcre/Source/libpcreposix.def ================================================ LIBRARY libpcreposix EXPORTS pcre_malloc pcre_free pcre_config pcre_callout pcre_compile pcre_copy_substring pcre_dfa_exec pcre_exec pcre_get_substring pcre_get_stringnumber pcre_get_substring_list pcre_free_substring pcre_free_substring_list pcre_info pcre_fullinfo pcre_maketables pcre_study pcre_version regcomp regexec regerror regfree ================================================ FILE: Project/Pcre/Source/list.txt ================================================ D еľ ¼Ӿ к 7468-1460 D:\Prg\Syser\pcre Ŀ¼ 2005-07-09 03:02 7,212 chartables.c 2005-07-09 03:02 6,047 dftables.c 2005-07-09 03:02 164,156 pcre_compile.c 2005-07-09 03:02 3,503 pcre_config.c 2005-07-09 03:02 68,463 pcre_dfa_exec.c 2005-07-09 03:02 114,388 pcre_exec.c 2005-07-09 03:02 5,073 pcre_fullinfo.c 2005-07-09 03:02 12,267 pcre_get.c 2005-07-09 03:02 3,228 pcre_globals.c 2005-07-09 03:02 3,925 pcre_info.c 2005-07-09 03:02 5,455 pcre_maketables.c 2005-07-09 03:02 3,058 pcre_ord2utf8.c 2005-07-09 03:02 12,556 pcre_printint.c 2005-07-09 03:02 3,383 pcre_refcount.c 2005-07-09 03:02 14,853 pcre_study.c 2005-07-09 03:02 4,632 pcre_tables.c 2005-07-09 03:02 5,475 pcre_try_flipped.c 2005-07-09 03:02 2,521 pcre_ucp_findchar.c 2005-07-09 03:02 4,607 pcre_valid_utf8.c 2005-07-09 03:02 2,629 pcre_version.c 2005-07-09 03:02 4,260 pcre_xclass.c 2005-07-21 05:20 468,271 ucptable.c 2005-07-21 05:20 4,549 ucp_findchar.c 23 ļ 924,511 ֽ 0 Ŀ¼ 2,005,565,440 ֽ ================================================ FILE: Project/Pcre/Source/pcre.def ================================================ EXPORTS pcre_malloc DATA pcre_free DATA pcre_compile pcre_copy_substring pcre_dfa_exec pcre_exec pcre_get_substring pcre_get_substring_list pcre_free_substring pcre_free_substring_list pcre_info pcre_fullinfo pcre_maketables pcre_study pcre_version regcomp regexec regerror regfree ================================================ FILE: Project/Pcre/Source/pcre.h ================================================ /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* In its original form, this is the .in file that is transformed by "configure" into pcre.h. Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ #ifndef _PCRE_H #define _PCRE_H /* The file pcre.h is build by "configure". Do not edit it; instead make changes to pcre.in. */ #define PCRE_MAJOR 6 #define PCRE_MINOR 1 #define PCRE_DATE 21-Jun-2005 /* Win32 uses DLL by default; it needs special stuff for exported functions. */ #ifdef _WIN32 # ifdef PCRE_DEFINITION # ifdef DLL_EXPORT # define PCRE_DATA_SCOPE __declspec(dllexport) # endif # else # ifndef PCRE_STATIC # define PCRE_DATA_SCOPE extern __declspec(dllimport) # endif # endif #endif /* For other operating systems, we use the standard "extern". */ #ifndef PCRE_DATA_SCOPE # ifdef __cplusplus # define PCRE_DATA_SCOPE extern "C" # else # define PCRE_DATA_SCOPE extern # endif #endif /* Have to include stdlib.h in order to ensure that size_t is defined; it is needed here for malloc. */ #include /* Allow for C++ users */ #ifdef __cplusplus extern "C" { #endif /* Options */ #define PCRE_CASELESS 0x00000001 #define PCRE_MULTILINE 0x00000002 #define PCRE_DOTALL 0x00000004 #define PCRE_EXTENDED 0x00000008 #define PCRE_ANCHORED 0x00000010 #define PCRE_DOLLAR_ENDONLY 0x00000020 #define PCRE_EXTRA 0x00000040 #define PCRE_NOTBOL 0x00000080 #define PCRE_NOTEOL 0x00000100 #define PCRE_UNGREEDY 0x00000200 #define PCRE_NOTEMPTY 0x00000400 #define PCRE_UTF8 0x00000800 #define PCRE_NO_AUTO_CAPTURE 0x00001000 #define PCRE_NO_UTF8_CHECK 0x00002000 #define PCRE_AUTO_CALLOUT 0x00004000 #define PCRE_PARTIAL 0x00008000 #define PCRE_DFA_SHORTEST 0x00010000 #define PCRE_DFA_RESTART 0x00020000 #define PCRE_FIRSTLINE 0x00040000 /* Exec-time and get/set-time error codes */ #define PCRE_ERROR_NOMATCH (-1) #define PCRE_ERROR_NULL (-2) #define PCRE_ERROR_BADOPTION (-3) #define PCRE_ERROR_BADMAGIC (-4) #define PCRE_ERROR_UNKNOWN_NODE (-5) #define PCRE_ERROR_NOMEMORY (-6) #define PCRE_ERROR_NOSUBSTRING (-7) #define PCRE_ERROR_MATCHLIMIT (-8) #define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */ #define PCRE_ERROR_BADUTF8 (-10) #define PCRE_ERROR_BADUTF8_OFFSET (-11) #define PCRE_ERROR_PARTIAL (-12) #define PCRE_ERROR_BADPARTIAL (-13) #define PCRE_ERROR_INTERNAL (-14) #define PCRE_ERROR_BADCOUNT (-15) #define PCRE_ERROR_DFA_UITEM (-16) #define PCRE_ERROR_DFA_UCOND (-17) #define PCRE_ERROR_DFA_UMLIMIT (-18) #define PCRE_ERROR_DFA_WSSIZE (-19) #define PCRE_ERROR_DFA_RECURSE (-20) /* Request types for pcre_fullinfo() */ #define PCRE_INFO_OPTIONS 0 #define PCRE_INFO_SIZE 1 #define PCRE_INFO_CAPTURECOUNT 2 #define PCRE_INFO_BACKREFMAX 3 #define PCRE_INFO_FIRSTBYTE 4 #define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */ #define PCRE_INFO_FIRSTTABLE 5 #define PCRE_INFO_LASTLITERAL 6 #define PCRE_INFO_NAMEENTRYSIZE 7 #define PCRE_INFO_NAMECOUNT 8 #define PCRE_INFO_NAMETABLE 9 #define PCRE_INFO_STUDYSIZE 10 #define PCRE_INFO_DEFAULT_TABLES 11 /* Request types for pcre_config() */ #define PCRE_CONFIG_UTF8 0 #define PCRE_CONFIG_NEWLINE 1 #define PCRE_CONFIG_LINK_SIZE 2 #define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3 #define PCRE_CONFIG_MATCH_LIMIT 4 #define PCRE_CONFIG_STACKRECURSE 5 #define PCRE_CONFIG_UNICODE_PROPERTIES 6 /* Bit flags for the pcre_extra structure */ #define PCRE_EXTRA_STUDY_DATA 0x0001 #define PCRE_EXTRA_MATCH_LIMIT 0x0002 #define PCRE_EXTRA_CALLOUT_DATA 0x0004 #define PCRE_EXTRA_TABLES 0x0008 /* Types */ struct real_pcre; /* declaration; the definition is private */ typedef struct real_pcre pcre; /* The structure for passing additional data to pcre_exec(). This is defined in such as way as to be extensible. Always add new fields at the end, in order to remain compatible. */ typedef struct pcre_extra { unsigned long int flags; /* Bits for which fields are set */ void *study_data; /* Opaque data from pcre_study() */ unsigned long int match_limit; /* Maximum number of calls to match() */ void *callout_data; /* Data passed back in callouts */ const unsigned char *tables; /* Pointer to character tables */ } pcre_extra; /* The structure for passing out data via the pcre_callout_function. We use a structure so that new fields can be added on the end in future versions, without changing the API of the function, thereby allowing old clients to work without modification. */ typedef struct pcre_callout_block { int version; /* Identifies version of block */ /* ------------------------ Version 0 ------------------------------- */ int callout_number; /* Number compiled into pattern */ int *offset_vector; /* The offset vector */ const char *subject; /* The subject being matched */ int subject_length; /* The length of the subject */ int start_match; /* Offset to start of this match attempt */ int current_position; /* Where we currently are in the subject */ int capture_top; /* Max current capture */ int capture_last; /* Most recently closed capture */ void *callout_data; /* Data passed in with the call */ /* ------------------- Added for Version 1 -------------------------- */ int pattern_position; /* Offset to next item in the pattern */ int next_item_length; /* Length of next item in the pattern */ /* ------------------------------------------------------------------ */ } pcre_callout_block; /* Indirection for store get and free functions. These can be set to alternative malloc/free functions if required. Special ones are used in the non-recursive case for "frames". There is also an optional callout function that is triggered by the (?) regex item. For Virtual Pascal, these definitions have to take another form. */ #ifndef VPCOMPAT PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t); PCRE_DATA_SCOPE void (*pcre_free)(void *); PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t); PCRE_DATA_SCOPE void (*pcre_stack_free)(void *); PCRE_DATA_SCOPE int (*pcre_callout)(pcre_callout_block *); #else /* VPCOMPAT */ PCRE_DATA_SCOPE void *pcre_malloc(size_t); PCRE_DATA_SCOPE void pcre_free(void *); PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t); PCRE_DATA_SCOPE void pcre_stack_free(void *); PCRE_DATA_SCOPE int pcre_callout(pcre_callout_block *); #endif /* VPCOMPAT */ /* Exported PCRE functions */ PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *, const unsigned char *); PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **, int *, const unsigned char *); PCRE_DATA_SCOPE int pcre_config(int, void *); PCRE_DATA_SCOPE int pcre_copy_named_substring(const pcre *, const char *, int *, int, const char *, char *, int); PCRE_DATA_SCOPE int pcre_copy_substring(const char *, int *, int, int, char *, int); PCRE_DATA_SCOPE int pcre_dfa_exec(const pcre *, const pcre_extra *, const char *, int, int, int, int *, int , int *, int); PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, const char *, int, int, int, int *, int); PCRE_DATA_SCOPE void pcre_free_substring(const char *); PCRE_DATA_SCOPE void pcre_free_substring_list(const char **); PCRE_DATA_SCOPE int pcre_fullinfo(const pcre *, const pcre_extra *, int, void *); PCRE_DATA_SCOPE int pcre_get_named_substring(const pcre *, const char *, int *, int, const char *, const char **); PCRE_DATA_SCOPE int pcre_get_stringnumber(const pcre *, const char *); PCRE_DATA_SCOPE int pcre_get_substring(const char *, int *, int, int, const char **); PCRE_DATA_SCOPE int pcre_get_substring_list(const char *, int *, int, const char ***); PCRE_DATA_SCOPE int pcre_info(const pcre *, int *, int *); PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void); PCRE_DATA_SCOPE int pcre_refcount(pcre *, int); PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **); PCRE_DATA_SCOPE const char *pcre_version(void); PCRE_DATA_SCOPE void pcre_set_function_pointer(void*,void*); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* End of pcre.h */ ================================================ FILE: Project/Pcre/Source/pcre.ver ================================================ #define BUILD_NUM 28 #define SGFILEVERSION 3,0,0,28 #define SGPROCVERSION 3,0,0,28 #define STRFILEVERSION "3.0.0.28" #define STRPROCVERSION "3.0.0.28" ================================================ FILE: Project/Pcre/Source/pcre_compile.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_compile(), along with supporting internal functions that are not used by other modules. */ #include "pcre_internal.h" /************************************************* * Code parameters and static tables * *************************************************/ /* Maximum number of items on the nested bracket stacks at compile time. This applies to the nesting of all kinds of parentheses. It does not limit un-nested, non-capturing parentheses. This number can be made bigger if necessary - it is used to dimension one int and one unsigned char vector at compile time. */ #define BRASTACK_SIZE 200 /* Table for handling escaped characters in the range '0'-'z'. Positive returns are simple data values; negative values are for special things like \d and so on. Zero means further processing is needed (for things like \x), or the escape is invalid. */ #if !EBCDIC /* This is the "normal" table for ASCII systems */ static const short int escapes[] = { 0, 0, 0, 0, 0, 0, 0, 0, /* 0 - 7 */ 0, 0, ':', ';', '<', '=', '>', '?', /* 8 - ? */ '@', -ESC_A, -ESC_B, -ESC_C, -ESC_D, -ESC_E, 0, -ESC_G, /* @ - G */ 0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ -ESC_P, -ESC_Q, 0, -ESC_S, 0, 0, 0, -ESC_W, /* P - W */ -ESC_X, 0, -ESC_Z, '[', '\\', ']', '^', '_', /* X - _ */ '`', 7, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, /* ` - g */ 0, 0, 0, 0, 0, 0, ESC_n, 0, /* h - o */ -ESC_p, 0, ESC_r, -ESC_s, ESC_tee, 0, 0, -ESC_w, /* p - w */ 0, 0, -ESC_z /* x - z */ }; #else /* This is the "abnormal" table for EBCDIC systems */ static const short int escapes[] = { /* 48 */ 0, 0, 0, '.', '<', '(', '+', '|', /* 50 */ '&', 0, 0, 0, 0, 0, 0, 0, /* 58 */ 0, 0, '!', '$', '*', ')', ';', '~', /* 60 */ '-', '/', 0, 0, 0, 0, 0, 0, /* 68 */ 0, 0, '|', ',', '%', '_', '>', '?', /* 70 */ 0, 0, 0, 0, 0, 0, 0, 0, /* 78 */ 0, '`', ':', '#', '@', '\'', '=', '"', /* 80 */ 0, 7, -ESC_b, 0, -ESC_d, ESC_e, ESC_f, 0, /* 88 */ 0, 0, 0, '{', 0, 0, 0, 0, /* 90 */ 0, 0, 0, 'l', 0, ESC_n, 0, -ESC_p, /* 98 */ 0, ESC_r, 0, '}', 0, 0, 0, 0, /* A0 */ 0, '~', -ESC_s, ESC_tee, 0, 0, -ESC_w, 0, /* A8 */ 0,-ESC_z, 0, 0, 0, '[', 0, 0, /* B0 */ 0, 0, 0, 0, 0, 0, 0, 0, /* B8 */ 0, 0, 0, 0, 0, ']', '=', '-', /* C0 */ '{',-ESC_A, -ESC_B, -ESC_C, -ESC_D,-ESC_E, 0, -ESC_G, /* C8 */ 0, 0, 0, 0, 0, 0, 0, 0, /* D0 */ '}', 0, 0, 0, 0, 0, 0, -ESC_P, /* D8 */-ESC_Q, 0, 0, 0, 0, 0, 0, 0, /* E0 */ '\\', 0, -ESC_S, 0, 0, 0, -ESC_W, -ESC_X, /* E8 */ 0,-ESC_Z, 0, 0, 0, 0, 0, 0, /* F0 */ 0, 0, 0, 0, 0, 0, 0, 0, /* F8 */ 0, 0, 0, 0, 0, 0, 0, 0 }; #endif /* Tables of names of POSIX character classes and their lengths. The list is terminated by a zero length entry. The first three must be alpha, upper, lower, as this is assumed for handling case independence. */ static const char *const posix_names[] = { "alpha", "lower", "upper", "alnum", "ascii", "blank", "cntrl", "digit", "graph", "print", "punct", "space", "word", "xdigit" }; static const uschar posix_name_lengths[] = { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 0 }; /* Table of class bit maps for each POSIX class; up to three may be combined to form the class. The table for [:blank:] is dynamically modified to remove the vertical space characters. */ static const int posix_class_maps[] = { cbit_lower, cbit_upper, -1, /* alpha */ cbit_lower, -1, -1, /* lower */ cbit_upper, -1, -1, /* upper */ cbit_digit, cbit_lower, cbit_upper, /* alnum */ cbit_print, cbit_cntrl, -1, /* ascii */ cbit_space, -1, -1, /* blank - a GNU extension */ cbit_cntrl, -1, -1, /* cntrl */ cbit_digit, -1, -1, /* digit */ cbit_graph, -1, -1, /* graph */ cbit_print, -1, -1, /* print */ cbit_punct, -1, -1, /* punct */ cbit_space, -1, -1, /* space */ cbit_word, -1, -1, /* word - a Perl extension */ cbit_xdigit,-1, -1 /* xdigit */ }; /* The texts of compile-time error messages. These are "char *" because they are passed to the outside world. */ static const char *error_texts[] = { "no error", "\\ at end of pattern", "\\c at end of pattern", "unrecognized character follows \\", "numbers out of order in {} quantifier", /* 5 */ "number too big in {} quantifier", "missing terminating ] for character class", "invalid escape sequence in character class", "range out of order in character class", "nothing to repeat", /* 10 */ "operand of unlimited repeat could match the empty string", "internal error: unexpected repeat", "unrecognized character after (?", "POSIX named classes are supported only within a class", "missing )", /* 15 */ "reference to non-existent subpattern", "erroffset passed as NULL", "unknown option bit(s) set", "missing ) after comment", "parentheses nested too deeply", /* 20 */ "regular expression too large", "failed to get memory", "unmatched parentheses", "internal error: code overflow", "unrecognized character after (?<", /* 25 */ "lookbehind assertion is not fixed length", "malformed number after (?(", "conditional group contains more than two branches", "assertion expected after (?(", "(?R or (?digits must be followed by )", /* 30 */ "unknown POSIX class name", "POSIX collating elements are not supported", "this version of PCRE is not compiled with PCRE_UTF8 support", "spare error", "character value in \\x{...} sequence is too large", /* 35 */ "invalid condition (?(0)", "\\C not allowed in lookbehind assertion", "PCRE does not support \\L, \\l, \\N, \\U, or \\u", "number after (?C is > 255", "closing ) for (?C expected", /* 40 */ "recursive call could loop indefinitely", "unrecognized character after (?P", "syntax error after (?P", "two named groups have the same name", "invalid UTF-8 string", /* 45 */ "support for \\P, \\p, and \\X has not been compiled", "malformed \\P or \\p sequence", "unknown property name after \\P or \\p" }; /* Table to identify digits and hex digits. This is used when compiling patterns. Note that the tables in chartables are dependent on the locale, and may mark arbitrary characters as digits - but the PCRE compiling code expects to handle only 0-9, a-z, and A-Z as digits when compiling. That is why we have a private table here. It costs 256 bytes, but it is a lot faster than doing character value tests (at least in some simple cases I timed), and in some applications one wants PCRE to compile efficiently as well as match efficiently. For convenience, we use the same bit definitions as in chartables: 0x04 decimal digit 0x08 hexadecimal digit Then we can use ctype_digit and ctype_xdigit in the code. */ #if !EBCDIC /* This is the "normal" case, for ASCII systems */ static const unsigned char digitab[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 8- 15 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - ' */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ( - / */ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, /* 0 - 7 */ 0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, /* 8 - ? */ 0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /* @ - G */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* H - O */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* P - W */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* X - _ */ 0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /* ` - g */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* h - o */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* p - w */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* x -127 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */ #else /* This is the "abnormal" case, for EBCDIC systems */ static const unsigned char digitab[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 0 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 8- 15 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 10 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 32- 39 20 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 40- 47 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 48- 55 30 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 56- 63 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - 71 40 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 72- | */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* & - 87 50 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 88- ? */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - -103 60 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 104- ? */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 112-119 70 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 120- " */ 0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /* 128- g 80 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* h -143 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144- p 90 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* q -159 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160- x A0 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* y -175 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ^ -183 B0 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ 0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /* { - G C0 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* H -207 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* } - P D0 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* Q -223 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* \ - X E0 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* Y -239 */ 0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, /* 0 - 7 F0 */ 0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00};/* 8 -255 */ static const unsigned char ebcdic_chartab[] = { /* chartable partial dup */ 0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 0- 7 */ 0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00, /* 8- 15 */ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 16- 23 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */ 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /* 32- 39 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 40- 47 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 48- 55 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 56- 63 */ 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - 71 */ 0x00,0x00,0x00,0x80,0x00,0x80,0x80,0x80, /* 72- | */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* & - 87 */ 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00, /* 88- ? */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - -103 */ 0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x80, /* 104- ? */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 112-119 */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 120- " */ 0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* 128- g */ 0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* h -143 */ 0x00,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* 144- p */ 0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* q -159 */ 0x00,0x00,0x12,0x12,0x12,0x12,0x12,0x12, /* 160- x */ 0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* y -175 */ 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ^ -183 */ 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, /* 184-191 */ 0x80,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* { - G */ 0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* H -207 */ 0x00,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* } - P */ 0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* Q -223 */ 0x00,0x00,0x12,0x12,0x12,0x12,0x12,0x12, /* \ - X */ 0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /* Y -239 */ 0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */ 0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00};/* 8 -255 */ #endif /* Definition to allow mutual recursion */ static BOOL compile_regex(int, int, int *, uschar **, const uschar **, int *, BOOL, int, int *, int *, branch_chain *, compile_data *); /************************************************* * Handle escapes * *************************************************/ /* This function is called when a \ has been encountered. It either returns a positive value for a simple escape such as \n, or a negative value which encodes one of the more complicated things such as \d. When UTF-8 is enabled, a positive value greater than 255 may be returned. On entry, ptr is pointing at the \. On exit, it is on the final character of the escape sequence. Arguments: ptrptr points to the pattern position pointer errorcodeptr points to the errorcode variable bracount number of previous extracting brackets options the options bits isclass TRUE if inside a character class Returns: zero or positive => a data character negative => a special escape sequence on error, errorptr is set */ static int check_escape(const uschar **ptrptr, int *errorcodeptr, int bracount, int options, BOOL isclass) { const uschar *ptr = *ptrptr; int c, i; /* If backslash is at the end of the pattern, it's an error. */ c = *(++ptr); if (c == 0) *errorcodeptr = ERR1; /* Non-alphamerics are literals. For digits or letters, do an initial lookup in a table. A non-zero result is something that can be returned immediately. Otherwise further processing may be required. */ #if !EBCDIC /* ASCII coding */ else if (c < '0' || c > 'z') {} /* Not alphameric */ else if ((i = escapes[c - '0']) != 0) c = i; #else /* EBCDIC coding */ else if (c < 'a' || (ebcdic_chartab[c] & 0x0E) == 0) {} /* Not alphameric */ else if ((i = escapes[c - 0x48]) != 0) c = i; #endif /* Escapes that need further processing, or are illegal. */ else { const uschar *oldptr; switch (c) { /* A number of Perl escapes are not handled by PCRE. We give an explicit error. */ case 'l': case 'L': case 'N': case 'u': case 'U': *errorcodeptr = ERR37; break; /* The handling of escape sequences consisting of a string of digits starting with one that is not zero is not straightforward. By experiment, the way Perl works seems to be as follows: Outside a character class, the digits are read as a decimal number. If the number is less than 10, or if there are that many previous extracting left brackets, then it is a back reference. Otherwise, up to three octal digits are read to form an escaped byte. Thus \123 is likely to be octal 123 (cf \0123, which is octal 012 followed by the literal 3). If the octal value is greater than 377, the least significant 8 bits are taken. Inside a character class, \ followed by a digit is always an octal number. */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (!isclass) { oldptr = ptr; c -= '0'; while ((digitab[ptr[1]] & ctype_digit) != 0) c = c * 10 + *(++ptr) - '0'; if (c < 10 || c <= bracount) { c = -(ESC_REF + c); break; } ptr = oldptr; /* Put the pointer back and fall through */ } /* Handle an octal number following \. If the first digit is 8 or 9, Perl generates a binary zero byte and treats the digit as a following literal. Thus we have to pull back the pointer by one. */ if ((c = *ptr) >= '8') { ptr--; c = 0; break; } /* \0 always starts an octal number, but we may drop through to here with a larger first octal digit. */ case '0': c -= '0'; while(i++ < 2 && ptr[1] >= '0' && ptr[1] <= '7') c = c * 8 + *(++ptr) - '0'; c &= 255; /* Take least significant 8 bits */ break; /* \x is complicated when UTF-8 is enabled. \x{ddd} is a character number which can be greater than 0xff, but only if the ddd are hex digits. */ case 'x': #ifdef SUPPORT_UTF8 if (ptr[1] == '{' && (options & PCRE_UTF8) != 0) { const uschar *pt = ptr + 2; register int count = 0; c = 0; while ((digitab[*pt] & ctype_xdigit) != 0) { int cc = *pt++; count++; #if !EBCDIC /* ASCII coding */ if (cc >= 'a') cc -= 32; /* Convert to upper case */ c = c * 16 + cc - ((cc < 'A')? '0' : ('A' - 10)); #else /* EBCDIC coding */ if (cc >= 'a' && cc <= 'z') cc += 64; /* Convert to upper case */ c = c * 16 + cc - ((cc >= '0')? '0' : ('A' - 10)); #endif } if (*pt == '}') { if (c < 0 || count > 8) *errorcodeptr = ERR34; ptr = pt; break; } /* If the sequence of hex digits does not end with '}', then we don't recognize this construct; fall through to the normal \x handling. */ } #endif /* Read just a single hex char */ c = 0; while (i++ < 2 && (digitab[ptr[1]] & ctype_xdigit) != 0) { int cc; /* Some compilers don't like ++ */ cc = *(++ptr); /* in initializers */ #if !EBCDIC /* ASCII coding */ if (cc >= 'a') cc -= 32; /* Convert to upper case */ c = c * 16 + cc - ((cc < 'A')? '0' : ('A' - 10)); #else /* EBCDIC coding */ if (cc <= 'z') cc += 64; /* Convert to upper case */ c = c * 16 + cc - ((cc >= '0')? '0' : ('A' - 10)); #endif } break; /* Other special escapes not starting with a digit are straightforward */ case 'c': c = *(++ptr); if (c == 0) { *errorcodeptr = ERR2; return 0; } /* A letter is upper-cased; then the 0x40 bit is flipped. This coding is ASCII-specific, but then the whole concept of \cx is ASCII-specific. (However, an EBCDIC equivalent has now been added.) */ #if !EBCDIC /* ASCII coding */ if (c >= 'a' && c <= 'z') c -= 32; c ^= 0x40; #else /* EBCDIC coding */ if (c >= 'a' && c <= 'z') c += 64; c ^= 0xC0; #endif break; /* PCRE_EXTRA enables extensions to Perl in the matter of escapes. Any other alphameric following \ is an error if PCRE_EXTRA was set; otherwise, for Perl compatibility, it is a literal. This code looks a bit odd, but there used to be some cases other than the default, and there may be again in future, so I haven't "optimized" it. */ default: if ((options & PCRE_EXTRA) != 0) switch(c) { default: *errorcodeptr = ERR3; break; } break; } } *ptrptr = ptr; return c; } #ifdef SUPPORT_UCP /************************************************* * Handle \P and \p * *************************************************/ /* This function is called after \P or \p has been encountered, provided that PCRE is compiled with support for Unicode properties. On entry, ptrptr is pointing at the P or p. On exit, it is pointing at the final character of the escape sequence. Argument: ptrptr points to the pattern position pointer negptr points to a boolean that is set TRUE for negation else FALSE errorcodeptr points to the error code variable Returns: value from ucp_type_table, or -1 for an invalid type */ static int get_ucp(const uschar **ptrptr, BOOL *negptr, int *errorcodeptr) { int c, i, bot, top; const uschar *ptr = *ptrptr; char name[4]; c = *(++ptr); if (c == 0) goto ERROR_RETURN; *negptr = FALSE; /* \P or \p can be followed by a one- or two-character name in {}, optionally preceded by ^ for negation. */ if (c == '{') { if (ptr[1] == '^') { *negptr = TRUE; ptr++; } for (i = 0; i <= 2; i++) { c = *(++ptr); if (c == 0) goto ERROR_RETURN; if (c == '}') break; name[i] = c; } if (c !='}') /* Try to distinguish error cases */ { while (*(++ptr) != 0 && *ptr != '}'); if (*ptr == '}') goto UNKNOWN_RETURN; else goto ERROR_RETURN; } name[i] = 0; } /* Otherwise there is just one following character */ else { name[0] = c; name[1] = 0; } *ptrptr = ptr; /* Search for a recognized property name using binary chop */ bot = 0; top = _pcre_utt_size; while (bot < top) { i = (bot + top)/2; c = strcmp(name, _pcre_utt[i].name); if (c == 0) return _pcre_utt[i].value; if (c > 0) bot = i + 1; else top = i; } UNKNOWN_RETURN: *errorcodeptr = ERR47; *ptrptr = ptr; return -1; ERROR_RETURN: *errorcodeptr = ERR46; *ptrptr = ptr; return -1; } #endif /************************************************* * Check for counted repeat * *************************************************/ /* This function is called when a '{' is encountered in a place where it might start a quantifier. It looks ahead to see if it really is a quantifier or not. It is only a quantifier if it is one of the forms {ddd} {ddd,} or {ddd,ddd} where the ddds are digits. Arguments: p pointer to the first char after '{' Returns: TRUE or FALSE */ static BOOL is_counted_repeat(const uschar *p) { if ((digitab[*p++] & ctype_digit) == 0) return FALSE; while ((digitab[*p] & ctype_digit) != 0) p++; if (*p == '}') return TRUE; if (*p++ != ',') return FALSE; if (*p == '}') return TRUE; if ((digitab[*p++] & ctype_digit) == 0) return FALSE; while ((digitab[*p] & ctype_digit) != 0) p++; return (*p == '}'); } /************************************************* * Read repeat counts * *************************************************/ /* Read an item of the form {n,m} and return the values. This is called only after is_counted_repeat() has confirmed that a repeat-count quantifier exists, so the syntax is guaranteed to be correct, but we need to check the values. Arguments: p pointer to first char after '{' minp pointer to int for min maxp pointer to int for max returned as -1 if no max errorcodeptr points to error code variable Returns: pointer to '}' on success; current ptr on error, with errorcodeptr set non-zero */ static const uschar * read_repeat_counts(const uschar *p, int *minp, int *maxp, int *errorcodeptr) { int min = 0; int max = -1; while ((digitab[*p] & ctype_digit) != 0) min = min * 10 + *p++ - '0'; if (*p == '}') max = min; else { if (*(++p) != '}') { max = 0; while((digitab[*p] & ctype_digit) != 0) max = max * 10 + *p++ - '0'; if (max < min) { *errorcodeptr = ERR4; return p; } } } /* Do paranoid checks, then fill in the required variables, and pass back the pointer to the terminating '}'. */ if (min > 65535 || max > 65535) *errorcodeptr = ERR5; else { *minp = min; *maxp = max; } return p; } /************************************************* * Find first significant op code * *************************************************/ /* This is called by several functions that scan a compiled expression looking for a fixed first character, or an anchoring op code etc. It skips over things that do not influence this. For some calls, a change of option is important. For some calls, it makes sense to skip negative forward and all backward assertions, and also the \b assertion; for others it does not. Arguments: code pointer to the start of the group options pointer to external options optbit the option bit whose changing is significant, or zero if none are skipassert TRUE if certain assertions are to be skipped Returns: pointer to the first significant opcode */ static const uschar* first_significant_code(const uschar *code, int *options, int optbit, BOOL skipassert) { for (;;) { switch ((int)*code) { case OP_OPT: if (optbit > 0 && ((int)code[1] & optbit) != (*options & optbit)) *options = (int)code[1]; code += 2; break; case OP_ASSERT_NOT: case OP_ASSERTBACK: case OP_ASSERTBACK_NOT: if (!skipassert) return code; do code += GET(code, 1); while (*code == OP_ALT); code += _pcre_OP_lengths[*code]; break; case OP_WORD_BOUNDARY: case OP_NOT_WORD_BOUNDARY: if (!skipassert) return code; /* Fall through */ case OP_CALLOUT: case OP_CREF: case OP_BRANUMBER: code += _pcre_OP_lengths[*code]; break; default: return code; } } /* Control never reaches here */ } /************************************************* * Find the fixed length of a pattern * *************************************************/ /* Scan a pattern and compute the fixed length of subject that will match it, if the length is fixed. This is needed for dealing with backward assertions. In UTF8 mode, the result is in characters rather than bytes. Arguments: code points to the start of the pattern (the bracket) options the compiling options Returns: the fixed length, or -1 if there is no fixed length, or -2 if \C was encountered */ static int find_fixedlength(uschar *code, int options) { int length = -1; register int branchlength = 0; register uschar *cc = code + 1 + LINK_SIZE; /* Scan along the opcodes for this branch. If we get to the end of the branch, check the length against that of the other branches. */ for (;;) { int d; register int op = *cc; if (op >= OP_BRA) op = OP_BRA; switch (op) { case OP_BRA: case OP_ONCE: case OP_COND: d = find_fixedlength(cc, options); if (d < 0) return d; branchlength += d; do cc += GET(cc, 1); while (*cc == OP_ALT); cc += 1 + LINK_SIZE; break; /* Reached end of a branch; if it's a ket it is the end of a nested call. If it's ALT it is an alternation in a nested call. If it is END it's the end of the outer call. All can be handled by the same code. */ case OP_ALT: case OP_KET: case OP_KETRMAX: case OP_KETRMIN: case OP_END: if (length < 0) length = branchlength; else if (length != branchlength) return -1; if (*cc != OP_ALT) return length; cc += 1 + LINK_SIZE; branchlength = 0; break; /* Skip over assertive subpatterns */ case OP_ASSERT: case OP_ASSERT_NOT: case OP_ASSERTBACK: case OP_ASSERTBACK_NOT: do cc += GET(cc, 1); while (*cc == OP_ALT); /* Fall through */ /* Skip over things that don't match chars */ case OP_REVERSE: case OP_BRANUMBER: case OP_CREF: case OP_OPT: case OP_CALLOUT: case OP_SOD: case OP_SOM: case OP_EOD: case OP_EODN: case OP_CIRC: case OP_DOLL: case OP_NOT_WORD_BOUNDARY: case OP_WORD_BOUNDARY: cc += _pcre_OP_lengths[*cc]; break; /* Handle literal characters */ case OP_CHAR: case OP_CHARNC: branchlength++; cc += 2; #ifdef SUPPORT_UTF8 if ((options & PCRE_UTF8) != 0) { while ((*cc & 0xc0) == 0x80) cc++; } #endif break; /* Handle exact repetitions. The count is already in characters, but we need to skip over a multibyte character in UTF8 mode. */ case OP_EXACT: branchlength += GET2(cc,1); cc += 4; #ifdef SUPPORT_UTF8 if ((options & PCRE_UTF8) != 0) { while((*cc & 0x80) == 0x80) cc++; } #endif break; case OP_TYPEEXACT: branchlength += GET2(cc,1); cc += 4; break; /* Handle single-char matchers */ case OP_PROP: case OP_NOTPROP: cc++; /* Fall through */ case OP_NOT_DIGIT: case OP_DIGIT: case OP_NOT_WHITESPACE: case OP_WHITESPACE: case OP_NOT_WORDCHAR: case OP_WORDCHAR: case OP_ANY: branchlength++; cc++; break; /* The single-byte matcher isn't allowed */ case OP_ANYBYTE: return -2; /* Check a class for variable quantification */ #ifdef SUPPORT_UTF8 case OP_XCLASS: cc += GET(cc, 1) - 33; /* Fall through */ #endif case OP_CLASS: case OP_NCLASS: cc += 33; switch (*cc) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRQUERY: case OP_CRMINQUERY: return -1; case OP_CRRANGE: case OP_CRMINRANGE: if (GET2(cc,1) != GET2(cc,3)) return -1; branchlength += GET2(cc,1); cc += 5; break; default: branchlength++; } break; /* Anything else is variable length */ default: return -1; } } /* Control never gets here */ } /************************************************* * Scan compiled regex for numbered bracket * *************************************************/ /* This little function scans through a compiled pattern until it finds a capturing bracket with the given number. Arguments: code points to start of expression utf8 TRUE in UTF-8 mode number the required bracket number Returns: pointer to the opcode for the bracket, or NULL if not found */ static const uschar * find_bracket(const uschar *code, BOOL utf8, int number) { #ifndef SUPPORT_UTF8 utf8 = utf8; /* Stop pedantic compilers complaining */ #endif for (;;) { register int c = *code; if (c == OP_END) return NULL; else if (c > OP_BRA) { int n = c - OP_BRA; if (n > EXTRACT_BASIC_MAX) n = GET2(code, 2+LINK_SIZE); if (n == number) return (uschar *)code; code += _pcre_OP_lengths[OP_BRA]; } else { code += _pcre_OP_lengths[c]; #ifdef SUPPORT_UTF8 /* In UTF-8 mode, opcodes that are followed by a character may be followed by a multi-byte character. The length in the table is a minimum, so we have to scan along to skip the extra bytes. All opcodes are less than 128, so we can use relatively efficient code. */ if (utf8) switch(c) { case OP_CHAR: case OP_CHARNC: case OP_EXACT: case OP_UPTO: case OP_MINUPTO: case OP_STAR: case OP_MINSTAR: case OP_PLUS: case OP_MINPLUS: case OP_QUERY: case OP_MINQUERY: while ((*code & 0xc0) == 0x80) code++; break; /* XCLASS is used for classes that cannot be represented just by a bit map. This includes negated single high-valued characters. The length in the table is zero; the actual length is stored in the compiled code. */ case OP_XCLASS: code += GET(code, 1) + 1; break; } #endif } } } /************************************************* * Scan compiled regex for recursion reference * *************************************************/ /* This little function scans through a compiled pattern until it finds an instance of OP_RECURSE. Arguments: code points to start of expression utf8 TRUE in UTF-8 mode Returns: pointer to the opcode for OP_RECURSE, or NULL if not found */ static const uschar * find_recurse(const uschar *code, BOOL utf8) { #ifndef SUPPORT_UTF8 utf8 = utf8; /* Stop pedantic compilers complaining */ #endif for (;;) { register int c = *code; if (c == OP_END) return NULL; else if (c == OP_RECURSE) return code; else if (c > OP_BRA) { code += _pcre_OP_lengths[OP_BRA]; } else { code += _pcre_OP_lengths[c]; #ifdef SUPPORT_UTF8 /* In UTF-8 mode, opcodes that are followed by a character may be followed by a multi-byte character. The length in the table is a minimum, so we have to scan along to skip the extra bytes. All opcodes are less than 128, so we can use relatively efficient code. */ if (utf8) switch(c) { case OP_CHAR: case OP_CHARNC: case OP_EXACT: case OP_UPTO: case OP_MINUPTO: case OP_STAR: case OP_MINSTAR: case OP_PLUS: case OP_MINPLUS: case OP_QUERY: case OP_MINQUERY: while ((*code & 0xc0) == 0x80) code++; break; /* XCLASS is used for classes that cannot be represented just by a bit map. This includes negated single high-valued characters. The length in the table is zero; the actual length is stored in the compiled code. */ case OP_XCLASS: code += GET(code, 1) + 1; break; } #endif } } } /************************************************* * Scan compiled branch for non-emptiness * *************************************************/ /* This function scans through a branch of a compiled pattern to see whether it can match the empty string or not. It is called only from could_be_empty() below. Note that first_significant_code() skips over assertions. If we hit an unclosed bracket, we return "empty" - this means we've struck an inner bracket whose current branch will already have been scanned. Arguments: code points to start of search endcode points to where to stop utf8 TRUE if in UTF8 mode Returns: TRUE if what is matched could be empty */ static BOOL could_be_empty_branch(const uschar *code, const uschar *endcode, BOOL utf8) { register int c; for (code = first_significant_code(code + 1 + LINK_SIZE, NULL, 0, TRUE); code < endcode; code = first_significant_code(code + _pcre_OP_lengths[c], NULL, 0, TRUE)) { const uschar *ccode; c = *code; if (c >= OP_BRA) { BOOL empty_branch; if (GET(code, 1) == 0) return TRUE; /* Hit unclosed bracket */ /* Scan a closed bracket */ empty_branch = FALSE; do { if (!empty_branch && could_be_empty_branch(code, endcode, utf8)) empty_branch = TRUE; code += GET(code, 1); } while (*code == OP_ALT); if (!empty_branch) return FALSE; /* All branches are non-empty */ code += 1 + LINK_SIZE; c = *code; } else switch (c) { /* Check for quantifiers after a class */ #ifdef SUPPORT_UTF8 case OP_XCLASS: ccode = code + GET(code, 1); goto CHECK_CLASS_REPEAT; #endif case OP_CLASS: case OP_NCLASS: ccode = code + 33; #ifdef SUPPORT_UTF8 CHECK_CLASS_REPEAT: #endif switch (*ccode) { case OP_CRSTAR: /* These could be empty; continue */ case OP_CRMINSTAR: case OP_CRQUERY: case OP_CRMINQUERY: break; default: /* Non-repeat => class must match */ case OP_CRPLUS: /* These repeats aren't empty */ case OP_CRMINPLUS: return FALSE; case OP_CRRANGE: case OP_CRMINRANGE: if (GET2(ccode, 1) > 0) return FALSE; /* Minimum > 0 */ break; } break; /* Opcodes that must match a character */ case OP_PROP: case OP_NOTPROP: case OP_EXTUNI: case OP_NOT_DIGIT: case OP_DIGIT: case OP_NOT_WHITESPACE: case OP_WHITESPACE: case OP_NOT_WORDCHAR: case OP_WORDCHAR: case OP_ANY: case OP_ANYBYTE: case OP_CHAR: case OP_CHARNC: case OP_NOT: case OP_PLUS: case OP_MINPLUS: case OP_EXACT: case OP_NOTPLUS: case OP_NOTMINPLUS: case OP_NOTEXACT: case OP_TYPEPLUS: case OP_TYPEMINPLUS: case OP_TYPEEXACT: return FALSE; /* End of branch */ case OP_KET: case OP_KETRMAX: case OP_KETRMIN: case OP_ALT: return TRUE; /* In UTF-8 mode, STAR, MINSTAR, QUERY, MINQUERY, UPTO, and MINUPTO may be followed by a multibyte character */ #ifdef SUPPORT_UTF8 case OP_STAR: case OP_MINSTAR: case OP_QUERY: case OP_MINQUERY: case OP_UPTO: case OP_MINUPTO: if (utf8) while ((code[2] & 0xc0) == 0x80) code++; break; #endif } } return TRUE; } /************************************************* * Scan compiled regex for non-emptiness * *************************************************/ /* This function is called to check for left recursive calls. We want to check the current branch of the current pattern to see if it could match the empty string. If it could, we must look outwards for branches at other levels, stopping when we pass beyond the bracket which is the subject of the recursion. Arguments: code points to start of the recursion endcode points to where to stop (current RECURSE item) bcptr points to the chain of current (unclosed) branch starts utf8 TRUE if in UTF-8 mode Returns: TRUE if what is matched could be empty */ static BOOL could_be_empty(const uschar *code, const uschar *endcode, branch_chain *bcptr, BOOL utf8) { while (bcptr != NULL && bcptr->current >= code) { if (!could_be_empty_branch(bcptr->current, endcode, utf8)) return FALSE; bcptr = bcptr->outer; } return TRUE; } /************************************************* * Check for POSIX class syntax * *************************************************/ /* This function is called when the sequence "[:" or "[." or "[=" is encountered in a character class. It checks whether this is followed by an optional ^ and then a sequence of letters, terminated by a matching ":]" or ".]" or "=]". Argument: ptr pointer to the initial [ endptr where to return the end pointer cd pointer to compile data Returns: TRUE or FALSE */ static BOOL check_posix_syntax(const uschar *ptr, const uschar **endptr, compile_data *cd) { int terminator; /* Don't combine these lines; the Solaris cc */ terminator = *(++ptr); /* compiler warns about "non-constant" initializer. */ if (*(++ptr) == '^') ptr++; while ((cd->ctypes[*ptr] & ctype_letter) != 0) ptr++; if (*ptr == terminator && ptr[1] == ']') { *endptr = ptr; return TRUE; } return FALSE; } /************************************************* * Check POSIX class name * *************************************************/ /* This function is called to check the name given in a POSIX-style class entry such as [:alnum:]. Arguments: ptr points to the first letter len the length of the name Returns: a value representing the name, or -1 if unknown */ static int check_posix_name(const uschar *ptr, int len) { register int yield = 0; while (posix_name_lengths[yield] != 0) { if (len == posix_name_lengths[yield] && strncmp((const char *)ptr, posix_names[yield], len) == 0) return yield; yield++; } return -1; } /************************************************* * Adjust OP_RECURSE items in repeated group * *************************************************/ /* OP_RECURSE items contain an offset from the start of the regex to the group that is referenced. This means that groups can be replicated for fixed repetition simply by copying (because the recursion is allowed to refer to earlier groups that are outside the current group). However, when a group is optional (i.e. the minimum quantifier is zero), OP_BRAZERO is inserted before it, after it has been compiled. This means that any OP_RECURSE items within it that refer to the group itself or any contained groups have to have their offsets adjusted. That is the job of this function. Before it is called, the partially compiled regex must be temporarily terminated with OP_END. Arguments: group points to the start of the group adjust the amount by which the group is to be moved utf8 TRUE in UTF-8 mode cd contains pointers to tables etc. Returns: nothing */ static void adjust_recurse(uschar *group, int adjust, BOOL utf8, compile_data *cd) { uschar *ptr = group; while ((ptr = (uschar *)find_recurse(ptr, utf8)) != NULL) { int offset = GET(ptr, 1); if (cd->start_code + offset >= group) PUT(ptr, 1, offset + adjust); ptr += 1 + LINK_SIZE; } } /************************************************* * Insert an automatic callout point * *************************************************/ /* This function is called when the PCRE_AUTO_CALLOUT option is set, to insert callout points before each pattern item. Arguments: code current code pointer ptr current pattern pointer cd pointers to tables etc Returns: new code pointer */ static uschar * auto_callout(uschar *code, const uschar *ptr, compile_data *cd) { *code++ = OP_CALLOUT; *code++ = 255; PUT(code, 0, ptr - cd->start_pattern); /* Pattern offset */ PUT(code, LINK_SIZE, 0); /* Default length */ return code + 2*LINK_SIZE; } /************************************************* * Complete a callout item * *************************************************/ /* A callout item contains the length of the next item in the pattern, which we can't fill in till after we have reached the relevant point. This is used for both automatic and manual callouts. Arguments: previous_callout points to previous callout item ptr current pattern pointer cd pointers to tables etc Returns: nothing */ static void complete_callout(uschar *previous_callout, const uschar *ptr, compile_data *cd) { int length = ptr - cd->start_pattern - GET(previous_callout, 2); PUT(previous_callout, 2 + LINK_SIZE, length); } #ifdef SUPPORT_UCP /************************************************* * Get othercase range * *************************************************/ /* This function is passed the start and end of a class range, in UTF-8 mode with UCP support. It searches up the characters, looking for internal ranges of characters in the "other" case. Each call returns the next one, updating the start address. Arguments: cptr points to starting character value; updated d end value ocptr where to put start of othercase range odptr where to put end of othercase range Yield: TRUE when range returned; FALSE when no more */ static BOOL get_othercase_range(int *cptr, int d, int *ocptr, int *odptr) { int c, chartype, othercase, next; for (c = *cptr; c <= d; c++) { if (_pcre_ucp_findchar(c, &chartype, &othercase) == ucp_L && othercase != 0) break; } if (c > d) return FALSE; *ocptr = othercase; next = othercase + 1; for (++c; c <= d; c++) { if (_pcre_ucp_findchar(c, &chartype, &othercase) != ucp_L || othercase != next) break; next++; } *odptr = next - 1; *cptr = c; return TRUE; } #endif /* SUPPORT_UCP */ /************************************************* * Compile one branch * *************************************************/ /* Scan the pattern, compiling it into the code vector. If the options are changed during the branch, the pointer is used to change the external options bits. Arguments: optionsptr pointer to the option bits brackets points to number of extracting brackets used codeptr points to the pointer to the current code point ptrptr points to the current pattern pointer errorcodeptr points to error code variable firstbyteptr set to initial literal character, or < 0 (REQ_UNSET, REQ_NONE) reqbyteptr set to the last literal character required, else < 0 bcptr points to current branch chain cd contains pointers to tables etc. Returns: TRUE on success FALSE, with *errorcodeptr set non-zero on error */ static BOOL compile_branch(int *optionsptr, int *brackets, uschar **codeptr, const uschar **ptrptr, int *errorcodeptr, int *firstbyteptr, int *reqbyteptr, branch_chain *bcptr, compile_data *cd) { int repeat_type, op_type; int repeat_min = 0, repeat_max = 0; /* To please picky compilers */ int bravalue = 0; int greedy_default, greedy_non_default; int firstbyte, reqbyte; int zeroreqbyte, zerofirstbyte; int req_caseopt, reqvary, tempreqvary; int condcount = 0; int options = *optionsptr; int after_manual_callout = 0; register int c; register uschar *code = *codeptr; uschar *tempcode; BOOL inescq = FALSE; BOOL groupsetfirstbyte = FALSE; const uschar *ptr = *ptrptr; const uschar *tempptr; uschar *previous = NULL; uschar *previous_callout = NULL; uschar classbits[32]; #ifdef SUPPORT_UTF8 BOOL class_utf8; BOOL utf8 = (options & PCRE_UTF8) != 0; uschar *class_utf8data; uschar utf8_char[6]; #else BOOL utf8 = FALSE; #endif /* Set up the default and non-default settings for greediness */ greedy_default = ((options & PCRE_UNGREEDY) != 0); greedy_non_default = greedy_default ^ 1; /* Initialize no first byte, no required byte. REQ_UNSET means "no char matching encountered yet". It gets changed to REQ_NONE if we hit something that matches a non-fixed char first char; reqbyte just remains unset if we never find one. When we hit a repeat whose minimum is zero, we may have to adjust these values to take the zero repeat into account. This is implemented by setting them to zerofirstbyte and zeroreqbyte when such a repeat is encountered. The individual item types that can be repeated set these backoff variables appropriately. */ firstbyte = reqbyte = zerofirstbyte = zeroreqbyte = REQ_UNSET; /* The variable req_caseopt contains either the REQ_CASELESS value or zero, according to the current setting of the caseless flag. REQ_CASELESS is a bit value > 255. It is added into the firstbyte or reqbyte variables to record the case status of the value. This is used only for ASCII characters. */ req_caseopt = ((options & PCRE_CASELESS) != 0)? REQ_CASELESS : 0; /* Switch on next character until the end of the branch */ for (;; ptr++) { BOOL negate_class; BOOL possessive_quantifier; BOOL is_quantifier; int class_charcount; int class_lastchar; int newoptions; int recno; int skipbytes; int subreqbyte; int subfirstbyte; int mclength; uschar mcbuffer[8]; /* Next byte in the pattern */ c = *ptr; /* If in \Q...\E, check for the end; if not, we have a literal */ if (inescq && c != 0) { if (c == '\\' && ptr[1] == 'E') { inescq = FALSE; ptr++; continue; } else { if (previous_callout != NULL) { complete_callout(previous_callout, ptr, cd); previous_callout = NULL; } if ((options & PCRE_AUTO_CALLOUT) != 0) { previous_callout = code; code = auto_callout(code, ptr, cd); } goto NORMAL_CHAR; } } /* Fill in length of a previous callout, except when the next thing is a quantifier. */ is_quantifier = c == '*' || c == '+' || c == '?' || (c == '{' && is_counted_repeat(ptr+1)); if (!is_quantifier && previous_callout != NULL && after_manual_callout-- <= 0) { complete_callout(previous_callout, ptr, cd); previous_callout = NULL; } /* In extended mode, skip white space and comments */ if ((options & PCRE_EXTENDED) != 0) { if ((cd->ctypes[c] & ctype_space) != 0) continue; if (c == '#') { /* The space before the ; is to avoid a warning on a silly compiler on the Macintosh. */ while ((c = *(++ptr)) != 0 && c != NEWLINE) ; if (c != 0) continue; /* Else fall through to handle end of string */ } } /* No auto callout for quantifiers. */ if ((options & PCRE_AUTO_CALLOUT) != 0 && !is_quantifier) { previous_callout = code; code = auto_callout(code, ptr, cd); } switch(c) { /* The branch terminates at end of string, |, or ). */ case 0: case '|': case ')': *firstbyteptr = firstbyte; *reqbyteptr = reqbyte; *codeptr = code; *ptrptr = ptr; return TRUE; /* Handle single-character metacharacters. In multiline mode, ^ disables the setting of any following char as a first character. */ case '^': if ((options & PCRE_MULTILINE) != 0) { if (firstbyte == REQ_UNSET) firstbyte = REQ_NONE; } previous = NULL; *code++ = OP_CIRC; break; case '$': previous = NULL; *code++ = OP_DOLL; break; /* There can never be a first char if '.' is first, whatever happens about repeats. The value of reqbyte doesn't change either. */ case '.': if (firstbyte == REQ_UNSET) firstbyte = REQ_NONE; zerofirstbyte = firstbyte; zeroreqbyte = reqbyte; previous = code; *code++ = OP_ANY; break; /* Character classes. If the included characters are all < 255 in value, we build a 32-byte bitmap of the permitted characters, except in the special case where there is only one such character. For negated classes, we build the map as usual, then invert it at the end. However, we use a different opcode so that data characters > 255 can be handled correctly. If the class contains characters outside the 0-255 range, a different opcode is compiled. It may optionally have a bit map for characters < 256, but those above are are explicitly listed afterwards. A flag byte tells whether the bitmap is present, and whether this is a negated class or not. */ case '[': previous = code; /* PCRE supports POSIX class stuff inside a class. Perl gives an error if they are encountered at the top level, so we'll do that too. */ if ((ptr[1] == ':' || ptr[1] == '.' || ptr[1] == '=') && check_posix_syntax(ptr, &tempptr, cd)) { *errorcodeptr = (ptr[1] == ':')? ERR13 : ERR31; goto FAILED; } /* If the first character is '^', set the negation flag and skip it. */ if ((c = *(++ptr)) == '^') { negate_class = TRUE; c = *(++ptr); } else { negate_class = FALSE; } /* Keep a count of chars with values < 256 so that we can optimize the case of just a single character (as long as it's < 256). For higher valued UTF-8 characters, we don't yet do any optimization. */ class_charcount = 0; class_lastchar = -1; #ifdef SUPPORT_UTF8 class_utf8 = FALSE; /* No chars >= 256 */ class_utf8data = code + LINK_SIZE + 34; /* For UTF-8 items */ #endif /* Initialize the 32-char bit map to all zeros. We have to build the map in a temporary bit of store, in case the class contains only 1 character (< 256), because in that case the compiled code doesn't use the bit map. */ memset(classbits, 0, 32 * sizeof(uschar)); /* Process characters until ] is reached. By writing this as a "do" it means that an initial ] is taken as a data character. The first pass through the regex checked the overall syntax, so we don't need to be very strict here. At the start of the loop, c contains the first byte of the character. */ do { #ifdef SUPPORT_UTF8 if (utf8 && c > 127) { /* Braces are required because the */ GETCHARLEN(c, ptr, ptr); /* macro generates multiple statements */ } #endif /* Inside \Q...\E everything is literal except \E */ if (inescq) { if (c == '\\' && ptr[1] == 'E') { inescq = FALSE; ptr++; continue; } else goto LONE_SINGLE_CHARACTER; } /* Handle POSIX class names. Perl allows a negation extension of the form [:^name:]. A square bracket that doesn't match the syntax is treated as a literal. We also recognize the POSIX constructions [.ch.] and [=ch=] ("collating elements") and fault them, as Perl 5.6 and 5.8 do. */ if (c == '[' && (ptr[1] == ':' || ptr[1] == '.' || ptr[1] == '=') && check_posix_syntax(ptr, &tempptr, cd)) { BOOL local_negate = FALSE; int posix_class, i; register const uschar *cbits = cd->cbits; if (ptr[1] != ':') { *errorcodeptr = ERR31; goto FAILED; } ptr += 2; if (*ptr == '^') { local_negate = TRUE; ptr++; } posix_class = check_posix_name(ptr, tempptr - ptr); if (posix_class < 0) { *errorcodeptr = ERR30; goto FAILED; } /* If matching is caseless, upper and lower are converted to alpha. This relies on the fact that the class table starts with alpha, lower, upper as the first 3 entries. */ if ((options & PCRE_CASELESS) != 0 && posix_class <= 2) posix_class = 0; /* Or into the map we are building up to 3 of the static class tables, or their negations. The [:blank:] class sets up the same chars as the [:space:] class (all white space). We remove the vertical white space chars afterwards. */ posix_class *= 3; for (i = 0; i < 3; i++) { BOOL blankclass = strncmp((char *)ptr, "blank", 5) == 0; int taboffset = posix_class_maps[posix_class + i]; if (taboffset < 0) break; if (local_negate) { if (i == 0) for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+taboffset]; else for (c = 0; c < 32; c++) classbits[c] &= ~cbits[c+taboffset]; if (blankclass) classbits[1] |= 0x3c; } else { for (c = 0; c < 32; c++) classbits[c] |= cbits[c+taboffset]; if (blankclass) classbits[1] &= ~0x3c; } } ptr = tempptr + 1; class_charcount = 10; /* Set > 1; assumes more than 1 per class */ continue; /* End of POSIX syntax handling */ } /* Backslash may introduce a single character, or it may introduce one of the specials, which just set a flag. Escaped items are checked for validity in the pre-compiling pass. The sequence \b is a special case. Inside a class (and only there) it is treated as backspace. Elsewhere it marks a word boundary. Other escapes have preset maps ready to or into the one we are building. We assume they have more than one character in them, so set class_charcount bigger than one. */ if (c == '\\') { c = check_escape(&ptr, errorcodeptr, *brackets, options, TRUE); if (-c == ESC_b) c = '\b'; /* \b is backslash in a class */ else if (-c == ESC_X) c = 'X'; /* \X is literal X in a class */ else if (-c == ESC_Q) /* Handle start of quoted string */ { if (ptr[1] == '\\' && ptr[2] == 'E') { ptr += 2; /* avoid empty string */ } else inescq = TRUE; continue; } if (c < 0) { register const uschar *cbits = cd->cbits; class_charcount += 2; /* Greater than 1 is what matters */ switch (-c) { case ESC_d: for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_digit]; continue; case ESC_D: for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_digit]; continue; case ESC_w: for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_word]; continue; case ESC_W: for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_word]; continue; case ESC_s: for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_space]; classbits[1] &= ~0x08; /* Perl 5.004 onwards omits VT from \s */ continue; case ESC_S: for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_space]; classbits[1] |= 0x08; /* Perl 5.004 onwards omits VT from \s */ continue; #ifdef SUPPORT_UCP case ESC_p: case ESC_P: { BOOL negated; int property = get_ucp(&ptr, &negated, errorcodeptr); if (property < 0) goto FAILED; class_utf8 = TRUE; *class_utf8data++ = ((-c == ESC_p) != negated)? XCL_PROP : XCL_NOTPROP; *class_utf8data++ = property; class_charcount -= 2; /* Not a < 256 character */ } continue; #endif /* Unrecognized escapes are faulted if PCRE is running in its strict mode. By default, for compatibility with Perl, they are treated as literals. */ default: if ((options & PCRE_EXTRA) != 0) { *errorcodeptr = ERR7; goto FAILED; } c = *ptr; /* The final character */ class_charcount -= 2; /* Undo the default count from above */ } } /* Fall through if we have a single character (c >= 0). This may be > 256 in UTF-8 mode. */ } /* End of backslash handling */ /* A single character may be followed by '-' to form a range. However, Perl does not permit ']' to be the end of the range. A '-' character here is treated as a literal. */ if (ptr[1] == '-' && ptr[2] != ']') { int d; ptr += 2; #ifdef SUPPORT_UTF8 if (utf8) { /* Braces are required because the */ GETCHARLEN(d, ptr, ptr); /* macro generates multiple statements */ } else #endif d = *ptr; /* Not UTF-8 mode */ /* The second part of a range can be a single-character escape, but not any of the other escapes. Perl 5.6 treats a hyphen as a literal in such circumstances. */ if (d == '\\') { const uschar *oldptr = ptr; d = check_escape(&ptr, errorcodeptr, *brackets, options, TRUE); /* \b is backslash; \X is literal X; any other special means the '-' was literal */ if (d < 0) { if (d == -ESC_b) d = '\b'; else if (d == -ESC_X) d = 'X'; else { ptr = oldptr - 2; goto LONE_SINGLE_CHARACTER; /* A few lines below */ } } } /* The check that the two values are in the correct order happens in the pre-pass. Optimize one-character ranges */ if (d == c) goto LONE_SINGLE_CHARACTER; /* A few lines below */ /* In UTF-8 mode, if the upper limit is > 255, or > 127 for caseless matching, we have to use an XCLASS with extra data items. Caseless matching for characters > 127 is available only if UCP support is available. */ #ifdef SUPPORT_UTF8 if (utf8 && (d > 255 || ((options & PCRE_CASELESS) != 0 && d > 127))) { class_utf8 = TRUE; /* With UCP support, we can find the other case equivalents of the relevant characters. There may be several ranges. Optimize how they fit with the basic range. */ #ifdef SUPPORT_UCP if ((options & PCRE_CASELESS) != 0) { int occ, ocd; int cc = c; int origd = d; while (get_othercase_range(&cc, origd, &occ, &ocd)) { if (occ >= c && ocd <= d) continue; /* Skip embedded ranges */ if (occ < c && ocd >= c - 1) /* Extend the basic range */ { /* if there is overlap, */ c = occ; /* noting that if occ < c */ continue; /* we can't have ocd > d */ } /* because a subrange is */ if (ocd > d && occ <= d + 1) /* always shorter than */ { /* the basic range. */ d = ocd; continue; } if (occ == ocd) { *class_utf8data++ = XCL_SINGLE; } else { *class_utf8data++ = XCL_RANGE; class_utf8data += _pcre_ord2utf8(occ, class_utf8data); } class_utf8data += _pcre_ord2utf8(ocd, class_utf8data); } } #endif /* SUPPORT_UCP */ /* Now record the original range, possibly modified for UCP caseless overlapping ranges. */ *class_utf8data++ = XCL_RANGE; class_utf8data += _pcre_ord2utf8(c, class_utf8data); class_utf8data += _pcre_ord2utf8(d, class_utf8data); /* With UCP support, we are done. Without UCP support, there is no caseless matching for UTF-8 characters > 127; we can use the bit map for the smaller ones. */ #ifdef SUPPORT_UCP continue; /* With next character in the class */ #else if ((options & PCRE_CASELESS) == 0 || c > 127) continue; /* Adjust upper limit and fall through to set up the map */ d = 127; #endif /* SUPPORT_UCP */ } #endif /* SUPPORT_UTF8 */ /* We use the bit map for all cases when not in UTF-8 mode; else ranges that lie entirely within 0-127 when there is UCP support; else for partial ranges without UCP support. */ for (; c <= d; c++) { classbits[c/8] |= (1 << (c&7)); if ((options & PCRE_CASELESS) != 0) { int uc = cd->fcc[c]; /* flip case */ classbits[uc/8] |= (1 << (uc&7)); } class_charcount++; /* in case a one-char range */ class_lastchar = c; } continue; /* Go get the next char in the class */ } /* Handle a lone single character - we can get here for a normal non-escape char, or after \ that introduces a single character or for an apparent range that isn't. */ LONE_SINGLE_CHARACTER: /* Handle a character that cannot go in the bit map */ #ifdef SUPPORT_UTF8 if (utf8 && (c > 255 || ((options & PCRE_CASELESS) != 0 && c > 127))) { class_utf8 = TRUE; *class_utf8data++ = XCL_SINGLE; class_utf8data += _pcre_ord2utf8(c, class_utf8data); #ifdef SUPPORT_UCP if ((options & PCRE_CASELESS) != 0) { int chartype; int othercase; if (_pcre_ucp_findchar(c, &chartype, &othercase) >= 0 && othercase > 0) { *class_utf8data++ = XCL_SINGLE; class_utf8data += _pcre_ord2utf8(othercase, class_utf8data); } } #endif /* SUPPORT_UCP */ } else #endif /* SUPPORT_UTF8 */ /* Handle a single-byte character */ { classbits[c/8] |= (1 << (c&7)); if ((options & PCRE_CASELESS) != 0) { c = cd->fcc[c]; /* flip case */ classbits[c/8] |= (1 << (c&7)); } class_charcount++; class_lastchar = c; } } /* Loop until ']' reached; the check for end of string happens inside the loop. This "while" is the end of the "do" above. */ while ((c = *(++ptr)) != ']' || inescq); /* If class_charcount is 1, we saw precisely one character whose value is less than 256. In non-UTF-8 mode we can always optimize. In UTF-8 mode, we can optimize the negative case only if there were no characters >= 128 because OP_NOT and the related opcodes like OP_NOTSTAR operate on single-bytes only. This is an historical hangover. Maybe one day we can tidy these opcodes to handle multi-byte characters. The optimization throws away the bit map. We turn the item into a 1-character OP_CHAR[NC] if it's positive, or OP_NOT if it's negative. Note that OP_NOT does not support multibyte characters. In the positive case, it can cause firstbyte to be set. Otherwise, there can be no first char if this item is first, whatever repeat count may follow. In the case of reqbyte, save the previous value for reinstating. */ #ifdef SUPPORT_UTF8 if (class_charcount == 1 && (!utf8 || (!class_utf8 && (!negate_class || class_lastchar < 128)))) #else if (class_charcount == 1) #endif { zeroreqbyte = reqbyte; /* The OP_NOT opcode works on one-byte characters only. */ if (negate_class) { if (firstbyte == REQ_UNSET) firstbyte = REQ_NONE; zerofirstbyte = firstbyte; *code++ = OP_NOT; *code++ = (uschar)class_lastchar; break; } /* For a single, positive character, get the value into mcbuffer, and then we can handle this with the normal one-character code. */ #ifdef SUPPORT_UTF8 if (utf8 && class_lastchar > 127) mclength = _pcre_ord2utf8(class_lastchar, mcbuffer); else #endif { mcbuffer[0] = (uschar)class_lastchar; mclength = 1; } goto ONE_CHAR; } /* End of 1-char optimization */ /* The general case - not the one-char optimization. If this is the first thing in the branch, there can be no first char setting, whatever the repeat count. Any reqbyte setting must remain unchanged after any kind of repeat. */ if (firstbyte == REQ_UNSET) firstbyte = REQ_NONE; zerofirstbyte = firstbyte; zeroreqbyte = reqbyte; /* If there are characters with values > 255, we have to compile an extended class, with its own opcode. If there are no characters < 256, we can omit the bitmap. */ #ifdef SUPPORT_UTF8 if (class_utf8) { *class_utf8data++ = XCL_END; /* Marks the end of extra data */ *code++ = OP_XCLASS; code += LINK_SIZE; *code = negate_class? XCL_NOT : 0; /* If the map is required, install it, and move on to the end of the extra data */ if (class_charcount > 0) { *code++ |= XCL_MAP; memcpy(code, classbits, 32); code = class_utf8data; } /* If the map is not required, slide down the extra data. */ else { int len = class_utf8data - (code + 33); memmove(code + 1, code + 33, len); code += len + 1; } /* Now fill in the complete length of the item */ PUT(previous, 1, code - previous); break; /* End of class handling */ } #endif /* If there are no characters > 255, negate the 32-byte map if necessary, and copy it into the code vector. If this is the first thing in the branch, there can be no first char setting, whatever the repeat count. Any reqbyte setting must remain unchanged after any kind of repeat. */ if (negate_class) { *code++ = OP_NCLASS; for (c = 0; c < 32; c++) code[c] = ~classbits[c]; } else { *code++ = OP_CLASS; memcpy(code, classbits, 32); } code += 32; break; /* Various kinds of repeat; '{' is not necessarily a quantifier, but this has been tested above. */ case '{': if (!is_quantifier) goto NORMAL_CHAR; ptr = read_repeat_counts(ptr+1, &repeat_min, &repeat_max, errorcodeptr); if (*errorcodeptr != 0) goto FAILED; goto REPEAT; case '*': repeat_min = 0; repeat_max = -1; goto REPEAT; case '+': repeat_min = 1; repeat_max = -1; goto REPEAT; case '?': repeat_min = 0; repeat_max = 1; REPEAT: if (previous == NULL) { *errorcodeptr = ERR9; goto FAILED; } if (repeat_min == 0) { firstbyte = zerofirstbyte; /* Adjust for zero repeat */ reqbyte = zeroreqbyte; /* Ditto */ } /* Remember whether this is a variable length repeat */ reqvary = (repeat_min == repeat_max)? 0 : REQ_VARY; op_type = 0; /* Default single-char op codes */ possessive_quantifier = FALSE; /* Default not possessive quantifier */ /* Save start of previous item, in case we have to move it up to make space for an inserted OP_ONCE for the additional '+' extension. */ tempcode = previous; /* If the next character is '+', we have a possessive quantifier. This implies greediness, whatever the setting of the PCRE_UNGREEDY option. If the next character is '?' this is a minimizing repeat, by default, but if PCRE_UNGREEDY is set, it works the other way round. We change the repeat type to the non-default. */ if (ptr[1] == '+') { repeat_type = 0; /* Force greedy */ possessive_quantifier = TRUE; ptr++; } else if (ptr[1] == '?') { repeat_type = greedy_non_default; ptr++; } else repeat_type = greedy_default; /* If previous was a recursion, we need to wrap it inside brackets so that it can be replicated if necessary. */ if (*previous == OP_RECURSE) { memmove(previous + 1 + LINK_SIZE, previous, 1 + LINK_SIZE); code += 1 + LINK_SIZE; *previous = OP_BRA; PUT(previous, 1, code - previous); *code = OP_KET; PUT(code, 1, code - previous); code += 1 + LINK_SIZE; } /* If previous was a character match, abolish the item and generate a repeat item instead. If a char item has a minumum of more than one, ensure that it is set in reqbyte - it might not be if a sequence such as x{3} is the first thing in a branch because the x will have gone into firstbyte instead. */ if (*previous == OP_CHAR || *previous == OP_CHARNC) { /* Deal with UTF-8 characters that take up more than one byte. It's easier to write this out separately than try to macrify it. Use c to hold the length of the character in bytes, plus 0x80 to flag that it's a length rather than a small character. */ #ifdef SUPPORT_UTF8 if (utf8 && (code[-1] & 0x80) != 0) { uschar *lastchar = code - 1; while((*lastchar & 0xc0) == 0x80) lastchar--; c = code - lastchar; /* Length of UTF-8 character */ memcpy(utf8_char, lastchar, c); /* Save the char */ c |= 0x80; /* Flag c as a length */ } else #endif /* Handle the case of a single byte - either with no UTF8 support, or with UTF-8 disabled, or for a UTF-8 character < 128. */ { c = code[-1]; if (repeat_min > 1) reqbyte = c | req_caseopt | cd->req_varyopt; } goto OUTPUT_SINGLE_REPEAT; /* Code shared with single character types */ } /* If previous was a single negated character ([^a] or similar), we use one of the special opcodes, replacing it. The code is shared with single- character repeats by setting opt_type to add a suitable offset into repeat_type. OP_NOT is currently used only for single-byte chars. */ else if (*previous == OP_NOT) { op_type = OP_NOTSTAR - OP_STAR; /* Use "not" opcodes */ c = previous[1]; goto OUTPUT_SINGLE_REPEAT; } /* If previous was a character type match (\d or similar), abolish it and create a suitable repeat item. The code is shared with single-character repeats by setting op_type to add a suitable offset into repeat_type. Note the the Unicode property types will be present only when SUPPORT_UCP is defined, but we don't wrap the little bits of code here because it just makes it horribly messy. */ else if (*previous < OP_EODN) { uschar *oldcode; int prop_type; op_type = OP_TYPESTAR - OP_STAR; /* Use type opcodes */ c = *previous; OUTPUT_SINGLE_REPEAT: prop_type = (*previous == OP_PROP || *previous == OP_NOTPROP)? previous[1] : -1; oldcode = code; code = previous; /* Usually overwrite previous item */ /* If the maximum is zero then the minimum must also be zero; Perl allows this case, so we do too - by simply omitting the item altogether. */ if (repeat_max == 0) goto END_REPEAT; /* All real repeats make it impossible to handle partial matching (maybe one day we will be able to remove this restriction). */ if (repeat_max != 1) cd->nopartial = TRUE; /* Combine the op_type with the repeat_type */ repeat_type += op_type; /* A minimum of zero is handled either as the special case * or ?, or as an UPTO, with the maximum given. */ if (repeat_min == 0) { if (repeat_max == -1) *code++ = OP_STAR + repeat_type; else if (repeat_max == 1) *code++ = OP_QUERY + repeat_type; else { *code++ = OP_UPTO + repeat_type; PUT2INC(code, 0, repeat_max); } } /* A repeat minimum of 1 is optimized into some special cases. If the maximum is unlimited, we use OP_PLUS. Otherwise, the original item it left in place and, if the maximum is greater than 1, we use OP_UPTO with one less than the maximum. */ else if (repeat_min == 1) { if (repeat_max == -1) *code++ = OP_PLUS + repeat_type; else { code = oldcode; /* leave previous item in place */ if (repeat_max == 1) goto END_REPEAT; *code++ = OP_UPTO + repeat_type; PUT2INC(code, 0, repeat_max - 1); } } /* The case {n,n} is just an EXACT, while the general case {n,m} is handled as an EXACT followed by an UPTO. */ else { *code++ = OP_EXACT + op_type; /* NB EXACT doesn't have repeat_type */ PUT2INC(code, 0, repeat_min); /* If the maximum is unlimited, insert an OP_STAR. Before doing so, we have to insert the character for the previous code. For a repeated Unicode property match, there is an extra byte that defines the required property. In UTF-8 mode, long characters have their length in c, with the 0x80 bit as a flag. */ if (repeat_max < 0) { #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { memcpy(code, utf8_char, c & 7); code += c & 7; } else #endif { *code++ = (uschar)c; if (prop_type >= 0) *code++ = (uschar)prop_type; } *code++ = OP_STAR + repeat_type; } /* Else insert an UPTO if the max is greater than the min, again preceded by the character, for the previously inserted code. */ else if (repeat_max != repeat_min) { #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { memcpy(code, utf8_char, c & 7); code += c & 7; } else #endif *code++ = (uschar)c; if (prop_type >= 0) *code++ = (uschar)prop_type; repeat_max -= repeat_min; *code++ = OP_UPTO + repeat_type; PUT2INC(code, 0, repeat_max); } } /* The character or character type itself comes last in all cases. */ #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { memcpy(code, utf8_char, c & 7); code += c & 7; } else #endif *code++ = (uschar)c; /* For a repeated Unicode property match, there is an extra byte that defines the required property. */ #ifdef SUPPORT_UCP if (prop_type >= 0) *code++ = prop_type; #endif } /* If previous was a character class or a back reference, we put the repeat stuff after it, but just skip the item if the repeat was {0,0}. */ else if (*previous == OP_CLASS || *previous == OP_NCLASS || #ifdef SUPPORT_UTF8 *previous == OP_XCLASS || #endif *previous == OP_REF) { if (repeat_max == 0) { code = previous; goto END_REPEAT; } /* All real repeats make it impossible to handle partial matching (maybe one day we will be able to remove this restriction). */ if (repeat_max != 1) cd->nopartial = TRUE; if (repeat_min == 0 && repeat_max == -1) *code++ = OP_CRSTAR + repeat_type; else if (repeat_min == 1 && repeat_max == -1) *code++ = OP_CRPLUS + repeat_type; else if (repeat_min == 0 && repeat_max == 1) *code++ = OP_CRQUERY + repeat_type; else { *code++ = OP_CRRANGE + repeat_type; PUT2INC(code, 0, repeat_min); if (repeat_max == -1) repeat_max = 0; /* 2-byte encoding for max */ PUT2INC(code, 0, repeat_max); } } /* If previous was a bracket group, we may have to replicate it in certain cases. */ else if (*previous >= OP_BRA || *previous == OP_ONCE || *previous == OP_COND) { register int i; int ketoffset = 0; int len = code - previous; uschar *bralink = NULL; /* If the maximum repeat count is unlimited, find the end of the bracket by scanning through from the start, and compute the offset back to it from the current code pointer. There may be an OP_OPT setting following the final KET, so we can't find the end just by going back from the code pointer. */ if (repeat_max == -1) { register uschar *ket = previous; do ket += GET(ket, 1); while (*ket != OP_KET); ketoffset = code - ket; } /* The case of a zero minimum is special because of the need to stick OP_BRAZERO in front of it, and because the group appears once in the data, whereas in other cases it appears the minimum number of times. For this reason, it is simplest to treat this case separately, as otherwise the code gets far too messy. There are several special subcases when the minimum is zero. */ if (repeat_min == 0) { /* If the maximum is also zero, we just omit the group from the output altogether. */ if (repeat_max == 0) { code = previous; goto END_REPEAT; } /* If the maximum is 1 or unlimited, we just have to stick in the BRAZERO and do no more at this point. However, we do need to adjust any OP_RECURSE calls inside the group that refer to the group itself or any internal group, because the offset is from the start of the whole regex. Temporarily terminate the pattern while doing this. */ if (repeat_max <= 1) { *code = OP_END; adjust_recurse(previous, 1, utf8, cd); memmove(previous+1, previous, len); code++; *previous++ = OP_BRAZERO + repeat_type; } /* If the maximum is greater than 1 and limited, we have to replicate in a nested fashion, sticking OP_BRAZERO before each set of brackets. The first one has to be handled carefully because it's the original copy, which has to be moved up. The remainder can be handled by code that is common with the non-zero minimum case below. We have to adjust the value or repeat_max, since one less copy is required. Once again, we may have to adjust any OP_RECURSE calls inside the group. */ else { int offset; *code = OP_END; adjust_recurse(previous, 2 + LINK_SIZE, utf8, cd); memmove(previous + 2 + LINK_SIZE, previous, len); code += 2 + LINK_SIZE; *previous++ = OP_BRAZERO + repeat_type; *previous++ = OP_BRA; /* We chain together the bracket offset fields that have to be filled in later when the ends of the brackets are reached. */ offset = (bralink == NULL)? 0 : previous - bralink; bralink = previous; PUTINC(previous, 0, offset); } repeat_max--; } /* If the minimum is greater than zero, replicate the group as many times as necessary, and adjust the maximum to the number of subsequent copies that we need. If we set a first char from the group, and didn't set a required char, copy the latter from the former. */ else { if (repeat_min > 1) { if (groupsetfirstbyte && reqbyte < 0) reqbyte = firstbyte; for (i = 1; i < repeat_min; i++) { memcpy(code, previous, len); code += len; } } if (repeat_max > 0) repeat_max -= repeat_min; } /* This code is common to both the zero and non-zero minimum cases. If the maximum is limited, it replicates the group in a nested fashion, remembering the bracket starts on a stack. In the case of a zero minimum, the first one was set up above. In all cases the repeat_max now specifies the number of additional copies needed. */ if (repeat_max >= 0) { for (i = repeat_max - 1; i >= 0; i--) { *code++ = OP_BRAZERO + repeat_type; /* All but the final copy start a new nesting, maintaining the chain of brackets outstanding. */ if (i != 0) { int offset; *code++ = OP_BRA; offset = (bralink == NULL)? 0 : code - bralink; bralink = code; PUTINC(code, 0, offset); } memcpy(code, previous, len); code += len; } /* Now chain through the pending brackets, and fill in their length fields (which are holding the chain links pro tem). */ while (bralink != NULL) { int oldlinkoffset; int offset = code - bralink + 1; uschar *bra = code - offset; oldlinkoffset = GET(bra, 1); bralink = (oldlinkoffset == 0)? NULL : bralink - oldlinkoffset; *code++ = OP_KET; PUTINC(code, 0, offset); PUT(bra, 1, offset); } } /* If the maximum is unlimited, set a repeater in the final copy. We can't just offset backwards from the current code point, because we don't know if there's been an options resetting after the ket. The correct offset was computed above. */ else code[-ketoffset] = OP_KETRMAX + repeat_type; } /* Else there's some kind of shambles */ else { *errorcodeptr = ERR11; goto FAILED; } /* If the character following a repeat is '+', we wrap the entire repeated item inside OP_ONCE brackets. This is just syntactic sugar, taken from Sun's Java package. The repeated item starts at tempcode, not at previous, which might be the first part of a string whose (former) last char we repeated. However, we don't support '+' after a greediness '?'. */ if (possessive_quantifier) { int len = code - tempcode; memmove(tempcode + 1+LINK_SIZE, tempcode, len); code += 1 + LINK_SIZE; len += 1 + LINK_SIZE; tempcode[0] = OP_ONCE; *code++ = OP_KET; PUTINC(code, 0, len); PUT(tempcode, 1, len); } /* In all case we no longer have a previous item. We also set the "follows varying string" flag for subsequently encountered reqbytes if it isn't already set and we have just passed a varying length item. */ END_REPEAT: previous = NULL; cd->req_varyopt |= reqvary; break; /* Start of nested bracket sub-expression, or comment or lookahead or lookbehind or option setting or condition. First deal with special things that can come after a bracket; all are introduced by ?, and the appearance of any of them means that this is not a referencing group. They were checked for validity in the first pass over the string, so we don't have to check for syntax errors here. */ case '(': newoptions = options; skipbytes = 0; if (*(++ptr) == '?') { int set, unset; int *optset; switch (*(++ptr)) { case '#': /* Comment; skip to ket */ ptr++; while (*ptr != ')') ptr++; continue; case ':': /* Non-extracting bracket */ bravalue = OP_BRA; ptr++; break; case '(': bravalue = OP_COND; /* Conditional group */ /* Condition to test for recursion */ if (ptr[1] == 'R') { code[1+LINK_SIZE] = OP_CREF; PUT2(code, 2+LINK_SIZE, CREF_RECURSE); skipbytes = 3; ptr += 3; } /* Condition to test for a numbered subpattern match. We know that if a digit follows ( then there will just be digits until ) because the syntax was checked in the first pass. */ else if ((digitab[ptr[1]] && ctype_digit) != 0) { int condref; /* Don't amalgamate; some compilers */ condref = *(++ptr) - '0'; /* grumble at autoincrement in declaration */ while (*(++ptr) != ')') condref = condref*10 + *ptr - '0'; if (condref == 0) { *errorcodeptr = ERR35; goto FAILED; } ptr++; code[1+LINK_SIZE] = OP_CREF; PUT2(code, 2+LINK_SIZE, condref); skipbytes = 3; } /* For conditions that are assertions, we just fall through, having set bravalue above. */ break; case '=': /* Positive lookahead */ bravalue = OP_ASSERT; ptr++; break; case '!': /* Negative lookahead */ bravalue = OP_ASSERT_NOT; ptr++; break; case '<': /* Lookbehinds */ switch (*(++ptr)) { case '=': /* Positive lookbehind */ bravalue = OP_ASSERTBACK; ptr++; break; case '!': /* Negative lookbehind */ bravalue = OP_ASSERTBACK_NOT; ptr++; break; } break; case '>': /* One-time brackets */ bravalue = OP_ONCE; ptr++; break; case 'C': /* Callout - may be followed by digits; */ previous_callout = code; /* Save for later completion */ after_manual_callout = 1; /* Skip one item before completing */ *code++ = OP_CALLOUT; /* Already checked that the terminating */ { /* closing parenthesis is present. */ int n = 0; while ((digitab[*(++ptr)] & ctype_digit) != 0) n = n * 10 + *ptr - '0'; if (n > 255) { *errorcodeptr = ERR38; goto FAILED; } *code++ = (uschar)n; PUT(code, 0, ptr - cd->start_pattern + 1); /* Pattern offset */ PUT(code, LINK_SIZE, 0); /* Default length */ code += 2 * LINK_SIZE; } previous = NULL; continue; case 'P': /* Named subpattern handling */ if (*(++ptr) == '<') /* Definition */ { int i, namelen; uschar *slot = cd->name_table; const uschar *name; /* Don't amalgamate; some compilers */ name = ++ptr; /* grumble at autoincrement in declaration */ while (*ptr++ != '>'); namelen = ptr - name - 1; for (i = 0; i < cd->names_found; i++) { int crc = memcmp(name, slot+2, namelen); if (crc == 0) { if (slot[2+namelen] == 0) { *errorcodeptr = ERR43; goto FAILED; } crc = -1; /* Current name is substring */ } if (crc < 0) { memmove(slot + cd->name_entry_size, slot, (cd->names_found - i) * cd->name_entry_size); break; } slot += cd->name_entry_size; } PUT2(slot, 0, *brackets + 1); memcpy(slot + 2, name, namelen); slot[2+namelen] = 0; cd->names_found++; goto NUMBERED_GROUP; } if (*ptr == '=' || *ptr == '>') /* Reference or recursion */ { int i, namelen; int type = *ptr++; const uschar *name = ptr; uschar *slot = cd->name_table; while (*ptr != ')') ptr++; namelen = ptr - name; for (i = 0; i < cd->names_found; i++) { if (strncmp((char *)name, (char *)slot+2, namelen) == 0) break; slot += cd->name_entry_size; } if (i >= cd->names_found) { *errorcodeptr = ERR15; goto FAILED; } recno = GET2(slot, 0); if (type == '>') goto HANDLE_RECURSION; /* A few lines below */ /* Back reference */ previous = code; *code++ = OP_REF; PUT2INC(code, 0, recno); cd->backref_map |= (recno < 32)? (1 << recno) : 1; if (recno > cd->top_backref) cd->top_backref = recno; continue; } /* Should never happen */ break; case 'R': /* Pattern recursion */ ptr++; /* Same as (?0) */ /* Fall through */ /* Recursion or "subroutine" call */ case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': { const uschar *called; recno = 0; while((digitab[*ptr] & ctype_digit) != 0) recno = recno * 10 + *ptr++ - '0'; /* Come here from code above that handles a named recursion */ HANDLE_RECURSION: previous = code; /* Find the bracket that is being referenced. Temporarily end the regex in case it doesn't exist. */ *code = OP_END; called = (recno == 0)? cd->start_code : find_bracket(cd->start_code, utf8, recno); if (called == NULL) { *errorcodeptr = ERR15; goto FAILED; } /* If the subpattern is still open, this is a recursive call. We check to see if this is a left recursion that could loop for ever, and diagnose that case. */ if (GET(called, 1) == 0 && could_be_empty(called, code, bcptr, utf8)) { *errorcodeptr = ERR40; goto FAILED; } /* Insert the recursion/subroutine item */ *code = OP_RECURSE; PUT(code, 1, called - cd->start_code); code += 1 + LINK_SIZE; } continue; /* Character after (? not specially recognized */ default: /* Option setting */ set = unset = 0; optset = &set; while (*ptr != ')' && *ptr != ':') { switch (*ptr++) { case '-': optset = &unset; break; case 'i': *optset |= PCRE_CASELESS; break; case 'm': *optset |= PCRE_MULTILINE; break; case 's': *optset |= PCRE_DOTALL; break; case 'x': *optset |= PCRE_EXTENDED; break; case 'U': *optset |= PCRE_UNGREEDY; break; case 'X': *optset |= PCRE_EXTRA; break; } } /* Set up the changed option bits, but don't change anything yet. */ newoptions = (options | set) & (~unset); /* If the options ended with ')' this is not the start of a nested group with option changes, so the options change at this level. Compile code to change the ims options if this setting actually changes any of them. We also pass the new setting back so that it can be put at the start of any following branches, and when this group ends (if we are in a group), a resetting item can be compiled. Note that if this item is right at the start of the pattern, the options will have been abstracted and made global, so there will be no change to compile. */ if (*ptr == ')') { if ((options & PCRE_IMS) != (newoptions & PCRE_IMS)) { *code++ = OP_OPT; *code++ = newoptions & PCRE_IMS; } /* Change options at this level, and pass them back for use in subsequent branches. Reset the greedy defaults and the case value for firstbyte and reqbyte. */ *optionsptr = options = newoptions; greedy_default = ((newoptions & PCRE_UNGREEDY) != 0); greedy_non_default = greedy_default ^ 1; req_caseopt = ((options & PCRE_CASELESS) != 0)? REQ_CASELESS : 0; previous = NULL; /* This item can't be repeated */ continue; /* It is complete */ } /* If the options ended with ':' we are heading into a nested group with possible change of options. Such groups are non-capturing and are not assertions of any kind. All we need to do is skip over the ':'; the newoptions value is handled below. */ bravalue = OP_BRA; ptr++; } } /* If PCRE_NO_AUTO_CAPTURE is set, all unadorned brackets become non-capturing and behave like (?:...) brackets */ else if ((options & PCRE_NO_AUTO_CAPTURE) != 0) { bravalue = OP_BRA; } /* Else we have a referencing group; adjust the opcode. If the bracket number is greater than EXTRACT_BASIC_MAX, we set the opcode one higher, and arrange for the true number to follow later, in an OP_BRANUMBER item. */ else { NUMBERED_GROUP: if (++(*brackets) > EXTRACT_BASIC_MAX) { bravalue = OP_BRA + EXTRACT_BASIC_MAX + 1; code[1+LINK_SIZE] = OP_BRANUMBER; PUT2(code, 2+LINK_SIZE, *brackets); skipbytes = 3; } else bravalue = OP_BRA + *brackets; } /* Process nested bracketed re. Assertions may not be repeated, but other kinds can be. We copy code into a non-register variable in order to be able to pass its address because some compilers complain otherwise. Pass in a new setting for the ims options if they have changed. */ previous = (bravalue >= OP_ONCE)? code : NULL; *code = (uschar)bravalue; tempcode = code; tempreqvary = cd->req_varyopt; /* Save value before bracket */ if (!compile_regex( newoptions, /* The complete new option state */ options & PCRE_IMS, /* The previous ims option state */ brackets, /* Extracting bracket count */ &tempcode, /* Where to put code (updated) */ &ptr, /* Input pointer (updated) */ errorcodeptr, /* Where to put an error message */ (bravalue == OP_ASSERTBACK || bravalue == OP_ASSERTBACK_NOT), /* TRUE if back assert */ skipbytes, /* Skip over OP_COND/OP_BRANUMBER */ &subfirstbyte, /* For possible first char */ &subreqbyte, /* For possible last char */ bcptr, /* Current branch chain */ cd)) /* Tables block */ goto FAILED; /* At the end of compiling, code is still pointing to the start of the group, while tempcode has been updated to point past the end of the group and any option resetting that may follow it. The pattern pointer (ptr) is on the bracket. */ /* If this is a conditional bracket, check that there are no more than two branches in the group. */ else if (bravalue == OP_COND) { uschar *tc = code; condcount = 0; do { condcount++; tc += GET(tc,1); } while (*tc != OP_KET); if (condcount > 2) { *errorcodeptr = ERR27; goto FAILED; } /* If there is just one branch, we must not make use of its firstbyte or reqbyte, because this is equivalent to an empty second branch. */ if (condcount == 1) subfirstbyte = subreqbyte = REQ_NONE; } /* Handle updating of the required and first characters. Update for normal brackets of all kinds, and conditions with two branches (see code above). If the bracket is followed by a quantifier with zero repeat, we have to back off. Hence the definition of zeroreqbyte and zerofirstbyte outside the main loop so that they can be accessed for the back off. */ zeroreqbyte = reqbyte; zerofirstbyte = firstbyte; groupsetfirstbyte = FALSE; if (bravalue >= OP_BRA || bravalue == OP_ONCE || bravalue == OP_COND) { /* If we have not yet set a firstbyte in this branch, take it from the subpattern, remembering that it was set here so that a repeat of more than one can replicate it as reqbyte if necessary. If the subpattern has no firstbyte, set "none" for the whole branch. In both cases, a zero repeat forces firstbyte to "none". */ if (firstbyte == REQ_UNSET) { if (subfirstbyte >= 0) { firstbyte = subfirstbyte; groupsetfirstbyte = TRUE; } else firstbyte = REQ_NONE; zerofirstbyte = REQ_NONE; } /* If firstbyte was previously set, convert the subpattern's firstbyte into reqbyte if there wasn't one, using the vary flag that was in existence beforehand. */ else if (subfirstbyte >= 0 && subreqbyte < 0) subreqbyte = subfirstbyte | tempreqvary; /* If the subpattern set a required byte (or set a first byte that isn't really the first byte - see above), set it. */ if (subreqbyte >= 0) reqbyte = subreqbyte; } /* For a forward assertion, we take the reqbyte, if set. This can be helpful if the pattern that follows the assertion doesn't set a different char. For example, it's useful for /(?=abcde).+/. We can't set firstbyte for an assertion, however because it leads to incorrect effect for patterns such as /(?=a)a.+/ when the "real" "a" would then become a reqbyte instead of a firstbyte. This is overcome by a scan at the end if there's no firstbyte, looking for an asserted first char. */ else if (bravalue == OP_ASSERT && subreqbyte >= 0) reqbyte = subreqbyte; /* Now update the main code pointer to the end of the group. */ code = tempcode; /* Error if hit end of pattern */ if (*ptr != ')') { *errorcodeptr = ERR14; goto FAILED; } break; /* Check \ for being a real metacharacter; if not, fall through and handle it as a data character at the start of a string. Escape items are checked for validity in the pre-compiling pass. */ case '\\': tempptr = ptr; c = check_escape(&ptr, errorcodeptr, *brackets, options, FALSE); /* Handle metacharacters introduced by \. For ones like \d, the ESC_ values are arranged to be the negation of the corresponding OP_values. For the back references, the values are ESC_REF plus the reference number. Only back references and those types that consume a character may be repeated. We can test for values between ESC_b and ESC_Z for the latter; this may have to change if any new ones are ever created. */ if (c < 0) { if (-c == ESC_Q) /* Handle start of quoted string */ { if (ptr[1] == '\\' && ptr[2] == 'E') ptr += 2; /* avoid empty string */ else inescq = TRUE; continue; } /* For metasequences that actually match a character, we disable the setting of a first character if it hasn't already been set. */ if (firstbyte == REQ_UNSET && -c > ESC_b && -c < ESC_Z) firstbyte = REQ_NONE; /* Set values to reset to if this is followed by a zero repeat. */ zerofirstbyte = firstbyte; zeroreqbyte = reqbyte; /* Back references are handled specially */ if (-c >= ESC_REF) { int number = -c - ESC_REF; previous = code; *code++ = OP_REF; PUT2INC(code, 0, number); } /* So are Unicode property matches, if supported. We know that get_ucp won't fail because it was tested in the pre-pass. */ #ifdef SUPPORT_UCP else if (-c == ESC_P || -c == ESC_p) { BOOL negated; int value = get_ucp(&ptr, &negated, errorcodeptr); previous = code; *code++ = ((-c == ESC_p) != negated)? OP_PROP : OP_NOTPROP; *code++ = value; } #endif /* For the rest, we can obtain the OP value by negating the escape value */ else { previous = (-c > ESC_b && -c < ESC_Z)? code : NULL; *code++ = -c; } continue; } /* We have a data character whose value is in c. In UTF-8 mode it may have a value > 127. We set its representation in the length/buffer, and then handle it as a data character. */ #ifdef SUPPORT_UTF8 if (utf8 && c > 127) mclength = _pcre_ord2utf8(c, mcbuffer); else #endif { mcbuffer[0] = (uschar)c; mclength = 1; } goto ONE_CHAR; /* Handle a literal character. It is guaranteed not to be whitespace or # when the extended flag is set. If we are in UTF-8 mode, it may be a multi-byte literal character. */ default: NORMAL_CHAR: mclength = 1; mcbuffer[0] = (uschar)c; #ifdef SUPPORT_UTF8 if (utf8 && (c & 0xc0) == 0xc0) { while ((ptr[1] & 0xc0) == 0x80) mcbuffer[mclength++] = *(++ptr); } #endif /* At this point we have the character's bytes in mcbuffer, and the length in mclength. When not in UTF-8 mode, the length is always 1. */ ONE_CHAR: previous = code; *code++ = ((options & PCRE_CASELESS) != 0)? OP_CHARNC : OP_CHAR; for (c = 0; c < mclength; c++) *code++ = mcbuffer[c]; /* Set the first and required bytes appropriately. If no previous first byte, set it from this character, but revert to none on a zero repeat. Otherwise, leave the firstbyte value alone, and don't change it on a zero repeat. */ if (firstbyte == REQ_UNSET) { zerofirstbyte = REQ_NONE; zeroreqbyte = reqbyte; /* If the character is more than one byte long, we can set firstbyte only if it is not to be matched caselessly. */ if (mclength == 1 || req_caseopt == 0) { firstbyte = mcbuffer[0] | req_caseopt; if (mclength != 1) reqbyte = code[-1] | cd->req_varyopt; } else firstbyte = reqbyte = REQ_NONE; } /* firstbyte was previously set; we can set reqbyte only the length is 1 or the matching is caseful. */ else { zerofirstbyte = firstbyte; zeroreqbyte = reqbyte; if (mclength == 1 || req_caseopt == 0) reqbyte = code[-1] | req_caseopt | cd->req_varyopt; } break; /* End of literal character handling */ } } /* end of big loop */ /* Control never reaches here by falling through, only by a goto for all the error states. Pass back the position in the pattern so that it can be displayed to the user for diagnosing the error. */ FAILED: *ptrptr = ptr; return FALSE; } /************************************************* * Compile sequence of alternatives * *************************************************/ /* On entry, ptr is pointing past the bracket character, but on return it points to the closing bracket, or vertical bar, or end of string. The code variable is pointing at the byte into which the BRA operator has been stored. If the ims options are changed at the start (for a (?ims: group) or during any branch, we need to insert an OP_OPT item at the start of every following branch to ensure they get set correctly at run time, and also pass the new options into every subsequent branch compile. Argument: options option bits, including any changes for this subpattern oldims previous settings of ims option bits brackets -> int containing the number of extracting brackets used codeptr -> the address of the current code pointer ptrptr -> the address of the current pattern pointer errorcodeptr -> pointer to error code variable lookbehind TRUE if this is a lookbehind assertion skipbytes skip this many bytes at start (for OP_COND, OP_BRANUMBER) firstbyteptr place to put the first required character, or a negative number reqbyteptr place to put the last required character, or a negative number bcptr pointer to the chain of currently open branches cd points to the data block with tables pointers etc. Returns: TRUE on success */ static BOOL compile_regex(int options, int oldims, int *brackets, uschar **codeptr, const uschar **ptrptr, int *errorcodeptr, BOOL lookbehind, int skipbytes, int *firstbyteptr, int *reqbyteptr, branch_chain *bcptr, compile_data *cd) { const uschar *ptr = *ptrptr; uschar *code = *codeptr; uschar *last_branch = code; uschar *start_bracket = code; uschar *reverse_count = NULL; int firstbyte, reqbyte; int branchfirstbyte, branchreqbyte; branch_chain bc; bc.outer = bcptr; bc.current = code; firstbyte = reqbyte = REQ_UNSET; /* Offset is set zero to mark that this bracket is still open */ PUT(code, 1, 0); code += 1 + LINK_SIZE + skipbytes; /* Loop for each alternative branch */ for (;;) { /* Handle a change of ims options at the start of the branch */ if ((options & PCRE_IMS) != oldims) { *code++ = OP_OPT; *code++ = options & PCRE_IMS; } /* Set up dummy OP_REVERSE if lookbehind assertion */ if (lookbehind) { *code++ = OP_REVERSE; reverse_count = code; PUTINC(code, 0, 0); } /* Now compile the branch */ if (!compile_branch(&options, brackets, &code, &ptr, errorcodeptr, &branchfirstbyte, &branchreqbyte, &bc, cd)) { *ptrptr = ptr; return FALSE; } /* If this is the first branch, the firstbyte and reqbyte values for the branch become the values for the regex. */ if (*last_branch != OP_ALT) { firstbyte = branchfirstbyte; reqbyte = branchreqbyte; } /* If this is not the first branch, the first char and reqbyte have to match the values from all the previous branches, except that if the previous value for reqbyte didn't have REQ_VARY set, it can still match, and we set REQ_VARY for the regex. */ else { /* If we previously had a firstbyte, but it doesn't match the new branch, we have to abandon the firstbyte for the regex, but if there was previously no reqbyte, it takes on the value of the old firstbyte. */ if (firstbyte >= 0 && firstbyte != branchfirstbyte) { if (reqbyte < 0) reqbyte = firstbyte; firstbyte = REQ_NONE; } /* If we (now or from before) have no firstbyte, a firstbyte from the branch becomes a reqbyte if there isn't a branch reqbyte. */ if (firstbyte < 0 && branchfirstbyte >= 0 && branchreqbyte < 0) branchreqbyte = branchfirstbyte; /* Now ensure that the reqbytes match */ if ((reqbyte & ~REQ_VARY) != (branchreqbyte & ~REQ_VARY)) reqbyte = REQ_NONE; else reqbyte |= branchreqbyte; /* To "or" REQ_VARY */ } /* If lookbehind, check that this branch matches a fixed-length string, and put the length into the OP_REVERSE item. Temporarily mark the end of the branch with OP_END. */ if (lookbehind) { int length; *code = OP_END; length = find_fixedlength(last_branch, options); DPRINTF(("fixed length = %d\n", length)); if (length < 0) { *errorcodeptr = (length == -2)? ERR36 : ERR25; *ptrptr = ptr; return FALSE; } PUT(reverse_count, 0, length); } /* Reached end of expression, either ')' or end of pattern. Go back through the alternative branches and reverse the chain of offsets, with the field in the BRA item now becoming an offset to the first alternative. If there are no alternatives, it points to the end of the group. The length in the terminating ket is always the length of the whole bracketed item. If any of the ims options were changed inside the group, compile a resetting op-code following, except at the very end of the pattern. Return leaving the pointer at the terminating char. */ if (*ptr != '|') { int length = code - last_branch; do { int prev_length = GET(last_branch, 1); PUT(last_branch, 1, length); length = prev_length; last_branch -= length; } while (length > 0); /* Fill in the ket */ *code = OP_KET; PUT(code, 1, code - start_bracket); code += 1 + LINK_SIZE; /* Resetting option if needed */ if ((options & PCRE_IMS) != oldims && *ptr == ')') { *code++ = OP_OPT; *code++ = (uschar)oldims; } /* Set values to pass back */ *codeptr = code; *ptrptr = ptr; *firstbyteptr = firstbyte; *reqbyteptr = reqbyte; return TRUE; } /* Another branch follows; insert an "or" node. Its length field points back to the previous branch while the bracket remains open. At the end the chain is reversed. It's done like this so that the start of the bracket has a zero offset until it is closed, making it possible to detect recursion. */ *code = OP_ALT; PUT(code, 1, code - last_branch); bc.current = last_branch = code; code += 1 + LINK_SIZE; ptr++; } /* Control never reaches here */ } /************************************************* * Check for anchored expression * *************************************************/ /* Try to find out if this is an anchored regular expression. Consider each alternative branch. If they all start with OP_SOD or OP_CIRC, or with a bracket all of whose alternatives start with OP_SOD or OP_CIRC (recurse ad lib), then it's anchored. However, if this is a multiline pattern, then only OP_SOD counts, since OP_CIRC can match in the middle. We can also consider a regex to be anchored if OP_SOM starts all its branches. This is the code for \G, which means "match at start of match position, taking into account the match offset". A branch is also implicitly anchored if it starts with .* and DOTALL is set, because that will try the rest of the pattern at all possible matching points, so there is no point trying again.... er .... .... except when the .* appears inside capturing parentheses, and there is a subsequent back reference to those parentheses. We haven't enough information to catch that case precisely. At first, the best we could do was to detect when .* was in capturing brackets and the highest back reference was greater than or equal to that level. However, by keeping a bitmap of the first 31 back references, we can catch some of the more common cases more precisely. Arguments: code points to start of expression (the bracket) options points to the options setting bracket_map a bitmap of which brackets we are inside while testing; this handles up to substring 31; after that we just have to take the less precise approach backref_map the back reference bitmap Returns: TRUE or FALSE */ static BOOL is_anchored(register const uschar *code, int *options, unsigned int bracket_map, unsigned int backref_map) { do { const uschar *scode = first_significant_code(code + 1+LINK_SIZE, options, PCRE_MULTILINE, FALSE); register int op = *scode; /* Capturing brackets */ if (op > OP_BRA) { int new_map; op -= OP_BRA; if (op > EXTRACT_BASIC_MAX) op = GET2(scode, 2+LINK_SIZE); new_map = bracket_map | ((op < 32)? (1 << op) : 1); if (!is_anchored(scode, options, new_map, backref_map)) return FALSE; } /* Other brackets */ else if (op == OP_BRA || op == OP_ASSERT || op == OP_ONCE || op == OP_COND) { if (!is_anchored(scode, options, bracket_map, backref_map)) return FALSE; } /* .* is not anchored unless DOTALL is set and it isn't in brackets that are or may be referenced. */ else if ((op == OP_TYPESTAR || op == OP_TYPEMINSTAR) && (*options & PCRE_DOTALL) != 0) { if (scode[1] != OP_ANY || (bracket_map & backref_map) != 0) return FALSE; } /* Check for explicit anchoring */ else if (op != OP_SOD && op != OP_SOM && ((*options & PCRE_MULTILINE) != 0 || op != OP_CIRC)) return FALSE; code += GET(code, 1); } while (*code == OP_ALT); /* Loop for each alternative */ return TRUE; } /************************************************* * Check for starting with ^ or .* * *************************************************/ /* This is called to find out if every branch starts with ^ or .* so that "first char" processing can be done to speed things up in multiline matching and for non-DOTALL patterns that start with .* (which must start at the beginning or after \n). As in the case of is_anchored() (see above), we have to take account of back references to capturing brackets that contain .* because in that case we can't make the assumption. Arguments: code points to start of expression (the bracket) bracket_map a bitmap of which brackets we are inside while testing; this handles up to substring 31; after that we just have to take the less precise approach backref_map the back reference bitmap Returns: TRUE or FALSE */ static BOOL is_startline(const uschar *code, unsigned int bracket_map, unsigned int backref_map) { do { const uschar *scode = first_significant_code(code + 1+LINK_SIZE, NULL, 0, FALSE); register int op = *scode; /* Capturing brackets */ if (op > OP_BRA) { int new_map; op -= OP_BRA; if (op > EXTRACT_BASIC_MAX) op = GET2(scode, 2+LINK_SIZE); new_map = bracket_map | ((op < 32)? (1 << op) : 1); if (!is_startline(scode, new_map, backref_map)) return FALSE; } /* Other brackets */ else if (op == OP_BRA || op == OP_ASSERT || op == OP_ONCE || op == OP_COND) { if (!is_startline(scode, bracket_map, backref_map)) return FALSE; } /* .* means "start at start or after \n" if it isn't in brackets that may be referenced. */ else if (op == OP_TYPESTAR || op == OP_TYPEMINSTAR) { if (scode[1] != OP_ANY || (bracket_map & backref_map) != 0) return FALSE; } /* Check for explicit circumflex */ else if (op != OP_CIRC) return FALSE; /* Move on to the next alternative */ code += GET(code, 1); } while (*code == OP_ALT); /* Loop for each alternative */ return TRUE; } /************************************************* * Check for asserted fixed first char * *************************************************/ /* During compilation, the "first char" settings from forward assertions are discarded, because they can cause conflicts with actual literals that follow. However, if we end up without a first char setting for an unanchored pattern, it is worth scanning the regex to see if there is an initial asserted first char. If all branches start with the same asserted char, or with a bracket all of whose alternatives start with the same asserted char (recurse ad lib), then we return that char, otherwise -1. Arguments: code points to start of expression (the bracket) options pointer to the options (used to check casing changes) inassert TRUE if in an assertion Returns: -1 or the fixed first char */ static int find_firstassertedchar(const uschar *code, int *options, BOOL inassert) { register int c = -1; do { int d; const uschar *scode = first_significant_code(code + 1+LINK_SIZE, options, PCRE_CASELESS, TRUE); register int op = *scode; if (op >= OP_BRA) op = OP_BRA; switch(op) { default: return -1; case OP_BRA: case OP_ASSERT: case OP_ONCE: case OP_COND: if ((d = find_firstassertedchar(scode, options, op == OP_ASSERT)) < 0) return -1; if (c < 0) c = d; else if (c != d) return -1; break; case OP_EXACT: /* Fall through */ scode += 2; case OP_CHAR: case OP_CHARNC: case OP_PLUS: case OP_MINPLUS: if (!inassert) return -1; if (c < 0) { c = scode[1]; if ((*options & PCRE_CASELESS) != 0) c |= REQ_CASELESS; } else if (c != scode[1]) return -1; break; } code += GET(code, 1); } while (*code == OP_ALT); return c; } /************************************************* * Compile a Regular Expression * *************************************************/ /* This function takes a string and returns a pointer to a block of store holding a compiled version of the expression. The original API for this function had no error code return variable; it is retained for backwards compatibility. The new function is given a new name. Arguments: pattern the regular expression options various option bits errorcodeptr pointer to error code variable (pcre_compile2() only) can be NULL if you don't want a code value errorptr pointer to pointer to error text erroroffset ptr offset in pattern where error was detected tables pointer to character tables or NULL Returns: pointer to compiled data block, or NULL on error, with errorptr and erroroffset set */ EXPORT pcre * pcre_compile(const char *pattern, int options, const char **errorptr, int *erroroffset, const unsigned char *tables) { return pcre_compile2(pattern, options, NULL, errorptr, erroroffset, tables); } EXPORT pcre * pcre_compile2(const char *pattern, int options, int *errorcodeptr, const char **errorptr, int *erroroffset, const unsigned char *tables) { real_pcre *re; int length = 1 + LINK_SIZE; /* For initial BRA plus length */ int c, firstbyte, reqbyte; int bracount = 0; int branch_extra = 0; int branch_newextra; int item_count = -1; int name_count = 0; int max_name_size = 0; int lastitemlength = 0; int errorcode = 0; #ifdef SUPPORT_UTF8 BOOL utf8; BOOL class_utf8; #endif BOOL inescq = FALSE; unsigned int brastackptr = 0; size_t size; uschar *code; const uschar *codestart; const uschar *ptr; compile_data compile_block; int brastack[BRASTACK_SIZE]; uschar bralenstack[BRASTACK_SIZE]; /* We can't pass back an error message if errorptr is NULL; I guess the best we can do is just return NULL, but we can set a code value if there is a code pointer. */ if (errorptr == NULL) { if (errorcodeptr != NULL) *errorcodeptr = 99; return NULL; } *errorptr = NULL; if (errorcodeptr != NULL) *errorcodeptr = ERR0; /* However, we can give a message for this error */ if (erroroffset == NULL) { errorcode = ERR16; goto PCRE_EARLY_ERROR_RETURN; } *erroroffset = 0; /* Can't support UTF8 unless PCRE has been compiled to include the code. */ #ifdef SUPPORT_UTF8 utf8 = (options & PCRE_UTF8) != 0; if (utf8 && (options & PCRE_NO_UTF8_CHECK) == 0 && (*erroroffset = _pcre_valid_utf8((uschar *)pattern, -1)) >= 0) { errorcode = ERR44; goto PCRE_EARLY_ERROR_RETURN; } #else if ((options & PCRE_UTF8) != 0) { errorcode = ERR32; goto PCRE_EARLY_ERROR_RETURN; } #endif if ((options & ~PUBLIC_OPTIONS) != 0) { errorcode = ERR17; goto PCRE_EARLY_ERROR_RETURN; } /* Set up pointers to the individual character tables */ if (tables == NULL) tables = _pcre_default_tables; compile_block.lcc = tables + lcc_offset; compile_block.fcc = tables + fcc_offset; compile_block.cbits = tables + cbits_offset; compile_block.ctypes = tables + ctypes_offset; /* Maximum back reference and backref bitmap. This is updated for numeric references during the first pass, but for named references during the actual compile pass. The bitmap records up to 31 back references to help in deciding whether (.*) can be treated as anchored or not. */ compile_block.top_backref = 0; compile_block.backref_map = 0; /* Reflect pattern for debugging output */ DPRINTF(("------------------------------------------------------------------\n")); DPRINTF(("%s\n", pattern)); /* The first thing to do is to make a pass over the pattern to compute the amount of store required to hold the compiled code. This does not have to be perfect as long as errors are overestimates. At the same time we can detect any flag settings right at the start, and extract them. Make an attempt to correct for any counted white space if an "extended" flag setting appears late in the pattern. We can't be so clever for #-comments. */ ptr = (const uschar *)(pattern - 1); while ((c = *(++ptr)) != 0) { int min, max; int class_optcount; int bracket_length; int duplength; /* If we are inside a \Q...\E sequence, all chars are literal */ if (inescq) { if ((options & PCRE_AUTO_CALLOUT) != 0) length += 2 + 2*LINK_SIZE; goto NORMAL_CHAR; } /* Otherwise, first check for ignored whitespace and comments */ if ((options & PCRE_EXTENDED) != 0) { if ((compile_block.ctypes[c] & ctype_space) != 0) continue; if (c == '#') { /* The space before the ; is to avoid a warning on a silly compiler on the Macintosh. */ while ((c = *(++ptr)) != 0 && c != NEWLINE) ; if (c == 0) break; continue; } } item_count++; /* Is zero for the first non-comment item */ /* Allow space for auto callout before every item except quantifiers. */ if ((options & PCRE_AUTO_CALLOUT) != 0 && c != '*' && c != '+' && c != '?' && (c != '{' || !is_counted_repeat(ptr + 1))) length += 2 + 2*LINK_SIZE; switch(c) { /* A backslashed item may be an escaped data character or it may be a character type. */ case '\\': c = check_escape(&ptr, &errorcode, bracount, options, FALSE); if (errorcode != 0) goto PCRE_ERROR_RETURN; lastitemlength = 1; /* Default length of last item for repeats */ if (c >= 0) /* Data character */ { length += 2; /* For a one-byte character */ #ifdef SUPPORT_UTF8 if (utf8 && c > 127) { int i; for (i = 0; i < _pcre_utf8_table1_size; i++) if (c <= _pcre_utf8_table1[i]) break; length += i; lastitemlength += i; } #endif continue; } /* If \Q, enter "literal" mode */ if (-c == ESC_Q) { inescq = TRUE; continue; } /* \X is supported only if Unicode property support is compiled */ #ifndef SUPPORT_UCP if (-c == ESC_X) { errorcode = ERR45; goto PCRE_ERROR_RETURN; } #endif /* \P and \p are for Unicode properties, but only when the support has been compiled. Each item needs 2 bytes. */ else if (-c == ESC_P || -c == ESC_p) { #ifdef SUPPORT_UCP BOOL negated; length += 2; lastitemlength = 2; if (get_ucp(&ptr, &negated, &errorcode) < 0) goto PCRE_ERROR_RETURN; continue; #else errorcode = ERR45; goto PCRE_ERROR_RETURN; #endif } /* Other escapes need one byte */ length++; /* A back reference needs an additional 2 bytes, plus either one or 5 bytes for a repeat. We also need to keep the value of the highest back reference. */ if (c <= -ESC_REF) { int refnum = -c - ESC_REF; compile_block.backref_map |= (refnum < 32)? (1 << refnum) : 1; if (refnum > compile_block.top_backref) compile_block.top_backref = refnum; length += 2; /* For single back reference */ if (ptr[1] == '{' && is_counted_repeat(ptr+2)) { ptr = read_repeat_counts(ptr+2, &min, &max, &errorcode); if (errorcode != 0) goto PCRE_ERROR_RETURN; if ((min == 0 && (max == 1 || max == -1)) || (min == 1 && max == -1)) length++; else length += 5; if (ptr[1] == '?') ptr++; } } continue; case '^': /* Single-byte metacharacters */ case '.': case '$': length++; lastitemlength = 1; continue; case '*': /* These repeats won't be after brackets; */ case '+': /* those are handled separately */ case '?': length++; goto POSESSIVE; /* A few lines below */ /* This covers the cases of braced repeats after a single char, metachar, class, or back reference. */ case '{': if (!is_counted_repeat(ptr+1)) goto NORMAL_CHAR; ptr = read_repeat_counts(ptr+1, &min, &max, &errorcode); if (errorcode != 0) goto PCRE_ERROR_RETURN; /* These special cases just insert one extra opcode */ if ((min == 0 && (max == 1 || max == -1)) || (min == 1 && max == -1)) length++; /* These cases might insert additional copies of a preceding character. */ else { if (min != 1) { length -= lastitemlength; /* Uncount the original char or metachar */ if (min > 0) length += 3 + lastitemlength; } length += lastitemlength + ((max > 0)? 3 : 1); } if (ptr[1] == '?') ptr++; /* Needs no extra length */ POSESSIVE: /* Test for possessive quantifier */ if (ptr[1] == '+') { ptr++; length += 2 + 2*LINK_SIZE; /* Allow for atomic brackets */ } continue; /* An alternation contains an offset to the next branch or ket. If any ims options changed in the previous branch(es), and/or if we are in a lookbehind assertion, extra space will be needed at the start of the branch. This is handled by branch_extra. */ case '|': length += 1 + LINK_SIZE + branch_extra; continue; /* A character class uses 33 characters provided that all the character values are less than 256. Otherwise, it uses a bit map for low valued characters, and individual items for others. Don't worry about character types that aren't allowed in classes - they'll get picked up during the compile. A character class that contains only one single-byte character uses 2 or 3 bytes, depending on whether it is negated or not. Notice this where we can. (In UTF-8 mode we can do this only for chars < 128.) */ case '[': if (*(++ptr) == '^') { class_optcount = 10; /* Greater than one */ ptr++; } else class_optcount = 0; #ifdef SUPPORT_UTF8 class_utf8 = FALSE; #endif /* Written as a "do" so that an initial ']' is taken as data */ if (*ptr != 0) do { /* Inside \Q...\E everything is literal except \E */ if (inescq) { if (*ptr != '\\' || ptr[1] != 'E') goto GET_ONE_CHARACTER; inescq = FALSE; ptr += 1; continue; } /* Outside \Q...\E, check for escapes */ if (*ptr == '\\') { c = check_escape(&ptr, &errorcode, bracount, options, TRUE); if (errorcode != 0) goto PCRE_ERROR_RETURN; /* \b is backspace inside a class; \X is literal */ if (-c == ESC_b) c = '\b'; else if (-c == ESC_X) c = 'X'; /* \Q enters quoting mode */ else if (-c == ESC_Q) { inescq = TRUE; continue; } /* Handle escapes that turn into characters */ if (c >= 0) goto NON_SPECIAL_CHARACTER; /* Escapes that are meta-things. The normal ones just affect the bit map, but Unicode properties require an XCLASS extended item. */ else { class_optcount = 10; /* \d, \s etc; make sure > 1 */ #ifdef SUPPORT_UTF8 if (-c == ESC_p || -c == ESC_P) { if (!class_utf8) { class_utf8 = TRUE; length += LINK_SIZE + 2; } length += 2; } #endif } } /* Check the syntax for POSIX stuff. The bits we actually handle are checked during the real compile phase. */ else if (*ptr == '[' && check_posix_syntax(ptr, &ptr, &compile_block)) { ptr++; class_optcount = 10; /* Make sure > 1 */ } /* Anything else increments the possible optimization count. We have to detect ranges here so that we can compute the number of extra ranges for caseless wide characters when UCP support is available. If there are wide characters, we are going to have to use an XCLASS, even for single characters. */ else { int d; GET_ONE_CHARACTER: #ifdef SUPPORT_UTF8 if (utf8) { int extra = 0; GETCHARLEN(c, ptr, extra); ptr += extra; } else c = *ptr; #else c = *ptr; #endif /* Come here from handling \ above when it escapes to a char value */ NON_SPECIAL_CHARACTER: class_optcount++; d = -1; if (ptr[1] == '-') { uschar const *hyptr = ptr++; if (ptr[1] == '\\') { ptr++; d = check_escape(&ptr, &errorcode, bracount, options, TRUE); if (errorcode != 0) goto PCRE_ERROR_RETURN; if (-d == ESC_b) d = '\b'; /* backspace */ else if (-d == ESC_X) d = 'X'; /* literal X in a class */ } else if (ptr[1] != 0 && ptr[1] != ']') { ptr++; #ifdef SUPPORT_UTF8 if (utf8) { int extra = 0; GETCHARLEN(d, ptr, extra); ptr += extra; } else #endif d = *ptr; } if (d < 0) ptr = hyptr; /* go back to hyphen as data */ } /* If d >= 0 we have a range. In UTF-8 mode, if the end is > 255, or > 127 for caseless matching, we will need to use an XCLASS. */ if (d >= 0) { class_optcount = 10; /* Ensure > 1 */ if (d < c) { errorcode = ERR8; goto PCRE_ERROR_RETURN; } #ifdef SUPPORT_UTF8 if (utf8 && (d > 255 || ((options & PCRE_CASELESS) != 0 && d > 127))) { uschar buffer[6]; if (!class_utf8) /* Allow for XCLASS overhead */ { class_utf8 = TRUE; length += LINK_SIZE + 2; } #ifdef SUPPORT_UCP /* If we have UCP support, find out how many extra ranges are needed to map the other case of characters within this range. We have to mimic the range optimization here, because extending the range upwards might push d over a boundary that makes is use another byte in the UTF-8 representation. */ if ((options & PCRE_CASELESS) != 0) { int occ, ocd; int cc = c; int origd = d; while (get_othercase_range(&cc, origd, &occ, &ocd)) { if (occ >= c && ocd <= d) continue; /* Skip embedded */ if (occ < c && ocd >= c - 1) /* Extend the basic range */ { /* if there is overlap, */ c = occ; /* noting that if occ < c */ continue; /* we can't have ocd > d */ } /* because a subrange is */ if (ocd > d && occ <= d + 1) /* always shorter than */ { /* the basic range. */ d = ocd; continue; } /* An extra item is needed */ length += 1 + _pcre_ord2utf8(occ, buffer) + ((occ == ocd)? 0 : _pcre_ord2utf8(ocd, buffer)); } } #endif /* SUPPORT_UCP */ /* The length of the (possibly extended) range */ length += 1 + _pcre_ord2utf8(c, buffer) + _pcre_ord2utf8(d, buffer); } #endif /* SUPPORT_UTF8 */ } /* We have a single character. There is nothing to be done unless we are in UTF-8 mode. If the char is > 255, or 127 when caseless, we must allow for an XCL_SINGLE item, doubled for caselessness if there is UCP support. */ else { #ifdef SUPPORT_UTF8 if (utf8 && (c > 255 || ((options & PCRE_CASELESS) != 0 && c > 127))) { uschar buffer[6]; class_optcount = 10; /* Ensure > 1 */ if (!class_utf8) /* Allow for XCLASS overhead */ { class_utf8 = TRUE; length += LINK_SIZE + 2; } #ifdef SUPPORT_UCP length += (((options & PCRE_CASELESS) != 0)? 2 : 1) * (1 + _pcre_ord2utf8(c, buffer)); #else /* SUPPORT_UCP */ length += 1 + _pcre_ord2utf8(c, buffer); #endif /* SUPPORT_UCP */ } #endif /* SUPPORT_UTF8 */ } } } while (*(++ptr) != 0 && (inescq || *ptr != ']')); /* Concludes "do" above */ if (*ptr == 0) /* Missing terminating ']' */ { errorcode = ERR6; goto PCRE_ERROR_RETURN; } /* We can optimize when there was only one optimizable character. Repeats for positive and negated single one-byte chars are handled by the general code. Here, we handle repeats for the class opcodes. */ if (class_optcount == 1) length += 3; else { length += 33; /* A repeat needs either 1 or 5 bytes. If it is a possessive quantifier, we also need extra for wrapping the whole thing in a sub-pattern. */ if (*ptr != 0 && ptr[1] == '{' && is_counted_repeat(ptr+2)) { ptr = read_repeat_counts(ptr+2, &min, &max, &errorcode); if (errorcode != 0) goto PCRE_ERROR_RETURN; if ((min == 0 && (max == 1 || max == -1)) || (min == 1 && max == -1)) length++; else length += 5; if (ptr[1] == '+') { ptr++; length += 2 + 2*LINK_SIZE; } else if (ptr[1] == '?') ptr++; } } continue; /* Brackets may be genuine groups or special things */ case '(': branch_newextra = 0; bracket_length = 1 + LINK_SIZE; /* Handle special forms of bracket, which all start (? */ if (ptr[1] == '?') { int set, unset; int *optset; switch (c = ptr[2]) { /* Skip over comments entirely */ case '#': ptr += 3; while (*ptr != 0 && *ptr != ')') ptr++; if (*ptr == 0) { errorcode = ERR18; goto PCRE_ERROR_RETURN; } continue; /* Non-referencing groups and lookaheads just move the pointer on, and then behave like a non-special bracket, except that they don't increment the count of extracting brackets. Ditto for the "once only" bracket, which is in Perl from version 5.005. */ case ':': case '=': case '!': case '>': ptr += 2; break; /* (?R) specifies a recursive call to the regex, which is an extension to provide the facility which can be obtained by (?p{perl-code}) in Perl 5.6. In Perl 5.8 this has become (??{perl-code}). From PCRE 4.00, items such as (?3) specify subroutine-like "calls" to the appropriate numbered brackets. This includes both recursive and non-recursive calls. (?R) is now synonymous with (?0). */ case 'R': ptr++; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': ptr += 2; if (c != 'R') while ((digitab[*(++ptr)] & ctype_digit) != 0); if (*ptr != ')') { errorcode = ERR29; goto PCRE_ERROR_RETURN; } length += 1 + LINK_SIZE; /* If this item is quantified, it will get wrapped inside brackets so as to use the code for quantified brackets. We jump down and use the code that handles this for real brackets. */ if (ptr[1] == '+' || ptr[1] == '*' || ptr[1] == '?' || ptr[1] == '{') { length += 2 + 2 * LINK_SIZE; /* to make bracketed */ duplength = 5 + 3 * LINK_SIZE; goto HANDLE_QUANTIFIED_BRACKETS; } continue; /* (?C) is an extension which provides "callout" - to provide a bit of the functionality of the Perl (?{...}) feature. An optional number may follow (default is zero). */ case 'C': ptr += 2; while ((digitab[*(++ptr)] & ctype_digit) != 0); if (*ptr != ')') { errorcode = ERR39; goto PCRE_ERROR_RETURN; } length += 2 + 2*LINK_SIZE; continue; /* Named subpatterns are an extension copied from Python */ case 'P': ptr += 3; if (*ptr == '<') { const uschar *p; /* Don't amalgamate; some compilers */ p = ++ptr; /* grumble at autoincrement in declaration */ while ((compile_block.ctypes[*ptr] & ctype_word) != 0) ptr++; if (*ptr != '>') { errorcode = ERR42; goto PCRE_ERROR_RETURN; } name_count++; if (ptr - p > max_name_size) max_name_size = (ptr - p); break; } if (*ptr == '=' || *ptr == '>') { while ((compile_block.ctypes[*(++ptr)] & ctype_word) != 0); if (*ptr != ')') { errorcode = ERR42; goto PCRE_ERROR_RETURN; } break; } /* Unknown character after (?P */ errorcode = ERR41; goto PCRE_ERROR_RETURN; /* Lookbehinds are in Perl from version 5.005 */ case '<': ptr += 3; if (*ptr == '=' || *ptr == '!') { branch_newextra = 1 + LINK_SIZE; length += 1 + LINK_SIZE; /* For the first branch */ break; } errorcode = ERR24; goto PCRE_ERROR_RETURN; /* Conditionals are in Perl from version 5.005. The bracket must either be followed by a number (for bracket reference) or by an assertion group, or (a PCRE extension) by 'R' for a recursion test. */ case '(': if (ptr[3] == 'R' && ptr[4] == ')') { ptr += 4; length += 3; } else if ((digitab[ptr[3]] & ctype_digit) != 0) { ptr += 4; length += 3; while ((digitab[*ptr] & ctype_digit) != 0) ptr++; if (*ptr != ')') { errorcode = ERR26; goto PCRE_ERROR_RETURN; } } else /* An assertion must follow */ { ptr++; /* Can treat like ':' as far as spacing is concerned */ if (ptr[2] != '?' || (ptr[3] != '=' && ptr[3] != '!' && ptr[3] != '<') ) { ptr += 2; /* To get right offset in message */ errorcode = ERR28; goto PCRE_ERROR_RETURN; } } break; /* Else loop checking valid options until ) is met. Anything else is an error. If we are without any brackets, i.e. at top level, the settings act as if specified in the options, so massage the options immediately. This is for backward compatibility with Perl 5.004. */ default: set = unset = 0; optset = &set; ptr += 2; for (;; ptr++) { c = *ptr; switch (c) { case 'i': *optset |= PCRE_CASELESS; continue; case 'm': *optset |= PCRE_MULTILINE; continue; case 's': *optset |= PCRE_DOTALL; continue; case 'x': *optset |= PCRE_EXTENDED; continue; case 'X': *optset |= PCRE_EXTRA; continue; case 'U': *optset |= PCRE_UNGREEDY; continue; case '-': optset = &unset; continue; /* A termination by ')' indicates an options-setting-only item; if this is at the very start of the pattern (indicated by item_count being zero), we use it to set the global options. This is helpful when analyzing the pattern for first characters, etc. Otherwise nothing is done here and it is handled during the compiling process. We allow for more than one options setting at the start. If such settings do not change the existing options, nothing is compiled. However, we must leave space just in case something is compiled. This can happen for pathological sequences such as (?i)(?-i) because the global options will end up with -i set. The space is small and not significant. (Before I did this there was a reported bug with (?i)(?-i) in a machine-generated pattern.) [Historical note: Up to Perl 5.8, options settings at top level were always global settings, wherever they appeared in the pattern. That is, they were equivalent to an external setting. From 5.8 onwards, they apply only to what follows (which is what you might expect).] */ case ')': if (item_count == 0) { options = (options | set) & (~unset); set = unset = 0; /* To save length */ item_count--; /* To allow for several */ length += 2; } /* Fall through */ /* A termination by ':' indicates the start of a nested group with the given options set. This is again handled at compile time, but we must allow for compiled space if any of the ims options are set. We also have to allow for resetting space at the end of the group, which is why 4 is added to the length and not just 2. If there are several changes of options within the same group, this will lead to an over-estimate on the length, but this shouldn't matter very much. We also have to allow for resetting options at the start of any alternations, which we do by setting branch_newextra to 2. Finally, we record whether the case-dependent flag ever changes within the regex. This is used by the "required character" code. */ case ':': if (((set|unset) & PCRE_IMS) != 0) { length += 4; branch_newextra = 2; if (((set|unset) & PCRE_CASELESS) != 0) options |= PCRE_ICHANGED; } goto END_OPTIONS; /* Unrecognized option character */ default: errorcode = ERR12; goto PCRE_ERROR_RETURN; } } /* If we hit a closing bracket, that's it - this is a freestanding option-setting. We need to ensure that branch_extra is updated if necessary. The only values branch_newextra can have here are 0 or 2. If the value is 2, then branch_extra must either be 2 or 5, depending on whether this is a lookbehind group or not. */ END_OPTIONS: if (c == ')') { if (branch_newextra == 2 && (branch_extra == 0 || branch_extra == 1+LINK_SIZE)) branch_extra += branch_newextra; continue; } /* If options were terminated by ':' control comes here. Fall through to handle the group below. */ } } /* Extracting brackets must be counted so we can process escapes in a Perlish way. If the number exceeds EXTRACT_BASIC_MAX we are going to need an additional 3 bytes of store per extracting bracket. However, if PCRE_NO_AUTO)CAPTURE is set, unadorned brackets become non-capturing, so we must leave the count alone (it will aways be zero). */ else if ((options & PCRE_NO_AUTO_CAPTURE) == 0) { bracount++; if (bracount > EXTRACT_BASIC_MAX) bracket_length += 3; } /* Save length for computing whole length at end if there's a repeat that requires duplication of the group. Also save the current value of branch_extra, and start the new group with the new value. If non-zero, this will either be 2 for a (?imsx: group, or 3 for a lookbehind assertion. */ if (brastackptr >= sizeof(brastack)/sizeof(int)) { errorcode = ERR19; goto PCRE_ERROR_RETURN; } bralenstack[brastackptr] = (uschar)branch_extra; branch_extra = branch_newextra; brastack[brastackptr++] = length; length += bracket_length; continue; /* Handle ket. Look for subsequent max/min; for certain sets of values we have to replicate this bracket up to that many times. If brastackptr is 0 this is an unmatched bracket which will generate an error, but take care not to try to access brastack[-1] when computing the length and restoring the branch_extra value. */ case ')': length += 1 + LINK_SIZE; if (brastackptr > 0) { duplength = length - brastack[--brastackptr]; branch_extra = bralenstack[brastackptr]; } else duplength = 0; /* The following code is also used when a recursion such as (?3) is followed by a quantifier, because in that case, it has to be wrapped inside brackets so that the quantifier works. The value of duplength must be set before arrival. */ HANDLE_QUANTIFIED_BRACKETS: /* Leave ptr at the final char; for read_repeat_counts this happens automatically; for the others we need an increment. */ if ((c = ptr[1]) == '{' && is_counted_repeat(ptr+2)) { ptr = read_repeat_counts(ptr+2, &min, &max, &errorcode); if (errorcode != 0) goto PCRE_ERROR_RETURN; } else if (c == '*') { min = 0; max = -1; ptr++; } else if (c == '+') { min = 1; max = -1; ptr++; } else if (c == '?') { min = 0; max = 1; ptr++; } else { min = 1; max = 1; } /* If the minimum is zero, we have to allow for an OP_BRAZERO before the group, and if the maximum is greater than zero, we have to replicate maxval-1 times; each replication acquires an OP_BRAZERO plus a nesting bracket set. */ if (min == 0) { length++; if (max > 0) length += (max - 1) * (duplength + 3 + 2*LINK_SIZE); } /* When the minimum is greater than zero, we have to replicate up to minval-1 times, with no additions required in the copies. Then, if there is a limited maximum we have to replicate up to maxval-1 times allowing for a BRAZERO item before each optional copy and nesting brackets for all but one of the optional copies. */ else { length += (min - 1) * duplength; if (max > min) /* Need this test as max=-1 means no limit */ length += (max - min) * (duplength + 3 + 2*LINK_SIZE) - (2 + 2*LINK_SIZE); } /* Allow space for once brackets for "possessive quantifier" */ if (ptr[1] == '+') { ptr++; length += 2 + 2*LINK_SIZE; } continue; /* Non-special character. It won't be space or # in extended mode, so it is always a genuine character. If we are in a \Q...\E sequence, check for the end; if not, we have a literal. */ default: NORMAL_CHAR: if (inescq && c == '\\' && ptr[1] == 'E') { inescq = FALSE; ptr++; continue; } length += 2; /* For a one-byte character */ lastitemlength = 1; /* Default length of last item for repeats */ /* In UTF-8 mode, check for additional bytes. */ #ifdef SUPPORT_UTF8 if (utf8 && (c & 0xc0) == 0xc0) { while ((ptr[1] & 0xc0) == 0x80) /* Can't flow over the end */ { /* because the end is marked */ lastitemlength++; /* by a zero byte. */ length++; ptr++; } } #endif continue; } } length += 2 + LINK_SIZE; /* For final KET and END */ if ((options & PCRE_AUTO_CALLOUT) != 0) length += 2 + 2*LINK_SIZE; /* For final callout */ if (length > MAX_PATTERN_SIZE) { errorcode = ERR20; goto PCRE_EARLY_ERROR_RETURN; } /* Compute the size of data block needed and get it, either from malloc or externally provided function. */ size = length + sizeof(real_pcre) + name_count * (max_name_size + 3); re = (real_pcre *)(pcre_malloc)(size); if (re == NULL) { errorcode = ERR21; goto PCRE_EARLY_ERROR_RETURN; } /* Put in the magic number, and save the sizes, options, and character table pointer. NULL is used for the default character tables. The nullpad field is at the end; it's there to help in the case when a regex compiled on a system with 4-byte pointers is run on another with 8-byte pointers. */ re->magic_number = MAGIC_NUMBER; re->size = size; re->options = options; re->dummy1 = 0; re->name_table_offset = sizeof(real_pcre); re->name_entry_size = max_name_size + 3; re->name_count = (pcre_uint16)name_count; re->ref_count = 0; re->tables = (tables == _pcre_default_tables)? NULL : tables; re->nullpad = NULL; /* The starting points of the name/number translation table and of the code are passed around in the compile data block. */ compile_block.names_found = 0; compile_block.name_entry_size = max_name_size + 3; compile_block.name_table = (uschar *)re + re->name_table_offset; codestart = compile_block.name_table + re->name_entry_size * re->name_count; compile_block.start_code = codestart; compile_block.start_pattern = (const uschar *)pattern; compile_block.req_varyopt = 0; compile_block.nopartial = FALSE; /* Set up a starting, non-extracting bracket, then compile the expression. On error, errorcode will be set non-zero, so we don't need to look at the result of the function here. */ ptr = (const uschar *)pattern; code = (uschar *)codestart; *code = OP_BRA; bracount = 0; (void)compile_regex(options, options & PCRE_IMS, &bracount, &code, &ptr, &errorcode, FALSE, 0, &firstbyte, &reqbyte, NULL, &compile_block); re->top_bracket = (pcre_uint16)bracount; re->top_backref = (pcre_uint16)compile_block.top_backref; if (compile_block.nopartial) re->options |= PCRE_NOPARTIAL; /* If not reached end of pattern on success, there's an excess bracket. */ if (errorcode == 0 && *ptr != 0) errorcode = ERR22; /* Fill in the terminating state and check for disastrous overflow, but if debugging, leave the test till after things are printed out. */ *code++ = OP_END; #ifndef DEBUG if (code - codestart > length) errorcode = ERR23; #endif /* Give an error if there's back reference to a non-existent capturing subpattern. */ if (re->top_backref > re->top_bracket) errorcode = ERR15; /* Failed to compile, or error while post-processing */ if (errorcode != 0) { (pcre_free)(re); PCRE_ERROR_RETURN: *erroroffset = ptr - (const uschar *)pattern; PCRE_EARLY_ERROR_RETURN: *errorptr = error_texts[errorcode]; if (errorcodeptr != NULL) *errorcodeptr = errorcode; return NULL; } /* If the anchored option was not passed, set the flag if we can determine that the pattern is anchored by virtue of ^ characters or \A or anything else (such as starting with .* when DOTALL is set). Otherwise, if we know what the first character has to be, save it, because that speeds up unanchored matches no end. If not, see if we can set the PCRE_STARTLINE flag. This is helpful for multiline matches when all branches start with ^. and also when all branches start with .* for non-DOTALL matches. */ if ((options & PCRE_ANCHORED) == 0) { int temp_options = options; if (is_anchored(codestart, &temp_options, 0, compile_block.backref_map)) re->options |= PCRE_ANCHORED; else { if (firstbyte < 0) firstbyte = find_firstassertedchar(codestart, &temp_options, FALSE); if (firstbyte >= 0) /* Remove caseless flag for non-caseable chars */ { int ch = firstbyte & 255; re->first_byte = ((firstbyte & REQ_CASELESS) != 0 && compile_block.fcc[ch] == ch)? ch : firstbyte; re->options |= PCRE_FIRSTSET; } else if (is_startline(codestart, 0, compile_block.backref_map)) re->options |= PCRE_STARTLINE; } } /* For an anchored pattern, we use the "required byte" only if it follows a variable length item in the regex. Remove the caseless flag for non-caseable bytes. */ if (reqbyte >= 0 && ((re->options & PCRE_ANCHORED) == 0 || (reqbyte & REQ_VARY) != 0)) { int ch = reqbyte & 255; re->req_byte = ((reqbyte & REQ_CASELESS) != 0 && compile_block.fcc[ch] == ch)? (reqbyte & ~REQ_CASELESS) : reqbyte; re->options |= PCRE_REQCHSET; } /* Print out the compiled data for debugging */ #ifdef DEBUG printf("Length = %d top_bracket = %d top_backref = %d\n", length, re->top_bracket, re->top_backref); if (re->options != 0) { printf("%s%s%s%s%s%s%s%s%s%s\n", ((re->options & PCRE_NOPARTIAL) != 0)? "nopartial " : "", ((re->options & PCRE_ANCHORED) != 0)? "anchored " : "", ((re->options & PCRE_CASELESS) != 0)? "caseless " : "", ((re->options & PCRE_ICHANGED) != 0)? "case state changed " : "", ((re->options & PCRE_EXTENDED) != 0)? "extended " : "", ((re->options & PCRE_MULTILINE) != 0)? "multiline " : "", ((re->options & PCRE_DOTALL) != 0)? "dotall " : "", ((re->options & PCRE_DOLLAR_ENDONLY) != 0)? "endonly " : "", ((re->options & PCRE_EXTRA) != 0)? "extra " : "", ((re->options & PCRE_UNGREEDY) != 0)? "ungreedy " : ""); } if ((re->options & PCRE_FIRSTSET) != 0) { int ch = re->first_byte & 255; const char *caseless = ((re->first_byte & REQ_CASELESS) == 0)? "" : " (caseless)"; if (isprint(ch)) printf("First char = %c%s\n", ch, caseless); else printf("First char = \\x%02x%s\n", ch, caseless); } if ((re->options & PCRE_REQCHSET) != 0) { int ch = re->req_byte & 255; const char *caseless = ((re->req_byte & REQ_CASELESS) == 0)? "" : " (caseless)"; if (isprint(ch)) printf("Req char = %c%s\n", ch, caseless); else printf("Req char = \\x%02x%s\n", ch, caseless); } _pcre_printint(re, stdout); /* This check is done here in the debugging case so that the code that was compiled can be seen. */ if (code - codestart > length) { (pcre_free)(re); *errorptr = error_texts[ERR23]; *erroroffset = ptr - (uschar *)pattern; if (errorcodeptr != NULL) *errorcodeptr = ERR23; return NULL; } #endif return (pcre *)re; } /* End of pcre_compile.c */ ================================================ FILE: Project/Pcre/Source/pcre_config.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_config(). */ #include "pcre_internal.h" /************************************************* * Return info about what features are configured * *************************************************/ /* This function has an extensible interface so that additional items can be added compatibly. Arguments: what what information is required where where to put the information Returns: 0 if data returned, negative on error */ EXPORT int pcre_config(int what, void *where) { switch (what) { case PCRE_CONFIG_UTF8: #ifdef SUPPORT_UTF8 *((int *)where) = 1; #else *((int *)where) = 0; #endif break; case PCRE_CONFIG_UNICODE_PROPERTIES: #ifdef SUPPORT_UCP *((int *)where) = 1; #else *((int *)where) = 0; #endif break; case PCRE_CONFIG_NEWLINE: *((int *)where) = NEWLINE; break; case PCRE_CONFIG_LINK_SIZE: *((int *)where) = LINK_SIZE; break; case PCRE_CONFIG_POSIX_MALLOC_THRESHOLD: *((int *)where) = POSIX_MALLOC_THRESHOLD; break; case PCRE_CONFIG_MATCH_LIMIT: *((unsigned int *)where) = MATCH_LIMIT; break; case PCRE_CONFIG_STACKRECURSE: #ifdef NO_RECURSE *((int *)where) = 0; #else *((int *)where) = 1; #endif break; default: return PCRE_ERROR_BADOPTION; } return 0; } /* End of pcre_config.c */ ================================================ FILE: Project/Pcre/Source/pcre_dfa_exec.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_dfa_exec(), which is an alternative matching function that uses a DFA algorithm. This is NOT Perl- compatible, but it has advantages in certain applications. */ #include "pcre_internal.h" /* For use to indent debugging output */ #define SP " " /************************************************* * Code parameters and static tables * *************************************************/ /* These are offsets that are used to turn the OP_TYPESTAR and friends opcodes into others, under special conditions. A gap of 10 between the blocks should be enough. */ #define OP_PROP_EXTRA (EXTRACT_BASIC_MAX+1) #define OP_EXTUNI_EXTRA (EXTRACT_BASIC_MAX+11) /* This table identifies those opcodes that are followed immediately by a character that is to be tested in some way. This makes is possible to centralize the loading of these characters. In the case of Type * etc, the "character" is the opcode for \D, \d, \S, \s, \W, or \w, which will always be a small value. */ static uschar coptable[] = { 0, /* End */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* \A, \G, \B, \b, \D, \d, \S, \s, \W, \w */ 0, 0, /* Any, Anybyte */ 0, 0, 0, /* NOTPROP, PROP, EXTUNI */ 0, 0, 0, 0, 0, /* \Z, \z, Opt, ^, $ */ 1, /* Char */ 1, /* Charnc */ 1, /* not */ /* Positive single-char repeats */ 1, 1, 1, 1, 1, 1, /* *, *?, +, +?, ?, ?? */ 3, 3, 3, /* upto, minupto, exact */ /* Negative single-char repeats - only for chars < 256 */ 1, 1, 1, 1, 1, 1, /* NOT *, *?, +, +?, ?, ?? */ 3, 3, 3, /* NOT upto, minupto, exact */ /* Positive type repeats */ 1, 1, 1, 1, 1, 1, /* Type *, *?, +, +?, ?, ?? */ 3, 3, 3, /* Type upto, minupto, exact */ /* Character class & ref repeats */ 0, 0, 0, 0, 0, 0, /* *, *?, +, +?, ?, ?? */ 0, 0, /* CRRANGE, CRMINRANGE */ 0, /* CLASS */ 0, /* NCLASS */ 0, /* XCLASS - variable length */ 0, /* REF */ 0, /* RECURSE */ 0, /* CALLOUT */ 0, /* Alt */ 0, /* Ket */ 0, /* KetRmax */ 0, /* KetRmin */ 0, /* Assert */ 0, /* Assert not */ 0, /* Assert behind */ 0, /* Assert behind not */ 0, /* Reverse */ 0, /* Once */ 0, /* COND */ 0, /* CREF */ 0, 0, /* BRAZERO, BRAMINZERO */ 0, /* BRANUMBER */ 0 /* BRA */ }; /* These 2 tables allow for compact code for testing for \D, \d, \S, \s, \W, and \w */ static uschar toptable1[] = { 0, 0, 0, 0, 0, ctype_digit, ctype_digit, ctype_space, ctype_space, ctype_word, ctype_word, 0 /* OP_ANY */ }; static uschar toptable2[] = { 0, 0, 0, 0, 0, ctype_digit, 0, ctype_space, 0, ctype_word, 0, 1 /* OP_ANY */ }; /* Structure for holding data about a particular state, which is in effect the current data for an active path through the match tree. It must consist entirely of ints because the working vector we are passed, and which we put these structures in, is a vector of ints. */ typedef struct stateblock { int offset; /* Offset to opcode */ int count; /* Count for repeats */ int ims; /* ims flag bits */ int data; /* Some use extra data */ } stateblock; #define INTS_PER_STATEBLOCK (sizeof(stateblock)/sizeof(int)) #ifdef DEBUG /************************************************* * Print character string * *************************************************/ /* Character string printing function for debugging. Arguments: p points to string length number of bytes f where to print Returns: nothing */ static void pchars(unsigned char *p, int length, FILE *f) { int c; while (length-- > 0) { if (isprint(c = *(p++))) fprintf(f, "%c", c); else fprintf(f, "\\x%02x", c); } } #endif /************************************************* * Execute a Regular Expression - DFA engine * *************************************************/ /* This internal function applies a compiled pattern to a subject string, starting at a given point, using a DFA engine. This function is called from the external one, possibly multiple times if the pattern is not anchored. The function calls itself recursively for some kinds of subpattern. Arguments: md the match_data block with fixed information this_start_code the opening bracket of this subexpression's code current_subject where we currently are in the subject string start_offset start offset in the subject string offsets vector to contain the matching string offsets offsetcount size of same workspace vector of workspace wscount size of same ims the current ims flags rlevel function call recursion level recursing regex recursive call level Returns: > 0 => = 0 => -1 => failed to match < -1 => some kind of unexpected problem The following macros are used for adding states to the two state vectors (one for the current character, one for the following character). */ #define ADD_ACTIVE(x,y) \ if (active_count++ < wscount) \ { \ next_active_state->offset = (x); \ next_active_state->count = (y); \ next_active_state->ims = ims; \ next_active_state++; \ DPRINTF(("%.*sADD_ACTIVE(%d,%d)\n", rlevel*2-2, SP, (x), (y))); \ } \ else return PCRE_ERROR_DFA_WSSIZE #define ADD_ACTIVE_DATA(x,y,z) \ if (active_count++ < wscount) \ { \ next_active_state->offset = (x); \ next_active_state->count = (y); \ next_active_state->ims = ims; \ next_active_state->data = (z); \ next_active_state++; \ DPRINTF(("%.*sADD_ACTIVE_DATA(%d,%d,%d)\n", rlevel*2-2, SP, (x), (y), (z))); \ } \ else return PCRE_ERROR_DFA_WSSIZE #define ADD_NEW(x,y) \ if (new_count++ < wscount) \ { \ next_new_state->offset = (x); \ next_new_state->count = (y); \ next_new_state->ims = ims; \ next_new_state++; \ DPRINTF(("%.*sADD_NEW(%d,%d)\n", rlevel*2-2, SP, (x), (y))); \ } \ else return PCRE_ERROR_DFA_WSSIZE #define ADD_NEW_DATA(x,y,z) \ if (new_count++ < wscount) \ { \ next_new_state->offset = (x); \ next_new_state->count = (y); \ next_new_state->ims = ims; \ next_new_state->data = (z); \ next_new_state++; \ DPRINTF(("%.*sADD_NEW_DATA(%d,%d,%d)\n", rlevel*2-2, SP, (x), (y), (z))); \ } \ else return PCRE_ERROR_DFA_WSSIZE /* And now, here is the code */ static int internal_dfa_exec( dfa_match_data *md, const uschar *this_start_code, const uschar *current_subject, int start_offset, int *offsets, int offsetcount, int *workspace, int wscount, int ims, int rlevel, int recursing) { stateblock *active_states, *new_states, *temp_states; stateblock *next_active_state, *next_new_state; const uschar *ctypes, *lcc, *fcc; const uschar *ptr; const uschar *end_code; int active_count, new_count, match_count; /* Some fields in the md block are frequently referenced, so we load them into independent variables in the hope that this will perform better. */ const uschar *start_subject = md->start_subject; const uschar *end_subject = md->end_subject; const uschar *start_code = md->start_code; BOOL utf8 = (md->poptions & PCRE_UTF8) != 0; rlevel++; offsetcount &= (-2); wscount -= 2; wscount = (wscount - (wscount % (INTS_PER_STATEBLOCK * 2))) / (2 * INTS_PER_STATEBLOCK); DPRINTF(("\n%.*s---------------------\n" "%.*sCall to internal_dfa_exec f=%d r=%d\n", rlevel*2-2, SP, rlevel*2-2, SP, rlevel, recursing)); ctypes = md->tables + ctypes_offset; lcc = md->tables + lcc_offset; fcc = md->tables + fcc_offset; match_count = PCRE_ERROR_NOMATCH; /* A negative number */ active_states = (stateblock *)(workspace + 2); next_new_state = new_states = active_states + wscount; new_count = 0; /* The first thing in any (sub) pattern is a bracket of some sort. Push all the alternative states onto the list, and find out where the end is. This makes is possible to use this function recursively, when we want to stop at a matching internal ket rather than at the end. If the first opcode in the first alternative is OP_REVERSE, we are dealing with a backward assertion. In that case, we have to find out the maximum amount to move back, and set up each alternative appropriately. */ if (this_start_code[1+LINK_SIZE] == OP_REVERSE) { int max_back = 0; int gone_back; end_code = this_start_code; do { int back = GET(end_code, 2+LINK_SIZE); if (back > max_back) max_back = back; end_code += GET(end_code, 1); } while (*end_code == OP_ALT); /* If we can't go back the amount required for the longest lookbehind pattern, go back as far as we can; some alternatives may still be viable. */ #ifdef SUPPORT_UTF8 /* In character mode we have to step back character by character */ if (utf8) { for (gone_back = 0; gone_back < max_back; gone_back++) { if (current_subject <= start_subject) break; current_subject--; while (current_subject > start_subject && (*current_subject & 0xc0) == 0x80) current_subject--; } } else #endif /* In byte-mode we can do this quickly. */ { gone_back = (current_subject - max_back < start_subject)? current_subject - start_subject : max_back; current_subject -= gone_back; } /* Now we can process the individual branches. */ end_code = this_start_code; do { int back = GET(end_code, 2+LINK_SIZE); if (back <= gone_back) { int bstate = end_code - start_code + 2 + 2*LINK_SIZE; ADD_NEW_DATA(-bstate, 0, gone_back - back); } end_code += GET(end_code, 1); } while (*end_code == OP_ALT); } /* This is the code for a "normal" subpattern (not a backward assertion). The start of a whole pattern is always one of these. If we are at the top level, we may be asked to restart matching from the same point that we reached for a previous partial match. We still have to scan through the top-level branches to find the end state. */ else { end_code = this_start_code; /* Restarting */ if (rlevel == 1 && (md->moptions & PCRE_DFA_RESTART) != 0) { do { end_code += GET(end_code, 1); } while (*end_code == OP_ALT); new_count = workspace[1]; if (!workspace[0]) memcpy(new_states, active_states, new_count * sizeof(stateblock)); } /* Not restarting */ else { do { ADD_NEW(end_code - start_code + 1 + LINK_SIZE, 0); end_code += GET(end_code, 1); } while (*end_code == OP_ALT); } } workspace[0] = 0; /* Bit indicating which vector is current */ DPRINTF(("%.*sEnd state = %d\n", rlevel*2-2, SP, end_code - start_code)); /* Loop for scanning the subject */ ptr = current_subject; for (;;) { int i, j; int c, d, clen, dlen; /* Make the new state list into the active state list and empty the new state list. */ temp_states = active_states; active_states = new_states; new_states = temp_states; active_count = new_count; new_count = 0; workspace[0] ^= 1; /* Remember for the restarting feature */ workspace[1] = active_count; #ifdef DEBUG printf("%.*sNext character: rest of subject = \"", rlevel*2-2, SP); pchars((uschar *)ptr, strlen((char *)ptr), stdout); printf("\"\n"); printf("%.*sActive states: ", rlevel*2-2, SP); for (i = 0; i < active_count; i++) printf("%d/%d ", active_states[i].offset, active_states[i].count); printf("\n"); #endif /* Set the pointers for adding new states */ next_active_state = active_states + active_count; next_new_state = new_states; /* Load the current character from the subject outside the loop, as many different states may want to look at it, and we assume that at least one will. */ if (ptr < end_subject) { clen = 1; #ifdef SUPPORT_UTF8 if (utf8) { GETCHARLEN(c, ptr, clen); } else #endif /* SUPPORT_UTF8 */ c = *ptr; } else { clen = 0; /* At end subject */ c = -1; } /* Scan up the active states and act on each one. The result of an action may be to add more states to the currently active list (e.g. on hitting a parenthesis) or it may be to put states on the new list, for considering when we move the character pointer on. */ for (i = 0; i < active_count; i++) { stateblock *current_state = active_states + i; const uschar *code; int state_offset = current_state->offset; int count, codevalue; int chartype, othercase; #ifdef DEBUG printf ("%.*sProcessing state %d c=", rlevel*2-2, SP, state_offset); if (c < 0) printf("-1\n"); else if (c > 32 && c < 127) printf("'%c'\n", c); else printf("0x%02x\n", c); #endif /* This variable is referred to implicity in the ADD_xxx macros. */ ims = current_state->ims; /* A negative offset is a special case meaning "hold off going to this (negated) state until the number of characters in the data field have been skipped". */ if (state_offset < 0) { if (current_state->data > 0) { DPRINTF(("%.*sSkipping this character\n", rlevel*2-2, SP)); ADD_NEW_DATA(state_offset, current_state->count, current_state->data - 1); continue; } else { current_state->offset = state_offset = -state_offset; } } /* Check for a duplicate state with the same count, and skip if found. */ for (j = 0; j < i; j++) { if (active_states[j].offset == state_offset && active_states[j].count == current_state->count) { DPRINTF(("%.*sDuplicate state: skipped\n", rlevel*2-2, SP)); goto NEXT_ACTIVE_STATE; } } /* The state offset is the offset to the opcode */ code = start_code + state_offset; codevalue = *code; if (codevalue >= OP_BRA) codevalue = OP_BRA; /* All brackets are equal */ /* If this opcode is followed by an inline character, load it. It is tempting to test for the presence of a subject character here, but that is wrong, because sometimes zero repetitions of the subject are permitted. We also use this mechanism for opcodes such as OP_TYPEPLUS that take an argument that is not a data character - but is always one byte long. Unfortunately, we have to take special action to deal with \P, \p, and \X in this case. To keep the other cases fast, convert these ones to new opcodes. */ if (coptable[codevalue] > 0) { dlen = 1; #ifdef SUPPORT_UTF8 if (utf8) { GETCHARLEN(d, (code + coptable[codevalue]), dlen); } else #endif /* SUPPORT_UTF8 */ d = code[coptable[codevalue]]; if (codevalue >= OP_TYPESTAR) { if (d == OP_ANYBYTE) return PCRE_ERROR_DFA_UITEM; if (d >= OP_NOTPROP) codevalue += (d == OP_EXTUNI)? OP_EXTUNI_EXTRA : OP_PROP_EXTRA; } } else { dlen = 0; /* Not strictly necessary, but compilers moan */ d = -1; /* if these variables are not set. */ } /* Now process the individual opcodes */ switch (codevalue) { /* ========================================================================== */ /* Reached a closing bracket. If not at the end of the pattern, carry on with the next opcode. Otherwise, unless we have an empty string and PCRE_NOTEMPTY is set, save the match data, shifting up all previous matches so we always have the longest first. */ case OP_KET: case OP_KETRMIN: case OP_KETRMAX: if (code != end_code) { ADD_ACTIVE(state_offset + 1 + LINK_SIZE, 0); if (codevalue != OP_KET) { ADD_ACTIVE(state_offset - GET(code, 1), 0); } } else if (ptr > current_subject || (md->moptions & PCRE_NOTEMPTY) == 0) { if (match_count < 0) match_count = (offsetcount >= 2)? 1 : 0; else if (match_count > 0 && ++match_count * 2 >= offsetcount) match_count = 0; count = ((match_count == 0)? offsetcount : match_count * 2) - 2; if (count > 0) memmove(offsets + 2, offsets, count * sizeof(int)); if (offsetcount >= 2) { offsets[0] = current_subject - start_subject; offsets[1] = ptr - start_subject; DPRINTF(("%.*sSet matched string = \"%.*s\"\n", rlevel*2-2, SP, offsets[1] - offsets[0], current_subject)); } if ((md->moptions & PCRE_DFA_SHORTEST) != 0) { DPRINTF(("%.*sEnd of internal_dfa_exec %d: returning %d\n" "%.*s---------------------\n\n", rlevel*2-2, SP, rlevel, match_count, rlevel*2-2, SP)); return match_count; } } break; /* ========================================================================== */ /* These opcodes add to the current list of states without looking at the current character. */ /*-----------------------------------------------------------------*/ case OP_ALT: do { code += GET(code, 1); } while (*code == OP_ALT); ADD_ACTIVE(code - start_code, 0); break; /*-----------------------------------------------------------------*/ case OP_BRA: do { ADD_ACTIVE(code - start_code + 1 + LINK_SIZE, 0); code += GET(code, 1); } while (*code == OP_ALT); break; /*-----------------------------------------------------------------*/ case OP_BRAZERO: case OP_BRAMINZERO: ADD_ACTIVE(state_offset + 1, 0); code += 1 + GET(code, 2); while (*code == OP_ALT) code += GET(code, 1); ADD_ACTIVE(code - start_code + 1 + LINK_SIZE, 0); break; /*-----------------------------------------------------------------*/ case OP_BRANUMBER: ADD_ACTIVE(state_offset + 1 + LINK_SIZE, 0); break; /*-----------------------------------------------------------------*/ case OP_CIRC: if ((ptr == start_subject && (md->moptions & PCRE_NOTBOL) == 0) || ((ims & PCRE_MULTILINE) != 0 && ptr[-1] == NEWLINE)) { ADD_ACTIVE(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_EOD: if (ptr >= end_subject) { ADD_ACTIVE(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_OPT: ims = code[1]; ADD_ACTIVE(state_offset + 2, 0); break; /*-----------------------------------------------------------------*/ case OP_SOD: if (ptr == start_subject) { ADD_ACTIVE(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_SOM: if (ptr == start_subject + start_offset) { ADD_ACTIVE(state_offset + 1, 0); } break; /* ========================================================================== */ /* These opcodes inspect the next subject character, and sometimes the previous one as well, but do not have an argument. The variable clen contains the length of the current character and is zero if we are at the end of the subject. */ /*-----------------------------------------------------------------*/ case OP_ANY: if (clen > 0 && (c != NEWLINE || (ims & PCRE_DOTALL) != 0)) { ADD_NEW(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_EODN: if (clen == 0 || (c == NEWLINE && ptr + 1 == end_subject)) { ADD_ACTIVE(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_DOLL: if ((md->moptions & PCRE_NOTEOL) == 0) { if (clen == 0 || (c == NEWLINE && (ptr + 1 == end_subject || (ims & PCRE_MULTILINE) != 0))) { ADD_ACTIVE(state_offset + 1, 0); } } else if (c == NEWLINE && (ims & PCRE_MULTILINE) != 0) { ADD_ACTIVE(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_DIGIT: case OP_WHITESPACE: case OP_WORDCHAR: if (clen > 0 && c < 256 && ((ctypes[c] & toptable1[codevalue]) ^ toptable2[codevalue]) != 0) { ADD_NEW(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_NOT_DIGIT: case OP_NOT_WHITESPACE: case OP_NOT_WORDCHAR: if (clen > 0 && (c >= 256 || ((ctypes[c] & toptable1[codevalue]) ^ toptable2[codevalue]) != 0)) { ADD_NEW(state_offset + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_WORD_BOUNDARY: case OP_NOT_WORD_BOUNDARY: { int left_word, right_word; if (ptr > start_subject) { const uschar *temp = ptr - 1; #ifdef SUPPORT_UTF8 if (utf8) BACKCHAR(temp); #endif GETCHARTEST(d, temp); left_word = d < 256 && (ctypes[d] & ctype_word) != 0; } else left_word = 0; if (clen > 0) right_word = c < 256 && (ctypes[c] & ctype_word) != 0; else right_word = 0; if ((left_word == right_word) == (codevalue == OP_NOT_WORD_BOUNDARY)) { ADD_ACTIVE(state_offset + 1, 0); } } break; #ifdef SUPPORT_UCP /*-----------------------------------------------------------------*/ /* Check the next character by Unicode property. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ case OP_PROP: case OP_NOTPROP: if (clen > 0) { int rqdtype, category; category = ucp_findchar(c, &chartype, &othercase); rqdtype = code[1]; if (rqdtype >= 128) { if ((rqdtype - 128 == category) == (codevalue == OP_PROP)) { ADD_NEW(state_offset + 2, 0); } } else { if ((rqdtype == chartype) == (codevalue == OP_PROP)) { ADD_NEW(state_offset + 2, 0); } } } break; #endif /* ========================================================================== */ /* These opcodes likewise inspect the subject character, but have an argument that is not a data character. It is one of these opcodes: OP_ANY, OP_DIGIT, OP_NOT_DIGIT, OP_WHITESPACE, OP_NOT_SPACE, OP_WORDCHAR, OP_NOT_WORDCHAR. The value is loaded into d. */ case OP_TYPEPLUS: case OP_TYPEMINPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + 2, 0); } if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { count++; ADD_NEW(state_offset, count); } } break; /*-----------------------------------------------------------------*/ case OP_TYPEQUERY: case OP_TYPEMINQUERY: ADD_ACTIVE(state_offset + 2, 0); if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { ADD_NEW(state_offset + 2, 0); } } break; /*-----------------------------------------------------------------*/ case OP_TYPESTAR: case OP_TYPEMINSTAR: ADD_ACTIVE(state_offset + 2, 0); if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { ADD_NEW(state_offset, 0); } } break; /*-----------------------------------------------------------------*/ case OP_TYPEEXACT: case OP_TYPEUPTO: case OP_TYPEMINUPTO: if (codevalue != OP_TYPEEXACT) { ADD_ACTIVE(state_offset + 4, 0); } count = current_state->count; /* Number already matched */ if (clen > 0) { if ((c >= 256 && d != OP_DIGIT && d != OP_WHITESPACE && d != OP_WORDCHAR) || (c < 256 && (d != OP_ANY || c != '\n' || (ims & PCRE_DOTALL) != 0) && ((ctypes[c] & toptable1[d]) ^ toptable2[d]) != 0)) { if (++count >= GET2(code, 1)) { ADD_NEW(state_offset + 4, 0); } else { ADD_NEW(state_offset, count); } } } break; /* ========================================================================== */ /* These are virtual opcodes that are used when something like OP_TYPEPLUS has OP_PROP, OP_NOTPROP, or OP_EXTUNI as its argument. It keeps the code above fast for the other cases. The argument is in the d variable. */ case OP_PROP_EXTRA + OP_TYPEPLUS: case OP_PROP_EXTRA + OP_TYPEMINPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + 3, 0); } if (clen > 0) { int category = ucp_findchar(c, &chartype, &othercase); int rqdtype = code[2]; if ((d == OP_PROP) == (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype))) { count++; ADD_NEW(state_offset, count); } } break; /*-----------------------------------------------------------------*/ case OP_EXTUNI_EXTRA + OP_TYPEPLUS: case OP_EXTUNI_EXTRA + OP_TYPEMINPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + 2, 0); } if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M) { const uschar *nptr = ptr + clen; int ncount = 0; while (nptr < end_subject) { int nd; int ndlen = 1; GETCHARLEN(nd, nptr, ndlen); if (ucp_findchar(nd, &chartype, &othercase) != ucp_M) break; ncount++; nptr += ndlen; } count++; ADD_NEW_DATA(-state_offset, count, ncount); } break; /*-----------------------------------------------------------------*/ case OP_PROP_EXTRA + OP_TYPEQUERY: case OP_PROP_EXTRA + OP_TYPEMINQUERY: count = 3; goto QS1; case OP_PROP_EXTRA + OP_TYPESTAR: case OP_PROP_EXTRA + OP_TYPEMINSTAR: count = 0; QS1: ADD_ACTIVE(state_offset + 3, 0); if (clen > 0) { int category = ucp_findchar(c, &chartype, &othercase); int rqdtype = code[2]; if ((d == OP_PROP) == (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype))) { ADD_NEW(state_offset + count, 0); } } break; /*-----------------------------------------------------------------*/ case OP_EXTUNI_EXTRA + OP_TYPEQUERY: case OP_EXTUNI_EXTRA + OP_TYPEMINQUERY: count = 2; goto QS2; case OP_EXTUNI_EXTRA + OP_TYPESTAR: case OP_EXTUNI_EXTRA + OP_TYPEMINSTAR: count = 0; QS2: ADD_ACTIVE(state_offset + 2, 0); if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M) { const uschar *nptr = ptr + clen; int ncount = 0; while (nptr < end_subject) { int nd; int ndlen = 1; GETCHARLEN(nd, nptr, ndlen); if (ucp_findchar(nd, &chartype, &othercase) != ucp_M) break; ncount++; nptr += ndlen; } ADD_NEW_DATA(-(state_offset + count), 0, ncount); } break; /*-----------------------------------------------------------------*/ case OP_PROP_EXTRA + OP_TYPEEXACT: case OP_PROP_EXTRA + OP_TYPEUPTO: case OP_PROP_EXTRA + OP_TYPEMINUPTO: if (codevalue != OP_PROP_EXTRA + OP_TYPEEXACT) { ADD_ACTIVE(state_offset + 5, 0); } count = current_state->count; /* Number already matched */ if (clen > 0) { int category = ucp_findchar(c, &chartype, &othercase); int rqdtype = code[4]; if ((d == OP_PROP) == (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype))) { if (++count >= GET2(code, 1)) { ADD_NEW(state_offset + 5, 0); } else { ADD_NEW(state_offset, count); } } } break; /*-----------------------------------------------------------------*/ case OP_EXTUNI_EXTRA + OP_TYPEEXACT: case OP_EXTUNI_EXTRA + OP_TYPEUPTO: case OP_EXTUNI_EXTRA + OP_TYPEMINUPTO: if (codevalue != OP_EXTUNI_EXTRA + OP_TYPEEXACT) { ADD_ACTIVE(state_offset + 4, 0); } count = current_state->count; /* Number already matched */ if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M) { const uschar *nptr = ptr + clen; int ncount = 0; while (nptr < end_subject) { int nd; int ndlen = 1; GETCHARLEN(nd, nptr, ndlen); if (ucp_findchar(nd, &chartype, &othercase) != ucp_M) break; ncount++; nptr += ndlen; } if (++count >= GET2(code, 1)) { ADD_NEW_DATA(-(state_offset + 4), 0, ncount); } else { ADD_NEW_DATA(-state_offset, count, ncount); } } break; /* ========================================================================== */ /* These opcodes are followed by a character that is usually compared to the current subject character; it is loaded into d. We still get here even if there is no subject character, because in some cases zero repetitions are permitted. */ /*-----------------------------------------------------------------*/ case OP_CHAR: if (clen > 0 && c == d) { ADD_NEW(state_offset + dlen + 1, 0); } break; /*-----------------------------------------------------------------*/ case OP_CHARNC: if (clen == 0) break; #ifdef SUPPORT_UTF8 if (utf8) { if (c == d) { ADD_NEW(state_offset + dlen + 1, 0); } else { if (c < 128) othercase = fcc[c]; else /* If we have Unicode property support, we can use it to test the other case of the character, if there is one. The result of ucp_findchar() is < 0 if the char isn't found, and othercase is returned as zero if there isn't another case. */ #ifdef SUPPORT_UCP if (ucp_findchar(c, &chartype, &othercase) < 0) #endif othercase = -1; if (d == othercase) { ADD_NEW(state_offset + dlen + 1, 0); } } } else #endif /* SUPPORT_UTF8 */ /* Non-UTF-8 mode */ { if (lcc[c] == lcc[d]) { ADD_NEW(state_offset + 2, 0); } } break; #ifdef SUPPORT_UCP /*-----------------------------------------------------------------*/ /* This is a tricky one because it can match more than one character. Find out how many characters to skip, and then set up a negative state to wait for them to pass before continuing. */ case OP_EXTUNI: if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M) { const uschar *nptr = ptr + clen; int ncount = 0; while (nptr < end_subject) { int nclen = 1; GETCHARLEN(c, nptr, nclen); if (ucp_findchar(c, &chartype, &othercase) != ucp_M) break; ncount++; nptr += nclen; } ADD_NEW_DATA(-(state_offset + 1), 0, ncount); } break; #endif /*-----------------------------------------------------------------*/ /* Match a negated single character. This is only used for one-byte characters, that is, we know that d < 256. The character we are checking (c) can be multibyte. */ case OP_NOT: if (clen > 0) { int otherd = ((ims & PCRE_CASELESS) != 0)? fcc[d] : d; if (c != d && c != otherd) { ADD_NEW(state_offset + dlen + 1, 0); } } break; /*-----------------------------------------------------------------*/ case OP_PLUS: case OP_MINPLUS: case OP_NOTPLUS: case OP_NOTMINPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(state_offset + dlen + 1, 0); } if (clen > 0) { int otherd = -1; if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { #ifdef SUPPORT_UCP if (ucp_findchar(d, &chartype, &otherd) < 0) otherd = -1; #endif /* SUPPORT_UCP */ } else #endif /* SUPPORT_UTF8 */ otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) { count++; ADD_NEW(state_offset, count); } } break; /*-----------------------------------------------------------------*/ case OP_QUERY: case OP_MINQUERY: case OP_NOTQUERY: case OP_NOTMINQUERY: ADD_ACTIVE(state_offset + dlen + 1, 0); if (clen > 0) { int otherd = -1; if ((ims && PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { #ifdef SUPPORT_UCP if (ucp_findchar(c, &chartype, &otherd) < 0) otherd = -1; #endif /* SUPPORT_UCP */ } else #endif /* SUPPORT_UTF8 */ otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) { ADD_NEW(state_offset + dlen + 1, 0); } } break; /*-----------------------------------------------------------------*/ case OP_STAR: case OP_MINSTAR: case OP_NOTSTAR: case OP_NOTMINSTAR: ADD_ACTIVE(state_offset + dlen + 1, 0); if (clen > 0) { int otherd = -1; if ((ims && PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { #ifdef SUPPORT_UCP if (ucp_findchar(c, &chartype, &otherd) < 0) otherd = -1; #endif /* SUPPORT_UCP */ } else #endif /* SUPPORT_UTF8 */ otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) { ADD_NEW(state_offset, 0); } } break; /*-----------------------------------------------------------------*/ case OP_EXACT: case OP_UPTO: case OP_MINUPTO: case OP_NOTEXACT: case OP_NOTUPTO: case OP_NOTMINUPTO: if (codevalue != OP_EXACT && codevalue != OP_NOTEXACT) { ADD_ACTIVE(state_offset + dlen + 3, 0); } count = current_state->count; /* Number already matched */ if (clen > 0) { int otherd = -1; if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (utf8 && c >= 128) { #ifdef SUPPORT_UCP if (ucp_findchar(d, &chartype, &otherd) < 0) otherd = -1; #endif /* SUPPORT_UCP */ } else #endif /* SUPPORT_UTF8 */ otherd = fcc[d]; } if ((c == d || c == otherd) == (codevalue < OP_NOTSTAR)) { if (++count >= GET2(code, 1)) { ADD_NEW(state_offset + dlen + 3, 0); } else { ADD_NEW(state_offset, count); } } } break; /* ========================================================================== */ /* These are the class-handling opcodes */ case OP_CLASS: case OP_NCLASS: case OP_XCLASS: { BOOL isinclass = FALSE; int next_state_offset; const uschar *ecode; /* For a simple class, there is always just a 32-byte table, and we can set isinclass from it. */ if (codevalue != OP_XCLASS) { ecode = code + 33; if (clen > 0) { isinclass = (c > 255)? (codevalue == OP_NCLASS) : ((code[1 + c/8] & (1 << (c&7))) != 0); } } /* An extended class may have a table or a list of single characters, ranges, or both, and it may be positive or negative. There's a function that sorts all this out. */ else { ecode = code + GET(code, 1); if (clen > 0) isinclass = _pcre_xclass(c, code + 1 + LINK_SIZE); } /* At this point, isinclass is set for all kinds of class, and ecode points to the byte after the end of the class. If there is a quantifier, this is where it will be. */ next_state_offset = ecode - start_code; switch (*ecode) { case OP_CRSTAR: case OP_CRMINSTAR: ADD_ACTIVE(next_state_offset + 1, 0); if (isinclass) { ADD_NEW(state_offset, 0); } break; case OP_CRPLUS: case OP_CRMINPLUS: count = current_state->count; /* Already matched */ if (count > 0) { ADD_ACTIVE(next_state_offset + 1, 0); } if (isinclass) { count++; ADD_NEW(state_offset, count); } break; case OP_CRQUERY: case OP_CRMINQUERY: ADD_ACTIVE(next_state_offset + 1, 0); if (isinclass) { ADD_NEW(next_state_offset + 1, 0); } break; case OP_CRRANGE: case OP_CRMINRANGE: count = current_state->count; /* Already matched */ if (count >= GET2(ecode, 1)) { ADD_ACTIVE(next_state_offset + 5, 0); } if (isinclass) { if (++count >= GET2(ecode, 3)) { ADD_NEW(next_state_offset + 5, 0); } else { ADD_NEW(state_offset, count); } } break; default: if (isinclass) { ADD_NEW(next_state_offset, 0); } break; } } break; /* ========================================================================== */ /* These are the opcodes for fancy brackets of various kinds. We have to use recursion in order to handle them. */ case OP_ASSERT: case OP_ASSERT_NOT: case OP_ASSERTBACK: case OP_ASSERTBACK_NOT: { int rc; int local_offsets[2]; int local_workspace[1000]; const uschar *endasscode = code + GET(code, 1); while (*endasscode == OP_ALT) endasscode += GET(endasscode, 1); rc = internal_dfa_exec( md, /* static match data */ code, /* this subexpression's code */ ptr, /* where we currently are */ ptr - start_subject, /* start offset */ local_offsets, /* offset vector */ sizeof(local_offsets)/sizeof(int), /* size of same */ local_workspace, /* workspace vector */ sizeof(local_workspace)/sizeof(int), /* size of same */ ims, /* the current ims flags */ rlevel, /* function recursion level */ recursing); /* pass on regex recursion */ if ((rc >= 0) == (codevalue == OP_ASSERT || codevalue == OP_ASSERTBACK)) { ADD_ACTIVE(endasscode + LINK_SIZE + 1 - start_code, 0); } } break; /*-----------------------------------------------------------------*/ case OP_COND: { int local_offsets[1000]; int local_workspace[1000]; int condcode = code[LINK_SIZE+1]; /* The only supported version of OP_CREF is for the value 0xffff, which means "test if in a recursion". */ if (condcode == OP_CREF) { int value = GET2(code, LINK_SIZE+2); if (value != 0xffff) return PCRE_ERROR_DFA_UCOND; if (recursing > 0) { ADD_ACTIVE(state_offset + LINK_SIZE + 4, 0); } else { ADD_ACTIVE(state_offset + GET(code, 1) + LINK_SIZE + 1, 0); } } /* Otherwise, the condition is an assertion */ else { int rc; const uschar *asscode = code + LINK_SIZE + 1; const uschar *endasscode = asscode + GET(asscode, 1); while (*endasscode == OP_ALT) endasscode += GET(endasscode, 1); rc = internal_dfa_exec( md, /* fixed match data */ asscode, /* this subexpression's code */ ptr, /* where we currently are */ ptr - start_subject, /* start offset */ local_offsets, /* offset vector */ sizeof(local_offsets)/sizeof(int), /* size of same */ local_workspace, /* workspace vector */ sizeof(local_workspace)/sizeof(int), /* size of same */ ims, /* the current ims flags */ rlevel, /* function recursion level */ recursing); /* pass on regex recursion */ if ((rc >= 0) == (condcode == OP_ASSERT || condcode == OP_ASSERTBACK)) { ADD_ACTIVE(endasscode + LINK_SIZE + 1 - start_code, 0); } else { ADD_ACTIVE(state_offset + GET(code, 1) + LINK_SIZE + 1, 0); } } } break; /*-----------------------------------------------------------------*/ case OP_RECURSE: { int local_offsets[1000]; int local_workspace[1000]; int rc; DPRINTF(("%.*sStarting regex recursion %d\n", rlevel*2-2, SP, recursing + 1)); rc = internal_dfa_exec( md, /* fixed match data */ start_code + GET(code, 1), /* this subexpression's code */ ptr, /* where we currently are */ ptr - start_subject, /* start offset */ local_offsets, /* offset vector */ sizeof(local_offsets)/sizeof(int), /* size of same */ local_workspace, /* workspace vector */ sizeof(local_workspace)/sizeof(int), /* size of same */ ims, /* the current ims flags */ rlevel, /* function recursion level */ recursing + 1); /* regex recurse level */ DPRINTF(("%.*sReturn from regex recursion %d: rc=%d\n", rlevel*2-2, SP, recursing + 1, rc)); /* Ran out of internal offsets */ if (rc == 0) return PCRE_ERROR_DFA_RECURSE; /* For each successful matched substring, set up the next state with a count of characters to skip before trying it. Note that the count is in characters, not bytes. */ if (rc > 0) { for (rc = rc*2 - 2; rc >= 0; rc -= 2) { const uschar *p = start_subject + local_offsets[rc]; const uschar *pp = start_subject + local_offsets[rc+1]; int charcount = local_offsets[rc+1] - local_offsets[rc]; while (p < pp) if ((*p++ & 0xc0) == 0x80) charcount--; if (charcount > 0) { ADD_NEW_DATA(-(state_offset + LINK_SIZE + 1), 0, (charcount - 1)); } else { ADD_ACTIVE(state_offset + LINK_SIZE + 1, 0); } } } else if (rc != PCRE_ERROR_NOMATCH) return rc; } break; /*-----------------------------------------------------------------*/ case OP_ONCE: { const uschar *endcode; int local_offsets[2]; int local_workspace[1000]; int rc = internal_dfa_exec( md, /* fixed match data */ code, /* this subexpression's code */ ptr, /* where we currently are */ ptr - start_subject, /* start offset */ local_offsets, /* offset vector */ sizeof(local_offsets)/sizeof(int), /* size of same */ local_workspace, /* workspace vector */ sizeof(local_workspace)/sizeof(int), /* size of same */ ims, /* the current ims flags */ rlevel, /* function recursion level */ recursing); /* pass on regex recursion */ if (rc >= 0) { const uschar *end_subpattern = code; int charcount = local_offsets[1] - local_offsets[0]; int next_state_offset, repeat_state_offset; BOOL is_repeated; do { end_subpattern += GET(end_subpattern, 1); } while (*end_subpattern == OP_ALT); next_state_offset = end_subpattern - start_code + LINK_SIZE + 1; /* If the end of this subpattern is KETRMAX or KETRMIN, we must arrange for the repeat state also to be added to the relevant list. Calculate the offset, or set -1 for no repeat. */ repeat_state_offset = (*end_subpattern == OP_KETRMAX || *end_subpattern == OP_KETRMIN)? end_subpattern - start_code - GET(end_subpattern, 1) : -1; /* If we have matched an empty string, add the next state at the current character pointer. This is important so that the duplicate checking kicks in, which is what breaks infinite loops that match an empty string. */ if (charcount == 0) { ADD_ACTIVE(next_state_offset, 0); } /* Optimization: if there are no more active states, and there are no new states yet set up, then skip over the subject string right here, to save looping. Otherwise, set up the new state to swing into action when the end of the substring is reached. */ else if (i + 1 >= active_count && new_count == 0) { ptr += charcount; clen = 0; ADD_NEW(next_state_offset, 0); /* If we are adding a repeat state at the new character position, we must fudge things so that it is the only current state. Otherwise, it might be a duplicate of one we processed before, and that would cause it to be skipped. */ if (repeat_state_offset >= 0) { next_active_state = active_states; active_count = 0; i = -1; ADD_ACTIVE(repeat_state_offset, 0); } } else { const uschar *p = start_subject + local_offsets[0]; const uschar *pp = start_subject + local_offsets[1]; while (p < pp) if ((*p++ & 0xc0) == 0x80) charcount--; ADD_NEW_DATA(-next_state_offset, 0, (charcount - 1)); if (repeat_state_offset >= 0) { ADD_NEW_DATA(-repeat_state_offset, 0, (charcount - 1)); } } } else if (rc != PCRE_ERROR_NOMATCH) return rc; } break; /* ========================================================================== */ /* Handle callouts */ case OP_CALLOUT: if (pcre_callout != NULL) { int rrc; pcre_callout_block cb; cb.version = 1; /* Version 1 of the callout block */ cb.callout_number = code[1]; cb.offset_vector = offsets; cb.subject = (char *)start_subject; cb.subject_length = end_subject - start_subject; cb.start_match = current_subject - start_subject; cb.current_position = ptr - start_subject; cb.pattern_position = GET(code, 2); cb.next_item_length = GET(code, 2 + LINK_SIZE); cb.capture_top = 1; cb.capture_last = -1; cb.callout_data = md->callout_data; if ((rrc = (*pcre_callout)(&cb)) < 0) return rrc; /* Abandon */ if (rrc == 0) { ADD_ACTIVE(state_offset + 2 + 2*LINK_SIZE, 0); } } break; /* ========================================================================== */ default: /* Unsupported opcode */ return PCRE_ERROR_DFA_UITEM; } NEXT_ACTIVE_STATE: continue; } /* End of loop scanning active states */ /* We have finished the processing at the current subject character. If no new states have been set for the next character, we have found all the matches that we are going to find. If we are at the top level and partial matching has been requested, check for appropriate conditions. */ if (new_count <= 0) { if (match_count < 0 && /* No matches found */ rlevel == 1 && /* Top level match function */ (md->moptions & PCRE_PARTIAL) != 0 && /* Want partial matching */ ptr >= end_subject && /* Reached end of subject */ ptr > current_subject) /* Matched non-empty string */ { if (offsetcount >= 2) { offsets[0] = current_subject - start_subject; offsets[1] = end_subject - start_subject; } match_count = PCRE_ERROR_PARTIAL; } DPRINTF(("%.*sEnd of internal_dfa_exec %d: returning %d\n" "%.*s---------------------\n\n", rlevel*2-2, SP, rlevel, match_count, rlevel*2-2, SP)); return match_count; } /* One or more states are active for the next character. */ ptr += clen; /* Advance to next subject character */ } /* Loop to move along the subject string */ /* Control never gets here, but we must keep the compiler happy. */ DPRINTF(("%.*s+++ Unexpected end of internal_dfa_exec %d +++\n" "%.*s---------------------\n\n", rlevel*2-2, SP, rlevel, rlevel*2-2, SP)); return PCRE_ERROR_NOMATCH; } /************************************************* * Execute a Regular Expression - DFA engine * *************************************************/ /* This external function applies a compiled re to a subject string using a DFA engine. This function calls the internal function multiple times if the pattern is not anchored. Arguments: argument_re points to the compiled expression extra_data points to extra data or is NULL (not currently used) subject points to the subject string length length of subject string (may contain binary zeros) start_offset where to start in the subject string options option bits offsets vector of match offsets offsetcount size of same workspace workspace vector wscount size of same Returns: > 0 => number of match offset pairs placed in offsets = 0 => offsets overflowed; longest matches are present -1 => failed to match < -1 => some kind of unexpected problem */ EXPORT int pcre_dfa_exec(const pcre *argument_re, const pcre_extra *extra_data, const char *subject, int length, int start_offset, int options, int *offsets, int offsetcount, int *workspace, int wscount) { real_pcre *re = (real_pcre *)argument_re; dfa_match_data match_block; BOOL utf8, anchored, startline, firstline; const uschar *current_subject, *end_subject, *lcc; pcre_study_data internal_study; const pcre_study_data *study = NULL; real_pcre internal_re; const uschar *req_byte_ptr; const uschar *start_bits = NULL; BOOL first_byte_caseless = FALSE; BOOL req_byte_caseless = FALSE; int first_byte = -1; int req_byte = -1; int req_byte2 = -1; /* Plausibility checks */ if ((options & ~PUBLIC_DFA_EXEC_OPTIONS) != 0) return PCRE_ERROR_BADOPTION; if (re == NULL || subject == NULL || workspace == NULL || (offsets == NULL && offsetcount > 0)) return PCRE_ERROR_NULL; if (offsetcount < 0) return PCRE_ERROR_BADCOUNT; if (wscount < 20) return PCRE_ERROR_DFA_WSSIZE; /* We need to find the pointer to any study data before we test for byte flipping, so we scan the extra_data block first. This may set two fields in the match block, so we must initialize them beforehand. However, the other fields in the match block must not be set until after the byte flipping. */ match_block.tables = re->tables; match_block.callout_data = NULL; if (extra_data != NULL) { unsigned int flags = extra_data->flags; if ((flags & PCRE_EXTRA_STUDY_DATA) != 0) study = (const pcre_study_data *)extra_data->study_data; if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0) return PCRE_ERROR_DFA_UMLIMIT; if ((flags & PCRE_EXTRA_CALLOUT_DATA) != 0) match_block.callout_data = extra_data->callout_data; if ((flags & PCRE_EXTRA_TABLES) != 0) match_block.tables = extra_data->tables; } /* Check that the first field in the block is the magic number. If it is not, test for a regex that was compiled on a host of opposite endianness. If this is the case, flipped values are put in internal_re and internal_study if there was study data too. */ if (re->magic_number != MAGIC_NUMBER) { re = _pcre_try_flipped(re, &internal_re, study, &internal_study); if (re == NULL) return PCRE_ERROR_BADMAGIC; if (study != NULL) study = &internal_study; } /* Set some local values */ current_subject = (const unsigned char *)subject + start_offset; end_subject = (const unsigned char *)subject + length; req_byte_ptr = current_subject - 1; utf8 = (re->options & PCRE_UTF8) != 0; anchored = (options & PCRE_ANCHORED) != 0 || (re->options & PCRE_ANCHORED) != 0; /* The remaining fixed data for passing around. */ match_block.start_code = (const uschar *)argument_re + re->name_table_offset + re->name_count * re->name_entry_size; match_block.start_subject = (const unsigned char *)subject; match_block.end_subject = end_subject; match_block.moptions = options; match_block.poptions = re->options; /* Check a UTF-8 string if required. Unfortunately there's no way of passing back the character offset. */ #ifdef SUPPORT_UTF8 if (utf8 && (options & PCRE_NO_UTF8_CHECK) == 0) { if (_pcre_valid_utf8((uschar *)subject, length) >= 0) return PCRE_ERROR_BADUTF8; if (start_offset > 0 && start_offset < length) { int tb = ((uschar *)subject)[start_offset]; if (tb > 127) { tb &= 0xc0; if (tb != 0 && tb != 0xc0) return PCRE_ERROR_BADUTF8_OFFSET; } } } #endif /* If the exec call supplied NULL for tables, use the inbuilt ones. This is a feature that makes it possible to save compiled regex and re-use them in other programs later. */ if (match_block.tables == NULL) match_block.tables = _pcre_default_tables; /* The lower casing table and the "must be at the start of a line" flag are used in a loop when finding where to start. */ lcc = match_block.tables + lcc_offset; startline = (re->options & PCRE_STARTLINE) != 0; firstline = (re->options & PCRE_FIRSTLINE) != 0; /* Set up the first character to match, if available. The first_byte value is never set for an anchored regular expression, but the anchoring may be forced at run time, so we have to test for anchoring. The first char may be unset for an unanchored pattern, of course. If there's no first char and the pattern was studied, there may be a bitmap of possible first characters. */ if (!anchored) { if ((re->options & PCRE_FIRSTSET) != 0) { first_byte = re->first_byte & 255; if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE) first_byte = lcc[first_byte]; } else { if (startline && study != NULL && (study->options & PCRE_STUDY_MAPPED) != 0) start_bits = study->start_bits; } } /* For anchored or unanchored matches, there may be a "last known required character" set. */ if ((re->options & PCRE_REQCHSET) != 0) { req_byte = re->req_byte & 255; req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0; req_byte2 = (match_block.tables + fcc_offset)[req_byte]; /* case flipped */ } /* Call the main matching function, looping for a non-anchored regex after a failed match. Unless restarting, optimize by moving to the first match character if possible, when not anchored. Then unless wanting a partial match, check for a required later character. */ for (;;) { int rc; if ((options & PCRE_DFA_RESTART) == 0) { const uschar *save_end_subject = end_subject; /* Advance to a unique first char if possible. If firstline is TRUE, the start of the match is constrained to the first line of a multiline string. Implement this by temporarily adjusting end_subject so that we stop scanning at a newline. If the match fails at the newline, later code breaks this loop. */ if (firstline) { const uschar *t = current_subject; while (t < save_end_subject && *t != '\n') t++; end_subject = t; } if (first_byte >= 0) { if (first_byte_caseless) while (current_subject < end_subject && lcc[*current_subject] != first_byte) current_subject++; else while (current_subject < end_subject && *current_subject != first_byte) current_subject++; } /* Or to just after \n for a multiline match if possible */ else if (startline) { if (current_subject > match_block.start_subject + start_offset) { while (current_subject < end_subject && current_subject[-1] != NEWLINE) current_subject++; } } /* Or to a non-unique first char after study */ else if (start_bits != NULL) { while (current_subject < end_subject) { register unsigned int c = *current_subject; if ((start_bits[c/8] & (1 << (c&7))) == 0) current_subject++; else break; } } /* Restore fudged end_subject */ end_subject = save_end_subject; } /* If req_byte is set, we know that that character must appear in the subject for the match to succeed. If the first character is set, req_byte must be later in the subject; otherwise the test starts at the match point. This optimization can save a huge amount of work in patterns with nested unlimited repeats that aren't going to match. Writing separate code for cased/caseless versions makes it go faster, as does using an autoincrement and backing off on a match. HOWEVER: when the subject string is very, very long, searching to its end can take a long time, and give bad performance on quite ordinary patterns. This showed up when somebody was matching /^C/ on a 32-megabyte string... so we don't do this when the string is sufficiently long. ALSO: this processing is disabled when partial matching is requested. */ if (req_byte >= 0 && end_subject - current_subject < REQ_BYTE_MAX && (options & PCRE_PARTIAL) == 0) { register const uschar *p = current_subject + ((first_byte >= 0)? 1 : 0); /* We don't need to repeat the search if we haven't yet reached the place we found it at last time. */ if (p > req_byte_ptr) { if (req_byte_caseless) { while (p < end_subject) { register int pp = *p++; if (pp == req_byte || pp == req_byte2) { p--; break; } } } else { while (p < end_subject) { if (*p++ == req_byte) { p--; break; } } } /* If we can't find the required character, break the matching loop, which will cause a return or PCRE_ERROR_NOMATCH. */ if (p >= end_subject) break; /* If we have found the required character, save the point where we found it, so that we don't search again next time round the loop if the start hasn't passed this character yet. */ req_byte_ptr = p; } } /* OK, now we can do the business */ rc = internal_dfa_exec( &match_block, /* fixed match data */ match_block.start_code, /* this subexpression's code */ current_subject, /* where we currently are */ start_offset, /* start offset in subject */ offsets, /* offset vector */ offsetcount, /* size of same */ workspace, /* workspace vector */ wscount, /* size of same */ re->options & (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL), /* ims flags */ 0, /* function recurse level */ 0); /* regex recurse level */ /* Anything other than "no match" means we are done, always; otherwise, carry on only if not anchored. */ if (rc != PCRE_ERROR_NOMATCH || anchored) return rc; /* Advance to the next subject character unless we are at the end of a line and firstline is set. */ if (firstline && *current_subject == NEWLINE) break; current_subject++; #ifdef SUPPORT_UTF8 if (utf8) { while (current_subject < end_subject && (*current_subject & 0xc0) == 0x80) current_subject++; } #endif if (current_subject > end_subject) break; } return PCRE_ERROR_NOMATCH; } /* End of pcre_dfa_exec.c */ ================================================ FILE: Project/Pcre/Source/pcre_exec.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains pcre_exec(), the externally visible function that does pattern matching using an NFA algorithm, trying to mimic Perl as closely as possible. There are also some static supporting functions. */ #include "pcre_internal.h" /* Structure for building a chain of data that actually lives on the stack, for holding the values of the subject pointer at the start of each subpattern, so as to detect when an empty string has been matched by a subpattern - to break infinite loops. When NO_RECURSE is set, these blocks are on the heap, not on the stack. */ typedef struct eptrblock { struct eptrblock *epb_prev; const uschar *epb_saved_eptr; } eptrblock; /* Flag bits for the match() function */ #define match_condassert 0x01 /* Called to check a condition assertion */ #define match_isgroup 0x02 /* Set if start of bracketed group */ /* Non-error returns from the match() function. Error returns are externally defined PCRE_ERROR_xxx codes, which are all negative. */ #define MATCH_MATCH 1 #define MATCH_NOMATCH 0 /* Maximum number of ints of offset to save on the stack for recursive calls. If the offset vector is bigger, malloc is used. This should be a multiple of 3, because the offset vector is always a multiple of 3 long. */ #define REC_STACK_SAVE_MAX 30 /* Min and max values for the common repeats; for the maxima, 0 => infinity */ static const char rep_min[] = { 0, 0, 1, 1, 0, 0 }; static const char rep_max[] = { 0, 0, 0, 0, 1, 1 }; #ifdef DEBUG /************************************************* * Debugging function to print chars * *************************************************/ /* Print a sequence of chars in printable format, stopping at the end of the subject if the requested. Arguments: p points to characters length number to print is_subject TRUE if printing from within md->start_subject md pointer to matching data block, if is_subject is TRUE Returns: nothing */ static void pchars(const uschar *p, int length, BOOL is_subject, match_data *md) { int c; if (is_subject && length > md->end_subject - p) length = md->end_subject - p; while (length-- > 0) if (isprint(c = *(p++))) printf("%c", c); else printf("\\x%02x", c); } #endif /************************************************* * Match a back-reference * *************************************************/ /* If a back reference hasn't been set, the length that is passed is greater than the number of characters left in the string, so the match fails. Arguments: offset index into the offset vector eptr points into the subject length length to be matched md points to match data block ims the ims flags Returns: TRUE if matched */ static BOOL match_ref(int offset, register const uschar *eptr, int length, match_data *md, unsigned long int ims) { const uschar *p = md->start_subject + md->offset_vector[offset]; #ifdef DEBUG if (eptr >= md->end_subject) printf("matching subject "); else { printf("matching subject "); pchars(eptr, length, TRUE, md); } printf(" against backref "); pchars(p, length, FALSE, md); printf("\n"); #endif /* Always fail if not enough characters left */ if (length > md->end_subject - eptr) return FALSE; /* Separate the caselesss case for speed */ if ((ims & PCRE_CASELESS) != 0) { while (length-- > 0) if (md->lcc[*p++] != md->lcc[*eptr++]) return FALSE; } else { while (length-- > 0) if (*p++ != *eptr++) return FALSE; } return TRUE; } /*************************************************************************** **************************************************************************** RECURSION IN THE match() FUNCTION The match() function is highly recursive. Some regular expressions can cause it to recurse thousands of times. I was writing for Unix, so I just let it call itself recursively. This uses the stack for saving everything that has to be saved for a recursive call. On Unix, the stack can be large, and this works fine. It turns out that on non-Unix systems there are problems with programs that use a lot of stack. (This despite the fact that every last chip has oodles of memory these days, and techniques for extending the stack have been known for decades.) So.... There is a fudge, triggered by defining NO_RECURSE, which avoids recursive calls by keeping local variables that need to be preserved in blocks of memory obtained from malloc instead instead of on the stack. Macros are used to achieve this so that the actual code doesn't look very different to what it always used to. **************************************************************************** ***************************************************************************/ /* These versions of the macros use the stack, as normal */ #ifndef NO_RECURSE #define REGISTER register #define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) rx = match(ra,rb,rc,rd,re,rf,rg) #define RRETURN(ra) return ra #else /* These versions of the macros manage a private stack on the heap. Note that the rd argument of RMATCH isn't actually used. It's the md argument of match(), which never changes. */ #define REGISTER #define RMATCH(rx,ra,rb,rc,rd,re,rf,rg)\ {\ heapframe *newframe = (pcre_stack_malloc)(sizeof(heapframe));\ if (setjmp(frame->Xwhere) == 0)\ {\ newframe->Xeptr = ra;\ newframe->Xecode = rb;\ newframe->Xoffset_top = rc;\ newframe->Xims = re;\ newframe->Xeptrb = rf;\ newframe->Xflags = rg;\ newframe->Xprevframe = frame;\ frame = newframe;\ DPRINTF(("restarting from line %d\n", __LINE__));\ goto HEAP_RECURSE;\ }\ else\ {\ DPRINTF(("longjumped back to line %d\n", __LINE__));\ frame = md->thisframe;\ rx = frame->Xresult;\ }\ } #define RRETURN(ra)\ {\ heapframe *newframe = frame;\ frame = newframe->Xprevframe;\ (pcre_stack_free)(newframe);\ if (frame != NULL)\ {\ frame->Xresult = ra;\ md->thisframe = frame;\ longjmp(frame->Xwhere, 1);\ }\ return ra;\ } /* Structure for remembering the local variables in a private frame */ typedef struct heapframe { struct heapframe *Xprevframe; /* Function arguments that may change */ const uschar *Xeptr; const uschar *Xecode; int Xoffset_top; long int Xims; eptrblock *Xeptrb; int Xflags; /* Function local variables */ const uschar *Xcallpat; const uschar *Xcharptr; const uschar *Xdata; const uschar *Xnext; const uschar *Xpp; const uschar *Xprev; const uschar *Xsaved_eptr; recursion_info Xnew_recursive; BOOL Xcur_is_word; BOOL Xcondition; BOOL Xminimize; BOOL Xprev_is_word; unsigned long int Xoriginal_ims; #ifdef SUPPORT_UCP int Xprop_type; int Xprop_fail_result; int Xprop_category; int Xprop_chartype; int Xprop_othercase; int Xprop_test_against; int *Xprop_test_variable; #endif int Xctype; int Xfc; int Xfi; int Xlength; int Xmax; int Xmin; int Xnumber; int Xoffset; int Xop; int Xsave_capture_last; int Xsave_offset1, Xsave_offset2, Xsave_offset3; int Xstacksave[REC_STACK_SAVE_MAX]; eptrblock Xnewptrb; /* Place to pass back result, and where to jump back to */ int Xresult; jmp_buf Xwhere; } heapframe; #endif /*************************************************************************** ***************************************************************************/ /************************************************* * Match from current position * *************************************************/ /* On entry ecode points to the first opcode, and eptr to the first character in the subject string, while eptrb holds the value of eptr at the start of the last bracketed group - used for breaking infinite loops matching zero-length strings. This function is called recursively in many circumstances. Whenever it returns a negative (error) response, the outer incarnation must also return the same response. Performance note: It might be tempting to extract commonly used fields from the md structure (e.g. utf8, end_subject) into individual variables to improve performance. Tests using gcc on a SPARC disproved this; in the first case, it made performance worse. Arguments: eptr pointer in subject ecode position in code offset_top current top pointer md pointer to "static" info for the match ims current /i, /m, and /s options eptrb pointer to chain of blocks containing eptr at start of brackets - for testing for empty matches flags can contain match_condassert - this is an assertion condition match_isgroup - this is the start of a bracketed group Returns: MATCH_MATCH if matched ) these values are >= 0 MATCH_NOMATCH if failed to match ) a negative PCRE_ERROR_xxx value if aborted by an error condition (e.g. stopped by recursion limit) */ static int match(REGISTER const uschar *eptr, REGISTER const uschar *ecode, int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb, int flags) { /* These variables do not need to be preserved over recursion in this function, so they can be ordinary variables in all cases. Mark them with "register" because they are used a lot in loops. */ register int rrc; /* Returns from recursive calls */ register int i; /* Used for loops not involving calls to RMATCH() */ register int c; /* Character values not kept over RMATCH() calls */ register BOOL utf8; /* Local copy of UTF-8 flag for speed */ /* When recursion is not being used, all "local" variables that have to be preserved over calls to RMATCH() are part of a "frame" which is obtained from heap storage. Set up the top-level frame here; others are obtained from the heap whenever RMATCH() does a "recursion". See the macro definitions above. */ #ifdef NO_RECURSE heapframe *frame = (pcre_stack_malloc)(sizeof(heapframe)); frame->Xprevframe = NULL; /* Marks the top level */ /* Copy in the original argument variables */ frame->Xeptr = eptr; frame->Xecode = ecode; frame->Xoffset_top = offset_top; frame->Xims = ims; frame->Xeptrb = eptrb; frame->Xflags = flags; /* This is where control jumps back to to effect "recursion" */ HEAP_RECURSE: /* Macros make the argument variables come from the current frame */ #define eptr frame->Xeptr #define ecode frame->Xecode #define offset_top frame->Xoffset_top #define ims frame->Xims #define eptrb frame->Xeptrb #define flags frame->Xflags /* Ditto for the local variables */ #ifdef SUPPORT_UTF8 #define charptr frame->Xcharptr #endif #define callpat frame->Xcallpat #define data frame->Xdata #define next frame->Xnext #define pp frame->Xpp #define prev frame->Xprev #define saved_eptr frame->Xsaved_eptr #define new_recursive frame->Xnew_recursive #define cur_is_word frame->Xcur_is_word #define condition frame->Xcondition #define minimize frame->Xminimize #define prev_is_word frame->Xprev_is_word #define original_ims frame->Xoriginal_ims #ifdef SUPPORT_UCP #define prop_type frame->Xprop_type #define prop_fail_result frame->Xprop_fail_result #define prop_category frame->Xprop_category #define prop_chartype frame->Xprop_chartype #define prop_othercase frame->Xprop_othercase #define prop_test_against frame->Xprop_test_against #define prop_test_variable frame->Xprop_test_variable #endif #define ctype frame->Xctype #define fc frame->Xfc #define fi frame->Xfi #define length frame->Xlength #define max frame->Xmax #define min frame->Xmin #define number frame->Xnumber #define offset frame->Xoffset #define op frame->Xop #define save_capture_last frame->Xsave_capture_last #define save_offset1 frame->Xsave_offset1 #define save_offset2 frame->Xsave_offset2 #define save_offset3 frame->Xsave_offset3 #define stacksave frame->Xstacksave #define newptrb frame->Xnewptrb /* When recursion is being used, local variables are allocated on the stack and get preserved during recursion in the normal way. In this environment, fi and i, and fc and c, can be the same variables. */ #else #define fi i #define fc c #ifdef SUPPORT_UTF8 /* Many of these variables are used ony */ const uschar *charptr; /* small blocks of the code. My normal */ #endif /* style of coding would have declared */ const uschar *callpat; /* them within each of those blocks. */ const uschar *data; /* However, in order to accommodate the */ const uschar *next; /* version of this code that uses an */ const uschar *pp; /* external "stack" implemented on the */ const uschar *prev; /* heap, it is easier to declare them */ const uschar *saved_eptr; /* all here, so the declarations can */ /* be cut out in a block. The only */ recursion_info new_recursive; /* declarations within blocks below are */ /* for variables that do not have to */ BOOL cur_is_word; /* be preserved over a recursive call */ BOOL condition; /* to RMATCH(). */ BOOL minimize; BOOL prev_is_word; unsigned long int original_ims; #ifdef SUPPORT_UCP int prop_type; int prop_fail_result; int prop_category; int prop_chartype; int prop_othercase; int prop_test_against; int *prop_test_variable; #endif int ctype; int length; int max; int min; int number; int offset; int op; int save_capture_last; int save_offset1, save_offset2, save_offset3; int stacksave[REC_STACK_SAVE_MAX]; eptrblock newptrb; #endif /* These statements are here to stop the compiler complaining about unitialized variables. */ #ifdef SUPPORT_UCP prop_fail_result = 0; prop_test_against = 0; prop_test_variable = NULL; #endif /* OK, now we can get on with the real code of the function. Recursion is specified by the macros RMATCH and RRETURN. When NO_RECURSE is *not* defined, these just turn into a recursive call to match() and a "return", respectively. However, RMATCH isn't like a function call because it's quite a complicated macro. It has to be used in one particular way. This shouldn't, however, impact performance when true recursion is being used. */ if (md->match_call_count++ >= md->match_limit) RRETURN(PCRE_ERROR_MATCHLIMIT); original_ims = ims; /* Save for resetting on ')' */ utf8 = md->utf8; /* Local copy of the flag */ /* At the start of a bracketed group, add the current subject pointer to the stack of such pointers, to be re-instated at the end of the group when we hit the closing ket. When match() is called in other circumstances, we don't add to this stack. */ if ((flags & match_isgroup) != 0) { newptrb.epb_prev = eptrb; newptrb.epb_saved_eptr = eptr; eptrb = &newptrb; } /* Now start processing the operations. */ for (;;) { op = *ecode; minimize = FALSE; /* For partial matching, remember if we ever hit the end of the subject after matching at least one subject character. */ if (md->partial && eptr >= md->end_subject && eptr > md->start_match) md->hitend = TRUE; /* Opening capturing bracket. If there is space in the offset vector, save the current subject position in the working slot at the top of the vector. We mustn't change the current values of the data slot, because they may be set from a previous iteration of this group, and be referred to by a reference inside the group. If the bracket fails to match, we need to restore this value and also the values of the final offsets, in case they were set by a previous iteration of the same bracket. If there isn't enough space in the offset vector, treat this as if it were a non-capturing bracket. Don't worry about setting the flag for the error case here; that is handled in the code for KET. */ if (op > OP_BRA) { number = op - OP_BRA; /* For extended extraction brackets (large number), we have to fish out the number from a dummy opcode at the start. */ if (number > EXTRACT_BASIC_MAX) number = GET2(ecode, 2+LINK_SIZE); offset = number << 1; #ifdef DEBUG printf("start bracket %d subject=", number); pchars(eptr, 16, TRUE, md); printf("\n"); #endif if (offset < md->offset_max) { save_offset1 = md->offset_vector[offset]; save_offset2 = md->offset_vector[offset+1]; save_offset3 = md->offset_vector[md->offset_end - number]; save_capture_last = md->capture_last; DPRINTF(("saving %d %d %d\n", save_offset1, save_offset2, save_offset3)); md->offset_vector[md->offset_end - number] = eptr - md->start_subject; do { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); md->capture_last = save_capture_last; ecode += GET(ecode, 1); } while (*ecode == OP_ALT); DPRINTF(("bracket %d failed\n", number)); md->offset_vector[offset] = save_offset1; md->offset_vector[offset+1] = save_offset2; md->offset_vector[md->offset_end - number] = save_offset3; RRETURN(MATCH_NOMATCH); } /* Insufficient room for saving captured contents */ else op = OP_BRA; } /* Other types of node can be handled by a switch */ switch(op) { case OP_BRA: /* Non-capturing bracket: optimized */ DPRINTF(("start bracket 0\n")); do { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode, 1); } while (*ecode == OP_ALT); DPRINTF(("bracket 0 failed\n")); RRETURN(MATCH_NOMATCH); /* Conditional group: compilation checked that there are no more than two branches. If the condition is false, skipping the first branch takes us past the end if there is only one branch, but that's OK because that is exactly what going to the ket would do. */ case OP_COND: if (ecode[LINK_SIZE+1] == OP_CREF) /* Condition extract or recurse test */ { offset = GET2(ecode, LINK_SIZE+2) << 1; /* Doubled ref number */ condition = (offset == CREF_RECURSE * 2)? (md->recursive != NULL) : (offset < offset_top && md->offset_vector[offset] >= 0); RMATCH(rrc, eptr, ecode + (condition? (LINK_SIZE + 4) : (LINK_SIZE + 1 + GET(ecode, 1))), offset_top, md, ims, eptrb, match_isgroup); RRETURN(rrc); } /* The condition is an assertion. Call match() to evaluate it - setting the final argument TRUE causes it to stop at the end of an assertion. */ else { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, match_condassert | match_isgroup); if (rrc == MATCH_MATCH) { ecode += 1 + LINK_SIZE + GET(ecode, LINK_SIZE+2); while (*ecode == OP_ALT) ecode += GET(ecode, 1); } else if (rrc != MATCH_NOMATCH) { RRETURN(rrc); /* Need braces because of following else */ } else ecode += GET(ecode, 1); RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, match_isgroup); RRETURN(rrc); } /* Control never reaches here */ /* Skip over conditional reference or large extraction number data if encountered. */ case OP_CREF: case OP_BRANUMBER: ecode += 3; break; /* End of the pattern. If we are in a recursion, we should restore the offsets appropriately and continue from after the call. */ case OP_END: if (md->recursive != NULL && md->recursive->group_num == 0) { recursion_info *rec = md->recursive; DPRINTF(("Hit the end in a (?0) recursion\n")); md->recursive = rec->prevrec; memmove(md->offset_vector, rec->offset_save, rec->saved_max * sizeof(int)); md->start_match = rec->save_start; ims = original_ims; ecode = rec->after_call; break; } /* Otherwise, if PCRE_NOTEMPTY is set, fail if we have matched an empty string - backtracking will then try other alternatives, if any. */ if (md->notempty && eptr == md->start_match) RRETURN(MATCH_NOMATCH); md->end_match_ptr = eptr; /* Record where we ended */ md->end_offset_top = offset_top; /* and how many extracts were taken */ RRETURN(MATCH_MATCH); /* Change option settings */ case OP_OPT: ims = ecode[1]; ecode += 2; DPRINTF(("ims set to %02lx\n", ims)); break; /* Assertion brackets. Check the alternative branches in turn - the matching won't pass the KET for an assertion. If any one branch matches, the assertion is true. Lookbehind assertions have an OP_REVERSE item at the start of each branch to move the current point backwards, so the code at this level is identical to the lookahead case. */ case OP_ASSERT: case OP_ASSERTBACK: do { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, match_isgroup); if (rrc == MATCH_MATCH) break; if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode, 1); } while (*ecode == OP_ALT); if (*ecode == OP_KET) RRETURN(MATCH_NOMATCH); /* If checking an assertion for a condition, return MATCH_MATCH. */ if ((flags & match_condassert) != 0) RRETURN(MATCH_MATCH); /* Continue from after the assertion, updating the offsets high water mark, since extracts may have been taken during the assertion. */ do ecode += GET(ecode,1); while (*ecode == OP_ALT); ecode += 1 + LINK_SIZE; offset_top = md->end_offset_top; continue; /* Negative assertion: all branches must fail to match */ case OP_ASSERT_NOT: case OP_ASSERTBACK_NOT: do { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, NULL, match_isgroup); if (rrc == MATCH_MATCH) RRETURN(MATCH_NOMATCH); if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode,1); } while (*ecode == OP_ALT); if ((flags & match_condassert) != 0) RRETURN(MATCH_MATCH); ecode += 1 + LINK_SIZE; continue; /* Move the subject pointer back. This occurs only at the start of each branch of a lookbehind assertion. If we are too close to the start to move back, this match function fails. When working with UTF-8 we move back a number of characters, not bytes. */ case OP_REVERSE: #ifdef SUPPORT_UTF8 if (utf8) { c = GET(ecode,1); for (i = 0; i < c; i++) { eptr--; if (eptr < md->start_subject) RRETURN(MATCH_NOMATCH); BACKCHAR(eptr) } } else #endif /* No UTF-8 support, or not in UTF-8 mode: count is byte count */ { eptr -= GET(ecode,1); if (eptr < md->start_subject) RRETURN(MATCH_NOMATCH); } /* Skip to next op code */ ecode += 1 + LINK_SIZE; break; /* The callout item calls an external function, if one is provided, passing details of the match so far. This is mainly for debugging, though the function is able to force a failure. */ case OP_CALLOUT: if (pcre_callout != NULL) { pcre_callout_block cb; cb.version = 1; /* Version 1 of the callout block */ cb.callout_number = ecode[1]; cb.offset_vector = md->offset_vector; cb.subject = (const char *)md->start_subject; cb.subject_length = md->end_subject - md->start_subject; cb.start_match = md->start_match - md->start_subject; cb.current_position = eptr - md->start_subject; cb.pattern_position = GET(ecode, 2); cb.next_item_length = GET(ecode, 2 + LINK_SIZE); cb.capture_top = offset_top/2; cb.capture_last = md->capture_last; cb.callout_data = md->callout_data; if ((rrc = (*pcre_callout)(&cb)) > 0) RRETURN(MATCH_NOMATCH); if (rrc < 0) RRETURN(rrc); } ecode += 2 + 2*LINK_SIZE; break; /* Recursion either matches the current regex, or some subexpression. The offset data is the offset to the starting bracket from the start of the whole pattern. (This is so that it works from duplicated subpatterns.) If there are any capturing brackets started but not finished, we have to save their starting points and reinstate them after the recursion. However, we don't know how many such there are (offset_top records the completed total) so we just have to save all the potential data. There may be up to 65535 such values, which is too large to put on the stack, but using malloc for small numbers seems expensive. As a compromise, the stack is used when there are no more than REC_STACK_SAVE_MAX values to store; otherwise malloc is used. A problem is what to do if the malloc fails ... there is no way of returning to the top level with an error. Save the top REC_STACK_SAVE_MAX values on the stack, and accept that the rest may be wrong. There are also other values that have to be saved. We use a chained sequence of blocks that actually live on the stack. Thanks to Robin Houston for the original version of this logic. */ case OP_RECURSE: { callpat = md->start_code + GET(ecode, 1); new_recursive.group_num = *callpat - OP_BRA; /* For extended extraction brackets (large number), we have to fish out the number from a dummy opcode at the start. */ if (new_recursive.group_num > EXTRACT_BASIC_MAX) new_recursive.group_num = GET2(callpat, 2+LINK_SIZE); /* Add to "recursing stack" */ new_recursive.prevrec = md->recursive; md->recursive = &new_recursive; /* Find where to continue from afterwards */ ecode += 1 + LINK_SIZE; new_recursive.after_call = ecode; /* Now save the offset data. */ new_recursive.saved_max = md->offset_end; if (new_recursive.saved_max <= REC_STACK_SAVE_MAX) new_recursive.offset_save = stacksave; else { new_recursive.offset_save = (int *)(pcre_malloc)(new_recursive.saved_max * sizeof(int)); if (new_recursive.offset_save == NULL) RRETURN(PCRE_ERROR_NOMEMORY); } memcpy(new_recursive.offset_save, md->offset_vector, new_recursive.saved_max * sizeof(int)); new_recursive.save_start = md->start_match; md->start_match = eptr; /* OK, now we can do the recursion. For each top-level alternative we restore the offset and recursion data. */ DPRINTF(("Recursing into group %d\n", new_recursive.group_num)); do { RMATCH(rrc, eptr, callpat + 1 + LINK_SIZE, offset_top, md, ims, eptrb, match_isgroup); if (rrc == MATCH_MATCH) { md->recursive = new_recursive.prevrec; if (new_recursive.offset_save != stacksave) (pcre_free)(new_recursive.offset_save); RRETURN(MATCH_MATCH); } else if (rrc != MATCH_NOMATCH) RRETURN(rrc); md->recursive = &new_recursive; memcpy(md->offset_vector, new_recursive.offset_save, new_recursive.saved_max * sizeof(int)); callpat += GET(callpat, 1); } while (*callpat == OP_ALT); DPRINTF(("Recursion didn't match\n")); md->recursive = new_recursive.prevrec; if (new_recursive.offset_save != stacksave) (pcre_free)(new_recursive.offset_save); RRETURN(MATCH_NOMATCH); } /* Control never reaches here */ /* "Once" brackets are like assertion brackets except that after a match, the point in the subject string is not moved back. Thus there can never be a move back into the brackets. Friedl calls these "atomic" subpatterns. Check the alternative branches in turn - the matching won't pass the KET for this kind of subpattern. If any one branch matches, we carry on as at the end of a normal bracket, leaving the subject pointer. */ case OP_ONCE: { prev = ecode; saved_eptr = eptr; do { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, match_isgroup); if (rrc == MATCH_MATCH) break; if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode += GET(ecode,1); } while (*ecode == OP_ALT); /* If hit the end of the group (which could be repeated), fail */ if (*ecode != OP_ONCE && *ecode != OP_ALT) RRETURN(MATCH_NOMATCH); /* Continue as from after the assertion, updating the offsets high water mark, since extracts may have been taken. */ do ecode += GET(ecode,1); while (*ecode == OP_ALT); offset_top = md->end_offset_top; eptr = md->end_match_ptr; /* For a non-repeating ket, just continue at this level. This also happens for a repeating ket if no characters were matched in the group. This is the forcible breaking of infinite loops as implemented in Perl 5.005. If there is an options reset, it will get obeyed in the normal course of events. */ if (*ecode == OP_KET || eptr == saved_eptr) { ecode += 1+LINK_SIZE; break; } /* The repeating kets try the rest of the pattern or restart from the preceding bracket, in the appropriate order. We need to reset any options that changed within the bracket before re-running it, so check the next opcode. */ if (ecode[1+LINK_SIZE] == OP_OPT) { ims = (ims & ~PCRE_IMS) | ecode[4]; DPRINTF(("ims set to %02lx at group repeat\n", ims)); } if (*ecode == OP_KETRMIN) { RMATCH(rrc, eptr, ecode + 1 + LINK_SIZE, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); } else /* OP_KETRMAX */ { RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); } } RRETURN(MATCH_NOMATCH); /* An alternation is the end of a branch; scan along to find the end of the bracketed group and go to there. */ case OP_ALT: do ecode += GET(ecode,1); while (*ecode == OP_ALT); break; /* BRAZERO and BRAMINZERO occur just before a bracket group, indicating that it may occur zero times. It may repeat infinitely, or not at all - i.e. it could be ()* or ()? in the pattern. Brackets with fixed upper repeat limits are compiled as a number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. */ case OP_BRAZERO: { next = ecode+1; RMATCH(rrc, eptr, next, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); do next += GET(next,1); while (*next == OP_ALT); ecode = next + 1+LINK_SIZE; } break; case OP_BRAMINZERO: { next = ecode+1; do next += GET(next,1); while (*next == OP_ALT); RMATCH(rrc, eptr, next + 1+LINK_SIZE, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); ecode++; } break; /* End of a group, repeated or non-repeating. If we are at the end of an assertion "group", stop matching and return MATCH_MATCH, but record the current high water mark for use by positive assertions. Do this also for the "once" (not-backup up) groups. */ case OP_KET: case OP_KETRMIN: case OP_KETRMAX: { prev = ecode - GET(ecode, 1); saved_eptr = eptrb->epb_saved_eptr; /* Back up the stack of bracket start pointers. */ eptrb = eptrb->epb_prev; if (*prev == OP_ASSERT || *prev == OP_ASSERT_NOT || *prev == OP_ASSERTBACK || *prev == OP_ASSERTBACK_NOT || *prev == OP_ONCE) { md->end_match_ptr = eptr; /* For ONCE */ md->end_offset_top = offset_top; RRETURN(MATCH_MATCH); } /* In all other cases except a conditional group we have to check the group number back at the start and if necessary complete handling an extraction by setting the offsets and bumping the high water mark. */ if (*prev != OP_COND) { number = *prev - OP_BRA; /* For extended extraction brackets (large number), we have to fish out the number from a dummy opcode at the start. */ if (number > EXTRACT_BASIC_MAX) number = GET2(prev, 2+LINK_SIZE); offset = number << 1; #ifdef DEBUG printf("end bracket %d", number); printf("\n"); #endif /* Test for a numbered group. This includes groups called as a result of recursion. Note that whole-pattern recursion is coded as a recurse into group 0, so it won't be picked up here. Instead, we catch it when the OP_END is reached. */ if (number > 0) { md->capture_last = number; if (offset >= md->offset_max) md->offset_overflow = TRUE; else { md->offset_vector[offset] = md->offset_vector[md->offset_end - number]; md->offset_vector[offset+1] = eptr - md->start_subject; if (offset_top <= offset) offset_top = offset + 2; } /* Handle a recursively called group. Restore the offsets appropriately and continue from after the call. */ if (md->recursive != NULL && md->recursive->group_num == number) { recursion_info *rec = md->recursive; DPRINTF(("Recursion (%d) succeeded - continuing\n", number)); md->recursive = rec->prevrec; md->start_match = rec->save_start; memcpy(md->offset_vector, rec->offset_save, rec->saved_max * sizeof(int)); ecode = rec->after_call; ims = original_ims; break; } } } /* Reset the value of the ims flags, in case they got changed during the group. */ ims = original_ims; DPRINTF(("ims reset to %02lx\n", ims)); /* For a non-repeating ket, just continue at this level. This also happens for a repeating ket if no characters were matched in the group. This is the forcible breaking of infinite loops as implemented in Perl 5.005. If there is an options reset, it will get obeyed in the normal course of events. */ if (*ecode == OP_KET || eptr == saved_eptr) { ecode += 1 + LINK_SIZE; break; } /* The repeating kets try the rest of the pattern or restart from the preceding bracket, in the appropriate order. */ if (*ecode == OP_KETRMIN) { RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); } else /* OP_KETRMAX */ { RMATCH(rrc, eptr, prev, offset_top, md, ims, eptrb, match_isgroup); if (rrc != MATCH_NOMATCH) RRETURN(rrc); RMATCH(rrc, eptr, ecode + 1+LINK_SIZE, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); } } RRETURN(MATCH_NOMATCH); /* Start of subject unless notbol, or after internal newline if multiline */ case OP_CIRC: if (md->notbol && eptr == md->start_subject) RRETURN(MATCH_NOMATCH); if ((ims & PCRE_MULTILINE) != 0) { if (eptr != md->start_subject && eptr[-1] != NEWLINE) RRETURN(MATCH_NOMATCH); ecode++; break; } /* ... else fall through */ /* Start of subject assertion */ case OP_SOD: if (eptr != md->start_subject) RRETURN(MATCH_NOMATCH); ecode++; break; /* Start of match assertion */ case OP_SOM: if (eptr != md->start_subject + md->start_offset) RRETURN(MATCH_NOMATCH); ecode++; break; /* Assert before internal newline if multiline, or before a terminating newline unless endonly is set, else end of subject unless noteol is set. */ case OP_DOLL: if ((ims & PCRE_MULTILINE) != 0) { if (eptr < md->end_subject) { if (*eptr != NEWLINE) RRETURN(MATCH_NOMATCH); } else { if (md->noteol) RRETURN(MATCH_NOMATCH); } ecode++; break; } else { if (md->noteol) RRETURN(MATCH_NOMATCH); if (!md->endonly) { if (eptr < md->end_subject - 1 || (eptr == md->end_subject - 1 && *eptr != NEWLINE)) RRETURN(MATCH_NOMATCH); ecode++; break; } } /* ... else fall through */ /* End of subject assertion (\z) */ case OP_EOD: if (eptr < md->end_subject) RRETURN(MATCH_NOMATCH); ecode++; break; /* End of subject or ending \n assertion (\Z) */ case OP_EODN: if (eptr < md->end_subject - 1 || (eptr == md->end_subject - 1 && *eptr != NEWLINE)) RRETURN(MATCH_NOMATCH); ecode++; break; /* Word boundary assertions */ case OP_NOT_WORD_BOUNDARY: case OP_WORD_BOUNDARY: { /* Find out if the previous and current characters are "word" characters. It takes a bit more work in UTF-8 mode. Characters > 255 are assumed to be "non-word" characters. */ #ifdef SUPPORT_UTF8 if (utf8) { if (eptr == md->start_subject) prev_is_word = FALSE; else { const uschar *lastptr = eptr - 1; while((*lastptr & 0xc0) == 0x80) lastptr--; GETCHAR(c, lastptr); prev_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0; } if (eptr >= md->end_subject) cur_is_word = FALSE; else { GETCHAR(c, eptr); cur_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0; } } else #endif /* More streamlined when not in UTF-8 mode */ { prev_is_word = (eptr != md->start_subject) && ((md->ctypes[eptr[-1]] & ctype_word) != 0); cur_is_word = (eptr < md->end_subject) && ((md->ctypes[*eptr] & ctype_word) != 0); } /* Now see if the situation is what we want */ if ((*ecode++ == OP_WORD_BOUNDARY)? cur_is_word == prev_is_word : cur_is_word != prev_is_word) RRETURN(MATCH_NOMATCH); } break; /* Match a single character type; inline for speed */ case OP_ANY: if ((ims & PCRE_DOTALL) == 0 && eptr < md->end_subject && *eptr == NEWLINE) RRETURN(MATCH_NOMATCH); if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); #ifdef SUPPORT_UTF8 if (utf8) while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; #endif ecode++; break; /* Match a single byte, even in UTF-8 mode. This opcode really does match any byte, even newline, independent of the setting of PCRE_DOTALL. */ case OP_ANYBYTE: if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); ecode++; break; case OP_NOT_DIGIT: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); if ( #ifdef SUPPORT_UTF8 c < 256 && #endif (md->ctypes[c] & ctype_digit) != 0 ) RRETURN(MATCH_NOMATCH); ecode++; break; case OP_DIGIT: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); if ( #ifdef SUPPORT_UTF8 c >= 256 || #endif (md->ctypes[c] & ctype_digit) == 0 ) RRETURN(MATCH_NOMATCH); ecode++; break; case OP_NOT_WHITESPACE: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); if ( #ifdef SUPPORT_UTF8 c < 256 && #endif (md->ctypes[c] & ctype_space) != 0 ) RRETURN(MATCH_NOMATCH); ecode++; break; case OP_WHITESPACE: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); if ( #ifdef SUPPORT_UTF8 c >= 256 || #endif (md->ctypes[c] & ctype_space) == 0 ) RRETURN(MATCH_NOMATCH); ecode++; break; case OP_NOT_WORDCHAR: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); if ( #ifdef SUPPORT_UTF8 c < 256 && #endif (md->ctypes[c] & ctype_word) != 0 ) RRETURN(MATCH_NOMATCH); ecode++; break; case OP_WORDCHAR: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); if ( #ifdef SUPPORT_UTF8 c >= 256 || #endif (md->ctypes[c] & ctype_word) == 0 ) RRETURN(MATCH_NOMATCH); ecode++; break; #ifdef SUPPORT_UCP /* Check the next character by Unicode property. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ case OP_PROP: case OP_NOTPROP: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); { int chartype, rqdtype; int othercase; int category = ucp_findchar(c, &chartype, &othercase); rqdtype = *(++ecode); ecode++; if (rqdtype >= 128) { if ((rqdtype - 128 != category) == (op == OP_PROP)) RRETURN(MATCH_NOMATCH); } else { if ((rqdtype != chartype) == (op == OP_PROP)) RRETURN(MATCH_NOMATCH); } } break; /* Match an extended Unicode sequence. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ case OP_EXTUNI: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); { int chartype; int othercase; int category = ucp_findchar(c, &chartype, &othercase); if (category == ucp_M) RRETURN(MATCH_NOMATCH); while (eptr < md->end_subject) { int len = 1; if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } category = ucp_findchar(c, &chartype, &othercase); if (category != ucp_M) break; eptr += len; } } ecode++; break; #endif /* Match a back reference, possibly repeatedly. Look past the end of the item to see if there is repeat information following. The code is similar to that for character classes, but repeated for efficiency. Then obey similar code to character type repeats - written out again for speed. However, if the referenced string is the empty string, always treat it as matched, any number of times (otherwise there could be infinite loops). */ case OP_REF: { offset = GET2(ecode, 1) << 1; /* Doubled ref number */ ecode += 3; /* Advance past item */ /* If the reference is unset, set the length to be longer than the amount of subject left; this ensures that every attempt at a match fails. We can't just fail here, because of the possibility of quantifiers with zero minima. */ length = (offset >= offset_top || md->offset_vector[offset] < 0)? md->end_subject - eptr + 1 : md->offset_vector[offset+1] - md->offset_vector[offset]; /* Set up for repetition, or handle the non-repeated case */ switch (*ecode) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRPLUS: case OP_CRMINPLUS: case OP_CRQUERY: case OP_CRMINQUERY: c = *ecode++ - OP_CRSTAR; minimize = (c & 1) != 0; min = rep_min[c]; /* Pick up values from tables; */ max = rep_max[c]; /* zero for max => infinity */ if (max == 0) max = INT_MAX; break; case OP_CRRANGE: case OP_CRMINRANGE: minimize = (*ecode == OP_CRMINRANGE); min = GET2(ecode, 1); max = GET2(ecode, 3); if (max == 0) max = INT_MAX; ecode += 5; break; default: /* No repeat follows */ if (!match_ref(offset, eptr, length, md, ims)) RRETURN(MATCH_NOMATCH); eptr += length; continue; /* With the main loop */ } /* If the length of the reference is zero, just continue with the main loop. */ if (length == 0) continue; /* First, ensure the minimum number of matches are present. We get back the length of the reference string explicitly rather than passing the address of eptr, so that eptr can be a register variable. */ for (i = 1; i <= min; i++) { if (!match_ref(offset, eptr, length, md, ims)) RRETURN(MATCH_NOMATCH); eptr += length; } /* If min = max, continue at the same level without recursion. They are not both allowed to be zero. */ if (min == max) continue; /* If minimizing, keep trying and advancing the pointer */ if (minimize) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || !match_ref(offset, eptr, length, md, ims)) RRETURN(MATCH_NOMATCH); eptr += length; } /* Control never gets here */ } /* If maximizing, find the longest string and work backwards */ else { pp = eptr; for (i = min; i < max; i++) { if (!match_ref(offset, eptr, length, md, ims)) break; eptr += length; } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); eptr -= length; } RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ /* Match a bit-mapped character class, possibly repeatedly. This op code is used when all the characters in the class have values in the range 0-255, and either the matching is caseful, or the characters are in the range 0-127 when UTF-8 processing is enabled. The only difference between OP_CLASS and OP_NCLASS occurs when a data character outside the range is encountered. First, look past the end of the item to see if there is repeat information following. Then obey similar code to character type repeats - written out again for speed. */ case OP_NCLASS: case OP_CLASS: { data = ecode + 1; /* Save for matching */ ecode += 33; /* Advance past the item */ switch (*ecode) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRPLUS: case OP_CRMINPLUS: case OP_CRQUERY: case OP_CRMINQUERY: c = *ecode++ - OP_CRSTAR; minimize = (c & 1) != 0; min = rep_min[c]; /* Pick up values from tables; */ max = rep_max[c]; /* zero for max => infinity */ if (max == 0) max = INT_MAX; break; case OP_CRRANGE: case OP_CRMINRANGE: minimize = (*ecode == OP_CRMINRANGE); min = GET2(ecode, 1); max = GET2(ecode, 3); if (max == 0) max = INT_MAX; ecode += 5; break; default: /* No repeat follows */ min = max = 1; break; } /* First, ensure the minimum number of matches are present. */ #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { for (i = 1; i <= min; i++) { if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); if (c > 255) { if (op == OP_CLASS) RRETURN(MATCH_NOMATCH); } else { if ((data[c/8] & (1 << (c&7))) == 0) RRETURN(MATCH_NOMATCH); } } } else #endif /* Not UTF-8 mode */ { for (i = 1; i <= min; i++) { if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); c = *eptr++; if ((data[c/8] & (1 << (c&7))) == 0) RRETURN(MATCH_NOMATCH); } } /* If max == min we can continue with the main loop without the need to recurse. */ if (min == max) continue; /* If minimizing, keep testing the rest of the expression and advancing the pointer while it matches the class. */ if (minimize) { #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); if (c > 255) { if (op == OP_CLASS) RRETURN(MATCH_NOMATCH); } else { if ((data[c/8] & (1 << (c&7))) == 0) RRETURN(MATCH_NOMATCH); } } } else #endif /* Not UTF-8 mode */ { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); c = *eptr++; if ((data[c/8] & (1 << (c&7))) == 0) RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ } /* If maximizing, find the longest possible run, then work backwards. */ else { pp = eptr; #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c > 255) { if (op == OP_CLASS) break; } else { if ((data[c/8] & (1 << (c&7))) == 0) break; } eptr += len; } for (;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr); } } else #endif /* Not UTF-8 mode */ { for (i = min; i < max; i++) { if (eptr >= md->end_subject) break; c = *eptr; if ((data[c/8] & (1 << (c&7))) == 0) break; eptr++; } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); eptr--; if (rrc != MATCH_NOMATCH) RRETURN(rrc); } } RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ /* Match an extended character class. This opcode is encountered only in UTF-8 mode, because that's the only time it is compiled. */ #ifdef SUPPORT_UTF8 case OP_XCLASS: { data = ecode + 1 + LINK_SIZE; /* Save for matching */ ecode += GET(ecode, 1); /* Advance past the item */ switch (*ecode) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRPLUS: case OP_CRMINPLUS: case OP_CRQUERY: case OP_CRMINQUERY: c = *ecode++ - OP_CRSTAR; minimize = (c & 1) != 0; min = rep_min[c]; /* Pick up values from tables; */ max = rep_max[c]; /* zero for max => infinity */ if (max == 0) max = INT_MAX; break; case OP_CRRANGE: case OP_CRMINRANGE: minimize = (*ecode == OP_CRMINRANGE); min = GET2(ecode, 1); max = GET2(ecode, 3); if (max == 0) max = INT_MAX; ecode += 5; break; default: /* No repeat follows */ min = max = 1; break; } /* First, ensure the minimum number of matches are present. */ for (i = 1; i <= min; i++) { if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); if (!_pcre_xclass(c, data)) RRETURN(MATCH_NOMATCH); } /* If max == min we can continue with the main loop without the need to recurse. */ if (min == max) continue; /* If minimizing, keep testing the rest of the expression and advancing the pointer while it matches the class. */ if (minimize) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); if (!_pcre_xclass(c, data)) RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } /* If maximizing, find the longest possible run, then work backwards. */ else { pp = eptr; for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (!_pcre_xclass(c, data)) break; eptr += len; } for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr) } RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } #endif /* End of XCLASS */ /* Match a single character, casefully */ case OP_CHAR: #ifdef SUPPORT_UTF8 if (utf8) { length = 1; ecode++; GETCHARLEN(fc, ecode, length); if (length > md->end_subject - eptr) RRETURN(MATCH_NOMATCH); while (length-- > 0) if (*ecode++ != *eptr++) RRETURN(MATCH_NOMATCH); } else #endif /* Non-UTF-8 mode */ { if (md->end_subject - eptr < 1) RRETURN(MATCH_NOMATCH); if (ecode[1] != *eptr++) RRETURN(MATCH_NOMATCH); ecode += 2; } break; /* Match a single character, caselessly */ case OP_CHARNC: #ifdef SUPPORT_UTF8 if (utf8) { length = 1; ecode++; GETCHARLEN(fc, ecode, length); if (length > md->end_subject - eptr) RRETURN(MATCH_NOMATCH); /* If the pattern character's value is < 128, we have only one byte, and can use the fast lookup table. */ if (fc < 128) { if (md->lcc[*ecode++] != md->lcc[*eptr++]) RRETURN(MATCH_NOMATCH); } /* Otherwise we must pick up the subject character */ else { int dc; GETCHARINC(dc, eptr); ecode += length; /* If we have Unicode property support, we can use it to test the other case of the character, if there is one. The result of ucp_findchar() is < 0 if the char isn't found, and othercase is returned as zero if there isn't one. */ if (fc != dc) { #ifdef SUPPORT_UCP int chartype; int othercase; if (ucp_findchar(fc, &chartype, &othercase) < 0 || dc != othercase) #endif RRETURN(MATCH_NOMATCH); } } } else #endif /* SUPPORT_UTF8 */ /* Non-UTF-8 mode */ { if (md->end_subject - eptr < 1) RRETURN(MATCH_NOMATCH); if (md->lcc[ecode[1]] != md->lcc[*eptr++]) RRETURN(MATCH_NOMATCH); ecode += 2; } break; /* Match a single character repeatedly; different opcodes share code. */ case OP_EXACT: min = max = GET2(ecode, 1); ecode += 3; goto REPEATCHAR; case OP_UPTO: case OP_MINUPTO: min = 0; max = GET2(ecode, 1); minimize = *ecode == OP_MINUPTO; ecode += 3; goto REPEATCHAR; case OP_STAR: case OP_MINSTAR: case OP_PLUS: case OP_MINPLUS: case OP_QUERY: case OP_MINQUERY: c = *ecode++ - OP_STAR; minimize = (c & 1) != 0; min = rep_min[c]; /* Pick up values from tables; */ max = rep_max[c]; /* zero for max => infinity */ if (max == 0) max = INT_MAX; /* Common code for all repeated single-character matches. We can give up quickly if there are fewer than the minimum number of characters left in the subject. */ REPEATCHAR: #ifdef SUPPORT_UTF8 if (utf8) { length = 1; charptr = ecode; GETCHARLEN(fc, ecode, length); if (min * length > md->end_subject - eptr) RRETURN(MATCH_NOMATCH); ecode += length; /* Handle multibyte character matching specially here. There is support for caseless matching if UCP support is present. */ if (length > 1) { int oclength = 0; uschar occhars[8]; #ifdef SUPPORT_UCP int othercase; int chartype; if ((ims & PCRE_CASELESS) != 0 && ucp_findchar(fc, &chartype, &othercase) >= 0 && othercase > 0) oclength = _pcre_ord2utf8(othercase, occhars); #endif /* SUPPORT_UCP */ for (i = 1; i <= min; i++) { if (memcmp(eptr, charptr, length) == 0) eptr += length; /* Need braces because of following else */ else if (oclength == 0) { RRETURN(MATCH_NOMATCH); } else { if (memcmp(eptr, occhars, oclength) != 0) RRETURN(MATCH_NOMATCH); eptr += oclength; } } if (min == max) continue; if (minimize) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); if (memcmp(eptr, charptr, length) == 0) eptr += length; /* Need braces because of following else */ else if (oclength == 0) { RRETURN(MATCH_NOMATCH); } else { if (memcmp(eptr, occhars, oclength) != 0) RRETURN(MATCH_NOMATCH); eptr += oclength; } } /* Control never gets here */ } else { pp = eptr; for (i = min; i < max; i++) { if (eptr > md->end_subject - length) break; if (memcmp(eptr, charptr, length) == 0) eptr += length; else if (oclength == 0) break; else { if (memcmp(eptr, occhars, oclength) != 0) break; eptr += oclength; } } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); eptr -= length; } RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } /* If the length of a UTF-8 character is 1, we fall through here, and obey the code as for non-UTF-8 characters below, though in this case the value of fc will always be < 128. */ } else #endif /* SUPPORT_UTF8 */ /* When not in UTF-8 mode, load a single-byte character. */ { if (min > md->end_subject - eptr) RRETURN(MATCH_NOMATCH); fc = *ecode++; } /* The value of fc at this point is always less than 256, though we may or may not be in UTF-8 mode. The code is duplicated for the caseless and caseful cases, for speed, since matching characters is likely to be quite common. First, ensure the minimum number of matches are present. If min = max, continue at the same level without recursing. Otherwise, if minimizing, keep trying the rest of the expression and advancing one matching character if failing, up to the maximum. Alternatively, if maximizing, find the maximum number of characters and work backwards. */ DPRINTF(("matching %c{%d,%d} against subject %.*s\n", fc, min, max, max, eptr)); if ((ims & PCRE_CASELESS) != 0) { fc = md->lcc[fc]; for (i = 1; i <= min; i++) if (fc != md->lcc[*eptr++]) RRETURN(MATCH_NOMATCH); if (min == max) continue; if (minimize) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject || fc != md->lcc[*eptr++]) RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } else { pp = eptr; for (i = min; i < max; i++) { if (eptr >= md->end_subject || fc != md->lcc[*eptr]) break; eptr++; } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); eptr--; if (rrc != MATCH_NOMATCH) RRETURN(rrc); } RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } /* Caseful comparisons (includes all multi-byte characters) */ else { for (i = 1; i <= min; i++) if (fc != *eptr++) RRETURN(MATCH_NOMATCH); if (min == max) continue; if (minimize) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject || fc != *eptr++) RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } else { pp = eptr; for (i = min; i < max; i++) { if (eptr >= md->end_subject || fc != *eptr) break; eptr++; } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); eptr--; if (rrc != MATCH_NOMATCH) RRETURN(rrc); } RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ /* Match a negated single one-byte character. The character we are checking can be multibyte. */ case OP_NOT: if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); ecode++; GETCHARINCTEST(c, eptr); if ((ims & PCRE_CASELESS) != 0) { #ifdef SUPPORT_UTF8 if (c < 256) #endif c = md->lcc[c]; if (md->lcc[*ecode++] == c) RRETURN(MATCH_NOMATCH); } else { if (*ecode++ == c) RRETURN(MATCH_NOMATCH); } break; /* Match a negated single one-byte character repeatedly. This is almost a repeat of the code for a repeated single character, but I haven't found a nice way of commoning these up that doesn't require a test of the positive/negative option for each character match. Maybe that wouldn't add very much to the time taken, but character matching *is* what this is all about... */ case OP_NOTEXACT: min = max = GET2(ecode, 1); ecode += 3; goto REPEATNOTCHAR; case OP_NOTUPTO: case OP_NOTMINUPTO: min = 0; max = GET2(ecode, 1); minimize = *ecode == OP_NOTMINUPTO; ecode += 3; goto REPEATNOTCHAR; case OP_NOTSTAR: case OP_NOTMINSTAR: case OP_NOTPLUS: case OP_NOTMINPLUS: case OP_NOTQUERY: case OP_NOTMINQUERY: c = *ecode++ - OP_NOTSTAR; minimize = (c & 1) != 0; min = rep_min[c]; /* Pick up values from tables; */ max = rep_max[c]; /* zero for max => infinity */ if (max == 0) max = INT_MAX; /* Common code for all repeated single-byte matches. We can give up quickly if there are fewer than the minimum number of bytes left in the subject. */ REPEATNOTCHAR: if (min > md->end_subject - eptr) RRETURN(MATCH_NOMATCH); fc = *ecode++; /* The code is duplicated for the caseless and caseful cases, for speed, since matching characters is likely to be quite common. First, ensure the minimum number of matches are present. If min = max, continue at the same level without recursing. Otherwise, if minimizing, keep trying the rest of the expression and advancing one matching character if failing, up to the maximum. Alternatively, if maximizing, find the maximum number of characters and work backwards. */ DPRINTF(("negative matching %c{%d,%d} against subject %.*s\n", fc, min, max, max, eptr)); if ((ims & PCRE_CASELESS) != 0) { fc = md->lcc[fc]; #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { register int d; for (i = 1; i <= min; i++) { GETCHARINC(d, eptr); if (d < 256) d = md->lcc[d]; if (fc == d) RRETURN(MATCH_NOMATCH); } } else #endif /* Not UTF-8 mode */ { for (i = 1; i <= min; i++) if (fc == md->lcc[*eptr++]) RRETURN(MATCH_NOMATCH); } if (min == max) continue; if (minimize) { #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { register int d; for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); GETCHARINC(d, eptr); if (d < 256) d = md->lcc[d]; if (fi >= max || eptr >= md->end_subject || fc == d) RRETURN(MATCH_NOMATCH); } } else #endif /* Not UTF-8 mode */ { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject || fc == md->lcc[*eptr++]) RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ } /* Maximize case */ else { pp = eptr; #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { register int d; for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(d, eptr, len); if (d < 256) d = md->lcc[d]; if (fc == d) break; eptr += len; } for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr); } } else #endif /* Not UTF-8 mode */ { for (i = min; i < max; i++) { if (eptr >= md->end_subject || fc == md->lcc[*eptr]) break; eptr++; } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); eptr--; } } RRETURN(MATCH_NOMATCH); } /* Control never gets here */ } /* Caseful comparisons */ else { #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { register int d; for (i = 1; i <= min; i++) { GETCHARINC(d, eptr); if (fc == d) RRETURN(MATCH_NOMATCH); } } else #endif /* Not UTF-8 mode */ { for (i = 1; i <= min; i++) if (fc == *eptr++) RRETURN(MATCH_NOMATCH); } if (min == max) continue; if (minimize) { #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { register int d; for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); GETCHARINC(d, eptr); if (fi >= max || eptr >= md->end_subject || fc == d) RRETURN(MATCH_NOMATCH); } } else #endif /* Not UTF-8 mode */ { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject || fc == *eptr++) RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ } /* Maximize case */ else { pp = eptr; #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { register int d; for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(d, eptr, len); if (fc == d) break; eptr += len; } for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr); } } else #endif /* Not UTF-8 mode */ { for (i = min; i < max; i++) { if (eptr >= md->end_subject || fc == *eptr) break; eptr++; } while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); eptr--; } } RRETURN(MATCH_NOMATCH); } } /* Control never gets here */ /* Match a single character type repeatedly; several different opcodes share code. This is very similar to the code for single characters, but we repeat it in the interests of efficiency. */ case OP_TYPEEXACT: min = max = GET2(ecode, 1); minimize = TRUE; ecode += 3; goto REPEATTYPE; case OP_TYPEUPTO: case OP_TYPEMINUPTO: min = 0; max = GET2(ecode, 1); minimize = *ecode == OP_TYPEMINUPTO; ecode += 3; goto REPEATTYPE; case OP_TYPESTAR: case OP_TYPEMINSTAR: case OP_TYPEPLUS: case OP_TYPEMINPLUS: case OP_TYPEQUERY: case OP_TYPEMINQUERY: c = *ecode++ - OP_TYPESTAR; minimize = (c & 1) != 0; min = rep_min[c]; /* Pick up values from tables; */ max = rep_max[c]; /* zero for max => infinity */ if (max == 0) max = INT_MAX; /* Common code for all repeated single character type matches. Note that in UTF-8 mode, '.' matches a character of any length, but for the other character types, the valid characters are all one-byte long. */ REPEATTYPE: ctype = *ecode++; /* Code for the character type */ #ifdef SUPPORT_UCP if (ctype == OP_PROP || ctype == OP_NOTPROP) { prop_fail_result = ctype == OP_NOTPROP; prop_type = *ecode++; if (prop_type >= 128) { prop_test_against = prop_type - 128; prop_test_variable = &prop_category; } else { prop_test_against = prop_type; prop_test_variable = &prop_chartype; } } else prop_type = -1; #endif /* First, ensure the minimum number of matches are present. Use inline code for maximizing the speed, and do the type test once at the start (i.e. keep it out of the loop). Also we can test that there are at least the minimum number of bytes before we start. This isn't as effective in UTF-8 mode, but it does no harm. Separate the UTF-8 code completely as that is tidier. Also separate the UCP code, which can be the same for both UTF-8 and single-bytes. */ if (min > md->end_subject - eptr) RRETURN(MATCH_NOMATCH); if (min > 0) { #ifdef SUPPORT_UCP if (prop_type > 0) { for (i = 1; i <= min; i++) { GETCHARINC(c, eptr); prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if ((*prop_test_variable == prop_test_against) == prop_fail_result) RRETURN(MATCH_NOMATCH); } } /* Match extended Unicode sequences. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ else if (ctype == OP_EXTUNI) { for (i = 1; i <= min; i++) { GETCHARINCTEST(c, eptr); prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category == ucp_M) RRETURN(MATCH_NOMATCH); while (eptr < md->end_subject) { int len = 1; if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category != ucp_M) break; eptr += len; } } } else #endif /* SUPPORT_UCP */ /* Handle all other cases when the coding is UTF-8 */ #ifdef SUPPORT_UTF8 if (utf8) switch(ctype) { case OP_ANY: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || (*eptr++ == NEWLINE && (ims & PCRE_DOTALL) == 0)) RRETURN(MATCH_NOMATCH); while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } break; case OP_ANYBYTE: eptr += min; break; case OP_NOT_DIGIT: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); if (c < 128 && (md->ctypes[c] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); } break; case OP_DIGIT: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || *eptr >= 128 || (md->ctypes[*eptr++] & ctype_digit) == 0) RRETURN(MATCH_NOMATCH); /* No need to skip more bytes - we know it's a 1-byte character */ } break; case OP_NOT_WHITESPACE: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || (*eptr < 128 && (md->ctypes[*eptr++] & ctype_space) != 0)) RRETURN(MATCH_NOMATCH); while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } break; case OP_WHITESPACE: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || *eptr >= 128 || (md->ctypes[*eptr++] & ctype_space) == 0) RRETURN(MATCH_NOMATCH); /* No need to skip more bytes - we know it's a 1-byte character */ } break; case OP_NOT_WORDCHAR: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || (*eptr < 128 && (md->ctypes[*eptr++] & ctype_word) != 0)) RRETURN(MATCH_NOMATCH); while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } break; case OP_WORDCHAR: for (i = 1; i <= min; i++) { if (eptr >= md->end_subject || *eptr >= 128 || (md->ctypes[*eptr++] & ctype_word) == 0) RRETURN(MATCH_NOMATCH); /* No need to skip more bytes - we know it's a 1-byte character */ } break; default: RRETURN(PCRE_ERROR_INTERNAL); } /* End switch(ctype) */ else #endif /* SUPPORT_UTF8 */ /* Code for the non-UTF-8 case for minimum matching of operators other than OP_PROP and OP_NOTPROP. */ switch(ctype) { case OP_ANY: if ((ims & PCRE_DOTALL) == 0) { for (i = 1; i <= min; i++) if (*eptr++ == NEWLINE) RRETURN(MATCH_NOMATCH); } else eptr += min; break; case OP_ANYBYTE: eptr += min; break; case OP_NOT_DIGIT: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); break; case OP_DIGIT: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_digit) == 0) RRETURN(MATCH_NOMATCH); break; case OP_NOT_WHITESPACE: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_space) != 0) RRETURN(MATCH_NOMATCH); break; case OP_WHITESPACE: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_space) == 0) RRETURN(MATCH_NOMATCH); break; case OP_NOT_WORDCHAR: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_word) != 0) RRETURN(MATCH_NOMATCH); break; case OP_WORDCHAR: for (i = 1; i <= min; i++) if ((md->ctypes[*eptr++] & ctype_word) == 0) RRETURN(MATCH_NOMATCH); break; default: RRETURN(PCRE_ERROR_INTERNAL); } } /* If min = max, continue at the same level without recursing */ if (min == max) continue; /* If minimizing, we have to test the rest of the pattern before each subsequent match. Again, separate the UTF-8 case for speed, and also separate the UCP cases. */ if (minimize) { #ifdef SUPPORT_UCP if (prop_type > 0) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if ((*prop_test_variable == prop_test_against) == prop_fail_result) RRETURN(MATCH_NOMATCH); } } /* Match extended Unicode sequences. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ else if (ctype == OP_EXTUNI) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINCTEST(c, eptr); prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category == ucp_M) RRETURN(MATCH_NOMATCH); while (eptr < md->end_subject) { int len = 1; if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category != ucp_M) break; eptr += len; } } } else #endif /* SUPPORT_UCP */ #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); GETCHARINC(c, eptr); switch(ctype) { case OP_ANY: if ((ims & PCRE_DOTALL) == 0 && c == NEWLINE) RRETURN(MATCH_NOMATCH); break; case OP_ANYBYTE: break; case OP_NOT_DIGIT: if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); break; case OP_DIGIT: if (c >= 256 || (md->ctypes[c] & ctype_digit) == 0) RRETURN(MATCH_NOMATCH); break; case OP_NOT_WHITESPACE: if (c < 256 && (md->ctypes[c] & ctype_space) != 0) RRETURN(MATCH_NOMATCH); break; case OP_WHITESPACE: if (c >= 256 || (md->ctypes[c] & ctype_space) == 0) RRETURN(MATCH_NOMATCH); break; case OP_NOT_WORDCHAR: if (c < 256 && (md->ctypes[c] & ctype_word) != 0) RRETURN(MATCH_NOMATCH); break; case OP_WORDCHAR: if (c >= 256 || (md->ctypes[c] & ctype_word) == 0) RRETURN(MATCH_NOMATCH); break; default: RRETURN(PCRE_ERROR_INTERNAL); } } } else #endif /* Not UTF-8 mode */ { for (fi = min;; fi++) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); c = *eptr++; switch(ctype) { case OP_ANY: if ((ims & PCRE_DOTALL) == 0 && c == NEWLINE) RRETURN(MATCH_NOMATCH); break; case OP_ANYBYTE: break; case OP_NOT_DIGIT: if ((md->ctypes[c] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); break; case OP_DIGIT: if ((md->ctypes[c] & ctype_digit) == 0) RRETURN(MATCH_NOMATCH); break; case OP_NOT_WHITESPACE: if ((md->ctypes[c] & ctype_space) != 0) RRETURN(MATCH_NOMATCH); break; case OP_WHITESPACE: if ((md->ctypes[c] & ctype_space) == 0) RRETURN(MATCH_NOMATCH); break; case OP_NOT_WORDCHAR: if ((md->ctypes[c] & ctype_word) != 0) RRETURN(MATCH_NOMATCH); break; case OP_WORDCHAR: if ((md->ctypes[c] & ctype_word) == 0) RRETURN(MATCH_NOMATCH); break; default: RRETURN(PCRE_ERROR_INTERNAL); } } } /* Control never gets here */ } /* If maximizing it is worth using inline code for speed, doing the type test once at the start (i.e. keep it out of the loop). Again, keep the UTF-8 and UCP stuff separate. */ else { pp = eptr; /* Remember where we started */ #ifdef SUPPORT_UCP if (prop_type > 0) { for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if ((*prop_test_variable == prop_test_against) == prop_fail_result) break; eptr+= len; } /* eptr is now past the end of the maximum run */ for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr); } } /* Match extended Unicode sequences. We will get here only if the support is in the binary; otherwise a compile-time error occurs. */ else if (ctype == OP_EXTUNI) { for (i = min; i < max; i++) { if (eptr >= md->end_subject) break; GETCHARINCTEST(c, eptr); prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category == ucp_M) break; while (eptr < md->end_subject) { int len = 1; if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category != ucp_M) break; eptr += len; } } /* eptr is now past the end of the maximum run */ for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ for (;;) /* Move back over one extended */ { int len = 1; BACKCHAR(eptr); if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase); if (prop_category != ucp_M) break; eptr--; } } } else #endif /* SUPPORT_UCP */ #ifdef SUPPORT_UTF8 /* UTF-8 mode */ if (utf8) { switch(ctype) { case OP_ANY: /* Special code is required for UTF8, but when the maximum is unlimited we don't need it, so we repeat the non-UTF8 code. This is probably worth it, because .* is quite a common idiom. */ if (max < INT_MAX) { if ((ims & PCRE_DOTALL) == 0) { for (i = min; i < max; i++) { if (eptr >= md->end_subject || *eptr == NEWLINE) break; eptr++; while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } } else { for (i = min; i < max; i++) { eptr++; while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; } } } /* Handle unlimited UTF-8 repeat */ else { if ((ims & PCRE_DOTALL) == 0) { for (i = min; i < max; i++) { if (eptr >= md->end_subject || *eptr == NEWLINE) break; eptr++; } break; } else { c = max - min; if (c > md->end_subject - eptr) c = md->end_subject - eptr; eptr += c; } } break; /* The byte case is the same as non-UTF8 */ case OP_ANYBYTE: c = max - min; if (c > md->end_subject - eptr) c = md->end_subject - eptr; eptr += c; break; case OP_NOT_DIGIT: for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) break; eptr+= len; } break; case OP_DIGIT: for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c >= 256 ||(md->ctypes[c] & ctype_digit) == 0) break; eptr+= len; } break; case OP_NOT_WHITESPACE: for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c < 256 && (md->ctypes[c] & ctype_space) != 0) break; eptr+= len; } break; case OP_WHITESPACE: for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c >= 256 ||(md->ctypes[c] & ctype_space) == 0) break; eptr+= len; } break; case OP_NOT_WORDCHAR: for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c < 256 && (md->ctypes[c] & ctype_word) != 0) break; eptr+= len; } break; case OP_WORDCHAR: for (i = min; i < max; i++) { int len = 1; if (eptr >= md->end_subject) break; GETCHARLEN(c, eptr, len); if (c >= 256 || (md->ctypes[c] & ctype_word) == 0) break; eptr+= len; } break; default: RRETURN(PCRE_ERROR_INTERNAL); } /* eptr is now past the end of the maximum run */ for(;;) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (eptr-- == pp) break; /* Stop if tried at original pos */ BACKCHAR(eptr); } } else #endif /* Not UTF-8 mode */ { switch(ctype) { case OP_ANY: if ((ims & PCRE_DOTALL) == 0) { for (i = min; i < max; i++) { if (eptr >= md->end_subject || *eptr == NEWLINE) break; eptr++; } break; } /* For DOTALL case, fall through and treat as \C */ case OP_ANYBYTE: c = max - min; if (c > md->end_subject - eptr) c = md->end_subject - eptr; eptr += c; break; case OP_NOT_DIGIT: for (i = min; i < max; i++) { if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_digit) != 0) break; eptr++; } break; case OP_DIGIT: for (i = min; i < max; i++) { if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_digit) == 0) break; eptr++; } break; case OP_NOT_WHITESPACE: for (i = min; i < max; i++) { if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_space) != 0) break; eptr++; } break; case OP_WHITESPACE: for (i = min; i < max; i++) { if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_space) == 0) break; eptr++; } break; case OP_NOT_WORDCHAR: for (i = min; i < max; i++) { if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_word) != 0) break; eptr++; } break; case OP_WORDCHAR: for (i = min; i < max; i++) { if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_word) == 0) break; eptr++; } break; default: RRETURN(PCRE_ERROR_INTERNAL); } /* eptr is now past the end of the maximum run */ while (eptr >= pp) { RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0); eptr--; if (rrc != MATCH_NOMATCH) RRETURN(rrc); } } /* Get here if we can't make it match with any permitted repetitions */ RRETURN(MATCH_NOMATCH); } /* Control never gets here */ /* There's been some horrible disaster. Since all codes > OP_BRA are for capturing brackets, and there shouldn't be any gaps between 0 and OP_BRA, arrival here can only mean there is something seriously wrong in the code above or the OP_xxx definitions. */ default: DPRINTF(("Unknown opcode %d\n", *ecode)); RRETURN(PCRE_ERROR_UNKNOWN_NODE); } /* Do not stick any code in here without much thought; it is assumed that "continue" in the code above comes out to here to repeat the main loop. */ } /* End of main loop */ /* Control never reaches here */ } /*************************************************************************** **************************************************************************** RECURSION IN THE match() FUNCTION Undefine all the macros that were defined above to handle this. */ #ifdef NO_RECURSE #undef eptr #undef ecode #undef offset_top #undef ims #undef eptrb #undef flags #undef callpat #undef charptr #undef data #undef next #undef pp #undef prev #undef saved_eptr #undef new_recursive #undef cur_is_word #undef condition #undef minimize #undef prev_is_word #undef original_ims #undef ctype #undef length #undef max #undef min #undef number #undef offset #undef op #undef save_capture_last #undef save_offset1 #undef save_offset2 #undef save_offset3 #undef stacksave #undef newptrb #endif /* These two are defined as macros in both cases */ #undef fc #undef fi /*************************************************************************** ***************************************************************************/ /************************************************* * Execute a Regular Expression * *************************************************/ /* This function applies a compiled re to a subject string and picks out portions of the string if it matches. Two elements in the vector are set for each substring: the offsets to the start and end of the substring. Arguments: argument_re points to the compiled expression extra_data points to extra data or is NULL subject points to the subject string length length of subject string (may contain binary zeros) start_offset where to start in the subject string options option bits offsets points to a vector of ints to be filled in with offsets offsetcount the number of elements in the vector Returns: > 0 => success; value is the number of elements filled in = 0 => success, but offsets is not big enough -1 => failed to match < -1 => some kind of unexpected problem */ EXPORT int pcre_exec(const pcre *argument_re, const pcre_extra *extra_data, const char *subject, int length, int start_offset, int options, int *offsets, int offsetcount) { int rc, resetcount, ocount; int first_byte = -1; int req_byte = -1; int req_byte2 = -1; unsigned long int ims = 0; BOOL using_temporary_offsets = FALSE; BOOL anchored; BOOL startline; BOOL firstline; BOOL first_byte_caseless = FALSE; BOOL req_byte_caseless = FALSE; match_data match_block; const uschar *tables; const uschar *start_bits = NULL; const uschar *start_match = (const uschar *)subject + start_offset; const uschar *end_subject; const uschar *req_byte_ptr = start_match - 1; pcre_study_data internal_study; const pcre_study_data *study; real_pcre internal_re; const real_pcre *external_re = (const real_pcre *)argument_re; const real_pcre *re = external_re; /* Plausibility checks */ if ((options & ~PUBLIC_EXEC_OPTIONS) != 0) return PCRE_ERROR_BADOPTION; if (re == NULL || subject == NULL || (offsets == NULL && offsetcount > 0)) return PCRE_ERROR_NULL; if (offsetcount < 0) return PCRE_ERROR_BADCOUNT; /* Fish out the optional data from the extra_data structure, first setting the default values. */ study = NULL; match_block.match_limit = MATCH_LIMIT; match_block.callout_data = NULL; /* The table pointer is always in native byte order. */ tables = external_re->tables; if (extra_data != NULL) { register unsigned int flags = extra_data->flags; if ((flags & PCRE_EXTRA_STUDY_DATA) != 0) study = (const pcre_study_data *)extra_data->study_data; if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0) match_block.match_limit = extra_data->match_limit; if ((flags & PCRE_EXTRA_CALLOUT_DATA) != 0) match_block.callout_data = extra_data->callout_data; if ((flags & PCRE_EXTRA_TABLES) != 0) tables = extra_data->tables; } /* If the exec call supplied NULL for tables, use the inbuilt ones. This is a feature that makes it possible to save compiled regex and re-use them in other programs later. */ if (tables == NULL) tables = _pcre_default_tables; /* Check that the first field in the block is the magic number. If it is not, test for a regex that was compiled on a host of opposite endianness. If this is the case, flipped values are put in internal_re and internal_study if there was study data too. */ if (re->magic_number != MAGIC_NUMBER) { re = _pcre_try_flipped(re, &internal_re, study, &internal_study); if (re == NULL) return PCRE_ERROR_BADMAGIC; if (study != NULL) study = &internal_study; } /* Set up other data */ anchored = ((re->options | options) & PCRE_ANCHORED) != 0; startline = (re->options & PCRE_STARTLINE) != 0; firstline = (re->options & PCRE_FIRSTLINE) != 0; /* The code starts after the real_pcre block and the capture name table. */ match_block.start_code = (const uschar *)external_re + re->name_table_offset + re->name_count * re->name_entry_size; match_block.start_subject = (const uschar *)subject; match_block.start_offset = start_offset; match_block.end_subject = match_block.start_subject + length; end_subject = match_block.end_subject; match_block.endonly = (re->options & PCRE_DOLLAR_ENDONLY) != 0; match_block.utf8 = (re->options & PCRE_UTF8) != 0; match_block.notbol = (options & PCRE_NOTBOL) != 0; match_block.noteol = (options & PCRE_NOTEOL) != 0; match_block.notempty = (options & PCRE_NOTEMPTY) != 0; match_block.partial = (options & PCRE_PARTIAL) != 0; match_block.hitend = FALSE; match_block.recursive = NULL; /* No recursion at top level */ match_block.lcc = tables + lcc_offset; match_block.ctypes = tables + ctypes_offset; /* Partial matching is supported only for a restricted set of regexes at the moment. */ if (match_block.partial && (re->options & PCRE_NOPARTIAL) != 0) return PCRE_ERROR_BADPARTIAL; /* Check a UTF-8 string if required. Unfortunately there's no way of passing back the character offset. */ #ifdef SUPPORT_UTF8 if (match_block.utf8 && (options & PCRE_NO_UTF8_CHECK) == 0) { if (_pcre_valid_utf8((uschar *)subject, length) >= 0) return PCRE_ERROR_BADUTF8; if (start_offset > 0 && start_offset < length) { int tb = ((uschar *)subject)[start_offset]; if (tb > 127) { tb &= 0xc0; if (tb != 0 && tb != 0xc0) return PCRE_ERROR_BADUTF8_OFFSET; } } } #endif /* The ims options can vary during the matching as a result of the presence of (?ims) items in the pattern. They are kept in a local variable so that restoring at the exit of a group is easy. */ ims = re->options & (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL); /* If the expression has got more back references than the offsets supplied can hold, we get a temporary chunk of working store to use during the matching. Otherwise, we can use the vector supplied, rounding down its size to a multiple of 3. */ ocount = offsetcount - (offsetcount % 3); if (re->top_backref > 0 && re->top_backref >= ocount/3) { ocount = re->top_backref * 3 + 3; match_block.offset_vector = (int *)(pcre_malloc)(ocount * sizeof(int)); if (match_block.offset_vector == NULL) return PCRE_ERROR_NOMEMORY; using_temporary_offsets = TRUE; DPRINTF(("Got memory to hold back references\n")); } else match_block.offset_vector = offsets; match_block.offset_end = ocount; match_block.offset_max = (2*ocount)/3; match_block.offset_overflow = FALSE; match_block.capture_last = -1; /* Compute the minimum number of offsets that we need to reset each time. Doing this makes a huge difference to execution time when there aren't many brackets in the pattern. */ resetcount = 2 + re->top_bracket * 2; if (resetcount > offsetcount) resetcount = ocount; /* Reset the working variable associated with each extraction. These should never be used unless previously set, but they get saved and restored, and so we initialize them to avoid reading uninitialized locations. */ if (match_block.offset_vector != NULL) { register int *iptr = match_block.offset_vector + ocount; register int *iend = iptr - resetcount/2 + 1; while (--iptr >= iend) *iptr = -1; } /* Set up the first character to match, if available. The first_byte value is never set for an anchored regular expression, but the anchoring may be forced at run time, so we have to test for anchoring. The first char may be unset for an unanchored pattern, of course. If there's no first char and the pattern was studied, there may be a bitmap of possible first characters. */ if (!anchored) { if ((re->options & PCRE_FIRSTSET) != 0) { first_byte = re->first_byte & 255; if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE) first_byte = match_block.lcc[first_byte]; } else if (!startline && study != NULL && (study->options & PCRE_STUDY_MAPPED) != 0) start_bits = study->start_bits; } /* For anchored or unanchored matches, there may be a "last known required character" set. */ if ((re->options & PCRE_REQCHSET) != 0) { req_byte = re->req_byte & 255; req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0; req_byte2 = (tables + fcc_offset)[req_byte]; /* case flipped */ } /* Loop for handling unanchored repeated matching attempts; for anchored regexs the loop runs just once. */ do { const uschar *save_end_subject = end_subject; /* Reset the maximum number of extractions we might see. */ if (match_block.offset_vector != NULL) { register int *iptr = match_block.offset_vector; register int *iend = iptr + resetcount; while (iptr < iend) *iptr++ = -1; } /* Advance to a unique first char if possible. If firstline is TRUE, the start of the match is constrained to the first line of a multiline string. Implement this by temporarily adjusting end_subject so that we stop scanning at a newline. If the match fails at the newline, later code breaks this loop. */ if (firstline) { const uschar *t = start_match; while (t < save_end_subject && *t != '\n') t++; end_subject = t; } /* Now test for a unique first byte */ if (first_byte >= 0) { if (first_byte_caseless) while (start_match < end_subject && match_block.lcc[*start_match] != first_byte) start_match++; else while (start_match < end_subject && *start_match != first_byte) start_match++; } /* Or to just after \n for a multiline match if possible */ else if (startline) { if (start_match > match_block.start_subject + start_offset) { while (start_match < end_subject && start_match[-1] != NEWLINE) start_match++; } } /* Or to a non-unique first char after study */ else if (start_bits != NULL) { while (start_match < end_subject) { register unsigned int c = *start_match; if ((start_bits[c/8] & (1 << (c&7))) == 0) start_match++; else break; } } /* Restore fudged end_subject */ end_subject = save_end_subject; #ifdef DEBUG /* Sigh. Some compilers never learn. */ printf(">>>> Match against: "); pchars(start_match, end_subject - start_match, TRUE, &match_block); printf("\n"); #endif /* If req_byte is set, we know that that character must appear in the subject for the match to succeed. If the first character is set, req_byte must be later in the subject; otherwise the test starts at the match point. This optimization can save a huge amount of backtracking in patterns with nested unlimited repeats that aren't going to match. Writing separate code for cased/caseless versions makes it go faster, as does using an autoincrement and backing off on a match. HOWEVER: when the subject string is very, very long, searching to its end can take a long time, and give bad performance on quite ordinary patterns. This showed up when somebody was matching /^C/ on a 32-megabyte string... so we don't do this when the string is sufficiently long. ALSO: this processing is disabled when partial matching is requested. */ if (req_byte >= 0 && end_subject - start_match < REQ_BYTE_MAX && !match_block.partial) { register const uschar *p = start_match + ((first_byte >= 0)? 1 : 0); /* We don't need to repeat the search if we haven't yet reached the place we found it at last time. */ if (p > req_byte_ptr) { if (req_byte_caseless) { while (p < end_subject) { register int pp = *p++; if (pp == req_byte || pp == req_byte2) { p--; break; } } } else { while (p < end_subject) { if (*p++ == req_byte) { p--; break; } } } /* If we can't find the required character, break the matching loop */ if (p >= end_subject) break; /* If we have found the required character, save the point where we found it, so that we don't search again next time round the loop if the start hasn't passed this character yet. */ req_byte_ptr = p; } } /* When a match occurs, substrings will be set for all internal extractions; we just need to set up the whole thing as substring 0 before returning. If there were too many extractions, set the return code to zero. In the case where we had to get some local store to hold offsets for backreferences, copy those back references that we can. In this case there need not be overflow if certain parts of the pattern were not used. */ match_block.start_match = start_match; match_block.match_call_count = 0; rc = match(start_match, match_block.start_code, 2, &match_block, ims, NULL, match_isgroup); /* When the result is no match, if the subject's first character was a newline and the PCRE_FIRSTLINE option is set, break (which will return PCRE_ERROR_NOMATCH). The option requests that a match occur before the first newline in the subject. Otherwise, advance the pointer to the next character and continue - but the continuation will actually happen only when the pattern is not anchored. */ if (rc == MATCH_NOMATCH) { if (firstline && *start_match == NEWLINE) break; start_match++; #ifdef SUPPORT_UTF8 if (match_block.utf8) while(start_match < end_subject && (*start_match & 0xc0) == 0x80) start_match++; #endif continue; } if (rc != MATCH_MATCH) { DPRINTF((">>>> error: returning %d\n", rc)); return rc; } /* We have a match! Copy the offset information from temporary store if necessary */ if (using_temporary_offsets) { if (offsetcount >= 4) { memcpy(offsets + 2, match_block.offset_vector + 2, (offsetcount - 2) * sizeof(int)); DPRINTF(("Copied offsets from temporary memory\n")); } if (match_block.end_offset_top > offsetcount) match_block.offset_overflow = TRUE; DPRINTF(("Freeing temporary memory\n")); (pcre_free)(match_block.offset_vector); } rc = match_block.offset_overflow? 0 : match_block.end_offset_top/2; if (offsetcount < 2) rc = 0; else { offsets[0] = start_match - match_block.start_subject; offsets[1] = match_block.end_match_ptr - match_block.start_subject; } DPRINTF((">>>> returning %d\n", rc)); return rc; } /* This "while" is the end of the "do" above */ while (!anchored && start_match <= end_subject); if (using_temporary_offsets) { DPRINTF(("Freeing temporary memory\n")); (pcre_free)(match_block.offset_vector); } if (match_block.partial && match_block.hitend) { DPRINTF((">>>> returning PCRE_ERROR_PARTIAL\n")); return PCRE_ERROR_PARTIAL; } else { DPRINTF((">>>> returning PCRE_ERROR_NOMATCH\n")); return PCRE_ERROR_NOMATCH; } } /* End of pcre_exec.c */ ================================================ FILE: Project/Pcre/Source/pcre_fullinfo.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /*PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_fullinfo(), which returns information about a compiled pattern. */ #include "pcre_internal.h" /************************************************* * Return info about compiled pattern * *************************************************/ /* This is a newer "info" function which has an extensible interface so that additional items can be added compatibly. Arguments: argument_re points to compiled code extra_data points extra data, or NULL what what information is required where where to put the information Returns: 0 if data returned, negative on error */ EXPORT int pcre_fullinfo(const pcre *argument_re, const pcre_extra *extra_data, int what, void *where) { real_pcre internal_re; pcre_study_data internal_study; const real_pcre *re = (const real_pcre *)argument_re; const pcre_study_data *study = NULL; if (re == NULL || where == NULL) return PCRE_ERROR_NULL; if (extra_data != NULL && (extra_data->flags & PCRE_EXTRA_STUDY_DATA) != 0) study = (const pcre_study_data *)extra_data->study_data; if (re->magic_number != MAGIC_NUMBER) { re = _pcre_try_flipped(re, &internal_re, study, &internal_study); if (re == NULL) return PCRE_ERROR_BADMAGIC; if (study != NULL) study = &internal_study; } switch (what) { case PCRE_INFO_OPTIONS: *((unsigned long int *)where) = re->options & PUBLIC_OPTIONS; break; case PCRE_INFO_SIZE: *((size_t *)where) = re->size; break; case PCRE_INFO_STUDYSIZE: *((size_t *)where) = (study == NULL)? 0 : study->size; break; case PCRE_INFO_CAPTURECOUNT: *((int *)where) = re->top_bracket; break; case PCRE_INFO_BACKREFMAX: *((int *)where) = re->top_backref; break; case PCRE_INFO_FIRSTBYTE: *((int *)where) = ((re->options & PCRE_FIRSTSET) != 0)? re->first_byte : ((re->options & PCRE_STARTLINE) != 0)? -1 : -2; break; /* Make sure we pass back the pointer to the bit vector in the external block, not the internal copy (with flipped integer fields). */ case PCRE_INFO_FIRSTTABLE: *((const uschar **)where) = (study != NULL && (study->options & PCRE_STUDY_MAPPED) != 0)? ((const pcre_study_data *)extra_data->study_data)->start_bits : NULL; break; case PCRE_INFO_LASTLITERAL: *((int *)where) = ((re->options & PCRE_REQCHSET) != 0)? re->req_byte : -1; break; case PCRE_INFO_NAMEENTRYSIZE: *((int *)where) = re->name_entry_size; break; case PCRE_INFO_NAMECOUNT: *((int *)where) = re->name_count; break; case PCRE_INFO_NAMETABLE: *((const uschar **)where) = (const uschar *)re + re->name_table_offset; break; case PCRE_INFO_DEFAULT_TABLES: *((const uschar **)where) = (const uschar *)(_pcre_default_tables); break; default: return PCRE_ERROR_BADOPTION; } return 0; } /* End of pcre_fullinfo.c */ ================================================ FILE: Project/Pcre/Source/pcre_get.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains some convenience functions for extracting substrings from the subject string after a regex match has succeeded. The original idea for these functions came from Scott Wimer. */ #include "pcre_internal.h" /************************************************* * Find number for named string * *************************************************/ /* This function is used by the two extraction functions below, as well as being generally available. Arguments: code the compiled regex stringname the name whose number is required Returns: the number of the named parentheses, or a negative number (PCRE_ERROR_NOSUBSTRING) if not found */ int pcre_get_stringnumber(const pcre *code, const char *stringname) { int rc; int entrysize; int top, bot; uschar *nametable; if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMECOUNT, &top)) != 0) return rc; if (top <= 0) return PCRE_ERROR_NOSUBSTRING; if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMEENTRYSIZE, &entrysize)) != 0) return rc; if ((rc = pcre_fullinfo(code, NULL, PCRE_INFO_NAMETABLE, &nametable)) != 0) return rc; bot = 0; while (top > bot) { int mid = (top + bot) / 2; uschar *entry = nametable + entrysize*mid; int c = strcmp(stringname, (char *)(entry + 2)); if (c == 0) return (entry[0] << 8) + entry[1]; if (c > 0) bot = mid + 1; else top = mid; } return PCRE_ERROR_NOSUBSTRING; } /************************************************* * Copy captured string to given buffer * *************************************************/ /* This function copies a single captured substring into a given buffer. Note that we use memcpy() rather than strncpy() in case there are binary zeros in the string. Arguments: subject the subject string that was matched ovector pointer to the offsets table stringcount the number of substrings that were captured (i.e. the yield of the pcre_exec call, unless that was zero, in which case it should be 1/3 of the offset table size) stringnumber the number of the required substring buffer where to put the substring size the size of the buffer Returns: if successful: the length of the copied string, not including the zero that is put on the end; can be zero if not successful: PCRE_ERROR_NOMEMORY (-6) buffer too small PCRE_ERROR_NOSUBSTRING (-7) no such captured substring */ int pcre_copy_substring(const char *subject, int *ovector, int stringcount, int stringnumber, char *buffer, int size) { int yield; if (stringnumber < 0 || stringnumber >= stringcount) return PCRE_ERROR_NOSUBSTRING; stringnumber *= 2; yield = ovector[stringnumber+1] - ovector[stringnumber]; if (size < yield + 1) return PCRE_ERROR_NOMEMORY; memcpy(buffer, subject + ovector[stringnumber], yield); buffer[yield] = 0; return yield; } /************************************************* * Copy named captured string to given buffer * *************************************************/ /* This function copies a single captured substring into a given buffer, identifying it by name. Arguments: code the compiled regex subject the subject string that was matched ovector pointer to the offsets table stringcount the number of substrings that were captured (i.e. the yield of the pcre_exec call, unless that was zero, in which case it should be 1/3 of the offset table size) stringname the name of the required substring buffer where to put the substring size the size of the buffer Returns: if successful: the length of the copied string, not including the zero that is put on the end; can be zero if not successful: PCRE_ERROR_NOMEMORY (-6) buffer too small PCRE_ERROR_NOSUBSTRING (-7) no such captured substring */ int pcre_copy_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, char *buffer, int size) { int n = pcre_get_stringnumber(code, stringname); if (n <= 0) return n; return pcre_copy_substring(subject, ovector, stringcount, n, buffer, size); } /************************************************* * Copy all captured strings to new store * *************************************************/ /* This function gets one chunk of store and builds a list of pointers and all of the captured substrings in it. A NULL pointer is put on the end of the list. Arguments: subject the subject string that was matched ovector pointer to the offsets table stringcount the number of substrings that were captured (i.e. the yield of the pcre_exec call, unless that was zero, in which case it should be 1/3 of the offset table size) listptr set to point to the list of pointers Returns: if successful: 0 if not successful: PCRE_ERROR_NOMEMORY (-6) failed to get store */ int pcre_get_substring_list(const char *subject, int *ovector, int stringcount, const char ***listptr) { int i; int size = sizeof(char *); int double_count = stringcount * 2; char **stringlist; char *p; for (i = 0; i < double_count; i += 2) size += sizeof(char *) + ovector[i+1] - ovector[i] + 1; stringlist = (char **)(pcre_malloc)(size); if (stringlist == NULL) return PCRE_ERROR_NOMEMORY; *listptr = (const char **)stringlist; p = (char *)(stringlist + stringcount + 1); for (i = 0; i < double_count; i += 2) { int len = ovector[i+1] - ovector[i]; memcpy(p, subject + ovector[i], len); *stringlist++ = p; p += len; *p++ = 0; } *stringlist = NULL; return 0; } /************************************************* * Free store obtained by get_substring_list * *************************************************/ /* This function exists for the benefit of people calling PCRE from non-C programs that can call its functions, but not free() or (pcre_free)() directly. Argument: the result of a previous pcre_get_substring_list() Returns: nothing */ void pcre_free_substring_list(const char **pointer) { (pcre_free)((void *)pointer); } /************************************************* * Copy captured string to new store * *************************************************/ /* This function copies a single captured substring into a piece of new store Arguments: subject the subject string that was matched ovector pointer to the offsets table stringcount the number of substrings that were captured (i.e. the yield of the pcre_exec call, unless that was zero, in which case it should be 1/3 of the offset table size) stringnumber the number of the required substring stringptr where to put a pointer to the substring Returns: if successful: the length of the string, not including the zero that is put on the end; can be zero if not successful: PCRE_ERROR_NOMEMORY (-6) failed to get store PCRE_ERROR_NOSUBSTRING (-7) substring not present */ int pcre_get_substring(const char *subject, int *ovector, int stringcount, int stringnumber, const char **stringptr) { int yield; char *substring; if (stringnumber < 0 || stringnumber >= stringcount) return PCRE_ERROR_NOSUBSTRING; stringnumber *= 2; yield = ovector[stringnumber+1] - ovector[stringnumber]; substring = (char *)(pcre_malloc)(yield + 1); if (substring == NULL) return PCRE_ERROR_NOMEMORY; memcpy(substring, subject + ovector[stringnumber], yield); substring[yield] = 0; *stringptr = substring; return yield; } /************************************************* * Copy named captured string to new store * *************************************************/ /* This function copies a single captured substring, identified by name, into new store. Arguments: code the compiled regex subject the subject string that was matched ovector pointer to the offsets table stringcount the number of substrings that were captured (i.e. the yield of the pcre_exec call, unless that was zero, in which case it should be 1/3 of the offset table size) stringname the name of the required substring stringptr where to put the pointer Returns: if successful: the length of the copied string, not including the zero that is put on the end; can be zero if not successful: PCRE_ERROR_NOMEMORY (-6) couldn't get memory PCRE_ERROR_NOSUBSTRING (-7) no such captured substring */ int pcre_get_named_substring(const pcre *code, const char *subject, int *ovector, int stringcount, const char *stringname, const char **stringptr) { int n = pcre_get_stringnumber(code, stringname); if (n <= 0) return n; return pcre_get_substring(subject, ovector, stringcount, n, stringptr); } /************************************************* * Free store obtained by get_substring * *************************************************/ /* This function exists for the benefit of people calling PCRE from non-C programs that can call its functions, but not free() or (pcre_free)() directly. Argument: the result of a previous pcre_get_substring() Returns: nothing */ void pcre_free_substring(const char *pointer) { (pcre_free)((void *)pointer); } /* End of pcre_get.c */ ================================================ FILE: Project/Pcre/Source/pcre_globals.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains global variables that are exported by the PCRE library. PCRE is thread-clean and doesn't use any global variables in the normal sense. However, it calls memory allocation and freeing functions via the four indirections below, and it can optionally do callouts, using the fifth indirection. These values can be changed by the caller, but are shared between all threads. However, when compiling for Virtual Pascal, things are done differently, and global variables are not used (see pcre.in). */ #include "pcre_internal.h" #ifndef VPCOMPAT #ifdef __cplusplus extern "C" void *(*pcre_malloc)(size_t) = malloc; extern "C" void (*pcre_free)(void *) = free; extern "C" void *(*pcre_stack_malloc)(size_t) = malloc; extern "C" void (*pcre_stack_free)(void *) = free; extern "C" int (*pcre_callout)(pcre_callout_block *) = NULL; #else void *(*pcre_malloc)(size_t) = NULL;//malloc; void (*pcre_free)(void *) = NULL;//free; void *(*pcre_stack_malloc)(size_t) = NULL;//malloc; void (*pcre_stack_free)(void *) = NULL;//free; int (*pcre_callout)(pcre_callout_block *) = NULL; #endif #endif /* End of pcre_globals.c */ ================================================ FILE: Project/Pcre/Source/pcre_info.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_info(), which gives some information about a compiled pattern. However, use of this function is now deprecated, as it has been superseded by pcre_fullinfo(). */ #include "pcre_internal.h" /************************************************* * (Obsolete) Return info about compiled pattern * *************************************************/ /* This is the original "info" function. It picks potentially useful data out of the private structure, but its interface was too rigid. It remains for backwards compatibility. The public options are passed back in an int - though the re->options field has been expanded to a long int, all the public options at the low end of it, and so even on 16-bit systems this will still be OK. Therefore, I haven't changed the API for pcre_info(). Arguments: argument_re points to compiled code optptr where to pass back the options first_byte where to pass back the first character, or -1 if multiline and all branches start ^, or -2 otherwise Returns: number of capturing subpatterns or negative values on error */ EXPORT int pcre_info(const pcre *argument_re, int *optptr, int *first_byte) { real_pcre internal_re; const real_pcre *re = (const real_pcre *)argument_re; if (re == NULL) return PCRE_ERROR_NULL; if (re->magic_number != MAGIC_NUMBER) { re = _pcre_try_flipped(re, &internal_re, NULL, NULL); if (re == NULL) return PCRE_ERROR_BADMAGIC; } if (optptr != NULL) *optptr = (int)(re->options & PUBLIC_OPTIONS); if (first_byte != NULL) *first_byte = ((re->options & PCRE_FIRSTSET) != 0)? re->first_byte : ((re->options & PCRE_STARTLINE) != 0)? -1 : -2; return re->top_bracket; } /* End of pcre_info.c */ ================================================ FILE: Project/Pcre/Source/pcre_internal.h ================================================ /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This header contains definitions that are shared between the different modules, but which are not relevant to the exported API. This includes some functions whose names all begin with "_pcre_". */ /* Define DEBUG to get debugging output on stdout. */ /**** #define DEBUG ****/ /* Use a macro for debugging printing, 'cause that eliminates the use of #ifdef inline, and there are *still* stupid compilers about that don't like indented pre-processor statements, or at least there were when I first wrote this. After all, it had only been about 10 years then... */ #ifdef DEBUG #define DPRINTF(p) printf p #else #define DPRINTF(p) /*nothing*/ #endif /* Get the definitions provided by running "configure" */ #include "config.h" /* Standard C headers plus the external interface definition. The only time setjmp and stdarg are used is when NO_RECURSE is set. */ #include #include #include #include #include #include #include #include #ifndef PCRE_SPY #define PCRE_DEFINITION /* Win32 __declspec(export) trigger for .dll */ #endif /* We need to have types that specify unsigned 16-bit and 32-bit integers. We cannot determine these outside the compilation (e.g. by running a program as part of "configure") because PCRE is often cross-compiled for use on other systems. Instead we make use of the maximum sizes that are available at preprocessor time in standard C environments. */ #if USHRT_MAX == 65535 typedef unsigned short pcre_uint16; #elif UINT_MAX == 65535 typedef unsigned int pcre_uint16; #else #error Cannot determine a type for 16-bit unsigned integers #endif #if UINT_MAX == 4294967295 typedef unsigned int pcre_uint32; #elif ULONG_MAX == 4294967295 typedef unsigned long int pcre_uint32; #else #error Cannot determine a type for 32-bit unsigned integers #endif /* All character handling must be done as unsigned characters. Otherwise there are problems with top-bit-set characters and functions such as isspace(). However, we leave the interface to the outside world as char *, because that should make things easier for callers. We define a short type for unsigned char to save lots of typing. I tried "uchar", but it causes problems on Digital Unix, where it is defined in sys/types, so use "uschar" instead. */ typedef unsigned char uschar; /* Include the public PCRE header */ #include "pcre.h" /* Include the (copy of) the public ucp header, changing the external name into a private one. This does no harm, even if we aren't compiling UCP support. */ #define ucp_findchar _pcre_ucp_findchar #include "ucp.h" /* When compiling for use with the Virtual Pascal compiler, these functions need to have their names changed. PCRE must be compiled with the -DVPCOMPAT option on the command line. */ #ifdef VPCOMPAT #define strncmp(s1,s2,m) _strncmp(s1,s2,m) #define memcpy(d,s,n) _memcpy(d,s,n) #define memmove(d,s,n) _memmove(d,s,n) #define memset(s,c,n) _memset(s,c,n) #else /* VPCOMPAT */ /* To cope with SunOS4 and other systems that lack memmove() but have bcopy(), define a macro for memmove() if HAVE_MEMMOVE is false, provided that HAVE_BCOPY is set. Otherwise, include an emulating function for those systems that have neither (there some non-Unix environments where this is the case). This assumes that all calls to memmove are moving strings upwards in store, which is the case in PCRE. */ #if ! HAVE_MEMMOVE #undef memmove /* some systems may have a macro */ #if HAVE_BCOPY #define memmove(a, b, c) bcopy(b, a, c) #else /* HAVE_BCOPY */ void * pcre_memmove(unsigned char *dest, const unsigned char *src, size_t n) { int i; dest += n; src += n; for (i = 0; i < n; ++i) *(--dest) = *(--src); } #define memmove(a, b, c) pcre_memmove(a, b, c) #endif /* not HAVE_BCOPY */ #endif /* not HAVE_MEMMOVE */ #endif /* not VPCOMPAT */ /* PCRE keeps offsets in its compiled code as 2-byte quantities (always stored in big-endian order) by default. These are used, for example, to link from the start of a subpattern to its alternatives and its end. The use of 2 bytes per offset limits the size of the compiled regex to around 64K, which is big enough for almost everybody. However, I received a request for an even bigger limit. For this reason, and also to make the code easier to maintain, the storing and loading of offsets from the byte string is now handled by the macros that are defined here. The macros are controlled by the value of LINK_SIZE. This defaults to 2 in the config.h file, but can be overridden by using -D on the command line. This is automated on Unix systems via the "configure" command. */ #if LINK_SIZE == 2 #define PUT(a,n,d) \ (a[n] = (d) >> 8), \ (a[(n)+1] = (d) & 255) #define GET(a,n) \ (((a)[n] << 8) | (a)[(n)+1]) #define MAX_PATTERN_SIZE (1 << 16) #elif LINK_SIZE == 3 #define PUT(a,n,d) \ (a[n] = (d) >> 16), \ (a[(n)+1] = (d) >> 8), \ (a[(n)+2] = (d) & 255) #define GET(a,n) \ (((a)[n] << 16) | ((a)[(n)+1] << 8) | (a)[(n)+2]) #define MAX_PATTERN_SIZE (1 << 24) #elif LINK_SIZE == 4 #define PUT(a,n,d) \ (a[n] = (d) >> 24), \ (a[(n)+1] = (d) >> 16), \ (a[(n)+2] = (d) >> 8), \ (a[(n)+3] = (d) & 255) #define GET(a,n) \ (((a)[n] << 24) | ((a)[(n)+1] << 16) | ((a)[(n)+2] << 8) | (a)[(n)+3]) #define MAX_PATTERN_SIZE (1 << 30) /* Keep it positive */ #else #error LINK_SIZE must be either 2, 3, or 4 #endif /* Convenience macro defined in terms of the others */ #define PUTINC(a,n,d) PUT(a,n,d), a += LINK_SIZE /* PCRE uses some other 2-byte quantities that do not change when the size of offsets changes. There are used for repeat counts and for other things such as capturing parenthesis numbers in back references. */ #define PUT2(a,n,d) \ a[n] = (d) >> 8; \ a[(n)+1] = (d) & 255 #define GET2(a,n) \ (((a)[n] << 8) | (a)[(n)+1]) #define PUT2INC(a,n,d) PUT2(a,n,d), a += 2 /* When UTF-8 encoding is being used, a character is no longer just a single byte. The macros for character handling generate simple sequences when used in byte-mode, and more complicated ones for UTF-8 characters. */ #ifndef SUPPORT_UTF8 #define GETCHAR(c, eptr) c = *eptr; #define GETCHARTEST(c, eptr) c = *eptr; #define GETCHARINC(c, eptr) c = *eptr++; #define GETCHARINCTEST(c, eptr) c = *eptr++; #define GETCHARLEN(c, eptr, len) c = *eptr; #define BACKCHAR(eptr) #else /* SUPPORT_UTF8 */ /* Get the next UTF-8 character, not advancing the pointer. This is called when we know we are in UTF-8 mode. */ #define GETCHAR(c, eptr) \ c = *eptr; \ if ((c & 0xc0) == 0xc0) \ { \ int gcii; \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ for (gcii = 1; gcii <= gcaa; gcii++) \ { \ gcss -= 6; \ c |= (eptr[gcii] & 0x3f) << gcss; \ } \ } /* Get the next UTF-8 character, testing for UTF-8 mode, and not advancing the pointer. */ #define GETCHARTEST(c, eptr) \ c = *eptr; \ if (utf8 && (c & 0xc0) == 0xc0) \ { \ int gcii; \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ for (gcii = 1; gcii <= gcaa; gcii++) \ { \ gcss -= 6; \ c |= (eptr[gcii] & 0x3f) << gcss; \ } \ } /* Get the next UTF-8 character, advancing the pointer. This is called when we know we are in UTF-8 mode. */ #define GETCHARINC(c, eptr) \ c = *eptr++; \ if ((c & 0xc0) == 0xc0) \ { \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ while (gcaa-- > 0) \ { \ gcss -= 6; \ c |= (*eptr++ & 0x3f) << gcss; \ } \ } /* Get the next character, testing for UTF-8 mode, and advancing the pointer */ #define GETCHARINCTEST(c, eptr) \ c = *eptr++; \ if (utf8 && (c & 0xc0) == 0xc0) \ { \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ while (gcaa-- > 0) \ { \ gcss -= 6; \ c |= (*eptr++ & 0x3f) << gcss; \ } \ } /* Get the next UTF-8 character, not advancing the pointer, incrementing length if there are extra bytes. This is called when we know we are in UTF-8 mode. */ #define GETCHARLEN(c, eptr, len) \ c = *eptr; \ if ((c & 0xc0) == 0xc0) \ { \ int gcii; \ int gcaa = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & _pcre_utf8_table3[gcaa]) << gcss; \ for (gcii = 1; gcii <= gcaa; gcii++) \ { \ gcss -= 6; \ c |= (eptr[gcii] & 0x3f) << gcss; \ } \ len += gcaa; \ } /* If the pointer is not at the start of a character, move it back until it is. Called only in UTF-8 mode. */ #define BACKCHAR(eptr) while((*eptr & 0xc0) == 0x80) eptr--; #endif /* In case there is no definition of offsetof() provided - though any proper Standard C system should have one. */ #ifndef offsetof #define offsetof(p_type,field) ((size_t)&(((p_type *)0)->field)) #endif /* These are the public options that can change during matching. */ #define PCRE_IMS (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL) /* Private options flags start at the most significant end of the four bytes, but skip the top bit so we can use ints for convenience without getting tangled with negative values. The public options defined in pcre.h start at the least significant end. Make sure they don't overlap! */ #define PCRE_FIRSTSET 0x40000000 /* first_byte is set */ #define PCRE_REQCHSET 0x20000000 /* req_byte is set */ #define PCRE_STARTLINE 0x10000000 /* start after \n for multiline */ #define PCRE_ICHANGED 0x08000000 /* i option changes within regex */ #define PCRE_NOPARTIAL 0x04000000 /* can't use partial with this regex */ /* Options for the "extra" block produced by pcre_study(). */ #define PCRE_STUDY_MAPPED 0x01 /* a map of starting chars exists */ /* Masks for identifying the public options that are permitted at compile time, run time, or study time, respectively. */ #define PUBLIC_OPTIONS \ (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \ PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY|PCRE_UTF8| \ PCRE_NO_AUTO_CAPTURE|PCRE_NO_UTF8_CHECK|PCRE_AUTO_CALLOUT|PCRE_FIRSTLINE) #define PUBLIC_EXEC_OPTIONS \ (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \ PCRE_PARTIAL) #define PUBLIC_DFA_EXEC_OPTIONS \ (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY|PCRE_NO_UTF8_CHECK| \ PCRE_PARTIAL|PCRE_DFA_SHORTEST|PCRE_DFA_RESTART) #define PUBLIC_STUDY_OPTIONS 0 /* None defined */ /* Magic number to provide a small check against being handed junk. Also used to detect whether a pattern was compiled on a host of different endianness. */ #define MAGIC_NUMBER 0x50435245UL /* 'PCRE' */ /* Negative values for the firstchar and reqchar variables */ #define REQ_UNSET (-2) #define REQ_NONE (-1) /* The maximum remaining length of subject we are prepared to search for a req_byte match. */ #define REQ_BYTE_MAX 1000 /* Flags added to firstbyte or reqbyte; a "non-literal" item is either a variable-length repeat, or a anything other than literal characters. */ #define REQ_CASELESS 0x0100 /* indicates caselessness */ #define REQ_VARY 0x0200 /* reqbyte followed non-literal item */ /* Miscellaneous definitions */ typedef int BOOL; #define FALSE 0 #define TRUE 1 /* Escape items that are just an encoding of a particular data value. Note that ESC_n is defined as yet another macro, which is set in config.h to either \n (the default) or \r (which some people want). */ #ifndef ESC_e #define ESC_e 27 #endif #ifndef ESC_f #define ESC_f '\f' #endif #ifndef ESC_n #define ESC_n NEWLINE #endif #ifndef ESC_r #define ESC_r '\r' #endif /* We can't officially use ESC_t because it is a POSIX reserved identifier (presumably because of all the others like size_t). */ #ifndef ESC_tee #define ESC_tee '\t' #endif /* These are escaped items that aren't just an encoding of a particular data value such as \n. They must have non-zero values, as check_escape() returns their negation. Also, they must appear in the same order as in the opcode definitions below, up to ESC_z. There's a dummy for OP_ANY because it corresponds to "." rather than an escape sequence. The final one must be ESC_REF as subsequent values are used for \1, \2, \3, etc. There is are two tests in the code for an escape greater than ESC_b and less than ESC_Z to detect the types that may be repeated. These are the types that consume characters. If any new escapes are put in between that don't consume a character, that code will have to change. */ enum { ESC_A = 1, ESC_G, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, ESC_W, ESC_w, ESC_dum1, ESC_C, ESC_P, ESC_p, ESC_X, ESC_Z, ESC_z, ESC_E, ESC_Q, ESC_REF }; /* Flag bits and data types for the extended class (OP_XCLASS) for classes that contain UTF-8 characters with values greater than 255. */ #define XCL_NOT 0x01 /* Flag: this is a negative class */ #define XCL_MAP 0x02 /* Flag: a 32-byte map is present */ #define XCL_END 0 /* Marks end of individual items */ #define XCL_SINGLE 1 /* Single item (one multibyte char) follows */ #define XCL_RANGE 2 /* A range (two multibyte chars) follows */ #define XCL_PROP 3 /* Unicode property (one property code) follows */ #define XCL_NOTPROP 4 /* Unicode inverted property (ditto) */ /* Opcode table: OP_BRA must be last, as all values >= it are used for brackets that extract substrings. Starting from 1 (i.e. after OP_END), the values up to OP_EOD must correspond in order to the list of escapes immediately above. Note that whenever this list is updated, the two macro definitions that follow must also be updated to match. */ enum { OP_END, /* 0 End of pattern */ /* Values corresponding to backslashed metacharacters */ OP_SOD, /* 1 Start of data: \A */ OP_SOM, /* 2 Start of match (subject + offset): \G */ OP_NOT_WORD_BOUNDARY, /* 3 \B */ OP_WORD_BOUNDARY, /* 4 \b */ OP_NOT_DIGIT, /* 5 \D */ OP_DIGIT, /* 6 \d */ OP_NOT_WHITESPACE, /* 7 \S */ OP_WHITESPACE, /* 8 \s */ OP_NOT_WORDCHAR, /* 9 \W */ OP_WORDCHAR, /* 10 \w */ OP_ANY, /* 11 Match any character */ OP_ANYBYTE, /* 12 Match any byte (\C); different to OP_ANY for UTF-8 */ OP_NOTPROP, /* 13 \P (not Unicode property) */ OP_PROP, /* 14 \p (Unicode property) */ OP_EXTUNI, /* 15 \X (extended Unicode sequence */ OP_EODN, /* 16 End of data or \n at end of data: \Z. */ OP_EOD, /* 17 End of data: \z */ OP_OPT, /* 18 Set runtime options */ OP_CIRC, /* 19 Start of line - varies with multiline switch */ OP_DOLL, /* 20 End of line - varies with multiline switch */ OP_CHAR, /* 21 Match one character, casefully */ OP_CHARNC, /* 22 Match one character, caselessly */ OP_NOT, /* 23 Match anything but the following char */ OP_STAR, /* 24 The maximizing and minimizing versions of */ OP_MINSTAR, /* 25 all these opcodes must come in pairs, with */ OP_PLUS, /* 26 the minimizing one second. */ OP_MINPLUS, /* 27 This first set applies to single characters */ OP_QUERY, /* 28 */ OP_MINQUERY, /* 29 */ OP_UPTO, /* 30 From 0 to n matches */ OP_MINUPTO, /* 31 */ OP_EXACT, /* 32 Exactly n matches */ OP_NOTSTAR, /* 33 The maximizing and minimizing versions of */ OP_NOTMINSTAR, /* 34 all these opcodes must come in pairs, with */ OP_NOTPLUS, /* 35 the minimizing one second. */ OP_NOTMINPLUS, /* 36 This set applies to "not" single characters */ OP_NOTQUERY, /* 37 */ OP_NOTMINQUERY, /* 38 */ OP_NOTUPTO, /* 39 From 0 to n matches */ OP_NOTMINUPTO, /* 40 */ OP_NOTEXACT, /* 41 Exactly n matches */ OP_TYPESTAR, /* 42 The maximizing and minimizing versions of */ OP_TYPEMINSTAR, /* 43 all these opcodes must come in pairs, with */ OP_TYPEPLUS, /* 44 the minimizing one second. These codes must */ OP_TYPEMINPLUS, /* 45 be in exactly the same order as those above. */ OP_TYPEQUERY, /* 46 This set applies to character types such as \d */ OP_TYPEMINQUERY, /* 47 */ OP_TYPEUPTO, /* 48 From 0 to n matches */ OP_TYPEMINUPTO, /* 49 */ OP_TYPEEXACT, /* 50 Exactly n matches */ OP_CRSTAR, /* 51 The maximizing and minimizing versions of */ OP_CRMINSTAR, /* 52 all these opcodes must come in pairs, with */ OP_CRPLUS, /* 53 the minimizing one second. These codes must */ OP_CRMINPLUS, /* 54 be in exactly the same order as those above. */ OP_CRQUERY, /* 55 These are for character classes and back refs */ OP_CRMINQUERY, /* 56 */ OP_CRRANGE, /* 57 These are different to the three sets above. */ OP_CRMINRANGE, /* 58 */ OP_CLASS, /* 59 Match a character class, chars < 256 only */ OP_NCLASS, /* 60 Same, but the bitmap was created from a negative class - the difference is relevant only when a UTF-8 character > 255 is encountered. */ OP_XCLASS, /* 61 Extended class for handling UTF-8 chars within the class. This does both positive and negative. */ OP_REF, /* 62 Match a back reference */ OP_RECURSE, /* 63 Match a numbered subpattern (possibly recursive) */ OP_CALLOUT, /* 64 Call out to external function if provided */ OP_ALT, /* 65 Start of alternation */ OP_KET, /* 66 End of group that doesn't have an unbounded repeat */ OP_KETRMAX, /* 67 These two must remain together and in this */ OP_KETRMIN, /* 68 order. They are for groups the repeat for ever. */ /* The assertions must come before ONCE and COND */ OP_ASSERT, /* 69 Positive lookahead */ OP_ASSERT_NOT, /* 70 Negative lookahead */ OP_ASSERTBACK, /* 71 Positive lookbehind */ OP_ASSERTBACK_NOT, /* 72 Negative lookbehind */ OP_REVERSE, /* 73 Move pointer back - used in lookbehind assertions */ /* ONCE and COND must come after the assertions, with ONCE first, as there's a test for >= ONCE for a subpattern that isn't an assertion. */ OP_ONCE, /* 74 Once matched, don't back up into the subpattern */ OP_COND, /* 75 Conditional group */ OP_CREF, /* 76 Used to hold an extraction string number (cond ref) */ OP_BRAZERO, /* 77 These two must remain together and in this */ OP_BRAMINZERO, /* 78 order. */ OP_BRANUMBER, /* 79 Used for extracting brackets whose number is greater than can fit into an opcode. */ OP_BRA /* 80 This and greater values are used for brackets that extract substrings up to EXTRACT_BASIC_MAX. After that, use is made of OP_BRANUMBER. */ }; /* WARNING WARNING WARNING: There is an implicit assumption in pcre.c and study.c that all opcodes are less than 128 in value. This makes handling UTF-8 character sequences easier. */ /* The highest extraction number before we have to start using additional bytes. (Originally PCRE didn't have support for extraction counts highter than this number.) The value is limited by the number of opcodes left after OP_BRA, i.e. 255 - OP_BRA. We actually set it a bit lower to leave room for additional opcodes. */ #define EXTRACT_BASIC_MAX 100 /* This macro defines textual names for all the opcodes. These are used only for debugging. The macro is referenced only in pcre_printint.c. */ #define OP_NAME_LIST \ "End", "\\A", "\\G", "\\B", "\\b", "\\D", "\\d", \ "\\S", "\\s", "\\W", "\\w", "Any", "Anybyte", \ "notprop", "prop", "extuni", \ "\\Z", "\\z", \ "Opt", "^", "$", "char", "charnc", "not", \ "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ "*", "*?", "+", "+?", "?", "??", "{", "{", "{", \ "*", "*?", "+", "+?", "?", "??", "{", "{", \ "class", "nclass", "xclass", "Ref", "Recurse", "Callout", \ "Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", \ "AssertB", "AssertB not", "Reverse", "Once", "Cond", "Cond ref",\ "Brazero", "Braminzero", "Branumber", "Bra" /* This macro defines the length of fixed length operations in the compiled regex. The lengths are used when searching for specific things, and also in the debugging printing of a compiled regex. We use a macro so that it can be defined close to the definitions of the opcodes themselves. As things have been extended, some of these are no longer fixed lenths, but are minima instead. For example, the length of a single-character repeat may vary in UTF-8 mode. The code that uses this table must know about such things. */ #define OP_LENGTHS \ 1, /* End */ \ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* \A, \G, \B, \B, \D, \d, \S, \s, \W, \w */ \ 1, 1, /* Any, Anybyte */ \ 2, 2, 1, /* NOTPROP, PROP, EXTUNI */ \ 1, 1, 2, 1, 1, /* \Z, \z, Opt, ^, $ */ \ 2, /* Char - the minimum length */ \ 2, /* Charnc - the minimum length */ \ 2, /* not */ \ /* Positive single-char repeats ** These are */ \ 2, 2, 2, 2, 2, 2, /* *, *?, +, +?, ?, ?? ** minima in */ \ 4, 4, 4, /* upto, minupto, exact ** UTF-8 mode */ \ /* Negative single-char repeats - only for chars < 256 */ \ 2, 2, 2, 2, 2, 2, /* NOT *, *?, +, +?, ?, ?? */ \ 4, 4, 4, /* NOT upto, minupto, exact */ \ /* Positive type repeats */ \ 2, 2, 2, 2, 2, 2, /* Type *, *?, +, +?, ?, ?? */ \ 4, 4, 4, /* Type upto, minupto, exact */ \ /* Character class & ref repeats */ \ 1, 1, 1, 1, 1, 1, /* *, *?, +, +?, ?, ?? */ \ 5, 5, /* CRRANGE, CRMINRANGE */ \ 33, /* CLASS */ \ 33, /* NCLASS */ \ 0, /* XCLASS - variable length */ \ 3, /* REF */ \ 1+LINK_SIZE, /* RECURSE */ \ 2+2*LINK_SIZE, /* CALLOUT */ \ 1+LINK_SIZE, /* Alt */ \ 1+LINK_SIZE, /* Ket */ \ 1+LINK_SIZE, /* KetRmax */ \ 1+LINK_SIZE, /* KetRmin */ \ 1+LINK_SIZE, /* Assert */ \ 1+LINK_SIZE, /* Assert not */ \ 1+LINK_SIZE, /* Assert behind */ \ 1+LINK_SIZE, /* Assert behind not */ \ 1+LINK_SIZE, /* Reverse */ \ 1+LINK_SIZE, /* Once */ \ 1+LINK_SIZE, /* COND */ \ 3, /* CREF */ \ 1, 1, /* BRAZERO, BRAMINZERO */ \ 3, /* BRANUMBER */ \ 1+LINK_SIZE /* BRA */ \ /* A magic value for OP_CREF to indicate the "in recursion" condition. */ #define CREF_RECURSE 0xffff /* Error code numbers. They are given names so that they can more easily be tracked. */ enum { ERR0, ERR1, ERR2, ERR3, ERR4, ERR5, ERR6, ERR7, ERR8, ERR9, ERR10, ERR11, ERR12, ERR13, ERR14, ERR15, ERR16, ERR17, ERR18, ERR19, ERR20, ERR21, ERR22, ERR23, ERR24, ERR25, ERR26, ERR27, ERR28, ERR29, ERR30, ERR31, ERR32, ERR33, ERR34, ERR35, ERR36, ERR37, ERR38, ERR39, ERR40, ERR41, ERR42, ERR43, ERR44, ERR45, ERR46, ERR47 }; /* The real format of the start of the pcre block; the index of names and the code vector run on as long as necessary after the end. We store an explicit offset to the name table so that if a regex is compiled on one host, saved, and then run on another where the size of pointers is different, all might still be well. For the case of compiled-on-4 and run-on-8, we include an extra pointer that is always NULL. For future-proofing, a few dummy fields were originally included - even though you can never get this planning right - but there is only one left now. NOTE NOTE NOTE: Because people can now save and re-use compiled patterns, any additions to this structure should be made at the end, and something earlier (e.g. a new flag in the options or one of the dummy fields) should indicate that the new fields are present. Currently PCRE always sets the dummy fields to zero. NOTE NOTE NOTE: */ typedef struct real_pcre { pcre_uint32 magic_number; pcre_uint32 size; /* Total that was malloced */ pcre_uint32 options; pcre_uint32 dummy1; /* For future use, maybe */ pcre_uint16 top_bracket; pcre_uint16 top_backref; pcre_uint16 first_byte; pcre_uint16 req_byte; pcre_uint16 name_table_offset; /* Offset to name table that follows */ pcre_uint16 name_entry_size; /* Size of any name items */ pcre_uint16 name_count; /* Number of name items */ pcre_uint16 ref_count; /* Reference count */ const unsigned char *tables; /* Pointer to tables or NULL for std */ const unsigned char *nullpad; /* NULL padding */ } real_pcre; /* The format of the block used to store data from pcre_study(). The same remark (see NOTE above) about extending this structure applies. */ typedef struct pcre_study_data { pcre_uint32 size; /* Total that was malloced */ pcre_uint32 options; uschar start_bits[32]; } pcre_study_data; /* Structure for passing "static" information around between the functions doing the compiling, so that they are thread-safe. */ typedef struct compile_data { const uschar *lcc; /* Points to lower casing table */ const uschar *fcc; /* Points to case-flipping table */ const uschar *cbits; /* Points to character type table */ const uschar *ctypes; /* Points to table of type maps */ const uschar *start_code; /* The start of the compiled code */ const uschar *start_pattern; /* The start of the pattern */ uschar *name_table; /* The name/number table */ int names_found; /* Number of entries so far */ int name_entry_size; /* Size of each entry */ int top_backref; /* Maximum back reference */ unsigned int backref_map; /* Bitmap of low back refs */ int req_varyopt; /* "After variable item" flag for reqbyte */ BOOL nopartial; /* Set TRUE if partial won't work */ } compile_data; /* Structure for maintaining a chain of pointers to the currently incomplete branches, for testing for left recursion. */ typedef struct branch_chain { struct branch_chain *outer; uschar *current; } branch_chain; /* Structure for items in a linked list that represents an explicit recursive call within the pattern. */ typedef struct recursion_info { struct recursion_info *prevrec; /* Previous recursion record (or NULL) */ int group_num; /* Number of group that was called */ const uschar *after_call; /* "Return value": points after the call in the expr */ const uschar *save_start; /* Old value of md->start_match */ int *offset_save; /* Pointer to start of saved offsets */ int saved_max; /* Number of saved offsets */ } recursion_info; /* When compiling in a mode that doesn't use recursive calls to match(), a structure is used to remember local variables on the heap. It is defined in pcre.c, close to the match() function, so that it is easy to keep it in step with any changes of local variable. However, the pointer to the current frame must be saved in some "static" place over a longjmp(). We declare the structure here so that we can put a pointer in the match_data structure. NOTE: This isn't used for a "normal" compilation of pcre. */ struct heapframe; /* Structure for passing "static" information around between the functions doing traditional NFA matching, so that they are thread-safe. */ typedef struct match_data { unsigned long int match_call_count; /* As it says */ unsigned long int match_limit;/* As it says */ int *offset_vector; /* Offset vector */ int offset_end; /* One past the end */ int offset_max; /* The maximum usable for return data */ const uschar *lcc; /* Points to lower casing table */ const uschar *ctypes; /* Points to table of type maps */ BOOL offset_overflow; /* Set if too many extractions */ BOOL notbol; /* NOTBOL flag */ BOOL noteol; /* NOTEOL flag */ BOOL utf8; /* UTF8 flag */ BOOL endonly; /* Dollar not before final \n */ BOOL notempty; /* Empty string match not wanted */ BOOL partial; /* PARTIAL flag */ BOOL hitend; /* Hit the end of the subject at some point */ const uschar *start_code; /* For use when recursing */ const uschar *start_subject; /* Start of the subject string */ const uschar *end_subject; /* End of the subject string */ const uschar *start_match; /* Start of this match attempt */ const uschar *end_match_ptr; /* Subject position at end match */ int end_offset_top; /* Highwater mark at end of match */ int capture_last; /* Most recent capture number */ int start_offset; /* The start offset value */ recursion_info *recursive; /* Linked list of recursion data */ void *callout_data; /* To pass back to callouts */ struct heapframe *thisframe; /* Used only when compiling for no recursion */ } match_data; /* A similar structure is used for the same purpose by the DFA matching functions. */ typedef struct dfa_match_data { const uschar *start_code; /* Start of the compiled pattern */ const uschar *start_subject; /* Start of the subject string */ const uschar *end_subject; /* End of subject string */ const uschar *tables; /* Character tables */ int moptions; /* Match options */ int poptions; /* Pattern options */ void *callout_data; /* To pass back to callouts */ } dfa_match_data; /* Bit definitions for entries in the pcre_ctypes table. */ #define ctype_space 0x01 #define ctype_letter 0x02 #define ctype_digit 0x04 #define ctype_xdigit 0x08 #define ctype_word 0x10 /* alphameric or '_' */ #define ctype_meta 0x80 /* regexp meta char or zero (end pattern) */ /* Offsets for the bitmap tables in pcre_cbits. Each table contains a set of bits for a class map. Some classes are built by combining these tables. */ #define cbit_space 0 /* [:space:] or \s */ #define cbit_xdigit 32 /* [:xdigit:] */ #define cbit_digit 64 /* [:digit:] or \d */ #define cbit_upper 96 /* [:upper:] */ #define cbit_lower 128 /* [:lower:] */ #define cbit_word 160 /* [:word:] or \w */ #define cbit_graph 192 /* [:graph:] */ #define cbit_print 224 /* [:print:] */ #define cbit_punct 256 /* [:punct:] */ #define cbit_cntrl 288 /* [:cntrl:] */ #define cbit_length 320 /* Length of the cbits table */ /* Offsets of the various tables from the base tables pointer, and total length. */ #define lcc_offset 0 #define fcc_offset 256 #define cbits_offset 512 #define ctypes_offset (cbits_offset + cbit_length) #define tables_length (ctypes_offset + 256) /* Layout of the UCP type table that translates property names into codes for ucp_findchar(). */ typedef struct { const char *name; int value; } ucp_type_table; /* Internal shared data tables. These are tables that are used by more than one of the exported public functions. They have to be "external" in the C sense, but are not part of the PCRE public API. The data for these tables is in the pcre_tables.c module. */ extern const int _pcre_utf8_table1[]; extern const int _pcre_utf8_table2[]; extern const int _pcre_utf8_table3[]; extern const uschar _pcre_utf8_table4[]; extern const int _pcre_utf8_table1_size; extern const ucp_type_table _pcre_utt[]; extern const int _pcre_utt_size; extern const uschar _pcre_default_tables[]; extern const uschar _pcre_OP_lengths[]; /* Internal shared functions. These are functions that are used by more than one of the exported public functions. They have to be "external" in the C sense, but are not part of the PCRE public API. */ extern int _pcre_ord2utf8(int, uschar *); extern void _pcre_printint(pcre *, FILE *); extern real_pcre * _pcre_try_flipped(const real_pcre *, real_pcre *, const pcre_study_data *, pcre_study_data *); extern int _pcre_ucp_findchar(const int, int *, int *); extern int _pcre_valid_utf8(const uschar *, int); extern BOOL _pcre_xclass(int, const uschar *); /* End of pcre_internal.h */ ================================================ FILE: Project/Pcre/Source/pcre_maketables.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_maketables(), which builds character tables for PCRE in the current locale. The file is compiled on its own as part of the PCRE library. However, it is also included in the compilation of dftables.c, in which case the macro DFTABLES is defined. */ #ifndef DFTABLES #include "pcre_internal.h" #endif /************************************************* * Create PCRE character tables * *************************************************/ /* This function builds a set of character tables for use by PCRE and returns a pointer to them. They are build using the ctype functions, and consequently their contents will depend upon the current locale setting. When compiled as part of the library, the store is obtained via pcre_malloc(), but when compiled inside dftables, use malloc(). Arguments: none Returns: pointer to the contiguous block of data */ const unsigned char * pcre_maketables(void) { unsigned char *yield, *p; int i; #ifndef DFTABLES yield = (unsigned char*)(pcre_malloc)(tables_length); #else yield = (unsigned char*)malloc(tables_length); #endif if (yield == NULL) return NULL; p = yield; /* First comes the lower casing table */ for (i = 0; i < 256; i++) *p++ = (unsigned char)tolower(i); /* Next the case-flipping table */ for (i = 0; i < 256; i++) *p++ = islower(i)? toupper(i) : tolower(i); /* Then the character class tables. Don't try to be clever and save effort on exclusive ones - in some locales things may be different. Note that the table for "space" includes everything "isspace" gives, including VT in the default locale. This makes it work for the POSIX class [:space:]. */ memset(p, 0, cbit_length); for (i = 0; i < 256; i++) { if (isdigit(i)) { p[cbit_digit + i/8] |= 1 << (i&7); p[cbit_word + i/8] |= 1 << (i&7); } if (isupper(i)) { p[cbit_upper + i/8] |= 1 << (i&7); p[cbit_word + i/8] |= 1 << (i&7); } if (islower(i)) { p[cbit_lower + i/8] |= 1 << (i&7); p[cbit_word + i/8] |= 1 << (i&7); } if (i == '_') p[cbit_word + i/8] |= 1 << (i&7); if (isspace(i)) p[cbit_space + i/8] |= 1 << (i&7); if (isxdigit(i))p[cbit_xdigit + i/8] |= 1 << (i&7); if (isgraph(i)) p[cbit_graph + i/8] |= 1 << (i&7); if (isprint(i)) p[cbit_print + i/8] |= 1 << (i&7); if (ispunct(i)) p[cbit_punct + i/8] |= 1 << (i&7); if (iscntrl(i)) p[cbit_cntrl + i/8] |= 1 << (i&7); } p += cbit_length; /* Finally, the character type table. In this, we exclude VT from the white space chars, because Perl doesn't recognize it as such for \s and for comments within regexes. */ for (i = 0; i < 256; i++) { int x = 0; if (i != 0x0b && isspace(i)) x += ctype_space; if (isalpha(i)) x += ctype_letter; if (isdigit(i)) x += ctype_digit; if (isxdigit(i)) x += ctype_xdigit; if (isalnum(i) || i == '_') x += ctype_word; /* Note: strchr includes the terminating zero in the characters it considers. In this instance, that is ok because we want binary zero to be flagged as a meta-character, which in this sense is any character that terminates a run of data characters. */ if (strchr("*+?{^.$|()[", i) != 0) x += ctype_meta; *p++ = (unsigned char)x; } return yield; } /* End of pcre_maketables.c */ ================================================ FILE: Project/Pcre/Source/pcre_memory.c ================================================ #include "stdafx.h" #include "pcre_internal.h" void pcre_set_function_pointer(void* alloc,void* free) { pcre_malloc = alloc; pcre_stack_malloc = alloc; pcre_free = free; pcre_stack_free = free; pcre_callout = NULL; } ================================================ FILE: Project/Pcre/Source/pcre_memory.h ================================================ ================================================ FILE: Project/Pcre/Source/pcre_ord2utf8.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This file contains a private PCRE function that converts an ordinal character value into a UTF8 string. */ #include "pcre_internal.h" /************************************************* * Convert character value to UTF-8 * *************************************************/ /* This function takes an integer value in the range 0 - 0x7fffffff and encodes it as a UTF-8 character in 0 to 6 bytes. Arguments: cvalue the character value buffer pointer to buffer for result - at least 6 bytes long Returns: number of characters placed in the buffer */ EXPORT int _pcre_ord2utf8(int cvalue, uschar *buffer) { register int i, j; for (i = 0; i < _pcre_utf8_table1_size; i++) if (cvalue <= _pcre_utf8_table1[i]) break; buffer += i; for (j = i; j > 0; j--) { *buffer-- = 0x80 | (cvalue & 0x3f); cvalue >>= 6; } *buffer = _pcre_utf8_table2[i] | cvalue; return i + 1; } /* End of pcre_ord2utf8.c */ ================================================ FILE: Project/Pcre/Source/pcre_printint.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains an PCRE private debugging function for printing out the internal form of a compiled regular expression, along with some supporting local functions. */ #include "pcre_internal.h" static const char *OP_names[] = { OP_NAME_LIST }; /************************************************* * Print single- or multi-byte character * *************************************************/ static int print_char(FILE *f, uschar *ptr, BOOL utf8) { int c = *ptr; if (!utf8 || (c & 0xc0) != 0xc0) { if (isprint(c)) fprintf(f, "%c", c); else fprintf(f, "\\x%02x", c); return 0; } else { int i; int a = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ int s = 6*a; c = (c & _pcre_utf8_table3[a]) << s; for (i = 1; i <= a; i++) { /* This is a check for malformed UTF-8; it should only occur if the sanity check has been turned off. Rather than swallow random bytes, just stop if we hit a bad one. Print it with \X instead of \x as an indication. */ if ((ptr[i] & 0xc0) != 0x80) { fprintf(f, "\\X{%x}", c); return i - 1; } /* The byte is OK */ s -= 6; c |= (ptr[i] & 0x3f) << s; } if (c < 128) fprintf(f, "\\x%02x", c); else fprintf(f, "\\x{%x}", c); return a; } } /************************************************* * Find Unicode property name * *************************************************/ static const char * get_ucpname(int property) { #ifdef SUPPORT_UCP int i; for (i = _pcre_utt_size; i >= 0; i--) { if (property == _pcre_utt[i].value) break; } return (i >= 0)? _pcre_utt[i].name : "??"; #else return "??"; #endif } /************************************************* * Print compiled regex * *************************************************/ /* Make this function work for a regex with integers either byte order. However, we assume that what we are passed is a compiled regex. */ EXPORT void _pcre_printint(pcre *external_re, FILE *f) { real_pcre *re = (real_pcre *)external_re; uschar *codestart, *code; BOOL utf8; unsigned int options = re->options; int offset = re->name_table_offset; int count = re->name_count; int size = re->name_entry_size; if (re->magic_number != MAGIC_NUMBER) { offset = ((offset << 8) & 0xff00) | ((offset >> 8) & 0xff); count = ((count << 8) & 0xff00) | ((count >> 8) & 0xff); size = ((size << 8) & 0xff00) | ((size >> 8) & 0xff); options = ((options << 24) & 0xff000000) | ((options << 8) & 0x00ff0000) | ((options >> 8) & 0x0000ff00) | ((options >> 24) & 0x000000ff); } code = codestart = (uschar *)re + offset + count * size; utf8 = (options & PCRE_UTF8) != 0; for(;;) { uschar *ccode; int c; int extra = 0; fprintf(f, "%3d ", (int)(code - codestart)); if (*code >= OP_BRA) { if (*code - OP_BRA > EXTRACT_BASIC_MAX) fprintf(f, "%3d Bra extra\n", GET(code, 1)); else fprintf(f, "%3d Bra %d\n", GET(code, 1), *code - OP_BRA); code += _pcre_OP_lengths[OP_BRA]; continue; } switch(*code) { case OP_END: fprintf(f, " %s\n", OP_names[*code]); fprintf(f, "------------------------------------------------------------------\n"); return; case OP_OPT: fprintf(f, " %.2x %s", code[1], OP_names[*code]); break; case OP_CHAR: { fprintf(f, " "); do { code++; code += 1 + print_char(f, code, utf8); } while (*code == OP_CHAR); fprintf(f, "\n"); continue; } break; case OP_CHARNC: { fprintf(f, " NC "); do { code++; code += 1 + print_char(f, code, utf8); } while (*code == OP_CHARNC); fprintf(f, "\n"); continue; } break; case OP_KETRMAX: case OP_KETRMIN: case OP_ALT: case OP_KET: case OP_ASSERT: case OP_ASSERT_NOT: case OP_ASSERTBACK: case OP_ASSERTBACK_NOT: case OP_ONCE: case OP_COND: case OP_REVERSE: fprintf(f, "%3d %s", GET(code, 1), OP_names[*code]); break; case OP_BRANUMBER: printf("%3d %s", GET2(code, 1), OP_names[*code]); break; case OP_CREF: if (GET2(code, 1) == CREF_RECURSE) fprintf(f, " Cond recurse"); else fprintf(f, "%3d %s", GET2(code,1), OP_names[*code]); break; case OP_STAR: case OP_MINSTAR: case OP_PLUS: case OP_MINPLUS: case OP_QUERY: case OP_MINQUERY: case OP_TYPESTAR: case OP_TYPEMINSTAR: case OP_TYPEPLUS: case OP_TYPEMINPLUS: case OP_TYPEQUERY: case OP_TYPEMINQUERY: fprintf(f, " "); if (*code >= OP_TYPESTAR) { fprintf(f, "%s", OP_names[code[1]]); if (code[1] == OP_PROP || code[1] == OP_NOTPROP) { fprintf(f, " %s ", get_ucpname(code[2])); extra = 1; } } else extra = print_char(f, code+1, utf8); fprintf(f, "%s", OP_names[*code]); break; case OP_EXACT: case OP_UPTO: case OP_MINUPTO: fprintf(f, " "); extra = print_char(f, code+3, utf8); fprintf(f, "{"); if (*code != OP_EXACT) fprintf(f, ","); fprintf(f, "%d}", GET2(code,1)); if (*code == OP_MINUPTO) fprintf(f, "?"); break; case OP_TYPEEXACT: case OP_TYPEUPTO: case OP_TYPEMINUPTO: fprintf(f, " %s", OP_names[code[3]]); if (code[3] == OP_PROP || code[3] == OP_NOTPROP) { fprintf(f, " %s ", get_ucpname(code[4])); extra = 1; } fprintf(f, "{"); if (*code != OP_TYPEEXACT) fprintf(f, "0,"); fprintf(f, "%d}", GET2(code,1)); if (*code == OP_TYPEMINUPTO) fprintf(f, "?"); break; case OP_NOT: if (isprint(c = code[1])) fprintf(f, " [^%c]", c); else fprintf(f, " [^\\x%02x]", c); break; case OP_NOTSTAR: case OP_NOTMINSTAR: case OP_NOTPLUS: case OP_NOTMINPLUS: case OP_NOTQUERY: case OP_NOTMINQUERY: if (isprint(c = code[1])) fprintf(f, " [^%c]", c); else fprintf(f, " [^\\x%02x]", c); fprintf(f, "%s", OP_names[*code]); break; case OP_NOTEXACT: case OP_NOTUPTO: case OP_NOTMINUPTO: if (isprint(c = code[3])) fprintf(f, " [^%c]{", c); else fprintf(f, " [^\\x%02x]{", c); if (*code != OP_NOTEXACT) fprintf(f, "0,"); fprintf(f, "%d}", GET2(code,1)); if (*code == OP_NOTMINUPTO) fprintf(f, "?"); break; case OP_RECURSE: fprintf(f, "%3d %s", GET(code, 1), OP_names[*code]); break; case OP_REF: fprintf(f, " \\%d", GET2(code,1)); ccode = code + _pcre_OP_lengths[*code]; goto CLASS_REF_REPEAT; case OP_CALLOUT: fprintf(f, " %s %d %d %d", OP_names[*code], code[1], GET(code,2), GET(code, 2 + LINK_SIZE)); break; case OP_PROP: case OP_NOTPROP: fprintf(f, " %s %s", OP_names[*code], get_ucpname(code[1])); break; /* OP_XCLASS can only occur in UTF-8 mode. However, there's no harm in having this code always here, and it makes it less messy without all those #ifdefs. */ case OP_CLASS: case OP_NCLASS: case OP_XCLASS: { int i, min, max; BOOL printmap; fprintf(f, " ["); if (*code == OP_XCLASS) { extra = GET(code, 1); ccode = code + LINK_SIZE + 1; printmap = (*ccode & XCL_MAP) != 0; if ((*ccode++ & XCL_NOT) != 0) fprintf(f, "^"); } else { printmap = TRUE; ccode = code + 1; } /* Print a bit map */ if (printmap) { for (i = 0; i < 256; i++) { if ((ccode[i/8] & (1 << (i&7))) != 0) { int j; for (j = i+1; j < 256; j++) if ((ccode[j/8] & (1 << (j&7))) == 0) break; if (i == '-' || i == ']') fprintf(f, "\\"); if (isprint(i)) fprintf(f, "%c", i); else fprintf(f, "\\x%02x", i); if (--j > i) { if (j != i + 1) fprintf(f, "-"); if (j == '-' || j == ']') fprintf(f, "\\"); if (isprint(j)) fprintf(f, "%c", j); else fprintf(f, "\\x%02x", j); } i = j; } } ccode += 32; } /* For an XCLASS there is always some additional data */ if (*code == OP_XCLASS) { int ch; while ((ch = *ccode++) != XCL_END) { if (ch == XCL_PROP) { fprintf(f, "\\p{%s}", get_ucpname(*ccode++)); } else if (ch == XCL_NOTPROP) { fprintf(f, "\\P{%s}", get_ucpname(*ccode++)); } else { ccode += 1 + print_char(f, ccode, TRUE); if (ch == XCL_RANGE) { fprintf(f, "-"); ccode += 1 + print_char(f, ccode, TRUE); } } } } /* Indicate a non-UTF8 class which was created by negation */ fprintf(f, "]%s", (*code == OP_NCLASS)? " (neg)" : ""); /* Handle repeats after a class or a back reference */ CLASS_REF_REPEAT: switch(*ccode) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRPLUS: case OP_CRMINPLUS: case OP_CRQUERY: case OP_CRMINQUERY: fprintf(f, "%s", OP_names[*ccode]); extra += _pcre_OP_lengths[*ccode]; break; case OP_CRRANGE: case OP_CRMINRANGE: min = GET2(ccode,1); max = GET2(ccode,3); if (max == 0) fprintf(f, "{%d,}", min); else fprintf(f, "{%d,%d}", min, max); if (*ccode == OP_CRMINRANGE) fprintf(f, "?"); extra += _pcre_OP_lengths[*ccode]; break; } } break; /* Anything else is just an item with no data*/ default: fprintf(f, " %s", OP_names[*code]); break; } code += _pcre_OP_lengths[*code] + extra; fprintf(f, "\n"); } } /* End of pcre_printint.c */ ================================================ FILE: Project/Pcre/Source/pcre_refcount.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_refcount(), which is an auxiliary function that can be used to maintain a reference count in a compiled pattern data block. This might be helpful in applications where the block is shared by different users. */ #include "pcre_internal.h" /************************************************* * Maintain reference count * *************************************************/ /* The reference count is a 16-bit field, initialized to zero. It is not possible to transfer a non-zero count from one host to a different host that has a different byte order - though I can't see why anyone in their right mind would ever want to do that! Arguments: argument_re points to compiled code adjust value to add to the count Returns: the (possibly updated) count value (a non-negative number), or a negative error number */ EXPORT int pcre_refcount(pcre *argument_re, int adjust) { real_pcre *re = (real_pcre *)argument_re; if (re == NULL) return PCRE_ERROR_NULL; re->ref_count = (-adjust > re->ref_count)? 0 : (adjust + re->ref_count > 65535)? 65535 : re->ref_count + adjust; return re->ref_count; } /* End of pcre_refcount.c */ ================================================ FILE: Project/Pcre/Source/pcre_study.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_study(), along with local supporting functions. */ #include "pcre_internal.h" /************************************************* * Set a bit and maybe its alternate case * *************************************************/ /* Given a character, set its bit in the table, and also the bit for the other version of a letter if we are caseless. Arguments: start_bits points to the bit map c is the character caseless the caseless flag cd the block with char table pointers Returns: nothing */ static void set_bit(uschar *start_bits, unsigned int c, BOOL caseless, compile_data *cd) { start_bits[c/8] |= (1 << (c&7)); if (caseless && (cd->ctypes[c] & ctype_letter) != 0) start_bits[cd->fcc[c]/8] |= (1 << (cd->fcc[c]&7)); } /************************************************* * Create bitmap of starting chars * *************************************************/ /* This function scans a compiled unanchored expression and attempts to build a bitmap of the set of initial characters. If it can't, it returns FALSE. As time goes by, we may be able to get more clever at doing this. Arguments: code points to an expression start_bits points to a 32-byte table, initialized to 0 caseless the current state of the caseless flag utf8 TRUE if in UTF-8 mode cd the block with char table pointers Returns: TRUE if table built, FALSE otherwise */ static BOOL set_start_bits(const uschar *code, uschar *start_bits, BOOL caseless, BOOL utf8, compile_data *cd) { register int c; /* This next statement and the later reference to dummy are here in order to trick the optimizer of the IBM C compiler for OS/2 into generating correct code. Apparently IBM isn't going to fix the problem, and we would rather not disable optimization (in this module it actually makes a big difference, and the pcre module can use all the optimization it can get). */ volatile int dummy; do { const uschar *tcode = code + 1 + LINK_SIZE; BOOL try_next = TRUE; while (try_next) { /* If a branch starts with a bracket or a positive lookahead assertion, recurse to set bits from within them. That's all for this branch. */ if ((int)*tcode >= OP_BRA || *tcode == OP_ASSERT) { if (!set_start_bits(tcode, start_bits, caseless, utf8, cd)) return FALSE; try_next = FALSE; } else switch(*tcode) { default: return FALSE; /* Skip over callout */ case OP_CALLOUT: tcode += 2 + 2*LINK_SIZE; break; /* Skip over extended extraction bracket number */ case OP_BRANUMBER: tcode += 3; break; /* Skip over lookbehind and negative lookahead assertions */ case OP_ASSERT_NOT: case OP_ASSERTBACK: case OP_ASSERTBACK_NOT: do tcode += GET(tcode, 1); while (*tcode == OP_ALT); tcode += 1+LINK_SIZE; break; /* Skip over an option setting, changing the caseless flag */ case OP_OPT: caseless = (tcode[1] & PCRE_CASELESS) != 0; tcode += 2; break; /* BRAZERO does the bracket, but carries on. */ case OP_BRAZERO: case OP_BRAMINZERO: if (!set_start_bits(++tcode, start_bits, caseless, utf8, cd)) return FALSE; dummy = 1; do tcode += GET(tcode,1); while (*tcode == OP_ALT); tcode += 1+LINK_SIZE; break; /* Single-char * or ? sets the bit and tries the next item */ case OP_STAR: case OP_MINSTAR: case OP_QUERY: case OP_MINQUERY: set_bit(start_bits, tcode[1], caseless, cd); tcode += 2; #ifdef SUPPORT_UTF8 if (utf8) while ((*tcode & 0xc0) == 0x80) tcode++; #endif break; /* Single-char upto sets the bit and tries the next */ case OP_UPTO: case OP_MINUPTO: set_bit(start_bits, tcode[3], caseless, cd); tcode += 4; #ifdef SUPPORT_UTF8 if (utf8) while ((*tcode & 0xc0) == 0x80) tcode++; #endif break; /* At least one single char sets the bit and stops */ case OP_EXACT: /* Fall through */ tcode += 2; case OP_CHAR: case OP_CHARNC: case OP_PLUS: case OP_MINPLUS: set_bit(start_bits, tcode[1], caseless, cd); try_next = FALSE; break; /* Single character type sets the bits and stops */ case OP_NOT_DIGIT: for (c = 0; c < 32; c++) start_bits[c] |= ~cd->cbits[c+cbit_digit]; try_next = FALSE; break; case OP_DIGIT: for (c = 0; c < 32; c++) start_bits[c] |= cd->cbits[c+cbit_digit]; try_next = FALSE; break; case OP_NOT_WHITESPACE: for (c = 0; c < 32; c++) start_bits[c] |= ~cd->cbits[c+cbit_space]; try_next = FALSE; break; case OP_WHITESPACE: for (c = 0; c < 32; c++) start_bits[c] |= cd->cbits[c+cbit_space]; try_next = FALSE; break; case OP_NOT_WORDCHAR: for (c = 0; c < 32; c++) start_bits[c] |= ~cd->cbits[c+cbit_word]; try_next = FALSE; break; case OP_WORDCHAR: for (c = 0; c < 32; c++) start_bits[c] |= cd->cbits[c+cbit_word]; try_next = FALSE; break; /* One or more character type fudges the pointer and restarts, knowing it will hit a single character type and stop there. */ case OP_TYPEPLUS: case OP_TYPEMINPLUS: tcode++; break; case OP_TYPEEXACT: tcode += 3; break; /* Zero or more repeats of character types set the bits and then try again. */ case OP_TYPEUPTO: case OP_TYPEMINUPTO: tcode += 2; /* Fall through */ case OP_TYPESTAR: case OP_TYPEMINSTAR: case OP_TYPEQUERY: case OP_TYPEMINQUERY: switch(tcode[1]) { case OP_ANY: return FALSE; case OP_NOT_DIGIT: for (c = 0; c < 32; c++) start_bits[c] |= ~cd->cbits[c+cbit_digit]; break; case OP_DIGIT: for (c = 0; c < 32; c++) start_bits[c] |= cd->cbits[c+cbit_digit]; break; case OP_NOT_WHITESPACE: for (c = 0; c < 32; c++) start_bits[c] |= ~cd->cbits[c+cbit_space]; break; case OP_WHITESPACE: for (c = 0; c < 32; c++) start_bits[c] |= cd->cbits[c+cbit_space]; break; case OP_NOT_WORDCHAR: for (c = 0; c < 32; c++) start_bits[c] |= ~cd->cbits[c+cbit_word]; break; case OP_WORDCHAR: for (c = 0; c < 32; c++) start_bits[c] |= cd->cbits[c+cbit_word]; break; } tcode += 2; break; /* Character class where all the information is in a bit map: set the bits and either carry on or not, according to the repeat count. If it was a negative class, and we are operating with UTF-8 characters, any byte with a value >= 0xc4 is a potentially valid starter because it starts a character with a value > 255. */ case OP_NCLASS: if (utf8) { start_bits[24] |= 0xf0; /* Bits for 0xc4 - 0xc8 */ memset(start_bits+25, 0xff, 7); /* Bits for 0xc9 - 0xff */ } /* Fall through */ case OP_CLASS: { tcode++; /* In UTF-8 mode, the bits in a bit map correspond to character values, not to byte values. However, the bit map we are constructing is for byte values. So we have to do a conversion for characters whose value is > 127. In fact, there are only two possible starting bytes for characters in the range 128 - 255. */ if (utf8) { for (c = 0; c < 16; c++) start_bits[c] |= tcode[c]; for (c = 128; c < 256; c++) { if ((tcode[c/8] && (1 << (c&7))) != 0) { int d = (c >> 6) | 0xc0; /* Set bit for this starter */ start_bits[d/8] |= (1 << (d&7)); /* and then skip on to the */ c = (c & 0xc0) + 0x40 - 1; /* next relevant character. */ } } } /* In non-UTF-8 mode, the two bit maps are completely compatible. */ else { for (c = 0; c < 32; c++) start_bits[c] |= tcode[c]; } /* Advance past the bit map, and act on what follows */ tcode += 32; switch (*tcode) { case OP_CRSTAR: case OP_CRMINSTAR: case OP_CRQUERY: case OP_CRMINQUERY: tcode++; break; case OP_CRRANGE: case OP_CRMINRANGE: if (((tcode[1] << 8) + tcode[2]) == 0) tcode += 5; else try_next = FALSE; break; default: try_next = FALSE; break; } } break; /* End of bitmap class handling */ } /* End of switch */ } /* End of try_next loop */ code += GET(code, 1); /* Advance to next branch */ } while (*code == OP_ALT); return TRUE; } /************************************************* * Study a compiled expression * *************************************************/ /* This function is handed a compiled expression that it must study to produce information that will speed up the matching. It returns a pcre_extra block which then gets handed back to pcre_exec(). Arguments: re points to the compiled expression options contains option bits errorptr points to where to place error messages; set NULL unless error Returns: pointer to a pcre_extra block, with study_data filled in and the appropriate flag set; NULL on error or if no optimization possible */ EXPORT pcre_extra * pcre_study(const pcre *external_re, int options, const char **errorptr) { uschar start_bits[32]; pcre_extra *extra; pcre_study_data *study; const uschar *tables; const real_pcre *re = (const real_pcre *)external_re; uschar *code = (uschar *)re + re->name_table_offset + (re->name_count * re->name_entry_size); compile_data compile_block; *errorptr = NULL; if (re == NULL || re->magic_number != MAGIC_NUMBER) { *errorptr = "argument is not a compiled regular expression"; return NULL; } if ((options & ~PUBLIC_STUDY_OPTIONS) != 0) { *errorptr = "unknown or incorrect option bit(s) set"; return NULL; } /* For an anchored pattern, or an unanchored pattern that has a first char, or a multiline pattern that matches only at "line starts", no further processing at present. */ if ((re->options & (PCRE_ANCHORED|PCRE_FIRSTSET|PCRE_STARTLINE)) != 0) return NULL; /* Set the character tables in the block that is passed around */ tables = re->tables; if (tables == NULL) (void)pcre_fullinfo(external_re, NULL, PCRE_INFO_DEFAULT_TABLES, (void *)(&tables)); compile_block.lcc = tables + lcc_offset; compile_block.fcc = tables + fcc_offset; compile_block.cbits = tables + cbits_offset; compile_block.ctypes = tables + ctypes_offset; /* See if we can find a fixed set of initial characters for the pattern. */ memset(start_bits, 0, 32 * sizeof(uschar)); if (!set_start_bits(code, start_bits, (re->options & PCRE_CASELESS) != 0, (re->options & PCRE_UTF8) != 0, &compile_block)) return NULL; /* Get a pcre_extra block and a pcre_study_data block. The study data is put in the latter, which is pointed to by the former, which may also get additional data set later by the calling program. At the moment, the size of pcre_study_data is fixed. We nevertheless save it in a field for returning via the pcre_fullinfo() function so that if it becomes variable in the future, we don't have to change that code. */ extra = (pcre_extra *)(pcre_malloc) (sizeof(pcre_extra) + sizeof(pcre_study_data)); if (extra == NULL) { *errorptr = "failed to get memory"; return NULL; } study = (pcre_study_data *)((char *)extra + sizeof(pcre_extra)); extra->flags = PCRE_EXTRA_STUDY_DATA; extra->study_data = study; study->size = sizeof(pcre_study_data); study->options = PCRE_STUDY_MAPPED; memcpy(study->start_bits, start_bits, sizeof(start_bits)); return extra; } /* End of pcre_study.c */ ================================================ FILE: Project/Pcre/Source/pcre_tables.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains some fixed tables that are used by more than one of the PCRE code modules. */ #include "pcre_internal.h" /* Table of sizes for the fixed-length opcodes. It's defined in a macro so that the definition is next to the definition of the opcodes in internal.h. */ const uschar _pcre_OP_lengths[] = { OP_LENGTHS }; /************************************************* * Tables for UTF-8 support * *************************************************/ /* These are the breakpoints for different numbers of bytes in a UTF-8 character. */ const int _pcre_utf8_table1[] = { 0x7f, 0x7ff, 0xffff, 0x1fffff, 0x3ffffff, 0x7fffffff}; const int _pcre_utf8_table1_size = sizeof(_pcre_utf8_table1)/sizeof(int); /* These are the indicator bits and the mask for the data bits to set in the first byte of a character, indexed by the number of additional bytes. */ const int _pcre_utf8_table2[] = { 0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc}; const int _pcre_utf8_table3[] = { 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01}; /* Table of the number of extra characters, indexed by the first character masked with 0x3f. The highest number for a valid UTF-8 character is in fact 0x3d. */ const uschar _pcre_utf8_table4[] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 }; /* This table translates Unicode property names into code values for the ucp_findchar() function. It is used by pcretest as well as by the library functions. */ const ucp_type_table _pcre_utt[] = { { "C", 128 + ucp_C }, { "Cc", ucp_Cc }, { "Cf", ucp_Cf }, { "Cn", ucp_Cn }, { "Co", ucp_Co }, { "Cs", ucp_Cs }, { "L", 128 + ucp_L }, { "Ll", ucp_Ll }, { "Lm", ucp_Lm }, { "Lo", ucp_Lo }, { "Lt", ucp_Lt }, { "Lu", ucp_Lu }, { "M", 128 + ucp_M }, { "Mc", ucp_Mc }, { "Me", ucp_Me }, { "Mn", ucp_Mn }, { "N", 128 + ucp_N }, { "Nd", ucp_Nd }, { "Nl", ucp_Nl }, { "No", ucp_No }, { "P", 128 + ucp_P }, { "Pc", ucp_Pc }, { "Pd", ucp_Pd }, { "Pe", ucp_Pe }, { "Pf", ucp_Pf }, { "Pi", ucp_Pi }, { "Po", ucp_Po }, { "Ps", ucp_Ps }, { "S", 128 + ucp_S }, { "Sc", ucp_Sc }, { "Sk", ucp_Sk }, { "Sm", ucp_Sm }, { "So", ucp_So }, { "Z", 128 + ucp_Z }, { "Zl", ucp_Zl }, { "Zp", ucp_Zp }, { "Zs", ucp_Zs } }; const int _pcre_utt_size = sizeof(_pcre_utt)/sizeof(ucp_type_table); /* End of pcre_tables.c */ ================================================ FILE: Project/Pcre/Source/pcre_try_flipped.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains an internal function that tests a compiled pattern to see if it was compiled with the opposite endianness. If so, it uses an auxiliary local function to flip the appropriate bytes. */ #include "pcre_internal.h" /************************************************* * Flip bytes in an integer * *************************************************/ /* This function is called when the magic number in a regex doesn't match, in order to flip its bytes to see if we are dealing with a pattern that was compiled on a host of different endianness. If so, this function is used to flip other byte values. Arguments: value the number to flip n the number of bytes to flip (assumed to be 2 or 4) Returns: the flipped value */ static long int byteflip(long int value, int n) { if (n == 2) return ((value & 0x00ff) << 8) | ((value & 0xff00) >> 8); return ((value & 0x000000ff) << 24) | ((value & 0x0000ff00) << 8) | ((value & 0x00ff0000) >> 8) | ((value & 0xff000000) >> 24); } /************************************************* * Test for a byte-flipped compiled regex * *************************************************/ /* This function is called from pcre_exec(), pcre_dfa_exec(), and also from pcre_fullinfo(). Its job is to test whether the regex is byte-flipped - that is, it was compiled on a system of opposite endianness. The function is called only when the native MAGIC_NUMBER test fails. If the regex is indeed flipped, we flip all the relevant values into a different data block, and return it. Arguments: re points to the regex study points to study data, or NULL internal_re points to a new regex block internal_study points to a new study block Returns: the new block if is is indeed a byte-flipped regex NULL if it is not */ EXPORT real_pcre * _pcre_try_flipped(const real_pcre *re, real_pcre *internal_re, const pcre_study_data *study, pcre_study_data *internal_study) { if (byteflip(re->magic_number, sizeof(re->magic_number)) != MAGIC_NUMBER) return NULL; *internal_re = *re; /* To copy other fields */ internal_re->size = byteflip(re->size, sizeof(re->size)); internal_re->options = byteflip(re->options, sizeof(re->options)); internal_re->top_bracket = (pcre_uint16)byteflip(re->top_bracket, sizeof(re->top_bracket)); internal_re->top_backref = (pcre_uint16)byteflip(re->top_backref, sizeof(re->top_backref)); internal_re->first_byte = (pcre_uint16)byteflip(re->first_byte, sizeof(re->first_byte)); internal_re->req_byte = (pcre_uint16)byteflip(re->req_byte, sizeof(re->req_byte)); internal_re->name_table_offset = (pcre_uint16)byteflip(re->name_table_offset, sizeof(re->name_table_offset)); internal_re->name_entry_size = (pcre_uint16)byteflip(re->name_entry_size, sizeof(re->name_entry_size)); internal_re->name_count = (pcre_uint16)byteflip(re->name_count, sizeof(re->name_count)); if (study != NULL) { *internal_study = *study; /* To copy other fields */ internal_study->size = byteflip(study->size, sizeof(study->size)); internal_study->options = byteflip(study->options, sizeof(study->options)); } return internal_re; } /* End of pcre_tryflipped.c */ ================================================ FILE: Project/Pcre/Source/pcre_ucp_findchar.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module compiles code for supporting the use of Unicode character properties. We use the (embryonic at the time of writing) UCP library, by including some of its files, copies of which have been put in the PCRE distribution. There is a macro in pcre_internal.h that changes the name ucp_findchar into _pcre_ucp_findchar. */ #include "pcre_internal.h" #include "ucp_findchar.c" /* End of pcre_ucp_findchar.c */ ================================================ FILE: Project/Pcre/Source/pcre_valid_utf8.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains an internal function for validating UTF-8 character strings. */ #include "pcre_internal.h" /************************************************* * Validate a UTF-8 string * *************************************************/ /* This function is called (optionally) at the start of compile or match, to validate that a supposed UTF-8 string is actually valid. The early check means that subsequent code can assume it is dealing with a valid string. The check can be turned off for maximum performance, but the consequences of supplying an invalid string are then undefined. Arguments: string points to the string length length of string, or -1 if the string is zero-terminated Returns: < 0 if the string is a valid UTF-8 string >= 0 otherwise; the value is the offset of the bad byte */ EXPORT int _pcre_valid_utf8(const uschar *string, int length) { register const uschar *p; if (length < 0) { for (p = string; *p != 0; p++); length = p - string; } for (p = string; length-- > 0; p++) { register int ab; register int c = *p; if (c < 128) continue; if ((c & 0xc0) != 0xc0) return p - string; ab = _pcre_utf8_table4[c & 0x3f]; /* Number of additional bytes */ if (length < ab) return p - string; length -= ab; /* Check top bits in the second byte */ if ((*(++p) & 0xc0) != 0x80) return p - string; /* Check for overlong sequences for each different length */ switch (ab) { /* Check for xx00 000x */ case 1: if ((c & 0x3e) == 0) return p - string; continue; /* We know there aren't any more bytes to check */ /* Check for 1110 0000, xx0x xxxx */ case 2: if (c == 0xe0 && (*p & 0x20) == 0) return p - string; break; /* Check for 1111 0000, xx00 xxxx */ case 3: if (c == 0xf0 && (*p & 0x30) == 0) return p - string; break; /* Check for 1111 1000, xx00 0xxx */ case 4: if (c == 0xf8 && (*p & 0x38) == 0) return p - string; break; /* Check for leading 0xfe or 0xff, and then for 1111 1100, xx00 00xx */ case 5: if (c == 0xfe || c == 0xff || (c == 0xfc && (*p & 0x3c) == 0)) return p - string; break; } /* Check for valid bytes after the 2nd, if any; all must start 10 */ while (--ab > 0) { if ((*(++p) & 0xc0) != 0x80) return p - string; } } return -1; } /* End of pcre_valid_utf8.c */ ================================================ FILE: Project/Pcre/Source/pcre_version.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains the external function pcre_version(), which returns a string that identifies the PCRE version that is in use. */ #include "pcre_internal.h" /************************************************* * Return version string * *************************************************/ #define STRING(a) # a #define XSTRING(s) STRING(s) EXPORT const char * pcre_version(void) { return XSTRING(PCRE_MAJOR) "." XSTRING(PCRE_MINOR) " " XSTRING(PCRE_DATE); } /* End of pcre_version.c */ ================================================ FILE: Project/Pcre/Source/pcre_xclass.c ================================================ #include "stdafx.h" /************************************************* * Perl-Compatible Regular Expressions * *************************************************/ /* PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Copyright (c) 1997-2005 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ /* This module contains an internal function that is used to match an extended class (one that contains characters whose values are > 255). It is used by both pcre_exec() and pcre_def_exec(). */ #include "pcre_internal.h" /************************************************* * Match character against an XCLASS * *************************************************/ /* This function is called to match a character against an extended class that might contain values > 255. Arguments: c the character data points to the flag byte of the XCLASS data Returns: TRUE if character matches, else FALSE */ EXPORT BOOL _pcre_xclass(int c, const uschar *data) { int t; BOOL negated = (*data & XCL_NOT) != 0; /* Character values < 256 are matched against a bitmap, if one is present. If not, we still carry on, because there may be ranges that start below 256 in the additional data. */ if (c < 256) { if ((*data & XCL_MAP) != 0 && (data[1 + c/8] & (1 << (c&7))) != 0) return !negated; /* char found */ } /* First skip the bit map if present. Then match against the list of Unicode properties or large chars or ranges that end with a large char. We won't ever encounter XCL_PROP or XCL_NOTPROP when UCP support is not compiled. */ if ((*data++ & XCL_MAP) != 0) data += 32; while ((t = *data++) != XCL_END) { int x, y; if (t == XCL_SINGLE) { GETCHARINC(x, data); if (c == x) return !negated; } else if (t == XCL_RANGE) { GETCHARINC(x, data); GETCHARINC(y, data); if (c >= x && c <= y) return !negated; } #ifdef SUPPORT_UCP else /* XCL_PROP & XCL_NOTPROP */ { int chartype, othercase; int rqdtype = *data++; int category = ucp_findchar(c, &chartype, &othercase); if (rqdtype >= 128) { if ((rqdtype - 128 == category) == (t == XCL_PROP)) return !negated; } else { if ((rqdtype == chartype) == (t == XCL_PROP)) return !negated; } } #endif /* SUPPORT_UCP */ } return negated; /* char did not match */ } /* End of pcre_xclass.c */ ================================================ FILE: Project/Pcre/Source/ucp.h ================================================ /************************************************* * libucp - Unicode Property Table handler * *************************************************/ #ifndef _UCP_H #define _UCP_H /* These are the character categories that are returned by ucp_findchar */ enum { ucp_C, /* Other */ ucp_L, /* Letter */ ucp_M, /* Mark */ ucp_N, /* Number */ ucp_P, /* Punctuation */ ucp_S, /* Symbol */ ucp_Z /* Separator */ }; /* These are the detailed character types that are returned by ucp_findchar */ enum { ucp_Cc, /* Control */ ucp_Cf, /* Format */ ucp_Cn, /* Unassigned */ ucp_Co, /* Private use */ ucp_Cs, /* Surrogate */ ucp_Ll, /* Lower case letter */ ucp_Lm, /* Modifier letter */ ucp_Lo, /* Other letter */ ucp_Lt, /* Title case letter */ ucp_Lu, /* Upper case letter */ ucp_Mc, /* Spacing mark */ ucp_Me, /* Enclosing mark */ ucp_Mn, /* Non-spacing mark */ ucp_Nd, /* Decimal number */ ucp_Nl, /* Letter number */ ucp_No, /* Other number */ ucp_Pc, /* Connector punctuation */ ucp_Pd, /* Dash punctuation */ ucp_Pe, /* Close punctuation */ ucp_Pf, /* Final punctuation */ ucp_Pi, /* Initial punctuation */ ucp_Po, /* Other punctuation */ ucp_Ps, /* Open punctuation */ ucp_Sc, /* Currency symbol */ ucp_Sk, /* Modifier symbol */ ucp_Sm, /* Mathematical symbol */ ucp_So, /* Other symbol */ ucp_Zl, /* Line separator */ ucp_Zp, /* Paragraph separator */ ucp_Zs /* Space separator */ }; extern int ucp_findchar(const int, int *, int *); #endif /* End of ucp.h */ ================================================ FILE: Project/Pcre/Source/ucp_findchar.c ================================================ #include "stdafx.h" /************************************************* * libucp - Unicode Property Table handler * *************************************************/ /* Copyright (c) University of Cambridge 2004 */ /* This little library provides a fast way of obtaining the basic Unicode properties of a character, using a compact binary tree that occupies less than 100K bytes. ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the University of Cambridge nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ #include "ucp.h" /* Exported interface */ #include "ucpinternal.h" /* Internal table details */ #include "ucptable.c" /* The table itself */ /* In some environments, external functions have to be preceded by some magic. In my world (Unix), they do not. Use a macro to deal with this. */ #ifndef EXPORT #define EXPORT #endif /************************************************* * Search table and return data * *************************************************/ /* Two values are returned: the category is ucp_C, ucp_L, etc. The detailed character type is ucp_Lu, ucp_Nd, etc. Arguments: c the character value type_ptr the detailed character type is returned here case_ptr for letters, the opposite case is returned here, if there is one, else zero Returns: the character type category or -1 if not found */ EXPORT int ucp_findchar(const int c, int *type_ptr, int *case_ptr) { cnode *node = ucp_table; register int cc = c; int case_offset; for (;;) { register int d = node->f1 | ((node->f0 & f0_chhmask) << 16); if (cc == d) break; if (cc < d) { if ((node->f0 & f0_leftexists) == 0) return -1; node ++; } else { register int roffset = (node->f2 & f2_rightmask) >> f2_rightshift; if (roffset == 0) return -1; node += 1 << (roffset - 1); } } switch ((*type_ptr = ((node->f0 & f0_typemask) >> f0_typeshift))) { case ucp_Cc: case ucp_Cf: case ucp_Cn: case ucp_Co: case ucp_Cs: return ucp_C; break; case ucp_Ll: case ucp_Lu: case_offset = node->f2 & f2_casemask; if ((case_offset & 0x0100) != 0) case_offset |= 0xfffff000; *case_ptr = (case_offset == 0)? 0 : cc + case_offset; return ucp_L; case ucp_Lm: case ucp_Lo: case ucp_Lt: *case_ptr = 0; return ucp_L; break; case ucp_Mc: case ucp_Me: case ucp_Mn: return ucp_M; break; case ucp_Nd: case ucp_Nl: case ucp_No: return ucp_N; break; case ucp_Pc: case ucp_Pd: case ucp_Pe: case ucp_Pf: case ucp_Pi: case ucp_Ps: case ucp_Po: return ucp_P; break; case ucp_Sc: case ucp_Sk: case ucp_Sm: case ucp_So: return ucp_S; break; case ucp_Zl: case ucp_Zp: case ucp_Zs: return ucp_Z; break; default: /* "Should never happen" */ return -1; break; } } /* End of ucp_findchar.c */ ================================================ FILE: Project/Pcre/Source/ucpinternal.h ================================================ /************************************************* * libucp - Unicode Property Table handler * *************************************************/ /* Internal header file defining the layout of compact nodes in the tree. */ typedef struct cnode { unsigned short int f0; unsigned short int f1; unsigned short int f2; } cnode; /* Things for the f0 field */ #define f0_leftexists 0x8000 /* Left child exists */ #define f0_typemask 0x3f00 /* Type bits */ #define f0_typeshift 8 /* Type shift */ #define f0_chhmask 0x00ff /* Character high bits */ /* Things for the f2 field */ #define f2_rightmask 0xf000 /* Mask for right offset bits */ #define f2_rightshift 12 /* Shift for right offset */ #define f2_casemask 0x0fff /* Mask for case offset */ /* The tree consists of a vector of structures of type cnode, with the root node as the first element. The three short ints (16-bits) are used as follows: (f0) (1) The 0x8000 bit of f0 is set if a left child exists. The child's node is the next node in the vector. (2) The 0x4000 bits of f0 is spare. (3) The 0x3f00 bits of f0 contain the character type; this is a number defined by the enumeration in ucp.h (e.g. ucp_Lu). (4) The bottom 8 bits of f0 contain the most significant byte of the character's 24-bit codepoint. (f1) (1) The f1 field contains the two least significant bytes of the codepoint. (f2) (1) The 0xf000 bits of f2 contain zero if there is no right child of this node. Otherwise, they contain one plus the exponent of the power of two of the offset to the right node (e.g. a value of 3 means 8). The units of the offset are node items. (2) The 0x0fff bits of f2 contain the signed offset from this character to its alternate cased value. They are zero if there is no such character. ----------------------------------------------------------------------------- ||.|.| type (6) | ms char (8) || ls char (16) ||....| case offset (12) || ----------------------------------------------------------------------------- | | | | |-> spare | | exponent of right |-> left child exists child offset The upper/lower casing information is set only for characters that come in pairs. There are (at present) four non-one-to-one mappings in the Unicode data. These are ignored. They are: 1FBE Greek Prosgegrammeni (lower, with upper -> capital iota) 2126 Ohm 212A Kelvin 212B Angstrom Certainly for the last three, having an alternate case would seem to be a mistake. I don't know any Greek, so cannot comment on the first one. When searching the tree, proceed as follows: (1) Start at the first node. (2) Extract the character value from f1 and the bottom 8 bits of f0; (3) Compare with the character being sought. If equal, we are done. (4) If the test character is smaller, inspect the f0_leftexists flag. If it is not set, the character is not in the tree. If it is set, move to the next node, and go to (2). (5) If the test character is bigger, extract the f2_rightmask bits from f2, and shift them right by f2_rightshift. If the result is zero, the character is not in the tree. Otherwise, calculate the number of nodes to skip by shifting the value 1 left by this number minus one. Go to (2). */ /* End of internal.h */ ================================================ FILE: Project/Pcre/Source/ucptable.c ================================================ #include "stdafx.h" /* This source module is automatically generated from the Unicode property table. See internal.h for a description of the layout. */ static cnode ucp_table[] = { { 0x9a00, 0x2f1f, 0xe000 }, { 0x8700, 0x1558, 0xd000 }, { 0x8700, 0x0a99, 0xc000 }, { 0x8500, 0x0435, 0xbfe0 }, { 0x8500, 0x01ff, 0xafff }, { 0x8500, 0x00ff, 0x9079 }, { 0x8000, 0x007f, 0x8000 }, { 0x9500, 0x003f, 0x7000 }, { 0x8000, 0x001f, 0x6000 }, { 0x8000, 0x000f, 0x5000 }, { 0x8000, 0x0007, 0x4000 }, { 0x8000, 0x0003, 0x3000 }, { 0x8000, 0x0001, 0x2000 }, { 0x0000, 0x0000, 0x0000 }, { 0x0000, 0x0002, 0x0000 }, { 0x8000, 0x0005, 0x2000 }, { 0x0000, 0x0004, 0x0000 }, { 0x0000, 0x0006, 0x0000 }, { 0x8000, 0x000b, 0x3000 }, { 0x8000, 0x0009, 0x2000 }, { 0x0000, 0x0008, 0x0000 }, { 0x0000, 0x000a, 0x0000 }, { 0x8000, 0x000d, 0x2000 }, { 0x0000, 0x000c, 0x0000 }, { 0x0000, 0x000e, 0x0000 }, { 0x8000, 0x0017, 0x4000 }, { 0x8000, 0x0013, 0x3000 }, { 0x8000, 0x0011, 0x2000 }, { 0x0000, 0x0010, 0x0000 }, { 0x0000, 0x0012, 0x0000 }, { 0x8000, 0x0015, 0x2000 }, { 0x0000, 0x0014, 0x0000 }, { 0x0000, 0x0016, 0x0000 }, { 0x8000, 0x001b, 0x3000 }, { 0x8000, 0x0019, 0x2000 }, { 0x0000, 0x0018, 0x0000 }, { 0x0000, 0x001a, 0x0000 }, { 0x8000, 0x001d, 0x2000 }, { 0x0000, 0x001c, 0x0000 }, { 0x0000, 0x001e, 0x0000 }, { 0x9500, 0x002f, 0x5000 }, { 0x9500, 0x0027, 0x4000 }, { 0x9500, 0x0023, 0x3000 }, { 0x9500, 0x0021, 0x2000 }, { 0x1d00, 0x0020, 0x0000 }, { 0x1500, 0x0022, 0x0000 }, { 0x9500, 0x0025, 0x2000 }, { 0x1700, 0x0024, 0x0000 }, { 0x1500, 0x0026, 0x0000 }, { 0x9900, 0x002b, 0x3000 }, { 0x9200, 0x0029, 0x2000 }, { 0x1600, 0x0028, 0x0000 }, { 0x1500, 0x002a, 0x0000 }, { 0x9100, 0x002d, 0x2000 }, { 0x1500, 0x002c, 0x0000 }, { 0x1500, 0x002e, 0x0000 }, { 0x8d00, 0x0037, 0x4000 }, { 0x8d00, 0x0033, 0x3000 }, { 0x8d00, 0x0031, 0x2000 }, { 0x0d00, 0x0030, 0x0000 }, { 0x0d00, 0x0032, 0x0000 }, { 0x8d00, 0x0035, 0x2000 }, { 0x0d00, 0x0034, 0x0000 }, { 0x0d00, 0x0036, 0x0000 }, { 0x9500, 0x003b, 0x3000 }, { 0x8d00, 0x0039, 0x2000 }, { 0x0d00, 0x0038, 0x0000 }, { 0x1500, 0x003a, 0x0000 }, { 0x9900, 0x003d, 0x2000 }, { 0x1900, 0x003c, 0x0000 }, { 0x1900, 0x003e, 0x0000 }, { 0x9000, 0x005f, 0x6000 }, { 0x8900, 0x004f, 0x5020 }, { 0x8900, 0x0047, 0x4020 }, { 0x8900, 0x0043, 0x3020 }, { 0x8900, 0x0041, 0x2020 }, { 0x1500, 0x0040, 0x0000 }, { 0x0900, 0x0042, 0x0020 }, { 0x8900, 0x0045, 0x2020 }, { 0x0900, 0x0044, 0x0020 }, { 0x0900, 0x0046, 0x0020 }, { 0x8900, 0x004b, 0x3020 }, { 0x8900, 0x0049, 0x2020 }, { 0x0900, 0x0048, 0x0020 }, { 0x0900, 0x004a, 0x0020 }, { 0x8900, 0x004d, 0x2020 }, { 0x0900, 0x004c, 0x0020 }, { 0x0900, 0x004e, 0x0020 }, { 0x8900, 0x0057, 0x4020 }, { 0x8900, 0x0053, 0x3020 }, { 0x8900, 0x0051, 0x2020 }, { 0x0900, 0x0050, 0x0020 }, { 0x0900, 0x0052, 0x0020 }, { 0x8900, 0x0055, 0x2020 }, { 0x0900, 0x0054, 0x0020 }, { 0x0900, 0x0056, 0x0020 }, { 0x9600, 0x005b, 0x3000 }, { 0x8900, 0x0059, 0x2020 }, { 0x0900, 0x0058, 0x0020 }, { 0x0900, 0x005a, 0x0020 }, { 0x9200, 0x005d, 0x2000 }, { 0x1500, 0x005c, 0x0000 }, { 0x1800, 0x005e, 0x0000 }, { 0x8500, 0x006f, 0x5fe0 }, { 0x8500, 0x0067, 0x4fe0 }, { 0x8500, 0x0063, 0x3fe0 }, { 0x8500, 0x0061, 0x2fe0 }, { 0x1800, 0x0060, 0x0000 }, { 0x0500, 0x0062, 0x0fe0 }, { 0x8500, 0x0065, 0x2fe0 }, { 0x0500, 0x0064, 0x0fe0 }, { 0x0500, 0x0066, 0x0fe0 }, { 0x8500, 0x006b, 0x3fe0 }, { 0x8500, 0x0069, 0x2fe0 }, { 0x0500, 0x0068, 0x0fe0 }, { 0x0500, 0x006a, 0x0fe0 }, { 0x8500, 0x006d, 0x2fe0 }, { 0x0500, 0x006c, 0x0fe0 }, { 0x0500, 0x006e, 0x0fe0 }, { 0x8500, 0x0077, 0x4fe0 }, { 0x8500, 0x0073, 0x3fe0 }, { 0x8500, 0x0071, 0x2fe0 }, { 0x0500, 0x0070, 0x0fe0 }, { 0x0500, 0x0072, 0x0fe0 }, { 0x8500, 0x0075, 0x2fe0 }, { 0x0500, 0x0074, 0x0fe0 }, { 0x0500, 0x0076, 0x0fe0 }, { 0x9600, 0x007b, 0x3000 }, { 0x8500, 0x0079, 0x2fe0 }, { 0x0500, 0x0078, 0x0fe0 }, { 0x0500, 0x007a, 0x0fe0 }, { 0x9200, 0x007d, 0x2000 }, { 0x1900, 0x007c, 0x0000 }, { 0x1900, 0x007e, 0x0000 }, { 0x9500, 0x00bf, 0x7000 }, { 0x8000, 0x009f, 0x6000 }, { 0x8000, 0x008f, 0x5000 }, { 0x8000, 0x0087, 0x4000 }, { 0x8000, 0x0083, 0x3000 }, { 0x8000, 0x0081, 0x2000 }, { 0x0000, 0x0080, 0x0000 }, { 0x0000, 0x0082, 0x0000 }, { 0x8000, 0x0085, 0x2000 }, { 0x0000, 0x0084, 0x0000 }, { 0x0000, 0x0086, 0x0000 }, { 0x8000, 0x008b, 0x3000 }, { 0x8000, 0x0089, 0x2000 }, { 0x0000, 0x0088, 0x0000 }, { 0x0000, 0x008a, 0x0000 }, { 0x8000, 0x008d, 0x2000 }, { 0x0000, 0x008c, 0x0000 }, { 0x0000, 0x008e, 0x0000 }, { 0x8000, 0x0097, 0x4000 }, { 0x8000, 0x0093, 0x3000 }, { 0x8000, 0x0091, 0x2000 }, { 0x0000, 0x0090, 0x0000 }, { 0x0000, 0x0092, 0x0000 }, { 0x8000, 0x0095, 0x2000 }, { 0x0000, 0x0094, 0x0000 }, { 0x0000, 0x0096, 0x0000 }, { 0x8000, 0x009b, 0x3000 }, { 0x8000, 0x0099, 0x2000 }, { 0x0000, 0x0098, 0x0000 }, { 0x0000, 0x009a, 0x0000 }, { 0x8000, 0x009d, 0x2000 }, { 0x0000, 0x009c, 0x0000 }, { 0x0000, 0x009e, 0x0000 }, { 0x9800, 0x00af, 0x5000 }, { 0x9a00, 0x00a7, 0x4000 }, { 0x9700, 0x00a3, 0x3000 }, { 0x9500, 0x00a1, 0x2000 }, { 0x1d00, 0x00a0, 0x0000 }, { 0x1700, 0x00a2, 0x0000 }, { 0x9700, 0x00a5, 0x2000 }, { 0x1700, 0x00a4, 0x0000 }, { 0x1a00, 0x00a6, 0x0000 }, { 0x9400, 0x00ab, 0x3000 }, { 0x9a00, 0x00a9, 0x2000 }, { 0x1800, 0x00a8, 0x0000 }, { 0x0500, 0x00aa, 0x0000 }, { 0x8100, 0x00ad, 0x2000 }, { 0x1900, 0x00ac, 0x0000 }, { 0x1a00, 0x00ae, 0x0000 }, { 0x9500, 0x00b7, 0x4000 }, { 0x8f00, 0x00b3, 0x3000 }, { 0x9900, 0x00b1, 0x2000 }, { 0x1a00, 0x00b0, 0x0000 }, { 0x0f00, 0x00b2, 0x0000 }, { 0x8500, 0x00b5, 0x22e7 }, { 0x1800, 0x00b4, 0x0000 }, { 0x1a00, 0x00b6, 0x0000 }, { 0x9300, 0x00bb, 0x3000 }, { 0x8f00, 0x00b9, 0x2000 }, { 0x1800, 0x00b8, 0x0000 }, { 0x0500, 0x00ba, 0x0000 }, { 0x8f00, 0x00bd, 0x2000 }, { 0x0f00, 0x00bc, 0x0000 }, { 0x0f00, 0x00be, 0x0000 }, { 0x8500, 0x00df, 0x6000 }, { 0x8900, 0x00cf, 0x5020 }, { 0x8900, 0x00c7, 0x4020 }, { 0x8900, 0x00c3, 0x3020 }, { 0x8900, 0x00c1, 0x2020 }, { 0x0900, 0x00c0, 0x0020 }, { 0x0900, 0x00c2, 0x0020 }, { 0x8900, 0x00c5, 0x2020 }, { 0x0900, 0x00c4, 0x0020 }, { 0x0900, 0x00c6, 0x0020 }, { 0x8900, 0x00cb, 0x3020 }, { 0x8900, 0x00c9, 0x2020 }, { 0x0900, 0x00c8, 0x0020 }, { 0x0900, 0x00ca, 0x0020 }, { 0x8900, 0x00cd, 0x2020 }, { 0x0900, 0x00cc, 0x0020 }, { 0x0900, 0x00ce, 0x0020 }, { 0x9900, 0x00d7, 0x4000 }, { 0x8900, 0x00d3, 0x3020 }, { 0x8900, 0x00d1, 0x2020 }, { 0x0900, 0x00d0, 0x0020 }, { 0x0900, 0x00d2, 0x0020 }, { 0x8900, 0x00d5, 0x2020 }, { 0x0900, 0x00d4, 0x0020 }, { 0x0900, 0x00d6, 0x0020 }, { 0x8900, 0x00db, 0x3020 }, { 0x8900, 0x00d9, 0x2020 }, { 0x0900, 0x00d8, 0x0020 }, { 0x0900, 0x00da, 0x0020 }, { 0x8900, 0x00dd, 0x2020 }, { 0x0900, 0x00dc, 0x0020 }, { 0x0900, 0x00de, 0x0020 }, { 0x8500, 0x00ef, 0x5fe0 }, { 0x8500, 0x00e7, 0x4fe0 }, { 0x8500, 0x00e3, 0x3fe0 }, { 0x8500, 0x00e1, 0x2fe0 }, { 0x0500, 0x00e0, 0x0fe0 }, { 0x0500, 0x00e2, 0x0fe0 }, { 0x8500, 0x00e5, 0x2fe0 }, { 0x0500, 0x00e4, 0x0fe0 }, { 0x0500, 0x00e6, 0x0fe0 }, { 0x8500, 0x00eb, 0x3fe0 }, { 0x8500, 0x00e9, 0x2fe0 }, { 0x0500, 0x00e8, 0x0fe0 }, { 0x0500, 0x00ea, 0x0fe0 }, { 0x8500, 0x00ed, 0x2fe0 }, { 0x0500, 0x00ec, 0x0fe0 }, { 0x0500, 0x00ee, 0x0fe0 }, { 0x9900, 0x00f7, 0x4000 }, { 0x8500, 0x00f3, 0x3fe0 }, { 0x8500, 0x00f1, 0x2fe0 }, { 0x0500, 0x00f0, 0x0fe0 }, { 0x0500, 0x00f2, 0x0fe0 }, { 0x8500, 0x00f5, 0x2fe0 }, { 0x0500, 0x00f4, 0x0fe0 }, { 0x0500, 0x00f6, 0x0fe0 }, { 0x8500, 0x00fb, 0x3fe0 }, { 0x8500, 0x00f9, 0x2fe0 }, { 0x0500, 0x00f8, 0x0fe0 }, { 0x0500, 0x00fa, 0x0fe0 }, { 0x8500, 0x00fd, 0x2fe0 }, { 0x0500, 0x00fc, 0x0fe0 }, { 0x0500, 0x00fe, 0x0fe0 }, { 0x8500, 0x017f, 0x8ed4 }, { 0x8900, 0x013f, 0x7001 }, { 0x8500, 0x011f, 0x6fff }, { 0x8500, 0x010f, 0x5fff }, { 0x8500, 0x0107, 0x4fff }, { 0x8500, 0x0103, 0x3fff }, { 0x8500, 0x0101, 0x2fff }, { 0x0900, 0x0100, 0x0001 }, { 0x0900, 0x0102, 0x0001 }, { 0x8500, 0x0105, 0x2fff }, { 0x0900, 0x0104, 0x0001 }, { 0x0900, 0x0106, 0x0001 }, { 0x8500, 0x010b, 0x3fff }, { 0x8500, 0x0109, 0x2fff }, { 0x0900, 0x0108, 0x0001 }, { 0x0900, 0x010a, 0x0001 }, { 0x8500, 0x010d, 0x2fff }, { 0x0900, 0x010c, 0x0001 }, { 0x0900, 0x010e, 0x0001 }, { 0x8500, 0x0117, 0x4fff }, { 0x8500, 0x0113, 0x3fff }, { 0x8500, 0x0111, 0x2fff }, { 0x0900, 0x0110, 0x0001 }, { 0x0900, 0x0112, 0x0001 }, { 0x8500, 0x0115, 0x2fff }, { 0x0900, 0x0114, 0x0001 }, { 0x0900, 0x0116, 0x0001 }, { 0x8500, 0x011b, 0x3fff }, { 0x8500, 0x0119, 0x2fff }, { 0x0900, 0x0118, 0x0001 }, { 0x0900, 0x011a, 0x0001 }, { 0x8500, 0x011d, 0x2fff }, { 0x0900, 0x011c, 0x0001 }, { 0x0900, 0x011e, 0x0001 }, { 0x8500, 0x012f, 0x5fff }, { 0x8500, 0x0127, 0x4fff }, { 0x8500, 0x0123, 0x3fff }, { 0x8500, 0x0121, 0x2fff }, { 0x0900, 0x0120, 0x0001 }, { 0x0900, 0x0122, 0x0001 }, { 0x8500, 0x0125, 0x2fff }, { 0x0900, 0x0124, 0x0001 }, { 0x0900, 0x0126, 0x0001 }, { 0x8500, 0x012b, 0x3fff }, { 0x8500, 0x0129, 0x2fff }, { 0x0900, 0x0128, 0x0001 }, { 0x0900, 0x012a, 0x0001 }, { 0x8500, 0x012d, 0x2fff }, { 0x0900, 0x012c, 0x0001 }, { 0x0900, 0x012e, 0x0001 }, { 0x8500, 0x0137, 0x4fff }, { 0x8500, 0x0133, 0x3fff }, { 0x8500, 0x0131, 0x2f18 }, { 0x0900, 0x0130, 0x0f39 }, { 0x0900, 0x0132, 0x0001 }, { 0x8500, 0x0135, 0x2fff }, { 0x0900, 0x0134, 0x0001 }, { 0x0900, 0x0136, 0x0001 }, { 0x8900, 0x013b, 0x3001 }, { 0x8900, 0x0139, 0x2001 }, { 0x0500, 0x0138, 0x0000 }, { 0x0500, 0x013a, 0x0fff }, { 0x8900, 0x013d, 0x2001 }, { 0x0500, 0x013c, 0x0fff }, { 0x0500, 0x013e, 0x0fff }, { 0x8500, 0x015f, 0x6fff }, { 0x8500, 0x014f, 0x5fff }, { 0x8900, 0x0147, 0x4001 }, { 0x8900, 0x0143, 0x3001 }, { 0x8900, 0x0141, 0x2001 }, { 0x0500, 0x0140, 0x0fff }, { 0x0500, 0x0142, 0x0fff }, { 0x8900, 0x0145, 0x2001 }, { 0x0500, 0x0144, 0x0fff }, { 0x0500, 0x0146, 0x0fff }, { 0x8500, 0x014b, 0x3fff }, { 0x8500, 0x0149, 0x2000 }, { 0x0500, 0x0148, 0x0fff }, { 0x0900, 0x014a, 0x0001 }, { 0x8500, 0x014d, 0x2fff }, { 0x0900, 0x014c, 0x0001 }, { 0x0900, 0x014e, 0x0001 }, { 0x8500, 0x0157, 0x4fff }, { 0x8500, 0x0153, 0x3fff }, { 0x8500, 0x0151, 0x2fff }, { 0x0900, 0x0150, 0x0001 }, { 0x0900, 0x0152, 0x0001 }, { 0x8500, 0x0155, 0x2fff }, { 0x0900, 0x0154, 0x0001 }, { 0x0900, 0x0156, 0x0001 }, { 0x8500, 0x015b, 0x3fff }, { 0x8500, 0x0159, 0x2fff }, { 0x0900, 0x0158, 0x0001 }, { 0x0900, 0x015a, 0x0001 }, { 0x8500, 0x015d, 0x2fff }, { 0x0900, 0x015c, 0x0001 }, { 0x0900, 0x015e, 0x0001 }, { 0x8500, 0x016f, 0x5fff }, { 0x8500, 0x0167, 0x4fff }, { 0x8500, 0x0163, 0x3fff }, { 0x8500, 0x0161, 0x2fff }, { 0x0900, 0x0160, 0x0001 }, { 0x0900, 0x0162, 0x0001 }, { 0x8500, 0x0165, 0x2fff }, { 0x0900, 0x0164, 0x0001 }, { 0x0900, 0x0166, 0x0001 }, { 0x8500, 0x016b, 0x3fff }, { 0x8500, 0x0169, 0x2fff }, { 0x0900, 0x0168, 0x0001 }, { 0x0900, 0x016a, 0x0001 }, { 0x8500, 0x016d, 0x2fff }, { 0x0900, 0x016c, 0x0001 }, { 0x0900, 0x016e, 0x0001 }, { 0x8500, 0x0177, 0x4fff }, { 0x8500, 0x0173, 0x3fff }, { 0x8500, 0x0171, 0x2fff }, { 0x0900, 0x0170, 0x0001 }, { 0x0900, 0x0172, 0x0001 }, { 0x8500, 0x0175, 0x2fff }, { 0x0900, 0x0174, 0x0001 }, { 0x0900, 0x0176, 0x0001 }, { 0x8900, 0x017b, 0x3001 }, { 0x8900, 0x0179, 0x2001 }, { 0x0900, 0x0178, 0x0f87 }, { 0x0500, 0x017a, 0x0fff }, { 0x8900, 0x017d, 0x2001 }, { 0x0500, 0x017c, 0x0fff }, { 0x0500, 0x017e, 0x0fff }, { 0x8500, 0x01bf, 0x7038 }, { 0x8900, 0x019f, 0x60d6 }, { 0x8900, 0x018f, 0x50ca }, { 0x8900, 0x0187, 0x4001 }, { 0x8500, 0x0183, 0x3fff }, { 0x8900, 0x0181, 0x20d2 }, { 0x0500, 0x0180, 0x0000 }, { 0x0900, 0x0182, 0x0001 }, { 0x8500, 0x0185, 0x2fff }, { 0x0900, 0x0184, 0x0001 }, { 0x0900, 0x0186, 0x00ce }, { 0x8900, 0x018b, 0x3001 }, { 0x8900, 0x0189, 0x20cd }, { 0x0500, 0x0188, 0x0fff }, { 0x0900, 0x018a, 0x00cd }, { 0x8500, 0x018d, 0x2000 }, { 0x0500, 0x018c, 0x0fff }, { 0x0900, 0x018e, 0x004f }, { 0x8900, 0x0197, 0x40d1 }, { 0x8900, 0x0193, 0x30cd }, { 0x8900, 0x0191, 0x2001 }, { 0x0900, 0x0190, 0x00cb }, { 0x0500, 0x0192, 0x0fff }, { 0x8500, 0x0195, 0x2061 }, { 0x0900, 0x0194, 0x00cf }, { 0x0900, 0x0196, 0x00d3 }, { 0x8500, 0x019b, 0x3000 }, { 0x8500, 0x0199, 0x2fff }, { 0x0900, 0x0198, 0x0001 }, { 0x0500, 0x019a, 0x0000 }, { 0x8900, 0x019d, 0x20d5 }, { 0x0900, 0x019c, 0x00d3 }, { 0x0500, 0x019e, 0x0082 }, { 0x8900, 0x01af, 0x5001 }, { 0x8900, 0x01a7, 0x4001 }, { 0x8500, 0x01a3, 0x3fff }, { 0x8500, 0x01a1, 0x2fff }, { 0x0900, 0x01a0, 0x0001 }, { 0x0900, 0x01a2, 0x0001 }, { 0x8500, 0x01a5, 0x2fff }, { 0x0900, 0x01a4, 0x0001 }, { 0x0900, 0x01a6, 0x00da }, { 0x8500, 0x01ab, 0x3000 }, { 0x8900, 0x01a9, 0x20da }, { 0x0500, 0x01a8, 0x0fff }, { 0x0500, 0x01aa, 0x0000 }, { 0x8500, 0x01ad, 0x2fff }, { 0x0900, 0x01ac, 0x0001 }, { 0x0900, 0x01ae, 0x00da }, { 0x8900, 0x01b7, 0x40db }, { 0x8900, 0x01b3, 0x3001 }, { 0x8900, 0x01b1, 0x20d9 }, { 0x0500, 0x01b0, 0x0fff }, { 0x0900, 0x01b2, 0x00d9 }, { 0x8900, 0x01b5, 0x2001 }, { 0x0500, 0x01b4, 0x0fff }, { 0x0500, 0x01b6, 0x0fff }, { 0x8700, 0x01bb, 0x3000 }, { 0x8500, 0x01b9, 0x2fff }, { 0x0900, 0x01b8, 0x0001 }, { 0x0500, 0x01ba, 0x0000 }, { 0x8500, 0x01bd, 0x2fff }, { 0x0900, 0x01bc, 0x0001 }, { 0x0500, 0x01be, 0x0000 }, { 0x8500, 0x01df, 0x6fff }, { 0x8900, 0x01cf, 0x5001 }, { 0x8900, 0x01c7, 0x4002 }, { 0x8700, 0x01c3, 0x3000 }, { 0x8700, 0x01c1, 0x2000 }, { 0x0700, 0x01c0, 0x0000 }, { 0x0700, 0x01c2, 0x0000 }, { 0x8800, 0x01c5, 0x2000 }, { 0x0900, 0x01c4, 0x0002 }, { 0x0500, 0x01c6, 0x0ffe }, { 0x8800, 0x01cb, 0x3000 }, { 0x8500, 0x01c9, 0x2ffe }, { 0x0800, 0x01c8, 0x0000 }, { 0x0900, 0x01ca, 0x0002 }, { 0x8900, 0x01cd, 0x2001 }, { 0x0500, 0x01cc, 0x0ffe }, { 0x0500, 0x01ce, 0x0fff }, { 0x8900, 0x01d7, 0x4001 }, { 0x8900, 0x01d3, 0x3001 }, { 0x8900, 0x01d1, 0x2001 }, { 0x0500, 0x01d0, 0x0fff }, { 0x0500, 0x01d2, 0x0fff }, { 0x8900, 0x01d5, 0x2001 }, { 0x0500, 0x01d4, 0x0fff }, { 0x0500, 0x01d6, 0x0fff }, { 0x8900, 0x01db, 0x3001 }, { 0x8900, 0x01d9, 0x2001 }, { 0x0500, 0x01d8, 0x0fff }, { 0x0500, 0x01da, 0x0fff }, { 0x8500, 0x01dd, 0x2fb1 }, { 0x0500, 0x01dc, 0x0fff }, { 0x0900, 0x01de, 0x0001 }, { 0x8500, 0x01ef, 0x5fff }, { 0x8500, 0x01e7, 0x4fff }, { 0x8500, 0x01e3, 0x3fff }, { 0x8500, 0x01e1, 0x2fff }, { 0x0900, 0x01e0, 0x0001 }, { 0x0900, 0x01e2, 0x0001 }, { 0x8500, 0x01e5, 0x2fff }, { 0x0900, 0x01e4, 0x0001 }, { 0x0900, 0x01e6, 0x0001 }, { 0x8500, 0x01eb, 0x3fff }, { 0x8500, 0x01e9, 0x2fff }, { 0x0900, 0x01e8, 0x0001 }, { 0x0900, 0x01ea, 0x0001 }, { 0x8500, 0x01ed, 0x2fff }, { 0x0900, 0x01ec, 0x0001 }, { 0x0900, 0x01ee, 0x0001 }, { 0x8900, 0x01f7, 0x4fc8 }, { 0x8500, 0x01f3, 0x3ffe }, { 0x8900, 0x01f1, 0x2002 }, { 0x0500, 0x01f0, 0x0000 }, { 0x0800, 0x01f2, 0x0000 }, { 0x8500, 0x01f5, 0x2fff }, { 0x0900, 0x01f4, 0x0001 }, { 0x0900, 0x01f6, 0x0f9f }, { 0x8500, 0x01fb, 0x3fff }, { 0x8500, 0x01f9, 0x2fff }, { 0x0900, 0x01f8, 0x0001 }, { 0x0900, 0x01fa, 0x0001 }, { 0x8500, 0x01fd, 0x2fff }, { 0x0900, 0x01fc, 0x0001 }, { 0x0900, 0x01fe, 0x0001 }, { 0x8c00, 0x0318, 0x9000 }, { 0x8500, 0x0298, 0x8000 }, { 0x8500, 0x0258, 0x7000 }, { 0x8500, 0x021f, 0x6fff }, { 0x8500, 0x020f, 0x5fff }, { 0x8500, 0x0207, 0x4fff }, { 0x8500, 0x0203, 0x3fff }, { 0x8500, 0x0201, 0x2fff }, { 0x0900, 0x0200, 0x0001 }, { 0x0900, 0x0202, 0x0001 }, { 0x8500, 0x0205, 0x2fff }, { 0x0900, 0x0204, 0x0001 }, { 0x0900, 0x0206, 0x0001 }, { 0x8500, 0x020b, 0x3fff }, { 0x8500, 0x0209, 0x2fff }, { 0x0900, 0x0208, 0x0001 }, { 0x0900, 0x020a, 0x0001 }, { 0x8500, 0x020d, 0x2fff }, { 0x0900, 0x020c, 0x0001 }, { 0x0900, 0x020e, 0x0001 }, { 0x8500, 0x0217, 0x4fff }, { 0x8500, 0x0213, 0x3fff }, { 0x8500, 0x0211, 0x2fff }, { 0x0900, 0x0210, 0x0001 }, { 0x0900, 0x0212, 0x0001 }, { 0x8500, 0x0215, 0x2fff }, { 0x0900, 0x0214, 0x0001 }, { 0x0900, 0x0216, 0x0001 }, { 0x8500, 0x021b, 0x3fff }, { 0x8500, 0x0219, 0x2fff }, { 0x0900, 0x0218, 0x0001 }, { 0x0900, 0x021a, 0x0001 }, { 0x8500, 0x021d, 0x2fff }, { 0x0900, 0x021c, 0x0001 }, { 0x0900, 0x021e, 0x0001 }, { 0x8500, 0x022f, 0x5fff }, { 0x8500, 0x0227, 0x4fff }, { 0x8500, 0x0223, 0x3fff }, { 0x8500, 0x0221, 0x2000 }, { 0x0900, 0x0220, 0x0f7e }, { 0x0900, 0x0222, 0x0001 }, { 0x8500, 0x0225, 0x2fff }, { 0x0900, 0x0224, 0x0001 }, { 0x0900, 0x0226, 0x0001 }, { 0x8500, 0x022b, 0x3fff }, { 0x8500, 0x0229, 0x2fff }, { 0x0900, 0x0228, 0x0001 }, { 0x0900, 0x022a, 0x0001 }, { 0x8500, 0x022d, 0x2fff }, { 0x0900, 0x022c, 0x0001 }, { 0x0900, 0x022e, 0x0001 }, { 0x8500, 0x0250, 0x4000 }, { 0x8500, 0x0233, 0x3fff }, { 0x8500, 0x0231, 0x2fff }, { 0x0900, 0x0230, 0x0001 }, { 0x0900, 0x0232, 0x0001 }, { 0x8500, 0x0235, 0x2000 }, { 0x0500, 0x0234, 0x0000 }, { 0x0500, 0x0236, 0x0000 }, { 0x8500, 0x0254, 0x3f32 }, { 0x8500, 0x0252, 0x2000 }, { 0x0500, 0x0251, 0x0000 }, { 0x0500, 0x0253, 0x0f2e }, { 0x8500, 0x0256, 0x2f33 }, { 0x0500, 0x0255, 0x0000 }, { 0x0500, 0x0257, 0x0f33 }, { 0x8500, 0x0278, 0x6000 }, { 0x8500, 0x0268, 0x5f2f }, { 0x8500, 0x0260, 0x4f33 }, { 0x8500, 0x025c, 0x3000 }, { 0x8500, 0x025a, 0x2000 }, { 0x0500, 0x0259, 0x0f36 }, { 0x0500, 0x025b, 0x0f35 }, { 0x8500, 0x025e, 0x2000 }, { 0x0500, 0x025d, 0x0000 }, { 0x0500, 0x025f, 0x0000 }, { 0x8500, 0x0264, 0x3000 }, { 0x8500, 0x0262, 0x2000 }, { 0x0500, 0x0261, 0x0000 }, { 0x0500, 0x0263, 0x0f31 }, { 0x8500, 0x0266, 0x2000 }, { 0x0500, 0x0265, 0x0000 }, { 0x0500, 0x0267, 0x0000 }, { 0x8500, 0x0270, 0x4000 }, { 0x8500, 0x026c, 0x3000 }, { 0x8500, 0x026a, 0x2000 }, { 0x0500, 0x0269, 0x0f2d }, { 0x0500, 0x026b, 0x0000 }, { 0x8500, 0x026e, 0x2000 }, { 0x0500, 0x026d, 0x0000 }, { 0x0500, 0x026f, 0x0f2d }, { 0x8500, 0x0274, 0x3000 }, { 0x8500, 0x0272, 0x2f2b }, { 0x0500, 0x0271, 0x0000 }, { 0x0500, 0x0273, 0x0000 }, { 0x8500, 0x0276, 0x2000 }, { 0x0500, 0x0275, 0x0f2a }, { 0x0500, 0x0277, 0x0000 }, { 0x8500, 0x0288, 0x5f26 }, { 0x8500, 0x0280, 0x4f26 }, { 0x8500, 0x027c, 0x3000 }, { 0x8500, 0x027a, 0x2000 }, { 0x0500, 0x0279, 0x0000 }, { 0x0500, 0x027b, 0x0000 }, { 0x8500, 0x027e, 0x2000 }, { 0x0500, 0x027d, 0x0000 }, { 0x0500, 0x027f, 0x0000 }, { 0x8500, 0x0284, 0x3000 }, { 0x8500, 0x0282, 0x2000 }, { 0x0500, 0x0281, 0x0000 }, { 0x0500, 0x0283, 0x0f26 }, { 0x8500, 0x0286, 0x2000 }, { 0x0500, 0x0285, 0x0000 }, { 0x0500, 0x0287, 0x0000 }, { 0x8500, 0x0290, 0x4000 }, { 0x8500, 0x028c, 0x3000 }, { 0x8500, 0x028a, 0x2f27 }, { 0x0500, 0x0289, 0x0000 }, { 0x0500, 0x028b, 0x0f27 }, { 0x8500, 0x028e, 0x2000 }, { 0x0500, 0x028d, 0x0000 }, { 0x0500, 0x028f, 0x0000 }, { 0x8500, 0x0294, 0x3000 }, { 0x8500, 0x0292, 0x2f25 }, { 0x0500, 0x0291, 0x0000 }, { 0x0500, 0x0293, 0x0000 }, { 0x8500, 0x0296, 0x2000 }, { 0x0500, 0x0295, 0x0000 }, { 0x0500, 0x0297, 0x0000 }, { 0x9800, 0x02d8, 0x7000 }, { 0x8600, 0x02b8, 0x6000 }, { 0x8500, 0x02a8, 0x5000 }, { 0x8500, 0x02a0, 0x4000 }, { 0x8500, 0x029c, 0x3000 }, { 0x8500, 0x029a, 0x2000 }, { 0x0500, 0x0299, 0x0000 }, { 0x0500, 0x029b, 0x0000 }, { 0x8500, 0x029e, 0x2000 }, { 0x0500, 0x029d, 0x0000 }, { 0x0500, 0x029f, 0x0000 }, { 0x8500, 0x02a4, 0x3000 }, { 0x8500, 0x02a2, 0x2000 }, { 0x0500, 0x02a1, 0x0000 }, { 0x0500, 0x02a3, 0x0000 }, { 0x8500, 0x02a6, 0x2000 }, { 0x0500, 0x02a5, 0x0000 }, { 0x0500, 0x02a7, 0x0000 }, { 0x8600, 0x02b0, 0x4000 }, { 0x8500, 0x02ac, 0x3000 }, { 0x8500, 0x02aa, 0x2000 }, { 0x0500, 0x02a9, 0x0000 }, { 0x0500, 0x02ab, 0x0000 }, { 0x8500, 0x02ae, 0x2000 }, { 0x0500, 0x02ad, 0x0000 }, { 0x0500, 0x02af, 0x0000 }, { 0x8600, 0x02b4, 0x3000 }, { 0x8600, 0x02b2, 0x2000 }, { 0x0600, 0x02b1, 0x0000 }, { 0x0600, 0x02b3, 0x0000 }, { 0x8600, 0x02b6, 0x2000 }, { 0x0600, 0x02b5, 0x0000 }, { 0x0600, 0x02b7, 0x0000 }, { 0x8600, 0x02c8, 0x5000 }, { 0x8600, 0x02c0, 0x4000 }, { 0x8600, 0x02bc, 0x3000 }, { 0x8600, 0x02ba, 0x2000 }, { 0x0600, 0x02b9, 0x0000 }, { 0x0600, 0x02bb, 0x0000 }, { 0x8600, 0x02be, 0x2000 }, { 0x0600, 0x02bd, 0x0000 }, { 0x0600, 0x02bf, 0x0000 }, { 0x9800, 0x02c4, 0x3000 }, { 0x9800, 0x02c2, 0x2000 }, { 0x0600, 0x02c1, 0x0000 }, { 0x1800, 0x02c3, 0x0000 }, { 0x8600, 0x02c6, 0x2000 }, { 0x1800, 0x02c5, 0x0000 }, { 0x0600, 0x02c7, 0x0000 }, { 0x8600, 0x02d0, 0x4000 }, { 0x8600, 0x02cc, 0x3000 }, { 0x8600, 0x02ca, 0x2000 }, { 0x0600, 0x02c9, 0x0000 }, { 0x0600, 0x02cb, 0x0000 }, { 0x8600, 0x02ce, 0x2000 }, { 0x0600, 0x02cd, 0x0000 }, { 0x0600, 0x02cf, 0x0000 }, { 0x9800, 0x02d4, 0x3000 }, { 0x9800, 0x02d2, 0x2000 }, { 0x0600, 0x02d1, 0x0000 }, { 0x1800, 0x02d3, 0x0000 }, { 0x9800, 0x02d6, 0x2000 }, { 0x1800, 0x02d5, 0x0000 }, { 0x1800, 0x02d7, 0x0000 }, { 0x9800, 0x02f8, 0x6000 }, { 0x9800, 0x02e8, 0x5000 }, { 0x8600, 0x02e0, 0x4000 }, { 0x9800, 0x02dc, 0x3000 }, { 0x9800, 0x02da, 0x2000 }, { 0x1800, 0x02d9, 0x0000 }, { 0x1800, 0x02db, 0x0000 }, { 0x9800, 0x02de, 0x2000 }, { 0x1800, 0x02dd, 0x0000 }, { 0x1800, 0x02df, 0x0000 }, { 0x8600, 0x02e4, 0x3000 }, { 0x8600, 0x02e2, 0x2000 }, { 0x0600, 0x02e1, 0x0000 }, { 0x0600, 0x02e3, 0x0000 }, { 0x9800, 0x02e6, 0x2000 }, { 0x1800, 0x02e5, 0x0000 }, { 0x1800, 0x02e7, 0x0000 }, { 0x9800, 0x02f0, 0x4000 }, { 0x9800, 0x02ec, 0x3000 }, { 0x9800, 0x02ea, 0x2000 }, { 0x1800, 0x02e9, 0x0000 }, { 0x1800, 0x02eb, 0x0000 }, { 0x8600, 0x02ee, 0x2000 }, { 0x1800, 0x02ed, 0x0000 }, { 0x1800, 0x02ef, 0x0000 }, { 0x9800, 0x02f4, 0x3000 }, { 0x9800, 0x02f2, 0x2000 }, { 0x1800, 0x02f1, 0x0000 }, { 0x1800, 0x02f3, 0x0000 }, { 0x9800, 0x02f6, 0x2000 }, { 0x1800, 0x02f5, 0x0000 }, { 0x1800, 0x02f7, 0x0000 }, { 0x8c00, 0x0308, 0x5000 }, { 0x8c00, 0x0300, 0x4000 }, { 0x9800, 0x02fc, 0x3000 }, { 0x9800, 0x02fa, 0x2000 }, { 0x1800, 0x02f9, 0x0000 }, { 0x1800, 0x02fb, 0x0000 }, { 0x9800, 0x02fe, 0x2000 }, { 0x1800, 0x02fd, 0x0000 }, { 0x1800, 0x02ff, 0x0000 }, { 0x8c00, 0x0304, 0x3000 }, { 0x8c00, 0x0302, 0x2000 }, { 0x0c00, 0x0301, 0x0000 }, { 0x0c00, 0x0303, 0x0000 }, { 0x8c00, 0x0306, 0x2000 }, { 0x0c00, 0x0305, 0x0000 }, { 0x0c00, 0x0307, 0x0000 }, { 0x8c00, 0x0310, 0x4000 }, { 0x8c00, 0x030c, 0x3000 }, { 0x8c00, 0x030a, 0x2000 }, { 0x0c00, 0x0309, 0x0000 }, { 0x0c00, 0x030b, 0x0000 }, { 0x8c00, 0x030e, 0x2000 }, { 0x0c00, 0x030d, 0x0000 }, { 0x0c00, 0x030f, 0x0000 }, { 0x8c00, 0x0314, 0x3000 }, { 0x8c00, 0x0312, 0x2000 }, { 0x0c00, 0x0311, 0x0000 }, { 0x0c00, 0x0313, 0x0000 }, { 0x8c00, 0x0316, 0x2000 }, { 0x0c00, 0x0315, 0x0000 }, { 0x0c00, 0x0317, 0x0000 }, { 0x8500, 0x03b0, 0x8000 }, { 0x8c00, 0x035d, 0x7000 }, { 0x8c00, 0x0338, 0x6000 }, { 0x8c00, 0x0328, 0x5000 }, { 0x8c00, 0x0320, 0x4000 }, { 0x8c00, 0x031c, 0x3000 }, { 0x8c00, 0x031a, 0x2000 }, { 0x0c00, 0x0319, 0x0000 }, { 0x0c00, 0x031b, 0x0000 }, { 0x8c00, 0x031e, 0x2000 }, { 0x0c00, 0x031d, 0x0000 }, { 0x0c00, 0x031f, 0x0000 }, { 0x8c00, 0x0324, 0x3000 }, { 0x8c00, 0x0322, 0x2000 }, { 0x0c00, 0x0321, 0x0000 }, { 0x0c00, 0x0323, 0x0000 }, { 0x8c00, 0x0326, 0x2000 }, { 0x0c00, 0x0325, 0x0000 }, { 0x0c00, 0x0327, 0x0000 }, { 0x8c00, 0x0330, 0x4000 }, { 0x8c00, 0x032c, 0x3000 }, { 0x8c00, 0x032a, 0x2000 }, { 0x0c00, 0x0329, 0x0000 }, { 0x0c00, 0x032b, 0x0000 }, { 0x8c00, 0x032e, 0x2000 }, { 0x0c00, 0x032d, 0x0000 }, { 0x0c00, 0x032f, 0x0000 }, { 0x8c00, 0x0334, 0x3000 }, { 0x8c00, 0x0332, 0x2000 }, { 0x0c00, 0x0331, 0x0000 }, { 0x0c00, 0x0333, 0x0000 }, { 0x8c00, 0x0336, 0x2000 }, { 0x0c00, 0x0335, 0x0000 }, { 0x0c00, 0x0337, 0x0000 }, { 0x8c00, 0x0348, 0x5000 }, { 0x8c00, 0x0340, 0x4000 }, { 0x8c00, 0x033c, 0x3000 }, { 0x8c00, 0x033a, 0x2000 }, { 0x0c00, 0x0339, 0x0000 }, { 0x0c00, 0x033b, 0x0000 }, { 0x8c00, 0x033e, 0x2000 }, { 0x0c00, 0x033d, 0x0000 }, { 0x0c00, 0x033f, 0x0000 }, { 0x8c00, 0x0344, 0x3000 }, { 0x8c00, 0x0342, 0x2000 }, { 0x0c00, 0x0341, 0x0000 }, { 0x0c00, 0x0343, 0x0000 }, { 0x8c00, 0x0346, 0x2000 }, { 0x0c00, 0x0345, 0x0000 }, { 0x0c00, 0x0347, 0x0000 }, { 0x8c00, 0x0350, 0x4000 }, { 0x8c00, 0x034c, 0x3000 }, { 0x8c00, 0x034a, 0x2000 }, { 0x0c00, 0x0349, 0x0000 }, { 0x0c00, 0x034b, 0x0000 }, { 0x8c00, 0x034e, 0x2000 }, { 0x0c00, 0x034d, 0x0000 }, { 0x0c00, 0x034f, 0x0000 }, { 0x8c00, 0x0354, 0x3000 }, { 0x8c00, 0x0352, 0x2000 }, { 0x0c00, 0x0351, 0x0000 }, { 0x0c00, 0x0353, 0x0000 }, { 0x8c00, 0x0356, 0x2000 }, { 0x0c00, 0x0355, 0x0000 }, { 0x0c00, 0x0357, 0x0000 }, { 0x8900, 0x038f, 0x603f }, { 0x8c00, 0x036d, 0x5000 }, { 0x8c00, 0x0365, 0x4000 }, { 0x8c00, 0x0361, 0x3000 }, { 0x8c00, 0x035f, 0x2000 }, { 0x0c00, 0x035e, 0x0000 }, { 0x0c00, 0x0360, 0x0000 }, { 0x8c00, 0x0363, 0x2000 }, { 0x0c00, 0x0362, 0x0000 }, { 0x0c00, 0x0364, 0x0000 }, { 0x8c00, 0x0369, 0x3000 }, { 0x8c00, 0x0367, 0x2000 }, { 0x0c00, 0x0366, 0x0000 }, { 0x0c00, 0x0368, 0x0000 }, { 0x8c00, 0x036b, 0x2000 }, { 0x0c00, 0x036a, 0x0000 }, { 0x0c00, 0x036c, 0x0000 }, { 0x9800, 0x0385, 0x4000 }, { 0x9800, 0x0375, 0x3000 }, { 0x8c00, 0x036f, 0x2000 }, { 0x0c00, 0x036e, 0x0000 }, { 0x1800, 0x0374, 0x0000 }, { 0x9500, 0x037e, 0x2000 }, { 0x0600, 0x037a, 0x0000 }, { 0x1800, 0x0384, 0x0000 }, { 0x8900, 0x0389, 0x3025 }, { 0x9500, 0x0387, 0x2000 }, { 0x0900, 0x0386, 0x0026 }, { 0x0900, 0x0388, 0x0025 }, { 0x8900, 0x038c, 0x2040 }, { 0x0900, 0x038a, 0x0025 }, { 0x0900, 0x038e, 0x003f }, { 0x8900, 0x039f, 0x5020 }, { 0x8900, 0x0397, 0x4020 }, { 0x8900, 0x0393, 0x3020 }, { 0x8900, 0x0391, 0x2020 }, { 0x0500, 0x0390, 0x0000 }, { 0x0900, 0x0392, 0x0020 }, { 0x8900, 0x0395, 0x2020 }, { 0x0900, 0x0394, 0x0020 }, { 0x0900, 0x0396, 0x0020 }, { 0x8900, 0x039b, 0x3020 }, { 0x8900, 0x0399, 0x2020 }, { 0x0900, 0x0398, 0x0020 }, { 0x0900, 0x039a, 0x0020 }, { 0x8900, 0x039d, 0x2020 }, { 0x0900, 0x039c, 0x0020 }, { 0x0900, 0x039e, 0x0020 }, { 0x8900, 0x03a8, 0x4020 }, { 0x8900, 0x03a4, 0x3020 }, { 0x8900, 0x03a1, 0x2020 }, { 0x0900, 0x03a0, 0x0020 }, { 0x0900, 0x03a3, 0x0020 }, { 0x8900, 0x03a6, 0x2020 }, { 0x0900, 0x03a5, 0x0020 }, { 0x0900, 0x03a7, 0x0020 }, { 0x8500, 0x03ac, 0x3fda }, { 0x8900, 0x03aa, 0x2020 }, { 0x0900, 0x03a9, 0x0020 }, { 0x0900, 0x03ab, 0x0020 }, { 0x8500, 0x03ae, 0x2fdb }, { 0x0500, 0x03ad, 0x0fdb }, { 0x0500, 0x03af, 0x0fdb }, { 0x8500, 0x03f1, 0x7fb0 }, { 0x8500, 0x03d1, 0x6fc7 }, { 0x8500, 0x03c0, 0x5fe0 }, { 0x8500, 0x03b8, 0x4fe0 }, { 0x8500, 0x03b4, 0x3fe0 }, { 0x8500, 0x03b2, 0x2fe0 }, { 0x0500, 0x03b1, 0x0fe0 }, { 0x0500, 0x03b3, 0x0fe0 }, { 0x8500, 0x03b6, 0x2fe0 }, { 0x0500, 0x03b5, 0x0fe0 }, { 0x0500, 0x03b7, 0x0fe0 }, { 0x8500, 0x03bc, 0x3fe0 }, { 0x8500, 0x03ba, 0x2fe0 }, { 0x0500, 0x03b9, 0x0fe0 }, { 0x0500, 0x03bb, 0x0fe0 }, { 0x8500, 0x03be, 0x2fe0 }, { 0x0500, 0x03bd, 0x0fe0 }, { 0x0500, 0x03bf, 0x0fe0 }, { 0x8500, 0x03c8, 0x4fe0 }, { 0x8500, 0x03c4, 0x3fe0 }, { 0x8500, 0x03c2, 0x2fe1 }, { 0x0500, 0x03c1, 0x0fe0 }, { 0x0500, 0x03c3, 0x0fe0 }, { 0x8500, 0x03c6, 0x2fe0 }, { 0x0500, 0x03c5, 0x0fe0 }, { 0x0500, 0x03c7, 0x0fe0 }, { 0x8500, 0x03cc, 0x3fc0 }, { 0x8500, 0x03ca, 0x2fe0 }, { 0x0500, 0x03c9, 0x0fe0 }, { 0x0500, 0x03cb, 0x0fe0 }, { 0x8500, 0x03ce, 0x2fc1 }, { 0x0500, 0x03cd, 0x0fc1 }, { 0x0500, 0x03d0, 0x0fc2 }, { 0x8500, 0x03e1, 0x5fff }, { 0x8500, 0x03d9, 0x4fff }, { 0x8500, 0x03d5, 0x3fd1 }, { 0x8900, 0x03d3, 0x2000 }, { 0x0900, 0x03d2, 0x0000 }, { 0x0900, 0x03d4, 0x0000 }, { 0x8500, 0x03d7, 0x2000 }, { 0x0500, 0x03d6, 0x0fca }, { 0x0900, 0x03d8, 0x0001 }, { 0x8500, 0x03dd, 0x3fff }, { 0x8500, 0x03db, 0x2fff }, { 0x0900, 0x03da, 0x0001 }, { 0x0900, 0x03dc, 0x0001 }, { 0x8500, 0x03df, 0x2fff }, { 0x0900, 0x03de, 0x0001 }, { 0x0900, 0x03e0, 0x0001 }, { 0x8500, 0x03e9, 0x4fff }, { 0x8500, 0x03e5, 0x3fff }, { 0x8500, 0x03e3, 0x2fff }, { 0x0900, 0x03e2, 0x0001 }, { 0x0900, 0x03e4, 0x0001 }, { 0x8500, 0x03e7, 0x2fff }, { 0x0900, 0x03e6, 0x0001 }, { 0x0900, 0x03e8, 0x0001 }, { 0x8500, 0x03ed, 0x3fff }, { 0x8500, 0x03eb, 0x2fff }, { 0x0900, 0x03ea, 0x0001 }, { 0x0900, 0x03ec, 0x0001 }, { 0x8500, 0x03ef, 0x2fff }, { 0x0900, 0x03ee, 0x0001 }, { 0x0500, 0x03f0, 0x0faa }, { 0x8900, 0x0415, 0x6020 }, { 0x8900, 0x0405, 0x5050 }, { 0x8900, 0x03f9, 0x4ff9 }, { 0x8500, 0x03f5, 0x3fa0 }, { 0x8500, 0x03f3, 0x2000 }, { 0x0500, 0x03f2, 0x0007 }, { 0x0900, 0x03f4, 0x0fc4 }, { 0x8900, 0x03f7, 0x2001 }, { 0x1900, 0x03f6, 0x0000 }, { 0x0500, 0x03f8, 0x0fff }, { 0x8900, 0x0401, 0x3050 }, { 0x8500, 0x03fb, 0x2fff }, { 0x0900, 0x03fa, 0x0001 }, { 0x0900, 0x0400, 0x0050 }, { 0x8900, 0x0403, 0x2050 }, { 0x0900, 0x0402, 0x0050 }, { 0x0900, 0x0404, 0x0050 }, { 0x8900, 0x040d, 0x4050 }, { 0x8900, 0x0409, 0x3050 }, { 0x8900, 0x0407, 0x2050 }, { 0x0900, 0x0406, 0x0050 }, { 0x0900, 0x0408, 0x0050 }, { 0x8900, 0x040b, 0x2050 }, { 0x0900, 0x040a, 0x0050 }, { 0x0900, 0x040c, 0x0050 }, { 0x8900, 0x0411, 0x3020 }, { 0x8900, 0x040f, 0x2050 }, { 0x0900, 0x040e, 0x0050 }, { 0x0900, 0x0410, 0x0020 }, { 0x8900, 0x0413, 0x2020 }, { 0x0900, 0x0412, 0x0020 }, { 0x0900, 0x0414, 0x0020 }, { 0x8900, 0x0425, 0x5020 }, { 0x8900, 0x041d, 0x4020 }, { 0x8900, 0x0419, 0x3020 }, { 0x8900, 0x0417, 0x2020 }, { 0x0900, 0x0416, 0x0020 }, { 0x0900, 0x0418, 0x0020 }, { 0x8900, 0x041b, 0x2020 }, { 0x0900, 0x041a, 0x0020 }, { 0x0900, 0x041c, 0x0020 }, { 0x8900, 0x0421, 0x3020 }, { 0x8900, 0x041f, 0x2020 }, { 0x0900, 0x041e, 0x0020 }, { 0x0900, 0x0420, 0x0020 }, { 0x8900, 0x0423, 0x2020 }, { 0x0900, 0x0422, 0x0020 }, { 0x0900, 0x0424, 0x0020 }, { 0x8900, 0x042d, 0x4020 }, { 0x8900, 0x0429, 0x3020 }, { 0x8900, 0x0427, 0x2020 }, { 0x0900, 0x0426, 0x0020 }, { 0x0900, 0x0428, 0x0020 }, { 0x8900, 0x042b, 0x2020 }, { 0x0900, 0x042a, 0x0020 }, { 0x0900, 0x042c, 0x0020 }, { 0x8500, 0x0431, 0x3fe0 }, { 0x8900, 0x042f, 0x2020 }, { 0x0900, 0x042e, 0x0020 }, { 0x0500, 0x0430, 0x0fe0 }, { 0x8500, 0x0433, 0x2fe0 }, { 0x0500, 0x0432, 0x0fe0 }, { 0x0500, 0x0434, 0x0fe0 }, { 0x8700, 0x06a4, 0xa000 }, { 0x8500, 0x0563, 0x9fd0 }, { 0x8900, 0x04b6, 0x8001 }, { 0x8500, 0x0475, 0x7fff }, { 0x8500, 0x0455, 0x6fb0 }, { 0x8500, 0x0445, 0x5fe0 }, { 0x8500, 0x043d, 0x4fe0 }, { 0x8500, 0x0439, 0x3fe0 }, { 0x8500, 0x0437, 0x2fe0 }, { 0x0500, 0x0436, 0x0fe0 }, { 0x0500, 0x0438, 0x0fe0 }, { 0x8500, 0x043b, 0x2fe0 }, { 0x0500, 0x043a, 0x0fe0 }, { 0x0500, 0x043c, 0x0fe0 }, { 0x8500, 0x0441, 0x3fe0 }, { 0x8500, 0x043f, 0x2fe0 }, { 0x0500, 0x043e, 0x0fe0 }, { 0x0500, 0x0440, 0x0fe0 }, { 0x8500, 0x0443, 0x2fe0 }, { 0x0500, 0x0442, 0x0fe0 }, { 0x0500, 0x0444, 0x0fe0 }, { 0x8500, 0x044d, 0x4fe0 }, { 0x8500, 0x0449, 0x3fe0 }, { 0x8500, 0x0447, 0x2fe0 }, { 0x0500, 0x0446, 0x0fe0 }, { 0x0500, 0x0448, 0x0fe0 }, { 0x8500, 0x044b, 0x2fe0 }, { 0x0500, 0x044a, 0x0fe0 }, { 0x0500, 0x044c, 0x0fe0 }, { 0x8500, 0x0451, 0x3fb0 }, { 0x8500, 0x044f, 0x2fe0 }, { 0x0500, 0x044e, 0x0fe0 }, { 0x0500, 0x0450, 0x0fb0 }, { 0x8500, 0x0453, 0x2fb0 }, { 0x0500, 0x0452, 0x0fb0 }, { 0x0500, 0x0454, 0x0fb0 }, { 0x8500, 0x0465, 0x5fff }, { 0x8500, 0x045d, 0x4fb0 }, { 0x8500, 0x0459, 0x3fb0 }, { 0x8500, 0x0457, 0x2fb0 }, { 0x0500, 0x0456, 0x0fb0 }, { 0x0500, 0x0458, 0x0fb0 }, { 0x8500, 0x045b, 0x2fb0 }, { 0x0500, 0x045a, 0x0fb0 }, { 0x0500, 0x045c, 0x0fb0 }, { 0x8500, 0x0461, 0x3fff }, { 0x8500, 0x045f, 0x2fb0 }, { 0x0500, 0x045e, 0x0fb0 }, { 0x0900, 0x0460, 0x0001 }, { 0x8500, 0x0463, 0x2fff }, { 0x0900, 0x0462, 0x0001 }, { 0x0900, 0x0464, 0x0001 }, { 0x8500, 0x046d, 0x4fff }, { 0x8500, 0x0469, 0x3fff }, { 0x8500, 0x0467, 0x2fff }, { 0x0900, 0x0466, 0x0001 }, { 0x0900, 0x0468, 0x0001 }, { 0x8500, 0x046b, 0x2fff }, { 0x0900, 0x046a, 0x0001 }, { 0x0900, 0x046c, 0x0001 }, { 0x8500, 0x0471, 0x3fff }, { 0x8500, 0x046f, 0x2fff }, { 0x0900, 0x046e, 0x0001 }, { 0x0900, 0x0470, 0x0001 }, { 0x8500, 0x0473, 0x2fff }, { 0x0900, 0x0472, 0x0001 }, { 0x0900, 0x0474, 0x0001 }, { 0x8900, 0x0496, 0x6001 }, { 0x8c00, 0x0485, 0x5000 }, { 0x8500, 0x047d, 0x4fff }, { 0x8500, 0x0479, 0x3fff }, { 0x8500, 0x0477, 0x2fff }, { 0x0900, 0x0476, 0x0001 }, { 0x0900, 0x0478, 0x0001 }, { 0x8500, 0x047b, 0x2fff }, { 0x0900, 0x047a, 0x0001 }, { 0x0900, 0x047c, 0x0001 }, { 0x8500, 0x0481, 0x3fff }, { 0x8500, 0x047f, 0x2fff }, { 0x0900, 0x047e, 0x0001 }, { 0x0900, 0x0480, 0x0001 }, { 0x8c00, 0x0483, 0x2000 }, { 0x1a00, 0x0482, 0x0000 }, { 0x0c00, 0x0484, 0x0000 }, { 0x8900, 0x048e, 0x4001 }, { 0x8900, 0x048a, 0x3001 }, { 0x8b00, 0x0488, 0x2000 }, { 0x0c00, 0x0486, 0x0000 }, { 0x0b00, 0x0489, 0x0000 }, { 0x8900, 0x048c, 0x2001 }, { 0x0500, 0x048b, 0x0fff }, { 0x0500, 0x048d, 0x0fff }, { 0x8900, 0x0492, 0x3001 }, { 0x8900, 0x0490, 0x2001 }, { 0x0500, 0x048f, 0x0fff }, { 0x0500, 0x0491, 0x0fff }, { 0x8900, 0x0494, 0x2001 }, { 0x0500, 0x0493, 0x0fff }, { 0x0500, 0x0495, 0x0fff }, { 0x8900, 0x04a6, 0x5001 }, { 0x8900, 0x049e, 0x4001 }, { 0x8900, 0x049a, 0x3001 }, { 0x8900, 0x0498, 0x2001 }, { 0x0500, 0x0497, 0x0fff }, { 0x0500, 0x0499, 0x0fff }, { 0x8900, 0x049c, 0x2001 }, { 0x0500, 0x049b, 0x0fff }, { 0x0500, 0x049d, 0x0fff }, { 0x8900, 0x04a2, 0x3001 }, { 0x8900, 0x04a0, 0x2001 }, { 0x0500, 0x049f, 0x0fff }, { 0x0500, 0x04a1, 0x0fff }, { 0x8900, 0x04a4, 0x2001 }, { 0x0500, 0x04a3, 0x0fff }, { 0x0500, 0x04a5, 0x0fff }, { 0x8900, 0x04ae, 0x4001 }, { 0x8900, 0x04aa, 0x3001 }, { 0x8900, 0x04a8, 0x2001 }, { 0x0500, 0x04a7, 0x0fff }, { 0x0500, 0x04a9, 0x0fff }, { 0x8900, 0x04ac, 0x2001 }, { 0x0500, 0x04ab, 0x0fff }, { 0x0500, 0x04ad, 0x0fff }, { 0x8900, 0x04b2, 0x3001 }, { 0x8900, 0x04b0, 0x2001 }, { 0x0500, 0x04af, 0x0fff }, { 0x0500, 0x04b1, 0x0fff }, { 0x8900, 0x04b4, 0x2001 }, { 0x0500, 0x04b3, 0x0fff }, { 0x0500, 0x04b5, 0x0fff }, { 0x8500, 0x04f9, 0x7fff }, { 0x8500, 0x04d7, 0x6fff }, { 0x8500, 0x04c6, 0x5fff }, { 0x8900, 0x04be, 0x4001 }, { 0x8900, 0x04ba, 0x3001 }, { 0x8900, 0x04b8, 0x2001 }, { 0x0500, 0x04b7, 0x0fff }, { 0x0500, 0x04b9, 0x0fff }, { 0x8900, 0x04bc, 0x2001 }, { 0x0500, 0x04bb, 0x0fff }, { 0x0500, 0x04bd, 0x0fff }, { 0x8500, 0x04c2, 0x3fff }, { 0x8900, 0x04c0, 0x2000 }, { 0x0500, 0x04bf, 0x0fff }, { 0x0900, 0x04c1, 0x0001 }, { 0x8500, 0x04c4, 0x2fff }, { 0x0900, 0x04c3, 0x0001 }, { 0x0900, 0x04c5, 0x0001 }, { 0x8500, 0x04ce, 0x4fff }, { 0x8500, 0x04ca, 0x3fff }, { 0x8500, 0x04c8, 0x2fff }, { 0x0900, 0x04c7, 0x0001 }, { 0x0900, 0x04c9, 0x0001 }, { 0x8500, 0x04cc, 0x2fff }, { 0x0900, 0x04cb, 0x0001 }, { 0x0900, 0x04cd, 0x0001 }, { 0x8500, 0x04d3, 0x3fff }, { 0x8500, 0x04d1, 0x2fff }, { 0x0900, 0x04d0, 0x0001 }, { 0x0900, 0x04d2, 0x0001 }, { 0x8500, 0x04d5, 0x2fff }, { 0x0900, 0x04d4, 0x0001 }, { 0x0900, 0x04d6, 0x0001 }, { 0x8500, 0x04e7, 0x5fff }, { 0x8500, 0x04df, 0x4fff }, { 0x8500, 0x04db, 0x3fff }, { 0x8500, 0x04d9, 0x2fff }, { 0x0900, 0x04d8, 0x0001 }, { 0x0900, 0x04da, 0x0001 }, { 0x8500, 0x04dd, 0x2fff }, { 0x0900, 0x04dc, 0x0001 }, { 0x0900, 0x04de, 0x0001 }, { 0x8500, 0x04e3, 0x3fff }, { 0x8500, 0x04e1, 0x2fff }, { 0x0900, 0x04e0, 0x0001 }, { 0x0900, 0x04e2, 0x0001 }, { 0x8500, 0x04e5, 0x2fff }, { 0x0900, 0x04e4, 0x0001 }, { 0x0900, 0x04e6, 0x0001 }, { 0x8500, 0x04ef, 0x4fff }, { 0x8500, 0x04eb, 0x3fff }, { 0x8500, 0x04e9, 0x2fff }, { 0x0900, 0x04e8, 0x0001 }, { 0x0900, 0x04ea, 0x0001 }, { 0x8500, 0x04ed, 0x2fff }, { 0x0900, 0x04ec, 0x0001 }, { 0x0900, 0x04ee, 0x0001 }, { 0x8500, 0x04f3, 0x3fff }, { 0x8500, 0x04f1, 0x2fff }, { 0x0900, 0x04f0, 0x0001 }, { 0x0900, 0x04f2, 0x0001 }, { 0x8500, 0x04f5, 0x2fff }, { 0x0900, 0x04f4, 0x0001 }, { 0x0900, 0x04f8, 0x0001 }, { 0x8900, 0x0540, 0x6030 }, { 0x8500, 0x050f, 0x5fff }, { 0x8500, 0x0507, 0x4fff }, { 0x8500, 0x0503, 0x3fff }, { 0x8500, 0x0501, 0x2fff }, { 0x0900, 0x0500, 0x0001 }, { 0x0900, 0x0502, 0x0001 }, { 0x8500, 0x0505, 0x2fff }, { 0x0900, 0x0504, 0x0001 }, { 0x0900, 0x0506, 0x0001 }, { 0x8500, 0x050b, 0x3fff }, { 0x8500, 0x0509, 0x2fff }, { 0x0900, 0x0508, 0x0001 }, { 0x0900, 0x050a, 0x0001 }, { 0x8500, 0x050d, 0x2fff }, { 0x0900, 0x050c, 0x0001 }, { 0x0900, 0x050e, 0x0001 }, { 0x8900, 0x0538, 0x4030 }, { 0x8900, 0x0534, 0x3030 }, { 0x8900, 0x0532, 0x2030 }, { 0x0900, 0x0531, 0x0030 }, { 0x0900, 0x0533, 0x0030 }, { 0x8900, 0x0536, 0x2030 }, { 0x0900, 0x0535, 0x0030 }, { 0x0900, 0x0537, 0x0030 }, { 0x8900, 0x053c, 0x3030 }, { 0x8900, 0x053a, 0x2030 }, { 0x0900, 0x0539, 0x0030 }, { 0x0900, 0x053b, 0x0030 }, { 0x8900, 0x053e, 0x2030 }, { 0x0900, 0x053d, 0x0030 }, { 0x0900, 0x053f, 0x0030 }, { 0x8900, 0x0550, 0x5030 }, { 0x8900, 0x0548, 0x4030 }, { 0x8900, 0x0544, 0x3030 }, { 0x8900, 0x0542, 0x2030 }, { 0x0900, 0x0541, 0x0030 }, { 0x0900, 0x0543, 0x0030 }, { 0x8900, 0x0546, 0x2030 }, { 0x0900, 0x0545, 0x0030 }, { 0x0900, 0x0547, 0x0030 }, { 0x8900, 0x054c, 0x3030 }, { 0x8900, 0x054a, 0x2030 }, { 0x0900, 0x0549, 0x0030 }, { 0x0900, 0x054b, 0x0030 }, { 0x8900, 0x054e, 0x2030 }, { 0x0900, 0x054d, 0x0030 }, { 0x0900, 0x054f, 0x0030 }, { 0x9500, 0x055a, 0x4000 }, { 0x8900, 0x0554, 0x3030 }, { 0x8900, 0x0552, 0x2030 }, { 0x0900, 0x0551, 0x0030 }, { 0x0900, 0x0553, 0x0030 }, { 0x8900, 0x0556, 0x2030 }, { 0x0900, 0x0555, 0x0030 }, { 0x0600, 0x0559, 0x0000 }, { 0x9500, 0x055e, 0x3000 }, { 0x9500, 0x055c, 0x2000 }, { 0x1500, 0x055b, 0x0000 }, { 0x1500, 0x055d, 0x0000 }, { 0x8500, 0x0561, 0x2fd0 }, { 0x1500, 0x055f, 0x0000 }, { 0x0500, 0x0562, 0x0fd0 }, { 0x9a00, 0x060f, 0x8000 }, { 0x8c00, 0x05ab, 0x7000 }, { 0x8500, 0x0583, 0x6fd0 }, { 0x8500, 0x0573, 0x5fd0 }, { 0x8500, 0x056b, 0x4fd0 }, { 0x8500, 0x0567, 0x3fd0 }, { 0x8500, 0x0565, 0x2fd0 }, { 0x0500, 0x0564, 0x0fd0 }, { 0x0500, 0x0566, 0x0fd0 }, { 0x8500, 0x0569, 0x2fd0 }, { 0x0500, 0x0568, 0x0fd0 }, { 0x0500, 0x056a, 0x0fd0 }, { 0x8500, 0x056f, 0x3fd0 }, { 0x8500, 0x056d, 0x2fd0 }, { 0x0500, 0x056c, 0x0fd0 }, { 0x0500, 0x056e, 0x0fd0 }, { 0x8500, 0x0571, 0x2fd0 }, { 0x0500, 0x0570, 0x0fd0 }, { 0x0500, 0x0572, 0x0fd0 }, { 0x8500, 0x057b, 0x4fd0 }, { 0x8500, 0x0577, 0x3fd0 }, { 0x8500, 0x0575, 0x2fd0 }, { 0x0500, 0x0574, 0x0fd0 }, { 0x0500, 0x0576, 0x0fd0 }, { 0x8500, 0x0579, 0x2fd0 }, { 0x0500, 0x0578, 0x0fd0 }, { 0x0500, 0x057a, 0x0fd0 }, { 0x8500, 0x057f, 0x3fd0 }, { 0x8500, 0x057d, 0x2fd0 }, { 0x0500, 0x057c, 0x0fd0 }, { 0x0500, 0x057e, 0x0fd0 }, { 0x8500, 0x0581, 0x2fd0 }, { 0x0500, 0x0580, 0x0fd0 }, { 0x0500, 0x0582, 0x0fd0 }, { 0x8c00, 0x059a, 0x5000 }, { 0x8c00, 0x0592, 0x4000 }, { 0x8500, 0x0587, 0x3000 }, { 0x8500, 0x0585, 0x2fd0 }, { 0x0500, 0x0584, 0x0fd0 }, { 0x0500, 0x0586, 0x0fd0 }, { 0x9100, 0x058a, 0x2000 }, { 0x1500, 0x0589, 0x0000 }, { 0x0c00, 0x0591, 0x0000 }, { 0x8c00, 0x0596, 0x3000 }, { 0x8c00, 0x0594, 0x2000 }, { 0x0c00, 0x0593, 0x0000 }, { 0x0c00, 0x0595, 0x0000 }, { 0x8c00, 0x0598, 0x2000 }, { 0x0c00, 0x0597, 0x0000 }, { 0x0c00, 0x0599, 0x0000 }, { 0x8c00, 0x05a3, 0x4000 }, { 0x8c00, 0x059e, 0x3000 }, { 0x8c00, 0x059c, 0x2000 }, { 0x0c00, 0x059b, 0x0000 }, { 0x0c00, 0x059d, 0x0000 }, { 0x8c00, 0x05a0, 0x2000 }, { 0x0c00, 0x059f, 0x0000 }, { 0x0c00, 0x05a1, 0x0000 }, { 0x8c00, 0x05a7, 0x3000 }, { 0x8c00, 0x05a5, 0x2000 }, { 0x0c00, 0x05a4, 0x0000 }, { 0x0c00, 0x05a6, 0x0000 }, { 0x8c00, 0x05a9, 0x2000 }, { 0x0c00, 0x05a8, 0x0000 }, { 0x0c00, 0x05aa, 0x0000 }, { 0x8700, 0x05d7, 0x6000 }, { 0x8c00, 0x05bc, 0x5000 }, { 0x8c00, 0x05b3, 0x4000 }, { 0x8c00, 0x05af, 0x3000 }, { 0x8c00, 0x05ad, 0x2000 }, { 0x0c00, 0x05ac, 0x0000 }, { 0x0c00, 0x05ae, 0x0000 }, { 0x8c00, 0x05b1, 0x2000 }, { 0x0c00, 0x05b0, 0x0000 }, { 0x0c00, 0x05b2, 0x0000 }, { 0x8c00, 0x05b7, 0x3000 }, { 0x8c00, 0x05b5, 0x2000 }, { 0x0c00, 0x05b4, 0x0000 }, { 0x0c00, 0x05b6, 0x0000 }, { 0x8c00, 0x05b9, 0x2000 }, { 0x0c00, 0x05b8, 0x0000 }, { 0x0c00, 0x05bb, 0x0000 }, { 0x8c00, 0x05c4, 0x4000 }, { 0x9500, 0x05c0, 0x3000 }, { 0x9500, 0x05be, 0x2000 }, { 0x0c00, 0x05bd, 0x0000 }, { 0x0c00, 0x05bf, 0x0000 }, { 0x8c00, 0x05c2, 0x2000 }, { 0x0c00, 0x05c1, 0x0000 }, { 0x1500, 0x05c3, 0x0000 }, { 0x8700, 0x05d3, 0x3000 }, { 0x8700, 0x05d1, 0x2000 }, { 0x0700, 0x05d0, 0x0000 }, { 0x0700, 0x05d2, 0x0000 }, { 0x8700, 0x05d5, 0x2000 }, { 0x0700, 0x05d4, 0x0000 }, { 0x0700, 0x05d6, 0x0000 }, { 0x8700, 0x05e7, 0x5000 }, { 0x8700, 0x05df, 0x4000 }, { 0x8700, 0x05db, 0x3000 }, { 0x8700, 0x05d9, 0x2000 }, { 0x0700, 0x05d8, 0x0000 }, { 0x0700, 0x05da, 0x0000 }, { 0x8700, 0x05dd, 0x2000 }, { 0x0700, 0x05dc, 0x0000 }, { 0x0700, 0x05de, 0x0000 }, { 0x8700, 0x05e3, 0x3000 }, { 0x8700, 0x05e1, 0x2000 }, { 0x0700, 0x05e0, 0x0000 }, { 0x0700, 0x05e2, 0x0000 }, { 0x8700, 0x05e5, 0x2000 }, { 0x0700, 0x05e4, 0x0000 }, { 0x0700, 0x05e6, 0x0000 }, { 0x9500, 0x05f4, 0x4000 }, { 0x8700, 0x05f0, 0x3000 }, { 0x8700, 0x05e9, 0x2000 }, { 0x0700, 0x05e8, 0x0000 }, { 0x0700, 0x05ea, 0x0000 }, { 0x8700, 0x05f2, 0x2000 }, { 0x0700, 0x05f1, 0x0000 }, { 0x1500, 0x05f3, 0x0000 }, { 0x8100, 0x0603, 0x3000 }, { 0x8100, 0x0601, 0x2000 }, { 0x0100, 0x0600, 0x0000 }, { 0x0100, 0x0602, 0x0000 }, { 0x9500, 0x060d, 0x2000 }, { 0x1500, 0x060c, 0x0000 }, { 0x1a00, 0x060e, 0x0000 }, { 0x8d00, 0x0664, 0x7000 }, { 0x8700, 0x0638, 0x6000 }, { 0x8700, 0x0628, 0x5000 }, { 0x9500, 0x061f, 0x4000 }, { 0x8c00, 0x0613, 0x3000 }, { 0x8c00, 0x0611, 0x2000 }, { 0x0c00, 0x0610, 0x0000 }, { 0x0c00, 0x0612, 0x0000 }, { 0x8c00, 0x0615, 0x2000 }, { 0x0c00, 0x0614, 0x0000 }, { 0x1500, 0x061b, 0x0000 }, { 0x8700, 0x0624, 0x3000 }, { 0x8700, 0x0622, 0x2000 }, { 0x0700, 0x0621, 0x0000 }, { 0x0700, 0x0623, 0x0000 }, { 0x8700, 0x0626, 0x2000 }, { 0x0700, 0x0625, 0x0000 }, { 0x0700, 0x0627, 0x0000 }, { 0x8700, 0x0630, 0x4000 }, { 0x8700, 0x062c, 0x3000 }, { 0x8700, 0x062a, 0x2000 }, { 0x0700, 0x0629, 0x0000 }, { 0x0700, 0x062b, 0x0000 }, { 0x8700, 0x062e, 0x2000 }, { 0x0700, 0x062d, 0x0000 }, { 0x0700, 0x062f, 0x0000 }, { 0x8700, 0x0634, 0x3000 }, { 0x8700, 0x0632, 0x2000 }, { 0x0700, 0x0631, 0x0000 }, { 0x0700, 0x0633, 0x0000 }, { 0x8700, 0x0636, 0x2000 }, { 0x0700, 0x0635, 0x0000 }, { 0x0700, 0x0637, 0x0000 }, { 0x8c00, 0x064d, 0x5000 }, { 0x8700, 0x0645, 0x4000 }, { 0x8700, 0x0641, 0x3000 }, { 0x8700, 0x063a, 0x2000 }, { 0x0700, 0x0639, 0x0000 }, { 0x0600, 0x0640, 0x0000 }, { 0x8700, 0x0643, 0x2000 }, { 0x0700, 0x0642, 0x0000 }, { 0x0700, 0x0644, 0x0000 }, { 0x8700, 0x0649, 0x3000 }, { 0x8700, 0x0647, 0x2000 }, { 0x0700, 0x0646, 0x0000 }, { 0x0700, 0x0648, 0x0000 }, { 0x8c00, 0x064b, 0x2000 }, { 0x0700, 0x064a, 0x0000 }, { 0x0c00, 0x064c, 0x0000 }, { 0x8c00, 0x0655, 0x4000 }, { 0x8c00, 0x0651, 0x3000 }, { 0x8c00, 0x064f, 0x2000 }, { 0x0c00, 0x064e, 0x0000 }, { 0x0c00, 0x0650, 0x0000 }, { 0x8c00, 0x0653, 0x2000 }, { 0x0c00, 0x0652, 0x0000 }, { 0x0c00, 0x0654, 0x0000 }, { 0x8d00, 0x0660, 0x3000 }, { 0x8c00, 0x0657, 0x2000 }, { 0x0c00, 0x0656, 0x0000 }, { 0x0c00, 0x0658, 0x0000 }, { 0x8d00, 0x0662, 0x2000 }, { 0x0d00, 0x0661, 0x0000 }, { 0x0d00, 0x0663, 0x0000 }, { 0x8700, 0x0684, 0x6000 }, { 0x8700, 0x0674, 0x5000 }, { 0x9500, 0x066c, 0x4000 }, { 0x8d00, 0x0668, 0x3000 }, { 0x8d00, 0x0666, 0x2000 }, { 0x0d00, 0x0665, 0x0000 }, { 0x0d00, 0x0667, 0x0000 }, { 0x9500, 0x066a, 0x2000 }, { 0x0d00, 0x0669, 0x0000 }, { 0x1500, 0x066b, 0x0000 }, { 0x8c00, 0x0670, 0x3000 }, { 0x8700, 0x066e, 0x2000 }, { 0x1500, 0x066d, 0x0000 }, { 0x0700, 0x066f, 0x0000 }, { 0x8700, 0x0672, 0x2000 }, { 0x0700, 0x0671, 0x0000 }, { 0x0700, 0x0673, 0x0000 }, { 0x8700, 0x067c, 0x4000 }, { 0x8700, 0x0678, 0x3000 }, { 0x8700, 0x0676, 0x2000 }, { 0x0700, 0x0675, 0x0000 }, { 0x0700, 0x0677, 0x0000 }, { 0x8700, 0x067a, 0x2000 }, { 0x0700, 0x0679, 0x0000 }, { 0x0700, 0x067b, 0x0000 }, { 0x8700, 0x0680, 0x3000 }, { 0x8700, 0x067e, 0x2000 }, { 0x0700, 0x067d, 0x0000 }, { 0x0700, 0x067f, 0x0000 }, { 0x8700, 0x0682, 0x2000 }, { 0x0700, 0x0681, 0x0000 }, { 0x0700, 0x0683, 0x0000 }, { 0x8700, 0x0694, 0x5000 }, { 0x8700, 0x068c, 0x4000 }, { 0x8700, 0x0688, 0x3000 }, { 0x8700, 0x0686, 0x2000 }, { 0x0700, 0x0685, 0x0000 }, { 0x0700, 0x0687, 0x0000 }, { 0x8700, 0x068a, 0x2000 }, { 0x0700, 0x0689, 0x0000 }, { 0x0700, 0x068b, 0x0000 }, { 0x8700, 0x0690, 0x3000 }, { 0x8700, 0x068e, 0x2000 }, { 0x0700, 0x068d, 0x0000 }, { 0x0700, 0x068f, 0x0000 }, { 0x8700, 0x0692, 0x2000 }, { 0x0700, 0x0691, 0x0000 }, { 0x0700, 0x0693, 0x0000 }, { 0x8700, 0x069c, 0x4000 }, { 0x8700, 0x0698, 0x3000 }, { 0x8700, 0x0696, 0x2000 }, { 0x0700, 0x0695, 0x0000 }, { 0x0700, 0x0697, 0x0000 }, { 0x8700, 0x069a, 0x2000 }, { 0x0700, 0x0699, 0x0000 }, { 0x0700, 0x069b, 0x0000 }, { 0x8700, 0x06a0, 0x3000 }, { 0x8700, 0x069e, 0x2000 }, { 0x0700, 0x069d, 0x0000 }, { 0x0700, 0x069f, 0x0000 }, { 0x8700, 0x06a2, 0x2000 }, { 0x0700, 0x06a1, 0x0000 }, { 0x0700, 0x06a3, 0x0000 }, { 0x8700, 0x0926, 0x9000 }, { 0x8700, 0x0725, 0x8000 }, { 0x8c00, 0x06e4, 0x7000 }, { 0x8700, 0x06c4, 0x6000 }, { 0x8700, 0x06b4, 0x5000 }, { 0x8700, 0x06ac, 0x4000 }, { 0x8700, 0x06a8, 0x3000 }, { 0x8700, 0x06a6, 0x2000 }, { 0x0700, 0x06a5, 0x0000 }, { 0x0700, 0x06a7, 0x0000 }, { 0x8700, 0x06aa, 0x2000 }, { 0x0700, 0x06a9, 0x0000 }, { 0x0700, 0x06ab, 0x0000 }, { 0x8700, 0x06b0, 0x3000 }, { 0x8700, 0x06ae, 0x2000 }, { 0x0700, 0x06ad, 0x0000 }, { 0x0700, 0x06af, 0x0000 }, { 0x8700, 0x06b2, 0x2000 }, { 0x0700, 0x06b1, 0x0000 }, { 0x0700, 0x06b3, 0x0000 }, { 0x8700, 0x06bc, 0x4000 }, { 0x8700, 0x06b8, 0x3000 }, { 0x8700, 0x06b6, 0x2000 }, { 0x0700, 0x06b5, 0x0000 }, { 0x0700, 0x06b7, 0x0000 }, { 0x8700, 0x06ba, 0x2000 }, { 0x0700, 0x06b9, 0x0000 }, { 0x0700, 0x06bb, 0x0000 }, { 0x8700, 0x06c0, 0x3000 }, { 0x8700, 0x06be, 0x2000 }, { 0x0700, 0x06bd, 0x0000 }, { 0x0700, 0x06bf, 0x0000 }, { 0x8700, 0x06c2, 0x2000 }, { 0x0700, 0x06c1, 0x0000 }, { 0x0700, 0x06c3, 0x0000 }, { 0x9500, 0x06d4, 0x5000 }, { 0x8700, 0x06cc, 0x4000 }, { 0x8700, 0x06c8, 0x3000 }, { 0x8700, 0x06c6, 0x2000 }, { 0x0700, 0x06c5, 0x0000 }, { 0x0700, 0x06c7, 0x0000 }, { 0x8700, 0x06ca, 0x2000 }, { 0x0700, 0x06c9, 0x0000 }, { 0x0700, 0x06cb, 0x0000 }, { 0x8700, 0x06d0, 0x3000 }, { 0x8700, 0x06ce, 0x2000 }, { 0x0700, 0x06cd, 0x0000 }, { 0x0700, 0x06cf, 0x0000 }, { 0x8700, 0x06d2, 0x2000 }, { 0x0700, 0x06d1, 0x0000 }, { 0x0700, 0x06d3, 0x0000 }, { 0x8c00, 0x06dc, 0x4000 }, { 0x8c00, 0x06d8, 0x3000 }, { 0x8c00, 0x06d6, 0x2000 }, { 0x0700, 0x06d5, 0x0000 }, { 0x0c00, 0x06d7, 0x0000 }, { 0x8c00, 0x06da, 0x2000 }, { 0x0c00, 0x06d9, 0x0000 }, { 0x0c00, 0x06db, 0x0000 }, { 0x8c00, 0x06e0, 0x3000 }, { 0x8b00, 0x06de, 0x2000 }, { 0x0100, 0x06dd, 0x0000 }, { 0x0c00, 0x06df, 0x0000 }, { 0x8c00, 0x06e2, 0x2000 }, { 0x0c00, 0x06e1, 0x0000 }, { 0x0c00, 0x06e3, 0x0000 }, { 0x9500, 0x0704, 0x6000 }, { 0x8d00, 0x06f4, 0x5000 }, { 0x8c00, 0x06ec, 0x4000 }, { 0x8c00, 0x06e8, 0x3000 }, { 0x8600, 0x06e6, 0x2000 }, { 0x0600, 0x06e5, 0x0000 }, { 0x0c00, 0x06e7, 0x0000 }, { 0x8c00, 0x06ea, 0x2000 }, { 0x1a00, 0x06e9, 0x0000 }, { 0x0c00, 0x06eb, 0x0000 }, { 0x8d00, 0x06f0, 0x3000 }, { 0x8700, 0x06ee, 0x2000 }, { 0x0c00, 0x06ed, 0x0000 }, { 0x0700, 0x06ef, 0x0000 }, { 0x8d00, 0x06f2, 0x2000 }, { 0x0d00, 0x06f1, 0x0000 }, { 0x0d00, 0x06f3, 0x0000 }, { 0x8700, 0x06fc, 0x4000 }, { 0x8d00, 0x06f8, 0x3000 }, { 0x8d00, 0x06f6, 0x2000 }, { 0x0d00, 0x06f5, 0x0000 }, { 0x0d00, 0x06f7, 0x0000 }, { 0x8700, 0x06fa, 0x2000 }, { 0x0d00, 0x06f9, 0x0000 }, { 0x0700, 0x06fb, 0x0000 }, { 0x9500, 0x0700, 0x3000 }, { 0x9a00, 0x06fe, 0x2000 }, { 0x1a00, 0x06fd, 0x0000 }, { 0x0700, 0x06ff, 0x0000 }, { 0x9500, 0x0702, 0x2000 }, { 0x1500, 0x0701, 0x0000 }, { 0x1500, 0x0703, 0x0000 }, { 0x8700, 0x0715, 0x5000 }, { 0x9500, 0x070c, 0x4000 }, { 0x9500, 0x0708, 0x3000 }, { 0x9500, 0x0706, 0x2000 }, { 0x1500, 0x0705, 0x0000 }, { 0x1500, 0x0707, 0x0000 }, { 0x9500, 0x070a, 0x2000 }, { 0x1500, 0x0709, 0x0000 }, { 0x1500, 0x070b, 0x0000 }, { 0x8c00, 0x0711, 0x3000 }, { 0x8100, 0x070f, 0x2000 }, { 0x1500, 0x070d, 0x0000 }, { 0x0700, 0x0710, 0x0000 }, { 0x8700, 0x0713, 0x2000 }, { 0x0700, 0x0712, 0x0000 }, { 0x0700, 0x0714, 0x0000 }, { 0x8700, 0x071d, 0x4000 }, { 0x8700, 0x0719, 0x3000 }, { 0x8700, 0x0717, 0x2000 }, { 0x0700, 0x0716, 0x0000 }, { 0x0700, 0x0718, 0x0000 }, { 0x8700, 0x071b, 0x2000 }, { 0x0700, 0x071a, 0x0000 }, { 0x0700, 0x071c, 0x0000 }, { 0x8700, 0x0721, 0x3000 }, { 0x8700, 0x071f, 0x2000 }, { 0x0700, 0x071e, 0x0000 }, { 0x0700, 0x0720, 0x0000 }, { 0x8700, 0x0723, 0x2000 }, { 0x0700, 0x0722, 0x0000 }, { 0x0700, 0x0724, 0x0000 }, { 0x8700, 0x0797, 0x7000 }, { 0x8c00, 0x0745, 0x6000 }, { 0x8c00, 0x0735, 0x5000 }, { 0x8700, 0x072d, 0x4000 }, { 0x8700, 0x0729, 0x3000 }, { 0x8700, 0x0727, 0x2000 }, { 0x0700, 0x0726, 0x0000 }, { 0x0700, 0x0728, 0x0000 }, { 0x8700, 0x072b, 0x2000 }, { 0x0700, 0x072a, 0x0000 }, { 0x0700, 0x072c, 0x0000 }, { 0x8c00, 0x0731, 0x3000 }, { 0x8700, 0x072f, 0x2000 }, { 0x0700, 0x072e, 0x0000 }, { 0x0c00, 0x0730, 0x0000 }, { 0x8c00, 0x0733, 0x2000 }, { 0x0c00, 0x0732, 0x0000 }, { 0x0c00, 0x0734, 0x0000 }, { 0x8c00, 0x073d, 0x4000 }, { 0x8c00, 0x0739, 0x3000 }, { 0x8c00, 0x0737, 0x2000 }, { 0x0c00, 0x0736, 0x0000 }, { 0x0c00, 0x0738, 0x0000 }, { 0x8c00, 0x073b, 0x2000 }, { 0x0c00, 0x073a, 0x0000 }, { 0x0c00, 0x073c, 0x0000 }, { 0x8c00, 0x0741, 0x3000 }, { 0x8c00, 0x073f, 0x2000 }, { 0x0c00, 0x073e, 0x0000 }, { 0x0c00, 0x0740, 0x0000 }, { 0x8c00, 0x0743, 0x2000 }, { 0x0c00, 0x0742, 0x0000 }, { 0x0c00, 0x0744, 0x0000 }, { 0x8700, 0x0787, 0x5000 }, { 0x8700, 0x074f, 0x4000 }, { 0x8c00, 0x0749, 0x3000 }, { 0x8c00, 0x0747, 0x2000 }, { 0x0c00, 0x0746, 0x0000 }, { 0x0c00, 0x0748, 0x0000 }, { 0x8700, 0x074d, 0x2000 }, { 0x0c00, 0x074a, 0x0000 }, { 0x0700, 0x074e, 0x0000 }, { 0x8700, 0x0783, 0x3000 }, { 0x8700, 0x0781, 0x2000 }, { 0x0700, 0x0780, 0x0000 }, { 0x0700, 0x0782, 0x0000 }, { 0x8700, 0x0785, 0x2000 }, { 0x0700, 0x0784, 0x0000 }, { 0x0700, 0x0786, 0x0000 }, { 0x8700, 0x078f, 0x4000 }, { 0x8700, 0x078b, 0x3000 }, { 0x8700, 0x0789, 0x2000 }, { 0x0700, 0x0788, 0x0000 }, { 0x0700, 0x078a, 0x0000 }, { 0x8700, 0x078d, 0x2000 }, { 0x0700, 0x078c, 0x0000 }, { 0x0700, 0x078e, 0x0000 }, { 0x8700, 0x0793, 0x3000 }, { 0x8700, 0x0791, 0x2000 }, { 0x0700, 0x0790, 0x0000 }, { 0x0700, 0x0792, 0x0000 }, { 0x8700, 0x0795, 0x2000 }, { 0x0700, 0x0794, 0x0000 }, { 0x0700, 0x0796, 0x0000 }, { 0x8700, 0x0906, 0x6000 }, { 0x8c00, 0x07a7, 0x5000 }, { 0x8700, 0x079f, 0x4000 }, { 0x8700, 0x079b, 0x3000 }, { 0x8700, 0x0799, 0x2000 }, { 0x0700, 0x0798, 0x0000 }, { 0x0700, 0x079a, 0x0000 }, { 0x8700, 0x079d, 0x2000 }, { 0x0700, 0x079c, 0x0000 }, { 0x0700, 0x079e, 0x0000 }, { 0x8700, 0x07a3, 0x3000 }, { 0x8700, 0x07a1, 0x2000 }, { 0x0700, 0x07a0, 0x0000 }, { 0x0700, 0x07a2, 0x0000 }, { 0x8700, 0x07a5, 0x2000 }, { 0x0700, 0x07a4, 0x0000 }, { 0x0c00, 0x07a6, 0x0000 }, { 0x8c00, 0x07af, 0x4000 }, { 0x8c00, 0x07ab, 0x3000 }, { 0x8c00, 0x07a9, 0x2000 }, { 0x0c00, 0x07a8, 0x0000 }, { 0x0c00, 0x07aa, 0x0000 }, { 0x8c00, 0x07ad, 0x2000 }, { 0x0c00, 0x07ac, 0x0000 }, { 0x0c00, 0x07ae, 0x0000 }, { 0x8c00, 0x0902, 0x3000 }, { 0x8700, 0x07b1, 0x2000 }, { 0x0c00, 0x07b0, 0x0000 }, { 0x0c00, 0x0901, 0x0000 }, { 0x8700, 0x0904, 0x2000 }, { 0x0a00, 0x0903, 0x0000 }, { 0x0700, 0x0905, 0x0000 }, { 0x8700, 0x0916, 0x5000 }, { 0x8700, 0x090e, 0x4000 }, { 0x8700, 0x090a, 0x3000 }, { 0x8700, 0x0908, 0x2000 }, { 0x0700, 0x0907, 0x0000 }, { 0x0700, 0x0909, 0x0000 }, { 0x8700, 0x090c, 0x2000 }, { 0x0700, 0x090b, 0x0000 }, { 0x0700, 0x090d, 0x0000 }, { 0x8700, 0x0912, 0x3000 }, { 0x8700, 0x0910, 0x2000 }, { 0x0700, 0x090f, 0x0000 }, { 0x0700, 0x0911, 0x0000 }, { 0x8700, 0x0914, 0x2000 }, { 0x0700, 0x0913, 0x0000 }, { 0x0700, 0x0915, 0x0000 }, { 0x8700, 0x091e, 0x4000 }, { 0x8700, 0x091a, 0x3000 }, { 0x8700, 0x0918, 0x2000 }, { 0x0700, 0x0917, 0x0000 }, { 0x0700, 0x0919, 0x0000 }, { 0x8700, 0x091c, 0x2000 }, { 0x0700, 0x091b, 0x0000 }, { 0x0700, 0x091d, 0x0000 }, { 0x8700, 0x0922, 0x3000 }, { 0x8700, 0x0920, 0x2000 }, { 0x0700, 0x091f, 0x0000 }, { 0x0700, 0x0921, 0x0000 }, { 0x8700, 0x0924, 0x2000 }, { 0x0700, 0x0923, 0x0000 }, { 0x0700, 0x0925, 0x0000 }, { 0x8c00, 0x09cd, 0x8000 }, { 0x8d00, 0x096d, 0x7000 }, { 0x8c00, 0x0948, 0x6000 }, { 0x8700, 0x0936, 0x5000 }, { 0x8700, 0x092e, 0x4000 }, { 0x8700, 0x092a, 0x3000 }, { 0x8700, 0x0928, 0x2000 }, { 0x0700, 0x0927, 0x0000 }, { 0x0700, 0x0929, 0x0000 }, { 0x8700, 0x092c, 0x2000 }, { 0x0700, 0x092b, 0x0000 }, { 0x0700, 0x092d, 0x0000 }, { 0x8700, 0x0932, 0x3000 }, { 0x8700, 0x0930, 0x2000 }, { 0x0700, 0x092f, 0x0000 }, { 0x0700, 0x0931, 0x0000 }, { 0x8700, 0x0934, 0x2000 }, { 0x0700, 0x0933, 0x0000 }, { 0x0700, 0x0935, 0x0000 }, { 0x8a00, 0x0940, 0x4000 }, { 0x8c00, 0x093c, 0x3000 }, { 0x8700, 0x0938, 0x2000 }, { 0x0700, 0x0937, 0x0000 }, { 0x0700, 0x0939, 0x0000 }, { 0x8a00, 0x093e, 0x2000 }, { 0x0700, 0x093d, 0x0000 }, { 0x0a00, 0x093f, 0x0000 }, { 0x8c00, 0x0944, 0x3000 }, { 0x8c00, 0x0942, 0x2000 }, { 0x0c00, 0x0941, 0x0000 }, { 0x0c00, 0x0943, 0x0000 }, { 0x8c00, 0x0946, 0x2000 }, { 0x0c00, 0x0945, 0x0000 }, { 0x0c00, 0x0947, 0x0000 }, { 0x8700, 0x095d, 0x5000 }, { 0x8c00, 0x0952, 0x4000 }, { 0x8a00, 0x094c, 0x3000 }, { 0x8a00, 0x094a, 0x2000 }, { 0x0a00, 0x0949, 0x0000 }, { 0x0a00, 0x094b, 0x0000 }, { 0x8700, 0x0950, 0x2000 }, { 0x0c00, 0x094d, 0x0000 }, { 0x0c00, 0x0951, 0x0000 }, { 0x8700, 0x0959, 0x3000 }, { 0x8c00, 0x0954, 0x2000 }, { 0x0c00, 0x0953, 0x0000 }, { 0x0700, 0x0958, 0x0000 }, { 0x8700, 0x095b, 0x2000 }, { 0x0700, 0x095a, 0x0000 }, { 0x0700, 0x095c, 0x0000 }, { 0x9500, 0x0965, 0x4000 }, { 0x8700, 0x0961, 0x3000 }, { 0x8700, 0x095f, 0x2000 }, { 0x0700, 0x095e, 0x0000 }, { 0x0700, 0x0960, 0x0000 }, { 0x8c00, 0x0963, 0x2000 }, { 0x0c00, 0x0962, 0x0000 }, { 0x1500, 0x0964, 0x0000 }, { 0x8d00, 0x0969, 0x3000 }, { 0x8d00, 0x0967, 0x2000 }, { 0x0d00, 0x0966, 0x0000 }, { 0x0d00, 0x0968, 0x0000 }, { 0x8d00, 0x096b, 0x2000 }, { 0x0d00, 0x096a, 0x0000 }, { 0x0d00, 0x096c, 0x0000 }, { 0x8700, 0x09a2, 0x6000 }, { 0x8700, 0x0990, 0x5000 }, { 0x8700, 0x0986, 0x4000 }, { 0x8c00, 0x0981, 0x3000 }, { 0x8d00, 0x096f, 0x2000 }, { 0x0d00, 0x096e, 0x0000 }, { 0x1500, 0x0970, 0x0000 }, { 0x8a00, 0x0983, 0x2000 }, { 0x0a00, 0x0982, 0x0000 }, { 0x0700, 0x0985, 0x0000 }, { 0x8700, 0x098a, 0x3000 }, { 0x8700, 0x0988, 0x2000 }, { 0x0700, 0x0987, 0x0000 }, { 0x0700, 0x0989, 0x0000 }, { 0x8700, 0x098c, 0x2000 }, { 0x0700, 0x098b, 0x0000 }, { 0x0700, 0x098f, 0x0000 }, { 0x8700, 0x099a, 0x4000 }, { 0x8700, 0x0996, 0x3000 }, { 0x8700, 0x0994, 0x2000 }, { 0x0700, 0x0993, 0x0000 }, { 0x0700, 0x0995, 0x0000 }, { 0x8700, 0x0998, 0x2000 }, { 0x0700, 0x0997, 0x0000 }, { 0x0700, 0x0999, 0x0000 }, { 0x8700, 0x099e, 0x3000 }, { 0x8700, 0x099c, 0x2000 }, { 0x0700, 0x099b, 0x0000 }, { 0x0700, 0x099d, 0x0000 }, { 0x8700, 0x09a0, 0x2000 }, { 0x0700, 0x099f, 0x0000 }, { 0x0700, 0x09a1, 0x0000 }, { 0x8700, 0x09b7, 0x5000 }, { 0x8700, 0x09ab, 0x4000 }, { 0x8700, 0x09a6, 0x3000 }, { 0x8700, 0x09a4, 0x2000 }, { 0x0700, 0x09a3, 0x0000 }, { 0x0700, 0x09a5, 0x0000 }, { 0x8700, 0x09a8, 0x2000 }, { 0x0700, 0x09a7, 0x0000 }, { 0x0700, 0x09aa, 0x0000 }, { 0x8700, 0x09af, 0x3000 }, { 0x8700, 0x09ad, 0x2000 }, { 0x0700, 0x09ac, 0x0000 }, { 0x0700, 0x09ae, 0x0000 }, { 0x8700, 0x09b2, 0x2000 }, { 0x0700, 0x09b0, 0x0000 }, { 0x0700, 0x09b6, 0x0000 }, { 0x8c00, 0x09c1, 0x4000 }, { 0x8700, 0x09bd, 0x3000 }, { 0x8700, 0x09b9, 0x2000 }, { 0x0700, 0x09b8, 0x0000 }, { 0x0c00, 0x09bc, 0x0000 }, { 0x8a00, 0x09bf, 0x2000 }, { 0x0a00, 0x09be, 0x0000 }, { 0x0a00, 0x09c0, 0x0000 }, { 0x8a00, 0x09c7, 0x3000 }, { 0x8c00, 0x09c3, 0x2000 }, { 0x0c00, 0x09c2, 0x0000 }, { 0x0c00, 0x09c4, 0x0000 }, { 0x8a00, 0x09cb, 0x2000 }, { 0x0a00, 0x09c8, 0x0000 }, { 0x0a00, 0x09cc, 0x0000 }, { 0x8700, 0x0a2b, 0x7000 }, { 0x8a00, 0x0a03, 0x6000 }, { 0x8d00, 0x09ed, 0x5000 }, { 0x8c00, 0x09e3, 0x4000 }, { 0x8700, 0x09df, 0x3000 }, { 0x8700, 0x09dc, 0x2000 }, { 0x0a00, 0x09d7, 0x0000 }, { 0x0700, 0x09dd, 0x0000 }, { 0x8700, 0x09e1, 0x2000 }, { 0x0700, 0x09e0, 0x0000 }, { 0x0c00, 0x09e2, 0x0000 }, { 0x8d00, 0x09e9, 0x3000 }, { 0x8d00, 0x09e7, 0x2000 }, { 0x0d00, 0x09e6, 0x0000 }, { 0x0d00, 0x09e8, 0x0000 }, { 0x8d00, 0x09eb, 0x2000 }, { 0x0d00, 0x09ea, 0x0000 }, { 0x0d00, 0x09ec, 0x0000 }, { 0x8f00, 0x09f5, 0x4000 }, { 0x8700, 0x09f1, 0x3000 }, { 0x8d00, 0x09ef, 0x2000 }, { 0x0d00, 0x09ee, 0x0000 }, { 0x0700, 0x09f0, 0x0000 }, { 0x9700, 0x09f3, 0x2000 }, { 0x1700, 0x09f2, 0x0000 }, { 0x0f00, 0x09f4, 0x0000 }, { 0x8f00, 0x09f9, 0x3000 }, { 0x8f00, 0x09f7, 0x2000 }, { 0x0f00, 0x09f6, 0x0000 }, { 0x0f00, 0x09f8, 0x0000 }, { 0x8c00, 0x0a01, 0x2000 }, { 0x1a00, 0x09fa, 0x0000 }, { 0x0c00, 0x0a02, 0x0000 }, { 0x8700, 0x0a1a, 0x5000 }, { 0x8700, 0x0a10, 0x4000 }, { 0x8700, 0x0a08, 0x3000 }, { 0x8700, 0x0a06, 0x2000 }, { 0x0700, 0x0a05, 0x0000 }, { 0x0700, 0x0a07, 0x0000 }, { 0x8700, 0x0a0a, 0x2000 }, { 0x0700, 0x0a09, 0x0000 }, { 0x0700, 0x0a0f, 0x0000 }, { 0x8700, 0x0a16, 0x3000 }, { 0x8700, 0x0a14, 0x2000 }, { 0x0700, 0x0a13, 0x0000 }, { 0x0700, 0x0a15, 0x0000 }, { 0x8700, 0x0a18, 0x2000 }, { 0x0700, 0x0a17, 0x0000 }, { 0x0700, 0x0a19, 0x0000 }, { 0x8700, 0x0a22, 0x4000 }, { 0x8700, 0x0a1e, 0x3000 }, { 0x8700, 0x0a1c, 0x2000 }, { 0x0700, 0x0a1b, 0x0000 }, { 0x0700, 0x0a1d, 0x0000 }, { 0x8700, 0x0a20, 0x2000 }, { 0x0700, 0x0a1f, 0x0000 }, { 0x0700, 0x0a21, 0x0000 }, { 0x8700, 0x0a26, 0x3000 }, { 0x8700, 0x0a24, 0x2000 }, { 0x0700, 0x0a23, 0x0000 }, { 0x0700, 0x0a25, 0x0000 }, { 0x8700, 0x0a28, 0x2000 }, { 0x0700, 0x0a27, 0x0000 }, { 0x0700, 0x0a2a, 0x0000 }, { 0x8d00, 0x0a6a, 0x6000 }, { 0x8c00, 0x0a41, 0x5000 }, { 0x8700, 0x0a35, 0x4000 }, { 0x8700, 0x0a2f, 0x3000 }, { 0x8700, 0x0a2d, 0x2000 }, { 0x0700, 0x0a2c, 0x0000 }, { 0x0700, 0x0a2e, 0x0000 }, { 0x8700, 0x0a32, 0x2000 }, { 0x0700, 0x0a30, 0x0000 }, { 0x0700, 0x0a33, 0x0000 }, { 0x8c00, 0x0a3c, 0x3000 }, { 0x8700, 0x0a38, 0x2000 }, { 0x0700, 0x0a36, 0x0000 }, { 0x0700, 0x0a39, 0x0000 }, { 0x8a00, 0x0a3f, 0x2000 }, { 0x0a00, 0x0a3e, 0x0000 }, { 0x0a00, 0x0a40, 0x0000 }, { 0x8700, 0x0a5a, 0x4000 }, { 0x8c00, 0x0a4b, 0x3000 }, { 0x8c00, 0x0a47, 0x2000 }, { 0x0c00, 0x0a42, 0x0000 }, { 0x0c00, 0x0a48, 0x0000 }, { 0x8c00, 0x0a4d, 0x2000 }, { 0x0c00, 0x0a4c, 0x0000 }, { 0x0700, 0x0a59, 0x0000 }, { 0x8d00, 0x0a66, 0x3000 }, { 0x8700, 0x0a5c, 0x2000 }, { 0x0700, 0x0a5b, 0x0000 }, { 0x0700, 0x0a5e, 0x0000 }, { 0x8d00, 0x0a68, 0x2000 }, { 0x0d00, 0x0a67, 0x0000 }, { 0x0d00, 0x0a69, 0x0000 }, { 0x8700, 0x0a87, 0x5000 }, { 0x8700, 0x0a72, 0x4000 }, { 0x8d00, 0x0a6e, 0x3000 }, { 0x8d00, 0x0a6c, 0x2000 }, { 0x0d00, 0x0a6b, 0x0000 }, { 0x0d00, 0x0a6d, 0x0000 }, { 0x8c00, 0x0a70, 0x2000 }, { 0x0d00, 0x0a6f, 0x0000 }, { 0x0c00, 0x0a71, 0x0000 }, { 0x8c00, 0x0a82, 0x3000 }, { 0x8700, 0x0a74, 0x2000 }, { 0x0700, 0x0a73, 0x0000 }, { 0x0c00, 0x0a81, 0x0000 }, { 0x8700, 0x0a85, 0x2000 }, { 0x0a00, 0x0a83, 0x0000 }, { 0x0700, 0x0a86, 0x0000 }, { 0x8700, 0x0a90, 0x4000 }, { 0x8700, 0x0a8b, 0x3000 }, { 0x8700, 0x0a89, 0x2000 }, { 0x0700, 0x0a88, 0x0000 }, { 0x0700, 0x0a8a, 0x0000 }, { 0x8700, 0x0a8d, 0x2000 }, { 0x0700, 0x0a8c, 0x0000 }, { 0x0700, 0x0a8f, 0x0000 }, { 0x8700, 0x0a95, 0x3000 }, { 0x8700, 0x0a93, 0x2000 }, { 0x0700, 0x0a91, 0x0000 }, { 0x0700, 0x0a94, 0x0000 }, { 0x8700, 0x0a97, 0x2000 }, { 0x0700, 0x0a96, 0x0000 }, { 0x0700, 0x0a98, 0x0000 }, { 0x8700, 0x10ef, 0xb000 }, { 0x8700, 0x0dc6, 0xa000 }, { 0x8700, 0x0c31, 0x9000 }, { 0x8700, 0x0b5f, 0x8000 }, { 0x8a00, 0x0b03, 0x7000 }, { 0x8a00, 0x0abe, 0x6000 }, { 0x8700, 0x0aaa, 0x5000 }, { 0x8700, 0x0aa1, 0x4000 }, { 0x8700, 0x0a9d, 0x3000 }, { 0x8700, 0x0a9b, 0x2000 }, { 0x0700, 0x0a9a, 0x0000 }, { 0x0700, 0x0a9c, 0x0000 }, { 0x8700, 0x0a9f, 0x2000 }, { 0x0700, 0x0a9e, 0x0000 }, { 0x0700, 0x0aa0, 0x0000 }, { 0x8700, 0x0aa5, 0x3000 }, { 0x8700, 0x0aa3, 0x2000 }, { 0x0700, 0x0aa2, 0x0000 }, { 0x0700, 0x0aa4, 0x0000 }, { 0x8700, 0x0aa7, 0x2000 }, { 0x0700, 0x0aa6, 0x0000 }, { 0x0700, 0x0aa8, 0x0000 }, { 0x8700, 0x0ab3, 0x4000 }, { 0x8700, 0x0aae, 0x3000 }, { 0x8700, 0x0aac, 0x2000 }, { 0x0700, 0x0aab, 0x0000 }, { 0x0700, 0x0aad, 0x0000 }, { 0x8700, 0x0ab0, 0x2000 }, { 0x0700, 0x0aaf, 0x0000 }, { 0x0700, 0x0ab2, 0x0000 }, { 0x8700, 0x0ab8, 0x3000 }, { 0x8700, 0x0ab6, 0x2000 }, { 0x0700, 0x0ab5, 0x0000 }, { 0x0700, 0x0ab7, 0x0000 }, { 0x8c00, 0x0abc, 0x2000 }, { 0x0700, 0x0ab9, 0x0000 }, { 0x0700, 0x0abd, 0x0000 }, { 0x8700, 0x0ae1, 0x5000 }, { 0x8c00, 0x0ac7, 0x4000 }, { 0x8c00, 0x0ac2, 0x3000 }, { 0x8a00, 0x0ac0, 0x2000 }, { 0x0a00, 0x0abf, 0x0000 }, { 0x0c00, 0x0ac1, 0x0000 }, { 0x8c00, 0x0ac4, 0x2000 }, { 0x0c00, 0x0ac3, 0x0000 }, { 0x0c00, 0x0ac5, 0x0000 }, { 0x8a00, 0x0acc, 0x3000 }, { 0x8a00, 0x0ac9, 0x2000 }, { 0x0c00, 0x0ac8, 0x0000 }, { 0x0a00, 0x0acb, 0x0000 }, { 0x8700, 0x0ad0, 0x2000 }, { 0x0c00, 0x0acd, 0x0000 }, { 0x0700, 0x0ae0, 0x0000 }, { 0x8d00, 0x0aeb, 0x4000 }, { 0x8d00, 0x0ae7, 0x3000 }, { 0x8c00, 0x0ae3, 0x2000 }, { 0x0c00, 0x0ae2, 0x0000 }, { 0x0d00, 0x0ae6, 0x0000 }, { 0x8d00, 0x0ae9, 0x2000 }, { 0x0d00, 0x0ae8, 0x0000 }, { 0x0d00, 0x0aea, 0x0000 }, { 0x8d00, 0x0aef, 0x3000 }, { 0x8d00, 0x0aed, 0x2000 }, { 0x0d00, 0x0aec, 0x0000 }, { 0x0d00, 0x0aee, 0x0000 }, { 0x8c00, 0x0b01, 0x2000 }, { 0x1700, 0x0af1, 0x0000 }, { 0x0a00, 0x0b02, 0x0000 }, { 0x8700, 0x0b28, 0x6000 }, { 0x8700, 0x0b18, 0x5000 }, { 0x8700, 0x0b0c, 0x4000 }, { 0x8700, 0x0b08, 0x3000 }, { 0x8700, 0x0b06, 0x2000 }, { 0x0700, 0x0b05, 0x0000 }, { 0x0700, 0x0b07, 0x0000 }, { 0x8700, 0x0b0a, 0x2000 }, { 0x0700, 0x0b09, 0x0000 }, { 0x0700, 0x0b0b, 0x0000 }, { 0x8700, 0x0b14, 0x3000 }, { 0x8700, 0x0b10, 0x2000 }, { 0x0700, 0x0b0f, 0x0000 }, { 0x0700, 0x0b13, 0x0000 }, { 0x8700, 0x0b16, 0x2000 }, { 0x0700, 0x0b15, 0x0000 }, { 0x0700, 0x0b17, 0x0000 }, { 0x8700, 0x0b20, 0x4000 }, { 0x8700, 0x0b1c, 0x3000 }, { 0x8700, 0x0b1a, 0x2000 }, { 0x0700, 0x0b19, 0x0000 }, { 0x0700, 0x0b1b, 0x0000 }, { 0x8700, 0x0b1e, 0x2000 }, { 0x0700, 0x0b1d, 0x0000 }, { 0x0700, 0x0b1f, 0x0000 }, { 0x8700, 0x0b24, 0x3000 }, { 0x8700, 0x0b22, 0x2000 }, { 0x0700, 0x0b21, 0x0000 }, { 0x0700, 0x0b23, 0x0000 }, { 0x8700, 0x0b26, 0x2000 }, { 0x0700, 0x0b25, 0x0000 }, { 0x0700, 0x0b27, 0x0000 }, { 0x8700, 0x0b3d, 0x5000 }, { 0x8700, 0x0b32, 0x4000 }, { 0x8700, 0x0b2d, 0x3000 }, { 0x8700, 0x0b2b, 0x2000 }, { 0x0700, 0x0b2a, 0x0000 }, { 0x0700, 0x0b2c, 0x0000 }, { 0x8700, 0x0b2f, 0x2000 }, { 0x0700, 0x0b2e, 0x0000 }, { 0x0700, 0x0b30, 0x0000 }, { 0x8700, 0x0b37, 0x3000 }, { 0x8700, 0x0b35, 0x2000 }, { 0x0700, 0x0b33, 0x0000 }, { 0x0700, 0x0b36, 0x0000 }, { 0x8700, 0x0b39, 0x2000 }, { 0x0700, 0x0b38, 0x0000 }, { 0x0c00, 0x0b3c, 0x0000 }, { 0x8a00, 0x0b48, 0x4000 }, { 0x8c00, 0x0b41, 0x3000 }, { 0x8c00, 0x0b3f, 0x2000 }, { 0x0a00, 0x0b3e, 0x0000 }, { 0x0a00, 0x0b40, 0x0000 }, { 0x8c00, 0x0b43, 0x2000 }, { 0x0c00, 0x0b42, 0x0000 }, { 0x0a00, 0x0b47, 0x0000 }, { 0x8c00, 0x0b56, 0x3000 }, { 0x8a00, 0x0b4c, 0x2000 }, { 0x0a00, 0x0b4b, 0x0000 }, { 0x0c00, 0x0b4d, 0x0000 }, { 0x8700, 0x0b5c, 0x2000 }, { 0x0a00, 0x0b57, 0x0000 }, { 0x0700, 0x0b5d, 0x0000 }, { 0x8d00, 0x0be7, 0x7000 }, { 0x8700, 0x0b9c, 0x6000 }, { 0x8700, 0x0b83, 0x5000 }, { 0x8d00, 0x0b6b, 0x4000 }, { 0x8d00, 0x0b67, 0x3000 }, { 0x8700, 0x0b61, 0x2000 }, { 0x0700, 0x0b60, 0x0000 }, { 0x0d00, 0x0b66, 0x0000 }, { 0x8d00, 0x0b69, 0x2000 }, { 0x0d00, 0x0b68, 0x0000 }, { 0x0d00, 0x0b6a, 0x0000 }, { 0x8d00, 0x0b6f, 0x3000 }, { 0x8d00, 0x0b6d, 0x2000 }, { 0x0d00, 0x0b6c, 0x0000 }, { 0x0d00, 0x0b6e, 0x0000 }, { 0x8700, 0x0b71, 0x2000 }, { 0x1a00, 0x0b70, 0x0000 }, { 0x0c00, 0x0b82, 0x0000 }, { 0x8700, 0x0b8f, 0x4000 }, { 0x8700, 0x0b88, 0x3000 }, { 0x8700, 0x0b86, 0x2000 }, { 0x0700, 0x0b85, 0x0000 }, { 0x0700, 0x0b87, 0x0000 }, { 0x8700, 0x0b8a, 0x2000 }, { 0x0700, 0x0b89, 0x0000 }, { 0x0700, 0x0b8e, 0x0000 }, { 0x8700, 0x0b94, 0x3000 }, { 0x8700, 0x0b92, 0x2000 }, { 0x0700, 0x0b90, 0x0000 }, { 0x0700, 0x0b93, 0x0000 }, { 0x8700, 0x0b99, 0x2000 }, { 0x0700, 0x0b95, 0x0000 }, { 0x0700, 0x0b9a, 0x0000 }, { 0x8700, 0x0bb7, 0x5000 }, { 0x8700, 0x0bae, 0x4000 }, { 0x8700, 0x0ba4, 0x3000 }, { 0x8700, 0x0b9f, 0x2000 }, { 0x0700, 0x0b9e, 0x0000 }, { 0x0700, 0x0ba3, 0x0000 }, { 0x8700, 0x0ba9, 0x2000 }, { 0x0700, 0x0ba8, 0x0000 }, { 0x0700, 0x0baa, 0x0000 }, { 0x8700, 0x0bb2, 0x3000 }, { 0x8700, 0x0bb0, 0x2000 }, { 0x0700, 0x0baf, 0x0000 }, { 0x0700, 0x0bb1, 0x0000 }, { 0x8700, 0x0bb4, 0x2000 }, { 0x0700, 0x0bb3, 0x0000 }, { 0x0700, 0x0bb5, 0x0000 }, { 0x8a00, 0x0bc6, 0x4000 }, { 0x8a00, 0x0bbf, 0x3000 }, { 0x8700, 0x0bb9, 0x2000 }, { 0x0700, 0x0bb8, 0x0000 }, { 0x0a00, 0x0bbe, 0x0000 }, { 0x8a00, 0x0bc1, 0x2000 }, { 0x0c00, 0x0bc0, 0x0000 }, { 0x0a00, 0x0bc2, 0x0000 }, { 0x8a00, 0x0bcb, 0x3000 }, { 0x8a00, 0x0bc8, 0x2000 }, { 0x0a00, 0x0bc7, 0x0000 }, { 0x0a00, 0x0bca, 0x0000 }, { 0x8c00, 0x0bcd, 0x2000 }, { 0x0a00, 0x0bcc, 0x0000 }, { 0x0a00, 0x0bd7, 0x0000 }, { 0x8700, 0x0c0f, 0x6000 }, { 0x9a00, 0x0bf7, 0x5000 }, { 0x8d00, 0x0bef, 0x4000 }, { 0x8d00, 0x0beb, 0x3000 }, { 0x8d00, 0x0be9, 0x2000 }, { 0x0d00, 0x0be8, 0x0000 }, { 0x0d00, 0x0bea, 0x0000 }, { 0x8d00, 0x0bed, 0x2000 }, { 0x0d00, 0x0bec, 0x0000 }, { 0x0d00, 0x0bee, 0x0000 }, { 0x9a00, 0x0bf3, 0x3000 }, { 0x8f00, 0x0bf1, 0x2000 }, { 0x0f00, 0x0bf0, 0x0000 }, { 0x0f00, 0x0bf2, 0x0000 }, { 0x9a00, 0x0bf5, 0x2000 }, { 0x1a00, 0x0bf4, 0x0000 }, { 0x1a00, 0x0bf6, 0x0000 }, { 0x8700, 0x0c06, 0x4000 }, { 0x8a00, 0x0c01, 0x3000 }, { 0x9700, 0x0bf9, 0x2000 }, { 0x1a00, 0x0bf8, 0x0000 }, { 0x1a00, 0x0bfa, 0x0000 }, { 0x8a00, 0x0c03, 0x2000 }, { 0x0a00, 0x0c02, 0x0000 }, { 0x0700, 0x0c05, 0x0000 }, { 0x8700, 0x0c0a, 0x3000 }, { 0x8700, 0x0c08, 0x2000 }, { 0x0700, 0x0c07, 0x0000 }, { 0x0700, 0x0c09, 0x0000 }, { 0x8700, 0x0c0c, 0x2000 }, { 0x0700, 0x0c0b, 0x0000 }, { 0x0700, 0x0c0e, 0x0000 }, { 0x8700, 0x0c20, 0x5000 }, { 0x8700, 0x0c18, 0x4000 }, { 0x8700, 0x0c14, 0x3000 }, { 0x8700, 0x0c12, 0x2000 }, { 0x0700, 0x0c10, 0x0000 }, { 0x0700, 0x0c13, 0x0000 }, { 0x8700, 0x0c16, 0x2000 }, { 0x0700, 0x0c15, 0x0000 }, { 0x0700, 0x0c17, 0x0000 }, { 0x8700, 0x0c1c, 0x3000 }, { 0x8700, 0x0c1a, 0x2000 }, { 0x0700, 0x0c19, 0x0000 }, { 0x0700, 0x0c1b, 0x0000 }, { 0x8700, 0x0c1e, 0x2000 }, { 0x0700, 0x0c1d, 0x0000 }, { 0x0700, 0x0c1f, 0x0000 }, { 0x8700, 0x0c28, 0x4000 }, { 0x8700, 0x0c24, 0x3000 }, { 0x8700, 0x0c22, 0x2000 }, { 0x0700, 0x0c21, 0x0000 }, { 0x0700, 0x0c23, 0x0000 }, { 0x8700, 0x0c26, 0x2000 }, { 0x0700, 0x0c25, 0x0000 }, { 0x0700, 0x0c27, 0x0000 }, { 0x8700, 0x0c2d, 0x3000 }, { 0x8700, 0x0c2b, 0x2000 }, { 0x0700, 0x0c2a, 0x0000 }, { 0x0700, 0x0c2c, 0x0000 }, { 0x8700, 0x0c2f, 0x2000 }, { 0x0700, 0x0c2e, 0x0000 }, { 0x0700, 0x0c30, 0x0000 }, { 0x8700, 0x0d0e, 0x8000 }, { 0x8700, 0x0ca1, 0x7000 }, { 0x8d00, 0x0c6c, 0x6000 }, { 0x8c00, 0x0c47, 0x5000 }, { 0x8c00, 0x0c3e, 0x4000 }, { 0x8700, 0x0c36, 0x3000 }, { 0x8700, 0x0c33, 0x2000 }, { 0x0700, 0x0c32, 0x0000 }, { 0x0700, 0x0c35, 0x0000 }, { 0x8700, 0x0c38, 0x2000 }, { 0x0700, 0x0c37, 0x0000 }, { 0x0700, 0x0c39, 0x0000 }, { 0x8a00, 0x0c42, 0x3000 }, { 0x8c00, 0x0c40, 0x2000 }, { 0x0c00, 0x0c3f, 0x0000 }, { 0x0a00, 0x0c41, 0x0000 }, { 0x8a00, 0x0c44, 0x2000 }, { 0x0a00, 0x0c43, 0x0000 }, { 0x0c00, 0x0c46, 0x0000 }, { 0x8700, 0x0c60, 0x4000 }, { 0x8c00, 0x0c4c, 0x3000 }, { 0x8c00, 0x0c4a, 0x2000 }, { 0x0c00, 0x0c48, 0x0000 }, { 0x0c00, 0x0c4b, 0x0000 }, { 0x8c00, 0x0c55, 0x2000 }, { 0x0c00, 0x0c4d, 0x0000 }, { 0x0c00, 0x0c56, 0x0000 }, { 0x8d00, 0x0c68, 0x3000 }, { 0x8d00, 0x0c66, 0x2000 }, { 0x0700, 0x0c61, 0x0000 }, { 0x0d00, 0x0c67, 0x0000 }, { 0x8d00, 0x0c6a, 0x2000 }, { 0x0d00, 0x0c69, 0x0000 }, { 0x0d00, 0x0c6b, 0x0000 }, { 0x8700, 0x0c90, 0x5000 }, { 0x8700, 0x0c87, 0x4000 }, { 0x8a00, 0x0c82, 0x3000 }, { 0x8d00, 0x0c6e, 0x2000 }, { 0x0d00, 0x0c6d, 0x0000 }, { 0x0d00, 0x0c6f, 0x0000 }, { 0x8700, 0x0c85, 0x2000 }, { 0x0a00, 0x0c83, 0x0000 }, { 0x0700, 0x0c86, 0x0000 }, { 0x8700, 0x0c8b, 0x3000 }, { 0x8700, 0x0c89, 0x2000 }, { 0x0700, 0x0c88, 0x0000 }, { 0x0700, 0x0c8a, 0x0000 }, { 0x8700, 0x0c8e, 0x2000 }, { 0x0700, 0x0c8c, 0x0000 }, { 0x0700, 0x0c8f, 0x0000 }, { 0x8700, 0x0c99, 0x4000 }, { 0x8700, 0x0c95, 0x3000 }, { 0x8700, 0x0c93, 0x2000 }, { 0x0700, 0x0c92, 0x0000 }, { 0x0700, 0x0c94, 0x0000 }, { 0x8700, 0x0c97, 0x2000 }, { 0x0700, 0x0c96, 0x0000 }, { 0x0700, 0x0c98, 0x0000 }, { 0x8700, 0x0c9d, 0x3000 }, { 0x8700, 0x0c9b, 0x2000 }, { 0x0700, 0x0c9a, 0x0000 }, { 0x0700, 0x0c9c, 0x0000 }, { 0x8700, 0x0c9f, 0x2000 }, { 0x0700, 0x0c9e, 0x0000 }, { 0x0700, 0x0ca0, 0x0000 }, { 0x8c00, 0x0cc6, 0x6000 }, { 0x8700, 0x0cb2, 0x5000 }, { 0x8700, 0x0caa, 0x4000 }, { 0x8700, 0x0ca5, 0x3000 }, { 0x8700, 0x0ca3, 0x2000 }, { 0x0700, 0x0ca2, 0x0000 }, { 0x0700, 0x0ca4, 0x0000 }, { 0x8700, 0x0ca7, 0x2000 }, { 0x0700, 0x0ca6, 0x0000 }, { 0x0700, 0x0ca8, 0x0000 }, { 0x8700, 0x0cae, 0x3000 }, { 0x8700, 0x0cac, 0x2000 }, { 0x0700, 0x0cab, 0x0000 }, { 0x0700, 0x0cad, 0x0000 }, { 0x8700, 0x0cb0, 0x2000 }, { 0x0700, 0x0caf, 0x0000 }, { 0x0700, 0x0cb1, 0x0000 }, { 0x8700, 0x0cbd, 0x4000 }, { 0x8700, 0x0cb7, 0x3000 }, { 0x8700, 0x0cb5, 0x2000 }, { 0x0700, 0x0cb3, 0x0000 }, { 0x0700, 0x0cb6, 0x0000 }, { 0x8700, 0x0cb9, 0x2000 }, { 0x0700, 0x0cb8, 0x0000 }, { 0x0c00, 0x0cbc, 0x0000 }, { 0x8a00, 0x0cc1, 0x3000 }, { 0x8c00, 0x0cbf, 0x2000 }, { 0x0a00, 0x0cbe, 0x0000 }, { 0x0a00, 0x0cc0, 0x0000 }, { 0x8a00, 0x0cc3, 0x2000 }, { 0x0a00, 0x0cc2, 0x0000 }, { 0x0a00, 0x0cc4, 0x0000 }, { 0x8d00, 0x0cea, 0x5000 }, { 0x8a00, 0x0cd6, 0x4000 }, { 0x8a00, 0x0ccb, 0x3000 }, { 0x8a00, 0x0cc8, 0x2000 }, { 0x0a00, 0x0cc7, 0x0000 }, { 0x0a00, 0x0cca, 0x0000 }, { 0x8c00, 0x0ccd, 0x2000 }, { 0x0c00, 0x0ccc, 0x0000 }, { 0x0a00, 0x0cd5, 0x0000 }, { 0x8d00, 0x0ce6, 0x3000 }, { 0x8700, 0x0ce0, 0x2000 }, { 0x0700, 0x0cde, 0x0000 }, { 0x0700, 0x0ce1, 0x0000 }, { 0x8d00, 0x0ce8, 0x2000 }, { 0x0d00, 0x0ce7, 0x0000 }, { 0x0d00, 0x0ce9, 0x0000 }, { 0x8700, 0x0d05, 0x4000 }, { 0x8d00, 0x0cee, 0x3000 }, { 0x8d00, 0x0cec, 0x2000 }, { 0x0d00, 0x0ceb, 0x0000 }, { 0x0d00, 0x0ced, 0x0000 }, { 0x8a00, 0x0d02, 0x2000 }, { 0x0d00, 0x0cef, 0x0000 }, { 0x0a00, 0x0d03, 0x0000 }, { 0x8700, 0x0d09, 0x3000 }, { 0x8700, 0x0d07, 0x2000 }, { 0x0700, 0x0d06, 0x0000 }, { 0x0700, 0x0d08, 0x0000 }, { 0x8700, 0x0d0b, 0x2000 }, { 0x0700, 0x0d0a, 0x0000 }, { 0x0700, 0x0d0c, 0x0000 }, { 0x8d00, 0x0d6c, 0x7000 }, { 0x8700, 0x0d30, 0x6000 }, { 0x8700, 0x0d1f, 0x5000 }, { 0x8700, 0x0d17, 0x4000 }, { 0x8700, 0x0d13, 0x3000 }, { 0x8700, 0x0d10, 0x2000 }, { 0x0700, 0x0d0f, 0x0000 }, { 0x0700, 0x0d12, 0x0000 }, { 0x8700, 0x0d15, 0x2000 }, { 0x0700, 0x0d14, 0x0000 }, { 0x0700, 0x0d16, 0x0000 }, { 0x8700, 0x0d1b, 0x3000 }, { 0x8700, 0x0d19, 0x2000 }, { 0x0700, 0x0d18, 0x0000 }, { 0x0700, 0x0d1a, 0x0000 }, { 0x8700, 0x0d1d, 0x2000 }, { 0x0700, 0x0d1c, 0x0000 }, { 0x0700, 0x0d1e, 0x0000 }, { 0x8700, 0x0d27, 0x4000 }, { 0x8700, 0x0d23, 0x3000 }, { 0x8700, 0x0d21, 0x2000 }, { 0x0700, 0x0d20, 0x0000 }, { 0x0700, 0x0d22, 0x0000 }, { 0x8700, 0x0d25, 0x2000 }, { 0x0700, 0x0d24, 0x0000 }, { 0x0700, 0x0d26, 0x0000 }, { 0x8700, 0x0d2c, 0x3000 }, { 0x8700, 0x0d2a, 0x2000 }, { 0x0700, 0x0d28, 0x0000 }, { 0x0700, 0x0d2b, 0x0000 }, { 0x8700, 0x0d2e, 0x2000 }, { 0x0700, 0x0d2d, 0x0000 }, { 0x0700, 0x0d2f, 0x0000 }, { 0x8a00, 0x0d46, 0x5000 }, { 0x8700, 0x0d38, 0x4000 }, { 0x8700, 0x0d34, 0x3000 }, { 0x8700, 0x0d32, 0x2000 }, { 0x0700, 0x0d31, 0x0000 }, { 0x0700, 0x0d33, 0x0000 }, { 0x8700, 0x0d36, 0x2000 }, { 0x0700, 0x0d35, 0x0000 }, { 0x0700, 0x0d37, 0x0000 }, { 0x8a00, 0x0d40, 0x3000 }, { 0x8a00, 0x0d3e, 0x2000 }, { 0x0700, 0x0d39, 0x0000 }, { 0x0a00, 0x0d3f, 0x0000 }, { 0x8c00, 0x0d42, 0x2000 }, { 0x0c00, 0x0d41, 0x0000 }, { 0x0c00, 0x0d43, 0x0000 }, { 0x8700, 0x0d60, 0x4000 }, { 0x8a00, 0x0d4b, 0x3000 }, { 0x8a00, 0x0d48, 0x2000 }, { 0x0a00, 0x0d47, 0x0000 }, { 0x0a00, 0x0d4a, 0x0000 }, { 0x8c00, 0x0d4d, 0x2000 }, { 0x0a00, 0x0d4c, 0x0000 }, { 0x0a00, 0x0d57, 0x0000 }, { 0x8d00, 0x0d68, 0x3000 }, { 0x8d00, 0x0d66, 0x2000 }, { 0x0700, 0x0d61, 0x0000 }, { 0x0d00, 0x0d67, 0x0000 }, { 0x8d00, 0x0d6a, 0x2000 }, { 0x0d00, 0x0d69, 0x0000 }, { 0x0d00, 0x0d6b, 0x0000 }, { 0x8700, 0x0da2, 0x6000 }, { 0x8700, 0x0d8f, 0x5000 }, { 0x8700, 0x0d87, 0x4000 }, { 0x8a00, 0x0d82, 0x3000 }, { 0x8d00, 0x0d6e, 0x2000 }, { 0x0d00, 0x0d6d, 0x0000 }, { 0x0d00, 0x0d6f, 0x0000 }, { 0x8700, 0x0d85, 0x2000 }, { 0x0a00, 0x0d83, 0x0000 }, { 0x0700, 0x0d86, 0x0000 }, { 0x8700, 0x0d8b, 0x3000 }, { 0x8700, 0x0d89, 0x2000 }, { 0x0700, 0x0d88, 0x0000 }, { 0x0700, 0x0d8a, 0x0000 }, { 0x8700, 0x0d8d, 0x2000 }, { 0x0700, 0x0d8c, 0x0000 }, { 0x0700, 0x0d8e, 0x0000 }, { 0x8700, 0x0d9a, 0x4000 }, { 0x8700, 0x0d93, 0x3000 }, { 0x8700, 0x0d91, 0x2000 }, { 0x0700, 0x0d90, 0x0000 }, { 0x0700, 0x0d92, 0x0000 }, { 0x8700, 0x0d95, 0x2000 }, { 0x0700, 0x0d94, 0x0000 }, { 0x0700, 0x0d96, 0x0000 }, { 0x8700, 0x0d9e, 0x3000 }, { 0x8700, 0x0d9c, 0x2000 }, { 0x0700, 0x0d9b, 0x0000 }, { 0x0700, 0x0d9d, 0x0000 }, { 0x8700, 0x0da0, 0x2000 }, { 0x0700, 0x0d9f, 0x0000 }, { 0x0700, 0x0da1, 0x0000 }, { 0x8700, 0x0db3, 0x5000 }, { 0x8700, 0x0daa, 0x4000 }, { 0x8700, 0x0da6, 0x3000 }, { 0x8700, 0x0da4, 0x2000 }, { 0x0700, 0x0da3, 0x0000 }, { 0x0700, 0x0da5, 0x0000 }, { 0x8700, 0x0da8, 0x2000 }, { 0x0700, 0x0da7, 0x0000 }, { 0x0700, 0x0da9, 0x0000 }, { 0x8700, 0x0dae, 0x3000 }, { 0x8700, 0x0dac, 0x2000 }, { 0x0700, 0x0dab, 0x0000 }, { 0x0700, 0x0dad, 0x0000 }, { 0x8700, 0x0db0, 0x2000 }, { 0x0700, 0x0daf, 0x0000 }, { 0x0700, 0x0db1, 0x0000 }, { 0x8700, 0x0dbb, 0x4000 }, { 0x8700, 0x0db7, 0x3000 }, { 0x8700, 0x0db5, 0x2000 }, { 0x0700, 0x0db4, 0x0000 }, { 0x0700, 0x0db6, 0x0000 }, { 0x8700, 0x0db9, 0x2000 }, { 0x0700, 0x0db8, 0x0000 }, { 0x0700, 0x0dba, 0x0000 }, { 0x8700, 0x0dc2, 0x3000 }, { 0x8700, 0x0dc0, 0x2000 }, { 0x0700, 0x0dbd, 0x0000 }, { 0x0700, 0x0dc1, 0x0000 }, { 0x8700, 0x0dc4, 0x2000 }, { 0x0700, 0x0dc3, 0x0000 }, { 0x0700, 0x0dc5, 0x0000 }, { 0x8700, 0x0f55, 0x9000 }, { 0x8700, 0x0ea5, 0x8000 }, { 0x8700, 0x0e2d, 0x7000 }, { 0x8700, 0x0e0d, 0x6000 }, { 0x8a00, 0x0ddf, 0x5000 }, { 0x8c00, 0x0dd6, 0x4000 }, { 0x8a00, 0x0dd1, 0x3000 }, { 0x8a00, 0x0dcf, 0x2000 }, { 0x0c00, 0x0dca, 0x0000 }, { 0x0a00, 0x0dd0, 0x0000 }, { 0x8c00, 0x0dd3, 0x2000 }, { 0x0c00, 0x0dd2, 0x0000 }, { 0x0c00, 0x0dd4, 0x0000 }, { 0x8a00, 0x0ddb, 0x3000 }, { 0x8a00, 0x0dd9, 0x2000 }, { 0x0a00, 0x0dd8, 0x0000 }, { 0x0a00, 0x0dda, 0x0000 }, { 0x8a00, 0x0ddd, 0x2000 }, { 0x0a00, 0x0ddc, 0x0000 }, { 0x0a00, 0x0dde, 0x0000 }, { 0x8700, 0x0e05, 0x4000 }, { 0x8700, 0x0e01, 0x3000 }, { 0x8a00, 0x0df3, 0x2000 }, { 0x0a00, 0x0df2, 0x0000 }, { 0x1500, 0x0df4, 0x0000 }, { 0x8700, 0x0e03, 0x2000 }, { 0x0700, 0x0e02, 0x0000 }, { 0x0700, 0x0e04, 0x0000 }, { 0x8700, 0x0e09, 0x3000 }, { 0x8700, 0x0e07, 0x2000 }, { 0x0700, 0x0e06, 0x0000 }, { 0x0700, 0x0e08, 0x0000 }, { 0x8700, 0x0e0b, 0x2000 }, { 0x0700, 0x0e0a, 0x0000 }, { 0x0700, 0x0e0c, 0x0000 }, { 0x8700, 0x0e1d, 0x5000 }, { 0x8700, 0x0e15, 0x4000 }, { 0x8700, 0x0e11, 0x3000 }, { 0x8700, 0x0e0f, 0x2000 }, { 0x0700, 0x0e0e, 0x0000 }, { 0x0700, 0x0e10, 0x0000 }, { 0x8700, 0x0e13, 0x2000 }, { 0x0700, 0x0e12, 0x0000 }, { 0x0700, 0x0e14, 0x0000 }, { 0x8700, 0x0e19, 0x3000 }, { 0x8700, 0x0e17, 0x2000 }, { 0x0700, 0x0e16, 0x0000 }, { 0x0700, 0x0e18, 0x0000 }, { 0x8700, 0x0e1b, 0x2000 }, { 0x0700, 0x0e1a, 0x0000 }, { 0x0700, 0x0e1c, 0x0000 }, { 0x8700, 0x0e25, 0x4000 }, { 0x8700, 0x0e21, 0x3000 }, { 0x8700, 0x0e1f, 0x2000 }, { 0x0700, 0x0e1e, 0x0000 }, { 0x0700, 0x0e20, 0x0000 }, { 0x8700, 0x0e23, 0x2000 }, { 0x0700, 0x0e22, 0x0000 }, { 0x0700, 0x0e24, 0x0000 }, { 0x8700, 0x0e29, 0x3000 }, { 0x8700, 0x0e27, 0x2000 }, { 0x0700, 0x0e26, 0x0000 }, { 0x0700, 0x0e28, 0x0000 }, { 0x8700, 0x0e2b, 0x2000 }, { 0x0700, 0x0e2a, 0x0000 }, { 0x0700, 0x0e2c, 0x0000 }, { 0x8d00, 0x0e51, 0x6000 }, { 0x8700, 0x0e41, 0x5000 }, { 0x8c00, 0x0e35, 0x4000 }, { 0x8c00, 0x0e31, 0x3000 }, { 0x8700, 0x0e2f, 0x2000 }, { 0x0700, 0x0e2e, 0x0000 }, { 0x0700, 0x0e30, 0x0000 }, { 0x8700, 0x0e33, 0x2000 }, { 0x0700, 0x0e32, 0x0000 }, { 0x0c00, 0x0e34, 0x0000 }, { 0x8c00, 0x0e39, 0x3000 }, { 0x8c00, 0x0e37, 0x2000 }, { 0x0c00, 0x0e36, 0x0000 }, { 0x0c00, 0x0e38, 0x0000 }, { 0x9700, 0x0e3f, 0x2000 }, { 0x0c00, 0x0e3a, 0x0000 }, { 0x0700, 0x0e40, 0x0000 }, { 0x8c00, 0x0e49, 0x4000 }, { 0x8700, 0x0e45, 0x3000 }, { 0x8700, 0x0e43, 0x2000 }, { 0x0700, 0x0e42, 0x0000 }, { 0x0700, 0x0e44, 0x0000 }, { 0x8c00, 0x0e47, 0x2000 }, { 0x0600, 0x0e46, 0x0000 }, { 0x0c00, 0x0e48, 0x0000 }, { 0x8c00, 0x0e4d, 0x3000 }, { 0x8c00, 0x0e4b, 0x2000 }, { 0x0c00, 0x0e4a, 0x0000 }, { 0x0c00, 0x0e4c, 0x0000 }, { 0x9500, 0x0e4f, 0x2000 }, { 0x0c00, 0x0e4e, 0x0000 }, { 0x0d00, 0x0e50, 0x0000 }, { 0x8700, 0x0e8a, 0x5000 }, { 0x8d00, 0x0e59, 0x4000 }, { 0x8d00, 0x0e55, 0x3000 }, { 0x8d00, 0x0e53, 0x2000 }, { 0x0d00, 0x0e52, 0x0000 }, { 0x0d00, 0x0e54, 0x0000 }, { 0x8d00, 0x0e57, 0x2000 }, { 0x0d00, 0x0e56, 0x0000 }, { 0x0d00, 0x0e58, 0x0000 }, { 0x8700, 0x0e82, 0x3000 }, { 0x9500, 0x0e5b, 0x2000 }, { 0x1500, 0x0e5a, 0x0000 }, { 0x0700, 0x0e81, 0x0000 }, { 0x8700, 0x0e87, 0x2000 }, { 0x0700, 0x0e84, 0x0000 }, { 0x0700, 0x0e88, 0x0000 }, { 0x8700, 0x0e9b, 0x4000 }, { 0x8700, 0x0e96, 0x3000 }, { 0x8700, 0x0e94, 0x2000 }, { 0x0700, 0x0e8d, 0x0000 }, { 0x0700, 0x0e95, 0x0000 }, { 0x8700, 0x0e99, 0x2000 }, { 0x0700, 0x0e97, 0x0000 }, { 0x0700, 0x0e9a, 0x0000 }, { 0x8700, 0x0e9f, 0x3000 }, { 0x8700, 0x0e9d, 0x2000 }, { 0x0700, 0x0e9c, 0x0000 }, { 0x0700, 0x0e9e, 0x0000 }, { 0x8700, 0x0ea2, 0x2000 }, { 0x0700, 0x0ea1, 0x0000 }, { 0x0700, 0x0ea3, 0x0000 }, { 0x9a00, 0x0f14, 0x7000 }, { 0x8d00, 0x0ed0, 0x6000 }, { 0x8c00, 0x0eb9, 0x5000 }, { 0x8c00, 0x0eb1, 0x4000 }, { 0x8700, 0x0ead, 0x3000 }, { 0x8700, 0x0eaa, 0x2000 }, { 0x0700, 0x0ea7, 0x0000 }, { 0x0700, 0x0eab, 0x0000 }, { 0x8700, 0x0eaf, 0x2000 }, { 0x0700, 0x0eae, 0x0000 }, { 0x0700, 0x0eb0, 0x0000 }, { 0x8c00, 0x0eb5, 0x3000 }, { 0x8700, 0x0eb3, 0x2000 }, { 0x0700, 0x0eb2, 0x0000 }, { 0x0c00, 0x0eb4, 0x0000 }, { 0x8c00, 0x0eb7, 0x2000 }, { 0x0c00, 0x0eb6, 0x0000 }, { 0x0c00, 0x0eb8, 0x0000 }, { 0x8700, 0x0ec4, 0x4000 }, { 0x8700, 0x0ec0, 0x3000 }, { 0x8c00, 0x0ebc, 0x2000 }, { 0x0c00, 0x0ebb, 0x0000 }, { 0x0700, 0x0ebd, 0x0000 }, { 0x8700, 0x0ec2, 0x2000 }, { 0x0700, 0x0ec1, 0x0000 }, { 0x0700, 0x0ec3, 0x0000 }, { 0x8c00, 0x0eca, 0x3000 }, { 0x8c00, 0x0ec8, 0x2000 }, { 0x0600, 0x0ec6, 0x0000 }, { 0x0c00, 0x0ec9, 0x0000 }, { 0x8c00, 0x0ecc, 0x2000 }, { 0x0c00, 0x0ecb, 0x0000 }, { 0x0c00, 0x0ecd, 0x0000 }, { 0x9500, 0x0f04, 0x5000 }, { 0x8d00, 0x0ed8, 0x4000 }, { 0x8d00, 0x0ed4, 0x3000 }, { 0x8d00, 0x0ed2, 0x2000 }, { 0x0d00, 0x0ed1, 0x0000 }, { 0x0d00, 0x0ed3, 0x0000 }, { 0x8d00, 0x0ed6, 0x2000 }, { 0x0d00, 0x0ed5, 0x0000 }, { 0x0d00, 0x0ed7, 0x0000 }, { 0x8700, 0x0f00, 0x3000 }, { 0x8700, 0x0edc, 0x2000 }, { 0x0d00, 0x0ed9, 0x0000 }, { 0x0700, 0x0edd, 0x0000 }, { 0x9a00, 0x0f02, 0x2000 }, { 0x1a00, 0x0f01, 0x0000 }, { 0x1a00, 0x0f03, 0x0000 }, { 0x9500, 0x0f0c, 0x4000 }, { 0x9500, 0x0f08, 0x3000 }, { 0x9500, 0x0f06, 0x2000 }, { 0x1500, 0x0f05, 0x0000 }, { 0x1500, 0x0f07, 0x0000 }, { 0x9500, 0x0f0a, 0x2000 }, { 0x1500, 0x0f09, 0x0000 }, { 0x1500, 0x0f0b, 0x0000 }, { 0x9500, 0x0f10, 0x3000 }, { 0x9500, 0x0f0e, 0x2000 }, { 0x1500, 0x0f0d, 0x0000 }, { 0x1500, 0x0f0f, 0x0000 }, { 0x9500, 0x0f12, 0x2000 }, { 0x1500, 0x0f11, 0x0000 }, { 0x1a00, 0x0f13, 0x0000 }, { 0x9a00, 0x0f34, 0x6000 }, { 0x8d00, 0x0f24, 0x5000 }, { 0x9a00, 0x0f1c, 0x4000 }, { 0x8c00, 0x0f18, 0x3000 }, { 0x9a00, 0x0f16, 0x2000 }, { 0x1a00, 0x0f15, 0x0000 }, { 0x1a00, 0x0f17, 0x0000 }, { 0x9a00, 0x0f1a, 0x2000 }, { 0x0c00, 0x0f19, 0x0000 }, { 0x1a00, 0x0f1b, 0x0000 }, { 0x8d00, 0x0f20, 0x3000 }, { 0x9a00, 0x0f1e, 0x2000 }, { 0x1a00, 0x0f1d, 0x0000 }, { 0x1a00, 0x0f1f, 0x0000 }, { 0x8d00, 0x0f22, 0x2000 }, { 0x0d00, 0x0f21, 0x0000 }, { 0x0d00, 0x0f23, 0x0000 }, { 0x8f00, 0x0f2c, 0x4000 }, { 0x8d00, 0x0f28, 0x3000 }, { 0x8d00, 0x0f26, 0x2000 }, { 0x0d00, 0x0f25, 0x0000 }, { 0x0d00, 0x0f27, 0x0000 }, { 0x8f00, 0x0f2a, 0x2000 }, { 0x0d00, 0x0f29, 0x0000 }, { 0x0f00, 0x0f2b, 0x0000 }, { 0x8f00, 0x0f30, 0x3000 }, { 0x8f00, 0x0f2e, 0x2000 }, { 0x0f00, 0x0f2d, 0x0000 }, { 0x0f00, 0x0f2f, 0x0000 }, { 0x8f00, 0x0f32, 0x2000 }, { 0x0f00, 0x0f31, 0x0000 }, { 0x0f00, 0x0f33, 0x0000 }, { 0x8700, 0x0f44, 0x5000 }, { 0x9600, 0x0f3c, 0x4000 }, { 0x9a00, 0x0f38, 0x3000 }, { 0x9a00, 0x0f36, 0x2000 }, { 0x0c00, 0x0f35, 0x0000 }, { 0x0c00, 0x0f37, 0x0000 }, { 0x9600, 0x0f3a, 0x2000 }, { 0x0c00, 0x0f39, 0x0000 }, { 0x1200, 0x0f3b, 0x0000 }, { 0x8700, 0x0f40, 0x3000 }, { 0x8a00, 0x0f3e, 0x2000 }, { 0x1200, 0x0f3d, 0x0000 }, { 0x0a00, 0x0f3f, 0x0000 }, { 0x8700, 0x0f42, 0x2000 }, { 0x0700, 0x0f41, 0x0000 }, { 0x0700, 0x0f43, 0x0000 }, { 0x8700, 0x0f4d, 0x4000 }, { 0x8700, 0x0f49, 0x3000 }, { 0x8700, 0x0f46, 0x2000 }, { 0x0700, 0x0f45, 0x0000 }, { 0x0700, 0x0f47, 0x0000 }, { 0x8700, 0x0f4b, 0x2000 }, { 0x0700, 0x0f4a, 0x0000 }, { 0x0700, 0x0f4c, 0x0000 }, { 0x8700, 0x0f51, 0x3000 }, { 0x8700, 0x0f4f, 0x2000 }, { 0x0700, 0x0f4e, 0x0000 }, { 0x0700, 0x0f50, 0x0000 }, { 0x8700, 0x0f53, 0x2000 }, { 0x0700, 0x0f52, 0x0000 }, { 0x0700, 0x0f54, 0x0000 }, { 0x8700, 0x1013, 0x8000 }, { 0x8c00, 0x0fa0, 0x7000 }, { 0x8c00, 0x0f7b, 0x6000 }, { 0x8700, 0x0f65, 0x5000 }, { 0x8700, 0x0f5d, 0x4000 }, { 0x8700, 0x0f59, 0x3000 }, { 0x8700, 0x0f57, 0x2000 }, { 0x0700, 0x0f56, 0x0000 }, { 0x0700, 0x0f58, 0x0000 }, { 0x8700, 0x0f5b, 0x2000 }, { 0x0700, 0x0f5a, 0x0000 }, { 0x0700, 0x0f5c, 0x0000 }, { 0x8700, 0x0f61, 0x3000 }, { 0x8700, 0x0f5f, 0x2000 }, { 0x0700, 0x0f5e, 0x0000 }, { 0x0700, 0x0f60, 0x0000 }, { 0x8700, 0x0f63, 0x2000 }, { 0x0700, 0x0f62, 0x0000 }, { 0x0700, 0x0f64, 0x0000 }, { 0x8c00, 0x0f73, 0x4000 }, { 0x8700, 0x0f69, 0x3000 }, { 0x8700, 0x0f67, 0x2000 }, { 0x0700, 0x0f66, 0x0000 }, { 0x0700, 0x0f68, 0x0000 }, { 0x8c00, 0x0f71, 0x2000 }, { 0x0700, 0x0f6a, 0x0000 }, { 0x0c00, 0x0f72, 0x0000 }, { 0x8c00, 0x0f77, 0x3000 }, { 0x8c00, 0x0f75, 0x2000 }, { 0x0c00, 0x0f74, 0x0000 }, { 0x0c00, 0x0f76, 0x0000 }, { 0x8c00, 0x0f79, 0x2000 }, { 0x0c00, 0x0f78, 0x0000 }, { 0x0c00, 0x0f7a, 0x0000 }, { 0x8700, 0x0f8b, 0x5000 }, { 0x8c00, 0x0f83, 0x4000 }, { 0x8a00, 0x0f7f, 0x3000 }, { 0x8c00, 0x0f7d, 0x2000 }, { 0x0c00, 0x0f7c, 0x0000 }, { 0x0c00, 0x0f7e, 0x0000 }, { 0x8c00, 0x0f81, 0x2000 }, { 0x0c00, 0x0f80, 0x0000 }, { 0x0c00, 0x0f82, 0x0000 }, { 0x8c00, 0x0f87, 0x3000 }, { 0x9500, 0x0f85, 0x2000 }, { 0x0c00, 0x0f84, 0x0000 }, { 0x0c00, 0x0f86, 0x0000 }, { 0x8700, 0x0f89, 0x2000 }, { 0x0700, 0x0f88, 0x0000 }, { 0x0700, 0x0f8a, 0x0000 }, { 0x8c00, 0x0f97, 0x4000 }, { 0x8c00, 0x0f93, 0x3000 }, { 0x8c00, 0x0f91, 0x2000 }, { 0x0c00, 0x0f90, 0x0000 }, { 0x0c00, 0x0f92, 0x0000 }, { 0x8c00, 0x0f95, 0x2000 }, { 0x0c00, 0x0f94, 0x0000 }, { 0x0c00, 0x0f96, 0x0000 }, { 0x8c00, 0x0f9c, 0x3000 }, { 0x8c00, 0x0f9a, 0x2000 }, { 0x0c00, 0x0f99, 0x0000 }, { 0x0c00, 0x0f9b, 0x0000 }, { 0x8c00, 0x0f9e, 0x2000 }, { 0x0c00, 0x0f9d, 0x0000 }, { 0x0c00, 0x0f9f, 0x0000 }, { 0x9a00, 0x0fc1, 0x6000 }, { 0x8c00, 0x0fb0, 0x5000 }, { 0x8c00, 0x0fa8, 0x4000 }, { 0x8c00, 0x0fa4, 0x3000 }, { 0x8c00, 0x0fa2, 0x2000 }, { 0x0c00, 0x0fa1, 0x0000 }, { 0x0c00, 0x0fa3, 0x0000 }, { 0x8c00, 0x0fa6, 0x2000 }, { 0x0c00, 0x0fa5, 0x0000 }, { 0x0c00, 0x0fa7, 0x0000 }, { 0x8c00, 0x0fac, 0x3000 }, { 0x8c00, 0x0faa, 0x2000 }, { 0x0c00, 0x0fa9, 0x0000 }, { 0x0c00, 0x0fab, 0x0000 }, { 0x8c00, 0x0fae, 0x2000 }, { 0x0c00, 0x0fad, 0x0000 }, { 0x0c00, 0x0faf, 0x0000 }, { 0x8c00, 0x0fb8, 0x4000 }, { 0x8c00, 0x0fb4, 0x3000 }, { 0x8c00, 0x0fb2, 0x2000 }, { 0x0c00, 0x0fb1, 0x0000 }, { 0x0c00, 0x0fb3, 0x0000 }, { 0x8c00, 0x0fb6, 0x2000 }, { 0x0c00, 0x0fb5, 0x0000 }, { 0x0c00, 0x0fb7, 0x0000 }, { 0x8c00, 0x0fbc, 0x3000 }, { 0x8c00, 0x0fba, 0x2000 }, { 0x0c00, 0x0fb9, 0x0000 }, { 0x0c00, 0x0fbb, 0x0000 }, { 0x9a00, 0x0fbf, 0x2000 }, { 0x1a00, 0x0fbe, 0x0000 }, { 0x1a00, 0x0fc0, 0x0000 }, { 0x8700, 0x1003, 0x5000 }, { 0x9a00, 0x0fc9, 0x4000 }, { 0x9a00, 0x0fc5, 0x3000 }, { 0x9a00, 0x0fc3, 0x2000 }, { 0x1a00, 0x0fc2, 0x0000 }, { 0x1a00, 0x0fc4, 0x0000 }, { 0x9a00, 0x0fc7, 0x2000 }, { 0x0c00, 0x0fc6, 0x0000 }, { 0x1a00, 0x0fc8, 0x0000 }, { 0x9a00, 0x0fcf, 0x3000 }, { 0x9a00, 0x0fcb, 0x2000 }, { 0x1a00, 0x0fca, 0x0000 }, { 0x1a00, 0x0fcc, 0x0000 }, { 0x8700, 0x1001, 0x2000 }, { 0x0700, 0x1000, 0x0000 }, { 0x0700, 0x1002, 0x0000 }, { 0x8700, 0x100b, 0x4000 }, { 0x8700, 0x1007, 0x3000 }, { 0x8700, 0x1005, 0x2000 }, { 0x0700, 0x1004, 0x0000 }, { 0x0700, 0x1006, 0x0000 }, { 0x8700, 0x1009, 0x2000 }, { 0x0700, 0x1008, 0x0000 }, { 0x0700, 0x100a, 0x0000 }, { 0x8700, 0x100f, 0x3000 }, { 0x8700, 0x100d, 0x2000 }, { 0x0700, 0x100c, 0x0000 }, { 0x0700, 0x100e, 0x0000 }, { 0x8700, 0x1011, 0x2000 }, { 0x0700, 0x1010, 0x0000 }, { 0x0700, 0x1012, 0x0000 }, { 0x8900, 0x10a5, 0x7000 }, { 0x8c00, 0x1039, 0x6000 }, { 0x8700, 0x1024, 0x5000 }, { 0x8700, 0x101b, 0x4000 }, { 0x8700, 0x1017, 0x3000 }, { 0x8700, 0x1015, 0x2000 }, { 0x0700, 0x1014, 0x0000 }, { 0x0700, 0x1016, 0x0000 }, { 0x8700, 0x1019, 0x2000 }, { 0x0700, 0x1018, 0x0000 }, { 0x0700, 0x101a, 0x0000 }, { 0x8700, 0x101f, 0x3000 }, { 0x8700, 0x101d, 0x2000 }, { 0x0700, 0x101c, 0x0000 }, { 0x0700, 0x101e, 0x0000 }, { 0x8700, 0x1021, 0x2000 }, { 0x0700, 0x1020, 0x0000 }, { 0x0700, 0x1023, 0x0000 }, { 0x8c00, 0x102e, 0x4000 }, { 0x8700, 0x1029, 0x3000 }, { 0x8700, 0x1026, 0x2000 }, { 0x0700, 0x1025, 0x0000 }, { 0x0700, 0x1027, 0x0000 }, { 0x8a00, 0x102c, 0x2000 }, { 0x0700, 0x102a, 0x0000 }, { 0x0c00, 0x102d, 0x0000 }, { 0x8c00, 0x1032, 0x3000 }, { 0x8c00, 0x1030, 0x2000 }, { 0x0c00, 0x102f, 0x0000 }, { 0x0a00, 0x1031, 0x0000 }, { 0x8c00, 0x1037, 0x2000 }, { 0x0c00, 0x1036, 0x0000 }, { 0x0a00, 0x1038, 0x0000 }, { 0x9500, 0x104f, 0x5000 }, { 0x8d00, 0x1047, 0x4000 }, { 0x8d00, 0x1043, 0x3000 }, { 0x8d00, 0x1041, 0x2000 }, { 0x0d00, 0x1040, 0x0000 }, { 0x0d00, 0x1042, 0x0000 }, { 0x8d00, 0x1045, 0x2000 }, { 0x0d00, 0x1044, 0x0000 }, { 0x0d00, 0x1046, 0x0000 }, { 0x9500, 0x104b, 0x3000 }, { 0x8d00, 0x1049, 0x2000 }, { 0x0d00, 0x1048, 0x0000 }, { 0x1500, 0x104a, 0x0000 }, { 0x9500, 0x104d, 0x2000 }, { 0x1500, 0x104c, 0x0000 }, { 0x1500, 0x104e, 0x0000 }, { 0x8a00, 0x1057, 0x4000 }, { 0x8700, 0x1053, 0x3000 }, { 0x8700, 0x1051, 0x2000 }, { 0x0700, 0x1050, 0x0000 }, { 0x0700, 0x1052, 0x0000 }, { 0x8700, 0x1055, 0x2000 }, { 0x0700, 0x1054, 0x0000 }, { 0x0a00, 0x1056, 0x0000 }, { 0x8900, 0x10a1, 0x3000 }, { 0x8c00, 0x1059, 0x2000 }, { 0x0c00, 0x1058, 0x0000 }, { 0x0900, 0x10a0, 0x0000 }, { 0x8900, 0x10a3, 0x2000 }, { 0x0900, 0x10a2, 0x0000 }, { 0x0900, 0x10a4, 0x0000 }, { 0x8900, 0x10c5, 0x6000 }, { 0x8900, 0x10b5, 0x5000 }, { 0x8900, 0x10ad, 0x4000 }, { 0x8900, 0x10a9, 0x3000 }, { 0x8900, 0x10a7, 0x2000 }, { 0x0900, 0x10a6, 0x0000 }, { 0x0900, 0x10a8, 0x0000 }, { 0x8900, 0x10ab, 0x2000 }, { 0x0900, 0x10aa, 0x0000 }, { 0x0900, 0x10ac, 0x0000 }, { 0x8900, 0x10b1, 0x3000 }, { 0x8900, 0x10af, 0x2000 }, { 0x0900, 0x10ae, 0x0000 }, { 0x0900, 0x10b0, 0x0000 }, { 0x8900, 0x10b3, 0x2000 }, { 0x0900, 0x10b2, 0x0000 }, { 0x0900, 0x10b4, 0x0000 }, { 0x8900, 0x10bd, 0x4000 }, { 0x8900, 0x10b9, 0x3000 }, { 0x8900, 0x10b7, 0x2000 }, { 0x0900, 0x10b6, 0x0000 }, { 0x0900, 0x10b8, 0x0000 }, { 0x8900, 0x10bb, 0x2000 }, { 0x0900, 0x10ba, 0x0000 }, { 0x0900, 0x10bc, 0x0000 }, { 0x8900, 0x10c1, 0x3000 }, { 0x8900, 0x10bf, 0x2000 }, { 0x0900, 0x10be, 0x0000 }, { 0x0900, 0x10c0, 0x0000 }, { 0x8900, 0x10c3, 0x2000 }, { 0x0900, 0x10c2, 0x0000 }, { 0x0900, 0x10c4, 0x0000 }, { 0x8700, 0x10df, 0x5000 }, { 0x8700, 0x10d7, 0x4000 }, { 0x8700, 0x10d3, 0x3000 }, { 0x8700, 0x10d1, 0x2000 }, { 0x0700, 0x10d0, 0x0000 }, { 0x0700, 0x10d2, 0x0000 }, { 0x8700, 0x10d5, 0x2000 }, { 0x0700, 0x10d4, 0x0000 }, { 0x0700, 0x10d6, 0x0000 }, { 0x8700, 0x10db, 0x3000 }, { 0x8700, 0x10d9, 0x2000 }, { 0x0700, 0x10d8, 0x0000 }, { 0x0700, 0x10da, 0x0000 }, { 0x8700, 0x10dd, 0x2000 }, { 0x0700, 0x10dc, 0x0000 }, { 0x0700, 0x10de, 0x0000 }, { 0x8700, 0x10e7, 0x4000 }, { 0x8700, 0x10e3, 0x3000 }, { 0x8700, 0x10e1, 0x2000 }, { 0x0700, 0x10e0, 0x0000 }, { 0x0700, 0x10e2, 0x0000 }, { 0x8700, 0x10e5, 0x2000 }, { 0x0700, 0x10e4, 0x0000 }, { 0x0700, 0x10e6, 0x0000 }, { 0x8700, 0x10eb, 0x3000 }, { 0x8700, 0x10e9, 0x2000 }, { 0x0700, 0x10e8, 0x0000 }, { 0x0700, 0x10ea, 0x0000 }, { 0x8700, 0x10ed, 0x2000 }, { 0x0700, 0x10ec, 0x0000 }, { 0x0700, 0x10ee, 0x0000 }, { 0x8700, 0x1322, 0xa000 }, { 0x8700, 0x1205, 0x9000 }, { 0x8700, 0x117a, 0x8000 }, { 0x8700, 0x1135, 0x7000 }, { 0x8700, 0x1115, 0x6000 }, { 0x8700, 0x1105, 0x5000 }, { 0x8700, 0x10f7, 0x4000 }, { 0x8700, 0x10f3, 0x3000 }, { 0x8700, 0x10f1, 0x2000 }, { 0x0700, 0x10f0, 0x0000 }, { 0x0700, 0x10f2, 0x0000 }, { 0x8700, 0x10f5, 0x2000 }, { 0x0700, 0x10f4, 0x0000 }, { 0x0700, 0x10f6, 0x0000 }, { 0x8700, 0x1101, 0x3000 }, { 0x9500, 0x10fb, 0x2000 }, { 0x0700, 0x10f8, 0x0000 }, { 0x0700, 0x1100, 0x0000 }, { 0x8700, 0x1103, 0x2000 }, { 0x0700, 0x1102, 0x0000 }, { 0x0700, 0x1104, 0x0000 }, { 0x8700, 0x110d, 0x4000 }, { 0x8700, 0x1109, 0x3000 }, { 0x8700, 0x1107, 0x2000 }, { 0x0700, 0x1106, 0x0000 }, { 0x0700, 0x1108, 0x0000 }, { 0x8700, 0x110b, 0x2000 }, { 0x0700, 0x110a, 0x0000 }, { 0x0700, 0x110c, 0x0000 }, { 0x8700, 0x1111, 0x3000 }, { 0x8700, 0x110f, 0x2000 }, { 0x0700, 0x110e, 0x0000 }, { 0x0700, 0x1110, 0x0000 }, { 0x8700, 0x1113, 0x2000 }, { 0x0700, 0x1112, 0x0000 }, { 0x0700, 0x1114, 0x0000 }, { 0x8700, 0x1125, 0x5000 }, { 0x8700, 0x111d, 0x4000 }, { 0x8700, 0x1119, 0x3000 }, { 0x8700, 0x1117, 0x2000 }, { 0x0700, 0x1116, 0x0000 }, { 0x0700, 0x1118, 0x0000 }, { 0x8700, 0x111b, 0x2000 }, { 0x0700, 0x111a, 0x0000 }, { 0x0700, 0x111c, 0x0000 }, { 0x8700, 0x1121, 0x3000 }, { 0x8700, 0x111f, 0x2000 }, { 0x0700, 0x111e, 0x0000 }, { 0x0700, 0x1120, 0x0000 }, { 0x8700, 0x1123, 0x2000 }, { 0x0700, 0x1122, 0x0000 }, { 0x0700, 0x1124, 0x0000 }, { 0x8700, 0x112d, 0x4000 }, { 0x8700, 0x1129, 0x3000 }, { 0x8700, 0x1127, 0x2000 }, { 0x0700, 0x1126, 0x0000 }, { 0x0700, 0x1128, 0x0000 }, { 0x8700, 0x112b, 0x2000 }, { 0x0700, 0x112a, 0x0000 }, { 0x0700, 0x112c, 0x0000 }, { 0x8700, 0x1131, 0x3000 }, { 0x8700, 0x112f, 0x2000 }, { 0x0700, 0x112e, 0x0000 }, { 0x0700, 0x1130, 0x0000 }, { 0x8700, 0x1133, 0x2000 }, { 0x0700, 0x1132, 0x0000 }, { 0x0700, 0x1134, 0x0000 }, { 0x8700, 0x1155, 0x6000 }, { 0x8700, 0x1145, 0x5000 }, { 0x8700, 0x113d, 0x4000 }, { 0x8700, 0x1139, 0x3000 }, { 0x8700, 0x1137, 0x2000 }, { 0x0700, 0x1136, 0x0000 }, { 0x0700, 0x1138, 0x0000 }, { 0x8700, 0x113b, 0x2000 }, { 0x0700, 0x113a, 0x0000 }, { 0x0700, 0x113c, 0x0000 }, { 0x8700, 0x1141, 0x3000 }, { 0x8700, 0x113f, 0x2000 }, { 0x0700, 0x113e, 0x0000 }, { 0x0700, 0x1140, 0x0000 }, { 0x8700, 0x1143, 0x2000 }, { 0x0700, 0x1142, 0x0000 }, { 0x0700, 0x1144, 0x0000 }, { 0x8700, 0x114d, 0x4000 }, { 0x8700, 0x1149, 0x3000 }, { 0x8700, 0x1147, 0x2000 }, { 0x0700, 0x1146, 0x0000 }, { 0x0700, 0x1148, 0x0000 }, { 0x8700, 0x114b, 0x2000 }, { 0x0700, 0x114a, 0x0000 }, { 0x0700, 0x114c, 0x0000 }, { 0x8700, 0x1151, 0x3000 }, { 0x8700, 0x114f, 0x2000 }, { 0x0700, 0x114e, 0x0000 }, { 0x0700, 0x1150, 0x0000 }, { 0x8700, 0x1153, 0x2000 }, { 0x0700, 0x1152, 0x0000 }, { 0x0700, 0x1154, 0x0000 }, { 0x8700, 0x116a, 0x5000 }, { 0x8700, 0x1162, 0x4000 }, { 0x8700, 0x1159, 0x3000 }, { 0x8700, 0x1157, 0x2000 }, { 0x0700, 0x1156, 0x0000 }, { 0x0700, 0x1158, 0x0000 }, { 0x8700, 0x1160, 0x2000 }, { 0x0700, 0x115f, 0x0000 }, { 0x0700, 0x1161, 0x0000 }, { 0x8700, 0x1166, 0x3000 }, { 0x8700, 0x1164, 0x2000 }, { 0x0700, 0x1163, 0x0000 }, { 0x0700, 0x1165, 0x0000 }, { 0x8700, 0x1168, 0x2000 }, { 0x0700, 0x1167, 0x0000 }, { 0x0700, 0x1169, 0x0000 }, { 0x8700, 0x1172, 0x4000 }, { 0x8700, 0x116e, 0x3000 }, { 0x8700, 0x116c, 0x2000 }, { 0x0700, 0x116b, 0x0000 }, { 0x0700, 0x116d, 0x0000 }, { 0x8700, 0x1170, 0x2000 }, { 0x0700, 0x116f, 0x0000 }, { 0x0700, 0x1171, 0x0000 }, { 0x8700, 0x1176, 0x3000 }, { 0x8700, 0x1174, 0x2000 }, { 0x0700, 0x1173, 0x0000 }, { 0x0700, 0x1175, 0x0000 }, { 0x8700, 0x1178, 0x2000 }, { 0x0700, 0x1177, 0x0000 }, { 0x0700, 0x1179, 0x0000 }, { 0x8700, 0x11bf, 0x7000 }, { 0x8700, 0x119a, 0x6000 }, { 0x8700, 0x118a, 0x5000 }, { 0x8700, 0x1182, 0x4000 }, { 0x8700, 0x117e, 0x3000 }, { 0x8700, 0x117c, 0x2000 }, { 0x0700, 0x117b, 0x0000 }, { 0x0700, 0x117d, 0x0000 }, { 0x8700, 0x1180, 0x2000 }, { 0x0700, 0x117f, 0x0000 }, { 0x0700, 0x1181, 0x0000 }, { 0x8700, 0x1186, 0x3000 }, { 0x8700, 0x1184, 0x2000 }, { 0x0700, 0x1183, 0x0000 }, { 0x0700, 0x1185, 0x0000 }, { 0x8700, 0x1188, 0x2000 }, { 0x0700, 0x1187, 0x0000 }, { 0x0700, 0x1189, 0x0000 }, { 0x8700, 0x1192, 0x4000 }, { 0x8700, 0x118e, 0x3000 }, { 0x8700, 0x118c, 0x2000 }, { 0x0700, 0x118b, 0x0000 }, { 0x0700, 0x118d, 0x0000 }, { 0x8700, 0x1190, 0x2000 }, { 0x0700, 0x118f, 0x0000 }, { 0x0700, 0x1191, 0x0000 }, { 0x8700, 0x1196, 0x3000 }, { 0x8700, 0x1194, 0x2000 }, { 0x0700, 0x1193, 0x0000 }, { 0x0700, 0x1195, 0x0000 }, { 0x8700, 0x1198, 0x2000 }, { 0x0700, 0x1197, 0x0000 }, { 0x0700, 0x1199, 0x0000 }, { 0x8700, 0x11af, 0x5000 }, { 0x8700, 0x11a2, 0x4000 }, { 0x8700, 0x119e, 0x3000 }, { 0x8700, 0x119c, 0x2000 }, { 0x0700, 0x119b, 0x0000 }, { 0x0700, 0x119d, 0x0000 }, { 0x8700, 0x11a0, 0x2000 }, { 0x0700, 0x119f, 0x0000 }, { 0x0700, 0x11a1, 0x0000 }, { 0x8700, 0x11ab, 0x3000 }, { 0x8700, 0x11a9, 0x2000 }, { 0x0700, 0x11a8, 0x0000 }, { 0x0700, 0x11aa, 0x0000 }, { 0x8700, 0x11ad, 0x2000 }, { 0x0700, 0x11ac, 0x0000 }, { 0x0700, 0x11ae, 0x0000 }, { 0x8700, 0x11b7, 0x4000 }, { 0x8700, 0x11b3, 0x3000 }, { 0x8700, 0x11b1, 0x2000 }, { 0x0700, 0x11b0, 0x0000 }, { 0x0700, 0x11b2, 0x0000 }, { 0x8700, 0x11b5, 0x2000 }, { 0x0700, 0x11b4, 0x0000 }, { 0x0700, 0x11b6, 0x0000 }, { 0x8700, 0x11bb, 0x3000 }, { 0x8700, 0x11b9, 0x2000 }, { 0x0700, 0x11b8, 0x0000 }, { 0x0700, 0x11ba, 0x0000 }, { 0x8700, 0x11bd, 0x2000 }, { 0x0700, 0x11bc, 0x0000 }, { 0x0700, 0x11be, 0x0000 }, { 0x8700, 0x11df, 0x6000 }, { 0x8700, 0x11cf, 0x5000 }, { 0x8700, 0x11c7, 0x4000 }, { 0x8700, 0x11c3, 0x3000 }, { 0x8700, 0x11c1, 0x2000 }, { 0x0700, 0x11c0, 0x0000 }, { 0x0700, 0x11c2, 0x0000 }, { 0x8700, 0x11c5, 0x2000 }, { 0x0700, 0x11c4, 0x0000 }, { 0x0700, 0x11c6, 0x0000 }, { 0x8700, 0x11cb, 0x3000 }, { 0x8700, 0x11c9, 0x2000 }, { 0x0700, 0x11c8, 0x0000 }, { 0x0700, 0x11ca, 0x0000 }, { 0x8700, 0x11cd, 0x2000 }, { 0x0700, 0x11cc, 0x0000 }, { 0x0700, 0x11ce, 0x0000 }, { 0x8700, 0x11d7, 0x4000 }, { 0x8700, 0x11d3, 0x3000 }, { 0x8700, 0x11d1, 0x2000 }, { 0x0700, 0x11d0, 0x0000 }, { 0x0700, 0x11d2, 0x0000 }, { 0x8700, 0x11d5, 0x2000 }, { 0x0700, 0x11d4, 0x0000 }, { 0x0700, 0x11d6, 0x0000 }, { 0x8700, 0x11db, 0x3000 }, { 0x8700, 0x11d9, 0x2000 }, { 0x0700, 0x11d8, 0x0000 }, { 0x0700, 0x11da, 0x0000 }, { 0x8700, 0x11dd, 0x2000 }, { 0x0700, 0x11dc, 0x0000 }, { 0x0700, 0x11de, 0x0000 }, { 0x8700, 0x11ef, 0x5000 }, { 0x8700, 0x11e7, 0x4000 }, { 0x8700, 0x11e3, 0x3000 }, { 0x8700, 0x11e1, 0x2000 }, { 0x0700, 0x11e0, 0x0000 }, { 0x0700, 0x11e2, 0x0000 }, { 0x8700, 0x11e5, 0x2000 }, { 0x0700, 0x11e4, 0x0000 }, { 0x0700, 0x11e6, 0x0000 }, { 0x8700, 0x11eb, 0x3000 }, { 0x8700, 0x11e9, 0x2000 }, { 0x0700, 0x11e8, 0x0000 }, { 0x0700, 0x11ea, 0x0000 }, { 0x8700, 0x11ed, 0x2000 }, { 0x0700, 0x11ec, 0x0000 }, { 0x0700, 0x11ee, 0x0000 }, { 0x8700, 0x11f7, 0x4000 }, { 0x8700, 0x11f3, 0x3000 }, { 0x8700, 0x11f1, 0x2000 }, { 0x0700, 0x11f0, 0x0000 }, { 0x0700, 0x11f2, 0x0000 }, { 0x8700, 0x11f5, 0x2000 }, { 0x0700, 0x11f4, 0x0000 }, { 0x0700, 0x11f6, 0x0000 }, { 0x8700, 0x1201, 0x3000 }, { 0x8700, 0x11f9, 0x2000 }, { 0x0700, 0x11f8, 0x0000 }, { 0x0700, 0x1200, 0x0000 }, { 0x8700, 0x1203, 0x2000 }, { 0x0700, 0x1202, 0x0000 }, { 0x0700, 0x1204, 0x0000 }, { 0x8700, 0x1292, 0x8000 }, { 0x8700, 0x1246, 0x7000 }, { 0x8700, 0x1226, 0x6000 }, { 0x8700, 0x1216, 0x5000 }, { 0x8700, 0x120e, 0x4000 }, { 0x8700, 0x120a, 0x3000 }, { 0x8700, 0x1208, 0x2000 }, { 0x0700, 0x1206, 0x0000 }, { 0x0700, 0x1209, 0x0000 }, { 0x8700, 0x120c, 0x2000 }, { 0x0700, 0x120b, 0x0000 }, { 0x0700, 0x120d, 0x0000 }, { 0x8700, 0x1212, 0x3000 }, { 0x8700, 0x1210, 0x2000 }, { 0x0700, 0x120f, 0x0000 }, { 0x0700, 0x1211, 0x0000 }, { 0x8700, 0x1214, 0x2000 }, { 0x0700, 0x1213, 0x0000 }, { 0x0700, 0x1215, 0x0000 }, { 0x8700, 0x121e, 0x4000 }, { 0x8700, 0x121a, 0x3000 }, { 0x8700, 0x1218, 0x2000 }, { 0x0700, 0x1217, 0x0000 }, { 0x0700, 0x1219, 0x0000 }, { 0x8700, 0x121c, 0x2000 }, { 0x0700, 0x121b, 0x0000 }, { 0x0700, 0x121d, 0x0000 }, { 0x8700, 0x1222, 0x3000 }, { 0x8700, 0x1220, 0x2000 }, { 0x0700, 0x121f, 0x0000 }, { 0x0700, 0x1221, 0x0000 }, { 0x8700, 0x1224, 0x2000 }, { 0x0700, 0x1223, 0x0000 }, { 0x0700, 0x1225, 0x0000 }, { 0x8700, 0x1236, 0x5000 }, { 0x8700, 0x122e, 0x4000 }, { 0x8700, 0x122a, 0x3000 }, { 0x8700, 0x1228, 0x2000 }, { 0x0700, 0x1227, 0x0000 }, { 0x0700, 0x1229, 0x0000 }, { 0x8700, 0x122c, 0x2000 }, { 0x0700, 0x122b, 0x0000 }, { 0x0700, 0x122d, 0x0000 }, { 0x8700, 0x1232, 0x3000 }, { 0x8700, 0x1230, 0x2000 }, { 0x0700, 0x122f, 0x0000 }, { 0x0700, 0x1231, 0x0000 }, { 0x8700, 0x1234, 0x2000 }, { 0x0700, 0x1233, 0x0000 }, { 0x0700, 0x1235, 0x0000 }, { 0x8700, 0x123e, 0x4000 }, { 0x8700, 0x123a, 0x3000 }, { 0x8700, 0x1238, 0x2000 }, { 0x0700, 0x1237, 0x0000 }, { 0x0700, 0x1239, 0x0000 }, { 0x8700, 0x123c, 0x2000 }, { 0x0700, 0x123b, 0x0000 }, { 0x0700, 0x123d, 0x0000 }, { 0x8700, 0x1242, 0x3000 }, { 0x8700, 0x1240, 0x2000 }, { 0x0700, 0x123f, 0x0000 }, { 0x0700, 0x1241, 0x0000 }, { 0x8700, 0x1244, 0x2000 }, { 0x0700, 0x1243, 0x0000 }, { 0x0700, 0x1245, 0x0000 }, { 0x8700, 0x126e, 0x6000 }, { 0x8700, 0x125c, 0x5000 }, { 0x8700, 0x1252, 0x4000 }, { 0x8700, 0x124c, 0x3000 }, { 0x8700, 0x124a, 0x2000 }, { 0x0700, 0x1248, 0x0000 }, { 0x0700, 0x124b, 0x0000 }, { 0x8700, 0x1250, 0x2000 }, { 0x0700, 0x124d, 0x0000 }, { 0x0700, 0x1251, 0x0000 }, { 0x8700, 0x1256, 0x3000 }, { 0x8700, 0x1254, 0x2000 }, { 0x0700, 0x1253, 0x0000 }, { 0x0700, 0x1255, 0x0000 }, { 0x8700, 0x125a, 0x2000 }, { 0x0700, 0x1258, 0x0000 }, { 0x0700, 0x125b, 0x0000 }, { 0x8700, 0x1266, 0x4000 }, { 0x8700, 0x1262, 0x3000 }, { 0x8700, 0x1260, 0x2000 }, { 0x0700, 0x125d, 0x0000 }, { 0x0700, 0x1261, 0x0000 }, { 0x8700, 0x1264, 0x2000 }, { 0x0700, 0x1263, 0x0000 }, { 0x0700, 0x1265, 0x0000 }, { 0x8700, 0x126a, 0x3000 }, { 0x8700, 0x1268, 0x2000 }, { 0x0700, 0x1267, 0x0000 }, { 0x0700, 0x1269, 0x0000 }, { 0x8700, 0x126c, 0x2000 }, { 0x0700, 0x126b, 0x0000 }, { 0x0700, 0x126d, 0x0000 }, { 0x8700, 0x127e, 0x5000 }, { 0x8700, 0x1276, 0x4000 }, { 0x8700, 0x1272, 0x3000 }, { 0x8700, 0x1270, 0x2000 }, { 0x0700, 0x126f, 0x0000 }, { 0x0700, 0x1271, 0x0000 }, { 0x8700, 0x1274, 0x2000 }, { 0x0700, 0x1273, 0x0000 }, { 0x0700, 0x1275, 0x0000 }, { 0x8700, 0x127a, 0x3000 }, { 0x8700, 0x1278, 0x2000 }, { 0x0700, 0x1277, 0x0000 }, { 0x0700, 0x1279, 0x0000 }, { 0x8700, 0x127c, 0x2000 }, { 0x0700, 0x127b, 0x0000 }, { 0x0700, 0x127d, 0x0000 }, { 0x8700, 0x1286, 0x4000 }, { 0x8700, 0x1282, 0x3000 }, { 0x8700, 0x1280, 0x2000 }, { 0x0700, 0x127f, 0x0000 }, { 0x0700, 0x1281, 0x0000 }, { 0x8700, 0x1284, 0x2000 }, { 0x0700, 0x1283, 0x0000 }, { 0x0700, 0x1285, 0x0000 }, { 0x8700, 0x128c, 0x3000 }, { 0x8700, 0x128a, 0x2000 }, { 0x0700, 0x1288, 0x0000 }, { 0x0700, 0x128b, 0x0000 }, { 0x8700, 0x1290, 0x2000 }, { 0x0700, 0x128d, 0x0000 }, { 0x0700, 0x1291, 0x0000 }, { 0x8700, 0x12dc, 0x7000 }, { 0x8700, 0x12b4, 0x6000 }, { 0x8700, 0x12a2, 0x5000 }, { 0x8700, 0x129a, 0x4000 }, { 0x8700, 0x1296, 0x3000 }, { 0x8700, 0x1294, 0x2000 }, { 0x0700, 0x1293, 0x0000 }, { 0x0700, 0x1295, 0x0000 }, { 0x8700, 0x1298, 0x2000 }, { 0x0700, 0x1297, 0x0000 }, { 0x0700, 0x1299, 0x0000 }, { 0x8700, 0x129e, 0x3000 }, { 0x8700, 0x129c, 0x2000 }, { 0x0700, 0x129b, 0x0000 }, { 0x0700, 0x129d, 0x0000 }, { 0x8700, 0x12a0, 0x2000 }, { 0x0700, 0x129f, 0x0000 }, { 0x0700, 0x12a1, 0x0000 }, { 0x8700, 0x12aa, 0x4000 }, { 0x8700, 0x12a6, 0x3000 }, { 0x8700, 0x12a4, 0x2000 }, { 0x0700, 0x12a3, 0x0000 }, { 0x0700, 0x12a5, 0x0000 }, { 0x8700, 0x12a8, 0x2000 }, { 0x0700, 0x12a7, 0x0000 }, { 0x0700, 0x12a9, 0x0000 }, { 0x8700, 0x12ae, 0x3000 }, { 0x8700, 0x12ac, 0x2000 }, { 0x0700, 0x12ab, 0x0000 }, { 0x0700, 0x12ad, 0x0000 }, { 0x8700, 0x12b2, 0x2000 }, { 0x0700, 0x12b0, 0x0000 }, { 0x0700, 0x12b3, 0x0000 }, { 0x8700, 0x12ca, 0x5000 }, { 0x8700, 0x12be, 0x4000 }, { 0x8700, 0x12ba, 0x3000 }, { 0x8700, 0x12b8, 0x2000 }, { 0x0700, 0x12b5, 0x0000 }, { 0x0700, 0x12b9, 0x0000 }, { 0x8700, 0x12bc, 0x2000 }, { 0x0700, 0x12bb, 0x0000 }, { 0x0700, 0x12bd, 0x0000 }, { 0x8700, 0x12c4, 0x3000 }, { 0x8700, 0x12c2, 0x2000 }, { 0x0700, 0x12c0, 0x0000 }, { 0x0700, 0x12c3, 0x0000 }, { 0x8700, 0x12c8, 0x2000 }, { 0x0700, 0x12c5, 0x0000 }, { 0x0700, 0x12c9, 0x0000 }, { 0x8700, 0x12d3, 0x4000 }, { 0x8700, 0x12ce, 0x3000 }, { 0x8700, 0x12cc, 0x2000 }, { 0x0700, 0x12cb, 0x0000 }, { 0x0700, 0x12cd, 0x0000 }, { 0x8700, 0x12d1, 0x2000 }, { 0x0700, 0x12d0, 0x0000 }, { 0x0700, 0x12d2, 0x0000 }, { 0x8700, 0x12d8, 0x3000 }, { 0x8700, 0x12d5, 0x2000 }, { 0x0700, 0x12d4, 0x0000 }, { 0x0700, 0x12d6, 0x0000 }, { 0x8700, 0x12da, 0x2000 }, { 0x0700, 0x12d9, 0x0000 }, { 0x0700, 0x12db, 0x0000 }, { 0x8700, 0x12fd, 0x6000 }, { 0x8700, 0x12ec, 0x5000 }, { 0x8700, 0x12e4, 0x4000 }, { 0x8700, 0x12e0, 0x3000 }, { 0x8700, 0x12de, 0x2000 }, { 0x0700, 0x12dd, 0x0000 }, { 0x0700, 0x12df, 0x0000 }, { 0x8700, 0x12e2, 0x2000 }, { 0x0700, 0x12e1, 0x0000 }, { 0x0700, 0x12e3, 0x0000 }, { 0x8700, 0x12e8, 0x3000 }, { 0x8700, 0x12e6, 0x2000 }, { 0x0700, 0x12e5, 0x0000 }, { 0x0700, 0x12e7, 0x0000 }, { 0x8700, 0x12ea, 0x2000 }, { 0x0700, 0x12e9, 0x0000 }, { 0x0700, 0x12eb, 0x0000 }, { 0x8700, 0x12f5, 0x4000 }, { 0x8700, 0x12f1, 0x3000 }, { 0x8700, 0x12ee, 0x2000 }, { 0x0700, 0x12ed, 0x0000 }, { 0x0700, 0x12f0, 0x0000 }, { 0x8700, 0x12f3, 0x2000 }, { 0x0700, 0x12f2, 0x0000 }, { 0x0700, 0x12f4, 0x0000 }, { 0x8700, 0x12f9, 0x3000 }, { 0x8700, 0x12f7, 0x2000 }, { 0x0700, 0x12f6, 0x0000 }, { 0x0700, 0x12f8, 0x0000 }, { 0x8700, 0x12fb, 0x2000 }, { 0x0700, 0x12fa, 0x0000 }, { 0x0700, 0x12fc, 0x0000 }, { 0x8700, 0x130d, 0x5000 }, { 0x8700, 0x1305, 0x4000 }, { 0x8700, 0x1301, 0x3000 }, { 0x8700, 0x12ff, 0x2000 }, { 0x0700, 0x12fe, 0x0000 }, { 0x0700, 0x1300, 0x0000 }, { 0x8700, 0x1303, 0x2000 }, { 0x0700, 0x1302, 0x0000 }, { 0x0700, 0x1304, 0x0000 }, { 0x8700, 0x1309, 0x3000 }, { 0x8700, 0x1307, 0x2000 }, { 0x0700, 0x1306, 0x0000 }, { 0x0700, 0x1308, 0x0000 }, { 0x8700, 0x130b, 0x2000 }, { 0x0700, 0x130a, 0x0000 }, { 0x0700, 0x130c, 0x0000 }, { 0x8700, 0x1319, 0x4000 }, { 0x8700, 0x1313, 0x3000 }, { 0x8700, 0x1310, 0x2000 }, { 0x0700, 0x130e, 0x0000 }, { 0x0700, 0x1312, 0x0000 }, { 0x8700, 0x1315, 0x2000 }, { 0x0700, 0x1314, 0x0000 }, { 0x0700, 0x1318, 0x0000 }, { 0x8700, 0x131d, 0x3000 }, { 0x8700, 0x131b, 0x2000 }, { 0x0700, 0x131a, 0x0000 }, { 0x0700, 0x131c, 0x0000 }, { 0x8700, 0x1320, 0x2000 }, { 0x0700, 0x131e, 0x0000 }, { 0x0700, 0x1321, 0x0000 }, { 0x8700, 0x1458, 0x9000 }, { 0x8700, 0x13cc, 0x8000 }, { 0x8d00, 0x1369, 0x7000 }, { 0x8700, 0x1342, 0x6000 }, { 0x8700, 0x1332, 0x5000 }, { 0x8700, 0x132a, 0x4000 }, { 0x8700, 0x1326, 0x3000 }, { 0x8700, 0x1324, 0x2000 }, { 0x0700, 0x1323, 0x0000 }, { 0x0700, 0x1325, 0x0000 }, { 0x8700, 0x1328, 0x2000 }, { 0x0700, 0x1327, 0x0000 }, { 0x0700, 0x1329, 0x0000 }, { 0x8700, 0x132e, 0x3000 }, { 0x8700, 0x132c, 0x2000 }, { 0x0700, 0x132b, 0x0000 }, { 0x0700, 0x132d, 0x0000 }, { 0x8700, 0x1330, 0x2000 }, { 0x0700, 0x132f, 0x0000 }, { 0x0700, 0x1331, 0x0000 }, { 0x8700, 0x133a, 0x4000 }, { 0x8700, 0x1336, 0x3000 }, { 0x8700, 0x1334, 0x2000 }, { 0x0700, 0x1333, 0x0000 }, { 0x0700, 0x1335, 0x0000 }, { 0x8700, 0x1338, 0x2000 }, { 0x0700, 0x1337, 0x0000 }, { 0x0700, 0x1339, 0x0000 }, { 0x8700, 0x133e, 0x3000 }, { 0x8700, 0x133c, 0x2000 }, { 0x0700, 0x133b, 0x0000 }, { 0x0700, 0x133d, 0x0000 }, { 0x8700, 0x1340, 0x2000 }, { 0x0700, 0x133f, 0x0000 }, { 0x0700, 0x1341, 0x0000 }, { 0x8700, 0x1353, 0x5000 }, { 0x8700, 0x134b, 0x4000 }, { 0x8700, 0x1346, 0x3000 }, { 0x8700, 0x1344, 0x2000 }, { 0x0700, 0x1343, 0x0000 }, { 0x0700, 0x1345, 0x0000 }, { 0x8700, 0x1349, 0x2000 }, { 0x0700, 0x1348, 0x0000 }, { 0x0700, 0x134a, 0x0000 }, { 0x8700, 0x134f, 0x3000 }, { 0x8700, 0x134d, 0x2000 }, { 0x0700, 0x134c, 0x0000 }, { 0x0700, 0x134e, 0x0000 }, { 0x8700, 0x1351, 0x2000 }, { 0x0700, 0x1350, 0x0000 }, { 0x0700, 0x1352, 0x0000 }, { 0x9500, 0x1361, 0x4000 }, { 0x8700, 0x1357, 0x3000 }, { 0x8700, 0x1355, 0x2000 }, { 0x0700, 0x1354, 0x0000 }, { 0x0700, 0x1356, 0x0000 }, { 0x8700, 0x1359, 0x2000 }, { 0x0700, 0x1358, 0x0000 }, { 0x0700, 0x135a, 0x0000 }, { 0x9500, 0x1365, 0x3000 }, { 0x9500, 0x1363, 0x2000 }, { 0x1500, 0x1362, 0x0000 }, { 0x1500, 0x1364, 0x0000 }, { 0x9500, 0x1367, 0x2000 }, { 0x1500, 0x1366, 0x0000 }, { 0x1500, 0x1368, 0x0000 }, { 0x8700, 0x13ac, 0x6000 }, { 0x8f00, 0x1379, 0x5000 }, { 0x8d00, 0x1371, 0x4000 }, { 0x8d00, 0x136d, 0x3000 }, { 0x8d00, 0x136b, 0x2000 }, { 0x0d00, 0x136a, 0x0000 }, { 0x0d00, 0x136c, 0x0000 }, { 0x8d00, 0x136f, 0x2000 }, { 0x0d00, 0x136e, 0x0000 }, { 0x0d00, 0x1370, 0x0000 }, { 0x8f00, 0x1375, 0x3000 }, { 0x8f00, 0x1373, 0x2000 }, { 0x0f00, 0x1372, 0x0000 }, { 0x0f00, 0x1374, 0x0000 }, { 0x8f00, 0x1377, 0x2000 }, { 0x0f00, 0x1376, 0x0000 }, { 0x0f00, 0x1378, 0x0000 }, { 0x8700, 0x13a4, 0x4000 }, { 0x8700, 0x13a0, 0x3000 }, { 0x8f00, 0x137b, 0x2000 }, { 0x0f00, 0x137a, 0x0000 }, { 0x0f00, 0x137c, 0x0000 }, { 0x8700, 0x13a2, 0x2000 }, { 0x0700, 0x13a1, 0x0000 }, { 0x0700, 0x13a3, 0x0000 }, { 0x8700, 0x13a8, 0x3000 }, { 0x8700, 0x13a6, 0x2000 }, { 0x0700, 0x13a5, 0x0000 }, { 0x0700, 0x13a7, 0x0000 }, { 0x8700, 0x13aa, 0x2000 }, { 0x0700, 0x13a9, 0x0000 }, { 0x0700, 0x13ab, 0x0000 }, { 0x8700, 0x13bc, 0x5000 }, { 0x8700, 0x13b4, 0x4000 }, { 0x8700, 0x13b0, 0x3000 }, { 0x8700, 0x13ae, 0x2000 }, { 0x0700, 0x13ad, 0x0000 }, { 0x0700, 0x13af, 0x0000 }, { 0x8700, 0x13b2, 0x2000 }, { 0x0700, 0x13b1, 0x0000 }, { 0x0700, 0x13b3, 0x0000 }, { 0x8700, 0x13b8, 0x3000 }, { 0x8700, 0x13b6, 0x2000 }, { 0x0700, 0x13b5, 0x0000 }, { 0x0700, 0x13b7, 0x0000 }, { 0x8700, 0x13ba, 0x2000 }, { 0x0700, 0x13b9, 0x0000 }, { 0x0700, 0x13bb, 0x0000 }, { 0x8700, 0x13c4, 0x4000 }, { 0x8700, 0x13c0, 0x3000 }, { 0x8700, 0x13be, 0x2000 }, { 0x0700, 0x13bd, 0x0000 }, { 0x0700, 0x13bf, 0x0000 }, { 0x8700, 0x13c2, 0x2000 }, { 0x0700, 0x13c1, 0x0000 }, { 0x0700, 0x13c3, 0x0000 }, { 0x8700, 0x13c8, 0x3000 }, { 0x8700, 0x13c6, 0x2000 }, { 0x0700, 0x13c5, 0x0000 }, { 0x0700, 0x13c7, 0x0000 }, { 0x8700, 0x13ca, 0x2000 }, { 0x0700, 0x13c9, 0x0000 }, { 0x0700, 0x13cb, 0x0000 }, { 0x8700, 0x1418, 0x7000 }, { 0x8700, 0x13ec, 0x6000 }, { 0x8700, 0x13dc, 0x5000 }, { 0x8700, 0x13d4, 0x4000 }, { 0x8700, 0x13d0, 0x3000 }, { 0x8700, 0x13ce, 0x2000 }, { 0x0700, 0x13cd, 0x0000 }, { 0x0700, 0x13cf, 0x0000 }, { 0x8700, 0x13d2, 0x2000 }, { 0x0700, 0x13d1, 0x0000 }, { 0x0700, 0x13d3, 0x0000 }, { 0x8700, 0x13d8, 0x3000 }, { 0x8700, 0x13d6, 0x2000 }, { 0x0700, 0x13d5, 0x0000 }, { 0x0700, 0x13d7, 0x0000 }, { 0x8700, 0x13da, 0x2000 }, { 0x0700, 0x13d9, 0x0000 }, { 0x0700, 0x13db, 0x0000 }, { 0x8700, 0x13e4, 0x4000 }, { 0x8700, 0x13e0, 0x3000 }, { 0x8700, 0x13de, 0x2000 }, { 0x0700, 0x13dd, 0x0000 }, { 0x0700, 0x13df, 0x0000 }, { 0x8700, 0x13e2, 0x2000 }, { 0x0700, 0x13e1, 0x0000 }, { 0x0700, 0x13e3, 0x0000 }, { 0x8700, 0x13e8, 0x3000 }, { 0x8700, 0x13e6, 0x2000 }, { 0x0700, 0x13e5, 0x0000 }, { 0x0700, 0x13e7, 0x0000 }, { 0x8700, 0x13ea, 0x2000 }, { 0x0700, 0x13e9, 0x0000 }, { 0x0700, 0x13eb, 0x0000 }, { 0x8700, 0x1408, 0x5000 }, { 0x8700, 0x13f4, 0x4000 }, { 0x8700, 0x13f0, 0x3000 }, { 0x8700, 0x13ee, 0x2000 }, { 0x0700, 0x13ed, 0x0000 }, { 0x0700, 0x13ef, 0x0000 }, { 0x8700, 0x13f2, 0x2000 }, { 0x0700, 0x13f1, 0x0000 }, { 0x0700, 0x13f3, 0x0000 }, { 0x8700, 0x1404, 0x3000 }, { 0x8700, 0x1402, 0x2000 }, { 0x0700, 0x1401, 0x0000 }, { 0x0700, 0x1403, 0x0000 }, { 0x8700, 0x1406, 0x2000 }, { 0x0700, 0x1405, 0x0000 }, { 0x0700, 0x1407, 0x0000 }, { 0x8700, 0x1410, 0x4000 }, { 0x8700, 0x140c, 0x3000 }, { 0x8700, 0x140a, 0x2000 }, { 0x0700, 0x1409, 0x0000 }, { 0x0700, 0x140b, 0x0000 }, { 0x8700, 0x140e, 0x2000 }, { 0x0700, 0x140d, 0x0000 }, { 0x0700, 0x140f, 0x0000 }, { 0x8700, 0x1414, 0x3000 }, { 0x8700, 0x1412, 0x2000 }, { 0x0700, 0x1411, 0x0000 }, { 0x0700, 0x1413, 0x0000 }, { 0x8700, 0x1416, 0x2000 }, { 0x0700, 0x1415, 0x0000 }, { 0x0700, 0x1417, 0x0000 }, { 0x8700, 0x1438, 0x6000 }, { 0x8700, 0x1428, 0x5000 }, { 0x8700, 0x1420, 0x4000 }, { 0x8700, 0x141c, 0x3000 }, { 0x8700, 0x141a, 0x2000 }, { 0x0700, 0x1419, 0x0000 }, { 0x0700, 0x141b, 0x0000 }, { 0x8700, 0x141e, 0x2000 }, { 0x0700, 0x141d, 0x0000 }, { 0x0700, 0x141f, 0x0000 }, { 0x8700, 0x1424, 0x3000 }, { 0x8700, 0x1422, 0x2000 }, { 0x0700, 0x1421, 0x0000 }, { 0x0700, 0x1423, 0x0000 }, { 0x8700, 0x1426, 0x2000 }, { 0x0700, 0x1425, 0x0000 }, { 0x0700, 0x1427, 0x0000 }, { 0x8700, 0x1430, 0x4000 }, { 0x8700, 0x142c, 0x3000 }, { 0x8700, 0x142a, 0x2000 }, { 0x0700, 0x1429, 0x0000 }, { 0x0700, 0x142b, 0x0000 }, { 0x8700, 0x142e, 0x2000 }, { 0x0700, 0x142d, 0x0000 }, { 0x0700, 0x142f, 0x0000 }, { 0x8700, 0x1434, 0x3000 }, { 0x8700, 0x1432, 0x2000 }, { 0x0700, 0x1431, 0x0000 }, { 0x0700, 0x1433, 0x0000 }, { 0x8700, 0x1436, 0x2000 }, { 0x0700, 0x1435, 0x0000 }, { 0x0700, 0x1437, 0x0000 }, { 0x8700, 0x1448, 0x5000 }, { 0x8700, 0x1440, 0x4000 }, { 0x8700, 0x143c, 0x3000 }, { 0x8700, 0x143a, 0x2000 }, { 0x0700, 0x1439, 0x0000 }, { 0x0700, 0x143b, 0x0000 }, { 0x8700, 0x143e, 0x2000 }, { 0x0700, 0x143d, 0x0000 }, { 0x0700, 0x143f, 0x0000 }, { 0x8700, 0x1444, 0x3000 }, { 0x8700, 0x1442, 0x2000 }, { 0x0700, 0x1441, 0x0000 }, { 0x0700, 0x1443, 0x0000 }, { 0x8700, 0x1446, 0x2000 }, { 0x0700, 0x1445, 0x0000 }, { 0x0700, 0x1447, 0x0000 }, { 0x8700, 0x1450, 0x4000 }, { 0x8700, 0x144c, 0x3000 }, { 0x8700, 0x144a, 0x2000 }, { 0x0700, 0x1449, 0x0000 }, { 0x0700, 0x144b, 0x0000 }, { 0x8700, 0x144e, 0x2000 }, { 0x0700, 0x144d, 0x0000 }, { 0x0700, 0x144f, 0x0000 }, { 0x8700, 0x1454, 0x3000 }, { 0x8700, 0x1452, 0x2000 }, { 0x0700, 0x1451, 0x0000 }, { 0x0700, 0x1453, 0x0000 }, { 0x8700, 0x1456, 0x2000 }, { 0x0700, 0x1455, 0x0000 }, { 0x0700, 0x1457, 0x0000 }, { 0x8700, 0x14d8, 0x8000 }, { 0x8700, 0x1498, 0x7000 }, { 0x8700, 0x1478, 0x6000 }, { 0x8700, 0x1468, 0x5000 }, { 0x8700, 0x1460, 0x4000 }, { 0x8700, 0x145c, 0x3000 }, { 0x8700, 0x145a, 0x2000 }, { 0x0700, 0x1459, 0x0000 }, { 0x0700, 0x145b, 0x0000 }, { 0x8700, 0x145e, 0x2000 }, { 0x0700, 0x145d, 0x0000 }, { 0x0700, 0x145f, 0x0000 }, { 0x8700, 0x1464, 0x3000 }, { 0x8700, 0x1462, 0x2000 }, { 0x0700, 0x1461, 0x0000 }, { 0x0700, 0x1463, 0x0000 }, { 0x8700, 0x1466, 0x2000 }, { 0x0700, 0x1465, 0x0000 }, { 0x0700, 0x1467, 0x0000 }, { 0x8700, 0x1470, 0x4000 }, { 0x8700, 0x146c, 0x3000 }, { 0x8700, 0x146a, 0x2000 }, { 0x0700, 0x1469, 0x0000 }, { 0x0700, 0x146b, 0x0000 }, { 0x8700, 0x146e, 0x2000 }, { 0x0700, 0x146d, 0x0000 }, { 0x0700, 0x146f, 0x0000 }, { 0x8700, 0x1474, 0x3000 }, { 0x8700, 0x1472, 0x2000 }, { 0x0700, 0x1471, 0x0000 }, { 0x0700, 0x1473, 0x0000 }, { 0x8700, 0x1476, 0x2000 }, { 0x0700, 0x1475, 0x0000 }, { 0x0700, 0x1477, 0x0000 }, { 0x8700, 0x1488, 0x5000 }, { 0x8700, 0x1480, 0x4000 }, { 0x8700, 0x147c, 0x3000 }, { 0x8700, 0x147a, 0x2000 }, { 0x0700, 0x1479, 0x0000 }, { 0x0700, 0x147b, 0x0000 }, { 0x8700, 0x147e, 0x2000 }, { 0x0700, 0x147d, 0x0000 }, { 0x0700, 0x147f, 0x0000 }, { 0x8700, 0x1484, 0x3000 }, { 0x8700, 0x1482, 0x2000 }, { 0x0700, 0x1481, 0x0000 }, { 0x0700, 0x1483, 0x0000 }, { 0x8700, 0x1486, 0x2000 }, { 0x0700, 0x1485, 0x0000 }, { 0x0700, 0x1487, 0x0000 }, { 0x8700, 0x1490, 0x4000 }, { 0x8700, 0x148c, 0x3000 }, { 0x8700, 0x148a, 0x2000 }, { 0x0700, 0x1489, 0x0000 }, { 0x0700, 0x148b, 0x0000 }, { 0x8700, 0x148e, 0x2000 }, { 0x0700, 0x148d, 0x0000 }, { 0x0700, 0x148f, 0x0000 }, { 0x8700, 0x1494, 0x3000 }, { 0x8700, 0x1492, 0x2000 }, { 0x0700, 0x1491, 0x0000 }, { 0x0700, 0x1493, 0x0000 }, { 0x8700, 0x1496, 0x2000 }, { 0x0700, 0x1495, 0x0000 }, { 0x0700, 0x1497, 0x0000 }, { 0x8700, 0x14b8, 0x6000 }, { 0x8700, 0x14a8, 0x5000 }, { 0x8700, 0x14a0, 0x4000 }, { 0x8700, 0x149c, 0x3000 }, { 0x8700, 0x149a, 0x2000 }, { 0x0700, 0x1499, 0x0000 }, { 0x0700, 0x149b, 0x0000 }, { 0x8700, 0x149e, 0x2000 }, { 0x0700, 0x149d, 0x0000 }, { 0x0700, 0x149f, 0x0000 }, { 0x8700, 0x14a4, 0x3000 }, { 0x8700, 0x14a2, 0x2000 }, { 0x0700, 0x14a1, 0x0000 }, { 0x0700, 0x14a3, 0x0000 }, { 0x8700, 0x14a6, 0x2000 }, { 0x0700, 0x14a5, 0x0000 }, { 0x0700, 0x14a7, 0x0000 }, { 0x8700, 0x14b0, 0x4000 }, { 0x8700, 0x14ac, 0x3000 }, { 0x8700, 0x14aa, 0x2000 }, { 0x0700, 0x14a9, 0x0000 }, { 0x0700, 0x14ab, 0x0000 }, { 0x8700, 0x14ae, 0x2000 }, { 0x0700, 0x14ad, 0x0000 }, { 0x0700, 0x14af, 0x0000 }, { 0x8700, 0x14b4, 0x3000 }, { 0x8700, 0x14b2, 0x2000 }, { 0x0700, 0x14b1, 0x0000 }, { 0x0700, 0x14b3, 0x0000 }, { 0x8700, 0x14b6, 0x2000 }, { 0x0700, 0x14b5, 0x0000 }, { 0x0700, 0x14b7, 0x0000 }, { 0x8700, 0x14c8, 0x5000 }, { 0x8700, 0x14c0, 0x4000 }, { 0x8700, 0x14bc, 0x3000 }, { 0x8700, 0x14ba, 0x2000 }, { 0x0700, 0x14b9, 0x0000 }, { 0x0700, 0x14bb, 0x0000 }, { 0x8700, 0x14be, 0x2000 }, { 0x0700, 0x14bd, 0x0000 }, { 0x0700, 0x14bf, 0x0000 }, { 0x8700, 0x14c4, 0x3000 }, { 0x8700, 0x14c2, 0x2000 }, { 0x0700, 0x14c1, 0x0000 }, { 0x0700, 0x14c3, 0x0000 }, { 0x8700, 0x14c6, 0x2000 }, { 0x0700, 0x14c5, 0x0000 }, { 0x0700, 0x14c7, 0x0000 }, { 0x8700, 0x14d0, 0x4000 }, { 0x8700, 0x14cc, 0x3000 }, { 0x8700, 0x14ca, 0x2000 }, { 0x0700, 0x14c9, 0x0000 }, { 0x0700, 0x14cb, 0x0000 }, { 0x8700, 0x14ce, 0x2000 }, { 0x0700, 0x14cd, 0x0000 }, { 0x0700, 0x14cf, 0x0000 }, { 0x8700, 0x14d4, 0x3000 }, { 0x8700, 0x14d2, 0x2000 }, { 0x0700, 0x14d1, 0x0000 }, { 0x0700, 0x14d3, 0x0000 }, { 0x8700, 0x14d6, 0x2000 }, { 0x0700, 0x14d5, 0x0000 }, { 0x0700, 0x14d7, 0x0000 }, { 0x8700, 0x1518, 0x7000 }, { 0x8700, 0x14f8, 0x6000 }, { 0x8700, 0x14e8, 0x5000 }, { 0x8700, 0x14e0, 0x4000 }, { 0x8700, 0x14dc, 0x3000 }, { 0x8700, 0x14da, 0x2000 }, { 0x0700, 0x14d9, 0x0000 }, { 0x0700, 0x14db, 0x0000 }, { 0x8700, 0x14de, 0x2000 }, { 0x0700, 0x14dd, 0x0000 }, { 0x0700, 0x14df, 0x0000 }, { 0x8700, 0x14e4, 0x3000 }, { 0x8700, 0x14e2, 0x2000 }, { 0x0700, 0x14e1, 0x0000 }, { 0x0700, 0x14e3, 0x0000 }, { 0x8700, 0x14e6, 0x2000 }, { 0x0700, 0x14e5, 0x0000 }, { 0x0700, 0x14e7, 0x0000 }, { 0x8700, 0x14f0, 0x4000 }, { 0x8700, 0x14ec, 0x3000 }, { 0x8700, 0x14ea, 0x2000 }, { 0x0700, 0x14e9, 0x0000 }, { 0x0700, 0x14eb, 0x0000 }, { 0x8700, 0x14ee, 0x2000 }, { 0x0700, 0x14ed, 0x0000 }, { 0x0700, 0x14ef, 0x0000 }, { 0x8700, 0x14f4, 0x3000 }, { 0x8700, 0x14f2, 0x2000 }, { 0x0700, 0x14f1, 0x0000 }, { 0x0700, 0x14f3, 0x0000 }, { 0x8700, 0x14f6, 0x2000 }, { 0x0700, 0x14f5, 0x0000 }, { 0x0700, 0x14f7, 0x0000 }, { 0x8700, 0x1508, 0x5000 }, { 0x8700, 0x1500, 0x4000 }, { 0x8700, 0x14fc, 0x3000 }, { 0x8700, 0x14fa, 0x2000 }, { 0x0700, 0x14f9, 0x0000 }, { 0x0700, 0x14fb, 0x0000 }, { 0x8700, 0x14fe, 0x2000 }, { 0x0700, 0x14fd, 0x0000 }, { 0x0700, 0x14ff, 0x0000 }, { 0x8700, 0x1504, 0x3000 }, { 0x8700, 0x1502, 0x2000 }, { 0x0700, 0x1501, 0x0000 }, { 0x0700, 0x1503, 0x0000 }, { 0x8700, 0x1506, 0x2000 }, { 0x0700, 0x1505, 0x0000 }, { 0x0700, 0x1507, 0x0000 }, { 0x8700, 0x1510, 0x4000 }, { 0x8700, 0x150c, 0x3000 }, { 0x8700, 0x150a, 0x2000 }, { 0x0700, 0x1509, 0x0000 }, { 0x0700, 0x150b, 0x0000 }, { 0x8700, 0x150e, 0x2000 }, { 0x0700, 0x150d, 0x0000 }, { 0x0700, 0x150f, 0x0000 }, { 0x8700, 0x1514, 0x3000 }, { 0x8700, 0x1512, 0x2000 }, { 0x0700, 0x1511, 0x0000 }, { 0x0700, 0x1513, 0x0000 }, { 0x8700, 0x1516, 0x2000 }, { 0x0700, 0x1515, 0x0000 }, { 0x0700, 0x1517, 0x0000 }, { 0x8700, 0x1538, 0x6000 }, { 0x8700, 0x1528, 0x5000 }, { 0x8700, 0x1520, 0x4000 }, { 0x8700, 0x151c, 0x3000 }, { 0x8700, 0x151a, 0x2000 }, { 0x0700, 0x1519, 0x0000 }, { 0x0700, 0x151b, 0x0000 }, { 0x8700, 0x151e, 0x2000 }, { 0x0700, 0x151d, 0x0000 }, { 0x0700, 0x151f, 0x0000 }, { 0x8700, 0x1524, 0x3000 }, { 0x8700, 0x1522, 0x2000 }, { 0x0700, 0x1521, 0x0000 }, { 0x0700, 0x1523, 0x0000 }, { 0x8700, 0x1526, 0x2000 }, { 0x0700, 0x1525, 0x0000 }, { 0x0700, 0x1527, 0x0000 }, { 0x8700, 0x1530, 0x4000 }, { 0x8700, 0x152c, 0x3000 }, { 0x8700, 0x152a, 0x2000 }, { 0x0700, 0x1529, 0x0000 }, { 0x0700, 0x152b, 0x0000 }, { 0x8700, 0x152e, 0x2000 }, { 0x0700, 0x152d, 0x0000 }, { 0x0700, 0x152f, 0x0000 }, { 0x8700, 0x1534, 0x3000 }, { 0x8700, 0x1532, 0x2000 }, { 0x0700, 0x1531, 0x0000 }, { 0x0700, 0x1533, 0x0000 }, { 0x8700, 0x1536, 0x2000 }, { 0x0700, 0x1535, 0x0000 }, { 0x0700, 0x1537, 0x0000 }, { 0x8700, 0x1548, 0x5000 }, { 0x8700, 0x1540, 0x4000 }, { 0x8700, 0x153c, 0x3000 }, { 0x8700, 0x153a, 0x2000 }, { 0x0700, 0x1539, 0x0000 }, { 0x0700, 0x153b, 0x0000 }, { 0x8700, 0x153e, 0x2000 }, { 0x0700, 0x153d, 0x0000 }, { 0x0700, 0x153f, 0x0000 }, { 0x8700, 0x1544, 0x3000 }, { 0x8700, 0x1542, 0x2000 }, { 0x0700, 0x1541, 0x0000 }, { 0x0700, 0x1543, 0x0000 }, { 0x8700, 0x1546, 0x2000 }, { 0x0700, 0x1545, 0x0000 }, { 0x0700, 0x1547, 0x0000 }, { 0x8700, 0x1550, 0x4000 }, { 0x8700, 0x154c, 0x3000 }, { 0x8700, 0x154a, 0x2000 }, { 0x0700, 0x1549, 0x0000 }, { 0x0700, 0x154b, 0x0000 }, { 0x8700, 0x154e, 0x2000 }, { 0x0700, 0x154d, 0x0000 }, { 0x0700, 0x154f, 0x0000 }, { 0x8700, 0x1554, 0x3000 }, { 0x8700, 0x1552, 0x2000 }, { 0x0700, 0x1551, 0x0000 }, { 0x0700, 0x1553, 0x0000 }, { 0x8700, 0x1556, 0x2000 }, { 0x0700, 0x1555, 0x0000 }, { 0x0700, 0x1557, 0x0000 }, { 0x9900, 0x22ae, 0xc000 }, { 0x8900, 0x1e24, 0xb001 }, { 0x8700, 0x17a2, 0xa000 }, { 0x8700, 0x1658, 0x9000 }, { 0x8700, 0x15d8, 0x8000 }, { 0x8700, 0x1598, 0x7000 }, { 0x8700, 0x1578, 0x6000 }, { 0x8700, 0x1568, 0x5000 }, { 0x8700, 0x1560, 0x4000 }, { 0x8700, 0x155c, 0x3000 }, { 0x8700, 0x155a, 0x2000 }, { 0x0700, 0x1559, 0x0000 }, { 0x0700, 0x155b, 0x0000 }, { 0x8700, 0x155e, 0x2000 }, { 0x0700, 0x155d, 0x0000 }, { 0x0700, 0x155f, 0x0000 }, { 0x8700, 0x1564, 0x3000 }, { 0x8700, 0x1562, 0x2000 }, { 0x0700, 0x1561, 0x0000 }, { 0x0700, 0x1563, 0x0000 }, { 0x8700, 0x1566, 0x2000 }, { 0x0700, 0x1565, 0x0000 }, { 0x0700, 0x1567, 0x0000 }, { 0x8700, 0x1570, 0x4000 }, { 0x8700, 0x156c, 0x3000 }, { 0x8700, 0x156a, 0x2000 }, { 0x0700, 0x1569, 0x0000 }, { 0x0700, 0x156b, 0x0000 }, { 0x8700, 0x156e, 0x2000 }, { 0x0700, 0x156d, 0x0000 }, { 0x0700, 0x156f, 0x0000 }, { 0x8700, 0x1574, 0x3000 }, { 0x8700, 0x1572, 0x2000 }, { 0x0700, 0x1571, 0x0000 }, { 0x0700, 0x1573, 0x0000 }, { 0x8700, 0x1576, 0x2000 }, { 0x0700, 0x1575, 0x0000 }, { 0x0700, 0x1577, 0x0000 }, { 0x8700, 0x1588, 0x5000 }, { 0x8700, 0x1580, 0x4000 }, { 0x8700, 0x157c, 0x3000 }, { 0x8700, 0x157a, 0x2000 }, { 0x0700, 0x1579, 0x0000 }, { 0x0700, 0x157b, 0x0000 }, { 0x8700, 0x157e, 0x2000 }, { 0x0700, 0x157d, 0x0000 }, { 0x0700, 0x157f, 0x0000 }, { 0x8700, 0x1584, 0x3000 }, { 0x8700, 0x1582, 0x2000 }, { 0x0700, 0x1581, 0x0000 }, { 0x0700, 0x1583, 0x0000 }, { 0x8700, 0x1586, 0x2000 }, { 0x0700, 0x1585, 0x0000 }, { 0x0700, 0x1587, 0x0000 }, { 0x8700, 0x1590, 0x4000 }, { 0x8700, 0x158c, 0x3000 }, { 0x8700, 0x158a, 0x2000 }, { 0x0700, 0x1589, 0x0000 }, { 0x0700, 0x158b, 0x0000 }, { 0x8700, 0x158e, 0x2000 }, { 0x0700, 0x158d, 0x0000 }, { 0x0700, 0x158f, 0x0000 }, { 0x8700, 0x1594, 0x3000 }, { 0x8700, 0x1592, 0x2000 }, { 0x0700, 0x1591, 0x0000 }, { 0x0700, 0x1593, 0x0000 }, { 0x8700, 0x1596, 0x2000 }, { 0x0700, 0x1595, 0x0000 }, { 0x0700, 0x1597, 0x0000 }, { 0x8700, 0x15b8, 0x6000 }, { 0x8700, 0x15a8, 0x5000 }, { 0x8700, 0x15a0, 0x4000 }, { 0x8700, 0x159c, 0x3000 }, { 0x8700, 0x159a, 0x2000 }, { 0x0700, 0x1599, 0x0000 }, { 0x0700, 0x159b, 0x0000 }, { 0x8700, 0x159e, 0x2000 }, { 0x0700, 0x159d, 0x0000 }, { 0x0700, 0x159f, 0x0000 }, { 0x8700, 0x15a4, 0x3000 }, { 0x8700, 0x15a2, 0x2000 }, { 0x0700, 0x15a1, 0x0000 }, { 0x0700, 0x15a3, 0x0000 }, { 0x8700, 0x15a6, 0x2000 }, { 0x0700, 0x15a5, 0x0000 }, { 0x0700, 0x15a7, 0x0000 }, { 0x8700, 0x15b0, 0x4000 }, { 0x8700, 0x15ac, 0x3000 }, { 0x8700, 0x15aa, 0x2000 }, { 0x0700, 0x15a9, 0x0000 }, { 0x0700, 0x15ab, 0x0000 }, { 0x8700, 0x15ae, 0x2000 }, { 0x0700, 0x15ad, 0x0000 }, { 0x0700, 0x15af, 0x0000 }, { 0x8700, 0x15b4, 0x3000 }, { 0x8700, 0x15b2, 0x2000 }, { 0x0700, 0x15b1, 0x0000 }, { 0x0700, 0x15b3, 0x0000 }, { 0x8700, 0x15b6, 0x2000 }, { 0x0700, 0x15b5, 0x0000 }, { 0x0700, 0x15b7, 0x0000 }, { 0x8700, 0x15c8, 0x5000 }, { 0x8700, 0x15c0, 0x4000 }, { 0x8700, 0x15bc, 0x3000 }, { 0x8700, 0x15ba, 0x2000 }, { 0x0700, 0x15b9, 0x0000 }, { 0x0700, 0x15bb, 0x0000 }, { 0x8700, 0x15be, 0x2000 }, { 0x0700, 0x15bd, 0x0000 }, { 0x0700, 0x15bf, 0x0000 }, { 0x8700, 0x15c4, 0x3000 }, { 0x8700, 0x15c2, 0x2000 }, { 0x0700, 0x15c1, 0x0000 }, { 0x0700, 0x15c3, 0x0000 }, { 0x8700, 0x15c6, 0x2000 }, { 0x0700, 0x15c5, 0x0000 }, { 0x0700, 0x15c7, 0x0000 }, { 0x8700, 0x15d0, 0x4000 }, { 0x8700, 0x15cc, 0x3000 }, { 0x8700, 0x15ca, 0x2000 }, { 0x0700, 0x15c9, 0x0000 }, { 0x0700, 0x15cb, 0x0000 }, { 0x8700, 0x15ce, 0x2000 }, { 0x0700, 0x15cd, 0x0000 }, { 0x0700, 0x15cf, 0x0000 }, { 0x8700, 0x15d4, 0x3000 }, { 0x8700, 0x15d2, 0x2000 }, { 0x0700, 0x15d1, 0x0000 }, { 0x0700, 0x15d3, 0x0000 }, { 0x8700, 0x15d6, 0x2000 }, { 0x0700, 0x15d5, 0x0000 }, { 0x0700, 0x15d7, 0x0000 }, { 0x8700, 0x1618, 0x7000 }, { 0x8700, 0x15f8, 0x6000 }, { 0x8700, 0x15e8, 0x5000 }, { 0x8700, 0x15e0, 0x4000 }, { 0x8700, 0x15dc, 0x3000 }, { 0x8700, 0x15da, 0x2000 }, { 0x0700, 0x15d9, 0x0000 }, { 0x0700, 0x15db, 0x0000 }, { 0x8700, 0x15de, 0x2000 }, { 0x0700, 0x15dd, 0x0000 }, { 0x0700, 0x15df, 0x0000 }, { 0x8700, 0x15e4, 0x3000 }, { 0x8700, 0x15e2, 0x2000 }, { 0x0700, 0x15e1, 0x0000 }, { 0x0700, 0x15e3, 0x0000 }, { 0x8700, 0x15e6, 0x2000 }, { 0x0700, 0x15e5, 0x0000 }, { 0x0700, 0x15e7, 0x0000 }, { 0x8700, 0x15f0, 0x4000 }, { 0x8700, 0x15ec, 0x3000 }, { 0x8700, 0x15ea, 0x2000 }, { 0x0700, 0x15e9, 0x0000 }, { 0x0700, 0x15eb, 0x0000 }, { 0x8700, 0x15ee, 0x2000 }, { 0x0700, 0x15ed, 0x0000 }, { 0x0700, 0x15ef, 0x0000 }, { 0x8700, 0x15f4, 0x3000 }, { 0x8700, 0x15f2, 0x2000 }, { 0x0700, 0x15f1, 0x0000 }, { 0x0700, 0x15f3, 0x0000 }, { 0x8700, 0x15f6, 0x2000 }, { 0x0700, 0x15f5, 0x0000 }, { 0x0700, 0x15f7, 0x0000 }, { 0x8700, 0x1608, 0x5000 }, { 0x8700, 0x1600, 0x4000 }, { 0x8700, 0x15fc, 0x3000 }, { 0x8700, 0x15fa, 0x2000 }, { 0x0700, 0x15f9, 0x0000 }, { 0x0700, 0x15fb, 0x0000 }, { 0x8700, 0x15fe, 0x2000 }, { 0x0700, 0x15fd, 0x0000 }, { 0x0700, 0x15ff, 0x0000 }, { 0x8700, 0x1604, 0x3000 }, { 0x8700, 0x1602, 0x2000 }, { 0x0700, 0x1601, 0x0000 }, { 0x0700, 0x1603, 0x0000 }, { 0x8700, 0x1606, 0x2000 }, { 0x0700, 0x1605, 0x0000 }, { 0x0700, 0x1607, 0x0000 }, { 0x8700, 0x1610, 0x4000 }, { 0x8700, 0x160c, 0x3000 }, { 0x8700, 0x160a, 0x2000 }, { 0x0700, 0x1609, 0x0000 }, { 0x0700, 0x160b, 0x0000 }, { 0x8700, 0x160e, 0x2000 }, { 0x0700, 0x160d, 0x0000 }, { 0x0700, 0x160f, 0x0000 }, { 0x8700, 0x1614, 0x3000 }, { 0x8700, 0x1612, 0x2000 }, { 0x0700, 0x1611, 0x0000 }, { 0x0700, 0x1613, 0x0000 }, { 0x8700, 0x1616, 0x2000 }, { 0x0700, 0x1615, 0x0000 }, { 0x0700, 0x1617, 0x0000 }, { 0x8700, 0x1638, 0x6000 }, { 0x8700, 0x1628, 0x5000 }, { 0x8700, 0x1620, 0x4000 }, { 0x8700, 0x161c, 0x3000 }, { 0x8700, 0x161a, 0x2000 }, { 0x0700, 0x1619, 0x0000 }, { 0x0700, 0x161b, 0x0000 }, { 0x8700, 0x161e, 0x2000 }, { 0x0700, 0x161d, 0x0000 }, { 0x0700, 0x161f, 0x0000 }, { 0x8700, 0x1624, 0x3000 }, { 0x8700, 0x1622, 0x2000 }, { 0x0700, 0x1621, 0x0000 }, { 0x0700, 0x1623, 0x0000 }, { 0x8700, 0x1626, 0x2000 }, { 0x0700, 0x1625, 0x0000 }, { 0x0700, 0x1627, 0x0000 }, { 0x8700, 0x1630, 0x4000 }, { 0x8700, 0x162c, 0x3000 }, { 0x8700, 0x162a, 0x2000 }, { 0x0700, 0x1629, 0x0000 }, { 0x0700, 0x162b, 0x0000 }, { 0x8700, 0x162e, 0x2000 }, { 0x0700, 0x162d, 0x0000 }, { 0x0700, 0x162f, 0x0000 }, { 0x8700, 0x1634, 0x3000 }, { 0x8700, 0x1632, 0x2000 }, { 0x0700, 0x1631, 0x0000 }, { 0x0700, 0x1633, 0x0000 }, { 0x8700, 0x1636, 0x2000 }, { 0x0700, 0x1635, 0x0000 }, { 0x0700, 0x1637, 0x0000 }, { 0x8700, 0x1648, 0x5000 }, { 0x8700, 0x1640, 0x4000 }, { 0x8700, 0x163c, 0x3000 }, { 0x8700, 0x163a, 0x2000 }, { 0x0700, 0x1639, 0x0000 }, { 0x0700, 0x163b, 0x0000 }, { 0x8700, 0x163e, 0x2000 }, { 0x0700, 0x163d, 0x0000 }, { 0x0700, 0x163f, 0x0000 }, { 0x8700, 0x1644, 0x3000 }, { 0x8700, 0x1642, 0x2000 }, { 0x0700, 0x1641, 0x0000 }, { 0x0700, 0x1643, 0x0000 }, { 0x8700, 0x1646, 0x2000 }, { 0x0700, 0x1645, 0x0000 }, { 0x0700, 0x1647, 0x0000 }, { 0x8700, 0x1650, 0x4000 }, { 0x8700, 0x164c, 0x3000 }, { 0x8700, 0x164a, 0x2000 }, { 0x0700, 0x1649, 0x0000 }, { 0x0700, 0x164b, 0x0000 }, { 0x8700, 0x164e, 0x2000 }, { 0x0700, 0x164d, 0x0000 }, { 0x0700, 0x164f, 0x0000 }, { 0x8700, 0x1654, 0x3000 }, { 0x8700, 0x1652, 0x2000 }, { 0x0700, 0x1651, 0x0000 }, { 0x0700, 0x1653, 0x0000 }, { 0x8700, 0x1656, 0x2000 }, { 0x0700, 0x1655, 0x0000 }, { 0x0700, 0x1657, 0x0000 }, { 0x8700, 0x16e4, 0x8000 }, { 0x8700, 0x16a4, 0x7000 }, { 0x8700, 0x1681, 0x6000 }, { 0x8700, 0x1668, 0x5000 }, { 0x8700, 0x1660, 0x4000 }, { 0x8700, 0x165c, 0x3000 }, { 0x8700, 0x165a, 0x2000 }, { 0x0700, 0x1659, 0x0000 }, { 0x0700, 0x165b, 0x0000 }, { 0x8700, 0x165e, 0x2000 }, { 0x0700, 0x165d, 0x0000 }, { 0x0700, 0x165f, 0x0000 }, { 0x8700, 0x1664, 0x3000 }, { 0x8700, 0x1662, 0x2000 }, { 0x0700, 0x1661, 0x0000 }, { 0x0700, 0x1663, 0x0000 }, { 0x8700, 0x1666, 0x2000 }, { 0x0700, 0x1665, 0x0000 }, { 0x0700, 0x1667, 0x0000 }, { 0x8700, 0x1670, 0x4000 }, { 0x8700, 0x166c, 0x3000 }, { 0x8700, 0x166a, 0x2000 }, { 0x0700, 0x1669, 0x0000 }, { 0x0700, 0x166b, 0x0000 }, { 0x9500, 0x166e, 0x2000 }, { 0x1500, 0x166d, 0x0000 }, { 0x0700, 0x166f, 0x0000 }, { 0x8700, 0x1674, 0x3000 }, { 0x8700, 0x1672, 0x2000 }, { 0x0700, 0x1671, 0x0000 }, { 0x0700, 0x1673, 0x0000 }, { 0x8700, 0x1676, 0x2000 }, { 0x0700, 0x1675, 0x0000 }, { 0x1d00, 0x1680, 0x0000 }, { 0x8700, 0x1691, 0x5000 }, { 0x8700, 0x1689, 0x4000 }, { 0x8700, 0x1685, 0x3000 }, { 0x8700, 0x1683, 0x2000 }, { 0x0700, 0x1682, 0x0000 }, { 0x0700, 0x1684, 0x0000 }, { 0x8700, 0x1687, 0x2000 }, { 0x0700, 0x1686, 0x0000 }, { 0x0700, 0x1688, 0x0000 }, { 0x8700, 0x168d, 0x3000 }, { 0x8700, 0x168b, 0x2000 }, { 0x0700, 0x168a, 0x0000 }, { 0x0700, 0x168c, 0x0000 }, { 0x8700, 0x168f, 0x2000 }, { 0x0700, 0x168e, 0x0000 }, { 0x0700, 0x1690, 0x0000 }, { 0x8700, 0x1699, 0x4000 }, { 0x8700, 0x1695, 0x3000 }, { 0x8700, 0x1693, 0x2000 }, { 0x0700, 0x1692, 0x0000 }, { 0x0700, 0x1694, 0x0000 }, { 0x8700, 0x1697, 0x2000 }, { 0x0700, 0x1696, 0x0000 }, { 0x0700, 0x1698, 0x0000 }, { 0x8700, 0x16a0, 0x3000 }, { 0x9600, 0x169b, 0x2000 }, { 0x0700, 0x169a, 0x0000 }, { 0x1200, 0x169c, 0x0000 }, { 0x8700, 0x16a2, 0x2000 }, { 0x0700, 0x16a1, 0x0000 }, { 0x0700, 0x16a3, 0x0000 }, { 0x8700, 0x16c4, 0x6000 }, { 0x8700, 0x16b4, 0x5000 }, { 0x8700, 0x16ac, 0x4000 }, { 0x8700, 0x16a8, 0x3000 }, { 0x8700, 0x16a6, 0x2000 }, { 0x0700, 0x16a5, 0x0000 }, { 0x0700, 0x16a7, 0x0000 }, { 0x8700, 0x16aa, 0x2000 }, { 0x0700, 0x16a9, 0x0000 }, { 0x0700, 0x16ab, 0x0000 }, { 0x8700, 0x16b0, 0x3000 }, { 0x8700, 0x16ae, 0x2000 }, { 0x0700, 0x16ad, 0x0000 }, { 0x0700, 0x16af, 0x0000 }, { 0x8700, 0x16b2, 0x2000 }, { 0x0700, 0x16b1, 0x0000 }, { 0x0700, 0x16b3, 0x0000 }, { 0x8700, 0x16bc, 0x4000 }, { 0x8700, 0x16b8, 0x3000 }, { 0x8700, 0x16b6, 0x2000 }, { 0x0700, 0x16b5, 0x0000 }, { 0x0700, 0x16b7, 0x0000 }, { 0x8700, 0x16ba, 0x2000 }, { 0x0700, 0x16b9, 0x0000 }, { 0x0700, 0x16bb, 0x0000 }, { 0x8700, 0x16c0, 0x3000 }, { 0x8700, 0x16be, 0x2000 }, { 0x0700, 0x16bd, 0x0000 }, { 0x0700, 0x16bf, 0x0000 }, { 0x8700, 0x16c2, 0x2000 }, { 0x0700, 0x16c1, 0x0000 }, { 0x0700, 0x16c3, 0x0000 }, { 0x8700, 0x16d4, 0x5000 }, { 0x8700, 0x16cc, 0x4000 }, { 0x8700, 0x16c8, 0x3000 }, { 0x8700, 0x16c6, 0x2000 }, { 0x0700, 0x16c5, 0x0000 }, { 0x0700, 0x16c7, 0x0000 }, { 0x8700, 0x16ca, 0x2000 }, { 0x0700, 0x16c9, 0x0000 }, { 0x0700, 0x16cb, 0x0000 }, { 0x8700, 0x16d0, 0x3000 }, { 0x8700, 0x16ce, 0x2000 }, { 0x0700, 0x16cd, 0x0000 }, { 0x0700, 0x16cf, 0x0000 }, { 0x8700, 0x16d2, 0x2000 }, { 0x0700, 0x16d1, 0x0000 }, { 0x0700, 0x16d3, 0x0000 }, { 0x8700, 0x16dc, 0x4000 }, { 0x8700, 0x16d8, 0x3000 }, { 0x8700, 0x16d6, 0x2000 }, { 0x0700, 0x16d5, 0x0000 }, { 0x0700, 0x16d7, 0x0000 }, { 0x8700, 0x16da, 0x2000 }, { 0x0700, 0x16d9, 0x0000 }, { 0x0700, 0x16db, 0x0000 }, { 0x8700, 0x16e0, 0x3000 }, { 0x8700, 0x16de, 0x2000 }, { 0x0700, 0x16dd, 0x0000 }, { 0x0700, 0x16df, 0x0000 }, { 0x8700, 0x16e2, 0x2000 }, { 0x0700, 0x16e1, 0x0000 }, { 0x0700, 0x16e3, 0x0000 }, { 0x8700, 0x1748, 0x7000 }, { 0x8c00, 0x1714, 0x6000 }, { 0x8700, 0x1703, 0x5000 }, { 0x9500, 0x16ec, 0x4000 }, { 0x8700, 0x16e8, 0x3000 }, { 0x8700, 0x16e6, 0x2000 }, { 0x0700, 0x16e5, 0x0000 }, { 0x0700, 0x16e7, 0x0000 }, { 0x8700, 0x16ea, 0x2000 }, { 0x0700, 0x16e9, 0x0000 }, { 0x1500, 0x16eb, 0x0000 }, { 0x8e00, 0x16f0, 0x3000 }, { 0x8e00, 0x16ee, 0x2000 }, { 0x1500, 0x16ed, 0x0000 }, { 0x0e00, 0x16ef, 0x0000 }, { 0x8700, 0x1701, 0x2000 }, { 0x0700, 0x1700, 0x0000 }, { 0x0700, 0x1702, 0x0000 }, { 0x8700, 0x170b, 0x4000 }, { 0x8700, 0x1707, 0x3000 }, { 0x8700, 0x1705, 0x2000 }, { 0x0700, 0x1704, 0x0000 }, { 0x0700, 0x1706, 0x0000 }, { 0x8700, 0x1709, 0x2000 }, { 0x0700, 0x1708, 0x0000 }, { 0x0700, 0x170a, 0x0000 }, { 0x8700, 0x1710, 0x3000 }, { 0x8700, 0x170e, 0x2000 }, { 0x0700, 0x170c, 0x0000 }, { 0x0700, 0x170f, 0x0000 }, { 0x8c00, 0x1712, 0x2000 }, { 0x0700, 0x1711, 0x0000 }, { 0x0c00, 0x1713, 0x0000 }, { 0x8700, 0x172f, 0x5000 }, { 0x8700, 0x1727, 0x4000 }, { 0x8700, 0x1723, 0x3000 }, { 0x8700, 0x1721, 0x2000 }, { 0x0700, 0x1720, 0x0000 }, { 0x0700, 0x1722, 0x0000 }, { 0x8700, 0x1725, 0x2000 }, { 0x0700, 0x1724, 0x0000 }, { 0x0700, 0x1726, 0x0000 }, { 0x8700, 0x172b, 0x3000 }, { 0x8700, 0x1729, 0x2000 }, { 0x0700, 0x1728, 0x0000 }, { 0x0700, 0x172a, 0x0000 }, { 0x8700, 0x172d, 0x2000 }, { 0x0700, 0x172c, 0x0000 }, { 0x0700, 0x172e, 0x0000 }, { 0x8700, 0x1740, 0x4000 }, { 0x8c00, 0x1733, 0x3000 }, { 0x8700, 0x1731, 0x2000 }, { 0x0700, 0x1730, 0x0000 }, { 0x0c00, 0x1732, 0x0000 }, { 0x9500, 0x1735, 0x2000 }, { 0x0c00, 0x1734, 0x0000 }, { 0x1500, 0x1736, 0x0000 }, { 0x8700, 0x1744, 0x3000 }, { 0x8700, 0x1742, 0x2000 }, { 0x0700, 0x1741, 0x0000 }, { 0x0700, 0x1743, 0x0000 }, { 0x8700, 0x1746, 0x2000 }, { 0x0700, 0x1745, 0x0000 }, { 0x0700, 0x1747, 0x0000 }, { 0x8700, 0x1782, 0x6000 }, { 0x8700, 0x1764, 0x5000 }, { 0x8700, 0x1750, 0x4000 }, { 0x8700, 0x174c, 0x3000 }, { 0x8700, 0x174a, 0x2000 }, { 0x0700, 0x1749, 0x0000 }, { 0x0700, 0x174b, 0x0000 }, { 0x8700, 0x174e, 0x2000 }, { 0x0700, 0x174d, 0x0000 }, { 0x0700, 0x174f, 0x0000 }, { 0x8700, 0x1760, 0x3000 }, { 0x8c00, 0x1752, 0x2000 }, { 0x0700, 0x1751, 0x0000 }, { 0x0c00, 0x1753, 0x0000 }, { 0x8700, 0x1762, 0x2000 }, { 0x0700, 0x1761, 0x0000 }, { 0x0700, 0x1763, 0x0000 }, { 0x8700, 0x176c, 0x4000 }, { 0x8700, 0x1768, 0x3000 }, { 0x8700, 0x1766, 0x2000 }, { 0x0700, 0x1765, 0x0000 }, { 0x0700, 0x1767, 0x0000 }, { 0x8700, 0x176a, 0x2000 }, { 0x0700, 0x1769, 0x0000 }, { 0x0700, 0x176b, 0x0000 }, { 0x8c00, 0x1772, 0x3000 }, { 0x8700, 0x176f, 0x2000 }, { 0x0700, 0x176e, 0x0000 }, { 0x0700, 0x1770, 0x0000 }, { 0x8700, 0x1780, 0x2000 }, { 0x0c00, 0x1773, 0x0000 }, { 0x0700, 0x1781, 0x0000 }, { 0x8700, 0x1792, 0x5000 }, { 0x8700, 0x178a, 0x4000 }, { 0x8700, 0x1786, 0x3000 }, { 0x8700, 0x1784, 0x2000 }, { 0x0700, 0x1783, 0x0000 }, { 0x0700, 0x1785, 0x0000 }, { 0x8700, 0x1788, 0x2000 }, { 0x0700, 0x1787, 0x0000 }, { 0x0700, 0x1789, 0x0000 }, { 0x8700, 0x178e, 0x3000 }, { 0x8700, 0x178c, 0x2000 }, { 0x0700, 0x178b, 0x0000 }, { 0x0700, 0x178d, 0x0000 }, { 0x8700, 0x1790, 0x2000 }, { 0x0700, 0x178f, 0x0000 }, { 0x0700, 0x1791, 0x0000 }, { 0x8700, 0x179a, 0x4000 }, { 0x8700, 0x1796, 0x3000 }, { 0x8700, 0x1794, 0x2000 }, { 0x0700, 0x1793, 0x0000 }, { 0x0700, 0x1795, 0x0000 }, { 0x8700, 0x1798, 0x2000 }, { 0x0700, 0x1797, 0x0000 }, { 0x0700, 0x1799, 0x0000 }, { 0x8700, 0x179e, 0x3000 }, { 0x8700, 0x179c, 0x2000 }, { 0x0700, 0x179b, 0x0000 }, { 0x0700, 0x179d, 0x0000 }, { 0x8700, 0x17a0, 0x2000 }, { 0x0700, 0x179f, 0x0000 }, { 0x0700, 0x17a1, 0x0000 }, { 0x8700, 0x1915, 0x9000 }, { 0x8700, 0x1837, 0x8000 }, { 0x8d00, 0x17e4, 0x7000 }, { 0x8a00, 0x17c2, 0x6000 }, { 0x8700, 0x17b2, 0x5000 }, { 0x8700, 0x17aa, 0x4000 }, { 0x8700, 0x17a6, 0x3000 }, { 0x8700, 0x17a4, 0x2000 }, { 0x0700, 0x17a3, 0x0000 }, { 0x0700, 0x17a5, 0x0000 }, { 0x8700, 0x17a8, 0x2000 }, { 0x0700, 0x17a7, 0x0000 }, { 0x0700, 0x17a9, 0x0000 }, { 0x8700, 0x17ae, 0x3000 }, { 0x8700, 0x17ac, 0x2000 }, { 0x0700, 0x17ab, 0x0000 }, { 0x0700, 0x17ad, 0x0000 }, { 0x8700, 0x17b0, 0x2000 }, { 0x0700, 0x17af, 0x0000 }, { 0x0700, 0x17b1, 0x0000 }, { 0x8c00, 0x17ba, 0x4000 }, { 0x8a00, 0x17b6, 0x3000 }, { 0x8100, 0x17b4, 0x2000 }, { 0x0700, 0x17b3, 0x0000 }, { 0x0100, 0x17b5, 0x0000 }, { 0x8c00, 0x17b8, 0x2000 }, { 0x0c00, 0x17b7, 0x0000 }, { 0x0c00, 0x17b9, 0x0000 }, { 0x8a00, 0x17be, 0x3000 }, { 0x8c00, 0x17bc, 0x2000 }, { 0x0c00, 0x17bb, 0x0000 }, { 0x0c00, 0x17bd, 0x0000 }, { 0x8a00, 0x17c0, 0x2000 }, { 0x0a00, 0x17bf, 0x0000 }, { 0x0a00, 0x17c1, 0x0000 }, { 0x8c00, 0x17d2, 0x5000 }, { 0x8c00, 0x17ca, 0x4000 }, { 0x8c00, 0x17c6, 0x3000 }, { 0x8a00, 0x17c4, 0x2000 }, { 0x0a00, 0x17c3, 0x0000 }, { 0x0a00, 0x17c5, 0x0000 }, { 0x8a00, 0x17c8, 0x2000 }, { 0x0a00, 0x17c7, 0x0000 }, { 0x0c00, 0x17c9, 0x0000 }, { 0x8c00, 0x17ce, 0x3000 }, { 0x8c00, 0x17cc, 0x2000 }, { 0x0c00, 0x17cb, 0x0000 }, { 0x0c00, 0x17cd, 0x0000 }, { 0x8c00, 0x17d0, 0x2000 }, { 0x0c00, 0x17cf, 0x0000 }, { 0x0c00, 0x17d1, 0x0000 }, { 0x9500, 0x17da, 0x4000 }, { 0x9500, 0x17d6, 0x3000 }, { 0x9500, 0x17d4, 0x2000 }, { 0x0c00, 0x17d3, 0x0000 }, { 0x1500, 0x17d5, 0x0000 }, { 0x9500, 0x17d8, 0x2000 }, { 0x0600, 0x17d7, 0x0000 }, { 0x1500, 0x17d9, 0x0000 }, { 0x8d00, 0x17e0, 0x3000 }, { 0x8700, 0x17dc, 0x2000 }, { 0x1700, 0x17db, 0x0000 }, { 0x0c00, 0x17dd, 0x0000 }, { 0x8d00, 0x17e2, 0x2000 }, { 0x0d00, 0x17e1, 0x0000 }, { 0x0d00, 0x17e3, 0x0000 }, { 0x8d00, 0x1811, 0x6000 }, { 0x9500, 0x1800, 0x5000 }, { 0x8f00, 0x17f2, 0x4000 }, { 0x8d00, 0x17e8, 0x3000 }, { 0x8d00, 0x17e6, 0x2000 }, { 0x0d00, 0x17e5, 0x0000 }, { 0x0d00, 0x17e7, 0x0000 }, { 0x8f00, 0x17f0, 0x2000 }, { 0x0d00, 0x17e9, 0x0000 }, { 0x0f00, 0x17f1, 0x0000 }, { 0x8f00, 0x17f6, 0x3000 }, { 0x8f00, 0x17f4, 0x2000 }, { 0x0f00, 0x17f3, 0x0000 }, { 0x0f00, 0x17f5, 0x0000 }, { 0x8f00, 0x17f8, 0x2000 }, { 0x0f00, 0x17f7, 0x0000 }, { 0x0f00, 0x17f9, 0x0000 }, { 0x9500, 0x1808, 0x4000 }, { 0x9500, 0x1804, 0x3000 }, { 0x9500, 0x1802, 0x2000 }, { 0x1500, 0x1801, 0x0000 }, { 0x1500, 0x1803, 0x0000 }, { 0x9100, 0x1806, 0x2000 }, { 0x1500, 0x1805, 0x0000 }, { 0x1500, 0x1807, 0x0000 }, { 0x8c00, 0x180c, 0x3000 }, { 0x9500, 0x180a, 0x2000 }, { 0x1500, 0x1809, 0x0000 }, { 0x0c00, 0x180b, 0x0000 }, { 0x9d00, 0x180e, 0x2000 }, { 0x0c00, 0x180d, 0x0000 }, { 0x0d00, 0x1810, 0x0000 }, { 0x8700, 0x1827, 0x5000 }, { 0x8d00, 0x1819, 0x4000 }, { 0x8d00, 0x1815, 0x3000 }, { 0x8d00, 0x1813, 0x2000 }, { 0x0d00, 0x1812, 0x0000 }, { 0x0d00, 0x1814, 0x0000 }, { 0x8d00, 0x1817, 0x2000 }, { 0x0d00, 0x1816, 0x0000 }, { 0x0d00, 0x1818, 0x0000 }, { 0x8700, 0x1823, 0x3000 }, { 0x8700, 0x1821, 0x2000 }, { 0x0700, 0x1820, 0x0000 }, { 0x0700, 0x1822, 0x0000 }, { 0x8700, 0x1825, 0x2000 }, { 0x0700, 0x1824, 0x0000 }, { 0x0700, 0x1826, 0x0000 }, { 0x8700, 0x182f, 0x4000 }, { 0x8700, 0x182b, 0x3000 }, { 0x8700, 0x1829, 0x2000 }, { 0x0700, 0x1828, 0x0000 }, { 0x0700, 0x182a, 0x0000 }, { 0x8700, 0x182d, 0x2000 }, { 0x0700, 0x182c, 0x0000 }, { 0x0700, 0x182e, 0x0000 }, { 0x8700, 0x1833, 0x3000 }, { 0x8700, 0x1831, 0x2000 }, { 0x0700, 0x1830, 0x0000 }, { 0x0700, 0x1832, 0x0000 }, { 0x8700, 0x1835, 0x2000 }, { 0x0700, 0x1834, 0x0000 }, { 0x0700, 0x1836, 0x0000 }, { 0x8700, 0x1877, 0x7000 }, { 0x8700, 0x1857, 0x6000 }, { 0x8700, 0x1847, 0x5000 }, { 0x8700, 0x183f, 0x4000 }, { 0x8700, 0x183b, 0x3000 }, { 0x8700, 0x1839, 0x2000 }, { 0x0700, 0x1838, 0x0000 }, { 0x0700, 0x183a, 0x0000 }, { 0x8700, 0x183d, 0x2000 }, { 0x0700, 0x183c, 0x0000 }, { 0x0700, 0x183e, 0x0000 }, { 0x8600, 0x1843, 0x3000 }, { 0x8700, 0x1841, 0x2000 }, { 0x0700, 0x1840, 0x0000 }, { 0x0700, 0x1842, 0x0000 }, { 0x8700, 0x1845, 0x2000 }, { 0x0700, 0x1844, 0x0000 }, { 0x0700, 0x1846, 0x0000 }, { 0x8700, 0x184f, 0x4000 }, { 0x8700, 0x184b, 0x3000 }, { 0x8700, 0x1849, 0x2000 }, { 0x0700, 0x1848, 0x0000 }, { 0x0700, 0x184a, 0x0000 }, { 0x8700, 0x184d, 0x2000 }, { 0x0700, 0x184c, 0x0000 }, { 0x0700, 0x184e, 0x0000 }, { 0x8700, 0x1853, 0x3000 }, { 0x8700, 0x1851, 0x2000 }, { 0x0700, 0x1850, 0x0000 }, { 0x0700, 0x1852, 0x0000 }, { 0x8700, 0x1855, 0x2000 }, { 0x0700, 0x1854, 0x0000 }, { 0x0700, 0x1856, 0x0000 }, { 0x8700, 0x1867, 0x5000 }, { 0x8700, 0x185f, 0x4000 }, { 0x8700, 0x185b, 0x3000 }, { 0x8700, 0x1859, 0x2000 }, { 0x0700, 0x1858, 0x0000 }, { 0x0700, 0x185a, 0x0000 }, { 0x8700, 0x185d, 0x2000 }, { 0x0700, 0x185c, 0x0000 }, { 0x0700, 0x185e, 0x0000 }, { 0x8700, 0x1863, 0x3000 }, { 0x8700, 0x1861, 0x2000 }, { 0x0700, 0x1860, 0x0000 }, { 0x0700, 0x1862, 0x0000 }, { 0x8700, 0x1865, 0x2000 }, { 0x0700, 0x1864, 0x0000 }, { 0x0700, 0x1866, 0x0000 }, { 0x8700, 0x186f, 0x4000 }, { 0x8700, 0x186b, 0x3000 }, { 0x8700, 0x1869, 0x2000 }, { 0x0700, 0x1868, 0x0000 }, { 0x0700, 0x186a, 0x0000 }, { 0x8700, 0x186d, 0x2000 }, { 0x0700, 0x186c, 0x0000 }, { 0x0700, 0x186e, 0x0000 }, { 0x8700, 0x1873, 0x3000 }, { 0x8700, 0x1871, 0x2000 }, { 0x0700, 0x1870, 0x0000 }, { 0x0700, 0x1872, 0x0000 }, { 0x8700, 0x1875, 0x2000 }, { 0x0700, 0x1874, 0x0000 }, { 0x0700, 0x1876, 0x0000 }, { 0x8700, 0x189f, 0x6000 }, { 0x8700, 0x188f, 0x5000 }, { 0x8700, 0x1887, 0x4000 }, { 0x8700, 0x1883, 0x3000 }, { 0x8700, 0x1881, 0x2000 }, { 0x0700, 0x1880, 0x0000 }, { 0x0700, 0x1882, 0x0000 }, { 0x8700, 0x1885, 0x2000 }, { 0x0700, 0x1884, 0x0000 }, { 0x0700, 0x1886, 0x0000 }, { 0x8700, 0x188b, 0x3000 }, { 0x8700, 0x1889, 0x2000 }, { 0x0700, 0x1888, 0x0000 }, { 0x0700, 0x188a, 0x0000 }, { 0x8700, 0x188d, 0x2000 }, { 0x0700, 0x188c, 0x0000 }, { 0x0700, 0x188e, 0x0000 }, { 0x8700, 0x1897, 0x4000 }, { 0x8700, 0x1893, 0x3000 }, { 0x8700, 0x1891, 0x2000 }, { 0x0700, 0x1890, 0x0000 }, { 0x0700, 0x1892, 0x0000 }, { 0x8700, 0x1895, 0x2000 }, { 0x0700, 0x1894, 0x0000 }, { 0x0700, 0x1896, 0x0000 }, { 0x8700, 0x189b, 0x3000 }, { 0x8700, 0x1899, 0x2000 }, { 0x0700, 0x1898, 0x0000 }, { 0x0700, 0x189a, 0x0000 }, { 0x8700, 0x189d, 0x2000 }, { 0x0700, 0x189c, 0x0000 }, { 0x0700, 0x189e, 0x0000 }, { 0x8700, 0x1905, 0x5000 }, { 0x8700, 0x18a7, 0x4000 }, { 0x8700, 0x18a3, 0x3000 }, { 0x8700, 0x18a1, 0x2000 }, { 0x0700, 0x18a0, 0x0000 }, { 0x0700, 0x18a2, 0x0000 }, { 0x8700, 0x18a5, 0x2000 }, { 0x0700, 0x18a4, 0x0000 }, { 0x0700, 0x18a6, 0x0000 }, { 0x8700, 0x1901, 0x3000 }, { 0x8c00, 0x18a9, 0x2000 }, { 0x0700, 0x18a8, 0x0000 }, { 0x0700, 0x1900, 0x0000 }, { 0x8700, 0x1903, 0x2000 }, { 0x0700, 0x1902, 0x0000 }, { 0x0700, 0x1904, 0x0000 }, { 0x8700, 0x190d, 0x4000 }, { 0x8700, 0x1909, 0x3000 }, { 0x8700, 0x1907, 0x2000 }, { 0x0700, 0x1906, 0x0000 }, { 0x0700, 0x1908, 0x0000 }, { 0x8700, 0x190b, 0x2000 }, { 0x0700, 0x190a, 0x0000 }, { 0x0700, 0x190c, 0x0000 }, { 0x8700, 0x1911, 0x3000 }, { 0x8700, 0x190f, 0x2000 }, { 0x0700, 0x190e, 0x0000 }, { 0x0700, 0x1910, 0x0000 }, { 0x8700, 0x1913, 0x2000 }, { 0x0700, 0x1912, 0x0000 }, { 0x0700, 0x1914, 0x0000 }, { 0x8500, 0x1d10, 0x8000 }, { 0x8700, 0x1963, 0x7000 }, { 0x9a00, 0x1940, 0x6000 }, { 0x8c00, 0x1928, 0x5000 }, { 0x8c00, 0x1920, 0x4000 }, { 0x8700, 0x1919, 0x3000 }, { 0x8700, 0x1917, 0x2000 }, { 0x0700, 0x1916, 0x0000 }, { 0x0700, 0x1918, 0x0000 }, { 0x8700, 0x191b, 0x2000 }, { 0x0700, 0x191a, 0x0000 }, { 0x0700, 0x191c, 0x0000 }, { 0x8a00, 0x1924, 0x3000 }, { 0x8c00, 0x1922, 0x2000 }, { 0x0c00, 0x1921, 0x0000 }, { 0x0a00, 0x1923, 0x0000 }, { 0x8a00, 0x1926, 0x2000 }, { 0x0a00, 0x1925, 0x0000 }, { 0x0c00, 0x1927, 0x0000 }, { 0x8a00, 0x1934, 0x4000 }, { 0x8a00, 0x1930, 0x3000 }, { 0x8a00, 0x192a, 0x2000 }, { 0x0a00, 0x1929, 0x0000 }, { 0x0a00, 0x192b, 0x0000 }, { 0x8c00, 0x1932, 0x2000 }, { 0x0a00, 0x1931, 0x0000 }, { 0x0a00, 0x1933, 0x0000 }, { 0x8a00, 0x1938, 0x3000 }, { 0x8a00, 0x1936, 0x2000 }, { 0x0a00, 0x1935, 0x0000 }, { 0x0a00, 0x1937, 0x0000 }, { 0x8c00, 0x193a, 0x2000 }, { 0x0c00, 0x1939, 0x0000 }, { 0x0c00, 0x193b, 0x0000 }, { 0x8700, 0x1953, 0x5000 }, { 0x8d00, 0x194b, 0x4000 }, { 0x8d00, 0x1947, 0x3000 }, { 0x9500, 0x1945, 0x2000 }, { 0x1500, 0x1944, 0x0000 }, { 0x0d00, 0x1946, 0x0000 }, { 0x8d00, 0x1949, 0x2000 }, { 0x0d00, 0x1948, 0x0000 }, { 0x0d00, 0x194a, 0x0000 }, { 0x8d00, 0x194f, 0x3000 }, { 0x8d00, 0x194d, 0x2000 }, { 0x0d00, 0x194c, 0x0000 }, { 0x0d00, 0x194e, 0x0000 }, { 0x8700, 0x1951, 0x2000 }, { 0x0700, 0x1950, 0x0000 }, { 0x0700, 0x1952, 0x0000 }, { 0x8700, 0x195b, 0x4000 }, { 0x8700, 0x1957, 0x3000 }, { 0x8700, 0x1955, 0x2000 }, { 0x0700, 0x1954, 0x0000 }, { 0x0700, 0x1956, 0x0000 }, { 0x8700, 0x1959, 0x2000 }, { 0x0700, 0x1958, 0x0000 }, { 0x0700, 0x195a, 0x0000 }, { 0x8700, 0x195f, 0x3000 }, { 0x8700, 0x195d, 0x2000 }, { 0x0700, 0x195c, 0x0000 }, { 0x0700, 0x195e, 0x0000 }, { 0x8700, 0x1961, 0x2000 }, { 0x0700, 0x1960, 0x0000 }, { 0x0700, 0x1962, 0x0000 }, { 0x9a00, 0x19f0, 0x6000 }, { 0x9a00, 0x19e0, 0x5000 }, { 0x8700, 0x196b, 0x4000 }, { 0x8700, 0x1967, 0x3000 }, { 0x8700, 0x1965, 0x2000 }, { 0x0700, 0x1964, 0x0000 }, { 0x0700, 0x1966, 0x0000 }, { 0x8700, 0x1969, 0x2000 }, { 0x0700, 0x1968, 0x0000 }, { 0x0700, 0x196a, 0x0000 }, { 0x8700, 0x1971, 0x3000 }, { 0x8700, 0x196d, 0x2000 }, { 0x0700, 0x196c, 0x0000 }, { 0x0700, 0x1970, 0x0000 }, { 0x8700, 0x1973, 0x2000 }, { 0x0700, 0x1972, 0x0000 }, { 0x0700, 0x1974, 0x0000 }, { 0x9a00, 0x19e8, 0x4000 }, { 0x9a00, 0x19e4, 0x3000 }, { 0x9a00, 0x19e2, 0x2000 }, { 0x1a00, 0x19e1, 0x0000 }, { 0x1a00, 0x19e3, 0x0000 }, { 0x9a00, 0x19e6, 0x2000 }, { 0x1a00, 0x19e5, 0x0000 }, { 0x1a00, 0x19e7, 0x0000 }, { 0x9a00, 0x19ec, 0x3000 }, { 0x9a00, 0x19ea, 0x2000 }, { 0x1a00, 0x19e9, 0x0000 }, { 0x1a00, 0x19eb, 0x0000 }, { 0x9a00, 0x19ee, 0x2000 }, { 0x1a00, 0x19ed, 0x0000 }, { 0x1a00, 0x19ef, 0x0000 }, { 0x8500, 0x1d00, 0x5000 }, { 0x9a00, 0x19f8, 0x4000 }, { 0x9a00, 0x19f4, 0x3000 }, { 0x9a00, 0x19f2, 0x2000 }, { 0x1a00, 0x19f1, 0x0000 }, { 0x1a00, 0x19f3, 0x0000 }, { 0x9a00, 0x19f6, 0x2000 }, { 0x1a00, 0x19f5, 0x0000 }, { 0x1a00, 0x19f7, 0x0000 }, { 0x9a00, 0x19fc, 0x3000 }, { 0x9a00, 0x19fa, 0x2000 }, { 0x1a00, 0x19f9, 0x0000 }, { 0x1a00, 0x19fb, 0x0000 }, { 0x9a00, 0x19fe, 0x2000 }, { 0x1a00, 0x19fd, 0x0000 }, { 0x1a00, 0x19ff, 0x0000 }, { 0x8500, 0x1d08, 0x4000 }, { 0x8500, 0x1d04, 0x3000 }, { 0x8500, 0x1d02, 0x2000 }, { 0x0500, 0x1d01, 0x0000 }, { 0x0500, 0x1d03, 0x0000 }, { 0x8500, 0x1d06, 0x2000 }, { 0x0500, 0x1d05, 0x0000 }, { 0x0500, 0x1d07, 0x0000 }, { 0x8500, 0x1d0c, 0x3000 }, { 0x8500, 0x1d0a, 0x2000 }, { 0x0500, 0x1d09, 0x0000 }, { 0x0500, 0x1d0b, 0x0000 }, { 0x8500, 0x1d0e, 0x2000 }, { 0x0500, 0x1d0d, 0x0000 }, { 0x0500, 0x1d0f, 0x0000 }, { 0x8600, 0x1d50, 0x7000 }, { 0x8600, 0x1d30, 0x6000 }, { 0x8500, 0x1d20, 0x5000 }, { 0x8500, 0x1d18, 0x4000 }, { 0x8500, 0x1d14, 0x3000 }, { 0x8500, 0x1d12, 0x2000 }, { 0x0500, 0x1d11, 0x0000 }, { 0x0500, 0x1d13, 0x0000 }, { 0x8500, 0x1d16, 0x2000 }, { 0x0500, 0x1d15, 0x0000 }, { 0x0500, 0x1d17, 0x0000 }, { 0x8500, 0x1d1c, 0x3000 }, { 0x8500, 0x1d1a, 0x2000 }, { 0x0500, 0x1d19, 0x0000 }, { 0x0500, 0x1d1b, 0x0000 }, { 0x8500, 0x1d1e, 0x2000 }, { 0x0500, 0x1d1d, 0x0000 }, { 0x0500, 0x1d1f, 0x0000 }, { 0x8500, 0x1d28, 0x4000 }, { 0x8500, 0x1d24, 0x3000 }, { 0x8500, 0x1d22, 0x2000 }, { 0x0500, 0x1d21, 0x0000 }, { 0x0500, 0x1d23, 0x0000 }, { 0x8500, 0x1d26, 0x2000 }, { 0x0500, 0x1d25, 0x0000 }, { 0x0500, 0x1d27, 0x0000 }, { 0x8600, 0x1d2c, 0x3000 }, { 0x8500, 0x1d2a, 0x2000 }, { 0x0500, 0x1d29, 0x0000 }, { 0x0500, 0x1d2b, 0x0000 }, { 0x8600, 0x1d2e, 0x2000 }, { 0x0600, 0x1d2d, 0x0000 }, { 0x0600, 0x1d2f, 0x0000 }, { 0x8600, 0x1d40, 0x5000 }, { 0x8600, 0x1d38, 0x4000 }, { 0x8600, 0x1d34, 0x3000 }, { 0x8600, 0x1d32, 0x2000 }, { 0x0600, 0x1d31, 0x0000 }, { 0x0600, 0x1d33, 0x0000 }, { 0x8600, 0x1d36, 0x2000 }, { 0x0600, 0x1d35, 0x0000 }, { 0x0600, 0x1d37, 0x0000 }, { 0x8600, 0x1d3c, 0x3000 }, { 0x8600, 0x1d3a, 0x2000 }, { 0x0600, 0x1d39, 0x0000 }, { 0x0600, 0x1d3b, 0x0000 }, { 0x8600, 0x1d3e, 0x2000 }, { 0x0600, 0x1d3d, 0x0000 }, { 0x0600, 0x1d3f, 0x0000 }, { 0x8600, 0x1d48, 0x4000 }, { 0x8600, 0x1d44, 0x3000 }, { 0x8600, 0x1d42, 0x2000 }, { 0x0600, 0x1d41, 0x0000 }, { 0x0600, 0x1d43, 0x0000 }, { 0x8600, 0x1d46, 0x2000 }, { 0x0600, 0x1d45, 0x0000 }, { 0x0600, 0x1d47, 0x0000 }, { 0x8600, 0x1d4c, 0x3000 }, { 0x8600, 0x1d4a, 0x2000 }, { 0x0600, 0x1d49, 0x0000 }, { 0x0600, 0x1d4b, 0x0000 }, { 0x8600, 0x1d4e, 0x2000 }, { 0x0600, 0x1d4d, 0x0000 }, { 0x0600, 0x1d4f, 0x0000 }, { 0x8900, 0x1e04, 0x6001 }, { 0x8600, 0x1d60, 0x5000 }, { 0x8600, 0x1d58, 0x4000 }, { 0x8600, 0x1d54, 0x3000 }, { 0x8600, 0x1d52, 0x2000 }, { 0x0600, 0x1d51, 0x0000 }, { 0x0600, 0x1d53, 0x0000 }, { 0x8600, 0x1d56, 0x2000 }, { 0x0600, 0x1d55, 0x0000 }, { 0x0600, 0x1d57, 0x0000 }, { 0x8600, 0x1d5c, 0x3000 }, { 0x8600, 0x1d5a, 0x2000 }, { 0x0600, 0x1d59, 0x0000 }, { 0x0600, 0x1d5b, 0x0000 }, { 0x8600, 0x1d5e, 0x2000 }, { 0x0600, 0x1d5d, 0x0000 }, { 0x0600, 0x1d5f, 0x0000 }, { 0x8500, 0x1d68, 0x4000 }, { 0x8500, 0x1d64, 0x3000 }, { 0x8500, 0x1d62, 0x2000 }, { 0x0600, 0x1d61, 0x0000 }, { 0x0500, 0x1d63, 0x0000 }, { 0x8500, 0x1d66, 0x2000 }, { 0x0500, 0x1d65, 0x0000 }, { 0x0500, 0x1d67, 0x0000 }, { 0x8900, 0x1e00, 0x3001 }, { 0x8500, 0x1d6a, 0x2000 }, { 0x0500, 0x1d69, 0x0000 }, { 0x0500, 0x1d6b, 0x0000 }, { 0x8900, 0x1e02, 0x2001 }, { 0x0500, 0x1e01, 0x0fff }, { 0x0500, 0x1e03, 0x0fff }, { 0x8900, 0x1e14, 0x5001 }, { 0x8900, 0x1e0c, 0x4001 }, { 0x8900, 0x1e08, 0x3001 }, { 0x8900, 0x1e06, 0x2001 }, { 0x0500, 0x1e05, 0x0fff }, { 0x0500, 0x1e07, 0x0fff }, { 0x8900, 0x1e0a, 0x2001 }, { 0x0500, 0x1e09, 0x0fff }, { 0x0500, 0x1e0b, 0x0fff }, { 0x8900, 0x1e10, 0x3001 }, { 0x8900, 0x1e0e, 0x2001 }, { 0x0500, 0x1e0d, 0x0fff }, { 0x0500, 0x1e0f, 0x0fff }, { 0x8900, 0x1e12, 0x2001 }, { 0x0500, 0x1e11, 0x0fff }, { 0x0500, 0x1e13, 0x0fff }, { 0x8900, 0x1e1c, 0x4001 }, { 0x8900, 0x1e18, 0x3001 }, { 0x8900, 0x1e16, 0x2001 }, { 0x0500, 0x1e15, 0x0fff }, { 0x0500, 0x1e17, 0x0fff }, { 0x8900, 0x1e1a, 0x2001 }, { 0x0500, 0x1e19, 0x0fff }, { 0x0500, 0x1e1b, 0x0fff }, { 0x8900, 0x1e20, 0x3001 }, { 0x8900, 0x1e1e, 0x2001 }, { 0x0500, 0x1e1d, 0x0fff }, { 0x0500, 0x1e1f, 0x0fff }, { 0x8900, 0x1e22, 0x2001 }, { 0x0500, 0x1e21, 0x0fff }, { 0x0500, 0x1e23, 0x0fff }, { 0x9600, 0x2045, 0xa000 }, { 0x8500, 0x1f32, 0x9008 }, { 0x8900, 0x1ea8, 0x8001 }, { 0x8900, 0x1e64, 0x7001 }, { 0x8900, 0x1e44, 0x6001 }, { 0x8900, 0x1e34, 0x5001 }, { 0x8900, 0x1e2c, 0x4001 }, { 0x8900, 0x1e28, 0x3001 }, { 0x8900, 0x1e26, 0x2001 }, { 0x0500, 0x1e25, 0x0fff }, { 0x0500, 0x1e27, 0x0fff }, { 0x8900, 0x1e2a, 0x2001 }, { 0x0500, 0x1e29, 0x0fff }, { 0x0500, 0x1e2b, 0x0fff }, { 0x8900, 0x1e30, 0x3001 }, { 0x8900, 0x1e2e, 0x2001 }, { 0x0500, 0x1e2d, 0x0fff }, { 0x0500, 0x1e2f, 0x0fff }, { 0x8900, 0x1e32, 0x2001 }, { 0x0500, 0x1e31, 0x0fff }, { 0x0500, 0x1e33, 0x0fff }, { 0x8900, 0x1e3c, 0x4001 }, { 0x8900, 0x1e38, 0x3001 }, { 0x8900, 0x1e36, 0x2001 }, { 0x0500, 0x1e35, 0x0fff }, { 0x0500, 0x1e37, 0x0fff }, { 0x8900, 0x1e3a, 0x2001 }, { 0x0500, 0x1e39, 0x0fff }, { 0x0500, 0x1e3b, 0x0fff }, { 0x8900, 0x1e40, 0x3001 }, { 0x8900, 0x1e3e, 0x2001 }, { 0x0500, 0x1e3d, 0x0fff }, { 0x0500, 0x1e3f, 0x0fff }, { 0x8900, 0x1e42, 0x2001 }, { 0x0500, 0x1e41, 0x0fff }, { 0x0500, 0x1e43, 0x0fff }, { 0x8900, 0x1e54, 0x5001 }, { 0x8900, 0x1e4c, 0x4001 }, { 0x8900, 0x1e48, 0x3001 }, { 0x8900, 0x1e46, 0x2001 }, { 0x0500, 0x1e45, 0x0fff }, { 0x0500, 0x1e47, 0x0fff }, { 0x8900, 0x1e4a, 0x2001 }, { 0x0500, 0x1e49, 0x0fff }, { 0x0500, 0x1e4b, 0x0fff }, { 0x8900, 0x1e50, 0x3001 }, { 0x8900, 0x1e4e, 0x2001 }, { 0x0500, 0x1e4d, 0x0fff }, { 0x0500, 0x1e4f, 0x0fff }, { 0x8900, 0x1e52, 0x2001 }, { 0x0500, 0x1e51, 0x0fff }, { 0x0500, 0x1e53, 0x0fff }, { 0x8900, 0x1e5c, 0x4001 }, { 0x8900, 0x1e58, 0x3001 }, { 0x8900, 0x1e56, 0x2001 }, { 0x0500, 0x1e55, 0x0fff }, { 0x0500, 0x1e57, 0x0fff }, { 0x8900, 0x1e5a, 0x2001 }, { 0x0500, 0x1e59, 0x0fff }, { 0x0500, 0x1e5b, 0x0fff }, { 0x8900, 0x1e60, 0x3001 }, { 0x8900, 0x1e5e, 0x2001 }, { 0x0500, 0x1e5d, 0x0fff }, { 0x0500, 0x1e5f, 0x0fff }, { 0x8900, 0x1e62, 0x2001 }, { 0x0500, 0x1e61, 0x0fff }, { 0x0500, 0x1e63, 0x0fff }, { 0x8900, 0x1e84, 0x6001 }, { 0x8900, 0x1e74, 0x5001 }, { 0x8900, 0x1e6c, 0x4001 }, { 0x8900, 0x1e68, 0x3001 }, { 0x8900, 0x1e66, 0x2001 }, { 0x0500, 0x1e65, 0x0fff }, { 0x0500, 0x1e67, 0x0fff }, { 0x8900, 0x1e6a, 0x2001 }, { 0x0500, 0x1e69, 0x0fff }, { 0x0500, 0x1e6b, 0x0fff }, { 0x8900, 0x1e70, 0x3001 }, { 0x8900, 0x1e6e, 0x2001 }, { 0x0500, 0x1e6d, 0x0fff }, { 0x0500, 0x1e6f, 0x0fff }, { 0x8900, 0x1e72, 0x2001 }, { 0x0500, 0x1e71, 0x0fff }, { 0x0500, 0x1e73, 0x0fff }, { 0x8900, 0x1e7c, 0x4001 }, { 0x8900, 0x1e78, 0x3001 }, { 0x8900, 0x1e76, 0x2001 }, { 0x0500, 0x1e75, 0x0fff }, { 0x0500, 0x1e77, 0x0fff }, { 0x8900, 0x1e7a, 0x2001 }, { 0x0500, 0x1e79, 0x0fff }, { 0x0500, 0x1e7b, 0x0fff }, { 0x8900, 0x1e80, 0x3001 }, { 0x8900, 0x1e7e, 0x2001 }, { 0x0500, 0x1e7d, 0x0fff }, { 0x0500, 0x1e7f, 0x0fff }, { 0x8900, 0x1e82, 0x2001 }, { 0x0500, 0x1e81, 0x0fff }, { 0x0500, 0x1e83, 0x0fff }, { 0x8900, 0x1e94, 0x5001 }, { 0x8900, 0x1e8c, 0x4001 }, { 0x8900, 0x1e88, 0x3001 }, { 0x8900, 0x1e86, 0x2001 }, { 0x0500, 0x1e85, 0x0fff }, { 0x0500, 0x1e87, 0x0fff }, { 0x8900, 0x1e8a, 0x2001 }, { 0x0500, 0x1e89, 0x0fff }, { 0x0500, 0x1e8b, 0x0fff }, { 0x8900, 0x1e90, 0x3001 }, { 0x8900, 0x1e8e, 0x2001 }, { 0x0500, 0x1e8d, 0x0fff }, { 0x0500, 0x1e8f, 0x0fff }, { 0x8900, 0x1e92, 0x2001 }, { 0x0500, 0x1e91, 0x0fff }, { 0x0500, 0x1e93, 0x0fff }, { 0x8900, 0x1ea0, 0x4001 }, { 0x8500, 0x1e98, 0x3000 }, { 0x8500, 0x1e96, 0x2000 }, { 0x0500, 0x1e95, 0x0fff }, { 0x0500, 0x1e97, 0x0000 }, { 0x8500, 0x1e9a, 0x2000 }, { 0x0500, 0x1e99, 0x0000 }, { 0x0500, 0x1e9b, 0x0fc5 }, { 0x8900, 0x1ea4, 0x3001 }, { 0x8900, 0x1ea2, 0x2001 }, { 0x0500, 0x1ea1, 0x0fff }, { 0x0500, 0x1ea3, 0x0fff }, { 0x8900, 0x1ea6, 0x2001 }, { 0x0500, 0x1ea5, 0x0fff }, { 0x0500, 0x1ea7, 0x0fff }, { 0x8900, 0x1ee8, 0x7001 }, { 0x8900, 0x1ec8, 0x6001 }, { 0x8900, 0x1eb8, 0x5001 }, { 0x8900, 0x1eb0, 0x4001 }, { 0x8900, 0x1eac, 0x3001 }, { 0x8900, 0x1eaa, 0x2001 }, { 0x0500, 0x1ea9, 0x0fff }, { 0x0500, 0x1eab, 0x0fff }, { 0x8900, 0x1eae, 0x2001 }, { 0x0500, 0x1ead, 0x0fff }, { 0x0500, 0x1eaf, 0x0fff }, { 0x8900, 0x1eb4, 0x3001 }, { 0x8900, 0x1eb2, 0x2001 }, { 0x0500, 0x1eb1, 0x0fff }, { 0x0500, 0x1eb3, 0x0fff }, { 0x8900, 0x1eb6, 0x2001 }, { 0x0500, 0x1eb5, 0x0fff }, { 0x0500, 0x1eb7, 0x0fff }, { 0x8900, 0x1ec0, 0x4001 }, { 0x8900, 0x1ebc, 0x3001 }, { 0x8900, 0x1eba, 0x2001 }, { 0x0500, 0x1eb9, 0x0fff }, { 0x0500, 0x1ebb, 0x0fff }, { 0x8900, 0x1ebe, 0x2001 }, { 0x0500, 0x1ebd, 0x0fff }, { 0x0500, 0x1ebf, 0x0fff }, { 0x8900, 0x1ec4, 0x3001 }, { 0x8900, 0x1ec2, 0x2001 }, { 0x0500, 0x1ec1, 0x0fff }, { 0x0500, 0x1ec3, 0x0fff }, { 0x8900, 0x1ec6, 0x2001 }, { 0x0500, 0x1ec5, 0x0fff }, { 0x0500, 0x1ec7, 0x0fff }, { 0x8900, 0x1ed8, 0x5001 }, { 0x8900, 0x1ed0, 0x4001 }, { 0x8900, 0x1ecc, 0x3001 }, { 0x8900, 0x1eca, 0x2001 }, { 0x0500, 0x1ec9, 0x0fff }, { 0x0500, 0x1ecb, 0x0fff }, { 0x8900, 0x1ece, 0x2001 }, { 0x0500, 0x1ecd, 0x0fff }, { 0x0500, 0x1ecf, 0x0fff }, { 0x8900, 0x1ed4, 0x3001 }, { 0x8900, 0x1ed2, 0x2001 }, { 0x0500, 0x1ed1, 0x0fff }, { 0x0500, 0x1ed3, 0x0fff }, { 0x8900, 0x1ed6, 0x2001 }, { 0x0500, 0x1ed5, 0x0fff }, { 0x0500, 0x1ed7, 0x0fff }, { 0x8900, 0x1ee0, 0x4001 }, { 0x8900, 0x1edc, 0x3001 }, { 0x8900, 0x1eda, 0x2001 }, { 0x0500, 0x1ed9, 0x0fff }, { 0x0500, 0x1edb, 0x0fff }, { 0x8900, 0x1ede, 0x2001 }, { 0x0500, 0x1edd, 0x0fff }, { 0x0500, 0x1edf, 0x0fff }, { 0x8900, 0x1ee4, 0x3001 }, { 0x8900, 0x1ee2, 0x2001 }, { 0x0500, 0x1ee1, 0x0fff }, { 0x0500, 0x1ee3, 0x0fff }, { 0x8900, 0x1ee6, 0x2001 }, { 0x0500, 0x1ee5, 0x0fff }, { 0x0500, 0x1ee7, 0x0fff }, { 0x8900, 0x1f0e, 0x6ff8 }, { 0x8900, 0x1ef8, 0x5001 }, { 0x8900, 0x1ef0, 0x4001 }, { 0x8900, 0x1eec, 0x3001 }, { 0x8900, 0x1eea, 0x2001 }, { 0x0500, 0x1ee9, 0x0fff }, { 0x0500, 0x1eeb, 0x0fff }, { 0x8900, 0x1eee, 0x2001 }, { 0x0500, 0x1eed, 0x0fff }, { 0x0500, 0x1eef, 0x0fff }, { 0x8900, 0x1ef4, 0x3001 }, { 0x8900, 0x1ef2, 0x2001 }, { 0x0500, 0x1ef1, 0x0fff }, { 0x0500, 0x1ef3, 0x0fff }, { 0x8900, 0x1ef6, 0x2001 }, { 0x0500, 0x1ef5, 0x0fff }, { 0x0500, 0x1ef7, 0x0fff }, { 0x8500, 0x1f06, 0x4008 }, { 0x8500, 0x1f02, 0x3008 }, { 0x8500, 0x1f00, 0x2008 }, { 0x0500, 0x1ef9, 0x0fff }, { 0x0500, 0x1f01, 0x0008 }, { 0x8500, 0x1f04, 0x2008 }, { 0x0500, 0x1f03, 0x0008 }, { 0x0500, 0x1f05, 0x0008 }, { 0x8900, 0x1f0a, 0x3ff8 }, { 0x8900, 0x1f08, 0x2ff8 }, { 0x0500, 0x1f07, 0x0008 }, { 0x0900, 0x1f09, 0x0ff8 }, { 0x8900, 0x1f0c, 0x2ff8 }, { 0x0900, 0x1f0b, 0x0ff8 }, { 0x0900, 0x1f0d, 0x0ff8 }, { 0x8500, 0x1f22, 0x5008 }, { 0x8900, 0x1f18, 0x4ff8 }, { 0x8500, 0x1f12, 0x3008 }, { 0x8500, 0x1f10, 0x2008 }, { 0x0900, 0x1f0f, 0x0ff8 }, { 0x0500, 0x1f11, 0x0008 }, { 0x8500, 0x1f14, 0x2008 }, { 0x0500, 0x1f13, 0x0008 }, { 0x0500, 0x1f15, 0x0008 }, { 0x8900, 0x1f1c, 0x3ff8 }, { 0x8900, 0x1f1a, 0x2ff8 }, { 0x0900, 0x1f19, 0x0ff8 }, { 0x0900, 0x1f1b, 0x0ff8 }, { 0x8500, 0x1f20, 0x2008 }, { 0x0900, 0x1f1d, 0x0ff8 }, { 0x0500, 0x1f21, 0x0008 }, { 0x8900, 0x1f2a, 0x4ff8 }, { 0x8500, 0x1f26, 0x3008 }, { 0x8500, 0x1f24, 0x2008 }, { 0x0500, 0x1f23, 0x0008 }, { 0x0500, 0x1f25, 0x0008 }, { 0x8900, 0x1f28, 0x2ff8 }, { 0x0500, 0x1f27, 0x0008 }, { 0x0900, 0x1f29, 0x0ff8 }, { 0x8900, 0x1f2e, 0x3ff8 }, { 0x8900, 0x1f2c, 0x2ff8 }, { 0x0900, 0x1f2b, 0x0ff8 }, { 0x0900, 0x1f2d, 0x0ff8 }, { 0x8500, 0x1f30, 0x2008 }, { 0x0900, 0x1f2f, 0x0ff8 }, { 0x0500, 0x1f31, 0x0008 }, { 0x9800, 0x1fbd, 0x8000 }, { 0x8500, 0x1f7a, 0x7070 }, { 0x8500, 0x1f56, 0x6000 }, { 0x8500, 0x1f42, 0x5008 }, { 0x8900, 0x1f3a, 0x4ff8 }, { 0x8500, 0x1f36, 0x3008 }, { 0x8500, 0x1f34, 0x2008 }, { 0x0500, 0x1f33, 0x0008 }, { 0x0500, 0x1f35, 0x0008 }, { 0x8900, 0x1f38, 0x2ff8 }, { 0x0500, 0x1f37, 0x0008 }, { 0x0900, 0x1f39, 0x0ff8 }, { 0x8900, 0x1f3e, 0x3ff8 }, { 0x8900, 0x1f3c, 0x2ff8 }, { 0x0900, 0x1f3b, 0x0ff8 }, { 0x0900, 0x1f3d, 0x0ff8 }, { 0x8500, 0x1f40, 0x2008 }, { 0x0900, 0x1f3f, 0x0ff8 }, { 0x0500, 0x1f41, 0x0008 }, { 0x8900, 0x1f4c, 0x4ff8 }, { 0x8900, 0x1f48, 0x3ff8 }, { 0x8500, 0x1f44, 0x2008 }, { 0x0500, 0x1f43, 0x0008 }, { 0x0500, 0x1f45, 0x0008 }, { 0x8900, 0x1f4a, 0x2ff8 }, { 0x0900, 0x1f49, 0x0ff8 }, { 0x0900, 0x1f4b, 0x0ff8 }, { 0x8500, 0x1f52, 0x3000 }, { 0x8500, 0x1f50, 0x2000 }, { 0x0900, 0x1f4d, 0x0ff8 }, { 0x0500, 0x1f51, 0x0008 }, { 0x8500, 0x1f54, 0x2000 }, { 0x0500, 0x1f53, 0x0008 }, { 0x0500, 0x1f55, 0x0008 }, { 0x8900, 0x1f6a, 0x5ff8 }, { 0x8500, 0x1f62, 0x4008 }, { 0x8900, 0x1f5d, 0x3ff8 }, { 0x8900, 0x1f59, 0x2ff8 }, { 0x0500, 0x1f57, 0x0008 }, { 0x0900, 0x1f5b, 0x0ff8 }, { 0x8500, 0x1f60, 0x2008 }, { 0x0900, 0x1f5f, 0x0ff8 }, { 0x0500, 0x1f61, 0x0008 }, { 0x8500, 0x1f66, 0x3008 }, { 0x8500, 0x1f64, 0x2008 }, { 0x0500, 0x1f63, 0x0008 }, { 0x0500, 0x1f65, 0x0008 }, { 0x8900, 0x1f68, 0x2ff8 }, { 0x0500, 0x1f67, 0x0008 }, { 0x0900, 0x1f69, 0x0ff8 }, { 0x8500, 0x1f72, 0x4056 }, { 0x8900, 0x1f6e, 0x3ff8 }, { 0x8900, 0x1f6c, 0x2ff8 }, { 0x0900, 0x1f6b, 0x0ff8 }, { 0x0900, 0x1f6d, 0x0ff8 }, { 0x8500, 0x1f70, 0x204a }, { 0x0900, 0x1f6f, 0x0ff8 }, { 0x0500, 0x1f71, 0x004a }, { 0x8500, 0x1f76, 0x3064 }, { 0x8500, 0x1f74, 0x2056 }, { 0x0500, 0x1f73, 0x0056 }, { 0x0500, 0x1f75, 0x0056 }, { 0x8500, 0x1f78, 0x2080 }, { 0x0500, 0x1f77, 0x0064 }, { 0x0500, 0x1f79, 0x0080 }, { 0x8800, 0x1f9c, 0x6000 }, { 0x8800, 0x1f8c, 0x5000 }, { 0x8500, 0x1f84, 0x4008 }, { 0x8500, 0x1f80, 0x3008 }, { 0x8500, 0x1f7c, 0x207e }, { 0x0500, 0x1f7b, 0x0070 }, { 0x0500, 0x1f7d, 0x007e }, { 0x8500, 0x1f82, 0x2008 }, { 0x0500, 0x1f81, 0x0008 }, { 0x0500, 0x1f83, 0x0008 }, { 0x8800, 0x1f88, 0x3000 }, { 0x8500, 0x1f86, 0x2008 }, { 0x0500, 0x1f85, 0x0008 }, { 0x0500, 0x1f87, 0x0008 }, { 0x8800, 0x1f8a, 0x2000 }, { 0x0800, 0x1f89, 0x0000 }, { 0x0800, 0x1f8b, 0x0000 }, { 0x8500, 0x1f94, 0x4008 }, { 0x8500, 0x1f90, 0x3008 }, { 0x8800, 0x1f8e, 0x2000 }, { 0x0800, 0x1f8d, 0x0000 }, { 0x0800, 0x1f8f, 0x0000 }, { 0x8500, 0x1f92, 0x2008 }, { 0x0500, 0x1f91, 0x0008 }, { 0x0500, 0x1f93, 0x0008 }, { 0x8800, 0x1f98, 0x3000 }, { 0x8500, 0x1f96, 0x2008 }, { 0x0500, 0x1f95, 0x0008 }, { 0x0500, 0x1f97, 0x0008 }, { 0x8800, 0x1f9a, 0x2000 }, { 0x0800, 0x1f99, 0x0000 }, { 0x0800, 0x1f9b, 0x0000 }, { 0x8800, 0x1fac, 0x5000 }, { 0x8500, 0x1fa4, 0x4008 }, { 0x8500, 0x1fa0, 0x3008 }, { 0x8800, 0x1f9e, 0x2000 }, { 0x0800, 0x1f9d, 0x0000 }, { 0x0800, 0x1f9f, 0x0000 }, { 0x8500, 0x1fa2, 0x2008 }, { 0x0500, 0x1fa1, 0x0008 }, { 0x0500, 0x1fa3, 0x0008 }, { 0x8800, 0x1fa8, 0x3000 }, { 0x8500, 0x1fa6, 0x2008 }, { 0x0500, 0x1fa5, 0x0008 }, { 0x0500, 0x1fa7, 0x0008 }, { 0x8800, 0x1faa, 0x2000 }, { 0x0800, 0x1fa9, 0x0000 }, { 0x0800, 0x1fab, 0x0000 }, { 0x8500, 0x1fb4, 0x4000 }, { 0x8500, 0x1fb0, 0x3008 }, { 0x8800, 0x1fae, 0x2000 }, { 0x0800, 0x1fad, 0x0000 }, { 0x0800, 0x1faf, 0x0000 }, { 0x8500, 0x1fb2, 0x2000 }, { 0x0500, 0x1fb1, 0x0008 }, { 0x0500, 0x1fb3, 0x0009 }, { 0x8900, 0x1fb9, 0x3ff8 }, { 0x8500, 0x1fb7, 0x2000 }, { 0x0500, 0x1fb6, 0x0000 }, { 0x0900, 0x1fb8, 0x0ff8 }, { 0x8900, 0x1fbb, 0x2fb6 }, { 0x0900, 0x1fba, 0x0fb6 }, { 0x0800, 0x1fbc, 0x0000 }, { 0x9d00, 0x2005, 0x7000 }, { 0x8500, 0x1fe1, 0x6008 }, { 0x9800, 0x1fce, 0x5000 }, { 0x8500, 0x1fc6, 0x4000 }, { 0x9800, 0x1fc1, 0x3000 }, { 0x9800, 0x1fbf, 0x2000 }, { 0x0500, 0x1fbe, 0x0000 }, { 0x1800, 0x1fc0, 0x0000 }, { 0x8500, 0x1fc3, 0x2009 }, { 0x0500, 0x1fc2, 0x0000 }, { 0x0500, 0x1fc4, 0x0000 }, { 0x8900, 0x1fca, 0x3faa }, { 0x8900, 0x1fc8, 0x2faa }, { 0x0500, 0x1fc7, 0x0000 }, { 0x0900, 0x1fc9, 0x0faa }, { 0x8800, 0x1fcc, 0x2000 }, { 0x0900, 0x1fcb, 0x0faa }, { 0x1800, 0x1fcd, 0x0000 }, { 0x8900, 0x1fd8, 0x4ff8 }, { 0x8500, 0x1fd2, 0x3000 }, { 0x8500, 0x1fd0, 0x2008 }, { 0x1800, 0x1fcf, 0x0000 }, { 0x0500, 0x1fd1, 0x0008 }, { 0x8500, 0x1fd6, 0x2000 }, { 0x0500, 0x1fd3, 0x0000 }, { 0x0500, 0x1fd7, 0x0000 }, { 0x9800, 0x1fdd, 0x3000 }, { 0x8900, 0x1fda, 0x2f9c }, { 0x0900, 0x1fd9, 0x0ff8 }, { 0x0900, 0x1fdb, 0x0f9c }, { 0x9800, 0x1fdf, 0x2000 }, { 0x1800, 0x1fde, 0x0000 }, { 0x0500, 0x1fe0, 0x0008 }, { 0x8500, 0x1ff3, 0x5009 }, { 0x8900, 0x1fe9, 0x4ff8 }, { 0x8500, 0x1fe5, 0x3007 }, { 0x8500, 0x1fe3, 0x2000 }, { 0x0500, 0x1fe2, 0x0000 }, { 0x0500, 0x1fe4, 0x0000 }, { 0x8500, 0x1fe7, 0x2000 }, { 0x0500, 0x1fe6, 0x0000 }, { 0x0900, 0x1fe8, 0x0ff8 }, { 0x9800, 0x1fed, 0x3000 }, { 0x8900, 0x1feb, 0x2f90 }, { 0x0900, 0x1fea, 0x0f90 }, { 0x0900, 0x1fec, 0x0ff9 }, { 0x9800, 0x1fef, 0x2000 }, { 0x1800, 0x1fee, 0x0000 }, { 0x0500, 0x1ff2, 0x0000 }, { 0x8800, 0x1ffc, 0x4000 }, { 0x8900, 0x1ff8, 0x3f80 }, { 0x8500, 0x1ff6, 0x2000 }, { 0x0500, 0x1ff4, 0x0000 }, { 0x0500, 0x1ff7, 0x0000 }, { 0x8900, 0x1ffa, 0x2f82 }, { 0x0900, 0x1ff9, 0x0f80 }, { 0x0900, 0x1ffb, 0x0f82 }, { 0x9d00, 0x2001, 0x3000 }, { 0x9800, 0x1ffe, 0x2000 }, { 0x1800, 0x1ffd, 0x0000 }, { 0x1d00, 0x2000, 0x0000 }, { 0x9d00, 0x2003, 0x2000 }, { 0x1d00, 0x2002, 0x0000 }, { 0x1d00, 0x2004, 0x0000 }, { 0x9500, 0x2025, 0x6000 }, { 0x9100, 0x2015, 0x5000 }, { 0x8100, 0x200d, 0x4000 }, { 0x9d00, 0x2009, 0x3000 }, { 0x9d00, 0x2007, 0x2000 }, { 0x1d00, 0x2006, 0x0000 }, { 0x1d00, 0x2008, 0x0000 }, { 0x9d00, 0x200b, 0x2000 }, { 0x1d00, 0x200a, 0x0000 }, { 0x0100, 0x200c, 0x0000 }, { 0x9100, 0x2011, 0x3000 }, { 0x8100, 0x200f, 0x2000 }, { 0x0100, 0x200e, 0x0000 }, { 0x1100, 0x2010, 0x0000 }, { 0x9100, 0x2013, 0x2000 }, { 0x1100, 0x2012, 0x0000 }, { 0x1100, 0x2014, 0x0000 }, { 0x9300, 0x201d, 0x4000 }, { 0x9300, 0x2019, 0x3000 }, { 0x9500, 0x2017, 0x2000 }, { 0x1500, 0x2016, 0x0000 }, { 0x1400, 0x2018, 0x0000 }, { 0x9400, 0x201b, 0x2000 }, { 0x1600, 0x201a, 0x0000 }, { 0x1400, 0x201c, 0x0000 }, { 0x9500, 0x2021, 0x3000 }, { 0x9400, 0x201f, 0x2000 }, { 0x1600, 0x201e, 0x0000 }, { 0x1500, 0x2020, 0x0000 }, { 0x9500, 0x2023, 0x2000 }, { 0x1500, 0x2022, 0x0000 }, { 0x1500, 0x2024, 0x0000 }, { 0x9500, 0x2035, 0x5000 }, { 0x8100, 0x202d, 0x4000 }, { 0x9c00, 0x2029, 0x3000 }, { 0x9500, 0x2027, 0x2000 }, { 0x1500, 0x2026, 0x0000 }, { 0x1b00, 0x2028, 0x0000 }, { 0x8100, 0x202b, 0x2000 }, { 0x0100, 0x202a, 0x0000 }, { 0x0100, 0x202c, 0x0000 }, { 0x9500, 0x2031, 0x3000 }, { 0x9d00, 0x202f, 0x2000 }, { 0x0100, 0x202e, 0x0000 }, { 0x1500, 0x2030, 0x0000 }, { 0x9500, 0x2033, 0x2000 }, { 0x1500, 0x2032, 0x0000 }, { 0x1500, 0x2034, 0x0000 }, { 0x9500, 0x203d, 0x4000 }, { 0x9400, 0x2039, 0x3000 }, { 0x9500, 0x2037, 0x2000 }, { 0x1500, 0x2036, 0x0000 }, { 0x1500, 0x2038, 0x0000 }, { 0x9500, 0x203b, 0x2000 }, { 0x1300, 0x203a, 0x0000 }, { 0x1500, 0x203c, 0x0000 }, { 0x9500, 0x2041, 0x3000 }, { 0x9000, 0x203f, 0x2000 }, { 0x1500, 0x203e, 0x0000 }, { 0x1000, 0x2040, 0x0000 }, { 0x9500, 0x2043, 0x2000 }, { 0x1500, 0x2042, 0x0000 }, { 0x1900, 0x2044, 0x0000 }, { 0x9900, 0x21ae, 0x9000 }, { 0x8900, 0x211a, 0x8000 }, { 0x9700, 0x20a7, 0x7000 }, { 0x8f00, 0x2076, 0x6000 }, { 0x9500, 0x2057, 0x5000 }, { 0x9500, 0x204d, 0x4000 }, { 0x9500, 0x2049, 0x3000 }, { 0x9500, 0x2047, 0x2000 }, { 0x1200, 0x2046, 0x0000 }, { 0x1500, 0x2048, 0x0000 }, { 0x9500, 0x204b, 0x2000 }, { 0x1500, 0x204a, 0x0000 }, { 0x1500, 0x204c, 0x0000 }, { 0x9500, 0x2051, 0x3000 }, { 0x9500, 0x204f, 0x2000 }, { 0x1500, 0x204e, 0x0000 }, { 0x1500, 0x2050, 0x0000 }, { 0x9500, 0x2053, 0x2000 }, { 0x1900, 0x2052, 0x0000 }, { 0x1000, 0x2054, 0x0000 }, { 0x8100, 0x206c, 0x4000 }, { 0x8100, 0x2062, 0x3000 }, { 0x8100, 0x2060, 0x2000 }, { 0x1d00, 0x205f, 0x0000 }, { 0x0100, 0x2061, 0x0000 }, { 0x8100, 0x206a, 0x2000 }, { 0x0100, 0x2063, 0x0000 }, { 0x0100, 0x206b, 0x0000 }, { 0x8f00, 0x2070, 0x3000 }, { 0x8100, 0x206e, 0x2000 }, { 0x0100, 0x206d, 0x0000 }, { 0x0100, 0x206f, 0x0000 }, { 0x8f00, 0x2074, 0x2000 }, { 0x0500, 0x2071, 0x0000 }, { 0x0f00, 0x2075, 0x0000 }, { 0x8f00, 0x2086, 0x5000 }, { 0x9200, 0x207e, 0x4000 }, { 0x9900, 0x207a, 0x3000 }, { 0x8f00, 0x2078, 0x2000 }, { 0x0f00, 0x2077, 0x0000 }, { 0x0f00, 0x2079, 0x0000 }, { 0x9900, 0x207c, 0x2000 }, { 0x1900, 0x207b, 0x0000 }, { 0x1600, 0x207d, 0x0000 }, { 0x8f00, 0x2082, 0x3000 }, { 0x8f00, 0x2080, 0x2000 }, { 0x0500, 0x207f, 0x0000 }, { 0x0f00, 0x2081, 0x0000 }, { 0x8f00, 0x2084, 0x2000 }, { 0x0f00, 0x2083, 0x0000 }, { 0x0f00, 0x2085, 0x0000 }, { 0x9200, 0x208e, 0x4000 }, { 0x9900, 0x208a, 0x3000 }, { 0x8f00, 0x2088, 0x2000 }, { 0x0f00, 0x2087, 0x0000 }, { 0x0f00, 0x2089, 0x0000 }, { 0x9900, 0x208c, 0x2000 }, { 0x1900, 0x208b, 0x0000 }, { 0x1600, 0x208d, 0x0000 }, { 0x9700, 0x20a3, 0x3000 }, { 0x9700, 0x20a1, 0x2000 }, { 0x1700, 0x20a0, 0x0000 }, { 0x1700, 0x20a2, 0x0000 }, { 0x9700, 0x20a5, 0x2000 }, { 0x1700, 0x20a4, 0x0000 }, { 0x1700, 0x20a6, 0x0000 }, { 0x8c00, 0x20e5, 0x6000 }, { 0x8c00, 0x20d5, 0x5000 }, { 0x9700, 0x20af, 0x4000 }, { 0x9700, 0x20ab, 0x3000 }, { 0x9700, 0x20a9, 0x2000 }, { 0x1700, 0x20a8, 0x0000 }, { 0x1700, 0x20aa, 0x0000 }, { 0x9700, 0x20ad, 0x2000 }, { 0x1700, 0x20ac, 0x0000 }, { 0x1700, 0x20ae, 0x0000 }, { 0x8c00, 0x20d1, 0x3000 }, { 0x9700, 0x20b1, 0x2000 }, { 0x1700, 0x20b0, 0x0000 }, { 0x0c00, 0x20d0, 0x0000 }, { 0x8c00, 0x20d3, 0x2000 }, { 0x0c00, 0x20d2, 0x0000 }, { 0x0c00, 0x20d4, 0x0000 }, { 0x8b00, 0x20dd, 0x4000 }, { 0x8c00, 0x20d9, 0x3000 }, { 0x8c00, 0x20d7, 0x2000 }, { 0x0c00, 0x20d6, 0x0000 }, { 0x0c00, 0x20d8, 0x0000 }, { 0x8c00, 0x20db, 0x2000 }, { 0x0c00, 0x20da, 0x0000 }, { 0x0c00, 0x20dc, 0x0000 }, { 0x8c00, 0x20e1, 0x3000 }, { 0x8b00, 0x20df, 0x2000 }, { 0x0b00, 0x20de, 0x0000 }, { 0x0b00, 0x20e0, 0x0000 }, { 0x8b00, 0x20e3, 0x2000 }, { 0x0b00, 0x20e2, 0x0000 }, { 0x0b00, 0x20e4, 0x0000 }, { 0x8500, 0x210a, 0x5000 }, { 0x8900, 0x2102, 0x4000 }, { 0x8c00, 0x20e9, 0x3000 }, { 0x8c00, 0x20e7, 0x2000 }, { 0x0c00, 0x20e6, 0x0000 }, { 0x0c00, 0x20e8, 0x0000 }, { 0x9a00, 0x2100, 0x2000 }, { 0x0c00, 0x20ea, 0x0000 }, { 0x1a00, 0x2101, 0x0000 }, { 0x9a00, 0x2106, 0x3000 }, { 0x9a00, 0x2104, 0x2000 }, { 0x1a00, 0x2103, 0x0000 }, { 0x1a00, 0x2105, 0x0000 }, { 0x9a00, 0x2108, 0x2000 }, { 0x0900, 0x2107, 0x0000 }, { 0x1a00, 0x2109, 0x0000 }, { 0x8900, 0x2112, 0x4000 }, { 0x8500, 0x210e, 0x3000 }, { 0x8900, 0x210c, 0x2000 }, { 0x0900, 0x210b, 0x0000 }, { 0x0900, 0x210d, 0x0000 }, { 0x8900, 0x2110, 0x2000 }, { 0x0500, 0x210f, 0x0000 }, { 0x0900, 0x2111, 0x0000 }, { 0x9a00, 0x2116, 0x3000 }, { 0x9a00, 0x2114, 0x2000 }, { 0x0500, 0x2113, 0x0000 }, { 0x0900, 0x2115, 0x0000 }, { 0x9a00, 0x2118, 0x2000 }, { 0x1a00, 0x2117, 0x0000 }, { 0x0900, 0x2119, 0x0000 }, { 0x8e00, 0x2162, 0x7000 }, { 0x9a00, 0x213a, 0x6000 }, { 0x8900, 0x212a, 0x5000 }, { 0x9a00, 0x2122, 0x4000 }, { 0x9a00, 0x211e, 0x3000 }, { 0x8900, 0x211c, 0x2000 }, { 0x0900, 0x211b, 0x0000 }, { 0x0900, 0x211d, 0x0000 }, { 0x9a00, 0x2120, 0x2000 }, { 0x1a00, 0x211f, 0x0000 }, { 0x1a00, 0x2121, 0x0000 }, { 0x8900, 0x2126, 0x3000 }, { 0x8900, 0x2124, 0x2000 }, { 0x1a00, 0x2123, 0x0000 }, { 0x1a00, 0x2125, 0x0000 }, { 0x8900, 0x2128, 0x2000 }, { 0x1a00, 0x2127, 0x0000 }, { 0x1a00, 0x2129, 0x0000 }, { 0x9a00, 0x2132, 0x4000 }, { 0x9a00, 0x212e, 0x3000 }, { 0x8900, 0x212c, 0x2000 }, { 0x0900, 0x212b, 0x0000 }, { 0x0900, 0x212d, 0x0000 }, { 0x8900, 0x2130, 0x2000 }, { 0x0500, 0x212f, 0x0000 }, { 0x0900, 0x2131, 0x0000 }, { 0x8700, 0x2136, 0x3000 }, { 0x8500, 0x2134, 0x2000 }, { 0x0900, 0x2133, 0x0000 }, { 0x0700, 0x2135, 0x0000 }, { 0x8700, 0x2138, 0x2000 }, { 0x0700, 0x2137, 0x0000 }, { 0x0500, 0x2139, 0x0000 }, { 0x9900, 0x214b, 0x5000 }, { 0x9900, 0x2143, 0x4000 }, { 0x8900, 0x213f, 0x3000 }, { 0x8500, 0x213d, 0x2000 }, { 0x1a00, 0x213b, 0x0000 }, { 0x0900, 0x213e, 0x0000 }, { 0x9900, 0x2141, 0x2000 }, { 0x1900, 0x2140, 0x0000 }, { 0x1900, 0x2142, 0x0000 }, { 0x8500, 0x2147, 0x3000 }, { 0x8900, 0x2145, 0x2000 }, { 0x1900, 0x2144, 0x0000 }, { 0x0500, 0x2146, 0x0000 }, { 0x8500, 0x2149, 0x2000 }, { 0x0500, 0x2148, 0x0000 }, { 0x1a00, 0x214a, 0x0000 }, { 0x8f00, 0x215a, 0x4000 }, { 0x8f00, 0x2156, 0x3000 }, { 0x8f00, 0x2154, 0x2000 }, { 0x0f00, 0x2153, 0x0000 }, { 0x0f00, 0x2155, 0x0000 }, { 0x8f00, 0x2158, 0x2000 }, { 0x0f00, 0x2157, 0x0000 }, { 0x0f00, 0x2159, 0x0000 }, { 0x8f00, 0x215e, 0x3000 }, { 0x8f00, 0x215c, 0x2000 }, { 0x0f00, 0x215b, 0x0000 }, { 0x0f00, 0x215d, 0x0000 }, { 0x8e00, 0x2160, 0x2000 }, { 0x0f00, 0x215f, 0x0000 }, { 0x0e00, 0x2161, 0x0000 }, { 0x8e00, 0x2182, 0x6000 }, { 0x8e00, 0x2172, 0x5000 }, { 0x8e00, 0x216a, 0x4000 }, { 0x8e00, 0x2166, 0x3000 }, { 0x8e00, 0x2164, 0x2000 }, { 0x0e00, 0x2163, 0x0000 }, { 0x0e00, 0x2165, 0x0000 }, { 0x8e00, 0x2168, 0x2000 }, { 0x0e00, 0x2167, 0x0000 }, { 0x0e00, 0x2169, 0x0000 }, { 0x8e00, 0x216e, 0x3000 }, { 0x8e00, 0x216c, 0x2000 }, { 0x0e00, 0x216b, 0x0000 }, { 0x0e00, 0x216d, 0x0000 }, { 0x8e00, 0x2170, 0x2000 }, { 0x0e00, 0x216f, 0x0000 }, { 0x0e00, 0x2171, 0x0000 }, { 0x8e00, 0x217a, 0x4000 }, { 0x8e00, 0x2176, 0x3000 }, { 0x8e00, 0x2174, 0x2000 }, { 0x0e00, 0x2173, 0x0000 }, { 0x0e00, 0x2175, 0x0000 }, { 0x8e00, 0x2178, 0x2000 }, { 0x0e00, 0x2177, 0x0000 }, { 0x0e00, 0x2179, 0x0000 }, { 0x8e00, 0x217e, 0x3000 }, { 0x8e00, 0x217c, 0x2000 }, { 0x0e00, 0x217b, 0x0000 }, { 0x0e00, 0x217d, 0x0000 }, { 0x8e00, 0x2180, 0x2000 }, { 0x0e00, 0x217f, 0x0000 }, { 0x0e00, 0x2181, 0x0000 }, { 0x9a00, 0x219e, 0x5000 }, { 0x9a00, 0x2196, 0x4000 }, { 0x9900, 0x2192, 0x3000 }, { 0x9900, 0x2190, 0x2000 }, { 0x0e00, 0x2183, 0x0000 }, { 0x1900, 0x2191, 0x0000 }, { 0x9900, 0x2194, 0x2000 }, { 0x1900, 0x2193, 0x0000 }, { 0x1a00, 0x2195, 0x0000 }, { 0x9900, 0x219a, 0x3000 }, { 0x9a00, 0x2198, 0x2000 }, { 0x1a00, 0x2197, 0x0000 }, { 0x1a00, 0x2199, 0x0000 }, { 0x9a00, 0x219c, 0x2000 }, { 0x1900, 0x219b, 0x0000 }, { 0x1a00, 0x219d, 0x0000 }, { 0x9900, 0x21a6, 0x4000 }, { 0x9a00, 0x21a2, 0x3000 }, { 0x9900, 0x21a0, 0x2000 }, { 0x1a00, 0x219f, 0x0000 }, { 0x1a00, 0x21a1, 0x0000 }, { 0x9a00, 0x21a4, 0x2000 }, { 0x1900, 0x21a3, 0x0000 }, { 0x1a00, 0x21a5, 0x0000 }, { 0x9a00, 0x21aa, 0x3000 }, { 0x9a00, 0x21a8, 0x2000 }, { 0x1a00, 0x21a7, 0x0000 }, { 0x1a00, 0x21a9, 0x0000 }, { 0x9a00, 0x21ac, 0x2000 }, { 0x1a00, 0x21ab, 0x0000 }, { 0x1a00, 0x21ad, 0x0000 }, { 0x9900, 0x222e, 0x8000 }, { 0x9a00, 0x21ee, 0x7000 }, { 0x9900, 0x21ce, 0x6000 }, { 0x9a00, 0x21be, 0x5000 }, { 0x9a00, 0x21b6, 0x4000 }, { 0x9a00, 0x21b2, 0x3000 }, { 0x9a00, 0x21b0, 0x2000 }, { 0x1a00, 0x21af, 0x0000 }, { 0x1a00, 0x21b1, 0x0000 }, { 0x9a00, 0x21b4, 0x2000 }, { 0x1a00, 0x21b3, 0x0000 }, { 0x1a00, 0x21b5, 0x0000 }, { 0x9a00, 0x21ba, 0x3000 }, { 0x9a00, 0x21b8, 0x2000 }, { 0x1a00, 0x21b7, 0x0000 }, { 0x1a00, 0x21b9, 0x0000 }, { 0x9a00, 0x21bc, 0x2000 }, { 0x1a00, 0x21bb, 0x0000 }, { 0x1a00, 0x21bd, 0x0000 }, { 0x9a00, 0x21c6, 0x4000 }, { 0x9a00, 0x21c2, 0x3000 }, { 0x9a00, 0x21c0, 0x2000 }, { 0x1a00, 0x21bf, 0x0000 }, { 0x1a00, 0x21c1, 0x0000 }, { 0x9a00, 0x21c4, 0x2000 }, { 0x1a00, 0x21c3, 0x0000 }, { 0x1a00, 0x21c5, 0x0000 }, { 0x9a00, 0x21ca, 0x3000 }, { 0x9a00, 0x21c8, 0x2000 }, { 0x1a00, 0x21c7, 0x0000 }, { 0x1a00, 0x21c9, 0x0000 }, { 0x9a00, 0x21cc, 0x2000 }, { 0x1a00, 0x21cb, 0x0000 }, { 0x1a00, 0x21cd, 0x0000 }, { 0x9a00, 0x21de, 0x5000 }, { 0x9a00, 0x21d6, 0x4000 }, { 0x9900, 0x21d2, 0x3000 }, { 0x9a00, 0x21d0, 0x2000 }, { 0x1900, 0x21cf, 0x0000 }, { 0x1a00, 0x21d1, 0x0000 }, { 0x9900, 0x21d4, 0x2000 }, { 0x1a00, 0x21d3, 0x0000 }, { 0x1a00, 0x21d5, 0x0000 }, { 0x9a00, 0x21da, 0x3000 }, { 0x9a00, 0x21d8, 0x2000 }, { 0x1a00, 0x21d7, 0x0000 }, { 0x1a00, 0x21d9, 0x0000 }, { 0x9a00, 0x21dc, 0x2000 }, { 0x1a00, 0x21db, 0x0000 }, { 0x1a00, 0x21dd, 0x0000 }, { 0x9a00, 0x21e6, 0x4000 }, { 0x9a00, 0x21e2, 0x3000 }, { 0x9a00, 0x21e0, 0x2000 }, { 0x1a00, 0x21df, 0x0000 }, { 0x1a00, 0x21e1, 0x0000 }, { 0x9a00, 0x21e4, 0x2000 }, { 0x1a00, 0x21e3, 0x0000 }, { 0x1a00, 0x21e5, 0x0000 }, { 0x9a00, 0x21ea, 0x3000 }, { 0x9a00, 0x21e8, 0x2000 }, { 0x1a00, 0x21e7, 0x0000 }, { 0x1a00, 0x21e9, 0x0000 }, { 0x9a00, 0x21ec, 0x2000 }, { 0x1a00, 0x21eb, 0x0000 }, { 0x1a00, 0x21ed, 0x0000 }, { 0x9900, 0x220e, 0x6000 }, { 0x9900, 0x21fe, 0x5000 }, { 0x9900, 0x21f6, 0x4000 }, { 0x9a00, 0x21f2, 0x3000 }, { 0x9a00, 0x21f0, 0x2000 }, { 0x1a00, 0x21ef, 0x0000 }, { 0x1a00, 0x21f1, 0x0000 }, { 0x9900, 0x21f4, 0x2000 }, { 0x1a00, 0x21f3, 0x0000 }, { 0x1900, 0x21f5, 0x0000 }, { 0x9900, 0x21fa, 0x3000 }, { 0x9900, 0x21f8, 0x2000 }, { 0x1900, 0x21f7, 0x0000 }, { 0x1900, 0x21f9, 0x0000 }, { 0x9900, 0x21fc, 0x2000 }, { 0x1900, 0x21fb, 0x0000 }, { 0x1900, 0x21fd, 0x0000 }, { 0x9900, 0x2206, 0x4000 }, { 0x9900, 0x2202, 0x3000 }, { 0x9900, 0x2200, 0x2000 }, { 0x1900, 0x21ff, 0x0000 }, { 0x1900, 0x2201, 0x0000 }, { 0x9900, 0x2204, 0x2000 }, { 0x1900, 0x2203, 0x0000 }, { 0x1900, 0x2205, 0x0000 }, { 0x9900, 0x220a, 0x3000 }, { 0x9900, 0x2208, 0x2000 }, { 0x1900, 0x2207, 0x0000 }, { 0x1900, 0x2209, 0x0000 }, { 0x9900, 0x220c, 0x2000 }, { 0x1900, 0x220b, 0x0000 }, { 0x1900, 0x220d, 0x0000 }, { 0x9900, 0x221e, 0x5000 }, { 0x9900, 0x2216, 0x4000 }, { 0x9900, 0x2212, 0x3000 }, { 0x9900, 0x2210, 0x2000 }, { 0x1900, 0x220f, 0x0000 }, { 0x1900, 0x2211, 0x0000 }, { 0x9900, 0x2214, 0x2000 }, { 0x1900, 0x2213, 0x0000 }, { 0x1900, 0x2215, 0x0000 }, { 0x9900, 0x221a, 0x3000 }, { 0x9900, 0x2218, 0x2000 }, { 0x1900, 0x2217, 0x0000 }, { 0x1900, 0x2219, 0x0000 }, { 0x9900, 0x221c, 0x2000 }, { 0x1900, 0x221b, 0x0000 }, { 0x1900, 0x221d, 0x0000 }, { 0x9900, 0x2226, 0x4000 }, { 0x9900, 0x2222, 0x3000 }, { 0x9900, 0x2220, 0x2000 }, { 0x1900, 0x221f, 0x0000 }, { 0x1900, 0x2221, 0x0000 }, { 0x9900, 0x2224, 0x2000 }, { 0x1900, 0x2223, 0x0000 }, { 0x1900, 0x2225, 0x0000 }, { 0x9900, 0x222a, 0x3000 }, { 0x9900, 0x2228, 0x2000 }, { 0x1900, 0x2227, 0x0000 }, { 0x1900, 0x2229, 0x0000 }, { 0x9900, 0x222c, 0x2000 }, { 0x1900, 0x222b, 0x0000 }, { 0x1900, 0x222d, 0x0000 }, { 0x9900, 0x226e, 0x7000 }, { 0x9900, 0x224e, 0x6000 }, { 0x9900, 0x223e, 0x5000 }, { 0x9900, 0x2236, 0x4000 }, { 0x9900, 0x2232, 0x3000 }, { 0x9900, 0x2230, 0x2000 }, { 0x1900, 0x222f, 0x0000 }, { 0x1900, 0x2231, 0x0000 }, { 0x9900, 0x2234, 0x2000 }, { 0x1900, 0x2233, 0x0000 }, { 0x1900, 0x2235, 0x0000 }, { 0x9900, 0x223a, 0x3000 }, { 0x9900, 0x2238, 0x2000 }, { 0x1900, 0x2237, 0x0000 }, { 0x1900, 0x2239, 0x0000 }, { 0x9900, 0x223c, 0x2000 }, { 0x1900, 0x223b, 0x0000 }, { 0x1900, 0x223d, 0x0000 }, { 0x9900, 0x2246, 0x4000 }, { 0x9900, 0x2242, 0x3000 }, { 0x9900, 0x2240, 0x2000 }, { 0x1900, 0x223f, 0x0000 }, { 0x1900, 0x2241, 0x0000 }, { 0x9900, 0x2244, 0x2000 }, { 0x1900, 0x2243, 0x0000 }, { 0x1900, 0x2245, 0x0000 }, { 0x9900, 0x224a, 0x3000 }, { 0x9900, 0x2248, 0x2000 }, { 0x1900, 0x2247, 0x0000 }, { 0x1900, 0x2249, 0x0000 }, { 0x9900, 0x224c, 0x2000 }, { 0x1900, 0x224b, 0x0000 }, { 0x1900, 0x224d, 0x0000 }, { 0x9900, 0x225e, 0x5000 }, { 0x9900, 0x2256, 0x4000 }, { 0x9900, 0x2252, 0x3000 }, { 0x9900, 0x2250, 0x2000 }, { 0x1900, 0x224f, 0x0000 }, { 0x1900, 0x2251, 0x0000 }, { 0x9900, 0x2254, 0x2000 }, { 0x1900, 0x2253, 0x0000 }, { 0x1900, 0x2255, 0x0000 }, { 0x9900, 0x225a, 0x3000 }, { 0x9900, 0x2258, 0x2000 }, { 0x1900, 0x2257, 0x0000 }, { 0x1900, 0x2259, 0x0000 }, { 0x9900, 0x225c, 0x2000 }, { 0x1900, 0x225b, 0x0000 }, { 0x1900, 0x225d, 0x0000 }, { 0x9900, 0x2266, 0x4000 }, { 0x9900, 0x2262, 0x3000 }, { 0x9900, 0x2260, 0x2000 }, { 0x1900, 0x225f, 0x0000 }, { 0x1900, 0x2261, 0x0000 }, { 0x9900, 0x2264, 0x2000 }, { 0x1900, 0x2263, 0x0000 }, { 0x1900, 0x2265, 0x0000 }, { 0x9900, 0x226a, 0x3000 }, { 0x9900, 0x2268, 0x2000 }, { 0x1900, 0x2267, 0x0000 }, { 0x1900, 0x2269, 0x0000 }, { 0x9900, 0x226c, 0x2000 }, { 0x1900, 0x226b, 0x0000 }, { 0x1900, 0x226d, 0x0000 }, { 0x9900, 0x228e, 0x6000 }, { 0x9900, 0x227e, 0x5000 }, { 0x9900, 0x2276, 0x4000 }, { 0x9900, 0x2272, 0x3000 }, { 0x9900, 0x2270, 0x2000 }, { 0x1900, 0x226f, 0x0000 }, { 0x1900, 0x2271, 0x0000 }, { 0x9900, 0x2274, 0x2000 }, { 0x1900, 0x2273, 0x0000 }, { 0x1900, 0x2275, 0x0000 }, { 0x9900, 0x227a, 0x3000 }, { 0x9900, 0x2278, 0x2000 }, { 0x1900, 0x2277, 0x0000 }, { 0x1900, 0x2279, 0x0000 }, { 0x9900, 0x227c, 0x2000 }, { 0x1900, 0x227b, 0x0000 }, { 0x1900, 0x227d, 0x0000 }, { 0x9900, 0x2286, 0x4000 }, { 0x9900, 0x2282, 0x3000 }, { 0x9900, 0x2280, 0x2000 }, { 0x1900, 0x227f, 0x0000 }, { 0x1900, 0x2281, 0x0000 }, { 0x9900, 0x2284, 0x2000 }, { 0x1900, 0x2283, 0x0000 }, { 0x1900, 0x2285, 0x0000 }, { 0x9900, 0x228a, 0x3000 }, { 0x9900, 0x2288, 0x2000 }, { 0x1900, 0x2287, 0x0000 }, { 0x1900, 0x2289, 0x0000 }, { 0x9900, 0x228c, 0x2000 }, { 0x1900, 0x228b, 0x0000 }, { 0x1900, 0x228d, 0x0000 }, { 0x9900, 0x229e, 0x5000 }, { 0x9900, 0x2296, 0x4000 }, { 0x9900, 0x2292, 0x3000 }, { 0x9900, 0x2290, 0x2000 }, { 0x1900, 0x228f, 0x0000 }, { 0x1900, 0x2291, 0x0000 }, { 0x9900, 0x2294, 0x2000 }, { 0x1900, 0x2293, 0x0000 }, { 0x1900, 0x2295, 0x0000 }, { 0x9900, 0x229a, 0x3000 }, { 0x9900, 0x2298, 0x2000 }, { 0x1900, 0x2297, 0x0000 }, { 0x1900, 0x2299, 0x0000 }, { 0x9900, 0x229c, 0x2000 }, { 0x1900, 0x229b, 0x0000 }, { 0x1900, 0x229d, 0x0000 }, { 0x9900, 0x22a6, 0x4000 }, { 0x9900, 0x22a2, 0x3000 }, { 0x9900, 0x22a0, 0x2000 }, { 0x1900, 0x229f, 0x0000 }, { 0x1900, 0x22a1, 0x0000 }, { 0x9900, 0x22a4, 0x2000 }, { 0x1900, 0x22a3, 0x0000 }, { 0x1900, 0x22a5, 0x0000 }, { 0x9900, 0x22aa, 0x3000 }, { 0x9900, 0x22a8, 0x2000 }, { 0x1900, 0x22a7, 0x0000 }, { 0x1900, 0x22a9, 0x0000 }, { 0x9900, 0x22ac, 0x2000 }, { 0x1900, 0x22ab, 0x0000 }, { 0x1900, 0x22ad, 0x0000 }, { 0x8f00, 0x2787, 0xb000 }, { 0x9a00, 0x250b, 0xa000 }, { 0x9900, 0x23ae, 0x9000 }, { 0x9a00, 0x232e, 0x8000 }, { 0x9900, 0x22ee, 0x7000 }, { 0x9900, 0x22ce, 0x6000 }, { 0x9900, 0x22be, 0x5000 }, { 0x9900, 0x22b6, 0x4000 }, { 0x9900, 0x22b2, 0x3000 }, { 0x9900, 0x22b0, 0x2000 }, { 0x1900, 0x22af, 0x0000 }, { 0x1900, 0x22b1, 0x0000 }, { 0x9900, 0x22b4, 0x2000 }, { 0x1900, 0x22b3, 0x0000 }, { 0x1900, 0x22b5, 0x0000 }, { 0x9900, 0x22ba, 0x3000 }, { 0x9900, 0x22b8, 0x2000 }, { 0x1900, 0x22b7, 0x0000 }, { 0x1900, 0x22b9, 0x0000 }, { 0x9900, 0x22bc, 0x2000 }, { 0x1900, 0x22bb, 0x0000 }, { 0x1900, 0x22bd, 0x0000 }, { 0x9900, 0x22c6, 0x4000 }, { 0x9900, 0x22c2, 0x3000 }, { 0x9900, 0x22c0, 0x2000 }, { 0x1900, 0x22bf, 0x0000 }, { 0x1900, 0x22c1, 0x0000 }, { 0x9900, 0x22c4, 0x2000 }, { 0x1900, 0x22c3, 0x0000 }, { 0x1900, 0x22c5, 0x0000 }, { 0x9900, 0x22ca, 0x3000 }, { 0x9900, 0x22c8, 0x2000 }, { 0x1900, 0x22c7, 0x0000 }, { 0x1900, 0x22c9, 0x0000 }, { 0x9900, 0x22cc, 0x2000 }, { 0x1900, 0x22cb, 0x0000 }, { 0x1900, 0x22cd, 0x0000 }, { 0x9900, 0x22de, 0x5000 }, { 0x9900, 0x22d6, 0x4000 }, { 0x9900, 0x22d2, 0x3000 }, { 0x9900, 0x22d0, 0x2000 }, { 0x1900, 0x22cf, 0x0000 }, { 0x1900, 0x22d1, 0x0000 }, { 0x9900, 0x22d4, 0x2000 }, { 0x1900, 0x22d3, 0x0000 }, { 0x1900, 0x22d5, 0x0000 }, { 0x9900, 0x22da, 0x3000 }, { 0x9900, 0x22d8, 0x2000 }, { 0x1900, 0x22d7, 0x0000 }, { 0x1900, 0x22d9, 0x0000 }, { 0x9900, 0x22dc, 0x2000 }, { 0x1900, 0x22db, 0x0000 }, { 0x1900, 0x22dd, 0x0000 }, { 0x9900, 0x22e6, 0x4000 }, { 0x9900, 0x22e2, 0x3000 }, { 0x9900, 0x22e0, 0x2000 }, { 0x1900, 0x22df, 0x0000 }, { 0x1900, 0x22e1, 0x0000 }, { 0x9900, 0x22e4, 0x2000 }, { 0x1900, 0x22e3, 0x0000 }, { 0x1900, 0x22e5, 0x0000 }, { 0x9900, 0x22ea, 0x3000 }, { 0x9900, 0x22e8, 0x2000 }, { 0x1900, 0x22e7, 0x0000 }, { 0x1900, 0x22e9, 0x0000 }, { 0x9900, 0x22ec, 0x2000 }, { 0x1900, 0x22eb, 0x0000 }, { 0x1900, 0x22ed, 0x0000 }, { 0x9a00, 0x230e, 0x6000 }, { 0x9900, 0x22fe, 0x5000 }, { 0x9900, 0x22f6, 0x4000 }, { 0x9900, 0x22f2, 0x3000 }, { 0x9900, 0x22f0, 0x2000 }, { 0x1900, 0x22ef, 0x0000 }, { 0x1900, 0x22f1, 0x0000 }, { 0x9900, 0x22f4, 0x2000 }, { 0x1900, 0x22f3, 0x0000 }, { 0x1900, 0x22f5, 0x0000 }, { 0x9900, 0x22fa, 0x3000 }, { 0x9900, 0x22f8, 0x2000 }, { 0x1900, 0x22f7, 0x0000 }, { 0x1900, 0x22f9, 0x0000 }, { 0x9900, 0x22fc, 0x2000 }, { 0x1900, 0x22fb, 0x0000 }, { 0x1900, 0x22fd, 0x0000 }, { 0x9a00, 0x2306, 0x4000 }, { 0x9a00, 0x2302, 0x3000 }, { 0x9a00, 0x2300, 0x2000 }, { 0x1900, 0x22ff, 0x0000 }, { 0x1a00, 0x2301, 0x0000 }, { 0x9a00, 0x2304, 0x2000 }, { 0x1a00, 0x2303, 0x0000 }, { 0x1a00, 0x2305, 0x0000 }, { 0x9900, 0x230a, 0x3000 }, { 0x9900, 0x2308, 0x2000 }, { 0x1a00, 0x2307, 0x0000 }, { 0x1900, 0x2309, 0x0000 }, { 0x9a00, 0x230c, 0x2000 }, { 0x1900, 0x230b, 0x0000 }, { 0x1a00, 0x230d, 0x0000 }, { 0x9a00, 0x231e, 0x5000 }, { 0x9a00, 0x2316, 0x4000 }, { 0x9a00, 0x2312, 0x3000 }, { 0x9a00, 0x2310, 0x2000 }, { 0x1a00, 0x230f, 0x0000 }, { 0x1a00, 0x2311, 0x0000 }, { 0x9a00, 0x2314, 0x2000 }, { 0x1a00, 0x2313, 0x0000 }, { 0x1a00, 0x2315, 0x0000 }, { 0x9a00, 0x231a, 0x3000 }, { 0x9a00, 0x2318, 0x2000 }, { 0x1a00, 0x2317, 0x0000 }, { 0x1a00, 0x2319, 0x0000 }, { 0x9a00, 0x231c, 0x2000 }, { 0x1a00, 0x231b, 0x0000 }, { 0x1a00, 0x231d, 0x0000 }, { 0x9a00, 0x2326, 0x4000 }, { 0x9a00, 0x2322, 0x3000 }, { 0x9900, 0x2320, 0x2000 }, { 0x1a00, 0x231f, 0x0000 }, { 0x1900, 0x2321, 0x0000 }, { 0x9a00, 0x2324, 0x2000 }, { 0x1a00, 0x2323, 0x0000 }, { 0x1a00, 0x2325, 0x0000 }, { 0x9200, 0x232a, 0x3000 }, { 0x9a00, 0x2328, 0x2000 }, { 0x1a00, 0x2327, 0x0000 }, { 0x1600, 0x2329, 0x0000 }, { 0x9a00, 0x232c, 0x2000 }, { 0x1a00, 0x232b, 0x0000 }, { 0x1a00, 0x232d, 0x0000 }, { 0x9a00, 0x236e, 0x7000 }, { 0x9a00, 0x234e, 0x6000 }, { 0x9a00, 0x233e, 0x5000 }, { 0x9a00, 0x2336, 0x4000 }, { 0x9a00, 0x2332, 0x3000 }, { 0x9a00, 0x2330, 0x2000 }, { 0x1a00, 0x232f, 0x0000 }, { 0x1a00, 0x2331, 0x0000 }, { 0x9a00, 0x2334, 0x2000 }, { 0x1a00, 0x2333, 0x0000 }, { 0x1a00, 0x2335, 0x0000 }, { 0x9a00, 0x233a, 0x3000 }, { 0x9a00, 0x2338, 0x2000 }, { 0x1a00, 0x2337, 0x0000 }, { 0x1a00, 0x2339, 0x0000 }, { 0x9a00, 0x233c, 0x2000 }, { 0x1a00, 0x233b, 0x0000 }, { 0x1a00, 0x233d, 0x0000 }, { 0x9a00, 0x2346, 0x4000 }, { 0x9a00, 0x2342, 0x3000 }, { 0x9a00, 0x2340, 0x2000 }, { 0x1a00, 0x233f, 0x0000 }, { 0x1a00, 0x2341, 0x0000 }, { 0x9a00, 0x2344, 0x2000 }, { 0x1a00, 0x2343, 0x0000 }, { 0x1a00, 0x2345, 0x0000 }, { 0x9a00, 0x234a, 0x3000 }, { 0x9a00, 0x2348, 0x2000 }, { 0x1a00, 0x2347, 0x0000 }, { 0x1a00, 0x2349, 0x0000 }, { 0x9a00, 0x234c, 0x2000 }, { 0x1a00, 0x234b, 0x0000 }, { 0x1a00, 0x234d, 0x0000 }, { 0x9a00, 0x235e, 0x5000 }, { 0x9a00, 0x2356, 0x4000 }, { 0x9a00, 0x2352, 0x3000 }, { 0x9a00, 0x2350, 0x2000 }, { 0x1a00, 0x234f, 0x0000 }, { 0x1a00, 0x2351, 0x0000 }, { 0x9a00, 0x2354, 0x2000 }, { 0x1a00, 0x2353, 0x0000 }, { 0x1a00, 0x2355, 0x0000 }, { 0x9a00, 0x235a, 0x3000 }, { 0x9a00, 0x2358, 0x2000 }, { 0x1a00, 0x2357, 0x0000 }, { 0x1a00, 0x2359, 0x0000 }, { 0x9a00, 0x235c, 0x2000 }, { 0x1a00, 0x235b, 0x0000 }, { 0x1a00, 0x235d, 0x0000 }, { 0x9a00, 0x2366, 0x4000 }, { 0x9a00, 0x2362, 0x3000 }, { 0x9a00, 0x2360, 0x2000 }, { 0x1a00, 0x235f, 0x0000 }, { 0x1a00, 0x2361, 0x0000 }, { 0x9a00, 0x2364, 0x2000 }, { 0x1a00, 0x2363, 0x0000 }, { 0x1a00, 0x2365, 0x0000 }, { 0x9a00, 0x236a, 0x3000 }, { 0x9a00, 0x2368, 0x2000 }, { 0x1a00, 0x2367, 0x0000 }, { 0x1a00, 0x2369, 0x0000 }, { 0x9a00, 0x236c, 0x2000 }, { 0x1a00, 0x236b, 0x0000 }, { 0x1a00, 0x236d, 0x0000 }, { 0x9a00, 0x238e, 0x6000 }, { 0x9a00, 0x237e, 0x5000 }, { 0x9a00, 0x2376, 0x4000 }, { 0x9a00, 0x2372, 0x3000 }, { 0x9a00, 0x2370, 0x2000 }, { 0x1a00, 0x236f, 0x0000 }, { 0x1a00, 0x2371, 0x0000 }, { 0x9a00, 0x2374, 0x2000 }, { 0x1a00, 0x2373, 0x0000 }, { 0x1a00, 0x2375, 0x0000 }, { 0x9a00, 0x237a, 0x3000 }, { 0x9a00, 0x2378, 0x2000 }, { 0x1a00, 0x2377, 0x0000 }, { 0x1a00, 0x2379, 0x0000 }, { 0x9900, 0x237c, 0x2000 }, { 0x1a00, 0x237b, 0x0000 }, { 0x1a00, 0x237d, 0x0000 }, { 0x9a00, 0x2386, 0x4000 }, { 0x9a00, 0x2382, 0x3000 }, { 0x9a00, 0x2380, 0x2000 }, { 0x1a00, 0x237f, 0x0000 }, { 0x1a00, 0x2381, 0x0000 }, { 0x9a00, 0x2384, 0x2000 }, { 0x1a00, 0x2383, 0x0000 }, { 0x1a00, 0x2385, 0x0000 }, { 0x9a00, 0x238a, 0x3000 }, { 0x9a00, 0x2388, 0x2000 }, { 0x1a00, 0x2387, 0x0000 }, { 0x1a00, 0x2389, 0x0000 }, { 0x9a00, 0x238c, 0x2000 }, { 0x1a00, 0x238b, 0x0000 }, { 0x1a00, 0x238d, 0x0000 }, { 0x9900, 0x239e, 0x5000 }, { 0x9a00, 0x2396, 0x4000 }, { 0x9a00, 0x2392, 0x3000 }, { 0x9a00, 0x2390, 0x2000 }, { 0x1a00, 0x238f, 0x0000 }, { 0x1a00, 0x2391, 0x0000 }, { 0x9a00, 0x2394, 0x2000 }, { 0x1a00, 0x2393, 0x0000 }, { 0x1a00, 0x2395, 0x0000 }, { 0x9a00, 0x239a, 0x3000 }, { 0x9a00, 0x2398, 0x2000 }, { 0x1a00, 0x2397, 0x0000 }, { 0x1a00, 0x2399, 0x0000 }, { 0x9900, 0x239c, 0x2000 }, { 0x1900, 0x239b, 0x0000 }, { 0x1900, 0x239d, 0x0000 }, { 0x9900, 0x23a6, 0x4000 }, { 0x9900, 0x23a2, 0x3000 }, { 0x9900, 0x23a0, 0x2000 }, { 0x1900, 0x239f, 0x0000 }, { 0x1900, 0x23a1, 0x0000 }, { 0x9900, 0x23a4, 0x2000 }, { 0x1900, 0x23a3, 0x0000 }, { 0x1900, 0x23a5, 0x0000 }, { 0x9900, 0x23aa, 0x3000 }, { 0x9900, 0x23a8, 0x2000 }, { 0x1900, 0x23a7, 0x0000 }, { 0x1900, 0x23a9, 0x0000 }, { 0x9900, 0x23ac, 0x2000 }, { 0x1900, 0x23ab, 0x0000 }, { 0x1900, 0x23ad, 0x0000 }, { 0x8f00, 0x248b, 0x8000 }, { 0x9a00, 0x241d, 0x7000 }, { 0x9a00, 0x23ce, 0x6000 }, { 0x9a00, 0x23be, 0x5000 }, { 0x9500, 0x23b6, 0x4000 }, { 0x9900, 0x23b2, 0x3000 }, { 0x9900, 0x23b0, 0x2000 }, { 0x1900, 0x23af, 0x0000 }, { 0x1900, 0x23b1, 0x0000 }, { 0x9600, 0x23b4, 0x2000 }, { 0x1900, 0x23b3, 0x0000 }, { 0x1200, 0x23b5, 0x0000 }, { 0x9a00, 0x23ba, 0x3000 }, { 0x9a00, 0x23b8, 0x2000 }, { 0x1a00, 0x23b7, 0x0000 }, { 0x1a00, 0x23b9, 0x0000 }, { 0x9a00, 0x23bc, 0x2000 }, { 0x1a00, 0x23bb, 0x0000 }, { 0x1a00, 0x23bd, 0x0000 }, { 0x9a00, 0x23c6, 0x4000 }, { 0x9a00, 0x23c2, 0x3000 }, { 0x9a00, 0x23c0, 0x2000 }, { 0x1a00, 0x23bf, 0x0000 }, { 0x1a00, 0x23c1, 0x0000 }, { 0x9a00, 0x23c4, 0x2000 }, { 0x1a00, 0x23c3, 0x0000 }, { 0x1a00, 0x23c5, 0x0000 }, { 0x9a00, 0x23ca, 0x3000 }, { 0x9a00, 0x23c8, 0x2000 }, { 0x1a00, 0x23c7, 0x0000 }, { 0x1a00, 0x23c9, 0x0000 }, { 0x9a00, 0x23cc, 0x2000 }, { 0x1a00, 0x23cb, 0x0000 }, { 0x1a00, 0x23cd, 0x0000 }, { 0x9a00, 0x240d, 0x5000 }, { 0x9a00, 0x2405, 0x4000 }, { 0x9a00, 0x2401, 0x3000 }, { 0x9a00, 0x23d0, 0x2000 }, { 0x1a00, 0x23cf, 0x0000 }, { 0x1a00, 0x2400, 0x0000 }, { 0x9a00, 0x2403, 0x2000 }, { 0x1a00, 0x2402, 0x0000 }, { 0x1a00, 0x2404, 0x0000 }, { 0x9a00, 0x2409, 0x3000 }, { 0x9a00, 0x2407, 0x2000 }, { 0x1a00, 0x2406, 0x0000 }, { 0x1a00, 0x2408, 0x0000 }, { 0x9a00, 0x240b, 0x2000 }, { 0x1a00, 0x240a, 0x0000 }, { 0x1a00, 0x240c, 0x0000 }, { 0x9a00, 0x2415, 0x4000 }, { 0x9a00, 0x2411, 0x3000 }, { 0x9a00, 0x240f, 0x2000 }, { 0x1a00, 0x240e, 0x0000 }, { 0x1a00, 0x2410, 0x0000 }, { 0x9a00, 0x2413, 0x2000 }, { 0x1a00, 0x2412, 0x0000 }, { 0x1a00, 0x2414, 0x0000 }, { 0x9a00, 0x2419, 0x3000 }, { 0x9a00, 0x2417, 0x2000 }, { 0x1a00, 0x2416, 0x0000 }, { 0x1a00, 0x2418, 0x0000 }, { 0x9a00, 0x241b, 0x2000 }, { 0x1a00, 0x241a, 0x0000 }, { 0x1a00, 0x241c, 0x0000 }, { 0x8f00, 0x246b, 0x6000 }, { 0x9a00, 0x2446, 0x5000 }, { 0x9a00, 0x2425, 0x4000 }, { 0x9a00, 0x2421, 0x3000 }, { 0x9a00, 0x241f, 0x2000 }, { 0x1a00, 0x241e, 0x0000 }, { 0x1a00, 0x2420, 0x0000 }, { 0x9a00, 0x2423, 0x2000 }, { 0x1a00, 0x2422, 0x0000 }, { 0x1a00, 0x2424, 0x0000 }, { 0x9a00, 0x2442, 0x3000 }, { 0x9a00, 0x2440, 0x2000 }, { 0x1a00, 0x2426, 0x0000 }, { 0x1a00, 0x2441, 0x0000 }, { 0x9a00, 0x2444, 0x2000 }, { 0x1a00, 0x2443, 0x0000 }, { 0x1a00, 0x2445, 0x0000 }, { 0x8f00, 0x2463, 0x4000 }, { 0x9a00, 0x244a, 0x3000 }, { 0x9a00, 0x2448, 0x2000 }, { 0x1a00, 0x2447, 0x0000 }, { 0x1a00, 0x2449, 0x0000 }, { 0x8f00, 0x2461, 0x2000 }, { 0x0f00, 0x2460, 0x0000 }, { 0x0f00, 0x2462, 0x0000 }, { 0x8f00, 0x2467, 0x3000 }, { 0x8f00, 0x2465, 0x2000 }, { 0x0f00, 0x2464, 0x0000 }, { 0x0f00, 0x2466, 0x0000 }, { 0x8f00, 0x2469, 0x2000 }, { 0x0f00, 0x2468, 0x0000 }, { 0x0f00, 0x246a, 0x0000 }, { 0x8f00, 0x247b, 0x5000 }, { 0x8f00, 0x2473, 0x4000 }, { 0x8f00, 0x246f, 0x3000 }, { 0x8f00, 0x246d, 0x2000 }, { 0x0f00, 0x246c, 0x0000 }, { 0x0f00, 0x246e, 0x0000 }, { 0x8f00, 0x2471, 0x2000 }, { 0x0f00, 0x2470, 0x0000 }, { 0x0f00, 0x2472, 0x0000 }, { 0x8f00, 0x2477, 0x3000 }, { 0x8f00, 0x2475, 0x2000 }, { 0x0f00, 0x2474, 0x0000 }, { 0x0f00, 0x2476, 0x0000 }, { 0x8f00, 0x2479, 0x2000 }, { 0x0f00, 0x2478, 0x0000 }, { 0x0f00, 0x247a, 0x0000 }, { 0x8f00, 0x2483, 0x4000 }, { 0x8f00, 0x247f, 0x3000 }, { 0x8f00, 0x247d, 0x2000 }, { 0x0f00, 0x247c, 0x0000 }, { 0x0f00, 0x247e, 0x0000 }, { 0x8f00, 0x2481, 0x2000 }, { 0x0f00, 0x2480, 0x0000 }, { 0x0f00, 0x2482, 0x0000 }, { 0x8f00, 0x2487, 0x3000 }, { 0x8f00, 0x2485, 0x2000 }, { 0x0f00, 0x2484, 0x0000 }, { 0x0f00, 0x2486, 0x0000 }, { 0x8f00, 0x2489, 0x2000 }, { 0x0f00, 0x2488, 0x0000 }, { 0x0f00, 0x248a, 0x0000 }, { 0x9a00, 0x24cb, 0x7000 }, { 0x9a00, 0x24ab, 0x6000 }, { 0x8f00, 0x249b, 0x5000 }, { 0x8f00, 0x2493, 0x4000 }, { 0x8f00, 0x248f, 0x3000 }, { 0x8f00, 0x248d, 0x2000 }, { 0x0f00, 0x248c, 0x0000 }, { 0x0f00, 0x248e, 0x0000 }, { 0x8f00, 0x2491, 0x2000 }, { 0x0f00, 0x2490, 0x0000 }, { 0x0f00, 0x2492, 0x0000 }, { 0x8f00, 0x2497, 0x3000 }, { 0x8f00, 0x2495, 0x2000 }, { 0x0f00, 0x2494, 0x0000 }, { 0x0f00, 0x2496, 0x0000 }, { 0x8f00, 0x2499, 0x2000 }, { 0x0f00, 0x2498, 0x0000 }, { 0x0f00, 0x249a, 0x0000 }, { 0x9a00, 0x24a3, 0x4000 }, { 0x9a00, 0x249f, 0x3000 }, { 0x9a00, 0x249d, 0x2000 }, { 0x1a00, 0x249c, 0x0000 }, { 0x1a00, 0x249e, 0x0000 }, { 0x9a00, 0x24a1, 0x2000 }, { 0x1a00, 0x24a0, 0x0000 }, { 0x1a00, 0x24a2, 0x0000 }, { 0x9a00, 0x24a7, 0x3000 }, { 0x9a00, 0x24a5, 0x2000 }, { 0x1a00, 0x24a4, 0x0000 }, { 0x1a00, 0x24a6, 0x0000 }, { 0x9a00, 0x24a9, 0x2000 }, { 0x1a00, 0x24a8, 0x0000 }, { 0x1a00, 0x24aa, 0x0000 }, { 0x9a00, 0x24bb, 0x5000 }, { 0x9a00, 0x24b3, 0x4000 }, { 0x9a00, 0x24af, 0x3000 }, { 0x9a00, 0x24ad, 0x2000 }, { 0x1a00, 0x24ac, 0x0000 }, { 0x1a00, 0x24ae, 0x0000 }, { 0x9a00, 0x24b1, 0x2000 }, { 0x1a00, 0x24b0, 0x0000 }, { 0x1a00, 0x24b2, 0x0000 }, { 0x9a00, 0x24b7, 0x3000 }, { 0x9a00, 0x24b5, 0x2000 }, { 0x1a00, 0x24b4, 0x0000 }, { 0x1a00, 0x24b6, 0x0000 }, { 0x9a00, 0x24b9, 0x2000 }, { 0x1a00, 0x24b8, 0x0000 }, { 0x1a00, 0x24ba, 0x0000 }, { 0x9a00, 0x24c3, 0x4000 }, { 0x9a00, 0x24bf, 0x3000 }, { 0x9a00, 0x24bd, 0x2000 }, { 0x1a00, 0x24bc, 0x0000 }, { 0x1a00, 0x24be, 0x0000 }, { 0x9a00, 0x24c1, 0x2000 }, { 0x1a00, 0x24c0, 0x0000 }, { 0x1a00, 0x24c2, 0x0000 }, { 0x9a00, 0x24c7, 0x3000 }, { 0x9a00, 0x24c5, 0x2000 }, { 0x1a00, 0x24c4, 0x0000 }, { 0x1a00, 0x24c6, 0x0000 }, { 0x9a00, 0x24c9, 0x2000 }, { 0x1a00, 0x24c8, 0x0000 }, { 0x1a00, 0x24ca, 0x0000 }, { 0x8f00, 0x24eb, 0x6000 }, { 0x9a00, 0x24db, 0x5000 }, { 0x9a00, 0x24d3, 0x4000 }, { 0x9a00, 0x24cf, 0x3000 }, { 0x9a00, 0x24cd, 0x2000 }, { 0x1a00, 0x24cc, 0x0000 }, { 0x1a00, 0x24ce, 0x0000 }, { 0x9a00, 0x24d1, 0x2000 }, { 0x1a00, 0x24d0, 0x0000 }, { 0x1a00, 0x24d2, 0x0000 }, { 0x9a00, 0x24d7, 0x3000 }, { 0x9a00, 0x24d5, 0x2000 }, { 0x1a00, 0x24d4, 0x0000 }, { 0x1a00, 0x24d6, 0x0000 }, { 0x9a00, 0x24d9, 0x2000 }, { 0x1a00, 0x24d8, 0x0000 }, { 0x1a00, 0x24da, 0x0000 }, { 0x9a00, 0x24e3, 0x4000 }, { 0x9a00, 0x24df, 0x3000 }, { 0x9a00, 0x24dd, 0x2000 }, { 0x1a00, 0x24dc, 0x0000 }, { 0x1a00, 0x24de, 0x0000 }, { 0x9a00, 0x24e1, 0x2000 }, { 0x1a00, 0x24e0, 0x0000 }, { 0x1a00, 0x24e2, 0x0000 }, { 0x9a00, 0x24e7, 0x3000 }, { 0x9a00, 0x24e5, 0x2000 }, { 0x1a00, 0x24e4, 0x0000 }, { 0x1a00, 0x24e6, 0x0000 }, { 0x9a00, 0x24e9, 0x2000 }, { 0x1a00, 0x24e8, 0x0000 }, { 0x0f00, 0x24ea, 0x0000 }, { 0x8f00, 0x24fb, 0x5000 }, { 0x8f00, 0x24f3, 0x4000 }, { 0x8f00, 0x24ef, 0x3000 }, { 0x8f00, 0x24ed, 0x2000 }, { 0x0f00, 0x24ec, 0x0000 }, { 0x0f00, 0x24ee, 0x0000 }, { 0x8f00, 0x24f1, 0x2000 }, { 0x0f00, 0x24f0, 0x0000 }, { 0x0f00, 0x24f2, 0x0000 }, { 0x8f00, 0x24f7, 0x3000 }, { 0x8f00, 0x24f5, 0x2000 }, { 0x0f00, 0x24f4, 0x0000 }, { 0x0f00, 0x24f6, 0x0000 }, { 0x8f00, 0x24f9, 0x2000 }, { 0x0f00, 0x24f8, 0x0000 }, { 0x0f00, 0x24fa, 0x0000 }, { 0x9a00, 0x2503, 0x4000 }, { 0x8f00, 0x24ff, 0x3000 }, { 0x8f00, 0x24fd, 0x2000 }, { 0x0f00, 0x24fc, 0x0000 }, { 0x0f00, 0x24fe, 0x0000 }, { 0x9a00, 0x2501, 0x2000 }, { 0x1a00, 0x2500, 0x0000 }, { 0x1a00, 0x2502, 0x0000 }, { 0x9a00, 0x2507, 0x3000 }, { 0x9a00, 0x2505, 0x2000 }, { 0x1a00, 0x2504, 0x0000 }, { 0x1a00, 0x2506, 0x0000 }, { 0x9a00, 0x2509, 0x2000 }, { 0x1a00, 0x2508, 0x0000 }, { 0x1a00, 0x250a, 0x0000 }, { 0x9a00, 0x260b, 0x9000 }, { 0x9a00, 0x258b, 0x8000 }, { 0x9a00, 0x254b, 0x7000 }, { 0x9a00, 0x252b, 0x6000 }, { 0x9a00, 0x251b, 0x5000 }, { 0x9a00, 0x2513, 0x4000 }, { 0x9a00, 0x250f, 0x3000 }, { 0x9a00, 0x250d, 0x2000 }, { 0x1a00, 0x250c, 0x0000 }, { 0x1a00, 0x250e, 0x0000 }, { 0x9a00, 0x2511, 0x2000 }, { 0x1a00, 0x2510, 0x0000 }, { 0x1a00, 0x2512, 0x0000 }, { 0x9a00, 0x2517, 0x3000 }, { 0x9a00, 0x2515, 0x2000 }, { 0x1a00, 0x2514, 0x0000 }, { 0x1a00, 0x2516, 0x0000 }, { 0x9a00, 0x2519, 0x2000 }, { 0x1a00, 0x2518, 0x0000 }, { 0x1a00, 0x251a, 0x0000 }, { 0x9a00, 0x2523, 0x4000 }, { 0x9a00, 0x251f, 0x3000 }, { 0x9a00, 0x251d, 0x2000 }, { 0x1a00, 0x251c, 0x0000 }, { 0x1a00, 0x251e, 0x0000 }, { 0x9a00, 0x2521, 0x2000 }, { 0x1a00, 0x2520, 0x0000 }, { 0x1a00, 0x2522, 0x0000 }, { 0x9a00, 0x2527, 0x3000 }, { 0x9a00, 0x2525, 0x2000 }, { 0x1a00, 0x2524, 0x0000 }, { 0x1a00, 0x2526, 0x0000 }, { 0x9a00, 0x2529, 0x2000 }, { 0x1a00, 0x2528, 0x0000 }, { 0x1a00, 0x252a, 0x0000 }, { 0x9a00, 0x253b, 0x5000 }, { 0x9a00, 0x2533, 0x4000 }, { 0x9a00, 0x252f, 0x3000 }, { 0x9a00, 0x252d, 0x2000 }, { 0x1a00, 0x252c, 0x0000 }, { 0x1a00, 0x252e, 0x0000 }, { 0x9a00, 0x2531, 0x2000 }, { 0x1a00, 0x2530, 0x0000 }, { 0x1a00, 0x2532, 0x0000 }, { 0x9a00, 0x2537, 0x3000 }, { 0x9a00, 0x2535, 0x2000 }, { 0x1a00, 0x2534, 0x0000 }, { 0x1a00, 0x2536, 0x0000 }, { 0x9a00, 0x2539, 0x2000 }, { 0x1a00, 0x2538, 0x0000 }, { 0x1a00, 0x253a, 0x0000 }, { 0x9a00, 0x2543, 0x4000 }, { 0x9a00, 0x253f, 0x3000 }, { 0x9a00, 0x253d, 0x2000 }, { 0x1a00, 0x253c, 0x0000 }, { 0x1a00, 0x253e, 0x0000 }, { 0x9a00, 0x2541, 0x2000 }, { 0x1a00, 0x2540, 0x0000 }, { 0x1a00, 0x2542, 0x0000 }, { 0x9a00, 0x2547, 0x3000 }, { 0x9a00, 0x2545, 0x2000 }, { 0x1a00, 0x2544, 0x0000 }, { 0x1a00, 0x2546, 0x0000 }, { 0x9a00, 0x2549, 0x2000 }, { 0x1a00, 0x2548, 0x0000 }, { 0x1a00, 0x254a, 0x0000 }, { 0x9a00, 0x256b, 0x6000 }, { 0x9a00, 0x255b, 0x5000 }, { 0x9a00, 0x2553, 0x4000 }, { 0x9a00, 0x254f, 0x3000 }, { 0x9a00, 0x254d, 0x2000 }, { 0x1a00, 0x254c, 0x0000 }, { 0x1a00, 0x254e, 0x0000 }, { 0x9a00, 0x2551, 0x2000 }, { 0x1a00, 0x2550, 0x0000 }, { 0x1a00, 0x2552, 0x0000 }, { 0x9a00, 0x2557, 0x3000 }, { 0x9a00, 0x2555, 0x2000 }, { 0x1a00, 0x2554, 0x0000 }, { 0x1a00, 0x2556, 0x0000 }, { 0x9a00, 0x2559, 0x2000 }, { 0x1a00, 0x2558, 0x0000 }, { 0x1a00, 0x255a, 0x0000 }, { 0x9a00, 0x2563, 0x4000 }, { 0x9a00, 0x255f, 0x3000 }, { 0x9a00, 0x255d, 0x2000 }, { 0x1a00, 0x255c, 0x0000 }, { 0x1a00, 0x255e, 0x0000 }, { 0x9a00, 0x2561, 0x2000 }, { 0x1a00, 0x2560, 0x0000 }, { 0x1a00, 0x2562, 0x0000 }, { 0x9a00, 0x2567, 0x3000 }, { 0x9a00, 0x2565, 0x2000 }, { 0x1a00, 0x2564, 0x0000 }, { 0x1a00, 0x2566, 0x0000 }, { 0x9a00, 0x2569, 0x2000 }, { 0x1a00, 0x2568, 0x0000 }, { 0x1a00, 0x256a, 0x0000 }, { 0x9a00, 0x257b, 0x5000 }, { 0x9a00, 0x2573, 0x4000 }, { 0x9a00, 0x256f, 0x3000 }, { 0x9a00, 0x256d, 0x2000 }, { 0x1a00, 0x256c, 0x0000 }, { 0x1a00, 0x256e, 0x0000 }, { 0x9a00, 0x2571, 0x2000 }, { 0x1a00, 0x2570, 0x0000 }, { 0x1a00, 0x2572, 0x0000 }, { 0x9a00, 0x2577, 0x3000 }, { 0x9a00, 0x2575, 0x2000 }, { 0x1a00, 0x2574, 0x0000 }, { 0x1a00, 0x2576, 0x0000 }, { 0x9a00, 0x2579, 0x2000 }, { 0x1a00, 0x2578, 0x0000 }, { 0x1a00, 0x257a, 0x0000 }, { 0x9a00, 0x2583, 0x4000 }, { 0x9a00, 0x257f, 0x3000 }, { 0x9a00, 0x257d, 0x2000 }, { 0x1a00, 0x257c, 0x0000 }, { 0x1a00, 0x257e, 0x0000 }, { 0x9a00, 0x2581, 0x2000 }, { 0x1a00, 0x2580, 0x0000 }, { 0x1a00, 0x2582, 0x0000 }, { 0x9a00, 0x2587, 0x3000 }, { 0x9a00, 0x2585, 0x2000 }, { 0x1a00, 0x2584, 0x0000 }, { 0x1a00, 0x2586, 0x0000 }, { 0x9a00, 0x2589, 0x2000 }, { 0x1a00, 0x2588, 0x0000 }, { 0x1a00, 0x258a, 0x0000 }, { 0x9a00, 0x25cb, 0x7000 }, { 0x9a00, 0x25ab, 0x6000 }, { 0x9a00, 0x259b, 0x5000 }, { 0x9a00, 0x2593, 0x4000 }, { 0x9a00, 0x258f, 0x3000 }, { 0x9a00, 0x258d, 0x2000 }, { 0x1a00, 0x258c, 0x0000 }, { 0x1a00, 0x258e, 0x0000 }, { 0x9a00, 0x2591, 0x2000 }, { 0x1a00, 0x2590, 0x0000 }, { 0x1a00, 0x2592, 0x0000 }, { 0x9a00, 0x2597, 0x3000 }, { 0x9a00, 0x2595, 0x2000 }, { 0x1a00, 0x2594, 0x0000 }, { 0x1a00, 0x2596, 0x0000 }, { 0x9a00, 0x2599, 0x2000 }, { 0x1a00, 0x2598, 0x0000 }, { 0x1a00, 0x259a, 0x0000 }, { 0x9a00, 0x25a3, 0x4000 }, { 0x9a00, 0x259f, 0x3000 }, { 0x9a00, 0x259d, 0x2000 }, { 0x1a00, 0x259c, 0x0000 }, { 0x1a00, 0x259e, 0x0000 }, { 0x9a00, 0x25a1, 0x2000 }, { 0x1a00, 0x25a0, 0x0000 }, { 0x1a00, 0x25a2, 0x0000 }, { 0x9a00, 0x25a7, 0x3000 }, { 0x9a00, 0x25a5, 0x2000 }, { 0x1a00, 0x25a4, 0x0000 }, { 0x1a00, 0x25a6, 0x0000 }, { 0x9a00, 0x25a9, 0x2000 }, { 0x1a00, 0x25a8, 0x0000 }, { 0x1a00, 0x25aa, 0x0000 }, { 0x9a00, 0x25bb, 0x5000 }, { 0x9a00, 0x25b3, 0x4000 }, { 0x9a00, 0x25af, 0x3000 }, { 0x9a00, 0x25ad, 0x2000 }, { 0x1a00, 0x25ac, 0x0000 }, { 0x1a00, 0x25ae, 0x0000 }, { 0x9a00, 0x25b1, 0x2000 }, { 0x1a00, 0x25b0, 0x0000 }, { 0x1a00, 0x25b2, 0x0000 }, { 0x9900, 0x25b7, 0x3000 }, { 0x9a00, 0x25b5, 0x2000 }, { 0x1a00, 0x25b4, 0x0000 }, { 0x1a00, 0x25b6, 0x0000 }, { 0x9a00, 0x25b9, 0x2000 }, { 0x1a00, 0x25b8, 0x0000 }, { 0x1a00, 0x25ba, 0x0000 }, { 0x9a00, 0x25c3, 0x4000 }, { 0x9a00, 0x25bf, 0x3000 }, { 0x9a00, 0x25bd, 0x2000 }, { 0x1a00, 0x25bc, 0x0000 }, { 0x1a00, 0x25be, 0x0000 }, { 0x9900, 0x25c1, 0x2000 }, { 0x1a00, 0x25c0, 0x0000 }, { 0x1a00, 0x25c2, 0x0000 }, { 0x9a00, 0x25c7, 0x3000 }, { 0x9a00, 0x25c5, 0x2000 }, { 0x1a00, 0x25c4, 0x0000 }, { 0x1a00, 0x25c6, 0x0000 }, { 0x9a00, 0x25c9, 0x2000 }, { 0x1a00, 0x25c8, 0x0000 }, { 0x1a00, 0x25ca, 0x0000 }, { 0x9a00, 0x25eb, 0x6000 }, { 0x9a00, 0x25db, 0x5000 }, { 0x9a00, 0x25d3, 0x4000 }, { 0x9a00, 0x25cf, 0x3000 }, { 0x9a00, 0x25cd, 0x2000 }, { 0x1a00, 0x25cc, 0x0000 }, { 0x1a00, 0x25ce, 0x0000 }, { 0x9a00, 0x25d1, 0x2000 }, { 0x1a00, 0x25d0, 0x0000 }, { 0x1a00, 0x25d2, 0x0000 }, { 0x9a00, 0x25d7, 0x3000 }, { 0x9a00, 0x25d5, 0x2000 }, { 0x1a00, 0x25d4, 0x0000 }, { 0x1a00, 0x25d6, 0x0000 }, { 0x9a00, 0x25d9, 0x2000 }, { 0x1a00, 0x25d8, 0x0000 }, { 0x1a00, 0x25da, 0x0000 }, { 0x9a00, 0x25e3, 0x4000 }, { 0x9a00, 0x25df, 0x3000 }, { 0x9a00, 0x25dd, 0x2000 }, { 0x1a00, 0x25dc, 0x0000 }, { 0x1a00, 0x25de, 0x0000 }, { 0x9a00, 0x25e1, 0x2000 }, { 0x1a00, 0x25e0, 0x0000 }, { 0x1a00, 0x25e2, 0x0000 }, { 0x9a00, 0x25e7, 0x3000 }, { 0x9a00, 0x25e5, 0x2000 }, { 0x1a00, 0x25e4, 0x0000 }, { 0x1a00, 0x25e6, 0x0000 }, { 0x9a00, 0x25e9, 0x2000 }, { 0x1a00, 0x25e8, 0x0000 }, { 0x1a00, 0x25ea, 0x0000 }, { 0x9900, 0x25fb, 0x5000 }, { 0x9a00, 0x25f3, 0x4000 }, { 0x9a00, 0x25ef, 0x3000 }, { 0x9a00, 0x25ed, 0x2000 }, { 0x1a00, 0x25ec, 0x0000 }, { 0x1a00, 0x25ee, 0x0000 }, { 0x9a00, 0x25f1, 0x2000 }, { 0x1a00, 0x25f0, 0x0000 }, { 0x1a00, 0x25f2, 0x0000 }, { 0x9a00, 0x25f7, 0x3000 }, { 0x9a00, 0x25f5, 0x2000 }, { 0x1a00, 0x25f4, 0x0000 }, { 0x1a00, 0x25f6, 0x0000 }, { 0x9900, 0x25f9, 0x2000 }, { 0x1900, 0x25f8, 0x0000 }, { 0x1900, 0x25fa, 0x0000 }, { 0x9a00, 0x2603, 0x4000 }, { 0x9900, 0x25ff, 0x3000 }, { 0x9900, 0x25fd, 0x2000 }, { 0x1900, 0x25fc, 0x0000 }, { 0x1900, 0x25fe, 0x0000 }, { 0x9a00, 0x2601, 0x2000 }, { 0x1a00, 0x2600, 0x0000 }, { 0x1a00, 0x2602, 0x0000 }, { 0x9a00, 0x2607, 0x3000 }, { 0x9a00, 0x2605, 0x2000 }, { 0x1a00, 0x2604, 0x0000 }, { 0x1a00, 0x2606, 0x0000 }, { 0x9a00, 0x2609, 0x2000 }, { 0x1a00, 0x2608, 0x0000 }, { 0x1a00, 0x260a, 0x0000 }, { 0x9a00, 0x268e, 0x8000 }, { 0x9a00, 0x264c, 0x7000 }, { 0x9a00, 0x262c, 0x6000 }, { 0x9a00, 0x261c, 0x5000 }, { 0x9a00, 0x2613, 0x4000 }, { 0x9a00, 0x260f, 0x3000 }, { 0x9a00, 0x260d, 0x2000 }, { 0x1a00, 0x260c, 0x0000 }, { 0x1a00, 0x260e, 0x0000 }, { 0x9a00, 0x2611, 0x2000 }, { 0x1a00, 0x2610, 0x0000 }, { 0x1a00, 0x2612, 0x0000 }, { 0x9a00, 0x2617, 0x3000 }, { 0x9a00, 0x2615, 0x2000 }, { 0x1a00, 0x2614, 0x0000 }, { 0x1a00, 0x2616, 0x0000 }, { 0x9a00, 0x261a, 0x2000 }, { 0x1a00, 0x2619, 0x0000 }, { 0x1a00, 0x261b, 0x0000 }, { 0x9a00, 0x2624, 0x4000 }, { 0x9a00, 0x2620, 0x3000 }, { 0x9a00, 0x261e, 0x2000 }, { 0x1a00, 0x261d, 0x0000 }, { 0x1a00, 0x261f, 0x0000 }, { 0x9a00, 0x2622, 0x2000 }, { 0x1a00, 0x2621, 0x0000 }, { 0x1a00, 0x2623, 0x0000 }, { 0x9a00, 0x2628, 0x3000 }, { 0x9a00, 0x2626, 0x2000 }, { 0x1a00, 0x2625, 0x0000 }, { 0x1a00, 0x2627, 0x0000 }, { 0x9a00, 0x262a, 0x2000 }, { 0x1a00, 0x2629, 0x0000 }, { 0x1a00, 0x262b, 0x0000 }, { 0x9a00, 0x263c, 0x5000 }, { 0x9a00, 0x2634, 0x4000 }, { 0x9a00, 0x2630, 0x3000 }, { 0x9a00, 0x262e, 0x2000 }, { 0x1a00, 0x262d, 0x0000 }, { 0x1a00, 0x262f, 0x0000 }, { 0x9a00, 0x2632, 0x2000 }, { 0x1a00, 0x2631, 0x0000 }, { 0x1a00, 0x2633, 0x0000 }, { 0x9a00, 0x2638, 0x3000 }, { 0x9a00, 0x2636, 0x2000 }, { 0x1a00, 0x2635, 0x0000 }, { 0x1a00, 0x2637, 0x0000 }, { 0x9a00, 0x263a, 0x2000 }, { 0x1a00, 0x2639, 0x0000 }, { 0x1a00, 0x263b, 0x0000 }, { 0x9a00, 0x2644, 0x4000 }, { 0x9a00, 0x2640, 0x3000 }, { 0x9a00, 0x263e, 0x2000 }, { 0x1a00, 0x263d, 0x0000 }, { 0x1a00, 0x263f, 0x0000 }, { 0x9a00, 0x2642, 0x2000 }, { 0x1a00, 0x2641, 0x0000 }, { 0x1a00, 0x2643, 0x0000 }, { 0x9a00, 0x2648, 0x3000 }, { 0x9a00, 0x2646, 0x2000 }, { 0x1a00, 0x2645, 0x0000 }, { 0x1a00, 0x2647, 0x0000 }, { 0x9a00, 0x264a, 0x2000 }, { 0x1a00, 0x2649, 0x0000 }, { 0x1a00, 0x264b, 0x0000 }, { 0x9a00, 0x266c, 0x6000 }, { 0x9a00, 0x265c, 0x5000 }, { 0x9a00, 0x2654, 0x4000 }, { 0x9a00, 0x2650, 0x3000 }, { 0x9a00, 0x264e, 0x2000 }, { 0x1a00, 0x264d, 0x0000 }, { 0x1a00, 0x264f, 0x0000 }, { 0x9a00, 0x2652, 0x2000 }, { 0x1a00, 0x2651, 0x0000 }, { 0x1a00, 0x2653, 0x0000 }, { 0x9a00, 0x2658, 0x3000 }, { 0x9a00, 0x2656, 0x2000 }, { 0x1a00, 0x2655, 0x0000 }, { 0x1a00, 0x2657, 0x0000 }, { 0x9a00, 0x265a, 0x2000 }, { 0x1a00, 0x2659, 0x0000 }, { 0x1a00, 0x265b, 0x0000 }, { 0x9a00, 0x2664, 0x4000 }, { 0x9a00, 0x2660, 0x3000 }, { 0x9a00, 0x265e, 0x2000 }, { 0x1a00, 0x265d, 0x0000 }, { 0x1a00, 0x265f, 0x0000 }, { 0x9a00, 0x2662, 0x2000 }, { 0x1a00, 0x2661, 0x0000 }, { 0x1a00, 0x2663, 0x0000 }, { 0x9a00, 0x2668, 0x3000 }, { 0x9a00, 0x2666, 0x2000 }, { 0x1a00, 0x2665, 0x0000 }, { 0x1a00, 0x2667, 0x0000 }, { 0x9a00, 0x266a, 0x2000 }, { 0x1a00, 0x2669, 0x0000 }, { 0x1a00, 0x266b, 0x0000 }, { 0x9a00, 0x267c, 0x5000 }, { 0x9a00, 0x2674, 0x4000 }, { 0x9a00, 0x2670, 0x3000 }, { 0x9a00, 0x266e, 0x2000 }, { 0x1a00, 0x266d, 0x0000 }, { 0x1900, 0x266f, 0x0000 }, { 0x9a00, 0x2672, 0x2000 }, { 0x1a00, 0x2671, 0x0000 }, { 0x1a00, 0x2673, 0x0000 }, { 0x9a00, 0x2678, 0x3000 }, { 0x9a00, 0x2676, 0x2000 }, { 0x1a00, 0x2675, 0x0000 }, { 0x1a00, 0x2677, 0x0000 }, { 0x9a00, 0x267a, 0x2000 }, { 0x1a00, 0x2679, 0x0000 }, { 0x1a00, 0x267b, 0x0000 }, { 0x9a00, 0x2686, 0x4000 }, { 0x9a00, 0x2682, 0x3000 }, { 0x9a00, 0x2680, 0x2000 }, { 0x1a00, 0x267d, 0x0000 }, { 0x1a00, 0x2681, 0x0000 }, { 0x9a00, 0x2684, 0x2000 }, { 0x1a00, 0x2683, 0x0000 }, { 0x1a00, 0x2685, 0x0000 }, { 0x9a00, 0x268a, 0x3000 }, { 0x9a00, 0x2688, 0x2000 }, { 0x1a00, 0x2687, 0x0000 }, { 0x1a00, 0x2689, 0x0000 }, { 0x9a00, 0x268c, 0x2000 }, { 0x1a00, 0x268b, 0x0000 }, { 0x1a00, 0x268d, 0x0000 }, { 0x9a00, 0x273f, 0x7000 }, { 0x9a00, 0x271e, 0x6000 }, { 0x9a00, 0x270e, 0x5000 }, { 0x9a00, 0x2703, 0x4000 }, { 0x9a00, 0x26a0, 0x3000 }, { 0x9a00, 0x2690, 0x2000 }, { 0x1a00, 0x268f, 0x0000 }, { 0x1a00, 0x2691, 0x0000 }, { 0x9a00, 0x2701, 0x2000 }, { 0x1a00, 0x26a1, 0x0000 }, { 0x1a00, 0x2702, 0x0000 }, { 0x9a00, 0x2708, 0x3000 }, { 0x9a00, 0x2706, 0x2000 }, { 0x1a00, 0x2704, 0x0000 }, { 0x1a00, 0x2707, 0x0000 }, { 0x9a00, 0x270c, 0x2000 }, { 0x1a00, 0x2709, 0x0000 }, { 0x1a00, 0x270d, 0x0000 }, { 0x9a00, 0x2716, 0x4000 }, { 0x9a00, 0x2712, 0x3000 }, { 0x9a00, 0x2710, 0x2000 }, { 0x1a00, 0x270f, 0x0000 }, { 0x1a00, 0x2711, 0x0000 }, { 0x9a00, 0x2714, 0x2000 }, { 0x1a00, 0x2713, 0x0000 }, { 0x1a00, 0x2715, 0x0000 }, { 0x9a00, 0x271a, 0x3000 }, { 0x9a00, 0x2718, 0x2000 }, { 0x1a00, 0x2717, 0x0000 }, { 0x1a00, 0x2719, 0x0000 }, { 0x9a00, 0x271c, 0x2000 }, { 0x1a00, 0x271b, 0x0000 }, { 0x1a00, 0x271d, 0x0000 }, { 0x9a00, 0x272f, 0x5000 }, { 0x9a00, 0x2726, 0x4000 }, { 0x9a00, 0x2722, 0x3000 }, { 0x9a00, 0x2720, 0x2000 }, { 0x1a00, 0x271f, 0x0000 }, { 0x1a00, 0x2721, 0x0000 }, { 0x9a00, 0x2724, 0x2000 }, { 0x1a00, 0x2723, 0x0000 }, { 0x1a00, 0x2725, 0x0000 }, { 0x9a00, 0x272b, 0x3000 }, { 0x9a00, 0x2729, 0x2000 }, { 0x1a00, 0x2727, 0x0000 }, { 0x1a00, 0x272a, 0x0000 }, { 0x9a00, 0x272d, 0x2000 }, { 0x1a00, 0x272c, 0x0000 }, { 0x1a00, 0x272e, 0x0000 }, { 0x9a00, 0x2737, 0x4000 }, { 0x9a00, 0x2733, 0x3000 }, { 0x9a00, 0x2731, 0x2000 }, { 0x1a00, 0x2730, 0x0000 }, { 0x1a00, 0x2732, 0x0000 }, { 0x9a00, 0x2735, 0x2000 }, { 0x1a00, 0x2734, 0x0000 }, { 0x1a00, 0x2736, 0x0000 }, { 0x9a00, 0x273b, 0x3000 }, { 0x9a00, 0x2739, 0x2000 }, { 0x1a00, 0x2738, 0x0000 }, { 0x1a00, 0x273a, 0x0000 }, { 0x9a00, 0x273d, 0x2000 }, { 0x1a00, 0x273c, 0x0000 }, { 0x1a00, 0x273e, 0x0000 }, { 0x9a00, 0x2767, 0x6000 }, { 0x9a00, 0x2751, 0x5000 }, { 0x9a00, 0x2747, 0x4000 }, { 0x9a00, 0x2743, 0x3000 }, { 0x9a00, 0x2741, 0x2000 }, { 0x1a00, 0x2740, 0x0000 }, { 0x1a00, 0x2742, 0x0000 }, { 0x9a00, 0x2745, 0x2000 }, { 0x1a00, 0x2744, 0x0000 }, { 0x1a00, 0x2746, 0x0000 }, { 0x9a00, 0x274b, 0x3000 }, { 0x9a00, 0x2749, 0x2000 }, { 0x1a00, 0x2748, 0x0000 }, { 0x1a00, 0x274a, 0x0000 }, { 0x9a00, 0x274f, 0x2000 }, { 0x1a00, 0x274d, 0x0000 }, { 0x1a00, 0x2750, 0x0000 }, { 0x9a00, 0x275d, 0x4000 }, { 0x9a00, 0x2759, 0x3000 }, { 0x9a00, 0x2756, 0x2000 }, { 0x1a00, 0x2752, 0x0000 }, { 0x1a00, 0x2758, 0x0000 }, { 0x9a00, 0x275b, 0x2000 }, { 0x1a00, 0x275a, 0x0000 }, { 0x1a00, 0x275c, 0x0000 }, { 0x9a00, 0x2763, 0x3000 }, { 0x9a00, 0x2761, 0x2000 }, { 0x1a00, 0x275e, 0x0000 }, { 0x1a00, 0x2762, 0x0000 }, { 0x9a00, 0x2765, 0x2000 }, { 0x1a00, 0x2764, 0x0000 }, { 0x1a00, 0x2766, 0x0000 }, { 0x8f00, 0x2777, 0x5000 }, { 0x9200, 0x276f, 0x4000 }, { 0x9200, 0x276b, 0x3000 }, { 0x9200, 0x2769, 0x2000 }, { 0x1600, 0x2768, 0x0000 }, { 0x1600, 0x276a, 0x0000 }, { 0x9200, 0x276d, 0x2000 }, { 0x1600, 0x276c, 0x0000 }, { 0x1600, 0x276e, 0x0000 }, { 0x9200, 0x2773, 0x3000 }, { 0x9200, 0x2771, 0x2000 }, { 0x1600, 0x2770, 0x0000 }, { 0x1600, 0x2772, 0x0000 }, { 0x9200, 0x2775, 0x2000 }, { 0x1600, 0x2774, 0x0000 }, { 0x0f00, 0x2776, 0x0000 }, { 0x8f00, 0x277f, 0x4000 }, { 0x8f00, 0x277b, 0x3000 }, { 0x8f00, 0x2779, 0x2000 }, { 0x0f00, 0x2778, 0x0000 }, { 0x0f00, 0x277a, 0x0000 }, { 0x8f00, 0x277d, 0x2000 }, { 0x0f00, 0x277c, 0x0000 }, { 0x0f00, 0x277e, 0x0000 }, { 0x8f00, 0x2783, 0x3000 }, { 0x8f00, 0x2781, 0x2000 }, { 0x0f00, 0x2780, 0x0000 }, { 0x0f00, 0x2782, 0x0000 }, { 0x8f00, 0x2785, 0x2000 }, { 0x0f00, 0x2784, 0x0000 }, { 0x0f00, 0x2786, 0x0000 }, { 0x9900, 0x29a0, 0xa000 }, { 0x9a00, 0x28a0, 0x9000 }, { 0x9a00, 0x2820, 0x8000 }, { 0x9900, 0x27dc, 0x7000 }, { 0x9a00, 0x27aa, 0x6000 }, { 0x9a00, 0x279a, 0x5000 }, { 0x8f00, 0x278f, 0x4000 }, { 0x8f00, 0x278b, 0x3000 }, { 0x8f00, 0x2789, 0x2000 }, { 0x0f00, 0x2788, 0x0000 }, { 0x0f00, 0x278a, 0x0000 }, { 0x8f00, 0x278d, 0x2000 }, { 0x0f00, 0x278c, 0x0000 }, { 0x0f00, 0x278e, 0x0000 }, { 0x8f00, 0x2793, 0x3000 }, { 0x8f00, 0x2791, 0x2000 }, { 0x0f00, 0x2790, 0x0000 }, { 0x0f00, 0x2792, 0x0000 }, { 0x9a00, 0x2798, 0x2000 }, { 0x1a00, 0x2794, 0x0000 }, { 0x1a00, 0x2799, 0x0000 }, { 0x9a00, 0x27a2, 0x4000 }, { 0x9a00, 0x279e, 0x3000 }, { 0x9a00, 0x279c, 0x2000 }, { 0x1a00, 0x279b, 0x0000 }, { 0x1a00, 0x279d, 0x0000 }, { 0x9a00, 0x27a0, 0x2000 }, { 0x1a00, 0x279f, 0x0000 }, { 0x1a00, 0x27a1, 0x0000 }, { 0x9a00, 0x27a6, 0x3000 }, { 0x9a00, 0x27a4, 0x2000 }, { 0x1a00, 0x27a3, 0x0000 }, { 0x1a00, 0x27a5, 0x0000 }, { 0x9a00, 0x27a8, 0x2000 }, { 0x1a00, 0x27a7, 0x0000 }, { 0x1a00, 0x27a9, 0x0000 }, { 0x9a00, 0x27bb, 0x5000 }, { 0x9a00, 0x27b3, 0x4000 }, { 0x9a00, 0x27ae, 0x3000 }, { 0x9a00, 0x27ac, 0x2000 }, { 0x1a00, 0x27ab, 0x0000 }, { 0x1a00, 0x27ad, 0x0000 }, { 0x9a00, 0x27b1, 0x2000 }, { 0x1a00, 0x27af, 0x0000 }, { 0x1a00, 0x27b2, 0x0000 }, { 0x9a00, 0x27b7, 0x3000 }, { 0x9a00, 0x27b5, 0x2000 }, { 0x1a00, 0x27b4, 0x0000 }, { 0x1a00, 0x27b6, 0x0000 }, { 0x9a00, 0x27b9, 0x2000 }, { 0x1a00, 0x27b8, 0x0000 }, { 0x1a00, 0x27ba, 0x0000 }, { 0x9900, 0x27d4, 0x4000 }, { 0x9900, 0x27d0, 0x3000 }, { 0x9a00, 0x27bd, 0x2000 }, { 0x1a00, 0x27bc, 0x0000 }, { 0x1a00, 0x27be, 0x0000 }, { 0x9900, 0x27d2, 0x2000 }, { 0x1900, 0x27d1, 0x0000 }, { 0x1900, 0x27d3, 0x0000 }, { 0x9900, 0x27d8, 0x3000 }, { 0x9900, 0x27d6, 0x2000 }, { 0x1900, 0x27d5, 0x0000 }, { 0x1900, 0x27d7, 0x0000 }, { 0x9900, 0x27da, 0x2000 }, { 0x1900, 0x27d9, 0x0000 }, { 0x1900, 0x27db, 0x0000 }, { 0x9a00, 0x2800, 0x6000 }, { 0x9900, 0x27f0, 0x5000 }, { 0x9900, 0x27e4, 0x4000 }, { 0x9900, 0x27e0, 0x3000 }, { 0x9900, 0x27de, 0x2000 }, { 0x1900, 0x27dd, 0x0000 }, { 0x1900, 0x27df, 0x0000 }, { 0x9900, 0x27e2, 0x2000 }, { 0x1900, 0x27e1, 0x0000 }, { 0x1900, 0x27e3, 0x0000 }, { 0x9600, 0x27e8, 0x3000 }, { 0x9600, 0x27e6, 0x2000 }, { 0x1900, 0x27e5, 0x0000 }, { 0x1200, 0x27e7, 0x0000 }, { 0x9600, 0x27ea, 0x2000 }, { 0x1200, 0x27e9, 0x0000 }, { 0x1200, 0x27eb, 0x0000 }, { 0x9900, 0x27f8, 0x4000 }, { 0x9900, 0x27f4, 0x3000 }, { 0x9900, 0x27f2, 0x2000 }, { 0x1900, 0x27f1, 0x0000 }, { 0x1900, 0x27f3, 0x0000 }, { 0x9900, 0x27f6, 0x2000 }, { 0x1900, 0x27f5, 0x0000 }, { 0x1900, 0x27f7, 0x0000 }, { 0x9900, 0x27fc, 0x3000 }, { 0x9900, 0x27fa, 0x2000 }, { 0x1900, 0x27f9, 0x0000 }, { 0x1900, 0x27fb, 0x0000 }, { 0x9900, 0x27fe, 0x2000 }, { 0x1900, 0x27fd, 0x0000 }, { 0x1900, 0x27ff, 0x0000 }, { 0x9a00, 0x2810, 0x5000 }, { 0x9a00, 0x2808, 0x4000 }, { 0x9a00, 0x2804, 0x3000 }, { 0x9a00, 0x2802, 0x2000 }, { 0x1a00, 0x2801, 0x0000 }, { 0x1a00, 0x2803, 0x0000 }, { 0x9a00, 0x2806, 0x2000 }, { 0x1a00, 0x2805, 0x0000 }, { 0x1a00, 0x2807, 0x0000 }, { 0x9a00, 0x280c, 0x3000 }, { 0x9a00, 0x280a, 0x2000 }, { 0x1a00, 0x2809, 0x0000 }, { 0x1a00, 0x280b, 0x0000 }, { 0x9a00, 0x280e, 0x2000 }, { 0x1a00, 0x280d, 0x0000 }, { 0x1a00, 0x280f, 0x0000 }, { 0x9a00, 0x2818, 0x4000 }, { 0x9a00, 0x2814, 0x3000 }, { 0x9a00, 0x2812, 0x2000 }, { 0x1a00, 0x2811, 0x0000 }, { 0x1a00, 0x2813, 0x0000 }, { 0x9a00, 0x2816, 0x2000 }, { 0x1a00, 0x2815, 0x0000 }, { 0x1a00, 0x2817, 0x0000 }, { 0x9a00, 0x281c, 0x3000 }, { 0x9a00, 0x281a, 0x2000 }, { 0x1a00, 0x2819, 0x0000 }, { 0x1a00, 0x281b, 0x0000 }, { 0x9a00, 0x281e, 0x2000 }, { 0x1a00, 0x281d, 0x0000 }, { 0x1a00, 0x281f, 0x0000 }, { 0x9a00, 0x2860, 0x7000 }, { 0x9a00, 0x2840, 0x6000 }, { 0x9a00, 0x2830, 0x5000 }, { 0x9a00, 0x2828, 0x4000 }, { 0x9a00, 0x2824, 0x3000 }, { 0x9a00, 0x2822, 0x2000 }, { 0x1a00, 0x2821, 0x0000 }, { 0x1a00, 0x2823, 0x0000 }, { 0x9a00, 0x2826, 0x2000 }, { 0x1a00, 0x2825, 0x0000 }, { 0x1a00, 0x2827, 0x0000 }, { 0x9a00, 0x282c, 0x3000 }, { 0x9a00, 0x282a, 0x2000 }, { 0x1a00, 0x2829, 0x0000 }, { 0x1a00, 0x282b, 0x0000 }, { 0x9a00, 0x282e, 0x2000 }, { 0x1a00, 0x282d, 0x0000 }, { 0x1a00, 0x282f, 0x0000 }, { 0x9a00, 0x2838, 0x4000 }, { 0x9a00, 0x2834, 0x3000 }, { 0x9a00, 0x2832, 0x2000 }, { 0x1a00, 0x2831, 0x0000 }, { 0x1a00, 0x2833, 0x0000 }, { 0x9a00, 0x2836, 0x2000 }, { 0x1a00, 0x2835, 0x0000 }, { 0x1a00, 0x2837, 0x0000 }, { 0x9a00, 0x283c, 0x3000 }, { 0x9a00, 0x283a, 0x2000 }, { 0x1a00, 0x2839, 0x0000 }, { 0x1a00, 0x283b, 0x0000 }, { 0x9a00, 0x283e, 0x2000 }, { 0x1a00, 0x283d, 0x0000 }, { 0x1a00, 0x283f, 0x0000 }, { 0x9a00, 0x2850, 0x5000 }, { 0x9a00, 0x2848, 0x4000 }, { 0x9a00, 0x2844, 0x3000 }, { 0x9a00, 0x2842, 0x2000 }, { 0x1a00, 0x2841, 0x0000 }, { 0x1a00, 0x2843, 0x0000 }, { 0x9a00, 0x2846, 0x2000 }, { 0x1a00, 0x2845, 0x0000 }, { 0x1a00, 0x2847, 0x0000 }, { 0x9a00, 0x284c, 0x3000 }, { 0x9a00, 0x284a, 0x2000 }, { 0x1a00, 0x2849, 0x0000 }, { 0x1a00, 0x284b, 0x0000 }, { 0x9a00, 0x284e, 0x2000 }, { 0x1a00, 0x284d, 0x0000 }, { 0x1a00, 0x284f, 0x0000 }, { 0x9a00, 0x2858, 0x4000 }, { 0x9a00, 0x2854, 0x3000 }, { 0x9a00, 0x2852, 0x2000 }, { 0x1a00, 0x2851, 0x0000 }, { 0x1a00, 0x2853, 0x0000 }, { 0x9a00, 0x2856, 0x2000 }, { 0x1a00, 0x2855, 0x0000 }, { 0x1a00, 0x2857, 0x0000 }, { 0x9a00, 0x285c, 0x3000 }, { 0x9a00, 0x285a, 0x2000 }, { 0x1a00, 0x2859, 0x0000 }, { 0x1a00, 0x285b, 0x0000 }, { 0x9a00, 0x285e, 0x2000 }, { 0x1a00, 0x285d, 0x0000 }, { 0x1a00, 0x285f, 0x0000 }, { 0x9a00, 0x2880, 0x6000 }, { 0x9a00, 0x2870, 0x5000 }, { 0x9a00, 0x2868, 0x4000 }, { 0x9a00, 0x2864, 0x3000 }, { 0x9a00, 0x2862, 0x2000 }, { 0x1a00, 0x2861, 0x0000 }, { 0x1a00, 0x2863, 0x0000 }, { 0x9a00, 0x2866, 0x2000 }, { 0x1a00, 0x2865, 0x0000 }, { 0x1a00, 0x2867, 0x0000 }, { 0x9a00, 0x286c, 0x3000 }, { 0x9a00, 0x286a, 0x2000 }, { 0x1a00, 0x2869, 0x0000 }, { 0x1a00, 0x286b, 0x0000 }, { 0x9a00, 0x286e, 0x2000 }, { 0x1a00, 0x286d, 0x0000 }, { 0x1a00, 0x286f, 0x0000 }, { 0x9a00, 0x2878, 0x4000 }, { 0x9a00, 0x2874, 0x3000 }, { 0x9a00, 0x2872, 0x2000 }, { 0x1a00, 0x2871, 0x0000 }, { 0x1a00, 0x2873, 0x0000 }, { 0x9a00, 0x2876, 0x2000 }, { 0x1a00, 0x2875, 0x0000 }, { 0x1a00, 0x2877, 0x0000 }, { 0x9a00, 0x287c, 0x3000 }, { 0x9a00, 0x287a, 0x2000 }, { 0x1a00, 0x2879, 0x0000 }, { 0x1a00, 0x287b, 0x0000 }, { 0x9a00, 0x287e, 0x2000 }, { 0x1a00, 0x287d, 0x0000 }, { 0x1a00, 0x287f, 0x0000 }, { 0x9a00, 0x2890, 0x5000 }, { 0x9a00, 0x2888, 0x4000 }, { 0x9a00, 0x2884, 0x3000 }, { 0x9a00, 0x2882, 0x2000 }, { 0x1a00, 0x2881, 0x0000 }, { 0x1a00, 0x2883, 0x0000 }, { 0x9a00, 0x2886, 0x2000 }, { 0x1a00, 0x2885, 0x0000 }, { 0x1a00, 0x2887, 0x0000 }, { 0x9a00, 0x288c, 0x3000 }, { 0x9a00, 0x288a, 0x2000 }, { 0x1a00, 0x2889, 0x0000 }, { 0x1a00, 0x288b, 0x0000 }, { 0x9a00, 0x288e, 0x2000 }, { 0x1a00, 0x288d, 0x0000 }, { 0x1a00, 0x288f, 0x0000 }, { 0x9a00, 0x2898, 0x4000 }, { 0x9a00, 0x2894, 0x3000 }, { 0x9a00, 0x2892, 0x2000 }, { 0x1a00, 0x2891, 0x0000 }, { 0x1a00, 0x2893, 0x0000 }, { 0x9a00, 0x2896, 0x2000 }, { 0x1a00, 0x2895, 0x0000 }, { 0x1a00, 0x2897, 0x0000 }, { 0x9a00, 0x289c, 0x3000 }, { 0x9a00, 0x289a, 0x2000 }, { 0x1a00, 0x2899, 0x0000 }, { 0x1a00, 0x289b, 0x0000 }, { 0x9a00, 0x289e, 0x2000 }, { 0x1a00, 0x289d, 0x0000 }, { 0x1a00, 0x289f, 0x0000 }, { 0x9900, 0x2920, 0x8000 }, { 0x9a00, 0x28e0, 0x7000 }, { 0x9a00, 0x28c0, 0x6000 }, { 0x9a00, 0x28b0, 0x5000 }, { 0x9a00, 0x28a8, 0x4000 }, { 0x9a00, 0x28a4, 0x3000 }, { 0x9a00, 0x28a2, 0x2000 }, { 0x1a00, 0x28a1, 0x0000 }, { 0x1a00, 0x28a3, 0x0000 }, { 0x9a00, 0x28a6, 0x2000 }, { 0x1a00, 0x28a5, 0x0000 }, { 0x1a00, 0x28a7, 0x0000 }, { 0x9a00, 0x28ac, 0x3000 }, { 0x9a00, 0x28aa, 0x2000 }, { 0x1a00, 0x28a9, 0x0000 }, { 0x1a00, 0x28ab, 0x0000 }, { 0x9a00, 0x28ae, 0x2000 }, { 0x1a00, 0x28ad, 0x0000 }, { 0x1a00, 0x28af, 0x0000 }, { 0x9a00, 0x28b8, 0x4000 }, { 0x9a00, 0x28b4, 0x3000 }, { 0x9a00, 0x28b2, 0x2000 }, { 0x1a00, 0x28b1, 0x0000 }, { 0x1a00, 0x28b3, 0x0000 }, { 0x9a00, 0x28b6, 0x2000 }, { 0x1a00, 0x28b5, 0x0000 }, { 0x1a00, 0x28b7, 0x0000 }, { 0x9a00, 0x28bc, 0x3000 }, { 0x9a00, 0x28ba, 0x2000 }, { 0x1a00, 0x28b9, 0x0000 }, { 0x1a00, 0x28bb, 0x0000 }, { 0x9a00, 0x28be, 0x2000 }, { 0x1a00, 0x28bd, 0x0000 }, { 0x1a00, 0x28bf, 0x0000 }, { 0x9a00, 0x28d0, 0x5000 }, { 0x9a00, 0x28c8, 0x4000 }, { 0x9a00, 0x28c4, 0x3000 }, { 0x9a00, 0x28c2, 0x2000 }, { 0x1a00, 0x28c1, 0x0000 }, { 0x1a00, 0x28c3, 0x0000 }, { 0x9a00, 0x28c6, 0x2000 }, { 0x1a00, 0x28c5, 0x0000 }, { 0x1a00, 0x28c7, 0x0000 }, { 0x9a00, 0x28cc, 0x3000 }, { 0x9a00, 0x28ca, 0x2000 }, { 0x1a00, 0x28c9, 0x0000 }, { 0x1a00, 0x28cb, 0x0000 }, { 0x9a00, 0x28ce, 0x2000 }, { 0x1a00, 0x28cd, 0x0000 }, { 0x1a00, 0x28cf, 0x0000 }, { 0x9a00, 0x28d8, 0x4000 }, { 0x9a00, 0x28d4, 0x3000 }, { 0x9a00, 0x28d2, 0x2000 }, { 0x1a00, 0x28d1, 0x0000 }, { 0x1a00, 0x28d3, 0x0000 }, { 0x9a00, 0x28d6, 0x2000 }, { 0x1a00, 0x28d5, 0x0000 }, { 0x1a00, 0x28d7, 0x0000 }, { 0x9a00, 0x28dc, 0x3000 }, { 0x9a00, 0x28da, 0x2000 }, { 0x1a00, 0x28d9, 0x0000 }, { 0x1a00, 0x28db, 0x0000 }, { 0x9a00, 0x28de, 0x2000 }, { 0x1a00, 0x28dd, 0x0000 }, { 0x1a00, 0x28df, 0x0000 }, { 0x9900, 0x2900, 0x6000 }, { 0x9a00, 0x28f0, 0x5000 }, { 0x9a00, 0x28e8, 0x4000 }, { 0x9a00, 0x28e4, 0x3000 }, { 0x9a00, 0x28e2, 0x2000 }, { 0x1a00, 0x28e1, 0x0000 }, { 0x1a00, 0x28e3, 0x0000 }, { 0x9a00, 0x28e6, 0x2000 }, { 0x1a00, 0x28e5, 0x0000 }, { 0x1a00, 0x28e7, 0x0000 }, { 0x9a00, 0x28ec, 0x3000 }, { 0x9a00, 0x28ea, 0x2000 }, { 0x1a00, 0x28e9, 0x0000 }, { 0x1a00, 0x28eb, 0x0000 }, { 0x9a00, 0x28ee, 0x2000 }, { 0x1a00, 0x28ed, 0x0000 }, { 0x1a00, 0x28ef, 0x0000 }, { 0x9a00, 0x28f8, 0x4000 }, { 0x9a00, 0x28f4, 0x3000 }, { 0x9a00, 0x28f2, 0x2000 }, { 0x1a00, 0x28f1, 0x0000 }, { 0x1a00, 0x28f3, 0x0000 }, { 0x9a00, 0x28f6, 0x2000 }, { 0x1a00, 0x28f5, 0x0000 }, { 0x1a00, 0x28f7, 0x0000 }, { 0x9a00, 0x28fc, 0x3000 }, { 0x9a00, 0x28fa, 0x2000 }, { 0x1a00, 0x28f9, 0x0000 }, { 0x1a00, 0x28fb, 0x0000 }, { 0x9a00, 0x28fe, 0x2000 }, { 0x1a00, 0x28fd, 0x0000 }, { 0x1a00, 0x28ff, 0x0000 }, { 0x9900, 0x2910, 0x5000 }, { 0x9900, 0x2908, 0x4000 }, { 0x9900, 0x2904, 0x3000 }, { 0x9900, 0x2902, 0x2000 }, { 0x1900, 0x2901, 0x0000 }, { 0x1900, 0x2903, 0x0000 }, { 0x9900, 0x2906, 0x2000 }, { 0x1900, 0x2905, 0x0000 }, { 0x1900, 0x2907, 0x0000 }, { 0x9900, 0x290c, 0x3000 }, { 0x9900, 0x290a, 0x2000 }, { 0x1900, 0x2909, 0x0000 }, { 0x1900, 0x290b, 0x0000 }, { 0x9900, 0x290e, 0x2000 }, { 0x1900, 0x290d, 0x0000 }, { 0x1900, 0x290f, 0x0000 }, { 0x9900, 0x2918, 0x4000 }, { 0x9900, 0x2914, 0x3000 }, { 0x9900, 0x2912, 0x2000 }, { 0x1900, 0x2911, 0x0000 }, { 0x1900, 0x2913, 0x0000 }, { 0x9900, 0x2916, 0x2000 }, { 0x1900, 0x2915, 0x0000 }, { 0x1900, 0x2917, 0x0000 }, { 0x9900, 0x291c, 0x3000 }, { 0x9900, 0x291a, 0x2000 }, { 0x1900, 0x2919, 0x0000 }, { 0x1900, 0x291b, 0x0000 }, { 0x9900, 0x291e, 0x2000 }, { 0x1900, 0x291d, 0x0000 }, { 0x1900, 0x291f, 0x0000 }, { 0x9900, 0x2960, 0x7000 }, { 0x9900, 0x2940, 0x6000 }, { 0x9900, 0x2930, 0x5000 }, { 0x9900, 0x2928, 0x4000 }, { 0x9900, 0x2924, 0x3000 }, { 0x9900, 0x2922, 0x2000 }, { 0x1900, 0x2921, 0x0000 }, { 0x1900, 0x2923, 0x0000 }, { 0x9900, 0x2926, 0x2000 }, { 0x1900, 0x2925, 0x0000 }, { 0x1900, 0x2927, 0x0000 }, { 0x9900, 0x292c, 0x3000 }, { 0x9900, 0x292a, 0x2000 }, { 0x1900, 0x2929, 0x0000 }, { 0x1900, 0x292b, 0x0000 }, { 0x9900, 0x292e, 0x2000 }, { 0x1900, 0x292d, 0x0000 }, { 0x1900, 0x292f, 0x0000 }, { 0x9900, 0x2938, 0x4000 }, { 0x9900, 0x2934, 0x3000 }, { 0x9900, 0x2932, 0x2000 }, { 0x1900, 0x2931, 0x0000 }, { 0x1900, 0x2933, 0x0000 }, { 0x9900, 0x2936, 0x2000 }, { 0x1900, 0x2935, 0x0000 }, { 0x1900, 0x2937, 0x0000 }, { 0x9900, 0x293c, 0x3000 }, { 0x9900, 0x293a, 0x2000 }, { 0x1900, 0x2939, 0x0000 }, { 0x1900, 0x293b, 0x0000 }, { 0x9900, 0x293e, 0x2000 }, { 0x1900, 0x293d, 0x0000 }, { 0x1900, 0x293f, 0x0000 }, { 0x9900, 0x2950, 0x5000 }, { 0x9900, 0x2948, 0x4000 }, { 0x9900, 0x2944, 0x3000 }, { 0x9900, 0x2942, 0x2000 }, { 0x1900, 0x2941, 0x0000 }, { 0x1900, 0x2943, 0x0000 }, { 0x9900, 0x2946, 0x2000 }, { 0x1900, 0x2945, 0x0000 }, { 0x1900, 0x2947, 0x0000 }, { 0x9900, 0x294c, 0x3000 }, { 0x9900, 0x294a, 0x2000 }, { 0x1900, 0x2949, 0x0000 }, { 0x1900, 0x294b, 0x0000 }, { 0x9900, 0x294e, 0x2000 }, { 0x1900, 0x294d, 0x0000 }, { 0x1900, 0x294f, 0x0000 }, { 0x9900, 0x2958, 0x4000 }, { 0x9900, 0x2954, 0x3000 }, { 0x9900, 0x2952, 0x2000 }, { 0x1900, 0x2951, 0x0000 }, { 0x1900, 0x2953, 0x0000 }, { 0x9900, 0x2956, 0x2000 }, { 0x1900, 0x2955, 0x0000 }, { 0x1900, 0x2957, 0x0000 }, { 0x9900, 0x295c, 0x3000 }, { 0x9900, 0x295a, 0x2000 }, { 0x1900, 0x2959, 0x0000 }, { 0x1900, 0x295b, 0x0000 }, { 0x9900, 0x295e, 0x2000 }, { 0x1900, 0x295d, 0x0000 }, { 0x1900, 0x295f, 0x0000 }, { 0x9900, 0x2980, 0x6000 }, { 0x9900, 0x2970, 0x5000 }, { 0x9900, 0x2968, 0x4000 }, { 0x9900, 0x2964, 0x3000 }, { 0x9900, 0x2962, 0x2000 }, { 0x1900, 0x2961, 0x0000 }, { 0x1900, 0x2963, 0x0000 }, { 0x9900, 0x2966, 0x2000 }, { 0x1900, 0x2965, 0x0000 }, { 0x1900, 0x2967, 0x0000 }, { 0x9900, 0x296c, 0x3000 }, { 0x9900, 0x296a, 0x2000 }, { 0x1900, 0x2969, 0x0000 }, { 0x1900, 0x296b, 0x0000 }, { 0x9900, 0x296e, 0x2000 }, { 0x1900, 0x296d, 0x0000 }, { 0x1900, 0x296f, 0x0000 }, { 0x9900, 0x2978, 0x4000 }, { 0x9900, 0x2974, 0x3000 }, { 0x9900, 0x2972, 0x2000 }, { 0x1900, 0x2971, 0x0000 }, { 0x1900, 0x2973, 0x0000 }, { 0x9900, 0x2976, 0x2000 }, { 0x1900, 0x2975, 0x0000 }, { 0x1900, 0x2977, 0x0000 }, { 0x9900, 0x297c, 0x3000 }, { 0x9900, 0x297a, 0x2000 }, { 0x1900, 0x2979, 0x0000 }, { 0x1900, 0x297b, 0x0000 }, { 0x9900, 0x297e, 0x2000 }, { 0x1900, 0x297d, 0x0000 }, { 0x1900, 0x297f, 0x0000 }, { 0x9200, 0x2990, 0x5000 }, { 0x9200, 0x2988, 0x4000 }, { 0x9200, 0x2984, 0x3000 }, { 0x9900, 0x2982, 0x2000 }, { 0x1900, 0x2981, 0x0000 }, { 0x1600, 0x2983, 0x0000 }, { 0x9200, 0x2986, 0x2000 }, { 0x1600, 0x2985, 0x0000 }, { 0x1600, 0x2987, 0x0000 }, { 0x9200, 0x298c, 0x3000 }, { 0x9200, 0x298a, 0x2000 }, { 0x1600, 0x2989, 0x0000 }, { 0x1600, 0x298b, 0x0000 }, { 0x9200, 0x298e, 0x2000 }, { 0x1600, 0x298d, 0x0000 }, { 0x1600, 0x298f, 0x0000 }, { 0x9200, 0x2998, 0x4000 }, { 0x9200, 0x2994, 0x3000 }, { 0x9200, 0x2992, 0x2000 }, { 0x1600, 0x2991, 0x0000 }, { 0x1600, 0x2993, 0x0000 }, { 0x9200, 0x2996, 0x2000 }, { 0x1600, 0x2995, 0x0000 }, { 0x1600, 0x2997, 0x0000 }, { 0x9900, 0x299c, 0x3000 }, { 0x9900, 0x299a, 0x2000 }, { 0x1900, 0x2999, 0x0000 }, { 0x1900, 0x299b, 0x0000 }, { 0x9900, 0x299e, 0x2000 }, { 0x1900, 0x299d, 0x0000 }, { 0x1900, 0x299f, 0x0000 }, { 0x9900, 0x2aa0, 0x9000 }, { 0x9900, 0x2a20, 0x8000 }, { 0x9900, 0x29e0, 0x7000 }, { 0x9900, 0x29c0, 0x6000 }, { 0x9900, 0x29b0, 0x5000 }, { 0x9900, 0x29a8, 0x4000 }, { 0x9900, 0x29a4, 0x3000 }, { 0x9900, 0x29a2, 0x2000 }, { 0x1900, 0x29a1, 0x0000 }, { 0x1900, 0x29a3, 0x0000 }, { 0x9900, 0x29a6, 0x2000 }, { 0x1900, 0x29a5, 0x0000 }, { 0x1900, 0x29a7, 0x0000 }, { 0x9900, 0x29ac, 0x3000 }, { 0x9900, 0x29aa, 0x2000 }, { 0x1900, 0x29a9, 0x0000 }, { 0x1900, 0x29ab, 0x0000 }, { 0x9900, 0x29ae, 0x2000 }, { 0x1900, 0x29ad, 0x0000 }, { 0x1900, 0x29af, 0x0000 }, { 0x9900, 0x29b8, 0x4000 }, { 0x9900, 0x29b4, 0x3000 }, { 0x9900, 0x29b2, 0x2000 }, { 0x1900, 0x29b1, 0x0000 }, { 0x1900, 0x29b3, 0x0000 }, { 0x9900, 0x29b6, 0x2000 }, { 0x1900, 0x29b5, 0x0000 }, { 0x1900, 0x29b7, 0x0000 }, { 0x9900, 0x29bc, 0x3000 }, { 0x9900, 0x29ba, 0x2000 }, { 0x1900, 0x29b9, 0x0000 }, { 0x1900, 0x29bb, 0x0000 }, { 0x9900, 0x29be, 0x2000 }, { 0x1900, 0x29bd, 0x0000 }, { 0x1900, 0x29bf, 0x0000 }, { 0x9900, 0x29d0, 0x5000 }, { 0x9900, 0x29c8, 0x4000 }, { 0x9900, 0x29c4, 0x3000 }, { 0x9900, 0x29c2, 0x2000 }, { 0x1900, 0x29c1, 0x0000 }, { 0x1900, 0x29c3, 0x0000 }, { 0x9900, 0x29c6, 0x2000 }, { 0x1900, 0x29c5, 0x0000 }, { 0x1900, 0x29c7, 0x0000 }, { 0x9900, 0x29cc, 0x3000 }, { 0x9900, 0x29ca, 0x2000 }, { 0x1900, 0x29c9, 0x0000 }, { 0x1900, 0x29cb, 0x0000 }, { 0x9900, 0x29ce, 0x2000 }, { 0x1900, 0x29cd, 0x0000 }, { 0x1900, 0x29cf, 0x0000 }, { 0x9600, 0x29d8, 0x4000 }, { 0x9900, 0x29d4, 0x3000 }, { 0x9900, 0x29d2, 0x2000 }, { 0x1900, 0x29d1, 0x0000 }, { 0x1900, 0x29d3, 0x0000 }, { 0x9900, 0x29d6, 0x2000 }, { 0x1900, 0x29d5, 0x0000 }, { 0x1900, 0x29d7, 0x0000 }, { 0x9900, 0x29dc, 0x3000 }, { 0x9600, 0x29da, 0x2000 }, { 0x1200, 0x29d9, 0x0000 }, { 0x1200, 0x29db, 0x0000 }, { 0x9900, 0x29de, 0x2000 }, { 0x1900, 0x29dd, 0x0000 }, { 0x1900, 0x29df, 0x0000 }, { 0x9900, 0x2a00, 0x6000 }, { 0x9900, 0x29f0, 0x5000 }, { 0x9900, 0x29e8, 0x4000 }, { 0x9900, 0x29e4, 0x3000 }, { 0x9900, 0x29e2, 0x2000 }, { 0x1900, 0x29e1, 0x0000 }, { 0x1900, 0x29e3, 0x0000 }, { 0x9900, 0x29e6, 0x2000 }, { 0x1900, 0x29e5, 0x0000 }, { 0x1900, 0x29e7, 0x0000 }, { 0x9900, 0x29ec, 0x3000 }, { 0x9900, 0x29ea, 0x2000 }, { 0x1900, 0x29e9, 0x0000 }, { 0x1900, 0x29eb, 0x0000 }, { 0x9900, 0x29ee, 0x2000 }, { 0x1900, 0x29ed, 0x0000 }, { 0x1900, 0x29ef, 0x0000 }, { 0x9900, 0x29f8, 0x4000 }, { 0x9900, 0x29f4, 0x3000 }, { 0x9900, 0x29f2, 0x2000 }, { 0x1900, 0x29f1, 0x0000 }, { 0x1900, 0x29f3, 0x0000 }, { 0x9900, 0x29f6, 0x2000 }, { 0x1900, 0x29f5, 0x0000 }, { 0x1900, 0x29f7, 0x0000 }, { 0x9600, 0x29fc, 0x3000 }, { 0x9900, 0x29fa, 0x2000 }, { 0x1900, 0x29f9, 0x0000 }, { 0x1900, 0x29fb, 0x0000 }, { 0x9900, 0x29fe, 0x2000 }, { 0x1200, 0x29fd, 0x0000 }, { 0x1900, 0x29ff, 0x0000 }, { 0x9900, 0x2a10, 0x5000 }, { 0x9900, 0x2a08, 0x4000 }, { 0x9900, 0x2a04, 0x3000 }, { 0x9900, 0x2a02, 0x2000 }, { 0x1900, 0x2a01, 0x0000 }, { 0x1900, 0x2a03, 0x0000 }, { 0x9900, 0x2a06, 0x2000 }, { 0x1900, 0x2a05, 0x0000 }, { 0x1900, 0x2a07, 0x0000 }, { 0x9900, 0x2a0c, 0x3000 }, { 0x9900, 0x2a0a, 0x2000 }, { 0x1900, 0x2a09, 0x0000 }, { 0x1900, 0x2a0b, 0x0000 }, { 0x9900, 0x2a0e, 0x2000 }, { 0x1900, 0x2a0d, 0x0000 }, { 0x1900, 0x2a0f, 0x0000 }, { 0x9900, 0x2a18, 0x4000 }, { 0x9900, 0x2a14, 0x3000 }, { 0x9900, 0x2a12, 0x2000 }, { 0x1900, 0x2a11, 0x0000 }, { 0x1900, 0x2a13, 0x0000 }, { 0x9900, 0x2a16, 0x2000 }, { 0x1900, 0x2a15, 0x0000 }, { 0x1900, 0x2a17, 0x0000 }, { 0x9900, 0x2a1c, 0x3000 }, { 0x9900, 0x2a1a, 0x2000 }, { 0x1900, 0x2a19, 0x0000 }, { 0x1900, 0x2a1b, 0x0000 }, { 0x9900, 0x2a1e, 0x2000 }, { 0x1900, 0x2a1d, 0x0000 }, { 0x1900, 0x2a1f, 0x0000 }, { 0x9900, 0x2a60, 0x7000 }, { 0x9900, 0x2a40, 0x6000 }, { 0x9900, 0x2a30, 0x5000 }, { 0x9900, 0x2a28, 0x4000 }, { 0x9900, 0x2a24, 0x3000 }, { 0x9900, 0x2a22, 0x2000 }, { 0x1900, 0x2a21, 0x0000 }, { 0x1900, 0x2a23, 0x0000 }, { 0x9900, 0x2a26, 0x2000 }, { 0x1900, 0x2a25, 0x0000 }, { 0x1900, 0x2a27, 0x0000 }, { 0x9900, 0x2a2c, 0x3000 }, { 0x9900, 0x2a2a, 0x2000 }, { 0x1900, 0x2a29, 0x0000 }, { 0x1900, 0x2a2b, 0x0000 }, { 0x9900, 0x2a2e, 0x2000 }, { 0x1900, 0x2a2d, 0x0000 }, { 0x1900, 0x2a2f, 0x0000 }, { 0x9900, 0x2a38, 0x4000 }, { 0x9900, 0x2a34, 0x3000 }, { 0x9900, 0x2a32, 0x2000 }, { 0x1900, 0x2a31, 0x0000 }, { 0x1900, 0x2a33, 0x0000 }, { 0x9900, 0x2a36, 0x2000 }, { 0x1900, 0x2a35, 0x0000 }, { 0x1900, 0x2a37, 0x0000 }, { 0x9900, 0x2a3c, 0x3000 }, { 0x9900, 0x2a3a, 0x2000 }, { 0x1900, 0x2a39, 0x0000 }, { 0x1900, 0x2a3b, 0x0000 }, { 0x9900, 0x2a3e, 0x2000 }, { 0x1900, 0x2a3d, 0x0000 }, { 0x1900, 0x2a3f, 0x0000 }, { 0x9900, 0x2a50, 0x5000 }, { 0x9900, 0x2a48, 0x4000 }, { 0x9900, 0x2a44, 0x3000 }, { 0x9900, 0x2a42, 0x2000 }, { 0x1900, 0x2a41, 0x0000 }, { 0x1900, 0x2a43, 0x0000 }, { 0x9900, 0x2a46, 0x2000 }, { 0x1900, 0x2a45, 0x0000 }, { 0x1900, 0x2a47, 0x0000 }, { 0x9900, 0x2a4c, 0x3000 }, { 0x9900, 0x2a4a, 0x2000 }, { 0x1900, 0x2a49, 0x0000 }, { 0x1900, 0x2a4b, 0x0000 }, { 0x9900, 0x2a4e, 0x2000 }, { 0x1900, 0x2a4d, 0x0000 }, { 0x1900, 0x2a4f, 0x0000 }, { 0x9900, 0x2a58, 0x4000 }, { 0x9900, 0x2a54, 0x3000 }, { 0x9900, 0x2a52, 0x2000 }, { 0x1900, 0x2a51, 0x0000 }, { 0x1900, 0x2a53, 0x0000 }, { 0x9900, 0x2a56, 0x2000 }, { 0x1900, 0x2a55, 0x0000 }, { 0x1900, 0x2a57, 0x0000 }, { 0x9900, 0x2a5c, 0x3000 }, { 0x9900, 0x2a5a, 0x2000 }, { 0x1900, 0x2a59, 0x0000 }, { 0x1900, 0x2a5b, 0x0000 }, { 0x9900, 0x2a5e, 0x2000 }, { 0x1900, 0x2a5d, 0x0000 }, { 0x1900, 0x2a5f, 0x0000 }, { 0x9900, 0x2a80, 0x6000 }, { 0x9900, 0x2a70, 0x5000 }, { 0x9900, 0x2a68, 0x4000 }, { 0x9900, 0x2a64, 0x3000 }, { 0x9900, 0x2a62, 0x2000 }, { 0x1900, 0x2a61, 0x0000 }, { 0x1900, 0x2a63, 0x0000 }, { 0x9900, 0x2a66, 0x2000 }, { 0x1900, 0x2a65, 0x0000 }, { 0x1900, 0x2a67, 0x0000 }, { 0x9900, 0x2a6c, 0x3000 }, { 0x9900, 0x2a6a, 0x2000 }, { 0x1900, 0x2a69, 0x0000 }, { 0x1900, 0x2a6b, 0x0000 }, { 0x9900, 0x2a6e, 0x2000 }, { 0x1900, 0x2a6d, 0x0000 }, { 0x1900, 0x2a6f, 0x0000 }, { 0x9900, 0x2a78, 0x4000 }, { 0x9900, 0x2a74, 0x3000 }, { 0x9900, 0x2a72, 0x2000 }, { 0x1900, 0x2a71, 0x0000 }, { 0x1900, 0x2a73, 0x0000 }, { 0x9900, 0x2a76, 0x2000 }, { 0x1900, 0x2a75, 0x0000 }, { 0x1900, 0x2a77, 0x0000 }, { 0x9900, 0x2a7c, 0x3000 }, { 0x9900, 0x2a7a, 0x2000 }, { 0x1900, 0x2a79, 0x0000 }, { 0x1900, 0x2a7b, 0x0000 }, { 0x9900, 0x2a7e, 0x2000 }, { 0x1900, 0x2a7d, 0x0000 }, { 0x1900, 0x2a7f, 0x0000 }, { 0x9900, 0x2a90, 0x5000 }, { 0x9900, 0x2a88, 0x4000 }, { 0x9900, 0x2a84, 0x3000 }, { 0x9900, 0x2a82, 0x2000 }, { 0x1900, 0x2a81, 0x0000 }, { 0x1900, 0x2a83, 0x0000 }, { 0x9900, 0x2a86, 0x2000 }, { 0x1900, 0x2a85, 0x0000 }, { 0x1900, 0x2a87, 0x0000 }, { 0x9900, 0x2a8c, 0x3000 }, { 0x9900, 0x2a8a, 0x2000 }, { 0x1900, 0x2a89, 0x0000 }, { 0x1900, 0x2a8b, 0x0000 }, { 0x9900, 0x2a8e, 0x2000 }, { 0x1900, 0x2a8d, 0x0000 }, { 0x1900, 0x2a8f, 0x0000 }, { 0x9900, 0x2a98, 0x4000 }, { 0x9900, 0x2a94, 0x3000 }, { 0x9900, 0x2a92, 0x2000 }, { 0x1900, 0x2a91, 0x0000 }, { 0x1900, 0x2a93, 0x0000 }, { 0x9900, 0x2a96, 0x2000 }, { 0x1900, 0x2a95, 0x0000 }, { 0x1900, 0x2a97, 0x0000 }, { 0x9900, 0x2a9c, 0x3000 }, { 0x9900, 0x2a9a, 0x2000 }, { 0x1900, 0x2a99, 0x0000 }, { 0x1900, 0x2a9b, 0x0000 }, { 0x9900, 0x2a9e, 0x2000 }, { 0x1900, 0x2a9d, 0x0000 }, { 0x1900, 0x2a9f, 0x0000 }, { 0x9a00, 0x2e92, 0x8000 }, { 0x9900, 0x2ae0, 0x7000 }, { 0x9900, 0x2ac0, 0x6000 }, { 0x9900, 0x2ab0, 0x5000 }, { 0x9900, 0x2aa8, 0x4000 }, { 0x9900, 0x2aa4, 0x3000 }, { 0x9900, 0x2aa2, 0x2000 }, { 0x1900, 0x2aa1, 0x0000 }, { 0x1900, 0x2aa3, 0x0000 }, { 0x9900, 0x2aa6, 0x2000 }, { 0x1900, 0x2aa5, 0x0000 }, { 0x1900, 0x2aa7, 0x0000 }, { 0x9900, 0x2aac, 0x3000 }, { 0x9900, 0x2aaa, 0x2000 }, { 0x1900, 0x2aa9, 0x0000 }, { 0x1900, 0x2aab, 0x0000 }, { 0x9900, 0x2aae, 0x2000 }, { 0x1900, 0x2aad, 0x0000 }, { 0x1900, 0x2aaf, 0x0000 }, { 0x9900, 0x2ab8, 0x4000 }, { 0x9900, 0x2ab4, 0x3000 }, { 0x9900, 0x2ab2, 0x2000 }, { 0x1900, 0x2ab1, 0x0000 }, { 0x1900, 0x2ab3, 0x0000 }, { 0x9900, 0x2ab6, 0x2000 }, { 0x1900, 0x2ab5, 0x0000 }, { 0x1900, 0x2ab7, 0x0000 }, { 0x9900, 0x2abc, 0x3000 }, { 0x9900, 0x2aba, 0x2000 }, { 0x1900, 0x2ab9, 0x0000 }, { 0x1900, 0x2abb, 0x0000 }, { 0x9900, 0x2abe, 0x2000 }, { 0x1900, 0x2abd, 0x0000 }, { 0x1900, 0x2abf, 0x0000 }, { 0x9900, 0x2ad0, 0x5000 }, { 0x9900, 0x2ac8, 0x4000 }, { 0x9900, 0x2ac4, 0x3000 }, { 0x9900, 0x2ac2, 0x2000 }, { 0x1900, 0x2ac1, 0x0000 }, { 0x1900, 0x2ac3, 0x0000 }, { 0x9900, 0x2ac6, 0x2000 }, { 0x1900, 0x2ac5, 0x0000 }, { 0x1900, 0x2ac7, 0x0000 }, { 0x9900, 0x2acc, 0x3000 }, { 0x9900, 0x2aca, 0x2000 }, { 0x1900, 0x2ac9, 0x0000 }, { 0x1900, 0x2acb, 0x0000 }, { 0x9900, 0x2ace, 0x2000 }, { 0x1900, 0x2acd, 0x0000 }, { 0x1900, 0x2acf, 0x0000 }, { 0x9900, 0x2ad8, 0x4000 }, { 0x9900, 0x2ad4, 0x3000 }, { 0x9900, 0x2ad2, 0x2000 }, { 0x1900, 0x2ad1, 0x0000 }, { 0x1900, 0x2ad3, 0x0000 }, { 0x9900, 0x2ad6, 0x2000 }, { 0x1900, 0x2ad5, 0x0000 }, { 0x1900, 0x2ad7, 0x0000 }, { 0x9900, 0x2adc, 0x3000 }, { 0x9900, 0x2ada, 0x2000 }, { 0x1900, 0x2ad9, 0x0000 }, { 0x1900, 0x2adb, 0x0000 }, { 0x9900, 0x2ade, 0x2000 }, { 0x1900, 0x2add, 0x0000 }, { 0x1900, 0x2adf, 0x0000 }, { 0x9a00, 0x2b00, 0x6000 }, { 0x9900, 0x2af0, 0x5000 }, { 0x9900, 0x2ae8, 0x4000 }, { 0x9900, 0x2ae4, 0x3000 }, { 0x9900, 0x2ae2, 0x2000 }, { 0x1900, 0x2ae1, 0x0000 }, { 0x1900, 0x2ae3, 0x0000 }, { 0x9900, 0x2ae6, 0x2000 }, { 0x1900, 0x2ae5, 0x0000 }, { 0x1900, 0x2ae7, 0x0000 }, { 0x9900, 0x2aec, 0x3000 }, { 0x9900, 0x2aea, 0x2000 }, { 0x1900, 0x2ae9, 0x0000 }, { 0x1900, 0x2aeb, 0x0000 }, { 0x9900, 0x2aee, 0x2000 }, { 0x1900, 0x2aed, 0x0000 }, { 0x1900, 0x2aef, 0x0000 }, { 0x9900, 0x2af8, 0x4000 }, { 0x9900, 0x2af4, 0x3000 }, { 0x9900, 0x2af2, 0x2000 }, { 0x1900, 0x2af1, 0x0000 }, { 0x1900, 0x2af3, 0x0000 }, { 0x9900, 0x2af6, 0x2000 }, { 0x1900, 0x2af5, 0x0000 }, { 0x1900, 0x2af7, 0x0000 }, { 0x9900, 0x2afc, 0x3000 }, { 0x9900, 0x2afa, 0x2000 }, { 0x1900, 0x2af9, 0x0000 }, { 0x1900, 0x2afb, 0x0000 }, { 0x9900, 0x2afe, 0x2000 }, { 0x1900, 0x2afd, 0x0000 }, { 0x1900, 0x2aff, 0x0000 }, { 0x9a00, 0x2e82, 0x5000 }, { 0x9a00, 0x2b08, 0x4000 }, { 0x9a00, 0x2b04, 0x3000 }, { 0x9a00, 0x2b02, 0x2000 }, { 0x1a00, 0x2b01, 0x0000 }, { 0x1a00, 0x2b03, 0x0000 }, { 0x9a00, 0x2b06, 0x2000 }, { 0x1a00, 0x2b05, 0x0000 }, { 0x1a00, 0x2b07, 0x0000 }, { 0x9a00, 0x2b0c, 0x3000 }, { 0x9a00, 0x2b0a, 0x2000 }, { 0x1a00, 0x2b09, 0x0000 }, { 0x1a00, 0x2b0b, 0x0000 }, { 0x9a00, 0x2e80, 0x2000 }, { 0x1a00, 0x2b0d, 0x0000 }, { 0x1a00, 0x2e81, 0x0000 }, { 0x9a00, 0x2e8a, 0x4000 }, { 0x9a00, 0x2e86, 0x3000 }, { 0x9a00, 0x2e84, 0x2000 }, { 0x1a00, 0x2e83, 0x0000 }, { 0x1a00, 0x2e85, 0x0000 }, { 0x9a00, 0x2e88, 0x2000 }, { 0x1a00, 0x2e87, 0x0000 }, { 0x1a00, 0x2e89, 0x0000 }, { 0x9a00, 0x2e8e, 0x3000 }, { 0x9a00, 0x2e8c, 0x2000 }, { 0x1a00, 0x2e8b, 0x0000 }, { 0x1a00, 0x2e8d, 0x0000 }, { 0x9a00, 0x2e90, 0x2000 }, { 0x1a00, 0x2e8f, 0x0000 }, { 0x1a00, 0x2e91, 0x0000 }, { 0x9a00, 0x2ed3, 0x7000 }, { 0x9a00, 0x2eb3, 0x6000 }, { 0x9a00, 0x2ea3, 0x5000 }, { 0x9a00, 0x2e9b, 0x4000 }, { 0x9a00, 0x2e96, 0x3000 }, { 0x9a00, 0x2e94, 0x2000 }, { 0x1a00, 0x2e93, 0x0000 }, { 0x1a00, 0x2e95, 0x0000 }, { 0x9a00, 0x2e98, 0x2000 }, { 0x1a00, 0x2e97, 0x0000 }, { 0x1a00, 0x2e99, 0x0000 }, { 0x9a00, 0x2e9f, 0x3000 }, { 0x9a00, 0x2e9d, 0x2000 }, { 0x1a00, 0x2e9c, 0x0000 }, { 0x1a00, 0x2e9e, 0x0000 }, { 0x9a00, 0x2ea1, 0x2000 }, { 0x1a00, 0x2ea0, 0x0000 }, { 0x1a00, 0x2ea2, 0x0000 }, { 0x9a00, 0x2eab, 0x4000 }, { 0x9a00, 0x2ea7, 0x3000 }, { 0x9a00, 0x2ea5, 0x2000 }, { 0x1a00, 0x2ea4, 0x0000 }, { 0x1a00, 0x2ea6, 0x0000 }, { 0x9a00, 0x2ea9, 0x2000 }, { 0x1a00, 0x2ea8, 0x0000 }, { 0x1a00, 0x2eaa, 0x0000 }, { 0x9a00, 0x2eaf, 0x3000 }, { 0x9a00, 0x2ead, 0x2000 }, { 0x1a00, 0x2eac, 0x0000 }, { 0x1a00, 0x2eae, 0x0000 }, { 0x9a00, 0x2eb1, 0x2000 }, { 0x1a00, 0x2eb0, 0x0000 }, { 0x1a00, 0x2eb2, 0x0000 }, { 0x9a00, 0x2ec3, 0x5000 }, { 0x9a00, 0x2ebb, 0x4000 }, { 0x9a00, 0x2eb7, 0x3000 }, { 0x9a00, 0x2eb5, 0x2000 }, { 0x1a00, 0x2eb4, 0x0000 }, { 0x1a00, 0x2eb6, 0x0000 }, { 0x9a00, 0x2eb9, 0x2000 }, { 0x1a00, 0x2eb8, 0x0000 }, { 0x1a00, 0x2eba, 0x0000 }, { 0x9a00, 0x2ebf, 0x3000 }, { 0x9a00, 0x2ebd, 0x2000 }, { 0x1a00, 0x2ebc, 0x0000 }, { 0x1a00, 0x2ebe, 0x0000 }, { 0x9a00, 0x2ec1, 0x2000 }, { 0x1a00, 0x2ec0, 0x0000 }, { 0x1a00, 0x2ec2, 0x0000 }, { 0x9a00, 0x2ecb, 0x4000 }, { 0x9a00, 0x2ec7, 0x3000 }, { 0x9a00, 0x2ec5, 0x2000 }, { 0x1a00, 0x2ec4, 0x0000 }, { 0x1a00, 0x2ec6, 0x0000 }, { 0x9a00, 0x2ec9, 0x2000 }, { 0x1a00, 0x2ec8, 0x0000 }, { 0x1a00, 0x2eca, 0x0000 }, { 0x9a00, 0x2ecf, 0x3000 }, { 0x9a00, 0x2ecd, 0x2000 }, { 0x1a00, 0x2ecc, 0x0000 }, { 0x1a00, 0x2ece, 0x0000 }, { 0x9a00, 0x2ed1, 0x2000 }, { 0x1a00, 0x2ed0, 0x0000 }, { 0x1a00, 0x2ed2, 0x0000 }, { 0x9a00, 0x2ef3, 0x6000 }, { 0x9a00, 0x2ee3, 0x5000 }, { 0x9a00, 0x2edb, 0x4000 }, { 0x9a00, 0x2ed7, 0x3000 }, { 0x9a00, 0x2ed5, 0x2000 }, { 0x1a00, 0x2ed4, 0x0000 }, { 0x1a00, 0x2ed6, 0x0000 }, { 0x9a00, 0x2ed9, 0x2000 }, { 0x1a00, 0x2ed8, 0x0000 }, { 0x1a00, 0x2eda, 0x0000 }, { 0x9a00, 0x2edf, 0x3000 }, { 0x9a00, 0x2edd, 0x2000 }, { 0x1a00, 0x2edc, 0x0000 }, { 0x1a00, 0x2ede, 0x0000 }, { 0x9a00, 0x2ee1, 0x2000 }, { 0x1a00, 0x2ee0, 0x0000 }, { 0x1a00, 0x2ee2, 0x0000 }, { 0x9a00, 0x2eeb, 0x4000 }, { 0x9a00, 0x2ee7, 0x3000 }, { 0x9a00, 0x2ee5, 0x2000 }, { 0x1a00, 0x2ee4, 0x0000 }, { 0x1a00, 0x2ee6, 0x0000 }, { 0x9a00, 0x2ee9, 0x2000 }, { 0x1a00, 0x2ee8, 0x0000 }, { 0x1a00, 0x2eea, 0x0000 }, { 0x9a00, 0x2eef, 0x3000 }, { 0x9a00, 0x2eed, 0x2000 }, { 0x1a00, 0x2eec, 0x0000 }, { 0x1a00, 0x2eee, 0x0000 }, { 0x9a00, 0x2ef1, 0x2000 }, { 0x1a00, 0x2ef0, 0x0000 }, { 0x1a00, 0x2ef2, 0x0000 }, { 0x9a00, 0x2f0f, 0x5000 }, { 0x9a00, 0x2f07, 0x4000 }, { 0x9a00, 0x2f03, 0x3000 }, { 0x9a00, 0x2f01, 0x2000 }, { 0x1a00, 0x2f00, 0x0000 }, { 0x1a00, 0x2f02, 0x0000 }, { 0x9a00, 0x2f05, 0x2000 }, { 0x1a00, 0x2f04, 0x0000 }, { 0x1a00, 0x2f06, 0x0000 }, { 0x9a00, 0x2f0b, 0x3000 }, { 0x9a00, 0x2f09, 0x2000 }, { 0x1a00, 0x2f08, 0x0000 }, { 0x1a00, 0x2f0a, 0x0000 }, { 0x9a00, 0x2f0d, 0x2000 }, { 0x1a00, 0x2f0c, 0x0000 }, { 0x1a00, 0x2f0e, 0x0000 }, { 0x9a00, 0x2f17, 0x4000 }, { 0x9a00, 0x2f13, 0x3000 }, { 0x9a00, 0x2f11, 0x2000 }, { 0x1a00, 0x2f10, 0x0000 }, { 0x1a00, 0x2f12, 0x0000 }, { 0x9a00, 0x2f15, 0x2000 }, { 0x1a00, 0x2f14, 0x0000 }, { 0x1a00, 0x2f16, 0x0000 }, { 0x9a00, 0x2f1b, 0x3000 }, { 0x9a00, 0x2f19, 0x2000 }, { 0x1a00, 0x2f18, 0x0000 }, { 0x1a00, 0x2f1a, 0x0000 }, { 0x9a00, 0x2f1d, 0x2000 }, { 0x1a00, 0x2f1c, 0x0000 }, { 0x1a00, 0x2f1e, 0x0000 }, { 0x8701, 0x00f0, 0xd000 }, { 0x8700, 0xa34d, 0xc000 }, { 0x9a00, 0x3391, 0xb000 }, { 0x8700, 0x3149, 0xa000 }, { 0x9500, 0x303d, 0x9000 }, { 0x9a00, 0x2f9f, 0x8000 }, { 0x9a00, 0x2f5f, 0x7000 }, { 0x9a00, 0x2f3f, 0x6000 }, { 0x9a00, 0x2f2f, 0x5000 }, { 0x9a00, 0x2f27, 0x4000 }, { 0x9a00, 0x2f23, 0x3000 }, { 0x9a00, 0x2f21, 0x2000 }, { 0x1a00, 0x2f20, 0x0000 }, { 0x1a00, 0x2f22, 0x0000 }, { 0x9a00, 0x2f25, 0x2000 }, { 0x1a00, 0x2f24, 0x0000 }, { 0x1a00, 0x2f26, 0x0000 }, { 0x9a00, 0x2f2b, 0x3000 }, { 0x9a00, 0x2f29, 0x2000 }, { 0x1a00, 0x2f28, 0x0000 }, { 0x1a00, 0x2f2a, 0x0000 }, { 0x9a00, 0x2f2d, 0x2000 }, { 0x1a00, 0x2f2c, 0x0000 }, { 0x1a00, 0x2f2e, 0x0000 }, { 0x9a00, 0x2f37, 0x4000 }, { 0x9a00, 0x2f33, 0x3000 }, { 0x9a00, 0x2f31, 0x2000 }, { 0x1a00, 0x2f30, 0x0000 }, { 0x1a00, 0x2f32, 0x0000 }, { 0x9a00, 0x2f35, 0x2000 }, { 0x1a00, 0x2f34, 0x0000 }, { 0x1a00, 0x2f36, 0x0000 }, { 0x9a00, 0x2f3b, 0x3000 }, { 0x9a00, 0x2f39, 0x2000 }, { 0x1a00, 0x2f38, 0x0000 }, { 0x1a00, 0x2f3a, 0x0000 }, { 0x9a00, 0x2f3d, 0x2000 }, { 0x1a00, 0x2f3c, 0x0000 }, { 0x1a00, 0x2f3e, 0x0000 }, { 0x9a00, 0x2f4f, 0x5000 }, { 0x9a00, 0x2f47, 0x4000 }, { 0x9a00, 0x2f43, 0x3000 }, { 0x9a00, 0x2f41, 0x2000 }, { 0x1a00, 0x2f40, 0x0000 }, { 0x1a00, 0x2f42, 0x0000 }, { 0x9a00, 0x2f45, 0x2000 }, { 0x1a00, 0x2f44, 0x0000 }, { 0x1a00, 0x2f46, 0x0000 }, { 0x9a00, 0x2f4b, 0x3000 }, { 0x9a00, 0x2f49, 0x2000 }, { 0x1a00, 0x2f48, 0x0000 }, { 0x1a00, 0x2f4a, 0x0000 }, { 0x9a00, 0x2f4d, 0x2000 }, { 0x1a00, 0x2f4c, 0x0000 }, { 0x1a00, 0x2f4e, 0x0000 }, { 0x9a00, 0x2f57, 0x4000 }, { 0x9a00, 0x2f53, 0x3000 }, { 0x9a00, 0x2f51, 0x2000 }, { 0x1a00, 0x2f50, 0x0000 }, { 0x1a00, 0x2f52, 0x0000 }, { 0x9a00, 0x2f55, 0x2000 }, { 0x1a00, 0x2f54, 0x0000 }, { 0x1a00, 0x2f56, 0x0000 }, { 0x9a00, 0x2f5b, 0x3000 }, { 0x9a00, 0x2f59, 0x2000 }, { 0x1a00, 0x2f58, 0x0000 }, { 0x1a00, 0x2f5a, 0x0000 }, { 0x9a00, 0x2f5d, 0x2000 }, { 0x1a00, 0x2f5c, 0x0000 }, { 0x1a00, 0x2f5e, 0x0000 }, { 0x9a00, 0x2f7f, 0x6000 }, { 0x9a00, 0x2f6f, 0x5000 }, { 0x9a00, 0x2f67, 0x4000 }, { 0x9a00, 0x2f63, 0x3000 }, { 0x9a00, 0x2f61, 0x2000 }, { 0x1a00, 0x2f60, 0x0000 }, { 0x1a00, 0x2f62, 0x0000 }, { 0x9a00, 0x2f65, 0x2000 }, { 0x1a00, 0x2f64, 0x0000 }, { 0x1a00, 0x2f66, 0x0000 }, { 0x9a00, 0x2f6b, 0x3000 }, { 0x9a00, 0x2f69, 0x2000 }, { 0x1a00, 0x2f68, 0x0000 }, { 0x1a00, 0x2f6a, 0x0000 }, { 0x9a00, 0x2f6d, 0x2000 }, { 0x1a00, 0x2f6c, 0x0000 }, { 0x1a00, 0x2f6e, 0x0000 }, { 0x9a00, 0x2f77, 0x4000 }, { 0x9a00, 0x2f73, 0x3000 }, { 0x9a00, 0x2f71, 0x2000 }, { 0x1a00, 0x2f70, 0x0000 }, { 0x1a00, 0x2f72, 0x0000 }, { 0x9a00, 0x2f75, 0x2000 }, { 0x1a00, 0x2f74, 0x0000 }, { 0x1a00, 0x2f76, 0x0000 }, { 0x9a00, 0x2f7b, 0x3000 }, { 0x9a00, 0x2f79, 0x2000 }, { 0x1a00, 0x2f78, 0x0000 }, { 0x1a00, 0x2f7a, 0x0000 }, { 0x9a00, 0x2f7d, 0x2000 }, { 0x1a00, 0x2f7c, 0x0000 }, { 0x1a00, 0x2f7e, 0x0000 }, { 0x9a00, 0x2f8f, 0x5000 }, { 0x9a00, 0x2f87, 0x4000 }, { 0x9a00, 0x2f83, 0x3000 }, { 0x9a00, 0x2f81, 0x2000 }, { 0x1a00, 0x2f80, 0x0000 }, { 0x1a00, 0x2f82, 0x0000 }, { 0x9a00, 0x2f85, 0x2000 }, { 0x1a00, 0x2f84, 0x0000 }, { 0x1a00, 0x2f86, 0x0000 }, { 0x9a00, 0x2f8b, 0x3000 }, { 0x9a00, 0x2f89, 0x2000 }, { 0x1a00, 0x2f88, 0x0000 }, { 0x1a00, 0x2f8a, 0x0000 }, { 0x9a00, 0x2f8d, 0x2000 }, { 0x1a00, 0x2f8c, 0x0000 }, { 0x1a00, 0x2f8e, 0x0000 }, { 0x9a00, 0x2f97, 0x4000 }, { 0x9a00, 0x2f93, 0x3000 }, { 0x9a00, 0x2f91, 0x2000 }, { 0x1a00, 0x2f90, 0x0000 }, { 0x1a00, 0x2f92, 0x0000 }, { 0x9a00, 0x2f95, 0x2000 }, { 0x1a00, 0x2f94, 0x0000 }, { 0x1a00, 0x2f96, 0x0000 }, { 0x9a00, 0x2f9b, 0x3000 }, { 0x9a00, 0x2f99, 0x2000 }, { 0x1a00, 0x2f98, 0x0000 }, { 0x1a00, 0x2f9a, 0x0000 }, { 0x9a00, 0x2f9d, 0x2000 }, { 0x1a00, 0x2f9c, 0x0000 }, { 0x1a00, 0x2f9e, 0x0000 }, { 0x9a00, 0x2ff9, 0x7000 }, { 0x9a00, 0x2fbf, 0x6000 }, { 0x9a00, 0x2faf, 0x5000 }, { 0x9a00, 0x2fa7, 0x4000 }, { 0x9a00, 0x2fa3, 0x3000 }, { 0x9a00, 0x2fa1, 0x2000 }, { 0x1a00, 0x2fa0, 0x0000 }, { 0x1a00, 0x2fa2, 0x0000 }, { 0x9a00, 0x2fa5, 0x2000 }, { 0x1a00, 0x2fa4, 0x0000 }, { 0x1a00, 0x2fa6, 0x0000 }, { 0x9a00, 0x2fab, 0x3000 }, { 0x9a00, 0x2fa9, 0x2000 }, { 0x1a00, 0x2fa8, 0x0000 }, { 0x1a00, 0x2faa, 0x0000 }, { 0x9a00, 0x2fad, 0x2000 }, { 0x1a00, 0x2fac, 0x0000 }, { 0x1a00, 0x2fae, 0x0000 }, { 0x9a00, 0x2fb7, 0x4000 }, { 0x9a00, 0x2fb3, 0x3000 }, { 0x9a00, 0x2fb1, 0x2000 }, { 0x1a00, 0x2fb0, 0x0000 }, { 0x1a00, 0x2fb2, 0x0000 }, { 0x9a00, 0x2fb5, 0x2000 }, { 0x1a00, 0x2fb4, 0x0000 }, { 0x1a00, 0x2fb6, 0x0000 }, { 0x9a00, 0x2fbb, 0x3000 }, { 0x9a00, 0x2fb9, 0x2000 }, { 0x1a00, 0x2fb8, 0x0000 }, { 0x1a00, 0x2fba, 0x0000 }, { 0x9a00, 0x2fbd, 0x2000 }, { 0x1a00, 0x2fbc, 0x0000 }, { 0x1a00, 0x2fbe, 0x0000 }, { 0x9a00, 0x2fcf, 0x5000 }, { 0x9a00, 0x2fc7, 0x4000 }, { 0x9a00, 0x2fc3, 0x3000 }, { 0x9a00, 0x2fc1, 0x2000 }, { 0x1a00, 0x2fc0, 0x0000 }, { 0x1a00, 0x2fc2, 0x0000 }, { 0x9a00, 0x2fc5, 0x2000 }, { 0x1a00, 0x2fc4, 0x0000 }, { 0x1a00, 0x2fc6, 0x0000 }, { 0x9a00, 0x2fcb, 0x3000 }, { 0x9a00, 0x2fc9, 0x2000 }, { 0x1a00, 0x2fc8, 0x0000 }, { 0x1a00, 0x2fca, 0x0000 }, { 0x9a00, 0x2fcd, 0x2000 }, { 0x1a00, 0x2fcc, 0x0000 }, { 0x1a00, 0x2fce, 0x0000 }, { 0x9a00, 0x2ff1, 0x4000 }, { 0x9a00, 0x2fd3, 0x3000 }, { 0x9a00, 0x2fd1, 0x2000 }, { 0x1a00, 0x2fd0, 0x0000 }, { 0x1a00, 0x2fd2, 0x0000 }, { 0x9a00, 0x2fd5, 0x2000 }, { 0x1a00, 0x2fd4, 0x0000 }, { 0x1a00, 0x2ff0, 0x0000 }, { 0x9a00, 0x2ff5, 0x3000 }, { 0x9a00, 0x2ff3, 0x2000 }, { 0x1a00, 0x2ff2, 0x0000 }, { 0x1a00, 0x2ff4, 0x0000 }, { 0x9a00, 0x2ff7, 0x2000 }, { 0x1a00, 0x2ff6, 0x0000 }, { 0x1a00, 0x2ff8, 0x0000 }, { 0x9600, 0x301d, 0x6000 }, { 0x9200, 0x300d, 0x5000 }, { 0x8600, 0x3005, 0x4000 }, { 0x9500, 0x3001, 0x3000 }, { 0x9a00, 0x2ffb, 0x2000 }, { 0x1a00, 0x2ffa, 0x0000 }, { 0x1d00, 0x3000, 0x0000 }, { 0x9500, 0x3003, 0x2000 }, { 0x1500, 0x3002, 0x0000 }, { 0x1a00, 0x3004, 0x0000 }, { 0x9200, 0x3009, 0x3000 }, { 0x8e00, 0x3007, 0x2000 }, { 0x0700, 0x3006, 0x0000 }, { 0x1600, 0x3008, 0x0000 }, { 0x9200, 0x300b, 0x2000 }, { 0x1600, 0x300a, 0x0000 }, { 0x1600, 0x300c, 0x0000 }, { 0x9200, 0x3015, 0x4000 }, { 0x9200, 0x3011, 0x3000 }, { 0x9200, 0x300f, 0x2000 }, { 0x1600, 0x300e, 0x0000 }, { 0x1600, 0x3010, 0x0000 }, { 0x9a00, 0x3013, 0x2000 }, { 0x1a00, 0x3012, 0x0000 }, { 0x1600, 0x3014, 0x0000 }, { 0x9200, 0x3019, 0x3000 }, { 0x9200, 0x3017, 0x2000 }, { 0x1600, 0x3016, 0x0000 }, { 0x1600, 0x3018, 0x0000 }, { 0x9200, 0x301b, 0x2000 }, { 0x1600, 0x301a, 0x0000 }, { 0x1100, 0x301c, 0x0000 }, { 0x8c00, 0x302d, 0x5000 }, { 0x8e00, 0x3025, 0x4000 }, { 0x8e00, 0x3021, 0x3000 }, { 0x9200, 0x301f, 0x2000 }, { 0x1200, 0x301e, 0x0000 }, { 0x1a00, 0x3020, 0x0000 }, { 0x8e00, 0x3023, 0x2000 }, { 0x0e00, 0x3022, 0x0000 }, { 0x0e00, 0x3024, 0x0000 }, { 0x8e00, 0x3029, 0x3000 }, { 0x8e00, 0x3027, 0x2000 }, { 0x0e00, 0x3026, 0x0000 }, { 0x0e00, 0x3028, 0x0000 }, { 0x8c00, 0x302b, 0x2000 }, { 0x0c00, 0x302a, 0x0000 }, { 0x0c00, 0x302c, 0x0000 }, { 0x8600, 0x3035, 0x4000 }, { 0x8600, 0x3031, 0x3000 }, { 0x8c00, 0x302f, 0x2000 }, { 0x0c00, 0x302e, 0x0000 }, { 0x1100, 0x3030, 0x0000 }, { 0x8600, 0x3033, 0x2000 }, { 0x0600, 0x3032, 0x0000 }, { 0x0600, 0x3034, 0x0000 }, { 0x8e00, 0x3039, 0x3000 }, { 0x9a00, 0x3037, 0x2000 }, { 0x1a00, 0x3036, 0x0000 }, { 0x0e00, 0x3038, 0x0000 }, { 0x8600, 0x303b, 0x2000 }, { 0x0e00, 0x303a, 0x0000 }, { 0x0700, 0x303c, 0x0000 }, { 0x8700, 0x30c0, 0x8000 }, { 0x8700, 0x307e, 0x7000 }, { 0x8700, 0x305e, 0x6000 }, { 0x8700, 0x304e, 0x5000 }, { 0x8700, 0x3046, 0x4000 }, { 0x8700, 0x3042, 0x3000 }, { 0x9a00, 0x303f, 0x2000 }, { 0x1a00, 0x303e, 0x0000 }, { 0x0700, 0x3041, 0x0000 }, { 0x8700, 0x3044, 0x2000 }, { 0x0700, 0x3043, 0x0000 }, { 0x0700, 0x3045, 0x0000 }, { 0x8700, 0x304a, 0x3000 }, { 0x8700, 0x3048, 0x2000 }, { 0x0700, 0x3047, 0x0000 }, { 0x0700, 0x3049, 0x0000 }, { 0x8700, 0x304c, 0x2000 }, { 0x0700, 0x304b, 0x0000 }, { 0x0700, 0x304d, 0x0000 }, { 0x8700, 0x3056, 0x4000 }, { 0x8700, 0x3052, 0x3000 }, { 0x8700, 0x3050, 0x2000 }, { 0x0700, 0x304f, 0x0000 }, { 0x0700, 0x3051, 0x0000 }, { 0x8700, 0x3054, 0x2000 }, { 0x0700, 0x3053, 0x0000 }, { 0x0700, 0x3055, 0x0000 }, { 0x8700, 0x305a, 0x3000 }, { 0x8700, 0x3058, 0x2000 }, { 0x0700, 0x3057, 0x0000 }, { 0x0700, 0x3059, 0x0000 }, { 0x8700, 0x305c, 0x2000 }, { 0x0700, 0x305b, 0x0000 }, { 0x0700, 0x305d, 0x0000 }, { 0x8700, 0x306e, 0x5000 }, { 0x8700, 0x3066, 0x4000 }, { 0x8700, 0x3062, 0x3000 }, { 0x8700, 0x3060, 0x2000 }, { 0x0700, 0x305f, 0x0000 }, { 0x0700, 0x3061, 0x0000 }, { 0x8700, 0x3064, 0x2000 }, { 0x0700, 0x3063, 0x0000 }, { 0x0700, 0x3065, 0x0000 }, { 0x8700, 0x306a, 0x3000 }, { 0x8700, 0x3068, 0x2000 }, { 0x0700, 0x3067, 0x0000 }, { 0x0700, 0x3069, 0x0000 }, { 0x8700, 0x306c, 0x2000 }, { 0x0700, 0x306b, 0x0000 }, { 0x0700, 0x306d, 0x0000 }, { 0x8700, 0x3076, 0x4000 }, { 0x8700, 0x3072, 0x3000 }, { 0x8700, 0x3070, 0x2000 }, { 0x0700, 0x306f, 0x0000 }, { 0x0700, 0x3071, 0x0000 }, { 0x8700, 0x3074, 0x2000 }, { 0x0700, 0x3073, 0x0000 }, { 0x0700, 0x3075, 0x0000 }, { 0x8700, 0x307a, 0x3000 }, { 0x8700, 0x3078, 0x2000 }, { 0x0700, 0x3077, 0x0000 }, { 0x0700, 0x3079, 0x0000 }, { 0x8700, 0x307c, 0x2000 }, { 0x0700, 0x307b, 0x0000 }, { 0x0700, 0x307d, 0x0000 }, { 0x9100, 0x30a0, 0x6000 }, { 0x8700, 0x308e, 0x5000 }, { 0x8700, 0x3086, 0x4000 }, { 0x8700, 0x3082, 0x3000 }, { 0x8700, 0x3080, 0x2000 }, { 0x0700, 0x307f, 0x0000 }, { 0x0700, 0x3081, 0x0000 }, { 0x8700, 0x3084, 0x2000 }, { 0x0700, 0x3083, 0x0000 }, { 0x0700, 0x3085, 0x0000 }, { 0x8700, 0x308a, 0x3000 }, { 0x8700, 0x3088, 0x2000 }, { 0x0700, 0x3087, 0x0000 }, { 0x0700, 0x3089, 0x0000 }, { 0x8700, 0x308c, 0x2000 }, { 0x0700, 0x308b, 0x0000 }, { 0x0700, 0x308d, 0x0000 }, { 0x8700, 0x3096, 0x4000 }, { 0x8700, 0x3092, 0x3000 }, { 0x8700, 0x3090, 0x2000 }, { 0x0700, 0x308f, 0x0000 }, { 0x0700, 0x3091, 0x0000 }, { 0x8700, 0x3094, 0x2000 }, { 0x0700, 0x3093, 0x0000 }, { 0x0700, 0x3095, 0x0000 }, { 0x9800, 0x309c, 0x3000 }, { 0x8c00, 0x309a, 0x2000 }, { 0x0c00, 0x3099, 0x0000 }, { 0x1800, 0x309b, 0x0000 }, { 0x8600, 0x309e, 0x2000 }, { 0x0600, 0x309d, 0x0000 }, { 0x0700, 0x309f, 0x0000 }, { 0x8700, 0x30b0, 0x5000 }, { 0x8700, 0x30a8, 0x4000 }, { 0x8700, 0x30a4, 0x3000 }, { 0x8700, 0x30a2, 0x2000 }, { 0x0700, 0x30a1, 0x0000 }, { 0x0700, 0x30a3, 0x0000 }, { 0x8700, 0x30a6, 0x2000 }, { 0x0700, 0x30a5, 0x0000 }, { 0x0700, 0x30a7, 0x0000 }, { 0x8700, 0x30ac, 0x3000 }, { 0x8700, 0x30aa, 0x2000 }, { 0x0700, 0x30a9, 0x0000 }, { 0x0700, 0x30ab, 0x0000 }, { 0x8700, 0x30ae, 0x2000 }, { 0x0700, 0x30ad, 0x0000 }, { 0x0700, 0x30af, 0x0000 }, { 0x8700, 0x30b8, 0x4000 }, { 0x8700, 0x30b4, 0x3000 }, { 0x8700, 0x30b2, 0x2000 }, { 0x0700, 0x30b1, 0x0000 }, { 0x0700, 0x30b3, 0x0000 }, { 0x8700, 0x30b6, 0x2000 }, { 0x0700, 0x30b5, 0x0000 }, { 0x0700, 0x30b7, 0x0000 }, { 0x8700, 0x30bc, 0x3000 }, { 0x8700, 0x30ba, 0x2000 }, { 0x0700, 0x30b9, 0x0000 }, { 0x0700, 0x30bb, 0x0000 }, { 0x8700, 0x30be, 0x2000 }, { 0x0700, 0x30bd, 0x0000 }, { 0x0700, 0x30bf, 0x0000 }, { 0x8700, 0x3105, 0x7000 }, { 0x8700, 0x30e0, 0x6000 }, { 0x8700, 0x30d0, 0x5000 }, { 0x8700, 0x30c8, 0x4000 }, { 0x8700, 0x30c4, 0x3000 }, { 0x8700, 0x30c2, 0x2000 }, { 0x0700, 0x30c1, 0x0000 }, { 0x0700, 0x30c3, 0x0000 }, { 0x8700, 0x30c6, 0x2000 }, { 0x0700, 0x30c5, 0x0000 }, { 0x0700, 0x30c7, 0x0000 }, { 0x8700, 0x30cc, 0x3000 }, { 0x8700, 0x30ca, 0x2000 }, { 0x0700, 0x30c9, 0x0000 }, { 0x0700, 0x30cb, 0x0000 }, { 0x8700, 0x30ce, 0x2000 }, { 0x0700, 0x30cd, 0x0000 }, { 0x0700, 0x30cf, 0x0000 }, { 0x8700, 0x30d8, 0x4000 }, { 0x8700, 0x30d4, 0x3000 }, { 0x8700, 0x30d2, 0x2000 }, { 0x0700, 0x30d1, 0x0000 }, { 0x0700, 0x30d3, 0x0000 }, { 0x8700, 0x30d6, 0x2000 }, { 0x0700, 0x30d5, 0x0000 }, { 0x0700, 0x30d7, 0x0000 }, { 0x8700, 0x30dc, 0x3000 }, { 0x8700, 0x30da, 0x2000 }, { 0x0700, 0x30d9, 0x0000 }, { 0x0700, 0x30db, 0x0000 }, { 0x8700, 0x30de, 0x2000 }, { 0x0700, 0x30dd, 0x0000 }, { 0x0700, 0x30df, 0x0000 }, { 0x8700, 0x30f0, 0x5000 }, { 0x8700, 0x30e8, 0x4000 }, { 0x8700, 0x30e4, 0x3000 }, { 0x8700, 0x30e2, 0x2000 }, { 0x0700, 0x30e1, 0x0000 }, { 0x0700, 0x30e3, 0x0000 }, { 0x8700, 0x30e6, 0x2000 }, { 0x0700, 0x30e5, 0x0000 }, { 0x0700, 0x30e7, 0x0000 }, { 0x8700, 0x30ec, 0x3000 }, { 0x8700, 0x30ea, 0x2000 }, { 0x0700, 0x30e9, 0x0000 }, { 0x0700, 0x30eb, 0x0000 }, { 0x8700, 0x30ee, 0x2000 }, { 0x0700, 0x30ed, 0x0000 }, { 0x0700, 0x30ef, 0x0000 }, { 0x8700, 0x30f8, 0x4000 }, { 0x8700, 0x30f4, 0x3000 }, { 0x8700, 0x30f2, 0x2000 }, { 0x0700, 0x30f1, 0x0000 }, { 0x0700, 0x30f3, 0x0000 }, { 0x8700, 0x30f6, 0x2000 }, { 0x0700, 0x30f5, 0x0000 }, { 0x0700, 0x30f7, 0x0000 }, { 0x8600, 0x30fc, 0x3000 }, { 0x8700, 0x30fa, 0x2000 }, { 0x0700, 0x30f9, 0x0000 }, { 0x1000, 0x30fb, 0x0000 }, { 0x8600, 0x30fe, 0x2000 }, { 0x0600, 0x30fd, 0x0000 }, { 0x0700, 0x30ff, 0x0000 }, { 0x8700, 0x3125, 0x6000 }, { 0x8700, 0x3115, 0x5000 }, { 0x8700, 0x310d, 0x4000 }, { 0x8700, 0x3109, 0x3000 }, { 0x8700, 0x3107, 0x2000 }, { 0x0700, 0x3106, 0x0000 }, { 0x0700, 0x3108, 0x0000 }, { 0x8700, 0x310b, 0x2000 }, { 0x0700, 0x310a, 0x0000 }, { 0x0700, 0x310c, 0x0000 }, { 0x8700, 0x3111, 0x3000 }, { 0x8700, 0x310f, 0x2000 }, { 0x0700, 0x310e, 0x0000 }, { 0x0700, 0x3110, 0x0000 }, { 0x8700, 0x3113, 0x2000 }, { 0x0700, 0x3112, 0x0000 }, { 0x0700, 0x3114, 0x0000 }, { 0x8700, 0x311d, 0x4000 }, { 0x8700, 0x3119, 0x3000 }, { 0x8700, 0x3117, 0x2000 }, { 0x0700, 0x3116, 0x0000 }, { 0x0700, 0x3118, 0x0000 }, { 0x8700, 0x311b, 0x2000 }, { 0x0700, 0x311a, 0x0000 }, { 0x0700, 0x311c, 0x0000 }, { 0x8700, 0x3121, 0x3000 }, { 0x8700, 0x311f, 0x2000 }, { 0x0700, 0x311e, 0x0000 }, { 0x0700, 0x3120, 0x0000 }, { 0x8700, 0x3123, 0x2000 }, { 0x0700, 0x3122, 0x0000 }, { 0x0700, 0x3124, 0x0000 }, { 0x8700, 0x3139, 0x5000 }, { 0x8700, 0x3131, 0x4000 }, { 0x8700, 0x3129, 0x3000 }, { 0x8700, 0x3127, 0x2000 }, { 0x0700, 0x3126, 0x0000 }, { 0x0700, 0x3128, 0x0000 }, { 0x8700, 0x312b, 0x2000 }, { 0x0700, 0x312a, 0x0000 }, { 0x0700, 0x312c, 0x0000 }, { 0x8700, 0x3135, 0x3000 }, { 0x8700, 0x3133, 0x2000 }, { 0x0700, 0x3132, 0x0000 }, { 0x0700, 0x3134, 0x0000 }, { 0x8700, 0x3137, 0x2000 }, { 0x0700, 0x3136, 0x0000 }, { 0x0700, 0x3138, 0x0000 }, { 0x8700, 0x3141, 0x4000 }, { 0x8700, 0x313d, 0x3000 }, { 0x8700, 0x313b, 0x2000 }, { 0x0700, 0x313a, 0x0000 }, { 0x0700, 0x313c, 0x0000 }, { 0x8700, 0x313f, 0x2000 }, { 0x0700, 0x313e, 0x0000 }, { 0x0700, 0x3140, 0x0000 }, { 0x8700, 0x3145, 0x3000 }, { 0x8700, 0x3143, 0x2000 }, { 0x0700, 0x3142, 0x0000 }, { 0x0700, 0x3144, 0x0000 }, { 0x8700, 0x3147, 0x2000 }, { 0x0700, 0x3146, 0x0000 }, { 0x0700, 0x3148, 0x0000 }, { 0x9a00, 0x3290, 0x9000 }, { 0x9a00, 0x3202, 0x8000 }, { 0x8700, 0x3189, 0x7000 }, { 0x8700, 0x3169, 0x6000 }, { 0x8700, 0x3159, 0x5000 }, { 0x8700, 0x3151, 0x4000 }, { 0x8700, 0x314d, 0x3000 }, { 0x8700, 0x314b, 0x2000 }, { 0x0700, 0x314a, 0x0000 }, { 0x0700, 0x314c, 0x0000 }, { 0x8700, 0x314f, 0x2000 }, { 0x0700, 0x314e, 0x0000 }, { 0x0700, 0x3150, 0x0000 }, { 0x8700, 0x3155, 0x3000 }, { 0x8700, 0x3153, 0x2000 }, { 0x0700, 0x3152, 0x0000 }, { 0x0700, 0x3154, 0x0000 }, { 0x8700, 0x3157, 0x2000 }, { 0x0700, 0x3156, 0x0000 }, { 0x0700, 0x3158, 0x0000 }, { 0x8700, 0x3161, 0x4000 }, { 0x8700, 0x315d, 0x3000 }, { 0x8700, 0x315b, 0x2000 }, { 0x0700, 0x315a, 0x0000 }, { 0x0700, 0x315c, 0x0000 }, { 0x8700, 0x315f, 0x2000 }, { 0x0700, 0x315e, 0x0000 }, { 0x0700, 0x3160, 0x0000 }, { 0x8700, 0x3165, 0x3000 }, { 0x8700, 0x3163, 0x2000 }, { 0x0700, 0x3162, 0x0000 }, { 0x0700, 0x3164, 0x0000 }, { 0x8700, 0x3167, 0x2000 }, { 0x0700, 0x3166, 0x0000 }, { 0x0700, 0x3168, 0x0000 }, { 0x8700, 0x3179, 0x5000 }, { 0x8700, 0x3171, 0x4000 }, { 0x8700, 0x316d, 0x3000 }, { 0x8700, 0x316b, 0x2000 }, { 0x0700, 0x316a, 0x0000 }, { 0x0700, 0x316c, 0x0000 }, { 0x8700, 0x316f, 0x2000 }, { 0x0700, 0x316e, 0x0000 }, { 0x0700, 0x3170, 0x0000 }, { 0x8700, 0x3175, 0x3000 }, { 0x8700, 0x3173, 0x2000 }, { 0x0700, 0x3172, 0x0000 }, { 0x0700, 0x3174, 0x0000 }, { 0x8700, 0x3177, 0x2000 }, { 0x0700, 0x3176, 0x0000 }, { 0x0700, 0x3178, 0x0000 }, { 0x8700, 0x3181, 0x4000 }, { 0x8700, 0x317d, 0x3000 }, { 0x8700, 0x317b, 0x2000 }, { 0x0700, 0x317a, 0x0000 }, { 0x0700, 0x317c, 0x0000 }, { 0x8700, 0x317f, 0x2000 }, { 0x0700, 0x317e, 0x0000 }, { 0x0700, 0x3180, 0x0000 }, { 0x8700, 0x3185, 0x3000 }, { 0x8700, 0x3183, 0x2000 }, { 0x0700, 0x3182, 0x0000 }, { 0x0700, 0x3184, 0x0000 }, { 0x8700, 0x3187, 0x2000 }, { 0x0700, 0x3186, 0x0000 }, { 0x0700, 0x3188, 0x0000 }, { 0x8700, 0x31aa, 0x6000 }, { 0x9a00, 0x319a, 0x5000 }, { 0x8f00, 0x3192, 0x4000 }, { 0x8700, 0x318d, 0x3000 }, { 0x8700, 0x318b, 0x2000 }, { 0x0700, 0x318a, 0x0000 }, { 0x0700, 0x318c, 0x0000 }, { 0x9a00, 0x3190, 0x2000 }, { 0x0700, 0x318e, 0x0000 }, { 0x1a00, 0x3191, 0x0000 }, { 0x9a00, 0x3196, 0x3000 }, { 0x8f00, 0x3194, 0x2000 }, { 0x0f00, 0x3193, 0x0000 }, { 0x0f00, 0x3195, 0x0000 }, { 0x9a00, 0x3198, 0x2000 }, { 0x1a00, 0x3197, 0x0000 }, { 0x1a00, 0x3199, 0x0000 }, { 0x8700, 0x31a2, 0x4000 }, { 0x9a00, 0x319e, 0x3000 }, { 0x9a00, 0x319c, 0x2000 }, { 0x1a00, 0x319b, 0x0000 }, { 0x1a00, 0x319d, 0x0000 }, { 0x8700, 0x31a0, 0x2000 }, { 0x1a00, 0x319f, 0x0000 }, { 0x0700, 0x31a1, 0x0000 }, { 0x8700, 0x31a6, 0x3000 }, { 0x8700, 0x31a4, 0x2000 }, { 0x0700, 0x31a3, 0x0000 }, { 0x0700, 0x31a5, 0x0000 }, { 0x8700, 0x31a8, 0x2000 }, { 0x0700, 0x31a7, 0x0000 }, { 0x0700, 0x31a9, 0x0000 }, { 0x8700, 0x31f2, 0x5000 }, { 0x8700, 0x31b2, 0x4000 }, { 0x8700, 0x31ae, 0x3000 }, { 0x8700, 0x31ac, 0x2000 }, { 0x0700, 0x31ab, 0x0000 }, { 0x0700, 0x31ad, 0x0000 }, { 0x8700, 0x31b0, 0x2000 }, { 0x0700, 0x31af, 0x0000 }, { 0x0700, 0x31b1, 0x0000 }, { 0x8700, 0x31b6, 0x3000 }, { 0x8700, 0x31b4, 0x2000 }, { 0x0700, 0x31b3, 0x0000 }, { 0x0700, 0x31b5, 0x0000 }, { 0x8700, 0x31f0, 0x2000 }, { 0x0700, 0x31b7, 0x0000 }, { 0x0700, 0x31f1, 0x0000 }, { 0x8700, 0x31fa, 0x4000 }, { 0x8700, 0x31f6, 0x3000 }, { 0x8700, 0x31f4, 0x2000 }, { 0x0700, 0x31f3, 0x0000 }, { 0x0700, 0x31f5, 0x0000 }, { 0x8700, 0x31f8, 0x2000 }, { 0x0700, 0x31f7, 0x0000 }, { 0x0700, 0x31f9, 0x0000 }, { 0x8700, 0x31fe, 0x3000 }, { 0x8700, 0x31fc, 0x2000 }, { 0x0700, 0x31fb, 0x0000 }, { 0x0700, 0x31fd, 0x0000 }, { 0x9a00, 0x3200, 0x2000 }, { 0x0700, 0x31ff, 0x0000 }, { 0x1a00, 0x3201, 0x0000 }, { 0x9a00, 0x3243, 0x7000 }, { 0x8f00, 0x3223, 0x6000 }, { 0x9a00, 0x3212, 0x5000 }, { 0x9a00, 0x320a, 0x4000 }, { 0x9a00, 0x3206, 0x3000 }, { 0x9a00, 0x3204, 0x2000 }, { 0x1a00, 0x3203, 0x0000 }, { 0x1a00, 0x3205, 0x0000 }, { 0x9a00, 0x3208, 0x2000 }, { 0x1a00, 0x3207, 0x0000 }, { 0x1a00, 0x3209, 0x0000 }, { 0x9a00, 0x320e, 0x3000 }, { 0x9a00, 0x320c, 0x2000 }, { 0x1a00, 0x320b, 0x0000 }, { 0x1a00, 0x320d, 0x0000 }, { 0x9a00, 0x3210, 0x2000 }, { 0x1a00, 0x320f, 0x0000 }, { 0x1a00, 0x3211, 0x0000 }, { 0x9a00, 0x321a, 0x4000 }, { 0x9a00, 0x3216, 0x3000 }, { 0x9a00, 0x3214, 0x2000 }, { 0x1a00, 0x3213, 0x0000 }, { 0x1a00, 0x3215, 0x0000 }, { 0x9a00, 0x3218, 0x2000 }, { 0x1a00, 0x3217, 0x0000 }, { 0x1a00, 0x3219, 0x0000 }, { 0x9a00, 0x321e, 0x3000 }, { 0x9a00, 0x321c, 0x2000 }, { 0x1a00, 0x321b, 0x0000 }, { 0x1a00, 0x321d, 0x0000 }, { 0x8f00, 0x3221, 0x2000 }, { 0x0f00, 0x3220, 0x0000 }, { 0x0f00, 0x3222, 0x0000 }, { 0x9a00, 0x3233, 0x5000 }, { 0x9a00, 0x322b, 0x4000 }, { 0x8f00, 0x3227, 0x3000 }, { 0x8f00, 0x3225, 0x2000 }, { 0x0f00, 0x3224, 0x0000 }, { 0x0f00, 0x3226, 0x0000 }, { 0x8f00, 0x3229, 0x2000 }, { 0x0f00, 0x3228, 0x0000 }, { 0x1a00, 0x322a, 0x0000 }, { 0x9a00, 0x322f, 0x3000 }, { 0x9a00, 0x322d, 0x2000 }, { 0x1a00, 0x322c, 0x0000 }, { 0x1a00, 0x322e, 0x0000 }, { 0x9a00, 0x3231, 0x2000 }, { 0x1a00, 0x3230, 0x0000 }, { 0x1a00, 0x3232, 0x0000 }, { 0x9a00, 0x323b, 0x4000 }, { 0x9a00, 0x3237, 0x3000 }, { 0x9a00, 0x3235, 0x2000 }, { 0x1a00, 0x3234, 0x0000 }, { 0x1a00, 0x3236, 0x0000 }, { 0x9a00, 0x3239, 0x2000 }, { 0x1a00, 0x3238, 0x0000 }, { 0x1a00, 0x323a, 0x0000 }, { 0x9a00, 0x323f, 0x3000 }, { 0x9a00, 0x323d, 0x2000 }, { 0x1a00, 0x323c, 0x0000 }, { 0x1a00, 0x323e, 0x0000 }, { 0x9a00, 0x3241, 0x2000 }, { 0x1a00, 0x3240, 0x0000 }, { 0x1a00, 0x3242, 0x0000 }, { 0x9a00, 0x326f, 0x6000 }, { 0x8f00, 0x325f, 0x5000 }, { 0x8f00, 0x3257, 0x4000 }, { 0x8f00, 0x3253, 0x3000 }, { 0x8f00, 0x3251, 0x2000 }, { 0x1a00, 0x3250, 0x0000 }, { 0x0f00, 0x3252, 0x0000 }, { 0x8f00, 0x3255, 0x2000 }, { 0x0f00, 0x3254, 0x0000 }, { 0x0f00, 0x3256, 0x0000 }, { 0x8f00, 0x325b, 0x3000 }, { 0x8f00, 0x3259, 0x2000 }, { 0x0f00, 0x3258, 0x0000 }, { 0x0f00, 0x325a, 0x0000 }, { 0x8f00, 0x325d, 0x2000 }, { 0x0f00, 0x325c, 0x0000 }, { 0x0f00, 0x325e, 0x0000 }, { 0x9a00, 0x3267, 0x4000 }, { 0x9a00, 0x3263, 0x3000 }, { 0x9a00, 0x3261, 0x2000 }, { 0x1a00, 0x3260, 0x0000 }, { 0x1a00, 0x3262, 0x0000 }, { 0x9a00, 0x3265, 0x2000 }, { 0x1a00, 0x3264, 0x0000 }, { 0x1a00, 0x3266, 0x0000 }, { 0x9a00, 0x326b, 0x3000 }, { 0x9a00, 0x3269, 0x2000 }, { 0x1a00, 0x3268, 0x0000 }, { 0x1a00, 0x326a, 0x0000 }, { 0x9a00, 0x326d, 0x2000 }, { 0x1a00, 0x326c, 0x0000 }, { 0x1a00, 0x326e, 0x0000 }, { 0x8f00, 0x3280, 0x5000 }, { 0x9a00, 0x3277, 0x4000 }, { 0x9a00, 0x3273, 0x3000 }, { 0x9a00, 0x3271, 0x2000 }, { 0x1a00, 0x3270, 0x0000 }, { 0x1a00, 0x3272, 0x0000 }, { 0x9a00, 0x3275, 0x2000 }, { 0x1a00, 0x3274, 0x0000 }, { 0x1a00, 0x3276, 0x0000 }, { 0x9a00, 0x327b, 0x3000 }, { 0x9a00, 0x3279, 0x2000 }, { 0x1a00, 0x3278, 0x0000 }, { 0x1a00, 0x327a, 0x0000 }, { 0x9a00, 0x327d, 0x2000 }, { 0x1a00, 0x327c, 0x0000 }, { 0x1a00, 0x327f, 0x0000 }, { 0x8f00, 0x3288, 0x4000 }, { 0x8f00, 0x3284, 0x3000 }, { 0x8f00, 0x3282, 0x2000 }, { 0x0f00, 0x3281, 0x0000 }, { 0x0f00, 0x3283, 0x0000 }, { 0x8f00, 0x3286, 0x2000 }, { 0x0f00, 0x3285, 0x0000 }, { 0x0f00, 0x3287, 0x0000 }, { 0x9a00, 0x328c, 0x3000 }, { 0x9a00, 0x328a, 0x2000 }, { 0x0f00, 0x3289, 0x0000 }, { 0x1a00, 0x328b, 0x0000 }, { 0x9a00, 0x328e, 0x2000 }, { 0x1a00, 0x328d, 0x0000 }, { 0x1a00, 0x328f, 0x0000 }, { 0x9a00, 0x3311, 0x8000 }, { 0x9a00, 0x32d0, 0x7000 }, { 0x9a00, 0x32b0, 0x6000 }, { 0x9a00, 0x32a0, 0x5000 }, { 0x9a00, 0x3298, 0x4000 }, { 0x9a00, 0x3294, 0x3000 }, { 0x9a00, 0x3292, 0x2000 }, { 0x1a00, 0x3291, 0x0000 }, { 0x1a00, 0x3293, 0x0000 }, { 0x9a00, 0x3296, 0x2000 }, { 0x1a00, 0x3295, 0x0000 }, { 0x1a00, 0x3297, 0x0000 }, { 0x9a00, 0x329c, 0x3000 }, { 0x9a00, 0x329a, 0x2000 }, { 0x1a00, 0x3299, 0x0000 }, { 0x1a00, 0x329b, 0x0000 }, { 0x9a00, 0x329e, 0x2000 }, { 0x1a00, 0x329d, 0x0000 }, { 0x1a00, 0x329f, 0x0000 }, { 0x9a00, 0x32a8, 0x4000 }, { 0x9a00, 0x32a4, 0x3000 }, { 0x9a00, 0x32a2, 0x2000 }, { 0x1a00, 0x32a1, 0x0000 }, { 0x1a00, 0x32a3, 0x0000 }, { 0x9a00, 0x32a6, 0x2000 }, { 0x1a00, 0x32a5, 0x0000 }, { 0x1a00, 0x32a7, 0x0000 }, { 0x9a00, 0x32ac, 0x3000 }, { 0x9a00, 0x32aa, 0x2000 }, { 0x1a00, 0x32a9, 0x0000 }, { 0x1a00, 0x32ab, 0x0000 }, { 0x9a00, 0x32ae, 0x2000 }, { 0x1a00, 0x32ad, 0x0000 }, { 0x1a00, 0x32af, 0x0000 }, { 0x9a00, 0x32c0, 0x5000 }, { 0x8f00, 0x32b8, 0x4000 }, { 0x8f00, 0x32b4, 0x3000 }, { 0x8f00, 0x32b2, 0x2000 }, { 0x0f00, 0x32b1, 0x0000 }, { 0x0f00, 0x32b3, 0x0000 }, { 0x8f00, 0x32b6, 0x2000 }, { 0x0f00, 0x32b5, 0x0000 }, { 0x0f00, 0x32b7, 0x0000 }, { 0x8f00, 0x32bc, 0x3000 }, { 0x8f00, 0x32ba, 0x2000 }, { 0x0f00, 0x32b9, 0x0000 }, { 0x0f00, 0x32bb, 0x0000 }, { 0x8f00, 0x32be, 0x2000 }, { 0x0f00, 0x32bd, 0x0000 }, { 0x0f00, 0x32bf, 0x0000 }, { 0x9a00, 0x32c8, 0x4000 }, { 0x9a00, 0x32c4, 0x3000 }, { 0x9a00, 0x32c2, 0x2000 }, { 0x1a00, 0x32c1, 0x0000 }, { 0x1a00, 0x32c3, 0x0000 }, { 0x9a00, 0x32c6, 0x2000 }, { 0x1a00, 0x32c5, 0x0000 }, { 0x1a00, 0x32c7, 0x0000 }, { 0x9a00, 0x32cc, 0x3000 }, { 0x9a00, 0x32ca, 0x2000 }, { 0x1a00, 0x32c9, 0x0000 }, { 0x1a00, 0x32cb, 0x0000 }, { 0x9a00, 0x32ce, 0x2000 }, { 0x1a00, 0x32cd, 0x0000 }, { 0x1a00, 0x32cf, 0x0000 }, { 0x9a00, 0x32f0, 0x6000 }, { 0x9a00, 0x32e0, 0x5000 }, { 0x9a00, 0x32d8, 0x4000 }, { 0x9a00, 0x32d4, 0x3000 }, { 0x9a00, 0x32d2, 0x2000 }, { 0x1a00, 0x32d1, 0x0000 }, { 0x1a00, 0x32d3, 0x0000 }, { 0x9a00, 0x32d6, 0x2000 }, { 0x1a00, 0x32d5, 0x0000 }, { 0x1a00, 0x32d7, 0x0000 }, { 0x9a00, 0x32dc, 0x3000 }, { 0x9a00, 0x32da, 0x2000 }, { 0x1a00, 0x32d9, 0x0000 }, { 0x1a00, 0x32db, 0x0000 }, { 0x9a00, 0x32de, 0x2000 }, { 0x1a00, 0x32dd, 0x0000 }, { 0x1a00, 0x32df, 0x0000 }, { 0x9a00, 0x32e8, 0x4000 }, { 0x9a00, 0x32e4, 0x3000 }, { 0x9a00, 0x32e2, 0x2000 }, { 0x1a00, 0x32e1, 0x0000 }, { 0x1a00, 0x32e3, 0x0000 }, { 0x9a00, 0x32e6, 0x2000 }, { 0x1a00, 0x32e5, 0x0000 }, { 0x1a00, 0x32e7, 0x0000 }, { 0x9a00, 0x32ec, 0x3000 }, { 0x9a00, 0x32ea, 0x2000 }, { 0x1a00, 0x32e9, 0x0000 }, { 0x1a00, 0x32eb, 0x0000 }, { 0x9a00, 0x32ee, 0x2000 }, { 0x1a00, 0x32ed, 0x0000 }, { 0x1a00, 0x32ef, 0x0000 }, { 0x9a00, 0x3301, 0x5000 }, { 0x9a00, 0x32f8, 0x4000 }, { 0x9a00, 0x32f4, 0x3000 }, { 0x9a00, 0x32f2, 0x2000 }, { 0x1a00, 0x32f1, 0x0000 }, { 0x1a00, 0x32f3, 0x0000 }, { 0x9a00, 0x32f6, 0x2000 }, { 0x1a00, 0x32f5, 0x0000 }, { 0x1a00, 0x32f7, 0x0000 }, { 0x9a00, 0x32fc, 0x3000 }, { 0x9a00, 0x32fa, 0x2000 }, { 0x1a00, 0x32f9, 0x0000 }, { 0x1a00, 0x32fb, 0x0000 }, { 0x9a00, 0x32fe, 0x2000 }, { 0x1a00, 0x32fd, 0x0000 }, { 0x1a00, 0x3300, 0x0000 }, { 0x9a00, 0x3309, 0x4000 }, { 0x9a00, 0x3305, 0x3000 }, { 0x9a00, 0x3303, 0x2000 }, { 0x1a00, 0x3302, 0x0000 }, { 0x1a00, 0x3304, 0x0000 }, { 0x9a00, 0x3307, 0x2000 }, { 0x1a00, 0x3306, 0x0000 }, { 0x1a00, 0x3308, 0x0000 }, { 0x9a00, 0x330d, 0x3000 }, { 0x9a00, 0x330b, 0x2000 }, { 0x1a00, 0x330a, 0x0000 }, { 0x1a00, 0x330c, 0x0000 }, { 0x9a00, 0x330f, 0x2000 }, { 0x1a00, 0x330e, 0x0000 }, { 0x1a00, 0x3310, 0x0000 }, { 0x9a00, 0x3351, 0x7000 }, { 0x9a00, 0x3331, 0x6000 }, { 0x9a00, 0x3321, 0x5000 }, { 0x9a00, 0x3319, 0x4000 }, { 0x9a00, 0x3315, 0x3000 }, { 0x9a00, 0x3313, 0x2000 }, { 0x1a00, 0x3312, 0x0000 }, { 0x1a00, 0x3314, 0x0000 }, { 0x9a00, 0x3317, 0x2000 }, { 0x1a00, 0x3316, 0x0000 }, { 0x1a00, 0x3318, 0x0000 }, { 0x9a00, 0x331d, 0x3000 }, { 0x9a00, 0x331b, 0x2000 }, { 0x1a00, 0x331a, 0x0000 }, { 0x1a00, 0x331c, 0x0000 }, { 0x9a00, 0x331f, 0x2000 }, { 0x1a00, 0x331e, 0x0000 }, { 0x1a00, 0x3320, 0x0000 }, { 0x9a00, 0x3329, 0x4000 }, { 0x9a00, 0x3325, 0x3000 }, { 0x9a00, 0x3323, 0x2000 }, { 0x1a00, 0x3322, 0x0000 }, { 0x1a00, 0x3324, 0x0000 }, { 0x9a00, 0x3327, 0x2000 }, { 0x1a00, 0x3326, 0x0000 }, { 0x1a00, 0x3328, 0x0000 }, { 0x9a00, 0x332d, 0x3000 }, { 0x9a00, 0x332b, 0x2000 }, { 0x1a00, 0x332a, 0x0000 }, { 0x1a00, 0x332c, 0x0000 }, { 0x9a00, 0x332f, 0x2000 }, { 0x1a00, 0x332e, 0x0000 }, { 0x1a00, 0x3330, 0x0000 }, { 0x9a00, 0x3341, 0x5000 }, { 0x9a00, 0x3339, 0x4000 }, { 0x9a00, 0x3335, 0x3000 }, { 0x9a00, 0x3333, 0x2000 }, { 0x1a00, 0x3332, 0x0000 }, { 0x1a00, 0x3334, 0x0000 }, { 0x9a00, 0x3337, 0x2000 }, { 0x1a00, 0x3336, 0x0000 }, { 0x1a00, 0x3338, 0x0000 }, { 0x9a00, 0x333d, 0x3000 }, { 0x9a00, 0x333b, 0x2000 }, { 0x1a00, 0x333a, 0x0000 }, { 0x1a00, 0x333c, 0x0000 }, { 0x9a00, 0x333f, 0x2000 }, { 0x1a00, 0x333e, 0x0000 }, { 0x1a00, 0x3340, 0x0000 }, { 0x9a00, 0x3349, 0x4000 }, { 0x9a00, 0x3345, 0x3000 }, { 0x9a00, 0x3343, 0x2000 }, { 0x1a00, 0x3342, 0x0000 }, { 0x1a00, 0x3344, 0x0000 }, { 0x9a00, 0x3347, 0x2000 }, { 0x1a00, 0x3346, 0x0000 }, { 0x1a00, 0x3348, 0x0000 }, { 0x9a00, 0x334d, 0x3000 }, { 0x9a00, 0x334b, 0x2000 }, { 0x1a00, 0x334a, 0x0000 }, { 0x1a00, 0x334c, 0x0000 }, { 0x9a00, 0x334f, 0x2000 }, { 0x1a00, 0x334e, 0x0000 }, { 0x1a00, 0x3350, 0x0000 }, { 0x9a00, 0x3371, 0x6000 }, { 0x9a00, 0x3361, 0x5000 }, { 0x9a00, 0x3359, 0x4000 }, { 0x9a00, 0x3355, 0x3000 }, { 0x9a00, 0x3353, 0x2000 }, { 0x1a00, 0x3352, 0x0000 }, { 0x1a00, 0x3354, 0x0000 }, { 0x9a00, 0x3357, 0x2000 }, { 0x1a00, 0x3356, 0x0000 }, { 0x1a00, 0x3358, 0x0000 }, { 0x9a00, 0x335d, 0x3000 }, { 0x9a00, 0x335b, 0x2000 }, { 0x1a00, 0x335a, 0x0000 }, { 0x1a00, 0x335c, 0x0000 }, { 0x9a00, 0x335f, 0x2000 }, { 0x1a00, 0x335e, 0x0000 }, { 0x1a00, 0x3360, 0x0000 }, { 0x9a00, 0x3369, 0x4000 }, { 0x9a00, 0x3365, 0x3000 }, { 0x9a00, 0x3363, 0x2000 }, { 0x1a00, 0x3362, 0x0000 }, { 0x1a00, 0x3364, 0x0000 }, { 0x9a00, 0x3367, 0x2000 }, { 0x1a00, 0x3366, 0x0000 }, { 0x1a00, 0x3368, 0x0000 }, { 0x9a00, 0x336d, 0x3000 }, { 0x9a00, 0x336b, 0x2000 }, { 0x1a00, 0x336a, 0x0000 }, { 0x1a00, 0x336c, 0x0000 }, { 0x9a00, 0x336f, 0x2000 }, { 0x1a00, 0x336e, 0x0000 }, { 0x1a00, 0x3370, 0x0000 }, { 0x9a00, 0x3381, 0x5000 }, { 0x9a00, 0x3379, 0x4000 }, { 0x9a00, 0x3375, 0x3000 }, { 0x9a00, 0x3373, 0x2000 }, { 0x1a00, 0x3372, 0x0000 }, { 0x1a00, 0x3374, 0x0000 }, { 0x9a00, 0x3377, 0x2000 }, { 0x1a00, 0x3376, 0x0000 }, { 0x1a00, 0x3378, 0x0000 }, { 0x9a00, 0x337d, 0x3000 }, { 0x9a00, 0x337b, 0x2000 }, { 0x1a00, 0x337a, 0x0000 }, { 0x1a00, 0x337c, 0x0000 }, { 0x9a00, 0x337f, 0x2000 }, { 0x1a00, 0x337e, 0x0000 }, { 0x1a00, 0x3380, 0x0000 }, { 0x9a00, 0x3389, 0x4000 }, { 0x9a00, 0x3385, 0x3000 }, { 0x9a00, 0x3383, 0x2000 }, { 0x1a00, 0x3382, 0x0000 }, { 0x1a00, 0x3384, 0x0000 }, { 0x9a00, 0x3387, 0x2000 }, { 0x1a00, 0x3386, 0x0000 }, { 0x1a00, 0x3388, 0x0000 }, { 0x9a00, 0x338d, 0x3000 }, { 0x9a00, 0x338b, 0x2000 }, { 0x1a00, 0x338a, 0x0000 }, { 0x1a00, 0x338c, 0x0000 }, { 0x9a00, 0x338f, 0x2000 }, { 0x1a00, 0x338e, 0x0000 }, { 0x1a00, 0x3390, 0x0000 }, { 0x8700, 0xa14d, 0xa000 }, { 0x8700, 0xa04d, 0x9000 }, { 0x9a00, 0x4dcf, 0x8000 }, { 0x9a00, 0x33d1, 0x7000 }, { 0x9a00, 0x33b1, 0x6000 }, { 0x9a00, 0x33a1, 0x5000 }, { 0x9a00, 0x3399, 0x4000 }, { 0x9a00, 0x3395, 0x3000 }, { 0x9a00, 0x3393, 0x2000 }, { 0x1a00, 0x3392, 0x0000 }, { 0x1a00, 0x3394, 0x0000 }, { 0x9a00, 0x3397, 0x2000 }, { 0x1a00, 0x3396, 0x0000 }, { 0x1a00, 0x3398, 0x0000 }, { 0x9a00, 0x339d, 0x3000 }, { 0x9a00, 0x339b, 0x2000 }, { 0x1a00, 0x339a, 0x0000 }, { 0x1a00, 0x339c, 0x0000 }, { 0x9a00, 0x339f, 0x2000 }, { 0x1a00, 0x339e, 0x0000 }, { 0x1a00, 0x33a0, 0x0000 }, { 0x9a00, 0x33a9, 0x4000 }, { 0x9a00, 0x33a5, 0x3000 }, { 0x9a00, 0x33a3, 0x2000 }, { 0x1a00, 0x33a2, 0x0000 }, { 0x1a00, 0x33a4, 0x0000 }, { 0x9a00, 0x33a7, 0x2000 }, { 0x1a00, 0x33a6, 0x0000 }, { 0x1a00, 0x33a8, 0x0000 }, { 0x9a00, 0x33ad, 0x3000 }, { 0x9a00, 0x33ab, 0x2000 }, { 0x1a00, 0x33aa, 0x0000 }, { 0x1a00, 0x33ac, 0x0000 }, { 0x9a00, 0x33af, 0x2000 }, { 0x1a00, 0x33ae, 0x0000 }, { 0x1a00, 0x33b0, 0x0000 }, { 0x9a00, 0x33c1, 0x5000 }, { 0x9a00, 0x33b9, 0x4000 }, { 0x9a00, 0x33b5, 0x3000 }, { 0x9a00, 0x33b3, 0x2000 }, { 0x1a00, 0x33b2, 0x0000 }, { 0x1a00, 0x33b4, 0x0000 }, { 0x9a00, 0x33b7, 0x2000 }, { 0x1a00, 0x33b6, 0x0000 }, { 0x1a00, 0x33b8, 0x0000 }, { 0x9a00, 0x33bd, 0x3000 }, { 0x9a00, 0x33bb, 0x2000 }, { 0x1a00, 0x33ba, 0x0000 }, { 0x1a00, 0x33bc, 0x0000 }, { 0x9a00, 0x33bf, 0x2000 }, { 0x1a00, 0x33be, 0x0000 }, { 0x1a00, 0x33c0, 0x0000 }, { 0x9a00, 0x33c9, 0x4000 }, { 0x9a00, 0x33c5, 0x3000 }, { 0x9a00, 0x33c3, 0x2000 }, { 0x1a00, 0x33c2, 0x0000 }, { 0x1a00, 0x33c4, 0x0000 }, { 0x9a00, 0x33c7, 0x2000 }, { 0x1a00, 0x33c6, 0x0000 }, { 0x1a00, 0x33c8, 0x0000 }, { 0x9a00, 0x33cd, 0x3000 }, { 0x9a00, 0x33cb, 0x2000 }, { 0x1a00, 0x33ca, 0x0000 }, { 0x1a00, 0x33cc, 0x0000 }, { 0x9a00, 0x33cf, 0x2000 }, { 0x1a00, 0x33ce, 0x0000 }, { 0x1a00, 0x33d0, 0x0000 }, { 0x9a00, 0x33f1, 0x6000 }, { 0x9a00, 0x33e1, 0x5000 }, { 0x9a00, 0x33d9, 0x4000 }, { 0x9a00, 0x33d5, 0x3000 }, { 0x9a00, 0x33d3, 0x2000 }, { 0x1a00, 0x33d2, 0x0000 }, { 0x1a00, 0x33d4, 0x0000 }, { 0x9a00, 0x33d7, 0x2000 }, { 0x1a00, 0x33d6, 0x0000 }, { 0x1a00, 0x33d8, 0x0000 }, { 0x9a00, 0x33dd, 0x3000 }, { 0x9a00, 0x33db, 0x2000 }, { 0x1a00, 0x33da, 0x0000 }, { 0x1a00, 0x33dc, 0x0000 }, { 0x9a00, 0x33df, 0x2000 }, { 0x1a00, 0x33de, 0x0000 }, { 0x1a00, 0x33e0, 0x0000 }, { 0x9a00, 0x33e9, 0x4000 }, { 0x9a00, 0x33e5, 0x3000 }, { 0x9a00, 0x33e3, 0x2000 }, { 0x1a00, 0x33e2, 0x0000 }, { 0x1a00, 0x33e4, 0x0000 }, { 0x9a00, 0x33e7, 0x2000 }, { 0x1a00, 0x33e6, 0x0000 }, { 0x1a00, 0x33e8, 0x0000 }, { 0x9a00, 0x33ed, 0x3000 }, { 0x9a00, 0x33eb, 0x2000 }, { 0x1a00, 0x33ea, 0x0000 }, { 0x1a00, 0x33ec, 0x0000 }, { 0x9a00, 0x33ef, 0x2000 }, { 0x1a00, 0x33ee, 0x0000 }, { 0x1a00, 0x33f0, 0x0000 }, { 0x8700, 0x4db5, 0x5000 }, { 0x9a00, 0x33f9, 0x4000 }, { 0x9a00, 0x33f5, 0x3000 }, { 0x9a00, 0x33f3, 0x2000 }, { 0x1a00, 0x33f2, 0x0000 }, { 0x1a00, 0x33f4, 0x0000 }, { 0x9a00, 0x33f7, 0x2000 }, { 0x1a00, 0x33f6, 0x0000 }, { 0x1a00, 0x33f8, 0x0000 }, { 0x9a00, 0x33fd, 0x3000 }, { 0x9a00, 0x33fb, 0x2000 }, { 0x1a00, 0x33fa, 0x0000 }, { 0x1a00, 0x33fc, 0x0000 }, { 0x9a00, 0x33ff, 0x2000 }, { 0x1a00, 0x33fe, 0x0000 }, { 0x0700, 0x3400, 0x0000 }, { 0x9a00, 0x4dc7, 0x4000 }, { 0x9a00, 0x4dc3, 0x3000 }, { 0x9a00, 0x4dc1, 0x2000 }, { 0x1a00, 0x4dc0, 0x0000 }, { 0x1a00, 0x4dc2, 0x0000 }, { 0x9a00, 0x4dc5, 0x2000 }, { 0x1a00, 0x4dc4, 0x0000 }, { 0x1a00, 0x4dc6, 0x0000 }, { 0x9a00, 0x4dcb, 0x3000 }, { 0x9a00, 0x4dc9, 0x2000 }, { 0x1a00, 0x4dc8, 0x0000 }, { 0x1a00, 0x4dca, 0x0000 }, { 0x9a00, 0x4dcd, 0x2000 }, { 0x1a00, 0x4dcc, 0x0000 }, { 0x1a00, 0x4dce, 0x0000 }, { 0x8700, 0xa00d, 0x7000 }, { 0x9a00, 0x4def, 0x6000 }, { 0x9a00, 0x4ddf, 0x5000 }, { 0x9a00, 0x4dd7, 0x4000 }, { 0x9a00, 0x4dd3, 0x3000 }, { 0x9a00, 0x4dd1, 0x2000 }, { 0x1a00, 0x4dd0, 0x0000 }, { 0x1a00, 0x4dd2, 0x0000 }, { 0x9a00, 0x4dd5, 0x2000 }, { 0x1a00, 0x4dd4, 0x0000 }, { 0x1a00, 0x4dd6, 0x0000 }, { 0x9a00, 0x4ddb, 0x3000 }, { 0x9a00, 0x4dd9, 0x2000 }, { 0x1a00, 0x4dd8, 0x0000 }, { 0x1a00, 0x4dda, 0x0000 }, { 0x9a00, 0x4ddd, 0x2000 }, { 0x1a00, 0x4ddc, 0x0000 }, { 0x1a00, 0x4dde, 0x0000 }, { 0x9a00, 0x4de7, 0x4000 }, { 0x9a00, 0x4de3, 0x3000 }, { 0x9a00, 0x4de1, 0x2000 }, { 0x1a00, 0x4de0, 0x0000 }, { 0x1a00, 0x4de2, 0x0000 }, { 0x9a00, 0x4de5, 0x2000 }, { 0x1a00, 0x4de4, 0x0000 }, { 0x1a00, 0x4de6, 0x0000 }, { 0x9a00, 0x4deb, 0x3000 }, { 0x9a00, 0x4de9, 0x2000 }, { 0x1a00, 0x4de8, 0x0000 }, { 0x1a00, 0x4dea, 0x0000 }, { 0x9a00, 0x4ded, 0x2000 }, { 0x1a00, 0x4dec, 0x0000 }, { 0x1a00, 0x4dee, 0x0000 }, { 0x9a00, 0x4dff, 0x5000 }, { 0x9a00, 0x4df7, 0x4000 }, { 0x9a00, 0x4df3, 0x3000 }, { 0x9a00, 0x4df1, 0x2000 }, { 0x1a00, 0x4df0, 0x0000 }, { 0x1a00, 0x4df2, 0x0000 }, { 0x9a00, 0x4df5, 0x2000 }, { 0x1a00, 0x4df4, 0x0000 }, { 0x1a00, 0x4df6, 0x0000 }, { 0x9a00, 0x4dfb, 0x3000 }, { 0x9a00, 0x4df9, 0x2000 }, { 0x1a00, 0x4df8, 0x0000 }, { 0x1a00, 0x4dfa, 0x0000 }, { 0x9a00, 0x4dfd, 0x2000 }, { 0x1a00, 0x4dfc, 0x0000 }, { 0x1a00, 0x4dfe, 0x0000 }, { 0x8700, 0xa005, 0x4000 }, { 0x8700, 0xa001, 0x3000 }, { 0x8700, 0x9fa5, 0x2000 }, { 0x0700, 0x4e00, 0x0000 }, { 0x0700, 0xa000, 0x0000 }, { 0x8700, 0xa003, 0x2000 }, { 0x0700, 0xa002, 0x0000 }, { 0x0700, 0xa004, 0x0000 }, { 0x8700, 0xa009, 0x3000 }, { 0x8700, 0xa007, 0x2000 }, { 0x0700, 0xa006, 0x0000 }, { 0x0700, 0xa008, 0x0000 }, { 0x8700, 0xa00b, 0x2000 }, { 0x0700, 0xa00a, 0x0000 }, { 0x0700, 0xa00c, 0x0000 }, { 0x8700, 0xa02d, 0x6000 }, { 0x8700, 0xa01d, 0x5000 }, { 0x8700, 0xa015, 0x4000 }, { 0x8700, 0xa011, 0x3000 }, { 0x8700, 0xa00f, 0x2000 }, { 0x0700, 0xa00e, 0x0000 }, { 0x0700, 0xa010, 0x0000 }, { 0x8700, 0xa013, 0x2000 }, { 0x0700, 0xa012, 0x0000 }, { 0x0700, 0xa014, 0x0000 }, { 0x8700, 0xa019, 0x3000 }, { 0x8700, 0xa017, 0x2000 }, { 0x0700, 0xa016, 0x0000 }, { 0x0700, 0xa018, 0x0000 }, { 0x8700, 0xa01b, 0x2000 }, { 0x0700, 0xa01a, 0x0000 }, { 0x0700, 0xa01c, 0x0000 }, { 0x8700, 0xa025, 0x4000 }, { 0x8700, 0xa021, 0x3000 }, { 0x8700, 0xa01f, 0x2000 }, { 0x0700, 0xa01e, 0x0000 }, { 0x0700, 0xa020, 0x0000 }, { 0x8700, 0xa023, 0x2000 }, { 0x0700, 0xa022, 0x0000 }, { 0x0700, 0xa024, 0x0000 }, { 0x8700, 0xa029, 0x3000 }, { 0x8700, 0xa027, 0x2000 }, { 0x0700, 0xa026, 0x0000 }, { 0x0700, 0xa028, 0x0000 }, { 0x8700, 0xa02b, 0x2000 }, { 0x0700, 0xa02a, 0x0000 }, { 0x0700, 0xa02c, 0x0000 }, { 0x8700, 0xa03d, 0x5000 }, { 0x8700, 0xa035, 0x4000 }, { 0x8700, 0xa031, 0x3000 }, { 0x8700, 0xa02f, 0x2000 }, { 0x0700, 0xa02e, 0x0000 }, { 0x0700, 0xa030, 0x0000 }, { 0x8700, 0xa033, 0x2000 }, { 0x0700, 0xa032, 0x0000 }, { 0x0700, 0xa034, 0x0000 }, { 0x8700, 0xa039, 0x3000 }, { 0x8700, 0xa037, 0x2000 }, { 0x0700, 0xa036, 0x0000 }, { 0x0700, 0xa038, 0x0000 }, { 0x8700, 0xa03b, 0x2000 }, { 0x0700, 0xa03a, 0x0000 }, { 0x0700, 0xa03c, 0x0000 }, { 0x8700, 0xa045, 0x4000 }, { 0x8700, 0xa041, 0x3000 }, { 0x8700, 0xa03f, 0x2000 }, { 0x0700, 0xa03e, 0x0000 }, { 0x0700, 0xa040, 0x0000 }, { 0x8700, 0xa043, 0x2000 }, { 0x0700, 0xa042, 0x0000 }, { 0x0700, 0xa044, 0x0000 }, { 0x8700, 0xa049, 0x3000 }, { 0x8700, 0xa047, 0x2000 }, { 0x0700, 0xa046, 0x0000 }, { 0x0700, 0xa048, 0x0000 }, { 0x8700, 0xa04b, 0x2000 }, { 0x0700, 0xa04a, 0x0000 }, { 0x0700, 0xa04c, 0x0000 }, { 0x8700, 0xa0cd, 0x8000 }, { 0x8700, 0xa08d, 0x7000 }, { 0x8700, 0xa06d, 0x6000 }, { 0x8700, 0xa05d, 0x5000 }, { 0x8700, 0xa055, 0x4000 }, { 0x8700, 0xa051, 0x3000 }, { 0x8700, 0xa04f, 0x2000 }, { 0x0700, 0xa04e, 0x0000 }, { 0x0700, 0xa050, 0x0000 }, { 0x8700, 0xa053, 0x2000 }, { 0x0700, 0xa052, 0x0000 }, { 0x0700, 0xa054, 0x0000 }, { 0x8700, 0xa059, 0x3000 }, { 0x8700, 0xa057, 0x2000 }, { 0x0700, 0xa056, 0x0000 }, { 0x0700, 0xa058, 0x0000 }, { 0x8700, 0xa05b, 0x2000 }, { 0x0700, 0xa05a, 0x0000 }, { 0x0700, 0xa05c, 0x0000 }, { 0x8700, 0xa065, 0x4000 }, { 0x8700, 0xa061, 0x3000 }, { 0x8700, 0xa05f, 0x2000 }, { 0x0700, 0xa05e, 0x0000 }, { 0x0700, 0xa060, 0x0000 }, { 0x8700, 0xa063, 0x2000 }, { 0x0700, 0xa062, 0x0000 }, { 0x0700, 0xa064, 0x0000 }, { 0x8700, 0xa069, 0x3000 }, { 0x8700, 0xa067, 0x2000 }, { 0x0700, 0xa066, 0x0000 }, { 0x0700, 0xa068, 0x0000 }, { 0x8700, 0xa06b, 0x2000 }, { 0x0700, 0xa06a, 0x0000 }, { 0x0700, 0xa06c, 0x0000 }, { 0x8700, 0xa07d, 0x5000 }, { 0x8700, 0xa075, 0x4000 }, { 0x8700, 0xa071, 0x3000 }, { 0x8700, 0xa06f, 0x2000 }, { 0x0700, 0xa06e, 0x0000 }, { 0x0700, 0xa070, 0x0000 }, { 0x8700, 0xa073, 0x2000 }, { 0x0700, 0xa072, 0x0000 }, { 0x0700, 0xa074, 0x0000 }, { 0x8700, 0xa079, 0x3000 }, { 0x8700, 0xa077, 0x2000 }, { 0x0700, 0xa076, 0x0000 }, { 0x0700, 0xa078, 0x0000 }, { 0x8700, 0xa07b, 0x2000 }, { 0x0700, 0xa07a, 0x0000 }, { 0x0700, 0xa07c, 0x0000 }, { 0x8700, 0xa085, 0x4000 }, { 0x8700, 0xa081, 0x3000 }, { 0x8700, 0xa07f, 0x2000 }, { 0x0700, 0xa07e, 0x0000 }, { 0x0700, 0xa080, 0x0000 }, { 0x8700, 0xa083, 0x2000 }, { 0x0700, 0xa082, 0x0000 }, { 0x0700, 0xa084, 0x0000 }, { 0x8700, 0xa089, 0x3000 }, { 0x8700, 0xa087, 0x2000 }, { 0x0700, 0xa086, 0x0000 }, { 0x0700, 0xa088, 0x0000 }, { 0x8700, 0xa08b, 0x2000 }, { 0x0700, 0xa08a, 0x0000 }, { 0x0700, 0xa08c, 0x0000 }, { 0x8700, 0xa0ad, 0x6000 }, { 0x8700, 0xa09d, 0x5000 }, { 0x8700, 0xa095, 0x4000 }, { 0x8700, 0xa091, 0x3000 }, { 0x8700, 0xa08f, 0x2000 }, { 0x0700, 0xa08e, 0x0000 }, { 0x0700, 0xa090, 0x0000 }, { 0x8700, 0xa093, 0x2000 }, { 0x0700, 0xa092, 0x0000 }, { 0x0700, 0xa094, 0x0000 }, { 0x8700, 0xa099, 0x3000 }, { 0x8700, 0xa097, 0x2000 }, { 0x0700, 0xa096, 0x0000 }, { 0x0700, 0xa098, 0x0000 }, { 0x8700, 0xa09b, 0x2000 }, { 0x0700, 0xa09a, 0x0000 }, { 0x0700, 0xa09c, 0x0000 }, { 0x8700, 0xa0a5, 0x4000 }, { 0x8700, 0xa0a1, 0x3000 }, { 0x8700, 0xa09f, 0x2000 }, { 0x0700, 0xa09e, 0x0000 }, { 0x0700, 0xa0a0, 0x0000 }, { 0x8700, 0xa0a3, 0x2000 }, { 0x0700, 0xa0a2, 0x0000 }, { 0x0700, 0xa0a4, 0x0000 }, { 0x8700, 0xa0a9, 0x3000 }, { 0x8700, 0xa0a7, 0x2000 }, { 0x0700, 0xa0a6, 0x0000 }, { 0x0700, 0xa0a8, 0x0000 }, { 0x8700, 0xa0ab, 0x2000 }, { 0x0700, 0xa0aa, 0x0000 }, { 0x0700, 0xa0ac, 0x0000 }, { 0x8700, 0xa0bd, 0x5000 }, { 0x8700, 0xa0b5, 0x4000 }, { 0x8700, 0xa0b1, 0x3000 }, { 0x8700, 0xa0af, 0x2000 }, { 0x0700, 0xa0ae, 0x0000 }, { 0x0700, 0xa0b0, 0x0000 }, { 0x8700, 0xa0b3, 0x2000 }, { 0x0700, 0xa0b2, 0x0000 }, { 0x0700, 0xa0b4, 0x0000 }, { 0x8700, 0xa0b9, 0x3000 }, { 0x8700, 0xa0b7, 0x2000 }, { 0x0700, 0xa0b6, 0x0000 }, { 0x0700, 0xa0b8, 0x0000 }, { 0x8700, 0xa0bb, 0x2000 }, { 0x0700, 0xa0ba, 0x0000 }, { 0x0700, 0xa0bc, 0x0000 }, { 0x8700, 0xa0c5, 0x4000 }, { 0x8700, 0xa0c1, 0x3000 }, { 0x8700, 0xa0bf, 0x2000 }, { 0x0700, 0xa0be, 0x0000 }, { 0x0700, 0xa0c0, 0x0000 }, { 0x8700, 0xa0c3, 0x2000 }, { 0x0700, 0xa0c2, 0x0000 }, { 0x0700, 0xa0c4, 0x0000 }, { 0x8700, 0xa0c9, 0x3000 }, { 0x8700, 0xa0c7, 0x2000 }, { 0x0700, 0xa0c6, 0x0000 }, { 0x0700, 0xa0c8, 0x0000 }, { 0x8700, 0xa0cb, 0x2000 }, { 0x0700, 0xa0ca, 0x0000 }, { 0x0700, 0xa0cc, 0x0000 }, { 0x8700, 0xa10d, 0x7000 }, { 0x8700, 0xa0ed, 0x6000 }, { 0x8700, 0xa0dd, 0x5000 }, { 0x8700, 0xa0d5, 0x4000 }, { 0x8700, 0xa0d1, 0x3000 }, { 0x8700, 0xa0cf, 0x2000 }, { 0x0700, 0xa0ce, 0x0000 }, { 0x0700, 0xa0d0, 0x0000 }, { 0x8700, 0xa0d3, 0x2000 }, { 0x0700, 0xa0d2, 0x0000 }, { 0x0700, 0xa0d4, 0x0000 }, { 0x8700, 0xa0d9, 0x3000 }, { 0x8700, 0xa0d7, 0x2000 }, { 0x0700, 0xa0d6, 0x0000 }, { 0x0700, 0xa0d8, 0x0000 }, { 0x8700, 0xa0db, 0x2000 }, { 0x0700, 0xa0da, 0x0000 }, { 0x0700, 0xa0dc, 0x0000 }, { 0x8700, 0xa0e5, 0x4000 }, { 0x8700, 0xa0e1, 0x3000 }, { 0x8700, 0xa0df, 0x2000 }, { 0x0700, 0xa0de, 0x0000 }, { 0x0700, 0xa0e0, 0x0000 }, { 0x8700, 0xa0e3, 0x2000 }, { 0x0700, 0xa0e2, 0x0000 }, { 0x0700, 0xa0e4, 0x0000 }, { 0x8700, 0xa0e9, 0x3000 }, { 0x8700, 0xa0e7, 0x2000 }, { 0x0700, 0xa0e6, 0x0000 }, { 0x0700, 0xa0e8, 0x0000 }, { 0x8700, 0xa0eb, 0x2000 }, { 0x0700, 0xa0ea, 0x0000 }, { 0x0700, 0xa0ec, 0x0000 }, { 0x8700, 0xa0fd, 0x5000 }, { 0x8700, 0xa0f5, 0x4000 }, { 0x8700, 0xa0f1, 0x3000 }, { 0x8700, 0xa0ef, 0x2000 }, { 0x0700, 0xa0ee, 0x0000 }, { 0x0700, 0xa0f0, 0x0000 }, { 0x8700, 0xa0f3, 0x2000 }, { 0x0700, 0xa0f2, 0x0000 }, { 0x0700, 0xa0f4, 0x0000 }, { 0x8700, 0xa0f9, 0x3000 }, { 0x8700, 0xa0f7, 0x2000 }, { 0x0700, 0xa0f6, 0x0000 }, { 0x0700, 0xa0f8, 0x0000 }, { 0x8700, 0xa0fb, 0x2000 }, { 0x0700, 0xa0fa, 0x0000 }, { 0x0700, 0xa0fc, 0x0000 }, { 0x8700, 0xa105, 0x4000 }, { 0x8700, 0xa101, 0x3000 }, { 0x8700, 0xa0ff, 0x2000 }, { 0x0700, 0xa0fe, 0x0000 }, { 0x0700, 0xa100, 0x0000 }, { 0x8700, 0xa103, 0x2000 }, { 0x0700, 0xa102, 0x0000 }, { 0x0700, 0xa104, 0x0000 }, { 0x8700, 0xa109, 0x3000 }, { 0x8700, 0xa107, 0x2000 }, { 0x0700, 0xa106, 0x0000 }, { 0x0700, 0xa108, 0x0000 }, { 0x8700, 0xa10b, 0x2000 }, { 0x0700, 0xa10a, 0x0000 }, { 0x0700, 0xa10c, 0x0000 }, { 0x8700, 0xa12d, 0x6000 }, { 0x8700, 0xa11d, 0x5000 }, { 0x8700, 0xa115, 0x4000 }, { 0x8700, 0xa111, 0x3000 }, { 0x8700, 0xa10f, 0x2000 }, { 0x0700, 0xa10e, 0x0000 }, { 0x0700, 0xa110, 0x0000 }, { 0x8700, 0xa113, 0x2000 }, { 0x0700, 0xa112, 0x0000 }, { 0x0700, 0xa114, 0x0000 }, { 0x8700, 0xa119, 0x3000 }, { 0x8700, 0xa117, 0x2000 }, { 0x0700, 0xa116, 0x0000 }, { 0x0700, 0xa118, 0x0000 }, { 0x8700, 0xa11b, 0x2000 }, { 0x0700, 0xa11a, 0x0000 }, { 0x0700, 0xa11c, 0x0000 }, { 0x8700, 0xa125, 0x4000 }, { 0x8700, 0xa121, 0x3000 }, { 0x8700, 0xa11f, 0x2000 }, { 0x0700, 0xa11e, 0x0000 }, { 0x0700, 0xa120, 0x0000 }, { 0x8700, 0xa123, 0x2000 }, { 0x0700, 0xa122, 0x0000 }, { 0x0700, 0xa124, 0x0000 }, { 0x8700, 0xa129, 0x3000 }, { 0x8700, 0xa127, 0x2000 }, { 0x0700, 0xa126, 0x0000 }, { 0x0700, 0xa128, 0x0000 }, { 0x8700, 0xa12b, 0x2000 }, { 0x0700, 0xa12a, 0x0000 }, { 0x0700, 0xa12c, 0x0000 }, { 0x8700, 0xa13d, 0x5000 }, { 0x8700, 0xa135, 0x4000 }, { 0x8700, 0xa131, 0x3000 }, { 0x8700, 0xa12f, 0x2000 }, { 0x0700, 0xa12e, 0x0000 }, { 0x0700, 0xa130, 0x0000 }, { 0x8700, 0xa133, 0x2000 }, { 0x0700, 0xa132, 0x0000 }, { 0x0700, 0xa134, 0x0000 }, { 0x8700, 0xa139, 0x3000 }, { 0x8700, 0xa137, 0x2000 }, { 0x0700, 0xa136, 0x0000 }, { 0x0700, 0xa138, 0x0000 }, { 0x8700, 0xa13b, 0x2000 }, { 0x0700, 0xa13a, 0x0000 }, { 0x0700, 0xa13c, 0x0000 }, { 0x8700, 0xa145, 0x4000 }, { 0x8700, 0xa141, 0x3000 }, { 0x8700, 0xa13f, 0x2000 }, { 0x0700, 0xa13e, 0x0000 }, { 0x0700, 0xa140, 0x0000 }, { 0x8700, 0xa143, 0x2000 }, { 0x0700, 0xa142, 0x0000 }, { 0x0700, 0xa144, 0x0000 }, { 0x8700, 0xa149, 0x3000 }, { 0x8700, 0xa147, 0x2000 }, { 0x0700, 0xa146, 0x0000 }, { 0x0700, 0xa148, 0x0000 }, { 0x8700, 0xa14b, 0x2000 }, { 0x0700, 0xa14a, 0x0000 }, { 0x0700, 0xa14c, 0x0000 }, { 0x8700, 0xa24d, 0x9000 }, { 0x8700, 0xa1cd, 0x8000 }, { 0x8700, 0xa18d, 0x7000 }, { 0x8700, 0xa16d, 0x6000 }, { 0x8700, 0xa15d, 0x5000 }, { 0x8700, 0xa155, 0x4000 }, { 0x8700, 0xa151, 0x3000 }, { 0x8700, 0xa14f, 0x2000 }, { 0x0700, 0xa14e, 0x0000 }, { 0x0700, 0xa150, 0x0000 }, { 0x8700, 0xa153, 0x2000 }, { 0x0700, 0xa152, 0x0000 }, { 0x0700, 0xa154, 0x0000 }, { 0x8700, 0xa159, 0x3000 }, { 0x8700, 0xa157, 0x2000 }, { 0x0700, 0xa156, 0x0000 }, { 0x0700, 0xa158, 0x0000 }, { 0x8700, 0xa15b, 0x2000 }, { 0x0700, 0xa15a, 0x0000 }, { 0x0700, 0xa15c, 0x0000 }, { 0x8700, 0xa165, 0x4000 }, { 0x8700, 0xa161, 0x3000 }, { 0x8700, 0xa15f, 0x2000 }, { 0x0700, 0xa15e, 0x0000 }, { 0x0700, 0xa160, 0x0000 }, { 0x8700, 0xa163, 0x2000 }, { 0x0700, 0xa162, 0x0000 }, { 0x0700, 0xa164, 0x0000 }, { 0x8700, 0xa169, 0x3000 }, { 0x8700, 0xa167, 0x2000 }, { 0x0700, 0xa166, 0x0000 }, { 0x0700, 0xa168, 0x0000 }, { 0x8700, 0xa16b, 0x2000 }, { 0x0700, 0xa16a, 0x0000 }, { 0x0700, 0xa16c, 0x0000 }, { 0x8700, 0xa17d, 0x5000 }, { 0x8700, 0xa175, 0x4000 }, { 0x8700, 0xa171, 0x3000 }, { 0x8700, 0xa16f, 0x2000 }, { 0x0700, 0xa16e, 0x0000 }, { 0x0700, 0xa170, 0x0000 }, { 0x8700, 0xa173, 0x2000 }, { 0x0700, 0xa172, 0x0000 }, { 0x0700, 0xa174, 0x0000 }, { 0x8700, 0xa179, 0x3000 }, { 0x8700, 0xa177, 0x2000 }, { 0x0700, 0xa176, 0x0000 }, { 0x0700, 0xa178, 0x0000 }, { 0x8700, 0xa17b, 0x2000 }, { 0x0700, 0xa17a, 0x0000 }, { 0x0700, 0xa17c, 0x0000 }, { 0x8700, 0xa185, 0x4000 }, { 0x8700, 0xa181, 0x3000 }, { 0x8700, 0xa17f, 0x2000 }, { 0x0700, 0xa17e, 0x0000 }, { 0x0700, 0xa180, 0x0000 }, { 0x8700, 0xa183, 0x2000 }, { 0x0700, 0xa182, 0x0000 }, { 0x0700, 0xa184, 0x0000 }, { 0x8700, 0xa189, 0x3000 }, { 0x8700, 0xa187, 0x2000 }, { 0x0700, 0xa186, 0x0000 }, { 0x0700, 0xa188, 0x0000 }, { 0x8700, 0xa18b, 0x2000 }, { 0x0700, 0xa18a, 0x0000 }, { 0x0700, 0xa18c, 0x0000 }, { 0x8700, 0xa1ad, 0x6000 }, { 0x8700, 0xa19d, 0x5000 }, { 0x8700, 0xa195, 0x4000 }, { 0x8700, 0xa191, 0x3000 }, { 0x8700, 0xa18f, 0x2000 }, { 0x0700, 0xa18e, 0x0000 }, { 0x0700, 0xa190, 0x0000 }, { 0x8700, 0xa193, 0x2000 }, { 0x0700, 0xa192, 0x0000 }, { 0x0700, 0xa194, 0x0000 }, { 0x8700, 0xa199, 0x3000 }, { 0x8700, 0xa197, 0x2000 }, { 0x0700, 0xa196, 0x0000 }, { 0x0700, 0xa198, 0x0000 }, { 0x8700, 0xa19b, 0x2000 }, { 0x0700, 0xa19a, 0x0000 }, { 0x0700, 0xa19c, 0x0000 }, { 0x8700, 0xa1a5, 0x4000 }, { 0x8700, 0xa1a1, 0x3000 }, { 0x8700, 0xa19f, 0x2000 }, { 0x0700, 0xa19e, 0x0000 }, { 0x0700, 0xa1a0, 0x0000 }, { 0x8700, 0xa1a3, 0x2000 }, { 0x0700, 0xa1a2, 0x0000 }, { 0x0700, 0xa1a4, 0x0000 }, { 0x8700, 0xa1a9, 0x3000 }, { 0x8700, 0xa1a7, 0x2000 }, { 0x0700, 0xa1a6, 0x0000 }, { 0x0700, 0xa1a8, 0x0000 }, { 0x8700, 0xa1ab, 0x2000 }, { 0x0700, 0xa1aa, 0x0000 }, { 0x0700, 0xa1ac, 0x0000 }, { 0x8700, 0xa1bd, 0x5000 }, { 0x8700, 0xa1b5, 0x4000 }, { 0x8700, 0xa1b1, 0x3000 }, { 0x8700, 0xa1af, 0x2000 }, { 0x0700, 0xa1ae, 0x0000 }, { 0x0700, 0xa1b0, 0x0000 }, { 0x8700, 0xa1b3, 0x2000 }, { 0x0700, 0xa1b2, 0x0000 }, { 0x0700, 0xa1b4, 0x0000 }, { 0x8700, 0xa1b9, 0x3000 }, { 0x8700, 0xa1b7, 0x2000 }, { 0x0700, 0xa1b6, 0x0000 }, { 0x0700, 0xa1b8, 0x0000 }, { 0x8700, 0xa1bb, 0x2000 }, { 0x0700, 0xa1ba, 0x0000 }, { 0x0700, 0xa1bc, 0x0000 }, { 0x8700, 0xa1c5, 0x4000 }, { 0x8700, 0xa1c1, 0x3000 }, { 0x8700, 0xa1bf, 0x2000 }, { 0x0700, 0xa1be, 0x0000 }, { 0x0700, 0xa1c0, 0x0000 }, { 0x8700, 0xa1c3, 0x2000 }, { 0x0700, 0xa1c2, 0x0000 }, { 0x0700, 0xa1c4, 0x0000 }, { 0x8700, 0xa1c9, 0x3000 }, { 0x8700, 0xa1c7, 0x2000 }, { 0x0700, 0xa1c6, 0x0000 }, { 0x0700, 0xa1c8, 0x0000 }, { 0x8700, 0xa1cb, 0x2000 }, { 0x0700, 0xa1ca, 0x0000 }, { 0x0700, 0xa1cc, 0x0000 }, { 0x8700, 0xa20d, 0x7000 }, { 0x8700, 0xa1ed, 0x6000 }, { 0x8700, 0xa1dd, 0x5000 }, { 0x8700, 0xa1d5, 0x4000 }, { 0x8700, 0xa1d1, 0x3000 }, { 0x8700, 0xa1cf, 0x2000 }, { 0x0700, 0xa1ce, 0x0000 }, { 0x0700, 0xa1d0, 0x0000 }, { 0x8700, 0xa1d3, 0x2000 }, { 0x0700, 0xa1d2, 0x0000 }, { 0x0700, 0xa1d4, 0x0000 }, { 0x8700, 0xa1d9, 0x3000 }, { 0x8700, 0xa1d7, 0x2000 }, { 0x0700, 0xa1d6, 0x0000 }, { 0x0700, 0xa1d8, 0x0000 }, { 0x8700, 0xa1db, 0x2000 }, { 0x0700, 0xa1da, 0x0000 }, { 0x0700, 0xa1dc, 0x0000 }, { 0x8700, 0xa1e5, 0x4000 }, { 0x8700, 0xa1e1, 0x3000 }, { 0x8700, 0xa1df, 0x2000 }, { 0x0700, 0xa1de, 0x0000 }, { 0x0700, 0xa1e0, 0x0000 }, { 0x8700, 0xa1e3, 0x2000 }, { 0x0700, 0xa1e2, 0x0000 }, { 0x0700, 0xa1e4, 0x0000 }, { 0x8700, 0xa1e9, 0x3000 }, { 0x8700, 0xa1e7, 0x2000 }, { 0x0700, 0xa1e6, 0x0000 }, { 0x0700, 0xa1e8, 0x0000 }, { 0x8700, 0xa1eb, 0x2000 }, { 0x0700, 0xa1ea, 0x0000 }, { 0x0700, 0xa1ec, 0x0000 }, { 0x8700, 0xa1fd, 0x5000 }, { 0x8700, 0xa1f5, 0x4000 }, { 0x8700, 0xa1f1, 0x3000 }, { 0x8700, 0xa1ef, 0x2000 }, { 0x0700, 0xa1ee, 0x0000 }, { 0x0700, 0xa1f0, 0x0000 }, { 0x8700, 0xa1f3, 0x2000 }, { 0x0700, 0xa1f2, 0x0000 }, { 0x0700, 0xa1f4, 0x0000 }, { 0x8700, 0xa1f9, 0x3000 }, { 0x8700, 0xa1f7, 0x2000 }, { 0x0700, 0xa1f6, 0x0000 }, { 0x0700, 0xa1f8, 0x0000 }, { 0x8700, 0xa1fb, 0x2000 }, { 0x0700, 0xa1fa, 0x0000 }, { 0x0700, 0xa1fc, 0x0000 }, { 0x8700, 0xa205, 0x4000 }, { 0x8700, 0xa201, 0x3000 }, { 0x8700, 0xa1ff, 0x2000 }, { 0x0700, 0xa1fe, 0x0000 }, { 0x0700, 0xa200, 0x0000 }, { 0x8700, 0xa203, 0x2000 }, { 0x0700, 0xa202, 0x0000 }, { 0x0700, 0xa204, 0x0000 }, { 0x8700, 0xa209, 0x3000 }, { 0x8700, 0xa207, 0x2000 }, { 0x0700, 0xa206, 0x0000 }, { 0x0700, 0xa208, 0x0000 }, { 0x8700, 0xa20b, 0x2000 }, { 0x0700, 0xa20a, 0x0000 }, { 0x0700, 0xa20c, 0x0000 }, { 0x8700, 0xa22d, 0x6000 }, { 0x8700, 0xa21d, 0x5000 }, { 0x8700, 0xa215, 0x4000 }, { 0x8700, 0xa211, 0x3000 }, { 0x8700, 0xa20f, 0x2000 }, { 0x0700, 0xa20e, 0x0000 }, { 0x0700, 0xa210, 0x0000 }, { 0x8700, 0xa213, 0x2000 }, { 0x0700, 0xa212, 0x0000 }, { 0x0700, 0xa214, 0x0000 }, { 0x8700, 0xa219, 0x3000 }, { 0x8700, 0xa217, 0x2000 }, { 0x0700, 0xa216, 0x0000 }, { 0x0700, 0xa218, 0x0000 }, { 0x8700, 0xa21b, 0x2000 }, { 0x0700, 0xa21a, 0x0000 }, { 0x0700, 0xa21c, 0x0000 }, { 0x8700, 0xa225, 0x4000 }, { 0x8700, 0xa221, 0x3000 }, { 0x8700, 0xa21f, 0x2000 }, { 0x0700, 0xa21e, 0x0000 }, { 0x0700, 0xa220, 0x0000 }, { 0x8700, 0xa223, 0x2000 }, { 0x0700, 0xa222, 0x0000 }, { 0x0700, 0xa224, 0x0000 }, { 0x8700, 0xa229, 0x3000 }, { 0x8700, 0xa227, 0x2000 }, { 0x0700, 0xa226, 0x0000 }, { 0x0700, 0xa228, 0x0000 }, { 0x8700, 0xa22b, 0x2000 }, { 0x0700, 0xa22a, 0x0000 }, { 0x0700, 0xa22c, 0x0000 }, { 0x8700, 0xa23d, 0x5000 }, { 0x8700, 0xa235, 0x4000 }, { 0x8700, 0xa231, 0x3000 }, { 0x8700, 0xa22f, 0x2000 }, { 0x0700, 0xa22e, 0x0000 }, { 0x0700, 0xa230, 0x0000 }, { 0x8700, 0xa233, 0x2000 }, { 0x0700, 0xa232, 0x0000 }, { 0x0700, 0xa234, 0x0000 }, { 0x8700, 0xa239, 0x3000 }, { 0x8700, 0xa237, 0x2000 }, { 0x0700, 0xa236, 0x0000 }, { 0x0700, 0xa238, 0x0000 }, { 0x8700, 0xa23b, 0x2000 }, { 0x0700, 0xa23a, 0x0000 }, { 0x0700, 0xa23c, 0x0000 }, { 0x8700, 0xa245, 0x4000 }, { 0x8700, 0xa241, 0x3000 }, { 0x8700, 0xa23f, 0x2000 }, { 0x0700, 0xa23e, 0x0000 }, { 0x0700, 0xa240, 0x0000 }, { 0x8700, 0xa243, 0x2000 }, { 0x0700, 0xa242, 0x0000 }, { 0x0700, 0xa244, 0x0000 }, { 0x8700, 0xa249, 0x3000 }, { 0x8700, 0xa247, 0x2000 }, { 0x0700, 0xa246, 0x0000 }, { 0x0700, 0xa248, 0x0000 }, { 0x8700, 0xa24b, 0x2000 }, { 0x0700, 0xa24a, 0x0000 }, { 0x0700, 0xa24c, 0x0000 }, { 0x8700, 0xa2cd, 0x8000 }, { 0x8700, 0xa28d, 0x7000 }, { 0x8700, 0xa26d, 0x6000 }, { 0x8700, 0xa25d, 0x5000 }, { 0x8700, 0xa255, 0x4000 }, { 0x8700, 0xa251, 0x3000 }, { 0x8700, 0xa24f, 0x2000 }, { 0x0700, 0xa24e, 0x0000 }, { 0x0700, 0xa250, 0x0000 }, { 0x8700, 0xa253, 0x2000 }, { 0x0700, 0xa252, 0x0000 }, { 0x0700, 0xa254, 0x0000 }, { 0x8700, 0xa259, 0x3000 }, { 0x8700, 0xa257, 0x2000 }, { 0x0700, 0xa256, 0x0000 }, { 0x0700, 0xa258, 0x0000 }, { 0x8700, 0xa25b, 0x2000 }, { 0x0700, 0xa25a, 0x0000 }, { 0x0700, 0xa25c, 0x0000 }, { 0x8700, 0xa265, 0x4000 }, { 0x8700, 0xa261, 0x3000 }, { 0x8700, 0xa25f, 0x2000 }, { 0x0700, 0xa25e, 0x0000 }, { 0x0700, 0xa260, 0x0000 }, { 0x8700, 0xa263, 0x2000 }, { 0x0700, 0xa262, 0x0000 }, { 0x0700, 0xa264, 0x0000 }, { 0x8700, 0xa269, 0x3000 }, { 0x8700, 0xa267, 0x2000 }, { 0x0700, 0xa266, 0x0000 }, { 0x0700, 0xa268, 0x0000 }, { 0x8700, 0xa26b, 0x2000 }, { 0x0700, 0xa26a, 0x0000 }, { 0x0700, 0xa26c, 0x0000 }, { 0x8700, 0xa27d, 0x5000 }, { 0x8700, 0xa275, 0x4000 }, { 0x8700, 0xa271, 0x3000 }, { 0x8700, 0xa26f, 0x2000 }, { 0x0700, 0xa26e, 0x0000 }, { 0x0700, 0xa270, 0x0000 }, { 0x8700, 0xa273, 0x2000 }, { 0x0700, 0xa272, 0x0000 }, { 0x0700, 0xa274, 0x0000 }, { 0x8700, 0xa279, 0x3000 }, { 0x8700, 0xa277, 0x2000 }, { 0x0700, 0xa276, 0x0000 }, { 0x0700, 0xa278, 0x0000 }, { 0x8700, 0xa27b, 0x2000 }, { 0x0700, 0xa27a, 0x0000 }, { 0x0700, 0xa27c, 0x0000 }, { 0x8700, 0xa285, 0x4000 }, { 0x8700, 0xa281, 0x3000 }, { 0x8700, 0xa27f, 0x2000 }, { 0x0700, 0xa27e, 0x0000 }, { 0x0700, 0xa280, 0x0000 }, { 0x8700, 0xa283, 0x2000 }, { 0x0700, 0xa282, 0x0000 }, { 0x0700, 0xa284, 0x0000 }, { 0x8700, 0xa289, 0x3000 }, { 0x8700, 0xa287, 0x2000 }, { 0x0700, 0xa286, 0x0000 }, { 0x0700, 0xa288, 0x0000 }, { 0x8700, 0xa28b, 0x2000 }, { 0x0700, 0xa28a, 0x0000 }, { 0x0700, 0xa28c, 0x0000 }, { 0x8700, 0xa2ad, 0x6000 }, { 0x8700, 0xa29d, 0x5000 }, { 0x8700, 0xa295, 0x4000 }, { 0x8700, 0xa291, 0x3000 }, { 0x8700, 0xa28f, 0x2000 }, { 0x0700, 0xa28e, 0x0000 }, { 0x0700, 0xa290, 0x0000 }, { 0x8700, 0xa293, 0x2000 }, { 0x0700, 0xa292, 0x0000 }, { 0x0700, 0xa294, 0x0000 }, { 0x8700, 0xa299, 0x3000 }, { 0x8700, 0xa297, 0x2000 }, { 0x0700, 0xa296, 0x0000 }, { 0x0700, 0xa298, 0x0000 }, { 0x8700, 0xa29b, 0x2000 }, { 0x0700, 0xa29a, 0x0000 }, { 0x0700, 0xa29c, 0x0000 }, { 0x8700, 0xa2a5, 0x4000 }, { 0x8700, 0xa2a1, 0x3000 }, { 0x8700, 0xa29f, 0x2000 }, { 0x0700, 0xa29e, 0x0000 }, { 0x0700, 0xa2a0, 0x0000 }, { 0x8700, 0xa2a3, 0x2000 }, { 0x0700, 0xa2a2, 0x0000 }, { 0x0700, 0xa2a4, 0x0000 }, { 0x8700, 0xa2a9, 0x3000 }, { 0x8700, 0xa2a7, 0x2000 }, { 0x0700, 0xa2a6, 0x0000 }, { 0x0700, 0xa2a8, 0x0000 }, { 0x8700, 0xa2ab, 0x2000 }, { 0x0700, 0xa2aa, 0x0000 }, { 0x0700, 0xa2ac, 0x0000 }, { 0x8700, 0xa2bd, 0x5000 }, { 0x8700, 0xa2b5, 0x4000 }, { 0x8700, 0xa2b1, 0x3000 }, { 0x8700, 0xa2af, 0x2000 }, { 0x0700, 0xa2ae, 0x0000 }, { 0x0700, 0xa2b0, 0x0000 }, { 0x8700, 0xa2b3, 0x2000 }, { 0x0700, 0xa2b2, 0x0000 }, { 0x0700, 0xa2b4, 0x0000 }, { 0x8700, 0xa2b9, 0x3000 }, { 0x8700, 0xa2b7, 0x2000 }, { 0x0700, 0xa2b6, 0x0000 }, { 0x0700, 0xa2b8, 0x0000 }, { 0x8700, 0xa2bb, 0x2000 }, { 0x0700, 0xa2ba, 0x0000 }, { 0x0700, 0xa2bc, 0x0000 }, { 0x8700, 0xa2c5, 0x4000 }, { 0x8700, 0xa2c1, 0x3000 }, { 0x8700, 0xa2bf, 0x2000 }, { 0x0700, 0xa2be, 0x0000 }, { 0x0700, 0xa2c0, 0x0000 }, { 0x8700, 0xa2c3, 0x2000 }, { 0x0700, 0xa2c2, 0x0000 }, { 0x0700, 0xa2c4, 0x0000 }, { 0x8700, 0xa2c9, 0x3000 }, { 0x8700, 0xa2c7, 0x2000 }, { 0x0700, 0xa2c6, 0x0000 }, { 0x0700, 0xa2c8, 0x0000 }, { 0x8700, 0xa2cb, 0x2000 }, { 0x0700, 0xa2ca, 0x0000 }, { 0x0700, 0xa2cc, 0x0000 }, { 0x8700, 0xa30d, 0x7000 }, { 0x8700, 0xa2ed, 0x6000 }, { 0x8700, 0xa2dd, 0x5000 }, { 0x8700, 0xa2d5, 0x4000 }, { 0x8700, 0xa2d1, 0x3000 }, { 0x8700, 0xa2cf, 0x2000 }, { 0x0700, 0xa2ce, 0x0000 }, { 0x0700, 0xa2d0, 0x0000 }, { 0x8700, 0xa2d3, 0x2000 }, { 0x0700, 0xa2d2, 0x0000 }, { 0x0700, 0xa2d4, 0x0000 }, { 0x8700, 0xa2d9, 0x3000 }, { 0x8700, 0xa2d7, 0x2000 }, { 0x0700, 0xa2d6, 0x0000 }, { 0x0700, 0xa2d8, 0x0000 }, { 0x8700, 0xa2db, 0x2000 }, { 0x0700, 0xa2da, 0x0000 }, { 0x0700, 0xa2dc, 0x0000 }, { 0x8700, 0xa2e5, 0x4000 }, { 0x8700, 0xa2e1, 0x3000 }, { 0x8700, 0xa2df, 0x2000 }, { 0x0700, 0xa2de, 0x0000 }, { 0x0700, 0xa2e0, 0x0000 }, { 0x8700, 0xa2e3, 0x2000 }, { 0x0700, 0xa2e2, 0x0000 }, { 0x0700, 0xa2e4, 0x0000 }, { 0x8700, 0xa2e9, 0x3000 }, { 0x8700, 0xa2e7, 0x2000 }, { 0x0700, 0xa2e6, 0x0000 }, { 0x0700, 0xa2e8, 0x0000 }, { 0x8700, 0xa2eb, 0x2000 }, { 0x0700, 0xa2ea, 0x0000 }, { 0x0700, 0xa2ec, 0x0000 }, { 0x8700, 0xa2fd, 0x5000 }, { 0x8700, 0xa2f5, 0x4000 }, { 0x8700, 0xa2f1, 0x3000 }, { 0x8700, 0xa2ef, 0x2000 }, { 0x0700, 0xa2ee, 0x0000 }, { 0x0700, 0xa2f0, 0x0000 }, { 0x8700, 0xa2f3, 0x2000 }, { 0x0700, 0xa2f2, 0x0000 }, { 0x0700, 0xa2f4, 0x0000 }, { 0x8700, 0xa2f9, 0x3000 }, { 0x8700, 0xa2f7, 0x2000 }, { 0x0700, 0xa2f6, 0x0000 }, { 0x0700, 0xa2f8, 0x0000 }, { 0x8700, 0xa2fb, 0x2000 }, { 0x0700, 0xa2fa, 0x0000 }, { 0x0700, 0xa2fc, 0x0000 }, { 0x8700, 0xa305, 0x4000 }, { 0x8700, 0xa301, 0x3000 }, { 0x8700, 0xa2ff, 0x2000 }, { 0x0700, 0xa2fe, 0x0000 }, { 0x0700, 0xa300, 0x0000 }, { 0x8700, 0xa303, 0x2000 }, { 0x0700, 0xa302, 0x0000 }, { 0x0700, 0xa304, 0x0000 }, { 0x8700, 0xa309, 0x3000 }, { 0x8700, 0xa307, 0x2000 }, { 0x0700, 0xa306, 0x0000 }, { 0x0700, 0xa308, 0x0000 }, { 0x8700, 0xa30b, 0x2000 }, { 0x0700, 0xa30a, 0x0000 }, { 0x0700, 0xa30c, 0x0000 }, { 0x8700, 0xa32d, 0x6000 }, { 0x8700, 0xa31d, 0x5000 }, { 0x8700, 0xa315, 0x4000 }, { 0x8700, 0xa311, 0x3000 }, { 0x8700, 0xa30f, 0x2000 }, { 0x0700, 0xa30e, 0x0000 }, { 0x0700, 0xa310, 0x0000 }, { 0x8700, 0xa313, 0x2000 }, { 0x0700, 0xa312, 0x0000 }, { 0x0700, 0xa314, 0x0000 }, { 0x8700, 0xa319, 0x3000 }, { 0x8700, 0xa317, 0x2000 }, { 0x0700, 0xa316, 0x0000 }, { 0x0700, 0xa318, 0x0000 }, { 0x8700, 0xa31b, 0x2000 }, { 0x0700, 0xa31a, 0x0000 }, { 0x0700, 0xa31c, 0x0000 }, { 0x8700, 0xa325, 0x4000 }, { 0x8700, 0xa321, 0x3000 }, { 0x8700, 0xa31f, 0x2000 }, { 0x0700, 0xa31e, 0x0000 }, { 0x0700, 0xa320, 0x0000 }, { 0x8700, 0xa323, 0x2000 }, { 0x0700, 0xa322, 0x0000 }, { 0x0700, 0xa324, 0x0000 }, { 0x8700, 0xa329, 0x3000 }, { 0x8700, 0xa327, 0x2000 }, { 0x0700, 0xa326, 0x0000 }, { 0x0700, 0xa328, 0x0000 }, { 0x8700, 0xa32b, 0x2000 }, { 0x0700, 0xa32a, 0x0000 }, { 0x0700, 0xa32c, 0x0000 }, { 0x8700, 0xa33d, 0x5000 }, { 0x8700, 0xa335, 0x4000 }, { 0x8700, 0xa331, 0x3000 }, { 0x8700, 0xa32f, 0x2000 }, { 0x0700, 0xa32e, 0x0000 }, { 0x0700, 0xa330, 0x0000 }, { 0x8700, 0xa333, 0x2000 }, { 0x0700, 0xa332, 0x0000 }, { 0x0700, 0xa334, 0x0000 }, { 0x8700, 0xa339, 0x3000 }, { 0x8700, 0xa337, 0x2000 }, { 0x0700, 0xa336, 0x0000 }, { 0x0700, 0xa338, 0x0000 }, { 0x8700, 0xa33b, 0x2000 }, { 0x0700, 0xa33a, 0x0000 }, { 0x0700, 0xa33c, 0x0000 }, { 0x8700, 0xa345, 0x4000 }, { 0x8700, 0xa341, 0x3000 }, { 0x8700, 0xa33f, 0x2000 }, { 0x0700, 0xa33e, 0x0000 }, { 0x0700, 0xa340, 0x0000 }, { 0x8700, 0xa343, 0x2000 }, { 0x0700, 0xa342, 0x0000 }, { 0x0700, 0xa344, 0x0000 }, { 0x8700, 0xa349, 0x3000 }, { 0x8700, 0xa347, 0x2000 }, { 0x0700, 0xa346, 0x0000 }, { 0x0700, 0xa348, 0x0000 }, { 0x8700, 0xa34b, 0x2000 }, { 0x0700, 0xa34a, 0x0000 }, { 0x0700, 0xa34c, 0x0000 }, { 0x8700, 0xfc4d, 0xb000 }, { 0x8700, 0xf97f, 0xa000 }, { 0x8700, 0xa44d, 0x9000 }, { 0x8700, 0xa3cd, 0x8000 }, { 0x8700, 0xa38d, 0x7000 }, { 0x8700, 0xa36d, 0x6000 }, { 0x8700, 0xa35d, 0x5000 }, { 0x8700, 0xa355, 0x4000 }, { 0x8700, 0xa351, 0x3000 }, { 0x8700, 0xa34f, 0x2000 }, { 0x0700, 0xa34e, 0x0000 }, { 0x0700, 0xa350, 0x0000 }, { 0x8700, 0xa353, 0x2000 }, { 0x0700, 0xa352, 0x0000 }, { 0x0700, 0xa354, 0x0000 }, { 0x8700, 0xa359, 0x3000 }, { 0x8700, 0xa357, 0x2000 }, { 0x0700, 0xa356, 0x0000 }, { 0x0700, 0xa358, 0x0000 }, { 0x8700, 0xa35b, 0x2000 }, { 0x0700, 0xa35a, 0x0000 }, { 0x0700, 0xa35c, 0x0000 }, { 0x8700, 0xa365, 0x4000 }, { 0x8700, 0xa361, 0x3000 }, { 0x8700, 0xa35f, 0x2000 }, { 0x0700, 0xa35e, 0x0000 }, { 0x0700, 0xa360, 0x0000 }, { 0x8700, 0xa363, 0x2000 }, { 0x0700, 0xa362, 0x0000 }, { 0x0700, 0xa364, 0x0000 }, { 0x8700, 0xa369, 0x3000 }, { 0x8700, 0xa367, 0x2000 }, { 0x0700, 0xa366, 0x0000 }, { 0x0700, 0xa368, 0x0000 }, { 0x8700, 0xa36b, 0x2000 }, { 0x0700, 0xa36a, 0x0000 }, { 0x0700, 0xa36c, 0x0000 }, { 0x8700, 0xa37d, 0x5000 }, { 0x8700, 0xa375, 0x4000 }, { 0x8700, 0xa371, 0x3000 }, { 0x8700, 0xa36f, 0x2000 }, { 0x0700, 0xa36e, 0x0000 }, { 0x0700, 0xa370, 0x0000 }, { 0x8700, 0xa373, 0x2000 }, { 0x0700, 0xa372, 0x0000 }, { 0x0700, 0xa374, 0x0000 }, { 0x8700, 0xa379, 0x3000 }, { 0x8700, 0xa377, 0x2000 }, { 0x0700, 0xa376, 0x0000 }, { 0x0700, 0xa378, 0x0000 }, { 0x8700, 0xa37b, 0x2000 }, { 0x0700, 0xa37a, 0x0000 }, { 0x0700, 0xa37c, 0x0000 }, { 0x8700, 0xa385, 0x4000 }, { 0x8700, 0xa381, 0x3000 }, { 0x8700, 0xa37f, 0x2000 }, { 0x0700, 0xa37e, 0x0000 }, { 0x0700, 0xa380, 0x0000 }, { 0x8700, 0xa383, 0x2000 }, { 0x0700, 0xa382, 0x0000 }, { 0x0700, 0xa384, 0x0000 }, { 0x8700, 0xa389, 0x3000 }, { 0x8700, 0xa387, 0x2000 }, { 0x0700, 0xa386, 0x0000 }, { 0x0700, 0xa388, 0x0000 }, { 0x8700, 0xa38b, 0x2000 }, { 0x0700, 0xa38a, 0x0000 }, { 0x0700, 0xa38c, 0x0000 }, { 0x8700, 0xa3ad, 0x6000 }, { 0x8700, 0xa39d, 0x5000 }, { 0x8700, 0xa395, 0x4000 }, { 0x8700, 0xa391, 0x3000 }, { 0x8700, 0xa38f, 0x2000 }, { 0x0700, 0xa38e, 0x0000 }, { 0x0700, 0xa390, 0x0000 }, { 0x8700, 0xa393, 0x2000 }, { 0x0700, 0xa392, 0x0000 }, { 0x0700, 0xa394, 0x0000 }, { 0x8700, 0xa399, 0x3000 }, { 0x8700, 0xa397, 0x2000 }, { 0x0700, 0xa396, 0x0000 }, { 0x0700, 0xa398, 0x0000 }, { 0x8700, 0xa39b, 0x2000 }, { 0x0700, 0xa39a, 0x0000 }, { 0x0700, 0xa39c, 0x0000 }, { 0x8700, 0xa3a5, 0x4000 }, { 0x8700, 0xa3a1, 0x3000 }, { 0x8700, 0xa39f, 0x2000 }, { 0x0700, 0xa39e, 0x0000 }, { 0x0700, 0xa3a0, 0x0000 }, { 0x8700, 0xa3a3, 0x2000 }, { 0x0700, 0xa3a2, 0x0000 }, { 0x0700, 0xa3a4, 0x0000 }, { 0x8700, 0xa3a9, 0x3000 }, { 0x8700, 0xa3a7, 0x2000 }, { 0x0700, 0xa3a6, 0x0000 }, { 0x0700, 0xa3a8, 0x0000 }, { 0x8700, 0xa3ab, 0x2000 }, { 0x0700, 0xa3aa, 0x0000 }, { 0x0700, 0xa3ac, 0x0000 }, { 0x8700, 0xa3bd, 0x5000 }, { 0x8700, 0xa3b5, 0x4000 }, { 0x8700, 0xa3b1, 0x3000 }, { 0x8700, 0xa3af, 0x2000 }, { 0x0700, 0xa3ae, 0x0000 }, { 0x0700, 0xa3b0, 0x0000 }, { 0x8700, 0xa3b3, 0x2000 }, { 0x0700, 0xa3b2, 0x0000 }, { 0x0700, 0xa3b4, 0x0000 }, { 0x8700, 0xa3b9, 0x3000 }, { 0x8700, 0xa3b7, 0x2000 }, { 0x0700, 0xa3b6, 0x0000 }, { 0x0700, 0xa3b8, 0x0000 }, { 0x8700, 0xa3bb, 0x2000 }, { 0x0700, 0xa3ba, 0x0000 }, { 0x0700, 0xa3bc, 0x0000 }, { 0x8700, 0xa3c5, 0x4000 }, { 0x8700, 0xa3c1, 0x3000 }, { 0x8700, 0xa3bf, 0x2000 }, { 0x0700, 0xa3be, 0x0000 }, { 0x0700, 0xa3c0, 0x0000 }, { 0x8700, 0xa3c3, 0x2000 }, { 0x0700, 0xa3c2, 0x0000 }, { 0x0700, 0xa3c4, 0x0000 }, { 0x8700, 0xa3c9, 0x3000 }, { 0x8700, 0xa3c7, 0x2000 }, { 0x0700, 0xa3c6, 0x0000 }, { 0x0700, 0xa3c8, 0x0000 }, { 0x8700, 0xa3cb, 0x2000 }, { 0x0700, 0xa3ca, 0x0000 }, { 0x0700, 0xa3cc, 0x0000 }, { 0x8700, 0xa40d, 0x7000 }, { 0x8700, 0xa3ed, 0x6000 }, { 0x8700, 0xa3dd, 0x5000 }, { 0x8700, 0xa3d5, 0x4000 }, { 0x8700, 0xa3d1, 0x3000 }, { 0x8700, 0xa3cf, 0x2000 }, { 0x0700, 0xa3ce, 0x0000 }, { 0x0700, 0xa3d0, 0x0000 }, { 0x8700, 0xa3d3, 0x2000 }, { 0x0700, 0xa3d2, 0x0000 }, { 0x0700, 0xa3d4, 0x0000 }, { 0x8700, 0xa3d9, 0x3000 }, { 0x8700, 0xa3d7, 0x2000 }, { 0x0700, 0xa3d6, 0x0000 }, { 0x0700, 0xa3d8, 0x0000 }, { 0x8700, 0xa3db, 0x2000 }, { 0x0700, 0xa3da, 0x0000 }, { 0x0700, 0xa3dc, 0x0000 }, { 0x8700, 0xa3e5, 0x4000 }, { 0x8700, 0xa3e1, 0x3000 }, { 0x8700, 0xa3df, 0x2000 }, { 0x0700, 0xa3de, 0x0000 }, { 0x0700, 0xa3e0, 0x0000 }, { 0x8700, 0xa3e3, 0x2000 }, { 0x0700, 0xa3e2, 0x0000 }, { 0x0700, 0xa3e4, 0x0000 }, { 0x8700, 0xa3e9, 0x3000 }, { 0x8700, 0xa3e7, 0x2000 }, { 0x0700, 0xa3e6, 0x0000 }, { 0x0700, 0xa3e8, 0x0000 }, { 0x8700, 0xa3eb, 0x2000 }, { 0x0700, 0xa3ea, 0x0000 }, { 0x0700, 0xa3ec, 0x0000 }, { 0x8700, 0xa3fd, 0x5000 }, { 0x8700, 0xa3f5, 0x4000 }, { 0x8700, 0xa3f1, 0x3000 }, { 0x8700, 0xa3ef, 0x2000 }, { 0x0700, 0xa3ee, 0x0000 }, { 0x0700, 0xa3f0, 0x0000 }, { 0x8700, 0xa3f3, 0x2000 }, { 0x0700, 0xa3f2, 0x0000 }, { 0x0700, 0xa3f4, 0x0000 }, { 0x8700, 0xa3f9, 0x3000 }, { 0x8700, 0xa3f7, 0x2000 }, { 0x0700, 0xa3f6, 0x0000 }, { 0x0700, 0xa3f8, 0x0000 }, { 0x8700, 0xa3fb, 0x2000 }, { 0x0700, 0xa3fa, 0x0000 }, { 0x0700, 0xa3fc, 0x0000 }, { 0x8700, 0xa405, 0x4000 }, { 0x8700, 0xa401, 0x3000 }, { 0x8700, 0xa3ff, 0x2000 }, { 0x0700, 0xa3fe, 0x0000 }, { 0x0700, 0xa400, 0x0000 }, { 0x8700, 0xa403, 0x2000 }, { 0x0700, 0xa402, 0x0000 }, { 0x0700, 0xa404, 0x0000 }, { 0x8700, 0xa409, 0x3000 }, { 0x8700, 0xa407, 0x2000 }, { 0x0700, 0xa406, 0x0000 }, { 0x0700, 0xa408, 0x0000 }, { 0x8700, 0xa40b, 0x2000 }, { 0x0700, 0xa40a, 0x0000 }, { 0x0700, 0xa40c, 0x0000 }, { 0x8700, 0xa42d, 0x6000 }, { 0x8700, 0xa41d, 0x5000 }, { 0x8700, 0xa415, 0x4000 }, { 0x8700, 0xa411, 0x3000 }, { 0x8700, 0xa40f, 0x2000 }, { 0x0700, 0xa40e, 0x0000 }, { 0x0700, 0xa410, 0x0000 }, { 0x8700, 0xa413, 0x2000 }, { 0x0700, 0xa412, 0x0000 }, { 0x0700, 0xa414, 0x0000 }, { 0x8700, 0xa419, 0x3000 }, { 0x8700, 0xa417, 0x2000 }, { 0x0700, 0xa416, 0x0000 }, { 0x0700, 0xa418, 0x0000 }, { 0x8700, 0xa41b, 0x2000 }, { 0x0700, 0xa41a, 0x0000 }, { 0x0700, 0xa41c, 0x0000 }, { 0x8700, 0xa425, 0x4000 }, { 0x8700, 0xa421, 0x3000 }, { 0x8700, 0xa41f, 0x2000 }, { 0x0700, 0xa41e, 0x0000 }, { 0x0700, 0xa420, 0x0000 }, { 0x8700, 0xa423, 0x2000 }, { 0x0700, 0xa422, 0x0000 }, { 0x0700, 0xa424, 0x0000 }, { 0x8700, 0xa429, 0x3000 }, { 0x8700, 0xa427, 0x2000 }, { 0x0700, 0xa426, 0x0000 }, { 0x0700, 0xa428, 0x0000 }, { 0x8700, 0xa42b, 0x2000 }, { 0x0700, 0xa42a, 0x0000 }, { 0x0700, 0xa42c, 0x0000 }, { 0x8700, 0xa43d, 0x5000 }, { 0x8700, 0xa435, 0x4000 }, { 0x8700, 0xa431, 0x3000 }, { 0x8700, 0xa42f, 0x2000 }, { 0x0700, 0xa42e, 0x0000 }, { 0x0700, 0xa430, 0x0000 }, { 0x8700, 0xa433, 0x2000 }, { 0x0700, 0xa432, 0x0000 }, { 0x0700, 0xa434, 0x0000 }, { 0x8700, 0xa439, 0x3000 }, { 0x8700, 0xa437, 0x2000 }, { 0x0700, 0xa436, 0x0000 }, { 0x0700, 0xa438, 0x0000 }, { 0x8700, 0xa43b, 0x2000 }, { 0x0700, 0xa43a, 0x0000 }, { 0x0700, 0xa43c, 0x0000 }, { 0x8700, 0xa445, 0x4000 }, { 0x8700, 0xa441, 0x3000 }, { 0x8700, 0xa43f, 0x2000 }, { 0x0700, 0xa43e, 0x0000 }, { 0x0700, 0xa440, 0x0000 }, { 0x8700, 0xa443, 0x2000 }, { 0x0700, 0xa442, 0x0000 }, { 0x0700, 0xa444, 0x0000 }, { 0x8700, 0xa449, 0x3000 }, { 0x8700, 0xa447, 0x2000 }, { 0x0700, 0xa446, 0x0000 }, { 0x0700, 0xa448, 0x0000 }, { 0x8700, 0xa44b, 0x2000 }, { 0x0700, 0xa44a, 0x0000 }, { 0x0700, 0xa44c, 0x0000 }, { 0x8300, 0xf8ff, 0x8000 }, { 0x9a00, 0xa490, 0x7000 }, { 0x8700, 0xa46d, 0x6000 }, { 0x8700, 0xa45d, 0x5000 }, { 0x8700, 0xa455, 0x4000 }, { 0x8700, 0xa451, 0x3000 }, { 0x8700, 0xa44f, 0x2000 }, { 0x0700, 0xa44e, 0x0000 }, { 0x0700, 0xa450, 0x0000 }, { 0x8700, 0xa453, 0x2000 }, { 0x0700, 0xa452, 0x0000 }, { 0x0700, 0xa454, 0x0000 }, { 0x8700, 0xa459, 0x3000 }, { 0x8700, 0xa457, 0x2000 }, { 0x0700, 0xa456, 0x0000 }, { 0x0700, 0xa458, 0x0000 }, { 0x8700, 0xa45b, 0x2000 }, { 0x0700, 0xa45a, 0x0000 }, { 0x0700, 0xa45c, 0x0000 }, { 0x8700, 0xa465, 0x4000 }, { 0x8700, 0xa461, 0x3000 }, { 0x8700, 0xa45f, 0x2000 }, { 0x0700, 0xa45e, 0x0000 }, { 0x0700, 0xa460, 0x0000 }, { 0x8700, 0xa463, 0x2000 }, { 0x0700, 0xa462, 0x0000 }, { 0x0700, 0xa464, 0x0000 }, { 0x8700, 0xa469, 0x3000 }, { 0x8700, 0xa467, 0x2000 }, { 0x0700, 0xa466, 0x0000 }, { 0x0700, 0xa468, 0x0000 }, { 0x8700, 0xa46b, 0x2000 }, { 0x0700, 0xa46a, 0x0000 }, { 0x0700, 0xa46c, 0x0000 }, { 0x8700, 0xa47d, 0x5000 }, { 0x8700, 0xa475, 0x4000 }, { 0x8700, 0xa471, 0x3000 }, { 0x8700, 0xa46f, 0x2000 }, { 0x0700, 0xa46e, 0x0000 }, { 0x0700, 0xa470, 0x0000 }, { 0x8700, 0xa473, 0x2000 }, { 0x0700, 0xa472, 0x0000 }, { 0x0700, 0xa474, 0x0000 }, { 0x8700, 0xa479, 0x3000 }, { 0x8700, 0xa477, 0x2000 }, { 0x0700, 0xa476, 0x0000 }, { 0x0700, 0xa478, 0x0000 }, { 0x8700, 0xa47b, 0x2000 }, { 0x0700, 0xa47a, 0x0000 }, { 0x0700, 0xa47c, 0x0000 }, { 0x8700, 0xa485, 0x4000 }, { 0x8700, 0xa481, 0x3000 }, { 0x8700, 0xa47f, 0x2000 }, { 0x0700, 0xa47e, 0x0000 }, { 0x0700, 0xa480, 0x0000 }, { 0x8700, 0xa483, 0x2000 }, { 0x0700, 0xa482, 0x0000 }, { 0x0700, 0xa484, 0x0000 }, { 0x8700, 0xa489, 0x3000 }, { 0x8700, 0xa487, 0x2000 }, { 0x0700, 0xa486, 0x0000 }, { 0x0700, 0xa488, 0x0000 }, { 0x8700, 0xa48b, 0x2000 }, { 0x0700, 0xa48a, 0x0000 }, { 0x0700, 0xa48c, 0x0000 }, { 0x9a00, 0xa4b0, 0x6000 }, { 0x9a00, 0xa4a0, 0x5000 }, { 0x9a00, 0xa498, 0x4000 }, { 0x9a00, 0xa494, 0x3000 }, { 0x9a00, 0xa492, 0x2000 }, { 0x1a00, 0xa491, 0x0000 }, { 0x1a00, 0xa493, 0x0000 }, { 0x9a00, 0xa496, 0x2000 }, { 0x1a00, 0xa495, 0x0000 }, { 0x1a00, 0xa497, 0x0000 }, { 0x9a00, 0xa49c, 0x3000 }, { 0x9a00, 0xa49a, 0x2000 }, { 0x1a00, 0xa499, 0x0000 }, { 0x1a00, 0xa49b, 0x0000 }, { 0x9a00, 0xa49e, 0x2000 }, { 0x1a00, 0xa49d, 0x0000 }, { 0x1a00, 0xa49f, 0x0000 }, { 0x9a00, 0xa4a8, 0x4000 }, { 0x9a00, 0xa4a4, 0x3000 }, { 0x9a00, 0xa4a2, 0x2000 }, { 0x1a00, 0xa4a1, 0x0000 }, { 0x1a00, 0xa4a3, 0x0000 }, { 0x9a00, 0xa4a6, 0x2000 }, { 0x1a00, 0xa4a5, 0x0000 }, { 0x1a00, 0xa4a7, 0x0000 }, { 0x9a00, 0xa4ac, 0x3000 }, { 0x9a00, 0xa4aa, 0x2000 }, { 0x1a00, 0xa4a9, 0x0000 }, { 0x1a00, 0xa4ab, 0x0000 }, { 0x9a00, 0xa4ae, 0x2000 }, { 0x1a00, 0xa4ad, 0x0000 }, { 0x1a00, 0xa4af, 0x0000 }, { 0x9a00, 0xa4c0, 0x5000 }, { 0x9a00, 0xa4b8, 0x4000 }, { 0x9a00, 0xa4b4, 0x3000 }, { 0x9a00, 0xa4b2, 0x2000 }, { 0x1a00, 0xa4b1, 0x0000 }, { 0x1a00, 0xa4b3, 0x0000 }, { 0x9a00, 0xa4b6, 0x2000 }, { 0x1a00, 0xa4b5, 0x0000 }, { 0x1a00, 0xa4b7, 0x0000 }, { 0x9a00, 0xa4bc, 0x3000 }, { 0x9a00, 0xa4ba, 0x2000 }, { 0x1a00, 0xa4b9, 0x0000 }, { 0x1a00, 0xa4bb, 0x0000 }, { 0x9a00, 0xa4be, 0x2000 }, { 0x1a00, 0xa4bd, 0x0000 }, { 0x1a00, 0xa4bf, 0x0000 }, { 0x8700, 0xd7a3, 0x4000 }, { 0x9a00, 0xa4c4, 0x3000 }, { 0x9a00, 0xa4c2, 0x2000 }, { 0x1a00, 0xa4c1, 0x0000 }, { 0x1a00, 0xa4c3, 0x0000 }, { 0x9a00, 0xa4c6, 0x2000 }, { 0x1a00, 0xa4c5, 0x0000 }, { 0x0700, 0xac00, 0x0000 }, { 0x8400, 0xdbff, 0x3000 }, { 0x8400, 0xdb7f, 0x2000 }, { 0x0400, 0xd800, 0x0000 }, { 0x0400, 0xdb80, 0x0000 }, { 0x8400, 0xdfff, 0x2000 }, { 0x0400, 0xdc00, 0x0000 }, { 0x0300, 0xe000, 0x0000 }, { 0x8700, 0xf93f, 0x7000 }, { 0x8700, 0xf91f, 0x6000 }, { 0x8700, 0xf90f, 0x5000 }, { 0x8700, 0xf907, 0x4000 }, { 0x8700, 0xf903, 0x3000 }, { 0x8700, 0xf901, 0x2000 }, { 0x0700, 0xf900, 0x0000 }, { 0x0700, 0xf902, 0x0000 }, { 0x8700, 0xf905, 0x2000 }, { 0x0700, 0xf904, 0x0000 }, { 0x0700, 0xf906, 0x0000 }, { 0x8700, 0xf90b, 0x3000 }, { 0x8700, 0xf909, 0x2000 }, { 0x0700, 0xf908, 0x0000 }, { 0x0700, 0xf90a, 0x0000 }, { 0x8700, 0xf90d, 0x2000 }, { 0x0700, 0xf90c, 0x0000 }, { 0x0700, 0xf90e, 0x0000 }, { 0x8700, 0xf917, 0x4000 }, { 0x8700, 0xf913, 0x3000 }, { 0x8700, 0xf911, 0x2000 }, { 0x0700, 0xf910, 0x0000 }, { 0x0700, 0xf912, 0x0000 }, { 0x8700, 0xf915, 0x2000 }, { 0x0700, 0xf914, 0x0000 }, { 0x0700, 0xf916, 0x0000 }, { 0x8700, 0xf91b, 0x3000 }, { 0x8700, 0xf919, 0x2000 }, { 0x0700, 0xf918, 0x0000 }, { 0x0700, 0xf91a, 0x0000 }, { 0x8700, 0xf91d, 0x2000 }, { 0x0700, 0xf91c, 0x0000 }, { 0x0700, 0xf91e, 0x0000 }, { 0x8700, 0xf92f, 0x5000 }, { 0x8700, 0xf927, 0x4000 }, { 0x8700, 0xf923, 0x3000 }, { 0x8700, 0xf921, 0x2000 }, { 0x0700, 0xf920, 0x0000 }, { 0x0700, 0xf922, 0x0000 }, { 0x8700, 0xf925, 0x2000 }, { 0x0700, 0xf924, 0x0000 }, { 0x0700, 0xf926, 0x0000 }, { 0x8700, 0xf92b, 0x3000 }, { 0x8700, 0xf929, 0x2000 }, { 0x0700, 0xf928, 0x0000 }, { 0x0700, 0xf92a, 0x0000 }, { 0x8700, 0xf92d, 0x2000 }, { 0x0700, 0xf92c, 0x0000 }, { 0x0700, 0xf92e, 0x0000 }, { 0x8700, 0xf937, 0x4000 }, { 0x8700, 0xf933, 0x3000 }, { 0x8700, 0xf931, 0x2000 }, { 0x0700, 0xf930, 0x0000 }, { 0x0700, 0xf932, 0x0000 }, { 0x8700, 0xf935, 0x2000 }, { 0x0700, 0xf934, 0x0000 }, { 0x0700, 0xf936, 0x0000 }, { 0x8700, 0xf93b, 0x3000 }, { 0x8700, 0xf939, 0x2000 }, { 0x0700, 0xf938, 0x0000 }, { 0x0700, 0xf93a, 0x0000 }, { 0x8700, 0xf93d, 0x2000 }, { 0x0700, 0xf93c, 0x0000 }, { 0x0700, 0xf93e, 0x0000 }, { 0x8700, 0xf95f, 0x6000 }, { 0x8700, 0xf94f, 0x5000 }, { 0x8700, 0xf947, 0x4000 }, { 0x8700, 0xf943, 0x3000 }, { 0x8700, 0xf941, 0x2000 }, { 0x0700, 0xf940, 0x0000 }, { 0x0700, 0xf942, 0x0000 }, { 0x8700, 0xf945, 0x2000 }, { 0x0700, 0xf944, 0x0000 }, { 0x0700, 0xf946, 0x0000 }, { 0x8700, 0xf94b, 0x3000 }, { 0x8700, 0xf949, 0x2000 }, { 0x0700, 0xf948, 0x0000 }, { 0x0700, 0xf94a, 0x0000 }, { 0x8700, 0xf94d, 0x2000 }, { 0x0700, 0xf94c, 0x0000 }, { 0x0700, 0xf94e, 0x0000 }, { 0x8700, 0xf957, 0x4000 }, { 0x8700, 0xf953, 0x3000 }, { 0x8700, 0xf951, 0x2000 }, { 0x0700, 0xf950, 0x0000 }, { 0x0700, 0xf952, 0x0000 }, { 0x8700, 0xf955, 0x2000 }, { 0x0700, 0xf954, 0x0000 }, { 0x0700, 0xf956, 0x0000 }, { 0x8700, 0xf95b, 0x3000 }, { 0x8700, 0xf959, 0x2000 }, { 0x0700, 0xf958, 0x0000 }, { 0x0700, 0xf95a, 0x0000 }, { 0x8700, 0xf95d, 0x2000 }, { 0x0700, 0xf95c, 0x0000 }, { 0x0700, 0xf95e, 0x0000 }, { 0x8700, 0xf96f, 0x5000 }, { 0x8700, 0xf967, 0x4000 }, { 0x8700, 0xf963, 0x3000 }, { 0x8700, 0xf961, 0x2000 }, { 0x0700, 0xf960, 0x0000 }, { 0x0700, 0xf962, 0x0000 }, { 0x8700, 0xf965, 0x2000 }, { 0x0700, 0xf964, 0x0000 }, { 0x0700, 0xf966, 0x0000 }, { 0x8700, 0xf96b, 0x3000 }, { 0x8700, 0xf969, 0x2000 }, { 0x0700, 0xf968, 0x0000 }, { 0x0700, 0xf96a, 0x0000 }, { 0x8700, 0xf96d, 0x2000 }, { 0x0700, 0xf96c, 0x0000 }, { 0x0700, 0xf96e, 0x0000 }, { 0x8700, 0xf977, 0x4000 }, { 0x8700, 0xf973, 0x3000 }, { 0x8700, 0xf971, 0x2000 }, { 0x0700, 0xf970, 0x0000 }, { 0x0700, 0xf972, 0x0000 }, { 0x8700, 0xf975, 0x2000 }, { 0x0700, 0xf974, 0x0000 }, { 0x0700, 0xf976, 0x0000 }, { 0x8700, 0xf97b, 0x3000 }, { 0x8700, 0xf979, 0x2000 }, { 0x0700, 0xf978, 0x0000 }, { 0x0700, 0xf97a, 0x0000 }, { 0x8700, 0xf97d, 0x2000 }, { 0x0700, 0xf97c, 0x0000 }, { 0x0700, 0xf97e, 0x0000 }, { 0x8700, 0xfb27, 0x9000 }, { 0x8700, 0xf9ff, 0x8000 }, { 0x8700, 0xf9bf, 0x7000 }, { 0x8700, 0xf99f, 0x6000 }, { 0x8700, 0xf98f, 0x5000 }, { 0x8700, 0xf987, 0x4000 }, { 0x8700, 0xf983, 0x3000 }, { 0x8700, 0xf981, 0x2000 }, { 0x0700, 0xf980, 0x0000 }, { 0x0700, 0xf982, 0x0000 }, { 0x8700, 0xf985, 0x2000 }, { 0x0700, 0xf984, 0x0000 }, { 0x0700, 0xf986, 0x0000 }, { 0x8700, 0xf98b, 0x3000 }, { 0x8700, 0xf989, 0x2000 }, { 0x0700, 0xf988, 0x0000 }, { 0x0700, 0xf98a, 0x0000 }, { 0x8700, 0xf98d, 0x2000 }, { 0x0700, 0xf98c, 0x0000 }, { 0x0700, 0xf98e, 0x0000 }, { 0x8700, 0xf997, 0x4000 }, { 0x8700, 0xf993, 0x3000 }, { 0x8700, 0xf991, 0x2000 }, { 0x0700, 0xf990, 0x0000 }, { 0x0700, 0xf992, 0x0000 }, { 0x8700, 0xf995, 0x2000 }, { 0x0700, 0xf994, 0x0000 }, { 0x0700, 0xf996, 0x0000 }, { 0x8700, 0xf99b, 0x3000 }, { 0x8700, 0xf999, 0x2000 }, { 0x0700, 0xf998, 0x0000 }, { 0x0700, 0xf99a, 0x0000 }, { 0x8700, 0xf99d, 0x2000 }, { 0x0700, 0xf99c, 0x0000 }, { 0x0700, 0xf99e, 0x0000 }, { 0x8700, 0xf9af, 0x5000 }, { 0x8700, 0xf9a7, 0x4000 }, { 0x8700, 0xf9a3, 0x3000 }, { 0x8700, 0xf9a1, 0x2000 }, { 0x0700, 0xf9a0, 0x0000 }, { 0x0700, 0xf9a2, 0x0000 }, { 0x8700, 0xf9a5, 0x2000 }, { 0x0700, 0xf9a4, 0x0000 }, { 0x0700, 0xf9a6, 0x0000 }, { 0x8700, 0xf9ab, 0x3000 }, { 0x8700, 0xf9a9, 0x2000 }, { 0x0700, 0xf9a8, 0x0000 }, { 0x0700, 0xf9aa, 0x0000 }, { 0x8700, 0xf9ad, 0x2000 }, { 0x0700, 0xf9ac, 0x0000 }, { 0x0700, 0xf9ae, 0x0000 }, { 0x8700, 0xf9b7, 0x4000 }, { 0x8700, 0xf9b3, 0x3000 }, { 0x8700, 0xf9b1, 0x2000 }, { 0x0700, 0xf9b0, 0x0000 }, { 0x0700, 0xf9b2, 0x0000 }, { 0x8700, 0xf9b5, 0x2000 }, { 0x0700, 0xf9b4, 0x0000 }, { 0x0700, 0xf9b6, 0x0000 }, { 0x8700, 0xf9bb, 0x3000 }, { 0x8700, 0xf9b9, 0x2000 }, { 0x0700, 0xf9b8, 0x0000 }, { 0x0700, 0xf9ba, 0x0000 }, { 0x8700, 0xf9bd, 0x2000 }, { 0x0700, 0xf9bc, 0x0000 }, { 0x0700, 0xf9be, 0x0000 }, { 0x8700, 0xf9df, 0x6000 }, { 0x8700, 0xf9cf, 0x5000 }, { 0x8700, 0xf9c7, 0x4000 }, { 0x8700, 0xf9c3, 0x3000 }, { 0x8700, 0xf9c1, 0x2000 }, { 0x0700, 0xf9c0, 0x0000 }, { 0x0700, 0xf9c2, 0x0000 }, { 0x8700, 0xf9c5, 0x2000 }, { 0x0700, 0xf9c4, 0x0000 }, { 0x0700, 0xf9c6, 0x0000 }, { 0x8700, 0xf9cb, 0x3000 }, { 0x8700, 0xf9c9, 0x2000 }, { 0x0700, 0xf9c8, 0x0000 }, { 0x0700, 0xf9ca, 0x0000 }, { 0x8700, 0xf9cd, 0x2000 }, { 0x0700, 0xf9cc, 0x0000 }, { 0x0700, 0xf9ce, 0x0000 }, { 0x8700, 0xf9d7, 0x4000 }, { 0x8700, 0xf9d3, 0x3000 }, { 0x8700, 0xf9d1, 0x2000 }, { 0x0700, 0xf9d0, 0x0000 }, { 0x0700, 0xf9d2, 0x0000 }, { 0x8700, 0xf9d5, 0x2000 }, { 0x0700, 0xf9d4, 0x0000 }, { 0x0700, 0xf9d6, 0x0000 }, { 0x8700, 0xf9db, 0x3000 }, { 0x8700, 0xf9d9, 0x2000 }, { 0x0700, 0xf9d8, 0x0000 }, { 0x0700, 0xf9da, 0x0000 }, { 0x8700, 0xf9dd, 0x2000 }, { 0x0700, 0xf9dc, 0x0000 }, { 0x0700, 0xf9de, 0x0000 }, { 0x8700, 0xf9ef, 0x5000 }, { 0x8700, 0xf9e7, 0x4000 }, { 0x8700, 0xf9e3, 0x3000 }, { 0x8700, 0xf9e1, 0x2000 }, { 0x0700, 0xf9e0, 0x0000 }, { 0x0700, 0xf9e2, 0x0000 }, { 0x8700, 0xf9e5, 0x2000 }, { 0x0700, 0xf9e4, 0x0000 }, { 0x0700, 0xf9e6, 0x0000 }, { 0x8700, 0xf9eb, 0x3000 }, { 0x8700, 0xf9e9, 0x2000 }, { 0x0700, 0xf9e8, 0x0000 }, { 0x0700, 0xf9ea, 0x0000 }, { 0x8700, 0xf9ed, 0x2000 }, { 0x0700, 0xf9ec, 0x0000 }, { 0x0700, 0xf9ee, 0x0000 }, { 0x8700, 0xf9f7, 0x4000 }, { 0x8700, 0xf9f3, 0x3000 }, { 0x8700, 0xf9f1, 0x2000 }, { 0x0700, 0xf9f0, 0x0000 }, { 0x0700, 0xf9f2, 0x0000 }, { 0x8700, 0xf9f5, 0x2000 }, { 0x0700, 0xf9f4, 0x0000 }, { 0x0700, 0xf9f6, 0x0000 }, { 0x8700, 0xf9fb, 0x3000 }, { 0x8700, 0xf9f9, 0x2000 }, { 0x0700, 0xf9f8, 0x0000 }, { 0x0700, 0xf9fa, 0x0000 }, { 0x8700, 0xf9fd, 0x2000 }, { 0x0700, 0xf9fc, 0x0000 }, { 0x0700, 0xf9fe, 0x0000 }, { 0x8700, 0xfa41, 0x7000 }, { 0x8700, 0xfa1f, 0x6000 }, { 0x8700, 0xfa0f, 0x5000 }, { 0x8700, 0xfa07, 0x4000 }, { 0x8700, 0xfa03, 0x3000 }, { 0x8700, 0xfa01, 0x2000 }, { 0x0700, 0xfa00, 0x0000 }, { 0x0700, 0xfa02, 0x0000 }, { 0x8700, 0xfa05, 0x2000 }, { 0x0700, 0xfa04, 0x0000 }, { 0x0700, 0xfa06, 0x0000 }, { 0x8700, 0xfa0b, 0x3000 }, { 0x8700, 0xfa09, 0x2000 }, { 0x0700, 0xfa08, 0x0000 }, { 0x0700, 0xfa0a, 0x0000 }, { 0x8700, 0xfa0d, 0x2000 }, { 0x0700, 0xfa0c, 0x0000 }, { 0x0700, 0xfa0e, 0x0000 }, { 0x8700, 0xfa17, 0x4000 }, { 0x8700, 0xfa13, 0x3000 }, { 0x8700, 0xfa11, 0x2000 }, { 0x0700, 0xfa10, 0x0000 }, { 0x0700, 0xfa12, 0x0000 }, { 0x8700, 0xfa15, 0x2000 }, { 0x0700, 0xfa14, 0x0000 }, { 0x0700, 0xfa16, 0x0000 }, { 0x8700, 0xfa1b, 0x3000 }, { 0x8700, 0xfa19, 0x2000 }, { 0x0700, 0xfa18, 0x0000 }, { 0x0700, 0xfa1a, 0x0000 }, { 0x8700, 0xfa1d, 0x2000 }, { 0x0700, 0xfa1c, 0x0000 }, { 0x0700, 0xfa1e, 0x0000 }, { 0x8700, 0xfa31, 0x5000 }, { 0x8700, 0xfa27, 0x4000 }, { 0x8700, 0xfa23, 0x3000 }, { 0x8700, 0xfa21, 0x2000 }, { 0x0700, 0xfa20, 0x0000 }, { 0x0700, 0xfa22, 0x0000 }, { 0x8700, 0xfa25, 0x2000 }, { 0x0700, 0xfa24, 0x0000 }, { 0x0700, 0xfa26, 0x0000 }, { 0x8700, 0xfa2b, 0x3000 }, { 0x8700, 0xfa29, 0x2000 }, { 0x0700, 0xfa28, 0x0000 }, { 0x0700, 0xfa2a, 0x0000 }, { 0x8700, 0xfa2d, 0x2000 }, { 0x0700, 0xfa2c, 0x0000 }, { 0x0700, 0xfa30, 0x0000 }, { 0x8700, 0xfa39, 0x4000 }, { 0x8700, 0xfa35, 0x3000 }, { 0x8700, 0xfa33, 0x2000 }, { 0x0700, 0xfa32, 0x0000 }, { 0x0700, 0xfa34, 0x0000 }, { 0x8700, 0xfa37, 0x2000 }, { 0x0700, 0xfa36, 0x0000 }, { 0x0700, 0xfa38, 0x0000 }, { 0x8700, 0xfa3d, 0x3000 }, { 0x8700, 0xfa3b, 0x2000 }, { 0x0700, 0xfa3a, 0x0000 }, { 0x0700, 0xfa3c, 0x0000 }, { 0x8700, 0xfa3f, 0x2000 }, { 0x0700, 0xfa3e, 0x0000 }, { 0x0700, 0xfa40, 0x0000 }, { 0x8700, 0xfa61, 0x6000 }, { 0x8700, 0xfa51, 0x5000 }, { 0x8700, 0xfa49, 0x4000 }, { 0x8700, 0xfa45, 0x3000 }, { 0x8700, 0xfa43, 0x2000 }, { 0x0700, 0xfa42, 0x0000 }, { 0x0700, 0xfa44, 0x0000 }, { 0x8700, 0xfa47, 0x2000 }, { 0x0700, 0xfa46, 0x0000 }, { 0x0700, 0xfa48, 0x0000 }, { 0x8700, 0xfa4d, 0x3000 }, { 0x8700, 0xfa4b, 0x2000 }, { 0x0700, 0xfa4a, 0x0000 }, { 0x0700, 0xfa4c, 0x0000 }, { 0x8700, 0xfa4f, 0x2000 }, { 0x0700, 0xfa4e, 0x0000 }, { 0x0700, 0xfa50, 0x0000 }, { 0x8700, 0xfa59, 0x4000 }, { 0x8700, 0xfa55, 0x3000 }, { 0x8700, 0xfa53, 0x2000 }, { 0x0700, 0xfa52, 0x0000 }, { 0x0700, 0xfa54, 0x0000 }, { 0x8700, 0xfa57, 0x2000 }, { 0x0700, 0xfa56, 0x0000 }, { 0x0700, 0xfa58, 0x0000 }, { 0x8700, 0xfa5d, 0x3000 }, { 0x8700, 0xfa5b, 0x2000 }, { 0x0700, 0xfa5a, 0x0000 }, { 0x0700, 0xfa5c, 0x0000 }, { 0x8700, 0xfa5f, 0x2000 }, { 0x0700, 0xfa5e, 0x0000 }, { 0x0700, 0xfa60, 0x0000 }, { 0x8500, 0xfb06, 0x5000 }, { 0x8700, 0xfa69, 0x4000 }, { 0x8700, 0xfa65, 0x3000 }, { 0x8700, 0xfa63, 0x2000 }, { 0x0700, 0xfa62, 0x0000 }, { 0x0700, 0xfa64, 0x0000 }, { 0x8700, 0xfa67, 0x2000 }, { 0x0700, 0xfa66, 0x0000 }, { 0x0700, 0xfa68, 0x0000 }, { 0x8500, 0xfb02, 0x3000 }, { 0x8500, 0xfb00, 0x2000 }, { 0x0700, 0xfa6a, 0x0000 }, { 0x0500, 0xfb01, 0x0000 }, { 0x8500, 0xfb04, 0x2000 }, { 0x0500, 0xfb03, 0x0000 }, { 0x0500, 0xfb05, 0x0000 }, { 0x8700, 0xfb1f, 0x4000 }, { 0x8500, 0xfb16, 0x3000 }, { 0x8500, 0xfb14, 0x2000 }, { 0x0500, 0xfb13, 0x0000 }, { 0x0500, 0xfb15, 0x0000 }, { 0x8700, 0xfb1d, 0x2000 }, { 0x0500, 0xfb17, 0x0000 }, { 0x0c00, 0xfb1e, 0x0000 }, { 0x8700, 0xfb23, 0x3000 }, { 0x8700, 0xfb21, 0x2000 }, { 0x0700, 0xfb20, 0x0000 }, { 0x0700, 0xfb22, 0x0000 }, { 0x8700, 0xfb25, 0x2000 }, { 0x0700, 0xfb24, 0x0000 }, { 0x0700, 0xfb26, 0x0000 }, { 0x8700, 0xfbac, 0x8000 }, { 0x8700, 0xfb6c, 0x7000 }, { 0x8700, 0xfb4c, 0x6000 }, { 0x8700, 0xfb38, 0x5000 }, { 0x8700, 0xfb2f, 0x4000 }, { 0x8700, 0xfb2b, 0x3000 }, { 0x9900, 0xfb29, 0x2000 }, { 0x0700, 0xfb28, 0x0000 }, { 0x0700, 0xfb2a, 0x0000 }, { 0x8700, 0xfb2d, 0x2000 }, { 0x0700, 0xfb2c, 0x0000 }, { 0x0700, 0xfb2e, 0x0000 }, { 0x8700, 0xfb33, 0x3000 }, { 0x8700, 0xfb31, 0x2000 }, { 0x0700, 0xfb30, 0x0000 }, { 0x0700, 0xfb32, 0x0000 }, { 0x8700, 0xfb35, 0x2000 }, { 0x0700, 0xfb34, 0x0000 }, { 0x0700, 0xfb36, 0x0000 }, { 0x8700, 0xfb43, 0x4000 }, { 0x8700, 0xfb3c, 0x3000 }, { 0x8700, 0xfb3a, 0x2000 }, { 0x0700, 0xfb39, 0x0000 }, { 0x0700, 0xfb3b, 0x0000 }, { 0x8700, 0xfb40, 0x2000 }, { 0x0700, 0xfb3e, 0x0000 }, { 0x0700, 0xfb41, 0x0000 }, { 0x8700, 0xfb48, 0x3000 }, { 0x8700, 0xfb46, 0x2000 }, { 0x0700, 0xfb44, 0x0000 }, { 0x0700, 0xfb47, 0x0000 }, { 0x8700, 0xfb4a, 0x2000 }, { 0x0700, 0xfb49, 0x0000 }, { 0x0700, 0xfb4b, 0x0000 }, { 0x8700, 0xfb5c, 0x5000 }, { 0x8700, 0xfb54, 0x4000 }, { 0x8700, 0xfb50, 0x3000 }, { 0x8700, 0xfb4e, 0x2000 }, { 0x0700, 0xfb4d, 0x0000 }, { 0x0700, 0xfb4f, 0x0000 }, { 0x8700, 0xfb52, 0x2000 }, { 0x0700, 0xfb51, 0x0000 }, { 0x0700, 0xfb53, 0x0000 }, { 0x8700, 0xfb58, 0x3000 }, { 0x8700, 0xfb56, 0x2000 }, { 0x0700, 0xfb55, 0x0000 }, { 0x0700, 0xfb57, 0x0000 }, { 0x8700, 0xfb5a, 0x2000 }, { 0x0700, 0xfb59, 0x0000 }, { 0x0700, 0xfb5b, 0x0000 }, { 0x8700, 0xfb64, 0x4000 }, { 0x8700, 0xfb60, 0x3000 }, { 0x8700, 0xfb5e, 0x2000 }, { 0x0700, 0xfb5d, 0x0000 }, { 0x0700, 0xfb5f, 0x0000 }, { 0x8700, 0xfb62, 0x2000 }, { 0x0700, 0xfb61, 0x0000 }, { 0x0700, 0xfb63, 0x0000 }, { 0x8700, 0xfb68, 0x3000 }, { 0x8700, 0xfb66, 0x2000 }, { 0x0700, 0xfb65, 0x0000 }, { 0x0700, 0xfb67, 0x0000 }, { 0x8700, 0xfb6a, 0x2000 }, { 0x0700, 0xfb69, 0x0000 }, { 0x0700, 0xfb6b, 0x0000 }, { 0x8700, 0xfb8c, 0x6000 }, { 0x8700, 0xfb7c, 0x5000 }, { 0x8700, 0xfb74, 0x4000 }, { 0x8700, 0xfb70, 0x3000 }, { 0x8700, 0xfb6e, 0x2000 }, { 0x0700, 0xfb6d, 0x0000 }, { 0x0700, 0xfb6f, 0x0000 }, { 0x8700, 0xfb72, 0x2000 }, { 0x0700, 0xfb71, 0x0000 }, { 0x0700, 0xfb73, 0x0000 }, { 0x8700, 0xfb78, 0x3000 }, { 0x8700, 0xfb76, 0x2000 }, { 0x0700, 0xfb75, 0x0000 }, { 0x0700, 0xfb77, 0x0000 }, { 0x8700, 0xfb7a, 0x2000 }, { 0x0700, 0xfb79, 0x0000 }, { 0x0700, 0xfb7b, 0x0000 }, { 0x8700, 0xfb84, 0x4000 }, { 0x8700, 0xfb80, 0x3000 }, { 0x8700, 0xfb7e, 0x2000 }, { 0x0700, 0xfb7d, 0x0000 }, { 0x0700, 0xfb7f, 0x0000 }, { 0x8700, 0xfb82, 0x2000 }, { 0x0700, 0xfb81, 0x0000 }, { 0x0700, 0xfb83, 0x0000 }, { 0x8700, 0xfb88, 0x3000 }, { 0x8700, 0xfb86, 0x2000 }, { 0x0700, 0xfb85, 0x0000 }, { 0x0700, 0xfb87, 0x0000 }, { 0x8700, 0xfb8a, 0x2000 }, { 0x0700, 0xfb89, 0x0000 }, { 0x0700, 0xfb8b, 0x0000 }, { 0x8700, 0xfb9c, 0x5000 }, { 0x8700, 0xfb94, 0x4000 }, { 0x8700, 0xfb90, 0x3000 }, { 0x8700, 0xfb8e, 0x2000 }, { 0x0700, 0xfb8d, 0x0000 }, { 0x0700, 0xfb8f, 0x0000 }, { 0x8700, 0xfb92, 0x2000 }, { 0x0700, 0xfb91, 0x0000 }, { 0x0700, 0xfb93, 0x0000 }, { 0x8700, 0xfb98, 0x3000 }, { 0x8700, 0xfb96, 0x2000 }, { 0x0700, 0xfb95, 0x0000 }, { 0x0700, 0xfb97, 0x0000 }, { 0x8700, 0xfb9a, 0x2000 }, { 0x0700, 0xfb99, 0x0000 }, { 0x0700, 0xfb9b, 0x0000 }, { 0x8700, 0xfba4, 0x4000 }, { 0x8700, 0xfba0, 0x3000 }, { 0x8700, 0xfb9e, 0x2000 }, { 0x0700, 0xfb9d, 0x0000 }, { 0x0700, 0xfb9f, 0x0000 }, { 0x8700, 0xfba2, 0x2000 }, { 0x0700, 0xfba1, 0x0000 }, { 0x0700, 0xfba3, 0x0000 }, { 0x8700, 0xfba8, 0x3000 }, { 0x8700, 0xfba6, 0x2000 }, { 0x0700, 0xfba5, 0x0000 }, { 0x0700, 0xfba7, 0x0000 }, { 0x8700, 0xfbaa, 0x2000 }, { 0x0700, 0xfba9, 0x0000 }, { 0x0700, 0xfbab, 0x0000 }, { 0x8700, 0xfc0d, 0x7000 }, { 0x8700, 0xfbed, 0x6000 }, { 0x8700, 0xfbdd, 0x5000 }, { 0x8700, 0xfbd5, 0x4000 }, { 0x8700, 0xfbb0, 0x3000 }, { 0x8700, 0xfbae, 0x2000 }, { 0x0700, 0xfbad, 0x0000 }, { 0x0700, 0xfbaf, 0x0000 }, { 0x8700, 0xfbd3, 0x2000 }, { 0x0700, 0xfbb1, 0x0000 }, { 0x0700, 0xfbd4, 0x0000 }, { 0x8700, 0xfbd9, 0x3000 }, { 0x8700, 0xfbd7, 0x2000 }, { 0x0700, 0xfbd6, 0x0000 }, { 0x0700, 0xfbd8, 0x0000 }, { 0x8700, 0xfbdb, 0x2000 }, { 0x0700, 0xfbda, 0x0000 }, { 0x0700, 0xfbdc, 0x0000 }, { 0x8700, 0xfbe5, 0x4000 }, { 0x8700, 0xfbe1, 0x3000 }, { 0x8700, 0xfbdf, 0x2000 }, { 0x0700, 0xfbde, 0x0000 }, { 0x0700, 0xfbe0, 0x0000 }, { 0x8700, 0xfbe3, 0x2000 }, { 0x0700, 0xfbe2, 0x0000 }, { 0x0700, 0xfbe4, 0x0000 }, { 0x8700, 0xfbe9, 0x3000 }, { 0x8700, 0xfbe7, 0x2000 }, { 0x0700, 0xfbe6, 0x0000 }, { 0x0700, 0xfbe8, 0x0000 }, { 0x8700, 0xfbeb, 0x2000 }, { 0x0700, 0xfbea, 0x0000 }, { 0x0700, 0xfbec, 0x0000 }, { 0x8700, 0xfbfd, 0x5000 }, { 0x8700, 0xfbf5, 0x4000 }, { 0x8700, 0xfbf1, 0x3000 }, { 0x8700, 0xfbef, 0x2000 }, { 0x0700, 0xfbee, 0x0000 }, { 0x0700, 0xfbf0, 0x0000 }, { 0x8700, 0xfbf3, 0x2000 }, { 0x0700, 0xfbf2, 0x0000 }, { 0x0700, 0xfbf4, 0x0000 }, { 0x8700, 0xfbf9, 0x3000 }, { 0x8700, 0xfbf7, 0x2000 }, { 0x0700, 0xfbf6, 0x0000 }, { 0x0700, 0xfbf8, 0x0000 }, { 0x8700, 0xfbfb, 0x2000 }, { 0x0700, 0xfbfa, 0x0000 }, { 0x0700, 0xfbfc, 0x0000 }, { 0x8700, 0xfc05, 0x4000 }, { 0x8700, 0xfc01, 0x3000 }, { 0x8700, 0xfbff, 0x2000 }, { 0x0700, 0xfbfe, 0x0000 }, { 0x0700, 0xfc00, 0x0000 }, { 0x8700, 0xfc03, 0x2000 }, { 0x0700, 0xfc02, 0x0000 }, { 0x0700, 0xfc04, 0x0000 }, { 0x8700, 0xfc09, 0x3000 }, { 0x8700, 0xfc07, 0x2000 }, { 0x0700, 0xfc06, 0x0000 }, { 0x0700, 0xfc08, 0x0000 }, { 0x8700, 0xfc0b, 0x2000 }, { 0x0700, 0xfc0a, 0x0000 }, { 0x0700, 0xfc0c, 0x0000 }, { 0x8700, 0xfc2d, 0x6000 }, { 0x8700, 0xfc1d, 0x5000 }, { 0x8700, 0xfc15, 0x4000 }, { 0x8700, 0xfc11, 0x3000 }, { 0x8700, 0xfc0f, 0x2000 }, { 0x0700, 0xfc0e, 0x0000 }, { 0x0700, 0xfc10, 0x0000 }, { 0x8700, 0xfc13, 0x2000 }, { 0x0700, 0xfc12, 0x0000 }, { 0x0700, 0xfc14, 0x0000 }, { 0x8700, 0xfc19, 0x3000 }, { 0x8700, 0xfc17, 0x2000 }, { 0x0700, 0xfc16, 0x0000 }, { 0x0700, 0xfc18, 0x0000 }, { 0x8700, 0xfc1b, 0x2000 }, { 0x0700, 0xfc1a, 0x0000 }, { 0x0700, 0xfc1c, 0x0000 }, { 0x8700, 0xfc25, 0x4000 }, { 0x8700, 0xfc21, 0x3000 }, { 0x8700, 0xfc1f, 0x2000 }, { 0x0700, 0xfc1e, 0x0000 }, { 0x0700, 0xfc20, 0x0000 }, { 0x8700, 0xfc23, 0x2000 }, { 0x0700, 0xfc22, 0x0000 }, { 0x0700, 0xfc24, 0x0000 }, { 0x8700, 0xfc29, 0x3000 }, { 0x8700, 0xfc27, 0x2000 }, { 0x0700, 0xfc26, 0x0000 }, { 0x0700, 0xfc28, 0x0000 }, { 0x8700, 0xfc2b, 0x2000 }, { 0x0700, 0xfc2a, 0x0000 }, { 0x0700, 0xfc2c, 0x0000 }, { 0x8700, 0xfc3d, 0x5000 }, { 0x8700, 0xfc35, 0x4000 }, { 0x8700, 0xfc31, 0x3000 }, { 0x8700, 0xfc2f, 0x2000 }, { 0x0700, 0xfc2e, 0x0000 }, { 0x0700, 0xfc30, 0x0000 }, { 0x8700, 0xfc33, 0x2000 }, { 0x0700, 0xfc32, 0x0000 }, { 0x0700, 0xfc34, 0x0000 }, { 0x8700, 0xfc39, 0x3000 }, { 0x8700, 0xfc37, 0x2000 }, { 0x0700, 0xfc36, 0x0000 }, { 0x0700, 0xfc38, 0x0000 }, { 0x8700, 0xfc3b, 0x2000 }, { 0x0700, 0xfc3a, 0x0000 }, { 0x0700, 0xfc3c, 0x0000 }, { 0x8700, 0xfc45, 0x4000 }, { 0x8700, 0xfc41, 0x3000 }, { 0x8700, 0xfc3f, 0x2000 }, { 0x0700, 0xfc3e, 0x0000 }, { 0x0700, 0xfc40, 0x0000 }, { 0x8700, 0xfc43, 0x2000 }, { 0x0700, 0xfc42, 0x0000 }, { 0x0700, 0xfc44, 0x0000 }, { 0x8700, 0xfc49, 0x3000 }, { 0x8700, 0xfc47, 0x2000 }, { 0x0700, 0xfc46, 0x0000 }, { 0x0700, 0xfc48, 0x0000 }, { 0x8700, 0xfc4b, 0x2000 }, { 0x0700, 0xfc4a, 0x0000 }, { 0x0700, 0xfc4c, 0x0000 }, { 0x8700, 0xfeac, 0xa000 }, { 0x8700, 0xfd5d, 0x9000 }, { 0x8700, 0xfccd, 0x8000 }, { 0x8700, 0xfc8d, 0x7000 }, { 0x8700, 0xfc6d, 0x6000 }, { 0x8700, 0xfc5d, 0x5000 }, { 0x8700, 0xfc55, 0x4000 }, { 0x8700, 0xfc51, 0x3000 }, { 0x8700, 0xfc4f, 0x2000 }, { 0x0700, 0xfc4e, 0x0000 }, { 0x0700, 0xfc50, 0x0000 }, { 0x8700, 0xfc53, 0x2000 }, { 0x0700, 0xfc52, 0x0000 }, { 0x0700, 0xfc54, 0x0000 }, { 0x8700, 0xfc59, 0x3000 }, { 0x8700, 0xfc57, 0x2000 }, { 0x0700, 0xfc56, 0x0000 }, { 0x0700, 0xfc58, 0x0000 }, { 0x8700, 0xfc5b, 0x2000 }, { 0x0700, 0xfc5a, 0x0000 }, { 0x0700, 0xfc5c, 0x0000 }, { 0x8700, 0xfc65, 0x4000 }, { 0x8700, 0xfc61, 0x3000 }, { 0x8700, 0xfc5f, 0x2000 }, { 0x0700, 0xfc5e, 0x0000 }, { 0x0700, 0xfc60, 0x0000 }, { 0x8700, 0xfc63, 0x2000 }, { 0x0700, 0xfc62, 0x0000 }, { 0x0700, 0xfc64, 0x0000 }, { 0x8700, 0xfc69, 0x3000 }, { 0x8700, 0xfc67, 0x2000 }, { 0x0700, 0xfc66, 0x0000 }, { 0x0700, 0xfc68, 0x0000 }, { 0x8700, 0xfc6b, 0x2000 }, { 0x0700, 0xfc6a, 0x0000 }, { 0x0700, 0xfc6c, 0x0000 }, { 0x8700, 0xfc7d, 0x5000 }, { 0x8700, 0xfc75, 0x4000 }, { 0x8700, 0xfc71, 0x3000 }, { 0x8700, 0xfc6f, 0x2000 }, { 0x0700, 0xfc6e, 0x0000 }, { 0x0700, 0xfc70, 0x0000 }, { 0x8700, 0xfc73, 0x2000 }, { 0x0700, 0xfc72, 0x0000 }, { 0x0700, 0xfc74, 0x0000 }, { 0x8700, 0xfc79, 0x3000 }, { 0x8700, 0xfc77, 0x2000 }, { 0x0700, 0xfc76, 0x0000 }, { 0x0700, 0xfc78, 0x0000 }, { 0x8700, 0xfc7b, 0x2000 }, { 0x0700, 0xfc7a, 0x0000 }, { 0x0700, 0xfc7c, 0x0000 }, { 0x8700, 0xfc85, 0x4000 }, { 0x8700, 0xfc81, 0x3000 }, { 0x8700, 0xfc7f, 0x2000 }, { 0x0700, 0xfc7e, 0x0000 }, { 0x0700, 0xfc80, 0x0000 }, { 0x8700, 0xfc83, 0x2000 }, { 0x0700, 0xfc82, 0x0000 }, { 0x0700, 0xfc84, 0x0000 }, { 0x8700, 0xfc89, 0x3000 }, { 0x8700, 0xfc87, 0x2000 }, { 0x0700, 0xfc86, 0x0000 }, { 0x0700, 0xfc88, 0x0000 }, { 0x8700, 0xfc8b, 0x2000 }, { 0x0700, 0xfc8a, 0x0000 }, { 0x0700, 0xfc8c, 0x0000 }, { 0x8700, 0xfcad, 0x6000 }, { 0x8700, 0xfc9d, 0x5000 }, { 0x8700, 0xfc95, 0x4000 }, { 0x8700, 0xfc91, 0x3000 }, { 0x8700, 0xfc8f, 0x2000 }, { 0x0700, 0xfc8e, 0x0000 }, { 0x0700, 0xfc90, 0x0000 }, { 0x8700, 0xfc93, 0x2000 }, { 0x0700, 0xfc92, 0x0000 }, { 0x0700, 0xfc94, 0x0000 }, { 0x8700, 0xfc99, 0x3000 }, { 0x8700, 0xfc97, 0x2000 }, { 0x0700, 0xfc96, 0x0000 }, { 0x0700, 0xfc98, 0x0000 }, { 0x8700, 0xfc9b, 0x2000 }, { 0x0700, 0xfc9a, 0x0000 }, { 0x0700, 0xfc9c, 0x0000 }, { 0x8700, 0xfca5, 0x4000 }, { 0x8700, 0xfca1, 0x3000 }, { 0x8700, 0xfc9f, 0x2000 }, { 0x0700, 0xfc9e, 0x0000 }, { 0x0700, 0xfca0, 0x0000 }, { 0x8700, 0xfca3, 0x2000 }, { 0x0700, 0xfca2, 0x0000 }, { 0x0700, 0xfca4, 0x0000 }, { 0x8700, 0xfca9, 0x3000 }, { 0x8700, 0xfca7, 0x2000 }, { 0x0700, 0xfca6, 0x0000 }, { 0x0700, 0xfca8, 0x0000 }, { 0x8700, 0xfcab, 0x2000 }, { 0x0700, 0xfcaa, 0x0000 }, { 0x0700, 0xfcac, 0x0000 }, { 0x8700, 0xfcbd, 0x5000 }, { 0x8700, 0xfcb5, 0x4000 }, { 0x8700, 0xfcb1, 0x3000 }, { 0x8700, 0xfcaf, 0x2000 }, { 0x0700, 0xfcae, 0x0000 }, { 0x0700, 0xfcb0, 0x0000 }, { 0x8700, 0xfcb3, 0x2000 }, { 0x0700, 0xfcb2, 0x0000 }, { 0x0700, 0xfcb4, 0x0000 }, { 0x8700, 0xfcb9, 0x3000 }, { 0x8700, 0xfcb7, 0x2000 }, { 0x0700, 0xfcb6, 0x0000 }, { 0x0700, 0xfcb8, 0x0000 }, { 0x8700, 0xfcbb, 0x2000 }, { 0x0700, 0xfcba, 0x0000 }, { 0x0700, 0xfcbc, 0x0000 }, { 0x8700, 0xfcc5, 0x4000 }, { 0x8700, 0xfcc1, 0x3000 }, { 0x8700, 0xfcbf, 0x2000 }, { 0x0700, 0xfcbe, 0x0000 }, { 0x0700, 0xfcc0, 0x0000 }, { 0x8700, 0xfcc3, 0x2000 }, { 0x0700, 0xfcc2, 0x0000 }, { 0x0700, 0xfcc4, 0x0000 }, { 0x8700, 0xfcc9, 0x3000 }, { 0x8700, 0xfcc7, 0x2000 }, { 0x0700, 0xfcc6, 0x0000 }, { 0x0700, 0xfcc8, 0x0000 }, { 0x8700, 0xfccb, 0x2000 }, { 0x0700, 0xfcca, 0x0000 }, { 0x0700, 0xfccc, 0x0000 }, { 0x8700, 0xfd0d, 0x7000 }, { 0x8700, 0xfced, 0x6000 }, { 0x8700, 0xfcdd, 0x5000 }, { 0x8700, 0xfcd5, 0x4000 }, { 0x8700, 0xfcd1, 0x3000 }, { 0x8700, 0xfccf, 0x2000 }, { 0x0700, 0xfcce, 0x0000 }, { 0x0700, 0xfcd0, 0x0000 }, { 0x8700, 0xfcd3, 0x2000 }, { 0x0700, 0xfcd2, 0x0000 }, { 0x0700, 0xfcd4, 0x0000 }, { 0x8700, 0xfcd9, 0x3000 }, { 0x8700, 0xfcd7, 0x2000 }, { 0x0700, 0xfcd6, 0x0000 }, { 0x0700, 0xfcd8, 0x0000 }, { 0x8700, 0xfcdb, 0x2000 }, { 0x0700, 0xfcda, 0x0000 }, { 0x0700, 0xfcdc, 0x0000 }, { 0x8700, 0xfce5, 0x4000 }, { 0x8700, 0xfce1, 0x3000 }, { 0x8700, 0xfcdf, 0x2000 }, { 0x0700, 0xfcde, 0x0000 }, { 0x0700, 0xfce0, 0x0000 }, { 0x8700, 0xfce3, 0x2000 }, { 0x0700, 0xfce2, 0x0000 }, { 0x0700, 0xfce4, 0x0000 }, { 0x8700, 0xfce9, 0x3000 }, { 0x8700, 0xfce7, 0x2000 }, { 0x0700, 0xfce6, 0x0000 }, { 0x0700, 0xfce8, 0x0000 }, { 0x8700, 0xfceb, 0x2000 }, { 0x0700, 0xfcea, 0x0000 }, { 0x0700, 0xfcec, 0x0000 }, { 0x8700, 0xfcfd, 0x5000 }, { 0x8700, 0xfcf5, 0x4000 }, { 0x8700, 0xfcf1, 0x3000 }, { 0x8700, 0xfcef, 0x2000 }, { 0x0700, 0xfcee, 0x0000 }, { 0x0700, 0xfcf0, 0x0000 }, { 0x8700, 0xfcf3, 0x2000 }, { 0x0700, 0xfcf2, 0x0000 }, { 0x0700, 0xfcf4, 0x0000 }, { 0x8700, 0xfcf9, 0x3000 }, { 0x8700, 0xfcf7, 0x2000 }, { 0x0700, 0xfcf6, 0x0000 }, { 0x0700, 0xfcf8, 0x0000 }, { 0x8700, 0xfcfb, 0x2000 }, { 0x0700, 0xfcfa, 0x0000 }, { 0x0700, 0xfcfc, 0x0000 }, { 0x8700, 0xfd05, 0x4000 }, { 0x8700, 0xfd01, 0x3000 }, { 0x8700, 0xfcff, 0x2000 }, { 0x0700, 0xfcfe, 0x0000 }, { 0x0700, 0xfd00, 0x0000 }, { 0x8700, 0xfd03, 0x2000 }, { 0x0700, 0xfd02, 0x0000 }, { 0x0700, 0xfd04, 0x0000 }, { 0x8700, 0xfd09, 0x3000 }, { 0x8700, 0xfd07, 0x2000 }, { 0x0700, 0xfd06, 0x0000 }, { 0x0700, 0xfd08, 0x0000 }, { 0x8700, 0xfd0b, 0x2000 }, { 0x0700, 0xfd0a, 0x0000 }, { 0x0700, 0xfd0c, 0x0000 }, { 0x8700, 0xfd2d, 0x6000 }, { 0x8700, 0xfd1d, 0x5000 }, { 0x8700, 0xfd15, 0x4000 }, { 0x8700, 0xfd11, 0x3000 }, { 0x8700, 0xfd0f, 0x2000 }, { 0x0700, 0xfd0e, 0x0000 }, { 0x0700, 0xfd10, 0x0000 }, { 0x8700, 0xfd13, 0x2000 }, { 0x0700, 0xfd12, 0x0000 }, { 0x0700, 0xfd14, 0x0000 }, { 0x8700, 0xfd19, 0x3000 }, { 0x8700, 0xfd17, 0x2000 }, { 0x0700, 0xfd16, 0x0000 }, { 0x0700, 0xfd18, 0x0000 }, { 0x8700, 0xfd1b, 0x2000 }, { 0x0700, 0xfd1a, 0x0000 }, { 0x0700, 0xfd1c, 0x0000 }, { 0x8700, 0xfd25, 0x4000 }, { 0x8700, 0xfd21, 0x3000 }, { 0x8700, 0xfd1f, 0x2000 }, { 0x0700, 0xfd1e, 0x0000 }, { 0x0700, 0xfd20, 0x0000 }, { 0x8700, 0xfd23, 0x2000 }, { 0x0700, 0xfd22, 0x0000 }, { 0x0700, 0xfd24, 0x0000 }, { 0x8700, 0xfd29, 0x3000 }, { 0x8700, 0xfd27, 0x2000 }, { 0x0700, 0xfd26, 0x0000 }, { 0x0700, 0xfd28, 0x0000 }, { 0x8700, 0xfd2b, 0x2000 }, { 0x0700, 0xfd2a, 0x0000 }, { 0x0700, 0xfd2c, 0x0000 }, { 0x8700, 0xfd3d, 0x5000 }, { 0x8700, 0xfd35, 0x4000 }, { 0x8700, 0xfd31, 0x3000 }, { 0x8700, 0xfd2f, 0x2000 }, { 0x0700, 0xfd2e, 0x0000 }, { 0x0700, 0xfd30, 0x0000 }, { 0x8700, 0xfd33, 0x2000 }, { 0x0700, 0xfd32, 0x0000 }, { 0x0700, 0xfd34, 0x0000 }, { 0x8700, 0xfd39, 0x3000 }, { 0x8700, 0xfd37, 0x2000 }, { 0x0700, 0xfd36, 0x0000 }, { 0x0700, 0xfd38, 0x0000 }, { 0x8700, 0xfd3b, 0x2000 }, { 0x0700, 0xfd3a, 0x0000 }, { 0x0700, 0xfd3c, 0x0000 }, { 0x8700, 0xfd55, 0x4000 }, { 0x8700, 0xfd51, 0x3000 }, { 0x9200, 0xfd3f, 0x2000 }, { 0x1600, 0xfd3e, 0x0000 }, { 0x0700, 0xfd50, 0x0000 }, { 0x8700, 0xfd53, 0x2000 }, { 0x0700, 0xfd52, 0x0000 }, { 0x0700, 0xfd54, 0x0000 }, { 0x8700, 0xfd59, 0x3000 }, { 0x8700, 0xfd57, 0x2000 }, { 0x0700, 0xfd56, 0x0000 }, { 0x0700, 0xfd58, 0x0000 }, { 0x8700, 0xfd5b, 0x2000 }, { 0x0700, 0xfd5a, 0x0000 }, { 0x0700, 0xfd5c, 0x0000 }, { 0x8c00, 0xfe09, 0x8000 }, { 0x8700, 0xfd9f, 0x7000 }, { 0x8700, 0xfd7d, 0x6000 }, { 0x8700, 0xfd6d, 0x5000 }, { 0x8700, 0xfd65, 0x4000 }, { 0x8700, 0xfd61, 0x3000 }, { 0x8700, 0xfd5f, 0x2000 }, { 0x0700, 0xfd5e, 0x0000 }, { 0x0700, 0xfd60, 0x0000 }, { 0x8700, 0xfd63, 0x2000 }, { 0x0700, 0xfd62, 0x0000 }, { 0x0700, 0xfd64, 0x0000 }, { 0x8700, 0xfd69, 0x3000 }, { 0x8700, 0xfd67, 0x2000 }, { 0x0700, 0xfd66, 0x0000 }, { 0x0700, 0xfd68, 0x0000 }, { 0x8700, 0xfd6b, 0x2000 }, { 0x0700, 0xfd6a, 0x0000 }, { 0x0700, 0xfd6c, 0x0000 }, { 0x8700, 0xfd75, 0x4000 }, { 0x8700, 0xfd71, 0x3000 }, { 0x8700, 0xfd6f, 0x2000 }, { 0x0700, 0xfd6e, 0x0000 }, { 0x0700, 0xfd70, 0x0000 }, { 0x8700, 0xfd73, 0x2000 }, { 0x0700, 0xfd72, 0x0000 }, { 0x0700, 0xfd74, 0x0000 }, { 0x8700, 0xfd79, 0x3000 }, { 0x8700, 0xfd77, 0x2000 }, { 0x0700, 0xfd76, 0x0000 }, { 0x0700, 0xfd78, 0x0000 }, { 0x8700, 0xfd7b, 0x2000 }, { 0x0700, 0xfd7a, 0x0000 }, { 0x0700, 0xfd7c, 0x0000 }, { 0x8700, 0xfd8d, 0x5000 }, { 0x8700, 0xfd85, 0x4000 }, { 0x8700, 0xfd81, 0x3000 }, { 0x8700, 0xfd7f, 0x2000 }, { 0x0700, 0xfd7e, 0x0000 }, { 0x0700, 0xfd80, 0x0000 }, { 0x8700, 0xfd83, 0x2000 }, { 0x0700, 0xfd82, 0x0000 }, { 0x0700, 0xfd84, 0x0000 }, { 0x8700, 0xfd89, 0x3000 }, { 0x8700, 0xfd87, 0x2000 }, { 0x0700, 0xfd86, 0x0000 }, { 0x0700, 0xfd88, 0x0000 }, { 0x8700, 0xfd8b, 0x2000 }, { 0x0700, 0xfd8a, 0x0000 }, { 0x0700, 0xfd8c, 0x0000 }, { 0x8700, 0xfd97, 0x4000 }, { 0x8700, 0xfd93, 0x3000 }, { 0x8700, 0xfd8f, 0x2000 }, { 0x0700, 0xfd8e, 0x0000 }, { 0x0700, 0xfd92, 0x0000 }, { 0x8700, 0xfd95, 0x2000 }, { 0x0700, 0xfd94, 0x0000 }, { 0x0700, 0xfd96, 0x0000 }, { 0x8700, 0xfd9b, 0x3000 }, { 0x8700, 0xfd99, 0x2000 }, { 0x0700, 0xfd98, 0x0000 }, { 0x0700, 0xfd9a, 0x0000 }, { 0x8700, 0xfd9d, 0x2000 }, { 0x0700, 0xfd9c, 0x0000 }, { 0x0700, 0xfd9e, 0x0000 }, { 0x8700, 0xfdbf, 0x6000 }, { 0x8700, 0xfdaf, 0x5000 }, { 0x8700, 0xfda7, 0x4000 }, { 0x8700, 0xfda3, 0x3000 }, { 0x8700, 0xfda1, 0x2000 }, { 0x0700, 0xfda0, 0x0000 }, { 0x0700, 0xfda2, 0x0000 }, { 0x8700, 0xfda5, 0x2000 }, { 0x0700, 0xfda4, 0x0000 }, { 0x0700, 0xfda6, 0x0000 }, { 0x8700, 0xfdab, 0x3000 }, { 0x8700, 0xfda9, 0x2000 }, { 0x0700, 0xfda8, 0x0000 }, { 0x0700, 0xfdaa, 0x0000 }, { 0x8700, 0xfdad, 0x2000 }, { 0x0700, 0xfdac, 0x0000 }, { 0x0700, 0xfdae, 0x0000 }, { 0x8700, 0xfdb7, 0x4000 }, { 0x8700, 0xfdb3, 0x3000 }, { 0x8700, 0xfdb1, 0x2000 }, { 0x0700, 0xfdb0, 0x0000 }, { 0x0700, 0xfdb2, 0x0000 }, { 0x8700, 0xfdb5, 0x2000 }, { 0x0700, 0xfdb4, 0x0000 }, { 0x0700, 0xfdb6, 0x0000 }, { 0x8700, 0xfdbb, 0x3000 }, { 0x8700, 0xfdb9, 0x2000 }, { 0x0700, 0xfdb8, 0x0000 }, { 0x0700, 0xfdba, 0x0000 }, { 0x8700, 0xfdbd, 0x2000 }, { 0x0700, 0xfdbc, 0x0000 }, { 0x0700, 0xfdbe, 0x0000 }, { 0x8700, 0xfdf7, 0x5000 }, { 0x8700, 0xfdc7, 0x4000 }, { 0x8700, 0xfdc3, 0x3000 }, { 0x8700, 0xfdc1, 0x2000 }, { 0x0700, 0xfdc0, 0x0000 }, { 0x0700, 0xfdc2, 0x0000 }, { 0x8700, 0xfdc5, 0x2000 }, { 0x0700, 0xfdc4, 0x0000 }, { 0x0700, 0xfdc6, 0x0000 }, { 0x8700, 0xfdf3, 0x3000 }, { 0x8700, 0xfdf1, 0x2000 }, { 0x0700, 0xfdf0, 0x0000 }, { 0x0700, 0xfdf2, 0x0000 }, { 0x8700, 0xfdf5, 0x2000 }, { 0x0700, 0xfdf4, 0x0000 }, { 0x0700, 0xfdf6, 0x0000 }, { 0x8c00, 0xfe01, 0x4000 }, { 0x8700, 0xfdfb, 0x3000 }, { 0x8700, 0xfdf9, 0x2000 }, { 0x0700, 0xfdf8, 0x0000 }, { 0x0700, 0xfdfa, 0x0000 }, { 0x9a00, 0xfdfd, 0x2000 }, { 0x1700, 0xfdfc, 0x0000 }, { 0x0c00, 0xfe00, 0x0000 }, { 0x8c00, 0xfe05, 0x3000 }, { 0x8c00, 0xfe03, 0x2000 }, { 0x0c00, 0xfe02, 0x0000 }, { 0x0c00, 0xfe04, 0x0000 }, { 0x8c00, 0xfe07, 0x2000 }, { 0x0c00, 0xfe06, 0x0000 }, { 0x0c00, 0xfe08, 0x0000 }, { 0x9900, 0xfe66, 0x7000 }, { 0x9500, 0xfe45, 0x6000 }, { 0x9600, 0xfe35, 0x5000 }, { 0x8c00, 0xfe21, 0x4000 }, { 0x8c00, 0xfe0d, 0x3000 }, { 0x8c00, 0xfe0b, 0x2000 }, { 0x0c00, 0xfe0a, 0x0000 }, { 0x0c00, 0xfe0c, 0x0000 }, { 0x8c00, 0xfe0f, 0x2000 }, { 0x0c00, 0xfe0e, 0x0000 }, { 0x0c00, 0xfe20, 0x0000 }, { 0x9100, 0xfe31, 0x3000 }, { 0x8c00, 0xfe23, 0x2000 }, { 0x0c00, 0xfe22, 0x0000 }, { 0x1500, 0xfe30, 0x0000 }, { 0x9000, 0xfe33, 0x2000 }, { 0x1100, 0xfe32, 0x0000 }, { 0x1000, 0xfe34, 0x0000 }, { 0x9600, 0xfe3d, 0x4000 }, { 0x9600, 0xfe39, 0x3000 }, { 0x9600, 0xfe37, 0x2000 }, { 0x1200, 0xfe36, 0x0000 }, { 0x1200, 0xfe38, 0x0000 }, { 0x9600, 0xfe3b, 0x2000 }, { 0x1200, 0xfe3a, 0x0000 }, { 0x1200, 0xfe3c, 0x0000 }, { 0x9600, 0xfe41, 0x3000 }, { 0x9600, 0xfe3f, 0x2000 }, { 0x1200, 0xfe3e, 0x0000 }, { 0x1200, 0xfe40, 0x0000 }, { 0x9600, 0xfe43, 0x2000 }, { 0x1200, 0xfe42, 0x0000 }, { 0x1200, 0xfe44, 0x0000 }, { 0x9500, 0xfe56, 0x5000 }, { 0x9000, 0xfe4d, 0x4000 }, { 0x9500, 0xfe49, 0x3000 }, { 0x9600, 0xfe47, 0x2000 }, { 0x1500, 0xfe46, 0x0000 }, { 0x1200, 0xfe48, 0x0000 }, { 0x9500, 0xfe4b, 0x2000 }, { 0x1500, 0xfe4a, 0x0000 }, { 0x1500, 0xfe4c, 0x0000 }, { 0x9500, 0xfe51, 0x3000 }, { 0x9000, 0xfe4f, 0x2000 }, { 0x1000, 0xfe4e, 0x0000 }, { 0x1500, 0xfe50, 0x0000 }, { 0x9500, 0xfe54, 0x2000 }, { 0x1500, 0xfe52, 0x0000 }, { 0x1500, 0xfe55, 0x0000 }, { 0x9200, 0xfe5e, 0x4000 }, { 0x9200, 0xfe5a, 0x3000 }, { 0x9100, 0xfe58, 0x2000 }, { 0x1500, 0xfe57, 0x0000 }, { 0x1600, 0xfe59, 0x0000 }, { 0x9200, 0xfe5c, 0x2000 }, { 0x1600, 0xfe5b, 0x0000 }, { 0x1600, 0xfe5d, 0x0000 }, { 0x9900, 0xfe62, 0x3000 }, { 0x9500, 0xfe60, 0x2000 }, { 0x1500, 0xfe5f, 0x0000 }, { 0x1500, 0xfe61, 0x0000 }, { 0x9900, 0xfe64, 0x2000 }, { 0x1100, 0xfe63, 0x0000 }, { 0x1900, 0xfe65, 0x0000 }, { 0x8700, 0xfe8c, 0x6000 }, { 0x8700, 0xfe7c, 0x5000 }, { 0x8700, 0xfe73, 0x4000 }, { 0x9500, 0xfe6b, 0x3000 }, { 0x9700, 0xfe69, 0x2000 }, { 0x1500, 0xfe68, 0x0000 }, { 0x1500, 0xfe6a, 0x0000 }, { 0x8700, 0xfe71, 0x2000 }, { 0x0700, 0xfe70, 0x0000 }, { 0x0700, 0xfe72, 0x0000 }, { 0x8700, 0xfe78, 0x3000 }, { 0x8700, 0xfe76, 0x2000 }, { 0x0700, 0xfe74, 0x0000 }, { 0x0700, 0xfe77, 0x0000 }, { 0x8700, 0xfe7a, 0x2000 }, { 0x0700, 0xfe79, 0x0000 }, { 0x0700, 0xfe7b, 0x0000 }, { 0x8700, 0xfe84, 0x4000 }, { 0x8700, 0xfe80, 0x3000 }, { 0x8700, 0xfe7e, 0x2000 }, { 0x0700, 0xfe7d, 0x0000 }, { 0x0700, 0xfe7f, 0x0000 }, { 0x8700, 0xfe82, 0x2000 }, { 0x0700, 0xfe81, 0x0000 }, { 0x0700, 0xfe83, 0x0000 }, { 0x8700, 0xfe88, 0x3000 }, { 0x8700, 0xfe86, 0x2000 }, { 0x0700, 0xfe85, 0x0000 }, { 0x0700, 0xfe87, 0x0000 }, { 0x8700, 0xfe8a, 0x2000 }, { 0x0700, 0xfe89, 0x0000 }, { 0x0700, 0xfe8b, 0x0000 }, { 0x8700, 0xfe9c, 0x5000 }, { 0x8700, 0xfe94, 0x4000 }, { 0x8700, 0xfe90, 0x3000 }, { 0x8700, 0xfe8e, 0x2000 }, { 0x0700, 0xfe8d, 0x0000 }, { 0x0700, 0xfe8f, 0x0000 }, { 0x8700, 0xfe92, 0x2000 }, { 0x0700, 0xfe91, 0x0000 }, { 0x0700, 0xfe93, 0x0000 }, { 0x8700, 0xfe98, 0x3000 }, { 0x8700, 0xfe96, 0x2000 }, { 0x0700, 0xfe95, 0x0000 }, { 0x0700, 0xfe97, 0x0000 }, { 0x8700, 0xfe9a, 0x2000 }, { 0x0700, 0xfe99, 0x0000 }, { 0x0700, 0xfe9b, 0x0000 }, { 0x8700, 0xfea4, 0x4000 }, { 0x8700, 0xfea0, 0x3000 }, { 0x8700, 0xfe9e, 0x2000 }, { 0x0700, 0xfe9d, 0x0000 }, { 0x0700, 0xfe9f, 0x0000 }, { 0x8700, 0xfea2, 0x2000 }, { 0x0700, 0xfea1, 0x0000 }, { 0x0700, 0xfea3, 0x0000 }, { 0x8700, 0xfea8, 0x3000 }, { 0x8700, 0xfea6, 0x2000 }, { 0x0700, 0xfea5, 0x0000 }, { 0x0700, 0xfea7, 0x0000 }, { 0x8700, 0xfeaa, 0x2000 }, { 0x0700, 0xfea9, 0x0000 }, { 0x0700, 0xfeab, 0x0000 }, { 0x8700, 0xffaf, 0x9000 }, { 0x8900, 0xff2f, 0x8020 }, { 0x8700, 0xfeec, 0x7000 }, { 0x8700, 0xfecc, 0x6000 }, { 0x8700, 0xfebc, 0x5000 }, { 0x8700, 0xfeb4, 0x4000 }, { 0x8700, 0xfeb0, 0x3000 }, { 0x8700, 0xfeae, 0x2000 }, { 0x0700, 0xfead, 0x0000 }, { 0x0700, 0xfeaf, 0x0000 }, { 0x8700, 0xfeb2, 0x2000 }, { 0x0700, 0xfeb1, 0x0000 }, { 0x0700, 0xfeb3, 0x0000 }, { 0x8700, 0xfeb8, 0x3000 }, { 0x8700, 0xfeb6, 0x2000 }, { 0x0700, 0xfeb5, 0x0000 }, { 0x0700, 0xfeb7, 0x0000 }, { 0x8700, 0xfeba, 0x2000 }, { 0x0700, 0xfeb9, 0x0000 }, { 0x0700, 0xfebb, 0x0000 }, { 0x8700, 0xfec4, 0x4000 }, { 0x8700, 0xfec0, 0x3000 }, { 0x8700, 0xfebe, 0x2000 }, { 0x0700, 0xfebd, 0x0000 }, { 0x0700, 0xfebf, 0x0000 }, { 0x8700, 0xfec2, 0x2000 }, { 0x0700, 0xfec1, 0x0000 }, { 0x0700, 0xfec3, 0x0000 }, { 0x8700, 0xfec8, 0x3000 }, { 0x8700, 0xfec6, 0x2000 }, { 0x0700, 0xfec5, 0x0000 }, { 0x0700, 0xfec7, 0x0000 }, { 0x8700, 0xfeca, 0x2000 }, { 0x0700, 0xfec9, 0x0000 }, { 0x0700, 0xfecb, 0x0000 }, { 0x8700, 0xfedc, 0x5000 }, { 0x8700, 0xfed4, 0x4000 }, { 0x8700, 0xfed0, 0x3000 }, { 0x8700, 0xfece, 0x2000 }, { 0x0700, 0xfecd, 0x0000 }, { 0x0700, 0xfecf, 0x0000 }, { 0x8700, 0xfed2, 0x2000 }, { 0x0700, 0xfed1, 0x0000 }, { 0x0700, 0xfed3, 0x0000 }, { 0x8700, 0xfed8, 0x3000 }, { 0x8700, 0xfed6, 0x2000 }, { 0x0700, 0xfed5, 0x0000 }, { 0x0700, 0xfed7, 0x0000 }, { 0x8700, 0xfeda, 0x2000 }, { 0x0700, 0xfed9, 0x0000 }, { 0x0700, 0xfedb, 0x0000 }, { 0x8700, 0xfee4, 0x4000 }, { 0x8700, 0xfee0, 0x3000 }, { 0x8700, 0xfede, 0x2000 }, { 0x0700, 0xfedd, 0x0000 }, { 0x0700, 0xfedf, 0x0000 }, { 0x8700, 0xfee2, 0x2000 }, { 0x0700, 0xfee1, 0x0000 }, { 0x0700, 0xfee3, 0x0000 }, { 0x8700, 0xfee8, 0x3000 }, { 0x8700, 0xfee6, 0x2000 }, { 0x0700, 0xfee5, 0x0000 }, { 0x0700, 0xfee7, 0x0000 }, { 0x8700, 0xfeea, 0x2000 }, { 0x0700, 0xfee9, 0x0000 }, { 0x0700, 0xfeeb, 0x0000 }, { 0x9500, 0xff0f, 0x6000 }, { 0x8700, 0xfefc, 0x5000 }, { 0x8700, 0xfef4, 0x4000 }, { 0x8700, 0xfef0, 0x3000 }, { 0x8700, 0xfeee, 0x2000 }, { 0x0700, 0xfeed, 0x0000 }, { 0x0700, 0xfeef, 0x0000 }, { 0x8700, 0xfef2, 0x2000 }, { 0x0700, 0xfef1, 0x0000 }, { 0x0700, 0xfef3, 0x0000 }, { 0x8700, 0xfef8, 0x3000 }, { 0x8700, 0xfef6, 0x2000 }, { 0x0700, 0xfef5, 0x0000 }, { 0x0700, 0xfef7, 0x0000 }, { 0x8700, 0xfefa, 0x2000 }, { 0x0700, 0xfef9, 0x0000 }, { 0x0700, 0xfefb, 0x0000 }, { 0x9500, 0xff07, 0x4000 }, { 0x9500, 0xff03, 0x3000 }, { 0x9500, 0xff01, 0x2000 }, { 0x0100, 0xfeff, 0x0000 }, { 0x1500, 0xff02, 0x0000 }, { 0x9500, 0xff05, 0x2000 }, { 0x1700, 0xff04, 0x0000 }, { 0x1500, 0xff06, 0x0000 }, { 0x9900, 0xff0b, 0x3000 }, { 0x9200, 0xff09, 0x2000 }, { 0x1600, 0xff08, 0x0000 }, { 0x1500, 0xff0a, 0x0000 }, { 0x9100, 0xff0d, 0x2000 }, { 0x1500, 0xff0c, 0x0000 }, { 0x1500, 0xff0e, 0x0000 }, { 0x9500, 0xff1f, 0x5000 }, { 0x8d00, 0xff17, 0x4000 }, { 0x8d00, 0xff13, 0x3000 }, { 0x8d00, 0xff11, 0x2000 }, { 0x0d00, 0xff10, 0x0000 }, { 0x0d00, 0xff12, 0x0000 }, { 0x8d00, 0xff15, 0x2000 }, { 0x0d00, 0xff14, 0x0000 }, { 0x0d00, 0xff16, 0x0000 }, { 0x9500, 0xff1b, 0x3000 }, { 0x8d00, 0xff19, 0x2000 }, { 0x0d00, 0xff18, 0x0000 }, { 0x1500, 0xff1a, 0x0000 }, { 0x9900, 0xff1d, 0x2000 }, { 0x1900, 0xff1c, 0x0000 }, { 0x1900, 0xff1e, 0x0000 }, { 0x8900, 0xff27, 0x4020 }, { 0x8900, 0xff23, 0x3020 }, { 0x8900, 0xff21, 0x2020 }, { 0x1500, 0xff20, 0x0000 }, { 0x0900, 0xff22, 0x0020 }, { 0x8900, 0xff25, 0x2020 }, { 0x0900, 0xff24, 0x0020 }, { 0x0900, 0xff26, 0x0020 }, { 0x8900, 0xff2b, 0x3020 }, { 0x8900, 0xff29, 0x2020 }, { 0x0900, 0xff28, 0x0020 }, { 0x0900, 0xff2a, 0x0020 }, { 0x8900, 0xff2d, 0x2020 }, { 0x0900, 0xff2c, 0x0020 }, { 0x0900, 0xff2e, 0x0020 }, { 0x8700, 0xff6f, 0x7000 }, { 0x8500, 0xff4f, 0x6fe0 }, { 0x9000, 0xff3f, 0x5000 }, { 0x8900, 0xff37, 0x4020 }, { 0x8900, 0xff33, 0x3020 }, { 0x8900, 0xff31, 0x2020 }, { 0x0900, 0xff30, 0x0020 }, { 0x0900, 0xff32, 0x0020 }, { 0x8900, 0xff35, 0x2020 }, { 0x0900, 0xff34, 0x0020 }, { 0x0900, 0xff36, 0x0020 }, { 0x9600, 0xff3b, 0x3000 }, { 0x8900, 0xff39, 0x2020 }, { 0x0900, 0xff38, 0x0020 }, { 0x0900, 0xff3a, 0x0020 }, { 0x9200, 0xff3d, 0x2000 }, { 0x1500, 0xff3c, 0x0000 }, { 0x1800, 0xff3e, 0x0000 }, { 0x8500, 0xff47, 0x4fe0 }, { 0x8500, 0xff43, 0x3fe0 }, { 0x8500, 0xff41, 0x2fe0 }, { 0x1800, 0xff40, 0x0000 }, { 0x0500, 0xff42, 0x0fe0 }, { 0x8500, 0xff45, 0x2fe0 }, { 0x0500, 0xff44, 0x0fe0 }, { 0x0500, 0xff46, 0x0fe0 }, { 0x8500, 0xff4b, 0x3fe0 }, { 0x8500, 0xff49, 0x2fe0 }, { 0x0500, 0xff48, 0x0fe0 }, { 0x0500, 0xff4a, 0x0fe0 }, { 0x8500, 0xff4d, 0x2fe0 }, { 0x0500, 0xff4c, 0x0fe0 }, { 0x0500, 0xff4e, 0x0fe0 }, { 0x9600, 0xff5f, 0x5000 }, { 0x8500, 0xff57, 0x4fe0 }, { 0x8500, 0xff53, 0x3fe0 }, { 0x8500, 0xff51, 0x2fe0 }, { 0x0500, 0xff50, 0x0fe0 }, { 0x0500, 0xff52, 0x0fe0 }, { 0x8500, 0xff55, 0x2fe0 }, { 0x0500, 0xff54, 0x0fe0 }, { 0x0500, 0xff56, 0x0fe0 }, { 0x9600, 0xff5b, 0x3000 }, { 0x8500, 0xff59, 0x2fe0 }, { 0x0500, 0xff58, 0x0fe0 }, { 0x0500, 0xff5a, 0x0fe0 }, { 0x9200, 0xff5d, 0x2000 }, { 0x1900, 0xff5c, 0x0000 }, { 0x1900, 0xff5e, 0x0000 }, { 0x8700, 0xff67, 0x4000 }, { 0x9200, 0xff63, 0x3000 }, { 0x9500, 0xff61, 0x2000 }, { 0x1200, 0xff60, 0x0000 }, { 0x1600, 0xff62, 0x0000 }, { 0x9000, 0xff65, 0x2000 }, { 0x1500, 0xff64, 0x0000 }, { 0x0700, 0xff66, 0x0000 }, { 0x8700, 0xff6b, 0x3000 }, { 0x8700, 0xff69, 0x2000 }, { 0x0700, 0xff68, 0x0000 }, { 0x0700, 0xff6a, 0x0000 }, { 0x8700, 0xff6d, 0x2000 }, { 0x0700, 0xff6c, 0x0000 }, { 0x0700, 0xff6e, 0x0000 }, { 0x8700, 0xff8f, 0x6000 }, { 0x8700, 0xff7f, 0x5000 }, { 0x8700, 0xff77, 0x4000 }, { 0x8700, 0xff73, 0x3000 }, { 0x8700, 0xff71, 0x2000 }, { 0x0600, 0xff70, 0x0000 }, { 0x0700, 0xff72, 0x0000 }, { 0x8700, 0xff75, 0x2000 }, { 0x0700, 0xff74, 0x0000 }, { 0x0700, 0xff76, 0x0000 }, { 0x8700, 0xff7b, 0x3000 }, { 0x8700, 0xff79, 0x2000 }, { 0x0700, 0xff78, 0x0000 }, { 0x0700, 0xff7a, 0x0000 }, { 0x8700, 0xff7d, 0x2000 }, { 0x0700, 0xff7c, 0x0000 }, { 0x0700, 0xff7e, 0x0000 }, { 0x8700, 0xff87, 0x4000 }, { 0x8700, 0xff83, 0x3000 }, { 0x8700, 0xff81, 0x2000 }, { 0x0700, 0xff80, 0x0000 }, { 0x0700, 0xff82, 0x0000 }, { 0x8700, 0xff85, 0x2000 }, { 0x0700, 0xff84, 0x0000 }, { 0x0700, 0xff86, 0x0000 }, { 0x8700, 0xff8b, 0x3000 }, { 0x8700, 0xff89, 0x2000 }, { 0x0700, 0xff88, 0x0000 }, { 0x0700, 0xff8a, 0x0000 }, { 0x8700, 0xff8d, 0x2000 }, { 0x0700, 0xff8c, 0x0000 }, { 0x0700, 0xff8e, 0x0000 }, { 0x8600, 0xff9f, 0x5000 }, { 0x8700, 0xff97, 0x4000 }, { 0x8700, 0xff93, 0x3000 }, { 0x8700, 0xff91, 0x2000 }, { 0x0700, 0xff90, 0x0000 }, { 0x0700, 0xff92, 0x0000 }, { 0x8700, 0xff95, 0x2000 }, { 0x0700, 0xff94, 0x0000 }, { 0x0700, 0xff96, 0x0000 }, { 0x8700, 0xff9b, 0x3000 }, { 0x8700, 0xff99, 0x2000 }, { 0x0700, 0xff98, 0x0000 }, { 0x0700, 0xff9a, 0x0000 }, { 0x8700, 0xff9d, 0x2000 }, { 0x0700, 0xff9c, 0x0000 }, { 0x0600, 0xff9e, 0x0000 }, { 0x8700, 0xffa7, 0x4000 }, { 0x8700, 0xffa3, 0x3000 }, { 0x8700, 0xffa1, 0x2000 }, { 0x0700, 0xffa0, 0x0000 }, { 0x0700, 0xffa2, 0x0000 }, { 0x8700, 0xffa5, 0x2000 }, { 0x0700, 0xffa4, 0x0000 }, { 0x0700, 0xffa6, 0x0000 }, { 0x8700, 0xffab, 0x3000 }, { 0x8700, 0xffa9, 0x2000 }, { 0x0700, 0xffa8, 0x0000 }, { 0x0700, 0xffaa, 0x0000 }, { 0x8700, 0xffad, 0x2000 }, { 0x0700, 0xffac, 0x0000 }, { 0x0700, 0xffae, 0x0000 }, { 0x8701, 0x004c, 0x8000 }, { 0x8701, 0x0008, 0x7000 }, { 0x8700, 0xffd6, 0x6000 }, { 0x8700, 0xffc2, 0x5000 }, { 0x8700, 0xffb7, 0x4000 }, { 0x8700, 0xffb3, 0x3000 }, { 0x8700, 0xffb1, 0x2000 }, { 0x0700, 0xffb0, 0x0000 }, { 0x0700, 0xffb2, 0x0000 }, { 0x8700, 0xffb5, 0x2000 }, { 0x0700, 0xffb4, 0x0000 }, { 0x0700, 0xffb6, 0x0000 }, { 0x8700, 0xffbb, 0x3000 }, { 0x8700, 0xffb9, 0x2000 }, { 0x0700, 0xffb8, 0x0000 }, { 0x0700, 0xffba, 0x0000 }, { 0x8700, 0xffbd, 0x2000 }, { 0x0700, 0xffbc, 0x0000 }, { 0x0700, 0xffbe, 0x0000 }, { 0x8700, 0xffcc, 0x4000 }, { 0x8700, 0xffc6, 0x3000 }, { 0x8700, 0xffc4, 0x2000 }, { 0x0700, 0xffc3, 0x0000 }, { 0x0700, 0xffc5, 0x0000 }, { 0x8700, 0xffca, 0x2000 }, { 0x0700, 0xffc7, 0x0000 }, { 0x0700, 0xffcb, 0x0000 }, { 0x8700, 0xffd2, 0x3000 }, { 0x8700, 0xffce, 0x2000 }, { 0x0700, 0xffcd, 0x0000 }, { 0x0700, 0xffcf, 0x0000 }, { 0x8700, 0xffd4, 0x2000 }, { 0x0700, 0xffd3, 0x0000 }, { 0x0700, 0xffd5, 0x0000 }, { 0x9900, 0xffec, 0x5000 }, { 0x9800, 0xffe3, 0x4000 }, { 0x8700, 0xffdc, 0x3000 }, { 0x8700, 0xffda, 0x2000 }, { 0x0700, 0xffd7, 0x0000 }, { 0x0700, 0xffdb, 0x0000 }, { 0x9700, 0xffe1, 0x2000 }, { 0x1700, 0xffe0, 0x0000 }, { 0x1900, 0xffe2, 0x0000 }, { 0x9a00, 0xffe8, 0x3000 }, { 0x9700, 0xffe5, 0x2000 }, { 0x1a00, 0xffe4, 0x0000 }, { 0x1700, 0xffe6, 0x0000 }, { 0x9900, 0xffea, 0x2000 }, { 0x1900, 0xffe9, 0x0000 }, { 0x1900, 0xffeb, 0x0000 }, { 0x8701, 0x0000, 0x4000 }, { 0x8100, 0xfffa, 0x3000 }, { 0x9a00, 0xffee, 0x2000 }, { 0x1a00, 0xffed, 0x0000 }, { 0x0100, 0xfff9, 0x0000 }, { 0x9a00, 0xfffc, 0x2000 }, { 0x0100, 0xfffb, 0x0000 }, { 0x1a00, 0xfffd, 0x0000 }, { 0x8701, 0x0004, 0x3000 }, { 0x8701, 0x0002, 0x2000 }, { 0x0701, 0x0001, 0x0000 }, { 0x0701, 0x0003, 0x0000 }, { 0x8701, 0x0006, 0x2000 }, { 0x0701, 0x0005, 0x0000 }, { 0x0701, 0x0007, 0x0000 }, { 0x8701, 0x002a, 0x6000 }, { 0x8701, 0x0019, 0x5000 }, { 0x8701, 0x0011, 0x4000 }, { 0x8701, 0x000d, 0x3000 }, { 0x8701, 0x000a, 0x2000 }, { 0x0701, 0x0009, 0x0000 }, { 0x0701, 0x000b, 0x0000 }, { 0x8701, 0x000f, 0x2000 }, { 0x0701, 0x000e, 0x0000 }, { 0x0701, 0x0010, 0x0000 }, { 0x8701, 0x0015, 0x3000 }, { 0x8701, 0x0013, 0x2000 }, { 0x0701, 0x0012, 0x0000 }, { 0x0701, 0x0014, 0x0000 }, { 0x8701, 0x0017, 0x2000 }, { 0x0701, 0x0016, 0x0000 }, { 0x0701, 0x0018, 0x0000 }, { 0x8701, 0x0021, 0x4000 }, { 0x8701, 0x001d, 0x3000 }, { 0x8701, 0x001b, 0x2000 }, { 0x0701, 0x001a, 0x0000 }, { 0x0701, 0x001c, 0x0000 }, { 0x8701, 0x001f, 0x2000 }, { 0x0701, 0x001e, 0x0000 }, { 0x0701, 0x0020, 0x0000 }, { 0x8701, 0x0025, 0x3000 }, { 0x8701, 0x0023, 0x2000 }, { 0x0701, 0x0022, 0x0000 }, { 0x0701, 0x0024, 0x0000 }, { 0x8701, 0x0028, 0x2000 }, { 0x0701, 0x0026, 0x0000 }, { 0x0701, 0x0029, 0x0000 }, { 0x8701, 0x003a, 0x5000 }, { 0x8701, 0x0032, 0x4000 }, { 0x8701, 0x002e, 0x3000 }, { 0x8701, 0x002c, 0x2000 }, { 0x0701, 0x002b, 0x0000 }, { 0x0701, 0x002d, 0x0000 }, { 0x8701, 0x0030, 0x2000 }, { 0x0701, 0x002f, 0x0000 }, { 0x0701, 0x0031, 0x0000 }, { 0x8701, 0x0036, 0x3000 }, { 0x8701, 0x0034, 0x2000 }, { 0x0701, 0x0033, 0x0000 }, { 0x0701, 0x0035, 0x0000 }, { 0x8701, 0x0038, 0x2000 }, { 0x0701, 0x0037, 0x0000 }, { 0x0701, 0x0039, 0x0000 }, { 0x8701, 0x0044, 0x4000 }, { 0x8701, 0x0040, 0x3000 }, { 0x8701, 0x003d, 0x2000 }, { 0x0701, 0x003c, 0x0000 }, { 0x0701, 0x003f, 0x0000 }, { 0x8701, 0x0042, 0x2000 }, { 0x0701, 0x0041, 0x0000 }, { 0x0701, 0x0043, 0x0000 }, { 0x8701, 0x0048, 0x3000 }, { 0x8701, 0x0046, 0x2000 }, { 0x0701, 0x0045, 0x0000 }, { 0x0701, 0x0047, 0x0000 }, { 0x8701, 0x004a, 0x2000 }, { 0x0701, 0x0049, 0x0000 }, { 0x0701, 0x004b, 0x0000 }, { 0x8701, 0x00b0, 0x7000 }, { 0x8701, 0x0090, 0x6000 }, { 0x8701, 0x0080, 0x5000 }, { 0x8701, 0x0056, 0x4000 }, { 0x8701, 0x0052, 0x3000 }, { 0x8701, 0x0050, 0x2000 }, { 0x0701, 0x004d, 0x0000 }, { 0x0701, 0x0051, 0x0000 }, { 0x8701, 0x0054, 0x2000 }, { 0x0701, 0x0053, 0x0000 }, { 0x0701, 0x0055, 0x0000 }, { 0x8701, 0x005a, 0x3000 }, { 0x8701, 0x0058, 0x2000 }, { 0x0701, 0x0057, 0x0000 }, { 0x0701, 0x0059, 0x0000 }, { 0x8701, 0x005c, 0x2000 }, { 0x0701, 0x005b, 0x0000 }, { 0x0701, 0x005d, 0x0000 }, { 0x8701, 0x0088, 0x4000 }, { 0x8701, 0x0084, 0x3000 }, { 0x8701, 0x0082, 0x2000 }, { 0x0701, 0x0081, 0x0000 }, { 0x0701, 0x0083, 0x0000 }, { 0x8701, 0x0086, 0x2000 }, { 0x0701, 0x0085, 0x0000 }, { 0x0701, 0x0087, 0x0000 }, { 0x8701, 0x008c, 0x3000 }, { 0x8701, 0x008a, 0x2000 }, { 0x0701, 0x0089, 0x0000 }, { 0x0701, 0x008b, 0x0000 }, { 0x8701, 0x008e, 0x2000 }, { 0x0701, 0x008d, 0x0000 }, { 0x0701, 0x008f, 0x0000 }, { 0x8701, 0x00a0, 0x5000 }, { 0x8701, 0x0098, 0x4000 }, { 0x8701, 0x0094, 0x3000 }, { 0x8701, 0x0092, 0x2000 }, { 0x0701, 0x0091, 0x0000 }, { 0x0701, 0x0093, 0x0000 }, { 0x8701, 0x0096, 0x2000 }, { 0x0701, 0x0095, 0x0000 }, { 0x0701, 0x0097, 0x0000 }, { 0x8701, 0x009c, 0x3000 }, { 0x8701, 0x009a, 0x2000 }, { 0x0701, 0x0099, 0x0000 }, { 0x0701, 0x009b, 0x0000 }, { 0x8701, 0x009e, 0x2000 }, { 0x0701, 0x009d, 0x0000 }, { 0x0701, 0x009f, 0x0000 }, { 0x8701, 0x00a8, 0x4000 }, { 0x8701, 0x00a4, 0x3000 }, { 0x8701, 0x00a2, 0x2000 }, { 0x0701, 0x00a1, 0x0000 }, { 0x0701, 0x00a3, 0x0000 }, { 0x8701, 0x00a6, 0x2000 }, { 0x0701, 0x00a5, 0x0000 }, { 0x0701, 0x00a7, 0x0000 }, { 0x8701, 0x00ac, 0x3000 }, { 0x8701, 0x00aa, 0x2000 }, { 0x0701, 0x00a9, 0x0000 }, { 0x0701, 0x00ab, 0x0000 }, { 0x8701, 0x00ae, 0x2000 }, { 0x0701, 0x00ad, 0x0000 }, { 0x0701, 0x00af, 0x0000 }, { 0x8701, 0x00d0, 0x6000 }, { 0x8701, 0x00c0, 0x5000 }, { 0x8701, 0x00b8, 0x4000 }, { 0x8701, 0x00b4, 0x3000 }, { 0x8701, 0x00b2, 0x2000 }, { 0x0701, 0x00b1, 0x0000 }, { 0x0701, 0x00b3, 0x0000 }, { 0x8701, 0x00b6, 0x2000 }, { 0x0701, 0x00b5, 0x0000 }, { 0x0701, 0x00b7, 0x0000 }, { 0x8701, 0x00bc, 0x3000 }, { 0x8701, 0x00ba, 0x2000 }, { 0x0701, 0x00b9, 0x0000 }, { 0x0701, 0x00bb, 0x0000 }, { 0x8701, 0x00be, 0x2000 }, { 0x0701, 0x00bd, 0x0000 }, { 0x0701, 0x00bf, 0x0000 }, { 0x8701, 0x00c8, 0x4000 }, { 0x8701, 0x00c4, 0x3000 }, { 0x8701, 0x00c2, 0x2000 }, { 0x0701, 0x00c1, 0x0000 }, { 0x0701, 0x00c3, 0x0000 }, { 0x8701, 0x00c6, 0x2000 }, { 0x0701, 0x00c5, 0x0000 }, { 0x0701, 0x00c7, 0x0000 }, { 0x8701, 0x00cc, 0x3000 }, { 0x8701, 0x00ca, 0x2000 }, { 0x0701, 0x00c9, 0x0000 }, { 0x0701, 0x00cb, 0x0000 }, { 0x8701, 0x00ce, 0x2000 }, { 0x0701, 0x00cd, 0x0000 }, { 0x0701, 0x00cf, 0x0000 }, { 0x8701, 0x00e0, 0x5000 }, { 0x8701, 0x00d8, 0x4000 }, { 0x8701, 0x00d4, 0x3000 }, { 0x8701, 0x00d2, 0x2000 }, { 0x0701, 0x00d1, 0x0000 }, { 0x0701, 0x00d3, 0x0000 }, { 0x8701, 0x00d6, 0x2000 }, { 0x0701, 0x00d5, 0x0000 }, { 0x0701, 0x00d7, 0x0000 }, { 0x8701, 0x00dc, 0x3000 }, { 0x8701, 0x00da, 0x2000 }, { 0x0701, 0x00d9, 0x0000 }, { 0x0701, 0x00db, 0x0000 }, { 0x8701, 0x00de, 0x2000 }, { 0x0701, 0x00dd, 0x0000 }, { 0x0701, 0x00df, 0x0000 }, { 0x8701, 0x00e8, 0x4000 }, { 0x8701, 0x00e4, 0x3000 }, { 0x8701, 0x00e2, 0x2000 }, { 0x0701, 0x00e1, 0x0000 }, { 0x0701, 0x00e3, 0x0000 }, { 0x8701, 0x00e6, 0x2000 }, { 0x0701, 0x00e5, 0x0000 }, { 0x0701, 0x00e7, 0x0000 }, { 0x8701, 0x00ec, 0x3000 }, { 0x8701, 0x00ea, 0x2000 }, { 0x0701, 0x00e9, 0x0000 }, { 0x0701, 0x00eb, 0x0000 }, { 0x8701, 0x00ee, 0x2000 }, { 0x0701, 0x00ed, 0x0000 }, { 0x0701, 0x00ef, 0x0000 }, { 0x8501, 0xd459, 0xb000 }, { 0x9a01, 0xd080, 0xa000 }, { 0x8701, 0x045f, 0x9000 }, { 0x8701, 0x0349, 0x8000 }, { 0x9a01, 0x013c, 0x7000 }, { 0x8f01, 0x0119, 0x6000 }, { 0x8f01, 0x0109, 0x5000 }, { 0x8701, 0x00f8, 0x4000 }, { 0x8701, 0x00f4, 0x3000 }, { 0x8701, 0x00f2, 0x2000 }, { 0x0701, 0x00f1, 0x0000 }, { 0x0701, 0x00f3, 0x0000 }, { 0x8701, 0x00f6, 0x2000 }, { 0x0701, 0x00f5, 0x0000 }, { 0x0701, 0x00f7, 0x0000 }, { 0x9501, 0x0101, 0x3000 }, { 0x8701, 0x00fa, 0x2000 }, { 0x0701, 0x00f9, 0x0000 }, { 0x1501, 0x0100, 0x0000 }, { 0x8f01, 0x0107, 0x2000 }, { 0x1a01, 0x0102, 0x0000 }, { 0x0f01, 0x0108, 0x0000 }, { 0x8f01, 0x0111, 0x4000 }, { 0x8f01, 0x010d, 0x3000 }, { 0x8f01, 0x010b, 0x2000 }, { 0x0f01, 0x010a, 0x0000 }, { 0x0f01, 0x010c, 0x0000 }, { 0x8f01, 0x010f, 0x2000 }, { 0x0f01, 0x010e, 0x0000 }, { 0x0f01, 0x0110, 0x0000 }, { 0x8f01, 0x0115, 0x3000 }, { 0x8f01, 0x0113, 0x2000 }, { 0x0f01, 0x0112, 0x0000 }, { 0x0f01, 0x0114, 0x0000 }, { 0x8f01, 0x0117, 0x2000 }, { 0x0f01, 0x0116, 0x0000 }, { 0x0f01, 0x0118, 0x0000 }, { 0x8f01, 0x0129, 0x5000 }, { 0x8f01, 0x0121, 0x4000 }, { 0x8f01, 0x011d, 0x3000 }, { 0x8f01, 0x011b, 0x2000 }, { 0x0f01, 0x011a, 0x0000 }, { 0x0f01, 0x011c, 0x0000 }, { 0x8f01, 0x011f, 0x2000 }, { 0x0f01, 0x011e, 0x0000 }, { 0x0f01, 0x0120, 0x0000 }, { 0x8f01, 0x0125, 0x3000 }, { 0x8f01, 0x0123, 0x2000 }, { 0x0f01, 0x0122, 0x0000 }, { 0x0f01, 0x0124, 0x0000 }, { 0x8f01, 0x0127, 0x2000 }, { 0x0f01, 0x0126, 0x0000 }, { 0x0f01, 0x0128, 0x0000 }, { 0x8f01, 0x0131, 0x4000 }, { 0x8f01, 0x012d, 0x3000 }, { 0x8f01, 0x012b, 0x2000 }, { 0x0f01, 0x012a, 0x0000 }, { 0x0f01, 0x012c, 0x0000 }, { 0x8f01, 0x012f, 0x2000 }, { 0x0f01, 0x012e, 0x0000 }, { 0x0f01, 0x0130, 0x0000 }, { 0x9a01, 0x0138, 0x3000 }, { 0x8f01, 0x0133, 0x2000 }, { 0x0f01, 0x0132, 0x0000 }, { 0x1a01, 0x0137, 0x0000 }, { 0x9a01, 0x013a, 0x2000 }, { 0x1a01, 0x0139, 0x0000 }, { 0x1a01, 0x013b, 0x0000 }, { 0x8701, 0x031c, 0x6000 }, { 0x8701, 0x030c, 0x5000 }, { 0x8701, 0x0304, 0x4000 }, { 0x8701, 0x0300, 0x3000 }, { 0x9a01, 0x013e, 0x2000 }, { 0x1a01, 0x013d, 0x0000 }, { 0x1a01, 0x013f, 0x0000 }, { 0x8701, 0x0302, 0x2000 }, { 0x0701, 0x0301, 0x0000 }, { 0x0701, 0x0303, 0x0000 }, { 0x8701, 0x0308, 0x3000 }, { 0x8701, 0x0306, 0x2000 }, { 0x0701, 0x0305, 0x0000 }, { 0x0701, 0x0307, 0x0000 }, { 0x8701, 0x030a, 0x2000 }, { 0x0701, 0x0309, 0x0000 }, { 0x0701, 0x030b, 0x0000 }, { 0x8701, 0x0314, 0x4000 }, { 0x8701, 0x0310, 0x3000 }, { 0x8701, 0x030e, 0x2000 }, { 0x0701, 0x030d, 0x0000 }, { 0x0701, 0x030f, 0x0000 }, { 0x8701, 0x0312, 0x2000 }, { 0x0701, 0x0311, 0x0000 }, { 0x0701, 0x0313, 0x0000 }, { 0x8701, 0x0318, 0x3000 }, { 0x8701, 0x0316, 0x2000 }, { 0x0701, 0x0315, 0x0000 }, { 0x0701, 0x0317, 0x0000 }, { 0x8701, 0x031a, 0x2000 }, { 0x0701, 0x0319, 0x0000 }, { 0x0701, 0x031b, 0x0000 }, { 0x8701, 0x0339, 0x5000 }, { 0x8701, 0x0331, 0x4000 }, { 0x8f01, 0x0321, 0x3000 }, { 0x8701, 0x031e, 0x2000 }, { 0x0701, 0x031d, 0x0000 }, { 0x0f01, 0x0320, 0x0000 }, { 0x8f01, 0x0323, 0x2000 }, { 0x0f01, 0x0322, 0x0000 }, { 0x0701, 0x0330, 0x0000 }, { 0x8701, 0x0335, 0x3000 }, { 0x8701, 0x0333, 0x2000 }, { 0x0701, 0x0332, 0x0000 }, { 0x0701, 0x0334, 0x0000 }, { 0x8701, 0x0337, 0x2000 }, { 0x0701, 0x0336, 0x0000 }, { 0x0701, 0x0338, 0x0000 }, { 0x8701, 0x0341, 0x4000 }, { 0x8701, 0x033d, 0x3000 }, { 0x8701, 0x033b, 0x2000 }, { 0x0701, 0x033a, 0x0000 }, { 0x0701, 0x033c, 0x0000 }, { 0x8701, 0x033f, 0x2000 }, { 0x0701, 0x033e, 0x0000 }, { 0x0701, 0x0340, 0x0000 }, { 0x8701, 0x0345, 0x3000 }, { 0x8701, 0x0343, 0x2000 }, { 0x0701, 0x0342, 0x0000 }, { 0x0701, 0x0344, 0x0000 }, { 0x8701, 0x0347, 0x2000 }, { 0x0701, 0x0346, 0x0000 }, { 0x0701, 0x0348, 0x0000 }, { 0x8901, 0x041f, 0x7028 }, { 0x9501, 0x039f, 0x6000 }, { 0x8701, 0x038e, 0x5000 }, { 0x8701, 0x0386, 0x4000 }, { 0x8701, 0x0382, 0x3000 }, { 0x8701, 0x0380, 0x2000 }, { 0x0e01, 0x034a, 0x0000 }, { 0x0701, 0x0381, 0x0000 }, { 0x8701, 0x0384, 0x2000 }, { 0x0701, 0x0383, 0x0000 }, { 0x0701, 0x0385, 0x0000 }, { 0x8701, 0x038a, 0x3000 }, { 0x8701, 0x0388, 0x2000 }, { 0x0701, 0x0387, 0x0000 }, { 0x0701, 0x0389, 0x0000 }, { 0x8701, 0x038c, 0x2000 }, { 0x0701, 0x038b, 0x0000 }, { 0x0701, 0x038d, 0x0000 }, { 0x8701, 0x0396, 0x4000 }, { 0x8701, 0x0392, 0x3000 }, { 0x8701, 0x0390, 0x2000 }, { 0x0701, 0x038f, 0x0000 }, { 0x0701, 0x0391, 0x0000 }, { 0x8701, 0x0394, 0x2000 }, { 0x0701, 0x0393, 0x0000 }, { 0x0701, 0x0395, 0x0000 }, { 0x8701, 0x039a, 0x3000 }, { 0x8701, 0x0398, 0x2000 }, { 0x0701, 0x0397, 0x0000 }, { 0x0701, 0x0399, 0x0000 }, { 0x8701, 0x039c, 0x2000 }, { 0x0701, 0x039b, 0x0000 }, { 0x0701, 0x039d, 0x0000 }, { 0x8901, 0x040f, 0x5028 }, { 0x8901, 0x0407, 0x4028 }, { 0x8901, 0x0403, 0x3028 }, { 0x8901, 0x0401, 0x2028 }, { 0x0901, 0x0400, 0x0028 }, { 0x0901, 0x0402, 0x0028 }, { 0x8901, 0x0405, 0x2028 }, { 0x0901, 0x0404, 0x0028 }, { 0x0901, 0x0406, 0x0028 }, { 0x8901, 0x040b, 0x3028 }, { 0x8901, 0x0409, 0x2028 }, { 0x0901, 0x0408, 0x0028 }, { 0x0901, 0x040a, 0x0028 }, { 0x8901, 0x040d, 0x2028 }, { 0x0901, 0x040c, 0x0028 }, { 0x0901, 0x040e, 0x0028 }, { 0x8901, 0x0417, 0x4028 }, { 0x8901, 0x0413, 0x3028 }, { 0x8901, 0x0411, 0x2028 }, { 0x0901, 0x0410, 0x0028 }, { 0x0901, 0x0412, 0x0028 }, { 0x8901, 0x0415, 0x2028 }, { 0x0901, 0x0414, 0x0028 }, { 0x0901, 0x0416, 0x0028 }, { 0x8901, 0x041b, 0x3028 }, { 0x8901, 0x0419, 0x2028 }, { 0x0901, 0x0418, 0x0028 }, { 0x0901, 0x041a, 0x0028 }, { 0x8901, 0x041d, 0x2028 }, { 0x0901, 0x041c, 0x0028 }, { 0x0901, 0x041e, 0x0028 }, { 0x8501, 0x043f, 0x6fd8 }, { 0x8501, 0x042f, 0x5fd8 }, { 0x8901, 0x0427, 0x4028 }, { 0x8901, 0x0423, 0x3028 }, { 0x8901, 0x0421, 0x2028 }, { 0x0901, 0x0420, 0x0028 }, { 0x0901, 0x0422, 0x0028 }, { 0x8901, 0x0425, 0x2028 }, { 0x0901, 0x0424, 0x0028 }, { 0x0901, 0x0426, 0x0028 }, { 0x8501, 0x042b, 0x3fd8 }, { 0x8501, 0x0429, 0x2fd8 }, { 0x0501, 0x0428, 0x0fd8 }, { 0x0501, 0x042a, 0x0fd8 }, { 0x8501, 0x042d, 0x2fd8 }, { 0x0501, 0x042c, 0x0fd8 }, { 0x0501, 0x042e, 0x0fd8 }, { 0x8501, 0x0437, 0x4fd8 }, { 0x8501, 0x0433, 0x3fd8 }, { 0x8501, 0x0431, 0x2fd8 }, { 0x0501, 0x0430, 0x0fd8 }, { 0x0501, 0x0432, 0x0fd8 }, { 0x8501, 0x0435, 0x2fd8 }, { 0x0501, 0x0434, 0x0fd8 }, { 0x0501, 0x0436, 0x0fd8 }, { 0x8501, 0x043b, 0x3fd8 }, { 0x8501, 0x0439, 0x2fd8 }, { 0x0501, 0x0438, 0x0fd8 }, { 0x0501, 0x043a, 0x0fd8 }, { 0x8501, 0x043d, 0x2fd8 }, { 0x0501, 0x043c, 0x0fd8 }, { 0x0501, 0x043e, 0x0fd8 }, { 0x8501, 0x044f, 0x5fd8 }, { 0x8501, 0x0447, 0x4fd8 }, { 0x8501, 0x0443, 0x3fd8 }, { 0x8501, 0x0441, 0x2fd8 }, { 0x0501, 0x0440, 0x0fd8 }, { 0x0501, 0x0442, 0x0fd8 }, { 0x8501, 0x0445, 0x2fd8 }, { 0x0501, 0x0444, 0x0fd8 }, { 0x0501, 0x0446, 0x0fd8 }, { 0x8501, 0x044b, 0x3fd8 }, { 0x8501, 0x0449, 0x2fd8 }, { 0x0501, 0x0448, 0x0fd8 }, { 0x0501, 0x044a, 0x0fd8 }, { 0x8501, 0x044d, 0x2fd8 }, { 0x0501, 0x044c, 0x0fd8 }, { 0x0501, 0x044e, 0x0fd8 }, { 0x8701, 0x0457, 0x4000 }, { 0x8701, 0x0453, 0x3000 }, { 0x8701, 0x0451, 0x2000 }, { 0x0701, 0x0450, 0x0000 }, { 0x0701, 0x0452, 0x0000 }, { 0x8701, 0x0455, 0x2000 }, { 0x0701, 0x0454, 0x0000 }, { 0x0701, 0x0456, 0x0000 }, { 0x8701, 0x045b, 0x3000 }, { 0x8701, 0x0459, 0x2000 }, { 0x0701, 0x0458, 0x0000 }, { 0x0701, 0x045a, 0x0000 }, { 0x8701, 0x045d, 0x2000 }, { 0x0701, 0x045c, 0x0000 }, { 0x0701, 0x045e, 0x0000 }, { 0x9a01, 0xd000, 0x8000 }, { 0x8d01, 0x04a1, 0x7000 }, { 0x8701, 0x047f, 0x6000 }, { 0x8701, 0x046f, 0x5000 }, { 0x8701, 0x0467, 0x4000 }, { 0x8701, 0x0463, 0x3000 }, { 0x8701, 0x0461, 0x2000 }, { 0x0701, 0x0460, 0x0000 }, { 0x0701, 0x0462, 0x0000 }, { 0x8701, 0x0465, 0x2000 }, { 0x0701, 0x0464, 0x0000 }, { 0x0701, 0x0466, 0x0000 }, { 0x8701, 0x046b, 0x3000 }, { 0x8701, 0x0469, 0x2000 }, { 0x0701, 0x0468, 0x0000 }, { 0x0701, 0x046a, 0x0000 }, { 0x8701, 0x046d, 0x2000 }, { 0x0701, 0x046c, 0x0000 }, { 0x0701, 0x046e, 0x0000 }, { 0x8701, 0x0477, 0x4000 }, { 0x8701, 0x0473, 0x3000 }, { 0x8701, 0x0471, 0x2000 }, { 0x0701, 0x0470, 0x0000 }, { 0x0701, 0x0472, 0x0000 }, { 0x8701, 0x0475, 0x2000 }, { 0x0701, 0x0474, 0x0000 }, { 0x0701, 0x0476, 0x0000 }, { 0x8701, 0x047b, 0x3000 }, { 0x8701, 0x0479, 0x2000 }, { 0x0701, 0x0478, 0x0000 }, { 0x0701, 0x047a, 0x0000 }, { 0x8701, 0x047d, 0x2000 }, { 0x0701, 0x047c, 0x0000 }, { 0x0701, 0x047e, 0x0000 }, { 0x8701, 0x048f, 0x5000 }, { 0x8701, 0x0487, 0x4000 }, { 0x8701, 0x0483, 0x3000 }, { 0x8701, 0x0481, 0x2000 }, { 0x0701, 0x0480, 0x0000 }, { 0x0701, 0x0482, 0x0000 }, { 0x8701, 0x0485, 0x2000 }, { 0x0701, 0x0484, 0x0000 }, { 0x0701, 0x0486, 0x0000 }, { 0x8701, 0x048b, 0x3000 }, { 0x8701, 0x0489, 0x2000 }, { 0x0701, 0x0488, 0x0000 }, { 0x0701, 0x048a, 0x0000 }, { 0x8701, 0x048d, 0x2000 }, { 0x0701, 0x048c, 0x0000 }, { 0x0701, 0x048e, 0x0000 }, { 0x8701, 0x0497, 0x4000 }, { 0x8701, 0x0493, 0x3000 }, { 0x8701, 0x0491, 0x2000 }, { 0x0701, 0x0490, 0x0000 }, { 0x0701, 0x0492, 0x0000 }, { 0x8701, 0x0495, 0x2000 }, { 0x0701, 0x0494, 0x0000 }, { 0x0701, 0x0496, 0x0000 }, { 0x8701, 0x049b, 0x3000 }, { 0x8701, 0x0499, 0x2000 }, { 0x0701, 0x0498, 0x0000 }, { 0x0701, 0x049a, 0x0000 }, { 0x8701, 0x049d, 0x2000 }, { 0x0701, 0x049c, 0x0000 }, { 0x0d01, 0x04a0, 0x0000 }, { 0x8701, 0x081a, 0x6000 }, { 0x8701, 0x080a, 0x5000 }, { 0x8d01, 0x04a9, 0x4000 }, { 0x8d01, 0x04a5, 0x3000 }, { 0x8d01, 0x04a3, 0x2000 }, { 0x0d01, 0x04a2, 0x0000 }, { 0x0d01, 0x04a4, 0x0000 }, { 0x8d01, 0x04a7, 0x2000 }, { 0x0d01, 0x04a6, 0x0000 }, { 0x0d01, 0x04a8, 0x0000 }, { 0x8701, 0x0803, 0x3000 }, { 0x8701, 0x0801, 0x2000 }, { 0x0701, 0x0800, 0x0000 }, { 0x0701, 0x0802, 0x0000 }, { 0x8701, 0x0805, 0x2000 }, { 0x0701, 0x0804, 0x0000 }, { 0x0701, 0x0808, 0x0000 }, { 0x8701, 0x0812, 0x4000 }, { 0x8701, 0x080e, 0x3000 }, { 0x8701, 0x080c, 0x2000 }, { 0x0701, 0x080b, 0x0000 }, { 0x0701, 0x080d, 0x0000 }, { 0x8701, 0x0810, 0x2000 }, { 0x0701, 0x080f, 0x0000 }, { 0x0701, 0x0811, 0x0000 }, { 0x8701, 0x0816, 0x3000 }, { 0x8701, 0x0814, 0x2000 }, { 0x0701, 0x0813, 0x0000 }, { 0x0701, 0x0815, 0x0000 }, { 0x8701, 0x0818, 0x2000 }, { 0x0701, 0x0817, 0x0000 }, { 0x0701, 0x0819, 0x0000 }, { 0x8701, 0x082a, 0x5000 }, { 0x8701, 0x0822, 0x4000 }, { 0x8701, 0x081e, 0x3000 }, { 0x8701, 0x081c, 0x2000 }, { 0x0701, 0x081b, 0x0000 }, { 0x0701, 0x081d, 0x0000 }, { 0x8701, 0x0820, 0x2000 }, { 0x0701, 0x081f, 0x0000 }, { 0x0701, 0x0821, 0x0000 }, { 0x8701, 0x0826, 0x3000 }, { 0x8701, 0x0824, 0x2000 }, { 0x0701, 0x0823, 0x0000 }, { 0x0701, 0x0825, 0x0000 }, { 0x8701, 0x0828, 0x2000 }, { 0x0701, 0x0827, 0x0000 }, { 0x0701, 0x0829, 0x0000 }, { 0x8701, 0x0832, 0x4000 }, { 0x8701, 0x082e, 0x3000 }, { 0x8701, 0x082c, 0x2000 }, { 0x0701, 0x082b, 0x0000 }, { 0x0701, 0x082d, 0x0000 }, { 0x8701, 0x0830, 0x2000 }, { 0x0701, 0x082f, 0x0000 }, { 0x0701, 0x0831, 0x0000 }, { 0x8701, 0x0837, 0x3000 }, { 0x8701, 0x0834, 0x2000 }, { 0x0701, 0x0833, 0x0000 }, { 0x0701, 0x0835, 0x0000 }, { 0x8701, 0x083c, 0x2000 }, { 0x0701, 0x0838, 0x0000 }, { 0x0701, 0x083f, 0x0000 }, { 0x9a01, 0xd040, 0x7000 }, { 0x9a01, 0xd020, 0x6000 }, { 0x9a01, 0xd010, 0x5000 }, { 0x9a01, 0xd008, 0x4000 }, { 0x9a01, 0xd004, 0x3000 }, { 0x9a01, 0xd002, 0x2000 }, { 0x1a01, 0xd001, 0x0000 }, { 0x1a01, 0xd003, 0x0000 }, { 0x9a01, 0xd006, 0x2000 }, { 0x1a01, 0xd005, 0x0000 }, { 0x1a01, 0xd007, 0x0000 }, { 0x9a01, 0xd00c, 0x3000 }, { 0x9a01, 0xd00a, 0x2000 }, { 0x1a01, 0xd009, 0x0000 }, { 0x1a01, 0xd00b, 0x0000 }, { 0x9a01, 0xd00e, 0x2000 }, { 0x1a01, 0xd00d, 0x0000 }, { 0x1a01, 0xd00f, 0x0000 }, { 0x9a01, 0xd018, 0x4000 }, { 0x9a01, 0xd014, 0x3000 }, { 0x9a01, 0xd012, 0x2000 }, { 0x1a01, 0xd011, 0x0000 }, { 0x1a01, 0xd013, 0x0000 }, { 0x9a01, 0xd016, 0x2000 }, { 0x1a01, 0xd015, 0x0000 }, { 0x1a01, 0xd017, 0x0000 }, { 0x9a01, 0xd01c, 0x3000 }, { 0x9a01, 0xd01a, 0x2000 }, { 0x1a01, 0xd019, 0x0000 }, { 0x1a01, 0xd01b, 0x0000 }, { 0x9a01, 0xd01e, 0x2000 }, { 0x1a01, 0xd01d, 0x0000 }, { 0x1a01, 0xd01f, 0x0000 }, { 0x9a01, 0xd030, 0x5000 }, { 0x9a01, 0xd028, 0x4000 }, { 0x9a01, 0xd024, 0x3000 }, { 0x9a01, 0xd022, 0x2000 }, { 0x1a01, 0xd021, 0x0000 }, { 0x1a01, 0xd023, 0x0000 }, { 0x9a01, 0xd026, 0x2000 }, { 0x1a01, 0xd025, 0x0000 }, { 0x1a01, 0xd027, 0x0000 }, { 0x9a01, 0xd02c, 0x3000 }, { 0x9a01, 0xd02a, 0x2000 }, { 0x1a01, 0xd029, 0x0000 }, { 0x1a01, 0xd02b, 0x0000 }, { 0x9a01, 0xd02e, 0x2000 }, { 0x1a01, 0xd02d, 0x0000 }, { 0x1a01, 0xd02f, 0x0000 }, { 0x9a01, 0xd038, 0x4000 }, { 0x9a01, 0xd034, 0x3000 }, { 0x9a01, 0xd032, 0x2000 }, { 0x1a01, 0xd031, 0x0000 }, { 0x1a01, 0xd033, 0x0000 }, { 0x9a01, 0xd036, 0x2000 }, { 0x1a01, 0xd035, 0x0000 }, { 0x1a01, 0xd037, 0x0000 }, { 0x9a01, 0xd03c, 0x3000 }, { 0x9a01, 0xd03a, 0x2000 }, { 0x1a01, 0xd039, 0x0000 }, { 0x1a01, 0xd03b, 0x0000 }, { 0x9a01, 0xd03e, 0x2000 }, { 0x1a01, 0xd03d, 0x0000 }, { 0x1a01, 0xd03f, 0x0000 }, { 0x9a01, 0xd060, 0x6000 }, { 0x9a01, 0xd050, 0x5000 }, { 0x9a01, 0xd048, 0x4000 }, { 0x9a01, 0xd044, 0x3000 }, { 0x9a01, 0xd042, 0x2000 }, { 0x1a01, 0xd041, 0x0000 }, { 0x1a01, 0xd043, 0x0000 }, { 0x9a01, 0xd046, 0x2000 }, { 0x1a01, 0xd045, 0x0000 }, { 0x1a01, 0xd047, 0x0000 }, { 0x9a01, 0xd04c, 0x3000 }, { 0x9a01, 0xd04a, 0x2000 }, { 0x1a01, 0xd049, 0x0000 }, { 0x1a01, 0xd04b, 0x0000 }, { 0x9a01, 0xd04e, 0x2000 }, { 0x1a01, 0xd04d, 0x0000 }, { 0x1a01, 0xd04f, 0x0000 }, { 0x9a01, 0xd058, 0x4000 }, { 0x9a01, 0xd054, 0x3000 }, { 0x9a01, 0xd052, 0x2000 }, { 0x1a01, 0xd051, 0x0000 }, { 0x1a01, 0xd053, 0x0000 }, { 0x9a01, 0xd056, 0x2000 }, { 0x1a01, 0xd055, 0x0000 }, { 0x1a01, 0xd057, 0x0000 }, { 0x9a01, 0xd05c, 0x3000 }, { 0x9a01, 0xd05a, 0x2000 }, { 0x1a01, 0xd059, 0x0000 }, { 0x1a01, 0xd05b, 0x0000 }, { 0x9a01, 0xd05e, 0x2000 }, { 0x1a01, 0xd05d, 0x0000 }, { 0x1a01, 0xd05f, 0x0000 }, { 0x9a01, 0xd070, 0x5000 }, { 0x9a01, 0xd068, 0x4000 }, { 0x9a01, 0xd064, 0x3000 }, { 0x9a01, 0xd062, 0x2000 }, { 0x1a01, 0xd061, 0x0000 }, { 0x1a01, 0xd063, 0x0000 }, { 0x9a01, 0xd066, 0x2000 }, { 0x1a01, 0xd065, 0x0000 }, { 0x1a01, 0xd067, 0x0000 }, { 0x9a01, 0xd06c, 0x3000 }, { 0x9a01, 0xd06a, 0x2000 }, { 0x1a01, 0xd069, 0x0000 }, { 0x1a01, 0xd06b, 0x0000 }, { 0x9a01, 0xd06e, 0x2000 }, { 0x1a01, 0xd06d, 0x0000 }, { 0x1a01, 0xd06f, 0x0000 }, { 0x9a01, 0xd078, 0x4000 }, { 0x9a01, 0xd074, 0x3000 }, { 0x9a01, 0xd072, 0x2000 }, { 0x1a01, 0xd071, 0x0000 }, { 0x1a01, 0xd073, 0x0000 }, { 0x9a01, 0xd076, 0x2000 }, { 0x1a01, 0xd075, 0x0000 }, { 0x1a01, 0xd077, 0x0000 }, { 0x9a01, 0xd07c, 0x3000 }, { 0x9a01, 0xd07a, 0x2000 }, { 0x1a01, 0xd079, 0x0000 }, { 0x1a01, 0xd07b, 0x0000 }, { 0x9a01, 0xd07e, 0x2000 }, { 0x1a01, 0xd07d, 0x0000 }, { 0x1a01, 0xd07f, 0x0000 }, { 0x9a01, 0xd18d, 0x9000 }, { 0x9a01, 0xd10a, 0x8000 }, { 0x9a01, 0xd0c0, 0x7000 }, { 0x9a01, 0xd0a0, 0x6000 }, { 0x9a01, 0xd090, 0x5000 }, { 0x9a01, 0xd088, 0x4000 }, { 0x9a01, 0xd084, 0x3000 }, { 0x9a01, 0xd082, 0x2000 }, { 0x1a01, 0xd081, 0x0000 }, { 0x1a01, 0xd083, 0x0000 }, { 0x9a01, 0xd086, 0x2000 }, { 0x1a01, 0xd085, 0x0000 }, { 0x1a01, 0xd087, 0x0000 }, { 0x9a01, 0xd08c, 0x3000 }, { 0x9a01, 0xd08a, 0x2000 }, { 0x1a01, 0xd089, 0x0000 }, { 0x1a01, 0xd08b, 0x0000 }, { 0x9a01, 0xd08e, 0x2000 }, { 0x1a01, 0xd08d, 0x0000 }, { 0x1a01, 0xd08f, 0x0000 }, { 0x9a01, 0xd098, 0x4000 }, { 0x9a01, 0xd094, 0x3000 }, { 0x9a01, 0xd092, 0x2000 }, { 0x1a01, 0xd091, 0x0000 }, { 0x1a01, 0xd093, 0x0000 }, { 0x9a01, 0xd096, 0x2000 }, { 0x1a01, 0xd095, 0x0000 }, { 0x1a01, 0xd097, 0x0000 }, { 0x9a01, 0xd09c, 0x3000 }, { 0x9a01, 0xd09a, 0x2000 }, { 0x1a01, 0xd099, 0x0000 }, { 0x1a01, 0xd09b, 0x0000 }, { 0x9a01, 0xd09e, 0x2000 }, { 0x1a01, 0xd09d, 0x0000 }, { 0x1a01, 0xd09f, 0x0000 }, { 0x9a01, 0xd0b0, 0x5000 }, { 0x9a01, 0xd0a8, 0x4000 }, { 0x9a01, 0xd0a4, 0x3000 }, { 0x9a01, 0xd0a2, 0x2000 }, { 0x1a01, 0xd0a1, 0x0000 }, { 0x1a01, 0xd0a3, 0x0000 }, { 0x9a01, 0xd0a6, 0x2000 }, { 0x1a01, 0xd0a5, 0x0000 }, { 0x1a01, 0xd0a7, 0x0000 }, { 0x9a01, 0xd0ac, 0x3000 }, { 0x9a01, 0xd0aa, 0x2000 }, { 0x1a01, 0xd0a9, 0x0000 }, { 0x1a01, 0xd0ab, 0x0000 }, { 0x9a01, 0xd0ae, 0x2000 }, { 0x1a01, 0xd0ad, 0x0000 }, { 0x1a01, 0xd0af, 0x0000 }, { 0x9a01, 0xd0b8, 0x4000 }, { 0x9a01, 0xd0b4, 0x3000 }, { 0x9a01, 0xd0b2, 0x2000 }, { 0x1a01, 0xd0b1, 0x0000 }, { 0x1a01, 0xd0b3, 0x0000 }, { 0x9a01, 0xd0b6, 0x2000 }, { 0x1a01, 0xd0b5, 0x0000 }, { 0x1a01, 0xd0b7, 0x0000 }, { 0x9a01, 0xd0bc, 0x3000 }, { 0x9a01, 0xd0ba, 0x2000 }, { 0x1a01, 0xd0b9, 0x0000 }, { 0x1a01, 0xd0bb, 0x0000 }, { 0x9a01, 0xd0be, 0x2000 }, { 0x1a01, 0xd0bd, 0x0000 }, { 0x1a01, 0xd0bf, 0x0000 }, { 0x9a01, 0xd0e0, 0x6000 }, { 0x9a01, 0xd0d0, 0x5000 }, { 0x9a01, 0xd0c8, 0x4000 }, { 0x9a01, 0xd0c4, 0x3000 }, { 0x9a01, 0xd0c2, 0x2000 }, { 0x1a01, 0xd0c1, 0x0000 }, { 0x1a01, 0xd0c3, 0x0000 }, { 0x9a01, 0xd0c6, 0x2000 }, { 0x1a01, 0xd0c5, 0x0000 }, { 0x1a01, 0xd0c7, 0x0000 }, { 0x9a01, 0xd0cc, 0x3000 }, { 0x9a01, 0xd0ca, 0x2000 }, { 0x1a01, 0xd0c9, 0x0000 }, { 0x1a01, 0xd0cb, 0x0000 }, { 0x9a01, 0xd0ce, 0x2000 }, { 0x1a01, 0xd0cd, 0x0000 }, { 0x1a01, 0xd0cf, 0x0000 }, { 0x9a01, 0xd0d8, 0x4000 }, { 0x9a01, 0xd0d4, 0x3000 }, { 0x9a01, 0xd0d2, 0x2000 }, { 0x1a01, 0xd0d1, 0x0000 }, { 0x1a01, 0xd0d3, 0x0000 }, { 0x9a01, 0xd0d6, 0x2000 }, { 0x1a01, 0xd0d5, 0x0000 }, { 0x1a01, 0xd0d7, 0x0000 }, { 0x9a01, 0xd0dc, 0x3000 }, { 0x9a01, 0xd0da, 0x2000 }, { 0x1a01, 0xd0d9, 0x0000 }, { 0x1a01, 0xd0db, 0x0000 }, { 0x9a01, 0xd0de, 0x2000 }, { 0x1a01, 0xd0dd, 0x0000 }, { 0x1a01, 0xd0df, 0x0000 }, { 0x9a01, 0xd0f0, 0x5000 }, { 0x9a01, 0xd0e8, 0x4000 }, { 0x9a01, 0xd0e4, 0x3000 }, { 0x9a01, 0xd0e2, 0x2000 }, { 0x1a01, 0xd0e1, 0x0000 }, { 0x1a01, 0xd0e3, 0x0000 }, { 0x9a01, 0xd0e6, 0x2000 }, { 0x1a01, 0xd0e5, 0x0000 }, { 0x1a01, 0xd0e7, 0x0000 }, { 0x9a01, 0xd0ec, 0x3000 }, { 0x9a01, 0xd0ea, 0x2000 }, { 0x1a01, 0xd0e9, 0x0000 }, { 0x1a01, 0xd0eb, 0x0000 }, { 0x9a01, 0xd0ee, 0x2000 }, { 0x1a01, 0xd0ed, 0x0000 }, { 0x1a01, 0xd0ef, 0x0000 }, { 0x9a01, 0xd102, 0x4000 }, { 0x9a01, 0xd0f4, 0x3000 }, { 0x9a01, 0xd0f2, 0x2000 }, { 0x1a01, 0xd0f1, 0x0000 }, { 0x1a01, 0xd0f3, 0x0000 }, { 0x9a01, 0xd100, 0x2000 }, { 0x1a01, 0xd0f5, 0x0000 }, { 0x1a01, 0xd101, 0x0000 }, { 0x9a01, 0xd106, 0x3000 }, { 0x9a01, 0xd104, 0x2000 }, { 0x1a01, 0xd103, 0x0000 }, { 0x1a01, 0xd105, 0x0000 }, { 0x9a01, 0xd108, 0x2000 }, { 0x1a01, 0xd107, 0x0000 }, { 0x1a01, 0xd109, 0x0000 }, { 0x9a01, 0xd14d, 0x7000 }, { 0x9a01, 0xd12d, 0x6000 }, { 0x9a01, 0xd11a, 0x5000 }, { 0x9a01, 0xd112, 0x4000 }, { 0x9a01, 0xd10e, 0x3000 }, { 0x9a01, 0xd10c, 0x2000 }, { 0x1a01, 0xd10b, 0x0000 }, { 0x1a01, 0xd10d, 0x0000 }, { 0x9a01, 0xd110, 0x2000 }, { 0x1a01, 0xd10f, 0x0000 }, { 0x1a01, 0xd111, 0x0000 }, { 0x9a01, 0xd116, 0x3000 }, { 0x9a01, 0xd114, 0x2000 }, { 0x1a01, 0xd113, 0x0000 }, { 0x1a01, 0xd115, 0x0000 }, { 0x9a01, 0xd118, 0x2000 }, { 0x1a01, 0xd117, 0x0000 }, { 0x1a01, 0xd119, 0x0000 }, { 0x9a01, 0xd122, 0x4000 }, { 0x9a01, 0xd11e, 0x3000 }, { 0x9a01, 0xd11c, 0x2000 }, { 0x1a01, 0xd11b, 0x0000 }, { 0x1a01, 0xd11d, 0x0000 }, { 0x9a01, 0xd120, 0x2000 }, { 0x1a01, 0xd11f, 0x0000 }, { 0x1a01, 0xd121, 0x0000 }, { 0x9a01, 0xd126, 0x3000 }, { 0x9a01, 0xd124, 0x2000 }, { 0x1a01, 0xd123, 0x0000 }, { 0x1a01, 0xd125, 0x0000 }, { 0x9a01, 0xd12b, 0x2000 }, { 0x1a01, 0xd12a, 0x0000 }, { 0x1a01, 0xd12c, 0x0000 }, { 0x9a01, 0xd13d, 0x5000 }, { 0x9a01, 0xd135, 0x4000 }, { 0x9a01, 0xd131, 0x3000 }, { 0x9a01, 0xd12f, 0x2000 }, { 0x1a01, 0xd12e, 0x0000 }, { 0x1a01, 0xd130, 0x0000 }, { 0x9a01, 0xd133, 0x2000 }, { 0x1a01, 0xd132, 0x0000 }, { 0x1a01, 0xd134, 0x0000 }, { 0x9a01, 0xd139, 0x3000 }, { 0x9a01, 0xd137, 0x2000 }, { 0x1a01, 0xd136, 0x0000 }, { 0x1a01, 0xd138, 0x0000 }, { 0x9a01, 0xd13b, 0x2000 }, { 0x1a01, 0xd13a, 0x0000 }, { 0x1a01, 0xd13c, 0x0000 }, { 0x9a01, 0xd145, 0x4000 }, { 0x9a01, 0xd141, 0x3000 }, { 0x9a01, 0xd13f, 0x2000 }, { 0x1a01, 0xd13e, 0x0000 }, { 0x1a01, 0xd140, 0x0000 }, { 0x9a01, 0xd143, 0x2000 }, { 0x1a01, 0xd142, 0x0000 }, { 0x1a01, 0xd144, 0x0000 }, { 0x9a01, 0xd149, 0x3000 }, { 0x9a01, 0xd147, 0x2000 }, { 0x1a01, 0xd146, 0x0000 }, { 0x1a01, 0xd148, 0x0000 }, { 0x9a01, 0xd14b, 0x2000 }, { 0x1a01, 0xd14a, 0x0000 }, { 0x1a01, 0xd14c, 0x0000 }, { 0x8a01, 0xd16d, 0x6000 }, { 0x9a01, 0xd15d, 0x5000 }, { 0x9a01, 0xd155, 0x4000 }, { 0x9a01, 0xd151, 0x3000 }, { 0x9a01, 0xd14f, 0x2000 }, { 0x1a01, 0xd14e, 0x0000 }, { 0x1a01, 0xd150, 0x0000 }, { 0x9a01, 0xd153, 0x2000 }, { 0x1a01, 0xd152, 0x0000 }, { 0x1a01, 0xd154, 0x0000 }, { 0x9a01, 0xd159, 0x3000 }, { 0x9a01, 0xd157, 0x2000 }, { 0x1a01, 0xd156, 0x0000 }, { 0x1a01, 0xd158, 0x0000 }, { 0x9a01, 0xd15b, 0x2000 }, { 0x1a01, 0xd15a, 0x0000 }, { 0x1a01, 0xd15c, 0x0000 }, { 0x8a01, 0xd165, 0x4000 }, { 0x9a01, 0xd161, 0x3000 }, { 0x9a01, 0xd15f, 0x2000 }, { 0x1a01, 0xd15e, 0x0000 }, { 0x1a01, 0xd160, 0x0000 }, { 0x9a01, 0xd163, 0x2000 }, { 0x1a01, 0xd162, 0x0000 }, { 0x1a01, 0xd164, 0x0000 }, { 0x8c01, 0xd169, 0x3000 }, { 0x8c01, 0xd167, 0x2000 }, { 0x0a01, 0xd166, 0x0000 }, { 0x0c01, 0xd168, 0x0000 }, { 0x9a01, 0xd16b, 0x2000 }, { 0x1a01, 0xd16a, 0x0000 }, { 0x1a01, 0xd16c, 0x0000 }, { 0x8c01, 0xd17d, 0x5000 }, { 0x8101, 0xd175, 0x4000 }, { 0x8a01, 0xd171, 0x3000 }, { 0x8a01, 0xd16f, 0x2000 }, { 0x0a01, 0xd16e, 0x0000 }, { 0x0a01, 0xd170, 0x0000 }, { 0x8101, 0xd173, 0x2000 }, { 0x0a01, 0xd172, 0x0000 }, { 0x0101, 0xd174, 0x0000 }, { 0x8101, 0xd179, 0x3000 }, { 0x8101, 0xd177, 0x2000 }, { 0x0101, 0xd176, 0x0000 }, { 0x0101, 0xd178, 0x0000 }, { 0x8c01, 0xd17b, 0x2000 }, { 0x0101, 0xd17a, 0x0000 }, { 0x0c01, 0xd17c, 0x0000 }, { 0x8c01, 0xd185, 0x4000 }, { 0x8c01, 0xd181, 0x3000 }, { 0x8c01, 0xd17f, 0x2000 }, { 0x0c01, 0xd17e, 0x0000 }, { 0x0c01, 0xd180, 0x0000 }, { 0x9a01, 0xd183, 0x2000 }, { 0x0c01, 0xd182, 0x0000 }, { 0x1a01, 0xd184, 0x0000 }, { 0x8c01, 0xd189, 0x3000 }, { 0x8c01, 0xd187, 0x2000 }, { 0x0c01, 0xd186, 0x0000 }, { 0x0c01, 0xd188, 0x0000 }, { 0x8c01, 0xd18b, 0x2000 }, { 0x0c01, 0xd18a, 0x0000 }, { 0x1a01, 0xd18c, 0x0000 }, { 0x9a01, 0xd32f, 0x8000 }, { 0x9a01, 0xd1cd, 0x7000 }, { 0x8c01, 0xd1ad, 0x6000 }, { 0x9a01, 0xd19d, 0x5000 }, { 0x9a01, 0xd195, 0x4000 }, { 0x9a01, 0xd191, 0x3000 }, { 0x9a01, 0xd18f, 0x2000 }, { 0x1a01, 0xd18e, 0x0000 }, { 0x1a01, 0xd190, 0x0000 }, { 0x9a01, 0xd193, 0x2000 }, { 0x1a01, 0xd192, 0x0000 }, { 0x1a01, 0xd194, 0x0000 }, { 0x9a01, 0xd199, 0x3000 }, { 0x9a01, 0xd197, 0x2000 }, { 0x1a01, 0xd196, 0x0000 }, { 0x1a01, 0xd198, 0x0000 }, { 0x9a01, 0xd19b, 0x2000 }, { 0x1a01, 0xd19a, 0x0000 }, { 0x1a01, 0xd19c, 0x0000 }, { 0x9a01, 0xd1a5, 0x4000 }, { 0x9a01, 0xd1a1, 0x3000 }, { 0x9a01, 0xd19f, 0x2000 }, { 0x1a01, 0xd19e, 0x0000 }, { 0x1a01, 0xd1a0, 0x0000 }, { 0x9a01, 0xd1a3, 0x2000 }, { 0x1a01, 0xd1a2, 0x0000 }, { 0x1a01, 0xd1a4, 0x0000 }, { 0x9a01, 0xd1a9, 0x3000 }, { 0x9a01, 0xd1a7, 0x2000 }, { 0x1a01, 0xd1a6, 0x0000 }, { 0x1a01, 0xd1a8, 0x0000 }, { 0x8c01, 0xd1ab, 0x2000 }, { 0x0c01, 0xd1aa, 0x0000 }, { 0x0c01, 0xd1ac, 0x0000 }, { 0x9a01, 0xd1bd, 0x5000 }, { 0x9a01, 0xd1b5, 0x4000 }, { 0x9a01, 0xd1b1, 0x3000 }, { 0x9a01, 0xd1af, 0x2000 }, { 0x1a01, 0xd1ae, 0x0000 }, { 0x1a01, 0xd1b0, 0x0000 }, { 0x9a01, 0xd1b3, 0x2000 }, { 0x1a01, 0xd1b2, 0x0000 }, { 0x1a01, 0xd1b4, 0x0000 }, { 0x9a01, 0xd1b9, 0x3000 }, { 0x9a01, 0xd1b7, 0x2000 }, { 0x1a01, 0xd1b6, 0x0000 }, { 0x1a01, 0xd1b8, 0x0000 }, { 0x9a01, 0xd1bb, 0x2000 }, { 0x1a01, 0xd1ba, 0x0000 }, { 0x1a01, 0xd1bc, 0x0000 }, { 0x9a01, 0xd1c5, 0x4000 }, { 0x9a01, 0xd1c1, 0x3000 }, { 0x9a01, 0xd1bf, 0x2000 }, { 0x1a01, 0xd1be, 0x0000 }, { 0x1a01, 0xd1c0, 0x0000 }, { 0x9a01, 0xd1c3, 0x2000 }, { 0x1a01, 0xd1c2, 0x0000 }, { 0x1a01, 0xd1c4, 0x0000 }, { 0x9a01, 0xd1c9, 0x3000 }, { 0x9a01, 0xd1c7, 0x2000 }, { 0x1a01, 0xd1c6, 0x0000 }, { 0x1a01, 0xd1c8, 0x0000 }, { 0x9a01, 0xd1cb, 0x2000 }, { 0x1a01, 0xd1ca, 0x0000 }, { 0x1a01, 0xd1cc, 0x0000 }, { 0x9a01, 0xd30f, 0x6000 }, { 0x9a01, 0xd1dd, 0x5000 }, { 0x9a01, 0xd1d5, 0x4000 }, { 0x9a01, 0xd1d1, 0x3000 }, { 0x9a01, 0xd1cf, 0x2000 }, { 0x1a01, 0xd1ce, 0x0000 }, { 0x1a01, 0xd1d0, 0x0000 }, { 0x9a01, 0xd1d3, 0x2000 }, { 0x1a01, 0xd1d2, 0x0000 }, { 0x1a01, 0xd1d4, 0x0000 }, { 0x9a01, 0xd1d9, 0x3000 }, { 0x9a01, 0xd1d7, 0x2000 }, { 0x1a01, 0xd1d6, 0x0000 }, { 0x1a01, 0xd1d8, 0x0000 }, { 0x9a01, 0xd1db, 0x2000 }, { 0x1a01, 0xd1da, 0x0000 }, { 0x1a01, 0xd1dc, 0x0000 }, { 0x9a01, 0xd307, 0x4000 }, { 0x9a01, 0xd303, 0x3000 }, { 0x9a01, 0xd301, 0x2000 }, { 0x1a01, 0xd300, 0x0000 }, { 0x1a01, 0xd302, 0x0000 }, { 0x9a01, 0xd305, 0x2000 }, { 0x1a01, 0xd304, 0x0000 }, { 0x1a01, 0xd306, 0x0000 }, { 0x9a01, 0xd30b, 0x3000 }, { 0x9a01, 0xd309, 0x2000 }, { 0x1a01, 0xd308, 0x0000 }, { 0x1a01, 0xd30a, 0x0000 }, { 0x9a01, 0xd30d, 0x2000 }, { 0x1a01, 0xd30c, 0x0000 }, { 0x1a01, 0xd30e, 0x0000 }, { 0x9a01, 0xd31f, 0x5000 }, { 0x9a01, 0xd317, 0x4000 }, { 0x9a01, 0xd313, 0x3000 }, { 0x9a01, 0xd311, 0x2000 }, { 0x1a01, 0xd310, 0x0000 }, { 0x1a01, 0xd312, 0x0000 }, { 0x9a01, 0xd315, 0x2000 }, { 0x1a01, 0xd314, 0x0000 }, { 0x1a01, 0xd316, 0x0000 }, { 0x9a01, 0xd31b, 0x3000 }, { 0x9a01, 0xd319, 0x2000 }, { 0x1a01, 0xd318, 0x0000 }, { 0x1a01, 0xd31a, 0x0000 }, { 0x9a01, 0xd31d, 0x2000 }, { 0x1a01, 0xd31c, 0x0000 }, { 0x1a01, 0xd31e, 0x0000 }, { 0x9a01, 0xd327, 0x4000 }, { 0x9a01, 0xd323, 0x3000 }, { 0x9a01, 0xd321, 0x2000 }, { 0x1a01, 0xd320, 0x0000 }, { 0x1a01, 0xd322, 0x0000 }, { 0x9a01, 0xd325, 0x2000 }, { 0x1a01, 0xd324, 0x0000 }, { 0x1a01, 0xd326, 0x0000 }, { 0x9a01, 0xd32b, 0x3000 }, { 0x9a01, 0xd329, 0x2000 }, { 0x1a01, 0xd328, 0x0000 }, { 0x1a01, 0xd32a, 0x0000 }, { 0x9a01, 0xd32d, 0x2000 }, { 0x1a01, 0xd32c, 0x0000 }, { 0x1a01, 0xd32e, 0x0000 }, { 0x8901, 0xd418, 0x7000 }, { 0x9a01, 0xd34f, 0x6000 }, { 0x9a01, 0xd33f, 0x5000 }, { 0x9a01, 0xd337, 0x4000 }, { 0x9a01, 0xd333, 0x3000 }, { 0x9a01, 0xd331, 0x2000 }, { 0x1a01, 0xd330, 0x0000 }, { 0x1a01, 0xd332, 0x0000 }, { 0x9a01, 0xd335, 0x2000 }, { 0x1a01, 0xd334, 0x0000 }, { 0x1a01, 0xd336, 0x0000 }, { 0x9a01, 0xd33b, 0x3000 }, { 0x9a01, 0xd339, 0x2000 }, { 0x1a01, 0xd338, 0x0000 }, { 0x1a01, 0xd33a, 0x0000 }, { 0x9a01, 0xd33d, 0x2000 }, { 0x1a01, 0xd33c, 0x0000 }, { 0x1a01, 0xd33e, 0x0000 }, { 0x9a01, 0xd347, 0x4000 }, { 0x9a01, 0xd343, 0x3000 }, { 0x9a01, 0xd341, 0x2000 }, { 0x1a01, 0xd340, 0x0000 }, { 0x1a01, 0xd342, 0x0000 }, { 0x9a01, 0xd345, 0x2000 }, { 0x1a01, 0xd344, 0x0000 }, { 0x1a01, 0xd346, 0x0000 }, { 0x9a01, 0xd34b, 0x3000 }, { 0x9a01, 0xd349, 0x2000 }, { 0x1a01, 0xd348, 0x0000 }, { 0x1a01, 0xd34a, 0x0000 }, { 0x9a01, 0xd34d, 0x2000 }, { 0x1a01, 0xd34c, 0x0000 }, { 0x1a01, 0xd34e, 0x0000 }, { 0x8901, 0xd408, 0x5000 }, { 0x8901, 0xd400, 0x4000 }, { 0x9a01, 0xd353, 0x3000 }, { 0x9a01, 0xd351, 0x2000 }, { 0x1a01, 0xd350, 0x0000 }, { 0x1a01, 0xd352, 0x0000 }, { 0x9a01, 0xd355, 0x2000 }, { 0x1a01, 0xd354, 0x0000 }, { 0x1a01, 0xd356, 0x0000 }, { 0x8901, 0xd404, 0x3000 }, { 0x8901, 0xd402, 0x2000 }, { 0x0901, 0xd401, 0x0000 }, { 0x0901, 0xd403, 0x0000 }, { 0x8901, 0xd406, 0x2000 }, { 0x0901, 0xd405, 0x0000 }, { 0x0901, 0xd407, 0x0000 }, { 0x8901, 0xd410, 0x4000 }, { 0x8901, 0xd40c, 0x3000 }, { 0x8901, 0xd40a, 0x2000 }, { 0x0901, 0xd409, 0x0000 }, { 0x0901, 0xd40b, 0x0000 }, { 0x8901, 0xd40e, 0x2000 }, { 0x0901, 0xd40d, 0x0000 }, { 0x0901, 0xd40f, 0x0000 }, { 0x8901, 0xd414, 0x3000 }, { 0x8901, 0xd412, 0x2000 }, { 0x0901, 0xd411, 0x0000 }, { 0x0901, 0xd413, 0x0000 }, { 0x8901, 0xd416, 0x2000 }, { 0x0901, 0xd415, 0x0000 }, { 0x0901, 0xd417, 0x0000 }, { 0x8901, 0xd438, 0x6000 }, { 0x8501, 0xd428, 0x5000 }, { 0x8501, 0xd420, 0x4000 }, { 0x8501, 0xd41c, 0x3000 }, { 0x8501, 0xd41a, 0x2000 }, { 0x0901, 0xd419, 0x0000 }, { 0x0501, 0xd41b, 0x0000 }, { 0x8501, 0xd41e, 0x2000 }, { 0x0501, 0xd41d, 0x0000 }, { 0x0501, 0xd41f, 0x0000 }, { 0x8501, 0xd424, 0x3000 }, { 0x8501, 0xd422, 0x2000 }, { 0x0501, 0xd421, 0x0000 }, { 0x0501, 0xd423, 0x0000 }, { 0x8501, 0xd426, 0x2000 }, { 0x0501, 0xd425, 0x0000 }, { 0x0501, 0xd427, 0x0000 }, { 0x8501, 0xd430, 0x4000 }, { 0x8501, 0xd42c, 0x3000 }, { 0x8501, 0xd42a, 0x2000 }, { 0x0501, 0xd429, 0x0000 }, { 0x0501, 0xd42b, 0x0000 }, { 0x8501, 0xd42e, 0x2000 }, { 0x0501, 0xd42d, 0x0000 }, { 0x0501, 0xd42f, 0x0000 }, { 0x8901, 0xd434, 0x3000 }, { 0x8501, 0xd432, 0x2000 }, { 0x0501, 0xd431, 0x0000 }, { 0x0501, 0xd433, 0x0000 }, { 0x8901, 0xd436, 0x2000 }, { 0x0901, 0xd435, 0x0000 }, { 0x0901, 0xd437, 0x0000 }, { 0x8901, 0xd448, 0x5000 }, { 0x8901, 0xd440, 0x4000 }, { 0x8901, 0xd43c, 0x3000 }, { 0x8901, 0xd43a, 0x2000 }, { 0x0901, 0xd439, 0x0000 }, { 0x0901, 0xd43b, 0x0000 }, { 0x8901, 0xd43e, 0x2000 }, { 0x0901, 0xd43d, 0x0000 }, { 0x0901, 0xd43f, 0x0000 }, { 0x8901, 0xd444, 0x3000 }, { 0x8901, 0xd442, 0x2000 }, { 0x0901, 0xd441, 0x0000 }, { 0x0901, 0xd443, 0x0000 }, { 0x8901, 0xd446, 0x2000 }, { 0x0901, 0xd445, 0x0000 }, { 0x0901, 0xd447, 0x0000 }, { 0x8501, 0xd450, 0x4000 }, { 0x8901, 0xd44c, 0x3000 }, { 0x8901, 0xd44a, 0x2000 }, { 0x0901, 0xd449, 0x0000 }, { 0x0901, 0xd44b, 0x0000 }, { 0x8501, 0xd44e, 0x2000 }, { 0x0901, 0xd44d, 0x0000 }, { 0x0501, 0xd44f, 0x0000 }, { 0x8501, 0xd454, 0x3000 }, { 0x8501, 0xd452, 0x2000 }, { 0x0501, 0xd451, 0x0000 }, { 0x0501, 0xd453, 0x0000 }, { 0x8501, 0xd457, 0x2000 }, { 0x0501, 0xd456, 0x0000 }, { 0x0501, 0xd458, 0x0000 }, { 0x8702, 0xf876, 0xb000 }, { 0x8901, 0xd670, 0xa000 }, { 0x8901, 0xd570, 0x9000 }, { 0x8901, 0xd4e4, 0x8000 }, { 0x8501, 0xd499, 0x7000 }, { 0x8901, 0xd479, 0x6000 }, { 0x8901, 0xd469, 0x5000 }, { 0x8501, 0xd461, 0x4000 }, { 0x8501, 0xd45d, 0x3000 }, { 0x8501, 0xd45b, 0x2000 }, { 0x0501, 0xd45a, 0x0000 }, { 0x0501, 0xd45c, 0x0000 }, { 0x8501, 0xd45f, 0x2000 }, { 0x0501, 0xd45e, 0x0000 }, { 0x0501, 0xd460, 0x0000 }, { 0x8501, 0xd465, 0x3000 }, { 0x8501, 0xd463, 0x2000 }, { 0x0501, 0xd462, 0x0000 }, { 0x0501, 0xd464, 0x0000 }, { 0x8501, 0xd467, 0x2000 }, { 0x0501, 0xd466, 0x0000 }, { 0x0901, 0xd468, 0x0000 }, { 0x8901, 0xd471, 0x4000 }, { 0x8901, 0xd46d, 0x3000 }, { 0x8901, 0xd46b, 0x2000 }, { 0x0901, 0xd46a, 0x0000 }, { 0x0901, 0xd46c, 0x0000 }, { 0x8901, 0xd46f, 0x2000 }, { 0x0901, 0xd46e, 0x0000 }, { 0x0901, 0xd470, 0x0000 }, { 0x8901, 0xd475, 0x3000 }, { 0x8901, 0xd473, 0x2000 }, { 0x0901, 0xd472, 0x0000 }, { 0x0901, 0xd474, 0x0000 }, { 0x8901, 0xd477, 0x2000 }, { 0x0901, 0xd476, 0x0000 }, { 0x0901, 0xd478, 0x0000 }, { 0x8501, 0xd489, 0x5000 }, { 0x8901, 0xd481, 0x4000 }, { 0x8901, 0xd47d, 0x3000 }, { 0x8901, 0xd47b, 0x2000 }, { 0x0901, 0xd47a, 0x0000 }, { 0x0901, 0xd47c, 0x0000 }, { 0x8901, 0xd47f, 0x2000 }, { 0x0901, 0xd47e, 0x0000 }, { 0x0901, 0xd480, 0x0000 }, { 0x8501, 0xd485, 0x3000 }, { 0x8501, 0xd483, 0x2000 }, { 0x0501, 0xd482, 0x0000 }, { 0x0501, 0xd484, 0x0000 }, { 0x8501, 0xd487, 0x2000 }, { 0x0501, 0xd486, 0x0000 }, { 0x0501, 0xd488, 0x0000 }, { 0x8501, 0xd491, 0x4000 }, { 0x8501, 0xd48d, 0x3000 }, { 0x8501, 0xd48b, 0x2000 }, { 0x0501, 0xd48a, 0x0000 }, { 0x0501, 0xd48c, 0x0000 }, { 0x8501, 0xd48f, 0x2000 }, { 0x0501, 0xd48e, 0x0000 }, { 0x0501, 0xd490, 0x0000 }, { 0x8501, 0xd495, 0x3000 }, { 0x8501, 0xd493, 0x2000 }, { 0x0501, 0xd492, 0x0000 }, { 0x0501, 0xd494, 0x0000 }, { 0x8501, 0xd497, 0x2000 }, { 0x0501, 0xd496, 0x0000 }, { 0x0501, 0xd498, 0x0000 }, { 0x8501, 0xd4c3, 0x6000 }, { 0x8901, 0xd4b1, 0x5000 }, { 0x8901, 0xd4a6, 0x4000 }, { 0x8901, 0xd49e, 0x3000 }, { 0x8501, 0xd49b, 0x2000 }, { 0x0501, 0xd49a, 0x0000 }, { 0x0901, 0xd49c, 0x0000 }, { 0x8901, 0xd4a2, 0x2000 }, { 0x0901, 0xd49f, 0x0000 }, { 0x0901, 0xd4a5, 0x0000 }, { 0x8901, 0xd4ac, 0x3000 }, { 0x8901, 0xd4aa, 0x2000 }, { 0x0901, 0xd4a9, 0x0000 }, { 0x0901, 0xd4ab, 0x0000 }, { 0x8901, 0xd4af, 0x2000 }, { 0x0901, 0xd4ae, 0x0000 }, { 0x0901, 0xd4b0, 0x0000 }, { 0x8501, 0xd4b9, 0x4000 }, { 0x8901, 0xd4b5, 0x3000 }, { 0x8901, 0xd4b3, 0x2000 }, { 0x0901, 0xd4b2, 0x0000 }, { 0x0901, 0xd4b4, 0x0000 }, { 0x8501, 0xd4b7, 0x2000 }, { 0x0501, 0xd4b6, 0x0000 }, { 0x0501, 0xd4b8, 0x0000 }, { 0x8501, 0xd4bf, 0x3000 }, { 0x8501, 0xd4bd, 0x2000 }, { 0x0501, 0xd4bb, 0x0000 }, { 0x0501, 0xd4be, 0x0000 }, { 0x8501, 0xd4c1, 0x2000 }, { 0x0501, 0xd4c0, 0x0000 }, { 0x0501, 0xd4c2, 0x0000 }, { 0x8901, 0xd4d4, 0x5000 }, { 0x8501, 0xd4cc, 0x4000 }, { 0x8501, 0xd4c8, 0x3000 }, { 0x8501, 0xd4c6, 0x2000 }, { 0x0501, 0xd4c5, 0x0000 }, { 0x0501, 0xd4c7, 0x0000 }, { 0x8501, 0xd4ca, 0x2000 }, { 0x0501, 0xd4c9, 0x0000 }, { 0x0501, 0xd4cb, 0x0000 }, { 0x8901, 0xd4d0, 0x3000 }, { 0x8501, 0xd4ce, 0x2000 }, { 0x0501, 0xd4cd, 0x0000 }, { 0x0501, 0xd4cf, 0x0000 }, { 0x8901, 0xd4d2, 0x2000 }, { 0x0901, 0xd4d1, 0x0000 }, { 0x0901, 0xd4d3, 0x0000 }, { 0x8901, 0xd4dc, 0x4000 }, { 0x8901, 0xd4d8, 0x3000 }, { 0x8901, 0xd4d6, 0x2000 }, { 0x0901, 0xd4d5, 0x0000 }, { 0x0901, 0xd4d7, 0x0000 }, { 0x8901, 0xd4da, 0x2000 }, { 0x0901, 0xd4d9, 0x0000 }, { 0x0901, 0xd4db, 0x0000 }, { 0x8901, 0xd4e0, 0x3000 }, { 0x8901, 0xd4de, 0x2000 }, { 0x0901, 0xd4dd, 0x0000 }, { 0x0901, 0xd4df, 0x0000 }, { 0x8901, 0xd4e2, 0x2000 }, { 0x0901, 0xd4e1, 0x0000 }, { 0x0901, 0xd4e3, 0x0000 }, { 0x8501, 0xd529, 0x7000 }, { 0x8901, 0xd504, 0x6000 }, { 0x8501, 0xd4f4, 0x5000 }, { 0x8501, 0xd4ec, 0x4000 }, { 0x8901, 0xd4e8, 0x3000 }, { 0x8901, 0xd4e6, 0x2000 }, { 0x0901, 0xd4e5, 0x0000 }, { 0x0901, 0xd4e7, 0x0000 }, { 0x8501, 0xd4ea, 0x2000 }, { 0x0901, 0xd4e9, 0x0000 }, { 0x0501, 0xd4eb, 0x0000 }, { 0x8501, 0xd4f0, 0x3000 }, { 0x8501, 0xd4ee, 0x2000 }, { 0x0501, 0xd4ed, 0x0000 }, { 0x0501, 0xd4ef, 0x0000 }, { 0x8501, 0xd4f2, 0x2000 }, { 0x0501, 0xd4f1, 0x0000 }, { 0x0501, 0xd4f3, 0x0000 }, { 0x8501, 0xd4fc, 0x4000 }, { 0x8501, 0xd4f8, 0x3000 }, { 0x8501, 0xd4f6, 0x2000 }, { 0x0501, 0xd4f5, 0x0000 }, { 0x0501, 0xd4f7, 0x0000 }, { 0x8501, 0xd4fa, 0x2000 }, { 0x0501, 0xd4f9, 0x0000 }, { 0x0501, 0xd4fb, 0x0000 }, { 0x8501, 0xd500, 0x3000 }, { 0x8501, 0xd4fe, 0x2000 }, { 0x0501, 0xd4fd, 0x0000 }, { 0x0501, 0xd4ff, 0x0000 }, { 0x8501, 0xd502, 0x2000 }, { 0x0501, 0xd501, 0x0000 }, { 0x0501, 0xd503, 0x0000 }, { 0x8901, 0xd518, 0x5000 }, { 0x8901, 0xd50f, 0x4000 }, { 0x8901, 0xd509, 0x3000 }, { 0x8901, 0xd507, 0x2000 }, { 0x0901, 0xd505, 0x0000 }, { 0x0901, 0xd508, 0x0000 }, { 0x8901, 0xd50d, 0x2000 }, { 0x0901, 0xd50a, 0x0000 }, { 0x0901, 0xd50e, 0x0000 }, { 0x8901, 0xd513, 0x3000 }, { 0x8901, 0xd511, 0x2000 }, { 0x0901, 0xd510, 0x0000 }, { 0x0901, 0xd512, 0x0000 }, { 0x8901, 0xd516, 0x2000 }, { 0x0901, 0xd514, 0x0000 }, { 0x0901, 0xd517, 0x0000 }, { 0x8501, 0xd521, 0x4000 }, { 0x8901, 0xd51c, 0x3000 }, { 0x8901, 0xd51a, 0x2000 }, { 0x0901, 0xd519, 0x0000 }, { 0x0901, 0xd51b, 0x0000 }, { 0x8501, 0xd51f, 0x2000 }, { 0x0501, 0xd51e, 0x0000 }, { 0x0501, 0xd520, 0x0000 }, { 0x8501, 0xd525, 0x3000 }, { 0x8501, 0xd523, 0x2000 }, { 0x0501, 0xd522, 0x0000 }, { 0x0501, 0xd524, 0x0000 }, { 0x8501, 0xd527, 0x2000 }, { 0x0501, 0xd526, 0x0000 }, { 0x0501, 0xd528, 0x0000 }, { 0x8901, 0xd54f, 0x6000 }, { 0x8901, 0xd539, 0x5000 }, { 0x8501, 0xd531, 0x4000 }, { 0x8501, 0xd52d, 0x3000 }, { 0x8501, 0xd52b, 0x2000 }, { 0x0501, 0xd52a, 0x0000 }, { 0x0501, 0xd52c, 0x0000 }, { 0x8501, 0xd52f, 0x2000 }, { 0x0501, 0xd52e, 0x0000 }, { 0x0501, 0xd530, 0x0000 }, { 0x8501, 0xd535, 0x3000 }, { 0x8501, 0xd533, 0x2000 }, { 0x0501, 0xd532, 0x0000 }, { 0x0501, 0xd534, 0x0000 }, { 0x8501, 0xd537, 0x2000 }, { 0x0501, 0xd536, 0x0000 }, { 0x0901, 0xd538, 0x0000 }, { 0x8901, 0xd543, 0x4000 }, { 0x8901, 0xd53e, 0x3000 }, { 0x8901, 0xd53c, 0x2000 }, { 0x0901, 0xd53b, 0x0000 }, { 0x0901, 0xd53d, 0x0000 }, { 0x8901, 0xd541, 0x2000 }, { 0x0901, 0xd540, 0x0000 }, { 0x0901, 0xd542, 0x0000 }, { 0x8901, 0xd54b, 0x3000 }, { 0x8901, 0xd546, 0x2000 }, { 0x0901, 0xd544, 0x0000 }, { 0x0901, 0xd54a, 0x0000 }, { 0x8901, 0xd54d, 0x2000 }, { 0x0901, 0xd54c, 0x0000 }, { 0x0901, 0xd54e, 0x0000 }, { 0x8501, 0xd560, 0x5000 }, { 0x8501, 0xd558, 0x4000 }, { 0x8501, 0xd554, 0x3000 }, { 0x8501, 0xd552, 0x2000 }, { 0x0901, 0xd550, 0x0000 }, { 0x0501, 0xd553, 0x0000 }, { 0x8501, 0xd556, 0x2000 }, { 0x0501, 0xd555, 0x0000 }, { 0x0501, 0xd557, 0x0000 }, { 0x8501, 0xd55c, 0x3000 }, { 0x8501, 0xd55a, 0x2000 }, { 0x0501, 0xd559, 0x0000 }, { 0x0501, 0xd55b, 0x0000 }, { 0x8501, 0xd55e, 0x2000 }, { 0x0501, 0xd55d, 0x0000 }, { 0x0501, 0xd55f, 0x0000 }, { 0x8501, 0xd568, 0x4000 }, { 0x8501, 0xd564, 0x3000 }, { 0x8501, 0xd562, 0x2000 }, { 0x0501, 0xd561, 0x0000 }, { 0x0501, 0xd563, 0x0000 }, { 0x8501, 0xd566, 0x2000 }, { 0x0501, 0xd565, 0x0000 }, { 0x0501, 0xd567, 0x0000 }, { 0x8901, 0xd56c, 0x3000 }, { 0x8501, 0xd56a, 0x2000 }, { 0x0501, 0xd569, 0x0000 }, { 0x0501, 0xd56b, 0x0000 }, { 0x8901, 0xd56e, 0x2000 }, { 0x0901, 0xd56d, 0x0000 }, { 0x0901, 0xd56f, 0x0000 }, { 0x8501, 0xd5f0, 0x8000 }, { 0x8901, 0xd5b0, 0x7000 }, { 0x8501, 0xd590, 0x6000 }, { 0x8901, 0xd580, 0x5000 }, { 0x8901, 0xd578, 0x4000 }, { 0x8901, 0xd574, 0x3000 }, { 0x8901, 0xd572, 0x2000 }, { 0x0901, 0xd571, 0x0000 }, { 0x0901, 0xd573, 0x0000 }, { 0x8901, 0xd576, 0x2000 }, { 0x0901, 0xd575, 0x0000 }, { 0x0901, 0xd577, 0x0000 }, { 0x8901, 0xd57c, 0x3000 }, { 0x8901, 0xd57a, 0x2000 }, { 0x0901, 0xd579, 0x0000 }, { 0x0901, 0xd57b, 0x0000 }, { 0x8901, 0xd57e, 0x2000 }, { 0x0901, 0xd57d, 0x0000 }, { 0x0901, 0xd57f, 0x0000 }, { 0x8501, 0xd588, 0x4000 }, { 0x8901, 0xd584, 0x3000 }, { 0x8901, 0xd582, 0x2000 }, { 0x0901, 0xd581, 0x0000 }, { 0x0901, 0xd583, 0x0000 }, { 0x8501, 0xd586, 0x2000 }, { 0x0901, 0xd585, 0x0000 }, { 0x0501, 0xd587, 0x0000 }, { 0x8501, 0xd58c, 0x3000 }, { 0x8501, 0xd58a, 0x2000 }, { 0x0501, 0xd589, 0x0000 }, { 0x0501, 0xd58b, 0x0000 }, { 0x8501, 0xd58e, 0x2000 }, { 0x0501, 0xd58d, 0x0000 }, { 0x0501, 0xd58f, 0x0000 }, { 0x8901, 0xd5a0, 0x5000 }, { 0x8501, 0xd598, 0x4000 }, { 0x8501, 0xd594, 0x3000 }, { 0x8501, 0xd592, 0x2000 }, { 0x0501, 0xd591, 0x0000 }, { 0x0501, 0xd593, 0x0000 }, { 0x8501, 0xd596, 0x2000 }, { 0x0501, 0xd595, 0x0000 }, { 0x0501, 0xd597, 0x0000 }, { 0x8501, 0xd59c, 0x3000 }, { 0x8501, 0xd59a, 0x2000 }, { 0x0501, 0xd599, 0x0000 }, { 0x0501, 0xd59b, 0x0000 }, { 0x8501, 0xd59e, 0x2000 }, { 0x0501, 0xd59d, 0x0000 }, { 0x0501, 0xd59f, 0x0000 }, { 0x8901, 0xd5a8, 0x4000 }, { 0x8901, 0xd5a4, 0x3000 }, { 0x8901, 0xd5a2, 0x2000 }, { 0x0901, 0xd5a1, 0x0000 }, { 0x0901, 0xd5a3, 0x0000 }, { 0x8901, 0xd5a6, 0x2000 }, { 0x0901, 0xd5a5, 0x0000 }, { 0x0901, 0xd5a7, 0x0000 }, { 0x8901, 0xd5ac, 0x3000 }, { 0x8901, 0xd5aa, 0x2000 }, { 0x0901, 0xd5a9, 0x0000 }, { 0x0901, 0xd5ab, 0x0000 }, { 0x8901, 0xd5ae, 0x2000 }, { 0x0901, 0xd5ad, 0x0000 }, { 0x0901, 0xd5af, 0x0000 }, { 0x8501, 0xd5d0, 0x6000 }, { 0x8501, 0xd5c0, 0x5000 }, { 0x8901, 0xd5b8, 0x4000 }, { 0x8901, 0xd5b4, 0x3000 }, { 0x8901, 0xd5b2, 0x2000 }, { 0x0901, 0xd5b1, 0x0000 }, { 0x0901, 0xd5b3, 0x0000 }, { 0x8901, 0xd5b6, 0x2000 }, { 0x0901, 0xd5b5, 0x0000 }, { 0x0901, 0xd5b7, 0x0000 }, { 0x8501, 0xd5bc, 0x3000 }, { 0x8501, 0xd5ba, 0x2000 }, { 0x0901, 0xd5b9, 0x0000 }, { 0x0501, 0xd5bb, 0x0000 }, { 0x8501, 0xd5be, 0x2000 }, { 0x0501, 0xd5bd, 0x0000 }, { 0x0501, 0xd5bf, 0x0000 }, { 0x8501, 0xd5c8, 0x4000 }, { 0x8501, 0xd5c4, 0x3000 }, { 0x8501, 0xd5c2, 0x2000 }, { 0x0501, 0xd5c1, 0x0000 }, { 0x0501, 0xd5c3, 0x0000 }, { 0x8501, 0xd5c6, 0x2000 }, { 0x0501, 0xd5c5, 0x0000 }, { 0x0501, 0xd5c7, 0x0000 }, { 0x8501, 0xd5cc, 0x3000 }, { 0x8501, 0xd5ca, 0x2000 }, { 0x0501, 0xd5c9, 0x0000 }, { 0x0501, 0xd5cb, 0x0000 }, { 0x8501, 0xd5ce, 0x2000 }, { 0x0501, 0xd5cd, 0x0000 }, { 0x0501, 0xd5cf, 0x0000 }, { 0x8901, 0xd5e0, 0x5000 }, { 0x8901, 0xd5d8, 0x4000 }, { 0x8901, 0xd5d4, 0x3000 }, { 0x8501, 0xd5d2, 0x2000 }, { 0x0501, 0xd5d1, 0x0000 }, { 0x0501, 0xd5d3, 0x0000 }, { 0x8901, 0xd5d6, 0x2000 }, { 0x0901, 0xd5d5, 0x0000 }, { 0x0901, 0xd5d7, 0x0000 }, { 0x8901, 0xd5dc, 0x3000 }, { 0x8901, 0xd5da, 0x2000 }, { 0x0901, 0xd5d9, 0x0000 }, { 0x0901, 0xd5db, 0x0000 }, { 0x8901, 0xd5de, 0x2000 }, { 0x0901, 0xd5dd, 0x0000 }, { 0x0901, 0xd5df, 0x0000 }, { 0x8901, 0xd5e8, 0x4000 }, { 0x8901, 0xd5e4, 0x3000 }, { 0x8901, 0xd5e2, 0x2000 }, { 0x0901, 0xd5e1, 0x0000 }, { 0x0901, 0xd5e3, 0x0000 }, { 0x8901, 0xd5e6, 0x2000 }, { 0x0901, 0xd5e5, 0x0000 }, { 0x0901, 0xd5e7, 0x0000 }, { 0x8901, 0xd5ec, 0x3000 }, { 0x8901, 0xd5ea, 0x2000 }, { 0x0901, 0xd5e9, 0x0000 }, { 0x0901, 0xd5eb, 0x0000 }, { 0x8501, 0xd5ee, 0x2000 }, { 0x0901, 0xd5ed, 0x0000 }, { 0x0501, 0xd5ef, 0x0000 }, { 0x8501, 0xd630, 0x7000 }, { 0x8901, 0xd610, 0x6000 }, { 0x8501, 0xd600, 0x5000 }, { 0x8501, 0xd5f8, 0x4000 }, { 0x8501, 0xd5f4, 0x3000 }, { 0x8501, 0xd5f2, 0x2000 }, { 0x0501, 0xd5f1, 0x0000 }, { 0x0501, 0xd5f3, 0x0000 }, { 0x8501, 0xd5f6, 0x2000 }, { 0x0501, 0xd5f5, 0x0000 }, { 0x0501, 0xd5f7, 0x0000 }, { 0x8501, 0xd5fc, 0x3000 }, { 0x8501, 0xd5fa, 0x2000 }, { 0x0501, 0xd5f9, 0x0000 }, { 0x0501, 0xd5fb, 0x0000 }, { 0x8501, 0xd5fe, 0x2000 }, { 0x0501, 0xd5fd, 0x0000 }, { 0x0501, 0xd5ff, 0x0000 }, { 0x8901, 0xd608, 0x4000 }, { 0x8501, 0xd604, 0x3000 }, { 0x8501, 0xd602, 0x2000 }, { 0x0501, 0xd601, 0x0000 }, { 0x0501, 0xd603, 0x0000 }, { 0x8501, 0xd606, 0x2000 }, { 0x0501, 0xd605, 0x0000 }, { 0x0501, 0xd607, 0x0000 }, { 0x8901, 0xd60c, 0x3000 }, { 0x8901, 0xd60a, 0x2000 }, { 0x0901, 0xd609, 0x0000 }, { 0x0901, 0xd60b, 0x0000 }, { 0x8901, 0xd60e, 0x2000 }, { 0x0901, 0xd60d, 0x0000 }, { 0x0901, 0xd60f, 0x0000 }, { 0x8901, 0xd620, 0x5000 }, { 0x8901, 0xd618, 0x4000 }, { 0x8901, 0xd614, 0x3000 }, { 0x8901, 0xd612, 0x2000 }, { 0x0901, 0xd611, 0x0000 }, { 0x0901, 0xd613, 0x0000 }, { 0x8901, 0xd616, 0x2000 }, { 0x0901, 0xd615, 0x0000 }, { 0x0901, 0xd617, 0x0000 }, { 0x8901, 0xd61c, 0x3000 }, { 0x8901, 0xd61a, 0x2000 }, { 0x0901, 0xd619, 0x0000 }, { 0x0901, 0xd61b, 0x0000 }, { 0x8901, 0xd61e, 0x2000 }, { 0x0901, 0xd61d, 0x0000 }, { 0x0901, 0xd61f, 0x0000 }, { 0x8501, 0xd628, 0x4000 }, { 0x8501, 0xd624, 0x3000 }, { 0x8501, 0xd622, 0x2000 }, { 0x0901, 0xd621, 0x0000 }, { 0x0501, 0xd623, 0x0000 }, { 0x8501, 0xd626, 0x2000 }, { 0x0501, 0xd625, 0x0000 }, { 0x0501, 0xd627, 0x0000 }, { 0x8501, 0xd62c, 0x3000 }, { 0x8501, 0xd62a, 0x2000 }, { 0x0501, 0xd629, 0x0000 }, { 0x0501, 0xd62b, 0x0000 }, { 0x8501, 0xd62e, 0x2000 }, { 0x0501, 0xd62d, 0x0000 }, { 0x0501, 0xd62f, 0x0000 }, { 0x8901, 0xd650, 0x6000 }, { 0x8901, 0xd640, 0x5000 }, { 0x8501, 0xd638, 0x4000 }, { 0x8501, 0xd634, 0x3000 }, { 0x8501, 0xd632, 0x2000 }, { 0x0501, 0xd631, 0x0000 }, { 0x0501, 0xd633, 0x0000 }, { 0x8501, 0xd636, 0x2000 }, { 0x0501, 0xd635, 0x0000 }, { 0x0501, 0xd637, 0x0000 }, { 0x8901, 0xd63c, 0x3000 }, { 0x8501, 0xd63a, 0x2000 }, { 0x0501, 0xd639, 0x0000 }, { 0x0501, 0xd63b, 0x0000 }, { 0x8901, 0xd63e, 0x2000 }, { 0x0901, 0xd63d, 0x0000 }, { 0x0901, 0xd63f, 0x0000 }, { 0x8901, 0xd648, 0x4000 }, { 0x8901, 0xd644, 0x3000 }, { 0x8901, 0xd642, 0x2000 }, { 0x0901, 0xd641, 0x0000 }, { 0x0901, 0xd643, 0x0000 }, { 0x8901, 0xd646, 0x2000 }, { 0x0901, 0xd645, 0x0000 }, { 0x0901, 0xd647, 0x0000 }, { 0x8901, 0xd64c, 0x3000 }, { 0x8901, 0xd64a, 0x2000 }, { 0x0901, 0xd649, 0x0000 }, { 0x0901, 0xd64b, 0x0000 }, { 0x8901, 0xd64e, 0x2000 }, { 0x0901, 0xd64d, 0x0000 }, { 0x0901, 0xd64f, 0x0000 }, { 0x8501, 0xd660, 0x5000 }, { 0x8501, 0xd658, 0x4000 }, { 0x8901, 0xd654, 0x3000 }, { 0x8901, 0xd652, 0x2000 }, { 0x0901, 0xd651, 0x0000 }, { 0x0901, 0xd653, 0x0000 }, { 0x8501, 0xd656, 0x2000 }, { 0x0901, 0xd655, 0x0000 }, { 0x0501, 0xd657, 0x0000 }, { 0x8501, 0xd65c, 0x3000 }, { 0x8501, 0xd65a, 0x2000 }, { 0x0501, 0xd659, 0x0000 }, { 0x0501, 0xd65b, 0x0000 }, { 0x8501, 0xd65e, 0x2000 }, { 0x0501, 0xd65d, 0x0000 }, { 0x0501, 0xd65f, 0x0000 }, { 0x8501, 0xd668, 0x4000 }, { 0x8501, 0xd664, 0x3000 }, { 0x8501, 0xd662, 0x2000 }, { 0x0501, 0xd661, 0x0000 }, { 0x0501, 0xd663, 0x0000 }, { 0x8501, 0xd666, 0x2000 }, { 0x0501, 0xd665, 0x0000 }, { 0x0501, 0xd667, 0x0000 }, { 0x8501, 0xd66c, 0x3000 }, { 0x8501, 0xd66a, 0x2000 }, { 0x0501, 0xd669, 0x0000 }, { 0x0501, 0xd66b, 0x0000 }, { 0x8501, 0xd66e, 0x2000 }, { 0x0501, 0xd66d, 0x0000 }, { 0x0501, 0xd66f, 0x0000 }, { 0x8501, 0xd774, 0x9000 }, { 0x8901, 0xd6f4, 0x8000 }, { 0x8901, 0xd6b4, 0x7000 }, { 0x8501, 0xd690, 0x6000 }, { 0x8901, 0xd680, 0x5000 }, { 0x8901, 0xd678, 0x4000 }, { 0x8901, 0xd674, 0x3000 }, { 0x8901, 0xd672, 0x2000 }, { 0x0901, 0xd671, 0x0000 }, { 0x0901, 0xd673, 0x0000 }, { 0x8901, 0xd676, 0x2000 }, { 0x0901, 0xd675, 0x0000 }, { 0x0901, 0xd677, 0x0000 }, { 0x8901, 0xd67c, 0x3000 }, { 0x8901, 0xd67a, 0x2000 }, { 0x0901, 0xd679, 0x0000 }, { 0x0901, 0xd67b, 0x0000 }, { 0x8901, 0xd67e, 0x2000 }, { 0x0901, 0xd67d, 0x0000 }, { 0x0901, 0xd67f, 0x0000 }, { 0x8901, 0xd688, 0x4000 }, { 0x8901, 0xd684, 0x3000 }, { 0x8901, 0xd682, 0x2000 }, { 0x0901, 0xd681, 0x0000 }, { 0x0901, 0xd683, 0x0000 }, { 0x8901, 0xd686, 0x2000 }, { 0x0901, 0xd685, 0x0000 }, { 0x0901, 0xd687, 0x0000 }, { 0x8501, 0xd68c, 0x3000 }, { 0x8501, 0xd68a, 0x2000 }, { 0x0901, 0xd689, 0x0000 }, { 0x0501, 0xd68b, 0x0000 }, { 0x8501, 0xd68e, 0x2000 }, { 0x0501, 0xd68d, 0x0000 }, { 0x0501, 0xd68f, 0x0000 }, { 0x8501, 0xd6a0, 0x5000 }, { 0x8501, 0xd698, 0x4000 }, { 0x8501, 0xd694, 0x3000 }, { 0x8501, 0xd692, 0x2000 }, { 0x0501, 0xd691, 0x0000 }, { 0x0501, 0xd693, 0x0000 }, { 0x8501, 0xd696, 0x2000 }, { 0x0501, 0xd695, 0x0000 }, { 0x0501, 0xd697, 0x0000 }, { 0x8501, 0xd69c, 0x3000 }, { 0x8501, 0xd69a, 0x2000 }, { 0x0501, 0xd699, 0x0000 }, { 0x0501, 0xd69b, 0x0000 }, { 0x8501, 0xd69e, 0x2000 }, { 0x0501, 0xd69d, 0x0000 }, { 0x0501, 0xd69f, 0x0000 }, { 0x8901, 0xd6ac, 0x4000 }, { 0x8901, 0xd6a8, 0x3000 }, { 0x8501, 0xd6a2, 0x2000 }, { 0x0501, 0xd6a1, 0x0000 }, { 0x0501, 0xd6a3, 0x0000 }, { 0x8901, 0xd6aa, 0x2000 }, { 0x0901, 0xd6a9, 0x0000 }, { 0x0901, 0xd6ab, 0x0000 }, { 0x8901, 0xd6b0, 0x3000 }, { 0x8901, 0xd6ae, 0x2000 }, { 0x0901, 0xd6ad, 0x0000 }, { 0x0901, 0xd6af, 0x0000 }, { 0x8901, 0xd6b2, 0x2000 }, { 0x0901, 0xd6b1, 0x0000 }, { 0x0901, 0xd6b3, 0x0000 }, { 0x8501, 0xd6d4, 0x6000 }, { 0x8501, 0xd6c4, 0x5000 }, { 0x8901, 0xd6bc, 0x4000 }, { 0x8901, 0xd6b8, 0x3000 }, { 0x8901, 0xd6b6, 0x2000 }, { 0x0901, 0xd6b5, 0x0000 }, { 0x0901, 0xd6b7, 0x0000 }, { 0x8901, 0xd6ba, 0x2000 }, { 0x0901, 0xd6b9, 0x0000 }, { 0x0901, 0xd6bb, 0x0000 }, { 0x8901, 0xd6c0, 0x3000 }, { 0x8901, 0xd6be, 0x2000 }, { 0x0901, 0xd6bd, 0x0000 }, { 0x0901, 0xd6bf, 0x0000 }, { 0x8501, 0xd6c2, 0x2000 }, { 0x1901, 0xd6c1, 0x0000 }, { 0x0501, 0xd6c3, 0x0000 }, { 0x8501, 0xd6cc, 0x4000 }, { 0x8501, 0xd6c8, 0x3000 }, { 0x8501, 0xd6c6, 0x2000 }, { 0x0501, 0xd6c5, 0x0000 }, { 0x0501, 0xd6c7, 0x0000 }, { 0x8501, 0xd6ca, 0x2000 }, { 0x0501, 0xd6c9, 0x0000 }, { 0x0501, 0xd6cb, 0x0000 }, { 0x8501, 0xd6d0, 0x3000 }, { 0x8501, 0xd6ce, 0x2000 }, { 0x0501, 0xd6cd, 0x0000 }, { 0x0501, 0xd6cf, 0x0000 }, { 0x8501, 0xd6d2, 0x2000 }, { 0x0501, 0xd6d1, 0x0000 }, { 0x0501, 0xd6d3, 0x0000 }, { 0x8901, 0xd6e4, 0x5000 }, { 0x8501, 0xd6dc, 0x4000 }, { 0x8501, 0xd6d8, 0x3000 }, { 0x8501, 0xd6d6, 0x2000 }, { 0x0501, 0xd6d5, 0x0000 }, { 0x0501, 0xd6d7, 0x0000 }, { 0x8501, 0xd6da, 0x2000 }, { 0x0501, 0xd6d9, 0x0000 }, { 0x1901, 0xd6db, 0x0000 }, { 0x8501, 0xd6e0, 0x3000 }, { 0x8501, 0xd6de, 0x2000 }, { 0x0501, 0xd6dd, 0x0000 }, { 0x0501, 0xd6df, 0x0000 }, { 0x8901, 0xd6e2, 0x2000 }, { 0x0501, 0xd6e1, 0x0000 }, { 0x0901, 0xd6e3, 0x0000 }, { 0x8901, 0xd6ec, 0x4000 }, { 0x8901, 0xd6e8, 0x3000 }, { 0x8901, 0xd6e6, 0x2000 }, { 0x0901, 0xd6e5, 0x0000 }, { 0x0901, 0xd6e7, 0x0000 }, { 0x8901, 0xd6ea, 0x2000 }, { 0x0901, 0xd6e9, 0x0000 }, { 0x0901, 0xd6eb, 0x0000 }, { 0x8901, 0xd6f0, 0x3000 }, { 0x8901, 0xd6ee, 0x2000 }, { 0x0901, 0xd6ed, 0x0000 }, { 0x0901, 0xd6ef, 0x0000 }, { 0x8901, 0xd6f2, 0x2000 }, { 0x0901, 0xd6f1, 0x0000 }, { 0x0901, 0xd6f3, 0x0000 }, { 0x8901, 0xd734, 0x7000 }, { 0x8501, 0xd714, 0x6000 }, { 0x8501, 0xd704, 0x5000 }, { 0x8501, 0xd6fc, 0x4000 }, { 0x8901, 0xd6f8, 0x3000 }, { 0x8901, 0xd6f6, 0x2000 }, { 0x0901, 0xd6f5, 0x0000 }, { 0x0901, 0xd6f7, 0x0000 }, { 0x8901, 0xd6fa, 0x2000 }, { 0x0901, 0xd6f9, 0x0000 }, { 0x1901, 0xd6fb, 0x0000 }, { 0x8501, 0xd700, 0x3000 }, { 0x8501, 0xd6fe, 0x2000 }, { 0x0501, 0xd6fd, 0x0000 }, { 0x0501, 0xd6ff, 0x0000 }, { 0x8501, 0xd702, 0x2000 }, { 0x0501, 0xd701, 0x0000 }, { 0x0501, 0xd703, 0x0000 }, { 0x8501, 0xd70c, 0x4000 }, { 0x8501, 0xd708, 0x3000 }, { 0x8501, 0xd706, 0x2000 }, { 0x0501, 0xd705, 0x0000 }, { 0x0501, 0xd707, 0x0000 }, { 0x8501, 0xd70a, 0x2000 }, { 0x0501, 0xd709, 0x0000 }, { 0x0501, 0xd70b, 0x0000 }, { 0x8501, 0xd710, 0x3000 }, { 0x8501, 0xd70e, 0x2000 }, { 0x0501, 0xd70d, 0x0000 }, { 0x0501, 0xd70f, 0x0000 }, { 0x8501, 0xd712, 0x2000 }, { 0x0501, 0xd711, 0x0000 }, { 0x0501, 0xd713, 0x0000 }, { 0x8901, 0xd724, 0x5000 }, { 0x8901, 0xd71c, 0x4000 }, { 0x8501, 0xd718, 0x3000 }, { 0x8501, 0xd716, 0x2000 }, { 0x1901, 0xd715, 0x0000 }, { 0x0501, 0xd717, 0x0000 }, { 0x8501, 0xd71a, 0x2000 }, { 0x0501, 0xd719, 0x0000 }, { 0x0501, 0xd71b, 0x0000 }, { 0x8901, 0xd720, 0x3000 }, { 0x8901, 0xd71e, 0x2000 }, { 0x0901, 0xd71d, 0x0000 }, { 0x0901, 0xd71f, 0x0000 }, { 0x8901, 0xd722, 0x2000 }, { 0x0901, 0xd721, 0x0000 }, { 0x0901, 0xd723, 0x0000 }, { 0x8901, 0xd72c, 0x4000 }, { 0x8901, 0xd728, 0x3000 }, { 0x8901, 0xd726, 0x2000 }, { 0x0901, 0xd725, 0x0000 }, { 0x0901, 0xd727, 0x0000 }, { 0x8901, 0xd72a, 0x2000 }, { 0x0901, 0xd729, 0x0000 }, { 0x0901, 0xd72b, 0x0000 }, { 0x8901, 0xd730, 0x3000 }, { 0x8901, 0xd72e, 0x2000 }, { 0x0901, 0xd72d, 0x0000 }, { 0x0901, 0xd72f, 0x0000 }, { 0x8901, 0xd732, 0x2000 }, { 0x0901, 0xd731, 0x0000 }, { 0x0901, 0xd733, 0x0000 }, { 0x8501, 0xd754, 0x6000 }, { 0x8501, 0xd744, 0x5000 }, { 0x8501, 0xd73c, 0x4000 }, { 0x8501, 0xd738, 0x3000 }, { 0x8501, 0xd736, 0x2000 }, { 0x1901, 0xd735, 0x0000 }, { 0x0501, 0xd737, 0x0000 }, { 0x8501, 0xd73a, 0x2000 }, { 0x0501, 0xd739, 0x0000 }, { 0x0501, 0xd73b, 0x0000 }, { 0x8501, 0xd740, 0x3000 }, { 0x8501, 0xd73e, 0x2000 }, { 0x0501, 0xd73d, 0x0000 }, { 0x0501, 0xd73f, 0x0000 }, { 0x8501, 0xd742, 0x2000 }, { 0x0501, 0xd741, 0x0000 }, { 0x0501, 0xd743, 0x0000 }, { 0x8501, 0xd74c, 0x4000 }, { 0x8501, 0xd748, 0x3000 }, { 0x8501, 0xd746, 0x2000 }, { 0x0501, 0xd745, 0x0000 }, { 0x0501, 0xd747, 0x0000 }, { 0x8501, 0xd74a, 0x2000 }, { 0x0501, 0xd749, 0x0000 }, { 0x0501, 0xd74b, 0x0000 }, { 0x8501, 0xd750, 0x3000 }, { 0x8501, 0xd74e, 0x2000 }, { 0x0501, 0xd74d, 0x0000 }, { 0x1901, 0xd74f, 0x0000 }, { 0x8501, 0xd752, 0x2000 }, { 0x0501, 0xd751, 0x0000 }, { 0x0501, 0xd753, 0x0000 }, { 0x8901, 0xd764, 0x5000 }, { 0x8901, 0xd75c, 0x4000 }, { 0x8901, 0xd758, 0x3000 }, { 0x8901, 0xd756, 0x2000 }, { 0x0501, 0xd755, 0x0000 }, { 0x0901, 0xd757, 0x0000 }, { 0x8901, 0xd75a, 0x2000 }, { 0x0901, 0xd759, 0x0000 }, { 0x0901, 0xd75b, 0x0000 }, { 0x8901, 0xd760, 0x3000 }, { 0x8901, 0xd75e, 0x2000 }, { 0x0901, 0xd75d, 0x0000 }, { 0x0901, 0xd75f, 0x0000 }, { 0x8901, 0xd762, 0x2000 }, { 0x0901, 0xd761, 0x0000 }, { 0x0901, 0xd763, 0x0000 }, { 0x8901, 0xd76c, 0x4000 }, { 0x8901, 0xd768, 0x3000 }, { 0x8901, 0xd766, 0x2000 }, { 0x0901, 0xd765, 0x0000 }, { 0x0901, 0xd767, 0x0000 }, { 0x8901, 0xd76a, 0x2000 }, { 0x0901, 0xd769, 0x0000 }, { 0x0901, 0xd76b, 0x0000 }, { 0x8501, 0xd770, 0x3000 }, { 0x8901, 0xd76e, 0x2000 }, { 0x0901, 0xd76d, 0x0000 }, { 0x1901, 0xd76f, 0x0000 }, { 0x8501, 0xd772, 0x2000 }, { 0x0501, 0xd771, 0x0000 }, { 0x0501, 0xd773, 0x0000 }, { 0x8d01, 0xd7f8, 0x8000 }, { 0x8501, 0xd7b4, 0x7000 }, { 0x8901, 0xd794, 0x6000 }, { 0x8501, 0xd784, 0x5000 }, { 0x8501, 0xd77c, 0x4000 }, { 0x8501, 0xd778, 0x3000 }, { 0x8501, 0xd776, 0x2000 }, { 0x0501, 0xd775, 0x0000 }, { 0x0501, 0xd777, 0x0000 }, { 0x8501, 0xd77a, 0x2000 }, { 0x0501, 0xd779, 0x0000 }, { 0x0501, 0xd77b, 0x0000 }, { 0x8501, 0xd780, 0x3000 }, { 0x8501, 0xd77e, 0x2000 }, { 0x0501, 0xd77d, 0x0000 }, { 0x0501, 0xd77f, 0x0000 }, { 0x8501, 0xd782, 0x2000 }, { 0x0501, 0xd781, 0x0000 }, { 0x0501, 0xd783, 0x0000 }, { 0x8501, 0xd78c, 0x4000 }, { 0x8501, 0xd788, 0x3000 }, { 0x8501, 0xd786, 0x2000 }, { 0x0501, 0xd785, 0x0000 }, { 0x0501, 0xd787, 0x0000 }, { 0x8501, 0xd78a, 0x2000 }, { 0x1901, 0xd789, 0x0000 }, { 0x0501, 0xd78b, 0x0000 }, { 0x8901, 0xd790, 0x3000 }, { 0x8501, 0xd78e, 0x2000 }, { 0x0501, 0xd78d, 0x0000 }, { 0x0501, 0xd78f, 0x0000 }, { 0x8901, 0xd792, 0x2000 }, { 0x0901, 0xd791, 0x0000 }, { 0x0901, 0xd793, 0x0000 }, { 0x8901, 0xd7a4, 0x5000 }, { 0x8901, 0xd79c, 0x4000 }, { 0x8901, 0xd798, 0x3000 }, { 0x8901, 0xd796, 0x2000 }, { 0x0901, 0xd795, 0x0000 }, { 0x0901, 0xd797, 0x0000 }, { 0x8901, 0xd79a, 0x2000 }, { 0x0901, 0xd799, 0x0000 }, { 0x0901, 0xd79b, 0x0000 }, { 0x8901, 0xd7a0, 0x3000 }, { 0x8901, 0xd79e, 0x2000 }, { 0x0901, 0xd79d, 0x0000 }, { 0x0901, 0xd79f, 0x0000 }, { 0x8901, 0xd7a2, 0x2000 }, { 0x0901, 0xd7a1, 0x0000 }, { 0x0901, 0xd7a3, 0x0000 }, { 0x8501, 0xd7ac, 0x4000 }, { 0x8901, 0xd7a8, 0x3000 }, { 0x8901, 0xd7a6, 0x2000 }, { 0x0901, 0xd7a5, 0x0000 }, { 0x0901, 0xd7a7, 0x0000 }, { 0x8501, 0xd7aa, 0x2000 }, { 0x1901, 0xd7a9, 0x0000 }, { 0x0501, 0xd7ab, 0x0000 }, { 0x8501, 0xd7b0, 0x3000 }, { 0x8501, 0xd7ae, 0x2000 }, { 0x0501, 0xd7ad, 0x0000 }, { 0x0501, 0xd7af, 0x0000 }, { 0x8501, 0xd7b2, 0x2000 }, { 0x0501, 0xd7b1, 0x0000 }, { 0x0501, 0xd7b3, 0x0000 }, { 0x8d01, 0xd7d8, 0x6000 }, { 0x8501, 0xd7c4, 0x5000 }, { 0x8501, 0xd7bc, 0x4000 }, { 0x8501, 0xd7b8, 0x3000 }, { 0x8501, 0xd7b6, 0x2000 }, { 0x0501, 0xd7b5, 0x0000 }, { 0x0501, 0xd7b7, 0x0000 }, { 0x8501, 0xd7ba, 0x2000 }, { 0x0501, 0xd7b9, 0x0000 }, { 0x0501, 0xd7bb, 0x0000 }, { 0x8501, 0xd7c0, 0x3000 }, { 0x8501, 0xd7be, 0x2000 }, { 0x0501, 0xd7bd, 0x0000 }, { 0x0501, 0xd7bf, 0x0000 }, { 0x8501, 0xd7c2, 0x2000 }, { 0x0501, 0xd7c1, 0x0000 }, { 0x1901, 0xd7c3, 0x0000 }, { 0x8d01, 0xd7d0, 0x4000 }, { 0x8501, 0xd7c8, 0x3000 }, { 0x8501, 0xd7c6, 0x2000 }, { 0x0501, 0xd7c5, 0x0000 }, { 0x0501, 0xd7c7, 0x0000 }, { 0x8d01, 0xd7ce, 0x2000 }, { 0x0501, 0xd7c9, 0x0000 }, { 0x0d01, 0xd7cf, 0x0000 }, { 0x8d01, 0xd7d4, 0x3000 }, { 0x8d01, 0xd7d2, 0x2000 }, { 0x0d01, 0xd7d1, 0x0000 }, { 0x0d01, 0xd7d3, 0x0000 }, { 0x8d01, 0xd7d6, 0x2000 }, { 0x0d01, 0xd7d5, 0x0000 }, { 0x0d01, 0xd7d7, 0x0000 }, { 0x8d01, 0xd7e8, 0x5000 }, { 0x8d01, 0xd7e0, 0x4000 }, { 0x8d01, 0xd7dc, 0x3000 }, { 0x8d01, 0xd7da, 0x2000 }, { 0x0d01, 0xd7d9, 0x0000 }, { 0x0d01, 0xd7db, 0x0000 }, { 0x8d01, 0xd7de, 0x2000 }, { 0x0d01, 0xd7dd, 0x0000 }, { 0x0d01, 0xd7df, 0x0000 }, { 0x8d01, 0xd7e4, 0x3000 }, { 0x8d01, 0xd7e2, 0x2000 }, { 0x0d01, 0xd7e1, 0x0000 }, { 0x0d01, 0xd7e3, 0x0000 }, { 0x8d01, 0xd7e6, 0x2000 }, { 0x0d01, 0xd7e5, 0x0000 }, { 0x0d01, 0xd7e7, 0x0000 }, { 0x8d01, 0xd7f0, 0x4000 }, { 0x8d01, 0xd7ec, 0x3000 }, { 0x8d01, 0xd7ea, 0x2000 }, { 0x0d01, 0xd7e9, 0x0000 }, { 0x0d01, 0xd7eb, 0x0000 }, { 0x8d01, 0xd7ee, 0x2000 }, { 0x0d01, 0xd7ed, 0x0000 }, { 0x0d01, 0xd7ef, 0x0000 }, { 0x8d01, 0xd7f4, 0x3000 }, { 0x8d01, 0xd7f2, 0x2000 }, { 0x0d01, 0xd7f1, 0x0000 }, { 0x0d01, 0xd7f3, 0x0000 }, { 0x8d01, 0xd7f6, 0x2000 }, { 0x0d01, 0xd7f5, 0x0000 }, { 0x0d01, 0xd7f7, 0x0000 }, { 0x8702, 0xf836, 0x7000 }, { 0x8702, 0xf816, 0x6000 }, { 0x8702, 0xf806, 0x5000 }, { 0x8702, 0x0000, 0x4000 }, { 0x8d01, 0xd7fc, 0x3000 }, { 0x8d01, 0xd7fa, 0x2000 }, { 0x0d01, 0xd7f9, 0x0000 }, { 0x0d01, 0xd7fb, 0x0000 }, { 0x8d01, 0xd7fe, 0x2000 }, { 0x0d01, 0xd7fd, 0x0000 }, { 0x0d01, 0xd7ff, 0x0000 }, { 0x8702, 0xf802, 0x3000 }, { 0x8702, 0xf800, 0x2000 }, { 0x0702, 0xa6d6, 0x0000 }, { 0x0702, 0xf801, 0x0000 }, { 0x8702, 0xf804, 0x2000 }, { 0x0702, 0xf803, 0x0000 }, { 0x0702, 0xf805, 0x0000 }, { 0x8702, 0xf80e, 0x4000 }, { 0x8702, 0xf80a, 0x3000 }, { 0x8702, 0xf808, 0x2000 }, { 0x0702, 0xf807, 0x0000 }, { 0x0702, 0xf809, 0x0000 }, { 0x8702, 0xf80c, 0x2000 }, { 0x0702, 0xf80b, 0x0000 }, { 0x0702, 0xf80d, 0x0000 }, { 0x8702, 0xf812, 0x3000 }, { 0x8702, 0xf810, 0x2000 }, { 0x0702, 0xf80f, 0x0000 }, { 0x0702, 0xf811, 0x0000 }, { 0x8702, 0xf814, 0x2000 }, { 0x0702, 0xf813, 0x0000 }, { 0x0702, 0xf815, 0x0000 }, { 0x8702, 0xf826, 0x5000 }, { 0x8702, 0xf81e, 0x4000 }, { 0x8702, 0xf81a, 0x3000 }, { 0x8702, 0xf818, 0x2000 }, { 0x0702, 0xf817, 0x0000 }, { 0x0702, 0xf819, 0x0000 }, { 0x8702, 0xf81c, 0x2000 }, { 0x0702, 0xf81b, 0x0000 }, { 0x0702, 0xf81d, 0x0000 }, { 0x8702, 0xf822, 0x3000 }, { 0x8702, 0xf820, 0x2000 }, { 0x0702, 0xf81f, 0x0000 }, { 0x0702, 0xf821, 0x0000 }, { 0x8702, 0xf824, 0x2000 }, { 0x0702, 0xf823, 0x0000 }, { 0x0702, 0xf825, 0x0000 }, { 0x8702, 0xf82e, 0x4000 }, { 0x8702, 0xf82a, 0x3000 }, { 0x8702, 0xf828, 0x2000 }, { 0x0702, 0xf827, 0x0000 }, { 0x0702, 0xf829, 0x0000 }, { 0x8702, 0xf82c, 0x2000 }, { 0x0702, 0xf82b, 0x0000 }, { 0x0702, 0xf82d, 0x0000 }, { 0x8702, 0xf832, 0x3000 }, { 0x8702, 0xf830, 0x2000 }, { 0x0702, 0xf82f, 0x0000 }, { 0x0702, 0xf831, 0x0000 }, { 0x8702, 0xf834, 0x2000 }, { 0x0702, 0xf833, 0x0000 }, { 0x0702, 0xf835, 0x0000 }, { 0x8702, 0xf856, 0x6000 }, { 0x8702, 0xf846, 0x5000 }, { 0x8702, 0xf83e, 0x4000 }, { 0x8702, 0xf83a, 0x3000 }, { 0x8702, 0xf838, 0x2000 }, { 0x0702, 0xf837, 0x0000 }, { 0x0702, 0xf839, 0x0000 }, { 0x8702, 0xf83c, 0x2000 }, { 0x0702, 0xf83b, 0x0000 }, { 0x0702, 0xf83d, 0x0000 }, { 0x8702, 0xf842, 0x3000 }, { 0x8702, 0xf840, 0x2000 }, { 0x0702, 0xf83f, 0x0000 }, { 0x0702, 0xf841, 0x0000 }, { 0x8702, 0xf844, 0x2000 }, { 0x0702, 0xf843, 0x0000 }, { 0x0702, 0xf845, 0x0000 }, { 0x8702, 0xf84e, 0x4000 }, { 0x8702, 0xf84a, 0x3000 }, { 0x8702, 0xf848, 0x2000 }, { 0x0702, 0xf847, 0x0000 }, { 0x0702, 0xf849, 0x0000 }, { 0x8702, 0xf84c, 0x2000 }, { 0x0702, 0xf84b, 0x0000 }, { 0x0702, 0xf84d, 0x0000 }, { 0x8702, 0xf852, 0x3000 }, { 0x8702, 0xf850, 0x2000 }, { 0x0702, 0xf84f, 0x0000 }, { 0x0702, 0xf851, 0x0000 }, { 0x8702, 0xf854, 0x2000 }, { 0x0702, 0xf853, 0x0000 }, { 0x0702, 0xf855, 0x0000 }, { 0x8702, 0xf866, 0x5000 }, { 0x8702, 0xf85e, 0x4000 }, { 0x8702, 0xf85a, 0x3000 }, { 0x8702, 0xf858, 0x2000 }, { 0x0702, 0xf857, 0x0000 }, { 0x0702, 0xf859, 0x0000 }, { 0x8702, 0xf85c, 0x2000 }, { 0x0702, 0xf85b, 0x0000 }, { 0x0702, 0xf85d, 0x0000 }, { 0x8702, 0xf862, 0x3000 }, { 0x8702, 0xf860, 0x2000 }, { 0x0702, 0xf85f, 0x0000 }, { 0x0702, 0xf861, 0x0000 }, { 0x8702, 0xf864, 0x2000 }, { 0x0702, 0xf863, 0x0000 }, { 0x0702, 0xf865, 0x0000 }, { 0x8702, 0xf86e, 0x4000 }, { 0x8702, 0xf86a, 0x3000 }, { 0x8702, 0xf868, 0x2000 }, { 0x0702, 0xf867, 0x0000 }, { 0x0702, 0xf869, 0x0000 }, { 0x8702, 0xf86c, 0x2000 }, { 0x0702, 0xf86b, 0x0000 }, { 0x0702, 0xf86d, 0x0000 }, { 0x8702, 0xf872, 0x3000 }, { 0x8702, 0xf870, 0x2000 }, { 0x0702, 0xf86f, 0x0000 }, { 0x0702, 0xf871, 0x0000 }, { 0x8702, 0xf874, 0x2000 }, { 0x0702, 0xf873, 0x0000 }, { 0x0702, 0xf875, 0x0000 }, { 0x8702, 0xf976, 0x9000 }, { 0x8702, 0xf8f6, 0x8000 }, { 0x8702, 0xf8b6, 0x7000 }, { 0x8702, 0xf896, 0x6000 }, { 0x8702, 0xf886, 0x5000 }, { 0x8702, 0xf87e, 0x4000 }, { 0x8702, 0xf87a, 0x3000 }, { 0x8702, 0xf878, 0x2000 }, { 0x0702, 0xf877, 0x0000 }, { 0x0702, 0xf879, 0x0000 }, { 0x8702, 0xf87c, 0x2000 }, { 0x0702, 0xf87b, 0x0000 }, { 0x0702, 0xf87d, 0x0000 }, { 0x8702, 0xf882, 0x3000 }, { 0x8702, 0xf880, 0x2000 }, { 0x0702, 0xf87f, 0x0000 }, { 0x0702, 0xf881, 0x0000 }, { 0x8702, 0xf884, 0x2000 }, { 0x0702, 0xf883, 0x0000 }, { 0x0702, 0xf885, 0x0000 }, { 0x8702, 0xf88e, 0x4000 }, { 0x8702, 0xf88a, 0x3000 }, { 0x8702, 0xf888, 0x2000 }, { 0x0702, 0xf887, 0x0000 }, { 0x0702, 0xf889, 0x0000 }, { 0x8702, 0xf88c, 0x2000 }, { 0x0702, 0xf88b, 0x0000 }, { 0x0702, 0xf88d, 0x0000 }, { 0x8702, 0xf892, 0x3000 }, { 0x8702, 0xf890, 0x2000 }, { 0x0702, 0xf88f, 0x0000 }, { 0x0702, 0xf891, 0x0000 }, { 0x8702, 0xf894, 0x2000 }, { 0x0702, 0xf893, 0x0000 }, { 0x0702, 0xf895, 0x0000 }, { 0x8702, 0xf8a6, 0x5000 }, { 0x8702, 0xf89e, 0x4000 }, { 0x8702, 0xf89a, 0x3000 }, { 0x8702, 0xf898, 0x2000 }, { 0x0702, 0xf897, 0x0000 }, { 0x0702, 0xf899, 0x0000 }, { 0x8702, 0xf89c, 0x2000 }, { 0x0702, 0xf89b, 0x0000 }, { 0x0702, 0xf89d, 0x0000 }, { 0x8702, 0xf8a2, 0x3000 }, { 0x8702, 0xf8a0, 0x2000 }, { 0x0702, 0xf89f, 0x0000 }, { 0x0702, 0xf8a1, 0x0000 }, { 0x8702, 0xf8a4, 0x2000 }, { 0x0702, 0xf8a3, 0x0000 }, { 0x0702, 0xf8a5, 0x0000 }, { 0x8702, 0xf8ae, 0x4000 }, { 0x8702, 0xf8aa, 0x3000 }, { 0x8702, 0xf8a8, 0x2000 }, { 0x0702, 0xf8a7, 0x0000 }, { 0x0702, 0xf8a9, 0x0000 }, { 0x8702, 0xf8ac, 0x2000 }, { 0x0702, 0xf8ab, 0x0000 }, { 0x0702, 0xf8ad, 0x0000 }, { 0x8702, 0xf8b2, 0x3000 }, { 0x8702, 0xf8b0, 0x2000 }, { 0x0702, 0xf8af, 0x0000 }, { 0x0702, 0xf8b1, 0x0000 }, { 0x8702, 0xf8b4, 0x2000 }, { 0x0702, 0xf8b3, 0x0000 }, { 0x0702, 0xf8b5, 0x0000 }, { 0x8702, 0xf8d6, 0x6000 }, { 0x8702, 0xf8c6, 0x5000 }, { 0x8702, 0xf8be, 0x4000 }, { 0x8702, 0xf8ba, 0x3000 }, { 0x8702, 0xf8b8, 0x2000 }, { 0x0702, 0xf8b7, 0x0000 }, { 0x0702, 0xf8b9, 0x0000 }, { 0x8702, 0xf8bc, 0x2000 }, { 0x0702, 0xf8bb, 0x0000 }, { 0x0702, 0xf8bd, 0x0000 }, { 0x8702, 0xf8c2, 0x3000 }, { 0x8702, 0xf8c0, 0x2000 }, { 0x0702, 0xf8bf, 0x0000 }, { 0x0702, 0xf8c1, 0x0000 }, { 0x8702, 0xf8c4, 0x2000 }, { 0x0702, 0xf8c3, 0x0000 }, { 0x0702, 0xf8c5, 0x0000 }, { 0x8702, 0xf8ce, 0x4000 }, { 0x8702, 0xf8ca, 0x3000 }, { 0x8702, 0xf8c8, 0x2000 }, { 0x0702, 0xf8c7, 0x0000 }, { 0x0702, 0xf8c9, 0x0000 }, { 0x8702, 0xf8cc, 0x2000 }, { 0x0702, 0xf8cb, 0x0000 }, { 0x0702, 0xf8cd, 0x0000 }, { 0x8702, 0xf8d2, 0x3000 }, { 0x8702, 0xf8d0, 0x2000 }, { 0x0702, 0xf8cf, 0x0000 }, { 0x0702, 0xf8d1, 0x0000 }, { 0x8702, 0xf8d4, 0x2000 }, { 0x0702, 0xf8d3, 0x0000 }, { 0x0702, 0xf8d5, 0x0000 }, { 0x8702, 0xf8e6, 0x5000 }, { 0x8702, 0xf8de, 0x4000 }, { 0x8702, 0xf8da, 0x3000 }, { 0x8702, 0xf8d8, 0x2000 }, { 0x0702, 0xf8d7, 0x0000 }, { 0x0702, 0xf8d9, 0x0000 }, { 0x8702, 0xf8dc, 0x2000 }, { 0x0702, 0xf8db, 0x0000 }, { 0x0702, 0xf8dd, 0x0000 }, { 0x8702, 0xf8e2, 0x3000 }, { 0x8702, 0xf8e0, 0x2000 }, { 0x0702, 0xf8df, 0x0000 }, { 0x0702, 0xf8e1, 0x0000 }, { 0x8702, 0xf8e4, 0x2000 }, { 0x0702, 0xf8e3, 0x0000 }, { 0x0702, 0xf8e5, 0x0000 }, { 0x8702, 0xf8ee, 0x4000 }, { 0x8702, 0xf8ea, 0x3000 }, { 0x8702, 0xf8e8, 0x2000 }, { 0x0702, 0xf8e7, 0x0000 }, { 0x0702, 0xf8e9, 0x0000 }, { 0x8702, 0xf8ec, 0x2000 }, { 0x0702, 0xf8eb, 0x0000 }, { 0x0702, 0xf8ed, 0x0000 }, { 0x8702, 0xf8f2, 0x3000 }, { 0x8702, 0xf8f0, 0x2000 }, { 0x0702, 0xf8ef, 0x0000 }, { 0x0702, 0xf8f1, 0x0000 }, { 0x8702, 0xf8f4, 0x2000 }, { 0x0702, 0xf8f3, 0x0000 }, { 0x0702, 0xf8f5, 0x0000 }, { 0x8702, 0xf936, 0x7000 }, { 0x8702, 0xf916, 0x6000 }, { 0x8702, 0xf906, 0x5000 }, { 0x8702, 0xf8fe, 0x4000 }, { 0x8702, 0xf8fa, 0x3000 }, { 0x8702, 0xf8f8, 0x2000 }, { 0x0702, 0xf8f7, 0x0000 }, { 0x0702, 0xf8f9, 0x0000 }, { 0x8702, 0xf8fc, 0x2000 }, { 0x0702, 0xf8fb, 0x0000 }, { 0x0702, 0xf8fd, 0x0000 }, { 0x8702, 0xf902, 0x3000 }, { 0x8702, 0xf900, 0x2000 }, { 0x0702, 0xf8ff, 0x0000 }, { 0x0702, 0xf901, 0x0000 }, { 0x8702, 0xf904, 0x2000 }, { 0x0702, 0xf903, 0x0000 }, { 0x0702, 0xf905, 0x0000 }, { 0x8702, 0xf90e, 0x4000 }, { 0x8702, 0xf90a, 0x3000 }, { 0x8702, 0xf908, 0x2000 }, { 0x0702, 0xf907, 0x0000 }, { 0x0702, 0xf909, 0x0000 }, { 0x8702, 0xf90c, 0x2000 }, { 0x0702, 0xf90b, 0x0000 }, { 0x0702, 0xf90d, 0x0000 }, { 0x8702, 0xf912, 0x3000 }, { 0x8702, 0xf910, 0x2000 }, { 0x0702, 0xf90f, 0x0000 }, { 0x0702, 0xf911, 0x0000 }, { 0x8702, 0xf914, 0x2000 }, { 0x0702, 0xf913, 0x0000 }, { 0x0702, 0xf915, 0x0000 }, { 0x8702, 0xf926, 0x5000 }, { 0x8702, 0xf91e, 0x4000 }, { 0x8702, 0xf91a, 0x3000 }, { 0x8702, 0xf918, 0x2000 }, { 0x0702, 0xf917, 0x0000 }, { 0x0702, 0xf919, 0x0000 }, { 0x8702, 0xf91c, 0x2000 }, { 0x0702, 0xf91b, 0x0000 }, { 0x0702, 0xf91d, 0x0000 }, { 0x8702, 0xf922, 0x3000 }, { 0x8702, 0xf920, 0x2000 }, { 0x0702, 0xf91f, 0x0000 }, { 0x0702, 0xf921, 0x0000 }, { 0x8702, 0xf924, 0x2000 }, { 0x0702, 0xf923, 0x0000 }, { 0x0702, 0xf925, 0x0000 }, { 0x8702, 0xf92e, 0x4000 }, { 0x8702, 0xf92a, 0x3000 }, { 0x8702, 0xf928, 0x2000 }, { 0x0702, 0xf927, 0x0000 }, { 0x0702, 0xf929, 0x0000 }, { 0x8702, 0xf92c, 0x2000 }, { 0x0702, 0xf92b, 0x0000 }, { 0x0702, 0xf92d, 0x0000 }, { 0x8702, 0xf932, 0x3000 }, { 0x8702, 0xf930, 0x2000 }, { 0x0702, 0xf92f, 0x0000 }, { 0x0702, 0xf931, 0x0000 }, { 0x8702, 0xf934, 0x2000 }, { 0x0702, 0xf933, 0x0000 }, { 0x0702, 0xf935, 0x0000 }, { 0x8702, 0xf956, 0x6000 }, { 0x8702, 0xf946, 0x5000 }, { 0x8702, 0xf93e, 0x4000 }, { 0x8702, 0xf93a, 0x3000 }, { 0x8702, 0xf938, 0x2000 }, { 0x0702, 0xf937, 0x0000 }, { 0x0702, 0xf939, 0x0000 }, { 0x8702, 0xf93c, 0x2000 }, { 0x0702, 0xf93b, 0x0000 }, { 0x0702, 0xf93d, 0x0000 }, { 0x8702, 0xf942, 0x3000 }, { 0x8702, 0xf940, 0x2000 }, { 0x0702, 0xf93f, 0x0000 }, { 0x0702, 0xf941, 0x0000 }, { 0x8702, 0xf944, 0x2000 }, { 0x0702, 0xf943, 0x0000 }, { 0x0702, 0xf945, 0x0000 }, { 0x8702, 0xf94e, 0x4000 }, { 0x8702, 0xf94a, 0x3000 }, { 0x8702, 0xf948, 0x2000 }, { 0x0702, 0xf947, 0x0000 }, { 0x0702, 0xf949, 0x0000 }, { 0x8702, 0xf94c, 0x2000 }, { 0x0702, 0xf94b, 0x0000 }, { 0x0702, 0xf94d, 0x0000 }, { 0x8702, 0xf952, 0x3000 }, { 0x8702, 0xf950, 0x2000 }, { 0x0702, 0xf94f, 0x0000 }, { 0x0702, 0xf951, 0x0000 }, { 0x8702, 0xf954, 0x2000 }, { 0x0702, 0xf953, 0x0000 }, { 0x0702, 0xf955, 0x0000 }, { 0x8702, 0xf966, 0x5000 }, { 0x8702, 0xf95e, 0x4000 }, { 0x8702, 0xf95a, 0x3000 }, { 0x8702, 0xf958, 0x2000 }, { 0x0702, 0xf957, 0x0000 }, { 0x0702, 0xf959, 0x0000 }, { 0x8702, 0xf95c, 0x2000 }, { 0x0702, 0xf95b, 0x0000 }, { 0x0702, 0xf95d, 0x0000 }, { 0x8702, 0xf962, 0x3000 }, { 0x8702, 0xf960, 0x2000 }, { 0x0702, 0xf95f, 0x0000 }, { 0x0702, 0xf961, 0x0000 }, { 0x8702, 0xf964, 0x2000 }, { 0x0702, 0xf963, 0x0000 }, { 0x0702, 0xf965, 0x0000 }, { 0x8702, 0xf96e, 0x4000 }, { 0x8702, 0xf96a, 0x3000 }, { 0x8702, 0xf968, 0x2000 }, { 0x0702, 0xf967, 0x0000 }, { 0x0702, 0xf969, 0x0000 }, { 0x8702, 0xf96c, 0x2000 }, { 0x0702, 0xf96b, 0x0000 }, { 0x0702, 0xf96d, 0x0000 }, { 0x8702, 0xf972, 0x3000 }, { 0x8702, 0xf970, 0x2000 }, { 0x0702, 0xf96f, 0x0000 }, { 0x0702, 0xf971, 0x0000 }, { 0x8702, 0xf974, 0x2000 }, { 0x0702, 0xf973, 0x0000 }, { 0x0702, 0xf975, 0x0000 }, { 0x810e, 0x0077, 0x9000 }, { 0x8702, 0xf9f6, 0x8000 }, { 0x8702, 0xf9b6, 0x7000 }, { 0x8702, 0xf996, 0x6000 }, { 0x8702, 0xf986, 0x5000 }, { 0x8702, 0xf97e, 0x4000 }, { 0x8702, 0xf97a, 0x3000 }, { 0x8702, 0xf978, 0x2000 }, { 0x0702, 0xf977, 0x0000 }, { 0x0702, 0xf979, 0x0000 }, { 0x8702, 0xf97c, 0x2000 }, { 0x0702, 0xf97b, 0x0000 }, { 0x0702, 0xf97d, 0x0000 }, { 0x8702, 0xf982, 0x3000 }, { 0x8702, 0xf980, 0x2000 }, { 0x0702, 0xf97f, 0x0000 }, { 0x0702, 0xf981, 0x0000 }, { 0x8702, 0xf984, 0x2000 }, { 0x0702, 0xf983, 0x0000 }, { 0x0702, 0xf985, 0x0000 }, { 0x8702, 0xf98e, 0x4000 }, { 0x8702, 0xf98a, 0x3000 }, { 0x8702, 0xf988, 0x2000 }, { 0x0702, 0xf987, 0x0000 }, { 0x0702, 0xf989, 0x0000 }, { 0x8702, 0xf98c, 0x2000 }, { 0x0702, 0xf98b, 0x0000 }, { 0x0702, 0xf98d, 0x0000 }, { 0x8702, 0xf992, 0x3000 }, { 0x8702, 0xf990, 0x2000 }, { 0x0702, 0xf98f, 0x0000 }, { 0x0702, 0xf991, 0x0000 }, { 0x8702, 0xf994, 0x2000 }, { 0x0702, 0xf993, 0x0000 }, { 0x0702, 0xf995, 0x0000 }, { 0x8702, 0xf9a6, 0x5000 }, { 0x8702, 0xf99e, 0x4000 }, { 0x8702, 0xf99a, 0x3000 }, { 0x8702, 0xf998, 0x2000 }, { 0x0702, 0xf997, 0x0000 }, { 0x0702, 0xf999, 0x0000 }, { 0x8702, 0xf99c, 0x2000 }, { 0x0702, 0xf99b, 0x0000 }, { 0x0702, 0xf99d, 0x0000 }, { 0x8702, 0xf9a2, 0x3000 }, { 0x8702, 0xf9a0, 0x2000 }, { 0x0702, 0xf99f, 0x0000 }, { 0x0702, 0xf9a1, 0x0000 }, { 0x8702, 0xf9a4, 0x2000 }, { 0x0702, 0xf9a3, 0x0000 }, { 0x0702, 0xf9a5, 0x0000 }, { 0x8702, 0xf9ae, 0x4000 }, { 0x8702, 0xf9aa, 0x3000 }, { 0x8702, 0xf9a8, 0x2000 }, { 0x0702, 0xf9a7, 0x0000 }, { 0x0702, 0xf9a9, 0x0000 }, { 0x8702, 0xf9ac, 0x2000 }, { 0x0702, 0xf9ab, 0x0000 }, { 0x0702, 0xf9ad, 0x0000 }, { 0x8702, 0xf9b2, 0x3000 }, { 0x8702, 0xf9b0, 0x2000 }, { 0x0702, 0xf9af, 0x0000 }, { 0x0702, 0xf9b1, 0x0000 }, { 0x8702, 0xf9b4, 0x2000 }, { 0x0702, 0xf9b3, 0x0000 }, { 0x0702, 0xf9b5, 0x0000 }, { 0x8702, 0xf9d6, 0x6000 }, { 0x8702, 0xf9c6, 0x5000 }, { 0x8702, 0xf9be, 0x4000 }, { 0x8702, 0xf9ba, 0x3000 }, { 0x8702, 0xf9b8, 0x2000 }, { 0x0702, 0xf9b7, 0x0000 }, { 0x0702, 0xf9b9, 0x0000 }, { 0x8702, 0xf9bc, 0x2000 }, { 0x0702, 0xf9bb, 0x0000 }, { 0x0702, 0xf9bd, 0x0000 }, { 0x8702, 0xf9c2, 0x3000 }, { 0x8702, 0xf9c0, 0x2000 }, { 0x0702, 0xf9bf, 0x0000 }, { 0x0702, 0xf9c1, 0x0000 }, { 0x8702, 0xf9c4, 0x2000 }, { 0x0702, 0xf9c3, 0x0000 }, { 0x0702, 0xf9c5, 0x0000 }, { 0x8702, 0xf9ce, 0x4000 }, { 0x8702, 0xf9ca, 0x3000 }, { 0x8702, 0xf9c8, 0x2000 }, { 0x0702, 0xf9c7, 0x0000 }, { 0x0702, 0xf9c9, 0x0000 }, { 0x8702, 0xf9cc, 0x2000 }, { 0x0702, 0xf9cb, 0x0000 }, { 0x0702, 0xf9cd, 0x0000 }, { 0x8702, 0xf9d2, 0x3000 }, { 0x8702, 0xf9d0, 0x2000 }, { 0x0702, 0xf9cf, 0x0000 }, { 0x0702, 0xf9d1, 0x0000 }, { 0x8702, 0xf9d4, 0x2000 }, { 0x0702, 0xf9d3, 0x0000 }, { 0x0702, 0xf9d5, 0x0000 }, { 0x8702, 0xf9e6, 0x5000 }, { 0x8702, 0xf9de, 0x4000 }, { 0x8702, 0xf9da, 0x3000 }, { 0x8702, 0xf9d8, 0x2000 }, { 0x0702, 0xf9d7, 0x0000 }, { 0x0702, 0xf9d9, 0x0000 }, { 0x8702, 0xf9dc, 0x2000 }, { 0x0702, 0xf9db, 0x0000 }, { 0x0702, 0xf9dd, 0x0000 }, { 0x8702, 0xf9e2, 0x3000 }, { 0x8702, 0xf9e0, 0x2000 }, { 0x0702, 0xf9df, 0x0000 }, { 0x0702, 0xf9e1, 0x0000 }, { 0x8702, 0xf9e4, 0x2000 }, { 0x0702, 0xf9e3, 0x0000 }, { 0x0702, 0xf9e5, 0x0000 }, { 0x8702, 0xf9ee, 0x4000 }, { 0x8702, 0xf9ea, 0x3000 }, { 0x8702, 0xf9e8, 0x2000 }, { 0x0702, 0xf9e7, 0x0000 }, { 0x0702, 0xf9e9, 0x0000 }, { 0x8702, 0xf9ec, 0x2000 }, { 0x0702, 0xf9eb, 0x0000 }, { 0x0702, 0xf9ed, 0x0000 }, { 0x8702, 0xf9f2, 0x3000 }, { 0x8702, 0xf9f0, 0x2000 }, { 0x0702, 0xf9ef, 0x0000 }, { 0x0702, 0xf9f1, 0x0000 }, { 0x8702, 0xf9f4, 0x2000 }, { 0x0702, 0xf9f3, 0x0000 }, { 0x0702, 0xf9f5, 0x0000 }, { 0x810e, 0x0037, 0x7000 }, { 0x8702, 0xfa16, 0x6000 }, { 0x8702, 0xfa06, 0x5000 }, { 0x8702, 0xf9fe, 0x4000 }, { 0x8702, 0xf9fa, 0x3000 }, { 0x8702, 0xf9f8, 0x2000 }, { 0x0702, 0xf9f7, 0x0000 }, { 0x0702, 0xf9f9, 0x0000 }, { 0x8702, 0xf9fc, 0x2000 }, { 0x0702, 0xf9fb, 0x0000 }, { 0x0702, 0xf9fd, 0x0000 }, { 0x8702, 0xfa02, 0x3000 }, { 0x8702, 0xfa00, 0x2000 }, { 0x0702, 0xf9ff, 0x0000 }, { 0x0702, 0xfa01, 0x0000 }, { 0x8702, 0xfa04, 0x2000 }, { 0x0702, 0xfa03, 0x0000 }, { 0x0702, 0xfa05, 0x0000 }, { 0x8702, 0xfa0e, 0x4000 }, { 0x8702, 0xfa0a, 0x3000 }, { 0x8702, 0xfa08, 0x2000 }, { 0x0702, 0xfa07, 0x0000 }, { 0x0702, 0xfa09, 0x0000 }, { 0x8702, 0xfa0c, 0x2000 }, { 0x0702, 0xfa0b, 0x0000 }, { 0x0702, 0xfa0d, 0x0000 }, { 0x8702, 0xfa12, 0x3000 }, { 0x8702, 0xfa10, 0x2000 }, { 0x0702, 0xfa0f, 0x0000 }, { 0x0702, 0xfa11, 0x0000 }, { 0x8702, 0xfa14, 0x2000 }, { 0x0702, 0xfa13, 0x0000 }, { 0x0702, 0xfa15, 0x0000 }, { 0x810e, 0x0027, 0x5000 }, { 0x810e, 0x0001, 0x4000 }, { 0x8702, 0xfa1a, 0x3000 }, { 0x8702, 0xfa18, 0x2000 }, { 0x0702, 0xfa17, 0x0000 }, { 0x0702, 0xfa19, 0x0000 }, { 0x8702, 0xfa1c, 0x2000 }, { 0x0702, 0xfa1b, 0x0000 }, { 0x0702, 0xfa1d, 0x0000 }, { 0x810e, 0x0023, 0x3000 }, { 0x810e, 0x0021, 0x2000 }, { 0x010e, 0x0020, 0x0000 }, { 0x010e, 0x0022, 0x0000 }, { 0x810e, 0x0025, 0x2000 }, { 0x010e, 0x0024, 0x0000 }, { 0x010e, 0x0026, 0x0000 }, { 0x810e, 0x002f, 0x4000 }, { 0x810e, 0x002b, 0x3000 }, { 0x810e, 0x0029, 0x2000 }, { 0x010e, 0x0028, 0x0000 }, { 0x010e, 0x002a, 0x0000 }, { 0x810e, 0x002d, 0x2000 }, { 0x010e, 0x002c, 0x0000 }, { 0x010e, 0x002e, 0x0000 }, { 0x810e, 0x0033, 0x3000 }, { 0x810e, 0x0031, 0x2000 }, { 0x010e, 0x0030, 0x0000 }, { 0x010e, 0x0032, 0x0000 }, { 0x810e, 0x0035, 0x2000 }, { 0x010e, 0x0034, 0x0000 }, { 0x010e, 0x0036, 0x0000 }, { 0x810e, 0x0057, 0x6000 }, { 0x810e, 0x0047, 0x5000 }, { 0x810e, 0x003f, 0x4000 }, { 0x810e, 0x003b, 0x3000 }, { 0x810e, 0x0039, 0x2000 }, { 0x010e, 0x0038, 0x0000 }, { 0x010e, 0x003a, 0x0000 }, { 0x810e, 0x003d, 0x2000 }, { 0x010e, 0x003c, 0x0000 }, { 0x010e, 0x003e, 0x0000 }, { 0x810e, 0x0043, 0x3000 }, { 0x810e, 0x0041, 0x2000 }, { 0x010e, 0x0040, 0x0000 }, { 0x010e, 0x0042, 0x0000 }, { 0x810e, 0x0045, 0x2000 }, { 0x010e, 0x0044, 0x0000 }, { 0x010e, 0x0046, 0x0000 }, { 0x810e, 0x004f, 0x4000 }, { 0x810e, 0x004b, 0x3000 }, { 0x810e, 0x0049, 0x2000 }, { 0x010e, 0x0048, 0x0000 }, { 0x010e, 0x004a, 0x0000 }, { 0x810e, 0x004d, 0x2000 }, { 0x010e, 0x004c, 0x0000 }, { 0x010e, 0x004e, 0x0000 }, { 0x810e, 0x0053, 0x3000 }, { 0x810e, 0x0051, 0x2000 }, { 0x010e, 0x0050, 0x0000 }, { 0x010e, 0x0052, 0x0000 }, { 0x810e, 0x0055, 0x2000 }, { 0x010e, 0x0054, 0x0000 }, { 0x010e, 0x0056, 0x0000 }, { 0x810e, 0x0067, 0x5000 }, { 0x810e, 0x005f, 0x4000 }, { 0x810e, 0x005b, 0x3000 }, { 0x810e, 0x0059, 0x2000 }, { 0x010e, 0x0058, 0x0000 }, { 0x010e, 0x005a, 0x0000 }, { 0x810e, 0x005d, 0x2000 }, { 0x010e, 0x005c, 0x0000 }, { 0x010e, 0x005e, 0x0000 }, { 0x810e, 0x0063, 0x3000 }, { 0x810e, 0x0061, 0x2000 }, { 0x010e, 0x0060, 0x0000 }, { 0x010e, 0x0062, 0x0000 }, { 0x810e, 0x0065, 0x2000 }, { 0x010e, 0x0064, 0x0000 }, { 0x010e, 0x0066, 0x0000 }, { 0x810e, 0x006f, 0x4000 }, { 0x810e, 0x006b, 0x3000 }, { 0x810e, 0x0069, 0x2000 }, { 0x010e, 0x0068, 0x0000 }, { 0x010e, 0x006a, 0x0000 }, { 0x810e, 0x006d, 0x2000 }, { 0x010e, 0x006c, 0x0000 }, { 0x010e, 0x006e, 0x0000 }, { 0x810e, 0x0073, 0x3000 }, { 0x810e, 0x0071, 0x2000 }, { 0x010e, 0x0070, 0x0000 }, { 0x010e, 0x0072, 0x0000 }, { 0x810e, 0x0075, 0x2000 }, { 0x010e, 0x0074, 0x0000 }, { 0x010e, 0x0076, 0x0000 }, { 0x8c0e, 0x0177, 0x8000 }, { 0x8c0e, 0x0137, 0x7000 }, { 0x8c0e, 0x0117, 0x6000 }, { 0x8c0e, 0x0107, 0x5000 }, { 0x810e, 0x007f, 0x4000 }, { 0x810e, 0x007b, 0x3000 }, { 0x810e, 0x0079, 0x2000 }, { 0x010e, 0x0078, 0x0000 }, { 0x010e, 0x007a, 0x0000 }, { 0x810e, 0x007d, 0x2000 }, { 0x010e, 0x007c, 0x0000 }, { 0x010e, 0x007e, 0x0000 }, { 0x8c0e, 0x0103, 0x3000 }, { 0x8c0e, 0x0101, 0x2000 }, { 0x0c0e, 0x0100, 0x0000 }, { 0x0c0e, 0x0102, 0x0000 }, { 0x8c0e, 0x0105, 0x2000 }, { 0x0c0e, 0x0104, 0x0000 }, { 0x0c0e, 0x0106, 0x0000 }, { 0x8c0e, 0x010f, 0x4000 }, { 0x8c0e, 0x010b, 0x3000 }, { 0x8c0e, 0x0109, 0x2000 }, { 0x0c0e, 0x0108, 0x0000 }, { 0x0c0e, 0x010a, 0x0000 }, { 0x8c0e, 0x010d, 0x2000 }, { 0x0c0e, 0x010c, 0x0000 }, { 0x0c0e, 0x010e, 0x0000 }, { 0x8c0e, 0x0113, 0x3000 }, { 0x8c0e, 0x0111, 0x2000 }, { 0x0c0e, 0x0110, 0x0000 }, { 0x0c0e, 0x0112, 0x0000 }, { 0x8c0e, 0x0115, 0x2000 }, { 0x0c0e, 0x0114, 0x0000 }, { 0x0c0e, 0x0116, 0x0000 }, { 0x8c0e, 0x0127, 0x5000 }, { 0x8c0e, 0x011f, 0x4000 }, { 0x8c0e, 0x011b, 0x3000 }, { 0x8c0e, 0x0119, 0x2000 }, { 0x0c0e, 0x0118, 0x0000 }, { 0x0c0e, 0x011a, 0x0000 }, { 0x8c0e, 0x011d, 0x2000 }, { 0x0c0e, 0x011c, 0x0000 }, { 0x0c0e, 0x011e, 0x0000 }, { 0x8c0e, 0x0123, 0x3000 }, { 0x8c0e, 0x0121, 0x2000 }, { 0x0c0e, 0x0120, 0x0000 }, { 0x0c0e, 0x0122, 0x0000 }, { 0x8c0e, 0x0125, 0x2000 }, { 0x0c0e, 0x0124, 0x0000 }, { 0x0c0e, 0x0126, 0x0000 }, { 0x8c0e, 0x012f, 0x4000 }, { 0x8c0e, 0x012b, 0x3000 }, { 0x8c0e, 0x0129, 0x2000 }, { 0x0c0e, 0x0128, 0x0000 }, { 0x0c0e, 0x012a, 0x0000 }, { 0x8c0e, 0x012d, 0x2000 }, { 0x0c0e, 0x012c, 0x0000 }, { 0x0c0e, 0x012e, 0x0000 }, { 0x8c0e, 0x0133, 0x3000 }, { 0x8c0e, 0x0131, 0x2000 }, { 0x0c0e, 0x0130, 0x0000 }, { 0x0c0e, 0x0132, 0x0000 }, { 0x8c0e, 0x0135, 0x2000 }, { 0x0c0e, 0x0134, 0x0000 }, { 0x0c0e, 0x0136, 0x0000 }, { 0x8c0e, 0x0157, 0x6000 }, { 0x8c0e, 0x0147, 0x5000 }, { 0x8c0e, 0x013f, 0x4000 }, { 0x8c0e, 0x013b, 0x3000 }, { 0x8c0e, 0x0139, 0x2000 }, { 0x0c0e, 0x0138, 0x0000 }, { 0x0c0e, 0x013a, 0x0000 }, { 0x8c0e, 0x013d, 0x2000 }, { 0x0c0e, 0x013c, 0x0000 }, { 0x0c0e, 0x013e, 0x0000 }, { 0x8c0e, 0x0143, 0x3000 }, { 0x8c0e, 0x0141, 0x2000 }, { 0x0c0e, 0x0140, 0x0000 }, { 0x0c0e, 0x0142, 0x0000 }, { 0x8c0e, 0x0145, 0x2000 }, { 0x0c0e, 0x0144, 0x0000 }, { 0x0c0e, 0x0146, 0x0000 }, { 0x8c0e, 0x014f, 0x4000 }, { 0x8c0e, 0x014b, 0x3000 }, { 0x8c0e, 0x0149, 0x2000 }, { 0x0c0e, 0x0148, 0x0000 }, { 0x0c0e, 0x014a, 0x0000 }, { 0x8c0e, 0x014d, 0x2000 }, { 0x0c0e, 0x014c, 0x0000 }, { 0x0c0e, 0x014e, 0x0000 }, { 0x8c0e, 0x0153, 0x3000 }, { 0x8c0e, 0x0151, 0x2000 }, { 0x0c0e, 0x0150, 0x0000 }, { 0x0c0e, 0x0152, 0x0000 }, { 0x8c0e, 0x0155, 0x2000 }, { 0x0c0e, 0x0154, 0x0000 }, { 0x0c0e, 0x0156, 0x0000 }, { 0x8c0e, 0x0167, 0x5000 }, { 0x8c0e, 0x015f, 0x4000 }, { 0x8c0e, 0x015b, 0x3000 }, { 0x8c0e, 0x0159, 0x2000 }, { 0x0c0e, 0x0158, 0x0000 }, { 0x0c0e, 0x015a, 0x0000 }, { 0x8c0e, 0x015d, 0x2000 }, { 0x0c0e, 0x015c, 0x0000 }, { 0x0c0e, 0x015e, 0x0000 }, { 0x8c0e, 0x0163, 0x3000 }, { 0x8c0e, 0x0161, 0x2000 }, { 0x0c0e, 0x0160, 0x0000 }, { 0x0c0e, 0x0162, 0x0000 }, { 0x8c0e, 0x0165, 0x2000 }, { 0x0c0e, 0x0164, 0x0000 }, { 0x0c0e, 0x0166, 0x0000 }, { 0x8c0e, 0x016f, 0x4000 }, { 0x8c0e, 0x016b, 0x3000 }, { 0x8c0e, 0x0169, 0x2000 }, { 0x0c0e, 0x0168, 0x0000 }, { 0x0c0e, 0x016a, 0x0000 }, { 0x8c0e, 0x016d, 0x2000 }, { 0x0c0e, 0x016c, 0x0000 }, { 0x0c0e, 0x016e, 0x0000 }, { 0x8c0e, 0x0173, 0x3000 }, { 0x8c0e, 0x0171, 0x2000 }, { 0x0c0e, 0x0170, 0x0000 }, { 0x0c0e, 0x0172, 0x0000 }, { 0x8c0e, 0x0175, 0x2000 }, { 0x0c0e, 0x0174, 0x0000 }, { 0x0c0e, 0x0176, 0x0000 }, { 0x8c0e, 0x01b7, 0x7000 }, { 0x8c0e, 0x0197, 0x6000 }, { 0x8c0e, 0x0187, 0x5000 }, { 0x8c0e, 0x017f, 0x4000 }, { 0x8c0e, 0x017b, 0x3000 }, { 0x8c0e, 0x0179, 0x2000 }, { 0x0c0e, 0x0178, 0x0000 }, { 0x0c0e, 0x017a, 0x0000 }, { 0x8c0e, 0x017d, 0x2000 }, { 0x0c0e, 0x017c, 0x0000 }, { 0x0c0e, 0x017e, 0x0000 }, { 0x8c0e, 0x0183, 0x3000 }, { 0x8c0e, 0x0181, 0x2000 }, { 0x0c0e, 0x0180, 0x0000 }, { 0x0c0e, 0x0182, 0x0000 }, { 0x8c0e, 0x0185, 0x2000 }, { 0x0c0e, 0x0184, 0x0000 }, { 0x0c0e, 0x0186, 0x0000 }, { 0x8c0e, 0x018f, 0x4000 }, { 0x8c0e, 0x018b, 0x3000 }, { 0x8c0e, 0x0189, 0x2000 }, { 0x0c0e, 0x0188, 0x0000 }, { 0x0c0e, 0x018a, 0x0000 }, { 0x8c0e, 0x018d, 0x2000 }, { 0x0c0e, 0x018c, 0x0000 }, { 0x0c0e, 0x018e, 0x0000 }, { 0x8c0e, 0x0193, 0x3000 }, { 0x8c0e, 0x0191, 0x2000 }, { 0x0c0e, 0x0190, 0x0000 }, { 0x0c0e, 0x0192, 0x0000 }, { 0x8c0e, 0x0195, 0x2000 }, { 0x0c0e, 0x0194, 0x0000 }, { 0x0c0e, 0x0196, 0x0000 }, { 0x8c0e, 0x01a7, 0x5000 }, { 0x8c0e, 0x019f, 0x4000 }, { 0x8c0e, 0x019b, 0x3000 }, { 0x8c0e, 0x0199, 0x2000 }, { 0x0c0e, 0x0198, 0x0000 }, { 0x0c0e, 0x019a, 0x0000 }, { 0x8c0e, 0x019d, 0x2000 }, { 0x0c0e, 0x019c, 0x0000 }, { 0x0c0e, 0x019e, 0x0000 }, { 0x8c0e, 0x01a3, 0x3000 }, { 0x8c0e, 0x01a1, 0x2000 }, { 0x0c0e, 0x01a0, 0x0000 }, { 0x0c0e, 0x01a2, 0x0000 }, { 0x8c0e, 0x01a5, 0x2000 }, { 0x0c0e, 0x01a4, 0x0000 }, { 0x0c0e, 0x01a6, 0x0000 }, { 0x8c0e, 0x01af, 0x4000 }, { 0x8c0e, 0x01ab, 0x3000 }, { 0x8c0e, 0x01a9, 0x2000 }, { 0x0c0e, 0x01a8, 0x0000 }, { 0x0c0e, 0x01aa, 0x0000 }, { 0x8c0e, 0x01ad, 0x2000 }, { 0x0c0e, 0x01ac, 0x0000 }, { 0x0c0e, 0x01ae, 0x0000 }, { 0x8c0e, 0x01b3, 0x3000 }, { 0x8c0e, 0x01b1, 0x2000 }, { 0x0c0e, 0x01b0, 0x0000 }, { 0x0c0e, 0x01b2, 0x0000 }, { 0x8c0e, 0x01b5, 0x2000 }, { 0x0c0e, 0x01b4, 0x0000 }, { 0x0c0e, 0x01b6, 0x0000 }, { 0x8c0e, 0x01d7, 0x6000 }, { 0x8c0e, 0x01c7, 0x5000 }, { 0x8c0e, 0x01bf, 0x4000 }, { 0x8c0e, 0x01bb, 0x3000 }, { 0x8c0e, 0x01b9, 0x2000 }, { 0x0c0e, 0x01b8, 0x0000 }, { 0x0c0e, 0x01ba, 0x0000 }, { 0x8c0e, 0x01bd, 0x2000 }, { 0x0c0e, 0x01bc, 0x0000 }, { 0x0c0e, 0x01be, 0x0000 }, { 0x8c0e, 0x01c3, 0x3000 }, { 0x8c0e, 0x01c1, 0x2000 }, { 0x0c0e, 0x01c0, 0x0000 }, { 0x0c0e, 0x01c2, 0x0000 }, { 0x8c0e, 0x01c5, 0x2000 }, { 0x0c0e, 0x01c4, 0x0000 }, { 0x0c0e, 0x01c6, 0x0000 }, { 0x8c0e, 0x01cf, 0x4000 }, { 0x8c0e, 0x01cb, 0x3000 }, { 0x8c0e, 0x01c9, 0x2000 }, { 0x0c0e, 0x01c8, 0x0000 }, { 0x0c0e, 0x01ca, 0x0000 }, { 0x8c0e, 0x01cd, 0x2000 }, { 0x0c0e, 0x01cc, 0x0000 }, { 0x0c0e, 0x01ce, 0x0000 }, { 0x8c0e, 0x01d3, 0x3000 }, { 0x8c0e, 0x01d1, 0x2000 }, { 0x0c0e, 0x01d0, 0x0000 }, { 0x0c0e, 0x01d2, 0x0000 }, { 0x8c0e, 0x01d5, 0x2000 }, { 0x0c0e, 0x01d4, 0x0000 }, { 0x0c0e, 0x01d6, 0x0000 }, { 0x8c0e, 0x01e7, 0x5000 }, { 0x8c0e, 0x01df, 0x4000 }, { 0x8c0e, 0x01db, 0x3000 }, { 0x8c0e, 0x01d9, 0x2000 }, { 0x0c0e, 0x01d8, 0x0000 }, { 0x0c0e, 0x01da, 0x0000 }, { 0x8c0e, 0x01dd, 0x2000 }, { 0x0c0e, 0x01dc, 0x0000 }, { 0x0c0e, 0x01de, 0x0000 }, { 0x8c0e, 0x01e3, 0x3000 }, { 0x8c0e, 0x01e1, 0x2000 }, { 0x0c0e, 0x01e0, 0x0000 }, { 0x0c0e, 0x01e2, 0x0000 }, { 0x8c0e, 0x01e5, 0x2000 }, { 0x0c0e, 0x01e4, 0x0000 }, { 0x0c0e, 0x01e6, 0x0000 }, { 0x8c0e, 0x01ef, 0x4000 }, { 0x8c0e, 0x01eb, 0x3000 }, { 0x8c0e, 0x01e9, 0x2000 }, { 0x0c0e, 0x01e8, 0x0000 }, { 0x0c0e, 0x01ea, 0x0000 }, { 0x8c0e, 0x01ed, 0x2000 }, { 0x0c0e, 0x01ec, 0x0000 }, { 0x0c0e, 0x01ee, 0x0000 }, { 0x830f, 0xfffd, 0x2000 }, { 0x030f, 0x0000, 0x0000 }, { 0x0310, 0x0000, 0x1000 }, { 0x0310, 0xfffd, 0x0000 }, }; ================================================ FILE: Project/Pcre/Win32/pcre.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "pcre.vcproj", "{07437657-980A-430D-AB7B-415770E0D505}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 ReleaseDebug|Win32 = ReleaseDebug|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {07437657-980A-430D-AB7B-415770E0D505}.Debug|Win32.ActiveCfg = Debug|Win32 {07437657-980A-430D-AB7B-415770E0D505}.Debug|Win32.Build.0 = Debug|Win32 {07437657-980A-430D-AB7B-415770E0D505}.Release|Win32.ActiveCfg = Release|Win32 {07437657-980A-430D-AB7B-415770E0D505}.Release|Win32.Build.0 = Release|Win32 {07437657-980A-430D-AB7B-415770E0D505}.ReleaseDebug|Win32.ActiveCfg = ReleaseDebug|Win32 {07437657-980A-430D-AB7B-415770E0D505}.ReleaseDebug|Win32.Build.0 = ReleaseDebug|Win32 {07437657-980A-430D-AB7B-415770E0D505}.Trial|Win32.ActiveCfg = ReleaseDebug|Win32 {07437657-980A-430D-AB7B-415770E0D505}.Trial|Win32.Build.0 = ReleaseDebug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.ReleaseDebug|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.ReleaseDebug|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Pcre/Win32/pcre.vcproj ================================================ ================================================ FILE: Project/Pcre/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/Pcre/WinXPDrv32/Pcre.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Pcre", "Pcre.vcproj", "{31512598-9828-4A1C-AC8F-1EAD46DEA54D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {31512598-9828-4A1C-AC8F-1EAD46DEA54D}.Debug|Win32.ActiveCfg = Debug|Win32 {31512598-9828-4A1C-AC8F-1EAD46DEA54D}.Debug|Win32.Build.0 = Debug|Win32 {31512598-9828-4A1C-AC8F-1EAD46DEA54D}.Release|Win32.ActiveCfg = Release|Win32 {31512598-9828-4A1C-AC8F-1EAD46DEA54D}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Pcre/WinXPDrv32/Pcre.vcproj ================================================ ================================================ FILE: Project/Pcre/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/Pcre/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SDRemote/Source/Resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SDRemote.rc // #define IDS_PROJNAME 100 #define IDR_WMDMLOGGER 101 #define IDS_LOG_SEV_INFO 201 #define IDS_LOG_SEV_WARN 202 #define IDS_LOG_SEV_ERROR 203 #define IDS_LOG_DATETIME 204 #define IDS_LOG_SRCNAME 205 #define IDS_DEF_LOGFILE 301 #define IDS_DEF_MAXSIZE 302 #define IDS_DEF_SHRINKTOSIZE 303 #define IDS_DEF_LOGENABLED 304 #define IDS_MUTEX_TIMEOUT 401 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 201 #define _APS_NEXT_COMMAND_VALUE 32768 #define _APS_NEXT_CONTROL_VALUE 201 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SDRemote/Source/SDClient.cpp ================================================ #include "StdAfx.h" #include "SDClient.h" ================================================ FILE: Project/SDRemote/Source/SDClient.h ================================================ #ifndef _SD_CLIENT_H_ #define _SD_CLIENT_H_ class CSDClient { public: }; #endif ================================================ FILE: Project/SDRemote/Source/SDRemote.cpp ================================================ #include "StdAfx.h" #include "SDRemote.h" CSyserPluginUI*gpSyserPluginUI; BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { return TRUE; } bool WriteFileBlock(HANDLE hFile,void*Buffer,int Size,int BlockSize) { DWORD cbRW; int nBlock,LeftSize,Offset; nBlock = PAGE_COUNT(Size,BlockSize); Offset = 0; LeftSize = Size%BlockSize; for(int n=1;nLength = ST_FIELD_OFF(SD_PACKET,Data.szCmd[0])+(TStrLen(pszCmd)+1)*sizeof(WCHAR); pPacket->Sign = SD_CMD_SIGN; pPacket->CRCCode=0; TStrCpy(pPacket->Data.szCmd,pszCmd); pPacket->CRCCode=GetCRCCode(Buffer,pPacket->Length); WriteFileBlock(pDebugger->m_hPipe,Buffer,pPacket->Length,0x10); int NeededSize = sizeof(SD_PACKET); int Size = 0; if(ReadFile(pDebugger->m_hPipe,Buffer,sizeof(SD_PACKET),&cbRW,NULL)) Size+=(int)cbRW; while(Size < NeededSize) { if(ReadFile(pDebugger->m_hPipe,&Buffer[Size],NeededSize-Size,&cbRW,NULL)) Size+=(int)cbRW; if(Size>=sizeof(SD_PACKET) && NeededSize == sizeof(SD_PACKET)) { NeededSize = pPacket->Length; } } if(pPacket->Data.CSStream[0]) { gpSyserPluginUI->Output(pPacket->Data.CSStream); } delete Buffer; return 0; } CDebugger*CreateDebugger(void*UIObj) { CSDRemote*pDebugger = new CSDRemote; gpSyserPluginUI = (CSyserPluginUI*)UIObj; gpSyserPluginUI->InsertCmd(WSTR("sd"),(FPCmd)sd_command,pDebugger,WSTR("Remote command"),NULL); return pDebugger; } void GetFileFilter(WCHAR*szFilte) { *szFilte=0; } void GetInfo(CHAR*szInfo) { TStrCpy(szInfo,"Syser Remote Debugger"); #ifdef _DEBUG TStrCat(szInfo,"(DEBUG)"); #endif } bool CSDRemote::LoadPage(IN ULPOS Address,OUT void* Buffer) { return ReadProcessMemory(Address,Buffer,MP_SIZE); } bool CSDRemote::SavePage(IN ULPOS Address,OUT void* Buffer) { return WriteProcessMemory(Address,Buffer,MP_SIZE); } DWORD CSDRemote::GetPageAttribute(IN ULPOS Address) { return true; } CSDRemote::CSDRemote() { m_ImageBase = 0; m_ImageHighBase = 0xFFFFFFFF; m_ImageSize = 0xFFFFFFFF; } CSDRemote::~CSDRemote() { } bool CSDRemote::Open(PCSTR ModuleName) { STZeroMemory(m_Context); OUTPUT(WSTR("SDRemote : open \\\\.\\pipe\\com_1\n")); m_hPipe = CreateFile("\\\\.\\pipe\\com_1",GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); if(m_hPipe == INVALID_HANDLE_VALUE) return false; if(CX86Debugger::Open(ModuleName)==false) return false; m_ProcessCache.Init(100,PMS_PAGE_OUT); if(m_ProcessCache.MapImage(this)==false) return false; return true; } bool CSDRemote::Close() { if(m_hPipe!=INVALID_HANDLE_VALUE) CloseHandle(m_hPipe); m_ProcessCache.Release(); return CX86Debugger::Close(); } void CSDRemote::Release() { CX86Debugger::Release(); gpSyserPluginUI->RemoveCmd(WSTR("sd")); delete this; } bool CSDRemote::ReadProcessMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } bool CSDRemote::WriteProcessMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } ULSIZE CSDRemote::WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } ULSIZE CSDRemote::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return 0; } bool CSDRemote::SetSingleStep() { return CX86Debugger::SetSingleStep(); } bool CSDRemote::RemoveSingleStep() { return CX86Debugger::RemoveSingleStep(); } bool CSDRemote::UpdateRegister() { return false; } bool CSDRemote::SaveRegister() { return false; } bool CSDRemote::ContinueDebug() { return false; } void CSDRemote::GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID) { GetX86RegPtr(pCPURegPtr); } void CSDRemote::GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr) { static DWORD Value; pCPURegPtr->pCS = (WORD*)&m_Context.CS; pCPURegPtr->pDS = (WORD*)&m_Context.DS; pCPURegPtr->pES = (WORD*)&m_Context.ES; pCPURegPtr->pFS = (WORD*)&m_Context.FS; pCPURegPtr->pGS = (WORD*)&m_Context.GS; pCPURegPtr->pSS = (WORD*)&m_Context.SS; pCPURegPtr->pEAX = (DWORD*)&m_Context.EAX; pCPURegPtr->pEBX = (DWORD*)&m_Context.EBX; pCPURegPtr->pECX = (DWORD*)&m_Context.ECX; pCPURegPtr->pEDX = (DWORD*)&m_Context.EDX; pCPURegPtr->pESI = (DWORD*)&m_Context.ESI; pCPURegPtr->pEDI = (DWORD*)&m_Context.EDI; pCPURegPtr->pEBP = (DWORD*)&m_Context.EBP; pCPURegPtr->pESP = (DWORD*)&m_Context.ESP; pCPURegPtr->pEFL = (EFL_REG*)&m_Context.EFL; pCPURegPtr->pEIP = (DWORD*)&m_Context.EIP; pCPURegPtr->pDR[0] = (DWORD*)&m_Context.DR[0]; pCPURegPtr->pDR[1] = (DWORD*)&m_Context.DR[1]; pCPURegPtr->pDR[2] = (DWORD*)&m_Context.DR[2]; pCPURegPtr->pDR[3] = (DWORD*)&m_Context.DR[3]; pCPURegPtr->pDR[4] = NULL; pCPURegPtr->pDR[5] = NULL; pCPURegPtr->pDR[6] = (DWORD*)&m_Context.DR[6]; pCPURegPtr->pDR[7] = (DWORD*)&m_Context.DR[7]; } bool CSDRemote::GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD *pSize) { return false; } ================================================ FILE: Project/SDRemote/Source/SDRemote.h ================================================ #ifndef _SDREMOTE_H_ #define _SDREMOTE_H_ class CSDRemote : public CX86Debugger,public CPageImage { public: CSDRemote(); ~CSDRemote(); public: CPageMemory m_ProcessCache; bool LoadPage(IN ULPOS Address,OUT void* Buffer); bool SavePage(IN ULPOS Address,OUT void* Buffer); DWORD GetPageAttribute(IN ULPOS Address); bool Open(PCSTR ModuleName); bool Close(); void Release(); ULSIZE WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size); ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size); bool SetSingleStep(); bool SetRecoverStep(); bool RemoveSingleStep(); bool UpdateRegister(); bool SaveRegister(); bool ContinueDebug(); void GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr); void GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID); bool GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD* pSize); X86_CPU_REG m_Context; HANDLE m_hPipe; private: bool ReadProcessMemory(ULPOS Address,void*Buffer,ULSIZE Size); bool WriteProcessMemory(ULPOS Address,void*Buffer,ULSIZE Size); }; #endif ================================================ FILE: Project/SDRemote/Source/SDRemote.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""SDRemote.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "SDRemote.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/SDRemote/Source/SDRemote.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "SDRemote Dynamic Link Library" #define VER_INTERNALNAME_STR "SDRemote" #define VER_ORIGINALFILENAME_STR "SDRemote.dll" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/SDRemote/Source/StdAfx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // SDWin32.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "StdAfx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: Project/SDRemote/Source/StdAfx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers // Windows Header Files: #include "../../Code/Source/Code.h" #include "../../EXEAnalyzer/Source/EXEAnalyzer.h" #include "SyserDebugger.h" #include "../../Syser/Source/SDDefine.h" #define OUTPUT gpSyserPluginUI->Outputf ================================================ FILE: Project/SDRemote/Win32/SDRemote.def ================================================ EXPORTS CreateDebugger GetFileFilter GetInfo ================================================ FILE: Project/SDRemote/Win32/SDRemote.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDRemote", "SDRemote.vcproj", "{F5C9A119-1A4B-4568-AFE8-1B9381CB5491}" ProjectSection(ProjectDependencies) = postProject {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {F5C9A119-1A4B-4568-AFE8-1B9381CB5491}.Debug|Win32.ActiveCfg = Debug|Win32 {F5C9A119-1A4B-4568-AFE8-1B9381CB5491}.Debug|Win32.Build.0 = Debug|Win32 {F5C9A119-1A4B-4568-AFE8-1B9381CB5491}.Release|Win32.ActiveCfg = Release|Win32 {F5C9A119-1A4B-4568-AFE8-1B9381CB5491}.Release|Win32.Build.0 = Release|Win32 {F5C9A119-1A4B-4568-AFE8-1B9381CB5491}.Trial|Win32.ActiveCfg = Release|Win32 {F5C9A119-1A4B-4568-AFE8-1B9381CB5491}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SDRemote/Win32/SDRemote.vcproj ================================================ ================================================ FILE: Project/SDRemote/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SDRemote/incfile.txt ================================================ ================================================ FILE: Project/SDRemote/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SDWin32/Source/Resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SDWin32.rc // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SDWin32/Source/SDWin32.cpp ================================================ #include "StdAfx.h" #include "SDWin32.h" BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { return TRUE; } CDebugger*CreateDebugger(void*UIObj) { CSDWin32*pDebugger = new CSDWin32; return pDebugger; } void GetFileFilter(WCHAR*szFilte) { TStrCpy(szFilte,WSTR("Executable Files|*.exe;*.dll;*.sys;*.scr|All Files|*.*|")); } void GetInfo(CHAR*szInfo) { TStrCpy(szInfo,"Win32 User Mode Debugger"); #ifdef _DEBUG TStrCat(szInfo,"(DEBUG)"); #endif } CSDWin32::CSDWin32() { m_CurProcHandle = GetCurrentProcess(); m_bDebuging=false; m_bExit=false; m_hDebugProcess = NULL; m_pExecutePoint = &m_Context.Eip; } CSDWin32::~CSDWin32() { } bool CSDWin32::Open(PCSTR ModuleName) { DWORD DTID; if( gpFileIO->IsFileExist(ModuleName)==false && TStrNICmp(ModuleName,"\\PID:",sizeof("\\PID:")-1)) return false; if(CX86Debugger::Open(ModuleName)==false) return false; m_MainModuleName = ModuleName; m_hWaitEvent = CreateEvent(NULL,FALSE,FALSE,NULL); m_hDebugThread=::CreateThread(NULL,0,(DWORD(WINAPI*)(LPVOID))DebugThread,(LPVOID)this,0,&DTID); if(m_hDebugThread==NULL) { CloseHandle(m_hWaitEvent); CX86Debugger::Close(); return false; } WaitForSingleObject(m_hWaitEvent,INFINITE); if(m_PID==0) { CloseHandle(m_hWaitEvent); CX86Debugger::Close(); return false; } return true; } bool CSDWin32::Close() { if(m_hDebugProcess==NULL) return CX86Debugger::Close(); CloseHandle(m_hDebugProcess); m_hDebugProcess=OpenProcess(PROCESS_TERMINATE,FALSE,m_PID); if(TerminateProcess(m_hDebugProcess,0)==false) return false; CloseHandle(m_hDebugProcess); m_hDebugProcess = NULL; m_bExit=true; ContinueDebug(); CloseHandle(m_hWaitEvent); return CX86Debugger::Close(); } void CSDWin32::Release() { CX86Debugger::Release(); delete this; } bool CSDWin32::InsertThread(UINT ID,HANDLE Handle) { CThreadMap::IT Iter = m_ThreadMap.InsertUnique(ID); if(Iter==m_ThreadMap.End()) return false; if(DuplicateHandle(m_CurProcHandle,Handle,m_CurProcHandle,&Iter->hThread,THREAD_GET_CONTEXT | THREAD_SET_CONTEXT | THREAD_SUSPEND_RESUME|THREAD_QUERY_INFORMATION,FALSE,0)==FALSE) return false; return true; } bool CSDWin32::RemoveThread(UINT ID) { return m_ThreadMap.Remove(ID)!=0; } void CSDWin32::DebugPlunge(UINT PlungeType) { m_pDebugInterface->OnDebugPlungeMultiThread(PlungeType); } bool CSDWin32::GetThreadContext(UINT ID) { HANDLE hThread; CThreadMap::IT Iter = m_ThreadMap.Find(ID); if(Iter==m_ThreadMap.End()) return false; m_Context.ContextFlags=CONTEXT_ALL; hThread = Iter->hThread; if(::GetThreadContext(hThread,&m_Context)==FALSE) return false; return true; } bool CSDWin32::SetThreadContext(UINT ID) { CThreadMap::IT Iter = m_ThreadMap.Find(ID); if(Iter==m_ThreadMap.End()) return false; m_Context.ContextFlags=CONTEXT_FULL | CONTEXT_DEBUG_REGISTERS; return ::SetThreadContext(Iter->hThread,&m_Context)!=FALSE; } bool CSDWin32::SetThreadEIPBack(UINT ThreadID) { if(GetThreadContext(ThreadID)==false) return false; m_Context.Eip--; if(SetThreadContext(ThreadID)==false) return false; return true; } ULSIZE CSDWin32::WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size) { DWORD RWSize; RWSize = 0; if(::WriteProcessMemory(m_hDebugProcess,NUM_TO_PTR(Address),Buffer,Size,&RWSize)==FALSE) return 0; return RWSize; } ULSIZE CSDWin32::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size) { DWORD RWSize; RWSize = 0; if(::ReadProcessMemory(m_hDebugProcess,NUM_TO_PTR(Address),Buffer,Size,&RWSize)==FALSE) return 0; return RWSize; } bool CSDWin32::SetCodeBreakPoint(BREAK_POINT&BP) { return SetCCBP(BP); } bool CSDWin32::ClearCodeBreakPoint(BREAK_POINT&BP) { return ClearCCBP(BP); } bool CSDWin32::SetDataBreakPoint(BREAK_POINT&BP) { return SetX86HDBP(BP,&m_Context.Dr0,&m_Context.Dr7); } bool CSDWin32::ClearDataBreakPoint(BREAK_POINT&BP) { return ClearX86HDBP(BP,&m_Context.Dr0,&m_Context.Dr7); } bool CSDWin32::SetSingleStep() { CONTEXT Context; for(CThreadMap::IT Iter=m_ThreadMap.Begin();Iter!=m_ThreadMap.End();Iter++) { Context.ContextFlags = CONTEXT_FULL; if(::GetThreadContext(Iter->hThread,&Context)==FALSE) continue; Context.EFlags|=0x100; Context.ContextFlags = CONTEXT_FULL; if(::SetThreadContext(Iter->hThread,&Context)==FALSE) continue; } return true; } bool CSDWin32::RemoveSingleStep() { CONTEXT Context; for(CThreadMap::IT Iter=m_ThreadMap.Begin();Iter!=m_ThreadMap.End();Iter++) { Context.ContextFlags = CONTEXT_FULL; if(::GetThreadContext(Iter->hThread,&Context)==FALSE) continue; Context.EFlags&=0xFFFFFEFF; Context.ContextFlags = CONTEXT_FULL; if(::SetThreadContext(Iter->hThread,&Context)==FALSE) continue; } return true; } bool CSDWin32::UpdateRegister() { return GetThreadContext(m_DebugThreadID); } bool CSDWin32::SaveRegister() { return SetThreadContext(m_DebugThreadID); } bool CSDWin32::ContinueDebug(bool bRestoreScreen) { return ::ResumeThread(m_hDebugThread)!=FALSE; } void CSDWin32::GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID) { GetX86RegPtr(pCPURegPtr); } void CSDWin32::GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr) { pCPURegPtr->pCS = (WORD*)&m_Context.SegCs; pCPURegPtr->pDS = (WORD*)&m_Context.SegDs; pCPURegPtr->pES = (WORD*)&m_Context.SegEs; pCPURegPtr->pFS = (WORD*)&m_Context.SegFs; pCPURegPtr->pGS = (WORD*)&m_Context.SegGs; pCPURegPtr->pSS = (WORD*)&m_Context.SegSs; pCPURegPtr->pEAX = (DWORD*)&m_Context.Eax; pCPURegPtr->pEBX = (DWORD*)&m_Context.Ebx; pCPURegPtr->pECX = (DWORD*)&m_Context.Ecx; pCPURegPtr->pEDX = (DWORD*)&m_Context.Edx; pCPURegPtr->pESI = (DWORD*)&m_Context.Esi; pCPURegPtr->pEDI = (DWORD*)&m_Context.Edi; pCPURegPtr->pEBP = (DWORD*)&m_Context.Ebp; pCPURegPtr->pESP = (DWORD*)&m_Context.Esp; pCPURegPtr->pEFL = (EFL_REG*)&m_Context.EFlags; pCPURegPtr->pEIP = (DWORD*)&m_Context.Eip; pCPURegPtr->pDR[0] = (DWORD*)&m_Context.Dr0; pCPURegPtr->pDR[1] = (DWORD*)&m_Context.Dr1; pCPURegPtr->pDR[2] = (DWORD*)&m_Context.Dr2; pCPURegPtr->pDR[3] = (DWORD*)&m_Context.Dr3; pCPURegPtr->pDR[4] = NULL; pCPURegPtr->pDR[5] = NULL; pCPURegPtr->pDR[6] = (DWORD*)&m_Context.Dr6; pCPURegPtr->pDR[7] = (DWORD*)&m_Context.Dr7; pCPURegPtr->pFPUControlWord = (WORD*)&m_Context.FloatSave.ControlWord; pCPURegPtr->pFPUStatusWord = (WORD*)&m_Context.FloatSave.StatusWord; pCPURegPtr->pFPUTagWord = (WORD*)&m_Context.FloatSave.TagWord; pCPURegPtr->pFPURegisterArea = (BYTE*)&m_Context.FloatSave.RegisterArea; } bool CSDWin32::GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD* pSize) { BOOL bret; LDT_ENTRY lpSelectorEntry; CThreadMap::IT FindIT; HANDLE hThread; FindIT = m_ThreadMap.Find(m_DebugThreadID); if(FindIT==m_ThreadMap.End()) return false; hThread=(*FindIT).hThread; bret = GetThreadSelectorEntry(hThread,SegIndex,&lpSelectorEntry); if(bret) { if(pAddress) { *pAddress=lpSelectorEntry.HighWord.Bytes.BaseHi<<24; *pAddress|=lpSelectorEntry.HighWord.Bytes.BaseMid<<16; *pAddress|=lpSelectorEntry.BaseLow; } if(pSize) { *pSize=lpSelectorEntry.HighWord.Bits.LimitHi; } } return bret==TRUE; } bool CSDWin32::GetModulePEHead(ULPOS Base,PE_HEAD*pHead) { DWORD Offset; ZeroMemory(pHead,sizeof(PE_HEAD)); if(ReadMemory(Base+0x3C,&Offset,sizeof(Offset))!=sizeof(Offset)) return false; if(ReadMemory(Base+Offset,pHead,sizeof(PE_HEAD))!=sizeof(PE_HEAD)) return false; if(pHead->Signature!=0x4550) return false; return true; } DWORD CSDWin32::DebugThread(CSDWin32*pThis) { char szBuffer[MAX_FN_LEN]; WCHAR wszBuffer[MAX_FN_LEN]; ULPOS Address; PROCESS_INFORMATION ProcInfo; STARTUPINFO StartupInfo; DEBUG_EVENT DebugEvent; PE_HEAD ModulePEHead; DWORD dwContinue=0; pThis->m_bExit=false; pThis->m_PID=0; if(TStrStr((PCSTR)pThis->m_MainModuleName,"\\PID:")==NULL) { STZeroMemory(StartupInfo); StartupInfo.cb=sizeof(StartupInfo); if(::CreateProcess(pThis->m_MainModuleName,NULL,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS | DEBUG_PROCESS,NULL,NULL,&StartupInfo,&ProcInfo)==FALSE) { SetEvent(pThis->m_hWaitEvent); return 0; } pThis->m_PID=ProcInfo.dwProcessId; pThis->m_hDebugProcess=ProcInfo.hProcess; pThis->m_bActiveProcess=false; } else { sscanf(pThis->m_MainModuleName,"\\PID:%08X",&pThis->m_PID); if(DebugActiveProcess(pThis->m_PID)==FALSE) { SetEvent(pThis->m_hWaitEvent); return 0; } pThis->m_hDebugProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pThis->m_PID); if(pThis->m_hDebugProcess==NULL) { pThis->m_PID=0; SetEvent(pThis->m_hWaitEvent); return 0; } pThis->m_bActiveProcess=true; } pThis->m_ProcName = TGetFileName((PCSTR)pThis->m_MainModuleName); pThis->m_bDebuging=false; STZeroMemory(pThis->m_Context); while(pThis->m_bExit==false && WaitForDebugEvent(&DebugEvent,INFINITE)) { dwContinue = DBG_CONTINUE; switch(DebugEvent.dwDebugEventCode) { case EXCEPTION_DEBUG_EVENT: dwContinue=pThis->HandleException(&DebugEvent); break; case CREATE_THREAD_DEBUG_EVENT: pThis->InsertThread(DebugEvent.dwThreadId,DebugEvent.u.CreateThread.hThread); break; case CREATE_PROCESS_DEBUG_EVENT: pThis->m_BPCount = 0; pThis->InsertThread(DebugEvent.dwThreadId,DebugEvent.u.CreateProcessInfo.hThread); if(pThis->m_bActiveProcess==false) pThis->InsertCodeBP(PTR_TO_NUM(DebugEvent.u.CreateProcessInfo.lpStartAddress),BP_TYPE_DEBUG,BP_STATE_ENABLE); Address = PTR_TO_NUM(DebugEvent.u.CreateProcessInfo.lpBaseOfImage); pThis->GetModulePEHead(Address,&ModulePEHead); pThis->m_pDebugInterface->OnLoadModule(pThis,pThis->m_MainModuleName,Address,ModulePEHead.SizeOfImage,MAKE_MODULE_ID(ModulePEHead.CheckSum,ModulePEHead.TimeDateStamp)); break; case EXIT_THREAD_DEBUG_EVENT: pThis->RemoveThread(DebugEvent.dwThreadId); break; case EXIT_PROCESS_DEBUG_EVENT: pThis->RemoveAllCodeBP(); sprintf(szBuffer,"Debug Event : Process Terminated , Exit Code = %d (0x%X) !\n",DebugEvent.u.ExitProcess.dwExitCode,DebugEvent.u.ExitProcess.dwExitCode); pThis->m_pDebugInterface->DisplayMsg(szBuffer); pThis->m_pDebugInterface->OnDebugTerminateMultiThread(true); pThis->m_bExit = true; break; case LOAD_DLL_DEBUG_EVENT: if(DebugEvent.u.LoadDll.lpImageName) { Address=0; *szBuffer=0; pThis->ReadMemory(PTR_TO_NUM(DebugEvent.u.LoadDll.lpImageName),&Address,sizeof(Address)); if(Address) { if(DebugEvent.u.LoadDll.fUnicode) { *wszBuffer=0; pThis->ReadMemory(Address,wszBuffer,MAX_FN_LEN*2); //UnicodeToAnsi((const wchar_t *)wszBuffer,szBuffer,MAX_FN_LEN); WideCharToMultiByte(CP_ACP,0,wszBuffer,-1,szBuffer,MAX_FN_LEN,NULL,NULL); } else { pThis->ReadMemory(Address,szBuffer,MAX_FN_LEN); } } if(TGetFileName(szBuffer)==szBuffer) { char szSystemDir[MAX_FN_LEN]; GetSystemDirectory(szSystemDir,MAX_FN_LEN); TStrCat(szSystemDir,"\\"); TStrCat(szSystemDir,szBuffer); TStrCpy(szBuffer,szSystemDir); } Address = PTR_TO_NUM(DebugEvent.u.LoadDll.lpBaseOfDll); pThis->GetModulePEHead(Address,&ModulePEHead); if(Address && *szBuffer) pThis->m_pDebugInterface->OnLoadModule(pThis,szBuffer,Address,ModulePEHead.SizeOfImage,MAKE_MODULE_ID(ModulePEHead.CheckSum,ModulePEHead.TimeDateStamp)); } break; case UNLOAD_DLL_DEBUG_EVENT: break; case OUTPUT_DEBUG_STRING_EVENT: break; case RIP_EVENT: break; default: break; } ContinueDebugEvent(DebugEvent.dwProcessId,DebugEvent.dwThreadId,dwContinue); } pThis->m_hDebugProcess=NULL; SetEvent(pThis->m_hWaitEvent); return 1; } //쳣 DWORD CSDWin32::HandleException(DEBUG_EVENT*pDebugEnent) { PE_HEAD ModulePEHead; char szBuffer[256]; bool bActive; BREAK_POINT*pBP; DWORD dwContinue; switch(pDebugEnent->u.Exception.ExceptionRecord.ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION://Ƿ dwContinue = DBG_CONTINUE; m_DebugThreadID=pDebugEnent->dwThreadId; GetThreadContext(pDebugEnent->dwThreadId); m_ExpAddr=PTR_TO_NUM(pDebugEnent->u.Exception.ExceptionRecord.ExceptionAddress); sprintf(szBuffer,"Debug Event : Access Violation , Address = %08X !\n",m_ExpAddr); m_pDebugInterface->DisplayMsg(szBuffer); DebugPlunge(DEBUG_PLUNGE_EXCEPTION); m_bDebuging=true; SuspendThread(m_hDebugThread); GetThreadContext(pDebugEnent->dwThreadId); m_bDebuging=false; break; case EXCEPTION_BREAKPOINT://ϵ dwContinue = DBG_CONTINUE; m_BPCount++; if(m_BPCount==1) { if(m_bActiveProcess) { m_DebugThreadID=pDebugEnent->dwThreadId; GetThreadContext(m_DebugThreadID); DebugPlunge(DEBUG_PLUNGE_OTHER); m_bDebuging=true; SetEvent(m_hWaitEvent); SuspendThread(m_hDebugThread); m_bDebuging=false; HANDLE hModuleSnap; MODULEENTRY32 me32; hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,m_PID); if(hModuleSnap == INVALID_HANDLE_VALUE) return false; me32.dwSize = sizeof(MODULEENTRY32); if(Module32First(hModuleSnap,&me32)) { do { GetModulePEHead(PTR_TO_NUM(me32.modBaseAddr),&ModulePEHead); m_pDebugInterface->OnLoadModule(this,me32.szExePath,PTR_TO_NUM(me32.modBaseAddr),me32.modBaseSize,MAKE_MODULE_ID(ModulePEHead.CheckSum,ModulePEHead.TimeDateStamp)); } while(Module32Next(hModuleSnap,&me32)); } CloseHandle(hModuleSnap); } } else { m_DebugThreadID=pDebugEnent->dwThreadId; pBP = GetCodeBP(PTR_TO_NUM(pDebugEnent->u.Exception.ExceptionRecord.ExceptionAddress)); if(pBP && pBP->State==BP_STATE_ENABLE) { SetThreadEIPBack(pDebugEnent->dwThreadId); if(WriteMemory(m_Context.Eip,&pBP->CodeBackup,1)) pBP->State = BP_STATE_RECOV; if(m_pDebugInterface->TestCondition(pBP->Condition)) { m_pDebugInterface->RunCmdList(pBP->DoCmd); if((pBP->Type & BP_TYPE_DEBUG)==0) { m_pDebugInterface->ResetTrace(); bActive = true; } if(m_pDebugInterface->IsHandledTraceEvent()) { RemoveAllCodeBP(BP_TYPE_DEBUG); DebugPlunge(DEBUG_PLUNGE_BREAK_POINT); m_bDebuging=true; if(m_BPCount==2) SetEvent(m_hWaitEvent); SuspendThread(m_hDebugThread); m_bDebuging=false; } } if(IsRecoverBPExist()) SetSingleStep(); } } break; case EXCEPTION_SINGLE_STEP:// dwContinue = DBG_CONTINUE; m_DebugThreadID=pDebugEnent->dwThreadId; GetThreadContext(pDebugEnent->dwThreadId); RecoverBreakPoint(); bActive = false; pBP = GetCodeBP(m_Context.Eip); if(pBP && pBP->State==BP_STATE_ENABLE) { if(WriteMemory(m_Context.Eip,&pBP->CodeBackup,1)) pBP->State = BP_STATE_RECOV; if(m_pDebugInterface->TestCondition(pBP->Condition)) { m_pDebugInterface->RunCmdList(pBP->DoCmd); if((pBP->Type & BP_TYPE_DEBUG)==0) { m_pDebugInterface->ResetTrace(); bActive = true; } } } if(m_pDebugInterface->m_TraceType!=TRACE_NULL && m_pDebugInterface->IsHandledTraceEvent()) bActive = true; else { if(GetDataBPList()>0) bActive = true; } if(bActive) { RemoveAllCodeBP(BP_TYPE_DEBUG,BP_TYPE_EXC_NON); DebugPlunge(DEBUG_PLUNGE_BREAK_POINT); m_bDebuging=true; SuspendThread(m_hDebugThread); m_bDebuging=false; } if(IsRecoverBPExist()) SetSingleStep(); break; case DBG_CONTROL_C: case DBG_CONTROL_BREAK: dwContinue = DBG_CONTINUE; m_DebugThreadID=pDebugEnent->dwThreadId; GetThreadContext(pDebugEnent->dwThreadId); DebugPlunge(DEBUG_PLUNGE_USER_BREAK); m_bDebuging=true; SuspendThread(m_hDebugThread); m_bDebuging=false; break; default: dwContinue = DBG_EXCEPTION_NOT_HANDLED; m_DebugThreadID=pDebugEnent->dwThreadId; GetThreadContext(pDebugEnent->dwThreadId); DebugPlunge(DEBUG_PLUNGE_OTHER); m_bDebuging=true; SuspendThread(m_hDebugThread); GetThreadContext(pDebugEnent->dwThreadId); m_bDebuging=false; break; } return dwContinue; } ================================================ FILE: Project/SDWin32/Source/SDWin32.h ================================================ #ifndef _SDWIN32_H_ #define _SDWIN32_H_ struct THREAD_DBG_INFO { UINT ThreadID; HANDLE hThread; }; typedef TMap CThreadMap; class CSDWin32 : public CX86Debugger { public: CSDWin32(); ~CSDWin32(); public: bool Open(PCSTR ModuleName); bool Close(); void Release(); ULSIZE WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size); ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size); bool SetCodeBreakPoint(BREAK_POINT&BP); bool ClearCodeBreakPoint(BREAK_POINT&BP); bool SetDataBreakPoint(BREAK_POINT&BP); bool ClearDataBreakPoint(BREAK_POINT&BP); bool SetSingleStep(); bool RemoveSingleStep(); bool UpdateRegister(); bool SaveRegister(); bool ContinueDebug(bool bRestoreScreen = true); static DWORD DebugThread(CSDWin32*pThis); DWORD HandleException(DEBUG_EVENT*pDebugEnent); void GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr); void GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID); bool GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD* pSize); public: CStrA m_MainModuleName; CThreadMap m_ThreadMap; UINT m_DebugThreadID; UINT m_DebugProcessID; HANDLE m_hDebugThread; HANDLE m_hDebugProcess; HANDLE m_CurProcHandle; CONTEXT m_Context; ULPOS m_ExpAddr; HANDLE m_hWaitEvent; private: bool GetModulePEHead(ULPOS Base,PE_HEAD*pHead); bool SetThreadEIPBack(UINT ThreadID); bool GetThreadContext(UINT ID); bool SetThreadContext(UINT ID); bool InsertThread(UINT ID,HANDLE Handle); bool RemoveThread(UINT ID); void DebugPlunge(UINT PlungeType); bool m_bDebuging; bool m_bExit; bool m_bActiveProcess; int m_BPCount; }; #endif ================================================ FILE: Project/SDWin32/Source/SDWin32.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Version // #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""SDWin32.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "SDWin32.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/SDWin32/Source/SDWin32.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "Syser debugger core" #define VER_INTERNALNAME_STR "SDWin32.dll" #define VER_ORIGINALFILENAME_STR "SDWin32.dll" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SDWin32/Source/StdAfx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // SDWin32.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "StdAfx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: Project/SDWin32/Source/StdAfx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers // Windows Header Files: #include "../../Code/Source/Code.h" #include "../../EXEAnalyzer/Source/EXEAnalyzer.h" #include "../../Syser/Source/SDDefine.h" #include #include ================================================ FILE: Project/SDWin32/Source/SyserVersion.h ================================================ #ifndef _SYSER_VERSION_H_ #define _SYSER_VERSION_H_ #define VER_PRODUCTBUILD 1300 #define VER_PRODUCTBUILD_QFE 1089 #define VER_PRODUCTMAJORVERSION 1 #define VER_PRODUCTMINORVERSION 4 #define VER_PRODUCTBETA_STR "" #define VER_PRODUCTVERSION_MAJORMINOR2(x,y) #x "." #y #define VER_PRODUCTVERSION_MAJORMINOR1(x,y) VER_PRODUCTVERSION_MAJORMINOR2(x, y) #define VER_PRODUCTVERSION_STRING VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION) #define VER_PRODUCTVERSION VER_PRODUCTMAJORVERSION,VER_PRODUCTMINORVERSION,VER_PRODUCTBUILD,VER_PRODUCTBUILD_QFE #define VER_PRODUCTVERSION_W (0x0104) #define VER_PRODUCTVERSION_DW (0x01040000 | VER_PRODUCTBUILD) #if (VER_PRODUCTBUILD < 10) #define VER_BPAD "000" #elif (VER_PRODUCTBUILD < 100) #define VER_BPAD "00" #elif (VER_PRODUCTBUILD < 1000) #define VER_BPAD "0" #else #define VER_BPAD #endif #define VER_PRODUCTVERSION_STR2(x,y) VER_PRODUCTVERSION_STRING "." VER_BPAD #x "." #y #define VER_PRODUCTVERSION_STR1(x,y) VER_PRODUCTVERSION_STR2(x, y) #define VER_PRODUCTVERSION_STR VER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE) #if DBG #define VER_DEBUG VS_FF_DEBUG #else #define VER_DEBUG 0 #endif /* default is prerelease */ #if BETA #define VER_PRERELEASE VS_FF_PRERELEASE #else #define VER_PRERELEASE 0 #endif #if OFFICIAL_BUILD #define VER_PRIVATE 0 #else #define VER_PRIVATE VS_FF_PRIVATEBUILD #endif #define VER_FILEFLAGSMASK VS_FFI_FILEFLAGSMASK #define VER_FILEOS VOS_NT_WINDOWS32 #define VER_FILEFLAGS (VER_PRERELEASE|VER_DEBUG|VER_PRIVATE) #define VER_COMPANYNAME_STR "Syser Software Corporation" #define VER_PRODUCTNAME_STR "Syser Kernel Debugger for Windows" #define VER_LEGALTRADEMARKS_STR "Syser (R) is a registered trademark of Syser Software Corporation." #define VER_LEGALCOPYRIGHT_STR "Syser Software Corporation. All rights reserved." #define VER_FILEVERSION_STR VER_PRODUCTVERSION_MAJORMINOR1(VER_PRODUCTMAJORVERSION, VER_PRODUCTMINORVERSION) #define VER_FILEVERSION VER_PRODUCTVERSION #endif //_SYSER_VERSION_H_ ================================================ FILE: Project/SDWin32/Win32/SDWin32.def ================================================ EXPORTS CreateDebugger GetFileFilter GetInfo ================================================ FILE: Project/SDWin32/Win32/SDWin32.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDWin32", "SDWin32.vcproj", "{BB4C6B43-4809-417B-ADBC-981EFF82C18E}" ProjectSection(ProjectDependencies) = postProject {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Debug|Win32.ActiveCfg = Debug|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Debug|Win32.Build.0 = Debug|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Release|Win32.ActiveCfg = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Release|Win32.Build.0 = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Trial|Win32.ActiveCfg = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SDWin32/Win32/SDWin32.vcproj ================================================ ================================================ FILE: Project/SDWin32/Win32/SDWin32.vcxproj ================================================ Debug Win32 Release Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E} Win32Proj DynamicLibrary v142 MultiByte DynamicLibrary v142 MultiByte <_ProjectFileVersion>16.0.33801.447 Debug\ Debug\ true Release\ Release\ false Disabled WIN32;_DEBUG;_WINDOWS;_USRDLL;SDWIN32_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Use Level3 EditAndContinue Psapi.lib;%(AdditionalDependencies) ../../../Bin/i386/SDWin32.dll ./SDWin32.def true ../../../Bin/i386/$(ProjectName)D.pdb Windows false $(OutDir)SDWin32.lib MachineX86 WIN32;NDEBUG;_WINDOWS;_USRDLL;SDWIN32_EXPORTS;%(PreprocessorDefinitions) MultiThreaded Use Level3 ProgramDatabase Psapi.lib;%(AdditionalDependencies) ../../../Bin/i386/SDWin32.dll ./SDWin32.def true ../../../Bin/i386/$(ProjectName).pdb Windows true true false $(OutDir)SDWin32.lib MachineX86 Create Create {e50360c3-a8d9-4582-a0b8-0f8f88467113} false {094fa380-e96b-4ccb-8f40-d58f53823984} false ================================================ FILE: Project/SDWin32/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SDWin32/incfile.txt ================================================ ================================================ FILE: Project/SDWin32/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SPCommand/Source/MakeFile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/SPCommand/Source/SPCommand.cpp ================================================ #include "StdAfx.h" //#include "SPCommand.h" extern __declspec(dllimport) CSyserPluginUI*gpSyserPluginUI; void OnDebuggerOpen() { //Syser Loaded Notify //::DbgPrint("SPCommand : OnDebuggerOpen\n"); } void OnDebuggerClose() { //Syser Unload Notify //::DbgPrint("SPCommand : OnDebuggerClose\n"); } void OnDebuggerPlunge() { //Syser //::DbgPrint("SPCommand : OnDebuggerPlunge\n"); } SYSER_PLUGIN_MODULE PluginModule= { WSTR("Syser Command Plugin Module"), OnDebuggerOpen, OnDebuggerClose, OnDebuggerPlunge }; void DriverUnload(IN PDRIVER_OBJECT DriverObject) { gpSyserPluginUI->RemoveCmd(L"calc"); gpSyserPluginUI->UnregisterPluginModule(WSTR("SPCommand")); ::DbgPrint("SPCommand : DriverUnload\n"); } int syser_calc(int argc,PCWSTR argv[],PCWSTR szCommandLine,void*pUserData) { DWORD dwValue; if(argc>=2) { if(gpSyserPluginUI->CalcExp(argv[1],&dwValue)) { gpSyserPluginUI->Outputf(L"%s = %08x\n",argv[1],dwValue); } } gpSyserPluginUI->Outputf(L"hello world!\n"); return 0; } NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath) { if(gpSyserPluginUI->RegisterPluginModule(WSTR("SPCommand"),&PluginModule)==false) return STATUS_UNSUCCESSFUL; DriverObject->DriverUnload=DriverUnload; gpSyserPluginUI->InsertCmd(L"calc",syser_calc,NULL,L"calc expression value.",L"calc [parameter]"); ::DbgPrint("SPCommand : DriverEntry\n"); return STATUS_SUCCESS; } NTSTATUS DllInitialize( IN PUNICODE_STRING pus ) { ::DbgPrint("SPCommand : DllInitialize\n"); return STATUS_SUCCESS; } NTSTATUS DllUnload( ) { ::DbgPrint("SPCommand : DllUnload\n"); return STATUS_SUCCESS; } ================================================ FILE: Project/SPCommand/Source/SPCommand.def ================================================ NAME SPCommand.sys EXPORTS DllInitialize PRIVATE DllUnload PRIVATE OnDebuggerOpen OnDebuggerClose OnDebuggerPlunge ================================================ FILE: Project/SPCommand/Source/SPCommand.h ================================================ #ifndef _SPCOMMAND_H_ #define _SPCOMMAND_H_ NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath); #endif ================================================ FILE: Project/SPCommand/Source/SPCommand.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""SPCommand.rc2""\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "SPCommand.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/SPCommand/Source/SPCommand.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include #include "SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser debugger plugin" #define VER_INTERNALNAME_STR "SPCommand.sys" #define VER_ORIGINALFILENAME_STR "SPCommand.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SPCommand/Source/Sources ================================================ TARGETNAME=SPCommand TARGETPATH=..\Bin\Plugin TARGETTYPE=DRIVER C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h PRECOMPILED_PCH=StdAfx.pch PRECOMPILED_OBJ=StdAfx.obj TARGETLIBS= Syser.lib SOURCES = SPCommand.cpp\ SPCommand.rc ================================================ FILE: Project/SPCommand/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/SPCommand/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #ifdef __cplusplus extern "C"{ #endif #include NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath); #ifdef __cplusplus } #endif #include "define.h" #include "SyserDebugger.h" #endif//_STDAFX_H_ ================================================ FILE: Project/SPCommand/Source/resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SPCommand.rc // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SPCommand/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SPCommand/incfile.txt ================================================ ================================================ FILE: Project/SPCommand/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SPCommand/readme.txt ================================================ compile environment WINDOWS DDK (required) version: windows xp ddk windows xpsp1 ddk windows ifsddk2003sp1 Microsoft Visual C++ (optional) example: if you user Microsoft vistual c++ IDE need set environment variable WXPBASE= "your windows ddk install path" example: windows xpsp1 ddk default install path WXPBASE=c:\winddk\2600.1106 How to install syser debugger plug-in module copy plug-in module to c:\windows\system32\drivers\plugin\i386 directory. ================================================ FILE: Project/SPCommand/vc2002/SyserPluginDemo.sln ================================================ Microsoft Visual Studio Solution File, Format Version 7.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SyserPluginDemo", "SyserPluginDemo.vcproj", "{1DD36439-F24B-49AB-93F2-4F03FAAFFE1E}" EndProject Global GlobalSection(SolutionConfiguration) = preSolution ConfigName.0 = Debug ConfigName.1 = Release EndGlobalSection GlobalSection(ProjectDependencies) = postSolution EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {1DD36439-F24B-49AB-93F2-4F03FAAFFE1E}.Debug.ActiveCfg = Debug|Win32 {1DD36439-F24B-49AB-93F2-4F03FAAFFE1E}.Debug.Build.0 = Debug|Win32 {1DD36439-F24B-49AB-93F2-4F03FAAFFE1E}.Release.ActiveCfg = Release|Win32 {1DD36439-F24B-49AB-93F2-4F03FAAFFE1E}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/SPCommand/vc2002/SyserPluginDemo.vcproj ================================================ ================================================ FILE: Project/SPCommand/vc2002/clean.cmd ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SPCommand/vc2002/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off if exist ..\..\..\Addition\SyserDebugger\SyserDebugger.h copy /y ..\..\..\Addition\SyserDebugger\SyserDebugger.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserVersion.h copy /y ..\..\..\Addition\SyserDebugger\SyserVersion.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h copy /y ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h ..\Source if exist ..\..\..\bin\i386\syser.lib copy /y ..\..\..\bin\i386\syser.lib ..\Source if exist ..\..\Code\Source\define.h copy /y ..\..\Code\Source\define.h ..\Source @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% if exist ..\..\..\Bin\i386\Plugin\i386\SPCommand.sys copy /y ..\bin\plugin\i386\SPCommand.sys ..\..\..\bin\i386\plugin\i386 :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SPCommand/vc2003/SPCommand.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPCommand", "SPCommand.vcproj", "{75DF46DE-CD34-4E1A-91D2-1537FF9FE41C}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {75DF46DE-CD34-4E1A-91D2-1537FF9FE41C}.Debug.ActiveCfg = Debug|Win32 {75DF46DE-CD34-4E1A-91D2-1537FF9FE41C}.Debug.Build.0 = Debug|Win32 {75DF46DE-CD34-4E1A-91D2-1537FF9FE41C}.Release.ActiveCfg = Release|Win32 {75DF46DE-CD34-4E1A-91D2-1537FF9FE41C}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/SPCommand/vc2003/SPCommand.vcproj ================================================ ================================================ FILE: Project/SPCommand/vc2003/clean.cmd ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SPCommand/vc2003/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off if exist ..\..\..\Addition\SyserDebugger\SyserDebugger.h copy /y ..\..\..\Addition\SyserDebugger\SyserDebugger.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserVersion.h copy /y ..\..\..\Addition\SyserDebugger\SyserVersion.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h copy /y ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h ..\Source if exist ..\..\..\bin\i386\syser.lib copy /y ..\..\..\bin\i386\syser.lib ..\Source if exist ..\..\Code\Source\define.h copy /y ..\..\Code\Source\define.h ..\Source @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% if exist ..\..\..\Bin\i386\Plugin\i386\SPCommand.sys copy /y ..\bin\plugin\i386\SPCommand.sys ..\..\..\bin\i386\plugin\i386 :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SPCommand/vc2005/SyserPluginDemo.sln ================================================  Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SyserPluginDemo", "SyserPluginDemo.vcproj", "{1AB96044-2488-4EE5-A710-7D5BA4C71422}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Debug|Win32.ActiveCfg = Debug|Win32 {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Debug|Win32.Build.0 = Debug|Win32 {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Release|Win32.ActiveCfg = Release|Win32 {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SPCommand/vc2005/SyserPluginDemo.vcproj ================================================ ================================================ FILE: Project/SPCommand/vc2005/clean.cmd ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SPCommand/vc2005/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off if exist ..\..\..\Addition\SyserDebugger\SyserDebugger.h copy /y ..\..\..\Addition\SyserDebugger\SyserDebugger.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserVersion.h copy /y ..\..\..\Addition\SyserDebugger\SyserVersion.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h copy /y ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h ..\Source if exist ..\..\..\bin\i386\syser.lib copy /y ..\..\..\bin\i386\syser.lib ..\Source if exist ..\..\Code\Source\define.h copy /y ..\..\Code\Source\define.h ..\Source @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% if exist ..\..\..\Bin\i386\Plugin\i386\SPCommand.sys copy /y ..\bin\plugin\i386\SPCommand.sys ..\..\..\bin\i386\plugin\i386 :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SPCommand/vc2008/SyserPluginDemo.sln ================================================  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SyserPluginDemo", "SyserPluginDemo.vcproj", "{1AB96044-2488-4EE5-A710-7D5BA4C71422}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Debug|Win32.ActiveCfg = Debug|Win32 {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Debug|Win32.Build.0 = Debug|Win32 {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Release|Win32.ActiveCfg = Release|Win32 {1AB96044-2488-4EE5-A710-7D5BA4C71422}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SPCommand/vc2008/SyserPluginDemo.vcproj ================================================ ================================================ FILE: Project/SPCommand/vc2008/clean.cmd ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SPCommand/vc2008/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off if exist ..\..\..\Addition\SyserDebugger\SyserDebugger.h copy /y ..\..\..\Addition\SyserDebugger\SyserDebugger.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserVersion.h copy /y ..\..\..\Addition\SyserDebugger\SyserVersion.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h copy /y ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h ..\Source if exist ..\..\..\bin\i386\syser.lib copy /y ..\..\..\bin\i386\syser.lib ..\Source if exist ..\..\Code\Source\define.h copy /y ..\..\Code\Source\define.h ..\Source @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% if exist ..\..\..\Bin\i386\Plugin\i386\SPCommand.sys copy /y ..\bin\plugin\i386\SPCommand.sys ..\..\..\bin\i386\plugin\i386 :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SPCommand/vc6/SyserPluginDemo.dsp ================================================ # Microsoft Developer Studio Project File - Name="SyserPluginDemo" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE "Win32 (x86) External Target" 0x0106 CFG=SyserPluginDemo - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f "SyserPluginDemo.mak". !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "SyserPluginDemo.mak" CFG="SyserPluginDemo - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "SyserPluginDemo - Win32 Release" (based on "Win32 (x86) External Target") !MESSAGE "SyserPluginDemo - Win32 Debug" (based on "Win32 (x86) External Target") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" !IF "$(CFG)" == "SyserPluginDemo - Win32 Release" # PROP BASE Use_MFC # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir "Release" # PROP BASE Intermediate_Dir "Release" # PROP BASE Cmd_Line "NMAKE /f SyserPluginDemo.mak" # PROP BASE Rebuild_Opt "/a" # PROP BASE Target_File "SyserPluginDemo.exe" # PROP BASE Bsc_Name "SyserPluginDemo.bsc" # PROP BASE Target_Dir "" # PROP Use_MFC # PROP Use_Debug_Libraries 0 # PROP Output_Dir "Release" # PROP Intermediate_Dir "Release" # PROP Cmd_Line "ddkbuild.cmd -WXP free ..\source" # PROP Rebuild_Opt "/a" # PROP Target_File "SyserPluginDemo.exe" # PROP Bsc_Name "" # PROP Target_Dir "" !ELSEIF "$(CFG)" == "SyserPluginDemo - Win32 Debug" # PROP BASE Use_MFC # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir "Debug" # PROP BASE Intermediate_Dir "Debug" # PROP BASE Cmd_Line "NMAKE /f SyserPluginDemo.mak" # PROP BASE Rebuild_Opt "/a" # PROP BASE Target_File "SyserPluginDemo.exe" # PROP BASE Bsc_Name "SyserPluginDemo.bsc" # PROP BASE Target_Dir "" # PROP Use_MFC # PROP Use_Debug_Libraries 1 # PROP Output_Dir "Debug" # PROP Intermediate_Dir "Debug" # PROP Cmd_Line "ddkbuild.cmd -WXP chk ..\source" # PROP Rebuild_Opt "/a" # PROP Target_File "SyserPluginDemo.exe" # PROP Bsc_Name "" # PROP Target_Dir "" !ENDIF # Begin Target # Name "SyserPluginDemo - Win32 Release" # Name "SyserPluginDemo - Win32 Debug" !IF "$(CFG)" == "SyserPluginDemo - Win32 Release" !ELSEIF "$(CFG)" == "SyserPluginDemo - Win32 Debug" !ENDIF # Begin Group "Source Files" # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" # End Group # Begin Group "Header Files" # PROP Default_Filter "h;hpp;hxx;hm;inl" # End Group # Begin Group "Resource Files" # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" # End Group # End Target # End Project ================================================ FILE: Project/SPCommand/vc6/SyserPluginDemo.dsw ================================================ Microsoft Developer Studio Workspace File, Format Version 6.00 # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! ############################################################################### Project: "SyserPluginDemo"=.\SyserPluginDemo.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### ================================================ FILE: Project/SPCommand/vc6/clean.cmd ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SPCommand/vc6/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off if exist ..\..\..\Addition\SyserDebugger\SyserDebugger.h copy /y ..\..\..\Addition\SyserDebugger\SyserDebugger.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserVersion.h copy /y ..\..\..\Addition\SyserDebugger\SyserVersion.h ..\Source if exist ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h copy /y ..\..\..\Addition\SyserDebugger\SyserBuildNumber.h ..\Source if exist ..\..\..\bin\i386\syser.lib copy /y ..\..\..\bin\i386\syser.lib ..\Source if exist ..\..\Code\Source\define.h copy /y ..\..\Code\Source\define.h ..\Source @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% if exist ..\..\..\Bin\i386\Plugin\i386\SPCommand.sys copy /y ..\bin\plugin\i386\SPCommand.sys ..\..\..\bin\i386\plugin\i386 :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SdsCMD/Source/Resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SdsCMD.rc // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SdsCMD/Source/SdsCMD.cpp ================================================ #include "StdAfx.h" #include "SdsCMD.h" #include "../../SyserApp/Source/AnalyseCom.h" #include "../../SyserApp/Source/NoPDBSymbol.h" CSdsCMD::CSdsCMD() { } CSdsCMD::~CSdsCMD() { } bool CSdsCMD::TranslateSymbolFile(IN PCSTR FileName,OUT PSTR SymbolFileName) { bool bRet=false; SymbolFileName[0]=0; bRet = m_SourceDebug.TranslateSymbolFile((char*)FileName,(char*)SymbolFileName); if(bRet) { m_SourceDebug.PackedSourceFile(SymbolFileName,NULL); } else { CNoPDBSymbol NoPDBSymbol; if(NoPDBSymbol.Init()) bRet = NoPDBSymbol.TranslateSymbolFile((char*)FileName,(char*)SymbolFileName); } return bRet; } typedef TList FILENAMELIST; int main(int argc,char* argv[]) { char SymbolFileName[512]; char* Options[]={"-p","/p","-e","/e","-a","/a","-h","/h","-i","/i"}; bool pOption=false,eOption=false,aOption=false,hOption=false,iOption=false; char* ModuleName; CNoPDBSymbol NoPDBSymbol; CSdsCMD SdsObject; FILENAMELIST FileList; FILENAMELIST::IT BeginIT,EndIT; int i,NameCount=0; if(argc==1) { local_help: ModuleName = TStrRChr(argv[0],'\\'); if(ModuleName==NULL) ModuleName=argv[0]; else ModuleName++; cout <<"SyserSoft SDS symbol translator version 1.0.0\n"; cout <<"(C) SyserSoft Corporation, 2002-2005\n\n"; cout < #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "Syser Debugger Symbol Translator" #define VER_INTERNALNAME_STR "SdsCMD.exe" #define VER_ORIGINALFILENAME_STR "SdsCMD.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/SdsCMD/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/SdsCMD/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include #include #include #include #include #include using namespace std; #include "../../Code/Source/Code.h" #include "../../EXEAnalyzer/Source/EXEAnalyzer.h" #include #include #include #include #include "../../SyserApp/Source/SourceDebug.h" #endif ================================================ FILE: Project/SdsCMD/Win32/SdsCMD.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SdsCMD", "SdsCMD.vcproj", "{6FA459FD-9122-44EB-B9D6-3268DB1C6803}" ProjectSection(ProjectDependencies) = postProject {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6FA459FD-9122-44EB-B9D6-3268DB1C6803}.Debug|Win32.ActiveCfg = Debug|Win32 {6FA459FD-9122-44EB-B9D6-3268DB1C6803}.Debug|Win32.Build.0 = Debug|Win32 {6FA459FD-9122-44EB-B9D6-3268DB1C6803}.Release|Win32.ActiveCfg = Release|Win32 {6FA459FD-9122-44EB-B9D6-3268DB1C6803}.Release|Win32.Build.0 = Release|Win32 {6FA459FD-9122-44EB-B9D6-3268DB1C6803}.Trial|Win32.ActiveCfg = Release|Win32 {6FA459FD-9122-44EB-B9D6-3268DB1C6803}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SdsCMD/Win32/SdsCMD.vcproj ================================================ ================================================ FILE: Project/SymRecv/Source/SymRecv.cpp ================================================ // SymRecv.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "SymRecv.h" #include "SymRecvDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSymRecvApp BEGIN_MESSAGE_MAP(CSymRecvApp, CWinApp) ON_COMMAND(ID_HELP, CWinApp::OnHelp) END_MESSAGE_MAP() // CSymRecvApp construction CSymRecvApp::CSymRecvApp() { // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CSymRecvApp object CSymRecvApp theApp; // CSymRecvApp initialization BOOL CSymRecvApp::InitInstance() { // InitCommonControls() is required on Windows XP if an application // manifest specifies use of ComCtl32.dll version 6 or later to enable // visual styles. Otherwise, any window creation will fail. InitCommonControls(); CWinApp::InitInstance(); AfxEnableControlContainer(); CHAR szPath[MAX_FN_LEN],szFileName[MAX_FN_LEN]; GetModulePath(szPath); m_strSymSite = DEFAULT_SYM_SITE; TStrCpy(szFileName,szPath); TStrCat(szFileName,DEFAULT_PDB_PATH); m_strPDBPath = szFileName; TStrCpy(szFileName,szPath); TStrCat(szFileName,DEFAULT_SDS_PATH); m_strSDSPath = szFileName; CSymRecvDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; } ================================================ FILE: Project/SymRecv/Source/SymRecv.h ================================================ // SymRecv.h : main header file for the PROJECT_NAME application // #pragma once #ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH #endif #include "resource.h" // main symbols #define DEFAULT_SYM_SITE "http://msdl.microsoft.com/download/symbols" #define DEFAULT_PDB_PATH "Download Symbols" #define DEFAULT_SDS_PATH "Download Converted SDS" // CSymRecvApp: // See SymRecv.cpp for the implementation of this class // class CSymRecvApp : public CWinApp { public: CSymRecvApp(); // Overrides public: virtual BOOL InitInstance(); // Implementation CString m_strSymSite; CString m_strPDBPath; CString m_strSDSPath; DECLARE_MESSAGE_MAP() }; extern CSymRecvApp theApp; ================================================ FILE: Project/SymRecv/Source/SymRecv.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" "#define _AFX_NO_TRACKER_RESOURCES\r\n" "#define _AFX_NO_PROPERTY_RESOURCES\r\n" "\r\n" "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" "LANGUAGE 9, 1\r\n" "#pragma code_page(1252)\r\n" "#include ""res\\SymRecv.rc2"" // non-Microsoft Visual C++ edited resources\r\n" "#include ""afxres.rc"" // Standard components\r\n" "#endif\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDR_MAINFRAME ICON "res\\SymRecv.ico" IDI_ICON_SYSER ICON "res\\Syser.ico" IDI_ICON_SITE ICON "res\\site.ico" IDI_ICON_PDB ICON "res\\pdb.ico" IDI_ICON_SDS ICON "res\\sds.ico" ///////////////////////////////////////////////////////////////////////////// // // RT_MANIFEST // IDR_RT_MANIFEST RT_MANIFEST "res\\SymRecv.manifest" #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Dialog // IDD_SYMRECV_DIALOG DIALOGEX 0, 0, 362, 218 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "Syser Symbol Receiver" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Module List",IDC_STATIC,6,3,349,120 LTEXT "Symbol Site",IDC_STATIC,43,142,45,8 LTEXT "Download PDB Path",IDC_STATIC,43,166,64,8 LTEXT "Converted SDS Path",IDC_STATIC,43,192,66,8 EDITTEXT IDC_EDIT_SYM_SITE,116,140,160,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_PDB_PATH,116,165,160,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_SDS_PATH,116,190,160,14,ES_AUTOHSCROLL DEFPUSHBUTTON "Add",IDC_BUTTON_ADD,297,44,50,14 PUSHBUTTON "Remove",IDC_BUTTON_REMOVE,297,64,50,14 PUSHBUTTON "Get Symbols",IDC_BUTTON_GET_SYM,297,84,50,14 PUSHBUTTON "Stop",IDC_BUTTON_STOP,297,102,50,14 PUSHBUTTON "Reset",IDC_BUTTON_RESET,285,140,61,14 PUSHBUTTON "Change",IDC_BUTTON_BROWSE_PDB,285,165,36,14 PUSHBUTTON "Change",IDC_BUTTON_BROWSE_SDS,285,190,36,14 GROUPBOX "Download Setting",IDC_STATIC,6,125,349,87 ICON IDI_ICON_SYSER,IDC_STATIC,310,19,21,20 PUSHBUTTON "Open",IDC_BUTTON_PDB_OPEN,323,165,23,14 PUSHBUTTON "Open",IDC_BUTTON_SDS_OPEN,323,190,23,14 CONTROL "",IDC_LIST_MODULE,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP, 12,15,277,102 ICON IDI_ICON_SITE,IDC_STATIC,13,136,20,20 ICON IDI_ICON_PDB,IDC_STATIC,13,161,20,20 ICON IDI_ICON_SDS,IDC_STATIC,13,185,20,20 END ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN IDD_SYMRECV_DIALOG, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 355 TOPMARGIN, 7 BOTTOMMARGIN, 211 END END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #define _AFX_NO_SPLITTER_RESOURCES #define _AFX_NO_OLE_RESOURCES #define _AFX_NO_TRACKER_RESOURCES #define _AFX_NO_PROPERTY_RESOURCES #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE 9, 1 #pragma code_page(1252) #include "res\SymRecv.rc2" // non-Microsoft Visual C++ edited resources #include "afxres.rc" // Standard components #endif ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/SymRecv/Source/SymRecvDlg.cpp ================================================ // SymRecvDlg.cpp : implementation file // #include "stdafx.h" #include "SymRecv.h" #include "SymRecvDlg.h" #include "../../SyserApp/Source/SourceDebug.h" #include "../../SyserApp/Source/NoPDBSymbol.h" #ifdef _DEBUG #define new DEBUG_NEW #endif #define WM_UPDATE_DOWNLOAD_STATE WM_USER+0x200 // CSymRecvDlg dialog bool CSymRecvDlg::InitDbgHelp() { m_DbgHelpModule = LoadLibrary("DbgHelp.dll"); if(m_DbgHelpModule==NULL) return false; m_SymFindFileInPath =(fpSymFindFileInPath) GetProcAddress(m_DbgHelpModule,"SymFindFileInPath"); m_SymSetOptions = (fpSymSetOptions)GetProcAddress(m_DbgHelpModule,"SymSetOptions"); m_SymGetOptions = (fpSymGetOptions)GetProcAddress(m_DbgHelpModule,"SymGetOptions"); return true; } CSymRecvDlg::CSymRecvDlg(CWnd* pParent /*=NULL*/) : CDialog(CSymRecvDlg::IDD, pParent) , m_strSymSite(_T("")) , m_strPDBPath(_T("")) , m_strSDSPath(_T("")) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_SDSSavePathIndex=0; m_PDBSavePathIndex=0; m_GetSymbolThread=false; m_Stop=false; InitializeCriticalSection(&m_CriticalSection); } CSymRecvDlg::~CSymRecvDlg() { DeleteCriticalSection(&m_CriticalSection); } void CSymRecvDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_SYM_SITE, m_strSymSite); DDV_MaxChars(pDX, m_strSymSite, 260); DDX_Text(pDX, IDC_EDIT_PDB_PATH, m_strPDBPath); DDV_MaxChars(pDX, m_strPDBPath, 260); DDX_Text(pDX, IDC_EDIT_SDS_PATH, m_strSDSPath); DDV_MaxChars(pDX, m_strSDSPath, 260); DDX_Control(pDX, IDC_LIST_MODULE, m_ModuleList); } BEGIN_MESSAGE_MAP(CSymRecvDlg, CDialog) ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON_ADD, OnBnClickedButtonAdd) ON_BN_CLICKED(IDC_BUTTON_REMOVE, OnBnClickedButtonRemove) ON_BN_CLICKED(IDC_BUTTON_GET_SYM, OnBnClickedButtonGetSym) ON_BN_CLICKED(IDC_BUTTON_STOP, OnBnClickedButtonStop) ON_BN_CLICKED(IDC_BUTTON_RESET, OnBnClickedButtonReset) ON_BN_CLICKED(IDC_BUTTON_BROWSE_PDB, OnBnClickedButtonBrowsePdb) ON_BN_CLICKED(IDC_BUTTON_BROWSE_SDS, OnBnClickedButtonBrowseSds) ON_BN_CLICKED(IDC_BUTTON_PDB_OPEN, OnBnClickedButtonPdbOpen) ON_BN_CLICKED(IDC_BUTTON_SDS_OPEN, OnBnClickedButtonSdsOpen) END_MESSAGE_MAP() // CSymRecvDlg message handlers BOOL CSymRecvDlg::OnInitDialog() { CDialog::OnInitDialog(); if(InitDbgHelp()==false) return FALSE; // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon m_ModuleList.InsertColumn(0,"FileName",LVCFMT_LEFT,250); m_ModuleList.InsertColumn(1,"Status",LVCFMT_LEFT,100); m_strSymSite = theApp.m_strSymSite; m_strPDBPath = theApp.m_strPDBPath; m_strSDSPath = theApp.m_strSDSPath; UpdateData(FALSE); GetDlgItem(IDC_BUTTON_ADD)->GetFocus(); ShowWindow(SW_NORMAL); return TRUE; // return TRUE unless you set the focus to a control } // If you add a minimize button to your dialog, you will need the code below // to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework. void CSymRecvDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // The system calls this function to obtain the cursor to display while the user drags // the minimized window. HCURSOR CSymRecvDlg::OnQueryDragIcon() { return static_cast(m_hIcon); } void CSymRecvDlg::OnBnClickedButtonAdd() { CHAR szFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hInstance; OpenFileName.hwndOwner = theApp.GetMainWnd()->m_hWnd; OpenFileName.lpstrFilter = "Execute Files\0*.exe;*.dll;*.cpl;*.sys;*.scr;*.ocx\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return; WORKFILELIST::IT FindIT; FindIT = m_CurrentFileList.InsertUnique(szFileName); if(FindIT!=m_CurrentFileList.End()) { (*FindIT).FileName = FindIT.Key(); m_ModuleList.InsertItem(0,szFileName); m_ModuleList.SetItemData(0,0); } } void CSymRecvDlg::OnBnClickedButtonRemove() { int Index; CHAR Name[MAX_FN_LEN]; WORKFILELIST::IT FindIT; Index = m_ModuleList.GetNextItem(-1,LVNI_SELECTED); if(Index==-1) return; m_ModuleList.GetItemText(Index,0,Name,MAX_FN_LEN); FindIT = m_CurrentFileList.Find(Name); if(FindIT!=m_CurrentFileList.End()) { m_CurrentFileList.Remove(FindIT); } m_ModuleList.DeleteItem(Index); } void CSymRecvDlg::OnBnClickedButtonGetSym() { PDBSAVEPATHLIST::IT PDBIT; SDSSAVEPATHLIST::IT SDSIT; SYMFINDPATHLIST::IT SYMIT; STPATHNAME stPDBName; STPATHNAME stSDSName; STPATHNAME stSymFindPathName; WORKFILELIST::IT BeginIT,EndIT; UpdateData(TRUE); EnterCriticalSection(&m_CriticalSection); stSymFindPathName.Name = m_strSymSite; SYMIT = m_SymFindPathList.Find(stSymFindPathName); if(SYMIT==m_SymFindPathList.End()) { m_SymFindPathList.Append(stSymFindPathName); } else { stSymFindPathName=*SYMIT; } stPDBName.Name = m_strPDBPath; PDBIT = m_PDBSavePathList.Find(stPDBName); if(PDBIT==m_PDBSavePathList.End()) { m_PDBSavePathList.Append(stPDBName); } else { stPDBName=*PDBIT; } stSDSName.Name = m_strSDSPath; SDSIT = m_SDSSavePathList.Find(stSDSName); if(SDSIT==m_SDSSavePathList.End()) { m_PDBSavePathList.Append(stSDSName); } else { stSDSName=*SDSIT; } BeginIT=m_CurrentFileList.Begin(); EndIT=m_CurrentFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).Stat==0) { (*BeginIT).Stat=1; (*BeginIT).PDBSavePath=stPDBName.Name; (*BeginIT).SDSSavePath=stSDSName.Name; (*BeginIT).FindPath=stSymFindPathName.Name; } } if(m_GetSymbolThread==false) { ::CreateThread(NULL,0x100000,GetSymbolThread,this,0,&m_GetSymbolThreadID); } LeaveCriticalSection(&m_CriticalSection); } void CSymRecvDlg::OnBnClickedButtonStop() { m_Stop=true; } void CSymRecvDlg::OnBnClickedButtonReset() { m_strSymSite = theApp.m_strSymSite; m_strPDBPath = theApp.m_strPDBPath; m_strSDSPath = theApp.m_strSDSPath; UpdateData(FALSE); } void CSymRecvDlg::OnBnClickedButtonBrowsePdb() { CHAR szDir[MAX_FN_LEN]; bool Result; BROWSEINFO bi; LPITEMIDLIST pidl; LPMALLOC pMalloc; if(SHGetMalloc(&pMalloc) != NOERROR) return; bi.hwndOwner=theApp.GetMainWnd()->m_hWnd; bi.pidlRoot=NULL; bi.pszDisplayName=NULL; bi.lpszTitle="Select Directory"; bi.ulFlags=BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE; bi.lpfn=NULL; bi.lParam=0; Result = false; if((pidl=SHBrowseForFolder(&bi)) != NULL) { Result = SHGetPathFromIDList(pidl, szDir)!=FALSE; pMalloc->Free(pidl); } pMalloc->Release(); if(Result) { m_strPDBPath = szDir; UpdateData(FALSE); } } void CSymRecvDlg::OnBnClickedButtonBrowseSds() { CHAR szDir[MAX_FN_LEN]; bool Result; BROWSEINFO bi; LPITEMIDLIST pidl; LPMALLOC pMalloc; if(SHGetMalloc(&pMalloc) != NOERROR) return; bi.hwndOwner=theApp.GetMainWnd()->m_hWnd; bi.pidlRoot=NULL; bi.pszDisplayName=NULL; bi.lpszTitle="Select Directory"; bi.ulFlags=BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE; bi.lpfn=NULL; bi.lParam=0; Result = false; if((pidl=SHBrowseForFolder(&bi)) != NULL) { Result = SHGetPathFromIDList(pidl, szDir)!=FALSE; pMalloc->Free(pidl); } pMalloc->Release(); if(Result) { m_strSDSPath = szDir; UpdateData(FALSE); } } void CSymRecvDlg::OnBnClickedButtonPdbOpen() { UpdateData(TRUE); gpFileIO->CreateDir(m_strPDBPath); ShellExecute(NULL,"open","explorer",m_strPDBPath,NULL,SW_NORMAL); } void CSymRecvDlg::OnBnClickedButtonSdsOpen() { UpdateData(TRUE); gpFileIO->CreateDir(m_strSDSPath); ShellExecute(NULL,"open","explorer",m_strSDSPath,NULL,SW_NORMAL); } DWORD WINAPI GetSymbolThread(LPVOID lpParameter) { PDBSAVEPATHLIST::IT PDBIT; SDSSAVEPATHLIST::IT SDSIT; STPATHNAME stPDBName; STPATHNAME stSDSName; WORKFILELIST::IT BeginIT,EndIT; CGetSymbolStat CurSymbolStat; CSymRecvDlg* pDlg = (CSymRecvDlg*)lpParameter; pDlg->m_GetSymbolThread=true; pDlg->m_Stop=false; for(;pDlg->m_Stop==false;) { EnterCriticalSection(&pDlg->m_CriticalSection); BeginIT=pDlg->m_CurrentFileList.Begin(); EndIT=pDlg->m_CurrentFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).Stat>=2) continue; break; } if(BeginIT==EndIT) { LeaveCriticalSection(&pDlg->m_CriticalSection); pDlg->m_GetSymbolThread=false; break; } if((*BeginIT).Stat==0) { stPDBName.Name = pDlg->m_strPDBPath; PDBIT = pDlg->m_PDBSavePathList.Find(stPDBName); if(PDBIT==pDlg->m_PDBSavePathList.End()) { pDlg->m_PDBSavePathList.Append(stPDBName); } else { stPDBName=*PDBIT; } stSDSName.Name = pDlg->m_strSDSPath; SDSIT = pDlg->m_SDSSavePathList.Find(stSDSName); if(SDSIT==pDlg->m_SDSSavePathList.End()) { pDlg->m_PDBSavePathList.Append(stSDSName); } else { stSDSName=*SDSIT; } (*BeginIT).Stat=1; (*BeginIT).PDBSavePath=stPDBName.Name; (*BeginIT).SDSSavePath=stSDSName.Name; } (*BeginIT).Stat=2; CurSymbolStat=(*BeginIT); LeaveCriticalSection(&pDlg->m_CriticalSection); WIN32_FIND_DATA FindData; HANDLE hFindHandle; hFindHandle = FindFirstFile(CurSymbolStat.PDBSavePath,&FindData); if(hFindHandle == INVALID_HANDLE_VALUE) { CreateDirectory(CurSymbolStat.PDBSavePath,NULL); }else FindClose(hFindHandle); hFindHandle = FindFirstFile(CurSymbolStat.SDSSavePath,&FindData); if(hFindHandle == INVALID_HANDLE_VALUE) { CreateDirectory(CurSymbolStat.SDSSavePath,NULL); }else FindClose(hFindHandle); pDlg->DownLoadSymbol(CurSymbolStat); } return 0; } bool CSymRecvDlg::DownLoadSymbol(CGetSymbolStat& SymbolStat) { CPEFile PEFile; DWORD Index; PE_DEBUG_MISC DebugMisc; PE_DEBUG_PDB DebugPDB; PE_DEBUG_CODEVIEW DebugCodeView; PPE_DEBUG_DIRECTORY pDebugDirectory; PE_DATA_DIR DebugDataDirectory; DWORD DebugDirecotryNum=0; DWORD Signature; BOOL bRet; DWORD ErrorCode=0; DWORD SymbolFileType = 0xffffffff; DWORD ReadLen; DWORD PathLen; BYTE * Buffer=NULL; TListDeleteFileList; char* NoPathFileName; char FindPath[MAX_PATH+1]; char FileName[MAX_PATH+1]; char FindFileName[MAX_PATH+1]; char SymbolFileName[MAX_PATH+1]; memset(&DebugDataDirectory,0,sizeof(PE_DATA_DIR)); if(PEFile.Open(SymbolStat.FileName)==false) return false; if(PEFile.GetDataDirectory(6,&DebugDataDirectory)==false) goto local_quit; if(DebugDataDirectory.VirtualAddress ==0) goto local_quit; if(DebugDataDirectory.Size>0x10000||DebugDataDirectory.Size==0) goto local_quit; NoPathFileName = TGetFileName((PCSTR)SymbolStat.FileName); PathLen = *(DWORD*)&NoPathFileName-*(DWORD*)&SymbolStat.FileName; Buffer=new BYTE[DebugDataDirectory.Size]; memset(Buffer,0,DebugDataDirectory.Size); ReadLen = PEFile.ReadImageMemory(DebugDataDirectory.VirtualAddress+PEFile.m_PEHead.ImageBase,Buffer,DebugDataDirectory.Size); if(ReadLen!=DebugDataDirectory.Size) goto local_quit; pDebugDirectory =(PPE_DEBUG_DIRECTORY) Buffer; DebugDirecotryNum = DebugDataDirectory.Size / sizeof(PE_DEBUG_DIRECTORY); for(Index = 0; Index::IT BeginIT,EndIT; BeginIT=DeleteFileList.Begin(); EndIT=DeleteFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { BOOL bretf=false; bretf = ::DeleteFile(*BeginIT); if(bretf==false) ::MessageBox(NULL,*BeginIT,"Delete File Error!",MB_OK); delete *BeginIT; } DeleteFileList.Clear(); SendMessage(WM_UPDATE_DOWNLOAD_STATE,1,(LPARAM)(PCSTR)SymbolStat.FileName); } local_quit: if(Buffer) delete []Buffer; PEFile.Close(); return true; } bool CSymRecvDlg::TranslateSymbolFile(IN int Type,IN PCSTR pExeFileName,OUT char* pSymbolFileName) { if(Type!=1) { CSourceDebug PDBExplorer; return PDBExplorer.TranslateSymbolFile(pExeFileName,pSymbolFileName); } CNoPDBSymbol NoPDBSymbol; NoPDBSymbol.Init(); return NoPDBSymbol.TranslateSymbolFile(pExeFileName,pSymbolFileName); } bool CSymRecvDlg::GetDebugCodeviewByDbg(char* DbgFileName,PPE_DEBUG_CODEVIEW DebugCodeView) { DWORD Signature=('0'<<24)+('1'<<16)+('B'<<8)+'N'; DWORD i; bool bRet=false; CImageFile ImageFile; BYTE *Buf=NULL; if(ImageFile.Open(DbgFileName)==false) return false; if(ImageFile.m_FileSize<=0x100000*10&&ImageFile.m_FileSize>100) { Buf = new BYTE[ImageFile.m_FileSize]; if(ImageFile.ReadFile(0,Buf,ImageFile.m_FileSize)==false) { goto local_quit; } for(i = 0;i < ImageFile.m_FileSize-3;i++) { if(*(DWORD*)&Buf[i]==Signature) { bRet=true; *DebugCodeView =*(PPE_DEBUG_CODEVIEW)&Buf[i]; break; } } } local_quit: if(Buf) delete []Buf; ImageFile.Close(); return bRet; } bool CSymRecvDlg::OnUpdateDownLoadState(WPARAM wParam,LPARAM lParam) { int ItemCount,Index; CHAR szFileName[MAX_FN_LEN]; ItemCount = m_ModuleList.GetItemCount(); for(Index=0;Index=ItemCount) return false; switch(wParam) { case 1: m_ModuleList.SetItemText(Index,1,"Success"); break; case 2: m_ModuleList.SetItemText(Index,1,"Fail !!!"); break; case 3: m_ModuleList.SetItemText(Index,1,"Downloading."); break; case 4: m_ModuleList.SetItemText(Index,1,"Analyzing Symbol file..."); break; default: break; } return true; } BOOL CSymRecvDlg::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) { if(message == WM_UPDATE_DOWNLOAD_STATE) { OnUpdateDownLoadState(wParam,lParam); return true; } return CDialog::OnWndMsg(message, wParam, lParam, pResult); } ================================================ FILE: Project/SymRecv/Source/SymRecvDlg.h ================================================ // SymRecvDlg.h : header file // #pragma once #include "afxcmn.h" typedef struct _STPATHNAME { PCSTR Name; bool operator ==(const struct _STPATHNAME dest)const { return TStrCmp(Name,dest.Name)==0; } }STPATHNAME,*PSTPATHNAME; class CGetSymbolStat { public: DWORD Stat; CString SDSSavePath; CString PDBSavePath; CString FindPath; CString FileName; CGetSymbolStat() { Stat=0; } }; typedef TMap WORKFILELIST; typedef TList SDSSAVEPATHLIST; typedef TList PDBSAVEPATHLIST; typedef TList SYMFINDPATHLIST; #define IMAGEAPI_POINTER __stdcall typedef BOOL (IMAGEAPI_POINTER* fpSymFindFileInPath)( HANDLE hprocess, PCSTR SearchPath, PCSTR FileName, PVOID id, DWORD two, DWORD three, DWORD flags, PSTR FoundFile, PFINDFILEINPATHCALLBACK callback, PVOID context ); typedef DWORD (IMAGEAPI_POINTER*fpSymSetOptions)( DWORD SymOptions ); typedef DWORD (IMAGEAPI_POINTER* fpSymGetOptions)(void); // CSymRecvDlg dialog class CSymRecvDlg : public CDialog { // Construction public: CSymRecvDlg(CWnd* pParent = NULL); // standard constructor ~CSymRecvDlg(); // Dialog Data enum { IDD = IDD_SYMRECV_DIALOG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //////////////////////////////////////////////////////////////////////////// fpSymSetOptions m_SymSetOptions; fpSymGetOptions m_SymGetOptions; fpSymFindFileInPath m_SymFindFileInPath; HMODULE m_DbgHelpModule; DWORD m_GetSymbolThreadID; friend DWORD WINAPI GetSymbolThread(LPVOID lpParameter); CRITICAL_SECTION m_CriticalSection; bool m_Stop; bool m_GetSymbolThread; DWORD m_SDSSavePathIndex; DWORD m_PDBSavePathIndex; SDSSAVEPATHLIST m_SDSSavePathList; PDBSAVEPATHLIST m_PDBSavePathList; SYMFINDPATHLIST m_SymFindPathList; WORKFILELIST m_CurrentFileList; bool InitDbgHelp(); bool DownLoadSymbol(CGetSymbolStat& SymbolStat ); bool GetDebugCodeviewByDbg(char* DbgFileName,PPE_DEBUG_CODEVIEW DebugCodeView); bool TranslateSymbolFile(IN int Type,IN PCSTR pExeFileName,OUT char* pSymbolFileName); bool OnUpdateDownLoadState(WPARAM wParam,LPARAM lParam); //////////////////////////////////////////////////////////////////////////// // Implementation protected: HICON m_hIcon; // Generated message map functions virtual BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); DECLARE_MESSAGE_MAP() public: CString m_strSymSite; CString m_strPDBPath; CString m_strSDSPath; CListCtrl m_ModuleList; afx_msg void OnBnClickedButtonAdd(); afx_msg void OnBnClickedButtonRemove(); afx_msg void OnBnClickedButtonGetSym(); afx_msg void OnBnClickedButtonStop(); afx_msg void OnBnClickedButtonReset(); afx_msg void OnBnClickedButtonBrowsePdb(); afx_msg void OnBnClickedButtonBrowseSds(); afx_msg void OnBnClickedButtonPdbOpen(); afx_msg void OnBnClickedButtonSdsOpen(); protected: virtual BOOL OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult); }; ================================================ FILE: Project/SymRecv/Source/res/SymRecv.manifest ================================================ Syser Symbols Download Tools ================================================ FILE: Project/SymRecv/Source/res/SymRecv.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "symbol downloader" #define VER_INTERNALNAME_STR "symrecv.exe" #define VER_ORIGINALFILENAME_STR "symrecv.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SymRecv/Source/resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SymRecv.rc // #define IDR_RT_MANIFEST 1 #define IDD_SYMRECV_DIALOG 102 #define IDR_MAINFRAME 128 #define IDI_ICON_SYSER 129 #define IDI_ICON_SITE 132 #define IDI_ICON_PDB 133 #define IDI_ICON_SDS 134 #define IDC_LIST_MODULE 1000 #define IDC_BUTTON_ADD 1001 #define IDC_BUTTON_REMOVE 1002 #define IDC_BUTTON_GET_SYM 1003 #define IDC_BUTTON_STOP 1004 #define IDC_BUTTON_RESET 1005 #define IDC_BUTTON_BROWSE_PDB 1006 #define IDC_BUTTON_BROWSE_SDS 1007 #define IDC_BUTTON_PDB_OPEN 1008 #define IDC_BUTTON_SDS_OPEN 1009 #define IDC_EDIT_SYM_SITE 1010 #define IDC_EDIT_PDB_PATH 1011 #define IDC_EDIT_SDS_PATH 1012 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 135 #define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_CONTROL_VALUE 1014 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SymRecv/Source/stdafx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // SymRecv.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" ================================================ FILE: Project/SymRecv/Source/stdafx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, // but are changed infrequently #pragma once #ifndef VC_EXTRALEAN #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #endif // Modify the following defines if you have to target a platform prior to the ones specified below. // Refer to MSDN for the latest info on corresponding values for different platforms. #ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later. #define WINVER 0x0500 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later. #endif #ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later. #define _WIN32_WINNT 0x0500 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later. #endif #ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later. #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. #endif #ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later. #define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later. #endif #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit // turns off MFC's hiding of some common and often safely ignored warning messages #define _AFX_ALL_WARNINGS #include // MFC core and standard components #include // MFC extensions #include // MFC Automation classes #include #include #include #include #include #include #include using namespace std; #include "../../Code/Source/Code.h" #include "../../EXEAnalyzer/Source/EXEAnalyzer.h" #include "../../SyserApp/Source/SourceDebug.h" #include // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT ================================================ FILE: Project/SymRecv/Win32/SymRecv.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SymRecv", "SymRecv.vcproj", "{B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}" ProjectSection(ProjectDependencies) = postProject {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}.Debug|Win32.ActiveCfg = Debug|Win32 {B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}.Debug|Win32.Build.0 = Debug|Win32 {B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}.Release|Win32.ActiveCfg = Release|Win32 {B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}.Release|Win32.Build.0 = Release|Win32 {B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}.Trial|Win32.ActiveCfg = Release|Win32 {B1D7AB70-E2C1-43A3-8930-6EF72BC6431E}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SymRecv/Win32/SymRecv.vcproj ================================================ ================================================ FILE: Project/SysBoot/Source/MakeFile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/SysBoot/Source/PromptQuit.cpp ================================================ #include "StdAfx.h" #include "PromptQuit.h" int PromptQuit(char* DisplayString,LONG TimeOut) { int LoopCount; LARGE_INTEGER Interval; BYTE *VideoBuffer=NULL; int RetValue=0; Interval.QuadPart =TimeOut; LoopCount=0; int Len = TStrLen(DisplayString); VidDisplayStringXY(DisplayString,(640-Len*8)/2,408,1); for(;LoopCount<250;LoopCount++) { __asm { push eax xor eax,eax in al,0x64 test al,1 jz local_001 in al,0x60 mov RetValue,eax local_001: pop eax } if(RetValue) break; KeDelayExecutionThread(KernelMode,FALSE,&Interval); } ULONG MajorVersion; ULONG MinorVersion; ULONG BuildNumber; PsGetVersion(&MajorVersion,&MinorVersion,&BuildNumber,NULL); if(MajorVersion == 5 && MinorVersion == 0) VidSolidColorFill(120,408,120+420,408+13,15); else VidSolidColorFill(120,408,120+420,408+13,1); return RetValue; } void DisplayTextString(char* DisplayString,int x,int y,BYTE* VideoBuffer) { int i; int StartOffset = y*80*2+x*2; if(StartOffset>25*80*2||DisplayString==NULL||VideoBuffer==NULL) return ; for(i=0;DisplayString[i];i++) { VideoBuffer[StartOffset+i*2]=DisplayString[i]; VideoBuffer[StartOffset+i*2+1]=0x7; } } ================================================ FILE: Project/SysBoot/Source/PromptQuit.h ================================================ #ifndef _PROMPTQUIT_H_ #define _PROMPTQUIT_H_ void DisplayTextString(char* DisplayString,int x,int y,BYTE* VideoBuffer); int PromptQuit(char* DisplayString,LONG TimeOut=-10000); extern "C" { __declspec(dllimport ) void VidSolidColorFill(int x,int y,int x1,int y1,int TextColor); __declspec(dllimport) void VidDisplayStringXY(char* pStr,int x,int y,int TextColor); __declspec(dllimport) void VidBitBlt(unsigned char* colorbuf,int x,int y); } #endif //_PROMPTQUIT_H_ ================================================ FILE: Project/SysBoot/Source/ScrOutput.cpp ================================================ #include "StdAfx.h" #include "ScrOutput.h" #include "SysBoot.h" #define MAX_TAB_ALIGN 32 extern BYTE Font8X16[4096]; extern SYSER_BOOT_DEVICE_EXTENSION*gpDevExt; int TabAlign = 4; int FontWidth = 8; int FontHeight = 16; COLORREF TextColor = RGB(255,255,0); COLORREF BKColor = RGB(0,0,0); typedef void (*FN_DRAW_PIXEL)(IN int x,IN int y,IN COLORREF color); FN_DRAW_PIXEL pfnDrawPixel=NULL; SYSER_FRAME_BUFFER*pSyserFB=NULL; void DrawPixelOther(IN int x,IN int y,IN COLORREF color) { } void DrawPixel4(IN int x,IN int y,IN COLORREF color) { BYTE Value,Value1; Value1 = (BYTE)color; Value = GET_BYTE(pSyserFB->Buffer,y*pSyserFB->LineDistance+x/2); if(x%2) Value1&=0xf; else Value1<<=4; Value|=Value1; PUT_BYTE(pSyserFB->Buffer,y*pSyserFB->LineDistance+x/2,Value); } void DrawPixel8(IN int x,IN int y,IN COLORREF color) { PUT_BYTE(pSyserFB->Buffer,y*pSyserFB->LineDistance+x,(BYTE)color); } void DrawPixel16(IN int x,IN int y,IN COLORREF color) { WORD WordColor; WordColor = (WORD)((color & 0xFF)>>3); WordColor|= ((color & 0xFF00)>>10)<<5; WordColor|= ((color & 0xFF0000)>>19)<<11; PUT_WORD(pSyserFB->Buffer,y*pSyserFB->LineDistance+x*2,WordColor); } void DrawPixel24(IN int x,IN int y,IN COLORREF color) { PUT_3BYTES(pSyserFB->Buffer,y*pSyserFB->LineDistance+x*3,color); } void DrawPixel32(IN int x,IN int y,IN COLORREF color) { PUT_DWORD(pSyserFB->Buffer,y*pSyserFB->LineDistance+x*4,color); } void SwitchDrawPixel(int Bpp) { switch(Bpp) { case 4: pfnDrawPixel = DrawPixel4; break; case 8: pfnDrawPixel = DrawPixel8; break; case 16: pfnDrawPixel = DrawPixel16; break; case 24: pfnDrawPixel = DrawPixel24; break; case 32: pfnDrawPixel = DrawPixel32; break; default: pfnDrawPixel = DrawPixelOther; break; } pSyserFB = gpDevExt->pCurFrameBuffer; } void DrawString(IN int x,IN int y,IN PCSTR pStr,IN int Length) { BYTE*pFont; int n,i,j,BitOffset,Index,cx,cy; char szText[MAX_TAB_ALIGN]; if(pfnDrawPixel==NULL) return; cx = gpDevExt->pCurFrameBuffer->Width; cy = gpDevExt->pCurFrameBuffer->Height; Index = 0; while(Length && *pStr) { switch(*pStr) { case '\n': return; case '\t': n = TabAlign - Index%TabAlign; szText[n]=0; do { n--; szText[n]=' '; }while(n>0); break; default: szText[0]=*pStr; szText[1]=0; break; } for(n=0;szText[n];n++) { pFont=&Font8X16[szText[n]*(FontWidth*FontHeight/8)]; BitOffset=0; for(j=0;j=0 && y+j>=0 && x+i>(BitOffset%8)) & 1) pfnDrawPixel(x+i,y+j,TextColor); else pfnDrawPixel(x+i,y+j,BKColor); } BitOffset++; } } x+=FontWidth; Index++; } pStr++; Length--; } } char gszBuffer[512]; void ScrPrint(int x,int y,PCSTR szMsg,...) { va_list Next; va_start(Next,szMsg); TVSPrintf(gszBuffer,szMsg,Next); DrawString(x,y,gszBuffer,-1); va_end(Next); } BYTE Font8X16[4096] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x48, 0x6C, 0x24, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0x7F, 0x12, 0x12, 0x12, 0x7F, 0x12, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1C, 0x2A, 0x2A, 0x0A, 0x0C, 0x18, 0x28, 0x28, 0x2A, 0x2A, 0x1C, 0x08, 0x08, 0x00, 0x00, 0x00, 0x22, 0x25, 0x15, 0x15, 0x15, 0x2A, 0x58, 0x54, 0x54, 0x54, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x12, 0x12, 0x12, 0x0A, 0x76, 0x25, 0x29, 0x11, 0x91, 0x6E, 0x00, 0x00, 0x00, 0x06, 0x06, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x40, 0x00, 0x00, 0x02, 0x04, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x1C, 0x1C, 0x6B, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x7F, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x20, 0x20, 0x10, 0x08, 0x04, 0x42, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x20, 0x18, 0x20, 0x40, 0x40, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, 0x28, 0x24, 0x24, 0x22, 0x22, 0x7E, 0x20, 0x20, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x02, 0x1A, 0x26, 0x40, 0x40, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x24, 0x02, 0x02, 0x1A, 0x26, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x22, 0x22, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x24, 0x18, 0x24, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x24, 0x42, 0x42, 0x42, 0x64, 0x58, 0x40, 0x40, 0x24, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x04, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x46, 0x40, 0x20, 0x10, 0x10, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x5A, 0x55, 0x55, 0x55, 0x55, 0x2D, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x18, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x42, 0x42, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x22, 0x22, 0x22, 0x1E, 0x22, 0x42, 0x42, 0x42, 0x22, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x01, 0x01, 0x01, 0x01, 0x01, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x22, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x42, 0x12, 0x12, 0x1E, 0x12, 0x12, 0x02, 0x42, 0x42, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x42, 0x12, 0x12, 0x1E, 0x12, 0x12, 0x02, 0x02, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x22, 0x22, 0x01, 0x01, 0x01, 0x71, 0x21, 0x22, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x7E, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x11, 0x0F, 0x00, 0x00, 0x00, 0x77, 0x22, 0x12, 0x0A, 0x0E, 0x0A, 0x12, 0x12, 0x22, 0x22, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x36, 0x36, 0x36, 0x36, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE3, 0x46, 0x46, 0x4A, 0x4A, 0x52, 0x52, 0x52, 0x62, 0x62, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x42, 0x42, 0x42, 0x42, 0x3E, 0x02, 0x02, 0x02, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x41, 0x41, 0x41, 0x41, 0x4D, 0x53, 0x32, 0x1C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x42, 0x42, 0x42, 0x3E, 0x12, 0x12, 0x22, 0x22, 0x42, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x42, 0x02, 0x04, 0x18, 0x20, 0x40, 0x42, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x49, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x42, 0x22, 0x24, 0x24, 0x14, 0x14, 0x18, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x49, 0x49, 0x49, 0x49, 0x55, 0x55, 0x36, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x24, 0x24, 0x42, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x22, 0x22, 0x14, 0x14, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x21, 0x20, 0x10, 0x10, 0x08, 0x04, 0x04, 0x42, 0x42, 0x3F, 0x00, 0x00, 0x00, 0x78, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x78, 0x00, 0x00, 0x00, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00, 0x00, 0x38, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x06, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x78, 0x44, 0x42, 0x42, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x1A, 0x26, 0x42, 0x42, 0x42, 0x26, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x02, 0x02, 0x02, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x40, 0x40, 0x40, 0x78, 0x44, 0x42, 0x42, 0x42, 0x64, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x7E, 0x02, 0x02, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x88, 0x08, 0x08, 0x7E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x22, 0x22, 0x1C, 0x02, 0x3C, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x3A, 0x46, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x38, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x22, 0x1E, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x72, 0x12, 0x0A, 0x16, 0x12, 0x22, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x92, 0x92, 0x92, 0x92, 0x92, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0x46, 0x42, 0x42, 0x42, 0x42, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x26, 0x42, 0x42, 0x42, 0x22, 0x1E, 0x02, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x44, 0x42, 0x42, 0x42, 0x44, 0x78, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x4C, 0x04, 0x04, 0x04, 0x04, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x42, 0x02, 0x3C, 0x40, 0x42, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x08, 0x08, 0x08, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x42, 0x42, 0x42, 0x42, 0x62, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x24, 0x24, 0x14, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEB, 0x49, 0x49, 0x55, 0x55, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x24, 0x18, 0x18, 0x18, 0x24, 0x6E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE7, 0x42, 0x24, 0x24, 0x14, 0x18, 0x08, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x22, 0x10, 0x08, 0x08, 0x44, 0x7E, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xC0, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x10, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06, 0x00, 0x0C, 0x32, 0xC2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x00, 0x20, 0x20, 0x20, 0x18, 0x74, 0x72, 0x0A, 0x0A, 0x0A, 0x44, 0x3C, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x78, 0x44, 0x04, 0x04, 0x04, 0x1C, 0x04, 0x04, 0x84, 0x5F, 0x32, 0x00, 0x00, 0x00, 0x02, 0xE4, 0x18, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x18, 0xE4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x46, 0x24, 0x24, 0x28, 0x18, 0xFF, 0x10, 0xFF, 0x10, 0x10, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0xE0, 0x10, 0x10, 0x20, 0x40, 0xC0, 0x20, 0x10, 0x10, 0xA0, 0x40, 0x80, 0x20, 0x10, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x65, 0x83, 0x83, 0x83, 0x65, 0x5A, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, 0x0F, 0x09, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x44, 0x24, 0x22, 0x32, 0x24, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x55, 0xA5, 0x9D, 0x95, 0x65, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x12, 0x12, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x09, 0x08, 0x04, 0x0A, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x08, 0x04, 0x08, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x44, 0x44, 0x44, 0xF4, 0x0A, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x2F, 0x2F, 0x2F, 0x2F, 0x2E, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x06, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x19, 0x11, 0x0A, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x12, 0x24, 0x44, 0x4C, 0x24, 0x22, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x22, 0x22, 0x12, 0x12, 0x0A, 0x48, 0x64, 0x64, 0xE4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0x12, 0x12, 0x0A, 0xE8, 0x84, 0x44, 0x22, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x24, 0x22, 0x14, 0x14, 0x0A, 0x48, 0x68, 0x64, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x08, 0x04, 0x04, 0x22, 0x22, 0x3C, 0x00, 0x00, 0x08, 0x08, 0x00, 0x08, 0x18, 0x14, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x22, 0x42, 0xE3, 0x00, 0x00, 0x10, 0x08, 0x04, 0x08, 0x18, 0x14, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x22, 0x42, 0xE3, 0x00, 0x00, 0x18, 0x14, 0x00, 0x08, 0x18, 0x14, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x22, 0x42, 0xE3, 0x00, 0x00, 0x0C, 0x30, 0x00, 0x08, 0x18, 0x14, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x22, 0x42, 0xE3, 0x00, 0x00, 0x24, 0x3C, 0x00, 0x08, 0x18, 0x14, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x22, 0x42, 0xE3, 0x00, 0x00, 0x18, 0x14, 0x18, 0x08, 0x18, 0x14, 0x14, 0x14, 0x24, 0x3C, 0x22, 0x22, 0x42, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x14, 0x14, 0x54, 0x72, 0x1E, 0x12, 0x12, 0x91, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xC4, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, 0x86, 0x4C, 0x30, 0x10, 0x10, 0x0C, 0x08, 0x08, 0x76, 0x42, 0x02, 0x22, 0x22, 0x3E, 0x22, 0x02, 0x02, 0x42, 0x7F, 0x00, 0x00, 0x30, 0x10, 0x08, 0x76, 0x42, 0x02, 0x22, 0x22, 0x3E, 0x22, 0x02, 0x02, 0x42, 0x7F, 0x00, 0x00, 0x18, 0x14, 0x22, 0x7E, 0x42, 0x02, 0x22, 0x22, 0x3E, 0x22, 0x02, 0x02, 0x42, 0x7F, 0x00, 0x00, 0x34, 0x34, 0x00, 0x7E, 0x42, 0x02, 0x22, 0x22, 0x3E, 0x22, 0x02, 0x02, 0x42, 0x7F, 0x00, 0x00, 0x0C, 0x08, 0x08, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x30, 0x10, 0x08, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x18, 0x14, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x24, 0x34, 0x00, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x44, 0x44, 0x84, 0x84, 0x8C, 0x84, 0xC4, 0x44, 0x64, 0x1E, 0x00, 0x00, 0x0C, 0x30, 0x00, 0x42, 0x46, 0x46, 0x4A, 0x4A, 0x52, 0x52, 0x62, 0x62, 0x42, 0x47, 0x00, 0x00, 0x0C, 0x08, 0x08, 0x34, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x10, 0x08, 0x08, 0x34, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x18, 0x14, 0x22, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x0C, 0x30, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x24, 0x24, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x62, 0x52, 0x52, 0xCA, 0x4A, 0x46, 0x46, 0x22, 0x1C, 0x00, 0x00, 0x0C, 0x08, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x10, 0x10, 0x08, 0x46, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x18, 0x14, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x24, 0x24, 0x00, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x10, 0x10, 0x08, 0x46, 0x22, 0x24, 0x14, 0x18, 0x18, 0x08, 0x08, 0x08, 0x08, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x1C, 0x64, 0x84, 0x84, 0x84, 0x64, 0x1C, 0x04, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x34, 0x44, 0x44, 0x44, 0x44, 0x5C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x22, 0x22, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x14, 0x22, 0x00, 0x00, 0x3E, 0x22, 0x38, 0x26, 0x22, 0xA2, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x3A, 0x00, 0x00, 0x00, 0x3E, 0x22, 0x38, 0x26, 0x22, 0xA2, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x14, 0x36, 0x00, 0x00, 0x00, 0x3E, 0x22, 0x38, 0x26, 0x22, 0xA2, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x14, 0x08, 0x00, 0x00, 0x3E, 0x22, 0x38, 0x26, 0x22, 0xA2, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x99, 0x89, 0xFC, 0x0A, 0x09, 0x99, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x26, 0x22, 0x02, 0x02, 0x22, 0x22, 0x1C, 0x04, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x00, 0x3C, 0x42, 0x42, 0x3E, 0x02, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x10, 0x00, 0x3C, 0x42, 0x42, 0x3E, 0x02, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1C, 0x22, 0x00, 0x3C, 0x42, 0x42, 0x3E, 0x02, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x24, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x3E, 0x02, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x08, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x12, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x14, 0x36, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x18, 0x14, 0x20, 0x7C, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x00, 0x3E, 0x42, 0x42, 0x42, 0x42, 0x42, 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x66, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x14, 0x20, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x38, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x24, 0x34, 0x00, 0x00, 0x00, 0x3C, 0x42, 0x42, 0x42, 0x42, 0x22, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xF8, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x62, 0x52, 0x4A, 0x46, 0x22, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22, 0x64, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x18, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22, 0x64, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x18, 0x14, 0x22, 0x00, 0x40, 0x42, 0x42, 0x42, 0x42, 0x42, 0x62, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x23, 0x22, 0x22, 0x22, 0x22, 0x22, 0x64, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x30, 0x10, 0x08, 0x00, 0x00, 0x24, 0x24, 0x24, 0x18, 0x18, 0x08, 0x08, 0x08, 0x06, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x7A, 0x44, 0x42, 0x42, 0x44, 0x44, 0x2A, 0x12, 0x02, 0x06, 0x00, 0x00, 0x24, 0x24, 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0x18, 0x18, 0x08, 0x08, 0x08, 0x06, }; ================================================ FILE: Project/SysBoot/Source/ScrOutput.h ================================================ #ifndef _SCR_OUTPUT_H_ #define _SCR_OUTPUT_H_ void ScrPrint(int x,int y,PCSTR szMsg,...); void SwitchDrawPixel(int Bpp); #endif ================================================ FILE: Project/SysBoot/Source/Sources ================================================ TARGETNAME=SysBoot TARGETPATH=..\..\..\Bin TARGETTYPE=DRIVER C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h TARGETLIBS= ..\..\Code\Source\Obj\i386\Code.lib \ ..\..\..\Addition\BootVid\bootvid.lib \ $(DDK_LIB_PATH)\libcntpr.lib SOURCES=SysBoot.cpp \ VistaVideoHook.cpp \ VideoHook.cpp \ PromptQuit.cpp\ SyserBoot.rc\ ScrOutput.cpp ================================================ FILE: Project/SysBoot/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/SysBoot/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "../../Syser/Source/SyserDefine.h" #include #include #include #endif ================================================ FILE: Project/SysBoot/Source/SysBoot.cpp ================================================ #include "StdAfx.h" #include "SysBoot.h" #include "VideoHook.h" #include "ScrOutput.h" #include "PromptQuit.h" SYSER_BOOT_DEVICE_EXTENSION*gpDevExt; CSyserFrameBufferMap*gpFrameBufferMap; SYSER_FRAME_BUFFER CurentFrameBuffer; void WindowsModeChange(int Width,int Height,int Bpp,void*FrameBuffer,int Pitch) { if(FrameBuffer) { int Size = Pitch*Height; for(int Off = 0;OffpfnFrameModeChange) gpDevExt->pfnFrameModeChange(Width,Height,Bpp,FrameBuffer,Pitch,0); } void WindowsFilp(void*FrameBuffer) { CurentFrameBuffer.Buffer = FrameBuffer; if(gpDevExt->pfnFrameBufferFlip) gpDevExt->pfnFrameBufferFlip(FrameBuffer); } void GetDbgMsgState() { DWORD Value; RTL_QUERY_REGISTRY_TABLE RegTable[2]; ///////////////////////////////////////////////////////////////////////////////////////// ZeroMemory(RegTable,sizeof(RegTable)); RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("DbgMsg"); RegTable[0].EntryContext = &Value; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,WSTR("SyserBoot"),RegTable,NULL,NULL))) Value = 0; gbDbgMsg = Value!=0; ///////////////////////////////////////////////////////////////////////////////////////// ZeroMemory(RegTable,sizeof(RegTable)); RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("Disabled"); RegTable[0].EntryContext = &Value; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,WSTR("SyserBoot"),RegTable,NULL,NULL))) Value = 0; gbDisabled = Value!=0; ///////////////////////////////////////////////////////////////////////////////////////// ZeroMemory(RegTable,sizeof(RegTable)); RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("FlipDbgMsg"); RegTable[0].EntryContext = &Value; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,WSTR("SyserBoot"),RegTable,NULL,NULL))) Value = 0; gbFlipDbgMsg = Value!=0; } void LoadImageHookProc(IN PUNICODE_STRING FullImageName,IN HANDLE ProcessId,IN PIMAGE_INFO ImageInfo) { if(gpDevExt && gpDevExt->pfnLoadImageNotifyRoutine) gpDevExt->pfnLoadImageNotifyRoutine(FullImageName,ProcessId,ImageInfo); } void SyserBootUnload(IN PDRIVER_OBJECT DriverObject) { UNICODE_STRING UnicodeName; SafeDelete(gpFrameBufferMap); IoDeleteDevice(DriverObject->DeviceObject); RtlInitUnicodeString(&UnicodeName,SYSER_BOOT_LINK_NAME); IoDeleteSymbolicLink(&UnicodeName); UnhookZwSetSystemInformation(); UnhookZwLoadDriver(); RtlInitUnicodeString(&UnicodeName,WSTR("PsRemoveLoadImageNotifyRoutine")); NTSTATUS (*PsRemoveLoadImageNotifyRoutine)(IN PLOAD_IMAGE_NOTIFY_ROUTINE); (PVOID&)PsRemoveLoadImageNotifyRoutine=MmGetSystemRoutineAddress(&UnicodeName); if(PsRemoveLoadImageNotifyRoutine) PsRemoveLoadImageNotifyRoutine(LoadImageHookProc); } NTSTATUS MJFunction(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { Irp->IoStatus.Information=0; Irp->IoStatus.Status=STATUS_SUCCESS; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserBootDeviceCreate(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { UNICODE_STRING Name; Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = FILE_OPENED; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserBootDeviceClose(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = FILE_OPENED; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserBootDeviceControl(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { NTSTATUS Status; PIO_STACK_LOCATION IOStack; IOStack = IoGetCurrentIrpStackLocation(Irp); Status = STATUS_SUCCESS; Irp->IoStatus.Information=0; switch(IOStack->Parameters.DeviceIoControl.IoControlCode) { case IOCTL_SYSER_BOOT_GET_FRAME_BUFFER: if(IOStack->Parameters.DeviceIoControl.OutputBufferLengthAssociatedIrp.SystemBuffer,&CurentFrameBuffer,sizeof(SYSER_FRAME_BUFFER)); Irp->IoStatus.Information = sizeof(SYSER_FRAME_BUFFER); break; } Irp->IoStatus.Status = Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); return Status; } ///////////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////////// #define SCAN_CODE_NO_KEY 0x0 #define SCAN_CODE_ESC_KEY 0x1 NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath) { UNICODE_STRING DeviceName,SymbolicLinkName; NTSTATUS status; PDEVICE_OBJECT DeviceObject; SYSER_BOOT_DEVICE_EXTENSION*DeviceExtension; int RetValue = PromptQuit(" Press \"ESC\" to cancel loading Syser Boot Module "); if(RetValue==SCAN_CODE_ESC_KEY) return STATUS_UNSUCCESSFUL; RtlInitUnicodeString(&DeviceName,WSTR("\\Device\\SyserBoot")); status = IoCreateDevice(DriverObject,sizeof(SYSER_BOOT_DEVICE_EXTENSION),&DeviceName,FILE_DEVICE_VIDEO,0,TRUE,&DeviceObject); if(!NT_SUCCESS(status)) return status; DeviceObject->Flags |= METHOD_BUFFERED; DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING; RtlInitUnicodeString(&SymbolicLinkName,SYSER_BOOT_LINK_NAME); IoCreateSymbolicLink(&SymbolicLinkName,&DeviceName); STZeroMemory(CurentFrameBuffer); gpDevExt = (SYSER_BOOT_DEVICE_EXTENSION*)DeviceObject->DeviceExtension; ZeroMemory(gpDevExt,sizeof(SYSER_BOOT_DEVICE_EXTENSION)); gpDevExt->cbSize = sizeof(SYSER_BOOT_DEVICE_EXTENSION); gpDevExt->Version = SYSER_BOOT_VER; gpDevExt->pfnScrPrint = ScrPrint; gpFrameBufferMap = new CSyserFrameBufferMap; GetDbgMsgState(); __try { if(gbDisabled) { DbgPrint("SyserBoot : Video Hook is disabled!\n"); } else { HookZwSetSystemInformation(); HookZwLoadDriver(); } } __except(EXCEPTION_EXECUTE_HANDLER) { ::DbgPrint("SyserBoot : Exception\n"); } for(DWORD FunCount=0;FunCountMajorFunction[FunCount]=MJFunction; DriverObject->MajorFunction[IRP_MJ_CREATE] = SyserBootDeviceCreate; DriverObject->MajorFunction[IRP_MJ_CLOSE] = SyserBootDeviceClose; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = SyserBootDeviceControl; DriverObject->DriverUnload = SyserBootUnload; PsSetLoadImageNotifyRoutine(LoadImageHookProc); return STATUS_SUCCESS; } ================================================ FILE: Project/SysBoot/Source/SysBoot.h ================================================ #ifndef _SYSER_BOOT_H_ #define _SYSER_BOOT_H_ typedef void (*PFN_FrameModeChange)(int Width,int Height,int Bpp,void*FrameBuffer,int Pitch,UINT PixelFormat); typedef void (*PFN_FrameBufferFlip)(void*FrameBuffer); typedef void (*PFN_SyserActive)(); typedef void (*PFN_ScrPrint)(int x,int y,PCSTR szMsg,...); void SwitchDrawPixel(int Bpp); void WindowsModeChange(int Width,int Height,int Bpp,void*FrameBuffer,int Pitch); void WindowsFilp(void*FrameBuffer); void GetDbgMsgState(); #define SYSER_BOOT_VER 0x00019700 struct SYSER_BOOT_DEVICE_EXTENSION { int cbSize; DWORD Version; SYSER_FRAME_BUFFER* pCurFrameBuffer; PFN_FrameModeChange pfnFrameModeChange; PFN_FrameBufferFlip pfnFrameBufferFlip; PFN_SyserActive pfnSyserActive; PFN_ScrPrint pfnScrPrint; PLOAD_IMAGE_NOTIFY_ROUTINE pfnLoadImageNotifyRoutine; bool bCanceled; bool bDisabled; }; typedef TMap CSyserFrameBufferMap; extern WCHAR szDispModuleName[MAX_FN_LEN]; extern bool gbDisabled; extern bool gbDbgMsg; extern bool gbFlipDbgMsg; extern SYSER_BOOT_DEVICE_EXTENSION*gpDevExt; extern CSyserFrameBufferMap*gpFrameBufferMap; extern SYSER_FRAME_BUFFER CurentFrameBuffer; #define SYSER_BOOT_LINK_NAME WSTR("\\??\\SyserBoot") #endif ================================================ FILE: Project/SysBoot/Source/SyserBoot.rc ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser legacy video support" #define VER_ORIGINALFILENAME_STR "SyserBoot.sys" #define VER_INTERNALNAME_STR "SyserBoot.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SysBoot/Source/SyserBoot.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser legacy video support" #define VER_ORIGINALFILENAME_STR "SyserBoot.sys" #define VER_INTERNALNAME_STR "SyserBoot.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SysBoot/Source/VideoHook.cpp ================================================ #include "StdAfx.h" #include "SysBoot.h" #include "VideoHook.h" #include "VistaVideoHook.h" #include "ScrOutput.h" #include "PromptQuit.h" extern "C" SERVICETABLE* KeServiceDescriptorTable; SYSER_FRAME_BUFFER* pPrevFrameBuffer=NULL; PFN_DrvGetDirectDrawInfo OldDrvGetDirectDrawInfo; PFN_DrvEnableDirectDraw OldDrvEnableDirectDraw; PFN_DrvEnableDriver OldDrvEnableDriver; PFN_DrvEnablePDEV OldDrvEnablePDEV; PFN_DrvDisablePDEV OldDrvDisablePDEV; PFN_DrvEnableSurface OldDrvEnableSurface; PDD_SURFCB_FLIP OldDdFlip; PDD_SURFCB_LOCK OldDdLock; PFN_DrvNotify OldDrvNotify; PDRIVER_DISPATCH OldDXGKrnlDispatchInternalDeviceControl; int ZwSetSystemInfoIndex = -1; FPN_ZwSetSystemInformation OldZwSetSystemInformation = NULL; int ZwLoadDriverIndex = -1; PFN_ZwLoadDriver OldZwLoadDriver = NULL; WCHAR szDispModuleName[MAX_FN_LEN]=WSTR(""); bool gbDisabled = false; bool gbDbgMsg = false; bool gbFlipDbgMsg = false; DWORD CR0Backup=0; void ClrCR0WP() { ULONG TmpValue=0xfffeffff; if(CR0Backup&0x80000000) { __asm { push eax mov eax,cr0 and eax,TmpValue mov cr0,eax pop eax } return; } __asm { mov eax,cr0 mov CR0Backup,eax and eax,TmpValue mov cr0,eax } } void RestoreCR0() { if(CR0Backup&0x80000000) { _asm { mov eax,CR0Backup mov cr0,eax } CR0Backup=0; } } bool GetDisplayDriverName() { WCHAR szBuffer[MAX_FN_LEN]; UNICODE_STRING UnicodeString; RTL_QUERY_REGISTRY_TABLE RegTable[2]; *szBuffer=0; ZeroMemory(RegTable,sizeof(RegTable)); UnicodeString.Length=0; UnicodeString.MaximumLength=sizeof(szBuffer); UnicodeString.Buffer=szBuffer; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED | RTL_QUERY_REGISTRY_NOEXPAND; RegTable[0].Name = WSTR("\\Device\\Video0"); RegTable[0].EntryContext = &UnicodeString; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_DEVICEMAP,WSTR("VIDEO"),RegTable,NULL,NULL))) return false; *szDispModuleName=0; ZeroMemory(RegTable,sizeof(RegTable)); UnicodeString.Length=0; UnicodeString.MaximumLength=MAX_FN_LEN*sizeof(WCHAR); UnicodeString.Buffer=szDispModuleName; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED | RTL_QUERY_REGISTRY_NOEXPAND; RegTable[0].Name = WSTR("InstalledDisplayDrivers"); RegTable[0].EntryContext = &UnicodeString; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE,szBuffer,RegTable,NULL,NULL))) return false; TStrCat(szDispModuleName,WSTR(".dll")); if(gbDbgMsg) ::DbgPrint("SyserBoot : InstalledDisplayDrivers %ws\n",szDispModuleName); return true; } DWORD WINAPI NewDdFlip(PDD_FLIPDATA pFlipData) { DWORD Result; if(gpDevExt->pfnFrameBufferFlip==NULL) return OldDdFlip(pFlipData); gpDevExt->bDisabled = true; CSyserFrameBufferMap::IT Iter = gpFrameBufferMap->Find((DHPDEV)pFlipData->lpDD->dhpdev); if(Iter.IsExist()) { if( Iter->Width == pFlipData->lpSurfTarg->lpGbl->wWidth && Iter->Height == pFlipData->lpSurfTarg->lpGbl->wHeight && Iter->Bpp == pFlipData->lpSurfTarg->lpGbl->ddpfSurface.dwRGBBitCount && Iter->LineDistance == pFlipData->lpSurfTarg->lpGbl->lPitch) { if((DWORD)pFlipData->lpSurfTarg->lpGbl->fpVidMem > 0x80000000) Iter->Buffer=(void*)pFlipData->lpSurfTarg->lpGbl->fpVidMem; else Iter->Buffer=RT_PVOID(Iter->BaseBuffer,(DWORD)pFlipData->lpSurfTarg->lpGbl->fpVidMem); WindowsFilp(Iter->Buffer); if(gbFlipDbgMsg) ::DbgPrint("SysBoot : NewFlip BaseFrameBuffer = 0x%08X , FrameBuffer = 0x%08X !\n",Iter->BaseBuffer,Iter->Buffer); } } Result = OldDdFlip(pFlipData); if(gpDevExt->bDisabled==false) { if(gpDevExt->pfnSyserActive) gpDevExt->pfnSyserActive(); } else gpDevExt->bDisabled = false; return Result; } DWORD WINAPI NewDdLock(PDD_LOCKDATA lpLock) { DWORD Result = OldDdLock(lpLock); if(gbDbgMsg) { } return Result; } BOOL WINAPI NewDrvEnableDirectDraw(DHPDEV dhpdev,DD_CALLBACKS*pCallBacks,DD_SURFACECALLBACKS*pSurfaceCallBacks,DD_PALETTECALLBACKS*pPaletteCallBacks) { BOOL Result; Result = OldDrvEnableDirectDraw(dhpdev,pCallBacks,pSurfaceCallBacks,pPaletteCallBacks); if(Result==FALSE) return FALSE; CSyserFrameBufferMap::IT Iter = gpFrameBufferMap->Find(dhpdev); if(Iter!=gpFrameBufferMap->End()) { if(gbDbgMsg) { ::DbgPrint("SyserBoot : NewDrvEnableDirectDraw dhpdev = %08X [ Width = %d , Height = %d , Bpp = %d Buffer = 0x%08X , BaseBuffer = 0x%08X ]\n", dhpdev,Iter->Width,Iter->Height,Iter->Bpp,Iter->Buffer,Iter->BaseBuffer); } pPrevFrameBuffer = gpDevExt->pCurFrameBuffer; gpDevExt->pCurFrameBuffer = &(*Iter); WindowsModeChange(Iter->Width,Iter->Height,Iter->Bpp,Iter->Buffer,Iter->LineDistance); } OldDdFlip = pSurfaceCallBacks->Flip; pSurfaceCallBacks->Flip = NewDdFlip; //OldDdLock = pSurfaceCallBacks->Lock; //pSurfaceCallBacks->Lock = NewDdLock; return Result; } DHPDEV WINAPI NewDrvEnablePDEV(DEVMODEW*pdm,LPWSTR pwszLogAddress,ULONG cPat,HSURF*phsurfPatterns,ULONG cjCaps,GDIINFO*pdevcaps,ULONG cjDevInfo,DEVINFO*pdi,HDEV hdev,LPWSTR pwszDeviceName,HANDLE hDriver) { DHPDEV Result; GetDbgMsgState(); Result=OldDrvEnablePDEV(pdm,pwszLogAddress,cPat,phsurfPatterns,cjCaps,pdevcaps,cjDevInfo,pdi,hdev,pwszDeviceName,hDriver); if(Result==NULL) return NULL; gpFrameBufferMap->InsertUnique(Result); if(gbDbgMsg) ::DbgPrint("SyserBoot : NewDrvEnablePDEV dhpdev = 0x%08X , Mode List Count =%d\n",Result,gpFrameBufferMap->Count()); return Result; } BOOL WINAPI NewDrvGetDirectDrawInfo(DHPDEV dhpdev,DD_HALINFO*pHalInfo,DWORD*pdwNumHeaps,VIDEOMEMORY*pvmList,DWORD*pdwNumFourCCCodes,DWORD*pdwFourCC) { BOOL Result; Result=OldDrvGetDirectDrawInfo(dhpdev,pHalInfo,pdwNumHeaps,pvmList,pdwNumFourCCCodes,pdwFourCC); if(Result==FALSE) return FALSE; CSyserFrameBufferMap::IT Iter = gpFrameBufferMap->Find(dhpdev); if(Iter!=gpFrameBufferMap->End()) { Iter->Width=pHalInfo->vmiData.dwDisplayWidth; Iter->Height=pHalInfo->vmiData.dwDisplayHeight; Iter->Bpp=pHalInfo->vmiData.ddpfDisplay.dwRGBBitCount; Iter->LineDistance = pHalInfo->vmiData.lDisplayPitch; Iter->BaseBuffer=RT_PVOID(pHalInfo->vmiData.pvPrimary,-(int)pHalInfo->vmiData.fpPrimary); Iter->Buffer=pHalInfo->vmiData.pvPrimary; if(pPrevFrameBuffer==NULL) { pPrevFrameBuffer = &(*Iter); gpDevExt->pCurFrameBuffer = pPrevFrameBuffer; WindowsModeChange(Iter->Width,Iter->Height,Iter->Bpp,Iter->Buffer,Iter->LineDistance); } } if(gbDbgMsg) DbgPrint("SyserBoot : NewDrvGetDirectDrawInfo Fill FrameBuffer Info\n"); return Result; } void WINAPI NewDrvDisablePDEV(DHPDEV dhpdev) { CSyserFrameBufferMap::IT Iter = gpFrameBufferMap->Find(dhpdev); if(Iter!=gpFrameBufferMap->End()) { if(gpDevExt->pCurFrameBuffer == &(*Iter) && gpDevExt->pCurFrameBuffer != pPrevFrameBuffer) { gpDevExt->pCurFrameBuffer = pPrevFrameBuffer; WindowsModeChange( gpDevExt->pCurFrameBuffer->Width, gpDevExt->pCurFrameBuffer->Height, gpDevExt->pCurFrameBuffer->Bpp, gpDevExt->pCurFrameBuffer->Buffer, gpDevExt->pCurFrameBuffer->LineDistance); } gpFrameBufferMap->Remove(Iter); } if(gbDbgMsg) ::DbgPrint("SyserBoot : NewDrvDisablePDEV dhpdev = 0x%08X\n",dhpdev); OldDrvDisablePDEV(dhpdev); } HSURF WINAPI NewDrvEnableSurface(DHPDEV dhpdev) { HSURF Result = OldDrvEnableSurface(dhpdev); if(gbDbgMsg) ::DbgPrint("SyserBoot : NewDrvEnableSurface dhpdev = 0x%08X\n",dhpdev); return Result; } BOOL WINAPI NewDrvEnableDriver(ULONG iEngineVersion,ULONG cj,DRVENABLEDATA*pded) { BOOL Result = OldDrvEnableDriver(iEngineVersion,cj,pded); if(Result==FALSE) return FALSE; for(ULONG n=0;nc;n++) { switch(pded->pdrvfn[n].iFunc) { case INDEX_DrvGetDirectDrawInfo: if(pded->pdrvfn[n].pfn!=(PFN)NewDrvGetDirectDrawInfo) { if(gbDbgMsg) ::DbgPrint("SyserBoot : Hook DrvGetDirectDrawInfo\n"); OldDrvGetDirectDrawInfo = (PFN_DrvGetDirectDrawInfo)pded->pdrvfn[n].pfn; pded->pdrvfn[n].pfn = (PFN)NewDrvGetDirectDrawInfo; } break; case INDEX_DrvEnableDirectDraw: if(pded->pdrvfn[n].pfn!=(PFN)NewDrvEnableDirectDraw) { if(gbDbgMsg) ::DbgPrint("SyserBoot : Hook DrvEnableDirectDraw\n"); OldDrvEnableDirectDraw = (PFN_DrvEnableDirectDraw)pded->pdrvfn[n].pfn; pded->pdrvfn[n].pfn = (PFN)NewDrvEnableDirectDraw; } break; case INDEX_DrvEnablePDEV: if(pded->pdrvfn[n].pfn!=(PFN)NewDrvEnablePDEV) { if(gbDbgMsg) ::DbgPrint("SyserBoot : Hook DrvEnablePDEV\n"); OldDrvEnablePDEV = (PFN_DrvEnablePDEV)pded->pdrvfn[n].pfn; pded->pdrvfn[n].pfn = (PFN)NewDrvEnablePDEV; } break; case INDEX_DrvDisablePDEV: if(pded->pdrvfn[n].pfn!=(PFN)NewDrvDisablePDEV) { if(gbDbgMsg) ::DbgPrint("SyserBoot : Hook DrvDisablePDEV\n"); OldDrvDisablePDEV = (PFN_DrvDisablePDEV)pded->pdrvfn[n].pfn; pded->pdrvfn[n].pfn = (PFN)NewDrvDisablePDEV; } break; case INDEX_DrvEnableSurface: if(pded->pdrvfn[n].pfn!=(PFN)NewDrvEnableSurface) { if(gbDbgMsg) ::DbgPrint("SyserBoot : Hook DrvEnableSurface\n"); OldDrvEnableSurface = (PFN_DrvEnableSurface)pded->pdrvfn[n].pfn; pded->pdrvfn[n].pfn = (PFN)NewDrvEnableSurface; } break; } } return Result; } DWORD APIENTRY NewZwSetSystemInformation(DWORD FunctionNo,void*Informat,DWORD Size) { WCHAR szFileName[MAX_FN_LEN]; DWORD Result; if(FunctionNo!=0x1A)//SystemLoadDriver return OldZwSetSystemInformation(FunctionNo,Informat,Size); Result=OldZwSetSystemInformation(FunctionNo,Informat,Size); if(Result==STATUS_SUCCESS) { if(*szDispModuleName==0) GetDisplayDriverName(); __try { UnicodeStrCpy(szFileName,((PUNICODE_STRING)Informat),MAX_FN_LEN); } __except(EXCEPTION_EXECUTE_HANDLER) { *szFileName=0; ::DbgPrint("SyserBoot : Exception in NewZwSetSystemInformation UnicodeStrCpy\n"); } if(gbDbgMsg) ::DbgPrint("SyserBoot : ZwSetSystemInformattion %ws\n",szFileName); if(*szFileName && *szDispModuleName && TStrICmp(szDispModuleName,TGetFileName(szFileName))==0) { void**Address; Address=(void**)Informat; if(Address[4]!=NULL && Address[4]!=(void*)NewDrvEnableDriver) { OldDrvEnableDriver=(PFN_DrvEnableDriver)Address[4]; Address[4]=(void*)NewDrvEnableDriver; } } } return Result; } NTSTATUS APIENTRY NewDXGKrnlDispatchInternalDeviceControl(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { int Length; PVOID Buffer; ULONG IoControlCode; PIO_STACK_LOCATION IOStack; NTSTATUS Status; IOStack = IoGetCurrentIrpStackLocation(Irp); Buffer = Irp->UserBuffer; Length = IOStack->Parameters.DeviceIoControl.OutputBufferLength; IoControlCode = IOStack->Parameters.DeviceIoControl.IoControlCode; Status = OldDXGKrnlDispatchInternalDeviceControl(DeviceObject,Irp); if(IoControlCode == 0x0023003F && Length == 4 && Buffer)//DXGKrnlDxgkInitialize { OldDxgkInitialize = *(PFN_DxgkInitialize*)Buffer; *(PFN_DxgkInitialize*)Buffer = NewDxgkInitialize; if(gbDbgMsg) ::DbgPrint("SyserBoot : DXGKrnl->DxgkInitialize = %08X\n",OldDxgkInitialize); } return Status; } NTSTATUS APIENTRY NewZwLoadDriver(IN PUNICODE_STRING DriverServiceName) { NTSTATUS Status = OldZwLoadDriver(DriverServiceName); if(Status != STATUS_SUCCESS || DriverServiceName==NULL) return Status; if(TMemICmp(WSTR("\\Registry\\Machine\\System\\CurrentControlSet\\Services\\DXGKrnl"),DriverServiceName->Buffer,DriverServiceName->Length/2)) return Status; PDEVICE_OBJECT DeviceObject; PFILE_OBJECT FileObject; UNICODE_STRING UnicodeName; RtlInitUnicodeString(&UnicodeName,WSTR("\\Device\\DXGKrnl")); if(!NT_SUCCESS(IoGetDeviceObjectPointer(&UnicodeName,FILE_READ_DATA,&FileObject,&DeviceObject))) { if(gbDbgMsg) ::DbgPrint("SyserBoot : Fail to get \\Device\\DXGKrnl\n"); return Status; } ObDereferenceObject(FileObject); if(gbDbgMsg) { ::DbgPrint("SyserBoot : DXGKrnl->DriverObject = %08X\n",DeviceObject->DriverObject); ::DbgPrint("SyserBoot : DXGKrnl->DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = %08X\n",DeviceObject->DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL]); } if(DeviceObject->DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL]!=NewDXGKrnlDispatchInternalDeviceControl) { OldDXGKrnlDispatchInternalDeviceControl = DeviceObject->DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL]; DeviceObject->DriverObject->MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = NewDXGKrnlDispatchInternalDeviceControl; } return Status; } bool HookZwSetSystemInformation() { UNICODE_STRING NtApiName; BYTE* ZwSetSystemInformationFunc; RtlInitUnicodeString(&NtApiName,WSTR("ZwSetSystemInformation")); ZwSetSystemInformationFunc=(BYTE*)MmGetSystemRoutineAddress(&NtApiName); if(ZwSetSystemInformationFunc==0||*ZwSetSystemInformationFunc!=0xB8) { ::DbgPrint("SyserBoot : Fail to hook ZwSetSystemInformation\n"); return false; } ZwSetSystemInfoIndex = *(DWORD*)(ZwSetSystemInformationFunc+1); OldZwSetSystemInformation=(FPN_ZwSetSystemInformation) KeServiceDescriptorTable->ServiceTable[ZwSetSystemInfoIndex]; ClrCR0WP(); KeServiceDescriptorTable->ServiceTable[ZwSetSystemInfoIndex]=NewZwSetSystemInformation; RestoreCR0(); if(gbDbgMsg) ::DbgPrint("SyserBoot : ZwSetSystemInformation hook Success !\n"); return true; } void UnhookZwSetSystemInformation() { if(ZwSetSystemInfoIndex<0 || KeServiceDescriptorTable->ServiceTable[ZwSetSystemInfoIndex]!=NewZwSetSystemInformation) return; KeServiceDescriptorTable->ServiceTable[ZwSetSystemInfoIndex]=OldZwSetSystemInformation; if(gbDbgMsg) ::DbgPrint("SyserBoot : ZwSetSystemInformation Unhook Success !\n"); } bool HookZwLoadDriver() { ULPOS ModuleBase; UNICODE_STRING NtApiName; BYTE* ZwLoadDriverFunc; RtlInitUnicodeString(&NtApiName,WSTR("ZwLoadDriver")); ZwLoadDriverFunc=(BYTE*)MmGetSystemRoutineAddress(&NtApiName); if(ZwLoadDriverFunc==0||*ZwLoadDriverFunc!=0xB8) { ::DbgPrint("SyserBoot : Fail to hook ZwLoadDriver\n"); return false; } ZwLoadDriverIndex = *(DWORD*)(ZwLoadDriverFunc+1); OldZwLoadDriver=(PFN_ZwLoadDriver)KeServiceDescriptorTable->ServiceTable[ZwLoadDriverIndex]; ClrCR0WP(); KeServiceDescriptorTable->ServiceTable[ZwLoadDriverIndex]=NewZwLoadDriver; RestoreCR0(); if(gbDbgMsg) ::DbgPrint("SyserBoot : ZwLoadDriver Hook Success !\n"); return true; } void UnhookZwLoadDriver() { if(ZwLoadDriverIndex<0 || KeServiceDescriptorTable->ServiceTable[ZwLoadDriverIndex]!=NewZwLoadDriver) return; KeServiceDescriptorTable->ServiceTable[ZwLoadDriverIndex]=OldZwLoadDriver; if(gbDbgMsg) ::DbgPrint("SyserBoot : ZwLoadDriver Unhook Success !\n"); } ================================================ FILE: Project/SysBoot/Source/VideoHook.h ================================================ #ifndef _VIDEO_HOOK_H_ #define _VIDEO_HOOK_H_ typedef DWORD (*FPN_ZwSetSystemInformation)(DWORD FunctionNo,void*Informat,DWORD Size); typedef NTSTATUS (*PFN_ZwLoadDriver)(IN PUNICODE_STRING DriverServiceName); struct SERVICETABLE { void** ServiceTable; DWORD LowCall; DWORD HiCall; PVOID* ArgTable; }; DWORD NewZwSetSystemInformation(DWORD FunctionNo,void*Informat,DWORD Size); bool HookZwSetSystemInformation(); void UnhookZwSetSystemInformation(); bool HookZwLoadDriver(); void UnhookZwLoadDriver(); #endif ================================================ FILE: Project/SysBoot/Source/VistaVideoHook.cpp ================================================ #include "StdAfx.h" #include "SysBoot.h" #include "VistaVideoHook.h" PFN_DxgkInitialize OldDxgkInitialize; PFN_DXGKDDI_SETVIDPNSOURCEVISIBILITY OldDxgkDdiSetVidPnSourceVisibility; //ʾɨ״̬ PFN_DXGKDDI_SETVIDPNSOURCEADDRESS OldDxgkDdiSetVidPnSourceAddress; //ûɨַ PFN_DXGKDDI_CREATEALLOCATION OldDxgkDdiCreateAllocation; //Դ,ϸϢ PFN_DXGKDDI_DESTROYALLOCATION OldDxgkDdiDestroyAllocation; //ͷԴ PFN_DXGKDDI_PRESENT OldDxgkDdiPresent; // BitBlt Flip struct VIDEO_FRAME_BUFFER_MAP_DESCR { void* VirtualAddress; PHYSICAL_ADDRESS PhysicalAddress; SIZE_T Length; }; VIDEO_FRAME_BUFFER_MAP_DESCR PrimaryFrameBufferDescr; bool AllocateFrameBufferMap(PHYSICAL_ADDRESS PhysicalAddress,SIZE_T Length,VIDEO_FRAME_BUFFER_MAP_DESCR*pDescr) { KIRQL IRQL=KeGetCurrentIrql(); if(IRQL!=PASSIVE_LEVEL) { if(gbDbgMsg) ::DbgPrint("SyserBoot : AllocateFrameBufferMap IRQL = %08X\n",IRQL); pDescr->VirtualAddress = NULL; return false; } pDescr->VirtualAddress = MmMapIoSpace(PhysicalAddress,Length,MmWriteCombined); if(pDescr->VirtualAddress==NULL) return false; pDescr->PhysicalAddress = PhysicalAddress; pDescr->Length = Length; return true; } void ReleaseFrameBufferMap(VIDEO_FRAME_BUFFER_MAP_DESCR*pDescr) { if(pDescr->VirtualAddress==NULL) return; KIRQL IRQL=KeGetCurrentIrql(); if(IRQL!=PASSIVE_LEVEL) { if(gbDbgMsg) ::DbgPrint("SysBoot : ReleaseFrameBufferMap IRQL = %08X\n",IRQL); return; } MmUnmapIoSpace(pDescr->VirtualAddress,pDescr->Length); ZeroMemory(pDescr,sizeof(VIDEO_FRAME_BUFFER_MAP_DESCR)); } int D3dDdiFormatToDepth(D3DDDIFORMAT Format) { switch(Format) { case D3DDDIFMT_R8G8B8: return 24; case D3DDDIFMT_A8R8G8B8: case D3DDDIFMT_X8R8G8B8: case D3DDDIFMT_A8B8G8R8: case D3DDDIFMT_X8B8G8R8: return 32; case D3DDDIFMT_R5G6B5: case D3DDDIFMT_X1R5G5B5: case D3DDDIFMT_A1R5G5B5: return 16; default: return 16; } } NTSTATUS APIENTRY NewDxgkDdiPresent(CONST HANDLE hContext,DXGKARG_PRESENT* pPresent) { return OldDxgkDdiPresent(hContext,pPresent); } NTSTATUS APIENTRY NewDxgkDdiSetVidPnSourceVisibility(CONST HANDLE hAdapter,CONST DXGKARG_SETVIDPNSOURCEVISIBILITY* pSetVidPnSourceVisibility) { NTSTATUS Status = OldDxgkDdiSetVidPnSourceVisibility(hAdapter,pSetVidPnSourceVisibility); if(pSetVidPnSourceVisibility->Visible) { GetDbgMsgState(); gpFrameBufferMap->Clear(); } if(gbDbgMsg) { ::DbgPrint("SyserBoot : DxgkDdiSetVidPnSourceVisibility %s\n",pSetVidPnSourceVisibility->Visible?"Visible":"Invisible"); } return Status; } NTSTATUS APIENTRY NewDxgkDdiSetVidPnSourceAddress(CONST HANDLE hAdapter,CONST DXGKARG_SETVIDPNSOURCEADDRESS*pSetVidPnSourceAddress) { NTSTATUS Status = OldDxgkDdiSetVidPnSourceAddress(hAdapter,pSetVidPnSourceAddress); if(pSetVidPnSourceAddress->Flags.ModeChange) { CSyserFrameBufferMap::IT Iter = gpFrameBufferMap->Find(pSetVidPnSourceAddress->hAllocation); if(Iter.IsExist()) { ReleaseFrameBufferMap(&PrimaryFrameBufferDescr); if(AllocateFrameBufferMap(pSetVidPnSourceAddress->PrimaryAddress,Iter->Height*Iter->LineDistance,&PrimaryFrameBufferDescr)) { Iter->Buffer = Iter->BaseBuffer = PrimaryFrameBufferDescr.VirtualAddress; WindowsModeChange(Iter->Width,Iter->Height,Iter->Bpp,Iter->Buffer,Iter->LineDistance); gpDevExt->pCurFrameBuffer = &CurentFrameBuffer; if(gbDbgMsg) { ::DbgPrint("SyserBoot : DxgkDdiSetVidPnSourceAddress hAllocation = %08X\n",pSetVidPnSourceAddress->hAllocation); ::DbgPrint(" Mode Change %d X %d X %d Pitch %d PhysAddr[%08X] FrameBuffer[%08X]\n", Iter->Width,Iter->Height,Iter->Bpp,Iter->LineDistance,(DWORD)pSetVidPnSourceAddress->PrimaryAddress.QuadPart,Iter->Buffer); } } else { if(gbDbgMsg) ::DbgPrint("SyserBoot : DxgkDdiSetVidPnSourceAddress fail to map PhysAddr 0x%08X\n",(DWORD)pSetVidPnSourceAddress->PrimaryAddress.QuadPart); } } } return Status; } bool IsVideoDeviceAlloc(DXGK_ALLOCATIONINFO* pAllocInfo) { if(pAllocInfo->pAllocationUsageHint==NULL) return false; if(pAllocInfo->pAllocationUsageHint->v1.Pitch==0) return false; if(pAllocInfo->pAllocationUsageHint->v1.Width<640 || pAllocInfo->pAllocationUsageHint->v1.Height<480) return false; if(pAllocInfo->pAllocationUsageHint->v1.Pitch<=pAllocInfo->pAllocationUsageHint->v1.Width) return false; return true; } NTSTATUS NewDxgkDdiCreateAllocation(CONST HANDLE hAdapter,DXGKARG_CREATEALLOCATION*pCreateAllocation) { DXGK_ALLOCATIONINFO* pAllocInfo; NTSTATUS Status = OldDxgkDdiCreateAllocation(hAdapter,pCreateAllocation); if(pCreateAllocation->pAllocationInfo==NULL||pCreateAllocation->NumAllocations==0||Status!=STATUS_SUCCESS) return Status; for(UINT n=0;nNumAllocations;n++) { pAllocInfo = &pCreateAllocation->pAllocationInfo[n]; if(pAllocInfo->pAllocationUsageHint && IsVideoDeviceAlloc(pAllocInfo)) { CSyserFrameBufferMap::IT Iter = gpFrameBufferMap->InsertUnique(pAllocInfo->hAllocation); if(Iter.IsExist()) { Iter->Width = pAllocInfo->pAllocationUsageHint->v1.Width; Iter->Height = pAllocInfo->pAllocationUsageHint->v1.Height; Iter->Bpp = D3dDdiFormatToDepth(pAllocInfo->pAllocationUsageHint->v1.Format); Iter->LineDistance = pAllocInfo->pAllocationUsageHint->v1.Pitch; Iter->BaseBuffer = Iter->Buffer = 0; Iter->PixelFormat = 0; if(gbDbgMsg) { ::DbgPrint("SyserBoot : CreateAllocation [%d] = %08X , %d X %d X %d ,Pitch = %d , D3DFormat = %d CreateFlag %X\n", gpFrameBufferMap->Count(),pAllocInfo->hAllocation,Iter->Width,Iter->Height,Iter->Bpp,Iter->LineDistance, pAllocInfo->pAllocationUsageHint->v1.Format,pAllocInfo->Flags.Value); } } } } return Status; } NTSTATUS APIENTRY NewDxgkDdiDestroyAllocation(CONST HANDLE hAdapter,CONST DXGKARG_DESTROYALLOCATION*pDestroyAllocation) { NTSTATUS Status = OldDxgkDdiDestroyAllocation(hAdapter,pDestroyAllocation); if(pDestroyAllocation->pAllocationList) { for(UINT n=0;nNumAllocations;n++) { if(gpFrameBufferMap->Remove(pDestroyAllocation->pAllocationList[n])>0) { if(gbDbgMsg) ::DbgPrint("SyserBoot : DestroyAllocation = %08X\n",pDestroyAllocation->pAllocationList[n]); } } } return Status; } NTSTATUS APIENTRY NewDxgkInitialize(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath,IN PDRIVER_INITIALIZATION_DATA DriverInitializationData) { NTSTATUS Status; DRIVER_INITIALIZATION_DATA NewDriverInitializationData; NewDriverInitializationData = *DriverInitializationData; STZeroMemory(PrimaryFrameBufferDescr); gpFrameBufferMap->Clear(); GetDbgMsgState(); ///////////////////////////////////////////////////////////////////////////////////////////// (PVOID&)OldDxgkDdiSetVidPnSourceAddress = NewDriverInitializationData.DxgkDdiSetVidPnSourceAddress; NewDriverInitializationData.DxgkDdiSetVidPnSourceAddress = NewDxgkDdiSetVidPnSourceAddress; ///////////////////////////////////////////////////////////////////////////////////////////// (PVOID&)OldDxgkDdiCreateAllocation = NewDriverInitializationData.DxgkDdiCreateAllocation; NewDriverInitializationData.DxgkDdiCreateAllocation = NewDxgkDdiCreateAllocation; ///////////////////////////////////////////////////////////////////////////////////////////// (PVOID&)OldDxgkDdiDestroyAllocation = NewDriverInitializationData.DxgkDdiDestroyAllocation; NewDriverInitializationData.DxgkDdiDestroyAllocation = NewDxgkDdiDestroyAllocation; ///////////////////////////////////////////////////////////////////////////////////////////// (PVOID&)OldDxgkDdiSetVidPnSourceVisibility = NewDriverInitializationData.DxgkDdiSetVidPnSourceVisibility; NewDriverInitializationData.DxgkDdiSetVidPnSourceVisibility = NewDxgkDdiSetVidPnSourceVisibility; ///////////////////////////////////////////////////////////////////////////////////////////// //(PVOID&)OldDxgkDdiPresent = NewDriverInitializationData.DxgkDdiPresent; //NewDriverInitializationData.DxgkDdiPresent = NewDxgkDdiPresent; return OldDxgkInitialize(DriverObject,RegistryPath,&NewDriverInitializationData); } ================================================ FILE: Project/SysBoot/Source/VistaVideoHook.h ================================================ #ifndef _VISTA_VIDEO_HOOK_H_ #define _VISTA_VIDEO_HOOK_H_ typedef struct _DXGK_SEGMENTBANKPREFERENCE { union { struct { UINT Bank0: 7; UINT Direction0: 1; UINT Bank1: 7; UINT Direction1: 1; UINT Bank2: 7; UINT Direction2: 1; UINT Bank3: 7; UINT Direction3: 1; }; UINT Value; }; } DXGK_SEGMENTBANKPREFERENCE; typedef struct _DXGK_SEGMENTPREFERENCE { union { struct { UINT SegmentId0: 5; UINT Direction0: 1; UINT SegmentId1: 5; UINT Direction1: 1; UINT SegmentId2: 5; UINT Direction2: 1; UINT SegmentId3: 5; UINT Direction3: 1; UINT SegmentId4: 5; UINT Direction4: 1; UINT Reserved: 2; }; UINT Value; }; } DXGK_SEGMENTPREFERENCE; typedef enum _D3DDDIFORMAT { D3DDDIFMT_UNKNOWN = 0, D3DDDIFMT_R8G8B8 = 20, D3DDDIFMT_A8R8G8B8 = 21, D3DDDIFMT_X8R8G8B8 = 22, D3DDDIFMT_R5G6B5 = 23, D3DDDIFMT_X1R5G5B5 = 24, D3DDDIFMT_A1R5G5B5 = 25, D3DDDIFMT_A4R4G4B4 = 26, D3DDDIFMT_R3G3B2 = 27, D3DDDIFMT_A8 = 28, D3DDDIFMT_A8R3G3B2 = 29, D3DDDIFMT_X4R4G4B4 = 30, D3DDDIFMT_A2B10G10R10 = 31, D3DDDIFMT_A8B8G8R8 = 32, D3DDDIFMT_X8B8G8R8 = 33, D3DDDIFMT_G16R16 = 34, D3DDDIFMT_A2R10G10B10 = 35, D3DDDIFMT_A16B16G16R16 = 36, D3DDDIFMT_A8P8 = 40, D3DDDIFMT_P8 = 41, D3DDDIFMT_L8 = 50, D3DDDIFMT_A8L8 = 51, D3DDDIFMT_A4L4 = 52, D3DDDIFMT_V8U8 = 60, D3DDDIFMT_L6V5U5 = 61, D3DDDIFMT_X8L8V8U8 = 62, D3DDDIFMT_Q8W8V8U8 = 63, D3DDDIFMT_V16U16 = 64, D3DDDIFMT_W11V11U10 = 65, D3DDDIFMT_A2W10V10U10 = 67, D3DDDIFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'), D3DDDIFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'), D3DDDIFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'), D3DDDIFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'), D3DDDIFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'), D3DDDIFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'), D3DDDIFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'), D3DDDIFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'), D3DDDIFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'), D3DDDIFMT_D16_LOCKABLE = 70, D3DDDIFMT_D32 = 71, D3DDDIFMT_D15S1 = 73, D3DDDIFMT_D24S8 = 75, D3DDDIFMT_D24X8 = 77, D3DDDIFMT_D24X4S4 = 79, D3DDDIFMT_D16 = 80, D3DDDIFMT_D32F_LOCKABLE = 82, D3DDDIFMT_D24FS8 = 83, D3DDDIFMT_D32_LOCKABLE = 84, D3DDDIFMT_S8_LOCKABLE = 85, D3DDDIFMT_S1D15 = 72, D3DDDIFMT_S8D24 = 74, D3DDDIFMT_X8D24 = 76, D3DDDIFMT_X4S4D24 = 78, D3DDDIFMT_L16 = 81, D3DDDIFMT_VERTEXDATA =100, D3DDDIFMT_INDEX16 =101, D3DDDIFMT_INDEX32 =102, D3DDDIFMT_Q16W16V16U16 =110, D3DDDIFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'), D3DDDIFMT_R16F = 111, D3DDDIFMT_G16R16F = 112, D3DDDIFMT_A16B16G16R16F = 113, D3DDDIFMT_R32F = 114, D3DDDIFMT_G32R32F = 115, D3DDDIFMT_A32B32G32R32F = 116, D3DDDIFMT_CxV8U8 = 117, D3DDDIFMT_A1 = 118, D3DDDIFMT_DXVACOMPBUFFER_BASE = 150, D3DDDIFMT_PICTUREPARAMSDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+0, D3DDDIFMT_MACROBLOCKDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+1, D3DDDIFMT_RESIDUALDIFFERENCEDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+2, D3DDDIFMT_DEBLOCKINGDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+3, D3DDDIFMT_INVERSEQUANTIZATIONDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+4, D3DDDIFMT_SLICECONTROLDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+5, D3DDDIFMT_BITSTREAMDATA = D3DDDIFMT_DXVACOMPBUFFER_BASE+6, D3DDDIFMT_MOTIONVECTORBUFFER = D3DDDIFMT_DXVACOMPBUFFER_BASE+7, D3DDDIFMT_FILMGRAINBUFFER = D3DDDIFMT_DXVACOMPBUFFER_BASE+8, D3DDDIFMT_DXVA_RESERVED9 = D3DDDIFMT_DXVACOMPBUFFER_BASE+9, D3DDDIFMT_DXVA_RESERVED10 = D3DDDIFMT_DXVACOMPBUFFER_BASE+10, D3DDDIFMT_DXVA_RESERVED11 = D3DDDIFMT_DXVACOMPBUFFER_BASE+11, D3DDDIFMT_DXVA_RESERVED12 = D3DDDIFMT_DXVACOMPBUFFER_BASE+12, D3DDDIFMT_DXVA_RESERVED13 = D3DDDIFMT_DXVACOMPBUFFER_BASE+13, D3DDDIFMT_DXVA_RESERVED14 = D3DDDIFMT_DXVACOMPBUFFER_BASE+14, D3DDDIFMT_DXVA_RESERVED15 = D3DDDIFMT_DXVACOMPBUFFER_BASE+15, D3DDDIFMT_DXVA_RESERVED16 = D3DDDIFMT_DXVACOMPBUFFER_BASE+16, D3DDDIFMT_DXVA_RESERVED17 = D3DDDIFMT_DXVACOMPBUFFER_BASE+17, D3DDDIFMT_DXVA_RESERVED18 = D3DDDIFMT_DXVACOMPBUFFER_BASE+18, D3DDDIFMT_DXVA_RESERVED19 = D3DDDIFMT_DXVACOMPBUFFER_BASE+19, D3DDDIFMT_DXVA_RESERVED20 = D3DDDIFMT_DXVACOMPBUFFER_BASE+20, D3DDDIFMT_DXVA_RESERVED21 = D3DDDIFMT_DXVACOMPBUFFER_BASE+21, D3DDDIFMT_DXVA_RESERVED22 = D3DDDIFMT_DXVACOMPBUFFER_BASE+22, D3DDDIFMT_DXVA_RESERVED23 = D3DDDIFMT_DXVACOMPBUFFER_BASE+23, D3DDDIFMT_DXVA_RESERVED24 = D3DDDIFMT_DXVACOMPBUFFER_BASE+24, D3DDDIFMT_DXVA_RESERVED25 = D3DDDIFMT_DXVACOMPBUFFER_BASE+25, D3DDDIFMT_DXVA_RESERVED26 = D3DDDIFMT_DXVACOMPBUFFER_BASE+26, D3DDDIFMT_DXVA_RESERVED27 = D3DDDIFMT_DXVACOMPBUFFER_BASE+27, D3DDDIFMT_DXVA_RESERVED28 = D3DDDIFMT_DXVACOMPBUFFER_BASE+28, D3DDDIFMT_DXVA_RESERVED29 = D3DDDIFMT_DXVACOMPBUFFER_BASE+29, D3DDDIFMT_DXVA_RESERVED30 = D3DDDIFMT_DXVACOMPBUFFER_BASE+30, D3DDDIFMT_DXVA_RESERVED31 = D3DDDIFMT_DXVACOMPBUFFER_BASE+31, D3DDDIFMT_DXVACOMPBUFFER_MAX = D3DDDIFMT_DXVA_RESERVED31, D3DDDIFMT_BINARYBUFFER = 199, D3DDDIFMT_FORCE_UINT =0x7fffffff } D3DDDIFORMAT; typedef struct _D3DDDI_RATIONAL { UINT Numerator; UINT Denominator; } D3DDDI_RATIONAL; #define D3DDDI_MAX_BROADCAST_CONTEXT 64 typedef UINT D3DDDI_VIDEO_PRESENT_SOURCE_ID; typedef struct _DXGK_SETVIDPNSOURCEADDRESS_FLAGS { union { struct { UINT ModeChange : 1; // 0x00000001 UINT FlipImmediate : 1; // 0x00000002 UINT FlipOnNextVSync : 1; // 0x00000004 UINT Reserved :29; // 0xFFFFFFF8 }; UINT Value; }; } DXGK_SETVIDPNSOURCEADDRESS_FLAGS; typedef struct _DXGKARG_SETVIDPNSOURCEADDRESS { D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId; UINT PrimarySegment; PHYSICAL_ADDRESS PrimaryAddress; HANDLE hAllocation; UINT ContextCount; HANDLE Context[1+D3DDDI_MAX_BROADCAST_CONTEXT]; DXGK_SETVIDPNSOURCEADDRESS_FLAGS Flags; }DXGKARG_SETVIDPNSOURCEADDRESS; typedef NTSTATUS (APIENTRY*PFN_DXGKDDI_SETVIDPNSOURCEADDRESS)(CONST HANDLE hAdapter,CONST DXGKARG_SETVIDPNSOURCEADDRESS*pSetVidPnSourceAddress); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct _DXGKARG_SETVIDPNSOURCEVISIBILITY { D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId; BOOLEAN Visible; } DXGKARG_SETVIDPNSOURCEVISIBILITY; typedef NTSTATUS (APIENTRY*PFN_DXGKDDI_SETVIDPNSOURCEVISIBILITY)(CONST HANDLE hAdapter,CONST DXGKARG_SETVIDPNSOURCEVISIBILITY*pSetVidPnSourceVisibility); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct _DXGK_ALLOCATIONINFOFLAGS { union { struct { UINT CpuVisible: 1; UINT PermanentSysMem: 1; UINT Cached: 1; UINT Protected: 1; UINT ExistingSysMem: 1; UINT ExistingKernelSysMem: 1; UINT FromEndOfSegment: 1; UINT Swizzled: 1; UINT Overlay: 1; UINT Capture: 1; UINT UseAlternateVA: 1; UINT SynchronousPaging: 1; UINT LinkMirrored: 1; UINT LinkInstanced: 1; UINT Reserved: 14; }; UINT Value; }; } DXGK_ALLOCATIONINFOFLAGS; typedef struct _DXGK_ALLOCATIONUSAGEINFO1 { union { struct { UINT PrivateFormat: 1; UINT Swizzled: 1; UINT MipMap: 1; UINT Cube: 1; UINT Volume: 1; UINT Vertex: 1; UINT Index: 1; UINT Reserved: 25; }; UINT Value; } Flags; union { D3DDDIFORMAT Format; UINT PrivateFormat; }; UINT SwizzledFormat; UINT ByteOffset; UINT Width; UINT Height; UINT Pitch; UINT Depth; UINT SlicePitch; } DXGK_ALLOCATIONUSAGEINFO1; typedef struct _DXGK_ALLOCATIONUSAGEHINT { UINT Version; DXGK_ALLOCATIONUSAGEINFO1 v1; } DXGK_ALLOCATIONUSAGEHINT; typedef struct _DXGK_ALLOCATIONINFO { VOID* pPrivateDriverData; UINT PrivateDriverDataSize; UINT Alignment; SIZE_T Size; SIZE_T PitchAlignedSize; DXGK_SEGMENTBANKPREFERENCE HintedBank; DXGK_SEGMENTPREFERENCE PreferredSegment; UINT SupportedReadSegmentSet; UINT SupportedWriteSegmentSet; UINT EvictionSegmentSet; UINT MaximumRenamingListLength; HANDLE hAllocation; DXGK_ALLOCATIONINFOFLAGS Flags; DXGK_ALLOCATIONUSAGEHINT* pAllocationUsageHint; UINT AllocationPriority; } DXGK_ALLOCATIONINFO; typedef struct _DXGK_CREATEALLOCATIONFLAGS { union { struct { UINT Resource: 1; UINT Reserved: 31; }; UINT Value; }; } DXGK_CREATEALLOCATIONFLAGS; typedef struct _DXGKARG_CREATEALLOCATION { CONST VOID* pPrivateDriverData; UINT PrivateDriverDataSize; UINT NumAllocations; DXGK_ALLOCATIONINFO* pAllocationInfo; HANDLE hResource; DXGK_CREATEALLOCATIONFLAGS Flags; } DXGKARG_CREATEALLOCATION; typedef NTSTATUS (APIENTRY*PFN_DXGKDDI_CREATEALLOCATION)(CONST HANDLE hAdapter,DXGKARG_CREATEALLOCATION*pCreateAllocation); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef struct _DXGK_DESTROYALLOCATIONFLAGS { union { struct { UINT DestroyResource : 1; // 0x00000001 UINT Reserved :31; // 0xFFFFFFFE }; UINT Value; }; } DXGK_DESTROYALLOCATIONFLAGS; typedef struct _DXGKARG_DESTROYALLOCATION { UINT NumAllocations; CONST HANDLE* pAllocationList; HANDLE hResource; DXGK_DESTROYALLOCATIONFLAGS Flags; } DXGKARG_DESTROYALLOCATION; typedef NTSTATUS (APIENTRY*PFN_DXGKDDI_DESTROYALLOCATION)(CONST HANDLE hAdapter,CONST DXGKARG_DESTROYALLOCATION*pDestroyAllocation); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// typedef enum D3DDDI_FLIPINTERVAL_TYPE { D3DDDI_FLIPINTERVAL_IMMEDIATE = 0, D3DDDI_FLIPINTERVAL_ONE = 1, D3DDDI_FLIPINTERVAL_TWO = 2, D3DDDI_FLIPINTERVAL_THREE = 3, D3DDDI_FLIPINTERVAL_FOUR = 4, } D3DDDI_FLIPINTERVAL_TYPE; #define DXGK_PRESENT_SOURCE_INDEX 1 #define DXGK_PRESENT_DESTINATION_INDEX 2 #define DXGK_PRESENT_MAX_INDEX DXGK_PRESENT_DESTINATION_INDEX typedef struct _DXGK_PRESENTFLAGS { union { struct { UINT Blt : 1; // 0x00000001 UINT ColorFill : 1; // 0x00000002 UINT Flip : 1; // 0x00000004 UINT FlipWithNoWait : 1; // 0x00000008 UINT SrcColorKey : 1; // 0x00000010 UINT DstColorKey : 1; // 0x00000020 UINT LinearToSrgb : 1; // 0x00000040 UINT Rotate : 1; // 0x00000080 UINT Reserved :24; // 0xFFFFFF00 }; UINT Value; }; } DXGK_PRESENTFLAGS; typedef struct _D3DDDI_PATCHLOCATIONLIST { UINT AllocationIndex; union { struct { UINT SlotId : 24; // 0x00FFFFFF UINT Reserved : 8; // 0xFF000000 }; UINT Value; }; UINT DriverId; UINT AllocationOffset; UINT PatchOffset; UINT SplitOffset; } D3DDDI_PATCHLOCATIONLIST; typedef struct _DXGK_ALLOCATIONLIST { HANDLE hDeviceSpecificAllocation; struct { UINT WriteOperation : 1; // 0x00000001 UINT SegmentId : 5; // 0x0000002E UINT Reserved : 26; // 0xFFFFFFC0 }; PHYSICAL_ADDRESS PhysicalAddress; } DXGK_ALLOCATIONLIST; typedef struct _DXGKARG_PRESENT { VOID* pDmaBuffer; UINT DmaSize; VOID* pDmaBufferPrivateData; UINT DmaBufferPrivateDataSize; DXGK_ALLOCATIONLIST* pAllocationList; D3DDDI_PATCHLOCATIONLIST* pPatchLocationListOut; UINT PatchLocationListOutSize; UINT MultipassOffset; UINT Color; RECT DstRect; RECT SrcRect; UINT SubRectCnt; CONST RECT* pDstSubRects; D3DDDI_FLIPINTERVAL_TYPE FlipInterval; DXGK_PRESENTFLAGS Flags; UINT DmaBufferSegmentId; PHYSICAL_ADDRESS DmaBufferPhysicalAddress; } DXGKARG_PRESENT; typedef NTSTATUS (APIENTRY*PFN_DXGKDDI_PRESENT)(CONST HANDLE hContext,DXGKARG_PRESENT* pPresent); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Vista Video Miniport Driver Initialization Data typedef struct _DRIVER_INITIALIZATION_DATA { ULONG Version; void* DxgkDdiAddDevice; void* DxgkDdiStartDevice; void* DxgkDdiStopDevice; void* DxgkDdiRemoveDevice; void* DxgkDdiDispatchIoRequest; void* DxgkDdiInterruptRoutine; void* DxgkDdiDpcRoutine; void* DxgkDdiQueryChildRelations; void* DxgkDdiQueryChildStatus; void* DxgkDdiQueryDeviceDescriptor; void* DxgkDdiSetPowerState; void* DxgkDdiNotifyAcpiEvent; void* DxgkDdiResetDevice; void* DxgkDdiUnload; void* DxgkDdiQueryInterface; void* DxgkDdiControlEtwLogging; void* DxgkDdiQueryAdapterInfo; void* DxgkDdiCreateDevice; void* DxgkDdiCreateAllocation; void* DxgkDdiDestroyAllocation; void* DxgkDdiDescribeAllocation; void* DxgkDdiGetStandardAllocationDriverData; void* DxgkDdiAcquireSwizzlingRange; void* DxgkDdiReleaseSwizzlingRange; void* DxgkDdiPatch; void* DxgkDdiSubmitCommand; void* DxgkDdiPreemptCommand; void* DxgkDdiBuildPagingBuffer; void* DxgkDdiSetPalette; void* DxgkDdiSetPointerPosition; void* DxgkDdiSetPointerShape; void* DxgkDdiResetFromTimeout; void* DxgkDdiRestartFromTimeout; void* DxgkDdiEscape; void* DxgkDdiCollectDbgInfo; void* DxgkDdiQueryCurrentFence; void* DxgkDdiIsSupportedVidPn; void* DxgkDdiRecommendFunctionalVidPn; void* DxgkDdiEnumVidPnCofuncModality; void* DxgkDdiSetVidPnSourceAddress; void* DxgkDdiSetVidPnSourceVisibility; void* DxgkDdiCommitVidPn; void* DxgkDdiUpdateActiveVidPnPresentPath; void* DxgkDdiRecommendMonitorModes; void* DxgkDdiRecommendVidPnTopology; void* DxgkDdiGetScanLine; void* DxgkDdiStopCapture; void* DxgkDdiControlInterrupt; void* DxgkDdiCreateOverlay; // // Device functions // void* DxgkDdiDestroyDevice; void* DxgkDdiOpenAllocation; void* DxgkDdiCloseAllocation; void* DxgkDdiRender; void* DxgkDdiPresent; // // Overlay functions // void* DxgkDdiUpdateOverlay; void* DxgkDdiFlipOverlay; void* DxgkDdiDestroyOverlay; // // Context supports. // void* DxgkDdiCreateContext; void* DxgkDdiDestroyContext; // // Linked Display Adapter support. // void* DxgkDdiLinkDevice; void* DxgkDdiSetDisplayPrivateDriverFormat; }DRIVER_INITIALIZATION_DATA, *PDRIVER_INITIALIZATION_DATA; NTSTATUS NewDxgkInitialize(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath,IN PDRIVER_INITIALIZATION_DATA DriverInitializationData); typedef NTSTATUS (*PFN_DxgkInitialize)(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath,IN PDRIVER_INITIALIZATION_DATA DriverInitializationData); extern PFN_DxgkInitialize OldDxgkInitialize; #endif ================================================ FILE: Project/SysBoot/Source/resource.h ================================================ ================================================ FILE: Project/SysBoot/WinXPDrv32/DDKBuild.bat ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SysBoot/WinXPDrv32/SysBoot.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SysBoot", "SysBoot.vcproj", "{39CF688F-D270-4EED-98F6-31EB28C3C74A}" ProjectSection(ProjectDependencies) = postProject {651091F4-30CA-4134-91EF-88FB5F4D7477} = {651091F4-30CA-4134-91EF-88FB5F4D7477} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\WinXPDrv32\Code.vcproj", "{651091F4-30CA-4134-91EF-88FB5F4D7477}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Debug|Win32.ActiveCfg = Debug|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Debug|Win32.Build.0 = Debug|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Release|Win32.ActiveCfg = Release|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Release|Win32.Build.0 = Release|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Trial|Win32.ActiveCfg = Release|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Trial|Win32.Build.0 = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Debug|Win32.ActiveCfg = Debug|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Debug|Win32.Build.0 = Debug|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Release|Win32.ActiveCfg = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Release|Win32.Build.0 = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Trial|Win32.ActiveCfg = Trial|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SysBoot/WinXPDrv32/SysBoot.vcproj ================================================ ================================================ FILE: Project/SysBoot/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SysBoot/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SysBoot/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SysBoot/incfile.txt ================================================ ================================================ FILE: Project/SysBoot/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SysLang/Source/MakeFile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/SysLang/Source/Sources ================================================ TARGETNAME=SysLang TARGETPATH=..\..\..\Bin TARGETTYPE=DRIVER C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h TARGETLIBS = ..\..\Unicode\Source\Obj\i386\Unicode.lib SOURCES = SysLang.cpp\ SyserLanguage.rc ================================================ FILE: Project/SysLang/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/SysLang/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "../../Unicode/Source/Unicode.h" #endif ================================================ FILE: Project/SysLang/Source/SysLang.cpp ================================================ #include "StdAfx.h" #include "SysLang.h" const union cptable * current_cptable = NULL; void SyserLanguageUnload(IN PDRIVER_OBJECT DriverObject) { IoDeleteDevice(DriverObject->DeviceObject); } int SyserAnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen) { if(current_cptable==NULL) return 0; return cp_mbstowcs(current_cptable,0,szBuf,TStrLen(szBuf)+1,WszBuf,MaxLen); } int SyserUnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen) { if(current_cptable==NULL) return 0; return cp_wcstombs(current_cptable,0,WszBuf,TStrLen(WszBuf)+1,szBuf,MaxLen,NULL,NULL); } NTSTATUS MJFunction(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { Irp->IoStatus.Status=STATUS_SUCCESS; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } void GetOSCodePage() { UINT CodePage; WCHAR szBuffer[32]; UNICODE_STRING UnicodeString; RTL_QUERY_REGISTRY_TABLE RegTable[2]; ZeroMemory(RegTable,sizeof(RegTable)); UnicodeString.Length=0; UnicodeString.MaximumLength=sizeof(szBuffer); UnicodeString.Buffer=szBuffer; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED | RTL_QUERY_REGISTRY_NOEXPAND; RegTable[0].Name = WSTR("ACP"); RegTable[0].EntryContext = &UnicodeString; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_CONTROL,WSTR("\\Nls\\CodePage"),RegTable,NULL,NULL))) { ::DbgPrint("SyserLanguage : Fail to get OS CodePage!\n"); return; } if(USDecStrToNum(szBuffer,&CodePage)==false) { ::DbgPrint("SyserLanguage : Invalid CodePage String [%ws]\n",szBuffer); return; } current_cptable = cp_get_table(CodePage); if(current_cptable) ::DbgPrint("SyserLanguage : CodePage = %d\n",CodePage); else ::DbgPrint("SyserLanguage : Unsupported CodePage = %d\n",CodePage); } ///////////////////////////////////////////////////////////////////////////////////////// // ///////////////////////////////////////////////////////////////////////////////////////// NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath) { UNICODE_STRING DeviceName; NTSTATUS status; PDEVICE_OBJECT DeviceObject; SYSER_LANGUAGE_DEVICE_EXTENSION* pDevExt; RtlInitUnicodeString(&DeviceName,WSTR("\\Device\\SyserLanguage")); status = IoCreateDevice(DriverObject,sizeof(SYSER_LANGUAGE_DEVICE_EXTENSION),&DeviceName,FILE_DEVICE_UNKNOWN,0,TRUE,&DeviceObject); if(!NT_SUCCESS(status)) return status; pDevExt = (SYSER_LANGUAGE_DEVICE_EXTENSION*)DeviceObject->DeviceExtension; ZeroMemory(pDevExt,sizeof(SYSER_LANGUAGE_DEVICE_EXTENSION)); GetOSCodePage(); pDevExt->cbSize = sizeof(SYSER_LANGUAGE_DEVICE_EXTENSION); pDevExt->pfnAnsiToUnicode = SyserAnsiToUnicode; pDevExt->pfnUnicodeToAnsi = SyserUnicodeToAnsi; for(DWORD FunCount=0;FunCountMajorFunction[FunCount]=MJFunction; DriverObject->DriverUnload = SyserLanguageUnload; return STATUS_SUCCESS; } ================================================ FILE: Project/SysLang/Source/SysLang.h ================================================ #ifndef _SYSER_LANGUAGE_H_ #define _SYSER_LANGUAGE_H_ typedef int (*PFN_AnsiToUnicode)(const char*szBuf,WCHAR*WszBuf,int MaxLen); typedef int (*PFN_UnicodeToAnsi)(const WCHAR*WszBuf,char*szBuf,int MaxLen); struct SYSER_LANGUAGE_DEVICE_EXTENSION { int cbSize; PFN_AnsiToUnicode pfnAnsiToUnicode; PFN_UnicodeToAnsi pfnUnicodeToAnsi; }; #endif ================================================ FILE: Project/SysLang/Source/SyserLanguage.rc ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser multi language support" #define VER_INTERNALNAME_STR "SysLang.sys" #define VER_ORIGINALFILENAME_STR "SysLang.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SysLang/Source/SyserLanguage.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser multi language support" #define VER_INTERNALNAME_STR "SysLang.sys" #define VER_ORIGINALFILENAME_STR "SysLang.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/SysLang/Source/resource.h ================================================ ================================================ FILE: Project/SysLang/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/SysLang/WinXPDrv32/SysLang.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SysLang", "SysLang.vcproj", "{39CF688F-D270-4EED-98F6-31EB28C3C74A}" ProjectSection(ProjectDependencies) = postProject {27CC6E41-F0EA-48F8-9114-D1F78C617E4E} = {27CC6E41-F0EA-48F8-9114-D1F78C617E4E} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Unicode", "..\..\Unicode\WinXPDrv32\Unicode.vcproj", "{27CC6E41-F0EA-48F8-9114-D1F78C617E4E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Debug|Win32.ActiveCfg = Debug|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Debug|Win32.Build.0 = Debug|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Release|Win32.ActiveCfg = Release|Win32 {39CF688F-D270-4EED-98F6-31EB28C3C74A}.Release|Win32.Build.0 = Release|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Debug|Win32.ActiveCfg = Debug|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Debug|Win32.Build.0 = Debug|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Release|Win32.ActiveCfg = Release|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SysLang/WinXPDrv32/SysLang.vcproj ================================================ ================================================ FILE: Project/SysLang/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/SysLang/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/SysLang/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SysLang/incfile.txt ================================================ ================================================ FILE: Project/SysLang/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/Syser/Source/AddTypeViewerDlg.cpp ================================================ #include "stdafx.h" #include "AddTypeViewerDlg.h" #include "Syser.h" #include "TypeViewerWnd.h" enum CAddTypeViewerDlg::WISP_FORM_ID { CMD_ID_BUTTON_OK=WISP_ID_USER_START, CMD_ID_BUTTON_CANCEL, CMD_ID_LIST_TYPE, CMD_ID_RADIOBOX_FLOATTYPE, CMD_ID_RADIOBOX_LOCKTYPE, CMD_ID_RADIOBOX_DWORD, CMD_ID_RADIOBOX_QWORD, CMD_ID_STATICSTR_DESCRIPTION, CMD_ID_RADIOBOX_HEX, CMD_ID_RADIOBOX_DECIMAL, CMD_ID_STATICSTR_VALUE, CMD_ID_STATICSTR_BEGINADDRESS, CMD_ID_EDIT_END_POSITION, CMD_ID_EDIT_VALUE, CMD_ID_CHECKBOX_COUNT, }; WISP_FORM_RES_ITEM CAddTypeViewerDlg::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,386,268}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Attach Type"), "\\SyserIcon\\Plugin.ico", NULL, }, { WISP_CTRL_STATIC_GROUP, {166,10,204,56}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Description") }, { WISP_CTRL_STATIC_STRING, {174,30,204,56}, CMD_ID_STATICSTR_DESCRIPTION, WISP_WS_NULL, WSTR(""), NULL, }, { WISP_CTRL_STATIC_GROUP, {166,75,204,106}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Options") }, { WISP_CTRL_LIST, {5,5,155,230}, CMD_ID_LIST_TYPE, WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER, NULL, }, { WISP_CTRL_RADIO_BOX, {176,90,100,16}, CMD_ID_RADIOBOX_FLOATTYPE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Floating Type"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {176,110,90,16}, CMD_ID_RADIOBOX_LOCKTYPE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Lock Type"), NULL, NULL }, { WISP_CTRL_STATIC_STRING, {194,135,45,16}, CMD_ID_STATICSTR_BEGINADDRESS, WISP_WS_NULL, WSTR("Address:"), NULL, }, { WISP_CTRL_EDIT, {245,135,93,16}, CMD_ID_EDIT_END_POSITION, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_RADIO_BOX, {245,155,45,16}, CMD_ID_RADIOBOX_DECIMAL, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Dec"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {301,155,45,16}, CMD_ID_RADIOBOX_HEX, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Hex"), NULL, NULL }, { WISP_CTRL_BUTTON, {185,197,68,25}, CMD_ID_BUTTON_OK, WISP_BS_NORMAL, WSTR("OK"), }, { WISP_CTRL_BUTTON, {280,197,68,25}, CMD_ID_BUTTON_CANCEL, WISP_BS_NORMAL, WSTR("Cancel"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CAddTypeViewerDlg) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CAddTypeViewerDlg) WISP_MSG_CMD_MAP(CMD_ID_LIST_TYPE,OnTypeListCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CAddTypeViewerDlg) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_OK,OnOKButtonEvent) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_CANCEL,OnCancelButtonEvent) WISP_MSG_EVENT_MAP(CMD_ID_RADIOBOX_LOCKTYPE,OnLockRadioBoxEvent) WISP_MSG_EVENT_MAP(CMD_ID_RADIOBOX_FLOATTYPE,OnFloatRadioBoxEvent) WISP_MSG_EVENT_MAP_END CAddTypeViewerDlg::CAddTypeViewerDlg() { m_pFormRes = m_FormRes; m_CurrentSymbol = NULL; } CAddTypeViewerDlg::~CAddTypeViewerDlg() { } bool CAddTypeViewerDlg::OnFormCreate(IN WISP_MSG* pMsg) { m_IconDIBList.Load("\\sysericon\\SourceCodeIcon.bmp",16,16,80); m_IconDIBList.SetColorKey(RGB(0,255,0)); m_OKButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_OK); m_CancelButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_CANCEL); m_FloatRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_FLOATTYPE); m_LockRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_LOCKTYPE); m_DesciptionStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_DESCRIPTION); m_DecimalRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_DECIMAL); m_HexRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_HEX); m_BeginAddressEdit=(CWispEdit*)GetFormItem(CMD_ID_EDIT_END_POSITION); m_BeginAddressStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_BEGINADDRESS); m_TypeList=(CWispList*)GetFormItem(CMD_ID_LIST_TYPE); m_TypeList->InsertColumn(WSTR(""),500); m_HexRadioBox->Check(); m_FloatRadioBox->Check(); m_BeginAddressEdit->EnableWindow(false); m_HexRadioBox->EnableWindow(false); m_DecimalRadioBox->EnableWindow(false); m_BeginAddressStr->EnableWindow(false); m_OKButton->EnableWindow(false); m_DesciptionStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_DESCRIPTION); m_DesciptionStr->SetWindowText(WSTR("Attach type to address.")); InitTypeList(); return true; } bool CAddTypeViewerDlg::OnDestroy(IN WISP_MSG* pMsg) { return true; } bool CAddTypeViewerDlg::OnFloatRadioBoxEvent(IN WISP_MSG* pMsg) { WCHAR* pStr; DWORD BeginAddress; m_BeginAddressEdit->EnableWindow(false); m_HexRadioBox->EnableWindow(false); m_DecimalRadioBox->EnableWindow(false); m_BeginAddressStr->EnableWindow(false); pStr = m_BeginAddressEdit->GetWindowText(); if(m_HexRadioBox->IsChecked()) { if(SHexStrToNum(pStr,&BeginAddress)) m_BeginAddress=BeginAddress; } else { if(SDecStrToNum(pStr,&BeginAddress)) m_BeginAddress=BeginAddress; } m_BeginAddressEdit->SetWindowText(WSTR("")); return true; } bool CAddTypeViewerDlg::OnLockRadioBoxEvent(IN WISP_MSG* pMsg) { WCHAR Buffer[30]; m_BeginAddressEdit->EnableWindow(true); m_HexRadioBox->EnableWindow(true); m_DecimalRadioBox->EnableWindow(true); m_BeginAddressStr->EnableWindow(true); if(m_HexRadioBox->IsChecked()) { TSPrintf(Buffer,WSTR("%X"),m_BeginAddress); } else { TSPrintf(Buffer,WSTR("%d"),m_BeginAddress); } m_BeginAddressEdit->SetWindowText(Buffer); return true; } bool CAddTypeViewerDlg::OnOKButtonEvent(IN WISP_MSG* pMsg) { HANDLE hItem; NUM_PTR NumPtr; DWORD TypeInfo=0; hItem = m_TypeList->GetNextItem(NULL,WISP_WLIS_SELECTED); if(m_FloatRadioBox->IsChecked()) { TypeInfo=1; } if(hItem) { NumPtr = m_TypeList->GetItemData(hItem,0); } PostCloseMsg(); return true; } bool CAddTypeViewerDlg::OnCancelButtonEvent(IN WISP_MSG* pMsg) { PostCloseMsg(); return true; } bool CAddTypeViewerDlg::CreateForm(CWispBaseWnd* pParentWnd,UINT ShowMode,UINT BeginAddr) { m_BeginAddress=BeginAddr; return CWispForm::CreateForm(pParentWnd,ShowMode); } void CAddTypeViewerDlg::InitTypeList() { HANDLE hSubItem; DWORD SymbolCount; PSDTYPE_INFILE* pTypeList; CSDSModule* pSDSModule; PSDUDTTYPE pUdtItem; DWORD i,index,NameLen; if(m_CurrentSymbol==NULL) return; pSDSModule = m_CurrentSymbol; m_TypeList->ClearChildItem(); pTypeList = pSDSModule->GetSymbolList(&SymbolCount); for(i = 1; i < SymbolCount; i++) { if(pTypeList[i]->Type!=SD_CLASS) continue; index=0; pUdtItem = (PSDUDTTYPE)&pTypeList[i][1]; NameLen = TStrLen(pTypeList[i]->uName.Name); hSubItem = m_TypeList->InsertItemA(pTypeList[i]->uName.Name,NULL,0,m_IconDIBList[index]); m_TypeList->SetItemData(hSubItem,0,i); } index = 54; for(i = 1; i < SymbolCount; i++) { if(pTypeList[i]->Type!=SD_STRUCT) continue; pUdtItem = (PSDUDTTYPE)&pTypeList[i][1]; hSubItem = m_TypeList->InsertItemA(pTypeList[i]->uName.Name,NULL,0,m_IconDIBList[index]); m_TypeList->SetItemData(hSubItem,0,i); } index = 72; for(i = 1; i < SymbolCount; i++) { if(pTypeList[i]->Type!=SD_UNION) continue; pUdtItem = (PSDUDTTYPE)&pTypeList[i][1]; hSubItem = m_TypeList->InsertItemA(pTypeList[i]->uName.Name,NULL,0,m_IconDIBList[index]); m_TypeList->SetItemData(hSubItem,0,i); } } bool CAddTypeViewerDlg::OnTypeListCmd(IN WISP_MSG* pMsg) { switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_SELECTED: m_OKButton->EnableWindow(true); break; } return true; } ================================================ FILE: Project/Syser/Source/AddTypeViewerDlg.h ================================================ #ifndef _ADDTYPEVIEWERDLG_H_ #define _ADDTYPEVIEWERDLG_H_ class CAddTypeViewerDlg:public CWispForm { public: CAddTypeViewerDlg(); ~CAddTypeViewerDlg(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnTypeListCmd) DECLARE_WISP_MSG_EVENT(OnOKButtonEvent) DECLARE_WISP_MSG_EVENT(OnCancelButtonEvent) DECLARE_WISP_MSG_EVENT(OnLockRadioBoxEvent) DECLARE_WISP_MSG_EVENT(OnFloatRadioBoxEvent) bool CreateForm(CWispBaseWnd* pParentWnd,UINT ShowMode,UINT BeginAddr); public: void InitTypeList(); CSDSModule* m_CurrentSymbol; CWispStaticStr* m_DesciptionStr; CWispStaticStr* m_BeginAddressStr; CWispList* m_TypeList; CWispButton* m_OKButton; CWispButton* m_CancelButton; CWispRadioBox* m_FloatRadioBox; CWispRadioBox* m_LockRadioBox; CWispRadioBox* m_DecimalRadioBox; CWispRadioBox* m_HexRadioBox; CWispStaticStr* m_ValueStr; CWispEdit* m_BeginAddressEdit; CWispDIBList m_IconDIBList; DWORD m_BeginAddress; }; #endif //_ADDTYPEVIEWERDLG_H_ ================================================ FILE: Project/Syser/Source/Analyzer.cpp ================================================ #include "StdAfx.h" #include "Analyzer.h" void CFuncCodeMaker::MakeFirst(STFuncCode*pFuncCode) { InstrCount = 0; dbCheckSum = 0; dwVal = dwCheckSum = 0; ddVal = ddCheckSum = 0; } void CFuncCodeMaker::MakeNext(BYTE*CodeBuffer,STFuncCode*pFuncCode) { //ȡֽۼӺ dbCheckSum+=*CodeBuffer; if(InstrCount%2) {//1,3 dwVal+=*CodeBuffer<<8; dwCheckSum+=dwVal; if(InstrCount%3) {//1 ddVal += *CodeBuffer<<8; } else {//3 ddVal += *CodeBuffer<<24; ddCheckSum += ddVal; } } else {//0,2 dwVal=*CodeBuffer; if(InstrCount%4) {//2 ddVal += *CodeBuffer<<16; } else {//0 ddVal = *CodeBuffer; } } InstrCount++; } void CFuncCodeMaker::MakeEnd(STFuncCode*pFuncCode,int Size) { pFuncCode->FuncSize = (WORD)Size; pFuncCode->InstrCount = InstrCount; pFuncCode->dbCheckSum = dbCheckSum; pFuncCode->dwCheckSum = dwCheckSum; pFuncCode->ddCheckSum = ddCheckSum; } void CFuncCodeMaker::Make(BYTE*CodeBuffer,int Size,STFuncCode*pFuncCode) { CFuncCodeMaker Maker; int Off; Off = 0; Maker.MakeFirst(pFuncCode); while(Offm_bLibFunc = false; Iter->m_CmtEnd = Iter->m_End = Iter->m_Start = m_PEFile.m_ExportFunc[i].Address; nMaxFuncCount=MaxFuncCount; AnalyzerFunction(&(*Iter),0,nMaxFuncCount); } return true; } bool CAnalyzer::AnalyzerFromEntryPoint(int Deep,int MaxFuncCount) { TFuncMap::IT Iter; Iter = m_FuncMap.InsertUnique(m_PEFile.m_EntryPoint); if(Iter==m_FuncMap.End()) return true; Iter->m_bLibFunc = false; Iter->m_CmtEnd = Iter->m_End = Iter->m_Start = m_PEFile.m_EntryPoint; m_AnalyzerDeep = Deep; AnalyzerFunction(&(*Iter),0,MaxFuncCount); return true; } bool CAnalyzer::Analyzer(ULPOS Address,int Deep,int MaxFuncCount) { TFuncMap::IT Iter; Iter = m_FuncMap.InsertUnique(Address); Iter->m_bLibFunc = false; Iter->m_CmtEnd = Iter->m_End = Iter->m_Start = Address; m_AnalyzerDeep = Deep; AnalyzerFunction(&(*Iter),0,MaxFuncCount); return true; } bool CAnalyzer::AnalyzerFunction(CFunction*pFun,int Deep,int&CountLeft) { bool bRetExist; WCHAR wszBuffer[256]; ULPOS Address,MaxJmpAddr,DesAddr; DWORD Length,CodeLen; BYTE Buffer[64],OpCode; Address = pFun->m_Start; STFuncCode FuncCode; CFuncCodeMaker CodeMake; if(CountLeft<=0 || Deep>=m_AnalyzerDeep) return false; CodeMake.MakeFirst(&FuncCode); MaxJmpAddr = 0; bRetExist = false; while(Address < m_pImageFile->m_ImageHighBase) { Length = m_pImageFile->ReadMemory(Address,Buffer,MAX_INSTR_LEN); if(Length==0) break; OpCode = *Buffer; CodeLen=CInstrSym::InstrLen(Buffer,Length); MIN_LIMIT(CodeLen,1); if(bRetExist==false && (OpCode==0xC3 || OpCode==0xC2)) bRetExist = true; if(Address == pFun->m_Start && OpCode==0xE9) { pFun->m_CmtEnd = Address; pFun->m_End = Address+CodeLen; ULPOS FuncAddr = Address+GET_DWORD(Buffer,1)+CodeLen; TFuncMap::IT FuncIt = m_FuncMap.InsertUnique(FuncAddr); if(FuncIt==m_FuncMap.End()) { FuncIt = m_FuncMap.Find(FuncAddr); if(FuncIt==m_FuncMap.End()) return false; } else { FuncIt->m_bLibFunc = false; FuncIt->m_CmtEnd = FuncIt->m_End = FuncIt->m_Start = FuncAddr; if(AnalyzerFunction(&(*FuncIt),Deep+1,CountLeft)==false) return false; } pFun->m_ChildFunc.InsertUnique(Address - pFun->m_Start,&(*FuncIt)); break; } CodeMake.MakeNext(Buffer,&FuncCode); MAX_LIMIT(CodeLen,Length); if(Deepm_bLibFunc = false; FuncIt->m_CmtEnd = FuncIt->m_End = FuncIt->m_Start = FuncAddr; if(AnalyzerFunction(&(*FuncIt),Deep+1,CountLeft)==false) return false; } pFun->m_ChildFunc.InsertUnique(Address - pFun->m_Start,&(*FuncIt)); } } if(OpCode==0xEB || (OpCode>=0x70 && OpCode<=0x7f)) { DesAddr = Address+(char)Buffer[1]+2; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } else if(OpCode==0x0F && (Buffer[1]>=0x80 && Buffer[1]<=0x8F)) { DesAddr = Address+(int)GET_DWORD(Buffer,2)+6; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } if(Address>=MaxJmpAddr) { if( OpCode==0xCC || OpCode==0xC3 || OpCode==0xC2 || ((OpCode==0xE9 && (int)GET_DWORD(Buffer,1) < 0) || (OpCode==0xEB && (char)GET_BYTE(Buffer,1) < 0) && bRetExist) || (OpCode==0xFF && GET_BYTE(Buffer,1)==0x25 ) ) { pFun->m_CmtEnd = Address; pFun->m_End = Address+CodeLen; break; } } Address+=CodeLen; } CodeMake.MakeEnd(&FuncCode,pFun->m_End-pFun->m_Start); CFuncDescrMap::IT DescrIter = m_FuncDescrMap.Find(FuncCode); if(DescrIter!=m_FuncDescrMap.End()) { TStrCpy(wszBuffer,(char*)DescrIter->Name); pFun->m_Name = wszBuffer; pFun->m_bLibFunc = true; } //else if(pFun->m_Name.IsEmpty()) // pFun->m_Name.Format(WSTR("Func%08X"),pFun->m_Start); CountLeft--; return true; } int CAnalyzer::GetFuncSize(BYTE*CodeBuff,int Size) { bool bRetExist; ULPOS Address,MaxJmpAddr,DesAddr; int CodeLen; BYTE OpCode,*Buffer; Address = 0; MaxJmpAddr = 0; bRetExist = false; while(Address < (ULPOS)Size) { Buffer = &CodeBuff[Address]; OpCode =*Buffer; CodeLen = CInstrSym::InstrLen(Buffer,Size-Address); MIN_LIMIT(CodeLen,1); if(bRetExist==false && (OpCode==0xC3 || OpCode==0xC2)) bRetExist = true; if(Address==0 && OpCode==0xE9) return Address+CodeLen; if(OpCode==0xEB || (OpCode>=0x70 && OpCode<=0x7f)) { DesAddr = Address+(char)Buffer[1]+2; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } else if(OpCode==0x0F && (Buffer[1]>=0x80 && Buffer[1]<=0x8F)) { DesAddr = Address+(int)GET_DWORD(Buffer,2)+6; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } if(Address>=MaxJmpAddr) { if( OpCode==0xCC || OpCode==0xC3 || OpCode==0xC2 || (OpCode==0xE9 && (int)GET_DWORD(Buffer,1) < 0) || (OpCode==0xEB && (char)GET_BYTE(Buffer,1) < 0) && bRetExist) { return Address+CodeLen; } } Address+=CodeLen; } return Size; } void CAnalyzer::MakeFuncDescr(ULPOS Start,ULSIZE Size,STFuncCode*pFuncCode) { if(m_CodeBuffer.Size()< (int)Size+MAX_INSTR_LEN) m_CodeBuffer.Resize(Size+MAX_INSTR_LEN); Size = ReadMemory(Start,(BYTE*)m_CodeBuffer,Size); m_FuncCodeMaker.Make(m_CodeBuffer,Size,pFuncCode); } PCWSTR CAnalyzer::AnalyzerScan(CLogicStateCAD*pStateCAD) { STStatePathEntry*pResultEntry; m_RecogCodeList.Clear(); m_RecogPathMethodList.Clear(); m_RecogPathAddrList.Clear(); m_ReportInfo.Name.Empty(); pResultEntry = AnalyzerScanPath(m_PEFile.m_EntryPoint,&pStateCAD->m_StateRoot); if(pResultEntry) return pResultEntry->ReportInfo.Name; return NULL; } STStatePathEntry*CAnalyzer::PathFunc(ULPOS BaseAddr,STStatePathEntry*pParentEntry) { bool bRetExist; TStatePathEntrySet::IT PathEntryIter; STStatePathEntry Entry; ULPOS Address,MaxJmpAddr,DesAddr; ULSIZE Length,CodeLen,FuncSize; BYTE Buffer[64],OpCode; int SafeCount; CFuncCodeMaker CodeMake; CodeMake.MakeFirst(&Entry.RecogCode.FuncCode); Address = BaseAddr; SafeCount = 0; FuncSize = 0; MaxJmpAddr = 0; bRetExist = false; while(Address < m_pImageFile->m_ImageHighBase && SafeCount<0x1000) { Length=ReadMemory(Address,Buffer,MAX_INSTR_LEN); if(Length==0) break; OpCode = *Buffer; CodeLen=CInstrSym::InstrLen(Buffer,Length); MIN_LIMIT(CodeLen,1); CodeMake.MakeNext(Buffer,&Entry.RecogCode.FuncCode); if(bRetExist==false && (OpCode==0xC3 || OpCode==0xC2)) bRetExist = true; if(Address==BaseAddr && OpCode==0xE9) { FuncSize+=CodeLen; break; } if(OpCode==0xEB || (OpCode>=0x70 && OpCode<=0x7f)) { DesAddr = Address+(char)Buffer[1]+2; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } else if(OpCode==0x0F && (Buffer[1]>=0x80 && Buffer[1]<=0x8F)) { DesAddr = Address+(int)GET_DWORD(Buffer,2)+6; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } if(Address>=MaxJmpAddr) { if( OpCode==0xCC || OpCode==0xC3 || OpCode==0xC2 || (OpCode==0xE9 && (int)GET_DWORD(Buffer,1) < 0) || (OpCode==0xEB && (char)GET_BYTE(Buffer,1) < 0) && bRetExist) { FuncSize+=CodeLen; break; } } Address+=CodeLen; FuncSize+=CodeLen; SafeCount++; } Entry.RecogCode.CodeType = STRecogCode::FUNCTION; CodeMake.MakeEnd(&Entry.RecogCode.FuncCode,FuncSize); PathEntryIter = pParentEntry->NextEntry.Find(Entry); if(PathEntryIter==pParentEntry->NextEntry.End()) return NULL; return &(*PathEntryIter); } STStatePathEntry* CAnalyzer::PathInitTermTable(ULPOS BaseAddr,ULSIZE Count,ULSIZE Length,STStatePathEntry*pParentEntry) { ULPOS Address; STStatePathEntry*pEntry; for(ULSIZE n=0;nRecogCode.CodeType) { case STRecogCode::FUNCTION: pEntry = PathFunc(BaseAddr,pParentEntry); break; case STRecogCode::IGNORE_ENTRY: if(pParentEntry->NextEntry.Count()) pEntry = &(*pParentEntry->NextEntry.Begin()); break; } if(pEntry == NULL) return NULL; m_RecogCodeList.Append(pEntry->RecogCode); m_RecogPathAddrList.Append(BaseAddr); if(pEntry->ReportInfo.Name.GetLength()) { if(pEntry->ReportInfo.Type == STReportInfo::RI_TYPE_REPORT) { m_ReportInfo = pEntry->ReportInfo; return pEntry; } else { m_ReportInfo = pEntry->ReportInfo; } } pMethod = &pParentEntry->PathMethod; m_RecogPathMethodList.Append(*pMethod); switch(pMethod->Method) { case STPathMethod::OFFSET: Address = pMethod->Offset; break; case STPathMethod::ADDR_PTR: Address = 0; Length = ReadMemory(BaseAddr+pMethod->Offset,&Address,MIN(pMethod->Length,sizeof(Address))); if(Length==0) return NULL; break; case STPathMethod::OFFSET_PTR: Offset = 0; Length = ReadMemory(BaseAddr+pMethod->Offset,&Offset,MIN(pMethod->Length,sizeof(Offset))); if(Length==0) return NULL; Address = BaseAddr + pMethod->Offset + Offset + pMethod->Delta; break; case STPathMethod::CPP_INIT_TERM_TABLE: Address = 0; Length = ReadMemory(BaseAddr+pMethod->Offset,&Address,MIN(pMethod->Length,sizeof(Offset))); if(Length==0) return NULL; Address1 = 0; Length = ReadMemory(BaseAddr+pMethod->Offset+pMethod->Delta,&Address1,MIN(pMethod->Length,sizeof(Offset))); if(Length==0) return NULL; if(AddressLength; pEntry=PathInitTermTable(Address,Count,pMethod->Length,pParentEntry); if(pEntry==NULL) return NULL; break; default: return NULL; break; } if(IsInvalidAddress(Address)) return NULL; return AnalyzerScanPath(Address,pEntry); } ================================================ FILE: Project/Syser/Source/Analyzer.h ================================================ #ifndef _ANALYZER_H_ #define _ANALYZER_H_ #include "LogicStateCAD.h" class CFunction { public: bool m_bLibFunc; CStrW m_Name; ULPOS m_Start; ULPOS m_End; ULPOS m_CmtEnd; TMap m_ChildFunc; }; typedef TMap TChildFuncMap; typedef TMap TFuncMap; #define AS_NO_SYM 0x00000001 class CFuncCodeMaker { public: BYTE dbCheckSum; WORD dwCheckSum,dwVal,InstrCount; DWORD ddCheckSum,ddVal; public: void MakeFirst(STFuncCode*pFuncCode); void MakeNext(BYTE*CodeBuffer,STFuncCode*pFuncCode); void MakeEnd(STFuncCode*pFuncCode,int Size); static void Make(BYTE*CodeBuffer,int Size,STFuncCode*pFuncCode); }; class CAnalyzer { public: CAnalyzer(); ~CAnalyzer(); public: UINT m_Style; CPageMemory m_ImageCache; CImageFile* m_pImageFile; CPEFile m_PEFile; TFuncMap m_FuncMap; int m_AnalyzerDeep; CFuncCodeMaker m_FuncCodeMaker; TArraym_CodeBuffer; CFuncDescrMap m_FuncDescrMap; TList m_RecogPathAddrList; TList m_RecogPathMethodList; TList m_RecogCodeList; STReportInfo m_ReportInfo; public: int ReadMemory(ULPOS Address,void*Buffer,int Size); bool IsInvalidAddress(ULPOS Address); public://X86 PE bool Open(PCSTR FileName); bool Open(DWORD ModuleBase,DWORD ModuleSize=0,RWProc RMFunction=NULL,void*RMParam=NULL); void Close(); bool LoadFDC(PCSTR FileName = NULL); bool AnalyzerFromEntryPoint(int Deep,int MaxFuncCount); bool AnalyzerFromExportFunction(int Deep,int MaxFuncCount); bool Analyzer(ULPOS Address,int Deep,int MaxFuncCount); bool AnalyzerFunction(CFunction*pFun,int Deep,int&CountLeft); static int GetFuncSize(BYTE*CodeBuff,int Size); void MakeFuncDescr(ULPOS Start,ULSIZE Size,STFuncCode*pFuncCode); PCWSTR AnalyzerScan(CLogicStateCAD*pStateCAD); STStatePathEntry*AnalyzerScanPath(ULPOS BaseAddr,STStatePathEntry*pParentEntry); STStatePathEntry*PathFunc(ULPOS BaseAddr,STStatePathEntry*pParentEntry); STStatePathEntry*PathInitTermTable(ULPOS BaseAddr,ULSIZE Count,ULSIZE Length,STStatePathEntry*pParentEntry); }; #endif ================================================ FILE: Project/Syser/Source/BpintCmd.cpp ================================================ #include "stdafx.h" #include "BpintCmd.h" // __declspec(naked) void BpintEntryPointer() // { // __asm{ // // ////////// 0 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 1 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 2 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 3 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 4 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 5 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 6 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // ////////// 7 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// 8 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// 9 /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// a /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// b /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// c /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// d /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// e /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // // ////////// f /////////// // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // // _emit(0x6a) // _emit(0x00) // _emit(0xe9) // _emit(0) // _emit(0) // _emit(0) // _emit(0) // } // } // void BpintBreakEntry() // { // // } void InitBpintCmdEntryPointer() { SyserClrCR0WP(); DWORD EntryPointer = (DWORD)SyserBpintEntryPointer; DWORD dwPointer=(DWORD)SyserBpintBreakEntry; for(int i = 0; i < 0x100; i++,EntryPointer=EntryPointer+7) { *(BYTE*)(1+EntryPointer)=(BYTE)i; *(DWORD *)(3+EntryPointer)=dwPointer - EntryPointer - 7; } SyserRestoreCR0(); } ================================================ FILE: Project/Syser/Source/BpintCmd.h ================================================ #ifndef _BPINTCMD_H_ #define _BPINTCMD_H_ #ifdef __cplusplus extern "C" { #endif void SyserBpintEntryPointer(); void SyserBpintBreakEntry(); void InitBpintCmdEntryPointer(); #ifdef __cplusplus }; // extern "C" #endif #endif /* _BPINTCMD_H_ */ ================================================ FILE: Project/Syser/Source/BreakPointForm.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "CodeBPEdit.h" #include "DataBPEdit.h" enum CBreakPointForm::WISP_FORM_ID { CMD_ID_BT_EDIT = WISP_ID_USER_START, CMD_ID_BT_NEW, CMD_ID_BT_REMOVE, CMD_ID_BT_REMOVE_ALL, CMD_ID_BT_ENABLE_ALL, CMD_ID_BT_DISABLE_ALL, CMD_ID_BP_TAB, CMD_ID_BP_CODE_LIST, CMD_ID_BP_DATA_LIST, }; WISP_FORM_RES_ITEM CBreakPointForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,450,300}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Breakpoint"), "\\SyserIcon\\Syser.ico", }, { WISP_CTRL_TAB, {5,5,350,260}, CMD_ID_BP_TAB, WISP_WS_THIN_BORDER, NULL, }, { WISP_CTRL_STATIC_DIB, {380,30,70,20}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:1" }, { WISP_CTRL_BUTTON, {362,90,70,20}, CMD_ID_BT_EDIT, WISP_BS_NORMAL, WSTR("Edit"), NULL, WSTR("Edit break point") }, { WISP_CTRL_BUTTON, {362,120,70,20}, CMD_ID_BT_NEW, WISP_BS_NORMAL, WSTR("New"), NULL, WSTR("Insert New break point") }, { WISP_CTRL_BUTTON, {362,150,70,20}, CMD_ID_BT_REMOVE, WISP_BS_NORMAL, WSTR("Remove"), NULL, WSTR("Remove break point") }, { WISP_CTRL_BUTTON, {362,180,70,20}, CMD_ID_BT_REMOVE_ALL, WISP_BS_NORMAL, WSTR("Remove All"), NULL, WSTR("Remove All break point") }, { WISP_CTRL_BUTTON, {362,210,70,20}, CMD_ID_BT_ENABLE_ALL, WISP_BS_NORMAL, WSTR("Enable All"), NULL, WSTR("Enable all break point") }, { WISP_CTRL_BUTTON, {362,240,70,20}, CMD_ID_BT_DISABLE_ALL, WISP_BS_NORMAL, WSTR("Disable All"), NULL, WSTR("Disable all break point") }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CBreakPointForm) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CBreakPointForm) WISP_MSG_CMD_MAP(CMD_ID_BP_TAB,OnBPListChange) WISP_MSG_CMD_MAP(CMD_ID_BP_CODE_LIST,OnBPListItemSelect) WISP_MSG_CMD_MAP(CMD_ID_BP_DATA_LIST,OnBPListItemSelect) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CBreakPointForm) WISP_MSG_EVENT_MAP(CMD_ID_BT_EDIT,OnEdit) WISP_MSG_EVENT_MAP(CMD_ID_BT_NEW,OnNew) WISP_MSG_EVENT_MAP(CMD_ID_BT_REMOVE,OnRemove) WISP_MSG_EVENT_MAP(CMD_ID_BT_REMOVE_ALL,OnRemoveAll) WISP_MSG_EVENT_MAP(CMD_ID_BT_ENABLE_ALL,OnEnableAll) WISP_MSG_EVENT_MAP(CMD_ID_BT_DISABLE_ALL,OnDisableAll) WISP_MSG_EVENT_MAP_END CBreakPointForm::CBreakPointForm() { m_pFormRes = m_FormRes; } CBreakPointForm::~CBreakPointForm() { } void CBreakPointForm::Popup() { if(IsWindow()) { UpdateContext(); Show(); } else { CreateForm(NULL); } } void CBreakPointForm::UpdateContext() { if(IsVisible()) { RefreshCodeBreakPoint(); RefreshDataBreakPoint(); } } void CBreakPointForm::InitBPList(CWispList*pList) { pList->AddAdvStyle(WISP_WAS_AUTO_DELETE); pList->InsertColumn(WSTR("Name"),100); pList->InsertColumn(WSTR("Owner Process"),120); pList->InsertColumn(WSTR("Condition"),120); } bool CBreakPointForm::OnFormCreate(WISP_MSG*pMsg) { m_pBPTab = (CWispTabWnd*) GetFormItem(CMD_ID_BP_TAB); m_pBTEdit = (CWispButton*) GetFormItem(CMD_ID_BT_EDIT); m_pBTRemove = (CWispButton*) GetFormItem(CMD_ID_BT_REMOVE); m_pBTRemoveAll = (CWispButton*) GetFormItem(CMD_ID_BT_REMOVE_ALL); m_pBTEnableAll = (CWispButton*) GetFormItem(CMD_ID_BT_ENABLE_ALL); m_pBTDisableAll = (CWispButton*) GetFormItem(CMD_ID_BT_DISABLE_ALL); m_pCodeBPList = new CWispList; m_pCodeBPList->Create(NULL,0,0,0,0,m_pBPTab,CMD_ID_BP_CODE_LIST,WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS); m_pCodeBPList->SetOwner(this); m_pBPTab->InsertWnd(WSTR("Code Breakpoint"),m_pCodeBPList); InitBPList(m_pCodeBPList); m_pActiveBPList = m_pCodeBPList; m_pDataBPList = new CWispList; m_pDataBPList->Create(NULL,0,0,0,0,m_pBPTab,CMD_ID_BP_DATA_LIST,WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS); m_pDataBPList->SetOwner(this); m_pBPTab->InsertWnd(WSTR("Data Breakpoint"),m_pDataBPList); InitBPList(m_pDataBPList); RefreshCodeBreakPoint(); RefreshDataBreakPoint(); return true; } int CBreakPointForm::RefreshCodeBreakPoint() { int Count = 0; if(m_pCodeBPList) m_pCodeBPList->ClearChildItem(); if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) { Count=ListCodeBreakPoint(); } UpdateBPListButton(); UpdateClient(); return Count; } int CBreakPointForm::RefreshDataBreakPoint() { int Count = 0; if(m_pDataBPList) m_pDataBPList->ClearChildItem(); if(gpSyser->m_pDebugger) { Count=ListDataBreakPoint(); } UpdateBPListButton(); UpdateClient(); return Count; } void CBreakPointForm::UpdateBPListButton() { bool bEnable = m_pActiveBPList->GetItemCount()>0; m_pBTRemoveAll->EnableWindow(bEnable); m_pBTEnableAll->EnableWindow(bEnable); m_pBTDisableAll->EnableWindow(bEnable); bEnable = m_pActiveBPList->GetNextItem(NULL,WISP_WLIS_SELECTED)!=NULL; m_pBTRemove->EnableWindow(bEnable); m_pBTEdit->EnableWindow(bEnable); Update(); } bool CBreakPointForm::OnEdit(WISP_MSG*pMsg) { HANDLE hItem = m_pActiveBPList->GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; if(m_pActiveBPList == m_pCodeBPList) { CCodeBPEdit CodeBPEditDlg; if(m_pActiveBPList->GetItemData(hItem,1)) CodeBPEditDlg.m_pModuleBP = (MODULE_BP*)m_pActiveBPList->GetItemData(hItem); else CodeBPEditDlg.m_pBP = (BREAK_POINT*)m_pActiveBPList->GetItemData(hItem); CodeBPEditDlg.CreateForm(NULL,WISP_SH_MODAL_BLOCK); if(CodeBPEditDlg.GetFormResult() ==WISP_ID_OK) RefreshCodeBreakPoint(); } else { CDataBPEdit DataBPEditDlg; DataBPEditDlg.m_pBP = (BREAK_POINT*)m_pActiveBPList->GetItemData(hItem); DataBPEditDlg.CreateForm(NULL,WISP_SH_MODAL_BLOCK); if(DataBPEditDlg.GetFormResult() ==WISP_ID_OK) RefreshDataBreakPoint(); } return true; } bool CBreakPointForm::OnNew(WISP_MSG*pMsg) { if(m_pActiveBPList == m_pCodeBPList) { CCodeBPEdit CodeBPEditDlg; CodeBPEditDlg.CreateForm(NULL,WISP_SH_MODAL_BLOCK); if(CodeBPEditDlg.GetFormResult() ==WISP_ID_OK) RefreshCodeBreakPoint(); } else { CDataBPEdit DataBPEditDlg; DataBPEditDlg.CreateForm(NULL,WISP_SH_MODAL_BLOCK); if(DataBPEditDlg.GetFormResult() ==WISP_ID_OK) RefreshDataBreakPoint(); } return true; } bool CBreakPointForm::OnRemove(WISP_MSG*pMsg) { HANDLE hItem = m_pActiveBPList->GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; if(m_pActiveBPList==m_pCodeBPList) { if(m_pActiveBPList->GetItemData(hItem,1)) { CModuleBPMap::IT Iter = *(MODULE_BP*)m_pActiveBPList->GetItemData(hItem); gpSyser->m_SyserUI.RemoveCodeBP(Iter.Key()); } else { gpSyser->m_pDebugger->RemoveCodeBP((BREAK_POINT*)m_pActiveBPList->GetItemData(hItem)); } RefreshCodeBreakPoint(); } else { gpSyser->m_pDebugger->RemoveDataBP((BREAK_POINT*)m_pActiveBPList->GetItemData(hItem)); RefreshDataBreakPoint(); } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); return true; } bool CBreakPointForm::OnRemoveAll(WISP_MSG*pMsg) { if(m_pActiveBPList==m_pCodeBPList) { gpSyser->m_pDebugger->RemoveAllCodeBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_SyserUI.m_ModuleBPMap.Clear(); RefreshCodeBreakPoint(); } else { gpSyser->m_pDebugger->RemoveAllDataBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); RefreshDataBreakPoint(); } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); return true; } bool CBreakPointForm::OnEnableAll(WISP_MSG*pMsg) { if(m_pActiveBPList==m_pCodeBPList) { gpSyser->m_pDebugger->EnableAllCodeBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_SyserUI.EnableAllModuleBP(); RefreshCodeBreakPoint(); } else { gpSyser->m_pDebugger->EnableAllDataBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); RefreshDataBreakPoint(); } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); return true; } bool CBreakPointForm::OnDisableAll(WISP_MSG*pMsg) { if(m_pActiveBPList==m_pCodeBPList) { gpSyser->m_pDebugger->DisableAllCodeBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_SyserUI.EnableAllModuleBP(false); RefreshCodeBreakPoint(); } else { gpSyser->m_pDebugger->DisableAllDataBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); RefreshDataBreakPoint(); } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); return true; } bool CBreakPointForm::OnBPListChange(WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_TAB_ACTIVE_CHG) { m_pActiveBPList = (CWispList*) pMsg->Command.Param2; UpdateBPListButton(); } return true; } bool CBreakPointForm::OnBPListItemSelect(WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_SELECTED) { if(m_pBTRemove->IsDisabled()) { m_pBTEdit->EnableWindow(true); m_pBTRemove->EnableWindow(true); } } return true; } void CBreakPointForm::InitBPItem(CWispList*pList,HANDLE hItem,BREAK_POINT*pBP) { WISP_CHAR szBuffer[256]; pList->SetItemData(hItem,0,(NUM_PTR)pBP); pList->SetItemData(hItem,1,0);//BREAK_POINT AnsiToUnicode(pBP->OwnerName,szBuffer,256); pList->SetItemText(hItem,1,szBuffer); AnsiToUnicode(pBP->Condition,szBuffer,256); pList->SetItemText(hItem,2,szBuffer); if(pBP->State == BP_STATE_DISABLE) { pList->SetItemTextColor(hItem,0,SYS_COLOR[SC_GRAY]); pList->SetItemTextColor(hItem,1,SYS_COLOR[SC_GRAY]); pList->SetItemTextColor(hItem,2,SYS_COLOR[SC_GRAY]); } } void CBreakPointForm::InitModuleBPItem(CWispList*pList,HANDLE hItem,MODULE_BP*pBP) { WISP_CHAR szBuffer[256]; pList->SetItemData(hItem,0,(NUM_PTR)pBP); pList->SetItemData(hItem,1,1);//MODULE_BP pList->SetItemText(hItem,1,WSTR("")); AnsiToUnicode(pBP->Condition,szBuffer,256); pList->SetItemText(hItem,2,szBuffer); if(pBP->State == BP_STATE_DISABLE) { pList->SetItemTextColor(hItem,0,SYS_COLOR[SC_GRAY]); pList->SetItemTextColor(hItem,1,SYS_COLOR[SC_GRAY]); pList->SetItemTextColor(hItem,2,SYS_COLOR[SC_GRAY]); } } int CBreakPointForm::ListCodeBreakPoint() { WISP_CHAR szBuffer[256]; HANDLE hItem; int Count = 0; for(CCodeBPMap::IT Iter=gpSyser->m_pDebugger->m_pCodeBPMap->Begin();Iter!=gpSyser->m_pDebugger->m_pCodeBPMap->End();Iter++) { if((Iter->Type&(BP_TYPE_PATCH|BP_TYPE_DEBUG)) || Iter->pModuleBP) continue; if(Iter->Name.Length()) { AnsiToUnicode(Iter->Name,szBuffer,256); } else { uNumToStr(Iter->Address,szBuffer); } hItem = m_pCodeBPList->InsertItem(szBuffer); InitBPItem(m_pCodeBPList,hItem,&(*Iter)); Count++; } for(CModuleBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleBPMap.Begin();Iter.IsExist();Iter++) { AnsiToUnicode(Iter->Name,szBuffer,256); hItem = m_pCodeBPList->InsertItem(szBuffer); InitModuleBPItem(m_pCodeBPList,hItem,&(*Iter)); } return Count; } int CBreakPointForm::ListDataBreakPoint() { WISP_CHAR szBuffer[256]; HANDLE hItem; int Count = 0; for(CDataBPList::IT Iter=gpSyser->m_pDebugger->m_pDataBPList->Begin();Iter!=gpSyser->m_pDebugger->m_pDataBPList->End();Iter++) { if((Iter->Type&(BP_TYPE_PATCH|BP_TYPE_DEBUG))) continue; if(Iter->Name.Length()) { AnsiToUnicode(Iter->Name,szBuffer,256); } else { uNumToStr(Iter->Address,szBuffer); } hItem = m_pDataBPList->InsertItem(szBuffer); InitBPItem(m_pDataBPList,hItem,&(*Iter)); Count++; } return Count; } ================================================ FILE: Project/Syser/Source/BreakPointForm.h ================================================ #ifndef _BREAK_POINT_FORM_H_ #define _BREAK_POINT_FORM_H_ class CBreakPointForm : public CWispForm { public: CBreakPointForm(); ~CBreakPointForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: CWispList* m_pCodeBPList; CWispList* m_pDataBPList; CWispList* m_pActiveBPList; CWispTabWnd*m_pBPTab; CWispButton*m_pBTEdit; CWispButton*m_pBTRemove; CWispButton*m_pBTRemoveAll; CWispButton*m_pBTEnableAll; CWispButton*m_pBTDisableAll; void Popup(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEdit) DECLARE_WISP_MSG_EVENT(OnNew) DECLARE_WISP_MSG_EVENT(OnRemove) DECLARE_WISP_MSG_EVENT(OnRemoveAll) DECLARE_WISP_MSG_EVENT(OnEnableAll) DECLARE_WISP_MSG_EVENT(OnDisableAll) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnBPListChange) DECLARE_WISP_MSG_CMD(OnBPListItemSelect); public: int ListCodeBreakPoint(); int ListDataBreakPoint(); int RefreshCodeBreakPoint(); int RefreshDataBreakPoint(); void UpdateBPListButton(); void UpdateContext(); private: void InitBPList(CWispList*pList); void InitBPItem(CWispList*pList,HANDLE hItem,BREAK_POINT*pBP); void InitModuleBPItem(CWispList*pList,HANDLE hItem,MODULE_BP*pBP); }; #endif ================================================ FILE: Project/Syser/Source/BugCheckCode.cpp ================================================ #include "StdAfx.h" #include "BugCheckCode.h" BUGCHECKCODE gBugCheckCode[]= { {0x1,"APC_INDEX_MISMATCH"}, {0x2,"DEVICE_QUEUE_NOT_BUSY"}, {0x3,"INVALID_AFFINITY_SET"}, {0x4,"INVALID_DATA_ACCESS_TRAP"}, {0x5,"INVALID_PROCESS_ATTACH_ATTEMPT"}, {0x6,"INVALID_PROCESS_DETACH_ATTEMPT"}, {0x7,"INVALID_SOFTWARE_INTERRUPT"}, {0x8,"IRQL_NOT_DISPATCH_LEVEL"}, {0x9,"IRQL_NOT_GREATER_OR_EQUAL"}, {0xA,"IRQL_NOT_LESS_OR_EQUAL"}, {0xB,"NO_EXCEPTION_HANDLING_SUPPORT"}, {0xC,"MAXIMUM_WAIT_OBJECTS_EXCEEDED"}, {0xD,"MUTEX_LEVEL_NUMBER_VIOLATION"}, {0xE,"NO_USER_MODE_CONTEXT"}, {0xF,"SPIN_LOCK_ALREADY_OWNED"}, {0x10,"SPIN_LOCK_NOT_OWNED"}, {0x11,"THREAD_NOT_MUTEX_OWNER"}, {0x12,"TRAP_CAUSE_UNKNOWN"}, {0x13,"EMPTY_THREAD_REAPER_LIST"}, {0x14,"CREATE_DELETE_LOCK_NOT_LOCKED"}, {0x15,"LAST_CHANCE_CALLED_FROM_KMODE"}, {0x16,"CID_HANDLE_CREATION"}, {0x17,"CID_HANDLE_DELETION"}, {0x18,"REFERENCE_BY_POINTER"}, {0x19,"BAD_POOL_HEADER"}, {0x1A,"MEMORY_MANAGEMENT"}, {0x1B,"PFN_SHARE_COUNT"}, {0x1C,"PFN_REFERENCE_COUNT"}, {0x1D,"NO_SPIN_LOCK_AVAILABLE"}, {0x1E,"KMODE_EXCEPTION_NOT_HANDLED"}, {0x1F,"SHARED_RESOURCE_CONV_ERROR"}, {0x20,"KERNEL_APC_PENDING_DURING_EXIT"}, {0x21,"QUOTA_UNDERFLOW"}, {0x22,"FILE_SYSTEM"}, {0x23,"FAT_FILE_SYSTEM"}, {0x24,"NTFS_FILE_SYSTEM"}, {0x25,"NPFS_FILE_SYSTEM"}, {0x26,"CDFS_FILE_SYSTEM"}, {0x27,"RDR_FILE_SYSTEM"}, {0x28,"CORRUPT_ACCESS_TOKEN"}, {0x29,"SECURITY_SYSTEM"}, {0x2A,"INCONSISTENT_IRP"}, {0x2B,"PANIC_STACK_SWITCH"}, {0x2C,"PORT_DRIVER_INTERNAL"}, {0x2D,"SCSI_DISK_DRIVER_INTERNAL"}, {0x2E,"DATA_BUS_ERROR"}, {0x2F,"INSTRUCTION_BUS_ERROR"}, {0x30,"SET_OF_INVALID_CONTEXT"}, {0x31,"PHASE0_INITIALIZATION_FAILED"}, {0x32,"PHASE1_INITIALIZATION_FAILED"}, {0x33,"UNEXPECTED_INITIALIZATION_CALL"}, {0x34,"CACHE_MANAGER"}, {0x35,"NO_MORE_IRP_STACK_LOCATIONS"}, {0x36,"DEVICE_REFERENCE_COUNT_NOT_ZERO"}, {0x37,"FLOPPY_INTERNAL_ERROR"}, {0x38,"SERIAL_DRIVER_INTERNAL"}, {0x39,"SYSTEM_EXIT_OWNED_MUTEX"}, {0x3A,"SYSTEM_UNWIND_PREVIOUS_USER"}, {0x3B,"SYSTEM_SERVICE_EXCEPTION"}, {0x3C,"INTERRUPT_UNWIND_ATTEMPTED"}, {0x3D,"INTERRUPT_EXCEPTION_NOT_HANDLED"}, {0x3E,"MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED"}, {0x3F,"NO_MORE_SYSTEM_PTES"}, {0x40,"TARGET_MDL_TOO_SMALL"}, {0x41,"MUST_SUCCEED_POOL_EMPTY"}, {0x42,"ATDISK_DRIVER_INTERNAL"}, {0x43,"NO_SUCH_PARTITION"}, {0x44,"MULTIPLE_IRP_COMPLETE_REQUESTS"}, {0x45,"INSUFFICIENT_SYSTEM_MAP_REGS"}, {0x46,"DEREF_UNKNOWN_LOGON_SESSION"}, {0x47,"REF_UNKNOWN_LOGON_SESSION"}, {0x48,"CANCEL_STATE_IN_COMPLETED_IRP"}, {0x49,"PAGE_FAULT_WITH_INTERRUPTS_OFF"}, {0x4A,"IRQL_GT_ZERO_AT_SYSTEM_SERVICE"}, {0x4B,"STREAMS_INTERNAL_ERROR"}, {0x4C,"FATAL_UNHANDLED_HARD_ERROR"}, {0x4D,"NO_PAGES_AVAILABLE"}, {0x4E,"PFN_LIST_CORRUPT"}, {0x4F,"NDIS_INTERNAL_ERROR"}, {0x50,"PAGE_FAULT_IN_NONPAGED_AREA"}, {0x51,"REGISTRY_ERROR"}, {0x52,"MAILSLOT_FILE_SYSTEM"}, {0x53,"NO_BOOT_DEVICE"}, {0x54,"LM_SERVER_INTERNAL_ERROR"}, {0x55,"DATA_COHERENCY_EXCEPTION"}, {0x56,"INSTRUCTION_COHERENCY_EXCEPTION"}, {0x57,"XNS_INTERNAL_ERROR"}, {0x58,"FTDISK_INTERNAL_ERROR"}, {0x59,"PINBALL_FILE_SYSTEM"}, {0x5A,"CRITICAL_SERVICE_FAILED"}, {0x5B,"SET_ENV_VAR_FAILED"}, {0x5C,"HAL_INITIALIZATION_FAILED"}, {0x5D,"UNSUPPORTED_PROCESSOR"}, {0x5E,"OBJECT_INITIALIZATION_FAILED"}, {0x5F,"SECURITY_INITIALIZATION_FAILED"}, {0x60,"PROCESS_INITIALIZATION_FAILED"}, {0x61,"HAL1_INITIALIZATION_FAILED"}, {0x62,"OBJECT1_INITIALIZATION_FAILED"}, {0x63,"SECURITY1_INITIALIZATION_FAILED"}, {0x64,"SYMBOLIC_INITIALIZATION_FAILED"}, {0x65,"MEMORY1_INITIALIZATION_FAILED"}, {0x66,"CACHE_INITIALIZATION_FAILED"}, {0x67,"CONFIG_INITIALIZATION_FAILED"}, {0x68,"FILE_INITIALIZATION_FAILED"}, {0x69,"IO1_INITIALIZATION_FAILED"}, {0x6A,"LPC_INITIALIZATION_FAILED"}, {0x6B,"PROCESS1_INITIALIZATION_FAILED"}, {0x6C,"REFMON_INITIALIZATION_FAILED"}, {0x6D,"SESSION1_INITIALIZATION_FAILED"}, {0x6E,"SESSION2_INITIALIZATION_FAILED"}, {0x6F,"SESSION3_INITIALIZATION_FAILED"}, {0x70,"SESSION4_INITIALIZATION_FAILED"}, {0x71,"SESSION5_INITIALIZATION_FAILED"}, {0x72,"ASSIGN_DRIVE_LETTERS_FAILED"}, {0x73,"CONFIG_LIST_FAILED"}, {0x74,"BAD_SYSTEM_CONFIG_INFO"}, {0x75,"CANNOT_WRITE_CONFIGURATION"}, {0x76,"PROCESS_HAS_LOCKED_PAGES"}, {0x77,"KERNEL_STACK_INPAGE_ERROR"}, {0x78,"PHASE0_EXCEPTION"}, {0x79,"MISMATCHED_HAL"}, {0x7A,"KERNEL_DATA_INPAGE_ERROR"}, {0x7B,"INACCESSIBLE_BOOT_DEVICE"}, {0x7C,"BUGCODE_NDIS_DRIVER"}, {0x7D,"INSTALL_MORE_MEMORY"}, {0x7E,"SYSTEM_THREAD_EXCEPTION_NOT_HANDLED"}, {0x7F,"UNEXPECTED_KERNEL_MODE_TRAP"}, {0x80,"NMI_HARDWARE_FAILURE"}, {0x81,"SPIN_LOCK_INIT_FAILURE"}, {0x82,"DFS_FILE_SYSTEM"}, {0x85,"SETUP_FAILURE"}, {0x8B,"MBR_CHECKSUM_MISMATCH"}, {0x8E,"KERNEL_MODE_EXCEPTION_NOT_HANDLED"}, {0x8F,"PP0_INITIALIZATION_FAILED"}, {0x90,"PP1_INITIALIZATION_FAILED"}, {0x92,"UP_DRIVER_ON_MP_SYSTEM"}, {0x93,"INVALID_KERNEL_HANDLE"}, {0x94,"KERNEL_STACK_LOCKED_AT_EXIT"}, {0x96,"INVALID_WORK_QUEUE_ITEM"}, {0x97,"BOUND_IMAGE_UNSUPPORTED"}, {0x98,"END_OF_NT_EVALUATION_PERIOD"}, {0x99,"INVALID_REGION_OR_SEGMENT"}, {0x9A,"SYSTEM_LICENSE_VIOLATION"}, {0x9B,"UDFS_FILE_SYSTEM"}, {0x9C,"MACHINE_CHECK_EXCEPTION"}, {0x9E,"USER_MODE_HEALTH_MONITOR"}, {0x9F,"DRIVER_POWER_STATE_FAILURE"}, {0xA0,"INTERNAL_POWER_ERROR"}, {0xA1,"PCI_BUS_DRIVER_INTERNAL"}, {0xA2,"MEMORY_IMAGE_CORRUPT"}, {0xA3,"ACPI_DRIVER_INTERNAL"}, {0xA4,"CNSS_FILE_SYSTEM_FILTER"}, {0xA5,"ACPI_BIOS_ERROR"}, {0xA7,"BAD_EXHANDLE"}, {0xAB,"SESSION_HAS_VALID_POOL_ON_EXIT"}, {0xAC,"HAL_MEMORY_ALLOCATION"}, {0xAD,"VIDEO_DRIVER_DEBUG_REPORT_REQUEST"}, {0xB4,"VIDEO_DRIVER_INIT_FAILURE"}, {0xB8,"ATTEMPTED_SWITCH_FROM_DPC"}, {0xB9,"CHIPSET_DETECTED_ERROR"}, {0xBA,"SESSION_HAS_VALID_VIEWS_ON_EXIT"}, {0xBA,"SESSION_HAS_VALID_VIEWS_ON_EXIT"}, {0xBC,"NETWORK_BOOT_DUPLICATE_ADDRESS"}, {0xBE,"ATTEMPTED_WRITE_TO_READONLY_MEMORY"}, {0xBF,"MUTEX_ALREADY_OWNED"}, {0xC1,"SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION"}, {0xC2,"BAD_POOL_CALLER"}, {0xC4,"DRIVER_VERIFIER_DETECTED_VIOLATION"}, {0xC5,"DRIVER_CORRUPTED_EXPOOL"}, {0xC6,"DRIVER_CAUGHT_MODIFYING_FREED_POOL"}, {0xC7,"TIMER_OR_DPC_INVALID"}, {0xC8,"IRQL_UNEXPECTED_VALUE"}, {0xC9,"DRIVER_VERIFIER_IOMANAGER_VIOLATION "}, {0xCA,"PNP_DETECTED_FATAL_ERROR"}, {0xCB,"DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS"}, {0xCC,"PAGE_FAULT_IN_FREED_SPECIAL_POOL"}, {0xCD,"PAGE_FAULT_BEYOND_END_OF_ALLOCATION"}, {0xCE,"DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS"}, {0xCF,"TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE"}, {0xD0,"DRIVER_CORRUPTED_MMPOOL"}, {0xD1,"DRIVER_IRQL_NOT_LESS_OR_EQUAL"}, {0xD2,"BUGCODE_ID_DRIVER"}, {0xD3,"DRIVER_PORTION_MUST_BE_NONPAGED"}, {0xD4,"SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER"}, {0xD5,"DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL"}, {0xD6,"DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION"}, {0xD7,"DRIVER_UNMAPPING_INVALID_VIEW"}, {0xD8,"DRIVER_USED_EXCESSIVE_PTES"}, {0xD9,"LOCKED_PAGES_TRACKER_CORRUPTION"}, {0xDA,"SYSTEM_PTE_MISUSE"}, {0xDB,"DRIVER_CORRUPTED_SYSPTES"}, {0xDC,"DRIVER_INVALID_STACK_ACCESS"}, {0xDE,"POOL_CORRUPTION_IN_FILE_AREA"}, {0xDF,"IMPERSONATING_WORKER_THREAD"}, {0xE0,"ACPI_BIOS_FATAL_ERROR"}, {0xE1,"WORKER_THREAD_RETURNED_AT_BAD_IRQL"}, {0xE2,"MANUALLY_INITIATED_CRASH"}, {0xE3,"RESOURCE_NOT_OWNED"}, {0xE4,"WORKER_INVALID"}, {0xE6,"DRIVER_VERIFIER_DMA_VIOLATION"}, {0xE7,"INVALID_FLOATING_POINT_STATE"}, {0xE8,"INVALID_CANCEL_OF_FILE_OPEN"}, {0xE9,"ACTIVE_EX_WORKER_THREAD_TERMINATION"}, {0xEA,"THREAD_STUCK_IN_DEVICE_DRIVER"}, {0xEB,"DIRTY_MAPPED_PAGES_CONGESTION"}, {0xEC,"SESSION_HAS_VALID_SPECIAL_POOL_ON_EXIT"}, {0xED,"UNMOUNTABLE_BOOT_VOLUME"}, {0xEF,"CRITICAL_PROCESS_DIED"}, {0xF1,"SCSI_VERIFIER_DETECTED_VIOLATION"}, {0xF3,"DISORDERLY_SHUTDOWN"}, {0xF4,"CRITICAL_OBJECT_TERMINATION"}, {0xF5,"FLTMGR_FILE_SYSTEM"}, {0xF6,"PCI_VERIFIER_DETECTED_VIOLATION"}, {0xF7,"DRIVER_OVERRAN_STACK_BUFFER"}, {0xF8,"RAMDISK_BOOT_INITIALIZATION_FAILED"}, {0xF9,"DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN"}, {0xFA,"HTTP_DRIVER_CORRUPTED"}, {0xFC,"ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY"}, {0xFD,"DIRTY_NOWRITE_PAGES_CONGESTION"}, {0xFE,"BUGCODE_USB_DRIVER"}, {0xFF,"RESERVE_QUEUE_OVERFLOW"}, {0x100,"LOADER_BLOCK_MISMATCH"}, {0x101,"CLOCK_WATCHDOG_TIMEOUT"}, {0x104,"AGP_INVALID_ACCESS"}, {0x105,"AGP_GART_CORRUPTION"}, {0x106,"AGP_ILLEGALLY_REPROGRAMMED"}, {0x108,"THIRD_PARTY_FILE_SYSTEM_FAILURE"}, {0x109,"CRITICAL_STRUCTURE_CORRUPTION"}, {0x10A,"APP_TAGGING_INITIALIZATION_FAILED"}, {0x10C,"FSRTL_EXTRA_CREATE_PARAMETER_VIOLATION"}, {0x10D,"WDF_VIOLATION"}, {0x10E,"VIDEO_MEMORY_MANAGEMENT_INTERNAL"}, {0x10F,"RESOURCE_MANAGER_EXCEPTION_NOT_HANDLED"}, {0x112,"MSRPC_STATE_VIOLATION"}, {0x113,"VIDEO_DXGKRNL_FATAL_ERROR"}, {0x114,"VIDEO_SHADOW_DRIVER_FATAL_ERROR"}, {0x115,"AGP_INTERNAL"}, {0x116,"VIDEO_TDR_ERROR"}, {0x117,"VIDEO_TDR_TIMEOUT_DETECTED"}, {0x119,"VIDEO_SCHEDULER_INTERNAL_ERROR"}, {0x11A,"EM_INITIALIZATION_FAILURE"}, {0x1000007E,"SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M"}, {0x1000007F,"UNEXPECTED_KERNEL_MODE_TRAP_M"}, {0x1000008E,"KERNEL_MODE_EXCEPTION_NOT_HANDLED_M"}, {0x100000EA,"THREAD_STUCK_IN_DEVICE_DRIVER_M"}, {0xC0000218,"STATUS_CANNOT_LOAD_REGISTRY_FILE"}, {0xC000021A,"STATUS_SYSTEM_PROCESS_TERMINATED"}, {0xC0000221,"STATUS_IMAGE_CHECKSUM_MISMATCH"}, {0xDEADDEAD,"MANUALLY_INITIATED_CRASH1"}, {0,NULL }, }; ================================================ FILE: Project/Syser/Source/BugCheckCode.h ================================================ #ifndef _BUGCHECKCODE_H_ #define _BUGCHECKCODE_H_ typedef struct _BUGCHECKCODE { unsigned int BucCheckCode; char* Name; char* Description; }BUGCHECKCODE,*PBUGCHECKCODE; BUGCHECKCODE gBugCheckCode[]; #endif //_BUGCHECKCODE_H_ ================================================ FILE: Project/Syser/Source/CallStack.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "CallStack.h" CCallStack::CCallStack() { m_pCurCallFrame = NULL; m_PrevEBP = 0; } void CCallStack::UpdateContext(ULPOS EBP) { ULSIZE CodeLen; ULPOS Address,FrameAddress; CHAR szSymbol[MAX_SYMBOL_LEN]; FRAME_ENTRY Frame; CDbgModule*pDbgModule; TList::IT Iter; m_pCurCallFrame = NULL; FrameAddress = EBP?EBP:*X86_REG_PTR.pEBP; if(m_PrevEBP == FrameAddress) return; m_PrevEBP = FrameAddress; m_CallFrameList.Clear(); for(int n=0;nm_pDebugger->ReadMemory(FrameAddress,&Frame,sizeof(Frame))!=sizeof(Frame)) break; if(Frame.PrevFrame<=FrameAddress) break; CodeLen=gpSyser->m_SyserUI.m_CodeDoc.IsPrevCodeCallInstr(Frame.CallReturn,szSymbol,&Address); if(CodeLen) { if(*szSymbol==0)//Ҳžģ+ƫʽ { pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule) TSPrintf(szSymbol,"%s+0x%X",(PCSTR)pDbgModule->m_ModuleTitle,Address-pDbgModule->m_ModuleBase); else TSPrintf(szSymbol,"unknown_function"); } Iter=m_CallFrameList.Append(); Iter->FrameAddress = FrameAddress; Iter->CallReturn = Frame.CallReturn; Iter->FuncAddr = Address; Iter->FuncName = szSymbol; } FrameAddress=Frame.PrevFrame; } if(m_CallFrameList.Count()) m_pCurCallFrame = &(*m_CallFrameList.Begin()); } void CCallStack::UpdateContext1(ULPOS EBP) { ULSIZE CodeLen; ULPOS Address,FrameAddress; CHAR szSymbol[MAX_SYMBOL_LEN]; FRAME_ENTRY Frame; CDbgModule*pDbgModule; TList::IT Iter; m_pCurCallFrame = NULL; FrameAddress = EBP?EBP:*X86_REG_PTR.pEBP; if(m_PrevEBP == FrameAddress) return; m_PrevEBP = FrameAddress; m_CallFrameList.Clear(); for(int n=0;nm_pDebugger->ReadMemory(FrameAddress,&Frame,sizeof(Frame))!=sizeof(Frame)) break; CodeLen=gpSyser->m_SyserUI.m_CodeDoc.IsPrevCodeCallInstr(Frame.CallReturn,szSymbol,&Address); if(CodeLen) { if(*szSymbol==0)//Ҳžģ+ƫʽ { pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule) TSPrintf(szSymbol,"%s+0x%X",(PCSTR)pDbgModule->m_ModuleTitle,Address-pDbgModule->m_ModuleBase); else TSPrintf(szSymbol,"unknown_function"); } Iter=m_CallFrameList.Append(); Iter->FrameAddress = FrameAddress; Iter->CallReturn = Frame.CallReturn; Iter->FuncAddr = Address; Iter->FuncName = szSymbol; } } if(m_CallFrameList.Count()) m_pCurCallFrame = &(*m_CallFrameList.Begin()); } ================================================ FILE: Project/Syser/Source/CallStack.h ================================================ #ifndef _CALL_STACK_H_ #define _CALL_STACK_H_ struct FRAME_ENTRY { ULPOS PrevFrame; ULPOS CallReturn; }; struct CALL_FRAME { ULPOS FrameAddress; ULPOS CallReturn; ULPOS FuncAddr; CStrA FuncName; }; #define MAX_CALL_STACK_COUNT 0x100 class CCallStack { public: CCallStack(); TList m_CallFrameList; CALL_FRAME* m_pCurCallFrame; ULPOS m_PrevEBP; void UpdateContext(ULPOS EBP=0); void UpdateContext1(ULPOS EBP=0); }; #endif //_CALL_STACK_WND_ ================================================ FILE: Project/Syser/Source/CallStackWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "CallStackWnd.h" WISP_MSG_MAP_BEGIN(CCallStackWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) CCallStackWnd::CCallStackWnd() { } CCallStackWnd::~CCallStackWnd() { } bool CCallStackWnd::OnCreate(IN WISP_MSG* pMsg) { AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,18)); SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_SelectBKColor = ColorOption.clrSelectedFrame; InsertColumn(WSTR("Call Return"),100); InsertColumn(WSTR("Function"),200); m_Style|=WISP_WLS_VERT_LINE|WISP_WLS_EMPTY_SEL_RECT; return true; } bool CCallStackWnd::OnClose(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } void CCallStackWnd::ItemDBClickNotify(HANDLE hItem,int Col) { ULPOS Address; UpdateFrame(hItem); CALL_FRAME*pCallFrame = (CALL_FRAME*)GetItemData(m_hCurFrameItem); Address = pCallFrame->CallReturn; CSDSModule*pSDSModule = gpSyser->m_SyserUI.GetSDSModule(Address); if(pSDSModule) { gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.SetActiveModule(pSDSModule); SDLINELIST LineList; if(pSDSModule->GetLineFromRva(Address-pSDSModule->m_pCurDbgModule->m_ModuleBase,&LineList)) { gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); if(gpSyser->m_MainFrame.m_SourceDebugFrameWnd.ShowSourceFile(pSDSModule,(*LineList[0])->FileID,(*LineList[0])->LineNumber)) return; } } gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SYSTEM_EXPLORER_VIEW); CENTER_VIEW_CODE(Address); } void CCallStackWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("Call Stack"),0,0,400,200,NULL,CMD_ID_CALL_STACK,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); Center(); UpdateContext(); } } void CCallStackWnd::UpdateContext() { WCHAR szBuffer[128]; HANDLE hItem; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false || IsVisible()==false) return; m_hCurFrameItem = NULL; ClearChildItem(); for(TList::IT Iter=gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.Begin(); Iter!=gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.End();Iter++) { TSPrintf(szBuffer,WSTR(" %08X"),Iter->CallReturn); hItem = InsertItem(szBuffer); SetItemTextA(hItem,1,Iter->FuncName); SetItemData(hItem,0,(NUM_PTR)&(*Iter)); if(gpSyser->m_SyserUI.m_CallStack.m_pCurCallFrame ==&(*Iter)) UpdateFrame(hItem); } } void CCallStackWnd::UpdateFrame(HANDLE hItem) { CALL_FRAME*pCallFrame; WCHAR szBuffer[128]; if(hItem == m_hCurFrameItem) return; if(m_hCurFrameItem) { SetItemTextColor(m_hCurFrameItem,-1,ColorOption.clrText); pCallFrame = (CALL_FRAME*)GetItemData(m_hCurFrameItem); TSPrintf(szBuffer,WSTR(" %08X"),pCallFrame->CallReturn); SetItemText(m_hCurFrameItem,0,szBuffer); } m_hCurFrameItem = hItem; SetItemTextColor(m_hCurFrameItem,-1,ColorOption.clrSpeicalText); pCallFrame = (CALL_FRAME*)GetItemData(m_hCurFrameItem); TSPrintf(szBuffer,WSTR("->%08X"),pCallFrame->CallReturn); SetItemText(hItem,0,szBuffer); } ================================================ FILE: Project/Syser/Source/CallStackWnd.h ================================================ #ifndef _CALL_STACK_WND_ #define _CALL_STACK_WND_ class CCallStackWnd : public CWispList { public: CCallStackWnd(); ~CCallStackWnd(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) void ItemDBClickNotify(HANDLE hItem,int Col); void Popup(); void UpdateContext(); HANDLE m_hCurFrameItem; void UpdateFrame(HANDLE hItem); }; #endif //_CALL_STACK_WND_ ================================================ FILE: Project/Syser/Source/CodeBPEdit.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "CodeBPEdit.h" enum CCodeBPEdit::WISP_FORM_ID { CMD_ID_EDIT_ADDRESS = WISP_ID_USER_START, CMD_ID_EDIT_NAME, CMD_ID_CHECK_ENABLE, CMD_ID_EDIT_CONDITION, CMD_ID_EDIT_DO_COMMAND, }; WISP_FORM_RES_ITEM CCodeBPEdit::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,385,280}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Code break point") }, { WISP_CTRL_STATIC_GROUP, {10,10,325,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Address") }, { WISP_CTRL_STATIC_DIB, {20,25,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:243" }, { WISP_CTRL_EDIT, {40,25,285,16}, CMD_ID_EDIT_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("Address of break point") }, { WISP_CTRL_STATIC_GROUP, {10,60,325,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Name") }, { WISP_CTRL_STATIC_DIB, {20,75,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:10" }, { WISP_CTRL_EDIT, {40,75,285,16}, CMD_ID_EDIT_NAME, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("Name of break point (if needed)") }, { WISP_CTRL_STATIC_GROUP, {10,110,325,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Condition"), }, { WISP_CTRL_STATIC_DIB, {20,125,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:29" }, { WISP_CTRL_EDIT, {40,125,285,16}, CMD_ID_EDIT_CONDITION, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("break condition when break point touched") }, { WISP_CTRL_STATIC_GROUP, {10,160,325,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Do Command (Use ; to delimit command lines)"), }, { WISP_CTRL_STATIC_DIB, {20,175,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:63" }, { WISP_CTRL_EDIT, {40,175,285,16}, CMD_ID_EDIT_DO_COMMAND, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("Do command when break point touched") }, { WISP_CTRL_CHECK_BOX, {20,210,60,20}, CMD_ID_CHECK_ENABLE, WISP_CBS_NORMAL, WSTR("Enabled"), NULL, WSTR("Is break point enabled") }, { WISP_CTRL_BUTTON, {275,210,55,20}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), NULL, WSTR("Save modify setting") }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CCodeBPEdit) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CCodeBPEdit) WISP_MSG_CMD_MAP(CMD_ID_EDIT_ADDRESS,OnAddressChg) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END CCodeBPEdit::CCodeBPEdit(void) { m_pFormRes = m_FormRes; m_pModuleBP = NULL; m_pBP = NULL; } CCodeBPEdit::~CCodeBPEdit(void) { } bool CCodeBPEdit::OnFormCreate(IN WISP_MSG*pMsg) { WISP_CHAR szBuffer[256]; m_pNameEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_NAME); m_pAddrEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_ADDRESS); m_pConditionEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_CONDITION); m_pDoCmdEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_DO_COMMAND); m_pEnableChkBox = (CWispCheckBox*)GetFormItem(CMD_ID_CHECK_ENABLE); m_bEnable = true; if(m_pBP) { uNumToStr(m_pBP->Address,szBuffer); m_pAddrEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pBP->Name,szBuffer,256); m_pNameEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pBP->Condition,szBuffer,256); m_pConditionEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pBP->DoCmd,szBuffer,256); m_pDoCmdEdit->SetWindowText(szBuffer); m_bEnable = m_pBP->State!=BP_STATE_DISABLE; } else if(m_pModuleBP) { CModuleBPMap::IT Iter = *m_pModuleBP; uNumToStr(Iter.Key(),szBuffer); m_pAddrEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pModuleBP->Name,szBuffer,256); m_pNameEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pModuleBP->Condition,szBuffer,256); m_pConditionEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pModuleBP->DoCmd,szBuffer,256); m_pDoCmdEdit->SetWindowText(szBuffer); m_bEnable = m_pModuleBP->State!=BP_STATE_DISABLE; } m_pEnableChkBox->Check(m_bEnable); return true; } bool CCodeBPEdit::OnOK(IN WISP_MSG*pMsg) { ULPOS ConditionValue; CHAR szBuffer[256]; if(pMsg->Command.CmdMsg!=WISP_CMD_BT_UP) return true; BREAK_POINT BreakPoint; if(CALCEXP(m_pAddrEdit->m_WndText,&BreakPoint.Address)==false) { gpCurWisp->MsgBox(WSTR("Invalid Address !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } #ifdef CODE_OS_NT_DRV if(BreakPoint.Address >= gpSyser->m_SysInfo.m_SyserBase && BreakPoint.Address < gpSyser->m_SysInfo.m_SyserHighBase) { gpCurWisp->MsgBox(WSTR("Cann't set breakpoint in Syser !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } #endif UnicodeToAnsi(m_pNameEdit->m_WndText,szBuffer,256); BreakPoint.Name = szBuffer; if(BreakPoint.Name.IsEmpty()) BreakPoint.Name.Format("%08X",BreakPoint.Address); if(CALCEXP(m_pConditionEdit->m_WndText,&ConditionValue)==false) { gpCurWisp->MsgBox(WSTR("Invalid Condition !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } UnicodeToAnsi(m_pConditionEdit->m_WndText,szBuffer,256); BreakPoint.Condition = szBuffer; UnicodeToAnsi(m_pDoCmdEdit->m_WndText,szBuffer,256); BreakPoint.DoCmd = szBuffer; m_bEnable = m_pEnableChkBox->IsChecked(); BreakPoint.State = m_bEnable?BP_STATE_ENABLE:BP_STATE_DISABLE; if(m_pBP) { if(BreakPoint.Address==m_pBP->Address && BreakPoint.State==m_pBP->State) { m_pBP->Name = BreakPoint.Name; m_pBP->Condition = BreakPoint.Condition; m_pBP->DoCmd = BreakPoint.DoCmd; return true; } if(gpSyser->m_SyserUI.RemoveCodeBP(m_pBP->Address)==false) goto ErrorExit; } else if(m_pModuleBP) { CModuleBPMap::IT Iter = *m_pModuleBP; if(BreakPoint.Address==Iter.Key() && BreakPoint.State==m_pModuleBP->State) { m_pModuleBP->Name = BreakPoint.Name; m_pModuleBP->Condition = BreakPoint.Condition; m_pModuleBP->DoCmd = BreakPoint.DoCmd; return true; } if(gpSyser->m_SyserUI.RemoveCodeBP(Iter.Key())==false) goto ErrorExit; } if(gpSyser->m_SyserUI.InsertCodeBP(BreakPoint.Address,BreakPoint.Name,BreakPoint.Condition,BreakPoint.DoCmd)==false) goto ErrorExit; UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); return true; ErrorExit: gpCurWisp->MsgBox(WSTR("Fail to insert breakpoint !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } bool CCodeBPEdit::OnAddressChg(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_EN_CHANGED) { m_pNameEdit->SetWindowText(m_pAddrEdit->m_WndText); } return true; } ================================================ FILE: Project/Syser/Source/CodeBPEdit.h ================================================ #ifndef _CODE_BP_EDIT_H_ #define _CODE_BP_EDIT_H_ class CCodeBPEdit : public CWispForm { public: CCodeBPEdit(void); ~CCodeBPEdit(void); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnAddressChg); DECLARE_WISP_MSG_CMD(OnOK) BREAK_POINT*m_pBP; MODULE_BP* m_pModuleBP; CWispEdit* m_pNameEdit; CWispEdit* m_pAddrEdit; CWispEdit* m_pConditionEdit; CWispEdit* m_pDoCmdEdit; CWispCheckBox*m_pEnableChkBox; bool m_bEnable; }; #endif ================================================ FILE: Project/Syser/Source/CodeView.cpp ================================================ #include "StdAfx.h" #include "CodeView.h" #include "StringReference.h" #ifdef _SYSER_ #include "Syser.h" #endif WISP_MENU_RES_ITEM CodeViewModeMenu[]= { {WSTR("Symbol Switch Tab"), EVENT_ID_TOGGLE_SYMBOL, 0,WISP_MIS_CHECKBOX}, {WSTR("Full Symbol Ctrl+Tab"), EVENT_ID_TOGGLE_FULL_SYMBOL,0,WISP_MIS_CHECKBOX}, WISP_MENU_RES_SEPARATOR, {WSTR("Address Mode"), EVENT_ID_ADDRESS_MODE_HEX, 0,WISP_MIS_CHECKBOX}, {WSTR("Offset Mode"), EVENT_ID_OFFSET_MODE_HEX, 0,WISP_MIS_CHECKBOX}, {WSTR("Relative to EIP"), EVENT_ID_RELATIVE_TO_EIP, 0,WISP_MIS_CHECKBOX}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM EIPFollowModeMenu[]= { {WSTR("Automatic"), EVENT_ID_FM_AUTOMATIC, 0,WISP_MIS_CHECKBOX}, {WSTR("System Explorer"), EVENT_ID_FM_SYSTEM_EXPLORER, 0,WISP_MIS_CHECKBOX}, {WSTR("Source Code Explorer"), EVENT_ID_FM_SOURCE_CODE_EXPLORER, 0,WISP_MIS_CHECKBOX}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM CodeViewOperationMenu[]= { {WSTR("Insert/Remove Breakpoint F9"), EVENT_ID_TOGGLE_BP, 15*16+3}, {WSTR("Enable/Disable Breakpoint"), EVENT_ID_TOGGLE_BP_STATE, 15*16+4}, {WSTR("Toggle BookMark Ctrl+K"), EVENT_ID_BOOKMARK_TOGGLE, 13*16}, {WSTR("Save Position Shift+Enter"),EVENT_ID_SAVE_POS, 16*1+8}, //{WSTR("Identify standard C(++) Library Function"), EVENT_ID_ANALYZE_FROM_ADDRESS, 15*16+6}, {WSTR("Go To Here F7"), EVENT_ID_GOTO, 16*16+13}, WISP_MENU_RES_SEPARATOR, {WSTR("Search Transfer Reference"), EVENT_ID_TRANSFER_REFERENCE, 17*16+8}, {WSTR("Search Operand Reference"), EVENT_ID_OPERAND_REFERENCE, 17*16+9}, WISP_MENU_RES_SEPARATOR, {WSTR("Code View Mode"),0,61,WISP_MIS_POPUP, CodeViewModeMenu}, {WSTR("EIP Follow Mode"),0,16,WISP_MIS_POPUP, EIPFollowModeMenu}, {WSTR("Copy"), WISP_ID_COPY, 35}, {WSTR("Edit Code"), EVENT_ID_CODEVIEW_EDIT_CODE, 126}, {WSTR("Edit Comment"), EVENT_ID_CODEVIEW_EDIT_COMMENT, 9*16+3}, {WSTR("String Reference"), EVENT_ID_STRING_REFERENCE, 9*16+3}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CCodeView) WISP_MSG_MAP(WISP_WM_PRECREATE,OnPrecreate) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_SCROLL_EVENT,OnScrollEvent) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_CHAR,OnChar) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_CMD_MAP_BEGIN(CCodeView) WISP_MSG_CMD_MAP(WISP_ID_VSLIDE,OnCmdVSlide); WISP_MSG_CMD_MAP(EVENT_ID_STRING_REFERENCE_WISPLIST,OnCmdStringGoto); WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CCodeView) WISP_MSG_EVENT_MAP(WISP_ID_COPY,OnEventCopy) WISP_MSG_EVENT_MAP(EVENT_ID_TOGGLE_BP,OnEventToggleBreakPoint) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_FM_AUTOMATIC, OnEventFMAutomiatic) WISP_MSG_EVENT_MAP(EVENT_ID_FM_SYSTEM_EXPLORER, OnEventFMSystemExplorer) WISP_MSG_EVENT_MAP(EVENT_ID_FM_SOURCE_CODE_EXPLORER,OnEventFMSourceCodeExplorer) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_TOGGLE_SYMBOL, OnEventToggleSymbol) WISP_MSG_EVENT_MAP(EVENT_ID_TOGGLE_FULL_SYMBOL, OnEventToggleFullSymbol) WISP_MSG_EVENT_MAP(EVENT_ID_ADDRESS_MODE_HEX, OnEventAddressModeHex) WISP_MSG_EVENT_MAP(EVENT_ID_OFFSET_MODE_HEX, OnEventOffsetModeHex) WISP_MSG_EVENT_MAP(EVENT_ID_RELATIVE_TO_EIP, OnEventRelativeToEIP) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_TRANSFER_REFERENCE, OnEventCrossReference) WISP_MSG_EVENT_MAP(EVENT_ID_OPERAND_REFERENCE, OnEventXrefOperand) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_TOGGLE_BP_STATE, OnEventToggleBreakPointState) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_TOGGLE, OnEventToggleBookMarks) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_GOTO, OnEventGotoHere) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_NEXT_POS, OnEventNextPos) WISP_MSG_EVENT_MAP(EVENT_ID_PREV_POS, OnEventPrevPos) WISP_MSG_EVENT_MAP(EVENT_ID_SAVE_POS, OnEventSavePos) WISP_MSG_EVENT_MAP(EVENT_ID_EMPTY_POS_LIST, OnEventEmptyPosList) //----------------------------------------------------------------------- //WISP_MSG_EVENT_MAP(EVENT_ID_ANALYZE_FROM_ADDRESS, OnEventAnalyzeFromAddress) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_CODEVIEW_EDIT_CODE, OnEventEditCode) WISP_MSG_EVENT_MAP(EVENT_ID_CODEVIEW_EDIT_COMMENT, OnEventEnterComment) WISP_MSG_EVENT_MAP(EVENT_ID_STRING_REFERENCE, OnEventStringReference) WISP_MSG_EVENT_MAP(EVENT_ID_STARTADDRESS_DEC, OnStartAddressDec) WISP_MSG_EVENT_MAP(EVENT_ID_STARTADDRESS_INC, OnStartAddressInc) WISP_MSG_EVENT_MAP(EVENT_ID_GETNEXTTRACE, OnGetNextTrace) WISP_MSG_EVENT_MAP(EVENT_ID_GETPREVTRACE, OnGetPrevTrace) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_0, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_1, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_2, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_3, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_4, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_5, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_6, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_7, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_CODEVIEW_8, OnActiveCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_FOLLOW_TO_DESTINATION,OnEnterAddr) WISP_MSG_EVENT_MAP_END void CCodeView::GetAddressString(ULPOS Address,WISP_PSTR szBuffer) { WISP_CHAR szRelStr[32]; int BaseAddress,Offset; switch(m_AddrShowMode) { case CODE_VIEW_ADDRESS_MOD: TSPrintf(szBuffer,WSTR("%08X"),Address); return; case CODE_VIEW_OFFSET_MOD: BaseAddress=(int)m_BaseActiveAddress; Offset = (int)Address-BaseAddress; TStrCpy(szRelStr,"$"); break; case CODE_VIEW_REL_TO_EIP_MOD: BaseAddress=(int)*X86_REG_PTR.pEIP; Offset = (int)Address-BaseAddress; TStrCpy(szRelStr,"EIP"); break; } if(Offset>0) { TSPrintf(szBuffer,WSTR("%s+%X"),szRelStr,Offset); } else if(Offset==0) { TStrCpy(szBuffer,szRelStr); TStrCat(szBuffer,"==>"); } else { TSPrintf(szBuffer,WSTR("%s-%X"),szRelStr,-Offset); } } void CCodeView::ItemRClickNotify(HANDLE hItem,int Col) { switch(Col) { case ITEM_STATE: OnEventToggleBookMarks(NULL); break; } } void CCodeView::ItemClickNotify(HANDLE hItem,int Col) { switch(Col) { case ITEM_STATE: OnEventToggleBreakPoint(NULL); break; case ITEM_ADDRESS: switch(m_AddrShowMode) { case CODE_VIEW_ADDRESS_MOD: OnEventOffsetModeHex(NULL); break; case CODE_VIEW_OFFSET_MOD: OnEventRelativeToEIP(NULL); break; case CODE_VIEW_REL_TO_EIP_MOD: OnEventAddressModeHex(NULL); break; } UpdateView(); break; } } bool CCodeView::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(m_pCodeDoc==NULL || m_pCodeDoc->IsOpened()==false) return false; switch(Col) { case 3: m_EditCtrl.SetWindowText(L" "); break; case 4: if(IsColorString(String)) return false; break; } return true; } bool CCodeView::OnCmdStringGoto(IN WISP_MSG*pMsg) { HANDLE hItem; NUM_PTR ItemData; CCodeView* pCodeView; CDataView* pDataView; if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_LDBCLICK) { hItem=(HANDLE)pMsg->Command.Param2; ItemData = gpSyser->m_MainFrame.m_StringReferenceWnd.GetItemData(hItem,0); if(ItemData & 0x8000000000000000i64) { ItemData = gpSyser->m_MainFrame.m_StringReferenceWnd.GetItemData(hItem,1); pDataView=(CDataView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pDataView) pDataView->ViewAddress((DWORD)ItemData); } else { pCodeView=(CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView) pCodeView->SetStartAddress((DWORD)ItemData,true); } } else if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_RDBCLICK) { hItem=(HANDLE)pMsg->Command.Param2; ItemData = gpSyser->m_MainFrame.m_StringReferenceWnd.GetItemData(hItem,1); pDataView=(CDataView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pDataView) pDataView->ViewAddress((DWORD)ItemData); } return true; } bool CCodeView::BuildASM(HANDLE hItem,CWispString& String) { char Buf[256]; BYTE OutBuf[128]; DWORD Len; ULPOS Address = (ULPOS)GetItemData(hItem,1); TStrCpyLimit(Buf,(PCWSTR)String,sizeof(Buf)); Len = Assembler(Buf,OutBuf,Address,BIT32); if(Len) { gpSyser->m_pDebugger->WriteMemory(Address,OutBuf,Len); UpdateView(); return false; } return false; } bool CCodeView::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { ULPOS Address; switch(Col) { case 1: if(GetItemText(hItem,Col)==String) return false; if(CALCEXP((WISP_PCSTR)String,&Address)==false) return false; SetStartAddress(Address,true); return false; case 3: return BuildASM(hItem,String); case 4: Address = (ULPOS)GetItemData(hItem,1); m_pCodeDoc->SetComment(Address,String); UpdateView(); return true; break; } return true; } bool CCodeView::OnCmdVSlide(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { SetScrollBarCurPos(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,false); } return true; } bool CCodeView::OnEventToggleSymbol(IN WISP_MSG*pMsg) { if(m_pCodeDoc->m_Style&DS_USE_SYM) m_pCodeDoc->m_Style&=~DS_USE_SYM; else m_pCodeDoc->m_Style|=DS_USE_SYM; UpdateView(); return true; } bool CCodeView::OnEventToggleFullSymbol(IN WISP_MSG*pMsg) { if(SyserOption.iShowFullSym) SyserOption.iShowFullSym=0; else SyserOption.iShowFullSym=1; UpdateView(); return true; } bool CCodeView::OnEventEnterComment(IN WISP_MSG*pMsg) { HANDLE hItem=GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem) BeginEditItem(hItem,4); return true; } bool CCodeView::OnEventStringReference(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_FindListWnd.Create(WSTR("String Reference"),0,0,564,344,NULL,EVENT_ID_STRING_REFERENCE_WISPLIST,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL|WISP_WLS_TREE); return true; } bool CCodeView::OnEventEditCode(IN WISP_MSG*pMsg) { HANDLE hItem=GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem) BeginEditItem(hItem,3); return true; } bool CCodeView::OnEventCopy(IN WISP_MSG*pMsg) { CWispString*pStrObj; HANDLE hItem; hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(m_hPopupMenuItem!=hItem || hItem==NULL) return true; if(m_PopupMenuCol<1 || m_PopupMenuCol>4) return true; pStrObj = &GetItemText(m_hPopupMenuItem,m_PopupMenuCol); if(IsColorString(pStrObj->m_pData)) { WISP_CHAR szBuffer[256]; TStrCpyLimit(szBuffer,GetColorString(pStrObj->m_pData),256); m_pWispBase->SetClipboardString(szBuffer); } else { if(pStrObj->Length()) m_pWispBase->SetClipboardString(pStrObj->m_pData); } return true; } bool CCodeView::OnEventGotoHere(IN WISP_MSG*pMsg) { HANDLE hItem; ULPOS Address; if(gpSyser->m_pDebugger==NULL||gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address = (DWORD)GetItemData(hItem,1); gpSyser->m_pDebugger->InsertCodeBP(Address,BP_TYPE_DEBUG,BP_STATE_ENABLE); RUNCMD(WSTR("x")); return true; } bool CCodeView::OnEventAddressModeHex(IN WISP_MSG*pMsg) { m_AddrShowMode=CODE_VIEW_ADDRESS_MOD; UpdateView(); return true; } bool CCodeView::OnEventRelativeToEIP(IN WISP_MSG*pMsg) { m_AddrShowMode=CODE_VIEW_REL_TO_EIP_MOD; UpdateView(); return true; } bool CCodeView::OnEventOffsetModeHex(IN WISP_MSG*pMsg) { HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; m_BaseActiveAddress = (ULPOS)GetItemData(hItem,1); m_AddrShowMode=CODE_VIEW_OFFSET_MOD; UpdateView(); return true; } bool CCodeView::OnEventFMAutomiatic(IN WISP_MSG*pMsg) { SyserOption.iFollowMode = SYSER_FM_AUTOMATIC; return true; } bool CCodeView::OnEventFMSystemExplorer(IN WISP_MSG*pMsg) { SyserOption.iFollowMode = SYSER_FM_SYSTEM_EXPLORER; return true; } bool CCodeView::OnEventFMSourceCodeExplorer(IN WISP_MSG*pMsg) { SyserOption.iFollowMode = SYSER_FM_SOURCE_EXPLORER; return true; } int CCodeView::GetCrossReferenceList(DWORD Address,CROSSREFERENCELIST* pCrossReferenceList) { int TotalCount=0; BYTE* Buffer; HANDLE hItem=NULL; int ReadLen,RetLen,j,CurrentCount=0,i,Len,TmpLen,k; ULPOS Addr,DestAddress,HighAddr,LowAddr; int Offset; CDbgModule* pModule; pModule = gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pModule==NULL && gpSyser->m_pSysDebugger!=gpSyser->m_pDebugger) { pModule = gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pModule==NULL) return false; } Buffer = new BYTE[0x1010]; if(Buffer==NULL) { return false; } Addr = pModule->m_ModuleBase; Len = pModule->m_ModuleSize; ReadLen = 0x1000; LowAddr=Address-128; HighAddr=Address+127; for(i = 0; i < Len;) { if(Len - i < ReadLen) ReadLen=Len-i; RetLen = gpSyser->m_pDebugger->ReadMemory(Addr,Buffer,ReadLen); if(RetLen == ReadLen) { for(j = 0; j < RetLen-5;j++) { if(Buffer[j]==0xe9 || Buffer[j]==0xe8) { TotalCount++; Offset=*(int*)&Buffer[j+1]; DestAddress = Addr+Offset+j+5; if(Address==DestAddress) { CurrentCount++; pCrossReferenceList->Append(Addr+j); } } else { if(Buffer[j]==0x0f) { if(Buffer[j+1]>=0x80&&Buffer[j+1]<=0x8f) { TotalCount++; Offset=*(int*)&Buffer[j+2]; DestAddress = Addr+Offset+j+6; if(Address==DestAddress) { CurrentCount++; pCrossReferenceList->Append(Addr+j); } } } } } for(k=j; k < RetLen;k++) { if(Buffer[k]==0xe9||Buffer[k]==0x0f) break; } if(k!=RetLen) { *(int*)&Buffer[ReadLen]=0; TmpLen = Len - (i+ReadLen); if(TmpLen>=5) TmpLen=5; k = gpSyser->m_pDebugger->ReadMemory(Addr+ReadLen,&Buffer[ReadLen],TmpLen); if(k == TmpLen) { for(;jAppend(Addr+j); } } else { if(Buffer[j]==0x0f) { if(Buffer[j+1]>=0x80&&Buffer[j+1]<=0x8f) { TotalCount++; Offset=*(int*)&Buffer[j+2]; DestAddress = Addr+Offset+j+6; if(Address==DestAddress) { CurrentCount++; pCrossReferenceList->Append(Addr+j); } } } } } } } } i+=ReadLen; Addr+=ReadLen; } Addr=LowAddr; RetLen = gpSyser->m_pDebugger->ReadMemory(LowAddr,Buffer,256); if(RetLen==256) { for(j = 0;j < RetLen-1;j++) { if(Buffer[j]==0xeb) { TotalCount++; Offset=(int)(char)Buffer[j+1]; DestAddress = Addr+Offset+j+2; if(Address==DestAddress) { CurrentCount++; pCrossReferenceList->Append(Addr+j); } }else if(Buffer[j]>=0x70&&Buffer[j]<=0x7f) { TotalCount++; Offset=(int)(char)Buffer[j+1]; DestAddress = Addr+Offset+j+2; if(Address==DestAddress) { CurrentCount++; pCrossReferenceList->Append(Addr+j); } } } } delete Buffer; TotalCount = pCrossReferenceList->Count(); return TotalCount; } int CCodeView::GetDataReferenceList(DWORD Address,CROSSREFERENCELIST* pList,DWORD* VarAddr) { int TotualCount=0; int ReadLen,RetLen=0,j=0,CurrentCount=0,i,Len,TmpLen=0,k=0; ULPOS Addr=0,DestAddress,TmpVar; int Offset=0; CDbgModule* pModule; bool bOk; ULPOS DesAddr=0; if(m_pCodeDoc==NULL||m_pCodeDoc->IsOpened()==false) return 0; bOk = m_pCodeDoc->GetVariableDesAddress(Address,&DestAddress); if(bOk==false) return 0; *VarAddr=DestAddress; pModule = gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pModule==NULL) { #ifdef CODE_OS_NT_DRV pModule = gpSyser->m_pSysDebugger->GetModule(Address); #endif if(pModule==NULL) return 0; } if(DestAddressm_ModuleBase || DestAddress >= pModule->m_ModuleBase+pModule->m_ModuleSize) return 0; Addr = pModule->m_ModuleBase; Len = pModule->m_ModuleSize; ReadLen = 0x1000; for(i = 0; i < Len-3;i++) { if(m_pCodeDoc->ReadImage(Addr+i,&TmpVar,sizeof(TmpVar))==sizeof(TmpVar)) if(TmpVar==DestAddress) pList->Append(Addr+i); } TotualCount=pList->Count(); return TotualCount; } bool CCodeView::OnEventCrossReference(IN WISP_MSG*pMsg) { HANDLE hItem; ULPOS Address; CROSSREFERENCELIST CrossReferenceList; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address=(ULPOS)GetItemData(hItem,1); CrossReferenceByAddr(Address); return true; } bool CCodeView::OnEventXrefOperand(IN WISP_MSG*pMsg) { CROSSREFERENCELIST CrossReferenceList; CROSSREFERENCELIST::IT BeginIt,EndIt; HANDLE hItem; ULPOS Address; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; hItem=GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address=(ULPOS)GetItemData(hItem,1); XrefOperandByAddr(Address); return true; } bool CCodeView::CrossReferenceByAddr(ULPOS Address) { CROSSREFERENCELIST CrossReferenceList; int Count; Count = GetCrossReferenceList(Address,&CrossReferenceList); if(Count==0) { SYSEXPLR_OUTPUT(WSTR("Can't find Transfer Reference\n")); return true; } if(gpSyser->m_MainFrame.m_CrossReferenceForm.IsWindow()) gpSyser->m_MainFrame.m_CrossReferenceForm.Show(); else gpSyser->m_MainFrame.m_CrossReferenceForm.CreateForm(); gpSyser->m_MainFrame.m_CrossReferenceForm.InitReferenceList(&CrossReferenceList,Address); return true; } bool CCodeView::XrefOperandByAddr(ULPOS Address) { CROSSREFERENCELIST CrossReferenceList; int Count; ULPOS RetAddr; Count = GetDataReferenceList(Address,&CrossReferenceList,&RetAddr); if(Count==0) { SYSEXPLR_OUTPUT(WSTR("Can't find Operand Reference\n")); return true; } if(gpSyser->m_MainFrame.m_CrossReferenceForm.IsWindow()) gpSyser->m_MainFrame.m_CrossReferenceForm.Show(); else gpSyser->m_MainFrame.m_CrossReferenceForm.CreateForm(); gpSyser->m_MainFrame.m_CrossReferenceForm.InitDataReferenceList(&CrossReferenceList,RetAddr); return true; } bool CCodeView::OnEventNextPos(IN WISP_MSG*pMsg) { OnNextPos(pMsg); return true; } bool CCodeView::OnEventPrevPos(IN WISP_MSG*pMsg) { OnPrevPos(pMsg); return true; } bool CCodeView::OnEventSavePos(IN WISP_MSG*pMsg) { OnSavePos(pMsg); return true; } bool CCodeView::OnEventEmptyPosList(IN WISP_MSG*pMsg) { EmptyPosList(); return true; } bool CCodeView::OnNextPos(IN WISP_MSG*pMsg) { if(m_AddrIter!=m_AddrList.End() && *m_AddrIter!= m_CurAddr) {//ǰַڵǰ洢㣬ϣNextPosPrevPos SetStartAddress(*m_AddrIter,false); } else if(m_AddrIter!=m_AddrList.Last()) { m_AddrIter++; SetStartAddress(*m_AddrIter,false); } SYSTEM_EXPLORER.UpdateItemState(); return true; } bool CCodeView::OnPrevPos(IN WISP_MSG*pMsg) { if(m_pCodeDoc==NULL||m_pCodeDoc->IsOpened()==false) return true; if(m_AddrIter!=m_AddrList.End() && *m_AddrIter!= m_CurAddr) {//ǰַڵǰ洢㣬ϣNextPosPrevPos SetStartAddress(*m_AddrIter,false); } else if(m_AddrIter!=m_AddrList.Begin()) { m_AddrIter--; SetStartAddress(*m_AddrIter,false); } SYSTEM_EXPLORER.UpdateItemState(); return true; } bool CCodeView::OnSavePos(IN WISP_MSG*pMsg) { if(m_AddrIter!=m_AddrList.Last()) {//һ m_AddrIter++; m_AddrList.Remove(m_AddrIter,m_AddrList.End()); m_AddrIter=m_AddrList.End(); } if(m_AddrList.Count()>MAX_POS_LIST_COUNT) { if(m_AddrIter==m_AddrList.Begin()) m_AddrIter++; m_AddrList.Remove(m_AddrList.Begin()); } int nCount=m_AddrList.Count(); if(m_AddrList.Count()==0 || m_CurAddr!= *m_AddrList.Last()) m_AddrIter = m_AddrList.Append(m_CurAddr); SYSTEM_EXPLORER.UpdateItemState(); return true; } void CCodeView::EmptyPosList() { m_AddrList.Clear(); m_AddrIter = m_AddrList.Append(m_CurAddr); SYSTEM_EXPLORER.UpdateItemState(); } bool CCodeView::OnEnterAddr(IN WISP_MSG*pMsg) { ULPOS DesAddr,Address,Immed; HANDLE hItem; int nCount; BYTE Buffer[4]; bool TransferAddress=true; if(m_pCodeDoc==NULL||m_pCodeDoc->IsOpened()==false) return true; hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address = (ULPOS) GetItemData(hItem,1); if(m_pCodeDoc->GetTransferAddress(Address,&DesAddr)==false) { nCount = m_pCodeDoc->GetInstrImmediateAndDesAddress(Address,&DesAddr,&Immed); if(nCount==0) return true; TransferAddress=false; } if(TransferAddress) { if(m_AddrIter!=m_AddrList.Last()) {//һ m_AddrIter++; m_AddrList.Remove(m_AddrIter,m_AddrList.End()); m_AddrIter=m_AddrList.End(); } SetStartAddress(DesAddr,true); return true; } if(Immed!=-1) { ACTIVE_DATA_VIEW->ViewAddress(Immed); return true; } if(DesAddr!=-1) { if(m_pCodeDoc->ReadMemory(DesAddr,Buffer,sizeof(Buffer))==sizeof(Buffer)) { ACTIVE_DATA_VIEW->ViewAddress(DesAddr); } } return true; } bool CCodeView::OnMouseDBClick(IN WISP_MSG*pMsg) { WISP_RECT CellRC; HANDLE hItem=NULL; ULPOS Address=0; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { GetItemCellRect(GetItem(0),3,&CellRC); if(pMsg->MsgMouseWndPT.x >= CellRC.x && pMsg->MsgMouseWndPT.x<=CellRC.x+CellRC.cx) OnEnterAddr(pMsg); } return true; } void CCodeView::SetSelectItemByAddress(ULPOS Address) { HANDLE hItem = GetScrStartItem(); NUM_PTR NumPtr; while(hItem) { NumPtr = GetItemData(hItem,1); if(Address == *(ULPOS*)&NumPtr) { SelectItem(hItem); break; } hItem = GetNextItem(hItem); } } bool CCodeView::OnGetNextTrace(IN WISP_MSG*pMsg) { PSTRUNTRACE pRunTrace; pRunTrace = SYSTEM_EXPLORER.GetNextTrace(); if(pRunTrace==NULL) return false; SetStartAddress(pRunTrace->CodeViewStartAddress); SetSelectItemByAddress(pRunTrace->CodeViewStartAddress+pRunTrace->EIPOffset); return true; } bool CCodeView::OnGetPrevTrace(IN WISP_MSG*pMsg) { PSTRUNTRACE pRunTrace; pRunTrace = SYSTEM_EXPLORER.GetPrevTrace(); if(pRunTrace==NULL) return true; SetStartAddress(pRunTrace->CodeViewStartAddress); SetSelectItemByAddress(pRunTrace->CodeViewStartAddress+pRunTrace->EIPOffset); return true; } void CCodeView::PopupMenu(IN WISP_MSG*pMsg) { bool bState; ULPOS Address; if(PointToItem(pMsg->MsgMouseCltPT,&m_PopupMenuCol)==NULL) return; if(m_PopupMenuCol<1 || m_PopupMenuCol>LI_POS_CELL_AREA_END) return; m_hPopupMenuItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(m_hPopupMenuItem==NULL) return; Address = (ULPOS)GetItemData(m_hPopupMenuItem,1); bState = GetItemText(m_hPopupMenuItem,2).Length()!=0; m_PopupMenu.EnableItem(EVENT_ID_CODEVIEW_EDIT_CODE,bState); m_PopupMenu.EnableItem(EVENT_ID_CODEVIEW_EDIT_COMMENT,bState); m_PopupMenu.EnableItem(EVENT_ID_PREV_POS,m_AddrIter!=m_AddrList.Begin()); m_PopupMenu.EnableItem(EVENT_ID_NEXT_POS,m_AddrIter!=m_AddrList.Last()); m_PopupMenu.EnableItem(EVENT_ID_EMPTY_POS_LIST,m_AddrList.Count()>1); m_PopupMenu.CheckItem(EVENT_ID_TOGGLE_SYMBOL,(m_pCodeDoc->m_Style&DS_USE_SYM)!=0); m_PopupMenu.CheckItem(EVENT_ID_TOGGLE_FULL_SYMBOL,SyserOption.iShowFullSym!=0); m_PopupMenu.CheckItem(EVENT_ID_ADDRESS_MODE_HEX,m_AddrShowMode == CODE_VIEW_ADDRESS_MOD); m_PopupMenu.CheckItem(EVENT_ID_OFFSET_MODE_HEX,m_AddrShowMode == CODE_VIEW_OFFSET_MOD); m_PopupMenu.CheckItem(EVENT_ID_RELATIVE_TO_EIP,m_AddrShowMode == CODE_VIEW_REL_TO_EIP_MOD); m_PopupMenu.CheckItem(EVENT_ID_FM_AUTOMATIC, SyserOption.iFollowMode == SYSER_FM_AUTOMATIC); m_PopupMenu.CheckItem(EVENT_ID_FM_SYSTEM_EXPLORER, SyserOption.iFollowMode == SYSER_FM_SYSTEM_EXPLORER); m_PopupMenu.CheckItem(EVENT_ID_FM_SOURCE_CODE_EXPLORER, SyserOption.iFollowMode == SYSER_FM_SOURCE_EXPLORER); m_PopupMenu.Popup(); } void CCodeView::ToggleHighlight(IN WISP_MSG* pMsg) { int Col; HANDLE hItem; WISP_RECT CellRect; int x,offset; WCHAR szBuffer[512]; WISP_PCSTR pStr; int n,OldLen; CItemList::IT ItemIter; OldLen=TStrLen(m_HighlightString); Col = PointToItem(pMsg->MsgMouseCltPT,ItemIter); if(Col<1 || Col>LI_POS_CELL_AREA_END) { goto quit; } hItem= &(*ItemIter); if(hItem==NULL) { goto quit; } pStr=GetItemText(hItem,Col); if(pStr==NULL) { goto quit; } if(IsColorString(pStr)) { TStrCpyLimit(szBuffer,GetColorString(pStr),512); pStr=szBuffer; } n = TStrLen(pStr); GetItemCellRect(hItem,Col,&CellRect); x = m_pWispBase->m_MousePT.x - m_ScrClientRect.x-CellRect.x ;//- m_TextMargin; offset = m_ClientDC.PixelOffToTextOff(pStr,x); if(offset==-1) { goto quit; } int nLastSpilte=0; if((pStr[offset]>='0'&&pStr[offset]<='9')||(pStr[offset]>='a'&&pStr[offset]<='z')||(pStr[offset]>='A'&&pStr[offset]<='Z')||pStr[offset]=='_') { for(int i=0;i='0'&&pStr[i]<='9')||(pStr[i]>='a'&&pStr[i]<='z')||(pStr[i]>='A'&&pStr[i]<='Z')||pStr[i]=='_') continue; if(i>offset) { TStrNCpy(m_HighlightString,pStr+nLastSpilte,i-nLastSpilte); m_HighlightString[i-nLastSpilte]=0; UpdateView(); return; } nLastSpilte=i+1; } TStrNCpy(m_HighlightString,pStr+nLastSpilte,n-nLastSpilte); m_HighlightString[n-nLastSpilte]=0; UpdateView(); return; } quit: if(OldLen) { m_HighlightString[0]=0; UpdateView(); } } bool CCodeView::OnStartAddressInc(IN WISP_MSG*pMsg) { SetStartAddress(m_CurAddr+1); return false; } bool CCodeView::OnStartAddressDec(IN WISP_MSG*pMsg) { SetStartAddress(m_CurAddr-1); return false; } bool CCodeView::OnKeyEvent(IN WISP_MSG*pMsg) { CODEHOTKEYMAP::IT FindIT; WISP_MSG Msg; if(pMsg->KeyEvent.bKeyDown) { FindIT = m_HotKeyMap.Find(pMsg->KeyEvent.KeyType); if(FindIT != m_HotKeyMap.End()) { memset(&Msg,0,sizeof(Msg)); Msg.Command.CmdID=*FindIT; return OnEvent(&Msg); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: PopupMenu(pMsg); break; case WISP_VK_LBUTTON: ToggleHighlight(pMsg); break; case WISP_VK_W: { int SizeXorY; gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.GetWndSpace(1,SizeXorY); if(SizeXorY>10) gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.ResizeWndSpace(1,SizeXorY-10); else gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.ResizeWndSpace(1,0); gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.AdjustWndPos(); return false; } break; case WISP_VK_S: { int SizeXorY; gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.GetWndSpace(1,SizeXorY); gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.ResizeWndSpace(1,SizeXorY+10); gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.AdjustWndPos(); return false; } break; } } return true; } bool CCodeView::OnChar(IN WISP_MSG*pMsg) { if(pMsg->Char.Char>='a' && pMsg->Char.Char<='z') { gpSyser->m_MainFrame.m_SystemExplorer.m_TerminalWnd.Focus(); WISP_MSG Msg = *pMsg; Msg.hWnd = &gpSyser->m_MainFrame.m_SystemExplorer.m_TerminalWnd; m_pWispBase->SendMessage(&Msg); return false; } return true; } bool CCodeView::OnSize(IN WISP_MSG*pMsg) { SetScrollBarInfo(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,m_nLinePerPage*(m_ScrollSpace+m_ScrollSpace+1),m_nLinePerPage,0,false); UpdateView(); return true; } bool CCodeView::OnGetFocus(IN WISP_MSG*pMsg) { HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) { hItem = GetFirstItem(); if(hItem) SelectItem(hItem); } return true; } bool CCodeView::OnCreate(IN WISP_MSG*pMsg) { m_ColorTable[COLOR_BK ]=ColorOption.clrCVBK; m_ColorTable[COLOR_ADDRESS ]=ColorOption.clrCVAddr; m_ColorTable[COLOR_PREFIX ]=ColorOption.clrCVPrefix; m_ColorTable[COLOR_OPCODE ]=ColorOption.clrCVOpCode; m_ColorTable[COLOR_REGISTER]=ColorOption.clrCVReg; m_ColorTable[COLOR_SEG_REG ]=ColorOption.clrCVSegReg; m_ColorTable[COLOR_IMMED ]=ColorOption.clrCVImmed; m_ColorTable[COLOR_OPTR ]=ColorOption.clrCVOptr; m_ColorTable[COLOR_SYMBOL ]=ColorOption.clrCVSymbol; m_ColorTable[COLOR_COMMENT ]=ColorOption.clrCVComment; m_ColorTable[COLOR_KEYWORD ]=ColorOption.clrCVKeyword; m_ColorTable[COLOR_STR ]=ColorOption.clrCVStr; m_ColorTable[COLOR_BPX_STRIP]=ColorOption.clrCVBPXStrip; m_ColorTable[COLOR_EIP_STRIP]=ColorOption.clrCVEIPStrip; m_ColorTable[COLOR_BPXEIP_STRIP]=ColorOption.clrCVBPXEIPStrip; m_ColorTable[COLOR_API_NAME]=ColorOption.clrCVAPIName; m_ColorTable[COLOR_API_PARAM_TYPE]=ColorOption.clrCVAPIParamType; m_ColorTable[COLOR_API_PARAM_NAME]=ColorOption.clrCVAPIParamName; m_ColorTable[COLOR_JMP_LINE]=ColorOption.clrCVJmpLine ; m_ColorTable[COLOR_ACTIVED_JMP_LINE]=ColorOption.clrCVActivedJmpLine; m_ColorTable[COLOR_PREFIX_BYTE]=ColorOption.clrCVPrefixByte; m_ColorTable[COLOR_OPCODE_BYTE]=ColorOption.clrCVOpcodeByte; m_ColorTable[COLOR_REGRM_BYTE]=ColorOption.clrCVRegRMByte; //opcode RegRM ֽڵɫ m_ColorTable[COLOR_SIB_BYPE]=ColorOption.clrCVSIBByte; //opcode SIB ֽڵɫ m_ColorTable[COLOR_OTHER_OPCODE_BYTE]=ColorOption.clrCVOtherOpcodeByte; //opcode ֽڵɫ m_ColorTable[COLOR_3DNOW_BYTE]=ColorOption.clrCV3DNowByte;//3dNow ָimmediate byte m_SelectBKColor = ColorOption.clrCVSelectedFrame; m_LostFocusSelBKColor = ColorOption.clrCVLostFocusSelFrame; m_ClientDC.SetColorTable(m_ColorTable); m_PopupMenu.CreatePopupMenu(CodeViewOperationMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_ColIconList.Load("\\SyserIcon\\CodeView.bmp",16,16,4); m_ColIconList.SetType(WISP_DIB_TK); m_ColIconList.SetColorKey(WISP_RGB(0,255,255)); int FontWidth = m_ClientDC.GetTextExtent(WSTR("X")); InsertColumn(WSTR("Pic"),20,WISP_WLCS_FIXED); InsertColumn(WSTR("Address"),FontWidth*9+3,0); InsertColumn(WSTR("Bin"),FontWidth*15,0); InsertColumn(WSTR("Code"),FontWidth*35,0); InsertColumn(WSTR("Comment"),200,WISP_WLCS_EDITABLE); ShowColumnTitle(false); SetBGColor(m_ColorTable[COLOR_BK]); m_Style|=WISP_WLS_EMPTY_SEL_RECT|WISP_WLS_VERT_LINE; m_ScrollBar[WISP_SB_VERT]->Style=WISP_SS_NORMAL; m_ScrollBar[WISP_SB_VERT]->bHide = false; m_AddrShowMode = CODE_VIEW_ADDRESS_MOD; m_JmpLineSpace = 13; m_StateDIBList=WispTKDIBList("\\SyserApp\\LineMark.bmp",16,16); m_StateDIBList->SetColorKey(0); AttachShortcutKey(); return true; } bool CCodeView::OnActiveCodeView(IN WISP_MSG*pMsg) { DWORD NewAddr; DWORD Index; Index = pMsg->Command.CmdID; Index -= EVENT_ID_ACTIVE_CODEVIEW_0; CCodeView*pCodeView = (CCodeView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetWnd(Index); if(pCodeView==NULL) { pCodeView =(CCodeView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); NewAddr = ACTIVE_CODE_VIEW->m_CurAddr; pCodeView = ADD_CODE_VIEW(pCodeView); if(pCodeView==NULL) return false; } else { gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.ChangeActiveWnd(pCodeView); } return true; } void CCodeView::AttachShortcutKey() { if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_0,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_1,EVENT_ID_ACTIVE_CODEVIEW_0); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_1,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_2,EVENT_ID_ACTIVE_CODEVIEW_1); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_2,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_3,EVENT_ID_ACTIVE_CODEVIEW_2); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_3,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_4,EVENT_ID_ACTIVE_CODEVIEW_3); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_4,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_5,EVENT_ID_ACTIVE_CODEVIEW_4); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_5,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_6,EVENT_ID_ACTIVE_CODEVIEW_5); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_6,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_7,EVENT_ID_ACTIVE_CODEVIEW_6); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_7,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_8,EVENT_ID_ACTIVE_CODEVIEW_7); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_CODEVIEW_8,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_9,EVENT_ID_ACTIVE_CODEVIEW_8); if(gpSyser->AttachShortcutKey(EVENT_ID_TOGGLE_SYMBOL,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_TAB, EVENT_ID_TOGGLE_SYMBOL); if(gpSyser->AttachShortcutKey(EVENT_ID_TOGGLE_FULL_SYMBOL,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_TAB|WISP_MOD_CTRL, EVENT_ID_TOGGLE_FULL_SYMBOL); if(gpSyser->AttachShortcutKey(EVENT_ID_GETNEXTTRACE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_OEM_PLUS, EVENT_ID_GETNEXTTRACE); if(gpSyser->AttachShortcutKey(EVENT_ID_GETPREVTRACE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_OEM_MINUS, EVENT_ID_GETPREVTRACE); if(gpSyser->AttachShortcutKey(EVENT_ID_PREV_POS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_BACK, EVENT_ID_PREV_POS); if(gpSyser->AttachShortcutKey(EVENT_ID_NEXT_POS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN|WISP_MOD_CTRL, EVENT_ID_NEXT_POS); if(gpSyser->AttachShortcutKey(EVENT_ID_FOLLOW_TO_DESTINATION,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN, EVENT_ID_FOLLOW_TO_DESTINATION); if(gpSyser->AttachShortcutKey(EVENT_ID_SAVE_POS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN|WISP_MOD_SHIFT, EVENT_ID_SAVE_POS); if(gpSyser->AttachShortcutKey(EVENT_ID_STARTADDRESS_DEC,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_UP, EVENT_ID_STARTADDRESS_DEC); if(gpSyser->AttachShortcutKey(EVENT_ID_STARTADDRESS_INC,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_DOWN, EVENT_ID_STARTADDRESS_INC); if(gpSyser->AttachShortcutKey(EVENT_ID_TOGGLE_BP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_F9, EVENT_ID_TOGGLE_BP); if(gpSyser->AttachShortcutKey(EVENT_ID_GOTO,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_F7, EVENT_ID_GOTO); } bool CCodeView::OnDestroy(IN WISP_MSG*pMsg) { m_ColIconList.Destroy(); m_PopupMenu.Destroy(); return true; } bool CCodeView::OnScrollEvent(IN WISP_MSG*pMsg) { int CodeLen; ULPOS StartAddr,EndAddr; if(pMsg->ScrollEvent.SBType==WISP_SB_VERT) { switch(pMsg->ScrollEvent.Event) { case WISP_SB_DEC: StartAddr = m_CurAddr; CodeLen=m_CurAddr - m_pCodeDoc->GetNextAddress(m_CurAddr,-1); if((LONGLONG)m_CurAddr-(LONGLONG)CodeLen>=(LONGLONG)m_pCodeDoc->m_DocRangeStart) StartAddr-=CodeLen; else StartAddr=(DWORD)m_pCodeDoc->m_DocRangeStart; SetStartAddress(StartAddr,false); break; case WISP_SB_INC: StartAddr = m_CurAddr; CodeLen=m_pCodeDoc->GetNextAddress(m_CurAddr,1) - m_CurAddr; if(StartAddr+CodeLenm_DocRangeEnd) { StartAddr+=CodeLen; SetStartAddress(StartAddr,false); } break; case WISP_SB_PAGE_UP: StartAddr=m_pCodeDoc->GetNextAddress(m_CurAddr,-(m_nLinePerPage-1)); if(StartAddrm_DocRangeStart) StartAddr=m_pCodeDoc->m_DocRangeStart; SetStartAddress(StartAddr); break; case WISP_SB_PAGE_DOWN: GetCodeRange(&StartAddr,&EndAddr); SetStartAddress(EndAddr,false); break; case WISP_SB_POS_CHANGE: if(pMsg->ScrollEvent.Delta<0) { StartAddr=m_pCodeDoc->GetNextAddress(m_CurAddr,pMsg->ScrollEvent.Delta); } else { StartAddr=m_pCodeDoc->GetNextAddress(m_CurAddr,pMsg->ScrollEvent.Delta); } SetStartAddress(StartAddr,false); return false; break; } SetScrollBarCurPos(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace); } return false; } CCodeView::CCodeView() { m_CurAddr = 0; m_ScrollSpace = 2; m_AddrIter = m_AddrList.End(); m_HighlightString[0]=0; } CCodeView::~CCodeView() { m_AddrList.Clear(); } void CCodeView::UpdateCodeViewAddrSym() { ULPOS Address; int Length; CHAR szSymbol[256]; WCHAR szBuffer[512]; #ifdef CODE_OS_NT_DRV Length = TStrCpy(szBuffer,(PCWSTR)gpSyser->m_pDebugger->m_ProcNameW); #else Length = AnsiToUnicode(TGetFileName((PCSTR)gpSyser->m_SyserUI.m_CodeDoc.m_MainModuleName),szBuffer,512); #endif Address = m_CurAddr; //Address = *X86_REG_PTR.pEIP; CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL&&gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule) { Length+=TStrCpy(&szBuffer[Length],WSTR(" : ")); Length+=AnsiToUnicode(pDbgModule->m_ModuleTitle,&szBuffer[Length],512-Length); if(gpSyser->m_SyserUI.GetAlmostSym(Address,szSymbol)) { Length+=TStrCpy(&szBuffer[Length],WSTR("!")); Length+=TStrCpy(&szBuffer[Length],szSymbol); } else { Length+=TSPrintf(&szBuffer[Length],WSTR("+%X"),Address-pDbgModule->m_ModuleBase); } } gpSyser->m_MainFrame.m_TipStr.SetWindowText(szBuffer); } void CCodeView::SetStartAddress(ULPOS Address,bool bRecordAddr) { WISP_CHAR szBuffer[64]; ULPOS uPrevPos; int Index; uPrevPos=m_CurAddr; if(Address == m_CurAddr) return; Index = 0; m_CurAddr = Address; for(CTabWndList::IT Iter=SYSTEM_EXPLORER.m_MultiCodeView.m_WndList.Begin(); Iter!=SYSTEM_EXPLORER.m_MultiCodeView.m_WndList.End();Iter++) { if(Iter->pWnd==this) { TSPrintf(szBuffer,WSTR("%08X"),m_CurAddr); SYSTEM_EXPLORER.m_MultiCodeView.SetTabText(Index,szBuffer); } Index++; } if(this == gpSyser->m_MainFrame.m_SystemExplorer.m_pCurCodeView) { UpdateCodeViewAddrSym(); } if(bRecordAddr && m_CurAddr!=0) { RecordCurAddr(m_CurAddr,uPrevPos); } UpdateView(); Update(); } void CCodeView::RecordCurAddr(ULPOS Address,ULPOS PrevAddress) { if(m_AddrList.Count()>MAX_POS_LIST_COUNT) { if(m_AddrIter==m_AddrList.Begin()) m_AddrIter++; m_AddrList.Remove(m_AddrList.Begin()); } if(m_AddrList.Count()==0 && Address!=PrevAddress) m_AddrIter = m_AddrList.Append(PrevAddress); if( Address!= *m_AddrList.Last()) m_AddrIter = m_AddrList.Append(Address); SYSTEM_EXPLORER.UpdateItemState(); } void CCodeView::CenterVisibleAddress(ULPOS Address) { HANDLE hItem; ULPOS NewAddress,ItemAddr; NewAddress = m_pCodeDoc->GetNextAddress(Address,-m_nLinePerPage/2); SetStartAddress(NewAddress); hItem = GetScrStartItem(); while(hItem) { ItemAddr = (ULPOS) GetItemData(hItem,ITEM_ADDRESS); if(ItemAddr==Address) { SelectItem(hItem); break; } hItem = GetNextItem(hItem); } } void CCodeView::GetCodeRange(DWORD*pStart,DWORD*pEnd) { *pStart = m_CurAddr; *pEnd=m_pCodeDoc->GetNextAddress(*pStart,m_nLinePerPage-1); } void CCodeView::UpdateViewAPICall(ULPOS Address,PCSTR szAPIName,HANDLE hItem,int nLine) { CWispString*pColorString; WISP_COLOR_CHAR*pColorStr; int Length,Count; DWORD CodeBuffer; WISP_COLOR_CHAR szBuffer[1024]; WCHAR wszBuffer[256]; PCSTR pParamStr,pParamStrEnd; CAPIMap::IT APIIter = gpSyser->m_SyserUI.m_APIMap.Find(szAPIName); if(APIIter.IsExist()==false) return; Length =ColorStrCpy(szBuffer,(PCSTR)APIIter->Return,COLOR_API_PARAM_TYPE,COLOR_BK); Length+=ColorStrCpy(&szBuffer[Length]," ",COLOR_BK,COLOR_BK); Length+=ColorStrCpy(&szBuffer[Length],(PCSTR)APIIter.Key(),COLOR_API_NAME,COLOR_BK); Length+=ColorStrCpy(&szBuffer[Length],"(",COLOR_OPTR,COLOR_BK); for(TList::IT ParamIter=APIIter->ParamList.Begin();ParamIter!=APIIter->ParamList.End();ParamIter++) { pParamStrEnd=NULL; pParamStr = TStrRChr((PCSTR)*ParamIter,' '); if(pParamStr) { if(TStrCmp(&pParamStr[1],"OPTIONAL")==0) { pParamStrEnd = pParamStr; pParamStr = TStrRChr((PCSTR)*ParamIter,pParamStr-1,' '); if(pParamStr==NULL) pParamStr = (PCSTR)*ParamIter; } Count = TCountOfChar((PCSTR)*ParamIter,' '); if(Count==1) { if(TStrNCmp((PCSTR)*ParamIter,"IN ",3)==0 || TStrNCmp((PCSTR)*ParamIter,"OUT ",4)==0) pParamStr=NULL; } else if(Count==2) { if(TStrNCmp((PCSTR)*ParamIter,"IN OUT ",7)==0) pParamStr=NULL; } } if(pParamStr) { TStrCpyLimit(wszBuffer,(PCSTR)*ParamIter,(int)(pParamStr-(PCSTR)*ParamIter)+1); Length+=/*@@*/ColorStrCpy(&szBuffer[Length],wszBuffer,COLOR_API_PARAM_TYPE,COLOR_BK); if(pParamStrEnd) TStrCpyLimit(wszBuffer,pParamStr,(int)(pParamStrEnd-pParamStr)+1); else TStrCpy(wszBuffer,pParamStr); Length+=ColorStrCpy(&szBuffer[Length],wszBuffer,COLOR_API_PARAM_NAME,COLOR_BK); if(pParamStrEnd) { TStrCpy(wszBuffer,pParamStrEnd); Length+=ColorStrCpy(&szBuffer[Length],wszBuffer,COLOR_API_PARAM_TYPE,COLOR_BK); } } else { Length+=ColorStrCpy(&szBuffer[Length],(PCSTR)*ParamIter,COLOR_API_PARAM_TYPE,COLOR_BK); } if(ParamIter!=APIIter->ParamList.Last()) Length+=ColorStrCpy(&szBuffer[Length],",",COLOR_OPTR,COLOR_BK); } Length+=ColorStrCpy(&szBuffer[Length],")",COLOR_OPTR,COLOR_BK); SetItemColorText(hItem,4,szBuffer); if(APIIter->CallType==TYPE_STDCALL) { TList::IT ParamIter = APIIter->ParamList.Begin(); while(nLine>0 && ParamIter!=APIIter->ParamList.End()) { nLine--; hItem = GetPrevItem(hItem); if(hItem==NULL) break; pColorString=&GetItemText(hItem,ITEM_COMMENT); if(IsColorString(pColorString->m_pData)) {//ѾDzɫעУʾϸIJ continue; } pColorString=&GetItemText(hItem,ITEM_ASM_CODE); if(pColorString->Length()>0) { CodeBuffer=(DWORD)GetItemData(hItem,ITEM_BIN_DATA); if(CInstrSym::GetNearJmpDes((BYTE*)&CodeBuffer)) break; pColorStr = (WISP_COLOR_CHAR*)&pColorString->m_pData[2]; if(TStrNICmp(pColorStr,"PUSH",4)==0) { Address = (ULPOS)GetItemData(hItem,ITEM_ADDRESS); pParamStrEnd=NULL; pParamStr = TStrRChr((PCSTR)*ParamIter,' '); if(pParamStr) { if(TStrCmp(&pParamStr[1],"OPTIONAL")==0) { pParamStrEnd = pParamStr; pParamStr = TStrRChr((PCSTR)*ParamIter,pParamStr-1,' '); if(pParamStr==NULL) pParamStr = (PCSTR)*ParamIter; } Count = TCountOfChar((PCSTR)*ParamIter,' '); if(Count==1) { if(TStrNCmp((PCSTR)*ParamIter,"IN ",3)==0 || TStrNCmp((PCSTR)*ParamIter,"OUT ",4)==0) pParamStr=NULL; } else if(Count==2) { if(TStrNCmp((PCSTR)*ParamIter,"IN OUT ",7)==0) pParamStr=NULL; } } if(pParamStr) { TStrCpyLimit(wszBuffer,(PCSTR)*ParamIter,(int)(pParamStr-(PCSTR)*ParamIter)+1); Length=/*@@*/ColorStrCpy(szBuffer,wszBuffer,COLOR_API_PARAM_TYPE,COLOR_BK); if(pParamStrEnd) TStrCpyLimit(wszBuffer,pParamStr,(int)(pParamStrEnd-pParamStr)+1); else TStrCpy(wszBuffer,pParamStr); Length+=ColorStrCpy(&szBuffer[Length],wszBuffer,COLOR_API_PARAM_NAME,COLOR_BK); if(pParamStrEnd) { TStrCpy(wszBuffer,pParamStrEnd); Length+=ColorStrCpy(&szBuffer[Length],wszBuffer,COLOR_API_PARAM_TYPE,COLOR_BK); } } else { ColorStrCpy(szBuffer,(PCSTR)*ParamIter,COLOR_API_PARAM_TYPE,COLOR_BK); } SetItemColorText(hItem,ITEM_COMMENT,szBuffer); ParamIter++; } } } } } //Col 0 Data -> ÿжӦĵַMark //Col 1 Data -> ÿжӦĵַ //Col 2 Data -> ݵDWORD //Col 3 Data -> NearJmp Ŀĵַ bool CCodeView::UpdateView() { HANDLE hItem; BYTE CodeBuffer[MAX_INSTR_LEN]; WISP_COLOR_CHAR szOpcodeColorBuffer[120]; WISP_COLOR_CHAR szColorBuffer[256]; WISP_CHAR szBuffer[256]; WISP_CHAR* pszBuf; ULPOS Address,NearJmpDes; int nHighlightLen=0; ULSIZE CodeLen; INSTRUCTION_INFORMATION DasmInstr; bool bLabel = false; int StrType; SetItemChildCount(NULL,m_nLinePerPage); Address = m_CurAddr; hItem = GetNextItem(); STZeroMemory(DasmInstr); memset(CodeBuffer,0xff,sizeof(CodeBuffer)); nHighlightLen = TStrLen(m_HighlightString); for(int n=0;n=2) CInstrSym::GetNearJmpDes(CodeBuffer,Address,&NearJmpDes); TStrCpy(szBuffer,szColorBuffer); pszBuf=szBuffer; if(nHighlightLen) { while(pszBuf=TStrIStr(pszBuf,m_HighlightString)) { for(int iii=0;iiiGetLabel(Address,szBuffer,sizeof(szBuffer)/sizeof(WCHAR))) { SetItemData(hItem,ITEM_STATE,COLOR_NULL); SetItemData(hItem,ITEM_ASM_CODE,0); SetItemText(hItem,ITEM_STATE,WSTR("")); SetItemText(hItem,ITEM_ADDRESS,WSTR("")); SetItemText(hItem,ITEM_BIN_DATA,WSTR("")); SetItemTextColor(hItem,ITEM_ASM_CODE,m_ColorTable[COLOR_SYMBOL]); SetItemText(hItem,ITEM_ASM_CODE,szBuffer); SetItemText(hItem,ITEM_COMMENT,WSTR("")); bLabel = true; hItem = GetNextItem(hItem); continue; } SetItemData(hItem,ITEM_STATE,m_pCodeDoc->GetLineMark(Address)); SetItemTextColor(hItem,ITEM_ADDRESS,m_ColorTable[COLOR_ADDRESS]); GetAddressString(Address,szBuffer); SetItemText(hItem,ITEM_ADDRESS,szBuffer); int nlen=0; if(CodeLen>=1 && DasmInstr.OpCode!=-1) { int bskip=false; for(int qq=0;(ULSIZE)qq=DasmInstr.PrefixLen && qq GetComment(Address,szBuffer,sizeof(szBuffer)/sizeof(WCHAR))) { SetItemText(hItem,ITEM_COMMENT,szBuffer); } else { ULPOS DestAddr,Immed,Count; bool bImmed=false; Count = m_pCodeDoc->GetInstrImmediateAndDesAddress(Address,&DestAddr,&Immed); if(Count) { if(Immed!=0-1) { if(GET_STRING_SYM(Immed,szBuffer,sizeof(szBuffer)/sizeof(szBuffer[0]),StrType)) { SetItemText(hItem,ITEM_COMMENT,szBuffer); bImmed=true; } } if(!bImmed && DestAddr!=0-1) { if(GET_STRING_SYM(DestAddr,szBuffer,sizeof(szBuffer)/sizeof(szBuffer[0]),StrType)) { SetItemText(hItem,ITEM_COMMENT,szBuffer); } } } else { szColorBuffer[0]=0; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened() && Address==*X86_REG_PTR.pEIP) { m_pCodeDoc->GetCurInstrInfoEx(szColorBuffer,sizeof(szColorBuffer)/sizeof(szColorBuffer[0])); SetItemColorText(hItem,ITEM_COMMENT,szColorBuffer); } } } bLabel = false; if(TStrNICmp(szColorBuffer,"CALL",4)==0 && DasmInstr.op->mode == mode_symbol) {//API UpdateViewAPICall(Address,DasmInstr.op->symbol.string,hItem,n); } m_LastAddr = Address; Address = m_pCodeDoc->GetNextAddress(Address,1); hItem = GetNextItem(hItem); } UpdateNearJmpState(); Update(); return true; } bool CCodeView::GetItemLineByAddr(ULPOS Address,int *pLine) { int Line; HANDLE hItem; if(Addressm_LastAddr) return false; Line = 0; hItem = GetScrStartItem(); while(hItem) { if(Address == (ULPOS)GetItemData(hItem,1)) { if(pLine) *pLine = Line; return true; } hItem = GetNextItem(hItem); Line++; } return false; } void CCodeView::UpdateNearJmpState() { int StartLine,EndLine; HANDLE hItem; ULPOS DesAddr; NUM_PTR CodeData; m_NearJmpCount = 0; m_iActivedNearJmp = -1; hItem = GetScrStartItem(); StartLine = 0; while(hItem && m_NearJmpCountStartLine*m_ButtonSize.cy+m_ButtonSize.cy/2; y2 = pEntry->EndLine*m_ButtonSize.cy+m_ButtonSize.cy/2; m_ClientDC.DrawHLine(x1,x2,y1,Color);//Start m_ClientDC.DrawVLine(x2,y1-3,y1+3,Color);//End m_ClientDC.DrawHLine(x1,x2,y2,Color);//End m_ClientDC.DrawLine(x2-2,y2-2,x2,y2,Color);//End m_ClientDC.DrawLine(x2-2,y2+2,x2,y2,Color);//End m_ClientDC.DrawVLine(x1,y1,y2,Color);//Midway } bool CCodeView::OnUpdateClient(IN WISP_MSG*pMsg) { UINT Mark; int SelJmpLineIndex; HANDLE hItem; ULPOS SelJmpSrcAddr; CWispList::OnUpdateClient(pMsg); WISP_RECT rc; rc.cx=16,rc.cy=16,rc.x=2; rc.y=m_TitleHeight; hItem = GetScrStartItem(); while(hItem) { Mark = (UINT)GetItemData(hItem,ITEM_STATE); if(Mark&CV_MARK_BOOK_MARK) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(1)); if(Mark&CV_MARK_EIP) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(0)); if(Mark&CV_MARK_BPX) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(2)); else if(Mark&CV_MARK_DISABLED_BPX) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(3)); rc.y+=m_ButtonSize.cy; hItem = GetNextItem(hItem); } hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); SelJmpSrcAddr = hItem ? (ULPOS)GetItemData(hItem,ITEM_ADDRESS) : 0; SelJmpLineIndex = -1; for(int n=0;n=0) {//ѡе󻭣֤ DrawJmpLine(&m_NearJmpPos[SelJmpLineIndex],SelJmpLineIndex,ColorOption.clrCVSelectedFrame); } if(m_iActivedNearJmp>=0 && m_iActivedNearJmpDasm(&DasmInstr,NULL,MaxSize); if(nCodeAlgn) { if(DasmInstr.OpCode==-1) { ColorStrCpy(pColorString,WSTR("??"),COLOR_IMMED,0); } else { THexBytesToStr(DasmInstr.CodeBuff,szBuffer,Len,1); ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); } pColorString+=TStrFillTail(pColorString,nCodeAlgn,(WISP_COLOR_CHAR)' '); } InstrToCS(&DasmInstr,pColorString); if(pDasmInstr) { *pDasmInstr=DasmInstr; if(CodeBuff==NULL) pDasmInstr->CodeBuff=NULL; } return Len; } WISP_COLOR_CHAR*CCodeView::InstrToCS(const INSTRUCTION_INFORMATION*pDasmInstr,WISP_COLOR_CHAR*pColorString) { bool bFirstStr = TRUE; /////////////////////////////////////////////////// //LOCKǰ׺ /////////////////////////////////////////////////// if(pDasmInstr->Lock!=-1) { ColorStrCpy(pColorString,pDasmInstr->LockName,COLOR_PREFIX,0); ColorStrCat(pColorString," ",0,0); if(bFirstStr)//ڴδʹö { pColorString+=TStrFillTail(pColorString,m_pCodeDoc->m_UxAlign,(WISP_COLOR_CHAR)' '); bFirstStr = FALSE; } else pColorString+=TStrLen(pColorString); } /////////////////////////////////////////////////// //REPǰ׺ /////////////////////////////////////////////////// if(pDasmInstr->Repeat!=-1) { ColorStrCpy(pColorString,pDasmInstr->RepeatName,COLOR_PREFIX,0); ColorStrCat(pColorString," ",0,0); if(bFirstStr)//ڴδʹö { pColorString+=TStrFillTail(pColorString,m_pCodeDoc->m_UxAlign,(WISP_COLOR_CHAR)' '); bFirstStr = FALSE; } else pColorString+=TStrLen(pColorString); pColorString+=TStrLen(pColorString); } /////////////////////////////////////////////////// //OPCODE /////////////////////////////////////////////////// ColorStrCpy(pColorString,pDasmInstr->Name,COLOR_OPCODE,0); ColorStrCat(pColorString," ",0,0); if(*pDasmInstr->Name && bFirstStr)//ڴδʹö { pColorString+=TStrFillTail(pColorString,m_pCodeDoc->m_UxAlign,(WISP_COLOR_CHAR)' '); bFirstStr = FALSE; } else pColorString+=TStrLen(pColorString); /////////////////////////////////////////////////// //Ԫ /////////////////////////////////////////////////// return OptItemToCS(pDasmInstr->op,3,pColorString,pDasmInstr); } WISP_COLOR_CHAR*CCodeView::OptItemToCS(const OPERAND_ITEM*OpArray,int nOp,WISP_COLOR_CHAR*pColorString,const INSTRUCTION_INFORMATION*pDasmInstr) { DIS_ADDRESS*pAddr; const OPERAND_ITEM*pOp; WCHAR szBuffer[32]; for(int n=0;nmode==mode_invalid) break; if(n>0) {// pColorString+=ColorStrCpy(pColorString,",",COLOR_OPTR,0); } if(pOp->mode==mode_address) {//ַṹ pAddr=(DIS_ADDRESS*)&pOp->addr; if(pOp->opersize!=-1) { pColorString+=ColorStrCpy(pColorString,CInstrSym::m_SizeSym[pOp->opersize],COLOR_KEYWORD,0); pColorString+=ColorStrCpy(pColorString," PTR ",COLOR_KEYWORD,0); } if(pDasmInstr->SegmentPrefix!=-1) { pColorString+=ColorStrCpy(pColorString,CInstrSym::m_SegStr[pDasmInstr->SegmentPrefix],COLOR_SEG_REG,0); pColorString+=ColorStrCpy(pColorString,":",COLOR_OPTR,0); } pColorString+=ColorStrCpy(pColorString,"[",COLOR_OPTR,0); if(pAddr->base!=-1)//BaseĴ { pColorString+=ColorStrCpy(pColorString,CInstrSym::m_RegStr[pAddr->address_size][pAddr->base],COLOR_REGISTER,0); } if(pAddr->index!=-1)//IndexĴ { if(pAddr->base!=-1) { pColorString+=ColorStrCpy(pColorString,"+",COLOR_OPTR,0); } pColorString+=ColorStrCpy(pColorString,CInstrSym::m_RegStr[pAddr->address_size][pAddr->index],COLOR_REGISTER,0); if(pAddr->scale>=1) { pColorString+=ColorStrCpy(pColorString,"*",COLOR_OPTR,0); pColorString+=ColorStrCpy(pColorString,CInstrSym::m_ScaleStr[pAddr->scale],COLOR_OPTR,0); } } if(pAddr->displacement_size || (pAddr->base==-1 && pAddr->index==-1)) {//displacement if(pAddr->index!=-1 || pAddr->base!=-1) { if(pAddr->displacement_size==1 && pAddr->displacement>=0xFFFFFF00) { pColorString+=ColorStrCpy(pColorString,"-",COLOR_OPTR,0); TSPrintf(szBuffer,CInstrSym::m_SizePtr[pAddr->displacement_size],-(int)pAddr->displacement); } else { pColorString+=ColorStrCpy(pColorString,"+",COLOR_OPTR,0); TSPrintf(szBuffer,CInstrSym::m_SizePtr[pAddr->displacement_size],pAddr->displacement); } } else TSPrintf(szBuffer,CInstrSym::m_SizePtr[pAddr->displacement_size],pAddr->displacement); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); } pColorString+=ColorStrCpy(pColorString,"]",COLOR_OPTR,0); } else { switch(pOp->mode) { case mode_register: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_REGISTER,0); break; case mode_segment: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_SEG_REG,0); break; case mode_far: TSPrintf(szBuffer,WSTR("%04X"),pOp->farptr.segment); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); pColorString+=ColorStrCpy(pColorString,WSTR(":"),COLOR_OPTR,0); TSPrintf(szBuffer,CInstrSym::m_SizePtr[pOp->opersize-2],pOp->farptr.offset); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); break; case mode_near: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_IMMED,0); break; case mode_immed: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_IMMED,0); break; case mode_datadup: if(n>0) break; for(n=0;ndatadup.count;n++) { if(n>0) { pColorString+=ColorStrCpy(pColorString,",",COLOR_OPTR,0); } TSPrintf(szBuffer,WSTR("%02X"),pOp->datadup.buffer[n]); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); } break; case mode_symbol: if(pOp->symbol.offset) { pColorString+=ColorStrCpy(pColorString,"OFFSET ",COLOR_KEYWORD,0); } pColorString+=ColorStrCpy(pColorString,pOp->symbol.string,COLOR_SYMBOL,0); break; case mode_align: if(n>0) break; TSPrintf(szBuffer,WSTR("%X"),pOp->align.nBytes); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); break; } } } return pColorString; } bool CCodeView::OnEventToggleBreakPoint(IN WISP_MSG* pMsg) { HANDLE hItem; ULPOS Address; if(gpSyser->m_pDebugger==NULL||gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return false; Address = (ULPOS)GetItemData(hItem,1); gpSyser->m_SyserUI.ToggleCodeBP(Address); return false; } bool CCodeView::OnEventToggleBreakPointState(IN WISP_MSG* pMsg) { HANDLE hItem; ULPOS Address; hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return false; Address = (ULPOS)GetItemData(hItem,ITEM_ADDRESS); gpSyser->m_SyserUI.ToggleCodeBPState(Address); return false; } bool CCodeView::OnEventToggleBookMarks(IN WISP_MSG*pMsg) { SYSTEM_EXPLORER.m_MultiCodeView.ToggleBookMark(); return false; } ================================================ FILE: Project/Syser/Source/CodeView.h ================================================ #ifndef _CODE_VIEW_H_ #define _CODE_VIEW_H_ #include "SyserUI.h" #define CV_WS_RANGE_SCROLL 0x8000000 typedef TList ADDRESSNAVIGATIONLIST; typedef TList CROSSREFERENCELIST; #define MAX_JMP_LINE_COUNT 5 #define MAX_POS_LIST_COUNT 100 struct NEAR_JMP_ENRTY { ULPOS StartAddr; ULPOS EndAddr; int StartLine; int EndLine; }; enum { ITEM_STATE = 0, ITEM_ADDRESS, ITEM_BIN_DATA, ITEM_ASM_CODE, ITEM_COMMENT, ITEM_MAX_COUNT }; enum CODE_VIEW_ADDR_MOD { CODE_VIEW_ADDRESS_MOD = 0, CODE_VIEW_OFFSET_MOD, CODE_VIEW_REL_TO_EIP_MOD, }; class CCodeView : public CWispList { //typedef bool (CCodeView::*DATA_HOTKEY_FP)(IN UINT Index); //class CCodeHotKey //{ //public: // UINT m_ViewIndex; // DATA_HOTKEY_FP m_fpHotKey; // CCodeHotKey(){}; // CCodeHotKey(UINT Index,DATA_HOTKEY_FP fpHotKey):m_ViewIndex(Index),m_fpHotKey(fpHotKey){}; // ~CCodeHotKey(){} //}; typedef TMap CODEHOTKEYMAP; public: CCodeView(); ~CCodeView(); typedef TList CAddrList; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnScrollEvent) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnChar) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG(OnMouseDBClick) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG(OnCmdVSlide) DECLARE_WISP_MSG(OnCmdStringGoto) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventCopy) DECLARE_WISP_MSG_EVENT(OnEventFMAutomiatic) DECLARE_WISP_MSG_EVENT(OnEventFMSystemExplorer) DECLARE_WISP_MSG_EVENT(OnEventFMSourceCodeExplorer) DECLARE_WISP_MSG_EVENT(OnEventAddressModeHex) DECLARE_WISP_MSG_EVENT(OnEventOffsetModeHex) DECLARE_WISP_MSG_EVENT(OnEventRelativeToEIP) DECLARE_WISP_MSG_EVENT(OnEventCrossReference) DECLARE_WISP_MSG_EVENT(OnEventXrefOperand) DECLARE_WISP_MSG_EVENT(OnEventToggleBreakPoint) DECLARE_WISP_MSG_EVENT(OnEventToggleBreakPointState) DECLARE_WISP_MSG_EVENT(OnEventToggleBookMarks); DECLARE_WISP_MSG_EVENT(OnEventGotoHere) DECLARE_WISP_MSG_EVENT(OnEventNextPos) DECLARE_WISP_MSG_EVENT(OnEventPrevPos) DECLARE_WISP_MSG_EVENT(OnEventSavePos) DECLARE_WISP_MSG_EVENT(OnEventEmptyPosList) //DECLARE_WISP_MSG_EVENT(OnEventAnalyzeFromAddress) DECLARE_WISP_MSG_EVENT(OnEventToggleSymbol) DECLARE_WISP_MSG_EVENT(OnEventToggleFullSymbol) DECLARE_WISP_MSG_EVENT(OnEventEnterComment) DECLARE_WISP_MSG_EVENT(OnEventStringReference) DECLARE_WISP_MSG_EVENT(OnEventEditCode) DECLARE_WISP_MSG_EVENT(OnGetNextTrace) DECLARE_WISP_MSG_EVENT(OnGetPrevTrace) DECLARE_WISP_MSG_EVENT(OnPrevPos) DECLARE_WISP_MSG_EVENT(OnNextPos) DECLARE_WISP_MSG_EVENT(OnSavePos) DECLARE_WISP_MSG_EVENT(OnEnterAddr) DECLARE_WISP_MSG_EVENT(OnStartAddressInc) DECLARE_WISP_MSG_EVENT(OnStartAddressDec) DECLARE_WISP_MSG_EVENT(OnActiveCodeView) public: bool OnDispatchShortcatKey(IN UINT Index,IN WISP_MSG*pMsg); bool OnActiveCodeView(IN UINT Index); void ItemClickNotify(HANDLE hItem,int Col); void ItemRClickNotify(HANDLE hItem,int Col); bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void SetStartAddress(ULPOS Address,bool bRecordAddr=false); void CenterVisibleAddress(ULPOS Address); void GetCodeRange(DWORD*pStart,DWORD*pEnd); bool BuildASM(HANDLE hItem,CWispString& String); bool UpdateView(); void UpdateViewAPICall(ULPOS Address,PCSTR szAPIName,HANDLE hItem,int nLine); void OnPrevPos(); void OnNextPos(); void OnSavePos(); void EmptyPosList(); void EnterAddr(); void PopupMenu(IN WISP_MSG*pMsg); void SetSelectItemByAddress(ULPOS Address); void GetAddressString(ULPOS Address,WISP_PSTR szBuffer); int GetCrossReferenceList(DWORD Address,CROSSREFERENCELIST* pCrossReferenceList); int GetDataReferenceList(DWORD Address,CROSSREFERENCELIST* pList,DWORD* VarAddr); bool CrossReferenceByAddr(ULPOS Address); bool XrefOperandByAddr(ULPOS Address); void UpdateCodeViewAddrSym(); void RecordCurAddr(ULPOS Address,ULPOS PrevAddress); void ToggleHighlight(IN WISP_MSG* pMsg); public: CWispDIBList* m_StateDIBList; CWispString m_OrgAsmInstraction; int m_ScrollSpace; CODE_VIEW_ADDR_MOD m_AddrShowMode; ULPOS m_BaseActiveAddress; ULPOS m_CurAddr; ULPOS m_LastAddr; COLORREF m_ColorTable[MAX_COLOR]; CSyserCodeDoc* m_pCodeDoc; CWispDIBList m_ColIconList; CAddrList m_AddrList; CAddrList::IT m_AddrIter; HANDLE m_hPopupMenuItem; int m_PopupMenuCol; ULPOS m_RightMenuDataRefAddr; CWispMenu m_PopupMenu; HANDLE m_hRemoveItem; NEAR_JMP_ENRTY m_NearJmpPos[MAX_JMP_LINE_COUNT]; int m_NearJmpCount; int m_iActivedNearJmp; int m_JmpLineSpace; void DrawJmpLine(NEAR_JMP_ENRTY*pEntry,int Index,COLORREF Color); bool GetItemLineByAddr(ULPOS Address,int *pLine); void UpdateNearJmpState(); ULSIZE ColorDasm(ULPOS EIP,ULSIZE MaxSize,WISP_COLOR_CHAR*pColorString,ULSIZE nCodeAlgn = 0,INSTRUCTION_INFORMATION* DasmInstr=NULL,BYTE* CodeBuff=NULL); private: WISP_COLOR_CHAR*InstrToCS(OUT const INSTRUCTION_INFORMATION*pDasmInstr,WISP_COLOR_CHAR*pColorString);//ɫ WISP_COLOR_CHAR*OptItemToCS(const OPERAND_ITEM*OpArray,int nOp,WISP_COLOR_CHAR*pColorString,const INSTRUCTION_INFORMATION*pDasmInstr); WISP_CHAR m_HighlightString[256]; BYTE m_HighlightTXTColor,m_HighlightBKColor; CODEHOTKEYMAP m_HotKeyMap; void AttachShortcutKey(); }; #endif ================================================ FILE: Project/Syser/Source/ColorOption.cpp ================================================ #include "StdAfx.h" #include "ColorOption.h" int ColorOptionRef = 0; COLOR_OPTION OrgColorOption= { 0,//CRCCode WISP_RGB(0,0,0), //clrBackground WISP_RGB(255,255,255), //clrText WISP_RGB(80,176,255), //clrSelectedFrame WISP_RGB(88,88,127), //clrLostFocusSelFrame WISP_RGB(255,0,0), //clrChgText WISP_RGB(128,196,255), //clrSpeicalText ////////////////////////////////////////////////////////////////////////// //Code View WISP_RGB(0,0,0), //clrCVBK WISP_RGB(80,176,255), //clrCVSelectedFrame WISP_RGB(88,88,127), //clrCVLostFocusSelFrame WISP_RGB(255,255,255), //clrCVAddr WISP_RGB(255,255,255), //clrCVPrefix; WISP_RGB(255,255,255), //clrCVOpCode; WISP_RGB(0,255,255), //clrCVReg; WISP_RGB(0,192,192), //clrCVSegReg; WISP_RGB(0,255,128), //clrCVImmed; WISP_RGB(255,255,255), //clrCVOptr; WISP_RGB(255,255,0), //clrCVSymbol; WISP_RGB(255,255,0), //clrCVComment; WISP_RGB(255,255,255), //clrCVKeyword; WISP_RGB(255,255,0), //clrCVStr; WISP_RGB(255,0,0), //clrCVBPXStrip; WISP_RGB(128,128,128), //clrCVEIPStrip; WISP_RGB(255,128,0), //clrCVBPXEIPStrip; WISP_RGB(255,128,0), //clrCVAPIName; WISP_RGB(255,125,125), //clrCVAPIParamType; WISP_RGB(192,192,192), //clrCVAPIParamName; WISP_RGB(255,255,255), //clrCVJmpLine WISP_RGB(255,255,0), //clrCVActivedJmpLine WISP_RGB(0x68,0x38,0xc6), //clrCVPrefixByte WISP_RGB(0x99,0x16,0x22), //clrCVOpcodeByte WISP_RGB(0x1a,0x33,0xe4), //clrCVRegRMByte; WISP_RGB(0x39,0xef,0x04), //clrCVSIBByte WISP_RGB(0xd0,0x1f,0xdf), //clrCVOtherOpcodeByte WISP_RGB(0x70,0x70,0x70), //clrCV3DNowByte //Code View ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// //Source Debug WISP_RGB(0,0,0), //clrSDBK; WISP_RGB(80,176,255), //clrSDSelectedFrame; WISP_RGB(88,88,127), //clrSDLostFocusSelFrame WISP_RGB(255,255,255), //clrSDKeyword; WISP_RGB(192,192,192), //clrSDId; WISP_RGB(64,128,255), //clrSDPrekeyWord; WISP_RGB(128,128,128), //clrSDCmtBlock; WISP_RGB(128,128,128), //clrSDCmtLine; WISP_RGB(255,255,0), //clrSDString; WISP_RGB(0,255,128), //clrSDNum; WISP_RGB(255,255,255), //clrSDOperation; WISP_RGB(225,125,125), //clrSDClassName; WISP_RGB(225,125,125), //clrSDStructName; WISP_RGB(225,125,125), //clrSDUnionName; WISP_RGB(225,125,125), //clrSDTypedefName; WISP_RGB(255,128,0), //clrSDFunctionName; WISP_RGB(123,123,123), //clrSDUnknown; //Source Debug ////////////////////////////////////////////////////////////////////////// }; COLOR_OPTION ColorOption; ================================================ FILE: Project/Syser/Source/ColorOption.h ================================================ #ifndef _COLOR_OPTION_H_ #define _COLOR_OPTION_H_ extern int ColorOptionRef; struct COLOR_OPTION { DWORD CRCCode; COLORREF clrBackground; COLORREF clrText; COLORREF clrSelectedFrame; COLORREF clrLostFocusSelFrame; COLORREF clrChgText; COLORREF clrSpeicalText; ////////////////////////////////////////////////////////////////////////// //Code View COLORREF clrCVBK; COLORREF clrCVSelectedFrame; COLORREF clrCVLostFocusSelFrame; COLORREF clrCVAddr; COLORREF clrCVPrefix; COLORREF clrCVOpCode; COLORREF clrCVReg; COLORREF clrCVSegReg; COLORREF clrCVImmed; COLORREF clrCVOptr; COLORREF clrCVSymbol; COLORREF clrCVComment; COLORREF clrCVKeyword; COLORREF clrCVStr; COLORREF clrCVBPXStrip; COLORREF clrCVEIPStrip; COLORREF clrCVBPXEIPStrip; COLORREF clrCVAPIName; COLORREF clrCVAPIParamType; COLORREF clrCVAPIParamName; COLORREF clrCVJmpLine; COLORREF clrCVActivedJmpLine; COLORREF clrCVPrefixByte; COLORREF clrCVOpcodeByte; COLORREF clrCVRegRMByte; //opcode RegRM ֽڵɫ COLORREF clrCVSIBByte; //opcode SIB ֽڵɫ COLORREF clrCVOtherOpcodeByte; //opcode ֽڵɫ COLORREF clrCV3DNowByte; //AMD 3dNow! ָһֽ //Code View ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// //Source Debug COLORREF clrSDBK; COLORREF clrSDSelectedFrame; COLORREF clrSDLostFocusSelFrame; COLORREF clrSDKeyword; COLORREF clrSDId; COLORREF clrSDPrekeyWord; COLORREF clrSDCmtBlock; COLORREF clrSDCmtLine; COLORREF clrSDString; COLORREF clrSDNum; COLORREF clrSDOperation; COLORREF clrSDClassName; COLORREF clrSDStructName; COLORREF clrSDUnionName; COLORREF clrSDTypedefName; COLORREF clrSDFunctionName; COLORREF clrSDUnknown; //Source Debug ////////////////////////////////////////////////////////////////////////// }; extern COLOR_OPTION ColorOption; extern COLOR_OPTION OrgColorOption; #endif ================================================ FILE: Project/Syser/Source/CommentList.cpp ================================================ #include "StdAfx.h" #include "CommentList.h" #include "Syser.h" WISP_MENU_RES_ITEM CommentMenu[]= { {WSTR("Goto"), EVENT_ID_GOTO,8*16}, {WSTR("Remove"),EVENT_ID_REMOVE,12*16+10}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CCommentList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CCommentList) WISP_MSG_EVENT_MAP(EVENT_ID_GOTO,OnEventGoto); WISP_MSG_EVENT_MAP(EVENT_ID_REMOVE,OnEventRemove); WISP_MSG_EVENT_MAP_END CCommentList::CCommentList() { } void CCommentList::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("Comment List"),0,0,400,380,NULL,CMD_ID_COMMENT_LIST,WISP_WLS_TREE|WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); Center(); } } bool CCommentList::OnCreate(IN WISP_MSG*pMsg) { m_hSelectItem = NULL; m_PopupMenu.CreatePopupMenu(CommentMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hGotoMenuItem = m_PopupMenu.GetItem(EVENT_ID_GOTO); AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,9*16+3)); SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); InsertColumn(WSTR("Module/Offset"),120); InsertColumn(WSTR("TimeStamp/Comment"),150,WISP_WLCS_EDITABLE); UpdateContext(); return true; } bool CCommentList::OnClose(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CCommentList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CCommentList::OnMouseDBClick(IN WISP_MSG*pMsg) { ULPOS Address; HANDLE hModuleItem; CDbgModule*pDbgModule; CCommentModule*pCommentModule; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { m_hSelectItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(m_hSelectItem && GetItemLevel(m_hSelectItem)==1) { Address = (ULPOS)GetItemData(m_hSelectItem,1); hModuleItem = GetParentItem(m_hSelectItem); pCommentModule = (CCommentModule*)GetItemData(hModuleItem,0); pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(pCommentModule->m_ModuleName); #ifdef CODE_OS_NT_DRV if(pDbgModule==NULL) pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(pCommentModule->m_ModuleName); #endif if(pDbgModule) VIEW_CODE(Address+pDbgModule->m_ModuleBase); } } return true; } bool CCommentList::OnKeyEvent(IN WISP_MSG*pMsg) { if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return true; if(pMsg->KeyEvent.bKeyDown==false) { if(pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) { m_hSelectItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); m_PopupMenu.EnableItem(EVENT_ID_GOTO,GetItemLevel(m_hSelectItem)==1); if(m_hSelectItem) m_PopupMenu.Popup(); } } return true; } bool CCommentList::OnEventGoto(IN WISP_MSG*pMsg) { ULPOS Address; HANDLE hModuleItem; CDbgModule*pDbgModule; CCommentModule*pCommentModule; if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return true; Address = (ULPOS)GetItemData(m_hSelectItem,1); hModuleItem = GetParentItem(m_hSelectItem); pCommentModule = (CCommentModule*)GetItemData(hModuleItem,0); pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(pCommentModule->m_ModuleName); #ifdef CODE_OS_NT_DRV if(pDbgModule==NULL) pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(pCommentModule->m_ModuleName); #endif if(pDbgModule) VIEW_CODE(Address+pDbgModule->m_ModuleBase,true); return true; } bool CCommentList::OnEventRemove(IN WISP_MSG*pMsg) { CCmtStr*pStr; CCommentModule*pCommentModule; int Level = GetItemLevel(m_hSelectItem); if(Level==0) { pCommentModule = (CCommentModule*) GetItemData(m_hSelectItem,0); if(pCommentModule) { gpSyser->m_SyserUI.DetachCommentModuleToProcess(pCommentModule); RemoveItem(m_hSelectItem); } } else { pStr = (CCmtStr*) GetItemData(m_hSelectItem,0); CCommentMap::IT Iter = *pStr; HANDLE hParent = GetParentItem(m_hSelectItem); pCommentModule = (CCommentModule*) GetItemData(hParent,0); pCommentModule->m_CommentMap.Remove(Iter); RemoveItem(m_hSelectItem); } UPDATE_CODE_VIEW(); return true; } void CCommentList::UpdateContext() { HANDLE hItem,hModuleItem; if(IsWindow()==false) return; ClearChildItem(); for(CCommentContainer::IT ModuleIter=gpSyser->m_SyserUI.m_CommentContainer.Begin();ModuleIter!=gpSyser->m_SyserUI.m_CommentContainer.End();ModuleIter++) { hModuleItem = InsertItemA(TGetFileName((PCSTR)ModuleIter->m_ModuleName)); SetItemNum(hModuleItem,1,(DWORD)ModuleIter->m_ModuleID,WSTR("%08X")); SetItemData(hModuleItem,0,(NUM_PTR)&(*ModuleIter)); for(CCommentMap::IT Iter=ModuleIter->m_CommentMap.Begin();Iter!=ModuleIter->m_CommentMap.End();Iter++) { hItem=InsertItem(Iter.Key(),hModuleItem,WSTR("%08X")); SetItemTextA(hItem,1,(PCSTR)(*Iter)); SetItemData(hItem,0,(NUM_PTR)&(*Iter)); SetItemData(hItem,1,(NUM_PTR)Iter.Key()); } } } bool CCommentList::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(Col!=1||GetItemLevel(hItem)!=1) return false; return true; } bool CCommentList::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { char szBuffer[256]; CCmtStr*pStr; if(Col!=1||GetItemLevel(hItem)!=1) return false; pStr = (CCmtStr*)GetItemData(hItem,0); UnicodeToAnsi(String,szBuffer,sizeof(szBuffer)); *pStr=szBuffer; UPDATE_CODE_VIEW(); return true; } ================================================ FILE: Project/Syser/Source/CommentList.h ================================================ #ifndef _COMMENT_LIST_H_ #define _COMMENT_LIST_H_ class CCommentList : public CWispList { public: CCommentList(); void Popup(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnMouseDBClick); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventGoto) DECLARE_WISP_MSG_EVENT(OnEventRemove) bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void UpdateContext(); CWispMenu m_PopupMenu; HANDLE m_hSelectItem; HANDLE m_hGotoMenuItem; }; #endif ================================================ FILE: Project/Syser/Source/ConsoleWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SyserCmd.h" #include "DebugCmd.h" #include "OtherCmd.h" #include "ShareCmd.h" #include "SyserOption.h" #define SYSER_VALIDATE_SN WISP_MSG_MAP_BEGIN (CConsoleWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_END(CWispConsoleWnd) CConsoleWnd::CConsoleWnd() { m_IsInBatProcess = false; m_Radix = 16; m_CDTColor[CDT_VADDR] = SC_LIGHT_GREEN; m_CDTColor[CDT_PADDR] = SC_LIGHT_BLUE; m_CDTColor[CDT_STRING] = SC_LIGHT_YELLOW; m_CDTColor[CDT_SYMBOL] = SC_LIGHT_YELLOW; m_CDTColor[CDT_HEX_NUM] = SC_WHITE; m_CDTColor[CDT_DEC_NUM] = SC_WHITE; } CConsoleWnd& CConsoleWnd::operator <<(CON_DATA_TYPE Type) { SetFontColor((BYTE)Type); return *this; } CConsoleWnd& CConsoleWnd::operator <<(BYTE Num8) { WCHAR szBuffer[32]; TSPrintf(szBuffer,WSTR("%02X"),Num8); Output(szBuffer); return *this; } CConsoleWnd& CConsoleWnd::operator <<(WORD Num16) { WCHAR szBuffer[32]; TSPrintf(szBuffer,WSTR("%04X"),Num16); Output(szBuffer); return *this; } CConsoleWnd& CConsoleWnd::operator <<(DWORD Num32) { WCHAR szBuffer[32]; TSPrintf(szBuffer,WSTR("%08X"),Num32); Output(szBuffer); return *this; } CConsoleWnd& CConsoleWnd::operator <<(QWORD Num64) { WCHAR szBuffer[32]; TSPrintf(szBuffer,WSTR("%I64X"),Num64); Output(szBuffer); return *this; } CConsoleWnd& CConsoleWnd::operator <<(const WCHAR*String) { Output(String); return *this; } bool CConsoleWnd::OnCreate(IN WISP_MSG*pMsg) { for(int n=0;DebugCmdTable[n].CmdStr;n++) { InsertCmd(DebugCmdTable[n].CmdStr,(CMDPROC)DebugCmdTable[n].CmdProc,gpSyser,DebugCmdTable[n].CmdCmt,DebugCmdTable[n].CmdUsage); } for(int n=0;OtherCmdTable[n].CmdStr;n++) { InsertCmd(OtherCmdTable[n].CmdStr,(CMDPROC)OtherCmdTable[n].CmdProc,gpSyser,OtherCmdTable[n].CmdCmt,OtherCmdTable[n].CmdUsage); } for(int n=0;ShareCmdTable[n].CmdStr;n++) { InsertCmd(ShareCmdTable[n].CmdStr,(CMDPROC)ShareCmdTable[n].CmdProc,gpSyser,ShareCmdTable[n].CmdCmt,ShareCmdTable[n].CmdUsage); } #ifdef CODE_OS_NT_DRV for(int n=0;SysCmdTable[n].CmdStr;n++) { InsertCmd(SysCmdTable[n].CmdStr,(CMDPROC)SysCmdTable[n].CmdProc,gpSyser,SysCmdTable[n].CmdCmt,SysCmdTable[n].CmdUsage); } #endif m_Option.RegisterValueAry(SyserOptVal); SetHistoryLines(SyserOption.iHistroyLines); return true; } bool CConsoleWnd::OnKeyEvent(IN WISP_MSG*pMsg) { int Length,NewLength; CHAR szBuffer[MAX_SYMBOL_LEN]; WCHAR wszBuffer[MAX_SYMBOL_LEN]; WISP_PSTR pStr; if(pMsg->KeyEvent.KeyType == WISP_VK_TAB && pMsg->KeyEvent.bKeyDown) { pStr = TStrRChr((WISP_PCSTR)m_InputStr,(WCHAR)' '); if(pStr && TStrLen(pStr)>2) { Length = TStrCpy(szBuffer,&pStr[1]); NewLength = gpSyser->m_SyserUI.GetFullSymbol(szBuffer); if(NewLength>Length) { m_InputStr.Truncate((int)(pStr-m_InputStr.m_pData)+1); AnsiToUnicode(szBuffer,wszBuffer,MAX_SYMBOL_LEN); m_InputStr+=wszBuffer; m_CaretPos.x = m_InputStr.Length(); } } } return true; } void CConsoleWnd::BatBeginNodify(WISP_PCSTR szCmd) { m_IsInBatProcess = true; } void CConsoleWnd::BatEndNodify(WISP_PCSTR szCmd) { m_IsInBatProcess = false; } void CConsoleWnd::AfterRunCmdNotify(const CMD_CHAR*szCmd) { #ifdef CODE_OS_NT_DRV #ifdef SYSER_VALIDATE_SN if(gpSyser->m_SysInfo.m_bSNPass==false && gpSyser->m_SysInfo.m_bEvlVer==false) { OUTPUT(WSTR("%<3>%s\n"),(PCWSTR)gpSyser->m_SysInfo.m_LicTip); } #endif #endif } WISP_MSG_MAP_BEGIN (CTerminalWnd) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_END(CWispTerminalWnd) bool CTerminalWnd::OnKeyEvent(IN WISP_MSG*pMsg) { int Length,NewLength; CHAR szBuffer[MAX_SYMBOL_LEN]; WCHAR wszBuffer[MAX_SYMBOL_LEN]; WISP_PSTR pStr; if(pMsg->KeyEvent.KeyType == WISP_VK_TAB && pMsg->KeyEvent.bKeyDown) { pStr = TStrRChr((WISP_PCSTR)m_InputStr,(WCHAR)' '); if(pStr && TStrLen(pStr)>2) { Length = TStrCpy(szBuffer,&pStr[1]); NewLength = gpSyser->m_SyserUI.GetFullSymbol(szBuffer); if(NewLength>Length) { m_InputStr.Truncate((int)(pStr-m_InputStr.m_pData)+1); AnsiToUnicode(szBuffer,wszBuffer,MAX_SYMBOL_LEN); m_InputStr+=wszBuffer; m_CaretPos.x = m_InputStr.Length(); } } } return true; } ================================================ FILE: Project/Syser/Source/ConsoleWnd.h ================================================ #ifndef _SYSER_CONSOLE_WND_H_ #define _SYSER_CONSOLE_WND_H_ enum CON_DATA_TYPE { CDT_VADDR, CDT_PADDR, CDT_STRING, CDT_SYMBOL, CDT_HEX_NUM, CDT_DEC_NUM, MAX_COLOR_COUNT }; class CConsoleWnd : public CWispConsoleWnd { public: CConsoleWnd(); bool m_IsInBatProcess; BYTE m_CDTColor[MAX_COLOR_COUNT]; int m_Radix; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnKeyEvent) void BatBeginNodify(WISP_PCSTR szCmd); void BatEndNodify(WISP_PCSTR szCmd); void AfterRunCmdNotify(const CMD_CHAR*szCmd); public: CConsoleWnd& operator <<(BYTE Num8); CConsoleWnd& operator <<(WORD Num16); CConsoleWnd& operator <<(DWORD Num32); CConsoleWnd& operator <<(QWORD Num64); CConsoleWnd& operator <<(CON_DATA_TYPE Type); CConsoleWnd& operator <<(const WCHAR*String); }; class CTerminalWnd : public CWispTerminalWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) }; #endif ================================================ FILE: Project/Syser/Source/CopyOnWritePatch.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "CopyOnWritePatch.h" void OnMiCopyOnWritePatchStart() { ULONG_PTR Flags; SyserSaveFlags(&Flags); SyserCloseInterrupt(); DWORD dwOldCR0; NTSTATUS Result; ULONGLONG PhysAddr; ULPOS PageAddr; CCodeBPMap::IT Iter; ULPOS VirtualAddress; if(gpSyser->m_bCopyOnWriteFastCall) VirtualAddress = Reg.GeneReg[ECX_IDX]; else VirtualAddress = GET_DWORD(Reg.GeneReg[ESP_IDX],4); PageAddr = VirtualAddress & MP_NOT_MASK; for(Iter = gpSyser->m_SyserUI.m_CodeBPMap.Begin();Iter.IsExist();Iter++) { if((Iter->Address & MP_NOT_MASK)==PageAddr) break; } if(Iter.IsExist()==false)//ûַ쳣ַͬһҳĶϵ㣬ͷ goto local_1; if(MapToPAddr(PageAddr,&PhysAddr)==false)//ҳ goto local_1; for(Iter = gpSyser->m_SyserUI.m_CodeBPMap.Begin();Iter.IsExist();Iter++) { if(Iter->State == BP_STATE_ENABLE && (Iter->Address & MP_NOT_MASK)==PageAddr && (Iter.Key()&MP64_NOT_MASK)==PhysAddr) { dwOldCR0 = SyserClearCR0WP(); if(SafeWriteByte(*(void**)&Iter->Address,Iter->CodeBackup)) Iter->State = BP_STATE_RECOV_COPY_ON_WRITE; SyserRestoreCR0WP(dwOldCR0); } } local_1: SyserRestoreFlags(Flags); } void OnMiCopyOnWritePatchEnd() { ULONG_PTR Flags; SyserSaveFlags(&Flags); SyserCld(); DWORD dwOldCR0; ULONGLONG PhysAddr; CCodeBPMap::IT Iter; AgainRecov: for(Iter = gpSyser->m_SyserUI.m_CodeBPMap.Begin();Iter.IsExist();Iter++) { if(Iter->State!=BP_STATE_RECOV_COPY_ON_WRITE) continue; if(MapToPAddr(Iter->Address,&PhysAddr)==false) {//ӳʧɾ˶ϵ gpSyser->m_SyserUI.m_CodeBPMap.Remove(Iter); goto AgainRecov; } if(Iter.Key()==PhysAddr) {//ַδıдCC dwOldCR0 = SyserClearCR0WP(); if(SafeWriteByte(*(void**)&Iter->Address,0xcc)) Iter->State = BP_STATE_ENABLE; SyserRestoreCR0WP(dwOldCR0); } else {//ϵַı //OUTPUT(WSTR("Phys Change %08X->%08X %08X\n"),Iter->Address,(ULPOS)Iter.Key(),(ULPOS)PhysAddr); BREAK_POINT CodeBP = *Iter; gpSyser->m_SyserUI.m_CodeBPMap.Remove(Iter); Iter = gpSyser->m_SyserUI.m_CodeBPMap.InsertUnique(PhysAddr,CodeBP); if(Iter.IsExist()) { dwOldCR0 = SyserClearCR0WP(); if(SafeWriteByte(*(void**)&Iter->Address,0xcc)) Iter->State = BP_STATE_ENABLE; SyserRestoreCR0WP(dwOldCR0); goto AgainRecov; } } } SyserRestoreFlags(Flags); } int GetFuncReturn(BYTE*CodeBuff,int MaxSize) { bool bRetExist; ULPOS Address,MaxJmpAddr,DesAddr,LastRet; int CodeLen; BYTE OpCode,*Buffer; Address = 0; LastRet = 0; MaxJmpAddr = 0; bRetExist = false; while(Address < (ULPOS)MaxSize) { Buffer = &CodeBuff[Address]; OpCode =*Buffer; CodeLen = CInstrSym::InstrLen(Buffer,MaxSize-Address); MIN_LIMIT(CodeLen,1); if(bRetExist==false && (OpCode==0xC3 || OpCode==0xC2)) { LastRet = Address; bRetExist = true; } if(Address==0 && OpCode==0xE9) return Address+CodeLen; if(OpCode==0xEB || (OpCode>=0x70 && OpCode<=0x7f)) { DesAddr = Address+(char)Buffer[1]+2; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } else if(OpCode==0x0F && (Buffer[1]>=0x80 && Buffer[1]<=0x8F)) { DesAddr = Address+(int)GET_DWORD(Buffer,2)+6; if(DesAddr>MaxJmpAddr) MaxJmpAddr = DesAddr; } if(Address>=MaxJmpAddr) { if( OpCode==0xCC || OpCode==0xC3 || OpCode==0xC2 || (OpCode==0xE9 && (int)GET_DWORD(Buffer,1) < 0) || (OpCode==0xEB && (char)GET_BYTE(Buffer,1) < 0) && bRetExist) { return Address; } } Address+=CodeLen; } if(bRetExist) return LastRet; return 0; } //ȥFFԹɱֽڣȫֱַJMPƫ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BYTE W2K_ntkrnlpa[] = { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x2C, 0x53, 0x8B, 0xDA, 0x89, 0x4D, 0xE0, 0x56, 0x8B, 0x03, 0x33, 0xC9, 0x89, 0x45, 0xD4, 0x8B, 0x43, 0x04, 0x89, 0x45, 0xD8, 0x8B, 0x03, 0x25, 0x00, 0x02, 0x00, 0x00, 0x57, 0x0B, 0xC1, 0x89, 0x4D, 0xF4, 0x75, 0x07, 0xC7, 0x45, 0xF4, 0x01, 0x00, 0x00, 0x00 }; BYTE W2K_ntoskrnl[] = { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x28, 0x83, 0x65, 0xF0, 0x00, 0x53, 0x8B, 0x1A, 0x56, 0xF6, 0xC7, 0x02, 0x57, 0x89, 0x55, 0xF4, 0x89, 0x4D, 0xDC, 0x89, 0x5D, 0xEC, 0x75, 0x07, 0xC7, 0x45, 0xF0, 0x01, 0x00, 0x00, 0x00, 0x8B, 0x0D, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xEB, 0x0C, 0x8D, 0x04, 0x5B, }; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BYTE XP_SP2_ntkrnlpa[]= { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x2C, 0x83, 0x65, 0xF0, 0x00, 0x53, 0x56, 0x57, 0x89, 0x55, 0xF4, 0x89, 0x4D, 0xE0, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x58, 0x44, 0x8B, 0x0A, 0x8B, 0x7A, 0x04, 0x8B, 0xC1, 0x25, 0x00, 0x02, 0x00, 0x00, 0x33, 0xF6, 0x0B, 0xC6, 0x89, 0x4D }; BYTE XP_SP2_ntoskrnl[]= { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x28, 0x53, 0x56, 0x33, 0xF6, 0x57, 0x89, 0x55, 0xF4, 0x89, 0x4D, 0xDC, 0x89, 0x75, 0xF0, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x58, 0x44, 0x8B, 0x02, 0xF6, 0xC4, 0x02, 0x89, 0x45, 0xEC, 0x0F, 0x84, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x0D }; BYTE XP_SP1_ntoskrnl[]= { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x24, 0x53, 0x56, 0x57, 0x33, 0xFF, 0x89, 0x55, 0xF8, 0x89, 0x4D, 0xF0, 0x89, 0x7D, 0xEC, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x4D, 0xF8, 0x8B, 0x58, 0x44, 0x8B, 0x01, 0xF6, 0xC4, 0x02, 0x89, 0x45, 0xE8, 0x75, 0xFF, 0xC7, 0x45, 0xEC, 0x01, 0x00, 0x00, }; BYTE XP_ntoskrnl[] = { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x24, 0x53, 0x56, 0x57, 0x33, 0xFF, 0x89, 0x55, 0xF8, 0x89, 0x4D, 0xF0, 0x89, 0x7D, 0xEC, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x4D, 0xF8, 0x8B, 0x58, 0x44, 0x8B, 0x01, 0xF6, 0xC4, 0x02, 0x89, 0x45, 0xE8, 0x0F, 0x84, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x15, } ; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BYTE W2003_ntkrnlpa[]= { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x30, 0x53, 0x83, 0x65, 0xE4, 0x00, 0x83, 0x65, 0xE8, 0x00, 0x56, 0x8B, 0xF2, 0x8B, 0x46, 0x04, 0x57, 0x8B, 0x3E, 0x89, 0x45, 0xD4, 0x8B, 0xD7, 0x0F, 0xAC, 0xC2, 0x0C, 0x8B, 0xDA, 0x81, 0xE3, 0xFF, 0xFF, 0xFF, 0x03, 0x89, 0x5D, 0xD8, 0x6B, 0xDB, 0x1C, 0x03, }; BYTE W2003_ntoskrnl[]= { 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x2C, 0x53, 0x56, 0x8B, 0x32, 0x8B, 0xC6, 0xC1, 0xE8, 0x0C, 0x8B, 0xD9, 0x8B, 0x0D, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0x45, 0xD8, 0x8D, 0x04, 0x40, 0x57, 0x8D, 0x3C, 0xC1, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x40, 0x44, 0x33, 0xC9, 0x3B, 0x1D }; BYTE W2003_SP1_ntkrnlpa[]= { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x34, 0x8B, 0x42, 0x04, 0x53, 0x56, 0x8B, 0xF1, 0x57, 0x8B, 0x3A, 0x89, 0x45, 0xD0, 0x8B, 0xCF, 0x0F, 0xAC, 0xC1, 0x0C, 0x8B, 0xD9, 0x81, 0xE3, 0xFF, 0xFF, 0xFF, 0x03, 0x89, 0x5D, 0xD4, 0x6B, 0xDB, 0x1C, 0x03, 0x1D, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, }; BYTE W2003_SP1_ntoskrnl[]= { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xEC, 0x30, 0x53, 0x56, 0x57, 0x8B, 0x3A, 0x8B, 0xC7, 0xC1, 0xE8, 0x0C, 0x8B, 0xF1, 0x8B, 0x0D, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0x45, 0xD0, 0x8D, 0x04, 0x40, 0x8D, 0x1C, 0xC1, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x40, 0x38, 0x33, 0xC9, 0x3B, 0x35, } ; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BYTE Vista_ntkrnlpa[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xE4, 0xF8, 0x83, 0xEC, 0x54, 0x83, 0x64, 0x24, 0x14, 0x00, 0x53, 0x56, 0x8B, 0x75, 0x0C, 0x8B, 0x0E, 0x57, 0x89, 0x4C, 0x24, 0x50, 0x8B, 0x46, 0x04, 0x89, 0x44, 0x24, 0x54, 0x89, 0x4C, 0x24, 0x48, 0x89, 0x44, 0x24, 0x4C, 0x0F, 0xAC, 0xC1, 0x0C, 0x8B, 0xD9, 0x81, 0xE3, 0xFF, 0xFF, 0xFF, 0x03, 0x8B, 0xFB, 0x6B, 0xFF, 0x1C }; BYTE Vista_ntoskrnl[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xE4, 0xF8, 0x83, 0xEC, 0x3C, 0x8B, 0x45, 0x0C, 0x83, 0x64, 0x24, 0x14, 0x00, 0x53, 0x56, 0x57, 0x8B, 0x38, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x0D, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x40, 0x48, 0x89, 0x7C, 0x24, 0x28, 0xC1, 0xEF, 0x0C, 0x8B, 0xF7, }; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// BYTE VistaSP1_ntkrnlpa_6000_16584[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xE4, 0xF8, 0x83, 0xEC, 0x54, 0x8B, 0x45, 0x0C, 0x83, 0x64, 0x24, 0x1C, 0x00, 0x53, 0x56, 0x8B, 0x30, 0x57, 0x89, 0x74, 0x24, 0x48, 0x8B, 0x40, 0x04, 0x89, 0x44, 0x24, 0x4C, 0x89, 0x74, 0x24, 0x50, 0x89, 0x44, 0x24, 0x54, 0x8B, 0xCE, 0x0F, 0xAC, 0xC1, 0x0C, 0x8B, 0xD9, 0x81, 0xE3, 0xFF, 0xFF, 0xFF, 0x03, 0x8B, 0xFB, 0x6B, 0xFF, 0x1C }; BYTE VistaSP1_ntoskrnl_6000_16584[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xE4, 0xF8, 0x83, 0xEC, 0x3C, 0x8B, 0x45, 0x0C, 0x83, 0x64, 0x24, 0x24, 0x00, 0x53, 0x56, 0x57, 0x8B, 0x38, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x0D, 0xFF, 0xFF, 0xFF, 0xFF, 0x8B, 0x40, 0x48, 0x89, 0x7C, 0x24, 0x24, 0xC1, 0xEF, 0x0C, 0x8B, 0xF7, 0x6B, 0xF6, 0x18, 0x03, 0x35 }; BYTE VistaSP1_ntkrnlpa_6001_18000[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xE4, 0xF8, 0x83, 0xEC, 0x5C, 0x8B, 0x45, 0x0C, 0x83, 0x64, 0x24, 0x28, 0x00, 0x53, 0x56, 0x8B, 0x30, 0x57, 0x89, 0x74, 0x24, 0x58, 0x8B, 0x48, 0x04, 0x89, 0x4C, 0x24, 0x5C, 0x89, 0x74, 0x24, 0x50, 0x89, 0x4C, 0x24, 0x54, 0x8B, 0xC6, 0x0F, 0xAC, 0xC8 }; BYTE VistaSP1_ntoskrnl_6001_18000[] = { 0x8B, 0xFF, 0x55, 0x8B, 0xEC, 0x83, 0xE4, 0xF8, 0x83, 0xEC, 0x3C, 0x8B, 0x45, 0x0C, 0x83, 0x64, 0x24, 0x28, 0x00, 0x53, 0x56, 0x8B, 0x30, 0x64, 0xA1, 0x24, 0x01, 0x00, 0x00, 0x8B, 0x48, 0x48, 0xA1, 0xFF, 0xFF, 0xFF, 0xFF, 0x89, 0x74, 0x24, 0x20, 0xC1, 0xEE, 0x0C, 0x8B, 0xDE, 0x6B, 0xDB, 0x18 }; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ST_COPY_ON_WRITE_OS_INFO CopyOnWriteOSInfo[]= { ///////////////////XP SP2//////////////////// { XP_SP2_ntkrnlpa, sizeof(XP_SP2_ntkrnlpa), true,5,1 }, { XP_SP2_ntoskrnl, sizeof(XP_SP2_ntoskrnl), true,5,1 }, { XP_SP1_ntoskrnl, sizeof(XP_SP1_ntoskrnl), true,5,1 }, { XP_ntoskrnl, sizeof(XP_ntoskrnl), true,5,1 }, ///////////////////2K//////////////////////// { W2K_ntkrnlpa, sizeof(W2K_ntkrnlpa), true,5,0 }, { W2K_ntoskrnl, sizeof(W2K_ntoskrnl), true,5,0 }, ///////////////////Vista///////////////////// { Vista_ntkrnlpa, sizeof(Vista_ntkrnlpa), false,6,0 }, { Vista_ntoskrnl, sizeof(Vista_ntoskrnl), false,6,0 }, { VistaSP1_ntkrnlpa_6000_16584, sizeof(VistaSP1_ntkrnlpa_6000_16584), false,6,0 }, { VistaSP1_ntoskrnl_6000_16584, sizeof(VistaSP1_ntoskrnl_6000_16584), false,6,0 }, { VistaSP1_ntkrnlpa_6001_18000, sizeof(VistaSP1_ntkrnlpa_6001_18000), false,6,0 }, { VistaSP1_ntoskrnl_6001_18000, sizeof(VistaSP1_ntoskrnl_6001_18000), false,6,0 }, ///////////////////W2003///////////////////// { W2003_ntkrnlpa, sizeof(W2003_ntkrnlpa), true,5,2 }, { W2003_ntoskrnl, sizeof(W2003_ntoskrnl), true,5,2 }, { W2003_SP1_ntkrnlpa, sizeof(W2003_SP1_ntkrnlpa), true,5,2 }, { W2003_SP1_ntoskrnl, sizeof(W2003_SP1_ntoskrnl), true,5,2 }, ///////////////////////////////////////////// { NULL,0,false } ///////////////////////////////////////////// }; ULSIZE GetModuleValidSize(ULPOS BaseAddr,ULSIZE Size) { ULSIZE ValidSize = 0; while(Size>0) { if(MmIsAddressValid(RT_PVOID(BaseAddr,ValidSize))==false) return ValidSize; if(Size>MP_SIZE) { ValidSize+=MP_SIZE; Size-=MP_SIZE; } else { ValidSize+=Size; Size=0; } } return ValidSize; } void PatchMiCopyOnWrite() { ULSIZE SeachSize; ULPOS FuncStart,FuncReturn; ULONG MajorVersion,MinorVersion; PsGetVersion(&MajorVersion,&MinorVersion,NULL,NULL); CDbgModule*pDbgModule = gpSyser->m_pSysDebugger->GetModule((ULPOS)KeClearEvent); if(pDbgModule==NULL) return; SeachSize = GetModuleValidSize(pDbgModule->m_ModuleBase,MIN(pDbgModule->m_ModuleSize,0x100000)); FuncStart = 0; int n; for(n=0;CopyOnWriteOSInfo[n].CodeFeature;n++) { if(MajorVersion!=CopyOnWriteOSInfo[n].MajorVersion || MinorVersion!=CopyOnWriteOSInfo[n].MinorVersion) continue; FuncStart = (ULPOS) CodeSearch((void*)pDbgModule->m_ModuleBase,SeachSize,CopyOnWriteOSInfo[n].CodeFeature,CopyOnWriteOSInfo[n].CodeFeatureLen); if(FuncStart) break; } if(FuncStart==0) return; int FuncSize=GetFuncReturn((BYTE*)FuncStart,0x10000); if(FuncSize==0) { DbgPrint("Syser : Fail to local MiCopyOnWrite return!\n"); return; } FuncReturn = FuncStart+FuncSize; gpSyser->m_bCopyOnWriteFastCall = CopyOnWriteOSInfo[n].bIsFastCall; gpSyser->m_bPatchCopyOnWrite = true; PATCH_SYSTEM("MiCopyOnWrite",FuncStart,OnMiCopyOnWritePatchStart); PATCH_SYSTEM("MiCopyOnWrite Return",FuncReturn,OnMiCopyOnWritePatchEnd); } ================================================ FILE: Project/Syser/Source/CopyOnWritePatch.h ================================================ #ifndef _COPY_ON_WRITE_PATCH_H_ #define _COPY_ON_WRITE_PATCH_H_ struct ST_COPY_ON_WRITE_OS_INFO { BYTE* CodeFeature; int CodeFeatureLen; bool bIsFastCall; ULONG MajorVersion; ULONG MinorVersion; }; void PatchMiCopyOnWrite(); #endif ================================================ FILE: Project/Syser/Source/CrossReferenceForm.cpp ================================================ #include "StdAfx.h" #include "DebuggerSelectForm.h" #include "Syser.h" enum CCrossReferenceForm::WISP_FORM_ID { CMD_ID_REFERENCE_LIST = WISP_ID_USER_START, CMD_ID_BT_OK, }; WISP_FORM_RES_ITEM CCrossReferenceForm::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,400,240}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("xrefs to ..."), "\\SyserIcon\\Syser.ico", NULL }, { WISP_CTRL_LIST, {5,5,380,160}, CMD_ID_REFERENCE_LIST, WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER|WISP_WLS_SELECTED_ALWAYS, NULL, }, { WISP_CTRL_BUTTON, {80,180,70,20}, CMD_ID_BT_OK, WISP_BS_NORMAL, WSTR("OK"), NULL, NULL }, { WISP_CTRL_BUTTON, {250,180,70,20}, WISP_ID_CANCEL, WISP_BS_NORMAL, WSTR("Cancel"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CCrossReferenceForm) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CCrossReferenceForm) WISP_MSG_CMD_MAP(CMD_ID_REFERENCE_LIST,OnListCmd); WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CCrossReferenceForm) WISP_MSG_EVENT_MAP(CMD_ID_BT_OK,OnOkButton) //WISP_MSG_EVENT_MAP(CMD_ID_BT_REFRESH,OnRefresh) WISP_MSG_EVENT_MAP_END CCrossReferenceForm::CCrossReferenceForm() { m_pFormRes = m_FormRes; } CCrossReferenceForm::~CCrossReferenceForm() { } bool CCrossReferenceForm::OnListCmd(WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_LDBCLICK) { OnOkButton(NULL); } return true; } bool CCrossReferenceForm::OnOkButton(WISP_MSG*pMsg) { HANDLE hItem; ULPOS Address; CCodeView*pCodeView; hItem = m_AddressReferenceList->GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) { Address=(ULPOS)m_AddressReferenceList->GetItemData(hItem,0); pCodeView=(CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView) pCodeView->SetStartAddress(Address,true); } if(pMsg) Destroy(); return true; } bool CCrossReferenceForm::OnFormCreate(WISP_MSG*pMsg) { m_AddressReferenceList = (CWispList*)GetFormItem(CMD_ID_REFERENCE_LIST); m_AddressReferenceList->InsertColumn(WSTR("Direction"),40); m_AddressReferenceList->InsertColumn(WSTR("Type"),35); m_AddressReferenceList->InsertColumn(WSTR("Address"),100); m_AddressReferenceList->InsertColumn(WSTR("Instruction"),200); m_AddressReferenceList->SetDefaultTextColor(ColorOption.clrText); m_AddressReferenceList->SetBGColor(ColorOption.clrBackground); return true; } bool CCrossReferenceForm::InitReferenceList(CROSSREFERENCELIST* pList,DWORD Address) { CROSSREFERENCELIST::IT BeginIt,EndIt; DWORD DestAddr; HANDLE hItem; CCodeView*pCodeView; WISP_COLOR_CHAR szColorBuffer[256]; bool bFirst=true; m_AddressReferenceList->ClearChildItem(); pCodeView=(CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView==NULL) return false; BeginIt = pList->Begin(); EndIt = pList->End(); for(;BeginIt!=EndIt;BeginIt++) { DestAddr = *BeginIt; if(DestAddrInsertItemW(WSTR("UP")); else hItem = m_AddressReferenceList->InsertItemW(WSTR("DOWN")); m_AddressReferenceList->SetItemData(hItem,0,DestAddr); m_AddressReferenceList->SetItemTextColor(hItem,0,WispColor(SC_WHITE)); m_AddressReferenceList->SetItemTextColor(hItem,1,WispColor(SC_WHITE)); m_AddressReferenceList->SetItemTextColor(hItem,2,WispColor(SC_WHITE)); m_AddressReferenceList->SetItemNum(hItem,2,DestAddr); pCodeView->ColorDasm(DestAddr,MAX_INSTR_LEN,szColorBuffer); m_AddressReferenceList->SetItemColorText(hItem,3,szColorBuffer); if(bFirst) m_AddressReferenceList->SelectItem(hItem); bFirst=false; } return true; } bool CCrossReferenceForm::InitDataReferenceList(CROSSREFERENCELIST* pList,DWORD Address) { CROSSREFERENCELIST::IT BeginIt,EndIt; DWORD DestAddr,TmpAddr; HANDLE hItem; bool bFirst=true,bOK; CCodeView*pCodeView; WISP_COLOR_CHAR szColorBuffer[256]; m_AddressReferenceList->ClearChildItem(); pCodeView=(CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView==NULL) return false; BeginIt = pList->Begin(); EndIt = pList->End(); for(;BeginIt!=EndIt;BeginIt++) { DestAddr = *BeginIt; bOK = pCodeView->m_pCodeDoc->GetInstrDesAddress(--DestAddr,&TmpAddr); if(bOK==false||TmpAddr!=Address) { bOK = pCodeView->m_pCodeDoc->GetInstrDesAddress(--DestAddr,&TmpAddr); if(bOK==false||TmpAddr!=Address) { continue; } } if(DestAddrInsertItemW(WSTR("UP")); else hItem = m_AddressReferenceList->InsertItemW(WSTR("DOWN")); m_AddressReferenceList->SetItemData(hItem,0,DestAddr); m_AddressReferenceList->SetItemTextColor(hItem,0,WispColor(SC_WHITE)); m_AddressReferenceList->SetItemTextColor(hItem,1,WispColor(SC_WHITE)); m_AddressReferenceList->SetItemTextColor(hItem,2,WispColor(SC_WHITE)); m_AddressReferenceList->SetItemNum(hItem,2,DestAddr); pCodeView->ColorDasm(DestAddr,MAX_INSTR_LEN,szColorBuffer); m_AddressReferenceList->SetItemColorText(hItem,3,szColorBuffer); if(bFirst) m_AddressReferenceList->SelectItem(hItem); bFirst=false; } return true; } ================================================ FILE: Project/Syser/Source/CrossReferenceForm.h ================================================ #ifndef _CROSSREFERENCE_FORM_H_ #define _CROSSREFERENCE_FORM_H_ #include "CodeView.h" class CCrossReferenceForm : public CWispForm { public: CCrossReferenceForm(); ~CCrossReferenceForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnOkButton) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnListCmd) //DECLARE_WISP_MSG_EVENT(OnRefresh) public: CWispList* m_AddressReferenceList; bool InitReferenceList(CROSSREFERENCELIST* pList,DWORD Address); bool InitDataReferenceList(CROSSREFERENCELIST* pList,DWORD Address); }; #endif ================================================ FILE: Project/Syser/Source/DataBPEdit.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "DataBPEdit.h" enum CDataBPEdit::WISP_FORM_ID { CMD_ID_EDIT_ADDRESS = WISP_ID_USER_START, CMD_ID_EDIT_NAME, CMD_ID_CHECK_ENABLE, CMD_ID_RADIO_WRITEONLY, CMD_ID_RADIO_READWRITE, CMD_ID_RADIO_EXECUTE, CMD_ID_RADIO_IO, CMD_ID_EDIT_CONDITION, CMD_ID_EDIT_DO_COMMAND, CMD_ID_RADIO_BYTE, CMD_ID_RADIO_WORD, CMD_ID_RADIO_DWORD, CMD_ID_RADIO_ALL, }; WISP_FORM_RES_ITEM CDataBPEdit::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,355,290}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Data break point") }, { WISP_CTRL_STATIC_GROUP, {10,5,80,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Address") }, { WISP_CTRL_EDIT, {20,20,60,16}, CMD_ID_EDIT_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("Address of break point") }, { WISP_CTRL_STATIC_GROUP, {100,5,100,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Name") }, { WISP_CTRL_EDIT, {110,20,80,16}, CMD_ID_EDIT_NAME, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("Name of break point (if needed)") }, { WISP_CTRL_CHECK_BOX, {210,17,60,20}, CMD_ID_CHECK_ENABLE, WISP_CBS_NORMAL, WSTR("Enabled"), NULL, WSTR("Is break point enabled") }, { WISP_CTRL_BUTTON, {280,20,55,20}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), NULL, WSTR("Save modify setting") }, { WISP_CTRL_STATIC_GROUP, {10,50,325,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Type"), }, { WISP_CTRL_RADIO_BOX, {20,65,75,20}, CMD_ID_RADIO_READWRITE, WISP_RBS_NORMAL, WSTR("ReadWrite"), NULL, WSTR("break on access memory") }, { WISP_CTRL_RADIO_BOX, {100,65,75,20}, CMD_ID_RADIO_WRITEONLY, WISP_RBS_NORMAL, WSTR("WriteOnly"), NULL, WSTR("break on write memory") }, { WISP_CTRL_RADIO_BOX, {180,65,75,20}, CMD_ID_RADIO_EXECUTE, WISP_RBS_NORMAL, WSTR("Execute"), NULL, WSTR("break on execute") }, { WISP_CTRL_RADIO_BOX, {260,65,75,20}, CMD_ID_RADIO_IO, WISP_RBS_NORMAL, WSTR("I/O"), NULL, WSTR("break on IO access,address is IO Num") }, { WISP_CTRL_STATIC_GROUP, {10,95,325,45}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Length"), }, { WISP_CTRL_RADIO_BOX, {20,110,75,20}, CMD_ID_RADIO_ALL, WISP_RBS_NORMAL, WSTR("ALL"), }, { WISP_CTRL_RADIO_BOX, {100,110,75,20}, CMD_ID_RADIO_BYTE, WISP_RBS_NORMAL, WSTR("BYTE"), }, { WISP_CTRL_RADIO_BOX, {180,110,75,20}, CMD_ID_RADIO_WORD, WISP_RBS_NORMAL, WSTR("WORD"), }, { WISP_CTRL_RADIO_BOX, {260,110,75,20}, CMD_ID_RADIO_DWORD, WISP_RBS_NORMAL, WSTR("DWORD"), }, { WISP_CTRL_STATIC_GROUP, {10,150,325,50}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Condition"), }, { WISP_CTRL_STATIC_DIB, {20,170,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:29" }, { WISP_CTRL_EDIT, {40,170,285,16}, CMD_ID_EDIT_CONDITION, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("break condition when break point touched") }, { WISP_CTRL_STATIC_GROUP, {10,210,325,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Do Command (Use ; to delimit command lines)"), }, { WISP_CTRL_STATIC_DIB, {20,225,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:63" }, { WISP_CTRL_EDIT, {40,225,285,16}, CMD_ID_EDIT_DO_COMMAND, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, WSTR("Do command when break point touched") }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CDataBPEdit) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CDataBPEdit) WISP_MSG_CMD_MAP(CMD_ID_EDIT_ADDRESS,OnAddressChg) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END CDataBPEdit::CDataBPEdit(void) { m_pFormRes = m_FormRes; m_pBP = NULL; } CDataBPEdit::~CDataBPEdit(void) { } bool CDataBPEdit::OnFormCreate(IN WISP_MSG*pMsg) { WISP_CHAR szBuffer[256]; m_pNameEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_NAME); m_pAddrEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_ADDRESS); m_pConditionEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_CONDITION); m_pDoCmdEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_DO_COMMAND); m_pEnableChkBox = (CWispCheckBox*)GetFormItem(CMD_ID_CHECK_ENABLE); m_pWriteRadioBox = (CWispRadioBox*)GetFormItem(CMD_ID_RADIO_WRITEONLY); m_pReadWriteRadioBox = (CWispRadioBox*)GetFormItem(CMD_ID_RADIO_READWRITE); m_pExecuteRadioBox = (CWispRadioBox*)GetFormItem(CMD_ID_RADIO_EXECUTE); m_pIORadioBox = (CWispRadioBox*)GetFormItem(CMD_ID_RADIO_IO); m_pAllChkBox = (CWispCheckBox*)GetFormItem(CMD_ID_RADIO_ALL); m_pByteChkBox = (CWispCheckBox*)GetFormItem(CMD_ID_RADIO_BYTE); m_pWordChkBox = (CWispCheckBox*)GetFormItem(CMD_ID_RADIO_WORD); m_pDwordChkBox = (CWispCheckBox*)GetFormItem(CMD_ID_RADIO_DWORD); m_bEnable = true; if(m_pBP) { uNumToStr(m_pBP->Address,szBuffer); m_pAddrEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pBP->Name,szBuffer,256); m_pNameEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pBP->Condition,szBuffer,256); m_pConditionEdit->SetWindowText(szBuffer); AnsiToUnicode(m_pBP->DoCmd,szBuffer,256); m_pDoCmdEdit->SetWindowText(szBuffer); m_bEnable = m_pBP->State!=BP_STATE_DISABLE; if((m_pBP->Type&BP_TYPE_READWRITE)==BP_TYPE_READWRITE) m_pReadWriteRadioBox->Check(); else if(m_pBP->Type&BP_TYPE_WRITE) m_pWriteRadioBox->Check(); else if(m_pBP->Type&BP_TYPE_EXECUTE) m_pExecuteRadioBox->Check(); else if(m_pBP->Type&BP_TYPE_IO_READWRITE) m_pIORadioBox->Check(); switch(m_pBP->Length) { case 1: m_pByteChkBox->Check(); break; case 2: m_pWordChkBox->Check(); break; case 4: m_pDwordChkBox->Check(); break; default: m_pAllChkBox->Check(); break; } } else { m_pAllChkBox->Check(); m_pReadWriteRadioBox->Check(); } m_pEnableChkBox->Check(m_bEnable); return true; } bool CDataBPEdit::OnOK(IN WISP_MSG*pMsg) { ULPOS ConditionValue; CHAR szBuffer[256]; if(pMsg->Command.CmdMsg!=WISP_CMD_BT_UP) return true; BREAK_POINT BreakPoint; if(m_pAddrEdit->m_WndText.Length()==0 || CALCEXP((WISP_CHAR*)m_pAddrEdit->m_WndText,&BreakPoint.Address)==false) { gpCurWisp->MsgBox(WSTR("Invalid Address !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } #ifdef CODE_OS_NT_DRV if(BreakPoint.Address >= gpSyser->m_SysInfo.m_SyserBase && BreakPoint.Address < gpSyser->m_SysInfo.m_SyserHighBase) { gpCurWisp->MsgBox(WSTR("Cann't set breakpoint in Syser !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } #endif UnicodeToAnsi(m_pNameEdit->m_WndText,szBuffer,256); BreakPoint.Name = szBuffer; if(BreakPoint.Name.IsEmpty()) BreakPoint.Name.Format("%08X",BreakPoint.Address); if(CALCEXP(m_pConditionEdit->m_WndText,&ConditionValue)==false) { gpCurWisp->MsgBox(WSTR("Invalid Condition !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } UnicodeToAnsi(m_pConditionEdit->m_WndText,szBuffer,256); BreakPoint.Condition = szBuffer; UnicodeToAnsi(m_pDoCmdEdit->m_WndText,szBuffer,256); BreakPoint.DoCmd = szBuffer; m_bEnable = m_pEnableChkBox->IsChecked(); BreakPoint.State = m_bEnable?BP_STATE_ENABLE:BP_STATE_DISABLE; BreakPoint.Type = BP_TYPE_HARDWARE; if(m_pReadWriteRadioBox->IsChecked()) BreakPoint.Type |= BP_TYPE_READWRITE; else if(m_pWriteRadioBox->IsChecked()) BreakPoint.Type |= BP_TYPE_WRITE; else if(m_pExecuteRadioBox->IsChecked()) BreakPoint.Type |= BP_TYPE_EXECUTE; else if(m_pIORadioBox->IsChecked()) BreakPoint.Type |= BP_TYPE_IO_READWRITE; if(m_pByteChkBox->IsChecked()) BreakPoint.Length = 1; else if(m_pWordChkBox->IsChecked()) BreakPoint.Length = 2; else if(m_pDwordChkBox->IsChecked()) BreakPoint.Length = 4; else BreakPoint.Length = 0; if(m_pBP) { if(BreakPoint.Address==m_pBP->Address && BreakPoint.Type==m_pBP->Type && BreakPoint.State==m_pBP->State && BreakPoint.Length==m_pBP->Length) { m_pBP->Name = BreakPoint.Name; m_pBP->Condition = BreakPoint.Condition; m_pBP->DoCmd = BreakPoint.DoCmd; return true; } gpSyser->m_pSysDebugger->RemoveDataBP(m_pBP); } m_pBP = gpSyser->m_pSysDebugger->InsertDataBP(BreakPoint.Address,BreakPoint.Type,BreakPoint.State,BreakPoint.Length); if(m_pBP==NULL) { gpCurWisp->MsgBox(WSTR("Fail to insert breakpoint !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return false; } else { m_pBP->Name = BreakPoint.Name; m_pBP->Condition = BreakPoint.Condition; m_pBP->DoCmd = BreakPoint.DoCmd; } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); return true; } bool CDataBPEdit::OnAddressChg(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_EN_CHANGED) { m_pNameEdit->SetWindowText(m_pAddrEdit->m_WndText); } return true; } ================================================ FILE: Project/Syser/Source/DataBPEdit.h ================================================ #ifndef _DATA_BP_EDIT_H_ #define _DATA_BP_EDIT_H_ class CDataBPEdit : public CWispForm { public: CDataBPEdit(void); ~CDataBPEdit(void); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnAddressChg); DECLARE_WISP_MSG_CMD(OnOK) BREAK_POINT*m_pBP; CWispEdit* m_pNameEdit; CWispEdit* m_pAddrEdit; CWispEdit* m_pConditionEdit; CWispEdit* m_pDoCmdEdit; CWispCheckBox*m_pEnableChkBox; CWispRadioBox*m_pWriteRadioBox; CWispRadioBox*m_pReadWriteRadioBox; CWispRadioBox*m_pExecuteRadioBox; CWispRadioBox*m_pIORadioBox; CWispCheckBox*m_pAllChkBox; CWispCheckBox*m_pByteChkBox; CWispCheckBox*m_pWordChkBox; CWispCheckBox*m_pDwordChkBox; bool m_bEnable; UINT m_Type; }; #endif ================================================ FILE: Project/Syser/Source/DataOperatorDlg.cpp ================================================ #include "stdafx.h" #include "DataOperatorDlg.h" #include "Syser.h" const WCHAR* CDataOperatorDlg::DataOperatorDescription[20]={ WSTR("Fips the byte order of you data. For example, the \nword 0xABCD would become 0xCDAB."), WSTR("Inverts the bits of your data. For example, the \nvalue 0x35 (00110101 in binary) would become 0xCA\n(11001010 in binary)."), WSTR("Shift the bits of your data to the left. For \nexample,the value 0x08 (00001000 in binary) would \nbecome 0x10 (00010000 in binary)."), WSTR("Shift the bits of your data to the right. For \nexample,the value 0x08(00001000 in binary) would \nbecome 0x04 (00000100 in binary)."), WSTR("Rotates the bits of your data to the left. For\nexample,the value 0x98 (10011000 in binary) would \nbecome 0x31 (00110001 in binary)."), WSTR("Rotates the bits of your data to the right. For\nexampel,the value 0x61 (01100001 in binary) would \nbecome 0xB0 (10110000 in binary)."), WSTR("Shift the bits of your data to the left across byte\n boundaries. For example,the value 0x08(00001000 \nin binary) would become 0x10 (00010000 in binary)."), WSTR("Shift the bits of your data to right across byte\nboundaries. For example,the value 0x08 (00001000 in\nbinary) would become 0x04 (00000100 in binary)."), WSTR("Performs a XOR operation. For example,the value\n0xFO (11110000 in binary) XOR 0xAA (10101010 in \nbinary) is 0x5A (01011010 in binary)."), WSTR("Performs an OR operation. For example,the value\n0xF0 (11110000 in binary) OR 0xAA (10101010 in \nbinary) is 0xFA (11111010 in binary)."), WSTR("Performs an AND operation. For example,the value\n0xF0 (11110000 in binary) AND 0xAA (10101010 in \nbinary) is 0xA0 (10100000 in binary)."), WSTR("Change the sign of your data. For example,a value of\n5 would become -5 or a value of -5 would become 5."), WSTR("Replaces your data with your data plus another value\n(data = data + value)."), WSTR("Replaces your data with your data minus another\nvalue (data = data - value)."), WSTR("Replaces your data with your data multiplied by \nanother value (data = data * value)."), WSTR("Replaces your data with your data divided by another\nvalue (data = data / value)."), WSTR("Replaces your data with your data mod another value\n(data = data % value)."), WSTR("Replaces your character data with all upper case\ncharacters. For example,the text \"Test String\"\nwould become \"TEST STRING\"."), WSTR("Replaces your character data with all lower case\ncharacters. For example,the text \"Test String\"\nwould become \"test string\"."), WSTR("Replaces your character data with the inverse \ncharacter case. For example, the next \"Test String\" would\nbecome \"tEST sTRING\"."), }; const WCHAR* CDataOperatorDlg::DataOperatorTitle[20]={ WSTR("ByteFlip Operation"), WSTR("Inverse Bits Operation"), WSTR("Shift Left Operation"), WSTR("Shift Right Operation"), WSTR("Rotate Left Operation"), WSTR("Rotate Right Operation"), WSTR("Block Shift Left Operation"), WSTR("Block Shift Right Operation"), WSTR("XOR Operation"), WSTR("OR Operation"), WSTR("AND Operation"), WSTR("Change Sign Operation"), WSTR("Add Operation"), WSTR("Subtract Operation"), WSTR("Multiply Operation"), WSTR("Divide Operation"), WSTR("Mod Operation"), WSTR("Upper Case Operation"), WSTR("Lower Case Operation"), WSTR("Inverse Case Operation"), }; FPDATAOPERATION CDataOperatorDlg::m_Func[20]= { &CDataOperatorDlg::ByteFlip, &CDataOperatorDlg::InverseBits, &CDataOperatorDlg::ShiftLeft, &CDataOperatorDlg::ShiftRight, &CDataOperatorDlg::RotateLeft, &CDataOperatorDlg::RotateRight, &CDataOperatorDlg::BlockShiftLeft, &CDataOperatorDlg::BlockShiftRight, &CDataOperatorDlg::XOR, &CDataOperatorDlg::AND, &CDataOperatorDlg::OR, &CDataOperatorDlg::ChangeSign, &CDataOperatorDlg::Add, &CDataOperatorDlg::Subtract, &CDataOperatorDlg::Multiply, &CDataOperatorDlg::Divide, &CDataOperatorDlg::Mod, &CDataOperatorDlg::UpperCase, &CDataOperatorDlg::LowerCase, &CDataOperatorDlg::InverseCase, }; enum CDataOperatorDlg::WISP_FORM_ID { CMD_ID_BUTTON_OK=WISP_ID_USER_START, CMD_ID_BUTTON_CANCEL, CMD_ID_RADIOBOX_BYTE, CMD_ID_RADIOBOX_WORD, CMD_ID_RADIOBOX_DWORD, CMD_ID_RADIOBOX_QWORD, CMD_ID_STATICSTR_DESCRIPTION, CMD_ID_RADIOBOX_HEX, CMD_ID_RADIOBOX_DECIMAL, CMD_ID_STATICSTR_VALUE, CMD_ID_STATICSTR_ENDADDRESS, CMD_ID_EDIT_BEGIN_ADDRESS, CMD_ID_EDIT_END_ADDRESS, CMD_ID_EDIT_VALUE, CMD_ID_CHECKBOX_COUNT, }; WISP_FORM_RES_ITEM CDataOperatorDlg::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,340,240}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Data Operation"), "\\SyserIcon\\Plugin.ico", NULL, }, { WISP_CTRL_STATIC_GROUP, {11,6,313,53}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Description") }, { WISP_CTRL_STATIC_GROUP, {11,64,313,80}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Data Width") }, { WISP_CTRL_STATIC_GROUP, {11,151,234,55}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Length") }, { WISP_CTRL_RADIO_BOX, {25,76,96,16}, CMD_ID_RADIOBOX_BYTE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("BYTE (Bit 8)"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {180,76,110,16}, CMD_ID_RADIOBOX_WORD, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("WORD (Bit 16)"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {25,96,110,16}, CMD_ID_RADIOBOX_DWORD, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("DWORD (Bit 32)"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {180,96,110,16}, CMD_ID_RADIOBOX_QWORD, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("QWORD (Bit 64)"), NULL, NULL }, { WISP_CTRL_STATIC_STRING, {14,20,310,50}, CMD_ID_STATICSTR_DESCRIPTION, WISP_WS_NULL, WSTR(""), NULL, }, { WISP_CTRL_STATIC_STRING, {25,120,40,16}, CMD_ID_STATICSTR_VALUE, WISP_WS_NULL, WSTR("Value:"), NULL, }, { WISP_CTRL_EDIT, {65,120,105,16}, CMD_ID_EDIT_VALUE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_RADIO_BOX, {180,119,65,16}, CMD_ID_RADIOBOX_DECIMAL, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Decimal"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {250,119,110,16}, CMD_ID_RADIOBOX_HEX, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Hex"), NULL, NULL }, { WISP_CTRL_STATIC_STRING, {16,167,90,16}, CMD_ID_STATICSTR_ENDADDRESS, WISP_WS_NULL, WSTR("Begin Address:"), NULL, }, { WISP_CTRL_EDIT, {105,166,80,16}, CMD_ID_EDIT_BEGIN_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_STRING, {16,185,90,16}, CMD_ID_STATICSTR_ENDADDRESS, WISP_WS_NULL, WSTR(" End Address:"), NULL, }, { WISP_CTRL_EDIT, {105,185,80,16}, CMD_ID_EDIT_END_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_CHECK_BOX, {190,184,60,16}, CMD_ID_CHECKBOX_COUNT, WISP_CBS_NORMAL, WSTR("Count"), NULL, }, { WISP_CTRL_BUTTON, {255,155,68,20}, CMD_ID_BUTTON_OK, WISP_BS_NORMAL, WSTR("OK"), }, { WISP_CTRL_BUTTON, {255,185,68,20}, CMD_ID_BUTTON_CANCEL, WISP_BS_NORMAL, WSTR("Cancel"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CDataOperatorDlg) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CDataOperatorDlg) //WISP_MSG_CMD_MAP(CMD_ID_EDIT_LINE,OnLineTextCmd) WISP_MSG_CMD_MAP(CMD_ID_CHECKBOX_COUNT,OnCountCheckBoxCmd) WISP_MSG_CMD_MAP(CMD_ID_EDIT_VALUE,OnValueEditCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CDataOperatorDlg) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_OK,OnOKButtonEvent) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_CANCEL,OnCancelButtonEvent) WISP_MSG_EVENT_MAP_END CDataOperatorDlg::CDataOperatorDlg() { m_pFormRes = m_FormRes; } CDataOperatorDlg::~CDataOperatorDlg() { } bool CDataOperatorDlg::CreateForm(CWispBaseWnd* pParentWnd,UINT ShowMode,UINT BeginAddr,UINT EndAddr,UINT DataWidth,DWORD OperationType) { m_BeginAddr=BeginAddr; m_EndAddr=EndAddr; m_DataWidth=DataWidth; m_OperationType=OperationType-DATAOPERATOR_ID_BYTEFLIP; return CWispForm::CreateForm(pParentWnd,ShowMode); } bool CDataOperatorDlg::OnFormCreate(IN WISP_MSG* pMsg) { WCHAR Buffer[20]; DWORD CmdID; m_OKButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_OK); m_CancelButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_CANCEL); m_BYTERadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_BYTE); m_WORDRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_WORD); m_DWORDRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_DWORD); m_QWORDRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_QWORD); m_DesciptionStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_DESCRIPTION); m_DecimalRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_DECIMAL); m_HexRadioBox=(CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_HEX); m_CountCheckBox=(CWispCheckBox*)GetFormItem(CMD_ID_CHECKBOX_COUNT); m_ValueStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_VALUE); m_BeginAddressEdit=(CWispEdit*)GetFormItem(CMD_ID_EDIT_BEGIN_ADDRESS); m_EndAddressEdit=(CWispEdit*)GetFormItem(CMD_ID_EDIT_END_ADDRESS); m_ValueEdit=(CWispEdit*)GetFormItem(CMD_ID_EDIT_VALUE); TSPrintf(Buffer,WSTR("%x"),m_BeginAddr); m_BeginAddressEdit->SetWindowText(Buffer); TSPrintf(Buffer,WSTR("%x"),m_EndAddr); m_EndAddressEdit->SetWindowText(Buffer); if(m_DataWidth==1) m_BYTERadioBox->Check(); if(m_DataWidth==2) m_WORDRadioBox->Check(); if(m_DataWidth==4) m_DWORDRadioBox->Check(); m_DesciptionStr->SetWindowText(DataOperatorDescription[m_OperationType]); SetWindowText(DataOperatorTitle[m_OperationType]); CmdID = m_OperationType + DATAOPERATOR_ID_BYTEFLIP; m_HexRadioBox->Check(); if(CmdID==DATAOPERATOR_ID_BYTEFLIP || CmdID==DATAOPERATOR_ID_INVERSEBITS || CmdID==DATAOPERATOR_ID_CHANGESIGN || CmdID==DATAOPERATOR_ID_UPPERCASE || CmdID==DATAOPERATOR_ID_LOWERCASE || CmdID==DATAOPERATOR_ID_INVERSECASE ) { m_ValueEdit->EnableWindow(false); m_DecimalRadioBox->EnableWindow(false); m_HexRadioBox->EnableWindow(false); } else { m_OKButton->EnableWindow(false); } return true; } bool CDataOperatorDlg::OnDestroy(IN WISP_MSG* pMsg) { return true; } DWORD CDataOperatorDlg::GetDataWidth() { if(m_WORDRadioBox->IsChecked()) return 2; if(m_DWORDRadioBox->IsChecked()) return 4; if(m_QWORDRadioBox->IsChecked()) return 8; return 1; } bool CDataOperatorDlg::OnOKButtonEvent(IN WISP_MSG* pMsg) { WCHAR* Buffer; DWORD BeginAddress,EndAddress,DataWidth; ULONGLONG Param1=0; Buffer = m_BeginAddressEdit->GetWindowText(); if(SHexStrToNum(Buffer,&BeginAddress)==false) { BeginAddress = m_BeginAddr; } Buffer = m_EndAddressEdit->GetWindowText(); DataWidth =GetDataWidth(); if(SHexStrToNum(Buffer,&EndAddress)==false) { EndAddress=m_EndAddr; } if(m_ValueEdit->GetWindowText().IsEmpty()==false) { Buffer=m_ValueEdit->GetWindowText(); if(m_HexRadioBox->IsChecked()) { if(SHexStrToNum(Buffer,&Param1)==false) Param1=0; } else { if(SDecStrToNum(Buffer,&Param1)==false) Param1=0; } } (this->*m_Func[m_OperationType])(*(void**)&BeginAddress,*(void**)&EndAddress,DataWidth,*(void**)&Param1); //UPDATE_MEMORY_VIEW(); UPDATE_CONTEXT(); PostCloseMsg(); return true; } bool CDataOperatorDlg::OnCancelButtonEvent(IN WISP_MSG* pMsg) { PostCloseMsg(); return true; } bool CDataOperatorDlg::OnCountCheckBoxCmd(IN WISP_MSG* pMsg) { return true; } bool CDataOperatorDlg::OnValueEditCmd(IN WISP_MSG* pMsg) { WCHAR* Buffer; DWORD Value; bool bOk; switch(pMsg->Command.CmdMsg) { case WISP_CMD_EN_INPUT_KEY_DOWN: if((pMsg->Command.Param1>='g' && pMsg->Command.Param1 <= 'z')|| (pMsg->Command.Param1>='G' && pMsg->Command.Param1 <= 'Z')) return false; if(m_HexRadioBox->IsChecked()==false) { if((pMsg->Command.Param1>='a' && pMsg->Command.Param1 <= 'f')|| (pMsg->Command.Param1>='A' && pMsg->Command.Param1 <= 'F')) return false; } break; case WISP_CMD_EN_CHANGED: Buffer = m_ValueEdit->GetWindowText(); if(m_HexRadioBox->IsChecked()) bOk = SHexStrToNum(Buffer,&Value); else bOk = SDecStrToNum(Buffer,&Value); m_OKButton->EnableWindow(bOk); break; } return true; } void CDataOperatorDlg::ByteFlip(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i,j,k; if(DataWidth==1||Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; j = DataWidth-1; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; for(k = 0; k <= j; k++) SecondValue.ByteArray[k]=FirstValue.ByteArray[j-k]; if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&SecondValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::InverseBits(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = *(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1; DATAVALUE FirstValue; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,1); if(Length!=1) return; FirstValue.ByteValue^=0xff; if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,1)!=1) return; DataPtr.Address+=1; } } void CDataOperatorDlg::ShiftLeft(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DWORD ShiftCount = *(DWORD*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue<<=ShiftCount; break; case 2: FirstValue.WordValue<<=ShiftCount; break; case 4: FirstValue.DwordValue<<=ShiftCount; break; case 8: FirstValue.ullValue<<=ShiftCount; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::ShiftRight(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DWORD ShiftCount = *(DWORD*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue>>=ShiftCount; break; case 2: FirstValue.WordValue>>=ShiftCount; break; case 4: FirstValue.DwordValue>>=ShiftCount; break; case 8: FirstValue.ullValue>>=ShiftCount; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::RotateLeft(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue; DWORD ShiftCount = *(DWORD*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD BitSize; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; BitSize = 8 * DataWidth; ShiftCount %= BitSize; if(ShiftCount==0) return; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; SecondValue=FirstValue; switch(DataWidth) { case 1: SecondValue.ByteValue>>=(BitSize-ShiftCount); FirstValue.ByteValue<<=ShiftCount; FirstValue.ByteValue|=SecondValue.ByteValue; break; case 2: SecondValue.WordValue>>=(BitSize-ShiftCount); FirstValue.WordValue<<=ShiftCount; FirstValue.WordValue|=SecondValue.WordValue; break; case 4: SecondValue.DwordValue>>=(BitSize-ShiftCount); FirstValue.DwordValue<<=ShiftCount; FirstValue.DwordValue|=SecondValue.DwordValue; break; case 8: SecondValue.ullValue>>=(BitSize-ShiftCount); FirstValue.ullValue<<=ShiftCount; FirstValue.ullValue|=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::RotateRight(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue; DWORD ShiftCount = *(DWORD*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD BitSize; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; BitSize = 8 * DataWidth; ShiftCount %= BitSize; if(ShiftCount==0) return; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; SecondValue=FirstValue; switch(DataWidth) { case 1: SecondValue.ByteValue<<=(BitSize-ShiftCount); FirstValue.ByteValue>>=ShiftCount; FirstValue.ByteValue|=SecondValue.ByteValue; break; case 2: SecondValue.WordValue<<=(BitSize-ShiftCount); FirstValue.WordValue>>=ShiftCount; FirstValue.WordValue|=SecondValue.WordValue; break; case 4: SecondValue.DwordValue<<=(BitSize-ShiftCount); FirstValue.DwordValue>>=ShiftCount; FirstValue.DwordValue|=SecondValue.DwordValue; break; case 8: SecondValue.ullValue<<=(BitSize-ShiftCount); FirstValue.ullValue>>=ShiftCount; FirstValue.ullValue|=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::BlockShiftLeft(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = *(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1; DATAVALUE FirstValue; DWORD ShiftCount = *(DWORD*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr;DataWidth=1; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; FirstValue.ByteValue<<=ShiftCount; if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::BlockShiftRight(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = *(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1; DATAVALUE FirstValue; DWORD ShiftCount = *(DWORD*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr;DataWidth=1; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; FirstValue.ByteValue>>=ShiftCount; if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::XOR(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue^=SecondValue.ByteValue; break; case 2: FirstValue.WordValue^=SecondValue.WordValue; break; case 4: FirstValue.DwordValue^=SecondValue.DwordValue; break; case 8: FirstValue.ullValue^=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::OR(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue|=SecondValue.ByteValue; break; case 2: FirstValue.WordValue|=SecondValue.WordValue; break; case 4: FirstValue.DwordValue|=SecondValue.DwordValue; break; case 8: FirstValue.ullValue|=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::AND(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue&=SecondValue.ByteValue; break; case 2: FirstValue.WordValue&=SecondValue.WordValue; break; case 4: FirstValue.DwordValue&=SecondValue.DwordValue; break; case 8: FirstValue.ullValue&=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::ChangeSign(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue=0-FirstValue.ByteValue; break; case 2: FirstValue.WordValue=0-FirstValue.WordValue; break; case 4: FirstValue.DwordValue=0-FirstValue.DwordValue; break; case 8: FirstValue.ullValue=0-FirstValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::Add(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue+=SecondValue.ByteValue; break; case 2: FirstValue.WordValue+=SecondValue.WordValue; break; case 4: FirstValue.DwordValue+=SecondValue.DwordValue; break; case 8: FirstValue.ullValue+=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::Subtract(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue-=SecondValue.ByteValue; break; case 2: FirstValue.WordValue-=SecondValue.WordValue; break; case 4: FirstValue.DwordValue-=SecondValue.DwordValue; break; case 8: FirstValue.ullValue-=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::Multiply(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue*=SecondValue.ByteValue; break; case 2: FirstValue.WordValue*=SecondValue.WordValue; break; case 4: FirstValue.DwordValue*=SecondValue.DwordValue; break; case 8: FirstValue.ullValue*=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::Divide(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; if(SecondValue.ullValue==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue/=SecondValue.ByteValue; break; case 2: FirstValue.WordValue/=SecondValue.WordValue; break; case 4: FirstValue.DwordValue/=SecondValue.DwordValue; break; case 8: FirstValue.ullValue/=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::Mod(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = (*(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1)/DataWidth; DATAVALUE FirstValue; DATAVALUE SecondValue=*(DATAVALUE*)&OwnerParam; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; if(SecondValue.ullValue==0) return; DataPtr.ptr =(BYTE*)BeginAddr; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; switch(DataWidth) { case 1: FirstValue.ByteValue%=SecondValue.ByteValue; break; case 2: FirstValue.WordValue%=SecondValue.WordValue; break; case 4: FirstValue.DwordValue%=SecondValue.DwordValue; break; case 8: FirstValue.ullValue%=SecondValue.ullValue; break; } if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::UpperCase(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = *(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1; DATAVALUE FirstValue; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr;DataWidth=1; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; if(FirstValue.ByteValue >= 'a' && FirstValue.ByteValue <= 'z') { FirstValue.ByteValue -= ('a' - 'A'); if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; } DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::LowerCase(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = *(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1; DATAVALUE FirstValue; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr;DataWidth=1; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; if(FirstValue.ByteValue >= 'A' && FirstValue.ByteValue <= 'Z') { FirstValue.ByteValue += ('a' - 'A'); if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; } DataPtr.Address+=DataWidth; } } void CDataOperatorDlg::InverseCase(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam) { DWORD Count = *(DWORD*)&EndAddr - *(DWORD*)&BeginAddr+1; DATAVALUE FirstValue; DATAVALUEPOINTER DataPtr; DWORD Length; DWORD i; if(Count==0) return; DataPtr.ptr =(BYTE*)BeginAddr;DataWidth=1; for(i = 0; i < Count; i++) { Length = gpSyser->m_pDebugger->ReadMemory(DataPtr.Address,&FirstValue,DataWidth); if(Length!=DataWidth) return; if((FirstValue.ByteValue >= 'A' && FirstValue.ByteValue <= 'Z') || (FirstValue.ByteValue >= 'a' && FirstValue.ByteValue <= 'z')) { FirstValue.ByteValue ^= ('a' - 'A'); if(gpSyser->m_pDebugger->WriteMemory(DataPtr.Address,&FirstValue,DataWidth)!=DataWidth) return; } DataPtr.Address+=DataWidth; } } ================================================ FILE: Project/Syser/Source/DataOperatorDlg.h ================================================ #ifndef _DATAOPERATOR_H_ #define _DATAOPERATOR_H_ class CDataOperatorDlg; typedef void (CDataOperatorDlg::*FPDATAOPERATION)(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); class CDataOperatorDlg:public CWispForm { public: CDataOperatorDlg(); ~CDataOperatorDlg(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnLineTextCmd) DECLARE_WISP_MSG_CMD(OnValueEditCmd) DECLARE_WISP_MSG_EVENT(OnOKButtonEvent) DECLARE_WISP_MSG_EVENT(OnCancelButtonEvent) DECLARE_WISP_MSG_EVENT(OnCountCheckBoxCmd) bool CreateForm(CWispBaseWnd* pParentWnd,UINT ShowMode,UINT BeginAddr,UINT EndAddr,UINT DataWidth,DWORD OperationType=0); public: CWispStaticStr* m_DesciptionStr; CWispButton* m_OKButton; CWispButton* m_CancelButton; CWispRadioBox* m_BYTERadioBox; CWispRadioBox* m_WORDRadioBox; CWispRadioBox* m_DWORDRadioBox; CWispRadioBox* m_QWORDRadioBox; CWispRadioBox* m_DecimalRadioBox; CWispRadioBox* m_HexRadioBox; CWispCheckBox* m_CountCheckBox; CWispStaticStr* m_ValueStr; CWispEdit* m_BeginAddressEdit; CWispEdit* m_EndAddressEdit; CWispEdit* m_ValueEdit; DWORD m_BeginAddr; DWORD m_EndAddr; DWORD m_DataWidth; DWORD m_OperationType; static const WCHAR* DataOperatorDescription[20]; static const WCHAR* DataOperatorTitle[20]; static FPDATAOPERATION m_Func[20]; void ByteFlip(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void InverseBits(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void ShiftLeft(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void ShiftRight(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void RotateLeft(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void RotateRight(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void BlockShiftLeft(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void BlockShiftRight(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void XOR(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void OR(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void AND(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void ChangeSign(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void Add(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void Subtract(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void Multiply(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void Divide(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void Mod(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void UpperCase(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void LowerCase(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); void InverseCase(void* BeginAddr,void* EndAddr,DWORD DataWidth,void* OwnerParam); DWORD GetDataWidth(); typedef union _DATAVALUE { ULONGLONG ullValue; DWORD DwordValue; WORD WordValue; BYTE ByteValue; BYTE ByteArray[8]; }DATAVALUE; typedef union _DATAVALUEPOINTER { ULONGLONG* ullPtr; DWORD *dwPtr; WORD *wdPtr; BYTE *ptr; DWORD Address; }DATAVALUEPOINTER; }; #endif //_DATAOPERATOR_H_ ================================================ FILE: Project/Syser/Source/DataView.cpp ================================================ #include "StdAfx.h" #include "Syser.h" WISP_TOOLBAR_RES_ITEM DataViewToolbar[]= { {DATAOPERATOR_ID_BYTEFLIP, 0,WISP_TBIS_BUTTON,WSTR("ByteFlip")}, {DATAOPERATOR_ID_INVERSEBITS, 1,WISP_TBIS_BUTTON,WSTR("Inverse Bits")}, {DATAOPERATOR_ID_SHIFTLEFT, 2,WISP_TBIS_BUTTON,WSTR("Shift Left")}, {DATAOPERATOR_ID_SHIFTRIGHT, 3,WISP_TBIS_BUTTON,WSTR("Shift Right")}, {DATAOPERATOR_ID_ROTATELEFT, 4,WISP_TBIS_BUTTON,WSTR("Rotate Left")}, {DATAOPERATOR_ID_ROTATERIGHT, 5,WISP_TBIS_BUTTON,WSTR("Rotate Right")}, {DATAOPERATOR_ID_BLOCKSHIFTLEFT, 6,WISP_TBIS_BUTTON,WSTR("Block Shift Left")}, {DATAOPERATOR_ID_BLOCKSHIFTRIGHT, 7,WISP_TBIS_BUTTON,WSTR("Block Shift Right")}, {DATAOPERATOR_ID_XOR, 8,WISP_TBIS_BUTTON,WSTR("XOR")}, {DATAOPERATOR_ID_OR, 9,WISP_TBIS_BUTTON,WSTR("OR")}, {DATAOPERATOR_ID_AND, 10,WISP_TBIS_BUTTON,WSTR("AND")}, // WISP_TOOLBAR_RES_SEPARATOR, {DATAOPERATOR_ID_CHANGESIGN, 11,WISP_TBIS_BUTTON,WSTR("Change Sign")}, {DATAOPERATOR_ID_ADD, 12,WISP_TBIS_BUTTON,WSTR("Add")}, {DATAOPERATOR_ID_SUBTRACT, 13,WISP_TBIS_BUTTON,WSTR("Subtract")}, {DATAOPERATOR_ID_MULTIPLY, 14,WISP_TBIS_BUTTON,WSTR("Multiply")}, {DATAOPERATOR_ID_DIVIDE, 15,WISP_TBIS_BUTTON,WSTR("Divide")}, {DATAOPERATOR_ID_MOD, 16,WISP_TBIS_BUTTON,WSTR("Mod")}, {DATAOPERATOR_ID_UPPERCASE, 17,WISP_TBIS_BUTTON,WSTR("Upper Case")}, {DATAOPERATOR_ID_LOWERCASE, 18,WISP_TBIS_BUTTON,WSTR("Lower Case")}, {DATAOPERATOR_ID_INVERSECASE, 19,WISP_TBIS_BUTTON,WSTR("Inverse Case")}, WISP_TOOLBAR_RES_END }; WISP_MENU_RES_ITEM OperatorMenu[]= { {WSTR("Open new data view at "),EVENT_ID_SHOW_DATA_NEWWND,14*16}, {WSTR("Show Data Enter"),EVENT_ID_SHOW_DATA,14*16}, WISP_MENU_RES_SEPARATOR, {WSTR("Open new code view at "),EVENT_ID_DASM_ADDRESS_NEWWND,13*16+15}, {WSTR("Disassemble code at %08X Shift+Enter"),EVENT_ID_DASM_ADDRESS,13*16+15}, WISP_MENU_RES_SEPARATOR, {WSTR("Data Operator Toolbar Ctrl+T"),EVENT_ID_DATAVIEW_TOOLBAR,7*16+6}, {WSTR("Show offset Ctrl+S"),EVENT_ID_DATA_SHOW_OFFICE,14*16+2}, WISP_MENU_RES_SEPARATOR, {WSTR("Address Mode Ctrl+O"),EVENT_ID_TOGGLE_ADDRESS_MODE,14*16+2}, WISP_MENU_RES_SEPARATOR, {WSTR("Float mode Ctrl+M"),EVENT_ID_TOGGLE_FLOAT_MODE,14*16+2}, WISP_MENU_RES_SEPARATOR, {WSTR("Copy selected data Shift+X"),EVENT_ID_COPY_SEL_VALUE,2*16+3}, {WSTR("Copy selected data Ctrl+X"),EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR,8*16+2}, {WSTR("Copy data as C source Ctrl+Z"),EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE,8*16+2}, {WSTR("Copy value Ctrl+Enter"),EVENT_ID_COPY_VALUE_TO_CLIPBOARD,16*16+0}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CDataView) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispHexWnd) WISP_MSG_EVENT_MAP_BEGIN(CDataView) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_DATA, OnEventShowData) WISP_MSG_EVENT_MAP(EVENT_ID_DASM_ADDRESS, OnEventDasmAddr) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_PHYS_ADDR, OnEventShowPhysAddr) WISP_MSG_EVENT_MAP(EVENT_ID_DISASSEMBLE_PHYS_ADDR, OnEventDasmPhysAddr) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_DATA_NEWWND, OnEventShowDataNewWnd) WISP_MSG_EVENT_MAP(EVENT_ID_DASM_ADDRESS_NEWWND, OnEventDasmAddrNewWnd) WISP_MSG_EVENT_MAP(EVENT_ID_DATAVIEW_TOOLBAR, OnEventShowToolbar) WISP_MSG_EVENT_MAP(EVENT_ID_DATA_SHOW_OFFICE, OnEventShowOffset) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_BYTEFLIP, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_INVERSEBITS, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_SHIFTLEFT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_SHIFTRIGHT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_ROTATELEFT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_ROTATERIGHT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_BLOCKSHIFTLEFT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_BLOCKSHIFTRIGHT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_XOR, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_OR, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_AND, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_CHANGESIGN, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_ADD, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_SUBTRACT, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_MULTIPLY, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_DIVIDE, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_MOD, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_UPPERCASE, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_LOWERCASE, OnEventDataOperation) WISP_MSG_EVENT_MAP(DATAOPERATOR_ID_INVERSECASE, OnEventDataOperation) WISP_MSG_EVENT_MAP(EVENT_ID_TOGGLE_ADDRESS_MODE, OnEventToggleAddressMode) WISP_MSG_EVENT_MAP(EVENT_ID_TOGGLE_FLOAT_MODE, OnEventToggleFloatMode) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_0, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_1, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_2, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_3, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_4, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_5, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_6, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_7, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_ACTIVE_DATAVIEW_8, OnActiveDataView) WISP_MSG_EVENT_MAP(EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW,OnGotoDataViewByValue) WISP_MSG_EVENT_MAP(EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW_WITH_OFFSET,OnGotoDataViewByValue) WISP_MSG_EVENT_MAP(EVENT_ID_FOLLOW_VALUE_TO_CODEVIEW,OnGotoCodeViewByValue) WISP_MSG_EVENT_MAP(EVENT_ID_COPY_VALUE_TO_CLIPBOARD,OnCopyValueToClipboard) WISP_MSG_EVENT_MAP(EVENT_ID_COPY_CARETPOSITION_TO_CLIPBOARD,OnCopyAddressToClipboard) WISP_MSG_EVENT_MAP(EVENT_ID_COPY_SEL_VALUE,OnCopySelectValue); WISP_MSG_EVENT_MAP(EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR,OnCopySelectValue) WISP_MSG_EVENT_MAP(EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE,OnCopySelectValue) WISP_MSG_EVENT_MAP(EVENT_ID_GOTO_NEXT_POS,OnNextPos) WISP_MSG_EVENT_MAP(EVENT_ID_GOTO_PREV_POS,OnPrevPos) //WISP_MSG_EVENT_MAP(EVENT_ID_ADDRESS_MODE_HEX, OnEventAddressModeHex) //WISP_MSG_EVENT_MAP(EVENT_ID_OFFSET_MODE_HEX, OnEventOffsetModeHex) WISP_MSG_EVENT_MAP_END bool CDataView::OnCreate(IN WISP_MSG*pMsg) { m_MenuShowPos=-1; m_DataOperatorAddr=-1; m_PopupMenu.CreatePopupMenu(OperatorMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_Style|=WISP_HEX_WS_RELATIVE_SCROLL; m_Toolbar.CreateEx(this,0,-1,EVENT_ID_DATAVIEW_TOOLBAR,WISP_WS_NULL); m_Toolbar.LoadToolbar(WispTKDIBList("\\SyserApp\\Operation.bmp",16,16),DataViewToolbar); m_Toolbar.Show(WISP_SH_HIDDEN); AttachShortcutKey(); return true; } void CDataView::AttachShortcutKey() { if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_0,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_1, EVENT_ID_ACTIVE_DATAVIEW_0); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_1,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_2, EVENT_ID_ACTIVE_DATAVIEW_1); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_2,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_3, EVENT_ID_ACTIVE_DATAVIEW_2); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_3,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_4, EVENT_ID_ACTIVE_DATAVIEW_3); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_4,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_5, EVENT_ID_ACTIVE_DATAVIEW_4); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_5,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_6, EVENT_ID_ACTIVE_DATAVIEW_5); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_6,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_7, EVENT_ID_ACTIVE_DATAVIEW_6); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_7,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_8, EVENT_ID_ACTIVE_DATAVIEW_7); if(gpSyser->AttachShortcutKey(EVENT_ID_ACTIVE_DATAVIEW_8,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_0, EVENT_ID_ACTIVE_DATAVIEW_8); if(gpSyser->AttachShortcutKey(EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN, EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW); if(gpSyser->AttachShortcutKey(EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW_WITH_OFFSET,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN|WISP_MOD_ALT|WISP_MOD_CTRL, EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW_WITH_OFFSET); if(gpSyser->AttachShortcutKey(EVENT_ID_FOLLOW_VALUE_TO_CODEVIEW,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_RETURN, EVENT_ID_FOLLOW_VALUE_TO_CODEVIEW); if(gpSyser->AttachShortcutKey(EVENT_ID_COPY_VALUE_TO_CLIPBOARD,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL | WISP_VK_RETURN, EVENT_ID_COPY_VALUE_TO_CLIPBOARD); if(gpSyser->AttachShortcutKey(EVENT_ID_COPY_CARETPOSITION_TO_CLIPBOARD,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT| WISP_VK_RETURN, EVENT_ID_COPY_CARETPOSITION_TO_CLIPBOARD); if(gpSyser->AttachShortcutKey(EVENT_ID_COPY_SEL_VALUE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_X, EVENT_ID_COPY_SEL_VALUE); if(gpSyser->AttachShortcutKey(EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT| WISP_VK_X, EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR); if(gpSyser->AttachShortcutKey(EVENT_ID_TOGGLE_ADDRESS_MODE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_O, EVENT_ID_TOGGLE_ADDRESS_MODE ); if(gpSyser->AttachShortcutKey(EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_Z, EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE ); if(gpSyser->AttachShortcutKey(EVENT_ID_GOTO_NEXT_POS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_OEM_PLUS, EVENT_ID_GOTO_NEXT_POS); if(gpSyser->AttachShortcutKey(EVENT_ID_GOTO_PREV_POS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_OEM_MINUS, EVENT_ID_GOTO_PREV_POS ); if(gpSyser->AttachShortcutKey(EVENT_ID_TOGGLE_FLOAT_MODE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_M, EVENT_ID_TOGGLE_FLOAT_MODE ); if(gpSyser->AttachShortcutKey(EVENT_ID_DATA_SHOW_OFFICE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_S, EVENT_ID_DATA_SHOW_OFFICE ); if(gpSyser->AttachShortcutKey(EVENT_ID_DATAVIEW_TOOLBAR,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL| WISP_VK_T, EVENT_ID_DATAVIEW_TOOLBAR ); } bool CDataView::OnGotoDataViewByValue(IN WISP_MSG* pMsg) { DWORD Address,Value; DWORD Offset=0; ULPOS Pos; if(CalcPonitPos(&m_CaretPos,&Pos)==false) return true; if(pMsg && pMsg->Command.CmdID==EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW_WITH_OFFSET) { Offset= Pos-m_CurAddr; } Pos = Pos+ (m_ShowLength- 1 - (m_CaretIndex % (m_ShowLength*3))/2); if(ReadData(Pos,(BYTE*)&Address,4)==0) return true; if(Address!=-1) { Address-=Offset; if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) { ViewAddress(Address); } } return true; } bool CDataView::OnGotoDataViewByValueWithOffset(IN WISP_MSG* pMsg) { DWORD Address,Value; ULPOS Pos; if(CalcPonitPos(&m_CaretPos,&Pos)==false) return true; Pos = Pos+ (m_ShowLength- 1 - (m_CaretIndex % (m_ShowLength*3))/2); if(ReadData(Pos,(BYTE*)&Address,4)==0) return true; if(Address!=-1) { if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) { ViewAddress(Address); } } return true; } bool CDataView::OnGotoCodeViewByValue(IN WISP_MSG* pMsg) { DWORD Address; ULPOS Pos,Value; CCodeView*pCodeWnd; if(CalcPonitPos(&m_CaretPos,&Pos)==false) return true; Pos = Pos+ (m_ShowLength- 1 - (m_CaretIndex % (m_ShowLength*3))/2); if(ReadData(Pos,(BYTE*)&Address,4)==0) return true; if(Address!=-1) { if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) { pCodeWnd=ACTIVE_CODE_VIEW; if(pCodeWnd) pCodeWnd->SetStartAddress(Address,true); } } return true; } bool CDataView::OnCopyValueToClipboard(IN WISP_MSG* pMsg) { DWORD Address; ULPOS Pos; WISP_CHAR AddressString[10]; CWispString ClipboardString; bool bSeparator=true; ClipboardString.Empty(); if(CalcPonitPos(&m_CaretPos,&Pos)==false) return true; Pos = Pos+ (m_ShowLength- 1 - (m_CaretIndex % (m_ShowLength*3))/2); if(ReadData(Pos,(BYTE*)&Address,4)==0) return true; if(Address==-1) return true; TSPrintf(AddressString,WSTR("%08x"),Address); ClipboardString+=AddressString; m_pWispBase->SetClipboardString(ClipboardString); return true; } bool CDataView::OnCopyAddressToClipboard(IN WISP_MSG* pMsg) { ULPOS Pos; WISP_CHAR AddressString[10]; CWispString ClipboardString; bool bSeparator=true; if(CalcPonitPos(&m_CaretPos,&Pos)==false) return true; TSPrintf(AddressString,WSTR("%08x"),Pos); ClipboardString+=AddressString; m_pWispBase->SetClipboardString(ClipboardString); return true; } bool CDataView::OnCopySelectValue(IN WISP_MSG* pMsg) { WISP_CHAR AddressString[256]; BYTE Vaule[16]; CWispString ClipboardString; bool bSeparator=true; ClipboardString.Empty(); if(!m_bSelect) return true; if(pMsg->Command.CmdID==EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR) bSeparator=false; if(pMsg->Command.CmdID==EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE) { DWORD dwCount; dwCount = m_SelEnd - m_SelStart + 1; ClipboardString += WSTR("// Generated by Syser software's Syser Debugger v"); TStrCpy(AddressString,VER_PRODUCTVERSION_STR ); ClipboardString += AddressString; ClipboardString += WSTR("\r\n// http://www.sysersoft.com\r\n"); TSPrintf(AddressString,WSTR("unsigned char rawData[%d] =\r\n{"),dwCount); ClipboardString+=AddressString; for(DWORD i = 0; i < dwCount; i++) { if((i%16)==0) ClipboardString+=WSTR("\r\n\t"); if(gpSyser->m_pDebugger->ReadMemory(m_SelStart+i,Vaule,1)!=1) break; if( i != (dwCount-1)) TSPrintf(AddressString,WSTR("0x%02X, "),Vaule[0]); else TSPrintf(AddressString,WSTR("0x%02X"),Vaule[0]); ClipboardString+=AddressString; } ClipboardString+=WSTR("\r\n}\n"); m_pWispBase->SetClipboardString(ClipboardString); return true; } DWORD dwCount; dwCount = m_SelEnd - m_SelStart + 1; for(DWORD i = 0; i < dwCount/m_ShowLength; i++) { if(gpSyser->m_pDebugger->ReadMemory(m_SelStart+i*m_ShowLength,Vaule,m_ShowLength)!=m_ShowLength) break; switch(m_ShowLength) { case 1: TSPrintf(AddressString,WSTR("%02x"),Vaule[0]); break; case 2: TSPrintf(AddressString,WSTR("%04x"),*(WORD*)&Vaule[0]); break; case 4: TSPrintf(AddressString,WSTR("%08x"),*(DWORD*)&Vaule[0]); break; } ClipboardString+=AddressString; if(bSeparator && i != dwCount - 1) ClipboardString+=L" "; } m_pWispBase->SetClipboardString(ClipboardString); return true; } bool CDataView::OnActiveDataView(IN WISP_MSG*pMsg) { DWORD Index; Index = pMsg->Command.CmdID; Index -= EVENT_ID_ACTIVE_DATAVIEW_0; DWORD NewAddr; CDataView* pDataView =(CDataView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetWnd(Index); if(pDataView==NULL) { pDataView =(CDataView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); NewAddr = ACTIVE_DATA_VIEW->m_CurAddr; pDataView = ADD_DATA_VIEW(pDataView); if(pDataView==NULL) return false; } else { gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.ChangeActiveWnd(pDataView); } return true; } bool CDataView::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CDataView::OnKeyEvent(IN WISP_MSG*pMsg) { DATAHOTKEYMAP::IT FindIT; WISP_MSG Msg; if(pMsg->KeyEvent.bKeyDown) { FindIT = m_HotKeyMap.Find(pMsg->KeyEvent.KeyType); if(FindIT != m_HotKeyMap.End()) { memset(&Msg,0,sizeof(Msg)); Msg.Command.CmdID=*FindIT; return OnEvent(&Msg); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: PopupMenu(pMsg); return false; case WISP_VK_LBUTTON: if(CalcPonitPos(&pMsg->MsgMouseWndPT,&m_DataOperatorAddr)==false) m_DataOperatorAddr=m_CurAddr; return true; case WISP_VK_W: { int SizeXorY; gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.GetWndSpace(0,SizeXorY); if(SizeXorY>10) gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.ResizeWndSpace(0,SizeXorY-10); else gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.ResizeWndSpace(0,0); gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.AdjustWndPos(); return false; } break; case WISP_VK_S: { int SizeXorY; gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.GetWndSpace(0,SizeXorY); gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.ResizeWndSpace(0,SizeXorY+10); gpSyser->m_MainFrame.m_SystemExplorer.m_ViewSplitWnd.AdjustWndPos(); return false; } break; } } return true; } DWORD CDataView::FindShortcutKey(DWORD CmdID) { DATAHOTKEYMAP::IT BeginIT,EndIT; BeginIT = m_HotKeyMap.Begin(); EndIT = m_HotKeyMap.End(); for(;BeginIT!=EndIT;BeginIT++) { if(*BeginIT == CmdID) return BeginIT.Key(); } return 0; } void CDataView::PopupMenu(IN WISP_MSG*pMsg) { bool bValidAddress=false; bool bValidAddress1=false; HANDLE hItem; DWORD TmpValue; DWORD dwAddress=0; WCHAR wHotKeyBuffer[50]; WCHAR szBuffer[256]; m_MenuShowPos = -1; bValidAddress = false; DATAHOTKEYMAP::IT FindIT; if(CalcPonitPos(&pMsg->MsgMouseWndPT,&m_MenuShowPos)) { dwAddress=m_MenuShowPos; if(gpSyser->m_KeyMap[WISP_VK_SHIFT])// Ҽ˵ʱ ж shift Ƿ񱻰¡ ҪһĽṹ dwAddress -= m_CurAddr ; else dwAddress=0; bValidAddress1=(ReadData(m_MenuShowPos,(BYTE*)&m_MenuShowPos,4)==4); //bValidAddress1 жϵǰλڴǷɶ if(bValidAddress1) { bValidAddress=(ReadData(m_MenuShowPos,(BYTE*)&TmpValue,4)==4);//bValidAddress жϵǰλõ dword ΪһµĵַǷɶ } } if(bValidAddress) { m_MenuShowPos-=dwAddress; hItem = m_PopupMenu.GetItem(EVENT_ID_SHOW_DATA_NEWWND); TSPrintf(szBuffer,WSTR("Open new data view at %08X"),m_MenuShowPos); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_SHOW_DATA); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Display data at %08X %s"),m_MenuShowPos,wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_DASM_ADDRESS_NEWWND); TSPrintf(szBuffer,WSTR("Open new code view at %08X"),m_MenuShowPos); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_DASM_ADDRESS); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_FOLLOW_VALUE_TO_CODEVIEW),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Disassemble code at %08X %s"),m_MenuShowPos,wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); } hItem = m_PopupMenu.GetItem(EVENT_ID_TOGGLE_ADDRESS_MODE); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_TOGGLE_ADDRESS_MODE),wHotKeyBuffer); if(GetAddressMode()==ADDRESS_MODE_HEX) { TSPrintf(szBuffer,WSTR("Offset Mode %s"),wHotKeyBuffer); } else { TSPrintf(szBuffer,WSTR("Address Mode %s"),wHotKeyBuffer); } m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_COPY_SEL_VALUE); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_COPY_SEL_VALUE),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Copy selected data %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Copy selected data %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Copy data as C source %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_COPY_VALUE_TO_CLIPBOARD); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_COPY_VALUE_TO_CLIPBOARD),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Copy value %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_DATAVIEW_TOOLBAR); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_DATAVIEW_TOOLBAR),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Data Operator Toolbar %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_DATA_SHOW_OFFICE); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_DATA_SHOW_OFFICE),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Show offset %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); hItem = m_PopupMenu.GetItem(EVENT_ID_TOGGLE_FLOAT_MODE); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_TOGGLE_FLOAT_MODE),wHotKeyBuffer); if(IsFloatMode()) TSPrintf(szBuffer,WSTR("Fixed mode %s"),wHotKeyBuffer); else TSPrintf(szBuffer,WSTR("Float mode %s"),wHotKeyBuffer); m_PopupMenu.SetItemText(hItem,szBuffer); m_PopupMenu.EnableItem(EVENT_ID_TOGGLE_FLOAT_MODE,!m_FloatString.IsEmpty()); m_PopupMenu.EnableItem(EVENT_ID_SHOW_DATA_NEWWND,bValidAddress); m_PopupMenu.EnableItem(EVENT_ID_SHOW_DATA,bValidAddress); m_PopupMenu.EnableItem(EVENT_ID_DASM_ADDRESS_NEWWND,bValidAddress); m_PopupMenu.EnableItem(EVENT_ID_DASM_ADDRESS,bValidAddress); m_PopupMenu.EnableItem(EVENT_ID_COPY_SEL_VALUE,m_bSelect); m_PopupMenu.EnableItem(EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR,m_bSelect); m_PopupMenu.EnableItem(EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE,m_bSelect); m_PopupMenu.EnableItem(EVENT_ID_COPY_VALUE_TO_CLIPBOARD,bValidAddress1); m_PopupMenu.Popup(); } void CDataView::OnAddrChange() { WISP_CHAR szBuffer[64]; int Index = 0; for(CTabWndList::IT Iter=gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.m_WndList.Begin(); Iter!=gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.m_WndList.End();Iter++) { if(Iter->pWnd==this) { TSPrintf(szBuffer,WSTR("%08X"),m_CurAddr); gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetTabText(Index,szBuffer); } Index++; } } void CDataView::OnDataChange() { UPDATE_CONTEXT(); } bool CDataView::OnEventShowData(IN WISP_MSG*pMsg) { DWORD Address=GetPopMenuDataPos(); DWORD Value; if(Address!=-1) { if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) ViewAddress(Address); } return true; } bool CDataView::OnEventShowDataNewWnd(IN WISP_MSG*pMsg) { DWORD Address=GetPopMenuDataPos(); CMultiDataView* pMultiDataView; pMultiDataView = (CMultiDataView*)m_ParentWnd; pMultiDataView->InsertView(this); pMultiDataView->SetActiveAddress(Address); return true; } bool CDataView::OnEventDasmAddrNewWnd(IN WISP_MSG*pMsg) { CCodeView*pCodeWnd; DWORD Address=GetPopMenuDataPos(); if(Address!=-1) { pCodeWnd = ADD_CODE_VIEW(); if(pCodeWnd) pCodeWnd->SetStartAddress(Address,true); } return true; } bool CDataView::OnEventDasmAddr(IN WISP_MSG*pMsg) { CCodeView*pCodeWnd; DWORD Address=GetPopMenuDataPos(); if(Address!=-1) { pCodeWnd=ACTIVE_CODE_VIEW; if(pCodeWnd) pCodeWnd->SetStartAddress(Address,true); } return true; } bool CDataView::OnEventShowPhysAddr(IN WISP_MSG*pMsg) { #if CODE_OS_NT_DRV DWORD dwAddr=GetPopMenuDataPos(); if(dwAddr!=-1) { if(MapToVAddr(dwAddr,&dwAddr)) ViewAddress(dwAddr); } #endif return true; } int CDataView::GetStartLine() { if(m_Toolbar.IsVisible()==false) return CWispHexWnd::GetStartLine(); return 2; }; bool CDataView::OnEventShowToolbar(IN WISP_MSG*pMsg) { if(m_Toolbar.IsVisible()==false) { m_Toolbar.Show(); } else { m_Toolbar.Show(WISP_SH_HIDDEN); } return true; } bool CDataView::OnEventDasmPhysAddr(IN WISP_MSG*pMsg) { #if CODE_OS_NT_DRV CCodeView*pCodeWnd; DWORD dwAddr=GetPopMenuDataPos(); if(dwAddr!=-1) { pCodeWnd=(CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeWnd) { if(MapToVAddr(dwAddr,&dwAddr)) pCodeWnd->SetStartAddress(dwAddr); } } #endif return true; } ULSIZE CDataView::ReadData(ULPOS Address,BYTE*Buffer,ULSIZE Size) { if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return 0; return gpSyser->m_pDebugger->ReadMemory(Address,Buffer,Size); } ULSIZE CDataView::WriteData(ULPOS Address,BYTE*Buffer,ULSIZE Size) { ULSIZE dwSize; if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return 0; dwSize= gpSyser->m_pDebugger->WriteMemory(Address,Buffer,Size); return dwSize; } DWORD CDataView::GetPopMenuDataPos() { return m_MenuShowPos; } DWORD CDataView::GetDataOperatorPos() { return m_DataOperatorAddr; } bool CDataView::OnChar(IN WISP_MSG*pMsg) { return true; } bool CDataView::GetDataOperatorParam(DWORD* BeginAddr,DWORD* EndAddr,DWORD* DataWidth) { if(m_bSelect) { *BeginAddr=m_SelStart; *EndAddr=m_SelEnd; if(m_SelStart==m_SelEnd) *EndAddr+=1; } else { *BeginAddr=GetDataOperatorPos(); if(*BeginAddr==-1) *BeginAddr = m_CurAddr; *EndAddr=*BeginAddr+m_ShowLength; } *DataWidth=m_ShowLength; return true; } bool CDataView::OnEventDataOperation(IN WISP_MSG*pMsg) { DWORD BeginAddr,EndAddr,DataWidth; GetDataOperatorParam(&BeginAddr,&EndAddr,&DataWidth); m_DataOperatorDlg.CreateForm(NULL,WISP_SH_MODAL_BLOCK,BeginAddr,EndAddr,DataWidth,pMsg->Command.CmdID); return true; } bool CDataView::OnEventToggleAddressMode(IN WISP_MSG*pMsg) { SetAddressMode(1-GetAddressMode(),m_CurAddr); Update(); return true; } bool CDataView::OnEventToggleFloatMode(IN WISP_MSG*pMsg) { ToggleFloatMode(); return true; } bool CDataView::OnEventShowOffset(IN WISP_MSG*pMsg) { ToggleShowOffset(); return true; } ULPOS CDataView::GetFloatAddress(CStrW& CmdStr) { ULPOS Address; if(CmdStr.IsEmpty()) return m_CurAddr; if(CALCEXP(CmdStr.m_pData,&Address)==false) return m_CurAddr; return Address; } ================================================ FILE: Project/Syser/Source/DataView.h ================================================ #ifndef _DATA_VIEW_H_ #define _DATA_VIEW_H_ #include "DataOperatorDlg.h" class CDataView : public CWispHexWnd { //typedef bool (CDataView::*DATA_HOTKEY_FP)(IN UINT Index); //class CDataHotKey //{ //public: // UINT m_ViewIndex; // DATA_HOTKEY_FP m_fpHotKey; // CDataHotKey(){}; // CDataHotKey(UINT Index,DATA_HOTKEY_FP fpHotKey):m_ViewIndex(Index),m_fpHotKey(fpHotKey){}; // ~CDataHotKey(){} //}; typedef TMap DATAHOTKEYMAP; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnChar); DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventShowData) DECLARE_WISP_MSG_EVENT(OnEventDasmAddr) DECLARE_WISP_MSG_EVENT(OnEventShowDataNewWnd) DECLARE_WISP_MSG_EVENT(OnEventDasmAddrNewWnd) DECLARE_WISP_MSG_EVENT(OnEventShowPhysAddr) DECLARE_WISP_MSG_EVENT(OnEventDasmPhysAddr) DECLARE_WISP_MSG_EVENT(OnEventShowToolbar) DECLARE_WISP_MSG_EVENT(OnEventShowOffset) DECLARE_WISP_MSG_EVENT(OnEventDataOperation) DECLARE_WISP_MSG_EVENT(OnEventAddressModeHex) DECLARE_WISP_MSG_EVENT(OnEventOffsetModeHex) DECLARE_WISP_MSG_EVENT(OnEventToggleAddressMode) DECLARE_WISP_MSG_EVENT(OnEventToggleFloatMode) DECLARE_WISP_MSG_EVENT(OnGotoDataViewByValue) DECLARE_WISP_MSG_EVENT(OnGotoDataViewByValueWithOffset) DECLARE_WISP_MSG_EVENT(OnGotoCodeViewByValue ) DECLARE_WISP_MSG_EVENT( OnCopyValueToClipboard) DECLARE_WISP_MSG_EVENT(OnCopyAddressToClipboard ) DECLARE_WISP_MSG_EVENT(OnCopySelectValue ) DECLARE_WISP_MSG_EVENT(OnActiveDataView ) bool OnActiveDataView(IN UINT Index); bool DispatchHotKey(IN UINT Type); ULSIZE WriteData(ULPOS Address,BYTE*Buffer,ULSIZE Size); ULSIZE ReadData(ULPOS Address,BYTE*Buffer,ULSIZE Size); DWORD GetPopMenuDataPos(); DWORD GetDataOperatorPos(); bool GetDataOperatorParam(DWORD* BeginAddr,DWORD* EndAddr,DWORD* DataWidth); void OnAddrChange(); void OnDataChange(); int GetStartLine(); void PopupMenu(IN WISP_MSG*pMsg); ULPOS GetFloatAddress(CStrW& CmdStr); void AttachShortcutKey(); DWORD FindShortcutKey(DWORD CmdID); public: ULPOS m_MenuShowPos; ULPOS m_DataOperatorAddr; ULPOS m_BaseAddressActive; CWispMenu m_PopupMenu; CWispToolbar m_Toolbar; CDataOperatorDlg m_DataOperatorDlg; DATAHOTKEYMAP m_HotKeyMap; }; #endif ================================================ FILE: Project/Syser/Source/DataViewFindDlg.cpp ================================================ #include "stdafx.h" #include "DataViewFindDlg.h" FINDDATATYPE CDataViewFindDlg::m_FindDataType[12]= { {WSTR("Hex Values"),0}, {WSTR("Text String"),1}, {WSTR("8 Bit Signed Byte"),2}, {WSTR("8 Bit Unsigned Byte"),3}, {WSTR("16 Bit Signed Short"),4}, {WSTR("16 Bit Unsigned Short"),5}, {WSTR("32 Bit Signed Long"),6}, {WSTR("32 Bit Unsigned Long"),7}, {WSTR("64 Bit Signed Quad"),8}, {WSTR("64 Bit Unsigned Quad"),9}, {WSTR("32 Float"),10}, {WSTR("64 Double"),11}, }; enum CDataViewFindDlg::WISP_FORM_ID { CMD_ID_BUTTON_OK=WISP_ID_USER_START, CMD_ID_BUTTON_CANCEL, CMD_ID_STATICGROUP_FIND_WATH, CMD_ID_STATICSTR_TYPE, CMD_ID_COMBOBOX_TYPE, CMD_ID_STATICSTR_VALUE, CMD_ID_EDIT_VALUE, CMD_ID_STATICSTR_HEX, CMD_ID_EDIT_HEX, CMD_ID_STATICGROUP_DIRECTORY, CMD_ID_RADIOBOX_DIRECTION_DOWN, CMD_ID_RADIOBOX_DIRECTION_UP, CMD_ID_STATICGROUP_OPTIONS, CMD_ID_CHECKBOX_ALL_INSTANCES, CMD_ID_CHECKBOX_CASE, CMD_ID_RADIOBOX_ASCII_STR, CMD_ID_RADIOBOX_UNICODE_STR, CMD_ID_RADIOBOX_EITHER, CMD_ID_STATICGROUP_RANGE, CMD_ID_RADIOBOX_IN_MODULE, CMD_ID_RADIOBOX_IN_RANGE, CMD_ID_STATICSTR_BEGIN_ADDRESS, CMD_ID_EDIT_BEGIN_ADDRESS, CMD_ID_STATICSTR_END_ADDRESS, CMD_ID_EDIT_END_ADDRESS, }; WISP_FORM_RES_ITEM CDataViewFindDlg::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,391,315}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Find"), "\\SyserIcon\\Plugin.ico", NULL, }, { WISP_CTRL_STATIC_GROUP, {10,10,364,80}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Find What") }, { WISP_CTRL_STATIC_STRING, {23,26,45,16}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Type:"), NULL, }, { WISP_CTRL_COMBO_BOX, {62,26,135,214}, CMD_ID_COMBOBOX_TYPE, WISP_WS_NORMAL, NULL, NULL, }, { WISP_CTRL_STATIC_STRING, {17,46,45,16}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Value:"), NULL, }, { WISP_CTRL_EDIT, {62,46,300,16}, WISP_ID_NULL, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_STRING, {29,66,45,16}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Hex:"), NULL, }, { WISP_CTRL_EDIT, {62,66,300,16}, CMD_ID_EDIT_HEX, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_GROUP, {10,96,364,55}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Range") }, { WISP_CTRL_RADIO_BOX, {16,107,90,16}, CMD_ID_RADIOBOX_IN_MODULE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("In Module"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {16,125,90,16}, CMD_ID_RADIOBOX_IN_RANGE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("In Range"), NULL, NULL }, { WISP_CTRL_STATIC_STRING, {110,127,45,16}, CMD_ID_STATICSTR_BEGIN_ADDRESS, WISP_WS_NULL, WSTR("Begin:"), NULL, }, { WISP_CTRL_EDIT, {160,125,80,16}, CMD_ID_EDIT_BEGIN_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_STRING, {250,127,45,16}, CMD_ID_STATICSTR_END_ADDRESS, WISP_WS_NULL, WSTR("End:"), NULL, }, { WISP_CTRL_EDIT, {280,125,80,16}, CMD_ID_EDIT_END_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_GROUP, {10,160,240,95}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Options") }, { WISP_CTRL_CHECK_BOX, {20,170,120,16}, WISP_ID_NULL, WISP_WS_THIN_BORDER, WSTR("Find All Instances"), NULL, NULL }, { WISP_CTRL_CHECK_BOX, {150,170,50,16}, WISP_ID_NULL, WISP_WS_THIN_BORDER, WSTR("Case"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {20,190,120,16}, CMD_ID_RADIOBOX_ASCII_STR, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("ASCII String"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {20,210,120,16}, CMD_ID_RADIOBOX_UNICODE_STR, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Unicode String"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {20,230,120,16}, CMD_ID_RADIOBOX_EITHER, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Either"), NULL, NULL }, { WISP_CTRL_STATIC_GROUP, {260,160,114,95}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Direction") }, { WISP_CTRL_RADIO_BOX, {270,175,90,16}, CMD_ID_RADIOBOX_DIRECTION_DOWN, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Down"), NULL, NULL }, { WISP_CTRL_RADIO_BOX, {270,195,90,16}, CMD_ID_RADIOBOX_DIRECTION_UP, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, WSTR("Up"), NULL, NULL }, { WISP_CTRL_BUTTON, {100,260,68,20}, CMD_ID_BUTTON_OK, WISP_BS_NORMAL, WSTR("Find"), }, { WISP_CTRL_BUTTON, {210,260,68,20}, CMD_ID_BUTTON_CANCEL, WISP_BS_NORMAL, WSTR("Close"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CDataViewFindDlg) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CDataViewFindDlg) //WISP_MSG_CMD_MAP(CMD_ID_LIST_TYPE,OnTypeListCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CDataViewFindDlg) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_OK,OnOKButtonEvent) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_CANCEL,OnCancelButtonEvent) //WISP_MSG_EVENT_MAP(CMD_ID_RADIOBOX_LOCKTYPE,OnLockRadioBoxEvent) WISP_MSG_EVENT_MAP(CMD_ID_RADIOBOX_IN_MODULE,OnInModuleRadioBoxEvent) WISP_MSG_EVENT_MAP(CMD_ID_RADIOBOX_IN_RANGE,OnInRangeRadioBoxEvent) WISP_MSG_EVENT_MAP_END CDataViewFindDlg::CDataViewFindDlg() { m_pFormRes = m_FormRes; } CDataViewFindDlg::~CDataViewFindDlg() { } bool CDataViewFindDlg::OnFormCreate(IN WISP_MSG* pMsg) { m_OKButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_OK); m_CancelButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_CANCEL); m_AsciiRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_ASCII_STR); m_UnicodeRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_UNICODE_STR); m_EitherRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_EITHER); m_InModuleRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_IN_MODULE); m_InRangeRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_IN_RANGE); m_DownRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_DIRECTION_DOWN); m_UpRadioBox= (CWispRadioBox*)GetFormItem(CMD_ID_RADIOBOX_DIRECTION_UP); m_AllInstanceCheckBox= (CWispCheckBox*)GetFormItem(CMD_ID_CHECKBOX_ALL_INSTANCES); m_CaseCheckBox= (CWispCheckBox*)GetFormItem(CMD_ID_CHECKBOX_CASE); m_BeginAddressEdit= (CWispEdit*)GetFormItem(CMD_ID_EDIT_BEGIN_ADDRESS); m_EndAddressEdit= (CWispEdit*)GetFormItem(CMD_ID_EDIT_END_ADDRESS); m_HexEdit= (CWispEdit*)GetFormItem(CMD_ID_EDIT_HEX); m_ValueEdit= (CWispEdit*)GetFormItem(CMD_ID_EDIT_VALUE); m_TypeComboBox = (CWispComboBox*)GetFormItem(CMD_ID_COMBOBOX_TYPE); for(int i = 0; i < sizeof(m_FindDataType)/sizeof(m_FindDataType[0]);i++) m_TypeComboBox->InsertItem(m_FindDataType[i].TypeName,m_FindDataType[i].TypeID); m_HexEdit->EnableWindow(false); return true; } bool CDataViewFindDlg::OnInModuleRadioBoxEvent(IN WISP_MSG* pMsg) { m_BeginAddressEdit->EnableWindow(false); m_EndAddressEdit->EnableWindow(false); Update(); return true; } bool CDataViewFindDlg::OnInRangeRadioBoxEvent(IN WISP_MSG* pMsg) { m_BeginAddressEdit->EnableWindow(true); m_EndAddressEdit->EnableWindow(true); Update(); return true; } bool CDataViewFindDlg::OnDestroy(IN WISP_MSG* pMsg) { return true; } bool CDataViewFindDlg::CreateForm(CWispBaseWnd* pParentWnd,UINT ShowMode,UINT BeginAddr) { return CWispForm::CreateForm(pParentWnd,ShowMode); } bool CDataViewFindDlg::OnOKButtonEvent(IN WISP_MSG* pMsg) { PostCloseMsg(); return true; } bool CDataViewFindDlg::OnCancelButtonEvent(IN WISP_MSG* pMsg) { PostCloseMsg(); return true; } bool CDataViewFindDlg::OnTypeListCmd(IN WISP_MSG* pMsg) { return true; } ================================================ FILE: Project/Syser/Source/DataViewFindDlg.h ================================================ #ifndef _DATAVIEWFINDDLG_H_ #define _DATAVIEWFINDDLG_H_ typedef struct _FINDDATATYPE { WCHAR* TypeName; DWORD TypeID; }FINDDATATYPE; class CDataViewFindDlg:public CWispForm { public: CDataViewFindDlg(); ~CDataViewFindDlg(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnTypeListCmd) DECLARE_WISP_MSG_EVENT(OnOKButtonEvent) DECLARE_WISP_MSG_EVENT(OnCancelButtonEvent) DECLARE_WISP_MSG_EVENT(OnInRangeRadioBoxEvent) DECLARE_WISP_MSG_EVENT(OnInModuleRadioBoxEvent) bool CreateForm(CWispBaseWnd* pParentWnd,UINT ShowMode,UINT BeginAddr); public: CWispComboBox* m_TypeComboBox; CWispButton* m_OKButton; CWispButton* m_CancelButton; CWispRadioBox* m_AsciiRadioBox; CWispRadioBox* m_UnicodeRadioBox; CWispRadioBox* m_EitherRadioBox; CWispRadioBox* m_InModuleRadioBox; CWispRadioBox* m_InRangeRadioBox; CWispRadioBox* m_DownRadioBox; CWispRadioBox* m_UpRadioBox; CWispCheckBox* m_AllInstanceCheckBox; CWispCheckBox* m_CaseCheckBox; CWispEdit* m_BeginAddressEdit; CWispEdit* m_EndAddressEdit; CWispEdit* m_HexEdit; CWispEdit* m_ValueEdit; static FINDDATATYPE m_FindDataType[12]; DWORD m_BeginAddress; }; #endif //_DATAVIEWFINDDLG_H_ ================================================ FILE: Project/Syser/Source/DataViewForm.cpp ================================================ #include "StdAfx.h" #include "DataViewForm.h" #include "Syser.h" enum CDataViewForm::WISP_FORM_ID { CMD_ID_EDIT_TEXT = WISP_ID_USER_START, CMD_ID_STATIC_GROUP, CMD_ID_DATA_VIEW, CMD_ID_GOTO }; WISP_FORM_RES_ITEM CDataViewForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,500,300}, WISP_ID_NULL, WISP_WFS_DIALOG | WISP_WS_BT_MIN | WISP_WS_SIZABLE, WSTR("Data View") }, { WISP_CTRL_STATIC_GROUP, {10,10,470,40}, CMD_ID_STATIC_GROUP, WISP_WS_NULL, WSTR("Address"), }, { WISP_CTRL_EDIT, {20,25,400,16}, CMD_ID_EDIT_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {430,25,40,16}, CMD_ID_GOTO, WISP_BS_NORMAL, WSTR("Goto"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CDataViewForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_SIZE ,OnSize) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CDataViewForm) WISP_MSG_CMD_MAP(CMD_ID_EDIT_TEXT,OnCmdAddressEdit) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CDataViewForm) WISP_MSG_EVENT_MAP(CMD_ID_GOTO,OnGoto) WISP_MSG_EVENT_MAP_END CDataViewForm::CDataViewForm() { m_pFormRes = m_FormRes; } CDataViewForm::~CDataViewForm() { } bool CDataViewForm::OnFormCreate(WISP_MSG*pMsg) { if(m_Style & WISP_WS_CAPTION) AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,89)); int y; m_pAddrEdit = (CWispEdit*) GetFormItem(CMD_ID_EDIT_TEXT); m_pGroupCtrl = (CWispStaticGroup*) GetFormItem(CMD_ID_STATIC_GROUP); m_pButton = (CWispButton*) GetFormItem(CMD_ID_GOTO); y = m_pAddrEdit->m_ScrWindowRect.x-m_ScrWindowRect.x+30; m_DataView.Create(NULL,10,y,m_pGroupCtrl->m_WindowRect.cx,m_ClientRect.cy - y - 10,this,CMD_ID_DATA_VIEW,WISP_WS_NULL); OnSize(NULL); return true; } bool CDataViewForm::OnClose(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CDataViewForm::OnSize(WISP_MSG*pMsg) { m_pGroupCtrl->Resize(m_ClientRect.cx-20,m_pGroupCtrl->m_WindowRect.cy); m_pAddrEdit->Resize(m_pGroupCtrl->m_WindowRect.cx - m_pButton->m_WindowRect.cx - 30,m_pAddrEdit->m_WindowRect.cy); m_pButton->MoveToWindow(m_pGroupCtrl->m_ScrWindowRect.x-m_ScrWindowRect.x+m_pGroupCtrl->m_WindowRect.cx-50,m_pButton->m_ScrWindowRect.y - m_ScrWindowRect.y); m_DataView.Resize(m_pGroupCtrl->m_WindowRect.cx,m_ClientRect.cy - m_pAddrEdit->m_ScrWindowRect.x+m_ScrWindowRect.x-40); return true; } bool CDataViewForm::OnGoto(WISP_MSG*pMsg) { UpdateContext(); return false; } bool CDataViewForm::OnCmdAddressEdit(WISP_MSG*pMsg) { switch(pMsg->Command.CmdMsg) { case WISP_CMD_EN_INPUT_KEY_DOWN: switch(pMsg->Command.Param1) { case WISP_VK_RETURN: UpdateContext(); break; } break; } return true; } void CDataViewForm::Popup() { if(IsWindow()) { Destroy(); } else { CreateForm(); Center(); } } void CDataViewForm::UpdateContext() { ULPOS Address; if(IsVisible()==false) return; if(CALCEXP(m_pAddrEdit->GetWindowText(),&Address)) { SetWindowText(m_pAddrEdit->GetWindowText()); m_DataView.ViewAddress(Address); } } ================================================ FILE: Project/Syser/Source/DataViewForm.h ================================================ #ifndef _DATA_VIEW_FORM_H_ #define _DATA_VIEW_FORM_H_ #include "DataView.h" class CDataViewForm : public CWispForm { public: CDataViewForm(); ~CDataViewForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnSize); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnCmdAddressEdit) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnGoto) void Popup(); void UpdateContext(); CDataView m_DataView; CWispEdit* m_pAddrEdit; CWispButton*m_pButton; CWispStaticGroup*m_pGroupCtrl; }; #endif ================================================ FILE: Project/Syser/Source/DbgProcess.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SystemIoctl.h" #include "NMIInterruptHandle.h" CDbgProcess::CDbgProcess() { m_pExecutePoint = &Reg.EIP; m_pOrgDbgProc = NULL; m_pCodeBPMap = &gpSyser->m_SyserUI.m_CodeBPMap; m_pDataBPList = &gpSyser->m_SyserUI.m_DataBPList; m_bPrevPatchBP = false; } CDbgProcess::~CDbgProcess() { } void CDbgProcess::InitProcess(DWORD PID) { char szBuffer[MAX_FN_LEN]; WCHAR szProceName[MAX_FN_LEN]; PEPROCESS Pr = NULL; PsLookupProcessByProcessId(NUM_TO_PTR(PID),&Pr); if(Pr) { gpSyser->m_SysInfo.GetProcessName(Pr,szProceName,MAX_FN_LEN); m_CR3 = ((DWORD*)Pr)[gpSyser->m_SysInfo.m_ProcCR3dwOff]; m_ProcNameW = szProceName; if(gpSyser->m_SysInfo.m_PEBOffsetOfEPROCESS) { BYTE* Pointer; Pointer = *(BYTE**)⪻ m_pCurrentPEB = *(PEB**)&Pointer[gpSyser->m_SysInfo.m_PEBOffsetOfEPROCESS]; } else m_pCurrentPEB = (PEB*)0; m_PEProcess=Pr; } else { m_CR3 = SyserGetCR3Reg(); m_pCurrentPEB = NULL; if(PID) m_ProcNameW = WSTR("System"); else m_ProcNameW = WSTR("System Idle Process"); m_PEProcess=NULL; } UnicodeToAnsi(m_ProcNameW,szBuffer,sizeof(szBuffer)); m_ProcName = szBuffer; m_PID = PID; Init(&gpSyser->m_SyserUI.m_SyserDI); UnicodeToAnsi(m_ProcNameW,szBuffer,sizeof(szBuffer)); Open(szBuffer); } void CDbgProcess::Release() { CCodeBPMap::IT Iter = m_pCodeBPMap->Begin(); while(Iter.IsExist()) { if(Iter->PID == m_PID) { CCodeBPMap::IT RemoveIter=Iter; Iter++; //::DbgPrint("Syser : Clear Left BP [%s] %08X %s\n",(PCSTR)m_ProcName,RemoveIter->Address,(PCSTR)RemoveIter->Name); if(RemoveCodeBP(&(*RemoveIter))==false) ::DbgPrint("Syser : Fail to clear left BP [%s] %08X %s\n",(PCSTR)m_ProcName,RemoveIter->Address,(PCSTR)RemoveIter->Name); } else Iter++; } gpSyser->ClearProcessBPR(*(DWORD*)&m_PEProcess); Close(); CX86Debugger::Release(); } ULSIZE CDbgProcess::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return ReadProcessMemory(Address,Buffer,Size); } ULSIZE CDbgProcess::WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return WriteProcessMemory(Address,Buffer,Size); } ULSIZE CDbgProcess::MoveMem(ULPOS DesAddr,ULPOS SrcAddr,ULSIZE Size) { return SyserPrivateMemCopy((BYTE*)DesAddr,(BYTE*)SrcAddr,Size); } bool CDbgProcess::SaveRegister() { return true; } bool CDbgProcess::UpdateRegister() { return true; } bool CDbgProcess::ContinueDebug(bool bRestoreScreen) { gpSyser->m_bSaveReg=false; gpSyser->Exit(bRestoreScreen); return true; } bool CDbgProcess::SetCodeBreakPoint(BREAK_POINT&BP) { bool Result = SetCCBP(BP); if(Result) { if(BP.Address >= gpSyser->m_SysInfo.m_SystemStartAddr) { if(gpSyser->m_pCsrssProcess && gpSyser->m_SysInfo.m_win32kImageBase) {//ϵϵͳռwin32kΧıϵOwnerΪcsrss if( BP.Address >= gpSyser->m_SysInfo.m_win32kImageBase && BP.Address < gpSyser->m_SysInfo.m_win32kImageBase+gpSyser->m_SysInfo.m_win32kImageSize) { BP.OwnerName = gpSyser->m_pCsrssProcess->m_ProcName; BP.PID = gpSyser->m_pCsrssProcess->m_PID; } } else {//ϵϵͳռıϵOwnerΪSystem BP.PID = gpSyser->m_pSysDebugger->m_PID; BP.OwnerName = gpSyser->m_pSysDebugger->m_ProcName; } } } return Result; } bool CDbgProcess::ClearCodeBreakPoint(BREAK_POINT&BP) { return ClearCCBP(BP); } bool CDbgProcess::SetDataBreakPoint(BREAK_POINT&BP) { bool Result = SetX86HDBP(BP,SyserDR,&SyserDR[7]); if(Result) { gpSyser->m_bDbgRegAccessMon = true; gpSyser->m_bUpdateReg = true; memcpy(Reg.DR,SyserDR,sizeof(SyserDR)); UpdateOtherCPUDRX();//֪ͨCPU,ͷʱ,SyserDRX BP.OwnerName = gpSyser->m_pSysDebugger->m_ProcName; BP.PID = gpSyser->m_pSysDebugger->m_PID; } return Result; } bool CDbgProcess::ClearDataBreakPoint(BREAK_POINT&BP) { bool Result = ClearX86HDBP(BP,SyserDR,&SyserDR[7]); if(Result) { gpSyser->m_bDbgRegAccessMon = (SyserDR[7]&0xFF)!=0; gpSyser->m_bUpdateReg = true; memcpy(Reg.DR,SyserDR,sizeof(SyserDR)); UpdateOtherCPUDRX();//֪ͨCPU,ͷʱ,SyserDRX } return Result; } bool CDbgProcess::MapToPhysAddr(ULPOS Address,ULONGLONG&PhysAddr) { return MapToPAddr(Address,&PhysAddr); } bool CDbgProcess::SwitchProcessSpace(UINT PID) { CDbgProcess*pNewProc; pNewProc = gpSyser->m_SysInfo.GetProcess(PID); if(pNewProc) { if(pNewProc->m_CR3 != SyserGetCR3Reg()) { m_pOrgDbgProc = gpSyser->m_pDebugger; gpSyser->MapToProcess(pNewProc); } return true; } return false; } void CDbgProcess::RestoreProcessSpace() { if(m_pOrgDbgProc) { gpSyser->MapToProcess(m_pOrgDbgProc); m_pOrgDbgProc = NULL; } } void CDbgProcess::PatchSystem(PCSTR Name,ULPOS Address,PVFV PatchFunc) { BREAK_POINT*pBP; pBP = gpSyser->m_pSysDebugger->InsertCodeBP(Address,BP_TYPE_PATCH,BP_STATE_ENABLE); if(pBP) { pBP->UserData = (NUM_PTR)PatchFunc; pBP->Name = Name; DbgPrint("Syser : Patch %s %08X\n",Name,Address); } else { DbgPrint("Syser : Fail to patch %s %08X\n",Name,Address); } } bool CDbgProcess::SetSingleStep() { Reg.EFlags|=0x100; gpSyser->m_bUpdateReg=true; gPrevStepEIP=Reg.EIP; return true; } bool CDbgProcess::RemoveSingleStep() { Reg.EFlags&=0xFFFFFEFF; gpSyser->m_bUpdateReg=true; return true; } void CDbgProcess::GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID) { if(dwCPUID>gCPUNumbers) dwCPUID=0; pCPURegPtr->pCS = &gpMCPUReg[dwCPUID].SegReg[CS_IDX]; pCPURegPtr->pDS = &gpMCPUReg[dwCPUID].SegReg[DS_IDX]; pCPURegPtr->pES = &gpMCPUReg[dwCPUID].SegReg[ES_IDX]; pCPURegPtr->pFS = &gpMCPUReg[dwCPUID].SegReg[FS_IDX]; pCPURegPtr->pGS = &gpMCPUReg[dwCPUID].SegReg[GS_IDX]; pCPURegPtr->pSS = &gpMCPUReg[dwCPUID].SegReg[SS_IDX]; pCPURegPtr->pEAX = &gpMCPUReg[dwCPUID].GeneReg[EAX_IDX]; pCPURegPtr->pEBX = &gpMCPUReg[dwCPUID].GeneReg[EBX_IDX]; pCPURegPtr->pECX = &gpMCPUReg[dwCPUID].GeneReg[ECX_IDX]; pCPURegPtr->pEDX = &gpMCPUReg[dwCPUID].GeneReg[EDX_IDX]; pCPURegPtr->pESI = &gpMCPUReg[dwCPUID].GeneReg[ESI_IDX]; pCPURegPtr->pEDI = &gpMCPUReg[dwCPUID].GeneReg[EDI_IDX]; pCPURegPtr->pEBP = &gpMCPUReg[dwCPUID].GeneReg[EBP_IDX]; pCPURegPtr->pESP = &gpMCPUReg[dwCPUID].GeneReg[ESP_IDX]; pCPURegPtr->pEFL = (EFL_REG*)&gpMCPUReg[dwCPUID].EFlags; pCPURegPtr->pEIP = &gpMCPUReg[dwCPUID].EIP; pCPURegPtr->pDR[0] = &gpMCPUReg[dwCPUID].DR[0]; pCPURegPtr->pDR[1] = &gpMCPUReg[dwCPUID].DR[1]; pCPURegPtr->pDR[2] = &gpMCPUReg[dwCPUID].DR[2]; pCPURegPtr->pDR[3] = &gpMCPUReg[dwCPUID].DR[3]; pCPURegPtr->pDR[6] = &gpMCPUReg[dwCPUID].DR[6]; pCPURegPtr->pDR[7] = &gpMCPUReg[dwCPUID].DR[7]; pCPURegPtr->pGDTRBase = &gpMCPUReg[dwCPUID].GDTBase; pCPURegPtr->pGDTRLimit = &gpMCPUReg[dwCPUID].GDTLimit; pCPURegPtr->pIDTRBase = &gpMCPUReg[dwCPUID].IDTBase; pCPURegPtr->pIDTRLimit = &gpMCPUReg[dwCPUID].IDTLimit; pCPURegPtr->pLDTR = &gpMCPUReg[dwCPUID].LDT; pCPURegPtr->pTR = &gpMCPUReg[dwCPUID].TR; } void CDbgProcess::GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr) { pCPURegPtr->pCS = &Reg.SegReg[CS_IDX]; pCPURegPtr->pDS = &Reg.SegReg[DS_IDX]; pCPURegPtr->pES = &Reg.SegReg[ES_IDX]; pCPURegPtr->pFS = &Reg.SegReg[FS_IDX]; pCPURegPtr->pGS = &Reg.SegReg[GS_IDX]; pCPURegPtr->pSS = &Reg.SegReg[SS_IDX]; pCPURegPtr->pEAX = &Reg.GeneReg[EAX_IDX]; pCPURegPtr->pEBX = &Reg.GeneReg[EBX_IDX]; pCPURegPtr->pECX = &Reg.GeneReg[ECX_IDX]; pCPURegPtr->pEDX = &Reg.GeneReg[EDX_IDX]; pCPURegPtr->pESI = &Reg.GeneReg[ESI_IDX]; pCPURegPtr->pEDI = &Reg.GeneReg[EDI_IDX]; pCPURegPtr->pEBP = &Reg.GeneReg[EBP_IDX]; pCPURegPtr->pESP = &Reg.GeneReg[ESP_IDX]; pCPURegPtr->pEFL = (EFL_REG*)&Reg.EFlags; pCPURegPtr->pEIP = &Reg.EIP; pCPURegPtr->pDR[0] = &Reg.DR[0]; pCPURegPtr->pDR[1] = &Reg.DR[1]; pCPURegPtr->pDR[2] = &Reg.DR[2]; pCPURegPtr->pDR[3] = &Reg.DR[3]; pCPURegPtr->pDR[6] = &Reg.DR[6]; pCPURegPtr->pDR[7] = &Reg.DR[7]; pCPURegPtr->pGDTRBase = &Reg.GDTBase; pCPURegPtr->pGDTRLimit = &Reg.GDTLimit; pCPURegPtr->pIDTRBase = &Reg.IDTBase; pCPURegPtr->pIDTRLimit = &Reg.IDTLimit; pCPURegPtr->pLDTR = &Reg.LDT; pCPURegPtr->pTR = &Reg.TR; pCPURegPtr->pCR2 = &Reg.CR[2]; } bool CDbgProcess::GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD *pSize) { X86_SEGMENT_DESCRIPTOR x86SegDescr; if(pAddress==NULL || GetSegDescr((WORD)SegIndex,&x86SegDescr)==false) return false; *pAddress = x86SegDescr.base_L0+(x86SegDescr.base_L1<<8)+(x86SegDescr.base_H0<<16)+(x86SegDescr.base_H1<<24); return true; } bool CDbgProcess::HandleInt1(ULPOS Address) { BREAK_POINT*pBP=NULL; bool bActive = false; pBP = GetCodeBP(Address); if(pBP) { pBP->BPCount++; } if(Reg.DR[6] & DR6_BS) { //ǵִжϵ gpSyser->m_bHandle = RecoverBreakPoint()>0; if(m_bPrevPatchBP && gpSyser->m_bHandle) { RemoveSingleStep(); m_bPrevPatchBP = false; return true; } ProcessSpecialCode(gPrevStepEIP); RemoveSingleStep(); //pBP = GetCodeBP(Address); if(pBP && pBP->State==BP_STATE_ENABLE) { //Ͷϵغʱ if(WriteProcessMemory(Address,&pBP->CodeBackup,1))//ָԭָ pBP->State = BP_STATE_RECOV; if(gpSyser->m_SyserUI.m_SyserDI.TestCondition(pBP->Condition,pBP)) { gpSyser->m_SyserUI.m_SyserDI.RunCmdList(pBP->DoCmd); if((pBP->Type & BP_TYPE_PATCH)) { if(pBP->UserData) ((PVFV)pBP->UserData)(); } else { //ActiveϵʱTrace if((pBP->Type & BP_TYPE_DEBUG)==0) { gpSyser->m_SyserUI.m_SyserDI.ResetTrace(); bActive = true; } } } if(pBP->Type&BP_TYPE_ONCE)//ɾһԶϵ { RemoveCodeBP(pBP); } } RemoveAllCodeBP(BP_TYPE_DEBUG); if(gpSyser->m_SyserUI.m_SyserDI.m_TraceType!=TRACE_NULL) { gpSyser->m_bHandle = true; if(gpSyser->m_SyserUI.m_SyserDI.IsHandledTraceEvent()) bActive = true; } } else { if( (Reg.DR[6]&DR6_BD) || (gpSyser->m_bDbgRegAccessMon&&((Reg.DR[6]&0xF)==0))) {//޸ ExcuteDebugRegisterMontior((BYTE*)Reg.EIP); Reg.EIP+=3; gpSyser->m_bUpdateReg=true; return true; } if(gpSyser->m_bDbgRegAccessMon==false) return false; if(ProcessHardwareBreak()) { bActive = true; } RemoveAllCodeBP(BP_TYPE_DEBUG); } if(bActive) { gpSyser->m_bHandle = true; gpSyser->Active(); } if(IsRecoverBPExist()) { SetSingleStep(); } gpSyser->SetBPR(); return gpSyser->m_bHandle; } bool CDbgProcess::HandleInt3(ULPOS Address) { bool bActive; bool bPopup; BREAK_POINT*pBP; pBP = GetCodeBP(Address); if(pBP) pBP->BPCount++;//Ӷϵִм if(pBP==NULL || pBP->State!=BP_STATE_ENABLE) {//ԼĶϵ bPopup=false; if(gpSyser->m_Interrupt3HereStat==1 || (gpSyser->m_Interrupt3HereStat==2 && Reg.EIP > gpSyser->m_SysInfo.m_SystemStartAddr)) bPopup=true; if(bPopup) {//ںĵЭ gpSyser->m_bHandle = true; gpSyser->Active(); return gpSyser->m_bHandle; } return false; } Reg.EIP--; gpSyser->m_bUpdateReg=true; if(WriteProcessMemory(Address,&pBP->CodeBackup,1))//ָԭָ pBP->State = BP_STATE_RECOV; if(gpSyser->m_SyserUI.m_SyserDI.TestCondition(pBP->Condition,pBP)==false) {//˶ϵֱӷ SetSingleStep(); return true; } gpSyser->m_bExit=false; gpSyser->m_SyserUI.m_SyserDI.RunCmdList(pBP->DoCmd); if(pBP->DoCmd && gpSyser->m_bExit) {//˶ϵֱӷ // runcmdlist x exit SetSingleStep(); return true; } bActive = false; gpSyser->m_bHandle = true; if(pBP->Type & BP_TYPE_PATCH) {//PatchŹ m_bPrevPatchBP = true; if(pBP->UserData) { gbActive=true; ((PVFV)pBP->UserData)(); gbActive=false; } } else { if((pBP->Type & BP_TYPE_DEBUG)==0) {//ActiveϵʱTrace,Ҽ¼λõ ACTIVE_CODE_VIEW->RecordCurAddr(pBP->Address,ACTIVE_CODE_VIEW->m_CurAddr); DisplayCodeBP(pBP); gpSyser->m_SyserUI.m_SyserDI.ResetTrace(); bActive = true; } RemoveAllCodeBP(BP_TYPE_DEBUG); if(gpSyser->m_SyserUI.m_SyserDI.IsHandledTraceEvent()) bActive=true; } if(pBP->Type&BP_TYPE_ONCE)//ɾһԶϵ RemoveCodeBP(pBP); if(bActive) { gpSyser->Active(); } if(IsRecoverBPExist()) { SetSingleStep(); } return gpSyser->m_bHandle; } void CDbgProcess::DisplayCodeBP(BREAK_POINT*pBP) { if(pBP->Name.IsEmpty()) { SYSEXPLR_OUTPUT(WSTR("Break at Code BP %<4>%08X\n"),pBP->Address); } else { WCHAR szBuffer[128]; AnsiToUnicode(pBP->Name,szBuffer,128); SYSEXPLR_OUTPUT(WSTR("Break at %%s\n"),szBuffer); } } void CDbgProcess::DisplayDataBP(BREAK_POINT*pBP) { WCHAR szBuffer[128]; AnsiToUnicode(pBP->Description,szBuffer,128); SYSEXPLR_OUTPUT(WSTR("Break at Data BP %%08X %<7>%s\n"),pBP->Address,szBuffer); } bool CDbgProcess::ProcessHardwareBreak() { BREAK_POINT*pBP; DWORD Mask; UINT Index; bool bret=false; if((SyserDR[7]&0xFF)==0) return false; if(Reg.DR[6]&0x1) Index = 0; else if(Reg.DR[6]&0x2) Index = 1; else if(Reg.DR[6]&0x4) Index = 2; else if(Reg.DR[6]&0x8) Index = 3; else return false; pBP = NULL; for(CDataBPList::IT Iter = gpSyser->m_SyserUI.m_DataBPList.Begin();Iter!=gpSyser->m_SyserUI.m_DataBPList.End();Iter++) { if(Iter->State == BP_STATE_ENABLE && Iter->CodeBackup==Index) { pBP = &(*Iter); if(gpSyser->m_SyserUI.m_SyserDI.TestCondition(pBP->Condition,pBP)) { bret=true; gpSyser->m_bExit=false; gpSyser->m_SyserUI.m_SyserDI.RunCmdList(pBP->DoCmd); if(pBP->DoCmd && gpSyser->m_bExit) { // runcmdlist x exit bret=false; } break; } } } if(pBP) DisplayDataBP(pBP); Mask = 0x3<<(16+Index*4); if((SyserDR[7]&Mask)==0)//Ǵϵ { Reg.EFlags |= 0x10000;//ָϵ gpSyser->m_bUpdateReg = true; } return bret; } void CDbgProcess::ProcessSpecialCode(DWORD Address) { ULSIZE CodeLen; BYTE CodeBuffer[16]; CodeLen = ReadMemory(Address,CodeBuffer,sizeof(CodeBuffer)); if(CodeLen==0) return; if(gPrevStepEIP==0) return; if(CodeBuffer[0]==0x9C)//жĵҪ { //ǰһִָе pushfd ָҪȷ TF ־ // // __asm // { // push es // push eax // push ebx // mov ax,Reg.SegReg[SS_IDX*2] // mov es,ax // mov eax,Reg.GeneReg[ESP_IDX*4] // mov ebx,0xFFFFFEFF // and es:[eax],ebx // pop ebx // pop eax // pop es // } SyserClearFlag(Reg.SegReg[SS_IDX],&Reg.GeneReg[ESP_IDX],0x100); gpSyser->m_bUpdateReg = true; } } CDbgModule* CDbgProcess::GetModule(PCWSTR ModuleName) { CHAR szBuffer[MAX_FN_LEN]; for(CDbgModuleMap::IT Iter=m_ModuleList.m_DbgModuleMap.Begin();Iter!=m_ModuleList.m_DbgModuleMap.End();Iter++) { UnicodeToAnsi(ModuleName,szBuffer,MAX_FN_LEN); if(TCmpModuleName((PCSTR)Iter->m_ModuleFullName,szBuffer)) return &(*Iter); } return NULL; } CDbgModule* CDbgProcess::GetModule(PCSTR ModuleName) { for(CDbgModuleMap::IT Iter=m_ModuleList.m_DbgModuleMap.Begin();Iter!=m_ModuleList.m_DbgModuleMap.End();Iter++) { if(TCmpModuleName((PCSTR)Iter->m_ModuleFullName ,ModuleName)) return &(*Iter); } return NULL; } CDbgModule* CDbgProcess::GetModule(ULPOS ModuleBase) { return m_ModuleList.GetModule(ModuleBase); } CSymbolModule* CDbgProcess::GetSymbolModule(ULPOS ModuleBase) { CDbgModule*pDbgModule = m_ModuleList.GetModule(ModuleBase); if(pDbgModule==NULL) return NULL; return pDbgModule->m_pSymbolModule; } CSymbolModule* CDbgProcess::GetSymbolModule(PCSTR ModuleName) { CDbgModule*pDbgModule = m_ModuleList.GetModule(ModuleName); if(pDbgModule==NULL) return NULL; return pDbgModule->m_pSymbolModule; } void CDbgProcess::ExcuteDebugRegisterMontior(BYTE* InstructionBuffer) { WCHAR *DRName[]={WSTR("DR0"),WSTR("DR1"),WSTR("DR2"),WSTR("DR3"),WSTR("DR4"),WSTR("DR5"),WSTR("DR6"),WSTR("DR7")}; WCHAR *GRName[]={WSTR("EAX"),WSTR("ECX"),WSTR("EDX"),WSTR("EBX"),WSTR("ESP"),WSTR("EBP"),WSTR("ESI"),WSTR("EDI")}; DWORD Dest,Src; bool bRet; DWORD DebugRegisterIndex,GeneralRegisterIndex; BYTE r; if(InstructionBuffer[0]!=0xf) return; r = InstructionBuffer[2]; GeneralRegisterIndex=r&7; DebugRegisterIndex = (r>>3)&7; static dwDRMCount=0; dwDRMCount++; if((InstructionBuffer[1]==0x21)&&(r&0xc0))//ʽĴ { Src=SyserDR[DebugRegisterIndex]; if(DebugRegisterIndex==7) { Src|=0x400; Src&=0xffff27ff; } if(DebugRegisterIndex==6) { Src |= 0xffff0ff0; Src &= 0xffffefff; } switch(GeneralRegisterIndex) { case 0: Reg.GeneReg[EAX_IDX]=Src;break; case 1: Reg.GeneReg[ECX_IDX]=Src;break; case 2: Reg.GeneReg[EDX_IDX]=Src;break; case 3: Reg.GeneReg[EBX_IDX]=Src;break; case 4: Reg.GeneReg[ESP_IDX]=Src;break; case 5: Reg.GeneReg[EBP_IDX]=Src;break; case 6: Reg.GeneReg[ESI_IDX]=Src;break; case 7: Reg.GeneReg[EDI_IDX]=Src;break; } //gpSyser->DbgPrint(0,768-12*DebugRegisterIndex,WSTR("0x%08x mov %s,%s c[%d]"),Reg.EIP,GRName[GeneralRegisterIndex],DRName[DebugRegisterIndex],dwDRMCount); return; } else if((InstructionBuffer[1]==0x23)&&(r&0xc0)) { ; //gpSyser->DbgPrint(0,12*DebugRegisterIndex,WSTR("0x%08x mov %s,%s [%08x] c[%d]"),Reg.EIP,DRName[DebugRegisterIndex],GRName[GeneralRegisterIndex],Reg.GeneReg[GeneralRegisterIndex],dwDRMCount); } } int CDbgProcess::WriteProcessMemory(ULPOS Addr,void*Buffer,int Size) { return SafeMemCopy(_RT_PBYTE(Addr),(BYTE*)Buffer,Size); } int CDbgProcess::ReadProcessMemory(ULPOS Addr,void*Buffer,int Size) { return SafeMemCopy((BYTE*)Buffer,_RT_PBYTE(Addr),Size); } int CDbgProcess::SafeReadProcessMemory(ULPOS addr,void* Buffer,int Size) { int Len = SafeMemCopy((BYTE*)Buffer,_RT_PBYTE(addr),Size); return Len; } int CDbgProcess::SafeWriteProcessMemory(ULPOS addr,void* Buffer,int Size) { /* DWORD CR0 = GetCR0Reg(); if(CR0&0x10000) SetCR0Reg(CR0&0xFFFEFFFF); */ int Len = SafeMemCopy(_RT_PBYTE(addr),(BYTE*)Buffer,Size); /* if(CR0&0x10000) SetCR0Reg(CR0); */ return Len; } void TouchModuleMemory(ULPOS ModuleBase,ULSIZE ModuleSize) { BYTE TouchData; ULPOS Address,ModuleHighBase; ModuleHighBase = ModuleBase + ModuleSize; Address = ModuleBase; while(Address < ModuleHighBase) { __try { TouchData = _GET_BYTE(Address); } __except(EXCEPTION_EXECUTE_HANDLER) { } Address += MP_SIZE; } } int CDbgProcess::RecoverBreakPointRange() { int Count=0; for(CCodeBPMap::IT Iter=m_pCodeBPMap->Begin();Iter.IsExist();Iter++) { if(Iter->State == BP_STATE_RECOV) { if(SwitchProcessSpace(Iter->PID)) { if(RecoverCCBP(*Iter)) Iter->State = BP_STATE_ENABLE; RestoreProcessSpace(); } Count++; } } return Count; } ================================================ FILE: Project/Syser/Source/DbgProcess.h ================================================ #ifndef _DBG_PROCESS_H_ #define _DBG_PROCESS_H_ enum { BP_DELAY_CODE, BP_DELAY_HARDWARE_INSTRUCTION, BP_DELAY_HARDWARE_MONITOR, BP_DELAY_PUSHFD, }; class CDbgProcess : public CX86Debugger { public: CDbgProcess(); virtual ~CDbgProcess(); public: void InitProcess(DWORD PID); void Release(); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //ϵ bool SetCodeBreakPoint(BREAK_POINT&BP); bool ClearCodeBreakPoint(BREAK_POINT&BP); bool SetDataBreakPoint(BREAK_POINT&BP); bool ClearDataBreakPoint(BREAK_POINT&BP); bool MapToPhysAddr(ULPOS Address,ULONGLONG&PhysAddr); bool SwitchProcessSpace(UINT PID); void RestoreProcessSpace(); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// void PatchSystem(PCSTR Name,ULPOS Address,PVFV PatchFunc); bool SetSingleStep(); bool RemoveSingleStep(); void GetX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr); void GetCPUX86RegPtr(X86_CPU_REG_PTR*pCPURegPtr,DWORD dwCPUID); bool GetSegRegBase(int SegIndex,DWORD*pAddress,DWORD*pSize=NULL); bool SaveRegister(); bool UpdateRegister(); bool UpdateDRXRegister(); //ӲԼĴ bool ContinueDebug(bool bRestoreScreen = true); ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size); ULSIZE WriteMemory(ULPOS Address,void*Buffer,ULSIZE Size); ULSIZE MoveMem(ULPOS DesAddr,ULPOS SrcAddr,ULSIZE Size); ///////////////////////////////////////////////////////////////////////////////////////////// int WriteProcessMemory(ULPOS Addr,void*Buffer,int Size); int ReadProcessMemory(ULPOS Addr,void*Buffer,int Size); int SafeReadProcessMemory(ULPOS addr,void* Buffer,int Size); int SafeWriteProcessMemory(ULPOS addr,void* Buffer,int Size); ///////////////////////////////////////////////////////////////////////////////////////////// CDbgProcess*m_pOrgDbgProc; DWORD m_CR3; //CR3 CStrW m_ProcNameW; // #ifdef CODE_OS_NT_DRV PEB* m_pCurrentPEB; PEPROCESS m_PEProcess; PEPROCESS GetEPROCESS()const {return m_PEProcess;} #endif bool m_bPrevPatchBP; public: bool HandleInt3(ULPOS Address); bool HandleInt1(ULPOS Address); void DisplayCodeBP(BREAK_POINT*pBP); void DisplayDataBP(BREAK_POINT*pBP); bool ProcessHardwareBreak(); void ExcuteDebugRegisterMontior(BYTE* InstructionBuffer); public: CDbgModule* GetModule(PCWSTR ModuleName); CDbgModule* GetModule(PCSTR ModuleName); CDbgModule* GetModule(ULPOS ModuleBase); CSymbolModule*GetSymbolModule(ULPOS ModuleBase); CSymbolModule*GetSymbolModule(PCSTR ModuleName); bool RemoveSymbolModule(DWORD ModuleBase); void ProcessSpecialCode(DWORD Address); int RecoverBreakPointRange(); }; void TouchModuleMemory(ULPOS ModuleBase,ULSIZE ModuleSize); #endif ================================================ FILE: Project/Syser/Source/DebugCmd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "DebugCmd.h" #include "InterruptPatch.h" const WCHAR cmd_a_usage[]= { L"a: Modify memory by assemble code\n" L"Format: a address asm_string\n" L"Example1: a 401000 inc eax\n" L"Example2: a EIP mov eax,ebx\n" }; const WCHAR cmd_bc_usage[]= { L"bc: Clear breakpoint\n" L"Format: bc address_or_index[*]\n" L"Example1: bc *\n" L"Example2: bc 1\n" L"Example3: bc 401000\n" }; const WCHAR cmd_bd_usage[]= { L"bd: Disable breakpoint\n" L"Format: bd address_or_index[*]\n" L"Example1: bd *\n" L"Example2: bd 1\n" L"Example3: bd 401000\n" }; const WCHAR cmd_be_usage[]= { L"be: Enable breakpoint\n" L"Format: be address_or_index[*]\n" L"Example1: be *\n" L"Example2: be 1\n" L"Example3: be 401000\n" }; const WCHAR cmd_bl_usage[]= { L"bl: List breakpoint\n" L"Format: bl\n" L"Example1: bl\n" }; const WCHAR cmd_bpx_usage[]= { L"bpx: Set breakpoint\n" L"Format: bpx address [if condition_string] [do command_string]\n" L"Example1: bpx 401000 EAX==0302\n" L"Example2: bpx MessageBoxA\n" L"Example3: bpx 402000 rw if (*esi)&FF==0 do d eip\n" }; const WCHAR cmd_bpload_usage[]= { L"bpload: Set module loading breakpoint \n" L"Format: bpload module_name\n" L"Example1: bpload kernel32\n" L"Example2: bpload user32.dll\n" }; const WCHAR cmd_bpmx_usage[]= { L"bpm,bpmw,bpmd: Set data access breakpoint\n" L"Format: bpm address [rw,w,x] [if condition_string] [do command_string]\n" L"Example1: bpm 401000 w\n" L"Example2: bpmw 401000 rw (set word access breakpoint)\n" L"Example3: bpm esi w if *eax==00 do d esi;bc *\n" }; const WCHAR cmd_bpio_usage[]= { L"bpio: Set a breakpoint on an I/O Port access\n" L"Format: bpio I/O_port [r,w,rw] [if condition_string] [do command_string]\n" L"Example1: bpio 3E8 rw\n" L"Example2: bpio 2E4 rw if eax==0 do dd esi\n" }; const WCHAR cmd_ex_usage[]= { L"e,eb,ew,ed: Edit memory\n" L"Format: e address data_value\n" L"Example1: e 403000 00,01,02,04\n" L"Example2: e ESI \"Hello\"\n" L"Example3: eb 401000 10\n" L"Example4: ew 401000 2030\n" L"Example5: ed 401000 40506070\n" }; const WCHAR cmd_u_usage[]= { L"u: Unassemble instructions\n" L"Format: u address\n" L"Exapmle1: u 401000\n" L"Exapmle2: u eip+1000\n" L"Example3: u +\n" L"Example4: u -\n" L"Example5: u + offset\n" L"Example6: u - offset\n" L"Example6: u -a address\n" }; const WCHAR cmd_dot_usage[]= { L".: Locate EIP instruction in Code View (== u eip)\n" L"Format: .\n" }; const WCHAR cmd_src_usage[]= { L"src: Locate address in Source Code File\n" L"Format: src [address]\n" L"Example1: src (==src EIP)\n" L"Example2: src 401000\n" }; const WCHAR cmd_seg_usage[]= { L"seg: Display segment information\n" L"Format: seg segment_register_name\n" L"Example1: seg cs\n" L"Example2: seg 08\n" }; const WCHAR cmd_p_usage[]= { L"p: Execute one program step (skip CALL,REP )\n" L"Format: p [step count] [condition] [ret]\n" L"Example1: p 100 (run 100 p steps)\n" L"Example2: p EIP<401000 && EIP>402000 (break EIP jump out of 401000 - 402000)\n" L"Example3: p ret (stop at return)\n" }; const WCHAR cmd_sp_usage[]= { L"sp: Execute one source code step\n" L"Format: sp\n" L"Example1: sp\n" }; const WCHAR cmd_go_usage[]= { L"go : set one-time breakpoint at specify address\n" L"Format: go address\n" L"Example1: go EIP+20\n" L"Example2: go 402000\n" }; const WCHAR cmd_t_usage[]= { L"t: Trace one instruction\n" L"Format: t [step count] [condition]\n" L"Example1: t 100 (run 100 t steps)\n" L"Example2: t EIP<401000 && EIP>402000 (break EIP jump out of 401000 - 402000)\n" }; const WCHAR cmd_st_usage[]= { L"st: Trace one source code line\n" L"Format: st\n" L"Example1: st\n" }; const WCHAR cmd_x_usage[]= { L"x: exit debugger (continue)\n" L"format: x\n" }; const WCHAR cmd_fill_usage[]= { L"f: Fill memory\n" L"Format: f address length data_string\n" L"Example1: f esi 4 80001000\n" L"Example2: f 401000 5 E9,00,00,00,10\n" L"Example3: f 401000 1000 \"hello\"\n" }; const WCHAR cmd_search_usage[]= { L"s: Search memory\n" L"Format: s address length data_string\n" L"Example1: s 401000 1000 \"CreateFileA\"\n" L"Example2: s EIP 2000 FF,15,00,00,10,40\n" L"Example3: s (continue last search operation)\n" }; const WCHAR cmd_stack_usage[]= { L"stack: Display call stack\n" L"Format: stack [call_frame_address]\n" L"Example1: stack (analyse from ebp)\n" L"Example2: stack 124000 (analyse from 124000)\n" }; const WCHAR cmd_cmt_usage[]= { L"cmt: List module comment in current process\n" L"Format: cmt\n" }; const WCHAR cmd_r_usage[]= { L"r: Display/Change Register Value\n" L"Format: r reg_name [value]\n" L"Example1: r eip 402000\n" L"Example2: r eax 80001000\n" L"Example3: r ah 10\n" L"Example4: r ebx\n" }; const WCHAR cmd_m_usage[]= { L"m: Move data\n" L"Format: m source_address length dest_address (length is HEX bytes)\n" L"Example1: m esi 100 edi\n" L"Example2: m 402000 E00 403000\n" }; const WCHAR cmd_c_usage[]= { L"c: Compare two data blocks\n" L"Format: c source_address length dest_address (length is HEX bytes)\n" L"Example1: c esi 100 edi\n" L"Example2: c 402000 E00 403000\n" }; const WCHAR cmd_sym_usage[]= { L"sym: List symbols\n" L"Format: sym [module_name] [symbol_wildcard] | -a symbol value\n" L"Example1: sym kernel32 * (List all symbols of kernel32.dll)\n" L"Example2: sym CreateFile? (List CreateFileA and CreateFileW)\n" L"Example3: sym -a mysymbol 4013af (Add owner labels)\n" }; const WCHAR cmd_sdsmod_usage[]= { L"sdsmod: List all syser symbol modules loaded\n" L"Format: sdsmod\n" }; const WCHAR cmd_mod_usage[]= { L"mod: List modules of current process\n" L"Format: mod [address][mod_name]\n" L"Example1: mod eip (display module's name on current eip)\n" L"Example2: mod nt* (display module's name fit to \"nt*\")\n" }; /* %<0>0 ------- Black %<1>1 ------- White %<2>2 ------- Red %<3>3 ------- Light Red %<4>4 ------- Green %<5>5 ------- Light Green %<6>6 ------- Blue %<7>7 ------- Light Blue %<8>8 ------- Brown %<9>9 ------- Light Brown %A ------- Cyan %B ------- Light Cyan %C ------- Gray %D ------- Light Gray %E ------- Yellow %F ------- Light Yellow */ SYSER_CMD_ENTRY DebugCmdTable[]= { //////////////////////////////////////////////////////////////////////////////////////////// //break point //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("bc"), WSTR("Clear breakpoint"), bc_command, cmd_bc_usage}, {WSTR("bl"), WSTR("List breakpoints"), bl_command, cmd_bl_usage}, {WSTR("bd"), WSTR("Disable breakpoints"), bd_command, cmd_bd_usage}, {WSTR("be"), WSTR("Enable breakpoints"), be_command, cmd_be_usage}, {WSTR("bpx"), WSTR("Set breakpoint"), bpx_command, cmd_bpx_usage}, {WSTR("bpload"), WSTR("Set module loading breakpoint"), bpload_command, cmd_bpload_usage}, {WSTR("bpm"), WSTR("Breakpoint on memory access"), bpm_command, cmd_bpmx_usage}, {WSTR("bpmb"), WSTR("Breakpoint on memory access"), bpm_command, cmd_bpmx_usage}, {WSTR("bpmw"), WSTR("Breakpoint on memory access"), bpm_command, cmd_bpmx_usage}, {WSTR("bpmd"), WSTR("Breakpoint on memory access"), bpm_command, cmd_bpmx_usage}, {WSTR("bpio"), WSTR("Breakpoint on I/O port access"), bpio_command, cmd_bpio_usage}, //////////////////////////////////////////////////////////////////////////////////////////// //trace //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("x"), WSTR("Return to host and continue running"),exit_system_command, cmd_x_usage}, {WSTR("exit"), WSTR("Return to host and continue running"),exit_system_command, cmd_x_usage}, {WSTR("g"), WSTR("Go to address"), go_command, cmd_go_usage}, {WSTR("t"), WSTR("Trace one instruction"), trace_command, cmd_t_usage}, {WSTR("st"), WSTR("Trace one source code line"), source_trace_command, cmd_st_usage}, {WSTR("tb"), WSTR("Trace and break at next branch"), trace_branch_command}, {WSTR("p"), WSTR("Execute one program step"), p_command, cmd_p_usage}, {WSTR("sp"), WSTR("Execute one source code step"), source_proceed_command, cmd_sp_usage}, {WSTR("skip"), WSTR("Skip current instruction"), skip_command}, {WSTR("stack"), WSTR("Display call stack context"), stack_command, cmd_stack_usage}, //////////////////////////////////////////////////////////////////////////////////////////// //View //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("u"), WSTR("Unassemble instructions"), u_command, cmd_u_usage}, {WSTR("."), WSTR("Locate EIP instruction in Code View"),u_command, cmd_dot_usage}, {WSTR("src"), WSTR("Locate address in Source Code File"), src_command, cmd_src_usage}, //////////////////////////////////////////////////////////////////////////////////////////// //Symbol //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("sym"), WSTR("List symbols"), sym_command, cmd_sym_usage}, {WSTR("symmod"), WSTR("Display all symbol modules"), symmod_command}, {WSTR("sdsmod"), WSTR("Display all sds symbol modules"), sdsmod_command, cmd_sdsmod_usage}, {WSTR("cmt"), WSTR("List module comment in current process"), cmt_command, cmd_cmt_usage}, //////////////////////////////////////////////////////////////////////////////////////////// //Edit //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("seg"), WSTR("Display segment information"), seg_command, cmd_seg_usage}, {WSTR("r"), WSTR("Display/Change Register Value"), r_command, cmd_r_usage}, {WSTR("m"), WSTR("Move data"), m_command, cmd_m_usage}, {WSTR("f"), WSTR("Fill memory with data"), f_command, cmd_fill_usage}, {WSTR("s"), WSTR("Search binary data or string"), s_command, cmd_search_usage}, {WSTR("sc"), WSTR("Search binary data or string,show search resoult at code view"), s_command, cmd_search_usage}, {WSTR("sd"), WSTR("Search binary data or string,show search resoult at data view"), s_command, cmd_search_usage}, {WSTR("c"), WSTR("Compare two data blocks"), c_command, cmd_c_usage}, {WSTR("a"), WSTR("modify memory by assemble code"), a_command, cmd_a_usage}, {WSTR("e"), WSTR("Edit memory"), e_command, cmd_ex_usage}, {WSTR("eb"), WSTR("Edit memory (BYTE)"), e_command, cmd_ex_usage}, {WSTR("ew"), WSTR("Edit memory (WORD)"), e_command, cmd_ex_usage}, {WSTR("ed"), WSTR("Edit memory (DWORD)"), e_command, cmd_ex_usage}, //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("mod"), WSTR("Display Modules"), mod_command, cmd_mod_usage}, {WSTR("test"), WSTR("test write memory command"), test_command11}, #ifdef CODE_OS_WIN {WSTR("open"), WSTR("open file"), open_command}, {WSTR("close"), WSTR("close file"), close_command}, {WSTR("Reset"), WSTR("reset debug state"), reset_command}, #endif //////////////////////////////////////////////////////////////////////////////////////////// {NULL,NULL,NULL} }; #ifdef CODE_OS_WIN int open_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { char szFileName[MAX_FN_LEN],*pszFileName; if(pSyser->m_pDebugger==NULL) { OUTPUT(WSTR("Error : please load debugger first !\n")); return 1; } if(pSyser->m_SyserUI.m_CodeDoc.IsOpened()) pSyser->m_SyserUI.m_CodeDoc.Close(); if(argc==1) { char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = gpSyser->m_hLocalInst; OpenFileName.hwndOwner = gpSyser->m_hLocalWnd; UnicodeToAnsi(gpSyser->m_szDbgFileNameFilter,szBuffer,sizeof(szBuffer)); for(int n = TStrLen(szBuffer);n>=0;n--) { if(szBuffer[n]=='|') szBuffer[n]=0; } OpenFileName.lpstrFilter = szBuffer; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; gpSyser->LockTimer(); if(GetOpenFileName(&OpenFileName)==false) { gpSyser->UnlockTimer(); return true; } pszFileName = OpenFileName.lpstrFile; gpSyser->UnlockTimer(); } else { UnicodeToAnsi(&szCommandLine[argv[1]-argv[0]],szFileName,MAX_FN_LEN); pszFileName = szFileName; } if(pSyser->m_SyserUI.m_CodeDoc.Open(pszFileName)==false) { OUTPUT(WSTR("Error : Fail to open %s !\n"),argv[1]); return 1; } return 0; } int close_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { if(pSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) { OUTPUT(WSTR("Error : please open file first !\n")); return 1; } pSyser->m_SyserUI.m_CodeDoc.Close(); return 0; } int reset_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { WCHAR OpenCmd[MAX_FN_LEN],FileName[MAX_FN_LEN]; ASSERT_DEBUGGER_OPENED AnsiToUnicode(gpSyser->m_SyserUI.m_CodeDoc.m_MainModuleName,FileName,MAX_FN_LEN); RUNCMD(WSTR("close")); TSPrintf(OpenCmd,WSTR("open %s"),FileName); RUNCMD(OpenCmd); return 0; } #endif int exit_system_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { if(pSyser->m_pDebugger==NULL) return 0; pSyser->m_pDebugger->ContinueDebug(); return 0; } int go_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { ULPOS Address; if(argc!=2) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return -1; } if(gpSyser->m_pDebugger->InsertCodeBP(Address,BP_TYPE_DEBUG,BP_STATE_ENABLE)==false) { OUTPUT(WSTR("Error : Fail to set breakpoint at %08X\n"),Address); return -1; } gpSyser->m_pDebugger->ContinueDebug(); return 0; } int trace_branch_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { #ifdef CODE_OS_NT_DRV trace_command(1,argv,szCommandLine,pSyser); SetBranchStepRun(); #endif return 0; } bool IsStepFlagModifyCode(BYTE*CodeBuffer,DWORD dwEip,int* SkipInstLen,CSyser*pSyser) { char buffer[200]; INSTRUCTION_INFORMATION InstInfo; InstInfo.pasm = buffer; InstInfo.U_x1 = 6; InstInfo.U_x2 = 12; #ifdef CODE_OS_NT_DRV DIS_CPU DispCpu; int nLen,nLen2; nLen=Disassembly(&InstInfo,CodeBuffer,dwEip,BIT32,&DispCpu); if(nLen) { if(InstInfo.OpCode==C_PUSHF||InstInfo.OpCode==C_POPF) { *SkipInstLen=nLen; return true; } if(TStrICmp(InstInfo.Name,"mov")==0 && InstInfo.op[0].mode==mode_segment && TStrICmp(InstInfo.op[0].string,"ss")==0)//mov ss,xx { if(gpSyser->m_pOrgProcess->ReadMemory(*X86_REG_PTR.pEIP+nLen,CodeBuffer,MAX_INSTR_LEN)==MAX_INSTR_LEN) { memset(&InstInfo,0,sizeof(InstInfo)); nLen2=Disassembly(&InstInfo,CodeBuffer,dwEip+nLen,BIT32,&DispCpu); if(nLen2) { if(InstInfo.OpCode==C_PUSHF||InstInfo.OpCode==C_POPF) { *SkipInstLen=nLen+nLen2; return true; } } } return false; } if(TStrICmp(InstInfo.Name,"pop")==0 && InstInfo.op[0].mode==mode_segment && TStrICmp(InstInfo.op[0].string,"ss")==0) { if(gpSyser->m_pOrgProcess->ReadMemory(*X86_REG_PTR.pEIP+nLen,CodeBuffer,MAX_INSTR_LEN)==MAX_INSTR_LEN) { memset(&InstInfo,0,sizeof(InstInfo)); nLen2=Disassembly(&InstInfo,CodeBuffer,dwEip+nLen,BIT32,&DispCpu); if(nLen2) { if(InstInfo.OpCode==C_PUSHF||InstInfo.OpCode==C_POPF) { *SkipInstLen=nLen+nLen2; return true; } } } return false; } int index=0-1; switch(InstInfo.OpCode) { case C_INT1: index=1; break; case C_INT3: index=3; break; case C_INT: index=(int)InstInfo.op[0].immed.immed_value; index&=0xff; break; case C_INTO: if((Reg.EFlags & 0xf00)) index=4; break; } if(index!=0-1) { DWORD IDTBase,IDTSize; DWORD IntAddress=0; PX86_GATE_DECR pDecr; IDTBase=SyserGetIDTBase(&IDTSize); pDecr = *(PX86_GATE_DECR*)&IDTBase; if(pDecr[index].P && ((pDecr[index].Type == SYS_SEG_GATE_DECR_TYPE_32TRAP_GATE)|| (pDecr[index].Type == SYS_SEG_GATE_DECR_TYPE_32INT_GATE))) { IntAddress = MAKE_DWORD(pDecr[index].OffsetHigh, pDecr[index].OffsetLow); if(IntAddress >=gpSyser->m_DriverStartAddr && IntAddress m_DriverEndAddr) { DWORD dwTmp=(DWORD)gInterruptStub; DWORD dwTmp2=dwTmp+sizeof(gInterruptStub); if(IntAddress>=dwTmp && IntAddress m_pDebugger; #else CDebugger*pDebugger = gpSyser->m_pOrgProcess; #endif if(argc>1) { if(USHexStrToNum(argv[1],&Num)) {//t 3 gpSyser->m_SyserUI.m_SyserDI.SetTraceCount(Num); } else {//t eax==4321 PCWSTR pStr = &szCommandLine[argv[1]-argv[0]]; if(CALCEXP(pStr,&Num)) { UnicodeToAnsi(pStr,szBuffer,256); gpSyser->m_SyserUI.m_SyserDI.SetTraceCondition(szBuffer); } else { OUTPUT_INPUT_ERROR; return -1; } } } else { if(gpSyser->m_SyserUI.m_SyserDI.m_TraceType==TRACE_NULL) gpSyser->m_SyserUI.m_SyserDI.SetTraceCount(1); } #ifdef CODE_OS_NT_DRV if(gpSyser->m_pDebugger!=gpSyser->m_pOrgProcess) gpSyser->MapToProcess(gpSyser->m_pOrgProcess); #endif int SkipInstLen=0; int InstLen=0; InstLen=pDebugger->ReadMemory(*X86_REG_PTR.pEIP,CodeBuffer,MAX_INSTR_LEN); if(InstLen&&IsStepFlagModifyCode(CodeBuffer,*X86_REG_PTR.pEIP,&SkipInstLen,gpSyser)) { Address = *X86_REG_PTR.pEIP+SkipInstLen; if(gpSyser->m_pDebugger->InsertCodeBP(Address,BP_TYPE_DEBUG,BP_STATE_ENABLE)==false) { OUTPUT(WSTR("Fail to set Debug BP at %08X\n"),Address); return 0; } } else { pDebugger->SetSingleStep(); } pDebugger->ContinueDebug(false); return 0; } int p_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { bool bRestorScr; BYTE CodeBuffer[MAX_INSTR_LEN]; CHAR szBuffer[256]; ULPOS Address; ULONG Num; int CodeLen; ASSERT_DEBUGGER_OPENED #ifdef CODE_OS_WIN CDebugger*pDebugger = gpSyser->m_pDebugger; #else CDebugger*pDebugger = gpSyser->m_pOrgProcess; #endif bRestorScr = false; if(argc>1) { if(USHexStrToNum(argv[1],&Num)) {//p 3 gpSyser->m_SyserUI.m_SyserDI.SetProceedCount(Num); bRestorScr = true; } else if(TStrICmp(argv[1],"ret")==0) {//p ret gpSyser->m_SyserUI.m_SyserDI.SetX86RetBreak(pDebugger); bRestorScr = true; } else {//p eax==4321 PCWSTR pStr = &szCommandLine[argv[1]-argv[0]]; if(CALCEXP(pStr,&Num)) { UnicodeToAnsi(pStr,szBuffer,256); gpSyser->m_SyserUI.m_SyserDI.SetTraceProceedCondition(szBuffer); } else { OUTPUT_INPUT_ERROR; return -1; } } } else { if(gpSyser->m_SyserUI.m_SyserDI.m_TraceType==TRACE_NULL) gpSyser->m_SyserUI.m_SyserDI.SetTraceCount(1); } #ifdef CODE_OS_NT_DRV if(gpSyser->m_pDebugger!=gpSyser->m_pOrgProcess) gpSyser->MapToProcess(gpSyser->m_pOrgProcess); #endif if(gpSyser->m_SyserUI.m_CodeDoc.IsProcessCode(*X86_REG_PTR.pEIP)) { CodeLen=gpSyser->m_SyserUI.m_CodeDoc.InstrLen(*X86_REG_PTR.pEIP); gpSyser->m_pDebugger->InsertCodeBP(*X86_REG_PTR.pEIP+CodeLen,BP_TYPE_DEBUG,BP_STATE_ENABLE); } else { int SkipInstLen=0; if(pDebugger->ReadMemory(*X86_REG_PTR.pEIP,CodeBuffer,MAX_INSTR_LEN)==MAX_INSTR_LEN && IsStepFlagModifyCode(CodeBuffer,*X86_REG_PTR.pEIP,&SkipInstLen,gpSyser)) { Address = *X86_REG_PTR.pEIP+SkipInstLen; if(gpSyser->m_pDebugger->InsertCodeBP(Address,BP_TYPE_DEBUG,BP_STATE_ENABLE)==false) { OUTPUT(WSTR("Fail to set Debug BP at %08X\n"),Address); return 0; } } else {//ĵָĻ pDebugger->SetSingleStep(); } } pDebugger->ContinueDebug(bRestorScr); return 0; } int source_trace_command(int argc, WCHAR *argv[],PCWSTR szCommandLine, CSyser*pSyser) { ULPOS dwEIPRva,dwEndRva,dwBaseAddress; ASSERT_DEBUGGER_OPENED CSDSModule*pSDSModule = gpSyser->m_SyserUI.GetSDSModule(*gpSyser->m_SyserUI.m_CodeDoc.m_X86RegPtr.pEIP); if(pSDSModule==NULL) return 1; dwBaseAddress = pSDSModule->m_pCurDbgModule->m_ModuleBase; dwEIPRva=*gpSyser->m_SyserUI.m_CodeDoc.m_X86RegPtr.pEIP-dwBaseAddress; SDLINELIST LineList; DWORD Count; Count = pSDSModule->GetLineFromRva(dwEIPRva,&LineList); if(Count==0) return -1; PSDLINE pLine = *LineList[0]; CSourceCodeWnd* pSourceCodeWnd = gpSyser->m_MainFrame.m_SourceDebugFrameWnd.ShowSourceFile(pSDSModule,pLine->FileID,pLine->LineNumber); if(pSourceCodeWnd==NULL) return -1; HANDLE hItem = pSourceCodeWnd->GetItem(pLine->LineNumber-1); if(hItem==NULL) return -1; if(pSourceCodeWnd->IsItemExpanded(hItem)) { RUNCMD(WSTR("T")); return 0; } dwEndRva = pLine->Rva+pLine->Len; RUNCMD(WSTR("T")); gpSyser->m_SyserUI.m_SyserDI.SetTraceRange(dwBaseAddress+pLine->Rva,dwBaseAddress+dwEndRva); return 0; } int source_proceed_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { ULPOS dwEIPRva,dwEndRva,dwBaseAddress; ASSERT_DEBUGGER_OPENED CSDSModule*pSDSModule = gpSyser->m_SyserUI.GetSDSModule(*gpSyser->m_SyserUI.m_CodeDoc.m_X86RegPtr.pEIP); if(pSDSModule==NULL) return -1; dwBaseAddress = pSDSModule->m_pCurDbgModule->m_ModuleBase; dwEIPRva=*gpSyser->m_SyserUI.m_CodeDoc.m_X86RegPtr.pEIP-dwBaseAddress; SDLINELIST LineList; DWORD Count; Count = pSDSModule->GetLineFromRva(dwEIPRva,&LineList); if(Count==0) return -1; PSDLINE pLine = *LineList[0]; CSourceCodeWnd* pSourceCodeWnd = gpSyser->m_MainFrame.m_SourceDebugFrameWnd.ShowSourceFile(pSDSModule,pLine->FileID,pLine->LineNumber); if(pSourceCodeWnd==NULL) return -1; HANDLE hItem = pSourceCodeWnd->GetItem(pLine->LineNumber-1); if(hItem==NULL) return -1; if(pSourceCodeWnd->IsItemExpanded(hItem)) { RUNCMD(WSTR("P")); return 0; } dwEndRva = pLine->Rva+pLine->Len; RUNCMD(WSTR("P")); gpSyser->m_SyserUI.m_SyserDI.SetProceedRange(dwBaseAddress+pLine->Rva,dwBaseAddress+dwEndRva); return 0; } int bc_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { char szBuffer[MAX_FN_LEN]; DWORD Num,Index; ASSERT_DEBUGGER_OPENED if(argc<2) { OUTPUT_COMMAND_USAGE; return -1; } CODE_ASSERT(pSyser->m_pDebugger); if(*argv[1] == (WCHAR)'*') { gpSyser->m_pDebugger->RemoveAllCodeBP(BP_TYPE_INC_ALL,BP_TYPE_PATCH); gpSyser->m_pDebugger->RemoveAllDataBP(BP_TYPE_INC_ALL,BP_TYPE_PATCH); gpSyser->m_SyserUI.m_ModuleBPMap.Clear(); gpSyser->m_SyserUI.m_ModuleLoadBPMap.Clear(); #ifdef CODE_OS_NT_DRV for(PROC_RANGE_BP_MAP::IT Iter = gpSyser->m_RangeBPList.Begin();Iter!=gpSyser->m_RangeBPList.End();Iter++) { BP_RANGE_LIST::IT ListBIT,ListEIT; ListBIT = Iter->Begin(); ListEIT = Iter->End(); Iter->Clear(); } gpSyser->m_RangeBPList.Clear(); #endif UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } if(CALCEXP(argv[1],&Num)==false) {//ǺϷıʽBPLoadϵ㴦 UnicodeToAnsi(argv[1],szBuffer,MAX_FN_LEN); if(gpSyser->m_SyserUI.m_ModuleLoadBPMap.Remove(szBuffer)>0) return 0; OUTPUT_INPUT_ERROR; return 1; } if(Num>0x1000) { Index = gpSyser->m_SyserUI.RemoveCodeBP(Num); Index += gpSyser->m_pDebugger->RemoveDataBP(Num,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); if(Index > 0) { UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } } else { Index = 0; for(CCodeBPMap::IT Iter=gpSyser->m_pDebugger->m_pCodeBPMap->Begin();Iter.IsExist();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0 && Iter->pModuleBP==NULL) { if(Index==Num) { gpSyser->m_pDebugger->RemoveCodeBP(&(*Iter)); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } } for(CModuleBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleBPMap.Begin();Iter.IsExist();Iter++) { if(Index==Num) { gpSyser->m_SyserUI.RemoveCodeBP(Iter.Key()); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } for(CDataBPList::IT Iter=gpSyser->m_pDebugger->m_pDataBPList->Begin();Iter!=gpSyser->m_pDebugger->m_pDataBPList->End();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0) { if(Index==Num) { gpSyser->m_pDebugger->RemoveDataBP(&(*Iter)); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } } for(CModuleLoadBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleLoadBPMap.Begin();Iter.IsExist();Iter++) { if(Index==Num) { gpSyser->m_SyserUI.m_ModuleLoadBPMap.Remove(Iter); return 0; } Index++; } #ifdef CODE_OS_NT_DRV for(PROC_RANGE_BP_MAP::IT Iter = gpSyser->m_RangeBPList.Begin();Iter!=gpSyser->m_RangeBPList.End();Iter++) { BP_RANGE_LIST::IT ListBIT,ListEIT; ListBIT = Iter->Begin(); ListEIT = Iter->End(); CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(Iter.Key()); if(pDbgProcess) { for(;ListBIT!=ListEIT;ListBIT++) { if(Index==Num) { Iter->Remove(ListBIT); if(Iter->Count()==0) gpSyser->m_RangeBPList.Remove(Iter); return 0; } Index++; } } } #endif } OUTPUT(WSTR("%<3>Error %<1>: breakpoint isn't exist !\n")); return 0; } int bd_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD Num,Index; ASSERT_DEBUGGER_OPENED if(argc<2) { OUTPUT_COMMAND_USAGE; return -1; } CODE_ASSERT(pSyser->m_pDebugger); if(*argv[1] == (WCHAR)'*') { gpSyser->m_pDebugger->DisableAllCodeBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_pDebugger->DisableAllDataBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_SyserUI.EnableAllLoadBP(false); gpSyser->m_SyserUI.EnableAllModuleBP(false); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } if(CALCEXP(argv[1],&Num)==false) { OUTPUT_INPUT_ERROR; return 1; } if(Num>0x1000) { Index = gpSyser->m_pDebugger->DisableCodeBP(Num,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); Index += gpSyser->m_pDebugger->DisableDataBP(Num,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); Index += gpSyser->m_SyserUI.EnableModuleBP(Num,false); if(Index > 0) { UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } } else { Index = 0; for(CCodeBPMap::IT Iter=gpSyser->m_pDebugger->m_pCodeBPMap->Begin();Iter.IsExist();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0 && Iter->pModuleBP==NULL) { if(Index==Num) { gpSyser->m_pDebugger->DisableCodeBP(&(*Iter)); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } } for(CModuleBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleBPMap.Begin();Iter.IsExist();Iter++) { if(Index==Num) { gpSyser->m_SyserUI.EnableModuleBP(Iter.Key(),false); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } for(CDataBPList::IT Iter=gpSyser->m_pDebugger->m_pDataBPList->Begin();Iter!=gpSyser->m_pDebugger->m_pDataBPList->End();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0) { if(Index==Num) { gpSyser->m_pDebugger->DisableDataBP(&(*Iter)); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } } for(CModuleLoadBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleLoadBPMap.Begin();Iter.IsExist();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0) { if(Index==Num) { Iter->State = BP_STATE_DISABLE; return 0; } Index++; } } #ifdef CODE_OS_NT_DRV for(PROC_RANGE_BP_MAP::IT Iter = gpSyser->m_RangeBPList.Begin();Iter!=gpSyser->m_RangeBPList.End();Iter++) { BP_RANGE_LIST::IT ListBIT,ListEIT; ListBIT = Iter->Begin(); ListEIT = Iter->End(); CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(Iter.Key()); if(pDbgProcess) { for(;ListBIT!=ListEIT;ListBIT++) { if(Index==Num) { ListBIT->State = BP_STATE_DISABLE; return 0; } Index++; } } } #endif } OUTPUT(WSTR("%<3>Error %<1>: breakpoint isn't exist !\n")); return 0; } int be_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD Num,Index; ASSERT_DEBUGGER_OPENED if(argc<2) { OUTPUT_COMMAND_USAGE; return -1; } CODE_ASSERT(pSyser->m_pDebugger); if(*argv[1] == (WCHAR)'*') { gpSyser->m_pDebugger->EnableAllCodeBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_pDebugger->EnableAllDataBP(BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); gpSyser->m_SyserUI.EnableAllLoadBP(true); gpSyser->m_SyserUI.EnableAllModuleBP(true); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } if(CALCEXP(argv[1],&Num)==false) { OUTPUT_INPUT_ERROR; return 1; } if(Num>0x1000) {//Ǹַ Index = gpSyser->m_pDebugger->EnableCodeBP(Num,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); Index += gpSyser->m_pDebugger->EnableDataBP(Num,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); Index += gpSyser->m_SyserUI.EnableModuleBP(Num); if(Index > 0) { UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } } else {//Ǹ Index = 0; for(CCodeBPMap::IT Iter=gpSyser->m_pDebugger->m_pCodeBPMap->Begin();Iter.IsExist();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0 && Iter->pModuleBP==NULL) { if(Index==Num) { gpSyser->m_pDebugger->EnableCodeBP(&(*Iter)); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } } for(CModuleBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleBPMap.Begin();Iter.IsExist();Iter++) { if(Index==Num) { gpSyser->m_SyserUI.EnableModuleBP(Iter.Key()); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } for(CDataBPList::IT Iter=gpSyser->m_pDebugger->m_pDataBPList->Begin();Iter!=gpSyser->m_pDebugger->m_pDataBPList->End();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0) { if(Index==Num) { gpSyser->m_pDebugger->EnableDataBP(&(*Iter)); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } Index++; } } for(CModuleLoadBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleLoadBPMap.Begin();Iter.IsExist();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0) { if(Index==Num) { Iter->State = BP_STATE_ENABLE; return 0; } Index++; } } #ifdef CODE_OS_NT_DRV for(PROC_RANGE_BP_MAP::IT Iter = gpSyser->m_RangeBPList.Begin();Iter!=gpSyser->m_RangeBPList.End();Iter++) { BP_RANGE_LIST::IT ListBIT,ListEIT; ListBIT = Iter->Begin(); ListEIT = Iter->End(); CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(Iter.Key()); if(pDbgProcess) { for(;ListBIT!=ListEIT;ListBIT++) { if(Index==Num) { ListBIT->State= BP_STATE_ENABLE; return 0; } Index++; } } } #endif } OUTPUT(WSTR("%<3>Error %<1>: breakpoint isn't exist !\n")); return 0; } void DispCodeBreakPoint(int&Index,BREAK_POINT&BP,bool bAll) { WCHAR szType[128],szOwner[128],szName[128]; if(bAll==false && BP.Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH)) return; if(bAll==false && BP.pModuleBP) return; if(Index==0) OUTPUT(WSTR("Index OwnerProcess Type Address Name\n")); TStrCpy(szType,"Code"); AnsiToUnicode(BP.OwnerName,szOwner,128); AnsiToUnicode(BP.Name,szName,128); if(bAll) { CCodeBPMap::IT Iter = BP; if(BP.State!=BP_STATE_DISABLE) OUTPUT(WSTR("%-5X %%-14s %<7>%-8s %<4>%08X %<1>%s %08X\n"),Index,szOwner,szType,BP.Address,szName,(DWORD)Iter.Key()); else OUTPUT(WSTR("%%-5X %-14s %-8s %08X %s %08X\n"),Index,szOwner,szType,BP.Address,szName,(DWORD)Iter.Key()); } else { if(BP.State!=BP_STATE_DISABLE) OUTPUT(WSTR("%-5X %%-14s %<7>%-8s %<4>%08X %<1>%s\n"),Index,szOwner,szType,BP.Address,szName); else OUTPUT(WSTR("%%-5X %-14s %-8s %08X %s\n"),Index,szOwner,szType,BP.Address,szName); } Index++; } void DispModuleBreakPoint(int&Index,MODULE_BP&BP,bool bAll) { WCHAR szBuffer[MAX_FN_LEN]; if(Index==0) OUTPUT(WSTR("Index OwnerProcess Type Address Name\n")); AnsiToUnicode(BP.Name,szBuffer,MAX_FN_LEN); CModuleBPMap::IT Iter = BP; if(BP.State !=BP_STATE_DISABLE) OUTPUT(WSTR("%-5X % %<7>Code %<4>%08X %<1>%s\n"),Index,Iter.Key(),szBuffer); else OUTPUT(WSTR("%%-5X Code %08X %s\n"),Index,Iter.Key(),szBuffer); Index++; } void DispDataBreakPoint(int&Index,BREAK_POINT&BP,bool bAll) { WCHAR szType[128],szOwner[128],szName[128]; if(bAll==false && BP.Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH)) return; if(Index==0) OUTPUT(WSTR("Index OwnerProcess Type Address Name\n")); TStrCpy(szType,"Data "); TStrCat(szType,(PCSTR)BP.Description); AnsiToUnicode(BP.OwnerName,szOwner,128); AnsiToUnicode(BP.Name,szName,128); if(BP.State!=BP_STATE_DISABLE) OUTPUT(WSTR("%-5X %%-14s %<7>%-8s %<4>%08X %<1>%s\n"),Index,szOwner,szType,BP.Address,szName); else OUTPUT(WSTR("%%-5X %-14s %-8s %08X %s\n"),Index,szOwner,szType,BP.Address,szName); Index++; } void DispBPLoadBreakPoint(int&Index,BP_LOAD&BP,PCSTR ModuleName,bool bAll) { WCHAR szBuffer[MAX_FN_LEN]; if(bAll==false && BP.Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH)) return; if(Index==0) OUTPUT(WSTR("Index OwnerProcess Type Address Name\n")); AnsiToUnicode(ModuleName,szBuffer,MAX_FN_LEN); if(BP.State !=BP_STATE_DISABLE) OUTPUT(WSTR("%-5X % %<7>BPLoad %<4>EntryPoint %<1>%s\n"),Index,szBuffer); else OUTPUT(WSTR("%%-5X BPLoad EntryPoint %s\n"),Index,szBuffer); Index++; } #ifdef CODE_OS_NT_DRV void DispBPRBreakPoint(int&Index,BP_RANGE_INFO&BP,WCHAR*ProcName, bool bAll) { WCHAR szBuffer[MAX_FN_LEN]; if(Index==0) OUTPUT(WSTR("Index OwnerProcess Type Address Name\n")); if(BP.State!=BP_STATE_DISABLE) OUTPUT(WSTR("%-5X %%-14s %<7>%-8s %<4>%08X-%08X\n"),Index,ProcName,WSTR("BMR"),BP.RangeStartAddress,BP.RangeStartAddress+BP.RangeLength); else OUTPUT(WSTR("%-5X %%-14s %-8s %08X-%08X\n"),Index,ProcName,WSTR("BMR"),BP.RangeStartAddress,BP.RangeStartAddress+BP.RangeLength); Index++; } #endif int bl_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { bool bDispAll; int Index=0; if(argc>1 && argv[1][0]=='*') bDispAll = true; else bDispAll = false; for(CCodeBPMap::IT Iter=gpSyser->m_pDebugger->m_pCodeBPMap->Begin();Iter!=gpSyser->m_pDebugger->m_pCodeBPMap->End();Iter++) { DispCodeBreakPoint(Index,*Iter,bDispAll); } for(CModuleBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleBPMap.Begin();Iter.IsExist();Iter++) { DispModuleBreakPoint(Index,*Iter,bDispAll); } for(CDataBPList::IT Iter=gpSyser->m_pDebugger->m_pDataBPList->Begin();Iter!=gpSyser->m_pDebugger->m_pDataBPList->End();Iter++) { DispDataBreakPoint(Index,*Iter,bDispAll); } for(CModuleLoadBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleLoadBPMap.Begin();Iter!=gpSyser->m_SyserUI.m_ModuleLoadBPMap.End();Iter++) { DispBPLoadBreakPoint(Index,*Iter,Iter.Key(),bDispAll); } #ifdef CODE_OS_NT_DRV for(PROC_RANGE_BP_MAP::IT Iter = gpSyser->m_RangeBPList.Begin();Iter!=gpSyser->m_RangeBPList.End();Iter++) { BP_RANGE_LIST::IT ListBIT,ListEIT; ListBIT = Iter->Begin(); ListEIT = Iter->End(); CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(Iter.Key()); if(pDbgProcess) { for(;ListBIT!=ListEIT;ListBIT++) { DispBPRBreakPoint(Index,*ListBIT,(WCHAR*)pDbgProcess->m_ProcNameW,bDispAll); } } } #endif if(Index==0) OUTPUT(WSTR("Breakpoint doesn't exist!\n")); return 0; } int bpload_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { WCHAR szBuffer[MAX_FN_LEN]; if(argc==1) { for(CModuleLoadBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleLoadBPMap.Begin();Iter!=gpSyser->m_SyserUI.m_ModuleLoadBPMap.End();Iter++) { AnsiToUnicode(Iter.Key(),szBuffer,MAX_FN_LEN); OUTPUT(WSTR("%s\n"),szBuffer); } } else if(argc==2) { PSTR szBufferA = (PSTR)szBuffer; UnicodeToAnsi(argv[1],szBufferA,MAX_FN_LEN); gpSyser->m_SyserUI.InsertLoadBP(szBufferA,0,BP_STATE_ENABLE); } return 0; } int get_command_condition_string(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,char* szCondition,int MaxSize) { PCWSTR ConditionBegin,ConditionEnd; int n; for(n=2;n=argc) { *szCondition=0; return 0; } ConditionBegin = &szCommandLine[argv[n]-argv[0]]; for(;n=argc) { return TStrCpyLimit(szCondition,ConditionBegin,MaxSize); } else { ConditionEnd = &szCommandLine[argv[n]-argv[0]]; while(ConditionEnd[-1]==' ' && ConditionEnd>ConditionBegin) ConditionEnd--; return TStrCpyLimit(szCondition,ConditionBegin,MIN(MaxSize,(int)(ConditionEnd-ConditionBegin)+1)); } } int get_do_command_string(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,char* szDoCmd,int MaxSize) { int n; for(n=2;n=argc) { *szDoCmd = 0; return 0; } return TStrCpyLimit(szDoCmd,&szCommandLine[argv[n]-argv[0]],MaxSize); } int bpx_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { ULPOS Address; CHAR Name[256],Condition[256],DoCmd[256]; ASSERT_DEBUGGER_OPENED if(argc<=1) { OUTPUT_COMMAND_USAGE; return 1; } UnicodeToAnsi(argv[1],Name,sizeof(Name)); if(get_command_condition_string(argc,argv,szCommandLine,Condition,256)>0) { if(CALCEXP(Condition,NULL)==false) { OUTPUT(WSTR("Error : Invalid condition string !\n")); return -1; } } get_do_command_string(argc,argv,szCommandLine,DoCmd,256); int Count = 0; if(CALCEXP(argv[1],&Address)) { if(gpSyser->m_SyserUI.InsertCodeBP(Address,Name,Condition,DoCmd)==false) OUTPUT(WSTR("Error : Fail to set code breakpoint at %08X!\n"),Address); else OUTPUT(WSTR("Set code break point at %%08X%<1>!\n"),Address); } else { #ifdef CODE_OS_NT_DRV OUTPUT(WSTR("Error : Counldn't find symbol %%s%<1> in [%%s%<1>] process space\n"),argv[1],(PCWSTR)gpSyser->m_pDebugger->m_ProcNameW); #endif #ifdef CODE_OS_WIN OUTPUT(WSTR("Error : Counldn't find symbol %%s%\n"),argv[1]); #endif } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } int bpm_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { UINT Type; ULPOS Address; BREAK_POINT*pBP; CHAR Condition[256],DoCmd[256]; int Length; if(argc<2) { OUTPUT_COMMAND_USAGE; return -1; } switch(argv[0][3]) { case 'b': case 'B': Length = 1; break; case 'w': case 'W': Length = 2; break; case 'd': case 'D': Length = 4; break; default: Length = 0; break; } if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return -1; } Type = BP_TYPE_READWRITE; if(argc>2 && TStrICmp(argv[2],"if") && TStrICmp(argv[2],"do")) { if(TStrICmp(argv[2],"rw")==0) Type = BP_TYPE_READWRITE; else if(TStrICmp(argv[2],"w")==0) Type = BP_TYPE_WRITE; else if(TStrICmp(argv[2],"x")==0) Type = BP_TYPE_EXECUTE; else { OUTPUT(WSTR("Error : Invalid access type !\n")); return -1; } } if(get_command_condition_string(argc,argv,szCommandLine,Condition,256)>0) { if(CALCEXP(Condition,NULL)==false) { OUTPUT(WSTR("Error : Invalid condition string !\n")); return -1; } } get_do_command_string(argc,argv,szCommandLine,DoCmd,256); pBP = gpSyser->m_pDebugger->InsertDataBP(Address,Type,BP_STATE_ENABLE,Length); if(pBP) { if(*Condition) pBP->Condition = Condition; if(*DoCmd) pBP->DoCmd = DoCmd; OUTPUT(WSTR("Set data break point at %%08X%<1>!\n"),Address); } else { OUTPUT(WSTR("Error : Fail to set dat breakpoint !\n")); } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } int bpio_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { UINT Type; ULPOS Address; BREAK_POINT*pBP; CHAR Condition[256],DoCmd[256]; int Length; if(argc<2) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&Address)==false || Address>0xFFFF) { OUTPUT_INVALID_ADDRESS; return -1; } Length = 0; Type = BP_TYPE_IO_READWRITE; if(get_command_condition_string(argc,argv,szCommandLine,Condition,256)>0) { if(CALCEXP(Condition,NULL)==false) { OUTPUT(WSTR("Error : Invalid condition string !\n")); return -1; } } get_do_command_string(argc,argv,szCommandLine,DoCmd,256); pBP = gpSyser->m_pDebugger->InsertDataBP(Address,Type,BP_STATE_ENABLE,Length); if(pBP) { if(*Condition) pBP->Condition = Condition; if(*DoCmd) pBP->DoCmd = DoCmd; } else { OUTPUT(WSTR("Error : fail to set breakpoint !\n")); } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } int stack_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD EBP; DWORD *pESP; WCHAR szBuffer[256]; ULSIZE CodeLen,Address;// CHAR szSymbol[MAX_SYMBOL_LEN]; CDbgModule*pDbgModule; int m=0; ASSERT_DEBUGGER_OPENED if(argc==1) { EBP = *X86_REG_PTR.pEBP; } else { if(CALCEXP(argv[1],&EBP)==false) { OUTPUT_INVALID_PARAM; return -1; } } gpSyser->m_SyserUI.m_CallStack.UpdateContext(EBP); if(gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.Count()) { OUTPUT(WSTR("CallReturn Frame Function Name\n")); } else gpSyser->m_SyserUI.m_CallStack.UpdateContext(*X86_REG_PTR.pESP); if(gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.Count()==0) { OUTPUT(WSTR("CallReturn Frame Function Name count=0\n")); pESP=(DWORD*)*X86_REG_PTR.pESP;// Reg.GeneReg[ESP_IDX]; DWORD dwTmpAddress,dwTmpAddress2; bool bReadOK; for(int n=0;1;n++) { dwTmpAddress = ReadDword(&pESP[n],&bReadOK); if(bReadOK==false) break; dwTmpAddress2 = ReadDword(*(void**)&dwTmpAddress,&bReadOK); if(bReadOK==false) continue; CodeLen=gpSyser->m_SyserUI.m_CodeDoc.IsPrevCodeCallInstr(dwTmpAddress,szSymbol,&Address); if(CodeLen) { TStrCpy(szBuffer,"no symbols"); if(*szSymbol==0)//Ҳžģ+ƫʽ { pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule) TSPrintf(szSymbol,"%s+0x%X",(PCSTR)pDbgModule->m_ModuleTitle,Address-pDbgModule->m_ModuleBase); else TSPrintf(szSymbol,"unknown_function"); TStrCpy(szBuffer,szSymbol); } OUTPUT(WSTR("%<7>%08X %08X %s\n"),dwTmpAddress,pESP,szBuffer); m++; if(m>20) break; } } return 0; } for(TList::IT Iter=gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.Begin(); Iter!=gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.End();Iter++) { AnsiToUnicode(Iter->FuncName,szBuffer,256); if(gpSyser->m_SyserUI.m_CallStack.m_pCurCallFrame ==&(*Iter)) { OUTPUT(WSTR("%<7>%08X %08X %s\n"),Iter->CallReturn,Iter->FrameAddress,szBuffer); } else { OUTPUT(WSTR("%08X %08X %s\n"),Iter->CallReturn,Iter->FrameAddress,szBuffer); } } #ifdef CODE_OS_NT_DRV if(gpSyser->m_SyserUI.m_CallStack.m_CallFrameList.Count()<2) { OUTPUT(WSTR("------------------------------------------\n")); pESP=(DWORD*)Reg.GeneReg[ESP_IDX]; DWORD dwTmpAddress,dwTmpAddress2; bool bReadOK; for(int n=0;1;n++) { dwTmpAddress = ReadDword(&pESP[n],&bReadOK); if(bReadOK==false) break; dwTmpAddress2 = ReadDword(*(void**)&dwTmpAddress,&bReadOK); if(bReadOK==false) continue; szSymbol[0]=0; CodeLen=gpSyser->m_SyserUI.m_CodeDoc.IsPrevCodeCallInstr(dwTmpAddress,szSymbol,&Address); if(CodeLen) { //TStrCpy(szBuffer,"no symbols"); if(*szSymbol==0)//Ҳžģ+ƫʽ { pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule) TSPrintf(szSymbol,"%s+0x%X",(PCSTR)pDbgModule->m_ModuleTitle,Address-pDbgModule->m_ModuleBase); else TSPrintf(szSymbol,"unknown_function"); TStrCpy(szBuffer,szSymbol); } OUTPUT(WSTR("%<7>%08X %08X %s\n"),dwTmpAddress,pESP+n,szBuffer); m++; if(m>20) break; } } } #endif return 0; } int skip_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { X86_CPU_REG_PTR RegPtr; ASSERT_DEBUGGER_OPENED pSyser->m_pDebugger->GetX86RegPtr(&RegPtr); *RegPtr.pEIP+=pSyser->m_SyserUI.m_CodeDoc.InstrLen(*RegPtr.pEIP); pSyser->m_pDebugger->SaveRegister(); UPDATE_CONTEXT(); return 0; } int cmt_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { WCHAR szBuffer[MAX_FN_LEN]; ASSERT_DEBUGGER_OPENED TMap::IT ModuleIter = gpSyser->m_SyserUI.m_CommentContainer.Begin(); while(ModuleIter.IsExist()) { AnsiToUnicode(ModuleIter->m_ModuleName,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("Comment Module : %%s\n"),szBuffer); CCommentMap::IT CmtIter = ModuleIter->m_CommentMap.Begin(); while(CmtIter!=ModuleIter->m_CommentMap.End()) { AnsiToUnicode(*CmtIter,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("%<5>%08X %%s\n"),CmtIter.Key(),szBuffer); CmtIter++; } ModuleIter++; } return 0; } int u_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { ULPOS Address,dwBaseAddress; int nItemCount; HANDLE hItem; NUM_PTR nLastAddr; CCodeView* pCodeView; ASSERT_DEBUGGER_OPENED if(argc==1) { Address=*X86_REG_PTR.pEIP; if(argv[0][0]!='.') { pCodeView=ACTIVE_CODE_VIEW; nItemCount = pCodeView->GetItemCount(); hItem = pCodeView->GetItem(nItemCount); nLastAddr = pCodeView->GetItemData(hItem,1); Address=(ULPOS)nLastAddr; } } else { if(argc==2) { if(TStrICmp(argv[1],WSTR("-"))==0) { pCodeView=ACTIVE_CODE_VIEW; pCodeView->OnPrevPos(NULL); return 0; } else if(TStrICmp(argv[1],WSTR("+"))==0) { pCodeView=ACTIVE_CODE_VIEW; pCodeView->OnNextPos(NULL); return 0; } else if(CALCEXP(argv[1],&Address)==false) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return 1; } } if(argc==3) { WCHAR *param1,*param2; param1=argv[1]; param2=argv[2]; do { argc--; if(TStrICmp(param1,WSTR("-"))==0) { if(CALCEXP(param2,&Address)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } pCodeView=ACTIVE_CODE_VIEW; if(pCodeView==NULL) return 1; dwBaseAddress = pSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveAddress(); Address=dwBaseAddress-Address; break; } else if(TStrICmp(param1,WSTR("+"))==0) { if(CALCEXP(param2,&Address)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } pCodeView=ACTIVE_CODE_VIEW; if(pCodeView==NULL) return 1; dwBaseAddress = pSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveAddress(); Address=dwBaseAddress+Address; break; } else if(TStrICmp(param1,WSTR("-a"))==0) { gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.InsertView(NULL); if(CALCEXP(param2,&Address)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } break; } param1=argv[2]; param2=argv[1]; }while(argc!=1); } } gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.SetActiveAddress(Address,true); return 0; } int src_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { ULPOS Address; if(argc==1) { Address=*X86_REG_PTR.pEIP; } else { if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return 1; } } CSDSModule*pSDSModule = gpSyser->m_SyserUI.GetSDSModule(Address); if(pSDSModule==NULL) { OUTPUT(WSTR("Couldn't find source code in SDS Module list !\n")); return -1; } gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.SetActiveModule(pSDSModule); SDLINELIST LineList; if(pSDSModule->GetLineFromRva(Address-pSDSModule->m_pCurDbgModule->m_ModuleBase,&LineList)) { gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.ShowSourceFile(pSDSModule,(*LineList[0])->FileID,(*LineList[0])->LineNumber); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_MultiSourceCodeView.UpdateAllView(); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SourceVariableWatchWnd.UpdateContext(); } return 0; } int a_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { ULSIZE Length; CHAR szBuffer[128]; BYTE CodeBuffer[64]; DWORD EIP; if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return 0; if(argc<3) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&EIP)==false) { OUTPUT_INVALID_ADDRESS; return -1; } TStrCpyLimit(szBuffer,&szCommandLine[argv[2]-argv[0]],sizeof(szBuffer)); Length = gpSyser->m_SyserUI.m_CodeDoc.Asm(szBuffer,CodeBuffer,EIP); if(Length==0) { OUTPUT(WSTR("%<3>Error %<1>: Invalid asm code string!\n")); return -1; } if(pSyser->m_pDebugger->WriteMemory(EIP,CodeBuffer,Length)!=Length) { OUTPUT(WSTR("%<3>Error %<1>: Fail to write code to %08X!\n"),argv[1]); return -1; } //UPDATE_MEMORY_VIEW(); UPDATE_CONTEXT(); return 0; } int e_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { int Length; ULPOS Address; BYTE Buffer[256]; PCWSTR szValue; if(argc < 2) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return -1; } if(argc == 2) { pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(Address,argv[1]); return 0; } ZeroMemory(Buffer,sizeof(Buffer)); szValue = &szCommandLine[argv[2]-argv[0]]; bool Result; switch(argv[0][1]) { case 'w': case 'W': if(CALCEXP(szValue,(ULONG*)Buffer)==false) { OUTPUT_INVALID_PARAM; return -1; } Result = pSyser->m_pDebugger->WriteMemory(Address,Buffer,2)==2; break; case 'd': case 'D': if(CALCEXP(szValue,(ULONG*)Buffer)==false) { OUTPUT_INVALID_PARAM; return -1; } Result = pSyser->m_pDebugger->WriteMemory(Address,Buffer,4)==4; break; default: { if(*szValue=='"'||*szValue=='\'') { szValue++; Length=0; while(szValue[Length] && szValue[Length]!='"'&& *szValue!='\'' && Lengthm_pDebugger->WriteMemory(Address,Buffer,Length)==Length; } break; } if(!Result) OUTPUT_FAIL_TO_WRITE_MEM; UPDATE_CONTEXT(); return 0; } int r_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { CHAR szValueName[64]; ULONG Value; ASSERT_DEBUGGER_OPENED if(argc<2) { OUTPUT_INPUT_ERROR; return -1; } if(argc>2) { if(CALCEXP(argv[2],&Value)==false) { OUTPUT_INVALID_PARAM; return -1; } UnicodeToAnsi(argv[1],szValueName,sizeof(szValueName)); if(gpSyser->m_SyserUI.m_CodeDoc.SetPtrValue(szValueName,Value)==false) { OUTPUT_INVALID_PARAM; return -1; } gpSyser->m_pDebugger->SaveRegister(); UPDATE_CONTEXT(); } else { if(CALCEXP(argv[1],&Value)==false) { OUTPUT_INVALID_PARAM; return -1; } OUTPUT(WSTR("%s = %X\n"),argv[1],Value); } return 0; } int m_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD SourceAddress,SourceLen,DestAddress,MoveLen; if(argc!=4) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&SourceAddress)==false || CALCEXP(argv[3],&DestAddress)==false) { OUTPUT_INVALID_ADDRESS; return -1; } if(CALCEXP(argv[2],&SourceLen)==false) { OUTPUT(WSTR("Error : Invalid Length !\n")); return -1; } if(SourceLen>0x10000) { OUTPUT(WSTR("Error : Length too large !\n")); return -1; } MoveLen = gpSyser->m_pDebugger->MoveMem(DestAddress,SourceAddress,SourceLen); OUTPUT(WSTR("%X bytes moved !\n"),MoveLen); UPDATE_CONTEXT(); return 0; } int c_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD SourceAddress,SourceLen,DestAddress,CmpLen; if(argc!=4) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&SourceAddress)==false || CALCEXP(argv[3],&DestAddress)==false) { OUTPUT_INVALID_ADDRESS; return -1; } if(CALCEXP(argv[2],&SourceLen)==false) { OUTPUT(WSTR("Error : Invalid Length !\n")); return -1; } if(SourceLen>0x10000) { OUTPUT(WSTR("Error : Length too large !\n")); return -1; } CmpLen = gpSyser->m_pDebugger->CmpMem(DestAddress,SourceAddress,SourceLen); OUTPUT(WSTR("%X bytes is same!\n"),CmpLen); return 1; } int f_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { BYTE Buffer[256]; PCWSTR szValue; int BufSize,MemLength,Len,nFilled; ULPOS Address; if(argc<4) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return -1; } if(CALCEXP(argv[2],(ULSIZE*)&MemLength)==false) { OUTPUT_INVALID_PARAM; return -1; } szValue = &szCommandLine[argv[3]-argv[0]]; if(*szValue=='"'||*szValue=='\'') { szValue++; BufSize=0; while(szValue[BufSize] && szValue[BufSize]!='"'&& *szValue!='\'' && BufSize0) { Len = MemLength>BufSize ? BufSize:MemLength; if(pSyser->m_pDebugger->WriteMemory(Address+nFilled,Buffer,Len)!=Len) break; nFilled+=Len; MemLength-=Len; } OUTPUT(WSTR("%d Byte(s) filled !\n"),nFilled); UPDATE_CONTEXT(); //UPDATE_MEMORY_VIEW(); return 0; } int s_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { static ULPOS PrevAddress = 0; static ULSIZE PrevLength = 0; static BYTE SearchBuffer[256]; static int SearchBufSize; static int ShowMode=0; static int OrgShowMode=0; PCWSTR szValue; int MemLength; ULPOS Address,ResAddr; if(argc<4) { if(argc==1 && PrevLength>0) { Address = PrevAddress; MemLength = PrevLength; goto ContinueSearch; } OUTPUT_COMMAND_USAGE; return -1; } switch(argv[0][1]) { case 0: case 'd': case 'D': OrgShowMode=0; break; case 'c': case 'C': OrgShowMode=1; break; } ShowMode=OrgShowMode; if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return -1; } if(CALCEXP(argv[2],(ULSIZE*)&MemLength)==false) { OUTPUT_INVALID_PARAM; return -1; } szValue = &szCommandLine[argv[3]-argv[0]]; if(*szValue=='"'||*szValue=='\'') { szValue++; SearchBufSize=0; while(szValue[SearchBufSize] && szValue[SearchBufSize]!='"'&& szValue[SearchBufSize]!='\'' && SearchBufSizem_pDebugger->SearchMem(Address,MemLength,SearchBuffer,SearchBufSize); if(ResAddr!=-1) { switch(argv[0][1]) { case 0: ShowMode=OrgShowMode; break; case 'd': case 'D': ShowMode=0; break; case 'c': case 'C': ShowMode=1; break; } OUTPUT(WSTR("Found at %08X\n"),ResAddr); PrevAddress = ResAddr+1; PrevLength = MemLength-(PrevAddress-Address); if(ShowMode==1) VIEW_CODE(ResAddr,true); else VIEW_DATA(ResAddr,SearchBufSize); } else { PrevLength = 0; OUTPUT(WSTR("Couldn't found in range!\n")); } return 0; } int seg_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int SegIndex,SelectIndex; DWORD Value=0; ASSERT_DEBUGGER_OPENED if(argc!=2) { OUTPUT(WSTR("Usage : seg segment_name\n")); return 1; } for(SegIndex=0;SegIndex=sizeof(CInstrSym::m_SegStr)/sizeof(PCWSTR)) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return 1; } switch(SegIndex) { case 0: SelectIndex = *X86_REG_PTR.pES; break; case 1: SelectIndex = *X86_REG_PTR.pCS; break; case 2: SelectIndex = *X86_REG_PTR.pSS; break; case 3: SelectIndex = *X86_REG_PTR.pDS; break; case 4: SelectIndex = *X86_REG_PTR.pFS; break; case 5: SelectIndex = *X86_REG_PTR.pGS; break; } if(pSyser->m_pDebugger->GetSegRegBase(SelectIndex,&Value)==false) OUTPUT(WSTR("Seg %s isn't present !\n"),CInstrSym::m_SegStr[SegIndex]); else OUTPUT(WSTR("Seg %s : Base %08X\n"),CInstrSym::m_SegStr[SegIndex],Value); return 0; } int sym_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { int Count=0; char szSym[MAX_SYMBOL_LEN],szModule[MAX_FN_LEN]; WCHAR szBuffer[MAX_SYMBOL_LEN],szModuleName[MAX_FN_LEN]; bool bOk=false; DWORD Value; CSymbolModule*pSymbolModule; if(argc==4) { if(TStrICmp(argv[1],"-a")==0 || TStrICmp(argv[1],"/a")==0) { UnicodeToAnsi(argv[2],szSym,sizeof(szSym)); if(CALCEXP(argv[3],&Value)) { CDbgModule*pDbgModule = pSyser->m_pDebugger->m_ModuleList.GetModule(Value); if(pDbgModule==NULL) pDbgModule = pSyser->m_pSysDebugger->m_ModuleList.GetModule(Value); if(pDbgModule!=NULL) { if(pDbgModule->m_pSymbolModule==NULL) { pSymbolModule = gpSyser->m_SyserUI.m_SymbolContainer.InsertSymbolModule(pDbgModule->m_ModuleID); if(pSymbolModule) pSymbolModule->m_ModuleName = pDbgModule->m_ModuleName; if(pDbgModule) pDbgModule->AttachSymbolModule(pSymbolModule); } bOk = pDbgModule->m_pSymbolModule->SetSymbol(Value-pDbgModule->m_ModuleBase,szSym); } else { bOk=gpSyser->m_SyserUI.m_CodeDoc.InsertConstSym(szSym,Value); //OUTPUT(WSTR("Error : Can't find this module locate on %08X\n"),Value); } } else { OUTPUT(WSTR("Error : %s input error!\n"),argv[3]); } } if(bOk) OUTPUT(WSTR("Add '%s' ==> %08x succeed\n"),argv[2],Value); else OUTPUT(WSTR("Error : Add symbols error!\n"),argv[2],Value); return 0; } if(argc<=1) { OUTPUT(WSTR("symbols ModuleName\n")); for(CSymbolContainer::IT Iter = gpSyser->m_SyserUI.m_SymbolContainer.Begin();Iter.IsExist();Iter++) { if(Iter->m_ModuleName.IsEmpty()) TStrCpy(szModuleName,""); else AnsiToUnicode((PCSTR)Iter->m_ModuleName,szModuleName,MAX_FN_LEN); OUTPUT(WSTR("%-5d %s\n"),Iter->m_SymbolMap.Count(),TGetFileName(szModuleName)); } return 0; } if(argc==2) { UnicodeToAnsi(argv[1],szSym,sizeof(szSym)); *szModule=0; } else { UnicodeToAnsi(argv[1],szModule,sizeof(szModule)); UnicodeToAnsi(argv[2],szSym,sizeof(szSym)); } for(CSymbolContainer::IT ModeIter = gpSyser->m_SyserUI.m_SymbolContainer.Begin();ModeIter.IsExist();ModeIter++) { if(ModeIter->m_ModuleBase && (TCmpModuleName((PCSTR)ModeIter->m_ModuleName,szModule) || *szModule==0)) { for(CSymbolMap::IT Iter = ModeIter->m_SymbolMap.Begin();Iter.IsExist();Iter++) { if(TIMatchWithPattern(szSym,(PCSTR)*Iter)) { AnsiToUnicode(*Iter,szBuffer,MAX_SYMBOL_LEN); if(ModeIter->m_ModuleName.IsEmpty()) TStrCpy(szModuleName,""); else AnsiToUnicode((PCSTR)ModeIter->m_ModuleName,szModuleName,MAX_FN_LEN); OUTPUT(WSTR("%%08X %<1>: %%s %<1><%s>\n"),Iter.Key()+ModeIter->m_ModuleBase,szBuffer,TGetFileName(szModuleName)); Count++; } } } } for(CDbgModuleMap::IT ModeIter=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();ModeIter.IsExist();ModeIter++) { if(ModeIter->m_pSymbolModule&&ModeIter->m_pSymbolModule->m_ModuleBase==0&&(TCmpModuleName((PCSTR)ModeIter->m_ModuleName,szModule) || *szModule==0)) { for(CSymbolMap::IT Iter = ModeIter->m_pSymbolModule->m_SymbolMap.Begin();Iter.IsExist();Iter++) { if(TIMatchWithPattern(szSym,(PCSTR)*Iter)) { AnsiToUnicode(*Iter,szBuffer,MAX_SYMBOL_LEN); if(ModeIter->m_pSymbolModule->m_ModuleName.IsEmpty()) TStrCpy(szModuleName,""); else AnsiToUnicode((PCSTR)ModeIter->m_pSymbolModule->m_ModuleName,szModuleName,MAX_FN_LEN); OUTPUT(WSTR("%%08X %<1>: %%s %<1><%s>\n"),Iter.Key()+ModeIter->m_ModuleBase,szBuffer,TGetFileName(szModuleName)); Count++; } } } } if(gpSyser->m_pDebugger != gpSyser->m_pSysDebugger) { for(CDbgModuleMap::IT ModeIter=gpSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.Begin();ModeIter.IsExist();ModeIter++) { if(ModeIter->m_pSymbolModule&&ModeIter->m_pSymbolModule->m_ModuleBase==0&&(TCmpModuleName((PCSTR)ModeIter->m_ModuleName,szModule) || *szModule==0)) { for(CSymbolMap::IT Iter = ModeIter->m_pSymbolModule->m_SymbolMap.Begin();Iter.IsExist();Iter++) { if(TIMatchWithPattern(szSym,(PCSTR)*Iter)) { AnsiToUnicode(*Iter,szBuffer,MAX_SYMBOL_LEN); if(ModeIter->m_pSymbolModule->m_ModuleName.IsEmpty()) TStrCpy(szModuleName,""); else AnsiToUnicode((PCSTR)ModeIter->m_pSymbolModule->m_ModuleName,szModuleName,MAX_FN_LEN); OUTPUT(WSTR("%%08X %<1>: %%s %<1><%s>\n"),Iter.Key()+ModeIter->m_ModuleBase,szBuffer,TGetFileName(szModuleName)); Count++; } } } } } OUTPUT(WSTR("%d Symbol(s)\n"),Count); return 0; } int symmod_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { WCHAR szBuffer[MAX_FN_LEN]; CSymbolContainer::IT Iter; int Count=0; OUTPUT(WSTR("Ref SymbolCount FullFileName\n")); Iter = gpSyser->m_SyserUI.m_SymbolContainer.Begin(); while(Iter.IsExist()) { if(Iter->m_SymbolMap.Count()) { AnsiToUnicode(Iter->m_ModuleName,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("%-4d %-8d %s\n"),Iter->m_ReferenceCount,Iter->m_SymbolMap.Count(),szBuffer); Count++; } Iter++; } OUTPUT(WSTR("%d Module(s)\n"),Count); return 0; } int sdsmod_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { WCHAR szBuffer[MAX_FN_LEN]; CSDSModuleMap::IT Iter; int Count=0; Iter = gpSyser->m_SyserUI.m_SDSModuleMap.Begin(); while(Iter.IsExist()) { if(Count==0) OUTPUT(WSTR("File BP(s) Size(k) CheckSum TimeStamp ModuleName\n")); AnsiToUnicode(Iter->m_ModuleFileName,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("%-4d %7dk %08X %08X %s\n"),Iter->m_BreakPointList.Count(),Iter->m_MemoryUsed/1024, Iter->m_SDSymbolFile->ModuleID.OrgPECheckSum,Iter->m_SDSymbolFile->ModuleID.TimeDateStamp,szBuffer); Count++; Iter++; } OUTPUT(WSTR("%d Module(s)\n"),Count); return 0; } char* TimeDateStampToString(DWORD TimeDateStamp,char* TimeString); void DispModuleInfo(CDbgModule*pModule) { char TimeDateStamp[30]; WCHAR wTimeDateStamp[30]; TimeDateStampToString(LOW_DWORD(pModule->m_ModuleID)-gpSyser->m_TimeZoneBias,TimeDateStamp); TStrCpy(wTimeDateStamp,TimeDateStamp); WCHAR szTitle[MAX_FN_LEN],szFullName[MAX_FN_LEN]; AnsiToUnicode(pModule->m_ModuleTitle,szTitle,MAX_FN_LEN); AnsiToUnicode(pModule->m_ModuleFullName,szFullName,MAX_FN_LEN); OUTPUT(WSTR("%-20s %08X %08X %08X %-20s%s\n"),szTitle,pModule->m_ModuleBase,pModule->m_ModuleSize,HIGH_DWORD(pModule->m_ModuleID),wTimeDateStamp,szFullName); } int mod_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { WCHAR szBuffer[MAX_FN_LEN]; DWORD i=0; DWORD Address=0xffffffff; int TmpIndex=1; DWORD dwType=0; if(argc==1) { OUTPUT(WSTR("ModuleName ImageBase ImageSize CheckSum TimeStamp FullFileName\n")); for(CDbgModuleMap::IT Iter=pSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=pSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { DispModuleInfo(&(*Iter)); i++; } return 0; } if(TStrCmp(argv[1],"-u")==0) { dwType=1; }else if(TStrCmp(argv[1],"-s")==0) { dwType=2; } if(dwType) { TmpIndex++; } if(argc>(int)TmpIndex&& CALCEXP(argv[TmpIndex],&Address)) { CDbgModule*pDbgModule = pSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) pDbgModule = pSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) { OUTPUT(WSTR("Error : Can't find this module locate on %08X\n"),Address); return 1; } OUTPUT(WSTR("ModuleName ImageBase ImageSize FullFileName\n")); DispModuleInfo(pDbgModule); } else { OUTPUT(WSTR("ModuleName ImageBase ImageSize FullFileName\n")); if(pSyser->m_pSysDebugger!=pSyser->m_pDebugger) { if(dwType!=2) { for(CDbgModuleMap::IT Iter=pSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=pSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { if(argc>TmpIndex) { AnsiToUnicode(Iter->m_ModuleFullName,szBuffer,MAX_FN_LEN); for(int n = TmpIndex;nm_pSysDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=pSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { if(argc>TmpIndex) { AnsiToUnicode(Iter->m_ModuleFullName,szBuffer,MAX_FN_LEN); for(int n = TmpIndex;nInsertColumn(WSTR("Module Name"),95); m_pDebuggerList->InsertColumn(WSTR("Information"),200); OnRefresh(NULL); return true; } bool CDebuggerSelectForm::OnPlugin(WISP_MSG*pMsg) { HANDLE hItem; hItem = m_pDebuggerList->GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; #ifdef CODE_OS_WIN gpSyser->LoadDebugger(m_pDebuggerList->GetItemCell(hItem)->szText); #endif Destroy(); return true; } bool CDebuggerSelectForm::OnRefresh(WISP_MSG*pMsg) { m_pDebuggerList->ClearChildItem(); #ifdef CODE_OS_WIN HANDLE hItem; FPGetInfo fGetInfo; FPCreateDebugger fCreateDebugger; HMODULE hDll; FILE_FIND_DATA FileFindData; char szName[MAX_FN_LEN],szDllName[MAX_FN_LEN],szBuffer[MAX_LONG_NAME_LEN]; WCHAR szModuleName[MAX_NAME_LEN],szInfo[MAX_LONG_NAME_LEN]; GetModulePath(szName); TStrCpy(szDllName,szName); TStrCat(szDllName,"*.dll"); if(gpFileIO->FindFirstFile(szDllName,&FileFindData)) { do { TStrCpy(szDllName,szName); TStrCat(szDllName,FileFindData.FileName); if(hDll = LoadLibrary(szDllName)) { (FARPROC&)fGetInfo = GetProcAddress(hDll,"GetInfo"); (FARPROC&)fCreateDebugger = GetProcAddress(hDll,"CreateDebugger"); if(fGetInfo && fCreateDebugger) { AnsiToUnicode(FileFindData.FileName,szModuleName,MAX_NAME_LEN); hItem=m_pDebuggerList->InsertItem(szModuleName); fGetInfo(szBuffer); AnsiToUnicode(szBuffer,szInfo,MAX_LONG_NAME_LEN); m_pDebuggerList->SetItemText(hItem,1,szInfo); if(gpSyser->m_hDebuggerModule==hDll) m_pDebuggerList->SetItemTextColor(hItem,-1,SYS_COLOR[SC_LIGHT_RED]); } FreeLibrary(hDll); } }while(gpFileIO->FindNextFile(&FileFindData)); } gpFileIO->FindClose(&FileFindData); #endif return true; } ================================================ FILE: Project/Syser/Source/DebuggerSelectForm.h ================================================ #ifndef _DEBUGGER_SELECT_FORM_H_ #define _DEBUGGER_SELECT_FORM_H_ class CDebuggerSelectForm : public CWispForm { public: CDebuggerSelectForm(); ~CDebuggerSelectForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: void Popup(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnPlugin) DECLARE_WISP_MSG_EVENT(OnRefresh) public: CWispList*m_pDebuggerList; }; #endif ================================================ FILE: Project/Syser/Source/Dump.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "Dump.h" bool MakePE(CDbgModule*pDbgModule,BYTE*DumpBuffer,int Size) { int n; DWORD MaxSize; BYTE* SectionBuffer; CMemPEFile MemPEFile; CImageFile NewPEFile; NewPEFile.Create(Size,DumpBuffer); if(MemPEFile.Open(pDbgModule->m_ModuleBase,0,CDebugger::ReadMemory,gpSyser->m_pDebugger)==false) return false; MemPEFile.m_ImageBase = pDbgModule->m_ModuleBase; MaxSize = 0; for(n=0;n<=MemPEFile.m_SectCount;n++) { if(MemPEFile.m_Section[n].VirtualSize>MemPEFile.m_ImageSize || MemPEFile.m_Section[n].VirtualAddress>MemPEFile.m_ImageSize) return false; if(MemPEFile.m_Section[n].VirtualSize > MaxSize) MaxSize = MemPEFile.m_Section[n].VirtualSize; } SectionBuffer = new BYTE[MaxSize]; __try { for(n=0;n<=MemPEFile.m_SectCount;n++) { gpSyser->m_pDebugger->ReadMemory(MemPEFile.m_Section[n].VirtualAddress + MemPEFile.m_ImageBase,SectionBuffer,MemPEFile.m_Section[n].VirtualSize); NewPEFile.WriteFile(MemPEFile.m_Section[n].VirtualAddress,SectionBuffer,MemPEFile.m_Section[n].VirtualSize); MemPEFile.m_Section[n].PointerToRawData = MemPEFile.m_Section[n].VirtualAddress; MemPEFile.m_Section[n].SizeOfRawData = MemPEFile.m_Section[n].VirtualSize; } n = MemPEFile.GetLastMemAddrSection(); MemPEFile.m_PEHead.SizeOfImage = ALIGN_SIZE(MemPEFile.m_Section[n].VirtualAddress + MemPEFile.m_Section[n].VirtualSize,MP_SIZE); ///////////////////////////////////////////////////////////////////// //дPEͷ ///////////////////////////////////////////////////////////////////// int SectionOff=MemPEFile.m_PEHead.SizeOfOptionalHeader+MemPEFile.m_PEOff+0x18; NewPEFile.WriteFile(MemPEFile.m_PEOff,&MemPEFile.m_PEHead,sizeof(PE_HEAD)); NewPEFile.WriteFile(SectionOff,&MemPEFile.m_Section[1],sizeof(PE_SECTION)*MemPEFile.m_SectCount); } __except(1) { OUTPUT(WSTR("Error : Fail to dump !\n")); }; NewPEFile.Close(); delete SectionBuffer; return true; } int dump_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { char szBuffer[MAX_FN_LEN]; WCHAR wszBuffer[MAX_FN_LEN]; ULPOS Address,RDAddr; int Size,RDSize; // if(gpSyser->m_SysInfo.m_bSNPass && gpSyser->m_SysInfo.m_SNType==SN_STUDENT) // { // OUTPUT(WSTR("Student version limited\n")); // return -1; // } if(argc<3) { OUTPUT_COMMAND_USAGE; return 1; } if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return 1; } if(CALCEXP(argv[2],(ULPOS*)&Size)==false || Size==0) { OUTPUT_INVALID_PARAM; return 1; } if(argc<4) { OUTPUT(WSTR("Use default filename\n")); TStrCpy(szBuffer,"\\??\\C:\\SyserDump.bin"); } else { TStrCpy(szBuffer,"\\??\\"); UnicodeToAnsi(argv[3],&szBuffer[4],MAX_FN_LEN-4); } if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE+Size)) { OUTPUT(WSTR("Error : Not enough memory to dump this module ! Please enlarge syser heap size !\n"),argv[1]); return 1; } CSyserDumpList::IT Iter = gpSyser->m_DumpList.Append(); Iter->DumpSize = Size; Iter->DumpData = (BYTE*)gpUserHeap[SYSER_MAIN_HEAP]->Allocate(Iter->DumpSize); if(Iter->DumpData==NULL) { OUTPUT(WSTR("Error : Not enough memory to dump this module ! Please enlarge syser heap size !\n"),argv[1]); gpSyser->m_DumpList.Remove(Iter); return 1; } Iter->DumpFileName = szBuffer; ZeroMemory(Iter->DumpData,Iter->DumpSize); RDAddr = Address; if(RDAddr%MP_SIZE) { RDSize = MP_SIZE-(RDAddr%MP_SIZE); MAX_LIMIT(RDSize,Size); gpSyser->m_pDebugger->ReadMemory(RDAddr,Iter->DumpData,RDSize); Size-=RDSize; RDAddr+=RDSize; } while(Size>MP_SIZE) { gpSyser->m_pDebugger->ReadMemory(RDAddr,&Iter->DumpData[RDAddr-Address],MP_SIZE); RDAddr+=MP_SIZE; Size-=MP_SIZE; } if(Size) { gpSyser->m_pDebugger->ReadMemory(RDAddr,&Iter->DumpData[RDAddr-Address],Size); Size=0; } OUTPUT(WSTR("Address %<5>0x%08X %<1> ----- %<5>0x%08X\n"),Address,Address+Iter->DumpSize); AnsiToUnicode(Iter->DumpFileName,wszBuffer,MAX_FN_LEN); OUTPUT(WSTR("%<5>0x%X %<1>byte(s) prepare to dump to RAW file %%s\n"),Iter->DumpSize,wszBuffer); OUTPUT(WSTR("This file will be written after exiting syser !\n")); KeSetEvent(&gpSyser->m_WaitEvent,0,FALSE); return 0; } int makepe_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { char szBuffer[MAX_FN_LEN]; WCHAR wszBuffer[MAX_FN_LEN]; // if(gpSyser->m_SysInfo.m_bSNPass && gpSyser->m_SysInfo.m_SNType==SN_STUDENT) // { // OUTPUT(WSTR("Student version limited\n")); // return -1; // } if(argc<2) { OUTPUT_COMMAND_USAGE; return 1; } if(argc<3) { OUTPUT(WSTR("Use default filename\n")); TStrCpy(szBuffer,"\\??\\C:\\SyserDump.bin"); } else { TStrCpy(szBuffer,"\\??\\"); UnicodeToAnsi(argv[2],&szBuffer[4],MAX_FN_LEN-4); } CDbgModule*pDbgModule=gpSyser->m_pDebugger->GetModule(argv[1]); if(pDbgModule==NULL) { OUTPUT(WSTR("Error : Couldn't find module %s\n"),argv[1]); return 1; } if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE+pDbgModule->m_ModuleSize)) { OUTPUT(WSTR("Error : Not enough memory to dump this module ! Please enlarge syser heap size !\n"),argv[1]); return 1; } CSyserDumpList::IT Iter = gpSyser->m_DumpList.Append(); Iter->DumpSize = pDbgModule->m_ModuleSize; Iter->DumpData = (BYTE*)gpUserHeap[SYSER_MAIN_HEAP]->Allocate(Iter->DumpSize); if(Iter->DumpData==NULL) { OUTPUT(WSTR("Error : Not enough memory to dump this module ! Please enlarge syser heap size !\n"),argv[1]); return 1; } Iter->DumpFileName = szBuffer; ZeroMemory(Iter->DumpData,Iter->DumpSize); MakePE(pDbgModule,Iter->DumpData,Iter->DumpSize); AnsiToUnicode(pDbgModule->m_ModuleName,wszBuffer,MAX_FN_LEN); OUTPUT(WSTR("Module Name %%s %<1>Module Base %<5>0x%08X %<1>Module Size %<5>0x%08X\n"),wszBuffer,pDbgModule->m_ModuleBase,pDbgModule->m_ModuleSize); AnsiToUnicode(Iter->DumpFileName,wszBuffer,MAX_FN_LEN); OUTPUT(WSTR("%<5>0x%X %<1>byte(s) prepare to dump to RAW file %%s\n"),Iter->DumpSize,wszBuffer); OUTPUT(WSTR("This file will be written after exiting syser !\n")); KeSetEvent(&gpSyser->m_WaitEvent,0,FALSE); return 0; } ================================================ FILE: Project/Syser/Source/Dump.h ================================================ #ifndef _DUMP_H_ #define _DUMP_H_ DECLARE_SYSER_CMD(makepe_command); DECLARE_SYSER_CMD(dump_command); #endif ================================================ FILE: Project/Syser/Source/EHCIMouse.cpp ================================================ #include "StdAfx.h" #include "EHCIMouse.h" ================================================ FILE: Project/Syser/Source/EHCIMouse.h ================================================ #ifndef _ECHIMOUSE_H_ #define _ECHIMOUSE_H_ #endif //_ECHIMOUSE_H_ ================================================ FILE: Project/Syser/Source/ErrorCodeTable.cpp ================================================ #include "Stdafx.h" #include "ErrorCodeTable.h" ERRORCODES ErrorCodes[]={ {0,"The operation completed successfully.","ERROR_SUCCESS"}, {1,"Incorrect function.","ERROR_INVALID_FUNCTION"}, {2,"The system cannot find the file specified.","ERROR_FILE_NOT_FOUND"}, {3,"The system cannot find the path specified.","ERROR_PATH_NOT_FOUND"}, {4,"The system cannot open the file.","ERROR_TOO_MANY_OPEN_FILES"}, {5,"Access is denied.","ERROR_ACCESS_DENIED"}, {6,"The handle is invalid.","ERROR_INVALID_HANDLE"}, {7,"The storage control blocks were destroyed.","ERROR_ARENA_TRASHED"}, {8,"Not enough storage is available to process this command.","ERROR_NOT_ENOUGH_MEMORY"}, {9,"The storage control block address is invalid.","ERROR_INVALID_BLOCK"}, {10,"The environment is incorrect.","ERROR_BAD_ENVIRONMENT"}, {11,"An attempt was made to load a program with an incorrect format.","ERROR_BAD_FORMAT"}, {12,"The access code is invalid.","ERROR_INVALID_ACCESS"}, {13,"The data is invalid.","ERROR_INVALID_DATA"}, {14,"Not enough storage is available to complete this operation.","ERROR_OUTOFMEMORY"}, {15,"The system cannot find the drive specified.","ERROR_INVALID_DRIVE"}, {16,"The directory cannot be removed.","ERROR_CURRENT_DIRECTORY"}, {17,"The system cannot move the file to a different disk drive.","ERROR_NOT_SAME_DEVICE"}, {18,"There are no more files.","ERROR_NO_MORE_FILES"}, {19,"The media is write protected.","ERROR_WRITE_PROTECT"}, {20,"The system cannot find the device specified.","ERROR_BAD_UNIT"}, {21,"The device is not ready.","ERROR_NOT_READY"}, {22,"The device does not recognize the command.","ERROR_BAD_COMMAND"}, {23,"Data error (cyclic redundancy check).","ERROR_CRC"}, {24,"The program issued a command but the command length is incorrect.","ERROR_BAD_LENGTH"}, {25,"The drive cannot locate a specific area or track on the disk.","ERROR_SEEK"}, {26,"The specified disk or diskette cannot be accessed.","ERROR_NOT_DOS_DISK"}, {27,"The drive cannot find the sector requested.","ERROR_SECTOR_NOT_FOUND"}, {28,"The printer is out of paper.","ERROR_OUT_OF_PAPER"}, {29,"The system cannot write to the specified device.","ERROR_WRITE_FAULT"}, {30,"The system cannot read from the specified device.","ERROR_READ_FAULT"}, {31,"A device attached to the system is not functioning.","ERROR_GEN_FAILURE"}, {32,"The process cannot access the file because it is being used by another process.","ERROR_SHARING_VIOLATION"}, {33,"The process cannot access the file because another process has locked a portion of the file.","ERROR_LOCK_VIOLATION"}, {34,"The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1.","ERROR_WRONG_DISK"}, {36,"Too many files opened for sharing.","ERROR_SHARING_BUFFER_EXCEEDED"}, {38,"Reached the end of the file.","ERROR_HANDLE_EOF"}, {39,"The disk is full.","ERROR_HANDLE_DISK_FULL"}, {50,"The request is not supported.","ERROR_NOT_SUPPORTED"}, {51,"Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off. If Windows still cannot find the network path, contact your network administrator.","ERROR_REM_NOT_LIST"}, {52,"You were not connected because a duplicate name exists on the network. Go to System in the Control Panel to change the computer name and try again.","ERROR_DUP_NAME"}, {53,"The network path was not found.","ERROR_BAD_NETPATH"}, {54,"The network is busy.","ERROR_NETWORK_BUSY"}, {55,"The specified network resource or device is no longer available.","ERROR_DEV_NOT_EXIST"}, {56,"The network BIOS command limit has been reached.","ERROR_TOO_MANY_CMDS"}, {57,"A network adapter hardware error occurred.","ERROR_ADAP_HDW_ERR"}, {58,"The specified server cannot perform the requested operation.","ERROR_BAD_NET_RESP"}, {59,"An unexpected network error occurred.","ERROR_UNEXP_NET_ERR"}, {60,"The remote adapter is not compatible.","ERROR_BAD_REM_ADAP"}, {61,"The printer queue is full.","ERROR_PRINTQ_FULL"}, {62,"Space to store the file waiting to be printed is not available on the server.","ERROR_NO_SPOOL_SPACE"}, {63,"Your file waiting to be printed was deleted.","ERROR_PRINT_CANCELLED"}, {64,"The specified network name is no longer available.","ERROR_NETNAME_DELETED"}, {65,"Network access is denied.","ERROR_NETWORK_ACCESS_DENIED"}, {66,"The network resource type is not correct.","ERROR_BAD_DEV_TYPE"}, {67,"The network name cannot be found.","ERROR_BAD_NET_NAME"}, {68,"The name limit for the local computer network adapter card was exceeded.","ERROR_TOO_MANY_NAMES"}, {69,"The network BIOS session limit was exceeded.","ERROR_TOO_MANY_SESS"}, {70,"The remote server has been paused or is in the process of being started.","ERROR_SHARING_PAUSED"}, {71,"No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept.","ERROR_REQ_NOT_ACCEP"}, {72,"The specified printer or disk device has been paused.","ERROR_REDIR_PAUSED"}, {80,"The file exists.","ERROR_FILE_EXISTS"}, {82,"The directory or file cannot be created.","ERROR_CANNOT_MAKE"}, {83,"Fail on INT 24.","ERROR_FAIL_I24"}, {84,"Storage to process this request is not available.","ERROR_OUT_OF_STRUCTURES"}, {85,"The local device name is already in use.","ERROR_ALREADY_ASSIGNED"}, {86,"The specified network password is not correct.","ERROR_INVALID_PASSWORD"}, {87,"The parameter is incorrect.","ERROR_INVALID_PARAMETER"}, {88,"A write fault occurred on the network.","ERROR_NET_WRITE_FAULT"}, {89,"The system cannot start another process at this time.","ERROR_NO_PROC_SLOTS"}, {100,"Cannot create another system semaphore.","ERROR_TOO_MANY_SEMAPHORES"}, {101,"The exclusive semaphore is owned by another process.","ERROR_EXCL_SEM_ALREADY_OWNED"}, {102,"The semaphore is set and cannot be closed.","ERROR_SEM_IS_SET"}, {103,"The semaphore cannot be set again.","ERROR_TOO_MANY_SEM_REQUESTS"}, {104,"Cannot request exclusive semaphores at interrupt time.","ERROR_INVALID_AT_INTERRUPT_TIME"}, {105,"The previous ownership of this semaphore has ended.","ERROR_SEM_OWNER_DIED"}, {106,"Insert the diskette for drive %1.","ERROR_SEM_USER_LIMIT"}, {107,"The program stopped because an alternate diskette was not inserted.","ERROR_DISK_CHANGE"}, {108,"The disk is in use or locked by another process.","ERROR_DRIVE_LOCKED"}, {109,"The pipe has been ended.","ERROR_BROKEN_PIPE"}, {110,"The system cannot open the device or file specified.","ERROR_OPEN_FAILED"}, {111,"The file name is too long.","ERROR_BUFFER_OVERFLOW"}, {112,"There is not enough space on the disk.","ERROR_DISK_FULL"}, {113,"No more internal file identifiers available.","ERROR_NO_MORE_SEARCH_HANDLES"}, {114,"The target internal file identifier is incorrect.","ERROR_INVALID_TARGET_HANDLE"}, {117,"The IOCTL call made by the application program is not correct.","ERROR_INVALID_CATEGORY"}, {118,"The verify-on-write switch parameter value is not correct.","ERROR_INVALID_VERIFY_SWITCH"}, {119,"The system does not support the command requested.","ERROR_BAD_DRIVER_LEVEL"}, {120,"This function is not supported on this system.","ERROR_CALL_NOT_IMPLEMENTED"}, {121,"The semaphore timeout period has expired.","ERROR_SEM_TIMEOUT"}, {122,"The data area passed to a system call is too small.","ERROR_INSUFFICIENT_BUFFER"}, {123,"The filename, directory name, or volume label syntax is incorrect.","ERROR_INVALID_NAME"}, {124,"The system call level is not correct.","ERROR_INVALID_LEVEL"}, {125,"The disk has no volume label.","ERROR_NO_VOLUME_LABEL"}, {126,"The specified module could not be found.","ERROR_MOD_NOT_FOUND"}, {127,"The specified procedure could not be found.","ERROR_PROC_NOT_FOUND"}, {128,"There are no child processes to wait for.","ERROR_WAIT_NO_CHILDREN"}, {129,"The %1 application cannot be run in Win32 mode.","ERROR_CHILD_NOT_COMPLETE"}, {130,"Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O.","ERROR_DIRECT_ACCESS_HANDLE"}, {131,"An attempt was made to move the file pointer before the beginning of the file.","ERROR_NEGATIVE_SEEK"}, {132,"The file pointer cannot be set on the specified device or file.","ERROR_SEEK_ON_DEVICE"}, {133,"A JOIN or SUBST command cannot be used for a drive that contains previously joined drives.","ERROR_IS_JOIN_TARGET"}, {134,"An attempt was made to use a JOIN or SUBST command on a drive that has already been joined.","ERROR_IS_JOINED"}, {135,"An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted.","ERROR_IS_SUBSTED"}, {136,"The system tried to delete the JOIN of a drive that is not joined.","ERROR_NOT_JOINED"}, {137,"The system tried to delete the substitution of a drive that is not substituted.","ERROR_NOT_SUBSTED"}, {138,"The system tried to join a drive to a directory on a joined drive.","ERROR_JOIN_TO_JOIN"}, {139,"The system tried to substitute a drive to a directory on a substituted drive.","ERROR_SUBST_TO_SUBST"}, {140,"The system tried to join a drive to a directory on a substituted drive.","ERROR_JOIN_TO_SUBST"}, {141,"The system tried to SUBST a drive to a directory on a joined drive.","ERROR_SUBST_TO_JOIN"}, {142,"The system cannot perform a JOIN or SUBST at this time.","ERROR_BUSY_DRIVE"}, {143,"The system cannot join or substitute a drive to or for a directory on the same drive.","ERROR_SAME_DRIVE"}, {144,"The directory is not a subdirectory of the root directory.","ERROR_DIR_NOT_ROOT"}, {145,"The directory is not empty.","ERROR_DIR_NOT_EMPTY"}, {146,"The path specified is being used in a substitute.","ERROR_IS_SUBST_PATH"}, {147,"Not enough resources are available to process this command.","ERROR_IS_JOIN_PATH"}, {148,"The path specified cannot be used at this time.","ERROR_PATH_BUSY"}, {149,"An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute.","ERROR_IS_SUBST_TARGET"}, {150,"System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed.","ERROR_SYSTEM_TRACE"}, {151,"The number of specified semaphore events for DosMuxSemWait is not correct.","ERROR_INVALID_EVENT_COUNT"}, {152,"DosMuxSemWait did not execute; too many semaphores are already set.","ERROR_TOO_MANY_MUXWAITERS"}, {153,"The DosMuxSemWait list is not correct.","ERROR_INVALID_LIST_FORMAT"}, {154,"The volume label you entered exceeds the label character limit of the target file system.","ERROR_LABEL_TOO_LONG"}, {155,"Cannot create another thread.","ERROR_TOO_MANY_TCBS"}, {156,"The recipient process has refused the signal.","ERROR_SIGNAL_REFUSED"}, {157,"The segment is already discarded and cannot be locked.","ERROR_DISCARDED"}, {158,"The segment is already unlocked.","ERROR_NOT_LOCKED"}, {159,"The address for the thread ID is not correct.","ERROR_BAD_THREADID_ADDR"}, {160,"The argument string passed to DosExecPgm is not correct.","ERROR_BAD_ARGUMENTS"}, {161,"The specified path is invalid.","ERROR_BAD_PATHNAME"}, {162,"A signal is already pending.","ERROR_SIGNAL_PENDING"}, {164,"No more threads can be created in the system.","ERROR_MAX_THRDS_REACHED"}, {167,"Unable to lock a region of a file.","ERROR_LOCK_FAILED"}, {170,"The requested resource is in use.","ERROR_BUSY"}, {173,"A lock request was not outstanding for the supplied cancel region.","ERROR_CANCEL_VIOLATION"}, {174,"The file system does not support atomic changes to the lock type.","ERROR_ATOMIC_LOCKS_NOT_SUPPORTED"}, {180,"The system detected a segment number that was not correct.","ERROR_INVALID_SEGMENT_NUMBER"}, {182,"The operating system cannot run %1.","ERROR_INVALID_ORDINAL"}, {183,"Cannot create a file when that file already exists.","ERROR_ALREADY_EXISTS"}, {186,"The flag passed is not correct.","ERROR_INVALID_FLAG_NUMBER"}, {187,"The specified system semaphore name was not found.","ERROR_SEM_NOT_FOUND"}, {188,"The operating system cannot run %1.","ERROR_INVALID_STARTING_CODESEG"}, {189,"The operating system cannot run %1.","ERROR_INVALID_STACKSEG"}, {190,"The operating system cannot run %1.","ERROR_INVALID_MODULETYPE"}, {191,"Cannot run %1 in Win32 mode.","ERROR_INVALID_EXE_SIGNATURE"}, {192,"The operating system cannot run %1.","ERROR_EXE_MARKED_INVALID"}, {193,"%1 is not a valid Win32 application.","ERROR_BAD_EXE_FORMAT"}, {194,"The operating system cannot run %1.","ERROR_ITERATED_DATA_EXCEEDS_64k"}, {195,"The operating system cannot run %1.","ERROR_INVALID_MINALLOCSIZE"}, {196,"The operating system cannot run this application program.","ERROR_DYNLINK_FROM_INVALID_RING"}, {197,"The operating system is not presently configured to run this application.","ERROR_IOPL_NOT_ENABLED"}, {198,"The operating system cannot run %1.","ERROR_INVALID_SEGDPL"}, {199,"The operating system cannot run this application program.","ERROR_AUTODATASEG_EXCEEDS_64k"}, {200,"The code segment cannot be greater than or equal to 64K.","ERROR_RING2SEG_MUST_BE_MOVABLE"}, {201,"The operating system cannot run %1.","ERROR_RELOC_CHAIN_XEEDS_SEGLIM"}, {202,"The operating system cannot run %1.","ERROR_INFLOOP_IN_RELOC_CHAIN"}, {203,"The system could not find the environment option that was entered.","ERROR_ENVVAR_NOT_FOUND"}, {205,"No process in the command subtree has a signal handler.","ERROR_NO_SIGNAL_SENT"}, {206,"The filename or extension is too long.","ERROR_FILENAME_EXCED_RANGE"}, {207,"The ring 2 stack is in use.","ERROR_RING2_STACK_IN_USE"}, {208,"The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified.","ERROR_META_EXPANSION_TOO_LONG"}, {209,"The signal being posted is not correct.","ERROR_INVALID_SIGNAL_NUMBER"}, {210,"The signal handler cannot be set.","ERROR_THREAD_1_INACTIVE"}, {212,"The segment is locked and cannot be reallocated.","ERROR_LOCKED"}, {214,"Too many dynamic-link modules are attached to this program or dynamic-link module.","ERROR_TOO_MANY_MODULES"}, {215,"Cannot nest calls to LoadModule.","ERROR_NESTING_NOT_ALLOWED"}, {216,"The image file %1 is valid, but is for a machine type other than the current machine.","ERROR_EXE_MACHINE_TYPE_MISMATCH"}, {217,"The image file %1 is signed, unable to modify.","ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY"}, {218,"The image file %1 is strong signed, unable to modify.","ERRO_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY"}, {230,"The pipe state is invalid.","ERROR_BAD_PIPE"}, {231,"All pipe instances are busy.","ERROR_PIPE_BUSY"}, {232,"The pipe is being closed.","ERROR_NO_DATA"}, {233,"No process is on the other end of the pipe.","ERROR_PIPE_NOT_CONNECTED"}, {234,"More data is available.","ERROR_MORE_DATA"}, {240,"The session was canceled.","ERROR_VC_DISCONNECTED"}, {254,"The specified extended attribute name was invalid.","ERROR_INVALID_EA_NAME"}, {255,"The extended attributes are inconsistent.","ERROR_EA_LIST_INCONSISTENT"}, {258,"The wait operation timed out.","WAIT_TIMEOUT"}, {259,"No more data is available.","ERROR_NO_MORE_ITEMS"}, {266,"The copy functions cannot be used.","ERROR_CANNOT_COPY"}, {267,"The directory name is invalid.","ERROR_DIRECTORY"}, {275,"The extended attributes did not fit in the buffer.","ERROR_EAS_DIDNT_FIT"}, {276,"The extended attribute file on the mounted file system is corrupt.","ERROR_EA_FILE_CORRUPT"}, {277,"The extended attribute table file is full.","ERROR_EA_TABLE_FULL"}, {278,"The specified extended attribute handle is invalid.","ERROR_INVALID_EA_HANDLE"}, {282,"The mounted file system does not support extended attributes.","ERROR_EAS_NOT_SUPPORTED"}, {288,"Attempt to release mutex not owned by caller.","ERROR_NOT_OWNER"}, {298,"Too many posts were made to a semaphore.","ERROR_TOO_MANY_POSTS"}, {299,"Only part of a ReadProcessMemory or WriteProcessMemory request was completed.","ERROR_PARTIAL_COPY"}, {300,"The oplock request is denied.","ERROR_OPLOCK_NOT_GRANTED"}, {301,"An invalid oplock acknowledgment was received by the system.","ERROR_INVALID_OPLOCK_PROTOCOL"}, {302,"The volume is too fragmented to complete this operation.","ERROR_DISK_TOO_FRAGMENTED"}, {303,"The file cannot be opened because it is in the process of being deleted.","ERROR_DELETE_PENDING"}, {317,"The system cannot find message text for message number 0x%1 in the message file for %2.","ERROR_MR_MID_NOT_FOUND"}, {318,"The scope specified was not found.","ERROR_SCOPE_NOT_FOUND"}, {487,"Attempt to access invalid address.","ERROR_INVALID_ADDRESS"}, {534,"Arithmetic result exceeded 32 bits.","ERROR_ARITHMETIC_OVERFLOW"}, {535,"There is a process on other end of the pipe.","ERROR_PIPE_CONNECTED"}, {536,"Waiting for a process to open the other end of the pipe.","ERROR_PIPE_LISTENING"}, {537,"An error occurred in the ACPI subsystem.","ERROR_ACPI_ERROR"}, {538,"An error occurred in the ABIOS subsystem","ERROR_ABIOS_ERROR"}, {539,"A warning occurred in the WX86 subsystem.","ERROR_WX86_WARNING"}, {540,"An error occurred in the WX86 subsystem.","ERROR_WX86_ERROR"}, {541,"An attempt was made to cancel or set a timer that has an associated APC and the subject thread is not the thread that originally set the timer with an associated APC routine.","ERROR_TIMER_NOT_CANCELED"}, {542,"Unwind exception code.","ERROR_UNWIND"}, {543,"An invalid or unaligned stack was encountered during an unwind operation.","ERROR_BAD_STACK"}, {544,"An invalid unwind target was encountered during an unwind operation.","ERROR_INVALID_UNWIND_TARGET"}, {545,"Invalid Object Attributes specified to NtCreatePort or invalid Port Attributes specified to NtConnectPort","ERROR_INVALID_PORT_ATTRIBUTES"}, {546,"Length of message passed to NtRequestPort or NtRequestWaitReplyPort was longer than the maximum message allowed by the port.","ERROR_PORT_MESSAGE_TOO_LONG"}, {547,"An attempt was made to lower a quota limit below the current usage.","ERROR_INVALID_QUOTA_LOWER"}, {548,"An attempt was made to attach to a device that was already attached to another device.","ERROR_DEVICE_ALREADY_ATTACHED"}, {549,"An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references.","ERROR_INSTRUCTION_MISALIGNMENT"}, {550,"Profiling not started.","ERROR_PROFILING_NOT_STARTED"}, {551,"Profiling not stopped.","ERROR_PROFILING_NOT_STOPPED"}, {552,"The passed ACL did not contain the minimum required information.","ERROR_COULD_NOT_INTERPRET"}, {553,"The number of active profiling objects is at the maximum and no more may be started.","ERROR_PROFILING_AT_LIMIT"}, {554,"Used to indicate that an operation cannot continue without blocking for I/O.","ERROR_CANT_WAIT"}, {555,"Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL) and it was the last thread in the current process.","ERROR_CANT_TERMINATE_SELF"}, {556,"If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost, however, the filter correctly handles the exception. ","ERROR_UNEXPECTED_MM_CREATE_ERR"}, {557,"If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost, however, the filter correctly handles the exception. ","ERROR_UNEXPECTED_MM_MAP_ERROR"}, {558,"If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost, however, the filter correctly handles the exception. ","ERROR_UNEXPECTED_MM_EXTEND_ERR"}, {559,"A malformed function table was encountered during an unwind operation.","ERROR_BAD_FUNCTION_TABLE"}, {560,"Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail, which may cause a file creation attempt to fail. ","ERROR_NO_GUID_TRANSLATION"}, {561,"Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors.","ERROR_INVALID_LDT_SIZE"}, {563,"Indicates that the starting value for the LDT information was not an integral multiple of the selector size.","ERROR_INVALID_LDT_OFFSET"}, {564,"Indicates that the user supplied an invalid descriptor when trying to set up Ldt descriptors.","ERROR_INVALID_LDT_DESCRIPTOR"}, {565,"Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token may only be performed when a process has zero or one threads.","ERROR_TOO_MANY_THREADS"}, {566,"An attempt was made to operate on a thread within a specific process, but the thread specified is not in the process specified.","ERROR_THREAD_NOT_IN_PROCESS"}, {567,"Page file quota was exceeded.","ERROR_PAGEFILE_QUOTA_EXCEEDED"}, {568,"The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role.","ERROR_LOGON_SERVER_CONFLICT"}, {569,"The SAM database on a Windows Server is significantly out of synchronization with the copy on the Domain Controller. A complete synchronization is required.","ERROR_SYNCHRONIZATION_REQUIRED"}, {570,"The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines.","ERROR_NET_OPEN_FAILED"}, {571,"The I/O permissions for the process could not be changed.","ERROR_IO_PRIVILEGE_FAILED"}, {572,"The application terminated as a result of a CTRL+C.","ERROR_CONTROL_C_EXIT"}, {573,"The required system file %hs is bad or missing.","ERROR_MISSING_SYSTEMFILE"}, {574,"The exception %s (0x%08lx) occurred in the application at location 0x%08lx.","ERROR_UNHANDLED_EXCEPTION"}, {575,"The application failed to initialize properly (0x%lx). Click on OK to terminate the application.","ERROR_APP_INIT_FAILURE"}, {576,"The creation of the paging file %hs failed (%lx). The requested size was %ld.","ERROR_PAGEFILE_CREATE_FAILED"}, {578,"No paging file was specified in the system configuration.","ERROR_NO_PAGEFILE"}, {579,"A real-mode application issued a floating-point instruction and floating-point hardware is not present.","ERROR_ILLEGAL_FLOAT_CONTEXT"}, {580,"An event pair synchronization operation was performed using the thread specific client/server event pair object, but no event pair object was associated with the thread.","ERROR_NO_EVENT_PAIR"}, {581,"A Windows Server has an incorrect configuration.","ERROR_DOMAIN_CTRLR_CONFIG_ERROR"}, {582,"An illegal character was encountered. For a multi-byte character set this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE.","ERROR_ILLEGAL_CHARACTER"}, {583,"The Unicode character is not defined in the Unicode character set installed on the system.","ERROR_UNDEFINED_CHARACTER"}, {584,"The paging file cannot be created on a floppy diskette.","ERROR_FLOPPY_VOLUME"}, {585,"The system bios failed to connect a system interrupt to the device or bus for which the device is connected. ","ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT"}, {586,"This operation is only allowed for the Primary Domain Controller of the domain.","ERROR_BACKUP_CONTROLLER"}, {587,"An attempt was made to acquire a mutant such that its maximum count would have been exceeded.","ERROR_MUTANT_LIMIT_EXCEEDED"}, {588,"A volume has been accessed for which a file system driver is required that has not yet been loaded.","ERROR_FS_DRIVER_REQUIRED"}, {589,"The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable.","ERROR_CANNOT_LOAD_REGISTRY_FILE"}, {590,"An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process, or Cancel to ignore the error.","ERROR_DEBUG_ATTACH_FAILED"}, {591,"The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down. ","ERROR_SYSTEM_PROCESS_TERMINATED"}, {592,"The TDI client could not handle the data received during an indication.","ERROR_DATA_NOT_ACCEPTED"}, {593,"NTVDM encountered a hard error.","ERROR_VDM_HARD_ERROR"}, {594,"The driver %hs failed to complete a cancelled I/O request in the allotted time.","ERROR_DRIVER_CANCEL_TIMEOUT"}, {595,"An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message.","ERROR_REPLY_MESSAGE_MISMATCH"}, {596,"Windows was unable to save all the data for the file %hs. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere. ","ERROR_LOST_WRITEBEHIND_DATA"}, {597,"The parameter(s) passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window.","ERROR_CLIENT_SERVER_PARAMETERS_INVALID"}, {598,"The stream is not a tiny stream.","ERROR_NOT_TINY_STREAM"}, {599,"The request must be handled by the stack overflow code.","ERROR_STACK_OVERFLOW_READ"}, {600,"Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing onode is moved or the extent stream is converted to a large stream.","ERROR_CONVERT_TO_LARGE"}, {601,"The attempt to find the object found an object matching by ID on the volume but it is out of the scope of the handle used for the operation.","ERROR_FOUND_OUT_OF_SCOPE"}, {602,"The bucket array must be grown. Retry transaction after doing so.","ERROR_ALLOCATE_BUCKET"}, {603,"The user/kernel marshalling buffer has overflowed.","ERROR_MARSHALL_OVERFLOW"}, {604,"The supplied variant structure contains invalid data.","ERROR_INVALID_VARIANT"}, {605,"The specified buffer contains ill-formed data.","ERROR_BAD_COMPRESSION_BUFFER"}, {606,"An attempt to generate a security audit failed.","ERROR_AUDIT_FAILED"}, {607,"The timer resolution was not previously set by the current process.","ERROR_TIMER_RESOLUTION_NOT_SET"}, {608,"There is insufficient account information to log you on.","ERROR_INSUFFICIENT_LOGON_INFO"}, {609,"The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entrypoint should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly. ","ERROR_BAD_DLL_ENTRYPOINT"}, {610,"The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entrypoint should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process may operate incorrectly. ","ERROR_BAD_SERVICE_ENTRYPOINT"}, {611,"There is an IP address conflict with another system on the network","ERROR_IP_ADDRESS_CONFLICT1"}, {612,"There is an IP address conflict with another system on the network","ERROR_IP_ADDRESS_CONFLICT2"}, {613,"The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored.","ERROR_REGISTRY_QUOTA_LIMIT"}, {614,"A callback return system service cannot be executed when no callback is active.","ERROR_NO_CALLBACK_ACTIVE"}, {615,"The password provided is too short to meet the policy of your user account. Please choose a longer password. ","ERROR_PWD_TOO_SHORT"}, {616,"The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar, but potentially discovered, password. If you feel your password has been compromised then please contact your administrator immediately to have a new one assigned. ","ERROR_PWD_TOO_RECENT"}, {617,"You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Please select a password that you have not previously used. ","ERROR_PWD_HISTORY_CONFLICT"}, {618,"The specified compression format is unsupported.","ERROR_UNSUPPORTED_COMPRESSION"}, {619,"The specified hardware profile configuration is invalid.","ERROR_INVALID_HW_PROFILE"}, {620,"The specified Plug and Play registry device path is invalid.","ERROR_INVALID_PLUGPLAY_DEVICE_PATH"}, {621,"The specified quota list is internally inconsistent with its descriptor.","ERROR_QUOTA_LIST_INCONSISTENT"}, {622,"The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, please upgrade this installation using a licensed distribution of this product.","ERROR_EVALUATION_EXPIRATION"}, {623,"The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL. ","ERROR_ILLEGAL_DLL_RELOCATION"}, {624,"The application failed to initialize because the window station is shutting down.","ERROR_DLL_INIT_FAILED_LOGOFF"}, {625,"The validation process needs to continue on to the next step.","ERROR_VALIDATE_CONTINUE"}, {626,"There are no more matches for the current index enumeration.","ERROR_NO_MORE_MATCHES"}, {627,"The range could not be added to the range list because of a conflict.","ERROR_RANGE_LIST_CONFLICT"}, {628,"The server process is running under a SID different than that required by client.","ERROR_SERVER_SID_MISMATCH"}, {629,"A group marked use for deny only cannot be enabled.","ERROR_CANT_ENABLE_DENY_ONLY"}, {630,"Multiple floating point faults.","ERROR_FLOAT_MULTIPLE_FAULTS"}, {631,"Multiple floating point traps.","ERROR_FLOAT_MULTIPLE_TRAPS"}, {632,"The requested interface is not supported.","ERROR_NOINTERFACE"}, {633,"The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode.","ERROR_DRIVER_FAILED_SLEEP"}, {634,"The system file %1 has become corrupt and has been replaced.","ERROR_CORRUPT_SYSTEM_FILE"}, {635,"Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process, memory requests for some applications may be denied. For more information, see Help. ","ERROR_COMMITMENT_MINIMUM"}, {636,"A device was removed so enumeration must be restarted.","ERROR_PNP_RESTART_ENUMERATION"}, {637,"The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down.","ERROR_SYSTEM_IMAGE_BAD_SIGNATURE"}, {638,"Device will not start without a reboot.","ERROR_PNP_REBOOT_REQUIRED"}, {639,"There is not enough power to complete the requested operation.","ERROR_INSUFFICIENT_POWER"}, {641,"The system is in the process of shutting down.","ERROR_SYSTEM_SHUTDOWN"}, {642,"An attempt to remove a processes DebugPort was made, but a port was not already associated with the process.","ERROR_PORT_NOT_SET"}, {643,"This version of Windows is not compatible with the behavior version of directory forest, domain or domain controller.","ERROR_DS_VERSION_CHECK_FAILURE"}, {644,"The specified range could not be found in the range list.","ERROR_RANGE_NOT_FOUND"}, {646,"The driver was not loaded because the system is booting into safe mode.","ERROR_NOT_SAFE_MODE_DRIVER"}, {647,"The driver was not loaded because it failed it's initialization call.","ERROR_FAILED_DRIVER_ENTRY"}, {648,"The \"%hs\" encountered an error while applying power or reading the device configuration. This may be caused by a failure of your hardware or by a poor connection. ","ERROR_DEVICE_ENUMERATION_ERROR"}, {649,"The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached.","ERROR_MOUNT_POINT_NOT_RESOLVED"}, {650,"The device object parameter is either not a valid device object or is not attached to the volume specified by the file name.","ERROR_INVALID_DEVICE_OBJECT_PARAMETER"}, {651,"A Machine Check Error has occurred. Please check the system eventlog for additional information.","ERROR_MCA_OCCURED"}, {652,"There was error [%2] processing the driver database.","ERROR_DRIVER_DATABASE_ERROR"}, {653,"System hive size has exceeded its limit.","ERROR_SYSTEM_HIVE_TOO_LARGE"}, {654,"The driver could not be loaded because a previous version of the driver is still in memory.","ERROR_DRIVER_FAILED_PRIOR_UNLOAD"}, {655,"Please wait while the Volume Shadow Copy Service prepares volume %hs for hibernation.","ERROR_VOLSNAP_PREPARE_HIBERNATE"}, {656,"The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted.","ERROR_HIBERNATION_FAILURE"}, {657,"The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality. The next time you reboot the machine a dialog will be displayed giving you a chance to report this failure to Microsoft. ","ERROR_HUNG_DISPLAY_DRIVER_THREAD"}, {665,"The requested operation could not be completed due to a file system limitation.","ERROR_FILE_SYSTEM_LIMITATION"}, {668,"An assertion failure has occurred.","ERROR_ASSERTION_FAILURE"}, {669,"Application verifier has found an error in the current process.","ERROR_VERIFIER_STOP"}, {670,"WOW Assertion Error.","ERROR_WOW_ASSERTION"}, {671,"A device is missing in the system BIOS MPS table. This device will not be used. Please contact your system vendor for system BIOS update. ","ERROR_PNP_BAD_MPS_TABLE"}, {672,"A translator failed to translate resources.","ERROR_PNP_TRANSLATION_FAILED"}, {673,"A IRQ translator failed to translate resources.","ERROR_PNP_IRQ_TRANSLATION_FAILED"}, {674,"Driver %2 returned invalid ID for a child device (%3).","ERROR_PNP_INVALID_ID"}, {675,"The system debugger was awakened by an interrupt.","ERROR_WAKE_SYSTEM_DEBUGGER"}, {676,"Handles to objects have been automatically closed as a result of the requested operation.","ERROR_HANDLES_CLOSED"}, {677,"he specified access control list (ACL) contained more information than was expected.","ERROR_EXTRANEOUS_INFORMATION"}, {678,"This warning level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted. The commit has NOT been completed, but has not been rolled back either (so it may still be committed if desired). ","ERROR_RXACT_COMMIT_NECESSARY"}, {679,"The media may have changed.","ERROR_MEDIA_CHECK"}, {680,"During the translation of a global identifier (GUID) to a Windows security ID (SID), no administratively-defined GUID prefix was found. A substitute prefix was used, which will not compromise system security. However, this may provide a more restrictive access than intended. ","ERROR_GUID_SUBSTITUTION_MADE"}, {681,"The create operation stopped after reaching a symbolic link.","ERROR_STOPPED_ON_SYMLINK"}, {682,"A long jump has been executed.","ERROR_LONGJUMP"}, {683,"The Plug and Play query operation was not successful.","ERROR_PLUGPLAY_QUERY_VETOED"}, {684,"A frame consolidation has been executed.","ERROR_UNWIND_CONSOLIDATE"}, {685,"Registry hive (file): %hs was corrupted and it has been recovered. Some data might have been lost. ","ERROR_REGISTRY_HIVE_RECOVERED"}, {686,"The application is attempting to run executable code from the module %hs. This may be insecure. An alternative, %hs, is available. Should the application use the secure module %hs?","ERROR_DLL_MIGHT_BE_INSECURE"}, {687,"The application is loading executable code from the module %hs. This is secure, but may be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs?","ERROR_DLL_MIGHT_BE_INCOMPATIBLE"}, {688,"Debugger did not handle the exception.","ERROR_DBG_EXCEPTION_NOT_HANDLED"}, {689,"Debugger will reply later.","ERROR_DBG_REPLY_LATER"}, {690,"Debugger can not provide handle.","ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE"}, {691,"Debugger terminated thread.","ERROR_DBG_TERMINATE_THREAD"}, {692,"Debugger terminated process.","ERROR_DBG_TERMINATE_PROCESS"}, {693,"Debugger got control C.","ERROR_DBG_CONTROL_C"}, {694,"Debugger printed exception on control C.","ERROR_DBG_PRINTEXCEPTION_C"}, {695,"Debugger received RIP exception.","ERROR_DBG_RIPEXCEPTION"}, {696,"Debugger received control break.","ERROR_DBG_CONTROL_BREAK"}, {697,"Debugger command communication exception.","ERROR_DBG_COMMAND_EXCEPTION"}, {698,"An attempt was made to create an object and the object name already existed.","ERROR_OBJECT_NAME_EXISTS"}, {699,"A thread termination occurred while the thread was suspended. The thread was resumed, and termination proceeded.","ERROR_THREAD_WAS_SUSPENDED"}, {700,"An image file could not be mapped at the address specified in the image file. Local fixups must be performed on this image.","ERROR_IMAGE_NOT_AT_BASE"}, {701,"This informational level status indicates that a specified registry sub-tree transaction state did not yet exist and had to be created.","ERROR_RXACT_STATE_CREATED"}, {702,"A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image. An exception is raised so a debugger can load, unload or track symbols and breakpoints within these 16-bit segments. ","ERROR_SEGMENT_NOTIFICATION"}, {703,"The process cannot switch to the startup current directory %hs. Select OK to set current directory to %hs, or select CANCEL to exit. ","ERROR_BAD_CURRENT_DIRECTORY"}, {704,"To satisfy a read request, the NT fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was unable to reassign the failing area of the device. ","ERROR_FT_READ_RECOVERY_FROM_BACKUP"}, {705,"To satisfy a write request, the NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was not able to reassign the failing area of the device. ","ERROR_FT_WRITE_RECOVERY"}, {706,"The image file %hs is valid, but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load.","ERROR_IMAGE_MACHINE_TYPE_MISMATCH"}, {707,"The network transport returned partial data to its client. The remaining data will be sent later.","ERROR_RECEIVE_PARTIAL"}, {708,"The network transport returned data to its client that was marked as expedited by the remote system.","ERROR_RECEIVE_EXPEDITED"}, {709,"The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later.","ERROR_RECEIVE_PARTIAL_EXPEDITED"}, {710,"The TDI indication has completed successfully.","ERROR_EVENT_DONE"}, {711,"The TDI indication has entered the pending state.","ERROR_EVENT_PENDING"}, {712,"Checking file system on %wZ.","ERROR_CHECKING_FILE_SYSTEM"}, {714,"The specified registry key is referenced by a predefined handle.","ERROR_PREDEFINED_HANDLE"}, {715,"The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process.","ERROR_WAS_UNLOCKED"}, {717,"One of the pages to lock was already locked.","ERROR_WAS_LOCKED"}, {720,"The image file %hs is valid, but is for a machine type other than the current machine.","ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE"}, {721,"A yield execution was performed and no thread was available to run.","ERROR_NO_YIELD_PERFORMED"}, {722,"The resumable flag to a timer API was ignored.","ERROR_TIMER_RESUME_IGNORED"}, {723,"The arbiter has deferred arbitration of these resources to its parent.","ERROR_ARBITRATION_UNHANDLED"}, {724,"The device \"%hs\" has detected a CardBus card in its slot, but the firmware on this system is not configured to allow the CardBus controller to be run in CardBus mode. The operating system will currently accept only 16-bit (R2) pc-cards on this controller. ","ERROR_CARDBUS_NOT_SUPPORTED"}, {725,"The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported. ","ERROR_MP_PROCESSOR_MISMATCH"}, {726,"The system was put into hibernation.","ERROR_HIBERNATED"}, {727,"The system was resumed from hibernation.","ERROR_RESUME_HIBERNATION"}, {728,"Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3].","ERROR_FIRMWARE_UPDATED"}, {729,"A device driver is leaking locked I/O pages causing system degradation. The system has automatically enabled tracking code in order to try and catch the culprit.","ERROR_DRIVERS_LEAKING_LOCKED_PAGES"}, {730,"The system has awoken","ERROR_WAKE_SYSTEM"}, {741,"A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link.","ERROR_REPARSE"}, {742,"An open/create operation completed while an oplock break is underway.","ERROR_OPLOCK_BREAK_IN_PROGRESS"}, {743,"A new volume has been mounted by a file system.","ERROR_VOLUME_MOUNTED"}, {744,"This success level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted. The commit has now been completed.","ERROR_RXACT_COMMITTED"}, {745,"This indicates that a notify change request has been completed due to closing the handle which made the notify change request.","ERROR_NOTIFY_CLEANUP"}, {746,"An attempt was made to connect to the remote server %hs on the primary transport, but the connection failed. The computer WAS able to connect on a secondary transport. ","ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED"}, {747,"Page fault was a transition fault.","ERROR_PAGE_FAULT_TRANSITION"}, {748,"Page fault was a demand zero fault.","ERROR_PAGE_FAULT_DEMAND_ZERO"}, {749,"Page fault was a demand zero fault.","ERROR_PAGE_FAULT_COPY_ON_WRITE"}, {750,"Page fault was a demand zero fault.","ERROR_PAGE_FAULT_GUARD_PAGE"}, {751,"Page fault was satisfied by reading from a secondary storage device.","ERROR_PAGE_FAULT_PAGING_FILE"}, {752,"Cached page was locked during operation.","ERROR_CACHE_PAGE_LOCKED"}, {753,"Crash dump exists in paging file.","ERROR_CRASH_DUMP"}, {754,"Specified buffer contains all zeros.","ERROR_BUFFER_ALL_ZEROS"}, {755,"A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link.","ERROR_REPARSE_OBJECT"}, {756,"The device has succeeded a query-stop and its resource requirements have changed.","ERROR_RESOURCE_REQUIREMENTS_CHANGED"}, {757,"The translator has translated these resources into the global space and no further translations should be performed.","ERROR_TRANSLATION_COMPLETE"}, {758,"A process being terminated has no threads to terminate.","ERROR_NOTHING_TO_TERMINATE"}, {759,"The specified process is not part of a job.","ERROR_PROCESS_NOT_IN_JOB"}, {760,"The specified process is part of a job.","ERROR_PROCESS_IN_JOB"}, {761,"The system is now ready for hibernation.","ERROR_VOLSNAP_HIBERNATE_READY"}, {762,"A file system or file system filter driver has successfully completed an FsFilter operation.","ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY"}, {763,"The specified interrupt vector was already connected.","ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED"}, {764,"The specified interrupt vector is still connected.","ERROR_INTERRUPT_STILL_CONNECTED"}, {765,"An operation is blocked waiting for an oplock.","ERROR_WAIT_FOR_OPLOCK"}, {766,"Debugger handled exception.","ERROR_DBG_EXCEPTION_HANDLED"}, {767,"Debugger continued","ERROR_DBG_CONTINUE"}, {768,"An exception occurred in a user mode callback and the kernel callback frame should be removed.","ERROR_CALLBACK_POP_STACK"}, {769,"Compression is disabled for this volume.","ERROR_COMPRESSION_DISABLED"}, {770,"The data provider cannot fetch backwards through a result set.","ERROR_CANTFETCHBACKWARDS"}, {771,"The data provider cannot scroll backwards through a result set.","ERROR_CANTSCROLLBACKWARDS"}, {772,"The data provider requires that previously fetched data is released before asking for more data.","ERROR_ROWSNOTRELEASED"}, {773,"The data provider was not able to interpret the flags set for a column binding in an accessor.","ERROR_BAD_ACCESSOR_FLAGS"}, {774,"One or more errors occurred while processing the request.","ERROR_ERRORS_ENCOUNTERED"}, {775,"The implementation is not capable of performing the request.","ERROR_NOT_CAPABLE"}, {776,"The client of a component requested an operation which is not valid given the state of the component instance.","ERROR_REQUEST_OUT_OF_SEQUENCE"}, {777,"A version number could not be parsed.","ERROR_VERSION_PARSE_ERROR"}, {778,"The iterator's start position is invalid.","ERROR_BADSTARTPOSITION"}, {994,"Access to the extended attribute was denied.","ERROR_EA_ACCESS_DENIED"}, {995,"The I/O operation has been aborted because of either a thread exit or an application request.","ERROR_OPERATION_ABORTED"}, {996,"Overlapped I/O event is not in a signaled state.","ERROR_IO_INCOMPLETE"}, {997,"Overlapped I/O operation is in progress.","ERROR_IO_PENDING"}, {998,"Invalid access to memory location.","ERROR_NOACCESS"}, {999,"Error performing inpage operation.","ERROR_SWAPERROR"}, {1001,"Recursion too deep; the stack overflowed.","ERROR_STACK_OVERFLOW"}, {1002,"The window cannot act on the sent message.","ERROR_INVALID_MESSAGE"}, {1003,"Cannot complete this function.","ERROR_CAN_NOT_COMPLETE"}, {1004,"Invalid flags.","ERROR_INVALID_FLAGS"}, {1005,"The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted.","ERROR_UNRECOGNIZED_VOLUME"}, {1006,"The volume for a file has been externally altered so that the opened file is no longer valid.","ERROR_FILE_INVALID"}, {1007,"The requested operation cannot be performed in full-screen mode.","ERROR_FULLSCREEN_MODE"}, {1008,"An attempt was made to reference a token that does not exist.","ERROR_NO_TOKEN"}, {1009,"The configuration registry database is corrupt.","ERROR_BADDB"}, {1010,"The configuration registry key is invalid.","ERROR_BADKEY"}, {1011,"The configuration registry key could not be opened.","ERROR_CANTOPEN"}, {1012,"The configuration registry key could not be read.","ERROR_CANTREAD"}, {1013,"The configuration registry key could not be written.","ERROR_CANTWRITE"}, {1014,"One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful.","ERROR_REGISTRY_RECOVERED"}, {1015,"The registry is corrupted. The structure of one of the files containing registry data is corrupted, or the system's memory image of the file is corrupted, or the file could not be recovered because the alternate copy or log was absent or corrupted.","ERROR_REGISTRY_CORRUPT"}, {1016,"An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry.","ERROR_REGISTRY_IO_FAILED"}, {1017,"The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format.","ERROR_NOT_REGISTRY_FILE"}, {1018,"Illegal operation attempted on a registry key that has been marked for deletion.","ERROR_KEY_DELETED"}, {1019,"System could not allocate the required space in a registry log.","ERROR_NO_LOG_SPACE"}, {1020,"Cannot create a symbolic link in a registry key that already has subkeys or values.","ERROR_KEY_HAS_CHILDREN"}, {1021,"Cannot create a stable subkey under a volatile parent key.","ERROR_CHILD_MUST_BE_VOLATILE"}, {1022,"A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes.","ERROR_NOTIFY_ENUM_DIR"}, {1051,"A stop control has been sent to a service that other running services are dependent on.","ERROR_DEPENDENT_SERVICES_RUNNING"}, {1052,"The requested control is not valid for this service.","ERROR_INVALID_SERVICE_CONTROL"}, {1053,"The service did not respond to the start or control request in a timely fashion.","ERROR_SERVICE_REQUEST_TIMEOUT"}, {1054,"A thread could not be created for the service.","ERROR_SERVICE_NO_THREAD"}, {1055,"The service database is locked.","ERROR_SERVICE_DATABASE_LOCKED"}, {1056,"An instance of the service is already running.","ERROR_SERVICE_ALREADY_RUNNING"}, {1057,"The account name is invalid or does not exist, or the password is invalid for the account name specified.","ERROR_INVALID_SERVICE_ACCOUNT"}, {1058,"The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.","ERROR_SERVICE_DISABLED"}, {1059,"Circular service dependency was specified.","ERROR_CIRCULAR_DEPENDENCY"}, {1060,"The specified service does not exist as an installed service.","ERROR_SERVICE_DOES_NOT_EXIST"}, {1061,"The service cannot accept control messages at this time.","ERROR_SERVICE_CANNOT_ACCEPT_CTRL"}, {1062,"The service has not been started.","ERROR_SERVICE_NOT_ACTIVE"}, {1063,"The service process could not connect to the service controller.","ERROR_FAILED_SERVICE_CONTROLLER_CONNECT"}, {1064,"An exception occurred in the service when handling the control request.","ERROR_EXCEPTION_IN_SERVICE"}, {1065,"The database specified does not exist.","ERROR_DATABASE_DOES_NOT_EXIST"}, {1066,"The service has returned a service-specific error code.","ERROR_SERVICE_SPECIFIC_ERROR"}, {1067,"The process terminated unexpectedly.","ERROR_PROCESS_ABORTED"}, {1068,"The dependency service or group failed to start.","ERROR_SERVICE_DEPENDENCY_FAIL"}, {1069,"The service did not start due to a logon failure.","ERROR_SERVICE_LOGON_FAILED"}, {1070,"After starting, the service hung in a start-pending state.","ERROR_SERVICE_START_HANG"}, {1071,"The specified service database lock is invalid.","ERROR_INVALID_SERVICE_LOCK"}, {1072,"The specified service has been marked for deletion.","ERROR_SERVICE_MARKED_FOR_DELETE"}, {1073,"The specified service already exists.","ERROR_SERVICE_EXISTS"}, {1074,"The system is currently running with the last-known-good configuration.","ERROR_ALREADY_RUNNING_LKG"}, {1075,"The dependency service does not exist or has been marked for deletion.","ERROR_SERVICE_DEPENDENCY_DELETED"}, {1076,"The current boot has already been accepted for use as the last-known-good control set.","ERROR_BOOT_ALREADY_ACCEPTED"}, {1077,"No attempts to start the service have been made since the last boot.","ERROR_SERVICE_NEVER_STARTED"}, {1078,"The name is already in use as either a service name or a service display name.","ERROR_DUPLICATE_SERVICE_NAME"}, {1079,"The account specified for this service is different from the account specified for other services running in the same process.","ERROR_DIFFERENT_SERVICE_ACCOUNT"}, {1080,"Failure actions can only be set for Win32 services, not for drivers.","ERROR_CANNOT_DETECT_DRIVER_FAILURE"}, {1081,"This service runs in the same process as the service control manager. Therefore, the service control manager cannot take action if this service's process terminates unexpectedly.","ERROR_CANNOT_DETECT_PROCESS_ABORT"}, {1082,"No recovery program has been configured for this service.","ERROR_NO_RECOVERY_PROGRAM"}, {1083,"The executable program that this service is configured to run in does not implement the service.","ERROR_SERVICE_NOT_IN_EXE"}, {1084,"This service cannot be started in Safe Mode.","ERROR_NOT_SAFEBOOT_SERVICE"}, {1100,"The physical end of the tape has been reached.","ERROR_END_OF_MEDIA"}, {1101,"A tape access reached a filemark.","ERROR_FILEMARK_DETECTED"}, {1102,"The beginning of the tape or a partition was encountered.","ERROR_BEGINNING_OF_MEDIA"}, {1103,"A tape access reached the end of a set of files.","ERROR_SETMARK_DETECTED"}, {1104,"No more data is on the tape.","ERROR_NO_DATA_DETECTED"}, {1105,"Tape could not be partitioned.","ERROR_PARTITION_FAILURE"}, {1106,"When accessing a new tape of a multivolume partition, the current block size is incorrect.","ERROR_INVALID_BLOCK_LENGTH"}, {1107,"Tape partition information could not be found when loading a tape.","ERROR_DEVICE_NOT_PARTITIONED"}, {1108,"Unable to lock the media eject mechanism.","ERROR_UNABLE_TO_LOCK_MEDIA"}, {1109,"Unable to unload the media.","ERROR_UNABLE_TO_UNLOAD_MEDIA"}, {1110,"The media in the drive may have changed.","ERROR_MEDIA_CHANGED"}, {1111,"The I/O bus was reset.","ERROR_BUS_RESET"}, {1112,"No media in drive.","ERROR_NO_MEDIA_IN_DRIVE"}, {1113,"No mapping for the Unicode character exists in the target multi-byte code page.","ERROR_NO_UNICODE_TRANSLATION"}, {1114,"A dynamic link library (DLL) initialization routine failed.","ERROR_DLL_INIT_FAILED"}, {1115,"A system shutdown is in progress.","ERROR_SHUTDOWN_IN_PROGRESS"}, {1116,"Unable to abort the system shutdown because no shutdown was in progress.","ERROR_NO_SHUTDOWN_IN_PROGRESS"}, {1117,"The request could not be performed because of an I/O device error.","ERROR_IO_DEVICE"}, {1118,"No serial device was successfully initialized. The serial driver will unload.","ERROR_SERIAL_NO_DEVICE"}, {1119,"Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened.","ERROR_IRQ_BUSY"}, {1120,"A serial I/O operation was completed by another write to the serial port. (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)","ERROR_MORE_WRITES"}, {1121,"A serial I/O operation completed because the timeout period expired. (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.)","ERROR_COUNTER_TIMEOUT"}, {1122,"No ID address mark was found on the floppy disk.","ERROR_FLOPPY_ID_MARK_NOT_FOUND"}, {1123,"Mismatch between the floppy disk sector ID field and the floppy disk controller track address.","ERROR_FLOPPY_WRONG_CYLINDER"}, {1124,"The floppy disk controller reported an error that is not recognized by the floppy disk driver.","ERROR_FLOPPY_UNKNOWN_ERROR"}, {1125,"The floppy disk controller returned inconsistent results in its registers.","ERROR_FLOPPY_BAD_REGISTERS"}, {1126,"While accessing the hard disk, a recalibrate operation failed, even after retries.","ERROR_DISK_RECALIBRATE_FAILED"}, {1127,"While accessing the hard disk, a disk operation failed even after retries.","ERROR_DISK_OPERATION_FAILED"}, {1128,"While accessing the hard disk, a disk controller reset was needed, but even that failed.","ERROR_DISK_RESET_FAILED"}, {1129,"Physical end of tape encountered.","ERROR_EOM_OVERFLOW"}, {1130,"Not enough server storage is available to process this command.","ERROR_NOT_ENOUGH_SERVER_MEMORY"}, {1131,"A potential deadlock condition has been detected.","ERROR_POSSIBLE_DEADLOCK"}, {1132,"The base address or the file offset specified does not have the proper alignment.","ERROR_MAPPED_ALIGNMENT"}, {1140,"An attempt to change the system power state was vetoed by another application or driver.","ERROR_SET_POWER_STATE_VETOED"}, {1141,"The system BIOS failed an attempt to change the system power state.","ERROR_SET_POWER_STATE_FAILED"}, {1142,"An attempt was made to create more links on a file than the file system supports.","ERROR_TOO_MANY_LINKS"}, {1150,"The specified program requires a newer version of Windows.","ERROR_OLD_WIN_VERSION"}, {1151,"The specified program is not a Windows or MS-DOS program.","ERROR_APP_WRONG_OS"}, {1152,"Cannot start more than one instance of the specified program.","ERROR_SINGLE_INSTANCE_APP"}, {1153,"The specified program was written for an earlier version of Windows.","ERROR_RMODE_APP"}, {1154,"One of the library files needed to run this application is damaged.","ERROR_INVALID_DLL"}, {1155,"No application is associated with the specified file for this operation.","ERROR_NO_ASSOCIATION"}, {1156,"An error occurred in sending the command to the application.","ERROR_DDE_FAIL"}, {1157,"One of the library files needed to run this application cannot be found.","ERROR_DLL_NOT_FOUND"}, {1158,"The current process has used all of its system allowance of handles for Window Manager objects.","ERROR_NO_MORE_USER_HANDLES"}, {1159,"The message can be used only with synchronous operations.","ERROR_MESSAGE_SYNC_ONLY"}, {1160,"The indicated source element has no media.","ERROR_SOURCE_ELEMENT_EMPTY"}, {1161,"The indicated destination element already contains media.","ERROR_DESTINATION_ELEMENT_FULL"}, {1162,"The indicated element does not exist.","ERROR_ILLEGAL_ELEMENT_ADDRESS"}, {1163,"The indicated element is part of a magazine that is not present.","ERROR_MAGAZINE_NOT_PRESENT"}, {1164,"The indicated device requires reinitialization due to hardware errors.","ERROR_DEVICE_REINITIALIZATION_NEEDED"}, {1165,"The device has indicated that cleaning is required before further operations are attempted.","ERROR_DEVICE_REQUIRES_CLEANING"}, {1166,"The device has indicated that its door is open.","ERROR_DEVICE_DOOR_OPEN"}, {1167,"The device is not connected.","ERROR_DEVICE_NOT_CONNECTED"}, {1168,"Element not found.","ERROR_NOT_FOUND"}, {1169,"There was no match for the specified key in the index.","ERROR_NO_MATCH"}, {1170,"The property set specified does not exist on the object.","ERROR_SET_NOT_FOUND"}, {1171,"The point passed to GetMouseMovePointsEx is not in the buffer.","ERROR_POINT_NOT_FOUND"}, {1172,"The tracking (workstation) service is not running.","ERROR_NO_TRACKING_SERVICE"}, {1173,"The Volume ID could not be found.","ERROR_NO_VOLUME_ID"}, {1175,"Unable to remove the file to be replaced.","ERROR_UNABLE_TO_REMOVE_REPLACED"}, {1176,"Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name.","ERROR_UNABLE_TO_MOVE_REPLACEMENT"}, {1177,"Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name.","ERROR_UNABLE_TO_MOVE_REPLACEMENT_2"}, {1178,"The volume change journal is being deleted.","ERROR_JOURNAL_DELETE_IN_PROGRESS"}, {1179,"The volume change journal is not active.","ERROR_JOURNAL_NOT_ACTIVE"}, {1180,"A file was found, but it may not be the correct file.","ERROR_POTENTIAL_FILE_FOUND"}, {1181,"The journal entry has been deleted from the journal.","ERROR_JOURNAL_ENTRY_DELETED"}, {1200,"The specified device name is invalid.","ERROR_BAD_DEVICE"}, {1201,"The device is not currently connected but it is a remembered connection.","ERROR_CONNECTION_UNAVAIL"}, {1202,"The local device name has a remembered connection to another network resource.","ERROR_DEVICE_ALREADY_REMEMBERED"}, {1203,"The network path was either typed incorrectly, does not exist, or the network provider is not currently available. Please try retyping the path or contact your network administrator.","ERROR_NO_NET_OR_BAD_PATH"}, {1204,"The specified network provider name is invalid.","ERROR_BAD_PROVIDER"}, {1205,"Unable to open the network connection profile.","ERROR_CANNOT_OPEN_PROFILE"}, {1206,"The network connection profile is corrupted.","ERROR_BAD_PROFILE"}, {1207,"Cannot enumerate a noncontainer.","ERROR_NOT_CONTAINER"}, {1208,"An extended error has occurred.","ERROR_EXTENDED_ERROR"}, {1209,"The format of the specified group name is invalid.","ERROR_INVALID_GROUPNAME"}, {1210,"The format of the specified computer name is invalid.","ERROR_INVALID_COMPUTERNAME"}, {1211,"The format of the specified event name is invalid.","ERROR_INVALID_EVENTNAME"}, {1212,"The format of the specified domain name is invalid.","ERROR_INVALID_DOMAINNAME"}, {1213,"The format of the specified service name is invalid.","ERROR_INVALID_SERVICENAME"}, {1214,"The format of the specified network name is invalid.","ERROR_INVALID_NETNAME"}, {1215,"The format of the specified share name is invalid.","ERROR_INVALID_SHARENAME"}, {1216,"The format of the specified password is invalid.","ERROR_INVALID_PASSWORDNAME"}, {1217,"The format of the specified message name is invalid.","ERROR_INVALID_MESSAGENAME"}, {1218,"The format of the specified message destination is invalid.","ERROR_INVALID_MESSAGEDEST"}, {1219,"Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again.","ERROR_SESSION_CREDENTIAL_CONFLICT"}, {1220,"An attempt was made to establish a session to a network server, but there are already too many sessions established to that server.","ERROR_REMOTE_SESSION_LIMIT_EXCEEDED"}, {1221,"The workgroup or domain name is already in use by another computer on the network.","ERROR_DUP_DOMAINNAME"}, {1222,"The network is not present or not started.","ERROR_NO_NETWORK"}, {1223,"The operation was canceled by the user.","ERROR_CANCELLED"}, {1224,"The requested operation cannot be performed on a file with a user-mapped section open.","ERROR_USER_MAPPED_FILE"}, {1225,"The remote system refused the network connection.","ERROR_CONNECTION_REFUSED"}, {1226,"The network connection was gracefully closed.","ERROR_GRACEFUL_DISCONNECT"}, {1227,"The network transport endpoint already has an address associated with it.","ERROR_ADDRESS_ALREADY_ASSOCIATED"}, {1228,"An address has not yet been associated with the network endpoint.","ERROR_ADDRESS_NOT_ASSOCIATED"}, {1229,"An operation was attempted on a nonexistent network connection.","ERROR_CONNECTION_INVALID"}, {1230,"An invalid operation was attempted on an active network connection.","ERROR_CONNECTION_ACTIVE"}, {1231,"The network location cannot be reached. For information about network troubleshooting, see Windows Help.","ERROR_NETWORK_UNREACHABLE"}, {1232,"The network location cannot be reached. For information about network troubleshooting, see Windows Help.","ERROR_HOST_UNREACHABLE"}, {1233,"The network location cannot be reached. For information about network troubleshooting, see Windows Help.","ERROR_PROTOCOL_UNREACHABLE"}, {1234,"No service is operating at the destination network endpoint on the remote system.","ERROR_PORT_UNREACHABLE"}, {1235,"The request was aborted.","ERROR_REQUEST_ABORTED"}, {1236,"The network connection was aborted by the local system.","ERROR_CONNECTION_ABORTED"}, {1237,"The operation could not be completed. A retry should be performed.","ERROR_RETRY"}, {1238,"A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached.","ERROR_CONNECTION_COUNT_LIMIT"}, {1239,"Attempting to log in during an unauthorized time of day for this account.","ERROR_LOGIN_TIME_RESTRICTION"}, {1240,"The account is not authorized to log in from this station.","ERROR_LOGIN_WKSTA_RESTRICTION"}, {1241,"The network address could not be used for the operation requested.","ERROR_INCORRECT_ADDRESS"}, {1242,"The service is already registered.","ERROR_ALREADY_REGISTERED"}, {1243,"The specified service does not exist.","ERROR_SERVICE_NOT_FOUND"}, {1244,"The operation being requested was not performed because the user has not been authenticated.","ERROR_NOT_AUTHENTICATED"}, {1245,"The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist.","ERROR_NOT_LOGGED_ON"}, {1246,"Continue with work in progress.","ERROR_CONTINUE"}, {1247,"An attempt was made to perform an initialization operation when initialization has already been completed.","ERROR_ALREADY_INITIALIZED"}, {1248,"No more local devices.","ERROR_NO_MORE_DEVICES"}, {1249,"The specified site does not exist.","ERROR_NO_SUCH_SITE"}, {1250,"A domain controller with the specified name already exists.","ERROR_DOMAIN_CONTROLLER_EXISTS"}, {1251,"This operation is supported only when you are connected to the server.","ERROR_ONLY_IF_CONNECTED"}, {1252,"The group policy framework should call the extension even if there are no changes.","ERROR_OVERRIDE_NOCHANGES"}, {1253,"The specified user does not have a valid profile.","ERROR_BAD_USER_PROFILE"}, {1254,"This operation is not supported on a computer running Windows Server 2003 for Small Business Server.","ERROR_NOT_SUPPORTED_ON_SBS"}, {1255,"The server machine is shutting down.","ERROR_SERVER_SHUTDOWN_IN_PROGRESS"}, {1256,"The remote system is not available. For information about network troubleshooting, see Windows Help.","ERROR_HOST_DOWN"}, {1257,"The security identifier provided is not from an account domain.","ERROR_NON_ACCOUNT_SID"}, {1258,"The security identifier provided does not have a domain component.","ERROR_NON_DOMAIN_SID"}, {1259,"AppHelp dialog canceled thus preventing the application from starting.","ERROR_APPHELP_BLOCK"}, {1260,"Windows cannot open this program because it has been prevented by a software restriction policy. For more information, open Event Viewer or contact your system administrator.","ERROR_ACCESS_DISABLED_BY_POLICY"}, {1261,"A program attempt to use an invalid register value. Normally caused by an uninitialized register. This error is Itanium specific.","ERROR_REG_NAT_CONSUMPTION"}, {1262,"The share is currently offline or does not exist.","ERROR_CSCSHARE_OFFLINE"}, {1263,"The kerberos protocol encountered an error while validating the KDC certificate during smartcard logon.","ERROR_PKINIT_FAILURE"}, {1264,"The kerberos protocol encountered an error while attempting to utilize the smartcard subsystem.","ERROR_SMARTCARD_SUBSYSTEM_FAILURE"}, {1265,"The system detected a possible attempt to compromise security. Please ensure that you can contact the server that authenticated you.","ERROR_DOWNGRADE_DETECTED"}, {1266,"The smartcard certificate used for authentication has been revoked. Please contact your system administrator. There may be additional information in the event log.","SEC_E_SMARTCARD_CERT_REVOKED"}, {1267,"An untrusted certificate authority was detected while processing the smartcard certificate used for authentication. Please contact your system administrator.","SEC_E_ISSUING_CA_UNTRUSTED"}, {1268,"The revocation status of the smartcard certificate used for authentication could not be determined. Please contact your system administrator.","SEC_E_REVOCATION_OFFLINE_C"}, {1269,"The smartcard certificate used for authentication was not trusted. Please contact your system administrator.","SEC_E_PKINIT_CLIENT_FAILUR"}, {1270,"The smartcard certificate used for authentication has expired. Please contact your system administrator.","SEC_E_SMARTCARD_CERT_EXPIRED"}, {1271,"The machine is locked and cannot be shut down without the force option.","ERROR_MACHINE_LOCKED"}, {1273,"An application-defined callback gave invalid data when called.","ERROR_CALLBACK_SUPPLIED_INVALID_DATA"}, {1274,"The group policy framework should call the extension in the synchronous foreground policy refresh.","ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED"}, {1275,"This driver has been blocked from loading.","ERROR_DRIVER_BLOCKED"}, {1276,"A dynamic link library (DLL) referenced a module that was neither a DLL nor the process's executable image.","ERROR_INVALID_IMPORT_OF_NON_DLL"}, {1277,"Windows cannot open this program since it has been disabled.","ERROR_ACCESS_DISABLED_WEBBLADE"}, {1278,"Windows cannot open this program because the license enforcement system has been tampered with or become corrupted.","ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER"}, {1279,"A transaction recovery failed.","ERROR_RECOVERY_FAILURE"}, {1280,"The current thread has already been converted to a fiber.","ERROR_ALREADY_FIBER"}, {1281,"The current thread has already been converted from a fiber.","ERROR_ALREADY_THREAD"}, {1282,"The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.","ERROR_STACK_BUFFER_OVERRUN"}, {1283,"Data present in one of the parameters is more than the function can operate on.","ERROR_PARAMETER_QUOTA_EXCEEDED"}, {1284,"An attempt to do an operation on a debug object failed because the object is in the process of being deleted.","ERROR_DEBUGGER_INACTIVE"}, {1285,"An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed.","ERROR_DELAY_LOAD_FAILED"}, {1286,"%1 is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator.","ERROR_VDM_DISALLOWED"}, {1287,"Insufficient information exists to identify the cause of failure.","ERROR_UNIDENTIFIED_ERROR"}, {1288,"An invalid budget or period parameter was specified.","ERROR_INVALID_BANDWIDTH_PARAMETERS"}, {1289,"An attempt was made to join a thread to a reserve whose affinity did not intersect the reserve affinity or an attempt was made to associate a process with a reserve whose affinity did not intersect the reserve affinity.","ERROR_AFFINITY_NOT_COMPATIBLE"}, {1290,"An attempt was made to join a thread to a reserve which was already joined to another reserve.","ERROR_THREAD_ALREADY_IN_RESERVE"}, {1291,"An attempt was made to disjoin a thread from a reserve, but the thread was not joined to the reserve.","ERROR_THREAD_NOT_IN_RESERVE"}, {1292,"An attempt was made to disjoin a thread from a reserve whose process is associated with a reserve.","ERROR_THREAD_PROCESS_IN_RESERVE"}, {1293,"An attempt was made to associate a process with a reserve that was already associated with a reserve.","ERROR_PROCESS_ALREADY_IN_RESERVE"}, {1294,"An attempt was made to disassociate a process from a reserve, but the process did not have an associated reserve.","ERROR_PROCESS_NOT_IN_RESERVE"}, {1295,"An attempt was made to associate a process with a reserve, but the process contained thread joined to a reserve.","ERROR_PROCESS_THREADS_IN_RESERVE"}, {1296,"An attempt was made to set the affinity of a thread or a process, but the thread or process was joined or associated with a reserve.","ERROR_AFFINITY_NOT_SET_IN_RESERVE"}, {1297,"An operation attempted to exceed an implementation-defined limit.","ERROR_IMPLEMENTATION_LIMIT"}, {1298,"The requested object is for internal DS operations only.","ERROR_DS_CACHE_ONLY"}, {1300,"Not all privileges referenced are assigned to the caller.","ERROR_NOT_ALL_ASSIGNED"}, {1301,"Some mapping between account names and security IDs was not done.","ERROR_SOME_NOT_MAPPED"}, {1302,"No system quota limits are specifically set for this account.","ERROR_NO_QUOTAS_FOR_ACCOUNT"}, {1303,"No encryption key is available. A well-known encryption key was returned.","ERROR_LOCAL_USER_SESSION_KEY"}, {1304,"The password is too complex to be converted to a LAN Manager password. The LAN Manager password returned is a NULL string.","ERROR_NULL_LM_PASSWORD"}, {1305,"The revision level is unknown.","ERROR_UNKNOWN_REVISION"}, {1306,"Indicates two revision levels are incompatible.","ERROR_REVISION_MISMATCH"}, {1307,"This security ID may not be assigned as the owner of this object.","ERROR_INVALID_OWNER"}, {1308,"This security ID may not be assigned as the primary group of an object.","ERROR_INVALID_PRIMARY_GROUP"}, {1309,"An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client.","ERROR_NO_IMPERSONATION_TOKEN"}, {1310,"The group may not be disabled.","ERROR_CANT_DISABLE_MANDATORY"}, {1311,"There are currently no logon servers available to service the logon request.","ERROR_NO_LOGON_SERVERS"}, {1312,"A specified logon session does not exist. It may already have been terminated.","ERROR_NO_SUCH_LOGON_SESSION"}, {1313,"A specified privilege does not exist.","ERROR_NO_SUCH_PRIVILEGE"}, {1314,"A required privilege is not held by the client.","ERROR_PRIVILEGE_NOT_HELD"}, {1315,"The name provided is not a properly formed account name.","ERROR_INVALID_ACCOUNT_NAME"}, {1316,"The specified user already exists.","ERROR_USER_EXISTS"}, {1317,"The specified user does not exist.","ERROR_NO_SUCH_USER"}, {1318,"The specified group already exists.","ERROR_GROUP_EXISTS"}, {1319,"The specified group does not exist.","ERROR_NO_SUCH_GROUP"}, {1320,"Either the specified user account is already a member of the specified group, or the specified group cannot be deleted because it contains a member.","ERROR_MEMBER_IN_GROUP"}, {1321,"The specified user account is not a member of the specified group account.","ERROR_MEMBER_NOT_IN_GROUP"}, {1322,"The last remaining administration account cannot be disabled or deleted.","ERROR_LAST_ADMIN"}, {1323,"Unable to update the password. The value provided as the current password is incorrect.","ERROR_WRONG_PASSWORD"}, {1324,"Unable to update the password. The value provided for the new password contains values that are not allowed in passwords.","ERROR_ILL_FORMED_PASSWORD"}, {1325,"Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirement of the domain.","ERROR_PASSWORD_RESTRICTION"}, {1326,"Logon failure: unknown user name or bad password.","ERROR_LOGON_FAILURE"}, {1327,"Logon failure: user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced.","ERROR_ACCOUNT_RESTRICTION"}, {1328,"Logon failure: account logon time restriction violation.","ERROR_INVALID_LOGON_HOURS"}, {1329,"Logon failure: user not allowed to log on to this computer.","ERROR_INVALID_WORKSTATION"}, {1330,"Logon failure: the specified account password has expired.","ERROR_PASSWORD_EXPIRED"}, {1331,"Logon failure: account currently disabled.","ERROR_ACCOUNT_DISABLED"}, {1332,"No mapping between account names and security IDs was done.","ERROR_NONE_MAPPED"}, {1333,"Too many local user identifiers (LUIDs) were requested at one time.","ERROR_TOO_MANY_LUIDS_REQUESTED"}, {1334,"No more local user identifiers (LUIDs) are available.","ERROR_LUIDS_EXHAUSTED"}, {1335,"The subauthority part of a security ID is invalid for this particular use.","ERROR_INVALID_SUB_AUTHORITY"}, {1336,"The access control list (ACL) structure is invalid.","ERROR_INVALID_ACL"}, {1337,"The security ID structure is invalid.","ERROR_INVALID_SID"}, {1338,"The security descriptor structure is invalid.","ERROR_INVALID_SECURITY_DESCR"}, {1340,"The inherited access control list (ACL) or access control entry (ACE) could not be built.","ERROR_BAD_INHERITANCE_ACL"}, {1341,"The server is currently disabled.","ERROR_SERVER_DISABLED"}, {1342,"The server is currently enabled.","ERROR_SERVER_NOT_DISABLED"}, {1343,"The value provided was an invalid value for an identifier authority.","ERROR_INVALID_ID_AUTHORITY"}, {1344,"No more memory is available for security information updates.","ERROR_ALLOTTED_SPACE_EXCEEDED"}, {1345,"The specified attributes are invalid, or incompatible with the attributes for the group as a whole.","ERROR_INVALID_GROUP_ATTRIBUTES"}, {1346,"Either a required impersonation level was not provided, or the provided impersonation level is invalid.","ERROR_BAD_IMPERSONATION_LEVEL"}, {1347,"Cannot open an anonymous level security token.","ERROR_CANT_OPEN_ANONYMOUS"}, {1348,"The validation information class requested was invalid.","ERROR_BAD_VALIDATION_CLASS"}, {1349,"The type of the token is inappropriate for its attempted use.","ERROR_BAD_TOKEN_TYPE"}, {1350,"Unable to perform a security operation on an object that has no associated security.","ERROR_NO_SECURITY_ON_OBJECT"}, {1351,"Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied.","ERROR_CANT_ACCESS_DOMAIN_INFO"}, {1352,"The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation.","ERROR_INVALID_SERVER_STATE"}, {1353,"The domain was in the wrong state to perform the security operation.","ERROR_INVALID_DOMAIN_STATE"}, {1354,"This operation is only allowed for the Primary Domain Controller of the domain.","ERROR_INVALID_DOMAIN_ROLE"}, {1355,"The specified domain either does not exist or could not be contacted.","ERROR_NO_SUCH_DOMAIN"}, {1356,"The specified domain already exists.","ERROR_DOMAIN_EXISTS"}, {1357,"An attempt was made to exceed the limit on the number of domains per server.","ERROR_DOMAIN_LIMIT_EXCEEDED"}, {1358,"Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk.","ERROR_INTERNAL_DB_CORRUPTION"}, {1359,"An internal error occurred.","ERROR_INTERNAL_ERROR"}, {1360,"Generic access types were contained in an access mask which should already be mapped to nongeneric types.","ERROR_GENERIC_NOT_MAPPED"}, {1361,"A security descriptor is not in the right format (absolute or self-relative).","ERROR_BAD_DESCRIPTOR_FORMAT"}, {1362,"The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process.","ERROR_NOT_LOGON_PROCESS"}, {1363,"Cannot start a new logon session with an ID that is already in use.","ERROR_LOGON_SESSION_EXISTS"}, {1364,"A specified authentication package is unknown.","ERROR_NO_SUCH_PACKAGE"}, {1365,"The logon session is not in a state that is consistent with the requested operation.","ERROR_BAD_LOGON_SESSION_STATE"}, {1366,"The logon session ID is already in use.","ERROR_LOGON_SESSION_COLLISION"}, {1367,"A logon request contained an invalid logon type value.","ERROR_INVALID_LOGON_TYPE"}, {1368,"Unable to impersonate using a named pipe until data has been read from that pipe.","ERROR_CANNOT_IMPERSONATE"}, {1369,"The transaction state of a registry subtree is incompatible with the requested operation.","ERROR_RXACT_INVALID_STATE"}, {1370,"An internal security database corruption has been encountered.","ERROR_RXACT_COMMIT_FAILURE"}, {1371,"Cannot perform this operation on built-in accounts.","ERROR_SPECIAL_ACCOUNT"}, {1372,"Cannot perform this operation on this built-in special group.","ERROR_SPECIAL_GROUP"}, {1373,"Cannot perform this operation on this built-in special user.","ERROR_SPECIAL_USER"}, {1374,"The user cannot be removed from a group because the group is currently the user's primary group.","ERROR_MEMBERS_PRIMARY_GROUP"}, {1375,"The token is already in use as a primary token.","ERROR_TOKEN_ALREADY_IN_USE"}, {1376,"The specified local group does not exist.","ERROR_NO_SUCH_ALIAS"}, {1377,"The specified account name is not a member of the local group.","ERROR_MEMBER_NOT_IN_ALIAS"}, {1378,"The specified account name is already a member of the local group.","ERROR_MEMBER_IN_ALIAS"}, {1379,"The specified local group already exists.","ERROR_ALIAS_EXISTS"}, {1380,"Logon failure: the user has not been granted the requested logon type at this computer.","ERROR_LOGON_NOT_GRANTED"}, {1381,"The maximum number of secrets that may be stored in a single system has been exceeded.","ERROR_TOO_MANY_SECRETS"}, {1382,"The length of a secret exceeds the maximum length allowed.","ERROR_SECRET_TOO_LONG"}, {1383,"The local security authority database contains an internal inconsistency.","ERROR_INTERNAL_DB_ERROR"}, {1384,"During a logon attempt, the user's security context accumulated too many security IDs.","ERROR_TOO_MANY_CONTEXT_IDS"}, {1385,"Logon failure: the user has not been granted the requested logon type at this computer.","ERROR_LOGON_TYPE_NOT_GRANTED"}, {1386,"A cross-encrypted password is necessary to change a user password.","ERROR_NT_CROSS_ENCRYPTION_REQUIRED"}, {1387,"A new member could not be added to or removed from the local group because the member does not exist.","ERROR_NO_SUCH_MEMBER"}, {1388,"A new member could not be added to a local group because the member has the wrong account type.","ERROR_INVALID_MEMBER"}, {1389,"Too many security IDs have been specified.","ERROR_TOO_MANY_SIDS"}, {1390,"A cross-encrypted password is necessary to change this user password.","ERROR_LM_CROSS_ENCRYPTION_REQUIRED"}, {1391,"Indicates an ACL contains no inheritable components.","ERROR_NO_INHERITANCE"}, {1392,"The file or directory is corrupted and unreadable.","ERROR_FILE_CORRUPT"}, {1393,"The disk structure is corrupted and unreadable.","ERROR_DISK_CORRUPT"}, {1394,"There is no user session key for the specified logon session.","ERROR_NO_USER_SESSION_KEY"}, {1395,"The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept.","ERROR_LICENSE_QUOTA_EXCEEDED"}, {1396,"Logon Failure: The target account name is incorrect.","ERROR_WRONG_TARGET_NAME"}, {1397,"Mutual Authentication failed. The server's password is out of date at the domain controller.","ERROR_MUTUAL_AUTH_FAILED"}, {1398,"There is a time and/or date difference between the client and server.","ERROR_TIME_SKEW"}, {1399,"This operation cannot be performed on the current domain.","ERROR_CURRENT_DOMAIN_NOT_ALLOWED"}, {1400,"Invalid window handle.","ERROR_INVALID_WINDOW_HANDLE"}, {1401,"Invalid menu handle.","ERROR_INVALID_MENU_HANDLE"}, {1402,"Invalid cursor handle.","ERROR_INVALID_CURSOR_HANDLE"}, {1403,"Invalid accelerator table handle.","ERROR_INVALID_ACCEL_HANDLE"}, {1404,"Invalid hook handle.","ERROR_INVALID_HOOK_HANDLE"}, {1405,"Invalid handle to a multiple-window position structure.","ERROR_INVALID_DWP_HANDLE"}, {1406,"Cannot create a top-level child window.","ERROR_TLW_WITH_WSCHILD"}, {1407,"Cannot find window class.","ERROR_CANNOT_FIND_WND_CLASS"}, {1408,"Invalid window; it belongs to other thread.","ERROR_WINDOW_OF_OTHER_THREAD"}, {1409,"Hot key is already registered.","ERROR_HOTKEY_ALREADY_REGISTERED"}, {1410,"Class already exists.","ERROR_CLASS_ALREADY_EXISTS"}, {1411,"Class does not exist.","ERROR_CLASS_DOES_NOT_EXIST"}, {1412,"Class still has open windows.","ERROR_CLASS_HAS_WINDOWS"}, {1413,"Invalid index.","ERROR_INVALID_INDEX"}, {1414,"Invalid icon handle.","ERROR_INVALID_ICON_HANDLE"}, {1415,"Using private DIALOG window words.","ERROR_PRIVATE_DIALOG_INDEX"}, {1416,"The list box identifier was not found.","ERROR_LISTBOX_ID_NOT_FOUND"}, {1417,"No wildcards were found.","ERROR_NO_WILDCARD_CHARACTERS"}, {1418,"Thread does not have a clipboard open.","ERROR_CLIPBOARD_NOT_OPEN"}, {1419,"Hot key is not registered.","ERROR_HOTKEY_NOT_REGISTERED"}, {1420,"The window is not a valid dialog window.","ERROR_WINDOW_NOT_DIALOG"}, {1421,"Control ID not found.","ERROR_CONTROL_ID_NOT_FOUND"}, {1422,"Invalid message for a combo box because it does not have an edit control.","ERROR_INVALID_COMBOBOX_MESSAGE"}, {1423,"The window is not a combo box.","ERROR_WINDOW_NOT_COMBOBOX"}, {1424,"Height must be less than 256.","ERROR_INVALID_EDIT_HEIGHT"}, {1425,"Invalid device context (DC) handle.","ERROR_DC_NOT_FOUND"}, {1426,"Invalid hook procedure type.","ERROR_INVALID_HOOK_FILTER"}, {1427,"Invalid hook procedure.","ERROR_INVALID_FILTER_PROC"}, {1428,"Cannot set nonlocal hook without a module handle.","ERROR_HOOK_NEEDS_HMOD"}, {1429,"This hook procedure can only be set globally.","ERROR_GLOBAL_ONLY_HOOK"}, {1430,"The journal hook procedure is already installed.","ERROR_JOURNAL_HOOK_SET"}, {1431,"The hook procedure is not installed.","ERROR_HOOK_NOT_INSTALLED"}, {1432,"Invalid message for single-selection list box.","ERROR_INVALID_LB_MESSAGE"}, {1433,"LB_SETCOUNT sent to non-lazy list box.","ERROR_SETCOUNT_ON_BAD_LB"}, {1434,"This list box does not support tab stops.","ERROR_LB_WITHOUT_TABSTOPS"}, {1435,"Cannot destroy object created by another thread.","ERROR_DESTROY_OBJECT_OF_OTHER_THREAD"}, {1436,"Child windows cannot have menus.","ERROR_CHILD_WINDOW_MENU"}, {1437,"The window does not have a system menu.","ERROR_NO_SYSTEM_MENU"}, {1438,"Invalid message box style.","ERROR_INVALID_MSGBOX_STYLE"}, {1439,"Invalid system-wide (SPI_*) parameter.","ERROR_INVALID_SPI_VALUE"}, {1440,"Screen already locked.","ERROR_SCREEN_ALREADY_LOCKED"}, {1441,"All handles to windows in a multiple-window position structure must have the same parent.","ERROR_HWNDS_HAVE_DIFF_PARENT"}, {1442,"The window is not a child window.","ERROR_NOT_CHILD_WINDOW"}, {1443,"Invalid GW_* command.","ERROR_INVALID_GW_COMMAND"}, {1444,"Invalid thread identifier.","ERROR_INVALID_THREAD_ID"}, {1445,"Cannot process a message from a window that is not a multiple document interface (MDI) window.","ERROR_NON_MDICHILD_WINDOW"}, {1446,"Popup menu already active.","ERROR_POPUP_ALREADY_ACTIVE"}, {1447,"The window does not have scroll bars.","ERROR_NO_SCROLLBARS"}, {1448,"Scroll bar range cannot be greater than MAXLONG.","ERROR_INVALID_SCROLLBAR_RANGE"}, {1449,"Cannot show or remove the window in the way specified.","ERROR_INVALID_SHOWWIN_COMMAND"}, {1450,"Insufficient system resources exist to complete the requested service.","ERROR_NO_SYSTEM_RESOURCES"}, {1451,"Insufficient system resources exist to complete the requested service.","ERROR_NONPAGED_SYSTEM_RESOURCES"}, {1452,"Insufficient system resources exist to complete the requested service.","ERROR_PAGED_SYSTEM_RESOURCES"}, {1453,"Insufficient quota to complete the requested service.","ERROR_WORKING_SET_QUOTA"}, {1454,"Insufficient quota to complete the requested service.","ERROR_PAGEFILE_QUOTA"}, {1455,"The paging file is too small for this operation to complete.","ERROR_COMMITMENT_LIMIT"}, {1456,"A menu item was not found.","ERROR_MENU_ITEM_NOT_FOUND"}, {1457,"Invalid keyboard layout handle.","ERROR_INVALID_KEYBOARD_HANDLE"}, {1458,"Hook type not allowed.","ERROR_HOOK_TYPE_NOT_ALLOWED"}, {1459,"This operation requires an interactive window station.","ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION"}, {1460,"This operation returned because the timeout period expired.","ERROR_TIMEOUT"}, {1461,"Invalid monitor handle.","ERROR_INVALID_MONITOR_HANDLE"}, {1500,"The event log file is corrupted.","ERROR_EVENTLOG_FILE_CORRUPT"}, {1501,"No event log file could be opened, so the event logging service did not start.","ERROR_EVENTLOG_CANT_START"}, {1502,"The event log file is full.","ERROR_LOG_FILE_FULL"}, {1503,"The event log file has changed between read operations.","ERROR_EVENTLOG_FILE_CHANGED"}, {1601,"The Windows Installer service could not be accessed. This can occur if you are running Windows in safe mode, or if the Windows Installer is not correctly installed. Contact your support personnel for assistance.","ERROR_INSTALL_SERVICE_FAILURE"}, {1602,"User cancelled installation.","ERROR_INSTALL_USEREXIT"}, {1603,"Fatal error during installation.","ERROR_INSTALL_FAILURE"}, {1604,"Installation suspended, incomplete.","ERROR_INSTALL_SUSPEND"}, {1605,"This action is only valid for products that are currently installed.","ERROR_UNKNOWN_PRODUCT"}, {1606,"Feature ID not registered.","ERROR_UNKNOWN_FEATURE"}, {1607,"Component ID not registered.","ERROR_UNKNOWN_COMPONENT"}, {1608,"Unknown property.","ERROR_UNKNOWN_PROPERTY"}, {1609,"Handle is in an invalid state.","ERROR_INVALID_HANDLE_STATE"}, {1610,"The configuration data for this product is corrupt. Contact your support personnel.","ERROR_BAD_CONFIGURATION"}, {1611,"Component qualifier not present.","ERROR_INDEX_ABSENT"}, {1612,"The installation source for this product is not available. Verify that the source exists and that you can access it.","ERROR_INSTALL_SOURCE_ABSENT"}, {1613,"This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service.","ERROR_INSTALL_PACKAGE_VERSION"}, {1614,"Product is uninstalled.","ERROR_PRODUCT_UNINSTALLED"}, {1615,"SQL query syntax invalid or unsupported.","ERROR_BAD_QUERY_SYNTAX"}, {1616,"Record field does not exist.","ERROR_INVALID_FIELD"}, {1617,"The device has been removed.","ERROR_DEVICE_REMOVED"}, {1618,"Another installation is already in progress. Complete that installation before proceeding with this install.","ERROR_INSTALL_ALREADY_RUNNING"}, {1619,"This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package.","ERROR_INSTALL_PACKAGE_OPEN_FAILED"}, {1620,"This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package.","ERROR_INSTALL_PACKAGE_INVALID"}, {1621,"There was an error starting the Windows Installer service user interface. Contact your support personnel.","ERROR_INSTALL_UI_FAILURE"}, {1622,"Error opening installation log file. Verify that the specified log file location exists and that you can write to it.","ERROR_INSTALL_LOG_FAILURE"}, {1623,"The language of this installation package is not supported by your system.","ERROR_INSTALL_LANGUAGE_UNSUPPORTED"}, {1624,"Error applying transforms. Verify that the specified transform paths are valid.","ERROR_INSTALL_TRANSFORM_FAILURE"}, {1625,"This installation is forbidden by system policy. Contact your system administrator.","ERROR_INSTALL_PACKAGE_REJECTED"}, {1626,"Function could not be executed.","ERROR_FUNCTION_NOT_CALLED"}, {1627,"Function failed during execution.","ERROR_FUNCTION_FAILED"}, {1628,"Invalid or unknown table specified.","ERROR_INVALID_TABLE"}, {1629,"Data supplied is of wrong type.","ERROR_DATATYPE_MISMATCH"}, {1630,"Data of this type is not supported.","ERROR_UNSUPPORTED_TYPE"}, {1631,"The Windows Installer service failed to start. Contact your support personnel.","ERROR_CREATE_FAILED"}, {1632,"The Temp folder is on a drive that is full or inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder.","ERROR_INSTALL_TEMP_UNWRITABLE"}, {1633,"This installation package is not supported by this processor type. Contact your product vendor.","ERROR_INSTALL_PLATFORM_UNSUPPORTED"}, {1634,"Component not used on this computer.","ERROR_INSTALL_NOTUSED"}, {1635,"This patch package could not be opened. Verify that the patch package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer patch package.","ERROR_PATCH_PACKAGE_OPEN_FAILED"}, {1636,"This patch package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer patch package.","ERROR_PATCH_PACKAGE_INVALID"}, {1637,"This patch package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service.","ERROR_PATCH_PACKAGE_UNSUPPORTED"}, {1638,"Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.","ERROR_PRODUCT_VERSION"}, {1639,"Invalid command line argument. Consult the Windows Installer SDK for detailed command line help.","ERROR_INVALID_COMMAND_LINE"}, {1640,"Only administrators have permission to add, remove, or configure server software during a Terminal Services remote session. If you want to install or configure software on the server, contact your network administrator.","ERROR_INSTALL_REMOTE_DISALLOWED"}, {1641,"The requested operation completed successfully. The system will be restarted so the changes can take effect.","ERROR_SUCCESS_REBOOT_INITIATED"}, {1642,"The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.","ERROR_PATCH_TARGET_NOT_FOUND"}, {1643,"The patch package is not permitted by software restriction policy.","ERROR_PATCH_PACKAGE_REJECTED"}, {1644,"One or more customizations are not permitted by software restriction policy.","ERROR_INSTALL_TRANSFORM_REJECTED"}, {1645,"The Windows Installer does not permit installation from a Remote Desktop Connection.","ERROR_INSTALL_REMOTE_PROHIBITED"}, {1700,"The string binding is invalid.","RPC_S_INVALID_STRING_BINDING"}, {1701,"The binding handle is not the correct type.","RPC_S_WRONG_KIND_OF_BINDING"}, {1702,"The binding handle is invalid.","RPC_S_INVALID_BINDING"}, {1703,"The RPC protocol sequence is not supported.","RPC_S_PROTSEQ_NOT_SUPPORTED"}, {1704,"The RPC protocol sequence is invalid.","RPC_S_INVALID_RPC_PROTSEQ"}, {1705,"The string universal unique identifier (UUID) is invalid.","RPC_S_INVALID_STRING_UUID"}, {1706,"The endpoint format is invalid.","RPC_S_INVALID_ENDPOINT_FORMAT"}, {1707,"The network address is invalid.","RPC_S_INVALID_NET_ADDR"}, {1708,"No endpoint was found.","RPC_S_NO_ENDPOINT_FOUND"}, {1709,"The timeout value is invalid.","RPC_S_INVALID_TIMEOUT"}, {1710,"The object universal unique identifier (UUID) was not found.","RPC_S_OBJECT_NOT_FOUND"}, {1711,"The object universal unique identifier (UUID) has already been registered.","RPC_S_ALREADY_REGISTERED"}, {1712,"The type universal unique identifier (UUID) has already been registered.","RPC_S_TYPE_ALREADY_REGISTERED"}, {1713,"The RPC server is already listening.","RPC_S_ALREADY_LISTENING"}, {1714,"No protocol sequences have been registered.","RPC_S_NO_PROTSEQS_REGISTERED"}, {1715,"The RPC server is not listening.","RPC_S_NOT_LISTENING"}, {1716,"The manager type is unknown.","RPC_S_UNKNOWN_MGR_TYPE"}, {1717,"The interface is unknown.","RPC_S_UNKNOWN_IF"}, {1718,"There are no bindings.","RPC_S_NO_BINDINGS"}, {1719,"There are no protocol sequences.","RPC_S_NO_PROTSEQS"}, {1720,"The endpoint cannot be created.","RPC_S_CANT_CREATE_ENDPOINT"}, {1721,"Not enough resources are available to complete this operation.","RPC_S_OUT_OF_RESOURCES"}, {1722,"The RPC server is unavailable.","RPC_S_SERVER_UNAVAILABLE"}, {1723,"The RPC server is too busy to complete this operation.","RPC_S_SERVER_TOO_BUSY"}, {1724,"The network options are invalid.","RPC_S_INVALID_NETWORK_OPTIONS"}, {1725,"There are no remote procedure calls active on this thread.","RPC_S_NO_CALL_ACTIVE"}, {1726,"The remote procedure call failed.","RPC_S_CALL_FAILED"}, {1727,"The remote procedure call failed and did not execute.","RPC_S_CALL_FAILED_DNE"}, {1728,"A remote procedure call (RPC) protocol error occurred.","RPC_S_PROTOCOL_ERROR"}, {1730,"The transfer syntax is not supported by the RPC server.","RPC_S_UNSUPPORTED_TRANS_SYN"}, {1732,"The universal unique identifier (UUID) type is not supported.","RPC_S_UNSUPPORTED_TYPE"}, {1733,"The tag is invalid.","RPC_S_INVALID_TAG"}, {1734,"The array bounds are invalid.","RPC_S_INVALID_BOUND"}, {1735,"The binding does not contain an entry name.","RPC_S_NO_ENTRY_NAME"}, {1736,"The name syntax is invalid.","RPC_S_INVALID_NAME_SYNTAX"}, {1737,"The name syntax is not supported.","RPC_S_UNSUPPORTED_NAME_SYNTAX"}, {1739,"No network address is available to use to construct a universal unique identifier (UUID).","RPC_S_UUID_NO_ADDRESS"}, {1740,"The endpoint is a duplicate.","RPC_S_DUPLICATE_ENDPOINT"}, {1741,"The authentication type is unknown.","RPC_S_UNKNOWN_AUTHN_TYPE"}, {1742,"The maximum number of calls is too small.","RPC_S_MAX_CALLS_TOO_SMALL"}, {1743,"The string is too long.","RPC_S_STRING_TOO_LONG"}, {1744,"The RPC protocol sequence was not found.","RPC_S_PROTSEQ_NOT_FOUND"}, {1745,"The procedure number is out of range.","RPC_S_PROCNUM_OUT_OF_RANGE"}, {1746,"The binding does not contain any authentication information.","RPC_S_BINDING_HAS_NO_AUTH"}, {1747,"The authentication service is unknown.","RPC_S_UNKNOWN_AUTHN_SERVICE"}, {1748,"The authentication level is unknown.","RPC_S_UNKNOWN_AUTHN_LEVEL"}, {1749,"The security context is invalid.","RPC_S_INVALID_AUTH_IDENTITY"}, {1750,"The authorization service is unknown.","RPC_S_UNKNOWN_AUTHZ_SERVICE"}, {1751,"The entry is invalid.","EPT_S_INVALID_ENTRY"}, {1752,"The server endpoint cannot perform the operation.","EPT_S_CANT_PERFORM_OP"}, {1753,"There are no more endpoints available from the endpoint mapper.","EPT_S_NOT_REGISTERED"}, {1754,"No interfaces have been exported.","RPC_S_NOTHING_TO_EXPORT"}, {1755,"The entry name is incomplete.","RPC_S_INCOMPLETE_NAME"}, {1756,"The version option is invalid.","RPC_S_INVALID_VERS_OPTION"}, {1757,"There are no more members.","RPC_S_NO_MORE_MEMBERS"}, {1758,"There is nothing to unexport.","RPC_S_NOT_ALL_OBJS_UNEXPORTED"}, {1759,"The interface was not found.","RPC_S_INTERFACE_NOT_FOUND"}, {1760,"The entry already exists.","RPC_S_ENTRY_ALREADY_EXISTS"}, {1761,"The entry is not found.","RPC_S_ENTRY_NOT_FOUND"}, {1762,"The name service is unavailable.","RPC_S_NAME_SERVICE_UNAVAILABLE"}, {1763,"The network address family is invalid.","RPC_S_INVALID_NAF_ID"}, {1764,"The requested operation is not supported.","RPC_S_CANNOT_SUPPORT"}, {1765,"No security context is available to allow impersonation.","RPC_S_NO_CONTEXT_AVAILABLE"}, {1766,"An internal error occurred in a remote procedure call (RPC).","RPC_S_INTERNAL_ERROR"}, {1767,"The RPC server attempted an integer division by zero.","RPC_S_ZERO_DIVIDE"}, {1768,"An addressing error occurred in the RPC server.","RPC_S_ADDRESS_ERROR"}, {1769,"A floating-point operation at the RPC server caused a division by zero.","RPC_S_FP_DIV_ZERO"}, {1770,"A floating-point underflow occurred at the RPC server.","RPC_S_FP_UNDERFLOW"}, {1771,"A floating-point overflow occurred at the RPC server.","RPC_S_FP_OVERFLOW"}, {1772,"The list of RPC servers available for the binding of auto handles has been exhausted.","RPC_X_NO_MORE_ENTRIES"}, {1773,"Unable to open the character translation table file.","RPC_X_SS_CHAR_TRANS_OPEN_FAIL"}, {1774,"The file containing the character translation table has fewer than 512 bytes.","RPC_X_SS_CHAR_TRANS_SHORT_FILE"}, {1775,"A null context handle was passed from the client to the host during a remote procedure call.","RPC_X_SS_IN_NULL_CONTEXT"}, {1777,"The context handle changed during a remote procedure call.","RPC_X_SS_CONTEXT_DAMAGED"}, {1778,"The binding handles passed to a remote procedure call do not match.","RPC_X_SS_HANDLES_MISMATCH"}, {1779,"The stub is unable to get the remote procedure call handle.","RPC_X_SS_CANNOT_GET_CALL_HANDLE"}, {1780,"A null reference pointer was passed to the stub.","RPC_X_NULL_REF_POINTER"}, {1781,"The enumeration value is out of range.","RPC_X_ENUM_VALUE_OUT_OF_RANGE"}, {1782,"The byte count is too small.","RPC_X_BYTE_COUNT_TOO_SMALL"}, {1783,"The stub received bad data.","RPC_X_BAD_STUB_DATA"}, {1784,"The supplied user buffer is not valid for the requested operation.","ERROR_INVALID_USER_BUFFER"}, {1785,"The disk media is not recognized. It may not be formatted.","ERROR_UNRECOGNIZED_MEDIA"}, {1786,"The workstation does not have a trust secret.","ERROR_NO_TRUST_LSA_SECRET"}, {1787,"The security database on the server does not have a computer account for this workstation trust relationship.","ERROR_NO_TRUST_SAM_ACCOUNT"}, {1788,"The trust relationship between the primary domain and the trusted domain failed.","ERROR_TRUSTED_DOMAIN_FAILURE"}, {1789,"The trust relationship between this workstation and the primary domain failed.","ERROR_TRUSTED_RELATIONSHIP_FAILURE"}, {1790,"The network logon failed.","ERROR_TRUST_FAILURE"}, {1791,"A remote procedure call is already in progress for this thread.","RPC_S_CALL_IN_PROGRESS"}, {1792,"An attempt was made to logon, but the network logon service was not started.","ERROR_NETLOGON_NOT_STARTED"}, {1793,"The user's account has expired.","ERROR_ACCOUNT_EXPIRED"}, {1794,"The redirector is in use and cannot be unloaded.","ERROR_REDIRECTOR_HAS_OPEN_HANDLES"}, {1795,"The specified printer driver is already installed.","ERROR_PRINTER_DRIVER_ALREADY_INSTALLED"}, {1796,"The specified port is unknown.","ERROR_UNKNOWN_PORT"}, {1797,"The printer driver is unknown.","ERROR_UNKNOWN_PRINTER_DRIVER"}, {1798,"The print processor is unknown.","ERROR_UNKNOWN_PRINTPROCESSOR"}, {1799,"The specified separator file is invalid.","ERROR_INVALID_SEPARATOR_FILE"}, {1800,"The specified priority is invalid.","ERROR_INVALID_PRIORITY"}, {1801,"The printer name is invalid.","ERROR_INVALID_PRINTER_NAME"}, {1802,"The printer already exists.","ERROR_PRINTER_ALREADY_EXISTS"}, {1803,"The printer command is invalid.","ERROR_INVALID_PRINTER_COMMAND"}, {1804,"The specified datatype is invalid.","ERROR_INVALID_DATATYPE"}, {1805,"The environment specified is invalid.","ERROR_INVALID_ENVIRONMENT"}, {1806,"There are no more bindings.","RPC_S_NO_MORE_BINDINGS"}, {1807,"The account used is an interdomain trust account. Use your global user account or local user account to access this server.","ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT"}, {1808,"The account used is a computer account. Use your global user account or local user account to access this server.","ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT"}, {1809,"The account used is a server trust account. Use your global user account or local user account to access this server.","ERROR_NOLOGON_SERVER_TRUST_ACCOUNT"}, {1810,"The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain.","ERROR_DOMAIN_TRUST_INCONSISTENT"}, {1811,"The server is in use and cannot be unloaded.","ERROR_SERVER_HAS_OPEN_HANDLES"}, {1812,"The specified image file did not contain a resource section.","ERROR_RESOURCE_DATA_NOT_FOUND"}, {1813,"The specified resource type cannot be found in the image file.","ERROR_RESOURCE_TYPE_NOT_FOUND"}, {1814,"The specified resource name cannot be found in the image file.","ERROR_RESOURCE_NAME_NOT_FOUND"}, {1815,"The specified resource language ID cannot be found in the image file.","ERROR_RESOURCE_LANG_NOT_FOUND"}, {1816,"Not enough quota is available to process this command.","ERROR_NOT_ENOUGH_QUOTA"}, {1817,"No interfaces have been registered.","RPC_S_NO_INTERFACES"}, {1818,"The remote procedure call was cancelled.","RPC_S_CALL_CANCELLED"}, {1819,"The binding handle does not contain all required information.","RPC_S_BINDING_INCOMPLETE"}, {1820,"A communications failure occurred during a remote procedure call.","RPC_S_COMM_FAILURE"}, {1821,"The requested authentication level is not supported.","RPC_S_UNSUPPORTED_AUTHN_LEVEL"}, {1822,"No principal name registered.","RPC_S_NO_PRINC_NAME"}, {1823,"The error specified is not a valid Windows RPC error code.","RPC_S_NOT_RPC_ERROR"}, {1824,"A UUID that is valid only on this computer has been allocated.","RPC_S_UUID_LOCAL_ONLY"}, {1825,"A security package specific error occurred.","RPC_S_SEC_PKG_ERROR"}, {1826,"Thread is not canceled.","RPC_S_NOT_CANCELLED"}, {1827,"Invalid operation on the encoding/decoding handle.","RPC_X_INVALID_ES_ACTION"}, {1828,"Incompatible version of the serializing package.","RPC_X_WRONG_ES_VERSION"}, {1829,"Incompatible version of the RPC stub.","RPC_X_WRONG_STUB_VERSION"}, {1830,"The RPC pipe object is invalid or corrupted.","RPC_X_INVALID_PIPE_OBJECT"}, {1831,"An invalid operation was attempted on an RPC pipe object.","RPC_X_WRONG_PIPE_ORDER"}, {1832,"Unsupported RPC pipe version.","RPC_X_WRONG_PIPE_VERSION"}, {1898,"The group member was not found.","RPC_S_GROUP_MEMBER_NOT_FOUND"}, {1899,"The endpoint mapper database entry could not be created.","EPT_S_CANT_CREATE"}, {1900,"The object universal unique identifier (UUID) is the nil UUID.","RPC_S_INVALID_OBJECT"}, {1901,"The specified time is invalid.","ERROR_INVALID_TIME"}, {1902,"The specified form name is invalid.","ERROR_INVALID_FORM_NAME"}, {1903,"The specified form size is invalid.","ERROR_INVALID_FORM_SIZE"}, {1904,"The specified printer handle is already being waited on","ERROR_ALREADY_WAITING"}, {1905,"The specified printer has been deleted.","ERROR_PRINTER_DELETED"}, {1906,"The state of the printer is invalid.","ERROR_INVALID_PRINTER_STATE"}, {1907,"The user's password must be changed before logging on the first time.","ERROR_PASSWORD_MUST_CHANGE"}, {1908,"Could not find the domain controller for this domain.","ERROR_DOMAIN_CONTROLLER_NOT_FOUND"}, {1909,"The referenced account is currently locked out and may not be used to log on.","ERROR_ACCOUNT_LOCKED_OUT"}, {1910,"The object exporter specified was not found.","OR_INVALID_OXID"}, {1911,"The object specified was not found.","OR_INVALID_OID"}, {1912,"The object resolver set specified was not found.","OR_INVALID_SET"}, {1913,"Some data remains to be sent in the request buffer.","RPC_S_SEND_INCOMPLETE"}, {1914,"Invalid asynchronous remote procedure call handle.","RPC_S_INVALID_ASYNC_HANDLE"}, {1915,"Invalid asynchronous RPC call handle for this operation.","RPC_S_INVALID_ASYNC_CALL"}, {1916,"The RPC pipe object has already been closed.","RPC_X_PIPE_CLOSED"}, {1917,"The RPC call completed before all pipes were processed.","RPC_X_PIPE_DISCIPLINE_ERROR"}, {1918,"No more data is available from the RPC pipe.","RPC_X_PIPE_EMPTY"}, {1919,"No site name is available for this machine.","ERROR_NO_SITENAME"}, {1920,"The file cannot be accessed by the system.","ERROR_CANT_ACCESS_FILE"}, {1921,"The name of the file cannot be resolved by the system.","ERROR_CANT_RESOLVE_FILENAME"}, {1922,"The entry is not of the expected type.","RPC_S_ENTRY_TYPE_MISMATCH"}, {1923,"Not all object UUIDs could be exported to the specified entry.","RPC_S_NOT_ALL_OBJS_EXPORTED"}, {1924,"Interface could not be exported to the specified entry.","RPC_S_INTERFACE_NOT_EXPORTED"}, {1925,"The specified profile entry could not be added.","RPC_S_PROFILE_NOT_ADDED"}, {1926,"The specified profile element could not be added.","RPC_S_PRF_ELT_NOT_ADDED"}, {1927,"The specified profile element could not be removed.","RPC_S_PRF_ELT_NOT_REMOVED"}, {1928,"The group element could not be added.","RPC_S_GRP_ELT_NOT_ADDED"}, {1929,"The group element could not be removed.","RPC_S_GRP_ELT_NOT_REMOVED"}, {1930,"The printer driver is not compatible with a policy enabled on your computer that blocks NT 4.0 drivers.","ERROR_KM_DRIVER_BLOCKED"}, {1931,"The context has expired and can no longer be used.","ERROR_CONTEXT_EXPIRED"}, {1932,"The current user's delegated trust creation quota has been exceeded.","ERROR_PER_USER_TRUST_QUOTA_EXCEEDED"}, {1933,"The total delegated trust creation quota has been exceeded.","ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED"}, {1934,"The current user's delegated trust deletion quota has been exceeded.","ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED"}, {2000,"The pixel format is invalid.","ERROR_INVALID_PIXEL_FORMAT"}, {2001,"The specified driver is invalid.","ERROR_BAD_DRIVER"}, {2002,"The window style or class attribute is invalid for this operation.","ERROR_INVALID_WINDOW_STYLE"}, {2003,"The requested metafile operation is not supported.","ERROR_METAFILE_NOT_SUPPORTED"}, {2004,"The requested transformation operation is not supported.","ERROR_TRANSFORM_NOT_SUPPORTED"}, {2005,"The requested clipping operation is not supported.","ERROR_CLIPPING_NOT_SUPPORTED"}, {2010,"The specified color management module is invalid.","ERROR_INVALID_CMM"}, {2011,"The specified color profile is invalid.","ERROR_INVALID_PROFILE"}, {2012,"The specified tag was not found.","ERROR_TAG_NOT_FOUND"}, {2013,"A required tag is not present.","ERROR_TAG_NOT_PRESENT"}, {2014,"The specified tag is already present.","ERROR_DUPLICATE_TAG"}, {2015,"The specified color profile is not associated with any device.","ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE"}, {2016,"The specified color profile was not found.","ERROR_PROFILE_NOT_FOUND"}, {2017,"The specified color space is invalid.","ERROR_INVALID_COLORSPACE"}, {2018,"Image Color Management is not enabled.","ERROR_ICM_NOT_ENABLED"}, {2019,"There was an error while deleting the color transform.","ERROR_DELETING_ICM_XFORM"}, {2020,"The specified color transform is invalid.","ERROR_INVALID_TRANSFORM"}, {2021,"The specified transform does not match the bitmap's color space.","ERROR_COLORSPACE_MISMATCH"}, {2022,"The specified named color index is not present in the profile.","ERROR_INVALID_COLORINDEX"}, {2108,"The network connection was made successfully, but the user had to be prompted for a password other than the one originally specified.","ERROR_CONNECTED_OTHER_PASSWORD"}, {2109,"The network connection was made successfully using default credentials.","ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT"}, {2202,"The specified username is invalid.","ERROR_BAD_USERNAME"}, {2250,"This network connection does not exist.","ERROR_NOT_CONNECTED"}, {2401,"This network connection has files open or requests pending.","ERROR_OPEN_FILES"}, {2402,"Active connections still exist.","ERROR_ACTIVE_CONNECTIONS"}, {2404,"The device is in use by an active process and cannot be disconnected.","ERROR_DEVICE_IN_USE"}, {3000,"The specified print monitor is unknown.","ERROR_UNKNOWN_PRINT_MONITOR"}, {3001,"The specified printer driver is currently in use.","ERROR_PRINTER_DRIVER_IN_USE"}, {3002,"The spool file was not found.","ERROR_SPOOL_FILE_NOT_FOUND"}, {3003,"A StartDocPrinter call was not issued.","ERROR_SPL_NO_STARTDOC"}, {3004,"An AddJob call was not issued.","ERROR_SPL_NO_ADDJOB"}, {3005,"The specified print processor has already been installed.","ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED"}, {3006,"The specified print monitor has already been installed.","ERROR_PRINT_MONITOR_ALREADY_INSTALLED"}, {3007,"The specified print monitor does not have the required functions.","ERROR_INVALID_PRINT_MONITOR"}, {3008,"The specified print monitor is currently in use.","ERROR_PRINT_MONITOR_IN_USE"}, {3009,"The requested operation is not allowed when there are jobs queued to the printer.","ERROR_PRINTER_HAS_JOBS_QUEUED"}, {3010,"The requested operation is successful. Changes will not be effective until the system is rebooted.","ERROR_SUCCESS_REBOOT_REQUIRED"}, {3011,"The requested operation is successful. Changes will not be effective until the service is restarted.","ERROR_SUCCESS_RESTART_REQUIRED"}, {3012,"No printers were found.","ERROR_PRINTER_NOT_FOUND"}, {3013,"The printer driver is known to be unreliable.","ERROR_PRINTER_DRIVER_WARNED"}, {3014,"The printer driver is known to harm the system.","ERROR_PRINTER_DRIVER_BLOCKED"}, {3100,"The XML contains an entity reference to an undefined entity.","ERROR_XML_UNDEFINED_ENTITY"}, {3101,"The XML contains a malformed entity reference.","ERROR_XML_MALFORMED_ENTITY"}, {3102,"The XML contains a character which is not permitted in XML.","ERROR_XML_CHAR_NOT_IN_RANGE"}, {3200,"The manifest contained a duplicate definition for external proxy stub %1 at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_EXTERNAL_PROXY"}, {3201,"The manifest already contains a reference to %4 - a second reference was found at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_ASSEMBLY_REFERENCE"}, {3202,"The assembly reference at (%1:%2,%3) is invalid.","ERROR_PCM_COMPILER_INVALID_ASSEMBLY_REFERENCE"}, {3203,"The assembly definition at (%1:%2,%3) is invalid.","ERROR_PCM_COMPILER_INVALID_ASSEMBLY_DEFINITION"}, {3204,"The manifest already contained the window class %4, found a second declaration at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_WINDOW_CLASS"}, {3205,"The manifest already declared the progId %4, found a second declaration at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_PROGID"}, {3206,"Only one noInherit tag may be present in a manifest, found a second tag at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_NOINHERIT"}, {3207,"Only one noInheritable tag may be present in a manifest, found a second tag at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_NOINHERITABLE"}, {3208,"The manifest contained a duplicate declaration of COM class %4 at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_COM_CLASS"}, {3209,"The manifest already declared the file %4, a second definition was found at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_FILE_NAME"}, {3210,"CLR surrogate %1 was already defined, second definition at (%1:%2,%3) is invalid.","ERROR_PCM_COMPILER_DUPLICATE_CLR_SURROGATE"}, {3211,"Type library %1 was already defined, second definition at (%1:%2,%3) is invalid.","ERROR_PCM_COMPILER_DUPLICATE_TYPE_LIBRARY"}, {3212,"Proxy stub definition %1 was already defined, second definition at (%1:%2,%3) is invalid.","ERROR_PCM_COMPILER_DUPLICATE_PROXY_STUB"}, {3213,"Category friendly name %4 was already used, second definition was found at (%1:%2,%3) is invalid.","ERROR_PCM_COMPILER_DUPLICATE_CATEGORY_NAME"}, {3214,"Only one top-level assemblyIdentity tag may be present in a manifest. A second tag with identity %4 was found at (%1:%2,%3)","ERROR_PCM_COMPILER_DUPLICATE_TOP_LEVEL_IDENTITY_FOUND"}, {3215,"The root element for a manifest found at (%1:%2,%3) was not expected or was of the wrong version.","ERROR_PCM_COMPILER_UNKNOWN_ROOT_ELEMENT"}, {3216,"The element found at (%1:%2,%3) was not expected according to the manifest schema.","ERROR_PCM_COMPILER_INVALID_ELEMENT"}, {3217,"The element found at (%1:%2,%3) was missing the required attribute '%4'. See the manifest schema for more information","ERROR_PCM_COMPILER_MISSING_REQUIRED_ATTRIBUTE"}, {3218,"The attribute value %4 at (%1:%2,%3) was invalid according to the schema.","ERROR_PCM_COMPILER_INVALID_ATTRIBUTE_VALUE"}, {3219,"PCDATA or CDATA found at (%1:%2,%3) in the source document was not expected in the parent element %4.","ERROR_PCM_COMPILER_UNEXPECTED_PCDATA"}, {3220,"The string table entry with culture %4, name %5, and value '%6' at (%1:%2,%3) duplicated a previous entry.","ERROR_PCM_DUPLICATE_STRING_TABLE_ENTRY"}, {4000,"WINS encountered an error while processing the command.","ERROR_WINS_INTERNAL"}, {4001,"The local WINS cannot be deleted.","ERROR_CAN_NOT_DEL_LOCAL_WINS"}, {4002,"The importation from the file failed.","ERROR_STATIC_INIT"}, {4003,"The backup failed. Was a full backup done before?","ERROR_INC_BACKUP"}, {4004,"The backup failed. Check the directory to which you are backing the database.","ERROR_FULL_BACKUP"}, {4005,"The name does not exist in the WINS database.","ERROR_REC_NON_EXISTENT"}, {4006,"Replication with a nonconfigured partner is not allowed.","ERROR_RPL_NOT_ALLOWED"}, {4100,"The DHCP client has obtained an IP address that is already in use on the network. The local interface will be disabled until the DHCP client can obtain a new address.","ERROR_DHCP_ADDRESS_CONFLICT"}, {4200,"The GUID passed was not recognized as valid by a WMI data provider.","ERROR_WMI_GUID_NOT_FOUND"}, {4201,"The instance name passed was not recognized as valid by a WMI data provider.","ERROR_WMI_INSTANCE_NOT_FOUND"}, {4202,"The data item ID passed was not recognized as valid by a WMI data provider.","ERROR_WMI_ITEMID_NOT_FOUND"}, {4203,"The WMI request could not be completed and should be retried.","ERROR_WMI_TRY_AGAIN"}, {4204,"The WMI data provider could not be located.","ERROR_WMI_DP_NOT_FOUND"}, {4205,"The WMI data provider references an instance set that has not been registered.","ERROR_WMI_UNRESOLVED_INSTANCE_REF"}, {4206,"The WMI data block or event notification has already been enabled.","ERROR_WMI_ALREADY_ENABLED"}, {4207,"The WMI data block is no longer available.","ERROR_WMI_GUID_DISCONNECTED"}, {4208,"The WMI data service is not available.","ERROR_WMI_SERVER_UNAVAILABLE"}, {4209,"The WMI data provider failed to carry out the request.","ERROR_WMI_DP_FAILED"}, {4210,"The WMI MOF information is not valid.","ERROR_WMI_INVALID_MOF"}, {4211,"The WMI registration information is not valid.","ERROR_WMI_INVALID_REGINFO"}, {4212,"The WMI data block or event notification has already been disabled.","ERROR_WMI_ALREADY_DISABLED"}, {4213,"The WMI data item or data block is read only.","ERROR_WMI_READ_ONLY"}, {4214,"The WMI data item or data block could not be changed.","ERROR_WMI_SET_FAILURE"}, {4300,"The media identifier does not represent a valid medium.","ERROR_INVALID_MEDIA"}, {4301,"The library identifier does not represent a valid library.","ERROR_INVALID_LIBRARY"}, {4302,"The media pool identifier does not represent a valid media pool.","ERROR_INVALID_MEDIA_POOL"}, {4303,"The drive and medium are not compatible or exist in different libraries.","ERROR_DRIVE_MEDIA_MISMATCH"}, {4304,"The medium currently exists in an offline library and must be online to perform this operation.","ERROR_MEDIA_OFFLINE"}, {4305,"The operation cannot be performed on an offline library.","ERROR_LIBRARY_OFFLINE"}, {4306,"The library, drive, or media pool is empty.","ERROR_EMPTY"}, {4307,"The library, drive, or media pool must be empty to perform this operation.","ERROR_NOT_EMPTY"}, {4308,"No media is currently available in this media pool or library.","ERROR_MEDIA_UNAVAILABLE"}, {4309,"A resource required for this operation is disabled.","ERROR_RESOURCE_DISABLED"}, {4310,"The media identifier does not represent a valid cleaner.","ERROR_INVALID_CLEANER"}, {4311,"The drive cannot be cleaned or does not support cleaning.","ERROR_UNABLE_TO_CLEAN"}, {4312,"The object identifier does not represent a valid object.","ERROR_OBJECT_NOT_FOUND"}, {4313,"Unable to read from or write to the database.","ERROR_DATABASE_FAILURE"}, {4314,"The database is full.","ERROR_DATABASE_FULL"}, {4315,"The medium is not compatible with the device or media pool.","ERROR_MEDIA_INCOMPATIBLE"}, {4316,"The resource required for this operation does not exist.","ERROR_RESOURCE_NOT_PRESENT"}, {4317,"The operation identifier is not valid.","ERROR_INVALID_OPERATION"}, {4318,"The media is not mounted or ready for use.","ERROR_MEDIA_NOT_AVAILABLE"}, {4319,"The device is not ready for use.","ERROR_DEVICE_NOT_AVAILABLE"}, {4320,"The operator or administrator has refused the request.","ERROR_REQUEST_REFUSED"}, {4321,"The drive identifier does not represent a valid drive.","ERROR_INVALID_DRIVE_OBJECT"}, {4322,"Library is full. No slot is available for use.","ERROR_LIBRARY_FULL"}, {4323,"The transport cannot access the medium.","ERROR_MEDIUM_NOT_ACCESSIBLE"}, {4324,"Unable to load the medium into the drive.","ERROR_UNABLE_TO_LOAD_MEDIUM"}, {4325,"Unable to retrieve status about the drive.","ERROR_UNABLE_TO_INVENTORY_DRIVE"}, {4326,"Unable to retrieve status about the slot.","ERROR_UNABLE_TO_INVENTORY_SLOT"}, {4327,"Unable to retrieve status about the transport.","ERROR_UNABLE_TO_INVENTORY_TRANSPORT"}, {4328,"Cannot use the transport because it is already in use.","ERROR_TRANSPORT_FULL"}, {4329,"Unable to open or close the inject/eject port.","ERROR_CONTROLLING_IEPORT"}, {4330,"Unable to eject the media because it is in a drive.","ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA"}, {4331,"A cleaner slot is already reserved.","ERROR_CLEANER_SLOT_SET"}, {4332,"A cleaner slot is not reserved.","ERROR_CLEANER_SLOT_NOT_SET"}, {4333,"The cleaner cartridge has performed the maximum number of drive cleanings.","ERROR_CLEANER_CARTRIDGE_SPENT"}, {4334,"Unexpected on-medium identifier.","ERROR_UNEXPECTED_OMID"}, {4335,"The last remaining item in this group or resource cannot be deleted.","ERROR_CANT_DELETE_LAST_ITEM"}, {4336,"The message provided exceeds the maximum size allowed for this parameter.","ERROR_MESSAGE_EXCEEDS_MAX_SIZE"}, {4337,"The volume contains system or paging files.","ERROR_VOLUME_CONTAINS_SYS_FILES"}, {4338,"The media type cannot be removed from this library since at least one drive in the library reports it can support this media type.","ERROR_INDIGENOUS_TYPE"}, {4339,"This offline media cannot be mounted on this system since no enabled drives are present which can be used.","ERROR_NO_SUPPORTING_DRIVES"}, {4340,"A cleaner cartridge is present in the tape library.","ERROR_CLEANER_CARTRIDGE_INSTALLED"}, {4350,"The remote storage service was not able to recall the file.","ERROR_FILE_OFFLINE"}, {4351,"The remote storage service is not operational at this time.","ERROR_REMOTE_STORAGE_NOT_ACTIVE"}, {4352,"The remote storage service encountered a media error.","ERROR_REMOTE_STORAGE_MEDIA_ERROR"}, {4390,"The file or directory is not a reparse point.","ERROR_NOT_A_REPARSE_POINT"}, {4391,"The reparse point attribute cannot be set because it conflicts with an existing attribute.","ERROR_REPARSE_ATTRIBUTE_CONFLICT"}, {4392,"The data present in the reparse point buffer is invalid.","ERROR_INVALID_REPARSE_DATA"}, {4393,"The tag present in the reparse point buffer is invalid.","ERROR_REPARSE_TAG_INVALID"}, {4394,"There is a mismatch between the tag specified in the request and the tag present in the reparse point.","ERROR_REPARSE_TAG_MISMATCH"}, {4500,"Single Instance Storage is not available on this volume.","ERROR_VOLUME_NOT_SIS_ENABLED"}, {5001,"The cluster resource cannot be moved to another group because other resources are dependent on it.","ERROR_DEPENDENT_RESOURCE_EXISTS"}, {5002,"The cluster resource dependency cannot be found.","ERROR_DEPENDENCY_NOT_FOUND"}, {5003,"The cluster resource cannot be made dependent on the specified resource because it is already dependent.","ERROR_DEPENDENCY_ALREADY_EXISTS"}, {5004,"The cluster resource is not online.","ERROR_RESOURCE_NOT_ONLINE"}, {5005,"A cluster node is not available for this operation.","ERROR_HOST_NODE_NOT_AVAILABLE"}, {5006,"The cluster resource is not available.","ERROR_RESOURCE_NOT_AVAILABLE"}, {5007,"The cluster resource could not be found.","ERROR_RESOURCE_NOT_FOUND"}, {5008,"The cluster is being shut down.","ERROR_SHUTDOWN_CLUSTER"}, {5009,"A cluster node cannot be evicted from the cluster unless the node is down.","ERROR_CANT_EVICT_ACTIVE_NODE"}, {5010,"The object already exists.","ERROR_OBJECT_ALREADY_EXISTS"}, {5011,"The object is already in the list.","ERROR_OBJECT_IN_LIST"}, {5012,"The cluster group is not available for any new requests.","ERROR_GROUP_NOT_AVAILABLE"}, {5013,"The cluster group could not be found.","ERROR_GROUP_NOT_FOUND"}, {5014,"The operation could not be completed because the cluster group is not online.","ERROR_GROUP_NOT_ONLINE"}, {5015,"The cluster node is not the owner of the resource.","ERROR_HOST_NODE_NOT_RESOURCE_OWNER"}, {5016,"The cluster node is not the owner of the group.","ERROR_HOST_NODE_NOT_GROUP_OWNER"}, {5017,"The cluster resource could not be created in the specified resource monitor.","ERROR_RESMON_CREATE_FAILED"}, {5018,"The cluster resource could not be brought online by the resource monitor.","ERROR_RESMON_ONLINE_FAILED"}, {5019,"The operation could not be completed because the cluster resource is online.","ERROR_RESOURCE_ONLINE"}, {5020,"The cluster resource could not be deleted or brought offline because it is the quorum resource.","ERROR_QUORUM_RESOURCE"}, {5021,"The cluster could not make the specified resource a quorum resource because it is not capable of being a quorum resource.","ERROR_NOT_QUORUM_CAPABLE"}, {5022,"The cluster software is shutting down.","ERROR_CLUSTER_SHUTTING_DOWN"}, {5023,"The group or resource is not in the correct state to perform the requested operation.","ERROR_INVALID_STATE"}, {5024,"The properties were stored but not all changes will take effect until the next time the resource is brought online.","ERROR_RESOURCE_PROPERTIES_STORED"}, {5025,"The cluster could not make the specified resource a quorum resource because it does not belong to a shared storage class.","ERROR_NOT_QUORUM_CLASS"}, {5026,"The cluster resource could not be deleted since it is a core resource.","ERROR_CORE_RESOURCE"}, {5027,"The quorum resource failed to come online.","ERROR_QUORUM_RESOURCE_ONLINE_FAILED"}, {5028,"The quorum log could not be created or mounted successfully.","ERROR_QUORUMLOG_OPEN_FAILED"}, {5029,"The cluster log is corrupt.","ERROR_CLUSTERLOG_CORRUPT"}, {5030,"The record could not be written to the cluster log since it exceeds the maximum size.","ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE"}, {5031,"The cluster log exceeds its maximum size.","ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE"}, {5032,"No checkpoint record was found in the cluster log.","ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND"}, {5033,"The minimum required disk space needed for logging is not available.","ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE"}, {5034,"The cluster node failed to take control of the quorum resource because the resource is owned by another active node.","ERROR_QUORUM_OWNER_ALIVE"}, {5035,"A cluster network is not available for this operation.","ERROR_NETWORK_NOT_AVAILABLE"}, {5036,"A cluster node is not available for this operation.","ERROR_NODE_NOT_AVAILABLE"}, {5037,"All cluster nodes must be running to perform this operation.","ERROR_ALL_NODES_NOT_AVAILABLE"}, {5038,"A cluster resource failed.","ERROR_RESOURCE_FAILED"}, {5039,"The cluster node is not valid.","ERROR_CLUSTER_INVALID_NODE"}, {5040,"The cluster node already exists.","ERROR_CLUSTER_NODE_EXISTS"}, {5041,"A node is in the process of joining the cluster.","ERROR_CLUSTER_JOIN_IN_PROGRESS"}, {5042,"The cluster node was not found.","ERROR_CLUSTER_NODE_NOT_FOUND"}, {5043,"The cluster local node information was not found.","ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND"}, {5044,"The cluster network already exists.","ERROR_CLUSTER_NETWORK_EXISTS"}, {5045,"The cluster network was not found.","ERROR_CLUSTER_NETWORK_NOT_FOUND"}, {5046,"The cluster network interface already exists.","ERROR_CLUSTER_NETINTERFACE_EXISTS"}, {5047,"The cluster network interface was not found.","ERROR_CLUSTER_NETINTERFACE_NOT_FOUND"}, {5048,"The cluster request is not valid for this object.","ERROR_CLUSTER_INVALID_REQUEST"}, {5049,"The cluster network provider is not valid.","ERROR_CLUSTER_INVALID_NETWORK_PROVIDER"}, {5050,"The cluster node is down.","ERROR_CLUSTER_NODE_DOWN"}, {5051,"The cluster node is not reachable.","ERROR_CLUSTER_NODE_UNREACHABLE"}, {5052,"The cluster node is not a member of the cluster.","ERROR_CLUSTER_NODE_NOT_MEMBER"}, {5053,"A cluster join operation is not in progress.","ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS"}, {5054,"The cluster network is not valid.","ERROR_CLUSTER_INVALID_NETWORK"}, {5056,"The cluster node is up.","ERROR_CLUSTER_NODE_UP"}, {5057,"The cluster IP address is already in use.","ERROR_CLUSTER_IPADDR_IN_USE"}, {5058,"The cluster node is not paused.","ERROR_CLUSTER_NODE_NOT_PAUSED"}, {5059,"No cluster security context is available.","ERROR_CLUSTER_NO_SECURITY_CONTEXT"}, {5060,"The cluster network is not configured for internal cluster communication.","ERROR_CLUSTER_NETWORK_NOT_INTERNAL"}, {5061,"The cluster node is already up.","ERROR_CLUSTER_NODE_ALREADY_UP"}, {5062,"The cluster node is already down.","ERROR_CLUSTER_NODE_ALREADY_DOWN"}, {5063,"The cluster network is already online.","ERROR_CLUSTER_NETWORK_ALREADY_ONLINE"}, {5064,"The cluster network is already offline.","ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE"}, {5065,"The cluster node is already a member of the cluster.","ERROR_CLUSTER_NODE_ALREADY_MEMBER"}, {5066,"The cluster network is the only one configured for internal cluster communication between two or more active cluster nodes. The internal communication capability cannot be removed from the network.","ERROR_CLUSTER_LAST_INTERNAL_NETWORK"}, {5067,"One or more cluster resources depend on the network to provide service to clients. The client access capability cannot be removed from the network.","ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS"}, {5068,"This operation cannot be performed on the cluster resource as it the quorum resource. You may not bring the quorum resource offline or modify its possible owners list.","ERROR_INVALID_OPERATION_ON_QUORUM"}, {5069,"The cluster quorum resource is not allowed to have any dependencies.","ERROR_DEPENDENCY_NOT_ALLOWED"}, {5070,"The cluster node is paused.","ERROR_CLUSTER_NODE_PAUSED"}, {5071,"The cluster resource cannot be brought online. The owner node cannot run this resource.","ERROR_NODE_CANT_HOST_RESOURCE"}, {5072,"The cluster node is not ready to perform the requested operation.","ERROR_CLUSTER_NODE_NOT_READY"}, {5073,"The cluster node is shutting down.","ERROR_CLUSTER_NODE_SHUTTING_DOWN"}, {5074,"The cluster join operation was aborted.","ERROR_CLUSTER_JOIN_ABORTED"}, {5075,"The cluster join operation failed due to incompatible software versions between the joining node and its sponsor.","ERROR_CLUSTER_INCOMPATIBLE_VERSIONS"}, {5076,"This resource cannot be created because the cluster has reached the limit on the number of resources it can monitor.","ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED"}, {5077,"The system configuration changed during the cluster join or form operation. The join or form operation was aborted.","ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED"}, {5078,"The specified resource type was not found.","ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND"}, {5079,"The specified node does not support a resource of this type. This may be due to version inconsistencies or due to the absence of the resource DLL on this node.","ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED"}, {5080,"The specified resource name is supported by this resource DLL. This may be due to a bad (or changed) name supplied to the resource DLL.","ERROR_CLUSTER_RESNAME_NOT_FOUND"}, {5081,"No authentication package could be registered with the RPC server.","ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED"}, {5082,"You cannot bring the group online because the owner of the group is not in the preferred list for the group. To change the owner node for the group, move the group.","ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST"}, {5083,"The join operation failed because the cluster database sequence number has changed or is incompatible with the locker node. This may happen during a join operation if the cluster database was changing during the join.","ERROR_CLUSTER_DATABASE_SEQMISMATCH"}, {5084,"The resource monitor will not allow the fail operation to be performed while the resource is in its current state. This may happen if the resource is in a pending state.","ERROR_RESMON_INVALID_STATE"}, {5085,"A non locker code got a request to reserve the lock for making global updates.","ERROR_CLUSTER_GUM_NOT_LOCKER"}, {5086,"The quorum disk could not be located by the cluster service.","ERROR_QUORUM_DISK_NOT_FOUND"}, {5087,"The backup up cluster database is possibly corrupt.","ERROR_DATABASE_BACKUP_CORRUPT"}, {5088,"A DFS root already exists in this cluster node.","ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT"}, {5089,"An attempt to modify a resource property failed because it conflicts with another existing property.","ERROR_RESOURCE_PROPERTY_UNCHANGEABLE"}, {5890,"An operation was attempted that is incompatible with the current membership state of the node.","ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE"}, {5891,"The quorum resource does not contain the quorum log.","ERROR_CLUSTER_QUORUMLOG_NOT_FOUND"}, {5892,"The membership engine requested shutdown of the cluster service on this node.","ERROR_CLUSTER_MEMBERSHIP_HALT"}, {5893,"The join operation failed because the cluster instance ID of the joining node does not match the cluster instance ID of the sponsor node.","ERROR_CLUSTER_INSTANCE_ID_MISMATCH"}, {5894,"A matching network for the specified IP address could not be found. Please also specify a subnet mask and a cluster network.","ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP"}, {5895,"The actual data type of the property did not match the expected data type of the property.","ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH"}, {5896,"The cluster node was evicted from the cluster successfully, but the node was not cleaned up. Extended status information explaining why the node was not cleaned up is available.","ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP"}, {5897,"Two or more parameter values specified for a resource's properties are in conflict.","ERROR_CLUSTER_PARAMETER_MISMATCH"}, {5898,"This computer cannot be made a member of a cluster.","ERROR_NODE_CANNOT_BE_CLUSTERED"}, {5899,"This computer cannot be made a member of a cluster because it does not have the correct version of Windows installed.","ERROR_CLUSTER_WRONG_OS_VERSION"}, {5900,"A cluster cannot be created with the specified cluster name because that cluster name is already in use. Specify a different name for the cluster.","ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME"}, {5901,"The cluster configuration action has already been committed.","ERROR_CLUSCFG_ALREADY_COMMITTED"}, {5902,"The cluster configuration action could not be rolled back.","ERROR_CLUSCFG_ROLLBACK_FAILED"}, {5903,"The drive letter assigned to a system disk on one node conflicted with the driver letter assigned to a disk on another node.","ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT"}, {5904,"One or more nodes in the cluster are running a version of Windows that does not support this operation.","ERROR_CLUSTER_OLD_VERSION"}, {5905,"The name of the corresponding computer account doesn't match the Network Name for this resource.","ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME"}, {5906,"No network adapters are available.","ERROR_CLUSTER_NO_NET_ADAPTERS"}, {5907,"The cluster node has been poisoned.","ERROR_CLUSTER_POISONED"}, {6000,"The specified file could not be encrypted.","ERROR_ENCRYPTION_FAILED"}, {6001,"The specified file could not be decrypted.","ERROR_DECRYPTION_FAILED"}, {6002,"The specified file is encrypted and the user does not have the ability to decrypt it.","ERROR_FILE_ENCRYPTED"}, {6003,"There is no valid encryption recovery policy configured for this system.","ERROR_NO_RECOVERY_POLICY"}, {6004,"The required encryption driver is not loaded for this system.","ERROR_NO_EFS"}, {6005,"The file was encrypted with a different encryption driver than is currently loaded.","ERROR_WRONG_EFS"}, {6006,"There are no EFS keys defined for the user.","ERROR_NO_USER_KEYS"}, {6007,"The specified file is not encrypted.","ERROR_FILE_NOT_ENCRYPTED"}, {6008,"The specified file is not in the defined EFS export format.","ERROR_NOT_EXPORT_FORMAT"}, {6009,"The specified file is read only.","ERROR_FILE_READ_ONLY"}, {6010,"The directory has been disabled for encryption.","ERROR_DIR_EFS_DISALLOWED"}, {6011,"The server is not trusted for remote encryption operation.","ERROR_EFS_SERVER_NOT_TRUSTED"}, {6012,"Recovery policy configured for this system contains invalid recovery certificate.","ERROR_BAD_RECOVERY_POLICY"}, {6013,"The encryption algorithm used on the source file needs a bigger key buffer than the one on the destination file.","ERROR_EFS_ALG_BLOB_TOO_BIG"}, {6014,"The disk partition does not support file encryption.","ERROR_VOLUME_NOT_SUPPORT_EFS"}, {6015,"This machine is disabled for file encryption.","ERROR_EFS_DISABLED"}, {6016,"A newer system is required to decrypt this encrypted file.","ERROR_EFS_VERSION_NOT_SUPPORT"}, {6118,"The list of servers for this workgroup is not currently available.","ERROR_NO_BROWSER_SERVERS_FOUND"}, {6200,"The Task Scheduler service must be configured to run in the System account to function properly. Individual tasks may be configured to run in other accounts.","SCHED_E_SERVICE_NOT_LOCALSYSTEM"}, {7001,"The specified session name is invalid.","ERROR_CTX_WINSTATION_NAME_INVALID"}, {7002,"The specified protocol driver is invalid.","ERROR_CTX_INVALID_PD"}, {7003,"The specified protocol driver was not found in the system path.","ERROR_CTX_PD_NOT_FOUND"}, {7004,"The specified terminal connection driver was not found in the system path.","ERROR_CTX_WD_NOT_FOUND"}, {7005,"A registry key for event logging could not be created for this session.","ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY"}, {7006,"A service with the same name already exists on the system.","ERROR_CTX_SERVICE_NAME_COLLISION"}, {7007,"A close operation is pending on the session.","ERROR_CTX_CLOSE_PENDING"}, {7008,"There are no free output buffers available.","ERROR_CTX_NO_OUTBUF"}, {7009,"The MODEM.INF file was not found.","ERROR_CTX_MODEM_INF_NOT_FOUND"}, {7010,"The modem name was not found in MODEM.INF.","ERROR_CTX_INVALID_MODEMNAME"}, {7011,"The modem did not accept the command sent to it. Verify that the configured modem name matches the attached modem.","ERROR_CTX_MODEM_RESPONSE_ERROR"}, {7012,"The modem did not respond to the command sent to it. Verify that the modem is properly cabled and powered on.","ERROR_CTX_MODEM_RESPONSE_TIMEOUT"}, {7013,"Carrier detect has failed or carrier has been dropped due to disconnect.","ERROR_CTX_MODEM_RESPONSE_NO_CARRIER"}, {7014,"Dial tone not detected within the required time. Verify that the phone cable is properly attached and functional.","ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE"}, {7015,"Busy signal detected at remote site on callback.","ERROR_CTX_MODEM_RESPONSE_BUSY"}, {7016,"Voice detected at remote site on callback.","ERROR_CTX_MODEM_RESPONSE_VOICE"}, {7017,"Transport driver error","ERROR_CTX_TD_ERROR"}, {7022,"The specified session cannot be found.","ERROR_CTX_WINSTATION_NOT_FOUND"}, {7023,"The specified session name is already in use.","ERROR_CTX_WINSTATION_ALREADY_EXISTS"}, {7024,"The requested operation cannot be completed because the terminal connection is currently busy processing a connect, disconnect, reset, or delete operation.","ERROR_CTX_WINSTATION_BUSY"}, {7025,"An attempt has been made to connect to a session whose video mode is not supported by the current client.","ERROR_CTX_BAD_VIDEO_MODE"}, {7035,"The application attempted to enable DOS graphics mode. DOS graphics mode is not supported.","ERROR_CTX_GRAPHICS_INVALID"}, {7037,"Your interactive logon privilege has been disabled. Please contact your administrator.","ERROR_CTX_LOGON_DISABLED"}, {7038,"The requested operation can be performed only on the system console. This is most often the result of a driver or system DLL requiring direct console access.","ERROR_CTX_NOT_CONSOLE"}, {7040,"The client failed to respond to the server connect message.","ERROR_CTX_CLIENT_QUERY_TIMEOUT"}, {7041,"Disconnecting the console session is not supported.","ERROR_CTX_CONSOLE_DISCONNECT"}, {7042,"Reconnecting a disconnected session to the console is not supported.","ERROR_CTX_CONSOLE_CONNECT"}, {7044,"The request to control another session remotely was denied.","ERROR_CTX_SHADOW_DENIED"}, {7045,"The requested session access is denied.","ERROR_CTX_WINSTATION_ACCESS_DENIED"}, {7049,"The specified terminal connection driver is invalid.","ERROR_CTX_INVALID_WD"}, {7050,"The requested session cannot be controlled remotely. This may be because the session is disconnected or does not currently have a user logged on.","ERROR_CTX_SHADOW_INVALID"}, {7051,"The requested session is not configured to allow remote control.","ERROR_CTX_SHADOW_DISABLED"}, {7052,"Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number is currently being used by another user. Please call your system administrator to obtain a unique license number.","ERROR_CTX_CLIENT_LICENSE_IN_USE"}, {7053,"Your request to connect to this Terminal Server has been rejected. Your Terminal Server client license number has not been entered for this copy of the Terminal Server client. Please contact your system administrator.","ERROR_CTX_CLIENT_LICENSE_NOT_SET"}, {7054,"The system has reached its licensed logon limit. Please try again later.","ERROR_CTX_LICENSE_NOT_AVAILABLE"}, {7055,"The client you are using is not licensed to use this system. Your logon request is denied.","ERROR_CTX_LICENSE_CLIENT_INVALID"}, {7056,"The system license has expired. Your logon request is denied.","ERROR_CTX_LICENSE_EXPIRED"}, {7057,"Remote control could not be terminated because the specified session is not currently being remotely controlled.","ERROR_CTX_SHADOW_NOT_RUNNING"}, {7058,"The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported.","ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE"}, {7059,"Activation has already been reset the maximum number of times for this installation. Your activation timer will not be cleared.","ERROR_ACTIVATION_COUNT_EXCEEDED"}, {7060,"Remote logins are currently disabled.","ERROR_CTX_WINSTATIONS_DISABLED"}, {7061,"You do not have the proper encryption level to access this Session.","ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED"}, {7062,"The user %s\\%s is currently logged on to this computer. Only the current user or an administrator can log on to this computer.","ERROR_CTX_SESSION_IN_USE"}, {7063,"The user %s\\%s is already logged on to the console of this computer. You do not have permission to log in at this time. To resolve this issue, contact %s\\%s and have them log off.","ERROR_CTX_NO_FORCE_LOGOFF"}, {7064,"Unable to log you on because of an account restriction.","ERROR_CTX_ACCOUNT_RESTRICTION"}, {7065,"The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client.","ERROR_RDP_PROTOCOL_ERROR"}, {7066,"The Client Drive Mapping Service Has Connected on Terminal Connection.","ERROR_CTX_CDM_CONNECT"}, {7067,"The Client Drive Mapping Service Has Disconnected on Terminal Connection.","ERROR_CTX_CDM_DISCONNECT"}, {8001,"The file replication service API was called incorrectly.","FRS_ERR_INVALID_API_SEQUENCE"}, {8002,"The file replication service cannot be started.","FRS_ERR_STARTING_SERVICE"}, {8003,"The file replication service cannot be stopped.","FRS_ERR_STOPPING_SERVICE"}, {8004,"The file replication service API terminated the request. The event log may have more information.","FRS_ERR_INTERNAL_API"}, {8005,"The file replication service terminated the request. The event log may have more information.","FRS_ERR_INTERNAL"}, {8006,"The file replication service cannot be contacted. The event log may have more information.","FRS_ERR_SERVICE_COMM"}, {8007,"The file replication service cannot satisfy the request because the user has insufficient privileges. The event log may have more information.","FRS_ERR_INSUFFICIENT_PRIV"}, {8008,"The file replication service cannot satisfy the request because authenticated RPC is not available. The event log may have more information.","FRS_ERR_AUTHENTICATION"}, {8009,"The file replication service cannot satisfy the request because the user has insufficient privileges on the domain controller. The event log may have more information.","FRS_ERR_PARENT_INSUFFICIENT_PRIV"}, {8010,"The file replication service cannot satisfy the request because authenticated RPC is not available on the domain controller. The event log may have more information.","FRS_ERR_PARENT_AUTHENTICATION"}, {8011,"The file replication service cannot communicate with the file replication service on the domain controller. The event log may have more information.","FRS_ERR_CHILD_TO_PARENT_COMM"}, {8012,"The file replication service on the domain controller cannot communicate with the file replication service on this computer. The event log may have more information.","FRS_ERR_PARENT_TO_CHILD_COMM"}, {8013,"The file replication service cannot populate the system volume because of an internal error. The event log may have more information.","FRS_ERR_SYSVOL_POPULATE"}, {8014,"The file replication service cannot populate the system volume because of an internal timeout. The event log may have more information.","FRS_ERR_SYSVOL_POPULATE_TIMEOUT"}, {8015,"The file replication service cannot process the request. The system volume is busy with a previous request.","FRS_ERR_SYSVOL_IS_BUSY"}, {8016,"The file replication service cannot stop replicating the system volume because of an internal error. The event log may have more information.","FRS_ERR_SYSVOL_DEMOTE"}, {8017,"The file replication service detected an invalid parameter.","FRS_ERR_INVALID_SERVICE_PARAMETER"}, {8200,"An error occurred while installing the directory service. For more information, see the event log.","ERROR_DS_NOT_INSTALLED"}, {8201,"The directory service evaluated group memberships locally.","ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY"}, {8202,"The specified directory service attribute or value does not exist.","ERROR_DS_NO_ATTRIBUTE_OR_VALUE"}, {8203,"The attribute syntax specified to the directory service is invalid.","ERROR_DS_INVALID_ATTRIBUTE_SYNTAX"}, {8204,"The attribute type specified to the directory service is not defined.","ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED"}, {8205,"The specified directory service attribute or value already exists.","ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS"}, {8206,"The directory service is busy.","ERROR_DS_BUSY"}, {8207,"The directory service is unavailable.","ERROR_DS_UNAVAILABLE"}, {8208,"The directory service was unable to allocate a relative identifier.","ERROR_DS_NO_RIDS_ALLOCATED"}, {8209,"The directory service has exhausted the pool of relative identifiers.","ERROR_DS_NO_MORE_RIDS"}, {8210,"The requested operation could not be performed because the directory service is not the master for that type of operation.","ERROR_DS_INCORRECT_ROLE_OWNER"}, {8211,"The directory service was unable to initialize the subsystem that allocates relative identifiers.","ERROR_DS_RIDMGR_INIT_ERROR"}, {8212,"The requested operation did not satisfy one or more constraints associated with the class of the object.","ERROR_DS_OBJ_CLASS_VIOLATION"}, {8213,"The directory service can perform the requested operation only on a leaf object.","ERROR_DS_CANT_ON_NON_LEAF"}, {8214,"The directory service cannot perform the requested operation on the RDN attribute of an object.","ERROR_DS_CANT_ON_RDN"}, {8215,"The directory service detected an attempt to modify the object class of an object.","ERROR_DS_CANT_MOD_OBJ_CLASS"}, {8216,"The requested cross-domain move operation could not be performed.","ERROR_DS_CROSS_DOM_MOVE_ERROR"}, {8217,"Unable to contact the global catalog server.","ERROR_DS_GC_NOT_AVAILABLE"}, {8218,"The policy object is shared and can only be modified at the root.","ERROR_SHARED_POLICY"}, {8219,"The policy object does not exist.","ERROR_POLICY_OBJECT_NOT_FOUND"}, {8220,"The requested policy information is only in the directory service.","ERROR_POLICY_ONLY_IN_DS"}, {8221,"A domain controller promotion is currently active.","ERROR_PROMOTION_ACTIVE"}, {8222,"A domain controller promotion is not currently active","ERROR_NO_PROMOTION_ACTIVE"}, {8224,"An operations error occurred.","ERROR_DS_OPERATIONS_ERROR"}, {8225,"A protocol error occurred.","ERROR_DS_PROTOCOL_ERROR"}, {8226,"The time limit for this request was exceeded.","ERROR_DS_TIMELIMIT_EXCEEDED"}, {8227,"The size limit for this request was exceeded.","ERROR_DS_SIZELIMIT_EXCEEDED"}, {8228,"The administrative limit for this request was exceeded.","ERROR_DS_ADMIN_LIMIT_EXCEEDED"}, {8229,"The compare response was false.","ERROR_DS_COMPARE_FALSE"}, {8230,"The compare response was true.","ERROR_DS_COMPARE_TRUE"}, {8231,"The requested authentication method is not supported by the server.","ERROR_DS_AUTH_METHOD_NOT_SUPPORTED"}, {8232,"A more secure authentication method is required for this server.","ERROR_DS_STRONG_AUTH_REQUIRED"}, {8233,"Inappropriate authentication.","ERROR_DS_INAPPROPRIATE_AUTH"}, {8234,"The authentication mechanism is unknown.","ERROR_DS_AUTH_UNKNOWN"}, {8235,"A referral was returned from the server.","ERROR_DS_REFERRAL"}, {8236,"The server does not support the requested critical extension.","ERROR_DS_UNAVAILABLE_CRIT_EXTENSION"}, {8237,"This request requires a secure connection.","ERROR_DS_CONFIDENTIALITY_REQUIRED"}, {8238,"Inappropriate matching.","ERROR_DS_INAPPROPRIATE_MATCHING"}, {8239,"A constraint violation occurred.","ERROR_DS_CONSTRAINT_VIOLATION"}, {8240,"There is no such object on the server.","ERROR_DS_NO_SUCH_OBJECT"}, {8241,"There is an alias problem.","ERROR_DS_ALIAS_PROBLEM"}, {8242,"An invalid dn syntax has been specified.","ERROR_DS_INVALID_DN_SYNTAX"}, {8243,"The object is a leaf object.","ERROR_DS_IS_LEAF"}, {8244,"There is an alias dereferencing problem.","ERROR_DS_ALIAS_DEREF_PROBLEM"}, {8245,"The server is unwilling to process the request.","ERROR_DS_UNWILLING_TO_PERFORM"}, {8246,"A loop has been detected.","ERROR_DS_LOOP_DETECT"}, {8247,"There is a naming violation.","ERROR_DS_NAMING_VIOLATION"}, {8248,"The result set is too large.","ERROR_DS_OBJECT_RESULTS_TOO_LARGE"}, {8249,"The operation affects multiple DSAs","ERROR_DS_AFFECTS_MULTIPLE_DSAS"}, {8250,"The server is not operational.","ERROR_DS_SERVER_DOWN"}, {8251,"A local error has occurred.","ERROR_DS_LOCAL_ERROR"}, {8252,"An encoding error has occurred.","ERROR_DS_ENCODING_ERROR"}, {8253,"A decoding error has occurred.","ERROR_DS_DECODING_ERROR"}, {8254,"The search filter cannot be recognized.","ERROR_DS_FILTER_UNKNOWN"}, {8255,"One or more parameters are illegal.","ERROR_DS_PARAM_ERROR"}, {8256,"The specified method is not supported.","ERROR_DS_NOT_SUPPORTED"}, {8257,"No results were returned.","ERROR_DS_NO_RESULTS_RETURNED"}, {8258,"The specified control is not supported by the server.","ERROR_DS_CONTROL_NOT_FOUND"}, {8259,"A referral loop was detected by the client.","ERROR_DS_CLIENT_LOOP"}, {8260,"The preset referral limit was exceeded.","ERROR_DS_REFERRAL_LIMIT_EXCEEDED"}, {8261,"The search requires a SORT control.","ERROR_DS_SORT_CONTROL_MISSING"}, {8262,"The search results exceed the offset range specified.","ERROR_DS_OFFSET_RANGE_ERROR"}, {8301,"The root object must be the head of a naming context. The root object cannot have an instantiated parent.","ERROR_DS_ROOT_MUST_BE_NC"}, {8302,"The add replica operation cannot be performed. The naming context must be writeable in order to create the replica.","ERROR_DS_ADD_REPLICA_INHIBITED"}, {8303,"A reference to an attribute that is not defined in the schema occurred.","ERROR_DS_ATT_NOT_DEF_IN_SCHEMA"}, {8304,"The maximum size of an object has been exceeded.","ERROR_DS_MAX_OBJ_SIZE_EXCEEDED"}, {8305,"An attempt was made to add an object to the directory with a name that is already in use.","ERROR_DS_OBJ_STRING_NAME_EXISTS"}, {8306,"An attempt was made to add an object of a class that does not have an RDN defined in the schema.","ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA"}, {8307,"An attempt was made to add an object using an RDN that is not the RDN defined in the schema.","ERROR_DS_RDN_DOESNT_MATCH_SCHEMA"}, {8308,"None of the requested attributes were found on the objects.","ERROR_DS_NO_REQUESTED_ATTS_FOUND"}, {8309,"The user buffer is too small.","ERROR_DS_USER_BUFFER_TO_SMALL"}, {8310,"The attribute specified in the operation is not present on the object.","ERROR_DS_ATT_IS_NOT_ON_OBJ"}, {8311,"Illegal modify operation. Some aspect of the modification is not permitted.","ERROR_DS_ILLEGAL_MOD_OPERATION"}, {8312,"The specified object is too large.","ERROR_DS_OBJ_TOO_LARGE"}, {8313,"The specified instance type is not valid.","ERROR_DS_BAD_INSTANCE_TYPE"}, {8314,"The operation must be performed at a master DSA.","ERROR_DS_MASTERDSA_REQUIRED"}, {8315,"The object class attribute must be specified.","ERROR_DS_OBJECT_CLASS_REQUIRED"}, {8316,"A required attribute is missing.","ERROR_DS_MISSING_REQUIRED_ATT"}, {8317,"An attempt was made to modify an object to include an attribute that is not legal for its class","ERROR_DS_ATT_NOT_DEF_FOR_CLASS"}, {8318,"The specified attribute is already present on the object.","ERROR_DS_ATT_ALREADY_EXISTS"}, {8320,"The specified attribute is not present, or has no values.","ERROR_DS_CANT_ADD_ATT_VALUES"}, {8321,"Multiple values were specified for an attribute that can have only one value.","ERROR_DS_SINGLE_VALUE_CONSTRAINT"}, {8322,"A value for the attribute was not in the acceptable range of values.","ERROR_DS_RANGE_CONSTRAINT"}, {8323,"The specified value already exists.","ERROR_DS_ATT_VAL_ALREADY_EXISTS"}, {8324,"The attribute cannot be removed because it is not present on the object.","ERROR_DS_CANT_REM_MISSING_ATT"}, {8325,"The attribute value cannot be removed because it is not present on the object.","ERROR_DS_CANT_REM_MISSING_ATT_VAL"}, {8326,"The specified root object cannot be a subref.","ERROR_DS_ROOT_CANT_BE_SUBREF"}, {8327,"Chaining is not permitted.","ERROR_DS_NO_CHAINING"}, {8328,"Chained evaluation is not permitted.","ERROR_DS_NO_CHAINED_EVAL"}, {8329,"The operation could not be performed because the object's parent is either uninstantiated or deleted.","ERROR_DS_NO_PARENT_OBJECT"}, {8330,"Having a parent that is an alias is not permitted. Aliases are leaf objects.","ERROR_DS_PARENT_IS_AN_ALIAS"}, {8331,"The object and parent must be of the same type, either both masters or both replicas.","ERROR_DS_CANT_MIX_MASTER_AND_REPS"}, {8332,"The operation cannot be performed because child objects exist. This operation can only be performed on a leaf object.","ERROR_DS_CHILDREN_EXIST"}, {8333,"Directory object not found.","ERROR_DS_OBJ_NOT_FOUND"}, {8334,"The aliased object is missing.","ERROR_DS_ALIASED_OBJ_MISSING"}, {8335,"The object name has bad syntax.","ERROR_DS_BAD_NAME_SYNTAX"}, {8336,"It is not permitted for an alias to refer to another alias.","ERROR_DS_ALIAS_POINTS_TO_ALIAS"}, {8337,"The alias cannot be dereferenced.","ERROR_DS_CANT_DEREF_ALIAS"}, {8338,"The operation is out of scope.","ERROR_DS_OUT_OF_SCOPE"}, {8339,"The operation cannot continue because the object is in the process of being removed.","ERROR_DS_OBJECT_BEING_REMOVED"}, {8340,"The DSA object cannot be deleted.","ERROR_DS_CANT_DELETE_DSA_OBJ"}, {8341,"A directory service error has occurred.","ERROR_DS_GENERIC_ERROR"}, {8342,"The operation can only be performed on an internal master DSA object.","ERROR_DS_DSA_MUST_BE_INT_MASTER"}, {8343,"The object must be of class DSA.","ERROR_DS_CLASS_NOT_DSA"}, {8344,"Insufficient access rights to perform the operation.","ERROR_DS_INSUFF_ACCESS_RIGHTS"}, {8345,"The object cannot be added because the parent is not on the list of possible superiors.","ERROR_DS_ILLEGAL_SUPERIOR"}, {8346,"Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM).","ERROR_DS_ATTRIBUTE_OWNED_BY_SAM"}, {8347,"The name has too many parts.","ERROR_DS_NAME_TOO_MANY_PARTS"}, {8348,"The name is too long.","ERROR_DS_NAME_TOO_LONG"}, {8349,"The name value is too long.","ERROR_DS_NAME_VALUE_TOO_LONG"}, {8350,"The directory service encountered an error parsing a name.","ERROR_DS_NAME_UNPARSEABLE"}, {8351,"The directory service cannot get the attribute type for a name.","ERROR_DS_NAME_TYPE_UNKNOWN"}, {8352,"The name does not identify an object; the name identifies a phantom.","ERROR_DS_NOT_AN_OBJECT"}, {8353,"The security descriptor is too short.","ERROR_DS_SEC_DESC_TOO_SHORT"}, {8354,"The security descriptor is invalid.","ERROR_DS_SEC_DESC_INVALID"}, {8355,"Failed to create name for deleted object.","ERROR_DS_NO_DELETED_NAME"}, {8356,"The parent of a new subref must exist.","ERROR_DS_SUBREF_MUST_HAVE_PARENT"}, {8357,"The object must be a naming context.","ERROR_DS_NCNAME_MUST_BE_NC"}, {8358,"It is not permitted to add an attribute which is owned by the system.","ERROR_DS_CANT_ADD_SYSTEM_ONLY"}, {8359,"The class of the object must be structural; you cannot instantiate an abstract class.","ERROR_DS_CLASS_MUST_BE_CONCRETE"}, {8360,"The schema object could not be found.","ERROR_DS_INVALID_DMD"}, {8361,"A local object with this GUID (dead or alive) already exists.","ERROR_DS_OBJ_GUID_EXISTS"}, {8362,"The operation cannot be performed on a back link.","ERROR_DS_NOT_ON_BACKLINK"}, {8363,"The cross reference for the specified naming context could not be found.","ERROR_DS_NO_CROSSREF_FOR_NC"}, {8364,"The operation could not be performed because the directory service is shutting down.","ERROR_DS_SHUTTING_DOWN"}, {8365,"The directory service request is invalid.","ERROR_DS_UNKNOWN_OPERATION"}, {8366,"The role owner attribute could not be read.","ERROR_DS_INVALID_ROLE_OWNER"}, {8367,"The requested FSMO operation failed. The current FSMO holder could not be reached.","ERROR_DS_COULDNT_CONTACT_FSMO"}, {8368,"Modification of a DN across a naming context is not permitted.","ERROR_DS_CROSS_NC_DN_RENAME"}, {8369,"The attribute cannot be modified because it is owned by the system.","ERROR_DS_CANT_MOD_SYSTEM_ONLY"}, {8370,"Only the replicator can perform this function.","ERROR_DS_REPLICATOR_ONLY"}, {8371,"The specified class is not defined.","ERROR_DS_OBJ_CLASS_NOT_DEFINED"}, {8372,"The specified class is not a subclass.","ERROR_DS_OBJ_CLASS_NOT_SUBCLASS"}, {8373,"The name reference is invalid.","ERROR_DS_NAME_REFERENCE_INVALID"}, {8374,"A cross reference already exists.","ERROR_DS_CROSS_REF_EXISTS"}, {8375,"It is not permitted to delete a master cross reference.","ERROR_DS_CANT_DEL_MASTER_CROSSREF"}, {8376,"Subtree notifications are only supported on NC heads.","ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD"}, {8377,"Notification filter is too complex.","ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX"}, {8378,"Schema update failed: duplicate RDN.","ERROR_DS_DUP_RDN"}, {8379,"Schema update failed: duplicate OID","ERROR_DS_DUP_OID"}, {8380,"Schema update failed: duplicate MAPI identifier.","ERROR_DS_DUP_MAPI_ID"}, {8381,"Schema update failed: duplicate schema-id GUID.","ERROR_DS_DUP_SCHEMA_ID_GUID"}, {8382,"Schema update failed: duplicate LDAP display name.","ERROR_DS_DUP_LDAP_DISPLAY_NAME"}, {8383,"Schema update failed: range-lower less than range upper","ERROR_DS_SEMANTIC_ATT_TEST"}, {8384,"Schema update failed: syntax mismatch","ERROR_DS_SYNTAX_MISMATCH"}, {8385,"Schema deletion failed: attribute is used in must-contain","ERROR_DS_EXISTS_IN_MUST_HAVE"}, {8386,"Schema deletion failed: attribute is used in may-contain","ERROR_DS_EXISTS_IN_MAY_HAVE"}, {8387,"Schema update failed: attribute in may-contain does not exist","ERROR_DS_NONEXISTENT_MAY_HAVE"}, {8388,"Schema update failed: attribute in must-contain does not exist","ERROR_DS_NONEXISTENT_MUST_HAVE"}, {8389,"Schema update failed: class in aux-class list does not exist or is not an auxiliary class","ERROR_DS_AUX_CLS_TEST_FAIL"}, {8390,"Schema update failed: class in poss-superiors does not exist","ERROR_DS_NONEXISTENT_POSS_SUP"}, {8391,"Schema update failed: class in subclassof list does not exist or does not satisfy hierarchy rules","ERROR_DS_SUB_CLS_TEST_FAIL"}, {8392,"Schema update failed: Rdn-Att-Id has wrong syntax","ERROR_DS_BAD_RDN_ATT_ID_SYNTAX"}, {8393,"Schema deletion failed: class is used as auxiliary class","ERROR_DS_EXISTS_IN_AUX_CLS"}, {8394,"Schema deletion failed: class is used as sub class","ERROR_DS_EXISTS_IN_SUB_CLS"}, {8395,"Schema deletion failed: class is used as poss superior","ERROR_DS_EXISTS_IN_POSS_SUP"}, {8396,"Schema update failed in recalculating validation cache.","ERROR_DS_RECALCSCHEMA_FAILED"}, {8397,"The tree deletion is not finished.","ERROR_DS_TREE_DELETE_NOT_FINISHED"}, {8398,"The requested delete operation could not be performed.","ERROR_DS_CANT_DELETE"}, {8399,"Cannot read the governs class identifier for the schema record.","ERROR_DS_ATT_SCHEMA_REQ_ID"}, {8400,"The attribute schema has bad syntax.","ERROR_DS_BAD_ATT_SCHEMA_SYNTAX"}, {8401,"The attribute could not be cached.","ERROR_DS_CANT_CACHE_ATT"}, {8402,"The class could not be cached.","ERROR_DS_CANT_CACHE_CLASS"}, {8403,"The attribute could not be removed from the cache.","ERROR_DS_CANT_REMOVE_ATT_CACHE"}, {8404,"The class could not be removed from the cache.","ERROR_DS_CANT_REMOVE_CLASS_CACHE"}, {8405,"The distinguished name attribute could not be read.","ERROR_DS_CANT_RETRIEVE_DN"}, {8406,"No superior reference has been configured for the directory service. The directory service is therefore unable to issue referrals to objects outside this forest.","ERROR_DS_MISSING_SUPREF"}, {8407,"The instance type attribute could not be retrieved.","ERROR_DS_CANT_RETRIEVE_INSTANCE"}, {8408,"An internal error has occurred.","ERROR_DS_CODE_INCONSISTENCY"}, {8409,"A database error has occurred.","ERROR_DS_DATABASE_ERROR"}, {8410,"The attribute GOVERNSID is missing.","ERROR_DS_GOVERNSID_MISSING"}, {8411,"An expected attribute is missing.","ERROR_DS_MISSING_EXPECTED_ATT"}, {8412,"The specified naming context is missing a cross reference.","ERROR_DS_NCNAME_MISSING_CR_REF"}, {8413,"A security checking error has occurred.","ERROR_DS_SECURITY_CHECKING_ERROR"}, {8414,"The schema is not loaded.","ERROR_DS_SCHEMA_NOT_LOADED"}, {8415,"Schema allocation failed. Please check if the machine is running low on memory.","ERROR_DS_SCHEMA_ALLOC_FAILED"}, {8416,"Failed to obtain the required syntax for the attribute schema.","ERROR_DS_ATT_SCHEMA_REQ_SYNTAX"}, {8417,"The global catalog verification failed. The global catalog is not available or does not support the operation. Some part of the directory is currently not available.","ERROR_DS_GCVERIFY_ERROR"}, {8418,"The replication operation failed because of a schema mismatch between the servers involved.","ERROR_DS_DRA_SCHEMA_MISMATCH"}, {8419,"The DSA object could not be found.","ERROR_DS_CANT_FIND_DSA_OBJ"}, {8420,"The naming context could not be found.","ERROR_DS_CANT_FIND_EXPECTED_NC"}, {8421,"The naming context could not be found in the cache.","ERROR_DS_CANT_FIND_NC_IN_CACHE"}, {8422,"The child object could not be retrieved.","ERROR_DS_CANT_RETRIEVE_CHILD"}, {8423,"The modification was not permitted for security reasons.","ERROR_DS_SECURITY_ILLEGAL_MODIFY"}, {8424,"The operation cannot replace the hidden record.","ERROR_DS_CANT_REPLACE_HIDDEN_REC"}, {8425,"The hierarchy file is invalid.","ERROR_DS_BAD_HIERARCHY_FILE"}, {8426,"The attempt to build the hierarchy table failed.","ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED"}, {8427,"The directory configuration parameter is missing from the registry.","ERROR_DS_CONFIG_PARAM_MISSING"}, {8428,"The attempt to count the address book indices failed.","ERROR_DS_COUNTING_AB_INDICES_FAILED"}, {8429,"The allocation of the hierarchy table failed.","ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED"}, {8430,"The directory service encountered an internal failure.","ERROR_DS_INTERNAL_FAILURE"}, {8431,"The directory service encountered an unknown failure.","ERROR_DS_UNKNOWN_ERROR"}, {8432,"A root object requires a class of 'top'.","ERROR_DS_ROOT_REQUIRES_CLASS_TOP"}, {8433,"This directory server is shutting down, and cannot take ownership of new floating single-master operation roles.","ERROR_DS_REFUSING_FSMO_ROLES"}, {8434,"The directory service is missing mandatory configuration information, and is unable to determine the ownership of floating single-master operation roles.","ERROR_DS_MISSING_FSMO_SETTINGS"}, {8435,"The directory service was unable to transfer ownership of one or more floating single-master operation roles to other servers.","ERROR_DS_UNABLE_TO_SURRENDER_ROLES"}, {8436,"The replication operation failed.","ERROR_DS_DRA_GENERIC"}, {8437,"An invalid parameter was specified for this replication operation.","ERROR_DS_DRA_INVALID_PARAMETER"}, {8438,"The directory service is too busy to complete the replication operation at this time.","ERROR_DS_DRA_BUSY"}, {8439,"The distinguished name specified for this replication operation is invalid.","ERROR_DS_DRA_BAD_DN"}, {8440,"The naming context specified for this replication operation is invalid.","ERROR_DS_DRA_BAD_NC"}, {8441,"The distinguished name specified for this replication operation already exists.","ERROR_DS_DRA_DN_EXISTS"}, {8442,"The replication system encountered an internal error.","ERROR_DS_DRA_INTERNAL_ERROR"}, {8443,"The replication operation encountered a database inconsistency.","ERROR_DS_DRA_INCONSISTENT_DIT"}, {8444,"The server specified for this replication operation could not be contacted.","ERROR_DS_DRA_CONNECTION_FAILED"}, {8445,"The replication operation encountered an object with an invalid instance type.","ERROR_DS_DRA_BAD_INSTANCE_TYPE"}, {8446,"The replication operation failed to allocate memory.","ERROR_DS_DRA_OUT_OF_MEM"}, {8447,"The replication operation encountered an error with the mail system.","ERROR_DS_DRA_MAIL_PROBLEM"}, {8448,"The replication reference information for the target server already exists.","ERROR_DS_DRA_REF_ALREADY_EXISTS"}, {8449,"The replication reference information for the target server does not exist.","ERROR_DS_DRA_REF_NOT_FOUND"}, {8450,"The naming context cannot be removed because it is replicated to another server.","ERROR_DS_DRA_OBJ_IS_REP_SOURCE"}, {8451,"The replication operation encountered a database error.","ERROR_DS_DRA_DB_ERROR"}, {8452,"The naming context is in the process of being removed or is not replicated from the specified server.","ERROR_DS_DRA_NO_REPLICA"}, {8453,"Replication access was denied.","ERROR_DS_DRA_ACCESS_DENIED"}, {8454,"The requested operation is not supported by this version of the directory service.","ERROR_DS_DRA_NOT_SUPPORTED"}, {8455,"The replication remote procedure call was cancelled.","ERROR_DS_DRA_RPC_CANCELLED"}, {8456,"The source server is currently rejecting replication requests.","ERROR_DS_DRA_SOURCE_DISABLED"}, {8457,"The destination server is currently rejecting replication requests.","ERROR_DS_DRA_SINK_DISABLED"}, {8458,"The replication operation failed due to a collision of object names.","ERROR_DS_DRA_NAME_COLLISION"}, {8459,"The replication source has been reinstalled.","ERROR_DS_DRA_SOURCE_REINSTALLED"}, {8460,"The replication operation failed because a required parent object is missing.","ERROR_DS_DRA_MISSING_PARENT"}, {8461,"The replication operation was preempted.","ERROR_DS_DRA_PREEMPTED"}, {8462,"The replication synchronization attempt was abandoned because of a lack of updates.","ERROR_DS_DRA_ABANDON_SYNC"}, {8463,"The replication operation was terminated because the system is shutting down.","ERROR_DS_DRA_SHUTDOWN"}, {8464,"Synchronization attempt failed because the destination DC is currently waiting to synchronize new partial attributes from source. This condition is normal if a recent schema change modified the partial attribute set. The destination partial attribute set is not a subset of the source partial attribute set.","ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET"}, {8465,"The replication synchronization attempt failed because a master replica attempted to sync from a partial replica.","ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA"}, {8466,"The server specified for this replication operation was contacted, but that server was unable to contact an additional server needed to complete the operation.","ERROR_DS_DRA_EXTN_CONNECTION_FAILED"}, {8467,"The version of the Active Directory schema of the source forest is not compatible with the version of Active Directory on this computer.","ERROR_DS_INSTALL_SCHEMA_MISMATCH"}, {8468,"Schema update failed: An attribute with the same link identifier already exists.","ERROR_DS_DUP_LINK_ID"}, {8469,"Name translation: Generic processing error.","ERROR_DS_NAME_ERROR_RESOLVING"}, {8470,"Name translation: Could not find the name or insufficient right to see name.","ERROR_DS_NAME_ERROR_NOT_FOUND"}, {8471,"Name translation: Input name mapped to more than one output name.","ERROR_DS_NAME_ERROR_NOT_UNIQUE"}, {8472,"Name translation: Input name found, but not the associated output format.","ERROR_DS_NAME_ERROR_NO_MAPPING"}, {8473,"Name translation: Unable to resolve completely, only the domain was found.","ERROR_DS_NAME_ERROR_DOMAIN_ONLY"}, {8474,"Name translation: Unable to perform purely syntactical mapping at the client without going out to the wire.","ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING"}, {8475,"Modification of a constructed attribute is not allowed.","ERROR_DS_CONSTRUCTED_ATT_MOD"}, {8476,"The OM-Object-Class specified is incorrect for an attribute with the specified syntax.","ERROR_DS_WRONG_OM_OBJ_CLASS"}, {8477,"The replication request has been posted; waiting for reply.","ERROR_DS_DRA_REPL_PENDING"}, {8478,"The requested operation requires a directory service, and none was available.","ERROR_DS_DS_REQUIRED"}, {8479,"The LDAP display name of the class or attribute contains non-ASCII characters.","ERROR_DS_INVALID_LDAP_DISPLAY_NAME"}, {8480,"The requested search operation is only supported for base searches.","ERROR_DS_NON_BASE_SEARCH"}, {8481,"The search failed to retrieve attributes from the database.","ERROR_DS_CANT_RETRIEVE_ATTS"}, {8482,"The schema update operation tried to add a backward link attribute that has no corresponding forward link.","ERROR_DS_BACKLINK_WITHOUT_LINK"}, {8483,"Source and destination of a cross domain move do not agree on the object's epoch number. Either source or destination does not have the latest version of the object.","ERROR_DS_EPOCH_MISMATCH"}, {8484,"Source and destination of a cross domain move do not agree on the object's current name. Either source or destination does not have the latest version of the object.","ERROR_DS_SRC_NAME_MISMATCH"}, {8485,"Source and destination of a cross domain move operation are identical. Caller should use local move operation instead of cross domain move operation.","ERROR_DS_SRC_AND_DST_NC_IDENTICAL"}, {8486,"Source and destination for a cross domain move are not in agreement on the naming contexts in the forest. Either source or destination does not have the latest version of the Partitions container.","ERROR_DS_DST_NC_MISMATCH"}, {8487,"Destination of a cross domain move is not authoritative for the destination naming context.","ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC"}, {8488,"Source and destination of a cross domain move do not agree on the identity of the source object. Either source or destination does not have the latest version of the source object.","ERROR_DS_SRC_GUID_MISMATCH"}, {8489,"Object being moved across domains is already known to be deleted by the destination server. The source server does not have the latest version of the source object.","ERROR_DS_CANT_MOVE_DELETED_OBJECT"}, {8490,"Another operation, which requires exclusive access to the PDC PSMO, is already in progress.","ERROR_DS_PDC_OPERATION_IN_PROGRESS"}, {8491,"A cross domain move operation failed such that the two versions of the moved object exist - one each in the source and destination domains. The destination object needs to be removed to restore the system to a consistent state.","ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD"}, {8492,"This object may not be moved across domain boundaries either because cross domain moves for this class are disallowed, or the object has some special characteristics, e.g.: trust account or restricted RID, which prevent its move.","ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION"}, {8493,"Can't move objects with memberships across domain boundaries as once moved, this would violate the membership conditions of the account group. Remove the object from any account group memberships and retry.","ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS"}, {8494,"A naming context head must be the immediate child of another naming context head, not of an interior node.","ERROR_DS_NC_MUST_HAVE_NC_PARENT"}, {8495,"The directory cannot validate the proposed naming context name because it does not hold a replica of the naming context above the proposed naming context. Please ensure that the domain naming master role is held by a server that is configured as a global catalog server, and that the server is up to date with its replication partners. (Applies only to Windows 2000 Domain Naming masters)","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE"}, {8496,"Destination domain must be in native mode.","ERROR_DS_DST_DOMAIN_NOT_NATIVE"}, {8497,"The operation cannot be performed because the server does not have an infrastructure container in the domain of interest.","ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER"}, {8498,"Cross-domain move of non-empty account groups is not allowed.","ERROR_DS_CANT_MOVE_ACCOUNT_GROUP"}, {8499,"Cross-domain move of non-empty resource groups is not allowed.","ERROR_DS_CANT_MOVE_RESOURCE_GROUP"}, {8500,"The search flags for the attribute are invalid. The ANR bit is valid only on attributes of Unicode or Teletex strings.","ERROR_DS_INVALID_SEARCH_FLAG"}, {8501,"Tree deletions starting at an object which has an NC head as a descendant are not allowed.","ERROR_DS_NO_TREE_DELETE_ABOVE_NC"}, {8502,"The directory service failed to lock a tree in preparation for a tree deletion because the tree was in use.","ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE"}, {8503,"The directory service failed to identify the list of objects to delete while attempting a tree deletion.","ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE"}, {8504,"Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0x%2. Click OK to shut down the system and reboot into Directory Services Restore Mode. Check the event log for detailed information.","ERROR_DS_SAM_INIT_FAILURE"}, {8505,"Only an administrator can modify the membership list of an administrative group.","ERROR_DS_SENSITIVE_GROUP_VIOLATION"}, {8506,"Cannot change the primary group ID of a domain controller account.","ERROR_DS_CANT_MOD_PRIMARYGROUPID"}, {8507,"An attempt is made to modify the base schema.","ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD"}, {8508,"Adding a new mandatory attribute to an existing class, deleting a mandatory attribute from an existing class, or adding an optional attribute to the special class Top that is not a backlink attribute (directly or through inheritance, for example, by adding or deleting an auxiliary class) is not allowed.","ERROR_DS_NONSAFE_SCHEMA_CHANGE"}, {8509,"Schema update is not allowed on this DC because the DC is not the schema FSMO Role Owner.","ERROR_DS_SCHEMA_UPDATE_DISALLOWED"}, {8510,"An object of this class cannot be created under the schema container. You can only create attribute-schema and class-schema objects under the schema container.","ERROR_DS_CANT_CREATE_UNDER_SCHEMA"}, {8511,"The replica/child install failed to get the objectVersion attribute on the schema container on the source DC. Either the attribute is missing on the schema container or the credentials supplied do not have permission to read it.","ERROR_DS_INSTALL_NO_SRC_SCH_VERSION"}, {8512,"The replica/child install failed to read the objectVersion attribute in the SCHEMA section of the file schema.ini in the system32 directory.","ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE"}, {8513,"The specified group type is invalid.","ERROR_DS_INVALID_GROUP_TYPE"}, {8514,"Cannot nest global groups in a mixed domain if the group is security-enabled.","ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN"}, {8515,"Cannot nest local groups in a mixed domain if the group is security-enabled.","ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN"}, {8516,"A global group cannot have a local group as a member.","ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER"}, {8517,"A global group cannot have a universal group as a member.","ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER"}, {8518,"A universal group cannot have a local group as a member.","ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER"}, {8519,"A global group cannot have a cross-domain member.","ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER"}, {8520,"A local group cannot have another cross-domain local group as a member.","ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER"}, {8521,"A group with primary members cannot change to a security-disabled group.","ERROR_DS_HAVE_PRIMARY_MEMBERS"}, {8522,"The schema cache load failed to convert the string default SD on a class-schema object.","ERROR_DS_STRING_SD_CONVERSION_FAILED"}, {8523,"Only DSAs configured to be Global Catalog servers should be allowed to hold the Domain Naming Master FSMO role. (Applies only to Windows 2000 servers)","ERROR_DS_NAMING_MASTER_GC"}, {8524,"The DSA operation is unable to proceed because of a DNS lookup failure.","ERROR_DS_LOOKUP_FAILURE"}, {8525,"While processing a change to the DNS Host Name for an object, the Service Principal Name values could not be kept in sync.","ERROR_DS_COULDNT_UPDATE_SPNS"}, {8526,"The Security Descriptor attribute could not be read.","ERROR_DS_CANT_RETRIEVE_SD"}, {8527,"The object requested was not found, but an object with that key was found.","ERROR_DS_KEY_NOT_UNIQUE"}, {8528,"The syntax of the linked attributed being added is incorrect. Forward links can only have syntax 2.5.5.1, 2.5.5.7, and 2.5.5.14, and backlinks can only have syntax 2.5.5.1.","ERROR_DS_WRONG_LINKED_ATT_SYNTAX"}, {8529,"Security Account Manager needs to get the boot password.","ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD"}, {8530,"Security Account Manager needs to get the boot key from floppy disk.","ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY"}, {8531,"Directory Service cannot start.","ERROR_DS_CANT_START"}, {8532,"Directory Services could not start.","ERROR_DS_INIT_FAILURE"}, {8533,"The connection between client and server requires packet privacy or better.","ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION"}, {8534,"The source domain may not be in the same forest as destination.","ERROR_DS_SOURCE_DOMAIN_IN_FOREST"}, {8535,"The destination domain must be in the forest.","ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST"}, {8536,"The operation requires that destination domain auditing be enabled.","ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED"}, {8537,"The operation couldn't locate a DC for the source domain.","ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN"}, {8538,"The source object must be a group or user.","ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER"}, {8539,"The source object's SID already exists in destination forest.","ERROR_DS_SRC_SID_EXISTS_IN_FOREST"}, {8540,"The source and destination object must be of the same type.","ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH"}, {8541,"Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0x%2. Click OK to shut down the system and reboot into Safe Mode. Check the event log for detailed information.","ERROR_SAM_INIT_FAILURE"}, {8542,"Schema information could not be included in the replication request.","ERROR_DS_DRA_SCHEMA_INFO_SHIP"}, {8543,"The replication operation could not be completed due to a schema incompatibility.","ERROR_DS_DRA_SCHEMA_CONFLICT"}, {8544,"The replication operation could not be completed due to a previous schema incompatibility.","ERROR_DS_DRA_EARLIER_SCHEMA_CONLICT"}, {8545,"The replication update could not be applied because either the source or the destination has not yet received information regarding a recent cross-domain move operation.","ERROR_DS_DRA_OBJ_NC_MISMATCH"}, {8546,"The requested domain could not be deleted because there exist domain controllers that still host this domain.","ERROR_DS_NC_STILL_HAS_DSAS"}, {8547,"The requested operation can be performed only on a global catalog server.","ERROR_DS_GC_REQUIRED"}, {8548,"A local group can only be a member of other local groups in the same domain.","ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY"}, {8549,"Foreign security principals cannot be members of universal groups.","ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS"}, {8550,"The attribute is not allowed to be replicated to the GC because of security reasons.","ERROR_DS_CANT_ADD_TO_GC"}, {8551,"The checkpoint with the PDC could not be taken because there are too many modifications being processed currently.","ERROR_DS_NO_CHECKPOINT_WITH_PDC"}, {8552,"The operation requires that source domain auditing be enabled.","ERROR_DS_SOURCE_AUDITING_NOT_ENABLED"}, {8553,"Security principal objects can only be created inside domain naming contexts.","ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC"}, {8554,"A Service Principal Name (SPN) could not be constructed because the provided hostname is not in the necessary format.","ERROR_DS_INVALID_NAME_FOR_SPN"}, {8555,"A Filter was passed that uses constructed attributes.","ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS"}, {8556,"The unicodePwd attribute value must be enclosed in double quotes.","ERROR_DS_UNICODEPWD_NOT_IN_QUOTES"}, {8557,"Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased.","ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED"}, {8558,"For security reasons, the operation must be run on the destination DC.","ERROR_DS_MUST_BE_RUN_ON_DST_DC"}, {8559,"For security reasons, the source DC must be NT4SP4 or greater.","ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER"}, {8560,"Critical Directory Service System objects cannot be deleted during tree delete operations. The tree delete may have been partially performed.","ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ"}, {8561,"Directory Services could not start because of the following error: %1. Error Status: 0x%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further.","ERROR_DS_INIT_FAILURE_CONSOLE"}, {8562,"Security Accounts Manager initialization failed because of the following error: %1. Error Status: 0x%2. Please click OK to shutdown the system. You can use the recovery console to diagnose the system further.","ERROR_DS_SAM_INIT_FAILURE_CONSOLE"}, {8563,"The version of the operating system installed is incompatible with the current forest functional level. You must upgrade to a new version of the operating system before this server can become a domain controller in this forest.","ERROR_DS_FOREST_VERSION_TOO_HIGH"}, {8564,"The version of the operating system installed is incompatible with the current domain functional level. You must upgrade to a new version of the operating system before this server can become a domain controller in this domain.","ERROR_DS_DOMAIN_VERSION_TOO_HIGH"}, {8565,"This version of the operating system installed on this server no longer supports the current forest functional level. You must raise the forest functional level before this server can become a domain controller in this forest.","ERROR_DS_FOREST_VERSION_TOO_LOW"}, {8566,"This version of the operating system installed on this server no longer supports the current domain functional level. You must raise the domain functional level before this server can become a domain controller in this domain.","ERROR_DS_DOMAIN_VERSION_TOO_LOW"}, {8567,"The version of the operating system installed on this server is incompatible with the functional level of the domain or forest.","ERROR_DS_INCOMPATIBLE_VERSION"}, {8568,"The functional level of the domain (or forest) cannot be raised to the requested value, because there exist one or more domain controllers in the domain (or forest) that are at a lower incompatible functional level.","ERROR_DS_LOW_DSA_VERSION"}, {8569,"The forest functional level cannot be raised to the requested level since one or more domains are still in mixed domain mode. All domains in the forest must be in native mode before you can raise the forest functional level.","ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN"}, {8570,"The sort order requested is not supported.","ERROR_DS_NOT_SUPPORTED_SORT_ORDER"}, {8571,"The requested name already exists as a unique identifier.","ERROR_DS_NAME_NOT_UNIQUE"}, {8572,"The machine account was created pre-NT4. The account needs to be recreated.","ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4"}, {8573,"The database is out of version store.","ERROR_DS_OUT_OF_VERSION_STORE"}, {8574,"Unable to continue operation because multiple conflicting controls were used.","ERROR_DS_INCOMPATIBLE_CONTROLS_USED"}, {8575,"Unable to find a valid security descriptor reference domain for this partition.","ERROR_DS_NO_REF_DOMAIN"}, {8576,"Schema update failed: The link identifier is reserved.","ERROR_DS_RESERVED_LINK_ID"}, {8577,"Schema update failed: There are no link identifiers available.","ERROR_DS_LINK_ID_NOT_AVAILABLE"}, {8578,"An account group cannot have a universal group as a member.","ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER"}, {8579,"Rename or move operations on naming context heads or read-only objects are not allowed.","ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE"}, {8580,"Move operations on objects in the schema naming context are not allowed.","ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC"}, {8581,"A system flag has been set on the object and does not allow the object to be moved or renamed.","ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG"}, {8582,"This object is not allowed to change its grandparent container. Moves are not forbidden on this object, but are restricted to sibling containers.","ERROR_DS_MODIFYDN_WRONG_GRANDPARENT"}, {8583,"Unable to resolve completely, a referral to another forest is generated.","ERROR_DS_NAME_ERROR_TRUST_REFERRAL"}, {8584,"The requested action is not supported on standard server.","ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER"}, {8585,"Could not access a partition of the Active Directory located on a remote server. Make sure at least one server is running for the partition in question.","ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD"}, {8586,"The directory cannot validate the proposed naming context (or partition) name because it does not hold a replica nor can it contact a replica of the naming context above the proposed naming context. Please ensure that the parent naming context is properly registered in DNS, and at least one replica of this naming context is reachable by the Domain Naming master.","ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2"}, {8587,"The thread limit for this request was exceeded.","ERROR_DS_THREAD_LIMIT_EXCEEDED"}, {8588,"The Global catalog server is not in the closet site.","ERROR_DS_NOT_CLOSEST"}, {8589,"The DS cannot derive a service principal name (SPN) with which to mutually authenticate the target server because the corresponding server object in the local DS database has no serverReference attribute.","ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF"}, {8590,"The Directory Service failed to enter single user mode.","ERROR_DS_SINGLE_USER_MODE_FAILED"}, {8591,"The Directory Service cannot parse the script because of a syntax error.","ERROR_DS_NTDSCRIPT_SYNTAX_ERROR"}, {8592,"The Directory Service cannot process the script because of an error.","ERROR_DS_NTDSCRIPT_PROCESS_ERROR"}, {8593,"The directory service cannot perform the requested operation because the servers involved are of different replication epochs (which is usually related to a domain rename that is in progress).","ERROR_DS_DIFFERENT_REPL_EPOCHS"}, {8594,"The directory service binding must be renegotiated due to a change in the server extensions information.","ERROR_DS_DRS_EXTENSIONS_CHANGED"}, {8595,"Operation not allowed on a disabled cross ref.","ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR"}, {8596,"Schema update failed: No values for msDS-IntId are available.","ERROR_DS_NO_MSDS_INTID"}, {8597,"Schema update failed: Duplicate msDS-IntId. Retry the operation.","ERROR_DS_DUP_MSDS_INTID"}, {8598,"Schema deletion failed: attribute is used in rDNAttID.","ERROR_DS_EXISTS_IN_RDNATTID"}, {8599,"The directory service failed to authorize the request.","ERROR_DS_AUTHORIZATION_FAILED"}, {8600,"The Directory Service cannot process the script because it is invalid.","ERROR_DS_INVALID_SCRIPT"}, {8601,"The remote create cross reference operation failed on the Domain Naming Master FSMO. The operation's error is in the extended data.","ERROR_DS_REMOTE_CROSSREF_OP_FAILED"}, {8602,"A cross reference is in use locally with the same name.","ERROR_DS_CROSS_REF_BUSY"}, {8603,"The DS cannot derive a service principal name (SPN) with which to mutually authenticate the target server because the server's domain has been deleted from the forest.","ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN"}, {8604,"Writeable NCs prevent this DC from demoting.","ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC"}, {8605,"The requested object has a non-unique identifier and cannot be retrieved.","ERROR_DS_DUPLICATE_ID_FOUND"}, {8606,"Insufficient attributes were given to create an object. This object may not exist because it may have been deleted and already garbage collected.","ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT"}, {8607,"The group cannot be converted due to attribute restrictions on the requested group type.","ERROR_DS_GROUP_CONVERSION_ERROR"}, {8608,"Cross-domain move of non-empty basic application groups is not allowed.","ERROR_DS_CANT_MOVE_APP_BASIC_GROUP"}, {8609,"Cross-domain move on non-empty query based application groups is not allowed.","ERROR_DS_CANT_MOVE_APP_QUERY_GROUP"}, {8610,"The role owner could not be verified because replication of its partition has not occurred recently.","ERROR_DS_ROLE_NOT_VERIFIED"}, {8611,"The target container for a redirection of a well-known object container cannot already be a special container.","ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL"}, {8612,"The Directory Service cannot perform the requested operation because a domain rename operation is in progress.","ERROR_DS_DOMAIN_RENAME_IN_PROGRESS"}, {8613,"The Active Directory detected an Active Directory child partition below the requested new partition name. The Active Directory's partition hierarchy must be created in a top-down method.","ERROR_DS_EXISTING_AD_CHILD_NC"}, {8614,"The Active Directory cannot replicate with this server because the time since the last replication with this server has exceeded the tombstone lifetime.","ERROR_DS_REPL_LIFETIME_EXCEEDED"}, {8615,"The requested operation is not allowed on an object under the system container.","ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER"}, {8616,"The LDAP servers network send queue has filled up because the client is not processing the results of it's requests fast enough. No more requests will be processed until the client catches up. If the client does not catch up then it will be disconnected.","ERROR_DS_LDAP_SEND_QUEUE_FULL"}, {8617,"The scheduled replication did not take place because the system was too busy to execute the request within the schedule window. The replication queue is overloaded. Consider reducing the number of partners or decreasing the scheduled replication frequency.","ERROR_DS_DRA_OUT_SCHEDULE_WINDOW"}, {9001,"DNS server unable to interpret format.","DNS_ERROR_RCODE_FORMAT_ERROR"}, {9002,"DNS server failure.","DNS_ERROR_RCODE_SERVER_FAILURE"}, {9003,"DNS name does not exist.","DNS_ERROR_RCODE_NAME_ERROR"}, {9004,"DNS request not supported by name server.","DNS_ERROR_RCODE_NOT_IMPLEMENTED"}, {9005,"DNS operation refused.","DNS_ERROR_RCODE_REFUSED"}, {9006,"DNS name that ought not exist, does exist.","DNS_ERROR_RCODE_YXDOMAIN"}, {9007,"DNS RR set that ought not exist, does exist.","DNS_ERROR_RCODE_YXRRSET"}, {9008,"DNS RR set that ought to exist, does not exist.","DNS_ERROR_RCODE_NXRRSET"}, {9009,"DNS server not authoritative for zone.","DNS_ERROR_RCODE_NOTAUTH"}, {9010,"DNS name in update or prereq is not in zone.","DNS_ERROR_RCODE_NOTZONE"}, {9016,"DNS signature failed to verify.","DNS_ERROR_RCODE_BADSIG"}, {9017,"DNS bad key.","DNS_ERROR_RCODE_BADKEY"}, {9018,"DNS signature validity expired.","DNS_ERROR_RCODE_BADTIME"}, {9501,"No records found for given DNS query.","DNS_INFO_NO_RECORDS"}, {9502,"Bad DNS packet.","DNS_ERROR_BAD_PACKET"}, {9503,"No DNS packet.","DNS_ERROR_NO_PACKET"}, {9504,"DNS error, check rcode.","DNS_ERROR_RCODE"}, {9505,"Unsecured DNS packet.","DNS_ERROR_UNSECURE_PACKET"}, {9551,"Invalid DNS type.","DNS_ERROR_INVALID_TYPE"}, {9552,"Invalid IP address.","DNS_ERROR_INVALID_IP_ADDRESS"}, {9553,"Invalid property.","DNS_ERROR_INVALID_PROPERTY"}, {9554,"Try DNS operation again later.","DNS_ERROR_TRY_AGAIN_LATER"}, {9555,"Record for given name and type is not unique.","DNS_ERROR_NOT_UNIQUE"}, {9556,"DNS name does not comply with RFC specifications.","DNS_ERROR_NON_RFC_NAME"}, {9557,"DNS name is a fully-qualified DNS name.","DNS_STATUS_FQDN"}, {9558,"DNS name is dotted (multi-label).","DNS_STATUS_DOTTED_NAME"}, {9559,"DNS name is a single-part name.","DNS_STATUS_SINGLE_PART_NAME"}, {9560,"DSN name contains an invalid character.","DNS_ERROR_INVALID_NAME_CHAR"}, {9561,"DNS name is entirely numeric.","DNS_ERROR_NUMERIC_NAME"}, {9562,"The operation requested is not permitted on a DNS root server.","DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER"}, {9563,"The record could not be created because this part of the DNS namespace has been delegated to another server.","DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION"}, {9564,"The DNS server could not find a set of root hints.","DNS_ERROR_CANNOT_FIND_ROOT_HINTS"}, {9565,"The DNS server found root hints but they were not consistent across all adapters.","DNS_ERROR_INCONSISTENT_ROOT_HINTS"}, {9601,"DNS zone does not exist.","DNS_ERROR_ZONE_DOES_NOT_EXIST"}, {9602,"DNS zone information not available.","DNS_ERROR_NO_ZONE_INFO"}, {9603,"Invalid operation for DNS zone.","DNS_ERROR_INVALID_ZONE_OPERATION"}, {9604,"Invalid DNS zone configuration.","DNS_ERROR_ZONE_CONFIGURATION_ERROR"}, {9605,"DNS zone has no start of authority (SOA) record.","DNS_ERROR_ZONE_HAS_NO_SOA_RECORD"}, {9606,"DNS zone has no name server (NS) record.","DNS_ERROR_ZONE_HAS_NO_NS_RECORDS"}, {9607,"DNS zone is locked.","DNS_ERROR_ZONE_LOCKED"}, {9608,"DNS zone creation failed.","DNS_ERROR_ZONE_CREATION_FAILED"}, {9609,"DNS zone already exists.","DNS_ERROR_ZONE_ALREADY_EXISTS"}, {9610,"DNS automatic zone already exists.","DNS_ERROR_AUTOZONE_ALREADY_EXISTS"}, {9611,"Invalid DNS zone type.","DNS_ERROR_INVALID_ZONE_TYPE"}, {9612,"Secondary DNS zone requires master IP address.","DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP"}, {9613,"DNS zone not secondary.","DNS_ERROR_ZONE_NOT_SECONDARY"}, {9614,"Need secondary IP address.","DNS_ERROR_NEED_SECONDARY_ADDRESSES"}, {9615,"WINS initialization failed.","DNS_ERROR_WINS_INIT_FAILED"}, {9616,"Need WINS servers.","DNS_ERROR_NEED_WINS_SERVERS"}, {9617,"NBTSTAT initialization call failed.","DNS_ERROR_NBSTAT_INIT_FAILED"}, {9618,"Invalid delete of start of authority (SOA)","DNS_ERROR_SOA_DELETE_INVALID"}, {9619,"A conditional forwarding zone already exists for that name.","DNS_ERROR_FORWARDER_ALREADY_EXISTS"}, {9620,"This zone must be configured with one or more master DNS server IP addresses.","DNS_ERROR_ZONE_REQUIRES_MASTER_IP"}, {9621,"The operation cannot be performed because this zone is shutdown.","DNS_ERROR_ZONE_IS_SHUTDOWN"}, {9651,"Primary DNS zone requires datafile.","DNS_ERROR_PRIMARY_REQUIRES_DATAFILE"}, {9652,"Invalid datafile name for DNS zone.","DNS_ERROR_INVALID_DATAFILE_NAME"}, {9653,"Failed to open datafile for DNS zone.","DNS_ERROR_DATAFILE_OPEN_FAILURE"}, {9654,"Failed to write datafile for DNS zone.","DNS_ERROR_FILE_WRITEBACK_FAILED"}, {9655,"Failure while reading datafile for DNS zone.","DNS_ERROR_DATAFILE_PARSING"}, {9701,"DNS record does not exist.","DNS_ERROR_RECORD_DOES_NOT_EXIST"}, {9702,"DNS record format error.","DNS_ERROR_RECORD_FORMAT"}, {9703,"Node creation failure in DNS.","DNS_ERROR_NODE_CREATION_FAILED"}, {9704,"Unknown DNS record type.","DNS_ERROR_UNKNOWN_RECORD_TYPE"}, {9705,"DNS record timed out.","DNS_ERROR_RECORD_TIMED_OUT"}, {9706,"Name not in DNS zone.","DNS_ERROR_NAME_NOT_IN_ZONE"}, {9707,"CNAME loop detected.","DNS_ERROR_CNAME_LOOP"}, {9708,"Node is a CNAME DNS record.","DNS_ERROR_NODE_IS_CNAME"}, {9709,"A CNAME record already exists for given name.","DNS_ERROR_CNAME_COLLISION"}, {9710,"Record only at DNS zone root.","DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT"}, {9711,"DNS record already exists.","DNS_ERROR_RECORD_ALREADY_EXISTS"}, {9712,"Secondary DNS zone data error.","DNS_ERROR_SECONDARY_DATA"}, {9713,"Could not create DNS cache data.","DNS_ERROR_NO_CREATE_CACHE_DATA"}, {9714,"DNS name does not exist.","DNS_ERROR_NAME_DOES_NOT_EXIST"}, {9715,"Could not create pointer (PTR) record.","DNS_WARNING_PTR_CREATE_FAILED"}, {9716,"DNS domain was undeleted.","DNS_WARNING_DOMAIN_UNDELETED"}, {9717,"The directory service is unavailable.","DNS_ERROR_DS_UNAVAILABLE"}, {9718,"DNS zone already exists in the directory service.","DNS_ERROR_DS_ZONE_ALREADY_EXISTS"}, {9719,"DNS server not creating or reading the boot file for the directory service integrated DNS zone.","DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE"}, {9751,"DNS AXFR (zone transfer) complete.","DNS_INFO_AXFR_COMPLETE"}, {9752,"DNS zone transfer failed.","DNS_ERROR_AXFR"}, {9753,"Added local WINS server.","DNS_INFO_ADDED_LOCAL_WINS"}, {9801,"Secure update call needs to continue update request.","DNS_STATUS_CONTINUE_NEEDED"}, {9851,"TCP/IP network protocol not installed.","DNS_ERROR_NO_TCPIP"}, {9852,"No DNS servers configured for local system.","DNS_ERROR_NO_DNS_SERVERS"}, {9901,"The specified directory partition does not exist.","DNS_ERROR_DP_DOES_NOT_EXIST"}, {9902,"The specified directory partition already exists.","DNS_ERROR_DP_ALREADY_EXISTS"}, {9903,"The DNS server is not enlisted in the specified directory partition.","DNS_ERROR_DP_NOT_ENLISTED"}, {9904,"The DNS server is already enlisted in the specified directory partition.","DNS_ERROR_DP_ALREADY_ENLISTED"}, {9905,"The directory partition is not available at this time. Please wait a few minutes and try again.","DNS_ERROR_DP_NOT_AVAILABLE"}, {9906,"The application directory partition operation failed. The domain controller holding the domain naming master role is down or unable to service the request or is not running Windows Server 2003.","DNS_ERROR_DP_FSMO_ERROR"}, {10004,"A blocking operation was interrupted by a call to WSACancelBlockingCall.","WSAEINTR"}, {10009,"The file handle supplied is not valid.","WSAEBADF"}, {10013,"An attempt was made to access a socket in a way forbidden by its access permissions.","WSAEACCES"}, {10014,"The system detected an invalid pointer address in attempting to use a pointer argument in a call.","WSAEFAULT"}, {10022,"An invalid argument was supplied.","WSAEINVAL"}, {10024,"Too many open sockets.","WSAEMFILE"}, {10035,"A non-blocking socket operation could not be completed immediately.","WSAEWOULDBLOCK"}, {10036,"A blocking operation is currently executing.","WSAEINPROGRESS"}, {10037,"An operation was attempted on a non-blocking socket that already had an operation in progress.","WSAEALREADY"}, {10038,"An operation was attempted on something that is not a socket.","WSAENOTSOCK"}, {10039,"A required address was omitted from an operation on a socket.","WSAEDESTADDRREQ"}, {10040,"A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself.","WSAEMSGSIZE"}, {10041,"A protocol was specified in the socket function call that does not support the semantics of the socket type requested.","WSAEPROTOTYPE"}, {10042,"An unknown, invalid, or unsupported option or level was specified in a getsockopt or setsockopt call.","WSAENOPROTOOPT"}, {10043,"The requested protocol has not been configured into the system, or no implementation for it exists.","WSAEPROTONOSUPPORT"}, {10044,"The support for the specified socket type does not exist in this address family.","WSAESOCKTNOSUPPORT"}, {10045,"The attempted operation is not supported for the type of object referenced.","WSAEOPNOTSUPP"}, {10046,"The protocol family has not been configured into the system or no implementation for it exists.","WSAEPFNOSUPPORT"}, {10047,"An address incompatible with the requested protocol was used.","WSAEAFNOSUPPORT"}, {10048,"Only one usage of each socket address (protocol/network address/port) is normally permitted.","WSAEADDRINUSE"}, {10049,"The requested address is not valid in its context.","WSAEADDRNOTAVAIL"}, {10050,"A socket operation encountered a dead network.","WSAENETDOWN"}, {10051,"A socket operation was attempted to an unreachable network.","WSAENETUNREACH"}, {10052,"The connection has been broken due to keep-alive activity detecting a failure while the operation was in progress.","WSAENETRESET"}, {10053,"An established connection was aborted by the software in your host machine.","WSAECONNABORTED"}, {10054,"An existing connection was forcibly closed by the remote host.","WSAECONNRESET"}, {10055,"An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.","WSAENOBUFS"}, {10056,"A connect request was made on an already connected socket.","WSAEISCONN"}, {10057,"A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.","WSAENOTCONN"}, {10058,"A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call.","WSAESHUTDOWN"}, {10059,"Too many references to some kernel object.","WSAETOOMANYREFS"}, {10060,"A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.","WSAETIMEDOUT"}, {10061,"No connection could be made because the target machine actively refused it.","WSAECONNREFUSED"}, {10062,"Cannot translate name.","WSAELOOP"}, {10063,"Name component or name was too long.","WSAENAMETOOLONG"}, {10064,"A socket operation failed because the destination host was down.","WSAEHOSTDOWN"}, {10065,"A socket operation was attempted to an unreachable host.","WSAEHOSTUNREACH"}, {10066,"Cannot remove a directory that is not empty.","WSAENOTEMPTY"}, {10067,"A Windows Sockets implementation may have a limit on the number of applications that may use it simultaneously.","WSAEPROCLIM"}, {10068,"Ran out of quota.","WSAEUSERS"}, {10069,"Ran out of disk quota.","WSAEDQUOT"}, {10070,"File handle reference is no longer available.","WSAESTALE"}, {10071,"Item is not available locally.","WSAEREMOTE"}, {10091,"WSAStartup cannot function at this time because the underlying system it uses to provide network services is currently unavailable.","WSASYSNOTREADY"}, {10092,"The Windows Sockets version requested is not supported.","WSAVERNOTSUPPORTED"}, {10093,"Either the application has not called WSAStartup, or WSAStartup failed.","WSANOTINITIALISED"}, {10101,"Returned by WSARecv or WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence.","WSAEDISCON"}, {10102,"No more results can be returned by WSALookupServiceNext.","WSAENOMORE"}, {10103,"A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled.","WSAECANCELLED"}, {10104,"The procedure call table is invalid.","WSAEINVALIDPROCTABLE"}, {10105,"The requested service provider is invalid.","WSAEINVALIDPROVIDER"}, {10106,"The requested service provider could not be loaded or initialized.","WSAEPROVIDERFAILEDINIT"}, {10107,"A system call that should never fail has failed.","WSASYSCALLFAILURE"}, {10108,"No such service is known. The service cannot be found in the specified name space.","WSASERVICE_NOT_FOUND"}, {10109,"The specified class was not found.","WSATYPE_NOT_FOUND"}, {10110,"No more results can be returned by WSALookupServiceNext.","WSA_E_NO_MORE"}, {10111,"A call to WSALookupServiceEnd was made while this call was still processing. The call has been canceled.","WSA_E_CANCELLED"}, {10112,"A database query failed because it was actively refused.","WSAEREFUSED"}, {11001,"No such host is known.","WSAHOST_NOT_FOUND"}, {11002,"This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server.","WSATRY_AGAIN"}, {11003,"A non-recoverable error occurred during a database lookup.","WSANO_RECOVERY"}, {11004,"The requested name is valid, but no data of the requested type was found.","WSANO_DATA"}, {11005,"At least one reserve has arrived.","WSA_QOS_RECEIVERS"}, {11006,"At least one path has arrived.","WSA_QOS_SENDERS"}, {11007,"There are no senders.","WSA_QOS_NO_SENDERS"}, {11008,"There are no receivers.","WSA_QOS_NO_RECEIVERS"}, {11009,"Reserve has been confirmed.","WSA_QOS_REQUEST_CONFIRMED"}, {11010,"Error due to lack of resources.","WSA_QOS_ADMISSION_FAILURE"}, {11011,"Rejected for administrative reasons - bad credentials.","WSA_QOS_POLICY_FAILURE"}, {11012,"Unknown or conflicting style.","WSA_QOS_BAD_STYLE"}, {11013,"Problem with some part of the filterspec or providerspecific buffer in general.","WSA_QOS_BAD_OBJECT"}, {11014,"Problem with some part of the flowspec.","WSA_QOS_TRAFFIC_CTRL_ERROR"}, {11015,"General QOS error.","WSA_QOS_GENERIC_ERROR"}, {11016,"An invalid or unrecognized service type was found in the flowspec.","WSA_QOS_ESERVICETYPE"}, {11017,"An invalid or inconsistent flowspec was found in the QOS structure.","WSA_QOS_EFLOWSPEC"}, {11018,"Invalid QOS provider-specific buffer.","WSA_QOS_EPROVSPECBUF"}, {11019,"An invalid QOS filter style was used.","WSA_QOS_EFILTERSTYLE"}, {11020,"An invalid QOS filter type was used.","WSA_QOS_EFILTERTYPE"}, {11021,"An incorrect number of QOS FILTERSPECs were specified in the FLOWDESCRIPTOR.","WSA_QOS_EFILTERCOUNT"}, {11022,"An object with an invalid ObjectLength field was specified in the QOS provider-specific buffer.","WSA_QOS_EOBJLENGTH"}, {11023,"An incorrect number of flow descriptors was specified in the QOS structure.","WSA_QOS_EFLOWCOUNT"}, {11024,"An unrecognized object was found in the QOS provider-specific buffer.","WSA_QOS_EUNKNOWNPSOBJ"}, {11025,"An invalid policy object was found in the QOS provider-specific buffer.","WSA_QOS_EPOLICYOBJ"}, {11026,"An invalid QOS flow descriptor was found in the flow descriptor list.","WSA_QOS_EFLOWDESC"}, {11027,"An invalid or inconsistent flowspec was found in the QOS provider-specific buffer.","WSA_QOS_EPSFLOWSPEC"}, {11028,"An invalid FILTERSPEC was found in the QOS provider-specific buffer.","WSA_QOS_EPSFILTERSPEC"}, {11029,"An invalid shape discard mode object was found in the QOS provider-specific buffer.","WSA_QOS_ESDMODEOBJ"}, {11030,"An invalid shaping rate object was found in the QOS provider-specific buffer.","WSA_QOS_ESHAPERATEOBJ"}, {11031,"A reserved policy element was found in the QOS provider-specific buffer.","WSA_QOS_RESERVED_PETYPE"}, {12000,"The IO was completed by a filter.","ERROR_FLT_IO_COMPLETE"}, {12001,"The buffer is too small to contain the entry. No information has been written to the buffer.","ERROR_FLT_BUFFER_TOO_SMALL"}, {12002,"A handler was not defined by the filter for this operation.","ERROR_FLT_NO_HANDLER_DEFINED"}, {12003,"A context is already defined for this object.","ERROR_FLT_CONTEXT_ALREADY_DEFINED"}, {12004,"Asynchronous requests are not valid for this operation.","ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST"}, {12005,"Disallow the Fast IO path for this operation.","ERROR_FLT_DISALLOW_FAST_IO"}, {12006,"An invalid name request was made. The name requested cannot be retrieved at this time.","ERROR_FLT_INVALID_NAME_REQUEST"}, {12007,"Posting this operation to a worker thread for further processing is not safe at this time because it could lead to a system deadlock. ","ERROR_FLT_NOT_SAFE_TO_POST_OPERATION"}, {12008,"The Filter Manager was not initialized when a filter tried to register. Make sure that the Filter Manager is getting loaded as a driver. ","ERROR_FLT_NOT_INITIALIZED"}, {12009,"The filter is not ready for attachment to volumes because it has not finished initializing (FltStartFiltering has not been called). ","ERROR_FLT_FILTER_NOT_READY"}, {12010,"The filter must cleanup any operation specific context at this time because it is being removed from the system before the operation is completed by the lower drivers. ","ERROR_FLT_POST_OPERATION_CLEANUP"}, {12011,"The Filter Manager had an internal error from which it cannot recover, therefore the operation has been failed. This is usually the result of a filter returning an invalid value from a pre-operation callback.","ERROR_FLT_INTERNAL_ERROR"}, {12012,"The object specified for this action is in the process of being deleted, therefore the action requested cannot be completed at this time.","ERROR_FLT_DELETING_OBJECT"}, {12013,"Non-paged pool must be used for this type of context.","ERROR_FLT_MUST_BE_NONPAGED_POOL"}, {12014,"A duplicate handler definition has been provided for an operation.","ERROR_FLT_DUPLICATE_ENTRY"}, {12015,"The callback data queue has been disabled.","ERROR_FLT_CBDQ_DISABLED"}, {12016,"Do not attach the filter to the volume at this time.","ERROR_FLT_DO_NOT_ATTACH"}, {12017,"Do not detach the filter from the volume at this time.","ERROR_FLT_DO_NOT_DETACH"}, {12018,"An instance already exists at this altitude on the volume specified.","ERROR_FLT_INSTANCE_ALTITUDE_COLLISION"}, {12019,"An instance already exists with this name on the volume specified.","ERROR_FLT_INSTANCE_NAME_COLLISION"}, {12020,"The system could not find the filter specified.","ERROR_FLT_FILTER_NOT_FOUND"}, {12021,"The system could not find the volume specified.","ERROR_FLT_VOLUME_NOT_FOUND"}, {12022,"The system could not find the instance specified.","ERROR_FLT_INSTANCE_NOT_FOUND"}, {12023,"No registered context allocation definition was found for the given request.","ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND"}, {12024,"An invalid parameter was specified during context registration.","ERROR_FLT_INVALID_CONTEXT_REGISTRATION"}, {12025,"The name requested was not found in Filter Manager's name cache and could not be retrieved from the file system.","ERROR_FLT_NAME_CACHE_MISS"}, {12026,"The requested device object does not exist for the given volume.","ERROR_FLT_NO_DEVICE_OBJECT"}, {12027,"The specified volume is already mounted.","ERROR_FLT_VOLUME_ALREADY_MOUNTED"}, {12028,"No waiter is present for the filter's reply to this message.","ERROR_FLT_NO_WAITER_FOR_REPLY"}, {13000,"The specified quick mode policy already exists.","ERROR_IPSEC_QM_POLICY_EXISTS"}, {13001,"The specified quick mode policy was not found.","ERROR_IPSEC_QM_POLICY_NOT_FOUND"}, {13002,"The specified quick mode policy is being used.","ERROR_IPSEC_QM_POLICY_IN_USE"}, {13003,"The specified main mode policy already exists.","ERROR_IPSEC_MM_POLICY_EXISTS"}, {13004,"The specified main mode policy was not found.","ERROR_IPSEC_MM_POLICY_NOT_FOUND"}, {13005,"The specified main mode policy is being used.","ERROR_IPSEC_MM_POLICY_IN_USE"}, {13006,"The specified main mode filter already exists.","ERROR_IPSEC_MM_FILTER_EXISTS"}, {13007,"The specified main mode filter was not found.","ERROR_IPSEC_MM_FILTER_NOT_FOUND"}, {13008,"The specified transport mode filter already exists.","ERROR_IPSEC_TRANSPORT_FILTER_EXISTS"}, {13009,"The specified transport mode filter does not exist.","ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND"}, {13010,"The specified main mode authentication list exists.","ERROR_IPSEC_MM_AUTH_EXISTS"}, {13011,"The specified main mode authentication list was not found.","ERROR_IPSEC_MM_AUTH_NOT_FOUND"}, {13012,"The specified quick mode policy is being used.","ERROR_IPSEC_MM_AUTH_IN_USE"}, {13013,"The specified main mode policy was not found.","ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND"}, {13014,"The specified quick mode policy was not found.","ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND"}, {13015,"The manifest file contains one or more syntax errors.","ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND"}, {13016,"The application attempted to activate a disabled activation context.","ERROR_IPSEC_TUNNEL_FILTER_EXISTS"}, {13017,"The requested lookup key was not found in any active activation context.","ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND"}, {13018,"The Main Mode filter is pending deletion.","ERROR_IPSEC_MM_FILTER_PENDING_DELETION"}, {13019,"The transport filter is pending deletion.","ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION"}, {13020,"The tunnel filter is pending deletion.","ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION"}, {13021,"The Main Mode policy is pending deletion.","ERROR_IPSEC_MM_POLICY_PENDING_DELETION"}, {13022,"The Main Mode authentication bundle is pending deletion.","ERROR_IPSEC_MM_AUTH_PENDING_DELETION"}, {13023,"The Quick Mode policy is pending deletion.","ERROR_IPSEC_QM_POLICY_PENDING_DELETION"}, {13024,"The Main Mode policy was successfully added, but some of the requested offers are not supported.","WARNING_IPSEC_MM_POLICY_PRUNED"}, {13025,"The Quick Mode policy was successfully added, but some of the requested offers are not supported.","WARNING_IPSEC_QM_POLICY_PRUNED"}, {13801,"IKE authentication credentials are unacceptable.","ERROR_IPSEC_IKE_AUTH_FAIL"}, {13802,"IKE security attributes are unacceptable.","ERROR_IPSEC_IKE_ATTRIB_FAIL"}, {13803,"IKE Negotiation in progress.","ERROR_IPSEC_IKE_NEGOTIATION_PENDING"}, {13804,"General processing error.","ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR"}, {13805,"Negotiation timed out.","ERROR_IPSEC_IKE_TIMED_OUT"}, {13806,"IKE failed to find valid machine certificate.","ERROR_IPSEC_IKE_NO_CERT"}, {13807,"IKE SA deleted by peer before establishment completed.","ERROR_IPSEC_IKE_SA_DELETED"}, {13808,"IKE SA deleted before establishment completed.","ERROR_IPSEC_IKE_SA_REAPED"}, {13809,"Negotiation request sat in Queue too long.","ERROR_IPSEC_IKE_MM_ACQUIRE_DROP"}, {13810,"Negotiation request sat in Queue too long.","ERROR_IPSEC_IKE_QM_ACQUIRE_DROP"}, {13811,"Negotiation request sat in Queue too long.","ERROR_IPSEC_IKE_QUEUE_DROP_MM"}, {13812,"Negotiation request sat in Queue too long.","ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM"}, {13813,"No response from peer.","ERROR_IPSEC_IKE_DROP_NO_RESPONSE"}, {13814,"Negotiation took too long.","ERROR_IPSEC_IKE_MM_DELAY_DROP"}, {13815,"Negotiation took too long.","ERROR_IPSEC_IKE_QM_DELAY_DROP"}, {13816,"Unknown error occurred.","ERROR_IPSEC_IKE_ERROR"}, {13817,"Certificate Revocation Check failed.","ERROR_IPSEC_IKE_CRL_FAILED"}, {13818,"Invalid certificate key usage.","ERROR_IPSEC_IKE_INVALID_KEY_USAGE"}, {13819,"Invalid certificate type.","ERROR_IPSEC_IKE_INVALID_CERT_TYPE"}, {13820,"No private key associated with machine certificate.","ERROR_IPSEC_IKE_NO_PRIVATE_KEY"}, {13822,"Failure in Diffie-Hellman computation.","ERROR_IPSEC_IKE_DH_FAIL"}, {13824,"Invalid header.","ERROR_IPSEC_IKE_INVALID_HEADER"}, {13825,"No policy configured.","ERROR_IPSEC_IKE_NO_POLICY"}, {13826,"Failed to verify signature.","ERROR_IPSEC_IKE_INVALID_SIGNATURE"}, {13827,"Failed to authenticate using Kerberos.","ERROR_IPSEC_IKE_KERBEROS_ERROR"}, {13828,"Peer's certificate did not have a public key.","ERROR_IPSEC_IKE_NO_PUBLIC_KEY"}, {13829,"Error processing error payload.","ERROR_IPSEC_IKE_PROCESS_ERR"}, {13830,"Error processing SA payload.","ERROR_IPSEC_IKE_PROCESS_ERR_SA"}, {13831,"Error processing Proposal payload.","ERROR_IPSEC_IKE_PROCESS_ERR_PROP"}, {13832,"Error processing Transform payload.","ERROR_IPSEC_IKE_PROCESS_ERR_TRANS"}, {13833,"Error processing KE payload.","ERROR_IPSEC_IKE_PROCESS_ERR_KE"}, {13834,"Error processing ID payload.","ERROR_IPSEC_IKE_PROCESS_ERR_ID"}, {13835,"Error processing Cert payload.","ERROR_IPSEC_IKE_PROCESS_ERR_CERT"}, {13836,"Error processing Certificate Request payload.","ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ"}, {13837,"Error processing Hash payload.","ERROR_IPSEC_IKE_PROCESS_ERR_HASH"}, {13838,"Error processing Signature payload.","ERROR_IPSEC_IKE_PROCESS_ERR_SIG"}, {13839,"Error processing Nonce payload.","ERROR_IPSEC_IKE_PROCESS_ERR_NONCE"}, {13840,"Error processing Notify payload.","ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY"}, {13841,"Error processing Delete Payload.","ERROR_IPSEC_IKE_PROCESS_ERR_DELETE"}, {13842,"Error processing VendorId payload.","ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR"}, {13843,"Invalid payload received.","ERROR_IPSEC_IKE_INVALID_PAYLOAD"}, {13844,"Soft SA loaded.","ERROR_IPSEC_IKE_LOAD_SOFT_SA"}, {13845,"Soft SA torn down.","ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN"}, {13846,"Invalid cookie received..","ERROR_IPSEC_IKE_INVALID_COOKIE"}, {13847,"Peer failed to send valid machine certificate.","ERROR_IPSEC_IKE_NO_PEER_CERT"}, {13848,"Certification Revocation check of peer's certificate failed.","ERROR_IPSEC_IKE_PEER_CRL_FAILED"}, {13849,"New policy invalidated SAs formed with old policy.","ERROR_IPSEC_IKE_POLICY_CHANGE"}, {13850,"There is no available Main Mode IKE policy.","ERROR_IPSEC_IKE_NO_MM_POLICY"}, {13851,"Failed to enabled TCB privilege.","ERROR_IPSEC_IKE_NOTCBPRIV"}, {13852,"Failed to load SECURITY.DLL.","ERROR_IPSEC_IKE_SECLOADFAIL"}, {13853,"Failed to obtain security function table dispatch address from SSPI.","ERROR_IPSEC_IKE_FAILSSPINIT"}, {13854,"Failed to query Kerberos package to obtain max token size.","ERROR_IPSEC_IKE_FAILQUERYSSP"}, {13855,"Failed to obtain Kerberos server credentials for ISAKMP/ERROR_IPSEC_IKE service. Kerberos authentication will not function. The most likely reason for this is lack of domain membership. This is normal if your computer is a member of a workgroup.","ERROR_IPSEC_IKE_SRVACQFAIL"}, {13856,"Failed to determine SSPI principal name for ISAKMP/ERROR_IPSEC_IKE service (QueryCredentialsAttributes).","ERROR_IPSEC_IKE_SRVQUERYCRED"}, {13857,"Failed to obtain new SPI for the inbound SA from IPSec driver. The most common cause for this is that the driver does not have the correct filter. Check your policy to verify the filters.","ERROR_IPSEC_IKE_GETSPIFAIL"}, {13858,"Given filter is invalid.","ERROR_IPSEC_IKE_INVALID_FILTER"}, {13859,"Memory allocation failed.","ERROR_IPSEC_IKE_OUT_OF_MEMORY"}, {13860,"Failed to add Security Association to IPSec Driver. The most common cause for this is if the IKE negotiation took too long to complete. If the problem persists, reduce the load on the faulting machine.","ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED"}, {13861,"Invalid policy.","ERROR_IPSEC_IKE_INVALID_POLICY"}, {13862,"Invalid DOI.","ERROR_IPSEC_IKE_UNKNOWN_DOI"}, {13863,"Invalid situation.","ERROR_IPSEC_IKE_INVALID_SITUATION"}, {13864,"Diffie-Hellman failure.","ERROR_IPSEC_IKE_DH_FAILURE"}, {13865,"Invalid Diffie-Hellman group.","ERROR_IPSEC_IKE_INVALID_GROUP"}, {13866,"Error encrypting payload.","ERROR_IPSEC_IKE_ENCRYPT"}, {13867,"Error decrypting payload.","ERROR_IPSEC_IKE_DECRYPT"}, {13868,"Policy match error.","ERROR_IPSEC_IKE_POLICY_MATCH"}, {13869,"Unsupported ID.","ERROR_IPSEC_IKE_UNSUPPORTED_ID"}, {13870,"Hash verification failed.","ERROR_IPSEC_IKE_INVALID_HASH"}, {13871,"Invalid hash algorithm.","ERROR_IPSEC_IKE_INVALID_HASH_ALG"}, {13872,"Invalid hash size.","ERROR_IPSEC_IKE_INVALID_HASH_SIZE"}, {13873,"Invalid encryption algorithm.","ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG"}, {13874,"Invalid authentication algorithm.","ERROR_IPSEC_IKE_INVALID_AUTH_ALG"}, {13875,"Invalid certificate signature.","ERROR_IPSEC_IKE_INVALID_SIG"}, {13876,"Load failed.","ERROR_IPSEC_IKE_LOAD_FAILED"}, {13877,"Deleted via RPC call.","ERROR_IPSEC_IKE_RPC_DELETE"}, {13878,"Temporary state created to perform reinit. This is not a real failure.","ERROR_IPSEC_IKE_BENIGN_REINIT"}, {13879,"The lifetime value received in the Responder Lifetime Notify is below the Windows 2000 configured minimum value. Please fix the policy on the peer machine.","ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY"}, {13881,"Key length in certificate is too small for configured security requirements.","ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN"}, {13882,"Max number of established MM SAs to peer exceeded.","ERROR_IPSEC_IKE_MM_LIMIT"}, {13883,"IKE received a policy that disables negotiation.","ERROR_IPSEC_IKE_NEGOTIATION_DISABLED"}, {13884,"ERROR_IPSEC_IKE_NEG_STATUS_END","ERROR_IPSEC_IKE_NEG_STATUS_END"}, {14000,"The requested section was not present in the activation context.","ERROR_SXS_SECTION_NOT_FOUND"}, {14001,"This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.","ERROR_SXS_CANT_GEN_ACTCTX"}, {14002,"The application binding data format is invalid.","ERROR_SXS_INVALID_ACTCTXDATA_FORMAT"}, {14003,"The referenced assembly is not installed on your system.","ERROR_SXS_ASSEMBLY_NOT_FOUND"}, {14004,"The manifest file does not begin with the required tag and format information.","ERROR_SXS_MANIFEST_FORMAT_ERROR"}, {14005,"The manifest file contains one or more syntax errors.","ERROR_SXS_MANIFEST_PARSE_ERROR"}, {14006,"The application attempted to activate a disabled activation context.","ERROR_SXS_ACTIVATION_CONTEXT_DISABLED"}, {14007,"The requested lookup key was not found in any active activation context.","ERROR_SXS_KEY_NOT_FOUND"}, {14008,"A component version required by the application conflicts with another component version already active.","ERROR_SXS_VERSION_CONFLICT"}, {14009,"The type requested activation context section does not match the query API used.","ERROR_SXS_WRONG_SECTION_TYPE"}, {14010,"Lack of system resources has required isolated activation to be disabled for the current thread of execution.","ERROR_SXS_THREAD_QUERIES_DISABLED"}, {14011,"An attempt to set the process default activation context failed because the process default activation context was already set.","ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET"}, {14012,"The encoding group identifier specified is not recognized.","ERROR_SXS_UNKNOWN_ENCODING_GROUP"}, {14013,"The encoding requested is not recognized.","ERROR_SXS_UNKNOWN_ENCODING"}, {14014,"The manifest contains a reference to an invalid URI.","ERROR_SXS_INVALID_XML_NAMESPACE_URI"}, {14015,"The application manifest contains a reference to a dependent assembly which is not installed.","ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED"}, {14016,"The manifest for an assembly used by the application has a reference to a dependent assembly which is not installed.","ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED"}, {14017,"The manifest contains an attribute for the assembly identity which is not valid.","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE"}, {14018,"The manifest is missing the required default namespace specification on the assembly element.","ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE"}, {14019,"The manifest has a default namespace specified on the assembly element but its value is not \"urn:schemas-microsoft-com:asm.v1\".","ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE"}, {14020,"The private manifest probe has crossed the reparse-point-associated path.","ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT"}, {14021,"Two or more components referenced directly or indirectly by the application manifest have files by the same name.","ERROR_SXS_DUPLICATE_DLL_NAME"}, {14022,"Two or more components referenced directly or indirectly by the application manifest have window classes with the same name.","ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME"}, {14023,"Two or more components referenced directly or indirectly by the application manifest have the same COM server CLSIDs.","ERROR_SXS_DUPLICATE_CLSID"}, {14024,"Two or more components referenced directly or indirectly by the application manifest have proxies for the same COM interface IIDs.","ERROR_SXS_DUPLICATE_IID"}, {14025,"Two or more components referenced directly or indirectly by the application manifest have the same COM type library TLBIDs.","ERROR_SXS_DUPLICATE_TLBID"}, {14026,"Two or more components referenced directly or indirectly by the application manifest have the same COM ProgIDs.","ERROR_SXS_DUPLICATE_PROGID"}, {14027,"Two or more components referenced directly or indirectly by the application manifest are different versions of the same component which is not permitted.","ERROR_SXS_DUPLICATE_ASSEMBLY_NAME"}, {14028,"A component's file does not match the verification information present in the component manifest.","ERROR_SXS_FILE_HASH_MISMATCH"}, {14029,"The policy manifest contains one or more syntax errors.","ERROR_SXS_POLICY_PARSE_ERROR"}, {14030,"Manifest Parse Error : A string literal was expected, but no opening quote character was found.","ERROR_SXS_XML_E_MISSINGQUOTE"}, {14031,"Manifest Parse Error : Incorrect syntax was used in a comment.","ERROR_SXS_XML_E_COMMENTSYNTAX"}, {14032,"Manifest Parse Error : A name was started with an invalid character.","ERROR_SXS_XML_E_BADSTARTNAMECHAR"}, {14033,"Manifest Parse Error : A name contained an invalid character.","ERROR_SXS_XML_E_BADNAMECHAR"}, {14034,"Manifest Parse Error : A string literal contained an invalid character.","ERROR_SXS_XML_E_BADCHARINSTRING"}, {14035,"Manifest Parse Error : Invalid syntax for an XML declaration.","ERROR_SXS_XML_E_XMLDECLSYNTAX"}, {14036,"Manifest Parse Error : An invalid character was found in text content.","ERROR_SXS_XML_E_BADCHARDATA"}, {14037,"Manifest Parse Error : Required white space was missing.","ERROR_SXS_XML_E_MISSINGWHITESPACE"}, {14038,"Manifest Parse Error : The character '>' was expected.","ERROR_SXS_XML_E_EXPECTINGTAGEND"}, {14039,"Manifest Parse Error : A semi colon character was expected.","ERROR_SXS_XML_E_MISSINGSEMICOLON"}, {14040,"Manifest Parse Error : Unbalanced parentheses.","ERROR_SXS_XML_E_UNBALANCEDPAREN"}, {14041,"Manifest Parse Error : Internal error.","ERROR_SXS_XML_E_INTERNALERROR"}, {14042,"Manifest Parse Error : White space is not allowed at this location.","ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE"}, {14043,"Manifest Parse Error : End of file reached in invalid state for current encoding.","ERROR_SXS_XML_E_INCOMPLETE_ENCODING"}, {14044,"Manifest Parse Error : Missing parenthesis.","ERROR_SXS_XML_E_MISSING_PAREN"}, {14045,"Manifest Parse Error : A single or double closing quote character (\' or \") is missing.","ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE"}, {14046,"Manifest Parse Error : Multiple colons are not allowed in a name.","ERROR_SXS_XML_E_MULTIPLE_COLONS"}, {14047,"Manifest Parse Error : Invalid character for decimal digit.","ERROR_SXS_XML_E_INVALID_DECIMAL"}, {14048,"Manifest Parse Error : Invalid character for hexadecimal digit.","ERROR_SXS_XML_E_INVALID_HEXIDECIMAL"}, {14049,"Manifest Parse Error : Invalid Unicode character value for this platform.","ERROR_SXS_XML_E_INVALID_UNICODE"}, {14050,"Manifest Parse Error : Expecting white space or '?'.","ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK"}, {14051,"Manifest Parse Error : End tag was not expected at this location.","ERROR_SXS_XML_E_UNEXPECTEDENDTAG"}, {14052,"Manifest Parse Error : The following tags were not closed: %1.","ERROR_SXS_XML_E_UNCLOSEDTAG"}, {14053,"Manifest Parse Error : Duplicate attribute.","ERROR_SXS_XML_E_DUPLICATEATTRIBUTE"}, {14054,"Manifest Parse Error : Only one top level element is allowed in an XML document.","ERROR_SXS_XML_E_MULTIPLEROOTS"}, {14055,"Manifest Parse Error : Invalid at the top level of the document.","ERROR_SXS_XML_E_INVALIDATROOTLEVEL"}, {14056,"Manifest Parse Error : Invalid XML declaration.","ERROR_SXS_XML_E_BADXMLDECL"}, {14057,"Manifest Parse Error : XML document must have a top level element.","ERROR_SXS_XML_E_MISSINGROOT"}, {14058,"Manifest Parse Error : Unexpected end of file.","ERROR_SXS_XML_E_UNEXPECTEDEOF"}, {14059,"Manifest Parse Error : Parameter entities cannot be used inside markup declarations in an internal subset.","ERROR_SXS_XML_E_BADPEREFINSUBSET"}, {14060,"Manifest Parse Error : Element was not closed.","ERROR_SXS_XML_E_UNCLOSEDSTARTTAG"}, {14061,"Manifest Parse Error : End element was missing the character '>'.","ERROR_SXS_XML_E_UNCLOSEDENDTAG"}, {14062,"Manifest Parse Error : A string literal was not closed.","ERROR_SXS_XML_E_UNCLOSEDSTRING"}, {14063,"Manifest Parse Error : A comment was not closed.","ERROR_SXS_XML_E_UNCLOSEDCOMMENT"}, {14064,"Manifest Parse Error : A declaration was not closed.","ERROR_SXS_XML_E_UNCLOSEDDECL"}, {14065,"Manifest Parse Error : A CDATA section was not closed.","ERROR_SXS_XML_E_UNCLOSEDCDATA"}, {14066,"Manifest Parse Error : The namespace prefix is not allowed to start with the reserved string \"xml\".","ERROR_SXS_XML_E_RESERVEDNAMESPACE"}, {14067,"Manifest Parse Error : System does not support the specified encoding.","ERROR_SXS_XML_E_INVALIDENCODING"}, {14068,"Manifest Parse Error : Switch from current encoding to specified encoding not supported.","ERROR_SXS_XML_E_INVALIDSWITCH"}, {14069,"Manifest Parse Error : The name 'xml' is reserved and must be lower case.","ERROR_SXS_XML_E_BADXMLCASE"}, {14070,"Manifest Parse Error : The standalone attribute must have the value 'yes' or 'no'.","ERROR_SXS_XML_E_INVALID_STANDALONE"}, {14071,"Manifest Parse Error : The standalone attribute cannot be used in external entities.","ERROR_SXS_XML_E_UNEXPECTED_STANDALONE"}, {14072,"Manifest Parse Error : Invalid version number.","ERROR_SXS_XML_E_INVALID_VERSION"}, {14073,"Manifest Parse Error : Missing equals sign between attribute and attribute value.","ERROR_SXS_XML_E_MISSINGEQUALS"}, {14074,"Assembly Protection Error: Unable to recover the specified assembly.","ERROR_SXS_PROTECTION_RECOVERY_FAILED"}, {14075,"Assembly Protection Error: The public key for an assembly was too short to be allowed.","ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT"}, {14076,"Assembly Protection Error: The catalog for an assembly is not valid, or does not match the assembly's manifest.","ERROR_SXS_PROTECTION_CATALOG_NOT_VALID"}, {14077,"An HRESULT could not be translated to a corresponding Win32 error code.","ERROR_SXS_UNTRANSLATABLE_HRESULT"}, {14078,"Assembly Protection Error: The catalog for an assembly is missing.","ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING"}, {14079,"The supplied assembly identity is missing one or more attributes which must be present in this context.","ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE"}, {14080,"The supplied assembly identity has one or more attribute names that contain characters not permitted in XML names.","ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME"}, {14081,"The referenced assembly could not be found.","ERROR_SXS_ASSEMBLY_MISSING"}, {14082,"The activation context activation stack for the running thread of execution is corrupt.","ERROR_SXS_CORRUPT_ACTIVATION_STACK"}, {14083,"The application isolation metadata for this process or thread has become corrupt.","ERROR_SXS_CORRUPTION"}, {14084,"The activation context being deactivated is not the most recently activated one.","ERROR_SXS_EARLY_DEACTIVATION"}, {14085,"The activation context being deactivated is not active for the current thread of execution.","ERROR_SXS_INVALID_DEACTIVATION"}, {14086,"The activation context being deactivated has already been deactivated.","ERROR_SXS_MULTIPLE_DEACTIVATION"}, {14087,"A component used by the isolation facility has requested to terminate the process.","ERROR_SXS_PROCESS_TERMINATION_REQUESTED"}, {14088,"A kernel mode component is releasing a reference on an activation context.","ERROR_SXS_RELEASE_ACTIVATION_CONTEXT"}, {14089,"The activation context of system default assembly could not be generated.","ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY"}, {14090,"The value of an attribute in an identity is not within the legal range.","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE"}, {14091,"The name of an attribute in an identity is not within the legal range.","ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME"}, {14092,"An identity contains two definitions for the same attribute.","ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE"}, {14093,"The identity string is malformed. This may be due to a trailing comma, more than two unnamed attributes, missing attribute name or missing attribute value.","ERROR_SXS_IDENTITY_PARSE_ERROR"}, {15000,"The specified channel path is invalid. See extended error info for more details.","ERROR_EVT_INVALID_CHANNEL_PATH"}, {15001,"The specified query is invalid. See extended error info for more details.","ERROR_EVT_INVALID_QUERY"}, {15002,"The publisher did indicate they have a manifest/resource but a manifest/resource could not be found.","ERROR_EVT_PUBLISHER_MANIFEST_NOT_FOUND"}, {15003,"The publisher does not have a manifest and is performing an operation which requires they have a manifest.","ERROR_EVT_PUBLISHER_MANIFEST_NOT_SPECIFIED"}, {15004,"There is no registered template for specified event id.","ERROR_EVT_NO_REGISTERED_TEMPLATE"}, {15005,"The specified event was declared in the manifest to go a different channel than the one this publisher handle is bound to.","ERROR_EVT_EVENT_CHANNEL_MISMATCH"}, {15006,"The type of a specified substitution value does not match the type expected from the template definition. ","ERROR_EVT_UNEXPECTED_VALUE_TYPE"}, {15007,"The number of specified substitution values does not match the number expected from the template definition.","ERROR_EVT_UNEXPECTED_NUM_VALUES"}, {15008,"The specified channel could not be found. Check channel configuration.","ERROR_EVT_CHANNEL_NOT_FOUND"}, {15009,"The specified xml text was not well-formed. See Extended Error for more details.","ERROR_EVT_MALFORMED_XML_TEXT"}, {15010,"The specified channel path selects more than one instance of a channel. The operation requires that only one channel be selected. It may be necessary to scope channel path to version / publicKeyToken to select only one instance. ","ERROR_EVT_CHANNEL_PATH_TOO_GENERAL"}, {15011,"The query specified in channel configuration is not allowed to select any channel other than the one the config is associated with. ","ERROR_EVT_CONFIG_QUERY_NOT_SCOPED_TO_CHANNEL"}, {0xffffffff,NULL,NULL}, }; ================================================ FILE: Project/Syser/Source/ErrorCodeTable.h ================================================ #ifndef _ERROR_CODE_TABLE_H_ #define _ERROR_CODE_TABLE_H_ typedef struct _ERRORCODES { int Code; char* Description; char* Name; }ERRORCODES,*PERRORCODES; ERRORCODES ErrorCodes[]; #endif //_ERROR_CODE_TABLE_H_ ================================================ FILE: Project/Syser/Source/ErrorCodeWnd.cpp ================================================ #include "StdAfx.h" #include "ErrorCodeTable.h" #include "ErrorCodeWnd.h" WISP_MSG_MAP_BEGIN(CErrorCodeWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CErrorCodeWnd) WISP_MSG_EVENT_MAP_END CErrorCodeWnd::CErrorCodeWnd() { } CErrorCodeWnd::~CErrorCodeWnd() { } bool CErrorCodeWnd::OnCreate(IN WISP_MSG* pMsg) { InsertColumn(WSTR("Code"),140); InsertColumn(WSTR("Name"),345); InsertColumn(WSTR("Description"),345); UpdateContext(); return true; } void CErrorCodeWnd::UpdateContext() { HANDLE hItem; WCHAR Buffer[50]; for(int i=0; ErrorCodes[i].Name;i++) { TSPrintf(Buffer,WSTR("0x%08X [%d]"),ErrorCodes[i].Code,ErrorCodes[i].Code); hItem = InsertItem(Buffer); SetItemTextA(hItem,1,ErrorCodes[i].Name); SetItemTextA(hItem,2,ErrorCodes[i].Description); } } bool CErrorCodeWnd::OnClose(IN WISP_MSG* pMsg) { Show(WISP_SH_HIDDEN); return false; } ================================================ FILE: Project/Syser/Source/ErrorCodeWnd.h ================================================ #ifndef _ERROR_CODE_WND_H_ #define _ERROR_CODE_WND_H_ class CErrorCodeWnd:public CWispList { public: CErrorCodeWnd(); ~CErrorCodeWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG_EVENT_MAP void UpdateContext(); }; #endif //_MODULE_LIST_WND_ ================================================ FILE: Project/Syser/Source/FpuRegisterList.cpp ================================================ #include "StdAfx.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CFpuRegisterList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP_END(CWispList) bool CFpuRegisterList::OnCreate(IN WISP_MSG*pMsg) { m_ChgColor = ColorOption.clrChgText; m_NormalColor = ColorOption.clrText; m_SelectBKColor = ColorOption.clrSelectedFrame; SetDefaultTextColor(m_NormalColor); SetBGColor(ColorOption.clrBackground); InsertColumn(WISP_STR("Register"),90); InsertColumn(WISP_STR("Value"),180,WISP_WLCS_EDITABLE); m_hFpuRegItem[FPU_REG_ST_0] = InsertItem(WISP_STR("ST(0)")); m_hFpuRegItem[FPU_REG_ST_1] = InsertItem(WISP_STR("ST(1)")); m_hFpuRegItem[FPU_REG_ST_2] = InsertItem(WISP_STR("ST(2)")); m_hFpuRegItem[FPU_REG_ST_3] = InsertItem(WISP_STR("ST(3)")); m_hFpuRegItem[FPU_REG_ST_4] = InsertItem(WISP_STR("ST(4)")); m_hFpuRegItem[FPU_REG_ST_5] = InsertItem(WISP_STR("ST(5)")); m_hFpuRegItem[FPU_REG_ST_6] = InsertItem(WISP_STR("ST(6)")); m_hFpuRegItem[FPU_REG_ST_7] = InsertItem(WISP_STR("ST(7)")); m_hFpuRegItem[FPU_REG_STATE] = InsertItem(WISP_STR("FPU Status Word")); m_hFpuRegItem[FPU_REG_STATUS_B] = InsertItem(WISP_STR("FPU Busy"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_C3] = InsertItem(WISP_STR("Condition Code 3"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_TOP] = InsertItem(WISP_STR("Top of Stack Pointer"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_C2] = InsertItem(WISP_STR("Condition Code 2"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_C1] = InsertItem(WISP_STR("Condition Code 1"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_C0] = InsertItem(WISP_STR("Condition Code 0"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_ES] = InsertItem(WISP_STR("Error Summary Status"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_SF] = InsertItem(WISP_STR("Stack Fault"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_PE] = InsertItem(WISP_STR("Precision Exception"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_UE] = InsertItem(WISP_STR("Underflow Exception"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_OE] = InsertItem(WISP_STR("Overflow Exception"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_ZE] = InsertItem(WISP_STR("Zero Divide Exception"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_DE] = InsertItem(WISP_STR("Denormalized Exception"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_STATUS_IE] = InsertItem(WISP_STR("Invalid Operation Exception"),m_hFpuRegItem[FPU_REG_STATE]); m_hFpuRegItem[FPU_REG_CONTROL] = InsertItem(WISP_STR("FPU Control Word")); m_hFpuRegItem[FPU_REG_CONTROL_X] = InsertItem(WISP_STR("Infinity Control"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_RC] = InsertItem(WISP_STR("Rounding Control"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_PC] = InsertItem(WISP_STR("Precision Control"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_PM] = InsertItem(WISP_STR("Precision Mask"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_UM] = InsertItem(WISP_STR("Underflow Mask"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_OM] = InsertItem(WISP_STR("Overflow Mask"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_ZM] = InsertItem(WISP_STR("Zero Divide Mask"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_DM] = InsertItem(WISP_STR("Denormal Mask"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_CONTROL_IM] = InsertItem(WISP_STR("Invalid Mask"),m_hFpuRegItem[FPU_REG_CONTROL]); m_hFpuRegItem[FPU_REG_TAG_WORD] = InsertItem(WISP_STR("FPU Tag word")); m_hFpuRegItem[FPU_REG_TAG_0] = InsertItem(WISP_STR("TAG(0)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_1] = InsertItem(WISP_STR("TAG(1)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_2] = InsertItem(WISP_STR("TAG(2)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_3] = InsertItem(WISP_STR("TAG(3)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_4] = InsertItem(WISP_STR("TAG(4)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_5] = InsertItem(WISP_STR("TAG(5)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_6] = InsertItem(WISP_STR("TAG(6)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); m_hFpuRegItem[FPU_REG_TAG_7] = InsertItem(WISP_STR("TAG(7)"),m_hFpuRegItem[FPU_REG_TAG_WORD]); ResetContext(); return true; } bool CFpuRegisterList::OnGetFocus(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextItem(NULL); if(hItem) SelectItem(hItem); return true; } void CFpuRegisterList::UpdateContext() { WISP_CHAR ValueBuf[5000]; WORD wValue; BYTE *Value; int i,j; FPU_STATUS_REG *pFPUStatus; FPU_CONTROL_REG* pFPUControl; FPU_TAG_WORD_REG* pFPUTagWord; FPU_STATUS_REG *pOldFPUStatus; FPU_CONTROL_REG* pOldFPUControl; FPU_TAG_WORD_REG* pOldFPUTagWord; double dValue=98.123; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false || IsWindow()==false) return; DWORD dwCurrentCpuID=0; #ifdef CODE_OS_NT_DRV dwCurrentCpuID = GetCurrentCPULocalAPICID(); #endif if(dwCurrentCpuID!=m_nCPUIndex) gpSyser->m_pDebugger->GetCPUX86RegPtr(&m_X86RegPtr,m_nCPUIndex); else m_X86RegPtr=X86_REG_PTR; #ifdef CODE_OS_NT_DRV pFPUStatus =(FPU_STATUS_REG *) &FpuRegisterImage[CurrentFpuImageIndex][4]; pFPUControl = (FPU_CONTROL_REG*)&FpuRegisterImage[CurrentFpuImageIndex][0]; pFPUTagWord = (FPU_TAG_WORD_REG*)&FpuRegisterImage[CurrentFpuImageIndex][8]; pOldFPUStatus =(FPU_STATUS_REG *) &FpuRegisterImage[CurrentFpuImageIndex ^ 1][4]; pOldFPUControl = (FPU_CONTROL_REG*)&FpuRegisterImage[CurrentFpuImageIndex ^ 1][0]; pOldFPUTagWord = (FPU_TAG_WORD_REG*)&FpuRegisterImage[CurrentFpuImageIndex ^ 1][8]; Value=(BYTE *)&FpuRegisterImage[CurrentFpuImageIndex][28]; memcpy(&m_PrevFPUStatus,FpuRegisterImage[CurrentFpuImageIndex ^ 1],sizeof(m_PrevFPUStatus)); #else pFPUStatus =(FPU_STATUS_REG *) m_X86RegPtr.pFPUStatusWord; pFPUControl = (FPU_CONTROL_REG*)m_X86RegPtr.pFPUControlWord; pFPUTagWord = (FPU_TAG_WORD_REG*)m_X86RegPtr.pFPUTagWord; pOldFPUStatus =(FPU_STATUS_REG *) &m_PrevFPUStatus.ControlWord; pOldFPUControl = (FPU_CONTROL_REG*)&m_PrevFPUStatus.StatusWord; pOldFPUTagWord = (FPU_TAG_WORD_REG*)&m_PrevFPUStatus.TagWord; Value=(BYTE *)m_X86RegPtr.pFPURegisterArea; #endif for(i = 0; i < 8;i++) { TSPrintf(ValueBuf,WSTR("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x"), Value[0], Value[1], Value[2], Value[3], Value[4], Value[5], Value[6], Value[7], Value[8], Value[9]); SetItemText(m_hFpuRegItem[i],1,ValueBuf); for(j=0;j<10;j++) { if(Value[j]!=m_PrevFPUStatus.Reg[i][j]) //if(FpuRegisterImage[0][28+j+10*i]!=FpuRegisterImage[1][28+j+10*i]) { SetItemTextColor(m_hFpuRegItem[i],1,m_ChgColor); break; } } if(j==10) SetItemTextColor(m_hFpuRegItem[i],1,m_NormalColor); Value=Value+10; } //show FPU status register wValue = *(WORD*)pFPUStatus; TSPrintf(ValueBuf,WSTR("%04x"),wValue); SetItemText(m_hFpuRegItem[FPU_REG_STATE],1,ValueBuf); if(*(WORD*)pFPUStatus != *(WORD*)pOldFPUStatus) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_IE],1,pFPUStatus->IE?WSTR("1"):WSTR("0")); if(pFPUStatus->IE !=pOldFPUStatus->IE) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_IE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_IE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_DE],1,pFPUStatus->DE?WSTR("1"):WSTR("0")); if(pFPUStatus->DE !=pOldFPUStatus->DE) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_DE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_DE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_ZE],1,pFPUStatus->ZE?WSTR("1"):WSTR("0")); if(pFPUStatus->ZE !=pOldFPUStatus->ZE) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_ZE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_ZE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_OE],1,pFPUStatus->OE?WSTR("1"):WSTR("0")); if(pFPUStatus->OE !=pOldFPUStatus->OE) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_OE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_OE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_UE],1,pFPUStatus->UE?WSTR("1"):WSTR("0")); if(pFPUStatus->UE !=pOldFPUStatus->UE) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_UE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_UE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_PE],1,pFPUStatus->PE?WSTR("1"):WSTR("0")); if(pFPUStatus->PE !=pOldFPUStatus->PE) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_PE],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_PE],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_SF],1,pFPUStatus->SF?WSTR("1"):WSTR("0")); if(pFPUStatus->SF !=pOldFPUStatus->SF) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_SF],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_SF],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_ES],1,pFPUStatus->ES?WSTR("1"):WSTR("0")); if(pFPUStatus->ES !=pOldFPUStatus->ES) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_ES],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_ES],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C0],1,pFPUStatus->C0?WSTR("1"):WSTR("0")); if(pFPUStatus->C0 !=pOldFPUStatus->C0) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C0],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C0],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C1],1,pFPUStatus->C1?WSTR("1"):WSTR("0")); if(pFPUStatus->C1 !=pOldFPUStatus->C1) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C1],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C1],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C2],1,pFPUStatus->C2?WSTR("1"):WSTR("0")); if(pFPUStatus->C2 !=pOldFPUStatus->C2) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C2],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C2],1,m_NormalColor); TSPrintf(ValueBuf,WSTR("%x"),pFPUStatus->TOP); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_TOP],1,ValueBuf); if(pFPUStatus->TOP !=pOldFPUStatus->TOP) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_TOP],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_TOP],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C3],1,pFPUStatus->C3?WSTR("1"):WSTR("0")); if(pFPUStatus->C3 !=pOldFPUStatus->C3) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C3],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_C3],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_B],1,pFPUStatus->B?WSTR("1"):WSTR("0")); if(pFPUStatus->B !=pOldFPUStatus->B) SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_B],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_STATUS_B],1,m_NormalColor); //show FPU control register wValue = *(WORD*)pFPUControl; TSPrintf(ValueBuf,WSTR("%04x"),wValue); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL],1,ValueBuf); if(*(WORD*)pFPUControl != *(WORD*)pOldFPUControl) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_X],1,pFPUControl->X?WSTR("1"):WSTR("0")); if(pFPUControl->X !=pFPUControl->X) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_X],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_X],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_CONTROL_RC],1,pFPUControl->RC); if(pFPUControl->RC !=pFPUControl->RC) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_RC],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_RC],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_CONTROL_PC],1,pFPUControl->PC); if(pFPUControl->PC !=pFPUControl->PC) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_PC],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_PC],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_PM],1,pFPUControl->PM?WSTR("1"):WSTR("0")); if(pFPUControl->PM !=pFPUControl->PM) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_PM],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_PM],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_UM],1,pFPUControl->UM?WSTR("1"):WSTR("0")); if(pFPUControl->UM !=pFPUControl->UM) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_UM],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_UM],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_OM],1,pFPUControl->OM?WSTR("1"):WSTR("0")); if(pFPUControl->OM !=pFPUControl->OM) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_OM],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_OM],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_ZM],1,pFPUControl->ZM?WSTR("1"):WSTR("0")); if(pFPUControl->ZM !=pFPUControl->ZM) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_ZM],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_ZM],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_DM],1,pFPUControl->DM?WSTR("1"):WSTR("0")); if(pFPUControl->DM !=pFPUControl->DM) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_DM],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_DM],1,m_NormalColor); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_IM],1,pFPUControl->IM?WSTR("1"):WSTR("0")); if(pFPUControl->IM !=pFPUControl->IM) SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_IM],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_CONTROL_IM],1,m_NormalColor); //show fpu tag word register wValue = *(WORD*)pFPUTagWord; TSPrintf(ValueBuf,WSTR("%04x"),wValue); SetItemText(m_hFpuRegItem[FPU_REG_TAG_WORD],1,ValueBuf); if(*(WORD*)pFPUTagWord != *(WORD*)pFPUTagWord) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_WORD],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_WORD],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_0],1,pFPUTagWord->TAG0); if(pFPUTagWord->TAG0 != pOldFPUTagWord->TAG0) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_0],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_0],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_1],1,pFPUTagWord->TAG1); if(pFPUTagWord->TAG1 != pOldFPUTagWord->TAG1) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_1],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_1],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_2],1,pFPUTagWord->TAG2); if(pFPUTagWord->TAG2 != pOldFPUTagWord->TAG2) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_2],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_2],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_3],1,pFPUTagWord->TAG3); if(pFPUTagWord->TAG3 != pOldFPUTagWord->TAG3) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_3],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_3],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_4],1,pFPUTagWord->TAG4); if(pFPUTagWord->TAG4 != pOldFPUTagWord->TAG4) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_4],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_4],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_5],1,pFPUTagWord->TAG5); if(pFPUTagWord->TAG5 != pOldFPUTagWord->TAG5) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_5],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_5],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_6],1,pFPUTagWord->TAG6); if(pFPUTagWord->TAG6 != pOldFPUTagWord->TAG6) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_6],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_6],1,m_NormalColor); SetItemNum(m_hFpuRegItem[FPU_REG_TAG_7],1,pFPUTagWord->TAG7); if(pFPUTagWord->TAG7 != pOldFPUTagWord->TAG7) SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_7],1,m_ChgColor); else SetItemTextColor(m_hFpuRegItem[FPU_REG_TAG_7],1,m_NormalColor); } void CFpuRegisterList::ResetContext() { SelectItem(m_hFpuRegItem[FPU_REG_ST_0]); SetItemText(m_hFpuRegItem[FPU_REG_ST_0],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_1],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_2],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_3],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_4],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_5],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_6],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_ST_7],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_B],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C3],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_TOP],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C2],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C1],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_C0],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_ES],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_SF],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_PE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_UE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_OE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_ZE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_DE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_STATUS_IE],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_X],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_RC],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_PC],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_PM],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_UM],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_OM],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_ZM],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_DM],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_CONTROL_IM],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_WORD],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_0],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_1],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_2],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_3],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_4],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_5],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_6],1,WSTR("????????")); SetItemText(m_hFpuRegItem[FPU_REG_TAG_7],1,WSTR("????????")); memset(&m_PrevFPUStatus,0,sizeof(m_PrevFPUStatus)); } ================================================ FILE: Project/Syser/Source/FpuRegisterList.h ================================================ #ifndef _FPUREGISTERLIST_H_ #define _FPUREGISTERLIST_H_ enum FPU_REG_INDEX { FPU_REG_ST_0, FPU_REG_ST_1, FPU_REG_ST_2, FPU_REG_ST_3, FPU_REG_ST_4, FPU_REG_ST_5, FPU_REG_ST_6, FPU_REG_ST_7, FPU_REG_STATE, FPU_REG_STATUS_IE, FPU_REG_STATUS_DE, FPU_REG_STATUS_ZE, FPU_REG_STATUS_OE, FPU_REG_STATUS_UE, FPU_REG_STATUS_PE, FPU_REG_STATUS_SF, FPU_REG_STATUS_ES, FPU_REG_STATUS_C0, FPU_REG_STATUS_C1, FPU_REG_STATUS_C2, FPU_REG_STATUS_TOP, FPU_REG_STATUS_C3, FPU_REG_STATUS_B, FPU_REG_CONTROL, FPU_REG_CONTROL_IM, FPU_REG_CONTROL_DM, FPU_REG_CONTROL_ZM, FPU_REG_CONTROL_OM, FPU_REG_CONTROL_UM, FPU_REG_CONTROL_PM, FPU_REG_CONTROL_PC, FPU_REG_CONTROL_RC, FPU_REG_CONTROL_X, FPU_REG_TAG_WORD, FPU_REG_TAG_0, FPU_REG_TAG_1, FPU_REG_TAG_2, FPU_REG_TAG_3, FPU_REG_TAG_4, FPU_REG_TAG_5, FPU_REG_TAG_6, FPU_REG_TAG_7, FPU_REG_COUNT, }; class CFpuRegisterList : public CWispList { HANDLE m_hFpuRegItem[FPU_REG_COUNT]; COLORREF m_ChgColor; COLORREF m_NormalColor; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnGetFocus) void UpdateContext(); void ResetContext(); void UpdateContextWin32(); int GetCPUIndex()const {return m_nCPUIndex;} void SetCPUIndex(int Index) {m_nCPUIndex=Index;} private: int m_nCPUIndex; X86_CPU_REG_PTR m_X86RegPtr; FPU_SAVE_STATUS m_PrevFPUStatus; }; #endif /* _FPUREGISTERLIST_H_ */ ================================================ FILE: Project/Syser/Source/FunctionListWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "FunctionListWnd.h" WISP_MSG_MAP_BEGIN(CFunctionListWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CFunctionListWnd) WISP_MSG_EVENT_MAP_END CFunctionListWnd::CFunctionListWnd() { } CFunctionListWnd::~CFunctionListWnd() { } bool CFunctionListWnd::OnCreate(IN WISP_MSG* pMsg) { InsertColumn(WSTR("Function Name"),110); InsertColumn(WSTR("Start"),60); InsertColumn(WSTR("Length"),60); UpdateContext(); return true; } void CFunctionListWnd::UpdateContext() { } bool CFunctionListWnd::OnClose(IN WISP_MSG* pMsg) { Show(WISP_SH_HIDDEN); return false; } bool CFunctionListWnd::ItemExpandingNotify(HANDLE hItem) { return true; } void CFunctionListWnd::ItemUnexpandedNotify(HANDLE hItem) { } void CFunctionListWnd::ItemClickNotify(HANDLE hItem,int Col) { } ================================================ FILE: Project/Syser/Source/FunctionListWnd.h ================================================ #ifndef _FUNCTION_LIST_WND_ #define _FUNCTION_LIST_WND_ class CFunctionListWnd:public CWispList { public: CFunctionListWnd(); ~CFunctionListWnd(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG_EVENT_MAP public: bool ItemExpandingNotify(HANDLE hItem); void ItemUnexpandedNotify(HANDLE hItem); void ItemClickNotify(HANDLE hItem,int Col); void UpdateContext(); }; #endif ================================================ FILE: Project/Syser/Source/GDTWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CGDTWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_END(CWispList) CGDTWnd::CGDTWnd() { #ifdef CODE_OS_WIN m_pGDTAddress = gdtdata; m_dwGDTSize = 0x7FF; #else m_pGDTAddress = (void *)SyserGetGDTBase(&m_dwGDTSize); #endif m_dwBeginIndex = 0; } CGDTWnd::~CGDTWnd() { } void CGDTWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("GDT"),CWispRect(0,0,540,350),NULL,0,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); Center(); } } bool CGDTWnd::OnCreate(IN WISP_MSG*pMsg) { SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); InsertColumn(WISP_STR("Selector"),40); InsertColumn(WISP_STR("Type"),80); InsertColumn(WISP_STR("Base"),90); InsertColumn(WISP_STR("Limit"),100); InsertColumn(WISP_STR("DPL"),90); InsertColumn(WISP_STR("Attributes"),90); SetWindowText(WISP_STR("GDT TABLE")); UpdateContext(); return true; } bool CGDTWnd::OnClose(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } void CGDTWnd::UpdateContext() { ClearChildItem(); InsertGDT(); } bool CGDTWnd::InsertGDT() { WISP_CHAR display[64]; HANDLE hItem; DWORD dwSelector=0,dwGDTSize,dwShowSelector; VADDR32 dwGDTBase = 0; // DWORD dwLow,dwHigh; DWORD dwSegmentBase,dwSegmentLimit; DWORD i = 0,j; bool bLDTCommand = false; X86_SEGMENT_DESCRIPTOR *pSegDesc; //int nOrgArgc; WCHAR *Format=WSTR("%04x %s %08x %08x %d %s %s %s"); // X86_GATE_DECR *GateDecr; static WCHAR *DescType[16]={ WSTR("Reserved"), WSTR("TSS16 "), WSTR("LDT "), WSTR("TSS32 "), WSTR("CallG16 "), WSTR("TaskG "), WSTR("IntG16 "), WSTR("TrapG16 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("CallG32 "), WSTR("Reserved"), WSTR("IntG32 "), WSTR("TrapG32 "), }; dwGDTBase = PTR_TO_NUM(m_pGDTAddress); dwGDTSize = m_dwGDTSize; j = (dwGDTSize + 1) / sizeof(X86_SEGMENT_DESCRIPTOR); pSegDesc = (X86_SEGMENT_DESCRIPTOR *)NUM_TO_PTR(dwGDTBase); for(i = 0; i < j; i++) { dwSegmentBase = (pSegDesc[i].base_H1<<24) |(pSegDesc[i].base_H0 << 16)|(pSegDesc[i].base_L1 << 8)|pSegDesc[i].base_L0; dwSegmentLimit = (pSegDesc[i].limit_H << 16) | (pSegDesc[i].limit_L1<<8)|pSegDesc[i].limit_L0; if(!pSegDesc[i].P) { TSPrintf(display,WISP_STR("%04X"),bLDTCommand ? (i * 8) | 4 |pSegDesc[i].DPL:(i*8)|pSegDesc[i].DPL); hItem = InsertItem(display); SetItemText(hItem,1,DescType[pSegDesc[i].TYPE]); TSPrintf(display,WISP_STR("%08X"),dwSegmentBase); SetItemText(hItem,2,display); TSPrintf(display,WISP_STR("%08X"),dwSegmentLimit); SetItemText(hItem,3,display); TSPrintf(display,WISP_STR("%d"),pSegDesc[i].DPL); SetItemText(hItem,4,display); SetItemText(hItem,5,WISP_STR("NP ")); continue; } dwShowSelector = (i*8)|pSegDesc[i].DPL; if(bLDTCommand) dwShowSelector |= 4; if(pSegDesc[i].DT)//洢 { if(pSegDesc[i].G) dwSegmentLimit = (dwSegmentLimit << 12) | 0xfff; TSPrintf(display,WISP_STR("%04X"),dwShowSelector); hItem = InsertItem(display); if(pSegDesc[i].TYPE & 8)// SetItemText(hItem,1,pSegDesc[i].D ? WSTR("Code32 "):WSTR("Code16 ")); else SetItemText(hItem,1,pSegDesc[i].D ? WSTR("Data32 "):WSTR("Data16 ")); TSPrintf(display,WISP_STR("%08X"),dwSegmentBase); SetItemText(hItem,2,display); TSPrintf(display,WISP_STR("%08X"),dwSegmentLimit); SetItemText(hItem,3,display); TSPrintf(display,WISP_STR("%d"),pSegDesc[i].DPL); SetItemText(hItem,4,display); if(pSegDesc[i].TYPE & 8)// TSPrintf(display,WISP_STR("P %s %s"),(pSegDesc[i].TYPE & 2) ? WSTR("RE") : WSTR("EO"),(pSegDesc[i].TYPE & 4) ?WSTR("C "):WSTR(" ")); else TSPrintf(display,WISP_STR("P %s %s"),(pSegDesc[i].TYPE & 2) ? WSTR("RW") : WSTR("RO"),(pSegDesc[i].TYPE & 4) ? WSTR("ED"):WSTR(" ")); SetItemText(hItem,5,display); continue; } #if 0 //ϵͳ if( pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_16TSS_AVAIL || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_LDT || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_16TSS_BUSY || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_32TSS_AVAIL || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_32TSS_BUSY) { if(pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_LDT) { if((nOrgArgc == 2) && (TStrICmp(argv[0],WSTR("LDT")) == 0) && (dwSelector >> 3) == i) { WCHAR NewCommandArgc[10]; WCHAR NewCommandArgc1[10]; TSPrintf(NewCommandArgc,WSTR("%08x"),dwSegmentBase); TSPrintf(NewCommandArgc1,WSTR("%08x"),dwSegmentLimit); WCHAR* newargv[]={WSTR("ldtlist"),NewCommandArgc,NewCommandArgc1,NULL}; gdt_command(9999,newargv,gpSyser); return; } else OUTPUT(Format,dwShowSelector,DescType[pSegDesc[i].TYPE],dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),WSTR(" "),WSTR(" ")); } else OUTPUT(Format,dwShowSelector,DescType[pSegDesc[i].TYPE],dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),(pSegDesc[i].TYPE & 2) ? WSTR("B "):WSTR(" "),WSTR(" ")); continue; } GateDecr = (X86_GATE_DECR* )(&pSegDesc[i]); dwSegmentLimit = GateDecr->OffsetLow | (GateDecr->OffsetHigh << 16); dwSegmentBase = GateDecr->Selector; if(GateDecr->Type == SYS_SEG_GATE_DECR_TYPE_TASK_GATE) { continue; } if((GateDecr->Type == SYS_SEG_GATE_DECR_TYPE_32CALL_GATE) && (GateDecr->Type == SYS_SEG_GATE_DECR_TYPE_16CALL_GATE)) OUTPUT(WSTR("%04x %s %04x:%08x %d %s"),dwShowSelector,DescType[pSegDesc[i].TYPE],dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P ")); #endif } return true; } void SetGDTBaseAddress(void *IDTBase,DWORD dwIDTSize,DWORD dwIndex) { } //DWORD GetIDTBase() //dwIDTBase = GetIDTBase(&dwIDTSize); BYTE CGDTWnd::gdtdata[8*256]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x9B,0xCF,0x00, 0xFF,0xFF,0x00,0x00,0x00,0x93,0xCF,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFB,0xCF,0x00, 0xFF,0xFF,0x00,0x00,0x00,0xF3,0xCF,0x00,0xAB,0x20,0x00,0x20,0x04,0x8B,0x00,0x80, 0x01,0x00,0x00,0xF0,0xDF,0x93,0xC0,0xFF,0xFF,0x0F,0x00,0x00,0x00,0xF3,0x40,0x00, 0xFF,0xFF,0x00,0x04,0x00,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x68,0x00,0x00,0x32,0x54,0x89,0x00,0x80,0x68,0x00,0x68,0x32,0x54,0x89,0x00,0x80, 0xFF,0xFF,0x20,0x2F,0x02,0x93,0x00,0x00,0xFF,0x3F,0x00,0x80,0x0B,0x92,0x00,0x00, 0xFF,0x03,0x00,0x70,0xFF,0x92,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x40,0x9A,0x00,0x80, 0xFF,0xFF,0x00,0x00,0x40,0x92,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x92,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x68,0x00,0xB8,0xEB,0xBD,0x89,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xFF,0xFF,0x00,0x20,0xA9,0x9F,0x00,0xF9,0xFF,0xFF,0x00,0x00,0x00,0x92,0x00,0x00, 0xCE,0x25,0xD0,0x31,0x50,0x98,0x0F,0x80,0xFF,0xFF,0x00,0x00,0x00,0x92,0x00,0x00, 0xFF,0xFF,0x00,0x20,0xAA,0x93,0x40,0xF9,0xFF,0xFF,0x00,0x20,0xAA,0x93,0x40,0xF9, 0xFF,0xFF,0x00,0x20,0xAA,0x93,0x40,0xF9,0x20,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x28,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x30,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x38,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x40,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x48,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x50,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x58,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x60,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x68,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x70,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x78,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x80,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x88,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x90,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0x98,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0xA0,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0xA8,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0xB0,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0xB8,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0xC0,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0xC8,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0xD0,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0xD8,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0xE0,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0xE8,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0xF0,0xF1,0x03,0x80,0x00,0x00,0x00,0x00, 0xF8,0xF1,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x08,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x10,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x18,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x20,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x28,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x30,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x38,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x40,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x48,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x50,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x58,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x60,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x68,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x70,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x78,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x80,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x88,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x90,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0x98,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0xA0,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0xA8,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0xB0,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0xB8,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0xC0,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0xC8,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0xD0,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0xD8,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0xE0,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0xE8,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0xF0,0xF2,0x03,0x80,0x00,0x00,0x00,0x00, 0xF8,0xF2,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x08,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x10,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x18,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x20,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x28,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x30,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x38,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x40,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x48,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x50,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x58,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x60,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x68,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x70,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x78,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x80,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x88,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x90,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0x98,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0xA0,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0xA8,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0xB0,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0xB8,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0xC0,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0xC8,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0xD0,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0xD8,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0xE0,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0xE8,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0xF0,0xF3,0x03,0x80,0x00,0x00,0x00,0x00, 0xF8,0xF3,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x22,0xBC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x69,0xAF,0x08,0x00,0x00,0xEE,0xF0,0xF1, 0x78,0xAF,0x08,0x00,0x00,0x8E,0xF0,0xF1,0x87,0xAF,0x08,0x00,0x00,0xEE,0xF0,0xF1, 0xE5,0xC1,0x08,0x00,0x00,0xEE,0x4D,0x80,0x26,0xC3,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x96,0xAF,0x08,0x00,0x00,0x8E,0xF0,0xF1,0x57,0xCA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x78,0x11,0x50,0x00,0x00,0x85,0x00,0x00,0x71,0xCE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x74,0xCF,0x08,0x00,0x00,0x8E,0x4D,0x80,0xA5,0xAF,0x08,0x00,0x00,0x8E,0xF0,0xF1, 0xB4,0xAF,0x08,0x00,0x00,0x8E,0xF0,0xF1,0xC3,0xAF,0x08,0x00,0x00,0x8E,0xF0,0xF1, 0xD2,0xAF,0x08,0x00,0x00,0x8E,0xF0,0xF1,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4F,0xE0,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6A,0xE1,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0xA0,0x00,0x00,0x85,0x4D,0x80,0xB6,0xE2,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0xF6,0xB4,0x08,0x00,0x00,0xEE,0x4D,0x80,0xE1,0xB5,0x08,0x00,0x00,0xEE,0x4D,0x80, 0x44,0xB7,0x08,0x00,0x00,0xEE,0x4D,0x80,0xF0,0xAF,0x08,0x00,0x00,0xEE,0xF0,0xF1, 0xFF,0xAF,0x08,0x00,0x00,0xEE,0xF0,0xF1,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC0,0xE4,0x08,0x00,0x00,0x8E,0x6C,0x80,0x0E,0xB0,0x08,0x00,0x00,0x8E,0xF0,0xF1, 0x84,0xA7,0x08,0x00,0x00,0x8E,0x4D,0x80,0x1D,0xB0,0x08,0x00,0x00,0x8E,0xF0,0xF1, 0x2C,0xB0,0x08,0x00,0x00,0x8E,0xF0,0xF1,0x9C,0x15,0x08,0x00,0x00,0x8E,0xA2,0x81, 0xAC,0xA7,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4A,0xB0,0x08,0x00,0x00,0x8E,0xF0,0xF1, 0x80,0x8E,0x08,0x00,0x00,0x8E,0x6C,0x80,0x6C,0x52,0x08,0x00,0x00,0x8E,0xBC,0x81, 0xD4,0xED,0x08,0x00,0x00,0x8E,0x90,0x81,0xF4,0xF2,0x08,0x00,0x00,0x8E,0x9E,0x81, 0x3B,0xB0,0x08,0x00,0x00,0x8E,0xF0,0xF1,0xF2,0xA7,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xE4,0x66,0x08,0x00,0x00,0x8E,0xBB,0x81,0x2C,0x1B,0x08,0x00,0x00,0x8E,0xB7,0x81, 0x10,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE1,0xAF,0x08,0x00,0x00,0xEE,0xF0,0xF1, 0x24,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x2E,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x38,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x42,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x56,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x60,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6A,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x74,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x7E,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x88,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x92,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x9C,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xA6,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB0,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xBA,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC4,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xCE,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xD8,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE2,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xEC,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xF6,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x00,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x0A,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x14,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x1E,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x28,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x32,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x3C,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x46,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x50,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x5A,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x64,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6E,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x78,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x82,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x8C,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x96,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xA0,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xAA,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB4,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xBE,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC8,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xD2,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xDC,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE6,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xF0,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xFA,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x04,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x0E,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x18,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x22,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x2C,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x36,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x40,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4A,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x54,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x5E,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x68,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x72,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x7C,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x86,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, }; ================================================ FILE: Project/Syser/Source/GDTWnd.h ================================================ #ifndef _GDTWND_H_ #define _GDTWND_H_ class CGDTWnd : public CWispList { public: CGDTWnd(); ~CGDTWnd(); void Popup(); void UpdateContext(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnClose); bool InsertGDT(); void SetGDTBaseAddress(void *GDTBase,DWORD dwGDTSize=0x7ff,DWORD dwIndex=0); static BYTE gdtdata[8*256]; VOID * m_pGDTAddress; DWORD m_dwGDTSize; DWORD m_dwBeginIndex; }; #endif /* _GDTWND_H_ */ ================================================ FILE: Project/Syser/Source/GameSpy.cpp ================================================ #include "stdafx.h" #include "GameSpy.h" WISP_MSG_MAP_BEGIN(CGameSpyFrameWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispWnd) CGameSpyFrameWnd::CGameSpyFrameWnd() { } CGameSpyFrameWnd::~CGameSpyFrameWnd() { } bool CGameSpyFrameWnd::OnCreate(IN WISP_MSG*pMsg) { return true; } bool CGameSpyFrameWnd::OnDestroy(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/Syser/Source/GameSpy.h ================================================ #ifndef _GAME_SPY_H_ #define _GAME_SPY_H_ class CGameSpyFrameWnd : public CWispWnd { public: CGameSpyFrameWnd(); ~CGameSpyFrameWnd(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); }; #endif ================================================ FILE: Project/Syser/Source/GeneRegList.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "GeneRegList.h" WISP_MENU_RES_ITEM GeneRegMenu[]= { {WSTR("Show Code "),EVENT_ID_SHOW_CODE,14*16}, {WSTR("Show Data "),EVENT_ID_SHOW_DATA,13*16+15}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CGeneRegList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CGeneRegList) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_CODE,OnEventShowCode); WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_DATA,OnEventShowData); WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_EAX,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_EBX,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_ECX,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_EDX,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_ESP,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_EBP,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_ESI,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_EDI,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_DATAVIEW_EIP,OnShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_EAX,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_EBX,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_ECX,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_EDX,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_ESP,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_EBP,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_ESI,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_EDI,OnShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SET_CODEVIEW_EIP,OnShowCode) WISP_MSG_EVENT_MAP_END CGeneRegList::CGeneRegList() { STZeroMemory(m_PrevCPUReg); } CGeneRegList::~CGeneRegList() { } bool CGeneRegList::OnCreate(IN WISP_MSG*pMsg) { m_ChgColor = ColorOption.clrChgText; m_NormalColor = ColorOption.clrText; m_SelectBKColor = ColorOption.clrSelectedFrame; m_X86RegPtr=X86_REG_PTR; if(m_Style & WISP_WS_CAPTION) AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,52)); SetDefaultTextColor(m_NormalColor); SetBGColor(ColorOption.clrBackground); m_PopupMenu.CreatePopupMenu(GeneRegMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hMenuShowCode = m_PopupMenu.GetItem(EVENT_ID_SHOW_CODE); m_hMenuShowData = m_PopupMenu.GetItem(EVENT_ID_SHOW_DATA); int FontWidth = m_ClientDC.GetTextExtent(WSTR("X")); InsertColumn(WISP_STR("Register"),FontWidth*9); InsertColumn(WISP_STR("Value[F2]"),FontWidth*10,WISP_WLCS_EDITABLE); InsertColumn(WISP_STR("Context"),100); m_hLastItem = m_hGeneRegItem[REG_GENE_EAX] = InsertItem(WISP_STR("EAX"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_EBX] = InsertItem(WISP_STR("EBX"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_ECX] = InsertItem(WISP_STR("ECX"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_EDX] = InsertItem(WISP_STR("EDX"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_ESI] = InsertItem(WISP_STR("ESI"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_EDI] = InsertItem(WISP_STR("EDI"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_EBP] = InsertItem(WISP_STR("EBP"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_ESP] = InsertItem(WISP_STR("ESP"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_EIP] = InsertItem(WISP_STR("EIP"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_EFL] = InsertItem(WISP_STR("EFLAG"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_AF] = InsertItem(WISP_STR("AF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_CF] = InsertItem(WISP_STR("CF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_DF] = InsertItem(WISP_STR("DF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_IF] = InsertItem(WISP_STR("IF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_OF] = InsertItem(WISP_STR("OF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_PF] = InsertItem(WISP_STR("PF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_SF] = InsertItem(WISP_STR("SF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_ZF] = InsertItem(WISP_STR("ZF"),m_hGeneRegItem[REG_GENE_EFL],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_CS] = InsertItem(WISP_STR("CS"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_DS] = InsertItem(WISP_STR("DS"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_ES] = InsertItem(WISP_STR("ES"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_FS] = InsertItem(WISP_STR("FS"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_GS] = InsertItem(WISP_STR("GS"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_SS] = InsertItem(WISP_STR("SS"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_CS_BASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_CS],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_DS_BASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_DS],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_ES_BASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_ES],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_FS_BASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_FS],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_GS_BASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_GS],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_SS_BASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_SS],WISP_WLIS_NORMAL); #ifdef CODE_OS_NT_DRV m_hGeneRegItem[REG_GENE_GDTR] = InsertItem(WISP_STR("GDTR"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_IDTR] = InsertItem(WISP_STR("IDTR"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_LDTR] = InsertItem(WISP_STR("LDTR"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_TR] = InsertItem(WISP_STR("TR"),NULL,WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_GDTRBASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_GDTR],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_GDTRLIMIT] = InsertItem(WISP_STR("Limit"),m_hGeneRegItem[REG_GENE_GDTR],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_IDTRBASE] = InsertItem(WISP_STR("Base"),m_hGeneRegItem[REG_GENE_IDTR],WISP_WLIS_NORMAL); m_hGeneRegItem[REG_GENE_IDTRLIMIT] = InsertItem(WISP_STR("Limit"),m_hGeneRegItem[REG_GENE_IDTR],WISP_WLIS_NORMAL); #endif for(int n=0;nAttachShortcutKey(EVENT_ID_SET_DATAVIEW_EAX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_1,EVENT_ID_SET_DATAVIEW_EAX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_EBX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_2,EVENT_ID_SET_DATAVIEW_EBX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_ECX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_3,EVENT_ID_SET_DATAVIEW_ECX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_EDX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_4,EVENT_ID_SET_DATAVIEW_EDX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_ESP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_5,EVENT_ID_SET_DATAVIEW_ESP); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_EBP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_6,EVENT_ID_SET_DATAVIEW_EBP); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_ESI,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_7,EVENT_ID_SET_DATAVIEW_ESI); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_EDI,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_8,EVENT_ID_SET_DATAVIEW_EDI); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_DATAVIEW_EIP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_9,EVENT_ID_SET_DATAVIEW_EIP); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_EAX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_1,EVENT_ID_SET_CODEVIEW_EAX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_EBX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_2,EVENT_ID_SET_CODEVIEW_EBX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_ECX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_3,EVENT_ID_SET_CODEVIEW_ECX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_EDX,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_4,EVENT_ID_SET_CODEVIEW_EDX); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_ESP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_5,EVENT_ID_SET_CODEVIEW_ESP); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_EBP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_6,EVENT_ID_SET_CODEVIEW_EBP); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_ESI,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_7,EVENT_ID_SET_CODEVIEW_ESI); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_EDI,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_8,EVENT_ID_SET_CODEVIEW_EDI); if(gpSyser->AttachShortcutKey(EVENT_ID_SET_CODEVIEW_EIP,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_9,EVENT_ID_SET_CODEVIEW_EIP); } bool CGeneRegList::OnClose(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CGeneRegList::OnEventShowCode(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; DWORD Address; if(USHexStrToNum((WISP_PCSTR)GetItemText(hItem,1),&Address)==false) return true; VIEW_CODE(Address,true); return true; } bool CGeneRegList::OnEventShowData(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; DWORD Address; if(USHexStrToNum((WISP_PCSTR)GetItemText(hItem,1),&Address)==false) return true; VIEW_DATA(Address); return true; } bool CGeneRegList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CGeneRegList::OnShowData(IN WISP_MSG*pMsg) { UINT RegIndex=pMsg->Command.CmdID-EVENT_ID_SET_DATAVIEW_EAX+1; DWORD Address; switch(RegIndex) { case 1:Address = *CPU_REG_PTR_X86.pEAX;break; case 2:Address = *CPU_REG_PTR_X86.pEBX;break; case 3:Address = *CPU_REG_PTR_X86.pECX;break; case 4:Address = *CPU_REG_PTR_X86.pEDX;break; case 7:Address = *CPU_REG_PTR_X86.pESI;break; case 8:Address = *CPU_REG_PTR_X86.pEDI;break; case 6:Address = *CPU_REG_PTR_X86.pEBP;break; case 5:Address = *CPU_REG_PTR_X86.pESP;break; case 9:Address = *CPU_REG_PTR_X86.pEIP;break; } VIEW_DATA(Address); return true; } bool CGeneRegList::OnShowCode(IN WISP_MSG*pMsg) { UINT RegIndex=pMsg->Command.CmdID-EVENT_ID_SET_CODEVIEW_EAX+1; DWORD Address; switch(RegIndex) { case 1:Address = *CPU_REG_PTR_X86.pEAX;break; case 2:Address = *CPU_REG_PTR_X86.pEBX;break; case 3:Address = *CPU_REG_PTR_X86.pECX;break; case 4:Address = *CPU_REG_PTR_X86.pEDX;break; case 7:Address = *CPU_REG_PTR_X86.pESI;break; case 8:Address = *CPU_REG_PTR_X86.pEDI;break; case 6:Address = *CPU_REG_PTR_X86.pEBP;break; case 5:Address = *CPU_REG_PTR_X86.pESP;break; case 9:Address = *CPU_REG_PTR_X86.pEIP;break; } VIEW_CODE(Address,true); return true; } bool CGeneRegList::OnKeyEvent(IN WISP_MSG*pMsg) { WCHAR szBuffer[128]; HANDLE hItem; ULPOS Address; bool bAddressVailed=false; REGHOTKEYMAP::IT FindIT; int SizeXorY; if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return true; if(pMsg->KeyEvent.bKeyDown==false) { FindIT = m_HotKeyMap.Find(pMsg->KeyEvent.KeyType); if(FindIT!=m_HotKeyMap.End()) { WISP_MSG Msg; memset(&Msg,0,sizeof(Msg)); Msg.Command.CmdID=*FindIT; return OnEvent(&Msg); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) { Address = (ULPOS)GetItemData(hItem,1); if(gpSyser->m_pDebugger->ReadMemory(Address,szBuffer,1)==1) bAddressVailed=true; WISP_PCSTR pszText = (WISP_PCSTR)GetItemText(hItem,1); TStrCpy(szBuffer,WSTR("Show Code ")); TStrCat(szBuffer,pszText); m_PopupMenu.SetItemText(m_hMenuShowCode,szBuffer); TStrCpy(szBuffer,WSTR("Show Data ")); TStrCat(szBuffer,pszText); m_PopupMenu.SetItemText(m_hMenuShowData,szBuffer); } m_PopupMenu.EnableItem(m_hMenuShowCode,hItem!=NULL && bAddressVailed); m_PopupMenu.EnableItem(m_hMenuShowData,hItem!=NULL && bAddressVailed); m_PopupMenu.Popup(); break; case WISP_VK_F2: hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) { EnableVisible(hItem); BeginEditItem(hItem,1); } return false; case WISP_VK_A: { gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.GetWndSpace(0,SizeXorY); if(SizeXorY>10) gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.ResizeWndSpace(0,SizeXorY-10); else gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.ResizeWndSpace(0,0); gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.AdjustWndPos(); return false; } break; case WISP_VK_D: { gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.GetWndSpace(0,SizeXorY); gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.ResizeWndSpace(0,SizeXorY+10); gpSyser->m_MainFrame.m_SystemExplorer.m_MainSplitWnd.AdjustWndPos(); return false; } break; case WISP_VK_W: { gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.GetWndSpace(0,SizeXorY); if(SizeXorY>10) gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.ResizeWndSpace(0,SizeXorY-10); else gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.ResizeWndSpace(0,0); gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.AdjustWndPos(); return false; } case WISP_VK_S: { gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.GetWndSpace(0,SizeXorY); gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.ResizeWndSpace(0,SizeXorY+10); gpSyser->m_MainFrame.m_SystemExplorer.m_MonitorSplitWnd.AdjustWndPos(); return false; } break; } } return true; } void CGeneRegList::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("Register View"),CWispRect(0,0,320,210),NULL,0,WISP_WS_NORMAL_NO_MAX|WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_EMPTY_SEL_RECT); Center(); UpdateContext(); } } void CGeneRegList::ResetContext() { if(IsWindow()==false) return; for(int n=0;n=REG_GENE_EAX && n<=REG_GENE_EFL) SetItemText(m_hGeneRegItem[n],1,WSTR("????????")); else if(n>=REG_GENE_CS && n<=REG_GENE_SS) SetItemText(m_hGeneRegItem[n],1,WSTR("????")); else if(n>=REG_GENE_AF && n<=REG_GENE_ZF) SetItemText(m_hGeneRegItem[n],1,WSTR("?")); else if(n>=REG_GENE_CS_BASE && n<=REG_GENE_SS_BASE) SetItemText(m_hGeneRegItem[n],1,WSTR("????????")); SetItemText(m_hGeneRegItem[n],2,NULL); SetItemTextColor(m_hGeneRegItem[n],1,m_NormalColor); } SelectItem(m_hGeneRegItem[REG_GENE_EAX]); STZeroMemory(m_PrevCPUReg); } bool CGeneRegList::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { int n; if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return false; DWORD dwCurrentCpuID=0; #ifdef CODE_OS_NT_DRV dwCurrentCpuID = GetCurrentCPULocalAPICID(); if(dwCurrentCpuID!= GetCPUIndex()) return false; #endif n = (int)GetItemData(hItem,0); if(n>=REG_GENE_AF && n<=REG_GENE_ZF) { bool bChg; int Value; EFL_REG*pEFL = (EFL_REG*)&m_PrevCPUReg.EFL; switch(n) { case REG_GENE_AF: Value = CPU_REG_PTR_X86.pEFL->AF = !CPU_REG_PTR_X86.pEFL->AF; bChg = CPU_REG_PTR_X86.pEFL->AF != pEFL->AF; break; case REG_GENE_CF: Value = CPU_REG_PTR_X86.pEFL->CF = !CPU_REG_PTR_X86.pEFL->CF; bChg = CPU_REG_PTR_X86.pEFL->CF != pEFL->CF; break; case REG_GENE_DF: Value = CPU_REG_PTR_X86.pEFL->DF = !CPU_REG_PTR_X86.pEFL->DF; bChg = CPU_REG_PTR_X86.pEFL->DF != pEFL->DF; break; case REG_GENE_IF: Value = CPU_REG_PTR_X86.pEFL->IF = !CPU_REG_PTR_X86.pEFL->IF; bChg = CPU_REG_PTR_X86.pEFL->IF != pEFL->IF; break; case REG_GENE_OF: Value = CPU_REG_PTR_X86.pEFL->OF = !CPU_REG_PTR_X86.pEFL->OF; bChg = CPU_REG_PTR_X86.pEFL->OF != pEFL->OF; break; case REG_GENE_PF: Value = CPU_REG_PTR_X86.pEFL->PF = !CPU_REG_PTR_X86.pEFL->PF; bChg = CPU_REG_PTR_X86.pEFL->PF != pEFL->PF; break; case REG_GENE_SF: Value = CPU_REG_PTR_X86.pEFL->SF = !CPU_REG_PTR_X86.pEFL->SF; bChg = CPU_REG_PTR_X86.pEFL->SF != pEFL->SF; break; case REG_GENE_ZF: Value = CPU_REG_PTR_X86.pEFL->ZF = !CPU_REG_PTR_X86.pEFL->ZF; bChg = CPU_REG_PTR_X86.pEFL->ZF != pEFL->ZF; break; default: return false; } SetItemNum(m_hGeneRegItem[REG_GENE_EFL],1,*(DWORD*)CPU_REG_PTR_X86.pEFL,WSTR("%08X")); SetItemTextColor(m_hGeneRegItem[REG_GENE_EFL],1,*(DWORD*)CPU_REG_PTR_X86.pEFL==m_PrevCPUReg.EFL?m_NormalColor:m_ChgColor); SetItemText(m_hGeneRegItem[n],1,Value?WSTR("1"):WSTR("0")); SetItemTextColor(m_hGeneRegItem[n],1,bChg?m_ChgColor:m_NormalColor); UpdateClient(); UPDATE_CONTEXT(); return false; } return true; } bool CGeneRegList::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { int n; DWORD Value,*pddValue; WORD *pdwValue; if(CALCEXP(String,&Value)==false) return false; n = (int)GetItemData(hItem,0); if(n<0 || n>=REG_GENE_REGCOUNT) return false; if(n>=REG_GENE_EAX && n<=REG_GENE_EFL) { switch(n) { case REG_GENE_EAX:pddValue = CPU_REG_PTR_X86.pEAX;break; case REG_GENE_EBX:pddValue = CPU_REG_PTR_X86.pEBX;break; case REG_GENE_ECX:pddValue = CPU_REG_PTR_X86.pECX;break; case REG_GENE_EDX:pddValue = CPU_REG_PTR_X86.pEDX;break; case REG_GENE_ESI:pddValue = CPU_REG_PTR_X86.pESI;break; case REG_GENE_EDI:pddValue = CPU_REG_PTR_X86.pEDI;break; case REG_GENE_EBP:pddValue = CPU_REG_PTR_X86.pEBP;break; case REG_GENE_ESP:pddValue = CPU_REG_PTR_X86.pESP;break; case REG_GENE_EIP:pddValue = CPU_REG_PTR_X86.pEIP;break; case REG_GENE_EFL:pddValue = (DWORD*)CPU_REG_PTR_X86.pEFL;break; default:return false; } if(*pddValue==Value) return false; *pddValue = Value; SetItemTextColor(m_hGeneRegItem[n],1,m_ChgColor); String.Format(WSTR("%08X"),*pddValue); } else if(n>=REG_GENE_CS && n<=REG_GENE_SS) { switch(n) { case REG_GENE_CS:pdwValue = CPU_REG_PTR_X86.pCS;break; case REG_GENE_DS:pdwValue = CPU_REG_PTR_X86.pDS;break; case REG_GENE_ES:pdwValue = CPU_REG_PTR_X86.pES;break; case REG_GENE_FS:pdwValue = CPU_REG_PTR_X86.pFS;break; case REG_GENE_GS:pdwValue = CPU_REG_PTR_X86.pGS;break; case REG_GENE_SS:pdwValue = CPU_REG_PTR_X86.pSS;break; default:return false; } if(*pdwValue==(WORD)Value) return false; *pdwValue=(WORD)Value; SetItemTextColor(m_hGeneRegItem[n],1,m_ChgColor); String.Format(WSTR("%04X"),*pdwValue); } else return false; gpSyser->m_pDebugger->SaveRegister(); if(n==REG_GENE_EFL) { UpdateEFlagContext(); } else if(n==REG_GENE_EIP) { gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.UpdateAllView(); } m_hLastItem = m_hGeneRegItem[n]; UPDATE_CONTEXT(); return true; } void CGeneRegList::UpdateCommentContext(X86_CPU_REG_PTR& pPtr) { CHAR szBuffer[256]; WCHAR szBufferW[256]; int StrType; szBufferW[0]=0; if(GETSYM(*pPtr.pEAX,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pEAX,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pEAX,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EAX],2,szBufferW); szBufferW[0]=0; if(GETSYM(*pPtr.pEBX,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pEBX,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pEBX,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EBX],2,szBufferW); szBufferW[0]=0; if(GETSYM(*pPtr.pECX,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pECX,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pECX,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_ECX],2,szBufferW); szBufferW[0]=0; if(GETSYM(*pPtr.pEDX,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pEDX,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pEDX,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EDX],2,szBufferW); szBufferW[0]=0; if(GETSYM(*pPtr.pESI,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pESI,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pESI,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_ESI],2,szBufferW); szBufferW[0]=0; if(GETSYM(*pPtr.pEDI,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pEDI,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pEDI,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EDI],2,szBufferW); szBufferW[0]=0; if(GETSYM(*pPtr.pEBP,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pEBP,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pEBP,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EBP],2,szBufferW); szBufferW[0]=0; if(*CPU_REG_PTR_X86.pESP==0x7ffb8) szBufferW[0]=0; if(GETSYM(*pPtr.pESP,szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(*pPtr.pESP,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(*pPtr.pESP,szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_ESP],2,szBufferW); szBufferW[0]=0; //if(GETSYM(*CPU_REG_PTR_X86.pEIP,szBuffer,sizeof(szBuffer))) //{ // TStrCpy(szBufferW,szBuffer); //} //else if(!GET_STRING_SYM(*CPU_REG_PTR_X86.pEIP,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]))) //{ if(GET_ALMOST_SYM(*pPtr.pEIP,szBuffer)) TStrCpy(szBufferW,szBuffer); //} SetItemText(m_hGeneRegItem[REG_GENE_EIP],2,szBufferW); } void CGeneRegList::UpdateContext() { DWORD Address; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false || IsWindow()==false) return; DWORD dwCurrentCpuID=0; #ifdef CODE_OS_NT_DRV dwCurrentCpuID = GetCurrentCPULocalAPICID(); #endif if(dwCurrentCpuID!=m_nCPUIndex) gpSyser->m_pDebugger->GetCPUX86RegPtr(&m_X86RegPtr,m_nCPUIndex); else m_X86RegPtr=X86_REG_PTR; ////////////////////////////////////////////////////////////////// //EAX ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EAX],1,*CPU_REG_PTR_X86.pEAX,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EAX],1,*CPU_REG_PTR_X86.pEAX); if(*CPU_REG_PTR_X86.pEAX == m_PrevCPUReg.EAX) SetItemTextColor(m_hGeneRegItem[REG_GENE_EAX],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_EAX],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //EBX ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EBX],1,*CPU_REG_PTR_X86.pEBX,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EBX],1,*CPU_REG_PTR_X86.pEBX); if(*CPU_REG_PTR_X86.pEBX == m_PrevCPUReg.EBX) SetItemTextColor(m_hGeneRegItem[REG_GENE_EBX],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_EBX],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //ECX ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_ECX],1,*CPU_REG_PTR_X86.pECX,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ECX],1,*CPU_REG_PTR_X86.pECX); if(*CPU_REG_PTR_X86.pECX == m_PrevCPUReg.ECX) SetItemTextColor(m_hGeneRegItem[REG_GENE_ECX],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_ECX],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //EDX ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EDX],1,*CPU_REG_PTR_X86.pEDX,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EDX],1,*CPU_REG_PTR_X86.pEDX); if(*CPU_REG_PTR_X86.pEDX == m_PrevCPUReg.EDX) SetItemTextColor(m_hGeneRegItem[REG_GENE_EDX],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_EDX],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //ESI ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_ESI],1,*CPU_REG_PTR_X86.pESI,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ESI],1,*CPU_REG_PTR_X86.pESI); if(*CPU_REG_PTR_X86.pESI == m_PrevCPUReg.ESI) SetItemTextColor(m_hGeneRegItem[REG_GENE_ESI],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_ESI],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //EDI ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EDI],1,*CPU_REG_PTR_X86.pEDI,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EDI],1,*CPU_REG_PTR_X86.pEDI); if(*CPU_REG_PTR_X86.pEDI == m_PrevCPUReg.EDI) SetItemTextColor(m_hGeneRegItem[REG_GENE_EDI],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_EDI],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //EBP ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EBP],1,*CPU_REG_PTR_X86.pEBP,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EBP],1,*CPU_REG_PTR_X86.pEBP); if(*CPU_REG_PTR_X86.pEBP == m_PrevCPUReg.EBP) SetItemTextColor(m_hGeneRegItem[REG_GENE_EBP],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_EBP],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //ESP ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_ESP],1,*CPU_REG_PTR_X86.pESP,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ESP],1,*CPU_REG_PTR_X86.pESP); if(*CPU_REG_PTR_X86.pESP == m_PrevCPUReg.ESP) SetItemTextColor(m_hGeneRegItem[REG_GENE_ESP],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_ESP],1,m_ChgColor); } ////////////////////////////////////////////////////////////////// //EIP ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EIP],1,*CPU_REG_PTR_X86.pEIP,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EIP],1,*CPU_REG_PTR_X86.pEIP); if(*CPU_REG_PTR_X86.pEIP == m_PrevCPUReg.EIP) SetItemTextColor(m_hGeneRegItem[REG_GENE_EIP],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_EIP],1,m_ChgColor); } UpdateCommentContext(m_X86RegPtr); ////////////////////////////////////////////////////////////////// //EFlags ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_EFL],1,*(DWORD*)CPU_REG_PTR_X86.pEFL,WSTR("%08X")); if(*(DWORD*)CPU_REG_PTR_X86.pEFL == m_PrevCPUReg.EFL) SetItemTextColor(m_hGeneRegItem[REG_GENE_EFL],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EFL],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //CS ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_CS],1,*CPU_REG_PTR_X86.pCS,WSTR("%04X")); if(*CPU_REG_PTR_X86.pCS == m_PrevCPUReg.CS) SetItemTextColor(m_hGeneRegItem[REG_GENE_CS],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_CS],1,m_ChgColor); if(gpSyser->m_pDebugger->GetSegRegBase(*CPU_REG_PTR_X86.pCS,&Address)) SetItemNum(m_hGeneRegItem[REG_GENE_CS_BASE],1,Address,WSTR("%08X")); else SetItemText(m_hGeneRegItem[REG_GENE_CS_BASE],1,WSTR("????????")); } ////////////////////////////////////////////////////////////////// //DS ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_DS],1,*CPU_REG_PTR_X86.pDS,WSTR("%04X")); if(*CPU_REG_PTR_X86.pDS == m_PrevCPUReg.DS) SetItemTextColor(m_hGeneRegItem[REG_GENE_DS],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_DS],1,m_ChgColor); if(gpSyser->m_pDebugger->GetSegRegBase(*CPU_REG_PTR_X86.pDS,&Address)) SetItemNum(m_hGeneRegItem[REG_GENE_DS_BASE],1,Address,WSTR("%08X")); else SetItemText(m_hGeneRegItem[REG_GENE_DS_BASE],1,WSTR("????????")); } ////////////////////////////////////////////////////////////////// //ES ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_ES],1,*CPU_REG_PTR_X86.pES,WSTR("%04X")); if(*CPU_REG_PTR_X86.pES == m_PrevCPUReg.ES) SetItemTextColor(m_hGeneRegItem[REG_GENE_ES],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_ES],1,m_ChgColor); if(gpSyser->m_pDebugger->GetSegRegBase(*CPU_REG_PTR_X86.pES,&Address)) { SetItemNum(m_hGeneRegItem[REG_GENE_ES_BASE],1,Address,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ES_BASE],1,Address); } else SetItemText(m_hGeneRegItem[REG_GENE_ES_BASE],1,WSTR("????????")); } ////////////////////////////////////////////////////////////////// //FS ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_FS],1,*CPU_REG_PTR_X86.pFS,WSTR("%04X")); if(*CPU_REG_PTR_X86.pFS == m_PrevCPUReg.FS) SetItemTextColor(m_hGeneRegItem[REG_GENE_FS],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_FS],1,m_ChgColor); if(gpSyser->m_pDebugger->GetSegRegBase(*CPU_REG_PTR_X86.pFS,&Address)) { SetItemData(m_hGeneRegItem[REG_GENE_FS_BASE],1,Address); SetItemNum(m_hGeneRegItem[REG_GENE_FS_BASE],1,Address,WSTR("%08X")); } else SetItemText(m_hGeneRegItem[REG_GENE_FS_BASE],1,WSTR("????????")); } ////////////////////////////////////////////////////////////////// //GS ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_GS],1,*CPU_REG_PTR_X86.pGS,WSTR("%04X")); if(*CPU_REG_PTR_X86.pGS == m_PrevCPUReg.GS) SetItemTextColor(m_hGeneRegItem[REG_GENE_GS],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_GS],1,m_ChgColor); if(gpSyser->m_pDebugger->GetSegRegBase(*CPU_REG_PTR_X86.pGS,&Address)) { SetItemNum(m_hGeneRegItem[REG_GENE_GS_BASE],1,Address,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_GS_BASE],1,Address); } else SetItemText(m_hGeneRegItem[REG_GENE_GS_BASE],1,WSTR("????????")); } ////////////////////////////////////////////////////////////////// //SS ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_SS],1,*CPU_REG_PTR_X86.pSS,WSTR("%04X")); if(*CPU_REG_PTR_X86.pSS == m_PrevCPUReg.SS) SetItemTextColor(m_hGeneRegItem[REG_GENE_SS],1,m_NormalColor); else { SetItemTextColor(m_hGeneRegItem[REG_GENE_SS],1,m_ChgColor); if(gpSyser->m_pDebugger->GetSegRegBase(*CPU_REG_PTR_X86.pSS,&Address)) { SetItemNum(m_hGeneRegItem[REG_GENE_SS_BASE],1,Address,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_SS_BASE],1,Address); } else SetItemText(m_hGeneRegItem[REG_GENE_SS_BASE],1,WSTR("????????")); } #ifdef CODE_OS_NT_DRV ////////////////////////////////////////////////////////////////// //GDTR ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_GDTR],1,*CPU_REG_PTR_X86.pGDTRBase,WSTR("%08X")); ////////////////////////////////////////////////////////////////// //GDTR Base ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_GDTRBASE],1,*CPU_REG_PTR_X86.pGDTRBase,WSTR("%08X")); ////////////////////////////////////////////////////////////////// //GDTR Limit ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_GDTRLIMIT],1,*CPU_REG_PTR_X86.pGDTRLimit,WSTR("%04X")); ////////////////////////////////////////////////////////////////// //IDTR ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_IDTR],1,*CPU_REG_PTR_X86.pIDTRBase,WSTR("%08X")); ////////////////////////////////////////////////////////////////// //IDTR Base ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_IDTRBASE],1,*CPU_REG_PTR_X86.pIDTRBase,WSTR("%08X")); ////////////////////////////////////////////////////////////////// //IDTR Limit ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_IDTRLIMIT],1,*CPU_REG_PTR_X86.pIDTRLimit,WSTR("%04X")); ////////////////////////////////////////////////////////////////// //LDTR ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_LDTR],1,*CPU_REG_PTR_X86.pLDTR,WSTR("%04X")); ////////////////////////////////////////////////////////////////// //TR ////////////////////////////////////////////////////////////////// SetItemNum(m_hGeneRegItem[REG_GENE_TR],1,*CPU_REG_PTR_X86.pTR,WSTR("%04X")); #endif UpdateEFlagContext(); m_PrevCPUReg.EAX = *CPU_REG_PTR_X86.pEAX; m_PrevCPUReg.EBX = *CPU_REG_PTR_X86.pEBX; m_PrevCPUReg.ECX = *CPU_REG_PTR_X86.pECX; m_PrevCPUReg.EDX = *CPU_REG_PTR_X86.pEDX; m_PrevCPUReg.EDI = *CPU_REG_PTR_X86.pEDI; m_PrevCPUReg.ESI = *CPU_REG_PTR_X86.pESI; m_PrevCPUReg.EBP = *CPU_REG_PTR_X86.pEBP; m_PrevCPUReg.ESP = *CPU_REG_PTR_X86.pESP; m_PrevCPUReg.EIP = *CPU_REG_PTR_X86.pEIP; m_PrevCPUReg.EFL = *(DWORD*)CPU_REG_PTR_X86.pEFL; m_PrevCPUReg.CS = *CPU_REG_PTR_X86.pCS; m_PrevCPUReg.DS = *CPU_REG_PTR_X86.pDS; m_PrevCPUReg.ES = *CPU_REG_PTR_X86.pES; m_PrevCPUReg.FS = *CPU_REG_PTR_X86.pFS; m_PrevCPUReg.GS = *CPU_REG_PTR_X86.pGS; m_PrevCPUReg.SS = *CPU_REG_PTR_X86.pSS; UpdateClient(); } void CGeneRegList::UpdateEFlagContext() { EFL_REG*pPrevEFlag=(EFL_REG*)&m_PrevCPUReg.EFL; ////////////////////////////////////////////////////////////////// //EFlag->AF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_AF],1,CPU_REG_PTR_X86.pEFL->AF?WSTR("1"):WSTR("0")); if(pPrevEFlag->AF==CPU_REG_PTR_X86.pEFL->AF) SetItemTextColor(m_hGeneRegItem[REG_GENE_AF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_AF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->CF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_CF],1,CPU_REG_PTR_X86.pEFL->CF?WSTR("1"):WSTR("0")); if(pPrevEFlag->CF==CPU_REG_PTR_X86.pEFL->CF) SetItemTextColor(m_hGeneRegItem[REG_GENE_CF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_CF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->DF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_DF],1,CPU_REG_PTR_X86.pEFL->DF?WSTR("1"):WSTR("0")); if(pPrevEFlag->DF==CPU_REG_PTR_X86.pEFL->DF) SetItemTextColor(m_hGeneRegItem[REG_GENE_DF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_DF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->IF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_IF],1,CPU_REG_PTR_X86.pEFL->IF?WSTR("1"):WSTR("0")); if(pPrevEFlag->IF==CPU_REG_PTR_X86.pEFL->IF) SetItemTextColor(m_hGeneRegItem[REG_GENE_IF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_IF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->OF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_OF],1,CPU_REG_PTR_X86.pEFL->OF?WSTR("1"):WSTR("0")); if(pPrevEFlag->OF==CPU_REG_PTR_X86.pEFL->OF) SetItemTextColor(m_hGeneRegItem[REG_GENE_OF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_OF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->PF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_PF],1,CPU_REG_PTR_X86.pEFL->PF?WSTR("1"):WSTR("0")); if(pPrevEFlag->PF==CPU_REG_PTR_X86.pEFL->PF) SetItemTextColor(m_hGeneRegItem[REG_GENE_PF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_PF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->SF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_SF],1,CPU_REG_PTR_X86.pEFL->SF?WSTR("1"):WSTR("0")); if(pPrevEFlag->SF==CPU_REG_PTR_X86.pEFL->SF) SetItemTextColor(m_hGeneRegItem[REG_GENE_SF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_SF],1,m_ChgColor); ////////////////////////////////////////////////////////////////// //EFlag->ZF ////////////////////////////////////////////////////////////////// SetItemText(m_hGeneRegItem[REG_GENE_ZF],1,CPU_REG_PTR_X86.pEFL->ZF?WSTR("1"):WSTR("0")); if(pPrevEFlag->ZF==CPU_REG_PTR_X86.pEFL->ZF) SetItemTextColor(m_hGeneRegItem[REG_GENE_ZF],1,m_NormalColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_ZF],1,m_ChgColor); } void CGeneRegList::ItemClickNotify(HANDLE hItem,int Col) { DWORD Address; if(Col!=0) return; if(USHexStrToNum((WISP_PCSTR)GetItemText(hItem,1),&Address)==false) return; VIEW_DATA(Address); } void CGeneRegList::RunTraceUpdateContext(DWORD ModifyBitMask,X86_REG_CONTEXT* pReg,DWORD EIP) { SetItemNum(m_hGeneRegItem[REG_GENE_EIP],1,EIP,WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EIP],1,EIP); if(ModifyBitMask & EIP_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_EIP],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EIP],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_EAX],1,pReg->GeneReg[EAX_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EAX],1,pReg->GeneReg[EAX_IDX]); if(ModifyBitMask & EAX_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_EAX],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EAX],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_EBX],1,pReg->GeneReg[EBX_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EBX],1,pReg->GeneReg[EBX_IDX]); if(ModifyBitMask & EBX_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_EBX],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EBX],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_ECX],1,pReg->GeneReg[ECX_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ECX],1,pReg->GeneReg[ECX_IDX]); if(ModifyBitMask & ECX_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_ECX],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EDX],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_EDX],1,pReg->GeneReg[EDX_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EDX],1,pReg->GeneReg[EDX_IDX]); if(ModifyBitMask & EDX_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_EDX],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EDX],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_ESP],1,pReg->GeneReg[ESP_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ESP],1,pReg->GeneReg[ESP_IDX]); if(ModifyBitMask & ESP_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_ESP],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_ESP],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_EBP],1,pReg->GeneReg[EBP_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EBP],1,pReg->GeneReg[EBP_IDX]); if(ModifyBitMask & EBP_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_EBP],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EBP],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_ESI],1,pReg->GeneReg[ESI_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_ESI],1,pReg->GeneReg[ESI_IDX]); if(ModifyBitMask & ESI_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_ESI],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_ESI],1,m_NormalColor); SetItemNum(m_hGeneRegItem[REG_GENE_EDI],1,pReg->GeneReg[EDI_IDX],WSTR("%08X")); SetItemData(m_hGeneRegItem[REG_GENE_EDI],1,pReg->GeneReg[EDI_IDX]); if(ModifyBitMask & EDI_MODIFY_BIT_MASK) SetItemTextColor(m_hGeneRegItem[REG_GENE_EDI],1,m_ChgColor); else SetItemTextColor(m_hGeneRegItem[REG_GENE_EDI],1,m_NormalColor); RunTraceUpdateCommentContext(pReg); return; } void CGeneRegList::RunTraceUpdateCommentContext(X86_REG_CONTEXT *pReg) { CHAR szBuffer[256]; WCHAR szBufferW[256]; int StrType; szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_EAX],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_EAX],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_EAX],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EAX],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_EBX],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_EBX],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_EBX],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EBX],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_ECX],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_ECX],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_ECX],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_ECX],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_EDX],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_EDX],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_EDX],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EDX],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_ESI],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_ESI],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_ESI],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_ESI],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_EDI],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_EDI],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_EDI],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EDI],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_EBP],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_EBP],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_EBP],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_EBP],2,szBufferW); szBufferW[0]=0; if(GETSYM(pReg->GeneReg[REG_GENE_ESP],szBuffer,sizeof(szBuffer))) { TStrCpy(szBufferW,szBuffer); } else if(!GET_STRING_SYM(pReg->GeneReg[REG_GENE_ESP],szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]),StrType)) { if(GET_ALMOST_SYM(pReg->GeneReg[REG_GENE_ESP],szBuffer)) TStrCpy(szBufferW,szBuffer); } SetItemText(m_hGeneRegItem[REG_GENE_ESP],2,szBufferW); szBufferW[0]=0; //if(GETSYM(*CPU_REG_PTR_X86.pEIP,szBuffer,sizeof(szBuffer))) //{ // TStrCpy(szBufferW,szBuffer); //} //else if(!GET_STRING_SYM(*CPU_REG_PTR_X86.pEIP,szBufferW,sizeof(szBufferW)/sizeof(szBufferW[0]))) //{ if(GET_ALMOST_SYM(pReg->EIP,szBuffer)) TStrCpy(szBufferW,szBuffer); //} SetItemText(m_hGeneRegItem[REG_GENE_EIP],2,szBufferW); } ================================================ FILE: Project/Syser/Source/GeneRegList.h ================================================ #ifndef _GENE_REG_LIST_H_ #define _GENE_REG_LIST_H_ enum REG_GENE_INDEX { REG_GENE_EAX=0, REG_GENE_EBX, REG_GENE_ECX, REG_GENE_EDX, REG_GENE_ESI, REG_GENE_EDI, REG_GENE_EBP, REG_GENE_ESP, REG_GENE_EIP, REG_GENE_EFL, REG_GENE_CS, REG_GENE_DS, REG_GENE_ES, REG_GENE_FS, REG_GENE_GS, REG_GENE_SS, REG_GENE_AF, REG_GENE_CF, REG_GENE_DF, REG_GENE_IF, REG_GENE_OF, REG_GENE_PF, REG_GENE_SF, REG_GENE_ZF, REG_GENE_CS_BASE, REG_GENE_DS_BASE, REG_GENE_ES_BASE, REG_GENE_FS_BASE, REG_GENE_GS_BASE, REG_GENE_SS_BASE, #ifdef CODE_OS_NT_DRV REG_GENE_GDTR, REG_GENE_IDTR, REG_GENE_LDTR, REG_GENE_TR, REG_GENE_GDTRBASE, REG_GENE_GDTRLIMIT, REG_GENE_IDTRBASE, REG_GENE_IDTRLIMIT, #endif REG_GENE_REGCOUNT }; class CGeneRegList : public CWispList { //typedef bool (CGeneRegList::*REG_HOTKEY_FP)(IN INT RegIndex); //class CRegHotKey //{ //public: // UINT m_RegIndex; // REG_HOTKEY_FP m_fpHotKey; // CRegHotKey(){}; // CRegHotKey(UINT Index,REG_HOTKEY_FP fpHotKey):m_RegIndex(Index),m_fpHotKey(fpHotKey){}; // ~CRegHotKey(){} //}; typedef TMap REGHOTKEYMAP; public: CGeneRegList(); virtual ~CGeneRegList(); public: HANDLE m_hGeneRegItem[REG_GENE_REGCOUNT]; X86_CPU_REG m_PrevCPUReg; COLORREF m_ChgColor; COLORREF m_NormalColor; HANDLE m_hLastItem; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventShowCode) DECLARE_WISP_MSG_EVENT(OnEventShowData) DECLARE_WISP_MSG_EVENT(OnShowData) DECLARE_WISP_MSG_EVENT(OnShowCode) void Popup(); void ResetContext(); void UpdateContext(); void UpdateCommentContext(X86_CPU_REG_PTR& pPtr); void RunTraceUpdateContext(DWORD ModifyBitMask,X86_REG_CONTEXT *pReg,DWORD EIP); void RunTraceUpdateCommentContext(X86_REG_CONTEXT *pReg); void UpdateEFlagContext(); bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void ItemClickNotify(HANDLE hItem,int Col); CWispMenu m_PopupMenu; HANDLE m_hMenuShowCode; HANDLE m_hMenuShowData; int GetCPUIndex()const {return m_nCPUIndex;} void SetCPUIndex(int Index) {m_nCPUIndex=Index;} void AttachShortcutKey(); private: int m_nCPUIndex; X86_CPU_REG_PTR m_X86RegPtr; REGHOTKEYMAP m_HotKeyMap; }; #endif ================================================ FILE: Project/Syser/Source/GlobalVariable.cpp ================================================ #include "Stdafx.h" #include "GlobalVariable.h" ULONG gOSMajorVersion=0; ULONG gOSMinorVersion=0; ULONG gOSBuildNumber=0; BOOLEAN gOSCheckedBuild=FALSE; bool gInt0xeHook=false; ================================================ FILE: Project/Syser/Source/GlobalVariable.h ================================================ #ifndef _GLOBALVARIABLE_H_ #define _GLOBALVARIABLE_H_ extern ULONG gOSMajorVersion; extern ULONG gOSMinorVersion; extern ULONG gOSBuildNumber; extern BOOLEAN gOSCheckedBuild; extern bool gInt0xeHook; #endif //_GLOBALVARIABLE_H_ ================================================ FILE: Project/Syser/Source/HardWareInterruptCtrl.cpp ================================================ #include "stdafx.h" #include "HardWareInterruptCtrl.h" #include "LocalAPIC.h" #include "IOAPIC.h" #include "PIC_8259.h" #ifdef __cplusplus extern "C" { #endif bool gbIsSaveInterruptShieldRegister=false; #ifdef __cplusplus }; // extern "C" #endif // void DisableAllHardInterrupt() // { // __asm pushad // if(!gbIsSaveInterruptShieldRegister) // { // if(gbIsUseAPIC) // { // __asm // { // // mov eax,gdwLocalAPICLineAddress // mov eax,[eax+0x80] // mov gdwLocalAPICTaskPriority,eax // // } // SaveIOAPICInterruptVectorTable(); // } // else // { // __asm // { // // in al,0x21 // mov gdwPIC8259Shield_1,al // mov ecx,0x100 // local_1: // loop local_1 // in al,0xa1 // mov gdwPIC8259Shield_2,al // mov ecx,0x100 // local_2: // loop local_2 // } // } // gbIsSaveInterruptShieldRegister=true; // } // // if(gbIsUseAPIC) // { // __asm // { // // mov eax,gdwLocalAPICLineAddress // mov dword ptr [eax+0x80],0xff // // } // } // else // { // __asm // { // // mov al,0xff // out 0x21,al // mov ecx,0x100 // local_3: // loop local_3 // out 0xa1,al // mov ecx,0x100 // local_4: // loop local_4 // in al,0x21 // mov ecx,0x100 // local_5: // loop local_5 // in al,0xa1 // mov ecx,0x100 // local_6: // loop local_6 // // } // } // __asm popad // } // // __declspec (naked)void EnableAllHardInterrupt() // { // __asm // { // pushad // push ds // push es // mov ax,0x23 // mov ds,ax // mov es,ax // } // if(gbIsSaveInterruptShieldRegister) // { // if(gbIsUseAPIC) // { // RestoreIOAPICInterruptVectorTable(); // __asm{ // mov eax,gdwLocalAPICLineAddress // mov ebx,gdwLocalAPICTaskPriority // mov [eax+0x80],ebx // } // } // else // { // __asm{ // mov al,gdwPIC8259Shield_1 // out 0x21,al // mov ecx,0x100 // local_1: // loop local_1 // mov al,gdwPIC8259Shield_2 // out 0xa1,al // mov ecx,0x100 // local_2: // loop local_2 // } // } // gbIsSaveInterruptShieldRegister=false; // } // __asm{ // pop es // pop ds // popad // ret // } // } void EnableHardWareInterrupt(int arg) { if(arg<0x10) { if(gbIsUseAPIC) EnableAPICHardWareInterrupt(arg); else SyserEnablePIC8259HardWareInterrupt(arg); } } DWORD GetHardwareInterruptVectorNum(DWORD dwNum) { if(!gbIsUseAPIC) { if(dwNum < 16) return 0x30+dwNum; return 0; } return GetIOAPICInterruptVector(dwNum); } void SetInteruptEOI(DWORD dwInterruptNum) { DWORD* dwTemp; if(gbIsUseAPIC) { SetLocalAPICEOI(dwInterruptNum) ; } else { SyserSet8259EOI(dwInterruptNum); } } ================================================ FILE: Project/Syser/Source/HardWareInterruptCtrl.h ================================================ #ifndef _HARDWAREINTERRUPTCTRL_H_ #define _HARDWAREINTERRUPTCTRL_H_ #ifdef __cplusplus extern "C" { #endif void SetInteruptEOI(DWORD dwInterruptNum); VOID SyserEnableAllHardInterrupt(VOID); void EnableHardWareInterrupt(INT arg); VOID SyserDisableAllHardInterrupt(VOID); extern bool gbIsSaveInterruptShieldRegister; #ifdef __cplusplus }; // extern "C" #endif #endif //_HARDWAREINTERRUPTCTRL_H_ ================================================ FILE: Project/Syser/Source/HwndCmd.cpp ================================================ #include "StdAfx.h" #include "syser.h" #include "HwndCmd.h" #include "OSProcessThread.h" #include "OSData.h" CWndHwnd::CWndHwnd(void* WindowHwndPtr) { memset(&m_HwndInfo,0,sizeof(m_HwndInfo)); } DWORD CWndHwnd::GetNextWindowCaption(WCHAR* Caption,DWORD CaptionLen) { return 0; } DWORD CWndHwnd::GetPrevWindowCaption(WCHAR* Caption,DWORD CaptionLen) { return 0; } DWORD CWndHwnd::GetParentWindowCaption(WCHAR* Caption,DWORD CaptionLen) { return 0; } DWORD CWndHwnd::GetFirstChildWindowCaption(WCHAR* Caption,DWORD CaptionLen) { return 0; } DWORD CWndHwnd::GetOwnerWindowCaption(WCHAR* Caption,DWORD CaptionLen) { return 0; } DWORD CWndHwnd::GetClassName(WCHAR* Caption,DWORD CaptionLen) { return 0; } WND_STYLE_INFO gOSPredefineColor[]= { {1, WSTR("COLOR_SCROLLBAR" ) }, {2, WSTR("COLOR_BACKGROUND" ) }, {3, WSTR("COLOR_ACTIVECAPTION" ) }, {4, WSTR("COLOR_INACTIVECAPTION") }, {5, WSTR("COLOR_MENU") }, {6, WSTR("COLOR_WINDOW") }, {7, WSTR("COLOR_WINDOWFRAME") }, {8, WSTR("COLOR_MENUTEXT") }, {9, WSTR("COLOR_WINDOWTEXT") }, {10,WSTR("COLOR_CAPTIONTEXT") }, {11, WSTR("COLOR_ACTIVEBORDER") }, {12, WSTR("COLOR_INACTIVEBORDER")}, {13, WSTR("COLOR_APPWORKSPACE") }, {14, WSTR("COLOR_HIGHLIGHT") }, {15, WSTR("COLOR_HIGHLIGHTTEXT") }, {16, WSTR("COLOR_BTNFACE") }, {17, WSTR("COLOR_BTNSHADOW") }, {18, WSTR("COLOR_GRAYTEXT") }, {19, WSTR("COLOR_BTNTEXT") }, {20, WSTR("COLOR_INACTIVECAPTIONTEXT")}, {21, WSTR("COLOR_BTNHIGHLIGHT") }, {22, WSTR("COLOR_3DDKSHADOW") }, {23, WSTR("COLOR_3DLIGHT") }, {24, WSTR("COLOR_INFOTEXT") }, {26, WSTR("COLOR_INFOBK") }, {27, WSTR("COLOR_HOTLIGHT") }, {28, WSTR("COLOR_GRADIENTACTIVECAPTION") }, {29, WSTR("COLOR_GRADIENTINACTIVECAPTION") }, {30, WSTR("COLOR_MENUHILIGHT") }, {31, WSTR("COLOR_MENUBAR") }, }; WND_STYLE_INFO gOSClassStyle[]={ {0x0001,WSTR("CS_VREDRAW")}, {0x0002,WSTR("CS_HREDRAW")}, {0x0008,WSTR("CS_DBLCLKS")}, {0x0020,WSTR("CS_OWNDC")}, {0x0040,WSTR("CS_CLASSDC")}, {0x0080,WSTR("CS_PARENTDC")}, {0x0200,WSTR("CS_NOCLOSE")}, {0x0800,WSTR("CS_SAVEBITS")}, {0x1000,WSTR("CS_BYTEALIGNCLIENT")}, {0x2000,WSTR("CS_BYTEALIGNWINDOW")}, {0x4000,WSTR("CS_GLOBALCLASS")}, {0x00010000,WSTR("CS_IME")}, {0x00020000,WSTR("CS_DROPSHADOW")}, }; WND_STYLE_INFO gOSPredefineCursor[]= { {0x10011,WSTR("IDC_ARROW")}, {0x10013,WSTR("IDC_IBEAM")}, {0x10015,WSTR("IDC_WAIT")}, {0x10017,WSTR("IDC_CROSS")}, {0x10019,WSTR("IDC_UPARROW")}, {0x1001b,WSTR("IDC_SIZENWSE")}, {0x1001d,WSTR("IDC_SIZENESW")}, {0x1001f,WSTR("IDC_SIZEWE")}, {0x10021,WSTR("IDC_SIZENS")}, {0x10023,WSTR("IDC_SIZEALL")}, {0x10025,WSTR("IDC_NO")}, {0x10027,WSTR("IDC_APPSTARTING")}, {0x10029,WSTR("IDC_HELP")}, {0x1002d,WSTR("IDC_HAND")}, }; WND_STYLE_INFO gWndStyleExInfo[]= { {0x08000000L,WSTR("WS_EX_NOACTIVATE")}, {0x02000000L,WSTR("WS_EX_COMPOSITED")}, {0x00400000L,WSTR("WS_EX_LAYOUTRTL")}, {0x00100000L,WSTR("WS_EX_NOINHERITLAYOUT")}, {0x00080000L,WSTR("WS_EX_LAYERED")}, {0x00040000L,WSTR("WS_EX_APPWINDOW")}, {0x00020000L,WSTR("WS_EX_STATICEDGE")}, {0x00010000L,WSTR("WS_EX_CONTROLPARENT")}, //{0x00004000L,WSTR("WS_EX_LEFTSCROLLBAR")}, //{0x00002000L,WSTR("WS_EX_RTLREADING")}, //{0x00001000L,WSTR("WS_EX_RIGHT")}, {0x00000400L,WSTR("WS_EX_CONTEXTHELP")}, {0x00000200L,WSTR("WS_EX_CLIENTEDGE")}, {0x00000100L,WSTR("WS_EX_WINDOWEDGE")}, {0x00000080L,WSTR("WS_EX_TOOLWINDOW")}, {0x00000040L,WSTR("WS_EX_MDICHILD")}, {0x00000020L,WSTR("WS_EX_TRANSPARENT")}, {0x00000010L,WSTR("WS_EX_ACCEPTFILES")}, {0x00000008L,WSTR("WS_EX_TOPMOST")}, {0x00000004L,WSTR("WS_EX_NOPARENTNOTIFY")}, {0x00000001L,WSTR("WS_EX_DLGMODALFRAME")}, }; WCHAR* StyleExToString(DWORD Value,WCHAR* Buffer,DWORD BufferLen) { WCHAR ValueString[11]; Buffer[0]=0; if((Value & WS_EX_OVERLAPPEDWINDOW)==WS_EX_OVERLAPPEDWINDOW) { TStrCat(Buffer,"WS_EX_OVERLAPPEDWINDOW"); Value &= (~WS_EX_OVERLAPPEDWINDOW); } else if((Value &WS_EX_PALETTEWINDOW)==WS_EX_PALETTEWINDOW) { TStrCat(Buffer,"WS_EX_PALETTEWINDOW"); Value &= (~WS_EX_PALETTEWINDOW); } for(int i =0;iParentHwnd,&HwndInfo.PreviousHwnd,0x68); return true; } bool GetHwndInfoByWndStructForVista(void* OsWindowPtr,PSYSER_HWND_INFO SyserHwndInfo) { SYSER_HWND_INFO HwndInfo; if(OsWindowPtr==NULL || SyserHwndInfo==NULL) return false; memset(SyserHwndInfo,0,sizeof(*SyserHwndInfo)); if(SyserPrivateMemCopy((BYTE*)&HwndInfo,(BYTE*)OsWindowPtr,sizeof(HwndInfo))!=sizeof(HwndInfo)) return false; memcpy(SyserHwndInfo,&HwndInfo,0x7c); memcpy(&SyserHwndInfo->Unknow5,&HwndInfo.WindowCaptionLen,0x20); return true; } bool GetClassInfoByHwndInfoForXP_Vista(PSYSER_HWND_INFO SyserHwndInfo,PSYSER_HWND_CLASS_INFO SyserHwndClassInfo) { SYSER_HWND_CLASS_INFO ClassInfo; memset(&ClassInfo,0,sizeof(ClassInfo)); if(SyserPrivateMemCopy((BYTE*)&ClassInfo,(BYTE*)SyserHwndInfo->ClassInfo,sizeof(ClassInfo))!=sizeof(ClassInfo)) return false; memcpy(SyserHwndClassInfo,&ClassInfo,sizeof(ClassInfo)); return true; } bool GetClassInfoByHwndInfoFor2K(PSYSER_HWND_INFO SyserHwndInfo,PSYSER_HWND_CLASS_INFO SyserHwndClassInfo) { SYSER_HWND_CLASS_INFO ClassInfo; memset(&ClassInfo,0,sizeof(ClassInfo)); if(SyserPrivateMemCopy((BYTE*)&ClassInfo,(BYTE*)SyserHwndInfo->ClassInfo,sizeof(ClassInfo))!=sizeof(ClassInfo)) return false; memcpy(SyserHwndClassInfo,&ClassInfo,8); memcpy(SyserHwndClassInfo->Unknow2,&ClassInfo.Unknow1,sizeof(ClassInfo)-8); OUTPUT(WSTR("GetClassInfoByHwndInfoFor2K %08x\n"),SyserHwndClassInfo->lpszClassName); return true; } bool GetClassInfoByHwndInfo(PSYSER_HWND_INFO SyserHwndInfo,PSYSER_HWND_CLASS_INFO SyserHwndClassInfo) { if(gpSyser->m_OSMajorVersion==5 && gpSyser->m_OSMinorVersion==0) return GetClassInfoByHwndInfoFor2K(SyserHwndInfo,SyserHwndClassInfo); if((gpSyser->m_OSMajorVersion==5 && gpSyser->m_OSMinorVersion==1)|| (gpSyser->m_OSMajorVersion==6 && gpSyser->m_OSMinorVersion==0)) return GetClassInfoByHwndInfoForXP_Vista(SyserHwndInfo,SyserHwndClassInfo); memset(SyserHwndClassInfo,0,sizeof(*SyserHwndClassInfo)); return false; } bool GetHwndInfoByWndStruct(void* OsWindowPtr,PSYSER_HWND_INFO SyserHwndInfo) { if(gpSyser->m_OSMajorVersion==5 && gpSyser->m_OSMinorVersion==1) return GetHwndInfoByWndStructForXP(OsWindowPtr,SyserHwndInfo); if(gpSyser->m_OSMajorVersion==5 && gpSyser->m_OSMinorVersion==0) return GetHwndInfoByWndStructFor2K(OsWindowPtr,SyserHwndInfo); if(gpSyser->m_OSMajorVersion==6 && gpSyser->m_OSMinorVersion==0) return GetHwndInfoByWndStructForVista(OsWindowPtr,SyserHwndInfo); return false; } DWORD GetHwndInfoByHandle(DWORD dwHwnd,DWORD Value,PSYSER_HWND_INFO pHwndInfo) { SYSER_HWND_INFO HwndInfo; DWORD Type; while(dwHwnd && GetHwndInfoByWndStruct(*(void**)&dwHwnd,&HwndInfo)) { if(Value==HwndInfo.hWnd) { memcpy(pHwndInfo,&HwndInfo,sizeof(HwndInfo)); return dwHwnd; } Type = GetHwndInfoByHandle((DWORD)HwndInfo.ChildHwnd,Value,pHwndInfo); if(Type) return Type; dwHwnd=(DWORD)HwndInfo.NextHwnd; } return 0; } DWORD GetHwndInfoByHwnd(DWORD HwndID,PSYSER_HWND_INFO HwndInfo) { #ifdef CODE_OS_NT_DRV BOOL bOK; gpSyser->InitOSHwndRoot(); CDbgProcess*pDbgProcess; pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("csrss")); if(pDbgProcess==NULL) { pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("explorer")); if(pDbgProcess==NULL) return 0; } gpSyser->MapToProcess(pDbgProcess); DWORD dwHwnd=gpSyser->m_OSHwndRoot; return GetHwndInfoByHandle(dwHwnd,HwndID,HwndInfo); #endif return 0; } static WCHAR gHwndName[256]; static bool gbShowTitle; //static WCHAR gHwndTitle[]=WSTR("Handle Class WinProc TID Module\n"); static WCHAR gHwndTitle[]=WSTR("Handle WinProc TID Class Module\n"); SYSER_PROCESS gHwndSyserProces; SYSER_THREAD gHwndSyserThread; static DWORD gHwndCount=0; #ifdef CODE_OS_NT_DRV bool hwnd_display_info(DWORD Address,DWORD dwDisplayFlags,SYSER_HWND_INFO &HwndInfo,DWORD dwParam) { WCHAR StyleString[512]; DWORD ProcessID=0,ThreadID=0; DWORD dwLen; WCHAR StrNum[10]; SYSER_HWND_CLASS_INFO ClassInfo; if((dwDisplayFlags&16) || (dwDisplayFlags&8)) { if(ReadDword((void*)HwndInfo.Thread,&dwLen)) { if(GetThreadInfoByETHREAD((DWORD)dwLen,&gHwndSyserThread)) { ThreadID=gHwndSyserThread.ThreadID; if((dwDisplayFlags&16) && dwParam!=ThreadID) return false; if(GetProcessInfoByEPROCESS(dwLen,&gHwndSyserProces)) { ProcessID = gHwndSyserProces.UniqueProcessId; if((dwDisplayFlags&8) && ProcessID!=dwParam) return false; } } } } if(dwDisplayFlags&1) { OUTPUT(WSTR(" %-16s:%06x (%08x)\n"),WSTR("Hwnd"),HwndInfo.hWnd,Address); OUTPUT(WSTR(" %-16s:%08x\n"),WSTR("Window Proc"),HwndInfo.WndProc); if(HwndInfo.PreviousHwnd) if(ReadDword(HwndInfo.PreviousHwnd,&Address)) OUTPUT(WSTR(" %-16s:%06x (%08x)\n"),WSTR("Previous"),Address,HwndInfo.PreviousHwnd); if(HwndInfo.NextHwnd) if(ReadDword(HwndInfo.NextHwnd,&Address)) OUTPUT(WSTR(" %-16s:%06x (%08x)\n"),WSTR("Next"),Address,HwndInfo.NextHwnd); if(HwndInfo.ParentHwnd) if(ReadDword(HwndInfo.ParentHwnd,&Address)) OUTPUT(WSTR(" %-16s:%06x (%08x)\n"),WSTR("Parent"),Address,HwndInfo.ParentHwnd); if(HwndInfo.ChildHwnd) if(ReadDword(HwndInfo.ChildHwnd,&Address)) OUTPUT(WSTR(" %-16s:%06x (%08x)\n"),WSTR("1st Child"),Address,HwndInfo.ChildHwnd); if(HwndInfo.OwnerHwnd) if(ReadDword(HwndInfo.OwnerHwnd,&Address)) OUTPUT(WSTR(" %-16s:%06x (%08x)\n"),WSTR("Owner"),Address,HwndInfo.OwnerHwnd); StyleToString(HwndInfo.Style,StyleString,sizeof(StyleString)/sizeof(StyleString[0])); OUTPUT(WSTR(" %-16s:%08x (%s)\n"),WSTR("Style"),HwndInfo.Style,StyleString); StyleExToString(HwndInfo.StyleEx,StyleString,sizeof(StyleString)/sizeof(StyleString[0])); OUTPUT(WSTR(" %-16s:%08x (%s)\n"),WSTR("Ex. Style"),HwndInfo.StyleEx,StyleString); if(HwndInfo.Style&WS_CHILD) OUTPUT(WSTR(" %-16s:%04x\n"),WSTR("Child Id"),HwndInfo.ControlID); else { if(HwndInfo.Menu) { if(ReadDword((void*)HwndInfo.Menu,&Address)==false) Address=HwndInfo.Menu; OUTPUT(WSTR(" %-16s:%06x\n"),WSTR("Menu"),Address); } } if(HwndInfo.UserData) OUTPUT(WSTR(" %-16s:%08x\n"),WSTR("User Data"),HwndInfo.UserData); OUTPUT(WSTR(" %-16s:%d, %d, %d, %d (%d x %d)\n"),WSTR("Window Rect"),HwndInfo.WndLeft,HwndInfo.WndTop,HwndInfo.WndRight,HwndInfo.WndBottom,HwndInfo.WndRight-HwndInfo.WndLeft,HwndInfo.WndBottom-HwndInfo.WndTop); OUTPUT(WSTR(" %-16s:%d, %d, %d, %d (%d x %d)\n"),WSTR("Client Rect"),HwndInfo.CliLeft-HwndInfo.WndLeft, HwndInfo.CliTop-HwndInfo.WndTop,HwndInfo.CliRight-HwndInfo.WndRight,HwndInfo.CliBottom-HwndInfo.WndBottom,HwndInfo.CliRight-HwndInfo.CliLeft,HwndInfo.CliBottom-HwndInfo.CliTop); } else { TSPrintf(StrNum,WSTR("%06x"),HwndInfo.hWnd); TSPrintf(gHwndName,WSTR("%-9s"),StrNum); OUTPUT(gHwndName); OUTPUT(WSTR("%08x "),HwndInfo.WndProc); if(ReadDword((void*)HwndInfo.Thread,&dwLen)) { if(GetThreadInfoByETHREAD((DWORD)dwLen,&gHwndSyserThread)==false) gHwndSyserThread.ThreadID=0; } else gHwndSyserThread.ThreadID=0; OUTPUT(WSTR("%06x "),gHwndSyserThread.ThreadID); if(GetClassInfoByHwndInfo(&HwndInfo,&ClassInfo)) { if(ClassInfo.lpszClassName) { if(SyserPrivateFindByte((BYTE*)ClassInfo.lpszClassName,0,256)!=NULL) { TStrCpy(gHwndName,(char*)ClassInfo.lpszClassName); OUTPUT(WSTR("%-32s "),gHwndName); } } } for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { if((DWORD)Iter->m_PEProcess==gHwndSyserThread.Process) { CDbgModule*pDbgModule = Iter->m_ModuleList.GetModule(HwndInfo.WndProc); if(pDbgModule) { AnsiToUnicode(pDbgModule->m_ModuleTitle,gHwndName,sizeof(gHwndName)/sizeof(gHwndName[0])); OUTPUT(gHwndName); } else { pDbgModule = gpSyser->m_pSysDebugger->m_ModuleList.GetModule(HwndInfo.WndProc); if(pDbgModule) { AnsiToUnicode(pDbgModule->m_ModuleTitle,gHwndName,sizeof(gHwndName)/sizeof(gHwndName[0])); OUTPUT(gHwndName); } } break; } } OUTPUT(WSTR("\n")); } return true; } void hwnd_display_list(DWORD dwAddress,DWORD dwDisplayFlags,DWORD Param1) { SYSER_HWND_INFO HwndInfo; while(dwAddress && GetHwndInfoByWndStruct(*(void**)&dwAddress,&HwndInfo)) { if(gbShowTitle==false && ((dwDisplayFlags&0x1)==0)) { OUTPUT(gHwndTitle); gbShowTitle=true; } if(hwnd_display_info(dwAddress,dwDisplayFlags,HwndInfo,Param1)) gHwndCount++; if(dwDisplayFlags&0x1) OUTPUT(WSTR("\n"));//ϸʾϢ if(dwDisplayFlags&0x2) hwnd_display_list((DWORD)HwndInfo.ChildHwnd,dwDisplayFlags,Param1); dwAddress=(DWORD)HwndInfo.NextHwnd; if(dwDisplayFlags&0x8000) break; } } const WCHAR cmd_hwnd_usage[]= { L"hwnd: Display window handle information\n" L"Format: hwnd [-xc] [hwnd | thread | process]\n" L"Example1: hwnd 10016 \n" L"Example2: hwnd -x 10018\n" L"Example3: hwnd -c\n" }; int hwnd_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD Address; DWORD dwDisplayFlags=0; gbShowTitle=false; DWORD dwCount=0; int i; pSyser->InitOSHwndRoot(); Address=pSyser->m_OSHwndRoot; gHwndCount=0; argc--; for(i=0;im_SysInfo.GetProcess(WSTR("csrss")); if(pDbgProcess==NULL) return 0; gpSyser->MapToProcess(pDbgProcess); if(dwCount) { for(i=0;im_OSHwndRoot; switch(Type) { case VALUE_TYPE_PROCESS_PTR: if(GetProcessInfoByEPROCESS(dwParam,&Process)==false) continue; dwParam=Process.UniqueProcessId; case VALUE_TYPE_PROCESS_ID: dwDisplayFlags|=10; break; case VALUE_TYPE_THREAD_PTR: if(GetThreadInfoByETHREAD(dwParam,&Thread)==false) continue; case VALUE_TYPE_THREAD_ID: dwDisplayFlags|=18; break; case VALUE_TYPE_HWND_ID: dwParam = GetHwndInfoByHwnd(dwParam,&HwndInfo); case VALUE_TYPE_HWND_PTR: Address=dwParam; dwDisplayFlags|=0x8000; break; } hwnd_display_list(Address,dwDisplayFlags,dwParam); } } else { dwDisplayFlags|=4; dwParam=0; hwnd_display_list(Address,dwDisplayFlags,dwParam); } if(gHwndCount>1) OUTPUT(WSTR("%d Hwnd(s)\n"),gHwndCount); return 0; } #endif const WCHAR cmd_bmsg_usage[]= { L"bpx: Breadpoint on Window message\n" L"Format: bmsg hWnd [begin-msg [end-msg]] [if condition_string] [do command_string]\n" L"Example1: bmsg 70370 WM_RBUTTONDOWN\n" L"Example2: bmsg 10018 WM_MOUSEFIRST WM_MOUSELAST\n" L"Example3: bmsg 10018 WM_CHAR if (*esi)&FF==0 do d eip\n" }; int get_do_command_string(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,char* szDoCmd,int MaxSize); int get_command_condition_string(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,char* szCondition,int MaxSize); #ifdef CODE_OS_NT_DRV int bmsg_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwValue,dwParam; int n; CHAR Name[256],Condition[256],DoCmd[256]; if(argc<3) { OUTPUT_COMMAND_USAGE; return 0; } UnicodeToAnsi(argv[1],Name,sizeof(Name)); if(get_command_condition_string(argc,argv,szCommandLine,Condition,256)>0) { if(CALCEXP(Condition,NULL)==false) { OUTPUT(WSTR("Error : Invalid condition string !\n")); return -1; } } get_do_command_string(argc,argv,szCommandLine,DoCmd,256); for(n=2;n3) { bBeginOK=false; if(CALCEXP(argv[3],&dwEnd)==false) { for(n=0;stMsgList[n].MsgName;n++) { if(TStrICmp(argv[2],stMsgList[n].MsgName)==0) { dwEnd=stMsgList[n].MsgNumber; bBeginOK=true; break; } } if(bBeginOK==false) { OUTPUT_COMMAND_USAGE; return 0; } } } char Condition1[320]; if(dwEnd==0x80000000) TSPrintf(Condition1,"(*(esp+4)==%x && *(esp+8)==%x)",dwParam,dwBegin); else TSPrintf(Condition1,"(*(esp+4)==%x && *(esp+8)>=%x && *(esp+8)<%x)",dwParam,dwBegin,dwEnd); if(Condition[0]) { TStrCat(Condition1,"&&("); TStrCat(Condition1,Condition); TStrCat(Condition1,")"); } pSyser->InitOSHwndRoot(); SYSER_HWND_INFO HwndInfo; dwParam = GetHwndInfoByHwnd(dwParam,&HwndInfo); if(dwParam==0) { OUTPUT(WSTR("Invalid window handle\n")); return 0; } DWORD dwLen; memset(&gHwndSyserThread,0,sizeof(gHwndSyserThread)); if(ReadDword((void*)HwndInfo.Thread,&dwLen)) { if(GetThreadInfoByETHREAD((DWORD)dwLen,&gHwndSyserThread)==false) gHwndSyserThread.Process=0; } for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { if((DWORD)Iter->m_PEProcess==gHwndSyserThread.Process) { gpSyser->MapToProcess(&*Iter); break; } } if(gpSyser->m_SyserUI.InsertCodeBP(HwndInfo.WndProc,Name,Condition1,DoCmd)==false) OUTPUT(WSTR("Error : Fail to set code breakpoint at %08X!\n"),HwndInfo.WndProc); else OUTPUT(WSTR("Set code break point at %%08X%<1>!\n"),HwndInfo.WndProc); UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return 0; } #endif ================================================ FILE: Project/Syser/Source/HwndCmd.h ================================================ #ifndef __HWNDCMD__H__ #define __HWNDCMD__H__ #ifdef CODE_OS_NT_DRV #define WS_POPUPWINDOW 0x80880000L #define WS_OVERLAPPEDWINDOW 0x00cf0000L #define WS_CHILDWINDOW 0x40000000L #define WS_CAPTION 0x00c00000L #define WS_CHILD 0x40000000L #define WS_OVERLAPPED 0x00000000L #define WS_EX_OVERLAPPEDWINDOW 0x00000300L #define WS_EX_PALETTEWINDOW 0x00000188L #define WS_EX_RIGHT 0x00001000L #define WS_EX_RTLREADING 0x00002000L #define WS_EX_LEFTSCROLLBAR 0x00004000L #endif typedef struct _WND_STYLE_INFO { DWORD Value; WCHAR *Name; }WND_STYLE_INFO,*PWND_STYLE_INFO; extern WND_STYLE_INFO gWndStyleExInfo[18]; extern WND_STYLE_INFO gWndStyleInfo[17]; extern WND_STYLE_INFO gOSPredefineColor[30]; extern WND_STYLE_INFO gOSClassStyle[13]; extern WND_STYLE_INFO gOSPredefineCursor[14]; struct _SYSER_HWND_INFO; typedef struct _SYSER_HWND_INFO { DWORD hWnd; //0 DWORD Unknow1; //4 DWORD Thread; //8 DWORD Unknow2[4]; //c DWORD Style; //1c DWORD StyleEx; //20 DWORD InstanceHandle ; //24 DWORD Unknow3; //28 _SYSER_HWND_INFO* NextHwnd; //2c _SYSER_HWND_INFO* PreviousHwnd; //30 _SYSER_HWND_INFO* ParentHwnd; //34 _SYSER_HWND_INFO* ChildHwnd; //38 _SYSER_HWND_INFO* OwnerHwnd; //3c int WndLeft; //40 int WndTop; //44 int WndRight; //48 int WndBottom; //4c int CliLeft; //50 int CliTop; //54 int CliRight; //58 int CliBottom; //5c DWORD WndProc; //60 DWORD ClassInfo; //64 DWORD Unknow4[4]; //68 union{ DWORD Menu; //78 DWORD ControlID; //78 }; DWORD Unknow5; //7c DWORD WindowCaptionLen; //80 DWORD Unknow9; //84 DWORD WindowCaptionBuffer; //88 DWORD Unknow21[3]; //8c DWORD UserData; //98 DWORD Unknow11; //9c }SYSER_HWND_INFO,*PSYSER_HWND_INFO; struct _SYSER_HWND_CLASS_INFO; typedef struct _SYSER_HWND_CLASS_INFO { DWORD Next; //0 DWORD Flags; //4 DWORD Unknow1; //8 DWORD Unknow2[0x24/sizeof(DWORD)]; //c DWORD style; //0x30 DWORD lpfnWndProc; //0x34 DWORD cbClsExtra; //0x38 DWORD cbWndExtra; //0x3c DWORD hInstance; //0x40 DWORD IconHandle; //0x44 DWORD hCursor; //0x48 DWORD hbrBackground; //0x4c DWORD lpszMenuName; //0x50 DWORD lpszClassName; //0x54 DWORD hIconSm; //0x58 }SYSER_HWND_CLASS_INFO,*PSYSER_HWND_CLASS_INFO; bool GetHwndInfoByWndStruct(void* OsWindowPtr,PSYSER_HWND_INFO SyserHwndInfo); bool GetClassInfoByHwndInfo(PSYSER_HWND_INFO SyserHwndInfo,PSYSER_HWND_CLASS_INFO SyserHwndClassInfo); DWORD GetHwndInfoByHwnd(DWORD HwndID,PSYSER_HWND_INFO HwndInfo); class CWndHwnd { public: CWndHwnd(void* WindowHwndPtr=NULL); ~CWndHwnd(); DWORD GetNextWindowCaption(WCHAR* Caption,DWORD CaptionLen); DWORD GetPrevWindowCaption(WCHAR* Caption,DWORD CaptionLen); DWORD GetParentWindowCaption(WCHAR* Caption,DWORD CaptionLen); DWORD GetFirstChildWindowCaption(WCHAR* Caption,DWORD CaptionLen); DWORD GetOwnerWindowCaption(WCHAR* Caption,DWORD CaptionLen); DWORD GetClassName(WCHAR* ClassName,DWORD ClassNameLen); SYSER_HWND_CLASS_INFO m_HwndInfo; }; class CSyser; DECLARE_SYSER_CMD(hwnd_command); DECLARE_SYSER_CMD(bmsg_command); extern const WCHAR cmd_bmsg_usage[]; extern const WCHAR cmd_hwnd_usage[]; #endif //__HWNDCMD__H__ ================================================ FILE: Project/Syser/Source/HwndWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "HwndWnd.h" #include "HwndCmd.h" #include "OSProcessThread.h" WISP_MSG_MAP_BEGIN(CHwndProcessAndThread) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnClientUpdate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CHwndProcessAndThread) WISP_MSG_EVENT_MAP_END bool CHwndProcessAndThread::OnCreate(WISP_MSG*pMsg) { return true; } void CHwndProcessAndThread::UpdateContext() { } bool CHwndProcessAndThread::OnClientUpdate(WISP_MSG*pMsg) { CWispWnd::OnUpdateClient(pMsg); WISP_RECT rc; WCHAR Name[10]; DWORD dwAddress; SYSER_THREAD Thread; SYSER_PROCESS Process; rc.x=12; rc.y=12; rc.cx=80; rc.cy=16; m_ClientDC.DrawString(WSTR("Process ID:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Thread ID:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; PSYSER_HWND_INFO pHwndInfo=pForm->GetHwndInfo(); rc.y-=20; rc.x+=200; TSPrintf(Name,WSTR("%08x"),pHwndInfo->Thread); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); if(ReadDword(*(void**)&pHwndInfo->Thread,&dwAddress)==false) return false; if(GetThreadInfoByETHREAD((DWORD)dwAddress,&Thread)==false) return false; if(GetProcessInfoByEPROCESS((DWORD)Thread.Process,&Process)==false) return false; rc.x-=100; TSPrintf(Name,WSTR("%08x"),Process.UniqueProcessId); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; TSPrintf(Name,WSTR("%08x"),Thread.ThreadID); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); return false; } enum _CHILD_WND_ID { CMD_ID_NEXTHWND=WISP_ID_USER_START, CMD_ID_PREVIOUSHWND, CMD_ID_PARENTHWND, CMD_ID_CHILDHWND, CMD_ID_OWNERHWND, }; WISP_MSG_MAP_BEGIN(CHwndClassWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnClientUpdate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CHwndClassWnd) WISP_MSG_EVENT_MAP_END bool CHwndClassWnd::OnCreate(WISP_MSG*pMsg) { return true; } void CHwndClassWnd::UpdateContext() { } bool CHwndClassWnd::OnClientUpdate(WISP_MSG*pMsg) { WISP_RECT rc; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; PSYSER_HWND_CLASS_INFO pHwndClassInfo=pForm->GetHwndClassInfo(); DWORD dwLen; WCHAR Name[256]; CWispWnd::OnUpdateClient(pMsg); int m; rc.x=12; rc.y=12; rc.cx=80; rc.cy=16; m_ClientDC.DrawString(WSTR("Class Name:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Class Style:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Class Bytes:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Class Atom:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Window Bytes:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Menu Name:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Icon Handle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Cursor:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; m_ClientDC.DrawString(WSTR("Bkgnd Brush:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.x=175; rc.y=80; rc.cx=180; rc.cy=16; m_ClientDC.DrawString(WSTR("Instance Handle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Window Proc:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.x=95; rc.y=12; rc.cx=80; rc.cy=16; rc.y+=19; TSPrintf(Name,WSTR("%08x"),pHwndClassInfo->style); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; TSPrintf(Name,WSTR("%d"),pHwndClassInfo->cbClsExtra); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; rc.y+=19; TSPrintf(Name,WSTR("%d"),pHwndClassInfo->cbWndExtra); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; TSPrintf(Name,WSTR("(None)")); if(pHwndClassInfo->IconHandle) { if(ReadDword(*(void**)&pHwndClassInfo->IconHandle,&dwLen)) TSPrintf(Name,WSTR("%08x"),dwLen); } m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=19; TSPrintf(Name,WSTR("(None)")); if(pHwndClassInfo->hCursor) { if(ReadDword(*(void**)&pHwndClassInfo->hCursor,&dwLen)) { TSPrintf(Name,WSTR("%08x"),dwLen); for(m =0;mhbrBackground) { if(ReadDword(*(void**)&pHwndClassInfo->hbrBackground,&dwLen)) { TSPrintf(Name,WSTR("%08x"),dwLen); for(m =0;mGetHwndInfo(); m_StyleExList.ClearChildItem(); DWORD Value=pHwndInfo->StyleEx; OUTPUT(WSTR("offset %d %d %08x [%08x] [%08x]\n"),(BYTE*)&pHwndInfo->StyleEx-(BYTE*)pHwndInfo, (BYTE*)&pHwndInfo->Style-(BYTE*)pHwndInfo,pHwndInfo,pHwndInfo->Style,pHwndInfo->StyleEx); OUTPUT(WSTR("sizeof(gWndStyleExInfo)/sizeof(gWndStyleExInfo[0])=%d %08x %08x\n"),sizeof(gWndStyleExInfo)/sizeof(gWndStyleExInfo[0]),pHwndInfo->StyleEx,pHwndInfo->Style); for(i =0;iStyle; for(i =0;iStyle); m_StyleStr.SetWindowText(Buffer); TSPrintf(Buffer,WSTR("Extended Styles: %08x"),pHwndInfo->StyleEx); m_StyleExStr.SetWindowText(Buffer); } CHwndOtherWnd::CHwndOtherWnd() { } CHwndOtherWnd::~CHwndOtherWnd() { } WISP_MSG_MAP_BEGIN(CHwndOtherWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnClientUpdate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CHwndOtherWnd) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CHwndOtherWnd) WISP_MSG_CMD_MAP(CMD_ID_NEXTHWND,OnGotoNextHwnd) WISP_MSG_CMD_MAP(CMD_ID_PREVIOUSHWND,OnGotoPreviousHwnd) WISP_MSG_CMD_MAP(CMD_ID_PARENTHWND,OnGotoParentHwnd) WISP_MSG_CMD_MAP(CMD_ID_CHILDHWND,OnGotoChildHwnd) WISP_MSG_CMD_MAP(CMD_ID_OWNERHWND,OnGotoOwnerHwnd) WISP_MSG_CMD_MAP_END bool CHwndOtherWnd::OnGotoNextHwnd(IN WISP_MSG*pMsg) { OUTPUT(WSTR("Clicked Next Hwnd %08x\n"),m_NextHwnd); if(m_NextHwnd==0) return true; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; pForm->UpdateContext(m_NextHwnd); return false; } bool CHwndOtherWnd::OnGotoPreviousHwnd(IN WISP_MSG*pMsg) { if(m_PreviousHwnd==0) return true; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; pForm->UpdateContext(m_PreviousHwnd); return true; } bool CHwndOtherWnd::OnGotoParentHwnd(IN WISP_MSG*pMsg) { if(m_ParentHwnd==0) return true; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; pForm->UpdateContext(m_ParentHwnd); return true; } bool CHwndOtherWnd::OnGotoChildHwnd(IN WISP_MSG*pMsg) { if(m_FirstChildHwnd==0) return true; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; pForm->UpdateContext(m_FirstChildHwnd); return true; } bool CHwndOtherWnd::OnGotoOwnerHwnd(IN WISP_MSG*pMsg) { if(m_OwnerWnd==0) return true; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; pForm->UpdateContext(m_OwnerHwnd); return true; } bool CHwndOtherWnd::OnCreate(WISP_MSG*pMsg) { WISP_RECT rc={12,12,344,30},rc2={56,25,74,12}; m_NextGroup.Create(WSTR("Next Window"),&rc,this); rc.y+=32; m_PreviousGroup.Create(WSTR("Previous Window"),&rc,this); rc.y+=32; m_ParentGroup.Create(WSTR("Parent Window"),&rc,this); rc.y+=32; m_FirstChildGroup.Create(WSTR("First Child Window"),&rc,this); rc.y+=32; m_OnwerGroup.Create(WSTR("Owner Window"),&rc,this); m_NextURL.Create(NULL,&rc2,this,CMD_ID_NEXTHWND); rc2.y+=32; m_PreviousURL.Create(NULL,&rc2,this,CMD_ID_PREVIOUSHWND); rc2.y+=32; m_ParentURL.Create(NULL,&rc2,this,CMD_ID_PARENTHWND); rc2.y+=32; m_FirstChildURL.Create(NULL,&rc2,this,CMD_ID_CHILDHWND); rc2.y+=32; m_OwnerURL.Create(NULL,&rc2,this,CMD_ID_OWNERHWND); return true; } bool CHwndOtherWnd::OnClientUpdate(WISP_MSG*pMsg) { CWispWnd::OnUpdateClient(pMsg); WCHAR Name[10]=WSTR("Handle:"),Catpion[10]=WSTR("Caption "); WISP_RECT rc={15,25,40,12},rc2={138,25,214,12}; m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); m_ClientDC.DrawString(Catpion,&rc2,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=32;rc2.y+=32; m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); m_ClientDC.DrawString(Catpion,&rc2,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=32;rc2.y+=32; m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); m_ClientDC.DrawString(Catpion,&rc2,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=32;rc2.y+=32; m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); m_ClientDC.DrawString(Catpion,&rc2,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=32;rc2.y+=32; m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); m_ClientDC.DrawString(Catpion,&rc2,WISP_DT_VCENTER|WISP_DT_SINGLELINE); return false; } void CHwndOtherWnd::UpdateContext() { CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; PSYSER_HWND_INFO pHwndInfo=pForm->GetHwndInfo(); WCHAR Name[20],NullName[]=WSTR("NULL"); DWORD dwAddress; m_NextHwnd=0; m_PreviousHwnd=0; m_ParentHwnd=0; m_FirstChildHwnd=0; m_OwnerHwnd=0; if(pHwndInfo->NextHwnd && ReadDword(pHwndInfo->NextHwnd,&dwAddress)) { TSPrintf(Name,WSTR("%08X"),dwAddress); m_NextURL.SetWindowText(Name); m_NextHwnd=*(DWORD*)&pHwndInfo->NextHwnd; } else m_NextURL.SetWindowText(NullName); if(pHwndInfo->PreviousHwnd && ReadDword(pHwndInfo->PreviousHwnd,&dwAddress)) { TSPrintf(Name,WSTR("%08X"),dwAddress); m_PreviousURL.SetWindowText(Name); m_PreviousHwnd=*(DWORD*)&pHwndInfo->PreviousHwnd; } else m_PreviousURL.SetWindowText(NullName); if(pHwndInfo->ChildHwnd && ReadDword(pHwndInfo->ChildHwnd,&dwAddress)) { TSPrintf(Name,WSTR("%08X"),dwAddress); m_FirstChildURL.SetWindowText(Name); m_FirstChildHwnd=*(DWORD*)&pHwndInfo->ChildHwnd; } else m_FirstChildURL.SetWindowText(NullName); if(pHwndInfo->ParentHwnd && ReadDword(pHwndInfo->ParentHwnd,&dwAddress)) { TSPrintf(Name,WSTR("%08X"),dwAddress); m_ParentURL.SetWindowText(Name); m_ParentHwnd=*(DWORD*)&pHwndInfo->ParentHwnd; } else m_ParentURL.SetWindowText(NullName); if(pHwndInfo->OwnerHwnd && ReadDword(pHwndInfo->OwnerHwnd,&dwAddress)) { TSPrintf(Name,WSTR("%08X"),dwAddress); m_OwnerURL.SetWindowText(Name); m_OwnerHwnd=*(DWORD*)&pHwndInfo->OwnerHwnd; } else m_OwnerURL.SetWindowText(NullName); } CHwndGeneralWnd::CHwndGeneralWnd() { } CHwndGeneralWnd::~CHwndGeneralWnd() { } WISP_MSG_MAP_BEGIN(CHwndGeneralWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnClientUpdate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CHwndGeneralWnd) WISP_MSG_EVENT_MAP_END bool CHwndGeneralWnd::OnCreate(WISP_MSG*pMsg) { return true; } void CHwndGeneralWnd::UpdateContext() { } bool CHwndGeneralWnd::OnClientUpdate(WISP_MSG*pMsg) { WISP_RECT rc; CHwndPropertyForm* pForm=(CHwndPropertyForm*)m_OwnerWnd; PSYSER_HWND_INFO pHwndInfo=pForm->GetHwndInfo(); DWORD dwLen; WCHAR Name[256]; CWispWnd::OnUpdateClient(pMsg); rc.x=12; rc.y=6; rc.cx=180; rc.cy=16; m_ClientDC.DrawString(WSTR("Window Caption:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Window Handle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Window Proc:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Window Rectangle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Client Rectangle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Instance Handle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("Menu Handle:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; m_ClientDC.DrawString(WSTR("User Data:"),&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.x=140; rc.y=6; rc.cx=180; rc.cy=16; if(pHwndInfo->WindowCaptionLen && pHwndInfo->WindowCaptionBuffer) { dwLen=pHwndInfo->WindowCaptionLen; if(pHwndInfo->WindowCaptionLen>sizeof(Name)) dwLen=sizeof(Name)-2; SafeMemCopy((BYTE*)Name,*(BYTE**)&pHwndInfo->WindowCaptionBuffer,dwLen); Name[dwLen/sizeof(WCHAR)]=0; m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); } rc.y+=20; TSPrintf(Name,WSTR("%08x"),pHwndInfo->hWnd); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; TSPrintf(Name,WSTR("%08x"),pHwndInfo->WndProc); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; TSPrintf(Name,WSTR("(%d, %d)-(%d, %d), %dx%d"), pHwndInfo->WndLeft, pHwndInfo->WndTop, pHwndInfo->WndRight, pHwndInfo->WndBottom, pHwndInfo->WndRight-pHwndInfo->WndLeft, pHwndInfo->WndBottom-pHwndInfo->WndTop); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; TSPrintf(Name,WSTR("(%d, %d)-(%d, %d), %dx%d"), pHwndInfo->CliLeft-pHwndInfo->WndLeft, pHwndInfo->CliTop-pHwndInfo->WndTop, pHwndInfo->CliRight-pHwndInfo->WndRight, pHwndInfo->CliBottom-pHwndInfo->WndBottom, pHwndInfo->CliRight-pHwndInfo->CliLeft, pHwndInfo->CliBottom-pHwndInfo->CliTop); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; TSPrintf(Name,WSTR("%08x"),pHwndInfo->InstanceHandle); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; Name[0]=0; if(pHwndInfo->Style&WS_CHILD) TSPrintf(Name,WSTR("%08x"),pHwndInfo->ControlID); else { dwLen=pHwndInfo->Menu; if(pHwndInfo->Menu) { ReadDword(*(void**)&pHwndInfo->Menu,&dwLen); } TSPrintf(Name,WSTR("%08x"),dwLen); } m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); rc.y+=20; TSPrintf(Name,WSTR("%08x"),pHwndInfo->UserData); m_ClientDC.DrawString(Name,&rc,WISP_DT_VCENTER|WISP_DT_SINGLELINE); return false; } enum CHwndPropertyForm::WISP_FORM_ID { CMD_ID_BT_EDIT = WISP_ID_USER_START, CMD_ID_MAIN_TAB, CMD_ID_COMBOBOX_MODULE, CMD_ID_WND_PE_HEADER, CMD_ID_WND_RELOCATIONS, CMD_ID_WND_IMPORT, CMD_ID_WND_EXPORT, CMD_ID_BP_DATA_LIST, }; WISP_FORM_RES_ITEM CHwndPropertyForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,386,268}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("PE Explorer"), "\\SyserIcon\\Syser.ico", }, { WISP_CTRL_TAB, {6,6,368,206}, CMD_ID_MAIN_TAB, WISP_WS_THIN_BORDER, NULL, }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CHwndPropertyForm) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CHwndPropertyForm) WISP_MSG_CMD_MAP(CMD_ID_COMBOBOX_MODULE,OnModuleSelectComboxCmd) WISP_MSG_CMD_MAP(CMD_ID_MAIN_TAB,OnTabActiveChange) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CHwndPropertyForm) WISP_MSG_EVENT_MAP_END CHwndPropertyForm::CHwndPropertyForm() { m_pFormRes = m_FormRes; m_pMainTab=NULL; memset(&m_HwndInfo,0,sizeof(m_HwndInfo)); } bool CHwndPropertyForm::OnTabActiveChange(IN WISP_MSG* pMsg) { if(pMsg->Command.CmdMsg==WISP_CMD_TAB_ACTIVE_CHG) { if(pMsg->Command.Param1==1) m_pStyleWnd->UpdateContext(); } return true; } CHwndPropertyForm::~CHwndPropertyForm() { } void CHwndPropertyForm::UpdateContext(DWORD ModuleBase) { m_HwndInfoAddress=ModuleBase; memset(&m_HwndInfo,0,sizeof(m_HwndInfo)); if(!IsWindow()) return; GetHwndInfoByWndStruct(*(void**)&ModuleBase,&m_HwndInfo); m_pGeneralWnd->UpdateContext(); m_pStyleWnd->UpdateContext(); m_pOtherWnd->UpdateContext(); m_pClassWnd->UpdateContext(); } void CHwndPropertyForm::Popup() { if(IsWindow()) { Show(); } else { CreateForm(NULL); } } bool CHwndPropertyForm::OnModuleSelectComboxCmd(IN WISP_MSG* pMsg) { return true; } bool CHwndPropertyForm::OnFormCreate(WISP_MSG*pMsg) { m_pMainTab = (CWispTabWnd*) GetFormItem(CMD_ID_MAIN_TAB); m_pGeneralWnd=new CHwndGeneralWnd; m_pGeneralWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_PE_HEADER,WISP_WS_NULL); m_pGeneralWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("General"),m_pGeneralWnd); m_pGeneralWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_pStyleWnd=new CHwndStyleWnd; m_pStyleWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_PE_HEADER,WISP_WS_NULL); m_pStyleWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Style"),m_pStyleWnd); m_pStyleWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_pOtherWnd = new CHwndOtherWnd; m_pOtherWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_PE_HEADER,WISP_WS_NULL); m_pOtherWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Windows"),m_pOtherWnd); m_pOtherWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_pClassWnd = new CHwndClassWnd; m_pClassWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_PE_HEADER,WISP_WS_NULL); m_pClassWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Class"),m_pClassWnd); m_pClassWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_pProcessAndThread = new CHwndProcessAndThread; m_pProcessAndThread->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_PE_HEADER,WISP_WS_NULL); m_pProcessAndThread->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Process"),m_pProcessAndThread); m_pProcessAndThread->AddAdvStyle(WISP_WAS_AUTO_DELETE); return true; } WISP_MSG_MAP_BEGIN(CHwndListWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CHwndListWnd) WISP_MSG_EVENT_MAP(EVENT_ID_GOTO,OnEventGoto) WISP_MSG_EVENT_MAP(EVENT_ID_PE_EXPLORER,OnEventPEExplorer) WISP_MSG_EVENT_MAP_END WISP_MENU_RES_ITEM HwndListMenu[]= { {WSTR("Goto"),EVENT_ID_GOTO,8,WISP_MIS_NORMAL}, {WSTR("Properties"),EVENT_ID_PE_EXPLORER,14,WISP_MIS_NORMAL}, WISP_MENU_RES_END }; CHwndListWnd::CHwndListWnd() { } CHwndListWnd::~CHwndListWnd() { } void CHwndListWnd::ItemClickNotify(HANDLE hItem,int Col) { } bool CHwndListWnd::OnCreate(IN WISP_MSG* pMsg) { AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,13*16+12)); SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_Style|=WISP_WLS_EMPTY_SEL_RECT; m_PopupMenu.CreatePopupMenu(HwndListMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); InsertColumn(WSTR("HWND"),60); InsertColumn(WSTR("Name"),200); InsertColumn(WSTR("Class Name"),200); UpdateContext(NULL,GetWindowHwndHead()); return true; } bool CHwndListWnd::OnClose(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CHwndListWnd::OnDestroy(IN WISP_MSG* pMsg) { m_PopupMenu.Destroy(); return true; } bool CHwndListWnd::OnKeyEvent(IN WISP_MSG* pMsg) { HANDLE hItem; if(pMsg->KeyEvent.bKeyDown && pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) { hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) m_PopupMenu.Popup(); } return true; } void CHwndListWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("HWND"),0,0,500,350,NULL,CMD_ID_MODULE_LIST_WND,WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WS_NORMAL|WISP_WLS_TREE); SetOwner(&gpSyser->m_MainFrame.m_SystemExplorer); Center(); } } DWORD CHwndListWnd::GetWindowHwndHead() { #ifdef CODE_OS_NT_DRV gpSyser->InitOSHwndRoot(); return gpSyser->m_OSHwndRoot; #endif return 0; } void CHwndListWnd::UpdateContext(HANDLE hItem,DWORD dwAddress) { CDbgProcess*pDbgProcess=NULL; DWORD dwLen,dwHeader; HANDLE hSubItem; WCHAR Name[256]; SYSER_HWND_CLASS_INFO ClassInfo; ClearChildItem(hItem); dwHeader=dwAddress; if(dwAddress==0) return; SYSER_HWND_INFO HwndInfo; while(dwAddress && GetHwndInfoByWndStruct(*(void**)&dwAddress,&HwndInfo)) { hSubItem = InsertItem(HwndInfo.hWnd,hItem); SetItemData(hSubItem,0,dwAddress); if(GetClassInfoByHwndInfo(&HwndInfo,&ClassInfo)) { if(ClassInfo.lpszClassName) { if(SyserPrivateFindByte(*(BYTE**)&ClassInfo.lpszClassName,0,256)!=NULL) { SetItemTextA(hSubItem,2,*(const CHAR**)&ClassInfo.lpszClassName); } } } if(HwndInfo.WindowCaptionLen && HwndInfo.WindowCaptionBuffer) { dwLen=HwndInfo.WindowCaptionLen; if(HwndInfo.WindowCaptionLen>sizeof(Name)) dwLen=sizeof(Name)-2; SafeMemCopy((BYTE*)Name,*(BYTE**)&HwndInfo.WindowCaptionBuffer,dwLen); Name[dwLen/sizeof(WCHAR)]=0; SetItemText(hSubItem,1,Name); } UpdateContext(hSubItem,*(DWORD*)&HwndInfo.ChildHwnd); dwAddress=*(DWORD*)&HwndInfo.NextHwnd; } } bool CHwndListWnd::OnEventPEExplorer(IN WISP_MSG*pMsg) { ULPOS ModuleBase; HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ModuleBase = (ULPOS)GetItemData(hItem,0); gpSyser->m_MainFrame.m_HwndPropertyForm.Popup(); gpSyser->m_MainFrame.m_HwndPropertyForm.UpdateContext(ModuleBase); return true; } bool CHwndListWnd::OnEventGoto(IN WISP_MSG*pMsg) { ULPOS ModuleBase; HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ModuleBase = (ULPOS)GetItemData(hItem,0); gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(ModuleBase); return true; } ================================================ FILE: Project/Syser/Source/HwndWnd.h ================================================ #ifndef __HWND_WND__H_ #define __HWND_WND__H_ #include "HwndCmd.h" class CHwndProcessAndThread : public CWispWnd { public: CHwndProcessAndThread(){}; ~CHwndProcessAndThread(){}; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClientUpdate) DECLARE_WISP_MSG_EVENT_MAP void UpdateContext(); }; class CHwndClassWnd : public CWispWnd { public: CHwndClassWnd(){}; ~CHwndClassWnd(){}; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClientUpdate) DECLARE_WISP_MSG_EVENT_MAP void UpdateContext(); }; class CHwndStyleWnd : public CWispWnd { public: CHwndStyleWnd(); ~CHwndStyleWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP void UpdateContext(); CWispList m_StyleList; CWispList m_StyleExList; CWispStaticStr m_StyleStr; CWispStaticStr m_StyleExStr; }; class CHwndGeneralWnd : public CWispWnd { public: CHwndGeneralWnd(); ~CHwndGeneralWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClientUpdate) DECLARE_WISP_MSG_EVENT_MAP void UpdateContext(); }; class CHwndOtherWnd : public CWispWnd { public: CHwndOtherWnd(); ~CHwndOtherWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClientUpdate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnGotoNextHwnd) DECLARE_WISP_MSG_CMD(OnGotoPreviousHwnd) DECLARE_WISP_MSG_CMD(OnGotoParentHwnd) DECLARE_WISP_MSG_CMD(OnGotoChildHwnd) DECLARE_WISP_MSG_CMD(OnGotoOwnerHwnd) void UpdateContext(); CWispStaticGroup m_NextGroup; CWispStaticGroup m_PreviousGroup; CWispStaticGroup m_ParentGroup; CWispStaticGroup m_FirstChildGroup; CWispStaticGroup m_OnwerGroup; CWispStaticURL m_NextURL; CWispStaticURL m_PreviousURL; CWispStaticURL m_ParentURL; CWispStaticURL m_FirstChildURL; CWispStaticURL m_OwnerURL; DWORD m_NextHwnd; DWORD m_PreviousHwnd; DWORD m_ParentHwnd; DWORD m_FirstChildHwnd; DWORD m_OwnerHwnd; }; class CHwndPropertyForm : public CWispForm { public: CHwndPropertyForm(); ~CHwndPropertyForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: void Popup(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnModuleSelectComboxCmd) DECLARE_WISP_MSG_CMD(OnTabActiveChange) public: void UpdateContext(DWORD ModuleBase); PSYSER_HWND_INFO GetHwndInfo() { GetHwndInfoByWndStruct(*(void**)&m_HwndInfoAddress,&m_HwndInfo); return &m_HwndInfo; } PSYSER_HWND_CLASS_INFO GetHwndClassInfo() { GetClassInfoByHwndInfo(&m_HwndInfo,&m_HwndClassInfo); return &m_HwndClassInfo; } private: CWispTabWnd *m_pMainTab; CHwndGeneralWnd* m_pGeneralWnd; CHwndStyleWnd* m_pStyleWnd; CHwndOtherWnd* m_pOtherWnd; CHwndClassWnd* m_pClassWnd; CHwndProcessAndThread* m_pProcessAndThread; DWORD m_HwndInfoAddress; SYSER_HWND_INFO m_HwndInfo; SYSER_HWND_CLASS_INFO m_HwndClassInfo; }; class CHwndListWnd : public CWispList { public: CHwndListWnd(); ~CHwndListWnd(); void Popup(); void UpdateContext(HANDLE hItem,DWORD dwOSHwnd); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventGoto) DECLARE_WISP_MSG_EVENT(OnEventPEExplorer) DWORD GetWindowHwndHead(); void ItemClickNotify(HANDLE hItem,int Col); public: CWispMenu m_PopupMenu; }; #endif //__HWND_WND__H_ ================================================ FILE: Project/Syser/Source/IBMAsciiWnd.cpp ================================================ #include "stdafx.h" #include "IBMAsciiWnd.h" WISP_MSG_MAP_BEGIN(CIBMAsciiWnd) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) CIBMAsciiWnd::CIBMAsciiWnd() { m_pFormRes = m_FormRes; m_FontType=2; } CIBMAsciiWnd::~CIBMAsciiWnd() { } bool CIBMAsciiWnd::OnFormCreate(IN WISP_MSG*pMsg) { SetBGColor(ColorOption.clrSDBK); return true; } void CIBMAsciiWnd::DrawIndex(int x,int y) { WCHAR pString[64]; WCHAR pString2[10]; int i; m_ClientDC.SetTextColor(WISP_RGB(0,0,0xff)); for(i=0;i<16;i++) { pString[i*2]='0'+i; pString2[0]='0'+i; pString2[1]='0'; pString[i*2+1]=' '; if(i>9) { pString[i*2]='A'+i-10; pString2[0]='A'+i-10; } TSPrintf(pString2,WSTR("%02X(%-3d)"),i*16,i*16); m_ClientDC.DrawString(0,y+32+i*32,pString2,7,0,1);//ÿе } m_ClientDC.DrawString(x,y,pString,32,0,1);//1к int n=0; for(i=0;i<16;i++) { pString[i*2]='0'+i; pString[i*2+1]=' '; if(i>9) { pString[i*2]='1'; pString[i*2+1]='0'+i-10; } } m_ClientDC.DrawString(x,y+32+i*32,pString,20,0,1); //һеĺ m_ClientDC.DrawString(x+12*20-8,y+32+i*32,&pString[20],12,0,1); } void CIBMAsciiWnd::DrawGrid(int x,int y,int cx,int cy) { WCHAR pString[64]; WCHAR pString2[64]; int i,j; m_ClientDC.SetTextColor(WISP_RGB(0,0,0xff)); pString[0]=0xda; for(i=0;i<16;i++) { pString[i*2+1]=0xc4; pString[i*2+2]=0xc2; } pString[32]=0xbf; m_ClientDC.DrawString(x,y,pString,33,0,1); for(i=0;i<16;i++) { pString[0]=0xb3; pString2[0]=0xc3; for(j=0;j<15;j++) { pString[j*2+1]=0x20; pString[j*2+1+1]=0xb3; pString2[j*2+1]=0xc4; pString2[j*2+1+1]=0xc5; } pString[31]=0x20; pString[32]=0xb3; pString2[31]=0xc4; pString2[32]=0xb4; m_ClientDC.DrawString(x,y+16+(i*2)*16,pString,33,0,1); if(i!=15) m_ClientDC.DrawString(x,y+32+(i*2)*16,pString2,33,0,1); if(i==8) { pString[0]=0xc4; m_ClientDC.SetTextColor(WISP_RGB(0xff,0,0)); for(j=0;j<16;j++) { m_ClientDC.DrawString(x+12+j*24,y+(i*2)*16,pString,1,0,1); } m_ClientDC.SetTextColor(WISP_RGB(0,0,0xff)); } } pString[0]=0xc0; for(i=0;i<16;i++) { pString[i*2+1]=0xc4; pString[i*2+2]=0xc1; } pString[32]=0xd9; m_ClientDC.DrawString(x,y+32+(15*2)*16,pString,33,0,1); } bool CIBMAsciiWnd::OnUpdateClient(IN WISP_MSG *pMsg) { CWispForm::OnUpdateClient(pMsg); WCHAR pString[100]; m_ClientDC.SetTextType(2); int x=28+60,y=24; DrawGrid(x,y,0,0); DrawIndex(x+12,y-16); memset(pString,0,sizeof(pString)); int i,m,n; m_ClientDC.SetTextColor(ColorOption.clrText); m_ClientDC.SetTextColor(WISP_RGB(192,192,192)); m_ClientDC.SetTextType(m_FontType); for(i = 1; i < 256; i++) { m=i/16; n=i%16; pString[0]=(WCHAR)i; m_ClientDC.DrawString(x+12+n*24,y+16+m*32,pString,1,0,1); } return false; } bool CIBMAsciiWnd::SetFont(int FontType) { bool bOK=false; if(FontType>=2 && FontType<=4) { m_FontType=FontType; SetWindowText(m_gTitileName[FontType-2]); bOK=true; } return bOK; } void CIBMAsciiWnd::Popup() { if(IsWindow()) { Show(); } else { CreateForm(NULL); } } WCHAR* CIBMAsciiWnd::m_gTitileName[3]= { WSTR("IBM ASCII"), WSTR("EBCDIC"), WSTR("ANSI ASCII"), }; WISP_FORM_RES_ITEM CIBMAsciiWnd::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,500,600}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR(""), "\\SyserIcon\\Syser.ico", }, {WISP_CTRL_NULL} }; ================================================ FILE: Project/Syser/Source/IBMAsciiWnd.h ================================================ #ifndef __IBMASCIIWND_H__ #define __IBMASCIIWND_H__ class CIBMAsciiWnd:public CWispForm { public: static WISP_FORM_RES_ITEM m_FormRes[]; CIBMAsciiWnd(); ~CIBMAsciiWnd(); DECLARE_WISP_MSG_MAP //DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnUpdateClient); void Popup(); DECLARE_WISP_MSG(OnFormCreate) void DrawGrid(int x,int y,int cx,int cy); void DrawString(WCHAR* pStr,int x,int y,int Len); void DrawIndex(int x,int y); bool SetFont(int FontType); private: int m_FontType; static WCHAR* m_gTitileName[3]; }; #endif //_IBMASCIIWND_H__ ================================================ FILE: Project/Syser/Source/IDTWnd.cpp ================================================ #include "StdAfx.h" #include "IdtWnd.h" #include "X86Define.h" #include "X86Optr.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CIDTWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_END(CWispList) CIDTWnd::CIDTWnd() { #ifdef CODE_OS_WIN m_pIDTAddress = idtdata; m_dwIDTSize = 0x7ff; #else m_pIDTAddress = (void *)SyserGetIDTBase(&m_dwIDTSize); #endif m_dwBeginIndex = 0; } CIDTWnd::~CIDTWnd() { } void CIDTWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("IDT"),CWispRect(0,0,540,350),NULL,0,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); Center(); } } bool CIDTWnd::OnCreate(IN WISP_MSG*pMsg) { SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); InsertColumn(WISP_STR("Int"),40); InsertColumn(WISP_STR("Type"),80); InsertColumn(WISP_STR("Sel:Offset"),90); InsertColumn(WISP_STR("Attributes"),100); InsertColumn(WISP_STR("Symbol/Owner"),90); SetWindowText(WISP_STR("IDT TABLE")); UpdateContext(); return true; } bool CIDTWnd::OnClose(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } void CIDTWnd::UpdateContext() { ClearChildItem(); InsertIDT(); } bool CIDTWnd::InsertIDT() { WISP_CHAR display[64]; HANDLE hItem; DWORD dwSelector,dwIDTSize,dwOffset; VADDR32 dwIDTBase; // DWORD dwLow,dwHigh; // DWORD dwSegmentBase,dwSegmentLimit; DWORD i = 0,j; WCHAR *Format=WSTR("%04x %s %04x:%08x DPL=%d %s"); // WCHAR DisplayBuf[0x200]; X86_GATE_DECR *pGateDecr; static WCHAR *DescType[16]={ WSTR("Reserved"), WSTR("TSS16 "), WSTR("LDT "), WSTR("TSS32 "), WSTR("CallG16 "), WSTR("TaskG "), WSTR("IntG16 "), WSTR("TrapG16 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("CallG32 "), WSTR("Reserved"), WSTR("IntG32 "), WSTR("TrapG32 "), }; dwIDTBase = PTR_TO_NUM(m_pIDTAddress); dwIDTSize = m_dwIDTSize; j = (dwIDTSize + 1) / sizeof(X86_GATE_DECR); pGateDecr = (X86_GATE_DECR*)NUM_TO_PTR(dwIDTBase); for(i = 0;i < j;i++) { dwSelector = pGateDecr[i].Selector; TSPrintf(display,WISP_STR("%02X"),i); hItem = InsertItem(display); SetItemText(hItem,1,DescType[pGateDecr[i].Type]); dwOffset = pGateDecr[i].OffsetLow | (pGateDecr[i].OffsetHigh << 16); #ifdef CODE_OS_NT_DRV extern DWORD gOldInterruptProcAddress[0x100]; if(gOldInterruptProcAddress[i]) { DWORD SelfStart = *(DWORD*)&gpSyser->m_DriverObject->DriverStart; if(dwOffset>SelfStart&&dwOffsetm_DriverObject->DriverSize) dwOffset=gOldInterruptProcAddress[i]; } #endif SetItemText(hItem,2,DescType[pGateDecr[i].Type]); TSPrintf(display,WISP_STR("%04X:%08X"),dwSelector,dwOffset); SetItemText(hItem,2,display); TSPrintf(display,WISP_STR("DPL=%d %s"),pGateDecr[i].DPL,pGateDecr[i].P ? WSTR("P "):WSTR("NP")); SetItemText(hItem,3,display); } return true; } void SetIDTBaseAddress(void *IDTBase,DWORD dwIDTSize,DWORD dwIndex) { } BYTE CIDTWnd::idtdata[8*256]={ 0x22,0xBC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x69,0x3F,0x08,0x00,0x00,0xEE,0x94,0xF1, 0x78,0x3F,0x08,0x00,0x00,0x8E,0x94,0xF1,0x87,0x3F,0x08,0x00,0x00,0xEE,0x94,0xF1, 0xE5,0xC1,0x08,0x00,0x00,0xEE,0x4D,0x80,0x26,0xC3,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x96,0x3F,0x08,0x00,0x00,0x8E,0x94,0xF1,0x57,0xCA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x78,0x11,0x50,0x00,0x00,0x85,0x00,0x00,0x71,0xCE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x74,0xCF,0x08,0x00,0x00,0x8E,0x4D,0x80,0xA5,0x3F,0x08,0x00,0x00,0x8E,0x94,0xF1, 0xB4,0x3F,0x08,0x00,0x00,0x8E,0x94,0xF1,0xC3,0x3F,0x08,0x00,0x00,0x8E,0x94,0xF1, 0xD2,0x3F,0x08,0x00,0x00,0x8E,0x94,0xF1,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4F,0xE0,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6A,0xE1,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0xA0,0x00,0x00,0x85,0x4D,0x80,0xB6,0xE2,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00, 0xF6,0xB4,0x08,0x00,0x00,0xEE,0x4D,0x80,0xE1,0xB5,0x08,0x00,0x00,0xEE,0x4D,0x80, 0x44,0xB7,0x08,0x00,0x00,0xEE,0x4D,0x80,0xF0,0x3F,0x08,0x00,0x00,0xEE,0x94,0xF1, 0xFF,0x3F,0x08,0x00,0x00,0xEE,0x94,0xF1,0x4C,0xDF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC0,0xE4,0x08,0x00,0x00,0x8E,0x6C,0x80,0x0E,0x40,0x08,0x00,0x00,0x8E,0x94,0xF1, 0x84,0xA7,0x08,0x00,0x00,0x8E,0x4D,0x80,0x1D,0x40,0x08,0x00,0x00,0x8E,0x94,0xF1, 0x2C,0x40,0x08,0x00,0x00,0x8E,0x94,0xF1,0xFC,0xF0,0x08,0x00,0x00,0x8E,0x8E,0x81, 0xAC,0xA7,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4A,0x40,0x08,0x00,0x00,0x8E,0x94,0xF1, 0x80,0x8E,0x08,0x00,0x00,0x8E,0x6C,0x80,0xC4,0xC4,0x08,0x00,0x00,0x8E,0xB7,0x81, 0xCC,0x54,0x08,0x00,0x00,0x8E,0xA1,0x81,0x04,0xE6,0x08,0x00,0x00,0x8E,0x8F,0x81, 0x3B,0x40,0x08,0x00,0x00,0x8E,0x94,0xF1,0xF2,0xA7,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xE4,0xF6,0x08,0x00,0x00,0x8E,0xBC,0x81,0xA4,0xBA,0x08,0x00,0x00,0x8E,0xB5,0x81, 0x10,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE1,0x3F,0x08,0x00,0x00,0xEE,0x94,0xF1, 0x24,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x2E,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x38,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x42,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x56,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x60,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6A,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x74,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x7E,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x88,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0x92,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x9C,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xA6,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB0,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xBA,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC4,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xCE,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xD8,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE2,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xEC,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80,0xF6,0xA8,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x00,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x0A,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x14,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x1E,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x28,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x32,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x3C,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x46,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x50,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x5A,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x64,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6E,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x78,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x82,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x8C,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0x96,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xA0,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xAA,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB4,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xBE,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC8,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xD2,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xDC,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE6,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xF0,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80,0xFA,0xA9,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x04,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x0E,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x18,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x22,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x2C,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x36,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x40,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4A,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x54,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x5E,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x68,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x72,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x7C,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x86,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x90,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0x9A,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xA4,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0xAE,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB8,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0xC2,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xCC,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0xD6,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xE0,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0xEA,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xF4,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80,0xFE,0xAA,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x08,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x12,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x1C,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x26,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x30,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x3A,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x44,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x4E,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x58,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x62,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x6C,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x76,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x80,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x8A,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x94,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x9E,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xA8,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0xB2,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xBC,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0xC6,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xD0,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0xDA,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xE4,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0xEE,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xF8,0xAB,0x08,0x00,0x00,0x8E,0x4D,0x80,0x02,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x0C,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x16,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x20,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x2A,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x34,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x3E,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x48,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x52,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x5C,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x66,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x70,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x7A,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x84,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x8E,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x98,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0xA2,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xAC,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0xB6,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC0,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0xCA,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xD4,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0xDE,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xE8,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0xF2,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xFC,0xAC,0x08,0x00,0x00,0x8E,0x4D,0x80,0x06,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x10,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x1A,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x24,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x2E,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x38,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x42,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x4C,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x56,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x60,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6A,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x74,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x7E,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x88,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0x92,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x9C,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0xA6,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB0,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0xBA,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC4,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0xCE,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xD8,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE2,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xEC,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80,0xF6,0xAD,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x00,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x0A,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x14,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x1E,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x28,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x32,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x3C,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x46,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x50,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x5A,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x64,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x6E,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x78,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x82,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x8C,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0x96,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xA0,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0xAA,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xB4,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0xBE,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xC8,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0xD2,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xD9,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0xE0,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xE7,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0xEE,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0xF5,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80,0xFC,0xAE,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x03,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x0A,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x11,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x18,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x1F,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x26,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x2D,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x34,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x3B,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x42,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80, 0x49,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80,0x50,0xAF,0x08,0x00,0x00,0x8E,0x4D,0x80, }; ================================================ FILE: Project/Syser/Source/IDTWnd.h ================================================ #ifndef _IDTWND_H_ #define _IDTWND_H_ class CIDTWnd : public CWispList { public: CIDTWnd(); ~CIDTWnd(); void Popup(); void UpdateContext(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnClose); bool InsertIDT(); void SetIDTBaseAddress(void *IDTBase,DWORD dwIDTSize=0x7ff,DWORD dwIndex=0); static BYTE idtdata[8*256]; VOID * m_pIDTAddress; DWORD m_dwIDTSize; DWORD m_dwBeginIndex; }; #endif ================================================ FILE: Project/Syser/Source/IOAPIC.cpp ================================================ #include "stdafx.h" #include "Syser.h" #include "IOAPIC.h" #include "LocalAPIC.h" #include "X86Optr.h" #include "SerialPort.h" DWORD gdwIOAPICPhysAddress=0; DWORD gdwIOAPICLineAddress=0; bool gbIsUseAPIC=false; IOAPICInterruptVectorTable IOAPICInterruptVectorTab[0x20]; DWORD dwAPICPatchInterruptVectorNum[]= { SYSER_APIC_TIME_INTERRUPT_VECTOR, //index 0 Timter SYSER_APIC_KEYBOARD_INTERRUPT_VECTOR, //index 1 keyboard SYSER_APIC_TIME_INTERRUPT_VECTOR, //index 2 SYSER_APIC_COM2_INTERRUPT_VECTOR, //index 3 SYSER_APIC_COM1_INTERRUPT_VECTOR, //index 4 0x0, //index 5 0x0, //index 6 0x0, //index 7 0x0, //index 8 0x0, //index 9 0x0, //index a 0x0, //index b SYSER_APIC_MOUSE_INTERRUPT_VECTOR, //index c mouse 0x0, //index d 0x0, //index e 0x0, //index f }; #define IOAPIC_DEFAULT_PHYSICAL_BASE 0xFEC00000 #define MSR_INDEX_IA32_APIC_BASE 0x1b #define MSR_APIC_GLOBAL_ENABLE_BIT_MASK 0x800 #define MSR_APIC_BASE_ADDRESS_BIT_MASK 0xfffff000 #define CPUID_1_EDX_FEATURE_APIC_ON_CHIP_BIT_MASK 0x200 bool GetIOAPICBase() { DWORD dwPhysicalAddress = IOAPIC_DEFAULT_PHYSICAL_BASE; CPUID_INFO CpuInfo; DWORD dwLineAddr = 0; DWORD dwRdmsrEax = 0; DWORD dwRdmsrEdx = 0; DWORD dwCpuidEax = 0; DWORD dwCpuidEdx = 0; gbIsUseAPIC = FALSE; if(SyserIsSupportCPUIDInstruction() == FALSE) return FALSE; if(SyserIsSupportRDMSRInstruction() == FALSE) return FALSE; // __asm // { // pushad // mov eax,1 // cpuid // mov dwCpuidEax,eax // mov dwCpuidEdx,edx // mov ecx,MSR_INDEX_IA32_APIC_BASE // rdmsr // mov dwRdmsrEax,eax // mov dwRdmsrEdx,edx // popad // } SyserGetCPUID(&CpuInfo,1); SyserGetApicInfo(&dwRdmsrEax,&dwRdmsrEdx); dwCpuidEax = CpuInfo.dwEAX; dwCpuidEdx = CpuInfo.dwEDX; if((dwRdmsrEax & MSR_APIC_GLOBAL_ENABLE_BIT_MASK) &&( dwCpuidEdx & CPUID_1_EDX_FEATURE_APIC_ON_CHIP_BIT_MASK)) { for(;dwPhysicalAddress != 0xfec10000 ;dwPhysicalAddress += 0x1000) { if(MapToVAddr(dwPhysicalAddress, (VADDR32 *)&dwLineAddr) == TRUE) break; } if(dwPhysicalAddress==0xfec10000) return false; gdwIOAPICPhysAddress = dwPhysicalAddress; gdwIOAPICLineAddress = dwLineAddr; gdwLocalAPICPhysAddress = dwRdmsrEax & MSR_APIC_BASE_ADDRESS_BIT_MASK; if(MapToVAddr(gdwLocalAPICPhysAddress, (VADDR32 *)&dwLineAddr) == FALSE) return false; gdwLocalAPICLineAddress =dwLineAddr; gbIsUseAPIC = true; } else return false; return true; } //õ IOAPIC ݣ dwIndex DWORD GetIOAPICData(DWORD dwIndex) { DWORD *pIoapicLineAddress,dwReturn = 0; if(gbIsUseAPIC) { pIoapicLineAddress = *(DWORD **)&gdwIOAPICLineAddress; // __asm // { // pushfd // pushad // mov eax,pIoapicLineAddress // mov ebx,dwIndex // cli // mov [eax],ebx // mov eax, [eax+0x10] // mov dwReturn,eax // popad // popfd // } dwReturn = SyserGetIOAPICData(pIoapicLineAddress,dwIndex); } return dwReturn; } void SetIOAPICData(DWORD dwIndex,DWORD dwValue) { DWORD *pIoapicLineAddress; if(gbIsUseAPIC) { pIoapicLineAddress = *(DWORD **)&gdwIOAPICLineAddress; // __asm // { // pushfd // pushad // mov eax,pIoapicLineAddress // mov ebx,dwIndex // mov ecx,dwValue // cli // mov [eax],ebx // mov [eax+0x10],ecx // popad // popfd // } SyserSetIOAPICData(pIoapicLineAddress,dwIndex,dwValue); return ; } } bool SetIOAPICInterruptVector(DWORD dwInterruptVector, DWORD dwLow,DWORD dwHeig) { SetIOAPICData(dwInterruptVector*2+0x10,dwLow); SetIOAPICData(dwInterruptVector*2+0x11,dwHeig); return TRUE; } //ͨӲжϵĵ DWORD GetIOAPICInterruptVector(DWORD dwHardwareIndex) { dwHardwareIndex = dwHardwareIndex * 2 + 0x10; dwHardwareIndex = GetIOAPICData(dwHardwareIndex); return dwHardwareIndex & 0xff; } DWORD GetIOAPICInterruptNum()//ȡioapic жϸ { DWORD dwRet; dwRet = GetIOAPICData(1); dwRet >>= 0x10; dwRet &= 0xff; if(dwRet > 0x20) dwRet = 0x20; return dwRet; } void SaveIOAPICInterruptVectorTable() { DWORD dwInterruptNum; if(!gbIsUseAPIC) return; dwInterruptNum = GetIOAPICInterruptNum(); for(DWORD i=0;i>(8-gCPUNumbers); dwHigh<<=24; SetIOAPICInterruptVector(arg,dwInterruptVectorNum,dwHigh); } } ================================================ FILE: Project/Syser/Source/IOAPIC.h ================================================ #ifndef _IOAPIC_H_ #define _IOAPIC_H_ #ifdef __cplusplus extern "C" { #endif #define SYSER_APIC_TIME_INTERRUPT_VECTOR 0xfa #define SYSER_APIC_KEYBOARD_INTERRUPT_VECTOR 0xf8 #define SYSER_APIC_MOUSE_INTERRUPT_VECTOR 0xf9 typedef struct stIOAPICInterruptVectorTable{ DWORD dwVectorLow; DWORD dwVectorHigh; }IOAPICInterruptVectorTable; extern DWORD gdwIOAPICPhysAddress; extern DWORD gdwIOAPICLineAddress; extern bool gbIsUseAPIC; bool GetIOAPICBase(); void SetIOAPICData(DWORD dwIndex,DWORD dwValue); DWORD GetIOAPICData(DWORD dwIndex); void EnableLocalAPICInterrupt(); void RestoreIOAPICInterruptVectorTable(); void SaveIOAPICInterruptVectorTable(); //õ IOAPIC ֵ֧жϵĿ DWORD GetIOAPICInterruptNum();//õ IOAPIC ֵ֧жϵĿ DWORD GetIOAPICInterruptVector(DWORD dwHardwareIndex); bool SetIOAPICInterruptVector(DWORD dwInterruptVector, DWORD dwLow,DWORD dwHeig); void EnableAPICHardWareInterrupt(DWORD arg); extern IOAPICInterruptVectorTable IOAPICInterruptVectorTab[0x20]; VOID SyserGetApicInfo(DWORD *RdmsrEax,DWORD *RdmsrEdx); DWORD SyserGetIOAPICData(DWORD* IoApicLineAddress, DWORD Index); DWORD SyserSetIOAPICData(DWORD* IoApicLineAddress, DWORD Index,DWORD Data); VOID SyserIOAPICBeep(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //_IOAPIC_H_ ================================================ FILE: Project/Syser/Source/Initialize.cpp ================================================ #include "stdafx.h" #include "Initialize.h" void InitOSVersionInfo() { gOSCheckedBuild=PsGetVersion(&gOSMajorVersion,&gOSMinorVersion,&gOSBuildNumber,NULL); } ================================================ FILE: Project/Syser/Source/Initialize.h ================================================ #ifndef _INITIALIZE_H_ #define _INITIALIZE_H_ #endif //_INITIALIZE_H_ ================================================ FILE: Project/Syser/Source/InputDriver.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "InputDriver.h" #include "X86Optr.h" #include "Interrupt2D.h" #include "SerialPort.h" #include "Services.h" #include "ObjectDirectory.h" #include "pci.h" #include "IOAPIC.h" #include "PIC_8259.h" #include "TimerInterrupt.h" #include "NMIInterruptHandle.h" #include "HardWareInterruptCtrl.h" #include "Mouse.h" #include "PS2Mouse.h" #include "UHCIDevice.h" #include "Int0xe.h" #include "Int0xd.h" #include "Int3.h" #include "VirtualPCSupport.h" #include "VMWareSupport.h" #ifdef __cplusplus extern "C" { #endif bool gbInterruptInstalled=false; bool gHasPS2Keyboard=false; bool gHasPS2Mouse=false; extern bool*pbSyserDisabled; bool bKeytoSoftice = false; DWORD gHardInt1Vector=0xffffffff; DWORD gHardIntCVector=0xffffffff; DWORD gHardInt8Vector=0xffffffff; ULONG gSystemTimerFrequency = 0; ULONGLONG gSystemTickCount = 0; DWORD dwMouseErrorWait = 0; DWORD dwWaitMouseCounter = 0; DWORD dwTmpVar2 = 0; UINT nKeyBufferLength = KEYBUFFERMAXLENGTH; DWORD dwInterruptF8Address = 0; DWORD dwInterruptFaAddress = 0; DWORD dwInterruptF9Address = 0; DWORD dwBakFlags = 0; DWORD dwSofticeDriverBase = 0; LONGLONG TscPerSec = 0; bool gbChangeDrmState = FALSE; bool bKeyLedCmd = FALSE; bool bKeyNumLockStat = FALSE; bool bKeyCapsLockStat = FALSE; bool bKeyScrollLockStat = FALSE; bool bKeyScrollLockStatInitOK = FALSE; bool bKeyNumLockStatInitOK = FALSE; bool bKeyCapsLockStatInitOK = FALSE; BYTE byteOrgWRITE_PORT_UCHARInstruction[5]; bool bREAD_PORT_UCHAR_PatchOK = FALSE; BYTE byteOrgREAD_PORT_UCHARInstruction[5]; bool bWRITE_PORT_UCHAR_PatchOK = FALSE; void (*pSofticeActivePointer)(void) = NULL; bool bActiveSoftice = FALSE; DWORD dwTimeCounter = 0; DWORD dwMyCounter1 = 0; //ж϶ʱжϲĴùܼʱжϰĿʼƫ 0з Windows ʱ //жϰƫ 1 ҪȴжϵIJУǵȴжϵIJ 3У //ڷص Windows ʱŲҵ DWORD dwMyOperationMouseCounter = 0; //ڱʱжϵĸdwMouseInterruptCounter - dwMyOperationMouseCounter IJDZ򱻼غ Windows жϵĸ DWORD dwActivateCounter = 0; //غ󱻼Ĵ DWORD dwMouseUnAlignCounter = 0; //ȼʱ ûжĵĴ DWORD dwMouseAlignCounter = 0; //ȼʱ ĵĴ dwMouseUnAlignCounter + dwMouseAlignCounter == dwActivateCounter DWORD dwMouseUnAlignMofifyCounter = 0; //ȼʱ ûжĵĴڷ Windows ʱȷĴ DWORD dwMouseUnAlignErrorCounter = 0; //ȼʱ ûжĵĴڷ Windows ʱȻûбĴ dwMouseAlignMofifyCounter + dwMouseAlignErrorCounter + dwMouseUnalignNotModifyCounter== dwMouseUnAlignCounter DWORD dwMouseInterruptCounter = 0; //жϵܴ򱻰װʱʼ㣬 Windows жϣͱжϵܺͣ DWORD dwWindowsMouseCounter = 0; //Windows жϵĴdwWindowsMouseCounter + dwMyOperationMouseCounter == dwMouseInterruptCounter DWORD dwMouseUnalignNotModifyCounter = 0; //ȼʱ ûжĵĴڷ Windows ʱñ DWORD dwWaitMouseInterrupt = FALSE; DWORD dwKeyLedFlags = 0; DWORD dwPhysical_0_LinesAddress=0xffffffff; //ַ 0 ӳεַ DWORD OwnerPageDirItemAddress = 0; DWORD OwnerPageTabItemAddress = 0; DWORD dwOldInterruptFA = 0; DWORD dwOldInterruptF8 = 0; DWORD dwOldInterruptF9 = 0; bool bInt1HereStat = 0; bool bInt3HereStat = 0; KeyInterruptVariable stKeyGlobalVariable = { FALSE, //bool IsActive = FALSE; //0 ûнģʽ //1 ˲ģʽ FALSE, //bool IsInsideActive = FALSE; //Ƽжϵѭ FUNCKEYRELEASE, //DWORD dwFuncKeyState = FUNCKEYRELEASE; //ܼ״̬0ܼûб£1ܼ 0, 0, NULL, 0, NULL, //̵ָ NULL, //ָ 0x10, 0, 0x1d, 0x58, 0, 0, 0, 0, 0x38,//chAltKeyScanCode 0,//chCurrentScanCode 0,//dwIOAPICLineAddress 0,//dwIOAPICPhysAddress 0,//dwLocalAPICPhysAddress 0,//dwLocalAPICLineAddress FALSE,//bIsUseAPIC 0,//DWORD dwOldMouseInterrupt 0,// bMouseResponseState 0,//dwMouseDataIndexжһݰеĵڼݡݰпܰĸݻݡ 0, 0,//dwLocalAPICTaskPriority 0,//chPrveScanCode }; BYTE chWindowsKeyArray[0x10]; //ûģ READ_PORT_UCHAR õģ //ûеҪi8042prt.sys ˿60ʱģ 60˿ bool bRightCtrlKey = FALSE; DWORD dwCurrentReadIndex = 0; DWORD dwCurrentWriteIndex = 0; DWORD dwCurrentWindowsKeyLen = 0; #define MAX_WINDOWSKEYBUFFER_LENGTH 0x10 DWORD dwEflag; DWORD dwInSofticeDebug = 0; //Ƿ Softice ʽ BYTE *SoftIceActive = NULL; //ñҪжǷ ҵļжǷ Softice ԡ INT nTempVar = 0; //ʱʱᱻɾ DWORD dwRPUC = 0; DWORD dwRPUCLookup = 0; DWORD dwWPUC = 0; DWORD dwWPUCLookup = 0; bool gbActiveMethod = FALSE; //ʽǼ̼ /* BYTE ShiftKeyTable[]= { 0xff,0x1b,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x2d,0x3d,0x08,0x09, 0x71,0x77,0x65,0x72,0x74,0x79,0x75,0x69,0x6f,0x70,0x5b,0x5d,0x0d,0xff,0x41,0x73, 0x44,0x46,0x47,0x48,0x4a,0x4b,0x4c,0x3b,0x27,0x60,0xff,0x5c,0x7a,0x78,0x43,0x76, 0x42,0x6e,0x6d,0x2c,0x2e,0x2f,0xff,0x2a,0xff,0x20,0xff,0x97,0x98,0x99,0x9a,0x9b, 0x9c,0x9d,0x9e,0x9f,0xa0,0xff,0xff,0x87,0x83,0x85,0x2d,0x81,0x35,0x82,0x2b,0x88, 0x84,0x86,0x89,0x8a,0xff,0xff,0xff,0xa1,0xa2, }; BYTE ShiftKeyTable1[]= { 0x00,0x1b,0x21,0x40,0x23,0x24,0x25,0x5e,0x26,0x2a,0x28,0x29,0x5f,0x2b,0x08,0x8f, 0x51,0x57,0x45,0x52,0x54,0x59,0x55,0x49,0x4f,0x50,0x7b,0x7d,0x0d,0x00,0x41,0x53, 0x44,0x46,0x47,0x48,0x4a,0x4b,0x4c,0x3a,0x22,0x7e,0x00,0x7c,0x5a,0x58,0x43,0x56, 0x42,0x4e,0x4d,0x3c,0x3e,0x3f,0x00,0x2a,0x00,0x20,0x00,0xa3,0xa4,0xa5,0xa6,0xa7, 0xa8,0xa9,0xaa,0xab,0xac,0x00,0x00,0x87,0xe2,0x85,0x2d,0xe0,0x35,0xe1,0x2b,0x88, 0xe3,0x86,0x89,0x8a,0x00,0x00,0x00,0xad,0xae, }; BYTE NormalTable1[]= { 0x00,0x1b,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x30,0x2d,0x3d,0x08,0x09, 0x71,0x77,0x65,0x72,0x74,0x79,0x75,0x69,0x6f,0x70,0x5b,0x5d,0x0d,0x00,0x61,0x73, 0x64,0x66,0x67,0x68,0x6a,0x6b,0x6c,0x3b,0x27,0x60,0x00,0x5c,0x7a,0x78,0x63,0x76, 0x62,0x6e,0x6d,0x2c,0x2e,0x2f,0x00,0x2a,0x00,0x20,0x00,0x97,0x98,0x99,0x9a,0x9b, 0x9c,0x9d,0x9e,0x9f,0xa0,0x00,0x00,0x87,0x83,0x85,0x2d,0x81,0x35,0x82,0x2b,0x88, 0x84,0x86,0x89,0x8a,0x00,0x00,0x00,0xa1,0xa2, }; */ BYTE ExternTable[]= { 0xff, //scancode 00 0x00 յûжӦļ 0xff, //scancode 01 0x01 'Esc' 0xff, //scancode 02 0x02 '1' 0xff, //scancode 03 0x03 '2' 0xff, //scancode 04 0x04 '3' 0xff, //scancode 05 0x05 '4' 0xff, //scancode 06 0x06 '5' 0xff, //scancode 07 0x07 '6' 0xff, //scancode 08 0x08 '7' 0xff, //scancode 09 0x09 '8' 0xff, //scancode 10 0x0a '9' 0xff, //scancode 11 0x0b '0' 0xff, //scancode 12 0x0c '-_' 0xff, //scancode 13 0x0d '=+' 0xff, //scancode 14 0x0e 'Back Space' 0xff, //scancode 15 0x0f 'Tab' 0xff, //scancode 16 0x10 'Q' 0xff, //scancode 17 0x11 'W' 0xff, //scancode 18 0x12 'E' 0xff, //scancode 19 0x13 'R' 0xff, //scancode 20 0x14 'T' 0xff, //scancode 21 0x15 'Y' 0xff, //scancode 22 0x16 'U' 0xff, //scancode 23 0x17 'I' 0xff, //scancode 24 0x18 'O' 0xff, //scancode 25 0x19 'P' 0xff, //scancode 26 0x1a '[{' 0xff, //scancode 27 0x1b 'P' WISP_VK_RETURN, //scancode 28 0x1c '}]' WISP_VK_RCONTROL, //scancode 29 0x1d 'Left Ctrl' 0xff, //scancode 30 0x1E 'A' 0xff, //scancode 31 0x1F 'S' 0xff, //scancode 32 0x20 'D' 0xff, //scancode 33 0x21 'F' 0xff, //scancode 34 0x22 'G' 0xff, //scancode 35 0x23 'H' 0xff, //scancode 36 0x24 'J' 0xff, //scancode 37 0x25 'K' 0xff, //scancode 38 0x26 'L' 0xff, //scancode 39 0x27 ';:' 0xff, //scancode 40 0x28 ''"' 0xff, //scancode 41 0x29 '' 0xff, //scancode 42 0x2a 'Left Shift' 0xff, //scancode 43 0x2b '\|' 0xff, //scancode 44 0x2c 'Z' 0xff, //scancode 45 0x2d 'X' 0xff, //scancode 46 0x2E 'C' 0xff, //scancode 47 0x2F 'V' 0xff, //scancode 48 0x30 'B' 0xff, //scancode 49 0x31 'N' 0xff, //scancode 50 0x32 'M' 0xff, //scancode 51 0x33 ',<' 0xff, //scancode 52 0x34 ',>' WISP_VK_OEM_2, //scancode 53 0x35 '/?' 0xff, //scancode 54 0x36 'Right Shift' WISP_VK_PRINT, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA WISP_VK_RALT, //scancode 56 0x38 'Left Alt' 0xff, //scancode 57 0x39 'Blank Space' 0xff, //scancode 58 0x3a 'Caps Lock' 0xff, //scancode 59 0x3b 'F1' 0xff, //scancode 60 0x3c 'F2' 0xff, //scancode 61 0x3d 'F3' 0xff, //scancode 62 0x3e 'F4' 0xff, //scancode 63 0x3f 'F5' 0xff, //scancode 64 0x40 'F6' 0xff, //scancode 65 0x41 'F7' 0xff, //scancode 66 0x42 'F8' 0xff, //scancode 67 0x43 'F9' 0xff, //scancode 68 0x44 'F10' 0xff, //scancode 69 0x45 'Num Lock' 0xff, //scancode 70 0x46 'Scroll Lock' WISP_VK_HOME, //scancode 71 0x47 'Home' WISP_VK_UP, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_PAGE_UP, //scancode 73 0x49 'Page Up'С 0xff, //scancode 74 0x4a '-'С WISP_VK_LEFT, //scancode 75 0x4b 'Left Arrow Key'С . 0xff, //scancode 76 0x4c '5' С WISP_VK_RIGHT, //scancode 77 0x4d 'Right Arrow Key' С 0xff, //scancode 78 0x4e '+' WISP_VK_END, //scancode 79 0x4f 'End' С WISP_VK_DOWN, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_PAGE_DOWN, //scancode 81 0x51 'Page Dn'С WISP_VK_INSERT, //scancode 82 0x52 'Ins'С WISP_VK_DELETE, //scancode 83 0x53 'Del'С 0xff, //scancode 84 0x54 0xff, //scancode 85 0x55 0xff, //scancode 86 0x56 0xff, //scancode 87 0x57 'F11' 0xff, //scancode 88 0x58 'F12' 0xff, //scancode 89 0x59 '' 0xff, //scancode 90 0x5a '' WISP_VK_LWIN, //scancode 91 0x5b 'Left Windows' WISP_VK_RWIN, //scancode 92 0x5c 'Right Windows' WISP_VK_APPS, //scancode 93 0x5d 'Apps' WISP_VK_0X5E, //scancode 94 0x5e 'Power' WISP_VK_SLEEP, //scancode 95 0x5f 'Sleep' 0xff, //scancode 96 0x60 0xff, //scancode 97 0x61 0xff, //scancode 98 0x62 0xff, //scancode 99 0x63 'Wake Up' }; //E0 2A E0 37 'Print Screen' //E0 B7 E0 AA 'Print Screen' ̧ //E1 1D 45 E1 9D C5'Pause Break' ̧ʱûɨ BYTE NormalTable[2][0x80]= { { 0xff, //scancode 00 0x00 յûжӦļ WISP_VK_ESCAPE, //scancode 01 0x01 'Esc' WISP_VK_1, //scancode 02 0x02 '1' WISP_VK_2, //scancode 03 0x03 '2' WISP_VK_3, //scancode 04 0x04 '3' WISP_VK_4, //scancode 05 0x05 '4' WISP_VK_5, //scancode 06 0x06 '5' WISP_VK_6, //scancode 07 0x07 '6' WISP_VK_7, //scancode 08 0x08 '7' WISP_VK_8, //scancode 09 0x09 '8' WISP_VK_9, //scancode 10 0x0a '9' WISP_VK_0, //scancode 11 0x0b '0' WISP_VK_OEM_MINUS, //scancode 12 0x0c '-_' WISP_VK_OEM_PLUS, //scancode 13 0x0d '=+' WISP_VK_BACK, //scancode 14 0x0e 'Back Space' WISP_VK_TAB, //scancode 15 0x0f 'Tab' WISP_VK_Q, //scancode 16 0x10 'Q' WISP_VK_W, //scancode 17 0x11 'W' WISP_VK_E, //scancode 18 0x12 'E' WISP_VK_R, //scancode 19 0x13 'R' WISP_VK_T, //scancode 20 0x14 'T' WISP_VK_Y, //scancode 21 0x15 'Y' WISP_VK_U, //scancode 22 0x16 'U' WISP_VK_I, //scancode 23 0x17 'I' WISP_VK_O, //scancode 24 0x18 'O' WISP_VK_P, //scancode 25 0x19 'P' WISP_VK_LSQUARE_BRACKET, //scancode 26 0x1a '[{' WISP_VK_RSQUARE_BRACKET, //scancode 27 0x1b 'P' WISP_VK_RETURN, //scancode 28 0x1c 'Enter' WISP_VK_CONTROL, //scancode 29 0x1d 'Left Ctrl' WISP_VK_A, //scancode 30 0x1E 'A' WISP_VK_S, //scancode 31 0x1F 'S' WISP_VK_D, //scancode 32 0x20 'D' WISP_VK_F, //scancode 33 0x21 'F' WISP_VK_G, //scancode 34 0x22 'G' WISP_VK_H, //scancode 35 0x23 'H' WISP_VK_J, //scancode 36 0x24 'J' WISP_VK_K, //scancode 37 0x25 'K' WISP_VK_L, //scancode 38 0x26 'L' WISP_VK_SEMI, //scancode 39 0x27 ';:' WISP_VK_QUOT, //scancode 40 0x28 ''"' 0xff, //scancode 41 0x29 '' WISP_VK_SHIFT, //scancode 42 0x2a 'Left Shift' WISP_VK_OEM_5, //scancode 43 0x2b '\|' WISP_VK_Z, //scancode 44 0x2c 'Z' WISP_VK_X, //scancode 45 0x2d 'X' WISP_VK_C, //scancode 46 0x2E 'C' WISP_VK_V, //scancode 47 0x2F 'V' WISP_VK_B, //scancode 48 0x30 'B' WISP_VK_N, //scancode 49 0x31 'N' WISP_VK_M, //scancode 50 0x32 'M' WISP_VK_OEM_COMMA, //scancode 51 0x33 ',<' WISP_VK_OEM_PERIOD, //scancode 52 0x34 ',>' WISP_VK_OEM_2, //scancode 53 0x35 '/?' WISP_VK_SHIFT, //scancode 54 0x36 'Right Shift' WISP_VK_MULTIPLY, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA WISP_VK_ALT, //scancode 56 0x38 'Left Alt' WISP_VK_SPACE, //scancode 57 0x39 'Blank Space' WISP_VK_CAPITAL, //scancode 58 0x3a 'Caps Lock' WISP_VK_F1, //scancode 59 0x3b 'F1' WISP_VK_F2, //scancode 60 0x3c 'F2' WISP_VK_F3, //scancode 61 0x3d 'F3' WISP_VK_F4, //scancode 62 0x3e 'F4' WISP_VK_F5, //scancode 63 0x3f 'F5' WISP_VK_F6, //scancode 64 0x40 'F6' WISP_VK_F7, //scancode 65 0x41 'F7' WISP_VK_F8, //scancode 66 0x42 'F8' WISP_VK_F9, //scancode 67 0x43 'F9' WISP_VK_F10, //scancode 68 0x44 'F10' WISP_VK_NUMLOCK, //scancode 69 0x45 'Num Lock' Pause Break 0xE1 0x1D 0x45 0xE1 0x9D 0xC5 WISP_VK_SCROLL, //scancode 70 0x46 'Scroll Lock' WISP_VK_NUMPAD7, //scancode 71 0x47 'Home' WISP_VK_NUMPAD8, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_NUMPAD9, //scancode 73 0x49 'Page Up'С WISP_VK_SUBTRACT, //scancode 74 0x4a '-'С WISP_VK_NUMPAD4, //scancode 75 0x4b 'Left Arrow Key'С . WISP_VK_NUMPAD5, //scancode 76 0x4c '5' С WISP_VK_NUMPAD6, //scancode 77 0x4d 'Right Arrow Key' С WISP_VK_ADD, //scancode 78 0x4e '+' WISP_VK_NUMPAD1, //scancode 79 0x4f 'End' С WISP_VK_NUMPAD2, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_NUMPAD3, //scancode 81 0x51 'Page Dn'С WISP_VK_NUMPAD0, //scancode 82 0x52 'Ins'С WISP_VK_DECIMAL, //scancode 83 0x53 'Del'С 0xff, //scancode 84 0x54 0xff, //scancode 85 0x55 0xff, //scancode 86 0x56 WISP_VK_F11, //scancode 87 0x57 'F11' WISP_VK_F12, //scancode 88 0x58 'F12' 0xff, //scancode 89 0x59 '' 0xff, //scancode 90 0x5a '' 0xff, //scancode 91 0x5b 'Left Windows' 0xff, //scancode 92 0x5c 'Right Windows' 0xff, //scancode 93 0x5d 'Window Apps' 0xff, //scancode 94 0x5e 'Power' 0xff, //scancode 95 0x5f 'Sleep' 0xff, //scancode 96 0x60 WISP_VK_PAUSE, //scancode 97 0x61 0xff, //scancode 98 0x62 0xff, //scancode 99 0x63 'Wake Up' }, { 0xff, //scancode 00 0x00 յûжӦļ WISP_VK_ESCAPE, //scancode 01 0x01 'Esc' WISP_VK_1, //scancode 02 0x02 '1' WISP_VK_2, //scancode 03 0x03 '2' WISP_VK_3, //scancode 04 0x04 '3' WISP_VK_4, //scancode 05 0x05 '4' WISP_VK_5, //scancode 06 0x06 '5' WISP_VK_6, //scancode 07 0x07 '6' WISP_VK_7, //scancode 08 0x08 '7' WISP_VK_8, //scancode 09 0x09 '8' WISP_VK_9, //scancode 10 0x0a '9' WISP_VK_0, //scancode 11 0x0b '0' WISP_VK_OEM_MINUS, //scancode 12 0x0c '-_' WISP_VK_OEM_PLUS, //scancode 13 0x0d '=+' WISP_VK_BACK, //scancode 14 0x0e 'Back Space' WISP_VK_TAB, //scancode 15 0x0f 'Tab' WISP_VK_A, //scancode 16 0x10 'Q' WISP_VK_Z, //scancode 17 0x11 'W' WISP_VK_E, //scancode 18 0x12 'E' WISP_VK_R, //scancode 19 0x13 'R' WISP_VK_T, //scancode 20 0x14 'T' WISP_VK_Y, //scancode 21 0x15 'Y' WISP_VK_U, //scancode 22 0x16 'U' WISP_VK_I, //scancode 23 0x17 'I' WISP_VK_O, //scancode 24 0x18 'O' WISP_VK_P, //scancode 25 0x19 'P' WISP_VK_LSQUARE_BRACKET, //scancode 26 0x1a '[{' WISP_VK_RSQUARE_BRACKET, //scancode 27 0x1b 'P' WISP_VK_RETURN, //scancode 28 0x1c 'Enter' WISP_VK_CONTROL, //scancode 29 0x1d 'Left Ctrl' WISP_VK_Q, //scancode 30 0x1E 'A' WISP_VK_S, //scancode 31 0x1F 'S' WISP_VK_D, //scancode 32 0x20 'D' WISP_VK_F, //scancode 33 0x21 'F' WISP_VK_G, //scancode 34 0x22 'G' WISP_VK_H, //scancode 35 0x23 'H' WISP_VK_J, //scancode 36 0x24 'J' WISP_VK_K, //scancode 37 0x25 'K' WISP_VK_L, //scancode 38 0x26 'L' WISP_VK_M,//WISP_VK_SEMI, //scancode 39 0x27 ';:' WISP_VK_QUOT, //scancode 40 0x28 ''"' 0xff, //scancode 41 0x29 '' WISP_VK_SHIFT, //scancode 42 0x2a 'Left Shift' WISP_VK_OEM_5, //scancode 43 0x2b '\|' WISP_VK_W, //scancode 44 0x2c 'Z' WISP_VK_X, //scancode 45 0x2d 'X' WISP_VK_C, //scancode 46 0x2E 'C' WISP_VK_V, //scancode 47 0x2F 'V' WISP_VK_B, //scancode 48 0x30 'B' WISP_VK_N, //scancode 49 0x31 'N' WISP_VK_SEMI,//WISP_VK_M, //scancode 50 0x32 'M' WISP_VK_OEM_COMMA, //scancode 51 0x33 ',<' WISP_VK_OEM_PERIOD, //scancode 52 0x34 ',>' WISP_VK_OEM_2, //scancode 53 0x35 '/?' WISP_VK_SHIFT, //scancode 54 0x36 'Right Shift' WISP_VK_MULTIPLY, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA WISP_VK_ALT, //scancode 56 0x38 'Left Alt' WISP_VK_SPACE, //scancode 57 0x39 'Blank Space' WISP_VK_CAPITAL, //scancode 58 0x3a 'Caps Lock' WISP_VK_F1, //scancode 59 0x3b 'F1' WISP_VK_F2, //scancode 60 0x3c 'F2' WISP_VK_F3, //scancode 61 0x3d 'F3' WISP_VK_F4, //scancode 62 0x3e 'F4' WISP_VK_F5, //scancode 63 0x3f 'F5' WISP_VK_F6, //scancode 64 0x40 'F6' WISP_VK_F7, //scancode 65 0x41 'F7' WISP_VK_F8, //scancode 66 0x42 'F8' WISP_VK_F9, //scancode 67 0x43 'F9' WISP_VK_F10, //scancode 68 0x44 'F10' WISP_VK_NUMLOCK, //scancode 69 0x45 'Num Lock' Pause Break 0xE1 0x1D 0x45 0xE1 0x9D 0xC5 WISP_VK_SCROLL, //scancode 70 0x46 'Scroll Lock' WISP_VK_NUMPAD7, //scancode 71 0x47 'Home' WISP_VK_NUMPAD8, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_NUMPAD9, //scancode 73 0x49 'Page Up'С WISP_VK_SUBTRACT, //scancode 74 0x4a '-'С WISP_VK_NUMPAD4, //scancode 75 0x4b 'Left Arrow Key'С . WISP_VK_NUMPAD5, //scancode 76 0x4c '5' С WISP_VK_NUMPAD6, //scancode 77 0x4d 'Right Arrow Key' С WISP_VK_ADD, //scancode 78 0x4e '+' WISP_VK_NUMPAD1, //scancode 79 0x4f 'End' С WISP_VK_NUMPAD2, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_NUMPAD3, //scancode 81 0x51 'Page Dn'С WISP_VK_NUMPAD0, //scancode 82 0x52 'Ins'С WISP_VK_DECIMAL, //scancode 83 0x53 'Del'С 0xff, //scancode 84 0x54 0xff, //scancode 85 0x55 WISP_VK_OEM_102, //scancode 86 0x56 WISP_VK_F11, //scancode 87 0x57 'F11' WISP_VK_F12, //scancode 88 0x58 'F12' 0xff, //scancode 89 0x59 '' 0xff, //scancode 90 0x5a '' 0xff, //scancode 91 0x5b 'Left Windows' 0xff, //scancode 92 0x5c 'Right Windows' 0xff, //scancode 93 0x5d 'Window Apps' 0xff, //scancode 94 0x5e 'Power' 0xff, //scancode 95 0x5f 'Sleep' 0xff, //scancode 96 0x60 WISP_VK_PAUSE, //scancode 97 0x61 0xff, //scancode 98 0x62 0xff, //scancode 99 0x63 'Wake Up' }, }; #ifdef __cplusplus }; // extern "C" #endif DWORD GetScanCode(DWORD WispVKCode) { DWORD ScanCode=0; for(int i=0;im_DebugKeyboardInterrupt) { gpSyser->DbgPrint(0,0,WSTR("Keyboard P60=%02x P64=%02x"),stKeyGlobalVariable.chCurrentScanCode,byteCurrentPort64Value); if(stKeyGlobalVariable.chCurrentScanCode==0xe0) gpSyser->DbgPrint(0,16,WSTR("0xe0 Keyboard P60=%02x P64=%02x"),stKeyGlobalVariable.chCurrentScanCode,byteCurrentPort64Value); //else // gpSyser->DbgPrint(0,16,WSTR(" "),stKeyGlobalVariable.chCurrentScanCode,byteCurrentPort64Value); } if(KeyboardHandler()==false || gpSyser->m_bInitSuccess==false || gbLoadImage) { stKeyGlobalVariable.chPrveScanCode = stKeyGlobalVariable.chCurrentScanCode; InsertKeyboardBuffer(stKeyGlobalVariable.chCurrentScanCode); __asm { pop edx pop ecx pop eax pop ds ret } } //DisableDebugRegisterMontior(); __asm { pop edx pop ecx pop eax pop ds pop ss:stKeyGlobalVariable.dwOldKeyboardInterrupt call SyserStopOtherCPUs call SyserDisableDebugRegisterMontior mov ss:OldESP,esp mov ss:Reg.GeneReg[ESP_IDX*4],esp mov esp,ss:gpStackBufferTop pushad push fs push ds push es mov ax,NT_FS mov fs,ax mov ax,ss mov ds,ax mov es,ax mov ebp,esp cld } //////////////////////// //pbSyserDisabledӳActive Syser,ԴлʱActiveᵼʾ if(pbSyserDisabled==NULL || *pbSyserDisabled==false) { SyserLoadReg(); gpSyser->AttachPopupProcess(Reg.CR[3]); gpSyser->m_bSaveReg=false; gpSyser->Active(); SyserSaveReg(); } else if(pbSyserDisabled && *pbSyserDisabled) { *pbSyserDisabled=false;//˱־ȴSysBootʾصActive SyserEnableDebugRegisterMontior(); } else { SyserEnableDebugRegisterMontior(); } if(bRightCtrlKey) SyserSimulateWindowsKeyboardInput(0xe0); SyserSimulateWindowsKeyboardInput(stKeyGlobalVariable.chFuncKeyScanCode | 0x80); //////////////////////// __asm { pop es pop ds pop fs popad mov esp,ss:OldESP call SyserSyncMouseInterrupt xchg eax,[esp+8] test eax,0x100 jnz local_00099 call SyserEnableAllHardInterrupt call SyserStartOtherCPUs jmp local_101 local_00099: call SyserDisableAllHardInterrupt local_101: xchg eax,[esp+8] cmp cs:gGenInterruptNumber,0xffffffff jnz local_00100 cmp cs:bGoToSoftice,0 jz tmpgosoftice mov ss:bGoToSoftice,0 call pSofticeActivePointer tmpgosoftice: iretd local_00100: mov ss:gGenInterruptNumber,0xffffffff; jmp cs:[gGenInterruptOffset] } __asm { SyserActived: lea esp,[esp+4] pushad push ds mov ax,ss mov ds,ax in al,0x64 mov byteCurrentPort64Value,al in al,0x60 mov stKeyGlobalVariable.chCurrentScanCode,al } if(gpSyserCfg->m_DebugKeyboardInterrupt) { gpSyser->DbgPrint(400,40,WSTR("Keyboard P60=%02x P64=%02x"),stKeyGlobalVariable.chCurrentScanCode,byteCurrentPort64Value); if(stKeyGlobalVariable.chCurrentScanCode==0x60||stKeyGlobalVariable.chCurrentScanCode==0xe0) gpSyser->DbgPrint(400,60,WSTR("Keyboard P60=%02x P64=%02x"),stKeyGlobalVariable.chCurrentScanCode,byteCurrentPort64Value); } if(stKeyGlobalVariable.chCurrentScanCode & 0x80)//Ǽ̧ { if((stKeyGlobalVariable.chCurrentScanCode & 0x7f)== stKeyGlobalVariable.chFuncKeyScanCode) stKeyGlobalVariable.dwFuncKeyState = FUNCKEYRELEASE; if((stKeyGlobalVariable.chCurrentScanCode & 0x7f) < 0x60) { if(stKeyGlobalVariable.chPrveScanCode==0xe0) { gpSyser->OnKeyEvent(ExternTable[(stKeyGlobalVariable.chCurrentScanCode & 0x7F)],false); } else { if(stKeyGlobalVariable.chPrveScanCode==0xe1) { if(stKeyGlobalVariable.chCurrentScanCode==0x9d) stKeyGlobalVariable.chPrveScanCode=0xe1; else if(stKeyGlobalVariable.chCurrentScanCode==0xc5) gpSyser->OnKeyEvent(WISP_VK_PAUSE,false); } else gpSyser->OnKeyEvent(NormalTable[SyserOption.iKeyboardLayer][(stKeyGlobalVariable.chCurrentScanCode & 0x7F)],false); } } } else { if(stKeyGlobalVariable.chCurrentScanCode < 0x60) { if(stKeyGlobalVariable.chCurrentScanCode == stKeyGlobalVariable.chFuncKeyScanCode) { stKeyGlobalVariable.dwFuncKeyState = FUNCKEYPRESS; } if(stKeyGlobalVariable.chPrveScanCode==0xe0) { gpSyser->OnKeyEvent(ExternTable[(stKeyGlobalVariable.chCurrentScanCode)],true); } else { if(stKeyGlobalVariable.chPrveScanCode==0xe1) { if(stKeyGlobalVariable.chCurrentScanCode==0x1d) stKeyGlobalVariable.chPrveScanCode=0xe1; else if(stKeyGlobalVariable.chCurrentScanCode==0x45) gpSyser->OnKeyEvent(WISP_VK_PAUSE,true); } else gpSyser->OnKeyEvent(NormalTable[SyserOption.iKeyboardLayer][(stKeyGlobalVariable.chCurrentScanCode)],true); } } } //if(!(SoftIceActive && *SoftIceActive))// softice ûдҪԼͼӲжϽ־ SetInteruptEOI(1); stKeyGlobalVariable.chPrveScanCode=stKeyGlobalVariable.chCurrentScanCode; __asm { pop ds popad iretd } } // __declspec (naked) void SaveDSRegister() // { // __asm{ // push eax // push ebx // mov bx, ds // mov eax,0x10 // mov ds,ax // mov stKeyGlobalVariable.wDSRegister,bx // pop ebx // pop eax // ret // } // } BYTE gMouseID=0; void InitPS2MouseDevice() { BYTE Value; bool ReadMouseRet; if(gInVMWARE||gInVirtualPC) { dwMousePrePackageSize=4; gHasPS2Mouse=true; gpSyserCfg->m_CheckPS2Mouse=1; gpSyserCfg->m_PS2MouseType=4; } if(gpSyserCfg->m_CheckPS2Mouse==0) { //if(gHasPS2Keyboard==false) // gHasPS2Keyboard=CheckPS2Keyboard(); dwMousePrePackageSize=3; gHasPS2Mouse=true; if(gHasPS2Mouse==false) { dwMousePrePackageSize=0; if(SendMouseCommand(0xf2)) { while(ReadMouseRet = SyserReadPort60(&Value,false)) { if(Value==0xfa) continue; if(Value==0xfe) break; if(Value>=3) { dwMousePrePackageSize=4; gHasPS2Mouse=true; } if(Value==0) { dwMousePrePackageSize=3; gHasPS2Mouse=true; } break; } if(ReadMouseRet==false) { DbgPrint("Syser: ReadPort60 (%x) error!\n",Value); } /* SendMouseCommand(0xe5); TestTouchPad(); SendMouseCommand(0xe4); */ } else { DbgPrint("Syser: Send Mouse Command (0xF2) error!\n"); } } gpSyserCfg->WriteDwordValue(CHECK_PS2_MOUSE,1); gpSyserCfg->WriteDwordValue(PS2MOUSE_TYPE,dwMousePrePackageSize); gpSyserCfg->WriteDwordValue(NULL_PS2_KEYBOARD,gHasPS2Keyboard?0:1); } else { gHasPS2Mouse=true; switch(gpSyserCfg->m_PS2MouseType) { case 3: dwMousePrePackageSize=3; break; case 4: dwMousePrePackageSize=4; break; case 6: dwMousePrePackageSize=6; break; default: gHasPS2Mouse=false; break; } gHasPS2Keyboard=gpSyserCfg->m_PS2NULLKeyboard?false:true; } //if(gHasPS2Mouse) // DbgPrint("Syser : %s PS2 Mouse %d Button\n",gHasPS2Mouse?"Find":"Can't Find",dwMousePrePackageSize); //DbgPrint("Syser : %s PS2 Keyboard\n",gHasPS2Keyboard?"Find":"Can't Find"); } bool InstallAllInterrupt() { DWORD dwInterruptNumber = 0; WORD CurCS; //bool ReadMouseRet; //SaveDSRegister();//Ķý쳣 fuck M$ //ҳĿ¼ҳռһ poke peek ʹá gPrevTSC=SyserGetTSC(); gTSCTickCount = InitSTCTickCount(); InitPS2MouseDevice();// SyserClrCR0WP(); SyserCloseInterrupt(); gpSyser->ResetInputState(); // __asm // { // push eax // mov al,0xc0 // out 0x20,al // pop eax // } SyserWritePortByte(0x20,0xc0); if(gpSyserCfg->m_DisableRWPortHook==0) { PatchSystemREAD_PORT_UCHAR(TRUE); PatchSystemWRITE_PORT_UCHAR(TRUE); } GetIOAPICBase(); if(gbIsUseAPIC) ::DbgPrint("Syser : IOAPIC %08x[%08x] LocalAPIC %08x[%08x]\n",gdwIOAPICPhysAddress,gdwIOAPICLineAddress,gdwLocalAPICPhysAddress,gdwLocalAPICLineAddress); TscPerSec=0; TscPerSec=CalibrateByTimer(); bIsExecuteTimerInterrupt = false; TimeSecond=0xff; TimeHour=0; TimeMinute=0; //װж gHardInt1Vector = GetHardwareInterruptVectorNum(1); if(gbIsUseAPIC==false||gHardInt1Vector!=0xff) InstallInterruptHandle((BYTE)gHardInt1Vector,(VADDR32)KeyboardInterruptService); #if SUPPORT_COM_INTERRUPT gHardInt4Vector = GetHardwareInterruptVectorNum(4); if(gbIsUseAPIC==false||gHardInt4Vector!=0xff) InstallInterruptHandle((BYTE)gHardInt4Vector,(VADDR32)SerialCom1Com3Proc); gHardInt3Vector = GetHardwareInterruptVectorNum(3); if(gbIsUseAPIC==false||gHardInt3Vector!=0xff) InstallInterruptHandle((BYTE)gHardInt3Vector,(VADDR32)SerialCom2Com4Proc); #endif // __asm // { // push eax // xor eax,eax // mov ax,cs // mov CurCS,ax // pop eax // } CurCS = SyserGetCurCSeg(); InstallInterruptHandle(0x1,(VADDR32)SyserInt01Proc,SYS_SEG_GATE_DECR_TYPE_32INT_GATE,3); InstallInterruptHandle(0x3,(VADDR32)SyserInt03Proc,SYS_SEG_GATE_DECR_TYPE_32INT_GATE,3); if(gCPUNumbers>1) InstallInterruptHandle(0x2,(VADDR32)SyserNMIInterruptService,SYS_SEG_GATE_DECR_TYPE_32INT_GATE,3,CurCS); if(gpSyserCfg->m_DisableHookException==0) { InstallInterruptHandle(0x6,(VADDR32)SyserInt06Proc); InstallInterruptHandle(0xb,(VADDR32)SyserInt0bProc); InstallInterruptHandle(0xc,(VADDR32)SyserInt0cProc); InstallInterruptHandle(0xd,(VADDR32)SyserInt0dProc); } if(gInt0xeHook==false) { gInt0xeHook = InstallInterruptHandle(0xe,(VADDR32)SyserInt0eProc); gSyserInt0eAddress = GetCurrentCPUInterruptProcAddress(0xe); } InstallInterruptHandle(0x2d,(VADDR32)SyserInt2dProc); if(bWRITE_PORT_UCHAR_PatchOK) { /* GetCurrentWindowLEDState(KEYBOARD_SCROLL_LOCK); GetCurrentWindowLEDState(KEYBOARD_SCROLL_LOCK); GetCurrentWindowLEDState(KEYBOARD_NUM_LOCK); GetCurrentWindowLEDState(KEYBOARD_NUM_LOCK); GetCurrentWindowLEDState(KEYBOARD_CAPS_LOCK); GetCurrentWindowLEDState(KEYBOARD_CAPS_LOCK); */ } if(gbIsUseAPIC==false) { //װʱж //gdwTimerInterruptNum = GetHardwareInterruptVectorNum(8); //InstallInterruptHandle((BYTE)gdwTimerInterruptNum,(VADDR32)TimeInterrupeService); //װж if(gHasPS2Mouse) { gPS2MouseInterruptNum = GetHardwareInterruptVectorNum(0xC); InstallInterruptHandle((BYTE)gPS2MouseInterruptNum,(VADDR32)MouseInterruptService); // __asm // { // push eax // in al,0x64 // test al,1 // jz local_009 // in al,0x60 // local_009: // pop eax // } SyserWaitMouseStatus(); } } else { //װ APIC ʱж //InstallInterruptHandle(SYSER_APIC_TIME_INTERRUPT_VECTOR,(VADDR32)Interrupt_0xFA_Timer_Service); //װ APIC ļж InstallInterruptHandle(SYSER_APIC_KEYBOARD_INTERRUPT_VECTOR,(VADDR32)SyserInterrupt_0xF8_Keyboard_Service); //װ APIC ж if(gHasPS2Mouse) InstallInterruptHandle(SYSER_APIC_MOUSE_INTERRUPT_VECTOR,(VADDR32)SyserInterrupt_0xF9_Mouse_Service); #if SUPPORT_COM_INTERRUPT InstallInterruptHandle(SYSER_APIC_COM1_INTERRUPT_VECTOR,(VADDR32)Interrupt_0xFB_Com1_Com3_Service); InstallInterruptHandle(SYSER_APIC_COM2_INTERRUPT_VECTOR,(VADDR32)Interrupt_0xFC_Com2_Com4_Service); #endif } InitBranchMointer(); SyserOpenInterrupt(); gbInterruptInstalled = true; SyserRestoreCR0(); return true; } bool UninstallAllInterrupt() { SyserClrCR0WP(); SyserCloseInterrupt(); UninstallInterruptHandle((BYTE)gHardInt1Vector); #if SUPPORT_COM_INTERRUPT UninstallInterruptHandle((BYTE)gHardInt3Vector); UninstallInterruptHandle((BYTE)gHardInt4Vector); #endif if(gHasPS2Mouse) { if(gbIsUseAPIC) UninstallInterruptHandle(SYSER_APIC_MOUSE_INTERRUPT_VECTOR); else { UninstallInterruptHandle((BYTE)gPS2MouseInterruptNum); // __asm // { // push eax // in al,0x64 // test al,1 // jz local_009 // in al,0x60 // local_009: // pop eax // } SyserWaitMouseStatus(); } } if(gbIsUseAPIC==false) { //UninstallInterruptHandle((BYTE)gdwTimerInterruptNum); } else { //UninstallInterruptHandle(SYSER_APIC_TIME_INTERRUPT_VECTOR); UninstallInterruptHandle(SYSER_APIC_KEYBOARD_INTERRUPT_VECTOR); #if SUPPORT_COM_INTERRUPT UninstallInterruptHandle(SYSER_APIC_COM1_INTERRUPT_VECTOR); UninstallInterruptHandle(SYSER_APIC_COM2_INTERRUPT_VECTOR); #endif } UninstallInterruptHandle(1); UninstallInterruptHandle(3); if(gCPUNumbers>1) UninstallInterruptHandle(0x2); if(gpSyserCfg->m_DisableHookException==0) { UninstallInterruptHandle(0x6); UninstallInterruptHandle(0xb); UninstallInterruptHandle(0xc); UninstallInterruptHandle(0xd); } if(gInt0xeHook==true) { if(UninstallInterruptHandle(0xe)) { gInt0xeHook=false; gSyserInt0eAddress=0; } } UninstallInterruptHandle(0x2d); if(gpSyserCfg->m_DisableRWPortHook==0) { PatchSystemWRITE_PORT_UCHAR(FALSE); PatchSystemREAD_PORT_UCHAR(FALSE); } SyserOpenInterrupt(); gbInterruptInstalled = false; SyserRestoreCR0(); return TRUE; } // void WaitMouseInputBufferEmpte() // { // __asm // { // push eax // push ecx // mov ecx,2 // local_2: // push ecx // xor ecx,ecx // local_1: // in al, 0x64 // test al,2 // loopne local_1 // pop ecx // jz local_3 // loop local_2 // local_3: // pop ecx // pop eax // } // } // void WaitMouseOutPutBufferFull() // { // __asm{ // push ecx // push eax // mov ecx,0x2000 // local_1: // in al,0x64 // and al,0x21 // cmp al,0x21 // loopne local_1 // pop eax // pop ecx // } // } // void CleanMouseOutPutBuffer() // { // __asm{ // push eax // push ecx // mov ecx,0x1000 // in al, 0x64 // test al, 0x21 // jz local_1 // in al,0x60 // local_2: // loop local_2 // local_1: // pop ecx // pop eax // } // } void WriteMouseCommandPrefix(BYTE chCmd) { ULONG_PTR Flags; SyserSaveFlags(&Flags); SyserCloseInterrupt(); SyserWaitMouseInputBufferEmpte(); SendCommandTo64Port(chCmd); SyserRestoreFlags(Flags); } // bool MouseCommand(BYTE chCmd) // { // __asm // { // pushad // pushfd // cli // } // stKeyGlobalVariable.bMouseResponseState = FALSE; // WriteMouseCommandPrefix(0xd4); // WriteMouseCommandByte(chCmd); // if(ReadMouseByte() == 0xfa) // stKeyGlobalVariable.bMouseResponseState = TRUE; // __asm // { // popfd // popad // } // return stKeyGlobalVariable.bMouseResponseState; // } // bool IsMouseOutPutBufferFull() // { // bool bRet = 0; // __asm{ // in al,0x64 // test al,0x21 // cmp al,0x21 // jnz local_1 // mov bRet,1 // local_1: // } // return bRet; // } // void WriteMouseCommandByte(BYTE chCmd) // { // if(IsMouseOutPutBufferFull()) // SyserCleanMouseOutPutBuffer(); // __asm{ // mov al,chCmd // out 0x60,al // } // } // void SaveEflag() // { // __asm{ // pushfd // pop eax // mov dwEflag,eax // } // } // void StoreEflag() // { // __asm{ // push dwEflag // popfd // } // } // BYTE ReadMouseByte() // { // BYTE byteRet; // SyserWaitMouseOutPutBufferFull(); // __asm{ // push eax // in al,0x60 // mov byteRet ,al // pop eax // } // return byteRet; // } //0x0e,0x24,0x08,0x1f,0x1b,0x08,0x24,0x10,0x08,0x28,0x07,0x28,0x2b,0xfc,0x28,0x28,0xf2,0x28,0x26,0xe9,0x28,0x1e,0xe2,0x28 DWORD CalcPackageBeginOffset() { int i, k , j; for (i = 0; i < 4; i++) { if(MouseBeginBuffer[i] & 8) { k = 0; for(j = i + 3; j < MOUSE_BEGINDATA_MAX; j+=3) { if(MouseBeginBuffer[j] & 0x8) k++; else break; } if(k == 7) { dwMousePrePackageSize = 3; break; } k = 0; for(j = i + 4; j < MOUSE_BEGINDATA_MAX; j+=4) { if(MouseBeginBuffer[j] & 0x8) k++; else break; } if(k == 5) { dwMousePrePackageSize = 4; break; } else dwMousePrePackageSize = 0xff; } } if(i) { dwMousePackageBeginOffset = dwMousePrePackageSize - i; } else dwMousePackageBeginOffset = i; return dwMousePackageBeginOffset; } DWORD dwWrite60Counter1 = 0; UCHAR NEW_READ_PORT_UCHAR( IN DWORD Port ) { UCHAR uRet; // __asm // { // mov edx,Port // in al,dx // mov uRet,al // } uRet = SyserReadPortByte(Port); if(Port == 0x60) { if(!bIsMouseData)//Ƕ̵ { if(dwCurrentWindowsKeyLen != 0) { uRet = chWindowsKeyArray[dwCurrentReadIndex]; dwCurrentReadIndex++; dwCurrentReadIndex &= 0xf; // __asm{ // lock dec dwCurrentWindowsKeyLen // } InterlockedDecrement((PLONG)&dwCurrentWindowsKeyLen); } } else // { bIsMouseData = FALSE;//Ѿ //OUTPUT(WSTR("%%02x "),uRet); //dwWrite60Counter1++; //if((dwWrite60Counter1%30)==0) // OUTPUT(WSTR("\n")); } } else { if( Port == 0x64) { if(!bIsMouseData)//ǷΪ״̬ { if(dwCurrentWindowsKeyLen == 0 || (uRet & 0x31)==0x31) return (UCHAR)uRet; uRet &= 0x1e; uRet |= 1; return (UCHAR)uRet; } } } /* if(Port >= (PUCHAR)0x3f8 && Port <= (PUCHAR)0x3ff) { OUTPUT(WSTR("Read %04x %02x"),Port,uRet); }*/ return (UCHAR)uRet; } void InsertKeyboardBuffer(BYTE chScanCode) { if(dwCurrentWindowsKeyLen < MAX_WINDOWSKEYBUFFER_LENGTH) { chWindowsKeyArray[dwCurrentWriteIndex] = chScanCode; dwCurrentWriteIndex++; dwCurrentWriteIndex &= 0xf; //__asm lock inc dwCurrentWindowsKeyLen InterlockedIncrement((PLONG)&dwCurrentWindowsKeyLen); } } /* typedef struct stSofticeIdFind { DWORD dwIntNum1; DWORD dwIntNum1JmpOffset; //softice ʱ push OldWindowsHandleAddress // jmp SofticeHandleAddress // jmp ָ E98631f7ff DWORD fff73186 DWORD dwIntNum2; DWORD dwIntNum2JmpOffset; //ͬ DWORD dwIntNum3; DWORD dwIntNum3JmpOffset; //ͬ DWORD dwIntNum1BaseOffset; // dword softice ж 1 Ĵĵַ softice ַƫ DWORD dwActiveFunctionBaseOffset; //softice ڲļ softice ַƫ DWORD dwActiveFlagsBaseOffset; //softice ڲļ byte softice ַƫ }SOFTICEFINDDATA; */ SOFTICEFINDDATA stSofticeCode[]= { {0xc,0xfff238ce,0xd,0xfff23923,0xe,0xfff23d12,0xdefb5,0x0421a,0xdd621},//3.2 {0xb,0xfff2f9b4,0xc,0xfff2fb13,0xd,0xfff2fb68,0xd2ef5,0x0440e,0xd161a},//3.1 {1,0xfff3b5ef,2,0xfff3c1a9,3,0xfff3b981,0xc7f69,0x04fd3,0xc661a},//3.0 {1,0xfff73186,2,0xfff73d1a,3,0xfff73518,0xaf729,0x2360f,0xadcc2},//2.7 {1,0xfff77159,2,0xfff77c81,3,0xfff774eb,0xa9b5d,0x2260b,0xa7182},//2.6 {1,0xfff787e9,2,0xfff79311,3,0xfff78b7b,0xa84bd,0x225fb,0xa5e62},//2.5 {1,0xfff819b7,2,0xfff824b6,3,0xfff81d20,0x9d58b,0x20804,0x9bf42},//2.0 {1,0xfff8c54a,2,0xfff8cfd4,3,0xfff8c898,0x8d04b,0x1ae5e,0x8ba1d},//4.05 жϵƫƣActiveSoftice,bActiveSoftice }; /* DWORD stSofticeCode[][6]={ {0xfff8c54a,0xfff8cfd4,0xfff8c898,0x8d04b,0x1ae5e,0x8ba1d},//4.05 жϵƫƣActiveSoftice,bActiveSoftice {0xfff819b7,0xfff824b6,0xfff81d20,0x9d58b,0x20804,0x9bf42},//2.0 {0xfff787e9,0xfff79311,0xfff78b7b,0xa84bd,0x225fb,0xa5e62},//2.5 {0xfff77159,0xfff77c81,0xfff774eb,0xa9b5d,0x2260b,0xa7182},//2.6 {0xfff73186,0xfff73d1a,0xfff73518,0xaf729,0x242a9,0xadcc2},//2.7 {0xfff3b5ef,0xfff3c1a9,0xfff3b981,0xc7f69,0x04fd3,0xc661a},//3.0 }; */ DWORD CheckSofticeExist()//õ Softice ļصĻַ { DWORD dwIdtRegister; DWORD dwInterruptAddress; DWORD *dwTmpAddress; ST_DESC* stIDTBaseAddr; DWORD i,dwNumber; dwSofticeDriverBase = 0; pSofticeActivePointer = NULL; dwIdtRegister = SyserGetIDTBase(); stIDTBaseAddr = (ST_DESC*)dwIdtRegister; dwNumber = sizeof(stSofticeCode) / sizeof(stSofticeCode[0]); i = 0; __try { for (i = 0; i < dwNumber; i++) { /* dwInterruptAddress = stIDTBaseAddr[stSofticeCode[i].dwIntNum2].wBaseAddrHigh; dwInterruptAddress <<=16; dwInterruptAddress |= stIDTBaseAddr[stSofticeCode[i].dwIntNum2].wBaseAddrLow; if(*(char *)dwInterruptAddress != 0x68) continue; if(*(unsigned char *)(dwInterruptAddress+5) != 0xe9)// softice ûаװƳ continue; dwTmpAddress = (DWORD *)(6+dwInterruptAddress); if(stSofticeCode[i].dwIntNum2JmpOffset!=*dwTmpAddress) continue; */ dwInterruptAddress = stIDTBaseAddr[stSofticeCode[i].dwIntNum3].wBaseAddrHigh; dwInterruptAddress <<=16; dwInterruptAddress |= stIDTBaseAddr[stSofticeCode[i].dwIntNum3].wBaseAddrLow; if(*(char *)dwInterruptAddress != 0x68) continue; if(*(unsigned char *)(dwInterruptAddress+5) != 0xe9)// softice ûаװƳ continue; dwTmpAddress = (DWORD *)(6+dwInterruptAddress); if(stSofticeCode[i].dwIntNum3JmpOffset!=*dwTmpAddress) continue; dwInterruptAddress = stIDTBaseAddr[stSofticeCode[i].dwIntNum1].wBaseAddrHigh; dwInterruptAddress <<=16; dwInterruptAddress |= stIDTBaseAddr[stSofticeCode[i].dwIntNum1].wBaseAddrLow; if(*(char *)dwInterruptAddress != 0x68) continue; if(*(unsigned char *)(dwInterruptAddress+5) != 0xe9)// softice ûаװƳ continue; dwTmpAddress = (DWORD *)(6+ dwInterruptAddress); if(stSofticeCode[i].dwIntNum1JmpOffset!=*dwTmpAddress) continue; dwSofticeDriverBase = dwInterruptAddress - stSofticeCode[i].dwIntNum1BaseOffset; pSofticeActivePointer = (void (*)(void))(dwSofticeDriverBase + stSofticeCode[i].dwActiveFunctionBaseOffset); SoftIceActive = (BYTE *)(stSofticeCode[i].dwActiveFlagsBaseOffset + dwSofticeDriverBase); break; } } __except(1) { } return 1; } void SetKeyboardLEDState(DWORD bNumLock,DWORD bScrollLock,DWORD bCapsLock) { ULONG_PTR Flags; BYTE bLEDState = 0; BYTE bRet = 0; if(bNumLock) bLEDState |= 2; if(bScrollLock) bLEDState |= 1; if(bCapsLock) bLEDState |= 4; SyserSaveFlags(&Flags); SyserCloseInterrupt(); SetKeyboardPortState(FALSE); SendCommandTo60Port(0xed); SyserWaitKeyboardOutPutBufferFull(); SyserGetPortState(); SendCommandTo60Port(bLEDState); SyserGetPortState(); SetKeyboardPortState(TRUE); SyserRestoreFlags(Flags); } void SetKeyboardPortState(bool bState) { BYTE byteCmd; byteCmd = bState ? 0xae : 0xad; SendCommandTo64Port(byteCmd); } // void SendCommandTo64Port(BYTE byteCmd)//˿ 64 // { // WaitKeyboardInputBufferEmpte(); // __asm{ // push eax // mov al,byteCmd // out 0x64,al // push ecx // mov ecx,0x1000 // delay: // jmp local_next // local_next: // loop delay // pop ecx // pop eax // } // } // // // void SendCommandTo60Port(BYTE byteCmd)//˿ 60 // { // WaitKeyboardInputBufferEmpte(); // __asm{ // push eax // mov al,byteCmd // out 0x60,al // push ecx // delay: // jmp local_next // local_next: // loop delay // pop ecx // pop eax // } // } // void GetPortState()//ڸ̷Ժúȡ̵ķֵ // { // __asm{ // push eax // push ecx // mov ecx,1000 // local_3: // in al,0x64 // push ecx // mov ecx,8 // local_2: // jmp local_1 // local_1: // loop local_2 // pop ecx // test al,1 // loope local_3 // jz local_4 // in al,0x60 // cmp al,0xfa // jnz local_3 // local_4: // pop ecx // pop eax // } // } bool GetCurrentWindowLEDState(DWORD dwKeyIndex) { switch(dwKeyIndex) { case KEYBOARD_CAPS_LOCK: SyserSimulateWindowsKeyboardInput(0x3a);//Caps Lock 3a dwKeyLedFlags = KEYBOARD_CAPS_LOCK | 0x80000000; SyserSimulateWindowsKeyboardInput(0x3a | 0x80);//Caps Lock 3a return bKeyCapsLockStat; case KEYBOARD_NUM_LOCK: SyserSimulateWindowsKeyboardInput(0x45);//Caps Lock 45 dwKeyLedFlags = KEYBOARD_NUM_LOCK | 0x80000000; SyserSimulateWindowsKeyboardInput(0x45 | 0x80);//Caps Lock 45 return bKeyNumLockStat; case KEYBOARD_SCROLL_LOCK: SyserSimulateWindowsKeyboardInput(0x46);//Caps Lock 46 dwKeyLedFlags = KEYBOARD_SCROLL_LOCK | 0x80000000; SyserSimulateWindowsKeyboardInput(0x46 | 0x80);//Caps Lock 46 return bKeyScrollLockStat; default: return FALSE; } } // void SimulateWindowsKeyboardInput(BYTE byteScanCode) // { // ULONG_PTR Flags; // InsertKeyboardBuffer(byteScanCode); // SyserSaveFlags(&Flags); // __asm{ // cli // pushfd // push cs // push offset local_7 // jmp dword ptr cs:stKeyGlobalVariable.dwOldKeyboardInterrupt // local_7: // } // SyserRestoreFlags(Flags); // } DWORD dwPortCounter = 0; DWORD dwEDPortCounter = 0; DWORD dwWrite60Counter = 0; void NEW_WRITE_PORT_UCHAR(IN PUCHAR Port, IN UCHAR Value) { DWORD dwPort; dwPort = (DWORD)Port; if(Port == (PUCHAR)0x60) { if(Value == (UCHAR)0xed)//Զ˿ 0x60 дֵ 0xed DzLED Ƶ֡ 0x60дDz LED { dwEDPortCounter++; bKeyLedCmd = TRUE; } else { if(bKeyLedCmd) { dwPortCounter++; bKeyLedCmd = FALSE; switch(dwPortCounter) { case 1: case 2: { if(bKeyScrollLockStatInitOK == FALSE) { bKeyScrollLockStat = (Value & 1)?FALSE:TRUE; bKeyScrollLockStatInitOK = TRUE; } break; } case 3: case 4: { if(bKeyNumLockStatInitOK == FALSE) { bKeyNumLockStat = (Value & 2)?FALSE:TRUE; bKeyNumLockStatInitOK = TRUE; } break; } case 5: case 6: { if(bKeyCapsLockStatInitOK == FALSE) { bKeyCapsLockStat = (Value & 4)?FALSE:TRUE; bKeyCapsLockStatInitOK = TRUE; } break; } default: ; } } } // __asm{ // mov edx,dwPort // mov al,Value // out dx,al // } SyserWritePortByte(dwPort,Value); } else { // __asm{ // mov edx,dwPort // mov al,Value // out dx,al // } SyserWritePortByte(dwPort,Value); } } void PatchSystemWRITE_PORT_UCHAR(bool bIsPatch) { BYTE* dwSystemWRITE_PORT_UCHAR; DWORD dwPatchNEW_WRITE_PORT_UCHAR,i; dwSystemWRITE_PORT_UCHAR = (BYTE*)WRITE_PORT_UCHAR; if(bIsPatch && bWRITE_PORT_UCHAR_PatchOK == FALSE) { dwPatchNEW_WRITE_PORT_UCHAR = (DWORD)NEW_WRITE_PORT_UCHAR; for(i = 0; i < 5; i++) { byteOrgWRITE_PORT_UCHARInstruction[i] = dwSystemWRITE_PORT_UCHAR[i]; } dwSystemWRITE_PORT_UCHAR[0] = 0xe9; *(DWORD*)(&dwSystemWRITE_PORT_UCHAR[1]) = dwPatchNEW_WRITE_PORT_UCHAR -(5 + (DWORD)WRITE_PORT_UCHAR); bWRITE_PORT_UCHAR_PatchOK = TRUE; } else { if(bWRITE_PORT_UCHAR_PatchOK) { for(i = 0; i < 5; i++) { dwSystemWRITE_PORT_UCHAR[i] = byteOrgWRITE_PORT_UCHARInstruction[i]; } bWRITE_PORT_UCHAR_PatchOK = FALSE; } } } void PatchSystemREAD_PORT_UCHAR(bool bIsPatch) { BYTE* dwSystemREAD_PORT_UCHAR; DWORD dwPatchNEW_READ_PORT_UCHAR,i; ULONG_PTR Flags; SyserSaveFlags(&Flags); SyserCloseInterrupt(); dwSystemREAD_PORT_UCHAR = (BYTE*)READ_PORT_UCHAR; if(bIsPatch && bREAD_PORT_UCHAR_PatchOK == FALSE) { dwPatchNEW_READ_PORT_UCHAR = (DWORD)NEW_READ_PORT_UCHAR; for(i = 0; i < 5; i++) { byteOrgREAD_PORT_UCHARInstruction[i] = dwSystemREAD_PORT_UCHAR[i]; } dwSystemREAD_PORT_UCHAR[0] = 0xe9; *(DWORD*)(&dwSystemREAD_PORT_UCHAR[1]) = dwPatchNEW_READ_PORT_UCHAR -(5 + (DWORD)READ_PORT_UCHAR); bREAD_PORT_UCHAR_PatchOK = TRUE; } else { if(bREAD_PORT_UCHAR_PatchOK) { for(i = 0; i < 5; i++) { dwSystemREAD_PORT_UCHAR[i] = byteOrgREAD_PORT_UCHARInstruction[i]; } bREAD_PORT_UCHAR_PatchOK = FALSE; } } SyserRestoreFlags(Flags); } // __declspec (naked) void SyncMouseInterrupt() // { // __asm // { // push eax // push ecx // push ds // mov ax,0x10 // mov ds,ax // mov ecx,0x88000 //㹻ʱȴжϵķҪȴ 3 ж // mov eax,dwMousePackageBeginOffset // cmp eax,stKeyGlobalVariable.dwMouseDataIndex // // jz local_ex // mov dwWaitMouseInterrupt,1 // sti // local_1: // cmp eax, stKeyGlobalVariable.dwMouseDataIndex // loopne local_1 // cli // local_ex: // mov gbActive,FALSE // pop ds // pop ecx // pop eax // ret // } // } // bool CheckPS2Keyboard() // { // bool ReadMouseRet; // BYTE Value; // int i=0; // BYTE PS2KeyboardID[2]; // __asm // { // pushad // pushfd // cli // } // if(SendCommandTo60Port(0xF2)==false) // goto local_quit; // if(ReadPort60(&Value,false)==false) // goto local_quit; // if(Value!=0xfa) // goto local_quit; // i = 0; // while(ReadMouseRet = ReadPort60(&Value,false)) // { // if(i<2) // PS2KeyboardID[i]=Value; // i++; // } // local_quit: // __asm // { // popfd // popad // } // return i>=2; // } bool SendCommandTo60Port(BYTE byteCmd)//˿ 60 { bool bRet=false; if(SyserWaitI8042InputBufferEmpty()) { // __asm{ // push eax // mov al,byteCmd // out 0x60,al // pop eax // } SyserWritePortByte(0x60,byteCmd); bRet = SyserWaitI8042InputBufferEmpty(); } return bRet; } bool SendMouseCommand(BYTE CommandByte) { bool bRet=false; BYTE Value; int i; X86SaveRegs Regs; WORD Flags; SyserSaveFlagsLow16(&Flags); SyserPushad(&Regs); SyserCli(); // __asm // { // pushf // pushad // cli // } for(i = 0; i < 20;i++) { if(SendCommandTo64Port(0xd4)) { if(SyserClearI8042OutputBuffer()) { bRet = SendCommandTo60Port(CommandByte); break; } } } if(bRet) { if(SyserReadPort60(&Value,true)) { if(Value==0xfa) bRet=true; } } // __asm{ // popad // popf // } SyserPopad(&Regs); SyserRestoreFlagsLow16(Flags); return bRet; } // bool ReadPort60(BYTE* ReturnValue,bool IsMouse) // { // bool bRet=false; // BYTE Value; // __asm // { // push eax // push ecx // push ebx // mov bl,1 // cmp IsMouse,0 // jz local_005 // or bl,0x20 // local_005: // mov ecx,0x800000 // local_001: // in al,0x64 // and al,bl // cmp al,bl // jz local_002 // loop local_001 // jmp local_quit // local_002: // mov bRet,1 // in al,0x60 // mov Value,al // local_quit: // pop ebx // pop ecx // pop eax // } // *ReturnValue=Value; // return bRet; // } // bool WaitI8042InputBufferEmpty() // { // bool bRet=false; // __asm // { // push ecx // push eax // mov ecx,0x800000 // local_000: // in al,0x64 // test al,2 // jz local_001 // loop local_000 // jmp local_quit // local_001: // push ecx // mov ecx,100 // local_005: // jmp local_004 // local_004: // loop local_005 // pop ecx // local_003: // in al,0x64 // test al,2 // jz local_002 // loop local_003 // jmp local_quit // local_002: // mov bRet,1 // local_quit: // pop eax // pop ecx // } // return bRet; // } bool SendCommandTo64Port(BYTE byteCmd)//˿ 64 { bool bRet=false; if(SyserWaitI8042InputBufferEmpty()) { // __asm{ // push eax // mov al,byteCmd // out 0x64,al // pop eax // } SyserWritePortByte(0x64,byteCmd); bRet = SyserWaitI8042InputBufferEmpty(); } return bRet; } // bool ClearI8042OutputBuffer() // { // bool bRet=false; // __asm // { // push ecx // push eax // xor ecx,ecx // local_000: // in al,0x64 // test al,0x1 // jz local_007 // in al,0x60 // mov eax,0x20 // local_001: // jmp local_002 // local_002: // dec eax // jnz local_001 // loop local_000 // jmp local_quit // local_007: // mov bRet,1 // local_quit: // pop eax // pop ecx // } // return bRet; // } ================================================ FILE: Project/Syser/Source/InputDriver.h ================================================ #ifndef _INPUT_DRIVER_H_ #define _INPUT_DRIVER_H_ #define KEYBUFFERMAXLENGTH 0x200 #define FUNCKEYPRESS 1 //ܼʱ dwFuncKeyState ֵ #define FUNCKEYRELEASE 0 //ܼͷʱ dwFuncKeyState ֵ #define MOUSE_DATA_MAX 0x100 #define MOUSE_BEGINDATA_MAX 24 #define MOUSE_INTERRUPT_LEFT_PRESS 0x1 #define MOUSE_INTERRUPT_RIGHT_PRESS 0x2 #define MOUSE_INTERRUPT_MIDDLE_PRESS 0x4 #define MAX_WINDOWSKEYBUFFER_LENGTH 0x10 #define DISABLE_IOAPIC_HARDWARE_INTERRUPT 1 #define DEBUGKEYBORADEXIT 0 #define KEYBOARD_CAPS_LOCK 4 #define KEYBOARD_NUM_LOCK 2 #define KEYBOARD_SCROLL_LOCK 1 #include DWORD GetHardwareInterruptVectorNum(DWORD dwNum); #ifdef __cplusplus extern "C" { #endif extern bool gbInterruptInstalled; extern DWORD UHCI_Number;// UHCI USB HOST CONTROL NUMBER extern DWORD UHCIFrameBaseRegister[10]; extern bool bWRITE_PORT_UCHAR_PatchOK; extern bool bREAD_PORT_UCHAR_PatchOK; extern BYTE byteOrgWRITE_PORT_UCHARInstruction[]; extern BYTE byteOrgREAD_PORT_UCHARInstruction[]; extern DWORD dwKeyLedFlags; extern DWORD dwWaitMouseCounter; extern DWORD dwPhysical_0_LinesAddress; extern DWORD OwnerPageDirItemAddress; extern DWORD OwnerPageTabItemAddress; extern bool bEscKeyStat; extern bool bKeyLedCmd; extern bool bKeyScrollLockStat; extern bool bKeyNumLockStat; extern bool bKeyCapsLockStat; extern bool bKeyScrollLockStatInitOK; extern bool bKeyNumLockStatInitOK; extern bool bKeyCapsLockStatInitOK; extern bool gbChangeDrmState; extern bool gbKeyActiveMethod; extern __int64 TscPerSec; extern bool gTouchPad; extern BYTE gTouchPadMode; extern bool bKeytoSoftice; extern bool bInt1HereStat; extern bool bInt3HereStat; typedef struct stSofticeIdFind { DWORD dwIntNum1; DWORD dwIntNum1JmpOffset; //softice ʱ push OldWindowsHandleAddress // jmp SofticeHandleAddress // jmp ָ E98631f7ff DWORD fff73186 DWORD dwIntNum2; DWORD dwIntNum2JmpOffset; //ͬ DWORD dwIntNum3; DWORD dwIntNum3JmpOffset; //ͬ DWORD dwIntNum1BaseOffset; // dword softice ж 1 Ĵĵַ softice ַƫ DWORD dwActiveFunctionBaseOffset; //softice ڲļ softice ַƫ DWORD dwActiveFlagsBaseOffset; //softice ڲļ byte softice ַƫ }SOFTICEFINDDATA; typedef struct _st_desc { WORD wBaseAddrLow; WORD wSegmentSec; WORD wAttribture; WORD wBaseAddrHigh; }ST_DESC; // // Ҫcommon-x86.incеĶͬ // typedef struct _KeyInterruptVariable{ bool IsActive; //0 ûнģʽ //1 ˲ģʽ bool IsInsideActive; //Ƽжϵѭ DWORD dwFuncKeyState; //ܼ״̬0ܼûб£1ܼ DWORD dwOldKeyboardInterrupt; //ԭʼļжϵڵַ UINT nCurrentKeyBufferIndex; //̻ĵǰ ST_DESC *timer; //̵ָ DWORD dwOldTimerInterrupt; ST_DESC *keyboard; //̵ָ ST_DESC *mouse; //ָ WORD wSystemDataSegment; //Windows ϵͳ 㻷ݶεѡ WORD wDSRegister; // DS ԭʼֵ BYTE chFuncKeyScanCode; //ȼɨ Ctrl ɨ BYTE chSecondKeyScanCode; //ȼɨ a ɨ BYTE IsSaveInterruptInformation; //˿ 21 A1 ֵǷ񱣴ˣΪ 1 BYTE Interrupt8259Shield_1; //˿ 21 ֵ BYTE Interrupt8259Shield_2; //˿ A1 ֵ BYTE chAltKeyState; //ALT ״̬ BYTE chAltKeyScanCode; // ALT ɨ BYTE chCurrentScanCode; //ǰİ ɨ DWORD dwIOAPICLineAddress; DWORD dwIOAPICPhysAddress; DWORD dwLocalAPICPhysAddress; DWORD dwLocalAPICLineAddress; bool bIsUseAPIC; DWORD dwOldMouseInterrupt; bool bMouseResponseState; DWORD dwMouseDataIndex; BYTE chCurrentMouseData; DWORD dwLocalAPICTaskPriority; BYTE chPrveScanCode; BYTE chKeyBuffer[KEYBUFFERMAXLENGTH]; //̻ } KeyInterruptVariable; extern bool gHasPS2Keyboard; extern bool gHasPS2Mouse; #ifdef CODE_OS_NT_DRV extern SYSTEM_QUERY_TIME_ADJUSTMENT SystemTimeAdjustment; #endif extern DWORD dwInterruptF8Address; extern DWORD dwInterruptF9Address; extern DWORD dwInterruptFaAddress; extern DWORD dwInterruptFbAddress; extern DWORD dwInterruptFcAddress; extern BYTE chWindowsKeyArray[]; //ûģ READ_PORT_UCHAR õģ //ûеҪi8042prt.sys ˿60ʱģ 60˿ extern DWORD dwCurrentReadIndex; extern DWORD dwCurrentWriteIndex; extern DWORD dwCurrentWindowsKeyLen; extern bool bIsMouseData; extern DWORD dwWaitMouseInterrupt; extern DWORD dwEflag; extern KeyInterruptVariable stKeyGlobalVariable; extern INT nTempVar; extern BYTE *SoftIceActive; extern BYTE NormalTable[2][0x80]; extern BYTE ExternTable[]; /* extern BYTE ShiftKeyTable[]; extern BYTE AltKeyTable[]; extern BYTE CtrlKeyTable[]; extern BYTE CtrlAltKeyTable[]; */ extern DWORD dwSofticeDriverBase; extern DWORD dwRPUC; extern bool bActiveSoftice; extern DWORD dwRPUCLookup; extern DWORD dwWPUCLookup; extern DWORD dwWPUC; extern DWORD dwTmpVar; extern ST_DESC *dwTmpIdt; extern DWORD gHardInt1Vector; extern DWORD dwOldInterruptFA; extern DWORD dwOldInterruptF8; extern DWORD dwOldInterruptF9; extern void (*pSofticeActivePointer)(void); //extern stSerialMouse aSerialMouseData[]; UCHAR NEW_READ_PORT_UCHAR(IN DWORD Port); //VOID SaveDSRegister(VOID); //VOID StoreDSRegister(VOID); void KeyboardInterruptService(); VOID SyserWaitKeyboardInputBufferEmpte(VOID); VOID SyserWaitKeyboardOutPutBufferFull(VOID); void SyserSimulateKeyboardInput(BYTE scancode,bool isDisableInterrupt = FALSE); VOID SyserWaitMouseStatus(VOID); bool InstallAllInterrupt(); bool UninstallAllInterrupt(); //bool GetIOAPICBase(); void Delay(); //void MouseInterruptService(); VOID SyserWaitMouseInputBufferEmpte(VOID); VOID SyserWaitMouseOutPutBufferFull(VOID); bool IsMouseOutPutBufferFull(); void SyserCleanMouseOutPutBuffer(); void WriteMouseCommandPrefix(BYTE chCmd); void WriteMouseCommandByte(BYTE chCmd); bool SyserIsMouseOutPutBufferFull(); // void SaveEflag(); // void StoreEflag(); BYTE SyserReadMouseByte(VOID); DWORD CalcPackageBeginOffset(); void InsertKeyboardBuffer(BYTE chScanCode); DWORD CheckSofticeExist(); bool SendCommandTo60Port(BYTE byteCmd);//˿ 60 void SetKeyboardPortState(bool bState); bool SendCommandTo64Port(BYTE byteCmd);//˿ 64 void SetKeyboardLEDState(DWORD bScrollLock,DWORD bNumLock,DWORD bCapsLock); VOID SyserGetPortState(VOID);//ڸ̷Ժúȡ̵ķֵ VOID SyserSimulateWindowsKeyboardInput(BYTE byteScanCode); bool GetCurrentWindowLEDState(DWORD dwKeyIndex); void NEW_WRITE_PORT_UCHAR(IN PUCHAR Port, IN UCHAR Value); void PatchSystemWRITE_PORT_UCHAR(bool bIsPatch); void PatchSystemREAD_PORT_UCHAR(bool bIsPatch); //void SerialMouseInterruptService(); //bool CheckSerialMouse(); VOID SyserSyncMouseInterrupt(VOID); extern bool bRightCtrlKey; //void Interrupt_0xF9_Mouse_Service(); VOID SyserInterrupt_0xF8_Keyboard_Service(VOID); #ifdef __cplusplus }; // extern "C" #endif /* redefinition! typedef struct _IMAGE_DATA_DIRECTORY { DWORD VirtualAddress; DWORD Size; } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; #define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header WORD e_magic; // Magic number WORD e_cblp; // Bytes on last page of file WORD e_cp; // Pages in file WORD e_crlc; // Relocations WORD e_cparhdr; // Size of header in paragraphs WORD e_minalloc; // Minimum extra paragraphs needed WORD e_maxalloc; // Maximum extra paragraphs needed WORD e_ss; // Initial (relative) SS value WORD e_sp; // Initial SP value WORD e_csum; // Checksum WORD e_ip; // Initial IP value WORD e_cs; // Initial (relative) CS value WORD e_lfarlc; // File address of relocation table WORD e_ovno; // Overlay number WORD e_res[4]; // Reserved words WORD e_oemid; // OEM identifier (for e_oeminfo) WORD e_oeminfo; // OEM information; e_oemid specific WORD e_res2[10]; // Reserved words LONG e_lfanew; // File address of new exe header } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp; DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; // // NT additional fields. // 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]; } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; typedef 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]; } IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; #define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory #define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory #define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory #define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory #define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory #define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table #define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory // IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // (X86 usage) #define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE 7 // Architecture Specific Data #define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // RVA of GP #define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory #define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory #define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers #define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address Table #define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13 // Delay Load Import Descriptors #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14 // COM Runtime descriptor #define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56 #define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28 #define IMAGE_SIZEOF_NT_OPTIONAL32_HEADER 224 #define IMAGE_SIZEOF_NT_OPTIONAL64_HEADER 240 #define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b #define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b #define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107 #ifdef _WIN64 typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER; #define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL64_HEADER #define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC #else typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER; typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER; #define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL32_HEADER #define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC #endif typedef struct _IMAGE_NT_HEADERS64 { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER64 OptionalHeader; } IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; #ifdef _WIN64 typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; #else typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; #endif #define IMAGE_SIZEOF_SHORT_NAME 8 typedef struct _IMAGE_SECTION_HEADER { BYTE Name[IMAGE_SIZEOF_SHORT_NAME]; union { DWORD PhysicalAddress; DWORD VirtualSize; } Misc; DWORD VirtualAddress; DWORD SizeOfRawData; DWORD PointerToRawData; DWORD PointerToRelocations; DWORD PointerToLinenumbers; WORD NumberOfRelocations; WORD NumberOfLinenumbers; DWORD Characteristics; } IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; #define IMAGE_SIZEOF_SECTION_HEADER 40 typedef struct _IMAGE_IMPORT_DESCRIPTOR { union { DWORD Characteristics; // 0 for terminating null import descriptor DWORD OriginalFirstThunk; // RVA to original unbound IAT (PIMAGE_THUNK_DATA) }; DWORD TimeDateStamp; // 0 if not bound, // -1 if bound, and real date\time stamp // in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND) // O.W. date/time stamp of DLL bound to (Old BIND) DWORD ForwarderChain; // -1 if no forwarders DWORD Name; DWORD FirstThunk; // RVA to IAT (if bound this IAT has actual addresses) } IMAGE_IMPORT_DESCRIPTOR; typedef IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR; */ #ifdef __cplusplus extern "C" { #endif DWORD GetWin32KServiceTable(); //bool MouseCommand(BYTE chCmd); bool SyserClearI8042OutputBuffer(); bool SyserReadPort60(BYTE* ReturnValue,bool IsMouse); bool SyserWaitI8042InputBufferEmpty(VOID); bool SendMouseCommand(BYTE CommandByte); extern DWORD MouseInterruptCount; VOID SyserSimulateKeyboardInput(BYTE scancode,bool isInterrupt); //bool CheckPS2Keyboard(); void InitPS2MouseDevice(); DWORD GetScanCode(DWORD WispVKCode); #ifdef __cplusplus }; // extern "C" #endif void TestTouchPad(); #endif ================================================ FILE: Project/Syser/Source/Int0x6.cpp ================================================ #include "StdAfx.h" #include "Services.h" // // // __declspec(naked) void Int06Proc() // { // __asm // { // push dword ptr 0x6 // call SaveExceptionRegister // lea esp,[esp+4] // pushfd // pushad // mov ebp,esp // push ds // push es // push fs // mov eax,0x23 // mov ds,ax // mov es,ax // } // __asm // { // pop fs // pop es // pop ds // popad // popfd // ret // } // } ================================================ FILE: Project/Syser/Source/Int0x6.h ================================================ #ifndef __INT0X6_H__ #define __INT0X6_H__ #ifdef __cplusplus extern "C" { #endif VOID SyserInt06Proc(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //__INT0X6_H__ ================================================ FILE: Project/Syser/Source/Int0xb.cpp ================================================ #include "StdAfx.h" #include "Services.h" // // __declspec(naked) void Int0bProc() // { // __asm // { // push dword ptr 0xb // call SaveExceptionRegister // lea esp,[esp+4] // pushfd // pushad // push ds // push es // push fs // mov eax,0x23 // mov ds,ax // mov es,ax // } // __asm // { // pop fs // pop es // pop ds // popad // popfd // ret // } // } ================================================ FILE: Project/Syser/Source/Int0xb.h ================================================ #ifndef __INT0XB_H__ #define __INT0XB_H__ #ifdef __cplusplus extern "C" { #endif VOID SyserInt0bProc(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //__INT0XB_H__ ================================================ FILE: Project/Syser/Source/Int0xc.cpp ================================================ #include "StdAfx.h" #include "Services.h" // // __declspec(naked) void Int0cProc() // { // __asm // { // push dword ptr 0xc // call SaveExceptionRegister // lea esp,[esp+4] // pushfd // pushad // mov ebp,esp // push ds // push es // push fs // mov ax,0x23 // mov ds,ax // mov es,ax // mov ax,0x30 // mov fs,ax // } // __asm // { // pop fs // pop es // pop ds // popad // popfd // ret // } // } ================================================ FILE: Project/Syser/Source/Int0xc.h ================================================ #ifndef __INT0XC_H__ #define __INT0XC_H__ #ifdef __cplusplus extern "C" { #endif VOID SyserInt0cProc(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //__INT0XC_H__ ================================================ FILE: Project/Syser/Source/Int0xd.cpp ================================================ #include "stdafx.h" #include "int0xd.h" #include "Syser.h" bool Int0dHandle(DWORD *StackPointer) { DWORD begin,end; begin = (DWORD)SyserPrivateReadByte; end =(DWORD) SyserPrivateReadError; if(StackPointer[0]>begin&&StackPointer[0]begin&&StackPointer[0]begin&&StackPointer[0]begin&&StackPointer[0]begin&&StackPointer[0]begin&&StackPointer[0]begin&&StackPointer[1]begin&&StackPointer[1]begin&&StackPointer[1]begin&&StackPointer[1]begin&&StackPointer[1]begin&&StackPointer[1]begin&&StackPointer[1]begin&&StackPointer[1]>16); pDecr[0xe].OffsetLow=(WORD)(IDTBase&0xffff); } } else { pDecr[0xe].OffsetHigh=(WORD)(gdwActiveInt0eProcAddress>>16); pDecr[0xe].OffsetLow=(WORD)(gdwActiveInt0eProcAddress&0xffff); } } DWORD g1count=0; // // // __declspec(naked) void SyserInt0eProc() // { // DWORD* Int0eStackPointer; // DWORD PagedCR2; // // __asm // { // push dword ptr 0xE // call SaveExceptionRegister // lea esp,[esp+4] // push dword ptr 0xe // pushfd // pushad // mov ebp,esp // lea esp,[esp-0x8] //ֲĿռ // mov Int0eStackPointer,ebp // mov eax,cr2 // mov PagedCR2,eax // /* // eflags [ebp+34] // cs [ebp+30] // eip [ebp+2c] // error [ebp+28] // winorginte [ebp+24] // eflags [ebp+20] // eax [ebp+1c] // ecx [ebp+18] // edx [ebp+14] // ebx [ebp+10] // esp [ebp+c] // ebp [ebp+8] // esi [ebp+4] // edi [ebp+0] // */ // add Int0eStackPointer,0x28 // push ds // push es // push fs // mov ax,0x23 // mov ds,ax // mov es,ax // mov ax,0x30 // mov fs,ax // mov eax,cr2 // CLD // } // //GetLastBranchAddress(); // // if(Int0eHandle(Int0eStackPointer))//жDz Syser.sys ڲ쳣 // { // //_0E_TickCount--; // __asm // { // pop fs // pop es // pop ds // lea esp,[esp+8] //ֲ // popad // popfd // lea esp,[esp+8] // errorcode windows return address // iretd //ֱӷ // } // } // // if(gpSyser) // { // if(HandleBpr(PagedCR2,Int0eStackPointer[0],Int0eStackPointer)) // { // __asm // { // pop fs // pop es // pop ds // lea esp,[esp+8]//ֲ // popad // popfd // lea esp,[esp+8] // errorcode windows return address // OR DWORD PTR[esp+8],0x100 // IRETD // } // } // } // // //_0E_TickCount--; // // if(Int0eStackPointer[3]&0x100)//ڵԵʱһȱҳ쳣 // { // EnableAllHardInterrupt(); // SyserStartOtherCPUs(); // } // __asm // { // pop fs // pop es // pop ds // lea esp,[esp+8]//ֲ // popad // popfd // ret //صԭʼWINDOWSжϴַ // } // } DWORD dwHandleBpr=0; DWORD HandleBprcOUNT=0; bool HandleBpr(DWORD PagedCR2,DWORD ErrorCode,DWORD*P ) { DWORD dwValue,PageAlignment; DWORD Process,Thread; bool bOK; static int count1=0; if(ErrorCode&1) return false; bOK = GetCurrentProcessAndThread(&Process,&Thread); if(bOK==false) return false; BP_RANGE_LIST::IT BeginIT,EndIT; PROC_RANGE_BP_MAP::IT FindIT = gpSyser->m_RangeBPList.Find(Process); if(FindIT == gpSyser->m_RangeBPList.End()) return false; DWORD PtePtr=0,PageSize=0,PTESize=0,StartAddr1=0,EndAddr1=0; PtePtr = (DWORD)GetPTE(PagedCR2,&PageSize,&PTESize,false); if(!PtePtr) return false; StartAddr1 = PagedCR2 & (~(PageSize-1)); EndAddr1 = StartAddr1+PageSize; BeginIT = FindIT->Begin(); EndIT = FindIT->End(); for(;BeginIT!=EndIT;BeginIT++) { DWORD StartAddr = BeginIT->RangeStartAddress; DWORD EndAddr = BeginIT->RangeStartAddress+BeginIT->RangeLength-1; if(!(BeginIT->Type & BP_SET_BPR_TYPE)) continue; if(!((EndAddr < StartAddr1) || (StartAddr >= EndAddr1))) // if((StartAddr>=StartAddr1 && StartAddr < EndAddr1) || (EndAddr>StartAddr1 && EndAddr < EndAddr1) || (StartAddr < StartAddr1 && EndAddr >EndAddr1)) { if(ReadDword((void*)PtePtr,&dwValue)) { if(WriteDword((void*)PtePtr,dwValue|1)) { BeginIT->Type |= BP_REV_BPR_TYPE; gpSyser->m_SyserUI.m_SyserDI.SetTracePageRangeCondition(PagedCR2,P[1]); return true; } } } } return false; } ================================================ FILE: Project/Syser/Source/Int0xe.h ================================================ #ifndef _INT0XE_H_ #define _INT0XE_H_ #ifdef __cplusplus extern "C" { #endif //ȱҳ쳣 VOID SyserInt0eProc(VOID); extern DWORD gdwActiveInt0eProcAddress; VOID SyserActive_Int0eProcStub(VOID); void ActiveHookInt0e(bool bInstall); bool Int0eHandle(DWORD *StackPointer); extern DWORD gSyserInt0eAddress; #ifdef __cplusplus }; // extern "C" #endif #endif //_INT0XE_H_ ================================================ FILE: Project/Syser/Source/Int1.cpp ================================================ #include "stdafx.h" #include "Int1.h" #include "HardWareInterruptCtrl.h" #include "Syser.h" #include "Services.h" #include "Int0xe.h" #ifdef __cplusplus extern "C" { #endif DWORD gIntCounter=0; VADDR32 gOldInt01Proc=0; DWORD dwgSetDbgReg=0; #ifdef __cplusplus }; // extern "C" #endif // __declspec(naked) void Int01Proc() // { // __asm // { // PUSHFD // CMP DWORD PTR[esp+8],offset CloseDebugRegisterMontior+1 // JNZ HANDLE_SET_DBG_REG // PUSH EAX // MOV EAX,0 // MOV DR6,EAX // POP EAX // POPFD // LEA ESP,[ESP+4] // IRETD // HANDLE_SET_DBG_REG: // CMP SS:gbActive,0 //ûбת // JZ ENTER_PROC // jmp HANDLE_SET_DBG_REG // POPFD //ߵһִ // RET // ENTER_PROC: // POPFD // CALL StopOtherCPUs // CALL DisableDebugRegisterMontior //Ȼж1 Զر Debug register пֹͣCPU֮ǰCPUжϣжDebug rigister ؿܱá // POP SS:gOldInt01Proc // cmp ESP,SS:gpStackBuffer // jb local_uu // cmp ESP,SS:gpStackBufferTop // ja local_uu // push 0 // push EBP // push ESP // push Reg.EIP // PUSH 0X31313131 // MOV EAX,KeBugCheckEx // call eax // local_uu: // MOV SS:OldESP,ESP // MOV ESP,SS:gpStackBufferTop // PUSHAD // PUSH FS // PUSH DS // PUSH ES // MOV AX,0x23 // MOV DS,AX // MOV ES,AX // MOV EBP,ESP // CLD // } // // LoadReg(); // ActiveHookInt0e(true); // gpSyser->AttachPopupProcess(Reg.CR[3]); // gIntCounter++; // // if(gpSyser->m_pDebugger->HandleInt1(Reg.EIP)==false)//Syser Active // { // ActiveHookInt0e(false); // SetLastBranchMointer(); // EnableDebugRegisterMontior(); // __asm // { // POP ES // POP DS // POP FS // POPAD // MOV ESP,SS:OldESP // CALL StartOtherCPUs // JMP CS:[gOldInt01Proc] // } // } // ActiveHookInt0e(false); // SetLastBranchMointer(); // SaveReg(); // __asm // { // POP ES // POP DS // POP FS // POPAD // MOV ESP,SS:OldESP // MOV SS:OldESP,0 // CALL SyserSyncMouseInterrupt // XCHG EAX,[ESP+8] // TEST EAX,0x100 // JNZ STEP_NEXT // CALL EnableAllHardInterrupt // CALL StartOtherCPUs // JMP local_101 // STEP_NEXT: // CALL DisableAllHardInterrupt // local_101: // XCHG EAX,[ESP+8] // CMP SS:gGenInterruptNumber,0xFFFFFFFF // JNZ local_00100 // CMP SS:bGoToSoftice,0 // JZ tmpgosoftice // MOV SS:bGoToSoftice,0 // CALL pSofticeActivePointer // tmpgosoftice: // IRETD // local_00100: // MOV SS:gGenInterruptNumber,0xFFFFFFFF; // JMP CS:[gGenInterruptOffset] // } // } ================================================ FILE: Project/Syser/Source/Int1.h ================================================ #ifndef _INT1_H_ #define _INT1_H_ #ifdef __cplusplus extern "C" { #endif //VOID SyserInt01Proc(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //_INT1_H_ ================================================ FILE: Project/Syser/Source/Int3.cpp ================================================ #include "stdafx.h" #include "Int3.h" #include "Int0xe.h" #include "HardWareInterruptCtrl.h" #include "Syser.h" #include "Services.h" #include "MultiCPU.h" #ifdef __cplusplus extern "C" { #endif VADDR32 gOldInt03Proc=0; extern DWORD gIntCounter; #ifdef __cplusplus }; // extern "C" #endif // __declspec(naked) void Int03Proc() // { // __asm // { // PUSHFD // CMP SS:gbActive,1 // JNZ SYSER_NOT_ACTIVE // POPFD // RET // SYSER_NOT_ACTIVE: // POPFD // CALL SyserStopOtherCPUs // CALL DisableDebugRegisterMontior // POP SS:gOldInt03Proc // cmp ESP,SS:gpStackBuffer // jb local_uu // cmp ESP,SS:gpStackBufferTop // ja local_uu // push 0 // push 0 // push ESP // push 0 // PUSH 0X33333333 // MOV EAX,KeBugCheckEx // call eax // local_uu: // MOV SS:OldESP,esp // MOV ESP,SS:gpStackBufferTop // PUSHAD // PUSH FS // PUSH DS // PUSH ES // MOV AX,NT_DS // MOV DS,AX // MOV ES,AX // MOV EBP,ESP // CLD // } // // LoadReg(); // ActiveHookInt0e(true); // gpSyser->AttachPopupProcess(Reg.CR[3]); // // if(gpSyser->m_pDebugger->HandleInt3(Reg.EIP-1)==false)//Syser Active // { // ActiveHookInt0e(false); // EnableDebugRegisterMontior(); // __asm // { // POP ES // POP DS // POP FS // POPAD // MOV ESP,SS:OldESP // CALL SyserStartOtherCPUs // JMP SS:[gOldInt03Proc] // } // } // ActiveHookInt0e(false); // SaveReg(); // __asm // { // POP ES // POP DS // POP FS // POPAD // MOV ESP,SS:OldESP // MOV SS:OldESP,0 // CALL SyserSyncMouseInterrupt // XCHG EAX,[ESP+8] // EFLAGS // TEST EAX,0x100 // JNZ STEP_NEXT //Եʽ˳ģ򲻿ӲжҲ cpu ִָ // CALL EnableAllHardInterrupt // CALL SyserStartOtherCPUs // JMP local_101 // STEP_NEXT: // CALL DisableAllHardInterrupt // local_101: // XCHG EAX,[ESP+8] // CMP CS:gGenInterruptNumber,0xFFFFFFFF // JNZ local_00100 // CMP CS:bGoToSoftice,0 // JZ tmpgosoftice // MOV SS:bGoToSoftice,0 // CALL pSofticeActivePointer // tmpgosoftice: // CMP SS:gbBugCheckExExit,1 // MOV SS:gbBugCheckExExit,0 // JNZ local_ppp // TEST DWORD PTR[ESP+8],0x100 // JZ local_ppp // AND DWORD PTR[ESP+8],0xFFFFFEFF // PUSHFD // OR DWORD PTR[ESP],0x100 // POPFD // local_ppp: // IRETD // local_00100: // MOV SS:gGenInterruptNumber,0xFFFFFFFF; // JMP CS:[gGenInterruptOffset] // } // } ================================================ FILE: Project/Syser/Source/Int3.h ================================================ #ifndef _INTEERUP3_H_ #define _INTEERUP3_H_ #ifdef __cplusplus extern "C" { #endif //extern VADDR32 gOldInt03Proc; VOID SyserInt03Proc(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //_INTEERUP3_H_ ================================================ FILE: Project/Syser/Source/Interrupt2D.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "Interrupt2D.h" LONG bInt2DBusy = 0; __declspec (naked) void Int2DService() { DWORD dwEAX,dwEBX,dwECX,dwEDX,dwEBP; __asm { pushad push fs push ds push es mov ax,0x30 mov fs,ax mov ax,ss mov eax,0x10 mov ds,ax mov es,ax mov ebp,esp lea esp,[esp-0x18] mov eax,[ebp+0x1c] mov dwEBX,eax mov eax,[ebp+0x20] mov dwEDX,eax mov eax,[ebp+0x24] mov dwECX,eax mov eax,[ebp+0x28] mov dwEAX,eax mov eax,[ebp+0x2c] mov dwEBP,eax } switch(dwEAX) { case 1: { if(gpSyser->m_OSVer==DRV_OS_XP) { if(dwEDX) { Int2D_OutputDebugString((char *)dwECX); } } else if(gpSyser->m_OSVer==DRV_OS_2K) { if(IsValidPage(dwECX)) { Int2D_OutputDebugString(*(char **)(4+dwECX)); } } } break; case 2: //gpSyser->m_MainFrame.m_ConsoleWnd.Printf(WSTR("%(INT 2D )Debug Prompt EIP=%08x EAX=%08X EBX=%08X ECX=%08X EDX=%08X\n"),dwEBP,dwEAX,dwEBX,dwECX,dwEDX); break; case 3: LoadSystemModuleSymbols((PANSI_STRING)dwECX,dwEDX); break; case 4: //gpSyser->m_MainFrame.m_ConsoleWnd.Printf(WSTR("%(INT 2D )Unload Symbol EIP=%08x EAX=%08X EBX=%08X ECX=%08X EDX=%08X\n"),dwEBP,dwEAX,dwEBX,dwECX,dwEDX); break; default: //gpSyser->m_MainFrame.m_ConsoleWnd.Printf(WSTR("%(INT 2D )unkonw functions EIP=%08x EAX=%08X EBX=%08X ECX=%08X EDX=%08X\n"),dwEBP,dwEAX,dwEBX,dwECX,dwEDX); break; } __asm { mov esp,ebp pop es pop ds pop fs popad ret } } void Int2D_OutputDebugString(char *string) { static LARGE_INTEGER PrevTime; KIRQL OldIRQL; WISP_CHAR buf[512]; LARGE_INTEGER CurrentTime; if(gpSyserCfg->m_DisableDbgMsg || string == NULL || IsValidPage((VADDR32)string) == false) return; int Length=0; if(SyserOption.iShowDbgSrcProcName) { CDbgProcess*pProcess; pProcess = gpSyser->m_SysInfo.GetProcessByCR3(GetCR3Reg()); if(pProcess) { if(pProcess->m_CR3==gpSyser->m_pSysDebugger->m_CR3) pProcess = gpSyser->m_pSysDebugger; TStrCpy(buf,(PCWSTR)pProcess->m_ProcessName); TStrCat(buf," : "); Length = TStrLen(buf); } } if(SyserOption.iDebugOutputSwitch) SyserAnsiToUnicode(string,&buf[Length],sizeof(buf)/sizeof(WISP_CHAR)-Length-1); if(KeGetCurrentIrql()<= DISPATCH_LEVEL) { if(SyserOption.iDebugOutputSwitch&SYSER_DBG_MSG_KERNEL) gpSyser->m_MainFrame.m_ConsoleWnd.Output(buf); if(SyserOption.iDebugOutputSwitch & SYSER_DBG_MSG_USER) { KeAcquireSpinLock(&gpSyser->m_SpinLock,&OldIRQL); gpSyser->InsertDbgMsg(buf); KeReleaseSpinLock(&gpSyser->m_SpinLock,OldIRQL); if(gpSyser->m_pMsgKEvent) KeSetEvent(gpSyser->m_pMsgKEvent,0,FALSE); } } else { if(SyserOption.iDebugOutputSwitch&SYSER_DBG_MSG_KERNEL) gpSyser->m_MainFrame.m_ConsoleWnd.Output(buf); gpSyser->InsertDbgMsg(buf); } } WCHAR LoadSystemModuleNameBuf[512]; void LoadSystemModuleSymbols(PANSI_STRING pModuleName,DWORD dwModuleBaseAddress) { DWORD Len; if(dwModuleBaseAddress==0||pModuleName==NULL) return; if(IsValidPage((VADDR32)pModuleName,sizeof(ANSI_STRING))==false) return; if(pModuleName->Buffer==NULL) return; if(IsValidPage((VADDR32)pModuleName->Buffer)==false) return; if(pModuleName->Buffer[0]==0) return; Len = pModuleName->Length>512?511:pModuleName->Length+1; TStrCpyLimit(LoadSystemModuleNameBuf,pModuleName->Buffer,Len); //gpSyser->m_RootWnd.m_ConsoleWnd.Printf(WSTR("Load Symbol %s\n"),LoadSystemModuleNameBuf); } static DWORD SafeReadDwordValue(DWORD* Address,DWORD DefaultValue) { if(IsValidPage((VADDR32)Address)) return *Address; else return DefaultValue; } ================================================ FILE: Project/Syser/Source/Interrupt2D.h ================================================ #ifndef _INTERRUPT2D_H_ #define _INTERRUPT2D_H_ void Int2DService(); void Int2D_OutputDebugString(char *string); void LoadSystemModuleSymbols(PANSI_STRING pModuleName,DWORD dwModuleBaseAddress); extern ST_DESC* Int2DDesc; extern VADDR32 gOldInt2DProc; extern LONG bInt2DBusy; DWORD SafeReadDwordValue(DWORD* Address,DWORD DefaultValue=0); bool IsValidAddress(void* Address,DWORD size=4); VOID BreakPrintDpcForIsr(PKDPC Dpc,PDEVICE_OBJECT DeviceObject,PIRP Irp,PCHAR string); #endif ================================================ FILE: Project/Syser/Source/InterruptPatch.cpp ================================================ #include "StdAfx.h" #include "InterruptPatch.h" INTERRUPT_STUB gInterruptStub[MAX_INTERRUPT_STUB]; void InitInterruptStub() { ZeroMemory(gInterruptStub,sizeof(gInterruptStub)); for(int i = 0; i < MAX_INTERRUPT_STUB; i++) { gInterruptStub[i].RetPCode=0xc3; gInterruptStub[i].PushPCode=0x68; gInterruptStub[i].PushPCode2=0x68; } } PINTERRUPT_STUB GetInterruptStub() { for(int i = 0; i < MAX_INTERRUPT_STUB; i++) { if(gInterruptStub[i].OldInterruptAddress==0 &&gInterruptStub[i].InterruptVector==0&&gInterruptStub[i].IDTBaseAddress==0) { return &gInterruptStub[i]; } } return NULL; } DWORD GetOrgInterruptAddress(PINTERRUPT_STUB pStub) { for(int i=0;iRetPCode=0xc3; IStub->PushPCode=0x68; IStub->PushPCode2=0x68; } ================================================ FILE: Project/Syser/Source/InterruptPatch.h ================================================ #ifndef _INTERRUPTPATCH_H_ #define _INTERRUPTPATCH_H_ #include "X86Define.h" #define MAX_INTERRUPT_STUB 256 #include typedef struct _INTERRUPT_STUB { BYTE PushPCode; DWORD OldInterruptAddress; BYTE PushPCode2; DWORD OwnerInterruptAddress; BYTE RetPCode; BYTE InterruptVector; DWORD IDTBaseAddress; X86_GATE_DECR GateDecr; }INTERRUPT_STUB,*PINTERRUPT_STUB; #include extern INTERRUPT_STUB gInterruptStub[MAX_INTERRUPT_STUB]; DWORD GetOrgInterruptAddress(PINTERRUPT_STUB pStub); void InitInterruptStub(); void ReleaseInterruptStub(PINTERRUPT_STUB IStub); PINTERRUPT_STUB GetInterruptStub(); #endif //_INTERRUPTPATCH_H_ ================================================ FILE: Project/Syser/Source/IntraPatch.cpp ================================================ #include "StdAfx.h" #include "IntraPatch.h" SYSERINTRABREAKPOINT gSyserPatchBreakPoint[1]; void InstallSyserPatchBreakPoint() { } void UninstallSyserPatchBreakPoint() { } void testfun() { } ================================================ FILE: Project/Syser/Source/IntraPatch.h ================================================ #ifndef _INTRAPATCH_H_ #define _INTRAPATCH_H_ typedef struct _SYSERINTRAPATCHBREAKPOINT { DWORD BPAddress; void* BeginPatchRoutine; void* EndPatchRoutine; BYTE OrgIntruction[16]; }SYSERINTRABREAKPOINT,*PSYSERINTRABREAKPOINT; #endif //_INTRAPATCH_H_ ================================================ FILE: Project/Syser/Source/KernelObjectCmd.cpp ================================================ #include "stdafx.h" #include "Syser.h" bool bShowCommandTitle; bool bShowDebugInfo; int objdir_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { WISP_CHAR TypeName[65],ObjectName[65]; OBJFINDDATA FindData; DWORD dwObjectCounter; DWORD dwDir; PWSTR pCmdLine; DWORD ObjectHeader; bool bTitle = false; dwDir=dwObjectRootDirectory; dwObjectCounter=0; if(argc>2)//пܶм { pCmdLine=TStrIStr(szCommandLine,"objdir"); if(pCmdLine==NULL) argc=1; else { pCmdLine+=6; while(*pCmdLine==' ' || *pCmdLine=='\t') pCmdLine++; argv[1]=pCmdLine; } argc=2; } if(argc==2) { dwDir = GetObjectDirectoryHandleByName(argv[1]); if(dwDir==0) { if(CALCEXP(argv[1],&ObjectHeader)==FALSE) return 1; dwDir=ObjectHeader; } } if(IsDirectoryObjectType(dwDir)) { FindData.ObjectHandle=dwDir; FindData.NextObjectPointer=NULL; FindData.DirectoryItemIndex=0; while(FindNextObject(FindData)) { if(bTitle==false) { OUTPUT(WSTR("Object ObjHdr %-40s%-20s\n"),WSTR("Name"),WSTR("Type")); bTitle=true; } dwObjectCounter++; GetObjectTypeName(FindData.ReturnObjectHandle,TypeName); GetObjectName(FindData.ReturnObjectHandle,ObjectName); ObjectHeader = GetObjectHeader(FindData.ReturnObjectHandle); OUTPUT(WSTR("%08x %08x %-40s%-20s\n"),FindData.ReturnObjectHandle, ObjectHeader,ObjectName,TypeName); } OUTPUT(WSTR("%d Object(s)" ),dwObjectCounter); return 0; } else { OUTPUT(WSTR("Object ObjHdr %-40s%-20s\n"),WSTR("Name"),WSTR("Type")); GetObjectTypeName(dwDir,TypeName); GetObjectName(dwDir,ObjectName); ObjectHeader = GetObjectHeader(dwDir); OUTPUT(WSTR("%08x %08x %-40s%-20s\n"),dwDir,ObjectHeader,ObjectName,TypeName); } return 0; } bool DeviceCommandCallBack(DWORD ObjectHandle,WISP_CHAR**Name) { WISP_CHAR ObjectName[65]; WISP_CHAR DisplayFormat[]=WSTR("%08X %08X %08X %08X %08X %08X %s\n"); bool bFound=false; PDEVICE_OBJECT DeviceObject; DWORD dwValue; if(bShowCommandTitle) { OUTPUT(WSTR("RefCnt DrvObj NextDev AttDev CurIrp DevExten Name\n")); bShowCommandTitle=false; } DeviceObject=*(PDEVICE_OBJECT*)&ObjectHandle; GetObjectName(ObjectHandle,ObjectName); if(Name) { if( USHexStrToNum(Name[0], &dwValue) ) { if(dwValue == (DWORD)DeviceObject) bFound=true; } else { if(TIMatchWithPattern(Name[0], ObjectName)) { bFound=true; } } if(bFound==false) return true; } dwListObjectCounter++; OUTPUT(DisplayFormat, DeviceObject->ReferenceCount, DeviceObject->DriverObject, DeviceObject->NextDevice, DeviceObject->AttachedDevice, DeviceObject->CurrentIrp, DeviceObject->DeviceExtension, ObjectName ); if(bFound) { if( TStrChr(Name[0], WISP_CHAR('*')) || TStrChr(Name[0], WISP_CHAR('?')) ) return true; WISP_CHAR* DeviceTypeName[]= { WSTR(""), WSTR("FILE_DEVICE_BEEP"), WSTR("FILE_DEVICE_CD_ROM"), WSTR("FILE_DEVICE_CD_ROM_FILE_SYSTEM"), WSTR("FILE_DEVICE_CONTROLLER"), WSTR("FILE_DEVICE_DATALINK"), WSTR("FILE_DEVICE_DFS"), WSTR("FILE_DEVICE_DISK"), WSTR("FILE_DEVICE_DISK_FILE_SYSTEM"), WSTR("FILE_DEVICE_FILE_SYSTEM"), WSTR("FILE_DEVICE_INPORT_PORT"), WSTR("FILE_DEVICE_KEYBOARD"), WSTR("FILE_DEVICE_MAILSLOT"), WSTR("FILE_DEVICE_MIDI_IN"), WSTR("FILE_DEVICE_MIDI_OUT"), WSTR("FILE_DEVICE_MOUSE"), WSTR("FILE_DEVICE_MULTI_UNC_PROVIDER"), WSTR("FILE_DEVICE_NAMED_PIPE"), WSTR("FILE_DEVICE_NETWORK"), WSTR("FILE_DEVICE_NETWORK_BROWSER"), WSTR("FILE_DEVICE_NETWORK_FILE_SYSTEM"), WSTR("FILE_DEVICE_NULL"), WSTR("FILE_DEVICE_PARALLEL_PORT"), WSTR("FILE_DEVICE_PHYSICAL_NETCARD"), WSTR("FILE_DEVICE_PRINTER"), WSTR("FILE_DEVICE_SCANNER"), WSTR("FILE_DEVICE_SERIAL_MOUSE_PORT"), WSTR("FILE_DEVICE_SERIAL_PORT"), WSTR("FILE_DEVICE_SCREEN"), WSTR("FILE_DEVICE_SOUND"), WSTR("FILE_DEVICE_STREAMS"), WSTR("FILE_DEVICE_TAPE"), WSTR("FILE_DEVICE_TAPE_FILE_SYSTEM"), WSTR("FILE_DEVICE_TRANSPORT"), WSTR("FILE_DEVICE_UNKNOWN"), WSTR("FILE_DEVICE_VIDEO"), WSTR("FILE_DEVICE_VIRTUAL_DISK"), WSTR("FILE_DEVICE_WAVE_IN"), WSTR("FILE_DEVICE_WAVE_OUT"), WSTR("FILE_DEVICE_8042_PORT"), WSTR("FILE_DEVICE_NETWORK_REDIRECTOR"), WSTR("FILE_DEVICE_BATTERY"), WSTR("FILE_DEVICE_BUS_EXTENDER"), WSTR("FILE_DEVICE_MODEM"), WSTR("FILE_DEVICE_VDM"), WSTR("FILE_DEVICE_MASS_STORAGE"), WSTR("FILE_DEVICE_SMB"), WSTR("FILE_DEVICE_KS"), WSTR("FILE_DEVICE_CHANGER"), WSTR("FILE_DEVICE_SMARTCARD"), WSTR("FILE_DEVICE_ACPI"), WSTR("FILE_DEVICE_DVD"), WSTR("FILE_DEVICE_FULLSCREEN_VIDEO"), WSTR("FILE_DEVICE_DFS_FILE_SYSTEM"), WSTR("FILE_DEVICE_DFS_VOLUME"), WSTR("FILE_DEVICE_SERENUM"), WSTR("FILE_DEVICE_TERMSRV"), WSTR("FILE_DEVICE_KSEC"), WSTR("FILE_DEVICE_FIPS"), NULL, }; WISP_CHAR FileAligment[30]=WSTR(""); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("Timer*"),DeviceObject->Timer); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("Flags"),DeviceObject->Flags); if(DeviceObject->Flags&DO_VERIFY_VOLUME) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_VERIFY_VOLUME")); if(DeviceObject->Flags&DO_BUFFERED_IO) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_BUFFERED_IO")); if(DeviceObject->Flags&DO_DIRECT_IO) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_DIRECT_IO")); if(DeviceObject->Flags&DO_EXCLUSIVE) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_EXCLUSIVE")); if(DeviceObject->Flags&DO_MAP_IO_BUFFER) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_MAP_IO_BUFFER")); if(DeviceObject->Flags&DO_DEVICE_HAS_NAME) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_DEVICE_HAS_NAME")); if(DeviceObject->Flags&DO_DEVICE_INITIALIZING) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_DEVICE_INITIALIZING")); if(DeviceObject->Flags&DO_SYSTEM_BOOT_PARTITION) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_SYSTEM_BOOT_PARTITION")); if(DeviceObject->Flags&DO_LONG_TERM_REQUESTS) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_LONG_TERM_REQUESTS")); if(DeviceObject->Flags&DO_NEVER_LAST_DEVICE) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_NEVER_LAST_DEVICE")); if(DeviceObject->Flags&DO_SHUTDOWN_REGISTERED) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_SHUTDOWN_REGISTERED")); if(DeviceObject->Flags&DO_BUS_ENUMERATED_DEVICE) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_BUS_ENUMERATED_DEVICE")); if(DeviceObject->Flags&DO_POWER_PAGABLE) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_POWER_PAGABLE")); if(DeviceObject->Flags&DO_POWER_INRUSH) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_POWER_INRUSH")); if(DeviceObject->Flags&DO_LOW_PRIORITY_FILESYSTEM) OUTPUT(WSTR("%-20s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DO_LOW_PRIORITY_FILESYSTEM")); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("Characteristics"),DeviceObject->Characteristics); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("Vpb*"),DeviceObject->Vpb); WISP_CHAR* NameDeviceType; if(DeviceObject->DeviceType>sizeof(DeviceTypeName)/sizeof(DeviceTypeName[0])) NameDeviceType=DeviceTypeName[0]; else NameDeviceType=DeviceTypeName[DeviceObject->DeviceType]; OUTPUT(WSTR("%-20s : %-8x %s\n"),WSTR("Device Type"),DeviceObject->DeviceType,NameDeviceType); OUTPUT(WSTR("%-20s : %d\n"),WSTR("StackSize"),DeviceObject->StackSize); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("&Queue"),&DeviceObject->Queue); switch(DeviceObject->AlignmentRequirement) { case FILE_BYTE_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_BYTE_ALIGNMENT\n")); break; case FILE_WORD_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_WORD_ALIGNMENT\n")); break; case FILE_LONG_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_LONG_ALIGNMENT\n")); break; case FILE_QUAD_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_QUAD_ALIGNMENT\n")); break; case FILE_OCTA_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_OCTA_ALIGNMENT\n")); break; case FILE_32_BYTE_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_32_BYTE_ALIGNMENT\n")); break; case FILE_64_BYTE_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_64_BYTE_ALIGNMENT\n")); break; case FILE_128_BYTE_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_128_BYTE_ALIGNMENT\n")); break; case FILE_256_BYTE_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_256_BYTE_ALIGNMENT\n")); break; case FILE_512_BYTE_ALIGNMENT: TSPrintf(FileAligment,WSTR("FILE_512_BYTE_ALIGNMENT\n")); break; } OUTPUT(WSTR("%-20s : %08x %s\n"),WSTR("AlignmentRequirement"),DeviceObject->AlignmentRequirement,FileAligment); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("&DeviceQueue"),&DeviceObject->DeviceQueue); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("&Dpc"),&DeviceObject->Dpc); OUTPUT(WSTR("%-20s : %d\n"),WSTR("ActiveThreadCount"),DeviceObject->ActiveThreadCount); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("SecurityDescriptor*"),DeviceObject->SecurityDescriptor); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("&DeviceLock"),&DeviceObject->DeviceLock); OUTPUT(WSTR("%-20s : %04x\n"),WSTR("SectorSize"),DeviceObject->SectorSize); OUTPUT(WSTR("%-20s : %04x\n"),WSTR("Spare1"),DeviceObject->Spare1); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("DeviceObjectExtn*"),DeviceObject->DeviceObjectExtension); OUTPUT(WSTR("%-20s : %08x\n"),WSTR("Reserved*"),DeviceObject->Reserved); } return true; } int device_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { OBJFINDDATA FindData; bShowCommandTitle = true; dwListObjectCounter=0; if(argc==1) argv=NULL; else if(argc==2) { argv[0]=argv[1]; argv[1]=NULL; } else { OUTPUT(WSTR("DEVICE [device-name | pdevice-object]\n")); return 0; // for(int i=1;i < argc;i++) // argv[i-1]=argv[i]; // argv[argc-1]=NULL; } FindFirstObject(NULL,FindData); ListObject(FindData,DEVICE_OBJECT_TYPE,DeviceCommandCallBack,argv); if(dwListObjectCounter) OUTPUT(WSTR("%d Object (s)\n"),dwListObjectCounter); return 0; } //fix to the follow line for support UNC name and pdriver-object, by AllenZhang // bool DriverCommandCallBack(DWORD ObjectHandle,WISP_CHAR**Name) { WISP_CHAR ObjectName[65]; WISP_CHAR DisplayFormat[]=WSTR("%08X %08X %08X %08X %08X %08X %08X %s\n"); bool bFound=false; PDRIVER_OBJECT DriverObject; DWORD dwValue; DriverObject = *(PDRIVER_OBJECT*)&ObjectHandle; if(bShowCommandTitle) { OUTPUT(WSTR("Start Size DrvSect pDrvExt DrvInit DrvStaIO DrvUnld Name\n")); bShowCommandTitle=false; // bShowDebugInfo = 0; } GetObjectName(ObjectHandle,ObjectName); if(Name) { if( USHexStrToNum(Name[0], &dwValue) ) { // if(0 == bShowDebugInfo) // { // OUTPUT(WSTR("Input is(%s), dwDriverObject(%08X)\n"), Name[0], dwValue); // bShowDebugInfo = 1; // } if(dwValue == (DWORD)DriverObject->DriverSection) bFound=true; } else { if(TIMatchWithPattern(Name[0], ObjectName)) { bFound=true; } } if(bFound==false) return true; } dwListObjectCounter++; OUTPUT(DisplayFormat, DriverObject->DriverStart, DriverObject->DriverSize, DriverObject->DriverSection, DriverObject->DriverExtension, DriverObject->DriverInit, DriverObject->DriverStartIo, DriverObject->DriverUnload, ObjectName ); if(bFound) { // add by allenzhang filter the UNC name if( TStrChr(Name[0], WISP_CHAR('*')) || TStrChr(Name[0], WISP_CHAR('?')) ) return true; // add end OUTPUT(WSTR("%-16s : %08x\n"),WSTR("AddDevice"),0); OUTPUT(WSTR("%-16s : %08x\n"),WSTR("DeviceObject*"),DriverObject->DeviceObject); OUTPUT(WSTR("%-16s : %08x\n"),WSTR("Flags"),DriverObject->Flags); if(DriverObject->Flags&DRVO_UNLOAD_INVOKED) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_UNLOAD_INVOKED")); if(DriverObject->Flags&DRVO_LEGACY_DRIVER) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_LEGACY_DRIVER")); if(DriverObject->Flags&DRVO_BUILTIN_DRIVER) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_BUILTIN_DRIVER")); if(DriverObject->Flags&DRVO_REINIT_REGISTERED) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_REINIT_REGISTERED")); if(DriverObject->Flags&DRVO_INITIALIZED) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_INITIALIZED")); if(DriverObject->Flags&DRVO_BOOTREINIT_REGISTERED) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_BOOTREINIT_REGISTERED")); if(DriverObject->Flags&DRVO_LEGACY_RESOURCES) OUTPUT(WSTR("%-16s : %-8s %s\n"),WSTR(""),WSTR(""),WSTR("DRVO_LEGACY_RESOURCES")); OUTPUT(WSTR("%-16s : %s\n"),WSTR("HardwareDatabase"),DriverObject->HardwareDatabase->Buffer); OUTPUT(WSTR("%-16s : %08x\n"),WSTR("FastIoDispatch*"),DriverObject->FastIoDispatch); WISP_CHAR* MJ_NAME[]= { WSTR("IRP_MJ_CREATE"), WSTR("IRP_MJ_CREATE_NAMED_PIPE"), WSTR("IRP_MJ_CLOSE"), WSTR("IRP_MJ_READ"), WSTR("IRP_MJ_WRITE"), WSTR("IRP_MJ_QUERY_INFORMATION"), WSTR("IRP_MJ_SET_INFORMATION"), WSTR("IRP_MJ_QUERY_EA"), WSTR("IRP_MJ_SET_EA"), WSTR("IRP_MJ_FLUSH_BUFFERS"), WSTR("IRP_MJ_QUERY_VOLUME_INFORMATION"), WSTR("IRP_MJ_SET_VOLUME_INFORMATION"), WSTR("IRP_MJ_DIRECTORY_CONTROL"), WSTR("IRP_MJ_FILE_SYSTEM_CONTROL"), WSTR("IRP_MJ_DEVICE_CONTROL"), WSTR("IRP_MJ_INTERNAL_DEVICE_CONTROL"), WSTR("IRP_MJ_SHUTDOWN"), WSTR("IRP_MJ_LOCK_CONTROL"), WSTR("IRP_MJ_CLEANUP"), WSTR("IRP_MJ_CREATE_MAILSLOT"), WSTR("IRP_MJ_QUERY_SECURITY"), WSTR("IRP_MJ_SET_SECURITY"), WSTR("IRP_MJ_POWER"), WSTR("IRP_MJ_SYSTEM_CONTROL"), WSTR("IRP_MJ_DEVICE_CHANGE"), WSTR("IRP_MJ_QUERY_QUOTA"), WSTR("IRP_MJ_SET_QUOTA"), WSTR("IRP_MJ_PNP"), WSTR("IRP_MJ_PNP_POWER"), NULL, }; DWORD tmpvar,tmp1var; tmp1var=*(DWORD*) &DriverObject->DriverStart; for(int i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION;i++) { tmpvar=*(DWORD*) &DriverObject->MajorFunction[i]; if(tmpvar>tmp1var && tmpvarDriverSize) OUTPUT(WSTR("%-35s at 8:%08x\n"),MJ_NAME[i],tmpvar); else { if(tmpvar!=(DWORD)gDefaultPDriverDispatch) { OUTPUT(WSTR("%%-35s at 8:%08x\n"),MJ_NAME[i],tmpvar); } } } } return true; } int driver_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { OBJFINDDATA FindData; bShowCommandTitle=true; dwListObjectCounter=0; if(argc==1) argv=NULL; else if(argc==2) { argv[0]=argv[1]; argv[1]=NULL; } else { OUTPUT(WSTR("DRIVER [driver-name | pdriver-object] Object\n")); return 0; } FindFirstObject(NULL,FindData); ListObject(FindData,DRIVER_OBJECT_TYPE,DriverCommandCallBack,argv); if(dwListObjectCounter) OUTPUT(WSTR("%d Object (s)\n"),dwListObjectCounter); return 0; } int apc_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { OUTPUT(WSTR("Function not implemented\n")); return 0; } bool KmutexCommandCallBack(DWORD ObjectHandle,WISP_CHAR**Name) { WISP_CHAR ObjectName[65]; WISP_CHAR DisplayFormat[]=WSTR("%08X %s %8x(%3x) %s %x %s\n"); PKMUTANT KMutantObject; if(bShowCommandTitle) { OUTPUT(WSTR("Address State Own.KTEB(PIT) Aban APC Name\n")); bShowCommandTitle=false; } KMutantObject = *(PKMUTANT*)&ObjectHandle; dwListObjectCounter++; GetObjectName(ObjectHandle,ObjectName); OUTPUT(DisplayFormat,ObjectHandle,KMutantObject->Header.SignalState?WSTR("Signalled"):WSTR("Clear "),KMutantObject->OwnerThread,0,KMutantObject->Abandoned?WSTR("Y "):WSTR("N "),KMutantObject->ApcDisable,ObjectName); return true; } int kmutex_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { OBJFINDDATA FindData; bShowCommandTitle = true; dwListObjectCounter=0; if(argc==1) argv=NULL; else { for(int i=1;i < argc;i++) argv[i-1]=argv[i]; argv[argc-1]=NULL; } FindFirstObject(NULL,FindData); ListObject(FindData,MUTANT_OBJECT_TYPE,KmutexCommandCallBack,argv); OUTPUT(WSTR("%d Object (s)\n"),dwListObjectCounter); return 0; } bool KeventCommandCallBack(DWORD ObjectHandle,WISP_CHAR**Name) { WISP_CHAR ObjectName[65]; WISP_CHAR DisplayFormat[]=WSTR("%08X %s %s %s\n"); WISP_CHAR *EventType[] ={ WSTR("Notification"),WSTR("Kernel "),WSTR("Unknown "),}; PKEVENT KEventObject; BYTE EventTypeId; if(bShowCommandTitle) { OUTPUT(WSTR("Address Type State Name\n")); bShowCommandTitle=false; } KEventObject = *(PKEVENT*)&ObjectHandle; dwListObjectCounter++; GetObjectName(ObjectHandle,ObjectName); EventTypeId = ReadByteDefaultValue(*(DWORD**)&ObjectHandle,0xff); if(EventTypeId != ReadByteDefaultValue(*(DWORD**)&ObjectHandle,0xf0)) EventTypeId=2; if(EventTypeId>2) EventTypeId=2; OUTPUT(DisplayFormat,ObjectHandle,EventType[EventTypeId],KEventObject->Header.SignalState?WSTR("Signalled"):WSTR("Clear "),ObjectName); return true; } int kevent_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { OBJFINDDATA FindData; bShowCommandTitle = true; dwListObjectCounter=0; if(argc==1) argv=NULL; else { for(int i=1;i < argc;i++) argv[i-1]=argv[i]; argv[argc-1]=NULL; } FindFirstObject(NULL,FindData); ListObject(FindData,EVENT_OBJECT_TYPE,KeventCommandCallBack,argv); OUTPUT(WSTR("%d Object (s)"),dwListObjectCounter); return 0; } bool KsemCommandCallBack(DWORD ObjectHandle,WISP_CHAR**Name) { WISP_CHAR ObjectName[65]; WISP_CHAR DisplayFormat[]=WSTR("%08X %08X %s %s\n"); PKSEMAPHORE KSemaphoreObject; if(bShowCommandTitle) { OUTPUT(WSTR("Address Limit State Name\n")); bShowCommandTitle=false; } KSemaphoreObject = *(PKSEMAPHORE*)&ObjectHandle; dwListObjectCounter++; GetObjectName(ObjectHandle,ObjectName); OUTPUT(DisplayFormat,ObjectHandle,KSemaphoreObject->Limit,KSemaphoreObject->Header.SignalState?WSTR("Signalled"):WSTR("Clear "),ObjectName); return true; } int ksem_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { OBJFINDDATA FindData; bShowCommandTitle = true; dwListObjectCounter=0; if(argc==1) argv=NULL; else { for(int i=1;i < argc;i++) argv[i-1]=argv[i]; argv[argc-1]=NULL; } FindFirstObject(NULL,FindData); ListObject(FindData,SEMAPHORE_OBJECT_TYPE,KsemCommandCallBack,argv); OUTPUT(WSTR("%d Object (s)\n"),dwListObjectCounter); return 0; } ================================================ FILE: Project/Syser/Source/KernelObjectCmd.h ================================================ #ifndef __SYSTEMKERNELOBJECT__H__ #define __SYSTEMKERNELOBJECT__H__ #endif //__SYSTEMKERNELOBJECT__H__ ================================================ FILE: Project/Syser/Source/KeyMappingPage.cpp ================================================ #include "StdAfx.h" #ifdef CODE_OS_NT_DRV #include "Syser.h" #endif //#include "SyserOptionApp.h" #include "KeyMappingPage.h" #include "SyserResource.h" //using namespace std; BYTE gExternTable[]= { 0xff, //scancode 00 0x00 յûжӦļ 0xff, //scancode 01 0x01 'Esc' 0xff, //scancode 02 0x02 '1' 0xff, //scancode 03 0x03 '2' 0xff, //scancode 04 0x04 '3' 0xff, //scancode 05 0x05 '4' 0xff, //scancode 06 0x06 '5' 0xff, //scancode 07 0x07 '6' 0xff, //scancode 08 0x08 '7' 0xff, //scancode 09 0x09 '8' 0xff, //scancode 10 0x0a '9' 0xff, //scancode 11 0x0b '0' 0xff, //scancode 12 0x0c '-_' 0xff, //scancode 13 0x0d '=+' 0xff, //scancode 14 0x0e 'Back Space' 0xff, //scancode 15 0x0f 'Tab' 0xff, //scancode 16 0x10 'Q' 0xff, //scancode 17 0x11 'W' 0xff, //scancode 18 0x12 'E' 0xff, //scancode 19 0x13 'R' 0xff, //scancode 20 0x14 'T' 0xff, //scancode 21 0x15 'Y' 0xff, //scancode 22 0x16 'U' 0xff, //scancode 23 0x17 'I' 0xff, //scancode 24 0x18 'O' 0xff, //scancode 25 0x19 'P' 0xff, //scancode 26 0x1a '[{' 0xff, //scancode 27 0x1b 'P' WISP_VK_RETURN, //scancode 28 0x1c '}]' WISP_VK_RCONTROL, //scancode 29 0x1d 'Left Ctrl' 0xff, //scancode 30 0x1E 'A' 0xff, //scancode 31 0x1F 'S' 0xff, //scancode 32 0x20 'D' 0xff, //scancode 33 0x21 'F' 0xff, //scancode 34 0x22 'G' 0xff, //scancode 35 0x23 'H' 0xff, //scancode 36 0x24 'J' 0xff, //scancode 37 0x25 'K' 0xff, //scancode 38 0x26 'L' 0xff, //scancode 39 0x27 ';:' 0xff, //scancode 40 0x28 ''"' 0xff, //scancode 41 0x29 '' 0xff, //scancode 42 0x2a 'Left Shift' 0xff, //scancode 43 0x2b '\|' 0xff, //scancode 44 0x2c 'Z' 0xff, //scancode 45 0x2d 'X' 0xff, //scancode 46 0x2E 'C' 0xff, //scancode 47 0x2F 'V' 0xff, //scancode 48 0x30 'B' 0xff, //scancode 49 0x31 'N' 0xff, //scancode 50 0x32 'M' 0xff, //scancode 51 0x33 ',<' 0xff, //scancode 52 0x34 ',>' WISP_VK_OEM_2, //scancode 53 0x35 '/?' 0xff, //scancode 54 0x36 'Right Shift' WISP_VK_PRINT, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA WISP_VK_RALT, //scancode 56 0x38 'Left Alt' 0xff, //scancode 57 0x39 'Blank Space' 0xff, //scancode 58 0x3a 'Caps Lock' 0xff, //scancode 59 0x3b 'F1' 0xff, //scancode 60 0x3c 'F2' 0xff, //scancode 61 0x3d 'F3' 0xff, //scancode 62 0x3e 'F4' 0xff, //scancode 63 0x3f 'F5' 0xff, //scancode 64 0x40 'F6' 0xff, //scancode 65 0x41 'F7' 0xff, //scancode 66 0x42 'F8' 0xff, //scancode 67 0x43 'F9' 0xff, //scancode 68 0x44 'F10' 0xff, //scancode 69 0x45 'Num Lock' 0xff, //scancode 70 0x46 'Scroll Lock' WISP_VK_HOME, //scancode 71 0x47 'Home' WISP_VK_UP, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_PAGE_UP, //scancode 73 0x49 'Page Up'С 0xff, //scancode 74 0x4a '-'С WISP_VK_LEFT, //scancode 75 0x4b 'Left Arrow Key'С . 0xff, //scancode 76 0x4c '5' С WISP_VK_RIGHT, //scancode 77 0x4d 'Right Arrow Key' С 0xff, //scancode 78 0x4e '+' WISP_VK_END, //scancode 79 0x4f 'End' С WISP_VK_DOWN, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_PAGE_DOWN, //scancode 81 0x51 'Page Dn'С WISP_VK_INSERT, //scancode 82 0x52 'Ins'С WISP_VK_DELETE, //scancode 83 0x53 'Del'С 0xff, //scancode 84 0x54 0xff, //scancode 85 0x55 0xff, //scancode 86 0x56 0xff, //scancode 87 0x57 'F11' 0xff, //scancode 88 0x58 'F12' 0xff, //scancode 89 0x59 '' 0xff, //scancode 90 0x5a '' WISP_VK_LWIN, //scancode 91 0x5b 'Left Windows' WISP_VK_RWIN, //scancode 92 0x5c 'Right Windows' WISP_VK_APPS, //scancode 93 0x5d 'Apps' WISP_VK_0X5E, //scancode 94 0x5e 'Power' WISP_VK_SLEEP, //scancode 95 0x5f 'Sleep' 0xff, //scancode 96 0x60 0xff, //scancode 97 0x61 0xff, //scancode 98 0x62 0xff, //scancode 99 0x63 'Wake Up' }; //E0 2A E0 37 'Print Screen' //E0 B7 E0 AA 'Print Screen' ̧ //E1 1D 45 E1 9D C5'Pause Break' ̧ʱûɨ BYTE gNormalTable[]= { 0xff, //scancode 00 0x00 յûжӦļ WISP_VK_ESCAPE, //scancode 01 0x01 'Esc' WISP_VK_1, //scancode 02 0x02 '1' WISP_VK_2, //scancode 03 0x03 '2' WISP_VK_3, //scancode 04 0x04 '3' WISP_VK_4, //scancode 05 0x05 '4' WISP_VK_5, //scancode 06 0x06 '5' WISP_VK_6, //scancode 07 0x07 '6' WISP_VK_7, //scancode 08 0x08 '7' WISP_VK_8, //scancode 09 0x09 '8' WISP_VK_9, //scancode 10 0x0a '9' WISP_VK_0, //scancode 11 0x0b '0' WISP_VK_OEM_MINUS, //scancode 12 0x0c '-_' WISP_VK_OEM_PLUS, //scancode 13 0x0d '=+' WISP_VK_BACK, //scancode 14 0x0e 'Back Space' WISP_VK_TAB, //scancode 15 0x0f 'Tab' WISP_VK_Q, //scancode 16 0x10 'Q' WISP_VK_W, //scancode 17 0x11 'W' WISP_VK_E, //scancode 18 0x12 'E' WISP_VK_R, //scancode 19 0x13 'R' WISP_VK_T, //scancode 20 0x14 'T' WISP_VK_Y, //scancode 21 0x15 'Y' WISP_VK_U, //scancode 22 0x16 'U' WISP_VK_I, //scancode 23 0x17 'I' WISP_VK_O, //scancode 24 0x18 'O' WISP_VK_P, //scancode 25 0x19 'P' WISP_VK_LSQUARE_BRACKET, //scancode 26 0x1a '[{' WISP_VK_RSQUARE_BRACKET, //scancode 27 0x1b 'P' WISP_VK_RETURN, //scancode 28 0x1c 'Enter' WISP_VK_CONTROL, //scancode 29 0x1d 'Left Ctrl' WISP_VK_A, //scancode 30 0x1E 'A' WISP_VK_S, //scancode 31 0x1F 'S' WISP_VK_D, //scancode 32 0x20 'D' WISP_VK_F, //scancode 33 0x21 'F' WISP_VK_G, //scancode 34 0x22 'G' WISP_VK_H, //scancode 35 0x23 'H' WISP_VK_J, //scancode 36 0x24 'J' WISP_VK_K, //scancode 37 0x25 'K' WISP_VK_L, //scancode 38 0x26 'L' WISP_VK_SEMI, //scancode 39 0x27 ';:' WISP_VK_QUOT, //scancode 40 0x28 ''"' 0xff, //scancode 41 0x29 '' WISP_VK_SHIFT, //scancode 42 0x2a 'Left Shift' WISP_VK_OEM_5, //scancode 43 0x2b '\|' WISP_VK_Z, //scancode 44 0x2c 'Z' WISP_VK_X, //scancode 45 0x2d 'X' WISP_VK_C, //scancode 46 0x2E 'C' WISP_VK_V, //scancode 47 0x2F 'V' WISP_VK_B, //scancode 48 0x30 'B' WISP_VK_N, //scancode 49 0x31 'N' WISP_VK_M, //scancode 50 0x32 'M' WISP_VK_OEM_COMMA, //scancode 51 0x33 ',<' WISP_VK_OEM_PERIOD, //scancode 52 0x34 ',>' WISP_VK_OEM_2, //scancode 53 0x35 '/?' WISP_VK_SHIFT, //scancode 54 0x36 'Right Shift' WISP_VK_MULTIPLY, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA WISP_VK_ALT, //scancode 56 0x38 'Left Alt' WISP_VK_SPACE, //scancode 57 0x39 'Blank Space' WISP_VK_CAPITAL, //scancode 58 0x3a 'Caps Lock' WISP_VK_F1, //scancode 59 0x3b 'F1' WISP_VK_F2, //scancode 60 0x3c 'F2' WISP_VK_F3, //scancode 61 0x3d 'F3' WISP_VK_F4, //scancode 62 0x3e 'F4' WISP_VK_F5, //scancode 63 0x3f 'F5' WISP_VK_F6, //scancode 64 0x40 'F6' WISP_VK_F7, //scancode 65 0x41 'F7' WISP_VK_F8, //scancode 66 0x42 'F8' WISP_VK_F9, //scancode 67 0x43 'F9' WISP_VK_F10, //scancode 68 0x44 'F10' WISP_VK_NUMLOCK, //scancode 69 0x45 'Num Lock' Pause Break 0xE1 0x1D 0x45 0xE1 0x9D 0xC5 WISP_VK_SCROLL, //scancode 70 0x46 'Scroll Lock' WISP_VK_NUMPAD7, //scancode 71 0x47 'Home' WISP_VK_NUMPAD8, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_NUMPAD9, //scancode 73 0x49 'Page Up'С WISP_VK_SUBTRACT, //scancode 74 0x4a '-'С WISP_VK_NUMPAD4, //scancode 75 0x4b 'Left Arrow Key'С . WISP_VK_NUMPAD5, //scancode 76 0x4c '5' С WISP_VK_NUMPAD6, //scancode 77 0x4d 'Right Arrow Key' С WISP_VK_ADD, //scancode 78 0x4e '+' WISP_VK_NUMPAD1, //scancode 79 0x4f 'End' С WISP_VK_NUMPAD2, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_NUMPAD3, //scancode 81 0x51 'Page Dn'С WISP_VK_NUMPAD0, //scancode 82 0x52 'Ins'С WISP_VK_DECIMAL, //scancode 83 0x53 'Del'С 0xff, //scancode 84 0x54 0xff, //scancode 85 0x55 0xff, //scancode 86 0x56 WISP_VK_F11, //scancode 87 0x57 'F11' WISP_VK_F12, //scancode 88 0x58 'F12' 0xff, //scancode 89 0x59 '' 0xff, //scancode 90 0x5a '' 0xff, //scancode 91 0x5b 'Left Windows' 0xff, //scancode 92 0x5c 'Right Windows' 0xff, //scancode 93 0x5d 'Window Apps' 0xff, //scancode 94 0x5e 'Power' 0xff, //scancode 95 0x5f 'Sleep' 0xff, //scancode 96 0x60 WISP_VK_PAUSE, //scancode 97 0x61 0xff, //scancode 98 0x62 0xff, //scancode 99 0x63 'Wake Up' }; typedef struct _KSC_NAME { char* KeyName; BYTE VKCode; }KSC_NAME; KSC_NAME gKeyNameMap[]= { {"", 0xff}, //scancode 00 0x00 յûжӦļ {"Esc", WISP_VK_ESCAPE}, //scancode 01 0x01 'Esc' {"1", WISP_VK_1}, //scancode 02 0x02 '1' {"2", WISP_VK_2}, //scancode 03 0x03 '2' {"3", WISP_VK_3}, //scancode 04 0x04 '3' {"4", WISP_VK_4}, //scancode 05 0x05 '4' {"5", WISP_VK_5}, //scancode 06 0x06 '5' {"6", WISP_VK_6}, //scancode 07 0x07 '6' {"7", WISP_VK_7}, //scancode 08 0x08 '7' {"8", WISP_VK_8}, //scancode 09 0x09 '8' {"9", WISP_VK_9}, //scancode 10 0x0a '9' {"0", WISP_VK_0}, //scancode 11 0x0b '0' {"-", WISP_VK_OEM_MINUS}, //scancode 12 0x0c '-_' {"+", WISP_VK_OEM_PLUS}, //scancode 13 0x0d '=+' {"Backspace",WISP_VK_BACK}, //scancode 14 0x0e 'Back Space' {"Tab", WISP_VK_TAB}, //scancode 15 0x0f 'Tab' {"Q", WISP_VK_Q}, //scancode 16 0x10 'Q' {"W", WISP_VK_W}, //scancode 17 0x11 'W' {"E", WISP_VK_E}, //scancode 18 0x12 'E' {"R", WISP_VK_R}, //scancode 19 0x13 'R' {"T", WISP_VK_T}, //scancode 20 0x14 'T' {"Y", WISP_VK_Y}, //scancode 21 0x15 'Y' {"U", WISP_VK_U}, //scancode 22 0x16 'U' {"I", WISP_VK_I}, //scancode 23 0x17 'I' {"O", WISP_VK_O}, //scancode 24 0x18 'O' {"P", WISP_VK_P}, //scancode 25 0x19 'P' {"[", WISP_VK_LSQUARE_BRACKET}, //scancode 26 0x1a '[{' {"]", WISP_VK_RSQUARE_BRACKET}, //scancode 27 0x1b 'P' {"Enter", WISP_VK_RETURN}, //scancode 28 0x1c 'Enter' {"Ctrl", WISP_VK_CONTROL}, //scancode 29 0x1d 'Left Ctrl' {"A", WISP_VK_A}, //scancode 30 0x1E 'A' {"S", WISP_VK_S}, //scancode 31 0x1F 'S' {"D", WISP_VK_D}, //scancode 32 0x20 'D' {"F", WISP_VK_F}, //scancode 33 0x21 'F' {"G", WISP_VK_G}, //scancode 34 0x22 'G' {"H", WISP_VK_H}, //scancode 35 0x23 'H' {"J", WISP_VK_J}, //scancode 36 0x24 'J' {"K", WISP_VK_K}, //scancode 37 0x25 'K' {"L", WISP_VK_L}, //scancode 38 0x26 'L' {";", WISP_VK_SEMI}, //scancode 39 0x27 ';:' {"'", WISP_VK_QUOT}, //scancode 40 0x28 ''"' {"", 0xff}, //scancode 41 0x29 '' {"Shift", WISP_VK_SHIFT}, //scancode 42 0x2a 'Left Shift' {"\\", WISP_VK_OEM_5}, //scancode 43 0x2b '\|' {"Z", WISP_VK_Z}, //scancode 44 0x2c 'Z' {"X", WISP_VK_X}, //scancode 45 0x2d 'X' {"C", WISP_VK_C}, //scancode 46 0x2E 'C' {"V", WISP_VK_V}, //scancode 47 0x2F 'V' {"B", WISP_VK_B}, //scancode 48 0x30 'B' {"N", WISP_VK_N}, //scancode 49 0x31 'N' {"M", WISP_VK_M}, //scancode 50 0x32 'M' {",", WISP_VK_OEM_COMMA}, //scancode 51 0x33 ',<' {".", WISP_VK_OEM_PERIOD}, //scancode 52 0x34 ',>' {"/", WISP_VK_OEM_2}, //scancode 53 0x35 '/?' {"Shift", WISP_VK_SHIFT}, //scancode 54 0x36 'Right Shift' {"*", WISP_VK_MULTIPLY}, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA {"Alt", WISP_VK_ALT}, //scancode 56 0x38 'Left Alt' {"Space", WISP_VK_SPACE}, //scancode 57 0x39 'Blank Space' {"Caps Lock",WISP_VK_CAPITAL}, //scancode 58 0x3a 'Caps Lock' {"F1", WISP_VK_F1}, //scancode 59 0x3b 'F1' {"F2", WISP_VK_F2}, //scancode 60 0x3c 'F2' {"F3", WISP_VK_F3}, //scancode 61 0x3d 'F3' {"F4", WISP_VK_F4}, //scancode 62 0x3e 'F4' {"F5", WISP_VK_F5}, //scancode 63 0x3f 'F5' {"F6", WISP_VK_F6}, //scancode 64 0x40 'F6' {"F7", WISP_VK_F7}, //scancode 65 0x41 'F7' {"F8", WISP_VK_F8}, //scancode 66 0x42 'F8' {"F9", WISP_VK_F9}, //scancode 67 0x43 'F9' {"F10", WISP_VK_F10}, //scancode 68 0x44 'F10' {"Num Lock", WISP_VK_NUMLOCK}, //scancode 69 0x45 'Num Lock' Pause Break 0xE1 0x1D 0x45 0xE1 0x9D 0xC5 {"", WISP_VK_SCROLL}, //scancode 70 0x46 'Scroll Lock' {"Numeric pad 7", WISP_VK_NUMPAD7}, //scancode 71 0x47 'Home' {"Numeric pad 8", WISP_VK_NUMPAD8}, //scancode 72 0x48 'Up Arrow Key'С . {"Numeric pad 9", WISP_VK_NUMPAD9}, //scancode 73 0x49 'Page Up'С {"", WISP_VK_SUBTRACT}, //scancode 74 0x4a '-'С {"Numeric pad 4", WISP_VK_NUMPAD4}, //scancode 75 0x4b 'Left Arrow Key'С . {"Numeric pad 5", WISP_VK_NUMPAD5}, //scancode 76 0x4c '5' С {"Numeric pad 6", WISP_VK_NUMPAD6}, //scancode 77 0x4d 'Right Arrow Key' С {"", WISP_VK_ADD}, //scancode 78 0x4e '+' {"Numeric pad 1", WISP_VK_NUMPAD1}, //scancode 79 0x4f 'End' С {"Numeric pad 2", WISP_VK_NUMPAD2}, //scancode 80 0x50 'Down Arrow Key'С {"Numeric pad 3", WISP_VK_NUMPAD3}, //scancode 81 0x51 'Page Dn'С {"Numeric pad 0", WISP_VK_NUMPAD0}, //scancode 82 0x52 'Ins'С {"Decimal", WISP_VK_DECIMAL}, //scancode 83 0x53 'Del'С {"", 0xff}, //scancode 84 0x54 {"", 0xff}, //scancode 85 0x55 {"", 0xff}, //scancode 86 0x56 {"F11", WISP_VK_F11}, //scancode 87 0x57 'F11' {"F12", WISP_VK_F12}, //scancode 88 0x58 'F12' {"", 0xff}, //scancode 89 0x59 '' {"", 0xff}, //scancode 90 0x5a '' {"", 0xff}, //scancode 91 0x5b 'Left Windows' {"", 0xff}, //scancode 92 0x5c 'Right Windows' {"", 0xff}, //scancode 93 0x5d 'Window Apps' {"", 0xff}, //scancode 94 0x5e 'Power' {"", 0xff}, //scancode 95 0x5f 'Sleep' {"", 0xff}, //scancode 96 0x60 {"", WISP_VK_PAUSE}, //scancode 97 0x61 {"", 0xff}, //scancode 98 0x62 {"", 0xff}, //scancode 99 0x63 'Wake Up' {"Up", WISP_VK_UP}, //scancode 98 0x62 {"Down", WISP_VK_DOWN}, //scancode 99 0x63 'Wake Up' }; enum CKeyMappingPage::WISP_FORM_ID { CMD_ID_KEYMAP_LIST_COMMANDS = WISP_ID_USER_START, CMD_ID_KEYMAP_STRING_COMMANDS, CMD_ID_KEYMAP_STRING_EXISTING, CMD_ID_KEYMAP_LIST_EXISTING , CMD_ID_KEYMAP_STRING_NEW_KEY, CMD_ID_KEYMAP_GROUP_DESCRIPTION, CMD_ID_KEYMAP_EDIT_NEW_KEY, CMD_ID_STATIC_GROUP, CMD_ID_KEYMAP_ADD, CMD_ID_KEYMAP_REMOVE, CMD_ID_KEYMAP_APPLY, CMD_ID_KEYMAP_RELOAD, CMD_ID_KEYMAP_DEFAULT_BT, CMD_ID_KEYMAP_DEFAULT, }; WISP_FORM_RES_ITEM CKeyMappingPage::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,560,410}, WISP_ID_NULL, #ifdef _SYSER_ WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("SyserDebugger HotKey configure"), "\\SyserIcon\\Plugin.ico", WSTR("Syser HotKey configure !"), #else WISP_WS_NULL, #endif }, { WISP_CTRL_STATIC_GROUP, {10,10,530,330}, CMD_ID_STATIC_GROUP, WISP_WS_NULL, WSTR("Key Mapping"), }, { WISP_CTRL_STATIC_STRING, {20,30,80,16}, CMD_ID_KEYMAP_STRING_COMMANDS, WISP_WS_NULL, WSTR("Commands"), }, { WISP_CTRL_LIST, {20,50,300,280}, CMD_ID_KEYMAP_LIST_COMMANDS, WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE, }, { WISP_CTRL_STATIC_STRING, {340,30,80,16}, CMD_ID_KEYMAP_STRING_EXISTING, WISP_WS_NULL, WSTR("Existing"), }, { WISP_CTRL_LIST, {340,50,80,170}, CMD_ID_KEYMAP_LIST_EXISTING, WISP_WS_THIN_BORDER, }, { WISP_CTRL_EDIT, {340,310,80,20}, CMD_ID_KEYMAP_EDIT_NEW_KEY, WISP_WS_THIN_BORDER, }, { WISP_CTRL_STATIC_GROUP, {340,225,190,70}, CMD_ID_KEYMAP_GROUP_DESCRIPTION, WISP_WS_NULL, WSTR("Description"), }, { WISP_CTRL_STATIC_STRING, {340,295,100,16}, CMD_ID_KEYMAP_STRING_NEW_KEY, WISP_WS_NULL, WSTR("Press New Key:"), }, { WISP_CTRL_BUTTON, {430,310,100,20}, CMD_ID_KEYMAP_DEFAULT_BT, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Default"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,50,100,20}, CMD_ID_KEYMAP_ADD, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Assign"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,80,100,20}, CMD_ID_KEYMAP_REMOVE, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Remove"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,350,100,20}, CMD_ID_KEYMAP_APPLY, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Save"), NULL, NULL }, { WISP_CTRL_BUTTON, {10,350,100,20}, CMD_ID_KEYMAP_RELOAD, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Reload"), NULL, NULL }, { WISP_CTRL_BUTTON, {120,350,100,20}, CMD_ID_KEYMAP_DEFAULT, WISP_BS_NORMAL, WSTR("Default"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CKeyMappingPage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnResize) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CKeyMappingPage) WISP_MSG_CMD_MAP(CMD_ID_KEYMAP_LIST_COMMANDS,OnFileListCommand) WISP_MSG_CMD_MAP(CMD_ID_KEYMAP_EDIT_NEW_KEY,OnNewKeyEdit) WISP_MSG_CMD_MAP(CMD_ID_KEYMAP_LIST_EXISTING,OnExistKeyList) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CKeyMappingPage) WISP_MSG_EVENT_MAP(CMD_ID_KEYMAP_ADD,OnButtonAdd) WISP_MSG_EVENT_MAP(CMD_ID_KEYMAP_REMOVE,OnButtonRemove) WISP_MSG_EVENT_MAP(CMD_ID_KEYMAP_APPLY,OnButtonSave) WISP_MSG_EVENT_MAP(CMD_ID_KEYMAP_RELOAD,OnButtonReload) WISP_MSG_EVENT_MAP(CMD_ID_KEYMAP_DEFAULT,OnButtonDefault) WISP_MSG_EVENT_MAP_END CKeyMappingPage::CKeyMappingPage() { m_pFormRes = m_FormRes; #ifndef CODE_OS_NT_DRV GetSystemDirectory(m_HotKeyFile,MAX_FN_LEN); TStrCat(m_HotKeyFile,"\\drivers\\SyserHotKey.cfg"); GetWindowsDirectoryW(m_szSystemRootDir,MAX_FN_LEN); m_PreviousKeyType=0; #endif } bool CKeyMappingPage::OnFormCreate(IN WISP_MSG*pMsg) { m_pGroup = (CWispStaticGroup*) GetFormItem(CMD_ID_STATIC_GROUP); m_pGroupDescription = (CWispStaticGroup*) GetFormItem(CMD_ID_KEYMAP_GROUP_DESCRIPTION); m_pCommandsList = (CWispList*) GetFormItem(CMD_ID_KEYMAP_LIST_COMMANDS); m_pExistList = (CWispList*) GetFormItem(CMD_ID_KEYMAP_LIST_EXISTING); m_ExistStr=(CWispStaticStr*)GetFormItem(CMD_ID_KEYMAP_STRING_EXISTING); m_CommandStr=(CWispStaticStr*)GetFormItem(CMD_ID_KEYMAP_STRING_COMMANDS); m_NewKeyStr=(CWispStaticStr*)GetFormItem(CMD_ID_KEYMAP_STRING_NEW_KEY); m_NewKeyEdit=(CWispEdit*)GetFormItem(CMD_ID_KEYMAP_EDIT_NEW_KEY); m_pSaveBT = (CWispButton*) GetFormItem(CMD_ID_KEYMAP_APPLY); m_pDefaultBT = (CWispButton*) GetFormItem(CMD_ID_KEYMAP_DEFAULT); m_pReloadBT = (CWispButton*) GetFormItem(CMD_ID_KEYMAP_RELOAD); m_pAddBT = (CWispButton*) GetFormItem(CMD_ID_KEYMAP_ADD); m_pRemoveBT = (CWispButton*) GetFormItem(CMD_ID_KEYMAP_REMOVE); m_pDefaultSignBT = (CWispButton*) GetFormItem(CMD_ID_KEYMAP_DEFAULT_BT); m_pExistList->InsertColumn(NULL,0,WISP_WLCS_NORMAL); m_pCommandsList->m_Style|=WISP_WLS_VERT_LINE; m_pCommandsList->InsertColumn(NULL,200,WISP_WLCS_NORMAL); m_pCommandsList->InsertColumn(NULL,90,WISP_WLCS_NORMAL); LoadHotKeyConfigFile(); return true; } bool CKeyMappingPage::OnResize(IN WISP_MSG*pMsg) { #ifdef _SYSER_ return true; #endif m_pGroup->Resize(m_ClientRect.cx-20,m_ClientRect.cy-50); m_pCommandsList->Resize(m_pGroup->m_WindowRect.cx-230,m_pGroup->m_WindowRect.cy-50); m_pExistList->Resize(m_pExistList->m_WindowRect.cx ,m_pGroup->m_WindowRect.cy-160); //m_pExistList->MoveToWindow(m_pCommandsList->m_ScrWindowRect.x+ m_pCommandsList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+50); m_pExistList->MoveToWindow(m_pCommandsList->m_ScrWindowRect.x - m_ScrWindowRect.x + m_pCommandsList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+50); m_ExistStr->MoveToWindow(m_pCommandsList->m_ScrWindowRect.x+ m_pCommandsList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+30); m_NewKeyStr->MoveToWindow(m_pCommandsList->m_ScrWindowRect.x+ m_pCommandsList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+m_pGroup->m_WindowRect.cy - 36); m_NewKeyEdit->MoveToWindow(m_pCommandsList->m_ScrWindowRect.x+ m_pCommandsList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+m_pGroup->m_WindowRect.cy - 16); m_pGroupDescription->MoveToWindow(m_pCommandsList->m_ScrWindowRect.x+ m_pCommandsList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+m_pGroup->m_WindowRect.cy - 106); m_pRemoveBT->MoveToWindow(m_pExistList->m_ScrWindowRect.x + m_pExistList->m_WindowRect.cx+10,m_pRemoveBT->m_ScrWindowRect.y - m_ScrWindowRect.y); m_pDefaultSignBT->MoveToWindow(m_pExistList->m_ScrWindowRect.x + m_pExistList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+m_pGroup->m_WindowRect.cy - 16); m_pRemoveBT->MoveToWindow(m_pExistList->m_ScrWindowRect.x + m_pExistList->m_WindowRect.cx+10,m_pRemoveBT->m_ScrWindowRect.y - m_ScrWindowRect.y); m_pAddBT->MoveToWindow(m_pExistList->m_ScrWindowRect.x +m_pExistList->m_WindowRect.cx+10,m_pGroup->m_WindowRect.y+50); m_pReloadBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x-m_ScrWindowRect.x,m_pGroup->m_ScrWindowRect.y-m_ScrWindowRect.y+m_pGroup->m_WindowRect.cy+10); m_pDefaultBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x-m_ScrWindowRect.x+m_pReloadBT->m_WindowRect.cx+10,m_pGroup->m_ScrWindowRect.y-m_ScrWindowRect.y+m_pGroup->m_WindowRect.cy+10); m_pSaveBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x + m_pGroup->m_ScrWindowRect.cx - m_pSaveBT->m_WindowRect.cx - m_ScrWindowRect.x,m_pReloadBT->m_ScrWindowRect.y-m_ScrWindowRect.y); return true; } bool CKeyMappingPage::OnExistKeyList(IN WISP_MSG*pMsg) { switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_SELECTED: m_pRemoveBT->EnableWindow(true); break; } return true; } WCHAR* CKeyMappingPage::GetHotKeyName(DWORD dwFuncKey,DWORD dwSecondKey,WCHAR* Buffer) { int i; Buffer[0]=0; if(dwSecondKey==0) { for(i=0;iCommand.CmdMsg) { case WISP_CMD_ITEM_SELECTED: hItem = m_pCommandsList->GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) { m_pAddBT->EnableWindow(false); m_NewKeyEdit->SetWindowText(WSTR("")); dwHotKeyCmdID=(DWORD)m_pCommandsList->GetItemData(hItem,1); m_pExistList->ClearChildItem(); FindIT = m_CmdHotKeyMap.Find(dwHotKeyCmdID); if(FindIT!=m_CmdHotKeyMap.End()) { pList = &*FindIT; BeginIT=pList->Begin(); EndIT=pList->End(); for(;BeginIT!=EndIT;BeginIT++) { dwFuncKey=BeginIT->FuncKeyCode; dwSecondCode=BeginIT->SecondKeyCode; GetHotKeyName(dwFuncKey,dwSecondCode,Buf); Num=dwSecondCode; Num<<=32; Num|=dwFuncKey; hItem = m_pExistList->InsertItem(Buf); m_pExistList->SetItemData(hItem,0,Num); } } } m_pRemoveBT->EnableWindow(false); break; case WISP_CMD_ITEM_UNSELECTED: m_pRemoveBT->EnableWindow(false); break; case WISP_CMD_ITEM_CHANGED: m_pSaveBT->EnableWindow(TRUE); m_pReloadBT->EnableWindow(TRUE); break; } return true; } bool CKeyMappingPage::OnNewKeyEdit(IN WISP_MSG*pMsg) { int i; WCHAR Name[50]={0}; bool bFind=false; bool bCtrl=false; bool bAtl=false; bool bShift=false; DWORD nKey,nPrevKey; switch(pMsg->Command.CmdMsg) { case WISP_CMD_EN_INPUT_KEY_DOWN: { nKey=pMsg->Command.Param1; m_PreviousKeyType=nKey; bCtrl=(nKey & WISP_MOD_CTRL)?true:false; bAtl=(nKey & WISP_MOD_ALT)?true:false; bShift=(nKey & WISP_MOD_SHIFT)?true:false; nKey=nKey & (~(WISP_MOD_CTRL|WISP_MOD_ALT|WISP_MOD_SHIFT)); for(i=0;iSetWindowText(Name); bFind=true; break; } } if(!bFind) m_NewKeyEdit->SetWindowText(Name); } return false; case WISP_CMD_EN_INPUT_KEY_UP: nKey=pMsg->Command.Param1; nKey=nKey & (~(WISP_MOD_CTRL|WISP_MOD_ALT|WISP_MOD_SHIFT)); nPrevKey=m_PreviousKeyType; nPrevKey=nPrevKey & (~(WISP_MOD_CTRL|WISP_MOD_ALT|WISP_MOD_SHIFT)); if((nKey==WISP_VK_SHIFT || nKey==WISP_VK_CONTROL || nKey==WISP_VK_ALT) && (nPrevKey==WISP_VK_SHIFT || nPrevKey==WISP_VK_CONTROL || nPrevKey==WISP_VK_ALT)) { m_NewKeyEdit->SetWindowText(Name); return false; } m_pAddBT->EnableWindow(true); m_pDefaultSignBT->EnableWindow(true); return false; } return true; } bool CKeyMappingPage::IsListItem(PCWSTR szName) { HANDLE hItem = m_pCommandsList->GetFirstItem(); while(hItem) { if(m_pCommandsList->GetItemText(hItem)==szName) return true; hItem = m_pCommandsList->GetNextItem(hItem); } return false; } KEY_PAIR CKeyMappingPage::GetHotKey() { KEY_PAIR Key; Key.SecondKeyCode=0; Key.FuncKeyCode=m_PreviousKeyType; if(m_PreviousKeyType & (WISP_MOD_CTRL|WISP_MOD_ALT|WISP_MOD_SHIFT)) { Key.FuncKeyCode=m_PreviousKeyType & (WISP_MOD_CTRL|WISP_MOD_ALT|WISP_MOD_SHIFT); Key.SecondKeyCode = m_PreviousKeyType & (~(WISP_MOD_CTRL|WISP_MOD_ALT|WISP_MOD_SHIFT)); } return Key; } bool CKeyMappingPage::OnButtonAdd(IN WISP_MSG*pMsg) { //MsgBox(WSTR("Do you want to add this and delete the existing assignment?"),WSTR("Key assignment already exists"),WISP_MB_YESNO); HOTKEYLIST::IT FindIT; HOTKEYLIST* pList; HANDLE hItem; KEY_PAIR Key;; WCHAR Buf[50]; pList=GetCurrentHotKeyList(); if(pList==NULL) return true; hItem = m_pCommandsList->GetNextListItem(NULL,WISP_WLIS_SELECTED); DWORD Num=(DWORD)m_pCommandsList->GetItemData(hItem,1); if(Num==0)//Ǽȼֻ֧һ { pList->Clear(); m_pExistList->ClearChildItem(); } Key = GetHotKey(); FindIT = pList->Find(Key); if(FindIT==pList->End()) { pList->Append(Key); } DWORD nKey=Key.FuncKeyCode; GetHotKeyName(nKey,Key.SecondKeyCode,Buf); hItem = m_pExistList->InsertItem(Buf); m_pExistList->SetItemData(hItem,0,*(NUM_PTR*)&Key); m_NewKeyEdit->SetWindowText(WSTR("")); m_pSaveBT->EnableWindow(TRUE); m_pReloadBT->EnableWindow(TRUE); m_pAddBT->EnableWindow(false); return true; } HOTKEYLIST* CKeyMappingPage::GetCurrentHotKeyList() { HANDLE hItem = m_pCommandsList->GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return NULL; DWORD Num=(DWORD)m_pCommandsList->GetItemData(hItem,1); CMDHOTKEYMAP::IT FindIT=m_CmdHotKeyMap.Find(Num); if(FindIT!=m_CmdHotKeyMap.End()) { return &*FindIT; } return NULL; } bool CKeyMappingPage::OnButtonRemove(IN WISP_MSG*pMsg) { HANDLE hItem = m_pExistList->GetNextListItem(NULL,WISP_WLIS_SELECTED); HOTKEYLIST* pList; HOTKEYLIST::IT FindIT; NUM_PTR Num; if(hItem) { pList=GetCurrentHotKeyList(); if(pList==NULL) return true; Num = m_pExistList->GetItemData(hItem,0); FindIT = pList->Find( *(KEY_PAIR*)&Num); if(FindIT!=pList->End()) { pList->Remove(FindIT); } m_pExistList->RemoveItem(hItem); m_pExistList->Update(); m_pRemoveBT->EnableWindow(false); m_pReloadBT->EnableWindow(TRUE); m_pSaveBT->EnableWindow(TRUE); } return true; } bool CKeyMappingPage::OnButtonSave(IN WISP_MSG*pMsg) { if(SaveHotKeyConfigFile()==false) return true; m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } bool CKeyMappingPage::OnButtonReload(IN WISP_MSG*pMsg) { if(LoadHotKeyConfigFile()==false) return true; m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } bool CKeyMappingPage::OnButtonDefault(IN WISP_MSG*pMsg) { LoadDefaultAll(); m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } void CKeyMappingPage::LoadDefaultAll() { CLocalFileIO File; File.DeleteFile(m_HotKeyFile); CMDHOTKEYMAP::IT MapIT; for(MapIT=m_CmdHotKeyMap.Begin();MapIT!=m_CmdHotKeyMap.End();MapIT++) { MapIT->Clear(); } m_CmdHotKeyMap.Clear(); LoadHotKeyConfigFile(); SaveHotKeyConfigFile(); m_pExistList->ClearChildItem(); } bool CKeyMappingPage::LoadHotKeyConfigFileByMap(CMDHOTKEYMAP *pCmdHotKeyMap) { if(!pCmdHotKeyMap) return false; KEY_PAIR KeyPair; int nCount=0; HOTKEYLIST* pList; CMDHOTKEYMAP::IT MapIT; WCHAR HotKeyName[50]; HOTKEYLIST::IT FindIT; HANDLE hItem; m_CmdHotKeyMap.Clear(); for(MapIT=pCmdHotKeyMap->Begin();MapIT!=pCmdHotKeyMap->End();MapIT++) { m_CmdHotKeyMap.InsertUnique(MapIT.Key(),*MapIT); } m_pCommandsList->ClearChildItem(); m_ItemHotkey[0] = m_pCommandsList->InsertItem(WSTR("Globals Hot key configuration")); m_pCommandsList->SetItemData(m_ItemHotkey[0],1,0-1); m_ItemHotkey[1] = m_pCommandsList->InsertItem(WSTR("Shortcut key for code windows"));; m_pCommandsList->SetItemData(m_ItemHotkey[1],1,0-1); m_ItemHotkey[2] = m_pCommandsList->InsertItem(WSTR("Shortcut key for data windows")); m_pCommandsList->SetItemData(m_ItemHotkey[2],1,0-1); m_ItemHotkey[3] =m_pCommandsList->InsertItem(WSTR("Shortcut key for stack windows")); m_pCommandsList->SetItemData(m_ItemHotkey[3],1,0-1); m_ItemHotkey[4]=m_pCommandsList->InsertItem(WSTR("Shortcut key for register windows"));; m_pCommandsList->SetItemData(m_ItemHotkey[4],1,0-1); for(int i = 0;i < 5;i++) { for(int j=0;jInsertItemA(gKeyConfig[i].pHotKeyInfo[j].KeyName,m_ItemHotkey[i]); KeyPair.FuncKeyCode=gKeyConfig[i].pHotKeyInfo[j].FuncKeyCode; KeyPair.SecondKeyCode=gKeyConfig[i].pHotKeyInfo[j].SecondKeyCode; if(MapIT!=m_CmdHotKeyMap.End()) { if(MapIT->Count()) { KeyPair=*MapIT->Begin(); } } else { MapIT = m_CmdHotKeyMap.InsertUnique(gKeyConfig[i].pHotKeyInfo[j].CommandID,HOTKEYLIST()); pList=&*MapIT; pList->Append(KeyPair); } m_pCommandsList->SetItemData(hItem,1,gKeyConfig[i].pHotKeyInfo[j].CommandID); //if(KeyPair.FuncKeyCode) m_pCommandsList->SetItemText(hItem,1,GetHotKeyName(KeyPair.FuncKeyCode,KeyPair.SecondKeyCode,HotKeyName)); } } return true; } bool CKeyMappingPage::LoadHotKeyConfigFile() { DWORD* Buffer,*pOrgBuffer; ULSIZE nBufLen=0x1000; int nRealLen; CLocalFileIO File; DWORD dwNum,i,j,m; DWORD dwKeyCmdID; KEY_PAIR KeyPair; int nCount=0; HOTKEYLIST* pList; CMDHOTKEYMAP::IT MapIT; m_CmdHotKeyMap.Clear(); #ifdef CODE_OS_NT_DRV if(gpSyser) return LoadHotKeyConfigFileByMap(&gpSyser->m_CmdHotKeyMap); #endif Buffer=new DWORD[(nBufLen+3)/sizeof(sizeof(DWORD))]; if(Buffer==NULL) return false; pOrgBuffer=Buffer; if(LoadSyserHotKeyOption(m_HotKeyFile,Buffer,nBufLen,&nRealLen)) { Buffer++; dwNum=*Buffer++; for(i=0;iAppend(KeyPair); nCount++; } } } m_pCommandsList->ClearChildItem(); WCHAR HotKeyName[50]; HOTKEYLIST::IT FindIT; HANDLE hItem; m_ItemHotkey[0] = m_pCommandsList->InsertItem(WSTR("Globals Hot key configuration")); m_pCommandsList->SetItemData(m_ItemHotkey[0],1,0-1); m_ItemHotkey[1] = m_pCommandsList->InsertItem(WSTR("Shortcut key for code windows"));; m_pCommandsList->SetItemData(m_ItemHotkey[1],1,0-1); m_ItemHotkey[2] = m_pCommandsList->InsertItem(WSTR("Shortcut key for data windows")); m_pCommandsList->SetItemData(m_ItemHotkey[2],1,0-1); m_ItemHotkey[3] =m_pCommandsList->InsertItem(WSTR("Shortcut key for stack windows")); m_pCommandsList->SetItemData(m_ItemHotkey[3],1,0-1); m_ItemHotkey[4]=m_pCommandsList->InsertItem(WSTR("Shortcut key for register windows"));; m_pCommandsList->SetItemData(m_ItemHotkey[4],1,0-1); //hItem = m_pCommandsList->InsertItem(WSTR(""));; //m_pCommandsList->SetItemData(hItem,1,0-1); for(int i = 0;i < 5;i++) { for(int j=0;jInsertItemA(gKeyConfig[i].pHotKeyInfo[j].KeyName,m_ItemHotkey[i]); KeyPair.FuncKeyCode=gKeyConfig[i].pHotKeyInfo[j].FuncKeyCode; KeyPair.SecondKeyCode=gKeyConfig[i].pHotKeyInfo[j].SecondKeyCode; if(MapIT!=m_CmdHotKeyMap.End()) { if(MapIT->Count()) { KeyPair=*MapIT->Begin(); } } else { MapIT = m_CmdHotKeyMap.InsertUnique(gKeyConfig[i].pHotKeyInfo[j].CommandID,HOTKEYLIST()); pList=&*MapIT; pList->Append(KeyPair); } m_pCommandsList->SetItemData(hItem,1,gKeyConfig[i].pHotKeyInfo[j].CommandID); //if(KeyPair.FuncKeyCode) m_pCommandsList->SetItemText(hItem,1,GetHotKeyName(KeyPair.FuncKeyCode,KeyPair.SecondKeyCode,HotKeyName)); } } delete []pOrgBuffer; return true; } bool CKeyMappingPage::SaveHotKeyConfigFile() { DWORD* Buffer; DWORD* pEndBuf; ULSIZE nBufLen=0x1000; int nRealLen; CLocalFileIO File; DWORD dwSize=0; DWORD dwNum=(DWORD)m_CmdHotKeyMap.Count(); CMDHOTKEYMAP::IT BeginIT; HOTKEYLIST::IT ListIT; Buffer=new DWORD[(nBufLen+3)/sizeof(sizeof(DWORD))]; if(Buffer==NULL) return false; pEndBuf=Buffer; pEndBuf++; *pEndBuf++=dwNum; for(BeginIT=m_CmdHotKeyMap.Begin();BeginIT!=m_CmdHotKeyMap.End();BeginIT++) { dwNum=(DWORD)BeginIT->Count(); if(dwNum==0) continue; dwNum=BeginIT.Key(); *pEndBuf++=dwNum; dwNum=(DWORD)BeginIT->Count(); *pEndBuf++=dwNum; ListIT=BeginIT->Begin(); for(;ListIT!=BeginIT->End();ListIT++) { *pEndBuf++=ListIT->FuncKeyCode; *pEndBuf++=ListIT->SecondKeyCode; } dwSize++; } Buffer[1]=dwSize; nRealLen = *(int*)&pEndBuf-*(int*)&Buffer; #ifndef CODE_OS_NT_DRV SaveSyserHotKeyOption(m_HotKeyFile,Buffer,nRealLen); #else SaveSyserHotKeyBufferDriver(Buffer,nRealLen); #endif delete []Buffer; return true; } void CKeyMappingPage::Popup() { if(IsWindow()) { Show(); } else { CreateForm(); //m_Style=WISP_WS_BORDER; //RecalcLayout(); OnResize(NULL); //Create(540,400,NULL,WISP_SKBS_NORMAL,WISP_SH_NORMAL); Center(); } } ================================================ FILE: Project/Syser/Source/KeyMappingPage.h ================================================ #ifndef _KEY_MAPPING_PAGE_H_ #define _KEY_MAPPING_PAGE_H_ #include "../../Code/Source/Code.h" #include "../../Syser/Source/SyserOption.h" typedef TList HOTKEYLIST; typedef TMap CMDHOTKEYMAP; class CKeyMappingPage : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG(OnResize); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnFileListCommand) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnButtonAdd) DECLARE_WISP_MSG_EVENT(OnButtonRemove) DECLARE_WISP_MSG_EVENT(OnButtonSave) DECLARE_WISP_MSG_EVENT(OnButtonReload) DECLARE_WISP_MSG_EVENT(OnButtonDefault) DECLARE_WISP_MSG_EVENT(OnNewKeyEdit) DECLARE_WISP_MSG_EVENT(OnExistKeyList) CKeyMappingPage(); CWispStaticGroup*m_pGroup; CWispStaticGroup*m_pGroupDescription; CWispStaticStr* m_CommandStr; CWispStaticStr* m_NewKeyStr; CWispEdit* m_NewKeyEdit; CWispStaticStr* m_ExistStr; CWispList* m_pCommandsList; CWispList* m_pExistList; CWispButton*m_pSaveBT; CWispButton*m_pDefaultSignBT; CWispButton*m_pReloadBT; CWispButton*m_pDefaultBT; CWispButton*m_pAddBT; CWispButton*m_pRemoveBT; CHAR m_HotKeyFile[MAX_FN_LEN]; WCHAR m_szSystemRootDir[MAX_FN_LEN]; bool LoadHotKeyConfigFile(); bool LoadHotKeyConfigFileByMap(CMDHOTKEYMAP *pCmdHotKeyMap); bool SaveHotKeyConfigFile(); bool IsListItem(PCWSTR szName); int m_PreviousKeyType; WCHAR* GetHotKeyName(DWORD dwFuncKey,DWORD dwSecondKey,WCHAR* Buffer); WCHAR* GetHotKeyName(DWORD KeyValue,WCHAR* Buffer); CMDHOTKEYMAP m_CmdHotKeyMap; HOTKEYLIST* GetCurrentHotKeyList(); KEY_PAIR GetHotKey(); void LoadDefaultAll(); void Popup(); //CMDHOTKEYMAP m_CurrentCMDHotKeyMap; HANDLE m_ItemHotkey[5]; //HANDLE m_CodeViewHotkey; //HANDLE m_DataViewHotkey; //HANDLE m_StackViewHotkey; //HANDLE m_RegisterViewHotkey; }; #endif //_KEY_MAPPING_PAGE_H_ ================================================ FILE: Project/Syser/Source/Keyboard.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "Keyboard.h" bool gUsbRightControl=false; bool gbUsbKeyboardActive=false; DWORD USBCOUNTPP=0; void TranslateUSBKey(BYTE*pPrevData,BYTE*pNewData) { bool bPrevMod,bMod; UINT VKey; //OUTPUT(WSTR("%02X %02X %02X %02X %02X %02X %02X %02X\n"),pNewData[0],pNewData[1],pNewData[2],pNewData[3],pNewData[4],pNewData[5],pNewData[6],pNewData[7]); if(pNewData[2] == 1 && pNewData[3] == 1 && pNewData[4] == 1 && pNewData[5] == 1 && pNewData[6] == 1 && pNewData[7] == 1) return; if(*(WORD*)pNewData || *(WORD*)pPrevData) { for(int n=0;USBModKeyTransTable[n].KeyType;n++) { bMod = (*(WORD*)pNewData & USBModKeyTransTable[n].Mask)!=0; bPrevMod = (*(WORD*)pPrevData & USBModKeyTransTable[n].Mask)!=0; if(bPrevMod^bMod) gpSyser->OnKeyEvent(USBModKeyTransTable[n].KeyType,bMod); } } for(int n=2;pNewData[n]&&n<8;n++) { VKey = USBKeyTransTable[pNewData[n]]; if(VKey!=WISP_VK_NULL && TStrNChr(&pPrevData[2],pNewData[n],6)==NULL) { gpSyser->OnKeyEvent(VKey,true); } } for(int n=2;pPrevData[n]&&n<8;n++) { VKey = USBKeyTransTable[pPrevData[n]]; if(VKey!=WISP_VK_NULL && TStrNChr(&pNewData[2],pPrevData[n],6)==NULL) { gpSyser->OnKeyEvent(VKey,false); } } memcpy(pPrevData,pNewData,8); } USB_MOD_TRANS USBModKeyTransTable[]= { {WISP_VK_LCONTROL, 0x0001}, {WISP_VK_LSHIFT, 0x0002}, {WISP_VK_LALT, 0x0004}, {WISP_VK_LWIN, 0x0008}, {WISP_VK_RCONTROL, 0x0010}, {WISP_VK_RSHIFT, 0x0020}, {WISP_VK_RALT, 0x0040}, {WISP_VK_RWIN, 0x0080}, {WISP_VK_NULL, 0} }; UINT USBKeyTransTable[256]= { WISP_VK_NULL, //0x00 WISP_VK_NULL, //0x01 WISP_VK_NULL, //0x02 WISP_VK_NULL, //0x03 WISP_VK_A, //0x04 WISP_VK_B, //0x05 WISP_VK_C, //0x06 WISP_VK_D, //0x07 WISP_VK_E, //0x08 WISP_VK_F, //0x09 WISP_VK_G, //0x0A WISP_VK_H, //0x0B WISP_VK_I, //0x0C WISP_VK_J, //0x0D WISP_VK_K, //0x0E WISP_VK_L, //0x0F WISP_VK_M, //0x10 WISP_VK_N, //0x11 WISP_VK_O, //0x12 WISP_VK_P, //0x13 WISP_VK_Q, //0x14 WISP_VK_R, //0x15 WISP_VK_S, //0x16 WISP_VK_T, //0x17 WISP_VK_U, //0x18 WISP_VK_V, //0x19 WISP_VK_W, //0x1A WISP_VK_X, //0x1B WISP_VK_Y, //0x1C WISP_VK_Z, //0x1D WISP_VK_1, //0x1E WISP_VK_2, //0x1F WISP_VK_3, //0x20 WISP_VK_4, //0x21 WISP_VK_5, //0x22 WISP_VK_6, //0x23 WISP_VK_7, //0x24 WISP_VK_8, //0x25 WISP_VK_9, //0x26 WISP_VK_0, //0x27 WISP_VK_RETURN, //0x28 WISP_VK_ESCAPE, //0x29 WISP_VK_BACK, //0x2A WISP_VK_TAB, //0x2B WISP_VK_SPACE, //0x2C WISP_VK_OEM_MINUS, //0x2D//WISP_VK_OEM_MINUS WISP_VK_OEM_PLUS, //0x2E WISP_VK_LSQUARE_BRACKET, //0x2F WISP_VK_RSQUARE_BRACKET, //0x30 WISP_VK_OEM_5, //0x31 WISP_VK_NULL, //0x32//WISP_VK_OEM_5 WISP_VK_SEMI, //0x33 WISP_VK_QUOT, //0x34 WISP_VK_OEM_3, //0x35 WISP_VK_OEM_COMMA, //0x36 WISP_VK_OEM_PERIOD, //0x37 WISP_VK_OEM_2, //0x38 WISP_VK_CAPS_LOCK, //0x39 WISP_VK_F1, //0x3A WISP_VK_F2, //0x3B WISP_VK_F3, //0x3C WISP_VK_F4, //0x3D WISP_VK_F5, //0x3E WISP_VK_F6, //0x3F WISP_VK_F7, //0x40 WISP_VK_F8, //0x41 WISP_VK_F9, //0x42 WISP_VK_F10, //0x43 WISP_VK_F11, //0x44 WISP_VK_F12, //0x45 WISP_VK_PRINT, //0x46 //e0 37 WISP_VK_SCROLL_LOCK, //0x47 WISP_VK_NULL, //0xe0 0x46 WISP_VK_INSERT, //0xe0 0x52 'Ins'С WISP_VK_HOME, //scancode 71 0x47 'Home' WISP_VK_PAGE_UP, //scancode 73 0x49 'Page Up'С WISP_VK_DELETE, //scancode 83 0x53 'Del'С WISP_VK_END, //scancode 79 0x4f 'End' С WISP_VK_PAGE_DOWN, //scancode 81 0x51 'Page Dn'С WISP_VK_RIGHT, //scancode 77 0x4d 'Right Arrow Key' С WISP_VK_LEFT, //scancode 75 0x4b 'Left Arrow Key'С . WISP_VK_DOWN, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_UP, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_NUMLOCK, //scancode 69 0x45 'Num Lock' Pause Break 0xE1 0x1D 0x45 0xE1 0x9D 0xC5 WISP_VK_OEM_2, //scancode 53 0x35 '/?' WISP_VK_MULTIPLY, //scancode 55 0x37 '*'С . 'Print Screen* Sys Rq' 0xE0 0x2A 0xE0 0x37 0xE0 0xB7 0xE0 0xAA WISP_VK_SUBTRACT, //scancode 74 0x4a '-'С WISP_VK_ADD, //scancode 78 0x4e '+' WISP_VK_RETURN, //scancode 28 0x1c '}]' WISP_VK_NUMPAD1, //scancode 79 0x4f 'End' С WISP_VK_NUMPAD2, //scancode 80 0x50 'Down Arrow Key'С WISP_VK_NUMPAD3, //scancode 81 0x51 'Page Dn'С WISP_VK_NUMPAD4, //scancode 75 0x4b 'Left Arrow Key'С . WISP_VK_NUMPAD5, //scancode 76 0x4c '5' С WISP_VK_NUMPAD6, //scancode 77 0x4d 'Right Arrow Key' С WISP_VK_NUMPAD7, //scancode 71 0x47 'Home' WISP_VK_NUMPAD8, //scancode 72 0x48 'Up Arrow Key'С . WISP_VK_NUMPAD9, //scancode 73 0x49 'Page Up'С WISP_VK_NUMPAD0, //scancode 82 0x52 'Ins'С WISP_VK_DECIMAL, //scancode 83 0x53 'Del'С WISP_VK_NULL, //scancode 86 0x56 WISP_VK_APPS, //scancode 93 0x5d 'Apps' WISP_VK_NULL, // WISP_VK_NULL, //scancode 93 0x5d 'Window Apps' WISP_VK_NULL, //scancode 94 0x5e 'Power' WISP_VK_NULL, //scancode 95 0x5f 'Sleep' }; ================================================ FILE: Project/Syser/Source/Keyboard.h ================================================ #ifndef _KEYBOARD_H_ #define _KEYBOARD_H_ struct USB_MOD_TRANS { UINT KeyType; WORD Mask; }; extern UINT USBKeyTransTable[256]; extern USB_MOD_TRANS USBModKeyTransTable[]; void TranslateUSBKey(BYTE*pPrevData,BYTE*pNewData); struct USB_HOOK_PARAM { PUSAGE_AND_PAGE ChangedUsageList; ULONG UsageListLength; HIDP_KEYBOARD_DIRECTION KeyAction; PHIDP_KEYBOARD_MODIFIER_STATE ModifierState; PHIDP_INSERT_SCANCODES InsertCodesProcedure; PVOID InsertCodesContext; }; extern bool gUsbRightControl; extern bool gbUsbKeyboardActive; #endif ================================================ FILE: Project/Syser/Source/LastBranch.cpp ================================================ #include "stdafx.h" #include "LastBranch.h" #include "X86Optr.h" static int gLastBranchType=0; int GetLastBranchType() { return gLastBranchType; } bool GetLastBranchAddress(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { if(gLastBranchType==-1) return false; return gfnGetLastBranchInfo[gLastBranchType](Index,FromAddr,ToAddr); } bool GetLastBranchAddressPentium(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp,dwTmp2; if(Index!=0) return false; SyserReadMSR(0x1db,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr = dwTmp2; SyserReadMSR(0x1dc,&dwTmp,&dwTmp2); if(ToAddr) *ToAddr = dwTmp2; return true; } bool GetLastBranchAddressPentiumPro(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp=0,dwTmp2=0; if(Index>3) return false; SyserReadMSR(0x1c9,&dwTmp,&dwTmp2); dwTmp2 &= 3; dwTmp2 += 4; dwTmp2 -= Index; dwTmp2 &= 3; SyserReadMSR(0x1db+dwTmp2,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr=dwTmp2; if(ToAddr) *ToAddr=dwTmp; return true; } bool GetLastBranchAddressPentium4New_16(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp=0,dwTmp2=0; if(Index>15) return false; SyserReadMSR(0x1c9,&dwTmp,&dwTmp2); dwTmp2 &= 15; dwTmp2 += 16; dwTmp2 -= Index; dwTmp2 &= 15; Index = dwTmp2; SyserReadMSR(0x680+dwTmp2,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr=dwTmp2; SyserReadMSR(0x6C0+Index,&dwTmp,&dwTmp2); if(ToAddr) *ToAddr=dwTmp2; return true; } bool GetLastBranchAddressPentium4New_4(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp=0,dwTmp2=0; if(Index>3) return false; SyserReadMSR(0x1c9,&dwTmp,&dwTmp2); dwTmp2 &= 3; dwTmp2 += 4; dwTmp2 -= Index; dwTmp2 &= 3; Index = dwTmp2; SyserReadMSR(0x40+dwTmp2,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr=dwTmp2; SyserReadMSR(0x60+Index,&dwTmp,&dwTmp2); if(ToAddr) *ToAddr=dwTmp2; return true; } bool GetLastBranchAddressPentium4New_8(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp=0,dwTmp2=0; if(Index>7) return false; SyserReadMSR(0x1c9,&dwTmp,&dwTmp2); dwTmp2 &= 7; dwTmp2 += 8; dwTmp2 -= Index; dwTmp2 &= 7; Index = dwTmp2; SyserReadMSR(0x40+dwTmp2,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr=dwTmp2; SyserReadMSR(0x60+Index,&dwTmp,&dwTmp2); if(ToAddr) *ToAddr=dwTmp2; return true; } bool GetLastBranchAddressPentiumM_8(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp=0,dwTmp2=0; if(Index>7) return false; SyserReadMSR(0x1c9,&dwTmp,&dwTmp2); dwTmp2 &= 7; dwTmp2 += 8; dwTmp2 -= Index; dwTmp2 &= 7; SyserReadMSR(0x40+dwTmp2,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr=dwTmp2; if(ToAddr) *ToAddr=dwTmp; return true; } bool GetLastBranchAddressPentiumM_4(DWORD Index,DWORD* FromAddr,DWORD* ToAddr) { DWORD dwTmp=0,dwTmp2=0; if(Index>3) return false; SyserReadMSR(0x1c9,&dwTmp,&dwTmp2); dwTmp2 &= 3; dwTmp2 += 4; dwTmp2 -= Index; dwTmp2 &= 3; SyserReadMSR(0x40+dwTmp2,&dwTmp,&dwTmp2); if(FromAddr) *FromAddr=dwTmp2; if(ToAddr) *ToAddr=dwTmp; return true; } // // // int DetectLastBranchType() // { // DWORD Type=0,Index=0,Index2=0; // DWORD From=0,To=0,From1=0,To1=0,Tos1=0,Tos2=0,From2=0,To2=0; // __asm{ // pushad // pushfd // cli // mov ecx,0x1d9 // xor eax,eax // xor edx,edx // rdmsr // or eax,1 // wrmsr // call local_001 // nop // local_001: // pop eax // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // mov Tos1,eax // call local_002 // nop // local_002: // pop eax // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // mov Tos2,eax // popfd // popad // } // if((Tos1 & 0xf) == (Tos2 & 0xf)) //ڵ P6 û MSR_LASTBRANCH_TOP // return 0; // __asm{ // pushad // pushfd // cli // call local_003 // nop // local_003: // pop eax // lea eax,[eax-5] // mov From,eax // lea eax,[eax+6] // mov To,eax // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // and eax,3 // mov ecx, eax // add ecx, 0x1db // xor eax, eax // xor edx, edx // rdmsr // mov From1, eax // mov To1, edx // popfd // popad // } // if((From == From1 && To == To1) || (From == To1 && To == From1)) // return 1; // __asm{ // pushad // pushfd // cli // call local_004 // nop // local_004: // pop eax // lea eax,[eax-5] // mov From,eax // lea eax,[eax+6] // mov To,eax // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // and eax,7 // mov Index,eax // mov ecx, eax // add ecx, 0x40 // xor eax, eax // xor edx, edx // rdmsr // mov From1, eax // mov To1, edx // jmp local_102 // nop // local_102: // jmp local_103 // nop // local_103: // jmp local_104 // nop // local_104: // jmp local_105 // nop // local_105: // mov ecx,0x1d9 // xor eax,eax // xor edx,edx // rdmsr // and eax,7 // mov Index2,eax // popfd // popad // } // if((From == From1 && To == To1) || (From == To1 && To == From1))//һѭջмԪ // { // return Index==Index2 ? 2 : 3; // Index == Index2 ѭջ4Ԫ 8 Ԫ // } // __asm{ // pushad // pushfd // cli // call local_034 // nop // local_034: // pop eax // lea eax,[eax-5] // mov From,eax // lea eax,[eax+6] // mov To,eax // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // and eax,7 // mov Index,eax // mov ecx, eax // add ecx, 0x40 // xor eax, eax // xor edx, edx // rdmsr // mov From1, eax // mov ecx,Index // add ecx,0x60 // xor eax,eax // xor edx,edx // rdmsr // mov To1,eax // jmp local_005 // nop // local_005: // jmp local_006 // nop // local_006: // jmp local_007 // nop // local_007: // jmp local_008 // nop // local_008: // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // and eax,7 // mov Index2,eax // popfd // popad // } // if((From == From1 && To == To1) || (From == To1 && To == From1))//һѭջмԪ // { // return Index==Index2 ? 4 : 5; // Index == Index2 ѭջ4Ԫ 8 Ԫ // } // // __asm{ // pushad // pushfd // cli // call local_036 // nop // local_036: // pop eax // lea eax,[eax-5] // mov From,eax // lea eax,[eax+6] // mov To,eax // xor eax, eax // xor edx, edx // mov ecx, 0x1c9 // rdmsr // and eax,15 // mov Index,eax // mov ecx, eax // add ecx, 0x680 // xor eax, eax // xor edx, edx // rdmsr // mov From1, eax // mov ecx,Index // add ecx,0x6c0 // xor eax,eax // xor edx,edx // rdmsr // mov To1,eax // popfd // popad // } // if((From == From1 && To == To1) || (From == To1 && To == From1)) // return 6; // return -1; // } bool InitBranchMointer() { if(gpCPUIDInfo==NULL || SyserIsSupportCPUIDInstruction()==false || SyserIsSupportRDMSRInstruction()==false) return false; if((gpCPUIDInfo[1].dwEAX&0xf00)<0x600) return false; gLastBranchType = SyserDetectLastBranchType(); if(gLastBranchType==-1) return false; gbHaveLastBranchMointer = true; SetLastBranchMointer(); return true; } bool SetLastBranchMointer() { DWORD dwHigh,dwLow; if(gLastBranchType==-1) return false; SyserReadMSR(0x1d9,&dwHigh,&dwLow); dwLow |= 1; SyserWriteMSR(0x1d9,dwHigh,dwLow); return true; } GETLASTBRANCHINFO gfnGetLastBranchInfo[7]= { GetLastBranchAddressPentium, GetLastBranchAddressPentiumPro, GetLastBranchAddressPentiumM_4, GetLastBranchAddressPentiumM_8, GetLastBranchAddressPentium4New_4, GetLastBranchAddressPentium4New_8, GetLastBranchAddressPentium4New_16, }; ================================================ FILE: Project/Syser/Source/LastBranch.h ================================================ #ifndef __LASTBRANCH__H__ #define __LASTBRANCH__H__ #ifdef __cplusplus extern "C" { #endif bool SetLastBranchMointer(); bool InitBranchMointer(); bool GetLastBranchAddress(DWORD Index,DWORD* FromAddr,DWORD* ToAdd); typedef bool (*GETLASTBRANCHINFO)(DWORD Index,DWORD* FromAddr,DWORD* ToAddr); extern GETLASTBRANCHINFO gfnGetLastBranchInfo[7]; int SyserDetectLastBranchType(VOID); int GetLastBranchType(); #ifdef __cplusplus }; // extern "C" #endif #endif //__LASTBRANCH__H__ ================================================ FILE: Project/Syser/Source/Lex2.cpp ================================================ #include "stdafx.h" #ifdef CODE_OS_NT_DRV #define FILE MYFILE typedef void MYFILE; #undef stdout #undef stdin #define stdout 0 #define stdin 0 #endif /* A lexical scanner generated by flex */ /* Scanner skeleton version: * $Header: z:\\cvsroot/Syser/Source/Syser/Lex2.cpp,v 1.1 2005/03/08 09:23:05 rock Exp $ */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 //#include //#include /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif #ifdef __cplusplus //#include /* Use prototypes in function declarations. */ #define YY_USE_PROTOS /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_PROTOS #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef __TURBOC__ #pragma warn -rch #pragma warn -use #include #include #define YY_USE_CONST #define YY_USE_PROTOS #endif #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif #ifdef YY_USE_PROTOS #define YY_PROTO(proto) proto #else #define YY_PROTO(proto) () #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN yy_start = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START ((yy_start - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #define YY_BUF_SIZE 16384 typedef struct yy_buffer_state *YY_BUFFER_STATE; extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 /* The funky do-while in the following #define is used to turn the definition * int a single C statement (which needs a semi-colon terminator). This * avoids problems with code like: * * if ( condition_holds ) * yyless( 5 ); * else * do_something_else(); * * Prior to using the do-while the compiler would get upset at the * "else" because it interpreted the "if" statement as being all * done when it reached the ';' after the yyless() call. */ /* Return all but the first 'n' matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ *yy_cp = yy_hold_char; \ YY_RESTORE_YY_MORE_OFFSET \ yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, yytext_ptr ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ typedef unsigned int yy_size_t; struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ yy_size_t yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; static YY_BUFFER_STATE yy_current_buffer = 0; /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". */ #define YY_CURRENT_BUFFER yy_current_buffer /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 1; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart YY_PROTO(( FILE *input_file )); void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); void yy_load_buffer_state YY_PROTO(( void )); YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); static void *yy_flex_alloc YY_PROTO(( yy_size_t )); static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); static void yy_flex_free YY_PROTO(( void * )); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! yy_current_buffer ) \ yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ yy_current_buffer->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) typedef unsigned char YY_CHAR; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern char *yytext; #define yytext_ptr yytext static yy_state_type yy_get_previous_state YY_PROTO(( void )); static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); static int yy_get_next_buffer YY_PROTO(( void )); static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ yytext_ptr = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ yy_hold_char = *yy_cp; \ *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; #define YY_NUM_RULES 200 #define YY_END_OF_BUFFER 201 static yyconst short int yy_accept[812] = { 0, 0, 0, 0, 0, 201, 199, 1, 3, 2, 160, 199, 148, 162, 155, 199, 145, 146, 156, 157, 147, 158, 154, 161, 140, 139, 168, 169, 163, 170, 164, 167, 138, 138, 152, 153, 165, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 150, 166, 151, 159, 200, 200, 1, 3, 0, 2, 182, 0, 144, 0, 149, 0, 0, 0, 0, 0, 0, 187, 183, 192, 0, 0, 185, 175, 188, 176, 189, 173, 171, 0, 142, 196, 0, 186, 142, 140, 0, 0, 140, 140, 0, 139, 139, 139, 172, 177, 179, 181, 180, 178, 138, 0, 0, 193, 138, 138, 138, 138, 138, 138, 138, 138, 138, 65, 138, 138, 138, 138, 138, 138, 138, 138, 138, 77, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 194, 184, 197, 0, 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 143, 0, 0, 174, 195, 0, 142, 0, 198, 0, 142, 140, 141, 139, 190, 191, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 74, 138, 138, 138, 79, 138, 138, 138, 138, 84, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 110, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 141, 141, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 17, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 51, 138, 53, 138, 55, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 68, 69, 138, 138, 138, 138, 138, 76, 138, 80, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 106, 138, 138, 109, 138, 138, 138, 138, 117, 138, 119, 138, 138, 138, 0, 0, 0, 128, 132, 0, 0, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 141, 138, 138, 6, 138, 138, 9, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 29, 138, 138, 138, 36, 138, 138, 138, 138, 138, 138, 44, 138, 138, 138, 138, 50, 138, 52, 54, 56, 57, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 72, 73, 138, 138, 138, 82, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 98, 138, 138, 138, 138, 138, 138, 138, 108, 138, 138, 138, 114, 138, 116, 138, 138, 138, 123, 0, 135, 125, 133, 0, 0, 0, 0, 127, 131, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 18, 138, 138, 138, 138, 138, 138, 138, 23, 138, 138, 30, 138, 34, 35, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 61, 138, 138, 138, 66, 138, 138, 71, 75, 78, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 93, 138, 138, 96, 138, 99, 100, 101, 103, 104, 138, 107, 138, 112, 138, 138, 138, 138, 138, 124, 136, 126, 0, 137, 138, 138, 138, 8, 10, 138, 138, 13, 138, 138, 138, 138, 138, 138, 138, 138, 24, 25, 26, 138, 28, 31, 32, 138, 138, 38, 138, 138, 138, 42, 138, 138, 138, 48, 138, 138, 138, 138, 60, 138, 138, 138, 138, 138, 81, 138, 138, 138, 87, 138, 138, 90, 138, 138, 138, 138, 138, 138, 138, 111, 138, 138, 118, 138, 122, 130, 138, 138, 7, 138, 138, 14, 138, 138, 138, 138, 138, 138, 22, 138, 138, 138, 39, 138, 138, 138, 46, 47, 138, 138, 138, 59, 138, 138, 138, 138, 70, 138, 85, 86, 88, 89, 91, 138, 94, 138, 138, 138, 105, 113, 115, 120, 138, 5, 138, 138, 138, 45, 138, 138, 138, 138, 138, 138, 138, 138, 41, 138, 138, 121, 138, 138, 63, 64, 138, 83, 92, 138, 97, 138, 4, 11, 12, 15, 138, 138, 138, 138, 138, 138, 37, 138, 43, 138, 58, 62, 138, 138, 138, 138, 138, 20, 138, 27, 138, 138, 138, 138, 138, 102, 138, 19, 138, 138, 138, 138, 67, 138, 16, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 21, 138, 138, 138, 138, 138, 138, 138, 95, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 40, 138, 138, 49, 33, 0 } ; static yyconst int yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 8, 9, 10, 1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 27, 29, 30, 31, 32, 33, 34, 35, 36, 1, 37, 37, 37, 37, 38, 39, 40, 40, 40, 40, 40, 41, 40, 40, 40, 40, 40, 40, 40, 40, 42, 40, 40, 43, 40, 40, 44, 45, 46, 47, 48, 1, 49, 50, 51, 52, 53, 54, 55, 56, 57, 40, 58, 59, 60, 61, 62, 63, 40, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst int yy_meta[77] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 4, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1, 6, 7, 8, 9, 10, 9, 9, 1, 1, 1, 1, 9, 6, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 1, 1, 1 } ; static yyconst short int yy_base[824] = { 0, 0, 0, 1116, 1115, 1130, 1133, 75, 1133, 81, 1095, 80, 80, 1094, 79, 1082, 1133, 1133, 1092, 75, 1133, 76, 77, 96, 128, 179, 1094, 1133, 81, 1090, 84, 1133, 0, 85, 1133, 1133, 1089, 1074, 58, 67, 106, 75, 82, 1059, 67, 1058, 1052, 111, 1055, 60, 1064, 119, 126, 113, 78, 111, 1133, 115, 1133, 1133, 1133, 1095, 208, 1133, 220, 237, 1133, 174, 1133, 238, 1133, 1062, 132, 174, 1057, 1049, 77, 1133, 1133, 1133, 171, 300, 1133, 1133, 1133, 1133, 1133, 1096, 1133, 1091, 214, 1133, 1107, 1133, 218, 175, 216, 350, 119, 189, 0, 0, 191, 190, 1133, 1075, 1133, 1133, 1133, 1074, 0, 241, 1062, 1133, 332, 1044, 1052, 210, 1055, 1054, 1041, 226, 1042, 1033, 1038, 1033, 1030, 215, 1037, 1033, 1030, 1036, 1026, 0, 225, 1030, 1024, 134, 1020, 237, 1035, 233, 1037, 241, 1027, 1023, 238, 233, 1027, 1023, 254, 245, 1019, 172, 1024, 1023, 1015, 258, 1022, 1020, 1133, 1133, 1133, 381, 0, 1022, 264, 1023, 1010, 218, 1010, 1021, 1010, 1021, 1017, 1011, 1133, 389, 0, 1133, 1133, 413, 1133, 1064, 1133, 422, 292, 1133, 293, 1133, 1133, 1133, 282, 281, 1014, 1012, 269, 291, 1013, 1001, 304, 1009, 395, 999, 298, 1011, 400, 995, 253, 314, 291, 999, 1008, 1003, 1004, 990, 988, 354, 1003, 998, 986, 368, 999, 999, 994, 986, 986, 991, 978, 993, 0, 988, 978, 982, 0, 983, 988, 983, 982, 0, 973, 980, 976, 965, 966, 961, 361, 969, 970, 965, 958, 971, 959, 961, 968, 954, 952, 952, 954, 951, 369, 962, 0, 961, 951, 955, 950, 958, 943, 956, 958, 957, 946, 446, 483, 947, 949, 949, 944, 938, 946, 946, 935, 937, 942, 939, 940, 931, 471, 525, 453, 485, 387, 369, 926, 933, 396, 924, 918, 934, 464, 933, 934, 919, 922, 918, 0, 919, 927, 931, 399, 929, 953, 950, 916, 463, 913, 911, 915, 922, 909, 917, 905, 896, 910, 908, 905, 899, 936, 905, 0, 902, 0, 903, 0, 893, 891, 899, 888, 888, 900, 882, 891, 891, 889, 0, 0, 891, 883, 893, 879, 883, 0, 882, 0, 892, 889, 875, 880, 872, 873, 887, 886, 885, 880, 879, 874, 865, 863, 864, 876, 860, 872, 862, 866, 871, 870, 861, 0, 870, 849, 0, 504, 856, 861, 860, 0, 847, 0, 847, 848, 858, 455, 0, 849, 1133, 1133, 855, 844, 853, 853, 841, 837, 1133, 843, 848, 846, 472, 0, 1133, 834, 844, 0, 831, 844, 0, 845, 836, 841, 832, 839, 825, 841, 838, 830, 826, 466, 829, 543, 817, 855, 0, 817, 831, 818, 0, 817, 814, 819, 822, 825, 822, 826, 811, 820, 804, 804, 0, 820, 0, 0, 0, 820, 806, 807, 812, 813, 800, 799, 808, 803, 808, 797, 0, 0, 805, 803, 796, 0, 791, 796, 785, 789, 800, 783, 782, 783, 795, 794, 778, 790, 781, 775, 0, 788, 785, 787, 771, 780, 786, 782, 0, 780, 780, 782, 0, 769, 0, 780, 771, 779, 0, 773, 1133, 1133, 1133, 771, 758, 771, 773, 1133, 1133, 757, 759, 759, 766, 758, 751, 760, 748, 750, 761, 752, 757, 0, 743, 738, 745, 745, 777, 780, 777, 0, 738, 748, 488, 743, 0, 0, 746, 745, 744, 737, 746, 730, 742, 730, 729, 737, 722, 724, 736, 719, 719, 0, 735, 721, 720, 0, 730, 723, 0, 0, 0, 726, 729, 716, 712, 706, 715, 711, 719, 705, 704, 0, 716, 704, 0, 718, 0, 0, 718, 0, 0, 699, 0, 710, 0, 703, 709, 702, 701, 693, 1133, 1133, 1133, 705, 1133, 708, 694, 702, 0, 0, 691, 704, 0, 686, 702, 691, 692, 691, 690, 680, 692, 0, 0, 0, 690, 0, 0, 0, 680, 678, 0, 689, 687, 680, 0, 689, 679, 682, 0, 686, 686, 684, 679, 0, 665, 666, 665, 680, 661, 0, 675, 672, 663, 0, 670, 658, 0, 650, 667, 655, 655, 656, 665, 662, 0, 661, 661, 0, 659, 0, 1133, 660, 656, 0, 656, 642, 0, 648, 635, 644, 650, 638, 654, 0, 652, 641, 633, 0, 650, 638, 631, 0, 0, 636, 628, 628, 0, 639, 625, 624, 638, 0, 635, 0, 0, 0, 0, 0, 635, 0, 622, 614, 635, 0, 0, 0, 0, 617, 0, 631, 628, 621, 0, 620, 621, 611, 622, 622, 619, 598, 610, 0, 600, 603, 0, 571, 582, 0, 0, 570, 0, 0, 565, 0, 543, 0, 0, 0, 0, 538, 541, 528, 522, 538, 542, 0, 528, 0, 531, 0, 0, 522, 520, 519, 523, 519, 0, 525, 0, 524, 524, 512, 503, 519, 0, 507, 0, 494, 497, 504, 490, 0, 492, 0, 476, 485, 467, 477, 480, 449, 43, 51, 99, 135, 0, 236, 272, 287, 291, 302, 345, 367, 0, 393, 399, 414, 437, 436, 427, 428, 437, 450, 451, 0, 450, 451, 0, 0, 1133, 596, 606, 616, 622, 628, 638, 645, 648, 652, 656, 660, 666 } ; static yyconst short int yy_def[824] = { 0, 811, 1, 812, 812, 811, 811, 811, 811, 811, 811, 813, 811, 811, 811, 814, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 815, 815, 811, 811, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 813, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 814, 811, 811, 811, 811, 811, 811, 811, 811, 811, 816, 811, 817, 811, 816, 24, 818, 811, 811, 811, 819, 25, 811, 811, 811, 811, 811, 811, 811, 811, 815, 813, 814, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 811, 811, 811, 813, 820, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 814, 821, 811, 811, 811, 811, 817, 811, 811, 822, 811, 819, 811, 811, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 813, 813, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 814, 814, 811, 823, 811, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 813, 274, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 814, 289, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 811, 811, 811, 811, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 811, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 0, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811 } ; static yyconst short int yy_nxt[1210] = { 0, 6, 7, 8, 9, 9, 9, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 27, 28, 29, 30, 31, 32, 32, 32, 32, 33, 32, 32, 34, 6, 35, 36, 37, 32, 38, 39, 40, 41, 42, 43, 32, 44, 32, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 32, 32, 32, 56, 57, 58, 59, 62, 63, 64, 64, 64, 62, 64, 63, 65, 65, 65, 64, 68, 70, 78, 83, 88, 111, 85, 788, 89, 112, 90, 90, 90, 90, 90, 90, 90, 90, 90, 789, 84, 86, 87, 91, 79, 105, 106, 117, 92, 108, 109, 115, 133, 116, 118, 141, 69, 119, 142, 134, 120, 93, 128, 71, 72, 125, 156, 126, 73, 174, 74, 157, 129, 175, 75, 130, 127, 131, 76, 94, 160, 95, 95, 95, 95, 95, 95, 95, 96, 96, 121, 137, 187, 158, 790, 138, 122, 97, 159, 123, 98, 99, 100, 144, 139, 153, 145, 146, 124, 154, 149, 155, 97, 150, 68, 176, 147, 187, 98, 148, 161, 151, 166, 237, 167, 238, 99, 168, 152, 100, 94, 791, 101, 101, 101, 101, 101, 101, 101, 101, 101, 62, 63, 64, 64, 64, 62, 81, 97, 811, 69, 102, 103, 64, 63, 64, 64, 64, 64, 169, 264, 187, 189, 97, 189, 170, 171, 94, 265, 102, 64, 63, 65, 65, 65, 64, 811, 103, 67, 187, 189, 68, 67, 181, 182, 97, 182, 181, 182, 189, 182, 163, 163, 163, 163, 163, 163, 163, 181, 182, 97, 280, 181, 182, 182, 67, 213, 214, 182, 226, 281, 218, 227, 255, 67, 233, 219, 69, 67, 67, 220, 245, 234, 67, 253, 240, 246, 248, 256, 249, 67, 792, 241, 67, 242, 67, 243, 67, 250, 164, 80, 254, 259, 261, 80, 324, 269, 262, 270, 260, 328, 325, 276, 177, 177, 177, 177, 177, 177, 177, 277, 297, 182, 294, 182, 292, 293, 80, 301, 793, 302, 303, 295, 329, 298, 794, 80, 182, 296, 304, 80, 80, 182, 292, 305, 80, 316, 308, 795, 309, 796, 293, 80, 317, 326, 80, 310, 80, 185, 80, 185, 178, 327, 186, 186, 186, 186, 186, 186, 186, 186, 186, 192, 193, 194, 195, 196, 197, 198, 199, 200, 68, 201, 202, 203, 797, 204, 205, 206, 207, 208, 209, 210, 176, 273, 273, 273, 273, 273, 273, 273, 409, 288, 288, 288, 288, 288, 288, 288, 312, 336, 337, 341, 379, 313, 364, 342, 69, 365, 409, 409, 290, 380, 290, 798, 81, 291, 291, 291, 291, 291, 291, 291, 291, 291, 186, 186, 186, 186, 186, 186, 186, 186, 186, 319, 409, 68, 412, 320, 427, 799, 800, 413, 314, 801, 68, 428, 321, 322, 392, 392, 392, 392, 392, 392, 392, 291, 291, 291, 291, 291, 291, 291, 291, 291, 176, 176, 802, 803, 804, 805, 806, 69, 68, 407, 407, 407, 407, 407, 407, 407, 69, 807, 808, 809, 810, 393, 393, 393, 393, 393, 393, 393, 393, 393, 787, 417, 81, 81, 433, 526, 393, 393, 393, 418, 182, 434, 182, 527, 69, 786, 785, 784, 393, 393, 393, 393, 393, 393, 176, 182, 619, 783, 782, 781, 182, 620, 780, 408, 408, 408, 408, 408, 408, 408, 408, 408, 492, 779, 778, 777, 776, 493, 408, 408, 408, 494, 529, 775, 530, 774, 81, 531, 532, 773, 408, 408, 408, 408, 408, 408, 772, 771, 770, 769, 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, 757, 533, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 67, 756, 67, 67, 67, 67, 67, 67, 67, 67, 80, 755, 754, 80, 80, 80, 80, 80, 80, 80, 110, 110, 110, 110, 110, 110, 90, 753, 90, 90, 752, 90, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 96, 96, 751, 96, 188, 188, 188, 188, 274, 274, 274, 274, 289, 289, 289, 289, 186, 750, 749, 186, 748, 186, 291, 747, 746, 291, 745, 291, 744, 743, 742, 741, 740, 739, 738, 737, 736, 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, 621, 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, 535, 534, 528, 525, 524, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, 496, 495, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 432, 431, 430, 429, 426, 425, 424, 423, 422, 421, 420, 419, 416, 415, 414, 411, 410, 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, 396, 395, 394, 391, 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, 378, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 363, 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, 340, 339, 338, 335, 334, 333, 332, 331, 330, 323, 318, 315, 311, 307, 306, 300, 299, 184, 287, 286, 285, 284, 283, 282, 279, 278, 275, 272, 271, 268, 267, 266, 263, 258, 257, 252, 251, 247, 244, 239, 236, 235, 232, 231, 230, 229, 228, 225, 224, 223, 222, 221, 217, 216, 215, 212, 211, 81, 191, 190, 184, 180, 179, 173, 172, 165, 162, 143, 140, 136, 135, 132, 114, 113, 107, 104, 82, 81, 77, 66, 811, 61, 61, 5, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811 } ; static yyconst short int yy_chk[1210] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 9, 9, 9, 9, 9, 9, 11, 12, 14, 19, 22, 33, 21, 783, 22, 33, 22, 22, 22, 22, 22, 22, 22, 22, 22, 784, 19, 21, 21, 23, 14, 28, 28, 39, 23, 30, 30, 38, 44, 38, 39, 49, 11, 39, 49, 44, 39, 23, 42, 12, 12, 41, 54, 41, 12, 76, 12, 54, 42, 76, 12, 42, 41, 42, 12, 24, 57, 24, 24, 24, 24, 24, 24, 24, 24, 24, 40, 47, 98, 55, 785, 47, 40, 24, 55, 40, 24, 24, 24, 51, 47, 53, 51, 51, 40, 53, 52, 53, 24, 52, 67, 80, 51, 98, 24, 51, 57, 52, 72, 137, 72, 137, 24, 72, 52, 24, 25, 786, 25, 25, 25, 25, 25, 25, 25, 25, 25, 62, 62, 62, 62, 62, 62, 80, 25, 95, 67, 25, 25, 64, 64, 64, 64, 64, 64, 73, 153, 99, 103, 25, 102, 73, 73, 96, 153, 25, 65, 65, 65, 65, 65, 65, 95, 25, 69, 99, 103, 111, 69, 90, 90, 96, 90, 94, 94, 102, 94, 69, 69, 69, 69, 69, 69, 69, 90, 90, 96, 169, 94, 94, 90, 69, 117, 117, 94, 127, 169, 121, 127, 147, 69, 134, 121, 111, 69, 69, 121, 141, 134, 69, 146, 139, 141, 143, 147, 143, 69, 788, 139, 69, 139, 69, 139, 69, 143, 69, 81, 146, 150, 151, 81, 208, 157, 151, 157, 150, 210, 208, 166, 81, 81, 81, 81, 81, 81, 81, 166, 193, 186, 192, 186, 188, 188, 81, 196, 789, 196, 197, 192, 210, 193, 790, 81, 186, 192, 197, 81, 81, 186, 188, 197, 81, 204, 200, 791, 200, 792, 188, 81, 204, 209, 81, 200, 81, 97, 81, 97, 81, 209, 97, 97, 97, 97, 97, 97, 97, 97, 97, 114, 114, 114, 114, 114, 114, 114, 114, 114, 163, 114, 114, 114, 793, 114, 114, 114, 114, 114, 114, 114, 177, 163, 163, 163, 163, 163, 163, 163, 293, 177, 177, 177, 177, 177, 177, 177, 202, 217, 217, 221, 260, 202, 246, 221, 163, 246, 293, 292, 181, 260, 181, 794, 177, 181, 181, 181, 181, 181, 181, 181, 181, 181, 185, 185, 185, 185, 185, 185, 185, 185, 185, 206, 292, 273, 296, 206, 310, 796, 797, 296, 202, 798, 392, 310, 206, 206, 273, 273, 273, 273, 273, 273, 273, 290, 290, 290, 290, 290, 290, 290, 290, 290, 288, 407, 799, 800, 801, 802, 803, 273, 274, 288, 288, 288, 288, 288, 288, 288, 392, 804, 805, 807, 808, 274, 274, 274, 274, 274, 274, 274, 274, 274, 782, 300, 288, 407, 315, 426, 274, 274, 274, 300, 291, 315, 291, 426, 274, 781, 780, 779, 274, 274, 274, 274, 274, 274, 289, 291, 535, 778, 777, 775, 291, 535, 773, 289, 289, 289, 289, 289, 289, 289, 289, 289, 382, 772, 771, 770, 768, 382, 289, 289, 289, 382, 428, 766, 428, 765, 289, 428, 428, 764, 289, 289, 289, 289, 289, 289, 763, 762, 760, 758, 757, 756, 755, 754, 751, 749, 747, 746, 745, 744, 743, 742, 428, 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 813, 737, 813, 813, 813, 813, 813, 813, 813, 813, 814, 735, 732, 814, 814, 814, 814, 814, 814, 814, 815, 815, 815, 815, 815, 815, 816, 729, 816, 816, 728, 816, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 818, 818, 726, 818, 819, 819, 819, 819, 820, 820, 820, 820, 821, 821, 821, 821, 822, 725, 723, 822, 722, 822, 823, 721, 720, 823, 719, 823, 718, 717, 716, 714, 713, 712, 710, 705, 704, 703, 701, 695, 693, 692, 691, 690, 688, 687, 686, 683, 682, 681, 679, 678, 677, 675, 674, 673, 672, 671, 670, 668, 667, 665, 664, 661, 659, 658, 656, 655, 654, 653, 652, 651, 650, 648, 647, 645, 644, 643, 641, 640, 639, 638, 637, 635, 634, 633, 632, 630, 629, 628, 626, 625, 624, 622, 621, 617, 613, 612, 611, 610, 609, 608, 607, 606, 604, 603, 600, 599, 598, 596, 592, 591, 590, 589, 588, 586, 584, 581, 578, 576, 575, 573, 572, 571, 570, 569, 568, 567, 566, 565, 564, 560, 559, 557, 556, 555, 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 536, 534, 533, 531, 530, 529, 528, 527, 526, 525, 523, 522, 521, 520, 519, 518, 517, 516, 515, 514, 513, 512, 509, 508, 507, 506, 502, 500, 499, 498, 496, 494, 493, 492, 490, 489, 488, 487, 486, 485, 484, 482, 481, 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, 469, 467, 466, 465, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 448, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 434, 433, 432, 430, 429, 427, 425, 424, 423, 422, 421, 420, 419, 418, 417, 416, 414, 413, 411, 410, 406, 405, 404, 402, 401, 400, 399, 398, 397, 394, 391, 390, 389, 387, 385, 384, 383, 380, 379, 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, 353, 351, 350, 349, 348, 347, 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, 333, 331, 329, 328, 327, 326, 325, 324, 323, 322, 321, 320, 319, 318, 317, 316, 314, 313, 312, 311, 309, 308, 307, 305, 304, 303, 302, 301, 299, 298, 297, 295, 294, 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, 275, 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, 261, 259, 258, 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, 245, 244, 243, 242, 241, 240, 238, 237, 236, 235, 233, 232, 231, 229, 228, 227, 226, 225, 224, 223, 222, 220, 219, 218, 216, 215, 214, 213, 212, 211, 207, 205, 203, 201, 199, 198, 195, 194, 183, 175, 174, 173, 172, 171, 170, 168, 167, 165, 159, 158, 156, 155, 154, 152, 149, 148, 145, 144, 142, 140, 138, 136, 135, 132, 131, 130, 129, 128, 126, 125, 124, 123, 122, 120, 119, 118, 116, 115, 112, 109, 105, 92, 89, 87, 75, 74, 71, 61, 50, 48, 46, 45, 43, 37, 36, 29, 26, 18, 15, 13, 10, 5, 4, 3, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #define INITIAL 0 #include "Lex2.h" #ifdef CODE_OS_NT_DRV #define malloc mymalloc #define free myfree #define realloc myrealloc void myfree(void *); void* mymalloc(size_t size); void* myrealloc(void* path, size_t size); //#define FILE MYFILE //typedef void MYFILE; #endif #define YY_FATAL_ERROR /* Included code before lex code */ /*************** Includes and Defines *****************************/ /* __abstract | __alignof | __asm | __assume | __based | __box | __cdecl | __declspec | __delegate | __event | __except | __fastcall | __forceinline | __gc | __hook | __identifier | __if_exists | __if_not_exists | __inline | __int8 | __int16 | __int32 | __int64 | __interface | __leave | __m64 | __m128 | __m128d | __m128i | __multiple_inheritance | __nogc | __noop | __pin | __property | __raise | __sealed | __single_inheritance | __stdcall | __super | __try_cast | __try | __except | __finally | __unhook | __uuidof | __value | __virtual_inheritance | __w64 | bool | break | case | catch | char | class | const | const_cast | continue | default | delete | deprecated | dllexport | dllimport | do | double | dynamic_cast | else | enum | explicit | extern | false | float | for | friend | goto | if | inline | int | long | mutable | naked | namespace | new | noinline | noreturn | nothrow | novtable | operator | private | property | protected | public | register | reinterpret_cast | return | selectany | short | signed | sizeof | static | static_cast | struct | switch | template | this | thread | throw | true | try | typedef | typeid | typename | union | unsigned | using | uuid | virtual | void | volatile | __wchar_t | wchar_t | while | */ typedef char * YYSTYPE; /* interface with lexer: should be in header file*/ char * yylval; /* We will always point at the text of the lexeme. This makes it easy to print out nice trees when YYDEBUG is enabled. (see C++ grammar file and its definition of YYDEBUG_LEXER_TEXT to be "yylval" */ #define WHITE_RETURN(x) /* do nothing */ #define NEW_LINE_RETURN() WHITE_RETURN('\n') #define PA_KEYWORD_RETURN(x) RETURN_VAL(x) /* standard C PArser Keyword */ #define CPP_KEYWORD_RETURN(x) PA_KEYWORD_RETURN(x) /* C++ keyword */ #define PPPA_KEYWORD_RETURN(x) RETURN_VAL(x) /* both PreProcessor and PArser keyword */ #define PP_KEYWORD_RETURN(x) IDENTIFIER_RETURN() #define COMMENT_RETURN() RETURN_VAL(x) #define NUMERICAL_RETURN(x) RETURN_VAL(x) /* some sort of constant */ #define LITERAL_RETURN(x) RETURN_VAL(x) /* a string literal */ #define RETURN_VAL(x) yylval = yytext; return(x); #define isatty(a) (1) #define fileno(a) (1) #define YY_SKIP_YYWRAP int main1(int argc, char*argv[]); int yywrap(){return 1;} #undef YY_INPUT #define YY_INPUT(b,r,ms) (r = my_yyinput(b,ms)) #ifndef min #define min(a,b) ((a)<(b)?(a):(b)) #endif int my_yyinput(char* buf,int max_size); #define ECHO #define COMMENT 1 /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap YY_PROTO(( void )); #else extern int yywrap YY_PROTO(( void )); #endif #endif #ifndef YY_NO_UNPUT static void yyunput YY_PROTO(( int c, char *buf_ptr )); #endif #ifndef yytext_ptr static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen YY_PROTO(( yyconst char * )); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput YY_PROTO(( void )); #else static int input YY_PROTO(( void )); #endif #endif #if YY_STACK_USED static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = 0; #ifndef YY_NO_PUSH_STATE static void yy_push_state YY_PROTO(( int new_state )); #endif #ifndef YY_NO_POP_STATE static void yy_pop_state YY_PROTO(( void )); #endif #ifndef YY_NO_TOP_STATE static int yy_top_state YY_PROTO(( void )); #endif #else #define YY_NO_PUSH_STATE 1 #define YY_NO_POP_STATE 1 #define YY_NO_TOP_STATE 1 #endif #ifdef YY_MALLOC_DECL YY_MALLOC_DECL #else #if __STDC__ #ifndef __cplusplus #include #endif #else /* Just try to get by without declaring the routines. This will fail * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) * or sizeof(void*) != sizeof(int). */ #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #define YY_READ_BUF_SIZE 8192 #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( yy_current_buffer->yy_is_interactive ) \ { \ int c = '*', n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL int yylex YY_PROTO(( void )) #endif /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION YY_DECL { register yy_state_type yy_current_state; register char *yy_cp = NULL, *yy_bp = NULL; register int yy_act; if ( yy_init ) { yy_init = 0; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! yy_start ) yy_start = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_load_buffer_state(); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = yy_c_buf_p; /* Support of yytext. */ *yy_cp = yy_hold_char; /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = yy_start; yy_match: do { register YY_CHAR yy_c = (YY_CHAR)yy_ec[YY_SC_TO_UI(*yy_cp)]; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 812 ) yy_c = (YY_CHAR)yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 1133 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = yy_hold_char; yy_cp = yy_last_accepting_cpos; yy_current_state = yy_last_accepting_state; goto yy_find_action; case 1: YY_RULE_SETUP { RETURN_VAL(LEX_WHITE_SPACE); } YY_BREAK case 2: YY_RULE_SETUP { RETURN_VAL(LEX_WHITE_SPACE); } YY_BREAK case 3: YY_RULE_SETUP { RETURN_VAL(LEX_WHITE_SPACE); } YY_BREAK case 4: YY_RULE_SETUP {RETURN_VAL(LEX___ABSTRACT);} YY_BREAK case 5: YY_RULE_SETUP {RETURN_VAL(LEX___ALIGNOF);} YY_BREAK case 6: YY_RULE_SETUP {RETURN_VAL(LEX___ASM);} YY_BREAK case 7: YY_RULE_SETUP {RETURN_VAL(LEX___ASSUME);} YY_BREAK case 8: YY_RULE_SETUP {RETURN_VAL(LEX___BASED);} YY_BREAK case 9: YY_RULE_SETUP {RETURN_VAL(LEX___BOX);} YY_BREAK case 10: YY_RULE_SETUP {RETURN_VAL(LEX___CDECL);} YY_BREAK case 11: YY_RULE_SETUP {RETURN_VAL(LEX___DECLSPEC);} YY_BREAK case 12: YY_RULE_SETUP {RETURN_VAL(LEX___DELEGATE);} YY_BREAK case 13: YY_RULE_SETUP {RETURN_VAL(LEX___EVENT);} YY_BREAK case 14: YY_RULE_SETUP {RETURN_VAL(LEX___EXCEPT);} YY_BREAK case 15: YY_RULE_SETUP {RETURN_VAL(LEX___FASTCALL);} YY_BREAK case 16: YY_RULE_SETUP {RETURN_VAL(LEX___FORCEINLINE);} YY_BREAK case 17: YY_RULE_SETUP {RETURN_VAL(LEX___GC);} YY_BREAK case 18: YY_RULE_SETUP {RETURN_VAL(LEX___HOOK);} YY_BREAK case 19: YY_RULE_SETUP {RETURN_VAL(LEX___IDENTIFIER);} YY_BREAK case 20: YY_RULE_SETUP {RETURN_VAL(LEX___IF_EXISTS);} YY_BREAK case 21: YY_RULE_SETUP {RETURN_VAL(LEX___IF_NOT_EXISTS);} YY_BREAK case 22: YY_RULE_SETUP {RETURN_VAL(LEX___INLINE);} YY_BREAK case 23: YY_RULE_SETUP {RETURN_VAL(LEX___INT8);} YY_BREAK case 24: YY_RULE_SETUP {RETURN_VAL(LEX___INT16);} YY_BREAK case 25: YY_RULE_SETUP {RETURN_VAL(LEX___INT32);} YY_BREAK case 26: YY_RULE_SETUP {RETURN_VAL(LEX___INT64);} YY_BREAK case 27: YY_RULE_SETUP {RETURN_VAL(LEX___INTERFACE);} YY_BREAK case 28: YY_RULE_SETUP {RETURN_VAL(LEX___LEAVE);} YY_BREAK case 29: YY_RULE_SETUP {RETURN_VAL(LEX___M64);} YY_BREAK case 30: YY_RULE_SETUP {RETURN_VAL(LEX___M128);} YY_BREAK case 31: YY_RULE_SETUP {RETURN_VAL(LEX___M128D);} YY_BREAK case 32: YY_RULE_SETUP {RETURN_VAL(LEX___M128I);} YY_BREAK case 33: YY_RULE_SETUP {RETURN_VAL(LEX___MULTIPLE_INHERITANCE);} YY_BREAK case 34: YY_RULE_SETUP {RETURN_VAL(LEX___NOGC);} YY_BREAK case 35: YY_RULE_SETUP {RETURN_VAL(LEX___NOOP);} YY_BREAK case 36: YY_RULE_SETUP {RETURN_VAL(LEX___PIN);} YY_BREAK case 37: YY_RULE_SETUP {RETURN_VAL(LEX___PROPERTY);} YY_BREAK case 38: YY_RULE_SETUP {RETURN_VAL(LEX___RAISE);} YY_BREAK case 39: YY_RULE_SETUP {RETURN_VAL(LEX___SEALED);} YY_BREAK case 40: YY_RULE_SETUP {RETURN_VAL(LEX___SINGLE_INHERITANCE);} YY_BREAK case 41: YY_RULE_SETUP {RETURN_VAL(LEX___STDCALL);} YY_BREAK case 42: YY_RULE_SETUP {RETURN_VAL(LEX___SUPER);} YY_BREAK case 43: YY_RULE_SETUP {RETURN_VAL(LEX___TRY_CAST);} YY_BREAK case 44: YY_RULE_SETUP {RETURN_VAL(LEX___TRY);} YY_BREAK case 45: YY_RULE_SETUP {RETURN_VAL(LEX___FINALLY);} YY_BREAK case 46: YY_RULE_SETUP {RETURN_VAL(LEX___UNHOOK);} YY_BREAK case 47: YY_RULE_SETUP {RETURN_VAL(LEX___UUIDOF);} YY_BREAK case 48: YY_RULE_SETUP {RETURN_VAL(LEX___VALUE);} YY_BREAK case 49: YY_RULE_SETUP {RETURN_VAL(LEX___VIRTUAL_INHERITANCE);} YY_BREAK case 50: YY_RULE_SETUP {RETURN_VAL(LEX___W64);} YY_BREAK case 51: YY_RULE_SETUP {RETURN_VAL(LEX_BOOL);} YY_BREAK case 52: YY_RULE_SETUP {RETURN_VAL(LEX_BREAK);} YY_BREAK case 53: YY_RULE_SETUP {RETURN_VAL(LEX_CASE);} YY_BREAK case 54: YY_RULE_SETUP {RETURN_VAL(LEX_CATCH);} YY_BREAK case 55: YY_RULE_SETUP {RETURN_VAL(LEX_CHAR);} YY_BREAK case 56: YY_RULE_SETUP {RETURN_VAL(LEX_CLASS);} YY_BREAK case 57: YY_RULE_SETUP {RETURN_VAL(LEX_CONST);} YY_BREAK case 58: YY_RULE_SETUP {RETURN_VAL(LEX_CONST_CAST);} YY_BREAK case 59: YY_RULE_SETUP {RETURN_VAL(LEX_CONTINUE);} YY_BREAK case 60: YY_RULE_SETUP {RETURN_VAL(LEX_DEFAULT);} YY_BREAK case 61: YY_RULE_SETUP {RETURN_VAL(LEX_DELETE);} YY_BREAK case 62: YY_RULE_SETUP {RETURN_VAL(LEX_DEPRECATED);} YY_BREAK case 63: YY_RULE_SETUP {RETURN_VAL(LEX_DLLEXPORT);} YY_BREAK case 64: YY_RULE_SETUP {RETURN_VAL(LEX_DLLIMPORT);} YY_BREAK case 65: YY_RULE_SETUP {RETURN_VAL(LEX_DO);} YY_BREAK case 66: YY_RULE_SETUP {RETURN_VAL(LEX_DOUBLE);} YY_BREAK case 67: YY_RULE_SETUP {RETURN_VAL(LEX_DYNAMIC_CAST);} YY_BREAK case 68: YY_RULE_SETUP {RETURN_VAL(LEX_ELSE);} YY_BREAK case 69: YY_RULE_SETUP {RETURN_VAL(LEX_ENUM);} YY_BREAK case 70: YY_RULE_SETUP {RETURN_VAL(LEX_EXPLICIT);} YY_BREAK case 71: YY_RULE_SETUP {RETURN_VAL(LEX_EXTERN);} YY_BREAK case 72: YY_RULE_SETUP {RETURN_VAL(LEX_FALSE);} YY_BREAK case 73: YY_RULE_SETUP {RETURN_VAL(LEX_FLOAT);} YY_BREAK case 74: YY_RULE_SETUP {RETURN_VAL(LEX_FOR);} YY_BREAK case 75: YY_RULE_SETUP {RETURN_VAL(LEX_FRIEND);} YY_BREAK case 76: YY_RULE_SETUP {RETURN_VAL(LEX_GOTO);} YY_BREAK case 77: YY_RULE_SETUP {RETURN_VAL(LEX_IF);} YY_BREAK case 78: YY_RULE_SETUP {RETURN_VAL(LEX_INLINE);} YY_BREAK case 79: YY_RULE_SETUP {RETURN_VAL(LEX_INT);} YY_BREAK case 80: YY_RULE_SETUP {RETURN_VAL(LEX_LONG);} YY_BREAK case 81: YY_RULE_SETUP {RETURN_VAL(LEX_MUTABLE);} YY_BREAK case 82: YY_RULE_SETUP {RETURN_VAL(LEX_NAKED);} YY_BREAK case 83: YY_RULE_SETUP {RETURN_VAL(LEX_NAMESPACE);} YY_BREAK case 84: YY_RULE_SETUP {RETURN_VAL(LEX_NEW);} YY_BREAK case 85: YY_RULE_SETUP {RETURN_VAL(LEX_NOINLINE);} YY_BREAK case 86: YY_RULE_SETUP {RETURN_VAL(LEX_NORETURN);} YY_BREAK case 87: YY_RULE_SETUP {RETURN_VAL(LEX_NOTHROW);} YY_BREAK case 88: YY_RULE_SETUP {RETURN_VAL(LEX_NOVTABLE);} YY_BREAK case 89: YY_RULE_SETUP {RETURN_VAL(LEX_OPERATOR);} YY_BREAK case 90: YY_RULE_SETUP {RETURN_VAL(LEX_PRIVATE);} YY_BREAK case 91: YY_RULE_SETUP {RETURN_VAL(LEX_PROPERTY);} YY_BREAK case 92: YY_RULE_SETUP {RETURN_VAL(LEX_PROTECTED);} YY_BREAK case 93: YY_RULE_SETUP {RETURN_VAL(LEX_PUBLIC);} YY_BREAK case 94: YY_RULE_SETUP {RETURN_VAL(LEX_REGISTER);} YY_BREAK case 95: YY_RULE_SETUP {RETURN_VAL(LEX_REINTERPRET_CAST);} YY_BREAK case 96: YY_RULE_SETUP {RETURN_VAL(LEX_RETURN);} YY_BREAK case 97: YY_RULE_SETUP {RETURN_VAL(LEX_SELECTANY);} YY_BREAK case 98: YY_RULE_SETUP {RETURN_VAL(LEX_SHORT);} YY_BREAK case 99: YY_RULE_SETUP {RETURN_VAL(LEX_SIGNED);} YY_BREAK case 100: YY_RULE_SETUP {RETURN_VAL(LEX_SIZEOF);} YY_BREAK case 101: YY_RULE_SETUP {RETURN_VAL(LEX_STATIC);} YY_BREAK case 102: YY_RULE_SETUP {RETURN_VAL(LEX_STATIC_CAST);} YY_BREAK case 103: YY_RULE_SETUP {RETURN_VAL(LEX_STRUCT);} YY_BREAK case 104: YY_RULE_SETUP {RETURN_VAL(LEX_SWITCH);} YY_BREAK case 105: YY_RULE_SETUP {RETURN_VAL(LEX_TEMPLATE);} YY_BREAK case 106: YY_RULE_SETUP {RETURN_VAL(LEX_THIS);} YY_BREAK case 107: YY_RULE_SETUP {RETURN_VAL(LEX_THREAD);} YY_BREAK case 108: YY_RULE_SETUP {RETURN_VAL(LEX_THROW);} YY_BREAK case 109: YY_RULE_SETUP {RETURN_VAL(LEX_TRUE);} YY_BREAK case 110: YY_RULE_SETUP {RETURN_VAL(LEX_TRY);} YY_BREAK case 111: YY_RULE_SETUP {RETURN_VAL(LEX_TYPEDEF);} YY_BREAK case 112: YY_RULE_SETUP {RETURN_VAL(LEX_TYPEID);} YY_BREAK case 113: YY_RULE_SETUP {RETURN_VAL(LEX_TYPENAME);} YY_BREAK case 114: YY_RULE_SETUP {RETURN_VAL(LEX_UNION);} YY_BREAK case 115: YY_RULE_SETUP {RETURN_VAL(LEX_UNSIGNED);} YY_BREAK case 116: YY_RULE_SETUP {RETURN_VAL(LEX_USING);} YY_BREAK case 117: YY_RULE_SETUP {RETURN_VAL(LEX_UUID);} YY_BREAK case 118: YY_RULE_SETUP {RETURN_VAL(LEX_VIRTUAL);} YY_BREAK case 119: YY_RULE_SETUP {RETURN_VAL(LEX_VOID);} YY_BREAK case 120: YY_RULE_SETUP {RETURN_VAL(LEX_VOLATILE);} YY_BREAK case 121: YY_RULE_SETUP {RETURN_VAL(LEX___WCHAR_T);} YY_BREAK case 122: YY_RULE_SETUP {RETURN_VAL(LEX_WCHAR_T);} YY_BREAK case 123: YY_RULE_SETUP {RETURN_VAL(LEX_WHILE);} YY_BREAK case 124: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_DEFINE);} YY_BREAK case 125: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_ERROR);} YY_BREAK case 126: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_IMPORT);} YY_BREAK case 127: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_UNDEF);} YY_BREAK case 128: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_ELIF);} YY_BREAK case 129: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_IF);} YY_BREAK case 130: YY_RULE_SETUP {RETURN_VAL(LEX_INCLUDE);} YY_BREAK case 131: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_USING);} YY_BREAK case 132: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_ELSE);} YY_BREAK case 133: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_IFDEF);} YY_BREAK case 134: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_LINE);} YY_BREAK case 135: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_ENDIF);} YY_BREAK case 136: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_IFNDEF);} YY_BREAK case 137: YY_RULE_SETUP {RETURN_VAL(LEX_PRE_GRAMA);} YY_BREAK case 138: YY_RULE_SETUP {RETURN_VAL(LEX_IDENTIFIER);} YY_BREAK case 139: YY_RULE_SETUP {RETURN_VAL(LEX_INTEGERconstant);} YY_BREAK case 140: YY_RULE_SETUP {RETURN_VAL(LEX_OCTALconstant);} YY_BREAK case 141: YY_RULE_SETUP {RETURN_VAL(LEX_HEXconstant);} YY_BREAK case 142: YY_RULE_SETUP {RETURN_VAL(LEX_FLOATINGconstant);} YY_BREAK case 143: YY_RULE_SETUP {RETURN_VAL(LEX_CHARACTERconstant);} YY_BREAK case 144: YY_RULE_SETUP {RETURN_VAL(LEX_STRINGliteral);} YY_BREAK case 145: YY_RULE_SETUP {RETURN_VAL(LEX_LP);} YY_BREAK case 146: YY_RULE_SETUP {RETURN_VAL(LEX_RP);} YY_BREAK case 147: YY_RULE_SETUP {RETURN_VAL(LEX_COMMA);} YY_BREAK case 148: YY_RULE_SETUP {RETURN_VAL('#') ;} YY_BREAK case 149: YY_RULE_SETUP {RETURN_VAL(LEX_POUNDPOUND);} YY_BREAK case 150: YY_RULE_SETUP {RETURN_VAL(LEX_LC);} YY_BREAK case 151: YY_RULE_SETUP {RETURN_VAL(LEX_RC);} YY_BREAK case 152: YY_RULE_SETUP {RETURN_VAL(LEX_LB);} YY_BREAK case 153: YY_RULE_SETUP {RETURN_VAL(LEX_RB);} YY_BREAK case 154: YY_RULE_SETUP {RETURN_VAL(LEX_DOT);} YY_BREAK case 155: YY_RULE_SETUP {RETURN_VAL(LEX_AND);} YY_BREAK case 156: YY_RULE_SETUP {RETURN_VAL(LEX_STAR);} YY_BREAK case 157: YY_RULE_SETUP {RETURN_VAL(LEX_PLUS);} YY_BREAK case 158: YY_RULE_SETUP {RETURN_VAL(LEX_MINUS);} YY_BREAK case 159: YY_RULE_SETUP {RETURN_VAL(LEX_NEGATE);} YY_BREAK case 160: YY_RULE_SETUP {RETURN_VAL(LEX_NOT);} YY_BREAK case 161: YY_RULE_SETUP {RETURN_VAL(LEX_DIV);} YY_BREAK case 162: YY_RULE_SETUP {RETURN_VAL(LEX_MOD);} YY_BREAK case 163: YY_RULE_SETUP {RETURN_VAL(LEX_LT);} YY_BREAK case 164: YY_RULE_SETUP {RETURN_VAL(LEX_GT);} YY_BREAK case 165: YY_RULE_SETUP {RETURN_VAL(LEX_XOR);} YY_BREAK case 166: YY_RULE_SETUP {RETURN_VAL(LEX_PIPE);} YY_BREAK case 167: YY_RULE_SETUP {RETURN_VAL(LEX_QUESTION);} YY_BREAK case 168: YY_RULE_SETUP {RETURN_VAL(LEX_COLON);} YY_BREAK case 169: YY_RULE_SETUP {RETURN_VAL(LEX_SEMICOLON);} YY_BREAK case 170: YY_RULE_SETUP {RETURN_VAL(LEX_ASSIGN);} YY_BREAK case 171: YY_RULE_SETUP {RETURN_VAL(LEX_DOTstar);} YY_BREAK case 172: YY_RULE_SETUP {RETURN_VAL(LEX_CLCL);} YY_BREAK case 173: YY_RULE_SETUP {RETURN_VAL(LEX_ARROW);} YY_BREAK case 174: YY_RULE_SETUP {RETURN_VAL(LEX_ARROWstar);} YY_BREAK case 175: YY_RULE_SETUP {RETURN_VAL(LEX_ICR);} YY_BREAK case 176: YY_RULE_SETUP {RETURN_VAL(LEX_DECR);} YY_BREAK case 177: YY_RULE_SETUP {RETURN_VAL(LEX_LS);} YY_BREAK case 178: YY_RULE_SETUP {RETURN_VAL(LEX_RS);} YY_BREAK case 179: YY_RULE_SETUP {RETURN_VAL(LEX_LE);} YY_BREAK case 180: YY_RULE_SETUP {RETURN_VAL(LEX_GE);} YY_BREAK case 181: YY_RULE_SETUP {RETURN_VAL(LEX_EQ);} YY_BREAK case 182: YY_RULE_SETUP {RETURN_VAL(LEX_NE);} YY_BREAK case 183: YY_RULE_SETUP {RETURN_VAL(LEX_ANDAND);} YY_BREAK case 184: YY_RULE_SETUP {RETURN_VAL(LEX_OROR);} YY_BREAK case 185: YY_RULE_SETUP {RETURN_VAL(LEX_MULTassign);} YY_BREAK case 186: YY_RULE_SETUP {RETURN_VAL(LEX_DIVassign);} YY_BREAK case 187: YY_RULE_SETUP {RETURN_VAL(LEX_MODassign);} YY_BREAK case 188: YY_RULE_SETUP {RETURN_VAL(LEX_PLUSassign);} YY_BREAK case 189: YY_RULE_SETUP {RETURN_VAL(LEX_MINUSassign);} YY_BREAK case 190: YY_RULE_SETUP {RETURN_VAL(LEX_LSassign);} YY_BREAK case 191: YY_RULE_SETUP {RETURN_VAL(LEX_RSassign);} YY_BREAK case 192: YY_RULE_SETUP {RETURN_VAL(LEX_ANDassign);} YY_BREAK case 193: YY_RULE_SETUP {RETURN_VAL(LEX_ERassign);} YY_BREAK case 194: YY_RULE_SETUP {RETURN_VAL(LEX_ORassign);} YY_BREAK case 195: YY_RULE_SETUP {RETURN_VAL(LEX_ELLIPSIS);} YY_BREAK case 196: YY_RULE_SETUP {BEGIN COMMENT;RETURN_VAL(LEX_COMMENT_BLOCK_BEGIN);} YY_BREAK case 197: YY_RULE_SETUP {BEGIN 0;RETURN_VAL(LEX_COMMENT_BLOCK_END);} YY_BREAK case 198: YY_RULE_SETUP {RETURN_VAL(LEX_COMMENT_LINE);} YY_BREAK case 199: YY_RULE_SETUP {RETURN_VAL(LEX_UNKNOW);} YY_BREAK case 200: YY_RULE_SETUP ECHO; YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(COMMENT): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = yy_hold_char; YY_RESTORE_YY_MORE_OFFSET if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between yy_current_buffer and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ yy_n_chars = yy_current_buffer->yy_n_chars; yy_current_buffer->yy_input_file = yyin; yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) { /* This was really a NUL. */ yy_state_type yy_next_state; yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = yytext_ptr + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++yy_c_buf_p; yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = yy_c_buf_p; goto yy_find_action; } } else switch ( yy_get_next_buffer() ) { case EOB_ACT_END_OF_FILE: { yy_did_buffer_switch_on_eof = 0; if ( yywrap() ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: yy_c_buf_p = &yy_current_buffer->yy_ch_buf[yy_n_chars]; yy_current_state = yy_get_previous_state(); yy_cp = yy_c_buf_p; yy_bp = yytext_ptr + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer() { register char *dest = yy_current_buffer->yy_ch_buf; register char *source = yytext_ptr; register int number_to_move, i; int ret_val; if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( yy_current_buffer->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ yy_current_buffer->yy_n_chars = yy_n_chars = 0; else { int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ #ifdef YY_USES_REJECT YY_FATAL_ERROR( "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); #else /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = yy_current_buffer; int yy_c_buf_p_offset = (int) (yy_c_buf_p - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yy_flex_realloc( (void *) b->yy_ch_buf, b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1; #endif } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), yy_n_chars, num_to_read ); yy_current_buffer->yy_n_chars = yy_n_chars; } if ( yy_n_chars == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; yy_current_buffer->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; yy_n_chars += number_to_move; yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state() { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = yy_start; for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) { register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 812 ) yy_c = (YY_CHAR)yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ #ifdef YY_USE_PROTOS static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) #else static yy_state_type yy_try_NUL_trans( yy_current_state ) yy_state_type yy_current_state; #endif { register int yy_is_jam; register char *yy_cp = yy_c_buf_p; register YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { yy_last_accepting_state = yy_current_state; yy_last_accepting_cpos = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 812 ) yy_c = (YY_CHAR)yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 811); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT #ifdef YY_USE_PROTOS static void yyunput( int c, register char *yy_bp ) #else static void yyunput( c, yy_bp ) int c; register char *yy_bp; #endif { register char *yy_cp = yy_c_buf_p; /* undo effects of setting up yytext */ *yy_cp = yy_hold_char; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ register int number_to_move = yy_n_chars + 2; register char *dest = &yy_current_buffer->yy_ch_buf[ yy_current_buffer->yy_buf_size + 2]; register char *source = &yy_current_buffer->yy_ch_buf[number_to_move]; while ( source > yy_current_buffer->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); yy_current_buffer->yy_n_chars = yy_n_chars = yy_current_buffer->yy_buf_size; if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; yytext_ptr = yy_bp; yy_hold_char = *yy_cp; yy_c_buf_p = yy_cp; } #endif /* ifndef YY_NO_UNPUT */ #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput() #else static int input() #endif { int c; *yy_c_buf_p = yy_hold_char; if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) /* This was really a NUL. */ *yy_c_buf_p = '\0'; else { /* need more input */ int offset = *(int*)&yy_c_buf_p - *(int*)&yytext_ptr; ++yy_c_buf_p; switch ( yy_get_next_buffer() ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /* fall through */ case EOB_ACT_END_OF_FILE: { if ( yywrap() ) return EOF; if ( ! yy_did_buffer_switch_on_eof ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: yy_c_buf_p = yytext_ptr + offset; break; } } } c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ *yy_c_buf_p = '\0'; /* preserve yytext */ yy_hold_char = *++yy_c_buf_p; return c; } #endif /* YY_NO_INPUT */ #ifdef YY_USE_PROTOS void yyrestart( FILE *input_file ) #else void yyrestart( input_file ) FILE *input_file; #endif { if ( ! yy_current_buffer ) yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); yy_init_buffer( yy_current_buffer, input_file ); yy_load_buffer_state(); } #ifdef YY_USE_PROTOS void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) #else void yy_switch_to_buffer( new_buffer ) YY_BUFFER_STATE new_buffer; #endif { if ( yy_current_buffer == new_buffer ) return; if ( yy_current_buffer ) { /* Flush out information for old buffer. */ *yy_c_buf_p = yy_hold_char; yy_current_buffer->yy_buf_pos = yy_c_buf_p; yy_current_buffer->yy_n_chars = yy_n_chars; } yy_current_buffer = new_buffer; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ yy_did_buffer_switch_on_eof = 1; } #ifdef YY_USE_PROTOS void yy_load_buffer_state( void ) #else void yy_load_buffer_state() #endif { yy_n_chars = yy_current_buffer->yy_n_chars; yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; yyin = yy_current_buffer->yy_input_file; yy_hold_char = *yy_c_buf_p; } #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) #else YY_BUFFER_STATE yy_create_buffer( file, size ) FILE *file; int size; #endif { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } #ifdef YY_USE_PROTOS void yy_delete_buffer( YY_BUFFER_STATE b ) #else void yy_delete_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; if ( b == yy_current_buffer ) yy_current_buffer = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yy_flex_free( (void *) b->yy_ch_buf ); yy_flex_free( (void *) b ); } #ifdef YY_USE_PROTOS void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) #else void yy_init_buffer( b, file ) YY_BUFFER_STATE b; FILE *file; #endif { yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; #if YY_ALWAYS_INTERACTIVE b->yy_is_interactive = 1; #else #if YY_NEVER_INTERACTIVE b->yy_is_interactive = 0; #else b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; #endif #endif } #ifdef YY_USE_PROTOS void yy_flush_buffer( YY_BUFFER_STATE b ) #else void yy_flush_buffer( b ) YY_BUFFER_STATE b; #endif { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == yy_current_buffer ) yy_load_buffer_state(); } #ifndef YY_NO_SCAN_BUFFER #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) #else YY_BUFFER_STATE yy_scan_buffer( base, size ) char *base; yy_size_t size; #endif { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return 0; b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = 0; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } #endif #ifndef YY_NO_SCAN_STRING #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) #else YY_BUFFER_STATE yy_scan_string( yy_str ) yyconst char *yy_str; #endif { int len; for ( len = 0; yy_str[len]; ++len ) ; return yy_scan_bytes( yy_str, len ); } #endif #ifndef YY_NO_SCAN_BYTES #ifdef YY_USE_PROTOS YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) #else YY_BUFFER_STATE yy_scan_bytes( bytes, len ) yyconst char *bytes; int len; #endif { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = len + 2; buf = (char *) yy_flex_alloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < len; ++i ) buf[i] = bytes[i]; buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #endif #ifndef YY_NO_PUSH_STATE #ifdef YY_USE_PROTOS static void yy_push_state( int new_state ) #else static void yy_push_state( new_state ) int new_state; #endif { if ( yy_start_stack_ptr >= yy_start_stack_depth ) { yy_size_t new_size; yy_start_stack_depth += YY_START_STACK_INCR; new_size = yy_start_stack_depth * sizeof( int ); if ( ! yy_start_stack ) yy_start_stack = (int *) yy_flex_alloc( new_size ); else yy_start_stack = (int *) yy_flex_realloc( (void *) yy_start_stack, new_size ); if ( ! yy_start_stack ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } yy_start_stack[yy_start_stack_ptr++] = YY_START; BEGIN(new_state); } #endif #ifndef YY_NO_POP_STATE static void yy_pop_state() { if ( --yy_start_stack_ptr < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN(yy_start_stack[yy_start_stack_ptr]); } #endif #ifndef YY_NO_TOP_STATE static int yy_top_state() { return yy_start_stack[yy_start_stack_ptr - 1]; } #endif #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif #ifdef YY_USE_PROTOS static void yy_fatal_error( yyconst char msg[] ) #else static void yy_fatal_error( msg ) char msg[]; #endif { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ yytext[yyleng] = yy_hold_char; \ yy_c_buf_p = yytext + n; \ yy_hold_char = *yy_c_buf_p; \ *yy_c_buf_p = '\0'; \ yyleng = n; \ } \ while ( 0 ) /* Internal utility routines. */ #ifndef yytext_ptr #ifdef YY_USE_PROTOS static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) #else static void yy_flex_strncpy( s1, s2, n ) char *s1; yyconst char *s2; int n; #endif { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN #ifdef YY_USE_PROTOS static int yy_flex_strlen( yyconst char *s ) #else static int yy_flex_strlen( s ) yyconst char *s; #endif { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif #ifdef YY_USE_PROTOS static void *yy_flex_alloc( yy_size_t size ) #else static void *yy_flex_alloc( size ) yy_size_t size; #endif { return (void *) malloc( size ); } #ifdef YY_USE_PROTOS static void *yy_flex_realloc( void *ptr, yy_size_t size ) #else static void *yy_flex_realloc( ptr, size ) void *ptr; yy_size_t size; #endif { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return (void *) realloc( (char *) ptr, size ); } #ifdef YY_USE_PROTOS static void yy_flex_free( void *ptr ) #else static void yy_flex_free( ptr ) void *ptr; #endif { free( ptr ); } #if YY_MAIN int main() { yylex(); return 0; } #endif /* I won't bother to provide any error recovery. I won't even handle unknown characters */ /*******************************************************************/ int isaTYPE(char* string) { return ('A' <= string[0] && 'Z' >= string[0]); } char* myinputptr="int main(int argc, char* argv[]);"; char* myinputlim; int my_yyinput(char* buf,int max_size) { int n = min(max_size,*(int*)&myinputlim - *(int*)&myinputptr); if(n > 0) { memcpy(buf,myinputptr,n); myinputptr += n; } return n; } #ifndef CODE_OS_NT_DRV #ifdef CODE_OS_WIN int main1(int argc, char* argv[]) #else int main(int argc, char* argv[]) #endif { FILE* fp; size_t filelen=strlen(myinputptr); if(argc==2) { fp = fopen(argv[1],"r"); if(fp) { filelen = fseek(fp,0,SEEK_END); filelen = ftell(fp); if(filelen<=0x1000000) { fseek(fp,0,SEEK_SET); myinputptr = (char*)malloc(filelen); memset(myinputptr,0,filelen); filelen = fread(myinputptr,1,filelen,fp); //printf("read file %d\n",filelen,myinputptr); } else filelen = strlen(myinputptr); fclose(fp); } } myinputlim=myinputptr+filelen; int retvalue=-1; while(retvalue=yylex()) { //printf("retvalue=%d %s\n",retvalue,yylval); } //printf("exit retvalue=%d %s\n",retvalue,yylval); return 0; } #endif #ifdef CODE_OS_NT_DRV typedef TMap CALLOCMAP; CALLOCMAP* gpLexAllocList=NULL; void myfree(void *ptr) { CALLOCMAP::IT FindIT ; FindIT = gpLexAllocList->Find(ptr); if(FindIT!=gpLexAllocList->End()) { gpLexAllocList->Remove(FindIT); delete ptr; if(gpLexAllocList->Count()==0) { delete gpLexAllocList; gpLexAllocList=NULL; } } } void* mymalloc(size_t size) { void* ptr=NULL; ptr = (void*)new char[size]; if(ptr) { if(gpLexAllocList==NULL) { gpLexAllocList=new CALLOCMAP; if(gpLexAllocList==NULL) return NULL; } gpLexAllocList->InsertUnique(ptr,size); } return ptr; } void* myrealloc(void* ptr, size_t size) { char *TmpPtr=NULL; CALLOCMAP::IT FindIT ; FindIT = gpLexAllocList->Find(ptr); if(FindIT!=gpLexAllocList->End()) { if(*FindIT>=size) return ptr; TmpPtr = (char*)mymalloc(size); memcpy(TmpPtr,ptr,*FindIT); myfree(ptr); } return TmpPtr; } #endif ================================================ FILE: Project/Syser/Source/Lex2.h ================================================ #ifndef _LEXTAB_H_ #define _LEXTAB_H_ enum{ LEX___ABSTRACT=0x200, LEX___ALIGNOF, LEX___ASM, LEX___ASSUME, LEX___BASED, LEX___BOX, LEX___CDECL, LEX___DECLSPEC, LEX___DELEGATE, LEX___EVENT, LEX___EXCEPT, LEX___FASTCALL, LEX___FORCEINLINE, LEX___GC, LEX___HOOK, LEX___IDENTIFIER, LEX___IF_EXISTS, LEX___IF_NOT_EXISTS, LEX___INLINE, LEX___INT8, LEX___INT16, LEX___INT32, LEX___INT64, LEX___INTERFACE, LEX___LEAVE, LEX___M64, LEX___M128, LEX___M128D, LEX___M128I, LEX___MULTIPLE_INHERITANCE, LEX___NOGC, LEX___NOOP, LEX___PIN, LEX___PROPERTY, LEX___RAISE, LEX___SEALED, LEX___SINGLE_INHERITANCE, LEX___STDCALL, LEX___SUPER, LEX___TRY_CAST, LEX___TRY, LEX___FINALLY, LEX___UNHOOK, LEX___UUIDOF, LEX___VALUE, LEX___VIRTUAL_INHERITANCE, LEX___W64, LEX_BOOL, LEX_BREAK, LEX_CASE, LEX_CATCH, LEX_CHAR, LEX_CLASS, LEX_CONST, LEX_CONST_CAST, LEX_CONTINUE, LEX_DEFAULT, LEX_DELETE, LEX_DEPRECATED, LEX_DLLEXPORT, LEX_DLLIMPORT, LEX_DO, LEX_DOUBLE, LEX_DYNAMIC_CAST, LEX_ELSE, LEX_ENUM, LEX_EXPLICIT, LEX_EXTERN, LEX_FALSE, LEX_FLOAT, LEX_FOR, LEX_FRIEND, LEX_GOTO, LEX_IF, LEX_INLINE, LEX_INT, LEX_LONG, LEX_MUTABLE, LEX_NAKED, LEX_NAMESPACE, LEX_NEW, LEX_NOINLINE, LEX_NORETURN, LEX_NOTHROW, LEX_NOVTABLE, LEX_OPERATOR, LEX_PRIVATE, LEX_PROPERTY, LEX_PROTECTED, LEX_PUBLIC, LEX_REGISTER, LEX_REINTERPRET_CAST, LEX_RETURN, LEX_SELECTANY, LEX_SHORT, LEX_SIGNED, LEX_SIZEOF, LEX_STATIC, LEX_STATIC_CAST, LEX_STRUCT, LEX_SWITCH, LEX_TEMPLATE, LEX_THIS, LEX_THREAD, LEX_THROW, LEX_TRUE, LEX_TRY, LEX_TYPEDEF, LEX_TYPEID, LEX_TYPENAME, LEX_UNION, LEX_UNSIGNED, LEX_USING, LEX_UUID, LEX_VIRTUAL, LEX_VOID, LEX_VOLATILE, LEX___WCHAR_T, LEX_WCHAR_T, LEX_WHILE, LEX_PRE_DEFINE, LEX_PRE_ERROR, LEX_PRE_IMPORT, LEX_PRE_UNDEF, LEX_PRE_ELIF, LEX_PRE_IF, LEX_INCLUDE, LEX_PRE_USING, LEX_PRE_ELSE, LEX_PRE_IFDEF, LEX_PRE_LINE, LEX_PRE_ENDIF, LEX_PRE_IFNDEF, LEX_PRE_GRAMA, LEX_INTEGERconstant, LEX_OCTALconstant, LEX_HEXconstant, LEX_FLOATINGconstant, LEX_CHARACTERconstant, LEX_STRINGliteral, LEX_LP, LEX_RP, LEX_COMMA, LEX_POUNDPOUND, LEX_LC, LEX_RC, LEX_LB, LEX_RB, LEX_DOT, LEX_AND, LEX_STAR, LEX_PLUS, LEX_MINUS, LEX_NEGATE, LEX_NOT, LEX_DIV, LEX_MOD, LEX_LT, LEX_GT, LEX_XOR, LEX_PIPE, LEX_QUESTION, LEX_COLON, LEX_SEMICOLON, LEX_ASSIGN, LEX_DOTstar, LEX_CLCL, LEX_ARROW, LEX_ARROWstar, LEX_ICR, LEX_DECR, LEX_LS, LEX_RS, LEX_LE, LEX_GE, LEX_EQ, LEX_NE, LEX_ANDAND, LEX_OROR, LEX_MULTassign, LEX_DIVassign, LEX_MODassign, LEX_PLUSassign, LEX_MINUSassign, LEX_LSassign, LEX_RSassign, LEX_ANDassign, LEX_ERassign, LEX_ORassign, LEX_ELLIPSIS, LEX_COMMENT_BLOCK_BEGIN, LEX_COMMENT_BLOCK_END, LEX_COMMENT_LINE, LEX_IDENTIFIER, LEX_WHITE_SPACE, LEX_UNKNOW, }; int yylex(); #ifdef CODE_OS_NT_DRV void yyrestart( void* ); #else void yyrestart( FILE* ); #endif extern int yyleng; extern char* myinputptr; extern char* myinputlim; extern char* yytext; extern char* yylval; #endif //_LEXTAB_H_ ================================================ FILE: Project/Syser/Source/LocalAPIC.cpp ================================================ #include "stdafx.h" #include "LocalAPIC.h" #include "IOAPIC.h" #ifdef __cplusplus extern "C" { #endif DWORD gdwLocalAPICTaskPriority=0; DWORD gdwLocalAPICLineAddress=0; DWORD gdwLocalAPICPhysAddress=0; #ifdef __cplusplus }; // extern "C" #endif void DisableAllLocalAPICInterrupt() { if(gbIsUseAPIC) { DWORD* TaskPriorityRegister=*(DWORD**)&gdwLocalAPICLineAddress; TaskPriorityRegister[0x80/sizeof(DWORD)]=0xff; } } void EnableLocalAPICInterrupt() { if(gbIsUseAPIC) { DWORD* TaskPriorityRegister=*(DWORD**)&gdwLocalAPICLineAddress; TaskPriorityRegister[0x80/sizeof(DWORD)]=0xef; } } void SetLocalAPICEOI(DWORD dwInterruptNum) { DWORD* pdwTemp; pdwTemp =*(DWORD**)&gdwLocalAPICLineAddress; pdwTemp[0xb0/sizeof(DWORD)]=0; } DWORD GetLocalAPICID() { DWORD LocalApicID; DWORD *APICIDRegister = *(DWORD**)&gdwLocalAPICLineAddress; LocalApicID = APICIDRegister[0x20/sizeof(DWORD)]; LocalApicID>>=18; return LocalApicID; } void SaveLocalApic(PSAVELOCALAPIC Save) { DWORD *pLapic = *(DWORD**)&gdwLocalAPICLineAddress,i; Save->APIC_ID=pLapic[0x20/sizeof(DWORD)]; Save->APICVersion=pLapic[0x30/sizeof(DWORD)]; Save->TaskPriority=pLapic[0x80/sizeof(DWORD)]; Save->ArbitrationPriority=pLapic[0x90/sizeof(DWORD)]; Save->ProcessorPriority=pLapic[0xa0/sizeof(DWORD)]; Save->LogicalDestination=pLapic[0xd0/sizeof(DWORD)]; Save->DestinationFormat=pLapic[0xe0/sizeof(DWORD)]; Save->SpuriousInterruptVector=pLapic[0xf0/sizeof(DWORD)]; Save->ErrorStatus=pLapic[0x280/sizeof(DWORD)]; Save->InterruptCommandLow=pLapic[0x300/sizeof(DWORD)]; Save->InterruptCommandHigh=pLapic[0x310/sizeof(DWORD)]; Save->LVTTimer=pLapic[0x320/sizeof(DWORD)]; Save->LVTThermalSensor=pLapic[0x330/sizeof(DWORD)]; Save->LVTPerformanceMonitoringCounters=pLapic[0x340/sizeof(DWORD)]; Save->LVTLINT0=pLapic[0x350/sizeof(DWORD)]; Save->LVTLINT1=pLapic[0x360/sizeof(DWORD)]; Save->LVTError=pLapic[0x370/sizeof(DWORD)]; Save->InitialCount=pLapic[0x380/sizeof(DWORD)]; Save->CurrentCount=pLapic[0x390/sizeof(DWORD)]; Save->DivideConfiguration=pLapic[0x3e0/sizeof(DWORD)]; for(i = 0; i < 8;i++) { Save->InService[i]=pLapic[(0x100+i*0x10)/sizeof(DWORD)]; Save->TriggerMode[i]=pLapic[(0x180+i*0x10)/sizeof(DWORD)]; Save->InterruptRequest[i]=pLapic[(0x200+i*0x10)/sizeof(DWORD)]; } } ================================================ FILE: Project/Syser/Source/LocalAPIC.h ================================================ #ifndef __ASM_APICDEF_H #define __ASM_APICDEF_H #ifdef __cplusplus extern "C" { #endif #define APIC_DEFAULT_PHYS_BASE 0xfee00000 #define APIC_ID_INDEX 0x20 #define APIC_ID_MASK (0x0F<<24) #define GET_APIC_ID(x) (((x)>>24)&0x0F) #define APIC_LVR_INDEX 0x30 #define APIC_LVR_MASK 0xFF00FF #define GET_APIC_VERSION(x) ((x)&0xFF) #define GET_APIC_MAXLVT(x) (((x)>>16)&0xFF) #define APIC_INTEGRATED(x) ((x)&0xF0) #define APIC_TASKPRI_INDEX 0x80 #define APIC_TPRI_MASK 0xFF #define APIC_ARBPRI_INDEX 0x90 #define APIC_ARBPRI_MASK 0xFF #define APIC_PROCPRI_INDEX 0xA0 #define APIC_EOI_INDEX 0xB0 #define APIC_EIO_ACK 0x0 /* Write this to the EOI register */ #define APIC_RRR_INDEX 0xC0 #define APIC_LDR_INDEX 0xD0 #define APIC_LDR_MASK (0xFF<<24) #define GET_APIC_LOGICAL_ID(x) (((x)>>24)&0xFF) #define SET_APIC_LOGICAL_ID(x) (((x)<<24)) #define APIC_ALL_CPUS 0xFF #define APIC_DFR_INDEX 0xE0 #define APIC_SPIV_INDEX 0xF0 #define APIC_SPIV_FOCUS_DISABLED (1<<9) #define APIC_SPIV_APIC_ENABLED (1<<8) #define APIC_ISR_INDEX 0x100 #define APIC_TMR_INDEX 0x180 #define APIC_IRR_INDEX 0x200 #define APIC_ESR_INDEX 0x280 #define APIC_ESR_SEND_CS 0x00001 #define APIC_ESR_RECV_CS 0x00002 #define APIC_ESR_SEND_ACC 0x00004 #define APIC_ESR_RECV_ACC 0x00008 #define APIC_ESR_SENDILL 0x00020 #define APIC_ESR_RECVILL 0x00040 #define APIC_ESR_ILLREGA 0x00080 #define APIC_ICR_INDEX 0x300 #define APIC_DEST_SELF 0x40000 #define APIC_DEST_ALLINC 0x80000 #define APIC_DEST_ALLBUT 0xC0000 #define APIC_ICR_RR_MASK 0x30000 #define APIC_ICR_RR_INVALID 0x00000 #define APIC_ICR_RR_INPROG 0x10000 #define APIC_ICR_RR_VALID 0x20000 #define APIC_INT_LEVELTRIG 0x08000 #define APIC_INT_ASSERT 0x04000 #define APIC_ICR_BUSY 0x01000 #define APIC_DEST_LOGICAL 0x00800 #define APIC_DM_FIXED 0x00000 #define APIC_DM_LOWEST 0x00100 #define APIC_DM_SMI 0x00200 #define APIC_DM_REMRD 0x00300 #define APIC_DM_NMI 0x00400 #define APIC_DM_INIT 0x00500 #define APIC_DM_STARTUP 0x00600 #define APIC_DM_EXTINT 0x00700 #define APIC_VECTOR_MASK 0x000FF #define APIC_ICR2_INDEX 0x310 #define GET_APIC_DEST_FIELD(x) (((x)>>24)&0xFF) #define SET_APIC_DEST_FIELD(x) ((x)<<24) #define APIC_LVTT_INDEX 0x320 #define APIC_LVTPC_INDEX 0x340 #define APIC_LVT0_INDEX 0x350 #define APIC_LVT_TIMER_BASE_MASK (0x3<<18) #define GET_APIC_TIMER_BASE(x) (((x)>>18)&0x3) #define SET_APIC_TIMER_BASE(x) (((x)<<18)) #define APIC_TIMER_BASE_CLKIN 0x0 #define APIC_TIMER_BASE_TMBASE 0x1 #define APIC_TIMER_BASE_DIV 0x2 #define APIC_LVT_TIMER_PERIODIC (1<<17) #define APIC_LVT_MASKED (1<<16) #define APIC_LVT_LEVEL_TRIGGER (1<<15) #define APIC_LVT_REMOTE_IRR (1<<14) #define APIC_INPUT_POLARITY (1<<13) #define APIC_SEND_PENDING (1<<12) #define GET_APIC_DELIVERY_MODE(x) (((x)>>8)&0x7) #define SET_APIC_DELIVERY_MODE(x,y) (((x)&~0x700)|((y)<<8)) #define APIC_MODE_FIXED 0x0 #define APIC_MODE_NMI 0x4 #define APIC_MODE_EXINT 0x7 #define APIC_LVT1_INDEX 0x360 #define APIC_LVTERR_INDEX 0x370 #define APIC_TMICT_INDEX 0x380 #define APIC_TMCCT_INDEX 0x390 #define APIC_TDCR_INDEX 0x3E0 #define APIC_TDR_DIV_TMBASE (1<<2) #define APIC_TDR_DIV_1 0xB #define APIC_TDR_DIV_2 0x0 #define APIC_TDR_DIV_4 0x1 #define APIC_TDR_DIV_8 0x2 #define APIC_TDR_DIV_16 0x3 #define APIC_TDR_DIV_32 0x8 #define APIC_TDR_DIV_64 0x9 #define APIC_TDR_DIV_128 0xA #define MAX_IO_APICS 8 /* * the local APIC register structure, memory mapped. Not terribly well * tested, but we might eventually use this one in the future - the * problem why we cannot use it right now is the P5 APIC, it has an * errata which cannot take 8-bit reads and writes, only 32-bit ones ... */ typedef struct stLocalApic { /*000*/ struct { DWORD reserved[4]; } __reserved_01; /*010*/ struct { DWORD reserved[4]; } __reserved_02; /*020*/ struct { /* APIC ID Register */ DWORD __reserved_1 : 24, phys_apic_id : 4, __reserved_2 : 4; DWORD reserved[3]; } id; /*030*/ const struct { /* APIC Version Register */ DWORD version : 8, __reserved_1 : 8, max_lvt : 8, __reserved_2 : 8; DWORD reserved[3]; } version; /*040*/ struct { DWORD reserved[4]; } __reserved_03; /*050*/ struct { DWORD reserved[4]; } __reserved_04; /*060*/ struct { DWORD reserved[4]; } __reserved_05; /*070*/ struct { DWORD reserved[4]; } __reserved_06; /*080*/ struct { /* Task Priority Register */ DWORD priority : 8, __reserved_1 : 24; DWORD __reserved_2[3]; } tpr; /*090*/ const struct { /* Arbitration Priority Register */ DWORD priority : 8, __reserved_1 : 24; DWORD __reserved_2[3]; } apr; /*0A0*/ const struct { /* Processor Priority Register */ DWORD priority : 8, __reserved_1 : 24; DWORD __reserved_2[3]; } ppr; /*0B0*/ struct { /* End Of Interrupt Register */ DWORD eoi; DWORD reserved[3]; } eoi; /*0C0*/ struct { DWORD reserved[4]; } __reserved_07; /*0D0*/ struct { /* Logical Destination Register */ DWORD __reserved_1 : 24, logical_dest : 8; DWORD __reserved_2[3]; } ldr; /*0E0*/ struct { /* Destination Format Register */ DWORD __reserved_1 : 28, model : 4; DWORD __reserved_2[3]; } dfr; /*0F0*/ struct { /* Spurious Interrupt Vector Register */ DWORD spurious_vector : 8, apic_enabled : 1, focus_cpu : 1, __reserved_2 : 22; DWORD __reserved_3[3]; } svr; /*100*/ struct { /* In Service Register */ /*170*/ DWORD bitfield; DWORD reserved[3]; } isr [8]; /*180*/ struct { /* Trigger Mode Register */ /*1F0*/ DWORD bitfield; DWORD reserved[3]; } tmr [8]; /*200*/ struct { /* Interrupt Request Register */ /*270*/ DWORD bitfield; DWORD reserved[3]; } irr [8]; /*280*/ union { /* Error Status Register */ struct { DWORD send_cs_error : 1, receive_cs_error : 1, send_accept_error : 1, receive_accept_error : 1, __reserved_1 : 1, send_illegal_vector : 1, receive_illegal_vector : 1, illegal_register_address : 1, __reserved_2 : 24; DWORD __reserved_3[3]; } error_bits; struct { DWORD errors; DWORD __reserved_3[3]; } all_errors; } esr; /*290*/ struct { DWORD reserved[4]; } __reserved_08; /*2A0*/ struct { DWORD reserved[4]; } __reserved_09; /*2B0*/ struct { DWORD reserved[4]; } __reserved_10; /*2C0*/ struct { DWORD reserved[4]; } __reserved_11; /*2D0*/ struct { DWORD reserved[4]; } __reserved_12; /*2E0*/ struct { DWORD reserved[4]; } __reserved_13; /*2F0*/ struct { DWORD reserved[4]; } __reserved_14; /*300*/ struct { /* Interrupt Command Register 1 */ DWORD vector : 8, delivery_mode : 3, destination_mode : 1, delivery_status : 1, __reserved_1 : 1, level : 1, trigger : 1, __reserved_2 : 2, shorthand : 2, __reserved_3 : 12; DWORD __reserved_4[3]; } icr1; /*310*/ struct { /* Interrupt Command Register 2 */ union { DWORD __reserved_1 : 24, phys_dest : 4, __reserved_2 : 4; DWORD __reserved_3 : 24, logical_dest : 8; } dest; DWORD __reserved_4[3]; } icr2; /*320*/ struct { /* LVT - Timer */ DWORD vector : 8, __reserved_1 : 4, delivery_status : 1, __reserved_2 : 3, mask : 1, timer_mode : 1, __reserved_3 : 14; DWORD __reserved_4[3]; } lvt_timer; /*330*/ struct { DWORD reserved[4]; } __reserved_15; /*340*/ struct { /* LVT - Performance Counter */ DWORD vector : 8, delivery_mode : 3, __reserved_1 : 1, delivery_status : 1, __reserved_2 : 3, mask : 1, __reserved_3 : 15; DWORD __reserved_4[3]; } lvt_pc; /*350*/ struct { /* LVT - LINT0 */ DWORD vector : 8, delivery_mode : 3, __reserved_1 : 1, delivery_status : 1, polarity : 1, remote_irr : 1, trigger : 1, mask : 1, __reserved_2 : 15; DWORD __reserved_3[3]; } lvt_lint0; /*360*/ struct { /* LVT - LINT1 */ DWORD vector : 8, delivery_mode : 3, __reserved_1 : 1, delivery_status : 1, polarity : 1, remote_irr : 1, trigger : 1, mask : 1, __reserved_2 : 15; DWORD __reserved_3[3]; } lvt_lint1; /*370*/ struct { /* LVT - Error */ DWORD vector : 8, __reserved_1 : 4, delivery_status : 1, __reserved_2 : 3, mask : 1, __reserved_3 : 15; DWORD __reserved_4[3]; } lvt_error; /*380*/ struct { /* Timer Initial Count Register */ DWORD initial_count; DWORD __reserved_2[3]; } timer_icr; /*390*/ const struct { /* Timer Current Count Register */ DWORD curr_count; DWORD __reserved_2[3]; } timer_ccr; /*3A0*/ struct { DWORD reserved[4]; } __reserved_16; /*3B0*/ struct { DWORD reserved[4]; } __reserved_17; /*3C0*/ struct { DWORD reserved[4]; } __reserved_18; /*3D0*/ struct { DWORD reserved[4]; } __reserved_19; /*3E0*/ struct { /* Timer Divide Configuration Register */ DWORD divisor : 4, __reserved_1 : 28; DWORD __reserved_2[3]; } timer_dcr; /*3F0*/ struct { DWORD reserved[4]; } __reserved_20; } LocalAPIC, *PLocalAPIC; typedef struct _SAVELOCALAPIC { union { DWORD APIC_ID; }; union { DWORD APICVersion; }; union { DWORD TaskPriority; }; union { DWORD ArbitrationPriority; }; union { DWORD ProcessorPriority; }; union { DWORD EOI; }; union { DWORD LogicalDestination; }; union { DWORD DestinationFormat; }; union { DWORD SpuriousInterruptVector; }; union { DWORD SpuriousInterruptVector; }; DWORD InService[8]; DWORD TriggerMode[8]; DWORD InterruptRequest[8]; DWORD ErrorStatus; DWORD InterruptCommandLow; DWORD InterruptCommandHigh; DWORD LVTTimer; DWORD LVTThermalSensor; DWORD LVTPerformanceMonitoringCounters; DWORD LVTLINT0; DWORD LVTLINT1; DWORD LVTError; DWORD InitialCount; DWORD CurrentCount; DWORD DivideConfiguration; }SAVELOCALAPIC,*PSAVELOCALAPIC; extern DWORD gdwLocalAPICLineAddress; extern DWORD gdwLocalAPICPhysAddress; extern DWORD gdwLocalAPICTaskPriority; void EnableLocalAPICInterrupt(); void SetLocalAPICEOI(DWORD dwInterruptNum); DWORD GetLocalAPICID(); void SaveLocalApic(PSAVELOCALAPIC Save); void DisableAllLocalAPICInterrupt(); #ifdef __cplusplus }; // extern "C" #endif #endif ================================================ FILE: Project/Syser/Source/LogicStateCAD.cpp ================================================ #include "StdAfx.h" #include "LogicStateCAD.h" CLogicStateCAD::CLogicStateCAD() { } CLogicStateCAD::~CLogicStateCAD() { } bool CLogicStateCAD::LoadRecord(PCSTR FileName) { if(m_FileStream.Open(FileName)==false) return false; STStatePathEntry::Load(m_FileStream,&m_StateRoot,sizeof(STStatePathEntry)); m_FileStream.Close(); return true; } void CLogicStateCAD::ClearRecord() { m_StateRoot.NextEntry.Clear(); } bool CLogicStateCAD::InsertRecord(const STReportInfo&ReportInfo,const TList&RecogCodeList,const TList&PathMethodList) { TList::IT RecogCodeIter; TList::IT PathMethodIter; TStatePathEntrySet::IT SPEIter; STStatePathEntry Entry,*pParentEntry; CODE_ASSERT(RecogCodeList.Count()==PathMethodList.Count()+1); pParentEntry = &m_StateRoot; RecogCodeIter = RecogCodeList.Begin(); PathMethodIter = PathMethodList.Begin(); while(RecogCodeIter!=RecogCodeList.End()) { Entry.RecogCode = *RecogCodeIter; if(RecogCodeIter->CodeType == STRecogCode::IGNORE_ENTRY) { if(pParentEntry->NextEntry.Count()>1) return false; } else SPEIter = pParentEntry->NextEntry.Insert(Entry); if(SPEIter == pParentEntry->NextEntry.End()) SPEIter = pParentEntry->NextEntry.Find(Entry); CODE_ASSERT(SPEIter != m_StateRoot.NextEntry.End()); pParentEntry = &(*SPEIter); if(PathMethodIter==PathMethodList.End()) pParentEntry->ReportInfo = ReportInfo; else pParentEntry->PathMethod = *PathMethodIter; RecogCodeIter++; PathMethodIter++; } return true; } ================================================ FILE: Project/Syser/Source/LogicStateCAD.h ================================================ #ifndef _LOGIC_STATE_CAD_H_ #define _LOGIC_STATE_CAD_H_ struct STReportInfo //ĿϢ { enum { RI_TYPE_COMMENT, RI_TYPE_REPORT }; UINT ID; UINT Type; CStrW Name; //л int Save(ALTFileStream&Stream) { int Length; Length=Stream.Puts(&ID,sizeof(ID)); Length+=Stream.Puts(&Type,sizeof(Type)); Length+=Name.Save(Stream); return Length; } int Load(ALTFileStream&Stream) { int Length; Length=Stream.Gets(&ID,sizeof(ID)); Length+=Stream.Gets(&Type,sizeof(Type)); Length+=Name.Load(Stream); return Length; } }; struct STFuncCode // { WORD FuncSize; //С WORD InstrCount; //ָ DWORD dbCheckSum; //ָBYTEУ DWORD dwCheckSum; //ָWORDУ DWORD ddCheckSum; //ָDWORDУ bool operator<(const STFuncCode&FuncCode)const { if(ddCheckSumFuncCode.ddCheckSum) return false; if(dwCheckSumFuncCode.dwCheckSum) return false; if(dbCheckSumFuncCode.dbCheckSum) return false; if(InstrCountFuncCode.InstrCount) return false; if(FuncSizeFuncCode.FuncSize) return false; return false; } bool operator==(const STFuncCode&FuncCode)const { return FuncSize==FuncCode.FuncSize && InstrCount==FuncCode.InstrCount && dbCheckSum==FuncCode.dbCheckSum && dwCheckSum==FuncCode.dwCheckSum && ddCheckSum==FuncCode.ddCheckSum; } bool operator!=(const STFuncCode&FuncCode)const { return !operator==(FuncCode); } int Save(ALTFileStream&Stream) { return Stream.Puts(this,sizeof(STFuncCode)); } int Load(ALTFileStream&Stream) { return Stream.Gets(this,sizeof(STFuncCode)); } }; struct STRecogCode { enum RECOG_CODE_TYPE { FUNCTION, IGNORE_ENTRY }; RECOG_CODE_TYPE CodeType; union { STFuncCode FuncCode; }; bool operator<(const STRecogCode&RecogCode)const { switch(CodeType) { case FUNCTION: return FuncCode < RecogCode.FuncCode; default: CODE_WARNING("Error : Ƿʶ"); return false; } } bool operator!=(const STRecogCode&RecogCode)const { if(CodeType!=RecogCode.CodeType) return true; switch(CodeType) { case FUNCTION: return FuncCode < RecogCode.FuncCode; default: return false; } } }; typedef TSet CRecogCodeSet; struct STPathMethod { enum METHOD_TYPE { OFFSET, //Offset Ŀڻַƫ //Length Ŀ곤 //Delta ƫƣCall ADDR_PTR, //Offset Ŀڻַƫ //Length Ŀ곤 //Delta ĿַƫƣVFTable OFFSET_PTR, //Offset Ŀڻַƫ CPP_INIT_TERM_TABLE //Offset 캯ʼַƫ //Delta 캯ַʼַƫ }; METHOD_TYPE Method; int Offset; int Length; int Delta; }; struct STStatePathEntry { STRecogCode RecogCode; STReportInfo ReportInfo; STPathMethod PathMethod; TSet NextEntry; inline bool operator<(const STStatePathEntry&Entry)const{return RecogCode < Entry.RecogCode;} int Save(ALTFileStream&Stream) { int Length = 0; Length=Stream.Puts(&RecogCode,sizeof(RecogCode)); Length+=Stream.Puts(&PathMethod,sizeof(PathMethod)); Length+=ReportInfo.Save(Stream); Length+=NextEntry.Save(Stream); return Length; } int Load(ALTFileStream&Stream) { int Length = 0; Length=Stream.Gets(&RecogCode,sizeof(RecogCode)); Length+=Stream.Gets(&PathMethod,sizeof(PathMethod)); Length+=ReportInfo.Load(Stream); Length+=NextEntry.Load(Stream); return Length; } }; typedef TSet TStatePathEntrySet; struct STFuncDescr { CStrA Name; CStrA FullName; int Save(ALTFileStream&Stream) { int Length; Length=Name.Save(Stream); Length+=FullName.Save(Stream); return Length; } int Load(ALTFileStream&Stream) { int Length; Length=Name.Load(Stream); Length+=FullName.Load(Stream); return Length; } }; typedef TMap CFuncDescrMap; class CLogicStateCAD { public: CLogicStateCAD(); ~CLogicStateCAD(); public: bool LoadRecord(PCSTR FileName); bool InsertRecord(const STReportInfo&ReportInfo,const TList&RecogCodeList,const TList&PathMethodList); void ClearRecord(); STStatePathEntry m_StateRoot; CALTFileStream m_FileStream; }; #endif ================================================ FILE: Project/Syser/Source/MainFrame.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SystemIoctl.h" #ifdef CODE_OS_WIN #include "SyserApp.h" #endif extern DWORD dwgErrorCode; #define MAX_TIP_WIDTH 400 WISP_MSG_MAP_BEGIN(CMainFrame) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(EVENT_ID_DEBUG_PLUNGE,OnDebugPlunge) WISP_MSG_MAP(EVENT_ID_DEBUG_TERMINATE,OnDebugTerminate) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_BEGIN_MOVE,OnBeginMove) WISP_MSG_MAP(WISP_WM_END_MOVE,OnEndMove) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CMainFrame) WISP_MSG_EVENT_MAP(EVENT_ID_REG_VIEW,OnEventRegView) WISP_MSG_EVENT_MAP(EVENT_ID_DATA_VIEW_FORM,OnEventDataViewForm) WISP_MSG_EVENT_MAP(EVENT_ID_CALL_STACK,OnEventCallStack) WISP_MSG_EVENT_MAP(EVENT_ID_BREAK_POINT,OnEventBreakPoint) WISP_MSG_EVENT_MAP(EVENT_ID_CONTINUE,OnEventContinue) WISP_MSG_EVENT_MAP(EVENT_ID_RETURN,OnEventReturn) WISP_MSG_EVENT_MAP(EVENT_ID_STEP,OnEventStep) WISP_MSG_EVENT_MAP(EVENT_ID_PROCEED,OnEventProceed) WISP_MSG_EVENT_MAP(EVENT_ID_STEP_BRANCH,OnEventStepBranch) WISP_MSG_EVENT_MAP_DEFAULT_END(OnMenuEventPluginItem) CMainFrame::CMainFrame() { m_pRegWnd=NULL; } CMainFrame::~CMainFrame() { if(m_pRegWnd) delete []m_pRegWnd; } bool CMainFrame::OnMenuEventPluginItem(IN WISP_MSG*pMsg) { return true; } bool CMainFrame::OnDebugPlunge(IN WISP_MSG*pMsg) { gpSyser->m_SyserUI.m_SyserDI.OnDebugPlunge(pMsg->Command.Param1); return true; } bool CMainFrame::OnDebugTerminate(IN WISP_MSG*pMsg) { gpSyser->m_SyserUI.m_SyserDI.OnDebugTerminate(pMsg->Command.Param1!=0); return true; } bool CMainFrame::OnCreate(IN WISP_MSG*pMsg) { dwgErrorCode=903; AttachTitleDIB(WispTKDIB("\\SyserIcon\\Syser.ico",0)); if(m_MainTabWnd.Create(NULL,CWispRect(0,0,m_ClientRect.cx,m_ClientRect.cy),this,0,WISP_TWS_BUTTOM)==false) return false; if(m_SystemExplorer.Create(NULL,CWispRect(0,0,0,0),&m_MainTabWnd,CMD_ID_SYSTEM_EXPLORER,WISP_WS_VIRTUAL)==false) return false; if(m_ConsoleWnd.Create(NULL,CWispRect(0,0,0,0),&m_MainTabWnd,CMD_ID_CONSOLE,WISP_WS_NULL)==false) return false; dwgErrorCode=905; m_SourceDebugFrameWnd.Create(NULL,&m_MainTabWnd.m_ClientRect,&m_MainTabWnd,0,WISP_WS_NULL|WISP_SWS_HORZ|WISP_WS_VIRTUAL); m_ConsoleWnd.Printf(WISP_STR("Wisp Syser Console\n")); m_MainTabWnd.InsertWnd(WISP_STR("System Explorer Ctrl+1"),&m_SystemExplorer,WispTKDIBListDIB("\\Toolbar.bmp",16,16,62)); m_MainTabWnd.InsertWnd(WISP_STR("Command Console Ctrl+2"),&m_ConsoleWnd,WispTKDIBListDIB("\\Toolbar.bmp",16,16,63)); m_MainTabWnd.InsertWnd(WISP_STR("Source Explorer Ctrl+3"),&m_SourceDebugFrameWnd,WispTKDIBListDIB("\\Toolbar.bmp",16,16,15*16+6)); #ifdef CODE_OS_NT_DRV m_CloseBT.Create(NULL,m_ClientRect.cx-18,2,16,16,NULL,WISP_ID_CLOSE,WISP_BS_NORMAL); m_CloseBT.SetDIBList(WispDIBList("\\Skin\\Default\\Close.bmp",16,16)); m_CloseBT.SetOwner(this); #endif m_TipStr.Create(NULL,m_ClientRect.cx-MAX_TIP_WIDTH,m_ClientRect.cy-16,MAX_TIP_WIDTH,16,&m_MainTabWnd,0,WISP_WS_NULL); #ifdef CODE_OS_NT_DRV gpSyser->m_SysInfo.UpdateHostSN(); #endif HookKeyEvent(); gpSyser->AttachHotKey(EVENT_ID_REG_VIEW,this); gpSyser->AttachHotKey(EVENT_ID_DATA_VIEW_FORM,this); gpSyser->AttachHotKey(EVENT_ID_CALL_STACK,this); gpSyser->AttachHotKey(EVENT_ID_BREAK_POINT,this); gpSyser->AttachHotKey(EVENT_ID_CONTINUE,this); gpSyser->AttachHotKey(EVENT_ID_RETURN,this); gpSyser->AttachHotKey(EVENT_ID_STEP,this); gpSyser->AttachHotKey(EVENT_ID_PROCEED,this); gpSyser->AttachHotKey(EVENT_ID_STEP_BRANCH,this); return true; } bool CMainFrame::OnClose(IN WISP_MSG*pMsg) { #ifdef CODE_OS_NT_DRV gpSyser->Exit(); return false; #else return true; #endif } bool CMainFrame::OnDestroy(IN WISP_MSG*pMsg) { DetachTitleDIB(); return true; } bool CMainFrame::OnSize(IN WISP_MSG*pMsg) { int TipSize = m_ClientRect.cx - m_MainTabWnd.m_TabItemWidth; MAX_LIMIT(TipSize,MAX_TIP_WIDTH); MIN_LIMIT(TipSize,0); m_TipStr.MoveToClient(m_ClientRect.cx-TipSize,m_ClientRect.cy-16); m_TipStr.Resize(TipSize,m_TipStr.m_WindowRect.cy); m_MainTabWnd.Resize(m_ClientRect.cx,m_ClientRect.cy); #ifdef CODE_OS_NT_DRV m_CloseBT.MoveToClient(m_ClientRect.cx-18,2); #endif return true; } bool CMainFrame::OnBeginMove(IN WISP_MSG*pMsg) { #ifdef CODE_OS_NT_DRV gpSyser->LockUpdate(); gpSyser->m_RootPosBackup = gpSyser->m_RootPos; gpSyser->m_bMovingFrame = true; #endif return true; } bool CMainFrame::OnEndMove(IN WISP_MSG*pMsg) { #ifdef CODE_OS_NT_DRV gpSyser->RestoreMovingFrame(); WISP_POINT NewPos; gpSyser->UnlockUpdate(); NewPos = gpSyser->m_RootPos; gpSyser->m_RootPos = gpSyser->m_RootPosBackup; gpSyser->RestoreScreen(); gpSyser->m_RootPos = NewPos; gpSyser->BackupScreen(); Update(); gpSyser->UpdateFrameBuffer(); gpSyser->m_bMovingFrame = false; #endif return true; } void CMainFrame::ProcessMoveFrame() { int xDelta,yDelta; xDelta=0;yDelta=0; if(gpCurWisp->m_KeyMap[WISP_VK_LEFT]) xDelta-=20; if(gpCurWisp->m_KeyMap[WISP_VK_RIGHT]) xDelta+=20; if(gpCurWisp->m_KeyMap[WISP_VK_UP]) yDelta-=20; if(gpCurWisp->m_KeyMap[WISP_VK_DOWN]) yDelta+=20; gpSyser->MoveFrame(xDelta,yDelta); } bool CMainFrame::OnKeyEvent(IN WISP_MSG*pMsg) { if(m_pWispBase->m_pModalWnd) return true; if(pMsg->KeyEvent.bKeyDown) { switch(pMsg->KeyEvent.KeyType) { #ifdef CODE_OS_NT_DRV case WISP_MOD_CTRL|WISP_MOD_ALT|WISP_VK_CONTROL: case WISP_MOD_CTRL|WISP_MOD_ALT|WISP_VK_ALT: if(gpSyser->m_bMovingFrame == false) OnBeginMove(NULL); break; case WISP_MOD_CTRL|WISP_MOD_ALT|WISP_VK_LEFT: case WISP_MOD_CTRL|WISP_MOD_ALT|WISP_VK_RIGHT: case WISP_MOD_CTRL|WISP_MOD_ALT|WISP_VK_UP: case WISP_MOD_CTRL|WISP_MOD_ALT|WISP_VK_DOWN: if(gpSyser->m_bMovingFrame) { ProcessMoveFrame(); return false; } break; #endif case WISP_VK_DELETE|WISP_MOD_ALT|WISP_MOD_CTRL: RUNCMD(WSTR("hboot")); return false; break; case WISP_VK_ESCAPE: if(m_pWispBase->m_pFocusWnd && m_pWispBase->m_pFocusWnd->m_CtrlType!=WISP_CTRL_EDIT) SetDefaultFocus(); break; case WISP_VK_1|WISP_MOD_CTRL: case WISP_VK_2|WISP_MOD_CTRL: case WISP_VK_3|WISP_MOD_CTRL: case WISP_VK_4|WISP_MOD_CTRL: case WISP_VK_5|WISP_MOD_CTRL: case WISP_VK_6|WISP_MOD_CTRL: case WISP_VK_7|WISP_MOD_CTRL: case WISP_VK_8|WISP_MOD_CTRL: case WISP_VK_9|WISP_MOD_CTRL: m_MainTabWnd.SetActiveWnd(WISP_VK(pMsg->KeyEvent.KeyType) - WISP_VK_1); return false; break; #ifdef CODE_OS_NT_DRV case WISP_VK_F4: if(gpSyser->m_bScrRestored) { gpSyser->m_pRootWnd->Update(); UPDATE_CODE_VIEW(); UPDATE_DATA_VIEW(); } else { gpSyser->RestoreScreen(); } break; #endif } } else { switch(pMsg->KeyEvent.KeyType) { case WISP_MOD_ALT|WISP_VK_CONTROL: case WISP_MOD_CTRL|WISP_VK_ALT: #ifdef CODE_OS_NT_DRV if(gpSyser->m_bMovingFrame) OnEndMove(NULL); #endif break; } } return true; } bool CMainFrame::OnEventRegView(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventRegView(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventRegView(pMsg); break; } return true; } bool CMainFrame::OnEventDataViewForm(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventDataViewForm(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventDataViewForm(pMsg); break; } return true; } bool CMainFrame::OnEventCallStack(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventCallStack(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventCallStack(pMsg); break; } return true; } bool CMainFrame::OnEventBreakPoint(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventBreakPoint(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventBreakPoint(pMsg); break; } return true; } bool CMainFrame::OnEventContinue(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventContinue(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventContinue(pMsg); break; } return true; } bool CMainFrame::OnEventReturn(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventReturn(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventReturn(pMsg); break; } return true; } bool CMainFrame::OnEventStep(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventStep(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventStep(pMsg); break; } return true; } bool CMainFrame::OnEventProceed(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventProceed(pMsg); break; case SOURCE_EXPLORER_VIEW: m_SourceDebugFrameWnd.OnEventProceed(pMsg); break; } return true; } bool CMainFrame::OnEventStepBranch(IN WISP_MSG*pMsg) { UINT Index = m_MainTabWnd.GetActiveWndIndex(); switch(Index) { case SYSTEM_EXPLORER_VIEW: case CONSOLE_VIEW: m_SystemExplorer.OnEventStepBranch(pMsg); break; case SOURCE_EXPLORER_VIEW: break; } return true; } void CMainFrame::SetDefaultFocus() { switch(gpSyser->m_MainFrame.m_MainTabWnd.GetActiveWndIndex()) { case SYSTEM_EXPLORER_VIEW: gpSyser->m_MainFrame.m_SystemExplorer.m_TerminalWnd.Focus(); break; case CONSOLE_VIEW: gpSyser->m_MainFrame.m_ConsoleWnd.Focus(); break; case SOURCE_EXPLORER_VIEW: { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*) gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_MultiSourceCodeView.GetActiveWnd(); if(pSourceCodeWnd) pSourceCodeWnd->Focus(); else gpSyser->m_MainFrame.m_SourceDebugFrameWnd.Focus(); } break; } } ================================================ FILE: Project/Syser/Source/MainFrame.h ================================================ #ifndef _SYSER_ROOT_WND_H_ #define _SYSER_ROOT_WND_H_ #include "ConsoleWnd.h" #include "SystemExplorer.h" #include "SourceDebugFrameWnd.h" #include "CallStackWnd.h" #include "DataViewForm.h" #include "PEExplorer.h" #include "IBMAsciiWnd.h" #include "KeyMappingPage.h" #include "HwndWnd.h" #include "WndStringReference.h" class CMainFrame : public CWispWnd { public: CMainFrame(); ~CMainFrame(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnDebugPlunge) DECLARE_WISP_MSG(OnDebugTerminate) DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnBeginMove) DECLARE_WISP_MSG(OnEndMove) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventRegView) DECLARE_WISP_MSG_EVENT(OnEventDataViewForm) DECLARE_WISP_MSG_EVENT(OnEventCallStack) DECLARE_WISP_MSG_EVENT(OnEventBreakPoint) DECLARE_WISP_MSG_EVENT(OnEventContinue) DECLARE_WISP_MSG_EVENT(OnEventReturn) DECLARE_WISP_MSG_EVENT(OnEventStep) DECLARE_WISP_MSG_EVENT(OnEventProceed) DECLARE_WISP_MSG_EVENT(OnEventStepBranch) DECLARE_WISP_MSG_EVENT(OnMenuEventPluginItem) public: void SetDefaultFocus(); CWispButton m_CloseBT; CWispTabWnd m_MultiCPURegView; CGeneRegList* m_pRegWnd; CDataViewForm m_DataViewForm; CSystemExplorer m_SystemExplorer; CConsoleWnd m_ConsoleWnd; CSourceDebugFrameWnd m_SourceDebugFrameWnd; CWispTabWnd m_MainTabWnd; CWispProgressForm m_ProgressForm; CDebuggerSelectForm m_DebuggerSelectForm; CPluginListForm m_PluginListForm; CKeyMappingPage m_KeyMapForm; CWispSoftKeyboard m_SoftKeyboard; CBreakPointForm m_BreakPointForm; CPageMapWnd m_PageMapWnd; CX86RegHelpTabWnd m_RegHelpWnd; CWispCalcWnd m_WispCalcWnd; CObjectDirectoryWnd m_ObjectWnd; CDataOperatorDlg m_DataOperatorDlg; CCrossReferenceForm m_CrossReferenceForm; CCommentList m_CommentList; CCallStackWnd m_CallStackWnd; CRunTraceWnd m_RunTraceWnd; CModuleListWnd m_ModuleList; CHwndListWnd m_HwndListWnd; CHwndPropertyForm m_HwndPropertyForm; CProcessList m_ProcessList; CIDTWnd m_IDTWnd; CGDTWnd m_GDTWnd; CWispStaticStr m_TipStr; CStringReferenceList m_StringReferenceWnd; CFindListWnd m_FindListWnd; CPEExplorerForm m_PEExplorerForm; CIBMAsciiWnd m_IBMAsciiWnd; CIBMAsciiWnd m_EBEDICWnd; CIBMAsciiWnd m_ANSIAsciiWnd; private: void ProcessMoveFrame(); }; #endif ================================================ FILE: Project/Syser/Source/MakeFile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/Syser/Source/ModuleListWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "ModuleListWnd.h" WISP_MSG_MAP_BEGIN(CModuleListWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CModuleListWnd) WISP_MSG_EVENT_MAP(EVENT_ID_GOTO,OnEventGoto) WISP_MSG_EVENT_MAP(EVENT_ID_PE_EXPLORER,OnEventPEExplorer) WISP_MSG_EVENT_MAP_END WISP_MENU_RES_ITEM ModuleListMenu[]= { {WSTR("Goto Module Base "),EVENT_ID_GOTO,8,WISP_MIS_NORMAL}, {WSTR("PE Explorer "),EVENT_ID_PE_EXPLORER,14,WISP_MIS_NORMAL}, WISP_MENU_RES_END }; CModuleListWnd::CModuleListWnd() { m_pDbgModule = NULL; m_bSelectModule = false; } CModuleListWnd::~CModuleListWnd() { } void CModuleListWnd::ItemClickNotify(HANDLE hItem,int Col) { if(m_bSelectModule) { m_pDbgModule=(CDbgModule*)GetItemData(hItem); Destroy(); } } bool CModuleListWnd::OnCreate(IN WISP_MSG* pMsg) { AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,13*16+12)); SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_Style|=WISP_WLS_EMPTY_SEL_RECT; m_PopupMenu.CreatePopupMenu(ModuleListMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); InsertColumn(WSTR("Name"),100); InsertColumn(WSTR("Base"),60); InsertColumn(WSTR("Size"),68); InsertColumn(WSTR("Symbols"),50); InsertColumn(WSTR("Path"),150); UpdateContext(); return true; } bool CModuleListWnd::OnClose(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CModuleListWnd::OnDestroy(IN WISP_MSG* pMsg) { m_PopupMenu.Destroy(); return true; } bool CModuleListWnd::OnKeyEvent(IN WISP_MSG* pMsg) { HANDLE hItem; if(pMsg->KeyEvent.bKeyDown && pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) { hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem) m_PopupMenu.Popup(); } return true; } void CModuleListWnd::Popup(bool bSelectModule) { if(bSelectModule) { m_bSelectModule = true; Create(WSTR("Modules"),0,0,500,350,NULL,CMD_ID_MODULE_LIST_WND,WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WS_NORMAL); SetOwner(&gpSyser->m_MainFrame.m_SystemExplorer); Center(); Show(WISP_SH_MODAL_BLOCK); } else { if(IsWindow()) { Destroy(); } else { Create(WSTR("Modules"),0,0,500,350,NULL,CMD_ID_MODULE_LIST_WND,WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WS_NORMAL); SetOwner(&gpSyser->m_MainFrame.m_SystemExplorer); Center(); } } } void CModuleListWnd::UpdateContext() { int Count; HANDLE hItem; WCHAR szBuffer[MAX_FN_LEN]; if(gpSyser->m_pDebugger==NULL) return; ClearChildItem(); CDbgModuleMap::IT Iter = gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin(); while(Iter.IsExist()) { hItem = InsertItemA(Iter->m_ModuleTitle); uNumToStr(Iter->m_ModuleBase,szBuffer); SetItemText(hItem,1,szBuffer); SetItemNum(hItem,2,Iter->m_ModuleSize,WSTR("%08X")); Count = 0; if(Iter->m_pSymbolModule) Count = Iter->m_pSymbolModule->m_SymbolMap.Count(); SetItemNum(hItem,3,Count,WSTR("%d")); SetItemTextA(hItem,4,Iter->m_ModuleFullName); SetItemData(hItem,0,(NUM_PTR)&(*Iter)); SetItemData(hItem,1,Iter->m_ModuleBase); Iter++; } if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) { Iter = gpSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.Begin(); while(Iter.IsExist()) { hItem = InsertItemA(Iter->m_ModuleTitle); uNumToStr(Iter->m_ModuleBase,szBuffer); SetItemText(hItem,1,szBuffer); uNumToStr(Iter->m_ModuleSize,szBuffer); SetItemNum(hItem,2,Iter->m_ModuleSize,WSTR("%08X")); Count = 0; if(Iter->m_pSymbolModule) Count = Iter->m_pSymbolModule->m_SymbolMap.Count(); uNumToStr(Count,szBuffer,10); SetItemNum(hItem,3,Count,WSTR("%d")); SetItemTextA(hItem,4,Iter->m_ModuleFullName); SetItemData(hItem,0,(NUM_PTR)&(*Iter)); SetItemData(hItem,1,Iter->m_ModuleBase); Iter++; } } } bool CModuleListWnd::OnEventPEExplorer(IN WISP_MSG*pMsg) { ULPOS ModuleBase; HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ModuleBase = (ULPOS)GetItemData(hItem,1); gpSyser->m_MainFrame.m_PEExplorerForm.Popup(); gpSyser->m_MainFrame.m_PEExplorerForm.UpdateContext(ModuleBase); return true; } bool CModuleListWnd::OnEventGoto(IN WISP_MSG*pMsg) { ULPOS ModuleBase; HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ModuleBase = (ULPOS)GetItemData(hItem,1); gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(ModuleBase); return true; } ================================================ FILE: Project/Syser/Source/ModuleListWnd.h ================================================ #ifndef _MODULE_LIST_WND_ #define _MODULE_LIST_WND_ class CModuleListWnd : public CWispList { public: CModuleListWnd(); ~CModuleListWnd(); void Popup(bool bSelectModule=false); void UpdateContext(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventGoto) DECLARE_WISP_MSG_EVENT(OnEventPEExplorer) void ItemClickNotify(HANDLE hItem,int Col); public: bool m_bSelectModule; CWispMenu m_PopupMenu; CDbgModule* m_pDbgModule; }; #endif //_MODULE_LIST_WND_ ================================================ FILE: Project/Syser/Source/Mouse.cpp ================================================ #include "StdAfx.h" #include "InputDriver.h" #include "Syser.h" #include "Mouse.h" #include "Keyboard.h" #ifdef __cplusplus extern "C" { #endif ULONGLONG gPrevMouseTickCount; ULONGLONG gCurrMouseTickCount; ULONGLONG gPrevLButtonDownTickCount; ULONGLONG gPrevRButtonDownTickCount; ULONGLONG gPrevMButtonDownTickCount; ULONGLONG gMaxDblClkInterval=400; bool gLButtonDblClkSecond=false; bool gRButtonDblClkSecond=false; bool gMButtonDblClkSecond=false; bool bIsMouseData = false; BYTE MouseBeginBuffer[0x24]; DWORD dwMouseBeginBufferIndex = 0; MouseDataPackage MouseBuffer[0x100]; MouseDataPackage CurrentMouseData; //ǰƶ MouseDataPackage PrevMouseData; //һƶ MouseDataPackage *pMouseDataPackage = MouseBuffer; DWORD dwMouseBufferIndex = 0; //껺ƶݰΪλ DWORD dwMousePrePackageSize = 0; //ƶݰֽ 3 4 DWORD dwMousePackageBeginOffset = 0; //Windows ݰҶ̵ƫƣǷ 0 //ƳҪģ WindowsĻһΡ extern ULONGLONG gTSCTickCount; #ifdef __cplusplus }; // extern "C" #endif void TranslateUSBMouse(char*pData,char*pBtStatus) { char cFirstData,cXOffset,cYOffset,cZOffset; ULONGLONG TmpTickCount,Interval; bool bButtonState,bDoubleClick; TmpTickCount=SyserGetTSC(); cFirstData=pData[0]; cXOffset=pData[1]; cYOffset=pData[2]; cZOffset=pData[3]; if(cYOffset != 0 || cXOffset != 0) gpSyser->OnMouseMove(cXOffset,cYOffset); if(cZOffset) gpSyser->OnMouseWheel(cZOffset); if((*pBtStatus & MOUSE_INTERRUPT_LEFT_PRESS) != (cFirstData & MOUSE_INTERRUPT_LEFT_PRESS)) { bDoubleClick=false; bButtonState = cFirstData & MOUSE_INTERRUPT_LEFT_PRESS; if(bButtonState) { if(gLButtonDblClkSecond==false) { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } else { if(cYOffset==0&&cYOffset==0) { Interval = (TmpTickCount-gPrevLButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_LBUTTON); gLButtonDblClkSecond=false; bDoubleClick=true; } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) { gpSyser->OnKeyEvent(WISP_VK_LBUTTON,cFirstData & MOUSE_INTERRUPT_LEFT_PRESS); } } if((*pBtStatus & MOUSE_INTERRUPT_RIGHT_PRESS) != (cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)) { bDoubleClick=false; bButtonState = (cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0; if(bButtonState) { if(gRButtonDblClkSecond==false) { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } else { if(cYOffset==0&&cYOffset==0) { Interval = (TmpTickCount-gPrevRButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_RBUTTON); gRButtonDblClkSecond=false; bDoubleClick=true; } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0); } if((*pBtStatus & MOUSE_INTERRUPT_MIDDLE_PRESS) != (cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)) { bDoubleClick=false; bButtonState = (cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)!=0; if(bButtonState) { if(gMButtonDblClkSecond==false) { gMButtonDblClkSecond=true; gPrevMButtonDownTickCount=TmpTickCount; } else { if(cYOffset==0&&cYOffset==0) { Interval = (TmpTickCount-gPrevMButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_MBUTTON); gMButtonDblClkSecond=false; bDoubleClick=true; } else { gMButtonDblClkSecond=true; gPrevMButtonDownTickCount=TmpTickCount; } } else { gMButtonDblClkSecond=true; gPrevMButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_MBUTTON,(cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)!=0); } *pBtStatus = *pData; } ================================================ FILE: Project/Syser/Source/Mouse.h ================================================ #ifndef _MOUSE_H_ #define _MOUSE_H_ typedef union PS2MousePackage{//PS2ݵĸʽ struct { CHAR cFirstData; CHAR cXOffset; CHAR cYOffset; }D2; struct { CHAR cFirstData; CHAR cXOffset; CHAR cYOffset; CHAR cZOffset; }D3; struct{ union { BYTE Left:1; BYTE Right:1; BYTE Gesture:1; BYTE ReservedBit0:1; BYTE Reserved:1; BYTE Finger:1; BYTE ReservedBit1:2; BYTE Byte0; }; union { BYTE XMiddle4:4; BYTE YMiddle4:4; BYTE Byte1; }; union{ BYTE ZPressure; BYTE Byte2; }; union{ BYTE Left1:1; BYTE Right1:1; BYTE Gesture1:1; BYTE Reserved:1; BYTE XHighBit:1; BYTE YHighBit:1; BYTE ReservedBit3:2; BYTE Byte3; }; union{ BYTE XLowBit; BYTE Byte4; }; union { BYTE YLowBit; BYTE Byte5; }; }D6; struct{ union{ BYTE Left:1; BYTE Right:1; BYTE W1Bit:1; BYTE ReservedBit0:1; BYTE W23Bit:2; BYTE ReservedBit1:2; BYTE Byte0; }; union { BYTE XMiddle4:4; BYTE YMiddle4:4; BYTE Byte1; }; union{ BYTE ZPressure; BYTE Byte2; }; union{ BYTE LU:1; BYTE RD:1; BYTE W0Bit:1; BYTE ReservedBit2:1; BYTE XHighBit:1; BYTE YHighBit:1; BYTE ReservedBit3:2; BYTE Byte3; }; union{ BYTE XLowBit; BYTE Byte4; }; union { BYTE YLowBit; BYTE Byte5; }; }WModeD6; DWORD dwData; BYTE chArray[4]; }MouseDataPackage;//PS2ݵĸʽ #ifdef __cplusplus extern "C" { #endif extern MouseDataPackage CurrentMouseData; //ǰƶ extern MouseDataPackage PrevMouseData; //һƶ extern MouseDataPackage MouseBuffer[]; extern BYTE MouseBeginBuffer[]; extern DWORD dwMouseBufferIndex; extern MouseDataPackage *pMouseDataPackage; extern DWORD dwMousePrePackageSize; //ƶݰֽ 3 4 extern DWORD dwMousePackageBeginOffset; //Windows ݰҶ̵ƫƣǷ 0 //˳Ҫģ WindowsĻһΡ extern DWORD dwMouseBeginBufferIndex; extern ULONGLONG gPrevMouseTickCount; extern ULONGLONG gCurrMouseTickCount; extern ULONGLONG gPrevLButtonDownTickCount; extern ULONGLONG gPrevRButtonDownTickCount; extern ULONGLONG gPrevMButtonDownTickCount; extern bool gLButtonDblClkSecond; extern bool gRButtonDblClkSecond; extern bool gMButtonDblClkSecond; extern ULONGLONG gMaxDblClkInterval; extern ULONGLONG gTSCTickCount; #ifdef __cplusplus }; // extern "C" #endif void TranslateUSBMouse(char*pData,char*pBtStatus); #endif //_MOUSE_H_ ================================================ FILE: Project/Syser/Source/MultiCPU.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "MultiCPU.h" #include "X86Optr.h" #include "LocalAPIC.h" #include "IOAPIC.h" #ifdef __cplusplus extern "C" { #endif DWORD gSystemFSRegisterSelector=0x30; DWORD gSystemSSRegisterSelector=0x10; DWORD gSystemCSRegisterSelector=0X8; DWORD gCPUNumbers = 1; PKPCR gDefaultPCR=(PKPCR)0xffdff000; PKPCR*gPCRArray=&gDefaultPCR; BYTE gCPULocalAPIC_ID[256]; DWORD gdwMulitCpuSpinlock=0; DWORD gdwCurrentCPUIndex=0xffffffff; // DWORD gdwMulitCpuSendIPIFlags=0; DWORD gSystemDSRegisterSelector=0x23; PKDPC gpMultiCpuDPC=NULL; PCPUSTRUCT gpCPUStruct=NULL; DWORD gdwExitNmiLock=0; #ifdef __cplusplus }; // extern "C" #endif typedef int (*PFN_KeSetAffinityThread)(PKTHREAD,int); ULONG GetCPUCount() { typedef ULONG (*PFN_KeQueryActiveProcessorCount)(OUT PKAFFINITY ActiveProcessors); ULONG CPUCount; UNICODE_STRING UnicodeName; KAFFINITY ActiveProcessor; PCCHAR pKeNumberProcessors; PFN_KeQueryActiveProcessorCount pfnKeQueryActiveProcessorCount; RtlInitUnicodeString(&UnicodeName,WSTR("KeQueryActiveProcessorCount")); pfnKeQueryActiveProcessorCount=(PFN_KeQueryActiveProcessorCount)MmGetSystemRoutineAddress(&UnicodeName); if(pfnKeQueryActiveProcessorCount) { CPUCount = pfnKeQueryActiveProcessorCount(&ActiveProcessor); } else { RtlInitUnicodeString(&UnicodeName,WSTR("KeNumberProcessors")); pKeNumberProcessors=(PCCHAR)MmGetSystemRoutineAddress(&UnicodeName); if(pKeNumberProcessors==NULL) { return 1; } CPUCount = (ULONG)*pKeNumberProcessors; } return CPUCount; } bool InitMultiCPUInformation() { PKTHREAD pThread; ULONG CpuID,i; ULONG IdtBase; DWORD* dwPCRAddr=NULL; ULONG TargetProcessor; ULONG TargetProcessor2; UNICODE_STRING UnicodeName; PFN_KeSetAffinityThread pfnKeSetAffinityThread; memset(gCPULocalAPIC_ID,0xff,sizeof(gCPULocalAPIC_ID)); gCPUNumbers = GetCPUCount(); DbgPrint("Syser : CPU Numbers = %d\n",gCPUNumbers); if(gCPUNumbers==1) return true; RtlInitUnicodeString(&UnicodeName,WSTR("KeSetAffinityThread")); pfnKeSetAffinityThread=(PFN_KeSetAffinityThread)MmGetSystemRoutineAddress(&UnicodeName); if(pfnKeSetAffinityThread==NULL) { ::DbgPrint("Syser : Fail to find KeSetAffinityThread\n"); return false; } dwPCRAddr = new DWORD[gCPUNumbers+1]; if(dwPCRAddr==NULL) return false; memset(dwPCRAddr,0,(gCPUNumbers+1)*sizeof(DWORD)); gPCRArray = (PKPCR*)dwPCRAddr; gpMCPUReg = new X86_REG_CONTEXT[gCPUNumbers]; if(gpMCPUReg==NULL) { if(dwPCRAddr) { delete dwPCRAddr; dwPCRAddr=NULL; } return false; } ExceptionReg=new X86_REG_CONTEXT[gCPUNumbers]; if(ExceptionReg==NULL) { if(dwPCRAddr) { delete dwPCRAddr; dwPCRAddr=NULL; } if(gpMCPUReg) { delete gpMCPUReg; gpMCPUReg=NULL; } return false; } gpMCPULocalApic = new SAVELOCALAPIC[gCPUNumbers]; if(gpMCPULocalApic==NULL) { if(dwPCRAddr) delete dwPCRAddr; if(gpMCPUReg) { delete gpMCPUReg; gpMCPUReg=NULL; } return false; } TargetProcessor = KeGetCurrentProcessorNumber();//ȡõǰCPU ID ˳ʱҪָ pThread = KeGetCurrentThread(); CpuID=1; for(i=0;im_MainFrame.m_SystemExplorer.m_pCurCodeView = (CCodeView*) pWnd; gpSyser->m_MainFrame.m_SystemExplorer.UpdateItemState(); } void CMultiCodeView::SetActiveAddress(ULPOS Address,bool bRecordAddr) { CCodeView*pActiveView=(CCodeView*)GetActiveWnd(); if(pActiveView) pActiveView->SetStartAddress(Address,bRecordAddr); } ULPOS CMultiCodeView::GetActiveAddress() { CCodeView*pActiveView=(CCodeView*)GetActiveWnd(); if(pActiveView) return pActiveView->m_CurAddr; else return 0; } CCodeView* CMultiCodeView::InsertView(CCodeView*pSrcWnd) { if(m_WndList.Count()>=9) return NULL; CCodeView*pCodeView; pCodeView = new CCodeView; pCodeView->Create(NULL,0,0,0,0,this,CMD_ID_CODE_VIEW_START+m_WndList.Count(),WISP_WLS_EMPTY_SEL_RECT|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS); pCodeView->AddAdvStyle(WISP_WAS_AUTO_DELETE); pCodeView->m_pCodeDoc =&gpSyser->m_SyserUI.m_CodeDoc; InsertWnd(WISP_STR("????????"),pCodeView,WispTKDIBListDIB("\\Toolbar.bmp",16,16,126)); SetActiveWnd(m_WndList.Count()-1); if(pSrcWnd) pCodeView->SetStartAddress(pSrcWnd->m_CurAddr); return pCodeView; } void CMultiCodeView::RemoveView(CCodeView*pRemoveWnd) { if(m_WndList.Count()<2) return; RemoveWnd(pRemoveWnd); } void CMultiCodeView::UpdateAllView() { CCodeView*pCodeView; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { pCodeView = (CCodeView*)WndIt->pWnd; pCodeView->UpdateView(); WndIt++; } } void CMultiCodeView::ResetContext() { RemoveAllWnd(); InsertView(NULL); } bool CMultiCodeView::IsBookMark(ULPOS Address) { TSet::IT Iter = m_BookMark.Find(Address); return Iter!=m_BookMark.End(); } void CMultiCodeView::ToggleBookMark(ULPOS Address) { TSet::IT Iter; Iter = m_BookMark.Find(Address); if(Iter==m_BookMark.End()) m_BookMark.InsertUnique(Address); else m_BookMark.Remove(Iter); UpdateAllView(); } void CMultiCodeView::ToggleBookMark() { CCodeView*pCodeView=(CCodeView*)GetActiveWnd(); if(pCodeView==NULL) return; HANDLE hItem = pCodeView->GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return; ToggleBookMark((ULPOS)pCodeView->GetItemData(hItem,1)); SYSTEM_EXPLORER.UpdateItemState(); } void CMultiCodeView::GotoNextBookMark() { CCodeView*pActiveView=(CCodeView*)GetActiveWnd(); if(pActiveView==NULL) return; TSet::IT Iter=m_BookMark.FindAlmost(pActiveView->m_CurAddr); if(Iter.IsExist()) Iter++; if(Iter.IsExist()==false) Iter = m_BookMark.Begin(); if(Iter.IsExist()) VIEW_CODE(*Iter); } void CMultiCodeView::GotoPrevBookMark() { CCodeView*pActiveView=(CCodeView*)GetActiveWnd(); if(pActiveView==NULL) return; TSet::IT Iter=m_BookMark.FindAlmost(pActiveView->m_CurAddr); if(Iter.IsExist() && pActiveView->m_CurAddr == *Iter) Iter--; if(Iter.IsExist()==false) Iter = m_BookMark.Last(); if(Iter.IsExist()) VIEW_CODE(*Iter); } void CMultiCodeView::ClearAllBookMark() { m_BookMark.Clear(); UpdateAllView(); SYSTEM_EXPLORER.UpdateItemState(); } ================================================ FILE: Project/Syser/Source/MultiCodeView.h ================================================ #ifndef _MULTI_CODE_VIEW_H_ #define _MULTI_CODE_VIEW_H_ #include "CodeView.h" #define CODE_VIEW_COUNT 4 class CMultiCodeView : public CWispMultiTabView { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); void OnTabChanged(CWispWnd*pWnd); void SetActiveAddress(ULPOS Address,bool bRecordAddr=true); ULPOS GetActiveAddress(); void ToggleBookMark(ULPOS Address); void ToggleBookMark(); void GotoNextBookMark(); void GotoPrevBookMark(); void ClearAllBookMark(); bool IsBookMark(ULPOS Address); CCodeView* InsertView(CCodeView*pSrcWnd = NULL); void RemoveView(CCodeView*pRemoveWnd); void UpdateAllView(); void ResetContext(); TSet m_BookMark; }; #endif ================================================ FILE: Project/Syser/Source/MultiDataView.cpp ================================================ #include "StdAfx.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CMultiDataView) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispMultiTabView) WISP_MSG_EVENT_MAP_BEGIN(CMultiDataView) WISP_MSG_EVENT_MAP(WISP_MULTI_TAB_CMD_EXPAND_VIEW,OnEventExpandView) WISP_MSG_EVENT_MAP(WISP_MULTI_TAB_CMD_NEW_VIEW,OnEventNewView) WISP_MSG_EVENT_MAP_END bool CMultiDataView::OnEventExpandView(IN WISP_MSG*pMsg) { if(m_WindowRect.cy>((CWispSplitWnd*)m_ParentWnd)->m_WindowRect.cy-20) gpSyser->m_MainFrame.m_SystemExplorer.AdjustSplitViewSize(); else ((CWispSplitWnd*)m_ParentWnd)->ExpandWnd(0); return true; } bool CMultiDataView::OnEventNewView(IN WISP_MSG*pMsg) { CDataView*pActiveView; if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { pActiveView=(CDataView*)GetActiveWnd(); InsertView(pActiveView); } return true; } bool CMultiDataView::OnCreate(IN WISP_MSG*pMsg) { InsertView(NULL); return true; } void CMultiDataView::SetActiveDataWidth(int Width) { CDataView*pActiveView=(CDataView*)GetActiveWnd(); if(pActiveView) pActiveView->SetDataWidth(Width); } int CMultiDataView::GetActiveDataWidth() { CDataView*pActiveView=(CDataView*)GetActiveWnd(); if(pActiveView) return pActiveView->GetDataWidth(); return 1; //ĬϵĿ byte } void CMultiDataView::SetActiveAddress(DWORD Address,WCHAR* pCmdString) { CDataView*pActiveView=(CDataView*)GetActiveWnd(); if(pActiveView) { pActiveView->ViewAddress(Address); if(pCmdString!=NULL) pActiveView->SetFloatCmdString(pCmdString); } } DWORD CMultiDataView::GetActiveAddress() { CDataView*pActiveView=(CDataView*)GetActiveWnd(); if(pActiveView) return (DWORD)pActiveView->m_CurAddr; else return 0; } CDataView* CMultiDataView::InsertView(CDataView*pSrcWnd) { if(m_WndList.Count()>=9) return NULL; CDataView*pNewView = new CDataView; pNewView->Create(NULL,CWispRect(0,0,0,0),this,CMD_ID_DATA_VIEW_START+m_WndList.Count(),WISP_WS_NULL); pNewView->AddAdvStyle(WISP_WAS_AUTO_DELETE); InsertWnd(WISP_STR("????????"),pNewView,WispTKDIBListDIB("\\Toolbar.bmp",16,16,127)); SetActiveWnd(m_WndList.Count()-1); SetActiveAddress(pSrcWnd?(DWORD)pSrcWnd->m_CurAddr:0); if(pSrcWnd) pNewView->m_ShowLength = pSrcWnd->m_ShowLength; return pNewView; } void CMultiDataView::RemoveView(CDataView*pRemoveWnd) { if(m_WndList.Count()<2) return; RemoveWnd(pRemoveWnd); } void CMultiDataView::UpdateAllView() { CDataView*pDataView; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { pDataView = (CDataView*)WndIt->pWnd; pDataView->Update(); WndIt++; } } void CMultiDataView::SaveContextAllView() { CDataView*pDataView; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { pDataView = (CDataView*)WndIt->pWnd; pDataView->SaveContext(); WndIt++; } } void CMultiDataView::ResetContext() { RemoveAllWnd(); InsertView(NULL); } ================================================ FILE: Project/Syser/Source/MultiDataView.h ================================================ #ifndef _MULTI_DATA_VIEW_H_ #define _MULTI_DATA_VIEW_H_ #include "DataView.h" class CMultiDataView : public CWispMultiTabView { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventExpandView); DECLARE_WISP_MSG_EVENT(OnEventNewView) void SetActiveAddress(DWORD Address,WCHAR* pCmdString=NULL); void SetActiveDataWidth(int Width); int GetActiveDataWidth(); DWORD GetActiveAddress(); CDataView* InsertView(CDataView*pSrcWnd = NULL); void RemoveView(CDataView*pRemoveWnd); void UpdateAllView(); void ResetContext(); void SaveContextAllView();//洢ݴʾĵǰݣʾ ı }; #endif ================================================ FILE: Project/Syser/Source/MultiSourceCodeView.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "MultiSourceCodeView.h" WISP_MSG_MAP_BEGIN(CMultiSourceCodeView) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispMultiTabView) WISP_MSG_EVENT_MAP_BEGIN(CMultiSourceCodeView) WISP_MSG_EVENT_MAP_END bool CMultiSourceCodeView::OnCommand(IN WISP_MSG* pMsg) { if(pMsg->Command.CmdID>=WISP_WM_USER_START+0x1000) { if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_SELECTED) { #if 0 //֪ʲôܣע͵ CMDSELECTSOURCECODELINE SelectLine; CSourceFrameWnd* pSourceFrameWnd=(CSourceFrameWnd*) GetChildWnd(pMsg->Command.CmdID); CSourceCodeWnd* pSourceCodeWnd =&pSourceFrameWnd->m_RightWnd; SelectLine.LineNum = (DWORD)pSourceCodeWnd->GetItemData(pMsg->Command.Param2,0); SelectLine.SourceFileId = pSourceFrameWnd->m_RightWnd.GetSourceFileID() ; CSDSModule*pSDSModule=pSourceFrameWnd->m_RightWnd.m_pSDSModule; PSDSOURCEFILEID pSourceFileID; DWORD Count; char buf[200]; pSourceFileID = pSDSModule->GetSourceFileByID(SelectLine.SourceFileId); if(pSourceFileID==NULL) return false; SDLINELIST LineList; Count = pSDSModule->GetLineBySourceFileID(SelectLine.SourceFileId,SelectLine.LineNum,&LineList); if(Count==0) { PSDLINE pLine = pSDSModule->GetContiguityLineBySourceFileID(SelectLine.SourceFileId,SelectLine.LineNum); if(pLine) LineList.Append(pLine); } if(LineList.Count()) { SDLINELIST::IT BeginIT,EndIT; BeginIT=LineList.Begin(); EndIT=LineList.End(); for(;BeginIT!=EndIT;BeginIT++) { TSPrintf(buf,"%08x %s \n",(*BeginIT)->Rav,pSDSModule->GetFuncNameByRva((*BeginIT)->Rav)); } } #endif } } return true; } bool CMultiSourceCodeView::OnCloseTabWnd(CWispWnd*pWnd) { SOURCE_CODE_WND_ID WndID; CSourceCodeWnd*pSourceFrameWnd=(CSourceCodeWnd*)pWnd; WndID.FileID = pSourceFrameWnd->m_CurrentFileID; WndID.pSDSModule = pSourceFrameWnd->m_pSDSModule; TSet::IT Iter = m_OpenedSourceCodeWnd.Find(WndID); if(Iter!=m_OpenedSourceCodeWnd.End()) m_OpenedSourceCodeWnd.Remove(WndID); HANDLE hItem = gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem&&gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.GetItemLevel(hItem)==1) { if(Iter->pSDSModule == (CSDSModule*)gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.GetItemData(hItem)) gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.UnselectItem(hItem); } return true; } void CMultiSourceCodeView::OnClosedTabWnd() { if(m_WndList.Count()==0) { gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); } } void CMultiSourceCodeView::OnTabChanged(CWispWnd*pWnd) { gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); } bool CMultiSourceCodeView::OnCreate(IN WISP_MSG*pMsg) { SetBGColor(ColorOption.clrBackground); return true; } void CMultiSourceCodeView::UpdateAllView() { CSourceCodeWnd*pSourceCodeWnd; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { pSourceCodeWnd = (CSourceCodeWnd*)WndIt->pWnd; pSourceCodeWnd->LoadModuleImage(); pSourceCodeWnd->UpdateView(); WndIt++; } } ================================================ FILE: Project/Syser/Source/MultiSourceCodeView.h ================================================ #ifndef _MULTISOURCECODEVIEW_H_ #define _MULTISOURCECODEVIEW_H_ #include "SourceCodeWnd.h" typedef struct stCmdSelectSourceCodeLine { DWORD SourceFileId; DWORD LineNum; }CMDSELECTSOURCECODELINE,*PCMDSELECTSOURCECODELINE; struct SOURCE_CODE_WND_ID { DWORD FileID; CSDSModule*pSDSModule; CSourceCodeWnd*pSourceCodeWnd; bool operator==(const SOURCE_CODE_WND_ID&WndID)const { return WndID.FileID == FileID && WndID.pSDSModule == pSDSModule; } bool operator<(const SOURCE_CODE_WND_ID&WndID)const { if(FileIDWndID.FileID) return false; return PTR_TO_NUM(pSDSModule) m_OpenedSourceCodeWnd; #ifdef CODE_OS_WIN HCURSOR m_HCurrentEIPCursor; HCURSOR m_HDragEIPCurosr; #endif DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnCmdAddrChg) bool OnCloseTabWnd(CWispWnd*pWnd); void OnClosedTabWnd(); void OnTabChanged(CWispWnd*pWnd); void UpdateAllView(); }; #endif ================================================ FILE: Project/Syser/Source/NMIInterruptHandle.cpp ================================================ #include "StdAfx.h" #include "MultiCPU.h" #include "LocalAPIC.h" #include "NMIInterruptHandle.h" #include "Syser.h" #define SAVECONTEXT_OFFSET 8 #ifdef __cplusplus extern "C" { #endif DWORD dwgcou=0; DWORD dwkCount=0; DWORD gLoopCpuNumber=0; bool gbSyserDRXChg=false; //ActiveʾDRĴǷ񱻸ı #ifdef __cplusplus }; // extern "C" #endif // // __declspec(naked) void LoadContext() // { // DWORD CurrentCpuID; // X86_REG_CONTEXT TmpContext; // __asm // { // push ebp // mov ebp,esp // sub esp,__LOCAL_SIZE // mov eax,dr0 // mov TmpContext.DR[0*4],eax // mov eax,dr1 // mov TmpContext.DR[1*4],eax // mov eax,dr2 // mov TmpContext.DR[2*4],eax // mov eax,dr3 // mov TmpContext.DR[3*4],eax // mov eax,dr6 // mov TmpContext.DR[6*4],eax // mov eax,dr7 // mov TmpContext.DR[7*4],eax // sldt word ptr TmpContext.LDT // str word ptr TmpContext.TR // sgdt fword ptr TmpContext.GDTLimit // sidt fword ptr TmpContext.IDTLimit // mov eax,[ebp+0x10] // mov TmpContext.GeneReg[EDI_IDX*4],eax // mov eax,[ebp+0x14] // mov TmpContext.GeneReg[ESI_IDX*4],eax // mov eax,[ebp+0x18] // mov TmpContext.GeneReg[EBP_IDX*4],eax // mov eax,[ebp+0x1c] // mov TmpContext.GeneReg[ESP_IDX*4],eax // mov eax,[ebp+0x20] // mov TmpContext.GeneReg[EBX_IDX*4],eax // mov eax,[ebp+0x24] // mov TmpContext.GeneReg[EDX_IDX*4],eax // mov eax,[ebp+0x28] // mov TmpContext.GeneReg[ECX_IDX*4],eax // mov eax,[ebp+0x2c] // mov TmpContext.GeneReg[EAX_IDX*4],eax // mov eax,[ebp+0x40] // mov TmpContext.EFlags,eax // mov eax,[ebp+0x38] // mov TmpContext.EIP,eax // // mov eax,cr0 // mov TmpContext.CR[0*4],eax // mov eax,cr2 // mov TmpContext.CR[2*4],eax // mov eax,cr3 // mov TmpContext.CR[3*4],eax // _emit(0x0f)//mov eax,cr4 M$ ı֧ mov eax,cr4 ָ // _emit(0x20) // _emit(0xe0) // mov TmpContext.CR[4*4],eax // mov eax,TmpContext.EFlags // test eax,0x20000 // jz local_001 // mov eax,[ebp+0x44] // mov TmpContext.GeneReg[ESP_IDX*4],eax // mov eax,[ebp+0x48] // mov TmpContext.SegReg[SS_IDX*2],ax // mov eax,[ebp+0x4c] // mov TmpContext.SegReg[ES_IDX*2],ax // mov eax,[ebp+0x50] // mov TmpContext.SegReg[DS_IDX*2],ax // mov eax,[ebp+0x54] // mov TmpContext.SegReg[FS_IDX*2],ax // mov eax,[ebp+0x58] // mov TmpContext.SegReg[GS_IDX*2],ax // jmp local_002 // local_001: // mov eax,[ebp+8] // mov TmpContext.SegReg[ES_IDX*2],ax // mov eax,[ebp+0xc] // mov TmpContext.SegReg[DS_IDX*2],ax // mov ax,fs // mov TmpContext.SegReg[FS_IDX*2],ax // mov ax,gs // mov TmpContext.SegReg[GS_IDX*2],ax // mov eax,[ebp+0x3c] // mov TmpContext.SegReg[CS_IDX*2],ax // test ax,3 // jnz local_005 // lea eax,[ebp+0x44] // mov TmpContext.GeneReg[ESP_IDX*4],eax // mov ax,ss // mov TmpContext.SegReg[SS_IDX*2],ax // jmp local_002 // local_005: // mov eax,[ebp+0x44] // mov TmpContext.GeneReg[ESP_IDX*4],eax // mov eax,[ebp+0x48] // mov TmpContext.SegReg[SS_IDX*2],ax // local_002: // } // CurrentCpuID = GetCurrentCPULocalAPICID(); // SaveLocalApic(&gpMCPULocalApic[CurrentCpuID]); // gpMCPUReg[CurrentCpuID]=TmpContext; // gpMCPUReg[CurrentCpuID].LocalAPIC=&gpMCPULocalApic[CurrentCpuID]; // __asm // { // mov esp,ebp // pop ebp // ret // } // } void UpdateOtherCPUDRX() { gbSyserDRXChg = true; } // // void EnterLoop(DWORD* dwPtr) // { // __asm // { // mov eax,gdwLocalAPICLineAddress // mov ebx,[eax+0x80] // push ebx // mov ebx,0xff // mov [eax+0x80],ebx // } // // DWORD CurrentCpuID = GetCurrentCPULocalAPICID(); // gdwMulitCpuSendIPIFlags=0; // __asm lock inc dword ptr gLoopCpuNumber // while(gdwMulitCpuSpinlock) // { // if(gbSyserDRXChg)//2 CPUҪԷʾ // { // SaveSyserDRX(); // gbSyserDRXChg = false; // } // } // __asm lock dec dword ptr gLoopCpuNumber // __asm // { // mov eax,gdwLocalAPICLineAddress // pop ebx // mov [eax+0x80],ebx // } // } // // void SaveSyserDRX() // { // __asm // { // push eax // mov eax,SyserDR[0*4] // mov dr0,eax // mov eax,SyserDR[1*4] // mov dr1,eax // mov eax,SyserDR[2*4] // mov dr2,eax // mov eax,SyserDR[3*4] // mov dr3,eax // xor eax,eax // mov dr6,eax // mov eax,SyserDR[7*4] // and eax,0xffffdfff // mov dr7,eax // pop eax // } // } // // __declspec(naked) void SaveSyserDRXNew() // { // __asm // { // push eax // mov eax,SyserDR[2*4] // mov dr2,eax // mov eax,SyserDR[1*4] // mov dr1,eax // mov eax,SyserDR[3*4] // mov dr3,eax // mov eax,SyserDR[0*4] // mov dr0,eax // xor eax,eax // mov dr6,eax // mov eax,SyserDR[7*4] // and eax,0xffffdfff // mov dr7,eax // pop eax // ret // } // } // //DWORD int2eip=0; //DWORD gNmiCount=0; #ifdef __cplusplus extern "C" { #endif extern DWORD gdwExitNmiLock; #ifdef __cplusplus }; // extern "C" #endif // // __declspec (naked) void NMIInterruptService() // { // DWORD *dwEBP; // __asm // { // pushfd // cmp ss:gCPUNumbers,1 // jnz MultiCPUMachine // popfd // ret // ڵcpu Ļֱӷص windows ж. fixme // MultiCPUMachine: // pushad // push ds // push es // cli // mov ax,ss // mov ds,ax // mov es,ax // mov eax,[esp+12*4] // mov int2eip,eax // lock inc gNmiCount // } // // DisableDebugRegisterMontior(); // LoadContext(); // __asm // { // push esp // call EnterLoop // } // if(gpSyser->m_bDbgRegAccessMon) // SaveSyserDRXNew(); // if(gNmiCount<2) // EnableDebugRegisterMontior(); // __asm // { // lock dec gNmiCount // pop es // pop ds // popad // popfd // lea esp,[esp+4] // mov gdwExitNmiLock,0 // iretd // } // } ================================================ FILE: Project/Syser/Source/NMIInterruptHandle.h ================================================ #ifndef _NMIINTERRUPTHANDLE_H_ #define _NMIINTERRUPTHANDLE_H_ #ifdef __cplusplus extern "C" { #endif VOID SyserLoadContext(VOID); VOID SyserEnterLoop(DWORD* dwPtr); VOID SyserNMIInterruptService(VOID); VOID SyserEnterLoop(DWORD* dwPtr); void UpdateOtherCPUDRX(); VOID SyserSaveSyserDRX(VOID); VOID SyserSaveSyserDRXNew(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //_NMIINTERRUPTHANDLE_H_ ================================================ FILE: Project/Syser/Source/NTDLLDefine.h ================================================ #ifndef _NTDLL_DEFINE_H_ #define _NTDLL_DEFINE_H_ #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) #ifndef CONST #define CONST const #endif #define InitializeObjectAttributes( p, n, a, r, s ) { \ (p)->Length = sizeof( OBJECT_ATTRIBUTES ); \ (p)->RootDirectory = r; \ (p)->Attributes = a; \ (p)->ObjectName = n; \ (p)->SecurityDescriptor = s; \ (p)->SecurityQualityOfService = NULL; \ } typedef enum _SYSTEMINFOCLASS { SystemBasicInformation, // 0x002C SystemProcessorInformation, // 0x000C SystemPerformanceInformation, // 0x0138 SystemTimeInformation, // 0x0020 SystemPathInformation, // not implemented SystemProcessInformation, // 0x00C8+ per process SystemCallInformation, // 0x0018 + (n * 0x0004) SystemConfigurationInformation, // 0x0018 SystemProcessorCounters, // 0x0030 per cpu SystemGlobalFlag, // 0x0004 SystemInfo10, // not implemented SystemModuleInformation, // 0x0004 + (n * 0x011C) SystemLockInformation, // 0x0004 + (n * 0x0024) SystemInfo13, // not implemented SystemPagedPoolInformation, // checked build only SystemNonPagedPoolInformation, // checked build only SystemHandleInformation, // 0x0004 + (n * 0x0010) SystemObjectInformation, // 0x0038+ + (n * 0x0030+) SystemPageFileInformation, // 0x0018+ per page file SystemInstemulInformation, // 0x0088 SystemInfo20, // invalid info class SystemCacheInformation, // 0x0024 SystemPoolTagInformation, // 0x0004 + (n * 0x001C) SystemInfo23, // 0x0000, or 0x0018 per cpu SystemDpcInformation, // 0x0014 SystemInfo25, // checked build only SystemLoadDriver, // 0x0018, set mode only SystemUnloadDriver, // 0x0004, set mode only SystemTimeAdjustmentInformation, // 0x000C, 0x0008 writeable SystemInfo29, // checked build only SystemInfo30, // checked build only SystemInfo31, // checked build only SystemCrashDumpInformation, // 0x0004 SystemInfo33, // 0x0010 SystemCrashDumpStateInformation, // 0x0004 SystemDebuggerInformation, // 0x0002 SystemThreadSwitchInformation, // 0x0030 SystemRegistryQuotaInformation, // 0x000C SystemAddDriver, // 0x0008, set mode only SystemPrioritySeparationInformation,// 0x0004, set mode only SystemInfo40, // not implemented SystemInfo41, // not implemented SystemInfo42, // invalid info class SystemInfo43, // invalid info class SystemTimeZoneInformation, // 0x00AC SystemLookasideInformation, // n * 0x0020 MaxSystemInfoClass } SYSTEMINFOCLASS, *PSYSTEMINFOCLASS, **PPSYSTEMINFOCLASS; typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING; typedef UNICODE_STRING *PUNICODE_STRING; typedef struct _OBJECT_ATTRIBUTES { ULONG Length; HANDLE RootDirectory; PUNICODE_STRING ObjectName; ULONG Attributes; PVOID SecurityDescriptor; // Points to type SECURITY_DESCRIPTOR PVOID SecurityQualityOfService; // Points to type SECURITY_QUALITY_OF_SERVICE } OBJECT_ATTRIBUTES; typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; typedef LONG NTSTATUS; typedef ULONG ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; typedef struct _IO_STATUS_BLOCK { union { NTSTATUS Status; PVOID Pointer; }; ULONG_PTR Information; } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; #define OBJ_INHERIT 0x00000002L #define OBJ_PERMANENT 0x00000010L #define OBJ_EXCLUSIVE 0x00000020L #define OBJ_CASE_INSENSITIVE 0x00000040L #define OBJ_OPENIF 0x00000080L #define OBJ_OPENLINK 0x00000100L #define OBJ_KERNEL_HANDLE 0x00000200L #define OBJ_FORCE_ACCESS_CHECK 0x00000400L #define OBJ_VALID_ATTRIBUTES 0x000007F2L #define OBJ_CASE_INSENSITIVE 0x00000040L typedef struct _SYSTEM_HANDLE_INFORMATION{ ULONG ProcessId; UCHAR ObjectTypeNumber; UCHAR Flags; USHORT Handle; PVOID Object; ACCESS_MASK GrantedAccess; }SYSTEM_HANDLE_INFORMATION,*PSYSTEM_HANDLE_INFORMATION; typedef struct _SYSTEM_HANDLE_LIST { DWORD Counter; SYSTEM_HANDLE_INFORMATION Handle[1]; }SYSTEM_HANDLE_LIST,*PSYSTEM_HANDLE_LIST; typedef enum _OBJECT_INFORMATION_CLASS { ObjectBasicInformation, ObjectNameInformation, ObjectTypeInformation, ObjectAllTypesInformation, ObjectHandleInformation, }OBJECT_INFORMATION_CLASS; typedef struct _OBJECT_NAME_INFORMATION { UNICODE_STRING Name; }OBJECT_NAME_INFORMATION,*POBJECT_NAME_INFORMATION; typedef struct _DIRECTORY_BASIC_INFORMATION { UNICODE_STRING ObjectName; UNICODE_STRING ObjectTypeName; } DIRECTORY_BASIC_INFORMATION, *PDIRECTORY_BASIC_INFORMATION; typedef NTSYSAPI NTSTATUS (NTAPI *PZWOPENFILE)( OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG ShareAccess, IN ULONG OpenOptions ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWOPENSECTION)( OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWCLOSE)( IN HANDLE Handle ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWQUERYSYSTEMINFORMATION)( SYSTEMINFOCLASS sic, PVOID pData, DWORD dSize, PDWORD pdSize ); typedef NTSYSAPI VOID (NTAPI *PRTLINITUNICODESTRING)( PUNICODE_STRING DestinationString, PCWSTR SourceString ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWQUERYOBJECT)( IN HANDLE ObjectHandle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG ObjectInformationLength, OUT PULONG ReturnLength ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWCREATEDIRECTORYOBJECT)( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWOPENDIRECTORYOBJECT)( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWQUERYDIRECTORYOBJECT)( IN HANDLE DirectoryHandle, OUT PVOID Buffer, IN ULONG BufferLength, IN BOOLEAN ReturnSingleEntry, IN BOOLEAN RestartScan, IN OUT PULONG Context, OUT PULONG ReturnLength OPTIONAL ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWOPENSYMBOLICLINKOBJECT)( OUT PHANDLE SymbolicLinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); typedef NTSYSAPI NTSTATUS (NTAPI * PZWQUERYSYMBOLICLINKOBJECT)( IN HANDLE SymbolicLinkHandle, IN OUT PUNICODE_STRING TargetName, OUT PULONG ReturnLength OPTIONAL ); typedef NTSYSAPI NTSTATUS (NTAPI *PZWCREATESYMBOLICLINKOBJECT)( OUT PHANDLE SymbolicLinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PUNICODE_STRING TargetName ); #define DIRECTORY_QUERY (0x0001) #define DIRECTORY_TRAVERSE (0x0002) #define DIRECTORY_CREATE_OBJECT (0x0004) #define DIRECTORY_CREATE_SUBDIRECTORY (0x0008) #define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF) #define SYMBOLIC_LINK_QUERY (0x0001) #define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1) typedef struct _FINDDATABUF { DIRECTORY_BASIC_INFORMATION DirectoryBaseInfo; WCHAR Buffer[4096]; }FINDDATABUF,*PFINDDATABUF; typedef struct _FIND_OBJECT_DATA { WCHAR Name[260]; WCHAR* CurrentDirName; HANDLE FindHandle; ULONG Context; PFINDDATABUF FindDataBuffer; ULONG NameMaxLen; }FIND_OBJECT_DATA,*PFIND_OBJECT_DATA; #endif /* _NTDLL_DEFINE_H_ */ ================================================ FILE: Project/Syser/Source/NTUtility.cpp ================================================ #include "StdAfx.h" #include "NTUtility.h" #include "X86Optr.h" WORD NTAllocSelector(DWORD Base,DWORD Limit,BYTE bCodeSeg,BYTE bWritable,BYTE bSeg32,BYTE bDplDwon) { SEG_DESCRIPTOR seg; WORD Selectors; seg.limit_0_15 = LOW_WORD(Limit); seg.base_0_15 = LOW_WORD(Base); seg.base_16_23 = LOW_BYTE(HIGH_WORD(Base)); seg.accessed = 0; seg.readwrite = bWritable; seg.conforming = bDplDwon; seg.code_data = bCodeSeg; seg.app_system = 1; seg.dpl = 0; seg.present = 1; seg.limit_16_19 = LOW_BYTE(HIGH_WORD(Limit)) & 0xF; seg.always_0 = 0; seg.seg_16_32 = bSeg32; seg.granularity = 1; seg.base_24_31 = HIGH_BYTE(HIGH_WORD(Base)); KeI386AllocateGdtSelectors(&Selectors,1); KeI386SetGdtSelector(Selectors,&seg); return Selectors; } void NTReleaseSelector(WORD Selectors) { KeI386ReleaseGdtSelectors(&Selectors,1); } BYTE ReadVideoCRTRegByte(BYTE Index) { BYTE Result; // __asm // { // mov al,Index // mov dx,0x3D4 // out dx,al // mov dx,0x3D5 // in al,dx // mov Result,al // } SyserWritePortByte(0x3D4,Index); Result = SyserReadPortByte(0x3D5); return Result; } BYTE ReadCmosRegister(BYTE Index) { BYTE Result; // __asm // { // mov al,Index // out 0x70,al // in al,0x71 // mov Result,al // } SyserWritePortByte(0x70,Index); Result = SyserReadPortByte(0x71); return Result; } UINT GetOSVer(ULONG* pMajorVersion,ULONG* pMinorVersion,ULONG* pBuildNumber) { static UINT OSVer=0; static bool bInitOsV=false; static ULONG MajorVersion,MinorVersion,BuildNumber; if(bInitOsV==false) { PsGetVersion(&MajorVersion,&MinorVersion,&BuildNumber,NULL); OSVer=((MajorVersion)<<8)+(MinorVersion); bInitOsV=true; } *pMajorVersion=MajorVersion; *pMinorVersion=MinorVersion; *pBuildNumber=BuildNumber; if(OSVer>=0x501) //бϵͳ. return DRV_OS_XP; else return DRV_OS_2K; } // void ResetSystem() // { // __asm // { // in al, 61h //PC/XT PPI port B // push ecx // mov ecx, 20 // this_label1: //CODE XREF: hboot+8j // loop this_label1 // pop ecx // or al, 0Ch // out 61h, al //PC/XT PPI port B // push ecx // mov ecx, 14h // this_label2: //CODE XREF: hboot+15j // loop this_label2 // pop ecx // mov dx, 674h // mov al, 0 // out dx, al // mov dx, 670h // out dx, al // mov al, 0FEh // out 64h, al //AT Keyboard controller 8042. // //Resend the last transmission // mov ecx,600000h // this_label3: // loop this_label3 // } // } char WaitForKey() { char res; // __asm // { // local_loop: // in al,0x64 // test al,1 // jz local_loop // in al,0x60 // mov res,al // } while(SyserReadPortByte(0x64) == 0); res = SyserReadPortByte(0x60); return res; } void Beep(DWORD Counter,DWORD frequency) { BYTE Port61Value; // __asm // { // push eax // push ebx // push ecx // in al,0x61 // mov Port61Value,al // and al,0xfe // out 0x61,al // mov ecx,frequency // mov al,0xb6 // out 0x43,al // mov al,cl // out 0x42,al // jmp local_2 // local_2: // mov al,ch // out 0x42,al // in al,0x61 // or al,3 // out 0x61,al // mov ebx,Counter // local_1: // in al,0x61 // test al,0x20 // jnz local_1 // dec ebx // jz local_3 // local_4: // in al,0x61 // test al,0x20 // jz local_4 // jmp local_1 // local_3: // mov al,Port61Value // out 0x61,al // pop ecx // pop ebx // pop eax // } Port61Value = SyserReadPortByte(0x61); SyserWritePortByte(0x61,Port61Value&0xfe); SyserWritePortByte(0x43,0xb6); SyserWritePortByte(0x42,(BYTE)frequency); SyserWritePortByte(0x42,(BYTE)((frequency&0xff00)>>8)); SyserWritePortByte(0x61,SyserReadPortByte(0x61)|3); do { while(SyserReadPortByte(0x61)&0x20); Counter--; if (!Counter) { break; } while(SyserReadPortByte(0x61)&0x20); } while (TRUE); SyserWritePortByte(0x61,Port61Value); } ULSIZE GetVirtualAddressBlockSize(ULPOS Address) { ULSIZE Size=0; Address&=MP_NOT_MASK; while(MmIsAddressValid((void*)Address)) { Address+=MP_SIZE; Size+=MP_SIZE; } return Size; } // void* GetCurrentPEB() // { // void*pPEB; // __asm // { // mov eax,fs:[0x30] // mov pPEB,eax // } // return pPEB; // } bool IsAddressValid(void* Addr) { return MmIsAddressValid(Addr)!=0; } ================================================ FILE: Project/Syser/Source/NTUtility.h ================================================ #ifndef _NT_UTILITY_H_ #define _NT_UTILITY_H_ #ifdef __cplusplus extern "C" { #endif typedef struct seg_descriptor { WORD limit_0_15; WORD base_0_15; BYTE base_16_23; BYTE accessed : 1 ; BYTE readwrite : 1; BYTE conforming : 1; BYTE code_data : 1; BYTE app_system : 1; BYTE dpl : 2; BYTE present : 1; BYTE limit_16_19 : 4; BYTE unused : 1; BYTE always_0 : 1; BYTE seg_16_32 : 1; BYTE granularity : 1; BYTE base_24_31; }SEG_DESCRIPTOR; extern "C" { NTSYSAPI NTSTATUS NTAPI KeI386AllocateGdtSelectors(PUSHORT pSelectorArray,DWORD NumberOfSelectors); NTSYSAPI NTSTATUS NTAPI KeI386ReleaseGdtSelectors(PUSHORT pSelectorArray,DWORD NumberOfSelectors); NTSYSAPI NTSTATUS NTAPI KeI386SetGdtSelector(DWORD Selector,PVOID pDescriptor); } enum { DRV_OS_2K = 0, DRV_OS_XP, }; UINT GetOSVer(ULONG* MajorVersion,ULONG* MinorVersion,ULONG* BuildNumber); #define VGA_BIOS_ROM_ADDRESS 0xC0000 #define ROM_BIOS_ROM_ADDRESS 0xF0000 WORD NTAllocSelector(DWORD Base,DWORD Limit,BYTE bCodeSeg,BYTE bWritable,BYTE bSeg32,BYTE bDplDwon); void NTReleaseSelector(WORD Selectors); BYTE ReadVideoCRTRegByte(BYTE Index); BYTE ReadCmosRegister(BYTE Index); VOID SyserResetSystem(VOID); bool IsAddressValid(void*p); char WaitForKey(); void Beep(DWORD Counter=0 ,DWORD frequency=0); ULSIZE GetVirtualAddressBlockSize(ULPOS Address); //PVOID GetCurrentPEB(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif ================================================ FILE: Project/Syser/Source/NotCompatible.cpp ================================================ #include "stdafx.h" #include "NotCompatible.h" /* NTSTATUS GetProcessByThread(PETHREAD Thread,PEPROCESS* Process) { NTSTATUS Status=STATUS_SUCCESS; DWORD Offset=0; unsigned char* pstr; *Process=NULL; if(gOSMajorVersion==4) { Offset = 0x22c; }else if(gOSMajorVersion==5) { switch(gOSMinorVersion) { case 0: Offset = 0x22c; break; case 1: Offset = 0x220; break; case 2: Offset = 0x228; break; } } if(Offset) { pstr = (unsigned char*)Thread; *Process = *(PEPROCESS*)&pstr[Offset]; if(*Process==NULL) *Process=gSystemProcess; } else { return STATUS_NOT_IMPLEMENTED; } return Status; } NTSTATUS GetThreadImpersonation(PETHREAD Thread,bool* Impersonation) { NTSTATUS Status=STATUS_SUCCESS; DWORD Offset=0; unsigned char* pstr; unsigned char Value; pstr = (unsigned char*)Thread; if(gOSMajorVersion==4) { Value = pstr[0x23b]; }else if(gOSMajorVersion==5) { switch(gOSMinorVersion) { case 0: Value = pstr[0x23b]; break; case 1: Value = pstr[0x248]; Value >>= 3; Value &=1; break; case 2: Value = pstr[0x250]; Value >>= 3; Value &=1; break; default : Status=STATUS_INVALID_PARAMETER; } }else Status=STATUS_INVALID_PARAMETER; *Impersonation=(Value&1)==1; return Status; } */ //GetSegmentBaseAddress() void UpdateSystemKernelDRX() { DWORD BaseAddress; BaseAddress = GetSegmentBaseAddress((WORD)gSystemFSRegisterSelector); } ================================================ FILE: Project/Syser/Source/NotCompatible.h ================================================ #ifndef _NOTCOMPATIBLE_H_ #define _NOTCOMPATIBLE_H_ NTSTATUS GetProcessByThread(PETHREAD Thread,PEPROCESS* Process); NTSTATUS GetThreadImpersonation(PETHREAD Thread,bool* Impersonation); #endif //_NOTCOMPATIBLE_H_ ================================================ FILE: Project/Syser/Source/NtstatStr.cpp ================================================ #include "stdafx.h" #include "NtstatStr.h" NTSTATUS_STR gNtstatusTable[]= { {"STATUS_WAIT_0" ,"STATUS_WAIT_0",0x00000000L}, {"STATUS_WAIT_1" ,"STATUS_WAIT_1",0x00000001L}, {"STATUS_WAIT_2" ,"STATUS_WAIT_2",0x00000002L}, {"STATUS_WAIT_3" ,"STATUS_WAIT_3",0x00000003L}, {"STATUS_WAIT_63" ,"STATUS_WAIT_63",0x0000003FL}, {"The success status codes 128 - 191 are reserved for wait completion" "status with an abandoned mutant object." ,"STATUS_ABANDONED",0x00000080L}, {"STATUS_ABANDONED_WAIT_0" ,"STATUS_ABANDONED_WAIT_0",0x00000080L}, {"STATUS_ABANDONED_WAIT_63" ,"STATUS_ABANDONED_WAIT_63",0x000000BFL}, {"STATUS_USER_APC" ,"STATUS_USER_APC",0x000000C0L}, {"STATUS_KERNEL_APC" ,"STATUS_KERNEL_APC",0x00000100L}, {"STATUS_ALERTED" ,"STATUS_ALERTED",0x00000101L}, {"STATUS_TIMEOUT" ,"STATUS_TIMEOUT",0x00000102L}, {"The operation that was requested is pending completion." ,"STATUS_PENDING",0x00000103L}, {"A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link." ,"STATUS_REPARSE",0x00000104L}, {"Returned by enumeration APIs to indicate more information is available to successive calls." ,"STATUS_MORE_ENTRIES",0x00000105L}, {"Indicates not all privileges referenced are assigned to the caller." "This allows, for example, all privileges to be disabled without having to know exactly which privileges are assigned." ,"STATUS_NOT_ALL_ASSIGNED",0x00000106L}, {"Some of the information to be translated has not been translated." ,"STATUS_SOME_NOT_MAPPED",0x00000107L}, {"An open/create operation completed while an oplock break is underway." ,"STATUS_OPLOCK_BREAK_IN_PROGRESS",0x00000108L}, {"A new volume has been mounted by a file system." ,"STATUS_VOLUME_MOUNTED",0x00000109L}, {"This success level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted." "The commit has now been completed." ,"STATUS_RXACT_COMMITTED",0x0000010AL}, {"This indicates that a notify change request has been completed due to closing the handle which made the notify change request." ,"STATUS_NOTIFY_CLEANUP",0x0000010BL}, {"This indicates that a notify change request is being completed and that the information is not being returned in the caller's buffer." "The caller now needs to enumerate the files to find the changes." ,"STATUS_NOTIFY_ENUM_DIR",0x0000010CL}, {"{No Quotas}" "No system quota limits are specifically set for this account." ,"STATUS_NO_QUOTAS_FOR_ACCOUNT",0x0000010DL}, {"{Connect Failure on Primary Transport}" "An attempt was made to connect to the remote server %hs on the primary transport, but the connection failed." "The computer WAS able to connect on a secondary transport." ,"STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED",0x0000010EL}, {"Page fault was a transition fault." ,"STATUS_PAGE_FAULT_TRANSITION",0x00000110L}, {"Page fault was a demand zero fault." ,"STATUS_PAGE_FAULT_DEMAND_ZERO",0x00000111L}, {"Page fault was a demand zero fault." ,"STATUS_PAGE_FAULT_COPY_ON_WRITE",0x00000112L}, {"Page fault was a demand zero fault." ,"STATUS_PAGE_FAULT_GUARD_PAGE",0x00000113L}, {"Page fault was satisfied by reading from a secondary storage device." ,"STATUS_PAGE_FAULT_PAGING_FILE",0x00000114L}, {"Cached page was locked during operation." ,"STATUS_CACHE_PAGE_LOCKED",0x00000115L}, {"Crash dump exists in paging file." ,"STATUS_CRASH_DUMP",0x00000116L}, {"Specified buffer contains all zeros." ,"STATUS_BUFFER_ALL_ZEROS",0x00000117L}, {"A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link." ,"STATUS_REPARSE_OBJECT",0x00000118L}, {"The device has succeeded a query-stop and its resource requirements have changed." ,"STATUS_RESOURCE_REQUIREMENTS_CHANGED",0x00000119L}, {"The translator has translated these resources into the global space and no further translations should be performed." ,"STATUS_TRANSLATION_COMPLETE",0x00000120L}, {"The directory service evaluated group memberships locally, as it was unable to contact a global catalog server." ,"STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY",0x00000121L}, {"A process being terminated has no threads to terminate." ,"STATUS_NOTHING_TO_TERMINATE",0x00000122L}, {"The specified process is not part of a job." ,"STATUS_PROCESS_NOT_IN_JOB",0x00000123L}, {"The specified process is part of a job." ,"STATUS_PROCESS_IN_JOB",0x00000124L}, {"{Volume Shadow Copy Service}" "The system is now ready for hibernation." ,"STATUS_VOLSNAP_HIBERNATE_READY",0x00000125L}, {"A file system or file system filter driver has successfully completed an FsFilter operation." ,"STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY",0x00000126L}, {"Debugger handled exception" ,"DBG_EXCEPTION_HANDLED",0x00010001L}, {"Debugger continued" ,"DBG_CONTINUE",0x00010002L}, {"{Object Exists}" "An attempt was made to create an object and the object name already existed." ,"STATUS_OBJECT_NAME_EXISTS",0x40000000L}, {"{Thread Suspended}" "A thread termination occurred while the thread was suspended. The thread was resumed, and termination proceeded." ,"STATUS_THREAD_WAS_SUSPENDED",0x40000001L}, {"{Working Set Range Error}" "An attempt was made to set the working set minimum or maximum to values which are outside of the allowable range." ,"STATUS_WORKING_SET_LIMIT_RANGE",0x40000002L}, {"{Image Relocated}" "An image file could not be mapped at the address specified in the image file. Local fixups must be performed on this image." ,"STATUS_IMAGE_NOT_AT_BASE",0x40000003L}, {"This informational level status indicates that a specified registry sub-tree transaction state did not yet exist and had to be created." ,"STATUS_RXACT_STATE_CREATED",0x40000004L}, {"{Segment Load}" "A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image." "An exception is raised so a debugger can load, unload or track symbols and breakpoints within these 16-bit segments." ,"STATUS_SEGMENT_NOTIFICATION",0x40000005L}, {"{Local Session Key}" "A user session key was requested for a local RPC connection. The session key returned is a constant value and not unique to this connection." ,"STATUS_LOCAL_USER_SESSION_KEY",0x40000006L}, {"{Invalid Current Directory}" "The process cannot switch to the startup current directory %hs." "Select OK to set current directory to %hs, or select CANCEL to exit." ,"STATUS_BAD_CURRENT_DIRECTORY",0x40000007L}, {"{Serial IOCTL Complete}" "A serial I/O operation was completed by another write to a serial port." "(The IOCTL_SERIAL_XOFF_COUNTER reached zero.)" ,"STATUS_SERIAL_MORE_WRITES",0x40000008L}, {"{Registry Recovery}" "One of the files containing the system's Registry data had to be recovered by use of a log or alternate copy." "The recovery was successful." ,"STATUS_REGISTRY_RECOVERED",0x40000009L}, {"{Redundant Read}" "To satisfy a read request, the NT fault-tolerant file system successfully read the requested data from a redundant copy." "This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was unable to reassign the failing area of the device." ,"STATUS_FT_READ_RECOVERY_FROM_BACKUP",0x4000000AL}, {"{Redundant Write}" "To satisfy a write request, the NT fault-tolerant file system successfully wrote a redundant copy of the information." "This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was not able to reassign the failing area of the device." ,"STATUS_FT_WRITE_RECOVERY",0x4000000BL}, {"{Serial IOCTL Timeout}" "A serial I/O operation completed because the time-out period expired." "(The IOCTL_SERIAL_XOFF_COUNTER had not reached zero.)" ,"STATUS_SERIAL_COUNTER_TIMEOUT",0x4000000CL}, {"{Password Too Complex}" "The Windows password is too complex to be converted to a LAN Manager password." "The LAN Manager password returned is a NULL string." ,"STATUS_NULL_LM_PASSWORD",0x4000000DL}, {"{Machine Type Mismatch}" "The image file %hs is valid, but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load." ,"STATUS_IMAGE_MACHINE_TYPE_MISMATCH",0x4000000EL}, {"{Partial Data Received}" "The network transport returned partial data to its client. The remaining data will be sent later." ,"STATUS_RECEIVE_PARTIAL",0x4000000FL}, {"{Expedited Data Received}" "The network transport returned data to its client that was marked as expedited by the remote system." ,"STATUS_RECEIVE_EXPEDITED",0x40000010L}, {"{Partial Expedited Data Received}" "The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later." ,"STATUS_RECEIVE_PARTIAL_EXPEDITED",0x40000011L}, {"{TDI Event Done}" "The TDI indication has completed successfully." ,"STATUS_EVENT_DONE",0x40000012L}, {"{TDI Event Pending}" "The TDI indication has entered the pending state." ,"STATUS_EVENT_PENDING",0x40000013L}, {"Checking file system on %wZ" ,"STATUS_CHECKING_FILE_SYSTEM",0x40000014L}, {"{Fatal Application Exit}" "%hs" ,"STATUS_FATAL_APP_EXIT",0x40000015L}, {"The specified registry key is referenced by a predefined handle." ,"STATUS_PREDEFINED_HANDLE",0x40000016L}, {"{Page Unlocked}" "The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process." ,"STATUS_WAS_UNLOCKED",0x40000017L}, {"%hs" ,"STATUS_SERVICE_NOTIFICATION",0x40000018L}, {"{Page Locked}" "One of the pages to lock was already locked." ,"STATUS_WAS_LOCKED",0x40000019L}, {"Application popup: %1 : %2" ,"STATUS_LOG_HARD_ERROR",0x4000001AL}, {"STATUS_ALREADY_WIN32" ,"STATUS_ALREADY_WIN32",0x4000001BL}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_UNSIMULATE",0x4000001CL}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_CONTINUE",0x4000001DL}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_SINGLE_STEP",0x4000001EL}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_BREAKPOINT",0x4000001FL}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_EXCEPTION_CONTINUE",0x40000020L}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_EXCEPTION_LASTCHANCE",0x40000021L}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_EXCEPTION_CHAIN",0x40000022L}, {"{Machine Type Mismatch}" "The image file %hs is valid, but is for a machine type other than the current machine." ,"STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE",0x40000023L}, {"A yield execution was performed and no thread was available to run." ,"STATUS_NO_YIELD_PERFORMED",0x40000024L}, {"The resumable flag to a timer API was ignored." ,"STATUS_TIMER_RESUME_IGNORED",0x40000025L}, {"The arbiter has deferred arbitration of these resources to its parent" ,"STATUS_ARBITRATION_UNHANDLED",0x40000026L}, {"The device \"%hs\" has detected a CardBus card in its slot, but the firmware on this system is not configured to allow the CardBus controller to be run in CardBus mode." "The operating system will currently accept only 16-bit (R2) pc-cards on this controller." ,"STATUS_CARDBUS_NOT_SUPPORTED",0x40000027L}, {"Exception status code used by Win32 x86 emulation subsystem." ,"STATUS_WX86_CREATEWX86TIB",0x40000028L}, {"The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system, contact" "the CPU manufacturer to see if this mix of processors is supported." ,"STATUS_MP_PROCESSOR_MISMATCH",0x40000029L}, {"The system was put into hibernation." ,"STATUS_HIBERNATED",0x4000002AL}, {"The system was resumed from hibernation." ,"STATUS_RESUME_HIBERNATION",0x4000002BL}, {"Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3]." ,"STATUS_FIRMWARE_UPDATED",0x4000002CL}, {"A device driver is leaking locked I/O pages causing system degradation. The system has automatically enabled tracking code in order to try and catch the culprit." ,"STATUS_DRIVERS_LEAKING_LOCKED_PAGES",0x4000002DL}, {"Debugger will reply later." ,"DBG_REPLY_LATER",0x40010001L}, {"Debugger can not provide handle." ,"DBG_UNABLE_TO_PROVIDE_HANDLE",0x40010002L}, {"Debugger terminated thread." ,"DBG_TERMINATE_THREAD",0x40010003L}, {"Debugger terminated process." ,"DBG_TERMINATE_PROCESS",0x40010004L}, {"Debugger got control C." ,"DBG_CONTROL_C",0x40010005L}, {"Debugger printed exception on control C." ,"DBG_PRINTEXCEPTION_C",0x40010006L}, {"Debugger received RIP exception." ,"DBG_RIPEXCEPTION",0x40010007L}, {"Debugger received control break." ,"DBG_CONTROL_BREAK",0x40010008L}, {"Debugger command communication exception." ,"DBG_COMMAND_EXCEPTION",0x40010009L}, {"{EXCEPTION}" "Guard Page Exception" "A page of memory that marks the end of a data structure, such as a stack or an array, has been accessed." ,"STATUS_GUARD_PAGE_VIOLATION",0x80000001L}, {"{EXCEPTION}" "Alignment Fault" "A datatype misalignment was detected in a load or store instruction." ,"STATUS_DATATYPE_MISALIGNMENT",0x80000002L}, {"{EXCEPTION}" "Breakpoint" "A breakpoint has been reached." ,"STATUS_BREAKPOINT",0x80000003L}, {"{EXCEPTION}" "Single Step" "A single step or trace operation has just been completed." ,"STATUS_SINGLE_STEP",0x80000004L}, {"{Buffer Overflow}" "The data was too large to fit into the specified buffer." ,"STATUS_BUFFER_OVERFLOW",0x80000005L}, {"{No More Files}" "No more files were found which match the file specification." ,"STATUS_NO_MORE_FILES",0x80000006L}, {"{Kernel Debugger Awakened}" "the system debugger was awakened by an interrupt." ,"STATUS_WAKE_SYSTEM_DEBUGGER",0x80000007L}, {"{Handles Closed}" "Handles to objects have been automatically closed as a result of the requested operation." ,"STATUS_HANDLES_CLOSED",0x8000000AL}, {"{Non-Inheritable ACL}" "An access control list (ACL}," ,"STATUS_NO_INHERITANCE",0x8000000BL}, {"{GUID Substitution}" "During the translation of a global identifier (GUID) to a Windows security ID (SID), no administratively-defined GUID prefix was found." "A substitute prefix was used, which will not compromise system security." "However, this may provide a more restrictive access than intended." ,"STATUS_GUID_SUBSTITUTION_MADE",0x8000000CL}, {"{Partial Copy}" "Due to protection conflicts not all the requested bytes could be copied." ,"STATUS_PARTIAL_COPY",0x8000000DL}, {"{Out of Paper}" "The printer is out of paper." ,"STATUS_DEVICE_PAPER_EMPTY",0x8000000EL}, {"{Device Power Is Off}" "The printer power has been turned off." ,"STATUS_DEVICE_POWERED_OFF",0x8000000FL}, {"{Device Offline}" "The printer has been taken offline." ,"STATUS_DEVICE_OFF_LINE",0x80000010L}, {"{Device Busy}" "The device is currently busy." ,"STATUS_DEVICE_BUSY",0x80000011L}, {"{No More EAs}" "No more extended attributes (EAs) were found for the file." ,"STATUS_NO_MORE_EAS",0x80000012L}, {"{Illegal EA}" "The specified extended attribute (EA) name contains at least one illegal character." ,"STATUS_INVALID_EA_NAME",0x80000013L}, {"{Inconsistent EA List}" "The extended attribute (EA) list is inconsistent." ,"STATUS_EA_LIST_INCONSISTENT",0x80000014L}, {"{Invalid EA Flag}" "An invalid extended attribute (EA) flag was set." ,"STATUS_INVALID_EA_FLAG",0x80000015L}, {"{Verifying Disk}" "The media has changed and a verify operation is in progress so no reads or writes may be performed to the device, except those used in the verify operation." ,"STATUS_VERIFY_REQUIRED",0x80000016L}, {"{Too Much Information}" "The specified access control list (ACL}," ,"STATUS_EXTRANEOUS_INFORMATION",0x80000017L}, {"This warning level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted." "The commit has NOT been completed, but has not been rolled back either (so it may still be committed if desired)." ,"STATUS_RXACT_COMMIT_NECESSARY",0x80000018L}, {"{No More Entries}" "No more entries are available from an enumeration operation." ,"STATUS_NO_MORE_ENTRIES",0x8000001AL}, {"{Filemark Found}" "A filemark was detected." ,"STATUS_FILEMARK_DETECTED",0x8000001BL}, {"{Media Changed}" "The media may have changed." ,"STATUS_MEDIA_CHANGED",0x8000001CL}, {"{I/O Bus Reset}" "An I/O bus reset was detected." ,"STATUS_BUS_RESET",0x8000001DL}, {"{End of Media}" "The end of the media was encountered." ,"STATUS_END_OF_MEDIA",0x8000001EL}, {"Beginning of tape or partition has been detected." ,"STATUS_BEGINNING_OF_MEDIA",0x8000001FL}, {"{Media Changed}" "The media may have changed." ,"STATUS_MEDIA_CHECK",0x80000020L}, {"A tape access reached a setmark." ,"STATUS_SETMARK_DETECTED",0x80000021L}, {"During a tape access, the end of the data written is reached." ,"STATUS_NO_DATA_DETECTED",0x80000022L}, {"The redirector is in use and cannot be unloaded." ,"STATUS_REDIRECTOR_HAS_OPEN_HANDLES",0x80000023L}, {"The server is in use and cannot be unloaded." ,"STATUS_SERVER_HAS_OPEN_HANDLES",0x80000024L}, {"The specified connection has already been disconnected." ,"STATUS_ALREADY_DISCONNECTED",0x80000025L}, {"A long jump has been executed." ,"STATUS_LONGJUMP",0x80000026L}, {"A cleaner cartridge is present in the tape library." ,"STATUS_CLEANER_CARTRIDGE_INSTALLED",0x80000027L}, {"The Plug and Play query operation was not successful." ,"STATUS_PLUGPLAY_QUERY_VETOED",0x80000028L}, {"A frame consolidation has been executed." ,"STATUS_UNWIND_CONSOLIDATE",0x80000029L}, {"{Registry Hive Recovered}" "Registry hive (file):" "%hs" "was corrupted and it has been recovered. Some data might have been lost." ,"STATUS_REGISTRY_HIVE_RECOVERED",0x8000002AL}, {"The application is attempting to run executable code from the module %hs. This may be insecure. An alternative, %hs, is available. Should the application use the secure module %hs?" ,"STATUS_DLL_MIGHT_BE_INSECURE",0x8000002BL}, {"The application is loading executable code from the module %hs. This is secure, but may be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs?" ,"STATUS_DLL_MIGHT_BE_INCOMPATIBLE",0x8000002CL}, {"Debugger did not handle the exception." ,"DBG_EXCEPTION_NOT_HANDLED",0x80010001L}, {"The cluster node is already up." ,"STATUS_CLUSTER_NODE_ALREADY_UP",0x80130001L}, {"The cluster node is already down." ,"STATUS_CLUSTER_NODE_ALREADY_DOWN",0x80130002L}, {"The cluster network is already online." ,"STATUS_CLUSTER_NETWORK_ALREADY_ONLINE",0x80130003L}, {"The cluster network is already offline." ,"STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE",0x80130004L}, {"The cluster node is already a member of the cluster." ,"STATUS_CLUSTER_NODE_ALREADY_MEMBER",0x80130005L}, {"{Operation Failed}" "The requested operation was unsuccessful." ,"STATUS_UNSUCCESSFUL",0xC0000001L}, {"{Not Implemented}" "The requested operation is not implemented." ,"STATUS_NOT_IMPLEMENTED",0xC0000002L}, {"{Invalid Parameter}" "The specified information class is not a valid information class for the specified object." ,"STATUS_INVALID_INFO_CLASS",0xC0000003L}, {"The specified information record length does not match the length required for the specified information class." ,"STATUS_INFO_LENGTH_MISMATCH",0xC0000004L}, {"The instruction at \"0x%08lx\" referenced memory at \"0x%08lx\". The memory could not be \"%s\"." ,"STATUS_ACCESS_VIOLATION",0xC0000005L}, {"The instruction at \"0x%08lx\" referenced memory at \"0x%08lx\". The required data was not placed into memory because of an I/O error status of \"0x%08lx\"." ,"STATUS_IN_PAGE_ERROR",0xC0000006L}, {"The pagefile quota for the process has been exhausted." ,"STATUS_PAGEFILE_QUOTA",0xC0000007L}, {"An invalid HANDLE was specified." ,"STATUS_INVALID_HANDLE",0xC0000008L}, {"An invalid initial stack was specified in a call to NtCreateThread." ,"STATUS_BAD_INITIAL_STACK",0xC0000009L}, {"An invalid initial start address was specified in a call to NtCreateThread." ,"STATUS_BAD_INITIAL_PC",0xC000000AL}, {"An invalid Client ID was specified." ,"STATUS_INVALID_CID",0xC000000BL}, {"An attempt was made to cancel or set a timer that has an associated APC and the subject thread is not the thread that originally set the timer with an associated APC routine." ,"STATUS_TIMER_NOT_CANCELED",0xC000000CL}, {"An invalid parameter was passed to a service or function." ,"STATUS_INVALID_PARAMETER",0xC000000DL}, {"A device which does not exist was specified." ,"STATUS_NO_SUCH_DEVICE",0xC000000EL}, {"{File Not Found}" "The file %hs does not exist." ,"STATUS_NO_SUCH_FILE",0xC000000FL}, {"The specified request is not a valid operation for the target device." ,"STATUS_INVALID_DEVICE_REQUEST",0xC0000010L}, {"The end-of-file marker has been reached. There is no valid data in the file beyond this marker." ,"STATUS_END_OF_FILE",0xC0000011L}, {"{Wrong Volume}" "The wrong volume is in the drive." "Please insert volume %hs into drive %hs." ,"STATUS_WRONG_VOLUME",0xC0000012L}, {"{No Disk}" "There is no disk in the drive." "Please insert a disk into drive %hs." ,"STATUS_NO_MEDIA_IN_DEVICE",0xC0000013L}, {"{Unknown Disk Format}" "The disk in drive %hs is not formatted properly." "Please check the disk, and reformat if necessary." ,"STATUS_UNRECOGNIZED_MEDIA",0xC0000014L}, {"{Sector Not Found}" "The specified sector does not exist." ,"STATUS_NONEXISTENT_SECTOR",0xC0000015L}, {"{Still Busy}" "The specified I/O request packet (IRP) cannot be disposed of because the I/O operation is not complete." ,"STATUS_MORE_PROCESSING_REQUIRED",0xC0000016L}, {"{Not Enough Quota}" "Not enough virtual memory or paging file quota is available to complete the specified operation." ,"STATUS_NO_MEMORY",0xC0000017L}, {"{Conflicting Address Range}" "The specified address range conflicts with the address space." ,"STATUS_CONFLICTING_ADDRESSES",0xC0000018L}, {"Address range to unmap is not a mapped view." ,"STATUS_NOT_MAPPED_VIEW",0xC0000019L}, {"Virtual memory cannot be freed." ,"STATUS_UNABLE_TO_FREE_VM",0xC000001AL}, {"Specified section cannot be deleted." ,"STATUS_UNABLE_TO_DELETE_SECTION",0xC000001BL}, {"An invalid system service was specified in a system service call." ,"STATUS_INVALID_SYSTEM_SERVICE",0xC000001CL}, {"{EXCEPTION}" "Illegal Instruction" "An attempt was made to execute an illegal instruction." ,"STATUS_ILLEGAL_INSTRUCTION",0xC000001DL}, {"{Invalid Lock Sequence}" "An attempt was made to execute an invalid lock sequence." ,"STATUS_INVALID_LOCK_SEQUENCE",0xC000001EL}, {"{Invalid Mapping}" "An attempt was made to create a view for a section which is bigger than the section." ,"STATUS_INVALID_VIEW_SIZE",0xC000001FL}, {"{Bad File}" "The attributes of the specified mapping file for a section of memory cannot be read." ,"STATUS_INVALID_FILE_FOR_SECTION",0xC0000020L}, {"{Already Committed}" "The specified address range is already committed." ,"STATUS_ALREADY_COMMITTED",0xC0000021L}, {"{Access Denied}" "A process has requested access to an object, but has not been granted those access rights." ,"STATUS_ACCESS_DENIED",0xC0000022L}, {"{Buffer Too Small}" "The buffer is too small to contain the entry. No information has been written to the buffer." ,"STATUS_BUFFER_TOO_SMALL",0xC0000023L}, {"{Wrong Type}" "There is a mismatch between the type of object required by the requested operation and the type of object that is specified in the request." ,"STATUS_OBJECT_TYPE_MISMATCH",0xC0000024L}, {"{EXCEPTION}" "Cannot Continue" "Windows cannot continue from this exception." ,"STATUS_NONCONTINUABLE_EXCEPTION",0xC0000025L}, {"An invalid exception disposition was returned by an exception handler." ,"STATUS_INVALID_DISPOSITION",0xC0000026L}, {"Unwind exception code." ,"STATUS_UNWIND",0xC0000027L}, {"An invalid or unaligned stack was encountered during an unwind operation." ,"STATUS_BAD_STACK",0xC0000028L}, {"An invalid unwind target was encountered during an unwind operation." ,"STATUS_INVALID_UNWIND_TARGET",0xC0000029L}, {"An attempt was made to unlock a page of memory which was not locked." ,"STATUS_NOT_LOCKED",0xC000002AL}, {"Device parity error on I/O operation." ,"STATUS_PARITY_ERROR",0xC000002BL}, {"An attempt was made to decommit uncommitted virtual memory." ,"STATUS_UNABLE_TO_DECOMMIT_VM",0xC000002CL}, {"An attempt was made to change the attributes on memory that has not been committed." ,"STATUS_NOT_COMMITTED",0xC000002DL}, {"Invalid Object Attributes specified to NtCreatePort or invalid Port Attributes specified to NtConnectPort" ,"STATUS_INVALID_PORT_ATTRIBUTES",0xC000002EL}, {"Length of message passed to NtRequestPort or NtRequestWaitReplyPort was longer than the maximum message allowed by the port." ,"STATUS_PORT_MESSAGE_TOO_LONG",0xC000002FL}, {"An invalid combination of parameters was specified." ,"STATUS_INVALID_PARAMETER_MIX",0xC0000030L}, {"An attempt was made to lower a quota limit below the current usage." ,"STATUS_INVALID_QUOTA_LOWER",0xC0000031L}, {"{Corrupt Disk}" "The file system structure on the disk is corrupt and unusable." "Please run the Chkdsk utility on the volume %hs." ,"STATUS_DISK_CORRUPT_ERROR",0xC0000032L}, {"Object Name invalid." ,"STATUS_OBJECT_NAME_INVALID",0xC0000033L}, {"Object Name not found." ,"STATUS_OBJECT_NAME_NOT_FOUND",0xC0000034L}, {"Object Name already exists." ,"STATUS_OBJECT_NAME_COLLISION",0xC0000035L}, {"Attempt to send a message to a disconnected communication port." ,"STATUS_PORT_DISCONNECTED",0xC0000037L}, {"An attempt was made to attach to a device that was already attached to another device." ,"STATUS_DEVICE_ALREADY_ATTACHED",0xC0000038L}, {"Object Path Component was not a directory object." ,"STATUS_OBJECT_PATH_INVALID",0xC0000039L}, {"{Path Not Found}" "The path %hs does not exist." ,"STATUS_OBJECT_PATH_NOT_FOUND",0xC000003AL}, {"Object Path Component was not a directory object." ,"STATUS_OBJECT_PATH_SYNTAX_BAD",0xC000003BL}, {"{Data Overrun}" "A data overrun error occurred." ,"STATUS_DATA_OVERRUN",0xC000003CL}, {"{Data Late}" "A data late error occurred." ,"STATUS_DATA_LATE_ERROR",0xC000003DL}, {"{Data Error}" "An error in reading or writing data occurred." ,"STATUS_DATA_ERROR",0xC000003EL}, {"{Bad CRC}" "A cyclic redundancy check (CRC) checksum error occurred." ,"STATUS_CRC_ERROR",0xC000003FL}, {"{Section Too Large}" "The specified section is too big to map the file." ,"STATUS_SECTION_TOO_BIG",0xC0000040L}, {"The NtConnectPort request is refused." ,"STATUS_PORT_CONNECTION_REFUSED",0xC0000041L}, {"The type of port handle is invalid for the operation requested." ,"STATUS_INVALID_PORT_HANDLE",0xC0000042L}, {"A file cannot be opened because the share access flags are incompatible." ,"STATUS_SHARING_VIOLATION",0xC0000043L}, {"Insufficient quota exists to complete the operation" ,"STATUS_QUOTA_EXCEEDED",0xC0000044L}, {"The specified page protection was not valid." ,"STATUS_INVALID_PAGE_PROTECTION",0xC0000045L}, {"An attempt to release a mutant object was made by a thread that was not the owner of the mutant object." ,"STATUS_MUTANT_NOT_OWNED",0xC0000046L}, {"An attempt was made to release a semaphore such that its maximum count would have been exceeded." ,"STATUS_SEMAPHORE_LIMIT_EXCEEDED",0xC0000047L}, {"An attempt to set a processes DebugPort or ExceptionPort was made, but a port already exists in the process or" "an attempt to set a file's CompletionPort made, but a port was already set in the file." ,"STATUS_PORT_ALREADY_SET",0xC0000048L}, {"An attempt was made to query image information on a section which does not map an image." ,"STATUS_SECTION_NOT_IMAGE",0xC0000049L}, {"An attempt was made to suspend a thread whose suspend count was at its maximum." ,"STATUS_SUSPEND_COUNT_EXCEEDED",0xC000004AL}, {"An attempt was made to suspend a thread that has begun termination." ,"STATUS_THREAD_IS_TERMINATING",0xC000004BL}, {"An attempt was made to set the working set limit to an invalid value (minimum greater than maximum, etc)." ,"STATUS_BAD_WORKING_SET_LIMIT",0xC000004CL}, {"A section was created to map a file which is not compatible to an already existing section which maps the same file." ,"STATUS_INCOMPATIBLE_FILE_MAP",0xC000004DL}, {"A view to a section specifies a protection which is incompatible with the initial view's protection." ,"STATUS_SECTION_PROTECTION",0xC000004EL}, {"An operation involving EAs failed because the file system does not support EAs." ,"STATUS_EAS_NOT_SUPPORTED",0xC000004FL}, {"An EA operation failed because EA set is too large." ,"STATUS_EA_TOO_LARGE",0xC0000050L}, {"An EA operation failed because the name or EA index is invalid." ,"STATUS_NONEXISTENT_EA_ENTRY",0xC0000051L}, {"The file for which EAs were requested has no EAs." ,"STATUS_NO_EAS_ON_FILE",0xC0000052L}, {"The EA is corrupt and non-readable." ,"STATUS_EA_CORRUPT_ERROR",0xC0000053L}, {"A requested read/write cannot be granted due to a conflicting file lock." ,"STATUS_FILE_LOCK_CONFLICT",0xC0000054L}, {"A requested file lock cannot be granted due to other existing locks." ,"STATUS_LOCK_NOT_GRANTED",0xC0000055L}, {"A non close operation has been requested of a file object with a delete pending." ,"STATUS_DELETE_PENDING",0xC0000056L}, {"An attempt was made to set the control attribute on a file. This attribute is not supported in the target file system." ,"STATUS_CTL_FILE_NOT_SUPPORTED",0xC0000057L}, {"Indicates a revision number encountered or specified is not one known by the service. It may be a more recent revision than the service is aware of." ,"STATUS_UNKNOWN_REVISION",0xC0000058L}, {"Indicates two revision levels are incompatible." ,"STATUS_REVISION_MISMATCH",0xC0000059L}, {"Indicates a particular Security ID may not be assigned as the owner of an object." ,"STATUS_INVALID_OWNER",0xC000005AL}, {"Indicates a particular Security ID may not be assigned as the primary group of an object." ,"STATUS_INVALID_PRIMARY_GROUP",0xC000005BL}, {"An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client." ,"STATUS_NO_IMPERSONATION_TOKEN",0xC000005CL}, {"A mandatory group may not be disabled." ,"STATUS_CANT_DISABLE_MANDATORY",0xC000005DL}, {"There are currently no logon servers available to service the logon request." ,"STATUS_NO_LOGON_SERVERS",0xC000005EL}, {"A specified logon session does not exist. It may already have been terminated." ,"STATUS_NO_SUCH_LOGON_SESSION",0xC000005FL}, {"A specified privilege does not exist." ,"STATUS_NO_SUCH_PRIVILEGE",0xC0000060L}, {"A required privilege is not held by the client." ,"STATUS_PRIVILEGE_NOT_HELD",0xC0000061L}, {"The name provided is not a properly formed account name." ,"STATUS_INVALID_ACCOUNT_NAME",0xC0000062L}, {"The specified user already exists." ,"STATUS_USER_EXISTS",0xC0000063L}, {"The specified user does not exist." ,"STATUS_NO_SUCH_USER",0xC0000064L}, {"The specified group already exists." ,"STATUS_GROUP_EXISTS",0xC0000065L}, {"The specified group does not exist." ,"STATUS_NO_SUCH_GROUP",0xC0000066L}, {"The specified user account is already in the specified group account." "Also used to indicate a group cannot be deleted because it contains a member." ,"STATUS_MEMBER_IN_GROUP",0xC0000067L}, {"The specified user account is not a member of the specified group account." ,"STATUS_MEMBER_NOT_IN_GROUP",0xC0000068L}, {"Indicates the requested operation would disable or delete the last remaining administration account." "This is not allowed to prevent creating a situation in which the system cannot be administrated." ,"STATUS_LAST_ADMIN",0xC0000069L}, {"When trying to update a password, this return status indicates that the value provided as the current password is not correct." ,"STATUS_WRONG_PASSWORD",0xC000006AL}, {"When trying to update a password, this return status indicates that the value provided for the new password contains values that are not allowed in passwords." ,"STATUS_ILL_FORMED_PASSWORD",0xC000006BL}, {"When trying to update a password, this status indicates that some password update rule has been violated. For example, the password may not meet length criteria." ,"STATUS_PASSWORD_RESTRICTION",0xC000006CL}, {"The attempted logon is invalid. This is either due to a bad username or authentication information." ,"STATUS_LOGON_FAILURE",0xC000006DL}, {"Indicates a referenced user name and authentication information are valid, but some user account restriction has prevented successful authentication (such as time-of-day restrictions)." ,"STATUS_ACCOUNT_RESTRICTION",0xC000006EL}, {"The user account has time restrictions and may not be logged onto at this time." ,"STATUS_INVALID_LOGON_HOURS",0xC000006FL}, {"The user account is restricted such that it may not be used to log on from the source workstation." ,"STATUS_INVALID_WORKSTATION",0xC0000070L}, {"The user account's password has expired." ,"STATUS_PASSWORD_EXPIRED",0xC0000071L}, {"The referenced account is currently disabled and may not be logged on to." ,"STATUS_ACCOUNT_DISABLED",0xC0000072L}, {"None of the information to be translated has been translated." ,"STATUS_NONE_MAPPED",0xC0000073L}, {"The number of LUIDs requested may not be allocated with a single allocation." ,"STATUS_TOO_MANY_LUIDS_REQUESTED",0xC0000074L}, {"Indicates there are no more LUIDs to allocate." ,"STATUS_LUIDS_EXHAUSTED",0xC0000075L}, {"Indicates the sub-authority value is invalid for the particular use." ,"STATUS_INVALID_SUB_AUTHORITY",0xC0000076L}, {"Indicates the ACL structure is not valid." ,"STATUS_INVALID_ACL",0xC0000077L}, {"Indicates the SID structure is not valid." ,"STATUS_INVALID_SID",0xC0000078L}, {"Indicates the SECURITY_DESCRIPTOR structure is not valid." ,"STATUS_INVALID_SECURITY_DESCR",0xC0000079L}, {"Indicates the specified procedure address cannot be found in the DLL." ,"STATUS_PROCEDURE_NOT_FOUND",0xC000007AL}, {"{Bad Image}" "The application or DLL %hs is not a valid Windows image. Please check this against your installation diskette." ,"STATUS_INVALID_IMAGE_FORMAT",0xC000007BL}, {"An attempt was made to reference a token that doesn't exist." "This is typically done by referencing the token associated with a thread when the thread is not impersonating a client." ,"STATUS_NO_TOKEN",0xC000007CL}, {"Indicates that an attempt to build either an inherited ACL or ACE was not successful." "This can be caused by a number of things. One of the more probable causes is the replacement of a CreatorId with an SID that didn't fit into the ACE or ACL." ,"STATUS_BAD_INHERITANCE_ACL",0xC000007DL}, {"The range specified in NtUnlockFile was not locked." ,"STATUS_RANGE_NOT_LOCKED",0xC000007EL}, {"An operation failed because the disk was full." ,"STATUS_DISK_FULL",0xC000007FL}, {"The GUID allocation server is [already] disabled at the moment." ,"STATUS_SERVER_DISABLED",0xC0000080L}, {"The GUID allocation server is [already] enabled at the moment." ,"STATUS_SERVER_NOT_DISABLED",0xC0000081L}, {"Too many GUIDs were requested from the allocation server at once." ,"STATUS_TOO_MANY_GUIDS_REQUESTED",0xC0000082L}, {"The GUIDs could not be allocated because the Authority Agent was exhausted." ,"STATUS_GUIDS_EXHAUSTED",0xC0000083L}, {"The value provided was an invalid value for an identifier authority." ,"STATUS_INVALID_ID_AUTHORITY",0xC0000084L}, {"There are no more authority agent values available for the given identifier authority value." ,"STATUS_AGENTS_EXHAUSTED",0xC0000085L}, {"An invalid volume label has been specified." ,"STATUS_INVALID_VOLUME_LABEL",0xC0000086L}, {"A mapped section could not be extended." ,"STATUS_SECTION_NOT_EXTENDED",0xC0000087L}, {"Specified section to flush does not map a data file." ,"STATUS_NOT_MAPPED_DATA",0xC0000088L}, {"Indicates the specified image file did not contain a resource section." ,"STATUS_RESOURCE_DATA_NOT_FOUND",0xC0000089L}, {"Indicates the specified resource type cannot be found in the image file." ,"STATUS_RESOURCE_TYPE_NOT_FOUND",0xC000008AL}, {"Indicates the specified resource name cannot be found in the image file." ,"STATUS_RESOURCE_NAME_NOT_FOUND",0xC000008BL}, {"{EXCEPTION}" "Array bounds exceeded." ,"STATUS_ARRAY_BOUNDS_EXCEEDED",0xC000008CL}, {"{EXCEPTION}" "Floating-point denormal operand." ,"STATUS_FLOAT_DENORMAL_OPERAND",0xC000008DL}, {"{EXCEPTION}" "Floating-point division by zero." ,"STATUS_FLOAT_DIVIDE_BY_ZERO",0xC000008EL}, {"{EXCEPTION}" "Floating-point inexact result." ,"STATUS_FLOAT_INEXACT_RESULT",0xC000008FL}, {"{EXCEPTION}" "Floating-point invalid operation." ,"STATUS_FLOAT_INVALID_OPERATION",0xC0000090L}, {"{EXCEPTION}" "Floating-point overflow." ,"STATUS_FLOAT_OVERFLOW",0xC0000091L}, {"{EXCEPTION}" "Floating-point stack check." ,"STATUS_FLOAT_STACK_CHECK",0xC0000092L}, {"{EXCEPTION}" "Floating-point underflow." ,"STATUS_FLOAT_UNDERFLOW",0xC0000093L}, {"{EXCEPTION}" "Integer division by zero." ,"STATUS_INTEGER_DIVIDE_BY_ZERO",0xC0000094L}, {"{EXCEPTION}" "Integer overflow." ,"STATUS_INTEGER_OVERFLOW",0xC0000095L}, {"{EXCEPTION}" "Privileged instruction." ,"STATUS_PRIVILEGED_INSTRUCTION",0xC0000096L}, {"An attempt was made to install more paging files than the system supports." ,"STATUS_TOO_MANY_PAGING_FILES",0xC0000097L}, {"The volume for a file has been externally altered such that the opened file is no longer valid." ,"STATUS_FILE_INVALID",0xC0000098L}, {"When a block of memory is allotted for future updates, such as the memory allocated to hold discretionary access control and primary group information, successive updates may exceed the amount of memory originally allotted." "Since quota may already have been charged to several processes which have handles to the object, it is not reasonable to alter the size of the allocated memory." "Instead, a request that requires more memory than has been allotted must fail and the STATUS_ALLOTED_SPACE_EXCEEDED error returned." ,"STATUS_ALLOTTED_SPACE_EXCEEDED",0xC0000099L}, {"Insufficient system resources exist to complete the API." ,"STATUS_INSUFFICIENT_RESOURCES",0xC000009AL}, {"An attempt has been made to open a DFS exit path control file." ,"STATUS_DFS_EXIT_PATH_FOUND",0xC000009BL}, {"STATUS_DEVICE_DATA_ERROR" ,"STATUS_DEVICE_DATA_ERROR",0xC000009CL}, {"STATUS_DEVICE_NOT_CONNECTED" ,"STATUS_DEVICE_NOT_CONNECTED",0xC000009DL}, {"STATUS_DEVICE_POWER_FAILURE" ,"STATUS_DEVICE_POWER_FAILURE",0xC000009EL}, {"Virtual memory cannot be freed as base address is not the base of the region and a region size of zero was specified." ,"STATUS_FREE_VM_NOT_AT_BASE",0xC000009FL}, {"An attempt was made to free virtual memory which is not allocated." ,"STATUS_MEMORY_NOT_ALLOCATED",0xC00000A0L}, {"The working set is not big enough to allow the requested pages to be locked." ,"STATUS_WORKING_SET_QUOTA",0xC00000A1L}, {"{Write Protect Error}" "The disk cannot be written to because it is write protected." "Please remove the write protection from the volume %hs in drive %hs." ,"STATUS_MEDIA_WRITE_PROTECTED",0xC00000A2L}, {"{Drive Not Ready}" "The drive is not ready for use; its door may be open." "Please check drive %hs and make sure that a disk is inserted and that the drive door is closed." ,"STATUS_DEVICE_NOT_READY",0xC00000A3L}, {"The specified attributes are invalid, or incompatible with the attributes for the group as a whole." ,"STATUS_INVALID_GROUP_ATTRIBUTES",0xC00000A4L}, {"A specified impersonation level is invalid." "Also used to indicate a required impersonation level was not provided." ,"STATUS_BAD_IMPERSONATION_LEVEL",0xC00000A5L}, {"An attempt was made to open an Anonymous level token." "Anonymous tokens may not be opened." ,"STATUS_CANT_OPEN_ANONYMOUS",0xC00000A6L}, {"The validation information class requested was invalid." ,"STATUS_BAD_VALIDATION_CLASS",0xC00000A7L}, {"The type of a token object is inappropriate for its attempted use." ,"STATUS_BAD_TOKEN_TYPE",0xC00000A8L}, {"The type of a token object is inappropriate for its attempted use." ,"STATUS_BAD_MASTER_BOOT_RECORD",0xC00000A9L}, {"An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references." ,"STATUS_INSTRUCTION_MISALIGNMENT",0xC00000AAL}, {"The maximum named pipe instance count has been reached." ,"STATUS_INSTANCE_NOT_AVAILABLE",0xC00000ABL}, {"An instance of a named pipe cannot be found in the listening state." ,"STATUS_PIPE_NOT_AVAILABLE",0xC00000ACL}, {"The named pipe is not in the connected or closing state." ,"STATUS_INVALID_PIPE_STATE",0xC00000ADL}, {"The specified pipe is set to complete operations and there are current I/O operations queued so it cannot be changed to queue operations." ,"STATUS_PIPE_BUSY",0xC00000AEL}, {"The specified handle is not open to the server end of the named pipe." ,"STATUS_ILLEGAL_FUNCTION",0xC00000AFL}, {"The specified named pipe is in the disconnected state." ,"STATUS_PIPE_DISCONNECTED",0xC00000B0L}, {"The specified named pipe is in the closing state." ,"STATUS_PIPE_CLOSING",0xC00000B1L}, {"The specified named pipe is in the connected state." ,"STATUS_PIPE_CONNECTED",0xC00000B2L}, {"The specified named pipe is in the listening state." ,"STATUS_PIPE_LISTENING",0xC00000B3L}, {"The specified named pipe is not in message mode." ,"STATUS_INVALID_READ_MODE",0xC00000B4L}, {"{Device Timeout}" "The specified I/O operation on %hs was not completed before the time-out period expired." ,"STATUS_IO_TIMEOUT",0xC00000B5L}, {"The specified file has been closed by another process." ,"STATUS_FILE_FORCED_CLOSED",0xC00000B6L}, {"Profiling not started." ,"STATUS_PROFILING_NOT_STARTED",0xC00000B7L}, {"Profiling not stopped." ,"STATUS_PROFILING_NOT_STOPPED",0xC00000B8L}, {"The passed ACL did not contain the minimum required information." ,"STATUS_COULD_NOT_INTERPRET",0xC00000B9L}, {"The file that was specified as a target is a directory and the caller specified that it could be anything but a directory." ,"STATUS_FILE_IS_A_DIRECTORY",0xC00000BAL}, {"The request is not supported." ,"STATUS_NOT_SUPPORTED",0xC00000BBL}, {"This remote computer is not listening." ,"STATUS_REMOTE_NOT_LISTENING",0xC00000BCL}, {"A duplicate name exists on the network." ,"STATUS_DUPLICATE_NAME",0xC00000BDL}, {"The network path cannot be located." ,"STATUS_BAD_NETWORK_PATH",0xC00000BEL}, {"The network is busy." ,"STATUS_NETWORK_BUSY",0xC00000BFL}, {"This device does not exist." ,"STATUS_DEVICE_DOES_NOT_EXIST",0xC00000C0L}, {"The network BIOS command limit has been reached." ,"STATUS_TOO_MANY_COMMANDS",0xC00000C1L}, {"An I/O adapter hardware error has occurred." ,"STATUS_ADAPTER_HARDWARE_ERROR",0xC00000C2L}, {"The network responded incorrectly." ,"STATUS_INVALID_NETWORK_RESPONSE",0xC00000C3L}, {"An unexpected network error occurred." ,"STATUS_UNEXPECTED_NETWORK_ERROR",0xC00000C4L}, {"The remote adapter is not compatible." ,"STATUS_BAD_REMOTE_ADAPTER",0xC00000C5L}, {"The printer queue is full." ,"STATUS_PRINT_QUEUE_FULL",0xC00000C6L}, {"Space to store the file waiting to be printed is not available on the server." ,"STATUS_NO_SPOOL_SPACE",0xC00000C7L}, {"The requested print file has been canceled." ,"STATUS_PRINT_CANCELLED",0xC00000C8L}, {"The network name was deleted." ,"STATUS_NETWORK_NAME_DELETED",0xC00000C9L}, {"Network access is denied." ,"STATUS_NETWORK_ACCESS_DENIED",0xC00000CAL}, {"{Incorrect Network Resource Type}" "The specified device type (LPT, for example) conflicts with the actual device type on the remote resource." ,"STATUS_BAD_DEVICE_TYPE",0xC00000CBL}, {"{Network Name Not Found}" "The specified share name cannot be found on the remote server." ,"STATUS_BAD_NETWORK_NAME",0xC00000CCL}, {"The name limit for the local computer network adapter card was exceeded." ,"STATUS_TOO_MANY_NAMES",0xC00000CDL}, {"The network BIOS session limit was exceeded." ,"STATUS_TOO_MANY_SESSIONS",0xC00000CEL}, {"File sharing has been temporarily paused." ,"STATUS_SHARING_PAUSED",0xC00000CFL}, {"No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept." ,"STATUS_REQUEST_NOT_ACCEPTED",0xC00000D0L}, {"Print or disk redirection is temporarily paused." ,"STATUS_REDIRECTOR_PAUSED",0xC00000D1L}, {"A network data fault occurred." ,"STATUS_NET_WRITE_FAULT",0xC00000D2L}, {"The number of active profiling objects is at the maximum and no more may be started." ,"STATUS_PROFILING_AT_LIMIT",0xC00000D3L}, {"{Incorrect Volume}" "The target file of a rename request is located on a different device than the source of the rename request." ,"STATUS_NOT_SAME_DEVICE",0xC00000D4L}, {"The file specified has been renamed and thus cannot be modified." ,"STATUS_FILE_RENAMED",0xC00000D5L}, {"{Network Request Timeout}" "The session with a remote server has been disconnected because the time-out interval for a request has expired." ,"STATUS_VIRTUAL_CIRCUIT_CLOSED",0xC00000D6L}, {"Indicates an attempt was made to operate on the security of an object that does not have security associated with it." ,"STATUS_NO_SECURITY_ON_OBJECT",0xC00000D7L}, {"Used to indicate that an operation cannot continue without blocking for I/O." ,"STATUS_CANT_WAIT",0xC00000D8L}, {"Used to indicate that a read operation was done on an empty pipe." ,"STATUS_PIPE_EMPTY",0xC00000D9L}, {"Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied." ,"STATUS_CANT_ACCESS_DOMAIN_INFO",0xC00000DAL}, {"Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL}," ,"STATUS_CANT_TERMINATE_SELF",0xC00000DBL}, {"Indicates the Sam Server was in the wrong state to perform the desired operation." ,"STATUS_INVALID_SERVER_STATE",0xC00000DCL}, {"Indicates the Domain was in the wrong state to perform the desired operation." ,"STATUS_INVALID_DOMAIN_STATE",0xC00000DDL}, {"This operation is only allowed for the Primary Domain Controller of the domain." ,"STATUS_INVALID_DOMAIN_ROLE",0xC00000DEL}, {"The specified Domain did not exist." ,"STATUS_NO_SUCH_DOMAIN",0xC00000DFL}, {"The specified Domain already exists." ,"STATUS_DOMAIN_EXISTS",0xC00000E0L}, {"An attempt was made to exceed the limit on the number of domains per server for this release." ,"STATUS_DOMAIN_LIMIT_EXCEEDED",0xC00000E1L}, {"Error status returned when oplock request is denied." ,"STATUS_OPLOCK_NOT_GRANTED",0xC00000E2L}, {"Error status returned when an invalid oplock acknowledgment is received by a file system." ,"STATUS_INVALID_OPLOCK_PROTOCOL",0xC00000E3L}, {"This error indicates that the requested operation cannot be completed due to a catastrophic media failure or on-disk data structure corruption." ,"STATUS_INTERNAL_DB_CORRUPTION",0xC00000E4L}, {"An internal error occurred." ,"STATUS_INTERNAL_ERROR",0xC00000E5L}, {"Indicates generic access types were contained in an access mask which should already be mapped to non-generic access types." ,"STATUS_GENERIC_NOT_MAPPED",0xC00000E6L}, {"Indicates a security descriptor is not in the necessary format (absolute or self-relative)." ,"STATUS_BAD_DESCRIPTOR_FORMAT",0xC00000E7L}, {"An access to a user buffer failed at an \"expected\" point in time." "This code is defined since the caller does not want to accept STATUS_ACCESS_VIOLATION in its filter." ,"STATUS_INVALID_USER_BUFFER",0xC00000E8L}, {"If an I/O error is returned which is not defined in the standard FsRtl filter, it is converted to the following error which is guaranteed to be in the filter." "In this case information is lost, however, the filter correctly handles the exception." ,"STATUS_UNEXPECTED_IO_ERROR",0xC00000E9L}, {"If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter." "In this case information is lost, however, the filter correctly handles the exception." ,"STATUS_UNEXPECTED_MM_CREATE_ERR",0xC00000EAL}, {"If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter." "In this case information is lost, however, the filter correctly handles the exception." ,"STATUS_UNEXPECTED_MM_MAP_ERROR",0xC00000EBL}, {"If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter." "In this case information is lost, however, the filter correctly handles the exception." ,"STATUS_UNEXPECTED_MM_EXTEND_ERR",0xC00000ECL}, {"The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process." ,"STATUS_NOT_LOGON_PROCESS",0xC00000EDL}, {"An attempt has been made to start a new session manager or LSA logon session with an ID that is already in use." ,"STATUS_LOGON_SESSION_EXISTS",0xC00000EEL}, {"An invalid parameter was passed to a service or function as the first argument." ,"STATUS_INVALID_PARAMETER_1",0xC00000EFL}, {"An invalid parameter was passed to a service or function as the second argument." ,"STATUS_INVALID_PARAMETER_2",0xC00000F0L}, {"An invalid parameter was passed to a service or function as the third argument." ,"STATUS_INVALID_PARAMETER_3",0xC00000F1L}, {"An invalid parameter was passed to a service or function as the fourth argument." ,"STATUS_INVALID_PARAMETER_4",0xC00000F2L}, {"An invalid parameter was passed to a service or function as the fifth argument." ,"STATUS_INVALID_PARAMETER_5",0xC00000F3L}, {"An invalid parameter was passed to a service or function as the sixth argument." ,"STATUS_INVALID_PARAMETER_6",0xC00000F4L}, {"An invalid parameter was passed to a service or function as the seventh argument." ,"STATUS_INVALID_PARAMETER_7",0xC00000F5L}, {"An invalid parameter was passed to a service or function as the eighth argument." ,"STATUS_INVALID_PARAMETER_8",0xC00000F6L}, {"An invalid parameter was passed to a service or function as the ninth argument." ,"STATUS_INVALID_PARAMETER_9",0xC00000F7L}, {"An invalid parameter was passed to a service or function as the tenth argument." ,"STATUS_INVALID_PARAMETER_10",0xC00000F8L}, {"An invalid parameter was passed to a service or function as the eleventh argument." ,"STATUS_INVALID_PARAMETER_11",0xC00000F9L}, {"An invalid parameter was passed to a service or function as the twelfth argument." ,"STATUS_INVALID_PARAMETER_12",0xC00000FAL}, {"An attempt was made to access a network file, but the network software was not yet started." ,"STATUS_REDIRECTOR_NOT_STARTED",0xC00000FBL}, {"An attempt was made to start the redirector, but the redirector has already been started." ,"STATUS_REDIRECTOR_STARTED",0xC00000FCL}, {"A new guard page for the stack cannot be created." ,"STATUS_STACK_OVERFLOW",0xC00000FDL}, {"A specified authentication package is unknown." ,"STATUS_NO_SUCH_PACKAGE",0xC00000FEL}, {"A malformed function table was encountered during an unwind operation." ,"STATUS_BAD_FUNCTION_TABLE",0xC00000FFL}, {"Indicates the specified environment variable name was not found in the specified environment block." ,"STATUS_VARIABLE_NOT_FOUND",0xC0000100L}, {"Indicates that the directory trying to be deleted is not empty." ,"STATUS_DIRECTORY_NOT_EMPTY",0xC0000101L}, {"{Corrupt File}" "The file or directory %hs is corrupt and unreadable." "Please run the Chkdsk utility." ,"STATUS_FILE_CORRUPT_ERROR",0xC0000102L}, {"A requested opened file is not a directory." ,"STATUS_NOT_A_DIRECTORY",0xC0000103L}, {"The logon session is not in a state that is consistent with the requested operation." ,"STATUS_BAD_LOGON_SESSION_STATE",0xC0000104L}, {"An internal LSA error has occurred. An authentication package has requested the creation of a Logon Session but the ID of an already existing Logon Session has been specified." ,"STATUS_LOGON_SESSION_COLLISION",0xC0000105L}, {"A specified name string is too long for its intended use." ,"STATUS_NAME_TOO_LONG",0xC0000106L}, {"The user attempted to force close the files on a redirected drive, but there were opened files on the drive, and the user did not specify a sufficient level of force." ,"STATUS_FILES_OPEN",0xC0000107L}, {"The user attempted to force close the files on a redirected drive, but there were opened directories on the drive, and the user did not specify a sufficient level of force." ,"STATUS_CONNECTION_IN_USE",0xC0000108L}, {"RtlFindMessage could not locate the requested message ID in the message table resource." ,"STATUS_MESSAGE_NOT_FOUND",0xC0000109L}, {"An attempt was made to duplicate an object handle into or out of an exiting process." ,"STATUS_PROCESS_IS_TERMINATING",0xC000010AL}, {"Indicates an invalid value has been provided for the LogonType requested." ,"STATUS_INVALID_LOGON_TYPE",0xC000010BL}, {"Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system." "This causes the protection attempt to fail, which may cause a file creation attempt to fail." ,"STATUS_NO_GUID_TRANSLATION",0xC000010CL}, {"Indicates that an attempt has been made to impersonate via a named pipe that has not yet been read from." ,"STATUS_CANNOT_IMPERSONATE",0xC000010DL}, {"Indicates that the specified image is already loaded." ,"STATUS_IMAGE_ALREADY_LOADED",0xC000010EL}, {"STATUS_ABIOS_NOT_PRESENT" ,"STATUS_ABIOS_NOT_PRESENT",0xC000010FL}, {"STATUS_ABIOS_LID_NOT_EXIST" ,"STATUS_ABIOS_LID_NOT_EXIST",0xC0000110L}, {"STATUS_ABIOS_LID_ALREADY_OWNED" ,"STATUS_ABIOS_LID_ALREADY_OWNED",0xC0000111L}, {"STATUS_ABIOS_NOT_LID_OWNER" ,"STATUS_ABIOS_NOT_LID_OWNER",0xC0000112L}, {"STATUS_ABIOS_INVALID_COMMAND" ,"STATUS_ABIOS_INVALID_COMMAND",0xC0000113L}, {"STATUS_ABIOS_INVALID_LID" ,"STATUS_ABIOS_INVALID_LID",0xC0000114L}, {"STATUS_ABIOS_SELECTOR_NOT_AVAILABLE" ,"STATUS_ABIOS_SELECTOR_NOT_AVAILABLE",0xC0000115L}, {"STATUS_ABIOS_INVALID_SELECTOR" ,"STATUS_ABIOS_INVALID_SELECTOR",0xC0000116L}, {"Indicates that an attempt was made to change the size of the LDT for a process that has no LDT." ,"STATUS_NO_LDT",0xC0000117L}, {"Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors." ,"STATUS_INVALID_LDT_SIZE",0xC0000118L}, {"Indicates that the starting value for the LDT information was not an integral multiple of the selector size." ,"STATUS_INVALID_LDT_OFFSET",0xC0000119L}, {"Indicates that the user supplied an invalid descriptor when trying to set up Ldt descriptors." ,"STATUS_INVALID_LDT_DESCRIPTOR",0xC000011AL}, {"The specified image file did not have the correct format. It appears to be NE format." ,"STATUS_INVALID_IMAGE_NE_FORMAT",0xC000011BL}, {"Indicates that the transaction state of a registry sub-tree is incompatible with the requested operation." "For example, a request has been made to start a new transaction with one already in progress," "or a request has been made to apply a transaction when one is not currently in progress." ,"STATUS_RXACT_INVALID_STATE",0xC000011CL}, {"Indicates an error has occurred during a registry transaction commit." "The database has been left in an unknown, but probably inconsistent, state." "The state of the registry transaction is left as COMMITTING." ,"STATUS_RXACT_COMMIT_FAILURE",0xC000011DL}, {"An attempt was made to map a file of size zero with the maximum size specified as zero." ,"STATUS_MAPPED_FILE_SIZE_ZERO",0xC000011EL}, {"Too many files are opened on a remote server." "This error should only be returned by the Windows redirector on a remote drive." ,"STATUS_TOO_MANY_OPENED_FILES",0xC000011FL}, {"The I/O request was canceled." ,"STATUS_CANCELLED",0xC0000120L}, {"An attempt has been made to remove a file or directory that cannot be deleted." ,"STATUS_CANNOT_DELETE",0xC0000121L}, {"Indicates a name specified as a remote computer name is syntactically invalid." ,"STATUS_INVALID_COMPUTER_NAME",0xC0000122L}, {"An I/O request other than close was performed on a file after it has been deleted," "which can only happen to a request which did not complete before the last handle was closed via NtClose." ,"STATUS_FILE_DELETED",0xC0000123L}, {"Indicates an operation has been attempted on a built-in (speciaL}," "For example, built-in accounts cannot be deleted." ,"STATUS_SPECIAL_ACCOUNT",0xC0000124L}, {"The operation requested may not be performed on the specified group because it is a built-in special group." ,"STATUS_SPECIAL_GROUP",0xC0000125L}, {"The operation requested may not be performed on the specified user because it is a built-in special user." ,"STATUS_SPECIAL_USER",0xC0000126L}, {"Indicates a member cannot be removed from a group because the group is currently the member's primary group." ,"STATUS_MEMBERS_PRIMARY_GROUP",0xC0000127L}, {"An I/O request other than close and several other special case operations was attempted using a file object that had already been closed." ,"STATUS_FILE_CLOSED",0xC0000128L}, {"Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token may only be performed when a process has zero or one threads." ,"STATUS_TOO_MANY_THREADS",0xC0000129L}, {"An attempt was made to operate on a thread within a specific process, but the thread specified is not in the process specified." ,"STATUS_THREAD_NOT_IN_PROCESS",0xC000012AL}, {"An attempt was made to establish a token for use as a primary token but the token is already in use. A token can only be the primary token of one process at a time." ,"STATUS_TOKEN_ALREADY_IN_USE",0xC000012BL}, {"Page file quota was exceeded." ,"STATUS_PAGEFILE_QUOTA_EXCEEDED",0xC000012CL}, {"{Out of Virtual Memory}" "Your system is low on virtual memory. To ensure that Windows runs properly, increase the size of your virtual memory paging file. For more information, see Help." ,"STATUS_COMMITMENT_LIMIT",0xC000012DL}, {"The specified image file did not have the correct format, it appears to be LE format." ,"STATUS_INVALID_IMAGE_LE_FORMAT",0xC000012EL}, {"The specified image file did not have the correct format, it did not have an initial MZ." ,"STATUS_INVALID_IMAGE_NOT_MZ",0xC000012FL}, {"The specified image file did not have the correct format, it did not have a proper e_lfarlc in the MZ header." ,"STATUS_INVALID_IMAGE_PROTECT",0xC0000130L}, {"The specified image file did not have the correct format, it appears to be a 16-bit Windows image." ,"STATUS_INVALID_IMAGE_WIN_16",0xC0000131L}, {"The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role." ,"STATUS_LOGON_SERVER_CONFLICT",0xC0000132L}, {"The time at the Primary Domain Controller is different than the time at the Backup Domain Controller or member server by too large an amount." ,"STATUS_TIME_DIFFERENCE_AT_DC",0xC0000133L}, {"The SAM database on a Windows Server is significantly out of synchronization with the copy on the Domain Controller. A complete synchronization is required." ,"STATUS_SYNCHRONIZATION_REQUIRED",0xC0000134L}, {"{Unable To Locate Component}" "This application has failed to start because %hs was not found. Re-installing the application may fix this problem." ,"STATUS_DLL_NOT_FOUND",0xC0000135L}, {"The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines." ,"STATUS_OPEN_FAILED",0xC0000136L}, {"{Privilege Failed}" "The I/O permissions for the process could not be changed." ,"STATUS_IO_PRIVILEGE_FAILED",0xC0000137L}, {"{Ordinal Not Found}" "The ordinal %ld could not be located in the dynamic link library %hs." ,"STATUS_ORDINAL_NOT_FOUND",0xC0000138L}, {"{Entry Point Not Found}" "The procedure entry point %hs could not be located in the dynamic link library %hs." ,"STATUS_ENTRYPOINT_NOT_FOUND",0xC0000139L}, {"{Application Exit by CTRL+C}" "The application terminated as a result of a CTRL+C." ,"STATUS_CONTROL_C_EXIT",0xC000013AL}, {"{Virtual Circuit Closed}" "The network transport on your computer has closed a network connection. There may or may not be I/O requests outstanding." ,"STATUS_LOCAL_DISCONNECT",0xC000013BL}, {"{Virtual Circuit Closed}" "The network transport on a remote computer has closed a network connection. There may or may not be I/O requests outstanding." ,"STATUS_REMOTE_DISCONNECT",0xC000013CL}, {"{Insufficient Resources on Remote Computer}" "The remote computer has insufficient resources to complete the network request. For instance, there may not be enough memory available on the remote computer to carry out the request at this time." ,"STATUS_REMOTE_RESOURCES",0xC000013DL}, {"{Virtual Circuit Closed}" "An existing connection (virtual circuit) has been broken at the remote computer. There is probably something wrong with the network software protocol or the network hardware on the remote computer." ,"STATUS_LINK_FAILED",0xC000013EL}, {"{Virtual Circuit Closed}" "The network transport on your computer has closed a network connection because it had to wait too long for a response from the remote computer." ,"STATUS_LINK_TIMEOUT",0xC000013FL}, {"The connection handle given to the transport was invalid." ,"STATUS_INVALID_CONNECTION",0xC0000140L}, {"The address handle given to the transport was invalid." ,"STATUS_INVALID_ADDRESS",0xC0000141L}, {"{DLL Initialization Failed}" "Initialization of the dynamic link library %hs failed. The process is terminating abnormally." ,"STATUS_DLL_INIT_FAILED",0xC0000142L}, {"{Missing System File}" "The required system file %hs is bad or missing." ,"STATUS_MISSING_SYSTEMFILE",0xC0000143L}, {"{Application Error}" "The exception %s (0x%08lx) occurred in the application at location 0x%08lx." ,"STATUS_UNHANDLED_EXCEPTION",0xC0000144L}, {"{Application Error}" "The application failed to initialize properly (0x%lx). Click on OK to terminate the application." ,"STATUS_APP_INIT_FAILURE",0xC0000145L}, {"{Unable to Create Paging File}" "The creation of the paging file %hs failed (%lx). The requested size was %ld." ,"STATUS_PAGEFILE_CREATE_FAILED",0xC0000146L}, {"{No Paging File Specified}" "No paging file was specified in the system configuration." ,"STATUS_NO_PAGEFILE",0xC0000147L}, {"{Incorrect System Call Level}" "An invalid level was passed into the specified system call." ,"STATUS_INVALID_LEVEL",0xC0000148L}, {"{Incorrect Password to LAN Manager Server}" "You specified an incorrect password to a LAN Manager 2.x or MS-NET server." ,"STATUS_WRONG_PASSWORD_CORE",0xC0000149L}, {"{EXCEPTION}" "A real-mode application issued a floating-point instruction and floating-point hardware is not present." ,"STATUS_ILLEGAL_FLOAT_CONTEXT",0xC000014AL}, {"The pipe operation has failed because the other end of the pipe has been closed." ,"STATUS_PIPE_BROKEN",0xC000014BL}, {"{The Registry Is Corrupt}" "The structure of one of the files that contains Registry data is corrupt, or the image of the file in memory is corrupt, or the file could not be recovered because the alternate copy or log was absent or corrupt." ,"STATUS_REGISTRY_CORRUPT",0xC000014CL}, {"An I/O operation initiated by the Registry failed unrecoverably." "The Registry could not read in, or write out, or flush, one of the files that contain the system's image of the Registry." ,"STATUS_REGISTRY_IO_FAILED",0xC000014DL}, {"An event pair synchronization operation was performed using the thread specific client/server event pair object, but no event pair object was associated with the thread." ,"STATUS_NO_EVENT_PAIR",0xC000014EL}, {"The volume does not contain a recognized file system." "Please make sure that all required file system drivers are loaded and that the volume is not corrupt." ,"STATUS_UNRECOGNIZED_VOLUME",0xC000014FL}, {"No serial device was successfully initialized. The serial driver will unload." ,"STATUS_SERIAL_NO_DEVICE_INITED",0xC0000150L}, {"The specified local group does not exist." ,"STATUS_NO_SUCH_ALIAS",0xC0000151L}, {"The specified account name is not a member of the local group." ,"STATUS_MEMBER_NOT_IN_ALIAS",0xC0000152L}, {"The specified account name is already a member of the local group." ,"STATUS_MEMBER_IN_ALIAS",0xC0000153L}, {"The specified local group already exists." ,"STATUS_ALIAS_EXISTS",0xC0000154L}, {"A requested type of logon (e.g., Interactive, Network, Service) is not granted by the target system's local security policy." "Please ask the system administrator to grant the necessary form of logon." ,"STATUS_LOGON_NOT_GRANTED",0xC0000155L}, {"The maximum number of secrets that may be stored in a single system has been exceeded. The length and number of secrets is limited to satisfy United States State Department export restrictions." ,"STATUS_TOO_MANY_SECRETS",0xC0000156L}, {"The length of a secret exceeds the maximum length allowed. The length and number of secrets is limited to satisfy United States State Department export restrictions." ,"STATUS_SECRET_TOO_LONG",0xC0000157L}, {"The Local Security Authority (LSA) database contains an internal inconsistency." ,"STATUS_INTERNAL_DB_ERROR",0xC0000158L}, {"The requested operation cannot be performed in fullscreen mode." ,"STATUS_FULLSCREEN_MODE",0xC0000159L}, {"During a logon attempt, the user's security context accumulated too many security IDs. This is a very unusual situation." "Remove the user from some global or local groups to reduce the number of security ids to incorporate into the security context." ,"STATUS_TOO_MANY_CONTEXT_IDS",0xC000015AL}, {"A user has requested a type of logon (e.g., interactive or network) that has not been granted. An administrator has control over who may logon interactively and through the network." ,"STATUS_LOGON_TYPE_NOT_GRANTED",0xC000015BL}, {"The system has attempted to load or restore a file into the registry, and the specified file is not in the format of a registry file." ,"STATUS_NOT_REGISTRY_FILE",0xC000015CL}, {"An attempt was made to change a user password in the security account manager without providing the necessary Windows cross-encrypted password." ,"STATUS_NT_CROSS_ENCRYPTION_REQUIRED",0xC000015DL}, {"A Windows Server has an incorrect configuration." ,"STATUS_DOMAIN_CTRLR_CONFIG_ERROR",0xC000015EL}, {"An attempt was made to explicitly access the secondary copy of information via a device control to the Fault Tolerance driver and the secondary copy is not present in the system." ,"STATUS_FT_MISSING_MEMBER",0xC000015FL}, {"A configuration registry node representing a driver service entry was ill-formed and did not contain required value entries." ,"STATUS_ILL_FORMED_SERVICE_ENTRY",0xC0000160L}, {"An illegal character was encountered. For a multi-byte character set this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE." ,"STATUS_ILLEGAL_CHARACTER",0xC0000161L}, {"No mapping for the Unicode character exists in the target multi-byte code page." ,"STATUS_UNMAPPABLE_CHARACTER",0xC0000162L}, {"The Unicode character is not defined in the Unicode character set installed on the system." ,"STATUS_UNDEFINED_CHARACTER",0xC0000163L}, {"The paging file cannot be created on a floppy diskette." ,"STATUS_FLOPPY_VOLUME",0xC0000164L}, {"{Floppy Disk Error}" "While accessing a floppy disk, an ID address mark was not found." ,"STATUS_FLOPPY_ID_MARK_NOT_FOUND",0xC0000165L}, {"{Floppy Disk Error}" "While accessing a floppy disk, the track address from the sector ID field was found to be different than the track address maintained by the controller." ,"STATUS_FLOPPY_WRONG_CYLINDER",0xC0000166L}, {"{Floppy Disk Error}" "The floppy disk controller reported an error that is not recognized by the floppy disk driver." ,"STATUS_FLOPPY_UNKNOWN_ERROR",0xC0000167L}, {"{Floppy Disk Error}" "While accessing a floppy-disk, the controller returned inconsistent results via its registers." ,"STATUS_FLOPPY_BAD_REGISTERS",0xC0000168L}, {"{Hard Disk Error}" "While accessing the hard disk, a recalibrate operation failed, even after retries." ,"STATUS_DISK_RECALIBRATE_FAILED",0xC0000169L}, {"{Hard Disk Error}" "While accessing the hard disk, a disk operation failed even after retries." ,"STATUS_DISK_OPERATION_FAILED",0xC000016AL}, {"{Hard Disk Error}" "While accessing the hard disk, a disk controller reset was needed, but even that failed." ,"STATUS_DISK_RESET_FAILED",0xC000016BL}, {"An attempt was made to open a device that was sharing an IRQ with other devices." "At least one other device that uses that IRQ was already opened." "Two concurrent opens of devices that share an IRQ and only work via interrupts is not supported for the particular bus type that the devices use." ,"STATUS_SHARED_IRQ_BUSY",0xC000016CL}, {"{FT Orphaning}" "A disk that is part of a fault-tolerant volume can no longer be accessed." ,"STATUS_FT_ORPHANING",0xC000016DL}, {"The system bios failed to connect a system interrupt to the device or bus for" "which the device is connected." ,"STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT",0xC000016EL}, {"Tape could not be partitioned." ,"STATUS_PARTITION_FAILURE",0xC0000172L}, {"When accessing a new tape of a multivolume partition, the current blocksize is incorrect." ,"STATUS_INVALID_BLOCK_LENGTH",0xC0000173L}, {"Tape partition information could not be found when loading a tape." ,"STATUS_DEVICE_NOT_PARTITIONED",0xC0000174L}, {"Attempt to lock the eject media mechanism fails." ,"STATUS_UNABLE_TO_LOCK_MEDIA",0xC0000175L}, {"Unload media fails." ,"STATUS_UNABLE_TO_UNLOAD_MEDIA",0xC0000176L}, {"Physical end of tape was detected." ,"STATUS_EOM_OVERFLOW",0xC0000177L}, {"{No Media}" "There is no media in the drive." "Please insert media into drive %hs." ,"STATUS_NO_MEDIA",0xC0000178L}, {"A member could not be added to or removed from the local group because the member does not exist." ,"STATUS_NO_SUCH_MEMBER",0xC000017AL}, {"A new member could not be added to a local group because the member has the wrong account type." ,"STATUS_INVALID_MEMBER",0xC000017BL}, {"Illegal operation attempted on a registry key which has been marked for deletion." ,"STATUS_KEY_DELETED",0xC000017CL}, {"System could not allocate required space in a registry log." ,"STATUS_NO_LOG_SPACE",0xC000017DL}, {"Too many Sids have been specified." ,"STATUS_TOO_MANY_SIDS",0xC000017EL}, {"An attempt was made to change a user password in the security account manager without providing the necessary LM cross-encrypted password." ,"STATUS_LM_CROSS_ENCRYPTION_REQUIRED",0xC000017FL}, {"An attempt was made to create a symbolic link in a registry key that already has subkeys or values." ,"STATUS_KEY_HAS_CHILDREN",0xC0000180L}, {"An attempt was made to create a Stable subkey under a Volatile parent key." ,"STATUS_CHILD_MUST_BE_VOLATILE",0xC0000181L}, {"The I/O device is configured incorrectly or the configuration parameters to the driver are incorrect." ,"STATUS_DEVICE_CONFIGURATION_ERROR",0xC0000182L}, {"An error was detected between two drivers or within an I/O driver." ,"STATUS_DRIVER_INTERNAL_ERROR",0xC0000183L}, {"The device is not in a valid state to perform this request." ,"STATUS_INVALID_DEVICE_STATE",0xC0000184L}, {"The I/O device reported an I/O error." ,"STATUS_IO_DEVICE_ERROR",0xC0000185L}, {"A protocol error was detected between the driver and the device." ,"STATUS_DEVICE_PROTOCOL_ERROR",0xC0000186L}, {"This operation is only allowed for the Primary Domain Controller of the domain." ,"STATUS_BACKUP_CONTROLLER",0xC0000187L}, {"Log file space is insufficient to support this operation." ,"STATUS_LOG_FILE_FULL",0xC0000188L}, {"A write operation was attempted to a volume after it was dismounted." ,"STATUS_TOO_LATE",0xC0000189L}, {"The workstation does not have a trust secret for the primary domain in the local LSA database." ,"STATUS_NO_TRUST_LSA_SECRET",0xC000018AL}, {"The SAM database on the Windows Server does not have a computer account for this workstation trust relationship." ,"STATUS_NO_TRUST_SAM_ACCOUNT",0xC000018BL}, {"The logon request failed because the trust relationship between the primary domain and the trusted domain failed." ,"STATUS_TRUSTED_DOMAIN_FAILURE",0xC000018CL}, {"The logon request failed because the trust relationship between this workstation and the primary domain failed." ,"STATUS_TRUSTED_RELATIONSHIP_FAILURE",0xC000018DL}, {"The Eventlog log file is corrupt." ,"STATUS_EVENTLOG_FILE_CORRUPT",0xC000018EL}, {"No Eventlog log file could be opened. The Eventlog service did not start." ,"STATUS_EVENTLOG_CANT_START",0xC000018FL}, {"The network logon failed. This may be because the validation authority can't be reached." ,"STATUS_TRUST_FAILURE",0xC0000190L}, {"An attempt was made to acquire a mutant such that its maximum count would have been exceeded." ,"STATUS_MUTANT_LIMIT_EXCEEDED",0xC0000191L}, {"An attempt was made to logon, but the netlogon service was not started." ,"STATUS_NETLOGON_NOT_STARTED",0xC0000192L}, {"The user's account has expired." ,"STATUS_ACCOUNT_EXPIRED",0xC0000193L}, {"{EXCEPTION}" "Possible deadlock condition." ,"STATUS_POSSIBLE_DEADLOCK",0xC0000194L}, {"Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again." ,"STATUS_NETWORK_CREDENTIAL_CONFLICT",0xC0000195L}, {"An attempt was made to establish a session to a network server, but there are already too many sessions established to that server." ,"STATUS_REMOTE_SESSION_LIMIT",0xC0000196L}, {"The log file has changed between reads." ,"STATUS_EVENTLOG_FILE_CHANGED",0xC0000197L}, {"The account used is an Interdomain Trust account. Use your global user account or local user account to access this server." ,"STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT",0xC0000198L}, {"The account used is a Computer Account. Use your global user account or local user account to access this server." ,"STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT",0xC0000199L}, {"The account used is an Server Trust account. Use your global user account or local user account to access this server." ,"STATUS_NOLOGON_SERVER_TRUST_ACCOUNT",0xC000019AL}, {"The name or SID of the domain specified is inconsistent with the trust information for that domain." ,"STATUS_DOMAIN_TRUST_INCONSISTENT",0xC000019BL}, {"A volume has been accessed for which a file system driver is required that has not yet been loaded." ,"STATUS_FS_DRIVER_REQUIRED",0xC000019CL}, {"There is no user session key for the specified logon session." ,"STATUS_NO_USER_SESSION_KEY",0xC0000202L}, {"The remote user session has been deleted." ,"STATUS_USER_SESSION_DELETED",0xC0000203L}, {"Indicates the specified resource language ID cannot be found in the" "image file." ,"STATUS_RESOURCE_LANG_NOT_FOUND",0xC0000204L}, {"Insufficient server resources exist to complete the request." ,"STATUS_INSUFF_SERVER_RESOURCES",0xC0000205L}, {"The size of the buffer is invalid for the specified operation." ,"STATUS_INVALID_BUFFER_SIZE",0xC0000206L}, {"The transport rejected the network address specified as invalid." ,"STATUS_INVALID_ADDRESS_COMPONENT",0xC0000207L}, {"The transport rejected the network address specified due to an invalid use of a wildcard." ,"STATUS_INVALID_ADDRESS_WILDCARD",0xC0000208L}, {"The transport address could not be opened because all the available addresses are in use." ,"STATUS_TOO_MANY_ADDRESSES",0xC0000209L}, {"The transport address could not be opened because it already exists." ,"STATUS_ADDRESS_ALREADY_EXISTS",0xC000020AL}, {"The transport address is now closed." ,"STATUS_ADDRESS_CLOSED",0xC000020BL}, {"The transport connection is now disconnected." ,"STATUS_CONNECTION_DISCONNECTED",0xC000020CL}, {"The transport connection has been reset." ,"STATUS_CONNECTION_RESET",0xC000020DL}, {"The transport cannot dynamically acquire any more nodes." ,"STATUS_TOO_MANY_NODES",0xC000020EL}, {"The transport aborted a pending transaction." ,"STATUS_TRANSACTION_ABORTED",0xC000020FL}, {"The transport timed out a request waiting for a response." ,"STATUS_TRANSACTION_TIMED_OUT",0xC0000210L}, {"The transport did not receive a release for a pending response." ,"STATUS_TRANSACTION_NO_RELEASE",0xC0000211L}, {"The transport did not find a transaction matching the specific" "token." ,"STATUS_TRANSACTION_NO_MATCH",0xC0000212L}, {"The transport had previously responded to a transaction request." ,"STATUS_TRANSACTION_RESPONDED",0xC0000213L}, {"The transport does not recognized the transaction request identifier specified." ,"STATUS_TRANSACTION_INVALID_ID",0xC0000214L}, {"The transport does not recognize the transaction request type specified." ,"STATUS_TRANSACTION_INVALID_TYPE",0xC0000215L}, {"The transport can only process the specified request on the server side of a session." ,"STATUS_NOT_SERVER_SESSION",0xC0000216L}, {"The transport can only process the specified request on the client side of a session." ,"STATUS_NOT_CLIENT_SESSION",0xC0000217L}, {"{Registry File Failure}" "The registry cannot load the hive (file):" "%hs" "or its log or alternate." "It is corrupt, absent, or not writable." ,"STATUS_CANNOT_LOAD_REGISTRY_FILE",0xC0000218L}, {"{Unexpected Failure in DebugActiveProcess}" "An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process, or Cancel to ignore the error." ,"STATUS_DEBUG_ATTACH_FAILED",0xC0000219L}, {"{Fatal System Error}" "The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x)." "The system has been shut down." ,"STATUS_SYSTEM_PROCESS_TERMINATED",0xC000021AL}, {"{Data Not Accepted}" "The TDI client could not handle the data received during an indication." ,"STATUS_DATA_NOT_ACCEPTED",0xC000021BL}, {"{Unable to Retrieve Browser Server List}" "The list of servers for this workgroup is not currently available." ,"STATUS_NO_BROWSER_SERVERS_FOUND",0xC000021CL}, {"NTVDM encountered a hard error." ,"STATUS_VDM_HARD_ERROR",0xC000021DL}, {"{Cancel Timeout}" "The driver %hs failed to complete a cancelled I/O request in the allotted time." ,"STATUS_DRIVER_CANCEL_TIMEOUT",0xC000021EL}, {"{Reply Message Mismatch}" "An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message." ,"STATUS_REPLY_MESSAGE_MISMATCH",0xC000021FL}, {"{Mapped View Alignment Incorrect}" "An attempt was made to map a view of a file, but either the specified base address or the offset into the file were not aligned on the proper allocation granularity." ,"STATUS_MAPPED_ALIGNMENT",0xC0000220L}, {"{Bad Image Checksum}" "The image %hs is possibly corrupt. The header checksum does not match the computed checksum." ,"STATUS_IMAGE_CHECKSUM_MISMATCH",0xC0000221L}, {"{Delayed Write Failed}" "Windows was unable to save all the data for the file %hs. The data has been lost." "This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere." ,"STATUS_LOST_WRITEBEHIND_DATA",0xC0000222L}, {"The parameter(s) passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window." ,"STATUS_CLIENT_SERVER_PARAMETERS_INVALID",0xC0000223L}, {"The user's password must be changed before logging on the first time." ,"STATUS_PASSWORD_MUST_CHANGE",0xC0000224L}, {"The object was not found." ,"STATUS_NOT_FOUND",0xC0000225L}, {"The stream is not a tiny stream." ,"STATUS_NOT_TINY_STREAM",0xC0000226L}, {"A transaction recover failed." ,"STATUS_RECOVERY_FAILURE",0xC0000227L}, {"The request must be handled by the stack overflow code." ,"STATUS_STACK_OVERFLOW_READ",0xC0000228L}, {"A consistency check failed." ,"STATUS_FAIL_CHECK",0xC0000229L}, {"The attempt to insert the ID in the index failed because the ID is already in the index." ,"STATUS_DUPLICATE_OBJECTID",0xC000022AL}, {"The attempt to set the object's ID failed because the object already has an ID." ,"STATUS_OBJECTID_EXISTS",0xC000022BL}, {"Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing onode is moved or the extent stream is converted to a large stream." ,"STATUS_CONVERT_TO_LARGE",0xC000022CL}, {"The request needs to be retried." ,"STATUS_RETRY",0xC000022DL}, {"The attempt to find the object found an object matching by ID on the volume but it is out of the scope of the handle used for the operation." ,"STATUS_FOUND_OUT_OF_SCOPE",0xC000022EL}, {"The bucket array must be grown. Retry transaction after doing so." ,"STATUS_ALLOCATE_BUCKET",0xC000022FL}, {"The property set specified does not exist on the object." ,"STATUS_PROPSET_NOT_FOUND",0xC0000230L}, {"The user/kernel marshalling buffer has overflowed." ,"STATUS_MARSHALL_OVERFLOW",0xC0000231L}, {"The supplied variant structure contains invalid data." ,"STATUS_INVALID_VARIANT",0xC0000232L}, {"Could not find a domain controller for this domain." ,"STATUS_DOMAIN_CONTROLLER_NOT_FOUND",0xC0000233L}, {"The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested." ,"STATUS_ACCOUNT_LOCKED_OUT",0xC0000234L}, {"NtClose was called on a handle that was protected from close via NtSetInformationObject." ,"STATUS_HANDLE_NOT_CLOSABLE",0xC0000235L}, {"The transport connection attempt was refused by the remote system." ,"STATUS_CONNECTION_REFUSED",0xC0000236L}, {"The transport connection was gracefully closed." ,"STATUS_GRACEFUL_DISCONNECT",0xC0000237L}, {"The transport endpoint already has an address associated with it." ,"STATUS_ADDRESS_ALREADY_ASSOCIATED",0xC0000238L}, {"An address has not yet been associated with the transport endpoint." ,"STATUS_ADDRESS_NOT_ASSOCIATED",0xC0000239L}, {"An operation was attempted on a nonexistent transport connection." ,"STATUS_CONNECTION_INVALID",0xC000023AL}, {"An invalid operation was attempted on an active transport connection." ,"STATUS_CONNECTION_ACTIVE",0xC000023BL}, {"The remote network is not reachable by the transport." ,"STATUS_NETWORK_UNREACHABLE",0xC000023CL}, {"The remote system is not reachable by the transport." ,"STATUS_HOST_UNREACHABLE",0xC000023DL}, {"The remote system does not support the transport protocol." ,"STATUS_PROTOCOL_UNREACHABLE",0xC000023EL}, {"No service is operating at the destination port of the transport on the remote system." ,"STATUS_PORT_UNREACHABLE",0xC000023FL}, {"The request was aborted." ,"STATUS_REQUEST_ABORTED",0xC0000240L}, {"The transport connection was aborted by the local system." ,"STATUS_CONNECTION_ABORTED",0xC0000241L}, {"The specified buffer contains ill-formed data." ,"STATUS_BAD_COMPRESSION_BUFFER",0xC0000242L}, {"The requested operation cannot be performed on a file with a user mapped section open." ,"STATUS_USER_MAPPED_FILE",0xC0000243L}, {"{Audit Failed}" "An attempt to generate a security audit failed." ,"STATUS_AUDIT_FAILED",0xC0000244L}, {"The timer resolution was not previously set by the current process." ,"STATUS_TIMER_RESOLUTION_NOT_SET",0xC0000245L}, {"A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached." ,"STATUS_CONNECTION_COUNT_LIMIT",0xC0000246L}, {"Attempting to login during an unauthorized time of day for this account." ,"STATUS_LOGIN_TIME_RESTRICTION",0xC0000247L}, {"The account is not authorized to login from this station." ,"STATUS_LOGIN_WKSTA_RESTRICTION",0xC0000248L}, {"{UP/MP Image Mismatch}" "The image %hs has been modified for use on a uniprocessor system, but you are running it on a multiprocessor machine." "Please reinstall the image file." ,"STATUS_IMAGE_MP_UP_MISMATCH",0xC0000249L}, {"There is insufficient account information to log you on." ,"STATUS_INSUFFICIENT_LOGON_INFO",0xC0000250L}, {"{Invalid DLL Entrypoint}" "The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state." "The entrypoint should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly." ,"STATUS_BAD_DLL_ENTRYPOINT",0xC0000251L}, {"{Invalid Service Callback Entrypoint}" "The %hs service is not written correctly. The stack pointer has been left in an inconsistent state." "The callback entrypoint should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process may operate incorrectly." ,"STATUS_BAD_SERVICE_ENTRYPOINT",0xC0000252L}, {"The server received the messages but did not send a reply." ,"STATUS_LPC_REPLY_LOST",0xC0000253L}, {"There is an IP address conflict with another system on the network" ,"STATUS_IP_ADDRESS_CONFLICT1",0xC0000254L}, {"There is an IP address conflict with another system on the network" ,"STATUS_IP_ADDRESS_CONFLICT2",0xC0000255L}, {"{Low On Registry Space}" "The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored." ,"STATUS_REGISTRY_QUOTA_LIMIT",0xC0000256L}, {"The contacted server does not support the indicated part of the DFS namespace." ,"STATUS_PATH_NOT_COVERED",0xC0000257L}, {"A callback return system service cannot be executed when no callback is active." ,"STATUS_NO_CALLBACK_ACTIVE",0xC0000258L}, {"The service being accessed is licensed for a particular number of connections." "No more connections can be made to the service at this time because there are already as many connections as the service can accept." ,"STATUS_LICENSE_QUOTA_EXCEEDED",0xC0000259L}, {"The password provided is too short to meet the policy of your user account." "Please choose a longer password." ,"STATUS_PWD_TOO_SHORT",0xC000025AL}, {"The policy of your user account does not allow you to change passwords too frequently." "This is done to prevent users from changing back to a familiar, but potentially discovered, password." "If you feel your password has been compromised then please contact your administrator immediately to have a new one assigned." ,"STATUS_PWD_TOO_RECENT",0xC000025BL}, {"You have attempted to change your password to one that you have used in the past." "The policy of your user account does not allow this. Please select a password that you have not previously used." ,"STATUS_PWD_HISTORY_CONFLICT",0xC000025CL}, {"You have attempted to load a legacy device driver while its device instance had been disabled." ,"STATUS_PLUGPLAY_NO_DEVICE",0xC000025EL}, {"The specified compression format is unsupported." ,"STATUS_UNSUPPORTED_COMPRESSION",0xC000025FL}, {"The specified hardware profile configuration is invalid." ,"STATUS_INVALID_HW_PROFILE",0xC0000260L}, {"The specified Plug and Play registry device path is invalid." ,"STATUS_INVALID_PLUGPLAY_DEVICE_PATH",0xC0000261L}, {"{Driver Entry Point Not Found}" "The %hs device driver could not locate the ordinal %ld in driver %hs." ,"STATUS_DRIVER_ORDINAL_NOT_FOUND",0xC0000262L}, {"{Driver Entry Point Not Found}" "The %hs device driver could not locate the entry point %hs in driver %hs." ,"STATUS_DRIVER_ENTRYPOINT_NOT_FOUND",0xC0000263L}, {"{Application Error}" "The application attempted to release a resource it did not own. Click on OK to terminate the application." ,"STATUS_RESOURCE_NOT_OWNED",0xC0000264L}, {"An attempt was made to create more links on a file than the file system supports." ,"STATUS_TOO_MANY_LINKS",0xC0000265L}, {"The specified quota list is internally inconsistent with its descriptor." ,"STATUS_QUOTA_LIST_INCONSISTENT",0xC0000266L}, {"The specified file has been relocated to offline storage." ,"STATUS_FILE_IS_OFFLINE",0xC0000267L}, {"{Windows Evaluation Notification}" "The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, please upgrade this installation using a licensed distribution of this product." ,"STATUS_EVALUATION_EXPIRATION",0xC0000268L}, {"{Illegal System DLL Relocation}" "The system DLL %hs was relocated in memory. The application will not run properly." "The relocation occurred because the DLL %hs occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL." ,"STATUS_ILLEGAL_DLL_RELOCATION",0xC0000269L}, {"{License Violation}" "The system has detected tampering with your registered product type. This is a violation of your software license. Tampering with product type is not permitted." ,"STATUS_LICENSE_VIOLATION",0xC000026AL}, {"{DLL Initialization Failed}" "The application failed to initialize because the window station is shutting down." ,"STATUS_DLL_INIT_FAILED_LOGOFF",0xC000026BL}, {"{Unable to Load Device Driver}" "%hs device driver could not be loaded." "Error Status was 0x%x" ,"STATUS_DRIVER_UNABLE_TO_LOAD",0xC000026CL}, {"DFS is unavailable on the contacted server." ,"STATUS_DFS_UNAVAILABLE",0xC000026DL}, {"An operation was attempted to a volume after it was dismounted." ,"STATUS_VOLUME_DISMOUNTED",0xC000026EL}, {"An internal error occurred in the Win32 x86 emulation subsystem." ,"STATUS_WX86_INTERNAL_ERROR",0xC000026FL}, {"Win32 x86 emulation subsystem Floating-point stack check." ,"STATUS_WX86_FLOAT_STACK_CHECK",0xC0000270L}, {"The validation process needs to continue on to the next step." ,"STATUS_VALIDATE_CONTINUE",0xC0000271L}, {"There was no match for the specified key in the index." ,"STATUS_NO_MATCH",0xC0000272L}, {"There are no more matches for the current index enumeration." ,"STATUS_NO_MORE_MATCHES",0xC0000273L}, {"The NTFS file or directory is not a reparse point." ,"STATUS_NOT_A_REPARSE_POINT",0xC0000275L}, {"The Windows I/O reparse tag passed for the NTFS reparse point is invalid." ,"STATUS_IO_REPARSE_TAG_INVALID",0xC0000276L}, {"The Windows I/O reparse tag does not match the one present in the NTFS reparse point." ,"STATUS_IO_REPARSE_TAG_MISMATCH",0xC0000277L}, {"The user data passed for the NTFS reparse point is invalid." ,"STATUS_IO_REPARSE_DATA_INVALID",0xC0000278L}, {"The layered file system driver for this IO tag did not handle it when needed." ,"STATUS_IO_REPARSE_TAG_NOT_HANDLED",0xC0000279L}, {"The NTFS symbolic link could not be resolved even though the initial file name is valid." ,"STATUS_REPARSE_POINT_NOT_RESOLVED",0xC0000280L}, {"The NTFS directory is a reparse point." ,"STATUS_DIRECTORY_IS_A_REPARSE_POINT",0xC0000281L}, {"The range could not be added to the range list because of a conflict." ,"STATUS_RANGE_LIST_CONFLICT",0xC0000282L}, {"The specified medium changer source element contains no media." ,"STATUS_SOURCE_ELEMENT_EMPTY",0xC0000283L}, {"The specified medium changer destination element already contains media." ,"STATUS_DESTINATION_ELEMENT_FULL",0xC0000284L}, {"The specified medium changer element does not exist." ,"STATUS_ILLEGAL_ELEMENT_ADDRESS",0xC0000285L}, {"The specified element is contained within a magazine that is no longer present." ,"STATUS_MAGAZINE_NOT_PRESENT",0xC0000286L}, {"The device requires reinitialization due to hardware errors." ,"STATUS_REINITIALIZATION_NEEDED",0xC0000287L}, {"The device has indicated that cleaning is necessary." ,"STATUS_DEVICE_REQUIRES_CLEANING",0x80000288L}, {"The device has indicated that it's door is open. Further operations require it closed and secured." ,"STATUS_DEVICE_DOOR_OPEN",0x80000289L}, {"The file encryption attempt failed." ,"STATUS_ENCRYPTION_FAILED",0xC000028AL}, {"The file decryption attempt failed." ,"STATUS_DECRYPTION_FAILED",0xC000028BL}, {"The specified range could not be found in the range list." ,"STATUS_RANGE_NOT_FOUND",0xC000028CL}, {"There is no encryption recovery policy configured for this system." ,"STATUS_NO_RECOVERY_POLICY",0xC000028DL}, {"The required encryption driver is not loaded for this system." ,"STATUS_NO_EFS",0xC000028EL}, {"The file was encrypted with a different encryption driver than is currently loaded." ,"STATUS_WRONG_EFS",0xC000028FL}, {"There are no EFS keys defined for the user." ,"STATUS_NO_USER_KEYS",0xC0000290L}, {"The specified file is not encrypted." ,"STATUS_FILE_NOT_ENCRYPTED",0xC0000291L}, {"The specified file is not in the defined EFS export format." ,"STATUS_NOT_EXPORT_FORMAT",0xC0000292L}, {"The specified file is encrypted and the user does not have the ability to decrypt it." ,"STATUS_FILE_ENCRYPTED",0xC0000293L}, {"The system has awoken" ,"STATUS_WAKE_SYSTEM",0x40000294L}, {"The guid passed was not recognized as valid by a WMI data provider." ,"STATUS_WMI_GUID_NOT_FOUND",0xC0000295L}, {"The instance name passed was not recognized as valid by a WMI data provider." ,"STATUS_WMI_INSTANCE_NOT_FOUND",0xC0000296L}, {"The data item id passed was not recognized as valid by a WMI data provider." ,"STATUS_WMI_ITEMID_NOT_FOUND",0xC0000297L}, {"The WMI request could not be completed and should be retried." ,"STATUS_WMI_TRY_AGAIN",0xC0000298L}, {"The policy object is shared and can only be modified at the root" ,"STATUS_SHARED_POLICY",0xC0000299L}, {"The policy object does not exist when it should" ,"STATUS_POLICY_OBJECT_NOT_FOUND",0xC000029AL}, {"The requested policy information only lives in the Ds" ,"STATUS_POLICY_ONLY_IN_DS",0xC000029BL}, {"The volume must be upgraded to enable this feature" ,"STATUS_VOLUME_NOT_UPGRADED",0xC000029CL}, {"The remote storage service is not operational at this time." ,"STATUS_REMOTE_STORAGE_NOT_ACTIVE",0xC000029DL}, {"The remote storage service encountered a media error." ,"STATUS_REMOTE_STORAGE_MEDIA_ERROR",0xC000029EL}, {"The tracking (workstation) service is not running." ,"STATUS_NO_TRACKING_SERVICE",0xC000029FL}, {"The server process is running under a SID different than that required by client." ,"STATUS_SERVER_SID_MISMATCH",0xC00002A0L}, {"The specified directory service attribute or value does not exist." ,"STATUS_DS_NO_ATTRIBUTE_OR_VALUE",0xC00002A1L}, {"The attribute syntax specified to the directory service is invalid." ,"STATUS_DS_INVALID_ATTRIBUTE_SYNTAX",0xC00002A2L}, {"The attribute type specified to the directory service is not defined." ,"STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED",0xC00002A3L}, {"The specified directory service attribute or value already exists." ,"STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS",0xC00002A4L}, {"The directory service is busy." ,"STATUS_DS_BUSY",0xC00002A5L}, {"The directory service is not available." ,"STATUS_DS_UNAVAILABLE",0xC00002A6L}, {"The directory service was unable to allocate a relative identifier." ,"STATUS_DS_NO_RIDS_ALLOCATED",0xC00002A7L}, {"The directory service has exhausted the pool of relative identifiers." ,"STATUS_DS_NO_MORE_RIDS",0xC00002A8L}, {"The requested operation could not be performed because the directory service is not the master for that type of operation." ,"STATUS_DS_INCORRECT_ROLE_OWNER",0xC00002A9L}, {"The directory service was unable to initialize the subsystem that allocates relative identifiers." ,"STATUS_DS_RIDMGR_INIT_ERROR",0xC00002AAL}, {"The requested operation did not satisfy one or more constraints associated with the class of the object." ,"STATUS_DS_OBJ_CLASS_VIOLATION",0xC00002ABL}, {"The directory service can perform the requested operation only on a leaf object." ,"STATUS_DS_CANT_ON_NON_LEAF",0xC00002ACL}, {"The directory service cannot perform the requested operation on the Relatively Defined Name (RDN) attribute of an object." ,"STATUS_DS_CANT_ON_RDN",0xC00002ADL}, {"The directory service detected an attempt to modify the object class of an object." ,"STATUS_DS_CANT_MOD_OBJ_CLASS",0xC00002AEL}, {"An error occurred while performing a cross domain move operation." ,"STATUS_DS_CROSS_DOM_MOVE_FAILED",0xC00002AFL}, {"Unable to Contact the Global Catalog Server." ,"STATUS_DS_GC_NOT_AVAILABLE",0xC00002B0L}, {"The requested operation requires a directory service, and none was available." ,"STATUS_DIRECTORY_SERVICE_REQUIRED",0xC00002B1L}, {"The reparse attribute cannot be set as it is incompatible with an existing attribute." ,"STATUS_REPARSE_ATTRIBUTE_CONFLICT",0xC00002B2L}, {"A group marked use for deny only can not be enabled." ,"STATUS_CANT_ENABLE_DENY_ONLY",0xC00002B3L}, {"{EXCEPTION}" "Multiple floating point faults." ,"STATUS_FLOAT_MULTIPLE_FAULTS",0xC00002B4L}, {"{EXCEPTION}" "Multiple floating point traps." ,"STATUS_FLOAT_MULTIPLE_TRAPS",0xC00002B5L}, {"The device has been removed." ,"STATUS_DEVICE_REMOVED",0xC00002B6L}, {"The volume change journal is being deleted." ,"STATUS_JOURNAL_DELETE_IN_PROGRESS",0xC00002B7L}, {"The volume change journal is not active." ,"STATUS_JOURNAL_NOT_ACTIVE",0xC00002B8L}, {"The requested interface is not supported." ,"STATUS_NOINTERFACE",0xC00002B9L}, {"A directory service resource limit has been exceeded." ,"STATUS_DS_ADMIN_LIMIT_EXCEEDED",0xC00002C1L}, {"{System Standby Failed}" "The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode." ,"STATUS_DRIVER_FAILED_SLEEP",0xC00002C2L}, {"Mutual Authentication failed. The server's password is out of date at the domain controller." ,"STATUS_MUTUAL_AUTHENTICATION_FAILED",0xC00002C3L}, {"The system file %1 has become corrupt and has been replaced." ,"STATUS_CORRUPT_SYSTEM_FILE",0xC00002C4L}, {"{EXCEPTION}" "Alignment Error" "A datatype misalignment error was detected in a load or store instruction." ,"STATUS_DATATYPE_MISALIGNMENT_ERROR",0xC00002C5L}, {"The WMI data item or data block is read only." ,"STATUS_WMI_READ_ONLY",0xC00002C6L}, {"The WMI data item or data block could not be changed." ,"STATUS_WMI_SET_FAILURE",0xC00002C7L}, {"{Virtual Memory Minimum Too Low}" "Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file." "During this process, memory requests for some applications may be denied. For more information, see Help." ,"STATUS_COMMITMENT_MINIMUM",0xC00002C8L}, {"{EXCEPTION}" "Register NaT consumption faults." "A NaT value is consumed on a non speculative instruction." ,"STATUS_REG_NAT_CONSUMPTION",0xC00002C9L}, {"The medium changer's transport element contains media, which is causing the operation to fail." ,"STATUS_TRANSPORT_FULL",0xC00002CAL}, {"Security Accounts Manager initialization failed because of the following error:" "%hs" "Error Status: 0x%x." "Please click OK to shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information." ,"STATUS_DS_SAM_INIT_FAILURE",0xC00002CBL}, {"This operation is supported only when you are connected to the server." ,"STATUS_ONLY_IF_CONNECTED",0xC00002CCL}, {"Only an administrator can modify the membership list of an administrative group." ,"STATUS_DS_SENSITIVE_GROUP_VIOLATION",0xC00002CDL}, {"A device was removed so enumeration must be restarted." ,"STATUS_PNP_RESTART_ENUMERATION",0xC00002CEL}, {"The journal entry has been deleted from the journal." ,"STATUS_JOURNAL_ENTRY_DELETED",0xC00002CFL}, {"Cannot change the primary group ID of a domain controller account." ,"STATUS_DS_CANT_MOD_PRIMARYGROUPID",0xC00002D0L}, {"{Fatal System Error}" "The system image %s is not properly signed." "The file has been replaced with the signed file." "The system has been shut down." ,"STATUS_SYSTEM_IMAGE_BAD_SIGNATURE",0xC00002D1L}, {"Device will not start without a reboot." ,"STATUS_PNP_REBOOT_REQUIRED",0xC00002D2L}, {"Current device power state cannot support this request." ,"STATUS_POWER_STATE_INVALID",0xC00002D3L}, {"The specified group type is invalid." ,"STATUS_DS_INVALID_GROUP_TYPE",0xC00002D4L}, {"In mixed domain no nesting of global group if group is security enabled." ,"STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN",0xC00002D5L}, {"In mixed domain, cannot nest local groups with other local groups, if the group is security enabled." ,"STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN",0xC00002D6L}, {"A global group cannot have a local group as a member." ,"STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER",0xC00002D7L}, {"A global group cannot have a universal group as a member." ,"STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER",0xC00002D8L}, {"A universal group cannot have a local group as a member." ,"STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER",0xC00002D9L}, {"A global group cannot have a cross domain member." ,"STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER",0xC00002DAL}, {"A local group cannot have another cross domain local group as a member." ,"STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER",0xC00002DBL}, {"Can not change to security disabled group because of having primary members in this group." ,"STATUS_DS_HAVE_PRIMARY_MEMBERS",0xC00002DCL}, {"The WMI operation is not supported by the data block or method." ,"STATUS_WMI_NOT_SUPPORTED",0xC00002DDL}, {"There is not enough power to complete the requested operation." ,"STATUS_INSUFFICIENT_POWER",0xC00002DEL}, {"Security Account Manager needs to get the boot password." ,"STATUS_SAM_NEED_BOOTKEY_PASSWORD",0xC00002DFL}, {"Security Account Manager needs to get the boot key from floppy disk." ,"STATUS_SAM_NEED_BOOTKEY_FLOPPY",0xC00002E0L}, {"Directory Service can not start." ,"STATUS_DS_CANT_START",0xC00002E1L}, {"Directory Services could not start because of the following error:" "%hs" "Error Status: 0x%x." "Please click OK to shutdown this system and reboot into Directory Services Restore Mode, check the event log for more detailed information." ,"STATUS_DS_INIT_FAILURE",0xC00002E2L}, {"Security Accounts Manager initialization failed because of the following error:" "%hs" "Error Status: 0x%x." "Please click OK to shutdown this system and reboot into Safe Mode, check the event log for more detailed information." ,"STATUS_SAM_INIT_FAILURE",0xC00002E3L}, {"The requested operation can be performed only on a global catalog server." ,"STATUS_DS_GC_REQUIRED",0xC00002E4L}, {"A local group can only be a member of other local groups in the same domain." ,"STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY",0xC00002E5L}, {"Foreign security principals cannot be members of universal groups." ,"STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS",0xC00002E6L}, {"Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased." ,"STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED",0xC00002E7L}, {"STATUS_MULTIPLE_FAULT_VIOLATION" ,"STATUS_MULTIPLE_FAULT_VIOLATION",0xC00002E8L}, {"This operation can not be performed on the current domain." ,"STATUS_CURRENT_DOMAIN_NOT_ALLOWED",0xC00002E9L}, {"The directory or file cannot be created." ,"STATUS_CANNOT_MAKE",0xC00002EAL}, {"The system is in the process of shutting down." ,"STATUS_SYSTEM_SHUTDOWN",0xC00002EBL}, {"Directory Services could not start because of the following error:" "%hs" "Error Status: 0x%x." "Please click OK to shutdown the system. You can use the recovery console to diagnose the system further." ,"STATUS_DS_INIT_FAILURE_CONSOLE",0xC00002ECL}, {"Security Accounts Manager initialization failed because of the following error:" "%hs" "Error Status: 0x%x." "Please click OK to shutdown the system. You can use the recovery console to diagnose the system further." ,"STATUS_DS_SAM_INIT_FAILURE_CONSOLE",0xC00002EDL}, {"A security context was deleted before the context was completed. This is considered a logon failure." ,"STATUS_UNFINISHED_CONTEXT_DELETED",0xC00002EEL}, {"The client is trying to negotiate a context and the server requires user-to-user but didn't send a TGT reply." ,"STATUS_NO_TGT_REPLY",0xC00002EFL}, {"An object ID was not found in the file." ,"STATUS_OBJECTID_NOT_FOUND",0xC00002F0L}, {"Unable to accomplish the requested task because the local machine does not have any IP addresses." ,"STATUS_NO_IP_ADDRESSES",0xC00002F1L}, {"The supplied credential handle does not match the credential associated with the security context." ,"STATUS_WRONG_CREDENTIAL_HANDLE",0xC00002F2L}, {"The crypto system or checksum function is invalid because a required function is unavailable." ,"STATUS_CRYPTO_SYSTEM_INVALID",0xC00002F3L}, {"The number of maximum ticket referrals has been exceeded." ,"STATUS_MAX_REFERRALS_EXCEEDED",0xC00002F4L}, {"The local machine must be a Kerberos KDC (domain controller) and it is not." ,"STATUS_MUST_BE_KDC",0xC00002F5L}, {"The other end of the security negotiation is requires strong crypto but it is not supported on the local machine." ,"STATUS_STRONG_CRYPTO_NOT_SUPPORTED",0xC00002F6L}, {"The KDC reply contained more than one principal name." ,"STATUS_TOO_MANY_PRINCIPALS",0xC00002F7L}, {"Expected to find PA data for a hint of what etype to use, but it was not found." ,"STATUS_NO_PA_DATA",0xC00002F8L}, {"The client certificate does not contain a valid UPN, or does not match the client name " "in the logon request. Please contact your administrator." ,"STATUS_PKINIT_NAME_MISMATCH",0xC00002F9L}, {"Smartcard logon is required and was not used." ,"STATUS_SMARTCARD_LOGON_REQUIRED",0xC00002FAL}, {"An invalid request was sent to the KDC." ,"STATUS_KDC_INVALID_REQUEST",0xC00002FBL}, {"The KDC was unable to generate a referral for the service requested." ,"STATUS_KDC_UNABLE_TO_REFER",0xC00002FCL}, {"The encryption type requested is not supported by the KDC." ,"STATUS_KDC_UNKNOWN_ETYPE",0xC00002FDL}, {"A system shutdown is in progress." ,"STATUS_SHUTDOWN_IN_PROGRESS",0xC00002FEL}, {"The server machine is shutting down." ,"STATUS_SERVER_SHUTDOWN_IN_PROGRESS",0xC00002FFL}, {"This operation is not supported on a computer running Windows Server 2003 for Small Business Server" ,"STATUS_NOT_SUPPORTED_ON_SBS",0xC0000300L}, {"The WMI GUID is no longer available" ,"STATUS_WMI_GUID_DISCONNECTED",0xC0000301L}, {"Collection or events for the WMI GUID is already disabled." ,"STATUS_WMI_ALREADY_DISABLED",0xC0000302L}, {"Collection or events for the WMI GUID is already enabled." ,"STATUS_WMI_ALREADY_ENABLED",0xC0000303L}, {"The Master File Table on the volume is too fragmented to complete this operation." ,"STATUS_MFT_TOO_FRAGMENTED",0xC0000304L}, {"Copy protection failure." ,"STATUS_COPY_PROTECTION_FAILURE",0xC0000305L}, {"Copy protection error - DVD CSS Authentication failed." ,"STATUS_CSS_AUTHENTICATION_FAILURE",0xC0000306L}, {"Copy protection error - The given sector does not contain a valid key." ,"STATUS_CSS_KEY_NOT_PRESENT",0xC0000307L}, {"Copy protection error - DVD session key not established." ,"STATUS_CSS_KEY_NOT_ESTABLISHED",0xC0000308L}, {"Copy protection error - The read failed because the sector is encrypted." ,"STATUS_CSS_SCRAMBLED_SECTOR",0xC0000309L}, {"Copy protection error - The given DVD's region does not correspond to the" "region setting of the drive." ,"STATUS_CSS_REGION_MISMATCH",0xC000030AL}, {"Copy protection error - The drive's region setting may be permanent." ,"STATUS_CSS_RESETS_EXHAUSTED",0xC000030BL}, {"The kerberos protocol encountered an error while validating the KDC certificate during smartcard Logon. There" "is more information in the system event log." ,"STATUS_PKINIT_FAILURE",0xC0000320L}, {"The kerberos protocol encountered an error while attempting to utilize the smartcard subsystem." ,"STATUS_SMARTCARD_SUBSYSTEM_FAILURE",0xC0000321L}, {"The target server does not have acceptable kerberos credentials." ,"STATUS_NO_KERB_KEY",0xC0000322L}, {"The transport determined that the remote system is down." ,"STATUS_HOST_DOWN",0xC0000350L}, {"An unsupported preauthentication mechanism was presented to the kerberos package." ,"STATUS_UNSUPPORTED_PREAUTH",0xC0000351L}, {"The encryption algorithm used on the source file needs a bigger key buffer than the one used on the destination file." ,"STATUS_EFS_ALG_BLOB_TOO_BIG",0xC0000352L}, {"An attempt to remove a processes DebugPort was made, but a port was not already associated with the process." ,"STATUS_PORT_NOT_SET",0xC0000353L}, {"An attempt to do an operation on a debug port failed because the port is in the process of being deleted." ,"STATUS_DEBUGGER_INACTIVE",0xC0000354L}, {"This version of Windows is not compatible with the behavior version of directory forest, domain or domain controller." ,"STATUS_DS_VERSION_CHECK_FAILURE",0xC0000355L}, {"The specified event is currently not being audited." ,"STATUS_AUDITING_DISABLED",0xC0000356L}, {"The machine account was created pre-NT4. The account needs to be recreated." ,"STATUS_PRENT4_MACHINE_ACCOUNT",0xC0000357L}, {"A account group can not have a universal group as a member." ,"STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER",0xC0000358L}, {"The specified image file did not have the correct format, it appears to be a 32-bit Windows image." ,"STATUS_INVALID_IMAGE_WIN_32",0xC0000359L}, {"The specified image file did not have the correct format, it appears to be a 64-bit Windows image." ,"STATUS_INVALID_IMAGE_WIN_64",0xC000035AL}, {"Client's supplied SSPI channel bindings were incorrect." ,"STATUS_BAD_BINDINGS",0xC000035BL}, {"The client's session has expired, so the client must reauthenticate to continue accessing the remote resources." ,"STATUS_NETWORK_SESSION_EXPIRED",0xC000035CL}, {"AppHelp dialog canceled thus preventing the application from starting." ,"STATUS_APPHELP_BLOCK",0xC000035DL}, {"The SID filtering operation removed all SIDs." ,"STATUS_ALL_SIDS_FILTERED",0xC000035EL}, {"The driver was not loaded because the system is booting into safe mode." ,"STATUS_NOT_SAFE_MODE_DRIVER",0xC000035FL}, {"Access to %1 has been restricted by your Administrator by the default software restriction policy level." ,"STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT",0xC0000361L}, {"Access to %1 has been restricted by your Administrator by location with policy rule %2 placed on path %3" ,"STATUS_ACCESS_DISABLED_BY_POLICY_PATH",0xC0000362L}, {"Access to %1 has been restricted by your Administrator by software publisher policy." ,"STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER",0xC0000363L}, {"Access to %1 has been restricted by your Administrator by policy rule %2." ,"STATUS_ACCESS_DISABLED_BY_POLICY_OTHER",0xC0000364L}, {"The driver was not loaded because it failed it's initialization call." ,"STATUS_FAILED_DRIVER_ENTRY",0xC0000365L}, {"The \"%hs\" encountered an error while applying power or reading the device configuration." "This may be caused by a failure of your hardware or by a poor connection." ,"STATUS_DEVICE_ENUMERATION_ERROR",0xC0000366L}, {"An operation is blocked waiting for an oplock." ,"STATUS_WAIT_FOR_OPLOCK",0x00000367L}, {"The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached." ,"STATUS_MOUNT_POINT_NOT_RESOLVED",0xC0000368L}, {"The device object parameter is either not a valid device object or is not attached to the volume specified by the file name." ,"STATUS_INVALID_DEVICE_OBJECT_PARAMETER",0xC0000369L}, {"A Machine Check Error has occurred. Please check the system eventlog for additional information." ,"STATUS_MCA_OCCURED",0xC000036AL}, {"Driver %2 has been blocked from loading." ,"STATUS_DRIVER_BLOCKED_CRITICAL",0xC000036BL}, {"Driver %2 has been blocked from loading." ,"STATUS_DRIVER_BLOCKED",0xC000036CL}, {"There was error [%2] processing the driver database." ,"STATUS_DRIVER_DATABASE_ERROR",0xC000036DL}, {"System hive size has exceeded its limit." ,"STATUS_SYSTEM_HIVE_TOO_LARGE",0xC000036EL}, {"A dynamic link library (DLL}," ,"STATUS_INVALID_IMPORT_OF_NON_DLL",0xC000036FL}, {"The Directory Service is shuting down." ,"STATUS_DS_SHUTTING_DOWN",0x40000370L}, {"An incorrect PIN was presented to the smart card" ,"STATUS_SMARTCARD_WRONG_PIN",0xC0000380L}, {"The smart card is blocked" ,"STATUS_SMARTCARD_CARD_BLOCKED",0xC0000381L}, {"No PIN was presented to the smart card" ,"STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED",0xC0000382L}, {"No smart card available" ,"STATUS_SMARTCARD_NO_CARD",0xC0000383L}, {"The requested key container does not exist on the smart card" ,"STATUS_SMARTCARD_NO_KEY_CONTAINER",0xC0000384L}, {"The requested certificate does not exist on the smart card" ,"STATUS_SMARTCARD_NO_CERTIFICATE",0xC0000385L}, {"The requested keyset does not exist" ,"STATUS_SMARTCARD_NO_KEYSET",0xC0000386L}, {"A communication error with the smart card has been detected." ,"STATUS_SMARTCARD_IO_ERROR",0xC0000387L}, {"The system detected a possible attempt to compromise security. Please ensure that you can contact the server that authenticated you." ,"STATUS_DOWNGRADE_DETECTED",0xC0000388L}, {"The smartcard certificate used for authentication has been revoked." "Please contact your system administrator. There may be additional information in the" "event log." ,"STATUS_SMARTCARD_CERT_REVOKED",0xC0000389L}, {"An untrusted certificate authority was detected While processing the" "smartcard certificate used for authentication. Please contact your system" "administrator." ,"STATUS_ISSUING_CA_UNTRUSTED",0xC000038AL}, {"The revocation status of the smartcard certificate used for" "authentication could not be determined. Please contact your system administrator." ,"STATUS_REVOCATION_OFFLINE_C",0xC000038BL}, {"The smartcard certificate used for authentication was not trusted. Please" "contact your system administrator." ,"STATUS_PKINIT_CLIENT_FAILURE",0xC000038CL}, {"The smartcard certificate used for authentication has expired. Please" "contact your system administrator." ,"STATUS_SMARTCARD_CERT_EXPIRED",0xC000038DL}, {"The driver could not be loaded because a previous version of the driver is still in memory." ,"STATUS_DRIVER_FAILED_PRIOR_UNLOAD",0xC000038EL}, {"The smartcard provider could not perform the action since the context was acquired as silent." ,"STATUS_SMARTCARD_SILENT_CONTEXT",0xC000038FL}, {"The current user's delegated trust creation quota has been exceeded." ,"STATUS_PER_USER_TRUST_QUOTA_EXCEEDED",0xC0000401L}, {"The total delegated trust creation quota has been exceeded." ,"STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED",0xC0000402L}, {"The current user's delegated trust deletion quota has been exceeded." ,"STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED",0xC0000403L}, {"The requested name already exists as a unique identifier." ,"STATUS_DS_NAME_NOT_UNIQUE",0xC0000404L}, {"The requested object has a non-unique identifier and cannot be retrieved." ,"STATUS_DS_DUPLICATE_ID_FOUND",0xC0000405L}, {"The group cannot be converted due to attribute restrictions on the requested group type." ,"STATUS_DS_GROUP_CONVERSION_ERROR",0xC0000406L}, {"{Volume Shadow Copy Service}" "Please wait while the Volume Shadow Copy Service prepares volume %hs for hibernation." ,"STATUS_VOLSNAP_PREPARE_HIBERNATE",0xC0000407L}, {"Kerberos sub-protocol User2User is required." ,"STATUS_USER2USER_REQUIRED",0xC0000408L}, {"The system detected an overrun of a stack-based buffer in this application. This" "overrun could potentially allow a malicious user to gain control of this application." ,"STATUS_STACK_BUFFER_OVERRUN",0xC0000409L}, {"The Kerberos subsystem encountered an error. A service for user protocol request was made " "against a domain controller which does not support service for user." ,"STATUS_NO_S4U_PROT_SUPPORT",0xC000040AL}, {"An attempt was made by this server to make a Kerberos constrained delegation request for a target" "outside of the server's realm. This is not supported, and indicates a misconfiguration on this" "server's allowed to delegate to list. Please contact your administrator." ,"STATUS_CROSSREALM_DELEGATION_FAILURE",0xC000040BL}, {"The revocation status of the domain controller certificate used for smartcard" "authentication could not be determined. There is additional information in the system event" "log. Please contact your system administrator." ,"STATUS_REVOCATION_OFFLINE_KDC",0xC000040CL}, {"An untrusted certificate authority was detected while processing the" "domain controller certificate used for authentication. There is additional information in" "the system event log. Please contact your system administrator." ,"STATUS_ISSUING_CA_UNTRUSTED_KDC",0xC000040DL}, {"The domain controller certificate used for smartcard logon has expired." "Please contact your system administrator with the contents of your system event log." ,"STATUS_KDC_CERT_EXPIRED",0xC000040EL}, {"The domain controller certificate used for smartcard logon has been revoked." "Please contact your system administrator with the contents of your system event log." ,"STATUS_KDC_CERT_REVOKED",0xC000040FL}, {"Data present in one of the parameters is more than the function can operate on." ,"STATUS_PARAMETER_QUOTA_EXCEEDED",0xC0000410L}, {"The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted." ,"STATUS_HIBERNATION_FAILURE",0xC0000411L}, {"An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed." ,"STATUS_DELAY_LOAD_FAILED",0xC0000412L}, {"Logon Failure: The machine you are logging onto is protected by an authentication firewall. The specified account is not allowed to authenticate to the machine." ,"STATUS_AUTHENTICATION_FIREWALL_FAILED",0xC0000413L}, {"%hs is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator." ,"STATUS_VDM_DISALLOWED",0xC0000414L}, {"{Display Driver Stopped Responding}" "The %hs display driver has stopped working normally. Save your work and reboot the system to restore full display functionality." "The next time you reboot the machine a dialog will be displayed giving you a chance to report this failure to Microsoft." ,"STATUS_HUNG_DISPLAY_DRIVER_THREAD",0xC0000415L}, {"An assertion failure has occurred." ,"STATUS_ASSERTION_FAILURE",0xC0000420L}, { "An exception has occurred in a user mode callback and the kernel callback frame should be removed." ,"STATUS_CALLBACK_POP_STACK",0xC0000423L}, {"The attempted write operation encountered a write already in progress for some portion of the range." ,"STATUS_ENCOUNTERED_WRITE_IN_PROGRESS",0xC0000433L}, {"WOW Assertion Error." ,"STATUS_WOW_ASSERTION",0xC0009898L}, {"Debugger did not perform a state change." ,"DBG_NO_STATE_CHANGE",0xC0010001L}, {"Debugger has found the application is not idle." ,"DBG_APP_NOT_IDLE",0xC0010002L}, {"The string binding is invalid." ,"RPC_NT_INVALID_STRING_BINDING",0xC0020001L}, {"The binding handle is not the correct type." ,"RPC_NT_WRONG_KIND_OF_BINDING",0xC0020002L}, {"The binding handle is invalid." ,"RPC_NT_INVALID_BINDING",0xC0020003L}, {"The RPC protocol sequence is not supported." ,"RPC_NT_PROTSEQ_NOT_SUPPORTED",0xC0020004L}, {"The RPC protocol sequence is invalid." ,"RPC_NT_INVALID_RPC_PROTSEQ",0xC0020005L}, {"The string UUID is invalid." ,"RPC_NT_INVALID_STRING_UUID",0xC0020006L}, {"The endpoint format is invalid." ,"RPC_NT_INVALID_ENDPOINT_FORMAT",0xC0020007L}, {"The network address is invalid." ,"RPC_NT_INVALID_NET_ADDR",0xC0020008L}, {"No endpoint was found." ,"RPC_NT_NO_ENDPOINT_FOUND",0xC0020009L}, {"The timeout value is invalid." ,"RPC_NT_INVALID_TIMEOUT",0xC002000AL}, {"The object UUID was not found." ,"RPC_NT_OBJECT_NOT_FOUND",0xC002000BL}, {"The object UUID has already been registered." ,"RPC_NT_ALREADY_REGISTERED",0xC002000CL}, {"The type UUID has already been registered." ,"RPC_NT_TYPE_ALREADY_REGISTERED",0xC002000DL}, {"The RPC server is already listening." ,"RPC_NT_ALREADY_LISTENING",0xC002000EL}, {"No protocol sequences have been registered." ,"RPC_NT_NO_PROTSEQS_REGISTERED",0xC002000FL}, {"The RPC server is not listening." ,"RPC_NT_NOT_LISTENING",0xC0020010L}, {"The manager type is unknown." ,"RPC_NT_UNKNOWN_MGR_TYPE",0xC0020011L}, {"The interface is unknown." ,"RPC_NT_UNKNOWN_IF",0xC0020012L}, {"There are no bindings." ,"RPC_NT_NO_BINDINGS",0xC0020013L}, {"There are no protocol sequences." ,"RPC_NT_NO_PROTSEQS",0xC0020014L}, {"The endpoint cannot be created." ,"RPC_NT_CANT_CREATE_ENDPOINT",0xC0020015L}, {"Not enough resources are available to complete this operation." ,"RPC_NT_OUT_OF_RESOURCES",0xC0020016L}, {"The RPC server is unavailable." ,"RPC_NT_SERVER_UNAVAILABLE",0xC0020017L}, {"The RPC server is too busy to complete this operation." ,"RPC_NT_SERVER_TOO_BUSY",0xC0020018L}, {"The network options are invalid." ,"RPC_NT_INVALID_NETWORK_OPTIONS",0xC0020019L}, {"There are no remote procedure calls active on this thread." ,"RPC_NT_NO_CALL_ACTIVE",0xC002001AL}, {"The remote procedure call failed." ,"RPC_NT_CALL_FAILED",0xC002001BL}, {"The remote procedure call failed and did not execute." ,"RPC_NT_CALL_FAILED_DNE",0xC002001CL}, {"An RPC protocol error occurred." ,"RPC_NT_PROTOCOL_ERROR",0xC002001DL}, {"The transfer syntax is not supported by the RPC server." ,"RPC_NT_UNSUPPORTED_TRANS_SYN",0xC002001FL}, {"The type UUID is not supported." ,"RPC_NT_UNSUPPORTED_TYPE",0xC0020021L}, {"The tag is invalid." ,"RPC_NT_INVALID_TAG",0xC0020022L}, {"The array bounds are invalid." ,"RPC_NT_INVALID_BOUND",0xC0020023L}, {"The binding does not contain an entry name." ,"RPC_NT_NO_ENTRY_NAME",0xC0020024L}, {"The name syntax is invalid." ,"RPC_NT_INVALID_NAME_SYNTAX",0xC0020025L}, {"The name syntax is not supported." ,"RPC_NT_UNSUPPORTED_NAME_SYNTAX",0xC0020026L}, {"No network address is available to use to construct a UUID." ,"RPC_NT_UUID_NO_ADDRESS",0xC0020028L}, {"The endpoint is a duplicate." ,"RPC_NT_DUPLICATE_ENDPOINT",0xC0020029L}, {"The authentication type is unknown." ,"RPC_NT_UNKNOWN_AUTHN_TYPE",0xC002002AL}, {"The maximum number of calls is too small." ,"RPC_NT_MAX_CALLS_TOO_SMALL",0xC002002BL}, {"The string is too long." ,"RPC_NT_STRING_TOO_LONG",0xC002002CL}, {"The RPC protocol sequence was not found." ,"RPC_NT_PROTSEQ_NOT_FOUND",0xC002002DL}, {"The procedure number is out of range." ,"RPC_NT_PROCNUM_OUT_OF_RANGE",0xC002002EL}, {"The binding does not contain any authentication information." ,"RPC_NT_BINDING_HAS_NO_AUTH",0xC002002FL}, {"The authentication service is unknown." ,"RPC_NT_UNKNOWN_AUTHN_SERVICE",0xC0020030L}, {"The authentication level is unknown." ,"RPC_NT_UNKNOWN_AUTHN_LEVEL",0xC0020031L}, {"The security context is invalid." ,"RPC_NT_INVALID_AUTH_IDENTITY",0xC0020032L}, {"The authorization service is unknown." ,"RPC_NT_UNKNOWN_AUTHZ_SERVICE",0xC0020033L}, {"The entry is invalid." ,"EPT_NT_INVALID_ENTRY",0xC0020034L}, {"The operation cannot be performed." ,"EPT_NT_CANT_PERFORM_OP",0xC0020035L}, {"There are no more endpoints available from the endpoint mapper." ,"EPT_NT_NOT_REGISTERED",0xC0020036L}, {"No interfaces have been exported." ,"RPC_NT_NOTHING_TO_EXPORT",0xC0020037L}, {"The entry name is incomplete." ,"RPC_NT_INCOMPLETE_NAME",0xC0020038L}, {"The version option is invalid." ,"RPC_NT_INVALID_VERS_OPTION",0xC0020039L}, {"There are no more members." ,"RPC_NT_NO_MORE_MEMBERS",0xC002003AL}, {"There is nothing to unexport." ,"RPC_NT_NOT_ALL_OBJS_UNEXPORTED",0xC002003BL}, {"The interface was not found." ,"RPC_NT_INTERFACE_NOT_FOUND",0xC002003CL}, {"The entry already exists." ,"RPC_NT_ENTRY_ALREADY_EXISTS",0xC002003DL}, {"The entry is not found." ,"RPC_NT_ENTRY_NOT_FOUND",0xC002003EL}, {"The name service is unavailable." ,"RPC_NT_NAME_SERVICE_UNAVAILABLE",0xC002003FL}, {"The network address family is invalid." ,"RPC_NT_INVALID_NAF_ID",0xC0020040L}, {"The requested operation is not supported." ,"RPC_NT_CANNOT_SUPPORT",0xC0020041L}, {"No security context is available to allow impersonation." ,"RPC_NT_NO_CONTEXT_AVAILABLE",0xC0020042L}, {"An internal error occurred in RPC." ,"RPC_NT_INTERNAL_ERROR",0xC0020043L}, {"The RPC server attempted an integer divide by zero." ,"RPC_NT_ZERO_DIVIDE",0xC0020044L}, {"An addressing error occurred in the RPC server." ,"RPC_NT_ADDRESS_ERROR",0xC0020045L}, {"A floating point operation at the RPC server caused a divide by zero." ,"RPC_NT_FP_DIV_ZERO",0xC0020046L}, {"A floating point underflow occurred at the RPC server." ,"RPC_NT_FP_UNDERFLOW",0xC0020047L}, {"A floating point overflow occurred at the RPC server." ,"RPC_NT_FP_OVERFLOW",0xC0020048L}, {"The list of RPC servers available for auto-handle binding has been exhausted." ,"RPC_NT_NO_MORE_ENTRIES",0xC0030001L}, {"The file designated by DCERPCCHARTRANS cannot be opened." ,"RPC_NT_SS_CHAR_TRANS_OPEN_FAIL",0xC0030002L}, {"The file containing the character translation table has fewer than 512 bytes." ,"RPC_NT_SS_CHAR_TRANS_SHORT_FILE",0xC0030003L}, {"A null context handle is passed as an [in] parameter." ,"RPC_NT_SS_IN_NULL_CONTEXT",0xC0030004L}, {"The context handle does not match any known context handles." ,"RPC_NT_SS_CONTEXT_MISMATCH",0xC0030005L}, {"The context handle changed during a call." ,"RPC_NT_SS_CONTEXT_DAMAGED",0xC0030006L}, {"The binding handles passed to a remote procedure call do not match." ,"RPC_NT_SS_HANDLES_MISMATCH",0xC0030007L}, {"The stub is unable to get the call handle." ,"RPC_NT_SS_CANNOT_GET_CALL_HANDLE",0xC0030008L}, {"A null reference pointer was passed to the stub." ,"RPC_NT_NULL_REF_POINTER",0xC0030009L}, {"The enumeration value is out of range." ,"RPC_NT_ENUM_VALUE_OUT_OF_RANGE",0xC003000AL}, {"The byte count is too small." ,"RPC_NT_BYTE_COUNT_TOO_SMALL",0xC003000BL}, {"The stub received bad data." ,"RPC_NT_BAD_STUB_DATA",0xC003000CL}, {"A remote procedure call is already in progress for this thread." ,"RPC_NT_CALL_IN_PROGRESS",0xC0020049L}, {"There are no more bindings." ,"RPC_NT_NO_MORE_BINDINGS",0xC002004AL}, {"The group member was not found." ,"RPC_NT_GROUP_MEMBER_NOT_FOUND",0xC002004BL}, {"The endpoint mapper database entry could not be created." ,"EPT_NT_CANT_CREATE",0xC002004CL}, {"The object UUID is the nil UUID." ,"RPC_NT_INVALID_OBJECT",0xC002004DL}, {"No interfaces have been registered." ,"RPC_NT_NO_INTERFACES",0xC002004FL}, {"The remote procedure call was cancelled." ,"RPC_NT_CALL_CANCELLED",0xC0020050L}, {"The binding handle does not contain all required information." ,"RPC_NT_BINDING_INCOMPLETE",0xC0020051L}, {"A communications failure occurred during a remote procedure call." ,"RPC_NT_COMM_FAILURE",0xC0020052L}, {"The requested authentication level is not supported." ,"RPC_NT_UNSUPPORTED_AUTHN_LEVEL",0xC0020053L}, {"No principal name registered." ,"RPC_NT_NO_PRINC_NAME",0xC0020054L}, {"The error specified is not a valid Windows RPC error code." ,"RPC_NT_NOT_RPC_ERROR",0xC0020055L}, {"A UUID that is valid only on this computer has been allocated." ,"RPC_NT_UUID_LOCAL_ONLY",0x40020056L}, {"A security package specific error occurred." ,"RPC_NT_SEC_PKG_ERROR",0xC0020057L}, {"Thread is not cancelled." ,"RPC_NT_NOT_CANCELLED",0xC0020058L}, {"Invalid operation on the encoding/decoding handle." ,"RPC_NT_INVALID_ES_ACTION",0xC0030059L}, {"Incompatible version of the serializing package." ,"RPC_NT_WRONG_ES_VERSION",0xC003005AL}, {"Incompatible version of the RPC stub." ,"RPC_NT_WRONG_STUB_VERSION",0xC003005BL}, {"The RPC pipe object is invalid or corrupted." ,"RPC_NT_INVALID_PIPE_OBJECT",0xC003005CL}, {"An invalid operation was attempted on an RPC pipe object." ,"RPC_NT_INVALID_PIPE_OPERATION",0xC003005DL}, {"Unsupported RPC pipe version." ,"RPC_NT_WRONG_PIPE_VERSION",0xC003005EL}, {"The RPC pipe object has already been closed." ,"RPC_NT_PIPE_CLOSED",0xC003005FL}, {"The RPC call completed before all pipes were processed." ,"RPC_NT_PIPE_DISCIPLINE_ERROR",0xC0030060L}, {"No more data is available from the RPC pipe." ,"RPC_NT_PIPE_EMPTY",0xC0030061L}, {"Invalid asynchronous remote procedure call handle." ,"RPC_NT_INVALID_ASYNC_HANDLE",0xC0020062L}, {"Invalid asynchronous RPC call handle for this operation." ,"RPC_NT_INVALID_ASYNC_CALL",0xC0020063L}, {"Some data remains to be sent in the request buffer." ,"RPC_NT_SEND_INCOMPLETE",0x400200AFL}, {"An attempt was made to run an invalid AML opcode" ,"STATUS_ACPI_INVALID_OPCODE",0xC0140001L}, {"The AML Interpreter Stack has overflowed" ,"STATUS_ACPI_STACK_OVERFLOW",0xC0140002L}, {"An inconsistent state has occurred" ,"STATUS_ACPI_ASSERT_FAILED",0xC0140003L}, {"An attempt was made to access an array outside of its bounds" ,"STATUS_ACPI_INVALID_INDEX",0xC0140004L}, {"A required argument was not specified" ,"STATUS_ACPI_INVALID_ARGUMENT",0xC0140005L}, {"A fatal error has occurred" ,"STATUS_ACPI_FATAL",0xC0140006L}, {"An invalid SuperName was specified" ,"STATUS_ACPI_INVALID_SUPERNAME",0xC0140007L}, {"An argument with an incorrect type was specified" ,"STATUS_ACPI_INVALID_ARGTYPE",0xC0140008L}, {"An object with an incorrect type was specified" ,"STATUS_ACPI_INVALID_OBJTYPE",0xC0140009L}, {"A target with an incorrect type was specified" ,"STATUS_ACPI_INVALID_TARGETTYPE",0xC014000AL}, {"An incorrect number of arguments were specified" ,"STATUS_ACPI_INCORRECT_ARGUMENT_COUNT",0xC014000BL}, {"An address failed to translate" ,"STATUS_ACPI_ADDRESS_NOT_MAPPED",0xC014000CL}, {"An incorrect event type was specified" ,"STATUS_ACPI_INVALID_EVENTTYPE",0xC014000DL}, {"A handler for the target already exists" ,"STATUS_ACPI_HANDLER_COLLISION",0xC014000EL}, {"Invalid data for the target was specified" ,"STATUS_ACPI_INVALID_DATA",0xC014000FL}, {"An invalid region for the target was specified" ,"STATUS_ACPI_INVALID_REGION",0xC0140010L}, {"An attempt was made to access a field outside of the defined range" ,"STATUS_ACPI_INVALID_ACCESS_SIZE",0xC0140011L}, {"The Global system lock could not be acquired" ,"STATUS_ACPI_ACQUIRE_GLOBAL_LOCK",0xC0140012L}, {"An attempt was made to reinitialize the ACPI subsystem" ,"STATUS_ACPI_ALREADY_INITIALIZED",0xC0140013L}, {"The ACPI subsystem has not been initialized" ,"STATUS_ACPI_NOT_INITIALIZED",0xC0140014L}, {"An incorrect mutex was specified" ,"STATUS_ACPI_INVALID_MUTEX_LEVEL",0xC0140015L}, {"The mutex is not currently owned" ,"STATUS_ACPI_MUTEX_NOT_OWNED",0xC0140016L}, {"An attempt was made to access the mutex by a process that was not the owner" ,"STATUS_ACPI_MUTEX_NOT_OWNER",0xC0140017L}, {"An error occurred during an access to Region Space" ,"STATUS_ACPI_RS_ACCESS",0xC0140018L}, {"An attempt was made to use an incorrect table" ,"STATUS_ACPI_INVALID_TABLE",0xC0140019L}, {"The registration of an ACPI event failed" ,"STATUS_ACPI_REG_HANDLER_FAILED",0xC0140020L}, {"An ACPI Power Object failed to transition state" ,"STATUS_ACPI_POWER_REQUEST_FAILED",0xC0140021L}, {"Session name %1 is invalid." ,"STATUS_CTX_WINSTATION_NAME_INVALID",0xC00A0001L}, {"The protocol driver %1 is invalid." ,"STATUS_CTX_INVALID_PD",0xC00A0002L}, {"The protocol driver %1 was not found in the system path." ,"STATUS_CTX_PD_NOT_FOUND",0xC00A0003L}, {"The Client Drive Mapping Service Has Connected on Terminal Connection." ,"STATUS_CTX_CDM_CONNECT",0x400A0004L}, {"The Client Drive Mapping Service Has Disconnected on Terminal Connection." ,"STATUS_CTX_CDM_DISCONNECT",0x400A0005L}, {"A close operation is pending on the Terminal Connection." ,"STATUS_CTX_CLOSE_PENDING",0xC00A0006L}, {"There are no free output buffers available." ,"STATUS_CTX_NO_OUTBUF",0xC00A0007L}, {"The MODEM.INF file was not found." ,"STATUS_CTX_MODEM_INF_NOT_FOUND",0xC00A0008L}, {"The modem (%1) was not found in MODEM.INF." ,"STATUS_CTX_INVALID_MODEMNAME",0xC00A0009L}, {"The modem did not accept the command sent to it." "Verify the configured modem name matches the attached modem." ,"STATUS_CTX_RESPONSE_ERROR",0xC00A000AL}, {"The modem did not respond to the command sent to it." "Verify the modem is properly cabled and powered on." ,"STATUS_CTX_MODEM_RESPONSE_TIMEOUT",0xC00A000BL}, {"Carrier detect has failed or carrier has been dropped due to disconnect." ,"STATUS_CTX_MODEM_RESPONSE_NO_CARRIER",0xC00A000CL}, {"Dial tone not detected within required time." "Verify phone cable is properly attached and functional." ,"STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE",0xC00A000DL}, {"Busy signal detected at remote site on callback." ,"STATUS_CTX_MODEM_RESPONSE_BUSY",0xC00A000EL}, {"Voice detected at remote site on callback." ,"STATUS_CTX_MODEM_RESPONSE_VOICE",0xC00A000FL}, {"Transport driver error" ,"STATUS_CTX_TD_ERROR",0xC00A0010L}, {"The client you are using is not licensed to use this system. Your logon request is denied." ,"STATUS_CTX_LICENSE_CLIENT_INVALID",0xC00A0012L}, {"The system has reached its licensed logon limit." "Please try again later." ,"STATUS_CTX_LICENSE_NOT_AVAILABLE",0xC00A0013L}, {"The system license has expired. Your logon request is denied." ,"STATUS_CTX_LICENSE_EXPIRED",0xC00A0014L}, {"The specified session cannot be found." ,"STATUS_CTX_WINSTATION_NOT_FOUND",0xC00A0015L}, {"The specified session name is already in use." ,"STATUS_CTX_WINSTATION_NAME_COLLISION",0xC00A0016L}, {"The requested operation cannot be completed because the Terminal Connection is currently busy processing a connect, disconnect, reset, or delete operation." ,"STATUS_CTX_WINSTATION_BUSY",0xC00A0017L}, {"An attempt has been made to connect to a session whose video mode is not supported by the current client." ,"STATUS_CTX_BAD_VIDEO_MODE",0xC00A0018L}, {"The application attempted to enable DOS graphics mode." "DOS graphics mode is not supported." ,"STATUS_CTX_GRAPHICS_INVALID",0xC00A0022L}, {"The requested operation can be performed only on the system console." "This is most often the result of a driver or system DLL requiring direct console access." ,"STATUS_CTX_NOT_CONSOLE",0xC00A0024L}, {"The client failed to respond to the server connect message." ,"STATUS_CTX_CLIENT_QUERY_TIMEOUT",0xC00A0026L}, {"Disconnecting the console session is not supported." ,"STATUS_CTX_CONSOLE_DISCONNECT",0xC00A0027L}, {"Reconnecting a disconnected session to the console is not supported." ,"STATUS_CTX_CONSOLE_CONNECT",0xC00A0028L}, {"The request to control another session remotely was denied." ,"STATUS_CTX_SHADOW_DENIED",0xC00A002AL}, {"A process has requested access to a session, but has not been granted those access rights." ,"STATUS_CTX_WINSTATION_ACCESS_DENIED",0xC00A002BL}, {"The Terminal Connection driver %1 is invalid." ,"STATUS_CTX_INVALID_WD",0xC00A002EL}, {"The Terminal Connection driver %1 was not found in the system path." ,"STATUS_CTX_WD_NOT_FOUND",0xC00A002FL}, {"The requested session cannot be controlled remotely." "You cannot control your own session, a session that is trying to control your session," "a session that has no user logged on, nor control other sessions from the console." ,"STATUS_CTX_SHADOW_INVALID",0xC00A0030L}, {"The requested session is not configured to allow remote control." ,"STATUS_CTX_SHADOW_DISABLED",0xC00A0031L}, {"The RDP protocol component %2 detected an error in the protocol stream and has disconnected the client." ,"STATUS_RDP_PROTOCOL_ERROR",0xC00A0032L}, {"Your request to connect to this Terminal server has been rejected." "Your Terminal Server Client license number has not been entered for this copy of the Terminal Client." "Please call your system administrator for help in entering a valid, unique license number for this Terminal Server Client." "Click OK to continue." ,"STATUS_CTX_CLIENT_LICENSE_NOT_SET",0xC00A0033L}, {"Your request to connect to this Terminal server has been rejected." "Your Terminal Server Client license number is currently being used by another user." "Please call your system administrator to obtain a new copy of the Terminal Server Client with a valid, unique license number." "Click OK to continue." ,"STATUS_CTX_CLIENT_LICENSE_IN_USE",0xC00A0034L}, {"The remote control of the console was terminated because the display mode was changed. Changing the display mode in a remote control session is not supported." ,"STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE",0xC00A0035L}, {"Remote control could not be terminated because the specified session is not currently being remotely controlled." ,"STATUS_CTX_SHADOW_NOT_RUNNING",0xC00A0036L}, {"A device is missing in the system BIOS MPS table. This device will not be used." "Please contact your system vendor for system BIOS update." ,"STATUS_PNP_BAD_MPS_TABLE",0xC0040035L}, {"A translator failed to translate resources." ,"STATUS_PNP_TRANSLATION_FAILED",0xC0040036L}, {"A IRQ translator failed to translate resources." ,"STATUS_PNP_IRQ_TRANSLATION_FAILED",0xC0040037L}, {"Driver %2 returned invalid ID for a child device (%3)." ,"STATUS_PNP_INVALID_ID",0xC0040038L}, {"The requested section is not present in the activation context." ,"STATUS_SXS_SECTION_NOT_FOUND",0xC0150001L}, {"Windows was not able to process the application binding information." "Please refer to your System Event Log for further information." ,"STATUS_SXS_CANT_GEN_ACTCTX",0xC0150002L}, {"The application binding data format is invalid." ,"STATUS_SXS_INVALID_ACTCTXDATA_FORMAT",0xC0150003L}, {"The referenced assembly is not installed on your system." ,"STATUS_SXS_ASSEMBLY_NOT_FOUND",0xC0150004L}, {"The manifest file does not begin with the required tag and format information." ,"STATUS_SXS_MANIFEST_FORMAT_ERROR",0xC0150005L}, {"The manifest file contains one or more syntax errors." ,"STATUS_SXS_MANIFEST_PARSE_ERROR",0xC0150006L}, {"The application attempted to activate a disabled activation context." ,"STATUS_SXS_ACTIVATION_CONTEXT_DISABLED",0xC0150007L}, {"The requested lookup key was not found in any active activation context." ,"STATUS_SXS_KEY_NOT_FOUND",0xC0150008L}, {"A component version required by the application conflicts with another component version already active." ,"STATUS_SXS_VERSION_CONFLICT",0xC0150009L}, {"The type requested activation context section does not match the query API used." ,"STATUS_SXS_WRONG_SECTION_TYPE",0xC015000AL}, {"Lack of system resources has required isolated activation to be disabled for the current thread of execution." ,"STATUS_SXS_THREAD_QUERIES_DISABLED",0xC015000BL}, {"The referenced assembly could not be found." ,"STATUS_SXS_ASSEMBLY_MISSING",0xC015000CL}, {"A kernel mode component is releasing a reference on an activation context." ,"STATUS_SXS_RELEASE_ACTIVATION_CONTEXT",0x4015000DL}, {"An attempt to set the process default activation context failed because the process default activation context was already set." ,"STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET",0xC015000EL}, {"The activation context being deactivated is not the most recently activated one." ,"STATUS_SXS_EARLY_DEACTIVATION",0xC015000FL}, {"The activation context being deactivated is not active for the current thread of execution." ,"STATUS_SXS_INVALID_DEACTIVATION",0xC0150010L}, {"The activation context being deactivated has already been deactivated." ,"STATUS_SXS_MULTIPLE_DEACTIVATION",0xC0150011L}, {"The activation context of system default assembly could not be generated." ,"STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY",0xC0150012L}, {"A component used by the isolation facility has requested to terminate the process." ,"STATUS_SXS_PROCESS_TERMINATION_REQUESTED",0xC0150013L}, {"The activation context activation stack for the running thread of execution is corrupt." ,"STATUS_SXS_CORRUPT_ACTIVATION_STACK",0xC0150014L}, {"The application isolation metadata for this process or thread has become corrupt." ,"STATUS_SXS_CORRUPTION",0xC0150015L}, {"The cluster node is not valid." ,"STATUS_CLUSTER_INVALID_NODE",0xC0130001L}, {"The cluster node already exists." ,"STATUS_CLUSTER_NODE_EXISTS",0xC0130002L}, {"A node is in the process of joining the cluster." ,"STATUS_CLUSTER_JOIN_IN_PROGRESS",0xC0130003L}, {"The cluster node was not found." ,"STATUS_CLUSTER_NODE_NOT_FOUND",0xC0130004L}, {"The cluster local node information was not found." ,"STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND",0xC0130005L}, {"The cluster network already exists." ,"STATUS_CLUSTER_NETWORK_EXISTS",0xC0130006L}, {"The cluster network was not found." ,"STATUS_CLUSTER_NETWORK_NOT_FOUND",0xC0130007L}, {"The cluster network interface already exists." ,"STATUS_CLUSTER_NETINTERFACE_EXISTS",0xC0130008L}, {"The cluster network interface was not found." ,"STATUS_CLUSTER_NETINTERFACE_NOT_FOUND",0xC0130009L}, {"The cluster request is not valid for this object." ,"STATUS_CLUSTER_INVALID_REQUEST",0xC013000AL}, {"The cluster network provider is not valid." ,"STATUS_CLUSTER_INVALID_NETWORK_PROVIDER",0xC013000BL}, {"The cluster node is down." ,"STATUS_CLUSTER_NODE_DOWN",0xC013000CL}, {"The cluster node is not reachable." ,"STATUS_CLUSTER_NODE_UNREACHABLE",0xC013000DL}, {"The cluster node is not a member of the cluster." ,"STATUS_CLUSTER_NODE_NOT_MEMBER",0xC013000EL}, {"A cluster join operation is not in progress." ,"STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS",0xC013000FL}, {"The cluster network is not valid." ,"STATUS_CLUSTER_INVALID_NETWORK",0xC0130010L}, {"No network adapters are available." ,"STATUS_CLUSTER_NO_NET_ADAPTERS",0xC0130011L}, {"The cluster node is up." ,"STATUS_CLUSTER_NODE_UP",0xC0130012L}, {"The cluster node is paused." ,"STATUS_CLUSTER_NODE_PAUSED",0xC0130013L}, {"The cluster node is not paused." ,"STATUS_CLUSTER_NODE_NOT_PAUSED",0xC0130014L}, {"No cluster security context is available." ,"STATUS_CLUSTER_NO_SECURITY_CONTEXT",0xC0130015L}, {"The cluster network is not configured for internal cluster communication." ,"STATUS_CLUSTER_NETWORK_NOT_INTERNAL",0xC0130016L}, {"The cluster node has been poisoned." ,"STATUS_CLUSTER_POISONED",0xC0130017L}, {"Log service found an invalid log sector." ,"STATUS_LOG_SECTOR_INVALID",0xC01A0001L}, {"Log service encountered a log sector with invalid block parity." ,"STATUS_LOG_SECTOR_PARITY_INVALID",0xC01A0002L}, {"Log service encountered a remapped log sector." ,"STATUS_LOG_SECTOR_REMAPPED",0xC01A0003L}, {"Log service encountered a partial or incomplete log block." ,"STATUS_LOG_BLOCK_INCOMPLETE",0xC01A0004L}, {"Log service encountered an attempt access data outside the active log range." ,"STATUS_LOG_INVALID_RANGE",0xC01A0005L}, {"Log service user log marshalling buffers are exhausted." ,"STATUS_LOG_BLOCKS_EXHAUSTED",0xC01A0006L}, {"Log service encountered an attempt read from a marshalling area with an invalid read context." ,"STATUS_LOG_READ_CONTEXT_INVALID",0xC01A0007L}, {"Log service encountered an invalid log restart area." ,"STATUS_LOG_RESTART_INVALID",0xC01A0008L}, {"Log service encountered an invalid log block version." ,"STATUS_LOG_BLOCK_VERSION",0xC01A0009L}, {"Log service encountered an invalid log block." ,"STATUS_LOG_BLOCK_INVALID",0xC01A000AL}, {"Log service encountered an attempt to read the log with an invalid read mode." ,"STATUS_LOG_READ_MODE_INVALID",0xC01A000BL}, {"Log service encountered a log stream with no restart area." ,"STATUS_LOG_NO_RESTART",0x401A000CL}, {"Log service encountered a corrupted metadata file." ,"STATUS_LOG_METADATA_CORRUPT",0xC01A000DL}, {"Log service encountered a metadata file that could not be created by the log file system." ,"STATUS_LOG_METADATA_INVALID",0xC01A000EL}, {"Log service encountered a metadata file with inconsistent data." ,"STATUS_LOG_METADATA_INCONSISTENT",0xC01A000FL}, {"Log service encountered an attempt to erroneously allocate or dispose reservation space." ,"STATUS_LOG_RESERVATION_INVALID",0xC01A0010L}, {"Log service cannot delete log file or file system container." ,"STATUS_LOG_CANT_DELETE",0xC01A0011L}, {"Log service has reached the maximum allowable containers allocated to a log file." ,"STATUS_LOG_CONTAINER_LIMIT_EXCEEDED",0xC01A0012L}, {"Log service has attempted to read or write backwards past the start of the log." ,"STATUS_LOG_START_OF_LOG",0xC01A0013L}, {"Log policy could not be installed because a policy of the same type is already present." ,"STATUS_LOG_POLICY_ALREADY_INSTALLED",0xC01A0014L}, {"Log policy in question was not installed at the time of the request." ,"STATUS_LOG_POLICY_NOT_INSTALLED",0xC01A0015L}, {"The installed set of policies on the log is invalid." ,"STATUS_LOG_POLICY_INVALID",0xC01A0016L}, {"A policy on the log in question prevented the operation from completing." ,"STATUS_LOG_POLICY_CONFLICT",0xC01A0017L}, {"Log space cannot be reclaimed because the log is pinned by the archive tail." ,"STATUS_LOG_PINNED_ARCHIVE_TAIL",0xC01A0018L}, {"Log record is not a record in the log file." ,"STATUS_LOG_RECORD_NONEXISTENT",0xC01A0019L}, {"Number of reserved log records or the adjustment of the number of reserved log records is invalid." ,"STATUS_LOG_RECORDS_RESERVED_INVALID",0xC01A001AL}, {"Reserved log space or the adjustment of the log space is invalid." ,"STATUS_LOG_SPACE_RESERVED_INVALID",0xC01A001BL}, {"A new or existing archive tail or base of the active log is invalid." ,"STATUS_LOG_TAIL_INVALID",0xC01A001CL}, {"Log space is exhausted." ,"STATUS_LOG_FULL",0xC01A001DL}, {"The log could not be set to the requested size." ,"STATUS_COULD_NOT_RESIZE_LOG",0x80190009L}, {NULL,NULL,0}, }; ================================================ FILE: Project/Syser/Source/NtstatStr.h ================================================ #ifndef _NTSTATSTR_H_ #define _NTSTATSTR_H_ typedef struct _NTSTATUS_STR { char* Description; char* Name; unsigned long Code; }NTSTATUS_STR,*P_NTSTATUS_STR; extern NTSTATUS_STR gNtstatusTable[]; #endif //_NTSTATSTR_H_ ================================================ FILE: Project/Syser/Source/OHCIDevice.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "OHCIDevice.h" #include "Keyboard.h" #include "Mouse.h" COHCIDevice::COHCIDevice() { for(int n=0;n::IT FindIT; ULPOS SwapVal; ULPOS AlignPhysicalAddress,PhysicalAddressMod; AlignPhysicalAddress=(PhysicalAddress&0xFFFFF000); PhysicalAddressMod = PhysicalAddress - AlignPhysicalAddress; FindIT = m_PhyscialMemoryCacheMap.Find(AlignPhysicalAddress); if(FindIT==m_PhyscialMemoryCacheMap.End()) { if(MapToVAddr(AlignPhysicalAddress,&SwapVal)==0) return false; FindIT = m_PhyscialMemoryCacheMap.InsertUnique(AlignPhysicalAddress,SwapVal); } *VirtualAddress = *FindIT; *VirtualAddress |= PhysicalAddressMod; return true; } void COHCIDevice::Attach() { int Level; DWORD EDAddr; OHCI_ED*pED; OHCI_HCCA*pHCCA; for(TList::IT Iter=m_OHCICtrlList.Begin();Iter!=m_OHCICtrlList.End();Iter++) { //OUTPUT(WSTR("Search OHCI %08X\n"),Iter->pOHCIRegs->HCCA); if(CacheMapToVAddr(Iter->pOHCIRegs->HCCA,(ULPOS*)&pHCCA)==false) continue; for(int n=0;nIntTab[n]; while(Level>0 && EDAddr && CacheMapToVAddr(EDAddr,(ULPOS*)&pED)) { //OUTPUT(WSTR("ED %08X\n"),EDAddr); if(OHCI_IsSkipED(pED->hwINFO)==false) RecognizeOHCIDevice(pHCCA,pED); if(pED->hwNextED == EDAddr) break; EDAddr = pED->hwNextED; Level--; } } } /* for(int n=0;nhwINFO %08X pED->hwHeadP %08X pED->hwTailP %08X\n"),pED->hwINFO,pED->hwHeadP,pED->hwTailP); if(pED->hwHeadP==pED->hwTailP || MapToVAddr(pED->hwHeadP&0xFFFFFFF0,(ULPOS*)&pTD)==0) return; Length = pTD->hwBE - pTD->hwCBP + 1; if(pTD->hwINFO.DP!=2) return;//IN //OUTPUT(WSTR("Length = %X ,pTD->hwINFO.DP = %X,pTD->hwINFO = %08X , pTD->hwCBP = %08X , pTD->hwNextTD = %08X , pTD->hwBE = %08X\n"),Length,pTD->hwINFO.DP,pTD->hwINFO,pTD->hwCBP,pTD->hwNextTD,pTD->hwBE); if(Length>=4 && Length<=16 && Length!=8) { if(m_OHCIMouseCounthwINFO == pED->hwINFO) return; } AttachOHCIDevice(&m_OHCIMouse[m_OHCIMouseCount].DevInfo,pED,pTD,pHCCA); m_OHCIMouse[m_OHCIMouseCount].BtStatus = 0; m_OHCIMouseCount++; } } else if(Length==8) { if(m_OHCIKeyboardCounthwINFO == pED->hwINFO) return; } AttachOHCIDevice(&m_OHCIKeyboard[m_OHCIKeyboardCount].DevInfo,pED,pTD,pHCCA); ZeroMemory(m_OHCIKeyboard[m_OHCIKeyboardCount].PrevData,8); m_OHCIKeyboardCount++; } } } void COHCIDevice::OHCIMouseService() { OHCI_DEVICE_INFO*pDevInfo; OHCI_MOUSE_DEVICE*pMouseDev; OHCI_TD*pTD; for(int n=0;npTDListBuffer[i*OHCI_TD_LENGTH]; if(pTD->hwINFO.CC==OHCI_TD_NOERROR) { pMouseDev = &m_OHCIMouse[n]; TranslateUSBMouse((char*)&pTD[1],&pMouseDev->BtStatus); OHCIPacketDone(pDevInfo);//ָTD return; } } if(pDevInfo->pDeviceED->hwHeadP == pDevInfo->pDeviceED->hwTailP) OHCIPacketDone(pDevInfo); } } void COHCIDevice::OHCIKeyboardService() { OHCI_DEVICE_INFO*pDevInfo; OHCI_TD*pTD; for(int n=0;npTDListBuffer[i*OHCI_TD_LENGTH]; if(pTD->hwINFO.CC==OHCI_TD_NOERROR) { TranslateUSBKey(m_OHCIKeyboard[n].PrevData,(BYTE*)&pTD[1]); OHCIPacketDone(pDevInfo);//ָTD return; } } if(pDevInfo->pDeviceED->hwHeadP == pDevInfo->pDeviceED->hwTailP) OHCIPacketDone(pDevInfo); } } void COHCIDevice::OHCIPacketDone(OHCI_DEVICE_INFO*pDevInfo) { OHCI_TD*pNewTD; for(int i=0;ipTDListBuffer[i*OHCI_TD_LENGTH]; pNewTD->hwINFO = pDevInfo->OrghwINFO; pNewTD->hwINFO.EC = 0; pNewTD->hwINFO.CC = OHCI_TD_NOTACCESS; pNewTD->hwCBP = pDevInfo->TDListBufferPA+i*OHCI_TD_LENGTH+sizeof(OHCI_TD); pNewTD->hwBE = pNewTD->hwCBP+pDevInfo->Length; pNewTD->hwNextTD = pDevInfo->TDListBufferPA+(i+1)*OHCI_TD_LENGTH; } pDevInfo->pDeviceED->hwHeadP = pDevInfo->TDListBufferPA; pDevInfo->pDeviceED->hwTailP = pDevInfo->TDListBufferPA+OHCI_DEVICE_TD_COUNT*OHCI_TD_LENGTH; } void COHCIDevice::InitOHCIInputDevice(OHCI_DEVICE_INFO*pDevInfo) { ULONGLONG PhysAddr; pDevInfo->pTDListBuffer = (BYTE*) gpUserHeap[0]->AlignAllocate(OHCI_TDLIST_LENGTH,0x400); ZeroMemory(pDevInfo->pTDListBuffer,OHCI_TDLIST_LENGTH); PhysAddr = 0; MapToPAddr((ULPOS)pDevInfo->pTDListBuffer,&PhysAddr); pDevInfo->TDListBufferPA = (DWORD)PhysAddr; } void COHCIDevice::ReleaseOHCIInputDevice(OHCI_DEVICE_INFO*pDevInfo) { gpUserHeap[0]->AlignFree(pDevInfo->pTDListBuffer); } void COHCIDevice::AttachOHCIDevice(OHCI_DEVICE_INFO*pDevInfo,OHCI_ED*pED,OHCI_TD*pTD,OHCI_HCCA*pHCCA) { ULONGLONG PhysAddr; pDevInfo->OldED = *pED; pDevInfo->OrghwINFO = pTD->hwINFO; pDevInfo->pDeviceED = pED; pDevInfo->pHCCA = pHCCA; pDevInfo->Length = pTD->hwBE-pTD->hwCBP; //OUTPUT(WSTR("OHCI Attach pDeviceED %08X , pNewTD %08X\n"),pDevInfo->pDeviceED,pDevInfo->pTDListBuffer); /* if(pTD->hwBE-pTD->hwCBP==7) OUTPUT(WSTR("Found Keyboard Device!\n")); else OUTPUT(WSTR("Found Mouse Device!\n")); */ ZeroMemory(pDevInfo->pTDListBuffer,OHCI_TDLIST_LENGTH); OHCI_TD*pNewTD; for(int i=0;ipTDListBuffer[i*OHCI_TD_LENGTH]; pNewTD->hwINFO = pDevInfo->OrghwINFO; pNewTD->hwINFO.EC = 0; pNewTD->hwINFO.CC = OHCI_TD_NOTACCESS; pNewTD->hwCBP = pDevInfo->TDListBufferPA+i*OHCI_TD_LENGTH+sizeof(OHCI_TD); pNewTD->hwBE = pNewTD->hwCBP+pDevInfo->Length; pNewTD->hwNextTD = pDevInfo->TDListBufferPA+(i+1)*OHCI_TD_LENGTH; } pED->hwHeadP = pDevInfo->TDListBufferPA; pED->hwTailP = pDevInfo->TDListBufferPA+OHCI_DEVICE_TD_COUNT*OHCI_TD_LENGTH; } void COHCIDevice::DetachOHCIDevice(OHCI_DEVICE_INFO*pDevInfo) { //OUTPUT(WSTR("OHCI Detach\n")); *pDevInfo->pDeviceED = pDevInfo->OldED; } ================================================ FILE: Project/Syser/Source/OHCIDevice.h ================================================ #ifndef _OHCI_DEVICE_H_ #define _OHCI_DEVICE_H_ struct OHCI_REGS { /* control and status registers */ DWORD Revision; DWORD Control; DWORD CmdStatus; DWORD IntrStatus; DWORD IntrEnable; DWORD IntrDisable; /* memory pointers */ DWORD HCCA; DWORD ed_periodcurrent; DWORD ed_controlhead; DWORD ed_controlcurrent; DWORD ed_bulkhead; DWORD ed_bulkcurrent; DWORD DoneHead; /* frame counters */ DWORD FMInterVal; DWORD FMRemaining; DWORD FMNumber; DWORD PerioDicstart; DWORD lsthresh; }; struct OHCI_CTRL_INFO { int Bus; int DevFN; OHCI_REGS* pOHCIRegs; }; #define OHCI_IsSkipED(x) (((x)&(1<<14))!=0) #define OHCI_GetMPS(x) (((x)>>16)&0x3FF) #define OHCI_IsLowSpeed(x) (((x)&(1<<13))!=0) struct OHCI_ED { DWORD hwINFO; DWORD hwTailP; DWORD hwHeadP; DWORD hwNextED; }; struct OHCI_TD_INFO { DWORD Reserved:18; DWORD R:1; DWORD DP:2; DWORD DI:3; DWORD T:2; DWORD EC:2; DWORD CC:4; }; struct OHCI_TD { OHCI_TD_INFO hwINFO; DWORD hwCBP; DWORD hwNextTD; DWORD hwBE; }; struct OHCI_HCCA { DWORD IntTab[32]; WORD FrameNum; WORD Pad1; DWORD DoneHead; }; #define MAX_OHCI_DEVICE_FRAME_PERIOD 32 #define MAX_OHCI_MOUSE_DEVICE 8 #define MAX_OHCI_KEYBOARD_DEVICE 8 #define OHCI_DEVICE_TD_COUNT 2 #define OHCI_DATA_BUFF_LENGTH 0x20 #define OHCI_TD_LENGTH (OHCI_DATA_BUFF_LENGTH+sizeof(OHCI_TD)) #define OHCI_TDLIST_LENGTH ((OHCI_DEVICE_TD_COUNT+1)*OHCI_TD_LENGTH) struct OHCI_DEVICE_INFO { OHCI_ED OldED; OHCI_TD_INFO OrghwINFO; DWORD Length; DWORD TDListBufferPA; OHCI_HCCA*pHCCA; OHCI_ED*pDeviceED; BYTE* pTDListBuffer; }; struct OHCI_KEYBOARD_DEVICE { OHCI_DEVICE_INFO DevInfo; BYTE PrevData[8]; }; struct OHCI_MOUSE_DEVICE { OHCI_DEVICE_INFO DevInfo; char BtStatus; }; #define OHCI_TD_NOERROR 0 #define OHCI_TD_NOTACCESS 0xE /////////////////////////////////////////// //OHCI Buffer /////////////////////////////////////////// class COHCIDevice { public: COHCIDevice(); ~COHCIDevice(); public: TMap m_PhyscialMemoryCacheMap; TList m_OHCICtrlList; //OHCI Ϣ OHCI_KEYBOARD_DEVICE m_OHCIKeyboard[MAX_OHCI_KEYBOARD_DEVICE]; int m_OHCIKeyboardCount; OHCI_MOUSE_DEVICE m_OHCIMouse[MAX_OHCI_MOUSE_DEVICE]; int m_OHCIMouseCount; bool Init(); void Release(); void Attach(); void Detach(); void RecognizeOHCIDevice(OHCI_HCCA*pHCCA,OHCI_ED*pED); void OHCIMouseService(); void OHCIKeyboardService(); void OHCIPacketDone(OHCI_DEVICE_INFO*pDevInfo); void InitOHCIInputDevice(OHCI_DEVICE_INFO*pDevInfo); void ReleaseOHCIInputDevice(OHCI_DEVICE_INFO*pDevInfo); void AttachOHCIDevice(OHCI_DEVICE_INFO*pDevInfo,OHCI_ED*pED,OHCI_TD*pTD,OHCI_HCCA*pHCCA); void DetachOHCIDevice(OHCI_DEVICE_INFO*pDevInfo); bool CacheMapToVAddr(ULPOS PhysicalAddress,ULPOS* VirtualAddress); }; #endif ================================================ FILE: Project/Syser/Source/OHCIMouse.cpp ================================================ #include "stdafx.h" #include "OHCIMouse.h" ================================================ FILE: Project/Syser/Source/OHCIMouse.h ================================================ #ifndef _OHCIMOUSE_H_ #define _OHCIMOUSE_H_ #endif //_OHCIMOUSE_H_ ================================================ FILE: Project/Syser/Source/OSData.cpp ================================================ #include "StdAfx.h" #include "OSData.h" WINDOWS_MSG_ENTRY stMsgList[]= { {0x00000000,"CB_OKAY"}, {0x00000000,"LB_OKAY"}, {0x00000000,"WM_NULL"}, {0x00000001,"WM_CREATE"}, {0x00000002,"WM_DESTROY"}, {0x00000003,"WM_MOVE"}, {0x0004, "WM_SIZEWAIT"}, {0x00000005,"WM_SIZE"}, {0x00000006,"WM_ACTIVATE"}, {0x00000007,"WM_SETFOCUS"}, {0x00000008,"WM_KILLFOCUS"}, {0x0009, "WM_SETVISIBLE"}, {0x0000000A,"WM_ENABLE"}, {0x0000000B,"WM_SETREDRAW"}, {0x0000000C,"WM_SETTEXT"}, {0x0000000D,"WM_GETTEXT"}, {0x0000000E,"WM_GETTEXTLENGTH"}, {0x0000000F,"WM_PAINT"}, {0x00000010,"WM_CLOSE"}, {0x00000011,"WM_QUERYENDSESSION"}, {0x00000012,"WM_QUIT"}, {0x00000013,"WM_QUERYOPEN"}, {0x00000014,"WM_ERASEBKGND"}, {0x00000015,"WM_SYSCOLORCHANGE"}, {0x00000016,"WM_ENDSESSION"}, {0x0017, "WM_SYSTEMERROR"}, {0x00000018,"WM_SHOWWINDOW"}, {0x0019, "WM_CTLCOLOR"}, {0x0000001A,"WM_SETTINGCHANGE"}, {0x0000001A,"WM_WININICHANGE"}, {0x0000001B,"WM_DEVMODECHANGE"}, {0x0000001C,"WM_ACTIVATEAPP"}, {0x0000001D,"WM_FONTCHANGE"}, {0x0000001E,"WM_TIMECHANGE"}, {0x0000001F,"WM_CANCELMODE"}, {0x00000020,"WM_SETCURSOR"}, {0x00000021,"WM_MOUSEACTIVATE"}, {0x00000022,"WM_CHILDACTIVATE"}, {0x00000023,"WM_QUEUESYNC"}, {0x00000024,"WM_GETMINMAXINFO"}, {0x00000026,"WM_PAINTICON"}, {0x00000027,"WM_ICONERASEBKGND"}, {0x00000028,"WM_NEXTDLGCTL"}, {0x0029, "WM_ALTTABACTIVE"}, {0x0000002A,"WM_SPOOLERSTATUS"}, {0x0000002B,"WM_DRAWITEM"}, {0x0000002C,"WM_MEASUREITEM"}, {0x0000002D,"WM_DELETEITEM"}, {0x0000002E,"WM_VKEYTOITEM"}, {0x0000002F,"WM_CHARTOITEM"}, {0x0030, "WM_SETFONT"}, {0x0031, "WM_GETFONT"}, {0x0032, "WM_SETHOTKEY"}, {0x0033, "WM_GETHOTKEY"}, {0x0034, "WM_FILESYSCHANGE"}, {0x0035, "WM_ISACTIVEICON"}, {0x0036, "WM_QUERYPARKICON"}, {0x0037, "WM_QUERYDRAGICON"}, {0x0038, "WM_QUERYSAVESTATE"}, {0x0039, "WM_COMPAREITEM"}, {0x0000003D,"WM_GETOBJECT"}, {0x00000041,"WM_COMPACTING"}, {0x00000044,"WM_COMMNOTIFY"}, {0x00000046,"WM_WINDOWPOSCHANGING"}, {0x00000047,"WM_WINDOWPOSCHANGED"}, {0x00000048,"WM_POWER"}, {0x0000004A,"WM_COPYDATA"}, {0x0000004B,"WM_CANCELJOURNAL"}, {0x0000004E,"WM_NOTIFY"}, {0x00000050,"WM_INPUTLANGCHANGEREQUEST"}, {0x00000051,"WM_INPUTLANGCHANGE"}, {0x00000052,"WM_TCARD"}, {0x00000053,"WM_HELP"}, {0x00000054,"WM_USERCHANGED"}, {0x00000055,"WM_NOTIFYFORMAT"}, {0x0000007B,"WM_CONTEXTMENU"}, {0x0000007C,"WM_STYLECHANGING"}, {0x0000007D,"WM_STYLECHANGED"}, {0x0000007E,"WM_DISPLAYCHANGE"}, {0x0000007F,"WM_GETICON"}, {0x00000080,"WM_SETICON"}, {0x00000081,"WM_NCCREATE"}, {0x00000082,"WM_NCDESTROY"}, {0x00000083,"WM_NCCALCSIZE"}, {0x00000084,"WM_NCHITTEST"}, {0x00000085,"WM_NCPAINT"}, {0x00000086,"WM_NCACTIVATE"}, {0x00000087,"WM_GETDLGCODE"}, {0x00000088,"WM_SYNCPAINT"}, {0x000000A0,"WM_NCMOUSEMOVE"}, {0x000000A1,"WM_NCLBUTTONDOWN"}, {0x000000A2,"WM_NCLBUTTONUP"}, {0x000000A3,"WM_NCLBUTTONDBLCLK"}, {0x000000A4,"WM_NCRBUTTONDOWN"}, {0x000000A5,"WM_NCRBUTTONUP"}, {0x000000A6,"WM_NCRBUTTONDBLCLK"}, {0x000000A7,"WM_NCMBUTTONDOWN"}, {0x000000A8,"WM_NCMBUTTONUP"}, {0x000000A9,"WM_NCMBUTTONDBLCLK"}, {0x000000B0,"EM_GETSEL"}, {0x000000B1,"EM_SETSEL"}, {0x000000B2,"EM_GETRECT"}, {0x000000B3,"EM_SETRECT"}, {0x000000B4,"EM_SETRECTNP"}, {0x000000B5,"EM_SCROLL"}, {0x000000B6,"EM_LINESCROLL"}, {0x000000B7,"EM_SCROLLCARET"}, {0x000000B8,"EM_GETMODIFY"}, {0x000000B9,"EM_SETMODIFY"}, {0x000000BA,"EM_GETLINECOUNT"}, {0x000000BB,"EM_LINEINDEX"}, {0x000000BC,"EM_SETHANDLE"}, {0x000000BD,"EM_GETHANDLE"}, {0x000000BE,"EM_GETTHUMB"}, {0x000000C1,"EM_LINELENGTH"}, {0x000000C2,"EM_REPLACESEL"}, {0x000000C4,"EM_GETLINE"}, {0x000000C5,"EM_LIMITTEXT"}, {0x000000C5,"EM_SETLIMITTEXT"}, {0x000000C6,"EM_CANUNDO"}, {0x000000C7,"EM_UNDO"}, {0x000000C8,"EM_FMTLINES"}, {0x000000C9,"EM_LINEFROMCHAR"}, {0x000000CB,"EM_SETTABSTOPS"}, {0x000000CC,"EM_SETPASSWORDCHAR"}, {0x000000CD,"EM_EMPTYUNDOBUFFER"}, {0x000000CE,"EM_GETFIRSTVISIBLELINE"}, {0x000000CF,"EM_SETREADONLY"}, {0x000000D0,"EM_SETWORDBREAKPROC"}, {0x000000D1,"EM_GETWORDBREAKPROC"}, {0x000000D2,"EM_GETPASSWORDCHAR"}, {0x000000D3,"EM_SETMARGINS"}, {0x000000D4,"EM_GETMARGINS"}, {0x000000D5,"EM_GETLIMITTEXT"}, {0x000000D6,"EM_POSFROMCHAR"}, {0x000000D7,"EM_CHARFROMPOS"}, {0x000000D8,"EM_SETIMESTATUS"}, {0x000000D9,"EM_GETIMESTATUS"}, {0x000000F0,"BM_GETCHECK"}, {0x000000F1,"BM_SETCHECK"}, {0x000000F2,"BM_GETSTATE"}, {0x000000F3,"BM_SETSTATE"}, {0x000000F4,"BM_SETSTYLE"}, {0x000000F5,"BM_CLICK"}, {0x000000F6,"BM_GETIMAGE"}, {0x000000F7,"BM_SETIMAGE"}, {0x00000100,"WM_KEYFIRST"}, {0x00000100,"WM_KEYDOWN"}, {0x00000101,"WM_KEYUP"}, {0x00000102,"WM_CHAR"}, {0x00000103,"WM_DEADCHAR"}, {0x00000104,"WM_SYSKEYDOWN"}, {0x00000105,"WM_SYSKEYUP"}, {0x00000106,"WM_SYSCHAR"}, {0x00000107,"WM_SYSDEADCHAR"}, {0x00000108,"WM_KEYLAST"}, {0x0000010D,"WM_IME_STARTCOMPOSITION"}, {0x0000010E,"WM_IME_ENDCOMPOSITION"}, {0x0000010F,"WM_IME_COMPOSITION"}, {0x0000010F,"WM_IME_KEYLAST"}, {0x00000110,"WM_INITDIALOG"}, {0x00000111,"WM_COMMAND"}, {0x00000112,"WM_SYSCOMMAND"}, {0x00000113,"WM_TIMER"}, {0x00000114,"WM_HSCROLL"}, {0x00000115,"WM_VSCROLL"}, {0x00000116,"WM_INITMENU"}, {0x00000117,"WM_INITMENUPOPUP"}, {0x0000011F,"WM_MENUSELECT"}, {0x00000120,"WM_MENUCHAR"}, {0x00000121,"WM_ENTERIDLE"}, {0x00000122,"WM_MENURBUTTONUP"}, {0x00000123,"WM_MENUDRAG"}, {0x00000124,"WM_MENUGETOBJECT"}, {0x00000125,"WM_UNINITMENUPOPUP"}, {0x00000126,"WM_MENUCOMMAND"}, {0x00000127,"WM_KEYBOARDCUES"}, {0x00000132,"WM_CTLCOLORMSGBOX"}, {0x00000133,"WM_CTLCOLOREDIT"}, {0x00000134,"WM_CTLCOLORLISTBOX"}, {0x00000135,"WM_CTLCOLORBTN"}, {0x00000136,"WM_CTLCOLORDLG"}, {0x00000137,"WM_CTLCOLORSCROLLBAR"}, {0x00000138,"WM_CTLCOLORSTATIC"}, {0x00000140,"CB_GETEDITSEL"}, {0x00000141,"CB_LIMITTEXT"}, {0x00000142,"CB_SETEDITSEL"}, {0x00000143,"CB_ADDSTRING"}, {0x00000144,"CB_DELETESTRING"}, {0x00000145,"CB_DIR"}, {0x00000146,"CB_GETCOUNT"}, {0x00000147,"CB_GETCURSEL"}, {0x00000148,"CB_GETLBTEXT"}, {0x00000149,"CB_GETLBTEXTLEN"}, {0x0000014A,"CB_INSERTSTRING"}, {0x0000014B,"CB_RESETCONTENT"}, {0x0000014C,"CB_FINDSTRING"}, {0x0000014D,"CB_SELECTSTRING"}, {0x0000014E,"CB_SETCURSEL"}, {0x0000014F,"CB_SHOWDROPDOWN"}, {0x00000150,"CB_GETITEMDATA"}, {0x00000151,"CB_SETITEMDATA"}, {0x00000152,"CB_GETDROPPEDCONTROLRECT"}, {0x00000153,"CB_SETITEMHEIGHT"}, {0x00000154,"CB_GETITEMHEIGHT"}, {0x00000155,"CB_SETEXTENDEDUI"}, {0x00000156,"CB_GETEXTENDEDUI"}, {0x00000157,"CB_GETDROPPEDSTATE"}, {0x00000158,"CB_FINDSTRINGEXACT"}, {0x00000159,"CB_SETLOCALE"}, {0x0000015A,"CB_GETLOCALE"}, {0x0000015B,"CB_MSGMAX"}, {0x0000015B,"CB_GETTOPINDEX"}, {0x0000015C,"CB_SETTOPINDEX"}, {0x0000015D,"CB_GETHORIZONTALEXTENT"}, {0x0000015E,"CB_SETHORIZONTALEXTENT"}, {0x0000015F,"CB_GETDROPPEDWIDTH"}, {0x00000160,"CB_SETDROPPEDWIDTH"}, {0x00000161,"CB_INITSTORAGE"}, {0x00000162,"CB_MSGMAX"}, {0x00000163,"CB_MSGMAX"}, {0x00000163,"CB_MULTIPLEADDSTRING"}, {0x00000180,"LB_ADDSTRING"}, {0x00000181,"LB_INSERTSTRING"}, {0x00000182,"LB_DELETESTRING"}, {0x00000183,"LB_SELITEMRANGEEX"}, {0x00000184,"LB_RESETCONTENT"}, {0x00000185,"LB_SETSEL"}, {0x00000186,"LB_SETCURSEL"}, {0x00000187,"LB_GETSEL"}, {0x00000188,"LB_GETCURSEL"}, {0x00000189,"LB_GETTEXT"}, {0x0000018A,"LB_GETTEXTLEN"}, {0x0000018B,"LB_GETCOUNT"}, {0x0000018C,"LB_SELECTSTRING"}, {0x0000018D,"LB_DIR"}, {0x0000018E,"LB_GETTOPINDEX"}, {0x0000018F,"LB_FINDSTRING"}, {0x00000190,"LB_GETSELCOUNT"}, {0x00000191,"LB_GETSELITEMS"}, {0x00000192,"LB_SETTABSTOPS"}, {0x00000193,"LB_GETHORIZONTALEXTENT"}, {0x00000194,"LB_SETHORIZONTALEXTENT"}, {0x00000195,"LB_SETCOLUMNWIDTH"}, {0x00000196,"LB_ADDFILE"}, {0x00000197,"LB_SETTOPINDEX"}, {0x00000198,"LB_GETITEMRECT"}, {0x00000199,"LB_GETITEMDATA"}, {0x0000019A,"LB_SETITEMDATA"}, {0x0000019B,"LB_SELITEMRANGE"}, {0x0000019C,"LB_SETANCHORINDEX"}, {0x0000019D,"LB_GETANCHORINDEX"}, {0x0000019E,"LB_SETCARETINDEX"}, {0x0000019F,"LB_GETCARETINDEX"}, {0x000001A0,"LB_SETITEMHEIGHT"}, {0x000001A1,"LB_GETITEMHEIGHT"}, {0x000001A2,"LB_FINDSTRINGEXACT"}, {0x000001A5,"LB_SETLOCALE"}, {0x000001A6,"LB_GETLOCALE"}, {0x000001A7,"LB_SETCOUNT"}, {0x000001A8,"LB_INITSTORAGE"}, {0x000001A8,"LB_MSGMAX"}, {0x000001A9,"LB_ITEMFROMPOINT"}, {0x000001B0,"LB_MSGMAX"}, {0x000001B1,"LB_MULTIPLEADDSTRING"}, {0x000001B1,"LB_MSGMAX"}, {0x00000200,"WM_MOUSEMOVE"}, {0x00000200,"WM_MOUSEFIRST"}, {0x00000201,"WM_LBUTTONDOWN"}, {0x00000202,"WM_LBUTTONUP"}, {0x00000203,"WM_LBUTTONDBLCLK"}, {0x00000204,"WM_RBUTTONDOWN"}, {0x00000205,"WM_RBUTTONUP"}, {0x00000206,"WM_RBUTTONDBLCLK"}, {0x00000207,"WM_MBUTTONDOWN"}, {0x00000208,"WM_MBUTTONUP"}, {0x00000209,"WM_MOUSELAST"}, {0x00000209,"WM_MBUTTONDBLCLK"}, {0x0000020A,"WM_MOUSEWHEEL"}, {0x0000020A,"WM_MOUSELAST"}, {0x00000210,"WM_PARENTNOTIFY"}, {0x00000211,"WM_ENTERMENULOOP"}, {0x00000212,"WM_EXITMENULOOP"}, {0x00000213,"WM_NEXTMENU"}, {0x00000214,"WM_SIZING"}, {0x00000215,"WM_CAPTURECHANGED"}, {0x00000216,"WM_MOVING"}, {0x00000218,"WM_POWERBROADCAST"}, {0x00000219,"WM_DEVICECHANGE"}, {0x00000220,"WM_MDICREATE"}, {0x00000221,"WM_MDIDESTROY"}, {0x00000222,"WM_MDIACTIVATE"}, {0x00000223,"WM_MDIRESTORE"}, {0x00000224,"WM_MDINEXT"}, {0x00000225,"WM_MDIMAXIMIZE"}, {0x00000226,"WM_MDITILE"}, {0x00000227,"WM_MDICASCADE"}, {0x00000228,"WM_MDIICONARRANGE"}, {0x00000229,"WM_MDIGETACTIVE"}, {0x022A, "WM_DROPOBJECT"}, {0x022B, "WM_QUERYDROPOBJECT"}, {0x022C, "WM_BEGINDRAG"}, {0x022D, "WM_DRAGLOOP"}, {0x022E, "WM_DRAGSELECT"}, {0x022F, "WM_DRAGMOVE"}, {0x00000230,"WM_MDISETMENU"}, {0x00000231,"WM_ENTERSIZEMOVE"}, {0x00000232,"WM_EXITSIZEMOVE"}, {0x00000233,"WM_DROPFILES"}, {0x00000234,"WM_MDIREFRESHMENU"}, {0x00000281,"WM_IME_SETCONTEXT"}, {0x00000282,"WM_IME_NOTIFY"}, {0x00000283,"WM_IME_CONTROL"}, {0x00000284,"WM_IME_COMPOSITIONFULL"}, {0x00000285,"WM_IME_SELECT"}, {0x00000286,"WM_IME_CHAR"}, {0x00000288,"WM_IME_REQUEST"}, {0x00000290,"WM_IME_KEYDOWN"}, {0x00000291,"WM_IME_KEYUP"}, {0x000002A0,"WM_NCMOUSEHOVER"}, {0x000002A1,"WM_MOUSEHOVER"}, {0x000002A2,"WM_NCMOUSELEAVE"}, {0x000002A3,"WM_MOUSELEAVE"}, {0x00000300,"WM_CUT"}, {0x00000301,"WM_COPY"}, {0x00000302,"WM_PASTE"}, {0x00000303,"WM_CLEAR"}, {0x00000304,"WM_UNDO"}, {0x00000305,"WM_RENDERFORMAT"}, {0x00000306,"WM_RENDERALLFORMATS"}, {0x00000307,"WM_DESTROYCLIPBOARD"}, {0x00000308,"WM_DRAWCLIPBOARD"}, {0x00000309,"WM_PAINTCLIPBOARD"}, {0x0000030A,"WM_VSCROLLCLIPBOARD"}, {0x0000030B,"WM_SIZECLIPBOARD"}, {0x0000030C,"WM_ASKCBFORMATNAME"}, {0x0000030D,"WM_CHANGECBCHAIN"}, {0x0000030E,"WM_HSCROLLCLIPBOARD"}, {0x0000030F,"WM_QUERYNEWPALETTE"}, {0x00000310,"WM_PALETTEISCHANGING"}, {0x00000311,"WM_PALETTECHANGED"}, {0x00000312,"WM_HOTKEY"}, {0x00000317,"WM_PRINT"}, {0x00000318,"WM_PRINTCLIENT"}, {0x00000358,"WM_HANDHELDFIRST"}, {0x0000035F,"WM_HANDHELDLAST"}, {0x00000360,"WM_AFXFIRST"}, {0x0360, "WM_QUERYAFXWNDPROC"}, {0x0361, "WM_SIZEPARENT"}, {0x0362, "WM_SETMESSAGESTRING"}, {0x0363, "WM_IDLEUPDATECMDUI"}, {0x0364, "WM_INITIALUPDATE"}, {0x0365, "WM_COMMANDHELP"}, {0x0366, "WM_HELPHITTEST"}, {0x0367, "WM_EXITHELPMODE"}, {0x0368, "WM_RECALCPARENT"}, {0x0369, "WM_SIZECHILD"}, {0x036A, "WM_KICKIDLE"}, {0x036B, "WM_QUERYCENTERWND"}, {0x036C, "WM_DISABLEMODAL"}, {0x036D, "WM_FLOATSTATUS"}, {0x036E, "WM_ACTIVATETOPLEVEL"}, {0x036F, "WM_QUERY3DCONTROLS"}, {0x0000037F,"WM_AFXLAST"}, {0x00000380,"WM_PENWINFIRST"}, {0x0000038F,"WM_PENWINLAST"}, {0x03E0, "WM_DDE_FIRST"}, {0x03E0, "WM_DDE_INITIATE"}, {0x03E1, "WM_DDE_TERMINATE"}, {0x03E2, "WM_DDE_ADVISE"}, {0x03E3, "WM_DDE_UNADVISE"}, {0x03E4, "WM_DDE_ACK"}, {0x03E5, "WM_DDE_DATA"}, {0x03E6, "WM_DDE_REQUEST"}, {0x03E7, "WM_DDE_POKE"}, {0x03E8, "WM_DDE_LAST"}, {0x03E8, "WM_DDE_EXECUTE"}, {0x00000400,"WM_USER"}, {0x00000400,"TBM_GETPOS"}, {0x00000401,"CBEM_INSERTITEMA"}, {0x00000401,"SB_SETTEXTA"}, {0x00000401,"TBM_GETRANGEMIN"}, {0x00000401,"RB_INSERTBANDA"}, {0x00000401,"PBM_SETRANGE"}, {0x00000401,"HKM_SETHOTKEY"}, {0x00000401,"TTM_ACTIVATE"}, {0x00000402,"HKM_GETHOTKEY"}, {0x00000402,"CBEM_SETIMAGELIST"}, {0x00000402,"SB_GETTEXTA"}, {0x00000402,"RB_DELETEBAND"}, {0x00000402,"PBM_SETPOS"}, {0x00000402,"TBM_GETRANGEMAX"}, {0x00000403,"PBM_DELTAPOS"}, {0x00000403,"TTM_SETDELAYTIME"}, {0x00000403,"SB_GETTEXTLENGTHA"}, {0x00000403,"TBM_GETTIC"}, {0x00000403,"RB_GETBARINFO"}, {0x00000403,"HKM_SETRULES"}, {0x00000403,"CBEM_GETIMAGELIST"}, {0x00000404,"PBM_SETSTEP"}, {0x00000404,"TTM_ADDTOOLA"}, {0x00000404,"CBEM_GETITEMA"}, {0x00000404,"RB_SETBARINFO"}, {0x00000404,"TBM_SETTIC"}, {0x00000404,"SB_SETPARTS"}, {0x00000405,"RB_GETBANDINFO"}, {0x00000405,"CBEM_SETITEMA"}, {0x00000405,"PBM_STEPIT"}, {0x00000405,"TBM_SETPOS"}, {0x00000405,"TTM_DELTOOLA"}, {0x00000406,"TBM_SETRANGE"}, {0x00000406,"CBEM_GETCOMBOCONTROL"}, {0x00000406,"SB_GETPARTS"}, {0x00000406,"RB_SETBANDINFOA"}, {0x00000406,"TTM_NEWTOOLRECTA"}, {0x00000406,"PBM_SETRANGE32"}, {0x00000407,"SB_GETBORDERS"}, {0x00000407,"RB_SETPARENT"}, {0x00000407,"PBM_GETRANGE"}, {0x00000407,"TTM_RELAYEVENT"}, {0x00000407,"TBM_SETRANGEMIN"}, {0x00000407,"CBEM_GETEDITCONTROL"}, {0x00000408,"RB_HITTEST"}, {0x00000408,"CBEM_SETEXSTYLE"}, {0x00000408,"SB_SETMINHEIGHT"}, {0x00000408,"PBM_GETPOS"}, {0x00000408,"CBEM_SETEXSTYLE"}, {0x00000408,"TBM_SETRANGEMAX"}, {0x00000408,"TTM_GETTOOLINFOA"}, {0x00000409,"CBEM_GETEXSTYLE"}, {0x00000409,"CBEM_GETEXTENDEDSTYLE"}, {0x00000409,"CBEM_GETEXSTYLE"}, {0x00000409,"SB_SIMPLE"}, {0x00000409,"RB_GETRECT"}, {0x00000409,"PBM_SETBARCOLOR"}, {0x00000409,"TBM_CLEARTICS"}, {0x00000409,"TTM_SETTOOLINFOA"}, {0x0000040A,"TBM_SETSEL"}, {0x0000040A,"CBEM_HASEDITCHANGED"}, {0x0000040A,"TTM_HITTESTA"}, {0x0000040A,"RB_INSERTBANDW"}, {0x0000040A,"SB_GETRECT"}, {0x0000040B,"TTM_GETTEXTA"}, {0x0000040B,"SB_SETTEXTW"}, {0x0000040B,"RB_SETBANDINFOW"}, {0x0000040B,"TBM_SETSELSTART"}, {0x0000040B,"CBEM_INSERTITEMW"}, {0x0000040C,"RB_GETBANDCOUNT"}, {0x0000040C,"CBEM_SETITEMW"}, {0x0000040C,"TBM_SETSELEND"}, {0x0000040C,"SB_GETTEXTW"}, {0x0000040C,"TTM_UPDATETIPTEXTA"}, {0x0000040D,"SB_GETTEXTLENGTHW"}, {0x0000040D,"CBEM_GETITEMW"}, {0x0000040D,"RB_GETROWCOUNT"}, {0x0000040D,"TTM_GETTOOLCOUNT"}, {0x0000040E,"CBEM_SETEXTENDEDSTYLE"}, {0x0000040E,"TTM_ENUMTOOLSA"}, {0x0000040E,"SB_ISSIMPLE"}, {0x0000040E,"TBM_GETPTICS"}, {0x0000040E,"RB_GETROWHEIGHT"}, {0x0000040F,"SB_SETICON"}, {0x0000040F,"TBM_GETTICPOS"}, {0x0000040F,"TTM_GETCURRENTTOOLA"}, {0x00000410,"TTM_WINDOWFROMPOINT"}, {0x00000410,"TBM_GETNUMTICS"}, {0x00000410,"SB_SETTIPTEXTA"}, {0x00000410,"RB_IDTOINDEX"}, {0x00000411,"RB_GETTOOLTIPS"}, {0x00000411,"TTM_TRACKACTIVATE"}, {0x00000411,"SB_SETTIPTEXTW"}, {0x00000411,"TBM_GETSELSTART"}, {0x00000412,"RB_SETTOOLTIPS"}, {0x00000412,"TTM_TRACKPOSITION"}, {0x00000412,"TBM_GETSELEND"}, {0x00000412,"SB_GETTIPTEXTA"}, {0x00000413,"RB_SETBKCOLOR"}, {0x00000413,"TTM_SETTIPBKCOLOR"}, {0x00000413,"TBM_CLEARSEL"}, {0x00000413,"SB_GETTIPTEXTW"}, {0x00000414,"SB_GETICON"}, {0x00000414,"TTM_SETTIPTEXTCOLOR"}, {0x00000414,"TBM_SETTICFREQ"}, {0x00000414,"RB_GETBKCOLOR"}, {0x00000415,"RB_SETTEXTCOLOR"}, {0x00000415,"TTM_GETDELAYTIME"}, {0x00000415,"TBM_SETPAGESIZE"}, {0x00000416,"RB_GETTEXTCOLOR"}, {0x00000416,"TTM_GETTIPBKCOLOR"}, {0x00000416,"TBM_GETPAGESIZE"}, {0x00000417,"TTM_GETTIPTEXTCOLOR"}, {0x00000417,"TBM_SETLINESIZE"}, {0x00000417,"RB_SIZETORECT"}, {0x00000418,"TBM_GETLINESIZE"}, {0x00000418,"RB_BEGINDRAG"}, {0x00000418,"TTM_SETMAXTIPWIDTH"}, {0x00000419,"RB_ENDDRAG"}, {0x00000419,"TBM_GETTHUMBRECT"}, {0x00000419,"TTM_GETMAXTIPWIDTH"}, {0x0000041A,"RB_DRAGMOVE"}, {0x0000041A,"TBM_GETCHANNELRECT"}, {0x0000041A,"TTM_SETMARGIN"}, {0x0000041B,"TBM_SETTHUMBLENGTH"}, {0x0000041B,"TTM_GETMARGIN"}, {0x0000041B,"RB_GETBARHEIGHT"}, {0x0000041C,"TBM_GETTHUMBLENGTH"}, {0x0000041C,"TTM_POP"}, {0x0000041C,"RB_GETBANDINFOW"}, {0x0000041D,"RB_GETBANDINFOA"}, {0x0000041D,"TBM_SETTOOLTIPS"}, {0x0000041D,"TTM_UPDATE"}, {0x0000041E,"TBM_GETTOOLTIPS"}, {0x0000041E,"RB_MINIMIZEBAND"}, {0x0000041F,"TBM_SETTIPSIDE"}, {0x0000041F,"RB_MAXIMIZEBAND"}, {0x00000420,"TBM_SETBUDDY"}, {0x00000421,"TBM_GETBUDDY"}, {0x00000422,"RB_GETBANDBORDERS"}, {0x00000423,"RB_SHOWBAND"}, {0x00000425,"RB_SETPALETTE"}, {0x00000426,"RB_GETPALETTE"}, {0x00000427,"RB_MOVEBAND"}, {0x00000428,"RB_SETBANDFOCUS"}, {0x00000429,"RB_GETBANDFOCUS"}, {0x0000042A,"RB_CYCLEFOCUS"}, {0x0000042B,"RB_SETEXTENDEDSTYLE"}, {0x00000432,"TTM_ADDTOOLW"}, {0x00000433,"TTM_DELTOOLW"}, {0x00000434,"TTM_NEWTOOLRECTW"}, {0x00000435,"TTM_GETTOOLINFOW"}, {0x00000436,"TTM_SETTOOLINFOW"}, {0x00000437,"TTM_HITTESTW"}, {0x00000438,"TTM_GETTEXTW"}, {0x00000439,"TTM_UPDATETIPTEXTW"}, {0x0000043A,"TTM_ENUMTOOLSW"}, {0x0000043B,"TTM_GETCURRENTTOOLW"}, {0x00000464,"IPM_CLEARADDRESS"}, {0x00000464,"ACM_OPENA"}, {0x00000465,"UDM_SETRANGE"}, {0x00000465,"ACM_PLAY"}, {0x00000465,"IPM_SETADDRESS"}, {0x00000466,"IPM_GETADDRESS"}, {0x00000466,"ACM_STOP"}, {0x00000466,"UDM_GETRANGE"}, {0x00000467,"ACM_OPENW"}, {0x00000467,"IPM_SETRANGE"}, {0x00000467,"UDM_SETPOS"}, {0x00000468,"IPM_SETFOCUS"}, {0x00000468,"UDM_GETPOS"}, {0x00000469,"IPM_ISBLANK"}, {0x00000469,"UDM_SETBUDDY"}, {0x0000046A,"UDM_GETBUDDY"}, {0x0000046B,"UDM_SETACCEL"}, {0x0000046C,"UDM_GETACCEL"}, {0x0000046D,"UDM_SETBASE"}, {0x0000046E,"UDM_GETBASE"}, {0x0000046F,"UDM_SETRANGE32"}, {0x00000470,"UDM_GETRANGE32"}, {0x00000485,"DL_BEGINDRAG"}, {0x00000486,"DL_DRAGGING"}, {0x00000487,"DL_DROPPED"}, {0x00000488,"DL_CANCELDRAG"}, {0x00001000,"LVM_GETBKCOLOR"}, {0x00001000,"MCM_FIRST"}, {0x00001000,"LVM_FIRST"}, {0x00001000,"DTM_FIRST"}, {0x00001001,"LVM_SETBKCOLOR"}, {0x00001001,"MCM_GETCURSEL"}, {0x00001001,"DTM_GETSYSTEMTIME"}, {0x00001002,"LVM_GETIMAGELIST"}, {0x00001002,"MCM_SETCURSEL"}, {0x00001002,"DTM_SETSYSTEMTIME"}, {0x00001003,"MCM_GETMAXSELCOUNT"}, {0x00001003,"LVM_SETIMAGELIST"}, {0x00001003,"DTM_GETRANGE"}, {0x00001004,"DTM_SETRANGE"}, {0x00001004,"LVM_GETITEMCOUNT"}, {0x00001004,"MCM_SETMAXSELCOUNT"}, {0x00001005,"LVM_GETITEMA"}, {0x00001005,"DTM_SETFORMATA"}, {0x00001005,"MCM_GETSELRANGE"}, {0x00001006,"MCM_SETSELRANGE"}, {0x00001006,"DTM_SETMCCOLOR"}, {0x00001006,"LVM_SETITEMA"}, {0x00001007,"DTM_GETMCCOLOR"}, {0x00001007,"LVM_INSERTITEMA"}, {0x00001007,"MCM_GETMONTHRANGE"}, {0x00001008,"LVM_DELETEITEM"}, {0x00001008,"DTM_GETMONTHCAL"}, {0x00001008,"MCM_SETDAYSTATE"}, {0x00001009,"LVM_DELETEALLITEMS"}, {0x00001009,"DTM_SETMCFONT"}, {0x00001009,"MCM_GETMINREQRECT"}, {0x0000100A,"LVM_GETCALLBACKMASK"}, {0x0000100A,"MCM_SETCOLOR"}, {0x0000100A,"DTM_GETMCFONT"}, {0x0000100B,"LVM_SETCALLBACKMASK"}, {0x0000100B,"MCM_GETCOLOR"}, {0x0000100C,"LVM_GETNEXTITEM"}, {0x0000100C,"MCM_SETTODAY"}, {0x0000100D,"MCM_GETTODAY"}, {0x0000100E,"MCM_HITTEST"}, {0x0000100F,"LVM_SETITEMPOSITION"}, {0x0000100F,"MCM_SETFIRSTDAYOFWEEK"}, {0x00001010,"LVM_GETITEMPOSITION"}, {0x00001010,"MCM_GETFIRSTDAYOFWEEK"}, {0x00001011,"LVM_GETSTRINGWIDTHA"}, {0x00001011,"MCM_GETRANGE"}, {0x00001012,"LVM_HITTEST"}, {0x00001012,"MCM_SETRANGE"}, {0x00001013,"LVM_ENSUREVISIBLE"}, {0x00001013,"MCM_GETMONTHDELTA"}, {0x00001014,"LVM_SCROLL"}, {0x00001014,"MCM_SETMONTHDELTA"}, {0x00001015,"MCM_GETMAXTODAYWIDTH"}, {0x00001015,"LVM_REDRAWITEMS"}, {0x00001016,"LVM_ARRANGE"}, {0x00001017,"LVM_EDITLABELA"}, {0x00001018,"LVM_GETEDITCONTROL"}, {0x00001019,"LVM_GETCOLUMNA"}, {0x0000101A,"LVM_SETCOLUMNA"}, {0x0000101B,"LVM_INSERTCOLUMNA"}, {0x0000101C,"LVM_DELETECOLUMN"}, {0x0000101D,"LVM_GETCOLUMNWIDTH"}, {0x0000101D,"LVM_SETCOLUMNWIDTH"}, {0x0000101E,"LVM_GETHEADER"}, {0x00001021,"LVM_CREATEDRAGIMAGE"}, {0x00001022,"LVM_GETVIEWRECT"}, {0x00001023,"LVM_GETTEXTCOLOR"}, {0x00001024,"LVM_SETTEXTCOLOR"}, {0x00001025,"LVM_GETTEXTBKCOLOR"}, {0x00001026,"LVM_SETTEXTBKCOLOR"}, {0x00001027,"LVM_GETTOPINDEX"}, {0x00001028,"LVM_GETCOUNTPERPAGE"}, {0x00001029,"LVM_GETORIGIN"}, {0x0000102A,"LVM_UPDATE"}, {0x0000102B,"LVM_SETITEMSTATE"}, {0x0000102C,"LVM_GETITEMSTATE"}, {0x0000102D,"LVM_GETITEMTEXTA"}, {0x0000102E,"LVM_SETITEMTEXTA"}, {0x0000102F,"LVM_SETITEMCOUNT"}, {0x00001030,"LVM_SORTITEMS"}, {0x00001031,"LVM_SETITEMPOSITION32"}, {0x00001032,"LVM_GETSELECTEDCOUNT"}, {0x00001032,"DTM_SETFORMATW"}, {0x00001033,"LVM_GETITEMSPACING"}, {0x00001034,"LVM_GETISEARCHSTRINGA"}, {0x00001035,"LVM_SETICONSPACING"}, {0x00001036,"LVM_SETEXTENDEDLISTVIEWSTYLE"}, {0x00001037,"LVM_GETEXTENDEDLISTVIEWSTYLE"}, {0x00001038,"LVM_GETSUBITEMRECT"}, {0x00001039,"LVM_SUBITEMHITTEST"}, {0x0000103A,"LVM_SETCOLUMNORDERARRAY"}, {0x0000103B,"LVM_GETCOLUMNORDERARRAY"}, {0x0000103C,"LVM_SETHOTITEM"}, {0x0000103D,"LVM_GETHOTITEM"}, {0x0000103E,"LVM_SETHOTCURSOR"}, {0x0000103F,"LVM_GETHOTCURSOR"}, {0x00001040,"LVM_APPROXIMATEVIEWRECT"}, {0x00001041,"LVM_SETWORKAREAS"}, {0x00001042,"LVM_GETSELECTIONMARK"}, {0x00001043,"LVM_SETSELECTIONMARK"}, {0x00001044,"LVM_SETBKIMAGEA"}, {0x00001045,"LVM_GETBKIMAGEA"}, {0x00001046,"LVM_GETWORKAREAS"}, {0x00001047,"LVM_SETHOVERTIME"}, {0x00001048,"LVM_GETHOVERTIME"}, {0x00001049,"LVM_GETNUMBEROFWORKAREAS"}, {0x0000104A,"LVM_SETTOOLTIPS"}, {0x0000104B,"LVM_GETITEMW"}, {0x0000104C,"LVM_SETITEMW"}, {0x0000104D,"LVM_INSERTITEMW"}, {0x0000104E,"LVM_GETTOOLTIPS"}, {0x00001051,"LVM_SORTITEMSEX"}, {0x00001057,"LVM_GETSTRINGWIDTHW"}, {0x0000105F,"LVM_GETCOLUMNW"}, {0x00001060,"LVM_SETCOLUMNW"}, {0x00001061,"LVM_INSERTCOLUMNW"}, {0x00001073,"LVM_GETITEMTEXTW"}, {0x00001074,"LVM_SETITEMTEXTW"}, {0x00001075,"LVM_GETISEARCHSTRINGW"}, {0x00001076,"LVM_EDITLABELW"}, {0x0000108A,"LVM_SETBKIMAGEW"}, {0x0000108B,"LVM_GETBKIMAGEW"}, {0x00001100,"TVM_INSERTITEMA"}, {0x00001100,"TV_FIRST"}, {0x00001101,"TVM_DELETEITEM"}, {0x00001102,"TVM_EXPAND"}, {0x00001104,"TVM_GETITEMRECT"}, {0x00001105,"TVM_GETCOUNT"}, {0x00001106,"TVM_GETINDENT"}, {0x00001107,"TVM_SETINDENT"}, {0x00001108,"TVM_GETIMAGELIST"}, {0x00001109,"TVM_SETIMAGELIST"}, {0x0000110A,"TVM_GETNEXTITEM"}, {0x0000110B,"TVM_SELECTITEM"}, {0x0000110C,"TVM_GETITEMA"}, {0x0000110D,"TVM_SETITEMA"}, {0x0000110E,"TVM_EDITLABELA"}, {0x0000110F,"TVM_GETEDITCONTROL"}, {0x00001110,"TVM_GETVISIBLECOUNT"}, {0x00001111,"TVM_HITTEST"}, {0x00001112,"TVM_CREATEDRAGIMAGE"}, {0x00001113,"TVM_SORTCHILDREN"}, {0x00001114,"TVM_ENSUREVISIBLE"}, {0x00001115,"TVM_SORTCHILDRENCB"}, {0x00001116,"TVM_ENDEDITLABELNOW"}, {0x00001117,"TVM_GETISEARCHSTRINGA"}, {0x00001118,"TVM_SETTOOLTIPS"}, {0x00001119,"TVM_GETTOOLTIPS"}, {0x0000111A,"TVM_SETINSERTMARK"}, {0x0000111B,"TVM_SETITEMHEIGHT"}, {0x0000111C,"TVM_GETITEMHEIGHT"}, {0x0000111D,"TVM_SETBKCOLOR"}, {0x0000111E,"TVM_SETTEXTCOLOR"}, {0x0000111F,"TVM_GETBKCOLOR"}, {0x00001120,"TVM_GETTEXTCOLOR"}, {0x00001121,"TVM_SETSCROLLTIME"}, {0x00001122,"TVM_GETSCROLLTIME"}, {0x00001125,"TVM_SETINSERTMARKCOLOR"}, {0x00001126,"TVM_GETINSERTMARKCOLOR"}, {0x00001127,"TVM_GETITEMSTATE"}, {0x0000113E,"TVM_GETITEMW"}, {0x0000113F,"TVM_SETITEMW"}, {0x00001140,"TVM_GETISEARCHSTRINGW"}, {0x00001141,"TVM_EDITLABELW"}, {0x00001146,"TVM_INSERTITEMW"}, {0x00001200,"HDM_FIRST"}, {0x00001200,"HDM_GETITEMCOUNT"}, {0x00001201,"HDM_INSERTITEMA"}, {0x00001202,"HDM_DELETEITEM"}, {0x00001203,"HDM_GETITEMA"}, {0x00001204,"HDM_SETITEMA"}, {0x00001205,"HDM_LAYOUT"}, {0x00001206,"HDM_HITTEST"}, {0x00001207,"HDM_GETITEMRECT"}, {0x00001208,"HDM_SETIMAGELIST"}, {0x00001209,"HDM_GETIMAGELIST"}, {0x0000120A,"HDM_INSERTITEMW"}, {0x0000120B,"HDM_GETITEMW"}, {0x0000120C,"HDM_SETITEMW"}, {0x0000120F,"HDM_ORDERTOINDEX"}, {0x00001210,"HDM_CREATEDRAGIMAGE"}, {0x00001211,"HDM_GETORDERARRAY"}, {0x00001212,"HDM_SETORDERARRAY"}, {0x00001213,"HDM_SETHOTDIVIDER"}, {0x00001216,"HDM_SETFILTERCHANGETIMEOUT"}, {0x00001217,"HDM_EDITFILTER"}, {0x00001218,"HDM_CLEARFILTER"}, {0x00001300,"TCM_FIRST"}, {0x00001302,"TCM_GETIMAGELIST"}, {0x00001303,"TCM_SETIMAGELIST"}, {0x00001304,"TCM_GETITEMCOUNT"}, {0x00001305,"TCM_GETITEMA"}, {0x00001306,"TCM_SETITEMA"}, {0x00001307,"TCM_INSERTITEMA"}, {0x00001308,"TCM_DELETEITEM"}, {0x00001309,"TCM_DELETEALLITEMS"}, {0x0000130A,"TCM_GETITEMRECT"}, {0x0000130B,"TCM_GETCURSEL"}, {0x0000130C,"TCM_SETCURSEL"}, {0x0000130D,"TCM_HITTEST"}, {0x0000130E,"TCM_SETITEMEXTRA"}, {0x00001328,"TCM_ADJUSTRECT"}, {0x00001329,"TCM_SETITEMSIZE"}, {0x0000132A,"TCM_REMOVEIMAGE"}, {0x0000132B,"TCM_SETPADDING"}, {0x0000132C,"TCM_GETROWCOUNT"}, {0x0000132D,"TCM_GETTOOLTIPS"}, {0x0000132E,"TCM_SETTOOLTIPS"}, {0x0000132F,"TCM_GETCURFOCUS"}, {0x00001330,"TCM_SETCURFOCUS"}, {0x00001331,"TCM_SETMINTABWIDTH"}, {0x00001332,"TCM_DESELECTALL"}, {0x00001333,"TCM_HIGHLIGHTITEM"}, {0x00001334,"TCM_SETEXTENDEDSTYLE"}, {0x00001335,"TCM_GETEXTENDEDSTYLE"}, {0x0000133C,"TCM_GETITEMW"}, {0x0000133D,"TCM_SETITEMW"}, {0x0000133E,"TCM_INSERTITEMW"}, {0x00001400,"PGM_FIRST"}, {0x00001401,"PGM_SETCHILD"}, {0x00001402,"PGM_RECALCSIZE"}, {0x00001403,"PGM_FORWARDMOUSE"}, {0x00001404,"PGM_SETBKCOLOR"}, {0x00001405,"PGM_GETBKCOLOR"}, {0x00001406,"PGM_SETBORDER"}, {0x00001407,"PGM_GETBORDER"}, {0x00001408,"PGM_SETPOS"}, {0x00001409,"PGM_GETPOS"}, {0x0000140A,"PGM_SETBUTTONSIZE"}, {0x0000140B,"PGM_GETBUTTONSIZE"}, {0x0000140C,"PGM_GETBUTTONSTATE"}, {0x00002000,"CCM_FIRST"}, {0x00002001,"PBM_SETBKCOLOR"}, {0x00002001,"CCM_SETBKCOLOR"}, {0x00002002,"CCM_SETCOLORSCHEME"}, {0x00002003,"CCM_GETCOLORSCHEME"}, {0x00002004,"PGM_GETDROPTARGET"}, {0x00002004,"CCM_GETDROPTARGET"}, {0x00002005,"MCM_SETUNICODEFORMAT"}, {0x00002005,"RB_SETUNICODEFORMAT"}, {0x00002005,"LVM_SETUNICODEFORMAT"}, {0x00002005,"CCM_SETUNICODEFORMAT"}, {0x00002005,"UDM_SETUNICODEFORMAT"}, {0x00002005,"HDM_SETUNICODEFORMAT"}, {0x00002005,"TBM_SETUNICODEFORMAT"}, {0x00002006,"CCM_GETUNICODEFORMAT"}, {0x00002006,"RB_GETUNICODEFORMAT"}, {0x00002006,"HDM_GETUNICODEFORMAT"}, {0x00002006,"TBM_GETUNICODEFORMAT"}, {0x00002006,"UDM_GETUNICODEFORMAT"}, {0x00002006,"MCM_GETUNICODEFORMAT"}, {0x00002006,"LVM_GETUNICODEFORMAT"}, {0x00002007,"CCM_SETVERSION"}, {0x00002008,"CCM_GETVERSION"}, {0x00002009,"CCM_SETNOTIFYWINDOW"}, {0x00002200,"CCM_LAST"}, {0x00008000,"WM_APP"}, {0x00012014,"HDM_SETBITMAPMARGIN"}, {0x00012015,"HDM_GETBITMAPMARGIN"}, {0xFFFFFFFE,"CB_ERRSPACE"}, {0xFFFFFFFE,"LB_ERRSPACE"}, {0xFFFFFFFF,"CB_ERR"}, {0xFFFFFFFF,"LB_ERR"}, {0x0000,NULL} }; ================================================ FILE: Project/Syser/Source/OSData.h ================================================ #ifndef _OS_DATA_H_ #define _OS_DATA_H_ typedef struct _WINDOWS_MSG_ENTRY { int MsgNumber; PSTR MsgName; }WINDOWS_MSG_ENTRY; extern WINDOWS_MSG_ENTRY stMsgList[]; #endif ================================================ FILE: Project/Syser/Source/OSProcessThread.cpp ================================================ #include "StdAfx.h" #include "OSProcessThread.h" #include "Syser.h" #define OS_INFO_FLAG_BUILDNUMBER 0x1 DWORD gPsActiveProcessHead=0; DWORD gPsIdleProcess=0; #ifdef __cplusplus extern "C" { #endif extern DWORD gSystemFSRegisterSelector; #ifdef __cplusplus }; // extern "C" #endif OS_OFFSET_INFO OSOffsetInfo[]= { { 0,0,5,0,2195, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x20, //KPROCESS_LdtDescriptor_OFFSET; 0x50, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x54, //KPROCESS_ThreadListHead_Blink_OFFSET; 0xa0, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0xa4, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0x194, //EPROCESS_VadRoot_OFFSET; 0x128, //EPROCESS_ObjectTable_OFFSET; 0x1b0, //EPROCESS_Peb_OFFSET; 0x9c, //EPROCESS_UniqueProcessId_OFFSET; 0x1fc, //EPROCESS_ImageFileName_OFFSET; 0x44, //KTHREAD_ApcState_Process_OFFSET; 0x1a4, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1a8, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x1e4, //ETHREAD_Cid_UniqueThread_OFFSET; 0x18, //KTHREAD_InitialStack_OFFSET; 0x1c, //KTHREAD_StackLimit_OFFSET; 0x28, //KTHREAD_KernelStack_OFFSET; 0x20, //KTHREAD_Teb_OFFSET; 0xdc, //KTHREAD_ServiceTable_OFFSET; 0xffffffff, //KTHREAD_TrapFrame_OFFSET; 0xffffffff, //KTHREAD_State_OFFSET; 0x230, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, { 0,0,5,1,2600, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x20, //KPROCESS_LdtDescriptor_OFFSET; 0x50, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x54, //KPROCESS_ThreadListHead_Blink_OFFSET; 0x88, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0x8c, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0x11C, //EPROCESS_VadRoot_OFFSET; 0xc4, //EPROCESS_ObjectTable_OFFSET; 0x1b0, //EPROCESS_Peb_OFFSET; 0x84, //EPROCESS_UniqueProcessId_OFFSET; 0x174, //EPROCESS_ImageFileName_OFFSET; 0x44, //KTHREAD_ApcState_Process_OFFSET; 0x1b0, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1b4, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x1f0, //ETHREAD_Cid_UniqueThread_OFFSET; 0x18, //KTHREAD_InitialStack_OFFSET; 0x1c, //KTHREAD_StackLimit_OFFSET; 0x28, //KTHREAD_KernelStack_OFFSET; 0x20, //KTHREAD_Teb_OFFSET; 0xe0, //KTHREAD_ServiceTable_OFFSET; 0x134, //KTHREAD_TrapFrame_OFFSET; 0x2d, //KTHREAD_State_OFFSET; 0x224, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, { 0,0,6,0,6000, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x20, //KPROCESS_LdtDescriptor_OFFSET; 0x50, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x54, //KPROCESS_ThreadListHead_Blink_OFFSET; 0xa0, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0xa4, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0xf8, //EPROCESS_VadRoot_OFFSET; 0xdc, //EPROCESS_ObjectTable_OFFSET; 0x188, //EPROCESS_Peb_OFFSET; 0x9c, //EPROCESS_UniqueProcessId_OFFSET; 0x14c, //EPROCESS_ImageFileName_OFFSET; 0x48, //KTHREAD_ApcState_Process_OFFSET; 0x1c4, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1c8, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x210, //ETHREAD_Cid_UniqueThread_OFFSET; 0x28, //KTHREAD_InitialStack_OFFSET; 0x2c, //KTHREAD_StackLimit_OFFSET; 0x30, //KTHREAD_KernelStack_OFFSET; 0x84, //KTHREAD_Teb_OFFSET; 0x12C, //KTHREAD_ServiceTable_OFFSET; 0x120, //KTHREAD_TrapFrame_OFFSET; 0x5c, //KTHREAD_State_OFFSET; 0x1f4, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, { 0,1,6,1,7000, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x20, //KPROCESS_LdtDescriptor_OFFSET; 0x50, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x54, //KPROCESS_ThreadListHead_Blink_OFFSET; 0xB8, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0xBc, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0x270, //EPROCESS_VadRoot_OFFSET; 0xf4, //EPROCESS_ObjectTable_OFFSET; 0x1a0, //EPROCESS_Peb_OFFSET; 0xb4, //EPROCESS_UniqueProcessId_OFFSET; 0x164, //EPROCESS_ImageFileName_OFFSET; 0x50, //KTHREAD_ApcState_Process_OFFSET; 0x1e4, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1e8, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x230, //ETHREAD_Cid_UniqueThread_OFFSET; 0x28, //KTHREAD_InitialStack_OFFSET; 0x2c, //KTHREAD_StackLimit_OFFSET; 0x30, //KTHREAD_KernelStack_OFFSET; 0x88, //KTHREAD_Teb_OFFSET; 0x134, //KTHREAD_ServiceTable_OFFSET; 0x128, //KTHREAD_TrapFrame_OFFSET; 0x68, //KTHREAD_State_OFFSET; 0x218, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, { 0,1,6,1,7100, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x20, //KPROCESS_LdtDescriptor_OFFSET; 0x2c, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x30, //KPROCESS_ThreadListHead_Blink_OFFSET; 0xB8, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0xBc, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0x274, //EPROCESS_VadRoot_OFFSET; 0xf4, //EPROCESS_ObjectTable_OFFSET; 0x1a8, //EPROCESS_Peb_OFFSET; 0xb4, //EPROCESS_UniqueProcessId_OFFSET; 0x16c, //EPROCESS_ImageFileName_OFFSET; 0x50, //KTHREAD_ApcState_Process_OFFSET; 0x1e0, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1e4, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x230, //ETHREAD_Cid_UniqueThread_OFFSET; 0x28, //KTHREAD_InitialStack_OFFSET; 0x2c, //KTHREAD_StackLimit_OFFSET; 0x30, //KTHREAD_KernelStack_OFFSET; 0x88, //KTHREAD_Teb_OFFSET; 0xbc, //KTHREAD_ServiceTable_OFFSET; 0x128, //KTHREAD_TrapFrame_OFFSET; 0x68, //KTHREAD_State_OFFSET; 0x218, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, { 0,1,6,1,7600, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x20, //KPROCESS_LdtDescriptor_OFFSET; 0x2c, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x30, //KPROCESS_ThreadListHead_Blink_OFFSET; 0xB8, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0xBc, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0x274, //EPROCESS_VadRoot_OFFSET; 0xf4, //EPROCESS_ObjectTable_OFFSET; 0x1a8, //EPROCESS_Peb_OFFSET; 0xb4, //EPROCESS_UniqueProcessId_OFFSET; 0x16c, //EPROCESS_ImageFileName_OFFSET; 0x50, //KTHREAD_ApcState_Process_OFFSET; 0x1e0, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1e4, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x230, //ETHREAD_Cid_UniqueThread_OFFSET; 0x28, //KTHREAD_InitialStack_OFFSET; 0x2c, //KTHREAD_StackLimit_OFFSET; 0x30, //KTHREAD_KernelStack_OFFSET; 0x88, //KTHREAD_Teb_OFFSET; 0xbc, //KTHREAD_ServiceTable_OFFSET; 0x128, //KTHREAD_TrapFrame_OFFSET; 0x68, //KTHREAD_State_OFFSET; 0x218, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, { 0,1,6,1,7601, 0x18, //KPROCESS_DirectoryTableBase_OFFSET; 0x1c, //KPROCESS_LdtDescriptor_OFFSET; 0x2c, //KPROCESS_ThreadListHead_Flink_OFFSET; 0x30, //KPROCESS_ThreadListHead_Blink_OFFSET; 0xB8, //EPROCESS_ActiveProcessLinks_Flink_OFFSET; 0xBc, //EPROCESS_ActiveProcessLinks_Blink_OFFSET; 0x278, //EPROCESS_VadRoot_OFFSET; 0xf4, //EPROCESS_ObjectTable_OFFSET; 0x1a8, //EPROCESS_Peb_OFFSET; 0xb4, //EPROCESS_UniqueProcessId_OFFSET; 0x16c, //EPROCESS_ImageFileName_OFFSET; 0x50, //KTHREAD_ApcState_Process_OFFSET; 0x1e0, //KTHREAD_ThreadListEntry_Flink_OFFSET; 0x1e4, //KTHREAD_ThreadListEntry_Blink_OFFSET; 0x230, //ETHREAD_Cid_UniqueThread_OFFSET; 0x28, //KTHREAD_InitialStack_OFFSET; 0x2c, //KTHREAD_StackLimit_OFFSET; 0x30, //KTHREAD_KernelStack_OFFSET; 0x88, //KTHREAD_Teb_OFFSET; 0xbc, //KTHREAD_ServiceTable_OFFSET; 0x128, //KTHREAD_TrapFrame_OFFSET; 0x68, //KTHREAD_State_OFFSET; 0x218, //ETHREAD_StartAddress_OFFSET; 0x6cc, //TEB_Win32ClientInfo_OFFSET; 0x8, //WIN32CLIENT_hwnd_OFFSET; }, }; POS_OFFSET_INFO gOSOffsetInfo=OSOffsetInfo; bool InitOSOffsetInfo(DWORD OSMajorVersion,DWORD OSMinorVersion,DWORD OSBuildNumber) { for(int i=0;iKTHREAD_ApcState_Process_OFFSET; if(ReadDword((void*)dwFSBase,&dwLimit)==false) return false; if(Process) *Process=dwLimit; return true; } bool GetIdleProcessAndThread(DWORD* Process,DWORD* Thread) { DWORD dwLimit,dwFSBase=0; #ifdef CODE_OS_NT_DRV dwFSBase=GetSegmentBaseAddress((WORD)gSystemFSRegisterSelector,&dwLimit); if(dwFSBase==0) return false; #endif dwFSBase+=0x12c; if(ReadDword((void*)dwFSBase,&dwLimit)==false) return false; if(Thread) *Thread=dwLimit; dwFSBase = dwLimit+gOSOffsetInfo->KTHREAD_ApcState_Process_OFFSET; if(ReadDword((void*)dwFSBase,&dwLimit)==false) return false; if(Process) *Process=dwLimit; return true; } bool InitPsActiveProcessHead() { DWORD Process,Thread,dwTemp; DWORD MajorVersion=0; DWORD MinorVersion=0; DWORD BuildNumber=0; #ifdef CODE_OS_NT_DRV PsGetVersion(&MajorVersion,&MinorVersion,&BuildNumber,NULL); if(InitOSOffsetInfo(MajorVersion,MinorVersion,BuildNumber)==false) return false; #endif if(GetCurrentProcessAndThread(&Process,&Thread)==false) return false; Process+=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Blink_OFFSET; if(ReadDword((void*)Process,&dwTemp)==false) return false; gPsActiveProcessHead=dwTemp; if(GetIdleProcessAndThread(&Process,&Thread)==false) return false; gPsIdleProcess=Process; DbgPrint("Syser : PsActiveProcessHead=0x%08x PsIdleProcess=%08x\n",gPsActiveProcessHead,gPsIdleProcess); return true; } bool GetThreadInfoByETHREAD(DWORD pOSThread,PSYSER_THREAD pThread) { DWORD dwTemp,dwValue,dwProcess; if(pOSThread==0) return false; pThread->OSThread=(void*)pOSThread; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->ETHREAD_Cid_UniqueThread_OFFSET),&dwTemp)==false) return false; pThread->ThreadID=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_TrapFrame_OFFSET),&dwTemp)==false) return false; pThread->TrapFrame=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_State_OFFSET),&dwTemp)==false) return false; pThread->State=(dwTemp & 0xff); if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_InitialStack_OFFSET),&dwTemp)==false) return false; pThread->InitialStack=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_StackLimit_OFFSET),&dwTemp)==false) return false; pThread->StackLimit=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_KernelStack_OFFSET),&dwTemp)==false) return false; pThread->KernelStack=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_Teb_OFFSET),&dwTemp)==false) return false; pThread->Teb=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_ApcState_Process_OFFSET),&dwTemp)==false) return false; pThread->Process=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_ServiceTable_OFFSET),&dwTemp)==false) return false; pThread->ServiceTable=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->ETHREAD_StartAddress_OFFSET),&dwTemp)==false) return false; pThread->StartAddress=dwTemp; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_ApcState_Process_OFFSET),&dwTemp)==false) return false; dwProcess=dwTemp; dwValue = dwTemp+gOSOffsetInfo->KPROCESS_ThreadListHead_Flink_OFFSET; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_ThreadListEntry_Flink_OFFSET),&dwTemp)==false) return false; if(dwProcess==0 || dwTemp==dwValue) pThread->NextThread=0; else pThread->NextThread=dwTemp-gOSOffsetInfo->KTHREAD_ThreadListEntry_Flink_OFFSET; if(ReadDword((void*)(pOSThread+gOSOffsetInfo->KTHREAD_ThreadListEntry_Blink_OFFSET),&dwTemp)==false) return false; if(dwProcess==0|| dwTemp==dwValue) pThread->PrevThread=0; else pThread->PrevThread=dwTemp-gOSOffsetInfo->KTHREAD_ThreadListEntry_Flink_OFFSET; return true; } bool GetNextThread(PSYSER_THREAD pThread) { if(pThread->NextThread==0) return false; return GetThreadInfoByETHREAD(pThread->NextThread,pThread); } bool GetPrevThread(PSYSER_THREAD pThread) { if(pThread->PrevThread==0) return false; return GetThreadInfoByETHREAD(pThread->PrevThread,pThread); } bool GetThreadByID(DWORD ThreadID,PSYSER_THREAD pThread) { SYSER_PROCESS Process; SYSER_THREAD Thread; bool bOK,bOK1; bOK = GetFirstProcess(&Process); while(bOK) { memset(&Thread,0,sizeof(Thread)); bOK1 = GetThreadInfoByETHREAD((DWORD)Process.ThreadHead,&Thread); while(bOK1) { if(ThreadID==Thread.ThreadID) { memcpy(pThread,&Thread,sizeof(Thread)); return true; } bOK1=GetNextThread(&Thread); } bOK = GetNextProcess(&Process); } return false; } bool GetProcessInfoByEPROCESS(DWORD pOSProcess,PSYSER_PROCESS pProcess) { DWORD dwTemp,i,dwValue; BYTE Value; pProcess->OSProcess=(void*)pOSProcess; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->KPROCESS_DirectoryTableBase_OFFSET),&dwTemp)==false) return false; pProcess->PDT=dwTemp; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->EPROCESS_VadRoot_OFFSET),&dwTemp)==false) return false; pProcess->VadRoot=dwTemp; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->EPROCESS_ObjectTable_OFFSET),&dwTemp)==false) return false; pProcess->ObjectTable=dwTemp; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->EPROCESS_Peb_OFFSET),&dwTemp)==false) return false; pProcess->Peb=dwTemp; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->EPROCESS_UniqueProcessId_OFFSET),&dwTemp)==false) return false; pProcess->UniqueProcessId=dwTemp; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->KPROCESS_LdtDescriptor_OFFSET),&dwTemp)==false) return false; pProcess->LDTBaseAddress=dwTemp; if(ReadDword((void*)(pOSProcess+gOSOffsetInfo->KPROCESS_LdtDescriptor_OFFSET+4),&dwTemp)==false) return false; pProcess->LDTLimit=dwTemp; for(i=0;i<16;i++) { if(ReadByte((void*)(pOSProcess+gOSOffsetInfo->EPROCESS_ImageFileName_OFFSET+i),&Value)==false) return false; pProcess->ImageFileName[i]=Value; if(Value==0) break; if(Value=='.') { pProcess->ImageFileName[i]=0; break; } } pProcess->ImageFileName[15]=0; pProcess->ThreadHead=0; pProcess->ThreadTail=0; dwValue=pOSProcess+gOSOffsetInfo->KPROCESS_ThreadListHead_Flink_OFFSET; if(ReadDword((void*)(dwValue),&dwTemp)==false) return false; if(dwValue!=dwTemp && dwTemp) { dwTemp-=gOSOffsetInfo->KTHREAD_ThreadListEntry_Flink_OFFSET; pProcess->ThreadHead=(void*)dwTemp; dwValue=pOSProcess+gOSOffsetInfo->KPROCESS_ThreadListHead_Blink_OFFSET; if(ReadDword((void*)(dwValue),&dwTemp)==false) return false; dwTemp-=gOSOffsetInfo->KTHREAD_ThreadListEntry_Flink_OFFSET; pProcess->ThreadTail=(void*)dwTemp; } return true; } bool GetFirstProcess(PSYSER_PROCESS pProcess) { DWORD dwTemp,dwNext; memset(pProcess,0,sizeof(*pProcess)); if(ReadDword((void*)gPsActiveProcessHead,&dwTemp)==false) return false; dwTemp-=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; if(GetProcessInfoByEPROCESS(dwTemp,pProcess)==false) return false; dwTemp+=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; pProcess->Next=0; if(ReadDword((void*)dwTemp,&dwNext)) { if(dwNext==gPsIdleProcess) return true; if(dwNext==gPsActiveProcessHead) { dwNext=gPsIdleProcess; dwNext+=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; } pProcess->Next=dwNext; } return true; } bool GetNextProcess(PSYSER_PROCESS pProcess) { DWORD dwTemp,dwNext; if(pProcess->Next==0) return false; dwTemp=pProcess->Next; dwTemp-=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; if(GetProcessInfoByEPROCESS(dwTemp,pProcess)==false) return false; dwTemp+=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; pProcess->Next=0; if(ReadDword((void*)dwTemp,&dwNext)) { if(dwNext==gPsIdleProcess) return true; if(*(DWORD*)&pProcess->OSProcess==gPsIdleProcess) return true; if(dwNext==gPsActiveProcessHead) { dwNext=gPsIdleProcess; dwNext+=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; if(ReadDword((void*)gPsActiveProcessHead,&dwTemp))//߼window7 ϵ Idle Process system Process ͬ { if(dwTemp==dwNext) dwNext=0; } //if(gOSOffsetInfo->dwBuildNumber>=7000) //{ // dwNext=0; //in windows 7 ,The Idle Process's next link isn't 0 //} //else //{ // dwNext=gPsIdleProcess; //in windows xp and windows 2k and vista . The Idle Process's next link is 0 // dwNext+=gOSOffsetInfo->EPROCESS_ActiveProcessLinks_Flink_OFFSET; //} } pProcess->Next=dwNext; } return true; } bool GetProcessByID(DWORD ProcessID,PSYSER_PROCESS pProcess) { SYSER_PROCESS Process; bool bOK; bOK = GetFirstProcess(&Process); while(bOK) { if(Process.UniqueProcessId==ProcessID) { memcpy(pProcess,&Process,sizeof(SYSER_PROCESS)); return true; } bOK=GetNextProcess(&Process); } return false; } bool GetProcessByName(char* Name,PSYSER_PROCESS pProcess) { SYSER_PROCESS Process; bool bOK; bOK = GetFirstProcess(&Process); while(bOK) { if(TStrICmp(Name,Process.ImageFileName)==0) { memcpy(pProcess,&Process,sizeof(SYSER_PROCESS)); return true; } bOK=GetNextProcess(&Process); } return false; } bool GetProcessByThreadID(DWORD ThreadID,PSYSER_PROCESS pProcess) { SYSER_PROCESS Process; SYSER_THREAD Thread; bool bOK,bOK1; bOK = GetFirstProcess(&Process); while(bOK) { memset(&Thread,0,sizeof(Thread)); bOK1 = GetThreadInfoByETHREAD((DWORD)Process.ThreadHead,&Thread); while(bOK1) { if(ThreadID==Thread.ThreadID) { memcpy(pProcess,&Process,sizeof(Process)); return true; } bOK1=GetNextThread(&Thread); } bOK = GetNextProcess(&Process); } return false; } bool GetProcessByETHREAD(DWORD EThread,PSYSER_PROCESS pProcess) { SYSER_PROCESS Process; SYSER_THREAD Thread; bool bOK,bOK1; bOK = GetFirstProcess(&Process); while(bOK) { memset(&Thread,0,sizeof(Thread)); bOK1 = GetThreadInfoByETHREAD((DWORD)Process.ThreadHead,&Thread); while(bOK1) { if(EThread==(DWORD)Thread.OSThread) { memcpy(pProcess,&Process,sizeof(Process)); return true; } bOK1=GetNextThread(&Thread); } bOK = GetNextProcess(&Process); } return false; } bool GetCurrentProcessInfo(PSYSER_PROCESS pProcess) { DWORD dwCurProc,dwCurThread; memset(pProcess,0,sizeof(*pProcess)); if(GetCurrentProcessAndThread(&dwCurProc,&dwCurThread)) { return GetProcessInfoByEPROCESS(dwCurProc,pProcess); } return false; } bool GetCurrentThreadInfo(PSYSER_THREAD pThread) { DWORD dwCurProc,dwCurThread; memset(pThread,0,sizeof(*pThread)); if(GetCurrentProcessAndThread(&dwCurProc,&dwCurThread)) { return GetThreadInfoByETHREAD(dwCurThread,pThread); } return false; } bool GetProcessByEPROCESS(DWORD EProcess,PSYSER_PROCESS pProcess) { SYSER_PROCESS Process; bool bOK; bOK = GetFirstProcess(&Process); while(bOK) { if((DWORD)Process.OSProcess == EProcess) { memcpy(pProcess,&Process,sizeof(SYSER_PROCESS)); return true; } bOK=GetNextProcess(&Process); } return false; } #ifdef CODE_OS_NT_DRV int thread_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { WCHAR Title[]=WSTR("TID Krnl TEB StackBtm StkTop StackPtr User TEB StartEIP State Process(Id)\n"); SYSER_PROCESS pProcess; SYSER_THREAD pThread; WCHAR Name[17]; bool bOK,bOK1; DWORD dwCount=0; DWORD dwCurThread,dwCurProcess; GetCurrentProcessAndThread(&dwCurProcess,&dwCurThread); if(argc==1) { OUTPUT(Title); bOK = GetFirstProcess(&pProcess); while(bOK) { TStrCpyLimit(Name,pProcess.ImageFileName,16); memset(&pThread,0,sizeof(pThread)); bOK1 = GetThreadInfoByETHREAD((DWORD)pProcess.ThreadHead,&pThread); while(bOK1) { if(dwCurThread!=(DWORD)pThread.OSThread) { OUTPUT(WSTR("%04x %08x %08x %08x %08x %08x %08x %d %s(%2x)\n"),pThread.ThreadID, pThread.OSThread, pThread.StackLimit, pThread.InitialStack, pThread.KernelStack, pThread.Teb, pThread.StartAddress, pThread.State, Name,pProcess.UniqueProcessId); } else { OUTPUT(WSTR("%<7>%04x %08x %08x %08x %08x %08x %08x %d %s(%2x)\n"),pThread.ThreadID, pThread.OSThread, pThread.StackLimit, pThread.InitialStack, pThread.KernelStack, pThread.Teb, pThread.StartAddress, pThread.State, Name,pProcess.UniqueProcessId); } dwCount++; bOK1=GetNextThread(&pThread); } bOK = GetNextProcess(&pProcess); } if(dwCount) OUTPUT(WSTR("thread totals (%d)\n"),dwCount); return 0; } argc--; int i; SYSER_VALUE_TYPE ValueType; DWORD dwValue; bool bTitle=false; CDbgProcess*pDbgProcess; WCHAR szBuffer[MAX_FN_LEN]; #ifdef CODE_OS_NT_DRV for(i=0;im_SysInfo.GetProcess(argv[i+1]); if(pDbgProcess) { dwValue=(DWORD)pDbgProcess->GetEPROCESS(); } else { TStrCpyLimit(szBuffer,argv[i+1],MAX_FN_LEN); TStrCat(szBuffer,".exe"); pDbgProcess=pSyser->m_SysInfo.GetProcess(szBuffer); if(pDbgProcess) { dwValue=(DWORD)pDbgProcess->GetEPROCESS(); } else continue; } ValueType=VALUE_TYPE_PROCESS_PTR; } else { ValueType = GetValueType(dwValue); if(ValueType==VALUE_TYPE_UNKNOW || ValueType==VALUE_TYPE_HWND_ID || ValueType == VALUE_TYPE_HWND_PTR) continue; } #endif bOK=false; switch(ValueType) { case VALUE_TYPE_THREAD_PTR: bOK=GetThreadInfoByETHREAD(dwValue,&pThread); if(bOK) bOK=GetProcessByEPROCESS(pThread.Process,&pProcess); break; case VALUE_TYPE_THREAD_ID: bOK = GetThreadByID(dwValue,&pThread); if(bOK) bOK=GetProcessByEPROCESS(pThread.Process,&pProcess); break; case VALUE_TYPE_PROCESS_ID: bOK=GetProcessByID(dwValue,&pProcess); break; case VALUE_TYPE_PROCESS_PTR: bOK=GetProcessInfoByEPROCESS(dwValue,&pProcess); break; } if(bOK==false) continue; if(bTitle==false) { bTitle=true; OUTPUT(Title); } TStrCpyLimit(Name,pProcess.ImageFileName,16); if(ValueType==VALUE_TYPE_THREAD_PTR || VALUE_TYPE_THREAD_ID==ValueType) { OUTPUT(WSTR("%04x %08x %08x %08x %08x %08x %08x %d %s(%2x)\n"),pThread.ThreadID, pThread.OSThread, pThread.StackLimit, pThread.InitialStack, pThread.KernelStack, pThread.Teb, pThread.StartAddress, pThread.State, Name,pProcess.UniqueProcessId); dwCount++; } else { memset(&pThread,0,sizeof(pThread)); bOK1 = GetThreadInfoByETHREAD((DWORD)pProcess.ThreadHead,&pThread); while(bOK1) { OUTPUT(WSTR("%04x %08x %08x %08x %08x %08x %08x %d %s(%2x)\n"),pThread.ThreadID, pThread.OSThread, pThread.StackLimit, pThread.InitialStack, pThread.KernelStack, pThread.Teb, pThread.StartAddress, pThread.State, Name,pProcess.UniqueProcessId); bOK1=GetNextThread(&pThread); dwCount++; } } } if(dwCount) OUTPUT(WSTR("thread totals (%d)\n"),dwCount); return 0; } #endif SYSER_VALUE_TYPE FindHwndType(DWORD dwHwnd,DWORD Value) { SYSER_HWND_INFO HwndInfo; SYSER_VALUE_TYPE Type; while(dwHwnd && GetHwndInfoByWndStruct(*(void**)&dwHwnd,&HwndInfo)) { if(Value==dwHwnd) return VALUE_TYPE_HWND_PTR; if(Value==HwndInfo.hWnd) return VALUE_TYPE_HWND_ID; Type = FindHwndType((DWORD)HwndInfo.ChildHwnd,Value); if(Type==VALUE_TYPE_HWND_PTR || Type==VALUE_TYPE_HWND_ID) return Type; dwHwnd=(DWORD)HwndInfo.NextHwnd; } return VALUE_TYPE_UNKNOW; } SYSER_VALUE_TYPE IsHwndValueType(DWORD Value) { BOOL bOK; gpSyser->InitOSHwndRoot(); SYSER_HWND_INFO HwndInfo; #ifdef CODE_OS_NT_DRV CDbgProcess*pDbgProcess; pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("csrss")); if(pDbgProcess==NULL) { pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("explorer")); if(pDbgProcess==NULL) return VALUE_TYPE_UNKNOW; } gpSyser->MapToProcess(pDbgProcess); #endif DWORD dwHwnd=gpSyser->m_OSHwndRoot; return FindHwndType(dwHwnd,Value); } SYSER_VALUE_TYPE GetValueType(DWORD Value) { SYSER_PROCESS pProcess; SYSER_THREAD pThread; BOOL bOK,bOK1; bOK = GetFirstProcess(&pProcess); while(bOK) { if(Value==(DWORD)pProcess.OSProcess) return VALUE_TYPE_PROCESS_PTR; if(Value==(DWORD)pProcess.UniqueProcessId) return VALUE_TYPE_PROCESS_ID; memset(&pThread,0,sizeof(pThread)); bOK1 = GetThreadInfoByETHREAD((DWORD)pProcess.ThreadHead,&pThread); while(bOK1) { if(Value==(DWORD)pThread.ThreadID) return VALUE_TYPE_THREAD_ID; if(Value==(DWORD)pThread.OSThread) return VALUE_TYPE_THREAD_PTR; bOK1=GetNextThread(&pThread); } bOK = GetNextProcess(&pProcess); } return IsHwndValueType(Value); } DWORD GetEProcessPointer(WCHAR* args) { #ifdef CODE_OS_NT_DRV SYSER_PROCESS pProcess; SYSER_THREAD pThread; SYSER_VALUE_TYPE ValueType; DWORD dwValue=0; bool bOK; CDbgProcess*pDbgProcess; WCHAR szBuffer[MAX_FN_LEN]; if(args==NULL) return 0; if(CALCEXP(args,&dwValue)==FALSE) { pDbgProcess=gpSyser->m_SysInfo.GetProcess(args); if(pDbgProcess) { dwValue=(DWORD)pDbgProcess->GetEPROCESS(); } else { TStrCpyLimit(szBuffer,args,MAX_FN_LEN); TStrCat(szBuffer,".exe"); pDbgProcess=gpSyser->m_SysInfo.GetProcess(szBuffer); if(pDbgProcess) { dwValue=(DWORD)pDbgProcess->GetEPROCESS(); } } return dwValue; } else { ValueType = GetValueType(dwValue); if(ValueType==VALUE_TYPE_UNKNOW || ValueType==VALUE_TYPE_HWND_ID || ValueType == VALUE_TYPE_HWND_PTR) return 0; } bOK=false; switch(ValueType) { case VALUE_TYPE_THREAD_PTR: bOK=GetThreadInfoByETHREAD(dwValue,&pThread); if(bOK) bOK=GetProcessByEPROCESS(pThread.Process,&pProcess); break; case VALUE_TYPE_THREAD_ID: bOK = GetThreadByID(dwValue,&pThread); if(bOK) bOK=GetProcessByEPROCESS(pThread.Process,&pProcess); break; case VALUE_TYPE_PROCESS_ID: bOK=GetProcessByID(dwValue,&pProcess); break; case VALUE_TYPE_PROCESS_PTR: bOK=GetProcessInfoByEPROCESS(dwValue,&pProcess); break; } return *(DWORD*)&pProcess.OSProcess; #endif return 0; } ================================================ FILE: Project/Syser/Source/OSProcessThread.h ================================================ #ifndef __OSPROCESSTHREAD__H__ #define __OSPROCESSTHREAD__H__ typedef struct _SYSER_KTRAP_FRAME /* sizeof 0000008c 140 */ { /* off 0x0000 */ unsigned long DbgEbp; /* off 0x0004 */ unsigned long DbgEip; /* off 0x0008 */ unsigned long DbgArgMark; /* off 0x000c */ unsigned long DbgArgPointer; /* off 0x0010 */ unsigned short TempSegCs; /* off 0x0012 */ unsigned char Logging; /* off 0x0013 */ unsigned char Reserved; /* off 0x0014 */ unsigned long TempEsp; /* off 0x0018 */ unsigned long Dr0; /* off 0x001c */ unsigned long Dr1; /* off 0x0020 */ unsigned long Dr2; /* off 0x0024 */ unsigned long Dr3; /* off 0x0028 */ unsigned long Dr6; /* off 0x002c */ unsigned long Dr7; /* off 0x0030 */ unsigned long SegGs; /* off 0x0034 */ unsigned long SegEs; /* off 0x0038 */ unsigned long SegDs; /* off 0x003c */ unsigned long Edx; /* off 0x0040 */ unsigned long Ecx; /* off 0x0044 */ unsigned long Eax; /* off 0x0048 */ unsigned long PreviousPreviousMode; ///* off 0x004c */ struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* off 0x004c */ void* ExceptionList; /* off 0x0050 */ unsigned long SegFs; /* off 0x0054 */ unsigned long Edi; /* off 0x0058 */ unsigned long Esi; /* off 0x005c */ unsigned long Ebx; /* off 0x0060 */ unsigned long Ebp; /* off 0x0064 */ unsigned long ErrCode; /* off 0x0068 */ unsigned long Eip; /* off 0x006c */ unsigned long SegCs; /* off 0x0070 */ unsigned long EFlags; /* off 0x0074 */ unsigned long HardwareEsp; /* off 0x0078 */ unsigned long HardwareSegSs; /* off 0x007c */ unsigned long V86Es; /* off 0x0080 */ unsigned long V86Ds; /* off 0x0084 */ unsigned long V86Fs; /* off 0x0088 */ unsigned long V86Gs; }SYSER_KTRAP_FRAME,*PSYSER_KTRAP_FRAME; typedef struct _SYSER_PROCESS { void* OSProcess; DWORD UniqueProcessId; DWORD PDT; DWORD LDTBaseAddress; DWORD LDTLimit; char ImageFileName[16]; DWORD Next; DWORD VadRoot; DWORD Peb; void* ThreadHead; void* ThreadTail; DWORD ObjectTable; }SYSER_PROCESS,*PSYSER_PROCESS; typedef struct _SYSER_THREAD { void* OSThread; DWORD ThreadID; DWORD InitialStack; DWORD StackLimit; DWORD KernelStack; DWORD Teb; DWORD Process; DWORD ServiceTable; DWORD NextThread; DWORD PrevThread; DWORD StartAddress; DWORD TrapFrame; DWORD State; }SYSER_THREAD,*PSYSER_THREAD; bool InitPsActiveProcessHead(); bool GetCurrentProcessAndThread(DWORD* Process,DWORD* Thread); bool GetIdleProcessAndThread(DWORD* Process,DWORD* Thread); bool GetNextProcess(PSYSER_PROCESS pProcess); bool GetFirstProcess(PSYSER_PROCESS pProcess); bool GetThreadInfoByETHREAD(DWORD pOSThread,PSYSER_THREAD pThread); bool GetProcessInfoByEPROCESS(DWORD pOSProcess,PSYSER_PROCESS pProcess); bool GetNextThread(PSYSER_THREAD pThread); bool GetPrevThread(PSYSER_THREAD pThread); bool GetThreadByID(DWORD ThreadID,PSYSER_THREAD pThread); bool GetProcessByThreadID(DWORD ThreadID,PSYSER_PROCESS pProcess); bool GetProcessByETHREAD(DWORD EThread,PSYSER_PROCESS pProcess); bool GetCurrentProcessInfo(PSYSER_PROCESS pProcess); bool GetCurrentThreadInfo(PSYSER_THREAD pThread); extern DWORD gPsActiveProcessHead; extern DWORD gPsIdleProcess; //extern DWORD KTHREAD_ApcState_Process_OFFSET; //extern DWORD EPROCESS_ActiveProcessLinks_Blink_OFFSET; //extern DWORD EPROCESS_ActiveProcessLinks_Flink_OFFSET; typedef struct _OS_OFFSET_INFO { DWORD cbSize; DWORD dwFlags; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD KPROCESS_DirectoryTableBase_OFFSET; DWORD KPROCESS_LdtDescriptor_OFFSET; DWORD KPROCESS_ThreadListHead_Flink_OFFSET; DWORD KPROCESS_ThreadListHead_Blink_OFFSET; DWORD EPROCESS_ActiveProcessLinks_Flink_OFFSET; DWORD EPROCESS_ActiveProcessLinks_Blink_OFFSET; DWORD EPROCESS_VadRoot_OFFSET; DWORD EPROCESS_ObjectTable_OFFSET; DWORD EPROCESS_Peb_OFFSET; DWORD EPROCESS_UniqueProcessId_OFFSET; DWORD EPROCESS_ImageFileName_OFFSET; DWORD KTHREAD_ApcState_Process_OFFSET; DWORD KTHREAD_ThreadListEntry_Flink_OFFSET; DWORD KTHREAD_ThreadListEntry_Blink_OFFSET; DWORD ETHREAD_Cid_UniqueThread_OFFSET; DWORD KTHREAD_InitialStack_OFFSET; DWORD KTHREAD_StackLimit_OFFSET; DWORD KTHREAD_KernelStack_OFFSET; DWORD KTHREAD_Teb_OFFSET; DWORD KTHREAD_ServiceTable_OFFSET; DWORD KTHREAD_TrapFrame_OFFSET; DWORD KTHREAD_State_OFFSET; DWORD ETHREAD_StartAddress_OFFSET; DWORD TEB_Win32ClientInfo_OFFSET; DWORD WIN32CLIENT_hwnd_OFFSET; }OS_OFFSET_INFO,*POS_OFFSET_INFO; extern POS_OFFSET_INFO gOSOffsetInfo; typedef enum _SYSER_VALUE_TYPE { VALUE_TYPE_PROCESS_PTR, VALUE_TYPE_THREAD_PTR, VALUE_TYPE_HWND_PTR, VALUE_TYPE_PROCESS_ID, VALUE_TYPE_THREAD_ID, VALUE_TYPE_HWND_ID, VALUE_TYPE_UNKNOW, }SYSER_VALUE_TYPE; SYSER_VALUE_TYPE GetValueType(DWORD Value); bool GetProcessByID(DWORD ProcessID,PSYSER_PROCESS pProcess); bool GetProcessByEPROCESS(DWORD EProcess,PSYSER_PROCESS pProcess); bool GetProcessByName(char* Name,PSYSER_PROCESS pProcess); bool InitOSOffsetInfo(DWORD OSMajorVersion,DWORD OSMinorVersion,DWORD OSBuildNumber); class CSyser; int thread_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser); DWORD GetEProcessPointer(WCHAR* args); #endif //__OSPROCESSTHREAD__H__ ================================================ FILE: Project/Syser/Source/ObjFileView.cpp ================================================ #include "stdafx.h" #include "ObjFileView.h" #include "../../SyserApp/Source/NoPDBSymbol.h" STFLAGSARRAY CObjFileView::X86X87RegisterArray[]={ {"none",0 ,"none"}, {"AL",1 ,"AL"}, {"CL",2 ,"CL"}, {"DL",3 ,"DL"}, {"BL",4 ,"BL"}, {"AH",5 ,"AH"}, {"CH",6 ,"CH"}, {"DH",7 ,"DH"}, {"BH",8 ,"BH"}, {"AX",9 ,"AX"}, {"CX",10 ,"CX"}, {"DX",11 ,"DX"}, {"BX",12 ,"BX"}, {"SP",13 ,"SP"}, {"BP",14 ,"BP"}, {"SI",15 ,"SI"}, {"DI",16 ,"DI"}, {"EAX",17 ,"EAX"}, {"ECX",18 ,"ECX"}, {"EDX",19 ,"EDX"}, {"EBX",20 ,"EBX"}, {"ESP",21 ,"ESP"}, {"EBP",22 ,"EBP"}, {"ESI",23 ,"ESI"}, {"EDI",24 ,"EDI"}, {"ES",25 ,"ES"}, {"CS",26 ,"CS"}, {"SS",27 ,"SS"}, {"DS",28 ,"DS"}, {"FS",29 ,"FS"}, {"GS",30 ,"GS"}, {"IP",31 ,"IP"}, {"FLAGS",32 ,"FLAGS"}, {"EIP",33 ,"EIP"}, {"EFLAGS",34 ,"EFLAGS"}, {"TEMP",40 ,"TEMP"}, {"TEMPH",41 ,"TEMPH"}, {"QUOTE",42 ,"QUOTE"}, {"Reserved",43 ,"Reserved"}, {"Reserved",44 ,"Reserved"}, {"Reserved",45 ,"Reserved"}, {"Reserved",46 ,"Reserved"}, {"Reserved",47 ,"Reserved"}, {"CR0",80 ,"CR0"}, {"CR1",81 ,"CR1"}, {"CR2",82 ,"CR2"}, {"CR3",83 ,"CR3"}, {"DR0",90 ,"DR0"}, {"DR1",91 ,"DR1"}, {"DR2",92 ,"DR2"}, {"DR3",93 ,"DR3"}, {"DR4",94 ,"DR4"}, {"DR5",95 ,"DR5"}, {"DR6",96 ,"DR6"}, {"DR7",97 ,"DR7"}, {"ST(0)",128 ,"ST(0)"}, {"ST(2)",130 ,"ST(2)"}, {"ST(3)",131 ,"ST(3)"}, {"ST(4)",132 ,"ST(4)"}, {"ST(5)",133 ,"ST(5)"}, {"ST(6)",134 ,"ST(6)"}, {"ST(7)",135 ,"ST(7)"}, {"CONTROL",136 ,"CONTROL"}, {"STATUS",137 ,"STATUS"}, {"TAG",138 ,"TAG"}, {"FPIP",139 ,"FPIP"}, {"FPCS",140 ,"FPCS"}, {"FPDO",141 ,"FPDO"}, {"FPDS",142 ,"FPDS"}, {"ISEM",143 ,"ISEM"}, {"FPEIP",144 ,"FPEIP"}, {"FPEDO",145 ,"FPEDO"}, }; STFLAGSARRAY CObjFileView::COMPILE_LanguageArray[]={ {"C",0 ,"C"}, {"C++",1 ,"C++"}, {"Fortran",2 ,"Fortran"}, {"Masm",3 ,"Masm"}, {"Pascal",4 ,"Pascal"}, {"Basic",5 ,"Basic"}, {"Cobol",6 ,"Cobol"}, }; STFLAGSARRAY CObjFileView::COMPILE_machineArray[]={ {"Intel 8080", 0x00 ,"Intel 8080"}, {"Intel 8086", 0x01 ,"Intel 8086"}, {"Intel 80286", 0x02 ,"Intel 80286"}, {"Intel 80386", 0x03 ,"Intel 80386"}, {"Intel 80486", 0x04 ,"Intel 80486"}, {"Intel Pentium", 0x05 ,"Intel Pentium"}, {"Intel Pentium Pro", 0x06 ,"Intel Pentium Pro"}, {"MIPS R4000", 0x10 ,"MIPS R4000"}, {"Reserved for future MIPS processor", 0x11 ,"Reserved for future MIPS processor"}, {"Reserved for future MIPS processor", 0x12 ,"Reserved for future MIPS processor"}, {"MC68000", 0x20 ,"MC68000"}, {"MC68010", 0x21 ,"MC68010"}, {"MC68020", 0x22 ,"MC68020"}, {"MC68030", 0x23 ,"MC68030"}, {"MC68040", 0x24 ,"MC68040"}, {"DEC Alpha", 0x30 ,"DEC Alpha"}, {"PPC601", 0x40 ,"PPC601"}, {"PPC603", 0x41 ,"PPC603"}, {"PPC604", 0x42 ,"PPC604"}, {"PPC620", 0x43 ,"PPC620"}, }; STFLAGSARRAY CObjFileView::MachineTypeArray[]={ {"IMAGE_FILE_MACHINE_UNKNOWN", 0x0 ,"Contents assumed to be applicable to any machine type. "}, {"IMAGE_FILE_MACHINE_ALPHA", 0x184 ,"Alpha AXP?. "}, {"IMAGE_FILE_MACHINE_ARM", 0x1c0 ,""}, {"IMAGE_FILE_MACHINE_ALPHA64", 0x284 ,"Alpha AXP? 64-bit. "}, {"IMAGE_FILE_MACHINE_I386", 0x14c ,"Intel 386 or later, and compatible processors. "}, {"IMAGE_FILE_MACHINE_IA64", 0x200 ,"Intel IA64? "}, {"IMAGE_FILE_MACHINE_M68K", 0x268 ,"Motorola 68000 series. "}, {"IMAGE_FILE_MACHINE_MIPS16", 0x266 ,""}, {"IMAGE_FILE_MACHINE_MIPSFPU", 0x366 ,"MIPS with FPU "}, {"IMAGE_FILE_MACHINE_MIPSFPU16", 0x466 ,"MIPS16 with FPU "}, {"IMAGE_FILE_MACHINE_POWERPC", 0x1f0 ,"Power PC, little endian. "}, {"IMAGE_FILE_MACHINE_R3000", 0x162 ,""}, {"IMAGE_FILE_MACHINE_R4000", 0x166 ,"MIPS? little endian. "}, {"IMAGE_FILE_MACHINE_R10000", 0x168 ,""}, {"IMAGE_FILE_MACHINE_SH3", 0x1a2 ,"Hitachi SH3 "}, {"IMAGE_FILE_MACHINE_SH4", 0x1a6 ,"Hitachi SH4 "}, {"IMAGE_FILE_MACHINE_THUMB", 0x1c2,""}, }; STFLAGSARRAY CObjFileView::FileHeaderCharacteristicsArray[]={ {"IMAGE_FILE_RELOCS_STRIPPED", 0x0001 ,"Image only, Windows CE, Windows NT and above. Indicates that the file does not contain base relocations and must therefore be loaded at its preferred base address. If the base address is not available, the loader reports an error. Operating systems running on top of MS-DOS (Win32s?) are generally not able to use the preferred base address and so cannot run these images. However, beginning with version 4.0, Windows will use an application's preferred base address. The default behavior of the linker is to strip base relocations from EXEs. "}, {"IMAGE_FILE_EXECUTABLE_IMAGE", 0x0002 ,"Image only. Indicates that the image file is valid and can be run. If this flag is not set, it generally indicates a linker error. "}, {"IMAGE_FILE_LINE_NUMS_STRIPPED", 0x0004 ,"COFF line numbers have been removed. "}, {"IMAGE_FILE_LOCAL_SYMS_STRIPPED", 0x0008 ,"COFF symbol table entries for local symbols have been removed. "}, {"IMAGE_FILE_AGGRESSIVE_WS_TRIM", 0x0010 ,"Aggressively trim working set. "}, {"IMAGE_FILE_LARGE_ADDRESS_AWARE", 0x0020 ,"App can handle > 2gb addresses. "}, {"IMAGE_FILE_16BIT_MACHINE", 0x0040 ,"Use of this flag is reserved for future use. "}, {"IMAGE_FILE_BYTES_REVERSED_LO", 0x0080 ,"Little endian: LSB precedes MSB in memory. "}, {"IMAGE_FILE_32BIT_MACHINE", 0x0100 ,"Machine based on 32-bit-word architecture. "}, {"IMAGE_FILE_DEBUG_STRIPPED", 0x0200 ,"Debugging information removed from image file. "}, {"IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP", 0x0400 ,"If image is on removable media, copy and run from swap file. "}, {"IMAGE_FILE_SYSTEM", 0x1000 ,"The image file is a system file, not a user program. "}, {"IMAGE_FILE_DLL", 0x2000 ,"The image file is a dynamic-link library (DLL). Such files are considered executable files for almost all purposes, although they cannot be directly run. "}, {"IMAGE_FILE_UP_SYSTEM_ONLY", 0x4000 ,"File should be run only on a UP machine. "}, {"IMAGE_FILE_BYTES_REVERSED_HI", 0x8000 ,"Big endian: MSB precedes LSB in memory. "}, }; STFLAGSARRAY CObjFileView::RleFlagsArray[]={ {"IMAGE_REL_I386_ABSOLUTE", 0x0000 ,"This relocation is ignored. "}, {"IMAGE_REL_I386_DIR16", 0x0001 ,"Not supported. "}, {"IMAGE_REL_I386_REL16", 0x0002 ,"Not supported. "}, {"IMAGE_REL_I386_DIR32", 0x0006 ,"The targets 32-bit virtual address. "}, {"IMAGE_REL_I386_DIR32NB", 0x0007 ,"The targets 32-bit relative virtual address. "}, {"IMAGE_REL_I386_SEG12", 0x0009 ,"Not supported. "}, {"IMAGE_REL_I386_SECTION", 0x000A ,"The 16-bit-section index of the section containing the target. This is used to support debugging information. "}, {"IMAGE_REL_I386_SECREL", 0x000B ,"The 32-bit offset of the target from the beginning of its section. This is used to support debugging information as well as static thread local storage. "}, {"IMAGE_REL_I386_REL32", 0x0014 ,"The 32-bit relative displacement to the target. This supports the x86 relative branch and call instructions. "}, }; STFLAGSARRAY CObjFileView::FlagsArray[]={ {"IMAGE_SCN_TYPE_REG", 0x00000000 ,"Reserved for future use. "}, {"IMAGE_SCN_TYPE_DSECT", 0x00000001 ,"Reserved for future use. "}, {"IMAGE_SCN_TYPE_NOLOAD", 0x00000002 ,"Reserved for future use. "}, {"IMAGE_SCN_TYPE_GROUP", 0x00000004 ,"Reserved for future use. "}, {"IMAGE_SCN_TYPE_NO_PAD", 0x00000008 ,"Section should not be padded to next boundary. This is obsolete and replaced by IMAGE_SCN_ALIGN_1BYTES. This is valid for object files only. "}, {"IMAGE_SCN_TYPE_COPY", 0x00000010 ,"Reserved for future use. "}, {"IMAGE_SCN_CNT_CODE", 0x00000020 ,"Section contains executable code. "}, {"IMAGE_SCN_CNT_INITIALIZED_DATA", 0x00000040 ,"Section contains initialized data. "}, {"IMAGE_SCN_CNT_UNINITIALIZED_DATA", 0x00000080 ,"Section contains uninitialized data. "}, {"IMAGE_SCN_LNK_OTHER", 0x00000100 ,"Reserved for future use. "}, {"IMAGE_SCN_LNK_INFO", 0x00000200 ,"Section contains comments or other information. The .drectve section has this type. This is valid for object files only. "}, {"IMAGE_SCN_TYPE_OVER", 0x00000400 ,"Reserved for future use. "}, {"IMAGE_SCN_LNK_REMOVE", 0x00000800 ,"Section will not become part of the image. This is valid for object files only. "}, {"IMAGE_SCN_LNK_COMDAT", 0x00001000 ,"Section contains COMDAT data. See Section 5.5.6, COMDAT Sections, for more information. This is valid for object files only. "}, {"IMAGE_SCN_MEM_FARDATA", 0x00008000 ,"Reserved for future use. "}, {"IMAGE_SCN_MEM_PURGEABLE", 0x00020000 ,"Reserved for future use. "}, {"IMAGE_SCN_MEM_16BIT", 0x00020000 ,"Reserved for future use. "}, {"IMAGE_SCN_MEM_LOCKED", 0x00040000 ,"Reserved for future use. "}, {"IMAGE_SCN_MEM_PRELOAD", 0x00080000 ,"Reserved for future use. "}, {"IMAGE_SCN_LNK_NRELOC_OVFL", 0x01000000 ,"Section contains extended relocations. "}, {"IMAGE_SCN_MEM_DISCARDABLE", 0x02000000 ,"Section can be discarded as needed. "}, {"IMAGE_SCN_MEM_NOT_CACHED", 0x04000000 ,"Section cannot be cached. "}, {"IMAGE_SCN_MEM_NOT_PAGED", 0x08000000 ,"Section is not pageable. "}, {"IMAGE_SCN_MEM_SHARED", 0x10000000 ,"Section can be shared in memory. "}, {"IMAGE_SCN_MEM_EXECUTE", 0x20000000 ,"Section can be executed as code. "}, {"IMAGE_SCN_MEM_READ", 0x40000000 ,"Section can be read. "}, {"IMAGE_SCN_MEM_WRITE", 0x80000000 ,"Section can be written to. "}, {"IMAGE_SCN_ALIGN_1BYTES", 0x00100000 ,"Align data on a 1-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_2BYTES", 0x00200000 ,"Align data on a 2-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_4BYTES", 0x00300000 ,"Align data on a 4-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_8BYTES", 0x00400000 ,"Align data on a 8-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_16BYTES", 0x00500000 ,"Align data on a 16-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_32BYTES", 0x00600000 ,"Align data on a 32-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_64BYTES", 0x00700000 ,"Align data on a 64-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_128BYTES", 0x00800000 ,"Align data on a 128-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_256BYTES", 0x00900000 ,"Align data on a 256-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_512BYTES", 0x00A00000 ,"Align data on a 512-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_1024BYTES", 0x00B00000 ,"Align data on a 1024-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_2048BYTES", 0x00C00000 ,"Align data on a 2048-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_4096BYTES", 0x00D00000 ,"Align data on a 4096-byte boundary. This is valid for object files only. "}, {"IMAGE_SCN_ALIGN_8192BYTES", 0x00E00000 ,"Align data on a 8192-byte boundary. This is valid for object files only. "}, }; STFLAGSARRAY CObjFileView::SymBaseTypeArray[]={ {"IMAGE_SYM_TYPE_NULL", 0 ,"No type information or unknown base type. Microsoft tools use this setting. "}, {"IMAGE_SYM_TYPE_VOID", 1 ,"No valid type; used with void pointers and functions. "}, {"IMAGE_SYM_TYPE_CHAR", 2 ,"Character (signed byte). "}, {"IMAGE_SYM_TYPE_SHORT", 3 ,"Two-byte signed integer. "}, {"IMAGE_SYM_TYPE_INT", 4 ,"Natural integer type (normally four bytes in Windows NT). "}, {"IMAGE_SYM_TYPE_LONG", 5 ,"Four-byte signed integer. "}, {"IMAGE_SYM_TYPE_FLOAT", 6 ,"Four-byte floating-point number. "}, {"IMAGE_SYM_TYPE_DOUBLE", 7 ,"Eight-byte floating-point number. "}, {"IMAGE_SYM_TYPE_STRUCT", 8 ,"Structure. "}, {"IMAGE_SYM_TYPE_UNION", 9 ,"Union. "}, {"IMAGE_SYM_TYPE_ENUM", 10 ,"Enumerated type. "}, {"IMAGE_SYM_TYPE_MOE", 11 ,"Member of enumeration (a specific value). "}, {"IMAGE_SYM_TYPE_BYTE", 12 ,"Byte; unsigned one-byte integer. "}, {"IMAGE_SYM_TYPE_WORD", 13 ,"Word; unsigned two-byte integer. "}, {"IMAGE_SYM_TYPE_UINT", 14 ,"Unsigned integer of natural size (normally, four bytes). "}, {"IMAGE_SYM_TYPE_DWORD", 15 ,"Unsigned four-byte integer."}, }; STFLAGSARRAY CObjFileView::SymComplexTypeArray[]={ {"IMAGE_SYM_DTYPE_NULL", 0 ,"No derived type; the symbol is a simple scalar variable. "}, {"IMAGE_SYM_DTYPE_POINTER", 1 ,"Pointer to base type. "}, {"IMAGE_SYM_DTYPE_FUNCTION", 2 ,"Function returning base type. "}, {"IMAGE_SYM_DTYPE_ARRAY", 3 ,"Array of base type. "}, }; #if 0 enum{ IMAGE_SYM_CLASS_END_OF_FUNCTION= -1,// (0xFF) Special symbol representing end of function, for debugging purposes. IMAGE_SYM_CLASS_NULL= 0,// No storage class assigned. IMAGE_SYM_CLASS_AUTOMATIC= 1,// Automatic (stack) variable. The Value field specifies stack frame offset. IMAGE_SYM_CLASS_EXTERNAL= 2,// Used by Microsoft tools for external symbols. The Value field indicates the size if the section number is IMAGE_SYM_UNDEFINED (0). If the section number is not 0, then the Value field specifies the offset within the section. IMAGE_SYM_CLASS_STATIC= 3,// The Value field specifies the offset of the symbol within the section. If the Value is 0, then the symbol represents a section name. IMAGE_SYM_CLASS_REGISTER= 4,// Register variable. The Value field specifies register number. IMAGE_SYM_CLASS_EXTERNAL_DEF= 5,// Symbol is defined externally. IMAGE_SYM_CLASS_LABEL= 6,// Code label defined within the module. The Value field specifies the offset of the symbol within the section. IMAGE_SYM_CLASS_UNDEFINED_LABEL= 7,// Reference to a code label not defined. IMAGE_SYM_CLASS_MEMBER_OF_STRUCT= 8,// Structure member. The Value field specifies nth member. IMAGE_SYM_CLASS_ARGUMENT= 9,// Formal argument (parameter)of a function. The Value field specifies nth argument. IMAGE_SYM_CLASS_STRUCT_TAG= 10,// Structure tag-name entry. IMAGE_SYM_CLASS_MEMBER_OF_UNION= 11,// Union member. The Value field specifies nth member. IMAGE_SYM_CLASS_UNION_TAG= 12,// Union tag-name entry. IMAGE_SYM_CLASS_TYPE_DEFINITION= 13,// Typedef entry. IMAGE_SYM_CLASS_UNDEFINED_STATIC= 14,// Static data declaration. IMAGE_SYM_CLASS_ENUM_TAG= 15,// Enumerated type tagname entry. IMAGE_SYM_CLASS_MEMBER_OF_ENUM= 16,// Member of enumeration. Value specifies nth member. IMAGE_SYM_CLASS_REGISTER_PARAM= 17,// Register parameter. IMAGE_SYM_CLASS_BIT_FIELD= 18,// Bit-field reference. Value specifies nth bit in the bit field. IMAGE_SYM_CLASS_BLOCK= 100,// A .bb (beginning of block) or .eb (end of block) record. Value is the relocatable address of the code location. IMAGE_SYM_CLASS_FUNCTION= 101,// Used by Microsoft tools for symbol records that define the extent of a function: begin function (named .bf), end function (.ef), and lines in function (.lf). For .lf records, Value gives the number of source lines in the function. For .ef records, Value gives the size of function code. IMAGE_SYM_CLASS_END_OF_STRUCT= 102,// End of structure entry. IMAGE_SYM_CLASS_FILE= 103,// Used by Microsoft tools, as well as traditional COFF format, for the source-file symbol record. The symbol is followed by auxiliary records that name the file. IMAGE_SYM_CLASS_SECTION= 104,// Definition of a section (Microsoft tools use STATIC storage class instead). IMAGE_SYM_CLASS_WEAK_EXTERNAL= 105,// Weak external. See Section 5.5.3, Auxiliary Format 3: Weak Externals, for more information. }; #endif STFLAGSARRAY CObjFileView::SymStorageClassArray[]={ {"IMAGE_SYM_CLASS_END_OF_FUNCTION", -1," (0xFF) Special symbol representing end of function, for debugging purposes. "}, {"IMAGE_SYM_CLASS_NULL", 0 ,"No storage class assigned. "}, {"IMAGE_SYM_CLASS_AUTOMATIC", 1 ,"Automatic (stack) variable. The Value field specifies stack frame offset. "}, {"IMAGE_SYM_CLASS_EXTERNAL", 2 ,"Used by Microsoft tools for external symbols. The Value field indicates the size if the section number is IMAGE_SYM_UNDEFINED (0). If the section number is not 0, then the Value field specifies the offset within the section. "}, {"IMAGE_SYM_CLASS_STATIC", 3 ,"The Value field specifies the offset of the symbol within the section. If the Value is 0, then the symbol represents a section name. "}, {"IMAGE_SYM_CLASS_REGISTER", 4 ,"Register variable. The Value field specifies register number. "}, {"IMAGE_SYM_CLASS_EXTERNAL_DEF", 5 ,"Symbol is defined externally. "}, {"IMAGE_SYM_CLASS_LABEL", 6 ,"Code label defined within the module. The Value field specifies the offset of the symbol within the section. "}, {"IMAGE_SYM_CLASS_UNDEFINED_LABEL", 7 ,"Reference to a code label not defined. "}, {"IMAGE_SYM_CLASS_MEMBER_OF_STRUCT", 8 ,"Structure member. The Value field specifies nth member. "}, {"IMAGE_SYM_CLASS_ARGUMENT", 9 ,"Formal argument (parameter)of a function. The Value field specifies nth argument. "}, {"IMAGE_SYM_CLASS_STRUCT_TAG", 10 ,"Structure tag-name entry. "}, {"IMAGE_SYM_CLASS_MEMBER_OF_UNION", 11 ,"Union member. The Value field specifies nth member. "}, {"IMAGE_SYM_CLASS_UNION_TAG", 12 ,"Union tag-name entry. "}, {"IMAGE_SYM_CLASS_TYPE_DEFINITION", 13 ,"Typedef entry. "}, {"IMAGE_SYM_CLASS_UNDEFINED_STATIC", 14 ,"Static data declaration. "}, {"IMAGE_SYM_CLASS_ENUM_TAG", 15 ,"Enumerated type tagname entry. "}, {"IMAGE_SYM_CLASS_MEMBER_OF_ENUM", 16 ,"Member of enumeration. Value specifies nth member. "}, {"IMAGE_SYM_CLASS_REGISTER_PARAM", 17 ,"Register parameter. "}, {"IMAGE_SYM_CLASS_BIT_FIELD", 18 ,"Bit-field reference. Value specifies nth bit in the bit field. "}, {"IMAGE_SYM_CLASS_BLOCK", 100 ,"A .bb (beginning of block) or .eb (end of block) record. Value is the relocatable address of the code location. "}, {"IMAGE_SYM_CLASS_FUNCTION", 101 ,"Used by Microsoft tools for symbol records that define the extent of a function: begin function (named .bf), end function (.ef), and lines in function (.lf). For .lf records, Value gives the number of source lines in the function. For .ef records, Value gives the size of function code. "}, {"IMAGE_SYM_CLASS_END_OF_STRUCT", 102 ,"End of structure entry. "}, {"IMAGE_SYM_CLASS_FILE", 103 ,"Used by Microsoft tools, as well as traditional COFF format, for the source-file symbol record. The symbol is followed by auxiliary records that name the file. "}, {"IMAGE_SYM_CLASS_SECTION", 104 ,"Definition of a section (Microsoft tools use STATIC storage class instead). "}, {"IMAGE_SYM_CLASS_WEAK_EXTERNAL", 105 ,"Weak external. See Section 5.5.3, Auxiliary Format 3: Weak Externals, for more information. "}, }; WISP_MSG_MAP_BEGIN(CObjFileView) //WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) //WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CObjFileView) //WISP_MSG_EVENT_MAP(EVENT_ID_TYPEVIEWERWND_HEX_DISPLAY,OnHexDisplayEvent) //WISP_MSG_EVENT_MAP(EVENT_ID_TYPEVIEWERWND_DELETE_WATCH,OnDeleteWatchEvent) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CObjFileView) //WISP_MSG_EVENT_MAP(EVENT_ID_TYPEVIEWERWND_HEX_DISPLAY,OnHexDisplayEvent) //WISP_MSG_EVENT_MAP(EVENT_ID_TYPEVIEWERWND_DELETE_WATCH,OnDeleteWatchEvent) WISP_MSG_CMD_MAP_END CObjFileView::CObjFileView() { } CObjFileView::~CObjFileView() { } bool CObjFileView::OnCreate(IN WISP_MSG* pMsg) { HANDLE hItem,hSubItem,hNextItem,hOldItem; DWORD Characteristics; CNoPDBSymbol NoPDBSymbol; char NameSymBuf[256]; NoPDBSymbol.Init(); //D:\Prg\syser\Project\Win32\Syser\Debug //m_ObjFile.Open("D:\\Prg\\syser\\Project\\Win32\\Syser\\Debug\\addtypeviewerdlg.obj"); //m_ObjFile.Open("D:\\Prg\\syser\\Source\\Syser\\objchk_wxp_x86\\i386\\addtypeviewerdlg.obj"); //m_ObjFile.Open("D:\\temp\\Debug\\stdafx.obj"); //m_ObjFile.Open("D:\\temp\\Debug\\nnnView.obj"); m_ObjFile.Open("D:\\delete\\Debug\\main.obj"); InsertColumn(WSTR("Name"),200); InsertColumn(WSTR("Value"),100); InsertColumn(WSTR("Type"),100); InsertColumn(WSTR("Offset"),5); char *SectionName; int i,j,k; POBJ_RELOCATION_ITEM pRel; POBJ_LINENUMBER pLineNum; bool FirstSymbolSection=true; char* SymbolName; char RelName[20]; // WCHAR WName[100]; DWORD Size; //OBJ_SECTION*m_Section; //int m_SectCount; hItem = InsertItemA("FILE_HEADER"); hSubItem = InsertItemA("Machine",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.Machine,WSTR("%08x")); hSubItem = InsertItemA("NumberOfSections",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.NumberOfSections,WSTR("%d")); hSubItem = InsertItemA("TimeDateStamp",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.TimeDateStamp,WSTR("%08x")); hSubItem = InsertItemA("PointerToSymbolTable",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.PointerToSymbolTable,WSTR("%d")); hSubItem = InsertItemA("NumberOfSymbols",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.NumberOfSymbols,WSTR("%08x")); hSubItem = InsertItemA("SizeOfOptionalHeader",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.SizeOfOptionalHeader,WSTR("%d")); hSubItem = InsertItemA("Characteristics",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_ObjHead.Characteristics,WSTR("%08x")); for(i = 0; i < sizeof(FileHeaderCharacteristicsArray)/sizeof(FileHeaderCharacteristicsArray[0]);i++) { if(m_ObjFile.m_ObjHead.Characteristics&FileHeaderCharacteristicsArray[i].FlagsValue) { hNextItem = InsertItemA(FileHeaderCharacteristicsArray[i].FlagsName,hSubItem); SetItemNum(hNextItem,1,FileHeaderCharacteristicsArray[i].FlagsValue,WSTR("%08x")); } } for(i = 0; i < m_ObjFile.m_SectCount; i++) { SectionName = m_ObjFile.GetSectionName(i); if(SectionName) { hItem = InsertItemA(SectionName); hSubItem = InsertItemA("VirtualSize",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].Misc.VirtualSize,WSTR("%08x")); hSubItem = InsertItemA("VirtualAddress",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].VirtualAddress,WSTR("%08x")); hSubItem = InsertItemA("SizeOfRawData",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].SizeOfRawData,WSTR("%08x")); hSubItem = InsertItemA("PointerToRawData",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].PointerToRawData,WSTR("%08x")); hSubItem = InsertItemA("PointerToRelocations",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].PointerToRelocations,WSTR("%08x")); if(m_ObjFile.m_Section[i].PointerToRelocations&&m_ObjFile.m_Section[i].NumberOfRelocations) { Size = sizeof(OBJ_RELOCATION_ITEM)*m_ObjFile.m_Section[i].NumberOfRelocations; pRel = new OBJ_RELOCATION_ITEM[m_ObjFile.m_Section[i].NumberOfRelocations]; m_ObjFile.ReadFile(m_ObjFile.m_Section[i].PointerToRelocations,pRel,Size); for(k = 0; k < m_ObjFile.m_Section[i].NumberOfRelocations;k++) { TSPrintf(RelName,"Rel[%d]",k); hOldItem = InsertItemA(RelName,hSubItem); hNextItem = InsertItemA("VirtualAddress",hOldItem); SetItemNum(hNextItem,1,pRel[k].VirtualAddress); hNextItem = InsertItemA("SymbolTableIndex",hOldItem); SetItemNum(hNextItem,1,pRel[k].SymbolTableIndex); SymbolName = m_ObjFile.GetSymbolNameByIndex(pRel[k].SymbolTableIndex); if(SymbolName) { if(NoPDBSymbol.m_UnDecorateSymbolName(SymbolName,NameSymBuf,sizeof(NameSymBuf),0)) InsertItemA(NameSymBuf,hNextItem); else InsertItemA(SymbolName,hNextItem); delete []SymbolName; } hNextItem = InsertItemA("Type",hOldItem); SetItemNum(hNextItem,1,pRel[k].Type); for(int p = 0; p < sizeof(RleFlagsArray)/sizeof(RleFlagsArray[0]);p++) { if(pRel[k].Type==RleFlagsArray[p].FlagsValue) { //TStrCpy(WName,RleFlagsArray[p].FlagsName); SetItemTextA(hNextItem,1,RleFlagsArray[p].FlagsName); //hChildItem = InsertItemA(RleFlagsArray[p].FlagsName,hNextItem); //SetItemNum(hChildItem,1,RleFlagsArray[p].FlagsValue,WSTR("%08x")); } } } delete []pRel; } hSubItem = InsertItemA("PointerToLinenumbers",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].PointerToLinenumbers,WSTR("%08x")); if(m_ObjFile.m_Section[i].PointerToLinenumbers&&m_ObjFile.m_Section[i].NumberOfLinenumbers) { Size = sizeof(OBJ_LINENUMBER)*m_ObjFile.m_Section[i].NumberOfLinenumbers; pLineNum = new OBJ_LINENUMBER[m_ObjFile.m_Section[i].NumberOfLinenumbers]; m_ObjFile.ReadFile(m_ObjFile.m_Section[i].PointerToLinenumbers,pLineNum,Size); for(k = 0; k < m_ObjFile.m_Section[i].NumberOfLinenumbers;k++) { TSPrintf(RelName,"Line[%d]",k); hOldItem = InsertItemA(RelName,hSubItem); if(pLineNum[k].Linenumber==0) { hNextItem = InsertItemA("SymbolTableIndex",hOldItem); SymbolName = m_ObjFile.GetSymbolNameByIndex(pLineNum[k].Type.SymbolTableIndex); if(SymbolName) { if(NoPDBSymbol.m_UnDecorateSymbolName(SymbolName,NameSymBuf,sizeof(NameSymBuf),0)) InsertItemA(NameSymBuf,hNextItem); else InsertItemA(SymbolName,hNextItem); delete []SymbolName; } } else hNextItem = InsertItemA("VirtualAddress",hOldItem); SetItemNum(hNextItem,1,pLineNum[k].Type.VirtualAddress); hNextItem = InsertItemA("Linenumber",hOldItem); SetItemNum(hNextItem,1,pLineNum[k].Linenumber); } delete []pLineNum; } hSubItem = InsertItemA("NumberOfRelocations",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].NumberOfRelocations,WSTR("%08x")); hSubItem = InsertItemA("NumberOfLinenumbers",hItem); SetItemNum(hSubItem,1,m_ObjFile.m_Section[i].NumberOfLinenumbers,WSTR("%08x")); hSubItem = InsertItemA("Characteristics",hItem); Characteristics = m_ObjFile.m_Section[i].Characteristics; SetItemNum(hSubItem,1,Characteristics,WSTR("%08x")); for(j = 0; j < 27; j++) { if(Characteristics&FlagsArray[j].FlagsValue) { hNextItem = InsertItemA(FlagsArray[j].FlagsName,hSubItem); SetItemNum(hNextItem,1,FlagsArray[j].FlagsValue,WSTR("%08x")); } } for(j=27;j>8; if(symtype0) { OBJ_IMAGE_AUX_SYMBOL* AuxFuncDefine=(OBJ_IMAGE_AUX_SYMBOL*)&m_ObjFile.m_ObjSymAry[i+1]; hNextItem = InsertItemA("Function Definitions",hNextItem); hSubItem = InsertItemA("TagIndex",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->Sym.TagIndex); hSubItem = InsertItemA("TotalSize",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->Sym.Misc.TotalSize); hSubItem = InsertItemA("PointerToLinenumber",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->Sym.FcnAry.Function.PointerToLinenumber); hSubItem = InsertItemA("PointerToNextFunction",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->Sym.FcnAry.Function.PointerToNextFunction); hSubItem = InsertItemA("Unused.",hNextItem); } if(m_ObjFile.m_ObjSymAry[i].NumberOfAuxSymbols &&m_ObjFile.m_ObjSymAry[i].StorageClass==101) { OBJ_IMAGE_AUX_SYMBOL* AuxFuncDefine=(OBJ_IMAGE_AUX_SYMBOL*)&m_ObjFile.m_ObjSymAry[i+1]; if(TStrCmp(NameFull,".bf")==0) { hNextItem = InsertItemA(".bf Auxiliary",hNextItem); hSubItem = InsertItemA("Unused",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused); hSubItem = InsertItemA("Linenumber",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Linenumber,WSTR("%d")); hSubItem = InsertItemA("Unused1",hNextItem); //SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused); hSubItem = InsertItemA("PointerToNextFunction",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.PointerToNextFunction); hSubItem = InsertItemA("Unused2",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused2); }else if(TStrCmp(NameFull,".lf")==0) { hNextItem = InsertItemA(".lf Auxiliary",hNextItem); hSubItem = InsertItemA("Unused",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused); hSubItem = InsertItemA("Linenumber",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Linenumber,WSTR("%d")); hSubItem = InsertItemA("Unused1",hNextItem); //SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused); hSubItem = InsertItemA("PointerToNextFunction",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.PointerToNextFunction); hSubItem = InsertItemA("Unused2",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused2); }else if(TStrCmp(NameFull,".ef")==0) { hNextItem = InsertItemA(".ef Auxiliary",hNextItem); hSubItem = InsertItemA("Unused",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused); hSubItem = InsertItemA("Linenumber",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Linenumber,WSTR("%d")); hSubItem = InsertItemA("Unused1",hNextItem); //SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused); hSubItem = InsertItemA("PointerToNextFunction",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.PointerToNextFunction); hSubItem = InsertItemA("Unused2",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->bf.Unused2); } } if(m_ObjFile.m_ObjSymAry[i].NumberOfAuxSymbols &&m_ObjFile.m_ObjSymAry[i].StorageClass==IMAGE_SYM_CLASS_FILE) { if(TStrCmp(NameFull,".file")==0) { OBJ_IMAGE_AUX_SYMBOL* AuxFuncDefine=(OBJ_IMAGE_AUX_SYMBOL*)&m_ObjFile.m_ObjSymAry[i+1]; hNextItem = InsertItemA(".file Auxiliary",hNextItem); InsertItemA((const char*)AuxFuncDefine->File.Name,hNextItem); } } if(m_ObjFile.m_ObjSymAry[i].NumberOfAuxSymbols &&m_ObjFile.m_ObjSymAry[i].StorageClass==IMAGE_SYM_CLASS_WEAK_EXTERNAL &&m_ObjFile.m_ObjSymAry[i].SectionNumber==0 &&m_ObjFile.m_ObjSymAry[i].Value==0) { OBJ_IMAGE_AUX_SYMBOL* AuxFuncDefine=(OBJ_IMAGE_AUX_SYMBOL*)&m_ObjFile.m_ObjSymAry[i+1]; hNextItem = InsertItemA("Weak Externals Auxiliary",hNextItem); hSubItem = InsertItemA("TagIndex",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->WeakExternals.TagIndex); hSubItem = InsertItemA("Characteristics ",hNextItem); SetItemNum(hSubItem,1,AuxFuncDefine->WeakExternals.Characteristics); } i += m_ObjFile.m_ObjSymAry[i].NumberOfAuxSymbols; if(SymbolName) delete []SymbolName; } NoPDBSymbol.Release(); return true; } bool CObjFileView::OnDestroy(IN WISP_MSG* pMsg) { m_ObjFile.Close(); return true; } bool CObjFileView::AnalyserSymbolSection(HANDLE hItem,OBJ_SECTION* ObjSection,bool FirstSymbolSection) { char NameBuf[256]; int i; BYTE *pStart; char BufName[20]; SYMRECORD* SymRecord; DWORD Index = 0; HANDLE hNextItem,hSubItem,hRootItem; DWORD Counter=0; if(FirstSymbolSection) Counter=4; pStart = &m_ObjFile.m_FileBody[ObjSection->PointerToRawData+Counter]; SymRecord = (SYMRECORD*)pStart; while(CounterSizeOfRawData) { TSPrintf(BufName,"Sym[%d]",Index); hRootItem = hSubItem = InsertItemA(BufName,hItem); hNextItem = InsertItemA("Size",hSubItem); SetItemNum(hNextItem,1,SymRecord->Length); hNextItem = InsertItemA("Type",hSubItem); SetItemNum(hNextItem,1,SymRecord->u1.Type); switch(SymRecord->u1.Type) { case SYM_S_COMPILE: { SetItemTextA(hRootItem,1,"SYM_S_COMPILE"); hNextItem = InsertItemA("Machine",hSubItem); for(i =0;i < sizeof(COMPILE_machineArray)/sizeof(COMPILE_machineArray[0]);i++) { if(SymRecord->u.S_COMPILE.Machine==COMPILE_machineArray[i].FlagsValue) SetItemTextA(hNextItem,1,COMPILE_machineArray[i].FlagsName); } hNextItem = InsertItemA("Language",hSubItem); bool bFind=false; for(i = 0;iu.S_COMPILE.flags[0]==COMPILE_LanguageArray[i].FlagsValue) { bFind=true; SetItemTextA(hNextItem,1,COMPILE_LanguageArray[i].FlagsName); } } WORD TempFlags=*(WORD*)&SymRecord->u.S_COMPILE.flags[1]; hNextItem = InsertItemA("PCodePresent",hSubItem); SetItemNum(hNextItem,1,TempFlags&1); hNextItem = InsertItemA("FloatPrecision",hSubItem); SetItemNum(hNextItem,1,(TempFlags>>1)&3); hNextItem = InsertItemA("FloatPackage",hSubItem); SetItemNum(hNextItem,1,(TempFlags>>3)&3); hNextItem = InsertItemA("AmbientData",hSubItem); SetItemNum(hNextItem,1,(TempFlags>>5)&7); hNextItem = InsertItemA("AmbientCode",hSubItem); SetItemNum(hNextItem,1,(TempFlags>>8)&7); hNextItem = InsertItemA("Mode32",hSubItem); SetItemNum(hNextItem,1,(TempFlags>>11)&1); TStrCpyLimit(NameBuf,&SymRecord->u.S_COMPILE.version[1],SymRecord->u.S_COMPILE.version[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } break; case SYM_S_REGISTER: { SetItemTextA(hRootItem,1,"SYM_S_REGISTER"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_REGISTER.TypeIndex); for(i = 0;i < sizeof(X86X87RegisterArray)/sizeof(X86X87RegisterArray[0]);i++) { if(SymRecord->u.S_REGISTER.Register==X86X87RegisterArray[i].FlagsValue) { hNextItem = InsertItemA("Register",hSubItem); SetItemTextA(hNextItem,1,X86X87RegisterArray[i].FlagsName); } } TStrCpyLimit(NameBuf,&SymRecord->u.S_REGISTER.Name[1],SymRecord->u.S_REGISTER.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } break; case SYM_S_BPREL32: { SetItemTextA(hRootItem,1,"SYM_S_BPREL32"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_BPREL32.TypeIndex); hNextItem = InsertItemA("Offset",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_BPREL32.Offset); TStrCpyLimit(NameBuf,&SymRecord->u.S_BPREL32.Name[1],SymRecord->u.S_BPREL32.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } break; case SYM_S_LPROC32: { SetItemTextA(hRootItem,1,"SYM_S_LPROC32"); hNextItem = InsertItemA("pParent",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.pParent); hNextItem = InsertItemA("pEnd",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.pEnd); hNextItem = InsertItemA("pNext",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.pNext); hNextItem = InsertItemA("ProcLength",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.ProcLength); hNextItem = InsertItemA("DebugStart",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.DebugStart); hNextItem = InsertItemA("DebugEnd",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.DebugEnd); hNextItem = InsertItemA("ProcType",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.ProcType); hNextItem = InsertItemA("Offset",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.Offset); hNextItem = InsertItemA("Segment",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.Segment); hNextItem = InsertItemA("Flags",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.Flags); TStrCpyLimit(NameBuf,&SymRecord->u.S_GPROC32.Name[1],SymRecord->u.S_GPROC32.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } break; case SYM_S_GPROC32: { SetItemTextA(hRootItem,1,"SYM_S_GPROC32"); hNextItem = InsertItemA("pParent",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.pParent); hNextItem = InsertItemA("pEnd",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.pEnd); hNextItem = InsertItemA("pNext",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.pNext); hNextItem = InsertItemA("ProcLength",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.ProcLength); hNextItem = InsertItemA("DebugStart",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.DebugStart); hNextItem = InsertItemA("DebugEnd",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.DebugEnd); hNextItem = InsertItemA("ProcType",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.ProcType); hNextItem = InsertItemA("Offset",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.Offset); hNextItem = InsertItemA("Segment",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.Segment); hNextItem = InsertItemA("Flags",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_GPROC32.Flags); TStrCpyLimit(NameBuf,&SymRecord->u.S_GPROC32.Name[1],SymRecord->u.S_GPROC32.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } break; case SYM_S_GDATA32: SetItemTextA(hRootItem,1,"SYM_S_GDATA32"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LDATA32.TypeIndex); hNextItem = InsertItemA("Offset",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LDATA32.Offset); hNextItem = InsertItemA("Segment",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LDATA32.Segment); TStrCpyLimit(NameBuf,&SymRecord->u.S_LDATA32.Name[1],SymRecord->u.S_LDATA32.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); break; case SYM_S_LDATA32: SetItemTextA(hRootItem,1,"SYM_S_LDATA32"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LDATA32.TypeIndex); hNextItem = InsertItemA("Offset",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LDATA32.Offset); hNextItem = InsertItemA("Segment",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LDATA32.Segment); TStrCpyLimit(NameBuf,&SymRecord->u.S_LDATA32.Name[1],SymRecord->u.S_LDATA32.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); break; case SYM_S_LABEL32: SetItemTextA(hRootItem,1,"SYM_S_LABEL32"); hNextItem = InsertItemA("Offset",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LABEL32.Offset); hNextItem = InsertItemA("Segment",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LABEL32.Segment); hNextItem = InsertItemA("Flags",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_LABEL32.Flags); TStrCpyLimit(NameBuf,&SymRecord->u.S_LABEL32.Name[1],SymRecord->u.S_LABEL32.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); break; case SYM_S_UDT: SetItemTextA(hRootItem,1,"SYM_S_UDT"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_UDT.TypeIndex); TStrCpyLimit(NameBuf,&SymRecord->u.S_UDT.Name[1],SymRecord->u.S_UDT.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); break; case SYM_S_CONSTANT: { SetItemTextA(hRootItem,1,"SYM_S_CONSTANT"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_CONSTANT.TypeIndex); if(SymRecord->u.S_CONSTANT.Value<0x8000) { hNextItem = InsertItemA("Value",hSubItem); SetItemNum(hNextItem,1,SymRecord->u.S_CONSTANT.Value); TStrCpyLimit(NameBuf,&SymRecord->u.S_CONSTANT.Name[1],SymRecord->u.S_CONSTANT.Name[0]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } else { hNextItem = InsertItemA("Value",hSubItem); int NameOffset=0; switch(SymRecord->u.S_CONSTANT.Value) { case LF_CHAR : NameOffset=1;SetItemNum(hNextItem,1,SymRecord->u.S_CONSTANT.Name[0]);break; case LF_SHORT : NameOffset=2;SetItemNum(hNextItem,1,*(short*)&SymRecord->u.S_CONSTANT.Name[0]);break; case LF_USHORT : NameOffset=2;SetItemNum(hNextItem,1,*(unsigned short*)&SymRecord->u.S_CONSTANT.Name[0]);break; case LF_LONG : NameOffset=4;SetItemNum(hNextItem,1,*(long*)&SymRecord->u.S_CONSTANT.Name[0]);break; case LF_ULONG : NameOffset=4;SetItemNum(hNextItem,1,*(unsigned long*)&SymRecord->u.S_CONSTANT.Name[0]);break; case LF_REAL32 : NameOffset=4;break; case LF_REAL64 : NameOffset=8;break; case LF_REAL80 : NameOffset=10;break; case LF_REAL128 : NameOffset=16;break; break; case LF_QUADWORD : NameOffset=8;SetItemNum(hNextItem,1,*(UINT*)&SymRecord->u.S_CONSTANT.Name[0]);break; case LF_UQUADWORD : NameOffset=8;SetItemNum(hNextItem,1,*(UINT*)&SymRecord->u.S_CONSTANT.Name[0]);break; case LF_REAL48 : NameOffset=16;break; case LF_COMPLEX32 : NameOffset=8;break; case LF_COMPLEX64 : NameOffset=16;break; case LF_COMPLEX80 : NameOffset=20;break; case LF_COMPLEX128 : NameOffset=32;break; case LF_VARSTRING : NameOffset = *(unsigned short*)&SymRecord->u.S_CONSTANT.Name[0]+2;break; break; } TStrCpyLimit(NameBuf,&SymRecord->u.S_CONSTANT.Name[NameOffset+1],SymRecord->u.S_CONSTANT.Name[NameOffset]+1); hNextItem = InsertItemA("SymName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } } break; } Counter+=2; Counter+=SymRecord->Length; SymRecord=(SYMRECORD*)&SymRecord->u1.Start[SymRecord->Length]; Index++; } return true; } bool CObjFileView::AnalyserTypeSection(HANDLE hItem,OBJ_SECTION* ObjSection,bool FirstTypeSection) { char NameBuf[256]; // int j; BYTE *pStart; char BufName[20]; TYPERECORD* TypeRecord; DWORD Index = 0x1000; HANDLE hNextItem,hSubItem,hRootItem; DWORD Counter=0; if(FirstTypeSection) Counter=4; pStart = &m_ObjFile.m_FileBody[ObjSection->PointerToRawData+Counter]; TypeRecord = (TYPERECORD*)pStart; while(CounterSizeOfRawData) { TSPrintf(BufName,"Type[%x]",Index); hRootItem = hSubItem = InsertItemA(BufName,hItem); hNextItem = InsertItemA("Size",hSubItem); SetItemNum(hNextItem,1,TypeRecord->Length); hNextItem = InsertItemA("Type",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u1.Type); switch(TypeRecord->u1.Type) { case LF_CLASS: { int NameOffset=0; SetItemTextA(hRootItem,1,"LF_CLASS"); hNextItem = InsertItemA("Count",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_CLASS.Count); hNextItem = InsertItemA("property",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_CLASS.property); hNextItem = InsertItemA("@field",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_CLASS.field); hNextItem = InsertItemA("@dList",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_CLASS.dList); hNextItem = InsertItemA("@vshape",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_CLASS.vshape); if(TypeRecord->u.LF_CLASS.u.Length.Number<0x8000) { hNextItem = InsertItemA("length",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_CLASS.u.Length.Number); NameOffset=2; TStrCpyLimit(NameBuf,&TypeRecord->u.LF_CLASS.u.Name[NameOffset+1],TypeRecord->u.LF_CLASS.u.Name[NameOffset]+1); hNextItem = InsertItemA("TypeName",hSubItem); SetItemTextA(hNextItem,1,NameBuf); } } break; case LF_STRUCTURE: SetItemTextA(hRootItem,1,"LF_STRUCTURE"); break; case LF_UNION: SetItemTextA(hRootItem,1,"LF_UNION"); break; case LF_ENUMERATE: SetItemTextA(hRootItem,1,"LF_ENUMERATE"); break; case LF_ARRAY: SetItemTextA(hRootItem,1,"LF_ARRAY"); break; case LF_ARGLIST: SetItemTextA(hRootItem,1,"LF_ARGLIST"); break; case LF_FIELDLIST: SetItemTextA(hRootItem,1,"LF_FIELDLIST"); break; case LF_LABEL: SetItemTextA(hRootItem,1,"LF_LABEL"); break; case LF_PRECOMP: SetItemTextA(hRootItem,1,"LF_PRECOMP"); break; case LF_MEMBERMODIFY: SetItemTextA(hRootItem,1,"LF_MEMBERMODIFY"); break; case LF_POINTER: { SetItemTextA(hRootItem,1,"LF_POINTER"); hNextItem = InsertItemA("TypeIndex",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.TypeIndex); hNextItem = InsertItemA("ptrtype",hSubItem); switch(TypeRecord->u.LF_POINTER.ptrtype) { case 0: SetItemTextA(hNextItem,1,"Near");break; case 1:SetItemTextA(hNextItem,1,"Far");break; case 2:SetItemTextA(hNextItem,1,"Huge");break; case 3:SetItemTextA(hNextItem,1,"Based on segment");break; case 4:SetItemTextA(hNextItem,1,"Based on value");break; case 5:SetItemTextA(hNextItem,1,"Based on segment of value");break; case 6:SetItemTextA(hNextItem,1,"Based on address of symbol");break; case 7:SetItemTextA(hNextItem,1,"Based on segment of symbol address");break; case 8:SetItemTextA(hNextItem,1,"Based on type");break; case 9:SetItemTextA(hNextItem,1,"Based on self");break; case 10:SetItemTextA(hNextItem,1,"Near 32 bit pointer");break; case 11:SetItemTextA(hNextItem,1,"Far 32 bit pointer");break; case 12:SetItemTextA(hNextItem,1,"64 bit pointer");break; default: if(TypeRecord->u.LF_POINTER.ptrtype>=13&&TypeRecord->u.LF_POINTER.ptrtype<=31) SetItemTextA(hNextItem,1,"Reserved"); } hNextItem = InsertItemA("ptrmode",hSubItem); switch(TypeRecord->u.LF_POINTER.ptrmode) { case 0: SetItemTextA(hNextItem,1,"Pointer");break; case 1:SetItemTextA(hNextItem,1,"Reference");break; case 2:SetItemTextA(hNextItem,1,"Pointer to data member");break; case 3:SetItemTextA(hNextItem,1,"Pointer to method");break; default: if(TypeRecord->u.LF_POINTER.ptrmode>=4&&TypeRecord->u.LF_POINTER.ptrmode<=7) SetItemTextA(hNextItem,1,"Reserved"); } hNextItem = InsertItemA("isflat32",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.isflat32); hNextItem = InsertItemA("volatile",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.volatileType); hNextItem = InsertItemA("const",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.constType); hNextItem = InsertItemA("unaligned ",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.unaligned); hNextItem = InsertItemA("restrict",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.restrict); hNextItem = InsertItemA("unused",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_POINTER.unused); } break; case LF_PROCEDURE: SetItemTextA(hRootItem,1,"LF_PROCEDURE"); break; case LF_MFUNCTION: SetItemTextA(hRootItem,1,"LF_MFUNCTION"); hNextItem = InsertItemA("Rvtype",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Rvtype); hNextItem = InsertItemA("Class",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Class); hNextItem = InsertItemA("This",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.This); hNextItem = InsertItemA("Call",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Call); hNextItem = InsertItemA("Res",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Res); hNextItem = InsertItemA("Parms",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Parms); hNextItem = InsertItemA("Arglist",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Arglist); hNextItem = InsertItemA("Thisadjust",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MFUNCTION.Thisadjust); break; case LF_VTSHAPE: SetItemTextA(hRootItem,1,"LF_VTSHAPE"); break; case LF_MODIFIER: SetItemTextA(hRootItem,1,"LF_MODIFIER"); hNextItem = InsertItemA("Index",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MODIFIER.TypeIndex); hNextItem = InsertItemA("Attribute",hSubItem); SetItemNum(hNextItem,1,TypeRecord->u.LF_MODIFIER.Attribute); break; } Counter+=2; Counter+=TypeRecord->Length; TypeRecord=(TYPERECORD*)&TypeRecord->u1.Start[TypeRecord->Length]; Index++; } return true; } ================================================ FILE: Project/Syser/Source/ObjFileView.h ================================================ #ifndef _OBJFILEVIEW_H_ #define _OBJFILEVIEW_H_ typedef struct _STFLAGSARRAY { char* FlagsName; DWORD FlagsValue; char* Description; }STFLAGSARRAY; enum{ LF_MODIFIER =0x1001, LF_POINTER =0x1002, LF_ARRAY =0x1003, LF_CLASS =0x1004, LF_STRUCTURE =0x1005, LF_UNION =0x1006, LF_ENUM =0x1007, LF_PROCEDURE =0x1008, LF_MFUNCTION =0x1009, LF_VTSHAPE =0x000a, LF_COBOL0 =0x100a, LF_COBOL1 =0x000c, LF_BARRAY =0x100b, LF_LABEL =0x000e, LF_NULL =0x000f, LF_NOTTRAN =0x0010, LF_DIMARRAY =0x100c, LF_VFTPATH =0x100d, LF_PRECOMP =0x100e, LF_ENDPRECOMP =0x0014, LF_OEM =0x100f, LF_TYPESERVER =0x0016, LF_SKIP =0x1200, LF_ARGLIST =0x1201, LF_DEFARG =0x1202, LF_FIELDLIST =0x1203, LF_DERIVED =0x1204, LF_BITFIELD =0x1205, LF_METHODLIST =0x1206, LF_DIMCONU =0x1207, LF_DIMCONLU =0x1208, LF_DIMVARU =0x1209, LF_DIMVARLU =0x120a, LF_REFSYM =0x120c, LF_BCLASS =0x1400, LF_VBCLASS =0x1401, LF_IVBCLASS =0x1402, LF_ENUMERATE =0x0403, LF_FRIENDFCN =0x1403, LF_INDEX =0x1404, LF_MEMBER =0x1405, LF_STMEMBER =0x1406, LF_METHOD =0x1407, LF_NESTTYPE =0x1408, LF_VFUNCTAB =0x1409, LF_FRIENDCLS =0x140a, LF_ONEMETHOD =0x140b, LF_VFUNCOFF =0x140c, LF_NESTTYPEEX =0x140d, LF_MEMBERMODIFY =0x140e, LF_CHAR =0x8000, LF_SHORT =0x8001, LF_USHORT =0x8002, LF_LONG =0x8003, LF_ULONG =0x8004, LF_REAL32 =0x8005, LF_REAL64 =0x8006, LF_REAL80 =0x8007, LF_REAL128 =0x8008, LF_QUADWORD =0x8009, LF_UQUADWORD =0x800a, LF_REAL48 =0x800b, LF_COMPLEX32 =0x800c, LF_COMPLEX64 =0x800d, LF_COMPLEX80 =0x800e, LF_COMPLEX128 =0x800f, LF_VARSTRING =0x8010, LF_PAD0=0xf0, LF_PAD1=0xf1, LF_PAD2=0xf2, LF_PAD3=0xf3, LF_PAD4=0xf4, LF_PAD5=0xf5, LF_PAD6=0xf6, LF_PAD7=0xf7, LF_PAD8=0xf8, LF_PAD9=0xf9, LF_PADA=0xfa, LF_PADB=0xfb, LF_PADC=0xfc, LF_PADD=0xfd, LF_PADE=0xfe, LF_PADF=0xff, }; enum { SYM_S_COMPILE=0x1, SYM_S_REGISTER=0x1001, SYM_S_BPREL32=0x1006, SYM_S_LPROC32=0x100a, SYM_S_GPROC32=0x100b, SYM_S_LDATA32=0x1007, SYM_S_GDATA32=0x1008, SYM_S_LABEL32=0x209, SYM_S_UDT=0x1003, SYM_S_CONSTANT=0x1002, }; enum { TYPE_S_COMPILE=0x1, TYPE_S_REGISTER=0x1001, TYPE_S_BPREL32=0x1006, TYPE_S_LPROC32=0x100a, TYPE_S_GPROC32=0x100b, TYPE_S_LDATA32=0x1007, TYPE_S_GDATA32=0x1008, TYPE_S_LABEL32=0x209, TYPE_S_UDT=0x1003, TYPE_S_CONSTANT=0x1002, }; #include typedef struct _SymRecord{ WORD Length; union{ WORD Type; BYTE Start[2]; }u1; union{ struct { BYTE Machine; BYTE flags[3]; BYTE version[1]; }S_COMPILE; struct { DWORD SymOff; WORD Segment; }S_SSEARCH ; struct { }S_END ; struct { BYTE SkipData[1]; }S_SKIP ; struct { }S_CVRESERVE; struct { DWORD Signature; BYTE Name[1]; }S_OBJNAME; struct { }S_ENDARG; struct { }S_COBOLUDT; struct { }S_MANYREG; struct { }S_RETURN ; struct { }S_ENTRYTHIS ; struct { DWORD TypeIndex; WORD Register; BYTE Name[1]; }S_REGISTER ; struct { DWORD TypeIndex; WORD Value; BYTE Name[1]; }S_CONSTANT ; struct { DWORD TypeIndex; BYTE Name[1]; }S_UDT; struct { }S_COBOLUDT1 ; struct { }S_MANYREG1 ; struct { int Offset; DWORD TypeIndex; BYTE Name[1]; }S_BPREL32 ; struct { DWORD TypeIndex; DWORD Offset; WORD Segment; BYTE Name[1]; }S_LDATA32 ; struct { DWORD TypeIndex; DWORD Offset; WORD Segment; BYTE Name[1]; }S_GDATA32 ; struct { }S_PUB32 ; struct { DWORD pParent; DWORD pEnd; DWORD pNext; DWORD ProcLength; DWORD DebugStart; DWORD DebugEnd; DWORD ProcType; DWORD Offset; WORD Segment; BYTE Flags; BYTE Name[1]; }S_LPROC32 ; struct { DWORD pParent; DWORD pEnd; DWORD pNext; DWORD ProcLength; DWORD DebugStart; DWORD DebugEnd; DWORD ProcType; DWORD Offset; WORD Segment; BYTE Flags; BYTE Name[1]; }S_GPROC32 ; struct { }S_THUNK32 ; struct { }S_BLOCK32 ; struct { }S_WITH32 ; struct { DWORD Offset; WORD Segment; BYTE Flags; BYTE Name[1]; }S_LABEL32 ; struct { }S_CEXMODEL32 ; struct { }S_VFTTABLE32 ; struct { }S_REGREL32 ; struct { }S_LTHREAD32 ; struct { }S_GTHREAD32 ; struct { }S_LPROCMIPS ; struct { }S_GPROCMIPS ; struct { }S_PROCREF ; struct { }S_DATAREF ; struct { }S_ALIGN ; }u; }SYMRECORD; typedef union _LeafNumbers { WORD NumbersType; WORD Number; BYTE Value[1]; }LeafNumbers; typedef struct _TypeRecord{ WORD Length; union{ WORD Type; BYTE Start[2]; }u1; union{ struct { WORD Count; WORD property; DWORD field; DWORD dList; DWORD vshape; union{ LeafNumbers Length; BYTE Name[1]; }u; }LF_CLASS; struct { DWORD TypeIndex; WORD Attribute; }LF_MODIFIER ; struct { DWORD Rvtype; DWORD Class; DWORD This; BYTE Call; BYTE Res; WORD Parms; DWORD Arglist; DWORD Thisadjust; }LF_MFUNCTION ; struct { DWORD TypeIndex; union{ DWORD Attribute; DWORD ptrtype:5; DWORD ptrmode:3; DWORD isflat32:1; DWORD volatileType:1; DWORD constType:1; DWORD unaligned:1; DWORD restrict:1; DWORD unused:19; }; BYTE variant[1]; }LF_POINTER ; struct { }S_CVRESERVE; struct { DWORD Signature; BYTE Name[1]; }S_OBJNAME; struct { }S_ENDARG; struct { }S_COBOLUDT; struct { }S_MANYREG; struct { }S_RETURN ; struct { }S_ENTRYTHIS ; struct { DWORD TypeIndex; WORD Register; BYTE Name[1]; }S_REGISTER ; struct { DWORD TypeIndex; WORD Value; BYTE Name[1]; }S_CONSTANT ; struct { DWORD TypeIndex; BYTE Name[1]; }S_UDT; struct { }S_COBOLUDT1 ; struct { }S_MANYREG1 ; struct { int Offset; DWORD TypeIndex; BYTE Name[1]; }S_BPREL32 ; struct { DWORD TypeIndex; DWORD Offset; WORD Segment; BYTE Name[1]; }S_LDATA32 ; struct { DWORD TypeIndex; DWORD Offset; WORD Segment; BYTE Name[1]; }S_GDATA32 ; struct { }S_PUB32 ; struct { DWORD pParent; DWORD pEnd; DWORD pNext; DWORD ProcLength; DWORD DebugStart; DWORD DebugEnd; DWORD ProcType; DWORD Offset; WORD Segment; BYTE Flags; BYTE Name[1]; }S_LPROC32 ; struct { DWORD pParent; DWORD pEnd; DWORD pNext; DWORD ProcLength; DWORD DebugStart; DWORD DebugEnd; DWORD ProcType; DWORD Offset; WORD Segment; BYTE Flags; BYTE Name[1]; }S_GPROC32 ; struct { }S_THUNK32 ; struct { }S_BLOCK32 ; struct { }S_WITH32 ; struct { DWORD Offset; WORD Segment; BYTE Flags; BYTE Name[1]; }S_LABEL32 ; struct { }S_CEXMODEL32 ; struct { }S_VFTTABLE32 ; struct { }S_REGREL32 ; struct { }S_LTHREAD32 ; struct { }S_GTHREAD32 ; struct { }S_LPROCMIPS ; struct { }S_GPROCMIPS ; struct { }S_PROCREF ; struct { }S_DATAREF ; struct { }S_ALIGN ; }u; }TYPERECORD; #include class CObjFileView:public CWispList { public: CObjFileView(); ~CObjFileView(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnHexDisplayEvent) DECLARE_WISP_MSG_EVENT(OnDeleteWatchEvent) DECLARE_WISP_MSG_EVENT(OnEventShowData) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnViewerCmd) CObjFile m_ObjFile; static STFLAGSARRAY FlagsArray[]; static STFLAGSARRAY RleFlagsArray[]; static STFLAGSARRAY MachineTypeArray[]; static STFLAGSARRAY SymBaseTypeArray[]; static STFLAGSARRAY SymComplexTypeArray[]; static STFLAGSARRAY SymStorageClassArray[]; static STFLAGSARRAY COMPILE_machineArray[]; static STFLAGSARRAY COMPILE_LanguageArray[]; static STFLAGSARRAY X86X87RegisterArray[]; static STFLAGSARRAY FileHeaderCharacteristicsArray[]; bool AnalyserSymbolSection(HANDLE hItem,OBJ_SECTION* ObjSection,bool FirstSymbolSection); bool AnalyserTypeSection(HANDLE hItem,OBJ_SECTION* ObjSection,bool FirstTypeSection); }; #endif ================================================ FILE: Project/Syser/Source/ObjectDirectory.cpp ================================================ #include "Stdafx.h" #include "Syser.h" DWORD dwObjectRootDirectory = 0; WISP_CHAR *ObjectTypeName[]= { WSTR("Directory"), WSTR("Mutant"), WSTR("Thread"), WSTR("Controller"), WSTR("Profile"), WSTR("Event"), WSTR("Type"), WSTR("Section"), WSTR("EventPair"), WSTR("SymbolicLink"), WSTR("Timer"), WSTR("File"), WSTR("Driver"), WSTR("Device"), WSTR("Token"), WSTR("IoCompletion"), WSTR("Process"), WSTR("Adapter"), WSTR("Key"), WSTR("Port"), WSTR("Semaphore"), WSTR("WmiGuid"), NULL, }; bool GetFileObjectName(FILE_OBJECT* FileObject,WCHAR* ObjectName,DWORD dwBufferLen) { WCHAR* Name; bool bOK; DWORD dwLen; ObjectName[0]=0; Name = (WCHAR*)ReadDword(&FileObject->FileName.Buffer,&bOK); if(!bOK) return false; if(ReadWord(&FileObject->FileName.Length,(WORD*)&dwLen)==false) return false; if(dwLen==0 || Name==0) return false; dwLen>>=1; if(dwLen>64) dwLen=64; SyserPrivateMemCopy((BYTE *)ObjectName, (BYTE *)Name,dwLen<<1); ObjectName[dwLen]=0; return true; } bool GetObjectName(DWORD ObjectHandle,WCHAR* ObjectName) { DWORD dwTmp; BYTE dwLen; WISP_CHAR *Name=NULL; ObjectName[0]=0; if(ObjectHandle==0) return false; dwLen =(BYTE) ReadByteDefaultValue((DWORD *)(ObjectHandle-0xc),0); if(dwLen==0) return false; dwTmp = ObjectHandle-0x18 - dwLen; dwLen = ReadByteDefaultValue((DWORD *)(dwTmp+4),0); if(dwLen==0) return false; dwLen>>=1; Name = (WISP_CHAR*)ReadDwordDefaultValue((DWORD *)(dwTmp+8),0); if(Name==NULL) return false; if(dwLen>64) dwLen=64; SyserPrivateMemCopy((BYTE *)ObjectName, (BYTE *)Name,dwLen<<1); ObjectName[dwLen] = 0; return true; } DWORD GetObjectTypeID(DWORD ObjectHandle) { WISP_CHAR ObjectTypeNameBuf[64]; int i,j; if(GetObjectTypeName(ObjectHandle,ObjectTypeNameBuf)==false) return MAX_OBJECT_TYPE; j = sizeof(ObjectTypeName)/sizeof(ObjectTypeName[0]); for(i = 0; i < j-1;i++) { if(TStrCmp(ObjectTypeName[i],ObjectTypeNameBuf)==0) return i; } return MAX_OBJECT_TYPE; } bool GetObjectTypeName(DWORD ObjectHandle,WCHAR *TypeName) { WCHAR* Name; DWORD dwValue; DWORD dwLen; TypeName[0]=0; dwValue = ReadDwordDefaultValue((DWORD *)(ObjectHandle-0x10),0); if(dwValue==0) return false; Name=(WCHAR*)ReadDwordDefaultValue ((void*)(dwValue+0x44),0); if(Name==NULL) return false; dwLen = ReadWordDefaultValue ((void*)(dwValue+0x40),0); if(dwLen==0) return false; dwLen>>=1; if(dwLen>64) dwLen=64; SyserPrivateMemCopy((BYTE *)TypeName, (BYTE *)Name,dwLen<<1); TypeName[dwLen]=0; return true; } bool FindFirstObject(WISP_CHAR *ObjectName,OBJFINDDATA &FindData) { if(ObjectName==NULL) { FindData.ObjectHandle=GetObjectRootDirectoryHandle(); FindData.ReturnObjectHandle=0; FindData.NextObjectPointer=NULL; FindData.DirectoryItemIndex=0; return true; } return false; } bool FindNextObject(OBJFINDDATA &FindData) { int i; DWORD ObjectHandle; PObjectPointer Pointer; if(FindData.ObjectHandle==0) { if(FindFirstObject(NULL,FindData)==false) return false; } for(;FindData.DirectoryItemIndex<0x25;FindData.DirectoryItemIndex++) { if(FindData.NextObjectPointer) { FindData.ReturnObjectHandle = ReadDwordDefaultValue(&FindData.NextObjectPointer->ObjectHandle,0); FindData.NextObjectPointer = (PObjectPointer)ReadDwordDefaultValue((DWORD*)&FindData.NextObjectPointer->Next,0); }else { Pointer = (PObjectPointer)ReadDwordDefaultValue((DWORD*)& FindData.ObjectDirectoryTablePointer->Pointer[FindData.DirectoryItemIndex],0); if(Pointer==NULL) continue; FindData.ReturnObjectHandle = ReadDwordDefaultValue(&Pointer->ObjectHandle,0); FindData.NextObjectPointer = (PObjectPointer)ReadDwordDefaultValue((DWORD*)&Pointer->Next,0); } if(FindData.NextObjectPointer==NULL) FindData.DirectoryItemIndex++; return true; } return false; } DWORD dwListObjectCounter = 0; bool ListObject(OBJFINDDATA &FindData,DWORD ObjectType,ObjectOperatorCallBack CallBack,WISP_CHAR **Name) { OBJFINDDATA CurFindData; while(FindNextObject(FindData)) { if(GetObjectTypeID(FindData.ReturnObjectHandle)==ObjectType) { if(CallBack!=NULL) if(CallBack(FindData.ReturnObjectHandle,Name)==false) return false; } if(IsDirectoryObjectType(FindData.ReturnObjectHandle)) { CurFindData.ObjectHandle=FindData.ReturnObjectHandle; CurFindData.DirectoryItemIndex=0; CurFindData.NextObjectPointer=NULL; if(ListObject(CurFindData,ObjectType,CallBack,Name)==false) return false; } } return true; } DWORD GetObjectRootDirectoryHandle() { if(dwObjectRootDirectory==0) InitObjectDirectory(); return dwObjectRootDirectory; } DWORD GetObjectDirectoryHandleByName(WISP_CHAR * Name,DWORD dwParentDirectoryHandle) { WISP_CHAR PathSeparator='\\'; WISP_CHAR *SubDirName = NULL; WISP_CHAR ObjectName[MAX_PATH+1]; WISP_CHAR PathName[MAX_PATH+1]; WISP_CHAR *DirectoryName=PathName; //DWORD dwSum,dwOldSum; DWORD *Pointer; DWORD dwStrLen,i,dwLen,dwTmpValue; PObjectPointer PObjPointer; if(Name==NULL) return 0; dwTmpValue = TStrLen(Name); if(dwTmpValue>=MAX_PATH) return 0; ObjectName[MAX_PATH]=0; PathName[MAX_PATH]=0; TStrCpyLimit(DirectoryName,Name,MAX_PATH); if(dwParentDirectoryHandle==0) dwParentDirectoryHandle=GetObjectRootDirectoryHandle(); if(DirectoryName[0]==PathSeparator) DirectoryName++; dwStrLen = TStrLen(DirectoryName); for(i = 0; i < dwStrLen && DirectoryName[0]==PathSeparator;i++,DirectoryName++); SubDirName = TStrChr(DirectoryName,PathSeparator); while(SubDirName!=NULL) { SubDirName[0]=0; dwParentDirectoryHandle = GetChildObjectHandleByName(DirectoryName,dwParentDirectoryHandle); if(dwParentDirectoryHandle==0) return 0; if(IsDirectoryObjectType(dwParentDirectoryHandle)==false) return 0; DirectoryName = SubDirName+1; dwStrLen = TStrLen(DirectoryName); for(i = 0; i < dwStrLen && DirectoryName[0]==PathSeparator;i++,DirectoryName++); SubDirName = TStrChr(DirectoryName,PathSeparator); } return GetChildObjectHandleByName(DirectoryName,dwParentDirectoryHandle); } bool IsDirectoryObjectType(DWORD ObjectHandle) { DWORD dwTypeId = GetObjectTypeID(ObjectHandle); return dwTypeId==DIRECTORY_OBJECT_TYPE; } DWORD GetChildObjectHandleByName(WISP_CHAR * DirectoryName,DWORD dwParentDirectoryHandle) { WISP_CHAR PathSeparator='\\'; WISP_CHAR *SubDirName = NULL; WISP_CHAR ObjectName[MAX_PATH+1]; DWORD dwSum,dwOldSum; DWORD *Pointer; DWORD dwTmpValue; DWORD dwLen; PObjectPointer PObjPointer; int i; if(DirectoryName==NULL) return 0; if(dwParentDirectoryHandle==0) dwParentDirectoryHandle=GetObjectRootDirectoryHandle(); dwLen = TStrLen(DirectoryName); for(i = 0; i < (int)dwLen && DirectoryName[0]==PathSeparator;i++,DirectoryName++); dwLen = TStrLen(DirectoryName); if(dwLen==0) return 0; dwSum = 0; for(i = 0; i < (int)dwLen; i++) { dwOldSum = dwSum; dwSum >>=1; dwOldSum *= 3; dwSum += dwOldSum; dwTmpValue = DirectoryName[i]; if(dwTmpValue>='a' && dwTmpValue <='z') dwTmpValue-=0x20; dwSum+=dwTmpValue; } dwSum %= 0x25; PObjPointer = (PObjectPointer)ReadDwordDefaultValue((DWORD*)(dwParentDirectoryHandle+dwSum*4),0); while(PObjPointer!=NULL) { dwTmpValue = ReadDwordDefaultValue(&PObjPointer->ObjectHandle,0); if(dwTmpValue==0) return 0; if(GetObjectName(dwTmpValue,ObjectName)==true) { if(TStrICmp(ObjectName,DirectoryName)==0) return dwTmpValue; } PObjPointer = (PObjectPointer)ReadDwordDefaultValue((DWORD *)&PObjPointer->Next,0); } return 0; } DWORD GetObjectHeader(DWORD ObjectHandle) { BYTE Len; Len =ReadByteDefaultValue((DWORD *)(ObjectHandle-0xc),0); return ObjectHandle-0x18 - Len; } bool InitObjectDirectory() { PVOID pObject; HANDLE Handle; NTSTATUS Status; UNICODE_STRING RootDirectory; OBJECT_ATTRIBUTES ObjAtt; if(dwObjectRootDirectory) return true; RtlInitUnicodeString(&RootDirectory,OBJECT_ROOT_DIRECTORY); ObjAtt.Length=sizeof(OBJECT_ATTRIBUTES); ObjAtt.ObjectName=&RootDirectory; ObjAtt.SecurityDescriptor=0; ObjAtt.Attributes=0x40; ObjAtt.SecurityQualityOfService=0; ObjAtt.RootDirectory=0; Status =ZwOpenDirectoryObject(&Handle,1,&ObjAtt); if (!NT_SUCCESS(Status)) { ::DbgPrint("ZwOpenDirectoryObject Fault"); return false; } Status = ObReferenceObjectByHandle(Handle,1,0,0,(PVOID*)&dwObjectRootDirectory,0); if (!NT_SUCCESS(Status)) { ::DbgPrint("ObReferenceObjectByHandle Fault"); ZwClose(Handle); return false; } ObfDereferenceObject((PVOID)dwObjectRootDirectory); ZwClose(Handle); return true; } ================================================ FILE: Project/Syser/Source/ObjectDirectory.h ================================================ #ifndef _OBJECTDIRECTORY_H_ #define _OBJECTDIRECTORY_H_ typedef struct _OBJECT_DIRECTORY_ENTRY { /*000*/ struct _OBJECT_DIRECTORY_ENTRY *NextEntry; /*004*/ POBJECT Object; /*008*/ } OBJECT_DIRECTORY_ENTRY, * POBJECT_DIRECTORY_ENTRY, **PPOBJECT_DIRECTORY_ENTRY; // ----------------------------------------------------------------- #define OBJECT_HASH_TABLE_SIZE 37 typedef struct _OBJECT_DIRECTORY { /*000*/ POBJECT_DIRECTORY_ENTRY HashTable [OBJECT_HASH_TABLE_SIZE]; /*094*/ POBJECT_DIRECTORY_ENTRY CurrentEntry; /*098*/ BOOLEAN CurrentEntryValid; /*099*/ BYTE Reserved1; /*09A*/ WORD Reserved2; /*09C*/ DWORD Reserved3; /*0A0*/ } OBJECT_DIRECTORY, * POBJECT_DIRECTORY, **PPOBJECT_DIRECTORY; /* typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; } LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY; */ typedef struct _OBJECT_CREATOR_INFO { /*000*/ LIST_ENTRY ObjectList; // OBJECT_CREATOR_INFO /*008*/ HANDLE UniqueProcessId; /*00C*/ WORD Reserved1; /*00E*/ WORD Reserved2; /*010*/ } OBJECT_CREATOR_INFO, * POBJECT_CREATOR_INFO, **PPOBJECT_CREATOR_INFO; typedef struct _QUOTA_BLOCK { /*000*/ DWORD Flags; /*004*/ DWORD ChargeCount; /*008*/ DWORD PeakPoolUsage [2]; // NonPagedPool, PagedPool /*010*/ DWORD PoolUsage [2]; // NonPagedPool, PagedPool /*018*/ DWORD PoolQuota [2]; // NonPagedPool, PagedPool /*020*/ } QUOTA_BLOCK, * PQUOTA_BLOCK, **PPQUOTA_BLOCK; #define OB_FLAG_CREATE_INFO 0x01 // has OBJECT_CREATE_INFO #define OB_FLAG_KERNEL_MODE 0x02 // created by kernel #define OB_FLAG_CREATOR_INFO 0x04 // has OBJECT_CREATOR_INFO #define OB_FLAG_EXCLUSIVE 0x08 // OBJ_EXCLUSIVE #define OB_FLAG_PERMANENT 0x10 // OBJ_PERMANENT #define OB_FLAG_SECURITY 0x20 // has security descriptor #define OB_FLAG_SINGLE_PROCESS 0x40 // no HandleDBList typedef struct _OBJECT_HEADER { /*000*/ DWORD PointerCount; // number of references /*004*/ DWORD HandleCount; // number of open handles /*008*/ POBJECT_TYPE ObjectType; /*00C*/ BYTE NameOffset; // -> OBJECT_NAME /*00D*/ BYTE HandleDBOffset; // -> OBJECT_HANDLE_DB /*00E*/ BYTE QuotaChargesOffset; // -> OBJECT_QUOTA_CHARGES /*00F*/ BYTE ObjectFlags; // OB_FLAG_* /*010*/ union { // OB_FLAG_CREATE_INFO ? ObjectCreateInfo : QuotaBlock /*010*/ PQUOTA_BLOCK QuotaBlock; /*010*/ POBJECT_CREATOR_INFO ObjectCreateInfo; /*014*/ }; /*014*/ PSECURITY_DESCRIPTOR SecurityDescriptor; /*018*/ } OBJECT_HEADER, * POBJECT_HEADER, **PPOBJECT_HEADER; typedef struct _OBJECT_NAME { /*000*/ POBJECT_DIRECTORY Directory; /*004*/ UNICODE_STRING Name; /*00C*/ DWORD Reserved; /*010*/ } OBJECT_NAME, * POBJECT_NAME, **PPOBJECT_NAME; typedef struct _OBJECT_HANDLE_DB { /*000*/ union { /*000*/ struct _EPROCESS *Process; /*000*/ struct _OBJECT_HANDLE_DB_LIST *HandleDBList; /*004*/ }; /*004*/ DWORD HandleCount; /*008*/ } OBJECT_HANDLE_DB, * POBJECT_HANDLE_DB, **PPOBJECT_HANDLE_DB; #define OBJECT_HANDLE_DB_ sizeof (OBJECT_HANDLE_DB) // ----------------------------------------------------------------- typedef struct _OBJECT_HANDLE_DB_LIST { /*000*/ DWORD Count; /*004*/ OBJECT_HANDLE_DB Entries [1]; /*???*/ } OBJECT_HANDLE_DB_LIST, * POBJECT_HANDLE_DB_LIST, **PPOBJECT_HANDLE_DB_LIST; #define OBJECT_HANDLE_DB_LIST_ sizeof (OBJECT_HANDLE_DB_LIST) #define OB_SECURITY_CHARGE 0x00000800 typedef struct _OBJECT_QUOTA_CHARGES { /*000*/ DWORD PagedPoolCharge; /*004*/ DWORD NonPagedPoolCharge; /*008*/ DWORD SecurityCharge; /*00C*/ DWORD Reserved; /*010*/ } OBJECT_QUOTA_CHARGES, * POBJECT_QUOTA_CHARGES, **PPOBJECT_QUOTA_CHARGES;//If the OB_FLAG_CREATE_INFO bit of the ObjectFlags in the OBJECT_HEADER is zero, the QuotaBlock member points to a QUOTA_BLOCK structure (Listing 6) that contains statistical information about the current resource usage of the object. typedef struct stObjectPointer{ struct stObjectPointer *Next; DWORD ObjectHandle; }ObjectPointer,*PObjectPointer; typedef struct stObjectDirectoryPointerTable { PObjectPointer Pointer[0x25]; }ObjectDirectoryPointerTable,*PObjectDirectoryPointerTable; typedef struct stObjFindData{ union { PObjectDirectoryPointerTable ObjectDirectoryTablePointer; DWORD ObjectHandle; }; DWORD DirectoryItemIndex; DWORD ReturnObjectHandle; PObjectPointer NextObjectPointer; }OBJFINDDATA; typedef enum{ DIRECTORY_OBJECT_TYPE, MUTANT_OBJECT_TYPE, THREAD_OBJECT_TYPE, CONTROLLER_OBJECT_TYPE, PROFILE_OBJECT_TYPE, EVENT_OBJECT_TYPE, TYPE_OBJECT_TYPE, SECTION_OBJECT_TYPE, EVENTPAIR_OBJECT_TYPE, SYMBOLICLINK_OBJECT_TYPE, TIMER_OBJECT_TYPE, FILE_OBJECT_TYPE, DRIVER_OBJECT_TYPE, DEVICE_OBJECT_TYPE, TOKEN_OBJECT_TYPE, IOCOMPLETION_OBJECT_TYPE, PROCESS_OBJECT_TYPE, ADAPTER_OBJECT_TYPE, KEY_OBJECT_TYPE, PORT_OBJECT_TYPE, SEMAPHORE_OBJECT_TYPE, MAX_OBJECT_TYPE, }OBJECT_TYPE_ID; #define OBJECT_ROOT_DIRECTORY L"\\" typedef bool (*ObjectOperatorCallBack)(DWORD,WISP_CHAR**); bool InitObjectDirectory(); extern DWORD dwObjectRootDirectory; extern DWORD dwListObjectCounter; bool GetObjectTypeName(DWORD ObjectHandle,WCHAR *TypeName); bool GetObjectName(DWORD ObjectHandle,WCHAR* ObjectName); DWORD GetObjectRootDirectoryHandle(); DWORD GetObjectDirectoryHandleByName(WISP_CHAR * DirectoryName,DWORD dwParentDirectoryHandle=0); DWORD GetObjectTypeID(DWORD ObjectHandle); DWORD GetChildObjectHandleByName(WISP_CHAR * DirectoryName,DWORD dwParentDirectoryHandle); bool FindFirstObject(WISP_CHAR *ObjectName,OBJFINDDATA &FindData); bool FindNextObject(OBJFINDDATA &FindData); bool IsDirectoryObjectType(DWORD ObjectHandle); DWORD GetObjectHeader(DWORD ObjectHandle); bool ListObject(OBJFINDDATA &FindData,DWORD ObjectType,ObjectOperatorCallBack CallBack,WISP_CHAR **Name=NULL); bool GetFileObjectName(FILE_OBJECT* FileObject,WCHAR* ObjectName,DWORD dwBufferLen); #endif /* _OBJECTDIRECTORY_H_ */ ================================================ FILE: Project/Syser/Source/ObjectDirectoryWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "ObjectDirectoryWnd.h" #ifdef CODE_OS_WIN #include "Ring3Object.h" #endif WISP_MSG_MAP_BEGIN(CObjectDirectoryWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispSplitWnd) WISP_MSG_CMD_MAP_BEGIN(CObjectDirectoryWnd) WISP_MSG_CMD_MAP(CHILD_WND_ID_OBJECTDIRECTORYTRE,OnCmdObjectDirectory) WISP_MSG_CMD_MAP(CHILD_WND_ID_OBJECTLIST,OnCmdObjectList) WISP_MSG_CMD_MAP_END bool CObjectDirectoryWnd::OnCmdObjectDirectory(IN WISP_MSG *pMsg) { NUM_PTR NumPtr; WCHAR* String; WISP_CHAR wcBuf[MAX_PATH]={0}; DWORD ObjectHandle; HANDLE hSubItem,hItem; if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_EXPANDED||pMsg->Command.CmdMsg==WISP_CMD_ITEM_SELECTED) { hItem = (HANDLE)pMsg->Command.Param2; hSubItem = m_ObjectDirectoryTree.GetItem(0,hItem); if(hSubItem==NULL) { m_ObjectList.ClearChildItem(); ObjectList(hItem); return true; } NumPtr = m_ObjectDirectoryTree.GetItemData(hItem,0); ObjectHandle = *(DWORD*)&NumPtr; String = m_ObjectDirectoryTree.GetItemText(hSubItem,0); if(TStrCmp(String, WISP_STR(".."))==0) { m_ObjectDirectoryTree.ClearChildItem(hItem); m_ObjectList.ClearChildItem(); #ifdef CODE_OS_WIN InitContext(hItem); #else InitContext(ObjectHandle,hItem); #endif } else { m_ObjectList.ClearChildItem(); ObjectList(hItem); } } if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_UNEXPANDED) { hItem = (HANDLE)pMsg->Command.Param2; hSubItem = m_ObjectDirectoryTree.GetItem(0,hItem); if(hSubItem==NULL) return true; m_ObjectDirectoryTree.ClearChildItem(hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hItem); } return true; } bool CObjectDirectoryWnd::OnCmdObjectList(IN WISP_MSG *pMsg) { return true; } bool CObjectDirectoryWnd::OnCreate(IN WISP_MSG *pMsg) { AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,17)); m_ObjectDirectoryTree.Create(NULL,0,0,140,m_ClientRect.cy,this,CHILD_WND_ID_OBJECTDIRECTORYTRE,WISP_WLS_TREE); m_ObjectList.Create(NULL,0,0,0,0,this,CHILD_WND_ID_OBJECTLIST,WISP_WLS_TREE|WISP_WLS_COLUMN_TITLE); InsertWnd(&m_ObjectDirectoryTree,0,m_ObjectDirectoryTree.m_WindowRect.cx); InsertWnd(&m_ObjectList,0,0); AdjustWndPos(); m_ObjectList.InsertColumn(WSTR("Name"),170); m_ObjectList.InsertColumn(WSTR("Type"),80); m_ObjectList.InsertColumn(WSTR("SymLink"),100); m_ObjectDirectoryTree.InsertColumn(NULL,100); m_ObjectList.SetOwner(this); m_ObjectDirectoryTree.SetOwner(this); UpdateContext(); return true; } bool CObjectDirectoryWnd::OnClose(IN WISP_MSG*pMsg) { #ifdef _SYSER_ gpSyser->m_MainFrame.SetDefaultFocus(); #endif return true; } void CObjectDirectoryWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("Objects"),CWispRect(0,0,400,300),NULL,0,WISP_SWS_HORZ|WISP_WS_NORMAL); Center(); } } void CObjectDirectoryWnd::UpdateContext() { #ifdef CODE_OS_NT_DRV InitContext(0,NULL); #else InitContext(); #endif } bool CObjectDirectoryWnd::InitContext() { #if CODE_OS_NT_DRV DWORD ObjectHandle; OBJFINDDATA FindData; WISP_CHAR TypeName[65],ObjectName[65]; HANDLE hItem,hListItem,hChildItem; ObjectHandle = dwObjectRootDirectory; FindData.ObjectHandle=ObjectHandle; FindData.NextObjectPointer=NULL; FindData.DirectoryItemIndex=0; hItem=NULL; while(FindNextObject(FindData)) { GetObjectTypeName(FindData.ReturnObjectHandle,TypeName); GetObjectName(FindData.ReturnObjectHandle,ObjectName); if(IsDirectoryObjectType(FindData.ReturnObjectHandle)) { hChildItem = m_ObjectDirectoryTree.InsertItem(ObjectName,hItem); m_ObjectDirectoryTree.SetItemData(hChildItem,0,FindData.ReturnObjectHandle); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hChildItem); } hListItem = m_ObjectList.InsertItem(ObjectName); m_ObjectList.SetItemData(hListItem,0,FindData.ReturnObjectHandle); m_ObjectList.SetItemText(hListItem,1,TypeName); } #else { LoadAPI(); bool bOK; FIND_OBJECT_DATA FindObjectData; HANDLE hItem,hSubItem; hItem = NULL; bOK = FindFirstObject(L"\\",&FindObjectData); if(bOK) { while(bOK) { if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"Directory")==0) { hSubItem = m_ObjectDirectoryTree.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer,hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hSubItem); } bOK = FindNextObject(&FindObjectData); } CloseFindObject(&FindObjectData); } } #endif return true; } bool CObjectDirectoryWnd::InitContext(DWORD ObjectHandle,HANDLE hItem) { #ifdef CODE_OS_NT_DRV OBJFINDDATA FindData; WISP_CHAR TypeName[65],ObjectName[65]; HANDLE hListItem,hChildItem; if(ObjectHandle==0) ObjectHandle = dwObjectRootDirectory; FindData.ObjectHandle=ObjectHandle; FindData.NextObjectPointer=NULL; FindData.DirectoryItemIndex=0; while(FindNextObject(FindData)) { GetObjectTypeName(FindData.ReturnObjectHandle,TypeName); GetObjectName(FindData.ReturnObjectHandle,ObjectName); if(IsDirectoryObjectType(FindData.ReturnObjectHandle)) { hChildItem = m_ObjectDirectoryTree.InsertItem(ObjectName,hItem); m_ObjectDirectoryTree.SetItemData(hChildItem,0,FindData.ReturnObjectHandle); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hChildItem); } hListItem = m_ObjectList.InsertItem(ObjectName); m_ObjectList.SetItemData(hListItem,0,FindData.ReturnObjectHandle); m_ObjectList.SetItemText(hListItem,1,TypeName); } #endif return true; } bool CObjectDirectoryWnd::InitContext(HANDLE hItem) { #ifdef CODE_OS_WIN bool bOK; WCHAR FullPathName[512]; HANDLE hSubItem; FIND_OBJECT_DATA FindObjectData; WCHAR TargetName[512]; UNICODE_STRING LinkTargetName; DWORD FullPathNameLen; ULONG ReturnLength; TStrCpy(FullPathName,"\\"); m_ObjectDirectoryTree.GetItemFullPath(hItem,0,&FullPathName[1]); FullPathNameLen=TStrLen(FullPathName); bOK = FindFirstObject(FullPathName,&FindObjectData); if(bOK) { while(bOK) { if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"Directory")==0) { hSubItem = m_ObjectDirectoryTree.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer,hItem); m_ObjectDirectoryTree.InsertItem(WSTR(".."),hSubItem); } hSubItem = m_ObjectList.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); m_ObjectList.SetItemText(hSubItem,1,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer); if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"SymbolicLink")==0) { FullPathName[FullPathNameLen]=0; TStrCat(FullPathName,"\\"); TStrCat(FullPathName,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); LinkTargetName.Buffer=TargetName; LinkTargetName.MaximumLength=sizeof(TargetName); LinkTargetName.Length =sizeof(TargetName)-2; if(GetSymbolicLink(FullPathName,&LinkTargetName,&ReturnLength)) { m_ObjectList.SetItemText(hSubItem,2,LinkTargetName.Buffer); } } bOK = FindNextObject(&FindObjectData); } CloseFindObject(&FindObjectData); } m_ObjectList.Update(); #endif return true; } bool CObjectDirectoryWnd::ObjectList(HANDLE hItem) { #ifdef CODE_OS_WIN bool bOK; WCHAR FullPathName[512]; HANDLE hSubItem; FIND_OBJECT_DATA FindObjectData; WCHAR TargetName[512]; UNICODE_STRING LinkTargetName; DWORD FullPathNameLen; ULONG ReturnLength; TStrCpy(FullPathName,"\\"); m_ObjectDirectoryTree.GetItemFullPath(hItem,0,&FullPathName[1]); FullPathNameLen=TStrLen(FullPathName); bOK = FindFirstObject(FullPathName,&FindObjectData); if(bOK) { while(bOK) { hSubItem = m_ObjectList.InsertItem(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); m_ObjectList.SetItemText(hSubItem,1,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer); if(TStrICmp(FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectTypeName.Buffer,"SymbolicLink")==0) { FullPathName[FullPathNameLen]=0; TStrCat(FullPathName,"\\"); TStrCat(FullPathName,FindObjectData.FindDataBuffer->DirectoryBaseInfo.ObjectName.Buffer); LinkTargetName.Buffer=TargetName; LinkTargetName.MaximumLength=sizeof(TargetName); LinkTargetName.Length =sizeof(TargetName)-2; if(GetSymbolicLink(FullPathName,&LinkTargetName,&ReturnLength)) { m_ObjectList.SetItemText(hSubItem,2,LinkTargetName.Buffer); } } bOK = FindNextObject(&FindObjectData); } CloseFindObject(&FindObjectData); } m_ObjectList.Update(); #endif //CODE_OS_WIN return true; } ================================================ FILE: Project/Syser/Source/ObjectDirectoryWnd.h ================================================ #ifndef _OBJECT_DIRECTORY_WND_H_ #define _OBJECT_DIRECTORY_WND_H_ #ifdef CODE_OS_NT_DRV #include "ObjectDirectory.h" #endif enum { CHILD_WND_ID_OBJECTDIRECTORYTRE=WISP_ID_USER_START+600, CHILD_WND_ID_OBJECTLIST, }; class CObjectDirectoryWnd:public CWispSplitWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnCmdObjectDirectory) DECLARE_WISP_MSG_CMD(OnCmdObjectList) CWispList m_ObjectDirectoryTree; CWispList m_ObjectList; bool InitContext(); bool InitContext(DWORD ObjectHandle,HANDLE hItem); bool InitContext(HANDLE hItem); bool ObjectList(HANDLE hItem); void Popup(); void UpdateContext(); }; #endif ================================================ FILE: Project/Syser/Source/OtherCmd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "OtherCmd.h" const WCHAR cmd_dx_usage[]= { L"d,db,dw,dd: Show memory data\n" L"Format: d[b,w,d] address\n" L"Example1: d[b,w,d] 401000\n" L"Example2: d[b,w,d] ESI+8\n" L"Example3: d[b,w,d] +\n" L"Example4: d[b,w,d] -\n" L"Example5: d[b,w,d] + offset\n" L"Example6: d[b,w,d] - offset\n" }; const WCHAR cmd_wcd_usage[]= { L"wc,wd: Code,Data Window command\n" L"Format: wc[d] [+][-] [address][index_of_windows]\n" L"Example1: wc[d] eip+5\n" L"Example2: wc[d] 1 (focus code[data] window 1)\n" L"Example3: wc[d] + (add new code[data] window)\n" L"Example4: wc[d] - (remove current code[data] window)\n" }; const WCHAR cmd_data_usage[]= { L"data: Data Window command\n" L"Format: data [+][-] [address][index_of_windows]\n" L"Example1: data eip+5\n" L"Example2: data 1 (focus data window 1)\n" L"Example3: data + (add new data window)\n" L"Example4: data - (remove current data window)\n" }; const WCHAR cmd_code_usage[]= { L"code: Code Window command\n" L"Format: code [+][-] [address][index_of_windows]\n" L"Example1: code eip+5\n" L"Example2: code 1 (focus code window 1)\n" L"Example3: code + (add new code window)\n" L"Example4: code - (remove current code window)\n" }; /* const WCHAR cmd_isf_usage[]= { L"isf: Identify standard C(++) library function\n" L"Format: isf address (if address is a standard C(++) library function and symbols will be inserted automaticly)\n" L"Example1: isf 401000\n" }; */ const WCHAR cmd_cv_usage[]= { L"cv: Dump CodeView context to console (then you can save console histroy by loader)\n" L"Format: cv\n" L"Example1: cv\n" }; const WCHAR cmd_dv_usage[]= { L"dv: Dump DataView context to console (then you can save console histroy by loader)\n" L"Format: dv\n" L"Example1: dv\n" }; SYSER_CMD_ENTRY OtherCmdTable[]= { //////////////////////////////////////////////////////////////////////////////////////////// //Info //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("?"), WSTR("Calculate expression"), exp_command}, //////////////////////////////////////////////////////////////////////////////////////////// //View //////////////////////////////////////////////////////////////////////////////////////////// {WSTR("cv"), WSTR("Print Code View string to console"), cv_command, cmd_cv_usage}, {WSTR("dv"), WSTR("Print Data View string to console"), dv_command, cmd_dv_usage}, {WSTR("sw"), WSTR("Show data at stack watch"), sw_command}, {WSTR("d"), WSTR("Show memory data"), db_command, cmd_dx_usage}, {WSTR("db"), WSTR("Show memory data (BYTE)"), db_command, cmd_dx_usage}, {WSTR("dw"), WSTR("Show memory data (WORD)"), db_command, cmd_dx_usage}, {WSTR("dd"), WSTR("Show memory data (DWORD)"), db_command, cmd_dx_usage}, {WSTR("wc"), WSTR("focus code view (wc + to add new view)"), wc_command, cmd_wcd_usage}, {WSTR("code"), WSTR("focus code view (code + to add new view)"), wc_command, cmd_code_usage}, {WSTR("wd"), WSTR("focus data view (wd + to add new view)"), wd_command, cmd_wcd_usage}, {WSTR("data"), WSTR("focus data view (data + to add new view)"), wd_command, cmd_data_usage}, {WSTR("ws"), WSTR("focus stack watch list (HotKey ALT+S)"), ws_command}, {WSTR("ww"), WSTR("focus watch list (HotKey ALT+S)"), ww_command}, {WSTR("wr"), WSTR("focus register list (HotKey ALT+R)"), wr_command}, {WSTR("wf"), WSTR("focus FPU register list (HotKey ALT+F)"), wf_command}, {WSTR("wx"), WSTR("focus XMM register list (HotKey ALT+X)"), wx_command}, {WSTR("dex"), WSTR("switch data view float address mode"), dex_command}, //////////////////////////////////////////////////////////////////////////////////////////// //Memory //////////////////////////////////////////////////////////////////////////////////////////// //{WSTR("isf"), WSTR("Identify standard C(++) library function"), isf_command, cmd_isf_usage}, {NULL,NULL,NULL} }; int dex_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { CDataView*pDataView; ULONG Index=0; if(argc==1) { CTabWndList::IT WndIt=gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.m_WndList.Begin(); while(WndIt!=gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.m_WndList.End()) { pDataView = (CDataView*)WndIt->pWnd; OUTPUT(WSTR("DataView[%d] Float Address %%s\n"),Index,pDataView->IsFloatMode()?WSTR("On "):WSTR("Off")); WndIt++; Index++; } return 0; } if(CALCEXP(argv[1],&Index)==false) Index = 0; pDataView = (CDataView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetWnd(Index); if(pDataView==NULL) { pDataView = ADD_DATA_VIEW(); } if(pDataView==NULL) return 0; OUTPUT(WSTR("DataView[%d] Float Address %%s\n"),Index,pDataView->IsFloatMode()?WSTR("Off"):WSTR("On")); pDataView->ToggleFloatMode(); return 0; } int cv_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { WCHAR szBuffer[MAX_LINE_CHAR]; CCodeView*pCodeView=ACTIVE_CODE_VIEW; if(pCodeView==NULL) return -1; HANDLE hItem = pCodeView->GetScrStartItem(); while(hItem) { pCodeView->GetItemText(hItem,ITEM_ADDRESS,szBuffer,MAX_LINE_CHAR); OUTPUT(WSTR("%s "),szBuffer); pCodeView->GetItemText(hItem,ITEM_BIN_DATA,szBuffer,MAX_LINE_CHAR); OUTPUT(WSTR("%-20s "),szBuffer); pCodeView->GetItemText(hItem,ITEM_ASM_CODE,szBuffer,MAX_LINE_CHAR); OUTPUT(WSTR("%-30s "),szBuffer); pCodeView->GetItemText(hItem,ITEM_COMMENT,szBuffer,MAX_LINE_CHAR); OUTPUT(WSTR("%s\n"),szBuffer); hItem = pCodeView->GetNextItem(hItem); } return 0; } int dv_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { BYTE DataBuffer[0x20]; WISP_CHAR Buffer[512],szSpace[32]; int nItem,Turn,BeginLine=0; DWORD nByte,CurPos; int ItemIndex; ULPOS Address; ULPOS OldAddress=0-1;; int nTotalLines=8; CDataView*pDataView=ACTIVE_DATA_VIEW; if(pDataView==NULL) return -1; nTotalLines=pDataView->m_nLinePerPage; if(argc>1) { if(CALCEXP(argv[1],&Address)) { OldAddress=pDataView->m_CurAddr; pDataView->m_CurAddr=Address; } if(argc>2) { if(CALCEXP(argv[2],&Address)) nTotalLines=Address; } } for(int nLine=0;nLinem_CurAddr+nLine*pDataView->m_nByte_Line; OUTPUT(WSTR("%08X "),Address); nByte=pDataView->m_ImageSize+pDataView->m_ImageBase-pDataView->m_CurAddr-nLine*pDataView->m_nByte_Line; if(nByte>(DWORD)pDataView->m_nByte_Line) nByte=(DWORD)pDataView->m_nByte_Line; //ֽ TStrCpy(szSpace,pDataView->m_Spaces); szSpace[pDataView->m_ShowLength]=0; nItem=(int)nByte/pDataView->m_ShowLength; if(nByte%pDataView->m_ShowLength) nItem++; Turn=pDataView->m_ShowLength*2+pDataView->m_ShowLength; pDataView->m_LenArray[HEX_HEX_INDEX][nLine]=Turn*nItem; for(ItemIndex=0;ItemIndexReadData(Address+ItemIndex*pDataView->m_ShowLength,DataBuffer,pDataView->m_ShowLength)==0) TStrCpy(Buffer,pDataView->m_UnReadable); else THexBytesToStr(DataBuffer,Buffer,(int)nByte,pDataView->m_ShowLength,szSpace); CurPos=pDataView->m_CurAddr+nLine*pDataView->m_nByte_Line+ItemIndex*pDataView->m_ShowLength; Buffer[pDataView->m_ShowLength*2]=0; OUTPUT(WSTR("%s "),Buffer); } for(DWORD ByteIndex=0 ; ByteIndex < nByte; ByteIndex++) { if(pDataView->ReadData((DWORD)(Address+ByteIndex),DataBuffer,1)==0) TStrCpy(Buffer,pDataView->m_UnReadableASCII); else THexBytesToASCII(DataBuffer,Buffer,1); CurPos=pDataView->m_CurAddr+nLine*pDataView->m_nByte_Line+ByteIndex; OUTPUT(WSTR("%c"),*Buffer); } OUTPUT(WSTR("\n")); } if(OldAddress!=0-1) pDataView->m_CurAddr=OldAddress; return 0; } int sw_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return 0; if(argc==1) { if(X86_REG_PTR.pESP) gpSyser->m_MainFrame.m_SystemExplorer.m_StackWatchList.UpdateContext(*X86_REG_PTR.pESP); } else { ULPOS Address; if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INPUT_ERROR; return -1; } gpSyser->m_MainFrame.m_SystemExplorer.m_StackWatchList.UpdateContext(Address); } return 0; } int wd_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { CDataView* pDataView; ULONG Address,Index,NewAddr; ASSERT_DEBUGGER_OPENED NewAddr = 0; gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SYSTEM_EXPLORER_VIEW); if(argc==1) { pDataView =(CDataView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); } else { if(argv[1][0]=='-') {//رյǰDataView if(gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetWndCount()>1) { Index = gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWndIndex(); gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.RemoveWnd(Index); gpSyser->m_MainFrame.SetDefaultFocus(); } return 0; } else if(argv[1][0]=='+') {//DataView NewAddr = ACTIVE_DATA_VIEW->m_CurAddr; pDataView = ADD_DATA_VIEW(); if(pDataView==NULL) return 1; } else { if(CALCEXP(argv[1],&Index)==false) Index = 0; pDataView =(CDataView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetWnd(Index); if(pDataView==NULL) { NewAddr = ACTIVE_DATA_VIEW->m_CurAddr; pDataView = ADD_DATA_VIEW(); if(pDataView==NULL) return 1; } else { gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.ChangeActiveWnd(pDataView); } } } if(argc>2 && CALCEXP(argv[2],&Address)) pDataView->ViewAddress(Address); else if(NewAddr) pDataView->ViewAddress(NewAddr); pDataView->Focus(); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int wc_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { CCodeView*pCodeView; ULONG Address,Index,NewAddr; ASSERT_DEBUGGER_OPENED NewAddr = 0; pSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SYSTEM_EXPLORER_VIEW); if(argc==1) { pCodeView =(CCodeView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); } else { if(argv[1][0]=='-') {//رյǰCodeView if(pSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetWndCount()>1) { Index = pSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWndIndex(); gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.RemoveWnd(Index); gpSyser->m_MainFrame.SetDefaultFocus(); } return 0; } else if(argv[1][0]=='+') {//CodeView NewAddr = ACTIVE_CODE_VIEW->m_CurAddr; pCodeView = ADD_CODE_VIEW(); if(pCodeView==NULL) return 1; } else { if(CALCEXP(argv[1],&Index)==false) Index = 0; pCodeView = (CCodeView*) gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetWnd(Index); if(pCodeView==NULL) { NewAddr = ACTIVE_CODE_VIEW->m_CurAddr; pCodeView = ADD_CODE_VIEW(); if(pCodeView==NULL) return 1; } else { gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.ChangeActiveWnd(pCodeView); } } } if(argc>2 && CALCEXP(argv[2],&Address)) pCodeView->SetStartAddress(Address,true); else if(NewAddr) pCodeView->SetStartAddress(NewAddr,true); pCodeView->Focus(); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int ws_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { pSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(0); pSyser->m_MainFrame.m_SystemExplorer.m_ContextTabWnd.SetActiveWnd(0); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int ww_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { pSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(0); pSyser->m_MainFrame.m_SystemExplorer.m_ContextTabWnd.SetActiveWnd(1); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int wr_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { pSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(0); CWispTabWnd* pWndRegTab=(CWispTabWnd*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiCPUTabWnd.GetActiveWnd(); pWndRegTab->SetActiveWnd(0); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int wf_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { pSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(0); CWispTabWnd* pWndRegTab=(CWispTabWnd*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiCPUTabWnd.GetActiveWnd(); pWndRegTab->SetActiveWnd(1); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int wx_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { pSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(0); CWispTabWnd* pWndRegTab=(CWispTabWnd*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiCPUTabWnd.GetActiveWnd(); pWndRegTab->SetActiveWnd(2); //pSyser->m_MainFrame.m_SystemExplorer.m_RegTabWnd.SetActiveWnd(2); OUTPUT(WSTR("Press ESC to return console\n")); return 0; } int exp_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { CHAR szBuffer[256]; WCHAR szSym[256]; DWORD Value; if(argc < 2) { OUTPUT_COMMAND_USAGE; return -1; } if(USHexStrToNum(argv[1],&Value) && GETSYM(Value,szBuffer)) { TStrCpy(szSym,szBuffer); OUTPUT(WSTR("%%s\n"),szSym); } else if(CALCEXP(argv[1],&Value)==false) { OUTPUT(WSTR("Error : %s is Invalid !\n"),argv[1]); return -1; } else OUTPUT(WSTR("Hex : %X\n"),Value); OUTPUT(WSTR("Dec : %d\n"),Value); /* if(Value<0x100) { OUTPUT(WSTR("Bin : ")); for(int i = 0; i < 8;i++) { if(i==2 || i==5) OUTPUT(WSTR(" ")); OUTPUT(WSTR("%d"),(Value>>(7-i))&1); } OUTPUT(WSTR("\n")); } */ return 0; } int db_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwBaseAddress; DWORD dwAddress; CDataView*pActiveView; WCHAR* CmdString=NULL; bool bNext=false; if(argc>3) return 1; switch(argv[0][1]) { case 'b': case 'B': if(pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveDataWidth()==1) bNext=true; else pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveDataWidth(1); break; case 'w': case 'W': if(pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveDataWidth()==2) bNext=true; else pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveDataWidth(2); break; case 'd': case 'D': if(pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveDataWidth()==4) bNext=true; else pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveDataWidth(4); break; } if(argc==1) { if(bNext==false)//һǸıʾ return 0; //ֻһʾûиıʾһĻ pActiveView=(CDataView*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pActiveView==NULL) return 1; dwAddress = pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveAddress(); dwAddress+=pActiveView->m_nLinePerPage*0x10; if(pActiveView->m_bShowOffset) dwAddress-=0x10; pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(dwAddress,CmdString); return 0; } if(argc==2) { pActiveView=(CDataView*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pActiveView==NULL) return 1; if(TStrICmp(argv[1],WSTR("-"))==0) { pActiveView->OnPrevPos(NULL); return 0; } else if(TStrICmp(argv[1],WSTR("+"))==0) { pActiveView->OnNextPos(NULL); return 0; } CmdString=argv[1]; if(CALCEXP(argv[1],&dwAddress)==FALSE) { return 1; } pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(dwAddress,CmdString); return 0; } if(argc==3) { WCHAR *param1,*param2; param1=argv[1]; param2=argv[2]; do { argc--; if(TStrICmp(param1,WSTR("-"))==0) { if(CALCEXP(param2,&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } pActiveView=(CDataView*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pActiveView==NULL) return 1; dwBaseAddress = pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveAddress(); dwAddress=dwBaseAddress-dwAddress; break; }else if(TStrICmp(param1,WSTR("+"))==0) { if(CALCEXP(param2,&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } pActiveView=(CDataView*)pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pActiveView==NULL) return 1; dwBaseAddress = pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveAddress(); dwAddress=dwBaseAddress+dwAddress; break; } #ifdef CODE_OS_NT_DRV else if(TStrICmp(param1,WSTR("-P"))==0) { if(CALCEXP(param2,&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(MapToVAddr(dwAddress,&dwAddress)==false) return 1; break; } #endif param1=argv[2]; param2=argv[1]; }while(argc!=1); } pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(dwAddress,CmdString); return 0; } /* int isf_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { ULPOS Address; if(argc<=1) { OUTPUT_COMMAND_USAGE; return -1; } if(CALCEXP(argv[1],&Address)==false) { OUTPUT_INVALID_ADDRESS; return -1; } CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) return true; gpSyser->m_SyserUI.InsertAnalyzerComment(pDbgModule,Address); UPDATE_CODE_VIEW(); return 0; } */ ================================================ FILE: Project/Syser/Source/OtherCmd.h ================================================ #ifndef _OTHER_CMD_H_ #define _OTHER_CMD_H_ DECLARE_SYSER_CMD(exp_command); DECLARE_SYSER_CMD(cv_command); DECLARE_SYSER_CMD(dv_command); DECLARE_SYSER_CMD(sw_command); DECLARE_SYSER_CMD(db_command); DECLARE_SYSER_CMD(wd_command); DECLARE_SYSER_CMD(wc_command); DECLARE_SYSER_CMD(ws_command); DECLARE_SYSER_CMD(ww_command); DECLARE_SYSER_CMD(wr_command); DECLARE_SYSER_CMD(wf_command); DECLARE_SYSER_CMD(wx_command); DECLARE_SYSER_CMD(isf_command); DECLARE_SYSER_CMD(dex_command); extern SYSER_CMD_ENTRY OtherCmdTable[]; #endif ================================================ FILE: Project/Syser/Source/PCSystem.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "PCSystem.h" CPCSystem::CPCSystem() { m_pPCIOps = NULL; m_VmwareVideoCommandPort=0; m_VmwareVideoDatePort=0; m_VmwareSecondFrameBuffer=NULL; } CPCSystem::~CPCSystem() { } bool CPCSystem::Init() { if(InitPCI()) { SearchPCIDevice(); InitVmwareVideo(); } InitUSB(); return true; } void CPCSystem::InitVmwareVideo() { if(gInVMWARE==false) return; PCI_CONFIG_COMMON PCIConfigREG; DWORD dwOldValue,dwPhysicalAddr; DWORD dwSize=0; //pci_dev dev; bool bFound=false; int j; for(j =0;j<0x100;j++) { //dev.bus = j; for(int i = 0; i < 0x100; i++) { //dev.devfn = i; gpSyser->m_PCSystem.ReadPCICFGWord(j,i,PCI_VENDOR_ID,&PCIConfigREG.VendorID); if(PCIConfigREG.VendorID != 0xffff && PCIConfigREG.VendorID != 0) { gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_REVISION_ID,(DWORD *)&PCIConfigREG.RevisionID); if(PCIConfigREG.BaseClass==3&&PCIConfigREG.SubClass==0&&PCIConfigREG.ProgIf==0) { for(int k =0; k <6;k++) { gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_0+k*4,&dwOldValue); if(dwOldValue!=0) { if(dwOldValue&1) { m_VmwareVideoCommandPort=*(WORD*)&dwOldValue; m_VmwareVideoCommandPort&=0xfffe; m_VmwareVideoDatePort=m_VmwareVideoCommandPort+1; }else { //m_VmwareSecondFrameBuffer = (DWORD*)dwOldValue; DWORD Addr1; dwPhysicalAddr=dwOldValue; MapToVAddr(dwOldValue,&Addr1); m_VmwareSecondFrameBuffer =(DWORD*) Addr1; } } bFound=true; } } } if(bFound) break; } if(bFound) break; } ::DbgPrint("Syser : m_VmwareVideoCommandPort=%04x %04x %08x[%08x]\n",m_VmwareVideoCommandPort,m_VmwareVideoDatePort,m_VmwareSecondFrameBuffer,dwPhysicalAddr); } void CPCSystem::Release() { ReleasePCI(); ReleaseUSB(); } bool CPCSystem::InitPCI() { m_pPCIOps = pci_init(); return m_pPCIOps!=NULL; } void CPCSystem::ReleasePCI() { m_pPCIOps = NULL; } bool CPCSystem::InitUSB() { m_UHCIDevice.Init(); m_OHCIDevice.Init(); return true; } void CPCSystem::ReleaseUSB() { m_OHCIDevice.Release(); m_UHCIDevice.Release(); } void CPCSystem::SearchPCIDevice() { WORD VendorID,DeviceID; for(int bus =0;bus<0x100;bus++) { for(int fn = 0; fn < 0x100; fn++) { gpSyser->m_PCSystem.ReadPCICFGWord(bus,fn,PCI_VENDOR_ID,&VendorID); gpSyser->m_PCSystem.ReadPCICFGWord(bus,fn,PCI_DEVICE_ID,&DeviceID); if(VendorID!=0xFFFF && VendorID && DeviceID!=0xFFFF && DeviceID) RecognizePCIDevice(bus,fn); } } } void CPCSystem::RecognizePCIDevice(int Bus,int DevFN) { BYTE ProgIf; OHCI_REGS*pOHCIRegs; DWORD DevClass,Value; ReadPCICFGDWord(Bus,DevFN,PCI_REVISION_ID,&DevClass); switch(HIGH_WORD(DevClass)) { case PCI_CLASS_SERIAL_USB: ProgIf = (BYTE)(DevClass>>8); switch(ProgIf) { case 0://UHCI ReadPCICFGDWord(Bus,DevFN,PCI_BASE_ADDRESS_4,&Value); if(Value&1) { TList::IT Iter = m_UHCIDevice.m_UHCICtrlList.Append(); Iter->USBBase = (WORD)(Value&0xFFE0); Iter->FrameBase = SyserReadPortDword(Iter->USBBase+8) & 0xFFFFF000; Iter->Bus = Bus; Iter->DevFN = DevFN; OUTPUT(WSTR("Syser : Find UHCI Ctrl %d [Bus %02X Device %02X Function %02X USBBase %X FrameBase %08X]\n"),m_UHCIDevice.m_UHCICtrlList.Count()-1,Iter->Bus,Iter->DevFN>>3,Iter->DevFN&7,Iter->USBBase,Iter->FrameBase); } break; case 0x10://OHCI { ReadPCICFGDWord(Bus,DevFN,PCI_BASE_ADDRESS_0,&Value); if(MapToVAddr(Value,(ULPOS*)&pOHCIRegs)==0) break; TList::IT Iter = m_OHCIDevice.m_OHCICtrlList.Append(); Iter->Bus = Bus; Iter->DevFN = DevFN; Iter->pOHCIRegs = pOHCIRegs; OUTPUT(WSTR("Syser : Find OHCI Ctrl %d [Bus %02X Device %02X Function %02X]\n"),m_OHCIDevice.m_OHCICtrlList.Count()-1,Iter->Bus,Iter->DevFN>>3,Iter->DevFN&7); } break; case 0x20://EHCI OUTPUT(WSTR("Syser : Find EHCI Ctrl\n")); break; } break; } } void CPCSystem::ReadPCICFGByte(int Bus,int DevFN,int Offset,BYTE*Val) { pci_dev dev; if(m_pPCIOps==NULL) return; dev.bus = Bus; dev.devfn = DevFN; m_pPCIOps->read_byte(&dev,Offset,Val); } void CPCSystem::ReadPCICFGWord(int Bus,int DevFN,int Offset,WORD*Val) { pci_dev dev; if(m_pPCIOps==NULL) return; dev.bus = Bus; dev.devfn = DevFN; m_pPCIOps->read_word(&dev,Offset,Val); } void CPCSystem::ReadPCICFGDWord(int Bus,int DevFN,int Offset,DWORD*Val) { pci_dev dev; if(m_pPCIOps==NULL) return; dev.bus = Bus; dev.devfn = DevFN; m_pPCIOps->read_dword(&dev,Offset,Val); } void CPCSystem::WritePCICFGByte(int Bus,int DevFN,int Offset,BYTE Val) { pci_dev dev; if(m_pPCIOps==NULL) return; dev.bus = Bus; dev.devfn = DevFN; m_pPCIOps->write_byte(&dev,Offset,Val); } void CPCSystem::WritePCICFGWord(int Bus,int DevFN,int Offset,WORD Val) { pci_dev dev; if(m_pPCIOps==NULL) return; dev.bus = Bus; dev.devfn = DevFN; m_pPCIOps->write_word(&dev,Offset,Val); } void CPCSystem::WritePCICFGDWord(int Bus,int DevFN,int Offset,DWORD Val) { pci_dev dev; if(m_pPCIOps==NULL) return; dev.bus = Bus; dev.devfn = DevFN; m_pPCIOps->write_dword(&dev,Offset,Val); } void CPCSystem::AttachUSBDevice() { m_UHCIDevice.Attach(); m_OHCIDevice.Attach(); } void CPCSystem::DetachUSBDevice() { m_OHCIDevice.Detach(); m_UHCIDevice.Detach(); } void CPCSystem::USBDeviceService() { gpSyser->m_PCSystem.m_UHCIDevice.UHCIMouseService(); gpSyser->m_PCSystem.m_UHCIDevice.UHCIKeyboardService(); gpSyser->m_PCSystem.m_OHCIDevice.OHCIMouseService(); gpSyser->m_PCSystem.m_OHCIDevice.OHCIKeyboardService(); } ================================================ FILE: Project/Syser/Source/PCSystem.h ================================================ #ifndef _PC_SYSTEM_H_ #define _PC_SYSTEM_H_ #include "UHCIDevice.h" #include "OHCIDevice.h" class CPCSystem { public: CPCSystem(); ~CPCSystem(); bool Init(); void Release(); /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //PCI private: pci_ops* m_pPCIOps; public: bool InitPCI(); void ReleasePCI(); void SearchPCIDevice(); void RecognizePCIDevice(int Bus,int DevFN); void ReadPCICFGByte(int Bus,int DevFN,int Offset,BYTE*Val); void ReadPCICFGWord(int Bus,int DevFN,int Offset,WORD*Val); void ReadPCICFGDWord(int Bus,int DevFN,int Offset,DWORD*Val); void WritePCICFGByte(int Bus,int DevFN,int Offset,BYTE Val); void WritePCICFGWord(int Bus,int DevFN,int Offset,WORD Val); void WritePCICFGDWord(int Bus,int DevFN,int Offset,DWORD Val); //PCI /////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //USB public: CUHCIDevice m_UHCIDevice; COHCIDevice m_OHCIDevice; bool InitUSB(); void ReleaseUSB(); void AttachUSBDevice(); void DetachUSBDevice(); void USBDeviceService(); void InitVmwareVideo(); WORD m_VmwareVideoCommandPort; WORD m_VmwareVideoDatePort; DWORD* m_VmwareSecondFrameBuffer; //USB /////////////////////////////////////////////////////////////////////////////////////////////////////////////// }; #endif ================================================ FILE: Project/Syser/Source/PEExplorer.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "PEExplorer.h" char* TimeDateStampToString(DWORD TimeDateStamp,char* TimeString) { DWORD val= TimeDateStamp; DWORD dat =val/86400; DWORD dat1 =val%86400; DWORD hour=dat1/3600; DWORD hour1=dat1%3600; DWORD minute=hour1/60; DWORD minute1=hour1%60; DWORD second=minute1; DWORD year=dat/365+1970; DWORD year1=dat%365,i; DWORD dat2 = (year/4 - 1970/4) - (year/100 - 1970/100) + (year/400-1970/400); WORD wDayOfWeek=(WORD)((dat+1)%7); if(((year%4)==0&& (year%100)!=0) || ((year %400)==0)) dat2--; DWORD month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(year1=month[i]) dat-=month[i]; else break; } dat++; WORD wYear=(WORD)year; WORD wMonth=(WORD)i+1; WORD wDay=(WORD)dat; WORD wHour=(WORD)hour; WORD wMinute=(WORD)minute; WORD wSecond=(WORD)second; TSPrintf(TimeString,"%02d/%02d/%d %02d:%02d:%02d",wDay,wMonth,wYear,wHour,wMinute,wSecond); return TimeString; } DWORD GetModuleBaseByName(char* FileName) { DWORD BaseAddress=0; CDbgModuleMap::IT Iter = gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin(); while(Iter.IsExist()) { if(TStrICmp(Iter->m_ModuleName,FileName)==0) { BaseAddress = Iter->m_ModuleBase; break; } Iter++; } return BaseAddress; } enum { CMD_ID_PEHEADER_1=WISP_ID_USER_START+0x100, CMD_ID_PEHEADER_2, CMD_ID_IMPORT_LIST1, CMD_ID_IMPORT_LIST2, CMD_ID_WND_DATA_DIRECTORY, }; enum CPEExplorerForm::WISP_FORM_ID { CMD_ID_BT_EDIT = WISP_ID_USER_START, CMD_ID_MAIN_TAB, CMD_ID_COMBOBOX_MODULE, CMD_ID_WND_PE_HEADER, CMD_ID_WND_RELOCATIONS, CMD_ID_WND_IMPORT, CMD_ID_WND_EXPORT, CMD_ID_BP_DATA_LIST, }; WISP_FORM_RES_ITEM CPEExplorerForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,780,390}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("PE Explorer"), "\\SyserIcon\\Syser.ico", }, { WISP_CTRL_COMBO_BOX, {5,5,135,20}, CMD_ID_COMBOBOX_MODULE, WISP_ES_EDIT_NORMAL|WISP_ES_READONLY, NULL, NULL, }, { WISP_CTRL_TAB, {5,30,765,330}, CMD_ID_MAIN_TAB, WISP_WS_THIN_BORDER, NULL, }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CPEExplorerForm) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CPEExplorerForm) WISP_MSG_CMD_MAP(CMD_ID_COMBOBOX_MODULE,OnModuleSelectComboxCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CPEExplorerForm) WISP_MSG_EVENT_MAP_END CPEExplorerForm::CPEExplorerForm() { m_pFormRes = m_FormRes; m_pMainTab=NULL; m_PEHeaderWnd=NULL; m_PERelcationWnd=NULL; m_PEImportWnd=NULL; m_PEExportWnd=NULL; } CPEExplorerForm::~CPEExplorerForm() { if(m_MemPEFile.IsOpened()) m_MemPEFile.Close(); } void CPEExplorerForm::UpdateContext(DWORD ModuleBase) { if(!IsWindow()) return; if(SetPEModuleBase(ModuleBase)==false) return; ChangeModule(ModuleBase); m_PEHeaderWnd->LoadPEFile(&m_MemPEFile); m_PERelcationWnd->LoadPEFile(&m_MemPEFile); m_PEImportWnd->LoadPEFile(&m_MemPEFile); m_PEExportWnd->LoadPEFile(&m_MemPEFile); m_DataDirectoryWnd->LoadPEFile(&m_MemPEFile); } bool CPEExplorerForm::SetPEModuleBase(DWORD ModuleBase) { if(m_MemPEFile.IsOpened()) { m_MemPEFile.Close(); } return m_MemPEFile.Open(ModuleBase,PE_OPEN_ALL,CDebugger::ReadMemory,gpSyser->m_pDebugger); } void CPEExplorerForm::Popup() { if(IsWindow()) { Show(); } else { CreateForm(NULL); } } bool CPEExplorerForm::OnModuleSelectComboxCmd(IN WISP_MSG* pMsg) { NUM_PTR ItemData; if(pMsg->Command.CmdMsg == WISP_CMD_COMBOX_SELCHANGE) { ItemData = m_ModuleSelectList->m_ComboList.GetItemData((HANDLE)pMsg->Command.Param2); UpdateContext((DWORD)ItemData); } return true; } bool CPEExplorerForm::ChangeModule(DWORD BaseAddress) { HANDLE hItem=NULL; DWORD Index=0,Count; NUM_PTR ItemData; Count = m_ModuleSelectList->m_ComboList.GetItemCount(); do { hItem = m_ModuleSelectList->m_ComboList.GetItem(Index); if(hItem==NULL) break; ItemData = m_ModuleSelectList->m_ComboList.GetItemData(hItem); if(BaseAddress==(DWORD)ItemData) { m_ModuleSelectList->SelectItem(Index); break; } Index++; } while(Index < Count); return true; } bool CPEExplorerForm::OnFormCreate(WISP_MSG*pMsg) { m_pMainTab = (CWispTabWnd*) GetFormItem(CMD_ID_MAIN_TAB); m_PEHeaderWnd = new CPEHeaderWnd; m_PEHeaderWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_PE_HEADER,WISP_WS_NULL); m_PEHeaderWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("PE Header"),m_PEHeaderWnd); m_PEHeaderWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_ModuleSelectList = (CWispComboBox*)GetFormItem(CMD_ID_COMBOBOX_MODULE); CDbgModuleMap::IT Iter = gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin(); while(Iter.IsExist()) { HANDLE hListItem = m_ModuleSelectList->m_ComboList.InsertItemA(Iter->m_ModuleName); m_ModuleSelectList->m_ComboList.SetItemData(hListItem,0,Iter->m_ModuleBase); Iter++; } m_ModuleSelectList->SelectItem(0); m_DataDirectoryWnd = new CPEDataDirectoryWnd; m_DataDirectoryWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_DATA_DIRECTORY,WISP_WS_NULL); m_DataDirectoryWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Data Directories"),m_DataDirectoryWnd); m_DataDirectoryWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_PERelcationWnd = new CPERelcationWnd; m_PERelcationWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_RELOCATIONS,WISP_WS_NULL); m_PERelcationWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Relocations"),m_PERelcationWnd); m_PERelcationWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_PEImportWnd = new CPEImportWnd; m_PEImportWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_IMPORT,WISP_WS_NULL); m_PEImportWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Imports"),m_PEImportWnd); m_PEImportWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); m_PEExportWnd = new CPEExportWnd; m_PEExportWnd->Create(NULL,0,0,0,0,m_pMainTab,CMD_ID_WND_EXPORT,WISP_WS_NULL); m_PEExportWnd->SetOwner(this); m_pMainTab->InsertWnd(WSTR("Exports"),m_PEExportWnd); m_PEExportWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); return true; } CPEHeaderWnd::CPEHeaderWnd() { } CPEHeaderWnd::~CPEHeaderWnd() { } WISP_MSG_MAP_BEGIN(CPEHeaderWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CPEHeaderWnd) WISP_MSG_EVENT_MAP_END bool CPEHeaderWnd::OnCreate(WISP_MSG*pMsg) { m_pPEHeaderList1.Create(NULL,5,5,372,294,this,CMD_ID_PEHEADER_1, WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); m_pPEHeaderList2.Create(NULL,385,5,372,294,this,CMD_ID_PEHEADER_2, WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); InitPEHeaderList(); return true; } bool CPEHeaderWnd::LoadPEFile(CMemPEFile* pMemPEFile) { char TimeString[50]; TimeDateStampToString(pMemPEFile->m_PEHead.TimeDateStamp-gpSyser->m_TimeZoneBias,TimeString); m_pPEHeaderList1.SetItemNum(m_Item[0],1,pMemPEFile->m_PEHead.Machine,WSTR("0x%04x")); m_pPEHeaderList1.SetItemNum(m_Item[1],1,pMemPEFile->m_PEHead.NumberOfSections,WSTR("0x%04x")); m_pPEHeaderList1.SetItemNum(m_Item[2],1,pMemPEFile->m_PEHead.TimeDateStamp,WSTR("0x%08x")); m_pPEHeaderList1.SetItemTextA(m_Item[2],2,TimeString); m_pPEHeaderList1.SetItemNum(m_Item[3],1,pMemPEFile->m_PEHead.PointerToSymbolTable,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[4],1,pMemPEFile->m_PEHead.NumberOfSymbols,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[5],1,pMemPEFile->m_PEHead.SizeOfOptionalHeader,WSTR("0x%04x")); m_pPEHeaderList1.SetItemNum(m_Item[6],1,pMemPEFile->m_PEHead.Characteristics,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[7],1,pMemPEFile->m_PEHead.Magic,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[8],1,(pMemPEFile->m_PEHead.MinorLinkerVersion << 8) | pMemPEFile->m_PEHead.MajorLinkerVersion,WSTR("0x%04x")); TSPrintf(TimeString,"%d.%d",pMemPEFile->m_PEHead.MajorLinkerVersion,pMemPEFile->m_PEHead.MinorLinkerVersion); m_pPEHeaderList1.SetItemTextA(m_Item[8],2,TimeString); m_pPEHeaderList1.SetItemNum(m_Item[9],1,pMemPEFile->m_PEHead.SizeOfCode,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[10],1,pMemPEFile->m_PEHead.SizeOfInitializedData,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[11],1,pMemPEFile->m_PEHead.SizeOfUninitializedData,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[12],1,pMemPEFile->m_PEHead.AddressOfEntryPoint,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[13],1,pMemPEFile->m_PEHead.BaseOfCode,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[14],1,pMemPEFile->m_PEHead.BaseOfData,WSTR("0x%08x")); m_pPEHeaderList1.SetItemNum(m_Item[15],1,pMemPEFile->m_PEHead.ImageBase,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[0],1,pMemPEFile->m_PEHead.SectionAlignment,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[1],1,pMemPEFile->m_PEHead.FileAlignment,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[2],1,(pMemPEFile->m_PEHead.MinorOperatingSystemVersion <<16)| pMemPEFile->m_PEHead.MajorOperatingSystemVersion,WSTR("0x%08x")); TSPrintf(TimeString,"%d.%d",pMemPEFile->m_PEHead.MajorOperatingSystemVersion,pMemPEFile->m_PEHead.MinorOperatingSystemVersion); m_pPEHeaderList1.SetItemTextA(m_HItem[2],2,TimeString); m_pPEHeaderList2.SetItemNum(m_HItem[3],1,(pMemPEFile->m_PEHead.MinorImageVersion<<16)|pMemPEFile->m_PEHead.MajorImageVersion,WSTR("0x%08x")); TSPrintf(TimeString,"%d.%d",pMemPEFile->m_PEHead.MajorImageVersion,pMemPEFile->m_PEHead.MinorImageVersion); m_pPEHeaderList1.SetItemTextA(m_HItem[3],2,TimeString); m_pPEHeaderList2.SetItemNum(m_HItem[4],1,(pMemPEFile->m_PEHead.MinorSubsystemVersion<<16)|pMemPEFile->m_PEHead.MajorSubsystemVersion,WSTR("0x%08x")); TSPrintf(TimeString,"%d.%d",pMemPEFile->m_PEHead.MajorSubsystemVersion,pMemPEFile->m_PEHead.MinorSubsystemVersion); m_pPEHeaderList1.SetItemTextA(m_HItem[4],2,TimeString); m_pPEHeaderList2.SetItemNum(m_HItem[5],1,pMemPEFile->m_PEHead.Win32VersionValue,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[6],1,pMemPEFile->m_PEHead.SizeOfImage,WSTR("0x%08x")); TSPrintf(TimeString,"%d bytes",pMemPEFile->m_PEHead.SizeOfImage); m_pPEHeaderList2.SetItemTextA(m_HItem[6],2,TimeString); m_pPEHeaderList2.SetItemNum(m_HItem[7],1,pMemPEFile->m_PEHead.SizeOfHeaders,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[8],1,pMemPEFile->m_PEHead.CheckSum,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[9],1,pMemPEFile->m_PEHead.Subsystem,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[10],1,pMemPEFile->m_PEHead.DllCharacteristics,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[11],1,pMemPEFile->m_PEHead.SizeOfStackReserve,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[12],1,pMemPEFile->m_PEHead.SizeOfStackCommit,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[13],1,pMemPEFile->m_PEHead.SizeOfHeapReserve,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[14],1,pMemPEFile->m_PEHead.SizeOfHeapCommit,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[15],1,pMemPEFile->m_PEHead.LoaderFlags,WSTR("0x%08x")); m_pPEHeaderList2.SetItemNum(m_HItem[16],1,pMemPEFile->m_PEHead.NumberOfRvaAndSizes,WSTR("0x%08x")); return true; } bool CPEHeaderWnd::InitPEHeaderList() { m_pPEHeaderList1.InsertColumn(WSTR("Field Name"),165); m_pPEHeaderList1.InsertColumn(WSTR("Date Value"),80); m_pPEHeaderList1.InsertColumn(WSTR("Description"),120); m_Item[0]=m_pPEHeaderList1.InsertItem(WSTR("Machine")); m_Item[1]=m_pPEHeaderList1.InsertItem(WSTR("Number of Sections")); m_Item[2]=m_pPEHeaderList1.InsertItem(WSTR("Time Date Stamp")); m_Item[3]=m_pPEHeaderList1.InsertItem(WSTR("Pointer to Symbol Table")); m_Item[4]=m_pPEHeaderList1.InsertItem(WSTR("Number of Symbols")); m_Item[5]=m_pPEHeaderList1.InsertItem(WSTR("Size of Optional Header")); m_Item[6]=m_pPEHeaderList1.InsertItem(WSTR("Characteristics")); m_Item[7]=m_pPEHeaderList1.InsertItem(WSTR("Magic")); m_Item[8]=m_pPEHeaderList1.InsertItem(WSTR("Linker Version")); m_Item[9]=m_pPEHeaderList1.InsertItem(WSTR("Size of code")); m_Item[10]=m_pPEHeaderList1.InsertItem(WSTR("Size of Initialized Data")); m_Item[11]=m_pPEHeaderList1.InsertItem(WSTR("Size of Uninitialized Data")); m_Item[12]=m_pPEHeaderList1.InsertItem(WSTR("Address of entry Point")); m_Item[13]=m_pPEHeaderList1.InsertItem(WSTR("Base of code")); m_Item[14]=m_pPEHeaderList1.InsertItem(WSTR("Base of data")); m_Item[15]=m_pPEHeaderList1.InsertItem(WSTR("Image Base")); m_pPEHeaderList2.InsertColumn(WSTR("Field Name"),165); m_pPEHeaderList2.InsertColumn(WSTR("Date Value"),90); m_pPEHeaderList2.InsertColumn(WSTR("Description"),110); m_HItem[0]=m_pPEHeaderList2.InsertItem(WSTR("Section Alignment")); m_HItem[1]=m_pPEHeaderList2.InsertItem(WSTR("File Alignment")); m_HItem[2]=m_pPEHeaderList2.InsertItem(WSTR("Operating System Version")); m_HItem[3]=m_pPEHeaderList2.InsertItem(WSTR("Image Version")); m_HItem[4]=m_pPEHeaderList2.InsertItem(WSTR("Subsystem Version")); m_HItem[5]=m_pPEHeaderList2.InsertItem(WSTR("Win32 Version Value")); m_HItem[6]=m_pPEHeaderList2.InsertItem(WSTR("Size of Image")); m_HItem[7]=m_pPEHeaderList2.InsertItem(WSTR("Size of Headers")); m_HItem[8]=m_pPEHeaderList2.InsertItem(WSTR("Checksum")); m_HItem[9]=m_pPEHeaderList2.InsertItem(WSTR("Subsystem")); m_HItem[10]=m_pPEHeaderList2.InsertItem(WSTR("Dll Characteristics")); m_HItem[11]=m_pPEHeaderList2.InsertItem(WSTR("Size of Stack Reserve")); m_HItem[12]=m_pPEHeaderList2.InsertItem(WSTR("Size of Stack Commit")); m_HItem[13]=m_pPEHeaderList2.InsertItem(WSTR("Size of Heap Reserve")); m_HItem[14]=m_pPEHeaderList2.InsertItem(WSTR("Size of Heap Commit")); m_HItem[15]=m_pPEHeaderList2.InsertItem(WSTR("Loader Flags")); m_HItem[16]=m_pPEHeaderList2.InsertItem(WSTR("Number of Data Directories")); return true; } CPERelcationWnd::CPERelcationWnd() { } CPERelcationWnd::~CPERelcationWnd() { } WISP_MSG_MAP_BEGIN(CPERelcationWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CPERelcationWnd) WISP_MSG_EVENT_MAP_END bool CPERelcationWnd::OnCreate(WISP_MSG*pMsg) { m_RelPageList.Create(NULL,5,5,372,294,this,CMD_ID_PEHEADER_1, WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); m_RelEntryList.Create(NULL,385,5,372,294,this,CMD_ID_PEHEADER_2, WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); InitList(); return true; } bool CPERelcationWnd::LoadPEFile(CMemPEFile* pMemPEFile) { return true; } bool CPERelcationWnd::InitList() { m_RelPageList.InsertColumn(WSTR("RVA"),165); m_RelPageList.InsertColumn(WSTR("Items"),90); m_RelPageList.InsertColumn(WSTR("Owner"),110); m_RelEntryList.InsertColumn(WSTR("Offset"),165); m_RelEntryList.InsertColumn(WSTR("Types"),90); return true; } CPEImportWnd::CPEImportWnd() { } CPEImportWnd::~CPEImportWnd() { } WISP_MSG_MAP_BEGIN(CPEImportWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CPEImportWnd) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CPEImportWnd) WISP_MSG_CMD_MAP(CMD_ID_IMPORT_LIST1,OnModuleSelected) WISP_MSG_CMD_MAP_END DWORD CPEImportWnd::GetModuleBaseByName(char* FileName) { DWORD BaseAddress=0; CDbgModuleMap::IT Iter = gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin(); while(Iter.IsExist()) { if(TStrICmp(Iter->m_ModuleName,FileName)==0) { BaseAddress = Iter->m_ModuleBase; break; } Iter++; } return BaseAddress; } bool CPEImportWnd::OnModuleSelected(WISP_MSG*pMsg) { CMemPEFile ImportPEFile; bool bImportOpen=false; DWORD FunAddress; int Index; DWORD ImportModuleBase=0; if(pMsg->Command.CmdMsg!=WISP_CMD_ITEM_SELECTED) return true; if(gpSyser->m_pDebugger==NULL) return true; m_ImportEntryList.ClearChildItem(); HANDLE hItem = m_ImportModuleList.GetNextItem(NULL,WISP_WLIS_SELECTED); NUM_PTR ItemData; ItemData = m_ImportModuleList.GetItemData(hItem); int i = (int)ItemData,j,k; if(i >= m_pMemPEFile->m_ImportModuleCount) return true; k = m_pMemPEFile->m_ImportModule[i].FuncCount; IMPORT_FUNC* pFunc= m_pMemPEFile->m_ImportModule[i].FuncList; ImportModuleBase = GetModuleBaseByName(m_pMemPEFile->m_ImportModule[i].FileName); if(ImportModuleBase) { bImportOpen = ImportPEFile.Open(ImportModuleBase,PE_OPEN_ALL|PE_OPEN_NO_IMPORT,CDebugger::ReadMemory,gpSyser->m_pDebugger); } for(j=0;jm_ImportModuleCount; m_ImportModuleList.ClearChildItem(); for(i=0;im_ImportModule[i].Address,NULL,WSTR("0x%08X")); m_ImportModuleList.SetItemData(hItem,2,pMemPEFile->m_ImportModule[i].Address); m_ImportModuleList.SetItemTextA(hItem,1,pMemPEFile->m_ImportModule[i].FileName); m_ImportModuleList.SetItemData(hItem,0,i); ImportModuleBase = GetModuleBaseByName(pMemPEFile->m_ImportModule[i].FileName); m_ImportModuleList.SetItemData(hItem,1,ImportModuleBase); m_ImportModuleList.SetItemNum(hItem,2,pMemPEFile->m_ImportModule[i].FuncCount,WSTR("%d")); } return true; } bool CPEImportWnd::InitList() { m_ImportModuleList.InsertColumn(WSTR("RVA"),70); m_ImportModuleList.InsertColumn(WSTR("Name"),100); m_ImportModuleList.InsertColumn(WSTR("Count"),40); m_ImportEntryList.InsertColumn(WSTR("RVA"),70); m_ImportEntryList.InsertColumn(WSTR("Hint"),50); m_ImportEntryList.InsertColumn(WSTR("Entry Point"),70); m_ImportEntryList.InsertColumn(WSTR("Name"),270); return true; } CPEExportWnd::CPEExportWnd() { } CPEExportWnd::~CPEExportWnd() { } WISP_MSG_MAP_BEGIN(CPEExportWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CPEExportWnd) WISP_MSG_EVENT_MAP_END bool CPEExportWnd::OnCreate(WISP_MSG*pMsg) { m_ExportEntryList.Create(NULL,5,5,736,294,this,CMD_ID_PEHEADER_1, WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); InitList(); return true; } bool CPEExportWnd::LoadPEFile(CMemPEFile* pMemPEFile) { int i = 0,j; HANDLE hItem; m_ExportEntryList.ClearChildItem(); j = pMemPEFile->m_ExportFuncCount; for(i=0;im_ExportFunc[i].Address,NULL,WSTR("0x%08X")); m_ExportEntryList.SetItemData(hItem,0,pMemPEFile->m_ExportFunc[i].Address); m_ExportEntryList.SetItemNum(hItem,1,pMemPEFile->m_ExportFunc[i].FuncOrd,WSTR("%d")); m_ExportEntryList.SetItemNum(hItem,2,pMemPEFile->m_ExportFunc[i].ThunkAddr,WSTR("0x%08X")); m_ExportEntryList.SetItemData(hItem,2,pMemPEFile->m_ExportFunc[i].ThunkAddr); m_ExportEntryList.SetItemTextA(hItem,3,pMemPEFile->m_ExportFunc[i].FuncName); } return true; } bool CPEExportWnd::InitList() { m_ExportEntryList.InsertColumn(WSTR("Entry Point"),80); m_ExportEntryList.InsertColumn(WSTR("Ord"),50); m_ExportEntryList.InsertColumn(WSTR("Thunk"),80); m_ExportEntryList.InsertColumn(WSTR("Name"),490); return true; } CPEExportList::CPEExportList() { } CPEExportList::~CPEExportList() { } WISP_MSG_MAP_BEGIN(CPEExportList) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP_END(CWispList) bool CPEExportList::OnMouseDBClick(IN WISP_MSG*pMsg) { WISP_RECT CellRC; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); NUM_PTR ItemData; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { GetItemCellRect(hItem,2,&CellRC); if(pMsg->MsgMouseWndPT.x >= CellRC.x && pMsg->MsgMouseWndPT.x<=CellRC.x+CellRC.cx) { ItemData = GetItemData(hItem,2); VIEW_DATA((DWORD)ItemData); } else { ItemData = GetItemData(hItem,0); VIEW_CODE((DWORD)ItemData,true); } } return true; } CPEImportModuleList::CPEImportModuleList() { } CPEImportModuleList::~CPEImportModuleList() { } WISP_MSG_MAP_BEGIN(CPEImportModuleList) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP_END(CWispList) bool CPEImportModuleList::OnMouseDBClick(IN WISP_MSG*pMsg) { WISP_RECT CellRC; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); NUM_PTR ItemData; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { GetItemCellRect(hItem,0,&CellRC); if(pMsg->MsgMouseWndPT.x >= CellRC.x && pMsg->MsgMouseWndPT.x<=CellRC.x+CellRC.cx) { ItemData = GetItemData(hItem,2); VIEW_DATA((DWORD)ItemData); } else { ItemData = GetItemData(hItem,1); VIEW_DATA((DWORD)ItemData); } } return true; } CPEImportEntryList::CPEImportEntryList() { } CPEImportEntryList::~CPEImportEntryList() { } WISP_MSG_MAP_BEGIN(CPEImportEntryList) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP_END(CWispList) bool CPEImportEntryList::OnMouseDBClick(IN WISP_MSG*pMsg) { WISP_RECT CellRC; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); NUM_PTR ItemData; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { GetItemCellRect(hItem,0,&CellRC); if(pMsg->MsgMouseWndPT.x >= CellRC.x && pMsg->MsgMouseWndPT.x<=CellRC.x+CellRC.cx) { ItemData = GetItemData(hItem,0); VIEW_DATA((DWORD)ItemData); } else { ItemData = GetItemData(hItem,2); VIEW_CODE((DWORD)ItemData,true); } } return true; } CPEDataDirectoryWnd::CPEDataDirectoryWnd() { } CPEDataDirectoryWnd::~CPEDataDirectoryWnd() { } WISP_MSG_MAP_BEGIN(CPEDataDirectoryWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CPEDataDirectoryWnd) WISP_MSG_EVENT_MAP_END bool CPEDataDirectoryWnd::OnCreate(WISP_MSG*pMsg) { m_DataDirectoryList.Create(NULL,5,5,450,278,this,CMD_ID_WND_DATA_DIRECTORY,WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); InitList(); return true; } bool CPEDataDirectoryWnd::LoadPEFile(CMemPEFile* pMemPEFile) { DWORD i,Address; for(i=0;im_PEHead.NumberOfRvaAndSizes;i++) { Address=pMemPEFile->m_PEHead.DataDirectory[i].VirtualAddress; if(Address) Address+=pMemPEFile->m_ImageBase; m_DataDirectoryList.SetItemNum(m_DataDirectoryItem[i],1,Address,WSTR("0x%08X")); m_DataDirectoryList.SetItemData(m_DataDirectoryItem[i],1,Address); m_DataDirectoryList.SetItemNum(m_DataDirectoryItem[i],2,pMemPEFile->m_PEHead.DataDirectory[i].Size,WSTR("0x%08X")); } return true; } bool CPEDataDirectoryWnd::InitList() { m_DataDirectoryList.InsertColumn(WSTR("Directory Name"),205); m_DataDirectoryList.InsertColumn(WSTR("Virtual Address"),90); m_DataDirectoryList.InsertColumn(WSTR("Size"),90); m_DataDirectoryItem[0]=m_DataDirectoryList.InsertItem(WSTR("Export Table")); m_DataDirectoryItem[1]=m_DataDirectoryList.InsertItem(WSTR("Import Table")); m_DataDirectoryItem[2]=m_DataDirectoryList.InsertItem(WSTR("Resource Table")); m_DataDirectoryItem[3]=m_DataDirectoryList.InsertItem(WSTR("Exception Table")); m_DataDirectoryItem[4]=m_DataDirectoryList.InsertItem(WSTR("Certificate Table")); m_DataDirectoryItem[5]=m_DataDirectoryList.InsertItem(WSTR("Relocation Table")); m_DataDirectoryItem[6]=m_DataDirectoryList.InsertItem(WSTR("Debug Data")); m_DataDirectoryItem[7]=m_DataDirectoryList.InsertItem(WSTR("Architecture-specific data")); m_DataDirectoryItem[8]=m_DataDirectoryList.InsertItem(WSTR("Machine Value (MIPS GP)")); m_DataDirectoryItem[9]=m_DataDirectoryList.InsertItem(WSTR("TLS Table")); m_DataDirectoryItem[10]=m_DataDirectoryList.InsertItem(WSTR("Load Configuration Table")); m_DataDirectoryItem[11]=m_DataDirectoryList.InsertItem(WSTR("Bound Import Table")); m_DataDirectoryItem[12]=m_DataDirectoryList.InsertItem(WSTR("Import Address Table")); m_DataDirectoryItem[13]=m_DataDirectoryList.InsertItem(WSTR("Delay Import Descriptor")); m_DataDirectoryItem[14]=m_DataDirectoryList.InsertItem(WSTR("COM+ Runtime Header")); m_DataDirectoryItem[15]=m_DataDirectoryList.InsertItem(WSTR("(15) Reserved")); return true; } CPEDataDirectoryList::CPEDataDirectoryList() { } CPEDataDirectoryList::~CPEDataDirectoryList() { } WISP_MSG_MAP_BEGIN(CPEDataDirectoryList) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP_END(CWispList) bool CPEDataDirectoryList::OnMouseDBClick(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); NUM_PTR ItemData; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { ItemData = GetItemData(hItem,1); VIEW_DATA((DWORD)ItemData); } return true; } ================================================ FILE: Project/Syser/Source/PEExplorer.h ================================================ #ifndef _PE_EXPLORER_FORM_H_ #define _PE_EXPLORER_FORM_H_ class CPEDataDirectoryList:public CWispList { public: CPEDataDirectoryList(); ~CPEDataDirectoryList(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnMouseDBClick) }; class CPEDataDirectoryWnd : public CWispWnd { public: CPEDataDirectoryWnd(); ~CPEDataDirectoryWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP bool InitList(); CPEDataDirectoryList m_DataDirectoryList; HANDLE m_DataDirectoryItem[16]; bool LoadPEFile(CMemPEFile* pMemPEFile); }; class CPEExportList:public CWispList { public: CPEExportList(); ~CPEExportList(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnMouseDBClick) }; class CPEExportWnd : public CWispWnd { public: CPEExportWnd(); ~CPEExportWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP bool InitList(); CPEExportList m_ExportEntryList; bool LoadPEFile(CMemPEFile* pMemPEFile); }; class CPEImportModuleList:public CWispList { public: CPEImportModuleList(); ~CPEImportModuleList(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnMouseDBClick) }; class CPEImportEntryList:public CWispList { public: CPEImportEntryList(); ~CPEImportEntryList(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnMouseDBClick) //DECLARE_WISP_MSG_EVENT_MAP //DECLARE_WISP_MSG_CMD_MAP }; class CPEImportWnd : public CWispWnd { public: CPEImportWnd(); ~CPEImportWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnModuleSelected) bool InitList(); CPEImportModuleList m_ImportModuleList; CPEImportEntryList m_ImportEntryList; CMemPEFile* m_pMemPEFile; bool LoadPEFile(CMemPEFile* pMemPEFile); DWORD GetModuleBaseByName(char* FileName); }; class CPERelcationWnd : public CWispWnd { public: CPERelcationWnd(); ~CPERelcationWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP bool InitList(); CWispList m_RelPageList; CWispList m_RelEntryList; bool LoadPEFile(CMemPEFile* pMemPEFile); }; class CPEHeaderWnd : public CWispWnd { public: CPEHeaderWnd(); ~CPEHeaderWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG_EVENT_MAP bool InitPEHeaderList(); CWispList m_pPEHeaderList1; CWispList m_pPEHeaderList2; bool LoadPEFile(CMemPEFile* pMemPEFile); HANDLE m_Item[16]; HANDLE m_HItem[17]; }; class CPEExplorerForm : public CWispForm { public: CPEExplorerForm(); ~CPEExplorerForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: void Popup(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnModuleSelectComboxCmd) public: void UpdateContext(DWORD ModuleBase); bool SetPEModuleBase(DWORD ModuleBase); bool ChangeModule(DWORD BaseAddress); private: HANDLE m_DataDirectoryItem[16]; CMemPEFile m_MemPEFile; CPEHeaderWnd* m_PEHeaderWnd; CWispTabWnd* m_pMainTab; CPERelcationWnd* m_PERelcationWnd; CPEImportWnd* m_PEImportWnd; CPEExportWnd* m_PEExportWnd; CPEDataDirectoryWnd* m_DataDirectoryWnd; CWispComboBox* m_ModuleSelectList; }; #endif //_PE_EXPLORER_FORM_H_ ================================================ FILE: Project/Syser/Source/PIC_8259.cpp ================================================ #include "StdAfx.h" #include "PIC_8259.h" #ifdef __cplusplus extern "C" { #endif BYTE gdwPIC8259Shield_1=0; BYTE gdwPIC8259Shield_2=0; #ifdef __cplusplus }; // extern "C" #endif // // void EnablePIC8259HardWareInterrupt(DWORD arg) // { // if(arg < 0x8) // { // __asm{ // push ebx // push eax // mov ebx, arg // in al,0x21 // push ecx // mov ecx, 0x100 // local_1: // loop local_1 // pop ecx // btr eax,ebx // out 0x21,al // push ecx // mov ecx,0x100 // local_2: // loop local_2 // pop ecx // pop eax // pop ebx // } // } // else // { // arg -= 8; // __asm{ // push ebx // push eax // push ecx // mov ebx, arg // in al,0xa1 // mov ecx,0x100 // local_3: // loop local_3 // btr eax,ebx // out 0xa1,al // mov ecx,0x100 // local_4: // loop local_4 // in al,0x21 // mov ecx,0x100 // local_5: // loop local_5 // and al,0xfb // out 0x21,al // mov ecx,0x100 // local_6: // loop local_6 // pop ecx // pop eax // pop ebx // } // } // } // void Set8259EOI(DWORD dwInterruptNum) // { // if(dwInterruptNum < 0x10) // { // if(dwInterruptNum >= 8) // { // // __asm{ // push eax // push ecx // mov eax, dwInterruptNum // sub eax,8 // add eax,0x60 // out 0xa0,al // // mov ecx,0x200 // local_2: // loop local_2 // mov al,0x62 // out 0x20,al // mov ecx,0x200 // local_3: // loop local_3 // pop ecx // pop eax // } // } // else // { // __asm // { // push eax // mov eax,dwInterruptNum // add eax,0x60 // out 0x20,al // push ecx // mov ecx,0x200 // local_1: // loop local_1 // pop ecx // pop eax // } // } // } // } ================================================ FILE: Project/Syser/Source/PIC_8259.h ================================================ #ifndef _PIC_8259_H_ #define _PIC_8259_H_ #ifdef __cplusplus extern "C" { #endif VOID SyserEnablePIC8259HardWareInterrupt(DWORD arg); VOID SyserSet8259EOI(DWORD dwInterruptNum); extern BYTE gdwPIC8259Shield_1; extern BYTE gdwPIC8259Shield_2; #ifdef __cplusplus }; // extern "C" #endif #endif //_PIC_8259_H_ ================================================ FILE: Project/Syser/Source/PS2Mouse.cpp ================================================ #include "stdafx.h" #include "HardWareInterruptCtrl.h" #include "Mouse.h" #include "PS2Mouse.h" #include "Syser.h" #include "TouchPad.h" DWORD gPS2MouseInterruptNum=0; bool IsAlpsTouchPad() { int i,j=0,n=0; bool bOK; for(i = 0;i<6;i++) { if(MouseBeginBuffer[i]&0x80) n++,j=i; } if(n!=1) return false; for(i = j,n=0;i23) { gbAlpsTouchPad = IsAlpsTouchPad(); //OUTPUT(WSTR("gbAlpsTouchPad=%d\n"),gbAlpsTouchPad); if(gbAlpsTouchPad==false) { gbSynapticsTouchPad=IsSynapticsTouchPad(); //OUTPUT(WSTR("gbSynapticsTouchPad=%d\n"),gbSynapticsTouchPad); } } if(gbAlpsTouchPad) { if(MouseInterruptCount>23&&((CurrentMouseData.D6.Byte0&0x88)!=0x88||(CurrentMouseData.D6.Byte3&0x88)!=0x8)) { if((PrevMouseData.D6.Byte1&0x88)==0x88&&(PrevMouseData.D6.Byte4&0x88)==0x8&&(CurrentMouseData.D6.Byte1&0x88)==0x88&&(CurrentMouseData.D6.Byte4&0x88)==0x8) stKeyGlobalVariable.dwMouseDataIndex=5; else if((PrevMouseData.D6.Byte2&0x88)==0x88&&(PrevMouseData.D6.Byte5&0x88)==0x8&&(CurrentMouseData.D6.Byte2&0x88)==0x88&&(CurrentMouseData.D6.Byte5&0x88)==0x8) stKeyGlobalVariable.dwMouseDataIndex=4; else if((PrevMouseData.D6.Byte0&0x88)==0x88 && (PrevMouseData.D6.Byte3&0x88)==0x8&&(CurrentMouseData.D6.Byte0&0x88)==0x88&&(CurrentMouseData.D6.Byte3&0x88)==0x8) stKeyGlobalVariable.dwMouseDataIndex=3; else if((PrevMouseData.D6.Byte1&0x88)==0x88&&(PrevMouseData.D6.Byte4&0x88)==0x8&&(CurrentMouseData.D6.Byte1&0x88)==0x88&&(CurrentMouseData.D6.Byte4&0x88)==0x8) stKeyGlobalVariable.dwMouseDataIndex=2; else stKeyGlobalVariable.dwMouseDataIndex=1; CurrentMouseData.D6.Byte0=0x88; CurrentMouseData.D6.Byte3=0x8; gPS2ModifyCount++; if(gPS2ModifyCount>10) { dwMousePrePackageSize=3; } gPS2OKPackageCount=0; } } if(gbSynapticsTouchPad) { if(MouseInterruptCount>23&&((CurrentMouseData.D6.Byte0&0xc0)!=0x80||(CurrentMouseData.D6.Byte3&0xc0)!=0xc0)) { if((PrevMouseData.D6.Byte1&0xc0)==0x80&&(PrevMouseData.D6.Byte4&0xc0)==0xc0&&(CurrentMouseData.D6.Byte1&0xc0)==0x80&&(CurrentMouseData.D6.Byte4&0xc0)==0xc0) stKeyGlobalVariable.dwMouseDataIndex=5; else if((PrevMouseData.D6.Byte2&0xc0)==0x80&&(PrevMouseData.D6.Byte5&0xc0)==0xc0&&(CurrentMouseData.D6.Byte2&0xc0)==0x80&&(CurrentMouseData.D6.Byte5&0xc0)==0xc0) stKeyGlobalVariable.dwMouseDataIndex=4; else if((PrevMouseData.D6.Byte0&0xc0)==0xc0 && (PrevMouseData.D6.Byte3&0xc0)==0x80&&(CurrentMouseData.D6.Byte0&0xc0)==0xc0&&(CurrentMouseData.D6.Byte3&0xc0)==0x80) stKeyGlobalVariable.dwMouseDataIndex=3; else if((PrevMouseData.D6.Byte1&0xc0)==0xc0&&(PrevMouseData.D6.Byte4&0xc0)==0x80&&(CurrentMouseData.D6.Byte1&0xc0)==0xc0&&(CurrentMouseData.D6.Byte4&0xc0)==0x80) stKeyGlobalVariable.dwMouseDataIndex=2; else stKeyGlobalVariable.dwMouseDataIndex=1; CurrentMouseData.D6.Byte0=0x80; CurrentMouseData.D6.Byte3|=0xC0; gPS2ModifyCount++; if(gPS2ModifyCount>10) { dwMousePrePackageSize=3; } gPS2OKPackageCount=0; } else { gPS2OKPackageCount++; if(gPS2OKPackageCount>10&&gPS2ModifyCount>=1) gPS2ModifyCount--; } } if(stKeyGlobalVariable.dwMouseDataIndex == dwMousePrePackageSize) { if(gbSynapticsTouchPad) AnalyzerTouchPadPackage(); if(gbAlpsTouchPad) AlpsAnalyzerTouchPadPackage(); stKeyGlobalVariable.dwMouseDataIndex = 0; } } } else { if(stKeyGlobalVariable.dwMouseDataIndex == 1) CurrentMouseData.D3.cFirstData = stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == 2) CurrentMouseData.D3.cXOffset = stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == 3) CurrentMouseData.D3.cYOffset = -stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == 4) CurrentMouseData.D3.cZOffset = stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == dwMousePrePackageSize) { TmpTickCount=SyserGetTSC(); if((CurrentMouseData.D3.cFirstData&8)==0) PrevMouseData.D3.cFirstData=CurrentMouseData.D3.cFirstData; stKeyGlobalVariable.dwMouseDataIndex = 0; if(CurrentMouseData.D3.cYOffset != 0 || CurrentMouseData.D3.cXOffset != 0) { gpSyser->OnMouseMove(CurrentMouseData.D3.cXOffset,CurrentMouseData.D3.cYOffset); } if(CurrentMouseData.D3.cZOffset) { gpSyser->OnMouseWheel(-CurrentMouseData.D3.cZOffset); } if((PrevMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS) != (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS)) { bDoubleClick=false; bButtonState = CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS; if(bButtonState) { if(gLButtonDblClkSecond==false) { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } else { if(CurrentMouseData.D3.cYOffset==0&&CurrentMouseData.D3.cXOffset==0) { Interval = (TmpTickCount-gPrevLButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_LBUTTON); gLButtonDblClkSecond=false; bDoubleClick=true; } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_LBUTTON,bButtonState); } if((PrevMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS) != (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)) { bDoubleClick=false; bButtonState = (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0; if(bButtonState) { if(gRButtonDblClkSecond==false) { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } else { if(CurrentMouseData.D3.cYOffset==0&&CurrentMouseData.D3.cXOffset==0) { Interval = (TmpTickCount-gPrevRButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_RBUTTON); gRButtonDblClkSecond=false; bDoubleClick=true; } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0); } if((PrevMouseData.D3.cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS) != (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)) { bDoubleClick=false; bButtonState = (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)!=0; if(bButtonState) { if(gMButtonDblClkSecond==false) { gMButtonDblClkSecond=true; gPrevMButtonDownTickCount=TmpTickCount; } else { if(CurrentMouseData.D3.cYOffset==0&&CurrentMouseData.D3.cXOffset==0) { Interval = (TmpTickCount-gPrevMButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_MBUTTON); gMButtonDblClkSecond=false; bDoubleClick=true; } else { gMButtonDblClkSecond=true; gPrevMButtonDownTickCount=TmpTickCount; } } else { gMButtonDblClkSecond=true; gPrevMButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_MBUTTON,(CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)!=0); } PrevMouseData.D3.cFirstData = CurrentMouseData.D3.cFirstData; PrevMouseData.D3.cXOffset = CurrentMouseData.D3.cXOffset; PrevMouseData.D3.cYOffset = CurrentMouseData.D3.cYOffset; PrevMouseData.D3.cZOffset = CurrentMouseData.D3.cZOffset; if((PrevMouseData.D3.cFirstData&8)==0&&MouseInterruptCount>=23) { stKeyGlobalVariable.dwMouseDataIndex = CalcMouseBeginIndex(); //OUTPUT(WSTR("[%d]Mouse offset modify %d\n"),dwMousePrePackageSize,stKeyGlobalVariable.dwMouseDataIndex); MouseInterruptCount=0; gPS2ModifyCount++; if(gPS2ModifyCount>=10) { if(dwMousePrePackageSize==3) dwMousePrePackageSize=4; else dwMousePrePackageSize=6; gPS2ModifyCount=0; } gPS2OKPackageCount=0; } else { if((PrevMouseData.D3.cFirstData&8)==0) { gPS2ModifyCount++; gPS2OKPackageCount=0; } else { gPS2OKPackageCount++; if(gPS2OKPackageCount>10&&gPS2ModifyCount>=1) gPS2ModifyCount--; } } } } } ================================================ FILE: Project/Syser/Source/PS2Mouse.h ================================================ #ifndef _PS2MOUSE_H_ #define _PS2MOUSE_H_ #ifdef __cplusplus extern "C" { #endif DWORD CalcMouseBeginIndex(); void MouseInterruptService(); VOID SyserInterrupt_0xF9_Mouse_Service(VOID); extern DWORD gPS2MouseInterruptNum; void PS2MouseOperation(); #ifdef __cplusplus }; // extern "C" #endif #endif //_PS2MOUSE_H_ ================================================ FILE: Project/Syser/Source/PageMapWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "PageMapWnd.h" #include "X86Define.h" #include "X86Optr.h" #define PAE_PAGE WISP_MSG_MAP_BEGIN(CPageMapWnd) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispSplitWnd) bool CPageMapWnd::OnCommand(IN WISP_MSG*pMsg) { if(pMsg->Command.CtrlType==WISP_CTRL_LIST) { if(pMsg->Command.CmdID==WND_ID_PAGEDIRECTLIST) { HANDLE hItem = pMsg->Command.Param2; if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_EXPANDED) { //gpCurWisp->DbgPrint(0,WISP_STR("WND_ID_PAGEDIRECTLIST WISP_CMD_PL_EXPANDED")); } if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_UNEXPANDED) { //gpCurWisp->DbgPrint(1,WISP_STR("WND_ID_PAGEDIRECTLIST WISP_CMD_PL_COLLAPSED")); } if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_SELECTED) { //m_PageDirectList.GetItemData(pItem,3) m_PageTableList.ClearChildItem(); if(m_PageTableBaseAddress!=0) InsertPageTableList(pMsg); //gpCurWisp->DbgPrint(2,WISP_STR("%08x"),m_PageDirectList.GetItemData(pItem,3)); } //gpCurWisp->DbgPrint(3,WISP_STR("WND_ID_PAGEDIRECTLIST")); } if(pMsg->Command.CmdID==WND_ID_PAGETABLELIST) { //gpCurWisp->DbgPrint(1,WISP_STR("WND_ID_PAGETABLELIST")); } } return true; } CPageMapWnd::CPageMapWnd() { m_PAE = false; #ifdef CODE_OS_WIN m_PageTableBaseAddress=NULL; m_PageDirectBaseAddress=NULL; #else if(GetX86CR4() & CR4_PAE_BIT_MASK) { m_PageTableBaseAddress = (DWORD *)0xc0000000; m_PageDirectBaseAddress = (DWORD *)0xc0600000; } else { m_PageTableBaseAddress = (DWORD *)0xc0000000; m_PageDirectBaseAddress = (DWORD *)0xc0300000; } #endif } CPageMapWnd::~CPageMapWnd() { } void CPageMapWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("Page Map"),CWispRect(0,0,400,300),NULL,0,WISP_SWS_HORZ|WISP_WS_NORMAL); Center(); } } void CPageMapWnd::UpdateContext() { #ifdef CODE_OS_NT_DRV DWORD dwTmpVar; #endif HANDLE hItem; int i,j; X86_PDE *pCurrentPDEBegin; X86_PDE_4M *pCurrentPDE4M; DWORD *dwPDEValue; ULONGLONG DisplayValue; WISP_CHAR DisplayOut[100]; WCHAR *Format=WSTR("%sP %s %s %s %s %s %s"); pCurrentPDEBegin = (X86_PDE *)m_PageDirectBaseAddress; #ifdef CODE_OS_WIN # ifdef PAE_PAGE if(1) # else if(0) # endif #else if(GetX86CR4() & 0x20) #endif { X86_36_PDE* PDE_36 = (X86_36_PDE*)m_PageDirectBaseAddress; X86_36_PDE_2M *PDE_36_2M; for(j = 0,i = 0; i < 512 * 4; i++) { dwPDEValue = (DWORD *)&PDE_36[i]; #ifndef CODE_OS_WIN if(ReadDword(dwPDEValue,&dwTmpVar)==false) continue; #endif if(!PDE_36[i].u.P) continue; if(PDE_36[i].u.Page2M) { PDE_36_2M = (X86_36_PDE_2M *)&PDE_36[i]; DisplayValue=PDE_36_2M->PDE36Value2M; DisplayValue&= 0xffffffffffe00000i64; TSPrintf(DisplayOut,WISP_STR("%013I64X"),DisplayValue); hItem = m_PageDirectList.InsertItem(DisplayOut); TSPrintf(DisplayOut,WISP_STR("%08X - %08X"),i*0x200000,i*0x200000+0x1fffff); m_PageDirectList.SetItemText(hItem,1,DisplayOut); TSPrintf(DisplayOut,Format, WSTR(" "), PDE_36_2M[i].u.G ? WSTR("G"):WSTR(" "), PDE_36_2M[i].u.D ? WSTR("D"):WSTR(" "), PDE_36_2M[i].u.A ? WSTR("A"):WSTR(" "), PDE_36_2M[i].u.US ? WSTR("U"):WSTR("S"), PDE_36_2M[i].u.RW ? WSTR("RW"):WSTR("R "), WSTR("2M") ); m_PageDirectList.SetItemText(hItem,2,DisplayOut); m_PageDirectList.SetItemNum(hItem,3,i); }else { DisplayValue=*(ULONGLONG*)&PDE_36[i]; TSPrintf(DisplayOut,WISP_STR("%013I64X"),DisplayValue); hItem = m_PageDirectList.InsertItem(DisplayOut); TSPrintf(DisplayOut,WISP_STR("%08X - %08X"),i*0x200000,i*0x200000+0x1fffff); m_PageDirectList.SetItemText(hItem,1,DisplayOut); TSPrintf(DisplayOut,Format, WSTR(" "), WSTR(" "), WSTR(" "), PDE_36[i].u.A ? WSTR("A"):WSTR(" "), PDE_36[i].u.US ? WSTR("U"):WSTR("S"), PDE_36[i].u.RW ? WSTR("RW"):WSTR("R "), WSTR(" ") ); m_PageDirectList.SetItemText(hItem,2,DisplayOut); m_PageDirectList.SetItemNum(hItem,3,i); } } return; } for(j = 0,i = 0; i < 1024; i++) { dwPDEValue = (DWORD *)&pCurrentPDEBegin[i]; #ifndef CODE_OS_WIN if(ReadDword(dwPDEValue,&dwTmpVar)==false) continue; #endif if(!pCurrentPDEBegin[i].u.Present) continue; if(pCurrentPDEBegin[i].u.Page4M) { pCurrentPDE4M = (X86_PDE_4M *)&pCurrentPDEBegin[i]; TSPrintf(DisplayOut,WISP_STR("%08X"),*dwPDEValue&0xfff00000); hItem = m_PageDirectList.InsertItem(DisplayOut); TSPrintf(DisplayOut,WISP_STR("%08X - %08X"),i*0x400000,i*0x400000+0x3fffff); m_PageDirectList.SetItemText(hItem,1,DisplayOut); TSPrintf(DisplayOut,Format, WSTR(" "), pCurrentPDE4M->GlobePage ? WSTR("G"):WSTR(" "), pCurrentPDE4M->Dirty ? WSTR("D"):WSTR(" "), pCurrentPDE4M->Accessed ? WSTR("A"):WSTR(" "), pCurrentPDE4M->UserPage ? WSTR("U"):WSTR("S"), pCurrentPDE4M->ReadWrite ? WSTR("RW"):WSTR("R "), WSTR("4M") ); m_PageDirectList.SetItemText(hItem,2,DisplayOut); m_PageDirectList.SetItemNum(hItem,3,i); } else { TSPrintf(DisplayOut,WISP_STR("%08X"),*dwPDEValue&0xfffff000); hItem = m_PageDirectList.InsertItem(DisplayOut); TSPrintf(DisplayOut,WISP_STR("%08X - %08X"),i*0x400000,i*0x400000+0x3fffff); m_PageDirectList.SetItemText(hItem,1,DisplayOut); TSPrintf(DisplayOut,Format, WSTR(" "), WSTR(" "), WSTR(" "), pCurrentPDEBegin[i].u.Accessed ? WSTR("A"):WSTR(" "), pCurrentPDEBegin[i].u.UserPage ? WSTR("U"):WSTR("S"), pCurrentPDEBegin[i].u.ReadWrite ? WSTR("RW"):WSTR("R "), WSTR(" ") ); m_PageDirectList.SetItemText(hItem,2,DisplayOut); m_PageDirectList.SetItemNum(hItem,3,i); } } } bool CPageMapWnd::OnDestroy(IN WISP_MSG*pMsg) { #ifdef CODE_OS_WIN BYTE *pByte; pByte = (BYTE *)m_PageTableBaseAddress; delete []m_PageTableBaseAddress; #else #endif return true; } bool CPageMapWnd::InsertPageTableList(IN WISP_MSG *pMsg) { int i;//,j; WCHAR *Format1=WSTR("%sP %s %s %s %s %s %s"); X86_PDE *pCurrentPDEBegin; X86_PTE *pPageTableBegin; DWORD dwPageDirectEntryIndex,dwTmpVar; DWORD dwPTEValue,dwPDEValue; WISP_CHAR DisplayOut[100]; HANDLE hItem = (HANDLE*)pMsg->Command.Param2; dwPageDirectEntryIndex =(DWORD) m_PageTableList.GetItemData(hItem,3); #ifdef CODE_OS_WIN # ifdef PAE_PAGE if(1) # else if(0) # endif #else if(GetX86CR4() & 0x20) #endif { X86_36_PDE *PDE_36; X86_36_PTE *PTE_36; PDE_36 = (X86_36_PDE *)m_PageDirectBaseAddress; #ifndef CODE_OS_WIN if(ReadDword(&PDE_36[dwPageDirectEntryIndex],&dwTmpVar)==false) return true; #endif if(!PDE_36[dwPageDirectEntryIndex].u.P) return true; if(PDE_36[dwPageDirectEntryIndex].u.Page2M) return true; PTE_36 = (X86_36_PTE*)RT_PBYTE(m_PageTableBaseAddress,dwPageDirectEntryIndex << 12); dwPDEValue = dwPageDirectEntryIndex * 0x200000; for(i = 0; i < 512; i++) { if(ReadDword(&PTE_36[i],&dwTmpVar)==false) return true; if(!PTE_36[i].u.P) continue; dwPTEValue = *(DWORD *)(&PTE_36[i]); TSPrintf(DisplayOut,WISP_STR("%08X"),dwPDEValue + (i<<12)); hItem = m_PageTableList.InsertItem(DisplayOut); TSPrintf(DisplayOut,WISP_STR("%01X%08X"),PTE_36[i].u.BaseAddressHigh,dwPTEValue & 0xfffff000); m_PageTableList.SetItemText(hItem,1,DisplayOut); TSPrintf(DisplayOut,Format1, WSTR(" "), PTE_36[i].u.G ? WSTR("G"):WSTR(" "), PTE_36[i].u.D ? WSTR("D"):WSTR(" "), PTE_36[i].u.A ? WSTR("A"):WSTR(" "), PTE_36[i].u.US ? WSTR("U"):WSTR("S"), PTE_36[i].u.RW ? WSTR("RW"):WSTR("R "), WSTR(" ")); m_PageTableList.SetItemText(hItem,2,DisplayOut); } return true; } pCurrentPDEBegin = (X86_PDE *)m_PageDirectBaseAddress; #ifndef CODE_OS_WIN if(ReadDword(&pCurrentPDEBegin[dwPageDirectEntryIndex],&dwTmpVar)==false) return true; #endif if(pCurrentPDEBegin[dwPageDirectEntryIndex].u.Page4M) return true; if(!pCurrentPDEBegin[dwPageDirectEntryIndex].u.Present) return true; dwPDEValue = dwPageDirectEntryIndex * 0x400000; pPageTableBegin = (X86_PTE *)RT_PBYTE(m_PageTableBaseAddress,dwPageDirectEntryIndex << 12); for(i = 0; i < 1024;i++) { if(ReadDword(&pPageTableBegin[i],&dwTmpVar)==false) return true; if(!pPageTableBegin[i].Present) continue; dwPTEValue = *(DWORD *)(&pPageTableBegin[i]); TSPrintf(DisplayOut,WISP_STR("%08X"),dwPDEValue + (i<<12)); hItem = m_PageTableList.InsertItem(DisplayOut); TSPrintf(DisplayOut,WISP_STR("%08X"),dwPTEValue & 0xfffff000); m_PageTableList.SetItemText(hItem,1,DisplayOut); TSPrintf(DisplayOut,Format1, WSTR(" "), pPageTableBegin[i].GlobePage ? WSTR("G"):WSTR(" "), pPageTableBegin[i].Dirty ? WSTR("D"):WSTR(" "), pPageTableBegin[i].Accessed ? WSTR("A"):WSTR(" "), pPageTableBegin[i].UserPage ? WSTR("U"):WSTR("S"), pPageTableBegin[i].ReadWrite ? WSTR("RW"):WSTR("R "), WSTR(" ")); m_PageTableList.SetItemText(hItem,2,DisplayOut); } return true; } bool CPageMapWnd::OnCreate(IN WISP_MSG *pMsg) { #ifdef CODE_OS_WIN CLocalFileIO PageTableFile; BYTE *pByte; int nLen; HANDLE hFile; if(PageTableFile.OpenFile("PageTable.bin",&hFile)) { nLen = (int)PageTableFile.GetFileLength(hFile); pByte= new BYTE[nLen]; m_PageTableBaseAddress = (DWORD *)pByte; PageTableFile.ReadFile(hFile,(void*)m_PageTableBaseAddress,nLen); m_PageDirectBaseAddress =(DWORD *) (pByte+0x300000); PageTableFile.CloseHandle(hFile); }else { m_PageTableBaseAddress=NULL; m_PageDirectBaseAddress=NULL; return true; } #endif m_PageDirectList.Create(NULL,CWispRect(0,0,m_ClientRect.cx / 2,m_ClientRect.cy),this,WND_ID_PAGEDIRECTLIST,WISP_WLS_COLUMN_TITLE); m_PageDirectList.InsertColumn(WISP_STR("Page Table Physical Address"),68); m_PageDirectList.InsertColumn(WISP_STR("Lines Address"),120); m_PageDirectList.InsertColumn(WISP_STR("Attribute"),120); m_PageDirectList.InsertColumn(WISP_STR(""),80); m_PageTableList.Create(NULL,CWispRect(m_ClientRect.cx / 2,0,m_ClientRect.cx / 2,m_ClientRect.cy),this,WND_ID_PAGETABLELIST,WISP_WLS_COLUMN_TITLE); m_PageTableList.InsertColumn(WISP_STR("Lines Address"),120); m_PageTableList.InsertColumn(WISP_STR("Physical"),80); m_PageTableList.InsertColumn(WISP_STR("Attribute"),120); m_PageTableList.InsertColumn(WISP_STR(""),80); InsertWnd(&m_PageDirectList,0,100); InsertWnd(&m_PageTableList,0,100); AdjustWndPos(); UpdateContext(); return true; } bool CPageMapWnd::OnClose(IN WISP_MSG *pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } ================================================ FILE: Project/Syser/Source/PageMapWnd.h ================================================ #ifndef _PAGEMAPWND_H_ #define _PAGEMAPWND_H_ enum { WND_ID_PAGEDIRECTLIST = WISP_ID_USER_START, WND_ID_PAGETABLELIST, }; class CPageMapWnd : public CWispSplitWnd { bool m_PAE; public: CPageMapWnd(); ~CPageMapWnd(); void Popup(); void UpdateContext(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnClose); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnCommand); bool InsertPageTableList(IN WISP_MSG *pMsg); CWispList m_PageDirectList; CWispList m_PageTableList; DWORD* m_PageDirectBaseAddress; DWORD* m_PageTableBaseAddress; }; #endif ================================================ FILE: Project/Syser/Source/PatchKeBugCheckEx.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #ifdef __cplusplus extern "C" { #endif // // úܱŤ // VOID FASTCALL SyserOnPatchBugCheckExMIniCall(PVOID* NextAddress); VOID SyserNopLoop(VOID); #ifdef __cplusplus }; // extern "C" #endif void OnPatchBugCheckEx() { static DWORD gPrevExceptionEIP; static DWORD gPrevExceptionInterruptNum; DWORD* pStack=*(DWORD**)&Reg.GeneReg[ESP_IDX]; DWORD looplabel; DWORD CurrentCpuID; DWORD dwCurEIP; DWORD* dwValue; CurrentCpuID = GetCurrentCPULocalAPICID(); OUTPUT(WSTR("%Syser : KeBugCheck %x, {%08x, %08x, %08x, %08x}\n"),pStack[1],pStack[2],pStack[3],pStack[4],pStack[5]); SRCEXPLR_OUTPUT(WSTR("%Syser : KeBugCheck %x, {%08x, %08x, %08x, %08x}\n"),pStack[1],pStack[2],pStack[3],pStack[4],pStack[5]); SYSEXPLR_OUTPUT(WSTR("%Syser : KeBugCheck %x, {%08x, %08x, %08x, %08x}\n"),pStack[1],pStack[2],pStack[3],pStack[4],pStack[5]); if(gpSyser->m_bFaultsStat==false) return ; dwCurEIP=ExceptionReg[CurrentCpuID].EIP; if(pStack[4]==0x7f) { if(pStack[5]==ExceptionInterruptNum) goto local_001; } if(dwCurEIP==pStack[2]||dwCurEIP==pStack[3]||dwCurEIP==pStack[4]||dwCurEIP==pStack[5]) { local_001: if((dwCurEIP>=gpSyser->m_SysInfo.m_SyserBase && dwCurEIPm_SysInfo.m_SyserHighBase)) { OUTPUT(WSTR("%<6>Syser : SYSER crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); // __asm // { // call local_0021 // local_0011: // // jmp local_0011 // local_0021: // pop eax // mov looplabel,eax // } SyserOnPatchBugCheckExMIniCall((PVOID*)&looplabel); SyserNopLoop(); Reg.EIP=looplabel; } else { if(gPrevExceptionEIP == dwCurEIP && gPrevExceptionInterruptNum == ExceptionReg[CurrentCpuID].ExceptionInterruptNumber) { return; } Reg.GeneReg[EAX_IDX]=ExceptionReg[CurrentCpuID].GeneReg[EAX_IDX]; Reg.GeneReg[EBX_IDX]=ExceptionReg[CurrentCpuID].GeneReg[EBX_IDX]; Reg.GeneReg[ECX_IDX]=ExceptionReg[CurrentCpuID].GeneReg[ECX_IDX]; Reg.GeneReg[EDX_IDX]=ExceptionReg[CurrentCpuID].GeneReg[EDX_IDX]; Reg.GeneReg[ESP_IDX]=ExceptionReg[CurrentCpuID].GeneReg[ESP_IDX]; Reg.GeneReg[EBP_IDX]=ExceptionReg[CurrentCpuID].GeneReg[EBP_IDX]; Reg.GeneReg[ESI_IDX]=ExceptionReg[CurrentCpuID].GeneReg[ESI_IDX]; Reg.GeneReg[EDI_IDX]=ExceptionReg[CurrentCpuID].GeneReg[EDI_IDX]; Reg.SegReg[CS_IDX]=ExceptionReg[CurrentCpuID].SegReg[CS_IDX]; Reg.SegReg[DS_IDX]=ExceptionReg[CurrentCpuID].SegReg[DS_IDX]; Reg.SegReg[ES_IDX]=ExceptionReg[CurrentCpuID].SegReg[ES_IDX]; Reg.SegReg[FS_IDX]=ExceptionReg[CurrentCpuID].SegReg[FS_IDX]; Reg.SegReg[GS_IDX]=ExceptionReg[CurrentCpuID].SegReg[GS_IDX]; Reg.SegReg[SS_IDX]=ExceptionReg[CurrentCpuID].SegReg[SS_IDX]; Reg.EIP=ExceptionReg[CurrentCpuID].EIP; Reg.EFlags=ExceptionReg[CurrentCpuID].EFlags; OldESP=ExceptionReg[CurrentCpuID].GeneReg[ESP_IDX]; OldESP-=0xc; dwValue=(DWORD*)OldESP; gPrevExceptionEIP=ExceptionReg[CurrentCpuID].EIP; gPrevExceptionInterruptNum=ExceptionReg[CurrentCpuID].ExceptionInterruptNumber; OUTPUT(WSTR("%<3>Syser : system crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); OUTPUT(WSTR("%<3>Syser : reboot after syser exitting!\n")); SYSEXPLR_OUTPUT(WSTR("%<3>Syser : system crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); SYSEXPLR_OUTPUT(WSTR("%<3>Syser : reboot after syser exitting!\n")); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_MonitorTabWnd.SetActiveWnd(1); SRCEXPLR_OUTPUT(WSTR("%<3>Syser : system crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); SRCEXPLR_OUTPUT(WSTR("%<3>Syser : reboot after syser exitting!\n")); RUNCMD(WSTR("T")); gpSyser->m_pDebugger->m_bPrevPatchBP=false; gbBugCheckExExit=true; while(WaitForKey()!=1); } } else { if(ExceptionReg[CurrentCpuID].EIPm_SysInfo.m_SyserBase || ExceptionReg[CurrentCpuID].EIP>=gpSyser->m_SysInfo.m_SyserHighBase) { OUTPUT(WSTR("%<3>Syser : system crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); OUTPUT(WSTR("%<3>Syser : reboot after syser exitting!\n")); SYSEXPLR_OUTPUT(WSTR("%<3>Syser : system crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); SYSEXPLR_OUTPUT(WSTR("%<3>Syser : reboot after syser exitting!\n")); gpSyser->Active(); } else { OUTPUT(WSTR("%<6>Syser : SYSER crash , exception EIP = %08X\n"),ExceptionReg[CurrentCpuID].EIP); // __asm // { // call local_002 // local_0013: // jmp local_0013 // local_002: // pop eax // mov looplabel,eax // } SyserOnPatchBugCheckExMIniCall((PVOID*)&looplabel); SyserNopLoop(); Reg.EIP=looplabel; } } } void PatchKeBugCheckEx() { BYTE Value=0; void* pKeBugCheckEx=(void*)KeBugCheckEx; if(pKeBugCheckEx==NULL) return; if(ReadByte((BYTE*)pKeBugCheckEx,&Value)==false) return; gpBugCheckExAddress=*(DWORD*)&pKeBugCheckEx; gbBugCheckExFirstByteIsCC = (Value==0xcc)?true:false; PATCH_SYSTEM("KeBugCheckEx",pKeBugCheckEx,OnPatchBugCheckEx); gbBugCheckExFlags=true; } ================================================ FILE: Project/Syser/Source/PatchKeBugCheckEx.h ================================================ #ifndef __PATCHKEBUGCHECKEX__ #define __PATCHKEBUGCHECKEX__ void PatchKeBugCheckEx(); void OnPatchBugCheckEx(); #endif //__PATCHKEBUGCHECKEX__ ================================================ FILE: Project/Syser/Source/PluginListForm.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "PluginListForm.h" enum CPluginListForm::WISP_FORM_ID { CMD_ID_PLUGIN_LIST = WISP_ID_USER_START, }; WISP_FORM_RES_ITEM CPluginListForm::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,400,200}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Plugin List"), "\\SyserIcon\\Plugin.ico", WSTR("Syser Plugin List !"), }, { WISP_CTRL_LIST, {5,5,300,160}, CMD_ID_PLUGIN_LIST, WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER, NULL, }, { WISP_CTRL_STATIC_DIB, {315,30,64,64}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Plugin.ico" }, { WISP_CTRL_BUTTON, {312,120,70,20}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), }, {WISP_CTRL_NULL} }; CPluginListForm::CPluginListForm() { m_pFormRes = m_FormRes; } CPluginListForm::~CPluginListForm() { } WISP_MSG_MAP_BEGIN(CPluginListForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) void CPluginListForm::Popup() { if(IsWindow()) { UpdateContext(); Show(); } else CreateForm(); } void CPluginListForm::UpdateContext() { HANDLE hItem; for(CPluginMap::IT It=gpSyser->m_PluginMap.Begin();It!=gpSyser->m_PluginMap.End();It++) { hItem=m_pPluginList->InsertItem((PCWSTR)It.Key()); m_pPluginList->SetItemText(hItem,1,It->PluginInfo); } } bool CPluginListForm::OnFormCreate(WISP_MSG*pMsg) { m_pPluginList = (CWispList*)GetFormItem(CMD_ID_PLUGIN_LIST); m_pPluginList->InsertColumn(WSTR("Module Name"),100); m_pPluginList->InsertColumn(WSTR("Information"),190); UpdateContext(); return true; } ================================================ FILE: Project/Syser/Source/PluginListForm.h ================================================ #ifndef _PLUGIN_LIST_FORM_H_ #define _PLUGIN_LIST_FORM_H_ class CPluginListForm : public CWispForm { public: CPluginListForm(); ~CPluginListForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: void Popup(); void UpdateContext(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP public: CWispList* m_pPluginList; }; #endif ================================================ FILE: Project/Syser/Source/ProcessList.cpp ================================================ #include "StdAfx.h" #include "ProcessList.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CProcessList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_END(CWispList) CProcessList::CProcessList() { } CProcessList::~CProcessList() { } void CProcessList::Popup() { if(IsWindow()) { Destroy(); } else { Create(WISP_STR("Processes"),CWispRect(0,0,500,350),NULL,0,WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WS_NORMAL); Center(); } } bool CProcessList::OnCreate(IN WISP_MSG*pMsg) { AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,15)); SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_Style|=WISP_WLS_EMPTY_SEL_RECT; InsertColumn(WISP_STR("Name"),200); InsertColumn(WISP_STR("ID"),80); #ifdef CODE_OS_NT_DRV InsertColumn(WISP_STR("CR3"),80); InsertColumn(WISP_STR("PEB"),80); InsertColumn(WISP_STR("EPROCESS"),80); #else InsertColumn(WISP_STR("User Name"),80); #endif UpdateContext(); return true; } bool CProcessList::OnClose(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } void CProcessList::UpdateContext() { #ifdef CODE_OS_NT_DRV HANDLE hItem; WCHAR szBuffer[128]; ClearChildItem(); for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { hItem = InsertItem((PWSTR)Iter->m_ProcNameW); TSPrintf(szBuffer,WSTR("%04X"),Iter->m_PID); SetItemText(hItem,1,szBuffer); TSPrintf(szBuffer,WSTR("%08X"),Iter->m_CR3); SetItemText(hItem,2,szBuffer); SetItemData(hItem,0,(NUM_PTR)&(*Iter)); TSPrintf(szBuffer,WSTR("%08X"),Iter->m_pCurrentPEB); SetItemText(hItem,3,szBuffer); TSPrintf(szBuffer,WSTR("%08X"),Iter->m_PEProcess); SetItemText(hItem,4,szBuffer); } #else ClearChildItem(); m_hSystemItem = InsertItem(WSTR("System Process List")); SetItemText(m_hSystemItem,1,WSTR("SYSTEM")); ListOSProcess(); #endif } #ifdef CODE_OS_WIN bool GetProcessUser(HANDLE hProcess, WCHAR*szUserName,int MaxLen) { SID_NAME_USE sn; WCHAR szDomainName[MAX_FN_LEN]; DWORD Length,NameLen; bool Result; HANDLE hToken; TOKEN_USER*pTokenUser; *szUserName=0; if(OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)==FALSE) { return false; } Length=0; GetTokenInformation(hToken,TokenUser, NULL, 0, &Length); if(Length==0) { CloseHandle(hToken); return false; } pTokenUser = (TOKEN_USER*)new BYTE[Length]; if(GetTokenInformation(hToken,TokenUser,pTokenUser,Length,&Length)==false) { delete pTokenUser; CloseHandle(hToken); return false; } Length = MAX_FN_LEN; NameLen = MaxLen; Result = LookupAccountSidW(NULL,pTokenUser->User.Sid,szUserName,&NameLen,szDomainName,&Length,&sn)!=FALSE; delete pTokenUser; CloseHandle(hToken); return Result; } bool CProcessList::ListOSProcess() { WCHAR szBuffer[MAX_FN_LEN]; HANDLE hProcess; HANDLE hSystemItem,hUserItem,hParentItem,hItem; PROCESS_MEMORY_COUNTERS mc; PROCESSENTRY32W pe32; HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap == INVALID_HANDLE_VALUE) return false; int UserCount,SystemCount; UserCount=SystemCount=0; hSystemItem = GetItem(0,m_hSystemItem); hUserItem = GetNextItem(m_hSystemItem); pe32.dwSize = sizeof(PROCESSENTRY32W); if(Process32FirstW(hProcessSnap,&pe32)) { do { hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,pe32.th32ProcessID); GetProcessUser(hProcess,szBuffer,MAX_FN_LEN); if(*szBuffer==0) TStrCpy(szBuffer,WSTR("SYSTEM")); if(TStrCmp(szBuffer,WSTR("SYSTEM"))) { hParentItem = NULL; hItem = hUserItem; UserCount++; } else { hParentItem = m_hSystemItem; hItem = hSystemItem; SystemCount++; } hItem = InsertItem(TGetFileName(pe32.szExeFile),hParentItem); STZeroMemory(mc); GetProcessMemoryInfo(hProcess,&mc,sizeof(mc)); SetItemData(hItem,0,pe32.th32ProcessID); SetItemNum(hItem,1,pe32.th32ProcessID,WSTR("0x%X")); SetItemText(hItem,2,szBuffer); if(hParentItem) hSystemItem = GetNextItem(hItem); else hUserItem = GetNextItem(hItem); CloseHandle(hProcess); }while(Process32NextW(hProcessSnap, &pe32)); } CloseHandle(hProcessSnap); SetItemChildCount(NULL,UserCount+1); SetItemChildCount(m_hSystemItem,SystemCount); return true; } #endif bool CProcessList::OnKeyEvent(IN WISP_MSG*pMsg) { return true; } #ifdef CODE_OS_WIN void CProcessList::ItemClickNotify(HANDLE hItem,int Col) { WCHAR szItem[256],szCmd[256]; if(hItem == m_hSystemItem) { return; } GetItemText(hItem,1,szItem,256); if(szItem[0]!='0'||szItem[1]!='x') { return; } RUNCMD(WSTR("close")); TSPrintf(szCmd,WSTR("open \\PID:%s"),&szItem[2]); RUNCMD(szCmd); Destroy(); } #endif ================================================ FILE: Project/Syser/Source/ProcessList.h ================================================ #ifndef _PROCESS_LIST_H_ #define _PROCESS_LIST_H_ #include "DbgProcess.h" class CProcessList : public CWispList { public: CProcessList(); ~CProcessList(); void Popup(); void UpdateContext(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnKeyEvent) #ifdef CODE_OS_WIN HANDLE m_hSystemItem; bool ListOSProcess(); void ItemClickNotify(HANDLE hItem,int Col); #endif }; #endif ================================================ FILE: Project/Syser/Source/PromptQuit.cpp ================================================ #include "StdAfx.h" #include "PromptQuit.h" int PromptQuit(char* DisplayString,LONG TimeOut) { int LoopCount; LARGE_INTEGER Interval; PHYSICAL_ADDRESS PhysicaAddressl; SIZE_T Size; BYTE *VideoBuffer=NULL; int RetValue=0; Interval.QuadPart =TimeOut; Size=0x8000; PhysicaAddressl.QuadPart=0xb8000; VideoBuffer = (BYTE*)MmMapIoSpace(PhysicaAddressl,Size,MmNonCached); LoopCount=0; DisplayTextString(DisplayString,0,24,VideoBuffer); VidDisplayStringXY("Press Esc to cancel loading SYSER",180,408,1); for(;LoopCount<250;LoopCount++) { __asm { push eax xor eax,eax in al,0x64 test al,1 jz local_001 in al,0x60 mov RetValue,eax local_001: pop eax } if(RetValue) break; KeDelayExecutionThread(KernelMode,FALSE,&Interval); } DisplayTextString( " ",0,24,VideoBuffer); ULONG MajorVersion; ULONG MinorVersion; ULONG BuildNumber; PsGetVersion(&MajorVersion,&MinorVersion,&BuildNumber,NULL); if(MajorVersion == 5 && MinorVersion == 0) VidSolidColorFill(180,408,180+280,408+13,15); else VidSolidColorFill(180,408,180+280,408+13,1); if(VideoBuffer) MmUnmapIoSpace(VideoBuffer,Size); return RetValue; } void DisplayTextString(char* DisplayString,int x,int y,BYTE* VideoBuffer) { int i; int StartOffset = y*80*2+x*2; if(StartOffset>25*80*2||DisplayString==NULL||VideoBuffer==NULL) return ; for(i=0;DisplayString[i];i++) { VideoBuffer[StartOffset+i*2]=DisplayString[i]; VideoBuffer[StartOffset+i*2+1]=0x7; } } ================================================ FILE: Project/Syser/Source/PromptQuit.h ================================================ #ifndef _PROMPTQUIT_H_ #define _PROMPTQUIT_H_ void DisplayTextString(char* DisplayString,int x,int y,BYTE* VideoBuffer); int PromptQuit(char* DisplayString,LONG TimeOut=-10000); #endif //_PROMPTQUIT_H_ ================================================ FILE: Project/Syser/Source/RegHelpWnd.cpp ================================================ #include "StdAfx.h" #include "RegHelpWnd.h" REGISTERBITNAME PageDirEntry4K[]={ {WSTR("Page-Table Base Address"),31,20,NULL}, {WSTR("Avail"),11,3,WSTR("Available for system programmer's use")}, {WSTR("G"),8,1,WSTR("Global page (Ignored)")}, {WSTR("P\nS"),7,1,WSTR("Page size(0 indicates 4 KBytes)")}, {WSTR("0"),6,1,WSTR("Reserved (set to 0)")}, {WSTR("A"),5,1,WSTR("Accessed")}, {WSTR("P\nC\nD"),4,1,WSTR("Cache disabled")}, {WSTR("P\nW\nT"),3,1,WSTR("Write-through")}, {WSTR("U\n/\nS"),2,1,WSTR("User/Supervisor")}, {WSTR("R\n/\nW"),1,1,WSTR("Read/Write")}, {WSTR("P"),0,1,WSTR("Present")}, {NULL,0,0,NULL}, }; REGISTERBITNAME PageTabEntry4K[]={ {WSTR("Page Base Address"),31,20,NULL}, {WSTR("Avail"),11,3,WSTR("Available for system programmer's use")}, {WSTR("G"),8,1,WSTR("Global Page")}, {WSTR("P\nA\nT"),7,1,WSTR("Page Table Attribute Index")}, {WSTR("D"),6,1,WSTR("Dirty")}, {WSTR("A"),5,1,WSTR("Accessed")}, {WSTR("P\nC\nD"),4,1,WSTR("Cache disabled")}, {WSTR("P\nW\nT"),3,1,WSTR("Write-through")}, {WSTR("U\n/\nS"),2,1,WSTR("User/Supervisor")}, {WSTR("R\n/\nW"),1,1,WSTR("Read/Write")}, {WSTR("P"),0,1,WSTR("Present")}, {NULL,0,0,NULL}, }; REGISTERBITNAME PageDirEntry4M[]={ {WSTR("Page Base Address"),31,10,NULL}, {WSTR("Reserved"),21,9,NULL}, {WSTR("P\nA\nT"),12,1,WSTR("Page Table Attribute Index")}, {WSTR("Avail."),11,3,WSTR("Available for system programmer's use")}, {WSTR("G"),8,1,WSTR("Global page")}, {WSTR("P\nS"),7,1,WSTR("Page size(1 indicates 4 MBytes)")}, {WSTR("D"),6,1,WSTR("Dirty")}, {WSTR("A"),5,1,WSTR("Accessed")}, {WSTR("P\nC\nD"),4,1,WSTR("Cache disabled")}, {WSTR("P\nW\nT"),3,1,WSTR("Write-through")}, {WSTR("U\n/\nS"),2,1,WSTR("User/Supervisor")}, {WSTR("R\n/\nW"),1,1,WSTR("Read/Write")}, {WSTR("P"),0,1,WSTR("Present")}, {NULL,0,0,NULL}, }; REGISTERBITNAME DataSegmentDesc0[]={ {WSTR("Base 31:24"),31,8,NULL}, {WSTR("G"),23,1,NULL}, {WSTR("B"),22,1,NULL}, {WSTR("0"),21,1,NULL}, {WSTR("A\nV\nL"),20,1,NULL}, {WSTR("Limit\n19:16"),19,4,NULL}, {WSTR("P"),15,1,NULL}, {WSTR("D\nP\nL"),14,2,NULL}, {WSTR("1"),12,1,NULL}, {WSTR("Type"),11,4,NULL}, {WSTR("Base 23:16"),7,8,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME DataSegmentDesc1[]={ {WSTR("Base Address 15:00"),31,16,NULL}, {WSTR("Segment Limit 15:00"),15,16,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME CodeSegmentDesc0[]={ {WSTR("Base 31:24"),31,8,NULL}, {WSTR("G"),23,1,NULL}, {WSTR("D"),22,1,NULL}, {WSTR("0"),21,1,NULL}, {WSTR("A\nV\nL"),20,1,NULL}, {WSTR("Limit\n19:16"),19,4,NULL}, {WSTR("P"),15,1,NULL}, {WSTR("D\nP\nL"),14,2,NULL}, {WSTR("1"),12,1,NULL}, {WSTR("Type"),11,4,NULL}, {WSTR("Base 23:16"),7,8,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME CodeSegmentDesc1[]={ {WSTR("Base Address 15:00"),31,16,NULL}, {WSTR("Segment Limit 15:00"),15,16,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME SystemSegmentDesc0[]={ {WSTR("Base 31:24"),31,8,NULL}, {WSTR("G"),23,1,NULL}, {WSTR("0"),21,1,NULL}, {WSTR("Limit\n19:16"),19,4,NULL}, {WSTR("P"),15,1,NULL}, {WSTR("D\nP\nL"),14,2,NULL}, {WSTR("0"),12,1,NULL}, {WSTR("Type"),11,4,NULL}, {WSTR("Base 23:16"),7,8,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME SystemSegmentDesc1[]={ {WSTR("Base Address 15:00"),31,16,NULL}, {WSTR("Segment Limit 15:00"),15,16,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stCR0Name[]={ {WSTR("P\nG"),31,1,NULL}, {WSTR("C\nD"),30,1,NULL}, {WSTR("N\nW"),29,1,NULL}, {WSTR("A\nM"),18,1,NULL}, {WSTR("W\nP"),16,1,NULL}, {WSTR("N\nE"),5,1,NULL}, {WSTR("E\nT"),4,1,NULL}, {WSTR("T\nS"),3,1,NULL}, {WSTR("E\nM"),2,1,NULL}, {WSTR("M\nP"),1,1,NULL}, {WSTR("P\nE"),0,1,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stCR2Name[]={ {WSTR("Page-Fault Linear Address"),31,32,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stCR3Name[]={ {WSTR("Page-Directory Base"),31,20,NULL}, {WSTR("P\nC\nD"),4,1,NULL}, {WSTR("P\nW\nT"),3,1,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stCR4Name[]={ {WSTR("Reserved (Set to 0)"),31,21,NULL}, {WSTR(""),10,1,WSTR("OSXMMEX")}, {WSTR(""),9,1,WSTR("OSFXSR")}, {WSTR("P\nC\nE"),8,1,NULL}, {WSTR("P\nG\nE"),7,1,NULL}, {WSTR("M\nC\nE"),6,1,NULL}, {WSTR("P\nA\nE"),5,1,NULL}, {WSTR("P\nS\nE"),4,1,NULL}, {WSTR("D\nE"),3,1,NULL}, {WSTR("T\nS\nD"),2,1,NULL}, {WSTR("P\nV\nI"),1,1,NULL}, {WSTR("V\nM\nE"),0,1,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stEFlagsName[]={ {WSTR("Reserved(set to 0)"),31,10,NULL}, {WSTR("I\nD"),21,1,WSTR("ID -- Identification Flag")}, {WSTR("V\nI\nP"),20,1,WSTR("VIP -- Virtual Interrupt Pending")}, {WSTR("V\nI\nF"),19,1,WSTR("VIF -- Virtual Interrupt Flag")}, {WSTR("A\nC"),18,1,WSTR("AC -- Alignment Check")}, {WSTR("V\nM"),17,1,WSTR("VM -- Virtual-8086 Mode")}, {WSTR("R\nF"),16,1,WSTR("RF -- Resume Flag")}, {WSTR("0"),15,1,NULL}, {WSTR("N\nT"),14,1,WSTR("NT -- Nested Task Flag")}, {WSTR("IOPL"),13,2,WSTR("IOPL -- I/O Privilege Level")}, {WSTR("O\nF"),11,1,NULL}, {WSTR("D\nF"),10,1,NULL}, {WSTR("I\nF"),9,1,WSTR("IF -- Interrupt Enable Flag")}, {WSTR("T\nF"),8,1,WSTR("TF -- Trap Flag")}, {WSTR("S\nF"),7,1,WSTR("SF -- Sign Flag")}, {WSTR("Z\nF"),6,1,WSTR("ZF -- Zero Flag")}, {WSTR("0"),5,1,NULL}, {WSTR("A\nF"),4,1,WSTR("AF -- Auxiliary Carry Flag")}, {WSTR("0"),3,1,NULL}, {WSTR("P\nF"),2,1,WSTR("PF -- Parity Flag")}, {WSTR("1"),1,1,NULL}, {WSTR("C\nF"),0,1,WSTR("CF -- Carry Flag")}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR7Name[]={ {WSTR("L\n0"),0,1,NULL}, {WSTR("G\n0"),1,1,NULL}, {WSTR("L\n1"),2,1,NULL}, {WSTR("G\n1"),3,1,NULL}, {WSTR("L\n2"),4,1,NULL}, {WSTR("G\n2"),5,1,NULL}, {WSTR("L\n3"),6,1,NULL}, {WSTR("G\n3"),7,1,NULL}, {WSTR("L\nE"),8,1,NULL}, {WSTR("G\nE"),9,1,NULL}, {WSTR("1"),10,1,NULL}, {WSTR("0"),11,1,NULL}, {WSTR("0"),12,1,NULL}, {WSTR("G\nD"),13,1,NULL}, {WSTR("0"),14,1,NULL}, {WSTR("0"),15,1,NULL}, {WSTR("R/W\n0"),17,2,NULL}, {WSTR("LEN\n0"),19,2,NULL}, {WSTR("R/W\n1"),21,2,NULL}, {WSTR("LEN\n1"),23,2,NULL}, {WSTR("R/W\n2"),25,2,NULL}, {WSTR("LEN\n2"),27,2,NULL}, {WSTR("R/W\n3"),29,2,NULL}, {WSTR("LEN\n4"),31,2,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR6Name[]={ {WSTR("B\n0"),0,1,NULL}, {WSTR("B\n1"),1,1,NULL}, {WSTR("B\n2"),2,1,NULL}, {WSTR("B\n3"),3,1,NULL}, {WSTR("1"),4,1,NULL}, {WSTR("1"),5,1,NULL}, {WSTR("1"),6,1,NULL}, {WSTR("1"),7,1,NULL}, {WSTR("1"),8,1,NULL}, {WSTR("1"),9,1,NULL}, {WSTR("1"),10,1,NULL}, {WSTR("1"),11,1,NULL}, {WSTR("0"),12,1,NULL}, {WSTR("B\nD"),13,1,NULL}, {WSTR("B\nS"),14,1,NULL}, {WSTR("B\nT"),15,1,NULL}, {WSTR("Reserved(set to 1)"),31,16,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR5Name[]={ {WSTR("Reserved"),31,32,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR4Name[]={ {WSTR("Reserved"),31,32,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR3Name[]={ {WSTR("Breakpoint Linear Address"),31,32,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR2Name[]={ {WSTR("Breakpoint 2 Linear Address"),31,32,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR1Name[]={ {WSTR("Breakpoint 1 Linear Address"),31,32,NULL}, {NULL,0,0,NULL}, }; REGISTERBITNAME stDR0Name[]={ {WSTR("Breakpoint 0 Linear Address"),31,32,NULL}, {NULL,0,0,NULL}, }; WISP_MSG_MAP_BEGIN(CRegHelpWnd) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP_END(CWispWnd) CRegHelpWnd::CRegHelpWnd() { m_RegisterGroup=-1; } CRegHelpWnd::~CRegHelpWnd() { } #define BEGIN_X_POS 60 #define BEGIN_Y_POS 30 #define FIELDWIDTH 15 #define FIELDHEIGH 45 #define DATA_LEN 32 #define WIDTH_LEN (FIELDWIDTH*DATA_LEN+1) bool CRegHelpWnd::OnUpdateClient(IN WISP_MSG *pMsg) { // WISP_CHAR DisplayOut[4]; // WISP_RECT rc; int FontHeight,x,y; FontHeight = m_ClientDC.GetTextHeight(WISP_CHAR("M")); m_ClientDC.DrawFullRect(&m_ClientRect,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_WHITE]); x = 10;y = 10; if(m_RegisterGroup == CONTROL_REGISTER) { DrawRegister(x,y,0x80000fff,0xfffff800,0x7ff,0,m_ClientDC,stCR4Name,WSTR("CR4")); y = y + FontHeight+FIELDHEIGH+45; DrawRegister(x,y,0x8000183d,0x00000fe7,0x81c,0,m_ClientDC,stCR3Name,WSTR("CR3")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0x0,0x0,0,m_ClientDC,stCR2Name,WSTR("CR2")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0xffffffff,0x0,0,m_ClientDC,NULL,WSTR("CR1")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0xf00f807f,0x1ffaffc0,0x7007803f,0,m_ClientDC,stCR0Name,WSTR("CR0")); } if(m_RegisterGroup==DEBUG_REGISTER) { DrawRegister(x,y,0xffffffff,0x0000dc00,0xaaaab3ff,0,m_ClientDC,stDR7Name,WSTR("DR7")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x8001ffff,0xffff1ff0,0xf00f,0,m_ClientDC,stDR6Name,WSTR("DR6")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0xffffffff,0x0,0,m_ClientDC,stDR5Name,WSTR("DR5")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0xffffffff,0x0,0,m_ClientDC,stDR4Name,WSTR("DR4")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0x0,0x0,0,m_ClientDC,stDR3Name,WSTR("DR0 - DR3")); /* y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0x0,0x0,0,m_ClientDC,stDR2Name,WSTR("DR2")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0x0,0x0,0,m_ClientDC,stDR1Name,WSTR("DR1")); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80000001,0x0,0x0,0,m_ClientDC,stDR0Name,WSTR("DR0")); */ } if(m_RegisterGroup==SEGMENT_DESCRIPTOR_REGISTER) { DrawRegister(x,y,0x81f9f981,0x00200000,0x80f8d880,0,m_ClientDC,DataSegmentDesc0); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80018001,0x00000000,0x8000,0,m_ClientDC,DataSegmentDesc1); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x81f9f981,0x00200000,0x80f8d880,0,m_ClientDC,CodeSegmentDesc0); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80018001,0x00000000,0x8000,0,m_ClientDC,CodeSegmentDesc1); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x81f9f981,0x00700000,0x80f8d880,0,m_ClientDC,SystemSegmentDesc0); y = y + FontHeight+FIELDHEIGH; DrawRegister(x,y,0x80018001,0x0,0x8000,0,m_ClientDC,SystemSegmentDesc1); } if(m_RegisterGroup==FLAGS_REGISTER) { DrawRegister(40,y,0x807fffff,0xffc0802a,0x003fefff,1,m_ClientDC,stEFlagsName); } if(m_RegisterGroup==PAGEDIRENTRY4M_REGISTER) { DrawRegister(x,y,0x80603bff,0x003fe000,0x002019ff,0,m_ClientDC,PageDirEntry4M); } if(m_RegisterGroup==PAGEDIRENTRY4K_REGISTER) { DrawRegister(x,y,0x80003bff,0,0x000009ff,0,m_ClientDC,PageDirEntry4K); y=225; DrawRegister(x,y,0x80003bff,0,0x000009ff,0,m_ClientDC,PageTabEntry4K); } return false; } bool CRegHelpWnd::DrawRegister(int x, int y,unsigned int NumberMask,unsigned int ReservedMask,unsigned int LineMask,unsigned int OtherMask, CWispDC DrawDC,REGISTERBITNAME *RegBitName,WISP_CHAR *RegisterName) { WISP_CHAR DisplayOut[4]; WISP_RECT rc;//,FillRect; int FontHeight,i; FontHeight = DrawDC.GetTextHeight(WISP_CHAR("M")); //ɫ rc.x = x;rc.y = y;rc.cx = WIDTH_LEN; rc.cy=FIELDHEIGH+FontHeight; DrawDC.DrawFullRect(&rc,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_WHITE]); //ıɫ rc.x = x;rc.y = y+FontHeight;rc.cx = FIELDWIDTH;rc.cy = FIELDHEIGH; for(i = 31; i >= 0; i--) { rc.x = x + (31 - i) * FIELDWIDTH; if((ReservedMask>>i)&1) { DrawDC.DrawFullRect(&rc,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_LIGHT_GRAY]); } } //λԼķָ rc.x = x;rc.y = y;rc.cx = FIELDWIDTH;rc.cy = FontHeight; for(i = 31; i >= 0; i--) { rc.x = x + (31 - i) * FIELDWIDTH; if((NumberMask >> i)&1) { TSPrintf(DisplayOut,WISP_STR("%d"),i); DrawDC.DrawString(DisplayOut,&rc,WISP_DT_CENTER|WISP_DT_VCENTER|WISP_DT_SINGLELINE); } if((LineMask >> i) & 1 && i != 31) { DrawDC.DrawVLine(rc.x,rc.y+FontHeight,rc.y+FontHeight+FIELDHEIGH-1,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_BLACK]); } } // if(RegBitName) { rc.x = x;rc.y = y+FontHeight;rc.cy=FIELDHEIGH; i = 0; int DescriptorFieldMaxLen = 0,nTmp; bool bDescriptorExist = false; while(RegBitName[i].BitLen && i <= 31) { rc.x = x + (31 - RegBitName[i].BeginBitIndex) * FIELDWIDTH; rc.cx = FIELDWIDTH * RegBitName[i].BitLen; if(RegBitName[i].RegName) DrawDC.DrawString(RegBitName[i].RegName,&rc,WISP_DT_CENTER|WISP_DT_VCENTER); if(RegBitName[i].Descriptor) { bDescriptorExist=true; nTmp = DrawDC.GetTextExtent(RegBitName[i].Descriptor) - (31 - RegBitName[i].BeginBitIndex) * FIELDWIDTH; if(nTmp > DescriptorFieldMaxLen) DescriptorFieldMaxLen = nTmp; } i++; } //˵ if(bDescriptorExist) { rc.x = x - DescriptorFieldMaxLen;rc.y = y + FIELDHEIGH+FontHeight;rc.cy = FontHeight; i = 0; int j = 0,tmpx,tmpy,tmpx2,tmpy2; tmpx = rc.x; tmpy2 = y + FIELDHEIGH+FontHeight+2; while(RegBitName[i].BitLen && i <= 31) { if(RegBitName[i].Descriptor) { #define TEMP_HIGHT (FontHeight+2) rc.y = y + FIELDHEIGH+FontHeight +20 + (TEMP_HIGHT * j); rc.cx = DrawDC.GetTextExtent(RegBitName[i].Descriptor); tmpx = rc.x+rc.cx; tmpy = rc.y+TEMP_HIGHT/2-2; tmpx2 = x + (31 - RegBitName[i].BeginBitIndex) * FIELDWIDTH + FIELDWIDTH/2; DrawDC.DrawHLine(tmpx,tmpx2,tmpy,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_BLACK]); DrawDC.DrawVLine(tmpx2,tmpy2,tmpy,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_BLACK]); DrawDC.DrawString(RegBitName[i].Descriptor,&rc,WISP_DT_LEFT|WISP_DT_SINGLELINE|WISP_DT_VCENTER); j++; } i++; } } } //߿ rc.x = x;rc.y = y+FontHeight;rc.cx = WIDTH_LEN; rc.cy=FIELDHEIGH; DrawDC.DrawRect(&rc,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_BLACK]); //Ĵ if(RegisterName) { rc.x = x + WIDTH_LEN+1+8; rc.y = y + FontHeight; DrawDC.DrawString(RegisterName,&rc,WISP_DT_LEFT|WISP_DT_VCENTER|WISP_DT_NOCLIP); } return 0; } int CRegHelpWnd::SetRegisterGroup(int index) { if(index >= 0 && m_RegisterGroup FindDataBuffer = new FINDDATABUF; memset(pFindData->FindDataBuffer,0,sizeof(FINDDATABUF)); pFindData->CurrentDirName = new WCHAR[TStrLen(DirectoryName)+1]; TStrCpy(pFindData->CurrentDirName,DirectoryName); InitializeObjectAttributes(&ObjectAttributes,&DirString,OBJ_CASE_INSENSITIVE,0,NULL); NTStatus = pZwOpenDirectoryObject(&pFindData->FindHandle,DIRECTORY_QUERY,&ObjectAttributes); if(NTStatus) { delete pFindData->FindDataBuffer; pFindData->FindDataBuffer=NULL; delete pFindData->CurrentDirName; pFindData->CurrentDirName=NULL; pFindData->FindHandle=NULL; return false; } NTStatus = pZwQueryDirectoryObject(pFindData->FindHandle,pFindData->FindDataBuffer,sizeof(FINDDATABUF),TRUE,TRUE,&pFindData->Context,&pFindData->NameMaxLen); if(NTStatus) { pZwClose(pFindData->FindHandle); delete pFindData->FindDataBuffer; pFindData->FindDataBuffer=NULL; delete pFindData->CurrentDirName; pFindData->FindHandle=NULL; pFindData->FindHandle=NULL; return false; } return true; } bool FindNextObject(INOUT PFIND_OBJECT_DATA pFindData) { NTSTATUS NTStatus; NTStatus = pZwQueryDirectoryObject(pFindData->FindHandle,pFindData->FindDataBuffer,sizeof (FINDDATABUF),TRUE,FALSE,&pFindData->Context,&pFindData->NameMaxLen); if(NTStatus) { return false; } return true; } void CloseFindObject(PFIND_OBJECT_DATA pFindData) { if(pFindData->FindHandle) { pZwClose(pFindData->FindHandle); pFindData->FindHandle=NULL; } if(pFindData->FindDataBuffer) { delete pFindData->FindDataBuffer; pFindData->FindDataBuffer=NULL; } if(pFindData->CurrentDirName) { delete pFindData->CurrentDirName; pFindData->CurrentDirName=NULL; } return; } ================================================ FILE: Project/Syser/Source/Ring3Object.h ================================================ #ifndef _LOADHLPMODULE_H_ #define _LOADHLPMODULE_H_ #include "NTDLLDefine.h" extern PZWCLOSE pZwClose; extern PZWOPENFILE pZwOpenFile; extern PZWQUERYOBJECT pZwQueryObject; extern PZWOPENSECTION pZwOpenSection; extern PRTLINITUNICODESTRING pRtlInitUnicodeString; extern PZWOPENDIRECTORYOBJECT pZwOpenDirectoryObject; extern PZWQUERYDIRECTORYOBJECT pZwQueryDirectoryObject; extern PZWQUERYSYSTEMINFORMATION pZwQuerySystemInformation; extern PZWOPENSYMBOLICLINKOBJECT pZwOpenSymbolicLinkObject; extern PZWQUERYSYMBOLICLINKOBJECT pZwQuerySymbolicLinkObject; bool UnloadAPI(); bool LoadAPI(); bool GetSymbolicLink(WCHAR* LinkName,OUT UNICODE_STRING *LinkTargetName,OUT PULONG ReturnLength); void CloseFindObject(PFIND_OBJECT_DATA pFindData); bool FindNextObject(INOUT PFIND_OBJECT_DATA pFindData); bool FindFirstObject(WCHAR* DirectoryName,INOUT PFIND_OBJECT_DATA pFindData); #endif //_LOADHLPMODULE_H_ ================================================ FILE: Project/Syser/Source/RunTrace.cpp ================================================ #include "StdAfx.h" #include "RunTrace.h" #include "Syser.h" CRunTrace::CRunTrace() { m_MaxCount = 300; m_pRunTrace = new STRUNTRACE[m_MaxCount]; memset(m_pRunTrace,0,sizeof(STRUNTRACE)*m_MaxCount); m_CurIndex=0; m_RegisterModifyMap=new DWORD[m_MaxCount]; memset(m_RegisterModifyMap,0,sizeof(DWORD)*m_MaxCount); m_ModifyRegister=new DWORD[m_MaxCount*2]; memset(m_ModifyRegister,0,sizeof(DWORD)*m_MaxCount*2); m_bFirstInsert=true; m_CurrentModifyIndex=0; m_MoveModifyIndex=0; m_FirstRegIndex=0; m_FirstRegModifyRegister=0; } CRunTrace::~CRunTrace() { delete []m_pRunTrace; delete []m_RegisterModifyMap; delete []m_ModifyRegister; m_RegisterModifyMap=NULL; m_ModifyRegister=NULL; m_pRunTrace=NULL; m_MaxCount=0; } UINT CRunTrace::GetRunTraceCount() { if(m_Count>m_MaxCount) return m_MaxCount; return m_Count; } UINT CRunTrace::Insert(ULPOS StartAddress,ULPOS EIP,ULPOS CodeViewIndex) { ULPOS Index; X86_REG_CONTEXT TempReg; DWORD RegModifyMap=0; DWORD ModifyIndex=0,MaxIndex=m_MaxCount*2; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return 0; if(m_CurIndex>=m_MaxCount) { HeadNext(); } Index = m_CurIndex % m_MaxCount; m_pRunTrace[Index].CodeViewStartAddress=StartAddress; m_pRunTrace[Index].EIPOffset = (WORD)(EIP-StartAddress); m_pRunTrace[Index].CodeViewIndex =(WORD) CodeViewIndex; //OUTPUT(WSTR("insert %08x %08x\n"),StartAddress,EIP); if(m_bFirstInsert) { m_bFirstInsert=false; #ifdef CODE_OS_WIN m_FirstReg.GeneReg[EAX_IDX]=*X86_REG_PTR.pEAX; m_FirstReg.GeneReg[ECX_IDX]=*X86_REG_PTR.pECX; m_FirstReg.GeneReg[EDX_IDX]=*X86_REG_PTR.pEDX; m_FirstReg.GeneReg[EBX_IDX]=*X86_REG_PTR.pEBX; m_FirstReg.GeneReg[ESP_IDX]=*X86_REG_PTR.pESP; m_FirstReg.GeneReg[EBP_IDX]=*X86_REG_PTR.pEBP; m_FirstReg.GeneReg[ESI_IDX]=*X86_REG_PTR.pESI; m_FirstReg.GeneReg[EDI_IDX]=*X86_REG_PTR.pEDI; m_FirstReg.EIP=*X86_REG_PTR.pEIP; m_FirstReg.EFlags=*(DWORD*)X86_REG_PTR.pEFL; #else m_FirstReg=Reg; #endif m_CurrentReg=m_FirstReg; } else { #ifdef CODE_OS_WIN TempReg.GeneReg[EAX_IDX]=*X86_REG_PTR.pEAX; TempReg.GeneReg[ECX_IDX]=*X86_REG_PTR.pECX; TempReg.GeneReg[EDX_IDX]=*X86_REG_PTR.pEDX; TempReg.GeneReg[EBX_IDX]=*X86_REG_PTR.pEBX; TempReg.GeneReg[ESP_IDX]=*X86_REG_PTR.pESP; TempReg.GeneReg[EBP_IDX]=*X86_REG_PTR.pEBP; TempReg.GeneReg[ESI_IDX]=*X86_REG_PTR.pESI; TempReg.GeneReg[EDI_IDX]=*X86_REG_PTR.pEDI; TempReg.EIP=*X86_REG_PTR.pEIP; TempReg.EFlags=*(DWORD*)X86_REG_PTR.pEFL; #else TempReg=Reg; #endif if(TempReg.GeneReg[EAX_IDX]!=m_CurrentReg.GeneReg[EAX_IDX]) { RegModifyMap = RegModifyMap|EAX_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[EAX_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[EBX_IDX]!=m_CurrentReg.GeneReg[EBX_IDX]) { RegModifyMap = RegModifyMap|EBX_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[EBX_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[ECX_IDX]!=m_CurrentReg.GeneReg[ECX_IDX]) { RegModifyMap = RegModifyMap|ECX_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[ECX_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[EDX_IDX]!=m_CurrentReg.GeneReg[EDX_IDX]) { RegModifyMap = RegModifyMap|EDX_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[EDX_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[ESP_IDX]!=m_CurrentReg.GeneReg[ESP_IDX]) { RegModifyMap = RegModifyMap|ESP_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[ESP_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[EBP_IDX]!=m_CurrentReg.GeneReg[EBP_IDX]) { RegModifyMap = RegModifyMap|EBP_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[EBP_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[ESI_IDX]!=m_CurrentReg.GeneReg[ESI_IDX]) { RegModifyMap = RegModifyMap|ESI_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[ESI_IDX]; m_CurrentModifyIndex++; } if(TempReg.GeneReg[EDI_IDX]!=m_CurrentReg.GeneReg[EDI_IDX]) { RegModifyMap = RegModifyMap|EDI_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.GeneReg[EDI_IDX]; m_CurrentModifyIndex++; } if(TempReg.EIP!=m_CurrentReg.EIP) { RegModifyMap = RegModifyMap|EIP_MODIFY_BIT_MASK; } if(TempReg.EFlags!=m_CurrentReg.EFlags) { RegModifyMap = RegModifyMap|EFL_MODIFY_BIT_MASK; m_ModifyRegister[m_CurrentModifyIndex%MaxIndex]=TempReg.EFlags; m_CurrentModifyIndex++; } m_CurrentReg = TempReg; m_RegisterModifyMap[Index]=RegModifyMap; } m_CurIndex++; m_MoveIndex=m_CurIndex%m_MaxCount; m_Count++; if(m_Count>m_MaxCount) return m_MaxCount; return m_Count; } int CRunTrace::GetModifyRegisterCount(DWORD RegModifyMask) { int i,Count=0; for(i = 0;i<32;i++) { if(RegModifyMask&1) Count++; RegModifyMask>>=1; } return Count; } void CRunTrace::GetRegisterContext(DWORD Offset,X86_REG_CONTEXT* pRegContext,DWORD *RegModifyMask) { DWORD RegModifyMap=0; DWORD MapIndex,MaxIndex=m_MaxCount*2; MapIndex=m_FirstRegModifyRegister; DWORD i =0; *pRegContext=m_FirstReg; if(Offset==0) { if(RegModifyMask) *RegModifyMask = m_RegisterModifyMap[(m_FirstRegModifyRegister+i)%m_MaxCount]; return; } for(i = 1; i <= Offset;i++) { RegModifyMap = m_RegisterModifyMap[(m_FirstRegModifyRegister+i)%m_MaxCount]; if(RegModifyMap==0) continue; if(RegModifyMap&EAX_MODIFY_BIT_MASK) { pRegContext->GeneReg[EAX_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&EBX_MODIFY_BIT_MASK) { pRegContext->GeneReg[EBX_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&ECX_MODIFY_BIT_MASK) { pRegContext->GeneReg[ECX_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&EDX_MODIFY_BIT_MASK) { pRegContext->GeneReg[EDX_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&ESP_MODIFY_BIT_MASK) { pRegContext->GeneReg[ESP_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&EBP_MODIFY_BIT_MASK) { pRegContext->GeneReg[EBP_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&ESI_MODIFY_BIT_MASK) { pRegContext->GeneReg[ESI_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&EDI_MODIFY_BIT_MASK) { pRegContext->GeneReg[EDI_IDX]=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } if(RegModifyMap&EFL_MODIFY_BIT_MASK) { pRegContext->EFlags=m_ModifyRegister[MapIndex%MaxIndex]; MapIndex++; } } if(RegModifyMask) *RegModifyMask=RegModifyMap; } void CRunTrace::HeadNext() { DWORD RegModifyMask; X86_REG_CONTEXT NewFirstReg; GetRegisterContext(1,&NewFirstReg,&RegModifyMask); m_FirstRegIndex++; m_FirstRegIndex=m_FirstRegIndex%m_MaxCount; m_FirstRegModifyRegister+=GetModifyRegisterCount(m_RegisterModifyMap[m_FirstRegIndex]); m_FirstReg=NewFirstReg; } void CRunTrace::Clear() { m_CurIndex=0; m_Count; } PSTRUNTRACE CRunTrace::GetNextTrace() { m_MoveIndex++; m_MoveIndex%=m_MaxCount; if(m_MoveIndex>=m_CurIndex) { m_MoveIndex=m_CurIndex; return NULL; } return &m_pRunTrace[m_MoveIndex]; } PSTRUNTRACE CRunTrace::GetPrevTrace() { if(m_MoveIndex==0) { return m_pRunTrace; } m_MoveIndex--; return &m_pRunTrace[m_MoveIndex]; } PSTRUNTRACE CRunTrace::GetTraceByIndex(DWORD Index) { if(Index>=m_MaxCount||Index>=m_CurIndex) return NULL; return &m_pRunTrace[(m_FirstRegIndex+Index)%m_MaxCount]; } ================================================ FILE: Project/Syser/Source/RunTrace.h ================================================ #ifndef _RUN_TRACE_H_ #define _RUN_TRACE_H_ typedef struct _STRUNSTRACE { ULPOS CodeViewStartAddress; WORD EIPOffset; WORD CodeViewIndex; }STRUNTRACE,*PSTRUNTRACE; enum { EAX_MODIFY_BIT_MASK= 1, EBX_MODIFY_BIT_MASK= 2, ECX_MODIFY_BIT_MASK= 4, EDX_MODIFY_BIT_MASK= 8, ESP_MODIFY_BIT_MASK= 0x10, EBP_MODIFY_BIT_MASK= 0x20, ESI_MODIFY_BIT_MASK= 0x40, EDI_MODIFY_BIT_MASK= 0x80, EFL_MODIFY_BIT_MASK= 0x100, EIP_MODIFY_BIT_MASK= 0x200, ES_MODIFY_BIT_MASK= 0x400, CS_MODIFY_BIT_MASK= 0x800, DS_MODIFY_BIT_MASK= 0x1000, FS_MODIFY_BIT_MASK= 0x2000, GS_MODIFY_BIT_MASK= 0x4000, SS_MODIFY_BIT_MASK= 0x8000, CR0_MODIFY_BIT_MASK= 0x10000, CR1_MODIFY_BIT_MASK= 0x20000, CR2_MODIFY_BIT_MASK= 0x40000, CR3_MODIFY_BIT_MASK= 0x80000, CR4_MODIFY_BIT_MASK= 0x100000, DR0_MODIFY_BIT_MASK= 0x200000, DR1_MODIFY_BIT_MASK= 0x400000, DR2_MODIFY_BIT_MASK= 0x800000, DR3_MODIFY_BIT_MASK= 0x1000000, DR4_MODIFY_BIT_MASK= 0x2000000, DR5_MODIFY_BIT_MASK= 0x4000000, DR6_MODIFY_BIT_MASK= 0x8000000, DR7_MODIFY_BIT_MASK= 0x10000000, }; class CRunTrace { ULSIZE m_MaxCount; ULPOS m_CurIndex; PSTRUNTRACE m_pRunTrace; bool m_bFirstInsert; ULPOS m_MoveIndex; ULPOS m_CurrentModifyIndex; ULPOS m_MoveModifyIndex; ULPOS m_FirstRegIndex; ULPOS m_FirstRegModifyRegister; X86_REG_CONTEXT m_FirstReg; X86_REG_CONTEXT m_CurrentReg; DWORD* m_RegisterModifyMap; DWORD* m_ModifyRegister; DWORD m_Count; public: CRunTrace(); void GetRegisterContext(DWORD Offset,X86_REG_CONTEXT* pRegContext,DWORD *RegModifyMask); int GetModifyRegisterCount(DWORD RegModifyMask); ~CRunTrace(); PSTRUNTRACE GetNextTrace(); PSTRUNTRACE GetPrevTrace(); UINT Insert(ULPOS StartAddress,ULPOS EIP,ULPOS CodeViewIndex); void Clear(); PSTRUNTRACE GetTraceByIndex(DWORD Index); void HeadNext(); UINT GetRunTraceCount(); }; #endif //_RUN_TRACE_H_ ================================================ FILE: Project/Syser/Source/RunTraceWnd.cpp ================================================ #include "StdAfx.h" #include "RunTraceWnd.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CRunTraceWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CRunTraceWnd) WISP_MSG_EVENT_MAP(WISP_ID_COPY,OnEventCopy) WISP_MSG_EVENT_MAP_END CRunTraceWnd::CRunTraceWnd() { } CRunTraceWnd::~CRunTraceWnd() { } void CRunTraceWnd::Popup() { if(IsWindow()) { Destroy(); } else { Create(WSTR("Run Trace List"),0,0,500,280,NULL,CMD_ID_RUN_TRACE,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL|WISP_WLS_EMPTY_SEL_RECT); Center(); } } bool CRunTraceWnd::OnClose(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CRunTraceWnd::OnEventCopy(IN WISP_MSG* pMsg) { return true; } void CRunTraceWnd::UpdateContext() { int i = 0,Count; HANDLE hItem; DWORD Address; WCHAR buf[200]; WCHAR buf1[20]; PSTRUNTRACE pRunTrace; CCodeView*pCodeView; X86_REG_CONTEXT RegContext; WISP_COLOR_CHAR szColorBuffer[256]; DWORD RegModifyMask; if(IsWindow()==false) return; ClearChildItem(); pCodeView = (CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); Count = gpSyser->m_MainFrame.m_SystemExplorer.m_TraceCount-1; pRunTrace = gpSyser->m_MainFrame.m_SystemExplorer.m_RunTrace.GetTraceByIndex(i); while(pRunTrace) { szColorBuffer[0]=0; Address = pRunTrace->CodeViewStartAddress+pRunTrace->EIPOffset; TSPrintf(buf,WSTR("%d"),Count - i); hItem = InsertItem(buf); SetItemTextColor(hItem,0,ColorOption.clrText); SetItemData(hItem,0,i); SetItemNum(hItem,1,Address,WSTR("%08X")); SetItemTextColor(hItem,1,ColorOption.clrCVAddr); if(pCodeView) pCodeView->ColorDasm(Address,MAX_INSTR_LEN,szColorBuffer); SetItemColorText(hItem,2,szColorBuffer); buf[0]=0; gpSyser->m_MainFrame.m_SystemExplorer.m_RunTrace.GetRegisterContext(i,&RegContext,&RegModifyMask); if(RegModifyMask!=0) { if(RegModifyMask&EAX_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("EAX=%08X "),RegContext.GeneReg[EAX_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&EBX_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("EBX=%08X "),RegContext.GeneReg[EBX_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&ECX_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("ECX=%08X "),RegContext.GeneReg[ECX_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&EDX_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("EDX=%08X "),RegContext.GeneReg[EDX_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&ESI_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("ESI=%08X "),RegContext.GeneReg[ESI_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&EDI_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("EDI=%08X "),RegContext.GeneReg[EDI_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&ESP_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("ESP=%08X "),RegContext.GeneReg[ESP_IDX]); TStrCat(buf,buf1); } if(RegModifyMask&EBP_MODIFY_BIT_MASK) { TSPrintf(buf1,WSTR("EBP=%08X "),RegContext.GeneReg[EBP_IDX]); TStrCat(buf,buf1); } } SetItemText(hItem,3,buf); SetItemTextColor(hItem,3,ColorOption.clrChgText); i++;pRunTrace = gpSyser->m_MainFrame.m_SystemExplorer.m_RunTrace.GetTraceByIndex(i); } if(hItem) { if(IsItemVisible(hItem)==false) { EnableVisible(hItem); } } } bool CRunTraceWnd::OnCreate(IN WISP_MSG* pMsg) { m_SelectBKColor = ColorOption.clrSelectedFrame; m_ColorTable[COLOR_BK ]=ColorOption.clrCVBK; m_ColorTable[COLOR_ADDRESS ]=ColorOption.clrCVAddr; m_ColorTable[COLOR_PREFIX ]=ColorOption.clrCVPrefix; m_ColorTable[COLOR_OPCODE ]=ColorOption.clrCVOpCode; m_ColorTable[COLOR_REGISTER]=ColorOption.clrCVReg; m_ColorTable[COLOR_SEG_REG ]=ColorOption.clrCVSegReg; m_ColorTable[COLOR_IMMED ]=ColorOption.clrCVImmed; m_ColorTable[COLOR_OPTR ]=ColorOption.clrCVOptr; m_ColorTable[COLOR_SYMBOL ]=ColorOption.clrCVSymbol; m_ColorTable[COLOR_COMMENT ]=ColorOption.clrCVComment; m_ColorTable[COLOR_KEYWORD ]=ColorOption.clrCVKeyword; m_ColorTable[COLOR_STR ]=ColorOption.clrCVStr; m_ColorTable[COLOR_BPX_STRIP]=ColorOption.clrCVBPXStrip; m_ColorTable[COLOR_EIP_STRIP]=ColorOption.clrCVEIPStrip; m_ColorTable[COLOR_BPXEIP_STRIP]=ColorOption.clrCVBPXEIPStrip; m_ClientDC.SetColorTable(m_ColorTable); AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,181)); SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); InsertColumn(WSTR("Back"),40); InsertColumn(WSTR("Address"),60); InsertColumn(WSTR("Instruction"),180); InsertColumn(WSTR("Modified Registers"),120); SetBGColor(SC_BLACK); UpdateContext(); return true; } bool CRunTraceWnd::OnKeyEvent(IN WISP_MSG* pMsg) { if(pMsg->KeyEvent.bKeyDown && pMsg->KeyEvent.KeyType == WISP_VK_RETURN) { OnMouseDBClick(NULL); } return true; } bool CRunTraceWnd::OnMouseDBClick(IN WISP_MSG* pMsg) { HANDLE hItem; NUM_PTR NumPtr; hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; NumPtr = GetItemData(hItem); gpSyser->m_MainFrame.m_SystemExplorer.SetRunTrace((UINT)NumPtr); return true; } ================================================ FILE: Project/Syser/Source/RunTraceWnd.h ================================================ #ifndef _RUN_TRACE_WND_H #define _RUN_TRACE_WND_H class CRunTraceWnd:public CWispList { public: CRunTraceWnd(); ~CRunTraceWnd(); void Popup(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnMouseDBClick); DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventCopy) COLORREF m_ColorTable[MAX_COLOR]; void UpdateContext(); }; #endif //_RUN_TRACE_WND_H ================================================ FILE: Project/Syser/Source/SDDefine.h ================================================ #ifndef _SD_DEFINE_H_ #define _SD_DEFINE_H_ #define SD_CMD_SIGN 0x53434453 //SDCS #define SD_RES_SIGN 0x53524453 //SDRS #define SD_MAX_LENGTH 0x00010000 struct SD_PACKET { DWORD Sign; DWORD CRCCode; int Length; union { WCHAR szCmd[1]; DCHAR CSStream[1]; }Data; }; #endif ================================================ FILE: Project/Syser/Source/SDSModuleList.cpp ================================================ #include "StdAfx.h" #include "SDSModuleList.h" #include "Syser.h" WISP_MENU_RES_ITEM SDSModuleMenu[]= { {WSTR("Set As Active Module"),EVENT_ID_SET_AS,56}, {WSTR("Unload"),EVENT_ID_REMOVE,23}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CSDSModuleList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CSDSModuleList) WISP_MSG_EVENT_MAP(EVENT_ID_REMOVE,OnEventRemove) WISP_MSG_EVENT_MAP(EVENT_ID_SET_AS,OnEventSetAsActiveModule) WISP_MSG_EVENT_MAP_END CSDSModuleList::CSDSModuleList() { } CSDSModuleList::~CSDSModuleList() { } bool CSDSModuleList::OnCreate(IN WISP_MSG* pMsg) { CWispDIBList*pDIBList = WispTKDIBList("\\Toolbar.bmp",16,16); m_SelectBKColor = ColorOption.clrSelectedFrame; SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_pIconCFile=pDIBList->GetDIB(15*16+8); m_pIconCPPFile=pDIBList->GetDIB(15*16+6);; m_pIconHFile=pDIBList->GetDIB(15*16+7);; m_pIconModule=pDIBList->GetDIB(14*16+3);; m_SDSModulePopupMenu.CreatePopupMenu(SDSModuleMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); InsertColumn(WSTR("Module Name"),150); InsertColumn(WSTR("File Count / Size"),150); SetOwner(this); m_hActiveModule = NULL; return true; } bool CSDSModuleList::OnDestroy(IN WISP_MSG* pMsg) { m_SDSModulePopupMenu.Destroy(); return true; } bool CSDSModuleList::OnKeyEvent(IN WISP_MSG* pMsg) { HANDLE hItem; hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; if(pMsg->KeyEvent.KeyType ==WISP_VK_RETURN && pMsg->KeyEvent.bKeyDown && GetItemLevel(hItem)==1) { ItemDBClickNotify(hItem,1); } if(pMsg->KeyEvent.KeyType ==WISP_VK_RBUTTON && pMsg->KeyEvent.bKeyDown==false && GetItemLevel(hItem)==0) { PopupMenu(); } return true; } void CSDSModuleList::PopupMenu() { HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); m_SDSModulePopupMenu.EnableItem(EVENT_ID_SET_AS,hItem && hItem!=m_hActiveModule); m_SDSModulePopupMenu.Popup(); } bool CSDSModuleList::OnEventSetAsActiveModule(IN WISP_MSG* pMsg) { HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; if(GetItemLevel(hItem)==0) { SetActiveModule((CSDSModule*)GetItemData(hItem)); } return true; } bool CSDSModuleList::OnEventRemove(IN WISP_MSG* pMsg) { HANDLE hItem; hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; if(GetItemLevel(hItem)==0) { gpSyser->m_SyserUI.UnloadSDSModule((CSDSModule*)GetItemData(hItem)); } return true; } void CSDSModuleList::ItemDBClickNotify(HANDLE hItem,int Col) { int Level = GetItemLevel(hItem); if(Level==0) { if(m_pActiveSDSModule!=(CSDSModule*)GetItemData(hItem)) SetActiveModule(hItem); } if(Level==1) { CSDSModule*pSDSModule = (CSDSModule*) GetItemData(hItem); DWORD SourceFileId = (DWORD)GetItemData(hItem,1); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.ShowSourceFile(pSDSModule,SourceFileId,1); Focus(); } } void CSDSModuleList::InsertSymbolModule(CSDSModule*pSDSModule) { PCSTR ModuleName; ModuleName = TGetFileName((PCSTR)pSDSModule->m_ModuleFileName); HANDLE hItem = InsertItemA(ModuleName,NULL,WISP_WLIS_NORMAL,m_pIconModule); SetItemNum(hItem,1,pSDSModule->GetSourceFileCountInPackages(),WSTR("%d Source Code File(s)")); SetItemData(hItem,0,(NUM_PTR)pSDSModule); if(m_pActiveSDSModule==NULL) { SetActiveModule(hItem); } UpdateModuleFileList(hItem,pSDSModule); } void CSDSModuleList::SetActiveModule(HANDLE hItem) { if(m_hActiveModule) { SetItemTextColor(m_hActiveModule,0,m_FontColor); UnexpandItem(m_hActiveModule); } m_hActiveModule = hItem; m_pActiveSDSModule = (CSDSModule*)GetItemData(hItem); SetItemTextColor(m_hActiveModule,0,ColorOption.clrSelectedFrame); ExpandItem(m_hActiveModule); } CSDSModule* CSDSModuleList::GetActiveModule()const { return m_pActiveSDSModule; } void CSDSModuleList::SetActiveModule(CSDSModule*pSDSModule) { HANDLE hItem; if(m_pActiveSDSModule==pSDSModule) return; hItem = GetNextItem(NULL); while(hItem) { if(pSDSModule==(CSDSModule*)GetItemData(hItem)) { SetActiveModule(hItem); return; } hItem = GetNextItem(hItem); } } bool CSDSModuleList::RemoveSymbolModule(CSDSModule*pSDSModule) { HANDLE hItem; hItem = GetNextItem(NULL); while(hItem) { if(pSDSModule==(CSDSModule*)GetItemData(hItem)) { if(m_pActiveSDSModule==pSDSModule) { m_pActiveSDSModule = NULL; m_hActiveModule = NULL; } TSet::IT Iter = gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_MultiSourceCodeView.m_OpenedSourceCodeWnd.Begin(); while(Iter.IsExist()) { if(Iter->pSDSModule==pSDSModule) { CSourceCodeWnd*pSrcWnd = Iter->pSourceCodeWnd; Iter++; gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_MultiSourceCodeView.RemoveWnd(pSrcWnd); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UnloadSDSModule(pSDSModule); } else Iter++; } RemoveItem(hItem); if(gpSyser->m_bActive) Update(); return true; } hItem = GetNextItem(hItem); } return false; } void CSDSModuleList::UpdateModuleFileList(HANDLE hModuleItem,CSDSModule*pSDSModule) { CWispDIB*pTypeDIB; PSDSOURCEFILEID pSourceFileList; DWORD SourceFileCount; HANDLE hItem; DWORD dwDIBIndex; DWORD i; pSourceFileList=pSDSModule->GetSourceFileList(&SourceFileCount); if(pSourceFileList) { for(i = 0; i m_MainFrame.m_ConsoleWnd); m_pRes = (SD_PACKET*)new BYTE[SD_MAX_LENGTH]; m_pRes->Sign = SD_RES_SIGN; m_Stream.m_Length = 0; m_Stream.m_Buffer = (void*)m_pRes->Data.CSStream;; m_RemoteTermWnd.m_pStream = &m_Stream; return true; } void CSDServer::Release() { SafeDelete(m_pRes); m_RemoteTermWnd.Destroy(); } void CSDServer::StartServer() { m_bWorking = true; while(m_bWorking && IS_CTRL_BREAK==false) { if(WaitForCmd()) DoCommand(); } } bool CSDServer::SendCmdResCSStream() { int Size; BYTE*Buffer; m_pRes->Length = ST_FIELD_OFF(SD_PACKET,Data.CSStream[0])+m_Stream.m_Length+4; m_pRes->Data.CSStream[m_Stream.m_Length/4]=0; m_pRes->CRCCode = 0; m_pRes->CRCCode = GetCRCCode((BYTE*)m_pRes,m_pRes->Length); Buffer = (BYTE*) m_pRes; Size = 0; while(SizeLength) { Size+=m_pConnect->SendData(&Buffer[Size],m_pRes->Length-Size); } return true; } void CSDServer::DoCommand() { OUTPUT(WSTR("SDServer : cmd %s\n"),m_pCmd->Data.szCmd); m_Stream.m_Length = 0; m_RemoteTermWnd.TermRunCmd(m_pCmd->Data.szCmd); SendCmdResCSStream(); //m_bWorking = false; } bool CSDServer::WaitForCmd() { int NeededSize; NeededSize = sizeof(SD_PACKET); m_pCmd = NULL; m_pConnect->m_BufSize = 0; while(m_bWorking && IS_CTRL_BREAK==false && m_pConnect->m_BufSize < NeededSize) { m_pConnect->RecvDataBuffer(); if(m_pCmd == NULL && m_pConnect->m_BufSize>=sizeof(SD_PACKET)) { m_pCmd = (SD_PACKET*)m_pConnect->m_Buffer; if(m_pCmd->Length > SD_MAX_LENGTH) return false; if(m_pCmd->Sign!=SD_CMD_SIGN) return false; NeededSize = m_pCmd->Length; } } return m_pConnect->m_BufSize >= NeededSize; } ================================================ FILE: Project/Syser/Source/SDServer.h ================================================ #ifndef _SD_SERVER_H_ #define _SD_SERVER_H_ #include "SDDefine.h" #include "SyserConnect.h" class CSDServer; class CSDStream : public ALTFileStream { public: void* m_Buffer; int m_Length; int Puts(void*Buffer,int Size) { if(m_Length>=SD_MAX_LENGTH) return 0; if(m_Length+Size>SD_MAX_LENGTH) Size=SD_MAX_LENGTH-m_Length; memcpy(RT_PVOID(m_Buffer,m_Length),Buffer,Size); m_Length+=Size; return Size; } int Gets(void*Buffer,int Size){return 0;} }; class CSDServer { public: CSDServer(); ~CSDServer(); public: bool Init(CSyserConnect*pConnect); void Release(); void StartServer(); void DoCommand(); bool WaitForCmd(); bool SendCmdResCSStream(); public: bool m_bWorking; CSDStream m_Stream; SD_PACKET*m_pRes; SD_PACKET*m_pCmd; CSyserConnect*m_pConnect; CWispTerminalWnd m_RemoteTermWnd; }; #endif ================================================ FILE: Project/Syser/Source/SEHChainWnd.cpp ================================================ #include "StdAfx.h" #include "SEHChainWnd.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CSEHChainWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CSEHChainWnd) WISP_MSG_EVENT_MAP_END CSEHChainWnd::CSEHChainWnd() { } CSEHChainWnd::~CSEHChainWnd() { } bool CSEHChainWnd::OnCreate(IN WISP_MSG* pMsg) { InsertColumn(WSTR("Address"),70); InsertColumn(WSTR("SE Handler"),200); UpdateContext(); return true; } void CSEHChainWnd::UpdateContext() { X86_CPU_REG_PTR RegPtr; SEHCHAIN SEHChain; HANDLE hItem; WCHAR Buffer[20]; DWORD Address,Size; gpSyser->m_pDebugger->GetX86RegPtr( &RegPtr); gpSyser->m_pDebugger->GetSegRegBase(*RegPtr.pFS,&Address,&Size); if(gpSyser->m_pDebugger->ReadMemory(Address,&SEHChain,sizeof(SEHCHAIN))!=sizeof(SEHCHAIN)) return; while(SEHChain.Next!=0xffffffff) { Address=SEHChain.Next; if(gpSyser->m_pDebugger->ReadMemory(Address,&SEHChain,sizeof(SEHCHAIN))!=sizeof(SEHCHAIN)) break; TSPrintf(Buffer,WSTR("%08X"),Address); hItem = InsertItem(Buffer); SetItemNum(hItem,1,SEHChain.Handler); } } bool CSEHChainWnd::OnClose(IN WISP_MSG* pMsg) { Show(WISP_SH_HIDDEN); return false; } ================================================ FILE: Project/Syser/Source/SEHChainWnd.h ================================================ #ifndef _SEHCHAINWND_H_ #define _SEHCHAINWND_H_ typedef struct _SEHCHAIN { DWORD Next; DWORD Handler; }SEHCHAIN,*PSEHCHAIN; class CSEHChainWnd:public CWispList { public: CSEHChainWnd(); ~CSEHChainWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG_EVENT_MAP void UpdateContext(); }; #endif //_SEHCHAINWND_H_ ================================================ FILE: Project/Syser/Source/SSERegisterList.cpp ================================================ #include "StdAfx.h" #include "Syser.h" WISP_MSG_MAP_BEGIN(CSSERegisterList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP_END(CWispList) CSSERegisterList::CSSERegisterList(void) { ZeroMemory(m_OldXMMRegister,sizeof(m_OldXMMRegister)); }; bool CSSERegisterList::OnGetFocus(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextItem(NULL); if(hItem) SelectItem(hItem); return true; } bool CSSERegisterList::OnCreate(IN WISP_MSG*pMsg) { m_ChgColor = ColorOption.clrChgText; m_NormalColor = ColorOption.clrText; m_SelectBKColor = ColorOption.clrSelectedFrame; SetDefaultTextColor(m_NormalColor); SetBGColor(ColorOption.clrBackground); InsertColumn(WISP_STR("Register"),60); InsertColumn(WISP_STR("Value"),240,WISP_WLCS_EDITABLE); m_hSSE128RegItem[SSE_REG_0] = InsertItem(WISP_STR("XMM0")); m_hSSE128RegItem[SSE_REG_1] = InsertItem(WISP_STR("XMM1")); m_hSSE128RegItem[SSE_REG_2] = InsertItem(WISP_STR("XMM2")); m_hSSE128RegItem[SSE_REG_3] = InsertItem(WISP_STR("XMM3")); m_hSSE128RegItem[SSE_REG_4] = InsertItem(WISP_STR("XMM4")); m_hSSE128RegItem[SSE_REG_5] = InsertItem(WISP_STR("XMM5")); m_hSSE128RegItem[SSE_REG_6] = InsertItem(WISP_STR("XMM6")); m_hSSE128RegItem[SSE_REG_7] = InsertItem(WISP_STR("XMM7")); ResetContext(); return true; } void CSSERegisterList::UpdateContext() { #ifdef CODE_OS_NT_DRV DWORD dwCR0,dwCR4,dwTmp; WISP_CHAR DisplayBuf[64]; DWORD *pValue; int i,j; dwCR0 = GetCR0Register(); dwCR4 = GetCR4Register(); if(dwCR0 & 4) return; if((gpCPUIDInfo[1].dwEDX & 0x2000000) == 0) return; if((dwCR4 & 0x200) == 0) return; if(SyserGetFpuErrorState()) return ; dwTmp = (DWORD)FxsaveBuffer; dwTmp &= 0xfffffff0; X86_FXSAVE((BYTE *)dwTmp); pValue = (DWORD *)(160+dwTmp); for(i = 0; i < 8; i++) { TSPrintf(DisplayBuf,WSTR("%08x %08x %08x %08x"),pValue[3],pValue[2],pValue[1],pValue[0]); SetItemText(m_hSSE128RegItem[i],1,DisplayBuf); for(j=0;j<4;j++) { if(pValue[j]!=m_OldXMMRegister[i][j]) { m_OldXMMRegister[i][j] = pValue[j]; SetItemTextColor(m_hSSE128RegItem[i],1,m_ChgColor); break; } } if(j==4) SetItemTextColor(m_hSSE128RegItem[i],1,m_NormalColor); pValue = pValue+4; } #endif } void CSSERegisterList::ResetContext() { SelectItem(m_hSSE128RegItem[SSE_REG_0]); SetItemText(m_hSSE128RegItem[SSE_REG_0],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_1],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_2],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_3],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_4],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_5],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_6],1,WSTR("????????")); SetItemText(m_hSSE128RegItem[SSE_REG_7],1,WSTR("????????")); } ================================================ FILE: Project/Syser/Source/SSERegisterList.h ================================================ #ifndef _SSEREGISTERLIST_H_ #define _SSEREGISTERLIST_H_ enum SSE_REG_INDEX { SSE_REG_0, SSE_REG_1, SSE_REG_2, SSE_REG_3, SSE_REG_4, SSE_REG_5, SSE_REG_6, SSE_REG_7, SSE_REG_COUNT, }; class CSSERegisterList : public CWispList { HANDLE m_hSSE128RegItem[SSE_REG_COUNT]; DWORD m_OldXMMRegister[8][4]; COLORREF m_ChgColor; COLORREF m_NormalColor; public: CSSERegisterList(void); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnGetFocus) void UpdateContext(); void ResetContext(); int GetCPUIndex()const {return m_nCPUIndex;} void SetCPUIndex(int Index) {m_nCPUIndex=Index;} private: int m_nCPUIndex; }; #endif ================================================ FILE: Project/Syser/Source/SearchDialog.cpp ================================================ #include "stdafx.h" #include "SearchDialog.h" #include "ModuleListWnd.h" #include "Syser.h" PCWSTR CSearchDialog::m_FindDataType[]= { WSTR("Text (Ansi)"), WSTR("Text (Unicode)"), WSTR("BYTE (s)"), WSTR("WORD Value"), WSTR("DWORD Value"), WSTR("QWORD Value"), NULL }; enum CSearchDialog::WISP_FORM_ID { CMD_ID_COMBOBOX_TYPE = WISP_ID_USER_START, CMD_ID_EDIT_VALUE, CMD_ID_CASE_CHECK, CMD_ID_RADIOBOX_DIRECTION_DOWN, CMD_ID_RADIOBOX_DIRECTION_UP, CMD_ID_EDIT_BEGIN_ADDRESS, CMD_ID_EDIT_END_ADDRESS, CMD_ID_BUTTON_SELECT_MODULE, CMD_ID_BUTTON_FIND, CMD_ID_BUTTON_FIND_NEXT, }; WISP_FORM_RES_ITEM CSearchDialog::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,391,220}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Search"), "\\Toolbar.bmp#16#16:119", NULL, }, { WISP_CTRL_STATIC_GROUP, {10,10,364,80}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Search Method") }, { WISP_CTRL_STATIC_DIB, {20,32,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:119" }, { WISP_CTRL_STATIC_STRING, {40,32,45,16}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Type"), NULL, }, { WISP_CTRL_COMBO_BOX, {80,30,135,20}, CMD_ID_COMBOBOX_TYPE, WISP_ES_EDIT_NORMAL|WISP_ES_READONLY, NULL, NULL, }, { WISP_CTRL_CHECK_BOX, {230,30,100,20}, CMD_ID_CASE_CHECK, WISP_CBS_NORMAL, WSTR("Match case"), }, { WISP_CTRL_STATIC_DIB, {20,62,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:5" }, { WISP_CTRL_STATIC_STRING, {40,62,45,18}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Value"), NULL, }, { WISP_CTRL_EDIT, {80,60,280,18}, CMD_ID_EDIT_VALUE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_DIB, {20,116,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\Toolbar.bmp#16#16:13*16+12" }, { WISP_CTRL_STATIC_GROUP, {10,95,364,50}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Range") }, { WISP_CTRL_STATIC_STRING, {40,116,40,16}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Begin"), NULL, }, { WISP_CTRL_EDIT, {80,115,70,16}, CMD_ID_EDIT_BEGIN_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_STATIC_STRING, {160,116,25,16}, WISP_ID_NULL, WISP_WS_NULL, WSTR("End"), NULL, }, { WISP_CTRL_EDIT, {190,115,70,16}, CMD_ID_EDIT_END_ADDRESS, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_BUTTON, {270,113,90,20}, CMD_ID_BUTTON_SELECT_MODULE, WISP_BS_NORMAL, WSTR("Select Module"), }, { WISP_CTRL_BUTTON, {100,160,68,20}, CMD_ID_BUTTON_FIND, WISP_BS_NORMAL, WSTR("Find"), }, { WISP_CTRL_BUTTON, {210,160,68,20}, CMD_ID_BUTTON_FIND_NEXT, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Find Next"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CSearchDialog) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CSearchDialog) WISP_MSG_CMD_MAP(CMD_ID_COMBOBOX_TYPE,OnTypeComboxCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CSearchDialog) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_SELECT_MODULE,OnButtonSelectModule) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_FIND,OnButtonFind) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_FIND_NEXT,OnButtonFindNext) WISP_MSG_EVENT_MAP_END CSearchDialog::CSearchDialog() { m_pFormRes = m_FormRes; } CSearchDialog::~CSearchDialog() { } void CSearchDialog::Popup() { if(IsWindow()) { Destroy(); } else { CreateForm(NULL); Center(); } } bool CSearchDialog::OnFormCreate(IN WISP_MSG* pMsg) { m_BeginAddressEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_BEGIN_ADDRESS); m_EndAddressEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_END_ADDRESS); m_ValueEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_VALUE); m_TypeComboBox = (CWispComboBox*)GetFormItem(CMD_ID_COMBOBOX_TYPE); m_pCaseCheckBox = (CWispCheckBox*)GetFormItem(CMD_ID_CASE_CHECK); for(int i=0;m_FindDataType[i];i++) m_TypeComboBox->m_ComboList.InsertItem(m_FindDataType[i]); m_TypeComboBox->SelectItem(0); CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(*X86_REG_PTR.pEIP); if(pDbgModule==NULL) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(*X86_REG_PTR.pEIP); if(pDbgModule) { WCHAR szBuffer[32]; uNumToStr(pDbgModule->m_ModuleBase,szBuffer); m_BeginAddressEdit->SetWindowText(szBuffer); uNumToStr(pDbgModule->m_ModuleBase+pDbgModule->m_ModuleSize,szBuffer); m_EndAddressEdit->SetWindowText(szBuffer); } return true; } bool CSearchDialog::OnTypeComboxCmd(IN WISP_MSG* pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_COMBOX_SELCHANGE) { m_pCaseCheckBox->EnableWindow(pMsg->Command.Param1<=FIND_DATA_TYPE_TEXT_UNI); } return true; } bool CSearchDialog::OnButtonSelectModule(IN WISP_MSG* pMsg) { CModuleListWnd ModuleList; ModuleList.Popup(true); if(ModuleList.m_pDbgModule) { WCHAR szBuffer[32]; uNumToStr(ModuleList.m_pDbgModule->m_ModuleBase,szBuffer); m_BeginAddressEdit->SetWindowText(szBuffer); uNumToStr(ModuleList.m_pDbgModule->m_ModuleBase+ModuleList.m_pDbgModule->m_ModuleSize,szBuffer); m_EndAddressEdit->SetWindowText(szBuffer); UpdateClient(); } return true; } bool CSearchDialog::OnButtonFind(IN WISP_MSG* pMsg) { int Index = m_TypeComboBox->GetCurSelItem(); if(Index==-1) return true; if(m_ValueEdit->m_WndText.Length()==0) goto ErrorExit; if( USHexStrToNum((PCWSTR)m_BeginAddressEdit->GetWindowText(),&m_BeginAddress)==false || USHexStrToNum((PCWSTR)m_EndAddressEdit->GetWindowText(),&m_EndAddress)==false || m_BeginAddress>=m_EndAddress) { gpCurWisp->MsgBox(WSTR("Invalid Search Range !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return true; } m_bCase = true; ZeroMemory(m_FindData,sizeof(m_FindData)); switch(Index) { case FIND_DATA_TYPE_TEXT_ANSI: m_FindDataLength = UnicodeToAnsi(m_ValueEdit->m_WndText,(PSTR)m_FindData,sizeof(m_FindData)); m_bCase = m_pCaseCheckBox->IsChecked(); break; case FIND_DATA_TYPE_TEXT_UNI: m_FindDataLength = TStrCpyLimit((PWSTR)m_FindData,(PCWSTR)m_ValueEdit->m_WndText,sizeof(m_FindData)/2)*2; m_bCase = m_pCaseCheckBox->IsChecked(); break; case FIND_DATA_TYPE_BYTES: m_FindDataLength = THexStrToBytes((PCWSTR)m_ValueEdit->m_WndText,m_FindData,sizeof(m_FindData)); if(m_FindDataLength==0) goto ErrorExit; break; case FIND_DATA_TYPE_WORD: if(USHexStrToNum((PCWSTR)m_ValueEdit->GetWindowText(),(WORD *)m_FindData)==false) goto ErrorExit; m_FindDataLength = 2; break; case FIND_DATA_TYPE_DWORD: if(USHexStrToNum((PCWSTR)m_ValueEdit->GetWindowText(),(DWORD*)m_FindData)==false) goto ErrorExit; m_FindDataLength = 4; break; case FIND_DATA_TYPE_QWORD: if(USHexStrToNum((PCWSTR)m_ValueEdit->GetWindowText(),(QWORD*)m_FindData)==false) goto ErrorExit; m_FindDataLength = 8; break; } m_CurPos = gpSyser->m_pDebugger->SearchMem(m_BeginAddress,m_EndAddress-m_BeginAddress,m_FindData,m_FindDataLength,m_bCase); if(m_CurPos==-1) { gpCurWisp->MsgBox(WSTR("The special data was not found !"),WSTR("Data Search"),WISP_MB_OK|WISP_MB_ICONERROR); } else { GetFormItem(CMD_ID_BUTTON_FIND_NEXT)->EnableWindow(true); VIEW_DATA(m_CurPos,m_FindDataLength); } return true; ErrorExit: gpCurWisp->MsgBox(WSTR("Invalid Search Data !"),WSTR("Error"),WISP_MB_OK|WISP_MB_ICONERROR); return true; } bool CSearchDialog::OnButtonFindNext(IN WISP_MSG* pMsg) { m_CurPos = gpSyser->m_pDebugger->SearchMem(m_CurPos+m_FindDataLength,m_EndAddress-m_CurPos,m_FindData,m_FindDataLength,m_bCase); if(m_CurPos==-1) { GetFormItem(CMD_ID_BUTTON_FIND_NEXT)->EnableWindow(false); gpCurWisp->MsgBox(WSTR("The special data was not found !"),WSTR("Data Search"),WISP_MB_OK|WISP_MB_ICONERROR); } else { VIEW_DATA(m_CurPos,m_FindDataLength); } return true; } ================================================ FILE: Project/Syser/Source/SearchDialog.h ================================================ #ifndef _SEARCH_DIALOG_H_ #define _SEARCH_DIALOG_H_ enum { FIND_DATA_TYPE_TEXT_ANSI = 0, FIND_DATA_TYPE_TEXT_UNI, FIND_DATA_TYPE_BYTES, FIND_DATA_TYPE_WORD, FIND_DATA_TYPE_DWORD, FIND_DATA_TYPE_QWORD, MAX_FIND_DATA_TYPE }; #define MAX_SEARCH_DATA_LENGTH 64 class CSearchDialog : public CWispForm { public: CSearchDialog(); ~CSearchDialog(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnTypeComboxCmd) DECLARE_WISP_MSG_EVENT(OnButtonSelectModule) DECLARE_WISP_MSG_EVENT(OnButtonFind) DECLARE_WISP_MSG_EVENT(OnButtonFindNext) void Popup(); public: CWispComboBox* m_TypeComboBox; CWispEdit* m_BeginAddressEdit; CWispEdit* m_EndAddressEdit; CWispEdit* m_ValueEdit; CWispCheckBox* m_pCaseCheckBox; ULPOS m_BeginAddress; ULPOS m_EndAddress; ULPOS m_CurPos; bool m_bCase; BYTE m_FindData[MAX_SEARCH_DATA_LENGTH]; int m_FindDataLength; static PCWSTR m_FindDataType[]; }; #endif //_DATAVIEWFINDDLG_H_ ================================================ FILE: Project/Syser/Source/SerialMouse.cpp ================================================ #include "stdafx.h" #include "SerialMouse.h" #include "InputDriver.h" #include "HardWareInterruptCtrl.h" #include "Syser.h" #include "Mouse.h" stSerialMouse aSerialMouseData[]={ {0x3f8,0x4,0x2},//Microsoft mode compatible COM1 {0x2f8,0x3,0x2},//Microsoft mode compatible COM2 {0x3f8,0x4,0x3},//Mouse system mode compatible COM1 {0x2f8,0x3,0x3},//Mouse system mode compatible COM2 }; #ifdef __cplusplus extern "C" { #endif WORD wSerialMousePort = 0x2f8; BYTE byte3F8 = 0; BYTE byte3FD = 0; DWORD dwSerialMouseInterruptCounter = 0; DWORD dwMouseMoveEventCounter = 0; VOID SyserSerialMouseInterruptServiceInternal(VOID); #ifdef __cplusplus }; // extern "C" #endif VOID SyserSerialMouseInterruptServiceInternal(VOID) { do { if(byte3FD & 0x2)//ݹ { stKeyGlobalVariable.dwMouseDataIndex = 0; dwMouseBeginBufferIndex = 0; dwMousePrePackageSize = 0; break; } if(dwMouseBeginBufferIndex < 3 && dwMousePrePackageSize == 0) { MouseBeginBuffer[dwMouseBeginBufferIndex++] = stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.chCurrentMouseData & 0x40) { dwMousePackageBeginOffset = dwMouseBeginBufferIndex; stKeyGlobalVariable.dwMouseDataIndex = 1; dwMousePrePackageSize = 3; CurrentMouseData.D3.cFirstData = stKeyGlobalVariable.chCurrentMouseData; } } else { stKeyGlobalVariable.dwMouseDataIndex ++; if(stKeyGlobalVariable.dwMouseDataIndex == 1) CurrentMouseData.D3.cFirstData = stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == 2) CurrentMouseData.D3.cXOffset = ((CurrentMouseData.D3.cFirstData & 0x3) << 6) | stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == 3) CurrentMouseData.D3.cYOffset = ((CurrentMouseData.D3.cFirstData & 0xc) << 4) | stKeyGlobalVariable.chCurrentMouseData; if(stKeyGlobalVariable.dwMouseDataIndex == dwMousePrePackageSize) { dwMouseMoveEventCounter++; stKeyGlobalVariable.dwMouseDataIndex = 0; if((PrevMouseData.D3.cFirstData & 0x10) != (CurrentMouseData.D3.cFirstData & 0x10)) gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(CurrentMouseData.D3.cFirstData & 0x10)!=0); if((PrevMouseData.D3.cFirstData & 0x20) != (CurrentMouseData.D3.cFirstData & 0x20)) gpSyser->OnKeyEvent(WISP_VK_LBUTTON,(CurrentMouseData.D3.cFirstData & 0x20)!=0); if(CurrentMouseData.D3.cYOffset != 0 || CurrentMouseData.D3.cXOffset != 0) gpSyser->OnMouseMove(CurrentMouseData.D3.cXOffset,CurrentMouseData.D3.cYOffset); PrevMouseData.D3.cFirstData = CurrentMouseData.D3.cFirstData; PrevMouseData.D3.cXOffset = CurrentMouseData.D3.cXOffset; PrevMouseData.D3.cYOffset = CurrentMouseData.D3.cYOffset; } } } while (FALSE); } // // __declspec (naked) void SerialMouseInterruptService() // { // __asm{ // cmp cs:dwOldInterruptF9,1 // jnz local_007 // mov ss:dwOldInterruptF9,0 // push cs:dwInterruptF9Address // ret // local_007: // cmp cs:gbActive,TRUE // jz local_1 // push dword ptr cs:stKeyGlobalVariable.dwOldMouseInterrupt // ret // local_1: // pushad // pushfd // push ds // movzx edx,wSerialMousePort // lea edx,[edx+5] // in al,dx // mov byte3FD,al // lea edx,[edx-5] // in al,dx // mov stKeyGlobalVariable.chCurrentMouseData,al // } // // if(byte3FD & 0x2)//ݹ // { // stKeyGlobalVariable.dwMouseDataIndex = 0; // dwMouseBeginBufferIndex = 0; // dwMousePrePackageSize = 0; // goto local_quit; // } // if(dwMouseBeginBufferIndex < 3 && dwMousePrePackageSize == 0) // { // MouseBeginBuffer[dwMouseBeginBufferIndex++] = stKeyGlobalVariable.chCurrentMouseData; // if(stKeyGlobalVariable.chCurrentMouseData & 0x40) // { // dwMousePackageBeginOffset = dwMouseBeginBufferIndex; // stKeyGlobalVariable.dwMouseDataIndex = 1; // dwMousePrePackageSize = 3; // CurrentMouseData.D3.cFirstData = stKeyGlobalVariable.chCurrentMouseData; // } // } // else // { // stKeyGlobalVariable.dwMouseDataIndex ++; // // if(stKeyGlobalVariable.dwMouseDataIndex == 1) // CurrentMouseData.D3.cFirstData = stKeyGlobalVariable.chCurrentMouseData; // if(stKeyGlobalVariable.dwMouseDataIndex == 2) // CurrentMouseData.D3.cXOffset = ((CurrentMouseData.D3.cFirstData & 0x3) << 6) | stKeyGlobalVariable.chCurrentMouseData; // if(stKeyGlobalVariable.dwMouseDataIndex == 3) // CurrentMouseData.D3.cYOffset = ((CurrentMouseData.D3.cFirstData & 0xc) << 4) | stKeyGlobalVariable.chCurrentMouseData; // // if(stKeyGlobalVariable.dwMouseDataIndex == dwMousePrePackageSize) // { // dwMouseMoveEventCounter++; // stKeyGlobalVariable.dwMouseDataIndex = 0; // if((PrevMouseData.D3.cFirstData & 0x10) != (CurrentMouseData.D3.cFirstData & 0x10)) // gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(CurrentMouseData.D3.cFirstData & 0x10)!=0); // if((PrevMouseData.D3.cFirstData & 0x20) != (CurrentMouseData.D3.cFirstData & 0x20)) // gpSyser->OnKeyEvent(WISP_VK_LBUTTON,(CurrentMouseData.D3.cFirstData & 0x20)!=0); // if(CurrentMouseData.D3.cYOffset != 0 || CurrentMouseData.D3.cXOffset != 0) // gpSyser->OnMouseMove(CurrentMouseData.D3.cXOffset,CurrentMouseData.D3.cYOffset); // // PrevMouseData.D3.cFirstData = CurrentMouseData.D3.cFirstData; // PrevMouseData.D3.cXOffset = CurrentMouseData.D3.cXOffset; // PrevMouseData.D3.cYOffset = CurrentMouseData.D3.cYOffset; // } // } // local_quit: // SetInteruptEOI(0x3); // __asm{ // pop ds // popfd // popad // iretd // } // } #ifdef __cplusplus extern "C" { #endif bool SyserCheckSerialMouse(WORD PortNum,BYTE DataLen); #ifdef __cplusplus }; // extern "C" #endif bool CheckSerialMouse() { int i; WORD wPortNum; BYTE byteDataLen; bool bRet; for(i = 0; i < sizeof(aSerialMouseData)/sizeof(stSerialMouse); i++) { bRet = FALSE; wPortNum = aSerialMouseData[i].wSerialPort; byteDataLen = aSerialMouseData[i].byteDataLen; // __asm{ // push eax // push ebx // push ecx // push edx // movzx edx,wPortNum // add edx,3 // push edx // mov eax,0x80 // out dx,al // dec edx // dec edx // mov eax,0 // out dx,al // dec edx // mov eax,0x60 //ôڵIJ // out dx,al // pop edx // movzx eax,byte ptr byteDataLen // out dx,al //ݳ // dec edx // dec edx // xor eax,eax // out dx,al //ֹж // add edx,4 // in al,dx // dec edx // mov eax,1 // out dx,al //׼ߵ״̬ // sub edx,4 // mov ecx,0x8000 // local_1: // in al,dx //ûõ // loop local_1 // add edx,5 // in al,dx // cmp byteDataLen,3 // jz local_2 // dec edx // mov al,0xb // out dx,al //ж // mov ebx,3 // local_6: // movzx edx,word ptr wPortNum // add edx,5 // mov ecx,0x8000 // local_3: // in al,dx // test al,1 // loope local_3 // jecxz local_4 // sub edx,5 // in al,dx // cmp al,0x4d;'M' // jz local_5 // dec ebx // jnz local_6 // jmp local_4 // local_2: // dec edx // mov al,0xb // out dx,al // jmp local_8 // local_8: // in al,dx // cmp al,0xb // jnz local_4 // local_5: // movzx edx,word ptr wPortNum // inc edx // mov al,1 // out dx,al // mov bRet,TRUE // local_4: // pop edx // pop ecx // pop ebx // pop eax // } bRet = SyserCheckSerialMouse(wPortNum,byteDataLen); if(bRet) break; } return TRUE; } ================================================ FILE: Project/Syser/Source/SerialMouse.h ================================================ #ifndef _SERIALMOUSE_H_H #define _SERIALMOUSE_H_H #ifdef __cplusplus extern "C" { #endif typedef struct _stSerialMouse { WORD wSerialPort; DWORD dwHardwareNum; BYTE byteDataLen; }stSerialMouse; VOID SyserSerialMouseInterruptService(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif //_SERIALMOUSE_H_H ================================================ FILE: Project/Syser/Source/SerialPort.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SerialPort.h" #include "Services.h" #include "HardWareInterruptCtrl.h" #ifdef __cplusplus extern "C" { #endif VOID SyserIODelay(VOID); VOID SyserSerialDLAB(WORD BasePort,bool bSet); int SyserSerialSendData(WORD BasePort,void* Buffer,int BufSize); int SyserSerialRecvData(WORD BasePort,void*Buffer,int BufSize); #ifdef __cplusplus }; // extern "C" #endif // void __declspec(naked) IODelay() // { // __asm // { // jmp Next // Next: // ret // } // } // // void __declspec(naked) SerialDLAB(WORD BasePort,bool bSet) // { // __asm // { // //////////////////////////////// // //proc // push ebp // mov ebp,esp // push edx // push eax // //////////////////////////////// // mov dx,BasePort // add dx, 3 // point to Line Control Reg // in al, dx // get current state // call IODelay // mov ah,bSet // xor ah,ah // jz Disable // or al, 80h // set DLAB to 1 // jmp Next // Disable: // and al, 7fh // Next: // out dx, al // //////////////////////////////// // //endp // pop eax // pop edx // mov esp, ebp // pop ebp // ret 8 // //////////////////////////////// // } // } // // // int __declspec(naked) SerialSendData(WORD BasePort,void*Buffer,int BufSize) // { // __asm // { // //////////////////////////////// // //proc // push ebp // mov ebp,esp // push esi // push edx // push ecx // //////////////////////////////// // mov dx, BasePort // mov esi,Buffer // mov ecx,BufSize // cld // send_next: // add dx, 6 // modem status register // in al, dx // call IODelay // test al, 80h // remote problem ?, DCD=0 // jz send_exit // jump if so // dec dx // line status register // in al, dx // call IODelay // test al, 20h // xmit holding reg ready? // jz send_exit // jump if not // mov dx, BasePort // transmit holding register // lodsb // get byte into al from [esi] // out dx, al // send byte // call IODelay // loop send_next // send_exit: // //////////////////////////////// // //endp // mov eax,BufSize // sub eax,ecx // pop ecx // pop edx // pop esi // mov esp, ebp // pop ebp // ret 0ch // //////////////////////////////// // } // } // // int __declspec(naked) SerialRecvData(WORD BasePort,void*Buffer,int BufSize) // { // __asm // { // //////////////////////////////// // //proc // push ebp // mov ebp,esp // push edi // push edx // push ecx // //////////////////////////////// // mov dx, BasePort // mov ecx,BufSize // mov edi,Buffer // add dx, 4 //modem control register // mov al, 3 //set Data Terminal Ready // out dx, al //and Request to Send // cld // mov dx, BasePort //base I/O address // get_next: // add dx, 5 //line status register // in al, dx //get error & data ready bits // test al, 0eh //any received byte (bl=1) ? // jnz get_exit //loop if not // test al, 1 //any received byte (bl=1) ? // jz get_exit //loop if not // mov dx, BasePort //receive register // in al, dx //get byte // stosb // loop get_next // get_exit: // //////////////////////////////// // //endp // mov eax,BufSize // sub eax,ecx // pop ecx // pop edx // pop edi // mov esp, ebp // pop ebp // ret 0ch // //////////////////////////////// // } // } CSerialPortConnect::CSerialPortConnect() { m_hSerialPortDevice = NULL; m_Buffer = NULL; m_ComPort = 0; } CSerialPortConnect::~CSerialPortConnect() { } bool CSerialPortConnect::Init() { HANDLE hDir,hLink; WCHAR szBuffer[256]; OBJECT_ATTRIBUTES ObjAttr; UNICODE_STRING UnicodeName; IO_STATUS_BLOCK IOStatus; ULPOS BiosAddr; ULONG Length; if(MapToVAddr(0x0,&BiosAddr)==0) { OUTPUT(WSTR("Syser : Can't find com port!\n")); return false; } m_ComPort = GET_WORD(BiosAddr,0x400+((SyserOption.iComPort-1)%4)*2); RtlInitUnicodeString(&UnicodeName,WSTR("\\??")); InitializeObjectAttributes(&ObjAttr,&UnicodeName,OBJ_CASE_INSENSITIVE,NULL,NULL); if(!NT_SUCCESS(ZwOpenDirectoryObject(&hDir,DIRECTORY_QUERY,&ObjAttr))) { OUTPUT(WSTR("Syser : Can't open\\??!\n")); return false; } TSPrintf(szBuffer,WSTR("com%d"),SyserOption.iComPort); RtlInitUnicodeString(&UnicodeName,szBuffer); InitializeObjectAttributes(&ObjAttr,&UnicodeName,OBJ_CASE_INSENSITIVE,hDir,NULL); if(!NT_SUCCESS(ZwOpenSymbolicLinkObject(&hLink,GENERIC_READ,&ObjAttr))) { OUTPUT(WSTR("Syser : Can't open COM Device!\n")); return false; } UnicodeName.MaximumLength = sizeof(szBuffer)/sizeof(WCHAR); UnicodeName.Length = 0; UnicodeName.Buffer = szBuffer; if(!NT_SUCCESS(ZwQuerySymbolicLinkObject(hLink,&UnicodeName,&Length))) { OUTPUT(WSTR("Syser : Can't Query COM Device Symbol Link !\n")); return false; } ZwClose(hLink); m_hSerialPortDevice = NULL; InitializeObjectAttributes(&ObjAttr,&UnicodeName,OBJ_KERNEL_HANDLE,NULL,NULL); ZwCreateFile(&m_hSerialPortDevice,GENERIC_READ,&ObjAttr,&IOStatus,NULL,FILE_ATTRIBUTE_NORMAL,0,FILE_OPEN,0,NULL,0); OUTPUT(WSTR("Syser : COM%d port = 0x%X , Device Handle = 0x%08X\n"),SyserOption.iComPort,m_ComPort,m_hSerialPortDevice); m_MaxBufSize = SD_MAX_LENGTH; m_Buffer = new BYTE[m_MaxBufSize]; m_BufSize = 0; return true; } void CSerialPortConnect::Release() { if(m_hSerialPortDevice) ZwClose(m_hSerialPortDevice); SafeDelete(m_Buffer); } int CSerialPortConnect::RecvData(void*Buffer,int BufSize) { return SyserSerialRecvData(m_ComPort,Buffer,BufSize); } int CSerialPortConnect::SendData(void*Buffer,int BufSize) { return SyserSerialSendData(m_ComPort,Buffer,BufSize); } DWORD gHardInt4Vector = 0; DWORD gHardInt3Vector = 0; ST_DESC* Com1Com3Desc=NULL; ST_DESC* Com2Com4Desc=NULL; VADDR32 gOldCom1Com3Proc=0; VADDR32 gOldCom2Com4Proc=0; DWORD dwInterruptFbAddress=0; DWORD dwInterruptFcAddress=0; // // __declspec(naked) void SerialCom1Com3Proc() // { // __asm // { // pushfd // cmp cs:gbActive,1 // jz local_001 // popfd // ret // local_001: // pushad // push ds // push es // mov eax,0x10 // mov ds,ax // mov es,ax // } // SetInteruptEOI(4); // __asm // { // pop es // pop ds // popad // popfd // lea esp,[esp+4] // iretd // } // } // // __declspec(naked) void SerialCom2Com4Proc() // { // __asm // { // pushfd // cmp cs:gbActive,1 // jz local_001 // popfd // ret // local_001: // pushad // push ds // push es // mov eax,0x10 // mov ds,ax // mov es,ax // } // SetInteruptEOI(3); // __asm // { // pop es // pop ds // popad // popfd // lea esp,[esp+4] // iretd // } // } // // __declspec (naked) void Interrupt_0xFB_Com1_Com3_Service() // { // __asm // { // pushfd // cmp cs:gbActive,0 // jnz local_2 // popfd // ret // } // __asm // { // local_2: // popfd // push cs:SerialCom1Com3Proc // ret // } // } // // __declspec (naked) void Interrupt_0xFC_Com2_Com4_Service() // { // __asm // { // pushfd // cmp cs:gbActive,0 // jnz local_2 // popfd // ret // } // __asm // { // local_2: // popfd // push cs:SerialCom2Com4Proc // ret // } // } ================================================ FILE: Project/Syser/Source/SerialPort.h ================================================ #ifndef _SERIALPORT_H_ #define _SERIALPORT_H_ #include "InputDriver.h" #include "SyserConnect.h" class CSerialPortConnect : public CSyserConnect { public: CSerialPortConnect(); ~CSerialPortConnect(); public: bool Init(); void Release(); int RecvData(void*Buffer,int BufSize); int SendData(void*Buffer,int BufSize); private: HANDLE m_hSerialPortDevice; WORD m_ComPort; }; extern DWORD gHardInt4Vector; extern DWORD gHardInt3Vector; extern ST_DESC* Com1Com3Desc; extern ST_DESC* Com2Com4Desc; extern VADDR32 gOldCom1Com3Proc; extern VADDR32 gOldCom2Com4Proc; extern DWORD dwSerialCom1Com3Counter; extern DWORD dwSerialCom2Com4Counter; #ifdef __cplusplus extern "C" { #endif VOID SyserSerialCom1Com3Proc(VOID); VOID SyserSerialCom2Com4Proc(VOID); VOID SyserInterrupt_0xFB_Com1_Com3_Service(VOID); VOID SyserInterrupt_0xFC_Com2_Com4_Service(VOID); #define SYSER_APIC_COM1_INTERRUPT_VECTOR (0xfb) #define SYSER_APIC_COM2_INTERRUPT_VECTOR (0xfc) #ifdef __cplusplus }; // extern "C" #endif #endif /* _SERIALPORT_H_ */ ================================================ FILE: Project/Syser/Source/Services.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SyserMemoryReadWrite.h" #include "Services.h" #include "HardWareInterruptCtrl.h" #include "MultiCPU.h" #include "Keyboard.h" #ifdef __cplusplus extern "C" { #endif bool gbSystemCrash = false; bool gbActive=false; bool gbBugCheckExExit=false; bool gbBugCheckExFlags=false; DWORD gPrevStepEIP=0; //ǰһεִе EIP ַҪһЩ //ǰһִеĵ pushfd ôҪջе tf ־ //һ˳ʱǵ˳ġñΪ 0 DWORD gGenInterruptOffset; X86_GATE_DECR gOldInterruptDescropterTable[0x100]; DWORD gOldInterruptProcAddress[0x100]; bool bGoToSoftice; DWORD gSofticeDriverEntry = 0; //ڼ Softice ʱ ntice.sys DriverEntry ڵַ; // ntice.sys ģװʱҪ patch ϵ㡣 //жϱʱǰԼװжϴԼ ϵͳ // patch жء ntice.sys װɺǴ°װ DWORD SyserDR[8]; DWORD gSofticeDriverEntryReturnAddress=0; bool gbTemplateTraceFlag = false; DWORD gGenInterruptNumber = 0xFFFFFFFF; DWORD OldESP; BYTE* gpStackBuffer; BYTE* gpStackBufferTop; BYTE* gpStackBufferBottom; BYTE FpuRegisterImage[2][FPU_REGISTER_IMAGE_SIZE]; BYTE FxsaveBuffer[512+15]; DWORD CurrentFpuImageIndex = 0; bool bSaveFpuFlags = false; WORD gSystemSSSegment; DWORD gpBugCheckExAddress=0; bool gbBugCheckExFirstByteIsCC=false; DWORD Int01ReEnter_DR6; DWORD Int01ReEnter_DR1; DWORD Int01ReEnter_EIP; DWORD Int01ReEnter_DR7; DWORD pRootWndCount=0; DWORD pRootWndCount11=0; DWORD pRootWndCount12=0; DWORD Int01ExecuteCount=0; #ifdef __cplusplus }; // extern "C" #endif /* ջ 1 ж3в R3_SS R3_ESP EFLAGS CS EIP 2 ж0в EFLAGS CS EIP 3 жv86ģʽв V86_GS V86_FS V86_DS V86_ES V86_SS V86_ESP EFALGS CS EIP */ // // DWORD dwLoadRegTmpCpuID; // DWORD dwValue; // // __declspec(naked) void LoadReg() // { // __asm // { // push ebx // mov eax,dr0 // mov Reg.DR[0*4],eax // mov eax,dr1 // mov Reg.DR[1*4],eax // mov eax,dr2 // mov Reg.DR[2*4],eax // mov eax,dr3 // mov Reg.DR[3*4],eax // mov eax,dr6 // mov Reg.DR[6*4],eax // mov eax,dr7 // mov Reg.DR[7*4],eax // mov eax,cr0 // mov Reg.CR[0*4],eax // mov eax,cr2 // mov Reg.CR[2*4],eax // mov eax,cr3 // mov Reg.CR[3*4],eax // _emit(0x0f)//mov eax,cr4 // _emit(0x20) // _emit(0xe0) // mov Reg.CR[4*4],eax // // mov eax,[ebp+12] // mov Reg.GeneReg[EDI_IDX*4],eax // mov eax,[ebp+12+4] // mov Reg.GeneReg[ESI_IDX*4],eax // // mov eax,[ebp+12+8] // mov Reg.GeneReg[EBP_IDX*4],eax // // mov ebx,OldESP // mov Reg.GeneReg[ESP_IDX*4],ebx // // mov eax,[ebx+8] // mov Reg.EFlags,eax // mov ReturnContext.rEflags,eax // mov eax,[ebp+12+16] // mov Reg.GeneReg[EBX_IDX*4],eax // mov eax,[ebp+12+20] // mov Reg.GeneReg[EDX_IDX*4],eax // mov eax,[ebp+12+24] // mov Reg.GeneReg[ECX_IDX*4],eax // mov eax,[ebp+12+28] // mov Reg.GeneReg[EAX_IDX*4],eax // // mov eax,[ebx] // mov Reg.EIP,eax // mov ReturnContext.rEIP,eax // movzx eax,word ptr [ebx+4] // mov word ptr Reg.SegReg[CS_IDX*2],ax // mov ReturnContext.rCS,eax // mov eax,Reg.EFlags // test eax,0x20000 //Virtual Mode // jz local_1 // // mov eax,[ebx+0x0C] // v86ģʽ // mov Reg.GeneReg[ESP_IDX*4],eax // mov ReturnContext.r3ESP,eax // mov eax,[ebx+0x10] // mov Reg.SegReg[SS_IDX*2],ax // mov ReturnContext.r3SS,eax // // mov eax,[ebx+0x14] // mov Reg.SegReg[ES_IDX*2],ax // mov ReturnContext.rV86ES,eax // // mov eax,[ebx+0x18] // mov Reg.SegReg[DS_IDX*2],ax // mov ReturnContext.rV86DS,eax // // mov eax,[ebx+0x1C] // mov Reg.SegReg[FS_IDX*2],ax // mov ReturnContext.rV86FS,eax // mov eax,[ebx+0x20] // mov Reg.SegReg[GS_IDX*2],ax // mov ReturnContext.rV86GS,eax // // jmp local_3 // local_1: // mov ax,Reg.SegReg[CS_IDX*2] // test ax,0x3 // jz local_2 // // mov eax,[ebx+0x0C] // ring3 Ҫ±Գ esp,ss // mov Reg.GeneReg[ESP_IDX*4],eax // mov ReturnContext.r3ESP,eax // movzx eax,[ebx+0x10] // mov Reg.SegReg[SS_IDX*2],ax // mov ReturnContext.r3SS,eax // jmp local_4 // local_2: // xor eax,eax // ring0 // mov ax,ss // mov Reg.SegReg[SS_IDX*2],ax // add Reg.GeneReg[ESP_IDX*4],12 //ļ12 жϵķֳ // // push eflags // // push cs // // push eip // // Ҫ ֳе ݵȫλ // // local_4: // xor eax,eax // mov ax,[ebp] // mov Reg.SegReg[ES_IDX*2],ax // mov ax,[ebp+4] // mov Reg.SegReg[DS_IDX*2],ax // mov ax,[ebp+8] // mov Reg.SegReg[FS_IDX*2],ax // mov ax,gs // mov Reg.SegReg[GS_IDX*2],ax // local_3: // pop ebx // // } // SaveFpuRegister(); // Reg.IDTBase = SyserGetIDTBase(&dwValue); // Reg.IDTLimit = (WORD)dwValue; // // Reg.GDTBase = SyserGetGDTBase(&dwValue); // Reg.GDTLimit = (WORD)dwValue; // // if(gCPUNumbers>1) // { // dwLoadRegTmpCpuID=GetCurrentCPULocalAPICID(); // gpMCPUReg[dwLoadRegTmpCpuID]=Reg; // SaveLocalApic(&gpMCPULocalApic[dwLoadRegTmpCpuID]); // gpMCPUReg[dwLoadRegTmpCpuID].LocalAPIC=&gpMCPULocalApic[dwLoadRegTmpCpuID]; // } // ReadOnlyActiveReg=Reg; // __asm ret // } void SaveFpuRegister() { DWORD pFpuRegister; CurrentFpuImageIndex ^=1; pFpuRegister = (DWORD)&FpuRegisterImage[CurrentFpuImageIndex]; if((Reg.CR[0] & 4) || (Reg.CR[0] & 0x10) == 0) { bSaveFpuFlags = false; return; } bSaveFpuFlags = true; //__asm clts SyserCltr(); memset((void*)pFpuRegister,0,108); // __asm // { // mov eax,pFpuRegister // fnsave BYTE PTR [eax] // frstor BYTE PTR [eax] // } SyserFnsave((PUCHAR)pFpuRegister); SyserFrstor((PUCHAR)pFpuRegister); } void RestorFpuRegister() { DWORD pFpuRegister; if(bSaveFpuFlags==false) return; pFpuRegister = (DWORD)&FpuRegisterImage[CurrentFpuImageIndex]; // __asm // { // mov eax,pFpuRegister // frstor BYTE PTR [eax] // } SyserFrstor((PUCHAR)pFpuRegister); bSaveFpuFlags=false; } // // __declspec(naked) void SaveReg() // { // if(gpSyser->m_bDbgRegAccessMon) // { // EnableHardwaveBreakpoint(); // Reg.DR[7]|=0x2000; // gpSyser->m_bUpdateReg=true; // } // if((Reg.EFlags&0x100)==0) // gPrevStepEIP=0; // RestorFpuRegister(); // if(gpSyser->m_bUpdateReg==false) // { // __asm // { // push eax // push ebx // mov eax,cr0 // cmp eax,Reg.CR[0*4] // jz local_ppp // mov eax,Reg.CR[0*4] // mov cr0,eax // local_ppp: // mov eax,Reg.EFlags // and eax,0xFFFFFEFF // mov ebx,OldESP // mov [ebx+8],eax // mov eax,0xFFFF0FF0 // mov dr6,eax // pop ebx // pop eax // } // // __asm ret; // } // gpSyser->m_bUpdateReg=false; // __asm // { // sldt word ptr Reg.LDT // str word ptr Reg.TR // sgdt fword ptr Reg.GDTLimit // sidt fword ptr Reg.IDTLimit // mov eax,Reg.DR[0*4] // mov dr0,eax // mov eax,Reg.DR[1*4] // mov dr1,eax // mov eax,Reg.DR[2*4] // mov dr2,eax // mov eax,Reg.DR[3*4] // mov dr3,eax // mov eax,0xFFFF0FF0 //DR6 // mov dr6,eax // mov eax,Reg.DR[7*4] // mov dr7,eax // mov eax,cr0 // cmp eax,Reg.CR[0*4] // jz local_ppp1 // mov eax,Reg.CR[0*4] // mov cr0,eax // local_ppp1: // mov eax,Reg.CR[2*4] // mov cr2,eax // mov eax,Reg.CR[3*4] // mov cr3,eax // mov eax,Reg.EFlags // test eax,0x20000 // v86 ģʽת // jnz local_0023 // mov ax,word ptr Reg.SegReg[ES_IDX*2] // mov [ebp],ax // mov ax,word ptr Reg.SegReg[DS_IDX*2] // mov [ebp+4],ax // mov ax,word ptr Reg.SegReg[FS_IDX*2] // mov [ebp+8],ax // mov ax,word ptr Reg.SegReg[GS_IDX*2] // mov gs,ax // jmp local_987 // local_0023: // v86 ģʽ // mov ebx,OldESP // mov eax,Reg.GeneReg[ESP_IDX*4] // mov [ebx+0x0C],eax // movzx eax,word ptr Reg.SegReg[SS_IDX*2] // mov [ebx+0x10],eax // movzx eax,word ptr Reg.SegReg[ES_IDX*2] // mov eax,0x1234 // mov [ebx+0x14],eax // movzx eax,word ptr Reg.SegReg[DS_IDX*2] // mov [ebx+0x18],eax // movzx eax,word ptr Reg.SegReg[FS_IDX*2] // mov [ebx+0x1C],eax // movzx eax,word ptr Reg.SegReg[GS_IDX*2] // mov [ebx+0x20],eax // local_987: // mov eax,Reg.GeneReg[EDI_IDX*4] // mov [ebp+12],eax // mov eax,Reg.GeneReg[ESI_IDX*4] // mov [ebp+12+4],eax // mov eax,Reg.GeneReg[EBP_IDX*4] // mov [ebp+12+8],eax // //mov [ebp+12+12],eax // mov eax,Reg.GeneReg[EBX_IDX*4] // mov [ebp+12+16],eax // mov eax,Reg.GeneReg[EDX_IDX*4] // mov [ebp+12+20],eax // mov eax,Reg.GeneReg[ECX_IDX*4] // mov [ebp+12+24],eax // mov eax,Reg.GeneReg[EAX_IDX*4] // mov [ebp+12+28],eax // push ebx // mov ax,ReadOnlyActiveReg.SegReg[CS_IDX*2] // test ax,0x3 // jnz local_2skip // mov eax,Reg.GeneReg[ESP_IDX*4] //r0 ʱû޸ ESP ֵ // sub eax,12 // mov OldESP,eax // local_2skip: // mov ebx,OldESP // mov eax,Reg.EIP // mov [ebx],eax // movzx eax,Reg.SegReg[CS_IDX*2] // mov [ebx+4],eax // mov eax,Reg.EFlags // mov [ebx+8],eax // mov ax,ReadOnlyActiveReg.SegReg[CS_IDX*2] // test ax,0x3 // jz local_098skip // mov eax,Reg.GeneReg[ESP_IDX*4] // mov [ebx+0xc],eax // movzx eax,word ptr Reg.SegReg[SS_IDX*2] // mov [ebx+0x10],ax // local_098skip: // pop ebx // } // // __asm ret; // } void UnloadSystemModuleSymbols(PSTRING pModuleName,PKD_SYMBOLS_INFO pSymInfo) { DWORD dwBaseAddress; if(ReadDword(&pSymInfo->BaseOfDll,&dwBaseAddress)==false) dwBaseAddress=0; //DbgPrint("UnloadSystemModuleSymbols %08X\n",pSymInfo->BaseOfDll); gpSyser->m_SyserUI.m_SyserDI.OnUnloadModule(gpSyser->m_pSysDebugger,(ULPOS)dwBaseAddress); } // // __declspec(naked) void Int2dProc() // { // DWORD SrvID,Arg1,Arg2; // __asm // { // pushad // push ds // push es // push fs // mov bp,NT_DS // mov ds,bp // mov es,bp // mov bp,NT_FS // mov fs,bp // mov ebp,esp // sub esp,__LOCAL_SIZE // mov SrvID,eax; // mov Arg1,ecx; // mov Arg2,edx; // } // switch(SrvID) // { // case 3: // break; // case 4: // UnloadSystemModuleSymbols((PSTRING)Arg1,(PKD_SYMBOLS_INFO)Arg2); // break; // } // __asm // { // mov esp,ebp // pop fs // pop es // pop ds // popad // ret // } // } #define DEBUG_SOFTICE_DRIVERENTRY 0 LONG gbLoadImage=0; void CreateProcessHookProc(IN HANDLE ParentId,IN HANDLE ProcessId,IN BOOLEAN Create) { KeWaitForSingleObject(&gpSyser->m_ImageLoadSyncEvent, Executive, KernelMode, TRUE, 0); if(Create) { CDbgProcess*pProcess = gpSyser->m_SysInfo.InsertProcess((DWORD)ProcessId); if(gpSyser->m_pCsrssProcess==NULL && pProcess && TStrICmp((PCSTR)pProcess->m_ProcName,"csrss")==0) gpSyser->m_pCsrssProcess = pProcess; } else { if((DWORD)ProcessId!=gpSyser->m_pSysDebugger->m_PID) gpSyser->m_SysInfo.RemoveProcess((DWORD)ProcessId); if(gpSyser->m_bActive==false && gpSyser->m_bUserScrBackuped) gpSyser->RestoreScreen(); } KeSetEvent(&gpSyser->m_ImageLoadSyncEvent, 0, FALSE); } DWORD RtlGetCurrentDirectory() { WORD FSSelector; DWORD SegLimit,SegBase,*Ptr; __try{ // __asm { // Push eax // mov ax,fs // mov FSSelector,ax // pop eax // } FSSelector = SyserGetCurFSeg(); SegBase = GetSegmentBaseAddress(FSSelector,&SegLimit); Ptr= *(DWORD**)&SegBase; Ptr=*(DWORD**)&Ptr[6]; if(Ptr==NULL) return 0; Ptr=*(DWORD**)&Ptr[12]; Ptr=*(DWORD**)&Ptr[4]; Ptr=*(DWORD**)&Ptr[10]; return Ptr[0]; } __except(EXCEPTION_EXECUTE_HANDLER) { ::DbgPrint("Syser : RtlGetCurrentDirectory fail.\n"); return 0; } } void LoadImageHookProc(IN PUNICODE_STRING FullImageName,IN HANDLE ProcessId,IN PIMAGE_INFO ImageInfo) { MODULE_ID ModuleID; KIRQL kOldIrql; bool bModuleTouched; WCHAR wszBuffer[MAX_FN_LEN]; CHAR szFileName[MAX_FN_LEN] = {0}; ULPOS BaseAddress,HighBaseAddress; KeWaitForSingleObject(&gpSyser->m_ImageLoadSyncEvent, Executive, KernelMode, TRUE, 0); if(FullImageName==NULL) { ::DbgPrint("Syser : ImageHook FullImageName is NULL\n"); KeSetEvent(&gpSyser->m_ImageLoadSyncEvent, 0, FALSE); return; } CDbgProcess*pProcess = gpSyser->m_SysInfo.GetProcess((DWORD)ProcessId); if(pProcess==NULL) { ::DbgPrint("Syser : ImageHook GetProcess fail. ProcessID %x\n",(DWORD)ProcessId); KeSetEvent(&gpSyser->m_ImageLoadSyncEvent, 0, FALSE); return; } gpSyser->m_pDebugger = pProcess; /////////////////////////////////////////////////////////////////////////////////////////////////////////// //淶ļ,ת\??\X:\...ʽ UnicodeStrCpy(wszBuffer,FullImageName,MAX_FN_LEN); UnicodeToAnsi(wszBuffer,szFileName,MAX_FN_LEN); BaseAddress = (ULPOS)ImageInfo->ImageBase; HighBaseAddress = BaseAddress+ImageInfo->ImageSize; if(gpSyser->m_SysInfo.ConvertFileName(szFileName)==false && !ImageInfo->SystemModeImage && pProcess->m_ModuleList.m_DbgModuleMap.Count()) {//̷ļ,ģ鲻 if(gpSyser->m_OSMajorVersion==5 || gpSyser->m_OSMajorVersion==6) { DWORD wszCurDir = RtlGetCurrentDirectory(); int Length; if((wszCurDir>>16)==':') { TStrCpy(szFileName,"\\??\\"); szFileName[4] = (char)wszCurDir;//̷ szFileName[5] = ':'; szFileName[6] = 0; Length = TStrLen(szFileName); } else { szFileName[0] = '\\'; szFileName[1] = 0; Length=1; } UnicodeToAnsi(wszBuffer,&szFileName[Length],MAX_FN_LEN-Length); } } bModuleTouched = false; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //õǰDebuggerΪǰ,ҪCR3 ModuleID = GetModuleID(BaseAddress,ImageInfo->ImageSize); gpSyser->m_SyserUI.m_SyserDI.OnLoadModule(pProcess,szFileName,BaseAddress,ImageInfo->ImageSize,ModuleID); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //SystemʽcsrssûɹģĴ if(gpSyser->m_SysInfo.m_win32kImageBase==0 && ImageInfo->SystemModeImage && TCmpModuleName(szFileName,"win32k.sys")) { //DbgPrint("Syser : win32k loaded\n"); gpSyser->m_SysInfo.m_win32kImageBase = (ULPOS)ImageInfo->ImageBase; gpSyser->m_SysInfo.m_win32kImageSize = (ULSIZE)ImageInfo->ImageSize; } if(pProcess==gpSyser->m_pCsrssProcess && gpSyser->m_pCsrssProcess) { for(int n=0;szPublicModuleName[n];n++) { if(TCmpModuleName(szFileName,szPublicModuleName[n])) { CDbgModule*pDbgModule = gpSyser->m_pCsrssProcess->GetModule(szPublicModuleName[n]); if(pDbgModule && pDbgModule->m_pSymbolModule) { //DbgPrint("Syser : csrss %s loaded\n",szPublicModuleName[n]); pDbgModule->m_pSymbolModule->m_ModuleBase = pDbgModule->m_ModuleBase; pDbgModule->m_pSymbolModule->m_ModuleSize = pDbgModule->m_ModuleSize; } break; } } } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// for(CSDSModuleMap::IT Iter=gpSyser->m_SyserUI.m_SDSModuleMap.Begin();Iter!=gpSyser->m_SyserUI.m_SDSModuleMap.End();Iter++) {//SDSģϵ if(Iter->GetModuleID()==ModuleID)//ģƥ { for(TList::IT BPIter = Iter->m_BreakPointList.Begin();BPIter!=Iter->m_BreakPointList.End();BPIter++) { if(bModuleTouched==false) {//Touchһģ鱣֤ģ鲻ȱҳ TouchModuleMemory(BaseAddress,ImageInfo->ImageSize); bModuleTouched = true; } pProcess->InsertCodeBP(BaseAddress+*BPIter,0,BP_STATE_ENABLE); } } } if(gpSyser->m_bPatchCopyOnWrite) {//Patch CopyOnWriteɹȫģϵ for(CModuleBPMap::IT ModBPIter=gpSyser->m_SyserUI.m_ModuleBPMap.Begin();ModBPIter.IsExist();ModBPIter++) { if(ModBPIter.Key()>=BaseAddress && ModBPIter.Key()ModuleFileName == (const char*)szFileName)) { TouchModuleMemory(ModBPIter.Key(),1); BREAK_POINT*pBP=pProcess->InsertCodeBP(ModBPIter.Key(),0,ModBPIter->State); if(pBP) { pBP->Name = ModBPIter->Name; pBP->Condition = ModBPIter->Condition; pBP->pModuleBP = &(*ModBPIter); } } } } for(CModuleLoadBPMap::IT Iter=gpSyser->m_SyserUI.m_ModuleLoadBPMap.Begin();Iter!=gpSyser->m_SyserUI.m_ModuleLoadBPMap.End();Iter++) {//BPloadϵ if(Iter->State==BP_STATE_ENABLE && TCmpModuleName(szFileName,(PCSTR)Iter.Key())) { BYTE TouchData; BREAK_POINT*pBP; CMemPEFile MemPEFile; ULPOS Address; if(MemPEFile.Open(BaseAddress,PE_OPEN_NO_IMPORT|PE_OPEN_NO_EXPORT,CImageFile::StaticReadRealMemory,NULL)) { if(bModuleTouched==false) { TouchModuleMemory(BaseAddress,ImageInfo->ImageSize); bModuleTouched = true; } Address = MemPEFile.m_PEHead.AddressOfEntryPoint+BaseAddress; pBP = pProcess->InsertCodeBP(Address,BP_TYPE_ONCE,BP_STATE_ENABLE); if(pBP) pBP->Name.Format("Module Entry point %s",szFileName); else ::DbgPrint("Syser : BPLoad fail to set BP at [%s]%08X\n",(PCSTR)pProcess->m_ProcName,Address); MemPEFile.Close(); } if(Iter->Type&BP_TYPE_ONCE) gpSyser->m_SyserUI.m_ModuleLoadBPMap.Remove(Iter); break; } } KeSetEvent(&gpSyser->m_ImageLoadSyncEvent, 0, FALSE); } // // // __declspec(naked) void SofticeDriverEntryExitCallBack() // { // __asm // { // PUSHAD // PUSHFD // } // if(gpSyser->InstallDebug()==false) // { // gpSyser->DbgPrint(2,296,WSTR("SYSER : InstallDebug==false")); // } // gSofticeDriverEntry=0; // __asm // { // POPFD // POPAD // PUSH SS:gSofticeDriverEntryReturnAddress // RET // } // } // // __declspec(naked) int CloseDebugRegisterMontior() // { // __asm // { // nop // mov eax,dr0 // ret // } // } // // void DisableDebugRegisterMontior() // { // __asm // { // PUSHFD // push eax // } // CloseDebugRegisterMontior(); // __asm // { // pop eax // POPFD // } // } // // // __declspec(naked)void OpenDebugRegisterMontior() // { // __asm // { // push eax // mov eax,dr7 // or eax,0x2000 // mov dr7,eax // pop eax // ret // } // } // void EnableDebugRegisterMontior() // { // __asm push eax // if(gpSyser->m_bDbgRegAccessMon) // { // __asm call OpenDebugRegisterMontior // } // __asm pop eax // } void EnableHardwaveBreakpoint() { Reg.DR[0] = SyserDR[0]; Reg.DR[1] = SyserDR[1]; Reg.DR[2] = SyserDR[2]; Reg.DR[3] = SyserDR[3]; Reg.DR[7] = SyserDR[7]; } // void DisableHardwaveBreakpoint() // { // __asm // { // PUSH EAX // XOR EAX,EAX // MOV DR7,EAX // POP EAX // } // } void ClearExceptionRegister() { DWORD CurrentCpuID; CurrentCpuID = GetCurrentCPULocalAPICID(); memset(&ExceptionReg[CurrentCpuID],0,sizeof(X86_REG_CONTEXT)); } /* * [ebp+1c] push eflags * [ebp+18] push cs * [ebp+14] push eip * [ebp+10] push error_code * [ebp+c ] push window_address * [ebp+8 ] push interrupt index * [ebp+4 ] push call_ret * [ebp+0 ] push ebp */ DWORD GetLocalAPICIDNew() { DWORD LocalApicID; DWORD *APICIDRegister = *(DWORD**)&gdwLocalAPICLineAddress; if(APICIDRegister==0) { //Beep(100,2000); return 0; } LocalApicID = APICIDRegister[0x20/sizeof(DWORD)]; LocalApicID>>=18; return LocalApicID; } DWORD GetCurrentCPULocalAPICIDNew() { DWORD LocalApicID,i; PKPCR FSBaseAddress; if(gCPUNumbers==1) return 0; LocalApicID = GetLocalAPICIDNew(); if(gCPULocalAPIC_ID[LocalApicID]<=0xf) return gCPULocalAPIC_ID[LocalApicID]; //FSBaseAddress =(PKPCR) GetSegmentBaseAddress((WORD)gSystemFSRegisterSelector); //for(i=0;im_bInitSuccess) // { // gExceptionCurrentCpuID = GetCurrentCPULocalAPICID(); // if(ExceptionTmpReg.EIP < gpSyser->m_SysInfo.m_SyserBase || ExceptionTmpReg.EIP >=gpSyser->m_SysInfo.m_SyserHighBase) // ExceptionReg[gExceptionCurrentCpuID]=ExceptionTmpReg; // } // __asm // { // lock btr dword ptr gExceptionSpinLock,0x1f // popfd // popad // mov esp,ebp // pop ebp // ret // } // } // bool bgCtrlUpActive=false; void OnPatchTranslateUsageAndPagesToI8042ScanCodes() { USB_HOOK_PARAM*pFuncParam=(USB_HOOK_PARAM*)(Reg.GeneReg[I_ESP]+4); if(pFuncParam->ChangedUsageList->UsagePage != HID_USAGE_PAGE_KEYBOARD) return; if(pFuncParam->ChangedUsageList->Usage == 0xe0||pFuncParam->ChangedUsageList->Usage == 0xe4) { if(pFuncParam->KeyAction==HidP_Keyboard_Break) { if(bgCtrlUpActive) { bgCtrlUpActive=false; gpSyser->m_pDebugger->m_bPrevPatchBP = false; gpSyser->Active(); return; } } else { bgCtrlUpActive=false; } } else { if(pFuncParam->ChangedUsageList->Usage == 0x45) { if(pFuncParam->ModifierState->LeftControl || pFuncParam->ModifierState->RightControl) bgCtrlUpActive=true; else bgCtrlUpActive=false; } else { bgCtrlUpActive=false; } } } void OnPatchMmUnmapViewOfSection() { IN PEPROCESS PEProcess; IN PVOID BaseAddress; gpSyser->m_pDebugger->ReadMemory(Reg.GeneReg[ESP_IDX]+8,&BaseAddress,sizeof(BaseAddress)); gpSyser->m_pDebugger->ReadMemory(Reg.GeneReg[ESP_IDX]+4,&PEProcess,sizeof(PEProcess)); DbgPrint("PEProcess = %08X , BaseAddress = %08X\n",PEProcess,BaseAddress); } void OnDebugSoftice() { DWORD *pTmpPointer; WISP_CHAR CommandName[64]; gpSyser->m_pDebugger->RemoveSingleStep(); TSPrintf(CommandName,WSTR("patch -d %08x"),gSofticeDriverEntry); RUNCMD(CommandName); if(gpSyser->UninstallDebug()==false) gpSyser->DbgPrint(0,364,WSTR("UninstallDebug == false")); pTmpPointer=(DWORD*)(Reg.GeneReg[ESP_IDX]); gSofticeDriverEntryReturnAddress=pTmpPointer[0]; pTmpPointer[0]=(DWORD)SyserSofticeDriverEntryExitCallBack; } ================================================ FILE: Project/Syser/Source/Services.h ================================================ #ifndef _SERVICES_H_ #define _SERVICES_H_ #ifdef __cplusplus extern "C" { #endif #define FPU_REGISTER_IMAGE_SIZE 108 extern X86_GATE_DECR gOldInterruptDescropterTable[0x100]; extern DWORD gOldInterruptProcAddress[0x100]; extern bool bGoToSoftice; extern bool gbSystemCrash; extern bool gbActive; extern DWORD dwTestSampleEntryPoint; extern DWORD gSofticeDriverEntry; extern DWORD gSofticeDriverEntryReturnAddress; extern DWORD OldESP; extern DWORD CurrentFpuImageIndex; extern DWORD gGenInterruptNumber; extern DWORD gGenInterruptOffset; extern DWORD SyserDR[8]; extern bool gbTemplateTraceFlag;//ʱһϵ extern BYTE* gpStackBufferBottom; extern BYTE* gpStackBufferTop; extern BYTE* gpStackBuffer; extern BYTE FpuRegisterImage[2][FPU_REGISTER_IMAGE_SIZE]; extern BYTE FxsaveBuffer[512+15]; extern WORD gSystemSSSegment; extern WORD gGenInterruptSelector; extern DWORD gPrevStepEIP;//ǰһεִе EIP ַҪһЩǰһִеĵ pushfd ôҪջе tf ־ //һ˳ʱǵ˳ġñΪ 0 extern bool gbBugCheckExExit; extern bool gbBugCheckExFlags; extern DWORD gpBugCheckExAddress; extern bool gbBugCheckExFirstByteIsCC; extern LONG gbLoadImage; VOID SyserLoadReg(VOID); VOID SyserSaveReg(VOID); //ʧ쳣 VOID SyserInt0bProc(VOID); // VOID SyserInt06Proc(VOID); // VOID SyserInt0cProc(VOID); //ж VOID SyserInt01Proc(VOID); //ж VOID SyserInt2dProc(VOID); //̴ void CreateProcessHookProc(IN HANDLE ParentId,IN HANDLE ProcessId,IN BOOLEAN Create); //̴߳ void CreateThreadHookProc(IN HANDLE ProcessId,IN HANDLE ThreadId,IN BOOLEAN Create); //ģװع void LoadImageHookProc(IN PUNICODE_STRING FullImageName,IN HANDLE ProcessId,IN PIMAGE_INFO ImageInfo); void DebugOut(void); void DebugOut1(DWORD dwHeight); void WispTimeInterrupeService(); bool InstallSwapContextHook(); void RemoveSwapContextHook(); void SaveFpuRegister(); void RestorFpuRegister(); VOID SyserDisableDebugRegisterMontior(VOID); VOID SyserEnableDebugRegisterMontior(VOID); void EnableHardwaveBreakpoint(); VOID SyserDisableHardwaveBreakpoint(VOID); VOID SyserSofticeDriverEntryExitCallBack(VOID); VOID SyserSaveExceptionRegister(VOID); void ClearExceptionRegister(); void OnPatchBugCheckEx(); void OnPatchMmUnmapViewOfSection(); void OnDebugSoftice(); void OnPatchTranslateUsageAndPagesToI8042ScanCodes(); int SyserCloseDebugRegisterMontior(VOID); VOID SyserOpenDebugRegisterMontior(VOID); //void PatchKeBugCheckEx(); typedef struct _KD_SYMBOLS_INFO { IN PVOID BaseOfDll; IN ULONG_PTR ProcessId; IN ULONG CheckSum; IN ULONG SizeOfImage; } KD_SYMBOLS_INFO, *PKD_SYMBOLS_INFO; void UnloadSystemModuleSymbols(PSTRING pModuleName,PKD_SYMBOLS_INFO pSymInfo); #ifdef __cplusplus }; // extern "C" #endif #endif ================================================ FILE: Project/Syser/Source/ShareCmd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "ShareCmd.h" #include "OSData.h" #include "ErrorCodeTable.h" #include "NtstatStr.h" #include "SystemIoctl.h" #include "BugCheckCode.h" #include "StringReference.h" //#include SYSER_CMD_ENTRY ShareCmdTable[]= { {WSTR("resize"), WSTR("resize syser windows"), window_resize_command}, {WSTR("lines"), WSTR("Change the number of lines for the syser display."), lines_command}, {WSTR("width"), WSTR("Set the number of display columns in the syser window."), width_command}, {WSTR("ioctl"), WSTR("Decodes the IOCTL and FSCTL codes into readable English."), ioctl_command}, {WSTR("ntstatus"), WSTR("Display header-defined mnemonics for NTSTATUS error codes."), ntstatus_command}, {WSTR("winerror"), WSTR("Display header-defined mnemonics for Win32 error codes."), errorcode_command}, {WSTR("bugcheckcode"), WSTR("Display Bug Check Code mnemonics for windows."), bugcheckcode_command}, {WSTR("wmsg"), WSTR("Display the names and message numbers of Windows messages."), wmsg_command}, {WSTR("zap"), WSTR("Replace an embedded INT 1 or INT 3 with a NOP instruction."), zap_command}, {WSTR("file"), WSTR("List source code file"), file_command}, {WSTR("watch"), WSTR("Add source code variable watch"), watch_source_command}, {WSTR("table"), WSTR("List source code module"), table_source_command}, {WSTR("crc16"), WSTR("Calculate crc16 value with memory region."), crc_command}, {WSTR("crc32"), WSTR("Calculate crc32 value with memory region."), crc_command}, {WSTR("crc16-ccitt"), WSTR("Calculate crc-ccitt value with memory region."), crc_command}, {NULL,NULL,NULL} }; typedef struct _IOCTL_STR { unsigned int TransferType:2; unsigned int FunctionCode:11; unsigned int Custom:1; unsigned int RequiredAccess:2; unsigned int DeviceType:15; unsigned int Common:1; }IOCTL_STR,*PIOCTL_STR; int table_source_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { WCHAR wFileName[512]; CSDSModuleMap::IT BeginIT,EndIT; int Count; BeginIT=gpSyser->m_SyserUI.m_SDSModuleMap.Begin(); EndIT=gpSyser->m_SyserUI.m_SDSModuleMap.End(); Count = gpSyser->m_SyserUI.m_SDSModuleMap.Count(); if(Count==0 || argc >2) { OUTPUT(WSTR("Error : not found symbol module.\n")); return 1; } if(argc==1) { for(;BeginIT!=EndIT;BeginIT++) { TStrCpy(wFileName,(*BeginIT).GetSymbolModuleName()); OUTPUT(WSTR("%s\n"),wFileName); } return 0; } for(;BeginIT!=EndIT;BeginIT++) { TStrCpy(wFileName,(*BeginIT).GetSymbolModuleName()); if(TStrICmp(wFileName,argv[1])==0) { gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.SetActiveModule(&(*BeginIT)); gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); break; } } return 0; } int watch_source_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { if(argc<2) { OUTPUT(WSTR("Error : watch variablename [variablename2 ..].\n")); return 1; } if(CUR_SOURCE_SDSMODULE==NULL) { OUTPUT(WSTR("Error : not found symbol module.\n")); return 1; } for(int i = 1; i < argc;i++) { #ifdef CODE_OS_NT_DRV if(gpSyser->m_SysInfo.m_bSNPass==false && SOURC_DEBUGE_FRAME_WND.m_SourceVariableWatchWnd.GetItemCount(NULL,false)>1) { SOURC_DEBUGE_FRAME_WND.m_SourceVariableWatchWnd.m_pWispBase->MsgBox(WSTR("Unregister version limited"),WSTR("Warning"),WISP_MB_OK); return 0; } #endif SOURC_DEBUGE_FRAME_WND.m_SourceVariableWatchWnd.AddWatchByName(argv[i],NULL); gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); } return 0; } int file_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { CSDSModule* pSDSModule; PSDSOURCEFILEID SourceID; char FileName[512]; char* pModuleName; WCHAR wFileName[512]; pSDSModule=CUR_SOURCE_SDSMODULE; if(pSDSModule==NULL) { OUTPUT(WSTR("Error : not found symbol module.\n")); return 1; } if(argc==1) { DWORD SourceFileNum; SourceID = pSDSModule->GetSourceFileList(&SourceFileNum); if(SourceID==NULL) { OUTPUT(WSTR("Error : not found source file.\n")); return 1; } for(DWORD i = 0; i < SourceFileNum;i++) { if(SourceID[i].FileLen==0) continue; pModuleName=TStrRChr(SourceID[i].uName.Name,'\\'); if(pModuleName) { pModuleName++; TStrCpy(wFileName,pModuleName); OUTPUT(WSTR("%s\n"),wFileName); } } return 0; } for(int i = 1; i < argc;i++) { TStrCpy(FileName,argv[i]); SourceID = pSDSModule->GetSourceFileByName(FileName); if(SourceID==NULL) continue; gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); SOURC_DEBUGE_FRAME_WND.ShowSourceFile(pSDSModule,SourceID->FileID,0); gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); } return 0; } int ioctl_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { char* DeviceTypeName[]={ NULL, "BEEP", "CD_ROM", "CD_ROM_FILE_SYSTEM", "CONTROLLER", "DATALINK", "DFS", "DISK", "DISK_FILE_SYSTEM", "FILE_SYSTEM", "INPORT_PORT", "KEYBOARD", "MAILSLOT", "MIDI_IN", "MIDI_OUT", "MOUSE", "MULTI_UNC_PROVIDER", "NAMED_PIPE", "NETWORK", "NETWORK_BROWSER", "NETWORK_FILE_SYSTEM", "NULL", "PARALLEL_PORT", "PHYSICAL_NETCARD", "PRINTER", "SCANNER", "SERIAL_MOUSE_PORT", "SERIAL_PORT", "SCREEN", "SOUND", "STREAMS", "TAPE", "TAPE_FILE_SYSTEM", "TRANSPORT", "UNKNOWN", "VIDEO", "VIRTUAL_DISK", "WAVE_IN", "WAVE_OUT", "8042_PORT", "NETWORK_REDIRECTOR", "BATTERY", "BUS_EXTENDER", "MODEM", "VDM", "MASS_STORAGE", "SMB", "KS", "CHANGER", "SMARTCARD", "ACPI", "DVD", "FULLSCREEN_VIDEO", "DFS_FILE_SYSTEM", "DFS_VOLUME", "SERENUM", "TERMSRV", "KSEC", "FIPS", "INFINIBAND", }; DWORD ControlCode; int i; bool bTitle=false; WCHAR DeviceTypeNameBuf[50]; PIOCTL_STR pIoctl; int k; if(argc==1) { for( k =0; gSysIoctl[k].Name;k++) { OUTPUT(WSTR("%08X "),gSysIoctl[k].Code); TStrCpy(DeviceTypeNameBuf,gSysIoctl[k].Name); OUTPUT(WSTR("FILE_DEVICE_")); OUTPUT(DeviceTypeNameBuf); OUTPUT(WSTR("\n")); } //OUTPUT(WSTR("IOCTL ctl-code\n")); return 1; } pIoctl = (PIOCTL_STR)&ControlCode; for(i = 1; i < argc; i++) { if(CALCEXP(argv[i],&ControlCode)==false) { char tmpname[128]="FILE_DEVICE_"; for(k = 0; gSysIoctl[k].Name;k++) { strcpy(tmpname+12,gSysIoctl[k].Name); if(TStrIStr(tmpname,argv[i])) { ControlCode=gSysIoctl[k].Code; goto local_001; } } continue; } local_001: OUTPUT(WSTR(" Control Code: %08x "),ControlCode); for(k =0; gSysIoctl[k].Name;k++) { if(gSysIoctl[k].Code==ControlCode) { TStrCpy(DeviceTypeNameBuf,gSysIoctl[k].Name); OUTPUT(DeviceTypeNameBuf); break; } } OUTPUT(WSTR("\n")); if(pIoctl->Common==0) { if(pIoctl->DeviceType>0 && pIoctl->DeviceType<=0x3b) { TStrCpy(DeviceTypeNameBuf,"FILE_DEVICE_"); TStrCat(DeviceTypeNameBuf,DeviceTypeName[pIoctl->DeviceType]); OUTPUT(WSTR(" Device Type: %s"),DeviceTypeNameBuf); }else OUTPUT(WSTR(" Device Type: %x(Microsoft reserved)"),pIoctl->DeviceType); }else { OUTPUT(WSTR(" Device Type: %x(vendor-assigned) "),pIoctl->DeviceType|0x8000); } OUTPUT(WSTR("\n Function: ")); if(pIoctl->Custom==0) { OUTPUT(WSTR("0x%x (%d)(Microsoft Reserved) "),pIoctl->FunctionCode,pIoctl->FunctionCode); }else { OUTPUT(WSTR("0x%x (%d) "),pIoctl->FunctionCode|0x800,pIoctl->FunctionCode|0x800); } OUTPUT(WSTR("\n Method: ")); switch(pIoctl->TransferType) { case METHOD_BUFFERED: OUTPUT(WSTR("METHOD_BUFFERED ")); break; case METHOD_IN_DIRECT: OUTPUT(WSTR("METHOD_IN_DIRECT ")); break; case METHOD_OUT_DIRECT: OUTPUT(WSTR("METHOD_OUT_DIRECT ")); break; case METHOD_NEITHER: OUTPUT(WSTR("METHOD_NEITHER ")); break; } OUTPUT(WSTR("\n Access: ")); switch(pIoctl->RequiredAccess) { case FILE_ANY_ACCESS: OUTPUT(WSTR("FILE_ANY_ACCESS ")); break; case FILE_READ_ACCESS: OUTPUT(WSTR("FILE_READ_ACCESS ")); break; case FILE_WRITE_ACCESS: OUTPUT(WSTR("FILE_WRITE_ACCESS ")); break; case FILE_WRITE_ACCESS|FILE_READ_ACCESS: OUTPUT(WSTR("FILE_READ_ACCESS|FILE_WRITE_ACCESS ")); break; } OUTPUT(WSTR("\n")); } return 1; } int wmsg_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int i,j; DWORD dwIndex,Count=0; WCHAR Buf[256]; if(argc==1) { for(i = 0; stMsgList[i].MsgName; i++) { Count++; TStrCpy(Buf,stMsgList[i].MsgName); OUTPUT(WSTR("%04x %s\n"),stMsgList[i].MsgNumber,Buf); } OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } for(i = 1; i < argc;i++) { if(CALCEXP(argv[i],&dwIndex)) { for(j = 0; stMsgList[j].MsgName; j++) { if(stMsgList[j].MsgNumber==dwIndex) { TStrCpy(Buf,stMsgList[j].MsgName); OUTPUT(WSTR("%04x %%s\n"),stMsgList[j].MsgNumber,Buf); Count++; //break; } } } else { for(j = 0; stMsgList[j].MsgName; j++) { if(TStrNICmp(argv[i], stMsgList[j].MsgName,TStrLen(argv[i]))==0) { TStrCpy(Buf,stMsgList[j].MsgName); OUTPUT(WSTR("%%04x %<1>%s\n"),stMsgList[j].MsgNumber,Buf); Count++; } } } } if(Count) OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } int zap_command(int argc, WCHAR* argv[],PCWSTR szCommandLine,CSyser *pSyser) { WORD wOrgInstr; if(argc != 1) return -1; X86_CPU_REG_PTR pReg; pSyser->m_pDebugger->GetX86RegPtr(&pReg); pSyser->m_pDebugger->ReadMemory(*pReg.pEIP-2,&wOrgInstr,2); if(wOrgInstr==0x1cd || wOrgInstr==0x3cd) { wOrgInstr=0x9090; pSyser->m_pDebugger->WriteMemory(*pReg.pEIP-2,&wOrgInstr,2); } else { if((wOrgInstr&0xff00)==0xcc00 ||(wOrgInstr&0xff00)==0xf100) { wOrgInstr=0x9090; pSyser->m_pDebugger->WriteMemory(*pReg.pEIP-1,&wOrgInstr,1); }else { OUTPUT(WSTR("NO embedded INT 1 or INT 3\n")); } } UPDATE_CONTEXT(); return 0; } int errorcode_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int i,j; DWORD dwIndex,Count=0; WCHAR Buf[400]; if(argc==1) { for(i = 0; ErrorCodes[i].Name; i++) { Count++; TStrCpy(Buf,ErrorCodes[i].Name); OUTPUT(WSTR("0X%08x %s\n"),ErrorCodes[i].Code,Buf); //TStrCpy(Buf,ErrorCodes[i].Description); //OUTPUT(WSTR("%s\n"),Buf); } OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } for(i = 1; i < argc;i++) { if(CALCEXP(argv[i],&dwIndex)) { for(j = 0; ErrorCodes[j].Name; j++) { if(ErrorCodes[j].Code==dwIndex) { TStrCpy(Buf,ErrorCodes[j].Name); OUTPUT(WSTR("0X%08x %%s "),ErrorCodes[j].Code,Buf); TStrCpy(Buf,ErrorCodes[j].Description); OUTPUT(WSTR("\n"),Buf); Count++; //break; } } } else { for(j = 0; ErrorCodes[j].Name; j++) { if(TStrNICmp(argv[i], ErrorCodes[j].Name,TStrLen(argv[i]))==0) { TStrCpy(Buf,ErrorCodes[j].Name); OUTPUT(WSTR("%0X%08x %<1>%s "),ErrorCodes[j].Code,Buf); TStrCpy(Buf,ErrorCodes[j].Description); OUTPUT(WSTR("\n"),Buf); Count++; } } } } if(Count) OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } int bugcheckcode_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int i,j; DWORD dwIndex,Count=0; WCHAR Buf[400]; if(argc==1) { for(i = 0; gBugCheckCode[i].Name; i++) { Count++; TStrCpy(Buf,gBugCheckCode[i].Name); OUTPUT(WSTR("0X%08x %s\n"),gBugCheckCode[i].BucCheckCode,Buf); } OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } for(i = 1; i < argc;i++) { if(CALCEXP(argv[i],&dwIndex)) { for(j = 0; gBugCheckCode[j].Name; j++) { if(gBugCheckCode[j].BucCheckCode==dwIndex) { TStrCpy(Buf,gBugCheckCode[j].Name); OUTPUT(WSTR("0X%08x %%s "),gBugCheckCode[j].BucCheckCode,Buf); TStrCpy(Buf,gBugCheckCode[j].Name); OUTPUT(WSTR("\n"),Buf); Count++; //break; } } } else { for(j = 0; gBugCheckCode[j].Name; j++) { if(TStrNICmp(argv[i], gBugCheckCode[j].Name,TStrLen(argv[i]))==0) { TStrCpy(Buf,gBugCheckCode[j].Name); OUTPUT(WSTR("%0X%08x %<1>%s "),gBugCheckCode[j].BucCheckCode,Buf); TStrCpy(Buf,gBugCheckCode[j].Name); OUTPUT(WSTR("\n"),Buf); Count++; } } } } if(Count) OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } int ntstatus_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int i,j; DWORD dwIndex,Count=0; WCHAR Buf[400]; if(argc==1) { for(i = 0; gNtstatusTable[i].Name; i++) { Count++; TStrCpy(Buf,gNtstatusTable[i].Name); OUTPUT(WSTR("0X%08x %s\n"),gNtstatusTable[i].Code,Buf); //TStrCpy(Buf,ErrorCodes[i].Description); //OUTPUT(WSTR("%s\n"),Buf); } OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } for(i = 1; i < argc;i++) { if(CALCEXP(argv[i],&dwIndex)) { for(j = 0; gNtstatusTable[j].Name; j++) { if(gNtstatusTable[j].Code==dwIndex) { TStrCpy(Buf,gNtstatusTable[j].Name); OUTPUT(WSTR("0X%08x %%s "),gNtstatusTable[j].Code,Buf); TStrCpy(Buf,gNtstatusTable[j].Description); OUTPUT(WSTR("\n"),Buf); Count++; //break; } } } else { for(j = 0; gNtstatusTable[j].Name; j++) { if(TStrNICmp(argv[i], gNtstatusTable[j].Name,TStrLen(argv[i]))==0) { TStrCpy(Buf,gNtstatusTable[j].Name); OUTPUT(WSTR("%0X%08x %<1>%s "),gNtstatusTable[j].Code,Buf); TStrCpy(Buf,gNtstatusTable[j].Description); OUTPUT(WSTR("\n"),Buf); Count++; } } } } if(Count) OUTPUT(WSTR("totals (%%d%<1>)\n"),Count); return 0; } int lines_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int Height,Lines,Width; if(argc==1) { OUTPUT(WSTR("Usage : lines number\n")); return 0; }else if(argc!=2||USDecStrToNum(argv[1],&Lines)==false) { OUTPUT(WSTR("Usage : lines number\n")); return 0; } Width=gpSyser->m_MainFrame.m_WindowRect.cx; Height = gpSyser->m_FontList[WISP_FONT_6X12].m_Height * Lines; if(Height>=gpSyser->m_RealFrameBuffer.Height) Height=gpSyser->m_RealFrameBuffer.Height; gpSyser->m_MainFrame.Resize(Width,Height); return 0; } int width_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { int Height,Count,Width; if(argc==1) { OUTPUT(WSTR("Usage : width number\n")); return 0; }else if(argc!=2||USDecStrToNum(argv[1],&Count)==false) { OUTPUT(WSTR("Usage : width number\n")); return 0; } Height=gpSyser->m_MainFrame.m_WindowRect.cy; Width = gpSyser->m_FontList[WISP_FONT_6X12].m_Width * Count; if(Width>=gpSyser->m_RealFrameBuffer.Width) Width=gpSyser->m_RealFrameBuffer.Width; gpSyser->m_MainFrame.Resize(Width,Height); return 0; } int window_resize_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { int Width,Height; if(argc == 1) { Width = gpSyser->m_RealFrameBuffer.Width; Height = gpSyser->m_RealFrameBuffer.Height; } else if(argc!=3 || USDecStrToNum(argv[1],&Width) == false || USDecStrToNum(argv[2],&Height) == false) { OUTPUT(WSTR("Usage : ws width height\n")); return 1; } if(Width > 2048 || Height > 1536) { OUTPUT(WSTR("Error : window is too larger !\n")); return 1; } if(Width < 320 || Height < 200) { OUTPUT(WSTR("Error : window is too smaller !\n")); return 1; } #ifdef CODE_OS_NT_DRV gpSyser->RestoreScreen(); gpSyser->m_MainFrame.Resize(Width,Height); gpSyser->CenterScreen(); gpSyser->BackupScreen(); #else gpSyser->m_MainFrame.Resize(Width,Height); #endif return 0; } int crc_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { unsigned int crc=0; ULONG length; ULONG Address; BYTE value; if(argc != 3) { OUTPUT(WSTR("Usage : %s address size\n"),argv[0]); return 1; } if(!CALCEXP(argv[1],&Address)) { OUTPUT(WSTR("Usage : %s address size\n"),argv[0]); return 1; } if(!CALCEXP(argv[2],&length)) { OUTPUT(WSTR("Usage : %s address size\n"),argv[0]); return 1; } if(TStrICmp(argv[0],"crc16-ccitt")==0) { crc=0xffff; while( length-- ) { if(pSyser->m_pDebugger->ReadMemory(Address,&value,1)==0) { OUTPUT(WSTR("Syser : read memory failed, Address is %08x!\n"),Address); break; } crc = ( crc << 8 ) ^ crc16table_ccitt[ (( crc >> 8 ) ^ value)&0xff ]; Address++; } OUTPUT(WSTR("CRC16/ccitt %04X\n"),crc&0xffff); } else if(TStrICmp(argv[0],"crc16")==0) { while (length--) { if(pSyser->m_pDebugger->ReadMemory(Address,&value,1)==0) { OUTPUT(WSTR("Syser : read memory failed, Address is %08x!\n"),Address); break; } crc =(crc >> 8) ^ crc16_table[(crc ^ value) & 0xff] ; Address++; } OUTPUT(WSTR("CRC16 %04X\n"),crc); } else if(TStrICmp(argv[0],"crc32")==0) { crc=0xffffffff; while(length--) { if(pSyser->m_pDebugger->ReadMemory(Address,&value,1)==0) { OUTPUT(WSTR("Syser : read memory failed, Address is %08x!\n"),Address); break; } crc = (crc >> 8) ^ crc32_table[(crc & 0xFF) ^ value]; Address++; } crc^=0xffffffff; OUTPUT(WSTR("CRC32 %08X\n"),crc); } return 0; } ================================================ FILE: Project/Syser/Source/ShareCmd.h ================================================ #ifndef _SHARECMD_H_ #define _SHARECMD_H_ extern SYSER_CMD_ENTRY ShareCmdTable[]; DECLARE_SYSER_CMD(wmsg_command); DECLARE_SYSER_CMD(zap_command); DECLARE_SYSER_CMD(errorcode_command); DECLARE_SYSER_CMD(ntstatus_command); DECLARE_SYSER_CMD(ioctl_command); DECLARE_SYSER_CMD(lines_command); DECLARE_SYSER_CMD(width_command); DECLARE_SYSER_CMD(window_resize_command); DECLARE_SYSER_CMD(bugcheckcode_command); DECLARE_SYSER_CMD(file_command); DECLARE_SYSER_CMD(watch_source_command); DECLARE_SYSER_CMD(table_source_command); DECLARE_SYSER_CMD(crc_command); #endif //_SHARECMD_H_ ================================================ FILE: Project/Syser/Source/SourceCodeWatchList.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SourceCodeWatchList.h" WISP_MENU_RES_ITEM SourceWatchMenu[]= { {WSTR("Add"),EVENT_ID_ADD,8*16}, {WSTR("Remove"),EVENT_ID_REMOVE,12*16+10}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CSourceCodeWatchList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CSourceCodeWatchList) WISP_MSG_EVENT_MAP(EVENT_ID_ADD,OnEventAdd); WISP_MSG_EVENT_MAP(EVENT_ID_REMOVE,OnEventRemove); WISP_MSG_EVENT_MAP_END CSourceCodeWatchList::CSourceCodeWatchList(void) { m_hLastItem = NULL; } CSourceCodeWatchList::~CSourceCodeWatchList(void) { } bool CSourceCodeWatchList::OnCreate(IN WISP_MSG*pMsg) { SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_Style|=WISP_WLS_VERT_LINE; m_PopupMenu.CreatePopupMenu(SourceWatchMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hRemoveItem = m_PopupMenu.GetItem(EVENT_ID_REMOVE); InsertColumn(WISP_STR("Expression[F2]"),90,WISP_WLCS_EDITABLE); InsertColumn(WISP_STR("Value"),70); InsertColumn(WISP_STR("Context"),60); ResetContext(); return true; } bool CSourceCodeWatchList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CSourceCodeWatchList::OnEventAdd(IN WISP_MSG*pMsg) { BeginEditItem(m_hLastItem,0); return true; } bool CSourceCodeWatchList::OnEventRemove(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem && hItem!=m_hLastItem) RemoveItem(hItem); return true; } bool CSourceCodeWatchList::OnKeyEvent(IN WISP_MSG*pMsg) { HANDLE hItem; if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return true; if(pMsg->KeyEvent.bKeyDown==false) { if(pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) { hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); m_PopupMenu.EnableItem(m_hRemoveItem,hItem!=NULL && hItem!=m_hLastItem); m_PopupMenu.Popup(); } else if(pMsg->KeyEvent.KeyType == WISP_VK_F2) { hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem!=NULL) { BeginEditItem(hItem,0); } } } return true; } bool CSourceCodeWatchList::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) return false; return true; } bool CSourceCodeWatchList::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(hItem==m_hLastItem) { if(String.Length()) { m_hLastItem = InsertItem((WISP_PCSTR)NULL); return true; } return false; } if(String.Length()==0) { RemoveItem(hItem); return false; } return true; } void CSourceCodeWatchList::ItemChangedNotify(HANDLE hItem,int Col,CWispString&String) { if(Col==0) CalcLineExp(hItem); } void CSourceCodeWatchList::UpdateContext() { HANDLE hItem=GetItem(0); while(hItem) { if(hItem==m_hLastItem) break; CalcLineExp(hItem); hItem = GetNextItem(hItem); } UpdateClient(); } void CSourceCodeWatchList::ResetContext() { ClearChildItem(); m_hLastItem = InsertItem((WISP_PCSTR)NULL); SelectItem(m_hLastItem); } void CSourceCodeWatchList::CalcLineExp(HANDLE hItem) { CHAR szBuffer[256]; WCHAR szSymbol[256]; PCWSTR pszSym; DWORD Result; pszSym = NULL; if(CALCEXP(GetItemText(hItem),&Result)) { SetItemNum(hItem,1,Result); if(GETSYM(Result,szBuffer)) { TStrCpy(szSymbol,szBuffer); pszSym = szSymbol; } } else SetItemText(hItem,1,WSTR("????????")); SetItemText(hItem,2,pszSym); } ================================================ FILE: Project/Syser/Source/SourceCodeWatchList.h ================================================ #ifndef _SOURCE_CODE_WATCH_LIST_H_ #define _SOURCE_CODE_WATCH_LIST_H_ class CSourceCodeWatchList : public CWispList { public: CSourceCodeWatchList(void); virtual ~CSourceCodeWatchList(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventAdd) DECLARE_WISP_MSG_EVENT(OnEventRemove) bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void ItemChangedNotify(HANDLE hItem,int Col,CWispString&String); void UpdateContext(); void ResetContext(); private: HANDLE m_hLastItem; void CalcLineExp(HANDLE hItem); CWispMenu m_PopupMenu; HANDLE m_hRemoveItem; }; #endif ================================================ FILE: Project/Syser/Source/SourceCodeWnd.cpp ================================================ #include "StdAfx.h" #include "SyserSymAnalyzer.h" #include "SourceCodeWnd.h" #include "Syser.h" #include "Lex2.h" WISP_MENU_RES_ITEM SourceCodeWndMenu[]= { {WSTR("Insert/Remove Breakpoint F9"), EVENT_ID_TOGGLE_BP, 15*16+3}, {WSTR("Enable/Disable Breakpoint"), EVENT_ID_TOGGLE_BP_STATE, 15*16+4}, {WSTR("Toggle BookMark Ctrl+K"), EVENT_ID_BOOKMARK_TOGGLE, 13*16}, WISP_MENU_RES_SEPARATOR, {WSTR("Go To Line Ctrl+G"), EVENT_ID_GOTOLINE, 16*16+11}, {WSTR("Go To Here F7"), EVENT_ID_GOTO, 16*16+13}, //{WSTR("Set EIP To Here"), EVENT_ID_SET_EIP, 16*16+15},//ں˵пŪƼ WISP_MENU_RES_SEPARATOR, {WSTR("Add Watch"), EVENT_ID_ADDWATCH, 16*16+12}, WISP_MENU_RES_SEPARATOR, {WSTR("Expansion All"), EVENT_ID_EXPANSION, 16*16+9}, {WSTR("Collapse All"), EVENT_ID_COLLAPSE, 16*16+10}, WISP_MENU_RES_END }; bool CSrcTXTFile::Open(PCSTR FileName,HANDLE*pHandleOpen,UINT Style) { ULPOS nBegin,nEnd,nOffset; char*FileBuffer,*szLine; if(CImageFile::Open(FileName,pHandleOpen)==false) return false; FileBuffer=new char[m_FileSize+1]; FileBuffer[m_FileSize]=0; ReadFile(0,FileBuffer,m_FileSize); nBegin=nOffset=0; m_TxtStyle=Style; while(nOffsetSetColorKey(0); return true; } bool CSourceCodeWnd::OnDestroy(IN WISP_MSG* pMsg) { if(m_FileOpen) ClearChildItem(); m_PopupMenu.Destroy(); return true; } void CSourceCodeWnd::PopupMenu(IN WISP_MSG*pMsg) { if(GetContextString()==false) m_PopupMenu.DisableItem(EVENT_ID_ADDWATCH); else m_PopupMenu.EnableItem(EVENT_ID_ADDWATCH); m_PopupMenu.Popup(); } void CSourceCodeWnd::ItemRClickNotify(HANDLE hItem,int Col) { switch(Col) { case 0: OnEventToggleBookMarks(NULL); break; } } void CSourceCodeWnd::ItemClickNotify(HANDLE hItem,int Col) { switch(Col) { case 0: OnEventToggleBreakPoint(NULL); break; } } bool CSourceCodeWnd::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { WCHAR szBuffer[512]; if(IsColorString(String)) { TStrCpyLimit(szBuffer,GetColorString(String),512); GetItemEditString()=szBuffer; } return true; } bool CSourceCodeWnd::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { return false; } bool CSourceCodeWnd::OnUpdateClient(IN WISP_MSG*pMsg) { UINT Mark; WISP_RECT rc; CWispList::OnUpdateClient(pMsg); rc.x=0; if(m_ColumnList.Count()) rc.x+=m_ColumnList.Begin()->Width-20; rc.cx=16,rc.cy=16; rc.y=m_TitleHeight; CItemList::IT ItemIter = m_CurItemIter; if(ItemIter!=m_RootItem.ChildItemList.End()) { for(int iLine=0; iLineGetDIB(1)); if(Mark&CV_MARK_EIP) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(0)); if(Mark&CV_MARK_BPX) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(2)); else if(Mark&CV_MARK_DISABLED_BPX) m_ClientDC.DrawDIB(&rc,m_StateDIBList->GetDIB(3)); rc.y+=m_ButtonSize.cy; if(GetNextLineItem(ItemIter)==false) break; } } return false; } bool CSourceCodeWnd::OnEventCollapse(IN WISP_MSG* pMsg) { HANDLE hItem,hSubItem,hFirstItem,hParentItem,hRootItem; hItem = GetItem(0); hRootItem=GetParentItem(hItem); hFirstItem=GetScrStartItem(); hParentItem = GetParentItem(hFirstItem); if(hRootItem != hParentItem) EnableVisible(hParentItem,0); #if 1 while(hItem) { hSubItem = GetItem(0,hItem); if(hSubItem) UnexpandItem(hItem); hItem=GetNextItem(hItem); } #endif Update(); return true; } bool CSourceCodeWnd::OnEventExpansion(IN WISP_MSG* pMsg) { HANDLE hItem,hSubItem; hItem = GetItem(0); while(hItem) { hSubItem = GetItem(0,hItem); if(hSubItem) ExpandItem(hItem); hItem=GetNextItem(hItem); } Update(); return true; } bool CSourceCodeWnd::OnEventAddWatch(IN WISP_MSG* pMsg) { SOURCE_WATCH_WND.AddWatchByName(m_ContextString); return true; } bool CSourceCodeWnd::GetContextString() { char NameBuffer[512]; WISP_CHAR szTip[512]; HANDLE hItem; WISP_RECT CellRect; WISP_PCSTR pStr; bool bRet=true,bPreId=false; int RetValue,LineLen,Col=1,PreState,CurrentIndex,BeginIdOffset=0,FirstIdPos,x,offset; CStrA OutBuffer; WISP_COLOR_CHAR*pCStr; char* IdString; char Buf[512]; CItemList::IT ListIT; int NameBufferLen=sizeof(NameBuffer); PSDUDTDATAITEM pDataItem; DWORD ThisOffset=0,CurrentLineNum; m_ContextString.Empty(); m_FullContextString.Empty(); bool bIsFunc=false; PointToItem(m_RightButtonPoint,ListIT); hItem = &*ListIT; if(hItem==NULL) return true; GetItemCellRect(hItem,Col,&CellRect); if(m_RightButtonPoint.x < CellRect.x || m_RightButtonPoint.x > CellRect.x + CellRect.cx) return false; TStrCpy(szTip,""); CurrentLineNum = (DWORD)GetItemData(hItem,1); x = m_RightButtonPoint.x-CellRect.x - m_TextMargin; pStr=GetItemText(hItem,Col); offset = m_ClientDC.PixelOffToTextOff(pStr,x); if(offset==-1) return false; pCStr = (WISP_COLOR_CHAR*)GetColorString(pStr); TStrCpy(Buf,pCStr); myinputptr=Buf; LineLen=TStrLen(Buf); myinputlim=myinputptr+LineLen; CurrentIndex=0; RetValue=0; yyrestart(0); PreState=0; FirstIdPos = 0; while(RetValue=yylex()) { switch(RetValue) { case LEX_DOT: PreState=RetValue; break; case LEX_ARROW: PreState=RetValue; break; case LEX_IDENTIFIER: if(FirstIdPos==0) { FirstIdPos=CurrentIndex; } bPreId=true; PreState=RetValue; break; default: bPreId=false; FirstIdPos=0; PreState=RetValue; } if(offset>=CurrentIndex&&offsetGetDataSymbolByString(IdString,m_CurrentFileID,CurrentLineNum,&bIsFunc,&ThisOffset); if(pDataItem==NULL) return false; m_FullContextString=IdString; OutBuffer.Empty(); if(!bIsFunc) { OutBuffer = m_pSDSModule->GetSDSymbolName(pDataItem->TypeId,NameBuffer,&NameBufferLen); OutBuffer+=" "; if(pDataItem->TypeIdParentUDT) { PSDTYPE_INFILE pType = m_pSDSModule->GetTypeSymbol(pDataItem->TypeIdParentUDT); if(pType) { if(pType->Type==SD_STRUCT||pType->Type==SD_CLASS||pType->Type==SD_UNION) { OutBuffer+= m_pSDSModule->GetSDSymbolName(pDataItem->TypeIdParentUDT,NameBuffer,&NameBufferLen); OutBuffer+="::"; } } } OutBuffer+=pDataItem->uName.Name; } else { bRet=false; goto quit_001; } TStrCpy(szTip,(char*)OutBuffer); bRet=true; goto quit_001; } PSDTYPE_INFILE pType; pType=m_pSDSModule->GetSymbolByName(yytext); if(pType==NULL) { if(GetVariable(yytext,hItem,OutBuffer)==true) { TStrCpy(szTip,(char*)OutBuffer); bRet=true; }else bRet=false; } goto quit_001; } CurrentIndex+=yyleng; } return false; quit_001: if(bRet) m_ContextString=yytext; return bRet; } bool CSourceCodeWnd::OnEventGoToLine(IN WISP_MSG* pMsg) { int nLine; HANDLE hItem; CWispString szLine; WCHAR szStatic[64]; TSPrintf(szStatic,WSTR("Line number (1 - %d): "),m_TxtFileLineNumber-1); hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) szLine=WSTR("1"); else szLine.Format(WSTR("%d"),(int)GetItemData(hItem,1)); if(GetInputText(szLine,szStatic)) { if(USDecStrToNum((PCWSTR)szLine,&nLine) && nLine>=1) { hItem = GetItem(nLine-1); if(hItem) { EnableVisible(hItem); SelectItem(hItem); Focus(); } } } return true; } ULPOS CSourceCodeWnd::GetItemAddress(HANDLE hItem) { ULPOS Address; Address = (ULPOS)GetItemData(hItem,1); if(GetItemLevel(hItem)==0) { //ѡԴϣAddressΪк LINENUMBERMAP::IT FindIT=m_LineMap.Find(Address); if(FindIT==m_LineMap.End()) { PSDLINE pLine = m_pSDSModule->GetContiguityLineBySourceFileID(m_CurrentFileID,Address); if(pLine) Address=pLine->Rva; else Address=0; } else Address = (*FindIT).pLine->Rva; } return Address; } bool CSourceCodeWnd::OnKeyEvent(IN WISP_MSG* pMsg) { int Pos; if(pMsg->KeyEvent.bKeyDown) { switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: m_RightButtonPoint = pMsg->MsgMouseWndPT; m_RightButtonPoint = pMsg->MsgMouseCltPT; PointToItem(pMsg->MsgMouseCltPT,&Pos); if(Pos>LI_POS_CELL_AREA_START && PosGetSymbolByName(yytext); if(pType) { switch(pType->Type) { case SD_CLASS: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_CLASS_NAME,0); break; case SD_STRUCT: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_STRUCT_NAME,0); break; case SD_UNION: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_UNION_NAME,0); break; case SD_TYPEDEF: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_TYPEDEF_NAME,0); break; default: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_IDENTIFIER,0); break; } } else { pFunc = m_pSDSModule->GetFunctionSymbolByName(yytext); if(pFunc) ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_FUNCTION_NAME,0); else ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_IDENTIFIER,0); } } break; case LEX_ELLIPSIS: case LEX_STRINGliteral: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_STRING,0); break; case LEX_INTEGERconstant: case LEX_OCTALconstant: case LEX_HEXconstant: case LEX_FLOATINGconstant: case LEX_CHARACTERconstant: ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_NUMERICAL,0); break; default: if(RetValue>=LEX___ABSTRACT && RetValue<=LEX_WHILE) ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_KEYWORD,0); else if(RetValue>=LEX_PRE_DEFINE && RetValue<=LEX_PRE_GRAMA) ColorStrCat(szColorBuffer,yytext,CPRE_KEYWORD,0); else if(RetValue>=LEX_LP && RetValue<=LEX_ELLIPSIS) ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_OPERATION,0); else ColorStrCat(szColorBuffer,yytext,CPLUSPLUS_UNKNOW,0); } } if(m_CommentState) { if(Count==0) { ColorStrCpy(szColorBuffer,SourceCodeLine,CPLUSPLUS_COMMENT_BLOCK,0); } } } void CSourceCodeWnd::LoadSourceFile(char* Buffer,DWORD size,PSDSOURCEFILEID pSDSourceFileId) { HANDLE hItem; ULPOS ModuleBase,Address,TmpRva; ULSIZE ModuleSize,Count; BYTE CodeBuffer[50]; char szBuffer[256],*Name; WISP_COLOR_CHAR szColorBuffer[256]; WCHAR LineNumberStr[20],*wNameBuf; int i,NameLen,CurrentLineLen,InstrLength; PSDLINE pLine; LINENUMBERMAP::IT FindIT; int CurLen=1000; m_pCodeDoc=&gpSyser->m_SyserUI.m_CodeDoc; if(m_FileOpen) return; CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule) { ModuleBase = pDbgModule->m_ModuleBase; ModuleSize = pDbgModule->m_ModuleSize; } else { ModuleBase = 0; ModuleSize = 0; } m_CurrentFileID=pSDSourceFileId->FileID; m_FileOpen=true; m_TxtFile.Create((ULSIZE)size,(BYTE*)Buffer,false); m_TxtFile.Open(NULL,NULL,TXTFILE_OPEN_CONTAIN_NEWLINE|TXTFILE_OPEN_CONTAIN_LINEOFFSET); m_TxtFileLineNumber = m_TxtFile.m_StrList.Count(); TTXTStrList::IT BeginIT,EndIT; BeginIT=m_TxtFile.m_StrList.Begin(); EndIT=m_TxtFile.m_StrList.End(); wNameBuf=new WCHAR[CurLen]; Count = m_pSDSModule->GetLineBySourceFileID(m_CurrentFileID,&m_LineMap); for(i=1;BeginIT!=EndIT;BeginIT++,i++) { Name = *BeginIT; SyntaxColor(Name,szColorBuffer); NameLen=TStrLen(Name)+1; if(NameLen>CurLen) { delete []wNameBuf; CurLen = NameLen; wNameBuf=new WCHAR[CurLen]; } NameLen = AnsiToUnicode(Name,wNameBuf,NameLen); for(int p=0;pStatement) { CurrentLineLen = pLine->Len; Address = pLine->Rva+ModuleBase; TmpRva = pLine->Rva; while(CurrentLineLen>0) { TSPrintf(szBuffer,"%08x ",Address); InstrLength = m_pCodeDoc->InstrLen(Address); if(InstrLength==0) InstrLength=1; m_pCodeDoc->ReadImage(Address,CodeBuffer,InstrLength); ColorStrCpy(szColorBuffer,szBuffer,COLOR_ADDRESS,COLOR_BK); ColorDasm(ModuleBase,Address,MAX_INSTR_LEN,&szColorBuffer[14]); HANDLE hSubItem = InsertItem(WSTR(""),hItem); SetItemData(hSubItem,0,CV_MARK_NULL); SetItemColorText(hSubItem,1,szColorBuffer); SetItemData(hSubItem,1,TmpRva); CurrentLineLen-=InstrLength; Address+=InstrLength; TmpRva+=InstrLength; } } } if(ModuleBase) m_CurModuleBase = ModuleBase; m_TxtFile.Close(); delete []wNameBuf; } int CSourceCodeWnd::GetSourceFileID()const { return m_CurrentFileID; } CSDSModule*CSourceCodeWnd::GetSourceFileSymAnalyzer()const { return m_pSDSModule; } WISP_COLOR_CHAR* CSourceCodeWnd::ColorDasm(DWORD ModuleBase,DWORD EIP,DWORD MaxSize,WISP_COLOR_CHAR*pColorString,DWORD nCodeAlgn) { DWORD Len; BYTE Buffer[64]; WCHAR szBuffer[64]; INSTRUCTION_INFORMATION DasmInstr; DasmInstr.CodeBuff = Buffer; DasmInstr.eip = EIP; DasmInstr.pasm = NULL; if(EIP=m_CurrentFunction.m_EndAddress) { PSDFUNCTIONITEM pFuncItem = m_pSDSModule->GetFunctionFromRav(EIP-ModuleBase); m_CurrentFunction.Init(m_pSDSModule,pFuncItem); } Len=m_pCodeDoc->Dasm(&DasmInstr,NULL,MaxSize); if(nCodeAlgn) { if(DasmInstr.OpCode==-1) { ColorStrCpy(pColorString,WSTR("??"),COLOR_IMMED,0); } else { THexBytesToStr(DasmInstr.CodeBuff,szBuffer,Len,1); ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); } pColorString+=TStrFillTail(pColorString,nCodeAlgn,(WISP_COLOR_CHAR)' '); } InstrToCS(&DasmInstr,pColorString); return pColorString; } WISP_COLOR_CHAR*CSourceCodeWnd::InstrToCS(INSTRUCTION_INFORMATION*pDasmInstr,WISP_COLOR_CHAR*pColorString) { bool bFirstStr = TRUE; /////////////////////////////////////////////////// //LOCKǰ׺ /////////////////////////////////////////////////// if(pDasmInstr->Lock!=-1) { ColorStrCpy(pColorString,pDasmInstr->LockName,COLOR_PREFIX,0); ColorStrCat(pColorString," ",0,0); if(bFirstStr)//ڴδʹö { pColorString+=TStrFillTail(pColorString,m_pCodeDoc->m_UxAlign,(WISP_COLOR_CHAR)' '); bFirstStr = FALSE; } else pColorString+=TStrLen(pColorString); } /////////////////////////////////////////////////// //REPǰ׺ /////////////////////////////////////////////////// if(pDasmInstr->Repeat!=-1) { ColorStrCpy(pColorString,pDasmInstr->RepeatName,COLOR_PREFIX,0); ColorStrCat(pColorString," ",0,0); if(bFirstStr)//ڴδʹö { pColorString+=TStrFillTail(pColorString,m_pCodeDoc->m_UxAlign,(WISP_COLOR_CHAR)' '); bFirstStr = FALSE; } else pColorString+=TStrLen(pColorString); pColorString+=TStrLen(pColorString); } /////////////////////////////////////////////////// //OPCODE /////////////////////////////////////////////////// ColorStrCpy(pColorString,pDasmInstr->Name,COLOR_OPCODE,0); ColorStrCat(pColorString," ",0,0); if(*pDasmInstr->Name && bFirstStr)//ڴδʹö { pColorString+=TStrFillTail(pColorString,m_pCodeDoc->m_UxAlign,(WISP_COLOR_CHAR)' '); bFirstStr = FALSE; } else pColorString+=TStrLen(pColorString); /////////////////////////////////////////////////// //Ԫ /////////////////////////////////////////////////// return OptItemToCS(pDasmInstr->op,3,pColorString,pDasmInstr,NULL); } WISP_COLOR_CHAR*CSourceCodeWnd::OptItemToCS(OPERAND_ITEM*OpArray,int nOp,WISP_COLOR_CHAR*pColorString,INSTRUCTION_INFORMATION*pDasmInstr,DIS_CPU*pCurrent_CPU) { DIS_ADDRESS*pAddr; OPERAND_ITEM*pOp; WCHAR szBuffer[32]; bool bHasSymbols; for(int n=0;nmode==mode_invalid) break; if(n>0) {// pColorString+=ColorStrCpy(pColorString,",",COLOR_OPTR,0); } if(pOp->mode==mode_address) {//ַṹ pAddr=(DIS_ADDRESS*)&pOp->addr; //if(pDasmInstr->xxxxptr!=-1) { //pColorString+=ColorStrCpy(pColorString,",",COLOR_OPTR,0); pColorString+=ColorStrCpy(pColorString,CInstrSym::m_SizeSym[pOp->opersize],COLOR_KEYWORD,0); pColorString+=ColorStrCpy(pColorString," PTR ",COLOR_KEYWORD,0); } if(pDasmInstr->SegmentPrefix!=-1) { pColorString+=ColorStrCpy(pColorString,CInstrSym::m_SegStr[pDasmInstr->SegmentPrefix],COLOR_SEG_REG,0); pColorString+=ColorStrCpy(pColorString,":",COLOR_OPTR,0); } pColorString+=ColorStrCpy(pColorString,"[",COLOR_OPTR,0); if(pAddr->base!=-1)//BaseĴ { pColorString+=ColorStrCpy(pColorString,CInstrSym::m_RegStr[pAddr->address_size][pAddr->base],COLOR_REGISTER,0); } if(pAddr->index!=-1)//IndexĴ { if(pAddr->base!=-1) { pColorString+=ColorStrCpy(pColorString,"+",COLOR_OPTR,0); } pColorString+=ColorStrCpy(pColorString,CInstrSym::m_RegStr[pAddr->address_size][pAddr->index],COLOR_REGISTER,0); if(pAddr->scale>=1) { pColorString+=ColorStrCpy(pColorString,"*",COLOR_OPTR,0); pColorString+=ColorStrCpy(pColorString,CInstrSym::m_ScaleStr[pAddr->scale],COLOR_OPTR,0); } } if(pAddr->displacement || (pAddr->base==-1 && pAddr->index==-1)) {//displacement bHasSymbols=false; if(pAddr->index!=-1 || pAddr->base!=-1) { pColorString+=ColorStrCpy(pColorString,"+",COLOR_OPTR,0); } if(pAddr->index==-1&&pAddr->address_size==1&&pAddr->base==5) { char* TempSymbol; TempSymbol = m_CurrentFunction.FindNameByRegisterOffset((DWORD)pAddr->displacement,pAddr->base,NULL); if(TempSymbol) { bHasSymbols=true; pColorString+=ColorStrCpy(pColorString,TempSymbol,COLOR_SYMBOL,0); } } if(bHasSymbols==false) { TSPrintf(szBuffer,CInstrSym::m_SizePtr[pAddr->displacement_size],pAddr->displacement); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); } } pColorString+=ColorStrCpy(pColorString,"]",COLOR_OPTR,0); } else switch(pOp->mode) { case mode_register: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_REGISTER,0); break; case mode_segment: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_SEG_REG,0); break; case mode_far: TSPrintf(szBuffer,WSTR("%04X"),pOp->farptr.segment); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); pColorString+=ColorStrCpy(pColorString,WSTR(":"),COLOR_OPTR,0); TSPrintf(szBuffer,CInstrSym::m_SizePtr[pOp->opersize-2],pOp->farptr.offset); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); break; case mode_near: case mode_immed: pColorString+=ColorStrCpy(pColorString,pOp->string,COLOR_IMMED,0); break; case mode_datadup: if(n>0) break; for(n=0;ndatadup.count;n++) { if(n>0) { pColorString+=ColorStrCpy(pColorString,",",COLOR_OPTR,0); } TSPrintf(szBuffer,WSTR("%02X"),pOp->datadup.buffer[n]); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); } break; case mode_symbol: if(pOp->symbol.offset) { pColorString+=ColorStrCpy(pColorString,"OFFSET ",COLOR_KEYWORD,0); } pColorString+=ColorStrCpy(pColorString,pOp->symbol.string,COLOR_SYMBOL,0); break; case mode_align: if(n>0) break; TSPrintf(szBuffer,WSTR("%X"),pOp->align.nBytes); pColorString+=ColorStrCpy(pColorString,szBuffer,COLOR_IMMED,0); break; } } return pColorString; } void CSourceCodeWnd::LoadModuleImage() { ULPOS ModuleBase; BYTE CodeBuffer[MAX_INSTR_LEN]; char szBuffer[256]; WISP_COLOR_CHAR szColorBuffer[256]; DWORD i = 1; SDLINELIST LineList; int CurrentLineLen,InstrLength; ULPOS TmpRva,Address; SDLINELIST::IT LineBeginIT; PSDLINE pLine; if(m_FileOpen==false||m_pSDSModule==NULL) return; CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); ModuleBase=pDbgModule?pDbgModule->m_ModuleBase:0; HANDLE hItem,hSubItem; LINENUMBERMAP::IT FindIT; hItem = GetFirstItem(); while(hItem) { hSubItem = GetFirstItem(hItem); if(hSubItem) { if(ModuleBase && m_CurModuleBase == ModuleBase) break; ClearChildItem(hItem); } if(ModuleBase) { FindIT = m_LineMap.Find(i); if(FindIT!=m_LineMap.End()) { pLine = FindIT->pLine; CurrentLineLen = pLine->Len; Address = pLine->Rva+ModuleBase; TmpRva=pLine->Rva; while(CurrentLineLen>0) { TSPrintf(szBuffer,"%08x ",Address); InstrLength = m_pCodeDoc->InstrLen(Address); if(InstrLength==0) InstrLength=1; m_pCodeDoc->ReadImage(Address,CodeBuffer,InstrLength); ColorStrCpy(szColorBuffer,szBuffer,COLOR_ADDRESS,COLOR_BK); ColorDasm(ModuleBase,Address,MAX_INSTR_LEN,&szColorBuffer[14]); HANDLE hSubItem = InsertItem(WSTR(""),hItem); SetItemColorText(hSubItem,1,szColorBuffer); SetItemData(hSubItem,1,TmpRva); SetItemData(hSubItem,0,CV_MARK_NULL); CurrentLineLen-=InstrLength; Address+=InstrLength; TmpRva+=InstrLength; } } } SetItemData(hItem,0,CV_MARK_NULL); hItem = GetNextItem(hItem); i++; } if(ModuleBase && m_CurModuleBase!=ModuleBase) m_CurModuleBase = ModuleBase; } bool CSourceCodeWnd::UpdateView() {//EIPtrue if(m_FileOpen==false||m_pSDSModule==NULL) return false; bool bContainEIP,bViewContainEIP; UINT Mark; DWORD LineNumber,LineCount=0; ULPOS Rva,ModuleBase; PSDLINE pLine; LINENUMBERMAP::IT FindIT; HANDLE hSubItem,hItem; CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL && gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); ModuleBase = pDbgModule ? pDbgModule->m_ModuleBase : 0; bViewContainEIP = false; LineNumber = 1; hItem = GetFirstItem(); while(hItem) { FindIT = m_LineMap.Find(LineNumber); if(!FindIT.IsExist()) {//ûжӦ Mark = CV_MARK_NULL; if(IsBookMark(LineNumber)) Mark|=CV_MARK_BOOK_MARK; SetItemData(hItem,0,Mark); hItem=GetNextItem(hItem); LineNumber++; continue; } //жӦ pLine = (*FindIT).pLine; if(ModuleBase) {//ģ bContainEIP=false; hSubItem = GetItem(0,hItem); while(hSubItem) { Rva=(DWORD)GetItemData(hSubItem,1); Mark = m_pCodeDoc->GetLineMark(Rva+ModuleBase); if(Mark&CV_MARK_EIP) bContainEIP = true; SetItemData(hSubItem,0,Mark); hSubItem=GetNextItem(hSubItem); } Mark = m_pCodeDoc->GetLineMark(pLine->Rva+ModuleBase); if(bContainEIP) bViewContainEIP=true; if(bContainEIP) Mark|=CV_MARK_EIP; if(IsBookMark(LineNumber)) Mark|=CV_MARK_BOOK_MARK; } else {//ģ鲻 Mark = CV_MARK_NULL; if(m_pSDSModule->m_BreakPointList.Count()) { TList::IT Iter = m_pSDSModule->m_BreakPointList.Find(pLine->Rva); if(Iter != m_pSDSModule->m_BreakPointList.End()) Mark|=CV_MARK_BPX; } if(IsBookMark(LineNumber)) Mark|=CV_MARK_BOOK_MARK; } SetItemData(hItem,0,Mark); hItem=GetNextItem(hItem); LineNumber++; } Update(); return bViewContainEIP; } bool CSourceCodeWnd::GetStringValue(IN char* pString,IN int nLen,IN CStrA& OutBuffer) { return true; } bool CSourceCodeWnd::ItemShowTipNotify(HANDLE hItem,int Col,int*pX,int*pY,WISP_PSTR szTip) { DWORD CurrentLineNum; WISP_RECT CellRect; WISP_PCSTR pStr; bool bRet=true; bool bPreId=false; int CurrentIndex; int BeginIdOffset=0; int RetValue; int LineLen; int PreState=0; CStrA OutBuffer; WISP_COLOR_CHAR*pCStr; int FirstIdPos; char* IdString; char Buf[512]; int x,offset; if(Col!=1) return false; TStrCpy(szTip,""); CurrentLineNum = (DWORD)GetItemData(hItem,1); GetItemCellRect(hItem,Col,&CellRect); x = m_pWispBase->m_MousePT.x - m_ScrClientRect.x-CellRect.x - m_TextMargin; pStr=GetItemText(hItem,Col); offset = m_ClientDC.PixelOffToTextOff(pStr,x); if(offset==-1) return false; pCStr = (WISP_COLOR_CHAR*)GetColorString(pStr); TStrCpy(Buf,pCStr); *pX+=(x+10); *pY+=16; myinputptr=Buf; LineLen=TStrLen(Buf); myinputlim=myinputptr+LineLen; CurrentIndex=0; RetValue=0; yyrestart(0); PreState=0; FirstIdPos = 0; while(RetValue=yylex()) { switch(RetValue) { case LEX_DOT: PreState=RetValue; break; case LEX_ARROW: PreState=RetValue; break; case LEX_IDENTIFIER: if(FirstIdPos==0) { FirstIdPos=CurrentIndex; } bPreId=true; PreState=RetValue; break; default: bPreId=false; FirstIdPos=0; PreState=RetValue; } if(offset>=CurrentIndex&&offsetGetDataSymbolByString(IdString,m_CurrentFileID,CurrentLineNum,&bIsFunc,&ThisOffset); if(pDataItem==NULL) return false; OutBuffer.Empty(); if(bIsFunc) { pFuncItem=(PSDFUNCTIONITEM)pDataItem; char FuncName[512]={0}; int FuncNameLen=sizeof(FuncName); m_pSDSModule->GetFunctionName(pFuncItem,FuncName,&FuncNameLen); OutBuffer=FuncName; } else { OutBuffer = m_pSDSModule->GetSDSymbolName(pDataItem->TypeId,NameBuffer,&NameBufferLen); OutBuffer+=" "; if(pDataItem->TypeIdParentUDT) { PSDTYPE_INFILE pType = m_pSDSModule->GetTypeSymbol(pDataItem->TypeIdParentUDT); if(pType) { if(pType->Type==SD_STRUCT||pType->Type==SD_CLASS||pType->Type==SD_UNION) { OutBuffer+= m_pSDSModule->GetSDSymbolName(pDataItem->TypeIdParentUDT,NameBuffer,&NameBufferLen); OutBuffer+="::"; } } } OutBuffer+=pDataItem->uName.Name; } TStrCpy(szTip,(char*)OutBuffer); bRet=true; goto quit_001; } PSDTYPE_INFILE pType; pType=m_pSDSModule->GetSymbolByName(yytext); if(pType!=NULL) { switch(pType->Type) { case SD_TYPEDEF: OutBuffer.Empty(); m_pSDSModule->DumpSDTypedefTypeToHeaderFile(pType,OutBuffer); TStrCpy(szTip,(char*)OutBuffer); break; case SD_STRUCT: TStrCpy(szTip,"struct "); TStrCat(szTip,yytext); break; case SD_CLASS: TStrCpy(szTip,"class "); TStrCat(szTip,yytext); break; case SD_UNION: TStrCpy(szTip,"union "); TStrCat(szTip,yytext); break; case SD_ENUMERATION: OutBuffer.Empty(); m_pSDSModule->DumpSDEnumTypeToHeaderFile(pType,OutBuffer); TStrCpy(szTip,(char*)OutBuffer); break; default: { if(GetVariable(yytext,hItem,OutBuffer)==true) { TStrCpy(szTip,(char*)OutBuffer); bRet=true; goto quit_001; } bRet=false; goto quit_001; } } } else { if(GetVariable(yytext,hItem,OutBuffer)==true) { TStrCpy(szTip,(char*)OutBuffer); bRet=true; goto quit_001; }else bRet=false; } goto quit_001; } CurrentIndex+=yyleng; } return true; quit_001: return bRet; } bool CSourceCodeWnd::GetVariable(const char* Name,HANDLE hItem,CStrA& OutBuffer) { PSDTYPE_INFILE pType; bool bRet=false; char NameBuffer[512]; int NameBufferLen=sizeof(NameBuffer); SDLINELIST LineList; PSDFUNCTIONITEM pFuncItem; NUM_PTR LineNum = GetItemData(hItem,1); PSDLINE pLine=NULL; PSDUDTDATAITEM pDataItem; LINENUMBERMAP::IT FindIT; FindIT = m_LineMap.Find(*(DWORD*)&LineNum); if(FindIT==m_LineMap.End()) { pLine = m_pSDSModule->GetContiguityLineBySourceFileID(m_CurrentFileID,*(DWORD*)&LineNum); } else pLine=(*FindIT).pLine; if(pLine) { pFuncItem = m_pSDSModule->GetFunctionFromRav(pLine->Rva); if(pFuncItem==NULL) return bRet; if(pFuncItem!=m_CurrentFunction.m_pFunction) m_CurrentFunction.Init(m_pSDSModule,pFuncItem); pDataItem =m_CurrentFunction.GetDataSymbolByName((char*)Name); if(pDataItem) { OutBuffer = m_pSDSModule->GetSDSymbolName(pDataItem->TypeId,NameBuffer,&NameBufferLen); OutBuffer+=" "; if(pDataItem->TypeIdParentUDT) { pType = m_pSDSModule->GetTypeSymbol(pDataItem->TypeIdParentUDT); if(pType) { if(pType->Type==SD_STRUCT||pType->Type==SD_CLASS||pType->Type==SD_UNION) { OutBuffer+= m_pSDSModule->GetSDSymbolName(pDataItem->TypeIdParentUDT,NameBuffer,&NameBufferLen); OutBuffer+="::"; } } } OutBuffer+=pDataItem->uName.Name; bRet=true; } else { pFuncItem = m_CurrentFunction.GetFunctionSymbolByName((char*)Name); if(pFuncItem) { char FuncName[512]={0}; int FuncNameLen=sizeof(FuncName); m_pSDSModule->GetFunctionName(pFuncItem,FuncName,&FuncNameLen); OutBuffer=FuncName; bRet=true; } } } return bRet; } void CSourceCodeWnd::SetBeginLine(DWORD Rva) { DWORD LineRva; HANDLE hItem; hItem = GetItem(NULL); while(hItem) { LineRva = (DWORD)GetItemData(hItem,1); if(LineRva==Rva) break; hItem = GetNextItem(hItem); } if(hItem) { if(IsItemVisible(hItem)) return; EnableVisible(hItem); SelectItem(hItem); } } bool CSourceCodeWnd::OnEventToggleBreakPoint(IN WISP_MSG* pMsg) { HANDLE hItem; DWORD Address; hItem =GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address = GetItemAddress(hItem); if(Address == 0) return true; CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL) { TList::IT BPIter = m_pSDSModule->m_BreakPointList.Find(Address); if(BPIter==m_pSDSModule->m_BreakPointList.End()) m_pSDSModule->m_BreakPointList.Append(Address); else m_pSDSModule->m_BreakPointList.Remove(BPIter); UpdateView(); return true; } Address+=pDbgModule->m_ModuleBase; gpSyser->m_SyserUI.ToggleCodeBP(Address); return true; } bool CSourceCodeWnd::OnEventToggleBreakPointState(IN WISP_MSG* pMsg) { HANDLE hItem; ULPOS Address; hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address = GetItemAddress(hItem); CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL) return true; Address+=pDbgModule->m_ModuleBase; gpSyser->m_SyserUI.ToggleCodeBPState(Address); return true; } bool CSourceCodeWnd::OnEventToggleBookMarks(IN WISP_MSG*pMsg) { ToggleBookMark(); return true; } bool CSourceCodeWnd::OnEventSetEIP(IN WISP_MSG* pMsg) { HANDLE hItem; ULPOS Address; hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address = GetItemAddress(hItem); CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL) return true; Address+=pDbgModule->m_ModuleBase; *X86_REG_PTR.pEIP=Address; gpSyser->m_pDebugger->SaveRegister(); UPDATE_CONTEXT(); UPDATE_SOURCE_CODE_VIEW(); return true; } bool CSourceCodeWnd::OnEventGotoHere(IN WISP_MSG* pMsg) { HANDLE hItem; ULPOS Address; hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; Address = GetItemAddress(hItem); CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(m_pSDSModule->GetModuleID()); if(pDbgModule==NULL) return true; Address+=pDbgModule->m_ModuleBase; gpSyser->m_pDebugger->InsertCodeBP(Address,BP_TYPE_DEBUG,BP_STATE_ENABLE); RUNCMD(WSTR("x")); return true; } void CSourceCodeWnd::ToggleBookMark() { HANDLE hItem; ULONG iLine; hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return; if(GetItemLevel(hItem)==0) { iLine =(ULONG) GetItemData(hItem,1); } else { hItem = GetParentItem(hItem); iLine= (ULONG) GetItemData(hItem,1); } TMap::IT Iter = m_BookMark.Find(iLine); if(Iter.IsExist()) { m_BookMark.Remove(Iter); } else { m_BookMark.InsertUnique(iLine,hItem); } gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); UpdateView(); } bool CSourceCodeWnd::IsBookMark(ULONG iLine) { return m_BookMark.Find(iLine)!=m_BookMark.End(); } void CSourceCodeWnd::GotoNextBookMark() { ULONG iLine; HANDLE hItem=GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) hItem = GetScrStartItem(); if(hItem==NULL) return; if(GetItemLevel(hItem)!=0) hItem=GetParentItem(hItem); iLine = (ULONG)GetItemData(hItem,1); TMap::IT Iter=m_BookMark.FindAlmost(iLine); if(Iter.IsExist()) Iter++; if(Iter.IsExist()==false) Iter = m_BookMark.Begin(); if(Iter.IsExist()) { EnableVisible(*Iter); SelectItem(*Iter); } } void CSourceCodeWnd::GotoPrevBookMark() { ULONG iLine; HANDLE hItem=GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) hItem = GetScrStartItem(); if(hItem==NULL) return; if(GetItemLevel(hItem)!=0) hItem=GetParentItem(hItem); iLine = (ULONG)GetItemData(hItem,1); TMap::IT Iter=m_BookMark.FindAlmost(iLine); if(Iter.IsExist() && GetFirstItem(NULL,WISP_WLIS_SELECTED) == *Iter) Iter--; if(Iter.IsExist()==false) Iter = m_BookMark.Last(); if(Iter.IsExist()) { EnableVisible(*Iter); SelectItem(*Iter); } } void CSourceCodeWnd::ClearAllBookMark() { m_BookMark.Clear(); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); UpdateView(); } int CCurrentFunction::m_GeneralRegisterIndexMap[8]= { CV_REG_EAX, CV_REG_ECX, CV_REG_EDX, CV_REG_EBX, CV_REG_ESP, CV_REG_EBP, CV_REG_ESI, CV_REG_EDI, }; CCurrentFunction::CCurrentFunction() { m_BeginAddress=0; m_EndAddress=0; m_Size=0; m_pFunction=NULL; m_CurrentClass=NULL; m_pSDSModule=NULL; } CCurrentFunction::~CCurrentFunction() { m_ContextDataList.Clear(); m_ContextFuncList.Clear(); } void CCurrentFunction::Init(CSDSModule* pSDSModule,PSDFUNCTIONITEM pFuncItem) { if(pFuncItem==NULL) { m_BeginAddress=0; m_EndAddress=0; m_Size=0; m_pFunction=NULL; m_CurrentClass=NULL; m_ContextDataList.Clear(); m_ContextFuncList.Clear(); m_pSDSModule = pSDSModule; } else { m_pSDSModule = pSDSModule; CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(pSDSModule->m_ModuleFileName); if(pDbgModule) m_BeginAddress=pDbgModule->m_ModuleBase; else m_BeginAddress=0; m_EndAddress=m_BeginAddress+pFuncItem->Size; m_Size=pFuncItem->Size; m_pFunction=pFuncItem; InitVariableList(); } } char* CCurrentFunction::FindNameByRegisterOffset(IN DWORD Offset,IN DWORD RegIndex,PSDUDTDATAITEM* pUdtData) { CONTEXTDATALIST::IT BeginIT,EndIT; DWORD RegisterVal = m_GeneralRegisterIndexMap[RegIndex]; PSDUDTDATAITEM pDataItem; if(pUdtData) *pUdtData=NULL; if(RegIndex>sizeof(m_GeneralRegisterIndexMap)) return NULL; BeginIT=m_ContextDataList.Begin(); EndIT=m_ContextDataList.End(); for(;BeginIT!=EndIT;BeginIT++) { pDataItem=*BeginIT; if(pDataItem->Location==LocIsRegRel&&pDataItem->u.LOCISREGREL.Register==RegisterVal&&Offset==pDataItem->u.LOCISREGREL.Offset) { if(pUdtData) *pUdtData=pDataItem; return pDataItem->uName.Name; } } return NULL; } PSDUDTDATAITEM CCurrentFunction::GetDataSymbolByName(char* Name,bool bCase) { if(Name==NULL) return NULL; PSDUDTDATAITEM pDataItem; CONTEXTDATALIST::IT BeginIT,EndIT; BeginIT=m_ContextDataList.Begin(); EndIT=m_ContextDataList.End(); for(;BeginIT!=EndIT;BeginIT++) { pDataItem = *BeginIT; if(bCase) { if(TStrCmp(Name,pDataItem->uName.Name)==0) return pDataItem; } else { if(TStrICmp(Name,pDataItem->uName.Name)==0) return pDataItem; } } pDataItem=NULL; if(m_pFunction->TypeIDParentUDT) pDataItem = m_pSDSModule->GetUdtClassDataMemberByName(Name,m_pSDSModule->GetTypeSymbol(m_pFunction->TypeIDParentUDT)); if(pDataItem==NULL) pDataItem = m_pSDSModule->GetDataSymbolByNameAndKind(Name,DataIsGlobal); return pDataItem; } void CCurrentFunction::InitVariableList() { PSDUDTDATAITEM pDataItem; PSDTYPE_INFILE pType; m_ContextDataList.Clear(); DWORD i,j; for(i = 0; i < m_pFunction->DataCounter; i++) { pDataItem = m_pSDSModule->GetDataSymbol(m_pFunction->pData.pDataMember[i]); if(pDataItem) m_ContextDataList.Append(pDataItem); } for(i = 0; i < m_pFunction->BlockCounter; i++) { pType = m_pSDSModule->GetTypeSymbol(m_pFunction->pBlock.pBlockTypeIdArray[i]); PSDBLOCK pBlock = (PSDBLOCK)&pType[1]; for(j = 0; j < pBlock->DataCounter;j++) { pDataItem = m_pSDSModule->GetDataSymbol(pBlock->pDataMember[j]); if(pDataItem) m_ContextDataList.Append(pDataItem); } } pType = m_pSDSModule->GetTypeSymbol(m_pFunction->TypeIDParentUDT); if(pType!=m_CurrentClass&&pType) { m_ContextFuncList.Clear(); AddUdtFuncMember(pType); m_CurrentClass=pType; } return ; } void CCurrentFunction::AddUdtFuncMember(PSDTYPE_INFILE pType) { DWORD i; PSDFUNCTIONITEM pFuncItem; PSDUDTTYPE pUdtType; DWORD *pFuncIdArray; if(pType==NULL||(pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT&&pType->Type!=SD_UNION)) return; pUdtType = (PSDUDTTYPE)&pType[1]; if(pUdtType->FunctionCounter) { pFuncIdArray = pUdtType->pFunction.pFunctionMember; for(i = 0; i < pUdtType->FunctionCounter;i++) { pFuncItem = m_pSDSModule->GetFunctionSymbol(pFuncIdArray[i]); if(pFuncItem) m_ContextFuncList.Append(pFuncItem); } } } void CCurrentFunction::AddUdtDataMember(PSDTYPE_INFILE pType) { DWORD i; PSDUDTDATAITEM pDataItem; PSDUDTTYPE pUdtType; DWORD *pDataIdArray; if(pType==NULL||(pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT&&pType->Type!=SD_UNION)) return; pUdtType =(PSDUDTTYPE) &pType[1]; if(pUdtType->DataCounter) { pDataIdArray = pUdtType->pData.pDataMember; for(i = 0; i < pUdtType->DataCounter;i++) { pDataItem = m_pSDSModule->GetDataSymbol(pDataIdArray[i]); if(pDataItem) m_ContextDataList.Append(pDataItem); } } } PSDFUNCTIONITEM CCurrentFunction::GetFunctionSymbolByName(char* Name,bool bCase) { PSDFUNCTIONITEM pFuncItem=NULL; if(m_pFunction->TypeIDParentUDT) pFuncItem = m_pSDSModule->GetUdtClassFuncMemberByName(Name,m_CurrentClass); if(pFuncItem==NULL) pFuncItem = m_pSDSModule->GetFunctionSymbolByName(Name); return pFuncItem; } ================================================ FILE: Project/Syser/Source/SourceCodeWnd.h ================================================ #ifndef _SOURCECODEWND_H_ #define _SOURCECODEWND_H_ #include "SyserUI.h" #include "SyserSymAnalyzer.h" typedef TList CONTEXTDATALIST; typedef TList CONTEXTFUNCLIST; class CCurrentFunction { static int m_GeneralRegisterIndexMap[8]; public: CCurrentFunction(); virtual ~CCurrentFunction(); void Init(CSDSModule* pSDSModule,PSDFUNCTIONITEM pFuncItem=NULL); DWORD m_BeginAddress; DWORD m_EndAddress; DWORD m_Size; CSDSModule* m_pSDSModule; PSDFUNCTIONITEM m_pFunction; void InitVariableList(); char* FindNameByRegisterOffset(IN DWORD Offset,IN DWORD RegIndex=5,PSDUDTDATAITEM* pUdtData=NULL); CONTEXTDATALIST m_ContextDataList; CONTEXTFUNCLIST m_ContextFuncList; PSDTYPE_INFILE m_CurrentClass; void AddUdtDataMember(PSDTYPE_INFILE pType); void AddUdtFuncMember(PSDTYPE_INFILE pType); PSDUDTDATAITEM GetDataSymbolByName(char* Name,bool bCase=true); PSDFUNCTIONITEM GetFunctionSymbolByName(char* Name,bool bCase=true); }; #define TXTFILE_OPEN_CONTAIN_NEWLINE 0x1 //еĩβ #define TXTFILE_OPEN_CONTAIN_LINEOFFSET 0x2 // m_LineOffsetLine Աбÿļеƫ typedef TList TTETLineOffsetList; class CSrcTXTFile : public CTXTFile { public: bool Open(PCSTR FileName,HANDLE*pHandleOpen = NULL,UINT Style=0); TTETLineOffsetList m_LineOffsetLine; UINT m_TxtStyle; }; class CSourceCodeWnd:public CWispList { enum { CPLUSPLUS_KEYWORD = MAX_COLOR, //C++ Ĺؼ CPLUSPLUS_IDENTIFIER, //C++ġid CPRE_KEYWORD, //ԤĹؼ CPLUSPLUS_COMMENT_BLOCK, //עͿ Ҳǰ /* */ мע CPLUSPLUS_COMMENT_LINE, //еע͡Ҳ // ʼע CPLUSPLUS_STRING, CPLUSPLUS_NUMERICAL, CPLUSPLUS_OPERATION, CPLUSPLUS_CLASS_NAME, CPLUSPLUS_STRUCT_NAME, CPLUSPLUS_UNION_NAME, CPLUSPLUS_TYPEDEF_NAME, CPLUSPLUS_FUNCTION_NAME, CPLUSPLUS_UNKNOW, SYNTAXCOLOR_MAX, }; COLORREF m_Color[SYNTAXCOLOR_MAX]; CSrcTXTFile m_TxtFile; bool m_FileOpen; int m_TxtFileLineNumber; LINENUMBERMAP m_LineMap; public: CSourceCodeWnd(void); ~CSourceCodeWnd(void); public: void ItemClickNotify(HANDLE hItem,int Col); void ItemRClickNotify(HANDLE hItem,int Col); bool ItemShowTipNotify(HANDLE hItem,int Col,int*pX,int*pY,WISP_PSTR szTip); bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventCollapse) DECLARE_WISP_MSG_EVENT(OnEventExpansion) DECLARE_WISP_MSG_EVENT(OnEventGoToLine) DECLARE_WISP_MSG_EVENT(OnEventAddWatch) DECLARE_WISP_MSG_EVENT(OnEventToggleBreakPoint) DECLARE_WISP_MSG_EVENT(OnEventToggleBreakPointState) DECLARE_WISP_MSG_EVENT(OnEventToggleBookMarks); DECLARE_WISP_MSG_EVENT(OnEventGotoHere) DECLARE_WISP_MSG_EVENT(OnEventSetEIP) WISP_COLOR_CHAR*ColorDasm(DWORD BaseAddress,DWORD EIP,DWORD MaxSize,WISP_COLOR_CHAR*pColorString,DWORD nCodeAlgn = 0); WISP_COLOR_CHAR*InstrToCS(OUT INSTRUCTION_INFORMATION*pDasmInstr,WISP_COLOR_CHAR*pColorString);//ɫ WISP_COLOR_CHAR*OptItemToCS(OPERAND_ITEM*OpArray,int nOp,WISP_COLOR_CHAR*pColorString,INSTRUCTION_INFORMATION*pDasmInstr,DIS_CPU*pCurrent_CPU); CSDSModule* GetSourceFileSymAnalyzer()const; ULONGLONG GetBookMarkKey(HANDLE hItem); ULPOS GetItemAddress(HANDLE hItem); bool UpdateView();//EIPtrue void LoadSourceFile(char* Buffer,DWORD size,PSDSOURCEFILEID pSDSourceFileId); int GetSourceFileID()const; bool GetVariable(const char* Name,HANDLE hItem,CStrA& OutBuffer); void LoadModuleImage(); void SyntaxColor(char* SourceCodeLine,WISP_COLOR_CHAR* szColorBuffer); bool GetStringValue(IN char* pString,IN int nLen,OUT CStrA& OutBuffer); bool GetContextString();//Ҽʵʱµַ add watch IJ void SetBeginLine(DWORD Rva); void PopupMenu(IN WISP_MSG*pMsg); //BookMark bool IsBookMark(ULONG iLine); void ToggleBookMark(); void GotoNextBookMark(); void GotoPrevBookMark(); void ClearAllBookMark(); CCurrentFunction m_CurrentFunction; bool m_CommentState; DIS_CPU m_CurrentCpu; CSyserCodeDoc* m_pCodeDoc; CWispDIBList* m_StateDIBList; DWORD m_CurrentFileID; CSDSModule* m_pSDSModule; CWispMenu m_PopupMenu; WISP_POINT m_RightButtonPoint; TMap m_BookMark; ULPOS m_CurModuleBase; CStrA m_ContextString; CStrA m_FullContextString; }; #endif //_SOURCECODEWND_H_ ================================================ FILE: Project/Syser/Source/SourceDebugClassView.cpp ================================================ #include "StdAfx.h" #include "SourceDebugClassView.h" WISP_MENU_RES_ITEM SourceDebugClassViewMenu[]= { {WSTR("Find"),EVENT_ID_SOURCEDEBUGCLASSVIEW_FIND,15*16+5}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CSourceDebugClassViewList) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CSourceDebugClassViewList) WISP_MSG_EVENT_MAP(EVENT_ID_SOURCEDEBUGCLASSVIEW_FIND,OnFindDlg); WISP_MSG_EVENT_MAP_END bool CSourceDebugClassViewList::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.bKeyDown==false) { if(pMsg->KeyEvent.KeyType == WISP_VK_F3) return OnFindDlg(pMsg); if(pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) m_PopupMenu.Popup(); } return true; } bool CSourceDebugClassViewList::OnFindDlg(IN WISP_MSG* pMsg) { m_FindDlg.CreateForm(NULL,WISP_SH_MODAL); m_FindDlg.SetContextList(this); return true; } bool CSourceDebugClassViewList::OnCreate(IN WISP_MSG* pMsg) { m_PopupMenu.CreatePopupMenu(SourceDebugClassViewMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); return true; } void CSourceDebugClassViewList::FindItemByName(WCHAR* Name) { CWispString* pText; WCHAR* pTextName; if(Name==NULL) return; if(m_CurrentFindItem==NULL) m_CurrentFindItem = GetItem(0); if(m_CurrentFindItem==NULL) return; for(;m_CurrentFindItem;) { pText = &GetItemText(m_CurrentFindItem); if(pText==NULL) continue; pTextName = *pText; if(TStrStr(pTextName,Name)) { EnableVisible(m_CurrentFindItem,0); SelectItem(m_CurrentFindItem); m_CurrentFindItem = GetNextItem(m_CurrentFindItem); break; } m_CurrentFindItem = GetNextItem(m_CurrentFindItem); } return; } enum CClassViewFindForm::WISP_FORM_ID { CMD_ID_BUTTON_FIND = WISP_ID_USER_START, CMD_ID_BUTTON_CLOSE, CMD_ID_EDIT_FINDTEXT, }; WISP_FORM_RES_ITEM CClassViewFindForm::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,320,120}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Find"), "\\SyserIcon\\Plugin.ico", WSTR("Find"), }, { WISP_CTRL_STATIC_STRING, {10,18,70,20}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Find what: "), NULL, NULL }, { WISP_CTRL_EDIT, {80,15,220,20}, CMD_ID_EDIT_FINDTEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {54,50,78,21}, CMD_ID_BUTTON_FIND, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Find Next"), }, { WISP_CTRL_BUTTON, {186,50,78,21}, WISP_ID_CANCEL, WISP_BS_NORMAL, WSTR("Close"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CClassViewFindForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CClassViewFindForm) WISP_MSG_CMD_MAP(CMD_ID_EDIT_FINDTEXT,OnFindTextCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CClassViewFindForm) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_FIND,OnFindButtonEvent) WISP_MSG_EVENT_MAP_END CClassViewFindForm::CClassViewFindForm() { m_pFormRes = m_FormRes; } CClassViewFindForm::~CClassViewFindForm() { } bool CClassViewFindForm::OnFormCreate(IN WISP_MSG* pMsg) { m_FindButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_FIND); m_CloseButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_CLOSE); m_FindEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_FINDTEXT); return true; } bool CClassViewFindForm::OnFindTextCmd(IN WISP_MSG* pMsg) { CWispString* FindText; switch(pMsg->Command.CmdMsg) { case WISP_CMD_EN_INPUT_KEY_DOWN: if(pMsg->Command.Param1==WISP_VK_RETURN) { m_FindButton->Focus(); return OnFindButtonEvent(NULL); } break; case WISP_CMD_EN_INPUT_KEY_UP: if(pMsg->Command.Param1==WISP_VK_RETURN) return false; break; case WISP_CMD_EN_CHANGED: FindText = &m_FindEdit->GetWindowText(); m_FindButton->EnableWindow(FindText->IsEmpty()==false); m_FindButton->Update(); break; } return true; } bool CClassViewFindForm::OnFindButtonEvent(IN WISP_MSG* pMsg) { WCHAR* pFindText; if(m_pContextList==NULL) return false; pFindText = m_FindEdit->GetWindowText(); m_pContextList->FindItemByName(pFindText); return true; } void CClassViewFindForm::SetContextList(CSourceDebugClassViewList* pContextList) { m_pContextList = pContextList; return; } bool CClassViewFindForm::OnDestroy(IN WISP_MSG* pMsg) { if(m_pContextList) m_pContextList->Focus(); return true; } ================================================ FILE: Project/Syser/Source/SourceDebugClassView.h ================================================ #ifndef _SOURCEDEBUGCLASSVIEW_H_ #define _SOURCEDEBUGCLASSVIEW_H_ class CSourceDebugClassViewList; class CClassViewFindForm : public CWispForm { public: CClassViewFindForm(); ~CClassViewFindForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnFindTextCmd) DECLARE_WISP_MSG_EVENT(OnFindButtonEvent) public: void SetContextList(CSourceDebugClassViewList* pContextList); void FindItemByName(WCHAR* Name); CWispButton* m_FindButton; CWispButton* m_CloseButton; CWispEdit* m_FindEdit; CSourceDebugClassViewList* m_pContextList; }; class CSourceDebugClassViewList : public CWispList { public: CSourceDebugClassViewList(void){m_CurrentFindItem=NULL;}; virtual ~CSourceDebugClassViewList(void){}; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnFindDlg) DECLARE_WISP_MSG_EVENT_MAP void FindItemByName(WCHAR* Name); CClassViewFindForm m_FindDlg; CWispMenu m_PopupMenu; HANDLE m_CurrentFindItem; }; #endif ================================================ FILE: Project/Syser/Source/SourceDebugFrameWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SourceDebugFrameWnd.h" WISP_TOOLBAR_RES_ITEM SourceDebugToolbar[]= { {EVENT_ID_STEP, 0, WISP_TBIS_BUTTON,WSTR("Step"), 0,WISP_WS_DISABLED}, {EVENT_ID_PROCEED, 1, WISP_TBIS_BUTTON,WSTR("Proceed"), 0,WISP_WS_DISABLED}, {EVENT_ID_RETURN, 2, WISP_TBIS_BUTTON,WSTR("Return"), 0,WISP_WS_DISABLED}, {EVENT_ID_CONTINUE, 3, WISP_TBIS_BUTTON,WSTR("Continue"), 0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_BREAK_POINT, 4, WISP_TBIS_BUTTON,WSTR("Break point")}, {EVENT_ID_GOTOLINE, 16*16+11, WISP_TBIS_BUTTON,WSTR("Go To Line Ctrl+G"), 0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_BOOKMARK_TOGGLE, 13*16, WISP_TBIS_BUTTON,WSTR("Toggle BookMark Ctrl+K"), 0,WISP_WS_DISABLED}, {EVENT_ID_BOOKMARK_NEXT, 13*16+1,WISP_TBIS_BUTTON,WSTR("Next BookMark Ctrl+N"), 0,WISP_WS_DISABLED}, {EVENT_ID_BOOKMARK_PREV, 13*16+2,WISP_TBIS_BUTTON,WSTR("Previous BookMark Ctrl+P"), 0,WISP_WS_DISABLED}, {EVENT_ID_BOOKMARK_CLEAR, 13*16+3,WISP_TBIS_BUTTON,WSTR("Clear BookMark Ctrl+L"), 0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_END }; WISP_MENU_RES_ITEM SourceDebugMenu[]= { {WSTR("Continue F5"), EVENT_ID_CONTINUE,3,WISP_MIS_DISABLED}, {WSTR("Return F6"), EVENT_ID_RETURN,2,WISP_MIS_DISABLED}, {WSTR("Step F8"), EVENT_ID_STEP,0,WISP_MIS_DISABLED}, {WSTR("Proceed F10"), EVENT_ID_PROCEED,1,WISP_MIS_DISABLED}, WISP_MENU_RES_SEPARATOR, {WSTR("Break point Ctrl+F9"), EVENT_ID_BREAK_POINT,4}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM SourceDebugMonitorMenu[]= { {WSTR("Register View Alt+G"), EVENT_ID_REG_VIEW, 52}, {WSTR("Data View Alt+D"), EVENT_ID_DATA_VIEW_FORM,89}, {WSTR("Call Stack Alt+C"), EVENT_ID_CALL_STACK, 18}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM SourceDebugViewMenu[]= { {WSTR("Toggle BookMark Ctrl+K"),EVENT_ID_BOOKMARK_TOGGLE,13*16,WISP_MIS_DISABLED}, {WSTR("Next BookMark Ctrl+N"),EVENT_ID_BOOKMARK_NEXT,13*16+1,WISP_MIS_DISABLED}, {WSTR("Previous BookMark Ctrl+P"),EVENT_ID_BOOKMARK_PREV,13*16+2,WISP_MIS_DISABLED}, {WSTR("Clear BookMark Ctrl+L"),EVENT_ID_BOOKMARK_CLEAR,13*16+3,WISP_MIS_DISABLED}, WISP_MENU_RES_SEPARATOR, {WSTR("Go To Line Ctrl+G"),EVENT_ID_GOTOLINE,16*16+11,WISP_MIS_DISABLED}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM SourceMenu[]= { {WSTR("Debug"),0,57,WISP_MIS_POPUP,SourceDebugMenu}, {WSTR("Monitor"),0,53,WISP_MIS_POPUP,SourceDebugMonitorMenu}, {WSTR("View"),0,126,WISP_MIS_POPUP,SourceDebugViewMenu}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CSourceDebugFrameWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispSplitWnd) WISP_MSG_CMD_MAP_BEGIN(CSourceDebugFrameWnd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CSourceDebugFrameWnd) WISP_MSG_EVENT_MAP(EVENT_ID_REG_VIEW,OnEventRegView) WISP_MSG_EVENT_MAP(EVENT_ID_DATA_VIEW_FORM,OnEventDataViewForm) WISP_MSG_EVENT_MAP(EVENT_ID_CALL_STACK,OnEventCallStack) WISP_MSG_EVENT_MAP(EVENT_ID_GOTOLINE,OnEventGoToLine) WISP_MSG_EVENT_MAP(EVENT_ID_STEP,OnEventStep) WISP_MSG_EVENT_MAP(EVENT_ID_PROCEED,OnEventProceed) WISP_MSG_EVENT_MAP(EVENT_ID_RETURN,OnEventReturn) WISP_MSG_EVENT_MAP(EVENT_ID_CONTINUE,OnEventContinue) WISP_MSG_EVENT_MAP(EVENT_ID_BREAK_POINT,OnEventBreakPoint) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_TOGGLE,OnEventToggleBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_NEXT,OnEventNextBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_PREV,OnEventPrevBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_CLEAR,OnEventClearBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_SDS_MODULE_LIST,OnHotKeyEventSDSModule) WISP_MSG_EVENT_MAP(EVENT_ID_WATCH_LIST,OnHotKeyEventWatchList) WISP_MSG_EVENT_MAP(EVENT_ID_CONSOLE_VIEW,OnHotKeyEventConsole) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_DEBUG, OnHotKeyEventMenuDebug) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_VIEW, OnHotKeyEventMenuView) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_MONITOR, OnHotKeyEventMenuMonitor) WISP_MSG_EVENT_MAP_END CSourceDebugFrameWnd::CSourceDebugFrameWnd(void) { } CSourceDebugFrameWnd::~CSourceDebugFrameWnd(void) { } bool CSourceDebugFrameWnd::OnCreate(IN WISP_MSG* pMsg) { m_IconDIBList.Load("\\SyserIcon\\SourceCodeIcon.bmp",16,16,80); m_WndMenu.CreateWndMenu(this,WISP_ID_MAIN_MENU,SourceMenu,WispTKDIBList("\\Toolbar.bmp",16,16)); m_WndMenu.SetOwner(this); m_Toolbar.CreateEx(this,m_WndMenu.m_WindowRect.cy,-1,WISP_ID_MAIN_TOOLBAR,WISP_WS_NULL); m_Toolbar.LoadToolbar(WispTKDIBList("\\Toolbar.bmp",16,16),SourceDebugToolbar); m_Toolbar.SetOwner(this); int MenuToolbarHeight = m_Toolbar.m_WindowRect.cy+m_WndMenu.m_WindowRect.cy; if(m_VertSplitWnd.Create(NULL,0,MenuToolbarHeight,m_ClientRect.cx,m_ClientRect.cy-MenuToolbarHeight,this,CMD_ID_SOURCE_VERT_SPLIT,WISP_SWS_VERT)==false) return false; if(m_HorzSplitWnd.Create(NULL,0,0,0,0,&m_VertSplitWnd,CMD_ID_SOURCE_HORZ_SPLIT,WISP_SWS_HORZ)==false) return false; m_ExplorerTabWnd.Create(NULL,0,0,0,0,&m_HorzSplitWnd,0,WISP_TWS_BUTTOM); m_MultiSourceCodeView.Create(NULL,0,0,0,0,&m_HorzSplitWnd,WND_CHILD_SOURCEFILETABWND,WISP_TWS_CLOSE_BT); m_SDSModuleList.Create(NULL,0,0,0,0,&m_ExplorerTabWnd,WND_CHILD_SDS_MODULE_LIST,WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_EMPTY_SEL_RECT); m_ExplorerTabWnd.InsertWnd(WSTR("SDS Modules ALT+S"),&m_SDSModuleList,WispTKDIBListDIB("\\Toolbar.bmp",16,16,13*16+5)); m_HorzSplitWnd.InsertWnd(&m_MultiSourceCodeView,0,m_ClientRect.cx/3*2); m_HorzSplitWnd.InsertWnd(&m_ExplorerTabWnd,0,m_ClientRect.cx/3*1); m_HorzSplitWnd.AdjustWndPos(); m_MonitorTabWnd.Create(NULL,0,0,0,0,&m_VertSplitWnd,0,WISP_TWS_TOP); m_SourceVariableWatchWnd.Create(NULL,0,0,0,0,&m_MonitorTabWnd,WND_CHILD_SOURCE_CODE_WATCH_LIST,WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_EMPTY_SEL_RECT); if(m_TerminalWnd.Create(NULL,CWispRect(0,0,0,0),&m_MonitorTabWnd,CMD_ID_TERMINAL_WND,WISP_WS_NULL)==false) return false; m_TerminalWnd.AttachConsole(&gpSyser->m_MainFrame.m_ConsoleWnd); m_MonitorTabWnd.InsertWnd(WSTR("Watch ALT+W"),&m_SourceVariableWatchWnd,WispTKDIBListDIB("\\Toolbar.bmp",16,16,53)); m_MonitorTabWnd.InsertWnd(WSTR("Console F1"),&m_TerminalWnd,WispTKDIBListDIB("\\Toolbar.bmp",16,16,63)); m_VertSplitWnd.InsertWnd(&m_HorzSplitWnd,0,m_ClientRect.cy-200); m_VertSplitWnd.InsertWnd(&m_MonitorTabWnd,0,200); m_VertSplitWnd.AdjustWndPos(); gpSyser->AttachHotKey(EVENT_ID_CONTINUE,this); gpSyser->AttachHotKey(EVENT_ID_STEP,this); gpSyser->AttachHotKey(EVENT_ID_PROCEED,this); gpSyser->AttachHotKey(EVENT_ID_STEP_BRANCH,this); gpSyser->AttachHotKey(EVENT_ID_RETURN,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_TOGGLE,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_NEXT,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_PREV,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_CLEAR,this); RegisterHotKey(EVENT_ID_SDS_MODULE_LIST,WISP_VK_S,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_WATCH_LIST,WISP_VK_W,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_CONSOLE_VIEW,WISP_VK_F1,0); RegisterHotKey(EVENT_ID_GOTOLINE,WISP_VK_G,WISP_MOD_CTRL); RegisterHotKey(EVENT_ID_MENU_DEBUG,WISP_VK_D,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_MONITOR,WISP_VK_M,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_VIEW,WISP_VK_V,WISP_MOD_ALT); return true; } bool CSourceDebugFrameWnd::OnHotKeyEventMenuDebug(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Debug")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSourceDebugFrameWnd::OnHotKeyEventMenuView(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("View")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSourceDebugFrameWnd::OnHotKeyEventMenuMonitor(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Monitor")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSourceDebugFrameWnd::OnHotKeyEventSDSModule(IN WISP_MSG* pMsg) { m_SDSModuleList.Focus(); return true; } bool CSourceDebugFrameWnd::OnHotKeyEventWatchList(IN WISP_MSG* pMsg) { m_MonitorTabWnd.SetActiveWnd(0); m_SourceVariableWatchWnd.Focus(); return true; } bool CSourceDebugFrameWnd::OnHotKeyEventConsole(IN WISP_MSG* pMsg) { m_MonitorTabWnd.SetActiveWnd(1); m_TerminalWnd.Focus(); return true; } bool CSourceDebugFrameWnd::OnEventDataViewForm(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.m_SystemExplorer.OnEventDataViewForm(pMsg); return true; } bool CSourceDebugFrameWnd::OnEventRegView(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.m_SystemExplorer.OnEventRegView(pMsg); return true; } bool CSourceDebugFrameWnd::OnDestroy(IN WISP_MSG* pMsg) { m_IconDIBList.Destroy(); return true; } bool CSourceDebugFrameWnd::OnSize(IN WISP_MSG*pMsg) { m_Toolbar.Resize(pMsg->Resize.NewSize.cx,m_Toolbar.m_WindowRect.cy); m_VertSplitWnd.Resize(m_ClientRect.cx,m_ClientRect.cy-m_Toolbar.m_WindowRect.cy-m_WndMenu.m_WindowRect.cy); AdjustSplitViewSize(); return true; } void CSourceDebugFrameWnd::AdjustSplitViewSize() { m_VertSplitWnd.ResizeWndSpace(0,m_ClientRect.cy*7/10); m_VertSplitWnd.AdjustWndPos(); m_HorzSplitWnd.ResizeWndSpace(0,m_ClientRect.cx*7/10); m_HorzSplitWnd.AdjustWndPos(); } bool CSourceDebugFrameWnd::OnGetFocus(IN WISP_MSG*pMsg) { CWispWnd*pActiveWnd = m_MultiSourceCodeView.GetActiveWnd(); if(pActiveWnd) { pActiveWnd->Focus(); return false; } return true; } void CSourceDebugFrameWnd::UpdateAllView(bool bShowEIPDoc) { if(bShowEIPDoc) { CSDSModule*pSDSModule = gpSyser->m_SyserUI.GetSDSModule(*X86_REG_PTR.pEIP); if(pSDSModule) { m_SDSModuleList.SetActiveModule(pSDSModule); SDLINELIST LineList; if(pSDSModule->GetLineFromRva(*X86_REG_PTR.pEIP-pSDSModule->m_pCurDbgModule->m_ModuleBase,&LineList)) ShowSourceFile(pSDSModule,(*LineList[0])->FileID,(*LineList[0])->LineNumber); } } m_MultiSourceCodeView.UpdateAllView(); m_SourceVariableWatchWnd.UpdateContext(); } bool CSourceDebugFrameWnd::OnEventBreakPoint(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_BreakPointForm.Popup(); if(pMsg->Command.CmdMsg == WISP_CMD_HOTKEY) return false; return true; } bool CSourceDebugFrameWnd::OnEventCallStack(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_CallStackWnd.Popup(); return true; } bool CSourceDebugFrameWnd::OnEventGoToLine(IN WISP_MSG* pMsg) { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*)m_MultiSourceCodeView.GetActiveWnd(); if(pSourceCodeWnd) { return pSourceCodeWnd->OnEventGoToLine(pMsg); } return true; } bool CSourceDebugFrameWnd::OnEventStep(IN WISP_MSG*pMsg) { RUNCMD(WSTR("st")); return false; } bool CSourceDebugFrameWnd::OnEventProceed(IN WISP_MSG*pMsg) { RUNCMD(WSTR("sp")); return false; } bool CSourceDebugFrameWnd::OnEventReturn(IN WISP_MSG*pMsg) { RUNCMD(WSTR("p ret")); return false; } bool CSourceDebugFrameWnd::OnEventContinue(IN WISP_MSG*pMsg) { RUNCMD(WSTR("x")); return false; } CSourceCodeWnd* CSourceDebugFrameWnd::ShowSourceFile(CSDSModule*pSDSModule,DWORD FileID,DWORD LineNum) { WCHAR Name[MAX_FN_LEN]; PSDSOURCEFILEID pSDSourceFileId; SOURCE_CODE_WND_ID SourceFileID; SourceFileID.FileID = FileID; SourceFileID.pSDSModule = pSDSModule; TSet::IT Iter = m_MultiSourceCodeView.m_OpenedSourceCodeWnd.Find(SourceFileID); if(Iter.IsExist()) { if(Iter->pSourceCodeWnd) m_MultiSourceCodeView.ChangeActiveWnd(Iter->pSourceCodeWnd); Iter->pSourceCodeWnd->SetBeginLine(LineNum); Iter->pSourceCodeWnd->LoadModuleImage(); if(Iter->pSourceCodeWnd->UpdateView() && SyserOption.iFollowMode==SYSER_FM_AUTOMATIC) gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); } else { pSDSourceFileId = pSDSModule->GetSourceFileByID(FileID); if(pSDSourceFileId->FileLen==0) return NULL; Iter = m_MultiSourceCodeView.m_OpenedSourceCodeWnd.Insert(SourceFileID); if(Iter.IsExist()==false) return NULL; Iter->pSourceCodeWnd = new CSourceCodeWnd; Iter->pSourceCodeWnd->m_pSDSModule = pSDSModule; Iter->pSourceCodeWnd->m_CurrentFileID = FileID; Iter->pSourceCodeWnd->Create(NULL,0,0,0,0,&m_MultiSourceCodeView,WISP_WM_USER_START+FileID,WISP_WLS_TREE|WISP_WLS_EMPTY_SEL_RECT|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS); Iter->pSourceCodeWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); TStrCpy(Name,TGetFileName(pSDSourceFileId->uName.Name)); m_MultiSourceCodeView.InsertWnd(Name,Iter->pSourceCodeWnd); Iter->pSourceCodeWnd->LoadSourceFile(*(char**)&pSDSourceFileId->OffsetAtFile,pSDSourceFileId->FileLen,pSDSourceFileId); m_MultiSourceCodeView.ChangeActiveWnd(Iter->pSourceCodeWnd); Iter->pSourceCodeWnd->SetBeginLine(LineNum); if(Iter->pSourceCodeWnd->UpdateView() && SyserOption.iFollowMode==SYSER_FM_AUTOMATIC) gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SOURCE_EXPLORER_VIEW); } Update(); return Iter->pSourceCodeWnd; } bool CSourceDebugFrameWnd::OnEventToggleBookMark(IN WISP_MSG*pMsg) { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*) m_MultiSourceCodeView.GetActiveWnd(); if(pSourceCodeWnd) pSourceCodeWnd->ToggleBookMark(); return true; } bool CSourceDebugFrameWnd::OnEventNextBookMark(IN WISP_MSG*pMsg) { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*) m_MultiSourceCodeView.GetActiveWnd(); if(pSourceCodeWnd) pSourceCodeWnd->GotoNextBookMark(); return true; } bool CSourceDebugFrameWnd::OnEventPrevBookMark(IN WISP_MSG*pMsg) { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*) m_MultiSourceCodeView.GetActiveWnd(); if(pSourceCodeWnd) pSourceCodeWnd->GotoPrevBookMark(); return true; } bool CSourceDebugFrameWnd::OnEventClearBookMark(IN WISP_MSG*pMsg) { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*) m_MultiSourceCodeView.GetActiveWnd(); if(pSourceCodeWnd) pSourceCodeWnd->ClearAllBookMark(); return true; } void CSourceDebugFrameWnd::UpdateItemState() { CSourceCodeWnd*pSourceCodeWnd = (CSourceCodeWnd*)m_MultiSourceCodeView.GetActiveWnd(); bool bState; bState = pSourceCodeWnd!=NULL; m_WndMenu.EnableItem(EVENT_ID_GOTOLINE,bState); m_Toolbar.EnableItem(EVENT_ID_GOTOLINE,bState); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_TOGGLE,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_TOGGLE,bState); bState = pSourceCodeWnd?pSourceCodeWnd->m_BookMark.Count()>0:false; m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_NEXT,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_NEXT,bState); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_PREV,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_PREV,bState); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_CLEAR,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_CLEAR,bState); bState = gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_WndMenu.EnableItem(EVENT_ID_STEP,bState); m_Toolbar.EnableItem(EVENT_ID_STEP,bState); m_WndMenu.EnableItem(EVENT_ID_PROCEED,bState); m_Toolbar.EnableItem(EVENT_ID_PROCEED,bState); m_WndMenu.EnableItem(EVENT_ID_RETURN,bState); m_Toolbar.EnableItem(EVENT_ID_RETURN,bState); m_WndMenu.EnableItem(EVENT_ID_CONTINUE,bState); m_Toolbar.EnableItem(EVENT_ID_CONTINUE,bState); m_Toolbar.Update(); } void CSourceDebugFrameWnd::UnloadSDSModule(CSDSModule*pSDSModule) { if(pSDSModule==NULL) return; m_SourceVariableWatchWnd.UnloadSDSModule(pSDSModule); } ================================================ FILE: Project/Syser/Source/SourceDebugFrameWnd.h ================================================ #ifndef _SOURCEDEBUGFRAMEWND_H_ #define _SOURCEDEBUGFRAMEWND_H_ #include "SyserSymAnalyzer.h" #include "MultiSourceCodeView.h" #include "SourceDebugClassView.h" #include "ObjFileView.h" #include "SDSModuleList.h" #include "SourceCodeWatchList.h" #include "TypeViewerWnd.h" class CSourceDebugFrameWnd : public CWispSplitWnd { enum SOURCEDEBUGMAINWNDCHILD { WND_CHILD_FILELISTEXPLORER=WISP_WM_USER_START+200, WND_CHILD_FUNCTIONEXPLORER, WND_CHILD_IMPORTTABLEVIEW, WND_CHILD_EXPORTTABLEVIEW, WND_CHILD_WATCHEXPLORER, WND_CHILD_SOURCEFILETABWND, WND_CHILD_SOURCECODEWND, WND_CHILD_SDS_MODULE_LIST, WND_CHILD_SOURCE_CODE_WATCH_LIST, }; public: CSDSModuleList m_SDSModuleList; CWispTabWnd m_ExplorerTabWnd; CWispTabWnd m_MonitorTabWnd; CTerminalWnd m_TerminalWnd; CMultiSourceCodeView m_MultiSourceCodeView; CTypeViewerWnd m_SourceVariableWatchWnd; CWispToolbar m_Toolbar; CMoveFramMenu m_WndMenu; CWispSplitWnd m_HorzSplitWnd; CWispSplitWnd m_VertSplitWnd; CWispDIBList m_IconDIBList; CSourceDebugFrameWnd(); ~CSourceDebugFrameWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventBreakPoint) DECLARE_WISP_MSG_EVENT(OnEventDataViewForm) DECLARE_WISP_MSG_EVENT(OnEventRegView) DECLARE_WISP_MSG_EVENT(OnEventCallStack) DECLARE_WISP_MSG_EVENT(OnEventGoToLine) DECLARE_WISP_MSG_EVENT(OnEventContinue) DECLARE_WISP_MSG_EVENT(OnEventStep) DECLARE_WISP_MSG_EVENT(OnEventProceed) DECLARE_WISP_MSG_EVENT(OnEventReturn) DECLARE_WISP_MSG_EVENT(OnEventToggleBookMark) DECLARE_WISP_MSG_EVENT(OnEventNextBookMark) DECLARE_WISP_MSG_EVENT(OnEventPrevBookMark) DECLARE_WISP_MSG_EVENT(OnEventClearBookMark) DECLARE_WISP_MSG_EVENT(OnHotKeyEventSDSModule); DECLARE_WISP_MSG_EVENT(OnHotKeyEventWatchList); DECLARE_WISP_MSG_EVENT(OnHotKeyEventConsole); DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuDebug) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuView) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuMonitor) void AdjustSplitViewSize(); void UpdateItemState(); void UpdateAllView(bool bShowEIPDoc = false); void UnloadSDSModule(CSDSModule*pSDSModule); CSourceCodeWnd* ShowSourceFile(CSDSModule*pSDSModule,DWORD FileID,DWORD LineNum); }; #endif // _SOURCEDEBUGFRAMEWND_H_ ================================================ FILE: Project/Syser/Source/SourceDebugStartPage.cpp ================================================ #include "StdAfx.h" #include "SourceDebugStartPage.h" #include "MultiSourceCodeView.h" #ifndef CODE_OS_NT_DRV #include "SyserApp.h" #else #include "SyserNTDrvApp.h" #endif WISP_MSG_MAP_BEGIN(CSourceDebugStartPageWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CSourceDebugStartPageWnd) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CSourceDebugStartPageWnd) WISP_MSG_CMD_MAP(SYMBOLMODULE_CHILD_WND_ID,OnSelectSymbolModule) WISP_MSG_CMD_MAP_END CSourceDebugStartPageWnd::CSourceDebugStartPageWnd() { } CSourceDebugStartPageWnd::~CSourceDebugStartPageWnd() { } bool CSourceDebugStartPageWnd::OnCreate(IN WISP_MSG* pMsg) { SetBGColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_WHITE]); WISP_RECT rc={21,80,474,410}; m_SymbolModuleList.Create(WSTR(""),&rc,this,SYMBOLMODULE_CHILD_WND_ID,WISP_WS_NULL|WISP_WLS_EMPTY_SEL_RECT); m_SymbolModuleList.InsertColumn(WSTR(""),200); return true; } bool CSourceDebugStartPageWnd::OnUpdateClient(IN WISP_MSG* pMsg) { int i = 0; WISP_RECT rc={20,40,225,16},TextRC={25,80,340,20}; CWispWnd::OnUpdateClient(pMsg); m_ClientDC.DrawShadowString(&rc,WSTR("Select an exist symbol module"),1); rc.y=60;rc.cx=476,rc.cy = m_ClientRect.cy - 60 - 40; if(rc.cy < 40) rc.cy=40; m_ClientDC.DrawRect(&rc,RGB(192,192,192)); rc.x++,rc.cx-=2,rc.cy=20; m_ClientDC.DrawFullRect(&rc,RGB(170,170,170)); m_ClientDC.DrawString(WSTR(" Name"),&rc,WISP_DT_VCENTER|WISP_DT_LEFT); rc.x+=340; m_ClientDC.DrawString(WSTR(" Time"),&rc,WISP_DT_VCENTER|WISP_DT_LEFT); return false; } bool CSourceDebugStartPageWnd::OnRecalcLayout(IN WISP_MSG* pMsg) { CMultiSourceCodeView* pMultiSource = (CMultiSourceCodeView*)m_ParentWnd; Resize(pMultiSource->m_ClientRect.cx ,pMultiSource->m_ClientRect.cy); return true; } bool CSourceDebugStartPageWnd::OnSelectSymbolModule(IN WISP_MSG* pMsg) { HANDLE hItem; if(pMsg->Command.CmdMsg==WISP_CMD_ITEM_SELECTED) { hItem = pMsg->Command.Param2; NUM_PTR value = m_SymbolModuleList.GetItemData(hItem,0); PLOADMODULESYMBOL pLoadModule = (PLOADMODULESYMBOL)value; if(pLoadModule) gpSyser->m_MainFrame.m_SourceDebugFrameWnd.OnSelectSymbolModule(pLoadModule->pSyserSymAnalyzer); else gpSyser->m_MainFrame.m_SourceDebugFrameWnd.OnSelectSymbolModule(NULL); } return true; } void CSourceDebugStartPageWnd::InsertSymbolModule(char* ModuleName,void*pData) { HANDLE hItem; hItem = m_SymbolModuleList.InsertItemA(ModuleName); m_SymbolModuleList.SetItemData(hItem,0,*(DWORD*)&pData); Update(); } bool CSourceDebugStartPageWnd::RemoveSymbolModule(void*pData) { HANDLE hItem; NUM_PTR value; gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.RemoveSymbolModule(pData); hItem = m_SymbolModuleList.GetItem(NULL); while(hItem) { value = m_SymbolModuleList.GetItemData(hItem,0); if((void*)value==pData) { m_SymbolModuleList.RemoveItem(hItem); return true; } hItem = m_SymbolModuleList.GetNextItem(hItem); } Update(); return false; } ================================================ FILE: Project/Syser/Source/SourceDebugStartPage.h ================================================ #ifndef _SOURCEDEBUGSTARTPAGE_H_ #define _SOURCEDEBUGSTARTPAGE_H_ class CSourceDebugStartPageWnd:public CWispWnd { enum CSOURCEDEBUGSTARTWND_CHILD_WND_ID { SYMBOLMODULE_CHILD_WND_ID =WISP_WM_USER_START, }; public: CSourceDebugStartPageWnd(void); ~CSourceDebugStartPageWnd(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD(OnSelectSymbolModule) CWispList m_SymbolModuleList; void InsertSymbolModule(char*ModuleName,void*pData); bool RemoveSymbolModule(void*pData); }; #endif //_SOURCEDEBUGSTARTPAGE_H_ ================================================ FILE: Project/Syser/Source/SourceExplorer.cpp ================================================ #include "StdAfx.h" #include "SourceExplorer.h" WISP_MSG_MAP_BEGIN(CSourceExplorer) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispWnd) CSourceExplorer::CSourceExplorer() { } CSourceExplorer::~CSourceExplorer() { } bool CSourceExplorer::OnCreate(IN WISP_MSG*pMsg) { return true; } bool CSourceExplorer::OnDestroy(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/Syser/Source/SourceExplorer.h ================================================ #ifndef _SOURCE_EXPLORER_H_ #define _SOURCE_EXPLORER_H_ class CSourceExplorer : public CWispWnd { public: CSourceExplorer(); ~CSourceExplorer(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); }; #endif ================================================ FILE: Project/Syser/Source/Sources ================================================ TARGETNAME=Syser TARGETPATH=..\..\..\Bin TARGETTYPE=EXPORT_DRIVER C_DEFINES = $(C_DEFINES) /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /D_SYSER_ !if defined(__DEMO__VERSION__) C_DEFINES = $(C_DEFINES) /D__DEMO__VERSION__ !endif DLLDEF=SyserKDM.def PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h PRECOMPILED_PCH=StdAfx.pch PRECOMPILED_OBJ=StdAfx.obj TARGETLIBS= ..\..\EXEAnalyzer\Source\Obj\i386\EXEAnalyzer.lib \ ..\..\Code\Source\Obj\i386\Code.lib \ ..\..\Wisp\Source\Obj\i386\Wisp.lib \ ..\..\..\Addition\BootVid\bootvid.lib \ $(DDK_LIB_PATH)\libcntpr.lib \ $(DDK_LIB_PATH)\ntstrsafe.lib INCLUDES = ..\..\..\Addition\SyserDebugger SOURCES=NTUtility.cpp \ Resource.cpp \ Syser.cpp \ InputDriver.cpp \ SyserNTDrvApp.cpp \ DbgProcess.cpp \ X86Optr.cpp \ Services.cpp \ SysInfo.cpp \ ConsoleWnd.cpp \ MainFrame.cpp \ MultiDataView.cpp \ MultiCodeView.cpp \ CodeView.cpp \ DataView.cpp \ VideoDriver.cpp \ OSData.cpp \ pci.cpp \ IDTWnd.cpp \ GDTWnd.cpp \ PageMapWnd.cpp \ RegHelpWnd.cpp \ SerialPort.cpp \ ProcessList.cpp \ GeneRegList.cpp \ FpuRegisterList.cpp \ SSERegisterList.cpp \ WatchList.cpp \ StackWatchList.cpp \ ObjectDirectory.cpp \ X86RegHelpTabWnd.cpp \ ObjectDirectoryWnd.cpp \ SystemExplorer.cpp \ SourceExplorer.cpp \ GameSpy.cpp \ SyserUI.cpp \ DebuggerSelectForm.cpp \ PluginListForm.cpp \ SyserConfig.cpp \ SourceDebugFrameWnd.cpp \ MultiSourceCodeView.cpp \ SourceCodeWnd.cpp \ SyserSymAnalyzer.cpp \ SyserOption.cpp \ SyserMemoryReadWrite.cpp \ SourceDebugClassView.cpp \ Lex2.cpp \ MultiCPU.cpp \ SyserConnect.cpp \ NMIInterruptHandle.cpp \ InterruptPatch.cpp \ LocalAPIC.cpp \ IOAPIC.cpp \ SDServer.cpp \ PIC_8259.cpp \ TimerInterrupt.cpp \ HardWareInterruptCtrl.cpp \ SerialMouse.cpp \ Mouse.cpp \ PS2Mouse.cpp \ UHCIDevice.cpp \ OHCIDevice.cpp \ Int3.cpp \ Int1.cpp \ DataOperatorDlg.cpp \ AddTypeViewerDlg.cpp \ SearchDialog.cpp \ PCSystem.cpp \ SyserCmd.cpp \ BpintCmd.cpp \ DebugCmd.cpp \ OtherCmd.cpp \ USBCmd.cpp \ Keyboard.cpp \ TouchPad.cpp \ TrackPoint.cpp \ CrossReferenceForm.cpp \ RunTrace.cpp \ RunTraceWnd.cpp \ ModuleListWnd.cpp \ ThreadListWnd.cpp \ CallStackWnd.cpp \ CallStack.cpp \ ShareCmd.cpp \ FunctionListWnd.cpp \ ErrorCodeWnd.cpp \ ErrorCodeTable.cpp \ NtstatStr.cpp \ SystemIoctl.cpp \ SEHChainWnd.cpp \ Initialize.cpp \ GlobalVariable.cpp \ ColorOption.cpp \ VMWareSupport.cpp \ BugCheckCode.cpp \ int0xd.cpp \ int0xe.cpp \ int0x6.cpp \ int0xc.cpp \ int0xb.cpp \ SDSModuleList.cpp \ SourceCodeWatchList.cpp \ CommentList.cpp \ TypeViewerWnd.cpp \ DataViewForm.cpp \ SyserDriver.rc \ VirtualPCSupport.cpp \ BreakPointForm.cpp \ CodeBPEdit.cpp \ DataBPEdit.cpp \ CopyOnWritePatch.cpp \ Dump.cpp \ StringReference.cpp \ SyserAboutForm.cpp \ PEExplorer.cpp \ Cmd_CPUID.cpp \ Cmd_CPU.cpp \ cmd_msr.cpp \ IBMAsciiWnd.cpp \ KeyMappingPage.cpp \ KernelObjectCmd.cpp \ Analyzer.cpp \ HwndCmd.cpp \ HwndWnd.cpp \ OSProcessThread.cpp \ WndStringReference.cpp \ LastBranch.cpp \ PatchKeBugCheckEx.cpp \ SyserCAbi.cpp \ SyserDriverMC.mc AMD64_SOURCES=..\ common-amd64.asm I386_SOURCES=\ common-x86.asm \ interrupt-x86.asm \ compatibility-x86.asm \ Function.asm ================================================ FILE: Project/Syser/Source/StackWatchList.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "StackWatchList.h" #include "StringReference.h" WISP_MENU_RES_ITEM StackWatchMenu[]= { {WSTR("Show Data "), EVENT_ID_SHOW_DATA,127}, {WSTR("Show Code "), EVENT_ID_SHOW_CODE,126}, WISP_MENU_RES_SEPARATOR, {WSTR("Show ESP Address"), EVENT_ID_SHOW_ESP_ADDR,119}, {WSTR("Show EBP Address"), EVENT_ID_SHOW_EBP_ADDR,119}, WISP_MENU_RES_SEPARATOR, {WSTR("Address Mode"), EVENT_ID_ADDRESS_MODE_HEX, 0,WISP_MIS_CHECKBOX}, {WSTR("Offset Mode"), EVENT_ID_OFFSET_MODE_HEX, 0,WISP_MIS_CHECKBOX}, {WSTR("Relative to ESP"), EVENT_ID_RELATIVE_TO_ESP, 0,WISP_MIS_CHECKBOX}, {WSTR("Relative to EBP"), EVENT_ID_RELATIVE_TO_EBP, 0,WISP_MIS_CHECKBOX}, WISP_MENU_RES_SEPARATOR, {WSTR("Low->High Address"), EVENT_ID_ADDRESS_ORFER, 0}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CStackWatchList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_SCROLL_EVENT,OnScrollEvent) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_CMD_MAP_BEGIN(CStackWatchList) WISP_MSG_CMD_MAP(WISP_ID_VSLIDE,OnCmdVSlide); WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CStackWatchList) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_EBP_ADDR, OnEventShowEBP) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_ESP_ADDR, OnEventShowESP) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_CODE, OnEventShowCode) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_DATA, OnEventShowData) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_CODE_BY_ADDRESS, OnShowCodeByAddress) WISP_MSG_EVENT_MAP(EVENT_ID_SHOW_DATA_BY_ADDRESS, OnShowDataByAddress) WISP_MSG_EVENT_MAP(EVENT_ID_ADDRESS_MODE_HEX, OnEventAddressModeHex) WISP_MSG_EVENT_MAP(EVENT_ID_OFFSET_MODE_HEX, OnEventOffsetModeHex) WISP_MSG_EVENT_MAP(EVENT_ID_RELATIVE_TO_ESP, OnEventRelativeToESP) WISP_MSG_EVENT_MAP(EVENT_ID_RELATIVE_TO_EBP, OnEventRelativeToEBP) WISP_MSG_EVENT_MAP(EVENT_ID_ADDRESS_ORFER, OnEventToggleAddressOrder) WISP_MSG_EVENT_MAP_END CStackWatchList::CStackWatchList() { m_ScrollSpace = 2; m_AddrLowToHigh=true; } bool CStackWatchList::OnCmdVSlide(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { SetScrollBarCurPos(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,false); } return true; } bool CStackWatchList::OnEventShowEBP(IN WISP_MSG*pMsg) { UpdateContext(*X86_REG_PTR.pEBP); return true; } bool CStackWatchList::OnEventShowESP(IN WISP_MSG*pMsg) { UpdateContext(*X86_REG_PTR.pESP); return true; } bool CStackWatchList::OnEventShowCode(IN WISP_MSG*pMsg) { DWORD Value; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ULPOS Address=(ULPOS)GetItemData(hItem,1); if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_CODE((ULPOS)GetItemData(hItem,1),true); return true; } bool CStackWatchList::OnShowCodeByAddress(IN WISP_MSG*pMsg) { DWORD Value; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ULPOS Address=(ULPOS)GetItemData(hItem,0); if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_CODE((ULPOS)GetItemData(hItem,0),true); return true; } bool CStackWatchList::OnEventShowData(IN WISP_MSG*pMsg) { DWORD Value; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ULPOS Address=(ULPOS)GetItemData(hItem,1); if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_DATA((ULPOS)GetItemData(hItem,1)); return true; } bool CStackWatchList::OnShowDataByAddress(IN WISP_MSG*pMsg) { DWORD Value; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; ULPOS Address=(ULPOS)GetItemData(hItem,0); if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_DATA((ULPOS)GetItemData(hItem,0)); return true; } bool CStackWatchList::OnCreate(IN WISP_MSG*pMsg) { m_Style|=WISP_WLS_VERT_LINE; SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); HANDLE hItem; int FontWidth = m_ClientDC.GetTextExtent(WSTR("X")); InsertColumn(WISP_STR("Address"),FontWidth*9); InsertColumn(WISP_STR("Value[F2]"),FontWidth*10,WISP_WLCS_EDITABLE); InsertColumn(WISP_STR("Context"),100); m_CurAddr = 0; for(int n=0;nStyle = WISP_SS_NORMAL; m_ScrollBar[WISP_SB_VERT]->bHide = false; m_PopupMenu.CreatePopupMenu(StackWatchMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hMenuShowCode = m_PopupMenu.GetItem(EVENT_ID_SHOW_CODE); m_hMenuShowData = m_PopupMenu.GetItem(EVENT_ID_SHOW_DATA); m_hAddrLowToHigh = m_PopupMenu.GetItem(EVENT_ID_ADDRESS_ORFER); AttachShortcutKey(); return true; } void CStackWatchList::AttachShortcutKey() { if(gpSyser->AttachShortcutKey(EVENT_ID_SHOW_CODE,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN,EVENT_ID_SHOW_CODE); if(gpSyser->AttachShortcutKey(EVENT_ID_SHOW_DATA_BY_ADDRESS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL | WISP_VK_RETURN,EVENT_ID_SHOW_DATA_BY_ADDRESS); if(gpSyser->AttachShortcutKey(EVENT_ID_SHOW_DATA,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_RETURN,EVENT_ID_SHOW_DATA); if(gpSyser->AttachShortcutKey(EVENT_ID_SHOW_CODE_BY_ADDRESS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_RETURN,EVENT_ID_SHOW_CODE_BY_ADDRESS); } bool CStackWatchList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CStackWatchList::OnSize(IN WISP_MSG*pMsg) { if(pMsg->Resize.NewSizeDelta.cy==0) return true; ResetContext(); if(gpSyser->m_pDebugger==NULL || gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; UpdateContext(*X86_REG_PTR.pESP); return true; } bool CStackWatchList::OnScrollEvent(IN WISP_MSG*pMsg) { if(gpSyser->m_pDebugger==NULL || gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return false; if(pMsg->ScrollEvent.SBType==WISP_SB_VERT) { switch(pMsg->ScrollEvent.Event) { case WISP_SB_PAGE_UP: if(m_AddrLowToHigh) UpdateContext(m_CurAddr-(sizeof(VALUE_TYPE)*m_ScrollBar[WISP_SB_VERT]->Page),true); else UpdateContext(m_CurAddr+(sizeof(VALUE_TYPE)*m_ScrollBar[WISP_SB_VERT]->Page),true); break; case WISP_SB_PAGE_DOWN: if(m_AddrLowToHigh) UpdateContext(m_CurAddr+(sizeof(VALUE_TYPE)*m_ScrollBar[WISP_SB_VERT]->Page),true); else UpdateContext(m_CurAddr-(sizeof(VALUE_TYPE)*m_ScrollBar[WISP_SB_VERT]->Page),true); break; case WISP_SB_DEC: if(m_AddrLowToHigh) UpdateContext(m_CurAddr-sizeof(VALUE_TYPE),true); else UpdateContext(m_CurAddr+sizeof(VALUE_TYPE),true); break; case WISP_SB_INC: if(m_AddrLowToHigh) UpdateContext(m_CurAddr+sizeof(VALUE_TYPE),true); else UpdateContext(m_CurAddr-sizeof(VALUE_TYPE),true); break; case WISP_SB_POS_CHANGE: if(m_AddrLowToHigh) UpdateContext(m_CurAddr+pMsg->ScrollEvent.Delta*sizeof(VALUE_TYPE),true); else UpdateContext(m_CurAddr-pMsg->ScrollEvent.Delta*sizeof(VALUE_TYPE),true); return false; break; } SetScrollBarCurPos(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace); return false; } return true; } DWORD CStackWatchList::FindShortcutKey(DWORD CmdID) { STACKHOTKEYMAP::IT BeginIT,EndIT; BeginIT = m_HotKeyMap.Begin(); EndIT = m_HotKeyMap.End(); for(;BeginIT!=EndIT;BeginIT++) { if(*BeginIT == CmdID) return BeginIT.Key(); } return 0; } void CStackWatchList::PopupMenu(IN WISP_MSG* pMsg) { HANDLE hItem; CWispDIB*pIcon; ULPOS Address; bool bIsAddressVailed=false; BYTE Buffer; WCHAR szBuffer[128]; WCHAR wHotKeyBuffer[50]; if(pMsg) { WISP_RECT CellRC; GetItemCellRect(GetItem(0),0,&CellRC); if(pMsg->MsgMouseWndPT.x >= CellRC.x && pMsg->MsgMouseWndPT.x<=CellRC.x+CellRC.cx) { } } hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem) { Address = (ULPOS)GetItemData(hItem,1); if(gpSyser->m_pDebugger->ReadMemory(Address,&Buffer,sizeof(Buffer))==sizeof(Buffer)) { bIsAddressVailed=true; } WISP_PCSTR pszText = (WISP_PCSTR)GetItemText(hItem,1); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_SHOW_CODE_BY_ADDRESS),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Show code at:%s %s"),pszText,wHotKeyBuffer); m_PopupMenu.SetItemText(m_hMenuShowCode,szBuffer); gpSyser->m_MainFrame.m_KeyMapForm.GetHotKeyName(FindShortcutKey(EVENT_ID_SHOW_DATA_BY_ADDRESS),wHotKeyBuffer); TSPrintf(szBuffer,WSTR("Show data at:%s %s"),pszText,wHotKeyBuffer); m_PopupMenu.SetItemText(m_hMenuShowData,szBuffer); } m_PopupMenu.EnableItem(m_hMenuShowCode,hItem!=NULL && bIsAddressVailed); m_PopupMenu.EnableItem(m_hMenuShowData,hItem!=NULL && bIsAddressVailed); m_PopupMenu.CheckItem(EVENT_ID_ADDRESS_MODE_HEX,m_AddrShowMode == STACK_WATCH_ADDRESS_MOD); m_PopupMenu.CheckItem(EVENT_ID_OFFSET_MODE_HEX,m_AddrShowMode == STACK_WATCH_OFFSET_MOD); m_PopupMenu.CheckItem(EVENT_ID_RELATIVE_TO_ESP,m_AddrShowMode == STACK_WATCH_REL_TO_ESP_MOD); m_PopupMenu.CheckItem(EVENT_ID_RELATIVE_TO_EBP,m_AddrShowMode == STACK_WATCH_REL_TO_EBP_MOD); if(m_AddrLowToHigh) { pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*10+15); TStrCpy(szBuffer,WSTR("High-->Low Address")); } else { pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*10+14); TStrCpy(szBuffer,WSTR("Low-->High Address")); } m_PopupMenu.SetItemText(m_hAddrLowToHigh,szBuffer); m_PopupMenu.SetItemIcon(m_hAddrLowToHigh,pIcon); m_PopupMenu.Popup(); } bool CStackWatchList::OnKeyEvent(IN WISP_MSG*pMsg) { HANDLE hItem; STACKHOTKEYMAP::IT FindIT; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; if(pMsg->KeyEvent.bKeyDown) { FindIT = m_HotKeyMap.Find(pMsg->KeyEvent.KeyType); if(FindIT!=m_HotKeyMap.End()) { WISP_MSG Msg; memset(&Msg,0,sizeof(Msg)); Msg.Command.CmdID=*FindIT; return OnEvent(&Msg); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: PopupMenu(pMsg); break; case WISP_VK_F2: hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) BeginEditItem(hItem,1); break; case WISP_VK_W: OnEventToggleAddressOrder(NULL); break; case WISP_VK_S: OnEventToggleAddressOrder(NULL); break; } } return true; } bool CStackWatchList::GetValueSym(ULPOS Address,VALUE_TYPE Value,WISP_COLOR_CHAR* szColorBuffer,int ccLen,COMMENT_TYPE* CommentType) { CHAR szBufferA[256]; CHAR szRetBuf[256]; WCHAR szBuffer[256]; CHAR* pStr; bool bSuccess; int nLen=0; int StrType; ULPOS DestAddress; szColorBuffer[0]=0; szBuffer[0] = 0; if(Address == *X86_REG_PTR.pESP) nLen = ColorStrCpy(szColorBuffer,"<-ESP ",SC_WHITE,SC_LIGHT_RED); if(Address == *X86_REG_PTR.pEBP) nLen += ColorStrCat(szColorBuffer,"<-EBP ",SC_WHITE,SC_LIGHT_GREEN); GetSEHSym(Address,Value,szColorBuffer,ccLen); if(GET_STRING_SYM(Value,szBuffer,ccLen-nLen-1,StrType)) { if(StrType == CT_ASCII) ColorStrCat(szColorBuffer,szBuffer,SC_BLUE,0); else if(StrType == CT_UINCODE) ColorStrCat(szColorBuffer,szBuffer,SC_LIGHT_BROWN,0); if(CommentType) *CommentType=(COMMENT_TYPE)StrType; return true; } bSuccess = GET_ALMOST_SYM(Value,szBufferA); szRetBuf[0]=0; if(bSuccess) { *CommentType=CT_SYMBOLS; pStr = TStrChr(szBufferA,'+'); if(pStr) { nLen = gpSyser->m_SyserUI.m_CodeDoc.IsPrevCodeCallInstr(Value,szRetBuf,NULL); if(nLen) { if(gpSyser->m_SyserUI.m_CodeDoc.GetInstrDesAddress(Value-nLen,&DestAddress)) { TSPrintf(szRetBuf,"Return to %08X from %08X ",Value,DestAddress); } else { TSPrintf(szRetBuf,"Return to %08X ",Value); } } else szRetBuf[0]=0; } ColorStrCat(szColorBuffer,szRetBuf,SC_RED,0); ColorStrCat(szColorBuffer,szBufferA,SC_WHITE,0); } else { szBufferA[0]=0; nLen = gpSyser->m_SyserUI.m_CodeDoc.IsPrevCodeCallInstr(Value,szRetBuf,NULL); if(nLen==0) return false; if(gpSyser->m_SyserUI.m_CodeDoc.GetInstrDesAddress(Value-nLen,&DestAddress)) { TSPrintf(szRetBuf,"Return to %08X from %08X",Value,DestAddress); } else TSPrintf(szRetBuf,"(return to %08X)",Value); ColorStrCat(szColorBuffer,szRetBuf,SC_RED,0); *CommentType=CT_RETURN_ADDRESS; } return true; } void CStackWatchList::ItemClickNotify(HANDLE hItem,int Col) { switch(Col) { case 0: switch(m_AddrShowMode) { case STACK_WATCH_ADDRESS_MOD: OnEventOffsetModeHex(NULL); break; case STACK_WATCH_OFFSET_MOD: OnEventRelativeToESP(NULL); break; case STACK_WATCH_REL_TO_ESP_MOD: OnEventRelativeToEBP(NULL); break; case STACK_WATCH_REL_TO_EBP_MOD: OnEventAddressModeHex(NULL); break; } break; } } void CStackWatchList::GetAddressString(ULPOS Address,WISP_PSTR szBuffer) { WISP_CHAR szRelStr[32]; int BaseAddress,Offset; switch(m_AddrShowMode) { case STACK_WATCH_ADDRESS_MOD: TSPrintf(szBuffer,WSTR("%08X"),Address); return; case STACK_WATCH_OFFSET_MOD: BaseAddress=(int)m_BaseActiveAddress; Offset = (int)Address-BaseAddress; TStrCpy(szRelStr,"$"); break; case STACK_WATCH_REL_TO_ESP_MOD: BaseAddress=(int)*X86_REG_PTR.pESP; Offset = (int)Address-BaseAddress; TStrCpy(szRelStr,"ESP"); break; case STACK_WATCH_REL_TO_EBP_MOD: BaseAddress=(int)*X86_REG_PTR.pEBP; Offset = (int)Address-BaseAddress; TStrCpy(szRelStr,"EBP"); break; } if(Offset>0) { TSPrintf(szBuffer,WSTR("%s+%X"),szRelStr,Offset); } else if(Offset==0) { TStrCpy(szBuffer,szRelStr); TStrCat(szBuffer,"==>"); } else { TSPrintf(szBuffer,WSTR("%s-%X"),szRelStr,-Offset); } } void CStackWatchList::GetSEHSym(ULPOS Address,VALUE_TYPE Value,WISP_COLOR_CHAR* szColorBuffer,int ccLen) { SEH_MAP::IT FindIT; FindIT = m_SehMap.Find(Address); if(FindIT!=m_SehMap.End()) { if(FindIT==m_SehMap.Last()) ColorStrCat(szColorBuffer,"End of SEH chain",SC_RED,0); else ColorStrCat(szColorBuffer,"Pointer to next SEH record",SC_RED,0); } else if(m_RSehMap.Find(Value)!=m_RSehMap.End()) { FindIT = m_SehMap.Find(Address-4); if(FindIT!=m_SehMap.End()) ColorStrCat(szColorBuffer,"SEH Handler",SC_RED,0); } } void CStackWatchList::InitSEHMap() { m_SehMap.Clear(); m_RSehMap.Clear(); DWORD dwSEH,dwSize,dwFSBase; if(gpSyser->m_pDebugger->GetSegRegBase( *X86_REG_PTR.pFS ,&dwFSBase,&dwSize)) { SEH_STR SehHeader; SehHeader.dwNext=dwFSBase; int i = 0; dwSEH=dwFSBase; if(gpSyser->m_SyserUI.m_CodeDoc.ReadMemory(dwFSBase ,&dwSEH,sizeof(dwSEH))!=sizeof(dwSEH)) return; for(i = 0; i< 100;i++) { if(gpSyser->m_SyserUI.m_CodeDoc.ReadMemory(dwSEH ,&SehHeader,sizeof(SehHeader))!=sizeof(SehHeader)) break; m_SehMap.InsertUnique(dwSEH,SehHeader.SEHHandler); m_RSehMap.InsertUnique(SehHeader.SEHHandler,dwSEH); dwSEH = SehHeader.dwNext; if(SehHeader.dwNext==0xffffffff) break; } } } void CStackWatchList::UpdateContext(ULPOS Address,bool bRelocal) { HANDLE hItem; VALUE_TYPE Data; WCHAR szBuffer[256]; WISP_COLOR_CHAR szColorBuffer[256]; InitSEHMap(); if(bRelocal) { m_CurAddr = Address; } else { if(m_AddrLowToHigh) { if(Address=m_CurAddr+sizeof(VALUE_TYPE)*m_nLinePerPage*3/4) m_CurAddr = Address - sizeof(VALUE_TYPE)*(m_nLinePerPage/2); } else { if(Address>m_CurAddr-m_nLinePerPage*sizeof(DWORD)/4 || Address<=m_CurAddr-sizeof(VALUE_TYPE)*m_nLinePerPage*3/4) m_CurAddr = Address + sizeof(VALUE_TYPE)*(m_nLinePerPage/2); } Address = m_CurAddr; } hItem = GetNextItem(NULL,WISP_WLIS_NORMAL); while(hItem!=NULL) { GetAddressString(Address,szBuffer); if(Address == *X86_REG_PTR.pESP ) { ColorStrCpy(szColorBuffer,szBuffer,SC_WHITE,SC_LIGHT_RED); SetItemColorText(hItem,0,szColorBuffer); } else if(Address == *X86_REG_PTR.pEBP) { ColorStrCpy(szColorBuffer,szBuffer,SC_WHITE,SC_LIGHT_GREEN); SetItemColorText(hItem,0,szColorBuffer); } else SetItemText(hItem,0,szBuffer); Data = 0; if(gpSyser->m_pDebugger->ReadMemory(Address,&Data,sizeof(Data))==sizeof(Data)) TSPrintf(szBuffer,WSTR("%08X"),Data); else TStrCpy(szBuffer,WSTR("????????")); SetItemData(hItem,0,Address); SetItemText(hItem,1,szBuffer); SetItemData(hItem,1,Data); COMMENT_TYPE CommentType; GetValueSym(Address,Data,szColorBuffer,sizeof(szColorBuffer)/sizeof(szColorBuffer[0]),&CommentType); SetItemColorText(hItem,2,szColorBuffer); if(m_AddrLowToHigh) Address+=sizeof(VALUE_TYPE); else Address-=sizeof(VALUE_TYPE); hItem = GetNextItem(hItem,WISP_WLIS_NORMAL); } UpdateClient(); } void CStackWatchList::ResetContext() { HANDLE hItem; SetItemChildCount(NULL,m_nLinePerPage); EmptyChildItemContext(); hItem = GetItem(0); if(hItem) SelectItem(hItem); SetScrollBarInfo(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,m_nLinePerPage*(m_ScrollSpace+m_ScrollSpace+1),m_nLinePerPage); m_SehMap.Clear(); m_RSehMap.Clear(); } bool CStackWatchList::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(gpSyser->m_pDebugger==NULL||gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return false; if(Col==1) { if(GetItemText(hItem,1)==WSTR("????????")) return false; } return true; } bool CStackWatchList::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { //WCHAR szBuffer[256]; WISP_COLOR_CHAR szColorBuffer[256]; VALUE_TYPE Value; if(CALCEXP(String,&Value)==false) return false; if(Col==0) { } else if(Col==1) { if(GetItemText(hItem,Col)==String) return false; ULPOS Address = (ULPOS)GetItemData(hItem,0); if(gpSyser->m_pDebugger->WriteMemory(Address,&Value,sizeof(Value))!=sizeof(Value)) return false; GetItemEditString().Format(WSTR("%08X"),Value); COMMENT_TYPE CommentType; GetValueSym(Address,Value,szColorBuffer,sizeof(szColorBuffer)/sizeof(szColorBuffer[0]),&CommentType); SetItemColorText(hItem,2,szColorBuffer); return true; } return false; } bool CStackWatchList::OnEventAddressModeHex(IN WISP_MSG*pMsg) { m_AddrShowMode=STACK_WATCH_ADDRESS_MOD; UpdateContext(m_CurAddr,true); return true; } bool CStackWatchList::OnEventOffsetModeHex(IN WISP_MSG*pMsg) { HANDLE hItem = GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; m_BaseActiveAddress=(ULPOS)GetItemData(hItem); m_AddrShowMode=STACK_WATCH_OFFSET_MOD; UpdateContext(m_CurAddr,true); return true; } bool CStackWatchList::OnEventRelativeToESP(IN WISP_MSG*pMsg) { m_AddrShowMode=STACK_WATCH_REL_TO_ESP_MOD; UpdateContext(m_CurAddr,true); return true; } bool CStackWatchList::OnEventRelativeToEBP(IN WISP_MSG*pMsg) { m_AddrShowMode=STACK_WATCH_REL_TO_EBP_MOD; UpdateContext(m_CurAddr,true); return true; } bool CStackWatchList::OnEventToggleAddressOrder(IN WISP_MSG*pMsg) { ULPOS Address; if(m_AddrLowToHigh) Address=m_CurAddr+m_nLinePerPage*sizeof(DWORD); else Address=m_CurAddr-m_nLinePerPage*sizeof(DWORD); m_AddrLowToHigh=!m_AddrLowToHigh; UpdateContext(Address,true); return true; } ================================================ FILE: Project/Syser/Source/StackWatchList.h ================================================ #ifndef _STACK_WATCH_LIST_H_ #define _STACK_WATCH_LIST_H_ typedef DWORD VALUE_TYPE; enum STACK_WATCH_ADDR_MOD { STACK_WATCH_ADDRESS_MOD = 0, STACK_WATCH_OFFSET_MOD, STACK_WATCH_REL_TO_ESP_MOD, STACK_WATCH_REL_TO_EBP_MOD }; typedef enum _COMMENT_TYPE { CT_ASCII=0, CT_UINCODE=1, CT_SYMBOLS, CT_RETURN_ADDRESS }COMMENT_TYPE; class CStackWatchList : public CWispList { typedef struct _SEH_STR { DWORD dwNext; DWORD SEHHandler; }SEH_STR; typedef TMap SEH_MAP; //typedef bool (CStackWatchList::*STACK_HOTKEY_FP)(IN UINT Index); //class CStackHotKey //{ //public: // UINT m_ColIndex; // STACK_HOTKEY_FP m_fpHotKey; // CStackHotKey(){}; // CStackHotKey(UINT Index,STACK_HOTKEY_FP fpHotKey):m_ColIndex(Index),m_fpHotKey(fpHotKey){}; // ~CStackHotKey(){} //}; typedef TMap STACKHOTKEYMAP; public: CStackWatchList(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnScrollEvent) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG(OnCmdVSlide) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventShowEBP) DECLARE_WISP_MSG_EVENT(OnEventShowESP) DECLARE_WISP_MSG_EVENT(OnEventShowCode) DECLARE_WISP_MSG_EVENT(OnEventShowData) DECLARE_WISP_MSG_EVENT(OnEventAddressModeHex) DECLARE_WISP_MSG_EVENT(OnEventOffsetModeHex) DECLARE_WISP_MSG_EVENT(OnEventRelativeToESP) DECLARE_WISP_MSG_EVENT(OnEventRelativeToEBP) DECLARE_WISP_MSG_EVENT(OnEventToggleAddressOrder) DECLARE_WISP_MSG_EVENT(OnShowCodeByAddress) DECLARE_WISP_MSG_EVENT(OnShowDataByAddress) public: void ItemClickNotify(HANDLE hItem,int Col); void GetAddressString(ULPOS Address,WISP_PSTR szBuffer); void UpdateContext(ULPOS Address,bool bRelocal=false); void ResetContext(); bool GetValueSym(ULPOS Address,VALUE_TYPE Value,WISP_COLOR_CHAR* szBuffer,int ccLen,COMMENT_TYPE* CommentType); void GetSEHSym(ULPOS Address,VALUE_TYPE Value,WISP_COLOR_CHAR* szColorBuffer,int ccLen); bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void PopupMenu(IN WISP_MSG* pMsg); void AttachShortcutKey(); DWORD FindShortcutKey(DWORD CmdID); void InitSEHMap(); int m_ScrollSpace; ULPOS m_CurAddr; HANDLE m_hMenuShowCode; HANDLE m_hMenuShowData; HANDLE m_hAddrLowToHigh; CWispMenu m_PopupMenu; STACK_WATCH_ADDR_MOD m_AddrShowMode; ULPOS m_BaseActiveAddress; WISP_POINT m_RightMenuPoint; /*******************************************************************************************/ /* m_AddrLowToHigh = true ַʾӵ͵ַߵַ */ /*******************************************************************************************/ bool m_AddrLowToHigh; STACKHOTKEYMAP m_HotKeyMap; SEH_MAP m_SehMap; SEH_MAP m_RSehMap; }; #endif ================================================ FILE: Project/Syser/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/Syser/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #ifndef CODE_OS_NT_DRV #include #include #include #include #include #include using namespace std; #endif #include "../../Code/Source/Code.h" #include "../../EXEAnalyzer/Source/EXEAnalyzer.h" #include "../../Wisp/Source/Wisp.h" //#include "../../SerialNumber/Source/SerialNumber.h" //#include "../../SerialNumber/Source/Validate.h" #include "X86Define.h" #include #include "../../Addition/DiaSDK2005/include/cvconst.h" #ifdef CODE_OS_NT_DRV #include #include #include #include #include #include #include "NTUtility.h" #include "Undoc.h" #include "pcidef.h" #include "pci.h" #include "SyserDefine.h" #include "OSData.h" #include "X86Optr.h" #include "GlobalVariable.h" #include "../../SysBoot/Source/SysBoot.h" #include "../../SysLang/Source/SysLang.h" //#include "../../SDbgMsg/Source/SDbgMsg.h" #include "../../BootVid/Source/bootvid.h" #define AnsiToUnicode SyserAnsiToUnicode #define UnicodeToAnsi SyserUnicodeToAnsi #else //CODE_OS_WIN #include #include #include #include "SyserDefine.h" #include "../../WinWisp/Source/WinWisp.h" #include "../../SyserApp/Source/SourceDebug.h" #include "../../SyserApp/Source/NoPDBSymbol.h" #endif #include "Resource.h" #include "SyserResource.h" #include "SyserOption.h" #include "ColorOption.h" #include "SyserMemoryReadWrite.h" #include "../../Addition/SyserDebugger/SDSymbol.h" #include "../../Addition/SyserDebugger/SyserVersion.h" #endif ================================================ FILE: Project/Syser/Source/StringReference.cpp ================================================ #include "stdafx.h" #include "StringReference.h" #include "Syser.h" CFindString::CFindString() { } CFindString::~CFindString() { } bool CFindString::IsPrint(const BYTE cChar) { if (cChar<0x20 || cChar==0xff) return false; return true; } bool CFindString::IsAlpha(const BYTE cChar) { return (cChar>=0x20 && cChar <=0x7f)? true:false; } ///////////////////////////////////////////////////////// // λΧ λ ַ ַ // ˫ֽ2 B0A1F7FE 6768 6763 ///////////////////////////////////////////////////////// bool CFindString::IsSimplified(const WORD wChar) { BYTE LowByte,HighByte; HighByte = wChar & 0x00ff; LowByte = wChar >> 8; if ((HighByte >= 0xb0 && HighByte <= 0xf7) && (LowByte >= 0xa1 && LowByte <= 0xfe)) return true; return false; } ///////////////////////////////////////////////////////// // λΧ λ ַ ַ // ˫ֽ5 A840A9A0 192 166 ͼη // ˫ֽ1 A1A1A9FE 846 718 ͼη ///////////////////////////////////////////////////////// bool CFindString::IsGraphic(const WORD wChar) { BYTE LowByte,HighByte; HighByte = wChar & 0x00ff; LowByte = wChar >>8; if((LowByte >= 0xa1 && LowByte <= 0xfe) && (HighByte >= 0xa1 && HighByte <= 0xa9)) return true; if((LowByte >= 0x40 && LowByte <= 0xa0) && (HighByte >= 0xa8 && HighByte <= 0xa9)) return true; return false; } bool CFindString::SearchImageMemory(DWORD Address) { CMemPEFile MemPEFile; int i; DWORD BaseAddress; CDbgModule*pDbgModule; #ifdef CODE_OS_NT_DRV pDbgModule = gpSyser->m_pSysDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) #endif pDbgModule = gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) return false; BaseAddress = pDbgModule->m_ModuleBase; if(BaseAddress==0) BaseAddress+=0x400000; if(MemPEFile.Open(BaseAddress,PE_OPEN_NO_IMPORT|PE_OPEN_NO_EXPORT,CDebugger::ReadMemory,gpSyser->m_pDebugger)==false) return false; for(i = 0 ; i < MemPEFile.m_SectCount;i++) { if(MemPEFile.m_Section[i].Characteristics & IMAGE_SCN_MEM_EXECUTE) { SearchSectionMemory(MemPEFile.m_Section[i].VirtualAddress+BaseAddress,MemPEFile.m_Section[i].VirtualSize,MemPEFile.m_ImageBase,MemPEFile.m_ImageSize); } } MemPEFile.Close(); return true; } #define SHOW_HEX 0 bool CFindString::SearchSectionMemory(DWORD Address,DWORD dwSize,DWORD ImageBase,DWORD ImageSize) { DWORD i,Length; BYTE CodeBuffer[MAX_INSTR_LEN]; char DisBuffer[256]; char DisBuffer2[256]; BYTE OutBuffer[512]; int OutputLen; WCHAR wBuffer[256]; bool bIsUnicode=true; CInstrSym InstrSym; INSTRUCTION_INFORMATION InstInfo; DWORD InstLen; ULONGLONG Value; InstInfo.CodeMode=1; InstInfo.CodeBuff=CodeBuffer; InstInfo.pasm=DisBuffer2; CodeBuffer[0]=0; DWORD Count=0; for(i=0;im_pDebugger->ReadMemory(Address+i,CodeBuffer,MAX_INSTR_LEN); if(Length==0) { Address = ((Address+i)&0xfffff000) + 0x1000; Length = 0x1000-((Address+i)%0xfff); continue; } InstInfo.eip=Address+i; InstLen = InstrSym.Disassembler(&InstInfo); if(InstLen==0) { Length+=1; continue; } Length=InstLen; if(TStrICmp(InstInfo.Name,"mov")==0) { if(InstInfo.op[1].mode==mode_address) goto local_001; if(InstInfo.op[1].mode==mode_immed &&InstInfo.op[1].opersize==4) { if(InstInfo.op[1].immed.immed_value>ImageBase && InstInfo.op[1].immed.immed_valuem_pDebugger->ReadMemory((ULPOS)InstInfo.op[1].immed.immed_value,DisBuffer,sizeof(DisBuffer))==sizeof(DisBuffer)) { if(GetString((BYTE*)DisBuffer,sizeof(DisBuffer),OutBuffer,sizeof(OutBuffer),&OutputLen)==true) { if(OutputLen ==2) { if(GetUnicodeString((BYTE*)DisBuffer,sizeof(DisBuffer),OutBuffer,sizeof(OutBuffer),&OutputLen)) { Value =OutputLen/sizeof(WCHAR); Value|=0x80000000; Value<<=32; Value|=InstInfo.op[1].immed.immed_value; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.InsertUnique(Address+i,Value); } } else { TStrCpy(wBuffer,InstInfo.pasm); { Value =OutputLen; Value<<=32; Value|=InstInfo.op[1].immed.immed_value; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.InsertUnique(Address+i,Value); } TStrCpy(wBuffer,OutBuffer); AnsiToUnicode((const char*)OutBuffer,wBuffer,256); #if SHOW_HEX if(OutputLen>3) { for(int k = 0;kImageBase && InstInfo.op[1].addr.displacementm_pDebugger->ReadMemory((ULPOS)InstInfo.op[1].addr.displacement,DisBuffer,sizeof(DisBuffer))==sizeof(DisBuffer)) { if(GetString((BYTE*)DisBuffer,sizeof(DisBuffer),OutBuffer,sizeof(OutBuffer),&OutputLen)) { TStrCpy(wBuffer,InstInfo.pasm); if(OutputLen ==2) { if(GetUnicodeString((BYTE*)DisBuffer,sizeof(DisBuffer),OutBuffer,sizeof(OutBuffer),&OutputLen)) { Value =OutputLen/sizeof(WCHAR); Value|=0x80000000; Value<<=32; Value|=InstInfo.op[1].addr.displacement; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.InsertUnique(Address+i,Value); } } else { { Value =OutputLen; Value<<=32; Value|=InstInfo.op[1].addr.displacement; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.InsertUnique(Address+i,Value); } TStrCpy(wBuffer,OutBuffer); AnsiToUnicode((const char*)OutBuffer,wBuffer,256); #if SHOW_HEX if(OutputLen>3) { for(int k = 0;kImageBase && InstInfo.op[0].immed.immed_valuem_pDebugger->ReadMemory((ULPOS)InstInfo.op[0].immed.immed_value,DisBuffer,sizeof(DisBuffer))==sizeof(DisBuffer)) { if(GetString((BYTE*)DisBuffer,sizeof(DisBuffer),OutBuffer,sizeof(OutBuffer),&OutputLen)) { if(OutputLen ==2) { if(GetUnicodeString((BYTE*)DisBuffer,sizeof(DisBuffer),OutBuffer,sizeof(OutBuffer),&OutputLen)) { Value =OutputLen/sizeof(WCHAR); Value|=0x80000000; Value<<=32; Value|=InstInfo.op[0].immed.immed_value; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.InsertUnique(Address+i,Value); } } else { { Value =OutputLen; Value<<=32; Value|=InstInfo.op[0].immed.immed_value; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.InsertUnique(Address+i,Value); } TStrCpy(wBuffer,OutBuffer); AnsiToUnicode((const char*)OutBuffer,wBuffer,256); #if SHOW_HEX if(OutputLen>3) { for(int k = 0;k= InputBufferLen) { TStrCpy((char *)&OutputBuffer[InputBufferLen - 4], " ..."); nLen = InputBufferLen; } else nLen+=1; } if (OutputLen) *OutputLen = nLen; return bFound; } bool CFindString::GetUnicodeString(IN const BYTE *InputBuffer,IN int InputBufferLen,IN OUT BYTE *OutputBuffer,IN int OutputBufferLen,OUT int *OutputLen) { bool bFound = true; int nLen = 0,i=0; while (i < InputBufferLen && nLen= InputBufferLen) { TStrCpy((char *)&OutputBuffer[InputBufferLen - 4], " ..."); nLen = InputBufferLen; } else nLen+=2; } if (OutputLen) *OutputLen = nLen; return bFound; } ================================================ FILE: Project/Syser/Source/StringReference.h ================================================ #ifndef _STRINGREFERENCE_H_ #define _STRINGREFERENCE_H_ class CFindString { public: bool IsPrint(const BYTE cChar); bool IsAlpha(const BYTE cChar); bool IsSimplified(const WORD wChar); bool IsGraphic(const WORD wChar); bool SearchImageMemory(DWORD Address); bool SearchSectionMemory(DWORD Address,DWORD dwSize,DWORD ImageBase,DWORD ImageSize); public: CFindString(); ~CFindString(); bool GetString(IN const BYTE *InputBuffer,IN int InputBufferLen,IN OUT BYTE *OutputBuffer,IN int OutputBufferLen,OUT int *OutputLen); bool GetUnicodeString(IN const BYTE *InputBuffer,IN int InputBufferLen,IN OUT BYTE *OutputBuffer,IN int OutputBufferLen,OUT int *OutputLen); }; #endif //_STRINGREFERENCE_H_ ================================================ FILE: Project/Syser/Source/SymbolDownloader.cpp ================================================ #include "StdAfx.h" #include "SymbolDownloader.h" #include "NoPDBSymbol.h" #ifdef CODE_OS_WIN #include #include "SyserApp.h" #endif char* CSymbolDownloaderDlg::m_SymbolSiteDefaultPath="http://msdl.microsoft.com/download/symbols"; enum CSymbolDownloaderDlg::WISP_FORM_ID { CMD_ID_BUTTON_ADDFILE = WISP_ID_USER_START, CMD_ID_BUTTON_DELFILE, CMD_ID_BUTTON_GETSYMBOL, CMD_ID_BUTTON_STOP, CMD_ID_LIST_FILE, CMD_ID_EDIT_SYMBOLSITE, CMD_ID_BUTTON_RESETSYMBOLSITE, CMD_ID_EDIT_PDBSAVEPATH, CMD_ID_BUTTON_BROWSEPDBSAVEPATH, CMD_ID_EDIT_SDSSAVEPATH, CMD_ID_BUTTON_BROWSESDSSAVEPATH, }; WISP_MSG_MAP_BEGIN(CSymbolDownloaderDlg) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) //WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) //WISP_MSG_CMD_MAP_BEGIN(CSymbolDownloaderDlg) //WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CSymbolDownloaderDlg) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_RESETSYMBOLSITE,OnEventButtonResetSymbolSite) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_BROWSEPDBSAVEPATH,OnEventButtonBrowsePDBSavePath) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_BROWSESDSSAVEPATH,OnEventButtonBrowseSDSSavePath) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_STOP,OnEventButtonStop) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_ADDFILE,OnEventButtonAddFile) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_DELFILE,OnEventButtonDelFile) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_GETSYMBOL,OnEventButtonGetSymbol) WISP_MSG_EVENT_MAP_END WISP_FORM_RES_ITEM CSymbolDownloaderDlg::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,680,600}, WISP_ID_NULL, WISP_WS_NULL, NULL//WSTR("Symbol Downloader") }, { WISP_CTRL_BUTTON, {520,40,76,24}, CMD_ID_BUTTON_ADDFILE, WISP_BS_NORMAL, WSTR("Add File(s)"), NULL, NULL//WSTR("ļб") }, { WISP_CTRL_BUTTON, {520,75,76,24}, CMD_ID_BUTTON_DELFILE, WISP_BS_NORMAL, WSTR("Del File(s)"), NULL, NULL//WSTR("ɾббѡֵļ") }, { WISP_CTRL_BUTTON, {520,110,76,24}, CMD_ID_BUTTON_GETSYMBOL, WISP_BS_NORMAL, WSTR("Get Symbols"), NULL, NULL//WSTR("бļصķļ") }, { WISP_CTRL_BUTTON, {520,145,76,24}, CMD_ID_BUTTON_GETSYMBOL, CMD_ID_BUTTON_STOP, WSTR("Stop"), NULL, NULL//WSTR("бļصķļ") }, { WISP_CTRL_LIST, {16,40,500,360}, CMD_ID_LIST_FILE, WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER, NULL, NULL, NULL//WSTR("ļб") }, { WISP_CTRL_STATIC_STRING, {36,440,68,16}, 0xffffffff, WISP_WS_NULL, WSTR("Symbol Site"), NULL, NULL//WSTR("ŷĵַ") }, { WISP_CTRL_STATIC_STRING, {36,467,68,16}, 0xffffffff, WISP_WS_NULL, WSTR("Local PDB"), NULL, NULL//WSTR("ļıĿ¼") }, { WISP_CTRL_STATIC_STRING, {36,494,68,16}, 0xffffffff, WISP_WS_NULL, WSTR("Path to SDS"), NULL, NULL//WSTR("Syser Debugger ļĿ¼") }, { WISP_CTRL_EDIT, {110,435,370,24}, CMD_ID_EDIT_SYMBOLSITE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL//WSTR("break condition when break point touched") }, { WISP_CTRL_EDIT, {110,462,370,24}, CMD_ID_EDIT_PDBSAVEPATH, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL//WSTR("break condition when break point touched") }, { WISP_CTRL_EDIT, {110,489,370,24}, CMD_ID_EDIT_SDSSAVEPATH, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL//WSTR("break condition when break point touched") }, { WISP_CTRL_BUTTON, {490,435,76,24}, CMD_ID_BUTTON_RESETSYMBOLSITE, WISP_BS_NORMAL, WSTR("Reset"), NULL, NULL//WSTR("Ϊȱʡֵ") }, { WISP_CTRL_BUTTON, {490,462,76,24}, CMD_ID_BUTTON_BROWSEPDBSAVEPATH, WISP_BS_NORMAL, WSTR("Browse"), NULL, NULL//WSTR("ɾббѡֵļ") }, { WISP_CTRL_BUTTON, {490,489,76,24}, CMD_ID_BUTTON_BROWSESDSSAVEPATH, WISP_BS_NORMAL, WSTR("Browse"), NULL, NULL//WSTR("бļصķļ") }, {WISP_CTRL_NULL} }; CSymbolDownloaderDlg::CSymbolDownloaderDlg() { m_pFormRes = m_FormRes; memset(m_SymbolSitePath,0,sizeof(m_SymbolSitePath)); strcpy(m_SymbolSitePath,m_SymbolSiteDefaultPath); m_SDSSavePathIndex=0; m_PDBSavePathIndex=0; memset(m_SDSSavePath,0,sizeof(m_SDSSavePath)); memset(m_PDBSavePath,0,sizeof(m_PDBSavePath)); m_GetSymbolThread=false; m_Stop=false; InitializeCriticalSection(&m_CriticalSection); } CSymbolDownloaderDlg::~CSymbolDownloaderDlg() { } bool CSymbolDownloaderDlg::OnEventButtonResetSymbolSite(IN WISP_MSG*pMsg) { WCHAR* Text=new WCHAR[TStrLen(m_SymbolSiteDefaultPath)+1]; TStrCpy(Text,m_SymbolSiteDefaultPath); TStrCpy(m_SymbolSitePath,m_SymbolSiteDefaultPath); m_SymbolSiteEdit->SetWindowText(Text); m_SymbolSiteEdit->Update(); return true; } int CALLBACK BrowsePDBSavePathCallbackProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData) { char PathName[1024]; BOOL bRet; LPITEMIDLIST lpItemIDList=NULL; switch(uMsg) { case BFFM_INITIALIZED: SendMessage(hwnd,BFFM_SETSELECTIONA,1,lpData); break; case BFFM_SELCHANGED: bRet = SHGetPathFromIDList((LPITEMIDLIST)lpData,PathName); if(bRet) { SendMessage(hwnd,BFFM_SETSTATUSTEXTA,0,(LPARAM)PathName); } break; case BFFM_VALIDATEFAILED: return 1; } return 0; } int CALLBACK BrowseCallbackSDSSavePathProc(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData) { char PathName[1024]; BOOL bRet; LPITEMIDLIST lpItemIDList=NULL; switch(uMsg) { case BFFM_INITIALIZED: SendMessage(hwnd,BFFM_SETSELECTIONA,1,lpData); break; case BFFM_SELCHANGED: bRet = SHGetPathFromIDList((LPITEMIDLIST)lpData,PathName); if(bRet) { SendMessage(hwnd,BFFM_SETSTATUSTEXTA,0,(LPARAM)PathName); } break; case BFFM_VALIDATEFAILED: return 1; } return 0; return 0; } bool CSymbolDownloaderDlg::OnEventButtonBrowsePDBSavePath(IN WISP_MSG*pMsg) { char PathName[1024]; BOOL bRet; LPITEMIDLIST lpItemIDList=NULL; char DisplayName[]="c:\\"; BROWSEINFO BrowseInfo; LPMALLOC pMalloc; memset(&BrowseInfo,0,sizeof(BROWSEINFO)); if(SHGetMalloc(&pMalloc)==E_FAIL) return true; BrowseInfo.hwndOwner=gpSyser->m_hLocalWnd;; BrowseInfo.pszDisplayName=DisplayName; BrowseInfo.lpszTitle="ѡһ PDB ļĴĿ¼"; BrowseInfo.pidlRoot=NULL; BrowseInfo.ulFlags= BIF_VALIDATE|BIF_EDITBOX|BIF_RETURNFSANCESTORS|BIF_STATUSTEXT; BrowseInfo.lpfn=BrowsePDBSavePathCallbackProc; TStrCpy(m_PDBSavePath,"C:\\windows"); BrowseInfo.lParam=(LPARAM)m_PDBSavePath; lpItemIDList = SHBrowseForFolder(&BrowseInfo); if(lpItemIDList==NULL) return true; bRet = SHGetPathFromIDList(lpItemIDList,PathName); pMalloc->Free(lpItemIDList); pMalloc->Release(); if(bRet) { WCHAR* pText = new WCHAR[TStrLen(PathName)+1]; TStrCpy(pText,PathName); m_PDBSavePathEdit->SetWindowText(pText) ; delete []pText; } return true; } bool CSymbolDownloaderDlg::OnEventButtonBrowseSDSSavePath(IN WISP_MSG*pMsg) { LPITEMIDLIST lpItemIDList=NULL; char PathName[1024]; BOOL bRet; char DisplayName[]=""; BROWSEINFO BrowseInfo; LPMALLOC pMalloc; memset(&BrowseInfo,0,sizeof(BROWSEINFO)); if(SHGetMalloc(&pMalloc)==E_FAIL) return true; BrowseInfo.hwndOwner=gpSyser->m_hLocalWnd;; BrowseInfo.pszDisplayName=DisplayName; BrowseInfo.lpszTitle="ѡһת SDS ļĴĿ¼"; BrowseInfo.pidlRoot=NULL; BrowseInfo.ulFlags= BIF_VALIDATE|BIF_EDITBOX|BIF_RETURNFSANCESTORS|BIF_STATUSTEXT; BrowseInfo.lpfn=BrowseCallbackSDSSavePathProc; TStrCpy(m_SDSSavePath,"c:\\windows"); BrowseInfo.lParam=(LPARAM)m_SDSSavePath; lpItemIDList = SHBrowseForFolder(&BrowseInfo); if(lpItemIDList==NULL) return true; bRet = SHGetPathFromIDList(lpItemIDList,PathName); pMalloc->Free(lpItemIDList); pMalloc->Release(); if(bRet) { WCHAR* pText = new WCHAR[TStrLen(PathName)+1]; TStrCpy(pText,PathName); m_SDSSavePathEdit->SetWindowText(pText) ; delete []pText; } return true; } bool CSymbolDownloaderDlg::OnEventButtonAddFile(IN WISP_MSG*pMsg) { char szBuffer[MAX_FN_LEN]="Binaries Files|*.exe;*.dll;*.cpl;*.sys;*.scr;*.ocx|All Files|*.*|"; char szFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = gpSyser->m_hLocalInst; OpenFileName.hwndOwner = gpSyser->m_hLocalWnd; for(int n = TStrLen(szBuffer);n>=0;n--) { if(szBuffer[n]=='|') szBuffer[n]=0; } OpenFileName.lpstrFilter = szBuffer; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; gpSyser->LockTimer(); if(GetOpenFileName(&OpenFileName)==false) { gpSyser->UnlockTimer(); return true; } gpSyser->UnlockTimer(); WORKFILELIST::IT FindIT; HANDLE hItem; FindIT = m_CurrentFileList.InsertUnique(szFileName); if(FindIT!=m_CurrentFileList.End()) { (*FindIT).FileName = FindIT.Key(); hItem = m_FileList->InsertItemA(szFileName); m_FileList->SetItemData(hItem,1,0); } /* FindIT = m_CurrentFileList.Find(szFileName); if(FindIT==m_CurrentFileList.End()) { m_CurrentFileList.InsertUnique() m_CurrentFileList.Append(szFileName); } */ Update(); return true; } bool CSymbolDownloaderDlg::OnEventButtonStop(IN WISP_MSG*pMsg) { m_Stop=true; return true; } bool CSymbolDownloaderDlg::OnEventButtonDelFile(IN WISP_MSG*pMsg) { HANDLE hItem,hNextItem; WCHAR* pFileName; char* Name; WORKFILELIST::IT FindIT; hItem = m_FileList->GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; do { pFileName = m_FileList->GetItemText(hItem); Name = new char[TStrLen(pFileName)+1]; TStrCpy(Name,pFileName); FindIT = m_CurrentFileList.Find(Name); if(FindIT!=m_CurrentFileList.End()) m_CurrentFileList.Remove(FindIT); hNextItem = m_FileList->GetNextItem(hItem,WISP_WLIS_SELECTED); m_FileList->RemoveItem(hItem); hItem=hNextItem; delete Name; } while(hItem); Update(); return true; } DWORD WINAPI GetSymbolThread(LPVOID lpParameter) { PDBSAVEPATHLIST::IT PDBIT; SDSSAVEPATHLIST::IT SDSIT; STPATHNAME stPDBName; STPATHNAME stSDSName; WORKFILELIST::IT BeginIT,EndIT; WCHAR* PathName; char* pStr; CGetSymbolStat CurSymbolStat; CSymbolDownloaderDlg* pDlg = (CSymbolDownloaderDlg*)lpParameter; pDlg->m_GetSymbolThread=true; pDlg->m_Stop=false; for(;pDlg->m_Stop==false;) { EnterCriticalSection(&pDlg->m_CriticalSection); BeginIT=pDlg->m_CurrentFileList.Begin(); EndIT=pDlg->m_CurrentFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).Stat>=2) continue; break; } if(BeginIT==EndIT) { LeaveCriticalSection(&pDlg->m_CriticalSection); pDlg->m_GetSymbolThread=false; break; } if((*BeginIT).Stat==0) { PathName = pDlg->m_PDBSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stPDBName.Name = pStr; TStrCpy(pStr,PathName); PDBIT = pDlg->m_PDBSavePathList.Find(stPDBName); if(PDBIT==pDlg->m_PDBSavePathList.End()) { pDlg->m_PDBSavePathList.Append(stPDBName); } else { delete []pStr; stPDBName=*PDBIT; } PathName = pDlg->m_SDSSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stSDSName.Name = pStr; TStrCpy(pStr,PathName); SDSIT = pDlg->m_SDSSavePathList.Find(stSDSName); if(SDSIT==pDlg->m_SDSSavePathList.End()) { pDlg->m_PDBSavePathList.Append(stSDSName); } else { delete []pStr; stSDSName=*SDSIT; } (*BeginIT).Stat=1; (*BeginIT).PDBSavePath=stPDBName.Name; (*BeginIT).SDSSavePath=stSDSName.Name; } (*BeginIT).Stat=2; CurSymbolStat=(*BeginIT); LeaveCriticalSection(&pDlg->m_CriticalSection); WIN32_FIND_DATA FindData; HANDLE hFindHandle; hFindHandle = FindFirstFile(CurSymbolStat.PDBSavePath,&FindData); if(INVALID_HANDLE_VALUE) { CreateDirectory(CurSymbolStat.PDBSavePath,NULL); }else FindClose(hFindHandle); hFindHandle = FindFirstFile(CurSymbolStat.SDSSavePath,&FindData); if(INVALID_HANDLE_VALUE) { CreateDirectory(CurSymbolStat.SDSSavePath,NULL); }else FindClose(hFindHandle); pDlg->DownLoadSymbol(CurSymbolStat); } return 0; } bool CSymbolDownloaderDlg::DownLoadSymbol(CGetSymbolStat& SymbolStat) { CPEFile PEFile; DWORD Index; PE_DEBUG_MISC DebugMisc; PE_DEBUG_PDB DebugPDB; PE_DEBUG_CODEVIEW DebugCodeView; PPE_DEBUG_DIRECTORY pDebugDirectory; PE_DATA_DIR DebugDataDirectory; DWORD DebugDirecotryNum=0; DWORD Signature; BOOL bRet; DWORD ErrorCode=0; DWORD SymbolFileType = 0xffffffff; DWORD ReadLen; DWORD PathLen; BYTE * Buffer=NULL; TListDeleteFileList; char* NoPathFileName; char FindPath[MAX_PATH+1]; char FileName[MAX_PATH+1]; char FindFileName[MAX_PATH+1]; memset(&DebugDataDirectory,0,sizeof(PE_DATA_DIR)); if(PEFile.Open(SymbolStat.FileName)==false) return false; if(PEFile.GetDataDirectory(6,&DebugDataDirectory)==false) goto local_quit; if(DebugDataDirectory.VirtualAddress ==0) goto local_quit; if(DebugDataDirectory.Size>0x10000||DebugDataDirectory.Size==0) goto local_quit; NoPathFileName = TGetFileName(SymbolStat.FileName); PathLen = *(DWORD*)&NoPathFileName-*(DWORD*)&SymbolStat.FileName; Buffer=new BYTE[DebugDataDirectory.Size]; memset(Buffer,0,DebugDataDirectory.Size); ReadLen = PEFile.ReadImageMemory(DebugDataDirectory.VirtualAddress+PEFile.m_PEHead.ImageBase,Buffer,DebugDataDirectory.Size); if(ReadLen!=DebugDataDirectory.Size) goto local_quit; pDebugDirectory =(PPE_DEBUG_DIRECTORY) Buffer; DebugDirecotryNum = DebugDataDirectory.Size / sizeof(PE_DEBUG_DIRECTORY); for(Index = 0; Index100) { Buf = new BYTE[ImageFile.m_FileSize]; if(ImageFile.ReadFile(0,Buf,ImageFile.m_FileSize)==false) { goto local_quit; } for(i = 0;i < ImageFile.m_FileSize-3;i++) { if(*(DWORD*)&Buf[i]==Signature) { bRet=true; *DebugCodeView =*(PPE_DEBUG_CODEVIEW)&Buf[i]; break; } } } local_quit: if(Buf) delete []Buf; ImageFile.Close(); return bRet; } bool CSymbolDownloaderDlg::OnEventButtonGetSymbol(IN WISP_MSG*pMsg) { PDBSAVEPATHLIST::IT PDBIT; SDSSAVEPATHLIST::IT SDSIT; SYMFINDPATHLIST::IT SYMIT; STPATHNAME stPDBName; STPATHNAME stSDSName; STPATHNAME stSymFindPathName; WORKFILELIST::IT BeginIT,EndIT; WCHAR* PathName; char* pStr; EnterCriticalSection(&m_CriticalSection); PathName = m_SymbolSiteEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stSymFindPathName.Name = pStr; TStrCpy(pStr,PathName); SYMIT = m_SymFindPathList.Find(stSymFindPathName); if(SYMIT==m_SymFindPathList.End()) { m_SymFindPathList.Append(stSymFindPathName); } else { delete []pStr; stSymFindPathName=*SYMIT; } PathName = m_PDBSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stPDBName.Name = pStr; TStrCpy(pStr,PathName); PDBIT = m_PDBSavePathList.Find(stPDBName); if(PDBIT==m_PDBSavePathList.End()) { m_PDBSavePathList.Append(stPDBName); } else { delete []pStr; stPDBName=*PDBIT; } PathName = m_SDSSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stSDSName.Name = pStr; TStrCpy(pStr,PathName); SDSIT = m_SDSSavePathList.Find(stSDSName); if(SDSIT==m_SDSSavePathList.End()) { m_PDBSavePathList.Append(stSDSName); } else { delete []pStr; stSDSName=*SDSIT; } BeginIT=m_CurrentFileList.Begin(); EndIT=m_CurrentFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).Stat==0) { (*BeginIT).Stat=1; (*BeginIT).PDBSavePath=stPDBName.Name; (*BeginIT).SDSSavePath=stSDSName.Name; (*BeginIT).FindPath=stSymFindPathName.Name; } } if(m_GetSymbolThread==false) { ::CreateThread(NULL,0x100000,GetSymbolThread,this,0,&m_GetSymbolThreadID); } LeaveCriticalSection(&m_CriticalSection); return true; } bool CSymbolDownloaderDlg::OnFormCreate(IN WISP_MSG*pMsg) { InitDbgHelp(); m_AddFileButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_ADDFILE); m_DelFileButton =(CWispButton*)GetFormItem(CMD_ID_BUTTON_DELFILE); m_GetSymbolButton =(CWispButton*)GetFormItem(CMD_ID_BUTTON_GETSYMBOL); m_FileList = (CWispList*)GetFormItem(CMD_ID_LIST_FILE); m_SymbolSiteEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_SYMBOLSITE); m_SymbolSiteResetButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_RESETSYMBOLSITE); m_PDBSavePathEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_PDBSAVEPATH); m_BrowsePDBSavePathButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_BROWSEPDBSAVEPATH); m_SDSSavePathEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_SDSSAVEPATH); m_BrowseSDSSavePathButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_BROWSESDSSAVEPATH); m_FileList->InsertColumn(WSTR("FileName"),400); m_FileList->InsertColumn(WSTR("Status"),90); m_SymSetOptions(SYMOPT_DEBUG); LoadConfigFile(); return true; } bool CSymbolDownloaderDlg::LoadConfigFile() { char Buffer[1024]; WCHAR wBuffer[1024]; DWORD Len; char ConfigFileName[MAX_PATH]; BOOL bRet; GetModulePath(ConfigFileName); TStrCat(ConfigFileName,"SyserApp.ini"); if(gpFileIO->IsFileExist(ConfigFileName)==false) { HANDLE hFile; gpFileIO->CreateFile(ConfigFileName,&hFile); gpFileIO->CloseHandle(hFile); bRet = WritePrivateProfileString("main","SymbolSite","http://msdl.microsoft.com/download/symbols",ConfigFileName); WritePrivateProfileString("main","SdsSavePath","c:\\DownLoadSymbols",ConfigFileName); WritePrivateProfileString("main","PdbSavePath","c:\\SyserSymbols",ConfigFileName); WritePrivateProfileString("list","Counter","0",ConfigFileName); } Len = GetPrivateProfileString("main","SymbolSite","http://msdl.microsoft.com/download/symbols",Buffer,sizeof(Buffer),ConfigFileName); TStrCpy(wBuffer,Buffer); m_SymbolSiteEdit->SetWindowText(wBuffer); Len = GetPrivateProfileString("main","SdsSavePath","c:\\DownLoadSymbols",Buffer,sizeof(Buffer),ConfigFileName); TStrCpy(wBuffer,Buffer); m_PDBSavePathEdit->SetWindowText(wBuffer); Len = GetPrivateProfileString("main","PdbSavePath","c:\\SyserSymbols",Buffer,sizeof(Buffer),ConfigFileName); TStrCpy(wBuffer,Buffer); m_SDSSavePathEdit->SetWindowText(wBuffer); return true; } bool CSymbolDownloaderDlg::InitDbgHelp() { m_DbgHelpModule = LoadLibrary("DbgHelp.dll"); if(m_DbgHelpModule==NULL) return false; LoadDbgHelpApi(); return true; } void CSymbolDownloaderDlg::ReleaseDbgHelp() { if(m_DbgHelpModule) FreeLibrary(m_DbgHelpModule); } bool CSymbolDownloaderDlg::LoadDbgHelpApi() { m_SymFindFileInPath =(fpSymFindFileInPath) GetProcAddress(m_DbgHelpModule,"SymFindFileInPath"); m_SymSetOptions = (fpSymSetOptions)GetProcAddress(m_DbgHelpModule,"SymSetOptions"); m_SymGetOptions = (fpSymGetOptions)GetProcAddress(m_DbgHelpModule,"SymGetOptions"); /* m_UnDecorateSymbolName = (fpUnDecorateSymbolName)GetProcAddress(m_DbgHelpModule,"UnDecorateSymbolName"); */ return true; } ================================================ FILE: Project/Syser/Source/SymbolDownloader.h ================================================ #ifndef _SYMBOLDOWNLOADER_H_ #define _SYMBOLDOWNLOADER_H_ #include typedef struct _STPATHNAME { char* Name; bool operator ==(const struct _STPATHNAME dest)const { return TStrCmp(Name,dest.Name)==0; } }STPATHNAME,*PSTPATHNAME; class CGetSymbolStat { public: DWORD Stat; char* SDSSavePath; char* PDBSavePath; char* FindPath; char* FileName; CGetSymbolStat() { Stat=0; SDSSavePath=NULL; PDBSavePath=NULL; FindPath=NULL; FileName=NULL; } }; typedef TMap WORKFILELIST; typedef TList SDSSAVEPATHLIST; typedef TList PDBSAVEPATHLIST; typedef TList SYMFINDPATHLIST; #define IMAGEAPI_POINTER __stdcall typedef BOOL (IMAGEAPI_POINTER* fpSymFindFileInPath)( HANDLE hprocess, PCSTR SearchPath, PCSTR FileName, PVOID id, DWORD two, DWORD three, DWORD flags, PSTR FoundFile, PFINDFILEINPATHCALLBACK callback, PVOID context ); typedef DWORD (IMAGEAPI_POINTER*fpSymSetOptions)( DWORD SymOptions ); typedef DWORD (IMAGEAPI_POINTER* fpSymGetOptions)(void); class CSymbolDownloaderDlg:public CWispForm { fpSymSetOptions m_SymSetOptions; fpSymGetOptions m_SymGetOptions; fpSymFindFileInPath m_SymFindFileInPath; HMODULE m_DbgHelpModule; DWORD m_GetSymbolThreadID; friend DWORD WINAPI GetSymbolThread(LPVOID lpParameter); CRITICAL_SECTION m_CriticalSection; bool m_Stop; bool m_GetSymbolThread; char m_SDSSavePath[512]; char m_PDBSavePath[512]; char m_SymbolSitePath[1024]; static char *m_SymbolSiteDefaultPath; DWORD m_SDSSavePathIndex; DWORD m_PDBSavePathIndex; SDSSAVEPATHLIST m_SDSSavePathList; PDBSAVEPATHLIST m_PDBSavePathList; SYMFINDPATHLIST m_SymFindPathList; WORKFILELIST m_CurrentFileList; CWispButton* m_AddFileButton; CWispButton* m_DelFileButton; CWispButton* m_GetSymbolButton; CWispList* m_FileList; CWispEdit* m_SymbolSiteEdit; CWispButton* m_SymbolSiteResetButton; CWispEdit* m_PDBSavePathEdit; CWispButton* m_BrowsePDBSavePathButton; CWispEdit* m_SDSSavePathEdit; CWispButton* m_BrowseSDSSavePathButton; public: CSymbolDownloaderDlg(void); ~CSymbolDownloaderDlg(void); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_CMD_MAP //DECLARE_WISP_MSG_CMD(OnAddressChg); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventButtonResetSymbolSite) DECLARE_WISP_MSG_EVENT(OnEventButtonBrowsePDBSavePath) DECLARE_WISP_MSG_EVENT(OnEventButtonBrowseSDSSavePath) DECLARE_WISP_MSG_EVENT(OnEventButtonStop) DECLARE_WISP_MSG_EVENT(OnEventButtonAddFile) DECLARE_WISP_MSG_EVENT(OnEventButtonDelFile) DECLARE_WISP_MSG_EVENT(OnEventButtonGetSymbol) bool DownLoadSymbol(CGetSymbolStat& SymbolStat ); bool GetDebugCodeviewByDbg(char* DbgFileName,PPE_DEBUG_CODEVIEW DebugCodeView); bool LoadConfigFile(); bool TranslateSymbolFile(IN int Type,IN char* pExeFileName,OUT char* pSymbolFileName); bool InitDbgHelp(); void ReleaseDbgHelp(); bool LoadDbgHelpApi(); }; DWORD WINAPI GetSymbolThread(LPVOID lpParameter); #endif //_SYMBOLDOWNLOADER_H_ ================================================ FILE: Project/Syser/Source/SysInfo.cpp ================================================ #include "StdAfx.h" #include "SysInfo.h" #include "Syser.h" #include "X86Optr.h" #include "NTUtility.h" extern DWORD dwgErrorCode; #define FREE_DAY_COUNT 7 PCSTR CSysInfo::m_gNtoskrnlName[]={"ntoskrnl.exe","ntkrnlpa.exe","ntkrnlmp.exe","ntkrpamp.exe",NULL}; bool ConvertFileNameByMacro(CHAR*szFileName,const CHAR*szMacro,const CHAR*szMacroStr) { int Len; CHAR szBuffer[MAX_FN_LEN]; Len = TStrLen(szMacro); if(TStrNICmp(szFileName,szMacro,Len)==0) { TStrCpy(szBuffer,&szFileName[Len]); TStrCpy(szFileName,szMacroStr); TStrCat(szFileName,szBuffer); return true; } return false; } MODULE_ID GetModuleID(ULPOS ImageBase,ULSIZE ImageSize) { PE_HEAD*pHead; ULPOS Offset; __try { if(_GET_WORD(ImageBase)!=0x4D5A && _GET_WORD(ImageBase)!=0x5A4D) return 0; Offset = GET_DWORD(ImageBase,0x3C); if(ImageSize && Offset>=ImageSize-sizeof(PE_HEAD)) return 0; pHead = (PE_HEAD*)(ImageBase+Offset); if(pHead->Signature!=0x4550) return 0; } __except(EXCEPTION_EXECUTE_HANDLER) { ::DbgPrint("Syser : GetModuleID fail. base=%08x size=%08x\n",ImageBase,ImageSize); return 0; } return MAKE_MODULE_ID(pHead->CheckSum ,pHead->TimeDateStamp); } MODULE_ID GetModuleIDAndImageSize(ULPOS ImageBase,ULSIZE& ImageSize) { PE_HEAD*pHead; ULPOS Offset; __try { if(_GET_WORD(ImageBase)!=0x4D5A && _GET_WORD(ImageBase)!=0x5A4D) return 0; Offset = GET_DWORD(ImageBase,0x3C); if(ImageSize && Offset>=ImageSize-sizeof(PE_HEAD)) return 0; pHead = (PE_HEAD*)(ImageBase+Offset); if(pHead->Signature!=0x4550) return 0; ImageSize = pHead->SizeOfImage; } __except(EXCEPTION_EXECUTE_HANDLER) { ::DbgPrint("Syser : GetModuleID fail. base=%08x size=%08x\n",ImageBase,ImageSize); return 0; } return MAKE_MODULE_ID(pHead->CheckSum ,pHead->TimeDateStamp); } CSysInfo::CSysInfo() { DWORD CR3; PEPROCESS curproc; m_pZwQueryVirtualMemory=NULL; m_SyserBase = m_SyserHighBase = 0; m_win32kImageBase = 0; m_win32kImageSize = 0; m_OSKernlBase = 0; m_W32ServiceTableAddress=0; m_W32ServiceTable=NULL; m_W32ServiceArgv=NULL; m_W32ServiceNumbers=0; m_OSMajorVersion=0; m_OSMinorVersion=0; m_OSBuildNumber=0; m_OSCheckBuild=FALSE; m_HidP_TranslateUsageAndPagesToI8042ScanCodes=0; m_OrgWindowsServiceTable=NULL; m_OrgWindowsServiceArgTable=NULL; m_LoCount=0; m_HiCount=0; m_OSKernelName[0]=0; m_SystemStartAddr = (DWORD)MM_SYSTEM_RANGE_START; m_OrgWindowIDT=NULL; curproc = PsGetCurrentProcess(); m_ProcNameOff = 0; for(int i=0;i<0x400;i++) { if(TStrICmp("System",(char*)curproc+i)==0) { m_ProcNameOff = i; break; } } CR3 = SyserGetCR3Reg(); m_ProcCR3dwOff=0; for(int i=0;i<0x100;i++) { if(((DWORD*)curproc)[i] ==CR3) { m_ProcCR3dwOff = i; break; } } m_PEBOffsetOfEPROCESS=0; GetPEBOffset(&m_PEBOffsetOfEPROCESS); GetSystemRoot(); GetPathSymbolLinker(); TStrCpy(m_szSystem32,m_szSystemRoot); TStrCat(m_szSystem32,WSTR("system32\\")); TStrCpy(m_szSystem32Drivers,m_szSystem32); TStrCat(m_szSystem32Drivers,WSTR("drivers\\")); UNICODE_STRING UnicodeName; RtlInitUnicodeString(&UnicodeName,WSTR("MmUnmapViewOfSection")); m_MmUnmapViewOfSection=(DWORD)MmGetSystemRoutineAddress(&UnicodeName); PsGetVersion(&m_OSMajorVersion,&m_OSMinorVersion,&m_OSBuildNumber,NULL); UnicodeToAnsi(m_szSystemRoot,m_szSystemRootA,sizeof(m_szSystemRootA)); UnicodeToAnsi(m_szSystem32,m_szSystem32A,sizeof(m_szSystem32A)); UnicodeToAnsi(m_szSystem32Drivers,m_szSystem32DriversA,sizeof(m_szSystem32DriversA)); m_bEvlVer = m_bSNPass = false; //m_SNType = SN_ERROR; } CSysInfo::~CSysInfo() { } bool CSysInfo::GetSystemRoot() { NTSTATUS Status; UNICODE_STRING UniSystemRootDir; RTL_QUERY_REGISTRY_TABLE RegTable[2]; int Len; ZeroMemory(RegTable,sizeof(RegTable)); ZeroMemory(m_szSystemRoot,sizeof(m_szSystemRoot)); TStrCpy(m_szSystemRoot,WSTR("\\??\\")); UniSystemRootDir.Length=0; UniSystemRootDir.MaximumLength=sizeof(m_szSystemRoot); UniSystemRootDir.Buffer=&m_szSystemRoot[TStrLen(m_szSystemRoot)]; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("SystemRoot"); RegTable[0].EntryContext = &UniSystemRootDir; Status = RtlQueryRegistryValues(RTL_REGISTRY_WINDOWS_NT,WSTR(""),RegTable,NULL,NULL); if(NT_SUCCESS(Status)) { Len = TStrLen(m_szSystemRoot); if(m_szSystemRoot[Len-1]!='\\') { m_szSystemRoot[Len]='\\'; m_szSystemRoot[Len+1]=0; } TStrCpy(m_szSystemRootMarco,&m_szSystemRoot[6]); return true; } ZeroMemory(RegTable,sizeof(RegTable)); ZeroMemory(m_szSystemRoot,sizeof(m_szSystemRoot)); TStrCpy(m_szSystemRoot,WSTR("\\??\\")); UniSystemRootDir.Length=0; UniSystemRootDir.MaximumLength=sizeof(m_szSystemRoot); UniSystemRootDir.Buffer=&m_szSystemRoot[TStrLen(m_szSystemRoot)]; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("SystemRoot"); RegTable[0].EntryContext = &UniSystemRootDir; Status = RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,WSTR("Syser"),RegTable,NULL,NULL); if(NT_SUCCESS(Status)) { Len = TStrLen(m_szSystemRoot); if(m_szSystemRoot[Len-1]!='\\') { m_szSystemRoot[Len]='\\'; m_szSystemRoot[Len+1]=0; } } else TStrCpy(m_szSystemRoot,WSTR("\\??\\C:\\WINDOWS\\")); TStrCpy(m_szSystemRootMarco,&m_szSystemRoot[6]); return true; } bool CSysInfo::ValidateSN() { return true; // WCHAR szBuffer[256],szLicName[128]; // #ifndef __DEMO__VERSION__ // m_SNType = ValidateSerialNumber(m_LicNameStr,m_SNStr); // if(m_SNType!=SN_ERROR && m_SNType!=SN_CHARGEBACK) // { // TStrCpy(szLicName,(PCSTR)m_LicNameStr); // if(m_SNType == SN_STUDENT) // TStrCpy(szBuffer,WSTR("Tztfs!Efcvhhfs!Tuvefou!Wfstjpo!;!Mjdfotf!up!&t"));//Syser Debugger Student Version : License to %s // else if(m_SNType == SN_PERSONAL) // TStrCpy(szBuffer,WSTR("Tztfs!Efcvhhfs!Qfstpobm!Wfstjpo!;!Mjdfotf!up!&t"));//Syser Debugger Personal Version : License to %s // else if(m_SNType == SN_ENTERPRISE) // TStrCpy(szBuffer,WSTR("Tztfs!Efcvhhfs!Foufsqsjtf!Wfstjpo!;!Mjdfotf!up!&t"));//Syser Debugger Enterprise Version : License to %s // else // *szBuffer=0; // for(int n=0;szBuffer[n];n++) // szBuffer[n]--; // m_LicTip.Format(szBuffer,szLicName); // m_bEvlVer = false; // return true; // } // #endif // if(IsValidInstTime(m_InstallTime.QuadPart)==false || m_CurrentTime.QuadPart==0 || m_SNType==SN_CHARGEBACK) // goto InvalidLic; // LONGLONG dTime = m_CurrentTime.QuadPart - m_InstallTime.QuadPart; // dTime/=10000000; // dTime/=3600*24; // if(dTime>=0 && dTimeReadStringValue(StrBuffer,szBuffer); TStrCpy(szBufferA,szBuffer); m_SNStr = szBufferA; //LicName///////////////////////////////////////// TStrCpy(StrBuffer,WSTR("MjdObnf"));//LicName for(int n=0;StrBuffer[n];n++) StrBuffer[n]--; *szBuffer=0; gpSyserCfg->ReadStringValue(StrBuffer,szBuffer); TStrCpy(szBufferA,szBuffer); m_LicNameStr = szBufferA; //InstTime//////////////////////////////////////// TStrCpy(StrBuffer,WSTR("JotuUjnf"));//InstTime for(int n=0;StrBuffer[n];n++) StrBuffer[n]--; m_InstallTime.QuadPart = m_CurrentTime.QuadPart = 0; gpSyserCfg->ReadQwordValue(StrBuffer,(QWORD*)&m_InstallTime.QuadPart); KeQuerySystemTime(&m_CurrentTime); m_bSNPass = ValidateSN(); #ifndef __DEMO__VERSION__ //::DbgPrint("Syser : CheckSN ok.............\n"); if(m_bSNPass==false) { WCHAR szBuffer[256],szLicName[128]; //SYSER_SN_TYPE type; m_bSNPass=gpSyser->CheckSN(m_SNStr,m_LicNameStr); if(m_bSNPass) { //m_SNType=type; TStrCpy(szLicName,(PCSTR)m_LicNameStr); // if(m_SNType == SN_STUDENT) // TStrCpy(szBuffer,WSTR("Tztfs!Efcvhhfs!Tuvefou!Wfstjpo!;!Mjdfotf!up!&t"));//Syser Debugger Student Version : License to %s // else if(m_SNType == SN_PERSONAL) // TStrCpy(szBuffer,WSTR("Tztfs!Efcvhhfs!Qfstpobm!Wfstjpo!;!Mjdfotf!up!&t"));//Syser Debugger Personal Version : License to %s // else if(m_SNType == SN_ENTERPRISE) TStrCpy(szBuffer,WSTR("Tztfs!Efcvhhfs!Foufsqsjtf!Wfstjpo!;!Mjdfotf!up!&t"));//Syser Debugger Enterprise Version : License to %s // else // *szBuffer=0; for(int n=0;szBuffer[n];n++) szBuffer[n]--; m_LicTip.Format(szBuffer,szLicName); m_bEvlVer = false; //::DbgPrint("Syser : CheckSN ok\n"); } } #endif TStrCpy(StrBuffer,WSTR("WfsUzqf"));//VerType for(int n=0;StrBuffer[n];n++) StrBuffer[n]--; //VerType = SN_ERROR; gpSyserCfg->ReadDwordValue(StrBuffer,&VerType); if(VerType!=0) { if(m_bSNPass==false) { VerType = 0; gpSyserCfg->WriteDwordValue(StrBuffer,VerType); } else if(VerType!=(DWORD)0) { VerType = (DWORD)1; gpSyserCfg->WriteDwordValue(StrBuffer,VerType); } } else { if(m_bSNPass) { VerType = (DWORD)1; gpSyserCfg->WriteDwordValue(StrBuffer,VerType); } } } void CSysInfo::GetSystemInformation() { CDbgModule*pModule; char szFileName[MAX_FN_LEN]; m_win32kImageBase = 0; m_win32kImageSize = 0; pModule = gpSyser->m_pSysDebugger->GetModule("win32k.sys"); if(pModule) { m_win32kImageBase = pModule->m_ModuleBase; m_win32kImageSize = pModule->m_ModuleSize; } pModule = gpSyser->m_pSysDebugger->GetModule("hidparse.sys"); if(pModule) { CMemPEFile MemPEFile; if(MemPEFile.Open(pModule->m_ModuleBase,PE_OPEN_NO_IMPORT,CImageFile::StaticReadRealMemory,NULL)) { m_HidP_TranslateUsageAndPagesToI8042ScanCodes = MemPEFile.GetExportFunc("HidP_TranslateUsageAndPagesToI8042ScanCodes"); ::DbgPrint("Syser : Found HidP_TranslateUsageAndPagesToI8042ScanCodes %08X!\n",m_HidP_TranslateUsageAndPagesToI8042ScanCodes); MemPEFile.Close(); } } } bool CSysInfo::FindWin32KServiceSymName() { CPEFile PEFile; CHAR szFileName[MAX_FN_LEN]; int n; ULSIZE ReadLen; BYTE CodeBuffer[MAX_INSTR_LEN]; DWORD ServiceNum; TNtcallNameIDMap::IT Iter; TStrCpy(szFileName,m_szSystem32A); TStrCat(szFileName,"user32.dll"); PEFile.m_OpenMode|=PE_OPEN_NO_IMPORT; if(PEFile.Open(szFileName)==false) return false; for(n=0;n sizeof(DWORD)*0x1400 ? sizeof(DWORD)*0x1400 : FilePos; if(PEFile.MapToFile(PEFile.m_Section[DataSectionInx].VirtualAddress,&FilePos,false)) { if(PEFile.ReadFile(FilePos,pWin32ServiceTable,ReadWriteLen)) { for(i = 0; i < ReadWriteLen/sizeof(DWORD);i++) { if(pWin32ServiceTable[i]=CodeSectionVirtualAddress+CodeSectionVirtualSize) break; } if(i<0x100 || i >=0x1000) { bFindServiceTable=false; } else { bFindServiceTable=true; dwServiceNumbers=i; } } } if(bFindServiceTable) { m_W32ServiceTable=new DWORD[dwServiceNumbers+1]; if(m_W32ServiceTable) { memset(m_W32ServiceTable,0,sizeof(DWORD)*(dwServiceNumbers+1)); memcpy(m_W32ServiceTable,pWin32ServiceTable,sizeof(DWORD)*dwServiceNumbers); } m_W32ServiceArgv = new BYTE[dwServiceNumbers+1]; if(m_W32ServiceArgv) { memset(m_W32ServiceArgv,0,sizeof(BYTE)*(dwServiceNumbers+1)); memcpy(m_W32ServiceArgv,&pWin32ServiceTable[dwServiceNumbers],sizeof(BYTE)*dwServiceNumbers); } if(m_W32ServiceTable&&m_W32ServiceArgv) { m_W32ServiceNumbers=dwServiceNumbers; m_W32ServiceTableAddress = PEFile.m_Section[DataSectionInx].VirtualAddress; } } delete []pWin32ServiceTable; } } if(bFindServiceTable) { if(m_win32kImageBase&&m_W32ServiceTableAddress) { m_W32ServiceTableAddress+=m_win32kImageBase; if(m_W32ServiceTable) { if(m_win32kImageBase!=PEFile.m_ImageBase) { DWORD Delta=m_win32kImageBase-PEFile.m_ImageBase; for(DWORD i=0;isizeof(SYSTEM_PROCESS_INFORMATION)*0x1000) { if(Buffer) delete Buffer; return false; } } dwgErrorCode=115; ULONG Offset = 0; SYSTEM_PROCESS_INFORMATION*P=(SYSTEM_PROCESS_INFORMATION*)Buffer; do { P=(SYSTEM_PROCESS_INFORMATION*)((BYTE*)P+Offset); Offset = P->NextEntryOffset; PID = PTR_TO_NUM(P->UniqueProcessId); pProcess = InsertProcess(PID); if(pProcess==NULL) { ::DbgPrint("Syser : Fail to InitProcessList !\n"); delete Buffer; return false; } }while(Offset); dwgErrorCode=117; delete Buffer; gpSyser->m_pDebugger = GetProcess(WSTR("System")); gpSyser->m_pCsrssProcess = GetProcess(WSTR("csrss")); if(gpSyser->m_pDebugger) { gpSyser->m_pSysDebugger = gpSyser->m_pDebugger; gpSyser->MapToProcess(gpSyser->m_pDebugger); gpSyser->m_SyserUI.m_CodeDoc.Open(gpSyser->m_pDebugger->m_ProcName); } dwgErrorCode=118; if(gpSyser->m_pDebugger==NULL) { ::DbgPrint("Syser : Cann't find SYSTEM Process!\n"); return false; } LoadExpModList(); dwgErrorCode=119; for(CProcMap::IT Iter = m_ProcMap.Begin();Iter!=m_ProcMap.End();Iter++) { if(GetDllList(&(*Iter))==false) { if(GetDllListNew(&(*Iter))==false) { ::DbgPrint("Syser : %s ExGetDllList except...\n",(char*)Iter->m_ProcName); } } } dwgErrorCode=120; GetDriverList(); dwgErrorCode=121; gpSyser->m_SyserUI.SetPublicSymbolModuleBase(); dwgErrorCode=122; GetSystemInformation(); dwgErrorCode=123; GetServiceTable(); dwgErrorCode=124; GetIDTTable(); dwgErrorCode=125; OutputEnv(); dwgErrorCode=126; return true; } bool CSysInfo::NtcallInit() { CPEFile PEFile; char FileName[MAX_FN_LEN]; CHAR*Name=NULL; CSymbolModule* pSymbolModule; BYTE CodeBuffer[MAX_INSTR_LEN]; int n; ULONGLONG zwFunc[4]={0,0,0,0}; ULSIZE ReadLen; DWORD ServiceNum; ULONGLONG llData; TNtcallMap::IT Iter; CDbgModule* pDbgModule; TStrCpy(FileName,m_szSystem32A); TStrCat(FileName,"ntdll.dll"); PEFile.m_OpenMode|=PE_OPEN_NO_IMPORT; if(PEFile.Open(FileName)==false) { ::DbgPrint("Syser : Ntcall initialize failed to load PE file symbol %s\n",FileName); return false; } for(n=0;nm_pSysDebugger==NULL) return true; pDbgModule = gpSyser->m_pSysDebugger->GetModule((ULPOS)KeSetEvent); if(pDbgModule==NULL) return true; Name = (char*)pDbgModule->m_ModuleFullName; } PEFile.m_OpenMode|=PE_OPEN_NO_IMPORT; if(PEFile.Open(Name)==false) { ::DbgPrint("Syser : Ntcall initialize failed to load PE file symbol %s\n",(char*)Name); return true; } for(n=0;n(zwFunc[1] & 0xffffffff)) { first = zwFunc[0] & 0xffffffff; addr1 = (zwFunc[0]>>32) & 0xffffffff; second = zwFunc[1] & 0xffffffff; addr2 = (zwFunc[1]>>32) & 0xffffffff; } else { first=zwFunc[1] & 0xffffffff; addr1 = (zwFunc[1]>>32) & 0xffffffff; second=zwFunc[0] & 0xffffffff; addr2 = (zwFunc[0]>>32) & 0xffffffff; } len1= (addr1-addr2) / (first-second); if((zwFunc[1] & 0xffffffff)>(zwFunc[2] & 0xffffffff)) { first = zwFunc[1] & 0xffffffff; addr1 = (zwFunc[1]>>32) & 0xffffffff; second = zwFunc[2] & 0xffffffff; addr2 = (zwFunc[2]>>32) & 0xffffffff; } else { first=zwFunc[2] & 0xffffffff; addr1 = (zwFunc[2]>>32) & 0xffffffff; second=zwFunc[1] & 0xffffffff; addr2 = (zwFunc[1]>>32) & 0xffffffff; } len2= (addr1-addr2) / (first-second); if((zwFunc[0] & 0xffffffff)>(zwFunc[2] & 0xffffffff)) { first = zwFunc[0] & 0xffffffff; addr1 = (zwFunc[0]>>32) & 0xffffffff; second = zwFunc[2] & 0xffffffff; addr2 = (zwFunc[2]>>32) & 0xffffffff; } else { first=zwFunc[2] & 0xffffffff; addr1 = (zwFunc[2]>>32) & 0xffffffff; second=zwFunc[0] & 0xffffffff; addr2 = (zwFunc[0]>>32) & 0xffffffff; } len3= (addr1-addr2) / (first-second); addr2=0; if(len2 == len1 || len2 == len3) { if((zwFunc[0] & 0xffffffff)>(zwFunc[3] & 0xffffffff)) { first = zwFunc[0] & 0xffffffff; second = zwFunc[3] & 0xffffffff; addr1 = (zwFunc[0] >> 32) & 0xffffffff; addr2 = addr1 -(first - second)*len1; } else { first = zwFunc[3] & 0xffffffff; second = zwFunc[0] & 0xffffffff; addr1 = (zwFunc[0] >> 32) & 0xffffffff; addr2 = addr1 + (first - second)*len1; } } if(m_OSKernlBase) { addr2+=m_OSKernlBase; m_pZwQueryVirtualMemory = *(ZWQUERYVIRTUALMEMORY*)&addr2; DbgPrint("Syser : Find ZwQueryVirtualMemory address %08x\n",m_pZwQueryVirtualMemory); } } PEFile.Close(); return true; } void CSysInfo::Release() { gpSyser->m_SyserUI.m_CodeDoc.Close(); for(CProcMap::IT Iter=m_ProcMap.Begin();Iter!=m_ProcMap.End();Iter++) Iter->Release(); m_ProcMap.Clear(); gpSyser->m_pSysDebugger=gpSyser->m_pDebugger=NULL; SafeDelete(m_OrgWindowsServiceTable); SafeDelete(m_OrgWindowsServiceArgTable); SafeDelete(m_OrgWindowIDT); SafeDelete(m_W32ServiceTable); SafeDelete(m_W32ServiceArgv); } bool CSysInfo::LoadExpModList() { CSymbolModule*pSymbolModule; CTXTFile File; WCHAR szBuffer[MAX_FN_LEN]; CHAR szFileName[MAX_FN_LEN]; CHAR* pFileName; TStrCpy(szFileName,m_szSystem32DriversA); TStrCat(szFileName,"ModExSym.lst"); if(File.Open(szFileName)==false) { gpFileIO->WriteToFile(szFileName,DefaultPEExportList,TStrLen(DefaultPEExportList)); if(File.Open(szFileName)==false) return false; } for(TTXTStrList::IT Iter=File.m_StrList.Begin();Iter!=File.m_StrList.End();Iter++) { TStrCpyLimit(szFileName,*Iter,MAX_FN_LEN); pFileName = TGetFileName(szFileName); if(m_OSKernelName[0] && pFileName) { bool bFind=false; for(int i =0 ;m_gNtoskrnlName[i];i++) { if(TStrICmp(m_gNtoskrnlName[i],pFileName)==0) { bFind=true; } } if(bFind) continue; } if(ConvertFileName(szFileName)==false) { TStrCpy(szFileName,"\\??\\"); TStrCat(szFileName,*Iter); } if(pSymbolModule=gpSyser->m_SyserUI.LoadPESym(szFileName)) { pSymbolModule->m_ReferenceCount++;//ü+1,֤ͷ AnsiToUnicode(szFileName,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("Syser : Load module %4d export symbols %s\n"),pSymbolModule->m_SymbolMap.Count(),szBuffer); } } File.Close(); if(m_OSKernelName[0])//ȷֻһ kernel ķű { if(pSymbolModule=gpSyser->m_SyserUI.LoadPESym(m_OSKernelName)) { pSymbolModule->m_ReferenceCount++;//ü+1,֤ͷ AnsiToUnicode(m_OSKernelName,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("Syser : Load module %4d export symbols %s\n"),pSymbolModule->m_SymbolMap.Count(),szBuffer); } } return true; } bool CSysInfo::LoadSDSList() { CTXTFile File; CHAR szFileName[MAX_FN_LEN]; TStrCpy(szFileName,m_szSystem32DriversA); TStrCat(szFileName,"SDSInit.lst"); if(File.Open(szFileName)==false) false; TStrCpy(szFileName,"\\??\\"); for(TTXTStrList::IT Iter=File.m_StrList.Begin();Iter!=File.m_StrList.End();Iter++) { TStrCpyLimit(&szFileName[4],*Iter,MAX_FN_LEN-4); gpSyser->m_SyserUI.LoadSDSModule(szFileName); } File.Close(); return true; } CDbgProcess*CSysInfo::InsertProcess(DWORD PID) { if(GetProcess(PID)!=NULL) return NULL; CProcMap::IT Iter = m_ProcMap.InsertUnique(PID); Iter->InitProcess(PID); return &(*Iter); } bool CSysInfo::RemoveProcess(DWORD PID) { CProcMap::IT ProcIter=m_ProcMap.Find(PID); if(ProcIter==m_ProcMap.End()) return false; CSDSModuleMap::IT Iter=gpSyser->m_SyserUI.m_SDSModuleMap.Begin(); while(Iter.IsExist()) { if(Iter->m_ParentPID == PID) { CSDSModuleMap::IT RemoveIter = Iter; Iter++; gpSyser->m_SyserUI.UnloadSDSModule(&(*RemoveIter)); } else Iter++; } ProcIter->Release(); m_ProcMap.Remove(ProcIter); return true; } CDbgProcess*CSysInfo::GetProcessByEPROCESS(DWORD EProcess) { for(CProcMap::IT Iter=m_ProcMap.Begin();Iter!=m_ProcMap.End();Iter++) { if(Iter->m_PEProcess == *(PEPROCESS*)&EProcess) return &(*Iter); } return NULL; } CDbgProcess*CSysInfo::GetProcess(DWORD PID) { CProcMap::IT Iter=m_ProcMap.Find(PID); if(Iter==m_ProcMap.End()) return NULL; if(Iter->m_PID==0) return gpSyser->m_pSysDebugger; return &(*Iter); } CDbgProcess*CSysInfo::GetProcessByCR3(DWORD CR3) { for(CProcMap::IT Iter=m_ProcMap.Begin();Iter!=m_ProcMap.End();Iter++) { if(Iter->m_CR3 == CR3 && Iter->m_PID) { if(Iter->m_PID==0) return gpSyser->m_pSysDebugger; return &(*Iter); } } return NULL; } CDbgProcess*CSysInfo::GetProcess(WCHAR*szProcName) { for(CProcMap::IT Iter=m_ProcMap.Begin();Iter!=m_ProcMap.End();Iter++) { if(TStrICmp(szProcName,(PCWSTR)Iter->m_ProcNameW)==0) return &(*Iter); } return NULL; } bool CSysInfo::GetProcessName(PEPROCESS curproc,WCHAR*ProcessName,int BufCount) { PWSTR pwStr; char*NamePtr; if(m_ProcNameOff==0) { TStrCpy(ProcessName,""); return false; } NamePtr=(char*)curproc+m_ProcNameOff; AnsiToUnicode(NamePtr,ProcessName,BufCount); pwStr = TStrRChr(ProcessName,(WCHAR)'.'); if(pwStr) *pwStr=0; return true; } DWORD CSysInfo::SearchMemory(DWORD BaseAddr,DWORD BaseSize,BYTE* Feature,DWORD Size) { BYTE Buffer[200]; DWORD LSize,SectMaxPos=0; if(Size>sizeof(Buffer)) return 0; for(DWORD Pos=0;PosSectMaxPos) { LSize=BaseSize-Pos; if(LSize > sizeof(Buffer)) LSize = sizeof(Buffer); SectMaxPos = Pos + LSize; if(gpSyser->ReadMemory(BaseAddr+Pos,Buffer,LSize,gpSyser)==0) { Pos+=sizeof(Buffer); continue; } } if(memcmp(&Buffer[Pos+sizeof(Buffer)-SectMaxPos],Feature,Size)==NULL) return Pos+BaseAddr; } return 0; } bool CSysInfo::ConvertFileName(CHAR*szFileName) { CHAR szBuffer[MAX_FN_LEN]; if(TStrNCmp(szFileName,"\\??\\",4)==0) return true; if(*szFileName!='\\' && szFileName[1]!=':') { TStrCpy(szBuffer,szFileName); TStrCpy(szFileName,m_szSystemRoot); TStrCat(szFileName,"system32\\drivers\\"); TStrCat(szFileName,szBuffer); return true; } if(ConvertFileNameByMacro(szFileName,"\\SystemRoot\\",m_szSystemRootA)) return true; if(ConvertFileNameByMacro(szFileName,m_szSystemRootMarco,m_szSystemRootA)) return true; if(ConvertFileNameByMacro(szFileName,"system32\\",m_szSystem32A)) return true; if(ConvertFileNameByMacro(szFileName,"system32\\drivers\\",m_szSystem32DriversA)) return true; if(ConvertFileNameByMacro(szFileName,"\\device\\lanmanredirector\\","\\\\")) return true; if(ConvertFileNameByMacro(szFileName,"\\device\\mup\\","\\\\")) return true; TList::IT Iter = m_SymbolPathList.Begin(); for(CHAR cPath='C';cPath<='Z' && Iter!=m_SymbolPathList.End();cPath++) { TStrCpy(szBuffer,"\\??\\C:"); szBuffer[4]=cPath; if(ConvertFileNameByMacro(szFileName,*Iter,szBuffer)) return true; Iter++; } return false; } void CSysInfo::GetPathSymbolLinker() { NTSTATUS status; HANDLE hLink; OBJECT_ATTRIBUTES oa; UNICODE_STRING Name; WCHAR szBuffer[256]; char szBufferA[256]; m_SymbolPathList.Clear(); for(WCHAR cPath='C';cPath<='Z';cPath++) { TStrCpy(szBuffer,"\\??\\C:"); szBuffer[4]=cPath; Name.Buffer=szBuffer; Name.Length=wcslen(szBuffer)*2; Name.MaximumLength=sizeof(szBuffer); InitializeObjectAttributes(&oa,&Name,OBJ_CASE_INSENSITIVE,NULL,NULL); if(!NT_SUCCESS(status=ZwOpenSymbolicLinkObject(&hLink,0x20001,&oa))) return; Name.Buffer=szBuffer; Name.MaximumLength=Name.Length=sizeof(szBuffer); ZeroMemory(szBuffer,sizeof(szBuffer)); if(!NT_SUCCESS(status=ZwQuerySymbolicLinkObject(hLink,&Name,NULL))) return; UnicodeToAnsi(szBuffer,szBufferA,256); m_SymbolPathList.Append(szBufferA); ZwClose(hLink); } } bool CSysInfo::GetDriverList() { ULONG Size; PEPROCESS Pr; MODULE_ID ModuleID; CDbgModule*pDbgModule; CHAR szFileName[MAX_FN_LEN]; CSymbolModule*pSymbolModule; PSYSTEM_MODULE_INFORMATION pModInfo,p; ZwQuerySystemInformation( SystemModuleInformation,&Size,0,&Size); if(Size==0) return false; p = (PSYSTEM_MODULE_INFORMATION) new BYTE[Size]; ZwQuerySystemInformation( SystemModuleInformation,p,Size,0); pModInfo = p; Pr=NULL; if(gpSyser->m_pCsrssProcess) { PsLookupProcessByProcessId((HANDLE)gpSyser->m_pCsrssProcess->m_PID,&Pr); if(Pr==NULL) { delete p; return false; } KeAttachProcess((PRKPROCESS)Pr); } for(ULONG n=0; ndCount; n++) { TStrCpyLimit(szFileName,(PCSTR)pModInfo->aSM[n].abName,MAX_FN_LEN); ConvertFileName(szFileName); if(MmIsAddressValid(pModInfo->aSM[n].pAddress)) ModuleID = GetModuleID((ULPOS)pModInfo->aSM[n].pAddress,pModInfo->aSM[n].dSize); else ModuleID = 0; gpSyser->m_SyserUI.m_SyserDI.OnLoadModule(gpSyser->m_pSysDebugger,szFileName,(ULPOS)pModInfo->aSM[n].pAddress,pModInfo->aSM[n].dSize,ModuleID); } if(Pr) KeDetachProcess(); delete p; pDbgModule = gpSyser->m_pSysDebugger->GetModule("Syser.sys"); if(pDbgModule) { m_SyserBase = pDbgModule->m_ModuleBase; m_SyserHighBase = pDbgModule->m_ModuleBase+pDbgModule->m_ModuleSize; } return true; } extern "C" NTSTATUS NTSYSAPI ZwOpenProcess( OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId OPTIONAL ); extern "C" NTSTATUS NTSYSAPI NtQueryVirtualMemory( IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN MEMORY_INFORMATION_CLASS MemoryInformationClass, OUT PVOID MemoryInformation, IN ULONG MemoryInformationLength, OUT PULONG ReturnLength OPTIONAL ); extern "C" NTSTATUS NTSYSAPI __stdcall ZwQueryVirtualMemory( IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN MEMORY_INFORMATION_CLASS MemoryInformationClass, OUT PVOID MemoryInformation, IN ULONG MemoryInformationLength, OUT PULONG ReturnLength OPTIONAL ); bool CSysInfo::GetDllListNew(CDbgProcess*pProcess) { NTSTATUS ntstatus; MEMORY_BASIC_INFORMATION MemoryInfo; OBJECT_ATTRIBUTES oa={sizeof(OBJECT_ATTRIBUTES), 0,NULL,NULL}; HANDLE hProcess; PMEMORY_SECTION_NAME pName; WCHAR * PrevName; CLIENT_ID ClientID; CHAR szFileName[MAX_FN_LEN]; bool bRetValue=true; DWORD nLength=0; if(pProcess==NULL || m_pZwQueryVirtualMemory==NULL) return false; pName = (PMEMORY_SECTION_NAME)new BYTE[520+520]; if(pName==NULL) return false; PrevName=(WCHAR*)pName; PrevName=PrevName+260; PrevName[0]=0; ClientID.UniqueProcess=(HANDLE)pProcess->m_PID; ClientID.UniqueThread=0; ntstatus = ZwOpenProcess(&hProcess,PROCESS_ALL_ACCESS,&oa,&ClientID); if(!NT_SUCCESS(ntstatus)) { delete pName; return false; } PEPROCESS Pr=NULL; DWORD PrevAddress=0; DWORD PrevLen=0; MODULE_ID ModuleID; PsLookupProcessByProcessId((HANDLE)pProcess->m_PID,&Pr); if(Pr==NULL) return false; __try { if(pProcess!=gpSyser->m_pSysDebugger) KeAttachProcess((PRKPROCESS)Pr); DWORD ImageSize=PrevLen; for(DWORD i=0x0;i<0x7fffffff;i+=0x10000) { ntstatus = m_pZwQueryVirtualMemory(hProcess,*(PVOID*)&i,MemorySectionName,pName,520,&nLength); nLength=i; if(!NT_SUCCESS(ntstatus)) { continue; } ntstatus = m_pZwQueryVirtualMemory(hProcess,*(PVOID*)&i,MemoryBasicInformation,&MemoryInfo,sizeof(MemoryInfo),&nLength); if(!NT_SUCCESS(ntstatus) || (MemoryInfo.Type & MEM_IMAGE)==0) { continue; } if(TStrICmp(pName->SectionFileName.Buffer,PrevName)) { if(PrevName[0]!=0 && PrevAddress && PrevLen) { ImageSize=PrevLen; ModuleID = GetModuleIDAndImageSize(PrevAddress,ImageSize); UnicodeToAnsi(PrevName,szFileName,MAX_FN_LEN); if(TStrNICmp(szFileName,WSTR("\\??\\"),4)) { if(ConvertFileName(szFileName)==false) { TStrCpy(szFileName,"\\??\\"); UnicodeToAnsi(PrevName,&szFileName[4],MAX_FN_LEN-4); } } gpSyser->m_SyserUI.m_SyserDI.OnLoadModule(pProcess,szFileName,PrevAddress,ImageSize,ModuleID); } PrevAddress=i; PrevLen=MemoryInfo.RegionSize; TStrCpy(PrevName,pName->SectionFileName.Buffer); } else { PrevLen+=MemoryInfo.RegionSize; } i=i+MemoryInfo.RegionSize; i=i&0xffff0000; } if(PrevName[0]!=0 && PrevAddress && PrevLen) { ImageSize=PrevLen; ModuleID = GetModuleIDAndImageSize(PrevAddress,ImageSize); UnicodeToAnsi(PrevName,szFileName,MAX_FN_LEN); if(TStrNICmp(szFileName,WSTR("\\??\\"),4)) { if(ConvertFileName(szFileName)==false) { TStrCpy(szFileName,"\\??\\"); UnicodeToAnsi(PrevName,&szFileName[4],MAX_FN_LEN-4); } } gpSyser->m_SyserUI.m_SyserDI.OnLoadModule(pProcess,szFileName,PrevAddress,ImageSize,ModuleID); } delete pName; if(pProcess!=gpSyser->m_pSysDebugger) KeDetachProcess(); } __except(EXCEPTION_EXECUTE_HANDLER) { bRetValue=false; } ZwClose(hProcess); return bRetValue; } bool CSysInfo::GetDllList(CDbgProcess*pProcess) { bool bRetValue=true; MODULE_ID ModuleID; CHAR szFileName[MAX_FN_LEN]; WCHAR wszFileName[MAX_FN_LEN],*pUserModeName; PEB *Peb; PEPROCESS Pr; PEB_LDR_DATA *Ldr; LDR_DATA_TABLE_ENTRY *M,*T; if(pProcess == NULL || pProcess->m_pCurrentPEB==NULL) return false; Pr=NULL; PsLookupProcessByProcessId((HANDLE)pProcess->m_PID,&Pr); if(Pr==NULL) return false; if(pProcess!=gpSyser->m_pSysDebugger) KeAttachProcess((PRKPROCESS)Pr); __try { Peb=(PEB*)pProcess->m_pCurrentPEB; Ldr=Peb->Ldr; M=(LDR_DATA_TABLE_ENTRY*)((BYTE*)Ldr->InMemoryOrderModuleList.Flink-8); T=M; do { TStrCpyLimit(wszFileName,T->FullDllName.Buffer,T->FullDllName.Length/2+1); UnicodeToAnsi(wszFileName,szFileName,MAX_FN_LEN); if(TStrNICmp(T->FullDllName.Buffer,WSTR("\\??\\"),4)) { if(ConvertFileName(szFileName)==false) { TStrCpy(szFileName,"\\??\\"); UnicodeToAnsi(wszFileName,&szFileName[4],MAX_FN_LEN-4); } } ModuleID = GetModuleID((ULPOS)T->DllBase,T->SizeOfImage); gpSyser->m_SyserUI.m_SyserDI.OnLoadModule(pProcess,szFileName,(ULPOS)T->DllBase,T->SizeOfImage,ModuleID); T=(LDR_DATA_TABLE_ENTRY*)T->InLoadOrderLinks.Flink; }while(T->InLoadOrderLinks.Flink!=(LIST_ENTRY*)M); } __except(EXCEPTION_EXECUTE_HANDLER) { bRetValue=false; //::DbgPrint("Syser : %s GetDllList except...\n",(PCSTR)pProcess->m_ProcName); } if(pProcess!=gpSyser->m_pSysDebugger) KeDetachProcess(); return bRetValue; } #ifdef AnsiToUnicode #undef AnsiToUnicode #endif #ifdef UnicodeToAnsi #undef UnicodeToAnsi #endif int SyserUnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen) { KIRQL Irq; int n,Result; for(n=0;WszBuf[n] && n0xFF) break; } if(WszBuf[n]==0 || n>=MaxLen) return TStrCpyLimit(szBuf,WszBuf,MaxLen); if(gpSysLangDevEx) return gpSysLangDevEx->pfnUnicodeToAnsi(WszBuf,szBuf,MaxLen); return TStrCpyLimit(szBuf,WszBuf,MaxLen); } int SyserAnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen) { int n,Result; for(n=0;szBuf[n] && n=MaxLen) return TStrCpyLimit(WszBuf,szBuf,MaxLen); if(gpSysLangDevEx) return gpSysLangDevEx->pfnAnsiToUnicode(szBuf,WszBuf,MaxLen); Result = 0; *WszBuf = 0; return Result; } bool CSysInfo::GetIDTTable() { DWORD i; bool bOK; BYTE *PageBuffer; ULPOS Pos=0,ReadSize; CDbgModule*pDbgModule=NULL; if(gpSyser->m_pSysDebugger==NULL) return false; for(i = 0;m_gNtoskrnlName[i];i++) { pDbgModule = gpSyser->m_pSysDebugger->GetModule(m_gNtoskrnlName[i]); if(pDbgModule!=NULL) break; } if(pDbgModule==NULL||pDbgModule->m_ModuleBase==0||pDbgModule->m_ModuleSize==0) return false; PageBuffer = new BYTE[0x1040]; if(PageBuffer==NULL)return false; memset(PageBuffer,0,0x1040); CPEFile PEFile; bOK = PEFile.Open(pDbgModule->m_ModuleFullName); if(bOK==false) { delete PageBuffer; return false; } for(;Posm_ModuleBase; } delete PageBuffer; PEFile.Close(); //::DbgPrint("Syser : OrgWindowsIDT %08x\n",Pos); return true; } } delete PageBuffer; PEFile.Close(); return false; } } } delete PageBuffer; PEFile.Close(); return false; } bool CSysInfo::GetOSKernelName() { ULONG Size; CHAR szFileName[MAX_FN_LEN]; NTSTATUS ntstatus; PSYSTEM_MODULE_INFORMATION pModInfo,p; ntstatus = ZwQuerySystemInformation( SystemModuleInformation,NULL,0,&Size); if(ntstatus != STATUS_INFO_LENGTH_MISMATCH || Size==0) return false; p = (PSYSTEM_MODULE_INFORMATION) new BYTE[Size]; if(p==NULL) return false; ntstatus = ZwQuerySystemInformation( SystemModuleInformation,p,Size,0); if(!NT_SUCCESS(ntstatus)) { delete p; return false; } pModInfo = p; for(ULONG n=0; ndCount; n++) { TStrCpyLimit(szFileName,(PCSTR)pModInfo->aSM[n].abName+pModInfo->aSM[n].wNameOffset,MAX_FN_LEN); for(int i =0 ;m_gNtoskrnlName[i];i++) { if(TStrICmp(szFileName,m_gNtoskrnlName[i])==0) { TStrCpyLimit(szFileName,(PCSTR)pModInfo->aSM[n].abName,MAX_FN_LEN); if(ConvertFileName(szFileName)==false) { TStrCpy(szFileName,"\\??\\"); TStrCpyLimit(szFileName,(PCSTR)pModInfo->aSM[n].abName,MAX_FN_LEN-sizeof("\\??\\")); } m_OSKernlBase = *(DWORD*)&pModInfo->aSM[n].pAddress; TStrCpy(m_OSKernelName,szFileName); ::DbgPrint("Syser : Windows kernel name '%s' base=%08x\n",(PCSTR)pModInfo->aSM[n].abName+pModInfo->aSM[n].wNameOffset,m_OSKernlBase); delete p; return true; } } } delete p; return false; } bool CSysInfo::GetServiceTable() { DWORD i; CDbgModule*pDbgModule=NULL; DWORD KeServiceDescriptorTableRav,ServiceCount,dwSize; if(gpSyser->m_pSysDebugger==NULL) return false; if(GetWin32KServiceTable()) FindWin32KServiceSymName(); for(i = 0; m_gNtoskrnlName[i];i++) { pDbgModule = gpSyser->m_pSysDebugger->GetModule(m_gNtoskrnlName[i]); if(pDbgModule!=NULL) break; } if(pDbgModule==NULL||pDbgModule->m_ModuleBase==0||pDbgModule->m_ModuleSize==0) return false; CPEFile PEFile; if(PEFile.Open(pDbgModule->m_ModuleFullName)==false) return false; KeServiceDescriptorTableRav = PEFile.GetExportFunc("KeServiceDescriptorTable"); if(KeServiceDescriptorTableRav<=PEFile.m_ImageBase||KeServiceDescriptorTableRav>=(PEFile.m_ImageBase+PEFile.m_ImageSize)) { error_quit: PEFile.Close(); return false; } ::DbgPrint("Syser : KeServiceDescriptorTable=%08x\n",KeServiceDescriptorTable); KeServiceDescriptorTableRav-=PEFile.m_ImageBase; KeServiceDescriptorTableRav+=pDbgModule->m_ModuleBase; DWORD ServiceTableBegin; PSERVICETABLE pServiceTable = *(PSERVICETABLE*)&KeServiceDescriptorTableRav; bool Success; if(ReadDword(&pServiceTable->LowCall,&m_LoCount)==false) goto error_quit; if(ReadDword(&pServiceTable->HiCall,&m_HiCount)==false) goto error_quit; ServiceCount = m_HiCount - m_LoCount + 1; ServiceTableBegin = *(DWORD*)&pServiceTable->ServiceTable; ServiceTableBegin -= pDbgModule->m_ModuleBase; if(ServiceTableBegin>=PEFile.m_ImageSize||ServiceCount>=0x1000) { goto error_quit; } m_OrgWindowsServiceTable = new DWORD[ServiceCount]; if(m_OrgWindowsServiceTable==NULL)goto error_quit; m_OrgWindowsServiceArgTable = new DWORD[ServiceCount]; if(m_OrgWindowsServiceArgTable == NULL) { delete m_OrgWindowsServiceTable; m_OrgWindowsServiceTable = NULL; goto error_quit; } memset(m_OrgWindowsServiceTable,0,sizeof(DWORD)*ServiceCount); dwSize = ServiceTableBegin % 0x1000 + sizeof(DWORD)*ServiceCount; dwSize += (0x1000-1); BYTE *PageBuffer=new BYTE[dwSize/0x1000*0x1000]; if(PageBuffer==NULL) { delete m_OrgWindowsServiceArgTable; delete m_OrgWindowsServiceTable; m_OrgWindowsServiceTable = NULL; m_OrgWindowsServiceArgTable = NULL; goto error_quit; } PEFile.RelocLoad(pDbgModule->m_ModuleBase); for(i = 0 ; i < dwSize/0x1000;i++) { PEFile.LoadPage(ServiceTableBegin - ServiceTableBegin%0x1000 + pDbgModule->m_ModuleBase + i*0x1000,&PageBuffer[i*0x1000]); } memcpy(m_OrgWindowsServiceTable,&PageBuffer[ServiceTableBegin % 0x1000],sizeof(DWORD)*ServiceCount); delete PageBuffer; PEFile.Close(); return true; } bool GetPEBOffset(ULONG* PEBOffset) { ULONG Size,PID,Count=0,i=0; UCHAR* SearchBuffer; PEPROCESS Pr = NULL; void*Buffer; bool bOK; ULONG Array[3]={0,0,0}; if(PEBOffset) *PEBOffset=0; Size=sizeof(SYSTEM_PROCESS_INFORMATION)*0x100; Buffer = new BYTE[Size]; while(Buffer) { if(NT_SUCCESS(ZwQuerySystemInformation(SystemProcessInformation,Buffer,Size,NULL))) break; delete Buffer; Size*=2; Buffer=new BYTE[Size]; if(Buffer==NULL || Size>sizeof(SYSTEM_PROCESS_INFORMATION)*0x1000) return false; } ULONG Offset = 0; SYSTEM_PROCESS_INFORMATION*P=(SYSTEM_PROCESS_INFORMATION*)Buffer; do { P=(SYSTEM_PROCESS_INFORMATION*)((BYTE*)P+Offset); Offset = P->NextEntryOffset; PID = PTR_TO_NUM(P->UniqueProcessId); if(PID<8)continue; Pr = NULL; PsLookupProcessByProcessId(NUM_TO_PTR(PID),&Pr); if(Pr) { SearchBuffer=(UCHAR*)Pr; if(MmIsAddressValid((VOID*)&SearchBuffer[0x150])==false) continue; if(MmIsAddressValid((VOID*)&SearchBuffer[0x304])==false) continue; for(int n = 0x150; n < 0x300;n++) { if((*(DWORD*)&SearchBuffer[n] & 0x7FFD0FFF)==0x7ffd0000) { Array[i]=n; i++; break; } } if(i>=3) break; } }while(Offset); delete Buffer; bOK=true; for(i = 0; i < 3;i++) { if(Array[i]!=Array[0]) { bOK=false; break; } } if(bOK) { if(PEBOffset) *PEBOffset=Array[0]; } return bOK; } bool CSysInfo::PatchI8042Driver() { bool retvalue=false; CDbgModule*pModule; char szFileName[MAX_FN_LEN]; int i,j; char* i8042[]={"i8042prt.sys","msi8042.sys","l8042prt.sys",NULL}; for(i = 0; i8042[i];i++) { pModule = gpSyser->m_pSysDebugger->GetModule(i8042[i]); if(pModule) break; } if(pModule==NULL) { DbgPrint("not found i8042\n"); return retvalue; } CPEFile PEFile; TStrCpy(szFileName,m_szSystem32DriversA); TStrCat(szFileName,i8042[i]); //PEFile.m_OpenMode|=PE_OPEN_NO_EXPORT; if(PEFile.Open(szFileName)==false) return retvalue; DbgPrint("name = %s\n",szFileName); IMPORT_FUNC* pFuncREAD_PORT_UCHAR=NULL; IMPORT_FUNC* pFuncWRITE_PORT_UCHAR=NULL; /* IMPORT_FUNC*FuncList; for(i = 0; i < PEFile.m_ImportModuleCount;i++) { DbgPrint(PEFile.m_ImportModule[i].ModuleName); DbgPrint("\n"); FuncList = PEFile.m_ImportModule[i].FuncList; if(FuncList) { for(j=0;jm_ModuleBase); //::DbgPrint("READ_PORT_UCHAR =%08x\n",pFuncREAD_PORT_UCHAR->ThunkAddr-PEFile.m_ImageBase+pModule->m_ModuleBase); //::DbgPrint("WRITE_PORT_UCHAR =%08x\n",pFuncWRITE_PORT_UCHAR->ThunkAddr-PEFile.m_ImageBase+pModule->m_ModuleBase); //::DbgPrint("pFuncWRITE_PORT_UCHAR->ThunkAddr=%08x\n",pFuncWRITE_PORT_UCHAR->ThunkAddr); //::DbgPrint("pFuncREAD_PORT_UCHAR->ThunkAddr=%08x\n",pFuncREAD_PORT_UCHAR->ThunkAddr); } PEFile.Close(); return true; } ================================================ FILE: Project/Syser/Source/SysInfo.h ================================================ #ifndef _SYS_INFO_H_ #define _SYS_INFO_H_ #include "DbgProcess.h" typedef TMap CProcMap; typedef TString CNtcallStr; typedef TMap TNtcallMap; typedef TMap TNtcallNameIDMap; typedef struct _ORGWINDOWSIDTENTRY { DWORD EntryPoint; WORD Attribute; WORD Selector; }ORGWINDOWSIDTENTRY,*PORGWINDOWSIDTENTRY; typedef struct _SERVICEINDEXANDSYMBOL { char*Name; DWORD Index; }SERVICEINDEXANDSYMBOL,*PSERVICEINDEXANDSYMBOL; typedef enum _MEMORY_INFORMATION_CLASS { MemoryBasicInformation, MemoryWorkingSetList, MemorySectionName, MemoryBasicVlmInformation } MEMORY_INFORMATION_CLASS; typedef struct _MEMORY_BASIC_INFORMATION { // Information Class 0 PVOID BaseAddress; PVOID AllocationBase; ULONG AllocationProtect; ULONG RegionSize; ULONG State; ULONG Protect; ULONG Type; } MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; typedef struct _MEMORY_SECTION_NAME { // Information Class 2 UNICODE_STRING SectionFileName; } MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME; class CSysInfo { typedef NTSTATUS (__stdcall * ZWQUERYVIRTUALMEMORY)( IN HANDLE ProcessHandle, IN PVOID BaseAddress, IN MEMORY_INFORMATION_CLASS MemoryInformationClass, OUT PVOID MemoryInformation, IN ULONG MemoryInformationLength, OUT PULONG ReturnLength OPTIONAL ); public: CSysInfo(); ~CSysInfo(); public: bool Init(); void Release(); bool ValidateSN(); void UpdateHostSN(); void GetSystemInformation(); bool GetWin32KServiceTable(); CDbgProcess*InsertProcess(DWORD PID); //ͨPID bool RemoveProcess(DWORD PID); //ͨPIDɾһ̶ CDbgProcess*GetProcess(DWORD PID); CDbgProcess*GetProcessByCR3(DWORD CR3); CDbgProcess*GetProcess(WCHAR*szProcName); CDbgProcess*GetProcessByEPROCESS(DWORD EProcess); DWORD SearchMemory(DWORD BaseAddr,DWORD BaseSize,BYTE* Feature,DWORD Size); void OutputEnv(); bool GetSystemRoot(); bool ConvertFileName(CHAR*szFileName); void GetPathSymbolLinker(); bool FindWin32KServiceSymName(); bool PatchI8042Driver(); #ifdef CODE_OS_NT_DRV bool GetDllList(CDbgProcess*pProcess); bool GetDllListNew(CDbgProcess*pProcess); //window7 use this function bool GetProcessName(PEPROCESS curproc,WCHAR*ProcessName,int BufCount); bool GetDriverList(); bool GetServiceTable(); bool NtcallInit(); bool GetIDTTable(); bool GetOSKernelName(); #endif bool LoadExpModList(); bool LoadSDSList(); public: DWORD m_SystemStartAddr; WCHAR m_szSystemRoot[MAX_FN_LEN]; WCHAR m_szSystem32[MAX_FN_LEN]; WCHAR m_szSystem32Drivers[MAX_FN_LEN]; CHAR m_szSystemRootA[MAX_FN_LEN]; CHAR m_szSystem32A[MAX_FN_LEN]; CHAR m_szSystem32DriversA[MAX_FN_LEN]; CHAR m_szSystemRootMarco[MAX_FN_LEN]; CHAR m_OSKernelName[MAX_FN_LEN]; ULPOS m_SyserBase; ULPOS m_SyserHighBase; int m_ProcNameOff; int m_ProcCR3dwOff; ULONG m_PEBOffsetOfEPROCESS; CProcMap m_ProcMap; ULPOS m_W32ServiceTableAddress; ULPOS* m_W32ServiceTable; ULPOS m_win32kImageBase; ULSIZE m_win32kImageSize; BYTE* m_W32ServiceArgv; DWORD m_W32ServiceNumbers; ULPOS m_MmUnmapViewOfSection; ULPOS m_HidP_TranslateUsageAndPagesToI8042ScanCodes; ZWQUERYVIRTUALMEMORY m_pZwQueryVirtualMemory; DWORD m_OSKernlBase; TNtcallMap m_NtcallMap; TNtcallNameIDMap m_Win32kNtcallMap; DWORD* m_OrgWindowsServiceArgTable; DWORD m_LoCount; DWORD m_HiCount; DWORD* m_OrgWindowsServiceTable; ULONG m_OSMajorVersion; ULONG m_OSMinorVersion; ULONG m_OSBuildNumber; BOOLEAN m_OSCheckBuild; PORGWINDOWSIDTENTRY m_OrgWindowIDT; static PCSTR m_gNtoskrnlName[]; CHAR m_szExpModListFN[MAX_FN_LEN]; TList m_SymbolPathList; LARGE_INTEGER m_CurrentTime; LARGE_INTEGER m_InstallTime; bool m_bSNPass; bool m_bEvlVer; //SYSER_SN_TYPE m_SNType; CStrW m_LicTip; CStrA m_SNStr; CStrA m_LicNameStr; }; int SyserUnicodeToAnsi(const WCHAR*WszBuf,char*szBuf,int MaxLen); int SyserAnsiToUnicode(const char*szBuf,WCHAR*WszBuf,int MaxLen); bool GetPEBOffset(ULONG* PEBOffset); MODULE_ID GetModuleID(ULPOS ImageBase,ULSIZE ImageSize); #endif ================================================ FILE: Project/Syser/Source/Syser.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "ObjectDirectory.h" #include "SyserConfig.h" #include "VideoDriver.h" #include "Interrupt2D.h" #include "SyserSymAnalyzer.h" #include "Mouse.h" #include "syserdrivermc.h" #include "Int0xe.h" #include "VMWareSupport.h" #include "VirtualPCSupport.h" #include "OSProcessThread.h" DWORD dwgErrorCode=0; void* CorrectVideoBuffer = NULL; SIZE_T CorrectVideoBufSize = 0; DWORD* LoadCFGHotKey() { DWORD* Buffer=new DWORD[0x10000/sizeof(DWORD)]; int i,j,nRealLen; DWORD* pEndbuffer; if(Buffer==NULL) return NULL; pEndbuffer=Buffer; if(LoadSyserHotKeyDriver(WSTR("Syser"),WSTR("SyserHotKey.cfg"),Buffer,0x10000,&nRealLen)==false) { pEndbuffer++;//skip crc pEndbuffer++;//skip total number for(i=0,j=0;gDefaultHotkeyInfo[i].KeyName;i++) { *pEndbuffer++=gDefaultHotkeyInfo[i].CommandID; *pEndbuffer++=1; *pEndbuffer++=gDefaultHotkeyInfo[i].FuncKeyCode; *pEndbuffer++=gDefaultHotkeyInfo[i].SecondKeyCode; } Buffer[1]=i; *pEndbuffer++=0; *pEndbuffer++=0; *pEndbuffer++=0; *pEndbuffer++=0; DbgPrint("Syser : Load Default HotKey configure ok!\n"); } else DbgPrint("Syser : Load HotKey configure ok!\n"); return Buffer; } void LoadCFGDriver() { if(LoadSyserOptionDriver(WSTR("Syser"),WSTR("Syser.cfg"),&SyserOption,sizeof(SyserOption))==false) { if(SaveSyserOptionDriver(WSTR("Syser"),WSTR("Syser.cfg"),&OrgSyserOption,sizeof(OrgSyserOption))) ::DbgPrint("Syser : Save default Syser.cfg\n"); else ::DbgPrint("Syser : Fail to save default Syser.cfg\n"); SyserOption = OrgSyserOption; if(SyserOption.iKeyboardLayer != 0 && SyserOption.iKeyboardLayer != 1)//ҪֵҪϷ SyserOption.iKeyboardLayer = 0; } } void LoadColorCFGDriver() { if(LoadSyserOptionDriver(WSTR("Syser"),WSTR("SyserColor.cfg"),&ColorOption,sizeof(ColorOption))==false) { if(SaveSyserOptionDriver(WSTR("Syser"),WSTR("SyserColor.cfg"),&OrgColorOption,sizeof(OrgColorOption))) ::DbgPrint("Syser : Save default SyserColor.cfg\n"); else ::DbgPrint("Syser : Fail to save default SyserColor.cfg\n"); ColorOption = OrgColorOption; } } bool EnterOnLoadSyserDriver() { InitObjectDirectory(); InitInterruptStub(); LoadCFGDriver(); LoadColorCFGDriver(); ////////////////////////////////////////////////////////////// //ͨö MIN_LIMIT(SyserOption.iHeapSizeM,MIN_MAIN_HEAP); MAX_LIMIT(SyserOption.iHeapSizeM,MAX_MAIN_HEAP); gMainHeapSize = SyserOption.iHeapSizeM*0x100000; char*testpt = new char; if(testpt==NULL) { ::DbgPrint("Syser : Create Syser Heap Fail ()!\n"); return false; } delete testpt; //ͨö ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// //Ļ int VideoHeapSize = (SyserOption.iMaxWndWidth*SyserOption.iMaxWndHeight*sizeof(COLORREF)+CHUNK_SIZE)*2; gpUserHeap[SYSER_SCREEN_HEAP] = new CFixedHeap; gpUserHeap[SYSER_SCREEN_HEAP]->Create(VideoHeapSize); gMaxUserHeapCount++; //Ļ ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// //ԭ MIN_LIMIT(SyserOption.iSourceCodeHeapSizeM,MIN_SOURCE_CODE_HEAP); MAX_LIMIT(SyserOption.iSourceCodeHeapSizeM,MAX_SOURCE_CODE_HEAP); gpUserHeap[SYSER_SOURCE_DEBUG_HEAP] = new CFixedHeap; gMaxUserHeapCount++; //ԭ ////////////////////////////////////////////////////////////// SyserInitSystemSegmentRegister(); if(InitMultiCPUInformation()==false) { ::DbgPrint("Syser : Initialize CPU Information Error!\n"); return false; } if(MapPhysical0()==false) { ::DbgPrint("Syser : Map Physical Address 0 Error!\n"); } InitCPUIDInfo(); VMWareTest(); VirtualPCTest(); if(gInt0xeHook==false) { gInt0xeHook = InstallInterruptHandle(0xe,(VADDR32)SyserInt0eProc); gSyserInt0eAddress = GetCurrentCPUInterruptProcAddress(0xe); } if(InitPsActiveProcessHead()==false) ::DbgPrint("Syser : Initialize PsActiveProcessHead error!"); dwgErrorCode=6; return true; } void LeaveOnLoadSyserDriverFail(IN PDRIVER_OBJECT DriverObject) { if(gInt0xeHook==true) { if(UninstallInterruptHandle(0xe)) gInt0xeHook=false; } UnmapPhysical0(); ReleaseCPUIDInfo(); UNICODE_STRING SymbolicLinkName; RtlInitUnicodeString(&SymbolicLinkName,SYSER_LINK_NAME); if(DriverObject->DeviceObject) { IoDeleteDevice(DriverObject->DeviceObject); IoDeleteSymbolicLink(&SymbolicLinkName); } ReleaseMemoryAllocUserHeap(); ::DbgPrint("Syser : Fail to load syser driver!\n"); } void LeaveOnLoadSyserDriverSuccess() { } void OnUnloadSyserDriver() { if(gInt0xeHook==true) { if(UninstallInterruptHandle(0xe)) gInt0xeHook=false; } UnmapPhysical0(); ReleaseCPUIDInfo(); ReleaseMemoryAllocUserHeap(); } NTSTATUS MJFunction(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { Irp->IoStatus.Status = STATUS_SUCCESS; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserDeviceCreate(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { UNICODE_STRING Name; Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = FILE_OPENED; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserDeviceClose(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = FILE_OPENED; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserShutDown(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { if(gCPUNumbers>1) {//reset͹ػж2⣬ShutDownʱж gpSyser->m_pDebugger->RemoveAllCodeBP(); gpSyser->m_pDebugger->RemoveAllDataBP(); UninstallInterruptHandle(0x2); } if(gpSyser) { if(gpSyserCfg->m_PS2MouseType!=dwMousePrePackageSize) gpSyserCfg->WriteDwordValue(PS2MOUSE_TYPE,dwMousePrePackageSize); } Irp->IoStatus.Status = STATUS_SUCCESS; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } NTSTATUS SyserDeviceRead(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { KIRQL OldIRQL; int Size; PIO_STACK_LOCATION pCurStack; pCurStack = IoGetCurrentIrpStackLocation(Irp); Size = 0; Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information = Size; IoCompleteRequest(Irp,IO_NO_INCREMENT); return STATUS_SUCCESS; } void SyserDeviceControlDebugProcess(PIO_STACK_LOCATION IOStack,PIRP Irp) { CDbgProcess*pProcess; SYSER_DEBUG_PROCESS*pSyserDbgProc; pSyserDbgProc = (SYSER_DEBUG_PROCESS*)Irp->AssociatedIrp.SystemBuffer; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_DEBUG_PROCESS)||Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pProcess = gpSyser->m_SysInfo.GetProcess(pSyserDbgProc->ProcessID); if(pProcess==NULL) { ::DbgPrint("Syser : Fail to set BP Invaild PID %04X\n",pSyserDbgProc->ProcessID); return; } gpSyser->m_SyserUI.InsertLoadBP(pSyserDbgProc->ExeFullPathName,BP_TYPE_DEBUG|BP_TYPE_ONCE,BP_STATE_ENABLE); CSDSModule*pSDSModule=gpSyser->m_SyserUI.LoadSDSModule(pSyserDbgProc->SymbolFileName); if(pSDSModule && (pSyserDbgProc->Style & SDP_AUTO_UNLOAD_SDS)) { pSDSModule->m_ParentPID = pSyserDbgProc->ProcessID; } } void SyserDeviceControlLoadDriver(PIO_STACK_LOCATION IOStack,PIRP Irp) { PSYSER_DEBUG_DRIVER pSyserDebugDriver; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_DEBUG_DRIVER)||Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pSyserDebugDriver = (PSYSER_DEBUG_DRIVER)Irp->AssociatedIrp.SystemBuffer; pSyserDebugDriver->DriverPathName[sizeof(pSyserDebugDriver->DriverPathName)-1]=0; gpSyser->m_SyserUI.InsertLoadBP(pSyserDebugDriver->DriverPathName,BP_TYPE_DEBUG|BP_TYPE_ONCE,BP_STATE_ENABLE); pSyserDebugDriver->SymbolFileName[sizeof(pSyserDebugDriver->SymbolFileName)-1]=0; CSDSModule*pSDSModule=gpSyser->m_SyserUI.LoadSDSModule(pSyserDebugDriver->SymbolFileName); if(pSDSModule && (pSyserDebugDriver->Style & SDP_AUTO_UNLOAD_SDS)) pSDSModule->m_ParentPID = gpSyser->m_pSysDebugger->m_PID; } void SyserDeviceControlLoadSDS(PIO_STACK_LOCATION IOStack,PIRP Irp) { PSYSER_LOAD_SYMBOL_MODULE pLoadSymbolModule; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_LOAD_SYMBOL_MODULE)||Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pLoadSymbolModule=(PSYSER_LOAD_SYMBOL_MODULE)Irp->AssociatedIrp.SystemBuffer; pLoadSymbolModule->SymbolModuleName[sizeof(pLoadSymbolModule->SymbolModuleName)-1]=0; gpSyser->m_SyserUI.LoadSDSModule(pLoadSymbolModule->SymbolModuleName); } void SyserDeviceControlUnloadSDS(PIO_STACK_LOCATION IOStack,PIRP Irp) { PSYSER_UNLOAD_SYMBOL_MODULE pUnloadSymbolModule; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_UNLOAD_SYMBOL_MODULE)||Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pUnloadSymbolModule = (PSYSER_UNLOAD_SYMBOL_MODULE)Irp->AssociatedIrp.SystemBuffer; pUnloadSymbolModule->SymbolModuleName[sizeof(pUnloadSymbolModule->SymbolModuleName)-1]=0; for(CSDSModuleMap::IT Iter = gpSyser->m_SyserUI.m_SDSModuleMap.Begin();Iter.IsExist();Iter++) { if(TStrICmp(pUnloadSymbolModule->SymbolModuleName,(PCSTR)Iter->m_SymbolFileName)==0) { gpSyser->m_SyserUI.UnloadSDSModule(&(*Iter)); return; } } } void SyserDeviceControlLoadExportSymbol(PIO_STACK_LOCATION IOStack,PIRP Irp) { CSymbolModule*pSymbolModule; CHAR szFileName[MAX_FN_LEN]; char* pBuf; if(Irp->AssociatedIrp.SystemBuffer==NULL || IOStack->Parameters.DeviceIoControl.InputBufferLength==0) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pBuf=(char*)Irp->AssociatedIrp.SystemBuffer; pBuf[IOStack->Parameters.DeviceIoControl.InputBufferLength-1]=0; TStrCpy(szFileName,"\\??\\"); TStrCpyLimit(&szFileName[4],pBuf,MAX_FN_LEN-4); if(pSymbolModule=gpSyser->m_SyserUI.LoadPESym(szFileName)) { pSymbolModule->m_ReferenceCount++;//ü+1,֤ͷ DbgPrint("Syser : Load module export symbols %s\n",szFileName); } else DbgPrint("Syser : Fail to load module export symbols %s\n",szFileName); } void SyserDeviceControlLoadIDAMap(PIO_STACK_LOCATION IOStack,PIRP Irp) { PSYSER_LOAD_IDA_MAPFILE pIDAMapFile; CSymbolModule*pSymbolModule; CHAR IDAMapFile[MAX_FN_LEN]; CHAR ModuleName[MAX_FN_LEN]; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_LOAD_IDA_MAPFILE) || Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pIDAMapFile=(PSYSER_LOAD_IDA_MAPFILE)Irp->AssociatedIrp.SystemBuffer; pIDAMapFile->IDAMapFile[sizeof(pIDAMapFile->IDAMapFile)-1]=0; TStrCpy(IDAMapFile,"\\??\\"); TStrCpyLimit(&IDAMapFile[4],pIDAMapFile->IDAMapFile,MAX_FN_LEN-4); TStrCpy(ModuleName,"\\??\\"); pIDAMapFile->ModuleName[sizeof(pIDAMapFile->ModuleName)-1]=0; TStrCpyLimit(&ModuleName[4],pIDAMapFile->ModuleName,MAX_FN_LEN-4); if(pSymbolModule=gpSyser->m_SyserUI.LoadIDAMapFile(IDAMapFile,ModuleName)) { pSymbolModule->m_ReferenceCount++;//ü+1,֤ͷ DbgPrint("Syser : Load module IDA Map file %s\n",IDAMapFile); } else DbgPrint("Syser : Fail to load module IDA Map file %s\n",IDAMapFile); } void SyserDeviceQuerySDS(PIO_STACK_LOCATION IOStack,PIRP Irp) { PSYSER_QUER_SDS pSyserQuerSDS; bool bSDSLoadStat; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_QUER_SDS)||Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pSyserQuerSDS = (PSYSER_QUER_SDS)Irp->AssociatedIrp.SystemBuffer; bSDSLoadStat = gpSyser->m_SyserUI.QuerySDS(pSyserQuerSDS); *(bool*)Irp->AssociatedIrp.SystemBuffer=bSDSLoadStat; Irp->IoStatus.Information=sizeof(bool); Irp->IoStatus.Status=STATUS_SUCCESS; } void SyserDeviceControlReloadConfig(PIO_STACK_LOCATION IOStack,PIRP Irp) { if(gpSyser) { gpSyserCfg->LoadConfig(); LoadCFGDriver(); if(gpSyserCfg->m_MouseDoubleClickTimeInterval) gMaxDblClkInterval=gpSyserCfg->m_MouseDoubleClickTimeInterval; DbgPrint("Syser : Reload config!\n"); } } void SyserDeviceControlReloadColorConfig(PIO_STACK_LOCATION IOStack,PIRP Irp) { if(gpSyser) { LoadColorCFGDriver(); DbgPrint("Syser : Reload color config!\n"); } } void SyserDeviceControlCorrectVideoParam(PIO_STACK_LOCATION IOStack,PIRP Irp) { if(gpSyser->m_RealFrameBuffer.Buffer && CorrectVideoBuffer==NULL) return; PEPROCESS Pr; SYSER_CORRECT_VIDEO_PARAM*pCorrectVideo; PHYSICAL_ADDRESS PhysAddress; pCorrectVideo = (SYSER_CORRECT_VIDEO_PARAM*)Irp->AssociatedIrp.SystemBuffer; if(IOStack->Parameters.DeviceIoControl.InputBufferLength!=sizeof(SYSER_CORRECT_VIDEO_PARAM)) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } gpSyser->m_RealFrameBuffer.LineDistance = pCorrectVideo->Pitch; Pr=NULL; if(!NT_SUCCESS(PsLookupProcessByProcessId((HANDLE)pCorrectVideo->PID,&Pr))) return; KeAttachProcess((PRKPROCESS)Pr); PhysAddress = MmGetPhysicalAddress(pCorrectVideo->FrameBuffer); KeDetachProcess(); ObDereferenceObject(Pr); if(PhysAddress.QuadPart) { if(CorrectVideoBuffer) MmUnmapIoSpace(CorrectVideoBuffer,CorrectVideoBufSize); CorrectVideoBufSize = pCorrectVideo->Pitch*pCorrectVideo->Height; CorrectVideoBuffer = MmMapIoSpace(PhysAddress,CorrectVideoBufSize,MmWriteCombined); ::DbgPrint("Syser : PhysAddress = 0x%08X , Correct Video Buffer = 0x%08X\n",(DWORD)PhysAddress.QuadPart,CorrectVideoBuffer); ::DbgPrint("Syser : Width = %08X , Height = %08X , Pitch = %08X\n",pCorrectVideo->Width,pCorrectVideo->Height,pCorrectVideo->Pitch); SyserFrameModeChange(pCorrectVideo->Width,pCorrectVideo->Height,pCorrectVideo->Bpp,CorrectVideoBuffer,pCorrectVideo->Pitch,0); } else { ::DbgPrint("Syser : Fail to correct Video Buffer = 0x%08X PID[%04X]\n",pCorrectVideo->FrameBuffer,pCorrectVideo->PID); } } void SyserDeviceControlGetClipboard(PIO_STACK_LOCATION IOStack,PIRP Irp) { char szBuffer[32]; if(Irp->AssociatedIrp.SystemBuffer==NULL || IOStack->Parameters.DeviceIoControl.OutputBufferLength==0) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } int Length = UnicodeToAnsi(gpSyser->m_ClipboardString,(PSTR)Irp->AssociatedIrp.SystemBuffer,IOStack->Parameters.DeviceIoControl.OutputBufferLength); Irp->IoStatus.Information=Length+1; Irp->IoStatus.Status=STATUS_SUCCESS; TStrOmit((PCSTR)Irp->AssociatedIrp.SystemBuffer,szBuffer,20); DbgPrint("Syser : Send Clipboard [%s] to Loader\n",szBuffer); } void SyserDeviceControlSetClipboard(PIO_STACK_LOCATION IOStack,PIRP Irp) { char szBuffer[32]; char* pBuf; if(Irp->AssociatedIrp.SystemBuffer==NULL ||IOStack->Parameters.DeviceIoControl.InputBufferLength==0) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } pBuf=(char*)Irp->AssociatedIrp.SystemBuffer; pBuf[IOStack->Parameters.DeviceIoControl.InputBufferLength-1]=0; gpSyser->SetClipboardString((PCSTR)Irp->AssociatedIrp.SystemBuffer); TStrOmit((PCSTR)Irp->AssociatedIrp.SystemBuffer,szBuffer,20); DbgPrint("Syser : Update Clipboard [%s]\n",szBuffer); } void SyserDeviceControlScreenShot(PIO_STACK_LOCATION IOStack,PIRP Irp) { CHAR* szBuffer; ULONG Length; if(Irp->AssociatedIrp.SystemBuffer==NULL||IOStack->Parameters.DeviceIoControl.InputBufferLength==0) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } szBuffer=(CHAR*)Irp->AssociatedIrp.SystemBuffer; szBuffer[IOStack->Parameters.DeviceIoControl.InputBufferLength-1]=0; if(gpSyser->SaveScreen(szBuffer)) DbgPrint("Syser : Save ScreenShot to %s\n",szBuffer); else DbgPrint("Syser : Fail to save ScreenShot to %s\n",szBuffer); } void SyserDeviceSaveHistroys(PIO_STACK_LOCATION IOStack,PIRP Irp) { CHAR szBuffer[MAX_FN_LEN]; ULONG Length; if(Irp->AssociatedIrp.SystemBuffer==NULL) { Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; return; } Length=IOStack->Parameters.DeviceIoControl.InputBufferLength+1; if(Length>MAX_FN_LEN-4) Length=MAX_FN_LEN-4; TStrCpy(szBuffer,"\\??\\"); TStrCpyLimit(&szBuffer[4],(PCSTR)Irp->AssociatedIrp.SystemBuffer,Length); gpSyser->m_MainFrame.m_ConsoleWnd.SaveHistroys(szBuffer); DbgPrint("Syser : Save Histroys to %s\n",szBuffer); } void SyserDeviceSaveComments(PIO_STACK_LOCATION IOStack,PIRP Irp) { gpSyser->m_SyserUI.SaveComment(); DbgPrint("Syser : Save Comments\n"); } NTSTATUS SyserDeviceControl(IN PDEVICE_OBJECT DeviceObject,IN PIRP Irp) { NTSTATUS Status; PIO_STACK_LOCATION IOStack; IOStack = IoGetCurrentIrpStackLocation(Irp); Irp->IoStatus.Status = STATUS_SUCCESS; Irp->IoStatus.Information=0; switch(IOStack->Parameters.DeviceIoControl.IoControlCode) { case IOCTL_SYSER_DEBUG_PROCESS: SyserDeviceControlDebugProcess(IOStack,Irp); break; case IOCTL_SYSER_DEBUG_DRIVER: SyserDeviceControlLoadDriver(IOStack,Irp); break; case IOCTL_SYSER_SAVE_HISTROYS: SyserDeviceSaveHistroys(IOStack,Irp); break; case IOCTL_SYSER_SAVE_COMMENTS: SyserDeviceSaveComments(IOStack,Irp); break; case IOCTL_SYSER_LOAD_SDS: SyserDeviceControlLoadSDS(IOStack,Irp); break; case IOCTL_SYSER_UNLOAD_SDS: SyserDeviceControlUnloadSDS(IOStack,Irp); break; case IOCTL_SYSER_LOAD_EXPORT_SYMBOL: SyserDeviceControlLoadExportSymbol(IOStack,Irp); break; case IOCTL_SYSER_LOAD_IDA_MAPFILE: SyserDeviceControlLoadIDAMap(IOStack,Irp); break; case IOCTL_SYSER_QUERY_SDS: SyserDeviceQuerySDS(IOStack,Irp); break; case IOCTL_SYSER_RELOAD_CONFIG: SyserDeviceControlReloadConfig(IOStack,Irp); break; case IOCTL_SYSER_RELOAD_COLOR_CONFIG: SyserDeviceControlReloadColorConfig(IOStack,Irp); break; case IOCTL_SYSER_CORRECT_VIDEO_PARAM: SyserDeviceControlCorrectVideoParam(IOStack,Irp); break; case IOCTL_SYSER_GET_CLIP_BOARD: SyserDeviceControlGetClipboard(IOStack,Irp); break; case IOCTL_SYSER_SET_CLIP_BOARD: SyserDeviceControlSetClipboard(IOStack,Irp); break; case IOCTL_SYSER_SCREEN_SHOT: SyserDeviceControlScreenShot(IOStack,Irp); break; default: break; } Status=Irp->IoStatus.Status; IoCompleteRequest(Irp, IO_NO_INCREMENT); return Status; } void SyserUnload(IN PDRIVER_OBJECT DriverObject) { UNICODE_STRING SymbolicLinkName; if(gSyserHotKeyDriverBuffer && gSyserHotKeyDriverLen) { SaveSyserHotKeyDriver(WSTR("Syser"),WSTR("SyserHotKey.cfg"),gSyserHotKeyDriverBuffer,gSyserHotKeyDriverLen); } if(gpSyser) { if(gpSyserCfg->m_PS2MouseType!=dwMousePrePackageSize) gpSyserCfg->WriteDwordValue(PS2MOUSE_TYPE,dwMousePrePackageSize); gpSyser->Release(); //SafeDelete(gpSyser); } if(gpSyserCfg) { delete gpSyserCfg; gpSyserCfg = NULL; } RtlInitUnicodeString(&SymbolicLinkName,SYSER_LINK_NAME); IoDeleteSymbolicLink(&SymbolicLinkName); PDEVICE_OBJECT NextDeviceObject,DeviceObject; NextDeviceObject = DriverObject->DeviceObject; while(NextDeviceObject) { DeviceObject = NextDeviceObject; NextDeviceObject = NextDeviceObject->NextDevice; IoDeleteDevice(DeviceObject); } if(CorrectVideoBuffer) MmUnmapIoSpace(CorrectVideoBuffer,CorrectVideoBufSize); OnUnloadSyserDriver(); } PDRIVER_DISPATCH gDefaultPDriverDispatch=NULL; PDRIVER_OBJECT gDriverObject; NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegistryPath) { UNICODE_STRING DeviceName,SymbolicLinkName,Name; NTSTATUS Status; gDriverObject=DriverObject; DriverObject->DriverUnload = SyserUnload; if(EnterOnLoadSyserDriver()==false) { LeaveOnLoadSyserDriverFail(DriverObject); return STATUS_UNSUCCESSFUL; } gDefaultPDriverDispatch = DriverObject->MajorFunction[IRP_MJ_CREATE]; for(int FunCount=0;FunCountMajorFunction[FunCount]=MJFunction; DriverObject->MajorFunction[IRP_MJ_CREATE] = SyserDeviceCreate; DriverObject->MajorFunction[IRP_MJ_READ] = SyserDeviceRead; DriverObject->MajorFunction[IRP_MJ_CLOSE] = SyserDeviceClose; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = SyserDeviceControl; DriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = SyserShutDown; gpSyserCfg = new CSyserConfig; if(gpSyserCfg==NULL) { LeaveOnLoadSyserDriverFail(NULL); return STATUS_UNSUCCESSFUL; } gpSyserCfg->SetDriverRegistryPath(RegistryPath); gpSyserCfg->LoadConfig(); dwgErrorCode=7; gpSyser = new CSyser; if(gpSyser==NULL) { LeaveOnLoadSyserDriverFail(NULL); return STATUS_UNSUCCESSFUL; } if(gpSyserCfg->m_MouseDoubleClickTimeInterval) gMaxDblClkInterval=gpSyserCfg->m_MouseDoubleClickTimeInterval; gpSyser->m_DriverObject=DriverObject; gpSyser->m_DriverStartAddr=*(DWORD*)&DriverObject->DriverStart; gpSyser->m_DriverEndAddr=gpSyser->m_DriverStartAddr+DriverObject->DriverSize; InitTickCount(); RtlInitUnicodeString(&DeviceName,SYSER_DEVICE_NAME); Status = IoCreateDevice(DriverObject,0,&DeviceName,FILE_DEVICE_UNKNOWN,0,FALSE,&gpSyser->m_DeviceObject); if(!NT_SUCCESS(Status)) { gpSyser->Release(); delete gpSyser; LeaveOnLoadSyserDriverFail(NULL); return Status; } gpSyser->m_DeviceObject->Flags |= DO_BUFFERED_IO; gpSyser->m_DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING; RtlInitUnicodeString(&SymbolicLinkName,SYSER_LINK_NAME); IoCreateSymbolicLink(&SymbolicLinkName,&DeviceName); dwgErrorCode=0; if(gpSyser->Init()==false) { gpSyser->Release(); delete gpSyser; gpSyser=NULL; LeaveOnLoadSyserDriverFail(DriverObject); return STATUS_UNSUCCESSFUL; } LeaveOnLoadSyserDriverSuccess(); IoRegisterShutdownNotification(gpSyser->m_DeviceObject); return STATUS_SUCCESS; } NTSTATUS DllInitialize( IN PUNICODE_STRING pus ) { return STATUS_SUCCESS; } NTSTATUS DllUnload( ) { return STATUS_SUCCESS; } bool SyserErrorLog(VOID* IoObject,ULONG ErrorMsgID,UCHAR MajorFunctionCode,UCHAR RetryCount,ULONG IoControlCode,ULONG FinalStatus,WCHAR *String,WCHAR *String2,ULONGLONG DumpData1,ULONGLONG DumpData2) { BYTE TmpPointer; DWORD Str1Len=0,Str2Len=0,EntrySize,DumpDataSize=0; PIO_ERROR_LOG_PACKET ErrorLogEntry; if(String) Str1Len = (TStrLen(String)+1)*sizeof(WCHAR); if(String2) Str2Len = (TStrLen(String2)+1)*sizeof(WCHAR); if(DumpData1) DumpDataSize+=sizeof(ULONGLONG); if(DumpData2) DumpDataSize+=sizeof(ULONGLONG); EntrySize = sizeof(IO_ERROR_LOG_PACKET)+DumpDataSize+Str1Len+Str2Len; ErrorLogEntry = (PIO_ERROR_LOG_PACKET)IoAllocateErrorLogEntry(IoObject,(UCHAR)EntrySize); if(ErrorLogEntry==NULL) return false; ErrorLogEntry->ErrorCode = ErrorMsgID; if(DumpDataSize) { ErrorLogEntry->DumpDataSize=(USHORT)DumpDataSize; memcpy(&ErrorLogEntry->DumpData[0],&DumpData1,sizeof(DumpData1)); if(DumpData2) memcpy((UCHAR*)&ErrorLogEntry->DumpData[0]+sizeof(DumpData1),&DumpData2,sizeof(DumpData2)); } ErrorLogEntry->NumberOfStrings=0; ErrorLogEntry->StringOffset=0; if(Str1Len) { ErrorLogEntry->NumberOfStrings++; ErrorLogEntry->StringOffset=(UCHAR*)&ErrorLogEntry->DumpData[0]+DumpDataSize-(UCHAR*)ErrorLogEntry; memcpy((UCHAR*)ErrorLogEntry+ErrorLogEntry->StringOffset,String,Str1Len); } if(Str2Len) { ErrorLogEntry->NumberOfStrings++; if(ErrorLogEntry->StringOffset==0) ErrorLogEntry->StringOffset=(UCHAR*)&ErrorLogEntry->DumpData[0]+DumpDataSize-(UCHAR*)ErrorLogEntry; memcpy((UCHAR*)ErrorLogEntry+ErrorLogEntry->StringOffset+Str1Len,String2,Str2Len); } ErrorLogEntry->FinalStatus =FinalStatus; ErrorLogEntry->SequenceNumber=0; ErrorLogEntry->IoControlCode=IoControlCode; ErrorLogEntry->DeviceOffset.QuadPart=0; ErrorLogEntry->EventCategory = 1; ErrorLogEntry->RetryCount=RetryCount; ErrorLogEntry->MajorFunctionCode =MajorFunctionCode; IoWriteErrorLogEntry(ErrorLogEntry); return true; } ================================================ FILE: Project/Syser/Source/Syser.def ================================================ NAME SYSER.SYS EXPORTS DllInitialize PRIVATE DllUnload PRIVATE gpSyserPluginUI ================================================ FILE: Project/Syser/Source/Syser.h ================================================ #ifndef _SYSER_H_ #define _SYSER_H_ //#define REG_LIST gpSyser->m_MainFrame.m_SystemExplorer.m_GeneRegList #define RUNCMD gpSyser->m_MainFrame.m_ConsoleWnd.RunCmd #define CALCEXP gpSyser->m_SyserUI.CalcExp #define GETSYM gpSyser->m_SyserUI.GetSym #define GET_ALMOST_SYM gpSyser->m_SyserUI.GetAlmostSym #define GET_STRING_SYM gpSyser->m_SyserUI.GetString #define SCR_DBG_PRINT gpSyser->DbgPrint //ǰĵļĴָṹ,ǺͶCPU޹ص #define X86_REG_PTR gpSyser->m_SyserUI.m_CodeDoc.m_X86RegPtr //ǰCPUļĴָṹǼĴijԱ #define CPU_REG_PTR_X86 m_X86RegPtr #define ACTIVE_CODE_VIEW ((CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd()) #define ACTIVE_DATA_VIEW ((CDataView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd()) #define SYSTEM_EXPLORER gpSyser->m_MainFrame.m_SystemExplorer #define SOURCE_WATCH_WND gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SourceVariableWatchWnd #define CENTER_VIEW_CODE gpSyser->m_MainFrame.m_SystemExplorer.CenterViewCodeAddress #define VIEW_CODE gpSyser->m_MainFrame.m_SystemExplorer.ViewCodeAddress #define VIEW_DATA gpSyser->m_MainFrame.m_SystemExplorer.ViewDataAddress #define ADD_CODE_VIEW gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.InsertView #define ADD_DATA_VIEW gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.InsertView #define STR_REF_WND gpSyser->m_MainFrame.m_StringReferenceWnd ///////////////////////////////////////////////////////////////////////////////////////////////////// // #define UPDATE_CODE_VIEW gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.UpdateAllView #define UPDATE_DATA_VIEW gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.UpdateAllView #define UPDATE_MEMORY_VIEW gpSyser->m_MainFrame.m_SystemExplorer.UpdateMemoryView #define SAVE_MEMORY_VIEW gpSyser->m_MainFrame.m_SystemExplorer.SaveMemoryContext #define UPDATE_CONTEXT gpSyser->m_MainFrame.m_SystemExplorer.UpdateContext #define UPDATE_SOURCE_CODE_VIEW gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateAllView #define UPDATE_BP_FORM gpSyser->m_MainFrame.Update // ///////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// //̨ #define OUTPUT gpSyser->m_MainFrame.m_ConsoleWnd.Printf #define SYSEXPLR_OUTPUT gpSyser->m_MainFrame.m_SystemExplorer.m_TerminalWnd.Printf #define SRCEXPLR_OUTPUT gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_TerminalWnd.Printf #define OUTPUT_INPUT_ERROR OUTPUT(WSTR("%<3>Error %<1>: Input error!\n")) #define OUTPUT_INVALID_ADDRESS OUTPUT(WSTR("%<3>Error %<1>: Invalid Address!\n")) #define OUTPUT_INVALID_PARAM OUTPUT(WSTR("%<3>Error %<1>: Invalid Parameter!\n")) #define OUTPUT_FAIL_TO_READ_MEM OUTPUT(WSTR("%<3>Error %<1>: Fail to read memory!\n")) #define OUTPUT_FAIL_TO_WRITE_MEM OUTPUT(WSTR("%<3>Error %<1>: Fail to write memory!\n")) #define OUTPUT_COMMAND_USAGE {WCHAR szCmdBuff[64];TSPrintf(szCmdBuff,WSTR("help %s"),argv[0]);RUNCMD(szCmdBuff);} //̨ ///////////////////////////////////////////////////////////////////////////////////////////////////// #define SOURC_DEBUGE_FRAME_WND gpSyser->m_MainFrame.m_SourceDebugFrameWnd #define DECLARE_SYSER_CMD(Name) int Name(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) #define IS_CTRL_BREAK (gpSyser->m_KeyMap[WISP_VK_CONTROL] && gpSyser->m_KeyMap[WISP_VK_C]) #define CUR_SOURCE_SDSMODULE gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.m_pActiveSDSModule #define ASSERT_DEBUGGER_OPENED if(!gpSyser->m_SyserUI.m_CodeDoc.IsOpened())return 1; #define PATCH_SYSTEM(n,a,f) gpSyser->m_pSysDebugger->PatchSystem(n,(ULPOS)(NUM_PTR)a,f) enum { SYSTEM_EXPLORER_VIEW = 0, CONSOLE_VIEW, SOURCE_EXPLORER_VIEW, MAX_VIEW }; DWORD* LoadCFGHotKey(); /////////////////////////////////////////////////////////// //Ӧ #ifdef CODE_OS_WIN #include "SyserApp.h" #define SwitchHeap #define IsHeapFreeBelow(iHeap,Size) (false) void DbgPrint(PCSTR,...); //Ӧ /////////////////////////////////////////////////////////// #else //CODE_OS_NT_DRV /////////////////////////////////////////////////////////// // #include "SyserNTDrvApp.h" #include "VMWareSupport.h" #include "GlobalVariable.h" #define IsHeapFreeBelow(iHeap,Size) (gpUserHeap[iHeap]->m_FreeChunkCount<=((ULSIZE)(Size)/CHUNK_SIZE)) #define SYSER_LINK_NAME WSTR("\\??\\Syser") #define SYSER_MSG_EVENT_NAME WSTR("\\BaseNamedObjects\\SyserMsgEvent") #define SYSER_DEVICE_NAME WSTR("\\Device\\Syser") #define SYSER_PLUGIN_DEVICE_NAME WSTR("\\Device\\SyserPlugin") #define SYSER_INIT WSTR("SyserInit") //bool WriteSyserEventLog(VOID* IoObject,ULONG ErrorMsgID,WCHAR *String,WCHAR *String2); bool SyserErrorLog(VOID* IoObject,ULONG ErrorMsgID,UCHAR MajorFunctionCode=0,UCHAR RetryCount=0,ULONG IoControlCode=0,ULONG FinalStatus=0,WCHAR *String=NULL,WCHAR *String2=NULL,ULONGLONG DumpData1=0,ULONGLONG DumpData2=0); extern PDRIVER_DISPATCH gDefaultPDriverDispatch; void SaveHeapInfo(); void ReportHeapChangedInfo(PCSTR szMessage); void ReportHeapInfo(PCSTR szMessage); // /////////////////////////////////////////////////////////// #endif//CODE_OS_WIN #endif ================================================ FILE: Project/Syser/Source/Syser.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""SyserVer.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON_SYSER ICON "Res\\Syser.ico" ///////////////////////////////////////////////////////////////////////////// // // Cursor // IDC_CURSOR_CUR_EIP CURSOR "res\\CurEIP.cur" ///////////////////////////////////////////////////////////////////////////// // // RT_MANIFEST // IDR_RT_MANIFEST RT_MANIFEST "res\\rt_manif.bin" ///////////////////////////////////////////////////////////////////////////// // // String Table // STRINGTABLE BEGIN IDS_STRING104 "test1" END #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "SyserVer.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/Syser/Source/SyserAboutForm.cpp ================================================ #include "StdAfx.h" #include "SyserAboutForm.h" enum CAboutForm::WISP_FORM_ID { CMD_ID_VERSION_EDIT = WISP_ID_USER_START, }; WISP_FORM_RES_ITEM CAboutForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,300,250}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("About Syser") }, { WISP_CTRL_STATIC_DIB, {10,10,32,32}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:2" }, { WISP_CTRL_STATIC_DIB, {85,20,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Explorer.ico:1" }, { WISP_CTRL_STATIC_URL, {110,20,180,20}, WISP_ID_NULL, WISP_WS_NULL, WSTR("http://www.sysersoft.com"), }, { WISP_CTRL_STATIC_DIB, {85,50,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Email.ico:1" }, { WISP_CTRL_STATIC_URL, {110,50,180,20}, WISP_ID_NULL, WISP_WS_NULL, WSTR("mailto:support@sysersoft.com"), }, { WISP_CTRL_STATIC_GROUP, {10,80,270,110}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Vesion Info"), }, { WISP_CTRL_STATIC_STRING, {20,100,250,90}, CMD_ID_VERSION_EDIT, WISP_WS_NULL, NULL, NULL, WSTR("Syser Version") }, { WISP_CTRL_BUTTON, {120,200,50,18}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CAboutForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) bool CAboutForm::OnFormCreate(IN WISP_MSG*pMsg) { WCHAR szBuffer[512],szVer[32],szDate[32]; CWispBaseWnd*pWnd; pWnd = GetFormItem(CMD_ID_VERSION_EDIT); if(pWnd) { TStrCpy(szVer,VER_PRODUCTVERSION_STR); TStrCpy(szDate,__DATE__); TSPrintf(szBuffer,WSTR("Syser version : %s \nBuild Date : %s \n\nSyser Development Team\n\nwuyanfeng ҷ\nchenjunhao ¿"),szVer,szDate,VER_PRODUCTBUILD_QFE); pWnd->SetWindowText(szBuffer); } return true; } ================================================ FILE: Project/Syser/Source/SyserAboutForm.h ================================================ #ifndef __SYSERABOUTFORM_H_ #define __SYSERABOUTFORM_H_ class CAboutForm : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); CAboutForm(){m_pFormRes = m_FormRes;} }; #endif //__SYSERABOUTFORM_H_ ================================================ FILE: Project/Syser/Source/SyserApp.cpp ================================================ #include "StdAfx.h" #include "Syser.h" DWORD dwgErrorCode=0; CSyser* gpSyser; CSyser Syser; CSyserPluginUI*gpSyserPluginUI; void DbgPrint(PCSTR szMsg,...) { } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { gpSyser = &Syser; return Syser.WinMainStart(hInstance,lpCmdLine,nCmdShow); } CSyser::CSyser(void) { m_hDebuggerModule = NULL; m_pDebugger = NULL; gpSyserPluginUI = &m_SyserUI; m_bInitializeOK=true; TIME_ZONE_INFORMATION TimeZoneInfo; GetTimeZoneInformation(&TimeZoneInfo); m_TimeZoneBias = TimeZoneInfo.Bias*60; } CSyser::~CSyser(void) { } void CSyser::LoadCFG() { char szCfgFN[MAX_FN_LEN]; //GetSystemDirectoryA(szCfgFN,MAX_FN_LEN); //TStrCat(szCfgFN,"\\drivers\\Syser.cfg"); GetModulePath(szCfgFN); TStrCat(szCfgFN,"Syser.cfg"); if(LoadSyserOption(szCfgFN,&SyserOption,sizeof(SyserOption))==false) { SaveSyserOption(szCfgFN,&OrgSyserOption,sizeof(OrgSyserOption)); SyserOption = OrgSyserOption; } char szColorCfgFN[MAX_FN_LEN]; GetSystemDirectoryA(szColorCfgFN,MAX_FN_LEN); TStrCat(szColorCfgFN,"\\drivers\\SyserColor.cfg"); if(LoadSyserOption(szColorCfgFN,&ColorOption,sizeof(ColorOption))==false) { SaveSyserOption(szColorCfgFN,&OrgColorOption,sizeof(OrgColorOption)); ColorOption = OrgColorOption; } } bool CSyser::LoadDebugger(WCHAR*szModuleName) { FPGetFileFilter fGetFileFilter; FPCreateDebugger fCreateDebugger; FPGetInfo fGetInfo; char szFullName[MAX_FN_LEN]; UnloadDebugger(); GetModulePath(szFullName); int Legnth = TStrLen(szFullName); if(Legnth>MAX_FN_LEN)return false; UnicodeToAnsi(szModuleName,&szFullName[Legnth],MAX_FN_LEN - Legnth); m_hDebuggerModule = LoadLibrary(szFullName); if(m_hDebuggerModule==NULL) return false; (FARPROC&)fCreateDebugger = GetProcAddress(m_hDebuggerModule,"CreateDebugger"); if(fCreateDebugger==NULL) return false; (FARPROC&)fGetFileFilter = GetProcAddress(m_hDebuggerModule,"GetFileFilter"); (FARPROC&)fGetInfo = GetProcAddress(m_hDebuggerModule,"GetInfo"); if(fGetFileFilter) { WCHAR szBuffer[MAX_FN_LEN]; fGetFileFilter(szBuffer); gpSyser->m_szDbgFileNameFilter = szBuffer; } if(fGetInfo) { char szBuffer[256]; TStrCpy(szBuffer,"Syser Debugger - "); fGetInfo(&szBuffer[TStrLen(szBuffer)]); SetWindowText(m_hLocalWnd,szBuffer); } m_pDebugger = (CX86Debugger*)fCreateDebugger(&m_SyserUI); if(m_pDebugger==NULL) { FreeLibrary(m_hDebuggerModule); m_hDebuggerModule = NULL; return false; } m_pSysDebugger = m_pDebugger; m_pDebugger->Init(&gpSyser->m_SyserUI.m_SyserDI); m_MainFrame.m_SystemExplorer.AttachDebugger(m_pDebugger); m_MainFrame.m_SystemExplorer.UpdateItemState(); m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); return true; } void CSyser::UnloadDebugger() { if(m_pDebugger == NULL || m_hDebuggerModule == NULL) return; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) gpSyser->m_SyserUI.m_CodeDoc.Close(); m_pDebugger->Release(); m_pDebugger = NULL; FreeLibrary(m_hDebuggerModule); m_hDebuggerModule = NULL; gpSyser->m_szDbgFileNameFilter.Empty(); m_MainFrame.m_SystemExplorer.DetachDebugger(); UnloadPlugin(); m_MainFrame.m_SystemExplorer.UpdateItemState(); m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); } XSCAN_RES CSyser::XScanPlugin(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParem) { if(TIMultiMatchWithPattern("*.dll",FileName)==false) return XSCAN_RES_IGNORE; LoadLibrary(FileName); return XSCAN_RES_CONTINUE; } int CSyser::LoadPlugin() { char szPlugin[MAX_FN_LEN]; GetModulePath(szPlugin); TStrCat(szPlugin,"Plugin\\i386\\*"); return gpFileIO->XScan(szPlugin,XScanPlugin,NULL,false); } void CSyser::UnloadPlugin() { m_PluginMap.Clear(); } bool CSyser::InitInstance() { m_pszDiskList = "Wisp.dat;Syser.dat"; LoadCFG(); //m_DefaultFontType = WISP_FONT_8X16; if(CWispApp::InitInstance()==FALSE) return false; #ifdef CODE_OS_WIN m_FrameStyleEx|=WS_EX_ACCEPTFILES; #endif m_bHideMouse = true; m_hIcon = LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IDI_ICON_SYSER)); m_hCursorCurEIP = LoadCursor(m_hLocalInst,MAKEINTRESOURCE(IDC_CURSOR_CUR_EIP)); CreateFrame(WSTR("Syser Debugger"), MAX(GetSystemMetrics(SM_CXFULLSCREEN)*5/6,0x2D0), MAX(GetSystemMetrics(SM_CYFULLSCREEN)*5/6,190),0); InitHotKeyInfo(); m_MainFrame.Create(NULL,0,0,m_FrameBuffer.Width,m_FrameBuffer.Height,NULL,WISP_ID_MAIN_FRAME,WISP_WS_BACK_TRANS); m_MainFrame.AddAdvStyle(WISP_WAS_DRAG_WND); m_MainFrame.m_pWispBase->SetKeyboardLayer(0); LoadPlugin(); gpSyser->LoadDebugger(SyserOption.szDebuggerFileName); if(m_pDebugger==NULL) m_MainFrame.m_DebuggerSelectForm.CreateForm(NULL,WISP_SH_MODAL_BLOCK); m_SyserUI.LoadAPIDefine(); LoadHistroy(); m_MainFrame.m_ConsoleWnd.RunModulePathBat("Syser.cmd",NULL); return true; } int CSyser::ExitInstance() { UnloadDebugger(); UnloadPlugin(); m_MainFrame.Destroy(); DestroyFrame(); DestroyIcon(m_hIcon); DestroyIcon(m_hCursorCurEIP); return CWispApp::ExitInstance(); } bool CSyser::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { char szBuffer[MAX_FN_LEN]; HDROP hDrop; switch(message) { case WM_DROPFILES: hDrop = (HDROP)wParam; DragQueryFile(hDrop,0,szBuffer,MAX_FN_LEN); if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()) gpSyser->m_SyserUI.m_CodeDoc.Close(); if(gpSyser->m_SyserUI.m_CodeDoc.Open(szBuffer)==false) OUTPUT(WSTR("Error : Fail to open dropped file !\n")); break; default: return CLocalWispApp::WndProc(hWnd,message,wParam,lParam); } return false; } void CSyser::LoadHistroy() { DWORD Style; WCHAR szBuffer[MAX_FN_LEN]; char szFileName[MAX_FN_LEN],*pStr; RECENT_HISTROY_ITEM Item; CTXTFile TXTFile; GetModulePath(szFileName); TStrCat(szFileName,"Histroy.lst"); if(TXTFile.Open(szFileName)==false) return; m_HistroyList.Clear(); for(TTXTStrList::IT Iter = TXTFile.m_StrList.Begin();Iter!=TXTFile.m_StrList.End();Iter++) { Style = SDP_NULL; pStr = TStrRChr(*Iter,'|'); if(pStr) { *pStr++=0; if(USHexStrToNum(pStr,&Style)==false) Style=SDP_NULL; } Item.FileName = *Iter; Item.Style = Style; if(gpFileIO->IsFileExist(Item.FileName)) m_HistroyList.Append(Item); } TXTFile.Close(); m_bHistroyModified = false; WISP_MENU_ITEM*pMenuItem = (WISP_MENU_ITEM*)m_MainFrame.m_SystemExplorer.m_WndMenu.GetItemByName(WSTR("Recent Files")); if(pMenuItem && m_HistroyList.Count()) { CWispMenu*pMenu = pMenuItem->pSubMenu; pMenu->RemoveAllItem(); int CmdID=EVENT_ID_RECENT_FILE+1; for(TList::IT Iter = m_HistroyList.Begin();Iter!=m_HistroyList.End()&&CmdID<=EVENT_ID_RECENT_FILE_END;Iter++) { AnsiToUnicode(Iter->FileName,szBuffer,MAX_FN_LEN); CWispDIB*pTypeDIB; PCSTR pExtName = TGetFileExt((PCSTR)Iter->FileName); if(pExtName && TStrICmp(pExtName,"exe")==0) pTypeDIB = WispTKDIBListDIB("\\Toolbar.bmp",16,16,22); else pTypeDIB = WispTKDIBListDIB("\\Toolbar.bmp",16,16,15); pMenu->InsertItem(-1,szBuffer,WISP_MIS_NORMAL,CmdID,pTypeDIB); CmdID++; } pMenu->AdjustPopupMenuSize(); } } void CSyser::SaveHistroy() { char szBuffer[256]; char szFileName[MAX_FN_LEN]; CImageFileStream File; GetModulePath(szFileName); TStrCat(szFileName,"Histroy.lst"); if(File.Create(szFileName)==false) return; int n=0; for(TList::IT Iter = m_HistroyList.Begin();Iter!=m_HistroyList.End();Iter++) { File.Puts(Iter->FileName.m_pData,Iter->FileName.Length()); File.Puts(szBuffer,TSPrintf(szBuffer,"|%X\r\n",Iter->Style)); n++; } File.Close(); } void CSyser::InsertHistroy(PCSTR szFileName,DWORD Style) { RECENT_HISTROY_ITEM Item; TList::IT Iter; Item.FileName = szFileName; Item.Style = Style; Iter = m_HistroyList.Find(Item); if(Iter!=m_HistroyList.End()) { if(Iter->Style == Style) return; m_HistroyList.Remove(Iter); } if(m_HistroyList.Count()Append(KeyPair); } } delete []OrgBuffer; } void CSyser::SetActiveHotKey(DWORD FuncKeyCode,DWORD SecondKeyCode) { } void CSyser::AttachHotKey(DWORD dwCmdID,CWispWnd* pWnd) { CMDHOTKEYMAP::IT FindIT; HOTKEYLIST::IT BeginIT; if(dwCmdID==0) return; FindIT=m_CmdHotKeyMap.Find(dwCmdID); if(FindIT!=m_CmdHotKeyMap.End()) { BeginIT=FindIT->Begin(); for(;BeginIT!=FindIT->End();BeginIT++) { if(BeginIT->SecondKeyCode) { pWnd->RegisterHotKey(dwCmdID,BeginIT->SecondKeyCode,BeginIT->FuncKeyCode); } else { pWnd->RegisterHotKey(dwCmdID,BeginIT->FuncKeyCode,0); } } } } ULONG gCPUNumbers=1; DWORD CSyser::AttachShortcutKey(DWORD dwCmdID,TMap & pMap) { CMDHOTKEYMAP::IT FindIT; HOTKEYLIST::IT BeginIT; if(dwCmdID==0) return 0; FindIT=m_CmdHotKeyMap.Find(dwCmdID); if(FindIT!=m_CmdHotKeyMap.End()) { BeginIT=FindIT->Begin(); for(;BeginIT!=FindIT->End();BeginIT++) { pMap.InsertUnique(BeginIT->SecondKeyCode|BeginIT->FuncKeyCode,dwCmdID); } return FindIT->Count(); } return 0; } bool CSyser::InitOSHwndRoot() { return true; } ================================================ FILE: Project/Syser/Source/SyserApp.h ================================================ #ifndef _SYSER_APP_H_ #define _SYSER_APP_H_ #define CMoveFramMenu CWispMenu #include "SyserUI.h" #include "MainFrame.h" typedef TMap CPluginMap; struct RECENT_HISTROY_ITEM { CIStrA FileName; DWORD Style; bool operator==(const RECENT_HISTROY_ITEM &Obj)const { return FileName==Obj.FileName; } }; typedef TList HOTKEYLIST; typedef TMap CMDHOTKEYMAP; class CSyser : public CLocalWispApp { public: CSyser(void); ~CSyser(void); public: virtual bool InitInstance(); virtual int ExitInstance(); void LoadCFG(); bool LoadDebugger(WCHAR*szModuleName); void UnloadDebugger(); int LoadPlugin(); void UnloadPlugin(); static XSCAN_RES XScanPlugin(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParem); CPluginMap m_PluginMap; HMODULE m_hDebuggerModule; CX86Debugger* m_pDebugger; CX86Debugger* m_pSysDebugger; HCURSOR m_hCursorCurEIP; CStrW m_szDbgFileNameFilter; CMainFrame m_MainFrame; CSyserUI m_SyserUI; CSourceDebug m_SourceDebug; CCurrentFunction m_CurrentFunctionContext; int m_TimeZoneBias; DWORD m_OSMajorVersion; DWORD m_OSMinorVersion; DWORD m_PopupThread; // Syser Active ʱǰ߳ KTHREAD DWORD m_PopupProcess; // Syser Active ʱǰ KPROCESS DWORD m_PopupThreadID; // Syser Active ʱǰ߳ ID DWORD m_PopupProcessID; // Syser Active ʱǰ ID SOUCEDEBUGCALLSTACKLIST m_SourceDebugCallStackList; virtual bool WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); bool m_bInitializeOK; TList m_HistroyList; bool m_bHistroyModified; void LoadHistroy(); void SaveHistroy(); void InsertHistroy(PCSTR szFileName,DWORD Style); CMDHOTKEYMAP m_CmdHotKeyMap; void InitHotKeyInfo(); void SetActiveHotKey(DWORD FuncKeyCode,DWORD SecondKeyCode); void AttachHotKey(DWORD dwCmdID,CWispWnd* pWnd); DWORD AttachShortcutKey(DWORD dwCmdID,TMap & pMap); TMap m_ShortcutKeyMap; DWORD m_OSHwndRoot; bool InitOSHwndRoot(); }; extern CSyser* gpSyser; extern ULONG gCPUNumbers; #endif ================================================ FILE: Project/Syser/Source/SyserCAbi.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SyserCAbi.h" // // CSyser // VOID SyserAttachPopupProcess(DWORD dwCR3) { gpSyser->AttachPopupProcess(dwCR3); } // // CSyser -> CDbgProcess // bool SyserDbgProcessHandleInt1(ULPOS Address) { return gpSyser->m_pDebugger->HandleInt1(Address); } bool SyserDbgProcessHandleInt3(ULPOS Address) { return gpSyser->m_pDebugger->HandleInt3(Address); } bool SyserIsgpSyserValid() { return (gpSyser != NULL); } bool SyserGetIsDbgRegAccessMon(VOID) { return gpSyser->m_bDbgRegAccessMon; } VOID SyserSetIsDbgRegAccessMon(bool newValue) { gpSyser->m_bDbgRegAccessMon = newValue; } bool SyserGetbUpdateReg(VOID) { return gpSyser->m_bUpdateReg; } VOID SyserSetbUpdateReg(bool newValue) { gpSyser->m_bUpdateReg = newValue; } bool SyserGetInstallDebug(VOID) { return gpSyser->InstallDebug(); } VOID SyserDbgPrint(int x,int y,IN WCHAR*Format,...) { va_list Next; WCHAR szBuffer[0x200]; va_start(Next,Format); TVSPrintf(szBuffer,Format,Next); va_end(Next); gpSyser->DbgPrint(x,y,szBuffer); } bool SyserGetbInitSuccess(VOID) { return gpSyser->m_bInitSuccess; } bool SyserbIsgpSyserValid(VOID) { return (bool)(gpSyser != NULL); } ULONG_PTR SyserGetSysInfoSyserBase(VOID) { return gpSyser->m_SysInfo.m_SyserBase; } ULONG_PTR SyserGetSysInfoSyserHighBase(VOID) { return gpSyser->m_SysInfo.m_SyserHighBase; } ================================================ FILE: Project/Syser/Source/SyserCAbi.h ================================================ #ifndef _SYSER_C_ABI_ #define _SYSER_C_ABI_ #ifdef __cplusplus extern "C" { #endif // // CSyser // VOID SyserAttachPopupProcess(DWORD dwCR3); // // CSyser -> CDbgProcess -> HandleInt1 // bool SyserDbgProcessHandleInt1(ULPOS Address); // // CSyser -> CDbgProcess -> HandleInt3 // bool SyserDbgProcessHandleInt3(ULPOS Address); // // CSyser // bool SyserIsgpSyserValid(VOID); // // CSyser -> m_bDbgRegAccessMon // bool SyserGetIsDbgRegAccessMon(VOID); VOID SyserSetIsDbgRegAccessMon(bool newValue); // // CSyser -> m_bUpdateReg // bool SyserGetbUpdateReg(VOID); VOID SyserSetbUpdateReg(bool newValue); // // CSyser -> InstallDebug() // bool SyserGetInstallDebug(VOID); // // CSyser -> DbgPrint() // VOID SyserDbgPrint(int x,int y,IN WCHAR*Format,...); // // CSyser -> m_bInitSuccess // bool SyserGetbInitSuccess(VOID); // // gpSyser != NULL // bool SyserbIsgpSyserValid(VOID); // // CSyser -> m_SysInfo -> m_SyserBase // ULONG_PTR SyserGetSysInfoSyserBase(VOID); // // CSyser -> m_SysInfo -> m_SyserHighBase // ULONG_PTR SyserGetSysInfoSyserHighBase(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif ================================================ FILE: Project/Syser/Source/SyserCmd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SyserCmd.h" #include "VideoDriver.h" #include "DbgProcess.h" #include "TimerInterrupt.h" #include "IOAPIC.h" #include "HardWareInterruptCtrl.h" #include "PIC_8259.h" #include "UHCIDevice.h" #include "LocalAPIC.h" #include "Dump.h" #include "cmd_cpuid.h" #include "cmd_cpu.h" #include "HwndCmd.h" #include "OSProcessThread.h" int get_do_command_string(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,char* szDoCmd,int MaxSize); int get_command_condition_string(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,char* szCondition,int MaxSize); const WCHAR cmd_faults_usage[]= { L"faults: Turn fault trapping on or off.\n" L"format: faults [ on | off ]\n" L"Example1: faults on\n" }; const WCHAR cmd_bpint_usage[]= { L"bpint: Set interrupt breakpoint\n" L"format: bpint interrupt_index\n" L"Example1: bpint 2e\n" }; const WCHAR cmd_bpr_usage[]= { L"bpr: Set breakpoint at the range of memory(only support memory address < 2G)\n" L"format: bpr process-type address length r|w|rw|x [if ...] [do ...]\n" L"Example1: bpr notepad eip 800 x\n" L"Example2: bpr 144 404000 3000 w\n" L"Example3: bpr 82023D78 7c004000 3000 w\n" }; const WCHAR cmd_handle_usage[]= { L"handle: Displays information about a handle or handles that one or all processes .\n" L"format: handle [handle | 0] [process-type]\n" L"Example1: handle 4\n" L"Example2: handle 4 idle\n" L"Example3: handle 0 idle\n" }; const WCHAR cmd_dt_usage[]= { L"dt: Displays information about a local variable, global variable or data type. This can display information about simple data types, as well as structures and unions.\n" L"format: dt Typename [address]\n" L"Example1: dt _ETHREAD\n" L"Example2: dt _EPROCESS 804d5788\n" }; const WCHAR cmd_apic_usage[]= { L"apic: Dump local apic information\n" L"Format: apic\n" }; const WCHAR cmd_ioapic_usage[]= { L"ioapic: Dump ioapic information\n" L"Format: ioapic\n" }; const WCHAR cmd_addr_usage[]= { L"addr: Change process address space\n" L"Format: addr [process_id][process_name][cr3]\n" L"Example1: addr 0004 (switch to process which PID is 0004)\n" L"Example2: addr calc (switch to process calc)\n" L"Example3: addr 36000 (switch to process which CR3 is 36000)\n" }; const WCHAR cmd_i3here_usage[]= { L"i3here : Direct INT3 to Syser\n" L"Format: i3here [ on | off | drv ]\n" L"Example1: i3here on\n" }; const WCHAR cmd_proc_usage[]= { L"proc: List processes in system\n" L"Format: proc\n" }; const WCHAR cmd_cpu_usage[]= { L"cpu: Display cpu information\n" L"Format: cpu [cpu_index] [ cr0 | cr3 | cr4 | efl ]\n" L"Example1: cpu 0\n" L"Example2: cpu 0 cr0 cr4\n" L"Example3: cpu efl\n" }; const WCHAR cmd_cpuid_usage[]= { L"cpuid: Display CPUID information\n" L"Format: cpuid\n" }; const WCHAR cmd_idt_usage[]= { L"idt: Display IDT information\n" L"Format: idt [idt_index]\n" L"Example1: idt 8\n" }; const WCHAR cmd_gdt_usage[]= { L"gdt: Display GDT information\n" L"Format: gdt [gdt_sel]\n" L"Example1: gdt 30\n" }; const WCHAR cmd_phys_usage[]= { L"phys: Convert physical address to virtual address\n" L"Format: phys [physical_address]\n" L"Example1: phys 1100000\n" }; const WCHAR cmd_page_usage[]= { L"page: Convert virtual address to physical address\n" L"Format: page [virtual_address]\n" L"Example1: page 401000\n" }; const WCHAR cmd_tss_usage[]= { L"tss: Display task state segment\n" L"Format: tss\n" }; const WCHAR cmd_dump_usage[]= { L"dump: dump Bin data to file\n" L"Format: dump address length dump_file_name\n" L"Examle: dump 401000 1000 C:\\dump.bin\n" }; const WCHAR cmd_makepe_usage[]= { L"makepe: dump PE module to file\n" L"Format: makepe module_name dump_file_name\n" L"Examle: makepe kernel32 C:\\kernel32.dll\n" }; /* %<0>0 ------- Black %<1>1 ------- White %<2>2 ------- Red %<3>3 ------- Light Red %<4>4 ------- Green %<5>5 ------- Light Green %<6>6 ------- Blue %<7>7 ------- Light Blue %<8>8 ------- Brown %<9>9 ------- Light Brown %A ------- Cyan %B ------- Light Cyan %C ------- Gray %D ------- Light Gray %E ------- Yellow %F ------- Light Yellow */ SYSER_CMD_ENTRY SysCmdTable[]= { {WSTR("apic"), WSTR("Dump local apic"), localapic_command, cmd_apic_usage}, {WSTR("ioapic"), WSTR("Dump io apic"), ioapic_command, cmd_ioapic_usage}, {WSTR("export"), WSTR("Display Module export function"), export_command}, {WSTR("addr"), WSTR("Display/change process context"), addr_command, cmd_addr_usage}, {WSTR("proc"), WSTR("Display process information"), proc_command, cmd_proc_usage}, {WSTR("ver"), WSTR("Show WinSyser Version"), ver_command}, {WSTR("i"), WSTR("Input data form I/O port"), ib_command}, {WSTR("ib"), WSTR("Input data form I/O port"), ib_command}, {WSTR("iw"), WSTR("Input data form I/O port"), ib_command}, {WSTR("id"), WSTR("Input data form I/O port"), ib_command}, {WSTR("o"), WSTR("Output data to I/O port"), ob_command}, {WSTR("ob"), WSTR("Output data to I/O port"), ob_command}, {WSTR("ow"), WSTR("Output data to I/O port"), ob_command}, {WSTR("od"), WSTR("Output data to I/O port"), ob_command}, {WSTR("makepe"), WSTR("dump PE Module to file"), makepe_command, cmd_makepe_usage}, {WSTR("dump"), WSTR("dump Bin data to file"), dump_command, cmd_dump_usage}, ///////////////////////////////////////////////////////////////////////////////////////////////////////////// //ϵͳ {WSTR("idt"), WSTR("Display interrupt descriptor table"), idt_command, cmd_idt_usage}, {WSTR("gdt"), WSTR("Display global descriptor table"), gdt_command, cmd_gdt_usage}, {WSTR("ldt"), WSTR("Display local descriptor table"), ldt_command}, {WSTR("cpuid"), WSTR("Show CPUID Information"), cpuid_command, cmd_cpuid_usage}, {WSTR("cpu"), WSTR("Show cpu register"), cpu_command, cmd_cpu_usage}, {WSTR("page"), WSTR("Display page table information"), page_command, cmd_page_usage}, //ϵͳ ///////////////////////////////////////////////////////////////////////////////////////////////////////////// {WSTR("bpint"), WSTR("Breakpoint on interrupt"), bpint_command}, {WSTR("pci"), WSTR("Dump PCI information"), pci_command}, {WSTR("ignore"), WSTR("return to default exception handler"), ignore_command}, {WSTR("faults"), WSTR("Turn fault trapping on or off."), faults_command, cmd_faults_usage}, {WSTR("phys"), WSTR("Display all virtual addresses for physical address"), phys_command, cmd_phys_usage}, {WSTR("tss"), WSTR("Display task state segment"), tss_command, cmd_tss_usage}, {WSTR("irq"), WSTR("Display hardware IRQ Information"), irq_command}, {WSTR("msr"), WSTR("Display Model Specific Register information"), msr_command}, {WSTR("peek"), WSTR("Read from physical address"), peekb_command}, {WSTR("peekb"), WSTR("Read from physical address"), peekb_command}, {WSTR("peekw"), WSTR("Read from physical address"), peekb_command}, {WSTR("peekd"), WSTR("Read from physical address"), peekb_command}, {WSTR("poke"), WSTR("Write to physical address"), pokeb_command}, {WSTR("pokeb"), WSTR("Write to physical address"), pokeb_command}, {WSTR("pokew"), WSTR("Write to physical address"), pokeb_command}, {WSTR("poked"), WSTR("Write to physical address"), pokeb_command}, {WSTR("ntcall"), WSTR("Display NTOSKRNL system calls"), ntcall_command}, {WSTR("ntcall2"), WSTR("Display WIN32K system calls"), ntcall2_command}, {WSTR("usb"), WSTR("Display USB device or transaction information"), usb_command}, {WSTR("objdir"), WSTR("Display info about an object directory"), objdir_command}, {WSTR("device"), WSTR("Display info about a device"), device_command}, {WSTR("driver"), WSTR("Display info about a driver"), driver_command}, {WSTR("kmutex"), WSTR("Display info about a Kernel Mutex"), kmutex_command}, {WSTR("kevent"), WSTR("Display info about a Kernel Event"), kevent_command}, {WSTR("ksem"), WSTR("Display info about a Kernel Semaphore"), ksem_command}, {WSTR("i1here"), WSTR("Direct INT1 to Syser"), i1here_command}, {WSTR("i3here"), WSTR("Direct INT3 to Syser"), i3here_command,cmd_i3here_usage}, {WSTR("genint"), WSTR("Generate an interrupt"), genint_command}, {WSTR("hboot"), WSTR("Forces the system to reboot"), hboot_command}, {WSTR("wf1"), WSTR("Display FPU Register Informat"), wf1_command}, {WSTR("center"), WSTR("center syser windows"), window_center_command}, {WSTR("vad"), WSTR("Displays details of the virtual address descriptor (VAD) for one or more virtual addresses"), vad_command}, {WSTR("pte"), WSTR("Displays the page table entry (PTE) and page directory entry (PDE) for the specified address"), pte_command}, {WSTR("DispInfo"), WSTR("Show Display Information"), dispinfo_command}, {WSTR("uhcil"), WSTR("Display UHCI QH or TD Pointed by Link"), uhci_link_command}, {WSTR("ohcied"), WSTR("Display OHCI ED Struct Info"), ohci_ed_command}, {WSTR("Plugin"), WSTR("Display Syser Plugin List"), plugin_command}, {WSTR("thread"), WSTR("Display thread information"), thread_command}, {WSTR("objtab"), WSTR("Display user object table"), objtab_command}, {WSTR("bpt"), WSTR("Set breakpoint at thread"), bpt_command}, {WSTR("bpp"), WSTR("Set breakpoint at process"), bpp_command}, //{WSTR("softice"), WSTR("Active SoftIce"), activesoftice_command}, //{WSTR("ikey"), WSTR("keyboard input to softice"), ikey_command}, //{WSTR("pagein"), WSTR("Load a page into physical memory"), pagein_command}, //{WSTR("beep"), WSTR("Beep"), beep_command}, //{WSTR("sysertest"), WSTR("sysertest"), sysertest}, {WSTR("hwnd"), WSTR("Display window handle information"), hwnd_command,cmd_hwnd_usage}, //{WSTR("test111"), WSTR("test write memory command"), test_command}, //{WSTR("testr"), WSTR("test read memory command"), test_command}, {WSTR("drm"), WSTR("Set Debug Register Access BreakPoint"), DebugRegisterMonitor_command}, {WSTR("syserheapinfo"), WSTR("Display syser heap information"), syserheapinfo_command}, {WSTR("shutdown"), WSTR("shutdown PC"), acpi_shutdown_command}, {WSTR("exitproc"), WSTR("Terminate Current Process"), TerminateProcess_command}, {WSTR("bmsg"), WSTR("Breakpoint on Window message"), bmsg_command, cmd_bmsg_usage}, {WSTR("do"), WSTR("Display data auto add offset value to start address"), d_softice_command}, {WSTR("uo"), WSTR("Unassemble instructions auto add offset value to start address"), u_softice_command}, {WSTR("so"), WSTR("Set 'do','uo' command offset value"), set_softice_baseaddress_command}, {WSTR("handle"), WSTR("Displays information about a handle or handles that one or all processes"), handle_command,cmd_handle_usage}, {WSTR("dt"), WSTR("Displays information about a handle or handles that one or all processes"), dt_command,cmd_handle_usage}, //{WSTR("bpr"), WSTR("Set breakpoint at the range of memory(only support memory address < 2G)"), bpr_command,cmd_bpr_usage}, {WSTR("lastbranch"), WSTR("Display last branch MSR register information"), lastbranch_command}, /////////////////////////////////////////////////////// {NULL,NULL,NULL} }; int beep_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD Counter=10 ,frequency=0; if(argc>1) if(CALCEXP(argv[1],&Counter)==FALSE) Counter = 10; if(argc>2) if(CALCEXP(argv[2],&frequency)==FALSE) frequency = 0; Beep(Counter,frequency); return 0; } int wf1_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwCR0; BYTE FpuReg[108]; WORD wFpuState,wFpuControl,wFpuTagWord; DWORD* pPointer,dwFpuTop,dwType; // __asm mov eax,cr0 // __asm mov dwCR0,eax dwCR0 = SyserGetCR0Reg(); if((dwCR0 & 4) || (dwCR0 & 0x10) == 0) return 1; // __asm clts // __asm fnstsw word ptr [wFpuState] // __asm fnstcw word ptr [wFpuControl] SyserCltr(); SyserFnstsw(&wFpuState); SyserFnstcw(&wFpuControl); memset(FpuReg,0,sizeof(FpuReg)); SyserFnsave(FpuReg); SyserFrstor(FpuReg); // __asm fnsave BYTE PTR [FpuReg] // __asm frstor BYTE PTR [FpuReg] wFpuTagWord = *(WORD *)(8+FpuReg); dwFpuTop = (wFpuState >> 11) & 7; OUTPUT(WSTR("FPU State = %04x FPU Control = %04x FPU Tag Word = %04x Top Index = %d\n"),wFpuState,wFpuControl,wFpuTagWord,dwFpuTop); switch(wFpuControl & 0x30) { case 0: OUTPUT(WSTR("24 Bit Precision\n")); break; case 0x10: OUTPUT(WSTR("Reserved\n")); break; case 0x20: OUTPUT(WSTR("53 Bit Precision\n")); break; case 0x30: OUTPUT(WSTR("64 Bit Precision\n")); break; default: break; } for(int i = 0,j=dwFpuTop; i < 8; i++,j++) { j = j % 8; dwType = (wFpuTagWord >> (j * 2))&3; pPointer = (DWORD *)(28+i*10+FpuReg); OUTPUT(WSTR("ST(%d) = %08x %08x Type = %d\n"),i,pPointer[1],pPointer[0],dwType); } return 0; } int ikey_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { bKeytoSoftice ^= 1; return 0; } int peekb_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD PhysicalAddress; DWORD* pPageTableItem,*dwPointer; WORD * wPointer; BYTE * bPointer; if(argc != 2|| CALCEXP(argv[1],&PhysicalAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(OwnerPageTabItemAddress == 0 && (dwPhysical_0_LinesAddress==0 || dwPhysical_0_LinesAddress== 0xffffffff)) { return 1; } pPageTableItem =*(DWORD **)&OwnerPageTabItemAddress; pPageTableItem[0] = ((PhysicalAddress & 0xfffff000) | 7); // __asm // { // push eax // mov eax,cr3 // mov cr3,eax // pop eax // } SyserFlushProcessInsCache(); switch(argv[0][4]) { case 0: case 'b': case 'B': bPointer = (BYTE*)(dwPhysical_0_LinesAddress|(PhysicalAddress&0xfff)); OUTPUT(WSTR("%02x\n"),bPointer[0]); break; case 'w': case 'W': wPointer = (WORD*)(dwPhysical_0_LinesAddress|(PhysicalAddress&0xfff)); OUTPUT(WSTR("%04x\n"),wPointer[0]); break; case 'd': case 'D': dwPointer = (DWORD*)(dwPhysical_0_LinesAddress|(PhysicalAddress&0xfff)); OUTPUT(WSTR("%08x\n"),dwPointer[0]); break; } return 0; } int pokeb_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD PhysicalAddress,dwValue; DWORD* pPageTableItem,*dwPointer; WORD * wPointer; BYTE * bPointer; if(argc != 3|| CALCEXP(argv[1],&PhysicalAddress)==FALSE || CALCEXP(argv[2],&dwValue)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(OwnerPageTabItemAddress == 0 && (dwPhysical_0_LinesAddress==0 || dwPhysical_0_LinesAddress== 0xffffffff)) { return 1; } pPageTableItem =*(DWORD **)&OwnerPageTabItemAddress; pPageTableItem[0] = ((PhysicalAddress & 0xfffff000) | 7); // __asm // { // push eax // mov eax,cr3 // mov cr3,eax // pop eax // } SyserFlushProcessInsCache(); switch(argv[0][4]) { case 0: case 'b': case 'B': bPointer = (BYTE*)(dwPhysical_0_LinesAddress|(PhysicalAddress&0xfff)); bPointer[0]=(BYTE)dwValue; OUTPUT(WSTR("%02x\n"),bPointer[0]); break; case 'w': case 'W': wPointer = (WORD*)(dwPhysical_0_LinesAddress|(PhysicalAddress&0xfff)); wPointer[0]=(WORD)dwValue; OUTPUT(WSTR("%04x\n"),wPointer[0]); break; case 'd': case 'D': dwPointer = (DWORD*)(dwPhysical_0_LinesAddress|(PhysicalAddress&0xfff)); dwPointer[0]=dwValue; OUTPUT(WSTR("%08x\n"),dwPointer[0]); break; } return 0; } int bpint_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD dwInterruptNumber; DWORD dwSegBase; WISP_CHAR CommandString[32]; if(argc != 2|| CALCEXP(argv[1],&dwInterruptNumber)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwInterruptNumber>0xff) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(gOldInterruptProcAddress[dwInterruptNumber])//Ǵж { TSPrintf(CommandString,WSTR("bpx %08x"),gOldInterruptProcAddress[dwInterruptNumber]); RUNCMD(CommandString); }else { X86_GATE_DECR* pGateDecr =(X86_GATE_DECR*) SyserGetIDTBase(); switch(pGateDecr[dwInterruptNumber].Type) { case SYS_SEG_GATE_DECR_TYPE_32CALL_GATE: case SYS_SEG_GATE_DECR_TYPE_32INT_GATE: case SYS_SEG_GATE_DECR_TYPE_32TRAP_GATE: dwSegBase=GetSegmentBaseAddress(pGateDecr[dwInterruptNumber].Selector); TSPrintf(CommandString,WSTR("bpx %08x"),dwSegBase+MAKE_DWORD(pGateDecr[dwInterruptNumber].OffsetHigh,pGateDecr[dwInterruptNumber].OffsetLow)); RUNCMD(CommandString); break; case SYS_SEG_GATE_DECR_TYPE_16TRAP_GATE: case SYS_SEG_GATE_DECR_TYPE_16INT_GATE: case SYS_SEG_GATE_DECR_TYPE_16CALL_GATE: break; case SYS_SEG_GATE_DECR_TYPE_TASK_GATE: break; default: break; } } return 0; } int ntcall2_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { /* ULPOS m_W32ServiceTableAddress; ULPOS* m_W32ServiceTable; ULONG m_Win32kImageBase; BYTE* m_W32ServiceArgv; DWORD m_W32ServiceNumbers; */ TNtcallNameIDMap::IT it; WCHAR NullStr[256]; OUTPUT(WSTR("KeServiceDescriptorTableShadow line address %%08x\n"),gpSyser->m_SysInfo.m_W32ServiceTableAddress); if(gpSyser->m_SysInfo.m_W32ServiceNumbers&&gpSyser->m_SysInfo.m_W32ServiceArgv&&gpSyser->m_SysInfo.m_W32ServiceTable) { for(DWORD i=0;im_SysInfo.m_W32ServiceNumbers;i++) { NullStr[0]=0; it = gpSyser->m_SysInfo.m_Win32kNtcallMap.Find(i|0x1000); if(it!=gpSyser->m_SysInfo.m_Win32kNtcallMap.End()) { TStrCpy(NullStr,(*it).m_pData); } OUTPUT(WSTR("%04X 0008:%08X %2d %s\n"),i|0x1000,gpSyser->m_SysInfo.m_W32ServiceTable[i],gpSyser->m_SysInfo.m_W32ServiceArgv[i],&NullStr[0]); } } return 0; } int ntcall_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { CHAR szBuffer[256]; WCHAR SymbolName[256],SymbolName2[256],szTitle[MAX_FN_LEN];; DWORD i,j,*ServiceTable,dwAddress; BYTE *ArgTable,ArgCount; PSERVICETABLE CurTable; CDbgModule*pDbgModule=NULL; bool bOrgSym=false; DWORD OrgAddress; bool bSame; TNtcallMap::IT BIter,EIter; DWORD dwCurrentIndex; bool bHaveId=false; DWORD dwMin,dwMax; //CALCEXP(argv[1],&dwInterruptNumber)==FALSE for(i = 0;gpSyser->m_SysInfo.m_gNtoskrnlName[i];i++) { pDbgModule = gpSyser->m_pSysDebugger->GetModule(gpSyser->m_SysInfo.m_gNtoskrnlName[i]); if(pDbgModule) break; } if(ReadDword(&KeServiceDescriptorTable->LowCall,&i)==false) return 1; if(ReadDword(&KeServiceDescriptorTable->HiCall,&j)==false) return 1; if(ReadDword(&KeServiceDescriptorTable->ServiceTable,(DWORD*)&ServiceTable)==false) return 1; if(ReadDword(&KeServiceDescriptorTable->ArgTable,(DWORD*)&ArgTable)==false) return 1; dwMin=i,dwMax=j; OUTPUT(WSTR("KeServiceDescriptorTable line address %%08x\n"),KeServiceDescriptorTable); if(argc>=2) { bHaveId=true; i=1; j=argc; } for(;i=dwMax) continue; } else { dwCurrentIndex=i; } if(ReadDword(&ServiceTable[dwCurrentIndex],&dwAddress)==false) continue; if(ReadByte(&ArgTable[dwCurrentIndex],&ArgCount)==false) continue; SymbolName[0]=0; SymbolName2[0]=0; BIter=pSyser->m_SysInfo.m_NtcallMap.Begin(); EIter=pSyser->m_SysInfo.m_NtcallMap.End(); bOrgSym=false; for(;BIter!=EIter;BIter++) { if(dwCurrentIndex == (DWORD)*BIter) { if(bOrgSym) { TStrCpy(SymbolName2,(char*)BIter.Key()); break; } else { TStrCpy(SymbolName,(char*)BIter.Key()); bOrgSym=true; } } } bSame = true; OrgAddress=0; if(gpSyser->m_SysInfo.m_OrgWindowsServiceTable) { if(dwCurrentIndex < (gpSyser->m_SysInfo.m_HiCount-gpSyser->m_SysInfo.m_LoCount)) if(dwAddress != gpSyser->m_SysInfo.m_OrgWindowsServiceTable[dwCurrentIndex]) { OrgAddress = gpSyser->m_SysInfo.m_OrgWindowsServiceTable[dwCurrentIndex]; bSame=false; } } else { if(pDbgModule) { if(dwAddress <= pDbgModule->m_ModuleBase || dwAddress > (pDbgModule->m_ModuleBase+pDbgModule->m_ModuleSize)) bSame=false; } } szTitle[0]=0; if(bSame) OUTPUT(WSTR("%04X 0008:%08X %2d "),dwCurrentIndex,dwAddress,ArgCount>>2); else { CDbgModuleMap::IT Iter = pSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.Find(dwAddress); if(Iter.IsExist()==false) Iter = pSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Find(dwAddress); if(Iter.IsExist()) { CDbgModule* pModule; pModule = &(*Iter); AnsiToUnicode(pModule->m_ModuleTitle,szTitle,MAX_FN_LEN); } if(OrgAddress) OUTPUT(WSTR("%04X %0008:%08X (0008:%08x)"),dwCurrentIndex,dwAddress,OrgAddress); else OUTPUT(WSTR("%04X %0008:%08X"),dwCurrentIndex,dwAddress); OUTPUT(WSTR(" %2d "),ArgCount>>2); } if(bOrgSym) { OUTPUT(WSTR("%s "),SymbolName); if(SymbolName2[0]!=0) OUTPUT(WSTR("%(%s)"),SymbolName2); } else { if(SymbolName2[0]!=0) OUTPUT(WSTR("%s"),SymbolName2); } OUTPUT(WSTR(" %%s"),szTitle); OUTPUT(WSTR("\n")); } return 0; } int irq_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD dwIndex = 0; DWORD dwCounter = 0xff; DWORD dwIRQVector; DWORD dwHardInterruptNum; DWORD i; DWORD dwInterruptInfoLow,dwInterruptInfoHigh; WCHAR *statevalue[]= { WSTR("Masked"), WSTR("Unmasked"), }; WCHAR *state; bool bOrg=false; WCHAR *DeliveryMode[]= { WSTR("Fixed "), WSTR("Low. Pri"), WSTR("SMI "), WSTR("Reserved"), WSTR("NMI "), WSTR("INIT "), WSTR("Reserved"), WSTR("ExtINT "), }; WCHAR *format=WSTR("%02x %02x %s %s %s %s %d\n"); for(i =1;i < (DWORD)argc;i++) { if(TStrICmp(argv[i],"/o")==0 || TStrICmp(argv[i],"-o")==0) { bOrg=true; for(int j = i;jInput error !\n")); return -1; } dwCounter = 1; } if(gbIsUseAPIC) { dwHardInterruptNum = GetIOAPICInterruptNum(); if(dwHardInterruptNum <= dwIndex) { OUTPUT(WSTR("Bad inti value\n")); return 1; } OUTPUT(WSTR("Inti Vector Delivery Status Trigger Dest Mode Destination\n")); for(i = 0; i < dwCounter;i++,dwIndex++) { if(dwIndex >= dwHardInterruptNum) break; if(bOrg) dwInterruptInfoLow = IOAPICInterruptVectorTab[i].dwVectorLow; else dwInterruptInfoLow = GetIOAPICData(0x10 + dwIndex * 2); if(dwInterruptInfoLow & 0x10000) continue; if(bOrg) dwInterruptInfoHigh = IOAPICInterruptVectorTab[i].dwVectorHigh; else dwInterruptInfoHigh = GetIOAPICData(0x11 + dwIndex * 2); OUTPUT(format, dwIndex, dwInterruptInfoLow & 0xff, DeliveryMode[((dwInterruptInfoLow>>8)&7)], (dwInterruptInfoLow & 0x1000)?WSTR("Pending"):WSTR("Idle "), (dwInterruptInfoLow & 0x8000)?WSTR("Level"):WSTR("Edge "), (dwInterruptInfoLow & 0x800)?WSTR("Logical "):WSTR("Physical"), dwInterruptInfoHigh >> 24); } if(i != 0) { dwInterruptInfoLow = GetIOAPICData(0); dwInterruptInfoHigh = GetIOAPICData(1); OUTPUT(WSTR("I/O unit id register: %08X\n"),dwInterruptInfoLow); OUTPUT(WSTR("I/O unit version register: %08x\n"),dwInterruptInfoHigh); } } else { OUTPUT(WSTR("IRQ Vector Status\n")); for(i = 0;i < dwCounter; i++,dwIndex++) { dwIRQVector = GetHardwareInterruptVectorNum(dwIndex); if(!dwIRQVector) break; if(dwIndex < 8) if((gdwPIC8259Shield_1 >> dwIndex) & 1) state =statevalue[0]; else state =statevalue[1]; else if((gdwPIC8259Shield_2 >> (dwIndex - 8)) & 1) state =statevalue[0]; else state =statevalue[1]; OUTPUT(WSTR("%02X %02x %s\n"),dwIndex,dwIRQVector,state); } if(i == 0) OUTPUT(WSTR("Bad IRQ parameter\n")); } return 0; } int tss_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { VADDR32 dwGDTBase = 0; DWORD dwSelector,dwGDTSize = 0; DWORD dwTSSBase = 0,dwTSSSize = 0; TASK32SEGMENT *pTask32Segment; TASK16SEGMENT *pTask16Segment; DWORD dwAttributes,i,j; if(argc == 2) { if(CALCEXP(argv[1],&dwSelector)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } dwTSSBase =GetTSSBase(&dwTSSSize,dwSelector); } if(dwTSSSize == 0) { dwSelector = SyserGetTSSSelector(); dwTSSBase =GetTSSBase(&dwTSSSize); } // __asm // { // lar eax,dwSelector // mov dwAttributes,eax // } dwAttributes = SyserLar(dwSelector); dwAttributes &= 0x9f00; dwTSSSize++; if(dwAttributes == 0x8900 || dwAttributes == 0x8b00) { pTask32Segment = *(TASK32SEGMENT **)&dwTSSBase; OUTPUT(WSTR("TR=%04X BASE=%08X LIMIT=%X\n"),dwSelector,dwTSSBase,dwTSSSize-1); OUTPUT(WSTR("LDT=%04X GS=%04X FS=%04X DS=%04X SS=%04x CS=%04X ES=%04X CR3=%08X\n"),pTask32Segment->LDT,pTask32Segment->GS,pTask32Segment->FS,pTask32Segment->DS,pTask32Segment->SS,pTask32Segment->CS,pTask32Segment->ES,pTask32Segment->CR3); OUTPUT(WSTR("EAX=%08X EBX=%08X ECX=%08X EDX=%08X EIP=%08X\n"),pTask32Segment->eax,pTask32Segment->ebp,pTask32Segment->ecx,pTask32Segment->edi,pTask32Segment->eip); OUTPUT(WSTR("ESI=%08X EDI=%08X EBP=%08X ESP=%08X EFL=%08X\n"),pTask32Segment->esi,pTask32Segment->edi,pTask32Segment->ebp,pTask32Segment->esp,pTask32Segment->efl); OUTPUT(WSTR("SS0=%04X:%08X SS1=%04X:%08X SS2=%04X:%08X\n"),pTask32Segment->SS0,pTask32Segment->ESP0,pTask32Segment->SS1,pTask32Segment->ESP1,pTask32Segment->SS2,pTask32Segment->ESP2); if(pTask32Segment->io_map_base>=dwTSSSize) OUTPUT(WSTR("I/O Map Base=%04x I/O Map Size=0\n"),pTask32Segment->io_map_base); else OUTPUT(WSTR("I/O Map Base=%04x I/O Map Size=%x\n"),pTask32Segment->io_map_base,dwTSSSize-pTask32Segment->io_map_base); if(dwTSSSize >= 0x68+0x20) { OUTPUT(WSTR("Interrupt redirection bit map. Base=0x%08x Size=%d\n"),dwTSSBase+0x68,0x20); OUTPUT(WSTR(" % 0 1 2 3 4 5 6 7 - 8 9 A B C D E F\n")); BYTE* pIrbm=(BYTE*)(dwTSSBase+0x68); BYTE MaskValue; BYTE Value; for(j = 0,i=0,MaskValue=1; j < 16;j++) { OUTPUT(WSTR("0x%08x %02x%02x %%X "),&pIrbm[j*2],pIrbm[j*2],pIrbm[j*2+1],j); Value=pIrbm[j*2]; for(i = 0,MaskValue=1;i< 8;i++,MaskValue<<=1) { if(Value&MaskValue) OUTPUT(WSTR("1 ")); else OUTPUT(WSTR("0 ")); } OUTPUT(WSTR("- ")); Value=pIrbm[j*2+1]; for(i = 0,MaskValue=1;i< 8;i++,MaskValue<<=1) { if(Value&MaskValue) OUTPUT(WSTR("1 ")); else OUTPUT(WSTR("0 ")); } OUTPUT(WSTR("%%X\n"),j); } OUTPUT(WSTR(" % 0 1 2 3 4 5 6 7 - 8 9 A B C D E F\n")); } } if(dwAttributes == 0x8100 || dwAttributes == 0x8300) { pTask16Segment = *(TASK16SEGMENT **)&dwTSSBase; OUTPUT(WSTR("TR=%04X BASE=%08X LIMIT=%X\n"),dwSelector,dwTSSBase,dwTSSSize-1); OUTPUT(WSTR("LDT=%04X DS=%04X SS=%04x CS=%04X ES=%04X\n"),pTask16Segment->LDT,pTask16Segment->DS,pTask16Segment->SS,pTask16Segment->CS,pTask16Segment->ES); OUTPUT(WSTR("AX=%04X BX=%04X CX=%04X DX=%04X IP=%04X\n"),pTask16Segment->ax,pTask16Segment->bp,pTask16Segment->cx,pTask16Segment->di,pTask16Segment->ip); OUTPUT(WSTR("SI=%04X DI=%04X BP=%04X SP=%04X FL=%04X\n"),pTask16Segment->si,pTask16Segment->di,pTask16Segment->bp,pTask16Segment->sp,pTask16Segment->fl); OUTPUT(WSTR("SS0=%04X:%04X SS1=%04X:%04X SS2=%04X:%04X\n"),pTask16Segment->SS0,pTask16Segment->SP0,pTask16Segment->SS1,pTask16Segment->SP1,pTask16Segment->SS2,pTask16Segment->SP2); } return 0; } int ldt_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser1) { return gdt_command(argc,argv,szCommandLine,pSyser1); } int idt_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { CDbgModule*pDbgModule; DWORD dwSelector,dwIDTSize,dwOffset,dwTmpValue,*ptr; VADDR32 dwIDTBase; bool bSame; WCHAR szBuffer[MAX_FN_LEN]; DWORD i = 0,j; WCHAR *Format=WSTR("%04x %s %04x:%08x DPL=%d %s"); X86_GATE_DECR *pGateDecr; WCHAR *DescType[16]={ WSTR("Reserved"), WSTR("TSS16 "), WSTR("LDT "), WSTR("TSS32 "), WSTR("CallG16 "), WSTR("TaskG "), WSTR("IntG16 "), WSTR("TrapG16 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("CallG32 "), WSTR("Reserved"), WSTR("IntG32 "), WSTR("TrapG32 "), }; dwIDTBase = SyserGetIDTBase(&dwIDTSize); j = (dwIDTSize + 1) / sizeof(X86_GATE_DECR); if(argc >= 2) { if(CALCEXP(argv[1],&dwSelector)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwSelector > 0xff) { dwIDTBase=dwSelector; if(ReadDword(*(void**)&dwIDTBase,&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),*(void**)&dwIDTBase); return 1; } argc =1; } else { argc = 1; i = dwSelector; j = i+1; } } pGateDecr = *(X86_GATE_DECR**)&dwIDTBase; ptr=(DWORD*)pGateDecr; if(argc == 1) { OUTPUT(WSTR("IDTBase=%08x Limit=%x\n"),dwIDTBase,dwIDTSize); OUTPUT(WSTR("Int Type Sel : Offset Attributes Module\n")); for(; i < j; i++) { bSame=true; szBuffer[0]=0; if(ReadDword((void*)&ptr[i*2],&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),(void*)&ptr[i*2]); return 1; } if(ReadDword((void*)&ptr[i*2+1],&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),(void*)&ptr[i*2+1]); return 1; } dwSelector = pGateDecr[i].Selector; dwOffset = pGateDecr[i].OffsetLow | (pGateDecr[i].OffsetHigh << 16); if(gOldInterruptProcAddress[i]) { DWORD SelfStart = *(DWORD*)&pSyser->m_DriverObject->DriverStart; if(dwOffset>SelfStart&&dwOffset<(SelfStart+pSyser->m_DriverObject->DriverSize)) dwOffset=gOldInterruptProcAddress[i]; } if(gpSyser->m_SysInfo.m_OrgWindowIDT) { if(gpSyser->m_SysInfo.m_OrgWindowIDT[i].EntryPoint!=dwOffset) { bSame=false; } } if(bSame) { OUTPUT(Format,i,DescType[pGateDecr[i].Type],dwSelector,dwOffset,pGateDecr[i].DPL,pGateDecr[i].P ? WSTR("P "):WSTR("NP ")); pDbgModule = gpSyser->m_pSysDebugger->GetModule(dwOffset); if(pDbgModule) { AnsiToUnicode(pDbgModule->m_ModuleTitle,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("%s"),szBuffer); } else OUTPUT(WSTR("")); } else { OUTPUT(WSTR("%04x %s %%04x:%08x"),i,DescType[pGateDecr[i].Type],dwSelector,dwOffset); OUTPUT(WSTR("(%04x:%08x) "),gpSyser->m_SysInfo.m_OrgWindowIDT[i].Selector,gpSyser->m_SysInfo.m_OrgWindowIDT[i].EntryPoint); OUTPUT(WSTR("DPL=%d %s"),pGateDecr[i].DPL,pGateDecr[i].P ? WSTR("P "):WSTR("NP ")); pDbgModule = gpSyser->m_pSysDebugger->GetModule(dwOffset); if(pDbgModule) { AnsiToUnicode(pDbgModule->m_ModuleTitle,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("%%s"),szBuffer); } else OUTPUT(WSTR("%")); pDbgModule = gpSyser->m_pSysDebugger->GetModule(gpSyser->m_SysInfo.m_OrgWindowIDT[i].EntryPoint); if(pDbgModule) { AnsiToUnicode(pDbgModule->m_ModuleTitle,szBuffer,MAX_FN_LEN); OUTPUT(WSTR("(%s)"),szBuffer); } else OUTPUT(WSTR("()")); } OUTPUT(WSTR("\n")); } } return 0; } int gdt_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD dwSelector=0,dwGDTSize,dwShowSelector; VADDR32 dwGDTBase = 0; DWORD dwSegmentBase,dwSegmentLimit,dwTmpValue,*Ptr; DWORD i = 0,j; bool bLDTCommand = false; X86_SEGMENT_DESCRIPTOR *pSegDesc; int nOrgArgc; WCHAR *Format=WSTR("%04x %s %08x %08x %d %s %s %s %s\n"); X86_GATE_DECR *GateDecr; WCHAR *DescType[16]= { WSTR("Reserved"), WSTR("TSS16 "), WSTR("LDT "), WSTR("TSS32 "), WSTR("CallG16 "), WSTR("TaskG "), WSTR("IntG16 "), WSTR("TrapG16 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("Reserved"), WSTR("TSS32 "), WSTR("CallG32 "), WSTR("Reserved"), WSTR("IntG32 "), WSTR("TrapG32 "), }; nOrgArgc = argc; if(argc == 2) { if(CALCEXP(argv[1],&dwSelector)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwSelector <= 0xffff) { if(dwSelector & 4) bLDTCommand = true; } } if((TStrICmp(argv[0],WSTR("LDT")) == 0) && (argc == 1)) { bLDTCommand = true; } if(bLDTCommand) { dwGDTBase = GetLDTBase(&dwGDTSize); if(dwGDTBase == 0) { OUTPUT(WSTR("No LDT\n")); return 1; } }else dwGDTBase = SyserGetGDTBase(&dwGDTSize); j = (dwGDTSize + 1)/sizeof(X86_SEGMENT_DESCRIPTOR); if(argc == 2) { if(dwSelector > 0xffff) { dwGDTBase=dwSelector; if(ReadDword((void*)dwGDTBase,&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),dwGDTBase); return 1; } argc =1; }else { argc = 1; i = dwSelector>>3; j = i+1; } } if((TStrICmp(argv[0],WSTR("ldtlist")) == 0) && argc==9999) { CALCEXP(argv[1],&dwGDTBase); if(ReadDword((void*)dwGDTBase,&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),dwGDTBase); return 1; } CALCEXP(argv[2],&dwGDTSize); i = 0; j = (dwGDTSize + 1)/sizeof(X86_SEGMENT_DESCRIPTOR); argc = 1; nOrgArgc = 1; bLDTCommand = true; } if(argc == 1) { if(nOrgArgc == 1) { if(bLDTCommand) OUTPUT(WSTR("LDTBase=%08x Limit=%x\n"),dwGDTBase,dwGDTSize); else OUTPUT(WSTR("GDTBase=%08x Limit=%x\n"),dwGDTBase,dwGDTSize); } OUTPUT(WSTR("Sel. Type Base Limit DPL Attributes\n")); pSegDesc = *(X86_SEGMENT_DESCRIPTOR **)&dwGDTBase; Ptr=(DWORD*)pSegDesc; DWORD UpperLimit=0; for(; i < j; i++) { if(ReadDword((void*)&Ptr[i*2],&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),&Ptr[i*2]); return 1; } if(ReadDword((void*)&Ptr[i*2+1],&dwTmpValue)==false) { OUTPUT(WSTR("Error : %<3>Read virtual address %08x\n"),&Ptr[i*2+1]); return 1; } dwSegmentBase = (pSegDesc[i].base_H1<<24) |(pSegDesc[i].base_H0 << 16)|(pSegDesc[i].base_L1 << 8)|pSegDesc[i].base_L0; dwSegmentLimit = (pSegDesc[i].limit_H << 16) | (pSegDesc[i].limit_L1<<8)|pSegDesc[i].limit_L0; if(!pSegDesc[i].P) { OUTPUT(Format,bLDTCommand ? (i * 8) | 4:(i*8),WSTR("Reserved"),dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("NP"),WSTR(" "),WSTR(" "),WSTR(" ")); continue; } dwShowSelector = (i*8)|pSegDesc[i].DPL; if(bLDTCommand) dwShowSelector |= 4; if(pSegDesc[i].DT)//洢 { if(pSegDesc[i].G) dwSegmentLimit = (dwSegmentLimit << 12) | 0xfff; if(pSegDesc[i].TYPE & 8)// { OUTPUT(Format,dwShowSelector,pSegDesc[i].D ? WSTR("Code32 "):WSTR("Code16 "),dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),(pSegDesc[i].TYPE & 2) ? WSTR("RE") : WSTR("EO"),(pSegDesc[i].TYPE & 4) ?WSTR("C "):WSTR(" "),(pSegDesc[i].TYPE & 1) ? WSTR("A") : WSTR(" ")); } else { if(pSegDesc[i].TYPE & 4) { UpperLimit=dwSegmentLimit; if(pSegDesc[i].D) dwSegmentLimit=0xffffffff; else dwSegmentLimit=0x0000ffff; UpperLimit+=1; OUTPUT(WSTR("%04x %s %08x %08x-%08x %d %s %s %s %s\n"),dwShowSelector,pSegDesc[i].D ? WSTR("Data32 "):WSTR("Data16 "),dwSegmentBase,UpperLimit,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),(pSegDesc[i].TYPE & 2) ? WSTR("RW") : WSTR("RO"),(pSegDesc[i].TYPE & 4) ? WSTR("ED"):WSTR(" "),(pSegDesc[i].TYPE & 1) ? WSTR("A") : WSTR(" ")); } else { OUTPUT(Format,dwShowSelector,pSegDesc[i].D ? WSTR("Data32 "):WSTR("Data16 "),dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),(pSegDesc[i].TYPE & 2) ? WSTR("RW") : WSTR("RO"),(pSegDesc[i].TYPE & 4) ? WSTR("ED"):WSTR(" "),(pSegDesc[i].TYPE & 1) ? WSTR("A") : WSTR(" ")); } } continue; } //ϵͳ if( pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_16TSS_AVAIL || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_LDT || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_16TSS_BUSY || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_32TSS_AVAIL || pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_32TSS_BUSY) { if(pSegDesc[i].TYPE == SYS_SEG_GATE_DECR_TYPE_LDT) { if((nOrgArgc == 2) && (TStrICmp(argv[0],WSTR("LDT")) == 0) && (dwSelector >> 3) == i) { WCHAR NewCommandArgc[10]; WCHAR NewCommandArgc1[10]; TSPrintf(NewCommandArgc,WSTR("%08x"),dwSegmentBase); TSPrintf(NewCommandArgc1,WSTR("%08x"),dwSegmentLimit); WCHAR* newargv[]={WSTR("ldtlist"),NewCommandArgc,NewCommandArgc1,NULL}; return gdt_command(9999,newargv,szCommandLine,pSyser); } else OUTPUT(Format,dwShowSelector,DescType[pSegDesc[i].TYPE],dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),WSTR(" "),WSTR(" "),WSTR(" ")); } else OUTPUT(Format,dwShowSelector,DescType[pSegDesc[i].TYPE],dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P "),(pSegDesc[i].TYPE & 2) ? WSTR("B "):WSTR(" "),WSTR(" "),WSTR(" ")); continue; } GateDecr = (X86_GATE_DECR* )(&pSegDesc[i]); dwSegmentLimit = GateDecr->OffsetLow | (GateDecr->OffsetHigh << 16); dwSegmentBase = GateDecr->Selector; if(GateDecr->Type == SYS_SEG_GATE_DECR_TYPE_TASK_GATE) { continue; } if((GateDecr->Type == SYS_SEG_GATE_DECR_TYPE_32CALL_GATE) && (GateDecr->Type == SYS_SEG_GATE_DECR_TYPE_16CALL_GATE)) OUTPUT(WSTR("%04x %s %04x:%08x %d %s\n"),dwShowSelector,DescType[pSegDesc[i].TYPE],dwSegmentBase,dwSegmentLimit,pSegDesc[i].DPL,WSTR("P ")); } return 0; } return 0; } int phys_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { int Count; ULPOS VAddr[0x100],Address; if(argc!=2 || CALCEXP(argv[1],&Address)==false) { OUTPUT(WSTR("Usage : phys LinesAddress\n")); return 1; } Count = MapToVAddr(Address,VAddr,sizeof(VAddr)/sizeof(ULPOS)); for(int n=0;n=0x80000001) { SyserGetCPUID(&ExInfo,0x80000001); if(((ExInfo.dwEDX & 0x20000000)>>29)==1 || ((ExInfo.dwEDX & 0x100000)>>20)==1) { bNXE=true; } if(bNXE) { if(SyserReadMSR(0xc0000080,&dwHiMiscFeature,&dwLoMiscFeature)) { if(((dwLoMiscFeature&0x800)>>11)==0) bNXE=false; } } } bPAE = (GetCR4Register() & CR4_PAE_BIT_MASK) ? true : false; pCurrentPDEBegin = (X86_PDE *)PAGE_DIRECTORY_LINES_ADDRESS; if(argc==1) { OUTPUT(WSTR("Page Directory Physical %08X\n"),Reg.CR[3]); if(bPAE) { OUTPUT(WSTR("Physical Linear Address Range Attributes\n")); pCurrent36PDEBegin=(PX86_36_PDE)PAGE_DIRECTORY_36_LINES_ADDRESS; pPageTable36Begin=(PX86_36_PTE)PAGE_TABLE_36_LINES_ADDRESS; for(i = 0; i < 2048; i++) { if(SafeMemCopy((BYTE*)&PDE36Value,(BYTE*)&pCurrent36PDEBegin[i],sizeof(X86_36_PDE))==0) continue; if(PDE36Value.u.P==0) continue; PDE36Value2M.PDE36Value2M = PDE36Value.PDE36Value; if(PDE36Value2M.u.Page2M) { OUTPUT(FormatPAE, PDE36Value2M.PDE36Value2M&(~0xfff), i*0x200000,i*0x200000+0x1FFFFF, PDE36Value2M.u.P?' ':'N', PDE36Value2M.u.RW?'W':' ', PDE36Value2M.u.US?'U':'S', PDE36Value2M.u.A?'A':' ', PDE36Value2M.u.D?'D':' ', PDE36Value2M.u.G?'G':' ', PDE36Value2M.u.PCD?WSTR("CD"):WSTR(" "), PDE36Value2M.u.PWT?WSTR("WT"):WSTR(" "), WSTR("2M"), (bNXE && PDE36Value2M.u.NXE)?WSTR("NE"):WSTR(" ") ); } else { OUTPUT(FormatPAE, PDE36Value.PDE36Value&(~0xfff), i*0x200000,i*0x200000+0x1FFFFF, PDE36Value.u.P?' ':'N', PDE36Value.u.RW?'W':' ', PDE36Value.u.US?'U':'S', ' ', ' ', ' ', PDE36Value.u.PCD?WSTR("CD"):WSTR(" "), PDE36Value.u.PWT?WSTR("WT"):WSTR(" "), WSTR(""), (bNXE && PDE36Value.u.NXE)?WSTR("NE"):WSTR(" ") ); } } } else { OUTPUT(WSTR("Physical Attributes Linear Address Range\n")); for(j = 0,i = 0; i < 1024; i++) { dwPDEValue = (DWORD *)&pCurrentPDEBegin[i]; if(ReadDword(&pCurrentPDEBegin[i],&dwTmpVar)==false) continue; if(!pCurrentPDEBegin[i].u.Present) continue; if(pCurrentPDEBegin[i].u.Page4M) { pCurrentPDE4M = (X86_PDE_4M *)&pCurrentPDEBegin[i]; OUTPUT(Format, *dwPDEValue &0xfffff000, WSTR(" "), pCurrentPDE4M->GlobePage ? WSTR("G"):WSTR(" "), pCurrentPDE4M->Dirty ? WSTR("D"):WSTR(" "), pCurrentPDE4M->Accessed ? WSTR("A"):WSTR(" "), pCurrentPDE4M->UserPage ? WSTR("U"):WSTR("S"), pCurrentPDE4M->ReadWrite ? WSTR("RW"):WSTR("R "), WSTR("4M"), i*0x400000,i*0x400000+0x3FFFFF); } else { OUTPUT(Format, *dwPDEValue &0xfffff000, WSTR(" "), WSTR(" "), WSTR(" "), pCurrentPDEBegin[i].u.Accessed ? WSTR("A"):WSTR(" "), pCurrentPDEBegin[i].u.UserPage ? WSTR("U"):WSTR("S"), pCurrentPDEBegin[i].u.ReadWrite ? WSTR("RW"):WSTR("R "), WSTR(" "), i*0x400000,i*0x400000+0x3fffff); } } } return 0; } if(argc == 2 ) { if(CALCEXP(argv[1],&dwVirtualAddress) == false) return 1; if(bPAE) { dwPageDirectoryIndex = dwVirtualAddress; dwPageDirectoryIndex >>= 21; pCurrent36PDEBegin=(PX86_36_PDE)PAGE_DIRECTORY_36_LINES_ADDRESS; pPageTable36Begin=(PX86_36_PTE)PAGE_TABLE_36_LINES_ADDRESS; if(SafeMemCopy((BYTE*)&PDE36Value,(BYTE*)&pCurrent36PDEBegin[dwPageDirectoryIndex],sizeof(X86_36_PDE))==0) return 1; if(PDE36Value.u.P==0) return 1; PDE36Value2M.PDE36Value2M = PDE36Value.PDE36Value; if(PDE36Value2M.u.Page2M) { OUTPUT(WSTR("Linear Physical Attributes\n")); OUTPUT(Format1PAE, dwVirtualAddress, (PDE36Value2M.PDE36Value2M&0x0000000fffe00000) | (dwVirtualAddress&0x1fffff), PDE36Value2M.u.P?' ':'N', PDE36Value2M.u.RW?'W':' ', PDE36Value2M.u.US?'U':'S', PDE36Value2M.u.A?'A':' ', PDE36Value2M.u.D?'D':' ', PDE36Value2M.u.G?'G':' ', PDE36Value2M.u.PCD?WSTR("CD"):WSTR(" "), PDE36Value2M.u.PWT?WSTR("WT"):WSTR(" "), WSTR("2M"), (bNXE && PDE36Value2M.u.NXE)?WSTR("NE"):WSTR(" ") ); } else { dwPageDirectoryIndex<<=9; dwPageTableIndex = dwVirtualAddress; dwPageTableIndex = dwVirtualAddress >> 12; dwPageTableIndex &= 0x1ff; if(SafeMemCopy((BYTE*)&PTE36Value,(BYTE*)&pPageTable36Begin[dwPageDirectoryIndex+dwPageTableIndex],sizeof(X86_36_PTE))==0) return 1; if(PTE36Value.u.P==0) return 1; OUTPUT(WSTR("Linear Physical Attributes\n")); OUTPUT(Format1PAE, dwVirtualAddress, (PTE36Value.PTE36Value&0x0000000fffff000) | (dwVirtualAddress&0xfff), PTE36Value.u.P?' ':'N', PTE36Value.u.RW?'W':' ', PTE36Value.u.US?'U':'S', PTE36Value.u.A?'A':' ', PTE36Value.u.D?'D':' ', PTE36Value.u.G?'G':' ', PTE36Value.u.PCD?WSTR("CD"):WSTR(" "), PTE36Value.u.PWT?WSTR("WT"):WSTR(" "), WSTR(""), (bNXE && (PDE36Value.u.NXE || PTE36Value.u.NXE))?WSTR("NE"):WSTR(" ") ); } } else { dwPageDirectoryIndex = dwVirtualAddress; dwPageDirectoryIndex >>= 22; if(ReadDword(&pCurrentPDEBegin[dwPageDirectoryIndex],&dwTmpVar)==false) return 1; if(!pCurrentPDEBegin[dwPageDirectoryIndex].u.Present) return 1; OUTPUT(WSTR("Linear Physical Attributes\n")); if(pCurrentPDEBegin[dwPageDirectoryIndex].u.Page4M) { pCurrentPDE4M = (X86_PDE_4M *)&pCurrentPDEBegin[dwPageDirectoryIndex]; dwPDEValue = (DWORD *)&pCurrentPDEBegin[dwPageDirectoryIndex]; OUTPUT(Format1, dwVirtualAddress, (dwTmpVar & 0xffc00000) | (dwVirtualAddress & 0x3fffff), WSTR(" "), pCurrentPDE4M->GlobePage ? WSTR("G"):WSTR(" "), pCurrentPDE4M->Dirty ? WSTR("D"):WSTR(" "), pCurrentPDE4M->Accessed ? WSTR("A"):WSTR(" "), pCurrentPDE4M->UserPage ? WSTR("U"):WSTR("S"), pCurrentPDE4M->ReadWrite ? WSTR("RW"):WSTR("R "), WSTR("4M\n")); return 1; } dwPageDirectoryIndex <<= 12; dwPageTableBegin = (X86_PTE*)(PAGE_TABLE_LINES_ADDRESS + dwPageDirectoryIndex); dwPageTableIndex = dwVirtualAddress; dwPageTableIndex = dwVirtualAddress >> 12; dwPageTableIndex &= 0x3ff; if(ReadDword(&dwPageTableBegin[dwPageTableIndex],&dwTmpVar)==false) return 1; if(!dwPageTableBegin[dwPageTableIndex].Present) return 1; OUTPUT(Format1, dwVirtualAddress, (dwTmpVar & 0xfffff000) | (dwVirtualAddress & 0xfff), WSTR(" "), dwPageTableBegin[dwPageTableIndex].GlobePage ? WSTR("G"):WSTR(" "), dwPageTableBegin[dwPageTableIndex].Dirty ? WSTR("D"):WSTR(" "), dwPageTableBegin[dwPageTableIndex].Accessed ? WSTR("A"):WSTR(" "), dwPageTableBegin[dwPageTableIndex].UserPage ? WSTR("U"):WSTR("S"), dwPageTableBegin[dwPageTableIndex].ReadWrite ? WSTR("RW"):WSTR("R "), WSTR(" \n")); } } return 0; } int export_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { if(argc!=2) { OUTPUT(WSTR("Usage : export module_name\n")); return 0; } CDbgModule* pModule = gpSyser->m_pDebugger->GetModule(argv[1]); if(pModule==NULL) { pModule = gpSyser->m_pSysDebugger->GetModule(argv[1]); if(pModule==NULL) { OUTPUT(WSTR("Error : Can't find this module %s\n"),argv[1]); return 1; } } WCHAR szBuffer[256]; CPEFile* pPEFile = new CPEFile; pPEFile->SetRMProc(CImageFile::StaticReadRealMemory); pPEFile->m_ImageBase = pModule->m_ModuleBase; pPEFile->m_ImageSize = pModule->m_ModuleSize; pPEFile->m_FileObjType = FILE_OBJ_TYPE_OS_MEMORY_IMAGE; if(pPEFile->Open(NULL)) { OUTPUT(WSTR("Address Function Name")); for(int n=0;nm_ExportFuncCount;n++) { AnsiToUnicode(pPEFile->m_ExportFunc[n].FuncName,szBuffer,256); OUTPUT(WSTR("%08X %s\n"),pPEFile->m_ExportFunc[n].Address,szBuffer); } pPEFile->Close(); } delete pPEFile; return 0; } int addr_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { CDbgProcess*pDbgProcess; WCHAR szBuffer[MAX_FN_LEN]; DWORD PID; if(argc==1) return proc_command(argc,argv,szCommandLine,pSyser); TStrCpyLimit(szBuffer,&szCommandLine[argv[1]-argv[0]],MAX_FN_LEN); pDbgProcess=pSyser->m_SysInfo.GetProcess(szBuffer); if(pDbgProcess) { pSyser->MapToProcess(pDbgProcess); gpSyser->m_SyserUI.m_SyserDI.UpdateContext(); return 0; } TStrCat(szBuffer,".exe"); pDbgProcess=pSyser->m_SysInfo.GetProcess(szBuffer); if(pDbgProcess) { pSyser->MapToProcess(pDbgProcess); gpSyser->m_SyserUI.m_SyserDI.UpdateContext(); return 0; } if(CALCEXP(argv[1],&PID)==FALSE) { OUTPUT(WSTR("Error : Can't find process!\n")); return 1; } pDbgProcess=pSyser->m_SysInfo.GetProcess(PID); if(pDbgProcess) { pSyser->MapToProcess(pDbgProcess); gpSyser->m_SyserUI.m_SyserDI.UpdateContext(); return 0; } OUTPUT(WSTR("Error : Can't find process!\n")); return 1; } int proc_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine,CSyser*pSyser) { if(argc==1) { int Count; Count = 0; OUTPUT(WSTR("Process ID CR3 EPROCESS Process Name\n")); for(CProcMap::IT Iter=pSyser->m_SysInfo.m_ProcMap.Begin();Iter!=pSyser->m_SysInfo.m_ProcMap.End();Iter++) { if(&(*Iter)==pSyser->m_pDebugger) OUTPUT(WSTR("%PID = 0x%04X CR3 = 0x%08X %08X [%s]\n"),Iter->m_PID,Iter->m_CR3,Iter->m_PEProcess,(PWSTR)Iter->m_ProcNameW); else OUTPUT(WSTR("PID = 0x%04X CR3 = 0x%08X %08X %[%s]\n"),Iter->m_PID,Iter->m_CR3,Iter->m_PEProcess,(PWSTR)Iter->m_ProcNameW); Count++; } OUTPUT(WSTR("%d Process(s)\n"),Count); return 0; } argc--; int i; DWORD dwValue; SYSER_PROCESS Process; SYSER_THREAD Thread; SYSER_VALUE_TYPE ValueType; bool bOK; bool bTitle=false; WCHAR Name[20]; for(i=0;i[%s]\n"),Process.UniqueProcessId,Process.PDT,Process.OSProcess,Name); } return 0; } int ver_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { WISP_CHAR szBuffer[256]; TStrCpy(szBuffer,"Syser version : "); TStrCat(szBuffer,VER_PRODUCTVERSION_STR); TStrCat(szBuffer,"\nBuild Time : "); TStrCat(szBuffer,__DATE__); TStrCat(szBuffer," "); TStrCat(szBuffer,__TIME__); TStrCat(szBuffer,"\n"); OUTPUT(szBuffer); return 0; } int set_softice_baseaddress_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress; if(argc!=2 || CALCEXP(argv[1],&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } dwSofticeDriverBase = dwAddress; OUTPUT(WSTR("Offset Value = %08x\n"), dwSofticeDriverBase); return 0; } int d_softice_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress; if(argc!=2 || CALCEXP(argv[1],&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwSofticeDriverBase) { //dwAddress -= 0xf83c7000; dwAddress += dwSofticeDriverBase; } pSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.SetActiveAddress(dwAddress); OUTPUT(WSTR("Offset Value = %08x\n"),dwSofticeDriverBase); return 0; } int u_softice_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress; if(argc!=2 || CALCEXP(argv[1],&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwSofticeDriverBase) { //dwAddress -= 0xf83c7000; dwAddress += dwSofticeDriverBase; } pSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.SetActiveAddress(dwAddress); OUTPUT(WSTR("Offset Value = %08x\n"),dwSofticeDriverBase); return 0; } int activesoftice_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { if(dwSofticeDriverBase) { bGoToSoftice=true; pSyser->m_bSaveReg=false; pSyser->Exit(TRUE); //pSofticeActivePointer(); } else { OUTPUT(WSTR("SoftICE is not active.\n")); } return 0; } int ib_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress; if(argc!=2 || CALCEXP(argv[1],&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwAddress > 0xffff) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return 1; } switch(argv[0][1]) { case 0: case 'b': case 'B': if(!gbIsUseAPIC) { if(dwAddress == 0x21) { OUTPUT(WSTR("%02x\n"),gdwPIC8259Shield_1); return 0; } if(dwAddress == 0xa1) { OUTPUT(WSTR("%02x\n"),gdwPIC8259Shield_2); return 0; } } OUTPUT(WSTR("%02x\n"), SyserReadPortByte(dwAddress)); break; case 'w': case 'W': OUTPUT(WSTR("%04x\n"), SyserReadPortWord(dwAddress)); break; case 'd': case 'D': OUTPUT(WSTR("%08x\n"), SyserReadPortDword(dwAddress)); break; default: OUTPUT(WSTR("Error : %<3>Input error !\n")); return 1; } return 0; } int ob_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress,dwValue; if(argc!=3 || CALCEXP(argv[1],&dwAddress)==FALSE ||CALCEXP(argv[2],&dwValue)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwAddress > 0xffff) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } switch(argv[0][1]) { case 0: case 'b': case 'B': if(dwValue >= 0x100) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(!gbIsUseAPIC) { if(dwAddress == 0x21) { gdwPIC8259Shield_1 = (BYTE)dwValue; return 0; } if(dwAddress == 0xa1) { gdwPIC8259Shield_2 = (BYTE)dwValue; return 0; } } SyserWritePortByte(dwAddress,(BYTE)dwValue); break; case 'W': case 'w': if(dwValue>0x10000) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } SyserWritePortWord(dwAddress,(WORD)dwValue); break; case 'd': case 'D': SyserWritePortDword(dwAddress,dwValue); break; default: OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } return 0; } int setkeyboardLED_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress; if(argc == 1) { if(bKeyScrollLockStatInitOK) OUTPUT(WSTR("Scroll Lock %02x\n"),bKeyScrollLockStat); if(bKeyNumLockStatInitOK) OUTPUT(WSTR("Num Lock %02x\n"),bKeyNumLockStat); if(bKeyCapsLockStatInitOK) OUTPUT(WSTR("Caps Lock %02x\n"),bKeyCapsLockStat); return 1; } if(argc!=2 || CALCEXP(argv[1],&dwAddress)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } SetKeyboardLEDState(dwAddress & 1,dwAddress & 2,dwAddress & 4); return 0; } int DebugRegisterMonitor_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD wStat = 0; if(argc > 2) { local_exit: OUTPUT(WSTR("Error : %<3>Input error !\n")); OUTPUT(WSTR("example : drm \"Show Debug Register Access State\"\n")); OUTPUT(WSTR("example : drm on \"Set Debug Register Access BreakPoint\"\n")); OUTPUT(WSTR("example : drm off \"Clean Debug Register Access BreakPoint\"\n")); return -1; } if(argc == 1) { if(pSyser->m_bDbgRegAccessMon) { OUTPUT(WSTR("drm on\n")); } else OUTPUT(WSTR("drm off\n")); return 0; } if((argv[1][0] & 0xffdf) != 'O' || (argv[1][2] && argv[1][3])) { goto local_exit; } wStat = *(DWORD *)(&argv[1][1]); wStat &= 0xffdfffdf; if(wStat == 'N') { pSyser->m_bDbgRegAccessMon = TRUE; Reg.DR[7] |= 0x2000; pSyser->m_bUpdateReg=TRUE; OUTPUT(WSTR("drm on\n")); return 0; } if((wStat == 0x460046) && (argv[1][3] == 0)) { pSyser->m_bDbgRegAccessMon = FALSE; Reg.DR[7] &= 0xffffdfff; pSyser->m_bUpdateReg=TRUE; OUTPUT(WSTR("drm off\n")); } return 0; } int pci_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { PCI_CONFIG_COMMON PCIConfigREG; DWORD dwOldValue; DWORD dwSize=0; pci_dev dev; int j; for(j =0;j<0x100;j++) { dev.bus = j; for(int i = 0; i < 0x100; i++) { dev.devfn = i; gpSyser->m_PCSystem.ReadPCICFGWord(j,i,PCI_VENDOR_ID,&PCIConfigREG.VendorID); if(PCIConfigREG.VendorID != 0xffff && PCIConfigREG.VendorID != 0) { OUTPUT(WSTR("Bus %02X Device %02X Function %02X\n"),j,i>>3,i&7); OUTPUT(WSTR("Vendor : %04X\n"),PCIConfigREG.VendorID); gpSyser->m_PCSystem.ReadPCICFGWord(j,i,PCI_DEVICE_ID,&PCIConfigREG.DeviceID); OUTPUT(WSTR("Device : %04X\n"),PCIConfigREG.DeviceID); gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_REVISION_ID,(DWORD *)&PCIConfigREG.RevisionID); OUTPUT(WSTR("Revision : %02X\n"),PCIConfigREG.RevisionID); OUTPUT(WSTR("Device class : %02X\n"),PCIConfigREG.BaseClass); OUTPUT(WSTR("Device subclass : %02X\n"),PCIConfigREG.SubClass); OUTPUT(WSTR("Device ProgIf : %02X\n"),PCIConfigREG.ProgIf); gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_0,&dwOldValue); //gpSyser->m_PCSystem.WritePCICFGDWord(j,i,PCI_BASE_ADDRESS_0,0xffffffff); //gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_0,&dwSize); //gpSyser->m_PCSystem.WritePCICFGDWord(j,i,PCI_BASE_ADDRESS_0,dwOldValue); OUTPUT(WSTR("Memory Base : %08X Memory Limit: %08X\n"),dwOldValue,dwSize); gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_1,&dwOldValue); OUTPUT(WSTR("Memory Base : %08X Memory Limit: %08X\n"),dwOldValue,dwSize); gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_2,&dwOldValue); OUTPUT(WSTR("Memory Base : %08X Memory Limit: %08X\n"),dwOldValue,dwSize); gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_3,&dwOldValue); OUTPUT(WSTR("Memory Base : %08X Memory Limit: %08X\n"),dwOldValue,dwSize); gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_BASE_ADDRESS_4,&dwOldValue); OUTPUT(WSTR("Memory Base : %08X Memory Limit: %08X\n"),dwOldValue,dwSize); OUTPUT(WSTR("---------------------------------------------------------------------------------\n"),dwOldValue,dwSize); } } } return 0; } int acpi_shutdown_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { PCI_CONFIG_COMMON PCIConfigREG; DWORD dwOldValue; DWORD dwSize=0; WORD Value; pci_dev dev; int j; for(j =0;j<0x100;j++) { dev.bus = j; for(int i = 0; i < 0x100; i++) { dev.devfn = i; gpSyser->m_PCSystem.ReadPCICFGWord(j,i,PCI_VENDOR_ID,&PCIConfigREG.VendorID); if(PCIConfigREG.VendorID != 0xffff && PCIConfigREG.VendorID != 0) { gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,PCI_REVISION_ID,(DWORD *)&PCIConfigREG.RevisionID); if(PCIConfigREG.BaseClass==6 &&PCIConfigREG.SubClass==1) // { gpSyser->m_PCSystem.ReadPCICFGDWord(j,i,0x40,(DWORD *)&dwOldValue); dwOldValue &= 0xff80; Value = SyserReadPortWord(dwOldValue + 4); Value |= 0x3C00; SyserWritePortWord( dwOldValue + 4,Value); } } } } return 0; } int ignore_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { pSyser->m_bHandle = false; return 0; } int pagein_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { DWORD dwAddress; if(argc < 2) return -1; if(CALCEXP(argv[1],&dwAddress)==FALSE) return 1; if(Reg.EFlags & 0x20000) { OUTPUT(WSTR("Paging is only supported in 32-bit mode.\n")); return 1; } if((Reg.EFlags & 0x200)==0) { OUTPUT(WSTR("Interrupts must be enabled to page in memory.\n")); return 1; } if(Reg.SegReg[CS_IDX] & 3) { if(dwAddress<0x80000000) { OUTPUT(WSTR("Function not implemented\n")); } } return 0; } int i1here_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser* pSyser) { if(argc==1) { if(pSyser->m_bInterrupt1HereStat) OUTPUT(WSTR("I1Here is on\n")); else OUTPUT(WSTR("I1Here is off\n")); return 1; } if(argc == 2) { if(TStrICmp(argv[1],WSTR("ON"))==0) { pSyser->m_bInterrupt1HereStat=true; return 1; } if(TStrICmp(argv[1],WSTR("Off"))==0) { pSyser->m_bInterrupt1HereStat=false; return 1; } } OUTPUT(WSTR("Error : %<3>Input error !\n")); return 0; } int i3here_command(int argc, WCHAR* argv[],PCWSTR szCommandLine,CSyser *pSyser) { if(argc==1) { switch(pSyser->m_Interrupt3HereStat) { case 1: OUTPUT(WSTR("I3Here is on\n")); break; case 2: OUTPUT(WSTR("I3Here is on for device drivers (addr > 2G)\n")); break; case 0: OUTPUT(WSTR("I3Here is off\n")); break; } return 0; } if(argc == 2) { if(TStrICmp(argv[1],WSTR("ON"))==0) { pSyser->m_Interrupt3HereStat=1; return 1; } if(TStrICmp(argv[1],WSTR("OFF"))==0) { pSyser->m_Interrupt3HereStat=0; return 1; } if(TStrICmp(argv[1],WSTR("DRV"))==0) { pSyser->m_Interrupt3HereStat=2; return 1; } } OUTPUT(WSTR("Error : %<3>Input error !\n")); return 0; } int genint_command(int argc, WCHAR* argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwInterruptNumber; if(argc != 2 || CALCEXP(argv[1],&dwInterruptNumber)==FALSE) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(dwInterruptNumber>0xff) { OUTPUT(WSTR("Error : %<3>Input error !\n")); return -1; } if(Reg.SegReg[CS_IDX] & 0x3) { } else { gGenInterruptNumber = dwInterruptNumber; gGenInterruptOffset = MAKE_DWORD(gOldInterruptDescropterTable[dwInterruptNumber].OffsetHigh,gOldInterruptDescropterTable[dwInterruptNumber].OffsetLow); pSyser->Exit(); } return 0; } int hboot_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { SyserResetSystem(); return 0; } int vad_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { OUTPUT(WSTR("Process [%s] , PEPROCESS [%08X] VADRoot[%08X]\n"), (PCWSTR)gpSyser->m_pDebugger->m_ProcNameW,gpSyser->m_pDebugger->m_PEProcess,gpSyser->m_pDebugger->m_PEProcess->VadRoot); return 1; } int bpr_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwVirtualAddress; DWORD dwRangeStart; DWORD dwRangeLength; DWORD dwRangeEnd; DWORD dwMode; BP_RANGE_INFO Bpr; PROC_RANGE_BP_MAP::IT FindIT; BP_RANGE_LIST::IT BprIT; if(argc <4) goto error_label; DWORD dwProcess = GetEProcessPointer(argv[1]); if(dwProcess==0) goto error_label; if(CALCEXP(argv[2],&dwRangeStart) == false) goto error_label; if(dwRangeStart>=0x80000000) goto error_label; if(CALCEXP(argv[3],&dwRangeLength) == false) goto error_label; dwRangeEnd = dwRangeStart+dwRangeLength; if(dwRangeEnd>=0x80000000) dwRangeLength = 0x80000000-dwRangeStart-1; dwMode = *(DWORD*)&argv[4][0]; switch(dwMode) { case 'r': case 'R': dwMode=BP_TYPE_READ; break; case 'w': case 'W': dwMode=BP_TYPE_WRITE; break; case 'x': case 'X': dwMode=BP_TYPE_EXECUTE; break; case 0x720077: case 0x720057: case 0x770072: case 0x770052: case 0x520077: case 0x520057: case 0x570052: case 0x570072: if(argv[4][2]!=0) return 1; dwMode=BP_TYPE_READWRITE; break; default: dwMode=0; break; } if(dwMode==0) return 1; CHAR Name[256],Condition[256],DoCmd[256]; Condition[0]=0; DoCmd[0]=0; if(get_command_condition_string(argc,argv,szCommandLine,Condition,256)>0) { if(CALCEXP(Condition,NULL)==false) { OUTPUT(WSTR("Error : Invalid condition string !\n")); return -1; } } get_do_command_string(argc,argv,szCommandLine,DoCmd,256); FindIT = gpSyser->m_RangeBPList.Find(dwProcess); if(FindIT==gpSyser->m_RangeBPList.End()) { FindIT = gpSyser->m_RangeBPList.InsertUnique(dwProcess,BP_RANGE_LIST()); } if(FindIT == gpSyser->m_RangeBPList.End()) goto error_label; DWORD PageSize; DWORD PageSizeBak; DWORD PTESize=0; void* pteptr; pteptr = GetPTE(dwRangeStart,&PageSize,&PTESize); PageSizeBak=PageSize; Bpr.RangeStartAddress=dwRangeStart; Bpr.RangeLength=dwRangeLength; Bpr.Type=dwMode; Bpr.State=BP_STATE_ENABLE; Bpr.PageSize=PageSize; Bpr.PTECount=0; Bpr.PTESize=(WORD)PTESize; Bpr.PTEAddress=(DWORD)pteptr; BprIT = FindIT->Append(Bpr); if(BprIT!=FindIT->End()) { BprIT->DoCmd=DoCmd; BprIT->Condition=Condition; } return 0; error_label: OUTPUT(cmd_bpr_usage); return 1; } int pte_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwTmp; CR4REGISTER stCR4; CPUID_1_EDX_FEATURE stCPUID_1_EDX; X86_PDE *pCurrentPDEBegin; X86_PTE *dwPageTableBegin; X86_36_PDE* PDE36Value; X86_36_PDE_2M* PDE36Value2M; X86_36_PTE* PTE36Value; CPUID_INFO TmpInfo; DWORD dwPageDirectoryIndex; DWORD dwVirtualAddress; WCHAR *Format=WSTR("%08x %sP %s %s %s %s %s %s %08x - %08x\n"); WCHAR *Format1=WSTR("%08x %08x %sP %s %s %s %s %s %s\n"); pCurrentPDEBegin = (X86_PDE *)PAGE_DIRECTORY_LINES_ADDRESS; PDE36Value=(X86_36_PDE*)PAGE_DIRECTORY_36_LINES_ADDRESS; PDE36Value2M=(X86_36_PDE_2M*)PAGE_DIRECTORY_36_LINES_ADDRESS; if(argc == 2 ) { if(CALCEXP(argv[1],&dwVirtualAddress) == false) return 1; stCPUID_1_EDX = *(CPUID_1_EDX_FEATURE*)&gpCPUIDInfo[1].dwEDX; dwTmp = GetCR4Register(); stCR4 = *(CR4REGISTER*)&dwTmp; if(stCR4.PAE) { dwPageDirectoryIndex = dwVirtualAddress; dwPageDirectoryIndex >>= 21; PTE36Value=(X86_36_PTE*)0xc0000000; PTE36Value=&PTE36Value[dwVirtualAddress>>12]; OUTPUT(WSTR("PDE at %08x PTE at %08x\n"),&PDE36Value[dwPageDirectoryIndex],PTE36Value); DWORD pde_value,pte_value; pde_value=ReadDwordDefaultValue((DWORD*)&PDE36Value[dwPageDirectoryIndex],0); if(PDE36Value[dwPageDirectoryIndex].u.Page2M) pte_value = 0; else pte_value=ReadDwordDefaultValue((DWORD*)PTE36Value,0); OUTPUT(WSTR("contains %08x contains %08x\n"),pde_value,pte_value); } else { dwPageDirectoryIndex = dwVirtualAddress; dwPageDirectoryIndex >>= 22; dwPageTableBegin=(X86_PTE*)(0xc0000000+((dwVirtualAddress>>12)<<2)); OUTPUT(WSTR("PDE at %08x PTE at %08x\n"),&pCurrentPDEBegin[dwPageDirectoryIndex],dwPageTableBegin); DWORD pde_value,pte_value; pde_value=ReadDwordDefaultValue((DWORD*)&pCurrentPDEBegin[dwPageDirectoryIndex],0); if(pCurrentPDEBegin[dwPageDirectoryIndex].u.Page4M) pte_value = 0; else pte_value=ReadDwordDefaultValue((DWORD*)dwPageTableBegin,0); OUTPUT(WSTR("contains %08x contains %08x\n"),pde_value,pte_value); } } return 0; } int faults_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { if(argc==1) { if(pSyser->m_bFaultsStat) OUTPUT(WSTR("Faults is on\n")); else OUTPUT(WSTR("Faults is off\n")); return 0; } if(argc == 2) { if(TStrICmp(argv[1],WSTR("ON"))==0) { pSyser->m_bFaultsStat=true; return 0; } if(TStrICmp(argv[1],WSTR("Off"))==0) { pSyser->m_bFaultsStat=false; return 0; } } OUTPUT(WSTR("Error : %<3>Input error !\n")); return 1; } int window_center_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { gpSyser->RestoreScreen(); gpSyser->CenterScreen(); gpSyser->BackupScreen(); return 0; } int dispinfo_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { OUTPUT(WSTR("FrameBuffer\n")); OUTPUT(WSTR("Width = %d , Height = %d , Bpp = %d\n"),gpSyser->m_RealFrameBuffer.Width,gpSyser->m_RealFrameBuffer.Height,gpSyser->m_RealFrameBuffer.Bpp); OUTPUT(WSTR("LineDistance = 0x%08X\n"),gpSyser->m_RealFrameBuffer.LineDistance); OUTPUT(WSTR("Video Buffer = 0x%08X\n"),gpSyser->m_RealFrameBuffer.Buffer); return 0; } int sysertest(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { OUTPUT(WSTR("SyserDR7 = %08X\n"),SyserDR[7]); return 0; } int sdsrv_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { gpSyser->m_SDServer.StartServer(); return 0; } int plugin_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { OUTPUT(WSTR("Plugin Name Information\n")); for(CPluginMap::IT Iter=pSyser->m_PluginMap.Begin();Iter!=pSyser->m_PluginMap.End();Iter++) { OUTPUT(WSTR("%20s %s\n"),(PCWSTR)Iter.Key(),Iter->PluginInfo); } return 0; } int ioapic_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD Vaule; if(gbIsUseAPIC==0) return 1; OUTPUT(WSTR("IOAPIC Line Address %08x Physical Address %08x\n"),gdwIOAPICLineAddress,gdwIOAPICPhysAddress); Vaule = GetIOAPICData(0); OUTPUT(WSTR("Address Offset Default Value Attribute Value\n")); OUTPUT(WSTR("0 0x0 Read/Write %08x\n"),Vaule); Vaule = GetIOAPICData(1); OUTPUT(WSTR("1 0x00170011 Read Only %08x\n"),Vaule); Vaule = GetIOAPICData(2); OUTPUT(WSTR("2 0x0 Read Only %08x\n\n"),Vaule); irq_command(1,NULL,NULL,pSyser); return 0; } int localapic_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { if(gbIsUseAPIC==0) return 1; DWORD Value; DWORD* LocalApic; int i; WCHAR *DeliveryMode[]= { WSTR("Fixed "), WSTR("Low. Pri"), WSTR("SMI "), WSTR("Reserved"), WSTR("NMI "), WSTR("INIT "), WSTR("Reserved"), WSTR("ExtINT "), }; LocalApic = *(DWORD**)&gdwLocalAPICLineAddress; OUTPUT(WSTR("Local APIC Line Address %08x Physical Address %08x\n"),gdwLocalAPICLineAddress,gdwLocalAPICPhysAddress); OUTPUT(WSTR("Index IRR ISR TMR\n")); for(i =0;i<8;i++) { OUTPUT(WSTR("(%02x-%02x) %08x %08x %08x\n"),i*32,i*32+31,LocalApic[(0x200+i*10)/sizeof(DWORD)],LocalApic[(0x100+i*10)/sizeof(DWORD)],LocalApic[(0x180+i*10)/sizeof(DWORD)]); } OUTPUT(WSTR("\n")); Value = LocalApic[0x20/sizeof(DWORD)]; OUTPUT(WSTR("Local APIC ID Register: %%08x\n"),Value); Value = LocalApic[0x30/sizeof(DWORD)]; OUTPUT(WSTR("Local APIC Version Register: %%08x. Max. LVT Entry(16-23)=%d; Version(0-7bit)=%d\n"),Value,(Value>>16)&0xff,Value&0xff); OUTPUT(WSTR("Task Priority Register (TPR): %%08x\n"),gdwLocalAPICTaskPriority); Value = LocalApic[0x90/sizeof(DWORD)]; OUTPUT(WSTR("Arbitration Priority Register (APR): %%08x\n"),Value); Value = LocalApic[0xa0/sizeof(DWORD)]; OUTPUT(WSTR("Processor Priority Register (PPR): %%08x\n"),Value); Value = LocalApic[0xd0/sizeof(DWORD)]; OUTPUT(WSTR("Logical Destination Register: %%08x\n"),Value); Value = LocalApic[0xe0/sizeof(DWORD)]; OUTPUT(WSTR("Destination Format Register: %%08x\n"),Value); Value = LocalApic[0xf0/sizeof(DWORD)]; OUTPUT(WSTR("Spurious Interrupt Vector Register: %%08x\n"),Value); Value = LocalApic[0x100/sizeof(DWORD)]; OUTPUT(WSTR("In-Service Register: %%08x\n"),Value); Value = LocalApic[0x180/sizeof(DWORD)]; OUTPUT(WSTR("Trigger Mode Register: %%08x\n"),Value); Value = LocalApic[0x200/sizeof(DWORD)]; OUTPUT(WSTR("Interrupt Request Register: %%08x\n"),Value); Value = LocalApic[0x280/sizeof(DWORD)]; OUTPUT(WSTR("Error Status Register: %%08x\n"),Value); Value = LocalApic[0x300/sizeof(DWORD)]; OUTPUT(WSTR("Interrupt Command Register (ICR) [0-31]: %%08x\n"),Value); Value = LocalApic[0x310/sizeof(DWORD)]; OUTPUT(WSTR("Interrupt Command Register (ICR) [32-63]: %%08x\n"),Value); Value = LocalApic[0x320/sizeof(DWORD)]; OUTPUT(WSTR("LVT Timer Register: %%08x %s\n"),Value,Value&0x1000?WSTR("IDLE "):WSTR("Send Pending"),Value&0x10000?WSTR("Unmark"):WSTR("Mark"),Value&0x20000?WSTR("Periodic"):WSTR("One-shot")); Value = LocalApic[0x330/sizeof(DWORD)]; OUTPUT(WSTR("LVT Thermal Sensor Register: %%08x\n"),Value); Value = LocalApic[0x340/sizeof(DWORD)]; OUTPUT(WSTR("LVT Performance Monitoring Counters Register: %%08x\n"),Value); Value = LocalApic[0x350/sizeof(DWORD)]; OUTPUT(WSTR("LVT LINT0 Register; %%08x %s %s %s\n"),Value,DeliveryMode[(Value>>8)&0x7],Value&0x1000?WSTR("IDLE "):WSTR("Send Pending"),Value&0x20000?WSTR("Unmark"):WSTR("Mark ")); Value = LocalApic[0x360/sizeof(DWORD)]; OUTPUT(WSTR("LVT LINT1 Register: %%08x %s %s %s\n"),Value,DeliveryMode[(Value>>8)&0x7],Value&0x1000?WSTR("IDLE "):WSTR("Send Pending"),Value&0x20000?WSTR("Unmark"):WSTR("Mark ")); Value = LocalApic[0x370/sizeof(DWORD)]; OUTPUT(WSTR("LVT Error Register: %%08x\n"),Value); Value = LocalApic[0x380/sizeof(DWORD)]; OUTPUT(WSTR("Initial Count Register (for Timer): %%08x\n"),Value); Value = LocalApic[0x390/sizeof(DWORD)]; OUTPUT(WSTR("Current Count Register (for Timer): %%08x\n"),Value); Value = LocalApic[0x3e0/sizeof(DWORD)]; OUTPUT(WSTR("Divide Configuration Register (for Timer): %%08x\n"),Value); return 0; } DWORD gHandleFirst[1024]; DWORD gHandleSecond[1024]; typedef struct _XP2600_2180_HANDLE_TABLE_ENTRY /* sizeof 00000008 8 */ { union { void* Object; unsigned long ObAttributes; //struct _XP2600_2180_HANDLE_TABLE_ENTRY_INFO* InfoTable; unsigned long Value; }; union { unsigned long GrantedAccess; struct { unsigned short GrantedAccessIndex; unsigned short CreatorBackTraceIndex; }; long NextFreeTableEntry; }; }HANDLE_TABLE_ENTRY,*PHANDLE_TABLE_ENTRY; extern "C" NTSTATUS ObQueryNameString( IN PVOID Object, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength ); int Handle_List(DWORD RootAddress,DWORD dwHandleIndex) { DWORD* HandleTableEntry; DWORD dwFlags; DWORD i,ii,iii=0,j,jj,jjj=0,k,kk,kkk=0; DWORD* First; DWORD dwFirstValue; DWORD* Second; PHANDLE_TABLE_ENTRY Three; DWORD dwObjectHeader,dwObject; if(dwHandleIndex!=0-1) { iii=(dwHandleIndex & 0x7ffffffc) >> 21; jjj=((dwHandleIndex & 0x7ffffffc) >> 11) & 0x3ff; kkk=((dwHandleIndex & 0x7ffffffc) >> 2) & 0x1ff; } if(ReadDword((void*)RootAddress,&dwFirstValue)==false) return 0; RootAddress=dwFirstValue; dwFlags=RootAddress&0x3; RootAddress&=0xfffffffc; switch(dwFlags) { case 0: { i=1; j=1; k=512; memset(gHandleFirst,0,sizeof(gHandleFirst)); memset(gHandleSecond,0,sizeof(gHandleSecond)); gHandleFirst[0]=(DWORD)gHandleSecond; gHandleSecond[0]=RootAddress; First=gHandleFirst; break; } case 1: { i=1;j=1024; k=512; memset(gHandleFirst,0,sizeof(gHandleFirst)); memset(gHandleSecond,0,sizeof(gHandleSecond)); gHandleFirst[0]=RootAddress; First=gHandleFirst; break; } case 2: { First=(DWORD*)RootAddress; i=1024; j=1024; k=512; break; } } SYSER_PROCESS Process; SYSER_THREAD Thread; bool bOK; DWORD dwCountHandle=0; WCHAR TypeName[65]; WCHAR ObjName[65]; WCHAR KeyName[512]; DWORD dwLen1; bool bDisplayTitle=false; if(dwHandleIndex!=0-1) { for(ii=0;ii<=iii;ii++) { Second = (DWORD*)ReadDword((void*)&First[ii],&bOK); if(Second==0) break; } if(Second==0) return 0; for(jj=0;jj<=jjj;jj++) { Three = (PHANDLE_TABLE_ENTRY)ReadDword((void*)&Second[jj],&bOK); if(Three==0) break; } if(Three==0) return 0; dwHandleIndex=((iii<<19)+(jjj<<9)+kkk)<<2; if(ReadDword(&Three[kkk].Object,&dwObjectHeader)==false) return 0; if(dwObjectHeader==0) return 0; if(bDisplayTitle==false) { OUTPUT(WSTR("Handle Object TypeName Name\n")); bDisplayTitle=true; } dwObject=(dwObjectHeader&0xfffffff8)+0x18; dwCountHandle++; OUTPUT(WSTR("%08x [%08x] "),dwHandleIndex,dwObjectHeader+0x18); if(GetObjectTypeName(dwObject,TypeName)) { OUTPUT(WSTR("%-20s"),TypeName); if(TStrICmp(TypeName,"File")==0) { FILE_OBJECT* FileObj=(FILE_OBJECT*)(dwObject); if(GetFileObjectName(FileObj,TypeName,0)) { OUTPUT(WSTR("%s "),TypeName); } else { if(ReadDword(&FileObj->DeviceObject,&dwObjectHeader)) if(GetObjectName(dwObjectHeader,ObjName)) OUTPUT(WSTR("%s "),ObjName); } } } if(GetObjectName(dwObject,ObjName)) OUTPUT(WSTR("%s"),ObjName); OUTPUT(WSTR("\n")); return 1; } for(ii=0;iiDeviceObject,&dwObjectHeader)) if(GetObjectName(dwObjectHeader,ObjName)) OUTPUT(WSTR("%s "),ObjName); } } else if(TStrICmp(TypeName,"Process")==0) { if(GetProcessInfoByEPROCESS(dwObject,&Process)) { TStrCpy(ObjName,Process.ImageFileName); OUTPUT(WSTR("%s (%x)"),ObjName,Process.UniqueProcessId); } } else if(TStrICmp(TypeName,"Thread")==0) { if(GetThreadInfoByETHREAD(dwObject,&Thread)) { if(GetProcessInfoByEPROCESS(Thread.Process,&Process)) { TStrCpy(ObjName,Process.ImageFileName); OUTPUT(WSTR("%s (%x"),ObjName,Process.UniqueProcessId); } OUTPUT(WSTR(":%x)"),Thread.ThreadID); } } } if(GetObjectName(dwObject,ObjName)) OUTPUT(WSTR("%s"),ObjName); OUTPUT(WSTR("\n")); } } } OUTPUT(WSTR("Handle (%d)\n"),dwCountHandle); return 0; } int test_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { return 0; } bool GetProcessInfoByValue(WCHAR* argv,PSYSER_PROCESS Process) { SYSER_THREAD Thread; DWORD dwValue=0; DWORD dwThread; if(argv==NULL) return false; if(CALCEXP(argv,&dwValue)==false) { CDbgProcess*pDbgProcess; pDbgProcess=gpSyser->m_SysInfo.GetProcess(argv); if(pDbgProcess==NULL) return false; dwValue=(DWORD)pDbgProcess->GetEPROCESS(); return GetProcessInfoByEPROCESS(dwValue,Process); } SYSER_VALUE_TYPE Type = GetValueType(dwValue); switch(Type) { case VALUE_TYPE_THREAD_ID: if(GetThreadByID(dwValue,&Thread)) return GetProcessInfoByEPROCESS(Thread.Process,Process); break; case VALUE_TYPE_THREAD_PTR: if(GetThreadInfoByETHREAD(dwValue,&Thread)==false) return false; dwValue=Thread.Process; case VALUE_TYPE_PROCESS_PTR: return GetProcessInfoByEPROCESS(dwValue,Process); case VALUE_TYPE_PROCESS_ID: return GetProcessByID(dwValue,Process); } return false; } int handle_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { SYSER_PROCESS Process; WCHAR Name[32]; DWORD dwThread,dwProcess; DWORD dwRootAddress; DWORD dwRootAddress1=0; bool bOK; DWORD dwHandle; if(argc==1) { if(GetCurrentProcessInfo(&Process)==false) { OUTPUT(WSTR("handle : Get Process information error!\n")); return 1; } Handle_List(Process.ObjectTable,0-1); return 0; } if(argc>3) { error: OUTPUT(cmd_handle_usage); return 1; } if(GetProcessInfoByValue(argv[1],&Process)==false) { if(CALCEXP(argv[1],&dwHandle)==false) { goto error; } if(dwHandle==0 || dwHandle==0-1) dwHandle=0-1; if(argc==3) { if(GetProcessInfoByValue(argv[2],&Process)==false) goto error; } else { if(GetCurrentProcessInfo(&Process)==false) goto error; } } else { dwHandle=0-1; if(argc==3) { if(CALCEXP(argv[2],&dwHandle)) { if(dwHandle==0 || dwHandle==0-1) dwHandle=0-1; } else goto error; } } Handle_List(Process.ObjectTable,dwHandle); return 0; } int TerminateProcess_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD ExitCode=0,BaseAddress; DWORD CodeBufer[]={ 0x68909090,//push exitcode 0, // exitcode 0xe8909090,//call GetCurrentProcess 0, // 0xe8909050,//push eax call TerminateProcess 0x0, // 0xc3909090,//ret }; if(argc>2) { OUTPUT(WSTR("Error: exitprocess exitcode\n")); return 1; } if(argc==2) { CALCEXP(argv[1],&ExitCode); } CodeBufer[1]=ExitCode; if(pSyser->m_pOrgProcess->m_PID==0 || pSyser->m_pOrgProcess->m_PID==4 || TStrNICmp((WCHAR*)pSyser->m_pOrgProcess->m_ProcNameW,"lsass.exe",9)==0 || TStrNICmp((WCHAR*)pSyser->m_pOrgProcess->m_ProcNameW,"smss.exe",8)==0 || TStrNICmp((WCHAR*)pSyser->m_pOrgProcess->m_ProcNameW,"services.exe",12)==0 || pSyser->m_pOrgProcess == pSyser->m_pCsrssProcess ) { OUTPUT(WSTR("Error: not exit %s process\n"),(WCHAR*)pSyser->m_pOrgProcess->m_ProcNameW); return 1; } if((Reg.SegReg[CS_IDX]&3)!=3 || gpSyser->m_pOrgProcess!=gpSyser->m_pDebugger || Reg.EIP>=0x80000000) { return 1; } if(GetCurrentIRQLLevel()>=2) { OUTPUT(WSTR("Error: IRQL must be below DISPATCH_LEVEL.\n")); return 1; } char szSym[MAX_SYMBOL_LEN],szModule[MAX_FN_LEN]; WCHAR szBuffer[MAX_SYMBOL_LEN],szModuleName[MAX_FN_LEN]; CSymbolModule* pSymMod; pSymMod = pSyser->m_pDebugger->GetSymbolModule("kernel32.dll"); if(pSymMod) { DWORD GetCurrentProcessAddress; DWORD TerminateProcessAddress; bool bNXE=false,bPAE=false; CPUID_INFO ExInfo,TmpInfo; memset(&TmpInfo,0,sizeof(TmpInfo)); memset(&ExInfo,0,sizeof(ExInfo)); SyserGetCPUID(&TmpInfo,0x80000000); DWORD dwHiMiscFeature,dwLoMiscFeature; if(TmpInfo.dwEAX>=0x80000001) { SyserGetCPUID(&ExInfo,0x80000001); if(((ExInfo.dwEDX & 0x20000000)>>29)==1 || ((ExInfo.dwEDX & 0x100000)>>20)==1) { bNXE=true; } if(bNXE) { if(SyserReadMSR(0xc0000080,&dwHiMiscFeature,&dwLoMiscFeature)) { if(((dwLoMiscFeature&0x800)>>11)==0) bNXE=false; } } } bPAE = (GetCR4Register() & CR4_PAE_BIT_MASK) ? true : false; if(pSymMod->GetAddress("GetCurrentProcess",&GetCurrentProcessAddress)==false) return 1; if(pSymMod->GetAddress("TerminateProcess",&TerminateProcessAddress)==false) return 1; RUNCMD(WSTR("r eip esp-3c")); CodeBufer[3]=GetCurrentProcessAddress-Reg.EIP-5-8-3; CodeBufer[5]=TerminateProcessAddress-Reg.EIP-5-0x10-3; if(bPAE&&bNXE) { PX86_36_PDE pCurrent36PDEBegin; PX86_36_PDE_2M pCurrent36PDE2M; PX86_36_PTE pPageTable36Begin; pCurrent36PDE2M=(PX86_36_PDE_2M)0xc0600000; pCurrent36PDEBegin=(PX86_36_PDE)0xc0600000; pPageTable36Begin=(PX86_36_PTE)0xc0000000; if(pCurrent36PDEBegin[Reg.EIP>>21].u.Page2M) { pCurrent36PDEBegin[Reg.EIP>>21].u.NXE=0; } else { pPageTable36Begin[Reg.EIP>>12].u.NXE=0; } } SafeMemCopy((BYTE*)Reg.EIP,(BYTE*)CodeBufer,sizeof(CodeBufer)); //Reg.GeneReg[ESP_IDX]-=sizeof(CodeBufer); //Reg.GeneReg[ESP_IDX]-=0x14; //RUNCMD(WSTR("r esp esp-30")); //RUNCMD(WSTR("x")); } gpSyserCfg->m_ExceptionDebugInfo=1; return 0; } PCWSTR SyserHeapName[]= { WSTR("Main Heap "), WSTR("Screen Heap Ļ "), WSTR("Source Heap Դ"), }; int syserheapinfo_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { OUTPUT(WSTR("-------------------------------------------------------------\n")); OUTPUT(WSTR("Syser Kernel Debugger Inside Information\n")); for(int n=0;n%s %<1>ܿռ%<5>%10d%<1>k / ʣ%<5>%10d%<1>k\n"),SyserHeapName[n],gpUserHeap[n]->m_HeapSize/1024,gpUserHeap[n]->m_FreeChunkCount*MP_SIZE/1024); } OUTPUT(WSTR("-------------------------------------------------------------\n")); return 0; } typedef struct _SYSER_OBJTAB { DWORD Object; DWORD OwnerThread; union { BYTE Flags[4]; DWORD Value; WORD wValue[2]; }; }SYSER_OBJTAB,*PSYSER_OBJTAB; DWORD GetObjtabRoot() { if(gpSyser->m_OSMajorVersion==5 && gpSyser->m_OSMinorVersion==0) return 0xA0200000; if(gpSyser->m_OSMajorVersion==5 && gpSyser->m_OSMinorVersion==1) return 0xbc510000; if(gpSyser->m_OSMinorVersion==6 && gpSyser->m_OSMinorVersion==0) return 0xff910000; return 0; } bool GetObjtabEntry(PSYSER_OBJTAB Info,DWORD& Index,DWORD dwType) { DWORD Root=GetObjtabRoot(); if(Root==0) return false; PSYSER_OBJTAB ObjTab=(PSYSER_OBJTAB)Root; memset(Info,0,sizeof(SYSER_OBJTAB)); do { if(SafeMemCopy((BYTE*)Info,(BYTE*)&ObjTab[Index],sizeof(SYSER_OBJTAB))!=sizeof(SYSER_OBJTAB)) { Index++; return false; } Index++; } while(dwType!=0-1 && Info->Flags[0]!=dwType); return true; } int bpp_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwValue,Address; bool bOK=false,bOK1=false; SYSER_THREAD pThread; SYSER_VALUE_TYPE ValueType; PSYSER_KTRAP_FRAME pTrapFrame; SYSER_PROCESS pProcess; if(argc!=2) return 0; if(CALCEXP(argv[1],&dwValue)==false) return 0; memset(&pThread,0,sizeof(pThread)); ValueType = GetValueType(dwValue); switch(ValueType) { case VALUE_TYPE_THREAD_PTR: bOK=GetThreadInfoByETHREAD(dwValue,&pThread); if(bOK) bOK=GetProcessByEPROCESS(pThread.Process,&pProcess); break; case VALUE_TYPE_THREAD_ID: bOK = GetThreadByID(dwValue,&pThread); if(bOK) bOK=GetProcessByEPROCESS(pThread.Process,&pProcess); break; case VALUE_TYPE_PROCESS_ID: bOK=GetProcessByID(dwValue,&pProcess); break; case VALUE_TYPE_PROCESS_PTR: bOK=GetProcessInfoByEPROCESS(dwValue,&pProcess); break; } if(bOK==false) return 0; memset(&pThread,0,sizeof(pThread)); bOK1 = GetThreadInfoByETHREAD((DWORD)pProcess.ThreadHead,&pThread); TMap AddrMap; WCHAR cmdString[50]; TSPrintf(cmdString,WSTR("addr %x"),pProcess.UniqueProcessId); RUNCMD(cmdString); while(bOK1) { pTrapFrame = (PSYSER_KTRAP_FRAME)pThread.TrapFrame; if(pTrapFrame) { Address = (DWORD)&pTrapFrame->Eip; if(gpSyser->m_pDebugger->ReadMemory(Address,&dwValue,sizeof(dwValue))==sizeof(dwValue)) { if(AddrMap.Find(dwValue)==AddrMap.End()) { TSPrintf(cmdString,WSTR("bpx %08x if PID==%x"),dwValue,pProcess.UniqueProcessId); RUNCMD(cmdString); AddrMap.InsertUnique(dwValue,0); } } } bOK1=GetNextThread(&pThread); } AddrMap.Clear(); return 0; } int bpt_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { DWORD dwValue,Address; bool bOK=false; SYSER_THREAD pThread; SYSER_VALUE_TYPE ValueType; PSYSER_KTRAP_FRAME pTrapFrame; SYSER_PROCESS pProcess; if(argc!=2) return 0; if(CALCEXP(argv[1],&dwValue)==false) return 0; memset(&pThread,0,sizeof(pThread)); ValueType = GetValueType(dwValue); switch(ValueType) { case VALUE_TYPE_THREAD_PTR: bOK=GetThreadInfoByETHREAD(dwValue,&pThread); break; case VALUE_TYPE_THREAD_ID: bOK = GetThreadByID(dwValue,&pThread); break; } if(bOK==false||pThread.TrapFrame==0) return 0; memset(&pProcess,0,sizeof(pProcess)); bOK = GetProcessByEPROCESS(pThread.Process,&pProcess); if(bOK==false) return 0; pTrapFrame = (PSYSER_KTRAP_FRAME)pThread.TrapFrame; Address = (DWORD)&pTrapFrame->Eip; if(gpSyser->m_pDebugger->ReadMemory(Address,&dwValue,sizeof(dwValue))==sizeof(dwValue)) { WCHAR cmdString[50]; TSPrintf(cmdString,WSTR("addr %x"),pProcess.UniqueProcessId); RUNCMD(cmdString); TSPrintf(cmdString,WSTR("bpx %08x if TID==%x"),dwValue,pThread.ThreadID); RUNCMD(cmdString); } return 0; } int objtab_command(int argc,WCHAR *argv[],PCWSTR szCommandLine,CSyser *pSyser) { CDbgProcess*pDbgProcess=NULL; DWORD dwParam; WCHAR unknowtype[]=WSTR("???"); WCHAR* pTypeName; WCHAR *TypeName[][2]= { {WSTR("FREE"), WSTR("FREE")}, {WSTR("Hwnd"), WSTR("HWND")}, {WSTR("Menu"), WSTR("MENU")}, {WSTR("Icon/Cursor"), WSTR("ICON")}, {WSTR("DeferWindow"), WSTR("DFRW")}, {WSTR("Hook"), WSTR("HOOK")}, {WSTR("Thread Info"), WSTR("TINF")}, {WSTR("CB Format"), WSTR("CBF")}, {WSTR("Call Proc"), WSTR("CPD")}, {WSTR("Accel. Table"), WSTR("ACCL")}, {WSTR("Dde Object"), WSTR("DDE")}, {WSTR("???"), WSTR("unkB")}, {WSTR("???"), WSTR("unkC")}, {WSTR("???"), WSTR("unkD")}, {WSTR("Kbd Layout"), WSTR("KBD")}, {WSTR("Wndw Station"), WSTR("WSTN")}, }; #ifdef CODE_OS_NT_DRV pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("csrss")); if(pDbgProcess==NULL) return 0; gpSyser->MapToProcess(pDbgProcess); #endif DWORD ObjtabRoot=GetObjtabRoot(); if(ObjtabRoot==0) return 0; DWORD dwIndex=0,dwType=0-1; SYSER_OBJTAB objtab; int i,m,j; WCHAR Title[]=WSTR("Object Type Id Handle Owner Flags\n"); DWORD owner; DWORD dwHandle; DWORD dwCount=0; if(argc==1) { dwIndex=0; dwType=-1; OUTPUT(Title); while(GetObjtabEntry(&objtab,dwIndex,dwType)) { owner=0; if(objtab.Value) { if(objtab.OwnerThread ) ReadDword((void*)objtab.OwnerThread,&owner); dwHandle=objtab.wValue[1]; dwHandle<<=0x10; dwHandle+=dwIndex; if(objtab.Flags[0]1) { for(i=1;i=0x10000) dwIndex&=0xffff; dwType=0-1; if(GetObjtabEntry(&objtab,dwIndex,dwType)) { owner=0; if(objtab.Value) { if(objtab.OwnerThread ) ReadDword((void*)objtab.OwnerThread,&owner); dwHandle=objtab.wValue[1]; dwHandle<<=0x10; dwHandle+=dwIndex; if(objtab.Flags[0]=m_MaxBufSize) m_BufSize = 0; Size = RecvData(&m_Buffer[m_BufSize],m_MaxBufSize-m_BufSize); m_BufSize+=Size; return Size; } ================================================ FILE: Project/Syser/Source/SyserConnect.h ================================================ #ifndef _SYSER_CONNECT_H_ #define _SYSER_CONNECT_H_ class CSyserConnect { public: CSyserConnect(); ~CSyserConnect(); public: virtual bool Init() = 0; virtual void Release() = 0; virtual int RecvData(void*Buffer,int BufSize) = 0; virtual int SendData(void*Buffer,int BufSize) = 0; virtual int RecvDataBuffer(); BYTE* m_Buffer; int m_MaxBufSize; int m_BufSize; }; #endif ================================================ FILE: Project/Syser/Source/SyserDefine.h ================================================ #ifndef _SYSER_DEFINE_H_ #define _SYSER_DEFINE_H_ #define SYSER_VERSION "1.97" #define MAIN_WND_NAME "Syser : Active Hotkey [Ctrl+F12]" #ifdef CODE_OS_WIN #define WM_SYSER_APP_RELOAD_CFG (WM_USER+0x101) #endif #define SDP_NULL 0x00000000 #define SDP_AUTO_UNLOAD_SDS 0x00000001//˳ʱжصSDS /////////////////////////////////////////////// //ϲʹ #define SDP_LOAD_SDS 0x00010000 #define SDP_LOAD_DEP_SDS 0x00020000 /////////////////////////////////////////////// typedef struct _SYSER_DEBUG_PROCESS { DWORD Style; DWORD ProcessID; char ExeFullPathName[MAX_PATH]; char SymbolFileName[MAX_PATH]; }SYSER_DEBUG_PROCESS,*PSYSER_DEBUG_PROCESS; typedef struct _SYSER_DEBUG_DRIVER { DWORD Style; char DriverPathName[MAX_PATH]; char SymbolFileName[MAX_PATH]; }SYSER_DEBUG_DRIVER,*PSYSER_DEBUG_DRIVER; typedef struct _SYSER_LOAD_IDA_MAPFILE { char ModuleName[MAX_PATH]; char IDAMapFile[MAX_PATH]; }SYSER_LOAD_IDA_MAPFILE,*PSYSER_LOAD_IDA_MAPFILE; typedef struct _SYSER_PROCESS_MEMORY_READ_WRITE { DWORD ProcessID; void* Address; }SYSER_READ_PROCESS_MEMORY,*PSYSER_READ_PROCESS_MEMORY,SYSER_WRITE_PROCESS_MEMORY,*PSYSER_WRITE_PROCESS_MEMORY; typedef struct _SYSER_CORRECT_VIDEO_PARAM { void* FrameBuffer; int BufferSize; int Pitch; int Width; int Height; int Bpp; UINT PID; }SYSER_CORRECT_VIDEO_PARAM,*PSYSER_CORRECT_VIDEO_PARAM; typedef struct _SYSER_FRAME_BUFFER { int Width; int Height; int Bpp; void* BaseBuffer; void* Buffer; int LineDistance; int PixelFormat; }SYSER_FRAME_BUFFER,*PSYSER_FRAME_BUFFER; typedef struct _SYSER_LOAD_SYMBOL_MODULE { char SymbolModuleName[MAX_PATH]; }SYSER_LOAD_SYMBOL_MODULE,*PSYSER_LOAD_SYMBOL_MODULE; typedef struct _SYSER_UNLOAD_SYMBOL_MODULE { char SymbolModuleName[MAX_PATH]; }SYSER_UNLOAD_SYMBOL_MODULE,*PSYSER_UNLOAD_SYMBOL_MODULE; typedef struct _SYSER_QUER_SDS { DWORD PECheckSum; DWORD TimeDateStamp; char FileName[MAX_PATH]; }SYSER_QUER_SDS,*PSYSER_QUER_SDS; class CSDSModule; typedef struct stSourceDebugCallStack { DWORD ESP; DWORD EIP; DWORD EBP; DWORD ReturnAddress; }SOURCEDEBUGCALLSTACK; typedef TList SOUCEDEBUGCALLSTACKLIST; struct SYSER_COMMENT_MODULE_HEAD { DWORD Signature;//"CMT" DWORD DateStamp; int Count; CHAR szDesFileName[4]; }; enum CALL_TYPE { TYPE_STDCALL, TYPE_CDECL, TYPE_FASTCALL, TYPE_INLINE, }; struct API_FUNC_DEF { CStrA Return; TList ParamList; CALL_TYPE CallType; int Load(ALTFileStream&Stream) { int TotalLength,Length; TotalLength = 0; Length=Return.Load(Stream); if(Length==0) return 0; TotalLength+=Length; Length=ParamList.Load(Stream); if(Length==0) return 0; TotalLength+=Length; Length=Stream.Gets(&CallType,sizeof(CallType)); if(Length!=sizeof(CallType)) return 0; TotalLength+=Length; return TotalLength; } int Save(ALTFileStream&Stream) { int Length=Return.Save(Stream); Length+=ParamList.Save(Stream); Length+=Stream.Puts(&CallType,sizeof(CallType)); return Length; } }; typedef TMap CAPIMap; #define DBG_MSG_WBUF_LEN 0x1000 //////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define IOCTL_SYSER_DEBUG_PROCESS CTL_CODE(FILE_DEVICE_UNKNOWN,0x0001,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_DEBUG_DRIVER CTL_CODE(FILE_DEVICE_UNKNOWN,0x0002,METHOD_BUFFERED,FILE_ANY_ACCESS) //////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define IOCTL_SYSER_RELOAD_CONFIG CTL_CODE(FILE_DEVICE_UNKNOWN,0x0010,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_RELOAD_COLOR_CONFIG CTL_CODE(FILE_DEVICE_UNKNOWN,0x0011,METHOD_BUFFERED,FILE_ANY_ACCESS) //////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define IOCTL_SYSER_SET_CLIP_BOARD CTL_CODE(FILE_DEVICE_UNKNOWN,0x0021,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_GET_CLIP_BOARD CTL_CODE(FILE_DEVICE_UNKNOWN,0x0022,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_SCREEN_SHOT CTL_CODE(FILE_DEVICE_UNKNOWN,0x0023,METHOD_BUFFERED,FILE_ANY_ACCESS) //////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define IOCTL_SYSER_CORRECT_VIDEO_PARAM CTL_CODE(FILE_DEVICE_UNKNOWN,0x0030,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_LOAD_SDS CTL_CODE(FILE_DEVICE_UNKNOWN,0x0031,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_UNLOAD_SDS CTL_CODE(FILE_DEVICE_UNKNOWN,0x0032,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_LOAD_EXPORT_SYMBOL CTL_CODE(FILE_DEVICE_UNKNOWN,0x0033,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_LOAD_IDA_MAPFILE CTL_CODE(FILE_DEVICE_UNKNOWN,0x0034,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_QUERY_SDS CTL_CODE(FILE_DEVICE_UNKNOWN,0x0035,METHOD_BUFFERED,FILE_ANY_ACCESS) //////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define IOCTL_SYSER_SAVE_HISTROYS CTL_CODE(FILE_DEVICE_UNKNOWN,0x0041,METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_SYSER_SAVE_COMMENTS CTL_CODE(FILE_DEVICE_UNKNOWN,0x0042,METHOD_BUFFERED,FILE_ANY_ACCESS) //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define IOCTL_SYSER_BOOT_GET_FRAME_BUFFER CTL_CODE(FILE_DEVICE_UNKNOWN,0x0100,METHOD_BUFFERED,FILE_ANY_ACCESS) //////////////////////////////////////////////////////////////////////////////////////////////////////////////// enum { SYSER_MAIN_HEAP = 0, SYSER_SCREEN_HEAP, SYSER_SOURCE_DEBUG_HEAP }; #define DERIVER_GROUP_NAME "Syser" #define DRIVER_NAME "Syser" #define DRIVER_RING3_NAME "\\\\.\\Syser" #endif ================================================ FILE: Project/Syser/Source/SyserDriver.rc ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser debugger core" #define VER_INTERNALNAME_STR "Syser.sys" #define VER_ORIGINALFILENAME_STR "Syser.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/Syser/Source/SyserDriver.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser debugger core" #define VER_INTERNALNAME_STR "Syser.sys" #define VER_ORIGINALFILENAME_STR "Syser.sys" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/Syser/Source/SyserDriverMC.mc ================================================ ;/*++ BUILD Version: 0001 // Increment this if a change has global effects ; ;Copyright (c) 1992, 1993 Microsoft Corporation ; ;Module Name: ; ; moulog.mc ; ;Abstract: ; ; Constant definitions for the I/O error code log values. ; ;Revision History: ; ;--*/ ; ;#ifndef _MOULOG_ ;#define _MOULOG_ ; ;// ;// Status values are 32 bit values layed out as follows: ;// ;// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 ;// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ;// +---+-+-------------------------+-------------------------------+ ;// |Sev|C| Facility | Code | ;// +---+-+-------------------------+-------------------------------+ ;// ;// where ;// ;// Sev - is the severity code ;// ;// 00 - Success ;// 01 - Informational ;// 10 - Warning ;// 11 - Error ;// ;// C - is the Customer code flag ;// ;// Facility - is the facility code ;// ;// Code - is the facility's status code ;// ; MessageIdTypedef=NTSTATUS SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS Informational=0x1:STATUS_SEVERITY_INFORMATIONAL Warning=0x2:STATUS_SEVERITY_WARNING Error=0x3:STATUS_SEVERITY_ERROR ) FacilityNames=(System=0x0 RpcRuntime=0x2:FACILITY_RPC_RUNTIME RpcStubs=0x3:FACILITY_RPC_STUBS Io=0x4:FACILITY_IO_ERROR_CODE syserclass=0x5:FACILITY_SYSERCLASS_ERROR_CODE ) MessageId=0x0001 Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_INSUFFICIENT_RESOURCES Language=English Not enough memory was available to allocate internal storage needed for the device %1. . MessageId=0x0002 Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_NO_BUFFER_ALLOCATED Language=English Not enough memory was available to allocate the ring buffer that holds incoming data for %1. . MessageId=0x0003 Facility=syserclass Severity=Informational SymbolicName=SYSERCLASS_NOT_ENOUGH_CONFIG_INFO Language=English Some firmware configuration information was incomplete, so defaults were used. . MessageId=0x0004 Facility=syserclass Severity=Informational SymbolicName=SYSERCLASS_USER_OVERRIDE Language=English User configuration data is overriding firmware configuration data. . MessageId=0x0005 Facility=syserclass Severity=Warning SymbolicName=SYSERCLASS_NO_DEVICEMAP_CREATED Language=English Unable to create the device map entry for %1. . MessageId=0x0006 Facility=syserclass Severity=Warning SymbolicName=SYSERCLASS_NO_DEVICEMAP_DELETED Language=English Unable to delete the device map entry for %1. . MessageId=0x0007 Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_NO_PORT_DEVICE_OBJECT Language=English Could not locate the device object for one or more pointer port devices. . MessageId=0x0008 Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_NO_PORT_CONNECT Language=English Could not connect to port device %1. . MessageId=0x0009 Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_PORT_INTERRUPTS_NOT_ENABLED Language=English Could not enable interrupts on connected port device %1. . MessageId=0x000A Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_PORT_INTERRUPTS_NOT_DISABLED Language=English Could not disable interrupts on connected port device %1. . MessageId=0x000B Facility=syserclass Severity=Informational SymbolicName=SYSERCLASS_MOU_BUFFER_OVERFLOW Language=English The ring buffer that stores incoming mouse data has overflowed (buffer size is configurable via the registry). . MessageId=0x000C Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_INTERNAL_ERROR Language=English The driver for device %1 encountered an internal driver error. . MessageId=0x000D Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_COULD_NOT_CREATE_DEVICE Language=English The driver could not create the required device object. . MessageId=0x000E Facility=syserclass Severity=Warning SymbolicName=SYSERCLASS_NO_RESOURCES_FOR_WAITWAKE Language=English The driver could not obtain resources required to create a propper WaitWake IRP. . MessageId=0x000F Facility=syserclass Severity=Error SymbolicName=SYSERCLASS_ATTACH_DEVICE_FAILED Language=English Could not attach to the PnP device stack. . ;#endif /* _MOULOG_ */ ================================================ FILE: Project/Syser/Source/SyserKDM.def ================================================ NAME Syser.sys EXPORTS DllInitialize PRIVATE DllUnload PRIVATE gpSyserPluginUI ================================================ FILE: Project/Syser/Source/SyserMemoryReadWrite.cpp ================================================ #include "StdAfx.h" #include "SyserMemoryReadWrite.h" #ifdef __cplusplus extern "C" { #endif bool SyserCFlag(VOID) { bool bSuccess = true; __asm { jnc local_001 mov bSuccess,0 local_001: } return bSuccess; } #ifdef __cplusplus }; // extern "C" #endif bool SafeWriteByte(void* Address,BYTE ByteValue) { bool bSuccess=true; SyserPrivateSafeWriteByte(Address,ByteValue); bSuccess = SyserCFlag(); return bSuccess; } bool SafeWriteWord(void* Address,WORD WordValue) { bool bSuccess=true; SyserPrivateSafeWriteWord(Address,WordValue); bSuccess = SyserCFlag(); return bSuccess; } bool SafeWriteDword(void* Address,DWORD DwordValue) { bool bSuccess=true; SyserPrivateSafeWriteDword(Address,DwordValue); bSuccess = SyserCFlag(); return bSuccess; } bool WriteByte(void* Address,BYTE ByteValue) { bool bSuccess=true; SyserPrivateWriteByte(Address,ByteValue); bSuccess = SyserCFlag(); return bSuccess; } bool WriteWord(void* Address,WORD WordValue) { bool bSuccess=true; SyserPrivateWriteWord(Address,WordValue); bSuccess = SyserCFlag(); return bSuccess; } bool WriteDword(void* Address,DWORD DwordValue) { bool bSuccess=true; SyserPrivateWriteDword(Address,DwordValue); bSuccess = SyserCFlag(); return bSuccess; } bool ReadByte(void* Address,BYTE* ByteValue) { bool Success; *ByteValue=ReadByte(Address,&Success); return Success; } bool ReadWord(void* Address,WORD* WordValue) { bool Success; *WordValue=ReadWord(Address,&Success); return Success; } bool ReadDword(void* Address,DWORD* DwordValue) { bool Success; *DwordValue=ReadDword(Address,&Success); return Success; } BYTE ReadByteDefaultValue(void* Address,BYTE DefaultValue) { BYTE ByteValue; bool Success; ByteValue = ReadByte(Address,&Success); if(Success==false) ByteValue=DefaultValue; return ByteValue; } WORD ReadWordDefaultValue(void* Address,WORD DefaultValue) { WORD WordValue; bool Success; WordValue = ReadWord(Address,&Success); if(Success==false) WordValue=DefaultValue; return WordValue; } DWORD ReadDwordDefaultValue(void* Address,DWORD DefaultValue) { DWORD DwordValue; bool Success; DwordValue = ReadDword(Address,&Success); if(Success==false) DwordValue=DefaultValue; return DwordValue; } BYTE ReadByte(void* Address,bool* Success) { BYTE RetValue; bool bSuccess=true; RetValue = SyserPrivateReadByte(Address); bSuccess = SyserCFlag(); if(Success) *Success=bSuccess; return RetValue; } WORD ReadWord(void* Address,bool* Success) { WORD RetValue; bool bSuccess=true; RetValue = SyserPrivateReadWord(Address); bSuccess = SyserCFlag(); if(Success) *Success=bSuccess; return RetValue; } DWORD ReadDword(void* Address,bool* Success) { DWORD RetValue; bool bSuccess=true; RetValue = SyserPrivateReadDword(Address); bSuccess = SyserCFlag(); if(Success) *Success=bSuccess; return RetValue; } // // __declspec(naked) BYTE __stdcall PrivateReadByte(void* Address) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // movzx eax,byte ptr[esi] // lea esp,[esp+4] // pop esi // clc // ret 4 // } // } // // __declspec(naked)WORD __stdcall PrivateReadWord(void* Address) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // movzx eax,word ptr[esi] // lea esp,[esp+4] // pop esi // clc // ret 4 // } // } // // __declspec(naked)DWORD __stdcall PrivateReadDword(void* Address) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov eax,[esi] // lea esp,[esp+4] // pop esi // clc // ret 4 // } //} // // __declspec(naked)void __stdcall PrivateReadError() // { // __asm{ // pop eax // pop esi // stc // ret 4 // } // } // // __declspec(naked)void __stdcall PrivateWriteByte(void* Address,BYTE ByteValue) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov al,[esp+0x10] // mov [esi],al // pop eax // pop esi // clc // ret 8 // } // } // // __declspec(naked)void __stdcall PrivateWriteWord(void* Address,WORD WordValue) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov ax,[esp+0x10] // mov [esi],ax // pop eax // pop esi // clc // ret 8 // } // } // // __declspec(naked)void __stdcall PrivateWriteDword(void* Address,DWORD DwordValue) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov eax,[esp+0x10] // mov [esi],eax // pop eax // pop esi // clc // ret 8 // } // } // // __declspec(naked)void __stdcall PrivateSafeWriteByte(void* Address,BYTE ByteValue) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov al,[esi]//ַʧܷ // mov eax,cr0 // push eax // and eax,0xfffeffff // mov cr0,eax // mov al,[esp+0x14] // mov [esi],al // pop eax // mov cr0,eax // pop eax // pop esi // clc // ret 8 // } // } // // __declspec(naked)void __stdcall PrivateSafeWriteWord(void* Address,WORD WordValue) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov ax,[esi]//ַʧܷ // mov eax,cr0 // push eax // and eax,0xfffeffff // mov cr0,eax // mov ax,[esp+0x14] // mov [esi],ax // pop eax // mov cr0,eax // pop eax // pop esi // clc // ret 8 // } // } // // __declspec(naked)void __stdcall PrivateSafeWriteDword(void* Address,DWORD DwordValue) // { // __asm // { // push esi // push eax // mov esi,[esp+0xc] // mov eax,[esi]//ַʧܷ // mov eax,cr0 // push eax // and eax,0xfffeffff // mov cr0,eax // mov eax,[esp+0x14] // mov [esi],eax // pop eax // mov cr0,eax // pop eax // pop esi // clc // ret 8 // } // } // // __declspec(naked)void __stdcall PrivateWriteError() // { // __asm{ // pop eax // pop esi // stc // ret 8 // } // } // // __declspec(naked)int __stdcall PrivateMemCopy(BYTE* DestAddress,BYTE* SourceAddress,DWORD Len) // { // __asm // { // push ebp // mov ebp,esp // sub esp,4 // pushfd // push edi // push esi // push ecx // cld // xor eax,eax // mov ecx,[ebp+0x10] // cmp ecx,0 //жϿijǷΪ㣬ֱ˳ // jz local_006 // mov esi,[ebp+0xc] // cmp esi,[ebp+8] //ȽԭַĿַǷֱͬͬ˳ // jz local_006 // shr ecx,2 // jecxz local_001 // lodsb // dec esi // rep lodsd // local_001: // mov ecx,[ebp+0x10] // and ecx,3 // jecxz local_002 // rep lodsb //жԴַǷȱҳ // local_002: // mov ecx,[ebp+0x10] // mov esi,[ebp+8] // shr ecx,2 // jecxz local_003 // lodsb // dec esi // rep lodsd // local_003: // mov ecx,[ebp+0x10] // and ecx,3 // jecxz local_004 // rep lodsb //жĿַǷȱҳ // local_004: // mov edi,[ebp+8] // mov esi,[ebp+0xc] // mov ecx,[ebp+0x10] // #ifdef CODE_OS_NT_DRV // mov eax,cr0 // mov [ebp-4],eax //ԭʼ cr0 Ϣ // and eax,0xfffeffff // mov cr0,eax //ʱֹдλ // #endif // cmp edi,esi // jb local_009 // lea eax,[esi+ecx] // cmp edi,eax // jae local_009 //жĿĿʼַǷԭݵķΧ֮ڣֹݱ // std // mov esi,eax // lea edi,[edi+ecx] // mov eax,ecx // shr ecx,2 // jecxz local_010 // lea esi,[esi-4] // lea edi,[edi-4] // rep movsd // lea esi,[esi+3] // lea edi,[edi+3] // jmp local_011 // local_010: // dec esi // dec edi // local_011: // mov ecx,eax // and ecx,3 // rep movsb // jmp local_007 // local_009: // mov eax,ecx // shr ecx,2 // jecxz local_005 // rep movsd // local_005: // mov ecx,eax // and ecx,3 // jecxz local_007 // rep movsb // local_007: // #ifdef CODE_OS_NT_DRV // mov eax,[ebp-4] // mov cr0,eax // #endif // local_006: // mov eax,[ebp+0x10] // pop ecx // pop esi // pop edi // popfd // mov esp,ebp // pop ebp // clc // ret 0xc // } // } // // // __declspec(naked)int __stdcall VideoMemCopy(BYTE* DestAddress,BYTE* SourceAddress,DWORD Len) // { // __asm // { // push ebp // mov ebp,esp // sub esp,4 // pushfd // push edi // push esi // push ecx // cld // xor eax,eax // mov ecx,[ebp+0x10] // cmp ecx,0 //жϿijǷΪ㣬ֱ˳ // jz local_006 // mov esi,[ebp+0xc] // mov edi,[ebp+8] //ȽԭַĿַǷֱͬͬ˳ // //?һȽ - ޾ // jz local_006 // shr ecx,2 // jecxz local_001 // rep movsd // local_001: // mov ecx,[ebp+0x10] // and ecx,3 // jecxz local_006 // rep movsb // local_006: // mov eax,[ebp+0x10] // pop ecx // pop esi // pop edi // popfd // mov esp,ebp // pop ebp // clc // ret 0xc // } // } // // __declspec(naked)void __stdcall PrivateMemCopyError() // { // __asm{ // pop ecx // pop esi // pop edi // popfd // mov esp,ebp // pop ebp // stc // ret 0xc // } // } // // __declspec(naked)BYTE* __stdcall PrivateFindByte(BYTE* Address1,BYTE Value,DWORD Len) // { // __asm // { // pushfd // push edi // push esi // push ecx // cld // mov eax,0 // mov ecx,[esp+0x1c] // mov edi,[esp+0x14] // mov al,[esp+0x18] // repne scasb // mov eax,edi // jz local_001 // mov eax,1 // local_001: // lea eax,[eax-1] // pop ecx // pop esi // pop edi // popfd // clc // ret 0xc // } // } // // __declspec(naked)BYTE* __stdcall PrivateFindWord(BYTE* Address1,WORD Value,DWORD Len) // { // __asm // { // pushfd // push edi // push esi // push ecx // cld // mov eax,0 // mov ecx,[esp+0x1c] // mov edi,[esp+0x14] // mov ax,[esp+0x18] // repne scasw // mov eax,edi // jz local_001 // mov eax,2 // local_001: // lea eax,[eax-2] // pop ecx // pop esi // pop edi // popfd // clc // ret 0xc // } // } // // __declspec(naked)BYTE* __stdcall PrivateFindDword(BYTE* Address1,DWORD Value,DWORD Len) // { // __asm // { // pushfd // push edi // push esi // push ecx // cld // mov eax,0 // mov ecx,[esp+0x1c] // mov edi,[esp+0x14] // mov eax,[esp+0x18] // repne scasd // mov eax,edi // jz local_001 // mov eax,4 // local_001: // lea eax,[eax-4] // pop ecx // pop esi // pop edi // popfd // clc // ret 0xc // } // } // // __declspec(naked)void __stdcall PrivateFindMemoryError() // { // __asm{ // pop ecx // pop esi // pop edi // popfd // stc // ret 0xc // } // } bool MemSearch(BYTE* SourceAddrss,DWORD SourceLen,BYTE *DestinationAddress,DWORD DestinationLen,BYTE** ErrorAddress) { bool bSuccess=true; BYTE * pStr; pStr = SyserPrivateMemSearch(SourceAddrss,SourceLen,DestinationAddress,DestinationLen); bSuccess = SyserCFlag(); if(ErrorAddress) *ErrorAddress=pStr; return bSuccess; } BYTE* MemSearch(BYTE* SourceAddrss,DWORD SourceLen,BYTE *DestinationAddress,DWORD DestinationLen,bool* Success) { bool bSuccess=true; BYTE * pStr; pStr = SyserPrivateMemSearch(SourceAddrss,SourceLen,DestinationAddress,DestinationLen); bSuccess = SyserCFlag(); if(Success) *Success=bSuccess; return pStr; } // // /* // SourceAddrss [esp+0x10] // SourceLen [esp+0x14] // DestinationAddress [esp+0x1c] // DestinationLen [esp+0x20] // */ // __declspec(naked)BYTE* __stdcall PrivateMemSearch(BYTE* SourceAddrss,DWORD SourceLen,BYTE *DestinationAddress,DWORD DestinationLen) // { // #define ARG_SourceAddrss 0x18 // #define ARG_SourceLen ARG_SourceAddrss+4 // #define ARG_DestinationAddress ARG_SourceAddrss+8 // #define ARG_DestinationLen ARG_SourceAddrss+12 // __asm // { // push edi // push esi // push ecx // push edx // push ebx // cld // mov ecx,[esp+ARG_SourceLen] // jecxz local_002 // cmp ecx,[esp+ARG_DestinationLen] // jnb local_001 // local_006: // mov eax,0 // jmp local_002 // local_001: // sub ecx,[esp+ARG_DestinationLen] // inc ecx // mov edi,[esp+ARG_SourceAddrss] // local_008: // mov esi,[esp+ARG_DestinationAddress] // mov al,[esi] // repne scasb // jnz local_002 // mov ebx,ecx // mov edx,edi // mov ecx,[esp+ARG_DestinationLen] // lea edi,[edi-1] // repz cmpsb // jz local_009 // mov ecx,ebx // jecxz local_006 // mov edi,edx // jmp local_008 // local_009: // mov eax,edx // lea eax,[eax-1] // jmp local_005 // local_002: // mov eax,0 // local_005: // pop ebx // pop edx // pop ecx // pop esi // pop edi // clc // ret 0x10 // } // } // // __declspec(naked)void __stdcall PrivateMemorySearchError() // { // __asm{ // mov eax,edi // pop ebx // pop edx // pop ecx // pop esi // pop edi // stc // ret 0x10 // } // } // // __declspec(naked)int __stdcall PrivatePagePresent(BYTE* Address,DWORD Len) // { // __asm // { // push esi // push ecx // cld // mov esi,[esp+0x0c] // mov ecx,[esp+0x10] // jecxz local_002 // shr ecx,2 // jecxz local_001 // lodsd // local_001: // mov ecx,[esp+0x10] // and ecx,3 // jecxz local_002 // lodsb // local_002: // mov eax,1 // pop ecx // pop esi // clc // ret 8 // } // } // __declspec(naked)int __stdcall PrivatePageNotPresent() // { // __asm // { // pop ecx // pop esi // mov eax,0 // stc // ret 8 // } // } bool SafeMemCmp(BYTE* SourceAddress,BYTE* DestAddress,DWORD Len,DWORD* ReturnLen) { bool bSuccess=true; DWORD RetValue; RetValue = SyserPrivateMemCmp(SourceAddress,DestAddress,Len); bSuccess = SyserCFlag(); if(ReturnLen) *ReturnLen=RetValue-*(DWORD*)&SourceAddress; return bSuccess; } // __declspec(naked)DWORD __stdcall PrivateMemCmp(BYTE* SourceAddr,BYTE* DestAddr,DWORD Len) // { // __asm // { // push edi // push esi // push ecx // mov esi,[esp+0x10] // mov edi,[esp+0x14] // mov ecx,[esp+0x18] // jecxz local_002 // cld // repz cmpsb // jz local_002 // lea esi,[esi-1] // local_002: // mov eax,esi // pop ecx // pop esi // pop edi // clc // ret 0xc // } // } // __declspec(naked)DWORD __stdcall PrivateMemCmpError() // { // __asm // { // mov eax,esi // pop ecx // pop esi // pop edi // stc // ret 0xc // } // } bool SafeVideoMemCopy(BYTE* DestAddress,BYTE* SourceAddress,DWORD Len) { bool bSuccess=true; SyserVideoMemCopy(DestAddress,SourceAddress,Len); bSuccess = SyserCFlag(); return bSuccess; } int SafeMemCopy(BYTE* DestAddress,BYTE* SourceAddress,DWORD Len) { bool bSuccess=true; DWORD dwDest; DWORD dwDestLen,dwSourceLen; DWORD dwSource; DWORD dwLen; DWORD i; BYTE byteValue; SyserPrivateMemCopy(DestAddress,SourceAddress,Len); bSuccess = SyserCFlag(); if(bSuccess) return Len; dwDest = *(DWORD*)&DestAddress; dwLen = dwDest&0xfff; dwLen+=Len; dwDest=dwDest & 0xfffff000; dwDestLen=Len; for(i=0;iKeyEvent.KeyType == WISP_VK_LBUTTON && (m_Style&WISP_WMS_POPUP)==0 && pMsg->MsgMouseWndPT.x>m_WndMenuItemWidth) { if(pMsg->KeyEvent.bKeyDown) { m_pWispBase->BeginMoveWnd(); } } return true; } void CSyser::SyserWaitThread(void*) { do { KeWaitForSingleObject(&gpSyser->m_WaitEvent, Executive, KernelMode,0,0); KeResetEvent(&gpSyser->m_WaitEvent); for(CSyserDumpList::IT Iter = gpSyser->m_DumpList.Begin();Iter!=gpSyser->m_DumpList.End();Iter++) { if(gpFileIO->WriteToFile(Iter->DumpFileName,Iter->DumpData,Iter->DumpSize)) { ::DbgPrint("Syser : %d Byte(s) dump to %s\n",Iter->DumpSize,(PCSTR)Iter->DumpFileName); } else { ::DbgPrint("Syser : Fait to dump data to %s\n",(PCSTR)Iter->DumpFileName); } gpUserHeap[SYSER_MAIN_HEAP]->Free(Iter->DumpData); Iter->DumpData = NULL; Iter->DumpSize = 0; } gpSyser->m_DumpList.Clear(); }while(gpSyser->m_bWaitThread); PsTerminateSystemThread(STATUS_SUCCESS); } void CSyser::StartSyserWaitThread() { HANDLE hThread; KeInitializeEvent(&m_WaitEvent,NotificationEvent,FALSE); m_bWaitThread = true; PsCreateSystemThread(&hThread,THREAD_ALL_ACCESS,0,0,0,SyserWaitThread,0); m_ThreadPointer = NULL; ObReferenceObjectByHandle(hThread,THREAD_ALL_ACCESS,NULL,KernelMode,&m_ThreadPointer,NULL); ZwClose(hThread); } void CSyser::StopSyserWaitThread() { if(m_ThreadPointer) { m_bWaitThread = false; KeSetEvent(&m_WaitEvent,0,FALSE); KeWaitForSingleObject(m_ThreadPointer,Executive,KernelMode,FALSE,NULL); ObDereferenceObject(gpSyser->m_ThreadPointer); } } CSyser::CSyser() { m_OSHwndRoot=0; m_ThreadPointer = NULL; m_CriticalEFlag = 0; gpSyserPluginUI = &m_SyserUI; m_pOrgProcess = m_pSysDebugger = m_pDebugger = NULL; m_OSMajorVersion=0; m_OSMinorVersion=0; m_OSBuildNumber=0; m_VideoBufBackup=NULL; m_bUpdateReg=false; m_bScrBackup=true; m_bUserScrBackuped = false; m_bHandle=false; m_bSaveReg=false; m_bPatchCopyOnWrite = false; m_bCopyOnWriteFastCall = false; m_bShowSplash = false; //m_RtlGetCurrentDirectory_U = NULL; gpStackBuffer = NULL; m_bHardDriverSuccess=m_bHookSuccess=false; gpFileIO = &m_FileIO; m_bFaultsStat=(SyserOption.ifaults!=0); m_bInterrupt1HereStat = (SyserOption.i1here!=0); m_Interrupt3HereStat = SyserOption.i3here; m_bDbgRegAccessMon=false; m_OSVer = GetOSVer(&m_OSMajorVersion,&m_OSMinorVersion,&m_OSBuildNumber); ::DbgPrint("Syser : OSVersion Major %d Minor %d Build %d\n",m_OSMajorVersion,m_OSMinorVersion,m_OSBuildNumber); m_bInitSuccess = false; m_bMovingFrame = false; m_pSyserConnect = NULL; STZeroMemory(m_RealFrameBuffer); PDEVICE_OBJECT DeviceObject; PFILE_OBJECT FileObject; UNICODE_STRING UnicodeName; gpSysBootDevEx = NULL; RtlInitUnicodeString(&UnicodeName,WSTR("\\Device\\SyserBoot")); if(NT_SUCCESS(IoGetDeviceObjectPointer(&UnicodeName,FILE_READ_DATA,&FileObject,&DeviceObject))) { ObDereferenceObject(FileObject); gpSysBootDevEx = (SYSER_BOOT_DEVICE_EXTENSION*)DeviceObject->DeviceExtension; } ::DbgPrint("Syser : Find SyserBoot DevEx = %08X\n",gpSysBootDevEx); gpSysLangDevEx = NULL; RtlInitUnicodeString(&UnicodeName,WSTR("\\Device\\SyserLanguage")); if(NT_SUCCESS(IoGetDeviceObjectPointer(&UnicodeName,FILE_READ_DATA,&FileObject,&DeviceObject))) { ObDereferenceObject(FileObject); gpSysLangDevEx = (SYSER_LANGUAGE_DEVICE_EXTENSION*)DeviceObject->DeviceExtension; } ::DbgPrint("Syser : Find SysLang DevEx = %08X\n",gpSysLangDevEx); RtlInitUnicodeString(&UnicodeName,WSTR("PsRemoveLoadImageNotifyRoutine")); (PVOID&)m_PsRemoveLoadImageNotifyRoutine=MmGetSystemRoutineAddress(&UnicodeName); KeInitializeSpinLock(&m_NotifyLock); } void CSyser::ShowSplash() { m_bShowSplash = false; if(m_FrameBuffer.Buffer==NULL || m_RealFrameBuffer.Buffer == NULL || SyserOption.iShowStartSplash == 0) return; for(int Off = 0;Offm_RealFrameBuffer.Buffer = NULL; return; } } m_OldStyle = m_MainFrame.m_Style; m_MainFrame.m_Style = WISP_WS_NULL; m_OldFrameSize.cx = m_MainFrame.m_WindowRect.cx; m_OldFrameSize.cy = m_MainFrame.m_WindowRect.cy; m_MainFrame.m_MainTabWnd.Show(WISP_SH_HIDDEN); m_MainFrame.m_CloseBT.Show(WISP_SH_HIDDEN); m_MainFrame.LoadBKDIB("\\SyserApp\\syser.bmp"); m_MainFrame.Resize(m_MainFrame.m_pBKDIB->Width(),m_MainFrame.m_pBKDIB->Height()); CenterScreen(); BackupScreen(); m_MainFrame.Update(); UpdateFrameBuffer(); m_bShowSplash=true; } void CSyser::HideSplash() { if(m_bShowSplash==false || m_FrameBuffer.Buffer==NULL || m_RealFrameBuffer.Buffer == NULL || SyserOption.iShowStartSplash == 0) return; RestoreScreen(); m_MainFrame.m_Style = m_OldStyle; m_MainFrame.DetachBKDIB(); m_DIBLib.ReleaseDIB("\\SyserApp\\syser.bmp"); m_MainFrame.m_MainTabWnd.Show(); m_MainFrame.m_CloseBT.Show(); m_MainFrame.Resize(m_OldFrameSize.cx,m_OldFrameSize.cy); CenterScreen(); m_MainFrame.Update(); } bool CSyser::SetClipboardString(PCSTR String) { m_ClipboardString.Preallocate(TStrLen(String)+1); m_ClipboardString.m_Length = SyserAnsiToUnicode(String,m_ClipboardString.m_pData,m_ClipboardString.m_MaxLength); return true; } void CSyser::OnMouseMove(IN int DeltaX,IN int DeltaY) { DeltaY = DeltaY*SyserOption.iMouseSensitivity/10; DeltaX = DeltaX*SyserOption.iMouseSensitivity/10; CWispBase::OnMouseMove(DeltaX,DeltaY); } bool CSyser::Init() { KeInitializeEvent(&m_ImageLoadSyncEvent, SynchronizationEvent, TRUE); if(gpSysBootDevEx==NULL) { ::DbgPrint("***************************************************\n"); ::DbgPrint("Syser : SysBoot.sys isn't actived ! Please reboot !\n"); ::DbgPrint("***************************************************\n"); return false; } if(gpSysBootDevEx) { if(gpSysBootDevEx->cbSize!=sizeof(SYSER_BOOT_DEVICE_EXTENSION) || gpSysBootDevEx->Version!=SYSER_BOOT_VER) { ::DbgPrint("***************************************************************\n"); ::DbgPrint("Syser : Detected previous version SysBoot.sys ! Please reboot !\n"); ::DbgPrint("***************************************************************\n"); return false; } if(gpSysBootDevEx->bCanceled) { gpSysBootDevEx->bCanceled = false; ::DbgPrint("Syser : User canceled!\n"); return false; } } m_bInitSuccess = false; if(InitFileIO()==false) { ::DbgPrint("Syser : InitFileIO error!\n"); return false; } #ifndef __DEMO__VERSION__ SERIALNAME* gStr= GetSerialNumber(); for(int i=0;i<28;i++) { m_GSnMap.InsertUnique(gStr[i].MulVal,gStr[i].Name); } #endif dwgErrorCode=9; m_SyserUI.LoadAPIDefine(); dwgErrorCode=901; m_pszDiskList = "Wisp.dat;Syser.dat"; m_DefaultFontType = SyserOption.iBigFont?WISP_FONT_8X16:WISP_FONT_6X12; if(CWispBase::Init()==false) { ::DbgPrint("Syser : CWispBase::Init() error!\n"); return false; } dwgErrorCode=10; InitHotKeyInfo(); m_OrgWindowWidth = SyserOption.iStartWndWidth; m_OrgWindowHeight = SyserOption.iStartWndHeight; MAX_LIMIT(m_OrgWindowWidth,SyserOption.iMaxWndWidth); MAX_LIMIT(m_OrgWindowHeight,SyserOption.iMaxWndHeight); MAX_LIMIT(m_OrgWindowWidth,2048); MAX_LIMIT(m_OrgWindowHeight,2048); dwgErrorCode=110; if(CreateFrame(WSTR("Syser Kernel Debugger"),m_OrgWindowWidth,m_OrgWindowHeight,0)==false) { ::DbgPrint("Syser : CreateFrame() error!\n"); return false; } dwgErrorCode=11; if(gpSyser->m_SysInfo.m_bSNPass==false && gpSyser->m_SysInfo.m_bEvlVer==false) { ::DbgPrint("***************************************************\n"); ::DbgPrint("Syser : %ws\n",(PCWSTR)gpSyser->m_SysInfo.m_LicTip); ::DbgPrint("***************************************************\n"); return false; } switch(SyserOption.iVideoDetectMode) { case SYSER_VDM_AUTO: ::DbgPrint("Syser : Detect Video mode -> Auto\n"); break; case SYSER_VDM_USER: ::DbgPrint("Syser : Detect Video mode -> User Mode\n"); break; case SYSER_VDM_KERNEL: ::DbgPrint("Syser : Detect Video mode -> Kernel Mode\n"); break; default: ::DbgPrint("Syser : Detect Video mode -> Error Mode\n"); break; } if(SyserOption.iVideoDetectMode!= SYSER_VDM_USER && InstallDdrawHook()==false) return false; dwgErrorCode=12; if(m_PCSystem.Init()==false) { ::DbgPrint("Syser : m_PCSystem.Init() error!\n"); return false; } dwgErrorCode=113; ShowSplash(); dwgErrorCode=13; if(m_SysInfo.Init()==false) { HideSplash(); ::DbgPrint("Syser : m_SysInfo.Init() error!\n"); return false; } m_SyserUI.LoadComment(); ////////////////////////////////////////////////////////////// // ʼ Syser ջ ////////////////////////////////////////////////////////////// MAX_LIMIT(SyserOption.iStackSizeK,4096); MIN_LIMIT(SyserOption.iStackSizeK,512); gpStackBuffer = new BYTE[SyserOption.iStackSizeK*1024]; dwgErrorCode=14; if(gpStackBuffer==NULL) { HideSplash(); ::DbgPrint("Syser : new %dk StackBuffer error!\n",SyserOption.iStackSizeK); return false; } ZeroMemory(gpStackBuffer,SyserOption.iStackSizeK*1024); gpStackBufferTop = &gpStackBuffer[SyserOption.iStackSizeK*1024]; gpStackBufferTop = (BYTE*)(((DWORD)gpStackBufferTop) & 0xFFFFFFF0); ////////////////////////////////////////////////////////////// m_bSaveReg=false; dwgErrorCode=15; if(InstallDebug()==false) { HideSplash(); ::DbgPrint("Syser : InstallDebug() error!\n"); return false; } LoadPlugin(); m_bInitSuccess = true; m_MainFrame.m_ConsoleWnd.RunModulePathBat("Syser.cmd","-s"); HideSplash(); dwgErrorCode=16; m_SysInfo.LoadSDSList(); if(m_SysInfo.m_bSNPass || m_SysInfo.m_bEvlVer) { OUTPUT(WSTR("%%s\n"),(PCWSTR)m_SysInfo.m_LicTip); SYSEXPLR_OUTPUT(WSTR("%%s\n"),(PCWSTR)m_SysInfo.m_LicTip); } StartSyserWaitThread(); dwgErrorCode=17; ::DbgPrint("Syser : Version %s Build Date %s!\n",VER_PRODUCTVERSION_STR,__DATE__); ::DbgPrint("Syser : Load Success ! You can press \"CTRL+F12\" to active Syser !\n"); return true; } void CSyser::InitRemoteConnect() { m_pSyserConnect = NULL; switch(SyserOption.iConnectType) { case SYSER_NO_CONNECT: break; case SYSER_SERIAL_PORT_CONNECT: if(m_SerialPortConnect.Init()) m_pSyserConnect = &m_SerialPortConnect; break; default: OUTPUT(WSTR("Syser : Unknow Connect Type\n")); break; } if(m_pSyserConnect) m_SDServer.Init(m_pSyserConnect); } void CSyser::ReleaseRemoteConnect() { if(m_pSyserConnect) { m_SDServer.Release(); m_pSyserConnect->Release(); } } void CSyser::Release() { KeSetEvent(&m_ImageLoadSyncEvent,0,FALSE); gpSyser->m_pDebugger = gpSyser->m_pSysDebugger; StopSyserWaitThread(); UnloadPlugin(); ReleaseBreakPoint(); m_SysInfo.Release(); m_PCSystem.Release(); RemoveDdrawHook(); UninstallDebug();//עϵҪж13֮ǰж CWispBase::Release(); DestroyFrame(); SafeDelete(gpStackBuffer); ::DbgPrint("Syser : Unload Success!\n"); } int CSyser::LoadPlugin() { char szPlugin[MAX_FN_LEN]; TStrCpy(szPlugin,m_szImagePath); TStrCat(szPlugin,"Plugin\\i386\\*"); return gpFileIO->XScan(szPlugin,XScanPlugin,NULL,true); } extern "C" { NTSYSAPI NTSTATUS NTAPI ZwLoadDriver(IN PUNICODE_STRING DriverServiceName); NTSYSAPI NTSTATUS NTAPI ZwUnloadDriver(IN PUNICODE_STRING DriverServiceName); } XSCAN_RES CSyser::XScanPlugin(CFileIO*pFileIO,PCSTR FullPathFileName,ULSIZE FileSize,void*CBParem) { PSTR FileName; WCHAR *WFileName; DWORD Len; char RegString[] = "\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"; PUNICODE_STRING pRegistryServiceName; FileName = TGetFileName(FullPathFileName); Len = TStrLen(FileName); if(Len<=4) return XSCAN_RES_CONTINUE; if(TStrICmp(&FileName[Len-4],".sys")) return XSCAN_RES_CONTINUE; pRegistryServiceName =(PUNICODE_STRING) new char[(TStrLen(RegString)+Len)*sizeof(WCHAR)+sizeof(UNICODE_STRING)]; WFileName=(WCHAR*)&pRegistryServiceName[1]; TStrCpy(WFileName,RegString); TStrCat(WFileName,FileName); Len=TStrLen(WFileName); WFileName[Len-4]=0; RtlInitUnicodeString(pRegistryServiceName,WFileName); RegisterPluginService(pRegistryServiceName,FullPathFileName); ZwLoadDriver(pRegistryServiceName); return XSCAN_RES_CONTINUE; } bool CSyser::RegisterPluginService(PUNICODE_STRING ServiceName,PCSTR DriverFileFullName) { NTSTATUS Status; WCHAR* wszImagePath=NULL; HANDLE KeyHandle; DWORD DataSize; ACCESS_MASK AccessMask=KEY_ALL_ACCESS; OBJECT_ATTRIBUTES ObjectAttributs; ULONG TitleIndex=0; WCHAR DisplayNameValue[]=L"DisplayName"; WCHAR TypeValue[]=L"Type"; WCHAR ErrorControlValue[]=L"ErrorControl"; WCHAR StartValue[]=L"Start"; WCHAR ImagePathValue[]=L"ImagePath"; WCHAR* TempName; UNICODE_STRING ValueName; PUNICODE_STRING pClass=NULL; DWORD dwValue; ULONG CreateOptions=REG_OPTION_NON_VOLATILE,Disposition; InitializeObjectAttributes(&ObjectAttributs,ServiceName,OBJ_CASE_INSENSITIVE,NULL,NULL); Status = ZwCreateKey(&KeyHandle,AccessMask,&ObjectAttributs,TitleIndex,pClass,CreateOptions,&Disposition); if(Status) return false; DataSize=TStrLen(DriverFileFullName)+1; wszImagePath=new WCHAR[DataSize]; if(wszImagePath==NULL)goto ErrorQuit; TStrCpy(wszImagePath,DriverFileFullName); RtlInitUnicodeString(&ValueName,ImagePathValue); Status = ZwSetValueKey(KeyHandle,&ValueName,TitleIndex,REG_EXPAND_SZ,wszImagePath,sizeof(WCHAR)*DataSize); if(Status) { delete []wszImagePath; goto ErrorQuit; } TempName = TGetFileName(wszImagePath); DataSize = TStrLen(TempName)+1; RtlInitUnicodeString(&ValueName,DisplayNameValue); Status = ZwSetValueKey(KeyHandle,&ValueName,TitleIndex,REG_SZ,TempName,sizeof(WCHAR)*DataSize); delete []wszImagePath; if(Status)goto ErrorQuit; RtlInitUnicodeString(&ValueName,TypeValue); dwValue=1; Status = ZwSetValueKey(KeyHandle,&ValueName,TitleIndex,REG_DWORD,&dwValue,sizeof DWORD); if(Status)goto ErrorQuit; RtlInitUnicodeString(&ValueName,StartValue); dwValue=3; Status = ZwSetValueKey(KeyHandle,&ValueName,TitleIndex,REG_DWORD,&dwValue,sizeof DWORD); if(Status)goto ErrorQuit; RtlInitUnicodeString(&ValueName,ErrorControlValue); dwValue=1; Status = ZwSetValueKey(KeyHandle,&ValueName,TitleIndex,REG_DWORD,&dwValue,sizeof DWORD); if(Status==0) return true; ErrorQuit: ZwClose(KeyHandle); return false; } void CSyser::UnloadPlugin() { UNICODE_STRING ServiceName; WCHAR szName[MAX_LONG_NAME_LEN],*pszService; pszService = szName+TStrCpy(szName,"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\"); for(CPluginMap::IT Iter=m_PluginMap.Begin();Iter.IsExist();Iter++) { TStrCpy(pszService,(PCWSTR)Iter.Key()); RtlInitUnicodeString(&ServiceName,szName); ZwUnloadDriver(&ServiceName); } } void CSyser::ReleaseBreakPoint() { if(m_pSysDebugger==NULL) return; if(m_bDbgRegAccessMon) {//ϵͳǵӲϵ ::DbgPrint("Syser : Clear Hardware Breakpoint\n"); ZeroMemory(SyserDR,sizeof(SyserDR)); SyserDisableDebugRegisterMontior(); m_bDbgRegAccessMon = false; SyserSaveSyserDRX(); UpdateOtherCPUDRX(); SyserStopOtherCPUs(); SyserStartOtherCPUs(); } } bool CSyser::InitFileIO() { UNICODE_STRING UniImagePath; RTL_QUERY_REGISTRY_TABLE RegTable[2]; ZeroMemory(RegTable,sizeof(RegTable)); ZeroMemory(m_szImagePath,sizeof(m_szImagePath)); UniImagePath.Length=0; UniImagePath.MaximumLength=sizeof(m_szImagePath); UniImagePath.Buffer=m_szImagePath; RegTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT | RTL_QUERY_REGISTRY_REQUIRED; RegTable[0].Name = WSTR("ImagePath"); RegTable[0].EntryContext = &UniImagePath; if(!NT_SUCCESS(RtlQueryRegistryValues(RTL_REGISTRY_SERVICES,WSTR("Syser"),RegTable,NULL,NULL))) return false; PWSTR pStr=TStrRChr(m_szImagePath,(WCHAR)'\\'); if(pStr) *pStr=0; if(TStrICmp(m_szImagePath,WSTR("system32\\drivers"))==0) { TStrCpy(m_szImagePath,m_SysInfo.m_szSystem32Drivers); } m_FileIO.SetCurDir(m_szImagePath); gpFileIO = &m_FileIO; return true; } bool CSyser::CreateFrame(WISP_CHAR*WndName,int Width,int Height,int Bpp) { SwitchHeap(SYSER_SCREEN_HEAP); m_FrameBuffer.Width = Width; m_FrameBuffer.Height = Height; m_FrameBuffer.Bpp = 32; m_FrameBuffer.PixelFormat = 0; m_FrameBuffer.LineDistance = m_FrameBuffer.Width*sizeof(COLORREF); m_FrameBuffer.Flag = 0; m_FrameBuffer.BufferSize = SyserOption.iMaxWndWidth*SyserOption.iMaxWndHeight*sizeof(COLORREF); m_FrameBuffer.Buffer = new BYTE[m_FrameBuffer.BufferSize]; m_VideoBufBackup = new BYTE[m_FrameBuffer.BufferSize]; SwitchHeap(SYSER_MAIN_HEAP); m_RootPos.x = CENTER_ALGN(Width,m_RealFrameBuffer.Width); m_RootPos.y = CENTER_ALGN(Height,m_RealFrameBuffer.Height); STZeroMemory(m_FrameRect); if(m_MainFrame.Create(WndName,0,0,Width,Height,NULL,0,WISP_WS_BORDER)==false) return false; m_MainFrame.m_pWispBase->SetKeyboardLayer(SyserOption.iKeyboardLayer); return true; } bool CSyser::ResizeHostFrame(int Width,int Height) { return true; } bool CSyser::ResizingFrame(int Width,int Height) { if(Width > SyserOption.iMaxWndWidth || Height > SyserOption.iMaxWndHeight) return false; m_FrameBuffer.Width = Width; m_FrameBuffer.Height = Height; return true; } void CSyser::DestroyFrame() { SafeDelete(m_FrameBuffer.Buffer); SafeDelete(m_VideoBufBackup); } void CSyser::RestoreMovingFrame() { for(int n=0;nDrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x+n,m_FrameRect.y,WISP_RGB(255,255,255)); m_RealFrameBuffer.pDrawHAL->DrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x+n,m_FrameRect.y+m_FrameRect.cy-1,WISP_RGB(255,255,255)); } for(int n=0;nDrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x,m_FrameRect.y+n,WISP_RGB(255,255,255)); m_RealFrameBuffer.pDrawHAL->DrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x+m_FrameRect.cx-1,m_FrameRect.y+n,WISP_RGB(255,255,255)); } } void CSyser::DrawMovingFrame() { for(int n=0;nDrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x+n,m_FrameRect.y,WISP_RGB(255,255,255)); m_RealFrameBuffer.pDrawHAL->DrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x+n,m_FrameRect.y+m_FrameRect.cy-1,WISP_RGB(255,255,255)); } for(int n=0;nDrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x,m_FrameRect.y+n,WISP_RGB(255,255,255)); m_RealFrameBuffer.pDrawHAL->DrawXorPixel(&m_RealFrameBuffer,m_FrameRect.x+m_FrameRect.cx-1,m_FrameRect.y+n,WISP_RGB(255,255,255)); } } bool CSyser::MoveFrame(int dx,int dy) { WISP_RECT Rect; m_RootPos.x+=dx; m_RootPos.y+=dy; Rect.x=Rect.y=0; Rect.cx=m_RealFrameBuffer.Width; Rect.cy=m_RealFrameBuffer.Height; RestoreMovingFrame(); m_FrameRect.x = m_RootPos.x; m_FrameRect.y = m_RootPos.y; m_FrameRect.cx = m_pRootWnd->m_WindowRect.cx; m_FrameRect.cy = m_pRootWnd->m_WindowRect.cy; if(ClipRect(&m_FrameRect,&Rect)==false) return false; DrawMovingFrame(); return true; } bool CSyser::WakeUpMsgThread() { m_bMsgSleeping = false; return true; } void CSyser::IdleEvent() { ULONGLONG CurTSC,ms,Sub; ms=0; CurTSC=SyserGetTSC(); Sub = CurTSC-gPrevTSC; ms = Sub/gTSCTickCount; if(ms>20) { gPrevTSC=CurTSC; OnTimer(*(int*)&ms); } m_PCSystem.USBDeviceService(); } bool CSyser::SleepMsgThread() { if(gpSyserCfg->m_SupportTimerInterrupt) { // __asm // { // sti // hlt // } SyserSti(); SyserHlt(); } else { while(m_InputMsgQueue.Count()==0) { IdleEvent(); } } return true; } void CSyser::EnterCriticalSection() { if(!gInVirtualPC) SyserCloseInterrupt(); } void CSyser::LeaveCriticalSection() { if(!gInVirtualPC) SyserOpenInterrupt(); } void CSyser::ResetInputState() { ZeroMemory(m_KeyMap,sizeof(m_KeyMap)); ZeroMemory(m_LockMap,sizeof(m_LockMap)); dwWaitMouseInterrupt = 0; dwMouseBeginBufferIndex = 0; stKeyGlobalVariable.dwMouseDataIndex=0; gLButtonDblClkSecond=false; gRButtonDblClkSecond=false; gMButtonDblClkSecond=false; m_RepKeyIndex=WISP_VK_NULL; m_RepKeyElapse = 0; m_RepKeyPeriod = 0; } void CSyser::Active() { if(m_pDebugger==NULL || gbActive || m_RealFrameBuffer.Buffer == NULL) { if(m_RealFrameBuffer.Buffer==NULL) { ::DbgPrint("************************************************************\n"); ::DbgPrint("Syser : Fail to attach System Video Frame Buffer !\n"); if(gInVMWARE) ::DbgPrint("Syser : Please Install VMWare Tools !\n"); if(gInVirtualPC) ::DbgPrint("Syser : Please Install or Update Virtual Machine Additions !\n"); ::DbgPrint("************************************************************\n"); } return; } m_pOrgProcess = m_pDebugger; //ԭʼ SyserClrCR0WP(); SyserDisableHardwaveBreakpoint(); ActiveHookInt0e(true); ClearBPR(); gpSyser->m_SyserUI.m_SyserDI.ResetTrace(); gpSyser->m_pDebugger->RemoveAllCodeBP(BP_TYPE_DEBUG); m_MainFrame.Update(); m_pDebugger->UpdateRegister(); gbActive=true; gpSyser->m_SyserUI.m_SyserDI.OnDebugPlunge(0); ResetInputState(); MouseInterruptCount=0; stKeyGlobalVariable.dwMouseDataIndex=0; m_bExit=false; SyserDisableAllHardInterrupt(); EnableHardWareInterrupt(1); //ж EnableLocalAPICInterrupt(); if(gHasPS2Mouse) EnableHardWareInterrupt(0x0C); //ж SetInteruptEOI(1); //ӲжϽ־ if(gpSyserCfg->m_SupportTimerInterrupt) { InstallTimeInterrupt(); if(gbIsUseAPIC) EnableHardWareInterrupt(IOAPIC_TIMER_INTERRUPT_NUM); //ʱж else EnableHardWareInterrupt(0x08); //ʱж } #if SUPPORT_COM_INTERRUPT EnableHardWareInterrupt(0x03); EnableHardWareInterrupt(0x04); #endif // __asm // { // nop // nop // push eax // in al,0x64 // test al,1 // jz local_0098 // push eax // in al,0x60 // pop eax // local_0098: // test al,0xe0 // jz local_0099 // test al,2 // jnz local_0099 // mov al,0xff // out 0x60,al // nop // nop // local_0099: // pop eax // } BYTE value = 0; value = SyserReadPortByte(0x64); if(!(value&1)) { SyserReadPortByte(0x60); } if (!(value&0xe0)) { if (value&2) { SyserWritePortByte(0x60,0xff); } } if(gpSyserCfg->m_DisableUSBInput == 0 && gInVMWARE==false && gInVirtualPC==false) m_PCSystem.AttachUSBDevice(); if(m_bScrBackup) BackupScreen(); SyserOpenInterrupt(); //ж if(gpSyser->m_SysInfo.m_bEvlVer==false && gpSyser->m_SysInfo.m_bSNPass==false) { OUTPUT(WSTR("%<3>%s\n"),(PCWSTR)m_SysInfo.m_LicTip); SYSEXPLR_OUTPUT(WSTR("%<3>%s\n"),(PCWSTR)m_SysInfo.m_LicTip); } Pump(); SyserCloseInterrupt(); if(gpSyserCfg->m_DisableUSBInput == 0 && gInVMWARE==false && gInVirtualPC==false) m_PCSystem.DetachUSBDevice(); if(m_bScrBackup) { RestoreScreen(); } if(gpSyserCfg->m_SupportTimerInterrupt) UninstallTimeInterrupt(); if(m_pOrgProcess!=gpSyser->m_pDebugger)//ָԭʼ gpSyser->MapToProcess(m_pOrgProcess); SetBPR(); ActiveHookInt0e(false); EnableHardwaveBreakpoint(); SyserRestoreCR0(); } void CSyser::Exit(bool bRestoreScr) { if(gbSystemCrash) { RUNCMD(WSTR("hboot")); } m_bScrBackup=bRestoreScr; m_bExit=true; if(m_bSaveReg) PrevReg=Reg; gpSyser->m_MainFrame.m_SystemExplorer.m_TracePrevReg=Reg; SAVE_MEMORY_VIEW(); } void CSyser::ClearInputState() { dwMouseBeginBufferIndex = 0; } void CSyser::BackupScreen() { int SrcDelta,DesDelta; BYTE*pSrc,*pDes,*pDes2; WISP_RECT ScrRect; if(m_RealFrameBuffer.Buffer == NULL || gpSyserCfg->m_DisableDisplay) return; ScrRect.x=ScrRect.y=0; ScrRect.cx=m_RealFrameBuffer.Width; ScrRect.cy=m_RealFrameBuffer.Height; m_BackupFrameRect.x = m_RootPos.x; m_BackupFrameRect.y = m_RootPos.y; m_BackupFrameRect.cx = m_FrameBuffer.Width; m_BackupFrameRect.cy = m_FrameBuffer.Height; if(ClipRect(&m_BackupFrameRect,&ScrRect)==false) { m_BackupFrameRect.cx = 0; m_BackupFrameRect.cy = 0; return; } pSrc = RT_PBYTE(m_RealFrameBuffer.Buffer,(m_BackupFrameRect.x*m_RealFrameBuffer.Bpp)/8+m_BackupFrameRect.y*m_RealFrameBuffer.LineDistance); SrcDelta = m_RealFrameBuffer.LineDistance; pDes = m_VideoBufBackup; DesDelta = (m_BackupFrameRect.cx*m_RealFrameBuffer.Bpp)/8; if(gbVideoBufferOK) { for(int y=0;ym_DisableDisplay) return; pDes = RT_PBYTE(m_RealFrameBuffer.Buffer,(m_BackupFrameRect.x*m_RealFrameBuffer.Bpp)/8+m_BackupFrameRect.y*m_RealFrameBuffer.LineDistance); DesDelta = m_RealFrameBuffer.LineDistance; pSrc = m_VideoBufBackup; SrcDelta = (m_BackupFrameRect.cx*m_RealFrameBuffer.Bpp)/8; if(gbVideoBufferOK) { for(int y=0;ym_DisableDisplay || m_RealFrameBuffer.Buffer==NULL) return; CopyToScreen(&m_RealFrameBuffer,&m_RootPos,pUpdateRect); m_bScrRestored = false; if(gInVMWARE) FlushVedioBuffer(0,0, m_RealFrameBuffer.Width,m_RealFrameBuffer.Height); else if(gInVirtualPC) FlushVirtualPCScreenBuffer(0,0,m_RealFrameBuffer.Width,m_RealFrameBuffer.Height); } ULSIZE CSyser::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size,CSyser*pThis) { return pThis->m_pDebugger->ReadMemory(Address,Buffer,Size); } bool CSyser::IntallHardDriver() { InstallAllInterrupt(); return true; } void CSyser::RemoveHardDriver() { UninstallAllInterrupt(); } bool CSyser::InstallHooks() { PsSetCreateProcessNotifyRoutine(CreateProcessHookProc,false); if(m_PsRemoveLoadImageNotifyRoutine) { PsSetLoadImageNotifyRoutine(LoadImageHookProc); } else if(gpSysBootDevEx && gpSysBootDevEx->cbSize==sizeof(SYSER_BOOT_DEVICE_EXTENSION)) gpSysBootDevEx->pfnLoadImageNotifyRoutine = LoadImageHookProc; SyserClrCR0WP(); if(m_SysInfo.m_HidP_TranslateUsageAndPagesToI8042ScanCodes) PATCH_SYSTEM("USB Hid Hook",m_SysInfo.m_HidP_TranslateUsageAndPagesToI8042ScanCodes,OnPatchTranslateUsageAndPagesToI8042ScanCodes); //if(m_SysInfo.m_MmUnmapViewOfSection) // PATCH_SYSTEM("MmUnmapViewOfSection Hook",m_SysInfo.m_MmUnmapViewOfSection,OnPatchMmUnmapViewOfSection); PatchKeBugCheckEx(); if(gpSyserCfg->m_DisableCopyOnWrite) ::DbgPrint("Syser : Disable MiCopyOnWrite Patch!\n"); else PatchMiCopyOnWrite(); SyserRestoreCR0(); if(gpSyser->m_bPatchCopyOnWrite==false) ::DbgPrint("Syser : ******* Fail to patch MiCopyOnWrite ******* !\n"); return true; } void CSyser::RemoveHooks() { PsSetCreateProcessNotifyRoutine(CreateProcessHookProc,true); if(m_PsRemoveLoadImageNotifyRoutine) m_PsRemoveLoadImageNotifyRoutine(LoadImageHookProc); else if(gpSysBootDevEx && gpSysBootDevEx->pfnLoadImageNotifyRoutine==LoadImageHookProc) gpSysBootDevEx->pfnLoadImageNotifyRoutine = NULL; } void CSyser::DbgPrint(int x,int y,IN WCHAR*Format,...) { WISP_RECT Rect; va_list Next; WCHAR szBuffer[0x200]; if(m_RealFrameBuffer.Buffer==NULL||gpSyserCfg->m_DisableDisplay) return; va_start(Next,Format); TVSPrintf(szBuffer,Format,Next); va_end(Next); Rect.x=Rect.y=0; Rect.cx=m_RealFrameBuffer.Width; Rect.cy=m_RealFrameBuffer.Height; CWispDC ScreenDC(&m_RealFrameBuffer,&Rect); ScreenDC.SetTextStyle(WISP_TEXT_OPAQUE); ScreenDC.SetTextBKColor(WISP_RGB(0,0,0)); ScreenDC.SetTextColor(WISP_RGB(255,255,0)); ScreenDC.DrawString(x,y,szBuffer); if(gInVMWARE) FlushVedioBuffer(x,y, m_RealFrameBuffer.Width,y+16); else if(gInVirtualPC) FlushVirtualPCScreenBuffer(x,y,m_RealFrameBuffer.Width,y+16); } bool CSyser::PumpCondition() { if(m_bExit) return false; if(stKeyGlobalVariable.dwFuncKeyState == FUNCKEYPRESS && m_KeyMap[WISP_VK_F12]) { m_bScrBackup=true; return false; } return true; } void CSyser::MapToProcess(CDbgProcess*pProcess) { SyserSetCR3Reg(pProcess->m_CR3); m_bUpdateReg = true; m_pDebugger = pProcess; } bool CSyser::InstallDebug() { VADDR32 IDTBaseAddress; DWORD dwIdtSize; DWORD dwCopySize; m_bDbgRegAccessMon = false; CheckSofticeExist(); InitBpintCmdEntryPointer(); ZeroMemory(gOldInterruptProcAddress,sizeof(gOldInterruptProcAddress)); ZeroMemory(gOldInterruptDescropterTable,sizeof(gOldInterruptDescropterTable)); IDTBaseAddress = SyserGetIDTBase(&dwIdtSize); dwCopySize = MIN(sizeof(gOldInterruptDescropterTable),(dwIdtSize+1)); memcpy(gOldInterruptDescropterTable,(const void *)IDTBaseAddress,sizeof(gOldInterruptDescropterTable)); for(DWORD i = 0;i< dwCopySize / sizeof(X86_GATE_DECR);i++) { gOldInterruptProcAddress[i]=MAKE_DWORD(gOldInterruptDescropterTable[i].OffsetHigh,gOldInterruptDescropterTable[i].OffsetLow); } m_bHardDriverSuccess=m_bHookSuccess=false; m_bHardDriverSuccess=IntallHardDriver(); if(m_bHardDriverSuccess==false) { ::DbgPrint("Syser : Fail to IntallHardDriver !\n"); return false; } m_bHookSuccess=InstallHooks(); if(m_bHookSuccess==false) { RemoveHardDriver(); ::DbgPrint("Syser : InstallHooks Error !\n"); return false; } return true; } bool CSyser::UninstallDebug() { if(m_bHardDriverSuccess) RemoveHardDriver(); if(m_bHookSuccess) RemoveHooks(); return true; } void CSyser::ReportMsg(IN const WISP_CHAR* Format,...) { WISP_RECT Rect; va_list Next; WCHAR szBuffer[0x200]; if(m_RealFrameBuffer.Buffer==NULL) return; va_start(Next,Format); TVSPrintf(szBuffer,Format,Next); va_end(Next); Rect.x=Rect.y=0; Rect.cx=m_RealFrameBuffer.Width; Rect.cy=m_RealFrameBuffer.Height; CWispDC ScreenDC(&m_RealFrameBuffer,&Rect); ScreenDC.SetTextStyle(WISP_TEXT_OPAQUE); ScreenDC.SetTextBKColor(WISP_RGB(0,0,0)); ScreenDC.SetTextColor(WISP_RGB(255,255,0)); ScreenDC.DrawString(0,0,szBuffer); //SYSEXPLR_OUTPUT(WSTR("%s\n"),szBuffer); } /* /////////////////////////////////////////////////////// // SwitchIDT // // Switch to each logical processor with Hyperthreading // and retrieve the base address of the relevant IDT /////////////////////////////////////////////////////// BOOL SwitchIDT () { /////////////////////////////////////////////////////// struct IDT_INFO { unsigned short wReserved; unsigned short wLimit; // size of table IDT_GATE* pIdt; // base address of table }; IDT_INFO IdtInfo = {0}; ULONG lpProcessAffinityMask = 0; ULONG lpSystemAffinityMask = 0; /////////////////////////////////////////////////////// // Affinity Info GetProcessAffinityMask( GetCurrentProcess(), // HANDLE hProcess, &lpProcessAffinityMask, // OUT PDWORD_PTR lpProcessAffinityMask, &lpSystemAffinityMask); // OUT PDWORD_PTR lpSystemAffinityMask // function obtains lpProcessAffinityMask value from EPROCESS.Affinity // function obtains lpSystemAffinityMask value from BaseStaticServerData // both are generally same value of 0x03 (binary mask 11) // with Hyperthreading enabled fprintf (stderr, "ProcessAffinityMask %x \n", lpProcessAffinityMask); fprintf (stderr, "SystemAffinityMask %x \n", lpSystemAffinityMask); /////////////////////////////////////////////////////// // Switch current thread to processor 1 SetProcessAffinityMask( GetCurrentProcess(), // HANDLE hProcess, 1); // DWORD_PTR dwProcessAffinityMask Sleep(0); // Give OS a chance to switch to the desired CPU // Read IDTR register __asm sidt IdtInfo.wLimit // Output current IDT base address fprintf (stderr, "CPU1 IDT Base %x \n", IdtInfo.pIdt); // Switch current thread to processor 2 if HT is enabled if (lpProcessAffinityMask != 1) { SetProcessAffinityMask( GetCurrentProcess(), // HANDLE hProcess, 2); // DWORD_PTR dwProcessAffinityMask Sleep(0); // Give OS a chance to switch to the desired CPU // Read IDTR register __asm sidt IdtInfo.wLimit // Output current IDT base address fprintf (stderr, "CPU2 IDT Base %x \n", IdtInfo.pIdt); } /////////////////////////////////////////////////////// return TRUE; } // Hi, First, you need to get the physical address of the APIC by using the RDMSR instruction to read the IA32_APIC_BASE_MSR value. After this, you can use the MmMapIoSpace function to map from this physical address to a virtual one. The standard physical address for the apic is 0xFEC00000. You can use "PHYS 0xFEC00000" in SoftICE to get the virtual address. The address 0xFFDFF120 is the _KPRCB structure. You can use WinDBG to see the whole structure. Or use the "types _KPRCB" in SoftICE. When you are using a MP/HT system, the two _KPRCB addresses are inside the KiProcessorBlock kernel variable. Code: lkd> dd KiProcessorBlock 8054b080 ffdff120 f7acf120 00000000 00000000 8054b090 00000000 00000000 00000000 00000000 8054b0a0 00000000 00000000 00000000 00000000 To get the PCR address of each processor is just simple: FIRST KPCR address = 0xFFDFF120 - 0x120 SECOND KPCR address = 0xF7ACF120 - 0x120 We can easily find the IDT address inside the KPCR structure. The problem is that the KiProcessorBlock is not exported Regards, Opc0de Oops, I'm wrong. You can use my little trick at http://www.rootkit.com/newsread.php?newsid=101 to get the KiProcessorBlock address. The KiProcessorBlock is exported by the KdVersionBlock structure as you can see here: http://www.rootkit.com/newsread.php?newsid=153 Regards, Opc0de http://boomerang.sourceforge.net/ */ #ifndef __DEMO__VERSION__ PSERIALNAME CSyser::GetSerialNumber() { return gSerialName; } bool CSyser::CheckSN(char* SerialNum,char* Name) { return true; // char Buf[9],ch1; // DWORD dwValue1,dwValue2,dwValue3,dwValue4; // int i,j; // char SnName[256]; // unsigned __int64 mx,mx1,mx2; // for(i=0;i<8;i++) // Buf[i]=SerialNum[i]; // Buf[i]=0; // SHexStrToNum(Buf,&dwValue1); // for(i=0;i<8;i++) // Buf[i]=SerialNum[i+8]; // Buf[i]=0; // SHexStrToNum(Buf,&dwValue2); // dwValue3=dwValue1-dwValue2; // dwValue4=dwValue1+dwValue2; // mx1=dwValue3; // mx2=dwValue4; // mx=mx1*mx2; // GSNMAP::IT FindIT=m_GSnMap.Find(mx); // if(FindIT!=m_GSnMap.End()) // { // for(int i=0;i='A'&&ch1<='Z') // ch1=ch1+('a'-'A'); // ch1 = ((ch1^(0x7a+i))+0x2a)&0xff; // SnName[j]=ch1; // } // SnName[j]=0; // if(memcmp((*FindIT).m_pData,SnName,(*FindIT).m_Length)==0) // { // if(mx==0x77753661edc73e5d || mx==0x07d32d3fcdbf572d||mx==0x01497eb46d08b395) // *Type=SN_ENTERPRISE; // else if(mx==0xc15dd19fc39daf05) // *Type=SN_STUDENT; // else // *Type=SN_PERSONAL; // return true; // } // } // } // return false; } SERIALNAME CSyser::gSerialName[28]={ {"\x32\x3f\x40\x46\x81\x48\x3d\x49\x38\x49\x32\x84\x3b\x40\x49\x3d\x3e\x00",0x4168ea9dc6497ee0}, /*0*/ /* "Rolf-Dieter Klein" ^0x7a+0x2a */ {"\x40\x47\x44\x46\x44\x3f\x65\x40\x3e\x3a\x3e\x3f\x48\x39\x7f\x42\x3e\x40\x00",0x2e7f9176e5e9ed50}, /*1*/ /* "mfagan@mokonet.com" ^0x7b+0x2a */ {"\x35\x47\x3a\x32\x43\x38\x86\x45\x2f\x45\x3a\x3f\x00",0x24a8a43bd4887d0}, /*2*/ /* "Walter Gygli" ^0x7c+0x2a */ {"\x41\x3c\x3f\x3d\x87\x3a\x48\x48\x46\x3d\x3d\x00",0x581c9ca398ef4820}, /*3*/ /* "John McCann" ^0x7d+0x2a */ {"\x37\x3b\x42\x34\x33\x41\x3a\x00",0x15a8386850c14168}, /*4*/ /* "SOFTWIN" ^0x7e+0x2a */ {"\x48\x46\x41\x44\x37\x34\x3b\x36\x00",0x289149745b1cf198}, /*5*/ /* "acheruns" ^0x7f+0x2a */ {"\x1d\x1e\x0f\x1a\x12\x0b\x18\xca\x1d\x13\x1e\x1e\x0b\x00",0x3d1ea311acedcf50}, /*6*/ /* "Stephan Sitta" ^0x80+0x2a */ {"\x14\x12\x16\xcb\x14\x22\x18\x1e\x19\x10\xcb\x13\x18\x00",0xb97a4907f773900}, /*7*/ /* "kim kyoung ho" ^0x81+0x2a */ {"\x0b\x0d\x1a\x17\x18\xcc\x22\x11\x25\x16\x17\x21\x16\x00",0x1ee7bc52389c0d78}, /*8*/ /* "Carol Zeynoun" ^0x82+0x2a */ {"\x12\x20\x16\xcd\x12\x14\x17\x12\x14\x00",0xb49ea594df126b48}, /*9*/ /* "kuo kinki" ^0x83+0x2a */ {"\x18\x10\x0b\x1a\x28\x00",0x467f1c526445e2d0}, /*10*/ /* "jbetz" ^0x84+0x2a */ {"\x0e\x13\x0a\x15\x1c\x00",0xbfae82b7a343038}, /*11*/ /* "alenw" ^0x85+0x2a */ {"\x15\x1d\x1c\x1f\x1d\x15\x19\xd0\x13\x0b\x11\x1b\x11\x00",0x127f900f6857ef10}, /*12*/ /* "Mutsumi Ogawa" ^0x86+0x2a */ {"\x14\x18\x16\x0c\x0d\xd2\x1e\x18\x0a\x13\x10\x1d\x0c\x0e\x00",0xdf8be9c049491b8}, /*13*/ /* "MikeD/Signatec" ^0x87+0x2a */ {"\x0d\x27\x10\x0b\x0d\x13\x1c\x27\xd2\x26\x13\x16\x13\x00",0x1dc9b0378c41c178}, /*14*/ /* "kunikazu tada" ^0x88+0x2a */ {"\x0f\x0a\x15\x16\x25\x10\x00",0x254d88b3358274d0}, /*15*/ /* "libero" ^0x89+0x2a */ {"\x23\x15\x23\x28\x22\x1d\xd4\x0b\x0f\x11\x24\x19\x10\x10\x15\x00",0x7c308545acf1b18}, /*16*/ /* "Sastry Kompella" ^0x8a+0x2a */ {"\x0a\x0c\x10\xd5\x23\x0e\x13\x18\x23\x22\x0e\x0f\x00",0x1058a01846617cb8}, /*17*/ /* "Kim Roberson" ^0x8b+0x2a */ {"\x19\x0e\x28\x0f\x29\x22\x0f\x17\x0c\xd6\x0e\x0d\x14\x14\x0b\x17\x0c\x0c\x00",0x15e6528b84dc7808}, /*18*/ /* "Christian Hoffmann" ^0x8c+0x2a */ {"\x19\x29\x0e\x16\x0d\xd7\x18\x16\x27\x12\x0b\x0b\x16\x29\x0c\x00",0xb3ee0572cb780ec0}, /*19*/ /* "brian capellaro" ^0x8d+0x2a */ {"\x0a\x27\x26\x11\x00",0x24c1669d1c52b0a0}, /*20*/ /* "NSRI" ^0x8e+0x2a */ {"\x0b\x0a\x23\x14\x16\xd9\x24\x26\x14\x27\x00",0x1be17f1a0793bca0}, /*21*/ /* "NOVEC User" ^0x8f+0x2a */ {"\x1b\x26\x1b\x1e\x1e\x23\x28\xda\x1f\x0f\x0c\x29\x0a\x1f\xda\x21\x27\x1c\x22\x00",0x27f1ee3d581395a0}, /*22*/ /* "Aladdin Europe GmbH" ^0x90+0x2a */ {"\x22\x29\x0f\x1e\x0d\x1f\x22\x20\x22\x0f\x1a\x27\x00",0x16a2124a67be6bc8}, /*23*/ /* "InterDigital" ^0x91+0x2a */ {"\x28\x1d\x0a\x0a\x15\xdc\x28\x1d\x14\x20\x1d\x28\x00",0xc15dd19fc39daf05}, /*24*/ /* "Larry Laxdal" ^0x92+0x2a */ {"\x7c\xa5\x7b\xa2\x6d\x80\x86\x5b\x59\x59\x83\x90\x00",0x01497eb46d08b395}, /*25*/ /* "Ϣ" ^0x93+0x2a */ {"\x11\x1f\x27\x21\x00",0x07d32d3fcdbf572d}, /*26*/ /* "SAIC" ^0x94+0x2a */ {"\x1a\x28\x1e\x27\x1e\x0a\xdf\x24\x16\x00",0x77753661edc73e5d}, /*27*/ /* "Ekahau Oy" ^0x95+0x2a */ }; #endif void CSyser::InitHotKeyInfo() { DWORD *Buffer=LoadCFGHotKey(); if(Buffer==NULL) return; DWORD* OrgBuffer,i,j,k; CMDHOTKEYMAP::IT BeginIT; KEY_PAIR KeyPair; OrgBuffer=Buffer; Buffer++;//skip crc Buffer++;//skip total number for(i=0;iBegin(); for(;HotKeyIT!=BeginIT->End();HotKeyIT++) { SetActiveHotKey(HotKeyIT->FuncKeyCode,HotKeyIT->SecondKeyCode); } } } void CSyser::SetActiveHotKey(DWORD FuncKeyCode,DWORD SecondKeyCode) { if(FuncKeyCode & WISP_MOD_CTRL) { FuncKeyCode= GetScanCode(WISP_VK_CONTROL); } else if(FuncKeyCode & WISP_MOD_ALT) { FuncKeyCode= GetScanCode(WISP_VK_ALT); } else if(FuncKeyCode & WISP_MOD_SHIFT) { FuncKeyCode= GetScanCode(WISP_VK_SHIFT); } SecondKeyCode = GetScanCode(SecondKeyCode); stKeyGlobalVariable.chFuncKeyScanCode=(BYTE)FuncKeyCode; stKeyGlobalVariable.chSecondKeyScanCode=(BYTE)SecondKeyCode; } void CSyser::AttachPopupProcess(DWORD dwCR3) { DWORD dwCurThread,dwCurProcess; SYSER_THREAD pThread; SYSER_PROCESS pProcess; ActiveHookInt0e(true); GetCurrentProcessAndThread(&m_PopupProcess,&m_PopupThread); if(GetThreadInfoByETHREAD((DWORD)m_PopupThread,&pThread)) { m_PopupThreadID=pThread.ThreadID; if(GetProcessInfoByEPROCESS(pThread.Process,&pProcess)) m_PopupProcessID=pProcess.UniqueProcessId; } m_pDebugger=m_SysInfo.GetProcessByCR3(dwCR3); if(gpSyser->m_pDebugger==NULL) { OUTPUT(WSTR("%<3>Syser : not match process CR3=%08x\n"),dwCR3); m_pDebugger=m_pSysDebugger; } MapToProcess(m_pDebugger); m_pOrgProcess=m_pDebugger; m_SyserUI.m_CodeDoc.UpdatePID_TID(m_PopupProcessID,m_PopupThreadID); ActiveHookInt0e(false); } void CSyser::AttachHotKey(DWORD dwCmdID,CWispWnd* pWnd) { CMDHOTKEYMAP::IT FindIT; HOTKEYLIST::IT BeginIT; if(dwCmdID==0) return; FindIT=m_CmdHotKeyMap.Find(dwCmdID); if(FindIT!=m_CmdHotKeyMap.End()) { BeginIT=FindIT->Begin(); for(;BeginIT!=FindIT->End();BeginIT++) { if(BeginIT->SecondKeyCode) { pWnd->RegisterHotKey(dwCmdID,BeginIT->SecondKeyCode,BeginIT->FuncKeyCode); } else { pWnd->RegisterHotKey(dwCmdID,BeginIT->FuncKeyCode,0); } } } } DWORD CSyser::AttachShortcutKey(DWORD dwCmdID,TMap & pMap) { CMDHOTKEYMAP::IT FindIT; HOTKEYLIST::IT BeginIT; if(dwCmdID==0) return 0; FindIT=m_CmdHotKeyMap.Find(dwCmdID); if(FindIT!=m_CmdHotKeyMap.End()) { BeginIT=FindIT->Begin(); for(;BeginIT!=FindIT->End();BeginIT++) { pMap.InsertUnique(BeginIT->SecondKeyCode|BeginIT->FuncKeyCode,dwCmdID); } return FindIT->Count(); } return 0; } bool CSyser::InitOSHwndRoot() { static bool bInit=false; BOOL bOK; DWORD dwHwndAddr,dwHwndAddr2; SYSER_PROCESS Process; SYSER_THREAD Thread; CDbgProcess*pDbgProcess; if(bInit) return m_OSHwndRoot!=0; bInit=true; if(GetProcessByName("syserapp", &Process)) { pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("syserapp")); if(pDbgProcess==NULL) return false; gpSyser->MapToProcess(pDbgProcess); bOK = GetThreadInfoByETHREAD((DWORD)Process.ThreadHead,&Thread); while(bOK) { if(Thread.Teb) { dwHwndAddr2=0; dwHwndAddr=Thread.Teb+gOSOffsetInfo->TEB_Win32ClientInfo_OFFSET+sizeof(DWORD)*6; if(ReadDword((void**)dwHwndAddr,&dwHwndAddr2)) { if(dwHwndAddr2) { dwHwndAddr2+=gOSOffsetInfo->WIN32CLIENT_hwnd_OFFSET; dwHwndAddr=0; if(ReadDword((void**)dwHwndAddr2,&dwHwndAddr)) { if(dwHwndAddr) { m_OSHwndRoot=dwHwndAddr; return true; } } } } } bOK=GetNextThread(&Thread); dwHwndAddr=0; } } if(GetProcessByName("explorer", &Process)) { pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("explorer")); if(pDbgProcess==NULL) return false; gpSyser->MapToProcess(pDbgProcess); bOK = GetThreadInfoByETHREAD((DWORD)Process.ThreadHead,&Thread); while(bOK) { if(Thread.Teb) { dwHwndAddr2=0; dwHwndAddr=Thread.Teb+gOSOffsetInfo->TEB_Win32ClientInfo_OFFSET+sizeof(DWORD)*6; if(ReadDword((void**)dwHwndAddr,&dwHwndAddr2)) { if(dwHwndAddr2) { dwHwndAddr2+=gOSOffsetInfo->WIN32CLIENT_hwnd_OFFSET; dwHwndAddr=0; if(ReadDword((void**)dwHwndAddr2,&dwHwndAddr)) { if(dwHwndAddr) { m_OSHwndRoot=dwHwndAddr; return true; } } } } } bOK=GetNextThread(&Thread); dwHwndAddr=0; } } if(GetProcessByName("csrss", &Process)) { pDbgProcess=gpSyser->m_SysInfo.GetProcess(WSTR("csrss")); if(pDbgProcess==NULL) return false; gpSyser->MapToProcess(pDbgProcess); bOK = GetThreadInfoByETHREAD((DWORD)Process.ThreadHead,&Thread); while(bOK) { if(Thread.Teb) { dwHwndAddr2=0; dwHwndAddr=Thread.Teb+gOSOffsetInfo->TEB_Win32ClientInfo_OFFSET+sizeof(DWORD)*6; if(ReadDword((void**)dwHwndAddr,&dwHwndAddr2)) { if(dwHwndAddr2) { dwHwndAddr2+=gOSOffsetInfo->WIN32CLIENT_hwnd_OFFSET; dwHwndAddr=0; if(ReadDword((void**)dwHwndAddr2,&dwHwndAddr)) { if(dwHwndAddr) { m_OSHwndRoot=dwHwndAddr; return true; } } } } } bOK=GetNextThread(&Thread); dwHwndAddr=0; } } return false; } void CSyser::ClearBPR() { PROC_RANGE_BP_MAP::IT BeginIT,EndIT; BP_RANGE_LIST::IT ListBIT,ListEIT; DWORD count=0; DWORD dwValue; if(!gpSyser->m_RangeBPList.Count()) { return; } BeginIT = gpSyser->m_RangeBPList.Begin(); EndIT = gpSyser->m_RangeBPList.End(); for(;BeginIT!=EndIT;BeginIT++) { CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(BeginIT.Key()); if(pDbgProcess==NULL) { continue; } gpSyser->MapToProcess(pDbgProcess); ListBIT = BeginIT->Begin(); ListEIT = BeginIT->End(); for(;ListBIT!=ListEIT;ListBIT++) { DWORD PageSize,PTESize; DWORD PtePtr; DWORD TotalSize,StartAddr,EndAddr; TotalSize=ListBIT->RangeLength; StartAddr=ListBIT->RangeStartAddress; EndAddr = StartAddr+ListBIT->RangeLength-1; for(;StartAddrType |= BP_REV_BPR_TYPE; dwValue = (DWORD)PtePtr; count++; // __asm // { // invlpg dwValue // push eax // mov eax, cr3 // mov cr3, eax // pop eax // } SyserFlushInsCache((BYTE*)PtePtr); } } } //else //{ // OUTPUT(WSTR("ClearBPR read ptr error\n")); //} } } } //if(count==0) //{ // OUTPUT(WSTR("NOT CLEAR BPR. THIS IS A ERROR\n")); //} } void CSyser::ClearProcessBPR(DWORD dwProcess) { PROC_RANGE_BP_MAP::IT BeginIT,EndIT; BP_RANGE_LIST::IT ListBIT,ListEIT; DWORD dwValue; if(!gpSyser->m_RangeBPList.Count()) return; BeginIT = gpSyser->m_RangeBPList.Find(dwProcess); EndIT = gpSyser->m_RangeBPList.End(); if(BeginIT==EndIT) return; CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(BeginIT.Key()); if(pDbgProcess==NULL) return; gpSyser->MapToProcess(pDbgProcess); if(pDbgProcess) { ListBIT = BeginIT->Begin(); ListEIT = BeginIT->End(); for(;ListBIT!=ListEIT;ListBIT++) { DWORD PageSize,PTESize; DWORD PtePtr; DWORD TotalSize,StartAddr,EndAddr; TotalSize=ListBIT->RangeLength; StartAddr=ListBIT->RangeStartAddress; EndAddr = StartAddr+ListBIT->RangeLength-1; for(;StartAddrType |= BP_REV_BPR_TYPE; dwValue = (DWORD)PtePtr; // __asm // { // invlpg dwValue // push eax // mov eax, cr3 // mov cr3, eax // pop eax // } SyserFlushInsCache((BYTE*)PtePtr); } } } } } } gpSyser->m_RangeBPList.Remove(dwProcess); } void CSyser::SetBPR() { PROC_RANGE_BP_MAP::IT BeginIT,EndIT; BP_RANGE_LIST::IT ListBIT,ListEIT; DWORD dwValue; static int count=0; if(!gpSyser->m_RangeBPList.Count()) return; BeginIT = gpSyser->m_RangeBPList.Begin(); EndIT = gpSyser->m_RangeBPList.End(); for(;BeginIT!=EndIT;BeginIT++) { CDbgProcess* pDbgProcess = gpSyser->m_SysInfo.GetProcessByEPROCESS(BeginIT.Key()); if(pDbgProcess) { gpSyser->MapToProcess(pDbgProcess); if(pDbgProcess) { ListBIT = BeginIT->Begin(); ListEIT = BeginIT->End(); for(;ListBIT!=ListEIT;ListBIT++) { if(ListBIT->State != BP_STATE_ENABLE) continue; DWORD PageSize,PTESize; DWORD PtePtr; DWORD TotalSize,StartAddr,EndAddr; TotalSize=ListBIT->RangeLength; StartAddr=ListBIT->RangeStartAddress; EndAddr = StartAddr+ListBIT->RangeLength-1; for(;StartAddrType |= BP_SET_BPR_TYPE; dwValue = (DWORD)PtePtr; //gpSyser->DbgPrint(0,0,WSTR("[%d]setbpr pte=[%08x] eip=%08x \n"),count++,PtePtr,Reg.EIP); // __asm // { // invlpg dwValue // push eax // mov eax, cr3 // mov cr3, eax // pop eax // } SyserFlushInsCache((BYTE*)PtePtr); } } } } } } ================================================ FILE: Project/Syser/Source/SyserNTDrvApp.h ================================================ #ifndef _SYSER_NT_DRV_APP_H_ #define _SYSER_NT_DRV_APP_H_ class CMoveFramMenu : public CWispMenu { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) }; #include "X86Optr.h" #include "InputDriver.h" #include "SysInfo.h" #include "MainFrame.h" #include "pcidef.h" #include "Services.h" #include "SyserUI.h" #include "SyserConfig.h" #include "SyserSymAnalyzer.h" #include "SerialPort.h" #include "SDServer.h" #include "PCSystem.h" #define MAX_PIXEL_BYTE_COUNT 4 #define MAX_VIEW_COUNT 4 typedef TMap CPluginMap; struct SYSER_DUMP { BYTE* DumpData; int DumpSize; CStrA DumpFileName; }; typedef struct _SERIALNAME { char* Name; unsigned __int64 MulVal; }SERIALNAME,*PSERIALNAME; typedef TList CSyserDumpList; typedef TMap GSNMAP; typedef TList HOTKEYLIST; typedef TMap CMDHOTKEYMAP; class CSyser : public CWispBase { public: CSyser(); public: CPCSystem m_PCSystem; CSerialPortConnect m_SerialPortConnect; CSyserConnect* m_pSyserConnect; CSDServer m_SDServer; CDbgProcess* m_pSysDebugger; CDbgProcess* m_pDebugger; CDbgProcess* m_pCsrssProcess; CDbgProcess* m_pOrgProcess; CSysInfo m_SysInfo; CMainFrame m_MainFrame; CSyserUI m_SyserUI; bool m_bMovingFrame; WISP_POINT m_RootPos; WISP_POINT m_RootPosBackup; WISP_RECT m_FrameRect; CLocalFileIO m_FileIO; COptionValue m_SyserOption; int m_OrgWindowWidth; int m_OrgWindowHeight; bool m_bShowSplash; bool m_bScrRestored; //F4Ļָ bool m_bScrBackup; bool m_bUserScrBackuped; bool m_bHandle; bool m_bExit; bool m_bSaveReg; bool m_bInitSuccess; bool m_bUpdateReg; //˳ʱǷҪ Reg . bool m_bInterrupt1HereStat; bool m_bFaultsStat; bool m_bDbgRegAccessMon; bool m_bPatchCopyOnWrite; bool m_bCopyOnWriteFastCall; DWORD m_Interrupt3HereStat; //ñΪʱ еж 3 DWORD m_CR0Active; PDRIVER_OBJECT m_DriverObject; PDEVICE_OBJECT m_DeviceObject; DWORD m_Win32KServiceTable; DWORD m_DriverStartAddr; DWORD m_DriverEndAddr; WCHAR m_szImagePath[MAX_FN_LEN]; UINT m_OldStyle; WISP_SIZE m_OldFrameSize; NTSTATUS (*m_PsRemoveLoadImageNotifyRoutine)(IN PLOAD_IMAGE_NOTIFY_ROUTINE); //ULONG (*m_RtlGetCurrentDirectory_U)(ULONG MaximumLength, PWSTR Buffer); public: ////////////////////////////////////////////////////// // ////////////////////////////////////////////////////// bool Init(); void Release(); bool InitFileIO(); void EndDraw(WISP_RECT*pUpdateRect); void Active(); void Exit(bool bRestoreScr=true); bool PumpCondition(); bool WakeUpMsgThread(); bool SleepMsgThread(); void IdleEvent(); void EnterCriticalSection(); void LeaveCriticalSection(); bool CreateFrame(WISP_CHAR*WndName,int Width,int Height,int Bpp); void DestroyFrame(); bool MoveFrame(int dx,int dy); bool ResizeHostFrame(int Width,int Height); bool ResizingFrame(int Width,int Height); void BackupScreen(); void RestoreScreen(); void CenterScreen(); void RestoreMovingFrame(); void DrawMovingFrame(); void ReleaseBreakPoint(); void InsertDbgMsg(PCWSTR szMsg); void ShowSplash(); void HideSplash(); bool SetClipboardString(PCSTR String); void OnMouseMove(IN int DeltaX,IN int DeltaY); void ReportMsg(IN const WISP_CHAR* Format,...); bool InitOSHwndRoot(); UINT m_OSVer; ULONG m_OSMajorVersion; ULONG m_OSMinorVersion; ULONG m_OSBuildNumber; DWORD m_PopupThread; // Syser Active ʱǰ߳ KTHREAD DWORD m_PopupProcess; // Syser Active ʱǰ KPROCESS DWORD m_PopupThreadID; // Syser Active ʱǰ߳ ID DWORD m_PopupProcessID; // Syser Active ʱǰ ID BYTE* m_VideoBufBackup; WISP_RECT m_BackupFrameRect; DWORD m_CriticalEFlag; WISP_FRAME_BUFFER m_RealFrameBuffer; KSPIN_LOCK m_NotifyLock; KEVENT m_ImageLoadSyncEvent; int m_TimeZoneBias; static void SyserWaitThread(void*); void StartSyserWaitThread(); void StopSyserWaitThread(); ////////////////////////////////////////////////////// //ػ̣߳һЩӳеIJDump CSyserDumpList m_DumpList; KEVENT m_WaitEvent; PVOID m_ThreadPointer; bool m_bWaitThread; DWORD m_OSHwndRoot; ////////////////////////////////////////////////////// public: ////////////////////////////////////////////////////// // ////////////////////////////////////////////////////// bool m_bHardDriverSuccess; bool m_bHookSuccess; bool IntallHardDriver(); void RemoveHardDriver(); bool InstallHooks(); void RemoveHooks(); bool InstallDebug(); bool UninstallDebug(); void ResetInputState(); void ClearInputState(); void InitRemoteConnect(); void ReleaseRemoteConnect(); void InitHotKeyInfo(); public: ////////////////////////////////////////////////////// // ////////////////////////////////////////////////////// static ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size,CSyser*pThis); void DbgPrint(int x,int y,IN WCHAR*Format,...); void MapToProcess(CDbgProcess*pProcess); bool InstallLoadImageHook(); bool UninstallLoadImageHook(); int LoadPlugin(); void UnloadPlugin(); static XSCAN_RES XScanPlugin(CFileIO*pFileIO,PCSTR FileName,ULSIZE FileSize,void*CBParem); static bool RegisterPluginService(PUNICODE_STRING ServiceName,PCSTR DriverFileFullName); CPluginMap m_PluginMap; CMDHOTKEYMAP m_CmdHotKeyMap; void SetActiveHotKey(DWORD FuncKeyCode,DWORD SecondKeyCode); void AttachHotKey(DWORD CmdList,CWispWnd* hWnd); DWORD AttachShortcutKey(DWORD dwCmdID,TMap & pMap); void AttachPopupProcess(DWORD dwCR3); TMap m_ShortcutKeyMap; PROC_RANGE_BP_MAP m_RangeBPList; //ڴ淶Χϵ void ClearBPR(); // syser ʱе bpr ϵ void ClearProcessBPR(DWORD dwProcess); // syser ʱе bpr ϵ void SetBPR();// syser ˳ʱҪ bpr ϵ #ifndef __DEMO__VERSION__ static SERIALNAME gSerialName[28]; virtual PSERIALNAME GetSerialNumber(); virtual bool CheckSN(char* SerialNum,char* Name); GSNMAP m_GSnMap; #endif }; void LoadCFG(); typedef struct _SERVICETABLE { void** ServiceTable; DWORD LowCall; DWORD HiCall; PVOID* ArgTable; }SERVICETABLE,*PSERVICETABLE; extern CSyser*gpSyser; extern CSyserConfig*gpSyserCfg; extern CSyserPluginUI*gpSyserPluginUI; extern SYSER_BOOT_DEVICE_EXTENSION*gpSysBootDevEx; extern SYSER_LANGUAGE_DEVICE_EXTENSION*gpSysLangDevEx; extern "C" NTSTATUS KeStackAttachProcess(PEPROCESS pProcess,KAPC_STATE* ApcState); extern "C" NTSTATUS KeUnstackDetachProcess(KAPC_STATE* ApcState); extern "C" PSERVICETABLE KeServiceDescriptorTable; #endif ================================================ FILE: Project/Syser/Source/SyserOption.cpp ================================================ #include "StdAfx.h" #include "SyserOption.h" #include "../../Syser/Source/SyserResource.h" HOTKEY_INFO gDefaultHotkeyInfo[]= { {"ActiveHotKey",WISP_MOD_CTRL,WISP_VK_F12,0}, {"Debug:Continue",WISP_VK_F5,0,EVENT_ID_CONTINUE}, {"Debug:Return",WISP_VK_F6,0,EVENT_ID_RETURN}, {"Debug:Step",WISP_VK_F8,0,EVENT_ID_STEP}, {"Debug:Proceed",WISP_VK_F10,0,EVENT_ID_PROCEED}, {"Debug:Step Branch",WISP_VK_F11,0,EVENT_ID_STEP_BRANCH}, {"Debug:Break Point",WISP_MOD_CTRL,WISP_VK_F9,EVENT_ID_BREAK_POINT}, {"Monitor:Register View",WISP_MOD_ALT,WISP_VK_G,EVENT_ID_REG_VIEW}, {"Monitor:Data View",WISP_MOD_ALT,WISP_VK_D,EVENT_ID_DATA_VIEW_FORM}, {"Monitor:Call Stack",WISP_MOD_ALT,WISP_VK_C,EVENT_ID_CALL_STACK}, {"View:Toggle BookMark",WISP_MOD_CTRL,WISP_VK_K,EVENT_ID_BOOKMARK_TOGGLE}, {"View:Previous BookMark",WISP_MOD_CTRL,WISP_VK_P,EVENT_ID_BOOKMARK_PREV}, {"View:Next BookMark",WISP_MOD_CTRL,WISP_VK_N,EVENT_ID_BOOKMARK_NEXT}, {"View:Clear BookMark",WISP_MOD_CTRL,WISP_VK_L,EVENT_ID_BOOKMARK_CLEAR}, {NULL,0,0}, }; HOTKEY_INFO gCodeViewShortcatKeys[]= { {"Toggle symbols display",0,WISP_VK_TAB, EVENT_ID_TOGGLE_SYMBOL}, {"Toggle full symbols display",WISP_MOD_CTRL,WISP_VK_TAB, EVENT_ID_TOGGLE_FULL_SYMBOL}, {"Set register value to next trace",0,WISP_VK_OEM_PLUS, EVENT_ID_GETNEXTTRACE}, {"Set register value to previous trace",0,WISP_VK_OEM_MINUS, EVENT_ID_GETPREVTRACE}, {"Set start address to previous position",0,WISP_VK_BACK, EVENT_ID_PREV_POS}, {"Set start address to next position",WISP_MOD_CTRL,WISP_VK_RETURN, EVENT_ID_NEXT_POS}, {"Follow to the destination of be selected instruction",0,WISP_VK_RETURN, EVENT_ID_FOLLOW_TO_DESTINATION}, {"Save the address of be selected instruction",WISP_MOD_SHIFT,WISP_VK_RETURN, EVENT_ID_SAVE_POS}, {"Backwards disassemble code 1 byte",WISP_MOD_CTRL,WISP_VK_UP, EVENT_ID_STARTADDRESS_DEC}, {"Forwards disassemble code 1 byte",WISP_MOD_CTRL,WISP_VK_DOWN, EVENT_ID_STARTADDRESS_INC}, {"Insert/Remove Breakpoint",WISP_VK_F9, 0, EVENT_ID_TOGGLE_BP}, {"Run to here",WISP_VK_F7,0, EVENT_ID_GOTO}, {"Display code window #0",WISP_MOD_ALT,WISP_VK_1, EVENT_ID_ACTIVE_CODEVIEW_0}, {"Display code window #1",WISP_MOD_ALT,WISP_VK_2, EVENT_ID_ACTIVE_CODEVIEW_1}, {"Display code window #2",WISP_MOD_ALT,WISP_VK_3, EVENT_ID_ACTIVE_CODEVIEW_2}, {"Display code window #3",WISP_MOD_ALT,WISP_VK_4, EVENT_ID_ACTIVE_CODEVIEW_3}, {"Display code window #4",WISP_MOD_ALT,WISP_VK_5, EVENT_ID_ACTIVE_CODEVIEW_4}, {"Display code window #5",WISP_MOD_ALT,WISP_VK_6, EVENT_ID_ACTIVE_CODEVIEW_5}, {"Display code window #6",WISP_MOD_ALT,WISP_VK_7, EVENT_ID_ACTIVE_CODEVIEW_6}, {"Display code window #7",WISP_MOD_ALT,WISP_VK_8, EVENT_ID_ACTIVE_CODEVIEW_7}, {"Display code window #8",WISP_MOD_ALT,WISP_VK_9, EVENT_ID_ACTIVE_CODEVIEW_8}, {NULL,0,0}, }; HOTKEY_INFO gDataViewShortcatKeys[]= { {"Follow to value of current caret position in data view",0,WISP_VK_RETURN, EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW}, {"Follow to value of current caret position in code view",WISP_MOD_SHIFT,WISP_VK_RETURN, EVENT_ID_FOLLOW_VALUE_TO_CODEVIEW}, {"Copy the value of current caret position to clipboard",WISP_MOD_CTRL,WISP_VK_RETURN, EVENT_ID_COPY_VALUE_TO_CLIPBOARD}, {"Copy the address of current caret position to clipboard",WISP_MOD_ALT,WISP_VK_RETURN, EVENT_ID_COPY_CARETPOSITION_TO_CLIPBOARD}, {"Copy the date of be selected area with separator",WISP_MOD_CTRL,WISP_VK_X, EVENT_ID_COPY_SEL_VALUE}, {"Copy the date of be selected area without separator",WISP_MOD_SHIFT,WISP_VK_X, EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR}, {"Toggle the display mode of the address column",WISP_MOD_CTRL,WISP_VK_O, EVENT_ID_TOGGLE_ADDRESS_MODE}, {"Toggle dynamic and static address mode",WISP_MOD_CTRL,WISP_VK_M, EVENT_ID_TOGGLE_FLOAT_MODE}, {"Set start address to next position",0,WISP_VK_OEM_PLUS, EVENT_ID_GOTO_NEXT_POS}, {"Set start address to prev position",0,WISP_VK_OEM_MINUS, EVENT_ID_GOTO_PREV_POS}, {"Enable/Disable display offset ",WISP_MOD_CTRL,WISP_VK_S, EVENT_ID_DATA_SHOW_OFFICE}, {"Enable/Disable display toolbar ",WISP_MOD_CTRL,WISP_VK_T, EVENT_ID_DATAVIEW_TOOLBAR}, {"Copy the date of be selected area as C source code",WISP_MOD_CTRL,WISP_VK_Z, EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE}, {"Display data window #0",WISP_MOD_ALT,WISP_VK_1, EVENT_ID_ACTIVE_DATAVIEW_0}, {"Display data window #1",WISP_MOD_ALT,WISP_VK_2, EVENT_ID_ACTIVE_DATAVIEW_1}, {"Display data window #2",WISP_MOD_ALT,WISP_VK_3, EVENT_ID_ACTIVE_DATAVIEW_2}, {"Display data window #3",WISP_MOD_ALT,WISP_VK_4, EVENT_ID_ACTIVE_DATAVIEW_3}, {"Display data window #4",WISP_MOD_ALT,WISP_VK_5, EVENT_ID_ACTIVE_DATAVIEW_4}, {"Display data window #5",WISP_MOD_ALT,WISP_VK_6, EVENT_ID_ACTIVE_DATAVIEW_5}, {"Display data window #6",WISP_MOD_ALT,WISP_VK_7, EVENT_ID_ACTIVE_DATAVIEW_6}, {"Display data window #7",WISP_MOD_ALT,WISP_VK_8, EVENT_ID_ACTIVE_DATAVIEW_7}, {"Display data window #8",WISP_MOD_ALT,WISP_VK_9, EVENT_ID_ACTIVE_DATAVIEW_8}, {NULL,0,0}, }; HOTKEY_INFO gStackViewShortcatKeys[]= { {"Follow to value of current caret position in data view",0,WISP_VK_RETURN, EVENT_ID_SHOW_CODE}, {"Follow to value of current caret position in code view",WISP_MOD_SHIFT,WISP_VK_RETURN, EVENT_ID_SHOW_DATA}, {"Copy the value of current caret position to clipboard",WISP_MOD_CTRL,WISP_VK_RETURN, EVENT_ID_SHOW_DATA_BY_ADDRESS}, {"Copy the address of current caret position to clipboard",WISP_MOD_ALT,WISP_VK_RETURN, EVENT_ID_SHOW_CODE_BY_ADDRESS}, {NULL,0,0}, }; HOTKEY_INFO gCpuViewShortcatKeys[]= { {"Set start address of data window to which value eax register",WISP_MOD_ALT,WISP_VK_1, EVENT_ID_SET_DATAVIEW_EAX}, {"Set start address of data window to which value ebx register",WISP_MOD_ALT,WISP_VK_2, EVENT_ID_SET_DATAVIEW_EBX}, {"Set start address of data window to which value ecx register",WISP_MOD_ALT,WISP_VK_3, EVENT_ID_SET_DATAVIEW_ECX}, {"Set start address of data window to which value edx register",WISP_MOD_ALT,WISP_VK_4, EVENT_ID_SET_DATAVIEW_EDX}, {"Set start address of data window to which value esp register",WISP_MOD_ALT,WISP_VK_5, EVENT_ID_SET_DATAVIEW_ESP}, {"Set start address of data window to which value ebp register",WISP_MOD_ALT,WISP_VK_6, EVENT_ID_SET_DATAVIEW_EBP}, {"Set start address of data window to which value esi register",WISP_MOD_ALT,WISP_VK_7, EVENT_ID_SET_DATAVIEW_ESI}, {"Set start address of data window to which value edi register",WISP_MOD_ALT,WISP_VK_8, EVENT_ID_SET_DATAVIEW_EDI}, {"Set start address of data window to which value eip register",WISP_MOD_ALT,WISP_VK_9, EVENT_ID_SET_DATAVIEW_EIP}, {"Set start address of code window to which value eax register",WISP_MOD_SHIFT,WISP_VK_1, EVENT_ID_SET_CODEVIEW_EAX}, {"Set start address of code window to which value ebx register",WISP_MOD_SHIFT,WISP_VK_2, EVENT_ID_SET_CODEVIEW_EBX}, {"Set start address of code window to which value ecx register",WISP_MOD_SHIFT,WISP_VK_3, EVENT_ID_SET_CODEVIEW_ECX}, {"Set start address of code window to which value edx register",WISP_MOD_SHIFT,WISP_VK_4, EVENT_ID_SET_CODEVIEW_EDX}, {"Set start address of code window to which value esp register",WISP_MOD_SHIFT,WISP_VK_5, EVENT_ID_SET_CODEVIEW_ESP}, {"Set start address of code window to which value ebp register",WISP_MOD_SHIFT,WISP_VK_6, EVENT_ID_SET_CODEVIEW_EBP}, {"Set start address of code window to which value esi register",WISP_MOD_SHIFT,WISP_VK_7, EVENT_ID_SET_CODEVIEW_ESI}, {"Set start address of code window to which value edi register",WISP_MOD_SHIFT,WISP_VK_8, EVENT_ID_SET_CODEVIEW_EDI}, {"Set start address of code window to which value eip register",WISP_MOD_SHIFT,WISP_VK_9, EVENT_ID_SET_CODEVIEW_EIP}, {NULL,0,0}, }; HOTKEY_CONF gKeyConfig[5]= { {sizeof(gDefaultHotkeyInfo)/sizeof(gDefaultHotkeyInfo[0]),gDefaultHotkeyInfo}, {sizeof(gCodeViewShortcatKeys)/sizeof(gCodeViewShortcatKeys[0]),gCodeViewShortcatKeys}, {sizeof(gDataViewShortcatKeys)/sizeof(gDataViewShortcatKeys[0]),gDataViewShortcatKeys}, {sizeof(gStackViewShortcatKeys)/sizeof(gStackViewShortcatKeys[0]),gStackViewShortcatKeys}, {sizeof(gCpuViewShortcatKeys)/sizeof(gCpuViewShortcatKeys[0]),gCpuViewShortcatKeys}, }; CHAR DefaultPEExportList[]= { "\\SystemRoot\\system32\\Kernel32.dll\r\n" "\\SystemRoot\\system32\\GDI32.dll\r\n" "\\SystemRoot\\system32\\User32.dll\r\n" "\\SystemRoot\\system32\\AdvApi32.dll\r\n" "\\SystemRoot\\system32\\ws2_32.dll\r\n" "\\SystemRoot\\system32\\msvcrt.dll\r\n" "\\SystemRoot\\system32\\comdlg32.dll\r\n" "\\SystemRoot\\system32\\comctl32.dll\r\n" "\\SystemRoot\\system32\\ImageHlp.dll\r\n" "\\SystemRoot\\system32\\win32k.sys\r\n" "\\SystemRoot\\system32\\ntoskrnl.exe\r\n" "\\SystemRoot\\system32\\ntkrnlpa.exe\r\n" "\\SystemRoot\\system32\\ntkrnlmp.exe\r\n" "\\SystemRoot\\system32\\ntkrpamp.exe\r\n" "\\SystemRoot\\system32\\ntdll.dll\r\n" "\\SystemRoot\\system32\\hal.dll\r\n" }; int SyserOptionRef = 0; /* SDRemote UnExe SDWin32 */ SYSER_OPTION OrgSyserOption= { 0,//CRCCode 0,//iBigFont SYSER_FM_AUTOMATIC,//iFollowMode 1,//iShowStartSplash 0,//iShowFullSym 0,//iShowCCByte 10,//iMouseSensitivity 500,//iHistroyLines //Source Debug 1,//iSourceCodeShowTips; 1,//iSourceCodeSyntaxColors; 1,//iSourceCodeShowLineNumbers; //Conect SYSER_SERIAL_PORT_CONNECT,//iConnectType 1,//iComPort //Advance SYSER_VDM_AUTO, //iVideoDetectMode 512, //iStackSizeK 1, //iTimerIntEnable WSTR("SDWin32.dll"),//szDebuggerFileName 1024, 768, 1024, 768, 12, //iHeapSizeM 15, //iSourceCodeHeapSizeM; 0, //Ĭֵ 0 DZ׼, 1 Azerty ̣Ƿļ 2,//i3here; 0,//i1here; 1,//ifaults; }; SYSER_OPTION SyserOption; STRegOptVal SyserOptVal[]= { {WSTR("iFollowMode"), STOptVal::INT_VAL, &SyserOption.iFollowMode }, {WSTR("iShowStartSplash"), STOptVal::INT_VAL, &SyserOption.iShowStartSplash }, {WSTR("iShowFullSym"), STOptVal::INT_VAL, &SyserOption.iShowFullSym }, {WSTR("iShowCCByte"), STOptVal::INT_VAL, &SyserOption.iShowCCByte }, {WSTR("iMouseSensitivity"), STOptVal::INT_VAL, &SyserOption.iMouseSensitivity }, //Source Debug {WSTR("iSourceCodeShowTips"), STOptVal::INT_VAL, &SyserOption.iSourceCodeShowTips}, {WSTR("iSourceCodeSyntaxColors"), STOptVal::INT_VAL, &SyserOption.iSourceCodeSyntaxColors}, {WSTR("iSourceCodeShowLineNumbers"), STOptVal::INT_VAL, &SyserOption.iSourceCodeShowLineNumbers}, //Connect {WSTR("iConnectType"), STOptVal::INT_VAL, &SyserOption.iConnectType}, {WSTR("iComPort"), STOptVal::INT_VAL, &SyserOption.iComPort}, //Advance {WSTR("iHardTimerEnable"), STOptVal::INT_VAL, &SyserOption.iHardTimerEnable}, {WSTR("szDebuggerFileName"), STOptVal::STR_VAL, &SyserOption.szDebuggerFileName,MAX_FN_LEN}, {NULL} }; #ifdef CODE_OS_NT_DRV bool LoadSyserHotKeyDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int BufLen,int* Length) { WCHAR SystemDriverPath[MAX_FN_LEN]=L""; OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; DWORD OpenMode,ShareMode; NTSTATUS Status; UNICODE_STRING UniName; FILE_STANDARD_INFORMATION StdInfo; WCHAR *NameBuf; LARGE_INTEGER Offset64; DWORD CRCCode; HANDLE hFile; *Length=0; if(GetSystemRootPath(RegistryServiceName,SystemDriverPath,sizeof(SystemDriverPath))==false) return false; TStrCat(SystemDriverPath,L"System32\\drivers\\"); TStrCat(SystemDriverPath,FileName); RtlInitUnicodeString(&UniName,SystemDriverPath); InitializeObjectAttributes(&oa,&UniName,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL); Status = ZwOpenFile(&hFile,GENERIC_READ,&oa,&IOStatus,FILE_SHARE_READ,FILE_RANDOM_ACCESS|FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_COMPLETE_IF_OPLOCKED); if(!NT_SUCCESS(Status)) return false; Status = ZwQueryInformationFile(hFile,&IOStatus,&StdInfo,sizeof(FILE_STANDARD_INFORMATION),FileStandardInformation); if(!NT_SUCCESS(Status)) { ZwClose(hFile); return false; } *Length=(int)StdInfo.EndOfFile.QuadPart; if(StdInfo.EndOfFile.QuadPart>BufLen) { ZwClose(hFile); return false; } Offset64.QuadPart=0; Status = ZwReadFile(hFile,NULL,NULL,NULL,&IOStatus,pOption,*Length,&Offset64,NULL); ZwClose(hFile); if(!NT_SUCCESS(Status)) return false; CRCCode = GetCRCCode(RT_PBYTE(pOption,sizeof(CRCCode)),*Length-sizeof(DWORD)); if(CRCCode==0 || CRCCode!=_GET_DWORD(pOption)) return false; return true; } BYTE* gSyserHotKeyDriverBuffer=NULL; int gSyserHotKeyDriverLen=0; bool SaveSyserHotKeyBufferDriver(void*pOption,int Length) { if(Length==0) { if(gSyserHotKeyDriverBuffer) { delete gSyserHotKeyDriverBuffer; gSyserHotKeyDriverBuffer=NULL; } gSyserHotKeyDriverLen=0; return true; } if(Length<=gSyserHotKeyDriverLen) { memcpy(gSyserHotKeyDriverBuffer,pOption,Length); gSyserHotKeyDriverLen=Length; return true; } if(gSyserHotKeyDriverBuffer) delete gSyserHotKeyDriverBuffer; gSyserHotKeyDriverLen=0; gSyserHotKeyDriverBuffer = new BYTE[Length]; if(gSyserHotKeyDriverBuffer==NULL) return false; gSyserHotKeyDriverLen=Length; memcpy(gSyserHotKeyDriverBuffer,pOption,Length); return true; } bool SaveSyserHotKeyDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int Length) { WCHAR SystemDriverPath[MAX_FN_LEN]=L""; OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; DWORD OpenMode,ShareMode; NTSTATUS Status; UNICODE_STRING UniName; FILE_STANDARD_INFORMATION StdInfo; WCHAR *NameBuf; LARGE_INTEGER Offset64; DWORD CRCCode; HANDLE hFile; if(GetSystemRootPath(RegistryServiceName,SystemDriverPath,sizeof(SystemDriverPath))==false) return false; TStrCat(SystemDriverPath,L"System32\\drivers\\"); TStrCat(SystemDriverPath,FileName); RtlInitUnicodeString(&UniName,SystemDriverPath); InitializeObjectAttributes(&oa,&UniName,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL); Status = ZwCreateFile(&hFile,GENERIC_WRITE,&oa,&IOStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ, FILE_OVERWRITE_IF,FILE_RANDOM_ACCESS|FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_COMPLETE_IF_OPLOCKED,NULL,0); if(!NT_SUCCESS(Status)) return false; Offset64.QuadPart=0; _PUT_DWORD(pOption,GetCRCCode(RT_PBYTE(pOption,sizeof(DWORD)),Length-sizeof(DWORD))); Status = ZwWriteFile(hFile,NULL,NULL,NULL,&IOStatus,pOption,Length,&Offset64,NULL); ZwClose(hFile); if(!NT_SUCCESS(Status)) return false; return true; } bool LoadSyserOptionDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int Length) { WCHAR SystemDriverPath[MAX_FN_LEN]=L""; OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; DWORD OpenMode,ShareMode; NTSTATUS Status; UNICODE_STRING UniName; FILE_STANDARD_INFORMATION StdInfo; WCHAR *NameBuf; LARGE_INTEGER Offset64; DWORD CRCCode; HANDLE hFile; if(GetSystemRootPath(RegistryServiceName,SystemDriverPath,sizeof(SystemDriverPath))==false) return false; TStrCat(SystemDriverPath,L"System32\\drivers\\"); TStrCat(SystemDriverPath,FileName); RtlInitUnicodeString(&UniName,SystemDriverPath); InitializeObjectAttributes(&oa,&UniName,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL); Status = ZwOpenFile(&hFile,GENERIC_READ,&oa,&IOStatus,FILE_SHARE_READ,FILE_RANDOM_ACCESS|FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_COMPLETE_IF_OPLOCKED); if(!NT_SUCCESS(Status)) return false; Status = ZwQueryInformationFile(hFile,&IOStatus,&StdInfo,sizeof(FILE_STANDARD_INFORMATION),FileStandardInformation); if(!NT_SUCCESS(Status)) { ZwClose(hFile); return false; } Offset64.QuadPart = (ULONGLONG)Length; if(StdInfo.EndOfFile.QuadPart!=Offset64.QuadPart) { ZwClose(hFile); return false; } Offset64.QuadPart=0; Status = ZwReadFile(hFile,NULL,NULL,NULL,&IOStatus,pOption,Length,&Offset64,NULL); ZwClose(hFile); if(!NT_SUCCESS(Status)) return false; CRCCode = GetCRCCode(RT_PBYTE(pOption,sizeof(CRCCode)),Length-sizeof(DWORD)); if(CRCCode==0 || CRCCode!=_GET_DWORD(pOption)) return false; return true; } bool SaveSyserOptionDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int Length) { WCHAR SystemDriverPath[MAX_FN_LEN]=L""; OBJECT_ATTRIBUTES oa; IO_STATUS_BLOCK IOStatus; DWORD OpenMode,ShareMode; NTSTATUS Status; UNICODE_STRING UniName; FILE_STANDARD_INFORMATION StdInfo; WCHAR *NameBuf; LARGE_INTEGER Offset64; DWORD CRCCode; HANDLE hFile; if(GetSystemRootPath(RegistryServiceName,SystemDriverPath,sizeof(SystemDriverPath))==false) return false; TStrCat(SystemDriverPath,L"System32\\drivers\\"); TStrCat(SystemDriverPath,FileName); RtlInitUnicodeString(&UniName,SystemDriverPath); InitializeObjectAttributes(&oa,&UniName,OBJ_KERNEL_HANDLE|OBJ_CASE_INSENSITIVE,NULL,NULL); Status = ZwCreateFile(&hFile,GENERIC_WRITE,&oa,&IOStatus,NULL,FILE_ATTRIBUTE_NORMAL,FILE_SHARE_READ, FILE_OVERWRITE_IF,FILE_RANDOM_ACCESS|FILE_NON_DIRECTORY_FILE|FILE_SYNCHRONOUS_IO_NONALERT|FILE_COMPLETE_IF_OPLOCKED,NULL,0); if(!NT_SUCCESS(Status)) return false; Offset64.QuadPart=0; _PUT_DWORD(pOption,GetCRCCode(RT_PBYTE(pOption,sizeof(DWORD)),Length-sizeof(DWORD))); Status = ZwWriteFile(hFile,NULL,NULL,NULL,&IOStatus,pOption,Length,&Offset64,NULL); ZwClose(hFile); if(!NT_SUCCESS(Status)) return false; return true; } #endif //CODE_OS_NT_DRV bool LoadSyserOption(PCSTR FileName,void*pOption,int Length) { DWORD CRCCode; CImageFile CfgFile; if(CfgFile.Open(FileName)==false) return false; if(CfgFile.m_FileSize!=Length) goto ErrorExit; if(CfgFile.ReadFile(pOption,Length)==false) goto ErrorExit; CRCCode = GetCRCCode(RT_PBYTE(pOption,sizeof(CRCCode)),Length-sizeof(DWORD)); if(CRCCode==0 || CRCCode !=_GET_DWORD(pOption)) goto ErrorExit; CfgFile.Close(); return true; ErrorExit: CfgFile.Close(); return false; } bool SaveSyserOption(PCSTR FileName,void*pOption,int Length) { bool Result; CImageFile CfgFile; if(CfgFile.Create(FileName)==false) return false; Result = true; _PUT_DWORD(pOption,GetCRCCode(RT_PBYTE(pOption,sizeof(DWORD)),Length-sizeof(DWORD))); if(CfgFile.WriteFile(pOption,Length)==false) Result = false; CfgFile.Close(); return Result; } bool LoadSyserHotKeyOption(PCSTR FileName,void*pOption,ULSIZE BufLen,int* Length) { DWORD CRCCode; CImageFile CfgFile; if(CfgFile.Open(FileName)==false) return false; if(CfgFile.m_FileSize>BufLen) goto ErrorExit; *Length=CfgFile.m_FileSize; if(CfgFile.ReadFile(pOption,CfgFile.m_FileSize)==false) goto ErrorExit; CRCCode = GetCRCCode(RT_PBYTE(pOption,sizeof(CRCCode)),CfgFile.m_FileSize-sizeof(DWORD)); if(CRCCode==0 || CRCCode !=_GET_DWORD(pOption)) goto ErrorExit; CfgFile.Close(); return true; ErrorExit: CfgFile.Close(); return false; } bool SaveSyserHotKeyOption(PCSTR FileName,void*pOption,int Length) { bool Result; CImageFile CfgFile; if(CfgFile.Create(FileName)==false) return false; Result = true; _PUT_DWORD(pOption,GetCRCCode(RT_PBYTE(pOption,sizeof(DWORD)),Length-sizeof(DWORD))); if(CfgFile.WriteFile(pOption,Length)==false) Result = false; CfgFile.Close(); return Result; } ////////////////////////////////////////////////////////////////////////////// //Option ListSyser Win32 Debugger WISP_OPTION_ITEM SyserWin32DebuggerOption[]= { {WSTR("Show Full Symbol (Include Module Name)"),OPTION_SELECT_INT,&SyserOption.iShowFullSym,sizeof(int),CWispOptionForm::m_NoYesList,NULL,&SyserOptionRef}, {WSTR("Mouse Sensitivity [1 - 30]"),OPTION_INT,&SyserOption.iMouseSensitivity,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Default Debugger Module"),OPTION_STRING,&SyserOption.szDebuggerFileName,MAX_FN_LEN,NULL,NULL,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SyserSourceDebuggerOption[]= { {WSTR("Syntax Color"),OPTION_SELECT_INT,&SyserOption.iSourceCodeSyntaxColors,sizeof(int),CWispOptionForm::m_NoYesList,NULL,&SyserOptionRef}, {WSTR("Show Tips"),OPTION_SELECT_INT,&SyserOption.iSourceCodeShowTips ,sizeof(int),CWispOptionForm::m_NoYesList,NULL,&SyserOptionRef}, {WSTR("Show Line Numbers"),OPTION_SELECT_INT,&SyserOption.iSourceCodeShowLineNumbers ,sizeof(int),CWispOptionForm::m_NoYesList,NULL,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SyserMainOption[]= { {WSTR("Debugger"),OPTION_TITLE,SyserWin32DebuggerOption}, {WSTR("Source Code Debugger"),OPTION_TITLE,SyserSourceDebuggerOption}, {NULL} }; WISP_MSG_MAP_BEGIN(CSyserOptionForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispOptionForm) bool CSyserOptionForm::OnFormCreate(WISP_MSG*pMsg) { CWispOptionForm::OnFormCreate(pMsg); FillOptionTreeValue(); Resize(m_WindowRect.cx+m_BorderSize*2,m_WindowRect.cy+m_CaptionRect.cy+m_BorderSize*2); SetWindowText(WISP_STR("Option")); return false; } CSyserOptionForm::CSyserOptionForm() { m_pOptionItem = SyserMainOption; } bool CSyserOptionForm::InitWnd() { m_Style|=WISP_WS_FRAME; return CWispOptionForm::InitWnd(); } void CSyserOptionForm::OptionApplyNotify() { char szCfgFN[MAX_FN_LEN]; if(SyserOptionRef) { SyserOptionRef = 0; GetModulePath(szCfgFN); TStrCat(szCfgFN,"Syser.cfg"); SaveSyserOption(szCfgFN,&SyserOption,sizeof(SyserOption)); } } ================================================ FILE: Project/Syser/Source/SyserOption.h ================================================ #ifndef _SYSER_OPTION_H_ #define _SYSER_OPTION_H_ enum SYSER_CONNECT_TYPE { SYSER_NO_CONNECT = 0, SYSER_SERIAL_PORT_CONNECT, SYSER_NET_CARD_CONNECT }; enum SYSER_FOLLOW_MODE { SYSER_FM_AUTOMATIC = 0, SYSER_FM_SYSTEM_EXPLORER, SYSER_FM_SOURCE_EXPLORER }; enum VIDEO_DETECT_MODE { SYSER_VDM_AUTO = 0, SYSER_VDM_USER, SYSER_VDM_KERNEL, }; #define MIN_MAIN_HEAP 15 #define MAX_MAIN_HEAP 40 #define MIN_SYMBOL_HEAP 4 #define MAX_SYMBOL_HEAP 40 #define MIN_SOURCE_CODE_HEAP 6 #define MAX_SOURCE_CODE_HEAP 60 #define HEAP_MIN_FREE_SIZE 0x10000 #define MAIN_HEAP_MIN_FREE_SIZE 0x100000 typedef struct _KEY_PAIR { DWORD FuncKeyCode; DWORD SecondKeyCode; bool operator == (const struct _KEY_PAIR& dest) const { if(FuncKeyCode==dest.FuncKeyCode && SecondKeyCode == dest.SecondKeyCode) return true; return false; } }KEY_PAIR,*PKEY_PAIR; typedef struct _HOTKEY_INFO { char* KeyName; DWORD FuncKeyCode; DWORD SecondKeyCode; DWORD CommandID; DWORD TypeIndex;//Ǵȫֵ hotkey(дڵĿݼ) shortcat key ÿڵĿݼ ֻ뽹ڱʱõĿݼ char* Description; }HOTKEY_INFO,*PHOTKEY_INFO; typedef struct _HOTKEY_CONF { int Count; HOTKEY_INFO* pHotKeyInfo; }HOTKEY_CONF; extern HOTKEY_CONF gKeyConfig[5]; struct SYSER_OPTION { DWORD CRCCode;//Ч,ƻǷ޸ʱ,װȱʡ int iBigFont; int iFollowMode; int iShowStartSplash; int iShowFullSym; int iShowCCByte; int iMouseSensitivity; int iHistroyLines; //Source Debug int iSourceCodeShowTips; int iSourceCodeSyntaxColors; int iSourceCodeShowLineNumbers; //Conect int iConnectType; int iComPort; //Advance int iVideoDetectMode; int iStackSizeK; int iHardTimerEnable; WCHAR szDebuggerFileName[MAX_FN_LEN]; int iStartWndWidth; int iStartWndHeight; int iMaxWndWidth; int iMaxWndHeight; int iHeapSizeM; int iSourceCodeHeapSizeM; int iKeyboardLayer; int i3here; int i1here; int ifaults; }; extern SYSER_OPTION OrgSyserOption; extern SYSER_OPTION SyserOption; extern STRegOptVal SyserOptVal[]; extern CHAR DefaultPEExportList[]; extern HOTKEY_INFO gDefaultHotkeyInfo[]; extern BYTE* gSyserHotKeyDriverBuffer; extern int gSyserHotKeyDriverLen; bool LoadSyserOption(PCSTR FileName,void*pOption,int Length); bool SaveSyserOption(PCSTR FileName,void*pOption,int Length); bool LoadSyserHotKeyOption(PCSTR FileName,void*pOption,ULSIZE BufLen,int* Length); bool SaveSyserHotKeyOption(PCSTR FileName,void*pOption,int Length); bool LoadSyserOptionDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int Length); bool SaveSyserOptionDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int Length); bool LoadSyserHotKeyDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int BufLen,int* Length); bool SaveSyserHotKeyDriver(WCHAR* RegistryServiceName,WCHAR* FileName,void*pOption,int Length); bool SaveSyserHotKeyBufferDriver(void*pOption,int Length); class CSyserOptionForm : public CWispOptionForm { public: CSyserOptionForm(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) bool InitWnd(); void OptionApplyNotify(); }; #endif ================================================ FILE: Project/Syser/Source/SyserRegistryConfig.h ================================================ #ifndef _SYSERREGISTRYCONFIG_H_ #define _SYSERREGISTRYCONFIG_H_ #define SUPPORT_SOFTICE_CHECK L"SofticeExistCheck" #define SUPPORT_TIMER_INTERRUPT L"TimerInterrupt" #define SUPPORT_DEBUG_REGISTER_MONTIOR L"DebugRegisterMontior" #define SUPPORT_KEYBOARD_LED_PROGRAM L"KeyboardLedProgram" #define DISABLE_DISPLAY L"DisableDisplay" #define DEBUG_KEBOARD_INTERRUPT L"DebugKeyboardInterrupt" #define PATCH_KEBUGCHECKEX L"PatchKeBugCheckEx" #define EXCEPTION_DEBUG_INFO L"ExceptionDebugInfo" #define CHECK_PS2_MOUSE L"CheckPS2Mouse" #define PS2MOUSE_TYPE L"PS2MouseType" #define NULL_PS2_KEYBOARD L"NULLPS2Keyboard" #define DBLCLK_TIME_INTERVAL L"MouseDoubleClickTimeInterval" #define DISABLE_USBINPUT L"DisableUSBInput" #define DISABLE_RWPORTHOOK L"DisableRWPortHook" #define DISABLE_HOOKEXCEPTION L"DisableHookException" #define DISABLE_COPYONWRITE L"DisableCopyOnWrite" #define SUPPORT_VMWAREMOUSE L"SupportVMWareMouse" #define UNINITIALIZATION_VALUE (0x0) #endif ================================================ FILE: Project/Syser/Source/SyserResource.h ================================================ #ifndef _RESOURCE_H_ #define _RESOURCE_H_ enum { CMD_ID_SYSTEM_EXPLORER = WISP_ID_USER_START, CMD_ID_CONSOLE, CMD_ID_SOURCE_EXPLORER, CMD_ID_GAME_SPY, CMD_ID_BOCHS_PC_SCREEN, CMD_ID_PROC_COMBOX, CMD_ID_MAP_WND, CMD_ID_IDT_WND, CMD_ID_LDT_WND, CMD_ID_GDT_WND, CMD_ID_RUN_TRACE, CMD_ID_CALL_STACK, CMD_ID_COMMENT_LIST, CMD_ID_MODULE_LIST_WND, CMD_ID_THREAD_LIST_WND, CMD_ID_SEH_LIST_WND, CMD_ID_CALC_WND, CMD_ID_SOURCE_VERT_SPLIT, CMD_ID_SOURCE_HORZ_SPLIT, CMD_ID_SYSTEM_MAIN_SPLIT, CMD_ID_SYSTEM_VIEW_SPLIT, CMD_ID_SYSTEM_MONITOR_SPLIT, CMD_ID_MULTI_CODE_VIEW_TAB, CMD_ID_MULTI_DATA_VIEW_TAB, CMD_ID_TERMINAL_WND, CMD_ID_GENERAL_REGISTER_WND, CMD_ID_FPU_REGISTER_WND, CMD_ID_ESS_REGISTER_WND, EVENT_ID_TIMER_DBGMSG, EVENT_ID_DEBUG_PLUNGE, EVENT_ID_DEBUG_TERMINATE, EVENT_ID_ENTER_DEBUGGER, EVENT_ID_OPEN, EVENT_ID_CLOSE, EVENT_ID_SAVE_COMMENT, EVENT_ID_LOAD_COMMENT, EVENT_ID_LOAD_SYMBOL, EVENT_ID_BREAK, EVENT_ID_NEXT_POS, EVENT_ID_PREV_POS, EVENT_ID_SAVE_POS, EVENT_ID_EMPTY_POS_LIST, EVENT_ID_TRANSFER_REFERENCE, EVENT_ID_OPERAND_REFERENCE, EVENT_ID_RESET, EVENT_ID_STEP, EVENT_ID_PROCEED, EVENT_ID_STEP_BRANCH, EVENT_ID_RETURN, EVENT_ID_CONTINUE, EVENT_ID_BREAK_POINT, EVENT_ID_DEBUGGER_SELECT, EVENT_ID_DEBUGGER_OPTION, EVENT_ID_PLUGIN_LIST, EVENT_ID_GEN_REG, EVENT_ID_FPU_REG, EVENT_ID_XMM_REG, EVENT_ID_SDS_MODULE_LIST, EVENT_ID_SOURCE_CODE_VIEW, EVENT_ID_WATCH_LIST, EVENT_ID_CONSOLE_VIEW, EVENT_ID_STACK_WATCH_LIST, EVENT_ID_IDT, EVENT_ID_GDT, EVENT_ID_LDT, EVENT_ID_PROCESS, EVENT_ID_THREAD, EVENT_ID_MODULE, EVENT_ID_FUNCTIONS_WND, EVENT_ID_HWNDLIST_WND, EVENT_ID_RUN_TRACE_WND, EVENT_ID_MEMORY_SEARCH, EVENT_ID_COMMENT_LIST, EVENT_ID_PAGE_MAP, EVENT_ID_REG_HELP, EVENT_ID_ABOUT, EVENT_ID_CHECK_NEW_VERSION, EVENT_ID_OBJECTWND, EVENT_ID_RUN, EVENT_ID_CALC, EVENT_ID_CALL_STACK, EVENT_ID_REG_VIEW, EVENT_ID_DATA_VIEW_FORM, EVENT_ID_SOFT_KB, EVENT_ID_HOTKEY_CONFIGURE, EVENT_ID_PE_EXPLORER, EVENT_ID_IBM_ASCII, EVENT_ID_EBCDIC, EVENT_ID_ANSI_ASCII, EVENT_ID_ABOUT_SYSER, EVENT_ID_SHOW_MENU, EVENT_ID_EDITMENU_UNDO, EVENT_ID_EDITMENU_REDO, EVENT_ID_EDITMENU_CUT, EVENT_ID_EDITMENU_COPY, EVENT_ID_EDITMENU_PASTE, EVENT_ID_EDITMENU_GOTO, EVENT_ID_EDITMENU_FIND, EVENT_ID_EDITMENU_RELPACE, EVENT_ID_BOOKMARK_TOGGLE, EVENT_ID_BOOKMARK_NEXT, EVENT_ID_BOOKMARK_PREV, EVENT_ID_BOOKMARK_CLEAR, EVENT_ID_SEH_CHAIN, EVENT_ID_MENU_FILE, EVENT_ID_MENU_DEBUG, EVENT_ID_MENU_MONITOR, EVENT_ID_MENU_VIEW, EVENT_ID_MENU_INFORMATION, EVENT_ID_MENU_OPTION, EVENT_ID_MENU_TOOL, EVENT_ID_MENU_HELP, EVENT_ID_RECENT_FILE, EVENT_ID_RECENT_FILE_END = EVENT_ID_RECENT_FILE+8, EVENT_ID_SET_AS, CMD_ID_INSTR_INFO, ////////////////////////////////////////// //// CStackWatchList ////////////////////////////////////////// EVENT_ID_SET_DATAVIEW_EAX, EVENT_ID_SET_DATAVIEW_EBX, EVENT_ID_SET_DATAVIEW_ECX, EVENT_ID_SET_DATAVIEW_EDX, EVENT_ID_SET_DATAVIEW_ESP, EVENT_ID_SET_DATAVIEW_EBP, EVENT_ID_SET_DATAVIEW_ESI, EVENT_ID_SET_DATAVIEW_EDI, EVENT_ID_SET_DATAVIEW_EIP, EVENT_ID_SET_CODEVIEW_EAX, EVENT_ID_SET_CODEVIEW_EBX, EVENT_ID_SET_CODEVIEW_ECX, EVENT_ID_SET_CODEVIEW_EDX, EVENT_ID_SET_CODEVIEW_ESP, EVENT_ID_SET_CODEVIEW_EBP, EVENT_ID_SET_CODEVIEW_ESI, EVENT_ID_SET_CODEVIEW_EDI, EVENT_ID_SET_CODEVIEW_EIP, ////////////////////////////////////////// //// CStackWatchList ////////////////////////////////////////// EVENT_ID_SHOW_CODE, EVENT_ID_SHOW_CODE_BY_ADDRESS, EVENT_ID_SHOW_ESP_ADDR, EVENT_ID_SHOW_EBP_ADDR, ////////////////////////////////////////// //// CDataView ////////////////////////////////////////// EVENT_ID_DATAVIEW, EVENT_ID_SHOW_DATA, EVENT_ID_SHOW_DATA_BY_ADDRESS, EVENT_ID_SHOW_DATA_NEWWND, EVENT_ID_DASM_ADDRESS, EVENT_ID_DASM_ADDRESS_NEWWND, EVENT_ID_SHOW_PHYS_ADDR, EVENT_ID_DISASSEMBLE_PHYS_ADDR, EVENT_ID_DATAVIEW_TOOLBAR, EVENT_ID_ATTACH_TYPE, EVENT_ID_DATA_SHOW_OFFICE, EVENT_ID_FIND_DATA, EVENT_ID_FLOAT_ADDRESS_MODE, EVENT_ID_TOGGLE_ADDRESS_MODE, EVENT_ID_ACTIVE_DATAVIEW_0, EVENT_ID_ACTIVE_DATAVIEW_1, EVENT_ID_ACTIVE_DATAVIEW_2, EVENT_ID_ACTIVE_DATAVIEW_3, EVENT_ID_ACTIVE_DATAVIEW_4, EVENT_ID_ACTIVE_DATAVIEW_5, EVENT_ID_ACTIVE_DATAVIEW_6, EVENT_ID_ACTIVE_DATAVIEW_7, EVENT_ID_ACTIVE_DATAVIEW_8, DATAOPERATOR_ID_BYTEFLIP, DATAOPERATOR_ID_INVERSEBITS, DATAOPERATOR_ID_SHIFTLEFT, DATAOPERATOR_ID_SHIFTRIGHT, DATAOPERATOR_ID_ROTATELEFT, DATAOPERATOR_ID_ROTATERIGHT, DATAOPERATOR_ID_BLOCKSHIFTLEFT, DATAOPERATOR_ID_BLOCKSHIFTRIGHT, DATAOPERATOR_ID_XOR, DATAOPERATOR_ID_OR, DATAOPERATOR_ID_AND, DATAOPERATOR_ID_CHANGESIGN, DATAOPERATOR_ID_ADD, DATAOPERATOR_ID_SUBTRACT, DATAOPERATOR_ID_MULTIPLY, DATAOPERATOR_ID_DIVIDE, DATAOPERATOR_ID_MOD, DATAOPERATOR_ID_UPPERCASE, DATAOPERATOR_ID_LOWERCASE, DATAOPERATOR_ID_INVERSECASE, ////////////////////////////////////////// //// Thread ////////////////////////////////////////// EVENT_ID_GOTO_THREAD_STRUCT, EVENT_ID_GOTO_PROCESS_STRUCT, EVENT_ID_GOTO_START_ADDRESS, EVENT_ID_GOTO_THREAD_EIP, EVENT_ID_SET_BREAKPOINT_AT_THREAD, EVENT_ID_SET_BREAKPOINT_AT_PROCESS, ////////////////////////////////////////// //// CCodeView ////////////////////////////////////////// EVENT_ID_CODEVIEW, EVENT_ID_FM_AUTOMATIC, EVENT_ID_FM_SYSTEM_EXPLORER, EVENT_ID_FM_SOURCE_CODE_EXPLORER, EVENT_ID_ANALYZE_FROM_ADDRESS, EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW, EVENT_ID_FOLLOW_VALUE_TO_CODEVIEW, EVENT_ID_FOLLOW_VALUE_TO_DATAVIEW_WITH_OFFSET, EVENT_ID_COPY_VALUE_TO_CLIPBOARD, EVENT_ID_COPY_CARETPOSITION_TO_CLIPBOARD, EVENT_ID_COPY_SEL_VALUE, EVENT_ID_COPY_SEL_VALUE_AS_C_SOURCE_CODE, EVENT_ID_COPY_SEL_VALUE_NO_SEPARATOR, EVENT_ID_TOGGLE_FLOAT_MODE, EVENT_ID_ADDRESS_MODE_HEX, EVENT_ID_OFFSET_MODE_HEX, EVENT_ID_TOGGLE_SYMBOL, EVENT_ID_TOGGLE_FULL_SYMBOL, EVENT_ID_RELATIVE_TO_ESP, EVENT_ID_RELATIVE_TO_EBP, EVENT_ID_ADDRESS_ORFER, EVENT_ID_RELATIVE_TO_EIP, EVENT_ID_CODEVIEW_EDIT_CODE, EVENT_ID_CODEVIEW_EDIT_COMMENT, EVENT_ID_STRING_REFERENCE, EVENT_ID_STRING_REFERENCE_WISPLIST, EVENT_ID_GETNEXTTRACE, EVENT_ID_GETPREVTRACE, EVENT_ID_FOLLOW_TO_DESTINATION, EVENT_ID_STARTADDRESS_INC, EVENT_ID_STARTADDRESS_DEC, EVENT_ID_ACTIVE_CODEVIEW_0, EVENT_ID_ACTIVE_CODEVIEW_1, EVENT_ID_ACTIVE_CODEVIEW_2, EVENT_ID_ACTIVE_CODEVIEW_3, EVENT_ID_ACTIVE_CODEVIEW_4, EVENT_ID_ACTIVE_CODEVIEW_5, EVENT_ID_ACTIVE_CODEVIEW_6, EVENT_ID_ACTIVE_CODEVIEW_7, EVENT_ID_ACTIVE_CODEVIEW_8, EVENT_ID_GOTO_NEXT_POS, EVENT_ID_GOTO_PREV_POS, ////////////////////////////////////////// //// CStringReference ////////////////////////////////////////// EVENT_ID_SR_SEARCH_AGAIN, EVENT_ID_SR_SEARCH, ////////////////////////////////////////// //// CTypeViewerWnd ////////////////////////////////////////// EVENT_ID_TYPEVIEWERWND_HEX_DISPLAY, EVENT_ID_TYPEVIEWERWND_DELETE_WATCH, ////////////////////////////////////////// //// CWatchList CComment ////////////////////////////////////////// EVENT_ID_ADD, EVENT_ID_GOTO, EVENT_ID_ANALYZE, EVENT_ID_REMOVE, ////////////////////////////////////////// //// CMultiCodeView ////////////////////////////////////////// CMD_ID_CODE_VIEW_START, CMD_ID_CODE_VIEW_END = CMD_ID_CODE_VIEW_START+10, ////////////////////////////////////////// //// CMultiDataView ////////////////////////////////////////// CMD_ID_DATA_VIEW_START, CMD_ID_DATA_VIEW_END = CMD_ID_DATA_VIEW_START+10, ////////////////////////////////////////// //// ////////////////////////////////////////// CMD_ID_PLUGIN_START, ////////////////////////////////////////// //// CSourceDebugClassViewList ////////////////////////////////////////// EVENT_ID_SOURCEDEBUGCLASSVIEW_FIND, ////////////////////////////////////////// //// CSourceCodeFrame ////////////////////////////////////////// EVENT_ID_SOURCECODEFRAME_TOGGLE_BP, EVENT_ID_SOURCECODEFRAME_TOGGLE_BP_STATE, EVENT_ID_SOURCECODEFRAME_REMOVE_BP_ALL, EVENT_ID_SOURCECODEFRAME_REMOVE_BP_DISABLE, EVENT_ID_SOURCECODEFRAME_TOGGLE_BOOKMARKS, EVENT_ID_SOURCECODEFRAME_CLEAR_ALL_BOOKMARKS, EVENT_ID_SOURCECODEFRAME_SET_EIP, ////////////////////////////////////////// //// CSourceCodeWnd ////////////////////////////////////////// EVENT_ID_ADDWATCH, EVENT_ID_EXPANSION, EVENT_ID_COLLAPSE, EVENT_ID_GOTOLINE, EVENT_ID_TOGGLE_BP, EVENT_ID_TOGGLE_BP_STATE, EVENT_ID_ENABLE_BP_ALL, EVENT_ID_REMOVE_BP_ALL, EVENT_ID_DISABLE_BP_ALL, EVENT_ID_TOGGLE_BOOKMARKS, EVENT_ID_CLEAR_ALL_BOOKMARKS, EVENT_ID_SET_EIP, }; #endif ================================================ FILE: Project/Syser/Source/SyserSymAnalyzer.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SyserSymAnalyzer.h" SDBASETYPENAME BaseTypeNameStruct[27]= { {btNoType,"NoType"}, {btVoid,"void"}, {btInt1,"char"}, {btInt2,"wchar"}, //{btInt,"short"}, {btInt1,"char"}, {btInt2,"short"}, {btInt4,"int"}, {btInt8,"__int64"}, {btUint2,"unsigned short int"}, {btUint1,"unsigned char"}, {btUint2,"unsigned short"}, {btUint4,"unsigned int"}, {btUint8,"unsigned __int64"}, {btInt4,"float"}, {btInt8,"double"}, {btBCD,"BCD"}, {btUint1,"bool"}, {btInt4,"long"}, {btUint4,"unsigned long"}, {btCurrency,"Currency"}, {btDate,"date"}, {btVariant,"variant"}, {btComplex,"complex"}, {btBit,"bit"}, {btBSTR,"BSTR"}, {btHresult,"HRESULT"}, }; DWORD GetBaseTypeIdByName(char*Name) { DWORD i,Count = sizeof(BaseTypeNameStruct)/sizeof(BaseTypeNameStruct[0]); for(i = 0; i < Count; i++) { if(TStrCmp(BaseTypeNameStruct[i].Name,Name)==0) return BaseTypeNameStruct[i].Type; } return 0; } void CSDSModule::SetModuleFileName(PCSTR szFileName) { m_ModuleFileName = szFileName; } bool CSDSModule::LoadSymFile(PCSTR FileName) { SDSYMBOLFILE SymFileHeader; ULLSIZE ReadLen; if(m_bInitOK) return true; if(gpFileIO->OpenFile(FileName,&m_hFileHandle)==false) { return false; } memset(&SymFileHeader,0,sizeof(SymFileHeader)); ReadLen = gpFileIO->ReadFile(m_hFileHandle,&SymFileHeader,sizeof(SymFileHeader),0); if(ReadLen!=sizeof(SymFileHeader)) { gpFileIO->CloseHandle(m_hFileHandle); return false; } if(SymFileHeader.Version!=SYSER_DEBUG_SYMBOL_FILE_VER) { gpFileIO->CloseHandle(m_hFileHandle); return false; } m_SymFileSize = gpFileIO->GetFileLength(m_hFileHandle); if(IsHeapFreeBelow(SYSER_SOURCE_DEBUG_HEAP,m_SymFileSize*2)) { return false; } m_FileBuffer = new char[(unsigned int)m_SymFileSize]; if(m_FileBuffer==NULL) { gpFileIO->CloseHandle(m_hFileHandle); return false; } ReadLen = gpFileIO->ReadFile(m_hFileHandle,m_FileBuffer,(ULSIZE)m_SymFileSize,0); if(ReadLen!=m_SymFileSize) { gpFileIO->CloseHandle(m_hFileHandle); delete []m_FileBuffer; return false; } if(CheckSDSymbolFileCheckSum()==false) { gpFileIO->CloseHandle(m_hFileHandle); delete []m_FileBuffer; return false; } m_SDSymbolFile = (PSDSYMBOLFILE)m_FileBuffer; SymRelocation(m_SDSymbolFile); gpFileIO->CloseHandle(m_hFileHandle); CreateName2IDMap(); m_SymbolFileName = FileName; m_bInitOK=true; return true; } void CSDSModule::UnloadSymFile() { if(m_bInitOK==false) return ; if(m_FileBuffer) delete []m_FileBuffer; //m_SymbolMap.Clear(); DeleteName2IDMap(); m_bInitOK=false; } CSDSModule::CSDSModule() { m_SymFileSize=0; m_hFileHandle=NULL; m_SDSymbolFile=NULL; m_FileBuffer=NULL; m_StrTable=NULL; m_bInitOK=false; m_MemoryUsed = 0; m_ParentPID = 0; } CSDSModule::~CSDSModule() { UnloadSymFile(); } MODULE_ID CSDSModule::GetSDSMouleID(PCSTR szSDSFileName) { HANDLE hFile; SDSYMBOLFILE SymFileHeader; ULSIZE ReadLen; if(gpFileIO->OpenFile(szSDSFileName,&hFile)==false) return 0; STZeroMemory(SymFileHeader); ReadLen = gpFileIO->ReadFile(hFile,&SymFileHeader,sizeof(SymFileHeader),0); gpFileIO->CloseHandle(hFile); if(ReadLen!=sizeof(SymFileHeader) || SymFileHeader.Sig!=SYSER_DEBUG_SYMBOL_FILE_SIG ||SymFileHeader.Version!=SYSER_DEBUG_SYMBOL_FILE_VER) return 0; return MAKE_MODULE_ID(SymFileHeader.ModuleID.OrgPECheckSum,SymFileHeader.ModuleID.TimeDateStamp); } MODULE_ID CSDSModule::GetModuleID() { if(m_SDSymbolFile==NULL) return 0; return MAKE_MODULE_ID(m_SDSymbolFile->ModuleID.OrgPECheckSum,m_SDSymbolFile->ModuleID.TimeDateStamp); } PSDSOURCEFILEID CSDSModule::GetSourceFileList(OUT DWORD *SourceFileNum)const { if(SourceFileNum) *SourceFileNum=m_SDSymbolFile->SourceFileCounter; return m_SDSymbolFile->UnionSourceFileIDTable.SourceFileIDTablePointer; } DWORD CSDSModule::GetSourceFileCountInPackages()const { return m_SDSymbolFile->PackageSourceFileCounter; } /* const char* CSDSModule::GetSymbolNameByRVA(DWORD Rva) { SYMORDATAINDEXLIST::IT FindIt; SYMORDATAINDEX FindValue; FindValue.Rva=Rva; FindIt = m_SymbolMap.Find(FindValue); if(FindIt==m_SymbolMap.End()) return NULL; return GetSymbolName(*FindIt); } */ void CSDSModule::SymRelocation(PSDSYMBOLFILE pSymbolFile) { DWORD *SymIndexTable; DWORD *StrIndexTable; DWORD *FunctionIndexTable; DWORD TempDword; DWORD i; DWORD BaseAddress=*(DWORD*)&pSymbolFile; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; PSDFUNCTIONITEM pFuncItem; PSDSOURCEFILEID pSourceFileID; //SYMORDATAINDEX SymOrDataIndex={0,0,0}; DWORD StringTableBaseAddress; //////////////////////////////////////////////////////////////////////// //////ضλ //////////////////////////////////////////////////////////////////////// TempDword = BaseAddress+pSymbolFile->UnionStringIndexTable.StringIndexTableOffset; StrIndexTable=*(DWORD**)&TempDword; m_StrTable=(char**)StrIndexTable; StringTableBaseAddress=BaseAddress+pSymbolFile->UnionStringTable.StringTableOffset; for(i = 0; i < pSymbolFile->StringTotalNum; i++) { StrIndexTable[i]+=StringTableBaseAddress; } //////////////////////////////////////////////////////////////////////// //////ضλ ļͷ //////////////////////////////////////////////////////////////////////// BYTE* TempPtr=(BYTE*)pSymbolFile; pSymbolFile->UnionLineNumber.pLineNumberTablePointer =(PSDLINE)&TempPtr[m_SDSymbolFile->UnionLineNumber.LineNumberOffset]; pSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer = (PSDFUNCTIONITEM*)&TempPtr[pSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTableOffset]; pSymbolFile->UnionSymbolIndexTable.SymbolIndexTablePointer = (PSDTYPE_INFILE*)&TempPtr[pSymbolFile->UnionSymbolIndexTable.SymbolIndexTableOffset]; pSymbolFile->UnionSourceFileIDTable.SourceFileIDTablePointer =(PSDSOURCEFILEID)&TempPtr[pSymbolFile->UnionSourceFileIDTable.SourceFileIDTableOffset]; pSymbolFile->UnionDataInformation.DataInformationPointer =(PSDUDTDATAITEM)&TempPtr[pSymbolFile->UnionDataInformation.DataInformationOffset]; pSymbolFile->UnionPublicSymbol.PublicSymbolPointer =(PSDPUBLICSYMBOL) &TempPtr[pSymbolFile->UnionPublicSymbol.PublicSymbolOffset]; if(pSymbolFile->uPDBFileName.PDBFileNameOffset) pSymbolFile->uPDBFileName.PDBFileName=(char*)&TempPtr[pSymbolFile->uPDBFileName.PDBFileNameOffset]; else pSymbolFile->uPDBFileName.PDBFileName = m_StrTable[0]; if(pSymbolFile->uPEFileName.PEFileNameOffset) pSymbolFile->uPEFileName.PEFileName=(char*)&TempPtr[pSymbolFile->uPEFileName.PEFileNameOffset]; else pSymbolFile->uPEFileName.PEFileName = m_StrTable[0]; if(pSymbolFile->uPEFileFullName.PEFileFullNameOffset) pSymbolFile->uPEFileFullName.PEFileFullName=(char*)&TempPtr[pSymbolFile->uPEFileFullName.PEFileFullNameOffset]; else pSymbolFile->uPEFileFullName.PEFileFullName = m_StrTable[0]; //////////////////////////////////////////////////////////////////////// //////ضλ source code file //////////////////////////////////////////////////////////////////////// pSourceFileID =pSymbolFile->UnionSourceFileIDTable.SourceFileIDTablePointer; for(i = 0; i < pSymbolFile->SourceFileCounter;i++) { pSourceFileID[i].uName.Name=m_StrTable[pSourceFileID[i].uName.MemberNameInStringTableIndex]; pSourceFileID[i].OffsetAtFile+=BaseAddress; } //////////////////////////////////////////////////////////////////////// //////ضλ //////////////////////////////////////////////////////////////////////// SymIndexTable=(DWORD*)pSymbolFile->UnionSymbolIndexTable.SymbolIndexTablePointer; //SymOrDataIndex.Type = RVA_FUNCTION_BODY; for(i = 0; i < pSymbolFile->SymbolTotalNum; i++) { SymIndexTable[i]+=BaseAddress; pType=*(PSDTYPE_INFILE*)&SymIndexTable[i]; pType->uName.Name = m_StrTable[pType->uName.StringTableIndex]; if(pType->Type==SD_ENUMERATION) { PSDENUMERATIONTYPE pEnum = (PSDENUMERATIONTYPE)&pType[1]; DWORD EnumCount = pEnum->DataCount; for(DWORD j = 0; j < EnumCount;j++) { pEnum->EnumerationDataMember[j].u.Name=m_StrTable[pEnum->EnumerationDataMember[j].u.MemberNameInStringTableIndex]; } } if(pType->Type==SD_STRUCT||pType->Type==SD_CLASS||pType->Type==SD_UNION) { PSDUDTTYPE pUdtType = (PSDUDTTYPE)&pType[1]; if(pUdtType->DataCounter) pUdtType->pData.DataMemberOffset += *(DWORD*)&pType; else pUdtType->pData.DataMemberOffset=0; if(pUdtType->FunctionCounter) pUdtType->pFunction.FunctionMemberOffset += *(DWORD*)&pType; else pUdtType->pFunction.FunctionMemberOffset=0; if(pUdtType->BaseClassCounter) pUdtType->pBaseClass.BaseClassMemberOffset += *(DWORD*)&pType; else pUdtType->pBaseClass.BaseClassMemberOffset=0; if(pUdtType->VTableCount) pUdtType->pVTable.VTableMemberOffset += *(DWORD*)&pType; else pUdtType->pVTable.VTableMemberOffset=0; } } //////////////////////////////////////////////////////////////////////// //////ضλ //////////////////////////////////////////////////////////////////////// FunctionIndexTable=(DWORD*)pSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer; PSDFUNCTIONITEM* pFuncItemArray=(PSDFUNCTIONITEM*)FunctionIndexTable; //SymOrDataIndex.Type = RVA_FUNCTION_BODY; for(i = 1; i < pSymbolFile->FunctionSymbolNum; i++) { FunctionIndexTable[i]+=BaseAddress; pFuncItem=*(PSDFUNCTIONITEM*)&FunctionIndexTable[i]; if(pFuncItem->DataCounter) pFuncItem->pData.DataMemberOffset+=(*(DWORD*)&pFuncItem); else pFuncItem->pData.DataMemberOffset=0; if(pFuncItem->BlockCounter) pFuncItem->pBlock.BlockOffset+=(*(DWORD*)&pFuncItem); else pFuncItem->pBlock.BlockOffset=0; pFuncItem->uName.Name = m_StrTable[pFuncItem->uName.MemberNameInStringTableIndex]; //SymOrDataIndex.Name = pFuncItem->uName.Name; //SymOrDataIndex.Index=i; //SymOrDataIndex.Rva=pFuncItem->Rva; //m_SymbolMap.Append(SymOrDataIndex); } //////////////////////////////////////////////////////////////////////// //////ضλ ݱ //////////////////////////////////////////////////////////////////////// //SymOrDataIndex.Type=RVA_DATA_ITEM; PSDUDTDATAITEM pDataArray = pSymbolFile->UnionDataInformation.DataInformationPointer; for(i = 0; i < pSymbolFile->DataInformationNum; i++) { pUdtDataItem=&pDataArray[i]; pUdtDataItem->uName.Name = m_StrTable[pUdtDataItem->uName.StringTableIndex]; if(pUdtDataItem->Location==LocIsStatic) { //SymOrDataIndex.Name = pUdtDataItem->uName.Name; //SymOrDataIndex.Index=i; //SymOrDataIndex.Rva=pUdtDataItem->u.LOCISSTATIC.Rav; //m_SymbolMap.Append(SymOrDataIndex); } } //SymOrDataIndex.Type=RVA_PUBLIC_SYMBOL; TempDword = pSymbolFile->PublicSymbolCounter; PSDPUBLICSYMBOL pPubArray = pSymbolFile->UnionPublicSymbol.PublicSymbolPointer; for(i = 0; i < TempDword; i++) { pPubArray[i].uName.Name = m_StrTable[pPubArray[i].uName.StringTableIndex]; pPubArray[i].UndecoratedName.Name = m_StrTable[pPubArray[i].UndecoratedName.StringTableIndex]; //SymOrDataIndex.Name = pPubArray[i].uName.Name; //SymOrDataIndex.Index=i; //SymOrDataIndex.Rva=pPubArray[i].Rva; //m_SymbolMap.Append(SymOrDataIndex); } } PSDPUBLICSYMBOL CSDSModule::GetPublicSymbol(unsigned int index)const { if(index >= m_SDSymbolFile->PublicSymbolCounter) index=0; return &m_SDSymbolFile->UnionPublicSymbol.PublicSymbolPointer[index]; } PSDUDTDATAITEM CSDSModule::GetDataSymbolByNameAndLocation(char* Name,int nLocation)const { DWORD dwDataCount; PSDUDTDATAITEM pDataItem,pDataItemArray; dwDataCount=m_SDSymbolFile->DataInformationNum; pDataItemArray = m_SDSymbolFile->UnionDataInformation.DataInformationPointer; for(DWORD i = 1; i < dwDataCount;i++) { pDataItem = &pDataItemArray[i]; //if(pDataItem->Location==nLocation) { if(TStrCmp(Name,pDataItem->uName.Name)==0) return pDataItem; } } return NULL; } PSDUDTDATAITEM CSDSModule::GetDataSymbolByName(char* Name)const { DWORD dwDataCount; PSDUDTDATAITEM pDataItem,pDataItemArray; dwDataCount=m_SDSymbolFile->DataInformationNum; pDataItemArray = m_SDSymbolFile->UnionDataInformation.DataInformationPointer; for(DWORD i = 1; i < dwDataCount;i++) { pDataItem = &pDataItemArray[i]; if(TStrCmp(Name,pDataItem->uName.Name)==0) return pDataItem; } return NULL; } PSDUDTDATAITEM CSDSModule::GetDataSymbolByNameAndKind(const char* Name,int nDataKind)const { DWORD dwDataCount; PSDUDTDATAITEM pDataItem,pDataItemArray; dwDataCount=m_SDSymbolFile->DataInformationNum; pDataItemArray = m_SDSymbolFile->UnionDataInformation.DataInformationPointer; for(DWORD i = 1; i < dwDataCount;i++) { pDataItem = &pDataItemArray[i]; if(pDataItem->KindData==nDataKind) { if(TStrCmp(Name,pDataItem->uName.Name)==0) return pDataItem; } } return NULL; } PSDUDTDATAITEM CSDSModule::GetDataSymbol(unsigned int index)const { if(index >= m_SDSymbolFile->DataInformationNum) index = 0; return &m_SDSymbolFile->UnionDataInformation.DataInformationPointer[index]; } const char* CSDSModule::GetTypeNameByID(unsigned int id)const { if(id >=m_SDSymbolFile->SymbolTotalNum) id = 0; return GetTypeSymbol(id)->uName.Name; } PSDTYPE_INFILE CSDSModule::GetTypeSymbol(unsigned int index)const { if(index >=m_SDSymbolFile->SymbolTotalNum) index = 0; return m_SDSymbolFile->UnionSymbolIndexTable.SymbolIndexTablePointer[index]; } const char* CSDSModule::GetDataName(PSDUDTDATAITEM pUdtDataItem)const { if(pUdtDataItem==NULL) return m_StrTable[0]; return pUdtDataItem->uName.Name; } const char* CSDSModule::GetTypeName(PSDTYPE_INFILE pSDType)const { if(pSDType==NULL) return m_StrTable[0]; return pSDType->uName.Name; } const char* CSDSModule::GetPublicSymbolName(PSDPUBLICSYMBOL pSDPublicSymbol)const { if(pSDPublicSymbol==NULL) return m_StrTable[0]; return pSDPublicSymbol->uName.Name; } /* const char* CSDSModule::GetSymbolName(SYMORDATAINDEX Symbol)const { if(Symbol.Type==RVA_FUNCTION_BODY) return GetTypeName(GetTypeSymbol(Symbol.Index)); if(Symbol.Type==RVA_DATA_ITEM) return GetDataName(GetDataSymbol(Symbol.Index)); if(Symbol.Type==RVA_PUBLIC_SYMBOL) return GetPublicSymbolName(GetPublicSymbol(Symbol.Index)); return NULL; } */ void* CSDSModule::GetSymbolAddressBySymbolName(IN const char* SymbolName,OUT DWORD* SymbolLength) { return NULL; } PSDSOURCEFILEID CSDSModule::GetSourceFileByID(IN DWORD SourceFileId)const { DWORD i; DWORD dwFileTotalNum=m_SDSymbolFile->SourceFileCounter; PSDSOURCEFILEID pSourceFileId = m_SDSymbolFile->UnionSourceFileIDTable.SourceFileIDTablePointer; for(i =0;i < dwFileTotalNum;i++) if(pSourceFileId[i].FileID==SourceFileId) return &pSourceFileId[i]; return NULL; } PSDSOURCEFILEID CSDSModule::GetSourceFileByName(const char* SourceFileName)const { DWORD i; char* FileName; DWORD dwFileTotalNum=m_SDSymbolFile->SourceFileCounter; PSDSOURCEFILEID pSourceFileId = m_SDSymbolFile->UnionSourceFileIDTable.SourceFileIDTablePointer; for(i =0;i < dwFileTotalNum;i++) { FileName=TStrRChr(pSourceFileId[i].uName.Name,'\\'); if(FileName) { FileName++; if(TStrICmp(FileName,SourceFileName)==0) return &pSourceFileId[i]; } } return NULL; } DWORD CSDSModule::GetLineBySourceFileID(DWORD SourceFileId,SDLINELIST* Line)const { DWORD Count=0; DWORD i; DWORD dwLineTotalNum=m_SDSymbolFile->LineNumberCounter; PSDLINE pLine = m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; for(i = 0; i < dwLineTotalNum;i++) { if(pLine[i].FileID==SourceFileId) { if(Line) Line->Append(&pLine[i]); Count++; } } return Count; } DWORD CSDSModule::GetLineFromRva(DWORD Rva,SDLINELIST* Line)const { DWORD Count=0; DWORD dwLineTotalNum=m_SDSymbolFile->LineNumberCounter; PSDLINE pLine = m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; DWORD i; for(i = 0; i < dwLineTotalNum;i++) { if(Rva >= pLine[i].Rva &&Rva < pLine[i].Rva + pLine[i].Len) { if(Line) Line->Append(&pLine[i]); Count++; } } return Count; } DWORD CSDSModule::GetLineByRva(DWORD Rva,SDLINELIST* Line)const { DWORD Count=0; DWORD Begin,End; DWORD dwTotalNum = m_SDSymbolFile->LineNumberCounter; PSDLINE pLine=m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; Begin=0; End=dwTotalNum-1; for(;Begin<=End;) { if(Rva>pLine[(Begin+End)/2].Rva) Begin=(Begin+End)/2; else if(Rva==pLine[(Begin+End)/2].Rva) { Line->Append(&pLine[(Begin+End)/2]); Count=1; break; } else End=(Begin+End)/2; } return Count; } DWORD CSDSModule::GetLineBySourceFileID(IN DWORD SourceFileId,INOUT LINENUMBERMAP* LineMap)const { DWORD Count=0; SDLINEINFO SDLineInfo; LINENUMBERMAP::IT FindIT; DWORD dwTotalNum = m_SDSymbolFile->LineNumberCounter; PSDLINE pLine=m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; for(unsigned int i = 0; i < dwTotalNum;i++) { if(pLine[i].FileID==SourceFileId) { SDLineInfo.Number=1; SDLineInfo.pLine=&pLine[i]; if(LineMap) { FindIT = LineMap->InsertUnique(pLine[i].LineNumber,SDLineInfo); if(FindIT==LineMap->End()) { FindIT=LineMap->Find(pLine[i].LineNumber); (*FindIT).Number++; } } Count++; } } if(Count>1) Count--,Count++; return Count; } DWORD CSDSModule::GetLineBySourceFileID(DWORD SourceFileId,DWORD LineNum,SDLINELIST* Line)const { DWORD Count=0; DWORD dwTotalNum = m_SDSymbolFile->LineNumberCounter; PSDLINE pLine=m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; for(unsigned int i = 0; i < dwTotalNum;i++) { if(pLine[i].FileID==SourceFileId&&pLine[i].LineNumber==LineNum) { if(Line) Line->Append(&pLine[i]); Count++; } } if(Count>1) Count--,Count++; return Count; } PSDLINE CSDSModule::GetContiguityLineBySourceFileID(DWORD SourceFileId,DWORD LineNum)const { DWORD CurrentLineNum=0xffffffff; DWORD LineTotalNum; PSDLINE pCurrentLine=NULL,pLine=m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; DWORD Count=0; LineTotalNum = m_SDSymbolFile->LineNumberCounter; for(unsigned int i = 0; i < LineTotalNum;i++) { if(pLine[i].FileID==SourceFileId&&pLine[i].LineNumber>LineNum) { if(CurrentLineNum > pLine[i].LineNumber) pCurrentLine = &pLine[i],CurrentLineNum=pLine[i].LineNumber; } } return pCurrentLine; } PSDFUNCTIONITEM CSDSModule::GetFunctionByLineNumber(IN DWORD FileId,IN DWORD LineNum)const { SDLINELIST LineList; PSDLINE pLine; if(GetLineBySourceFileID(FileId,LineNum,&LineList)) pLine = *LineList.Begin(); else pLine = GetContiguityLineBySourceFileID(FileId,LineNum); if(pLine==NULL) return NULL; return GetFunctionFromRav(pLine->Rva); } PSDFUNCTIONITEM CSDSModule::GetFunctionFromRav(DWORD Rva)const { DWORD FunctionTotalNum=m_SDSymbolFile->FunctionSymbolNum; PSDFUNCTIONITEM* pFuncArray = m_SDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer; PSDFUNCTIONITEM pFuncItem; for(unsigned int i = 1; i < FunctionTotalNum;i++) { pFuncItem = pFuncArray[i]; if(Rva >= pFuncItem->Rva && Rva Rva+pFuncItem->Size) return pFuncItem; } return NULL; } char* CSDSModule::GetFuncNameByRva(DWORD Rva)const { DWORD FunctionTotalNum=m_SDSymbolFile->FunctionSymbolNum; PSDFUNCTIONITEM* pFuncArray=m_SDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer; PSDFUNCTIONITEM pFuncItem; for(unsigned int i = 1; i < FunctionTotalNum;i++) { pFuncItem = pFuncArray[i]; if(Rva >= pFuncItem->Rva && Rva Rva+pFuncItem->Size) return pFuncItem->uName.Name; } return m_StrTable[0]; } PSDTYPE_INFILE* CSDSModule::GetSymbolList(DWORD* ItemCount)const { if(ItemCount) *ItemCount = m_SDSymbolFile->SymbolTotalNum; return m_SDSymbolFile->UnionSymbolIndexTable.SymbolIndexTablePointer; } /* void CSDSModule::CreateSourceLineMap() { DWORD i; SOURCELINEMAP::IT FindIt; LINEINDEXLIST LineIndexList; LINEINDEXINFO LineIndexInfo; DWORD SourceFileID=0-1; DWORD dwLineTotalNum=m_SDSymbolFile->LineNumberCounter; PSDLINE pLine = m_SDSymbolFile->UnionLineNumber.pLineNumberTablePointer; SourceFileID=pLine[0].FileID; FindIt = m_SourceLineMap.InsertUnique(SourceFileID,LineIndexList); LineIndexInfo.BeginIndex=0; for(i = 0; i < dwLineTotalNum;i++) { if(SourceFileID==pLine[i].FileID) continue; LineIndexInfo.Number=i-LineIndexInfo.BeginIndex; (*FindIt).Append(LineIndexInfo); SourceFileID=pLine[i].FileID; FindIt = m_SourceLineMap.InsertUnique(SourceFileID,LineIndexList); if(FindIt==m_SourceLineMap.End()) FindIt=m_SourceLineMap.Find(SourceFileID); LineIndexInfo.BeginIndex=i; } LineIndexInfo.Number=i-LineIndexInfo.BeginIndex; (*FindIt).Append(LineIndexInfo); } void CSDSModule::DeleteSourceLineMap() { SOURCELINEMAP::IT BeginIT,EndIT; BeginIT=m_SourceLineMap.Begin(); EndIT=m_SourceLineMap.End(); for(;BeginIT!=EndIT;BeginIT++) { (*BeginIT).Clear(); } m_SourceLineMap.Clear(); } */ void CSDSModule::CreateDataName2IDMap() { DWORD dwDataCount; SYMNAMEIDKEY SymNameKey; PSDUDTDATAITEM pDataItem,pDataItemArray; dwDataCount=m_SDSymbolFile->DataInformationNum; pDataItemArray = m_SDSymbolFile->UnionDataInformation.DataInformationPointer; for(DWORD i = 1; i < dwDataCount;i++) { pDataItem = &pDataItemArray[i]; SymNameKey.m_Name=pDataItem->uName.Name; m_DataSymName2IDMap.InsertUnique(SymNameKey,i); } } void CSDSModule::DeleteDataName2IDMap() { m_DataSymName2IDMap.Clear(); } void CSDSModule::CreateName2IDMap() { DWORD dwSymbolTotalNum; DWORD i; PSDTYPE_INFILE* pTypeArray = m_SDSymbolFile->UnionSymbolIndexTable.SymbolIndexTablePointer; SYMNAMEIDKEY SymNameKey; dwSymbolTotalNum = m_SDSymbolFile->SymbolTotalNum; for(i = 1; i < dwSymbolTotalNum;i++) { SymNameKey.m_Name=pTypeArray[i]->uName.Name; m_Sym2Name2IDMap.InsertUnique(SymNameKey,i); } //m_DataSymName2IDMap } void CSDSModule::DeleteName2IDMap() { m_Sym2Name2IDMap.Clear(); } PSDTYPE_INFILE CSDSModule::GetSymbolByName(const char* Name,bool bCase) { PSDTYPE_INFILE* pTypeArray = m_SDSymbolFile->UnionSymbolIndexTable.SymbolIndexTablePointer; SYMNAMEIDKEY SymNameKey; SYM2NAME2IDMAP::IT FindIT1; DWORD dwSymbolTotalNum; SymNameKey.m_Name=(char*)Name; if(Name==NULL&&Name[0]==0) return NULL; FindIT1 = m_Sym2Name2IDMap.Find(SymNameKey); dwSymbolTotalNum = m_SDSymbolFile->SymbolTotalNum; if(FindIT1!=m_Sym2Name2IDMap.End()) { if(*FindIT1>=dwSymbolTotalNum) return NULL; return pTypeArray[*FindIT1]; } return NULL; } PSDCOMPILAND CSDSModule::GetCompilandList(OUT DWORD* Count)const { PSDCOMPILAND pSDCompiland; pSDCompiland =(PSDCOMPILAND)((char*)m_SDSymbolFile + m_SDSymbolFile->UniosCompiland.CompilandOffset); if(Count) *Count=m_SDSymbolFile->CompilandCounter; return pSDCompiland; } PSDPUBLICSYMBOL CSDSModule::GetPublicSymbolList(OUT DWORD* Count) { if(Count) *Count = m_SDSymbolFile->PublicSymbolCounter; return m_SDSymbolFile->UnionPublicSymbol.PublicSymbolPointer; } PSDUDTDATAITEM CSDSModule::GetDataSymbolList(OUT DWORD* Count) { if(Count) *Count=m_SDSymbolFile->DataInformationNum; return m_SDSymbolFile->UnionDataInformation.DataInformationPointer; } PCSTR CSDSModule::GetPEFileFullName()const { return m_SDSymbolFile->uPEFileFullName.PEFileFullName; } PCSTR CSDSModule::GetSymbolModuleName()const { return m_SDSymbolFile->uPEFileName.PEFileName; } PCSTR CSDSModule::GetPDBFileName()const { return m_SDSymbolFile->uPDBFileName.PDBFileName; } PSDFUNCTIONITEM CSDSModule::GetFunctionSymbol(IN DWORD Index)const { if(Index>=m_SDSymbolFile->FunctionSymbolNum) return NULL; return m_SDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer[Index]; } PSDFUNCTIONITEM* CSDSModule::GetFunctionSymbolList(OUT DWORD* Count) { if(Count) *Count=m_SDSymbolFile->FunctionSymbolNum; return m_SDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer; } PSDFUNCTIONITEM CSDSModule::GetFunctionSymbolByName(const char*Name,bool bCase)const { PSDFUNCTIONITEM* pFunctArray; DWORD dwFunctionTotalNum,i; if(Name==NULL||Name[0]==0) return NULL; dwFunctionTotalNum=m_SDSymbolFile->FunctionSymbolNum; pFunctArray=m_SDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer; for(i=1;i < dwFunctionTotalNum;i++) { if(bCase) { if(TStrCmp(pFunctArray[i]->uName.Name,Name)==0) break; } else { if(TStrICmp(pFunctArray[i]->uName.Name,Name)==0) break; } } if(i>=dwFunctionTotalNum) return NULL; return pFunctArray[i]; } DWORD CSDSModule::DumpSDUDTTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer) { bool bArray=false; bool bFunctionPointer=false; bool bIsUnnamedUDT=false; DWORD PrevAccess; DWORD i,j; PSDTYPE_INFILE pSubType; PSDFUNCTIONITEM pFuncItem; PSDUDTDATAITEM pUdtData; char* OrgName; PSDUDTBASECLASS pUdtBaseClassType; PSDUDTTYPE pUdtType = (PSDUDTTYPE)&SDTypeInfile[1]; char FuncName[0x400]; int FuncNameLen = sizeof(FuncName)-1; //list::iterator FindOutputIT; OutBuffer.Empty(); bIsUnnamedUDT=true; switch(SDTypeInfile->Type) { case SD_STRUCT: OutBuffer+="struct "; PrevAccess=CV_public; break; case SD_CLASS: OutBuffer+="class "; PrevAccess=CV_private; break; case SD_UNION: OutBuffer+="union "; PrevAccess=CV_public; break; } if(bIsUnnamedUDT==false) { OutBuffer+=SDTypeInfile->uName.Name; } OutBuffer+=" "; if(pUdtType->BaseClassCounter) { OutBuffer+=": "; for(i = 0,j=0; i < pUdtType->BaseClassCounter;i++) { pSubType = GetTypeSymbol(pUdtType->pBaseClass.pBaseClassMember[i]); CODE_ASSERT(pSubType); pUdtBaseClassType = (PSDUDTBASECLASS)&pSubType[1]; if(pUdtBaseClassType->bIsIndirectBaseClass) continue; if(j) { OutBuffer+=","; } if(pUdtBaseClassType->bIsVirtual) { OutBuffer+="virtual "; } switch(pUdtBaseClassType->Access) { case CV_private: OutBuffer+="private "; break; case CV_protected: OutBuffer+="protected "; break; case CV_public: OutBuffer+="public "; break; } OrgName = (char*)GetTypeNameByID(pUdtBaseClassType->TypeID); OutBuffer+=OrgName; j++; } } char udtsize[50]; TSPrintf(udtsize,"/* sizeof %08x %d */",SDTypeInfile->TypeSize,SDTypeInfile->TypeSize); OutBuffer+=udtsize; OutBuffer+="\n{\n"; if(pUdtType->FunctionCounter) { for(i = 0; i < pUdtType->FunctionCounter;i++) { pFuncItem = GetSDFunctionByID(pUdtType->pFunction.pFunctionMember[i]); CODE_ASSERT(pFuncItem); bool bStatic = false; PSDTYPE_INFILE pSubType = GetTypeSymbol(pFuncItem->TypeID); if(PrevAccess!=pFuncItem->Access) { switch(pFuncItem->Access) { case CV_private: OutBuffer+="private:\n"; break; case CV_protected: OutBuffer+="protected:\n"; break; case CV_public: OutBuffer+="public:\n"; break; } PrevAccess=pFuncItem->Access; } CStrA pStrFuncName; GetUDTFunctionMemberName(pUdtType->pFunction.pFunctionMember[i],pStrFuncName); OutBuffer+=pStrFuncName; } } if(pUdtType->DataCounter) { switch(SDTypeInfile->Type) { case SD_STRUCT: if(PrevAccess!=CV_public) { OutBuffer+="public:\n"; } PrevAccess=CV_public; break; case SD_CLASS: PrevAccess=0xffffffff; break; case SD_UNION: if(PrevAccess!=CV_public) { OutBuffer+="public:\n"; } PrevAccess=CV_public; break; } CStrA DataName; for(i = 0; i < pUdtType->DataCounter; i++) { pUdtData = GetDataSymbol(pUdtType->pData.pDataMember[i]);// m_DataTagVector[pUdtType->pData.pDataMember[i]]; bIsUnnamedUDT=false; if(PrevAccess!=pUdtData->Access) { switch(pUdtData->Access) { case CV_private: OutBuffer+="private:\n"; break; case CV_protected: OutBuffer+="protected:\n"; break; case CV_public: OutBuffer+="public:\n"; break; } PrevAccess=pUdtData->Access; } { GetUDTDataMemberName(pUdtType->pData.pDataMember[i],DataName); OutBuffer+=DataName; } } } OutBuffer+="};\n"; return 0; } PSDFUNCTIONITEM CSDSModule::GetSDFunctionByID(IN DWORD Index)const { if(Index>=m_SDSymbolFile->FunctionSymbolNum) return NULL; return m_SDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTablePointer[Index]; } char* CSDSModule::GetUDTFunctionMemberName(DWORD FuncID,OUT CStrA& NameBuffer) { char FuncName[0x400]; PSDFUNCTIONITEM pFuncItem; int FuncNameLen; pFuncItem = GetSDFunctionByID(FuncID); CODE_ASSERT(pFuncItem); bool bStatic = false; PSDFUNCTIONTYPE pFunctionType; PSDTYPE_INFILE pSubType = GetTypeSymbol(pFuncItem->TypeID); NameBuffer.Empty(); FuncNameLen = sizeof(FuncName)-1; GetFunctionName(pFuncItem,FuncName,&FuncNameLen); if(pSubType->Type==SD_FUNCTIONTYPE) { pFunctionType = (PSDFUNCTIONTYPE)&pSubType[1]; if(pFunctionType->CallingConvention==CV_CALL_NEAR_STD) bStatic=true; } if(bStatic) { NameBuffer+="\t\tstatic "; NameBuffer+=FuncName; } else { NameBuffer+="\t\t"; NameBuffer+=FuncName; } NameBuffer+=";"; if(pFuncItem->IsVirtual) { char OffsetBuf[50]; TSPrintf(OffsetBuf,"/* VTable offset %08x */",pFuncItem->VirtualBaseOffset); NameBuffer+=OffsetBuf; } NameBuffer+="\n"; return NULL; } char* CSDSModule::GetUDTDataMemberName(IN DWORD DataID,OUT CStrA& NameBuffer) { #define MAX_LENGTH_NAME (0X400) char ArrayTypeName[20]; CStrA DataName; bool bArray=false; char NullChar=0; char TypeName[20]; char* CallConvention; char* OrgDataName; char *FuncName; int FuncNameLen; PSDUDTDATAITEM pUdtData; PSDTYPE_INFILE pSubType; bool bFunctionPointer; bool bUnnamedUDT=false; NameBuffer.Empty(); FuncNameLen = MAX_LENGTH_NAME-1; FuncName=new char[MAX_LENGTH_NAME]; pUdtData = GetDataSymbol(DataID); OrgDataName = pUdtData->uName.Name; GetSDSymbolName(pUdtData->TypeId,FuncName,&FuncNameLen); DataName.Empty(); DataName=FuncName; if(pUdtData->Location == LocIsThisRel) { NameBuffer.Format("/* off 0x%04x */\t",pUdtData->u.LOCISTHISREL.Offset); } if(pUdtData->Location == LocIsStatic) NameBuffer+="static "; bFunctionPointer=false; CallConvention=NULL; pSubType = GetTypeSymbol(pUdtData->TypeId); TypeName[0]=0; ArrayTypeName[0]=0; bArray=false; if(pSubType) { switch(pSubType->Type) { case SD_POINTER: { PSDPOINTERTYPE pSDPointer=(PSDPOINTERTYPE)&pSubType[1]; PSDFUNCTIONTYPE pFunctionProc; pSubType = GetTypeSymbol(pSDPointer->TypeID); if(pSubType->Type==SD_FUNCTIONTYPE) { bFunctionPointer=true; pFunctionProc = (PSDFUNCTIONTYPE)&pSubType[1]; CallConvention = GetCallConventionName(pFunctionProc->CallingConvention); } } break; case SD_ARRAY: { PSDARRAYTYPE pSDArrayType = (PSDARRAYTYPE)&pSubType[1]; bUnnamedUDT = IsUnnamedUDT(pSDArrayType->TypeIDElement); pSubType= GetTypeSymbol(pSDArrayType->TypeIDElement); bArray=true; break; } case SD_CLASS: case SD_STRUCT: case SD_UNION: bUnnamedUDT = IsUnnamedUDT(pSubType->Id); break; } } if(bUnnamedUDT) { CStrA OutBuffer; OutBuffer.Empty(); int i; DumpSDUDTTypeToHeaderFile(pSubType,DataName); char* pString = DataName; char* pBegin = DataName; OutBuffer+="\n"; for( i = 0;pString[i];i++) if(pString[i]=='\n') { OutBuffer+="\t"; pString[i]=0; if(pString[i+1]) { OutBuffer+=pBegin; OutBuffer+="\n"; } else { pString[i-1]=0; OutBuffer+=pBegin; } pBegin=&pString[i+1]; } DataName=OutBuffer; if(bArray) { DataName+=TStrChr(FuncName,'['); } if(DataName.Length()>MAX_LENGTH_NAME) { delete []FuncName; FuncName = new char[DataName.Length()+1]; } TStrCpy(FuncName,(char*)DataName); } if(bFunctionPointer) { char * pFunc =GetFuncParamBegin(FuncName); if(pFunc) { pFunc--; *pFunc=0; pFunc++; NameBuffer+=FuncName; NameBuffer+=pUdtData->uName.Name; NameBuffer+=")"; NameBuffer+=pFunc; } }else if(bArray){ char* pIndexBegin = TStrChr(FuncName,'['); if(pIndexBegin) { *pIndexBegin=0; pIndexBegin++; NameBuffer+=FuncName; NameBuffer+=" "; NameBuffer+=pUdtData->uName.Name; NameBuffer+="["; NameBuffer+=pIndexBegin; } }else { NameBuffer+=FuncName; NameBuffer+="\t"; NameBuffer+=pUdtData->uName.Name; if(pUdtData->Location == LocIsBitField) { NameBuffer+=":"; char buf[20]; TSPrintf(buf,"%d",pUdtData->u.LOCISBITFIELD.Size); NameBuffer+=buf; } } NameBuffer+=";\n"; delete []FuncName; return NULL; } SDCALLCONVENTIONPAIR CSDSModule::m_CallConvention[24]= { {0xffffffff," "}, {CV_CALL_NEAR_C," __cdecl "}, {CV_CALL_NEAR_FAST," __fastcall "}, {CV_CALL_NEAR_STD," __stdcall "}, {CV_CALL_NEAR_SYS," __syscall "}, {CV_CALL_THISCALL," __thiscall "}, {CV_CALL_MIPSCALL," Unknown calling convention in function "}, {CV_CALL_GENERIC," Unknown calling convention in function "}, {CV_CALL_ALPHACALL," Unknown calling convention in function "}, {CV_CALL_PPCCALL," Unknown calling convention in function "}, {CV_CALL_SHCALL," Unknown calling convention in function "}, {CV_CALL_ARMCALL," Unknown calling convention in function "}, {CV_CALL_AM33CALL," Unknown calling convention in function "}, {CV_CALL_TRICALL," Unknown calling convention in function "}, {CV_CALL_SH5CALL," Unknown calling convention in function "}, {CV_CALL_M32RCALL," Unknown calling convention in function "}, {CV_CALL_RESERVED," Unknown calling convention in function "}, {CV_CALL_FAR_C," Unknown calling convention in function "}, {CV_CALL_NEAR_PASCAL," Unknown calling convention in function "}, {CV_CALL_FAR_PASCAL," Unknown calling convention in function "}, {CV_CALL_FAR_FAST," Unknown calling convention in function "}, {CV_CALL_SKIPPED," Unknown calling convention in function "}, {CV_CALL_FAR_STD," Unknown calling convention in function "}, {CV_CALL_FAR_SYS," Unknown calling convention in function "}, }; char* CSDSModule::GetCallConventionName(DWORD dwType) { return m_CallConvention[0].Name; int i; if(dwType>=sizeof(m_CallConvention)/sizeof(m_CallConvention[0])) return m_CallConvention[0].Name; for(i = 0; i < sizeof(m_CallConvention)/sizeof(m_CallConvention[0]);i++) if(m_CallConvention[i].Type==dwType) return m_CallConvention[i].Name; return m_CallConvention[0].Name; } bool CSDSModule::IsFunctionPointer(DWORD dwTypeID) { PSDTYPE_INFILE pType = GetTypeSymbol(dwTypeID); if(pType==NULL) return false; if(pType->Type!=SD_POINTER) return false; return IsFunctionPointer(pType); } bool CSDSModule::IsFunctionPointer(PSDTYPE pType) { return IsFunctionPointer(&pType->SDTypeInfile); } bool CSDSModule::IsFunctionPointer(PSDTYPE_INFILE SDTypeInfile) { PSDTYPE_INFILE pSubType; if(SDTypeInfile->Type!=SD_POINTER) return false; PSDPOINTERTYPE pPointerType = (PSDPOINTERTYPE)&SDTypeInfile[1]; pSubType = GetTypeSymbol(pPointerType->TypeID); if(pSubType==NULL) return false; return pSubType->Type==SD_FUNCTIONTYPE; } char* CSDSModule::GetFuncParamBegin(char* FunctionPointerName) { int i; char* Name; int Sum = 0; int Len = TStrLen(FunctionPointerName); Name = TStrRChr(FunctionPointerName,')'); Len =Len - TStrLen(Name); for(i = Len;i>=0;i--) { if(FunctionPointerName[i]==')') Sum++; else if(FunctionPointerName[i]=='(') Sum--; if(Sum==0) break; } return &FunctionPointerName[i]; } char* CSDSModule::GetFunctionName(IN PSDFUNCTIONITEM pFuncItem,OUT char* NameBuffer,INOUT int* BufferLength) { int dwCurrentLen=0; PSDTYPE_INFILE pSubType=NULL; char pVirtual[]="virtual "; int len; char pFuncEnd[5]=")"; char* CallConventionName; NameBuffer[0]=0; if(pFuncItem->IsVirtual) { dwCurrentLen = TStrLen(pVirtual); if(*BufferLength >dwCurrentLen) TStrCpy(NameBuffer,pVirtual); (*BufferLength) = (*BufferLength) - dwCurrentLen; } if(pFuncItem->TypeIDReturnValue) GetSDSymbolName(pFuncItem->TypeIDReturnValue,&NameBuffer[dwCurrentLen],BufferLength); if(pFuncItem->TypeID) { pSubType=GetTypeSymbol(pFuncItem->TypeID); if(pSubType->Type==SD_FUNCTIONTYPE) { SDFUNCTIONTYPE* pFunctionType = (SDFUNCTIONTYPE*)&pSubType[1]; CallConventionName = GetCallConventionName(pFunctionType->CallingConvention); dwCurrentLen = TStrLen(CallConventionName); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,CallConventionName); *BufferLength=*BufferLength-dwCurrentLen; } } dwCurrentLen = TStrLen(pFuncItem->uName.Name); if(*BufferLength > dwCurrentLen) TStrCat(NameBuffer,pFuncItem->uName.Name); (*BufferLength) = (*BufferLength) - dwCurrentLen; if(*BufferLength > 1) TStrCat(NameBuffer,"("); (*BufferLength)--; for(DWORD i = 0; i < pFuncItem->DataCounter; i++) { SDUDTDATAITEM* pUdtDataItem= GetDataSymbol(pFuncItem->pData.pDataMember[i]); if(pUdtDataItem->KindData==DataIsParam) { len = TStrLen(NameBuffer); GetSDSymbolName(pUdtDataItem->TypeId,&NameBuffer[len],BufferLength); if(*BufferLength>1) TStrCat(NameBuffer," "); (*BufferLength)--; dwCurrentLen = TStrLen(pUdtDataItem->uName.Name); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,pUdtDataItem->uName.Name); (*BufferLength)=(*BufferLength)-dwCurrentLen; if(*BufferLength>1) TStrCat(NameBuffer,","); (*BufferLength)--; } } len = TStrLen(NameBuffer); if(NameBuffer[len-1]==',') NameBuffer[len-1]=0; if(pFuncItem->IsPure) TStrCpy(pFuncEnd,")=0"); dwCurrentLen = TStrLen(pFuncEnd); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,pFuncEnd); (*BufferLength)=(*BufferLength)-dwCurrentLen; return NameBuffer; } bool CSDSModule::IsUnnamedUDT(DWORD dwTypeID) { PSDTYPE_INFILE pType = GetTypeSymbol(dwTypeID); if(pType==NULL) return false; if(pType->Type==SD_CLASS || pType->Type==SD_STRUCT || pType->Type==SD_UNION) if(((PSDCLASSTYPE)&pType[1])->IsUnnamed) return true; return false; } char* CSDSModule::GetSDSymbolName(IN DWORD TypeID,OUT char *NameBuffer,INOUT int *BufferLength) { return GetSDSymbolName(GetTypeSymbol(TypeID),NameBuffer,BufferLength); } char* CSDSModule::GetSDSymbolName(IN PSDTYPE_INFILE SDTypeInfile,OUT char *NameBuffer,INOUT int *BufferLength) { SDTYPE_INFILE *SelfType; char TypeName[50]; int dwOrgBufferLen=*BufferLength; int dwCurrentLen; int len=0; char* CallConventionName; if(NameBuffer) NameBuffer[0]=0; if(SDTypeInfile==NULL) return NameBuffer; switch(SDTypeInfile->Type) { case SD_FUNCTIONTYPE: { SDFUNCTIONTYPE* pFunctionType= (SDFUNCTIONTYPE*)&SDTypeInfile[1]; GetSDSymbolName(pFunctionType->TypeIDReturnValue,NameBuffer,BufferLength); CallConventionName = GetCallConventionName(pFunctionType->CallingConvention); dwCurrentLen = TStrLen(CallConventionName); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,CallConventionName); *BufferLength-=dwCurrentLen; if(*BufferLength>1) TStrCat(NameBuffer,"("); (*BufferLength)--; len = TStrLen(NameBuffer); for(DWORD i = 0; i< pFunctionType->ArgsCount;i++) { len = TStrLen(NameBuffer); GetSDSymbolName(pFunctionType->TypeIDArgs[i],&NameBuffer[len],BufferLength); len = TStrLen(NameBuffer); if(i!=pFunctionType->ArgsCount-1) { if(*BufferLength>1) { TStrCat(&NameBuffer[len],","); len++; } (*BufferLength)--; } } if(*BufferLength>1) { TStrCat(&NameBuffer[len],")"); } (*BufferLength)--; } return NameBuffer; case SD_POINTER: { SDPOINTERTYPE* pPointerType; int MaxBufferLen=*BufferLength; CStrA TmpBuf; pPointerType = (SDPOINTERTYPE*)&SDTypeInfile[1]; SelfType = GetTypeSymbol(pPointerType->TypeID); GetSDSymbolName(pPointerType->TypeID,NameBuffer,BufferLength); dwCurrentLen = pPointerType->PointerDepth; TmpBuf.Fill('*',dwCurrentLen); if(SelfType->Type==SD_FUNCTIONTYPE) dwCurrentLen+=2; if(*BufferLength<=dwCurrentLen) { *BufferLength-=dwCurrentLen; return NameBuffer; } if(SelfType->Type==SD_FUNCTIONTYPE) { PSDFUNCTIONTYPE pFunctionType = (PSDFUNCTIONTYPE)&SelfType[1]; char *NewName; char* pCallConvention; DWORD len; char NullChar=0; char * pFunc; NewName = new char[MaxBufferLen]; TStrCpy(NewName,NameBuffer); CallConventionName = GetCallConventionName(pFunctionType->CallingConvention); pCallConvention = TStrStr(NameBuffer,CallConventionName); pFunc =GetFuncParamBegin(NewName); if(pCallConvention==NULL) { pCallConvention = &NullChar; len = (*(DWORD*)&pFunc-*(DWORD*)&NewName); }else len = (*(DWORD*)&pCallConvention-*(DWORD*)&NameBuffer); NameBuffer[len]='('; len++; len+=TStrCpy(&NameBuffer[len],CallConventionName); TStrCpy(&NameBuffer[len],(char*)TmpBuf); TStrCat(NameBuffer,")"); TStrCat(NameBuffer,pFunc); delete NewName; } else { TStrCat(NameBuffer,(char*)TmpBuf); } *BufferLength-=dwCurrentLen; return NameBuffer; } break; case SD_REFERENCE: { SDREFERENCETYPE*pReferenceType; pReferenceType = (SDREFERENCETYPE*)&SDTypeInfile[1]; SelfType = GetTypeSymbol(pReferenceType->TypeID); GetSDSymbolName(SelfType,NameBuffer,BufferLength); if(*BufferLength>1) TStrCat(NameBuffer,"&"); *BufferLength--; } break; case SD_ARRAY: { SDARRAYTYPE* pArrayType; bool bFunctionPointer=false; char DigBuf[30]; CStrA StrBufA; pArrayType = (SDARRAYTYPE*)&SDTypeInfile[1]; SelfType = GetTypeSymbol(pArrayType->TypeIDElement); if(SelfType==NULL) return NameBuffer; GetSDSymbolName(SelfType,NameBuffer,BufferLength); bFunctionPointer=IsFunctionPointer(SelfType); dwCurrentLen=0; for(DWORD i = 0; i < pArrayType->DimensionsSize; i++) { dwCurrentLen += TSPrintf(DigBuf,"%d",pArrayType->Dimensions[i].Size); dwCurrentLen+=2; StrBufA+="["; StrBufA+=DigBuf; StrBufA+="]"; } if(*BufferLength>dwCurrentLen) { if(bFunctionPointer) { CStrA pFuncParam; char* pFunc = GetFuncParamBegin(NameBuffer); pFuncParam = pFunc; pFunc--; pFunc[0]=0; TStrCat(NameBuffer,(char*)StrBufA); TStrCat(NameBuffer,")"); TStrCat(NameBuffer,(char*)pFuncParam); } else TStrCat(NameBuffer,(char*)StrBufA); } *BufferLength = *BufferLength-dwCurrentLen; return NameBuffer; } break; case SD_BASECLASS: { SDUDTBASECLASS* pUdtBaseClassType= (SDUDTBASECLASS*)&SDTypeInfile[1]; return GetSDSymbolName(pUdtBaseClassType->TypeID,NameBuffer,BufferLength); } case SD_ENUMERATION: TStrCpy(TypeName,"enum "); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; goto local_002; case SD_CLASS: /* TStrCpy(TypeName,""); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; */ goto local_002; case SD_STRUCT: TStrCpy(TypeName,"struct "); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; goto local_002; case SD_UNION: TStrCpy(TypeName,"union "); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; default: local_002: { if(SDTypeInfile->uName.Name) { dwCurrentLen = TStrLen(SDTypeInfile->uName.Name); if(dwCurrentLen<*BufferLength) TStrCpy(&NameBuffer[len],SDTypeInfile->uName.Name); *BufferLength-=dwCurrentLen; } else { dwCurrentLen = TStrLen("no name"); if(dwCurrentLen<*BufferLength) TStrCpy(&NameBuffer[len],"no name"); *BufferLength-=dwCurrentLen; } } } return NameBuffer; } DWORD CSDSModule::DumpSDTypedefTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer) { bool bFunctionPointer=false; char OrgName[0x400]; int OrgNameLen=sizeof(OrgName)-1; char TypeName[20]="\0"; PSDTYPEDEFTYPE pSDTypeDef=(PSDTYPEDEFTYPE)&SDTypeInfile[1]; PSDTYPE_INFILE pSubType = GetTypeSymbol(pSDTypeDef->TypeID); PSDPOINTERTYPE pSDPointer; OutBuffer.Empty(); switch(pSubType->Type) { case SD_POINTER: pSDPointer = (PSDPOINTERTYPE)&pSubType[1]; pSubType = GetTypeSymbol(pSDPointer->TypeID); if(pSubType->Type == SD_FUNCTIONTYPE) bFunctionPointer=true; break; } GetSDSymbolName(pSDTypeDef->TypeID,OrgName,&OrgNameLen); if(bFunctionPointer) { char * pFunc =GetFuncParamBegin(OrgName); if(pFunc) { pFunc--; *pFunc=0; pFunc++; OutBuffer+="typedef "; OutBuffer+=OrgName; OutBuffer+=SDTypeInfile->uName.Name; OutBuffer+=")"; OutBuffer+=pFunc; } else { OutBuffer+="typedef "; OutBuffer+=TypeName; OutBuffer+=" "; OutBuffer+=SDTypeInfile->uName.Name; } } else { OutBuffer+="typedef "; OutBuffer+=TypeName; OutBuffer+=OrgName; OutBuffer+=" "; OutBuffer+=SDTypeInfile->uName.Name; } return 0; } DWORD CSDSModule::DumpSDEnumTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile ,CStrA &OutBuffer) { char WriteBuffer[50]; SDENUMERATIONTYPE* pEnumationType; DWORD WriteByteSize=0; OutBuffer.Empty(); OutBuffer+="enum "; OutBuffer+=SDTypeInfile->uName.Name; OutBuffer+="{"; pEnumationType = (SDENUMERATIONTYPE*)&SDTypeInfile[1]; for(unsigned int i = 0; i < pEnumationType->DataCount; i++) { OutBuffer+="\t"; OutBuffer+=pEnumationType->EnumerationDataMember[i].u.Name; OutBuffer+="\t="; TSPrintf(WriteBuffer,"0x%08x\t,//%d",pEnumationType->EnumerationDataMember[i].Value,pEnumationType->EnumerationDataMember[i].Value); OutBuffer+=WriteBuffer; } OutBuffer+="};"; return WriteByteSize; } PSDFUNCTIONITEM CSDSModule::GetUdtClassFuncMemberByName(const char* Name,PSDTYPE_INFILE pType,bool bFullName)const { DWORD i; DWORD UdtNameLen=0; PSDUDTTYPE pUdtType; PSDFUNCTIONITEM pFuncItem; DWORD * pFuncIdArray; if(pType==NULL&&(pType->Type!=SD_STRUCT&&pType->Type!=SD_UNION&&pType->Type!=SD_CLASS)) return NULL; pUdtType = (PSDUDTTYPE)&pType[1]; pFuncIdArray = pUdtType->pFunction.pFunctionMember; if(bFullName==false) UdtNameLen = TStrLen(pType->uName.Name)+2; for(i = 0; i < pUdtType->FunctionCounter;i++) { pFuncItem=GetFunctionSymbol(pFuncIdArray[i]); if(TStrCmp(&pFuncItem->uName.Name[UdtNameLen],Name)==0) return pFuncItem; } pFuncIdArray = pUdtType->pBaseClass.pBaseClassMember; for(i = 0; i < pUdtType->BaseClassCounter;i++) { pType=GetTypeSymbol(pFuncIdArray[i]); PSDUDTBASECLASS pBaseClass=(PSDUDTBASECLASS)&pType[1]; pFuncItem = GetUdtClassFuncMemberByName(Name,GetTypeSymbol(pBaseClass->TypeID),bFullName); if(pFuncItem) return pFuncItem; } return NULL; } PSDUDTDATAITEM CSDSModule::GetUdtClassDataMemberByName(const char *Name,PSDTYPE_INFILE pType,DWORD* ThisOffset)const { DWORD i; CSDSModule pSDSModule; PSDUDTDATAITEM pDataItem; PSDUDTTYPE pUdtType; PSDUDTBASECLASS pBaseClass; if(pType==NULL||(pType->Type!=SD_STRUCT&&pType->Type!=SD_UNION&&pType->Type!=SD_CLASS)) return NULL; pUdtType = (PSDUDTTYPE)&pType[1]; DWORD * pDataIdArray = pUdtType->pData.pDataMember; for(i = 0; i < pUdtType->DataCounter; i++) { pDataItem = GetDataSymbol(pDataIdArray[i]); if(TStrCmp(pDataItem->uName.Name,Name)==0) { if(ThisOffset) { if(pDataItem->Location==LocIsThisRel) *ThisOffset+=pDataItem->u.LOCISTHISREL.Offset; else *ThisOffset=pDataItem->u.LOCISSTATIC.Rva; } return pDataItem; } } DWORD * pBaseClassIdArray= pUdtType->pBaseClass.pBaseClassMember; for(i = 0; i < pUdtType->BaseClassCounter; i++) { pType = GetTypeSymbol(pBaseClassIdArray[i]); pBaseClass = (PSDUDTBASECLASS)&pType[1]; pType = GetTypeSymbol(pBaseClass->TypeID); pDataItem = GetUdtClassDataMemberByName(Name,pType,ThisOffset); if(pDataItem) { if(ThisOffset) { if(pDataItem->Location==LocIsStatic) *ThisOffset=pDataItem->u.LOCISSTATIC.Rva; if(pDataItem->Location==LocIsThisRel) *ThisOffset+=pBaseClass->Offset; } return pDataItem; } } return NULL; } PSDUDTDATAITEM CSDSModule::GetDataSymbolByString(char* pStr,DWORD FileId,DWORD LineNum,bool* IsFunc,DWORD* RetOffset)const { return GetDataSymbolByString (pStr,GetFunctionByLineNumber(FileId,LineNum),IsFunc,RetOffset); } PSDUDTDATAITEM CSDSModule::GetDataSymbolByString(char* pStr,PSDFUNCTIONITEM pCurrentFunc,bool* IsFunc,DWORD* RetOffset)const { DWORD Len,i; char* pBegin; PSDTYPE_INFILE pType=NULL; PSDFUNCTIONITEM pFuncItem; bool First=true; PSDUDTDATAITEM pDataItem; PSDPOINTERTYPE pPointerType; PSDREFERENCETYPE pReference; if(RetOffset) *RetOffset=0; if(IsFunc) *IsFunc=false; if(pCurrentFunc==NULL) return NULL; Len = TStrLen(pStr); for(i = 0; i < Len; i++) { if(pStr[i]=='.') { pStr[i]=0; i++; break; } else if(pStr[i]=='-') { pStr[i]=0; i+=2; break; } } pDataItem = GetDataSymbolInFunctionByName(pStr,pCurrentFunc); if(pDataItem==NULL) { if(pCurrentFunc->TypeIDParentUDT) { pDataItem = GetUdtClassDataMemberByName(pStr,GetTypeSymbol(pCurrentFunc->TypeIDParentUDT)); } if(pDataItem==NULL) { pDataItem = GetDataSymbolByNameAndKind(pStr,DataIsGlobal); if(pDataItem==NULL) return NULL; if(RetOffset) { if(pDataItem->Location==LocIsStatic) *RetOffset=pDataItem->u.LOCISSTATIC.Rva; } } } if(pDataItem->TypeId==0) { if(i!=Len) return NULL; pFuncItem = GetFunctionSymbolByName(pStr); if(pFuncItem) if(IsFunc) *IsFunc=true; return (PSDUDTDATAITEM)pFuncItem; } if(i==Len) return pDataItem; pType = GetTypeSymbol(pDataItem->TypeId); if(pType->Type==SD_POINTER) { pPointerType =(PSDPOINTERTYPE) &pType[1]; pType =GetTypeSymbol(pPointerType->TypeID); } if(pType->Type==SD_REFERENCE) { pReference =(PSDREFERENCETYPE) &pType[1]; pType =GetTypeSymbol(pReference->TypeID); } if(pType==NULL|| (pType->Type!=SD_UNION&&pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT)) return NULL; pBegin = &pStr[i]; pDataItem=NULL; for(;iTypeId); pBegin=&pStr[i]; if(pType->Type==SD_REFERENCE) { pReference =(PSDREFERENCETYPE) &pType[1]; pType =GetTypeSymbol(pReference->TypeID); } if(pType==NULL|| (pType->Type!=SD_UNION&&pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT)) return NULL; } else if(pStr[i]=='-') { pStr[i]=0; pDataItem = GetUdtClassDataMemberByName(pBegin,pType,RetOffset); if(pDataItem==NULL) { pFuncItem = GetUdtClassFuncMemberByName(pBegin,pType); if(pFuncItem) if(IsFunc) *IsFunc=true; return (PSDUDTDATAITEM)pFuncItem; } i+=2; if(i==Len) return pDataItem; pType = GetTypeSymbol(pDataItem->TypeId); pBegin=&pStr[i]; if(pType->Type==SD_POINTER) { pPointerType =(PSDPOINTERTYPE) &pType[1]; pType =GetTypeSymbol(pPointerType->TypeID); } if(pType==NULL|| (pType->Type!=SD_UNION&&pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT)) return NULL; } } pDataItem=GetUdtClassDataMemberByName(pBegin,pType,RetOffset); if(pDataItem==NULL) { pFuncItem = GetUdtClassFuncMemberByName(pBegin,pType); if(pFuncItem) if(IsFunc) *IsFunc=true; return (PSDUDTDATAITEM)pFuncItem; } return pDataItem; } char* CSDSModule::GetEnumerationByValue(DWORD TypeIndex,ULONGLONG ullValue)const { DWORD i; PSDTYPE_INFILE pType; PSDENUMERATIONTYPE pEnumType; pType = GetTypeSymbol(TypeIndex); if(pType==NULL) return NULL; pEnumType = (PSDENUMERATIONTYPE)&pType[1]; for(i = 0; i < pEnumType->DataCount;i++) { if(pEnumType->EnumerationDataMember[i].Value==ullValue) return pEnumType->EnumerationDataMember[i].u.Name; } return NULL; } PSDUDTDATAITEM CSDSModule::GetDataSymbolInFunctionByName(const char* Name,PSDFUNCTIONITEM pFuncItem)const { PSDUDTDATAITEM pDataItem; PSDTYPE_INFILE pType; PSDBLOCK pBlock; DWORD* pIdArray; DWORD Count,i,j; if(pFuncItem==NULL||Name==NULL||Name[0]==0) return NULL; Count = pFuncItem->DataCounter; pIdArray=pFuncItem->pData.pDataMember; for(i = 0; i < Count; i++) { pDataItem=GetDataSymbol(pIdArray[i]); if(TStrCmp(pDataItem->uName.Name,Name)==0) return pDataItem; } Count = pFuncItem->BlockCounter; for(i = 0; i < Count; i++) { pType = GetTypeSymbol(pFuncItem->pBlock.pBlockTypeIdArray[i]); pBlock = (PSDBLOCK)&pType[1]; for(j = 0; j < pBlock->DataCounter;j++) { pDataItem = GetDataSymbol(pBlock->pDataMember[j]); if(TStrCmp(pDataItem->uName.Name,Name)==0) return pDataItem; } } if(pFuncItem->TypeIDParentUDT==0) return NULL; pType=GetTypeSymbol(pFuncItem->TypeIDParentUDT); DWORD ThisOffset; pDataItem = GetUdtClassDataMemberByName(Name,pType,&ThisOffset); return pDataItem; } bool CSDSModule::CheckSDSymbolFileCheckSum() { PSDSYMBOLFILE pSDSymbolFile; DWORD OldCheckSum=0; ULONGLONG CheckSum=0; DWORD* pBuffer=(DWORD*)m_FileBuffer; DWORD i,FileLen = *(DWORD*)&m_SymFileSize; pSDSymbolFile = (PSDSYMBOLFILE)m_FileBuffer; OldCheckSum = pSDSymbolFile->CheckSum; pSDSymbolFile->CheckSum = 0; for(i = 0; i < FileLen/sizeof(DWORD);i++) { CheckSum+=pBuffer[i]; } pSDSymbolFile->CheckSum=OldCheckSum; if(*(DWORD*)&CheckSum==OldCheckSum) return true; return false; } DWORD CSDSModule::GetTimeDateStamp()const { PSDSYMBOLFILE pSDSymbolFile; pSDSymbolFile = (PSDSYMBOLFILE)m_FileBuffer; return pSDSymbolFile->ModuleID.TimeDateStamp; } DWORD CSDSModule::GetPECheckSum()const { PSDSYMBOLFILE pSDSymbolFile; pSDSymbolFile = (PSDSYMBOLFILE)m_FileBuffer; return pSDSymbolFile->ModuleID.OrgPECheckSum; } ================================================ FILE: Project/Syser/Source/SyserSymAnalyzer.h ================================================ #ifndef _SYSERSYMANALYZER_H_ #define _SYSERSYMANALYZER_H_ #include "../../Addition/SyserDebugger/SDSymbol.h" enum { RVA_FUNCTION_BODY, RVA_DATA_ITEM, RVA_PUBLIC_SYMBOL, }; typedef struct _SYMNAMEIDKEY { char* m_Name; public: bool operator <(const struct _SYMNAMEIDKEY& Dest)const { return TStrCmp(m_Name,Dest.m_Name)<0; } bool operator ==(const struct _SYMNAMEIDKEY& Dest)const { return TStrCmp(m_Name,Dest.m_Name)==0; } }SYMNAMEIDKEY; typedef TList SDLINELIST; typedef TMap SYM2NAME2IDMAP; typedef struct _SDLINEINFO { PSDLINE pLine; DWORD Number;//ʾһкźͼRVAӦҪģ󣬻߱Żĺ }SDLINEINFO,*PSDLINEINFO; typedef TMap LINENUMBERMAP; class CSDSModule { bool m_bInitOK; ULLSIZE m_SymFileSize; HANDLE m_hFileHandle; char** m_StrTable; char* m_FileBuffer; SYM2NAME2IDMAP m_Sym2Name2IDMap; SYM2NAME2IDMAP m_DataSymName2IDMap; //const char* GetSymbolName(SYMORDATAINDEX Symbol)const; public: PSDSYMBOLFILE m_SDSymbolFile; TList m_BreakPointList; CIStrA m_ModuleFileName; CIStrA m_SymbolFileName; CDbgModule* m_pCurDbgModule; //ָǰ̵DbgModuleʱʹãgpSyser->m_SyserUI.GetSDSModuleByXXXXװ int m_MemoryUsed; DWORD m_ParentPID; //SYMORDATAINDEXLIST m_SymbolMap; CSDSModule(); ~CSDSModule(); static MODULE_ID GetSDSMouleID(PCSTR szSDSFileName); MODULE_ID GetModuleID(); void SetModuleFileName(PCSTR szFileName); DWORD GetTimeDateStamp()const; DWORD GetPECheckSum()const; void CreateName2IDMap(); void DeleteName2IDMap(); void CreateDataName2IDMap(); void DeleteDataName2IDMap(); bool LoadSymFile(IN PCSTR FileName); void SymRelocation(IN PSDSYMBOLFILE pSymbolFile); void UnloadSymFile(); void* GetSymbolAddressBySymbolName(IN const char* SymbolName,OUT DWORD* SymbolLength=NULL); PSDUDTDATAITEM GetDataSymbol(IN unsigned int index)const; PSDTYPE_INFILE GetTypeSymbol(IN unsigned int index)const; PSDPUBLICSYMBOL GetPublicSymbol(IN unsigned int index)const; const char* GetSymbolNameByRVA(IN DWORD Rva); const char* GetDataName(IN PSDUDTDATAITEM pUdtDataItem)const; const char* GetTypeName(IN PSDTYPE_INFILE pSDType)const; const char* GetPublicSymbolName(IN PSDPUBLICSYMBOL pSDPublicSymbol)const; PSDSOURCEFILEID GetSourceFileList(OUT DWORD *SourceFileNum=NULL)const; PSDSOURCEFILEID GetSourceFileByID(IN DWORD SourceFileId)const; PSDSOURCEFILEID GetSourceFileByName(const char* SourceFileName)const; DWORD GetLineBySourceFileID(IN DWORD SourceFileId,INOUT SDLINELIST* Line)const; DWORD GetLineByRva(IN DWORD Rva,INOUT SDLINELIST* Line)const; DWORD GetLineFromRva(IN DWORD Rva,INOUT SDLINELIST* Line)const; PSDFUNCTIONITEM GetFunctionFromRav(DWORD Rva)const; DWORD GetLineBySourceFileID(IN DWORD SourceFileId,IN DWORD LineNum,INOUT SDLINELIST* Line)const; DWORD GetLineBySourceFileID(IN DWORD SourceFileId,INOUT LINENUMBERMAP* LineMap)const; PSDLINE GetContiguityLineBySourceFileID(IN DWORD SourceFileId,IN DWORD LineNum)const; PSDTYPE_INFILE GetSymbolByName(const char* Name,bool bCase=true); PSDFUNCTIONITEM GetFunctionSymbolByName(const char*Name,bool bCase=true)const; char* GetFuncNameByRva(IN DWORD Rva)const; PSDCOMPILAND GetCompilandList(OUT DWORD* Count)const; PSDTYPE_INFILE* GetSymbolList(OUT DWORD* ItemCount)const; PSDPUBLICSYMBOL GetPublicSymbolList(OUT DWORD* Count=NULL); PSDUDTDATAITEM GetDataSymbolList(OUT DWORD* Count=NULL); PSDFUNCTIONITEM* GetFunctionSymbolList(OUT DWORD* Count); PCSTR GetPEFileFullName()const; PCSTR GetSymbolModuleName()const; PCSTR GetPDBFileName()const; const char* GetTypeNameByID(unsigned int id)const; PSDFUNCTIONITEM GetSDFunctionByID(IN DWORD Index)const; //PSDFUNCTIONITEM GetFunctionByLineNumber(IN DWORD FileId,IN DWORD LineNum)const; PSDFUNCTIONITEM GetFunctionSymbol(IN DWORD Index)const; char* GetUDTFunctionMemberName(DWORD FuncID,OUT CStrA& NameBuffer); DWORD DumpSDUDTTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer); char* GetUDTDataMemberName(IN DWORD DataID,OUT CStrA& NameBuffer); static SDCALLCONVENTIONPAIR m_CallConvention[24]; static char* GetCallConventionName(DWORD dwType); bool IsFunctionPointer(DWORD dwTypeID); bool IsFunctionPointer(PSDTYPE pType); bool IsFunctionPointer(PSDTYPE_INFILE SDTypeInfile); char* GetFuncParamBegin(char* FunctionPointerName); char* GetFunctionName(IN PSDFUNCTIONITEM pFuncItem,OUT char* NameBuffer,INOUT int* BufferLength); bool IsUnnamedUDT(DWORD dwTypeID); char* GetSDSymbolName(IN DWORD TypeID,OUT char *NameBuffer,INOUT int *BufferLength); char* GetSDSymbolName(IN PSDTYPE_INFILE SDTypeInfile,OUT char *NameBuffer,INOUT int *BufferLength); DWORD DumpSDTypedefTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer); DWORD DumpSDEnumTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile ,CStrA &OutBuffer); PSDUDTDATAITEM GetUdtClassDataMemberByName(const char *Name,PSDTYPE_INFILE pType,DWORD* ThisOffset=NULL)const; PSDFUNCTIONITEM GetUdtClassFuncMemberByName(const char* Name,PSDTYPE_INFILE pType,bool bFullName=false)const; PSDFUNCTIONITEM GetFunctionByLineNumber(IN DWORD FileId,IN DWORD LineNum)const; PSDUDTDATAITEM GetDataSymbolByString(char* pStr,PSDFUNCTIONITEM pCurrentFunc,bool* IsFunc=NULL,DWORD* RetOffset=NULL)const; PSDUDTDATAITEM GetDataSymbolByString(char* pStr,DWORD FileId,DWORD LineNum,bool* IsFunc=NULL,DWORD* RetOffset=NULL)const; PSDUDTDATAITEM GetDataSymbolInFunctionByName(const char* pStr,PSDFUNCTIONITEM pFuncItem)const; PSDUDTDATAITEM GetDataSymbolByNameAndKind(const char* Name,int nDataKind)const; PSDUDTDATAITEM GetDataSymbolByNameAndLocation(char* Name,int nDataKind)const; PSDUDTDATAITEM GetDataSymbolByName(char* Name)const; char* GetEnumerationByValue(DWORD TypeIndex,ULONGLONG ullValue)const; bool CheckSDSymbolFileCheckSum(); DWORD GetSourceFileCountInPackages()const; }; typedef TMap CSDSModuleMap; DWORD GetBaseTypeIdByName(char*Name); #endif /* _SYSERSYMANALYZER_H_ */ ================================================ FILE: Project/Syser/Source/SyserUI.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "StringReference.h" ULSIZE ReadDbgProcMemory(ULPOS Address,void*Buffer,ULSIZE Size,void*Param) { #ifdef CODE_OS_NT_DRV ULSIZE Len=0; bool bSuccess; while(Size) { PUT_BYTE(Buffer,Len,ReadByte(RT_PVOID(Address,Len),&bSuccess)); if(bSuccess==false) break; Len++; Size--; } return Len; #else return ((CDebugger*)Param)->ReadMemory(Address,Buffer,Size); #endif } void CSyserDI::OnLoadModule(CDebugger*pDbgProc,PCSTR szFileName,ULPOS ModuleBase,ULSIZE ModuleSize,MODULE_ID ModuleID) { CCommentModule*pCommentModule; CSymbolModule*pSymbolModule; CDbgModule*pDbgModule = pDbgProc->m_ModuleList.InsertModule(szFileName,ModuleBase,ModuleSize,ModuleID); if(pDbgModule==NULL) return; if(pCommentModule = m_pCommentContainer->GetCommentModule(ModuleID)) pDbgModule->AttachCommentModule(pCommentModule); if(pSymbolModule = m_pSymbolContainer->GetSymbolModule(ModuleID)) { pDbgModule->AttachSymbolModule(pSymbolModule); return; } ///////////////////////////////////////////////////////////////////////////////////// #ifdef CODE_OS_WIN gpSyser->m_SyserUI.LoadTranslateSDS(szFileName,ModuleBase,ModuleSize); gpSyser->m_SyserUI.LoadPESym(szFileName,pDbgModule); #else CSDSModuleMap::IT Iter = gpSyser->m_SyserUI.m_SDSModuleMap.Find(ModuleID); if(Iter.IsExist()) { pSymbolModule = m_pSymbolContainer->InsertSymbolModule(ModuleID); pDbgModule->AttachSymbolModule(pSymbolModule); gpSyser->m_SyserUI.LoadSDSSymbol(&(*Iter)); } #endif } void CSyserDI::OnUnloadModule(CDebugger*pDbgProc,ULPOS ModuleBase) { CDbgModule*pDbgModule=pDbgProc->m_ModuleList.GetModule(ModuleBase); if(pDbgModule==NULL) return; #ifdef CODE_OS_NT_DRV ////////////////////////////////////////////////////////////////////////// //Unload SDS Module CSDSModule*pSDSModule = gpSyser->m_SyserUI.GetSDSModule(pDbgModule->m_ModuleBase); if(pSDSModule && pSDSModule->m_ParentPID == gpSyser->m_pDebugger->m_PID) { gpSyser->m_SyserUI.UnloadSDSModule(pSDSModule); } #endif ////////////////////////////////////////////////////////////////////////// //ɾڴģϵĴϵ CCodeBPMap::IT Iter = pDbgProc->m_pCodeBPMap->Begin(); while(Iter.IsExist()) { if(pDbgProc->m_PID == Iter->PID && Iter->Address>=pDbgModule->m_ModuleBase && Iter->Addressm_ModuleBase+pDbgModule->m_ModuleSize) {//ΪڴͷţֻҪɾϵ CCodeBPMap::IT RemoveIter=Iter; //DbgPrint("Syser : Clear Module BP [%s] %08X %s\n",(PCSTR)pDbgProc->m_ProcName,RemoveIter->Address,(PCSTR)RemoveIter->Name); Iter++; RemoveIter->State = BP_STATE_DISABLE; pDbgProc->RemoveCodeBP(&(*RemoveIter)); } else Iter++; } ////////////////////////////////////////////////////////////////////////// //ɾϵͳģ pDbgProc->m_ModuleList.RemoveModule(pDbgModule->m_ModuleBase); return; } bool CSyserDI::OnDebugTerminate(bool bCloseDoc) { if(bCloseDoc) { RUNCMD(WSTR("close")); } else { gpSyser->m_MainFrame.m_SystemExplorer.LocalEIP(*X86_REG_PTR.pEIP); gpSyser->m_MainFrame.m_SystemExplorer.UpdateContext(); } return true; } bool CSyserDI::OnDebugPlunge(UINT PlungeType) { if(SyserOption.iFollowMode!=SYSER_FM_AUTOMATIC) gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SyserOption.iFollowMode==SYSTEM_EXPLORER_VIEW?SYSTEM_EXPLORER_VIEW:SOURCE_EXPLORER_VIEW); else gpSyser->m_MainFrame.m_MainTabWnd.SetActiveWnd(SYSTEM_EXPLORER_VIEW); gpSyser->m_MainFrame.m_SystemExplorer.LocalEIP(*X86_REG_PTR.pEIP); gpSyser->m_MainFrame.m_SystemExplorer.InsertRunTrace(); UpdateContext(); for(CPluginMap::IT Iter = gpSyser->m_PluginMap.Begin();Iter!=gpSyser->m_PluginMap.End();Iter++) { if(Iter->fpOnDebuggerPlunge) Iter->fpOnDebuggerPlunge(); } gpSyser->m_MainFrame.SetDefaultFocus(); return true; } bool CSyserDI::OnDebugTerminateMultiThread(bool bCloseDoc) { WISP_MSG Msg; Msg.hWnd = &gpSyser->m_MainFrame; Msg.Msg = EVENT_ID_DEBUG_TERMINATE; Msg.Command.Param1 = bCloseDoc; gpSyser->PostMessage(&Msg); return true; } bool CSyserDI::OnDebugPlungeMultiThread(UINT PlungeType) { WISP_MSG Msg; Msg.hWnd = &gpSyser->m_MainFrame; Msg.Msg = EVENT_ID_DEBUG_PLUNGE; Msg.Command.Param1 = PlungeType; gpSyser->PostMessage(&Msg); return true; } void CSyserDI::UpdateTraceConditionVal() { gpSyser->m_SyserUI.m_CodeDoc.UpdateEIPOpcode(); } void CSyserDI::UpdateContext() { UPDATE_CONTEXT(); UPDATE_SOURCE_CODE_VIEW(true);//Ensure Show EIP gpSyser->m_SyserUI.m_CallStack.UpdateContext(); gpSyser->m_MainFrame.m_CallStackWnd.UpdateContext(); } void CSyserDI::DisplayMsg(PCSTR szMessage) { WISP_CHAR szBuffer[512]; AnsiToUnicode(szMessage,szBuffer,512); #ifdef CODE_OS_NT_DRV if(gbActive) gpSyser->m_MainFrame.m_SystemExplorer.m_TerminalWnd.Output(szBuffer); else SCR_DBG_PRINT(gpSyser->m_RootPos.x+(gpSyser->m_FrameBuffer.Width-TStrLen(szMessage)*8)/2,gpSyser->m_RealFrameBuffer.Height/2,WSTR("%s"),szBuffer); #else gpSyser->m_MainFrame.m_SystemExplorer.m_TerminalWnd.Output(szBuffer); #endif } bool CSyserDI::TestCondition(PCSTR szCondition,PBREAK_POINT pBP) { DWORD Result; if(*szCondition==0) return true; if(pBP) gpSyser->m_SyserUI.m_CodeDoc.m_BPCount=pBP->BPCount; return CALCEXP(szCondition,&Result) && Result!=0; } bool CSyserDI::RunCmd(PCSTR szCmd) { WCHAR szBuffer[256]; AnsiToUnicode(szCmd,szBuffer,256); RUNCMD(szBuffer); return true; } void CSyserDI::RunCmdList(PCSTR szCmd) { WCHAR szBuffer[1024]; if(*szCmd==0) return; AnsiToUnicode(szCmd,szBuffer,1024); gpSyser->m_MainFrame.m_ConsoleWnd.RunCmdList(szBuffer); } bool CSyserDI::CalcPageRangeCondition() { return true; } CDebugger* CSyserDI::GetCurrentDebugger() { return gpSyser->m_pDebugger; } CExpCalc::STExpItem* ColonOptrFunc(CExpCalc::STExpItemListIT&OptIter,CExpCalc::STExpItemList&ExpItemList,CSyserCodeDoc*pThis) { if(pThis->CheckCalcItem(0,OptIter,1,ExpItemList)==false) return NULL; CExpCalc::STExpItemListIT PrevIter,NextIter; PrevIter = OptIter-1; NextIter = OptIter+1; if(PrevIter==ExpItemList.End()) return NULL; int n = I_ES; while(n<=I_GS) { if(TStrNICmp(CInstrSym::m_SegStr[n],PrevIter->ItemStr,2)==0) break; n++; } if(n>I_GS) return NULL; PrevIter->Value.Value = 0; gpSyser->m_pDebugger->GetSegRegBase(n,(DWORD*)&PrevIter->Value.Value); PrevIter->Value.Value=PrevIter->Value.Value + NextIter->Value.Value; pThis->RemoveCalcItem(OptIter,2,ExpItemList); return &(*PrevIter); } CSyserCodeDoc::CSyserCodeDoc() { InsertOptFunc(":",3,(PFOptFunc)ColonOptrFunc,this); } CSyserCodeDoc::~CSyserCodeDoc() { } bool CSyserCodeDoc::AddrToSym(DWORD Address,PSTR szSym,int MaxLength) { return gpSyser->m_SyserUI.GetSym(Address,szSym,MaxLength); } bool CSyserCodeDoc::GetInstrRefPoint(ULPOS*pAddress) { if(gpSyser->m_pDebugger->m_ModuleList.GetNearbySymbolAddrress(pAddress)) return true; #ifdef CODE_OS_NT_DRV if(gpSyser->m_pDebugger == gpSyser->m_pSysDebugger) return false; return gpSyser->m_pSysDebugger->m_ModuleList.GetNearbySymbolAddrress(pAddress); #else return false; #endif } ULSIZE CSyserCodeDoc::ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size) { return ReadImage(Address,Buffer,Size); } ULONG CSyserCodeDoc::GetPtrValue(ULONG Address) { ULONG Data=0; ReadImage(Address,&Data,sizeof(Data)); return Data; } bool CSyserCodeDoc::GetValue(PCSTR szItem,ULONG*pValue) { CIStrW* ModuleName=NULL; if(gpSyser->m_pDebugger==NULL) return false; if(CExpCalc::GetValue(szItem,pValue)) return true; if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) { for(CDbgModuleMap::IT Iter=gpSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=gpSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { if(Iter->GetAddress(szItem,(ULPOS*)pValue)) return true; } } for(CDbgModuleMap::IT Iter=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { #ifdef CODE_OS_NT_DRV if(Iter->m_pSymbolModule==NULL || Iter->m_pSymbolModule->m_ModuleBase) continue; #endif if(Iter->GetAddress(szItem,(ULPOS*)pValue)) return true; } #ifdef CODE_OS_NT_DRV for(CSymbolContainer::IT Iter = gpSyser->m_SyserUI.m_SymbolContainer.Begin();Iter.IsExist();Iter++) { if(Iter->m_ModuleBase==0) continue; if(Iter->GetAddress(szItem,(ULPOS*)pValue)) return true; } #endif return false; } bool CSyserCodeDoc::GetValue(PCWSTR szItem,ULONG*pValue) { CHAR szBuffer[256]; UnicodeToAnsi(szItem,szBuffer,256); return GetValue(szBuffer,pValue); } bool CSyserCodeDoc::Open(PCSTR Name) { if(gpSyser->m_pDebugger==NULL || IsOpened()) return false; gpSyser->m_pDebugger->GetX86RegPtr(&m_X86RegPtr); #ifdef CODE_OS_WIN if(gpSyser->m_pDebugger->Open(Name)==false) return false; gpSyser->m_pSysDebugger = gpSyser->m_pDebugger; #endif CCodeDoc::Open(Name); gpSyser->m_SyserUI.m_SyserDI.ResetTrace(); m_MainModuleName = Name; InsertX86RegSym(&m_X86RegPtr); InsertPtrSym("OPCODE" ,&m_EIPOpcode,1); InsertPtrSym("OPCODE2",&m_EIPOpcode,2); InsertPtrSym("OPCODE3",&m_EIPOpcode,3); InsertPtrSym("OPCODE4",&m_EIPOpcode,4); InsertPtrSym("PID",&m_PopPID,4); InsertPtrSym("TID",&m_PopTID,4); InsertPtrSym("BPCOUNT",&m_BPCount,4); for(CPluginMap::IT Iter = gpSyser->m_PluginMap.Begin();Iter!=gpSyser->m_PluginMap.End();Iter++) { if(Iter->fpOnDebuggerOpen) Iter->fpOnDebuggerOpen(); } #ifdef CODE_OS_WIN gpSyser->m_MainFrame.m_SystemExplorer.UpdateItemState(); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); UPDATE_CONTEXT(); UPDATE_SOURCE_CODE_VIEW(); gpSyser->InsertHistroy(Name,0); #endif return true; } void CSyserCodeDoc::Close() { if(IsOpened()==false) return; for(CPluginMap::IT Iter = gpSyser->m_PluginMap.Begin();Iter!=gpSyser->m_PluginMap.End();Iter++) { if(Iter->fpOnDebuggerClose) Iter->fpOnDebuggerClose(); } #ifdef CODE_OS_WIN if(gpSyser->m_pDebugger) gpSyser->m_pDebugger->Close(); CSDSModuleMap::IT SDSIter,RemoveIter; SDSIter = gpSyser->m_SyserUI.m_SDSModuleMap.Begin(); while(SDSIter!=gpSyser->m_SyserUI.m_SDSModuleMap.End()) { RemoveIter = SDSIter; SDSIter++; gpSyser->m_SyserUI.UnloadSDSModule(&(*RemoveIter)); } #endif ClearAllSym(); CCodeDoc::Close(); #ifdef CODE_OS_WIN if(gpSyser->m_bActive && gpSyser->m_MainFrame.IsWindow()) { gpSyser->m_MainFrame.m_SystemExplorer.ResetContext(); gpSyser->m_MainFrame.m_SystemExplorer.UpdateItemState(); gpSyser->m_MainFrame.m_SourceDebugFrameWnd.UpdateItemState(); gpSyser->m_MainFrame.UpdateClient(); } #endif STZeroMemory(m_X86RegPtr); m_MainModuleName.Empty(); } void CSyserCodeDoc::UpdateEIPOpcode() { if(gpSyser->m_pDebugger->ReadMemory(*X86_REG_PTR.pEIP,&m_EIPOpcode,sizeof(m_EIPOpcode))!=sizeof(m_EIPOpcode)) m_EIPOpcode = 0xFFFFFFFF; } void CSyserCodeDoc::UpdatePID_TID(DWORD PID,DWORD TID) { m_PopPID=PID; m_PopTID=TID; } void CSyserCodeDoc::GetCurInstrInfo(WCHAR*szInfo) { int n; BYTE Buffer[0x100]; INSTRUCTION_INFORMATION InstrInfo; X86_CPU_REG_PTR CPURegPtr; DIS_CPU DisCPU; if(IsOpened()==false) return; gpSyser->m_pDebugger->UpdateRegister(); gpSyser->m_pDebugger->GetX86RegPtr(&CPURegPtr); DisCPU.gen_reg[I_EAX].erx = *CPURegPtr.pEAX; DisCPU.gen_reg[I_EBX].erx = *CPURegPtr.pEBX; DisCPU.gen_reg[I_ECX].erx = *CPURegPtr.pECX; DisCPU.gen_reg[I_EDX].erx = *CPURegPtr.pEDX; DisCPU.gen_reg[I_ESI].erx = *CPURegPtr.pESI; DisCPU.gen_reg[I_EDI].erx = *CPURegPtr.pEDI; DisCPU.gen_reg[I_EBP].erx = *CPURegPtr.pEBP; DisCPU.gen_reg[I_ESP].erx = *CPURegPtr.pESP; DisCPU.Eflags=*(DWORD*)CPURegPtr.pEFL; DisCPU.SEG_BASE[I_CS] = 0; DisCPU.SEG_BASE[I_DS] = 0; DisCPU.SEG_BASE[I_ES] = 0; DisCPU.SEG_BASE[I_FS] = 0;; DisCPU.SEG_BASE[I_GS] = 0; DisCPU.SEG_BASE[I_SS] = 0; gpSyser->m_pDebugger->GetSegRegBase(*CPURegPtr.pCS,&DisCPU.SEG_BASE[I_CS]); gpSyser->m_pDebugger->GetSegRegBase(*CPURegPtr.pDS,&DisCPU.SEG_BASE[I_DS]); gpSyser->m_pDebugger->GetSegRegBase(*CPURegPtr.pES,&DisCPU.SEG_BASE[I_ES]); gpSyser->m_pDebugger->GetSegRegBase(*CPURegPtr.pFS,&DisCPU.SEG_BASE[I_FS]); gpSyser->m_pDebugger->GetSegRegBase(*CPURegPtr.pGS,&DisCPU.SEG_BASE[I_GS]); gpSyser->m_pDebugger->GetSegRegBase(*CPURegPtr.pSS,&DisCPU.SEG_BASE[I_SS]); InstrInfo.CodeBuff = Buffer; InstrInfo.CodeMode = gpSyser->m_pDebugger->m_CodeMode; InstrInfo.pasm = NULL; InstrInfo.eip = *X86_REG_PTR.pEIP ; Dasm(&InstrInfo,&DisCPU); *szInfo=0; for(n=0;n<3;n++) { if(InstrInfo.op[n].mode == mode_address) { HandleAddressOp(&InstrInfo.op[n],szInfo,&InstrInfo); break; } } if(n>=3) return; } void CSyserCodeDoc::HandleAddressOpForCodeView(ULPOS Address,WISP_COLOR_CHAR* szInfo,int ccLen) { CHAR szSym[MAX_LONG_NAME_LEN]; WCHAR szBuffer[256]; DWORD dwAddress; int StrType; //if(ReadMemory(Address,&dwAddress,sizeof(dwAddress))==sizeof(dwAddress)) //{ // if(AddrToSym(Address,szSym,sizeof(szSym)/sizeof(WCHAR))) // { // ColorStrCat(szInfo,szSym,SC_WHITE,0); // } // else // { // if(GET_STRING_SYM(dwAddress,szBuffer,sizeof(szBuffer)/sizeof(szBuffer[0]),StrType)) // { // if(StrType == CT_ASCII) // ColorStrCat(szInfo,szBuffer,SC_BLUE,0); // else if(StrType == CT_UINCODE) // ColorStrCat(szInfo,szBuffer,SC_LIGHT_BROWN,0); // return ; // } // } //} if(GET_STRING_SYM(Address,szBuffer,sizeof(szBuffer)/sizeof(szBuffer[0]),StrType)) { if(StrType == CT_ASCII) ColorStrCat(szInfo,szBuffer,SC_BLUE,0); else if(StrType == CT_UINCODE) ColorStrCat(szInfo,szBuffer,SC_LIGHT_BROWN,0); return ; } else { if(AddrToSym(Address,szSym,sizeof(szSym)/sizeof(WCHAR))) { ColorStrCat(szInfo,szSym,SC_WHITE,0); } } } void CSyserCodeDoc::GetCurInstrInfoEx(WISP_COLOR_CHAR*szInfo,int ccLen) { int n; BYTE Buffer[0x100]; INSTRUCTION_INFORMATION InstrInfo; X86_CPU_REG_PTR CPURegPtr; DIS_CPU DisCPU; ULONG uPos; if(IsOpened()==false) return; gpSyser->m_pDebugger->UpdateRegister(); gpSyser->m_pDebugger->GetX86RegPtr(&CPURegPtr); DisCPU.gen_reg[I_EAX].erx = *CPURegPtr.pEAX; DisCPU.gen_reg[I_EBX].erx = *CPURegPtr.pEBX; DisCPU.gen_reg[I_ECX].erx = *CPURegPtr.pECX; DisCPU.gen_reg[I_EDX].erx = *CPURegPtr.pEDX; DisCPU.gen_reg[I_ESI].erx = *CPURegPtr.pESI; DisCPU.gen_reg[I_EDI].erx = *CPURegPtr.pEDI; DisCPU.gen_reg[I_EBP].erx = *CPURegPtr.pEBP; DisCPU.gen_reg[I_ESP].erx = *CPURegPtr.pESP; DisCPU.Eflags=*(DWORD*)CPURegPtr.pEFL; DisCPU.SEG_BASE[I_CS] = 0; DisCPU.SEG_BASE[I_DS] = 0; DisCPU.SEG_BASE[I_ES] = 0; DisCPU.SEG_BASE[I_FS] = 0; DisCPU.SEG_BASE[I_GS] = 0; DisCPU.SEG_BASE[I_SS] = 0; InstrInfo.CodeBuff = Buffer; InstrInfo.CodeMode = gpSyser->m_pDebugger->m_CodeMode; InstrInfo.pasm = NULL; InstrInfo.eip = *X86_REG_PTR.pEIP ; Dasm(&InstrInfo,&DisCPU); *szInfo=0; for(n=0;n<3;n++) { switch(InstrInfo.op[n].mode) { case mode_address: uPos = (ULONG)InstrInfo.op[n].addr.line_address; HandleAddressOpForCodeView(uPos,szInfo,ccLen); break; case mode_register: { switch(InstrInfo.op[n].reg.reg_index) { case 0: uPos=*X86_REG_PTR.pEAX; break; case 1: uPos=*X86_REG_PTR.pECX; break; case 2: uPos=*X86_REG_PTR.pEDX; break; case 3: uPos=*X86_REG_PTR.pEBX; break; case 4: uPos=*X86_REG_PTR.pESP; break; case 5: uPos=*X86_REG_PTR.pEBP; break; case 6: uPos=*X86_REG_PTR.pESI; break; case 7: uPos=*X86_REG_PTR.pEDI; break; } HandleAddressOpForCodeView(uPos,szInfo,ccLen); } break; } } if(n>=3) return; } ULSIZE CSyserCodeDoc::ReadImage(ULPOS Address,void*Buffer,ULSIZE Size) { ULSIZE RDSize; if(!IsOpened()) return 0; RDSize=gpSyser->m_pDebugger->ReadMemory(Address,Buffer,Size); if(RDSize==0) return 0; if(SyserOption.iShowCCByte==0) { for(ULSIZE n=0;nm_pDebugger->GetCodeBP(Address+n); if(pBP && pBP->State == BP_STATE_ENABLE) { PUT_BYTE(Buffer,n,pBP->CodeBackup); } } } } return RDSize; } ULPOS CSyserCodeDoc::GetNextAddress(ULPOS Address,int Count) { int CodeLen; if(Count >= 0) { while(Count>0) { CodeLen = InstrLen(Address); if(CodeLen<=0) CodeLen=1; Address += CodeLen; Count--; } } else { while(Count<0) { CodeLen = PrevInstrLen(Address); if(CodeLen<=0) CodeLen=1; Address -= CodeLen; Count++; } } return Address; } bool CSyserCodeDoc::GetSymbol(ULPOS Address,WCHAR*szSymbol,int BufSize) { CHAR szBuffer[256]; if(GETSYM(Address,szBuffer,256)==false) return false; AnsiToUnicode(szBuffer,szSymbol,BufSize); return true; } bool CSyserCodeDoc::GetComment(ULPOS Address,WCHAR*szComment,int BufSize) { PCSTR pszCmt; if(!IsOpened()) return false; if(pszCmt = gpSyser->m_pDebugger->m_ModuleList.GetComment(Address)) { TStrCpyLimit(szComment,pszCmt,BufSize); return true; } if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) { if(pszCmt = gpSyser->m_pSysDebugger->m_ModuleList.GetComment(Address)) { TStrCpyLimit(szComment,pszCmt,BufSize); return true; } } return false; } bool CSyserCodeDoc::SetComment(ULPOS Address,WCHAR*szComment) { if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE)) { DbgPrint("Syser : Not enough memory to in symbol heap , please enlarge it in option!\n"); return false; } if(!IsOpened()) return false; char szBuffer[MAX_CMT_LEN]; CCommentModule*pCmtMod; CDbgModule*pDbgModule = gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) return false; if(pDbgModule->m_pCommentModule==NULL) { pCmtMod = gpSyser->m_SyserUI.m_CommentContainer.GetCommentModule(pDbgModule->m_ModuleID); if(pCmtMod==NULL) { pCmtMod = gpSyser->m_SyserUI.m_CommentContainer.InsertCommentModule(pDbgModule->m_ModuleID); if(pCmtMod==NULL) return false; pCmtMod->m_ModuleName = pDbgModule->m_ModuleFullName; gpSyser->m_SyserUI.AttachCommentModuleToProcess(pCmtMod); } } UnicodeToAnsi(szComment,szBuffer,MAX_CMT_LEN); if(pDbgModule->m_pCommentModule) return pDbgModule->m_pCommentModule->SetComment(Address-pDbgModule->m_ModuleBase,szBuffer); else return NULL; } bool CSyserCodeDoc::SetSymbol(ULPOS Address,WCHAR*szSymbol) { if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE)) { DbgPrint("Syser : Not enough memory to in symbol heap , please enlarge it in option!\n"); return false; } if(!IsOpened()) return false; char szBuffer[MAX_SYMBOL_LEN]; CSymbolModule*pSymbolModule; CDbgModule*pDbgModule = gpSyser->m_pDebugger->m_ModuleList.GetModule(Address); if(pDbgModule==NULL) return false; if(pDbgModule->m_pSymbolModule==NULL) { pSymbolModule = gpSyser->m_SyserUI.m_SymbolContainer.GetSymbolModule(pDbgModule->m_ModuleID); if(pSymbolModule==NULL) { pSymbolModule = gpSyser->m_SyserUI.m_SymbolContainer.InsertSymbolModule(pDbgModule->m_ModuleID); if(pSymbolModule==NULL) return false; pSymbolModule->m_ModuleName = pDbgModule->m_ModuleFullName; gpSyser->m_SyserUI.AttachSymbolModuleToProcess(pSymbolModule); } } UnicodeToAnsi(szSymbol,szBuffer,MAX_SYMBOL_LEN); if(pDbgModule->m_pSymbolModule) return pDbgModule->m_pSymbolModule->SetSymbol(Address-pDbgModule->m_ModuleBase,szBuffer); else return NULL; } void CSyserCodeDoc::InsertX86RegSym(X86_CPU_REG_PTR*pRegPtr) { InsertPtrSym("CR2",pRegPtr->pCR2,4); InsertPtrSym("EAX",pRegPtr->pEAX,4); InsertPtrSym("EBX",pRegPtr->pEBX,4); InsertPtrSym("ECX",pRegPtr->pECX,4); InsertPtrSym("EDX",pRegPtr->pEDX,4); InsertPtrSym("EBP",pRegPtr->pEBP,4); InsertPtrSym("ESP",pRegPtr->pESP,4); InsertPtrSym("ESI",pRegPtr->pESI,4); InsertPtrSym("EDI",pRegPtr->pEDI,4); InsertPtrSym("EIP",pRegPtr->pEIP,4); InsertPtrSym("EFLAG",pRegPtr->pEFL,4); InsertPtrSym("EFL",pRegPtr->pEFL,4); InsertPtrSym("AX",pRegPtr->pEAX,2); InsertPtrSym("BX",pRegPtr->pEBX,2); InsertPtrSym("CX",pRegPtr->pECX,2); InsertPtrSym("DX",pRegPtr->pEDX,2); InsertPtrSym("BP",pRegPtr->pEBP,2); InsertPtrSym("SP",pRegPtr->pESP,2); InsertPtrSym("SI",pRegPtr->pESI,2); InsertPtrSym("DI",pRegPtr->pEDI,2); InsertPtrSym("IP",pRegPtr->pEIP,2); InsertPtrSym("AH",RT_PVOID(pRegPtr->pEAX,1),1); InsertPtrSym("BH",RT_PVOID(pRegPtr->pEBX,1),1); InsertPtrSym("CH",RT_PVOID(pRegPtr->pECX,1),1); InsertPtrSym("DH",RT_PVOID(pRegPtr->pEDX,1),1); InsertPtrSym("AL",pRegPtr->pEAX,1); InsertPtrSym("BL",pRegPtr->pEBX,1); InsertPtrSym("CL",pRegPtr->pECX,1); InsertPtrSym("DL",pRegPtr->pEDX,1); } UINT CSyserCodeDoc::GetLineMark(ULPOS Address) { BREAK_POINT*pBP; UINT Mark = CV_MARK_NULL; if(!IsOpened()) return CV_MARK_NULL; pBP = gpSyser->m_pDebugger->GetCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); if(pBP) { if(pBP->State == BP_STATE_ENABLE || pBP->State == BP_STATE_RECOV) Mark|=CV_MARK_BPX; else if(pBP->State == BP_STATE_DISABLE) Mark|=CV_MARK_DISABLED_BPX; } else { CModuleBPMap::IT Iter = gpSyser->m_SyserUI.m_ModuleBPMap.Find(Address); if(Iter.IsExist()) { if(Iter->State == BP_STATE_ENABLE) Mark|=CV_MARK_BPX; else Mark|=CV_MARK_DISABLED_BPX; } } if(Address == *X86_REG_PTR.pEIP) Mark|=CV_MARK_EIP; if(gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.IsBookMark(Address)) Mark|=CV_MARK_BOOK_MARK; return Mark; } bool CSyserCodeDoc::IsExecutePointVisible(ULPOS Address,ULSIZE Size) { int Len; ULPOS Off=0; while(Offm_pDebugger->GetCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_PATCH|BP_TYPE_DEBUG); if(pBP) Result = gpSyser->m_pDebugger->RemoveCodeBP(pBP); else Result = gpSyser->m_pDebugger->InsertCodeBP(Address,0,BP_STATE_ENABLE)!=0; UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return Result; } bool CSyserUI::ToggleCodeBPState(ULPOS Address) { bool Result; BREAK_POINT*pBP; Result = false; pBP = gpSyser->m_pDebugger->GetCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_PATCH|BP_TYPE_DEBUG); if(pBP) { if(pBP->State==BP_STATE_ENABLE) Result = gpSyser->m_pDebugger->DisableCodeBP(pBP); else Result = gpSyser->m_pDebugger->EnableCodeBP(pBP); } return Result; } bool CSyserUI::InsertCodeBP(ULPOS Address,PCSTR Name,PCSTR Contidion,PCSTR DoCmd) { BREAK_POINT*pBP; pBP = gpSyser->m_pDebugger->InsertCodeBP(Address,0,BP_STATE_ENABLE); if(pBP==NULL) return false; if(Contidion && *Contidion) pBP->Condition = Contidion; if(Name && *Name) pBP->Name = Name; if(DoCmd && *DoCmd) pBP->DoCmd = DoCmd; return true; } bool CSyserUI::RemoveCodeBP(ULPOS Address) { return gpSyser->m_pDebugger->RemoveCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); } void CSyserUI::EnableAllModuleBP(bool bEnable) { } bool CSyserUI::EnableModuleBP(ULPOS Address,bool bEnable) { return false; } #endif #ifdef CODE_OS_NT_DRV bool CSyserUI::ToggleCodeBP(ULPOS Address) { bool Result; if(IsPublicBP(Address)==false) { BREAK_POINT*pBP = gpSyser->m_pDebugger->GetCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_PATCH|BP_TYPE_DEBUG); if(pBP) Result = gpSyser->m_pDebugger->RemoveCodeBP(pBP); else Result = gpSyser->m_pDebugger->InsertCodeBP(Address,0,BP_STATE_ENABLE)!=0; } else { CModuleBPMap::IT ModBPIter=gpSyser->m_SyserUI.m_ModuleBPMap.Find(Address); if(ModBPIter.IsExist()) { Result = RemoveCodeBP(Address); } else { Result = InsertCodeBP(Address); } } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return Result; } bool CSyserUI::ToggleCodeBPState(ULPOS Address) { bool Result; BREAK_POINT*pBP; Result = false; if(IsPublicBP(Address)==false) { pBP = gpSyser->m_pDebugger->GetCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_PATCH|BP_TYPE_DEBUG); if(pBP) { if(pBP->State==BP_STATE_ENABLE) Result = gpSyser->m_pDebugger->DisableCodeBP(pBP); else Result = gpSyser->m_pDebugger->EnableCodeBP(pBP); } } else { CModuleBPMap::IT ModBPIter=gpSyser->m_SyserUI.m_ModuleBPMap.Find(Address); if(ModBPIter.IsExist()) { for(CProcMap::IT ProcIter=gpSyser->m_SysInfo.m_ProcMap.Begin();ProcIter.IsExist();ProcIter++) { if(ModBPIter->State==BP_STATE_ENABLE) ProcIter->DisableCodeBP(Address); else ProcIter->EnableCodeBP(Address); } Result = true; ModBPIter->State = ModBPIter->State == BP_STATE_ENABLE?BP_STATE_DISABLE:BP_STATE_ENABLE; } } UPDATE_CODE_VIEW(); UPDATE_SOURCE_CODE_VIEW(); UPDATE_BP_FORM(); return Result; } bool CSyserUI::InsertCodeBP(ULPOS Address,PCSTR Name,PCSTR Contidion,PCSTR DoCmd) { BREAK_POINT*pBP; CHAR szModuleName[MAX_FN_LEN]; if(IsPublicBP(Address,szModuleName)==false) { if(Address >= gpSyser->m_SysInfo.m_SyserBase && Address < gpSyser->m_SysInfo.m_SyserHighBase) return false; pBP = gpSyser->m_pDebugger->InsertCodeBP(Address,0,BP_STATE_ENABLE); if(pBP==NULL) return false; if(Contidion && *Contidion) pBP->Condition = Contidion; if(Name && *Name) pBP->Name = Name; if(DoCmd && *DoCmd) pBP->DoCmd = DoCmd; } else { CModuleBPMap::IT ModBPIter=gpSyser->m_SyserUI.m_ModuleBPMap.InsertUnique(Address); if(ModBPIter.IsExist()==false) return false; ModBPIter->ModuleFileName = szModuleName; ModBPIter->State = BP_STATE_ENABLE; if(Contidion && *Contidion) ModBPIter->Condition = Contidion; if(Name && *Name) { ModBPIter->Name = Name; } else { char szSymbol[256]; if(GetAlmostSym(Address,szSymbol)) ModBPIter->Name = szSymbol; } if(DoCmd && *DoCmd) ModBPIter->DoCmd = DoCmd; for(CProcMap::IT ProcIter=gpSyser->m_SysInfo.m_ProcMap.Begin();ProcIter.IsExist();ProcIter++) { pBP = ProcIter->InsertCodeBP(Address,0,BP_STATE_ENABLE); if(pBP) { pBP->Name = ModBPIter->Name; pBP->Condition = ModBPIter->Condition; pBP->DoCmd = ModBPIter->DoCmd; pBP->pModuleBP = &(*ModBPIter); } } } return true; } bool CSyserUI::RemoveCodeBP(ULPOS Address) { BREAK_POINT*pBP; CHAR szModuleName[MAX_FN_LEN]; if(IsPublicBP(Address,szModuleName)==false) { return gpSyser->m_pDebugger->RemoveCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); } else { CModuleBPMap::IT ModBPIter=gpSyser->m_SyserUI.m_ModuleBPMap.Find(Address); if(ModBPIter.IsExist()==false) return false; gpSyser->m_SyserUI.m_ModuleBPMap.Remove(ModBPIter); for(CProcMap::IT ProcIter=gpSyser->m_SysInfo.m_ProcMap.Begin();ProcIter.IsExist();ProcIter++) { ProcIter->RemoveCodeBP(Address,BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); } } return true; } void CSyserUI::EnableAllModuleBP(bool bEnable) { for(CModuleBPMap::IT ModBPIter=m_ModuleBPMap.Begin();ModBPIter.IsExist();ModBPIter++) { for(CProcMap::IT ProcIter=gpSyser->m_SysInfo.m_ProcMap.Begin();ProcIter.IsExist();ProcIter++) { if(bEnable) ProcIter->EnableCodeBP(ModBPIter.Key(),BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); else ProcIter->DisableCodeBP(ModBPIter.Key(),BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); } ModBPIter->State = bEnable?BP_STATE_ENABLE:BP_STATE_DISABLE; } } bool CSyserUI::EnableModuleBP(ULPOS Address,bool bEnable) { CModuleBPMap::IT ModBPIter=m_ModuleBPMap.Find(Address); if(ModBPIter.IsExist()==false) return false; for(CProcMap::IT ProcIter=gpSyser->m_SysInfo.m_ProcMap.Begin();ProcIter.IsExist();ProcIter++) { if(bEnable) ProcIter->EnableCodeBP(ModBPIter.Key(),BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); else ProcIter->DisableCodeBP(ModBPIter.Key(),BP_TYPE_INC_ALL,BP_TYPE_DEBUG|BP_TYPE_PATCH); } ModBPIter->State = bEnable?BP_STATE_ENABLE:BP_STATE_DISABLE; return true; } bool CSyserUI::IsPublicBP(ULPOS Address,PSTR ModuleName) { if(gpSyser->m_pCsrssProcess==NULL) return false; CDbgModule*pDbgModule = gpSyser->m_pCsrssProcess->GetModule(Address); if(pDbgModule==NULL) return false; for(int n=0;szPublicModuleName[n];n++) { if(TStrICmp(pDbgModule->m_ModuleName,szPublicModuleName[n])==0) { if(ModuleName) TStrCpy(ModuleName,(PCSTR)pDbgModule->m_ModuleFullName); return true; } } return false; } void CSyserUI::SetPublicSymbolModuleBase() { CDbgModule*pDbgModule; if(gpSyser->m_pCsrssProcess==NULL) return; for(int n=0;szPublicModuleName[n];n++) { pDbgModule = gpSyser->m_pCsrssProcess->GetModule(szPublicModuleName[n]); if(pDbgModule && pDbgModule->m_pSymbolModule) { pDbgModule->m_pSymbolModule->m_ModuleBase = pDbgModule->m_ModuleBase; pDbgModule->m_pSymbolModule->m_ModuleSize = pDbgModule->m_ModuleSize; } } } #endif bool CSyserUI::InsertLoadBP(PCSTR ModuleName,UINT Type,BP_STATE State) { CModuleLoadBPMap::IT Iter = m_ModuleLoadBPMap.InsertUnique(ModuleName); if(Iter.IsExist()==false) return false; Iter->Type = Type; Iter->State = State; return true; } bool CSyserUI::RemoveLoadBP(PCSTR ModuleName) { return m_ModuleLoadBPMap.Remove(ModuleName)!=0; } void CSyserUI::EnableAllLoadBP(bool bEnable) { for(CModuleLoadBPMap::IT Iter=m_ModuleLoadBPMap.Begin();Iter.IsExist();Iter++) { if((Iter->Type&(BP_TYPE_DEBUG|BP_TYPE_PATCH))==0) { Iter->State = bEnable?BP_STATE_ENABLE:BP_STATE_DISABLE; } } } bool CSyserUI::RegisterPluginModule(PCWSTR ModuleName,SYSER_PLUGIN_MODULE*pPluginModule) { CPluginMap::IT Iter = gpSyser->m_PluginMap.InsertUnique(ModuleName,*pPluginModule); if(Iter==gpSyser->m_PluginMap.End()) return false; OUTPUT(WSTR("Syser : Register Plugin Module %s (%s)\n"),ModuleName,pPluginModule->PluginInfo); return true; } bool CSyserUI::UnregisterPluginModule(PCWSTR ModuleName) { CPluginMap::IT Iter = gpSyser->m_PluginMap.Find(ModuleName); if(Iter==gpSyser->m_PluginMap.End()) return false; gpSyser->m_PluginMap.Remove(Iter); OUTPUT(WSTR("Syser : Unregister Plugin Module %s\n"),ModuleName); return true; } HANDLE CSyserUI::InsertMenu(void*hParentMenu,const WCHAR*szMenuName,FPMenuProc fpMenuProc) { HANDLE hItem; hItem = gpSyser->m_MainFrame.m_SystemExplorer.m_WndMenu.InsertItem(-1,szMenuName,0,0); gpSyser->m_MainFrame.m_SystemExplorer.m_WndMenu.SetItemData(hItem,(NUM_PTR)fpMenuProc); return hItem; } bool CSyserUI::RemoveMenu(HANDLE hMenu) { return true; } void CSyserUI::Outputf(PCWSTR szMsg,...) { va_list Next; va_start(Next,szMsg); gpSyser->m_MainFrame.m_ConsoleWnd.VPrintf(szMsg,Next); va_end(Next); } void CSyserUI::Output(PCDSTR szMsg) { gpSyser->m_MainFrame.m_ConsoleWnd.Output((WISP_COLOR_CHAR*)szMsg); } bool CSyserUI::EnableMenu(HANDLE hMenu,bool bEnable) { return true; } void* CSyserUI::GetMainTabWnd() { return &gpSyser->m_MainFrame.m_MainTabWnd; } void* CSyserUI::GetMainMenu() { return &gpSyser->m_MainFrame.m_SystemExplorer.m_WndMenu; } void* CSyserUI::GetWisp() { return gpCurWisp; } bool CSyserUI::InsertCmd(PCWSTR szCmd,FPCmd pCmdProc,void*pUserData,PCWSTR pComment,PCWSTR pUsage) { return gpSyser->m_MainFrame.m_ConsoleWnd.InsertCmd(szCmd,(CMDPROC)pCmdProc,pUserData,pComment,pUsage); } void CSyserUI::RemoveCmd(PCWSTR szCmd) { gpSyser->m_MainFrame.m_ConsoleWnd.RemoveCmd(szCmd); } int CSyserUI::RunCmd(PCWSTR szCmd) { return RUNCMD(szCmd); } bool CSyserUI::CalcExp(const CHAR*szExp,ULONG*pResult) { return m_CodeDoc.CalcExp(szExp,(ULONG*)pResult); } bool CSyserUI::CalcExp(const WCHAR*szExp,ULONG*pResult) { CHAR szBuffer[256]; if(szExp==NULL) return false; UnicodeToAnsi(szExp,szBuffer,256); return m_CodeDoc.CalcExp(szBuffer,(ULONG*)pResult); } bool CSyserUI::SegmentFilter(const WCHAR*szExp,DWORD*pResult) { return CalcExp(szExp,pResult); } bool CSyserUI::GetSegmentBaseAddress(const WCHAR* pStr,OUT WCHAR* pOutStr,OUT DWORD* SegmentBaseAddres,OUT DWORD* SegmentLimit) { int Len,i,j,k; int PrevEnd=0; char DigBuf[9]; DWORD SegmentSelector; WCHAR *pSegment=NULL; Len=TStrLen(pStr); for(i = 1; i < Len;i++) { if(pStr[i]!=':') continue; if(i-PrevEnd>=2) { if(pStr[i-1]=='s'||pStr[i-1]=='S') { switch(pStr[i-2]) { case 'c':case 'C':case 'd':case 'D':case 'e':case 'E': case 'f':case 'F':case 'g':case 'G':case 's':case 'S': break; default: break; } } else { for(k = 0,j = i-1;j>=PrevEnd;j--,k++) { if((pStr[j]>='0'&& pStr[j]<='9')||(pStr[j]>='a'&&pStr[j]<='f')||(pStr[j]>='A'&&pStr[j]<='F')) continue; break; } if(k&&k<9) { TStrNCpy(DigBuf,&pStr[j+1],k+1); SegmentSelector=0; USHexStrToNum(DigBuf,&SegmentSelector); } } } } return true; } bool CSyserUI::GetSym(ULPOS Address,PSTR szSym,int MaxLength) { PCSTR pszSym; if(gpSyser->m_pDebugger==NULL) return NULL; if(SyserOption.iShowFullSym) { if(gpSyser->m_pDebugger->m_ModuleList.GetFullSymbol(Address,szSym,MaxLength)) return true; if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger && gpSyser->m_pSysDebugger->m_ModuleList.GetFullSymbol(Address,szSym,MaxLength)) return true; //ģȫֿɼ if(gpSyser->m_SyserUI.m_SymbolContainer.GetFullSymbol(Address,szSym,MaxLength)) return true; } else { if(pszSym = gpSyser->m_pDebugger->m_ModuleList.GetSymbol(Address)) { TStrCpyLimit(szSym,pszSym,MaxLength); return true; } if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger && gpSyser->m_pSysDebugger) { if(pszSym = gpSyser->m_pSysDebugger->m_ModuleList.GetSymbol(Address)) { TStrCpyLimit(szSym,pszSym,MaxLength); return true; } } //ģȫֿɼ if(pszSym = gpSyser->m_SyserUI.m_SymbolContainer.GetSymbol(Address)) { TStrCpyLimit(szSym,pszSym,MaxLength); return true; } } return false; } bool CSyserUI::GetString(ULPOS Address, WCHAR* szBuffer,int ccLen,int& type) { char Buffer[256]; if(IsUNICODEString(Address,szBuffer,ccLen)==true) { type=1; return true; } if(IsASCIIString(Address,Buffer,sizeof(Buffer))==false) return false; TStrCpyLimit(szBuffer,Buffer,ccLen); AnsiToUnicode((const char*)Buffer,szBuffer,ccLen); type=0; return true; } bool CSyserUI::IsASCIIString(ULPOS Address,PSTR szBuffer,int ccLen) { CFindString FindString; BYTE InBuffer[256]; BYTE OutBuffer[256]; ULSIZE Size; int OutLen; Size = m_CodeDoc.ReadMemory(Address,InBuffer,sizeof(InBuffer)); if(Size<10) return false; if(FindString.GetString(InBuffer,Size,(BYTE*)OutBuffer,sizeof(OutBuffer),&OutLen)) { Size = TStrCpy(szBuffer,"ASCII \""); TStrCpyLimit(szBuffer+Size,OutBuffer,ccLen-Size-1); TStrCat(szBuffer,"\""); return true; } return false; } bool CSyserUI::IsUNICODEString(ULPOS Address,WCHAR* szBuffer,int ccLen) { CFindString FindString; BYTE InBuffer[256]; WCHAR OutBuffer[256]; ULSIZE Size; int OutLen; Size = m_CodeDoc.ReadMemory(Address,InBuffer,sizeof(InBuffer)); if(Size<10) return false; if(FindString.GetUnicodeString(InBuffer,Size,(BYTE*)OutBuffer,sizeof(OutBuffer),&OutLen)) { Size = TStrCpy(szBuffer,"UNICODE \""); TStrCpyLimit(szBuffer+Size,OutBuffer,ccLen-Size-1); TStrCat(szBuffer,"\""); return true; } return false; } bool CSyserUI::GetAlmostSym(ULPOS Address,PSTR szSym) { CHAR szBuffer[256]; ULPOS AlmostAddress = Address; *szSym=0; if(gpSyser->m_pDebugger->m_ModuleList.GetNearbySymbolAddrress(&AlmostAddress)==false) { if(gpSyser->m_pDebugger == gpSyser->m_pSysDebugger) return false; if(gpSyser->m_pSysDebugger->m_ModuleList.GetNearbySymbolAddrress(&AlmostAddress)==false) return false; } if(GetSym(AlmostAddress,szBuffer)==false) return false; if(AlmostAddress==Address) { TStrCpy(szSym,szBuffer); } else if(AlmostAddress>Address) { TSPrintf(szSym,"%s-0x%X",szBuffer,AlmostAddress - Address); } else { TSPrintf(szSym,"%s+0x%X",szBuffer,Address - AlmostAddress); } return true; } int CSyserUI::GetFullSymbol(PSTR szPart) { int Length = TStrLen(szPart); for(CDbgModuleMap::IT ModeIter=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();ModeIter.IsExist();ModeIter++) if(ModeIter->m_pSymbolModule) for(CSymbolMap::IT Iter = ModeIter->m_pSymbolModule->m_SymbolMap.Begin();Iter.IsExist();Iter++) if(TStrNICmp(szPart,(PCSTR)*Iter,Length)==0) return TStrCpyLimit(szPart,(PCSTR)*Iter,MAX_SYMBOL_LEN); if(gpSyser->m_pDebugger != gpSyser->m_pSysDebugger) for(CDbgModuleMap::IT ModeIter=gpSyser->m_pSysDebugger->m_ModuleList.m_DbgModuleMap.Begin();ModeIter.IsExist();ModeIter++) if(ModeIter->m_pSymbolModule) for(CSymbolMap::IT Iter = ModeIter->m_pSymbolModule->m_SymbolMap.Begin();Iter.IsExist();Iter++) if(TStrNICmp(szPart,(PCSTR)*Iter,Length)==0) return TStrCpyLimit(szPart,(PCSTR)*Iter,MAX_SYMBOL_LEN); return Length; } int CSyserUI::GetInstrLen(DWORD Address) { return m_CodeDoc.InstrLen(Address); } void CSyserUI::SetInstrMode(UINT Mode) { return m_CodeDoc.SetMode(Mode); } bool CSyserUI::LoadComment() { char szFileName[MAX_FN_LEN]; #ifdef CODE_OS_NT_DRV TStrCpy(szFileName,gpSyser->m_SysInfo.m_szSystem32DriversA); TStrCat(szFileName,"Syser.cmt"); #else GetSystemDirectory(szFileName,MAX_FN_LEN); TStrCat(szFileName,"\\drivers\\Syser.cmt"); #endif CImageFileStream File; if(File.Open(szFileName)==false) return false; CCommentContainer::IT DelIter,Iter; Iter = m_CommentContainer.Begin(); while(Iter!=m_CommentContainer.End()) { DelIter=Iter; Iter++; DetachCommentModuleToProcess(&(*DelIter)); } m_CommentContainer.Load(File); File.Close(); for(CCommentContainer::IT Iter=m_CommentContainer.Begin();Iter!=m_CommentContainer.End();Iter++) { AttachCommentModuleToProcess(&(*Iter)); Iter->m_ReferenceCount++;//ü1֤פ } UPDATE_CODE_VIEW(); return true; } bool CSyserUI::SaveComment() { char szFileName[MAX_FN_LEN]; #ifdef CODE_OS_NT_DRV TStrCpy(szFileName,gpSyser->m_SysInfo.m_szSystem32DriversA); TStrCat(szFileName,"Syser.cmt"); #else GetSystemDirectory(szFileName,MAX_FN_LEN); TStrCat(szFileName,"\\drivers\\Syser.cmt"); #endif if(m_CommentContainer.Count()==0) { gpFileIO->DeleteFile(szFileName); return true; } CImageFileStream File; if(File.Create(szFileName)==false) return false; m_CommentContainer.Save(File); File.Close(); for(CCommentContainer::IT Iter=m_CommentContainer.Begin();Iter!=m_CommentContainer.End();Iter++) { Iter->m_ReferenceCount++;//ü1֤פ } return true; } int CSyserUI::AttachSymbolModuleToProcess(CSymbolModule*pSymbolModule) { CDbgModule*pDbgModule; int Count=0; #ifdef CODE_OS_NT_DRV for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { pDbgModule = Iter->m_ModuleList.GetModuleByID(pSymbolModule->m_ModuleID); if(pDbgModule && pDbgModule->m_pSymbolModule==NULL) { pDbgModule->AttachSymbolModule(pSymbolModule); Count++; } } #else pDbgModule = gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(pSymbolModule->m_ModuleID); if(pDbgModule && pDbgModule->m_pSymbolModule==NULL) pDbgModule->AttachSymbolModule(pSymbolModule); #endif return Count; } int CSyserUI::DetachSymbolModuleToProcess(CSymbolModule*pSymbolModule) { int Count=0; #ifdef CODE_OS_NT_DRV for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { for(CDbgModuleMap::IT ModIter=Iter->m_ModuleList.m_DbgModuleMap.Begin();ModIter!=Iter->m_ModuleList.m_DbgModuleMap.End();ModIter++) { if(ModIter->m_pSymbolModule==pSymbolModule) { ModIter->DetachSymbolModule(&gpSyser->m_SyserUI.m_SymbolContainer); Count++; } } } #else for(CDbgModuleMap::IT Iter=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { if(Iter->m_pSymbolModule==pSymbolModule) { Iter->DetachSymbolModule(&m_SymbolContainer); Count++; } } #endif return Count; } DWORD CSyserUI::WriteMemory(DWORD Address,void*Buffer,DWORD Size) { if(gpSyser == NULL || gpSyser->m_pDebugger == NULL || Size == 0 || Buffer == NULL) return 0; return gpSyser->m_pDebugger->WriteMemory(Address,Buffer,Size); } DWORD CSyserUI::ReadMemory(DWORD Address,void*Buffer,DWORD Size) { if(gpSyser == NULL || gpSyser->m_pDebugger == NULL || Size == 0 || Buffer == NULL) return 0; return gpSyser->m_pDebugger->ReadMemory(Address,Buffer,Size); } int CSyserUI::AttachCommentModuleToProcess(CCommentModule*pCmtMod) { CDbgModule*pDbgModule; int Count=0; #ifdef CODE_OS_NT_DRV for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { pDbgModule = Iter->m_ModuleList.GetModuleByID(pCmtMod->m_ModuleID); if(pDbgModule && pDbgModule->m_pCommentModule==NULL) { pDbgModule->AttachCommentModule(pCmtMod); Count++; } } #else pDbgModule = gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(pCmtMod->m_ModuleID); if(pDbgModule && pDbgModule->m_pCommentModule==NULL) pDbgModule->AttachCommentModule(pCmtMod); #endif return Count; } int CSyserUI::DetachCommentModuleToProcess(CCommentModule*pCmtMod) { int Count=0; #ifdef CODE_OS_NT_DRV for(CProcMap::IT Iter=gpSyser->m_SysInfo.m_ProcMap.Begin();Iter!=gpSyser->m_SysInfo.m_ProcMap.End();Iter++) { for(CDbgModuleMap::IT ModIter=Iter->m_ModuleList.m_DbgModuleMap.Begin();ModIter!=Iter->m_ModuleList.m_DbgModuleMap.End();ModIter++) { if(ModIter->m_pCommentModule==pCmtMod) { ModIter->DetachCommentModule(&gpSyser->m_SyserUI.m_CommentContainer); Count++; } } } #else for(CDbgModuleMap::IT Iter=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin();Iter!=gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.End();Iter++) { if(Iter->m_pCommentModule==pCmtMod) { Iter->DetachCommentModule(&m_CommentContainer); Count++; } } #endif return Count; } CSymbolModule*CSyserUI::LoadIDAMapFile(PCSTR szIDAMapFile,PCSTR szFileName,CDbgModule*pDbgModule) { MODULE_ID ModuleID; CHAR szSym[MAX_FN_LEN]; CSymbolModule*pSymbolModule; if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE)) { DbgPrint("Syser : Not enough memory to in symbol heap , please enlarge it in option!\n"); return NULL; } CPEFile PEFile; if(PEFile.Open(szFileName)==false) return NULL; ModuleID = MAKE_MODULE_ID(PEFile.m_PEHead.CheckSum,PEFile.m_PEHead.TimeDateStamp); pSymbolModule = m_SymbolContainer.GetSymbolModule(ModuleID); if(pSymbolModule==NULL) { pSymbolModule = m_SymbolContainer.InsertSymbolModule(ModuleID); if(pSymbolModule) pSymbolModule->m_ModuleName = szFileName; if(pDbgModule) pDbgModule->AttachSymbolModule(pSymbolModule); else AttachSymbolModuleToProcess(pSymbolModule); } CTXTFile TxtFile; if(TxtFile.Open(szIDAMapFile)==false) { PEFile.Close(); return NULL; } TTXTStrList::IT BeginIT,EndIT; DWORD SectionID; DWORD RVA; char* c1; DWORD SectCount=(DWORD)PEFile.m_SectCount; for(BeginIT=TxtFile.m_StrList.Begin(),EndIT=TxtFile.m_StrList.End();BeginIT!=EndIT;BeginIT++) { c1=*BeginIT; while(*c1==' ' || *c1=='\t')c1++; if(c1[4]!=':') continue; c1[4]=0; if(SHexStrToNum(c1,&SectionID)==false) continue; if(SectCountPEFile.m_Section[SectionID].VirtualSize) continue; c1+=14; while(*c1==' ' || *c1=='\t') c1++; RVA+=PEFile.m_Section[SectionID].VirtualAddress; //::DbgPrint("Section[%d]=%08x\n",SectionID,PEFile.m_Section[SectionID].VirtualAddress); if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE)) { DbgPrint("Syser : Not enough memory to in symbol heap , please enlarge it in option!\n"); TxtFile.Close(); PEFile.Close(); return NULL; } pSymbolModule->InsertSymbol(RVA,c1); } TGetFileTitle(szFileName,szSym); pSymbolModule->InsertSymbol(0,szSym); PEFile.Close(); TxtFile.Close(); return pSymbolModule; } char* gMFCDllName[][2]= { {"mfc42.dll","mfc42.def"}, {"mfc70.dll","mfc70.def"}, {"mfc71.dll","mfc71.def"}, {"mfc80.dll","mfc80.def"}, {"mfc90.dll","mfc90.def"}, {"mfc42d.dll","mfc42d.def"}, {"mfc70d.dll","mfc70d.def"}, {"mfc71d.dll","mfc71d.def"}, {"mfc80d.dll","mfc80d.def"}, {"mfc90d.dll","mfc90d.def"}, {"mfc42u.dll","mfc42u.def"}, {"mfc70u.dll","mfc70u.def"}, {"mfc71u.dll","mfc71u.def"}, {"mfc80u.dll","mfc80u.def"}, {"mfc90u.dll","mfc90u.def"}, {"mfc42ud.dll","mfc42ud.def"}, {"mfc70ud.dll","mfc70ud.def"}, {"mfc71ud.dll","mfc71ud.def"}, {"mfc80ud.dll","mfc80ud.def"}, {"mfc90ud.dll","mfc90ud.def"}, }; char* IsMFCDll(PCSTR szFileName) { int i=0,n; n=TStrLen(szFileName); if(n>10) { for(;i=0x100000) { ZwClose(hFile); return NULL; } Buf=new char[1+(int)StdInfo.EndOfFile.QuadPart]; if(Buf==NULL) { ZwClose(hFile); return NULL; } Buf[StdInfo.EndOfFile.QuadPart]=0; Offset64.QuadPart=0; Status = ZwReadFile(hFile,NULL,NULL,NULL,&IOStatus,Buf,(int)StdInfo.EndOfFile.QuadPart,&Offset64,NULL); ZwClose(hFile); if(!NT_SUCCESS(Status)) { delete []Buf; return NULL; } Length=(int)StdInfo.EndOfFile.QuadPart; return Buf; */ } DWORD* InitMFCSym(char* Buf,int BufLen) { DWORD* NameArray=new DWORD[10000]; DWORD Ord; if(NameArray==NULL) return NULL; memset(NameArray,0,sizeof(DWORD)*10000); int i=0,j=0,l; for(;i='0' && Buf[l]<='9';l++); Buf[l]=0; l++; if(SDecStrToNum(Buf+j,&Ord)) { for(;Buf[l] && (Buf[l]==' ' || Buf[l]=='\t');l++); if(Ord<10000) { NameArray[Ord]=(DWORD)&Buf[l]; } } j=i+1; } } return NameArray; } CSymbolModule*CSyserUI::LoadPESym(PCSTR szFileName,CDbgModule*pDbgModule) { MODULE_ID ModuleID; CHAR szSym[MAX_FN_LEN]; CSymbolModule*pSymbolModule; if(IsHeapFreeBelow(SYSER_MAIN_HEAP,MAIN_HEAP_MIN_FREE_SIZE)) { DbgPrint("Syser : Not enough memory to in symbol heap , please enlarge it in option!\n"); return NULL; } CPEFile PEFile; if(PEFile.Open(szFileName)==false) return NULL; ModuleID = MAKE_MODULE_ID(PEFile.m_PEHead.CheckSum,PEFile.m_PEHead.TimeDateStamp); pSymbolModule = m_SymbolContainer.GetSymbolModule(ModuleID); if(pSymbolModule==NULL) { pSymbolModule = m_SymbolContainer.InsertSymbolModule(ModuleID); if(pSymbolModule) pSymbolModule->m_ModuleName = szFileName; if(pDbgModule) pDbgModule->AttachSymbolModule(pSymbolModule); else AttachSymbolModuleToProcess(pSymbolModule); } char* defname =IsMFCDll(szFileName); DWORD* pMFCSym=NULL; char* TextBuf=NULL; if(defname) { int BufLen; char* DefFileName; int nLen=0; #ifdef CODE_OS_WIN char FileName[MAX_PATH]; GetWindowsDirectory(FileName,sizeof(FileName)); TStrCat(FileName,"\\system32\\drivers\\plugin\\"); TStrCat(FileName,defname); DefFileName=FileName; #else nLen = TStrLen(gpSyser->m_SysInfo.m_szSystem32DriversA); TStrCat(gpSyser->m_SysInfo.m_szSystem32DriversA,"plugin\\"); TStrCat(gpSyser->m_SysInfo.m_szSystem32DriversA,defname); DefFileName=gpSyser->m_SysInfo.m_szSystem32DriversA; #endif TextBuf=ReadMFCDefFile(DefFileName,BufLen); if(TextBuf) { pMFCSym = InitMFCSym(TextBuf,BufLen); if(pMFCSym==NULL) { delete []TextBuf; TextBuf=NULL; } } DefFileName[nLen]=0; } char* szSymName; for(int n=0;nInsertSymbol(PEFile.m_ExportFunc[n].Address-PEFile.m_ImageBase,szSymName); } if(pMFCSym) { delete []pMFCSym; delete []TextBuf; } TGetFileTitle(szFileName,szSym); pSymbolModule->InsertSymbol(0,szSym); PEFile.Close(); return pSymbolModule; } #ifdef CODE_OS_WIN int LoadSourceFileCallBack(IN char* OrgFileName,OUT char* NewFileName); bool CSyserUI::LoadTranslateSDS(PCSTR szFileName,ULPOS ModuleBase,ULSIZE ModuleSize) { char szSymbolFileName[MAX_PATH]; if(gpSyser->m_SourceDebug.IsTranslated(szFileName,szSymbolFileName)==false) if(gpSyser->m_SourceDebug.TranslateSymbolFile(szFileName,szSymbolFileName)==false) return false; if(gpSyser->m_SyserUI.LoadSDSModule(szSymbolFileName)==NULL) return false; gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_MultiSourceCodeView.UpdateAllView(); return true; } #endif CSDSModule*CSyserUI::GetSDSModule(ULPOS EIP) { CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModule(EIP); if(pDbgModule==NULL) { if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModule(EIP); if(pDbgModule==NULL) return NULL; } CSDSModuleMap::IT Iter=m_SDSModuleMap.Find(pDbgModule->m_ModuleID); if(Iter.IsExist()) { Iter->m_pCurDbgModule = pDbgModule; return &(*Iter); } return NULL; } bool CSyserUI::IsSDSModuleInProcess(CSDSModule*pSDSModule) { MODULE_ID ModuleID = pSDSModule->GetModuleID(); CDbgModule*pDbgModule=gpSyser->m_pDebugger->m_ModuleList.GetModuleByID(ModuleID); if(pDbgModule==NULL) { if(gpSyser->m_pDebugger!=gpSyser->m_pSysDebugger) pDbgModule=gpSyser->m_pSysDebugger->m_ModuleList.GetModuleByID(ModuleID); if(pDbgModule==NULL) { pSDSModule->m_pCurDbgModule = NULL; return false; } } pSDSModule->m_pCurDbgModule = pDbgModule; return true; } CSDSModule*CSyserUI::LoadSDSModule(PCSTR szSymbolModuleFile) { int SymCount,SrcCount; MODULE_ID ModuleID; //////////////////////////////////////////////////////////////////////////////////////////////////////// //ѿռ䰲ȫ #ifdef CODE_OS_NT_DRV if(gpUserHeap[SYSER_SOURCE_DEBUG_HEAP]->m_HeapBuffer==NULL) gpUserHeap[SYSER_SOURCE_DEBUG_HEAP]->Create(SyserOption.iSourceCodeHeapSizeM*0x100000); if(IsHeapFreeBelow(SYSER_SOURCE_DEBUG_HEAP,0x100000)) { DbgPrint("Syser : Not enough memory to in source code heap , please enlarge it in option!\n"); return NULL; } #endif //ѿռ䰲ȫ //////////////////////////////////////////////////////////////////////////////////////////////////////// ModuleID = CSDSModule::GetSDSMouleID(szSymbolModuleFile); if(ModuleID==0) return NULL; SwitchHeap(SYSER_SOURCE_DEBUG_HEAP); CSDSModuleMap::IT Iter = m_SDSModuleMap.InsertUnique(ModuleID); if(Iter.IsExist()==false) { #ifdef CODE_OS_NT_DRV DbgPrint("Syser : Same SDS is already loaded!\n"); #endif SwitchHeap(SYSER_MAIN_HEAP); return NULL; } #ifdef CODE_OS_NT_DRV Iter->m_MemoryUsed = gpUserHeap[SYSER_SOURCE_DEBUG_HEAP]->m_FreeChunkCount*CHUNK_SIZE; #endif if(Iter->LoadSymFile(szSymbolModuleFile)==false) { DbgPrint("Syser : Fail to load SDS %s\n",szSymbolModuleFile); m_SDSModuleMap.Remove(Iter); SwitchHeap(SYSER_MAIN_HEAP); return NULL; } Iter->m_ModuleFileName=TGetFileName(Iter->GetPEFileFullName()); CSymbolModule*pSymbolModule = gpSyser->m_SyserUI.m_SymbolContainer.GetSymbolModule(ModuleID); if(pSymbolModule==NULL) { pSymbolModule = gpSyser->m_SyserUI.m_SymbolContainer.InsertSymbolModule(ModuleID); if(pSymbolModule==NULL) { DbgPrint("Syser : Fail to insert %s Symbol Module\n",szSymbolModuleFile); m_SDSModuleMap.Remove(Iter); SwitchHeap(SYSER_MAIN_HEAP); return NULL; } pSymbolModule->m_ModuleName = Iter->m_ModuleFileName; gpSyser->m_SyserUI.AttachSymbolModuleToProcess(pSymbolModule); } SymCount=gpSyser->m_SyserUI.LoadSDSSymbol(&(*Iter)); SrcCount=Iter->GetSourceFileCountInPackages(); if(SrcCount==0) {//ûԴļSDSֻ m_SDSModuleMap.Remove(Iter); SwitchHeap(SYSER_MAIN_HEAP); DbgPrint("Syser : Load SDS %s < %d symbols >\n",TGetFileName(szSymbolModuleFile),SymCount); return NULL; } pSymbolModule->m_ReferenceCount++;//ģü1 gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.InsertSymbolModule(&(*Iter)); #ifdef CODE_OS_NT_DRV Iter->m_MemoryUsed -= gpUserHeap[SYSER_SOURCE_DEBUG_HEAP]->m_FreeChunkCount*CHUNK_SIZE; #endif SwitchHeap(SYSER_MAIN_HEAP); DbgPrint("Syser : Load SDS %s < %d symbols , %d source code files >\n",TGetFileName(szSymbolModuleFile),SymCount,SrcCount); return &(*Iter); } bool CSyserUI::UnloadSDSModule(CSDSModule*pSDSModule) { MODULE_ID MID = pSDSModule->GetModuleID(); CSDSModuleMap::IT Iter=m_SDSModuleMap.Find(MID); if(Iter.IsExist()==false) return false; gpSyser->m_MainFrame.m_SourceDebugFrameWnd.m_SDSModuleList.RemoveSymbolModule(&(*Iter));//жؽSDSModuleList CSymbolModule*pSymbolModule = m_SymbolContainer.GetSymbolModule(MID); if(pSymbolModule)//Ӧķģü1 pSymbolModule->m_ReferenceCount--; DbgPrint("Syser : Unload SDS %s\n",TGetFileName((PCSTR)pSDSModule->m_SymbolFileName)); m_SDSModuleMap.Remove(Iter); return true; } int CSyserUI::LoadSDSSymbol(CSDSModule*pSDSModule) { int SymCount; DWORD Count=0,i; PSDUDTDATAITEM pUdtDataItem=NULL; PSDFUNCTIONITEM *pFuncItemArray=NULL; PSDPUBLICSYMBOL pPublic; CSymbolModule*pSymbolModule; if(pSDSModule==NULL || pSDSModule->m_SDSymbolFile==NULL) return 0; pSymbolModule = m_SymbolContainer.GetSymbolModule(pSDSModule->GetModuleID()); if(pSymbolModule==NULL)//ҶӦķģ return 0; SymCount = 0; SwitchHeap(SYSER_SOURCE_DEBUG_HEAP); pUdtDataItem = pSDSModule->GetDataSymbolList(&Count); for(i = 0; i < Count; i++) { if(pUdtDataItem[i].Location==LocIsStatic) { if(IsHeapFreeBelow(SYSER_SOURCE_DEBUG_HEAP,HEAP_MIN_FREE_SIZE)) goto LowMemory; pSymbolModule->InsertSymbol(pUdtDataItem[i].u.LOCISSTATIC.Rva,pUdtDataItem[i].uName.Name); SymCount++; } } pFuncItemArray = pSDSModule->GetFunctionSymbolList(&Count); for(i = 1; i < Count; i++) { if(pFuncItemArray[i]->Rva) { if(IsHeapFreeBelow(SYSER_SOURCE_DEBUG_HEAP,HEAP_MIN_FREE_SIZE)) goto LowMemory; pSymbolModule->InsertSymbol(pFuncItemArray[i]->Rva,pFuncItemArray[i]->uName.Name); SymCount++; } } pPublic = pSDSModule->GetPublicSymbolList(&Count); for(i = 1; i < Count; i++) { if(IsHeapFreeBelow(SYSER_SOURCE_DEBUG_HEAP,HEAP_MIN_FREE_SIZE)) goto LowMemory; pSymbolModule->InsertSymbol(pPublic[i].Rva,pPublic[i].uName.Name); SymCount++; } SwitchHeap(SYSER_MAIN_HEAP); return SymCount; LowMemory: DbgPrint("Syser : Not enough memory to in source code heap , please enlarge it in option!\n"); SwitchHeap(SYSER_MAIN_HEAP); return SymCount; } bool CSyserUI::QuerySDS(PSYSER_QUER_SDS pSyserSDS) { return false; } void CSyserUI::LoadAPIDefine() { int LoadSize,FileSize; char szFileName[MAX_FN_LEN]; GetModulePath(szFileName); TStrCat(szFileName,"APIDef.lib"); CImageFileStream FileStream; if(FileStream.Open(szFileName)) { LoadSize = m_APIMap.Load(FileStream); DbgPrint("Syser : Load API %d records\n",m_APIMap.Count()); FileSize = FileStream.GetFileLength(); if(LoadSize!=FileSize) DbgPrint("Syser : **********Invalid API Define Data , Load Size [%d] != File Size [%d]**********\n",LoadSize,FileSize); FileStream.Close(); } else { DbgPrint("Syser : Fail to load APIDef %s\n",szFileName); } } ================================================ FILE: Project/Syser/Source/SyserUI.h ================================================ #ifndef _SYSER_UI_H_ #define _SYSER_UI_H_ #include "Analyzer.h" #include "CallStack.h" #include "SyserSymAnalyzer.h" class CSyserDI : public CDebugInterface { public://CDebugInterfaceӿ void OnLoadModule(CDebugger*pDbgProc,PCSTR szFileName,ULPOS ModuleBase,ULSIZE ModuleSize,MODULE_ID ModuleID); void OnUnloadModule(CDebugger*pDbgProc,ULPOS ImageBase); bool OnDebugTerminate(bool bCloseDoc); //0 bool OnDebugPlunge(UINT PlungeType=0); //0 bool OnDebugTerminateMultiThread(bool bCloseDoc);//3 bool OnDebugPlungeMultiThread(UINT PlungeType=0);//3 void UpdateTraceConditionVal(); void UpdateContext(); void DisplayMsg(PCSTR szMessage); bool TestCondition(PCSTR szCondition,PBREAK_POINT pBP=NULL); bool RunCmd(PCSTR szCmd); void RunCmdList(PCSTR szCmd); CDebugger*GetCurrentDebugger(); bool CalcPageRangeCondition(); int CalcPageRangeCondition1(); }; class CSyserCodeDoc : public CCodeDoc ,public CInstrSym ,public CExpCalc { public: CSyserCodeDoc(); virtual ~CSyserCodeDoc(); public: //CInstrSymӿ bool AddrToSym(ULPOS Address,PSTR szSym,int MaxLength); bool GetInstrRefPoint(ULPOS*pAddress); ULSIZE ReadMemory(ULPOS Address,void*Buffer,ULSIZE Size); public: //CCalcExpӿ ULONG GetPtrValue(ULONG Address); bool GetValue(PCSTR szItem,ULONG*pValue); bool GetValue(PCWSTR szItem,ULONG*pValue); public: //CCodeDoc bool Open(PCSTR Name); void Close(); ULSIZE ReadImage(ULPOS Address,void*Buffer,ULSIZE Size); ULPOS GetNextAddress(ULPOS Address,int Count); bool GetSymbol(ULPOS Address,WCHAR*szSymbol,int BufSize); bool GetComment(ULPOS Address,WCHAR*szComment,int BufSize); bool SetSymbol(ULPOS Address,WCHAR*szSymbol); bool SetComment(ULPOS Address,WCHAR*szComment); UINT GetLineMark(ULPOS Address); bool IsExecutePointVisible(ULPOS Address,ULSIZE Size); public: X86_CPU_REG_PTR m_X86RegPtr; DWORD m_EIPOpcode; DWORD m_PopPID; //ϵʱĽ ID DWORD m_PopTID; //ϵʱ߳ ID DWORD m_BPCount; //ǰϵִдǶ̬仯ġÿϵĽṹ //һϵ㴥ʱ̬ıλáֻһռλ CStrA m_MainModuleName; void UpdateEIPOpcode(); void GetCurInstrInfo(WCHAR*szInfo); void GetCurInstrInfoEx(WISP_COLOR_CHAR*szInfo,int ccLen);// code view ڵǰ EIP Comment ʵʹ void UpdatePID_TID(DWORD PID,DWORD TID); private: void InsertX86RegSym(X86_CPU_REG_PTR*pRegPtr); void HandleAddressOpForCodeView(ULPOS Address,WISP_COLOR_CHAR* szInfo,int ccLen); }; struct BP_LOAD { BP_STATE State; UINT Type; }; typedef TMap CModuleLoadBPMap; typedef TList BP_RANGE_LIST; typedef TMap PROC_RANGE_BP_MAP; class CSyserUI : public CSyserPluginUI { public: CSyserUI(); ~CSyserUI(); public: ///////////////////////////////////////////////////// //Plugin bool RegisterPluginModule(PCWSTR ModuleName,SYSER_PLUGIN_MODULE*pPluginModule); bool UnregisterPluginModule(PCWSTR ModuleName); //Plugin ///////////////////////////////////////////////////// public: ///////////////////////////////////////////////////// //Process void AttackProcess(PCWSTR szProcName); //Process ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //Command bool InsertCmd(PCWSTR szCmd,FPCmd pCmdProc,void*pUserData,PCWSTR pComment,PCWSTR pUsage); void RemoveCmd(PCWSTR szCmd); int RunCmd(PCWSTR szCmd); void Outputf(PCWSTR szMsg,...); void Output(PCDSTR szMsg); //Command ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //GUI HANDLE InsertMenu(HANDLE hParentMenu,const WCHAR*szMenuName,FPMenuProc fpMenuProc); bool RemoveMenu(HANDLE hMenu); bool EnableMenu(HANDLE hMenu,bool bEnable); void* GetMainTabWnd(); void* GetMainMenu(); void* GetWisp(); //GUI ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //Symbol bool CalcExp(const WCHAR*szExp,ULONG*pResult); bool CalcExp(const CHAR*szExp,ULONG*pResult); bool SegmentFilter(const WCHAR*szExp,DWORD*pResult); bool GetSegmentBaseAddress(const WCHAR* pStr,OUT WCHAR* pOutStr,OUT DWORD* SegmentBaseAddres,OUT DWORD* SegmentLimit); bool GetSym(ULPOS Address,PSTR szSym,int MaxLength = MAX_SYMBOL_LEN); bool GetAlmostSym(ULPOS Address,PSTR szSym); bool IsASCIIString(ULPOS Address,PSTR szBuffer,int ccLen); bool IsUNICODEString(ULPOS Address,WCHAR* szBuffer,int ccLen); bool GetString(ULPOS Address, WCHAR* szBuffer,int ccLen,int& type); int GetFullSymbol(PSTR szPart); //Symbol ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //Comments bool LoadComment(); bool SaveComment(); //Comments ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //Instruction int GetInstrLen(DWORD Address); void SetInstrMode(UINT Mode); //Instruction ///////////////////////////////////////////////////// ///////////////////////////////////////////////////// //Process operation DWORD WriteMemory(DWORD Address,void*Buffer,DWORD Size); DWORD ReadMemory(DWORD Address,void*Buffer,DWORD Size); //Process operation ///////////////////////////////////////////////////// CSDSModule* GetSDSModule(ULPOS EIP); bool IsSDSModuleInProcess(CSDSModule*pSDSModule);//жָSDSModuleǷڵǰ߳ bool ToggleCodeBP(ULPOS Address); bool ToggleCodeBPState(ULPOS Address); bool InsertCodeBP(ULPOS Address,PCSTR Name = NULL,PCSTR Contidion = NULL,PCSTR DoCmd = NULL); bool RemoveCodeBP(ULPOS Address); void EnableAllModuleBP(bool bEnable = true); bool EnableModuleBP(ULPOS Address,bool bEnable = true); bool InsertLoadBP(PCSTR ModuleName,UINT Type,BP_STATE State); bool RemoveLoadBP(PCSTR ModuleName); void EnableAllLoadBP(bool bEnable = true); public: void LoadAPIDefine(); bool IsPublicBP(ULPOS Address,PSTR ModuleName=NULL); void SetPublicSymbolModuleBase(); CAPIMap m_APIMap; CSyserCodeDoc m_CodeDoc; CSymbolContainer m_SymbolContainer; CCommentContainer m_CommentContainer; CSyserDI m_SyserDI; CSDSModuleMap m_SDSModuleMap; CCallStack m_CallStack; CCodeBPMap m_CodeBPMap; CDataBPList m_DataBPList; CModuleBPMap m_ModuleBPMap; CModuleLoadBPMap m_ModuleLoadBPMap; int AttachSymbolModuleToProcess(CSymbolModule*pSymMod); int DetachSymbolModuleToProcess(CSymbolModule*pSymMod); int AttachCommentModuleToProcess(CCommentModule*pCmtMod); int DetachCommentModuleToProcess(CCommentModule*pCmtMod); CSymbolModule*LoadPESym(PCSTR szFileName,CDbgModule*pDbgMod=NULL); CSymbolModule*LoadIDAMapFile(PCSTR szIDAMapFile,PCSTR szFileName,CDbgModule*pDbgMod=NULL); bool LoadTranslateSDS(PCSTR szFileName,ULPOS ModuleBase,ULSIZE ModuleSize); CSDSModule* LoadSDSModule(PCSTR szSymbolModuleFile); bool UnloadSDSModule(CSDSModule*pSDSModule); int LoadSDSSymbol(CSDSModule*pSDSModule); //װSDSķŵģ bool QuerySDS(PSYSER_QUER_SDS pSyserSDS); }; extern PCSTR szPublicModuleName[]; ULSIZE ReadDbgProcMemory(ULPOS Address,void*Buffer,ULSIZE Size,void*Param); #endif ================================================ FILE: Project/Syser/Source/SyserVer.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_DRV #define VER_FILESUBTYPE VFT2_DRV_SYSTEM #define VER_FILEDESCRIPTION_STR "Syser Ring3 Debugger" #define VER_INTERNALNAME_STR "Syser.exe" #define VER_ORIGINALFILENAME_STR "Syser.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "Syser Ring3 Debugger" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ================================================ FILE: Project/Syser/Source/SystemExplorer.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "SystemExplorer.h" #define DEFAULT_MONITOR_VIEW_SIZE 250 //#define SYSER_SCREEN_SHOT WISP_MENU_RES_ITEM CharacterSetTableMenu[]= { {WSTR("IBM ASCII"),EVENT_ID_IBM_ASCII,16*6+7}, {WSTR("ANSI ASCII"),EVENT_ID_ANSI_ASCII,16*6+7}, {WSTR("EBCDIC"),EVENT_ID_EBCDIC,16*6+7}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM RecentFileMenu[]= { {WSTR("Empty"),EVENT_ID_RECENT_FILE,132}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM FileMenu[]= { {WSTR("Open"),EVENT_ID_OPEN,8,WISP_MIS_DISABLED}, {WSTR("Close"),EVENT_ID_CLOSE,9,WISP_MIS_DISABLED}, {WSTR("Load Symbol Files"),EVENT_ID_LOAD_SYMBOL,10}, WISP_MENU_RES_SEPARATOR, {WSTR("Recent Files"),0,36,WISP_MIS_POPUP,RecentFileMenu}, WISP_MENU_RES_SEPARATOR, {WSTR("Save Comments"),EVENT_ID_SAVE_COMMENT,9*16+3,WISP_MIS_DISABLED}, {WSTR("Load Comments"),EVENT_ID_LOAD_COMMENT,9*16+3,WISP_MIS_DISABLED}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM DebugMenu[]= { #ifdef CODE_OS_WIN {WSTR("Reset"),EVENT_ID_RESET,16}, #endif {WSTR("Continue F5"),EVENT_ID_CONTINUE,3}, {WSTR("Return F6"),EVENT_ID_RETURN,2}, {WSTR("Step F8"),EVENT_ID_STEP,0}, {WSTR("Proceed F10"),EVENT_ID_PROCEED,1}, {WSTR("Step Branch F11"),EVENT_ID_STEP_BRANCH,0}, WISP_MENU_RES_SEPARATOR, {WSTR("Break Point Ctrl+F9"),EVENT_ID_BREAK_POINT,4}, {WSTR("Eanble All Breakpoints"),EVENT_ID_ENABLE_BP_ALL,15*16+3}, {WSTR("Disable All Breakpoints"),EVENT_ID_DISABLE_BP_ALL,15*16+4}, {WSTR("Remove All Breakpoints"),EVENT_ID_REMOVE_BP_ALL,15*16+2}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM MonitorMenu[]= { {WSTR("Register View Alt+G"), EVENT_ID_REG_VIEW, 52}, {WSTR("Data View Alt+D"), EVENT_ID_DATA_VIEW_FORM,89}, {WSTR("Call Stack Alt+C"), EVENT_ID_CALL_STACK, 18}, {WSTR("Run Trace List"), EVENT_ID_RUN_TRACE_WND, 181}, {WSTR("Comment List"), EVENT_ID_COMMENT_LIST, 9*16+3}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM ViewMenu[]= { {WSTR("Save Position Shift+Enter"), EVENT_ID_SAVE_POS,16*1+8}, {WSTR("Jump To Previous Position Backspace"), EVENT_ID_PREV_POS,16*1+5}, {WSTR("Jump To Next Position Ctrl+Enter"), EVENT_ID_NEXT_POS,16*1+4}, {WSTR("Empty Position List"), EVENT_ID_EMPTY_POS_LIST,38}, WISP_MENU_RES_SEPARATOR, {WSTR("Toggle BookMark Ctrl+K"),EVENT_ID_BOOKMARK_TOGGLE,13*16}, {WSTR("Previous BookMark Ctrl+P"),EVENT_ID_BOOKMARK_PREV,13*16+2}, {WSTR("Next BookMark Ctrl+N"),EVENT_ID_BOOKMARK_NEXT,13*16+1}, {WSTR("Clear BookMark Ctrl+L"),EVENT_ID_BOOKMARK_CLEAR,13*16+3}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM OptionMenu[]= { {WSTR("Option"), EVENT_ID_DEBUGGER_OPTION,51}, {WSTR("Debugger Select"), EVENT_ID_DEBUGGER_SELECT,53}, {WSTR("Plugin List"), EVENT_ID_PLUGIN_LIST,29}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM ToolsMenu[]= { {WSTR("Memory Search"), EVENT_ID_MEMORY_SEARCH, 13*16+15}, WISP_MENU_RES_SEPARATOR, {WSTR("Calculator"),EVENT_ID_CALC,6}, {WSTR("Soft Keyboard"),EVENT_ID_SOFT_KB,7}, {WSTR("Set HotKey"),EVENT_ID_HOTKEY_CONFIGURE,7}, WISP_MENU_RES_SEPARATOR, {WSTR("PE Explorer"),EVENT_ID_PE_EXPLORER,14}, {WSTR("Character Set Tables"),0,36,WISP_MIS_POPUP,CharacterSetTableMenu}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM HelpMenu[]= { {WSTR("Register Help"),EVENT_ID_REG_HELP,52}, #ifdef CODE_OS_WIN {WSTR("Check New Version"), EVENT_ID_CHECK_NEW_VERSION,104}, #endif {WSTR("About Syser"),EVENT_ID_ABOUT, 62}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM InfoMenu[]= { #ifndef CODE_OS_WIN {WSTR("IDT"),EVENT_ID_IDT,26}, {WSTR("GDT"),EVENT_ID_GDT,26}, {WSTR("LDT"),EVENT_ID_LDT,26}, {WSTR("Page Map"),EVENT_ID_PAGE_MAP,51}, WISP_MENU_RES_SEPARATOR, #endif {WSTR("String References"),EVENT_ID_STRING_REFERENCE,15}, {WSTR("Processes"),EVENT_ID_PROCESS,15}, {WSTR("Threads"),EVENT_ID_THREAD,13*16+4}, {WSTR("Modules"),EVENT_ID_MODULE,13*16+12}, //{WSTR("Objects"),EVENT_ID_OBJECTWND,17}, //{WSTR("Functions"),EVENT_ID_FUNCTIONS_WND,13*16+12}, #ifndef CODE_OS_WIN {WSTR("HWND"),EVENT_ID_HWNDLIST_WND,13*16+12}, #endif WISP_MENU_RES_END }; WISP_MENU_RES_ITEM MainMenu[]= { #ifndef SYSER_SCREEN_SHOT #ifdef CODE_OS_WIN {WSTR("File"),0,61,WISP_MIS_POPUP,FileMenu}, #endif #endif {WSTR("Debug"),0,57,WISP_MIS_POPUP,DebugMenu}, {WSTR("Monitor"),0,53,WISP_MIS_POPUP,MonitorMenu}, {WSTR("View"),0,126,WISP_MIS_POPUP,ViewMenu}, {WSTR("Information"),0,95,WISP_MIS_POPUP,InfoMenu}, #ifndef SYSER_SCREEN_SHOT #ifdef CODE_OS_WIN {WSTR("Option"),0,51,WISP_MIS_POPUP,OptionMenu}, #endif #endif {WSTR("Tools"),0,118,WISP_MIS_POPUP,ToolsMenu}, {WSTR("Help"),0,30,WISP_MIS_POPUP,HelpMenu}, WISP_MENU_RES_END }; WISP_TOOLBAR_RES_ITEM SystemExplorerToolbar[]= { #ifndef SYSER_SCREEN_SHOT #ifdef CODE_OS_WIN {EVENT_ID_OPEN, 8,WISP_TBIS_BUTTON,WSTR("File -> Open"),0,WISP_WS_DISABLED}, {EVENT_ID_CLOSE, 9,WISP_TBIS_BUTTON,WSTR("File -> Close"),0,WISP_WS_DISABLED}, {EVENT_ID_RESET, 16,WISP_TBIS_BUTTON,WSTR("Debug -> Reset"),0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_SEPARATOR, #endif #endif {EVENT_ID_STEP, 0,WISP_TBIS_BUTTON,WSTR("Debug -> Step F8")}, {EVENT_ID_PROCEED, 1,WISP_TBIS_BUTTON,WSTR("Debug -> Proceed F10")}, {EVENT_ID_RETURN, 2,WISP_TBIS_BUTTON,WSTR("Debug -> Return F6")}, {EVENT_ID_CONTINUE, 3,WISP_TBIS_BUTTON,WSTR("Debug -> Continue F5")}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_SAVE_POS, 16*1+8,WISP_TBIS_BUTTON,WSTR("View -> Save Position Shift+Enter"), 0,WISP_WS_DISABLED}, {EVENT_ID_PREV_POS, 16*1+5,WISP_TBIS_BUTTON,WSTR("View -> Jump To Previous Position Backspace<-"), 0,WISP_WS_DISABLED}, {EVENT_ID_NEXT_POS, 16*1+4,WISP_TBIS_BUTTON,WSTR("View -> Jump To Next Position Ctrl+Enter"), 0,WISP_WS_DISABLED}, {EVENT_ID_EMPTY_POS_LIST,38, WISP_TBIS_BUTTON,WSTR("View -> Empty Position List"), 0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_BREAK_POINT, 4,WISP_TBIS_BUTTON,WSTR("Debug -> Break point Ctrl+F9")}, {EVENT_ID_CALL_STACK, 18, WISP_TBIS_BUTTON,WSTR("Monitor -> Call Stack ALT+C")}, {EVENT_ID_RUN_TRACE_WND,181, WISP_TBIS_BUTTON,WSTR("Monitor -> Run Trace List")}, {EVENT_ID_COMMENT_LIST, 9*16+3, WISP_TBIS_BUTTON,WSTR("Monitor -> Comment List")}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_BOOKMARK_TOGGLE, 13*16, WISP_TBIS_BUTTON,WSTR("View -> Toggle BookMark Ctrl+K"),0,WISP_WS_DISABLED}, {EVENT_ID_BOOKMARK_PREV, 13*16+2,WISP_TBIS_BUTTON,WSTR("View -> Previous BookMark Ctrl+P"),0,WISP_WS_DISABLED}, {EVENT_ID_BOOKMARK_NEXT, 13*16+1,WISP_TBIS_BUTTON,WSTR("View -> Next BookMark Ctrl+N"),0,WISP_WS_DISABLED}, {EVENT_ID_BOOKMARK_CLEAR, 13*16+3,WISP_TBIS_BUTTON,WSTR("View -> Clear BookMark Ctrl+L"),0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_MEMORY_SEARCH,13*16+15, WISP_TBIS_BUTTON,WSTR("Tools -> Memory Search")}, {EVENT_ID_CALC, 6, WISP_TBIS_BUTTON,WSTR("Tools -> Calculator")}, {EVENT_ID_SOFT_KB, 7, WISP_TBIS_BUTTON,WSTR("Tools -> Soft keyboard")}, //////////////////////////////////////////////////////////////////////////////// {CMD_ID_INSTR_INFO, 0,WISP_TBIS_EDIT|WISP_TBIS_RIGHT_ALIGN,WSTR("Instruction Information"),300, WISP_ES_READONLY|WISP_WS_BORDER|WISP_ES_CENTER|WISP_WS_DISABLED|WISP_WS_BACK_TRANS}, WISP_TOOLBAR_RES_STATIC_DIB(30), //////////////////////////////////////////////////////////////////////////////// WISP_TOOLBAR_RES_END }; WISP_MSG_MAP_BEGIN(CSystemExplorer) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispWnd) WISP_MSG_CMD_MAP_BEGIN(CSystemExplorer) WISP_MSG_CMD_MAP(CMD_ID_SYSTEM_MAIN_SPLIT,OnCommandMainSplit) WISP_MSG_CMD_MAP(CMD_ID_SYSTEM_VIEW_SPLIT,OnCommandViewSplit) WISP_MSG_CMD_MAP(CMD_ID_SYSTEM_MONITOR_SPLIT,OnCommandMonitorSplit) WISP_MSG_CMD_MAP(CMD_ID_MODULE_LIST_WND,OnCommandModuleWnd) WISP_MSG_CMD_MAP(EVENT_ID_FUNCTIONS_WND,OnCommandFunctionWnd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CSystemExplorer) /////////////////////////////////////////////////////////////////// //File WISP_MSG_EVENT_MAP(EVENT_ID_OPEN, OnEventOpen) WISP_MSG_EVENT_MAP(EVENT_ID_CLOSE, OnEventClose) WISP_MSG_EVENT_MAP(EVENT_ID_LOAD_SYMBOL, OnEventLoadSymbolFile) WISP_MSG_EVENT_MAP(EVENT_ID_SAVE_COMMENT, OnEventSaveComment) WISP_MSG_EVENT_MAP(EVENT_ID_LOAD_COMMENT, OnEventLoadComment) //File /////////////////////////////////////////////////////////////////// //Debug WISP_MSG_EVENT_MAP(EVENT_ID_RESET, OnEventReset) WISP_MSG_EVENT_MAP(EVENT_ID_CONTINUE, OnEventContinue) WISP_MSG_EVENT_MAP(EVENT_ID_RETURN, OnEventReturn) WISP_MSG_EVENT_MAP(EVENT_ID_STEP, OnEventStep) WISP_MSG_EVENT_MAP(EVENT_ID_PROCEED, OnEventProceed) WISP_MSG_EVENT_MAP(EVENT_ID_STEP_BRANCH, OnEventStepBranch) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_BREAK_POINT, OnEventBreakPoint) WISP_MSG_EVENT_MAP(EVENT_ID_ENABLE_BP_ALL, OnEventEnableAllBreakpoint) WISP_MSG_EVENT_MAP(EVENT_ID_DISABLE_BP_ALL, OnEventDisableAllBreakpoint) WISP_MSG_EVENT_MAP(EVENT_ID_REMOVE_BP_ALL, OnEventRemoveAllBreakpoint) //Debug ///////////////////////////////////////////////////////////////////////// //Analyze WISP_MSG_EVENT_MAP(EVENT_ID_MEMORY_SEARCH, OnEventMemorySearch) //Analyze ///////////////////////////////////////////////////////////////////////// //View WISP_MSG_EVENT_MAP(EVENT_ID_REG_VIEW, OnEventRegView) WISP_MSG_EVENT_MAP(EVENT_ID_DATA_VIEW_FORM, OnEventDataViewForm) WISP_MSG_EVENT_MAP(EVENT_ID_CALL_STACK, OnEventCallStack) WISP_MSG_EVENT_MAP(EVENT_ID_RUN_TRACE_WND, OnEventRunTraceWnd) WISP_MSG_EVENT_MAP(EVENT_ID_COMMENT_LIST, OnEventCommentList) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_NEXT_POS, OnEventNextPos) WISP_MSG_EVENT_MAP(EVENT_ID_PREV_POS, OnEventPrevPos) WISP_MSG_EVENT_MAP(EVENT_ID_SAVE_POS, OnEventSavePos) WISP_MSG_EVENT_MAP(EVENT_ID_EMPTY_POS_LIST, OnEventEmptyPosList) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_TOGGLE,OnEventToggleBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_NEXT, OnEventNextBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_PREV, OnEventPrevBookMark) WISP_MSG_EVENT_MAP(EVENT_ID_BOOKMARK_CLEAR, OnEventClearBookMark) //View ///////////////////////////////////////////////////////////////////////// //Option WISP_MSG_EVENT_MAP(EVENT_ID_DEBUGGER_OPTION,OnEventDebuggerOption) WISP_MSG_EVENT_MAP(EVENT_ID_DEBUGGER_SELECT,OnEventDebuggerSelect) WISP_MSG_EVENT_MAP(EVENT_ID_PLUGIN_LIST, OnEventPluginList) //Option ///////////////////////////////////////////////////////////////////////// //Tools WISP_MSG_EVENT_MAP(EVENT_ID_CALC, OnEventCalc) WISP_MSG_EVENT_MAP(EVENT_ID_SOFT_KB, OnEventSoftKB) WISP_MSG_EVENT_MAP(EVENT_ID_HOTKEY_CONFIGURE,OnEventSetHotKey) WISP_MSG_EVENT_MAP(EVENT_ID_PE_EXPLORER, OnEventPEExplorer) WISP_MSG_EVENT_MAP(EVENT_ID_IBM_ASCII, OnEventIBMAscii) WISP_MSG_EVENT_MAP(EVENT_ID_ANSI_ASCII, OnEventANSIAscii) WISP_MSG_EVENT_MAP(EVENT_ID_EBCDIC, OnEventEBCDIC) //Tools ///////////////////////////////////////////////////////////////////////// //Information WISP_MSG_EVENT_MAP(EVENT_ID_IDT, OnEventIDT) WISP_MSG_EVENT_MAP(EVENT_ID_GDT, OnEventGDT) WISP_MSG_EVENT_MAP(EVENT_ID_LDT, OnEventLDT) WISP_MSG_EVENT_MAP(EVENT_ID_PAGE_MAP, OnEventPageMap) //----------------------------------------------------------------------- WISP_MSG_EVENT_MAP(EVENT_ID_PROCESS, OnEventProcess) WISP_MSG_EVENT_MAP(EVENT_ID_THREAD, OnEventThreadWindow) WISP_MSG_EVENT_MAP(EVENT_ID_MODULE, OnEventModuleWindow) WISP_MSG_EVENT_MAP(EVENT_ID_HWNDLIST_WND, OnEventHwndListWindow) WISP_MSG_EVENT_MAP(EVENT_ID_FUNCTIONS_WND, OnEventFunctionWindow) WISP_MSG_EVENT_MAP(EVENT_ID_OBJECTWND, OnEventObjectWnd) WISP_MSG_EVENT_MAP(EVENT_ID_STRING_REFERENCE,OnEventStringReference) //Information ///////////////////////////////////////////////////////////////////////// //Help WISP_MSG_EVENT_MAP(EVENT_ID_REG_HELP, OnEventRegHelp) #ifdef CODE_OS_WIN WISP_MSG_EVENT_MAP(EVENT_ID_CHECK_NEW_VERSION,OnMenuEventCheckNewVersion) #endif WISP_MSG_EVENT_MAP(EVENT_ID_ABOUT, OnMenuEventAboutSyser) //Help ///////////////////////////////////////////////////////////////////////// //HotKey WISP_MSG_EVENT_MAP(EVENT_ID_SEH_CHAIN, OnEventSEHChainWindow) WISP_MSG_EVENT_MAP(EVENT_ID_GEN_REG, OnHotKeyEventGeneReg) WISP_MSG_EVENT_MAP(EVENT_ID_FPU_REG, OnHotKeyEventFPUReg) WISP_MSG_EVENT_MAP(EVENT_ID_XMM_REG, OnHotKeyEventXMMReg) WISP_MSG_EVENT_MAP(EVENT_ID_STACK_WATCH_LIST,OnHotKeyEventStack) WISP_MSG_EVENT_MAP(EVENT_ID_WATCH_LIST, OnHotKeyEventWatch) WISP_MSG_EVENT_MAP(EVENT_ID_CODEVIEW, OnHotKeyEventCodeView) WISP_MSG_EVENT_MAP(EVENT_ID_DATAVIEW, OnHotKeyEventDataView) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_FILE, OnHotKeyEventMenuFile) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_DEBUG, OnHotKeyEventMenuDebug) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_VIEW, OnHotKeyEventMenuView) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_MONITOR, OnHotKeyEventMenuMonitor) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_INFORMATION, OnHotKeyEventMenuInformation) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_OPTION, OnHotKeyEventMenuOption) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_TOOL, OnHotKeyEventMenuTools) WISP_MSG_EVENT_MAP(EVENT_ID_MENU_HELP, OnHotKeyEventMenuHelp) WISP_MSG_EVENT_MAP(EVENT_ID_GETNEXTTRACE, OnGetNextTrace) WISP_MSG_EVENT_MAP(EVENT_ID_GETPREVTRACE, OnGetPrevTrace) //HotKey ///////////////////////////////////////////////////////////////////////// WISP_MSG_EVENT_MAP_DEFAULT_END(OnEventRecentFile) CSystemExplorer::CSystemExplorer() { m_pCurCodeView = NULL; m_CPUNumbers=1; } CSystemExplorer::~CSystemExplorer() { } bool CSystemExplorer::OnEventStringReference(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_FindListWnd.Create(WSTR("String Reference"),0,0,564,344,NULL,EVENT_ID_STRING_REFERENCE_WISPLIST,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL|WISP_WLS_TREE); return true; } bool CSystemExplorer::CreateRegWindows(IN WISP_MSG*pMsg) { int j=gCPUNumbers,i; WCHAR WndText[30]; m_CPUNumbers=gCPUNumbers; m_pWndRegTab = new CWispTabWnd[j]; if(m_pWndRegTab==NULL) return false; m_pWndFpuReg=new CFpuRegisterList[j]; m_pWndESSReg=new CSSERegisterList[j]; m_pWndGeneReg=new CGeneRegList[j]; if(m_pWndFpuReg==NULL || m_pWndESSReg==NULL || m_pWndGeneReg==NULL) { delete []m_pWndRegTab; if(m_pWndFpuReg) delete []m_pWndFpuReg; if(m_pWndESSReg) delete []m_pWndESSReg; if(m_pWndGeneReg) delete []m_pWndGeneReg; return false; } if(m_MultiCPUTabWnd.Create(WSTR(""),0,0,170,310,&m_MonitorSplitWnd,0,WISP_TWS_TOP)==false) { delete []m_pWndRegTab; delete []m_pWndFpuReg; delete []m_pWndESSReg; delete []m_pWndGeneReg; return false; } for(i=0;im_MainFrame.m_ConsoleWnd); m_TerminalWnd.SetHistoryLines(350); m_ViewSplitWnd.InsertWnd(&m_MultiDataView,0,90); m_ViewSplitWnd.InsertWnd(&m_MultiCodeView,0,gpCurWisp->m_pRootWnd->m_ClientRect.cy/2); m_ViewSplitWnd.InsertWnd(&m_TerminalWnd,0,30); m_ViewSplitWnd.AdjustWndPos(); if(CreateRegWindows(pMsg)==false) return false; if(m_ContextTabWnd.Create(WSTR("Context"),CWispRect(0,0,170,200),&m_MonitorSplitWnd,0,WISP_TWS_BUTTOM)==false) return false; if(m_WatchList.Create(NULL,CWispRect(0,0,0,0),&m_ContextTabWnd,0,WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_EMPTY_SEL_RECT)==false) return false; if(m_StackWatchList.Create(NULL,CWispRect(0,0,0,0),&m_ContextTabWnd,0,WISP_WLS_COLUMN_TITLE|WISP_WLS_EMPTY_SEL_RECT)==false) return false; m_ContextTabWnd.InsertWnd(WSTR("Stack ALT+S"),&m_StackWatchList,WispTKDIB("\\SyserIcon\\Stack.bmp",0)); m_ContextTabWnd.InsertWnd(WSTR("Watch ALT+W"),&m_WatchList,WispTKDIB("\\SyserIcon\\Watch.bmp",0)); m_MonitorSplitWnd.InsertWnd(&m_MultiCPUTabWnd,0,m_MultiCPUTabWnd.m_WindowRect.cy); //m_MonitorSplitWnd.InsertWnd(&m_RegTabWnd,0,m_RegTabWnd.m_WindowRect.cy); m_MonitorSplitWnd.InsertWnd(&m_ContextTabWnd,0,m_ContextTabWnd.m_WindowRect.cy); m_MonitorSplitWnd.AdjustWndPos(); RegisterHotKey(EVENT_ID_GEN_REG,WISP_VK_R,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_FPU_REG,WISP_VK_F,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_XMM_REG,WISP_VK_X,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_WATCH_LIST,WISP_VK_W,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_STACK_WATCH_LIST,WISP_VK_S,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_CODEVIEW,WISP_VK_F1,0); RegisterHotKey(EVENT_ID_DATAVIEW,WISP_VK_F1,WISP_MOD_SHIFT); RegisterHotKey(EVENT_ID_MENU_FILE,WISP_VK_F,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_DEBUG,WISP_VK_D,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_MONITOR,WISP_VK_M,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_VIEW,WISP_VK_V,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_INFORMATION,WISP_VK_I,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_OPTION,WISP_VK_O,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_TOOL,WISP_VK_T,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_MENU_HELP,WISP_VK_H,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_GETNEXTTRACE,WISP_VK_ADD,WISP_MOD_ALT); RegisterHotKey(EVENT_ID_GETPREVTRACE,WISP_VK_SUBTRACT,WISP_MOD_ALT); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_TOGGLE,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_NEXT,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_PREV,this); gpSyser->AttachHotKey(EVENT_ID_BOOKMARK_CLEAR,this); return true; } bool CSystemExplorer::OnDestroy(IN WISP_MSG*pMsg) { m_WndMenu.Destroy(); return true; } bool CSystemExplorer::OnEventRecentFile(IN WISP_MSG*pMsg) { #ifdef CODE_OS_WIN int Index; if(pMsg->Command.CmdID>EVENT_ID_RECENT_FILE && pMsg->Command.CmdID<=EVENT_ID_RECENT_FILE_END) { Index = pMsg->Command.CmdID-EVENT_ID_RECENT_FILE-1; TList::IT Iter = gpSyser->m_HistroyList[Index]; if(Iter!=gpSyser->m_HistroyList.End()) { gpSyser->m_SyserUI.m_CodeDoc.Close(); gpSyser->m_SyserUI.m_CodeDoc.Open(Iter->FileName); } } #endif return true; } bool CSystemExplorer::OnEventRunTraceWnd(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_RunTraceWnd.Popup(); return true; } ULSIZE PEFileRead(ULPOS Address,void*Buffer,ULSIZE Size,void*Param) { CX86Debugger* pDebug=(CX86Debugger* )Param; return pDebug->ReadMemory(Address,Buffer,Size); } bool CSystemExplorer::OnEventOpen(IN WISP_MSG*pMsg) { #ifdef CODE_OS_WIN if(gpSyser->m_pDebugger==NULL) return true; char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; if(gpSyser->m_szDbgFileNameFilter.Length()) { OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = gpSyser->m_hLocalInst; OpenFileName.hwndOwner = gpSyser->m_hLocalWnd; UnicodeToAnsi(gpSyser->m_szDbgFileNameFilter,szBuffer,sizeof(szBuffer)); for(int n = TStrLen(szBuffer);n>=0;n--) { if(szBuffer[n]=='|') szBuffer[n]=0; } OpenFileName.lpstrFilter = szBuffer; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; gpSyser->LockTimer(); if(GetOpenFileName(&OpenFileName)==false) { gpSyser->UnlockTimer(); return true; } gpSyser->UnlockTimer(); TStrCpy(szFileName,OpenFileName.lpstrFile); } else { *szFileName=0; } if(gpSyser->m_SyserUI.m_CodeDoc.Open(szFileName)==false) SYSEXPLR_OUTPUT(WSTR("Fail to open file !\n")); #endif return true; } bool CSystemExplorer::OnEventClose(IN WISP_MSG*pMsg) { RUNCMD(WSTR("close")); return true; } bool CSystemExplorer::OnEventEnableAllBreakpoint(IN WISP_MSG* pMsg) { RUNCMD(WSTR("be *")); return true; } bool CSystemExplorer::OnEventDisableAllBreakpoint(IN WISP_MSG* pMsg) { RUNCMD(WSTR("bd *")); return true; } bool CSystemExplorer::OnEventRemoveAllBreakpoint(IN WISP_MSG* pMsg) { RUNCMD(WSTR("bc *")); return true; } bool CSystemExplorer::OnEventLoadComment(IN WISP_MSG*pMsg) { gpSyser->m_SyserUI.LoadComment(); return true; } bool CSystemExplorer::OnEventSaveComment(IN WISP_MSG*pMsg) { gpSyser->m_SyserUI.SaveComment(); return true; } bool CSystemExplorer::OnEventMemorySearch(IN WISP_MSG*pMsg) { if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; m_SearchDialog.CreateForm(NULL); return true; } bool CSystemExplorer::OnEventCommentList(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_CommentList.Popup(); return true; } bool CSystemExplorer::OnEventLoadSymbolFile(IN WISP_MSG*pMsg) { #ifdef CODE_OS_WIN char szFileName[MAX_FN_LEN],szDir[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = gpSyser->m_hLocalInst; OpenFileName.hwndOwner = gpSyser->m_hLocalWnd; OpenFileName.lpstrFilter = "Symbol Files\0*.sds\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; GetModulePath(szDir); TStrCat(szDir,"Symbols"); OpenFileName.lpstrInitialDir = szDir; *szFileName = 0; gpSyser->LockTimer(); if(GetOpenFileName(&OpenFileName)==false) { gpSyser->UnlockTimer(); return true; } gpSyser->UnlockTimer(); gpSyser->m_SyserUI.LoadSDSModule(szFileName); #endif return true; } bool CSystemExplorer::OnEventPrevPos(IN WISP_MSG*pMsg) { m_pCurCodeView->OnEventPrevPos(pMsg); return true; } bool CSystemExplorer::OnEventNextPos(IN WISP_MSG*pMsg) { m_pCurCodeView->OnEventNextPos(pMsg); return true; } bool CSystemExplorer::OnEventSavePos(IN WISP_MSG*pMsg) { m_pCurCodeView->OnEventSavePos(pMsg); return true; } bool CSystemExplorer::OnEventEmptyPosList(IN WISP_MSG*pMsg) { m_pCurCodeView->OnEventEmptyPosList(pMsg); return true; } bool CSystemExplorer::OnEventIDT(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_IDTWnd.Popup(); return true; } bool CSystemExplorer::OnEventGDT(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_GDTWnd.Popup(); return true; } bool CSystemExplorer::OnEventLDT(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_GDTWnd.Popup(); return true; } bool CSystemExplorer::OnEventProcess(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_ProcessList.Popup(); return true; } bool CSystemExplorer::OnEventModuleWindow(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.m_ModuleList.Popup(); return true; } bool CSystemExplorer::OnEventHwndListWindow(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.m_HwndListWnd.Popup(); return true; } bool CSystemExplorer::OnEventFunctionWindow(IN WISP_MSG* pMsg) { if(m_FunctionWnd.IsWindow()==false) { m_FunctionWnd.Create(WSTR("Functions"),0,0,500,350,NULL,EVENT_ID_FUNCTIONS_WND,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); m_FunctionWnd.SetOwner(this); m_FunctionWnd.InsertColumn(WSTR("Function name"),240); m_FunctionWnd.InsertColumn(WSTR("Start"),80); m_FunctionWnd.InsertColumn(WSTR("Length"),80); m_FunctionWnd.InsertColumn(WSTR("BP based frame"),80); /* CDbgModule* pMod= gpSyser->m_pDebugger->m_ModuleList.GetModule(*gpSyser->m_pDebugger->m_pExecutePoint); CDbgModuleMap::IT DbgIT = gpSyser->m_pDebugger->m_ModuleList.m_DbgModuleMap.Begin(); DbgIT++; pMod =& *DbgIT; m_Analyzer.Open(pMod->m_ModuleBase,pMod->m_ModuleSize,PEFileRead,gpSyser->m_pDebugger); m_Analyzer.AnalyzerFromExportFunction(100,1000); //m_Analyzer.AnalyzerFromEntryPoint(100,1000); TFuncMap::IT BeginIT,EndIT; BeginIT = m_Analyzer.m_FuncMap.Begin(); EndIT=m_Analyzer.m_FuncMap.End(); HANDLE hItem; for(;BeginIT!=EndIT;BeginIT++) { hItem = m_FunctionWnd.InsertItemW(BeginIT->m_Name,NULL); m_FunctionWnd.SetItemNum(hItem,1,BeginIT->m_Start,WSTR("%08X")); m_FunctionWnd.SetItemData(hItem,1,BeginIT->m_Start); m_FunctionWnd.SetItemNum(hItem,2,BeginIT->m_End-BeginIT->m_Start,WSTR("%x")); } m_Analyzer.Close(); */ m_FunctionWnd.Center(); } else { m_FunctionWnd.Show(WISP_SH_NORMAL); m_FunctionWnd.Center(); } return true; } bool CSystemExplorer::OnEventThreadWindow(IN WISP_MSG* pMsg) { if(m_ThreadListWnd.IsWindow()==false) { m_ThreadListWnd.Create(WSTR("Threads"),0,0,500,350,NULL,CMD_ID_THREAD_LIST_WND,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); m_ThreadListWnd.UpdateContext(); m_ThreadListWnd.Center(); m_ThreadListWnd.Focus(); } else { m_ThreadListWnd.Show(WISP_SH_NORMAL); m_ThreadListWnd.UpdateContext(); m_ThreadListWnd.Center(); m_ThreadListWnd.Focus(); } return true; } bool CSystemExplorer::OnEventPageMap(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_PageMapWnd.Popup(); return true; } bool CSystemExplorer::OnEventObjectWnd(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_ObjectWnd.Popup(); return true; } bool CSystemExplorer::OnEventRegHelp(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_RegHelpWnd.Popup(); return true; } bool CSystemExplorer::OnMenuEventAboutSyser(IN WISP_MSG*pMsg) { CAboutForm AboutForm; AboutForm.CreateForm(NULL,WISP_SH_MODAL_BLOCK); AboutForm.Destroy(); return true; } #ifdef CODE_OS_WIN bool CSystemExplorer::OnMenuEventCheckNewVersion(IN WISP_MSG*pMsg) { ShellExecute(NULL,"open","http://www.sysersoft.com/queryw32version.php?version=" VER_PRODUCTVERSION_STR "&date=" __DATE__,NULL,NULL,SW_SHOWMAXIMIZED); return true; } #endif bool CSystemExplorer::OnEventContinue(IN WISP_MSG*pMsg) { RUNCMD(WSTR("x")); return true; } bool CSystemExplorer::OnEventReset(IN WISP_MSG*pMsg) { RUNCMD(WSTR("reset")); return true; } bool CSystemExplorer::OnEventStep(IN WISP_MSG*pMsg) { RUNCMD(WSTR("t")); return true; } bool CSystemExplorer::OnEventStepBranch(IN WISP_MSG*pMsg) { RUNCMD(WSTR("tb")); return true; } bool CSystemExplorer::OnEventProceed(IN WISP_MSG*pMsg) { RUNCMD(WSTR("p")); return true; } bool CSystemExplorer::OnEventReturn(IN WISP_MSG*pMsg) { RUNCMD(WSTR("p ret")); return true; } bool CSystemExplorer::OnEventBreakPoint(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_BreakPointForm.Popup(); if(pMsg->Command.CmdMsg == WISP_CMD_HOTKEY) return false; return true; } bool CSystemExplorer::OnEventDebuggerSelect(IN WISP_MSG*pMsg) { #ifdef CODE_OS_WIN gpSyser->m_MainFrame.m_DebuggerSelectForm.Popup(); #endif return true; } bool CSystemExplorer::OnEventDebuggerOption(IN WISP_MSG*pMsg) { #ifdef CODE_OS_WIN if(m_SyserOptionForm.IsWindow()) m_SyserOptionForm.Show(); else m_SyserOptionForm.CreateForm(); #endif return true; } bool CSystemExplorer::OnEventPluginList(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_PluginListForm.Popup(); return true; } bool CSystemExplorer::OnEventCalc(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_WispCalcWnd.Popup(); return true; } bool CSystemExplorer::OnEventSoftKB(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_SoftKeyboard.Popup(); return true; } bool CSystemExplorer::OnEventSetHotKey(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_KeyMapForm.Popup(); return true; } bool CSystemExplorer::OnEventPEExplorer(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_PEExplorerForm.Popup(); return true; } bool CSystemExplorer::OnEventIBMAscii(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_IBMAsciiWnd.Popup(); gpSyser->m_MainFrame.m_IBMAsciiWnd.SetFont(2); gpSyser->m_MainFrame.m_IBMAsciiWnd.Update(); return true; } bool CSystemExplorer::OnEventANSIAscii(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_ANSIAsciiWnd.Popup(); gpSyser->m_MainFrame.m_ANSIAsciiWnd.SetFont(4); gpSyser->m_MainFrame.m_ANSIAsciiWnd.Update(); return true; } bool CSystemExplorer::OnEventEBCDIC(IN WISP_MSG*pMsg) { gpSyser->m_MainFrame.m_EBEDICWnd.Popup(); gpSyser->m_MainFrame.m_EBEDICWnd.SetFont(3); gpSyser->m_MainFrame.m_EBEDICWnd.Update(); return true; } bool CSystemExplorer::OnEventToggleBookMark(IN WISP_MSG*pMsg) { m_MultiCodeView.ToggleBookMark(); return true; } bool CSystemExplorer::OnEventNextBookMark(IN WISP_MSG*pMsg) { m_MultiCodeView.GotoNextBookMark(); return true; } bool CSystemExplorer::OnEventPrevBookMark(IN WISP_MSG*pMsg) { m_MultiCodeView.GotoPrevBookMark(); return true; } bool CSystemExplorer::OnEventClearBookMark(IN WISP_MSG*pMsg) { m_MultiCodeView.ClearAllBookMark(); return true; } void CSystemExplorer::UpdateItemState() { bool bState; #ifdef CODE_OS_WIN//ûЩ˵ûҪ޸ bState = gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_Toolbar.EnableItem(EVENT_ID_OPEN,!bState); m_WndMenu.EnableItem(EVENT_ID_OPEN,!bState); m_Toolbar.EnableItem(EVENT_ID_CLOSE,bState); m_WndMenu.EnableItem(EVENT_ID_CLOSE,bState); m_Toolbar.EnableItem(EVENT_ID_RESET,bState); m_WndMenu.EnableItem(EVENT_ID_RESET,bState); m_Toolbar.EnableItem(EVENT_ID_CONTINUE,bState); m_WndMenu.EnableItem(EVENT_ID_CONTINUE,bState); m_Toolbar.EnableItem(EVENT_ID_RETURN,bState); m_WndMenu.EnableItem(EVENT_ID_RETURN,bState); m_Toolbar.EnableItem(EVENT_ID_STEP,bState); m_WndMenu.EnableItem(EVENT_ID_STEP,bState); m_Toolbar.EnableItem(EVENT_ID_PROCEED,bState); m_WndMenu.EnableItem(EVENT_ID_PROCEED,bState); m_Toolbar.EnableItem(EVENT_ID_STEP_BRANCH,bState); m_WndMenu.EnableItem(EVENT_ID_STEP_BRANCH,bState); m_Toolbar.EnableItem(EVENT_ID_SAVE_COMMENT,bState); m_WndMenu.EnableItem(EVENT_ID_SAVE_COMMENT,bState); m_Toolbar.EnableItem(EVENT_ID_LOAD_COMMENT,bState); m_WndMenu.EnableItem(EVENT_ID_LOAD_COMMENT,bState); m_Toolbar.EnableItem(EVENT_ID_RECENT_FILE,bState); m_WndMenu.EnableItem(EVENT_ID_RECENT_FILE,bState); #endif bState = gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_Toolbar.EnableItem(EVENT_ID_SAVE_POS,bState); m_WndMenu.EnableItem(EVENT_ID_SAVE_POS,bState); bState = m_pCurCodeView->m_AddrIter!=m_pCurCodeView->m_AddrList.Begin() && gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_Toolbar.EnableItem(EVENT_ID_PREV_POS,bState); m_WndMenu.EnableItem(EVENT_ID_PREV_POS,bState); bState=m_pCurCodeView->m_AddrIter!=m_pCurCodeView->m_AddrList.Last() && gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_Toolbar.EnableItem(EVENT_ID_NEXT_POS,bState); m_WndMenu.EnableItem(EVENT_ID_NEXT_POS,bState); bState = (m_pCurCodeView->m_AddrList.Count() > 1) && gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_Toolbar.EnableItem(EVENT_ID_EMPTY_POS_LIST,bState); m_WndMenu.EnableItem(EVENT_ID_EMPTY_POS_LIST,bState); bState = gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_TOGGLE,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_TOGGLE,bState); bState = m_MultiCodeView.m_BookMark.Count()>0 && gpSyser->m_SyserUI.m_CodeDoc.IsOpened(); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_NEXT,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_NEXT,bState); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_PREV,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_PREV,bState); m_WndMenu.EnableItem(EVENT_ID_BOOKMARK_CLEAR,bState); m_Toolbar.EnableItem(EVENT_ID_BOOKMARK_CLEAR,bState); m_Toolbar.Update(); } void CSystemExplorer::InsertRunTrace() { CCodeView*pCodeView; UINT CodeViewIndex; pCodeView=(CCodeView*)m_MultiCodeView.GetActiveWnd(); if(pCodeView==NULL) return; CodeViewIndex = m_MultiCodeView.GetActiveWndIndex(); m_TraceCount = m_RunTrace.Insert(pCodeView->m_CurAddr,*X86_REG_PTR.pEIP,CodeViewIndex); m_TraceMoveIndex = m_TraceCount; for(DWORD i=0;im_TipFullItemTextWnd.IsVisible()) { pActiveWnd->HideItemTip(); } } bool CSystemExplorer::SetRunTrace(UINT Index) { PSTRUNTRACE pTrace; m_TraceMoveIndex=Index+2; pTrace = GetPrevTrace(); if(pTrace==NULL)return false; CCodeView*pCodeView; pCodeView=(CCodeView*)m_MultiCodeView.GetActiveWnd(); if(pCodeView==NULL) return false; pCodeView->SetStartAddress(pTrace->CodeViewStartAddress); pCodeView->SetSelectItemByAddress(pTrace->CodeViewStartAddress+pTrace->EIPOffset); return true; } PSTRUNTRACE CSystemExplorer::GetNextTrace() { DWORD EIP=0; PSTRUNTRACE pTrace; X86_REG_CONTEXT RegContext; DWORD RegModifyMask,i; if(m_TraceMoveIndex==m_TraceCount) return NULL; m_TraceMoveIndex++; if(m_TraceMoveIndex==m_TraceCount) { for(i=0;iCodeViewStartAddress+pTrace->EIPOffset; m_RunTrace.GetRegisterContext(m_TraceMoveIndex-1,&RegContext,&RegModifyMask); CWispTabWnd* pWndRegTab = (CWispTabWnd*)m_MultiCPUTabWnd.GetActiveWnd(); CGeneRegList* pWndGeneReg; if(pWndRegTab) { pWndGeneReg = (CGeneRegList*)pWndRegTab->GetWnd(0); pWndGeneReg->RunTraceUpdateContext(RegModifyMask,&RegContext,EIP); pWndGeneReg->Update(); } return pTrace; } PSTRUNTRACE CSystemExplorer::GetPrevTrace() { PSTRUNTRACE pTrace; DWORD EIP=0; X86_REG_CONTEXT RegContext; DWORD RegModifyMask,i; if(m_TraceMoveIndex==1) return NULL; m_TraceMoveIndex--; for(i=0;iCodeViewStartAddress+pTrace->EIPOffset; m_RunTrace.GetRegisterContext(m_TraceMoveIndex-1,&RegContext,&RegModifyMask); CWispTabWnd* pWndRegTab = (CWispTabWnd*)m_MultiCPUTabWnd.GetActiveWnd(); CGeneRegList* pWndGeneReg; if(pWndRegTab) { pWndGeneReg = (CGeneRegList*)pWndRegTab->GetWnd(0); pWndGeneReg->RunTraceUpdateContext(RegModifyMask,&RegContext,EIP); pWndGeneReg->Update(); } return pTrace; } bool CSystemExplorer::OnEventDataViewForm(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.m_DataViewForm.Popup(); return true; } bool CSystemExplorer::OnEventRegView(IN WISP_MSG* pMsg) { DWORD dwCurrentID=0,i; WCHAR WndText[20]; if(gpSyser->m_MainFrame.m_pRegWnd==NULL) { gpSyser->m_MainFrame.m_pRegWnd=new CGeneRegList[gCPUNumbers]; } #ifdef CODE_OS_NT_DRV dwCurrentID = GetCurrentCPULocalAPICID(); #endif if(gpSyser->m_MainFrame.m_MultiCPURegView.IsWindow()==false) { gpSyser->m_MainFrame.m_MultiCPURegView.Create(WSTR("Register View"),CWispRect(0,0,320,210),NULL,0,WISP_TWS_BUTTOM|WISP_WS_NORMAL); for(i=0;im_MainFrame.m_pRegWnd[i].Create(NULL,CWispRect(0,0,0,0),&gpSyser->m_MainFrame.m_MultiCPURegView,CMD_ID_GENERAL_REGISTER_WND,WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_EMPTY_SEL_RECT)==false) return false; gpSyser->m_MainFrame.m_pRegWnd[i].SetCPUIndex(i); if(i!=dwCurrentID) TSPrintf(WndText,WSTR(" CPU %d "),i); else TSPrintf(WndText,WSTR("*CPU %d "),i); gpSyser->m_MainFrame.m_MultiCPURegView.InsertWnd(WndText,&gpSyser->m_MainFrame.m_pRegWnd[i]); gpSyser->m_MainFrame.m_pRegWnd[i].UpdateContext(); } } else { gpSyser->m_MainFrame.m_MultiCPURegView.Destroy(); for(i=0;im_MainFrame.m_pRegWnd[i].Destroy(); } } return true; } bool CSystemExplorer::OnEventCallStack(IN WISP_MSG* pMsg) { gpSyser->m_MainFrame.m_CallStackWnd.Popup(); return true; } bool CSystemExplorer::OnEventSEHChainWindow(IN WISP_MSG* pMsg) { if(m_SEHChainWnd.IsWindow()==false) { m_SEHChainWnd.Create(WSTR("SEH Chain"),0,0,620,280,NULL,CMD_ID_SEH_LIST_WND,WISP_WLS_COLUMN_TITLE|WISP_WS_NORMAL); m_SEHChainWnd.Center(); } else { m_SEHChainWnd.Show(WISP_SH_NORMAL); m_SEHChainWnd.Center(); } return true; } bool CSystemExplorer::OnHotKeyEventGeneReg(IN WISP_MSG*pMsg) { CWispTabWnd* pWndRegTab = (CWispTabWnd*)m_MultiCPUTabWnd.GetActiveWnd(); if(pWndRegTab) pWndRegTab->SetActiveWnd(0); return false; } bool CSystemExplorer::OnHotKeyEventFPUReg(IN WISP_MSG*pMsg) { CWispTabWnd* pWndRegTab = (CWispTabWnd*)m_MultiCPUTabWnd.GetActiveWnd(); if(pWndRegTab) pWndRegTab->SetActiveWnd(1); //m_WndMenu.OnKeyEvent(&Msg); //m_WndMenu.OnKeyEvent(&Msg); return false; } bool CSystemExplorer::OnHotKeyEventXMMReg(IN WISP_MSG*pMsg) { CWispTabWnd* pWndRegTab = (CWispTabWnd*)m_MultiCPUTabWnd.GetActiveWnd(); if(pWndRegTab) pWndRegTab->SetActiveWnd(2); return false; } bool CSystemExplorer::OnHotKeyEventStack(IN WISP_MSG*pMsg) { m_ContextTabWnd.SetActiveWnd(0); return false; } bool CSystemExplorer::OnHotKeyEventWatch(IN WISP_MSG*pMsg) { m_ContextTabWnd.SetActiveWnd(1); return false; } bool CSystemExplorer::OnHotKeyEventMenuFile(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("File")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuDebug(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Debug")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuView(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("View")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuMonitor(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Monitor")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuInformation(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Information")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuOption(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Option")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuTools(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Tools")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventMenuHelp(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_MSG Msg; m_WndMenu.Focus(); hItem=m_WndMenu.GetItemByName(WSTR("Help")); if(hItem) { m_WndMenu.SetHoverItem(hItem); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RETURN; m_WndMenu.OnKeyEvent(&Msg); Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_DOWN; m_WndMenu.OnKeyEvent(&Msg); } return true; } bool CSystemExplorer::OnHotKeyEventCodeView(IN WISP_MSG*pMsg) { CCodeView*pCodeView = (CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView) pCodeView->Focus(); return true; } bool CSystemExplorer::OnHotKeyEventDataView(IN WISP_MSG*pMsg) { CDataView*pDataView = (CDataView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiDataView.GetActiveWnd(); if(pDataView) pDataView->Focus(); return true; } bool CSystemExplorer::OnCommandMainSplit(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_LDBCLICK && pMsg->Command.Param1 == 0) { WISP_SPLIT_WND*pSplitWnd = (WISP_SPLIT_WND*)pMsg->Command.Param2; if(pSplitWnd->SizeXorYCommand.CmdMsg == WISP_CMD_ITEM_LDBCLICK) { hItem=(HANDLE)pMsg->Command.Param2; //gpSyser->m_MainFrame.m_ModuleList. } return true; } bool CSystemExplorer::OnCommandFunctionWnd(IN WISP_MSG*pMsg) { HANDLE hItem; NUM_PTR ItemData; if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_LDBCLICK) { hItem=(HANDLE)pMsg->Command.Param2; ItemData = m_FunctionWnd.GetItemData(hItem,1); gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.SetActiveAddress((DWORD)ItemData); } return true; } bool CSystemExplorer::OnCommandMonitorSplit(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_LDBCLICK && pMsg->Command.Param1 == 0) { WISP_SPLIT_WND*pSplitWnd = (WISP_SPLIT_WND*)pMsg->Command.Param2; if(pSplitWnd->SizeXorY<100) { m_MonitorSplitWnd.ResizeWndSpace(0,300); m_MonitorSplitWnd.AdjustWndPos(); } else { m_MonitorSplitWnd.ResizeWndSpace(0,0); m_MonitorSplitWnd.AdjustWndPos(); } } else { if(pMsg->Command.CmdMsg == WISP_CMD_ITEM_RDBCLICK && pMsg->Command.Param1 == 0) { WISP_SPLIT_WND*pSplitWnd = (WISP_SPLIT_WND*)pMsg->Command.Param2; if(pSplitWnd->SizeXorY>300) { m_MonitorSplitWnd.ResizeWndSpace(0,300); m_MonitorSplitWnd.AdjustWndPos(); } else { m_MonitorSplitWnd.ResizeWndSpace(0,m_MonitorSplitWnd.m_ClientRect.cy-5); m_MonitorSplitWnd.AdjustWndPos(); } } } return true; } bool CSystemExplorer::OnCommandViewSplit(IN WISP_MSG*pMsg) { WISP_SPLIT_WND*pSplitWnd = (WISP_SPLIT_WND*)pMsg->Command.Param2; switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_LDBCLICK: if(pMsg->Command.Param1 == 0) { if(pSplitWnd->SizeXorY>=m_ClientRect.cy*2/10) { m_ViewSplitWnd.ResizeWndSpace(0,m_ClientRect.cy*2/10); m_ViewSplitWnd.AdjustWndPos(); } else { } } else if(pMsg->Command.Param1 == 1) { } break; case WISP_CMD_ITEM_RDBCLICK: break; } return true; } bool CSystemExplorer::OnSize(IN WISP_MSG*pMsg) { m_Toolbar.Resize(pMsg->Resize.NewSize.cx,m_Toolbar.m_WindowRect.cy); m_MainSplitWnd.Resize(m_ClientRect.cx,m_ClientRect.cy-m_Toolbar.m_WindowRect.cy-m_WndMenu.m_WindowRect.cy); AdjustSplitViewSize(); return true; } void CSystemExplorer::AdjustSplitViewSize() { m_ViewSplitWnd.ResizeWndSpace(0,m_ClientRect.cy*3/20); m_ViewSplitWnd.ResizeWndSpace(1,m_ClientRect.cy*12/20); m_ViewSplitWnd.ResizeWndSpace(2,m_ClientRect.cy*5/20); m_ViewSplitWnd.AdjustWndPos(); } bool CSystemExplorer::OnGetFocus(IN WISP_MSG*pMsg) { m_TerminalWnd.Focus(); return false; } bool CSystemExplorer::AttachDebugger(CX86Debugger*pDebugger) { return true; } void CSystemExplorer::DetachDebugger() { if(gpSyser->m_bActive) { m_MultiCodeView.RemoveAllWnd(); m_MultiCodeView.InsertView(NULL); m_MultiDataView.RemoveAllWnd(); m_MultiDataView.InsertView(NULL); } } void CSystemExplorer::LocalEIP(VADDR32 Address) { DWORD Start,End; WISP_CHAR WndTitle[64]; int CurrentIndex; if(gpSyser->m_pDebugger->m_CodeMode!=gpSyser->m_SyserUI.m_CodeDoc.m_Mode) gpSyser->m_SyserUI.SetInstrMode(gpSyser->m_pDebugger->m_CodeMode); CCodeView*pCodeWnd=(CCodeView*)m_MultiCodeView.GetActiveWnd(); if(pCodeWnd) { pCodeWnd->GetCodeRange(&Start,&End); TSPrintf(WndTitle,WSTR("%08X"),Address); CurrentIndex=m_MultiCodeView.GetActiveWndIndex(); m_MultiCodeView.SetTabText(CurrentIndex,WndTitle); if(Address < Start || Address >= End) { pCodeWnd->SetStartAddress(Address); } else { if(gpSyser->m_SyserUI.m_CodeDoc.IsExecutePointVisible(Start,End-Start)==false) pCodeWnd->SetStartAddress(*X86_REG_PTR.pEIP); } } } void CSystemExplorer::CenterViewCodeAddress(VADDR32 Address) { m_pCurCodeView->CenterVisibleAddress(Address); } void CSystemExplorer::ViewCodeAddress(VADDR32 Address,bool bRecord) { m_pCurCodeView->SetStartAddress(Address,bRecord); } void CSystemExplorer::ViewDataAddress(VADDR32 Address,int SelLen) { CWispHexWnd*pDataWnd=(CWispHexWnd*)m_MultiDataView.GetActiveWnd(); if(pDataWnd) { if(SelLen>0) { pDataWnd->m_bSelect=true; pDataWnd->m_SelStart = Address; pDataWnd->m_SelEnd = Address+SelLen-1; } else { pDataWnd->m_bSelect=false; } pDataWnd->ViewAddress(Address); } } void CSystemExplorer::UpdateContext() { WCHAR szBuffer[MAX_LONG_NAME_LEN]; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return; DWORD dwCurrentCpuID=0,i; #ifdef CODE_OS_NT_DRV dwCurrentCpuID = GetCurrentCPULocalAPICID(); #endif CWispBaseWnd* pFocusWnd = m_pWispBase->m_pFocusWnd; m_MultiCPUTabWnd.SetActiveWnd(dwCurrentCpuID); TSPrintf(szBuffer,WSTR("PID:%x TID:%x "),gpSyser->m_PopupProcessID, gpSyser->m_PopupThreadID); m_ContextStr.SetWindowText(szBuffer); for(i=0;i1 && (m_pWndGeneReg[i].GetCPUIndex()==dwCurrentCpuID)) { TSPrintf(szBuffer,WSTR("*CPU %d "),i); } else { TSPrintf(szBuffer,WSTR(" CPU %d "),i); } m_MultiCPUTabWnd.SetTabText(i,szBuffer); if(gpSyser->m_MainFrame.m_pRegWnd) { if(gpSyser->m_MainFrame.m_pRegWnd[i].IsWindow()) { gpSyser->m_MainFrame.m_pRegWnd[i].UpdateContext(); if(i==dwCurrentCpuID) gpSyser->m_MainFrame.m_MultiCPURegView.SetActiveWnd(dwCurrentCpuID); gpSyser->m_MainFrame.m_MultiCPURegView.SetTabText(i,szBuffer); } } } m_WatchList.UpdateContext(); m_StackWatchList.UpdateContext(*X86_REG_PTR.pESP); m_MultiCodeView.UpdateAllView(); m_MultiDataView.UpdateAllView(); gpSyser->m_SyserUI.m_CodeDoc.GetCurInstrInfo(szBuffer); m_pInfoMsgWnd->SetWindowText(szBuffer); gpSyser->m_MainFrame.m_DataViewForm.UpdateContext(); gpSyser->m_MainFrame.m_RunTraceWnd.UpdateContext(); pFocusWnd->Focus(); Update(); } void CSystemExplorer::UpdateMemoryView() { WCHAR szBuffer[MAX_LONG_NAME_LEN]; if(gpSyser->m_MainFrame.m_ConsoleWnd.m_IsInBatProcess || gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return; gpSyser->m_MainFrame.m_DataViewForm.UpdateContext(); m_WatchList.UpdateContext(); m_StackWatchList.UpdateContext(*X86_REG_PTR.pESP); m_MultiCodeView.UpdateAllView(); m_MultiDataView.UpdateAllView(); gpSyser->m_SyserUI.m_CodeDoc.GetCurInstrInfo(szBuffer); m_pInfoMsgWnd->SetWindowText(szBuffer); Update(); } void CSystemExplorer::SaveMemoryContext() { m_MultiDataView.SaveContextAllView(); } void CSystemExplorer::ResetContext() { for(DWORD i=0;im_MainFrame.m_SourceDebugFrameWnd.m_SourceVariableWatchWnd.ResetContext(); } bool CSystemExplorer::OnGetNextTrace(IN WISP_MSG*pMsg) { PSTRUNTRACE pRunTrace; pRunTrace = SYSTEM_EXPLORER.GetNextTrace(); if(pRunTrace==NULL) return false; CCodeView*pCodeView = (CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView) { pCodeView->SetStartAddress(pRunTrace->CodeViewStartAddress); pCodeView->SetSelectItemByAddress(pRunTrace->CodeViewStartAddress+pRunTrace->EIPOffset); } return true; } bool CSystemExplorer::OnGetPrevTrace(IN WISP_MSG*pMsg) { PSTRUNTRACE pRunTrace; pRunTrace = SYSTEM_EXPLORER.GetPrevTrace(); if(pRunTrace==NULL) return true; CCodeView*pCodeView = (CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView) { pCodeView->SetStartAddress(pRunTrace->CodeViewStartAddress); pCodeView->SetSelectItemByAddress(pRunTrace->CodeViewStartAddress+pRunTrace->EIPOffset); } return true; } ================================================ FILE: Project/Syser/Source/SystemExplorer.h ================================================ #ifndef _SYSTEM_EXPLORER_H_ #define _SYSTEM_EXPLORER_H_ #include "IDTWnd.h" #include "GDTWnd.h" #include "PageMapWnd.h" #include "X86RegHelpTabWnd.h" #include "ProcessList.h" #include "ObjectDirectoryWnd.h" #include "BreakPointForm.h" #include "DebuggerSelectForm.h" #include "PluginListForm.h" #include "DataOperatorDlg.h" #include "CrossReferenceForm.h" #include "RunTrace.h" #include "RunTraceWnd.h" #include "ModuleListWnd.h" #include "ThreadListWnd.h" #include "CallStackWnd.h" #include "FunctionListWnd.h" #include "ErrorCodeWnd.h" #include "SEHChainWnd.h" #include "CommentList.h" #include "MultiCodeView.h" #include "MultiDataView.h" #include "GeneRegList.h" #include "WatchList.h" #include "StackWatchList.h" #include "FpuRegisterList.h" #include "SSERegisterList.h" #include "TypeViewerWnd.h" #include "SearchDialog.h" #include "SyserAboutForm.h" #include "Analyzer.h" class CSystemExplorer : public CWispWnd { public: CSystemExplorer(); ~CSystemExplorer(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnSize); DECLARE_WISP_MSG(OnGetFocus); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnCommandMainSplit) DECLARE_WISP_MSG_CMD(OnCommandViewSplit) DECLARE_WISP_MSG_CMD(OnCommandMonitorSplit) DECLARE_WISP_MSG_CMD(OnCommandModuleWnd) DECLARE_WISP_MSG_CMD(OnCommandFunctionWnd) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventRegView) DECLARE_WISP_MSG_EVENT(OnEventDataViewForm) DECLARE_WISP_MSG_EVENT(OnEventCallStack) DECLARE_WISP_MSG_EVENT(OnHotKeyEventGeneReg) DECLARE_WISP_MSG_EVENT(OnHotKeyEventFPUReg) DECLARE_WISP_MSG_EVENT(OnHotKeyEventXMMReg) DECLARE_WISP_MSG_EVENT(OnHotKeyEventStack) DECLARE_WISP_MSG_EVENT(OnHotKeyEventWatch) DECLARE_WISP_MSG_EVENT(OnHotKeyEventCodeView) DECLARE_WISP_MSG_EVENT(OnHotKeyEventDataView) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuFile) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuDebug) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuView) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuMonitor) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuInformation) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuOption) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuTools) DECLARE_WISP_MSG_EVENT(OnHotKeyEventMenuHelp) DECLARE_WISP_MSG_EVENT(OnHotKeySetting) DECLARE_WISP_MSG_EVENT(OnEventOpen) DECLARE_WISP_MSG_EVENT(OnEventLoadSymbolFile) DECLARE_WISP_MSG_EVENT(OnEventClose) DECLARE_WISP_MSG_EVENT(OnEventSaveComment) DECLARE_WISP_MSG_EVENT(OnEventLoadComment) DECLARE_WISP_MSG_EVENT(OnEventMemorySearch) DECLARE_WISP_MSG_EVENT(OnEventIDT) DECLARE_WISP_MSG_EVENT(OnEventGDT) DECLARE_WISP_MSG_EVENT(OnEventLDT) DECLARE_WISP_MSG_EVENT(OnEventProcess) DECLARE_WISP_MSG_EVENT(OnEventPageMap) DECLARE_WISP_MSG_EVENT(OnEventRegHelp) DECLARE_WISP_MSG_EVENT(OnEventObjectWnd) DECLARE_WISP_MSG_EVENT(OnEventContinue) DECLARE_WISP_MSG_EVENT(OnEventReset) DECLARE_WISP_MSG_EVENT(OnEventStep) DECLARE_WISP_MSG_EVENT(OnEventStepBranch) DECLARE_WISP_MSG_EVENT(OnEventProceed) DECLARE_WISP_MSG_EVENT(OnEventReturn) DECLARE_WISP_MSG_EVENT(OnEventBreakPoint) DECLARE_WISP_MSG_EVENT(OnEventDebuggerOption) DECLARE_WISP_MSG_EVENT(OnEventDebuggerSelect) DECLARE_WISP_MSG_EVENT(OnEventPluginList) DECLARE_WISP_MSG_EVENT(OnEventCalc) DECLARE_WISP_MSG_EVENT(OnEventSoftKB) DECLARE_WISP_MSG_EVENT(OnEventSetHotKey) DECLARE_WISP_MSG_EVENT(OnEventPEExplorer) DECLARE_WISP_MSG_EVENT(OnEventIBMAscii) DECLARE_WISP_MSG_EVENT(OnEventEBCDIC) DECLARE_WISP_MSG_EVENT(OnEventANSIAscii) DECLARE_WISP_MSG_EVENT(OnEventModuleWindow) DECLARE_WISP_MSG_EVENT(OnEventFunctionWindow) DECLARE_WISP_MSG_EVENT(OnEventThreadWindow) DECLARE_WISP_MSG_EVENT(OnEventHwndListWindow) DECLARE_WISP_MSG_EVENT(OnEventCallStackView) DECLARE_WISP_MSG_EVENT(OnEventSEHChainWindow) DECLARE_WISP_MSG_EVENT(OnEventToggleBookMark) DECLARE_WISP_MSG_EVENT(OnEventNextBookMark) DECLARE_WISP_MSG_EVENT(OnEventPrevBookMark) DECLARE_WISP_MSG_EVENT(OnEventClearBookMark) DECLARE_WISP_MSG_EVENT(OnEventCommentList) DECLARE_WISP_MSG_EVENT(OnEventNextPos) DECLARE_WISP_MSG_EVENT(OnEventPrevPos) DECLARE_WISP_MSG_EVENT(OnEventSavePos) DECLARE_WISP_MSG_EVENT(OnEventEmptyPosList) DECLARE_WISP_MSG_EVENT(OnEventRunTraceWnd) DECLARE_WISP_MSG_EVENT(OnEventRecentFile) DECLARE_WISP_MSG_EVENT(OnEventEnableAllBreakpoint) DECLARE_WISP_MSG_EVENT(OnEventDisableAllBreakpoint) DECLARE_WISP_MSG_EVENT(OnEventRemoveAllBreakpoint) DECLARE_WISP_MSG_EVENT(OnMenuEventAboutSyser) DECLARE_WISP_MSG_EVENT(OnEventStringReference) DECLARE_WISP_MSG_EVENT(OnGetPrevTrace) DECLARE_WISP_MSG_EVENT(OnGetNextTrace) #ifdef CODE_OS_WIN DECLARE_WISP_MSG_EVENT(OnMenuEventCheckNewVersion) #endif public: bool AttachDebugger(CX86Debugger*pDebugger); void DetachDebugger(); void LocalEIP(VADDR32 Address); void CenterViewCodeAddress(VADDR32 Address); void ViewCodeAddress(VADDR32 Address,bool bRecord=false); void ViewDataAddress(VADDR32 Address,int SelLen = 0); void UpdateContext(); void SaveMemoryContext(); void UpdateMemoryView(); void ResetContext(); void AdjustSplitViewSize(); void OnHide(); void InsertRunTrace(); PSTRUNTRACE GetNextTrace(); PSTRUNTRACE GetPrevTrace(); bool SetRunTrace(UINT Index); void UpdateItemState(); // Reg,FPU,XMM Ĵ bool CreateRegWindows(IN WISP_MSG*pMsg); public: #ifdef CODE_OS_WIN CSyserOptionForm m_SyserOptionForm; #endif CSearchDialog m_SearchDialog; CMoveFramMenu m_WndMenu; CWispStaticStr m_VersionStr; CWispStaticStr m_ContextStr; CWispBaseWnd* m_pInfoMsgWnd; CWispToolbar m_Toolbar; CWatchList m_WatchList; CStackWatchList m_StackWatchList; CWispTabWnd m_MultiCPUTabWnd; CWispTabWnd m_ContextTabWnd; CWispSplitWnd m_ViewSplitWnd; CWispSplitWnd m_MainSplitWnd; CWispSplitWnd m_MonitorSplitWnd; CMultiCodeView m_MultiCodeView; CMultiDataView m_MultiDataView; DWORD m_CPUNumbers; CFpuRegisterList* m_pWndFpuReg; CSSERegisterList* m_pWndESSReg; CGeneRegList* m_pWndGeneReg; CWispTabWnd* m_pWndRegTab; CTerminalWnd m_TerminalWnd; CCodeView* m_pCurCodeView; ////////////////////////////////////////////////////////////////////////////// /// Run Trace CRunTrace m_RunTrace; X86_REG_CONTEXT m_TracePrevReg; ULPOS m_TraceMoveIndex; ULPOS m_TraceCount; /// Run Trace ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// /// Module Window CThreadListWnd m_ThreadListWnd; CSEHChainWnd m_SEHChainWnd; /// Module Window ////////////////////////////////////////////////////////////////////////////// ULONGLONG m_StrReferenceModuleID; TMap m_StrReferenceMap; CAnalyzer m_Analyzer; CWispList m_FunctionWnd; }; #endif ================================================ FILE: Project/Syser/Source/SystemIoctl.cpp ================================================ #include "stdafx.h" #include "SystemIoctl.h" //#include SYS_IOCTL gSysIoctl[]={ {"IOCTL_BEEP_SET",0x00010000}, {"IOCTL_CDROM_DISK_TYPE",0x00020040}, {"IOCTL_CDROM_READ_TOC",0x00024000}, {"IOCTL_CDROM_SEEK_AUDIO_MSF",0x00024004}, {"IOCTL_CDROM_STOP_AUDIO",0x00024008}, {"IOCTL_CDROM_PAUSE_AUDIO",0x0002400c}, {"IOCTL_CDROM_RESUME_AUDIO",0x00024010}, {"IOCTL_CDROM_GET_VOLUME",0x00024014}, {"IOCTL_CDROM_PLAY_AUDIO_MSF",0x00024018}, {"IOCTL_CDROM_SET_VOLUME",0x00024028}, {"IOCTL_CDROM_READ_Q_CHANNEL",0x0002402c}, {"IOCTL_CDROM_GET_LAST_SESSION",0x00024038}, {"IOCTL_CDROM_RAW_READ",0x0002403e}, {"IOCTL_CDROM_GET_DRIVE_GEOMETRY",0x0002404c}, {"IOCTL_CDROM_GET_DRIVE_GEOMETRY_EX",0x00024050}, {"IOCTL_CDROM_READ_TOC_EX",0x00024054}, {"IOCTL_CDROM_GET_CONFIGURATION",0x00024058}, {"IOCTL_CDROM_CHECK_VERIFY",0x00024800}, {"IOCTL_CDROM_MEDIA_REMOVAL",0x00024804}, {"IOCTL_CDROM_EJECT_MEDIA",0x00024808}, {"IOCTL_CDROM_LOAD_MEDIA",0x0002480c}, {"IOCTL_CDROM_RESERVE",0x00024810}, {"IOCTL_CDROM_RELEASE",0x00024814}, {"IOCTL_CDROM_FIND_NEW_DEVICES",0x00024818}, {"IOCTL_CDROM_UNLOAD_DRIVER",0x00025008}, {"IOCTL_SCSI_GET_INQUIRY_DATA",0x0004100c}, {"IOCTL_SCSI_GET_CAPABILITIES",0x00041010}, {"IOCTL_SCSI_GET_ADDRESS",0x00041018}, {"IOCTL_SCSI_RESCAN_BUS",0x0004101c}, {"IOCTL_SCSI_GET_DUMP_POINTERS",0x00041020}, {"IOCTL_SCSI_FREE_DUMP_POINTERS",0x00041024}, {"IOCTL_SCSI_PASS_THROUGH",0x0004d004}, {"IOCTL_SCSI_MINIPORT",0x0004d008}, {"IOCTL_SCSI_PASS_THROUGH_DIRECT",0x0004d014}, {"IOCTL_IDE_PASS_THROUGH",0x0004d028}, {"IOCTL_ATA_PASS_THROUGH",0x0004d02c}, {"IOCTL_ATA_PASS_THROUGH_DIRECT",0x0004d030}, {"IOCTL_DISK_GET_DRIVE_GEOMETRY",0x00070000}, {"IOCTL_DISK_VERIFY",0x00070014}, {"IOCTL_DISK_PERFORMANCE",0x00070020}, {"IOCTL_DISK_IS_WRITABLE",0x00070024}, {"IOCTL_DISK_LOGGING",0x00070028}, {"IOCTL_DISK_HISTOGRAM_STRUCTURE",0x00070030}, {"IOCTL_DISK_HISTOGRAM_DATA",0x00070034}, {"IOCTL_DISK_HISTOGRAM_RESET",0x00070038}, {"IOCTL_DISK_REQUEST_STRUCTURE",0x0007003c}, {"IOCTL_DISK_REQUEST_DATA",0x00070040}, {"IOCTL_DISK_CONTROLLER_NUMBER",0x00070044}, {"IOCTL_DISK_GET_PARTITION_INFO_EX",0x00070048}, {"IOCTL_DISK_GET_DRIVE_LAYOUT_EX",0x00070050}, {"IOCTL_DISK_PERFORMANCE_OFF",0x00070060}, {"IOCTL_DISK_GET_DRIVE_GEOMETRY_EX",0x000700a0}, {"IOCTL_DISK_UPDATE_PROPERTIES",0x00070140}, {"IOCTL_DISK_SENSE_DEVICE",0x000703e0}, {"IOCTL_DISK_INTERNAL_SET_VERIFY",0x00070403}, {"IOCTL_DISK_INTERNAL_CLEAR_VERIFY",0x00070407}, {"IOCTL_DISK_INTERNAL_SET_NOTIFY",0x00070408}, {"IOCTL_DISK_GET_MEDIA_TYPES",0x00070c00}, {"IOCTL_DISK_GET_PARTITION_INFO",0x00074004}, {"IOCTL_DISK_GET_DRIVE_LAYOUT",0x0007400c}, {"IOCTL_DISK_GET_LENGTH_INFO",0x0007405c}, {"SMART_GET_VERSION",0x00074080}, {"IOCTL_DISK_GET_CACHE_INFORMATION",0x000740d4}, {"IOCTL_DISK_GET_CACHE_SETTING",0x000740e0}, {"IOCTL_DISK_CHECK_VERIFY",0x00074800}, {"IOCTL_DISK_MEDIA_REMOVAL",0x00074804}, {"IOCTL_DISK_EJECT_MEDIA",0x00074808}, {"IOCTL_DISK_LOAD_MEDIA",0x0007480c}, {"IOCTL_DISK_RESERVE",0x00074810}, {"IOCTL_DISK_RELEASE",0x00074814}, {"IOCTL_DISK_FIND_NEW_DEVICES",0x00074818}, {"IOCTL_DISK_SET_PARTITION_INFO",0x0007c008}, {"IOCTL_DISK_SET_DRIVE_LAYOUT",0x0007c010}, {"IOCTL_DISK_FORMAT_TRACKS",0x0007c018}, {"IOCTL_DISK_REASSIGN_BLOCKS",0x0007c01c}, {"IOCTL_DISK_FORMAT_TRACKS_EX",0x0007c02c}, {"IOCTL_DISK_SET_PARTITION_INFO_EX",0x0007c04c}, {"IOCTL_DISK_SET_DRIVE_LAYOUT_EX",0x0007c054}, {"IOCTL_DISK_CREATE_DISK",0x0007c058}, {"SMART_SEND_DRIVE_COMMAND",0x0007c084}, {"SMART_RCV_DRIVE_DATA",0x0007c088}, {"IOCTL_DISK_UPDATE_DRIVE_SIZE",0x0007c0c8}, {"IOCTL_DISK_GROW_PARTITION",0x0007c0d0}, {"IOCTL_DISK_SET_CACHE_INFORMATION",0x0007c0d8}, {"IOCTL_DISK_SET_CACHE_SETTING",0x0007c0e4}, {"IOCTL_DISK_DELETE_DRIVE_LAYOUT",0x0007c100}, {"IOCTL_DISK_FORMAT_DRIVE",0x0007c3cc}, {"IOCTL_DISK_SIMBAD",0x0007d000}, {"FSCTL_REQUEST_OPLOCK_LEVEL_1",0x00090000}, {"FSCTL_REQUEST_OPLOCK_LEVEL_2",0x00090004}, {"FSCTL_REQUEST_BATCH_OPLOCK",0x00090008}, {"FSCTL_OPLOCK_BREAK_ACKNOWLEDGE",0x0009000c}, {"FSCTL_OPBATCH_ACK_CLOSE_PENDING",0x00090010}, {"FSCTL_OPLOCK_BREAK_NOTIFY",0x00090014}, {"FSCTL_LOCK_VOLUME",0x00090018}, {"FSCTL_UNLOCK_VOLUME",0x0009001c}, {"FSCTL_DISMOUNT_VOLUME",0x00090020}, {"FSCTL_IS_VOLUME_MOUNTED",0x00090028}, {"FSCTL_IS_PATHNAME_VALID",0x0009002c}, {"FSCTL_MARK_VOLUME_DIRTY",0x00090030}, {"FSCTL_QUERY_RETRIEVAL_POINTERS",0x0009003b}, {"FSCTL_GET_COMPRESSION",0x0009003c}, {"FSCTL_MARK_AS_SYSTEM_HIVE",0x0009004f}, {"FSCTL_OPLOCK_BREAK_ACK_NO_2",0x00090050}, {"FSCTL_INVALIDATE_VOLUMES",0x00090054}, {"FSCTL_QUERY_FAT_BPB",0x00090058}, {"FSCTL_REQUEST_FILTER_OPLOCK",0x0009005c}, {"FSCTL_FILESYSTEM_GET_STATISTICS",0x00090060}, {"FSCTL_GET_NTFS_VOLUME_DATA",0x00090064}, {"FSCTL_GET_NTFS_FILE_RECORD",0x00090068}, {"FSCTL_GET_VOLUME_BITMAP",0x0009006f}, {"FSCTL_GET_RETRIEVAL_POINTERS",0x00090073}, {"FSCTL_MOVE_FILE",0x00090074}, {"FSCTL_IS_VOLUME_DIRTY",0x00090078}, {"FSCTL_ALLOW_EXTENDED_DASD_IO",0x00090083}, {"FSCTL_FIND_FILES_BY_SID",0x0009008f}, {"FSCTL_SET_OBJECT_ID",0x00090098}, {"FSCTL_GET_OBJECT_ID",0x0009009c}, {"FSCTL_DELETE_OBJECT_ID",0x000900a0}, {"FSCTL_SET_REPARSE_POINT",0x000900a4}, {"FSCTL_GET_REPARSE_POINT",0x000900a8}, {"FSCTL_DELETE_REPARSE_POINT",0x000900ac}, {"FSCTL_ENUM_USN_DATA",0x000900b3}, {"FSCTL_READ_USN_JOURNAL",0x000900bb}, {"FSCTL_SET_OBJECT_ID_EXTENDED",0x000900bc}, {"FSCTL_CREATE_OR_GET_OBJECT_ID",0x000900c0}, {"FSCTL_SET_SPARSE",0x000900c4}, {"FSCTL_SET_ENCRYPTION",0x000900d7}, {"FSCTL_ENCRYPTION_FSCTL_IO",0x000900db}, {"FSCTL_WRITE_RAW_ENCRYPTED",0x000900df}, {"FSCTL_READ_RAW_ENCRYPTED",0x000900e3}, {"FSCTL_CREATE_USN_JOURNAL",0x000900e7}, {"FSCTL_READ_FILE_USN_DATA",0x000900eb}, {"FSCTL_WRITE_USN_CLOSE_RECORD",0x000900ef}, {"FSCTL_EXTEND_VOLUME",0x000900f0}, {"FSCTL_QUERY_USN_JOURNAL",0x000900f4}, {"FSCTL_DELETE_USN_JOURNAL",0x000900f8}, {"FSCTL_MARK_HANDLE",0x000900fc}, {"FSCTL_SIS_COPYFILE",0x00090100}, {"FSCTL_RECALL_FILE",0x00090117}, {"FSCTL_FILE_PREFETCH",0x00090120}, {"FSCTL_SECURITY_ID_CHECK",0x000940b7}, {"FSCTL_QUERY_ALLOCATED_RANGES",0x000940cf}, {"FSCTL_READ_FROM_PLEX",0x0009411e}, {"FSCTL_SET_ZERO_DATA",0x000980c8}, {"FSCTL_SET_COMPRESSION",0x0009c040}, {"FSCTL_SIS_LINK_FILES",0x0009c104}, {"FSCTL_HSM_MSG",0x0009c108}, {"FSCTL_HSM_DATA",0x0009c113}, {"IOCTL_KEYBOARD_QUERY_ATTRIBUTES",0x000b0000}, {"IOCTL_HID_GET_DEVICE_DESCRIPTOR",0x000b0003}, {"IOCTL_KEYBOARD_SET_TYPEMATIC",0x000b0004}, {"IOCTL_HID_GET_REPORT_DESCRIPTOR",0x000b0007}, {"IOCTL_KEYBOARD_SET_INDICATORS",0x000b0008}, {"IOCTL_HID_READ_REPORT",0x000b000b}, {"IOCTL_HID_WRITE_REPORT",0x000b000f}, {"IOCTL_HID_GET_STRING",0x000b0013}, {"IOCTL_HID_ACTIVATE_DEVICE",0x000b001f}, {"IOCTL_KEYBOARD_QUERY_TYPEMATIC",0x000b0020}, {"IOCTL_HID_DEACTIVATE_DEVICE",0x000b0023}, {"IOCTL_HID_GET_DEVICE_ATTRIBUTES",0x000b0027}, {"IOCTL_KEYBOARD_QUERY_INDICATORS",0x000b0040}, {"IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION",0x000b0080}, {"IOCTL_KEYBOARD_INSERT_DATA",0x000b0100}, {"IOCTL_HID_SET_FEATURE",0x000b0191}, {"IOCTL_HID_GET_FEATURE",0x000b0192}, {"IOCTL_HID_GET_COLLECTION_DESCRIPTOR",0x000b0193}, {"IOCTL_HID_SET_OUTPUT_REPORT",0x000b0195}, {"IOCTL_HID_FLUSH_QUEUE",0x000b0197}, {"IOCTL_HID_GET_POLL_FREQUENCY_MSEC",0x000b0198}, {"IOCTL_GET_PHYSICAL_DESCRIPTOR",0x000b019a}, {"IOCTL_HID_SET_POLL_FREQUENCY_MSEC",0x000b019c}, {"IOCTL_HID_GET_HARDWARE_ID",0x000b019e}, {"IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS",0x000b01a0}, {"IOCTL_HID_GET_INPUT_REPORT",0x000b01a2}, {"IOCTL_HID_GET_COLLECTION_INFORMATION",0x000b01a8}, {"IOCTL_HID_GET_MANUFACTURER_STRING",0x000b01ba}, {"IOCTL_HID_GET_PRODUCT_STRING",0x000b01be}, {"IOCTL_HID_GET_SERIALNUMBER_STRING",0x000b01c2}, {"IOCTL_HID_GET_INDEXED_STRING",0x000b01e2}, {"IOCTL_INTERNAL_KEYBOARD_CONNECT",0x000b0203}, {"IOCTL_HID_ENABLE_SECURE_READ",0x000b020b}, {"IOCTL_HID_DISABLE_SECURE_READ",0x000b020f}, {"IOCTL_INTERNAL_KEYBOARD_DISCONNECT",0x000b0403}, {"IOCTL_KEYBOARD_QUERY_IME_STATUS",0x000b1000}, {"IOCTL_KEYBOARD_SET_IME_STATUS",0x000b1004}, {"IOCTL_INTERNAL_I8042_HOOK_KEYBOARD",0x000b3fc3}, {"IOCTL_INTERNAL_I8042_KEYBOARD_WRITE_BUFFER",0x000b3fc7}, {"IOCTL_INTERNAL_I8042_CONTROLLER_WRITE_BUFFER",0x000b3fcb}, {"IOCTL_INTERNAL_I8042_KEYBOARD_START_INFORMATION",0x000b3fcf}, {"IOCTL_INTERNAL_MOUSE_CONNECT",0x000f0203}, {"IOCTL_INTERNAL_MOUSE_DISCONNECT",0x000f0403}, {"IOCTL_INTERNAL_I8042_HOOK_MOUSE",0x000f3fc3}, {"IOCTL_INTERNAL_I8042_MOUSE_WRITE_BUFFER",0x000f3fc7}, {"IOCTL_INTERNAL_I8042_MOUSE_START_INFORMATION",0x000f3fcf}, {"IOCTL_PF_SET_EXTENSION_POINTER",0x00128058}, {"IOCTL_PAR_QUERY_INFORMATION",0x00160004}, {"IOCTL_PAR_SET_INFORMATION",0x00160008}, {"IOCTL_PAR_QUERY_DEVICE_ID",0x0016000c}, {"IOCTL_PAR_QUERY_DEVICE_ID_SIZE",0x00160010}, {"IOCTL_IEEE1284_GET_MODE",0x00160014}, {"IOCTL_IEEE1284_NEGOTIATE",0x00160018}, {"IOCTL_PAR_SET_WRITE_ADDRESS",0x0016001c}, {"IOCTL_PAR_SET_READ_ADDRESS",0x00160020}, {"IOCTL_PAR_GET_DEVICE_CAPS",0x00160024}, {"IOCTL_PAR_GET_DEFAULT_MODES",0x00160028}, {"IOCTL_PAR_PING",0x0016002c}, {"IOCTL_PAR_QUERY_RAW_DEVICE_ID",0x00160030}, {"IOCTL_PAR_ECP_HOST_RECOVERY",0x00160034}, {"IOCTL_PAR_GET_READ_ADDRESS",0x00160038}, {"IOCTL_PAR_GET_WRITE_ADDRESS",0x0016003c}, {"IOCTL_INTERNAL_GET_MORE_PARALLEL_PORT_INFO",0x00160044}, {"IOCTL_INTERNAL_PARALLEL_SET_CHIP_MODE",0x0016004c}, {"IOCTL_PAR_TEST",0x00160050}, {"IOCTL_PAR_IS_PORT_FREE",0x00160054}, {"IOCTL_PAR_QUERY_LOCATION",0x00160058}, {"IOCTL_INTERNAL_SELECT_DEVICE",0x0016005c}, {"IOCTL_INTERNAL_DESELECT_DEVICE",0x00160060}, {"IOCTL_INTERNAL_PARCLASS_CONNECT",0x00160078}, {"IOCTL_INTERNAL_PARCLASS_DISCONNECT",0x0016007c}, {"IOCTL_INTERNAL_DISCONNECT_IDLE",0x00160080}, {"IOCTL_INTERNAL_LOCK_PORT",0x00160094}, {"IOCTL_INTERNAL_UNLOCK_PORT",0x00160098}, {"IOCTL_INTERNAL_PARALLEL_PORT_FREE",0x001600a0}, {"IOCTL_INTERNAL_LOCK_PORT_NO_SELECT",0x001600d0}, {"IOCTL_INTERNAL_UNLOCK_PORT_NO_DESELECT",0x001600d4}, {"IOCTL_NDIS_QUERY_GLOBAL_STATS",0x00170002}, {"IOCTL_NDIS_QUERY_ALL_STATS",0x00170006}, {"IOCTL_NDIS_DO_PNP_OPERATION",0x00170008}, {"IOCTL_NDIS_QUERY_SELECTED_STATS",0x0017000e}, {"IOCTL_NDIS_ENUMERATE_INTERFACES",0x00170010}, {"IOCTL_NDIS_ADD_TDI_DEVICE",0x00170014}, {"IOCTL_NDIS_GET_LOG_DATA",0x0017001e}, {"IOCTL_NDIS_GET_VERSION",0x00170020}, {"IOCTL_SCSISCAN_CMD",0x00190012}, {"IOCTL_SCSISCAN_LOCKDEVICE",0x00190016}, {"IOCTL_SCSISCAN_UNLOCKDEVICE",0x0019001a}, {"IOCTL_SCSISCAN_SET_TIMEOUT",0x0019001c}, {"IOCTL_SCSISCAN_GET_INFO",0x00190022}, {"IOCTL_SERIAL_INTERNAL_DO_WAIT_WAKE",0x001b0004}, {"IOCTL_SERIAL_INTERNAL_CANCEL_WAIT_WAKE",0x001b0008}, {"IOCTL_SERIAL_INTERNAL_BASIC_SETTINGS",0x001b000c}, {"IOCTL_SERIAL_INTERNAL_RESTORE_SETTINGS",0x001b0010}, {"IOCTL_SERIAL_SET_BREAK_OFF",0x001b0014}, {"IOCTL_SERIAL_IMMEDIATE_CHAR",0x001b0018}, {"IOCTL_SERIAL_SET_TIMEOUTS",0x001b001c}, {"IOCTL_SERIAL_GET_TIMEOUTS",0x001b0020}, {"IOCTL_SERIAL_SET_DTR",0x001b0024}, {"IOCTL_SERIAL_CLR_DTR",0x001b0028}, {"IOCTL_SERIAL_RESET_DEVICE",0x001b002c}, {"IOCTL_SERIAL_SET_RTS",0x001b0030}, {"IOCTL_SERIAL_CLR_RTS",0x001b0034}, {"IOCTL_SERIAL_SET_XOFF",0x001b0038}, {"IOCTL_SERIAL_SET_XON",0x001b003c}, {"IOCTL_SERIAL_GET_WAIT_MASK",0x001b0040}, {"IOCTL_SERIAL_SET_WAIT_MASK",0x001b0044}, {"IOCTL_SERIAL_WAIT_ON_MASK",0x001b0048}, {"IOCTL_SERIAL_PURGE",0x001b004c}, {"IOCTL_SERIAL_GET_BAUD_RATE",0x001b0050}, {"IOCTL_SERIAL_GET_LINE_CONTROL",0x001b0054}, {"IOCTL_SERIAL_GET_CHARS",0x001b0058}, {"IOCTL_SERIAL_SET_CHARS",0x001b005c}, {"IOCTL_SERIAL_GET_HANDFLOW",0x001b0060}, {"IOCTL_SERIAL_SET_HANDFLOW",0x001b0064}, {"IOCTL_SERIAL_GET_MODEMSTATUS",0x001b0068}, {"IOCTL_SERIAL_GET_COMMSTATUS",0x001b006c}, {"IOCTL_SERIAL_XOFF_COUNTER",0x001b0070}, {"IOCTL_SERIAL_GET_PROPERTIES",0x001b0074}, {"IOCTL_SERIAL_GET_DTRRTS",0x001b0078}, {"IOCTL_SERIAL_LSRMST_INSERT",0x001b007c}, {"IOCTL_SERIAL_CONFIG_SIZE",0x001b0080}, {"IOCTL_SERIAL_GET_COMMCONFIG",0x001b0084}, {"IOCTL_SERIAL_SET_COMMCONFIG",0x001b0088}, {"IOCTL_SERIAL_GET_STATS",0x001b008c}, {"IOCTL_SERIAL_CLEAR_STATS",0x001b0090}, {"IOCTL_SERIAL_GET_MODEM_CONTROL",0x001b0094}, {"IOCTL_SERIAL_SET_MODEM_CONTROL",0x001b0098}, {"IOCTL_SERIAL_SET_FIFO_CONTROL",0x001b009c}, {"IOCTL_TAPE_PREPARE",0x001f4004}, {"IOCTL_TAPE_GET_POSITION",0x001f400c}, {"IOCTL_TAPE_SET_POSITION",0x001f4010}, {"IOCTL_TAPE_GET_DRIVE_PARAMS",0x001f4014}, {"IOCTL_TAPE_GET_MEDIA_PARAMS",0x001f401c}, {"IOCTL_TAPE_SET_MEDIA_PARAMS",0x001f4020}, {"IOCTL_TAPE_GET_STATUS",0x001f4024}, {"IOCTL_TAPE_MEDIA_REMOVAL",0x001f4804}, {"IOCTL_TAPE_EJECT_MEDIA",0x001f4808}, {"IOCTL_TAPE_LOAD_MEDIA",0x001f480c}, {"IOCTL_TAPE_RESERVE",0x001f4810}, {"IOCTL_TAPE_RELEASE",0x001f4814}, {"IOCTL_TAPE_ERASE",0x001fc000}, {"IOCTL_TAPE_WRITE_MARKS",0x001fc008}, {"IOCTL_TAPE_SET_DRIVE_PARAMS",0x001fc018}, {"IOCTL_TAPE_CREATE_PARTITION",0x001fc028}, {"IOCTL_TDI_ACCEPT",0x00210000}, {"IOCTL_TDI_CONNECT",0x00210004}, {"IOCTL_TDI_DISCONNECT",0x00210008}, {"IOCTL_TDI_LISTEN",0x0021000c}, {"IOCTL_TDI_QUERY_INFORMATION",0x00210012}, {"IOCTL_TDI_RECEIVE",0x00210016}, {"IOCTL_TDI_RECEIVE_DATAGRAM",0x0021001a}, {"IOCTL_TDI_SEND",0x0021001d}, {"IOCTL_TDI_SEND_DATAGRAM",0x00210021}, {"IOCTL_TDI_SET_EVENT_HANDLER",0x00210024}, {"IOCTL_TDI_SET_INFORMATION",0x00210029}, {"IOCTL_TDI_ASSOCIATE_ADDRESS",0x0021002c}, {"IOCTL_TDI_DISASSOCIATE_ADDRESS",0x00210030}, {"IOCTL_TDI_ACTION",0x00210036}, {"IOCTL_INTERNAL_USB_SUBMIT_URB",0x00220003}, {"IOCTL_INTERNAL_USB_RESET_PORT",0x00220007}, {"IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO",0x0022000f}, {"IOCTL_INTERNAL_USB_GET_PORT_STATUS",0x00220013}, {"IOCTL_INTERNAL_USB_ENABLE_PORT",0x00220017}, {"IOCTL_INTERNAL_USB_GET_HUB_COUNT",0x0022001b}, {"IOCTL_INTERNAL_USB_CYCLE_PORT",0x0022001f}, {"IOCTL_INTERNAL_USB_GET_HUB_NAME",0x00220020}, {"IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION",0x00220027}, {"IOCTL_USBPRINT_VENDOR_SET_COMMAND",0x00220038}, {"IOCTL_USBPRINT_VENDOR_GET_COMMAND",0x0022003c}, {"IOCTL_1394_CLASS",0x0022021d}, {"IOCTL_USB_HCD_GET_STATS_1",0x002203fc}, {"IOCTL_IEEE1394_API_REQUEST",0x00220400}, {"IOCTL_USB_DIAGNOSTIC_MODE_OFF",0x00220404}, {"IOCTL_USB_GET_NODE_INFORMATION",0x00220408}, {"IOCTL_USB_GET_NODE_CONNECTION_INFORMATION",0x0022040c}, {"IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION",0x00220410}, {"IOCTL_USB_GET_NODE_CONNECTION_NAME",0x00220414}, {"IOCTL_USB_DIAG_IGNORE_HUBS_ON",0x00220418}, {"IOCTL_USB_DIAG_IGNORE_HUBS_OFF",0x0022041c}, {"IOCTL_INTERNAL_USB_GET_BUS_INFO",0x00220420}, {"IOCTL_GET_HCD_DRIVERKEY_NAME",0x00220424}, {"IOCTL_INTERNAL_USB_GET_BUSGUID_INFO",0x00220428}, {"IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO",0x0022042c}, {"IOCTL_USB_HCD_DISABLE_PORT",0x00220430}, {"IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE",0x00220433}, {"IOCTL_USB_HCD_ENABLE_PORT",0x00220434}, {"IOCTL_USB_GET_HUB_CAPABILITIES",0x0022043c}, {"IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES",0x00220440}, {"IOCTL_USB_HUB_CYCLE_PORT",0x00220444}, {"IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX",0x00220448}, {"IOCTL_VIDEO_ENABLE_VDM",0x00230000}, {"IOCTL_VIDEO_DISABLE_VDM",0x00230004}, {"IOCTL_VIDEO_REGISTER_VDM",0x00230008}, {"IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE",0x0023000c}, {"IOCTL_VIDEO_GET_OUTPUT_DEVICE_POWER_STATE",0x00230010}, {"IOCTL_VIDEO_MONITOR_DEVICE",0x00230014}, {"IOCTL_VIDEO_ENUM_MONITOR_PDO",0x00230018}, {"IOCTL_VIDEO_INIT_WIN32K_CALLBACKS",0x0023001c}, {"IOCTL_VIDEO_HANDLE_VIDEOPARAMETERS",0x00230020}, {"IOCTL_VIDEO_IS_VGA_DEVICE",0x00230024}, {"IOCTL_VIDEO_USE_DEVICE_IN_SESSION",0x00230028}, {"IOCTL_VIDEO_PREPARE_FOR_EARECOVERY",0x0023002c}, {"IOCTL_VIDEO_SAVE_HARDWARE_STATE",0x00230200}, {"IOCTL_VIDEO_RESTORE_HARDWARE_STATE",0x00230204}, {"IOCTL_VIDEO_QUERY_AVAIL_MODES",0x00230400}, {"IOCTL_VIDEO_QUERY_NUM_AVAIL_MODES",0x00230404}, {"IOCTL_VIDEO_QUERY_CURRENT_MODE",0x00230408}, {"IOCTL_VIDEO_SET_CURRENT_MODE",0x0023040c}, {"IOCTL_VIDEO_RESET_DEVICE",0x00230410}, {"IOCTL_VIDEO_LOAD_AND_SET_FONT",0x00230414}, {"IOCTL_VIDEO_SET_PALETTE_REGISTERS",0x00230418}, {"IOCTL_VIDEO_SET_COLOR_REGISTERS",0x0023041c}, {"IOCTL_VIDEO_ENABLE_CURSOR",0x00230420}, {"IOCTL_VIDEO_DISABLE_CURSOR",0x00230424}, {"IOCTL_VIDEO_SET_CURSOR_ATTR",0x00230428}, {"IOCTL_VIDEO_QUERY_CURSOR_ATTR",0x0023042c}, {"IOCTL_VIDEO_SET_CURSOR_POSITION",0x00230430}, {"IOCTL_VIDEO_QUERY_CURSOR_POSITION",0x00230434}, {"IOCTL_VIDEO_ENABLE_POINTER",0x00230438}, {"IOCTL_VIDEO_DISABLE_POINTER",0x0023043c}, {"IOCTL_VIDEO_SET_POINTER_ATTR",0x00230440}, {"IOCTL_VIDEO_QUERY_POINTER_ATTR",0x00230444}, {"IOCTL_VIDEO_SET_POINTER_POSITION",0x00230448}, {"IOCTL_VIDEO_QUERY_POINTER_POSITION",0x0023044c}, {"IOCTL_VIDEO_QUERY_POINTER_CAPABILITIES",0x00230450}, {"IOCTL_VIDEO_GET_BANK_SELECT_CODE",0x00230454}, {"IOCTL_VIDEO_MAP_VIDEO_MEMORY",0x00230458}, {"IOCTL_VIDEO_UNMAP_VIDEO_MEMORY",0x0023045c}, {"IOCTL_VIDEO_QUERY_PUBLIC_ACCESS_RANGES",0x00230460}, {"IOCTL_VIDEO_FREE_PUBLIC_ACCESS_RANGES",0x00230464}, {"IOCTL_VIDEO_QUERY_COLOR_CAPABILITIES",0x00230468}, {"IOCTL_VIDEO_SET_POWER_MANAGEMENT",0x0023046c}, {"IOCTL_VIDEO_GET_POWER_MANAGEMENT",0x00230470}, {"IOCTL_VIDEO_SHARE_VIDEO_MEMORY",0x00230474}, {"IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY",0x00230478}, {"IOCTL_VIDEO_SET_COLOR_LUT_DATA",0x0023047c}, {"IOCTL_VIDEO_GET_CHILD_STATE",0x00230480}, {"IOCTL_VIDEO_VALIDATE_CHILD_STATE_CONFIGURATION",0x00230484}, {"IOCTL_VIDEO_SET_CHILD_STATE_CONFIGURATION",0x00230488}, {"IOCTL_VIDEO_SWITCH_DUALVIEW",0x0023048c}, {"IOCTL_VIDEO_SET_BANK_POSITION",0x00230490}, {"IOCTL_BATTERY_QUERY_TAG",0x00294040}, {"IOCTL_BATTERY_QUERY_INFORMATION",0x00294044}, {"IOCTL_BATTERY_QUERY_STATUS",0x0029404c}, {"IOCTL_BATTERY_SET_INFORMATION",0x00298048}, {"IOCTL_GAMEENUM_EXPOSE_HARDWARE",0x002a0000}, {"IOCTL_GAMEENUM_REMOVE_HARDWARE",0x002a0004}, {"IOCTL_GAMEENUM_PORT_DESC",0x002a0008}, {"IOCTL_GAMEENUM_PORT_PARAMETERS",0x002a0403}, {"IOCTL_GAMEENUM_EXPOSE_SIBLING",0x002a0407}, {"IOCTL_GAMEENUM_REMOVE_SELF",0x002a040b}, {"IOCTL_GAMEENUM_ACQUIRE_ACCESSORS",0x002a040f}, {"IOCTL_STORAGE_CHECK_VERIFY2",0x002d0800}, {"IOCTL_STORAGE_LOAD_MEDIA2",0x002d080c}, {"IOCTL_STORAGE_EJECTION_CONTROL",0x002d0940}, {"IOCTL_STORAGE_MCN_CONTROL",0x002d0944}, {"IOCTL_STORAGE_GET_MEDIA_TYPES",0x002d0c00}, {"IOCTL_STORAGE_GET_MEDIA_TYPES_EX",0x002d0c04}, {"IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER",0x002d0c10}, {"IOCTL_STORAGE_GET_HOTPLUG_INFO",0x002d0c14}, {"IOCTL_STORAGE_GET_DEVICE_NUMBER",0x002d1080}, {"IOCTL_STORAGE_PREDICT_FAILURE",0x002d1100}, {"IOCTL_STORAGE_QUERY_PROPERTY",0x002d1400}, {"IOCTL_STORAGE_SET_READ_AHEAD",0x002d4400}, {"IOCTL_STORAGE_CHECK_VERIFY",0x002d4800}, {"IOCTL_STORAGE_MEDIA_REMOVAL",0x002d4804}, {"IOCTL_STORAGE_EJECT_MEDIA",0x002d4808}, {"IOCTL_STORAGE_LOAD_MEDIA",0x002d480c}, {"IOCTL_STORAGE_RESERVE",0x002d4810}, {"IOCTL_STORAGE_RELEASE",0x002d4814}, {"IOCTL_STORAGE_FIND_NEW_DEVICES",0x002d4818}, {"IOCTL_STORAGE_RESET_BUS",0x002d5000}, {"IOCTL_STORAGE_RESET_DEVICE",0x002d5004}, {"IOCTL_STORAGE_BREAK_RESERVATION",0x002d5014}, {"IOCTL_STORAGE_SET_HOTPLUG_INFO",0x002dcc18}, {"OBSOLETE_DISK_GET_WRITE_CACHE_STATE",0x475356}, {"OBSOLETE_IOCTL_CDROM_GET_CONTROL",0x147508}, //{"OBSOLETE_IOCTL_STORAGE_RESET_BUS",0x3002368}, //{"OBSOLETE_IOCTL_STORAGE_RESET_DEVICE",0x3002372}, {"OBSOLETE_IOCTL_STORAGE_RESET_BUS",0x002dd000}, {"OBSOLETE_IOCTL_STORAGE_RESET_DEVICE",0x002dd004}, {"IOCTL_KS_PROPERTY",0x002f0003}, {"IOCTL_KS_ENABLE_EVENT",0x002f0007}, {"IOCTL_KS_DISABLE_EVENT",0x002f000b}, {"IOCTL_KS_METHOD",0x002f000f}, {"IOCTL_KS_RESET_STATE",0x002f001b}, {"IOCTL_KS_HANDSHAKE",0x002f001f}, {"IOCTL_KS_READ_STREAM",0x002f4017}, {"IOCTL_KS_WRITE_STREAM",0x002f8013}, {"IOCTL_CHANGER_GET_PARAMETERS",0x00304000}, {"IOCTL_CHANGER_GET_STATUS",0x00304004}, {"IOCTL_CHANGER_GET_PRODUCT_DATA",0x00304008}, {"IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS",0x00304018}, {"IOCTL_CHANGER_SET_POSITION",0x0030401c}, {"IOCTL_CHANGER_EXCHANGE_MEDIUM",0x00304020}, {"IOCTL_CHANGER_MOVE_MEDIUM",0x00304024}, {"IOCTL_CHANGER_REINITIALIZE_TRANSPORT",0x00304028}, {"IOCTL_CHANGER_SET_ACCESS",0x0030c010}, {"IOCTL_CHANGER_GET_ELEMENT_STATUS",0x0030c014}, {"IOCTL_CHANGER_QUERY_VOLUME_TAGS",0x0030c02c}, {"IOCTL_SMARTCARD_POWER",0x00310004}, {"IOCTL_SMARTCARD_GET_ATTRIBUTE",0x00310008}, {"IOCTL_SMARTCARD_SET_ATTRIBUTE",0x0031000c}, {"IOCTL_SMARTCARD_CONFISCATE",0x00310010}, {"IOCTL_SMARTCARD_TRANSMIT",0x00310014}, {"IOCTL_SMARTCARD_EJECT",0x00310018}, {"IOCTL_SMARTCARD_SWALLOW",0x0031001c}, {"IOCTL_SMARTCARD_IS_PRESENT",0x00310028}, {"IOCTL_SMARTCARD_IS_ABSENT",0x0031002c}, {"IOCTL_SMARTCARD_SET_PROTOCOL",0x00310030}, {"IOCTL_SMARTCARD_GET_STATE",0x00310038}, {"IOCTL_SMARTCARD_GET_LAST_ERROR",0x0031003c}, {"IOCTL_SMARTCARD_GET_PERF_CNTR",0x00310040}, {"IOCTL_DVD_START_SESSION",0x00335000}, {"IOCTL_DVD_READ_KEY",0x00335004}, {"IOCTL_DVD_SEND_KEY",0x00335008}, {"IOCTL_DVD_END_SESSION",0x0033500c}, {"IOCTL_DVD_SET_READ_AHEAD",0x00335010}, {"IOCTL_DVD_GET_REGION",0x00335014}, {"IOCTL_DVD_READ_STRUCTURE",0x00335140}, {"IOCTL_DVD_SEND_KEY2",0x0033d018}, {"IOCTL_FSVIDEO_COPY_FRAME_BUFFER",0x00340800}, {"IOCTL_FSVIDEO_WRITE_TO_FRAME_BUFFER",0x00340804}, {"IOCTL_FSVIDEO_REVERSE_MOUSE_POINTER",0x00340808}, {"IOCTL_FSVIDEO_SET_CURRENT_MODE",0x0034080c}, {"IOCTL_FSVIDEO_SET_SCREEN_INFORMATION",0x00340810}, {"IOCTL_FSVIDEO_SET_CURSOR_POSITION",0x00340814}, {"IOCTL_SERENUM_EXPOSE_HARDWARE",0x00370200}, {"IOCTL_SERENUM_REMOVE_HARDWARE",0x00370204}, {"IOCTL_INTERNAL_SERENUM_REMOVE_SELF",0x00370207}, {"IOCTL_SERENUM_PORT_DESC",0x00370208}, {"IOCTL_SERENUM_GET_PORT_NAME",0x0037020c}, {"IOCTL_DOT4_OPEN_CHANNEL",0x003a2006}, {"IOCTL_DOT4_CLOSE_CHANNEL",0x003a2008}, {"IOCTL_DOT4_READ",0x003a200e}, {"IOCTL_DOT4_WRITE",0x003a2011}, {"IOCTL_DOT4_ADD_ACTIVITY_BROADCAST",0x003a2014}, {"IOCTL_DOT4_REMOVE_ACTIVITY_BROADCAST",0x003a2018}, {"IOCTL_DOT4_WAIT_ACTIVITY_BROADCAST",0x003a201e}, {"IOCTL_DOT4_CREATE_SOCKET",0x003a2022}, {"IOCTL_DOT4_WAIT_FOR_CHANNEL",0x003a2026}, {"IOCTL_DOT4_DESTROY_SOCKET",0x003a202a}, {"IOCTL_SA_GET_VERSION",0x00412002}, {"IOCTL_SA_GET_CAPABILITIES",0x00412006}, {"IOCTL_NVRAM_WRITE_BOOT_COUNTER",0x00412026}, {"IOCTL_NVRAM_READ_BOOT_COUNTER",0x0041202a}, {"IOCTL_SADISPLAY_LOCK",0x00412032}, {"IOCTL_SADISPLAY_UNLOCK",0x00412036}, {"IOCTL_SADISPLAY_BUSY_MESSAGE",0x0041203a}, {"IOCTL_SADISPLAY_SHUTDOWN_MESSAGE",0x0041203e}, {"IOCTL_SADISPLAY_CHANGE_LANGUAGE",0x00412042}, {"IOCTL_FUNC_DISPLAY_STORE_BITMAP",0x00412046}, {"IOCTL_MOUNTDEV_QUERY_UNIQUE_ID",0x004d0000}, {"IOCTL_MOUNTDEV_QUERY_DEVICE_NAME",0x004d0008}, {"IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME",0x004d000c}, {"IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY",0x004dc004}, {"IOCTL_MOUNTDEV_LINK_CREATED",0x004dc010}, {"IOCTL_MOUNTDEV_LINK_DELETED",0x004dc014}, {"IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS",0x00560000}, {"IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE",0x00560004}, {"IOCTL_VOLUME_IS_OFFLINE",0x00560010}, {"IOCTL_VOLUME_IS_IO_CAPABLE",0x00560014}, {"IOCTL_VOLUME_QUERY_FAILOVER_SET",0x00560018}, {"IOCTL_VOLUME_QUERY_VOLUME_NUMBER",0x0056001c}, {"IOCTL_VOLUME_LOGICAL_TO_PHYSICAL",0x00560020}, {"IOCTL_VOLUME_PHYSICAL_TO_LOGICAL",0x00560024}, {"IOCTL_VOLUME_IS_PARTITION",0x00560028}, {"IOCTL_VOLUME_IS_CLUSTERED",0x00560030}, {"IOCTL_VOLUME_SET_GPT_ATTRIBUTES",0x00560034}, {"IOCTL_VOLUME_GET_GPT_ATTRIBUTES",0x00560038}, {"IOCTL_VOLUME_READ_PLEX",0x0056402e}, {"IOCTL_VOLUME_ONLINE",0x0056c008}, {"IOCTL_VOLUME_OFFLINE",0x0056c00c}, {"FT_INITIALIZE_SET",0x00660000}, {"FT_REGENERATE",0x00660004}, {"FT_CONFIGURE",0x0066000b}, {"FT_VERIFY",0x0066000c}, {"FT_BALANCED_READ_MODE",0x0066001b}, {"FT_SYNC_REDUNDANT_COPY",0x0066001c}, {"FT_SEQUENTIAL_WRITE_MODE",0x00660023}, {"FT_PARALLEL_WRITE_MODE",0x00660027}, {"FT_QUERY_SET_STATE",0x00660028}, {"FT_CLUSTER_SET_MEMBER_STATE",0x0066002c}, {"FT_CLUSTER_GET_MEMBER_STATE",0x00660030}, {"FT_SECONDARY_READ",0x00664012}, {"FT_PRIMARY_READ",0x00664016}, {"FT_ENUMERATE_LOGICAL_DISKS",0x00674008}, {"FT_QUERY_LOGICAL_DISK_INFORMATION",0x0067400c}, {"FT_QUERY_NT_DEVICE_NAME_FOR_LOGICAL_DISK",0x00674018}, {"FT_QUERY_DRIVE_LETTER_FOR_LOGICAL_DISK",0x00674020}, {"FT_CHECK_IO",0x00674024}, {"FT_QUERY_NT_DEVICE_NAME_FOR_PARTITION",0x00674030}, {"FT_CHANGE_NOTIFY",0x00674034}, {"FT_QUERY_LOGICAL_DISK_ID",0x00674190}, {"FT_CREATE_LOGICAL_DISK",0x0067c000}, {"FT_BREAK_LOGICAL_DISK",0x0067c004}, {"FT_ORPHAN_LOGICAL_DISK_MEMBER",0x0067c010}, {"FT_REPLACE_LOGICAL_DISK_MEMBER",0x0067c014}, {"FT_INITIALIZE_LOGICAL_DISK",0x0067c01c}, {"FT_SET_DRIVE_LETTER_FOR_LOGICAL_DISK",0x0067c028}, {"FT_STOP_SYNC_OPERATIONS",0x0067c038}, {"FT_CREATE_PARTITION_LOGICAL_DISK",0x0067c194}, {"IOCTL_MOUNTMGR_QUERY_POINTS",0x006d0008}, {"IOCTL_MOUNTMGR_CHANGE_NOTIFY",0x006d4020}, {"IOCTL_MOUNTMGR_CHECK_UNPROCESSED_VOLUMES",0x006d4028}, {"IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION",0x006d402c}, {"IOCTL_MOUNTMGR_CREATE_POINT",0x006dc000}, {"IOCTL_MOUNTMGR_DELETE_POINTS",0x006dc004}, {"IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY",0x006dc00c}, {"IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER",0x006dc010}, {"IOCTL_MOUNTMGR_AUTO_DL_ASSIGNMENTS",0x006dc014}, {"IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_CREATED",0x006dc018}, {"IOCTL_MOUNTMGR_VOLUME_MOUNT_POINT_DELETED",0x006dc01c}, {"IOCTL_MOUNTMGR_KEEP_LINKS_WHEN_OFFLINE",0x006dc024}, {"IOCTL_GET_VERSION",0x80002000}, {"IOCTL_CANCEL_IO",0x80002004}, {"IOCTL_WAIT_ON_DEVICE_EVENT",0x80002008}, {"IOCTL_READ_REGISTERS",0x8000200c}, {"IOCTL_WRITE_REGISTERS",0x80002010}, {"IOCTL_GET_CHANNEL_ALIGN_RQST",0x80002014}, {"IOCTL_GET_DEVICE_DESCRIPTOR",0x80002018}, {"IOCTL_RESET_PIPE",0x8000201c}, {"IOCTL_GET_USB_DESCRIPTOR",0x80002020}, {"IOCTL_GET_PIPE_CONFIGURATION",0x80002028}, {NULL,0} }; /* typedef TMap IOCTLMAP; IOCTLMAP IoMap; void test1111() { ofstream fff; fff.open("c:\\ttt.txt"); IOCTLMAP::IT BeginIT,EndIT; int i = 0; for(;gSysIoctl[i].Name;i++) IoMap.InsertUnique(gSysIoctl[i].Name,gSysIoctl[i].Code); EndIT = IoMap.End(); for(BeginIT = IoMap.Begin();BeginIT!=EndIT;BeginIT++) fff<<"{\""<m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_DATA(Address); return true; } bool CThreadListWnd::OnEventGotoProcessStruct(IN WISP_MSG*pMsg) { DWORD Value; HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; DWORD Address; Address = (DWORD)GetItemData(hItem,TL_PROCESS_ID); if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_DATA(Address); return true; } bool CThreadListWnd::OnEventGotoStartAddress(IN WISP_MSG*pMsg) { DWORD Value; HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; DWORD Address; Address = (DWORD)GetItemData(hItem,TL_STARTADDRESS); if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_CODE(Address,true); return true; } bool CThreadListWnd::OnEventGotoThreadEIP(IN WISP_MSG*pMsg) { DWORD Value; PSYSER_KTRAP_FRAME pTrapFrame; bool bOK1; SYSER_THREAD pThread; memset(&pThread,0,sizeof(pThread)); HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; DWORD Address; Address = (DWORD)GetItemData(hItem,TL_THREAD_ID); bOK1 = GetThreadInfoByETHREAD((DWORD)Address,&pThread); if(bOK1==false) return true; if(pThread.TrapFrame==0) return true; pTrapFrame = (PSYSER_KTRAP_FRAME)pThread.TrapFrame; Address = (DWORD)&pTrapFrame->Eip; if(gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value))==sizeof(Value)) VIEW_CODE(Value,true); return true; } bool CThreadListWnd::OnKeyEvent(IN WISP_MSG*pMsg) { //HANDLE hItem; THREADHOTKEYMAP::IT FindIT; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; if(pMsg->KeyEvent.bKeyDown) { FindIT = m_HotKeyMap.Find(pMsg->KeyEvent.KeyType); if(FindIT!=m_HotKeyMap.End()) { WISP_MSG Msg; memset(&Msg,0,sizeof(Msg)); Msg.Command.CmdID=*FindIT; return OnEvent(&Msg); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: m_PopupMenu.Popup(); break; case WISP_VK_F2: break; } } return true; } bool CThreadListWnd::OnDestroy(IN WISP_MSG* pMsg) { m_PopupMenu.Destroy(); return true; } bool CThreadListWnd::OnCreate(IN WISP_MSG* pMsg) { SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); AttachTitleDIB(WispTKDIBListDIB("\\Toolbar.bmp",16,16,13*16+4)); InsertColumn(WSTR("TID"),60); InsertColumn(WSTR("PID"),60); InsertColumn(WSTR("KernelStack"),60); //InsertColumn(WSTR("InitialStack"),60); // //InsertColumn(WSTR("StackLimit"),60); InsertColumn(WSTR("ServiceTable"),60); InsertColumn(WSTR("StartAddress"),60); InsertColumn(WSTR("TrapFrame"),60); InsertColumn(WSTR("ESP"),60); InsertColumn(WSTR("EIP"),60); InsertColumn(WSTR("Name"),60); AttachShortcutKey(); m_PopupMenu.CreatePopupMenu(ThreadMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); return true; } void CThreadListWnd::AttachShortcutKey() { if(gpSyser->AttachShortcutKey(EVENT_ID_GOTO_THREAD_STRUCT,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_VK_RETURN,EVENT_ID_GOTO_THREAD_STRUCT); if(gpSyser->AttachShortcutKey(EVENT_ID_GOTO_PROCESS_STRUCT,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL | WISP_VK_RETURN,EVENT_ID_GOTO_PROCESS_STRUCT); if(gpSyser->AttachShortcutKey(EVENT_ID_GOTO_START_ADDRESS,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_SHIFT | WISP_VK_RETURN,EVENT_ID_GOTO_START_ADDRESS); //if(gpSyser->AttachShortcutKey(EVENT_ID_SHOW_CODE_BY_ADDRESS,m_HotKeyMap)==0) // m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_RETURN,EVENT_ID_SHOW_CODE_BY_ADDRESS); } void CThreadListWnd::UpdateContext() { #ifdef CODE_OS_NT_DRV SYSER_PROCESS pProcess; SYSER_THREAD pThread; HANDLE hItem; WCHAR Name[17]; WCHAR Name1[17]; DWORD dwCurThread,dwCurProcess; bool bOK,bOK1; if(GetCurrentProcessAndThread(&dwCurProcess,&dwCurThread)==false) return ; bOK = GetFirstProcess(&pProcess); while(bOK) { TStrCpyLimit(Name1,pProcess.ImageFileName,16); memset(&pThread,0,sizeof(pThread)); bOK1 = GetThreadInfoByETHREAD((DWORD)pProcess.ThreadHead,&pThread); while(bOK1) { TSPrintf(Name,WSTR("%X"),pThread.ThreadID); hItem = InsertItem(Name); SetItemData(hItem,TL_THREAD_ID,*(int*)&pThread.OSThread); SetItemNum(hItem,TL_PROCESS_ID,*(int*)&pProcess.UniqueProcessId,WSTR("%X")); SetItemData(hItem,TL_PROCESS_ID,*(int*)&pProcess.OSProcess); //SetItemNum(hItem,TL_INITIALSTACK,*(int*)&pThread.InitialStack,WSTR("%08X")); SetItemNum(hItem,TL_KERNELSTACK,*(int*)&pThread.KernelStack,WSTR("%08X")); SetItemData(hItem,TL_KERNELSTACK,*(int*)&pThread.KernelStack); //SetItemNum(hItem,TL_STACKLIMIT,*(int*)&pThread.StackLimit,WSTR("%08X")); //SetItemData(hItem,TL_STACKLIMIT,*(int*)&pThread.StackLimit); SetItemNum(hItem,TL_SERVICETABLE,*(int*)&pThread.ServiceTable,WSTR("%08X")); SetItemData(hItem,TL_SERVICETABLE,*(int*)&pThread.ServiceTable); SetItemNum(hItem, TL_STARTADDRESS,*(int*)&pThread.StartAddress,WSTR("%08X")); SetItemData(hItem,TL_STARTADDRESS,*(int*)&pThread.StartAddress); SetItemNum(hItem, TL_TRAPFRAME,*(int*)&pThread.TrapFrame,WSTR("%08X")); SetItemData(hItem,TL_TRAPFRAME,*(int*)&pThread.TrapFrame); DWORD Value,Address; PSYSER_KTRAP_FRAME pTrapFrame; pTrapFrame = (PSYSER_KTRAP_FRAME)pThread.TrapFrame; Address = (DWORD)&pTrapFrame->Eip; Value=0; gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value)); SetItemNum(hItem, TL_EIP,Value,WSTR("%08X")); SetItemData(hItem,TL_EIP,Value); Address = (DWORD)&pTrapFrame->HardwareEsp; Value=0; gpSyser->m_pDebugger->ReadMemory(Address,&Value,sizeof(Value)); SetItemNum(hItem, TL_ESP,Value,WSTR("%08X")); SetItemData(hItem,TL_ESP,Value); SetItemText(hItem,TL_PROCESS_NAME,Name1); //SetItemNum(TL_SUSPEND,*(int*)&pThread.KernelStack,WSTR("%08X")); bOK1=GetNextThread(&pThread); } bOK = GetNextProcess(&pProcess); } #endif } ================================================ FILE: Project/Syser/Source/ThreadListWnd.h ================================================ #ifndef _THREAD_LIST_WND_ #define _THREAD_LIST_WND_ class CThreadListWnd:public CWispList { typedef TMap THREADHOTKEYMAP; enum{ TL_THREAD_ID, TL_PROCESS_ID, //TL_INITIALSTACK, TL_KERNELSTACK, //TL_STACKLIMIT, TL_SERVICETABLE, TL_STARTADDRESS, TL_TRAPFRAME, TL_ESP, TL_EIP, TL_PROCESS_NAME, TL_SUSPEND }; public: CThreadListWnd(); ~CThreadListWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventGotoThreadStruct) DECLARE_WISP_MSG_EVENT(OnEventGotoProcessStruct) DECLARE_WISP_MSG_EVENT(OnEventGotoStartAddress) DECLARE_WISP_MSG_EVENT(OnEventGotoThreadEIP) DECLARE_WISP_MSG_EVENT(OnEventSetBreakpointAtThread) DECLARE_WISP_MSG_EVENT(OnEventSetBreakpointAtProcess) CWispMenu m_PopupMenu; void UpdateContext(); void AttachShortcutKey(); THREADHOTKEYMAP m_HotKeyMap; }; #endif //_MODULE_LIST_WND_ ================================================ FILE: Project/Syser/Source/TimerInterrupt.cpp ================================================ #include "StdAfx.h" #include "TimerInterrupt.h" #include "IOAPIC.h" #include "X86Optr.h" #include "Syser.h" #include "HardWareInterruptCtrl.h" #include "UHCIDevice.h" #ifdef __cplusplus extern "C" { #endif DWORD dwTimerCounter = 0; BYTE byteOldRTC_Register_A=0; BYTE byteOldRTC_Register_B=0; BYTE byteOldRTC_Register_C=0; BYTE byteOldRTC_Register_D=0; BYTE TimeSecond=0xff; BYTE TimeHour=0; BYTE TimeMinute=0; bool bIsExecuteTimerInterrupt = false; BYTE dwTmpRTC; DWORD gdwOldTimerInterrupt=0; DWORD gdwTimerInterruptNum=0; ULONGLONG gTSCTickCount=300000; #ifdef __cplusplus }; // extern "C" #endif __declspec (naked) void Interrupt_0xFA_Timer_Service() { __asm{ pushfd cmp cs:bIsExecuteTimerInterrupt,1 jz local_2 popfd ret local_2: pushad push ds push es mov eax,0x23 mov ds,ax mov es,ax } dwTimerCounter++; if((dwTimerCounter%20)==0) gpSyser->OnTimer(20); gpSyser->m_PCSystem.USBDeviceService(); SetInteruptEOI(IOAPIC_TIMER_INTERRUPT_NUM); __asm{ pop es pop ds popad popfd lea esp,[esp+4] iretd } } bool InstallTimeInterrupt() { if(bIsExecuteTimerInterrupt) { return true; } bIsExecuteTimerInterrupt=true; if(gbIsUseAPIC) { __asm{ push eax push edx mov edx,0x43 mov al ,0x36 out dx,al jmp local_1 local_1: jmp local_2 local_2: mov eax, 1193 sub edx,3 out dx,al mov al,ah jmp local_3 local_3: jmp local_4 local_4: out dx,al pop edx pop eax } return true; } /* * Bits[3:0] Periodic Rate Bits[3:0] Periodic Rate 0000 none 1000 3.90625 ms 0001 3.90625 ms 1001 7.8125 ms 0010 7.8125 ms 1010 15.625 ms 0011 122.070 ms 1011 31.25 ms 0100 244.141 ms 1100 62.5 ms 0101 488.281 ms 1101 125 ms 0110 976.5625 ms 1110 250 ms 0111 1.953125 ms 1111 500 ms */ __asm{ push eax push edx push ecx mov edx,71h mov ecx,0x8000 local_001: dec edx mov al,0ah out dx,al inc edx in al,dx test al,0x80 loopnz local_001 mov byteOldRTC_Register_A,al dec edx mov al,0bh out dx,al inc edx in al,dx mov byteOldRTC_Register_B,al mov ecx,0x8000 local_007: mov al,0ah dec edx out dx,al inc edx in al,dx test al,0x80 loopnz local_007 mov al,2bh //7.8125 һж out dx,al mov al,0bh dec edx out dx,al inc edx mov al,byteOldRTC_Register_B or al,052h and al,0dfh out dx,al mov al,0ch dec edx out dx,al inc edx in al,dx pop ecx pop edx pop eax } TimeSecond=0xff; return true; } bool UninstallTimeInterrupt() { if(bIsExecuteTimerInterrupt==false) return true; if(gbIsUseAPIC) { bIsExecuteTimerInterrupt=false; return true; } __asm { push eax push edx push ecx mov dx,070h mov ecx,0x8000 local_001: mov al,0ah out dx,al inc edx in al,dx test al,80h loopnz local_001 mov al,0ah dec edx out dx,al inc edx mov al,byteOldRTC_Register_A out dx,al dec edx mov al,0bh out dx,al inc edx mov al,byteOldRTC_Register_B out dx,al mov al,0ch dec edx out dx,al inc dx in al,dx pop ecx pop edx pop eax } bIsExecuteTimerInterrupt=false; return true; } __declspec (naked) void TimeInterrupeService() { __asm{ pushfd cmp cs:bIsExecuteTimerInterrupt,1 jz local_2 popfd ret local_2: pushad push ds mov eax,0x10 mov ds,ax } gSystemTickCount++; gpSyser->OnTimer(30); SyserWritePortByte(0x70,0xc); dwTmpRTC = SyserReadPortByte(0x71); gpSyser->m_PCSystem.USBDeviceService(); if(dwTmpRTC & 0x10) { if(TimeSecond==0xff) { __asm{ push edx push eax mov dx,071h local_1: dec edx mov al,0ah out dx,al inc dx in al,dx test al,0x80 jnz local_1 dec edx mov al,0 out dx,al inc dx in al,dx mov TimeSecond,al dec edx mov al,2 out dx,al inc edx in al,dx mov TimeMinute,al dec edx mov al,4 out dx,al inc edx in al,dx mov TimeHour,al pop eax pop edx } TimeSecond = (TimeSecond >> 4) * 10 + (TimeSecond & 0xf); TimeMinute = (TimeMinute >> 4) * 10 + (TimeMinute & 0xf); TimeHour = (TimeHour >> 4) * 10 + (TimeHour & 0xf); }else { TimeSecond++; if(TimeSecond==60) { TimeSecond = 0; TimeMinute++; } if(TimeMinute == 60) { TimeMinute = 0; TimeHour++; } TimeHour %= 24; //gpSyser->m_MainFrame.Update(); } } SetInteruptEOI(8); __asm{ pop ds popad popfd lea esp,[esp+4] iretd } } ULONG __declspec(naked) CalibrateByTimer() { #if 0 _asm{ pushfd pushad cli local_12345: mov al,0ah out 70h,al jmp short $+2 in al,71h test al,80h jnz local_12345 mov al,0 out 70h,al jmp short $+2 in al,71h mov bl,al local_212: mov al,0ah out 70h,al jmp short $+2 in al,71h test al,80h jnz local_212 mov al,0 out 70h,al jmp short $+2 in al,71h mov bh,al rdtsc mov esi,eax mov edi,edx cmp bl,bh jz local_212 local_213: mov al,0ah out 70h,al jmp short $+2 in al,71h test al,80h jnz local_213 mov al,0 out 70h,al jmp short $+2 in al,71h mov bl,al cmp bh,bl jz local_213 popad popfd } #endif __asm { pushfd push esi push edi push ebx push ecx push edx xor esi, esi cli mov ecx, 4 loc_4456F: push ecx mov al, 0D2h out 43h, al jmp short $+2 in al, 40h mov cl, al in al, 40h mov ch, al rdtsc mov edi, eax xor ah, ah loc_44584: mov al, 0D2h out 43h, al in al, 40h mov bl, al in al, 40h mov bh, al or ah, ah jnz short loc_4459D cmp bx, cx jbe short loc_44584 inc ah jmp short loc_44584 loc_4459D: cmp bx, cx ja short loc_44584 rdtsc sub eax, edi add esi, eax pop ecx loop loc_4456F shr esi,2 mov eax,esi pop edx pop ecx pop ebx pop edi pop esi popfd retn } } ULONGLONG gPrevTSC=0; ULONGLONG InitSTCTickCount() { gPrevTSC=SyserGetTSC(); __asm { pushfd push esi push edi push ecx push edx push ebx push eax push eax cli in al,0x61 mov [esp],eax //8253 ͨ2ԭʼ״̬ and al,0xfe out 0x61,al //ر8253ͨ2,Ҳǽֹ8253ͨ2ļ mov al,0xb6 //д8253 дֽ,дֽ ͨ2 out 0x43,al mov ax,1193 //ÿ 1000Hz 1ʱ RDTSC ļ Ҳ8253 ͨ2ļֵÿӻ 1000 out 0x42,al mov al,ah out 0x42,al xor ecx,ecx in al,0x61 or al,1 out 0x61,al // 8253 ͨ2 8253 ͨ2ʼ xor edx,edx mov edi,300000 local_00a: mov al,0xd8 ////д8253 ȶֽ,ٶֽ ͨ2 out 0x43,al in al,0x42 mov cl,al in al,0x42 mov ch,al inc edx cmp edx,0x20000000 jg local_111 //ֻ 8253 ͨ2 cmp cx,800 jg local_00a rdtsc mov edi,eax mov esi,edx xor ah,ah local_009: mov al,0xd8 out 0x43,al in al,0x42 mov bl,al in al,0x42 mov bh,al or ah, ah jnz local_010 cmp bx,cx jbe local_009 inc ah jmp local_009 local_010: cmp bx, cx ja local_009 rdtsc sub eax,edi sbb edx,esi mov edi,eax local_111: pop eax out 0x61,al pop eax mov eax,edi pop ebx lea esp,[esp+4] //pop edx pop ecx pop edi pop esi popfd } } ================================================ FILE: Project/Syser/Source/TimerInterrupt.h ================================================ #ifndef _TIMERINTERRUPT_H_ #define _TIMERINTERRUPT_H_ ////////////////////////////////////////////////////////////////////////// /// 8253 ʱж ioapic ежϺ 2 /// finaldoom ҵĻ 8253 ʱж ioapic ежϺ 0 ////////////////////////////////////////////////////////////////////////// #define IOAPIC_TIMER_INTERRUPT_NUM 0 void Interrupt_0xFA_Timer_Service(); bool UninstallTimeInterrupt(); bool InstallTimeInterrupt(); void TimeInterrupeService(); ULONG CalibrateByTimer(); #ifdef __cplusplus extern "C" { #endif extern ULONG gSystemTimerFrequency; extern ULONGLONG gSystemTickCount; extern BYTE byteOldRTC_Register_A; extern BYTE byteOldRTC_Register_B; extern BYTE TimeSecond; extern BYTE TimeHour; extern BYTE TimeMinute; extern bool bIsExecuteTimerInterrupt; extern DWORD gdwOldTimerInterrupt; extern DWORD gdwTimerInterruptNum; ULONGLONG InitSTCTickCount(); extern ULONGLONG gTSCTickCount; extern ULONGLONG gPrevTSC; #ifdef __cplusplus }; // extern "C" #endif #endif //_TIMERINTERRUPT_H_ ================================================ FILE: Project/Syser/Source/TouchPad.cpp ================================================ #include "StdAfx.h" #include "TouchPad.h" #include "InputDriver.h" #include "Mouse.h" #include "Syser.h" bool gTouchPad=false; BYTE gTouchPadMode=0; bool gbSynapticsTouchPad=false; bool gbAlpsTouchPad=false; void TestTouchPad() { bool ReadMouseRet; BYTE ResponeBuf[6]; BYTE ResponeBuf2[6]; DWORD i =0 ; BYTE Value; if(gHasPS2Mouse==false) return; for(i = 0; i < sizeof(ResponeBuf);i++) ResponeBuf[i]=0; i=0; while(ReadMouseRet = SyserReadPort60(&Value,true)) { if(i<6) ResponeBuf2[i]=Value; i++; } i = 0; if(SendMouseCommand(0xe8)==false) return; if(SendMouseCommand(0x0)==false) return; if(SendMouseCommand(0xe8)==false) return; if(SendMouseCommand(0x0)==false) return; if(SendMouseCommand(0xe8)==false) return; if(SendMouseCommand(0x0)==false) return; if(SendMouseCommand(0xe8)==false) return; if(SendMouseCommand(0x1)==false) return; if(SendMouseCommand(0xe9)==false) return; while(ReadMouseRet = SyserReadPort60(&Value,true)) { if(i<6) ResponeBuf[i]=Value; i++; } if(ResponeBuf[1]==0x47) { gTouchPad=true; if(ResponeBuf[2]&0x80) { dwMousePrePackageSize=6; } gTouchPadMode=ResponeBuf[2]; } else { if(SendMouseCommand(0xe8)==false) return; if(SendMouseCommand(ResponeBuf2[1]&3)==false) return; } } #ifdef __cplusplus extern "C" { #endif DWORD gPreAbsoluteX=0; DWORD gPreAbsoluteY=0; DWORD MouseInterruptCount; BYTE gbPressure; DWORD gTouchPadCount; extern ULONGLONG gTSCTickCount; #ifdef __cplusplus }; // extern "C" #endif void AnalyzerTouchPadPackage() { DWORD AbsoluteX,AbsoluteY,X,Y; int XOffset,YOffset; DWORD w; ULONGLONG TmpTickCount,Interval; char TrackPointX,TrackPointY; bool bButtonState,bDoubleClick; AbsoluteX=(CurrentMouseData.D6.Byte3&0x10)|(CurrentMouseData.D6.Byte1&0xf); AbsoluteX<<=8; AbsoluteX|=CurrentMouseData.D6.Byte4; X = AbsoluteX; AbsoluteY=CurrentMouseData.D6.Byte3&0x20; AbsoluteY>>=1; AbsoluteY=AbsoluteY|((CurrentMouseData.D6.Byte1&0xf0)>>4); AbsoluteY<<=8; AbsoluteY|=CurrentMouseData.D6.Byte5; Y = AbsoluteX; if(CurrentMouseData.D6.Byte2) { if(gbPressure==0) { gTouchPadCount=0; //gpSyser->DbgPrint(0,24,WSTR("[%d] %d %d %d %d"),gTouchPadCount,gPreAbsoluteX,gPreAbsoluteY,AbsoluteX,AbsoluteY); gPreAbsoluteX=AbsoluteX; gPreAbsoluteY=AbsoluteY; } } else { if(gbPressure) { //gpSyser->DbgPrint(0,12,WSTR("[%d] %d %d %d %d"),gTouchPadCount,gPreAbsoluteX,gPreAbsoluteY,AbsoluteX,AbsoluteY); } } gbPressure=CurrentMouseData.D6.Byte2; AbsoluteX = (gPreAbsoluteX+AbsoluteX)/2; AbsoluteY = (gPreAbsoluteY+AbsoluteY)/2; #if 0 gpSyser->DbgPrint(600,0,WSTR("count=[%d] %02x %02x %02x %02x %02x %02x x=%d y=%d"),MouseInterruptCount,CurrentMouseData.D6.Byte0, CurrentMouseData.D6.Byte1, CurrentMouseData.D6.Byte2, CurrentMouseData.D6.Byte3, CurrentMouseData.D6.Byte4, CurrentMouseData.D6.Byte5, AbsoluteX, AbsoluteY ); #endif TmpTickCount = SyserGetTSC(); XOffset=AbsoluteX-gPreAbsoluteX; YOffset=AbsoluteY-gPreAbsoluteY; YOffset/=6; XOffset/=6; if(CurrentMouseData.D6.ZPressure!=0||X!=0||Y!=0) { if(CurrentMouseData.D6.ZPressure==0) { TrackPointX=CurrentMouseData.D6.Byte4; TrackPointY=CurrentMouseData.D6.Byte5; } if((XOffset||YOffset)) { if(CurrentMouseData.D6.ZPressure>40&&gTouchPadCount>10) gpSyser->OnMouseMove(XOffset,-YOffset); if(CurrentMouseData.D6.ZPressure==0) gpSyser->OnMouseMove(TrackPointX,-TrackPointY); if(CurrentMouseData.D6.ZPressure!=0) { gPreAbsoluteX=AbsoluteX; gPreAbsoluteY=AbsoluteY; } } } if((PrevMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS) != (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS)) { bButtonState = CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS; if(bButtonState) { if(gLButtonDblClkSecond==false) { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } else { if(CurrentMouseData.D6.Byte2 == 0 ||(XOffset==0&&YOffset==0)) { Interval = (TmpTickCount-gPrevLButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_LBUTTON); gLButtonDblClkSecond=false; bDoubleClick=true; } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_LBUTTON,CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_LEFT_PRESS); } if((PrevMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS) != (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)) { bDoubleClick=false; bButtonState = (CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0; if(bButtonState) { if(gRButtonDblClkSecond==false) { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } else { if(XOffset==0&&YOffset==0) { Interval = (TmpTickCount-gPrevRButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_RBUTTON); gRButtonDblClkSecond=false; bDoubleClick=true; } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(CurrentMouseData.D3.cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0); } gTouchPadCount++; PrevMouseData=CurrentMouseData; } /* * XXX - this entry is suspicious. First byte has zero lower nibble, * which is what a normal mouse would report. Also, the value 0x0e * isn't valid per PS/2 spec. */ /* * ALPS abolute Mode - new format * * byte 0: 1 ? ? ? 1 ? ? ? * byte 1: 0 x6 x5 x4 x3 x2 x1 x0 * byte 2: 0 x10 x9 x8 x7 ? fin ges * byte 3: 0 y9 y8 y7 1 M R L * byte 4: 0 y6 y5 y4 y3 y2 y1 y0 * byte 5: 0 z6 z5 z4 z3 z2 z1 z0 * * ?'s can have different meanings on different models, * such as wheel rotation, extra buttons, stick buttons * on a dualpoint, etc. */ void AlpsAnalyzerTouchPadPackage() { DWORD AbsoluteX,AbsoluteY,X,Y; int XOffset,YOffset; DWORD w; ULONGLONG TmpTickCount,Interval; char TrackPointX,TrackPointY; bool bButtonState,bDoubleClick; AbsoluteX=CurrentMouseData.D6.Byte2&0x78; AbsoluteX<<=4; AbsoluteX|=CurrentMouseData.D6.Byte1&0x7f; X = AbsoluteX; AbsoluteY=CurrentMouseData.D6.Byte3&0x70; AbsoluteY<<=3; AbsoluteY|=CurrentMouseData.D6.Byte4&0x7f; Y = AbsoluteX; if(CurrentMouseData.D6.Byte5) { if(gbPressure==0) { gTouchPadCount=0; //gpSyser->DbgPrint(0,24,WSTR("[%d] %d %d %d %d"),gTouchPadCount,gPreAbsoluteX,gPreAbsoluteY,AbsoluteX,AbsoluteY); gPreAbsoluteX=AbsoluteX; gPreAbsoluteY=AbsoluteY; } } else { if(gbPressure) { //gpSyser->DbgPrint(0,12,WSTR("[%d] %d %d %d %d"),gTouchPadCount,gPreAbsoluteX,gPreAbsoluteY,AbsoluteX,AbsoluteY); } } gbPressure=CurrentMouseData.D6.Byte5; AbsoluteX = (gPreAbsoluteX+AbsoluteX)/2; AbsoluteY = (gPreAbsoluteY+AbsoluteY)/2; #if 0 gpSyser->DbgPrint(600,0,WSTR("count=[%d] %02x %02x %02x %02x %02x %02x x=%d y=%d"),MouseInterruptCount,CurrentMouseData.D6.Byte0, CurrentMouseData.D6.Byte1, CurrentMouseData.D6.Byte2, CurrentMouseData.D6.Byte3, CurrentMouseData.D6.Byte4, CurrentMouseData.D6.Byte5, AbsoluteX, AbsoluteY ); #endif TmpTickCount = SyserGetTSC(); XOffset=AbsoluteX-gPreAbsoluteX; YOffset=AbsoluteY-gPreAbsoluteY; /* OUTPUT(WSTR("%02x %02x %02x %02x %02x %02x\n"),CurrentMouseData.D6.Byte0, CurrentMouseData.D6.Byte1, CurrentMouseData.D6.Byte2, CurrentMouseData.D6.Byte3, CurrentMouseData.D6.Byte4, CurrentMouseData.D6.Byte5); OUTPUT(WSTR("%d %d [%d][%d] (%d)(%d)\n"),AbsoluteX,AbsoluteY,gPreAbsoluteX,gPreAbsoluteY,XOffset,YOffset); */ //YOffset/=2; //XOffset/=2; if(CurrentMouseData.D6.Byte5!=0||X!=0||Y!=0) { if(CurrentMouseData.D6.Byte5==0) { TrackPointX=CurrentMouseData.D6.Byte4; TrackPointY=CurrentMouseData.D6.Byte5; } if((XOffset||YOffset)) { if(CurrentMouseData.D6.Byte5>40&&gTouchPadCount>10) gpSyser->OnMouseMove(XOffset,YOffset); if(CurrentMouseData.D6.Byte5==0) gpSyser->OnMouseMove(TrackPointX,TrackPointY); if(CurrentMouseData.D6.Byte5!=0) { gPreAbsoluteX=AbsoluteX; gPreAbsoluteY=AbsoluteY; } } } if((PrevMouseData.D6.Byte3 & MOUSE_INTERRUPT_LEFT_PRESS) != (CurrentMouseData.D6.Byte3 & MOUSE_INTERRUPT_LEFT_PRESS)) { bButtonState = CurrentMouseData.D6.Byte3 & MOUSE_INTERRUPT_LEFT_PRESS; /* if(bButtonState) { if(gLButtonDblClkSecond==false) { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } else { if(CurrentMouseData.D6.Byte5 == 0 ||(XOffset==0&&YOffset==0)) { Interval = (TmpTickCount-gPrevLButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_LBUTTON); gLButtonDblClkSecond=false; bDoubleClick=true; } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } else { gLButtonDblClkSecond=true; gPrevLButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) */ gpSyser->OnKeyEvent(WISP_VK_LBUTTON,CurrentMouseData.D6.Byte3 & MOUSE_INTERRUPT_LEFT_PRESS); } if((PrevMouseData.D6.Byte3 & MOUSE_INTERRUPT_RIGHT_PRESS) != (CurrentMouseData.D6.Byte3 & MOUSE_INTERRUPT_RIGHT_PRESS)) { bDoubleClick=false; bButtonState = (CurrentMouseData.D6.Byte3 & MOUSE_INTERRUPT_RIGHT_PRESS)!=0; /* if(bButtonState) { if(gRButtonDblClkSecond==false) { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } else { if(XOffset==0&&YOffset==0) { Interval = (TmpTickCount-gPrevRButtonDownTickCount) / gTSCTickCount; if(Interval<=gMaxDblClkInterval) { gpSyser->OnMouseButtonDBClick(WISP_VK_RBUTTON); gRButtonDblClkSecond=false; bDoubleClick=true; } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } else { gRButtonDblClkSecond=true; gPrevRButtonDownTickCount=TmpTickCount; } } } if(!bDoubleClick) */ gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(CurrentMouseData.D6.Byte3 & MOUSE_INTERRUPT_RIGHT_PRESS)!=0); } gTouchPadCount++; PrevMouseData=CurrentMouseData; } ================================================ FILE: Project/Syser/Source/TouchPad.h ================================================ #ifndef _TOUCHPAD_H_ #define _TOUCHPAD_H_ void TestTouchPad(); extern bool gTouchPad; extern BYTE gTouchPadMode; void AnalyzerTouchPadPackage(); void AlpsAnalyzerTouchPadPackage(); extern bool gbSynapticsTouchPad; extern bool gbAlpsTouchPad; bool IsAlpsTouchPad(); bool IsSynapticsTouchPad(); #endif //_TOUCHPAD_H_ ================================================ FILE: Project/Syser/Source/TrackPoint.cpp ================================================ #include "StdAfx.h" #include "TrackPoint.h" #include "InputDriver.h" #include "Mouse.h" #include "Syser.h" void AnalyzerTrackPointPackage() { } ================================================ FILE: Project/Syser/Source/TrackPoint.h ================================================ #ifndef _TRACKPOINT_H_ #define _TRACKPOINT_H_ void AnalyzerTrackPointPackage(); #endif //_TRACKPOINT_H_ ================================================ FILE: Project/Syser/Source/TypeViewerWnd.cpp ================================================ #include "stdafx.h" #include "TypeViewerWnd.h" #include "SyserSymAnalyzer.h" #include "Syser.h" #define NORMAL_TEXT_COLOR WISP_RGB(255,255,255) #define CHANGE_TEXT_COLOR WISP_RGB(255,0,0) WISP_MENU_RES_ITEM TypeViewerMenu[]= { {WSTR("Delete Watch"),EVENT_ID_TYPEVIEWERWND_DELETE_WATCH,12*16+10}, {WSTR("Hexadecimal Display"),EVENT_ID_TYPEVIEWERWND_HEX_DISPLAY,0*16+13}, WISP_MENU_RES_END }; enum CTypeViewerWnd::CHILD_CMD_ID { CHILD_CMD_TYPELIST=WISP_ID_USER_START, }; WISP_MSG_MAP_BEGIN(CTypeViewerWnd) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CTypeViewerWnd) WISP_MSG_EVENT_MAP(EVENT_ID_TYPEVIEWERWND_HEX_DISPLAY,OnHexDisplayEvent) WISP_MSG_EVENT_MAP(EVENT_ID_TYPEVIEWERWND_DELETE_WATCH,OnDeleteWatchEvent) WISP_MSG_EVENT_MAP_END bool CTypeViewerWnd::OnHexDisplayEvent(IN WISP_MSG* pMsg) { TYPE_VALUE_ATTR ValueAttr; HANDLE hItem,hNextItem,hSelectItem; CWispString* str; WCHAR ValueBuf[512]; hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; if(hItem) hNextItem=GetNextItem(hItem); hSelectItem=hItem; while(hItem) { ValueAttr.ItemData = GetItemData(hItem,LIST_COLUMN_VALUE); ValueAttr.Attr.Attribute^=ITEM_ATTRIBUTE_HEX; SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); str =&GetItemText(hItem); hItem = GetNextListItem(hItem); if(hItem==hNextItem) break; } UpdateItemContext(hSelectItem,ValueBuf,sizeof(ValueBuf)/sizeof(ValueBuf[0])); //UpdateDisplay(hSelectItem); return true; } PSDTYPE_INFILE CTypeViewerWnd::GetTypeByDataIndex(CSDSModule* pSDSModule,DWORD DataIndex) { PSDTYPE_INFILE pType; PSDUDTDATAITEM pUDTDataItem; PSDREFERENCETYPE pReferenceType; pUDTDataItem = pSDSModule->GetDataSymbol(DataIndex); if(pUDTDataItem==NULL) return NULL; pType = pSDSModule->GetTypeSymbol(pUDTDataItem->TypeId); if(pType!=NULL) { if(pType->Type==SD_REFERENCE) { pReferenceType = (PSDREFERENCETYPE)&pType[1]; pType = pSDSModule->GetTypeSymbol(pReferenceType->TypeID); } } return pType; } bool CTypeViewerWnd::UpdateItemContext(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD Address) { WATCH_DATA WatchData; PSDTYPE_INFILE pType,pTmpType; PSDREFERENCETYPE pReferenceType; DWORD TypeIndex; CSDSModule* pSDSModule; DWORD ReadWriteLen,Attribute; VALUEUNION ValueUnion; PSDPOINTERTYPE pSDPointerType; PSDUDTDATAITEM pUDTDataItem; PSDENUMERATIONTYPE pEnumType; char *EnumElementName=NULL; char* pStr=(char*)&ValueBuf[0]; bool bOK; memset(&WatchData,0,sizeof(WatchData)); bOK = GetItemDataAll(hItem,&WatchData); if(bOK==false) return false; if(Address==0) Address=WatchData.Value.Attr.Address; WatchData.Value.Attr.Address=Address; SetItemData(hItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_UNINITIALIZE) return true; Attribute = WatchData.Value.Attr.Attribute; pSDSModule = WatchData.Name.Attr.pSDSModule; TypeIndex = WatchData.Name.Attr.TypeIndex; if(pSDSModule==NULL)return false; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUDTDataItem=pSDSModule->GetDataSymbol(TypeIndex); if(pUDTDataItem==NULL) return false; TypeIndex=pUDTDataItem->TypeId; } pType=pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; switch(pType->Type) { case SD_ARRAY: TSPrintf(ValueBuf,WSTR("0x%08x"),Address); SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); UpdateItemContextArray(hItem,ValueBuf,ValueBufLen,Address); break; case SD_BASIC: GetBasicTypeValue(pSDSModule,pType,Address,Attribute,ValueBuf,&ValueUnion); SetItemTextColor(hItem,LIST_COLUMN_VALUE,NORMAL_TEXT_COLOR); if(WatchData.Type.ValueUnion.uint64value!=ValueUnion.uint64value) { SetItemTextColor(hItem,LIST_COLUMN_VALUE,CHANGE_TEXT_COLOR); } SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); WatchData.Type.ValueUnion = ValueUnion; SetItemData(hItem,LIST_COLUMN_TYPE,WatchData.Type.ItemData); break; case SD_POINTER: { memset(&ValueUnion,0,sizeof(VALUEUNION)); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); if(ReadWriteLen!=pType->TypeSize) break; TSPrintf(ValueBuf,WSTR("0x%08x "),ValueUnion.uintvalue); SetItemTextColor(hItem,LIST_COLUMN_VALUE,NORMAL_TEXT_COLOR); if(WatchData.Type.ValueUnion.uint64value!=ValueUnion.uint64value) { SetItemTextColor(hItem,LIST_COLUMN_VALUE,CHANGE_TEXT_COLOR); } SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); pSDPointerType=(PSDPOINTERTYPE)&pType[1]; if(pSDPointerType->PointerDepth==1) { pTmpType=pSDSModule->GetTypeSymbol(pSDPointerType->TypeID); if(pTmpType==NULL)break; if(pTmpType->Type==SD_CLASS || pTmpType->Type==SD_STRUCT || pTmpType->Type==SD_UNION) { UpdateItemContextUDTPointer(hItem,ValueBuf,ValueBufLen,ValueUnion.uintvalue); } else if(pTmpType->Type==SD_BASIC) { if(pTmpType->TypeSize==1) { TSPrintf(pStr,"0x%08x \"",ValueUnion.uintvalue); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(ValueUnion.uintvalue,&pStr[12],ValueBufLen*sizeof(WCHAR)-15); for(DWORD i=0;i < ReadWriteLen ;i++) { if(pStr[i+12]!=0)continue; pStr[i+12]='"';pStr[i+13]=0; SetItemTextA(hItem,LIST_COLUMN_VALUE,pStr); break; } } HANDLE hNextItem = GetNextListItem(hItem); TYPE_VALUE_ATTR ValueAttr; if(hNextItem!=NULL) { ValueAttr.ItemData = GetItemData(hNextItem,LIST_COLUMN_VALUE); ValueAttr.Attr.Address = ValueUnion.uintvalue; SetItemData(hNextItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); GetBasicTypeValue(pSDSModule,pTmpType,ValueUnion.uintvalue,Attribute,ValueBuf,&ValueUnion); SetItemText(hNextItem,LIST_COLUMN_VALUE,ValueBuf); } } } } break; case SD_REFERENCE: { memset(&ValueUnion,0,sizeof(VALUEUNION)); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,4); if(ReadWriteLen!=4) break; TSPrintf(ValueBuf,WSTR("0x%08x"),ValueUnion.uintvalue); SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); pReferenceType=(PSDREFERENCETYPE)&pType[1]; pTmpType=pSDSModule->GetTypeSymbol(pReferenceType->TypeID); if(pTmpType==NULL)break; if(pTmpType->Type==SD_CLASS || pTmpType->Type==SD_STRUCT || pTmpType->Type==SD_UNION) { UpdateItemContextUDTReference(hItem,ValueBuf,ValueBufLen,ValueUnion.uintvalue); } else if(pTmpType->Type==SD_BASIC) { TYPE_VALUE_ATTR ValueAttr; ValueAttr.ItemData = GetItemData(hItem,LIST_COLUMN_VALUE); ValueAttr.Attr.Address = ValueUnion.uintvalue; SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); GetBasicTypeValue(pSDSModule,pTmpType,ValueUnion.uintvalue,Attribute,ValueBuf,&ValueUnion); SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); } } break; case SD_ENUMERATION: pEnumType=(PSDENUMERATIONTYPE)&pType[1]; pTmpType = pSDSModule->GetTypeSymbol(pEnumType->TypeID); if(GetBasicTypeValue(pSDSModule,pTmpType,Address,Attribute,ValueBuf,&ValueUnion)) { EnumElementName = pSDSModule->GetEnumerationByValue(TypeIndex,ValueUnion.uint64value); } if(EnumElementName) SetItemTextA(hItem,LIST_COLUMN_VALUE,EnumElementName); else SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); break; case SD_CLASS: case SD_STRUCT: case SD_UNION: UpdateItemContextUDT(hItem,ValueBuf,ValueBufLen,Address); break; } return true; } //ʾһUDTݵǰ3ֵ bool CTypeViewerWnd::UpdateItemContextUDT(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress) { WATCH_DATA WatchData; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; HANDLE hSubItem; DWORD Address; DWORD TypeIndex; CSDSModule* pSDSModule ; if(hItem==NULL) return false; ChangeUDTBaseClassAddressByUDT(hItem,BaseAddress); hSubItem = GetNextListItem(hItem); for(;hSubItem;hSubItem = GetNextItem(hSubItem)) { GetItemText(hSubItem,LIST_COLUMN_NAME,ValueBuf,ValueBufLen); if(GetItemDataAll(hSubItem,&WatchData)==false) continue; Address=WatchData.Value.Attr.Address; TypeIndex = WatchData.Name.Attr.TypeIndex; pSDSModule = WatchData.Name.Attr.pSDSModule; if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_UNINITIALIZE || pSDSModule==NULL || TypeIndex==0) continue; if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem = WatchData.Name.Attr.pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) continue; TypeIndex = pUdtDataItem->TypeId; if(pUdtDataItem->Location == LocIsThisRel) { Address = BaseAddress+ pUdtDataItem->u.LOCISTHISREL.Offset; } } pType=WatchData.Name.Attr.pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) continue; UpdateItemContext(hSubItem,ValueBuf,ValueBufLen,Address); } return true; } bool CTypeViewerWnd::ChangeUDTBaseClassAddress(HANDLE hItem,DWORD TypeIndex,DWORD Address) { HANDLE hSubItem; WATCH_DATA WatchData; WCHAR ValueBuf[256]; bool bOK=false; hSubItem = GetNextListItem(hItem); //hNextItem = GetListItem(hItem); for(;hSubItem;hSubItem = GetNextItem(hSubItem)) { if(GetItemDataAll(hSubItem,&WatchData)==false) continue; if(WatchData.Name.Attr.TypeIndex==TypeIndex && (WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_TYPE)) { GetItemText(hSubItem,LIST_COLUMN_NAME,ValueBuf,256); WatchData.Value.Attr.Address=Address; SetItemData(hSubItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); bOK=true; break; } } return bOK; } bool CTypeViewerWnd::ChangeUDTBaseClassAddressPointer(HANDLE hItem,DWORD BaseAddress) { WATCH_DATA WatchData; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; CSDSModule* pSDSModule; DWORD Address,Attribute; DWORD TypeIndex; PSDTYPE_INFILE pBaseClassType; PSDUDTBASECLASS pUdtBaseClassType; PSDPOINTERTYPE pPointerType; DWORD *pBaseClassIndex; PSDUDTTYPE pUdtType; DWORD i; if(GetItemDataAll(hItem,&WatchData)==false) return false; Attribute = WatchData.Value.Attr.Attribute; TypeIndex=WatchData.Name.Attr.TypeIndex; pSDSModule=WatchData.Name.Attr.pSDSModule; if(pSDSModule==NULL || TypeIndex == 0) return false; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem=pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return false; TypeIndex=pUdtDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; if(pType->Type!=SD_POINTER) return false; pPointerType =(PSDPOINTERTYPE) &pType[1]; if(pPointerType->PointerDepth!=1) return false; pType = pSDSModule->GetTypeSymbol(pPointerType->TypeID); if(pType==NULL) return false; if(pType->Type!=SD_CLASS && pType->Type!=SD_STRUCT && pType->Type!=SD_UNION) return false; pUdtType = (PSDUDTTYPE)&pType[1]; pBaseClassIndex = pUdtType->pBaseClass.pBaseClassMember; for(i = 0; i < pUdtType->BaseClassCounter;i++) { pBaseClassType = pSDSModule->GetTypeSymbol(pBaseClassIndex[i]); pUdtBaseClassType = (PSDUDTBASECLASS)&pBaseClassType[1]; Address = BaseAddress+pUdtBaseClassType->Offset; ChangeUDTBaseClassAddress(hItem,pUdtBaseClassType->TypeID,Address); } return true; } bool CTypeViewerWnd::ChangeUDTBaseClassAddressByUDT(HANDLE hItem,DWORD BaseAddress) { WATCH_DATA WatchData; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; CSDSModule* pSDSModule; DWORD Address,Attribute; DWORD TypeIndex; PSDTYPE_INFILE pBaseClassType; PSDUDTBASECLASS pUdtBaseClassType; DWORD *pBaseClassIndex; PSDUDTTYPE pUdtType; DWORD i; if(GetItemDataAll(hItem,&WatchData)==false) return false; Attribute = WatchData.Value.Attr.Attribute; TypeIndex=WatchData.Name.Attr.TypeIndex; pSDSModule=WatchData.Name.Attr.pSDSModule; if(pSDSModule==NULL || TypeIndex == 0) return false; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem=pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return false; TypeIndex=pUdtDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; if(pType->Type!=SD_CLASS && pType->Type!=SD_STRUCT && pType->Type!=SD_UNION) return false; pUdtType = (PSDUDTTYPE)&pType[1]; pBaseClassIndex = pUdtType->pBaseClass.pBaseClassMember; for(i = 0; i < pUdtType->BaseClassCounter;i++) { pBaseClassType = pSDSModule->GetTypeSymbol(pBaseClassIndex[i]); pUdtBaseClassType = (PSDUDTBASECLASS)&pBaseClassType[1]; Address = BaseAddress+pUdtBaseClassType->Offset; ChangeUDTBaseClassAddress(hItem,pUdtBaseClassType->TypeID,Address); } return true; } bool CTypeViewerWnd::UpdateItemContextArray(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress) { PSDTYPE_INFILE pType,pArrayElementType; DWORD Attribute,Address; CSDSModule* pSDSModule; DWORD TypeIndex,i; WATCH_DATA WatchData; PSDUDTDATAITEM pUDTDataItem; PSDARRAYTYPE pArrayType; HANDLE hSubItem; if(hItem==NULL) return false; if(GetItemDataAll(hItem,&WatchData)==false) return false; pSDSModule = WatchData.Name.Attr.pSDSModule; TypeIndex = WatchData.Name.Attr.TypeIndex; Attribute = WatchData.Value.Attr.Attribute; Address = BaseAddress; if(pSDSModule==NULL||TypeIndex==0) return false; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUDTDataItem = pSDSModule->GetDataSymbol(TypeIndex); if(pUDTDataItem==NULL) return false; TypeIndex=pUDTDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; pArrayType = (PSDARRAYTYPE)&pType[1]; if(pArrayType->DimensionsSize==1) { hSubItem = GetNextListItem(hItem); pArrayElementType=pSDSModule->GetTypeSymbol(pArrayType->TypeIDElement); for(i = 0; i < pArrayType->Dimensions[0].Size && hSubItem!=NULL;i++) { UpdateItemContext(hSubItem,ValueBuf,ValueBufLen,Address); Address+=pArrayElementType->TypeSize; hSubItem = GetNextItem(hSubItem); } } return true; } bool CTypeViewerWnd::UpdateItemContextUDTPointer(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress) { WATCH_DATA WatchData; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; CSDSModule* pSDSModule; DWORD Address,Attribute; HANDLE hSubItem; DWORD TypeIndex; if(hItem==NULL) return false; ChangeUDTBaseClassAddressPointer(hItem,BaseAddress); hSubItem = GetNextListItem(hItem); for(;hSubItem;hSubItem = GetNextItem(hSubItem)) { GetItemText(hSubItem,LIST_COLUMN_NAME,ValueBuf,ValueBufLen); Address=0; if(GetItemDataAll(hSubItem,&WatchData)==false) continue; TypeIndex = WatchData.Name.Attr.TypeIndex; Attribute=WatchData.Value.Attr.Attribute; pSDSModule=WatchData.Name.Attr.pSDSModule; if(Attribute&ITEM_ATTRIBUTE_UNINITIALIZE || pSDSModule==NULL || TypeIndex==0) continue; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem = pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) continue; TypeIndex = pUdtDataItem->TypeId; if(pUdtDataItem->Location == LocIsThisRel) { Address = BaseAddress+ pUdtDataItem->u.LOCISTHISREL.Offset; } } pType=pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) continue; UpdateItemContext(hSubItem,ValueBuf,ValueBufLen,Address); } return true; } bool CTypeViewerWnd::UpdateItemContextUDTReference(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress) { WATCH_DATA WatchData; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; DWORD Address; HANDLE hSubItem; DWORD TypeIndex; if(hItem==NULL) return false; hSubItem = GetNextListItem(hItem); for(;hSubItem;hSubItem = GetNextItem(hSubItem)) { GetItemText(hSubItem,LIST_COLUMN_NAME,ValueBuf,ValueBufLen); Address=0; if(GetItemDataAll(hSubItem,&WatchData)==false) continue; TypeIndex = WatchData.Name.Attr.TypeIndex; if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_UNINITIALIZE || WatchData.Name.Attr.pSDSModule==NULL || TypeIndex==0) continue; if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem = WatchData.Name.Attr.pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) continue; TypeIndex = pUdtDataItem->TypeId; if(pUdtDataItem->Location == LocIsThisRel) { Address = BaseAddress+ pUdtDataItem->u.LOCISTHISREL.Offset; } } pType=WatchData.Name.Attr.pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) continue; UpdateItemContext(hSubItem,ValueBuf,ValueBufLen,Address); } return true; } bool CTypeViewerWnd::OnDeleteWatchEvent(IN WISP_MSG* pMsg) { HANDLE hFirstItem; HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); hFirstItem = GetItem(0); if(GetParentItem(hItem)!=GetParentItem(hFirstItem)) return false; if(hItem && hItem!=m_hLastItem) RemoveItem(hItem); return true; } bool CTypeViewerWnd::OnKeyEvent(IN WISP_MSG* pMsg) { if(pMsg->KeyEvent.bKeyDown && pMsg->KeyEvent.KeyType == WISP_VK_F2) { HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem) BeginEditItem(hItem,0); return true; } if(pMsg->KeyEvent.bKeyDown==false) { if(pMsg->KeyEvent.KeyType == (WISP_MOD_CTRL| WISP_VK_H)) m_PopupMenu.Popup(); if(pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) { HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); m_PopupMenu.EnableItem(m_hRemoveItem,hItem!=NULL && hItem!=m_hLastItem); m_PopupMenu.Popup(); } } return true; } bool CTypeViewerWnd::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { bool bOK; TYPE_NAME_ATTR NameAttr; TYPE_VALUE_ATTR ValueAttr; TYPE_TYPE_ATTR TypeAttr; PSDREFERENCETYPE pReferenceType; TYPE_ADDRESS_ATTR AddressAttr; CSDSModule* pSdsModule; PSDTYPE_INFILE pType,pSubType; HANDLE hFirstItem; DWORD TypeIndex; if(hItem==NULL) return false; bOK = GetItemDataAll(hItem,&NameAttr,&ValueAttr,&TypeAttr,&AddressAttr); if(bOK==false) return false; TypeIndex=NameAttr.Attr.TypeIndex; switch(Col) { case LIST_COLUMN_VALUE: if(ValueAttr.Attr.Attribute&ITEM_ATTRIBUTE_UNINITIALIZE) return false; if(NameAttr.Attr.pSDSModule==NULL) return false; pSdsModule=NameAttr.Attr.pSDSModule; if((ValueAttr.Attr.Attribute&ITEM_ATTRIBUTE_TYPE)&&(ValueAttr.Attr.Attribute&ITEM_ATTRIBUTE_VFTABLE)) return false; if(ValueAttr.Attr.Attribute&ITEM_ATTRIBUTE_DATA) { PSDUDTDATAITEM pUdtDataItem; pUdtDataItem=pSdsModule->GetDataSymbol(NameAttr.Attr.TypeIndex); if(pUdtDataItem==NULL) return false; TypeIndex = pUdtDataItem->TypeId; } pType = pSdsModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; if(pType->Type==SD_REFERENCE) { pReferenceType = (PSDREFERENCETYPE)&pType[1]; pSubType= pSdsModule->GetTypeSymbol(pReferenceType->TypeID); if(pSubType==NULL) return false; pType = pSubType; } return pType->Type==SD_BASIC || pType->Type==SD_POINTER; case LIST_COLUMN_NAME: hFirstItem = GetItem(0); if(GetParentItem(hItem)!=GetParentItem(hFirstItem)) return false; break; } return true; } bool CTypeViewerWnd::ChangeValueBoolAndBitField1(DWORD Address,CSDSModule* pSDSModule,DWORD DataIndex,WCHAR* ValueBuf) { PSDUDTDATAITEM pUdtDataItem; PSDTYPE_INFILE pType; VALUEUNION ValueUnion; DWORD ReadWriteLen,BaseTypeID; if(pSDSModule==NULL) return false; pUdtDataItem=pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return false; pType = pSDSModule->GetTypeSymbol(pUdtDataItem->TypeId); if(pType==NULL) return false; if(pType->Type==SD_BASIC) { BaseTypeID = GetBaseTypeIdByName(pType->uName.Name); ReadWriteLen=0; if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); if(ReadWriteLen!=pType->TypeSize) return false; switch(BaseTypeID) { case btBool: if(ValueUnion.boolvalue) { ValueUnion.boolvalue=false; TStrCpy(ValueBuf,"false"); } else { ValueUnion.boolvalue=true; TStrCpy(ValueBuf,"true"); } ReadWriteLen = gpSyser->m_pDebugger->WriteMemory(Address,&ValueUnion,pType->TypeSize); return true; case btInt1: case btInt2: case btInt4: case btLong: case btInt8: case btUint1: case btUint2: case btUint4: case btULong: case btUint8: if(pUdtDataItem->Location==LocIsBitField) { if(pUdtDataItem->u.LOCISBITFIELD.Size!=1) break; ULONGLONG BitMask=1; BitMask<<=pUdtDataItem->u.LOCISBITFIELD.Position; ValueUnion.uint64value^=BitMask; ReadWriteLen = gpSyser->m_pDebugger->WriteMemory(Address,&ValueUnion,pType->TypeSize); if(ValueUnion.uint64value&BitMask) TStrCpy(ValueBuf,"1"); else TStrCpy(ValueBuf,"0"); return true; } } } return false; } CTypeViewerWnd::CTypeViewerWnd() { m_hLastItem=NULL; } CTypeViewerWnd::~CTypeViewerWnd() { } bool CTypeViewerWnd::OnCreate(IN WISP_MSG* pMsg) { //Create(NULL,m_ClientRect,this,CHILD_CMD_TYPELIST,WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER|WISP_WLS_TREE); InsertColumn(WSTR("Name F2"),100,WISP_WLCS_EDITABLE); InsertColumn(WSTR("Value"),400,WISP_WLCS_EDITABLE); InsertColumn(WSTR("Type"),100); InsertColumn(WSTR("Offset"),90); m_SelectBKColor = ColorOption.clrSelectedFrame; SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_PopupMenu.CreatePopupMenu(TypeViewerMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hRemoveItem = m_PopupMenu.GetItem(EVENT_ID_TYPEVIEWERWND_DELETE_WATCH); ResetContext(); return true; } bool CTypeViewerWnd::OnDestroy(IN WISP_MSG* pMsg) { m_PopupMenu.Destroy(); return true; } void CTypeViewerWnd::ExpandArrayType(HANDLE hItem,bool bIsData) { DWORD Attribute; DWORD TypeIndex; DWORD Address; bool bOK; TYPE_NAME_ATTR NameAttr; TYPE_VALUE_ATTR ValueAttr; TYPE_TYPE_ATTR TypeAttr; TYPE_ADDRESS_ATTR AddressAttr; PSDUDTDATAITEM pUdtDataItem; CSDSModule* pSDSModule; PSDTYPE_INFILE pType; PSDTYPE_INFILE pArrayElementType; PSDARRAYTYPE pArrayType; char Name[20]; DWORD MemoryAddress; DWORD i; if(hItem==NULL) return; bOK = GetItemDataAll(hItem,&NameAttr,&ValueAttr,&TypeAttr,&AddressAttr); if(bOK==false) return; Attribute = ValueAttr.Attr.Attribute; pSDSModule = NameAttr.Attr.pSDSModule; TypeIndex = NameAttr.Attr.TypeIndex; Address = ValueAttr.Attr.Address; MemoryAddress=Address; if(pSDSModule==NULL||TypeIndex==0) return; if(Attribute&ITEM_ATTRIBUTE_UNINITIALIZE) return; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem = pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL||pType->Type!=SD_ARRAY) return; pArrayType=(PSDARRAYTYPE)&pType[1]; if(pArrayType->DimensionsSize>1) { pArrayElementType=pSDSModule->GetTypeSymbol(pArrayType->NextArrayID); } else { pArrayElementType=pSDSModule->GetTypeSymbol(pArrayType->TypeIDElement); Attribute &= ITEM_ATTRIBUTE_TYPEDATA_MASK; Attribute |= ITEM_ATTRIBUTE_TYPE; for(i = 0; i < pArrayType->Dimensions[0].Size;i++) { TSPrintf(Name,"[%d]",i); WatchType(pSDSModule,pArrayElementType->Id,MemoryAddress,Attribute,hItem,Name); MemoryAddress+=pArrayElementType->TypeSize; } } } void CTypeViewerWnd::AddArrayTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName,bool bIsData) { WCHAR ValueBuf[30]; WCHAR UndefineValue[]=WSTR("????????"); NUM_PTR NumPtr; DWORD *TmpPtr=(DWORD*)&NumPtr,DataIndex=TypeIndex; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; char NameBuf[512]={0}; int NameBufLen=sizeof(NameBuf); CWispDIB*pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); if(pSDSModule==NULL) return; if(bIsData) { DataIndex=TypeIndex; pUdtDataItem=pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return; switch(pUdtDataItem->Access) { case CV_private: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+15); break; case CV_protected: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+14); break; case CV_public: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); break; } TypeIndex=pUdtDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; TSPrintf(ValueBuf,WSTR("0x%08x"),Address); pSDSModule->GetSDSymbolName(pType,NameBuf,&NameBufLen); if(DataMemberName) hItem = InsertItemA(DataMemberName,hItem,WISP_WLIS_NORMAL,pIcon); else hItem = InsertItemA(NameBuf,hItem,WISP_WLIS_NORMAL,pIcon); SetItemTextA(hItem,LIST_COLUMN_TYPE,NameBuf); TmpPtr[0]=bIsData?DataIndex:TypeIndex; TmpPtr[1]=*(DWORD*)&pSDSModule; SetItemData(hItem,LIST_COLUMN_NAME,NumPtr); SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); TmpPtr[0]=Address; TmpPtr[1]=Attribute&ITEM_ATTRIBUTE_TYPEDATA_MASK; TmpPtr[1]|=(bIsData?ITEM_ATTRIBUTE_DATA:ITEM_ATTRIBUTE_TYPE); SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x")); TmpPtr[0]=TypeIndex; TmpPtr[1]=0; SetItemData(hItem,LIST_COLUMN_TYPE,NumPtr); hItem = InsertItem(WSTR(".."),hItem); TmpPtr[1]|=ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); } void CTypeViewerWnd::ExpendVirtualFunctionTable(HANDLE hItem,PWATCH_DATA pWatchData) { WATCH_DATA WatchData;; DWORD Attribute; DWORD TypeIndex; char NameBuffer[256]; char FuncNameBuffer[256]; DWORD Address; const char*Name; PSDUDTDATAITEM pUdtDataItem; CSDSModule* pSDSModule; PSDTYPE_INFILE pType,pSubType; PSDUDTTYPE pUdtType; HANDLE hSubItem; PSDUDTVIRTUALTABLE pVTable; DWORD ReadWriteLen; DWORD i,j; BYTE CodeBuf[0x10]; CWispDIB* pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); Attribute = pWatchData->Value.Attr.Attribute; pSDSModule = pWatchData->Name.Attr.pSDSModule; TypeIndex = pWatchData->Name.Attr.TypeIndex; Address = pWatchData->Value.Attr.Address; if(pSDSModule==NULL || TypeIndex==0) return; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem =pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; } pSubType = pSDSModule->GetSymbolByName("unsigned int"); if(pSubType==NULL) return; pType = pSDSModule->GetTypeSymbol(TypeIndex); pUdtType = (PSDUDTTYPE)&pType[1]; pVTable=pUdtType->pVTable.pVTableMember; if(pVTable==NULL) return; memset(&WatchData,0,sizeof(WatchData)); for(i = 0; i < pUdtType->VTableCount;i++) { if(pVTable[i].VTBaseClassTypeID==TypeIndex) { CWispListItemCell* ListItemCell; DWORD dwVTBaseAddress= pSDSModule->m_pCurDbgModule->m_ModuleBase+pVTable[i].VTableRVA;; DWORD dwVFAddr; HANDLE hChildItem; hSubItem=InsertItemA("__vfptr",hItem,WISP_WLIS_NORMAL,pIcon); ListItemCell = GetItemCell(hSubItem,LIST_COLUMN_TYPE); Name = pSDSModule->m_pCurDbgModule->GetSymbol(dwVTBaseAddress); WatchData.Name.Attr.TypeIndex=pSubType->Id; WatchData.Name.Attr.pSDSModule=pSDSModule; WatchData.Value.Attr.Address=(DWORD)&ListItemCell->Data;// pSDSModule->m_pCurDbgModule->m_ModuleBase+pVTable[i].VTableRVA; WatchData.Value.Attr.Attribute |= ITEM_ATTRIBUTE_TYPE; WatchData.Value.Attr.Attribute |= ITEM_ATTRIBUTE_VFTABLE; WatchData.Type.VFTable.Address=dwVTBaseAddress; TSPrintf(NameBuffer,"0x%08x %s",dwVTBaseAddress,Name==NULL?"":Name); SetItemTextA(hSubItem,LIST_COLUMN_VALUE,NameBuffer); SetItemData(hSubItem,LIST_COLUMN_NAME,WatchData.Name.ItemData); SetItemData(hSubItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); SetItemData(hSubItem,LIST_COLUMN_TYPE,WatchData.Type.ItemData); SetItemTextA(hSubItem,LIST_COLUMN_TYPE,"*"); for(j=0;jm_pDebugger->ReadMemory(dwVTBaseAddress,&dwVFAddr,4); if(ReadWriteLen!=4) break; if(dwVFAddr==0) break; TSPrintf(NameBuffer,"[0x%x]",j); hChildItem = InsertItemA(NameBuffer,hSubItem,WISP_WLIS_NORMAL,WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*18)); ListItemCell = GetItemCell(hChildItem,LIST_COLUMN_TYPE); Name = pSDSModule->m_pCurDbgModule->GetSymbol(dwVFAddr); if(Name==NULL) { ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(dwVFAddr,CodeBuf,5); if(ReadWriteLen==5) { if(CodeBuf[0]==0xe9) { DWORD dwDestAddr; dwDestAddr=dwVFAddr+ *(DWORD*)&CodeBuf[1]+5-pSDSModule->m_pCurDbgModule->m_ModuleBase; PSDFUNCTIONITEM pFuncItem= pSDSModule->GetFunctionFromRav(dwDestAddr); NameBuffer[0]=0; int NameLen=sizeof(FuncNameBuffer); if(pFuncItem) { Name = pSDSModule->GetFunctionName(pFuncItem,FuncNameBuffer,&NameLen); } //Name=pSDSModule->GetFuncNameByRva(dwDestAddr); //Name = pSDSModule->m_pCurDbgModule->GetSymbol(dwDestAddr); } } } WatchData.Name.Attr.TypeIndex=pSubType->Id; WatchData.Name.Attr.pSDSModule=pSDSModule; WatchData.Value.Attr.Address=(DWORD)&ListItemCell->Data; WatchData.Value.Attr.Attribute |= ITEM_ATTRIBUTE_TYPE; WatchData.Value.Attr.Attribute |= ITEM_ATTRIBUTE_VFTABLE; WatchData.Type.VFTable.Address=dwVFAddr; TSPrintf(NameBuffer,"0x%08x %s",WatchData.Type.VFTable.Address,Name==NULL?"":Name); SetItemTextA(hChildItem,LIST_COLUMN_VALUE,NameBuffer); SetItemData(hChildItem,LIST_COLUMN_NAME,WatchData.Name.ItemData); SetItemData(hChildItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); SetItemData(hChildItem,LIST_COLUMN_TYPE,WatchData.Type.ItemData); SetItemTextA(hChildItem,LIST_COLUMN_TYPE,"*"); } break; } } } void CTypeViewerWnd::AddClassVFPTRWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName) { WCHAR ValueBuf[30]; WCHAR UndefineValue[]=WSTR("????????"); NUM_PTR NumPtr; DWORD *TmpPtr=(DWORD*)&NumPtr,DataIndex=TypeIndex; PSDTYPE_INFILE pType; WATCH_DATA WatchData; // PSDUDTDATAITEM pUdtDataItem; HANDLE hParent,hNext; TYPE_NAME_ATTR NameAttr; char NameBuf[512]={0}; int NameBufLen=sizeof(NameBuf); if(pSDSModule==NULL) return; hParent = hNext = hItem; while(hParent!=NULL) { hParent = GetParentItem(hNext); if(hParent==NULL) break; hNext = hParent; } if(hNext==NULL) return; NameAttr.ItemData = GetItemData(hNext); memset(&WatchData,0,sizeof(WatchData)); pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; TSPrintf(ValueBuf,WSTR("0x%08x"),Address); pSDSModule->GetSDSymbolName(pType,NameBuf,&NameBufLen); if(DataMemberName) hItem = InsertItemA(DataMemberName,hItem); else hItem = InsertItemA(NameBuf,hItem); SetItemTextA(hItem,LIST_COLUMN_TYPE,NameBuf); TmpPtr[0]=TypeIndex; TmpPtr[1]=*(DWORD*)&pSDSModule; SetItemData(hItem,LIST_COLUMN_NAME,NumPtr); SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); TmpPtr[0]=Address;TmpPtr[1]=Attribute|ITEM_ATTRIBUTE_TYPE; TmpPtr[1]&=(~ITEM_ATTRIBUTE_DATA); SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x")); TmpPtr[0]=TypeIndex; TmpPtr[1]=0; SetItemData(hItem,LIST_COLUMN_TYPE,NumPtr); hItem = InsertItem(WSTR(".."),hItem); TmpPtr[1]|=ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); } void CTypeViewerWnd::AddEnumerationTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName,bool bIsData) { VALUEUNION ValueUnion; WCHAR ValueBuf[30]={0}; WCHAR UndefineValue[]=WSTR("????????"); NUM_PTR NumPtr; DWORD *TmpPtr=(DWORD*)&NumPtr,DataIndex=TypeIndex; PSDTYPE_INFILE pType,pTmpType; PSDUDTDATAITEM pUdtDataItem; PSDENUMERATIONTYPE pEnumType; char NameBuf[512]={0}; char* EnumElementName=NULL; int NameBufLen=sizeof(NameBuf); if(pSDSModule==NULL) return; if(bIsData) { DataIndex=TypeIndex; pUdtDataItem=pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL||pType->Type!=SD_ENUMERATION) return; pEnumType=(PSDENUMERATIONTYPE)&pType[1]; TSPrintf(ValueBuf,WSTR("%08x"),Address); pSDSModule->GetSDSymbolName(pType,NameBuf,&NameBufLen); if(DataMemberName) hItem = InsertItemA(DataMemberName,hItem); else hItem = InsertItemA(NameBuf,hItem); TmpPtr[0]=bIsData?DataIndex:TypeIndex; TmpPtr[1]=*(DWORD*)&pSDSModule; SetItemData(hItem,LIST_COLUMN_NAME,NumPtr); //SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); if(bIsData) { TmpPtr[0]=Address;TmpPtr[1]=Attribute|ITEM_ATTRIBUTE_TYPE; TmpPtr[1]&=(~ITEM_ATTRIBUTE_DATA); } else { TmpPtr[0]=Address;TmpPtr[1]=Attribute|ITEM_ATTRIBUTE_DATA; TmpPtr[1]&=(~ITEM_ATTRIBUTE_TYPE); } SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); TmpPtr[0]=TypeIndex; TmpPtr[1]=0; SetItemData(hItem,LIST_COLUMN_TYPE,NumPtr); SetItemTextA(hItem,LIST_COLUMN_TYPE,NameBuf); pTmpType = pSDSModule->GetTypeSymbol(pEnumType->TypeID); if(GetBasicTypeValue(pSDSModule,pTmpType,Address,Attribute,ValueBuf,&ValueUnion)) { EnumElementName = pSDSModule->GetEnumerationByValue(TypeIndex,ValueUnion.uint64value); } if(EnumElementName) SetItemTextA(hItem,LIST_COLUMN_VALUE,EnumElementName); else SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address); } void CTypeViewerWnd::AddPointerTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName,bool bIsData) { WCHAR ValueBuf[30]; WCHAR UndefineValue[]=WSTR("????????"); VALUEUNION ValueUnion; NUM_PTR NumPtr; DWORD *TmpPtr,ReadWriteLen; PSDTYPE_INFILE pType,pElementType; PSDPOINTERTYPE pPointerType; TYPE_TYPE_ATTR TypeAddr; bool voidpointer=false; DWORD DataIndex; PSDUDTDATAITEM pUdtDataItem; char NameBuf[512]={0}; int NameBufLen=sizeof(NameBuf); CWispDIB*pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); TypeAddr.ItemData=0; if(pSDSModule==NULL) return; if(bIsData) { DataIndex=TypeIndex; pUdtDataItem=pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return; switch(pUdtDataItem->Access) { case CV_private: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+15); break; case CV_protected: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+14); break; case CV_public: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); break; } TypeIndex=pUdtDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL||pType->Type!=SD_POINTER) return; pPointerType = (PSDPOINTERTYPE)&pType[1]; if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); if(ReadWriteLen==pType->TypeSize &&ReadWriteLen) TSPrintf(ValueBuf,WSTR("0x%08x"),ValueUnion.uintvalue); else TStrCpy(ValueBuf,UndefineValue); pElementType = pSDSModule->GetTypeSymbol(pPointerType->TypeID); pSDSModule->GetSDSymbolName(pType,NameBuf,&NameBufLen); voidpointer = (TStrCmp(NameBuf,"void*")==0); if(pElementType->Type==SD_FUNCTIONTYPE) voidpointer=true; NameBuf[0]=0; pSDSModule->GetSDSymbolName(pType,NameBuf,&NameBufLen); if(DataMemberName) hItem = InsertItemA(DataMemberName,hItem,WISP_WLIS_NORMAL,pIcon); else hItem = InsertItemA(NameBuf,hItem,WISP_WLIS_NORMAL,pIcon); SetItemTextA(hItem,LIST_COLUMN_TYPE,NameBuf); TypeAddr.ValueUnion = ValueUnion; SetItemData(hItem,LIST_COLUMN_TYPE,TypeAddr.ItemData); TmpPtr = (DWORD*)&NumPtr; TmpPtr[0] = bIsData?DataIndex:TypeIndex; TmpPtr[1]=*(DWORD*)&pSDSModule; SetItemData(hItem,LIST_COLUMN_NAME,NumPtr); SetItemText(hItem,LIST_COLUMN_VALUE,ValueBuf); TmpPtr[0]=Address; TmpPtr[1]=Attribute& ITEM_ATTRIBUTE_TYPEDATA_MASK; TmpPtr[1]|=(bIsData?ITEM_ATTRIBUTE_DATA:ITEM_ATTRIBUTE_TYPE); SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x ")); TypeAddr.ItemData=0; SetItemData(hItem,LIST_COLUMN_TYPE,TypeAddr.ItemData); if(pElementType->Type==SD_BASIC && pElementType->TypeSize == 1) { TSPrintf(NameBuf,"0x%08x \"",ValueUnion.uintvalue); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(ValueUnion.uintvalue,&NameBuf[12],sizeof(NameBuf)-15); for(DWORD i = 0; i < ReadWriteLen;i++) { if(NameBuf[i+12]!=0)continue; NameBuf[i+12]='"';NameBuf[i+13]=0; SetItemTextA(hItem,LIST_COLUMN_VALUE,NameBuf); break; } } if(voidpointer==false) { hItem = InsertItem(WSTR(".."),hItem); TmpPtr[1]|=ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hItem,LIST_COLUMN_VALUE,NumPtr); } SetItemTextA(hItem,LIST_COLUMN_TYPE,NameBuf); TmpPtr[0]=TypeIndex; TmpPtr[1]=0; SetItemData(hItem,LIST_COLUMN_TYPE,NumPtr); } void CTypeViewerWnd::WatchType(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName) { NUM_PTR NumPtr; DWORD *TmpPtr=(DWORD*)&NumPtr; PSDTYPE_INFILE pType; bool bInsertItem=true; if(pSDSModule==NULL) return; pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; if(hItem==NULL) { RemoveItem(m_hLastItem); m_hLastItem=NULL; } switch(pType->Type) { case SD_STRUCT: case SD_UNION: case SD_CLASS: AddUdtTypeWatch(pSDSModule,TypeIndex,Address,Attribute,hItem,DataMemberName); break; case SD_BASIC: AddBasicTypeWatch(pSDSModule,TypeIndex,Address,Attribute,hItem,DataMemberName); break; case SD_POINTER: AddPointerTypeWatch(pSDSModule,TypeIndex,Address,Attribute,hItem,DataMemberName); break; case SD_ARRAY: AddArrayTypeWatch(pSDSModule,TypeIndex,Address,Attribute,hItem,DataMemberName); break; case SD_ENUMERATION: AddEnumerationTypeWatch(pSDSModule,TypeIndex,Address,Attribute,hItem,DataMemberName); break; } } void CTypeViewerWnd::AddBaseClassTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName,bool bIsData) { char Buf[256]; char* pStr=Buf; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; DWORD Len,DataIndex; WATCH_DATA WatchData; TYPE_VALUE_ATTR ValueAttr; DWORD OldAttribute=Attribute; CWispDIB*pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); if(bIsData) { DataIndex=TypeIndex; pUdtDataItem = pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return; switch(pUdtDataItem->Access) { case CV_private: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+15); break; case CV_protected: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+14); break; case CV_public: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); break; } TypeIndex = pUdtDataItem->TypeId; if(DataMemberName==NULL) DataMemberName=pUdtDataItem->uName.Name; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; if(pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT&&pType->Type!=SD_CLASS) return; Len = TStrLen(pType->uName.Name)+9; if(Len > sizeof(Buf)/sizeof(Buf[0])) pStr=new char[Len]; pStr[0]=0; switch(pType->Type) { case SD_CLASS: TSPrintf(pStr,"class %s",pType->uName.Name); break; case SD_STRUCT: TSPrintf(pStr,"struct %s",pType->uName.Name); break; case SD_UNION: TSPrintf(pStr,"union %s",pType->uName.Name); break; } hItem = InsertItemA(pType->uName.Name,hItem); SetItemTextA(hItem,LIST_COLUMN_TYPE,pType->uName.Name); if(DataMemberName) SetItemTextA(hItem,LIST_COLUMN_NAME,DataMemberName); WatchData.Name.Attr.pSDSModule = pSDSModule; WatchData.Name.Attr.TypeIndex = bIsData ? DataIndex:TypeIndex; SetItemData(hItem,LIST_COLUMN_NAME,WatchData.Name.ItemData); SetItemText(hItem,LIST_COLUMN_VALUE,WSTR("{...}")); WatchData.Type.ItemData=0; SetItemData(hItem,LIST_COLUMN_TYPE,WatchData.Type.ItemData); WatchData.Value.Attr.Address = Address; Attribute = Attribute & ITEM_ATTRIBUTE_TYPEDATA_MASK; Attribute |= bIsData ? ITEM_ATTRIBUTE_DATA : ITEM_ATTRIBUTE_TYPE; WatchData.Value.Attr.Attribute=Attribute; SetItemData(hItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x")); hItem = InsertItem(WSTR(".."),hItem); ValueAttr.Attr.Address=0; ValueAttr.Attr.Attribute = OldAttribute | ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); if(pStr!=Buf) delete pStr; } void CTypeViewerWnd::AddUdtTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName,bool bIsData) { char Buf[256]; char* pStr=Buf; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; DWORD Len,DataIndex; WATCH_DATA WatchData; TYPE_VALUE_ATTR ValueAttr; DWORD OldAttribute=Attribute; CWispDIB*pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); if(bIsData) { DataIndex=TypeIndex; pUdtDataItem = pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return; switch(pUdtDataItem->Access) { case CV_private: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+15); break; case CV_protected: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+14); break; case CV_public: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); break; } TypeIndex = pUdtDataItem->TypeId; if(DataMemberName==NULL) DataMemberName=pUdtDataItem->uName.Name; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; if(pType->Type!=SD_CLASS&&pType->Type!=SD_STRUCT&&pType->Type!=SD_CLASS) return; Len = TStrLen(pType->uName.Name)+9; if(Len > sizeof(Buf)/sizeof(Buf[0])) pStr=new char[Len]; pStr[0]=0; switch(pType->Type) { case SD_CLASS: TSPrintf(pStr,"class %s",pType->uName.Name); break; case SD_STRUCT: TSPrintf(pStr,"struct %s",pType->uName.Name); break; case SD_UNION: TSPrintf(pStr,"union %s",pType->uName.Name); break; } hItem = InsertItemA(pType->uName.Name,hItem); SetItemTextA(hItem,LIST_COLUMN_TYPE,pType->uName.Name); if(DataMemberName) SetItemTextA(hItem,LIST_COLUMN_NAME,DataMemberName); WatchData.Name.Attr.pSDSModule = pSDSModule; WatchData.Name.Attr.TypeIndex = bIsData ? DataIndex:TypeIndex; SetItemData(hItem,LIST_COLUMN_NAME,WatchData.Name.ItemData); SetItemText(hItem,LIST_COLUMN_VALUE,WSTR("{...}")); WatchData.Type.ItemData=0; SetItemData(hItem,LIST_COLUMN_TYPE,WatchData.Type.ItemData); WatchData.Value.Attr.Address = Address; Attribute = Attribute & ITEM_ATTRIBUTE_TYPEDATA_MASK; Attribute |= bIsData ? ITEM_ATTRIBUTE_DATA : ITEM_ATTRIBUTE_TYPE; WatchData.Value.Attr.Attribute=Attribute; SetItemData(hItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x")); hItem = InsertItem(WSTR(".."),hItem); ValueAttr.Attr.Address=0; ValueAttr.Attr.Attribute = OldAttribute | ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); if(pStr!=Buf) delete pStr; } void CTypeViewerWnd::RemoveTypeAttachByAddress(DWORD Address) { } void CTypeViewerWnd::ModifyTypeAttachAddress(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address) { } bool CTypeViewerWnd::ChangeValue(HANDLE hItem) { VALUEUNION ValueUnion; PVALUEUNION pValue; WCHAR UndefineValue[]=WSTR("????????"); CSDSModule* pSDSModule; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; PSDREFERENCETYPE pReferenceType; DWORD BaseTypeID,ReadWriteLen,TypeIndex; NUM_PTR NumPtr; WATCH_DATA WatchData; DWORD Attribute; DWORD Address,i; bool bOK=false; DWORD *TmpPtr=(DWORD*)&NumPtr; WCHAR* szText; memset(&WatchData,0,sizeof(WatchData)); if(GetItemDataAll(hItem,&WatchData)==false) return false; TypeIndex = WatchData.Name.Attr.TypeIndex; pSDSModule = WatchData.Name.Attr.pSDSModule; Attribute = WatchData.Value.Attr.Attribute; Address = WatchData.Value.Attr.Address; if(pSDSModule==NULL || Attribute&ITEM_ATTRIBUTE_UNINITIALIZE) return false; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem=pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return false; TypeIndex=pUdtDataItem->TypeId; } szText=GetItemText(hItem,LIST_COLUMN_VALUE); pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; memset(&ValueUnion,0,sizeof(ValueUnion)); if(pType->Type==SD_BASIC) { local_001: BaseTypeID = GetBaseTypeIdByName(pType->uName.Name); ReadWriteLen=0; switch(BaseTypeID) { case btBool: case btInt1: case btInt2: case btInt4: case btLong: case btInt8: if(Attribute&ITEM_ATTRIBUTE_HEX) bOK = SHexStrToNum(szText,&ValueUnion.int64value); else bOK = SDecStrToNum(szText,&ValueUnion.int64value); break; case btUint1: case btUint2: case btUint4: case btULong: case btUint8: if(Attribute&ITEM_ATTRIBUTE_HEX) bOK = SHexStrToNum(szText,&ValueUnion.uint64value); else bOK = SDecStrToNum(szText,&ValueUnion.uint64value); break; } pValue=bOK?&ValueUnion:NULL; if(bOK) { ModifyDataValue(Address,pSDSModule,TypeIndex,ValueUnion); } } else if(pType->Type==SD_POINTER) { for(i=0; szText[i];i++) { if(szText[i]=='x' || szText[i]=='X') { i++; szText+=i; break; } } bOK = SHexStrToNum(szText,&ValueUnion.uint64value); if(bOK) ModifyDataValue(Address,pSDSModule,TypeIndex,ValueUnion); } else if(pType->Type==SD_REFERENCE) { PSDTYPE_INFILE pSubType; DWORD dwAddress ; pReferenceType = (PSDREFERENCETYPE)&pType[1]; pSubType = pSDSModule->GetTypeSymbol(pReferenceType->TypeID); if(pSubType) { if(pSubType->Type==SD_BASIC) { ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&dwAddress,4); if(ReadWriteLen==4) { Address = dwAddress; TypeIndex = pReferenceType->TypeID; pType=pSubType; goto local_001; } } } } return bOK; } bool CTypeViewerWnd::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { HANDLE hFirstItem; if(hItem==m_hLastItem) { if(String.Length()) { #ifdef CODE_OS_NT_DRV unsigned char Buf[] = { 0x0F, 0x34, 0x28, 0x3F, 0x3D, 0x33, 0x29, 0x2E, 0x3F, 0x28, 0x7A, 0x2C, 0x3F, 0x28, 0x29, 0x33, 0x35, 0x34, 0x7A, 0x36, 0x33, 0x37, 0x33, 0x2E, 0x3F, 0x3E, 0x00 } ; unsigned char Buf1[] = { 0x09, 0x2E, 0x2F, 0x3E, 0x3F, 0x34, 0x2E, 0x7A, 0x2C, 0x3F, 0x28, 0x29, 0x33, 0x35, 0x34, 0x7A, 0x36, 0x33, 0x37, 0x33, 0x2E, 0x3F, 0x3E, 0x00 } ; unsigned char Buf2[] = { 0x0D, 0x3B, 0x28, 0x34, 0x33, 0x34, 0x3D, 0x00 } ; WCHAR DisplayBuf[100]; WCHAR DisplayBuf1[100]; WCHAR DisplayBuf2[100]; int i; for(i=0;Buf[i];i++) { Buf[i]^=0x5a; DisplayBuf[i]=Buf[i]; } DisplayBuf2[i]=0; for(i=0;Buf1[i];i++) { Buf[i]^=0x5a; DisplayBuf1[i]=Buf1[i]; } DisplayBuf2[i]=0; for(i=0;Buf2[i];i++) { Buf[i]^=0x5a; DisplayBuf2[i]=Buf2[i]; } DisplayBuf2[i]=0; if(gpSyser->m_SysInfo.m_bSNPass==false && GetItemCount(NULL,false)>1) { m_pWispBase->MsgBox(DisplayBuf,DisplayBuf2,WISP_MB_OK); return false; } // if(gpSyser->m_SysInfo.m_bSNPass && gpSyser->m_SysInfo.m_SNType==SN_STUDENT && GetItemCount(NULL,false)>3) // { // m_pWispBase->MsgBox(DisplayBuf1,DisplayBuf2,WISP_MB_OK); // return false; // } #endif #ifndef __DEMO__VERSION__ AddWatchByName((WCHAR*)String); #endif return true; } return false; } if(String.Length()==0) { hFirstItem = GetItem(0); if(GetParentItem(hItem)!=GetParentItem(hFirstItem)) return false; RemoveItem(hItem); return false; } return true; } void CTypeViewerWnd::ItemChangedNotify(HANDLE hItem,int Col,CWispString&String) { if(hItem!=m_hLastItem) { ChangeValue(hItem); UpdateContext(); } } void CTypeViewerWnd::ItemExpandedNotify(HANDLE hItem) { HANDLE hSubItem; CSDSModule* pSDSModule; DWORD Address,Attribute,TypeIndex; WCHAR* SubName; TYPE_NAME_ATTR NameAttr; TYPE_VALUE_ATTR ValueAttr; NameAttr.ItemData = GetItemData(hItem,LIST_COLUMN_NAME); TypeIndex = NameAttr.Attr.TypeIndex; pSDSModule = NameAttr.Attr.pSDSModule; ValueAttr.ItemData=GetItemData(hItem,LIST_COLUMN_VALUE); Address = ValueAttr.Attr.Address; Attribute = ValueAttr.Attr.Attribute; hSubItem = GetItem(0,hItem); SubName = GetItemText(hSubItem,LIST_COLUMN_NAME); if(TStrCmp(SubName,"..")==0) { ClearChildItem(hItem); ExpandType(hItem); ExpandItem(hItem); } } bool CTypeViewerWnd::OnViewerCmd(IN WISP_MSG* pMsg) { HANDLE hItem,hSubItem; CSDSModule* pSDSModule; DWORD Address,Attribute,TypeIndex; WCHAR* SubName; NUM_PTR NumPtr; DWORD *TmpPtr=(DWORD*)&NumPtr; hItem=(HANDLE)pMsg->Command.Param2; switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_CHANGED: { CODE_ASSERT(hItem!=NULL) ChangeValue(hItem); UpdateContext(); } break; case WISP_CMD_ITEM_SELECTED: break; case WISP_CMD_ITEM_EXPANDED: hItem=(HANDLE)pMsg->Command.Param2; NumPtr = GetItemData(hItem,LIST_COLUMN_NAME); TypeIndex = TmpPtr[0]; pSDSModule = *(CSDSModule**)&TmpPtr[1]; NumPtr=GetItemData(hItem,LIST_COLUMN_VALUE); Address = TmpPtr[0]; Attribute = TmpPtr[1]; hSubItem = GetItem(0,hItem); SubName = GetItemText(hSubItem,LIST_COLUMN_NAME); if(TStrCmp(SubName,"..")==0) { ClearChildItem(hItem); ExpandType(hItem); } break; } return true; } bool CTypeViewerWnd::ModifyDataValue(DWORD Address,CSDSModule* pSDSModule,DWORD TypeIndex,VALUEUNION ValueUnion) { PSDTYPE_INFILE pType; DWORD ReadWriteLen=0; if(pSDSModule==NULL || TypeIndex==0) return false;; pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return false; if(pType->Type==SD_BASIC||pType->Type==SD_POINTER) { if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->WriteMemory(Address,&ValueUnion,pType->TypeSize); } return ReadWriteLen==pType->TypeSize; } WCHAR* CTypeViewerWnd::GetTypeValue(DWORD Address,CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Attribute,WCHAR* ValueBuf,DWORD BufLen,PVALUEUNION pDefValue) { WCHAR UndefineValue[]=WSTR("????????"); VALUEUNION ValueUnion; ULONGLONG BitMask=1; PSDTYPE_INFILE pType; DWORD BaseTypeID,ReadWriteLen; ValueBuf[0]=0; if(pSDSModule==NULL) return ValueBuf; pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return ValueBuf; if(pType->Type==SD_POINTER) { if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); if(ReadWriteLen==pType->TypeSize&&ReadWriteLen) { TSPrintf(ValueBuf,WSTR("0x%08x"),ValueUnion.uintvalue); } } if(pType->Type==SD_BASIC) { BaseTypeID = GetBaseTypeIdByName(pType->uName.Name); ReadWriteLen=0; if(pDefValue) { ValueUnion=*pDefValue; ReadWriteLen=pType->TypeSize; } else { if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); } if(ReadWriteLen==pType->TypeSize&&ReadWriteLen) { switch(BaseTypeID) { case btChar: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.charvalue); } else { TSPrintf(ValueBuf,WSTR("%c"),ValueUnion.charvalue); } break; case btBool: if(ValueUnion.boolvalue) TStrCpy(ValueBuf,"true"); else TStrCpy(ValueBuf,"false"); break; case btInt1: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.charvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),ValueUnion.charvalue); } break; case btInt2: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.shortvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),ValueUnion.shortvalue); } break; case btInt4: case btLong: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.intvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),ValueUnion.intvalue); } break; case btInt8: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%I64x"),ValueUnion.int64value); } else { TSPrintf(ValueBuf,WSTR("%I64d"),ValueUnion.int64value); } break; case btUint1: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.ucharvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),ValueUnion.ucharvalue); } break; case btUint2: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.ushortvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),ValueUnion.ushortvalue); } break; case btUint4: case btULong: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.uintvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),ValueUnion.uintvalue); } break; case btUint8: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%I64x"),ValueUnion.uint64value); } else { TSPrintf(ValueBuf,WSTR("%I64u"),ValueUnion.uint64value); } break; case btFloat: case btDouble: default: TStrCpy(ValueBuf,UndefineValue); } } else { TStrCpy(ValueBuf,UndefineValue); } } return ValueBuf; } WCHAR* CTypeViewerWnd::GetDataValue(DWORD Address,CSDSModule* pSDSModule,DWORD DataIndex,DWORD Attribute,WCHAR* ValueBuf,DWORD BufLen,PVALUEUNION pDefValue) { WCHAR UndefineValue[]=WSTR("????????"); VALUEUNION ValueUnion; ULONGLONG BitMask=1; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; DWORD BaseTypeID,ReadWriteLen; DWORD MaxBitCount; ValueBuf[0]=0; if(pSDSModule==NULL) return ValueBuf; pUdtDataItem=pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return ValueBuf; pType = pSDSModule->GetTypeSymbol(pUdtDataItem->TypeId); if(pType==NULL) return ValueBuf; if(pType->Type==SD_BASIC) { BaseTypeID = GetBaseTypeIdByName(pType->uName.Name); ReadWriteLen=0; if(pDefValue) { ValueUnion=*pDefValue; ReadWriteLen=pType->TypeSize; } else { if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); } if(ReadWriteLen==pType->TypeSize&&ReadWriteLen) { if(pUdtDataItem->Location==LocIsBitField) { MaxBitCount = (pType->TypeSize*8); ValueUnion.uint64value>>=pUdtDataItem->u.LOCISBITFIELD.Position; for(DWORD i = 1; i < pUdtDataItem->u.LOCISBITFIELD.Size;i++) { BitMask<<=1; BitMask|=1; } ValueUnion.uint64value&=BitMask; } switch(BaseTypeID) { case btChar: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.charvalue); } else { TSPrintf(ValueBuf,WSTR("%c"),ValueUnion.charvalue); } break; case btBool: if(ValueUnion.boolvalue) TStrCpy(ValueBuf,"true"); else TStrCpy(ValueBuf,"false"); break; case btInt1: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.charvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),ValueUnion.charvalue); } break; case btInt2: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.shortvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),ValueUnion.shortvalue); } break; case btInt4: case btLong: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.intvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),ValueUnion.intvalue); } break; case btInt8: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%I64x"),ValueUnion.int64value); } else { TSPrintf(ValueBuf,WSTR("%I64d"),ValueUnion.int64value); } break; case btUint1: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.ucharvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),ValueUnion.ucharvalue); } break; case btUint2: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.ushortvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),ValueUnion.ushortvalue); } break; case btUint4: case btULong: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),ValueUnion.uintvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),ValueUnion.uintvalue); } break; case btUint8: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%I64x"),ValueUnion.uint64value); } else { TSPrintf(ValueBuf,WSTR("%I64u"),ValueUnion.uint64value); } break; case btFloat: case btDouble: default: TStrCpy(ValueBuf,UndefineValue); } } else { TStrCpy(ValueBuf,UndefineValue); } } return ValueBuf; } void CTypeViewerWnd::ExpandUDTType(HANDLE hItem,PWATCH_DATA pWatchData) { PSDTYPE_INFILE pBaseClassType; PSDUDTBASECLASS pUdtBaseClassType; DWORD *pBaseClassIndex; DWORD Attribute; DWORD TypeIndex; DWORD Address; TYPE_NAME_ATTR NameAttr; TYPE_VALUE_ATTR ValueAttr; TYPE_TYPE_ATTR TypeAttr; TYPE_ADDRESS_ATTR AddressAttr; CSDSModule* pSDSModule; PSDTYPE_INFILE pType; PSDTYPE_INFILE pDataType; PSDUDTTYPE pUdtType; PSDUDTDATAITEM pUdtDataItem; NUM_PTR NumPtr; bool bBitFirst=false; DWORD *pDataIndex,MemberAddress,i,BitFieldBaseTypeId=0,BitFieldCount=0,PrevMemberEndAddr,*TmpPtr=(DWORD*)&NumPtr; if(hItem==NULL) return; NameAttr = pWatchData->Name; ValueAttr = pWatchData->Value; TypeAttr = pWatchData->Type; AddressAttr = pWatchData->Address; Attribute = ValueAttr.Attr.Attribute; pSDSModule = NameAttr.Attr.pSDSModule; TypeIndex = NameAttr.Attr.TypeIndex; Address = ValueAttr.Attr.Address; PrevMemberEndAddr=Address; if(pSDSModule==NULL) return; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem=pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; } pType=pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; pUdtType =(PSDUDTTYPE)&pType[1]; if(pUdtType->BaseClassCounter==0 && pUdtType->HasVirtualTable) { ExpendVirtualFunctionTable(hItem,pWatchData); } pBaseClassIndex = pUdtType->pBaseClass.pBaseClassMember; for(i = 0; i < pUdtType->BaseClassCounter;i++) { pBaseClassType = pSDSModule->GetTypeSymbol(pBaseClassIndex[i]); pUdtBaseClassType = (PSDUDTBASECLASS)&pBaseClassType[1]; MemberAddress = Address+pUdtBaseClassType->Offset; AddUdtTypeWatch(pSDSModule,pUdtBaseClassType->TypeID,MemberAddress,Attribute,hItem,NULL,false); } pDataIndex = pUdtType->pData.pDataMember; for(i = 0; i < pUdtType->DataCounter; i++) { pUdtDataItem = pSDSModule->GetDataSymbol(pDataIndex[i]); pDataType = pSDSModule->GetTypeSymbol(pUdtDataItem->TypeId); switch(pUdtDataItem->Location) { case LocIsThisRel: MemberAddress = Address+pUdtDataItem->u.LOCISTHISREL.Offset; bBitFirst=false; PrevMemberEndAddr=MemberAddress+pDataType->TypeSize; break; case LocIsStatic: { MemberAddress = pSDSModule->m_pCurDbgModule->m_ModuleBase;; MemberAddress += pUdtDataItem->u.LOCISSTATIC.Rva; bBitFirst=false; } break; case LocIsBitField: if(bBitFirst==false) { bBitFirst=true; BitFieldBaseTypeId=pDataType->Id; MemberAddress = PrevMemberEndAddr; BitFieldCount=pUdtDataItem->u.LOCISBITFIELD.Position+pUdtDataItem->u.LOCISBITFIELD.Size; PrevMemberEndAddr+=pDataType->TypeSize; } else { if(BitFieldBaseTypeId!=pDataType->Id||pUdtDataItem->u.LOCISBITFIELD.PositionId; PrevMemberEndAddr+=pDataType->TypeSize; BitFieldCount=pUdtDataItem->u.LOCISBITFIELD.Position+pUdtDataItem->u.LOCISBITFIELD.Size; } else { BitFieldCount+=pUdtDataItem->u.LOCISBITFIELD.Size; } } break; default: bBitFirst=false; } if(pDataType->Type==SD_BASIC) { Attribute|=ITEM_ATTRIBUTE_DATA; Attribute&=(~ITEM_ATTRIBUTE_TYPE); AddBasicTypeWatch(pSDSModule,pUdtDataItem->DataId,MemberAddress,Attribute,hItem,pUdtDataItem->uName.Name,true); } else { switch(pDataType->Type) { case SD_CLASS: case SD_STRUCT: case SD_UNION: AddUdtTypeWatch(pSDSModule,pUdtDataItem->DataId,MemberAddress,Attribute,hItem,pUdtDataItem->uName.Name,true); break; case SD_POINTER: AddPointerTypeWatch(pSDSModule,pUdtDataItem->DataId,MemberAddress,Attribute,hItem,pUdtDataItem->uName.Name,true); break; case SD_REFERENCE: AddPointerTypeWatch(pSDSModule,pUdtDataItem->DataId,MemberAddress,Attribute,hItem,pUdtDataItem->uName.Name,true); break; case SD_ENUMERATION: AddEnumerationTypeWatch(pSDSModule,pUdtDataItem->DataId,MemberAddress,Attribute,hItem,pUdtDataItem->uName.Name,true); break; case SD_ARRAY: AddArrayTypeWatch(pSDSModule,pUdtDataItem->DataId,MemberAddress,Attribute,hItem,pUdtDataItem->uName.Name,true); break; } } } } void CTypeViewerWnd::UnloadSDSModule(CSDSModule*pSDSModule) { HANDLE hItem; WATCH_DATA WatchData; TList DeleteList; TList::IT BeginIT,EndIT; hItem = GetNextItem(); for(;hItem!=m_hLastItem;hItem=GetNextItem(hItem)) { if(GetItemDataAll(hItem,&WatchData)==false) continue; if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_UNINITIALIZE) continue; if(pSDSModule == WatchData.Name.Attr.pSDSModule) DeleteList.Append(hItem); } BeginIT=DeleteList.Begin(); EndIT=DeleteList.End(); for(;BeginIT!=EndIT;BeginIT++) RemoveItem(*BeginIT); } void CTypeViewerWnd::ExpandReferenceType(HANDLE hItem) { VALUEUNION ValueUnion; DWORD ReadWriteLen,MemberAddress; PSDREFERENCETYPE pReferenceType; DWORD Attribute; DWORD TypeIndex; DWORD Address; bool bOK; WATCH_DATA WatchData; CSDSModule* pSDSModule; PSDTYPE_INFILE pType; if(hItem==NULL) return; memset(&WatchData,0,sizeof(VALUEUNION)); bOK = GetItemDataAll(hItem,&WatchData); if(bOK==false) return; Attribute = WatchData.Value.Attr.Attribute; pSDSModule = WatchData.Name.Attr.pSDSModule; TypeIndex = WatchData.Name.Attr.TypeIndex; Address = WatchData.Value.Attr.Address; if(pSDSModule==NULL) return; if(Attribute&ITEM_ATTRIBUTE_DATA) pType = GetTypeByDataIndex(pSDSModule,TypeIndex); else pType=pSDSModule->GetTypeSymbol(TypeIndex); memset(&ValueUnion,0,sizeof(VALUEUNION)); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,4); MemberAddress=ValueUnion.uintvalue; pReferenceType=(PSDREFERENCETYPE)&pType[1]; WatchData.Value.Attr.Address=MemberAddress; WatchData.Name.Attr.TypeIndex = pType->Id; WatchData.Value.Attr.Attribute &= ITEM_ATTRIBUTE_TYPEDATA_MASK; WatchData.Value.Attr.Attribute |= ITEM_ATTRIBUTE_TYPE; if(pType) { switch(pType->Type) { case SD_CLASS: case SD_UNION: case SD_STRUCT: ExpandUDTType(hItem,&WatchData); break; case SD_BASIC: AddBasicTypeWatch(pSDSModule,WatchData.Name.Attr.TypeIndex,MemberAddress,WatchData.Value.Attr.Attribute,hItem,""); break; } } } void CTypeViewerWnd::ExpandPointerType(HANDLE hItem,bool bIsData) { VALUEUNION ValueUnion; DWORD ReadWriteLen,MemberAddress; PSDPOINTERTYPE pSDPointerType; PSDUDTDATAITEM pUdtDataItem; DWORD Attribute; DWORD TypeIndex; DWORD Address; bool bOK; WATCH_DATA WatchData; CSDSModule* pSDSModule; PSDTYPE_INFILE pType,pSubType; if(hItem==NULL) return; memset(&WatchData,0,sizeof(VALUEUNION)); bOK = GetItemDataAll(hItem,&WatchData); if(bOK==false) return; Attribute = WatchData.Value.Attr.Attribute; pSDSModule = WatchData.Name.Attr.pSDSModule; TypeIndex = WatchData.Name.Attr.TypeIndex; Address = WatchData.Value.Attr.Address; if(pSDSModule==NULL||TypeIndex==0) return; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem = pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; } pType=pSDSModule->GetTypeSymbol(TypeIndex); memset(&ValueUnion,0,sizeof(VALUEUNION)); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,&ValueUnion,pType->TypeSize); MemberAddress=ValueUnion.uintvalue; pSDPointerType=(PSDPOINTERTYPE)&pType[1]; if(pSDPointerType->PointerDepth>1) { WatchType(pSDSModule,pSDPointerType->NextPointer,MemberAddress,Attribute,hItem,""); } else { WatchData.Value.Attr.Address=MemberAddress; WatchData.Name.Attr.TypeIndex = pSDPointerType->TypeID; WatchData.Value.Attr.Attribute &= ITEM_ATTRIBUTE_TYPEDATA_MASK; WatchData.Value.Attr.Attribute |= ITEM_ATTRIBUTE_TYPE; pSubType = pSDSModule->GetTypeSymbol(pSDPointerType->TypeID); if(pSubType) { switch(pSubType->Type) { case SD_CLASS: case SD_UNION: case SD_STRUCT: ExpandUDTType(hItem,&WatchData); break; case SD_BASIC: AddBasicTypeWatch(pSDSModule,WatchData.Name.Attr.TypeIndex,MemberAddress,WatchData.Value.Attr.Attribute,hItem,""); break; } } } } void CTypeViewerWnd::AddBasicTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName,bool bIsData) { NUM_PTR NumPtr; DWORD *TmpPtr=(DWORD*)&NumPtr,DataIndex; WCHAR ValueBuf[30]=WSTR("????????"); HANDLE pCurItem; PSDUDTDATAITEM pUdtDataItem; PSDTYPE_INFILE pType; WATCH_DATA WatchData; VALUEUNION ValueUnion; CWispDIB*pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); if(pSDSModule==NULL) return; if(bIsData) { DataIndex = TypeIndex; pUdtDataItem = pSDSModule->GetDataSymbol(DataIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; if(DataMemberName==NULL) DataMemberName=pUdtDataItem->uName.Name; switch(pUdtDataItem->Access) { case CV_private: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+15); break; case CV_protected: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+14); break; case CV_public: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); break; } } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; memset(&WatchData,0,sizeof(WatchData)); Attribute &= ITEM_ATTRIBUTE_TYPEDATA_MASK; Attribute|= bIsData?ITEM_ATTRIBUTE_DATA:ITEM_ATTRIBUTE_TYPE; pCurItem = InsertItemA(DataMemberName,hItem,WISP_WLIS_NORMAL,pIcon); WatchData.Name.Attr.TypeIndex = bIsData?DataIndex:TypeIndex; WatchData.Name.Attr.pSDSModule = pSDSModule; SetItemData(pCurItem,LIST_COLUMN_NAME,WatchData.Name.ItemData); WatchData.Value.Attr.Address=Address; WatchData.Value.Attr.Attribute=Attribute; SetItemData(pCurItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); SetItemTextA(pCurItem,LIST_COLUMN_TYPE,pType->uName.Name); SetItemNum(pCurItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x")); GetBasicTypeValue(pSDSModule,pType,Address,Attribute,ValueBuf,&ValueUnion); WatchData.Type.ValueUnion = ValueUnion; SetItemData(pCurItem,LIST_COLUMN_TYPE,WatchData.Type.ItemData); SetItemText(pCurItem,LIST_COLUMN_VALUE,ValueBuf); } bool CTypeViewerWnd::GetBasicTypeValue(CSDSModule* pSDSModule,PSDTYPE_INFILE pType,DWORD Address,DWORD Attribute,WCHAR* ValueBuf,PVALUEUNION pValueUnion) { WCHAR UndefineValue[]=WSTR("????????"); DWORD BaseTypeID,ReadWriteLen; ValueBuf[0]=0; if(pSDSModule==NULL||pType==NULL) return false; if(pType->Type!=SD_BASIC) return false; memset(pValueUnion,0,sizeof(VALUEUNION)); BaseTypeID = GetBaseTypeIdByName(pType->uName.Name); ReadWriteLen=0; if(pType->TypeSize > 0 && pType->TypeSize <= sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(Address,pValueUnion,pType->TypeSize); if(ReadWriteLen==pType->TypeSize&&ReadWriteLen) { switch(BaseTypeID) { case btInt1: case btChar: if(Attribute&ITEM_ATTRIBUTE_HEX) { if(pValueUnion->charvalue<0 || pValueUnion->charvalue==0) TSPrintf(ValueBuf,WSTR("0x%02x"),pValueUnion->charvalue); else TSPrintf(ValueBuf,WSTR("0x%02x '%c'"),pValueUnion->charvalue,pValueUnion->charvalue); } else { if(pValueUnion->charvalue<0||pValueUnion->charvalue==0) TSPrintf(ValueBuf,WSTR("%d"),pValueUnion->charvalue); else TSPrintf(ValueBuf,WSTR("%d '%c'"),pValueUnion->charvalue,pValueUnion->charvalue); } break; case btBool: if(pValueUnion->boolvalue) TStrCpy(ValueBuf,"true"); else TStrCpy(ValueBuf,"false"); break; case btInt2: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),pValueUnion->ushortvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),pValueUnion->shortvalue); } break; case btInt4: case btLong: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),pValueUnion->intvalue); } else { TSPrintf(ValueBuf,WSTR("%d"),pValueUnion->intvalue); } break; case btInt8: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%I64x"),pValueUnion->int64value); } else { TSPrintf(ValueBuf,WSTR("%I64d"),pValueUnion->int64value); } break; case btUint1: if(Attribute&ITEM_ATTRIBUTE_HEX) { if(pValueUnion->ucharvalue>0x80||pValueUnion->ucharvalue==0) TSPrintf(ValueBuf,WSTR("0x%02x"),pValueUnion->ucharvalue); else TSPrintf(ValueBuf,WSTR("0x%0x '%c'"),pValueUnion->ucharvalue,pValueUnion->ucharvalue); } else { if(pValueUnion->ucharvalue>0x80||pValueUnion->ucharvalue==0) TSPrintf(ValueBuf,WSTR("%d"),pValueUnion->ucharvalue); else TSPrintf(ValueBuf,WSTR("%d '%c'"),pValueUnion->ucharvalue,pValueUnion->ucharvalue); } break; case btUint2: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%x"),pValueUnion->ushortvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),pValueUnion->ushortvalue); } break; case btUint4: case btULong: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%08x"),pValueUnion->uintvalue); } else { TSPrintf(ValueBuf,WSTR("%u"),pValueUnion->uintvalue); } break; case btUint8: if(Attribute&ITEM_ATTRIBUTE_HEX) { TSPrintf(ValueBuf,WSTR("0x%I64x"),pValueUnion->uint64value); } else { TSPrintf(ValueBuf,WSTR("%I64u"),pValueUnion->uint64value); } break; case btFloat: case btDouble: default: TStrCpy(ValueBuf,UndefineValue); } } else { TStrCpy(ValueBuf,UndefineValue); } return true; } void CTypeViewerWnd::ExpandType(HANDLE hItem,bool bIsData) { DWORD TypeIndex; bool bOK; CSDSModule* pSDSModule; PSDTYPE_INFILE pType; PSDUDTDATAITEM pUdtDataItem; WATCH_DATA WatchData; if(hItem==NULL) return; bOK = GetItemDataAll(hItem,&WatchData); if(bOK==false) return; if(WatchData.Value.Attr.Attribute & ITEM_ATTRIBUTE_UNINITIALIZE) return; if(WatchData.Name.Attr.pSDSModule==NULL) return; TypeIndex = WatchData.Name.Attr.TypeIndex; pSDSModule = WatchData.Name.Attr.pSDSModule; if(pSDSModule==NULL) return; if(WatchData.Value.Attr.Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem = pSDSModule->GetDataSymbol(TypeIndex); if(pUdtDataItem==NULL) return; TypeIndex=pUdtDataItem->TypeId; } pType=pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; switch(pType->Type) { case SD_POINTER: ExpandPointerType(hItem,bIsData); break; case SD_ARRAY: ExpandArrayType(hItem,bIsData); break; case SD_REFERENCE: ExpandReferenceType(hItem); break; case SD_ENUMERATION: break; case SD_STRUCT: case SD_CLASS: case SD_UNION: ExpandUDTType(hItem,&WatchData); break; } } void CTypeViewerWnd::InsertExpandItem(HANDLE hItem) { DWORD Attribute; CSDSModule* pSDSModule; DWORD TypeIndex; WATCH_DATA WatchData; PSDUDTDATAITEM pUDTDataItem; PSDTYPE_INFILE pType; HANDLE hNextItem,hSubItem; if(hItem==NULL) return; hNextItem = GetNextItem(hItem); hSubItem = GetNextListItem(hItem); if(hSubItem!=hNextItem) return; if(GetItemDataAll(hItem,&WatchData)==false) return; Attribute = WatchData.Value.Attr.Attribute; pSDSModule=WatchData.Name.Attr.pSDSModule; TypeIndex = WatchData.Name.Attr.TypeIndex; if(pSDSModule==NULL||TypeIndex==0) return; if(Attribute&ITEM_ATTRIBUTE_DATA) { pUDTDataItem = pSDSModule->GetDataSymbol(TypeIndex); if(pUDTDataItem==NULL) return; TypeIndex=pUDTDataItem->TypeId; } pType = pSDSModule->GetTypeSymbol(TypeIndex); if(pType==NULL) return; if(pType->Type==SD_CLASS || pType->Type == SD_STRUCT || pType->Type == SD_UNION) { hSubItem = InsertItemA("..",hItem); memset(&WatchData,0,sizeof(WatchData)); WatchData.Value.Attr.Attribute = ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hSubItem,LIST_COLUMN_NAME,WatchData.Name.ItemData); SetItemData(hSubItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); return; } if(pType->Type==SD_POINTER||pType->Type==SD_REFERENCE) { } } void CTypeViewerWnd::UpdateContext() { HANDLE hItem; WISP_CHAR wName[512]; char Name[512]; TYPE_VALUE_ATTR ValueAttr; WATCH_DATA WatchData; CSDSModuleMap::IT BeginIT,EndIT; CSDSModule* pSDSModule; PSDUDTDATAITEM pUdtDataItem; DWORD VariableAddress; hItem = GetItem(0); for(;hItem!=m_hLastItem;hItem=GetNextItem(hItem))//ÿڵĵַ { if(GetItemText(hItem,LIST_COLUMN_NAME,wName,sizeof(wName)/sizeof(wName[0]))==0) { continue; } TStrCpy(Name,wName); if(GetVariableAddressByName(Name,&VariableAddress,&pUdtDataItem,&pSDSModule)==false)//ûзһûгʼ watch { ClearChildItem(hItem); ValueAttr.ItemData = GetItemData(hItem,LIST_COLUMN_VALUE); ValueAttr.Attr.Attribute |= ITEM_ATTRIBUTE_UNINITIALIZE; SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); TStrCpy(Name,"Error: symbol \""); TStrCat(Name,wName); TStrCat(Name,"\" not found"); //TSPrintf(wName,WSTR("Error: symbol \"%s\" not found"),Name); SetItemTextA(hItem,LIST_COLUMN_VALUE,Name); SetItemTextA(hItem,LIST_COLUMN_TYPE,""); continue; } if(GetItemDataAll(hItem,&WatchData)==false) continue; if(WatchData.Value.Attr.Attribute& ITEM_ATTRIBUTE_UNINITIALIZE) { AddWatchByName(wName,hItem); } else { if(WatchData.Value.Attr.Attribute & ITEM_ATTRIBUTE_DATA) { if(pUdtDataItem->DataId == WatchData.Name.Attr.TypeIndex) { if(VariableAddress!=WatchData.Value.Attr.Address) { WatchData.Value.Attr.Address=VariableAddress; SetItemData(hItem,LIST_COLUMN_VALUE,WatchData.Value.ItemData); } //InsertExpandItem(hItem); } else { ClearChildItem(hItem); AddWatchByName(wName,hItem); } } } } hItem = GetItem(0); for(;hItem!=m_hLastItem;hItem=GetNextItem(hItem))//ÿڵĵַ { UpdateItemContext(hItem,wName,sizeof(wName)/sizeof(wName[0]),0); } } void CTypeViewerWnd::ResetContext() { ClearChildItem(); InsertLastItem(); SelectItem(m_hLastItem); } bool CTypeViewerWnd::GetRegisterValue(DWORD RegisterIndex,DWORD* RegisterValue) { DWORD Index=0; switch(RegisterIndex) { case CV_REG_EAX: *RegisterValue=*X86_REG_PTR.pEAX; break; case CV_REG_ECX: *RegisterValue=*X86_REG_PTR.pECX; break; case CV_REG_EDX: *RegisterValue=*X86_REG_PTR.pEDX; break; case CV_REG_EBX: *RegisterValue=*X86_REG_PTR.pEBX; break; case CV_REG_ESP: *RegisterValue=*X86_REG_PTR.pESP; break; case CV_REG_EBP: *RegisterValue=*X86_REG_PTR.pEBP; break; case CV_REG_ESI: *RegisterValue=*X86_REG_PTR.pESI; break; case CV_REG_EDI: *RegisterValue=*X86_REG_PTR.pEDI; break; default: return false; } return true; } bool CTypeViewerWnd::GetItemDataAll(HANDLE hItem,TYPE_NAME_ATTR* pNameAttr,TYPE_VALUE_ATTR* pValueAttr,TYPE_TYPE_ATTR* pTypeAttr,TYPE_ADDRESS_ATTR* pAddressAttr) { if(hItem==NULL) return false; pNameAttr->ItemData=GetItemData(hItem,LIST_COLUMN_NAME); pValueAttr->ItemData=GetItemData(hItem,LIST_COLUMN_VALUE); pTypeAttr->ItemData=GetItemData(hItem,LIST_COLUMN_TYPE); pAddressAttr->ItemData=GetItemData(hItem,LIST_COLUMN_ADDRESS); return true; } bool CTypeViewerWnd::GetItemDataAll(HANDLE hItem,PWATCH_DATA pWatchData) { if(hItem==NULL) return false; pWatchData->Name.ItemData=GetItemData(hItem,LIST_COLUMN_NAME); pWatchData->Value.ItemData=GetItemData(hItem,LIST_COLUMN_VALUE); pWatchData->Type.ItemData=GetItemData(hItem,LIST_COLUMN_TYPE); pWatchData->Address.ItemData=GetItemData(hItem,LIST_COLUMN_ADDRESS); return true; } void CTypeViewerWnd::InsertLastItem() { m_hLastItem = InsertItem((WISP_PCSTR)NULL); SetItemData(m_hLastItem,LIST_COLUMN_NAME,0); SetItemData(m_hLastItem,LIST_COLUMN_VALUE,0); SetItemData(m_hLastItem,LIST_COLUMN_TYPE,0); SetItemData(m_hLastItem,LIST_COLUMN_ADDRESS,0); } void CTypeViewerWnd::AddWatchByName(char* Name,HANDLE hItem) { WCHAR Buf[256]; WCHAR *NameW=Buf; int Len; Len = TStrLen(Name)+1; if(Len>=sizeof(Buf)/sizeof(Buf[0])) NameW = new WCHAR[Len]; TStrCpy(NameW,Name); AddWatchByName(NameW,hItem); if(NameW!=Buf) delete []NameW; } void CTypeViewerWnd::AddWatchByName(WCHAR* Name,HANDLE hItem) { PSDUDTDATAITEM pDataItem; PSDFUNCTIONITEM pFunItem; char NameBuf[256]; char* pName=NameBuf; DWORD Address=0; TYPE_NAME_ATTR NameAttr; TYPE_VALUE_ATTR ValueAttr; TYPE_TYPE_ATTR TypeAttr; TYPE_ADDRESS_ATTR AddressAttr; CSDSModule* pSdsModule; WCHAR WarnInfo[]=WSTR("Tuvefou!wfstjpo!mjnjufe");//Unregister version limited WCHAR Warn[]=WSTR("Xbsojoh");//Warning #ifdef CODE_OS_NT_DRV // if((gpSyser->m_SysInfo.m_bSNPass==false || gpSyser->m_SysInfo.m_SNType==SN_STUDENT) && GetItemCount(NULL,false)>1) // { // int nn; // for(nn=0;WarnInfo[nn];nn++) // WarnInfo[nn]--; // for(nn=0;Warn[nn];nn++) // Warn[nn]--; // m_pWispBase->MsgBox(WarnInfo,Warn,WISP_MB_OK); // return ; // } #endif if(hItem==NULL) { hItem=m_hLastItem; InsertLastItem(); } AddressAttr.ItemData=0; NameAttr.Attr.TypeIndex=0; pSdsModule=NameAttr.Attr.pSDSModule=CUR_SOURCE_SDSMODULE; SetItemData(hItem,LIST_COLUMN_NAME,NameAttr.ItemData); SetItemText(hItem,LIST_COLUMN_NAME,Name); ValueAttr.Attr.Address=Address; ValueAttr.Attr.Attribute=ITEM_ATTRIBUTE_DATA|ITEM_ATTRIBUTE_UNINITIALIZE|ITEM_ATTRIBUTE_WATCH_NAME; SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); SetItemText(hItem,LIST_COLUMN_VALUE,WSTR("")); SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address); if(CUR_SOURCE_SDSMODULE==NULL) return; int Len = TStrLen(Name); if(Len>=sizeof(NameBuf)) { pName= new char[Len+1]; } TStrCpy(pName,Name); if(GetVariableAddressByName(pName,&Address,&pDataItem,&pSdsModule)==false) { if(GetFunctionAddressByName(pName,&Address,&pFunItem,&pSdsModule)==false) goto local_quit; CWispListItemCell* ListItemCell; NameAttr.Attr.TypeIndex=pFunItem->TypeID; NameAttr.Attr.pSDSModule=pSdsModule; PSDTYPE_INFILE pSubType=pSdsModule->GetTypeSymbol(pFunItem->TypeID); SetItemData(hItem,LIST_COLUMN_NAME,NameAttr.ItemData); TypeAttr.FunctionType.FunctionID=pFunItem->ID; ListItemCell = GetItemCell(hItem,LIST_COLUMN_TYPE); TypeAttr.FunctionType.Address=Address; TypeAttr.FunctionType.FunctionID=pFunItem->ID; SetItemData(hItem,LIST_COLUMN_TYPE,TypeAttr.ItemData); ValueAttr.Attr.Address= (DWORD)&ListItemCell->Data; ValueAttr.Attr.Attribute&=(~ITEM_ATTRIBUTE_UNINITIALIZE); ValueAttr.Attr.Attribute&=ITEM_ATTRIBUTE_TYPEDATA_MASK; ValueAttr.Attr.Attribute|=(ITEM_ATTRIBUTE_TYPE); SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); UpdateItemValue(hItem); goto local_quit; } SetItemNum(hItem,LIST_COLUMN_ADDRESS,Address,WSTR("0x%08x")); NameAttr.Attr.TypeIndex=pDataItem->DataId; NameAttr.Attr.pSDSModule=pSdsModule; SetItemData(hItem,LIST_COLUMN_NAME,NameAttr.ItemData); TypeAttr.ItemData=0; SetItemData(hItem,LIST_COLUMN_TYPE,TypeAttr.ItemData); ValueAttr.Attr.Address=Address; ValueAttr.Attr.Attribute&=(~ITEM_ATTRIBUTE_UNINITIALIZE); SetItemData(hItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); UpdateItemValue(hItem); local_quit: if(pName!=NameBuf) delete pName; } //ǻõǰEIPӦģбĵַǰûȫֱҲûеĻ᷵ʧ bool CTypeViewerWnd::GetVariableAddressByName(const char* VariableName,DWORD* VariableAddress,PSDUDTDATAITEM* DataItem,CSDSModule** SDSModule) { DWORD dwEIP,dwRVA; DWORD Address=0; PSDUDTDATAITEM pDataItem; DWORD dwModuleBase; CSDSModule* pSdsModule; PSDFUNCTIONITEM pFunItem; DWORD RegisterIndex,RegisterValue; pSdsModule = gpSyser->m_SyserUI.GetSDSModule(*X86_REG_PTR.pEIP); if(pSdsModule==NULL) return false; dwEIP = *X86_REG_PTR.pEIP; dwModuleBase = pSdsModule->m_pCurDbgModule->m_ModuleBase; dwRVA = dwEIP - dwModuleBase; //õǰEIPڵĺ pFunItem = pSdsModule->GetFunctionFromRav(dwRVA); if(pFunItem==NULL) { //ǰEIPûжӦȫֱǷƥ pDataItem = pSdsModule->GetDataSymbolByNameAndKind(VariableName,DataIsGlobal); if(pDataItem==NULL) return false; } else { //ͨںľֲңdzԱҲijԱ pDataItem = pSdsModule->GetDataSymbolInFunctionByName(VariableName,pFunItem); if(pDataItem==NULL) { pDataItem = pSdsModule->GetDataSymbolByNameAndKind(VariableName,DataIsGlobal); if(pDataItem==NULL) return false; } } switch(pDataItem->Location) { case LocIsRegRel: RegisterIndex = pDataItem->u.LOCISREGREL.Register; if(GetRegisterValue(RegisterIndex,&RegisterValue)==false) return false; Address=RegisterValue+pDataItem->u.LOCISREGREL.Offset; break; case LocIsStatic: Address=pDataItem->u.LOCISSTATIC.Rva; Address+=dwModuleBase; break; case LocIsThisRel: DWORD ThisPointer; if(GetThisAddressByMemberFunction(pSdsModule,pFunItem,&ThisPointer)==false) return false; Address=ThisPointer+pDataItem->u.LOCISREGREL.Offset; break; default: return false; } *VariableAddress=Address; *DataItem=pDataItem; *SDSModule=pSdsModule; return true; } bool CTypeViewerWnd::GetFunctionAddressByName(const char* VariableName,DWORD* VariableAddress,PSDFUNCTIONITEM* FunItem,CSDSModule** SDSModule) { DWORD dwEIP,dwRVA; DWORD Address=0; DWORD dwModuleBase; CSDSModule* pSdsModule; PSDFUNCTIONITEM pFunItem; PSDTYPE_INFILE pType; pSdsModule = gpSyser->m_SyserUI.GetSDSModule(*X86_REG_PTR.pEIP); if(pSdsModule==NULL) return false; dwEIP = *X86_REG_PTR.pEIP; dwModuleBase = pSdsModule->m_pCurDbgModule->m_ModuleBase; dwRVA = dwEIP - dwModuleBase; //õǰEIPڵĺ pFunItem = pSdsModule->GetFunctionSymbolByName(VariableName); if(pFunItem==NULL) { pFunItem = pSdsModule->GetFunctionFromRav(dwRVA); if(pFunItem==NULL||pFunItem->TypeIDParentUDT==0) return false; pType=pSdsModule->GetTypeSymbol(pFunItem->TypeIDParentUDT); pFunItem = pSdsModule->GetUdtClassFuncMemberByName(VariableName,pType); if(pFunItem==NULL) return false; } *VariableAddress=dwModuleBase+pFunItem->Rva; *FunItem=pFunItem; *SDSModule=pSdsModule; return true; } bool CTypeViewerWnd::UpdateItemValue(HANDLE hItem) { bool bOK; HANDLE hSubItem; WCHAR Buffer[256]; char FunBuffer[256]; char *pBuffer=(char*)Buffer; int Length=sizeof(Buffer); TYPE_NAME_ATTR NameAttr; TYPE_VALUE_ATTR ValueAttr; TYPE_TYPE_ATTR TypeAttr; DWORD ReadWriteLen,TypeIndex; TYPE_ADDRESS_ATTR AddressAttr; CSDSModule* pSdsModule; PSDTYPE_INFILE pType,pSubType; PSDPOINTERTYPE pPointerType; PSDREFERENCETYPE pReferenceType; PSDFUNCTIONITEM pFunItem; VALUEUNION ValueUnion; const char *TypeName; PSDUDTDATAITEM pUdtDataItem; CWispDIB*pIcon=WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); TypeAttr.ItemData=0; memset(&ValueUnion,0,sizeof(ValueUnion)); if(hItem==NULL) return false; bOK = GetItemDataAll(hItem,&NameAttr,&ValueAttr,&TypeAttr,&AddressAttr); if(bOK==false) return bOK; TypeIndex=NameAttr.Attr.TypeIndex; pSdsModule = NameAttr.Attr.pSDSModule; if(pSdsModule==NULL) return false; if(ValueAttr.Attr.Attribute&ITEM_ATTRIBUTE_UNINITIALIZE) return false; if(ValueAttr.Attr.Attribute&ITEM_ATTRIBUTE_DATA) { pUdtDataItem=pSdsModule->GetDataSymbol(NameAttr.Attr.TypeIndex); if(pUdtDataItem==NULL) return false; TypeIndex=pUdtDataItem->TypeId; switch(pUdtDataItem->Access) { case CV_private: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+15); break; case CV_protected: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+14); break; case CV_public: pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*17+13); break; } } pType = pSdsModule->GetTypeSymbol(TypeIndex); if(pType->Type==SD_FUNCTIONTYPE) pIcon = WispTKDIBListDIB("\\Toolbar.bmp",16,16,16*18); SetItemIcon(hItem,LIST_COLUMN_NAME,pIcon); DWORD * dwAddrFunction; switch(pType->Type) { case SD_FUNCTIONTYPE: dwAddrFunction=*(DWORD**)&ValueAttr.Attr.Address; ValueUnion.ulongvalue = *dwAddrFunction; TSPrintf(Buffer,WSTR("0x%08x "),ValueUnion.ulongvalue); SetItemText(hItem,LIST_COLUMN_VALUE,Buffer); pFunItem=pSdsModule->GetFunctionSymbol(TypeAttr.FunctionType.FunctionID); if(pFunItem==NULL) break; TStrCpy(FunBuffer,Buffer); Length = sizeof(FunBuffer); pSdsModule->GetFunctionName(pFunItem,(char*)&FunBuffer[12],&Length); SetItemTextA(hItem,LIST_COLUMN_VALUE,(char*)FunBuffer); Length = sizeof(FunBuffer); pSdsModule->GetSDSymbolName(pType,FunBuffer,&Length); SetItemTextA(hItem,LIST_COLUMN_TYPE,FunBuffer); break; case SD_BASIC: GetBasicTypeValue(pSdsModule,pType,ValueAttr.Attr.Address,ValueAttr.Attr.Attribute,Buffer,&ValueUnion); SetItemText(hItem,LIST_COLUMN_VALUE,Buffer); TypeAttr.ValueUnion=ValueUnion; SetItemData(hItem,LIST_COLUMN_TYPE,TypeAttr.ItemData); TypeName=pSdsModule->GetTypeName(pType); SetItemTextA(hItem,LIST_COLUMN_TYPE,TypeName); break; case SD_UNION: case SD_CLASS: case SD_STRUCT: hSubItem = InsertItem(WSTR(".."),hItem); ValueAttr.Attr.Attribute|=ITEM_ATTRIBUTE_UNINITIALIZE; ValueAttr.Attr.Address=0; SetItemData(hSubItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); pSdsModule->GetSDSymbolName(pType,pBuffer,&Length); SetItemTextA(hItem,LIST_COLUMN_TYPE,pBuffer); SetItemTextA(hItem,LIST_COLUMN_VALUE,"{...}"); break; case SD_POINTER: memset(&ValueUnion,0,sizeof(VALUEUNION)); if(pType->TypeSize>0 && pType->TypeSize<=sizeof(VALUEUNION)) ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(ValueAttr.Attr.Address,&ValueUnion,pType->TypeSize); TSPrintf(Buffer,WSTR("0x%08x"),ValueUnion.ulongvalue); TypeAttr.ValueUnion=ValueUnion; SetItemData(hItem,LIST_COLUMN_TYPE,TypeAttr.ItemData); SetItemText(hItem,LIST_COLUMN_VALUE,Buffer); pPointerType = (PSDPOINTERTYPE)&pType[1]; if(pPointerType->PointerDepth==1) { pSubType = pSdsModule->GetTypeSymbol(pPointerType->TypeID); if(pSubType) { if(pSubType->Type==SD_BASIC && pSubType->TypeSize==1) { memset(Buffer,0,sizeof(Buffer)); TSPrintf(pBuffer,"0x%08x \"",ValueUnion.ulongvalue); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(ValueUnion.ulongvalue,&pBuffer[12],256); for(DWORD i=0;i < ReadWriteLen;i++) { if(pBuffer[12+i]!=0)continue; pBuffer[i+12]='"';pBuffer[i+13]=0; SetItemTextA(hItem,LIST_COLUMN_VALUE,pBuffer); break; } } } } hSubItem = InsertItem(WSTR(".."),hItem); ValueAttr.Attr.Attribute|=ITEM_ATTRIBUTE_UNINITIALIZE; ValueAttr.Attr.Address=0; SetItemData(hSubItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); pSdsModule->GetSDSymbolName(pType,pBuffer,&Length); SetItemTextA(hItem,LIST_COLUMN_TYPE,pBuffer); break; case SD_REFERENCE: pSdsModule->GetSDSymbolName(pType,pBuffer,&Length); SetItemTextA(hItem,LIST_COLUMN_TYPE,pBuffer); pReferenceType = (PSDREFERENCETYPE)&pType[1]; pType = pSdsModule->GetTypeSymbol(pReferenceType->TypeID); if(pType==NULL) return false; memset(&ValueUnion,0,sizeof(VALUEUNION)); ReadWriteLen = gpSyser->m_pDebugger->ReadMemory(ValueAttr.Attr.Address,&ValueUnion,4); TSPrintf(Buffer,WSTR("0x%08x"),ValueUnion.ulongvalue); SetItemText(hItem,LIST_COLUMN_VALUE,Buffer); if(pType->Type==SD_CLASS || pType->Type==SD_STRUCT || pType->Type==SD_UNION || pType->Type==SD_POINTER) { hSubItem = InsertItem(WSTR(".."),hItem); ValueAttr.Attr.Attribute|=ITEM_ATTRIBUTE_UNINITIALIZE; ValueAttr.Attr.Address=0; SetItemData(hSubItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); } if(pType->Type==SD_BASIC) { GetBasicTypeValue(pSdsModule,pType,ValueUnion.ulongvalue,ValueAttr.Attr.Attribute,Buffer,&ValueUnion); SetItemText(hItem,LIST_COLUMN_VALUE,Buffer); } break; case SD_ARRAY: TSPrintf(Buffer,WSTR("0x%08x"),ValueAttr.Attr.Address); SetItemText(hItem,LIST_COLUMN_VALUE,Buffer); hSubItem = InsertItem(WSTR(".."),hItem); ValueAttr.Attr.Attribute|=ITEM_ATTRIBUTE_UNINITIALIZE; ValueAttr.Attr.Address=0; SetItemData(hSubItem,LIST_COLUMN_VALUE,ValueAttr.ItemData); pSdsModule->GetSDSymbolName(pType,pBuffer,&Length); SetItemTextA(hItem,LIST_COLUMN_TYPE,pBuffer); break; } return true; } //ͨijԱλ this ָ롣 ÿԱһʽ this ָ bool CTypeViewerWnd::GetThisAddressByMemberFunction(CSDSModule* pSdsModule,PSDFUNCTIONITEM pFunItem,DWORD* ThisPointer) { PSDUDTDATAITEM pThisDataItem; bool bOk=true; DWORD RegisterIndex,RegisterValue,Address,dwModuleBase,dwValue; pThisDataItem = pSdsModule->GetDataSymbolInFunctionByName("this",pFunItem); dwModuleBase = pSdsModule->m_pCurDbgModule->m_ModuleBase; if(pThisDataItem==NULL) return false; switch(pThisDataItem->Location) { case LocIsEnregistered: RegisterIndex = pThisDataItem->u.LOCISENREGISTERED.Register; GetRegisterValue(RegisterIndex,&RegisterValue); Address=RegisterValue; break; case LocIsRegRel: RegisterIndex = pThisDataItem->u.LOCISREGREL.Register; GetRegisterValue(RegisterIndex,&RegisterValue); Address=RegisterValue+pThisDataItem->u.LOCISREGREL.Offset; break; case LocIsStatic: Address=pThisDataItem->u.LOCISSTATIC.Rva; Address+=dwModuleBase; break; default: bOk=false; break; } if(bOk) { if(gpSyser->m_pDebugger->ReadMemory(Address,&dwValue,sizeof(dwValue))==sizeof(dwValue)) { if(ThisPointer) *ThisPointer=dwValue; } else { bOk=false; } } return bOk; } ================================================ FILE: Project/Syser/Source/TypeViewerWnd.h ================================================ #ifndef _TYPEVIEWERWND_H_ #define _TYPEVIEWERWND_H_ #include "../../Addition/SyserDebugger/SDSymbol.h" enum { LIST_COLUMN_NAME=0, LIST_COLUMN_VALUE, LIST_COLUMN_TYPE, LIST_COLUMN_ADDRESS, }; enum { ITEM_ATTRIBUTE_UNINITIALIZE = 0x80000000, ITEM_ATTRIBUTE_TYPE = 0x40000000, ITEM_ATTRIBUTE_DATA = 0x20000000, ITEM_ATTRIBUTE_LOCK = 0x10000000, ITEM_ATTRIBUTE_FLOAT = 0x08000000, ITEM_ATTRIBUTE_HEX = 0x04000000, ITEM_ATTRIBUTE_DEC = 0x02000000, ITEM_ATTRIBUTE_WATCH_NAME = 0x01000000, ITEM_ATTRIBUTE_VFTABLE = 0x00800000, ITEM_ATTRIBUTE_TYPEDATA_MASK = ~(ITEM_ATTRIBUTE_DATA|ITEM_ATTRIBUTE_TYPE), }; typedef union _VALUEUNION { unsigned char ucharvalue; unsigned short ushortvalue; unsigned int uintvalue; unsigned long ulongvalue; ULONGLONG uint64value; char charvalue; short shortvalue; int intvalue; long longvalue; LONGLONG int64value; bool boolvalue; }VALUEUNION,*PVALUEUNION; typedef union _TYPEVIEW_NAME_ATTRIB { NUM_PTR ItemData; struct { DWORD TypeIndex; CSDSModule* pSDSModule; }Attr; }TYPE_NAME_ATTR; typedef union _TYPEVIEW_VALUE_ATTRIB { NUM_PTR ItemData; struct { DWORD Address; DWORD Attribute; }Attr; }TYPE_VALUE_ATTR; typedef union _TYPEVIEW_TYPE_ATTRIB { NUM_PTR ItemData; VALUEUNION ValueUnion; struct _FUNSTR{ DWORD Address; DWORD FunctionID; }FunctionType; struct _VTABLE{ DWORD Address; DWORD FunctionCount; }VFTable; }TYPE_TYPE_ATTR; typedef union _TYPEVIEW_ADDRESS_ATTRIB { NUM_PTR ItemData; struct { DWORD Address; DWORD Attribute; }Attr; }TYPE_ADDRESS_ATTR; typedef struct _WATCH_DATA { TYPE_NAME_ATTR Name; TYPE_VALUE_ATTR Value; TYPE_TYPE_ATTR Type; TYPE_ADDRESS_ATTR Address; }WATCH_DATA,*PWATCH_DATA; class CTypeViewerWnd:public CWispList { enum CHILD_CMD_ID; public: CTypeViewerWnd(); ~CTypeViewerWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_EVENT(OnHexDisplayEvent) DECLARE_WISP_MSG_EVENT(OnDeleteWatchEvent) DECLARE_WISP_MSG_EVENT(OnEventShowData) DECLARE_WISP_MSG_CMD(OnViewerCmd) bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool ChangeValueBoolAndBitField1(DWORD Address,CSDSModule* pSDSModule,DWORD DataIndex,WCHAR* ValueBuf); void ItemChangedNotify(HANDLE hItem,int Col,CWispString&String); void ItemExpandedNotify(HANDLE hItem); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void WatchType(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem=NULL,char* DataMemberName=NULL); void AddUdtTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem=NULL,char* DataMemberName=NULL,bool bIsData=false); void AddBaseClassTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem=NULL,char* DataMemberName=NULL,bool bIsData=false); void AddEnumerationTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem=NULL,char* DataMemberName=NULL,bool bIsData=false); void AddPointerTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName=NULL,bool bIsData=false); void AddArrayTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName=NULL,bool bIsData=false); void AddBasicTypeWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName=NULL,bool bIsData=false); void AddClassVFPTRWatch(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address,DWORD Attribute,HANDLE hItem,char* DataMemberName); void RemoveTypeAttachByAddress(DWORD Address); void ModifyTypeAttachAddress(CSDSModule* pSDSModule,DWORD TypeIndex,DWORD Address); bool ChangeValue(HANDLE hItem); bool GetBasicTypeValue(CSDSModule* pSDSModule,PSDTYPE_INFILE pType,DWORD Address,DWORD Attribute,WCHAR* ValueBuf,PVALUEUNION pValueUnion); void ExpandType(HANDLE hItem,bool bIsData=false); void ExpandPointerType(HANDLE hItem,bool bIsData); void ExpandArrayType(HANDLE hItem,bool bIsData=false); void ExpandUDTType(HANDLE hItem,PWATCH_DATA pWatchData); void ExpendVirtualFunctionTable(HANDLE hItem,PWATCH_DATA pWatchData); //bool GetBasicTypeValue(CSDSModule* pSDSModule,PSDTYPE_INFILE pType,DWORD Address,PVALUEUNION pValueUnion); WCHAR* GetDataValue(IN DWORD Address,IN CSDSModule* pSDSModule,IN DWORD DataIndex,IN DWORD Attribute,OUT WCHAR* ValueBuf,IN DWORD BufLen,PVALUEUNION pDefValue=NULL); WCHAR* GetTypeValue(IN DWORD Address,IN CSDSModule* pSDSModule,IN DWORD TypeIndex,IN DWORD Attribute,OUT WCHAR* ValueBuf,IN DWORD BufLen,PVALUEUNION pDefValue=NULL); bool ModifyDataValue(DWORD Address,CSDSModule* pSDSModule,DWORD TypeIndex,VALUEUNION ValueUnion); bool ChangeUDTBaseClassAddressByUDT(HANDLE hItem,DWORD BaseAddress); bool GetRegisterValue(DWORD RegisterIndex,DWORD* RegisterValue); PSDTYPE_INFILE GetTypeByDataIndex(CSDSModule* pSDSModule,DWORD DataIndex); void ExpandReferenceType(HANDLE hItem); void ResetContext(); void UpdateContext(); bool UpdateItemContext(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD Address=0); bool UpdateItemContextUDT(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress=0); bool UpdateItemContextUDTPointer(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress=0); bool UpdateItemContextUDTReference(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress=0); void AddWatchByName(char* Name,HANDLE hItem=NULL); void AddWatchByName(WCHAR* Name,HANDLE hItem=NULL); bool GetItemDataAll(HANDLE hItem,PWATCH_DATA pWatchData); bool GetItemDataAll(HANDLE hItem,TYPE_NAME_ATTR* pNameAttr,TYPE_VALUE_ATTR* pValueAttr,TYPE_TYPE_ATTR* pTypeAttr,TYPE_ADDRESS_ATTR* pAddressAttr); bool GetThisAddressByMemberFunction(CSDSModule* pSdsModule,PSDFUNCTIONITEM pFunItem,DWORD* ThisPointer); bool GetFunctionAddressByName(const char* VariableName,DWORD* VariableAddress,PSDFUNCTIONITEM* DataItem,CSDSModule** SDSModule); bool GetVariableAddressByName(const char* VariableName,DWORD* VariableAddress,PSDUDTDATAITEM* DataItem,CSDSModule** SDSModule); bool UpdateItemValue(HANDLE hItem); bool UpdateItemValueForUDTType(HANDLE hItem,PSDTYPE_INFILE pType,CSDSModule* pSdsModule); void InsertLastItem(); void UnloadSDSModule(CSDSModule*pSDSModule); void InsertExpandItem(HANDLE hItem); bool ChangeUDTBaseClassAddress(HANDLE hItem,DWORD TypeIndex,DWORD Address); bool ChangeUDTBaseClassAddressPointer(HANDLE hItem,DWORD BaseAddress); bool UpdateItemContextArray(HANDLE hItem,WCHAR* ValueBuf,DWORD ValueBufLen,DWORD BaseAddress); CSDSModule*m_pSDSModule; CWispMenu m_PopupMenu; HANDLE m_hRemoveItem; HANDLE m_hLastItem; }; #endif //_TYPEVIEWERWND_H_ ================================================ FILE: Project/Syser/Source/UHCIDevice.cpp ================================================ #include "StdAfx.h" #include "UHCIDevice.h" #include "InputDriver.h" #include "Syser.h" #include "Keyboard.h" #include "Mouse.h" void CUHCIDevice::UHCIMouseService() { UHCI_DEVICE_INFO*pDevInfo; UHCI_MOUSE_DEVICE*pMouseDev; UHCI_TD*pTD; for(int n=0;npTDListBuffer[pDevInfo->CurTDIndex*UHCI_TD_LENGTH]); if((pTD->Status&0x00800000) == 0) { TranslateUSBMouse((char*) &pTD[1],&pMouseDev->BtStatus); UHCIPacketDone(pDevInfo); } } } void CUHCIDevice::UHCIKeyboardService() { BYTE*pData; UHCI_DEVICE_INFO*pDevInfo; UHCI_KEYBOARD_DEVICE*pKeyboardDev; UHCI_TD*pTD; for(int n=0;npTDListBuffer[pDevInfo->CurTDIndex*UHCI_TD_LENGTH]); if((pTD->Status&0x00800000) == 0) { pData = (BYTE*) &pTD[1]; TranslateUSBKey(pKeyboardDev->PrevData,pData); UHCIPacketDone(pDevInfo); } } } void CUHCIDevice::UHCIPacketDone(UHCI_DEVICE_INFO*pDevInfo) { UHCI_TD*pTD; pDevInfo->CurTDIndex++; if(pDevInfo->CurTDIndex>=UHCI_DEVICE_TD_COUNT) pDevInfo->CurTDIndex=0; pTD = (UHCI_TD*)(&pDevInfo->pTDListBuffer[pDevInfo->CurTDIndex*UHCI_TD_LENGTH]); pTD->Status |= 0x00800000; } CUHCIDevice::CUHCIDevice() { for(int n=0;n::IT FindIT; ULPOS SwapVal; ULPOS AlignPhysicalAddress,PhysicalAddressMod; AlignPhysicalAddress=(PhysicalAddress&0xFFFFF000); PhysicalAddressMod = PhysicalAddress - AlignPhysicalAddress; FindIT = m_PhyscialMemoryCacheMap.Find(AlignPhysicalAddress); if(FindIT==m_PhyscialMemoryCacheMap.End()) { if(MapToVAddr(AlignPhysicalAddress,&SwapVal)==0) return false; FindIT = m_PhyscialMemoryCacheMap.InsertUnique(AlignPhysicalAddress,SwapVal); } *VirtualAddress = *FindIT; *VirtualAddress |= PhysicalAddressMod; return true; } void CUHCIDevice::Attach() { int nUHCI; DWORD Link,*FrameList,dwTmpVar; UHCI_TD*pTD; UHCI_QH*pQH; nUHCI = 0; for(TList::IT Iter=m_UHCICtrlList.Begin();Iter!=m_UHCICtrlList.End();Iter++) { //OUTPUT(WSTR("Search UHCI Device %d\n"),nUHCI); if(CacheMapToVAddr(Iter->FrameBase,(DWORD*)&FrameList)==false) { //OUTPUT(WSTR("Syser : Fail to Map Iter->FrameBase [%08X]\n"),Iter->FrameBase); continue; } for(int nFP=0;nFPLink) || UHCI_LinkIsQH(pTD->Link)==false) continue; if(CacheMapToVAddr(UHCI_GetLinkPhysAddr(pTD->Link),(DWORD*)&pQH)==false) continue; } while(UHCI_LinkIsTail(pQH->Link)==false && UHCI_LinkIsQH(pQH->Link)) { if(UHCI_LinkIsTail(pQH->Element)==false && UHCI_LinkIsQH(pQH->Element)==false) { if(CacheMapToVAddr(UHCI_GetLinkPhysAddr(pQH->Element),(DWORD*)&pTD)==false) break; RecognizeUHCIDevice(pTD,pQH); break; } if(CacheMapToVAddr(UHCI_GetLinkPhysAddr(pQH->Link),&dwTmpVar)==false) break; *(DWORD*)&pQH = dwTmpVar; } } nUHCI++; } /* for(int n=0;nTDToken; DWORD MaxLen = (pTD->TDToken>>21)+1; if(PID == 0x69) {//OUTPUT(WSTR("pQH %08X , pQH->Element %08X , MaxLen = %X , Link = %08X , Status = %08X , TDToken = %08X , TDBuffer = %08X\n"),pQH,pQH->Element,MaxLen,pTD->Link,pTD->Status,pTD->TDToken,pTD->TDBuffer); if(MaxLen>=4 && MaxLen<=16 && MaxLen!=8) { if(m_UHCIMouseCountElement) return; } m_UHCIMouse[m_UHCIMouseCount].BtStatus=0; ResetUHCIInputDevice(&m_UHCIMouse[m_UHCIMouseCount].DevInfo,pTD,pQH); m_UHCIMouseCount++; } } else if(MaxLen == 8) { if(m_UHCIKeyboardCountElement) return; } ZeroMemory(m_UHCIKeyboard[m_UHCIKeyboardCount].PrevData,8); ResetUHCIInputDevice(&m_UHCIKeyboard[m_UHCIKeyboardCount].DevInfo,pTD,pQH); m_UHCIKeyboardCount++; } } } } void CUHCIDevice::InitUHCIInputDevice(UHCI_DEVICE_INFO*pDeviceInfo) { ULONGLONG PhysAddr; pDeviceInfo->pTDListBuffer = (BYTE*)gpUserHeap[SYSER_MAIN_HEAP]->AlignAllocate(UHCI_DEVICE_TD_COUNT*UHCI_TD_LENGTH+0x100,0x400); ZeroMemory(pDeviceInfo->pTDListBuffer,UHCI_DEVICE_TD_COUNT*UHCI_TD_LENGTH+0x100); PhysAddr = 0; MapToPAddr((ULPOS)pDeviceInfo->pTDListBuffer,&PhysAddr); pDeviceInfo->TDListBufferPA = (DWORD)PhysAddr; UHCI_TD* pTD; for(int i=0;ipTDListBuffer[i*UHCI_TD_LENGTH]; pTD->Link = pDeviceInfo->TDListBufferPA+(i+1)*UHCI_TD_LENGTH; pTD->TDBuffer = pDeviceInfo->TDListBufferPA+i*UHCI_TD_LENGTH+sizeof(UHCI_TD); pTD->Status = 0; } } void CUHCIDevice::ResetUHCIInputDevice(UHCI_DEVICE_INFO*pDevInfo,UHCI_TD*pTD,UHCI_QH*pQH) { UHCI_TD*pNewTD; for(int i=0;ipTDListBuffer[i*UHCI_TD_LENGTH]; pNewTD->Status = pTD->Status; pNewTD->TDToken = (i % 2)?(pTD->TDToken & 0xFFF7FFFF):(pTD->TDToken | 0x80000); } pNewTD->Link = pDevInfo->TDListBufferPA; pDevInfo->CurTDIndex = 0; pNewTD = (UHCI_TD*)pDevInfo->pTDListBuffer; pNewTD->Status = pTD->Status|0x00800000; pDevInfo->pTDHead = &pQH->Element; pDevInfo->OldTDListPhysAddr = pQH->Element; *pDevInfo->pTDHead = pDevInfo->TDListBufferPA; } void CUHCIDevice::ReleaseUHCIInputDevice(UHCI_DEVICE_INFO*pDeviceInfo) { gpUserHeap[0]->AlignFree(pDeviceInfo->pTDListBuffer); } ================================================ FILE: Project/Syser/Source/UHCIDevice.h ================================================ #ifndef _UHCI_DEVICE_H_ #define _UHCI_DEVICE_H_ #define UHCI_LinkIsTail(x) (((x)&1)!=0) #define UHCI_LinkIsQH(x) (((x)&2)!=0) #define UHCI_GetLinkPhysAddr(x) ((x)&0xFFFFFFF0) #define UHCI_GetLinkTypeName(x) (UHCI_LinkIsQH(x)?WSTR("QH"):WSTR("TD")) struct UHCI_CTRL_INFO { int Bus; int DevFN; DWORD FrameBase; WORD USBBase; }; struct UHCI_QH { DWORD Link; DWORD Element; }; struct UHCI_TD { DWORD Link; DWORD Status; DWORD TDToken; DWORD TDBuffer; }; #define MAX_UHCI_DEVICE_FRAME_PERIOD 0x10 #define MAX_UHCI_MOUSE_DEVICE 8 #define MAX_UHCI_KEYBOARD_DEVICE 8 #define UHCI_DEVICE_TD_COUNT 10 #define UHCI_DATA_BUFF_LENGTH 0x20 #define UHCI_TD_LENGTH (UHCI_DATA_BUFF_LENGTH+sizeof(UHCI_TD)) struct UHCI_DEVICE_INFO { DWORD* pTDHead; DWORD OldTDListPhysAddr; DWORD TDListBufferPA; BYTE* pTDListBuffer; int CurTDIndex; }; struct UHCI_KEYBOARD_DEVICE { UHCI_DEVICE_INFO DevInfo; BYTE PrevData[8]; }; struct UHCI_MOUSE_DEVICE { UHCI_DEVICE_INFO DevInfo; char BtStatus; }; class CUHCIDevice { public: CUHCIDevice(); ~CUHCIDevice(); public: TMap m_PhyscialMemoryCacheMap; TList m_UHCICtrlList; //UHCI Ϣ UHCI_KEYBOARD_DEVICE m_UHCIKeyboard[MAX_UHCI_KEYBOARD_DEVICE]; int m_UHCIKeyboardCount; UHCI_MOUSE_DEVICE m_UHCIMouse[MAX_UHCI_MOUSE_DEVICE]; int m_UHCIMouseCount; bool Init(); void Release(); void Attach(); void Detach(); void RecognizeUHCIDevice(UHCI_TD*pTD,UHCI_QH*pQH); void InitUHCIInputDevice(UHCI_DEVICE_INFO*pDeviceInfo); void ResetUHCIInputDevice(UHCI_DEVICE_INFO*pDeviceInfo,UHCI_TD*pTD,UHCI_QH*pQH); void ReleaseUHCIInputDevice(UHCI_DEVICE_INFO*pDeviceInfo); void UHCIMouseService(); void UHCIKeyboardService(); void UHCIPacketDone(UHCI_DEVICE_INFO*pDevInfo); bool CacheMapToVAddr(ULPOS PhysicalAddress,ULPOS* VirtualAddress); }; #endif ================================================ FILE: Project/Syser/Source/UHCIMouse.cpp ================================================ #include "stdafx.h" #include "UHCIMouse.h" #include "InputDriver.h" #include "Syser.h" char cPrevFirstData=0,cPrevXOffset=0,cPrevYOffset=0,cPrevZOffset=0; void UsbMouseService() { char cFirstData,cXOffset,cYOffset,cZOffset; char *pData; if((pUsbStructBuf[dwUSBMouseIndex*8+1] & 0x00800000) == 0) { pData = (char *) &pUsbStructBuf[dwUSBMouseIndex*8+0x4]; cFirstData=pData[0]; cXOffset=pData[1]; cYOffset=pData[2]; cZOffset=pData[3]; if(cYOffset != 0 || cXOffset != 0) gpSyser->OnMouseMove(cXOffset,cYOffset); if(cZOffset) { gpSyser->OnMouseWheel(cZOffset); } if((cPrevFirstData & MOUSE_INTERRUPT_LEFT_PRESS) != (cFirstData & MOUSE_INTERRUPT_LEFT_PRESS)) gpSyser->OnKeyEvent(WISP_VK_LBUTTON,cFirstData & MOUSE_INTERRUPT_LEFT_PRESS); if((cPrevFirstData & MOUSE_INTERRUPT_RIGHT_PRESS) != (cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)) gpSyser->OnKeyEvent(WISP_VK_RBUTTON,(cFirstData & MOUSE_INTERRUPT_RIGHT_PRESS)!=0); if((cPrevFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS) != (cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)) gpSyser->OnKeyEvent(WISP_VK_MBUTTON,(cFirstData & MOUSE_INTERRUPT_MIDDLE_PRESS)!=0); cPrevZOffset=cZOffset; cPrevYOffset=cYOffset; cPrevXOffset=cXOffset; cPrevFirstData=cFirstData; dwUSBMouseIndex++; if(dwUSBMouseIndex==10) dwUSBMouseIndex=0; pUsbStructBuf[dwUSBMouseIndex*8+1] |= 0x00800000; } } void InstallUsbMouseQueue() { int i,m; bool bFound; for(i = 0; i < (int)UHCI_Number;i++) { DWORD dwPortAddr = UHCIFrameBaseRegister[i]; DWORD dwPhysicalAddress,dwValue=0,dwCounter,dwValue2; dwCounter= 20; dwPhysicalAddress = ReadPortDword(dwPortAddr+8); dwPhysicalAddress &= 0xfffff000; bFound=false; while ((dwValue&1) == 0 && dwCounter!=0) { if(ReadPhysicalAddress(dwPhysicalAddress,dwValue)) { if((dwValue & 0xff0) == 0) { bFound=true; break; } dwValue2 = dwValue; dwPhysicalAddress=dwValue&0xfffffff0; } dwCounter--; } if(bFound) { DWORD dwValueTemp = (dwValue&0xfffff000)+0x1c8; if(ReadPhysicalAddress(dwValueTemp,dwValue2)) { if((dwValue2 & 0xff)==0x69) { if((dwValue2>>21) == 3 || (dwValue2>>21) == 2) { DWORD dwMouseQueueAddress=dwValue; //OUTPUT(WSTR("dwMouseQueueAddress= %08x %08x"),dwValue,pUsbStructBuf); for(m =0;m<10;m++) { pUsbStructBuf[m*8]=UsbStructBufPhysicalAddress+m*0x20+0x20; pUsbStructBuf[m*8+3]=UsbStructBufPhysicalAddress+m*0x20+0x10; pUsbStructBuf[m*8+2]=(m % 2)?(dwValue2 & 0xfff7ffff):(dwValue2 | 0x80000); pUsbStructBuf[m*8+1]=0x1c000000; } pUsbStructBuf[1]=0x1c800000; dwUSBMouseIndex = 0; pUsbStructBuf[(m-1)*8]=UsbStructBufPhysicalAddress; DWORD dwTmp; if(MapToVAddr((dwMouseQueueAddress&0xfffffff0)+4,&dwTmp)) if(bUsbMouseInstallFlags==false) { USBQueueHeadPoint=(DWORD *) dwTmp; OLDUSBQueueHeadPoint=USBQueueHeadPoint[0]; USBQueueHeadPoint[0]=(DWORD)UsbStructBufPhysicalAddress; bUsbMouseInstallFlags = true; } return; } } } } } } void UninstallUsbMouseQueue() { if(bUsbMouseInstallFlags) { USBQueueHeadPoint[0]=OLDUSBQueueHeadPoint; bUsbMouseInstallFlags=false; } } ================================================ FILE: Project/Syser/Source/UHCIMouse.h ================================================ #ifndef _UHCIMOUSE_H_ #define _UHCIMOUSE_H_ extern char cFirstData,cXOffset,cYOffset,cZOffset; extern char cPrevFirstData,cPrevXOffset,cPrevYOffset,cPrevZOffset; void UsbMouseService(); void InstallUsbMouseQueue(); void UninstallUsbMouseQueue(); #endif //_UHCIMOUSE_H_ ================================================ FILE: Project/Syser/Source/USBCmd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "USBCmd.h" #include "UHCIDevice.h" void DumpUHCILink(DWORD Link) { if(UHCI_LinkIsTail(Link)) { OUTPUT(WSTR(" ->| Link Tail\n")); } else { OUTPUT(WSTR(" --> %s [%08X]\n"),UHCI_GetLinkTypeName(Link),Link); } } void DumpUHCIQHList(DWORD Link) { UHCI_QH*pQH; while(UHCI_LinkIsTail(Link)==false) { if(MapToVAddr(UHCI_GetLinkPhysAddr(Link),(DWORD*)&pQH)==false) { OUTPUT(WSTR("%<3>Invalid QH %08X\n"),Link); return; } OUTPUT(WSTR("%QH")); DumpUHCILink(pQH->Link); if(UHCI_LinkIsTail(pQH->Link)==false) { OUTPUT(WSTR("|--Element")); DumpUHCILink(pQH->Element); } Link = pQH->Link; if(UHCI_LinkIsQH(Link)==false) return; if(IS_CTRL_BREAK) return; } } void DumpUHCITD(UHCI_TD*pTD) { OUTPUT(WSTR("|- TDToken PID[%%02X%<1>] MaxLen[%%04X%<1>]\n"),(BYTE)pTD->TDToken,(pTD->TDToken>>21)+1); OUTPUT(WSTR("|- Status [%%08X%<1>]\n"),pTD->Status); OUTPUT(WSTR("|- TDBuffer [%%08X%<1>]\n"),pTD->TDBuffer); } void DumpUHCITDList(DWORD Link) { UHCI_TD*pTD; int n=0; pTD = NULL; while(UHCI_LinkIsTail(Link)==false && n<20) { if(pTD) DumpUHCITD(pTD); if(MapToVAddr(UHCI_GetLinkPhysAddr(Link),(DWORD*)&pTD)==false) { OUTPUT(WSTR("%<3>Invalid TD %08X\n"),Link); return; } OUTPUT(WSTR("%TD")); DumpUHCILink(pTD->Link); Link = pTD->Link; if(UHCI_LinkIsQH(Link)) return; if(IS_CTRL_BREAK) return; n++; } if(n==20) OUTPUT(WSTR("................\n")); } void DumpUHCILinkList(DWORD Link) { if(UHCI_LinkIsQH(Link)) { DumpUHCIQHList(Link); } else { DumpUHCITDList(Link); } } bool IsTDExistFrame(DWORD Link) { if(UHCI_LinkIsTail(Link)) return false; if(UHCI_LinkIsQH(Link)==false) return true; UHCI_QH*pQH = NULL; while(UHCI_LinkIsTail(Link)==false && UHCI_LinkIsQH(Link)) { if(pQH && UHCI_LinkIsTail(pQH->Element)==false && UHCI_LinkIsQH(pQH->Element)==false) return true; if(MapToVAddr(UHCI_GetLinkPhysAddr(Link),(DWORD*)&pQH)==false) return false; Link = pQH->Link; } return false; } void DumpUHCIFrame(UHCI_CTRL_INFO*pUHCIInfo) { int Index; DWORD PhysAddr; DWORD FP; OUTPUT(WSTR("UHCI Bus %02X Device %02X Function %02X USBBase %X FrameBase %08X\n"),pUHCIInfo->Bus,pUHCIInfo->DevFN>>3,pUHCIInfo->DevFN&7,pUHCIInfo->USBBase,pUHCIInfo->FrameBase); PhysAddr = pUHCIInfo->FrameBase; Index=0; while(ReadPhysicalAddress(PhysAddr,FP) && UHCI_LinkIsTail(FP)==false) { if(IsTDExistFrame(FP)) OUTPUT(WSTR("Frame[%04X] FP[%08X] --> %s\n"),Index,FP,UHCI_GetLinkTypeName(FP)); PhysAddr+=4; Index++; } } //////////////////////////////////////////////////////////// //OHCI void DumpOHCIED(const OHCI_ED&ED) { if(OHCI_IsSkipED(ED.hwINFO)) { OUTPUT(WSTR("%Skip ED %<1>-> %08X\n"),ED.hwNextED); } else { OUTPUT(WSTR("%ED %<1>-> %08X\n"),ED.hwNextED); OUTPUT(WSTR("|- FA [%02X] EN [%02X] D [%X] S [%X] K [%X] F [%X] MPS [%04X]\n"),ED.hwINFO&0x7F,(ED.hwINFO>>7)&0xF,(ED.hwINFO>>11)&0x3,(ED.hwINFO>>13)&0x1,(ED.hwINFO>>14)&0x1,(ED.hwINFO>>15)&0x1,(ED.hwINFO>>16)&0x7FF); OUTPUT(WSTR("|-TailP [%08X]\n"),ED.hwTailP&0xFFFFFFF0); OUTPUT(WSTR("|-HeadP [%08X] H [%X] C [%X]\n"),ED.hwHeadP&0xFFFFFFF0,ED.hwHeadP&0x1,(ED.hwHeadP>>1)&0x1); } } void DumpOHCIFrame(OHCI_CTRL_INFO*pOHCIInfo) { int Index; DWORD*pAddr; OHCI_ED*pED; OUTPUT(WSTR("OHCI BarOHCI %08X HCCA %08X\n"),pOHCIInfo->pOHCIRegs,pOHCIInfo->pOHCIRegs->HCCA); if(MapToVAddr(pOHCIInfo->pOHCIRegs->HCCA,(ULPOS*)&pAddr)==false) { OUTPUT(WSTR("%<3>Bad HCCA Address %08X\n"),pOHCIInfo->pOHCIRegs->HCCA); return; } OUTPUT(WSTR("Frame Interrput Table\n")); for(int n=0;n<32;n++) { if(MapToVAddr(pAddr[n],(ULPOS*)&pED)==false) { OUTPUT(WSTR("%<3>Error ED\n")); continue; } DumpOHCIED(*pED); } OUTPUT(WSTR("TDDoneHead %08X\n"),pAddr[0x21]); } //OHCI //////////////////////////////////////////////////////////// int ohci_ed_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD Link; OHCI_ED*pED; if(argc==2 && CALCEXP(argv[1],(ULONG*)&Link)) { if((Link&0xF)||MapToVAddr(Link,(ULPOS*)&pED)==false) { OUTPUT(WSTR("%<3>Error : Bad ED Physical Address!\n")); return 1; } DumpOHCIED(*pED); } return 0; } int uhci_link_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { DWORD Link; if(argc==2 && CALCEXP(argv[1],(ULONG*)&Link)) { DumpUHCILinkList(Link); } return 0; } int usb_command(int argc, WCHAR *argv[],PCWSTR szCommandLine,CSyser*pSyser) { int Index; if(argc==1) { Index = 0; for(TList::IT Iter = gpSyser->m_PCSystem.m_UHCIDevice.m_UHCICtrlList.Begin();Iter!=gpSyser->m_PCSystem.m_UHCIDevice.m_UHCICtrlList.End();Iter++) { OUTPUT(WSTR("%d. UHCI USBBase %X FrameBase %08X\n"),Index,Iter->USBBase,Iter->FrameBase); Index++; } for(TList::IT Iter = gpSyser->m_PCSystem.m_OHCIDevice.m_OHCICtrlList.Begin();Iter!=gpSyser->m_PCSystem.m_OHCIDevice.m_OHCICtrlList.End();Iter++) { OUTPUT(WSTR("%d. OHCI BarOHCI %08X HCCA %08X\n"),Index,Iter->pOHCIRegs,Iter->pOHCIRegs->HCCA); Index++; } return 0; } if(argc==2 && CALCEXP(argv[1],(ULONG*)&Index)) { for(TList::IT Iter = gpSyser->m_PCSystem.m_UHCIDevice.m_UHCICtrlList.Begin();Iter!=gpSyser->m_PCSystem.m_UHCIDevice.m_UHCICtrlList.End();Iter++) { if(Index==0) { DumpUHCIFrame(&(*Iter)); return 0; } Index--; } for(TList::IT Iter = gpSyser->m_PCSystem.m_OHCIDevice.m_OHCICtrlList.Begin();Iter!=gpSyser->m_PCSystem.m_OHCIDevice.m_OHCICtrlList.End();Iter++) { if(Index==0) { DumpOHCIFrame(&(*Iter)); return 0; } Index--; } } OUTPUT(WSTR("Usage : usb [Index]\n")); return 0; } ================================================ FILE: Project/Syser/Source/USBCmd.h ================================================ #ifndef _USB_CMD_H_ #define _USB_CMD_H_ DECLARE_SYSER_CMD(uhci_link_command); DECLARE_SYSER_CMD(usb_command); DECLARE_SYSER_CMD(ohci_ed_command); #endif ================================================ FILE: Project/Syser/Source/Undoc.h ================================================ // My header which contains undocumented structures & function prototypes // used in BS // // Some structs are taken from Bo Branten's ntifs.h, some from NTOSKRNL.PDB for // Whistler build 2462 (this build contain type info in them), and other sources #ifndef __UNDOC_ #define __UNDOC_ #ifdef __cplusplus extern "C" { #endif typedef unsigned long DWORD, *PDWORD; typedef unsigned short WORD, *PWORD; typedef unsigned char BYTE, *PBYTE; typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD; typedef struct _KPROCESS *PKPROCESS ,*PRKPROCESS; typedef struct _PEB *PPEB; typedef struct _KINTERRUPT *PKINTERRUPT; typedef struct _IO_TIMER *PIO_TIMER; typedef struct _OBJECT_TYPE *POBJECT_TYPE; typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT; typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT; typedef struct _BUS_HANDLER *PBUS_HANDLER; #define ACCESS_ALLOWED_ACE_TYPE (0x0) #define ACCESS_DENIED_ACE_TYPE (0x1) #define SYSTEM_AUDIT_ACE_TYPE (0x2) #define SYSTEM_ALARM_ACE_TYPE (0x3) #define ANSI_DOS_STAR ('<') #define ANSI_DOS_QM ('>') #define ANSI_DOS_DOT ('"') #define DOS_STAR (L'<') #define DOS_QM (L'>') #define DOS_DOT (L'"') #define FILE_ACTION_ADDED 0x00000001 #define FILE_ACTION_REMOVED 0x00000002 #define FILE_ACTION_MODIFIED 0x00000003 #define FILE_ACTION_RENAMED_OLD_NAME 0x00000004 #define FILE_ACTION_RENAMED_NEW_NAME 0x00000005 #define FILE_ACTION_ADDED_STREAM 0x00000006 #define FILE_ACTION_REMOVED_STREAM 0x00000007 #define FILE_ACTION_MODIFIED_STREAM 0x00000008 #define FILE_EA_TYPE_BINARY 0xfffe #define FILE_EA_TYPE_ASCII 0xfffd #define FILE_EA_TYPE_BITMAP 0xfffb #define FILE_EA_TYPE_METAFILE 0xfffa #define FILE_EA_TYPE_ICON 0xfff9 #define FILE_EA_TYPE_EA 0xffee #define FILE_EA_TYPE_MVMT 0xffdf #define FILE_EA_TYPE_MVST 0xffde #define FILE_EA_TYPE_ASN1 0xffdd #define FILE_EA_TYPE_FAMILY_IDS 0xff01 #define FILE_NEED_EA 0x00000080 #define FILE_NOTIFY_CHANGE_FILE_NAME 0x00000001 #define FILE_NOTIFY_CHANGE_DIR_NAME 0x00000002 #define FILE_NOTIFY_CHANGE_NAME 0x00000003 #define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x00000004 #define FILE_NOTIFY_CHANGE_SIZE 0x00000008 #define FILE_NOTIFY_CHANGE_LAST_WRITE 0x00000010 #define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x00000020 #define FILE_NOTIFY_CHANGE_CREATION 0x00000040 #define FILE_NOTIFY_CHANGE_EA 0x00000080 #define FILE_NOTIFY_CHANGE_SECURITY 0x00000100 #define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200 #define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400 #define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800 #define FILE_NOTIFY_VALID_MASK 0x00000fff #define FILE_OPLOCK_BROKEN_TO_LEVEL_2 0x00000007 #define FILE_OPLOCK_BROKEN_TO_NONE 0x00000008 #define FILE_OPBATCH_BREAK_UNDERWAY 0x00000009 #define FILE_CASE_SENSITIVE_SEARCH 0x00000001 #define FILE_CASE_PRESERVED_NAMES 0x00000002 #define FILE_UNICODE_ON_DISK 0x00000004 #define FILE_PERSISTENT_ACLS 0x00000008 #define FILE_FILE_COMPRESSION 0x00000010 #define FILE_VOLUME_IS_COMPRESSED 0x00008000 #define FILE_PIPE_BYTE_STREAM_TYPE 0x00000000 #define FILE_PIPE_MESSAGE_TYPE 0x00000001 #define FILE_PIPE_BYTE_STREAM_MODE 0x00000000 #define FILE_PIPE_MESSAGE_MODE 0x00000001 #define FILE_PIPE_QUEUE_OPERATION 0x00000000 #define FILE_PIPE_COMPLETE_OPERATION 0x00000001 #define FILE_PIPE_INBOUND 0x00000000 #define FILE_PIPE_OUTBOUND 0x00000001 #define FILE_PIPE_FULL_DUPLEX 0x00000002 #define FILE_PIPE_DISCONNECTED_STATE 0x00000001 #define FILE_PIPE_LISTENING_STATE 0x00000002 #define FILE_PIPE_CONNECTED_STATE 0x00000003 #define FILE_PIPE_CLOSING_STATE 0x00000004 #define FILE_PIPE_CLIENT_END 0x00000000 #define FILE_PIPE_SERVER_END 0x00000001 #define FILE_PIPE_READ_DATA 0x00000000 #define FILE_PIPE_WRITE_SPACE 0x00000001 #define FILE_STORAGE_TYPE_SPECIFIED 0x00000041 // FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE #define FILE_STORAGE_TYPE_DEFAULT (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_DIRECTORY (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_FILE (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_DOCFILE (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_JUNCTION_POINT (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_CATALOG (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_STRUCTURED_STORAGE (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_EMBEDDING (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT) #define FILE_STORAGE_TYPE_STREAM (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT) #define FILE_MINIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_DEFAULT #define FILE_MAXIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_STREAM #define FILE_STORAGE_TYPE_MASK 0x000f0000 #define FILE_STORAGE_TYPE_SHIFT 16 #define FILE_VC_QUOTA_NONE 0x00000000 #define FILE_VC_QUOTA_TRACK 0x00000001 #define FILE_VC_QUOTA_ENFORCE 0x00000002 #define FILE_VC_QUOTA_MASK 0x00000003 #define FILE_VC_QUOTAS_LOG_VIOLATIONS 0x00000004 #define FILE_VC_CONTENT_INDEX_DISABLED 0x00000008 #define FILE_VC_LOG_QUOTA_THRESHOLD 0x00000010 #define FILE_VC_LOG_QUOTA_LIMIT 0x00000020 #define FILE_VC_LOG_VOLUME_THRESHOLD 0x00000040 #define FILE_VC_LOG_VOLUME_LIMIT 0x00000080 #define FILE_VC_QUOTAS_INCOMPLETE 0x00000100 #define FILE_VC_QUOTAS_REBUILDING 0x00000200 #define FILE_VC_VALID_MASK 0x000003ff #define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_EX (0x08) #define FSRTL_FLAG_ACQUIRE_MAIN_RSRC_SH (0x10) #define FSRTL_FSP_TOP_LEVEL_IRP (0x01) #define FSRTL_CACHE_TOP_LEVEL_IRP (0x02) #define FSRTL_MOD_WRITE_TOP_LEVEL_IRP (0x03) #define FSRTL_FAST_IO_TOP_LEVEL_IRP (0x04) #define FSRTL_MAX_TOP_LEVEL_IRP_FLAG (0x04) #define FSRTL_WILD_CHARACTER 0x08 #define IO_CHECK_CREATE_PARAMETERS 0x0200 #define IO_ATTACH_DEVICE 0x0400 #define IO_ATTACH_DEVICE_API 0x80000000 #define IO_COMPLETION_QUERY_STATE 0x0001 #define IO_COMPLETION_MODIFY_STATE 0x0002 #define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3) #define IO_TYPE_APC 18 #define IO_TYPE_DPC 19 #define IO_TYPE_DEVICE_QUEUE 20 #define IO_TYPE_EVENT_PAIR 21 #define IO_TYPE_INTERRUPT 22 #define IO_TYPE_PROFILE 23 #define LPC_REQUEST 0x0001 #define LPC_REPLY 0x0002 #define LPC_DATAGRAM 0x0003 #define LPC_LOST_REPLY 0x0004 #define LPC_PORT_CLOSED 0x0005 #define LPC_CLIENT_DIED 0x0006 #define LPC_EXCEPTION 0x0007 #define LPC_DEBUG_EVENT 0x0008 #define LPC_ERROR_EVENT 0x0009 #define LPC_CONNECTION_REQUEST 0x000A #define MAILSLOT_CLASS_FIRSTCLASS 1 #define MAILSLOT_CLASS_SECONDCLASS 2 #define MAILSLOT_SIZE_AUTO 0 #define MAP_PROCESS 1L #define MAP_SYSTEM 2L #define MEM_DOS_LIM 0x40000000 #define MEM_IMAGE SEC_IMAGE #define OB_TYPE_TYPE 1 #define OB_TYPE_DIRECTORY 2 #define OB_TYPE_SYMBOLIC_LINK 3 #define OB_TYPE_TOKEN 4 #define OB_TYPE_PROCESS 5 #define OB_TYPE_THREAD 6 #define OB_TYPE_EVENT 7 #define OB_TYPE_EVENT_PAIR 8 #define OB_TYPE_MUTANT 9 #define OB_TYPE_SEMAPHORE 10 #define OB_TYPE_TIMER 11 #define OB_TYPE_PROFILE 12 #define OB_TYPE_WINDOW_STATION 13 #define OB_TYPE_DESKTOP 14 #define OB_TYPE_SECTION 15 #define OB_TYPE_KEY 16 #define OB_TYPE_PORT 17 #define OB_TYPE_ADAPTER 18 #define OB_TYPE_CONTROLLER 19 #define OB_TYPE_DEVICE 20 #define OB_TYPE_DRIVER 21 #define OB_TYPE_IO_COMPLETION 22 #define OB_TYPE_FILE 23 #define PORT_CONNECT 0x0001 #define PORT_ALL_ACCESS (STANDARD_RIGHTS_ALL |\ PORT_CONNECT) #define SEC_BASED 0x00200000 #define SEC_NO_CHANGE 0x00400000 #define SEC_FILE 0x00800000 #define SEC_IMAGE 0x01000000 //#define SEC_COMMIT 0x08000000 #define SEC_NOCACHE 0x10000000 #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1} #define SECURITY_WORLD_RID (0x00000000L) #define THREAD_STATE_INITIALIZED 0 #define THREAD_STATE_READY 1 #define THREAD_STATE_RUNNING 2 #define THREAD_STATE_STANDBY 3 #define THREAD_STATE_TERMINATED 4 #define THREAD_STATE_WAIT 5 #define THREAD_STATE_TRANSITION 6 #define THREAD_STATE_UNKNOWN 7 #define TOKEN_ASSIGN_PRIMARY (0x0001) #define TOKEN_DUPLICATE (0x0002) #define TOKEN_IMPERSONATE (0x0004) #define TOKEN_QUERY (0x0008) #define TOKEN_QUERY_SOURCE (0x0010) #define TOKEN_ADJUST_PRIVILEGES (0x0020) #define TOKEN_ADJUST_GROUPS (0x0040) #define TOKEN_ADJUST_DEFAULT (0x0080) #define 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) #define TOKEN_READ (STANDARD_RIGHTS_READ |\ TOKEN_QUERY) #define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\ TOKEN_ADJUST_PRIVILEGES |\ TOKEN_ADJUST_GROUPS |\ TOKEN_ADJUST_DEFAULT) #define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE) #define TOKEN_SOURCE_LENGTH 8 #define FSCTL_GET_VOLUME_INFORMATION 0x90064 #define FSCTL_READ_MFT_RECORD 0x90068 #define FSCTL_MAILSLOT_PEEK CTL_CODE(FILE_DEVICE_MAILSLOT, 0, METHOD_NEITHER, FILE_READ_DATA) #define FSCTL_PIPE_ASSIGN_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_DISCONNECT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_LISTEN CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_PEEK CTL_CODE(FILE_DEVICE_NAMED_PIPE, 3, METHOD_BUFFERED, FILE_READ_DATA) #define FSCTL_PIPE_QUERY_EVENT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 5, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) #define FSCTL_PIPE_WAIT CTL_CODE(FILE_DEVICE_NAMED_PIPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_SET_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_QUERY_CLIENT_PROCESS CTL_CODE(FILE_DEVICE_NAMED_PIPE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS) #define FSCTL_PIPE_INTERNAL_READ CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2045, METHOD_BUFFERED, FILE_READ_DATA) #define FSCTL_PIPE_INTERNAL_WRITE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2046, METHOD_BUFFERED, FILE_WRITE_DATA) #define FSCTL_PIPE_INTERNAL_TRANSCEIVE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2047, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA) #define FSCTL_PIPE_INTERNAL_READ_OVFLOW CTL_CODE(FILE_DEVICE_NAMED_PIPE, 2048, METHOD_BUFFERED, FILE_READ_DATA) #define IOCTL_REDIR_QUERY_PATH CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS) typedef PVOID PNOTIFY_SYNC; typedef PVOID POBJECT; typedef PVOID PPS_IMPERSONATION_INFO; typedef PVOID PSECURITY_CLIENT_CONTEXT; typedef struct _EPROCESS_QUOTA_BLOCK *PEPROCESS_QUOTA_BLOCK; typedef struct _HANDLE_TABLE *PHANDLE_TABLE; typedef struct _KEVENT_PAIR *PKEVENT_PAIR; typedef struct _LPC_MESSAGE *PLPC_MESSAGE; typedef struct _MMWSL *PMMWSL; typedef struct _PEB *PPEB; typedef struct _SERVICE_DESCRIPTOR_TABLE *PSERVICE_DESCRIPTOR_TABLE; typedef struct _TEB *PTEB; typedef struct _SYSTEM_QUERY_TIME_ADJUSTMENT { ULONG TimeAdjustment; ULONG MaximumIncrement; BOOLEAN TimeSynchronization; }SYSTEM_QUERY_TIME_ADJUSTMENT,*PSYSTEM_QUERY_TIME_ADJUSTMENT; typedef enum _FAST_IO_POSSIBLE { FastIoIsPossible, FastIoIsNotPossible, FastIoIsQuestionable } FAST_IO_POSSIBLE; typedef enum _FILE_STORAGE_TYPE { StorageTypeDefault = 1, StorageTypeDirectory, StorageTypeFile, StorageTypeJunctionPoint, StorageTypeCatalog, StorageTypeStructuredStorage, StorageTypeEmbedding, StorageTypeStream } FILE_STORAGE_TYPE; typedef enum _IO_COMPLETION_INFORMATION_CLASS { IoCompletionBasicInformation } IO_COMPLETION_INFORMATION_CLASS; typedef enum _MMFLUSH_TYPE { MmFlushForDelete, MmFlushForWrite } MMFLUSH_TYPE; typedef enum _OBJECT_INFO_CLASS { ObjectBasicInfo, ObjectNameInfo, ObjectTypeInfo, ObjectAllTypesInfo, ObjectProtectionInfo } OBJECT_INFO_CLASS; typedef enum _PORT_INFORMATION_CLASS { PortNoInformation } PORT_INFORMATION_CLASS; typedef enum _SID_NAME_USE { SidTypeUser = 1, SidTypeGroup, SidTypeDomain, SidTypeAlias, SidTypeWellKnownGroup, SidTypeDeletedAccount, SidTypeInvalid, SidTypeUnknown } SID_NAME_USE; typedef enum _TOKEN_INFORMATION_CLASS { TokenUser = 1, TokenGroups, TokenPrivileges, TokenOwner, TokenPrimaryGroup, TokenDefaultDacl, TokenSource, TokenType, TokenImpersonationLevel, TokenStatistics, TokenRestrictedSids } TOKEN_INFORMATION_CLASS; typedef enum _TOKEN_TYPE { TokenPrimary = 1, TokenImpersonation } TOKEN_TYPE; typedef struct _HARDWARE_PTE { ULONG Valid : 1; ULONG Write : 1; ULONG Owner : 1; ULONG WriteThrough : 1; ULONG CacheDisable : 1; ULONG Accessed : 1; ULONG Dirty : 1; ULONG LargePage : 1; ULONG Global : 1; ULONG CopyOnWrite : 1; ULONG Prototype : 1; ULONG Reserved : 1; ULONG PageFrameNumber : 20; } HARDWARE_PTE, *PHARDWARE_PTE; typedef struct _KAPC_STATE { LIST_ENTRY ApcListHead[2]; PEPROCESS Process; BOOLEAN KernelApcInProgress; BOOLEAN KernelApcPending; BOOLEAN UserApcPending; } KAPC_STATE, *PKAPC_STATE; typedef struct _KTRAP_FRAME { DWORD DbgEbp; DWORD DbgEip; DWORD DbgArgMark; DWORD DbgArgPointer; DWORD TempSegCs; DWORD TempEsp; DWORD Dr0; DWORD Dr1; DWORD Dr2; DWORD Dr3; DWORD Dr6; DWORD Dr7; DWORD SegGs; DWORD SegEs; DWORD SegDs; DWORD Edx; DWORD Ecx; DWORD Eax; DWORD PreviousPreviousMode; struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; DWORD SegFs; DWORD Edi; DWORD Esi; DWORD Ebx; DWORD Ebp; DWORD ErrCode; DWORD Eip; DWORD SegCs; DWORD EFlags; DWORD HardwareEsp; DWORD HardwareSegSs; DWORD V86Es; DWORD V86Ds; DWORD V86Fs; DWORD V86Gs; } KTRAP_FRAME; typedef struct _KPROCESS { DISPATCHER_HEADER Header; LIST_ENTRY ProfileListHead; UCHAR DirectoryTableBase[8]; UCHAR LdtDescriptor[8]; UCHAR Int21Descriptor[8]; USHORT IopmOffset; UCHAR Iopl; UCHAR VdmFlag; ULONG ActiveProcessors; ULONG KernelTime; ULONG UserTime; LIST_ENTRY ReadyListHead; LIST_ENTRY SwapListEntry; LIST_ENTRY ThreadListHead; KSPIN_LOCK ProcessLock; KAFFINITY Affinity; USHORT StackCount; UCHAR BasePriority; UCHAR ThreadQuantum; BOOLEAN AutoAlignment; UCHAR State; UCHAR ThreadSeed; BOOLEAN DisableBoost; } KPROCESS, *PKPROCESS; typedef struct _KTHREAD { DISPATCHER_HEADER Header; LIST_ENTRY MutantListHead; PVOID InitialStack; PVOID StackLimit; PTEB Teb; PVOID TlsArray; PVOID KernelStack; BOOLEAN DebugActive; UCHAR State; USHORT Alerted; UCHAR Iopl; UCHAR NpxState; UCHAR Saturation; UCHAR Priority; KAPC_STATE ApcState; ULONG ContextSwitches; NTSTATUS WaitStatus; UCHAR WaitIrql; UCHAR WaitMode; UCHAR WaitNext; UCHAR WaitReason; PVOID WaitBlockList; LIST_ENTRY WaitListEntry; ULONG WaitTime; UCHAR BasePriority; UCHAR DecrementCount; UCHAR PriorityDecrement; UCHAR Quantum; KWAIT_BLOCK WaitBlock[4]; ULONG LegoData; ULONG KernelApcDisable; ULONG UserAffinity; BOOLEAN SystemAffinityActive; UCHAR Pad[3]; PSERVICE_DESCRIPTOR_TABLE ServiceDescriptorTable; PVOID Queue; KSPIN_LOCK ApcQueueLock; KTIMER Timer; LIST_ENTRY QueueListEntry; ULONG Affinity; BOOLEAN Preempted; BOOLEAN ProcessReadyQueue; BOOLEAN KernelStackResident; UCHAR NextProcessor; PVOID CallbackStack; PVOID Win32Thread; KTRAP_FRAME *TrapFrame; PVOID ApcStatePointer[2]; BOOLEAN EnableStackSwap; BOOLEAN LargeStack; UCHAR ResourceIndex; UCHAR PreviousMode; ULONG KernelTime; ULONG UserTime; KAPC_STATE SavedApcState; BOOLEAN Alertable; UCHAR ApcStateIndex; BOOLEAN ApcQueueable; BOOLEAN AutoAlignment; PVOID StackBase; KAPC SuspendApc; KSEMAPHORE SuspendSemaphore; LIST_ENTRY ThreadListEntry; UCHAR FreezeCount; UCHAR SuspendCount; UCHAR IdealProcessor; BOOLEAN DisableBoost; } KTHREAD, *PKTHREAD; typedef struct _MMSUPPORT { LARGE_INTEGER LastTrimTime; ULONG LastTrimFaultCount; ULONG PageFaultCount; ULONG PeakWorkingSetSize; ULONG WorkingSetSize; ULONG MinimumWorkingSetSize; ULONG MaximumWorkingSetSize; PMMWSL VmWorkingSetList; LIST_ENTRY WorkingSetExpansionLinks; BOOLEAN AllowWorkingSetAdjustment; BOOLEAN AddressSpaceBeingDeleted; UCHAR ForegroundSwitchCount; UCHAR MemoryPriority; } MMSUPPORT, *PMMSUPPORT; typedef struct _SID_IDENTIFIER_AUTHORITY { UCHAR Value[6]; } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; typedef struct _SID { UCHAR Revision; UCHAR SubAuthorityCount; SID_IDENTIFIER_AUTHORITY IdentifierAuthority; ULONG SubAuthority[1]; } SID, *PREAL_SID; typedef struct _BITMAP_DESCRIPTOR { ULONGLONG StartLcn; ULONGLONG ClustersToEndOfVol; UCHAR Map[1]; } BITMAP_DESCRIPTOR, *PBITMAP_DESCRIPTOR; typedef struct _CACHE_UNINITIALIZE_EVENT { struct _CACHE_UNINITIALIZE_EVENT *Next; KEVENT Event; } CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT; typedef struct _CC_FILE_SIZES { LARGE_INTEGER AllocationSize; LARGE_INTEGER FileSize; LARGE_INTEGER ValidDataLength; } CC_FILE_SIZES, *PCC_FILE_SIZES; typedef struct _EPROCESS { KPROCESS Pcb; NTSTATUS ExitStatus; KEVENT LockEvent; ULONG LockCount; LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; PKTHREAD LockOwner; ULONG UniqueProcessId; LIST_ENTRY ActiveProcessLinks; ULONGLONG QuotaPeakPoolUsage; ULONGLONG QuotaPoolUsage; ULONG PagefileUsage; ULONG CommitCharge; ULONG PeakPagefileUsage; ULONG PeakVirtualSize; ULONGLONG VirtualSize; MMSUPPORT Vm; ULONG LastProtoPteFault; ULONG DebugPort; ULONG ExceptionPort; PHANDLE_TABLE ObjectTable; PACCESS_TOKEN Token; KMUTEX WorkingSetLock; ULONG WorkingSetPage; BOOLEAN ProcessOutswapEnabled; BOOLEAN ProcessOutswapped; BOOLEAN AddressSpaceInitialized; BOOLEAN AddressSpaceDeleted; KMUTEX AddressCreationLock; KSPIN_LOCK HyperSpaceLock; PETHREAD ForkInProgress; USHORT VmOperation; BOOLEAN ForkWasSuccessful; UCHAR MmAgressiveWsTrimMask; PKEVENT VmOperationEvent; HARDWARE_PTE PageDirectoryPte; ULONG LastFaultCount; ULONG ModifiedPageCount; PVOID VadRoot; PVOID VadHint; ULONG CloneRoot; ULONG NumberOfPrivatePages; ULONG NumberOfLockedPages; USHORT NextPageColor; BOOLEAN ExitProcessCalled; BOOLEAN CreateProcessReported; HANDLE SectionHandle; PPEB Peb; PVOID SectionBaseAddress; PEPROCESS_QUOTA_BLOCK QuotaBlock; NTSTATUS LastThreadExitStatus; PPROCESS_WS_WATCH_INFORMATION WorkingSetWatch; HANDLE Win32WindowStation; HANDLE InheritedFromUniqueProcessId; ACCESS_MASK GrantedAccess; ULONG DefaultHardErrorProcessing; PVOID LdtInformation; PVOID VadFreeHint; PVOID VdmObjects; KMUTANT ProcessMutant; UCHAR ImageFileName[16]; ULONG VmTrimFaultValue; UCHAR SetTimerResolution; UCHAR PriorityClass; UCHAR SubSystemMinorVersion; UCHAR SubSystemMajorVersion; PVOID Win32Process; } EPROCESS, *PEPROCESS; typedef struct _MMVad{ DWORD StartingVpn; DWORD EndingVpn; struct _MMVad* Parent; struct _MMVad* LeftChild; struct _MMVad* RightChild; struct { DWORD CommitCharge:19; DWORD PhysicalMapping:1; DWORD ImageMap:1; DWORD UserPhysicalPages:1; DWORD NoChange:1; DWORD WriteWatch:1; DWORD Protection:5; DWORD LargePages:1; DWORD MemCommit:1; DWORD PrivateMemory:1; }u; PVOID ControlArea; DWORD FirstPrototypePte; DWORD LastContiguousPte; struct { DWORD FileOffset:24; DWORD SecNoChange:1; DWORD OneSecured:1; DWORD MultipleSecured:1; DWORD ReadOnly:1; DWORD LongVad:1; DWORD ExtendableFile:1; DWORD Inherit:1; DWORD CopyOnWrite:1; }u2; }MMVad,*PMMVad; typedef struct _ETHREAD { KTHREAD Tcb; LARGE_INTEGER CreateTime; LARGE_INTEGER ExitTime; NTSTATUS ExitStatus; LIST_ENTRY PostBlockList; LIST_ENTRY TerminationPortList; KSPIN_LOCK ActiveTimerListLock; LIST_ENTRY ActiveTimerListHead; CLIENT_ID Cid; KSEMAPHORE LpcReplySemaphore; PLPC_MESSAGE LpcReplyMessage; ULONG LpcReplyMessageId; ULONG PerformanceCountLow; PPS_IMPERSONATION_INFO ImpersonationInfo; LIST_ENTRY IrpList; PVOID TopLevelIrp; PVOID DeviceToVerify; ULONG ReadClusterSize; BOOLEAN ForwardClusterOnly; BOOLEAN DisablePageFaultClustering; BOOLEAN DeadThread; BOOLEAN HasTerminated; PKEVENT_PAIR EventPair; ACCESS_MASK GrantedAccess; PEPROCESS ThreadsProcess; PKSTART_ROUTINE StartAddress; PVOID Win32StartAddress; BOOLEAN LpcExitThreadCalled; BOOLEAN HardErrorsAreDisabled; BOOLEAN LpcReceivedMsgIdValid; BOOLEAN ActiveImpersonationInfo; ULONG PerformanceCountHigh; } ETHREAD, *PETHREAD; /* * When needing these parameters cast your PIO_STACK_LOCATION to * PEXTENDED_IO_STACK_LOCATION */ #if !defined(_ALPHA_) #include #endif typedef struct _EXTENDED_IO_STACK_LOCATION { /* Included for padding */ UCHAR MajorFunction; UCHAR MinorFunction; UCHAR Flags; UCHAR Control; union { struct { ULONG OutputBufferLength; ULONG InputBufferLength; ULONG FsControlCode; PVOID Type3InputBuffer; } FileSystemControl; struct { PLARGE_INTEGER Length; ULONG Key; LARGE_INTEGER ByteOffset; } LockControl; struct { ULONG Length; ULONG CompletionFilter; } NotifyDirectory; struct { ULONG Length; PUNICODE_STRING FileName; FILE_INFORMATION_CLASS FileInformationClass; ULONG FileIndex; } QueryDirectory; struct { ULONG Length; PVOID EaList; ULONG EaListLength; ULONG EaaIndex; } QueryEa; struct { ULONG Length; FS_INFORMATION_CLASS FsInformationClass; } SetVolume; } Parameters; } EXTENDED_IO_STACK_LOCATION, *PEXTENDED_IO_STACK_LOCATION; #if !defined(_ALPHA_) #include #endif typedef struct _FILE_ACCESS_INFORMATION { ACCESS_MASK AccessFlags; } FILE_ACCESS_INFORMATION, *PFILE_ACCESS_INFORMATION; typedef struct _FILE_ALLOCATION_INFORMATION { LARGE_INTEGER AllocationSize; } FILE_ALLOCATION_INFORMATION, *PFILE_ALLOCATION_INFORMATION; typedef struct _FILE_BOTH_DIR_INFORMATION { ULONG NextEntryOffset; ULONG FileIndex; LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER EndOfFile; LARGE_INTEGER AllocationSize; ULONG FileAttributes; ULONG FileNameLength; ULONG EaSize; CCHAR ShortNameLength; WCHAR ShortName[12]; WCHAR FileName[1]; } FILE_BOTH_DIR_INFORMATION, *PFILE_BOTH_DIR_INFORMATION; typedef struct _FILE_COMPLETION_INFORMATION { HANDLE Port; ULONG Key; } FILE_COMPLETION_INFORMATION, *PFILE_COMPLETION_INFORMATION; typedef struct _FILE_COMPRESSION_INFORMATION { LARGE_INTEGER CompressedFileSize; USHORT CompressionFormat; UCHAR CompressionUnitShift; UCHAR ChunkShift; UCHAR ClusterShift; UCHAR Reserved[3]; } FILE_COMPRESSION_INFORMATION, *PFILE_COMPRESSION_INFORMATION; typedef struct _FILE_COPY_ON_WRITE_INFORMATION { BOOLEAN ReplaceIfExists; HANDLE RootDirectory; ULONG FileNameLength; WCHAR FileName[1]; } FILE_COPY_ON_WRITE_INFORMATION, *PFILE_COPY_ON_WRITE_INFORMATION; typedef struct _FILE_DIRECTORY_INFORMATION { ULONG NextEntryOffset; ULONG FileIndex; LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER EndOfFile; LARGE_INTEGER AllocationSize; ULONG FileAttributes; ULONG FileNameLength; WCHAR FileName[1]; } FILE_DIRECTORY_INFORMATION, *PFILE_DIRECTORY_INFORMATION; typedef struct _FILE_EA_INFORMATION { ULONG EaSize; } FILE_EA_INFORMATION, *PFILE_EA_INFORMATION; typedef struct _FILE_FS_ATTRIBUTE_INFORMATION { ULONG FileSystemAttributes; LONG MaximumComponentNameLength; ULONG FileSystemNameLength; WCHAR FileSystemName[1]; } FILE_FS_ATTRIBUTE_INFORMATION, *PFILE_FS_ATTRIBUTE_INFORMATION; typedef struct _FILE_FS_CONTROL_INFORMATION { LARGE_INTEGER FreeSpaceStartFiltering; LARGE_INTEGER FreeSpaceThreshold; LARGE_INTEGER FreeSpaceStopFiltering; LARGE_INTEGER DefaultQuotaThreshold; LARGE_INTEGER DefaultQuotaLimit; ULONG FileSystemControlFlags; } FILE_FS_CONTROL_INFORMATION, *PFILE_FS_CONTROL_INFORMATION; // typedef struct _FILE_FS_LABEL_INFORMATION { // ULONG VolumeLabelLength; // WCHAR VolumeLabel[1]; // } FILE_FS_LABEL_INFORMATION, *PFILE_FS_LABEL_INFORMATION; // typedef struct _FILE_FS_SIZE_INFORMATION { // LARGE_INTEGER TotalAllocationUnits; // LARGE_INTEGER AvailableAllocationUnits; // ULONG SectorsPerAllocationUnit; // ULONG BytesPerSector; // } FILE_FS_SIZE_INFORMATION, *PFILE_FS_SIZE_INFORMATION; // typedef struct _FILE_FS_VOLUME_INFORMATION { // LARGE_INTEGER VolumeCreationTime; // ULONG VolumeSerialNumber; // ULONG VolumeLabelLength; // BOOLEAN SupportsObjects; // WCHAR VolumeLabel[1]; // } FILE_FS_VOLUME_INFORMATION, *PFILE_FS_VOLUME_INFORMATION; typedef struct _FILE_FULL_DIR_INFORMATION { ULONG NextEntryOffset; ULONG FileIndex; LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER EndOfFile; LARGE_INTEGER AllocationSize; ULONG FileAttributes; ULONG FileNameLength; ULONG EaSize; WCHAR FileName[1]; } FILE_FULL_DIR_INFORMATION, *PFILE_FULL_DIR_INFORMATION; typedef struct _FILE_GET_EA_INFORMATION { ULONG NextEntryOffset; UCHAR EaNameLength; CHAR EaName[1]; } FILE_GET_EA_INFORMATION, *PFILE_GET_EA_INFORMATION; typedef struct _FILE_GET_QUOTA_INFORMATION { ULONG NextEntryOffset; ULONG SidLength; SID Sid; } FILE_GET_QUOTA_INFORMATION, *PFILE_GET_QUOTA_INFORMATION; typedef struct _FILE_INTERNAL_INFORMATION { LARGE_INTEGER IndexNumber; } FILE_INTERNAL_INFORMATION, *PFILE_INTERNAL_INFORMATION; typedef struct _FILE_LINK_INFORMATION { BOOLEAN ReplaceIfExists; HANDLE RootDirectory; ULONG FileNameLength; WCHAR FileName[1]; } FILE_LINK_INFORMATION, *PFILE_LINK_INFORMATION; typedef struct _FILE_LOCK_ANCHOR { LIST_ENTRY GrantedFileLockList; LIST_ENTRY PendingFileLockList; } FILE_LOCK_ANCHOR, *PFILE_LOCK_ANCHOR; typedef struct _FILE_MAILSLOT_PEEK_BUFFER { ULONG ReadDataAvailable; ULONG NumberOfMessages; ULONG MessageLength; } FILE_MAILSLOT_PEEK_BUFFER, *PFILE_MAILSLOT_PEEK_BUFFER; typedef struct _FILE_MAILSLOT_QUERY_INFORMATION { ULONG MaximumMessageSize; ULONG MailslotQuota; ULONG NextMessageSize; ULONG MessagesAvailable; LARGE_INTEGER ReadTimeout; } FILE_MAILSLOT_QUERY_INFORMATION, *PFILE_MAILSLOT_QUERY_INFORMATION; typedef struct _FILE_MAILSLOT_SET_INFORMATION { PLARGE_INTEGER ReadTimeout; } FILE_MAILSLOT_SET_INFORMATION, *PFILE_MAILSLOT_SET_INFORMATION; typedef struct _FILE_MODE_INFORMATION { ULONG Mode; } FILE_MODE_INFORMATION, *PFILE_MODE_INFORMATION; // This structure is included in the Windows 2000 DDK but is missing in the // Windows NT 4.0 DDK #if (_WIN32_WINNT < 0x0500) typedef struct _FILE_NAME_INFORMATION { ULONG FileNameLength; WCHAR FileName[1]; } FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION; #endif // (_WIN32_WINNT < 0x0500) typedef struct _FILE_ALL_INFORMATION { FILE_BASIC_INFORMATION BasicInformation; FILE_STANDARD_INFORMATION StandardInformation; FILE_INTERNAL_INFORMATION InternalInformation; FILE_EA_INFORMATION EaInformation; FILE_ACCESS_INFORMATION AccessInformation; FILE_POSITION_INFORMATION PositionInformation; FILE_MODE_INFORMATION ModeInformation; FILE_ALIGNMENT_INFORMATION AlignmentInformation; FILE_NAME_INFORMATION NameInformation; } FILE_ALL_INFORMATION, *PFILE_ALL_INFORMATION; typedef struct _FILE_NAMES_INFORMATION { ULONG NextEntryOffset; ULONG FileIndex; ULONG FileNameLength; WCHAR FileName[1]; } FILE_NAMES_INFORMATION, *PFILE_NAMES_INFORMATION; typedef struct _FILE_NOTIFY_INFORMATION { ULONG NextEntryOffset; ULONG Action; ULONG FileNameLength; WCHAR FileName[1]; } FILE_NOTIFY_INFORMATION, *PFILE_NOTIFY_INFORMATION; typedef struct _FILE_OBJECTID_INFORMATION { OBJECTID ObjectId; } FILE_OBJECTID_INFORMATION, *PFILE_OBJECTID_INFORMATION; typedef struct _FILE_OLE_CLASSID_INFORMATION { GUID ClassId; } FILE_OLE_CLASSID_INFORMATION, *PFILE_OLE_CLASSID_INFORMATION; typedef struct _FILE_OLE_ALL_INFORMATION { FILE_BASIC_INFORMATION BasicInformation; FILE_STANDARD_INFORMATION StandardInformation; FILE_INTERNAL_INFORMATION InternalInformation; FILE_EA_INFORMATION EaInformation; FILE_ACCESS_INFORMATION AccessInformation; FILE_POSITION_INFORMATION PositionInformation; FILE_MODE_INFORMATION ModeInformation; FILE_ALIGNMENT_INFORMATION AlignmentInformation; USN LastChangeUsn; USN ReplicationUsn; LARGE_INTEGER SecurityChangeTime; FILE_OLE_CLASSID_INFORMATION OleClassIdInformation; FILE_OBJECTID_INFORMATION ObjectIdInformation; FILE_STORAGE_TYPE StorageType; ULONG OleStateBits; ULONG OleId; ULONG NumberOfStreamReferences; ULONG StreamIndex; ULONG SecurityId; BOOLEAN ContentIndexDisable; BOOLEAN InheritContentIndexDisable; FILE_NAME_INFORMATION NameInformation; } FILE_OLE_ALL_INFORMATION, *PFILE_OLE_ALL_INFORMATION; typedef struct _FILE_OLE_DIR_INFORMATION { ULONG NextEntryOffset; ULONG FileIndex; LARGE_INTEGER CreationTime; LARGE_INTEGER LastAccessTime; LARGE_INTEGER LastWriteTime; LARGE_INTEGER ChangeTime; LARGE_INTEGER EndOfFile; LARGE_INTEGER AllocationSize; ULONG FileAttributes; ULONG FileNameLength; FILE_STORAGE_TYPE StorageType; GUID OleClassId; ULONG OleStateBits; BOOLEAN ContentIndexDisable; BOOLEAN InheritContentIndexDisable; WCHAR FileName[1]; } FILE_OLE_DIR_INFORMATION, *PFILE_OLE_DIR_INFORMATION; typedef struct _FILE_OLE_INFORMATION { LARGE_INTEGER SecurityChangeTime; FILE_OLE_CLASSID_INFORMATION OleClassIdInformation; FILE_OBJECTID_INFORMATION ObjectIdInformation; FILE_STORAGE_TYPE StorageType; ULONG OleStateBits; BOOLEAN ContentIndexDisable; BOOLEAN InheritContentIndexDisable; } FILE_OLE_INFORMATION, *PFILE_OLE_INFORMATION; typedef struct _FILE_OLE_STATE_BITS_INFORMATION { ULONG StateBits; ULONG StateBitsMask; } FILE_OLE_STATE_BITS_INFORMATION, *PFILE_OLE_STATE_BITS_INFORMATION; typedef struct _FILE_PIPE_ASSIGN_EVENT_BUFFER { HANDLE EventHandle; ULONG KeyValue; } FILE_PIPE_ASSIGN_EVENT_BUFFER, *PFILE_PIPE_ASSIGN_EVENT_BUFFER; typedef struct _FILE_PIPE_CLIENT_PROCESS_BUFFER { PVOID ClientSession; PVOID ClientProcess; } FILE_PIPE_CLIENT_PROCESS_BUFFER, *PFILE_PIPE_CLIENT_PROCESS_BUFFER; typedef struct _FILE_PIPE_EVENT_BUFFER { ULONG NamedPipeState; ULONG EntryType; ULONG ByteCount; ULONG KeyValue; ULONG NumberRequests; } FILE_PIPE_EVENT_BUFFER, *PFILE_PIPE_EVENT_BUFFER; typedef struct _FILE_PIPE_INFORMATION { ULONG ReadMode; ULONG CompletionMode; } FILE_PIPE_INFORMATION, *PFILE_PIPE_INFORMATION; typedef struct _FILE_PIPE_LOCAL_INFORMATION { ULONG NamedPipeType; ULONG NamedPipeConfiguration; ULONG MaximumInstances; ULONG CurrentInstances; ULONG InboundQuota; ULONG ReadDataAvailable; ULONG OutboundQuota; ULONG WriteQuotaAvailable; ULONG NamedPipeState; ULONG NamedPipeEnd; } FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION; typedef struct _FILE_PIPE_PEEK_BUFFER { ULONG NamedPipeState; ULONG ReadDataAvailable; ULONG NumberOfMessages; ULONG MessageLength; CHAR Data[1]; } FILE_PIPE_PEEK_BUFFER, *PFILE_PIPE_PEEK_BUFFER; typedef struct _FILE_PIPE_REMOTE_INFORMATION { LARGE_INTEGER CollectDataTime; ULONG MaximumCollectionCount; } FILE_PIPE_REMOTE_INFORMATION, *PFILE_PIPE_REMOTE_INFORMATION; typedef struct _FILE_PIPE_WAIT_FOR_BUFFER { LARGE_INTEGER Timeout; ULONG NameLength; BOOLEAN TimeoutSpecified; WCHAR Name[1]; } FILE_PIPE_WAIT_FOR_BUFFER, *PFILE_PIPE_WAIT_FOR_BUFFER; typedef struct _FILE_QUOTA_INFORMATION { ULONG NextEntryOffset; ULONG SidLength; LARGE_INTEGER ChangeTime; LARGE_INTEGER QuotaUsed; LARGE_INTEGER QuotaThreshold; LARGE_INTEGER QuotaLimit; SID Sid; } FILE_QUOTA_INFORMATION, *PFILE_QUOTA_INFORMATION; typedef struct _FILE_RENAME_INFORMATION { BOOLEAN ReplaceIfExists; HANDLE RootDirectory; ULONG FileNameLength; WCHAR FileName[1]; } FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION; typedef struct _FILE_STREAM_INFORMATION { ULONG NextEntryOffset; ULONG StreamNameLength; LARGE_INTEGER StreamSize; LARGE_INTEGER StreamAllocationSize; WCHAR StreamName[1]; } FILE_STREAM_INFORMATION, *PFILE_STREAM_INFORMATION; typedef struct _FSRTL_COMMON_FCB_HEADER { CSHORT NodeTypeCode; CSHORT NodeByteSize; UCHAR Flags; UCHAR IsFastIoPossible; #if (_WIN32_WINNT >= 0x0400) UCHAR Flags2; UCHAR Reserved; #endif // (_WIN32_WINNT >= 0x0400) PERESOURCE Resource; PERESOURCE PagingIoResource; LARGE_INTEGER AllocationSize; LARGE_INTEGER FileSize; LARGE_INTEGER ValidDataLength; } FSRTL_COMMON_FCB_HEADER, *PFSRTL_COMMON_FCB_HEADER; typedef struct _GENERATE_NAME_CONTEXT { USHORT Checksum; BOOLEAN CheckSumInserted; UCHAR NameLength; WCHAR NameBuffer[8]; ULONG ExtensionLength; WCHAR ExtensionBuffer[4]; ULONG LastIndexValue; } GENERATE_NAME_CONTEXT, *PGENERATE_NAME_CONTEXT; typedef struct _MAPPING_PAIR { ULONGLONG Vcn; ULONGLONG Lcn; } MAPPING_PAIR, *PMAPPING_PAIR; typedef struct _GET_RETRIEVAL_DESCRIPTOR { ULONG NumberOfPairs; ULONGLONG StartVcn; MAPPING_PAIR Pair[1]; } GET_RETRIEVAL_DESCRIPTOR, *PGET_RETRIEVAL_DESCRIPTOR; typedef struct _IO_COMPLETION_BASIC_INFORMATION { LONG Depth; } IO_COMPLETION_BASIC_INFORMATION, *PIO_COMPLETION_BASIC_INFORMATION; typedef struct _KEVENT_PAIR { USHORT Type; USHORT Size; KEVENT Event1; KEVENT Event2; } KEVENT_PAIR, *PKEVENT_PAIR; typedef struct _KQUEUE { DISPATCHER_HEADER Header; LIST_ENTRY EntryListHead; ULONG CurrentCount; ULONG MaximumCount; LIST_ENTRY ThreadListHead; } KQUEUE, *PKQUEUE; typedef struct _LPC_MESSAGE { USHORT DataLength; USHORT Length; USHORT MessageType; USHORT DataInfoOffset; CLIENT_ID ClientId; ULONG MessageId; ULONG CallbackId; } LPC_MESSAGE, *PLPC_MESSAGE; typedef struct _LPC_OTHER_SIDE_MEMORY { ULONG Length; ULONG ViewSize; PVOID ViewBase; } LPC_OTHER_SIDE_MEMORY, *PLPC_OTHER_SIDE_MEMORY; typedef struct _LPC_THIS_SIDE_MEMORY { ULONG Length; HANDLE SectionHandle; ULONG OffsetInSection; ULONG ViewSize; PVOID ViewBase; PVOID OtherSideViewBase; } LPC_THIS_SIDE_MEMORY, *PLPC_THIS_SIDE_MEMORY; typedef struct _MOVEFILE_DESCRIPTOR { HANDLE FileHandle; ULONG Reserved; LARGE_INTEGER StartVcn; LARGE_INTEGER TargetLcn; ULONG NumVcns; ULONG Reserved1; } MOVEFILE_DESCRIPTOR, *PMOVEFILE_DESCRIPTOR; typedef struct _OBJECT_BASIC_INFO { UCHAR Unknown1[8]; ULONG HandleCount; ULONG ReferenceCount; ULONG PagedQuota; ULONG NonPagedQuota; UCHAR Unknown2[32]; } OBJECT_BASIC_INFO, *POBJECT_BASIC_INFO; typedef struct _OBJECT_NAME_INFO { UNICODE_STRING ObjectName; WCHAR ObjectNameBuffer[1]; } OBJECT_NAME_INFO, *POBJECT_NAME_INFO; typedef struct _OBJECT_PROTECTION_INFO { BOOLEAN Inherit; BOOLEAN ProtectHandle; } OBJECT_PROTECTION_INFO, *POBJECT_PROTECTION_INFO; typedef struct _OBJECT_TYPE { ERESOURCE Mutex; LIST_ENTRY TypeList; UNICODE_STRING Name; LONG DefaultObject; ULONG Index; ULONG TotalNumberOfObjects; ULONG TotalNumberOfHandles; ULONG HighWaterNumberOfObjects; ULONG HighWaterNumberOfHandles; //OBJECT_TYPE_INITIALIZER TypeInfo; ULONG Key; } OBJECT_TYPE, *POBJECT_TYPE; typedef struct _OBJECT_TYPE_INFO { UNICODE_STRING ObjectTypeName; UCHAR Unknown[0x58]; WCHAR ObjectTypeNameBuffer[1]; } OBJECT_TYPE_INFO, *POBJECT_TYPE_INFO; typedef struct _OBJECT_ALL_TYPES_INFO { ULONG NumberOfObjectTypes; OBJECT_TYPE_INFO ObjectsTypeInfo[1]; } OBJECT_ALL_TYPES_INFO, *POBJECT_ALL_TYPES_INFO; typedef struct _PATHNAME_BUFFER { ULONG PathNameLength; WCHAR Name[1]; } PATHNAME_BUFFER, *PPATHNAME_BUFFER; typedef struct _PUBLIC_BCB { CSHORT NodeTypeCode; CSHORT NodeByteSize; ULONG MappedLength; LARGE_INTEGER MappedFileOffset; } PUBLIC_BCB, *PPUBLIC_BCB; typedef struct _QUERY_PATH_REQUEST { ULONG PathNameLength; PIO_SECURITY_CONTEXT SecurityContext; WCHAR FilePathName[1]; } QUERY_PATH_REQUEST, *PQUERY_PATH_REQUEST; typedef struct _QUERY_PATH_RESPONSE { ULONG LengthAccepted; } QUERY_PATH_RESPONSE, *PQUERY_PATH_RESPONSE; typedef struct _RETRIEVAL_POINTERS_BUFFER { ULONG ExtentCount; LARGE_INTEGER StartingVcn; struct { LARGE_INTEGER NextVcn; LARGE_INTEGER Lcn; } Extents[1]; } RETRIEVAL_POINTERS_BUFFER, *PRETRIEVAL_POINTERS_BUFFER; typedef struct _SERVICE_DESCRIPTOR_TABLE { PVOID ServiceTable; PULONG CounterTable; ULONG TableSize; PUCHAR ArgumentTable; } SERVICE_DESCRIPTOR_TABLE, *PSERVICE_DESCRIPTOR_TABLE; typedef struct _SID_AND_ATTRIBUTES { PSID Sid; ULONG Attributes; } SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES; typedef struct _STARTING_VCN_INPUT_BUFFER { LARGE_INTEGER StartingVcn; } STARTING_VCN_INPUT_BUFFER, *PSTARTING_VCN_INPUT_BUFFER; typedef struct _TOKEN_SOURCE { CCHAR SourceName[TOKEN_SOURCE_LENGTH]; LUID SourceIdentifier; } TOKEN_SOURCE, *PTOKEN_SOURCE; typedef struct _TOKEN_CONTROL { LUID TokenId; LUID AuthenticationId; LUID ModifiedId; TOKEN_SOURCE TokenSource; } TOKEN_CONTROL, *PTOKEN_CONTROL; typedef struct _TOKEN_DEFAULT_DACL { PACL DefaultDacl; } TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL; typedef struct _TOKEN_OWNER { PSID Owner; } TOKEN_OWNER, *PTOKEN_OWNER; typedef struct _TOKEN_PRIMARY_GROUP { PSID PrimaryGroup; } TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP; typedef struct _TOKEN_STATISTICS { LUID TokenId; LUID AuthenticationId; LARGE_INTEGER ExpirationTime; TOKEN_TYPE TokenType; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; ULONG DynamicCharged; ULONG DynamicAvailable; ULONG GroupCount; ULONG PrivilegeCount; LUID ModifiedId; } TOKEN_STATISTICS, *PTOKEN_STATISTICS; typedef struct _TOKEN_USER { SID_AND_ATTRIBUTES User; } TOKEN_USER, *PTOKEN_USER; NTKERNELAPI BOOLEAN CcCanIWrite ( IN PFILE_OBJECT FileObject, IN ULONG BytesToWrite, IN BOOLEAN Wait, IN BOOLEAN Retrying ); NTKERNELAPI BOOLEAN CcCopyRead ( IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus ); NTKERNELAPI BOOLEAN CcCopyWrite ( IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN BOOLEAN Wait, IN PVOID Buffer ); typedef VOID (*PCC_POST_DEFERRED_WRITE) ( IN PVOID Context1, IN PVOID Context2 ); NTKERNELAPI VOID CcDeferWrite ( IN PFILE_OBJECT FileObject, IN PCC_POST_DEFERRED_WRITE PostRoutine, IN PVOID Context1, IN PVOID Context2, IN ULONG BytesToWrite, IN BOOLEAN Retrying ); NTKERNELAPI VOID CcFastCopyRead ( IN PFILE_OBJECT FileObject, IN ULONG FileOffset, IN ULONG Length, IN ULONG PageCount, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus ); NTKERNELAPI VOID CcFastCopyWrite ( IN PFILE_OBJECT FileObject, IN ULONG FileOffset, IN ULONG Length, IN PVOID Buffer ); NTKERNELAPI VOID CcFlushCache ( IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN PLARGE_INTEGER FileOffset OPTIONAL, IN ULONG Length, OUT PIO_STATUS_BLOCK IoStatus OPTIONAL ); typedef VOID (*PDIRTY_PAGE_ROUTINE) ( IN PFILE_OBJECT FileObject, IN PLARGE_INTEGER FileOffset, IN ULONG Length, IN PLARGE_INTEGER OldestLsn, IN PLARGE_INTEGER NewestLsn, IN PVOID Context1, IN PVOID Context2 ); NTKERNELAPI LARGE_INTEGER CcGetDirtyPages ( IN PVOID LogHandle, IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine, IN PVOID Context1, IN PVOID Context2 ); NTKERNELAPI PFILE_OBJECT CcGetFileObjectFromBcb ( IN PVOID Bcb ); NTKERNELAPI PFILE_OBJECT CcGetFileObjectFromSectionPtrs ( IN PSECTION_OBJECT_POINTERS SectionObjectPointer ); NTKERNELAPI LARGE_INTEGER CcGetLsnForFileObject ( IN PFILE_OBJECT FileObject, OUT PLARGE_INTEGER OldestLsn OPTIONAL ); typedef BOOLEAN (*PACQUIRE_FOR_LAZY_WRITE) ( IN PVOID Context, IN BOOLEAN Wait ); typedef VOID (*PRELEASE_FROM_LAZY_WRITE) ( IN PVOID Context ); typedef BOOLEAN (*PACQUIRE_FOR_READ_AHEAD) ( IN PVOID Context, IN BOOLEAN Wait ); typedef VOID (*PRELEASE_FROM_READ_AHEAD) ( IN PVOID Context ); typedef struct _CACHE_MANAGER_CALLBACKS { PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite; PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite; PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead; PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead; } CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS; typedef struct _PEB_LDR_DATA { ULONG Length; BOOLEAN Initialized; HANDLE SsHandle; LIST_ENTRY InLoadOrderModuleList; LIST_ENTRY InMemoryOrderModuleList; LIST_ENTRY InInitializationOrderModuleList; } PEB_LDR_DATA, *PPEB_LDR_DATA; #include typedef struct _LDR_DATA_TABLE_ENTRY { struct _LIST_ENTRY InLoadOrderLinks; struct _LIST_ENTRY InMemoryOrderLinks; struct _LIST_ENTRY InInitializationOrderLinks; void* DllBase; void* EntryPoint; DWORD SizeOfImage; struct _UNICODE_STRING FullDllName; struct _UNICODE_STRING BaseDllName; DWORD Flags; WORD LoadCount; WORD TlsIndex; struct _LIST_ENTRY HashLinks; void* SectionPointer; DWORD CheckSum; DWORD TimeDateStamp; void* LoadedImports; void* EntryPointActivationContext; } LDR_DATA_TABLE_ENTRY; #include typedef struct _PEB_FREE_BLOCK { struct _PEB_FREE_BLOCK *Next; ULONG Size; } PEB_FREE_BLOCK, *PPEB_FREE_BLOCK; struct _CURDIR { struct _UNICODE_STRING DosPath; void* Handle; }; struct _RTL_DRIVE_LETTER_CURDIR { WORD Flags; WORD Length; DWORD TimeStamp; struct _STRING DosPath; }; struct _RTL_USER_PROCESS_PARAMETERS { DWORD MaximumLength; DWORD Length; DWORD Flags; DWORD DebugFlags; void* ConsoleHandle; DWORD ConsoleFlags; void* StandardInput; void* StandardOutput; void* StandardError; struct _CURDIR CurrentDirectory; struct _UNICODE_STRING DllPath; struct _UNICODE_STRING ImagePathName; struct _UNICODE_STRING CommandLine; void* Environment; DWORD StartingX; DWORD StartingY; DWORD CountX; DWORD CountY; DWORD CountCharsX; DWORD CountCharsY; DWORD FillAttribute; DWORD WindowFlags; DWORD ShowWindowFlags; struct _UNICODE_STRING WindowTitle; struct _UNICODE_STRING DesktopInfo; struct _UNICODE_STRING ShellInfo; struct _UNICODE_STRING RuntimeData; struct _RTL_DRIVE_LETTER_CURDIR CurrentDirectores[32]; }; #include typedef struct _PEB { BYTE InheritedAddressSpace; BYTE ReadImageFileExecOptions; BYTE BeingDebugged; BYTE SpareBool; void* Mutant; void* ImageBaseAddress; struct _PEB_LDR_DATA* Ldr; struct _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; void* SubSystemData; void* ProcessHeap; void* FastPebLock; void* FastPebLockRoutine; void* FastPebUnlockRoutine; DWORD EnvironmentUpdateCount; void* KernelCallbackTable; DWORD SystemReserved[2]; struct _PEB_FREE_BLOCK* FreeList; DWORD TlsExpansionCounter; void* TlsBitmap; DWORD TlsBitmapBits[2]; void* ReadOnlySharedMemoryBase; void* ReadOnlySharedMemoryHeap; void** ReadOnlyStaticServerData; void* AnsiCodePageData; void* OemCodePageData; void* UnicodeCaseTableData; DWORD NumberOfProcessors; DWORD NtGlobalFlag; LARGE_INTEGER CriticalSectionTimeout; DWORD HeapSegmentReserve; DWORD HeapSegmentCommit; DWORD HeapDeCommitTotalFreeThreshold; DWORD HeapDeCommitFreeBlockThreshold; DWORD NumberOfHeaps; DWORD MaximumNumberOfHeaps; void** ProcessHeaps; void* GdiSharedHandleTable; void* ProcessStarterHelper; DWORD GdiDCAttributeList; void* LoaderLock; DWORD OSMajorVersion; DWORD OSMinorVersion; WORD OSBuildNumber; WORD OSCSDVersion; DWORD OSPlatformId; DWORD ImageSubsystem; DWORD ImageSubsystemMajorVersion; DWORD ImageSubsystemMinorVersion; DWORD ImageProcessAffinityMask; DWORD GdiHandleBuffer[34]; void* PostProcessInitRoutine; void* TlsExpansionBitmap; DWORD TlsExpansionBitmapBits[32]; DWORD SessionId; ULARGE_INTEGER AppCompatFlags; void* pShimData; void* AppCompatInfo; UNICODE_STRING CSDVersion; void* ActivationContextData; void* ProcessAssemblyStorageMap; void* SystemDefaultActivationContextData; void* SystemAssemblyStorageMap; DWORD MinimumStackCommit; } PEB; #include NTSYSAPI PVOID NTAPI RtlImageDirectoryEntryToData( PVOID BaseOfImage, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size ); // GDT selectors - These defines are R0 selector numbers, which means // they happen to match the byte offset relative to // the base of the GDT. // #define KGDT_NULL 0 #define KGDT_R0_CODE 8 #define KGDT_R0_DATA 16 #define KGDT_R3_CODE 24 #define KGDT_R3_DATA 32 #define KGDT_TSS 40 #define KGDT_R0_PCR 48 #define KGDT_R3_TEB 56 #define KGDT_VDM_TILE 64 #define KGDT_LDT 72 #define KGDT_DF_TSS 80 #define KGDT_NMI_TSS 88 // // Exception Registration structure // typedef struct _EXCEPTION_REGISTRATION_RECORD { struct _EXCEPTION_REGISTRATION_RECORD *Next; PEXCEPTION_ROUTINE Handler; } EXCEPTION_REGISTRATION_RECORD; typedef EXCEPTION_REGISTRATION_RECORD *PEXCEPTION_REGISTRATION_RECORD; //typedef LARGE_INTEGER QWORD; // ================================================================= // SYSTEM INFO CLASSES // ================================================================= typedef enum _SYSTEMINFOCLASS { SystemBasicInformation, // 0x002C SystemProcessorInformation, // 0x000C SystemPerformanceInformation, // 0x0138 SystemTimeInformation, // 0x0020 SystemPathInformation, // not implemented SystemProcessInformation, // 0x00C8+ per process SystemCallInformation, // 0x0018 + (n * 0x0004) SystemConfigurationInformation, // 0x0018 SystemProcessorCounters, // 0x0030 per cpu SystemGlobalFlag, // 0x0004 SystemInfo10, // not implemented SystemModuleInformation, // 0x0004 + (n * 0x011C) SystemLockInformation, // 0x0004 + (n * 0x0024) SystemInfo13, // not implemented SystemPagedPoolInformation, // checked build only SystemNonPagedPoolInformation, // checked build only SystemHandleInformation, // 0x0004 + (n * 0x0010) SystemObjectInformation, // 0x0038+ + (n * 0x0030+) SystemPageFileInformation, // 0x0018+ per page file SystemInstemulInformation, // 0x0088 SystemInfo20, // invalid info class SystemCacheInformation, // 0x0024 SystemPoolTagInformation, // 0x0004 + (n * 0x001C) SystemInfo23, // 0x0000, or 0x0018 per cpu SystemDpcInformation, // 0x0014 SystemInfo25, // checked build only SystemLoadDriver, // 0x0018, set mode only SystemUnloadDriver, // 0x0004, set mode only SystemTimeAdjustmentInformation, // 0x000C, 0x0008 writeable SystemInfo29, // checked build only SystemInfo30, // checked build only SystemInfo31, // checked build only SystemCrashDumpInformation, // 0x0004 SystemInfo33, // 0x0010 SystemCrashDumpStateInformation, // 0x0004 SystemDebuggerInformation, // 0x0002 SystemThreadSwitchInformation, // 0x0030 SystemRegistryQuotaInformation, // 0x000C SystemAddDriver, // 0x0008, set mode only SystemPrioritySeparationInformation,// 0x0004, set mode only SystemInfo40, // not implemented SystemInfo41, // not implemented SystemInfo42, // invalid info class SystemInfo43, // invalid info class SystemTimeZoneInformation, // 0x00AC SystemLookasideInformation, // n * 0x0020 MaxSystemInfoClass } SYSTEMINFOCLASS, *PSYSTEMINFOCLASS, **PPSYSTEMINFOCLASS; // ================================================================= // SYSTEM INFO STRUCTURES // ================================================================= // 00: SystemBasicInformation typedef struct _SYSTEM_BASIC_INFORMATION { DWORD d00; // 0 DWORD dKeMaximumIncrement; // x86: 0x0002625A or 0x00018730 DWORD dPageSize; // bytes DWORD dMmNumberOfPhysicalPages; DWORD dMmLowestPhysicalPage; DWORD dMmHighestPhysicalPage; DWORD dAllocationGranularity; // bytes PVOID pLowestUserAddress; PVOID pMmHighestUserAddress; DWORD dKeActiveProcessors; BYTE bKeNumberProcessors; BYTE bReserved01; WORD wReserved02; } SYSTEM_BASIC_INFORMATION, * PSYSTEM_BASIC_INFORMATION, **PPSYSTEM_BASIC_INFORMATION; #define SYSTEM_BASIC_INFORMATION_ \ sizeof (SYSTEM_BASIC_INFORMATION) // ----------------------------------------------------------------- // 01: SystemProcessorInformation typedef struct _SYSTEM_PROCESSOR_INFORMATION { WORD wKeProcessorArchitecture; // 0=x86, 1=MIPS, 2=ALPHA, 3=PPC WORD wKeProcessorLevel; // x86: family (5=Pentium) WORD wKeProcessorRevision; // Pentium: H=model, L=stepping WORD w06; // 0 DWORD dKeFeatureBits; } SYSTEM_PROCESSOR_INFORMATION, * PSYSTEM_PROCESSOR_INFORMATION, **PPSYSTEM_PROCESSOR_INFORMATION; #define SYSTEM_PROCESSOR_INFORMATION_ \ sizeof (SYSTEM_PROCESSOR_INFORMATION) // ----------------------------------------------------------------- // 02: SystemPerformanceInformation typedef struct _MM_INFO_COUNTERS { DWORD dPageFaults; DWORD d04; DWORD d08; DWORD d0C; DWORD d10; DWORD d14; DWORD d18; DWORD d1C; DWORD d20; DWORD d24; DWORD d28; DWORD d2C; DWORD d30; } MM_INFO_COUNTERS, * PMM_INFO_COUNTERS, **PPMM_INFO_COUNTERS; #define MM_INFO_COUNTERS_ \ sizeof (MM_INFO_COUNTERS) // ----------------------------------------------------------------- // 03: SystemTimeInformation typedef struct _SYSTEM_TIME_INFORMATION { QWORD qKeBootTime; // relative to 01-01-1601 QWORD qKeSystemTime; // relative to 01-01-1601 QWORD dExpTimeZoneBias; // utc time = local time + bias DWORD dExpCurrentTimeZoneId; DWORD dReserved01; } SYSTEM_TIME_INFORMATION, * PSYSTEM_TIME_INFORMATION, **PPSYSTEM_TIME_INFORMATION; #define SYSTEM_TIME_INFORMATION_ \ sizeof (SYSTEM_TIME_INFORMATION) // ----------------------------------------------------------------- // 04: SystemPathInformation (not implemented) // ----------------------------------------------------------------- // 05: SystemProcessInformation // see ExpGetProcessInformation() // see also ExpCopyProcessInfo(), ExpCopyThreadInfo() typedef struct _SYSTEM_THREAD { QWORD qKernelTime; // 100 nsec units QWORD qUserTime; // 100 nsec units QWORD qCreateTime; // relative to 01-01-1601 DWORD d18; PVOID pStartAddress; CLIENT_ID Cid; // process/thread ids DWORD dPriority; DWORD dBasePriority; DWORD dContextSwitches; DWORD dThreadState; // 2=running, 5=waiting KWAIT_REASON WaitReason; DWORD dReserved01; } SYSTEM_THREAD, * PSYSTEM_THREAD, **PPSYSTEM_THREAD; #define SYSTEM_THREAD_ \ sizeof (SYSTEM_THREAD) typedef struct _SYSTEM_THREAD_INFORMATION { LARGE_INTEGER KernelTime; LARGE_INTEGER UserTime; LARGE_INTEGER CreateTime; ULONG WaitTime; PVOID StartAddress; CLIENT_ID ClientId; KPRIORITY Priority; LONG BasePriority; ULONG ContextSwitches; ULONG ThreadState; ULONG WaitReason; } SYSTEM_THREAD_INFORMATION, *PSYSTEM_THREAD_INFORMATION; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - typedef struct __SYSTEM_PROCESS_INFORMATION { DWORD dNext; // relative offset DWORD dThreadCount; DWORD dReserved01; DWORD dReserved02; DWORD dReserved03; DWORD dReserved04; DWORD dReserved05; DWORD dReserved06; QWORD qCreateTime; // relative to 01-01-1601 QWORD qUserTime; // 100 nsec units QWORD qKernelTime; // 100 nsec units UNICODE_STRING usName; KPRIORITY BasePriority; DWORD dUniqueProcessId; DWORD dInheritedFromUniqueProcessId; DWORD dHandleCount; DWORD dReserved07; DWORD dReserved08; VM_COUNTERS VmCounters; DWORD dCommitCharge; // bytes SYSTEM_THREAD ast [1]; } _SYSTEM_PROCESS_INFORMATION1, * _PSYSTEM_PROCESS_INFORMATION1, **_PPSYSTEM_PROCESS_INFORMATION1; #define SYSTEM_PROCESS_INFORMATION_ \ sizeof (SYSTEM_PROCESS_INFORMATION) typedef struct _SYSTEM_PROCESS_INFORMATION { ULONG NextEntryOffset; ULONG NumberOfThreads; LARGE_INTEGER SpareLi1; LARGE_INTEGER SpareLi2; LARGE_INTEGER SpareLi3; LARGE_INTEGER CreateTime; LARGE_INTEGER UserTime; LARGE_INTEGER KernelTime; UNICODE_STRING ImageName; KPRIORITY BasePriority; HANDLE UniqueProcessId; HANDLE InheritedFromUniqueProcessId; ULONG HandleCount; ULONG SessionId; ULONG SpareUl3; SIZE_T PeakVirtualSize; SIZE_T VirtualSize; ULONG PageFaultCount; ULONG PeakWorkingSetSize; ULONG WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage; SIZE_T PrivatePageCount; SYSTEM_THREAD_INFORMATION ThreadInfo[1]; } SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION; // ----------------------------------------------------------------- // 06: SystemCallInformation // see KeServiceDescriptorTable, KeServiceDescriptorTableShadow typedef struct _SYSTEM_CALL_INFORMATION { DWORD dSize; // bytes, including all entries DWORD dTables; // 2 or 4, 0=ntoskrnl, 1=win32k DWORD adData [1]; // table sizes, table data } SYSTEM_CALL_INFORMATION, * PSYSTEM_CALL_INFORMATION, **PPSYSTEM_CALL_INFORMATION; #define SYSTEM_CALL_INFORMATION_ \ sizeof (SYSTEM_CALL_INFORMATION) #define SYSTEM_CALL_INFORMATION_VALUES($psci) \ (($psci)->adData + ($psci)->dTables) // ----------------------------------------------------------------- // 07: SystemConfigurationInformation // see IoGetConfigurationInformation () typedef struct _SYSTEM_CONFIGURATION_INFORMATION { DWORD dDiskCount; DWORD dFloppyCount; DWORD dCDRomCount; DWORD dTapeCount; DWORD dSerialCount; // com port with mouse not included DWORD dParallelCount; } SYSTEM_CONFIGURATION_INFORMATION, * PSYSTEM_CONFIGURATION_INFORMATION, **PPSYSTEM_CONFIGURATION_INFORMATION; #define SYSTEM_CONFIGURATION_INFORMATION_ \ sizeof (SYSTEM_CONFIGURATION_INFORMATION) // ----------------------------------------------------------------- // 08: SystemProcessorCounters // see KiProcessorBlock typedef struct _SYSTEM_PROCESSOR_COUNTERS { QWORD qProcessorTime; // 100 nsec units QWORD qTotalTime; // 100 nsec units QWORD qUserTime; // 100 nsec units QWORD qDpcTime; // 100 nsec units QWORD qInterruptTime; // 100 nsec units DWORD dInterruptCount; DWORD dReserved01; } SYSTEM_PROCESSOR_COUNTERS, * PSYSTEM_PROCESSOR_COUNTERS, **PPSYSTEM_PROCESSOR_COUNTERS; #define SYSTEM_PROCESSOR_COUNTERS_ \ sizeof (SYSTEM_PROCESSOR_COUNTERS) // ----------------------------------------------------------------- // 09: SystemGlobalFlag // see NtGlobalFlag typedef struct _SYSTEM_GLOBAL_FLAG { DWORD dNtGlobalFlag; // see Q147314, Q102985, Q105677 } SYSTEM_GLOBAL_FLAG, * PSYSTEM_GLOBAL_FLAG, **PPSYSTEM_GLOBAL_FLAG; #define SYSTEM_GLOBAL_FLAG_ \ sizeof (SYSTEM_GLOBAL_FLAG) // ----------------------------------------------------------------- // 10: SystemInfo10 (not implemented) // ----------------------------------------------------------------- // 11: SystemModuleInformation // see ExpQueryModuleInformation typedef struct _SYSTEM_MODULE { DWORD dReserved01; DWORD d04; PVOID pAddress; DWORD dSize; // bytes DWORD dFlags; WORD wId; // zero based WORD wRank; // 0 if not assigned WORD w18; WORD wNameOffset; BYTE abName [MAXIMUM_FILENAME_LENGTH]; } SYSTEM_MODULE, * PSYSTEM_MODULE, **PPSYSTEM_MODULE; #define SYSTEM_MODULE_ \ sizeof (SYSTEM_MODULE) // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - typedef struct _SYSTEM_MODULE_INFORMATION { DWORD dCount; SYSTEM_MODULE aSM [1]; } SYSTEM_MODULE_INFORMATION, * PSYSTEM_MODULE_INFORMATION, **PPSYSTEM_MODULE_INFORMATION; #define SYSTEM_MODULE_INFORMATION_ \ sizeof (SYSTEM_MODULE_INFORMATION) NTSTATUS NTAPI ZwQuerySystemInformation (SYSTEMINFOCLASS sic, PVOID pData, DWORD dSize, PDWORD pdSize); struct _Wx86ThreadState { DWORD* CallBx86Eip; void* DeallocationCpu; BYTE UseKnownWx86Dll; char OleStubInvoked; }; typedef struct _ACTIVATION_CONTEXT_STACK { DWORD Flags; void* ActiveFrame; struct _LIST_ENTRY FrameListCache; DWORD NextCookieSequenceNumber; } ACTIVATION_CONTEXT_STACK; typedef struct _GDI_TEB_BATCH { DWORD Offset; DWORD HDC; DWORD Buffer[310]; } GDI_TEB_BATCH; typedef struct _TEB { NT_TIB NtTib; void* EnvironmentPointer; CLIENT_ID ClientId; void* ActiveRpcHandle; void* ThreadLocalStoragePointer; PEB* ProcessEnvironmentBlock; DWORD LastErrorValue; DWORD CountOfOwnedCriticalSections; void* CsrClientThread; void* Win32ThreadInfo; DWORD User32Reserved[26]; DWORD UserReserved[5]; void* WOW32Reserved; DWORD CurrentLocale; DWORD FpSoftwareStatusRegister; void* SystemReserved1[54]; long ExceptionCode; BYTE SpareBytes1[44]; GDI_TEB_BATCH GdiTebBatch; CLIENT_ID RealClientId; void* GdiCachedProcessHandle; DWORD GdiClientPID; DWORD GdiClientTID; void* GdiThreadLocalInfo; DWORD Win32ClientInfo[62]; void* glDispatchTable[233]; DWORD glReserved1[29]; void* glReserved2; void* glSectionInfo; void* glSection; void* glTable; void* glCurrentRC; void* glContext; DWORD LastStatusValue; UNICODE_STRING StaticUnicodeString; WORD StaticUnicodeBuffer[261]; void* DeallocationStack; void* TlsSlots[64]; LIST_ENTRY TlsLinks; void* Vdm; void* ReservedForNtRpc; void* DbgSsReserved[2]; DWORD HardErrorsAreDisabled; void* Instrumentation[16]; void* WinSockData; DWORD GdiBatchCount; BYTE InDbgPrint; BYTE FreeStackOnTermination; BYTE HasFiberData; BYTE SpareB3; DWORD Spare3; void* ReservedForPerf; void* ReservedForOle; DWORD WaitingOnLoaderLock; struct _Wx86ThreadState Wx86Thread; void** TlsExpansionSlots; DWORD ImpersonationLocale; DWORD IsImpersonating; void* NlsCache; void* pShimData; ACTIVATION_CONTEXT_STACK ActivationContextStack; } TEB; NTKERNELAPI VOID KeAttachProcess ( IN PRKPROCESS Process ); NTKERNELAPI VOID KeDetachProcess ( VOID ); NTSYSAPI NTSTATUS NTAPI ZwOpenDirectoryObject( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ); NTSTATUS PsLookupProcessByProcessId(HANDLE ProcId, PEPROCESS* ppEP); #ifdef __cplusplus } #endif #endif __UNDOC_ ================================================ FILE: Project/Syser/Source/VMWareSupport.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #ifdef __cplusplus extern "C" { #endif bool SyserVMWareTest(VOID); VOID SyserIsDisableVmMouse(BYTE *PortValue1,BYTE *PortValue2); #ifdef __cplusplus }; // extern "C" #endif bool gInVMWARE=false; bool gIsSupportVMMouse=false; bool VMWareTest() { BYTE PortValue1,PortValue2; __try { // __asm // { // pushad // pushfd // xor ebx,ebx // mov ecx,0xa // mov eax, 'VMXh' ; EAX=magic // mov dx, 'VX' ; DX=magic // in eax, dx ; specially processed io cmd // cmp ebx, 'VMXh' ; also eax/ecx modified (maybe vmw/os ver?) // jne local_001 // mov gInVMWARE,1 // local_001: // popfd // popad // } gInVMWARE = SyserVMWareTest(); } __except(EXCEPTION_EXECUTE_HANDLER) { gInVMWARE=false; } if(gInVMWARE) { //gIsSupportVMMouse = IsSupportVMMouse(); DbgPrint("Syser : Host machine is VMWare!\n"); // __asm // { // push eax // push edx // xor eax,eax // in al,0x64 // mov PortValue1,al // xor eax,eax // in eax,0x64 // mov PortValue2,al // pop edx // pop eax // } SyserIsDisableVmMouse(&PortValue1,&PortValue2); if(PortValue1!=PortValue2) { DbgPrint("Syser : VMWare version < 5,need modify the virtual machine config file.(.vmx)\n"); DbgPrint("Syser : Add the following one line:\n"); DbgPrint("Syser : vmmouse.present = FALSE\n"); } } return gInVMWARE; } // // // void FlushMouseBuffer(WORD CommandPort,WORD DataPort) // { // __asm // { // ret // push edx // push eax // mov dx,CommandPort // mov eax,0x18 // out dx,eax // mov dx,DataPort // mov eax,0 // out dx,eax // mov dx,CommandPort // mov eax,0x18 // out dx,eax // mov dx,DataPort // mov eax,2 // out dx,eax // pop eax // pop edx // } // } /* out(pciһ˿ڣSET_CURSOR_POINT_FLAG out(pciڶ˿ڣ0x1 out(pciһ˿ڣSET_CURSOR_POINT_X out(pciڶ˿ڣx꣩ out(pciһ˿ڣSET_CURSOR_POINT_Y out(pciڶ˿ڣy꣩ out(pciһ˿ڣSET_ACCESS_FLAG out(pciڶ˿ڣ0x1 */ void GetVMWareMousePos(DWORD* mousex,DWORD* mousey) { DWORD x,y,CommandPort,DataPort; CommandPort = gpSyser->m_PCSystem.m_VmwareVideoCommandPort; DataPort=gpSyser->m_PCSystem.m_VmwareVideoDatePort; // __asm // { // push eax // push edx // mov edx,CommandPort // mov eax,0x19 // out dx,eax // mov edx,DataPort // in eax,dx // mov x,eax // mov edx,CommandPort // mov eax,0x1a // out dx,eax // mov edx,DataPort // in eax,dx // mov y,eax // pop edx // pop eax // } SyserWritePortDword(CommandPort,0x19); x = SyserReadPortDword(DataPort); SyserWritePortDword(CommandPort,0x1a); y = SyserReadPortDword(DataPort); *mousex=x; *mousey=y; } void SetVMWareMousePos(DWORD CommandPort,DWORD DataPort,DWORD mousex,DWORD mousey) { SyserWritePortDword(CommandPort,VMWARESET_CURSOR_POINT_FLAG); SyserWritePortDword(DataPort,1); SyserWritePortDword(CommandPort,VMWARESET_CURSOR_POINT_X); SyserWritePortDword(DataPort,mousex); SyserWritePortDword(CommandPort,VMWARESET_CURSOR_POINT_Y); SyserWritePortDword(DataPort,mousey); SyserWritePortDword(CommandPort,VMWARESET_ACCESS_FLAG); SyserWritePortDword(DataPort,0); // __asm // { // push eax // push edx // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_FLAG // out dx,eax // mov edx,DataPort // mov eax,1 // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_X // out dx,eax // mov edx,DataPort // mov eax,mousex // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_Y // out dx,eax // mov edx,DataPort // mov eax,mousey // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_ACCESS_FLAG // out dx,eax // mov edx,DataPort // mov eax,0 // out dx,eax // /* // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_FLAG // out dx,eax // mov edx,DataPort // mov eax,0 // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_X // out dx,eax // mov edx,DataPort // mov eax,mousex // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_Y // out dx,eax // mov edx,DataPort // mov eax,mousey // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_ACCESS_FLAG // out dx,eax // mov edx,DataPort // mov eax,0 // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_FLAG // out dx,eax // mov edx,DataPort // mov eax,1 // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_X // out dx,eax // mov edx,DataPort // mov eax,mousex // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_Y // out dx,eax // mov edx,DataPort // mov eax,mousey // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_ACCESS_FLAG // out dx,eax // mov edx,DataPort // mov eax,0 // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_FLAG // out dx,eax // mov edx,DataPort // mov eax,0 // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_X // out dx,eax // mov edx,DataPort // mov eax,mousex // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_CURSOR_POINT_Y // out dx,eax // mov edx,DataPort // mov eax,mousey // out dx,eax // mov edx,CommandPort // mov eax,VMWARESET_ACCESS_FLAG // out dx,eax // mov edx,DataPort // mov eax,1 // out dx,eax // */ // pop edx // pop eax // } } void FlushVmwareScreenBuffer(WORD CommandPort,WORD DataPort) { // __asm{ // push eax // push edx // mov dx,CommandPort // mov eax,0x1b // out dx,eax // mov dx,DataPort // mov eax,0 // out dx,eax // mov dx,CommandPort // mov eax,0x1b // out dx,eax // mov dx,DataPort // mov eax,2 // out dx,eax // pop edx // pop eax // } SyserWritePortDword(CommandPort,0x1b); SyserWritePortDword(DataPort,0); SyserWritePortDword(CommandPort,0x1b); SyserWritePortDword(DataPort,2); } void Lru_trans_svga_command(ULONG i_ulong) { ULONG* p_ulong; BOOL tBool; ULONG t_ulong; if(gpSyser->m_PCSystem.m_VmwareSecondFrameBuffer==NULL) return; p_ulong =gpSyser->m_PCSystem.m_VmwareSecondFrameBuffer; tBool = FALSE; if ((p_ulong[2]+4)==p_ulong[3]) tBool = TRUE; if ((!tBool)&&((p_ulong[1]-4)==p_ulong[2])) { if (p_ulong[0]==p_ulong[3]) tBool = TRUE; } p_ulong =gpSyser->m_PCSystem.m_VmwareSecondFrameBuffer; t_ulong = p_ulong[2]>>2; p_ulong[t_ulong] = i_ulong; if ((p_ulong[2]+4) == p_ulong[1]) { p_ulong[2] = p_ulong[0]; } else { p_ulong[2] = p_ulong[2]+4; } } void FlushVedioBuffer(int x,int y,int width,int heigh,int command) { Lru_trans_svga_command(1); Lru_trans_svga_command(x); Lru_trans_svga_command(y); Lru_trans_svga_command(width); Lru_trans_svga_command(heigh); //if(command==0) FlushVmwareScreenBuffer(gpSyser->m_PCSystem.m_VmwareVideoCommandPort,gpSyser->m_PCSystem.m_VmwareVideoDatePort); //else // FlushMouseBuffer(gpSyser->m_PCSystem.m_VmwareVideoCommandPort,gpSyser->m_PCSystem.m_VmwareVideoDatePort); } // // // __declspec(naked) DWORD __stdcall VMWareCall(PVMVWARE_CALL pVMCParam) // { // __asm // { // push ebp // mov ebp,esp // push ecx // pushad // mov eax,[ebp+8] // mov word ptr[eax+0xc],'VX' // mov dword ptr[eax],'VMXh' // mov edi,[eax+14h] // mov esi,[eax+10h] // mov edx,[eax+0Ch] // mov ecx,[eax+8] // mov ebx,[eax+4] // mov eax,[eax] // in eax,dx // mov [ebp-4],eax // mov eax,[ebp+8] // mov [eax+4],ebx // mov [eax+8],ecx // mov [eax+0Ch],edx // mov [eax+10h],esi // mov [eax+14h],edi // mov ebx,[ebp+8] // mov eax,[ebp-4] // mov [ebx],eax // popad // pop eax // pop ebp // ret 4 // } // } // bool IsSupportVMMouse() { DWORD bret=0; //DbgPrint("Syser : IsSupportVMMouse\n"); // __asm // { // pushad // mov eax,'VMXh' // mov ebx,0xa9b2a797 // mov ecx,0xa // mov edx,'VX' // mov esi,0 // mov edi,0 // in eax,dx // cmp ebx,'VMXh' // jnz local_001 // mov bret,1 // local_001: // popad // } // return bret==1; VMVWARE_CALL VMCParam; VMCParam.Exist_flag=0xA9B2A797; VMCParam.Func_num=0xa; SyserVMWareCall(&VMCParam); /* DbgPrint("eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n",VMCParam.Return_Status,VMCParam.Exist_flag, VMCParam.Func_num,VMCParam.Port,VMCParam.Trans_Src,VMCParam.Trans_Dest); */ if ((VMCParam.Exist_flag!=0x564D5868)||(VMCParam.Return_Status==0xffffffff)) return false; VMCParam.Exist_flag=0; VMCParam.Func_num=0xa; SyserVMWareCall(&VMCParam); /* DbgPrint("eax=%08x ebx=%08x ecx=%08x edx=%08x esi=%08x edi=%08x\n",VMCParam.Return_Status,VMCParam.Exist_flag, VMCParam.Func_num,VMCParam.Port,VMCParam.Trans_Src,VMCParam.Trans_Dest); */ if ((VMCParam.Exist_flag!=0x564D5868)||(VMCParam.Return_Status==0xffffffff)) return false; return true; } bool GetVMMouseData(PTRANS_MOUSEDATA pTranMouseData) { DWORD dwData,dwExit; dwData=SyserReadPortDword(0x64); if ((dwData&0xffff0000)==0xffff0000) return false; dwData=dwData&0xffff; //if (dwData==0) // return false; //if ((dwData%4)!=0) // return false; dwExit=dwData; dwData=SyserReadPortDword(0x60); pTranMouseData->Priority_flag=(USHORT)((dwData>>0x10)&0xffff); pTranMouseData->ButtonStatus=(USHORT)((dwData)&0xffff); dwData=SyserReadPortDword(0x60); pTranMouseData->DeltaX=dwData; dwData=SyserReadPortDword(0x60); pTranMouseData->DeltaY=dwData; dwData=SyserReadPortDword(0x60); pTranMouseData->DeltaWheel=dwData; dwExit=dwExit>>2; if (dwExit) return true; return false; } ================================================ FILE: Project/Syser/Source/VMWareSupport.h ================================================ #ifndef _VMWARE_SUPPORT_H_ #define _VMWARE_SUPPORT_H_ #ifdef __cplusplus extern "C" { #endif // Vmware vmware vmware tools ͨŵһӿڡ // ſ IO ˿ 0x5658ʱ裺 // EAX = 0x564D5868 ( VMXh ) // ECX 16 λΪܺšʵһ // ECX ĸ 16 λΪܲ // EDX = 0x5658 ( VX )Ϊ IO ˿ںš // // 0xa õ vmware 汾 // // л̱ṩϸ typedef struct _VMVWARE_CALL{ unsigned long Return_Status; //vm_eax unsigned long Exist_flag; //vm_ebx unsigned long Func_num; //vm_ecx unsigned long Port; //vm_edx unsigned long Trans_Src; //vm_esi unsigned long Trans_Dest; //vm_edi }VMVWARE_CALL,*PVMVWARE_CALL; void FlushVedioBuffer(int x,int y,int width,int heigh,int command = 0); extern bool gInVMWARE; extern bool gIsSupportVMMouse; bool VMWareTest(); DWORD __stdcall SyserVMWareCall(PVMVWARE_CALL pVMCParam); bool IsSupportVMMouse(); typedef struct _TRANS_MOUSEDATA{ USHORT Priority_flag; USHORT ButtonStatus; DWORD DeltaX; DWORD DeltaY; DWORD DeltaWheel; }TRANS_MOUSEDATA,*PTRANS_MOUSEDATA; bool GetVMMouseData(PTRANS_MOUSEDATA pTranMouseData); #define VMWARESET_CURSOR_POINT_FLAG 0x18 #define VMWARESET_CURSOR_POINT_X 0x19 #define VMWARESET_CURSOR_POINT_Y 0x1a #define VMWARESET_ACCESS_FLAG 0x1B void SetVMWareMousePos(DWORD CommandPort,DWORD DataPort,DWORD mousex,DWORD mousey); void GetVMWareMousePos(DWORD* mousex,DWORD* mousey); #ifdef __cplusplus }; // extern "C" #endif #endif ================================================ FILE: Project/Syser/Source/VideoDriver.cpp ================================================ #include "StdAfx.h" #include "VideoDriver.h" #include "Syser.h" #include "VMWareSupport.h" #include "VirtualPCSupport.h" #ifdef __cplusplus extern "C" { #endif SYSER_FRAME_BUFFER* pCurFrameBuffer = NULL; SYSER_FRAME_BUFFER* pPrevFrameBuffer = NULL; bool bDisabled = false; bool* pbSyserDisabled = NULL; PDRIVER_OBJECT VideoDriver; PDEVICE_OBJECT DeviceObject; PDEVICE_OBJECT Video0Device; #ifdef __cplusplus }; // extern "C" #endif void SyserFrameModeChange(int Width,int Height,int Bpp,void*FrameBuffer,int Pitch,UINT PixelFormat) { if( Width == gpSyser->m_RealFrameBuffer.Width && Height == gpSyser->m_RealFrameBuffer.Height && Bpp == gpSyser->m_RealFrameBuffer.Bpp && FrameBuffer == gpSyser->m_RealFrameBuffer.Buffer && Pitch == gpSyser->m_RealFrameBuffer.LineDistance && PixelFormat == gpSyser->m_RealFrameBuffer.PixelFormat) return; ::DbgPrint("Syser : Mode Change %d X %d x %d -> Video Buffer[0x%08X] , Pitch [0x%X]\n",Width,Height,Bpp,FrameBuffer,Pitch); if(FrameBuffer) { int Size = Pitch*Height; for(int Off = 0;Offm_RealFrameBuffer.Buffer = NULL; return; } } } gpSyser->m_RealFrameBuffer.Width = Width; gpSyser->m_RealFrameBuffer.Height = Height; gpSyser->m_RealFrameBuffer.Bpp = Bpp; gpSyser->m_RealFrameBuffer.Buffer = FrameBuffer; gpSyser->m_RealFrameBuffer.LineDistance = Pitch; gpSyser->GetFrameBufferDrawHAL(&gpSyser->m_RealFrameBuffer); if(gpSyser->m_pRootWnd) { if(Width < gpSyser->m_MainFrame.m_WindowRect.cx || Height < gpSyser->m_MainFrame.m_WindowRect.cy) { OUTPUT(WSTR("Syser : Resize %d %d\n"),Width,Height); gpSyser->m_MainFrame.Resize(Width,Height); } else if(Width > gpSyser->m_MainFrame.m_WindowRect.cx || Height > gpSyser->m_MainFrame.m_WindowRect.cy) { OUTPUT(WSTR("Syser : Resize %d %d\n"),gpSyser->m_OrgWindowWidth,gpSyser->m_OrgWindowHeight); gpSyser->m_MainFrame.Resize(gpSyser->m_OrgWindowWidth,gpSyser->m_OrgWindowHeight); } } gpSyser->m_RootPos.x = CENTER_ALGN(gpSyser->m_MainFrame.m_WindowRect.cx,Width); gpSyser->m_RootPos.y = CENTER_ALGN(gpSyser->m_MainFrame.m_WindowRect.cy,Height); MIN_LIMIT(gpSyser->m_RootPos.x,0); MIN_LIMIT(gpSyser->m_RootPos.y,0); gpSyser->m_bScrBackup = true; } void SyserFrameBufferFlip(void*FrameBuffer) { gpSyser->m_RealFrameBuffer.Buffer = FrameBuffer; } void SyserActive() { gpSyser->Active(); } NTSTATUS CompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context) { IoFreeIrp(Irp); return STATUS_MORE_PROCESSING_REQUIRED; } bool InstallDdrawHook() { ULPOS SyserRootImageBase; PEPROCESS Pr; ULPOS Address; CDbgProcess*pProcess; NTSTATUS ntStatus; if(gpSysBootDevEx==NULL) { ::DbgPrint("Syser : Fail to attach FrameBuffer , SysBoot isn't actived!\n"); return true; } if(gpSysBootDevEx->cbSize == sizeof(SYSER_BOOT_DEVICE_EXTENSION)) { gpSysBootDevEx->pfnFrameModeChange = SyserFrameModeChange; gpSysBootDevEx->pfnFrameBufferFlip = SyserFrameBufferFlip; gpSysBootDevEx->pfnSyserActive = SyserActive; pbSyserDisabled = &gpSysBootDevEx->bDisabled; if(gpSysBootDevEx->pCurFrameBuffer) { SyserFrameModeChange( gpSysBootDevEx->pCurFrameBuffer->Width,gpSysBootDevEx->pCurFrameBuffer->Height, gpSysBootDevEx->pCurFrameBuffer->Bpp,gpSysBootDevEx->pCurFrameBuffer->Buffer, gpSysBootDevEx->pCurFrameBuffer->LineDistance,gpSysBootDevEx->pCurFrameBuffer->PixelFormat); return true; } else { ::DbgPrint("Syser : Fail to attach Video FrameBuffer !\n"); if(gInVMWARE) { ::DbgPrint("*************************************\n"); ::DbgPrint("Syser : Please Install VMWare Tools !\n"); ::DbgPrint("*************************************\n"); } else if(gInVirtualPC) { ::DbgPrint("************************************************************\n"); ::DbgPrint("Syser : Please Install or Update Virtual Machine Additions !\n"); ::DbgPrint("************************************************************\n"); } } } else { ::DbgPrint("Syser : SyserBoot[0x%X] version isn't same as Syser[0x%X]!\n",gpSysBootDevEx->cbSize,sizeof(SYSER_BOOT_DEVICE_EXTENSION)); } return true; } bool RemoveDdrawHook() { if(gpSysBootDevEx) { gpSysBootDevEx->pfnFrameModeChange = NULL; gpSysBootDevEx->pfnFrameBufferFlip = NULL; return true; } return true; } ================================================ FILE: Project/Syser/Source/VideoDriver.h ================================================ #ifndef _VIDEO_DRIVER_H_ #define _VIDEO_DRIVER_H_ bool InstallDdrawHook(); bool RemoveDdrawHook(); ULPOS GetWin32KServiceTable(CPEFile*pPEFile); void SyserFrameModeChange(int Width,int Height,int Bpp,void*FrameBuffer,int Pitch,UINT PixelFormat); extern SYSER_FRAME_BUFFER SyserFrameBuffer; extern SYSER_FRAME_BUFFER* pSyserFrameBuffer; #endif ================================================ FILE: Project/Syser/Source/VirtualPCSupport.cpp ================================================ #include "StdAfx.h" #include "Syser.h" void FlushVirtualPCScreenBuffer(int nleft,int ntop,int nright,int nbottom) { __asm { pushad mov eax,nleft mov ebx,ntop mov ecx,nright mov edx,nbottom __emit (0xf) __emit (0x3f) __emit (0x1) __emit (0x12) popad } } bool gInVirtualPC=false; bool VirtualPCTest() { __try { __asm { pushad mov ebx, 0 // Flag mov eax, 1 // VPC function number __emit 0Fh __emit 3Fh __emit 07h __emit 0Bh test ebx, ebx jnz local_001 mov gInVirtualPC,1 local_001: popad } } __except(EXCEPTION_EXECUTE_HANDLER) { gInVirtualPC=false; } if(gInVirtualPC) DbgPrint("Syser : Host machine is VirtualPC !\n"); return gInVirtualPC; } ================================================ FILE: Project/Syser/Source/VirtualPCSupport.h ================================================ #ifndef _VIRTUALPC_SUPPORT_H_ #define _VIRTUALPC_SUPPORT_H_ void FlushVirtualPCScreenBuffer(int nleft,int ntop,int nright,int nbottom); extern bool gInVirtualPC; bool VirtualPCTest(); #endif /* _VIRTUALPC_SUPPORT_H_ */ ================================================ FILE: Project/Syser/Source/WatchList.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "WatchList.h" WISP_MENU_RES_ITEM WatchMenu[]= { {WSTR("Add"),EVENT_ID_ADD,8*16}, {WSTR("Remove"),EVENT_ID_REMOVE,12*16+10}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CWatchList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CWatchList) WISP_MSG_EVENT_MAP(EVENT_ID_ADD,OnEventAdd); WISP_MSG_EVENT_MAP(EVENT_ID_REMOVE,OnEventRemove); WISP_MSG_EVENT_MAP_END CWatchList::CWatchList(void) { m_hLastItem = NULL; } CWatchList::~CWatchList(void) { } bool CWatchList::OnCreate(IN WISP_MSG*pMsg) { SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_Style|=WISP_WLS_VERT_LINE; m_PopupMenu.CreatePopupMenu(WatchMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hRemoveItem = m_PopupMenu.GetItem(EVENT_ID_REMOVE); InsertColumn(WISP_STR("Expression[F2]"),90,WISP_WLCS_EDITABLE); InsertColumn(WISP_STR("Value"),70); InsertColumn(WISP_STR("Context"),60); ResetContext(); return true; } bool CWatchList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CWatchList::OnEventAdd(IN WISP_MSG*pMsg) { BeginEditItem(m_hLastItem,0); return true; } bool CWatchList::OnEventRemove(IN WISP_MSG*pMsg) { HANDLE hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem && hItem!=m_hLastItem) RemoveItem(hItem); return true; } bool CWatchList::OnKeyEvent(IN WISP_MSG*pMsg) { HANDLE hItem; if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return true; if(pMsg->KeyEvent.bKeyDown==false) { if(pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) { hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); m_PopupMenu.EnableItem(m_hRemoveItem,hItem!=NULL && hItem!=m_hLastItem); m_PopupMenu.Popup(); } else if(pMsg->KeyEvent.KeyType == WISP_VK_F2) { hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem!=NULL) { BeginEditItem(hItem,0); } } } return true; } bool CWatchList::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(gpSyser->m_SyserUI.m_CodeDoc.IsOpened()==false) return false; return true; } bool CWatchList::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { if(hItem==m_hLastItem) { if(String.Length()) { m_hLastItem = InsertItem((WISP_PCSTR)NULL); return true; } return false; } if(String.Length()==0) { RemoveItem(hItem); return false; } return true; } void CWatchList::ItemChangedNotify(HANDLE hItem,int Col,CWispString&String) { if(Col==0) CalcLineExp(hItem); } void CWatchList::UpdateContext() { HANDLE hItem=GetItem(0); while(hItem) { if(hItem==m_hLastItem) break; CalcLineExp(hItem); hItem = GetNextItem(hItem); } UpdateClient(); } void CWatchList::ResetContext() { ClearChildItem(); m_hLastItem = InsertItem((WISP_PCSTR)NULL); SelectItem(m_hLastItem); } void CWatchList::CalcLineExp(HANDLE hItem) { CHAR szBuffer[256]; WCHAR szSymbol[256]; PCWSTR pszSym; DWORD Result; pszSym = NULL; if(CALCEXP(GetItemText(hItem),&Result)) { SetItemNum(hItem,1,Result); if(GETSYM(Result,szBuffer)) { TStrCpy(szSymbol,szBuffer); pszSym = szSymbol; } } else SetItemText(hItem,1,WSTR("????????")); SetItemText(hItem,2,pszSym); } ================================================ FILE: Project/Syser/Source/WatchList.h ================================================ #ifndef _WATCH_LIST_H_ #define _WATCH_LIST_H_ class CWatchList : public CWispList { public: CWatchList(void); virtual ~CWatchList(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventAdd) DECLARE_WISP_MSG_EVENT(OnEventRemove) bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void ItemChangedNotify(HANDLE hItem,int Col,CWispString&String); void UpdateContext(); void ResetContext(); private: HANDLE m_hLastItem; void CalcLineExp(HANDLE hItem); CWispMenu m_PopupMenu; HANDLE m_hRemoveItem; }; #endif ================================================ FILE: Project/Syser/Source/WndStringReference.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "StringReference.h" #include "WndStringReference.h" enum{ CMD_SEARCH_CHANGE, }; enum CFindStringForm::WISP_FORM_ID { CMD_ID_BUTTON_FIND = WISP_ID_USER_START, CMD_ID_BUTTON_CLOSE, CMD_ID_EDIT_FINDTEXT, }; WISP_FORM_RES_ITEM CFindStringForm::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,320,120}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Find"), "\\SyserIcon\\Plugin.ico", WSTR("Find"), }, { WISP_CTRL_STATIC_STRING, {10,18,70,20}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Find what: "), NULL, NULL }, { WISP_CTRL_EDIT, {80,15,220,20}, CMD_ID_EDIT_FINDTEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {54,50,78,21}, CMD_ID_BUTTON_FIND, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Find Next"), }, { WISP_CTRL_BUTTON, {186,50,78,21}, WISP_ID_CANCEL, WISP_BS_NORMAL, WSTR("Close"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CFindStringForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CFindStringForm) WISP_MSG_CMD_MAP(CMD_ID_EDIT_FINDTEXT,OnFindTextCmd) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CFindStringForm) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_FIND,OnFindButtonEvent) WISP_MSG_EVENT_MAP_END CFindStringForm::CFindStringForm() { m_pFormRes = m_FormRes; } CFindStringForm::~CFindStringForm() { } bool CFindStringForm::OnFormCreate(IN WISP_MSG* pMsg) { m_FindButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_FIND); m_CloseButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_CLOSE); m_FindEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_FINDTEXT); return true; } bool CFindStringForm::OnFindTextCmd(IN WISP_MSG* pMsg) { CWispString* FindText; switch(pMsg->Command.CmdMsg) { case WISP_CMD_EN_INPUT_KEY_DOWN: if(pMsg->Command.Param1==WISP_VK_RETURN) { m_FindButton->Focus(); return OnFindButtonEvent(NULL); } break; case WISP_CMD_EN_INPUT_KEY_UP: if(pMsg->Command.Param1==WISP_VK_RETURN) return false; break; case WISP_CMD_EN_CHANGED: FindText = &m_FindEdit->GetWindowText(); m_FindButton->EnableWindow(FindText->IsEmpty()==false); m_FindButton->Update(); break; } return true; } bool CFindStringForm::OnFindButtonEvent(IN WISP_MSG* pMsg) { CWispString& pFindText = m_FindEdit->GetWindowText(); if(m_pContextList) { if(m_pContextList->m_SearchString == pFindText) m_pContextList->OnEventSearchAgain(NULL); else m_pContextList->FindString(pFindText); } return true; } void CFindStringForm::SetContextList(CStringReferenceList* pContextList) { m_pContextList = pContextList; return; } WISP_MENU_RES_ITEM SRMenu[]= { {WSTR("Search Ctrl+N"), EVENT_ID_SR_SEARCH, 7*16+7}, {WSTR("Search again Alt+N"), EVENT_ID_SR_SEARCH_AGAIN,7*16+7}, WISP_MENU_RES_END }; WISP_MSG_MAP_BEGIN(CStringReferenceList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP(WISP_WM_CHAR,OnChar) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_CMD_MAP_BEGIN(CStringReferenceList) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CStringReferenceList) WISP_MSG_EVENT_MAP(EVENT_ID_SR_SEARCH_AGAIN, OnEventSearchAgain) WISP_MSG_EVENT_MAP(EVENT_ID_SR_SEARCH, OnEventSearch) WISP_MSG_EVENT_MAP_END bool CStringReferenceList::OnEventSearch(IN WISP_MSG*pMsg) { m_FindDlg.CreateForm(NULL); m_FindDlg.SetContextList(this); return true; } bool CStringReferenceList::OnEventSearchAgain(IN WISP_MSG*pMsg) { WCHAR Buffer[256]; PWCHAR pBuffer; int n,nCol; HANDLE hItem; hItem= GetNextItem(NULL,WISP_WLIS_SELECTED); if(m_SearchString.Length()==0) return true; if(hItem==NULL) hItem = GetNextListItem(); n=m_SearchString.Length()+5; if(n>sizeof(Buffer)/sizeof(Buffer[0])-1) n=sizeof(Buffer)/sizeof(Buffer[0])-1; if(m_TypeWnd==0) nCol=1; else nCol=3; if(hItem) hItem=GetNextListItem(hItem); while(hItem) { GetItemText(hItem,nCol,Buffer,n); if(Buffer[0]=='L' && Buffer[1]=='"') pBuffer=Buffer+2; else pBuffer=Buffer+1; if(TStrNICmp(pBuffer,(WISP_CHAR*)m_SearchString,m_SearchString.Length())==0) break; hItem = GetNextListItem(hItem); } if(hItem) { SelectItem(hItem); EnableVisible(hItem); } return true; } void CStringReferenceList::AttachShortcutKey() { if(gpSyser->AttachShortcutKey(EVENT_ID_SR_SEARCH_AGAIN,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_ALT | WISP_VK_N,EVENT_ID_SR_SEARCH_AGAIN); if(gpSyser->AttachShortcutKey(EVENT_ID_SR_SEARCH,m_HotKeyMap)==0) m_HotKeyMap.InsertUnique(WISP_MOD_CTRL | WISP_VK_N,EVENT_ID_SR_SEARCH); } bool CStringReferenceList::OnKeyEvent(IN WISP_MSG*pMsg) { SRHOTKEYMAP::IT FindIT; WISP_MSG Msg; if(pMsg->KeyEvent.bKeyDown) { FindIT = m_HotKeyMap.Find(pMsg->KeyEvent.KeyType); if(FindIT != m_HotKeyMap.End()) { memset(&Msg,0,sizeof(Msg)); Msg.Command.CmdID=*FindIT; return OnEvent(&Msg); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: PopupMenu(); break; } } return true; } CStringReferenceList::CStringReferenceList() { m_MaxMatchLen=0; } bool CStringReferenceList::OnMouseDBClick(IN WISP_MSG*pMsg) { WISP_RECT CellRC; int nCol=1; HANDLE hItem= GetNextItem(NULL,WISP_WLIS_SELECTED);; ULPOS Address=0; if(m_TypeWnd==0) nCol=1; else nCol=3; memset(&CellRC,0,sizeof(CellRC)); if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON && hItem) { GetItemCellRect(hItem,nCol,&CellRC); if(pMsg->MsgMouseWndPT.x >= CellRC.x && pMsg->MsgMouseWndPT.x<=CellRC.x+CellRC.cx) { VIEW_DATA((ULPOS)GetItemData(hItem,1)); } else { VIEW_CODE((ULPOS)GetItemData(hItem,0),true); } } return true; } bool CStringReferenceList::FindString(WISP_CHAR* pSearch) { int n,nCol; WCHAR Buffer[256]; PWCHAR pBuffer; if(m_TypeWnd==0) nCol=1; else nCol=3; if(pSearch) m_SearchString=pSearch; n=m_SearchString.Length()+5; if(n>sizeof(Buffer)/sizeof(Buffer[0])-1) n=sizeof(Buffer)/sizeof(Buffer[0])-1; HANDLE hItem = GetNextItem(NULL); while(hItem) { Buffer[255]=0; GetItemText(hItem,nCol,Buffer,sizeof(Buffer)-1); if(Buffer[0]=='L' && Buffer[1]=='"') pBuffer=Buffer+2; else pBuffer=Buffer+1; pBuffer = TStrIStr(pBuffer,(WISP_CHAR*)m_SearchString); if(pBuffer) break; hItem = GetNextItem(hItem); } if(hItem) { m_MaxMatchLen=m_SearchString.Length(); SelectItem(hItem); EnableVisible(hItem); SendCmdMsg(CMD_SEARCH_CHANGE,1,0); } else { SendCmdMsg(CMD_SEARCH_CHANGE,0,0); } return true; } bool CStringReferenceList::OnChar(IN WISP_MSG*pMsg) { int n; n = m_SearchString.Length(); if(pMsg->Char.Char==0x8 || n>m_MaxMatchLen) { if(n) m_SearchString.Delete(n-1); if(pMsg->Char.Char!=0x8) m_SearchString+= pMsg->Char.Char; } else m_SearchString+= pMsg->Char.Char; if(pMsg->Char.Char==0x08) SendCmdMsg(CMD_SEARCH_CHANGE,1,0); else FindString(); return true; } bool CStringReferenceList::OnCreate(IN WISP_MSG*pMsg) { SetDefaultTextColor(ColorOption.clrText); SetBGColor(ColorOption.clrBackground); m_SearchString.Empty(); AttachShortcutKey(); m_PopupMenu.CreatePopupMenu(SRMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_MenuSearchAgain = m_PopupMenu.GetItem(EVENT_ID_SR_SEARCH_AGAIN); return true; } bool CStringReferenceList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } void CStringReferenceList::PopupMenu() { HANDLE hItem; hItem = GetNextItem(NULL,WISP_WLIS_SELECTED); m_PopupMenu.EnableItem(m_MenuSearchAgain,m_SearchString.IsEmpty()==false); m_PopupMenu.Popup(); } void CStringReferenceList::ItemClickNotify(HANDLE hItem,int Col) { } void CStringReferenceList::UpdateContext(ULPOS Address,bool bRelocal) { CFindString FindString; TMap::IT BeginIT,EndIT; WISP_COLOR_CHAR szColorBuffer[256]; WCHAR StringBuf[256]; HANDLE hItem,hSubItem; bool bUnicode=false; char Str[256]; TMap SortMap; TMap::IT SortIT; DWORD Len,ModuleAddress; CCodeView*pCodeView; NUM_PTR ItemData; pCodeView=(CCodeView*)gpSyser->m_MainFrame.m_SystemExplorer.m_MultiCodeView.GetActiveWnd(); if(pCodeView==NULL) return ; gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.Clear(); hItem=pCodeView->GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem) { ModuleAddress = (DWORD)GetItemData(hItem,1); } else ModuleAddress =*X86_REG_PTR.pEIP; if(m_TypeWnd) { FindString.SearchImageMemory(ModuleAddress); BeginIT = gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.Begin(); EndIT = gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.End(); for(;BeginIT!=EndIT;BeginIT++) { bUnicode=false; Address = (DWORD)(*BeginIT); ItemData=*BeginIT; pCodeView->ColorDasm(BeginIT.Key(),MAX_INSTR_LEN,szColorBuffer); hItem = InsertItem(BeginIT.Key(),NULL,WSTR("%08X")); SetItemColorText(hItem,2,szColorBuffer); SetItemData(hItem,1,ItemData); ItemData=BeginIT.Key(); SetItemData(hItem,0,ItemData); Len=(DWORD)((*BeginIT)>>32); if(Len&0x80000000) { bUnicode=true; Len &= 0x7fffffff; } if(Len>256) Len=255; if(bUnicode) { StringBuf[0]='L'; StringBuf[1]='"'; gpSyser->m_pDebugger->ReadMemory(Address,StringBuf+2,Len*sizeof(WCHAR)); StringBuf[1+Len]='"'; StringBuf[2+Len]=0; StringBuf[255]=0; SetItemText(hItem,1,L"U"); } else { Str[0]=0; gpSyser->m_pDebugger->ReadMemory(Address,Str,Len); Str[255]=0; TStrCpyLimit(StringBuf+1,Str,Len); StringBuf[0]='"'; TStrCat(StringBuf,"\""); SetItemText(hItem,1,L"C"); } SetItemText(hItem,3,StringBuf); } } else { FindString.SearchImageMemory(*X86_REG_PTR.pEIP); BeginIT = gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.Begin(); EndIT = gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.End(); for(;BeginIT!=EndIT;BeginIT++) { bUnicode=false; Address = (DWORD)(*BeginIT); ItemData = *BeginIT; pCodeView->ColorDasm(BeginIT.Key(),MAX_INSTR_LEN,szColorBuffer); SortIT = SortMap.Find(Address); if(SortIT!=SortMap.End()) { hItem=*SortIT; } else { hItem = InsertItem(Address,NULL,WSTR("%08X")); SortMap.InsertUnique(Address,hItem); SetItemData(hItem,1,ItemData); ItemData=BeginIT.Key(); ItemData|=0x8000000000000000; SetItemData(hItem,0,ItemData); Len=(DWORD)((*BeginIT)>>32); if(Len&0x80000000) { bUnicode=true; Len &= 0x7fffffff; } if(Len>256) Len=255; if(bUnicode) { StringBuf[0]='L'; StringBuf[1]='"'; gpSyser->m_pDebugger->ReadMemory(Address,StringBuf+2,Len*sizeof(WCHAR)); StringBuf[1+Len]='"'; StringBuf[2+Len]=0; StringBuf[255]=0; } else { Str[0]=0; gpSyser->m_pDebugger->ReadMemory(Address,Str,Len); Str[255]=0; TStrCpyLimit(StringBuf+1,Str,Len); StringBuf[0]='"'; TStrCat(StringBuf,"\""); } SetItemText(hItem,1,StringBuf); } hSubItem = InsertItem(BeginIT.Key(),hItem,WSTR("%08X")); SetItemColorText(hSubItem,1,szColorBuffer); SetItemData(hSubItem,0,BeginIT.Key()); ItemData = *BeginIT; SetItemData(hSubItem,1,ItemData); } SortMap.Clear(); } } void CStringReferenceList::ResetContext() { } bool CStringReferenceList::BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String) { return true; } bool CStringReferenceList::EndEditItemNotify(HANDLE hItem,int Col,CWispString&String) { return false; } WISP_MSG_MAP_BEGIN(CFindListWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispWnd) WISP_MSG_CMD_MAP_BEGIN(CFindListWnd) WISP_MSG_CMD_MAP(EVENT_ID_STRING_REFERENCE_WISPLIST,OnListWndCmd); WISP_MSG_CMD_MAP_END bool CFindListWnd::OnListWndCmd(IN WISP_MSG* pMsg) { switch(pMsg->Command.CmdMsg) { case CMD_SEARCH_CHANGE: m_StatusWnd.m_StatusString = m_ListWnd.m_SearchString; if(pMsg->Command.Param1 == 0 ) { if(m_StatusWnd.m_StatusString.Length()!=0) m_StatusWnd.m_StatusString += WSTR(": not found"); } m_StatusWnd.Update(); break; } return true; } bool CFindListWnd::OnCreate(IN WISP_MSG* pMsg) { m_TypeWnd=1; m_ListWnd.Create(WSTR("String Reference"),0,0,556,300,this,EVENT_ID_STRING_REFERENCE_WISPLIST,WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_SELECTED_ALWAYS); m_ListWnd.SetWndType(1); gpSyser->m_MainFrame.m_SystemExplorer.m_StrReferenceMap.Clear(); if(m_TypeWnd) { m_ListWnd.InsertColumn(WSTR("Address"),60); m_ListWnd.InsertColumn(WSTR("Type"),32); m_ListWnd.InsertColumn(WSTR("Disassembly"),200); m_ListWnd.InsertColumn(WSTR("Text String"),280); } else { m_ListWnd.InsertColumn(WSTR("Address"),80); m_ListWnd.InsertColumn(WSTR("Text String/Disassembly"),200); } m_ListWnd.m_SelectBKColor = ColorOption.clrSelectedFrame; m_ListWnd.SetDefaultTextColor(ColorOption.clrText); m_ListWnd.SetBGColor(ColorOption.clrBackground); m_StatusWnd.Create(NULL,0,300,564,20,this,0,WISP_WS_THIN_BORDER); m_StatusWnd.SetBGColor(ColorOption.clrBackground); m_StatusWnd.m_ClientDC.SetTextColor(ColorOption.clrText); m_ListWnd.UpdateContext(0,0); return true; } bool CFindListWnd::OnSize(IN WISP_MSG* pMsg) { m_ListWnd.Resize(m_ClientRect.cx,m_ClientRect.cy-20); m_StatusWnd.Resize(m_ClientRect.cx,20); m_ListWnd.MoveToWindow(m_ClientRect.x,m_ClientRect.y); m_StatusWnd.MoveToWindow(m_ClientRect.x,m_ClientRect.y+m_ClientRect.cy-20); return true; } WISP_MSG_MAP_BEGIN(CStatusWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP_END(CWispWnd) bool CStatusWnd::OnUpdateClient(IN WISP_MSG* pMsg) { CWispWnd::OnUpdateClient(pMsg); m_ClientDC.DrawString(4,2,(WISP_CHAR*)m_StatusString); return false; } bool CStatusWnd::OnCreate(IN WISP_MSG* pMsg) { m_BorderSize=2; m_StatusString.Empty(); return true; } ================================================ FILE: Project/Syser/Source/WndStringReference.h ================================================ #ifndef __STRING_REFERENCE_LIST__H__ #define __STRING_REFERENCE_LIST__H__ typedef DWORD VALUE_TYPE; class CStringReferenceList; class CFindStringForm : public CWispForm { public: CFindStringForm(); ~CFindStringForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnFindTextCmd) DECLARE_WISP_MSG_EVENT(OnFindButtonEvent) public: CWispButton* m_FindButton; CWispButton* m_CloseButton; CWispEdit* m_FindEdit; CStringReferenceList *m_pContextList; void SetContextList(CStringReferenceList* pContextList); }; class CStringReferenceList : public CWispList { typedef TMap SRHOTKEYMAP; public: CStringReferenceList(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG(OnChar) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventSearchAgain) DECLARE_WISP_MSG_EVENT(OnEventSearch) DECLARE_WISP_MSG(OnMouseDBClick) public: void ItemClickNotify(HANDLE hItem,int Col); void UpdateContext(ULPOS Address,bool bRelocal=false); void ResetContext(); bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String); bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String); void PopupMenu(); void SetWndType(int Type){m_TypeWnd=Type;} int m_TypeWnd; int m_MaxMatchLen; CWispMenu m_PopupMenu; CWispString m_SearchString; SRHOTKEYMAP m_HotKeyMap; void AttachShortcutKey(); CFindStringForm m_FindDlg; bool FindString(WISP_CHAR* pSearch=NULL); HANDLE m_MenuSearchAgain; }; class CStatusWnd : public CWispWnd { public: CStatusWnd(){} virtual ~CStatusWnd(){} DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnUpdateBorder) DECLARE_WISP_MSG(OnCreate) CWispString m_StatusString; }; class CFindListWnd : public CWispWnd { public: CFindListWnd(){} virtual ~CFindListWnd(){} CStatusWnd m_StatusWnd; CStringReferenceList m_ListWnd; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnListWndCmd) void SetWndType(int Type){m_TypeWnd=Type;} int m_TypeWnd; }; #endif /__STRING_REFERENCE_LIST__H__ ================================================ FILE: Project/Syser/Source/X86Define.h ================================================ #ifndef _X86_DEFINE_H_ #define _X86_DEFINE_H_ #include "LocalAPIC.h" //־Ĵλζ struct EFLAG_REG { bool CF :1; //0 bool b1 :1; //1 bool PF :1; //2 bool b3 :1; //3 bool AF :1; //4 bool b5 :1; //5 bool ZF :1; //6 bool SF :1; //7 bool TF :1; //8 bool IF :1; //9 bool DF :1; //10 bool OF :1; //11 UINT IOPL :2; //12--13 bool NT :1; //14 bool bf :1; //15 bool RF :1; //16 bool VM :1; //17 bool AC :1; //18 bool VIF :1; //19 bool VIP :1; //20 bool ID :1; //21 UINT Reserve:10; //22--23 }; struct FPU_STATUS_REG { WORD IE:1; WORD DE:1; WORD ZE:1; WORD OE:1; WORD UE:1; WORD PE:1; WORD SF:1; WORD ES:1; WORD C0:1; WORD C1:1; WORD C2:1; WORD TOP:3; WORD C3:1; WORD B:1; }; struct FPU_TAG_WORD_REG { WORD TAG0:2; WORD TAG1:2; WORD TAG2:2; WORD TAG3:2; WORD TAG4:2; WORD TAG5:2; WORD TAG6:2; WORD TAG7:2; }; struct FPU_CONTROL_REG { WORD IM:1; WORD DM:1; WORD ZM:1; WORD OM:1; WORD UM:1; WORD PM:1; WORD Reserved1:2; WORD PC:2; WORD RC:2; WORD X:1; WORD Reserved2:3; }; typedef struct _FPU_SAVE_STATUS { WORD ControlWord; WORD Reserved1; WORD StatusWord; WORD Reserved2; WORD TagWord; WORD Reserved3; DWORD InstructionPointer; DWORD Zero:5; DWORD Opcode:11; DWORD InstructionPointerSelector:16; DWORD OperandPointerOffset; WORD Reserved4; WORD OperandPointerSelector; BYTE Reg[8][10]; }FPU_SAVE_STATUS,*PFPU_SAVE_STATUS; struct DEBUG_CTRL_REG { bool L0 :1; bool G0 :1; bool L1 :1; bool G1 :1; bool L2 :1; bool G2 :1; bool L3 :1; bool G3 :1; bool LE :1; bool GE :1; bool :3; bool GD :1; bool :2; UINT RWE0:2; UINT LEN0:2; UINT RWE1:2; UINT LEN1:2; UINT RWE2:2; UINT LEN2:2; UINT RWE3:2; UINT LEN3:2; }; struct DEBUG_STATUS_REG { bool B0 :1; bool B1 :1; bool B2 :1; bool B3 :1; UINT :9; bool BD :1; bool BS :1; bool BT :1; UINT :16; }; enum GENE_REG_INDEX { EAX_IDX = 0, ECX_IDX, EDX_IDX, EBX_IDX, ESP_IDX, EBP_IDX, ESI_IDX, EDI_IDX, GENE_IDX_MAX }; enum SEG_REG_INDEX { ES_IDX = 0, CS_IDX, SS_IDX, DS_IDX, FS_IDX, GS_IDX, SEG_IDX_MAX }; typedef struct _RETURN_CONTEXT { DWORD rEIP; DWORD rCS; DWORD rEflags; DWORD r3ESP; DWORD r3SS; DWORD rV86ES; DWORD rV86DS; DWORD rV86FS; DWORD rV86GS; }RETURN_CONTEXT,*PRETURN_CONTEXT; typedef struct _X86_REG_CONTEXT { DWORD GeneReg[GENE_IDX_MAX]; DWORD CR[5]; DWORD DR[8]; DWORD EIP; DWORD EFlags; WORD SegReg[SEG_IDX_MAX]; WORD TR; WORD LDT; WORD Reserved1; WORD GDTLimit; DWORD GDTBase; WORD Reserved2; WORD IDTLimit; DWORD IDTBase; DWORD ExceptionEIP; //쳣ʱEIP ֻ쳣в DWORD ExceptionInterruptNumber; //쳣жϺ 0e ȱҳж, 0d ͨ쳣 DWORD ExceptionInterruptErrorCode; //쳣Ĵ PSAVELOCALAPIC LocalAPIC; WORD FPUStatusWord; WORD FPUControlWord; WORD FPUTagWord; WORD Reserved3; }X86_REG_CONTEXT,*PX86_REG_CONTEXT; enum { SYS_SEG_GATE_DECR_TYPE_RESERVED_1 = 0x00, // SYS_SEG_GATE_DECR_TYPE_16TSS_AVAIL = 0x01, //16λTSS() SYS_SEG_GATE_DECR_TYPE_LDT = 0x02, //LDT SYS_SEG_GATE_DECR_TYPE_16TSS_BUSY = 0x03, //16λTSS(æ) SYS_SEG_GATE_DECR_TYPE_16CALL_GATE = 0x04, //16λ SYS_SEG_GATE_DECR_TYPE_TASK_GATE = 0x05, // SYS_SEG_GATE_DECR_TYPE_16INT_GATE = 0x06, //16λж SYS_SEG_GATE_DECR_TYPE_16TRAP_GATE = 0x07, //16λ SYS_SEG_GATE_DECR_TYPE_RESERVED_2 = 0x08, // SYS_SEG_GATE_DECR_TYPE_32TSS_AVAIL = 0x09, //32λTSS() SYS_SEG_GATE_DECR_TYPE_RESERVED_3 = 0x0A, // SYS_SEG_GATE_DECR_TYPE_32TSS_BUSY = 0x0B, //32λTSS(æ) SYS_SEG_GATE_DECR_TYPE_32CALL_GATE = 0x0C, //32λ SYS_SEG_GATE_DECR_TYPE_RESERVED_4 = 0x0D, // SYS_SEG_GATE_DECR_TYPE_32INT_GATE = 0x0E, //32λж SYS_SEG_GATE_DECR_TYPE_32TRAP_GATE = 0x0F, //32λ }; typedef DWORD REG32; typedef DWORD VADDR32; typedef DWORD PADDR32; typedef WORD SELECTOR; struct SELECTOR_DECR { UINT RPL:2; UINT TI:1; UINT Index:13; }; typedef struct _X86_GATE_DECR { WORD OffsetLow; SELECTOR Selector; BYTE DCount :5; BYTE Reserved:3; BYTE Type :4; BYTE DT :1;//storage segment (value=1) system segment and system gate (value=0) BYTE DPL :2;//Descriptor Privilege Level BYTE P :1;//Present WORD OffsetHigh; }X86_GATE_DECR,*PX86_GATE_DECR; typedef struct _X86_SEGMENT_DESCRIPTOR //descriptor { DWORD limit_L0:8; DWORD limit_L1:8; DWORD base_L0:8; DWORD base_L1:8; DWORD base_H0:8; DWORD TYPE:4; //type DWORD DT:1; //storage segment (value=1) system segment and system gate (value=0) DWORD DPL:2; //Descriptor Privilege Level DWORD P:1; //Present DWORD limit_H:4; DWORD AVL:1; //soft accessed DWORD reseved:1; //reseved (value=0) DWORD D:1; // segment size BIT31(1) BIT16(0) (storage segment) DWORD G:1; //Granularity DWORD base_H1:8; }X86_SEGMENT_DESCRIPTOR; typedef struct _X86_PDE_4M { DWORD Present :1; DWORD ReadWrite :1; DWORD UserPage :1; DWORD WriteThrough :1; DWORD CacheDisable :1; DWORD Accessed :1; DWORD Dirty :1; DWORD Page4M :1; DWORD GlobePage :1; DWORD Avail :3; DWORD PageTabAttrIdx :1; DWORD Reserved1 :9; DWORD PageBase :10; }X86_PDE_4M,*PX86_PDE_4M; typedef union _X86_PDE { struct _u{ DWORD Present :1; DWORD ReadWrite :1; DWORD UserPage :1; DWORD WriteThrough :1; DWORD CacheDisable :1; DWORD Accessed :1; DWORD Reserved :1; DWORD Page4M :1; DWORD GlobePage :1; DWORD Avail :3; DWORD PageTabBase :20; }u; ULONG PDEValue; }X86_PDE,*PX86_PDE; typedef union _X86_36_PDE { struct _u{ DWORD P:1; DWORD RW:1; DWORD US:1; DWORD PWT:1; DWORD PCD:1; DWORD A:1; DWORD Reserved:1; DWORD Page2M:1; DWORD Reserved1:1; DWORD Avail:3; DWORD BaseAddressLow:20; DWORD BaseAddressHigh:4; DWORD Reserved2:27; DWORD NXE:1; }u; ULONGLONG PDE36Value; }X86_36_PDE,*PX86_36_PDE; typedef union _X86_36_PDE_2M { struct _u{ DWORD P:1; DWORD RW:1; DWORD US:1; DWORD PWT:1; DWORD PCD:1; DWORD A:1; DWORD D:1; DWORD Page2M:1; DWORD G:1; DWORD Avail:3; DWORD PAT:1; DWORD Reserved:8; DWORD BaseAddress:11; DWORD BaseAddressHigh:4; DWORD Reserved1:27; DWORD NXE:1; }u; ULONGLONG PDE36Value2M; }X86_36_PDE_2M,*PX86_36_PDE_2M; typedef struct _X86_36_PDE_4M { DWORD P:1; DWORD RW:1; DWORD US:1; DWORD PWT:1; DWORD PCD:1; DWORD A:1; DWORD D:1; DWORD Page4M:1; DWORD G:1; DWORD Avail:3; DWORD PAT:1; DWORD BaseAddressHigh:4; DWORD Reserved:5; DWORD BaseAddressLow:10; }X86_36_PDE_4M,*PX86_36_PDE_4M; typedef union _X86_36_PTE { struct _u{ DWORD P:1; DWORD RW:1; DWORD US:1; DWORD PWT:1; DWORD PCD:1; DWORD A:1; DWORD D:1; DWORD PAT:1; DWORD G:1; DWORD Avail:3; DWORD BaseAddressLow:20; DWORD BaseAddressHigh:4; DWORD Reserved:27; DWORD NXE:1; }u; ULONGLONG PTE36Value; }X86_36_PTE,*PX86_36_PTE; typedef struct _X86_PTE { DWORD Present :1; DWORD ReadWrite :1; DWORD UserPage :1; DWORD WriteThrough :1; DWORD CacheDisable :1; DWORD Accessed :1; DWORD Dirty :1; DWORD PageTabAttrIdx :1; DWORD GlobePage :1; DWORD Avail :3; DWORD PageTabBase :20; }X86_PTE; typedef struct _TASK32SEGMENT { WORD TaskLink; WORD TaskLink_word_filler; //------------- DWORD ESP0; WORD SS0; WORD SS0_word_filler; DWORD ESP1; WORD SS1; WORD SS1_word_filler; DWORD ESP2; WORD SS2; WORD SS2_word_filler; //------------- DWORD CR3; DWORD eip; DWORD efl; DWORD eax; DWORD ecx; DWORD edx; DWORD ebx; DWORD esp; DWORD ebp; DWORD esi; DWORD edi; //------------- WORD ES; WORD ES_word_filler; WORD CS; WORD CS_word_filler; WORD SS; WORD SS_word_filler; WORD DS; WORD DS_word_filler; WORD FS; WORD FS_word_filler; WORD GS; WORD GS_word_filler; //------------- WORD LDT; WORD LDT_word_filler; //------------- WORD Trap; WORD io_map_base; BYTE io_map; }TASK32SEGMENT,*PTASK32SEGMENT; typedef struct _TASK16SEGMENT { WORD TaskLink; //------------- WORD SP0; WORD SS0; WORD SP1; WORD SS1; WORD SP2; WORD SS2; //------------- WORD ip; WORD fl; WORD ax; WORD cx; WORD dx; WORD bx; WORD sp; WORD bp; WORD si; WORD di; //------------- WORD ES; WORD CS; WORD SS; WORD DS; //------------- WORD LDT; }TASK16SEGMENT,*PTASK16SEGMENT; typedef struct _CR4REGISTER { DWORD VEM:1; //Virtual-8086 Mode Extensions (bit 0 of CR4). DWORD PVI:1; //Protected-Mode Virtual Interrupts (bit 1 of CR4). DWORD TSD:1; //Time Stamp Disable (bit 2 of CR4). DWORD DE:1; //Debugging Extensions (bit 3 of CR4). DWORD PSE:1; //Page Size Extensions (bit 4 of CR4). DWORD PAE:1; //Physical Address Extension (bit 5 of CR4). DWORD MCE:1; //Machine-Check Enable (bit 6 of CR4). DWORD PGE:1; //Page Global Enable (bit 7 of CR4). DWORD PCE:1; //Performance-Monitoring Counter Enable (bit 8 of CR4). DWORD OSFXSR:1; //Operating System Support for FXSAVE and FXRSTOR instructions (bit 9 of CR4). DWORD OSXMMEXCPT:1; //Operating System Support for Unmasked SIMD Floating-Point Exceptions (bit 10 of CR4). DWORD Reserved:21; }CR4REGISTER,*PCR4REGISTER; typedef struct _CR0REGISTER { ULONG PE:1; //Paging (bit 31 of CR0) ULONG MP:1; //Monitor Coprocessor (bit 1 of CR0). ULONG EM:1; //Emulation (bit 2 of CR0) ULONG TS:1; //Task Switched (bit 3 of CR0) ULONG ET:1; //Extension Type (bit 4 of CR0) ULONG NE:1; //Numeric Error (bit 5 of CR0) ULONG ReservedBit6_15:10; ULONG WP:1; //Write Protect (bit 16 of CR0) ULONG ReservedBit17:1; ULONG AM:1; //Alignment Mask (bit 18 of CR0) ULONG ReservedBit19_28:10; ULONG NW:1; //Not Write-through (bit 29 of CR0) ULONG CD:1; //Cache Disable (bit 30 of CR0) ULONG PG:1; //Paging (bit 31 of CR0) }CR0REGISTER,*PCR0REGISTER; typedef struct _CR3REGISTER { ULONG ReservedBit0_2:3; ULONG PWT:1; //Page-level Cache Disable (bit 4 of CR3) ULONG PCD:1; //Page-level Writes Transparent (bit 3 of CR3) ULONG ReservedBit5_11:7; ULONG PageDirectoryBase:20; }CR3REGISTER,*PCR3REGISTER; typedef struct _PDECSRIPTOR { WORD Limit; DWORD Base; }PDECSRIPTOR,*PPDECSRIPTOR; typedef struct _CPUID_1_EAX_VERSION { DWORD SteppingID:4; DWORD Model:4; DWORD Family:4; DWORD ProcessorType:2; DWORD Reserved:2; DWORD ExtendedModel:4; DWORD ExtendedFamily:8; DWORD Reserved1:4; }CPUID_1_EAX_VERSION,*PCPUID_1_EAX_VERSION; typedef struct _CPUID_1_EDX_FEATURE { DWORD FPU:1; //Floating Point Unit On-Chip. The processor contains an x87 FPU. DWORD VME:1; //Virtual 8086 Mode Enhancements. Virtual 8086 mode enhancements,including CR4.VME for controlling the feature, CR4.PVI for protected mode virtual interrupts, software interrupt indirection, expansion of the TSS with the software indirection bitmap, and EFLAGS.VIF and EFLAGS.VIP flags. DWORD DE:1; //Debugging Extensions. Support for I/O breakpoints, including CR4.DE for controlling the feature, and optional trapping of accesses to DR4 and DR5. DWORD PSE:1; //Page Size Extension. Large pages of size 4 MByte are supported, including CR4.PSE for controlling the feature, the defined dirty bit in PDE (Page Directory Entries), optional reserved bit trapping in CR3, PDEs, and PTEs. DWORD TSC:1; //Time Stamp Counter. The RDTSC instruction is supported, including CR4.TSD for controlling privilege. DWORD MSR:1; //Model Specific Registers RDMSR and WRMSR Instructions. The RDMSR and WRMSR instructions are supported. Some of the MSRs are implementation dependent. DWORD PAE:1; //Physical Address Extension. Physical addresses greater than 32 bits are supported: extended page table entry formats, an extra level in the page translation tables is defined, 2-MByte pages are supported instead of 4 Mbyte pages if PAE bit is 1. The actual number of address bits beyond 32 is not defined, and is implementation specific. DWORD MCE:1; //Machine Check Exception. Exception 18 is defined for Machine Checks,including CR4.MCE for controlling the feature. This feature does not define the model-specific implementations of machine-check error logging,reporting, and processor shutdowns. Machine Check exception handlers may have to depend on processor version to do model specific processing of the exception, or test for the presence of the Machine Check feature. DWORD CX8:1; //CMPXCHG8B Instruction. The compare-and-exchange 8 bytes (64 bits) instruction is supported (implicitly locked and atomic). DWORD APIC:1; //APIC On-Chip. The processor contains an Advanced Programmable Interrupt Controller (APIC), responding to memory mapped commands in the physical address range FFFE0000H to FFFE0FFFH (by default - some processors permit the APIC to be relocated). DWORD Reserved:1; //Reserved DWORD SEP:1; //SYSENTER and SYSEXIT Instructions. The SYSENTER and SYSEXIT and associated MSRs are supported. DWORD MTRR:1; //Memory Type Range Registers. MTRRs are supported. The MTRRcap MSR contains feature bits that describe what memory types are supported, how many variable MTRRs are supported, and whether fixed MTRRs are supported. DWORD PGE:1; //PTE Global Bit. The global bit in page directory entries (PDEs) and page table entries (PTEs) is supported, indicating TLB entries that are common to different processes and need not be flushed. The CR4.PGE bit controls this feature. DWORD MCA:1; //Machine Check Architecture. The Machine Check Architecture, which provides a compatible mechanism for error reporting in P6 family, Pentium 4,Intel Xeon processors, and future processors, is supported. The MCG_CAP MSR contains feature bits describing how many banks of error reporting MSRs are supported. DWORD CMOV:1; //Conditional Move Instructions. The conditional move instruction CMOV is supported. In addition, if x87 FPU is present as indicated by the CPUID.FPU feature bit, then the FCOMI and FCMOV instructions are supported DWORD PAT:1; //Page Attribute Table. Page Attribute Table is supported. This feature augments the Memory Type Range Registers (MTRRs), allowing an operating system to specify attributes of memory on a 4K granularity through a linear address. DWORD PSE_36:1; //36-Bit Page Size Extension. Extended 4-MByte pages that are capable of addressing physical memory beyond 4 GBytes are supported. This feature indicates that the upper four bits of the physical address of the 4-MByte page is encoded by bits 13-16 of the page directory entry. DWORD PSN:1; //Processor Serial Number. The processor supports the 96-bit processor identification number feature and the feature is enabled. DWORD CLFSH:1; //CLFLUSH Instruction. CLFLUSH Instruction is supported. DWORD Reserved1:1; //Reserved DWORD DS:1; //Debug Store. The processor supports the ability to write debug information into a memory resident buffer. This feature is used by the branch trace store (BTS) and precise event-based sampling (PEBS) facilities DWORD ACPI:1; //Thermal Monitor and Software Controlled Clock Facilities. The processor implements internal MSRs that allow processor temperature to be monitored and processor performance to be modulated in predefined duty cycles under software control. DWORD MXX:1; //Intel MMX Technology. The processor supports the Intel MMX technology. DWORD FXSR:1; //FXSAVE and FXRSTOR Instructions. The FXSAVE and FXRSTOR instructions are supported for fast save and restore of the floating point context.Presence of this bit also indicates that CR4.OSFXSR is available for an operating system to indicate that it supports the FXSAVE and FXRSTOR instructions. DWORD SSE:1; //SSE. The processor supports the SSE extensions. DWORD SSE2:1; //SSE2. The processor supports the SSE2 extensions. DWORD SS:1; //Self Snoop. The processor supports the management of conflicting memory types by performing a snoop of its own cache structure for transactions issued to the bus. DWORD HTT:1; //Multi-Threading. The physical processor package is capable of supporting more than one logical processor. DWORD TM:1; //Thermal Monitor. The processor implements the thermal monitor automatic thermal control circuitry (TCC). DWORD Reserved2:1; //Reserved DWORD PBE:1; //Pending Break Enable. The processor supports the use of the FERR#/PBE# pin when the processor is in the stop-clock state (STPCLK# is asserted) to signal the processor that an interrupt is pending and that the processor should return to normal operation to handle the interrupt. Bit 10 (PBE enable) in the IA32_MISC_ENABLE MSR enables this capability. }CPUID_1_EDX_FEATURE,*PCPUID_1_EDX_FEATURE; typedef struct _CPUID_1_ECX_EXTENDED_FEATURE { ULONG SSE3:1; //Streaming SIMD Extensions 3 (SSE3). A value of 1 indicates the processor supports this technology. ULONG ReservedBit1:1; ULONG ReservedBit2:1; ULONG MONITOR:1; //MONITOR/MWAIT. A value of 1 indicates the processor supports this feature. ULONG DS_CPL:1; //CPL Qualified Debug Store. A value of 1 indicates the processor supports the extensions to the Debug Store feature to allow for branch message storage qualified by CPL. ULONG VMX:1; //Virtual Machine Extensions. A value of 1 indicates that the processor supports this technology ULONG ReservedBit6:1; ULONG EST:1; //Enhanced Intel SpeedStep? technology. A value of 1 indicates that the processor supports this technology. ULONG TM2:1; //Thermal Monitor 2. A value of 1 indicates whether the processor supports this technology. ULONG SSSE3:1; //A value of 1 indicates the presence of the Supplemental Streaming SIMD Extensions 4 (SSSE3). A value of 0 indicates the instruction extensions are not present in the processor ULONG CNXT_ID:1; //L1 Context ID. A value of 1 indicates the L1 data cache mode can be set to either adaptive mode or shared mode. A value of 0 indicates this feature is not supported. See definition of the IA32_MISC_ENABLE MSR Bit 24 (L1 Data Cache Context Mode) for details. ULONG ReservedBit11:1; ULONG ReservedBit12:1; ULONG CMPXCHG16B:1; //CMPXCHG16B Available. A value of 1 indicates that the feature is available. See the CMPXCHG8B/CMPXCHG16BCompare and Exchange Bytes section in this chapter for a description. ULONG xTPR_Update_Control:1; //xTPR Update Control. A value of 1 indicates that the processor supports changing IA32_MISC_ENABLES[bit 23]. ULONG ReservedBit15_31:17; }CPUID_1_ECX_EXTENDED_FEATURE,*PCPUID_1_ECX_EXTENDED_FEATURE; typedef struct _MSR_IA32_MISC_ENABLE { ULONG FastString:1; ULONG ReservedBit1:1; ULONG FPUMode:1; ULONG TM1E:1; ULONG SLD:1; ULONG ReservedBit5:1; ULONG TLCD:1; ULONG PMA:1; ULONG SLE:1; ULONG PQD:1; ULONG FerrIRE:1; ULONG BTSU:1; ULONG PEBSU:1; ULONG TM2E:1; ULONG ReservedBit14_17:4; ULONG EMFSM:1; ULONG ACLPD:1; ULONG ReservedBit20_21:2; ULONG LCPUIDMAXVAL:1; ULONG ReservedBit23:1; ULONG L1DCCM:1; ULONG ReservedBit25_31:7; }MSR_IA32_MISC_ENABLE,*PMSR_IA32_MISC_ENABLE; typedef struct _CPU_EFLAGS { ULONG CF:1; ULONG ReservedBit1_One:1; ULONG PF:1; ULONG ReservedBit3_Zero:1; ULONG AF:1; ULONG ReservedBit5_Zero:1; ULONG ZF:1; ULONG SF:1; ULONG TF:1; ULONG IF:1; ULONG DF:1; ULONG OF:1; ULONG IOPL:2; ULONG NT:1; ULONG ReservedBit15_Zero:1; ULONG RF:1; ULONG VM:1; ULONG AC:1; ULONG VIF:1; ULONG VIP:1; ULONG ID:1; ULONG ReservedBit22_31:10; }CPU_EFLAGS,*PCPU_EFLAGS; typedef struct _AMD_CPUID_1_ECX { DWORD SSE3:1; //SSE3 extensions. DWORD ReservedBit1_12:12; DWORD CMPXCHG16B:1; DWORD ReservedBit14_30:17; DWORD RAZ:1; }AMD_CPUID_1_ECX,*PAMD_CPUID_1_ECX; typedef struct _AMD_CPUID_1_EDX { DWORD FPU:1; //SSE3 extensions. DWORD VME:1; DWORD DE:1; DWORD PSE:1; DWORD TSC:1; DWORD MSR:1; DWORD PAE:1; DWORD MCE:1; DWORD CMPXCHG8B:1; DWORD APIC:1; DWORD ReservedBit10:1; DWORD SysEnterSysExit:1; DWORD MTRR:1; DWORD PGE:1; DWORD MCA:1; DWORD CMOV:1; DWORD PAT:1; DWORD PSE36:1; DWORD ReservedBit18:1; DWORD CLFSH:1; DWORD ReservedBit20_22:3; DWORD MMX:1; DWORD FXSR:1; DWORD SSE:1; DWORD SSE2:1; DWORD ReservedBit27:1; DWORD HTT:1; DWORD ReservedBit29_31:3; }AMD_CPUID_1_EDX,*PAMD_CPUID_1_EDX; typedef struct _AMD_CPUID_80000001_ECX { DWORD LahfSahf:1; //SSE3 extensions. DWORD CmpLegacy:1; DWORD SVM:1; DWORD ReservedBit3:1; DWORD AltMovCr8:1; DWORD ReservedBit5_31:27; }AMD_CPUID_80000001_ECX,*PAMD_CPUID_80000001_ECX; typedef struct _AMD_CPUID_80000001_EDX { DWORD FPU:1; //SSE3 extensions. DWORD VME:1; DWORD DE:1; DWORD PSE:1; DWORD TSC:1; DWORD MSR:1; DWORD PAE:1; DWORD MCE:1; DWORD CMPXCHG8B:1; DWORD APIC:1; DWORD ReservedBit10:1; DWORD SysCallSysRet:1; DWORD MTRR:1; DWORD PGE:1; DWORD MCA:1; DWORD CMOV:1; DWORD PAT:1; DWORD PSE36:1; DWORD ReservedBit18_19:2; DWORD NX:1; DWORD ReservedBit21:1; DWORD MmxExt:1; DWORD MMX:1; DWORD FXSR:1; DWORD FFXSR:1; DWORD ReservedBit26:1; DWORD RDTSCP:1; DWORD ReservedBit28:1; DWORD LM:1; DWORD _3DNowExt:1; DWORD _3DNow:1; }AMD_CPUID_80000001_EDX,*PAMD_CPUID_80000001_EDX; #define NT_CS (0x8) #define NT_UCS (0x1B) #define NT_DS (0x23) #define NT_FS (0x30) //Dr6 #define DR6_BD 0x2000 #define DR6_BS 0x4000 #define DR6_BT 0x8000 #define DR6_NOT_BD 0xFFFFDFFF #define DR6_NOT_BS 0xFFFFBFFF #define DR6_NOT_BT 0xFFFF7FFF #define CR4_VME_BIT_MASK 0x1 #define CR4_PVI_BIT_MASK 0x2 #define CR4_TSD_BIT_MASK 0x4 #define CR4_DE_BIT_MASK 0x8 #define CR4_PSE_BIT_MASK 0x10 #define CR4_PAE_BIT_MASK 0x20 #define CR4_MCE_BIT_MASK 0x40 #define CR4_PGE_BIT_MASK 0x80 #define CR4_PCE_BIT_MASK 0x100 #define CR4_OSFXSR_BIT_MASK 0x200 #define CR4_OSXMMEXCPT_BIT_MASK 0x400 #endif ================================================ FILE: Project/Syser/Source/X86Optr.cpp ================================================ #include "StdAfx.h" #include "X86Optr.h" #include "Syser.h" #include "Services.h" #include "IOAPIC.h" #ifdef __cplusplus extern "C" { #endif X86_REG_CONTEXT Reg; X86_REG_CONTEXT PrevReg; X86_REG_CONTEXT gExceptionReg; X86_REG_CONTEXT* ExceptionReg=&gExceptionReg; X86_REG_CONTEXT ReadOnlyActiveReg; RETURN_CONTEXT ReturnContext; DWORD ExceptionInterruptNum; DWORD ExceptionInterruptErrorCode; DWORD GeneralReg[8]; SAVELOCALAPIC* gpMCPULocalApic=NULL; X86_REG_CONTEXT*gpMCPUReg=NULL; //REG32 CR0Backup=0; bool gbHaveLastBranchMointer = false; DWORD dwLastBranchFromEIP; DWORD dwLastBranchToEIP; DWORD dwLastIntFromEIP; DWORD dwLastIntToEIP; BYTE gIRQLLevel[16]={ 0x0, 0xff, 0xff, 0x1, 0x2, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0x1b, 0x1c, 0x1d, 0x1e }; #ifdef __cplusplus }; // extern "C" #endif BYTE GetCurrentIRQLLevel() { DWORD Limit; DWORD BaseAddress; BYTE Level; if(gbIsUseAPIC) { return gIRQLLevel[(gdwLocalAPICTaskPriority>>4)&0xf]; } else { BaseAddress = GetSegmentBaseAddress((WORD)gSystemFSRegisterSelector,&Limit); BaseAddress+=0x24; Level = ReadByteDefaultValue((void*)BaseAddress,0xff); } return Level; } DWORD GetCPU_ID() { CPUID_INFO Info; SyserGetCPUID(&Info,1); return (Info.dwEBX >>24); } ////////////////////////////////////////////////////////////////////////////////////// //CPUID // CPUID_INFO*gpCPUIDInfo=NULL; DWORD gMaxCPUIDIndex = 0; // // void GetCPUID(CPUID_INFO *pCPUInfo,DWORD dwIndex) // { // __asm // { // pushad // pushfd // mov eax,dwIndex // cpuid // mov esi,pCPUInfo // mov [esi],eax // mov [esi+4],ebx // mov [esi+8],ecx // mov [esi+12],edx // popfd // popad // } // } // __declspec(naked) DWORD GetCPUIDMaxIndex() // { // __asm // { // PUSHAD // PUSHFD // MOV EAX,0 // CPUID // MOV [esp+0x20],eax // POPFD // POPAD // ret // } // } CPUID_INFO*InitCPUIDInfo() { if(SyserIsSupportCPUIDInstruction()==false) return NULL; gMaxCPUIDIndex=SyserGetCPUIDMaxIndex(); if(gMaxCPUIDIndex==0||gMaxCPUIDIndex>0x10) return NULL; gpCPUIDInfo=new CPUID_INFO[gMaxCPUIDIndex+1]; for(DWORD i = 0; i <= gMaxCPUIDIndex;i++) SyserGetCPUID(&gpCPUIDInfo[i],i); return gpCPUIDInfo; } void ReleaseCPUIDInfo(CPUID_INFO*pCPUIDInfo) { if(pCPUIDInfo==NULL) pCPUIDInfo = gpCPUIDInfo; if(pCPUIDInfo) delete []pCPUIDInfo; pCPUIDInfo=NULL; } // bool IsSupportCPUIDInstruction() // { // static bool bInit = false; // static bool bHaveCPUIDInstruction = false; // if(bInit==false) // { // __asm // { // PUSHAD // PUSHFD // MOV EAX,[ESP] // MOV EBX,EAX // XOR EAX,0X200000 // PUSH EAX // POPF // PUSHF // POP EAX // XOR EAX,EBX // MOV EAX,0 // JZ ExitFunc // CPUID // CMP EAX,1 // JNB Success // MOV bHaveCPUIDInstruction,0 // JMP ExitFunc // Success: // MOV bHaveCPUIDInstruction,1 // ExitFunc: // POPFD // POPAD // } // bInit = true; // } // return bHaveCPUIDInstruction; // } // //CPUID ////////////////////////////////////////////////////////////////////////////////////// // // __declspec(naked) __int64 __stdcall PrivateReadMSR(DWORD dwIndex) // { // __asm // { // mov ecx,[esp+4] // rdmsr // clc // ret 4 // } // } // __declspec(naked) __int64 __stdcall PrivateReadMSRError() // { // __asm // { // stc // ret 4 // } // } // ; // __declspec(naked) void __stdcall PrivateWriteMSR(DWORD dwIndex,DWORD dwValueLow,DWORD dwValueHigh) // { // __asm // { // mov ecx,[esp+4] // mov eax,[esp+8] // mov edx,[esp+0xc] // wrmsr // clc // ret 0xc // } // } // __declspec(naked) void __stdcall PrivateWriteMSRError() // { // __asm // { // stc // ret 0xc // } // } // bool ReadMSR(DWORD dwIndex,DWORD *dwHigh,DWORD *dwLow) // { // DWORD dwTmpHigh,dwTmpLow,dwRetValue=0; // if(IsSupportRDMSRInstruction()==FALSE) // return FALSE; // __asm // { // pushad // mov ecx,dwIndex // push ecx // call SyserPrivateReadMSR // jb local_1 // mov dwTmpHigh,edx // mov dwTmpLow,eax // mov eax,1 // mov dwRetValue,eax // jmp local_2 // local_1: // mov eax,0 // mov dwRetValue,eax // local_2: // popad // } // *dwHigh=dwTmpHigh; // *dwLow=dwTmpLow; // return dwRetValue==1; // } // __declspec(naked) __int64 __stdcall PrivateGetTSC() // { // __asm // { // rdtsc // clc // ret // } // } // // // __declspec(naked) __int64 __stdcall PrivateGetTSCError() // { // __asm // { // stc // ret // } // } // __declspec(naked)ULONGLONG GetTSC() // { // __asm // { // call PrivateGetTSC // ret // } // } // bool ReadTSC(ULONGLONG *llValue) // { // DWORD dwHigh,dwLow,dwRetValue; // __asm{ // push eax // push edx // call PrivateGetTSC // jb local_001 // mov dwHigh,edx // mov dwLow,eax // mov eax,1 // mov dwRetValue,eax // jmp local_002 // local_001: // mov eax,0 // mov dwRetValue,eax // local_002: // pop edx // pop eax // // } // *llValue=dwHigh; // *llValue<<=32; // *llValue|=dwLow; // return dwRetValue==1; // } // bool WriteMSR(DWORD dwIndex,DWORD dwHigh,DWORD dwLow) // { // DWORD dwRetValue; // if(IsSupportRDMSRInstruction()==FALSE) // return FALSE; // __asm{ // pushad // push edx // push eax // push ecx // call SyserPrivateWriteMSR // mov eax,1 // jnb local_001 // dec eax // local_001: // mov dwRetValue,eax // popad // } // return dwRetValue==1; // } bool SetBranchStepRun() { DWORD dwHigh,dwLow; if(gbHaveLastBranchMointer==false) return false; SyserReadMSR(0x1d9,&dwHigh,&dwLow); dwLow |= 2; SyserWriteMSR(0x1d9,dwHigh,dwLow); return true; } bool ClearBranchStepRun() { DWORD dwHigh,dwLow; if(gbHaveLastBranchMointer==false) return false; SyserReadMSR(0x1d9,&dwHigh,&dwLow); dwLow &= 0xfffffffd; SyserWriteMSR(0x1d9,dwHigh,dwLow); return true; } #define PDEBase ((DWORD*)0xC0300000) #define PTEBase ((DWORD*)0xC0000000) DWORD GetTSSBase(DWORD *pTSSSize,DWORD dwSelector) { VADDR32 dwGDTBase = 0; DWORD dwGDTSize = 0; DWORD dwTSSBase = 0; DWORD dwSize = 0; X86_SEGMENT_DESCRIPTOR *pSegDesc; if(dwSelector == 0) dwSelector = SyserGetTSSSelector(); if(dwSelector & 4) dwGDTBase = GetLDTBase(&dwGDTSize); else dwGDTBase = SyserGetGDTBase(&dwGDTSize); if(dwGDTBase && ((dwSelector & 0xfffffff8) < dwGDTSize)) { pSegDesc = (X86_SEGMENT_DESCRIPTOR *)(dwGDTBase+(dwSelector & 0xfffffff8)); if(pSegDesc->P && (!pSegDesc->DT) && (pSegDesc->TYPE == SYS_SEG_GATE_DECR_TYPE_16TSS_AVAIL || pSegDesc->TYPE == SYS_SEG_GATE_DECR_TYPE_16TSS_BUSY || pSegDesc->TYPE == SYS_SEG_GATE_DECR_TYPE_32TSS_AVAIL || pSegDesc->TYPE == SYS_SEG_GATE_DECR_TYPE_32TSS_BUSY)) { dwTSSBase = (pSegDesc->base_H1 << 24) | (pSegDesc->base_H0 << 16) | (pSegDesc->base_L1 << 8) | pSegDesc->base_L0; dwSize = (pSegDesc->limit_H << 16) | (pSegDesc->limit_L1 << 8) | (pSegDesc->limit_L0); } } if(pTSSSize) *pTSSSize = dwSize; return dwTSSBase; } // DWORD GetTSSSelector() // { // DWORD dwTSSSelector; // __asm // { // xor eax,eax // str ax // mov dwTSSSelector,eax // } // return dwTSSSelector; // } // DWORD GetLDTSelector() // { // DWORD dwLDTSelector; // __asm // { // xor eax,eax // sldt ax // mov dwLDTSelector,eax // } // return dwLDTSelector; // } // VADDR32 GetIDTBase(DWORD *dwIdtSize) // { // BYTE SIDTBffer[8]; // VADDR32 IDTBase; // __asm // { // push esi // lea esi,SIDTBffer // sidt [esi] // pop esi // } // IDTBase = *(VADDR32*)&SIDTBffer[2]; // if(dwIdtSize) // *dwIdtSize = (DWORD)*(WORD*)SIDTBffer; // return IDTBase; // } VADDR32 GetLDTBase(DWORD *dwLdtSize,DWORD dwLdtSelector) { VADDR32 LDTBase = 0; VADDR32 GDTBase,GDTSize; X86_SEGMENT_DESCRIPTOR *pSegDesc; DWORD dwSize = 0; if(dwLdtSize) *dwLdtSize = 0; // __asm{ // cmp dwLdtSelector,0 // mov eax,dwLdtSelector // jnz local_1 // sldt ax // mov dwLdtSelector,eax // local_1: // lsl eax,eax // jnz local_2 // mov dwSize,eax // local_2: // } SyserGetLDTSelectorBySelector(&dwLdtSelector,&dwSize); if(dwSize) { GDTBase = SyserGetGDTBase(&GDTSize); if(dwLdtSelector <= GDTSize) { pSegDesc = (X86_SEGMENT_DESCRIPTOR *)(GDTBase + (dwLdtSelector & 0xfff8)); if((!pSegDesc->DT) && pSegDesc->TYPE == SYS_SEG_GATE_DECR_TYPE_LDT) { LDTBase = (pSegDesc->base_H1 << 24) | (pSegDesc->base_H0 << 16) | (pSegDesc->base_L1 << 8) | (pSegDesc->base_L0); if(dwLdtSize) *dwLdtSize = dwSize; } } } return LDTBase; } // VADDR32 GetGDTBase(DWORD *dwGdtSize) // { // VADDR32 GDTBase; // DWORD dwSize; // __asm // { // sub esp,6 // sgdt [esp] // movzx eax,word ptr[esp] // mov dwSize,eax // lea esp,[esp+2] // pop eax // mov GDTBase,eax // } // if(dwGdtSize) // *dwGdtSize = dwSize; // return GDTBase; // } // SELECTOR GetCurCSeg() // { // SELECTOR CSeg; // __asm // { // xor eax,eax // mov ax,cs // mov CSeg,ax // } // return CSeg; // } // SELECTOR GetCurDSeg() // { // SELECTOR DSeg; // __asm // { // mov ax,ds // mov DSeg,ax // } // return DSeg; // } // // REG32 GetCR0Reg() // { // REG32 uReg; // __asm // { // mov eax,cr0 // mov uReg,eax // } // return uReg; // } // void SetCR0Reg(IN REG32 uReg) // { // __asm // { // Push EAX // mov eax,uReg // mov cr0,eax // POP EAX // } // } // REG32 GetCR3Reg() // { // REG32 uReg; // __asm // { // mov eax,cr3 // mov uReg,eax // } // return uReg; // } // // void SetCR3Reg(IN REG32 uReg) // { // __asm // { // Push EAX // mov eax,uReg // mov cr3,eax // POP EAX // } // } // void ClrCR0WP() // { // if(CR0Backup&0x80000000) // { // __asm // { // push eax // mov eax,cr0 // and eax,0xFFFEFFFF // mov cr0,eax // pop eax // } // return; // } // // __asm // { // Push EAX // mov eax,cr0 // mov CR0Backup,eax // and eax,0xFFFEFFFF // mov cr0,eax // POP EAX // } // } // void SetCR0WP() // { // __asm // { // Push EAX // mov eax,cr0 // mov CR0Backup,eax // or eax,0x10000 // mov cr0,eax // POP EAX // } // } // void RestoreCR0() // { // if(CR0Backup&0x80000000) // { // _asm // { // Push EAX // mov eax,CR0Backup // mov cr0,eax // POP EAX // } // CR0Backup=0; // } // } // DWORD ClearCR0WP() // { // DWORD OldCR0; // __asm // { // mov eax,cr0 // push eax // and eax,0xFFFEFFFF // mov cr0,eax // pop eax // mov OldCR0,eax // } // return OldCR0; // } // void RestoreCR0WP(DWORD dwCR0) // { // __asm // { // push eax // mov eax,dwCR0 // mov cr0,eax // pop eax // } // } // REG32 GetDRX(IN UINT ID) // { // REG32 DRReg=0; // switch(ID) // { // case 0: // __asm mov eax,dr0 // break; // case 1: // __asm mov eax,dr1 // break; // case 2: // __asm mov eax,dr2 // break; // case 3: // __asm mov eax,dr3 // break; // case 6: // __asm mov eax,dr6 // break; // case 7: // __asm mov eax,dr7 // break; // } // __asm mov DRReg,eax // return DRReg; // } // void SetDRX(IN UINT ID,IN REG32 Reg1) // { // __asm{ // push eax // push ecx // mov eax,Reg1 // mov ecx,ID // cmp ecx,6 // jnz local_001 // mov dr6,eax // jmp local_quit // local_001: // cmp ecx,7 // jnz local_002 // mov dr7,eax // jmp local_quit // local_002: // cmp ecx,0 // jnz local_003 // mov dr0,eax // jmp local_quit // local_003: // cmp ecx,1 // jnz local_004 // mov dr1,eax // jmp local_quit // local_004: // cmp ecx,2 // jnz local_005 // mov dr2,eax // jmp local_quit // local_005: // cmp ecx,3 // jnz local_quit // mov dr3,eax // local_quit: // pop ecx // pop eax // } // } bool MapToPAddr(IN ULPOS Address,OUT ULONGLONG*pResult) { DWORD PV,HighDD,dwTmp; DWORD*PDE=(DWORD*)0xC0300000; DWORD*PTE=(DWORD*)0xC0000000; CR4REGISTER stCR4; CPUID_1_EDX_FEATURE stCPUID_1_EDX; stCPUID_1_EDX = *(CPUID_1_EDX_FEATURE*)&gpCPUIDInfo[1].dwEDX; (DWORD&)stCR4 = GetCR4Register(); if(stCR4.PAE) { PDE = (DWORD*)(0xC0600000+((Address >> 0x12) & 0x3ff8)); if(ReadDword(PDE,&dwTmp)==false) return false; if((PDE[0] & 1)== 0) return false; if(PDE[0] & 0x80)//2Mҳ { if(pResult) *pResult = MAKE_QDWORD(PDE[1]&0xF,(PDE[0] & 0xffe00000) | (Address & 0x1fffff)); return true; } else { PTE=(DWORD*)(0xC0000000+((Address >> 9) & 0x7ffff8)); if(ReadDword(PTE,&dwTmp)==false) return false; if((PTE[0]&1)==0) return false; if(pResult) *pResult=MAKE_QDWORD(PTE[1]&0xF,(PTE[0] & 0xfffff000) + (Address & 0xfff)); return true; } } else { if(ReadDword(&PDE[Address>>22],&dwTmp)==false) return false; PV=PDE[Address>>22]; if(PV&0x80)//жǷΪ 4M ҳ档 { if(stCR4.PSE && stCPUID_1_EDX.PSE)//ж CPU Ƿ֧ 4M ҳ { if(!stCPUID_1_EDX.PSE_36) HighDD=0; else HighDD=(PV>>13)&0xf; if(pResult) *pResult = MAKE_QDWORD(HighDD,(PV&0xFFC00000) | (Address&0x3FFFFF)); return true; } return false; } if(ReadDword(&PTE[Address>>12],&dwTmp)==false) return false; PV=PTE[Address>>12]; if((PV&1)==0) return false; if(pResult) *pResult = (PV&0xFFFFF000) | (Address&0xFFF); return true; } } //ȡַӦַС ULSIZE GetVirtualPhysSize(IN ULPOS Address,IN ULSIZE MaxSize) { DWORD PV; DWORD dwTmp; ULONGLONG PhysAddress,PrevPhysAddress; ULSIZE Size,PrevPageSize,PageSize; DWORD*PDE=(DWORD*)0xC0300000; DWORD*PTE=(DWORD*)0xC0000000; Address&=0xFFFFF000; CR4REGISTER stCR4; CPUID_1_EDX_FEATURE stCPUID_1_EDX; stCPUID_1_EDX = *(CPUID_1_EDX_FEATURE*)&gpCPUIDInfo[1].dwEDX; dwTmp = GetCR4Register(); stCR4 = *(CR4REGISTER*)&dwTmp; Size = 0; if(stCR4.PAE) { while(Address) { PDE = (DWORD*)(0xC0600000+((Address >> 0x12) & 0x3ff8)); if(ReadDword(PDE,&dwTmp)==false) return Size; if((PDE[0] & 1)== 0) return Size; if(PDE[0] & 0x80) { PageSize=0x200000; PhysAddress =MAKE_QDWORD(PDE[1],(PDE[0] & 0xffe00000) | (Address & 0x1fffff) ); if(Size && PhysAddress!=PrevPhysAddress+PrevPageSize) return Size; PrevPhysAddress = PhysAddress; PrevPageSize = PageSize; } else { PTE=(DWORD*)(0xC0000000+((Address >> 9) & 0x7ffff8)); if(ReadDword(PTE,&dwTmp)==false) return Size; if((PTE[0]&1)==0) return Size; PageSize=0x1000; PhysAddress =MAKE_QDWORD(PTE[1],(PTE[0] & 0xfffff000) + (Address & 0xfff)); if(Size && PhysAddress!=PrevPhysAddress+PrevPageSize) return Size; PrevPhysAddress = PhysAddress; PrevPageSize = PageSize; } Address+=PageSize; Size+=PageSize; if(Size >= MaxSize) return Size; } } else { while(Address) { if(ReadDword(&PDE[Address>>22],&dwTmp)==false) return Size; PV=PDE[Address>>22]; if(PV&0x80)//жǷΪ 4M ҳ档 { if(stCR4.PSE && stCPUID_1_EDX.PSE)//ж CPU Ƿ֧ 4M ҳ { PageSize=0x400000; PhysAddress =MAKE_QDWORD(stCPUID_1_EDX.PSE_36? ((PV>>13)&0xf) : 0 ,(PV&0xFFC00000) | (Address&0x3FFFFF)); if(Size && PhysAddress!=PrevPhysAddress+PrevPageSize) return Size; PrevPhysAddress = PhysAddress; PrevPageSize = PageSize; } else return Size; } else { if(ReadDword(&PTE[Address>>12],&dwTmp)==false) return Size; PV=PTE[Address>>12]; if((PV&1)==0) return Size; PageSize=0x1000; PhysAddress = (PV&0xFFFFF000) | (Address&0xFFF); if(Size && PhysAddress!=PrevPhysAddress+PrevPageSize) return Size; PrevPhysAddress = PhysAddress; PrevPageSize = PageSize; } Address+=PageSize; Size+=PageSize; if(Size >= MaxSize) return Size; } } return Size; } bool MapPhysical0() { DWORD dwTmp,dwTmp1; CR4REGISTER stCR4; PHYSICAL_ADDRESS PhysAddress; dwTmp = GetCR4Register(); stCR4 = *(CR4REGISTER*)&dwTmp; PhysAddress.QuadPart=0; dwPhysical_0_LinesAddress =(DWORD) MmMapIoSpace(PhysAddress,0x100000,MmNonCached); if(dwPhysical_0_LinesAddress==NULL) return false; if(dwPhysical_0_LinesAddress) { if(stCR4.PAE) { OwnerPageDirItemAddress = 0xc0600000 +((dwPhysical_0_LinesAddress >> 21)<<3); OwnerPageTabItemAddress = 0xc0000000 +((dwPhysical_0_LinesAddress >> 21) << 12)+(((dwPhysical_0_LinesAddress >> 12) & 0x1ff)<<3); } else { OwnerPageDirItemAddress = 0xc0300000 + ((dwPhysical_0_LinesAddress >> 22)<<2); OwnerPageTabItemAddress = 0xc0000000 + ((dwPhysical_0_LinesAddress >> 22) << 12)+(((dwPhysical_0_LinesAddress >> 12) & 0x3ff)<<2); } } return true; } void UnmapPhysical0() { if(dwPhysical_0_LinesAddress!=0 && dwPhysical_0_LinesAddress!=0xffffffff) { MmUnmapIoSpace((PVOID)dwPhysical_0_LinesAddress,0x100000); dwPhysical_0_LinesAddress=0xffffffff; OwnerPageDirItemAddress = 0; OwnerPageTabItemAddress = 0; } } int MapToVAddr(IN ULPOS Address,OUT ULPOS*pResult,IN int MaxCount,IN ULPOS HighAddress,ULLPOS AcceptedLowestAddress) { int Count=0; ULPOS VAddress; DWORD Index; DWORD*PDE=(DWORD*)0xC0300000; DWORD*PTE=(DWORD*)0xC0000000; DWORD dwTmp,dwTmp1; CR4REGISTER stCR4; CPUID_1_EDX_FEATURE stCPUID_1_EDX; stCPUID_1_EDX = *(CPUID_1_EDX_FEATURE*)&gpCPUIDInfo[1].dwEDX; dwTmp = GetCR4Register(); stCR4 = *(CR4REGISTER*)&dwTmp; if(stCR4.PAE) { PDE=(DWORD*)0xC0600000; for(DWORD nDir = 0; nDir < 512 * 4;nDir++) { if(ReadDword(&PDE[nDir*2],&dwTmp)==false) continue; if(ReadDword(&PDE[nDir*2+1],&dwTmp1)==false) continue; if((PDE[nDir*2]&1)==0) continue; if(PDE[nDir*2]&0x80) { if(HighAddress==PDE[nDir*2+1] && (Address & 0xFFE00000)==(PDE[nDir*2]&0xFFE00000)) { VAddress = ((nDir / 512)<<30) | ((nDir % 512) <<21) | (Address &0x1FFFFF); if((ULLPOS)VAddress>=AcceptedLowestAddress) { if(pResult) { pResult[Count] = VAddress; Count++; } if(Count>=MaxCount) return Count; } } } else { PTE = (DWORD*)(nDir * 0x1000 + 0xC0000000); for(Index = 0; Index<512;Index++) { if(ReadDword(&PTE[Index*2],&dwTmp)==false) continue; if(ReadDword(&PTE[Index*2+1],&dwTmp1)==false) continue; if((PTE[Index*2]&1) && (PTE[Index*2] & 0xFFFFF000) == (Address & 0xFFFFF000) && PTE[Index*2+1] == HighAddress) { VAddress = ((nDir / 512) << 30)|((nDir % 512) <<21)|(Index << 12)|(Address & 0xFFF); if((ULLPOS)VAddress>=AcceptedLowestAddress) { if(pResult) { pResult[Count] = VAddress; Count++; } if(Count>=MaxCount) return Count; } } } } } } else { for(DWORD nDir=0;nDir<0x400;nDir++) { if(ReadDword(&PDE[nDir],&dwTmp)==false) continue; if((PDE[nDir]&1) == 0) continue; if((PDE[nDir]&0x80))// 4M ҳ { if((PDE[nDir]&0xFFC00000)==(Address&0xFFC00000)) { VAddress = ((nDir<<22)|(Address&0x3FFFFF)); if((ULLPOS)VAddress>=AcceptedLowestAddress) { if(pResult) { pResult[Count] = VAddress; Count++; } if(Count>=MaxCount) return Count; } } } else { Index = nDir*0x400; for(DWORD nPage=0;nPage<0x400;nPage++,Index++) { if(ReadDword(&PTE[Index],&dwTmp1)==false) continue; if((PTE[Index]&1) && (PTE[Index]&0xFFFFF000)==(Address&0xFFFFF000)) { VAddress = ((nDir<<22)|(nPage<<12))|(Address&0xFFF); if((ULLPOS)VAddress>=AcceptedLowestAddress) { if(pResult) { pResult[Count] = VAddress; Count++; } if(Count>=MaxCount) return Count; } } } } } } return Count; } bool IsValidPage(IN VADDR32 Address,IN int Size) { if(Size<=0) return false; Address -= Address%MP_SIZE; Size += (int)(Address%MP_SIZE); while(Size>0) { if(GetPTE(Address)==NULL) return false; Size-=MP_SIZE; Address+=MP_SIZE; } return true; } bool IsWritablePage(IN VADDR32 Address) { DWORD*PV; PV=GetPTE(Address); if((*PV&2)==0) return false; return true; } DWORD*GetPTE(VADDR32 Address,DWORD* PageSize,DWORD* PTESize,bool Present) { DWORD *PDE,*PTE; CR4REGISTER stCR4; DWORD dwTmp; dwTmp=GetCR4Register(); stCR4 = *(CR4REGISTER*)&dwTmp; if(stCR4.PAE) { if(PTESize) *PTESize=8; PDE=(DWORD*)0xC0600000; PDE = (DWORD*)(0xC0600000+((Address >> 0x12) & 0x3ff8)); if(ReadDword(PDE,&dwTmp)==false) return NULL; if(Present) { if((PDE[0] & 1)== 0) return NULL; } if(PDE[0] & 0x80) { if(PageSize) *PageSize=0x200000; return &PDE[0]; } PTE=(DWORD*)(0xC0000000+((Address >> 9) & 0x7ffff8)); if(ReadDword(PTE,&dwTmp)==false) return NULL; if(Present) { if((PTE[0]&1)==0) return NULL; } if(PageSize) *PageSize=0x1000; return &PTE[0]; } else { DWORD*PV; if(PTESize) *PTESize=4; PV=&PDEBase[Address>>22]; if(ReadDword(PV,&dwTmp)==false) return NULL; if(Present) { if((*PV&1)==0) return NULL; } if(*PV&0x80) { if(PageSize) *PageSize=0x400000; return PV; } PV=&PTEBase[Address>>12]; if(ReadDword(PV,&dwTmp)==false) return NULL; if(Present) { if((*PV&1)==0) return NULL; } if(PageSize) *PageSize=0x1000; return PV; } } bool MakePageWritable(IN VADDR32 Address) { DWORD*PV; PV=GetPTE(Address); if(PV==NULL) return false; *PV|=2; return true; } DWORD GetCurrentCPUInterruptProcAddress(IN DWORD Index) { PX86_GATE_DECR pDecr; VADDR32 IDTSize; pDecr = (PX86_GATE_DECR)SyserGetIDTBase(&IDTSize); return MAKE_DWORD(pDecr[Index].OffsetHigh,pDecr[Index].OffsetLow); } bool InstallInterruptHandle(IN BYTE Num,IN VADDR32 InterruptHandler,IN BYTE DescriptorType,IN BYTE DescriptorPrivilegeLevel,IN WORD Selector) { VADDR32 IDTBase; DWORD i; KIRQL OldIRQL = KeGetCurrentIrql(); KfRaiseIrql(HIGH_LEVEL); ULONG_PTR Flags; SyserSaveFlags(&Flags); SyserCloseInterrupt(); if(gCPUNumbers>1) { for(i = 0; i < gCPUNumbers;i++) { IDTBase=(VADDR32)gPCRArray[i]->IDT; if(SetInterruptHandlerFunction(Num,IDTBase,InterruptHandler,DescriptorType,DescriptorPrivilegeLevel,Selector)==NULL) goto Error_Exit; } } else { IDTBase = SyserGetIDTBase(); if(SetInterruptHandlerFunction(Num,IDTBase,InterruptHandler,DescriptorType,DescriptorPrivilegeLevel,Selector)==NULL) goto Error_Exit; } SyserRestoreFlags(Flags); KfLowerIrql(OldIRQL); return true; Error_Exit: SyserRestoreFlags(Flags); KfLowerIrql(OldIRQL); return false; } PINTERRUPT_STUB SetInterruptHandlerFunction(IN BYTE Num,IN DWORD IDTBase,IN VADDR32 InterruptHandler,IN BYTE DescriptorType,IN BYTE DescriptorPrivilegeLevel,IN WORD Selector) { PINTERRUPT_STUB pIntStub; X86_GATE_DECR NewGetDecr; X86_GATE_DECR*pGateDecr; DWORD dwCR0; pIntStub = GetInterruptStub(); if(pIntStub==NULL) return NULL; pGateDecr = (X86_GATE_DECR*)(IDTBase+Num*sizeof(X86_GATE_DECR)); pIntStub->GateDecr = *pGateDecr; pIntStub->OldInterruptAddress=MAKE_DWORD(pGateDecr->OffsetHigh,pGateDecr->OffsetLow); pIntStub->IDTBaseAddress=IDTBase; pIntStub->InterruptVector=Num; pIntStub->OwnerInterruptAddress=InterruptHandler; NewGetDecr=*pGateDecr; NewGetDecr.OffsetHigh = HIGH_WORD(pIntStub); NewGetDecr.OffsetLow = LOW_WORD(pIntStub); NewGetDecr.P=1; NewGetDecr.DT=0; NewGetDecr.DCount=0; NewGetDecr.Reserved=0; if(DescriptorType<0x10) { NewGetDecr.Type=DescriptorType; } if(DescriptorPrivilegeLevel<0x4) { NewGetDecr.DPL=DescriptorPrivilegeLevel; } if(Selector) { NewGetDecr.Selector=Selector; } dwCR0 = SyserClearCR0WP(); *pGateDecr=NewGetDecr; SyserRestoreCR0WP(dwCR0); return pIntStub; } DWORD UninstallInterruptHandle(IN BYTE Num) { DWORD Count=0; X86_GATE_DECR*pGateDecr; for(int i = 0; i < sizeof(gInterruptStub)/sizeof(gInterruptStub[0]);i++) { if(gInterruptStub[i].InterruptVector==Num&&gInterruptStub[i].IDTBaseAddress) { Count++; pGateDecr = (X86_GATE_DECR*)(gInterruptStub[i].IDTBaseAddress+Num*sizeof(X86_GATE_DECR)); *pGateDecr=gInterruptStub[i].GateDecr; ReleaseInterruptStub(&gInterruptStub[i]); } } return Count; } // BYTE ReadPortByte(DWORD wPort) // { // BYTE bRet; // __asm{ // push edx // push eax // mov edx,wPort // in al,dx // mov bRet,al // pop eax // pop edx // } // return bRet; // } // WORD ReadPortWord(DWORD wPort) // { // WORD wRet; // __asm{ // push edx // push eax // mov edx,wPort // in ax,dx // mov wRet,ax // pop eax // pop edx // } // return wRet; // } // DWORD ReadPortDword(DWORD wPort) // { // DWORD dwRet; // __asm{ // push edx // push eax // mov edx,wPort // in eax,dx // mov dwRet,eax // pop eax // pop edx // } // return dwRet; // } // void WritePortDword(DWORD dwPort, DWORD dwValue) // { // __asm{ // push eax // push edx // mov edx,dwPort // mov eax,dwValue // out dx,eax // pop edx // pop eax // } // } // void WritePortWord(DWORD dwPort, WORD wValue) // { // __asm{ // push eax // push edx // mov edx,dwPort // mov ax,wValue // out dx,ax // pop edx // pop eax // } // } // void WritePortByte(DWORD dwPort, BYTE byteValue) // { // __asm{ // push eax // push edx // mov edx,dwPort // mov al,byteValue // out dx,al // pop edx // pop eax // } // } void CopyGeneralRegister(void) { memcpy(GeneralReg,Reg.GeneReg,sizeof(GeneralReg)); } // bool IsSupportRDMSRInstruction() // { // static bool bInitIsSupportRDMSRInstruction = false; // static bool bHaveReadWriteMSRInstruction = false; // DWORD bRet; // if(bInitIsSupportRDMSRInstruction==false) // { // if(SyserIsSupportCPUIDInstruction() == false) // { // bHaveReadWriteMSRInstruction = false; // return false; // } // __asm{ // pushad // mov eax,1 // cpuid // test edx,0x20 //жǷ֧ RDMSR WDMSR ָ // mov bHaveReadWriteMSRInstruction,0 // jz local_1 // mov bHaveReadWriteMSRInstruction,1 // local_1: // popad // } // bInitIsSupportRDMSRInstruction = true; // } // return bHaveReadWriteMSRInstruction; // } // void* MemoryCopy(void *dst, const void*src,int count) // { // void * ret; // ret = dst; // __asm{ // pushad // pushfd // cld // mov esi,src // mov edi,dst // mov ecx,count // mov eax,esi // and eax,3 // jz local_1 // local_2: // jecxz local_quit // movsb // dec ecx // dec eax // jnz local_2 // local_1: // jecxz local_quit // mov eax,ecx // shr ecx,2 // rep movsd // and eax,3 // mov ecx,eax // rep movsb // local_quit: // popfd // popad // } // return ret; // } bool ReadPhysicalAddress(DWORD dwPhysicalAddress,DWORD &dwValue) { VADDR32 dwLineAddress; if(MapToVAddr(dwPhysicalAddress,&dwLineAddress)) { dwValue=*(DWORD *)dwLineAddress; return true; } else { return false; } } DWORD SafeReadSegmentDword(DWORD Offset,WORD SegmentSelector) { return 0; } DWORD GetSegmentBaseAddress(WORD SegmentSelector,DWORD *SegmentLimit) { VADDR32 TableBase; DWORD TableSize; DWORD BaseAddress; X86_SEGMENT_DESCRIPTOR* SegDesc; DWORD Limit; if(SegmentSelector&0xfff8) { if(SegmentSelector&0x4) TableBase = GetLDTBase(&TableSize); else TableBase = SyserGetGDTBase(&TableSize); if((SegmentSelector&0xfff8)>(WORD)TableSize) goto errorout; SegDesc=(X86_SEGMENT_DESCRIPTOR*)TableBase; BaseAddress = SegDesc[(SegmentSelector>>3)].base_L0+ (SegDesc[(SegmentSelector>>3)].base_L1<<8)+(SegDesc[(SegmentSelector>>3)].base_H0<<16)+(SegDesc[(SegmentSelector>>3)].base_H1<<24); if(SegmentLimit) { // __asm{ // push eax // movzx eax,SegmentSelector // lsl eax,eax // jz local_001 // xor eax,eax // local_001: // mov Limit,eax // pop eax // } Limit = SyserGetSegmentLimit(SegmentSelector); *SegmentLimit=Limit; } return BaseAddress; }else { errorout: if(SegmentLimit) *SegmentLimit=0; return 0xffffffff; } } DWORD GetX86CR4(DWORD BitMask) { DWORD dwRet; // __asm{ // push eax // _emit(0x0f) // _emit(0x20) // _emit(0xe0) // mov dwRet,eax // pop eax // } dwRet = SyserGetCR4Reg(); if(BitMask==0xffffffff) return dwRet; BitMask %= 32; if(BitMask) dwRet>>=BitMask; return dwRet&1; } DWORD GetCR4Register() { // DWORD dwRet; // __asm{ // push eax // _emit(0x0f) // _emit(0x20) // _emit(0xe0) // mov dwRet,eax // pop eax // } // return dwRet; return SyserGetCR4Reg(); } DWORD SetCR4Register(DWORD NewValue) { DWORD OldValue; OldValue = GetCR4Register(); // __asm{ // push eax // mov eax,NewValue // _emit(0x0f) // _emit(0x22) // _emit(0xe0) // pop eax // } SyserSetCR4Reg(NewValue); return OldValue; } DWORD GetCR0Register() { // DWORD dwRet; // __asm{ // push eax // mov eax,cr0 // mov dwRet,eax // pop eax // } // return dwRet; return SyserGetCR0Reg(); } bool X86_FXSAVE(BYTE *RegisterBuffer) { DWORD dwTmp = (DWORD)RegisterBuffer; if(dwTmp&0xf) return false; // __asm // { // push eax // mov eax, RegisterBuffer // fxsave dword ptr [eax] // pop eax // } SyserX86FxSave(RegisterBuffer); return true; } // bool GetFpuErrorState() // { // DWORD dwError,dwMxcsr; // __asm // { // pushfd // push eax // push ebx // clts // stmxcsr dwMxcsr // mov eax,dwMxcsr // mov ebx,eax // shr ebx,7 // and eax,0x3f // and ebx,0x3f // and bl,al // not bl // test bl,al // mov dwError,0 // jz local_1 // mov dwError,1 // local_1: // pop ebx // pop eax // popfd // } // return (dwError == 1); // } bool GetSegDescr(WORD Sel,X86_SEGMENT_DESCRIPTOR*pSegDescr) { SELECTOR_DECR*pSel; DWORD DTBase,DTSize; pSel = (SELECTOR_DECR*)&Sel; if(pSel->TI) DTBase = GetLDTBase(&DTSize); else DTBase = SyserGetGDTBase(&DTSize); if(DTBase==0) return false; if(pSel->Index>=DTSize/sizeof(X86_SEGMENT_DESCRIPTOR)) return false; if(pSegDescr) *pSegDescr = ((X86_SEGMENT_DESCRIPTOR*)DTBase)[pSel->Index]; return true; } // void InitSystemSegmentRegister() // { // __asm // { // push eax // xor eax,eax // mov ax,fs // mov gSystemFSRegisterSelector,eax // mov ax,ss // mov gSystemSSRegisterSelector,eax // mov ax,cs // mov gSystemCSRegisterSelector,eax // mov ax,ds // mov gSystemDSRegisterSelector,eax // pop eax // } //} ================================================ FILE: Project/Syser/Source/X86Optr.h ================================================ #ifndef X86_OPTR_H_ #define X86_OPTR_H_ #include "X86Define.h" #include "LastBranch.h" #ifdef CODE_OS_NT_DRV #include "MultiCPU.h" #endif #include "InterruptPatch.h" #ifdef __cplusplus extern "C" { #endif #define IsSupportWRMSRInstruction SyserIsSupportRDMSRInstruction extern DWORD ExceptionInterruptNum; extern DWORD ExceptionInterruptErrorCode; extern X86_REG_CONTEXT* ExceptionReg; extern X86_REG_CONTEXT Reg; extern X86_REG_CONTEXT PrevReg; extern X86_REG_CONTEXT ReadOnlyActiveReg; extern RETURN_CONTEXT ReturnContext; extern X86_REG_CONTEXT* gpMCPUReg; extern SAVELOCALAPIC* gpMCPULocalApic; typedef struct _X86SaveRegs_ { DWORD Edi; DWORD Esi; DWORD Ebp; DWORD Esp; DWORD Ebx; DWORD Edx; DWORD Ecx; DWORD Eax; } X86SaveRegs,*PX86SaveRegs; VOID SyserCloseInterrupt(VOID); VOID SyserOpenInterrupt(VOID); VOID SyserSaveFlags(PULONG_PTR _SaveFlags); VOID SyserRestoreFlags(ULONG_PTR _Flags); VOID SyserSaveFlagsLow16(PWORD _SaveFlags); VOID SyserRestoreFlagsLow16(WORD _Flags); VOID SyserPushad(PX86SaveRegs Regs); VOID SyserPopad(PX86SaveRegs Regs); VOID SyserCld(VOID); VOID SyserCltr(VOID); DWORD SyserLar(DWORD Selector); VOID SyserCli(VOID); VOID SyserSti(VOID); VOID SyserHlt(VOID); VOID SyserFlushInsCache(BYTE* AddPte); VOID SyserFlushProcessInsCache(VOID); ULONG64 SyserGetRdTsc(VOID); VOID SyserFnsave(PUCHAR pState); VOID SyserFrstor(PUCHAR pState); VOID SyserFnstsw(PUSHORT pState); VOID SyserFnstcw(PUSHORT pControl); VOID SyserClearFlag(WORD vEs,PDWORD Value,DWORD ClearFlag); DWORD SyserGetCPUIDMaxIndex(); DWORD SyserGetTSSSelector(); DWORD SyserGetLDTSelector(); DWORD GetTSSBase(DWORD *pTSSSize = NULL,DWORD dwSelector = 0); VADDR32 SyserGetIDTBase(DWORD* dwIDTSize=NULL); VADDR32 SyserGetGDTBase(DWORD* dwGDTSize=NULL); VOID SyserGetLDTSelectorBySelector(DWORD* dwLdtSelector,DWORD* dwSize); VADDR32 GetLDTBase(DWORD* dwLdtSize = NULL, DWORD dwLdtSelector = 0); SELECTOR SyserGetCurCSeg(); SELECTOR SyserGetCurDSeg(); SELECTOR SyserGetCurFSeg(); REG32 SyserGetCR0Reg(); void SyserSetCR0Reg(IN REG32 uReg); REG32 SyserGetCR3Reg(); VOID SyserSetCR3Reg(IN REG32 Reg); REG32 SyserGetCR4Reg(); VOID SyserSetCR4Reg(IN REG32 uReg); VOID SyserSetCR0WP(void); //ҳλ VOID SyserClrCR0WP(void); //ҳλ VOID SyserRestoreCR0(void); ULSIZE GetVirtualPhysSize(IN ULPOS Address,IN ULSIZE MaxSize); bool MapToPAddr(IN ULPOS Address,OUT ULONGLONG*pResult); int MapToVAddr(IN ULPOS Address,OUT ULPOS*pResult,IN int MaxCount = 1,IN ULPOS HighAddress = 0,ULLPOS AcceptedLowestAddress = 0); DWORD* GetPTE(VADDR32 Address,DWORD* PageSize=NULL,DWORD* PTESize=NULL,bool Present=1); bool IsValidPage(IN VADDR32 Address,IN int Size = 1); bool IsWritablePage(IN VADDR32 Address); bool IsAddressValid(void*p); bool MakePageWritable(IN VADDR32 Address); REG32 SyserGetDRX(IN UINT ID); void SyserSetDRX(IN UINT ID,IN REG32 Reg); BYTE SyserReadPortByte(DWORD wPort); WORD SyserReadPortWord(DWORD wPort); DWORD SyserReadPortDword(DWORD wPort); void SyserWritePortDword(DWORD dwPort, DWORD dwValue); void SyserWritePortWord(DWORD dwPort, WORD wValue); void SyserWritePortByte(DWORD dwPort, BYTE byteValue); void CopyGeneralRegister(void); bool SyserIsSupportCPUIDInstruction(void); bool SyserIsSupportRDMSRInstruction(void); void* SyserMemoryCopy(void *dst, const void*src,int count); bool GetSegDescr(WORD Sel,X86_SEGMENT_DESCRIPTOR*pSegDescr); bool MapPhysical0(); void UnmapPhysical0(); bool GetLastBranchAddressPentiumM(DWORD Index,DWORD* FromAddr,DWORD* ToAddr); PINTERRUPT_STUB SetInterruptHandlerFunction(IN BYTE Num,IN DWORD IDTBase,IN VADDR32 InterruptHandler,BYTE DescriptorType=0x10,BYTE DescriptorPrivilegeLevel=0x4,WORD Selector=0); bool InstallInterruptHandle(IN BYTE Num,IN VADDR32 InterruptHandler,BYTE DescriptorType=0x10,BYTE DescriptorPrivilegeLevel=0x4,WORD Selector=0); DWORD UninstallInterruptHandle(IN BYTE Num); ////////////////////////////////////////////////////////////////////////////////////// //CPUID // struct CPUID_INFO { DWORD dwEAX; DWORD dwEBX; DWORD dwECX; DWORD dwEDX; }; extern CPUID_INFO* gpCPUIDInfo; extern DWORD gMaxCPUIDIndex; extern DWORD dwLastBranchFromEIP; extern DWORD dwLastBranchToEIP; extern DWORD dwLastIntFromEIP; extern DWORD dwLastIntToEIP; extern bool gbHaveLastBranchMointer; VOID SyserGetCPUID(CPUID_INFO *CPUInfo,DWORD dwIndex); CPUID_INFO* InitCPUIDInfo(); void ReleaseCPUIDInfo(CPUID_INFO*pCPUIDInfo=NULL); // //CPUID ////////////////////////////////////////////////////////////////////////////////////// DWORD GetCurrentCPUInterruptProcAddress(IN DWORD Index); bool SyserReadMSR(DWORD dwIndex,DWORD *dwHigh,DWORD *dwLow); bool SyserWriteMSR(DWORD dwIndex,DWORD dwHigh,DWORD dwLow); bool SetBranchStepRun(); bool ClearBranchStepRun(); bool ReadPhysicalAddress(DWORD dwPhyscialAddress,DWORD &dwValue); DWORD SyserGetSegmentLimit(WORD SegmentSelector); DWORD GetSegmentBaseAddress(WORD SegmentSelector,DWORD *SegmentLimit=NULL); DWORD GetX86CR4(DWORD BitMask=0xffffffff); DWORD GetCR0Register(); DWORD GetCR4Register(); DWORD SetCR4Register(DWORD NewValue); VOID SyserX86FxSave(BYTE *RegisterBuffer); bool X86_FXSAVE(BYTE *RegisterBuffer); bool SyserGetFpuErrorState(); DWORD GetNoUseDebugRegister(); bool ReadTSC(OUT ULONGLONG *llValue); ULONGLONG SyserGetTSC(); BYTE GetCurrentIRQLLevel(); DWORD GetCPU_ID(); DWORD SyserClearCR0WP(); VOID SyserRestoreCR0WP(DWORD dwCR0); __int64 __stdcall SyserPrivateReadMSR(DWORD dwIndex); __int64 __stdcall SyserPrivateReadMSRError(VOID); VOID __stdcall SyserPrivateWriteMSR(DWORD dwIndex,DWORD dwValueLow,DWORD dwValueHigh); VOID __stdcall SyserPrivateWriteMSRError(VOID); __int64 __stdcall SyserPrivateGetTSC(); __int64 __stdcall SyserPrivateGetTSCError(); VOID SyserInitSystemSegmentRegister(VOID); #ifdef __cplusplus }; // extern "C" #endif #endif ================================================ FILE: Project/Syser/Source/X86RegHelpTabWnd.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "X86RegHelpTabWnd.h" WISP_MSG_MAP_BEGIN(CX86RegHelpTabWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispTabWnd) CX86RegHelpTabWnd::CX86RegHelpTabWnd(void) { } CX86RegHelpTabWnd::~CX86RegHelpTabWnd(void) { } void CX86RegHelpTabWnd::Popup() { if(IsWindow()) { Show(); } else { Create(WISP_STR("Register Help Wnd"),CWispRect(0,0,560,400)); Center(); } } bool CX86RegHelpTabWnd::OnCreate(IN WISP_MSG *pMsg) { m_RegisterGroup[0].Create(WSTR("Control Register"),CWispRect(0,0,0,0),this,0,WISP_WS_NULL); m_RegisterGroup[0].SetRegisterGroup(CONTROL_REGISTER); InsertWnd(WSTR("Control"),&m_RegisterGroup[0]); m_RegisterGroup[1].Create(WSTR("Debug Register"),CWispRect(0,0,0,0),this,0,WISP_WS_NULL); m_RegisterGroup[1].SetRegisterGroup(DEBUG_REGISTER); InsertWnd(WSTR("Debug"),&m_RegisterGroup[1]); m_RegisterGroup[2].Create(WSTR("Segment Descriptor"),CWispRect(0,0,0,0),this,0,WISP_WS_NULL); m_RegisterGroup[2].SetRegisterGroup(SEGMENT_DESCRIPTOR_REGISTER); InsertWnd(WSTR("Segment Descriptor"),&m_RegisterGroup[2]); m_RegisterGroup[3].Create(WSTR("Flags Register"),CWispRect(0,0,0,0),this,0,WISP_WS_NULL); m_RegisterGroup[3].SetRegisterGroup(FLAGS_REGISTER); InsertWnd(WSTR("Flags Register"),&m_RegisterGroup[3]); m_RegisterGroup[4].Create(WSTR("Flags Register"),CWispRect(0,0,0,0),this,0,WISP_WS_NULL); m_RegisterGroup[4].SetRegisterGroup(PAGEDIRENTRY4M_REGISTER); InsertWnd(WSTR("Page Directory Entry (4M)"),&m_RegisterGroup[4]); m_RegisterGroup[5].Create(WSTR("Flags Register"),CWispRect(0,0,0,0),this,0,WISP_WS_NULL); m_RegisterGroup[5].SetRegisterGroup(PAGEDIRENTRY4K_REGISTER); InsertWnd(WSTR("Page Map (4K)"),&m_RegisterGroup[5]); return true; } ================================================ FILE: Project/Syser/Source/X86RegHelpTabWnd.h ================================================ #ifndef _X86REGHELPTABWND_H_ #define _X86REGHELPTABWND_H_ #include "RegHelpWnd.h" class CX86RegHelpTabWnd :public CWispTabWnd { public: CX86RegHelpTabWnd(void); ~CX86RegHelpTabWnd(void); void Popup(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnClose) CRegHelpWnd m_RegisterGroup[MAX_REGISTER_GROUP_INDEX]; }; #endif /* _X86REGHELPTABWND_H_ */ ================================================ FILE: Project/Syser/Source/buildchk_win7_x86.log ================================================ BUILD: Examining d:\201512~1\project\syser\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Building generated files in d:\201512~1\project\syser\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS0 NOLINK=1 PASS0ONLY=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>d:\201512~1\project\syser\source: TARGETPATH is ..\..\..\Bin 1> mc /h d:\201512~1\project\syser\source\objchk_win7_x86\i386 /r d:\201512~1\project\syser\source\objchk_win7_x86\i386 syserdrivermc.mc 1>MC: Compiling syserdrivermc.mc 1> if not exist d:\201512~1\project\syser\source\objchk_win7_x86\i386\syserdrivermc.h echo error : d:\201512~1\project\syser\source\objchk_win7_x86\i386\syserdrivermc.h not produced 1>Compiling d:\201512~1\project\syser\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>d:\201512~1\project\syser\source: TARGETPATH is ..\..\..\Bin 1>C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrcl /Ii386 /I. /I..\..\..\Addition\SyserDebugger /Id:\201512~1\project\syser\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /D_DLL=1 /DNDEBUG /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /D_SYSER_ /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x06010000 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.1\inc\api\warning.h /YlSyser /YcStdAfx.h /Fpd:\201512~1\project\syser\source\objchk_win7_x86\i386\StdAfx.pch /Fo"d:\201512~1\project\syser\source\objchk_win7_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1> ml /safeseh /c /coff /Cx /nologo /Ii386\ /I. /I..\..\..\Addition\SyserDebugger /Id:\201512~1\project\syser\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\crt /Zm /Zi /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /Fod:\201512~1\project\syser\source\objchk_win7_x86\i386\common-x86.obj ..\i386\common-x86.asm 1> Assembling: ..\i386\common-x86.asm 1> ml /safeseh /c /coff /Cx /nologo /Ii386\ /I. /I..\..\..\Addition\SyserDebugger /Id:\201512~1\project\syser\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\crt /Zm /Zi /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /Fod:\201512~1\project\syser\source\objchk_win7_x86\i386\interrupt-x86.obj ..\i386\interrupt-x86.asm 1> Assembling: ..\i386\interrupt-x86.asm 1> ml /safeseh /c /coff /Cx /nologo /Ii386\ /I. /I..\..\..\Addition\SyserDebugger /Id:\201512~1\project\syser\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\crt /Zm /Zi /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /Fod:\201512~1\project\syser\source\objchk_win7_x86\i386\compatibility-x86.obj ..\i386\compatibility-x86.asm 1> Assembling: ..\i386\compatibility-x86.asm 1> ml /safeseh /c /coff /Cx /nologo /Ii386\ /I. /I..\..\..\Addition\SyserDebugger /Id:\201512~1\project\syser\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\crt /Zm /Zi /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /Fod:\201512~1\project\syser\source\objchk_win7_x86\i386\function.obj ..\i386\function.asm 1> Assembling: ..\i386\function.asm 1> C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrcl @d:\201512~1\project\syser\source\objchk_win7_x86\i386\cl.rsp 1>OACR NOTE : Not starting monitor (oacrcl running in job that doesn't allow break-away) 1> C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrlink /lib /out:..\..\..\Bin\i386\Syser.lib @d:\201512~1\project\syser\source\objchk_win7_x86\i386\lib.rsp 1>Linking for d:\201512~1\project\syser\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS2 LINKONLY=1 NOPASS0=1 MAKEDLL=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>d:\201512~1\project\syser\source: TARGETPATH is ..\..\..\Bin 1> rc.exe -l 409 -DSXS_PROCESSOR_ARCHITECTURE="""x86""" -DSXS_TARGET="""Syser.sys""" -DSYSTEM_COMPATIBLE_ASSEMBLY_NAME="""Microsoft.Windows.SystemCompatible""" -DLSYSTEM_COMPATIBLE_ASSEMBLY_NAME=L"""Microsoft.Windows.SystemCompatible""" -DSXS_ASSEMBLY_VERSION="""""" /r /fo d:\201512~1\project\syser\source\objchk_win7_x86\i386\syserdriver.res /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /D_DLL=1 /DNDEBUG /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /D_SYSER_ /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x06010000 /I..\..\..\Addition\SyserDebugger /Id:\201512~1\project\syser\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\api /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\ddk /IC:\WinDDK\7600.16385.1\inc\crt .\syserdriver.rc 1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6908.0 1>Copyright (C) Microsoft Corporation. All rights reserved. 1> C:\WinDDK\7600.16385.1\Bin\x86\oacr\oacrlink /out:..\..\..\Bin\i386\Syser.sys /machine:ix86 @d:\201512~1\project\syser\source\objchk_win7_x86\i386\lnk.rsp ================================================ FILE: Project/Syser/Source/cmd_cpu.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "cmd_cpu.h" int cpu_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyser*pSyser) { typedef struct _CPU_REG_INDEX { char* name; bool Show; }CPU_REG_INDEX; int i; PSAVELOCALAPIC pLocalApic; DWORD dwCurrentCpuID; DWORD dwCPUIndex; PX86_REG_CONTEXT pReg; PDECSRIPTOR Decs; PCR4REGISTER pCR4; PCR3REGISTER pCR3; PCR0REGISTER pCR0; PCPU_EFLAGS pEfl; VADDR32 dwBase,dwSize,dwSelector; CPU_REG_INDEX RegIndex[]={{"cr0",false},{"cr3",false},{"cr4",false},{"efl",false}}; dwCurrentCpuID = GetCurrentCPULocalAPICID(); if(gCPUNumbers>1 && argc==1) { OUTPUT(WSTR("CPU PKPCR IDT Base GDT Base \n")); for(DWORD i = 0; i < gCPUNumbers;i++) { if(dwCurrentCpuID==i) OUTPUT(WSTR("%%d %08x %08x %08x\n"),i,gPCRArray[i],gPCRArray[i]->IDT,gPCRArray[i]->GDT); else OUTPUT(WSTR("%d %08x %08x %08x\n"),i,gPCRArray[i],gPCRArray[i]->IDT,gPCRArray[i]->GDT); } return 0; } for(i = 1; i < argc;i++) { for(int j = 0; j < sizeof(RegIndex)/sizeof(RegIndex[0]);j++) { if(TStrICmp(argv[i],RegIndex[j].name)==0) { RegIndex[j].Show=true; break; } } } if(gCPUNumbers==1) { OUTPUT(WSTR("Generate Register\n")); OUTPUT(WSTR("EAX=0x%08X,EBX=0x%08X,ECX=0x%08X,EDX=0x%08X\n"),Reg.GeneReg[EAX_IDX],Reg.GeneReg[EBX_IDX],Reg.GeneReg[ECX_IDX],Reg.GeneReg[EDX_IDX]); OUTPUT(WSTR("EDI=0x%08X,ESI=0x%08X,EBP=0x%08X,ESP=0x%08X\n"),Reg.GeneReg[EDI_IDX],Reg.GeneReg[ESI_IDX],Reg.GeneReg[EBP_IDX],Reg.GeneReg[ESP_IDX]); OUTPUT(WSTR("EIP=0x%08X,EFlags=0x%08X\n"),Reg.EIP,Reg.EFlags); OUTPUT(WSTR("Segment Register\n")); OUTPUT(WSTR("CS=0x%04X,DS=0x%04X,ES=0x%04X,FS=0x%04X,GS=0x%04X,SS=0x%04X\n"),Reg.SegReg[CS_IDX],Reg.SegReg[DS_IDX],Reg.SegReg[ES_IDX],Reg.SegReg[FS_IDX],Reg.SegReg[GS_IDX],Reg.SegReg[SS_IDX]); OUTPUT(WSTR("Debug Register\n")); OUTPUT(WSTR("DR0=0x%08X,DR1=0x%08X,DR2=0x%08X,DR3=0x%08X\n"),Reg.DR[0],Reg.DR[1],Reg.DR[2],Reg.DR[3]); OUTPUT(WSTR("DR6=0x%08X,DR7=0x%08X\n"),Reg.DR[6],Reg.DR[7]); OUTPUT(WSTR("Control Register\n")); OUTPUT(WSTR("CR0=0x%08X,CR2=0x%08X,CR3=0x%08X,CR4=0x%08X\n"),Reg.CR[0],Reg.CR[2],Reg.CR[3],Reg.CR[4]); pCR4=(PCR4REGISTER)&Reg.CR[4]; pCR3=(PCR3REGISTER)&Reg.CR[3]; pCR0=(PCR0REGISTER)&Reg.CR[0]; OUTPUT(WSTR("CR0=%08x PE=%d MP=%d EM=%d TS=%d ET=%d NE=%d WP=%d AM=%d CD=%d PG=%d\n"),Reg.CR[0],pCR0->PE,pCR0->MP,pCR0->EM,pCR0->TS,pCR0->ET,pCR0->NE,pCR0->WP,pCR0->AM,pCR0->CD,pCR0->PG); OUTPUT(WSTR("CR3=%08x PWT=%d PCD=%d Page-Directory Base=%08x\n"),Reg.CR[3],pCR3->PWT,pCR3->PCD,Reg.CR[3]&0xfffff000); OUTPUT(WSTR("CR4=%08x VEM=%d PVI=%d TSD=%d DE=%d PSE=%d PAE=%d MCE=%d PGE=%d PCE=%d OSFXSR=%d OSXMMEXCPT=%d\n"),Reg.CR[4], pCR4->VEM,pCR4->PVI,pCR4->TSD,pCR4->DE,pCR4->PSE,pCR4->PAE,pCR4->MCE,pCR4->PGE,pCR4->PCE,pCR4->OSFXSR,pCR4->OSXMMEXCPT); pEfl=(PCPU_EFLAGS)&Reg.EFlags; OUTPUT(WSTR("EFLAGS=%08x CF=%d PF=%d AF=%d ZF=%d SF=%d TF=%d IF=%d DF=%d OF=%d IOPL=%d NT=%d RF=%d VM=%d AC=%d VIF=%d VIP=%d ID=%d\n"),Reg.EFlags, pEfl->CF,pEfl->PF,pEfl->AF,pEfl->ZF,pEfl->SF,pEfl->TF,pEfl->IF,pEfl->DF,pEfl->OF,pEfl->IOPL,pEfl->NT,pEfl->RF,pEfl->VM,pEfl->AC,pEfl->VIF,pEfl->VIP,pEfl->ID); dwSelector = SyserGetTSSSelector(); dwBase = GetTSSBase(&dwSize); OUTPUT(WSTR("TSS Selector=%04x Base=%08x Limit=%04x "),dwSelector,dwBase,dwSize); dwBase = SyserGetIDTBase(&dwSize); OUTPUT(WSTR("IDT Base=%08x Limit=%04x\n"),dwBase,dwSize); dwBase = GetLDTBase(&dwSize); dwSelector = SyserGetLDTSelector(); OUTPUT(WSTR("LDT Selector=%04x Base=%08x Limit=%04x "),dwBase,dwSize); dwBase = SyserGetGDTBase(&dwSize); OUTPUT(WSTR("GDT Base=%08x Limit=%04x\n"),dwBase,dwSize); if(RegIndex[0].Show) { OUTPUT(WSTR(" %CR0 = %08x\n"),Reg.CR[0]); OUTPUT(WSTR(" Paging [PG] = %d %(CR0 31 bit) \n"),pCR0->PG); OUTPUT(WSTR(" Cache Disable [CD] = %d %(CR0 30 bit)\n"),pCR0->CD); OUTPUT(WSTR(" Not Write-through [NW] = %d %(CR0 29 bit)\n"),pCR0->NW); OUTPUT(WSTR(" Alignment Mask [AM] = %d %(CR0 18 bit)\n"),pCR0->AM); OUTPUT(WSTR(" Write Protect [WP] = %d %(CR0 16 bit)\n"),pCR0->WP); OUTPUT(WSTR(" Numeric Error [NE] = %d %(CR0 5 bit)\n"),pCR0->NE); OUTPUT(WSTR(" Extension Type [ET] = %d %(CR0 4 bit)\n"),pCR0->ET); OUTPUT(WSTR(" Task Switched [TS] = %d %(CR0 3 bit)\n"),pCR0->TS); OUTPUT(WSTR(" Emulation [EM] = %d %(CR0 2 bit)\n"),pCR0->EM); OUTPUT(WSTR("Monitor Coprocessor [MP] = %d %(CR0 1 bit)\n"),pCR0->MP); OUTPUT(WSTR(" Protection Enable [PE] = %d %(CR0 0 bit)\n"),pCR0->PE); } if(RegIndex[1].Show) { OUTPUT(WSTR(" %CR3 = %08x\n"),Reg.CR[3]); OUTPUT(WSTR(" Page-level Cache Disable [PCD] = %d %(CR3 4 bit) \n"),pCR3->PCD); OUTPUT(WSTR("Page-level Writes transparent [PWT] = %d %(CR0 3 bit)\n"),pCR3->PWT); OUTPUT(WSTR(" Page-Directory Base = 0x%08x %(CR0 12-31 bit)\n"),(pCR3->PageDirectoryBase << 12)); } if(RegIndex[2].Show) { OUTPUT(WSTR(" %CR4 = %08x\n"),Reg.CR[4]); OUTPUT(WSTR(" Virtual-8086 Mode Extensions [VME] = %d %(CR4 0 bit) \n"),pCR4->VEM); OUTPUT(WSTR(" Protected-Mode Virtual Interrupts [PVI] = %d %(CR4 1 bit) \n"),pCR4->PVI); OUTPUT(WSTR(" Time Stamp Disable [TSD] = %d %(CR4 2 bit) \n"),pCR4->TSD); OUTPUT(WSTR(" Debugging Extensions [DE] = %d %(CR4 3 bit) \n"),pCR4->DE); OUTPUT(WSTR(" Page Size Extensions [PSE] = %d %(CR4 4 bit) \n"),pCR4->PSE); OUTPUT(WSTR(" Physical Address Extension [PAE] = %d %(CR4 5 bit) \n"),pCR4->PAE); OUTPUT(WSTR(" Machine-Check Enable [MCE] = %d %(CR4 6 bit) \n"),pCR4->MCE); OUTPUT(WSTR(" Page Global Enable [PGE] = %d %(CR4 7 bit) \n"),pCR4->PGE); OUTPUT(WSTR(" Performance-Monitoring Counter Enable [PCE] = %d %(CR4 8 bit) \n"),pCR4->PCE); OUTPUT(WSTR(" Operating System Support for FXSAVE and FXRSTOR instructions [OSFXSR] = %d %(CR4 9 bit) \n"),pCR4->OSFXSR); OUTPUT(WSTR("Operating System Support for Unmasked SIMD Floating-Point Exceptions [OSXMMEXCPT] = %d %(CR4 10 bit) \n"),pCR4->OSXMMEXCPT); } if(RegIndex[3].Show) { OUTPUT(WSTR(" %EFLAGS = %08x\n"),Reg.EFlags); OUTPUT(WSTR(" Carry Flag [CF] = %d %(EFLAGS 0 bit) \n"),pEfl->CF); OUTPUT(WSTR(" Parity Flag [PF] = %d %(EFLAGS 2 bit)\n"),pEfl->PF); OUTPUT(WSTR(" Auxiliary Carry Flag [AF] = %d %(EFLAGS 4 bit)\n"),pEfl->AF); OUTPUT(WSTR(" Zero Flag [ZF] = %d %(EFLAGS 6 bit)\n"),pEfl->ZF); OUTPUT(WSTR(" Sign Flag [SF] = %d %(EFLAGS 7 bit)\n"),pEfl->SF); OUTPUT(WSTR(" Trap Flag [TF] = %d %(EFLAGS 8 bit)\n"),pEfl->TF); OUTPUT(WSTR(" Interrupt Enable Flag [IF] = %d %(EFLAGS 9 bit)\n"),pEfl->IF); OUTPUT(WSTR(" Direction Flag [DF] = %d %(EFLAGS 10 bit)\n"),pEfl->DF); OUTPUT(WSTR(" Overflow Flag [OF] = %d %(EFLAGS 11 bit)\n"),pEfl->OF); OUTPUT(WSTR(" I/O Privilege Level [IOPL] = %d %(EFLAGS 12-13 bit)\n"),pEfl->IOPL); OUTPUT(WSTR(" Nested Task [NT] = %d %(EFLAGS 14 bit)\n"),pEfl->NT); OUTPUT(WSTR(" Resume Flag [RF] = %d %(EFLAGS 16 bit)\n"),pEfl->RF); OUTPUT(WSTR(" Virtual-8086 Mode [VM] = %d %(EFLAGS 17 bit)\n"),pEfl->VM); OUTPUT(WSTR(" Alignment Check [AC] = %d %(EFLAGS 18 bit)\n"),pEfl->AC); OUTPUT(WSTR(" Virtual Intterrupt Flag [VIF] = %d %(EFLAGS 19 bit)\n"),pEfl->VIF); OUTPUT(WSTR("Virtual Interrupt Pending [VIP] = %d %(EFLAGS 20 bit)\n"),pEfl->VIP); OUTPUT(WSTR(" ID Flag [ID] = %d %(EFLAGS 21 bit)\n"),pEfl->ID); } } else { for(i=1;i=gCPUNumbers) continue; if(dwCurrentCpuID==dwCPUIndex) pReg=&Reg; else pReg = &gpMCPUReg[dwCPUIndex]; pLocalApic = &gpMCPULocalApic[dwCPUIndex]; pCR4=(PCR4REGISTER)&pReg->CR[4]; pCR3=(PCR3REGISTER)&pReg->CR[3]; pCR0=(PCR0REGISTER)&pReg->CR[0]; OUTPUT(WSTR("CPU %d\n"),dwCPUIndex); OUTPUT(WSTR("Generate Register\n")); OUTPUT(WSTR("EAX=0x%08X,EBX=0x%08X,ECX=0x%08X,EDX=0x%08X\n"),pReg->GeneReg[EAX_IDX],pReg->GeneReg[EBX_IDX],pReg->GeneReg[ECX_IDX],pReg->GeneReg[EDX_IDX]); OUTPUT(WSTR("EDI=0x%08X,ESI=0x%08X,EBP=0x%08X,ESP=0x%08X\n"),pReg->GeneReg[EDI_IDX],pReg->GeneReg[ESI_IDX],pReg->GeneReg[EBP_IDX],pReg->GeneReg[ESP_IDX]); OUTPUT(WSTR("EIP=0x%08X,EFlags=0x%08X\n"),pReg->EIP,pReg->EFlags); OUTPUT(WSTR("Segment Register\n")); OUTPUT(WSTR("CS=0x%04X,DS=0x%04X,ES=0x%04X,FS=0x%04X,GS=0x%04X,SS=0x%04X\n"),pReg->SegReg[CS_IDX],pReg->SegReg[DS_IDX],pReg->SegReg[ES_IDX],pReg->SegReg[FS_IDX],pReg->SegReg[GS_IDX],pReg->SegReg[SS_IDX]); OUTPUT(WSTR("Debug Register\n")); OUTPUT(WSTR("DR0=0x%08X,DR1=0x%08X,DR2=0x%08X,DR3=0x%08X\n"),pReg->DR[0],pReg->DR[1],pReg->DR[2],pReg->DR[3]); OUTPUT(WSTR("DR6=0x%08X,DR7=0x%08X\n"),pReg->DR[6],pReg->DR[7]); OUTPUT(WSTR("Control Register\n")); OUTPUT(WSTR("CR0=0x%08X,CR2=0x%08X,CR3=0x%08X,CR4=0x%08X\n"),pReg->CR[0],pReg->CR[2],pReg->CR[3],pReg->CR[4]); OUTPUT(WSTR("CR0=%08x PE=%d MP=%d EM=%d TS=%d ET=%d NE=%d WP=%d AM=%d CD=%d PG=%d\n"),pReg->CR[0],pCR0->PE,pCR0->MP,pCR0->EM,pCR0->TS,pCR0->ET,pCR0->NE,pCR0->WP,pCR0->AM,pCR0->CD,pCR0->PG); OUTPUT(WSTR("CR3=%08x PWT=%d PCD=%d Page-Directory Base=%08x\n"),pReg->CR[3],pCR3->PWT,pCR3->PCD,pReg->CR[3]&0xfffff000); OUTPUT(WSTR("CR4=%08x VEM=%d PVI=%d TSD=%d DE=%d PSE=%d PAE=%d MCE=%d PGE=%d PCE=%d OSFXSR=%d OSXMMEXCPT=%d\n"),pReg->CR[4], pCR4->VEM,pCR4->PVI,pCR4->TSD,pCR4->DE,pCR4->PSE,pCR4->PAE,pCR4->MCE,pCR4->PGE,pCR4->PCE,pCR4->OSFXSR,pCR4->OSXMMEXCPT); pEfl=(PCPU_EFLAGS)&pReg->EFlags; OUTPUT(WSTR("EFLAGS=%08x CF=%d PF=%d AF=%d ZF=%d SF=%d TF=%d IF=%d DF=%d OF=%d IOPL=%d NT=%d RF=%d VM=%d AC=%d VIF=%d VIP=%d ID=%d\n"),pReg->EFlags, pEfl->CF,pEfl->PF,pEfl->AF,pEfl->ZF,pEfl->SF,pEfl->TF,pEfl->IF,pEfl->DF,pEfl->OF,pEfl->IOPL,pEfl->NT,pEfl->RF,pEfl->VM,pEfl->AC,pEfl->VIF,pEfl->VIP,pEfl->ID); OUTPUT(WSTR("TSS Selector=%04x Base=%08x Limit=%04x "),pReg->TR,0,0); OUTPUT(WSTR("IDT Base=%08x Limit=%04x\n"),pReg->IDTBase,pReg->IDTLimit); OUTPUT(WSTR("LDT Selector=%04x Base=%08x Limit=%04x "),pReg->LDT,0,0); OUTPUT(WSTR("GDT Base=%08x Limit=%04x\n"),pReg->GDTBase,pReg->GDTLimit); OUTPUT(WSTR("\n%-------- Local apic --------\n")); OUTPUT(WSTR("%-20s: %x\n"),WSTR("ID"),pLocalApic->APIC_ID); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Version"),pLocalApic->APICVersion); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Task Priority"),pLocalApic->TaskPriority); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Arbitration Priority"),pLocalApic->ArbitrationPriority); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Processor Priority"),pLocalApic->ProcessorPriority); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Destination Format"),pLocalApic->DestinationFormat); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Logical Destination"),pLocalApic->LogicalDestination); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Spurious Vector"),pLocalApic->SpuriousInterruptVector); OUTPUT(WSTR("%-20s: %08x %08x\n"),WSTR("Interrupt Command"),pLocalApic->InterruptCommandHigh,pLocalApic->InterruptCommandLow); OUTPUT(WSTR("%-20s: %x\n"),WSTR("LVT (Timer)"),pLocalApic->LVTTimer); OUTPUT(WSTR("%-20s: %x\n"),WSTR("LVT (Perf. Counter)"),pLocalApic->LVTPerformanceMonitoringCounters); OUTPUT(WSTR("%-20s: %x\n"),WSTR("LVT (Lint0)"),pLocalApic->LVTLINT0); OUTPUT(WSTR("%-20s: %x\n"),WSTR("LVT (Lint1)"),pLocalApic->LVTLINT1); OUTPUT(WSTR("%-20s: %x\n"),WSTR("LVT (Error)"),pLocalApic->LVTError); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Timer Count"),pLocalApic->InitialCount); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Timer Current"),pLocalApic->CurrentCount); OUTPUT(WSTR("%-20s: %x\n"),WSTR("Timer Divide"),pLocalApic->DivideConfiguration); if(RegIndex[0].Show) { OUTPUT(WSTR(" %CR0 = %08x\n"),Reg.CR[0]); OUTPUT(WSTR(" Paging [PG] = %d %(CR0 31 bit) \n"),pCR0->PG); OUTPUT(WSTR(" Cache Disable [CD] = %d %(CR0 30 bit)\n"),pCR0->CD); OUTPUT(WSTR(" Not Write-through [NW] = %d %(CR0 29 bit)\n"),pCR0->NW); OUTPUT(WSTR(" Alignment Mask [AM] = %d %(CR0 18 bit)\n"),pCR0->AM); OUTPUT(WSTR(" Write Protect [WP] = %d %(CR0 16 bit)\n"),pCR0->WP); OUTPUT(WSTR(" Numeric Error [NE] = %d %(CR0 5 bit)\n"),pCR0->NE); OUTPUT(WSTR(" Extension Type [ET] = %d %(CR0 4 bit)\n"),pCR0->ET); OUTPUT(WSTR(" Task Switched [TS] = %d %(CR0 3 bit)\n"),pCR0->TS); OUTPUT(WSTR(" Emulation [EM] = %d %(CR0 2 bit)\n"),pCR0->EM); OUTPUT(WSTR("Monitor Coprocessor [MP] = %d %(CR0 1 bit)\n"),pCR0->MP); OUTPUT(WSTR(" Protection Enable [PE] = %d %(CR0 0 bit)\n"),pCR0->PE); } if(RegIndex[1].Show) { OUTPUT(WSTR(" %CR3 = %08x\n"),Reg.CR[3]); OUTPUT(WSTR(" Page-level Cache Disable [PCD] = %d %(CR3 4 bit) \n"),pCR3->PCD); OUTPUT(WSTR("Page-level Writes transparent [PWT] = %d %(CR0 3 bit)\n"),pCR3->PWT); OUTPUT(WSTR(" Page-Directory Base = 0x%08x %(CR0 12-31 bit)\n"),(pCR3->PageDirectoryBase << 12)); } if(RegIndex[2].Show) { OUTPUT(WSTR(" %CR4 = %08x\n"),Reg.CR[4]); OUTPUT(WSTR(" Virtual-8086 Mode Extensions [VME] = %d %(CR4 0 bit) \n"),pCR4->VEM); OUTPUT(WSTR(" Protected-Mode Virtual Interrupts [PVI] = %d %(CR4 1 bit) \n"),pCR4->PVI); OUTPUT(WSTR(" Time Stamp Disable [TSD] = %d %(CR4 2 bit) \n"),pCR4->TSD); OUTPUT(WSTR(" Debugging Extensions [DE] = %d %(CR4 3 bit) \n"),pCR4->DE); OUTPUT(WSTR(" Page Size Extensions [PSE] = %d %(CR4 4 bit) \n"),pCR4->PSE); OUTPUT(WSTR(" Physical Address Extension [PAE] = %d %(CR4 5 bit) \n"),pCR4->PAE); OUTPUT(WSTR(" Machine-Check Enable [MCE] = %d %(CR4 6 bit) \n"),pCR4->MCE); OUTPUT(WSTR(" Page Global Enable [PGE] = %d %(CR4 7 bit) \n"),pCR4->PGE); OUTPUT(WSTR(" Performance-Monitoring Counter Enable [PCE] = %d %(CR4 8 bit) \n"),pCR4->PCE); OUTPUT(WSTR(" Operating System Support for FXSAVE and FXRSTOR instructions [OSFXSR] = %d %(CR4 9 bit) \n"),pCR4->OSFXSR); OUTPUT(WSTR("Operating System Support for Unmasked SIMD Floating-Point Exceptions [OSXMMEXCPT] = %d %(CR4 10 bit) \n"),pCR4->OSXMMEXCPT); } if(RegIndex[3].Show) { OUTPUT(WSTR(" %EFLAGS = %08x\n"),pReg->EFlags); OUTPUT(WSTR(" Carry Flag [CF] = %d %(EFLAGS 0 bit) \n"),pEfl->CF); OUTPUT(WSTR(" Parity Flag [PF] = %d %(EFLAGS 2 bit)\n"),pEfl->PF); OUTPUT(WSTR(" Auxiliary Carry Flag [AF] = %d %(EFLAGS 4 bit)\n"),pEfl->AF); OUTPUT(WSTR(" Zero Flag [ZF] = %d %(EFLAGS 6 bit)\n"),pEfl->ZF); OUTPUT(WSTR(" Sign Flag [SF] = %d %(EFLAGS 7 bit)\n"),pEfl->SF); OUTPUT(WSTR(" Trap Flag [TF] = %d %(EFLAGS 8 bit)\n"),pEfl->TF); OUTPUT(WSTR(" Interrupt Enable Flag [IF] = %d %(EFLAGS 9 bit)\n"),pEfl->IF); OUTPUT(WSTR(" Direction Flag [DF] = %d %(EFLAGS 10 bit)\n"),pEfl->DF); OUTPUT(WSTR(" Overflow Flag [OF] = %d %(EFLAGS 11 bit)\n"),pEfl->OF); OUTPUT(WSTR(" I/O Privilege Level [IOPL] = %d %(EFLAGS 12-13 bit)\n"),pEfl->IOPL); OUTPUT(WSTR(" Nested Task [NT] = %d %(EFLAGS 14 bit)\n"),pEfl->NT); OUTPUT(WSTR(" Resume Flag [RF] = %d %(EFLAGS 16 bit)\n"),pEfl->RF); OUTPUT(WSTR(" Virtual-8086 Mode [VM] = %d %(EFLAGS 17 bit)\n"),pEfl->VM); OUTPUT(WSTR(" Alignment Check [AC] = %d %(EFLAGS 18 bit)\n"),pEfl->AC); OUTPUT(WSTR(" Virtual Intterrupt Flag [VIF] = %d %(EFLAGS 19 bit)\n"),pEfl->VIF); OUTPUT(WSTR("Virtual Interrupt Pending [VIP] = %d %(EFLAGS 20 bit)\n"),pEfl->VIP); OUTPUT(WSTR(" ID Flag [ID] = %d %(EFLAGS 21 bit)\n"),pEfl->ID); } } } return 0; } ================================================ FILE: Project/Syser/Source/cmd_cpu.h ================================================ #ifndef __CMD_CPU_H__ #define __CMD_CPU_H__ DECLARE_SYSER_CMD(cpu_command); #endif //__CMD_CPU_H__ ================================================ FILE: Project/Syser/Source/cmd_cpuid.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "cmd_cpuid.h" PCWSTR szProcessor[]= { WSTR("Original OEM Processor"), WSTR("Intel OverDrive Processor"), WSTR("Dual processor*"), WSTR("Intel reserved") }; typedef struct _TLBDESCRIPTOR { UCHAR Type; char* Descriptor; }TLBDESCRIPTOR,*PTLBDESCRIPTOR; TLBDESCRIPTOR gTLBDescriptorArray[]= { {0x00, "Null descriptor"}, {0x01, "Instruction TLB: 4 KByte pages, 4-way set associative, 32 entries"}, {0x02, "Instruction TLB: 4 MByte pages, 4-way set associative, 2 entries"}, {0x03, "Data TLB: 4 KByte pages, 4-way set associative, 64 entries"}, {0x04, "Data TLB: 4 MByte pages, 4-way set associative, 8 entries"}, {0x05, "Data TLB1: 4 MByte pages, 4-way set associative, 32 entries"}, {0x06, "1st-level instruction cache: 8 KBytes, 4-way set associative, 32 byte line size"}, {0x08, "1st-level instruction cache: 16 KBytes, 4-way set associative, 32 byte line size"}, {0x0A, "1st-level data cache: 8 KBytes, 2-way set associative, 32 byte line size"}, {0x0B, "Instruction TLB: 4 MByte pages, 4-way set associative, 4 entries"}, {0x0C, "1st-level data cache: 16 KBytes, 4-way set associative, 32 byte line size"}, {0x22, "3rd-level cache: 512 KBytes, 4-way set associative, 64 byte line size, 2 lines per sector"}, {0x23, "3rd-level cache: 1 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x25, "3rd-level cache: 2 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x29, "3rd-level cache: 4 MBytes, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x2C, "1st-level data cache: 32 KBytes, 8-way set associative, 64 byte line size"}, {0x30, "1st-level instruction cache: 32 KBytes, 8-way set associative, 64 byte line size"}, {0x40, "No 2nd-level cache or, if processor contains a valid 2nd-level cache, no 3rdlevel cache"}, {0x41, "2nd-level cache: 128 KBytes, 4-way set associative, 32 byte line size"}, {0x42, "2nd-level cache: 256 KBytes, 4-way set associative, 32 byte line size"}, {0x43, "2nd-level cache: 512 KBytes, 4-way set associative, 32 byte line size"}, {0x44, "2nd-level cache: 1 MByte, 4-way set associative, 32 byte line size"}, {0x45, "2nd-level cache: 2 MByte, 4-way set associative, 32 byte line size"}, {0x46, "3rd-level cache: 4 MByte, 4-way set associative, 64 byte line size"}, {0x47, "3rd-level cache: 8 MByte, 8-way set associative, 64 byte line size"}, {0x49, "2nd-level cache: 4 MByte, 16-way set associative, 64 byte line size"}, {0x50, "Instruction TLB: 4 KByte and 2-MByte or 4-MByte pages, 64 entries"}, {0x51, "Instruction TLB: 4 KByte and 2-MByte or 4-MByte pages, 128 entries"}, {0x52, "Instruction TLB: 4 KByte and 2-MByte or 4-MByte pages, 256 entries"}, {0x56, "Data TLB0: 4 MByte pages, 4-way set associative, 16 entries"}, {0x57, "Data TLB0: 4 KByte pages, 4-way associative, 16 entries"}, {0x5B, "Data TLB: 4 KByte and 4 MByte pages, 64 entries"}, {0x5C, "Data TLB: 4 KByte and 4 MByte pages,128 entries"}, {0x5D, "Data TLB: 4 KByte and 4 MByte pages,256 entries"}, {0x60, "1st-level data cache: 16 KByte, 8-way set associative, 64 byte line size"}, {0x66, "1st-level data cache: 8 KByte, 4-way set associative, 64 byte line size"}, {0x67, "1st-level data cache: 16 KByte, 4-way set associative, 64 byte line size"}, {0x68, "1st-level data cache: 32 KByte, 4-way set associative, 64 byte line size"}, {0x70, "Trace cache: 12 K-op, 8-way set associative"}, {0x71, "Trace cache: 16 K-op, 8-way set associative"}, {0x72, "Trace cache: 32 K-op, 8-way set associative"}, {0x78, "2nd-level cache: 1 MByte, 4-way set associative, 64byte line size"}, {0x79, "2nd-level cache: 128 KByte, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x7A, "2nd-level cache: 256 KByte, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x7B, "2nd-level cache: 512 KByte, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x7C, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size, 2 lines per sector"}, {0x7D, "2nd-level cache: 2 MByte, 8-way set associative, 64byte line size"}, {0x7F, "2nd-level cache: 512 KByte, 2-way set associative, 64-byte line size"}, {0x82, "2nd-level cache: 256 KByte, 8-way set associative, 32 byte line size"}, {0x83, "2nd-level cache: 512 KByte, 8-way set associative, 32 byte line size"}, {0x84, "2nd-level cache: 1 MByte, 8-way set associative, 32 byte line size"}, {0x85, "2nd-level cache: 2 MByte, 8-way set associative, 32 byte line size"}, {0x86, "2nd-level cache: 512 KByte, 4-way set associative, 64 byte line size"}, {0x87, "2nd-level cache: 1 MByte, 8-way set associative, 64 byte line size"}, {0xB0, "Instruction TLB: 4 KByte pages, 4-way set associative, 128 entries"}, {0xB3, "Data TLB: 4 KByte pages, 4-way set associative, 128 entries"}, {0xB4, "Data TLB1: 4 KByte pages, 4-way associative, 256 entries"}, {0xF0, "64-Byte prefetching"}, {0xF1, "128-Byte prefetching"}, {0x0,"Reserved"}, }; PTLBDESCRIPTOR GetTLBDescriptor(UCHAR Type) { int i; for(i =0;i%u.%d MHZ\n"),(ULONG)(TscPerSec+500000)/1000000,((TscPerSec+50000)/100000)%10); OUTPUT(WSTR("CPUID Information\n")); WCHAR wszBuffer[20]; char szBuffer[20]; bool bBrandString=false; DWORD dwTemp; bool bIsAMD=false,bIsIntel=false; char* szBrandString; WCHAR wszBrandString[250]; CPUID_INFO TmpInfo[5]; CPUID_INFO ExInfo; DWORD ExtMaxIndex; DWORD MaxIndex; DWORD dwIndex; DWORD i; bool bShowAll=false; memset(TmpInfo,0,sizeof(TmpInfo)); SyserGetCPUID(TmpInfo,0); MaxIndex=TmpInfo[0].dwEAX; memset(TmpInfo,0,sizeof(TmpInfo)); SyserGetCPUID(TmpInfo,0x80000000); ExtMaxIndex = TmpInfo[0].dwEAX; if(argc>1) { for(i = 1; i< (DWORD)argc;i++) { if(TStrICmp(argv[i],"-a")==0) { bShowAll=true; break; } } if(bShowAll) { for(i = 0; i <= MaxIndex;i++) { memset(&ExInfo,0,sizeof(ExInfo)); SyserGetCPUID(&ExInfo,i); OUTPUT(WSTR("CPUID[EAX=%08x] %08x %08x %08x %08x\n"),i,ExInfo.dwEAX,ExInfo.dwEBX,ExInfo.dwECX,ExInfo.dwEDX); } for(i=0x80000000;i<=ExtMaxIndex;i++) { memset(&ExInfo,0,sizeof(ExInfo)); SyserGetCPUID(&ExInfo,i); OUTPUT(WSTR("CPUID[EAX=%08x] %08x %08x %08x %08x\n"),i,ExInfo.dwEAX,ExInfo.dwEBX,ExInfo.dwECX,ExInfo.dwEDX); } return 0; } for(i = 1; i < (DWORD)argc;i++) { if(CALCEXP(argv[i],&dwIndex)==FALSE) continue; if(dwIndex <= MaxIndex || ((dwIndex>=0x80000000) && (dwIndex <= ExtMaxIndex))) { memset(&ExInfo,0,sizeof(ExInfo)); SyserGetCPUID(&ExInfo,dwIndex); OUTPUT(WSTR("CPUID[EAX=%08x] %08x %08x %08x %08x\n"),dwIndex,ExInfo.dwEAX,ExInfo.dwEBX,ExInfo.dwECX,ExInfo.dwEDX); } } return 0; } SyserGetCPUID(TmpInfo,0x80000000); ExtMaxIndex = TmpInfo[0].dwEAX; if(ExtMaxIndex>=0x80000004) { memset(TmpInfo,0,sizeof(CPUID_INFO)); memset(&ExInfo,0,sizeof(ExInfo)); SyserGetCPUID(&ExInfo,0x80000001); SyserGetCPUID(&TmpInfo[0],0x80000002); SyserGetCPUID(&TmpInfo[1],0x80000003); SyserGetCPUID(&TmpInfo[2],0x80000004); szBrandString=(char*)&TmpInfo[0]; TStrCpy(wszBrandString,szBrandString); bBrandString=true; } memset(TmpInfo,0,sizeof(TmpInfo)); SyserGetCPUID(TmpInfo,0); MaxIndex=TmpInfo[0].dwEAX; //if(MaxIndex>=1) { ZeroMemory(szBuffer,sizeof(szBuffer)); PUT_DWORD(szBuffer,0,TmpInfo[0].dwEBX); PUT_DWORD(szBuffer,4,TmpInfo[0].dwEDX); PUT_DWORD(szBuffer,8,TmpInfo[0].dwECX); TStrCpy(wszBuffer,szBuffer); if(TStrCmp("AuthenticAMD",wszBuffer)==0) { bIsAMD=true; OUTPUT(WSTR("AMD\n")); } else if(TStrCmp("GenuineIntel",wszBuffer)==0) bIsIntel=true; OUTPUT(WSTR(" Vendor ID String = %\"%s\"\n"),wszBuffer); } if(MaxIndex>=1) { SyserGetCPUID(&TmpInfo[1],1); if(bIsIntel) { OUTPUT(WSTR(" Version Information = 0x%08X\n"),TmpInfo[1].dwEAX); CPUID_1_EAX_VERSION*pVer = (CPUID_1_EAX_VERSION*)&TmpInfo[1].dwEAX; PCPUID_1_ECX_EXTENDED_FEATURE pExtFeature=(PCPUID_1_ECX_EXTENDED_FEATURE)&TmpInfo[1].dwECX; OUTPUT(WSTR(" Processor Type = 0x%X %%s\n"),pVer->ProcessorType,szProcessor[pVer->ProcessorType]); if(bBrandString) OUTPUT(WSTR("%<6>%s\n"),wszBrandString); if(pVer->Family==0xf) dwTemp = pVer->Family + pVer->ExtendedFamily; OUTPUT(WSTR(" Family = 0x%X\n"),pVer->Family); if(pVer->Family==0xf || pVer->Family == 0x6) dwTemp=(pVer->Model+(pVer->ExtendedModel<<4)); OUTPUT(WSTR(" Model = 0x%X\n"),pVer->Model); OUTPUT(WSTR(" Stepping ID = 0x%X\n"),pVer->SteppingID); OUTPUT(WSTR(" %Feature Information = CPUID EAX=0x00000001 EDX=0x%08X\n"),TmpInfo[1].dwEDX); CPUID_1_EDX_FEATURE*pFeature = (CPUID_1_EDX_FEATURE*)&TmpInfo[1].dwEDX; OUTPUT(WSTR(" Floating Point Unit On-Chip = %d %(EDX 0 bit)\n"),pFeature->FPU); OUTPUT(WSTR(" Virtual 8086 Mode Enhancements = %d %(EDX 1 bit)\n"),pFeature->VME); OUTPUT(WSTR(" Debugging Extensions = %d %(EDX 2 bit)\n"),pFeature->DE); OUTPUT(WSTR(" Page Size Extension = %d %(EDX 3 bit)\n"),pFeature->PSE); OUTPUT(WSTR(" Time Stamp Counter = %d %(EDX 4 bit)\n"),pFeature->TSC); OUTPUT(WSTR(" Model Specific Registers RDMSR and WRMSR Instructions = %d %(EDX 5 bit)\n"),pFeature->MSR); OUTPUT(WSTR(" Physical Address Extension = %d %(EDX 6 bit)\n"),pFeature->PAE); OUTPUT(WSTR(" Machine Check Exception = %d %(EDX 7 bit)\n"),pFeature->MCE); OUTPUT(WSTR(" CMPXCHG8B Instruction = %d %(EDX 8 bit)\n"),pFeature->CX8); OUTPUT(WSTR(" APIC On-Chip = %d %(EDX 9 bit)\n"),pFeature->APIC); OUTPUT(WSTR(" SYSENTER and SYSEXIT Instructions = %d %(EDX 11 bit)\n"),pFeature->SEP); OUTPUT(WSTR(" Memory Type Range Registers = %d %(EDX 12 bit)\n"),pFeature->MTRR); OUTPUT(WSTR(" PTE Global Bit = %d %(EDX 13 bit)\n"),pFeature->PGE); OUTPUT(WSTR(" Machine Check Architecture = %d %(EDX 14 bit)\n"),pFeature->MCA); OUTPUT(WSTR(" Conditional Move Instructions = %d %(EDX 15 bit)\n"),pFeature->CMOV); OUTPUT(WSTR(" Page Attribute Table = %d %(EDX 16 bit)\n"),pFeature->PAT); OUTPUT(WSTR(" 36-Bit Page Size Extension = %d %(EDX 17 bit)\n"),pFeature->PSE_36); OUTPUT(WSTR(" Processor Serial Number = %d %(EDX 18 bit)\n"),pFeature->PSN); OUTPUT(WSTR(" CLFLUSH Instruction = %d %(EDX 19 bit)\n"),pFeature->CLFSH); OUTPUT(WSTR(" Debug Store = %d %(EDX 21 bit)\n"),pFeature->DS); OUTPUT(WSTR("Thermal Monitor and Software Controlled Clock Facilities = %d %(EDX 22 bit)\n"),pFeature->ACPI); OUTPUT(WSTR(" Intel MMX Technology = %d %(EDX 23 bit)\n"),pFeature->MXX); OUTPUT(WSTR(" FXSAVE and FXRSTOR Instructions = %d %(EDX 24 bit)\n"),pFeature->FXSR); OUTPUT(WSTR(" Streaming SIMD Extensions = %d %(EDX 25 bit)\n"),pFeature->SSE); OUTPUT(WSTR(" Streaming SIMD Extensions 2 = %d %(EDX 26 bit)\n"),pFeature->SSE2); OUTPUT(WSTR(" Self Snoop = %d %(EDX 27 bit)\n"),pFeature->SS); OUTPUT(WSTR(" Hyper-Threading Technology = %d %(EDX 28 bit)\n"),pFeature->HTT); OUTPUT(WSTR(" Thermal Monitor = %d %(EDX 29 bit)\n"),pFeature->TM); OUTPUT(WSTR(" Pending Break Enable = %d %(EDX 31 bit)\n"),pFeature->PBE); OUTPUT(WSTR(" %Extended Feature Information = CPUID EAX=0x00000001 ECX=0x%08X\n"),TmpInfo[1].dwECX); OUTPUT(WSTR(" Streaming SIMD Extensions 3 = %d %(ECX 0 bit)\n"),pExtFeature->SSE3); OUTPUT(WSTR(" MONITOR/MWAIT = %d %(ECX 3 bit)\n"),pExtFeature->MONITOR); OUTPUT(WSTR(" CPL Qualified Debug Store = %d %(ECX 4 bit)\n"),pExtFeature->DS_CPL); OUTPUT(WSTR(" Virtual Machine Extensions = %d %(ECX 5 bit)\n"),pExtFeature->VMX); OUTPUT(WSTR(" Enhanced Intel SpeedStep technology = %d %(ECX 7 bit)\n"),pExtFeature->EST); OUTPUT(WSTR(" Thermal Monitor 2 = %d %(ECX 8 bit)\n"),pExtFeature->TM2); //OUTPUT(WSTR(" Supplemental Streaming SIMD Extensions 4 = %d %(EDX 1 bit)\n"),pExtFeature->SSSE3); OUTPUT(WSTR(" L1 Context ID = %d %(ECX 10 bit)\n"),pExtFeature->CNXT_ID); OUTPUT(WSTR(" CMPXCHG16B Available = %d %(ECX 13 bit)\n"),pExtFeature->CMPXCHG16B); OUTPUT(WSTR(" xTPR Update Control = %d %(ECX 14 bit)\n"),pExtFeature->xTPR_Update_Control); if(ExtMaxIndex>=0x80000004) { OUTPUT(WSTR("%Extended Processor Signature and Extended Feature Bits.(CPUID EAX=0x80000001 ECX=0x%08x EDX=0x%08x)\n"),ExInfo.dwECX,ExInfo.dwEDX); OUTPUT(WSTR(" LAHF/SAHF available in 64-bit mode = %d %(ECX 1 bit)\n"),ExInfo.dwECX&0x1); OUTPUT(WSTR(" SYSCALL/SYSRET available(when in 64-bit mode) = %d %(EDX 11 bit)\n"),(ExInfo.dwEDX & 0x800)>>11); OUTPUT(WSTR(" Execute Disable Bit available = %d %(EDX 20 bit)\n"),(ExInfo.dwEDX & 0x100000)>>20); OUTPUT(WSTR(" Intel EM64T available = %d %(EDX 29 bit)\n"),(ExInfo.dwEDX & 0x20000000)>>29); } OUTPUT(WSTR("%CPU TLB Information\n")); SyserGetCPUID(TmpInfo,2); unsigned char* ucType; PTLBDESCRIPTOR pTlbDesc; ucType = (unsigned char*)&TmpInfo[0]; for(int i = 1;i < sizeof(CPUID_INFO);i++) { if(ucType[i]==0) continue; pTlbDesc = GetTLBDescriptor(ucType[i]); TStrCpy(wszBrandString,pTlbDesc->Descriptor); OUTPUT(WSTR("%02x %s\n"),ucType[i],wszBrandString); } DWORD dwHiMiscFeature=0,dwLoMiscFeature=0; PMSR_IA32_MISC_ENABLE pMiscEnable; if(SyserReadMSR(0x1a0,&dwHiMiscFeature,&dwLoMiscFeature)) { OUTPUT(WSTR(" %CPU IA32_MISC_ENABLE = MSR 0x000001A0 0x%08x 0x%08x\n"),dwHiMiscFeature,dwLoMiscFeature); pMiscEnable = (PMSR_IA32_MISC_ENABLE)&dwLoMiscFeature; OUTPUT(WSTR(" Fast-Strings Enable = %d %(0 bit)\n"),pMiscEnable->FastString); OUTPUT(WSTR(" x87 FPU Fopcode Compatibility Mode Enable = %d %(2 bit)\n"),pMiscEnable->FPUMode); OUTPUT(WSTR(" Thermal Monitor 1 Enable = %d %(3 bit)\n"),pMiscEnable->TM1E); OUTPUT(WSTR(" Split-Lock Disable = %d %(4 bit)\n"),pMiscEnable->SLD); OUTPUT(WSTR(" Third-Level Cache Disable = %d %(6 bit)\n"),pMiscEnable->TLCD); OUTPUT(WSTR(" Performance Monitoring Available = %d %(7 bit)\n"),pMiscEnable->PMA); OUTPUT(WSTR(" Suppress Lock Enable = %d %(8 bit)\n"),pMiscEnable->SLE); OUTPUT(WSTR(" Prefetch Queue Disable = %d %(9 bit)\n"),pMiscEnable->PQD); OUTPUT(WSTR(" FERR# Interrupt Reporting Enable = %d %(10 bit)\n"),pMiscEnable->FerrIRE); OUTPUT(WSTR(" Branch Trace Storage Unavailable = %d %(11 bit)\n"),pMiscEnable->BTSU); OUTPUT(WSTR(" Precise Event Based Sampling Unavailable = %d %(12 bit)\n"),pMiscEnable->PEBSU); OUTPUT(WSTR(" TM2 Enable = %d %(13 bit)\n"),pMiscEnable->TM2E); OUTPUT(WSTR(" ENABLE MONITOR FSM = %d %(18 bit)\n"),pMiscEnable->EMFSM); OUTPUT(WSTR(" Adjacent Cache Line Prefetch Disable = %d %(19 bit)\n"),pMiscEnable->ACLPD); OUTPUT(WSTR(" Limit CPUID MAXVAL = %d %(22 bit)\n"),pMiscEnable->LCPUIDMAXVAL); OUTPUT(WSTR(" L1 Data Cache Context Mode = %d %(24 bit)\n"),pMiscEnable->L1DCCM); } if(SyserReadMSR(0xc0000080,&dwHiMiscFeature,&dwLoMiscFeature)) { OUTPUT(WSTR(" %CPU IA32_EFER = MSR 0xC0000080 0x%08x 0x%08x\n"),dwHiMiscFeature,dwLoMiscFeature); OUTPUT(WSTR(" SYSCALL Enable = %d %(0 bit)\n"),dwLoMiscFeature&0x1); OUTPUT(WSTR(" IA-32e Mode Enable = %d %(8 bit)\n"),(dwLoMiscFeature&0x100)>>8); OUTPUT(WSTR(" IA-32e Mode Active = %d %(10 bit)\n"),(dwLoMiscFeature&0x400)>>10); OUTPUT(WSTR(" Execute Disable Bit Enable = %d %(11 bit)\n"),(dwLoMiscFeature&0x800)>>11); } } else if(bIsAMD) { PAMD_CPUID_1_EDX pAMDEDX = (PAMD_CPUID_1_EDX)&TmpInfo[1].dwEDX; PAMD_CPUID_1_ECX pAMDECX = (PAMD_CPUID_1_ECX)&TmpInfo[1].dwECX; OUTPUT(WSTR(" %Feature Information = CPUID EAX=0x00000001 EDX=0x%08X\n"),TmpInfo[1].dwEDX); //OUTPUT(WSTR(" %Feature Information EDX = 0x%08X\n"),TmpInfo[1].dwEDX); if(bBrandString) OUTPUT(WSTR("%<6>%s\n"),wszBrandString); OUTPUT(WSTR(" Floating Point Unit On-Chip = %d %(EDX 0 bit)\n"),pAMDEDX->FPU); OUTPUT(WSTR(" Virtual 8086 Mode Enhancements = %d %(EDX 1 bit)\n"),pAMDEDX->VME); OUTPUT(WSTR(" Debugging Extensions = %d %(EDX 2 bit)\n"),pAMDEDX->DE); OUTPUT(WSTR(" Page Size Extension = %d %(EDX 3 bit)\n"),pAMDEDX->PSE); OUTPUT(WSTR(" Time Stamp Counter = %d %(EDX 4 bit)\n"),pAMDEDX->TSC); OUTPUT(WSTR(" Model Specific Registers RDMSR and WRMSR Instructions = %d %(EDX 5 bit)\n"),pAMDEDX->MSR); OUTPUT(WSTR(" Physical Address Extension = %d %(EDX 6 bit)\n"),pAMDEDX->PAE); OUTPUT(WSTR(" Machine Check Exception = %d %(EDX 7 bit)\n"),pAMDEDX->MCE); OUTPUT(WSTR(" CMPXCHG8B Instruction = %d %(EDX 8 bit)\n"),pAMDEDX->CMPXCHG8B); OUTPUT(WSTR(" APIC On-Chip = %d %(EDX 9 bit)\n"),pAMDEDX->APIC); OUTPUT(WSTR(" SYSENTER and SYSEXIT Instructions = %d %(EDX 11 bit)\n"),pAMDEDX->SysEnterSysExit); OUTPUT(WSTR(" Memory Type Range Registers = %d %(EDX 12 bit)\n"),pAMDEDX->MTRR); OUTPUT(WSTR(" PGE Global Bit = %d %(EDX 13 bit)\n"),pAMDEDX->PGE); OUTPUT(WSTR(" Machine Check Architecture = %d %(EDX 14 bit)\n"),pAMDEDX->MCA); OUTPUT(WSTR(" Conditional Move Instructions = %d %(EDX 15 bit)\n"),pAMDEDX->CMOV); OUTPUT(WSTR(" Page Attribute Table = %d %(EDX 16 bit)\n"),pAMDEDX->PAT); OUTPUT(WSTR(" 36-Bit Page Size Extension = %d %(EDX 17 bit)\n"),pAMDEDX->PSE36); OUTPUT(WSTR(" CLFLUSH Instruction = %d %(EDX 19 bit)\n"),pAMDEDX->CLFSH); OUTPUT(WSTR(" MMX instructions = %d %(EDX 23 bit)\n"),pAMDEDX->MMX); OUTPUT(WSTR(" FXSAVE and FXRSTOR Instructions = %d %(EDX 24 bit)\n"),pAMDEDX->FXSR); OUTPUT(WSTR(" Streaming SIMD Extensions = %d %(EDX 25 bit)\n"),pAMDEDX->SSE); OUTPUT(WSTR(" Streaming SIMD Extensions 2 = %d %(EDX 26 bit)\n"),pAMDEDX->SSE2); OUTPUT(WSTR(" Hyper-Threading Technology = %d %(EDX 28 bit)\n"),pAMDEDX->HTT); //OUTPUT(WSTR(" %Feature Information ECX = 0x%08X\n"),TmpInfo[1].dwECX); OUTPUT(WSTR(" %Feature Information = CPUID EAX=0x00000001 ECX=0x%08X\n"),TmpInfo[1].dwECX); OUTPUT(WSTR(" CMPXCHG16B Available = %d %(ECX 0 bit)\n"),pAMDECX->CMPXCHG16B); OUTPUT(WSTR(" Streaming SIMD Extensions 3 = %d %(ECX 13 bit)\n"),pAMDECX->SSE3); if(ExtMaxIndex>=0x80000001) { memset(&ExInfo,0,sizeof(ExInfo)); SyserGetCPUID(&ExInfo,0x80000001); PAMD_CPUID_80000001_EDX pAMDEXEDX = (PAMD_CPUID_80000001_EDX)&ExInfo.dwEDX; PAMD_CPUID_80000001_ECX pAMDEXECX = (PAMD_CPUID_80000001_ECX)&ExInfo.dwECX; OUTPUT(WSTR(" %Extended Feature Information = CPUID EAX=0x80000001 EDX=0x%08X\n"),ExInfo.dwEDX); //OUTPUT(WSTR(" %Extended Feature Information EDX = 0x%08X\n"),ExInfo.dwEDX); OUTPUT(WSTR(" Floating Point Unit On-Chip = %d %(EDX 0 bit)\n"),pAMDEXEDX->FPU); OUTPUT(WSTR(" Virtual 8086 Mode Enhancements = %d %(EDX 1 bit)\n"),pAMDEXEDX->VME); OUTPUT(WSTR(" Debugging Extensions = %d %(EDX 2 bit)\n"),pAMDEXEDX->DE); OUTPUT(WSTR(" Page Size Extension = %d %(EDX 3 bit)\n"),pAMDEXEDX->PSE); OUTPUT(WSTR(" Time Stamp Counter = %d %(EDX 4 bit)\n"),pAMDEXEDX->TSC); OUTPUT(WSTR(" Model Specific Registers RDMSR and WRMSR Instructions = %d %(EDX 5 bit)\n"),pAMDEXEDX->MSR); OUTPUT(WSTR(" Physical Address Extension = %d %(EDX 6 bit)\n"),pAMDEXEDX->PAE); OUTPUT(WSTR(" Machine Check Exception = %d %(EDX 7 bit)\n"),pAMDEXEDX->MCE); OUTPUT(WSTR(" CMPXCHG8B Instruction = %d %(EDX 8 bit)\n"),pAMDEXEDX->CMPXCHG8B); OUTPUT(WSTR(" APIC On-Chip = %d %(EDX 9 bit)\n"),pAMDEXEDX->APIC); OUTPUT(WSTR(" SYSCALL and SYSRET instructions = %d %(EDX 11 bit)\n"),pAMDEXEDX->SysCallSysRet); OUTPUT(WSTR(" Memory Type Range Registers = %d %(EDX 12 bit)\n"),pAMDEXEDX->MTRR); OUTPUT(WSTR(" PGE Global Bit = %d %(EDX 13 bit)\n"),pAMDEXEDX->PGE); OUTPUT(WSTR(" Machine Check Architecture = %d %(EDX 14 bit)\n"),pAMDEXEDX->MCA); OUTPUT(WSTR(" Conditional Move Instructions = %d %(EDX 15 bit)\n"),pAMDEXEDX->CMOV); OUTPUT(WSTR(" Page Attribute Table = %d %(EDX 16 bit)\n"),pAMDEXEDX->PAT); OUTPUT(WSTR(" 36-Bit Page Size Extension = %d %(EDX 17 bit)\n"),pAMDEXEDX->PSE36); OUTPUT(WSTR(" No-execute page protection = %d %(EDX 20 bit)\n"),pAMDEXEDX->NX); OUTPUT(WSTR(" AMD extensions to MMX instructions = %d %(EDX 22 bit)\n"),pAMDEXEDX->MmxExt); OUTPUT(WSTR(" MMX instructions = %d %(EDX 23 bit)\n"),pAMDEXEDX->MMX); OUTPUT(WSTR(" FXSAVE and FXRSTOR Instructions = %d %(EDX 24 bit)\n"),pAMDEXEDX->FXSR); OUTPUT(WSTR(" FXSAVE and FXRSTOR Instructions optimizations = %d %(EDX 25 bit)\n"),pAMDEXEDX->FFXSR); OUTPUT(WSTR(" RDTSCP instruction = %d %(EDX 27 bit)\n"),pAMDEXEDX->RDTSCP); OUTPUT(WSTR(" Long mode = %d %(EDX 29 bit)\n"),pAMDEXEDX->LM); OUTPUT(WSTR(" AMD extensions to 3DNow! instructions = %d %(EDX 30 bit)\n"),pAMDEXEDX->_3DNowExt); OUTPUT(WSTR(" 3DNow! instructions = %d %(EDX 31 bit)\n"),pAMDEXEDX->_3DNow); //OUTPUT(WSTR(" %Extended Feature Information ECX = 0x%08X\n"),ExInfo.dwECX); OUTPUT(WSTR(" %Extended Feature Information = CPUID EAX=0x80000001 ECX = 0x%08X\n"),ExInfo.dwECX); OUTPUT(WSTR(" LAHF and SAHF instruction support in 64-bit mode = %d %(ECX 0 bit)\n"),pAMDEXECX->LahfSahf); OUTPUT(WSTR(" Core multi-processing legacy mode = %d %(ECX 1 bit)\n"),pAMDEXECX->CmpLegacy); OUTPUT(WSTR(" Secure virtual machine feature = %d %(ECX 2 bit)\n"),pAMDEXECX->SVM); OUTPUT(WSTR(" LOCK MOV CR0 means MOV CR8 = %d %(ECX 4 bit)\n"),pAMDEXECX->AltMovCr8); } if(ExtMaxIndex>=0x80000005) { memset(TmpInfo,0,sizeof(TmpInfo)); SyserGetCPUID(TmpInfo,0x80000005); switch(TmpInfo[0].dwEAX >>24) { case 0: OUTPUT(WSTR("L1 2M/4M Page Data TLB %Reserved. ")); break; case 1: OUTPUT(WSTR("L1 2M/4M Page Data TLB %Direct mapped. ")); break; case 0xff: OUTPUT(WSTR("L1 2M/4M Page Data TLB %Fully associative. ")); break; default: OUTPUT(WSTR("L1 2M/4M Page Data TLB %%d-way associative. "),(TmpInfo[0].dwEAX >>24)); break; } OUTPUT(WSTR("%d entries.\n"),((TmpInfo[0].dwEAX>>16)&0xff)); switch((TmpInfo[0].dwEAX >>8)&0xff) { case 0: OUTPUT(WSTR("L1 2M/4M Page Instruction TLB %Reserved. ")); break; case 1: OUTPUT(WSTR("L1 2M/4M Page Instruction TLB %Direct mapped. ")); break; case 0xff: OUTPUT(WSTR("L1 2M/4M Page Instruction TLB %Fully associative. ")); break; default: OUTPUT(WSTR("L1 2M/4M Page Instruction TLB %%d-way associative. "),((TmpInfo[0].dwEAX >>8)&0xff)); break; } OUTPUT(WSTR("%d entries.\n"),(TmpInfo[0].dwEAX&0xff)); switch(TmpInfo[0].dwEBX >>24) { case 0: OUTPUT(WSTR("L1 4K Page Data TLB %Reserved. ")); break; case 1: OUTPUT(WSTR("L1 4K Page Data TLB %Direct mapped. ")); break; case 0xff: OUTPUT(WSTR("L1 4K Page Data TLB %Fully associative. ")); break; default: OUTPUT(WSTR("L1 4K Page Data TLB %%d-way associative. "),(TmpInfo[0].dwEBX >>24)); break; } OUTPUT(WSTR("%d entries.\n"),((TmpInfo[0].dwEBX>>16)&0xff)); switch((TmpInfo[0].dwEBX >>8)&0xff) { case 0: OUTPUT(WSTR("L1 4K Page Instruction TLB %Reserved. ")); break; case 1: OUTPUT(WSTR("L1 4K Page Instruction TLB %Direct mapped. ")); break; case 0xff: OUTPUT(WSTR("L1 4K Page Instruction TLB %Fully associative. ")); break; default: OUTPUT(WSTR("L1 4K Page Instruction TLB %%d-way associative. "),((TmpInfo[0].dwEBX >>8)&0xff)); break; } OUTPUT(WSTR("%d entries.\n"),(TmpInfo[0].dwEBX&0xff)); if((TmpInfo[0].dwEDX >> 24)) { OUTPUT(WSTR("L1 instruction cache %d KB, "),(TmpInfo[0].dwEDX >> 24)); switch((TmpInfo[0].dwEDX >> 16)&0xff) { case 1: OUTPUT(WSTR("Direct mapped. ")); break; case 0xff: OUTPUT(WSTR("Fully associative. ")); break; default: OUTPUT(WSTR("%d-way associative. "),((TmpInfo[0].dwEDX >> 16)&0xff)); break; } OUTPUT(WSTR("cache line %d Bytes\n"),(TmpInfo[0].dwEDX&0xff)); } if((TmpInfo[0].dwECX >> 24)) { OUTPUT(WSTR("L1 data cache %d KB, "),(TmpInfo[0].dwECX >> 24)); switch((TmpInfo[0].dwECX >> 16)&0xff) { case 1: OUTPUT(WSTR("Direct mapped. ")); break; case 0xff: OUTPUT(WSTR("Fully associative. ")); break; default: OUTPUT(WSTR("%d-way associative. "),((TmpInfo[0].dwECX >> 16)&0xff)); break; } OUTPUT(WSTR("cache line %d Bytes\n"),(TmpInfo[0].dwECX&0xff)); } //OUTPUT(WSTR("L1 data cache %d KB, %d-way associative. cache line %d Bytes\n"),(TmpInfo[0].dwECX >> 24),((TmpInfo[0].dwECX >> 16)&0xff),(TmpInfo[0].dwECX&0xff)); //OUTPUT(WSTR("EAX=%08x EBX=%08x ECX=%08x EDX=%08x\n"),TmpInfo[0].dwEAX,TmpInfo[0].dwEBX,TmpInfo[0].dwECX,TmpInfo[0].dwEDX); } if(ExtMaxIndex>=0x80000006) { WCHAR* Associative[]={ WSTR("%The L2 cache disabled."), WSTR("Direct mapped."), WSTR("2-way associative."), WSTR("Reserved"), WSTR("4-way associative."), WSTR("Reserved"), WSTR("8-way associative."), WSTR("Reserved"), WSTR("16-way associative."), WSTR("Reserved"), WSTR("32-way associative."), WSTR("48-way associative."), WSTR("64-way associative."), WSTR("96-way associative."), WSTR("128-way associative."), WSTR("Fully associative."), }; memset(TmpInfo,0,sizeof(TmpInfo)); SyserGetCPUID(TmpInfo,0x80000006); //OUTPUT(WSTR("EAX=%08x EBX=%08x ECX=%08x EDX=%08x\n"),TmpInfo[0].dwEAX,TmpInfo[0].dwEBX,TmpInfo[0].dwECX,TmpInfo[0].dwEDX); switch(TmpInfo[0].dwEAX >>28) { case 0: OUTPUT(WSTR("L2 2M/4M Page Data TLB %disabled. ")); break; default: OUTPUT(WSTR("L2 2M/4M Page Data TLB %%s. "),Associative[TmpInfo[0].dwEAX >>28]); break; } OUTPUT(WSTR("%d entries.\n"),((TmpInfo[0].dwEAX>>16)&0xfff)); switch((TmpInfo[0].dwEAX >>12)&0xf) { case 0: OUTPUT(WSTR("L2 2M/4M Page Instruction TLB %disabled. ")); break; default: OUTPUT(WSTR("L2 2M/4M Page Instruction TLB %%s. "),Associative[((TmpInfo[0].dwEAX >>12)&0xf)]); break; } OUTPUT(WSTR("%d entries.\n"),(TmpInfo[0].dwEAX&0xfff)); switch(TmpInfo[0].dwEBX >>28) { case 0: OUTPUT(WSTR("L2 4K Page Data TLB %disabled. ")); break; default: OUTPUT(WSTR("L2 4K Page Data TLB %%s. "),Associative[TmpInfo[0].dwEBX >>28]); break; } OUTPUT(WSTR("%d entries.\n"),((TmpInfo[0].dwEBX>>16)&0xfff)); switch((TmpInfo[0].dwEBX >>12)&0xf) { case 0: OUTPUT(WSTR("L2 4K Page Instruction TLB %disabled. ")); break; default: OUTPUT(WSTR("L2 4K Page Instruction TLB %%s. "),Associative[((TmpInfo[0].dwEBX >>12)&0xf)]); break; } OUTPUT(WSTR("%d entries.\n"),(TmpInfo[0].dwEBX&0xfff)); OUTPUT(WSTR(" L2 cache %d KB, %s cache line %d Bytes\n"),(TmpInfo[0].dwECX >> 16),Associative[(TmpInfo[0].dwECX >> 12) & 0xf],(TmpInfo[0].dwECX & 0xff)); } } } else { OUTPUT(WSTR("Not Support CPU Feature\n")); } return 0; } ================================================ FILE: Project/Syser/Source/cmd_cpuid.h ================================================ #ifndef __CMD_CPUID_H__ #define __CMD_CPUID_H__ DECLARE_SYSER_CMD(cpuid_command); #endif //__CMD_CPUID_H__ ================================================ FILE: Project/Syser/Source/cmd_msr.cpp ================================================ #include "StdAfx.h" #include "Syser.h" #include "cmd_msr.h" typedef struct _stSMRName { DWORD Index; WCHAR* Name; }SMRNAME; SMRNAME MsrName[]= { {0x0,WSTR("IA32_P5_MC_ADDR")}, {0x1,WSTR("IA32_P5_MC_TYPE")}, {0x10,WSTR("IA32_TIME_STAMP_COUNTER")}, {0x11,WSTR("CESR")}, {0x12,WSTR("CTR0")}, {0x13,WSTR("CTR1")}, {0x17,WSTR("IA32_PLATFORM_ID")}, {0x1b,WSTR("IA32_APIC_BASE")}, {0x2A,WSTR("EBL_CR_POWERON")}, {0x2B,WSTR("MSR_EBC_SOFT_POWERON")}, {0x2C,WSTR("MSR_EBC_FREQUENCY_ID")}, {0x33,WSTR("TEST_CTL")}, {0x3A,WSTR("IA32_FEATURE_CONTROL")}, {0x40,WSTR("MSR_LASTBRANCH_0_FROM_IP")}, {0x41,WSTR("MSR_LASTBRANCH_1_FROM_IP")}, {0x42,WSTR("MSR_LASTBRANCH_2_FROM_IP")}, {0x43,WSTR("MSR_LASTBRANCH_3_FROM_IP")}, {0x44,WSTR("MSR_LASTBRANCH_4_FROM_IP")}, {0x45,WSTR("MSR_LASTBRANCH_5_FROM_IP")}, {0x46,WSTR("MSR_LASTBRANCH_6_FROM_IP")}, {0x47,WSTR("MSR_LASTBRANCH_7_FROM_IP")}, {0x60,WSTR("MSR_LASTBRANCH_0_TO_IP")}, {0x61,WSTR("MSR_LASTBRANCH_1_TO_IP")}, {0x62,WSTR("MSR_LASTBRANCH_2_TO_IP")}, {0x63,WSTR("MSR_LASTBRANCH_3_TO_IP")}, {0x64,WSTR("MSR_LASTBRANCH_4_TO_IP")}, {0x65,WSTR("MSR_LASTBRANCH_5_TO_IP")}, {0x66,WSTR("MSR_LASTBRANCH_6_TO_IP")}, {0x67,WSTR("MSR_LASTBRANCH_7_TO_IP")}, {0x79,WSTR("IA32_BIOS_UPDT_TRIG")}, {0x88,WSTR("BBL_CR_D0[63:0]")}, {0x89,WSTR("BBL_CR_D1[63:0]")}, {0x8A,WSTR("BBL_CR_D2[63:0]")}, {0x8b,WSTR("IA32_BIOS_SIGN_ID")}, {0x9b,WSTR("IA32_SMM_MONITOR_CTL")}, {0xC1,WSTR("PerfCtr0 (PERFCTR0)")}, {0xC2,WSTR("PerfCtr1 (PERFCTR1)")}, {0xfe,WSTR("IA32_MTRRCAP")}, {0x118,WSTR("BBL_CR_DECC[63:0]")}, {0x119,WSTR("IA32_MISC_CTL")}, {0x11A,WSTR("BBL_CR_CTL3")}, {0x11B,WSTR("BBL_CR_BUSY")}, {0x11E,WSTR("BBL_CR_CTL3")}, {0x174,WSTR("IA32_SYSENTER_CS")}, {0x175,WSTR("IA32_SYSENTER_ESP")}, {0x176,WSTR("IA32_SYSENTER_EIP")}, {0x179,WSTR("IA32_MCG_CAP")}, {0x17a,WSTR("IA32_MCG_STATUS")}, {0x17b,WSTR("IA32_MCG_CTL")}, {0x180,WSTR("IA32_MCG_EAX")}, {0x181,WSTR("IA32_MCG_EBX")}, {0x182,WSTR("IA32_MCG_ECX")}, {0x183,WSTR("IA32_MCG_EDX")}, {0x184,WSTR("IA32_MCG_EDI")}, {0x185,WSTR("IA32_MCG_ESI")}, {0x186,WSTR("IA32_MCG_EBP")}, {0x187,WSTR("IA32_MCG_ESP")}, {0x188,WSTR("IA32_MCG_EFLAGS")}, {0x189,WSTR("IA32_MCG_EIP")}, {0x18a,WSTR("IA32_MCG_MISC")}, {0x190,WSTR("IA32_MCG_R8")}, {0x191,WSTR("IA32_MCG_R9")}, {0x192,WSTR("IA32_MCG_R10")}, {0x193,WSTR("IA32_MCG_R11")}, {0x194,WSTR("IA32_MCG_R12")}, {0x195,WSTR("IA32_MCG_R13")}, {0x196,WSTR("IA32_MCG_R14")}, {0x197,WSTR("IA32_MCG_R15")}, {0x198,WSTR("IA32_PERF_STATUS")}, {0x199,WSTR("IA32_PERF_CTL")}, {0x19a,WSTR("IA32_CLOCK_MODULATION")}, {0x19b,WSTR("IA32_THERM_INTERRUPT")}, {0x19c,WSTR("IA32_THERM_STATUS")}, {0x1A0,WSTR("IA32_MISC_ENABLE")}, {0x1C9,WSTR("MSR_LASTBRANCH_TOS")}, {0x1D9,WSTR("IA32_DEBUGCTL")}, {0x1DB,WSTR("LASTBRANCHFROMIP")}, {0x1DC,WSTR("LASTBRANCHTOIP")}, {0x1DD,WSTR("LASTINTFROMIP")}, {0x1DE,WSTR("LASTINTTOIP")}, {0x1E0,WSTR("ROB_CR_BKUPTMPDR6")}, {0x200,WSTR("IA32_MTRR_PHYSBASE0")}, {0x201,WSTR("IA32_MTRR_PHYSMASK0")}, {0x202,WSTR("IA32_MTRR_PHYSBASE1")}, {0x203,WSTR("IA32_MTRR_PHYSMASK1")}, {0x204,WSTR("IA32_MTRR_PHYSBASE2")}, {0x205,WSTR("IA32_MTRR_PHYSMASK2")}, {0x206,WSTR("IA32_MTRR_PHYSBASK3")}, {0x207,WSTR("IA32_MTRR_PHYSMASK3")}, {0x208,WSTR("IA32_MTRR_PHYSBASE4")}, {0x209,WSTR("IA32_MTRR_PHYSMASK4")}, {0x20a,WSTR("IA32_MTRR_PHYSBASE5")}, {0x20b,WSTR("IA32_MTRR_PHYSMASK5")}, {0x20c,WSTR("IA32_MTRR_PHYSBASE6")}, {0x20d,WSTR("IA32_MTRR_PHYSMASK6")}, {0x20e,WSTR("IA32_MTRR_PHYSBASE7")}, {0x20f,WSTR("IA32_MTRR_PHYSMASK7")}, {0x250,WSTR("IA32_MTRR_FIX64K_00000")}, {0x258,WSTR("IA32_MTRR_FIX16K_80000")}, {0x259,WSTR("IA32_MTRR_FIX16K_A0000")}, {0x268,WSTR("IA32_MTRR_FIX4K_C0000")}, {0x269,WSTR("IA32_MTRR_FIX4K_C8000")}, {0x26a,WSTR("IA32_MTRR_FIX4K_E0000")}, {0x26b,WSTR("IA32_MTRR_FIX4K_D8000")}, {0x26c,WSTR("IA32_MTRR_FIX4K_E0000")}, {0x26d,WSTR("IA32_MTRR_FIX4K_E8000")}, {0x26e,WSTR("IA32_MTRR_FIX4K_F0000")}, {0x26f,WSTR("IA32_MTRR_FIX4K_F8000")}, {0x277,WSTR("IA32_CR_PAT")}, {0x2ff,WSTR("IA32_MTRR_DEF_TYPE")}, {0x3f1,WSTR("IA32_PEBS_ENABLE")}, {0x400,WSTR("IA32_MC0_CTL")}, {0x401,WSTR("IA32_MC0_STATUS")}, {0x402,WSTR("IA32_MC0_ADDR")}, {0x403,WSTR("IA32_MC0_MISC")}, {0x404,WSTR("IA32_MC1_CTL")}, {0x405,WSTR("IA32_MC1_STATUS")}, {0x406,WSTR("IA32_MC1_ADDR")}, {0x407,WSTR("IA32_MC1_MISC")}, {0x408,WSTR("IA32_MC2_CTL")}, {0x409,WSTR("IA32_MC2_STATUS")}, {0x40a,WSTR("IA32_MC2_ADDR")}, {0x40b,WSTR("IA32_MC2_MISC")}, {0x40c,WSTR("IA32_MC3_CTL")}, {0x40d,WSTR("IA32_MC3_STATUS")}, {0x40e,WSTR("IA32_MC3_ADDR")}, {0x40f,WSTR("IA32_MC3_MISC")}, {0x410,WSTR("IA32_MC4_CTL")}, {0x411,WSTR("IA32_MC4_STATUS")}, {0x412,WSTR("IA32_MC4_ADDR")}, {0x413,WSTR("IA32_MC4_MISC")}, {0x480,WSTR("IA32_VMX_BASIC")}, {0x481,WSTR("IA32_VMX_PINBASED_CTL")}, {0x482,WSTR("IA32_VMX_PROCBASED_C")}, {0x483,WSTR("IA32_VMX_EXIT_CTLS")}, {0x484,WSTR("IA32_VMX_ENTRY_CTLS")}, {0x485,WSTR("IA32_VMX_MISC_CTLS")}, {0x486,WSTR("IA32_VMX_CRO_FIXED0")}, {0x487,WSTR("IA32_VMX_CRO_FIXED1")}, {0x488,WSTR("IA32_VMX_CR4_FIXED0")}, {0x489,WSTR("IA32_VMX_CR4_FIXED1")}, {0x48A,WSTR("IA32_VMX_VMCS_ENUM")}, {0x600,WSTR("IA32_DS_AREA")}, {0x680,WSTR("MSR_LASTBRANCH_0_FROM_LIP")}, {0x681,WSTR("MSR_LASTBRANCH_1_FROM_LIP")}, {0x682,WSTR("MSR_LASTBRANCH_2_FROM_LIP")}, {0x683,WSTR("MSR_LASTBRANCH_3_FROM_LIP")}, {0x684,WSTR("MSR_LASTBRANCH_4_FROM_LIP")}, {0x685,WSTR("MSR_LASTBRANCH_5_FROM_LIP")}, {0x686,WSTR("MSR_LASTBRANCH_6_FROM_LIP")}, {0x687,WSTR("MSR_LASTBRANCH_7_FROM_LIP")}, {0x688,WSTR("MSR_LASTBRANCH_8_FROM_LIP")}, {0x689,WSTR("MSR_LASTBRANCH_9_FROM_LIP")}, {0x68a,WSTR("MSR_LASTBRANCH_10_FROM_LIP")}, {0x68b,WSTR("MSR_LASTBRANCH_11_FROM_LIP")}, {0x68c,WSTR("MSR_LASTBRANCH_12_FROM_LIP")}, {0x68d,WSTR("MSR_LASTBRANCH_13_FROM_LIP")}, {0x68e,WSTR("MSR_LASTBRANCH_14_FROM_LIP")}, {0x68f,WSTR("MSR_LASTBRANCH_15_FROM_LIP")}, {0x6c0,WSTR("MSR_LASTBRANCH_0_TO_LIP")}, {0x6c1,WSTR("MSR_LASTBRANCH_1_TO_LIP")}, {0x6c2,WSTR("MSR_LASTBRANCH_2_TO_LIP")}, {0x6c3,WSTR("MSR_LASTBRANCH_3_TO_LIP")}, {0x6c4,WSTR("MSR_LASTBRANCH_4_TO_LIP")}, {0x6c5,WSTR("MSR_LASTBRANCH_5_TO_LIP")}, {0x6c6,WSTR("MSR_LASTBRANCH_6_TO_LIP")}, {0x6c7,WSTR("MSR_LASTBRANCH_7_TO_LIP")}, {0x6c8,WSTR("MSR_LASTBRANCH_8_TO_LIP")}, {0x6c9,WSTR("MSR_LASTBRANCH_9_TO_LIP")}, {0x6ca,WSTR("MSR_LASTBRANCH_10_TO_LIP")}, {0x6cb,WSTR("MSR_LASTBRANCH_11_TO_LIP")}, {0x6cc,WSTR("MSR_LASTBRANCH_12_TO_LIP")}, {0x6cd,WSTR("MSR_LASTBRANCH_13_TO_LIP")}, {0x6ce,WSTR("MSR_LASTBRANCH_14_TO_LIP")}, {0x6cf,WSTR("MSR_LASTBRANCH_15_TO_LIP")}, {0x107cc,WSTR("MSR_IFSB_BUSQ0")}, {0x107cd,WSTR("MSR_IFSB_BUSQ1")}, {0x107ce,WSTR("MSR_IFSB_SNPQ0")}, {0x107cf,WSTR("MSR_IFSB_SNPQ1")}, {0x107d0,WSTR("MSR_IFSB_DRDY0")}, {0x107d1,WSTR("MSR_IFSB_DRDY1")}, {0x107d2,WSTR("MSR_IFSB_CTL6")}, {0x107d3,WSTR("MSR_IFSB_CNTR7")}, {0xC0000080,WSTR("IA32_EFER")}, {0xC0000081,WSTR("IA32_STAR")}, {0xC0000082,WSTR("IA32_LSTAR")}, {0xC0000083,WSTR("IA32_CSTAR")}, {0xC0000084,WSTR("IA32_FMASK")}, {0xC0000100,WSTR("IA32_FS_BASE")}, {0xC0000101,WSTR("IA32_GS_BASE")}, {0xC0000102,WSTR("IA32_KERNEL_GS_BASE")}, {0xC0000103,WSTR("TSC_AUX")}, {0xC0000408,WSTR("MC4_MISC1")}, {0xC0000409,WSTR("MC4_MISC2")}, {0xC000040a,WSTR("MC4_MISC3")}, {0xC0010000,WSTR("PerfEvtSel0")}, {0xC0010001,WSTR("PerfEvtSel1")}, {0xC0010002,WSTR("PerfEvtSel2")}, {0xC0010003,WSTR("PerfEvtSel3")}, {0xC0010004,WSTR("PerfCtr0")}, {0xC0010005,WSTR("PerfCtr1")}, {0xC0010006,WSTR("PerfCtr2")}, {0xC0010007,WSTR("PerfCtr3")}, {0xC0010010,WSTR("SYSCFG")}, {0xC0010016,WSTR("IORRBase0")}, {0xC0010017,WSTR("IORRMask0")}, {0xC0010018,WSTR("IORRBase1")}, {0xC0010019,WSTR("IORRMask1")}, {0xC001001a,WSTR("TOP_MEM")}, {0xC001001d,WSTR("TOP_MEM2")}, {0xC0010030,WSTR("Processor_Name_String")}, {0xC0010031,WSTR("Processor_Name_String")}, {0xC0010032,WSTR("Processor_Name_String")}, {0xC0010033,WSTR("Processor_Name_String")}, {0xC0010034,WSTR("Processor_Name_String")}, {0xC0010035,WSTR("Processor_Name_String")}, {0xC0010061,WSTR("P-State Current Limit")}, {0xC0010062,WSTR("P-State Control")}, {0xC0010063,WSTR("P-State Status")}, {0xC0010074,WSTR("CPU_Watchdog_Timer")}, {0xC0010111,WSTR("SMBASE")}, {0xC0010112,WSTR("SMM_ADDR")}, {0xC0010113,WSTR("SMM_MASK")}, {0xC0010114,WSTR("VM_CR")}, {0xC0010115,WSTR("IGNNE")}, {0xC0010116,WSTR("SMM_CTL")}, {0xC0010117,WSTR("VM_HSAVE_PA")}, {0xC0010118,WSTR("SVM_KEY_MSR")}, {0xC0010119,WSTR("SMM_KEY_MSR")}, {0xC001011a,WSTR("Local_SMI_Status")}, {0xC0010056,WSTR("SMI_Trigger_IO_Cycle")}, {0xC0010140,WSTR("OSVW_ID_Length")}, {0xC0010141,WSTR("OSVM Status")}, }; WCHAR *GetMSRName(int dwIndex) { int j,i; j =sizeof(MsrName)/sizeof(MsrName[0]); for(i =0; i= 2) { if(TStrICmp(argv[1],WSTR("-w"))==0) { bWrite=true; if(argc==2 || argc==3) return 0; if(CALCEXP(argv[2],&dwBeginIndex)==FALSE) { OUTPUT(WSTR("Syser: Input error!\n")); return 0; } dwHighDword=0,dwLowDword=0; if(SyserReadMSR(dwBeginIndex,&dwHighDword,&dwLowDword)==false) return 0; if(argc==4) { if(CALCEXP(argv[3],&dwTmp)==true) { dwLowDword=dwTmp; SyserWriteMSR(dwBeginIndex,dwHighDword,dwLowDword); } return 0; } dwTmp2=dwTmp=0xffffffff; if(CALCEXP(argv[4],&dwTmp)==true) dwLowDword=dwTmp; if(CALCEXP(argv[3],&dwTmp2)==true) dwHighDword=dwTmp2; if(dwLowDword==dwTmp || dwHighDword==dwTmp2) { SyserWriteMSR(dwBeginIndex,dwHighDword,dwLowDword); } return 0; } dwCount=1; DWORD delt; dwBeginIndex=0; if(TStrICmp(argv[1],WSTR("-u"))==0) { delt=1; bUndocument=true; } else delt=0; if(argc==delt+2) { if(CALCEXP(argv[1+delt],&dwTmp2)==true) dwBeginIndex=dwTmp2; }else if(argc==delt+3) { if(CALCEXP(argv[1+delt],&dwTmp2)==true) dwBeginIndex=dwTmp2; if(CALCEXP(argv[2+delt],&dwTmp)==true) dwCount=dwTmp-dwBeginIndex; }else dwCount=0xffffffff; } if(dwCount==0xffffffff) { j =sizeof(MsrName)/sizeof(MsrName[0]); for(int i=0;ibus << 16) | (dev->devfn << 8) | (where & ~3)) int pci_conf1_read_config_byte( pci_dev *dev, int where, u8 *value) { outl(CONFIG_CMD(dev,where), 0xCF8); *value = inb(0xCFC + (where&3)); return 0; } int pci_conf1_read_config_word( pci_dev *dev, int where, u16 *value) { outl(CONFIG_CMD(dev,where), 0xCF8); *value = inw(0xCFC + (where&2)); return 0; } int pci_conf1_read_config_dword( pci_dev *dev, int where, u32 *value) { outl(CONFIG_CMD(dev,where), 0xCF8); *value = inl(0xCFC); return 0; } int pci_conf1_write_config_byte( pci_dev *dev, int where, u8 value) { outl(CONFIG_CMD(dev,where), 0xCF8); outb(value, 0xCFC + (where&3)); return 0; } int pci_conf1_write_config_word( pci_dev *dev, int where, u16 value) { outl(CONFIG_CMD(dev,where), 0xCF8); outw(value, 0xCFC + (where&2)); return 0; } int pci_conf1_write_config_dword( pci_dev *dev, int where, u32 value) { outl(CONFIG_CMD(dev,where), 0xCF8); outl(value, 0xCFC); return 0; } #undef CONFIG_CMD /* * Functions for accessing PCI configuration space with type 2 accesses */ #define IOADDR(devfn, where) ((0xC000 | ((devfn & 0x78) << 5)) + where) #define FUNC(devfn) (((devfn & 7) << 1) | 0xf0) #define SET(dev) if (dev->devfn & 0x80) return PCIBIOS_DEVICE_NOT_FOUND; \ outb((BYTE)FUNC(dev->devfn), 0xCF8); \ outb((BYTE)dev->bus, 0xCFA); int pci_conf2_read_config_byte( pci_dev *dev, int where, u8 *value) { SET(dev); *value = inb(IOADDR(dev->devfn,where)); outb (0, 0xCF8); return 0; } int pci_conf2_read_config_word( pci_dev *dev, int where, u16 *value) { SET(dev); *value = inw(IOADDR(dev->devfn,where)); outb (0, 0xCF8); return 0; } int pci_conf2_read_config_dword( pci_dev *dev, int where, u32 *value) { SET(dev); *value = inl (IOADDR(dev->devfn,where)); outb (0, 0xCF8); return 0; } int pci_conf2_write_config_byte( pci_dev *dev, int where, u8 value) { SET(dev); outb (value, IOADDR(dev->devfn,where)); outb (0, 0xCF8); return 0; } int pci_conf2_write_config_word( pci_dev *dev, int where, u16 value) { SET(dev); outw (value, IOADDR(dev->devfn,where)); outb (0, 0xCF8); return 0; } int pci_conf2_write_config_dword( pci_dev *dev, int where, u32 value) { SET(dev); outl (value, IOADDR(dev->devfn,where)); outb (0, 0xCF8); return 0; } #undef SET #undef IOADDR #undef FUNC /* * Before we decide to use direct hardware access mechanisms, we try to do some * trivial checks to ensure it at least _seems_ to be working -- we just test * whether bus 00 contains a host bridge (this is similar to checking * techniques used in XFree86, but ours should be more reliable since we * attempt to make use of direct access hints provided by the PCI BIOS). * * This should be close to trivial, but it isn't, because there are buggy * chipsets (yes, you guessed it, by Intel and Compaq) that have no class ID. */ int pci_sanity_check( pci_ops *ops) { u16 x; pci_dev dev; dev.bus = 0; for(dev.devfn=0; dev.devfn < 0x100; dev.devfn++) { if ((!ops->read_word(&dev, PCI_CLASS_DEVICE, &x) && (x == PCI_CLASS_BRIDGE_HOST || x == PCI_CLASS_DISPLAY_VGA)) || (!ops->read_word(&dev, PCI_VENDOR_ID, &x) && (x == PCI_VENDOR_ID_INTEL || x == PCI_VENDOR_ID_COMPAQ))) return 1; } return 0; } pci_ops * pci_init(void) { unsigned int tmp; ULONG_PTR Flags; SyserSaveFlags(&Flags); SyserCloseInterrupt(); /* * Check if configuration type 1 works. */ outb (0x01, 0xCFB); tmp = inl (0xCF8); outl (0x80000000, 0xCF8); if (inl (0xCF8) == 0x80000000 && pci_sanity_check(&pci_direct_conf1)) { outl (tmp, 0xCF8); SyserRestoreFlags(Flags); return &pci_direct_conf1; } outl (tmp, 0xCF8); /* * Check if configuration type 2 works. */ outb (0x00, 0xCFB); outb (0x00, 0xCF8); outb (0x00, 0xCFA); if (inb (0xCF8) == 0x00 && inb (0xCFA) == 0x00 && pci_sanity_check(&pci_direct_conf2)) { SyserRestoreFlags(Flags); return &pci_direct_conf2; } SyserRestoreFlags(Flags); return NULL; } #endif ================================================ FILE: Project/Syser/Source/pci.h ================================================ #ifndef LINUX_PCI_H #define LINUX_PCI_H /* * Under PCI, each device has 256 bytes of configuration address space, * of which the first 64 bytes are standardized as follows: */ #define PCI_VENDOR_ID 0x00 /* 16 bits */ #define PCI_DEVICE_ID 0x02 /* 16 bits */ #define PCI_COMMAND 0x04 /* 16 bits */ #define PCI_COMMAND_IO 0x1 /* Enable response in I/O space */ #define PCI_COMMAND_MEMORY 0x2 /* Enable response in Memory space */ #define PCI_COMMAND_MASTER 0x4 /* Enable bus mastering */ #define PCI_COMMAND_SPECIAL 0x8 /* Enable response to special cycles */ #define PCI_COMMAND_INVALIDATE 0x10 /* Use memory write and invalidate */ #define PCI_COMMAND_VGA_PALETTE 0x20 /* Enable palette snooping */ #define PCI_COMMAND_PARITY 0x40 /* Enable parity checking */ #define PCI_COMMAND_WAIT 0x80 /* Enable address/data stepping */ #define PCI_COMMAND_SERR 0x100 /* Enable SERR */ #define PCI_COMMAND_FAST_BACK 0x200 /* Enable back-to-back writes */ #define PCI_STATUS 0x06 /* 16 bits */ #define PCI_STATUS_CAP_LIST 0x10 /* Support Capability List */ #define PCI_STATUS_66MHZ 0x20 /* Support 66 Mhz PCI 2.1 bus */ #define PCI_STATUS_UDF 0x40 /* Support User Definable Features [obsolete] */ #define PCI_STATUS_FAST_BACK 0x80 /* Accept fast-back to back */ #define PCI_STATUS_PARITY 0x100 /* Detected parity error */ #define PCI_STATUS_DEVSEL_MASK 0x600 /* DEVSEL timing */ #define PCI_STATUS_DEVSEL_FAST 0x000 #define PCI_STATUS_DEVSEL_MEDIUM 0x200 #define PCI_STATUS_DEVSEL_SLOW 0x400 #define PCI_STATUS_SIG_TARGET_ABORT 0x800 /* Set on target abort */ #define PCI_STATUS_REC_TARGET_ABORT 0x1000 /* Master ack of " */ #define PCI_STATUS_REC_MASTER_ABORT 0x2000 /* Set on master abort */ #define PCI_STATUS_SIG_SYSTEM_ERROR 0x4000 /* Set when we drive SERR */ #define PCI_STATUS_DETECTED_PARITY 0x8000 /* Set on parity error */ #define PCI_CLASS_REVISION 0x08 /* High 24 bits are class, low 8 revision */ #define PCI_REVISION_ID 0x08 /* Revision ID */ #define PCI_CLASS_PROG 0x09 /* Reg. Level Programming Interface */ #define PCI_CLASS_DEVICE 0x0a /* Device class */ #define PCI_CACHE_LINE_SIZE 0x0c /* 8 bits */ #define PCI_LATENCY_TIMER 0x0d /* 8 bits */ #define PCI_HEADER_TYPE 0x0e /* 8 bits */ #define PCI_HEADER_TYPE_NORMAL 0 #define PCI_HEADER_TYPE_BRIDGE 1 #define PCI_HEADER_TYPE_CARDBUS 2 #define PCI_BIST 0x0f /* 8 bits */ #define PCI_BIST_CODE_MASK 0x0f /* Return result */ #define PCI_BIST_START 0x40 /* 1 to start BIST, 2 secs or less */ #define PCI_BIST_CAPABLE 0x80 /* 1 if BIST capable */ /* * Base addresses specify locations in memory or I/O space. * Decoded size can be determined by writing a value of * 0xffffffff to the register, and reading it back. Only * 1 bits are decoded. */ #define PCI_BASE_ADDRESS_0 0x10 /* 32 bits */ #define PCI_BASE_ADDRESS_1 0x14 /* 32 bits [htype 0,1 only] */ #define PCI_BASE_ADDRESS_2 0x18 /* 32 bits [htype 0 only] */ #define PCI_BASE_ADDRESS_3 0x1c /* 32 bits */ #define PCI_BASE_ADDRESS_4 0x20 /* 32 bits */ #define PCI_BASE_ADDRESS_5 0x24 /* 32 bits */ #define PCI_BASE_ADDRESS_SPACE 0x01 /* 0 = memory, 1 = I/O */ #define PCI_BASE_ADDRESS_SPACE_IO 0x01 #define PCI_BASE_ADDRESS_SPACE_MEMORY 0x00 #define PCI_BASE_ADDRESS_MEM_TYPE_MASK 0x06 #define PCI_BASE_ADDRESS_MEM_TYPE_32 0x00 /* 32 bit address */ #define PCI_BASE_ADDRESS_MEM_TYPE_1M 0x02 /* Below 1M [obsolete] */ #define PCI_BASE_ADDRESS_MEM_TYPE_64 0x04 /* 64 bit address */ #define PCI_BASE_ADDRESS_MEM_PREFETCH 0x08 /* prefetchable? */ #define PCI_BASE_ADDRESS_MEM_MASK (~0x0fUL) #define PCI_BASE_ADDRESS_IO_MASK (~0x03UL) /* bit 1 is reserved if address_space = 1 */ /* Header type 0 (normal devices) */ #define PCI_CARDBUS_CIS 0x28 #define PCI_SUBSYSTEM_VENDOR_ID 0x2c #define PCI_SUBSYSTEM_ID 0x2e #define PCI_ROM_ADDRESS 0x30 /* Bits 31..11 are address, 10..1 reserved */ #define PCI_ROM_ADDRESS_ENABLE 0x01 #define PCI_ROM_ADDRESS_MASK (~0x7ffUL) #define PCI_CAPABILITY_LIST 0x34 /* Offset of first capability list entry */ /* 0x35-0x3b are reserved */ #define PCI_INTERRUPT_LINE 0x3c /* 8 bits */ #define PCI_INTERRUPT_PIN 0x3d /* 8 bits */ #define PCI_MIN_GNT 0x3e /* 8 bits */ #define PCI_MAX_LAT 0x3f /* 8 bits */ /* Header type 1 (PCI-to-PCI bridges) */ #define PCI_PRIMARY_BUS 0x18 /* Primary bus number */ #define PCI_SECONDARY_BUS 0x19 /* Secondary bus number */ #define PCI_SUBORDINATE_BUS 0x1a /* Highest bus number behind the bridge */ #define PCI_SEC_LATENCY_TIMER 0x1b /* Latency timer for secondary interface */ #define PCI_IO_BASE 0x1c /* I/O range behind the bridge */ #define PCI_IO_LIMIT 0x1d #define PCI_IO_RANGE_TYPE_MASK 0x0f /* I/O bridging type */ #define PCI_IO_RANGE_TYPE_16 0x00 #define PCI_IO_RANGE_TYPE_32 0x01 #define PCI_IO_RANGE_MASK ~0x0f #define PCI_SEC_STATUS 0x1e /* Secondary status register, only bit 14 used */ #define PCI_MEMORY_BASE 0x20 /* Memory range behind */ #define PCI_MEMORY_LIMIT 0x22 #define PCI_MEMORY_RANGE_TYPE_MASK 0x0f #define PCI_MEMORY_RANGE_MASK ~0x0f #define PCI_PREF_MEMORY_BASE 0x24 /* Prefetchable memory range behind */ #define PCI_PREF_MEMORY_LIMIT 0x26 #define PCI_PREF_RANGE_TYPE_MASK 0x0f #define PCI_PREF_RANGE_TYPE_32 0x00 #define PCI_PREF_RANGE_TYPE_64 0x01 #define PCI_PREF_RANGE_MASK ~0x0f #define PCI_PREF_BASE_UPPER32 0x28 /* Upper half of prefetchable memory range */ #define PCI_PREF_LIMIT_UPPER32 0x2c #define PCI_IO_BASE_UPPER16 0x30 /* Upper half of I/O addresses */ #define PCI_IO_LIMIT_UPPER16 0x32 /* 0x34 same as for htype 0 */ /* 0x35-0x3b is reserved */ #define PCI_ROM_ADDRESS1 0x38 /* Same as PCI_ROM_ADDRESS, but for htype 1 */ /* 0x3c-0x3d are same as for htype 0 */ #define PCI_BRIDGE_CONTROL 0x3e #define PCI_BRIDGE_CTL_PARITY 0x01 /* Enable parity detection on secondary interface */ #define PCI_BRIDGE_CTL_SERR 0x02 /* The same for SERR forwarding */ #define PCI_BRIDGE_CTL_NO_ISA 0x04 /* Disable bridging of ISA ports */ #define PCI_BRIDGE_CTL_VGA 0x08 /* Forward VGA addresses */ #define PCI_BRIDGE_CTL_MASTER_ABORT 0x20 /* Report master aborts */ #define PCI_BRIDGE_CTL_BUS_RESET 0x40 /* Secondary bus reset */ #define PCI_BRIDGE_CTL_FAST_BACK 0x80 /* Fast Back2Back enabled on secondary interface */ /* Header type 2 (CardBus bridges) */ #define PCI_CB_CAPABILITY_LIST 0x14 /* 0x15 reserved */ #define PCI_CB_SEC_STATUS 0x16 /* Secondary status */ #define PCI_CB_PRIMARY_BUS 0x18 /* PCI bus number */ #define PCI_CB_CARD_BUS 0x19 /* CardBus bus number */ #define PCI_CB_SUBORDINATE_BUS 0x1a /* Subordinate bus number */ #define PCI_CB_LATENCY_TIMER 0x1b /* CardBus latency timer */ #define PCI_CB_MEMORY_BASE_0 0x1c #define PCI_CB_MEMORY_LIMIT_0 0x20 #define PCI_CB_MEMORY_BASE_1 0x24 #define PCI_CB_MEMORY_LIMIT_1 0x28 #define PCI_CB_IO_BASE_0 0x2c #define PCI_CB_IO_BASE_0_HI 0x2e #define PCI_CB_IO_LIMIT_0 0x30 #define PCI_CB_IO_LIMIT_0_HI 0x32 #define PCI_CB_IO_BASE_1 0x34 #define PCI_CB_IO_BASE_1_HI 0x36 #define PCI_CB_IO_LIMIT_1 0x38 #define PCI_CB_IO_LIMIT_1_HI 0x3a #define PCI_CB_IO_RANGE_MASK ~0x03 /* 0x3c-0x3d are same as for htype 0 */ #define PCI_CB_BRIDGE_CONTROL 0x3e #define PCI_CB_BRIDGE_CTL_PARITY 0x01 /* Similar to standard bridge control register */ #define PCI_CB_BRIDGE_CTL_SERR 0x02 #define PCI_CB_BRIDGE_CTL_ISA 0x04 #define PCI_CB_BRIDGE_CTL_VGA 0x08 #define PCI_CB_BRIDGE_CTL_MASTER_ABORT 0x20 #define PCI_CB_BRIDGE_CTL_CB_RESET 0x40 /* CardBus reset */ #define PCI_CB_BRIDGE_CTL_16BIT_INT 0x80 /* Enable interrupt for 16-bit cards */ #define PCI_CB_BRIDGE_CTL_PREFETCH_MEM0 0x100 /* Prefetch enable for both memory regions */ #define PCI_CB_BRIDGE_CTL_PREFETCH_MEM1 0x200 #define PCI_CB_BRIDGE_CTL_POST_WRITES 0x400 #define PCI_CB_SUBSYSTEM_VENDOR_ID 0x40 #define PCI_CB_SUBSYSTEM_ID 0x42 #define PCI_CB_LEGACY_MODE_BASE 0x44 /* 16-bit PC Card legacy mode base address (ExCa) */ /* 0x48-0x7f reserved */ /* Capability lists */ #define PCI_CAP_LIST_ID 0 /* Capability ID */ #define PCI_CAP_ID_PM 0x01 /* Power Management */ #define PCI_CAP_ID_AGP 0x02 /* Accelerated Graphics Port */ #define PCI_CAP_ID_VPD 0x03 /* Vital Product Data */ #define PCI_CAP_ID_SLOTID 0x04 /* Slot Identification */ #define PCI_CAP_ID_MSI 0x05 /* Message Signalled Interrupts */ #define PCI_CAP_ID_CHSWP 0x06 /* CompactPCI HotSwap */ #define PCI_CAP_LIST_NEXT 1 /* Next capability in the list */ #define PCI_CAP_FLAGS 2 /* Capability defined flags (16 bits) */ #define PCI_CAP_SIZEOF 4 /* Power Management Registers */ #define PCI_PM_PMC 2 /* PM Capabilities Register */ #define PCI_PM_CAP_VER_MASK 0x0007 /* Version */ #define PCI_PM_CAP_PME_CLOCK 0x0008 /* PME clock required */ #define PCI_PM_CAP_RESERVED 0x0010 /* Reserved field */ #define PCI_PM_CAP_DSI 0x0020 /* Device specific initialization */ #define PCI_PM_CAP_AUX_POWER 0x01C0 /* Auxilliary power support mask */ #define PCI_PM_CAP_D1 0x0200 /* D1 power state support */ #define PCI_PM_CAP_D2 0x0400 /* D2 power state support */ #define PCI_PM_CAP_PME 0x0800 /* PME pin supported */ #define PCI_PM_CAP_PME_MASK 0xF800 /* PME Mask of all supported states */ #define PCI_PM_CAP_PME_D0 0x0800 /* PME# from D0 */ #define PCI_PM_CAP_PME_D1 0x1000 /* PME# from D1 */ #define PCI_PM_CAP_PME_D2 0x2000 /* PME# from D2 */ #define PCI_PM_CAP_PME_D3 0x4000 /* PME# from D3 (hot) */ #define PCI_PM_CAP_PME_D3cold 0x8000 /* PME# from D3 (cold) */ #define PCI_PM_CTRL 4 /* PM control and status register */ #define PCI_PM_CTRL_STATE_MASK 0x0003 /* Current power state (D0 to D3) */ #define PCI_PM_CTRL_PME_ENABLE 0x0100 /* PME pin enable */ #define PCI_PM_CTRL_DATA_SEL_MASK 0x1e00 /* Data select (??) */ #define PCI_PM_CTRL_DATA_SCALE_MASK 0x6000 /* Data scale (??) */ #define PCI_PM_CTRL_PME_STATUS 0x8000 /* PME pin status */ #define PCI_PM_PPB_EXTENSIONS 6 /* PPB support extensions (??) */ #define PCI_PM_PPB_B2_B3 0x40 /* Stop clock when in D3hot (??) */ #define PCI_PM_BPCC_ENABLE 0x80 /* Bus power/clock control enable (??) */ #define PCI_PM_DATA_REGISTER 7 /* (??) */ #define PCI_PM_SIZEOF 8 /* AGP registers */ #define PCI_AGP_VERSION 2 /* BCD version number */ #define PCI_AGP_RFU 3 /* Rest of capability flags */ #define PCI_AGP_STATUS 4 /* Status register */ #define PCI_AGP_STATUS_RQ_MASK 0xff000000 /* Maximum number of requests - 1 */ #define PCI_AGP_STATUS_SBA 0x0200 /* Sideband addressing supported */ #define PCI_AGP_STATUS_64BIT 0x0020 /* 64-bit addressing supported */ #define PCI_AGP_STATUS_FW 0x0010 /* FW transfers supported */ #define PCI_AGP_STATUS_RATE4 0x0004 /* 4x transfer rate supported */ #define PCI_AGP_STATUS_RATE2 0x0002 /* 2x transfer rate supported */ #define PCI_AGP_STATUS_RATE1 0x0001 /* 1x transfer rate supported */ #define PCI_AGP_COMMAND 8 /* Control register */ #define PCI_AGP_COMMAND_RQ_MASK 0xff000000 /* Master: Maximum number of requests */ #define PCI_AGP_COMMAND_SBA 0x0200 /* Sideband addressing enabled */ #define PCI_AGP_COMMAND_AGP 0x0100 /* Allow processing of AGP transactions */ #define PCI_AGP_COMMAND_64BIT 0x0020 /* Allow processing of 64-bit addresses */ #define PCI_AGP_COMMAND_FW 0x0010 /* Force FW transfers */ #define PCI_AGP_COMMAND_RATE4 0x0004 /* Use 4x rate */ #define PCI_AGP_COMMAND_RATE2 0x0002 /* Use 4x rate */ #define PCI_AGP_COMMAND_RATE1 0x0001 /* Use 4x rate */ #define PCI_AGP_SIZEOF 12 /* Slot Identification */ #define PCI_SID_ESR 2 /* Expansion Slot Register */ #define PCI_SID_ESR_NSLOTS 0x1f /* Number of expansion slots available */ #define PCI_SID_ESR_FIC 0x20 /* First In Chassis Flag */ #define PCI_SID_CHASSIS_NR 3 /* Chassis Number */ /* Message Signalled Interrupts registers */ #define PCI_MSI_FLAGS 2 /* Various flags */ #define PCI_MSI_FLAGS_64BIT 0x80 /* 64-bit addresses allowed */ #define PCI_MSI_FLAGS_QSIZE 0x70 /* Message queue size configured */ #define PCI_MSI_FLAGS_QMASK 0x0e /* Maximum queue size available */ #define PCI_MSI_FLAGS_ENABLE 0x01 /* MSI feature enabled */ #define PCI_MSI_RFU 3 /* Rest of capability flags */ #define PCI_MSI_ADDRESS_LO 4 /* Lower 32 bits */ #define PCI_MSI_ADDRESS_HI 8 /* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */ #define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit devices */ #define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit devices */ /* Include the ID list */ #include "pci_ids.h" /* * The PCI interface treats multi-function devices as independent * devices. The slot/function address of each device is encoded * in a single byte as follows: * * 7:3 = slot * 2:0 = function */ #define PCI_DEVFN(slot,func) ((((slot) & 0x1f) << 3) | ((func) & 0x07)) #define PCI_SLOT(devfn) (((devfn) >> 3) & 0x1f) #define PCI_FUNC(devfn) ((devfn) & 0x07) /* Ioctls for /proc/bus/pci/X/Y nodes. */ #define PCIIOC_BASE ('P' << 24 | 'C' << 16 | 'I' << 8) #define PCIIOC_CONTROLLER (PCIIOC_BASE | 0x00) /* Get controller for PCI device. */ #define PCIIOC_MMAP_IS_IO (PCIIOC_BASE | 0x01) /* Set mmap state to I/O space. */ #define PCIIOC_MMAP_IS_MEM (PCIIOC_BASE | 0x02) /* Set mmap state to MEM space. */ #define PCIIOC_WRITE_COMBINE (PCIIOC_BASE | 0x03) /* Enable/disable write-combining. */ /* This defines the direction arg to the DMA mapping routines. */ #define PCI_DMA_BIDIRECTIONAL 0 #define PCI_DMA_TODEVICE 1 #define PCI_DMA_FROMDEVICE 2 #define PCI_DMA_NONE 3 #define DEVICE_COUNT_COMPATIBLE 4 #define DEVICE_COUNT_IRQ 2 #define DEVICE_COUNT_DMA 2 #define DEVICE_COUNT_RESOURCE 12 #define PCI_ANY_ID (~0) /* * The pci_dev structure is used to describe both PCI and ISAPnP devices. */ /* * For PCI devices, the region numbers are assigned this way: * * 0-5 standard PCI regions * 6 expansion ROM * 7-10 bridges: address space assigned to buses behind the bridge */ #define PCI_ROM_RESOURCE 6 #define PCI_BRIDGE_RESOURCES 7 #define PCI_NUM_RESOURCES 11 #define PCI_REGION_FLAG_MASK 0x0f /* These bits of resource flags tell us the PCI region flags */ /* * Error values that may be returned by PCI functions. */ #define PCIBIOS_SUCCESSFUL 0x00 #define PCIBIOS_FUNC_NOT_SUPPORTED 0x81 #define PCIBIOS_BAD_VENDOR_ID 0x83 #define PCIBIOS_DEVICE_NOT_FOUND 0x86 #define PCIBIOS_BAD_REGISTER_NUMBER 0x87 #define PCIBIOS_SET_FAILED 0x88 #define PCIBIOS_BUFFER_TOO_SMALL 0x89 #define PCI_FIXUP_HEADER 1 /* Called immediately after reading configuration header */ #define PCI_FIXUP_FINAL 2 /* Final phase of device fixups */ #define PCIPCI_FAIL 1 #define PCIPCI_TRITON 2 #define PCIPCI_NATOMA 4 #define PCIPCI_VIAETBF 8 typedef struct _PCI_CONFIG_COMMON { WORD VendorID; WORD DeviceID; WORD Command; WORD Status; BYTE RevisionID; BYTE ProgIf; BYTE SubClass; BYTE BaseClass; BYTE CacheLineSize; BYTE LatencyTimer; BYTE HeaderType; BYTE BIST; union { struct _PCI_HEADER_TYPE_0 { DWORD BaseAddresses[6]; DWORD Reserved1[2]; DWORD ROMBaseAddress; DWORD Reserved2[2]; BYTE InterruptLine; BYTE InterruptPin; BYTE MinimumGrant; BYTE MaximumLatency; } type0; struct _PCI_HEADER_TYPE_1 { DWORD BaseAddresses0; DWORD BaseAddresses1; BYTE PrimaryBus; BYTE SecondBus; BYTE SubBuf; BYTE SecondLatencyTimer; BYTE IOBase; BYTE IOLimit; WORD SecondStatus; WORD MemoryBase; WORD MemoryLimit; WORD PrefetchMemoryBase; WORD PrefetchMemoryLimit; DWORD Upper32Base; DWORD Upper32Limit; WORD Upper16IOBase; WORD Upper16IOLimit; BYTE CapabilityPtr; BYTE Reserved[3]; DWORD ROMBaseAddress; BYTE InterruptLine; BYTE InterruptPin; WORD BridgeControl; } type1; } u; BYTE DeviceSpecific[192]; } PCI_CONFIG_COMMON, *PPCI_CONFIG_COMMON; #endif /* LINUX_PCI_H */ ================================================ FILE: Project/Syser/Source/pci_ids.h ================================================ /* Device classes and subclasses */ #undef PCI_CLASS_NOT_DEFINED #define PCI_CLASS_NOT_DEFINED 0x0000 #define PCI_CLASS_NOT_DEFINED_VGA 0x0001 #define PCI_BASE_CLASS_STORAGE 0x01 #define PCI_CLASS_STORAGE_SCSI 0x0100 #define PCI_CLASS_STORAGE_IDE 0x0101 #define PCI_CLASS_STORAGE_FLOPPY 0x0102 #define PCI_CLASS_STORAGE_IPI 0x0103 #define PCI_CLASS_STORAGE_RAID 0x0104 #define PCI_CLASS_STORAGE_OTHER 0x0180 #define PCI_BASE_CLASS_NETWORK 0x02 #define PCI_CLASS_NETWORK_ETHERNET 0x0200 #define PCI_CLASS_NETWORK_TOKEN_RING 0x0201 #define PCI_CLASS_NETWORK_FDDI 0x0202 #define PCI_CLASS_NETWORK_ATM 0x0203 #define PCI_CLASS_NETWORK_OTHER 0x0280 #define PCI_BASE_CLASS_DISPLAY 0x03 #define PCI_CLASS_DISPLAY_VGA 0x0300 #define PCI_CLASS_DISPLAY_XGA 0x0301 #define PCI_CLASS_DISPLAY_3D 0x0302 #define PCI_CLASS_DISPLAY_OTHER 0x0380 #define PCI_BASE_CLASS_MULTIMEDIA 0x04 #define PCI_CLASS_MULTIMEDIA_VIDEO 0x0400 #define PCI_CLASS_MULTIMEDIA_AUDIO 0x0401 #define PCI_CLASS_MULTIMEDIA_PHONE 0x0402 #define PCI_CLASS_MULTIMEDIA_OTHER 0x0480 #define PCI_BASE_CLASS_MEMORY 0x05 #define PCI_CLASS_MEMORY_RAM 0x0500 #define PCI_CLASS_MEMORY_FLASH 0x0501 #define PCI_CLASS_MEMORY_OTHER 0x0580 #define PCI_BASE_CLASS_BRIDGE 0x06 #define PCI_CLASS_BRIDGE_HOST 0x0600 #define PCI_CLASS_BRIDGE_ISA 0x0601 #define PCI_CLASS_BRIDGE_EISA 0x0602 #define PCI_CLASS_BRIDGE_MC 0x0603 #define PCI_CLASS_BRIDGE_PCI 0x0604 #define PCI_CLASS_BRIDGE_PCMCIA 0x0605 #define PCI_CLASS_BRIDGE_NUBUS 0x0606 #define PCI_CLASS_BRIDGE_CARDBUS 0x0607 #define PCI_CLASS_BRIDGE_RACEWAY 0x0608 #define PCI_CLASS_BRIDGE_OTHER 0x0680 #define PCI_BASE_CLASS_COMMUNICATION 0x07 #define PCI_CLASS_COMMUNICATION_SERIAL 0x0700 #define PCI_CLASS_COMMUNICATION_PARALLEL 0x0701 #define PCI_CLASS_COMMUNICATION_MULTISERIAL 0x0702 #define PCI_CLASS_COMMUNICATION_MODEM 0x0703 #define PCI_CLASS_COMMUNICATION_OTHER 0x0780 #define PCI_BASE_CLASS_SYSTEM 0x08 #define PCI_CLASS_SYSTEM_PIC 0x0800 #define PCI_CLASS_SYSTEM_DMA 0x0801 #define PCI_CLASS_SYSTEM_TIMER 0x0802 #define PCI_CLASS_SYSTEM_RTC 0x0803 #define PCI_CLASS_SYSTEM_PCI_HOTPLUG 0x0804 #define PCI_CLASS_SYSTEM_OTHER 0x0880 #define PCI_BASE_CLASS_INPUT 0x09 #define PCI_CLASS_INPUT_KEYBOARD 0x0900 #define PCI_CLASS_INPUT_PEN 0x0901 #define PCI_CLASS_INPUT_MOUSE 0x0902 #define PCI_CLASS_INPUT_SCANNER 0x0903 #define PCI_CLASS_INPUT_GAMEPORT 0x0904 #define PCI_CLASS_INPUT_OTHER 0x0980 #define PCI_BASE_CLASS_DOCKING 0x0a #define PCI_CLASS_DOCKING_GENERIC 0x0a00 #define PCI_CLASS_DOCKING_OTHER 0x0a80 #define PCI_BASE_CLASS_PROCESSOR 0x0b #define PCI_CLASS_PROCESSOR_386 0x0b00 #define PCI_CLASS_PROCESSOR_486 0x0b01 #define PCI_CLASS_PROCESSOR_PENTIUM 0x0b02 #define PCI_CLASS_PROCESSOR_ALPHA 0x0b10 #define PCI_CLASS_PROCESSOR_POWERPC 0x0b20 #define PCI_CLASS_PROCESSOR_MIPS 0x0b30 #define PCI_CLASS_PROCESSOR_CO 0x0b40 #define PCI_BASE_CLASS_SERIAL 0x0c #define PCI_CLASS_SERIAL_FIREWIRE 0x0c00 #define PCI_CLASS_SERIAL_ACCESS 0x0c01 #define PCI_CLASS_SERIAL_SSA 0x0c02 #define PCI_CLASS_SERIAL_USB 0x0c03 #define PCI_CLASS_SERIAL_FIBER 0x0c04 #define PCI_CLASS_SERIAL_SMBUS 0x0c05 #define PCI_BASE_CLASS_INTELLIGENT 0x0e #define PCI_CLASS_INTELLIGENT_I2O 0x0e00 #define PCI_BASE_CLASS_SATELLITE 0x0f #define PCI_CLASS_SATELLITE_TV 0x0f00 #define PCI_CLASS_SATELLITE_AUDIO 0x0f01 #define PCI_CLASS_SATELLITE_VOICE 0x0f03 #define PCI_CLASS_SATELLITE_DATA 0x0f04 #define PCI_BASE_CLASS_CRYPT 0x10 #define PCI_CLASS_CRYPT_NETWORK 0x1000 #define PCI_CLASS_CRYPT_ENTERTAINMENT 0x1001 #define PCI_CLASS_CRYPT_OTHER 0x1080 #define PCI_BASE_CLASS_SIGNAL_PROCESSING 0x11 #define PCI_CLASS_SP_DPIO 0x1100 #define PCI_CLASS_SP_OTHER 0x1180 #define PCI_CLASS_OTHERS 0xff /* Vendors and devices. Sort key: vendor first, device next. */ #define PCI_VENDOR_ID_DYNALINK 0x0675 #define PCI_DEVICE_ID_DYNALINK_IS64PH 0x1702 #define PCI_VENDOR_ID_BERKOM 0x0871 #define PCI_DEVICE_ID_BERKOM_A1T 0xffa1 #define PCI_DEVICE_ID_BERKOM_T_CONCEPT 0xffa2 #define PCI_DEVICE_ID_BERKOM_A4T 0xffa4 #define PCI_DEVICE_ID_BERKOM_SCITEL_QUADRO 0xffa8 #define PCI_VENDOR_ID_COMPAQ 0x0e11 #define PCI_DEVICE_ID_COMPAQ_TOKENRING 0x0508 #define PCI_DEVICE_ID_COMPAQ_1280 0x3033 #define PCI_DEVICE_ID_COMPAQ_TRIFLEX 0x4000 #define PCI_DEVICE_ID_COMPAQ_6010 0x6010 #define PCI_DEVICE_ID_COMPAQ_SMART2P 0xae10 #define PCI_DEVICE_ID_COMPAQ_NETEL100 0xae32 #define PCI_DEVICE_ID_COMPAQ_NETEL10 0xae34 #define PCI_DEVICE_ID_COMPAQ_NETFLEX3I 0xae35 #define PCI_DEVICE_ID_COMPAQ_NETEL100D 0xae40 #define PCI_DEVICE_ID_COMPAQ_NETEL100PI 0xae43 #define PCI_DEVICE_ID_COMPAQ_NETEL100I 0xb011 #define PCI_DEVICE_ID_COMPAQ_CISS 0xb060 #define PCI_DEVICE_ID_COMPAQ_CISSB 0xb178 #define PCI_DEVICE_ID_COMPAQ_THUNDER 0xf130 #define PCI_DEVICE_ID_COMPAQ_NETFLEX3B 0xf150 #define PCI_VENDOR_ID_NCR 0x1000 #define PCI_DEVICE_ID_NCR_53C810 0x0001 #define PCI_DEVICE_ID_NCR_53C820 0x0002 #define PCI_DEVICE_ID_NCR_53C825 0x0003 #define PCI_DEVICE_ID_NCR_53C815 0x0004 #define PCI_DEVICE_ID_NCR_53C860 0x0006 #define PCI_DEVICE_ID_NCR_53C896 0x000b #define PCI_DEVICE_ID_NCR_53C895 0x000c #define PCI_DEVICE_ID_NCR_53C885 0x000d #define PCI_DEVICE_ID_NCR_53C875 0x000f #define PCI_DEVICE_ID_NCR_53C1510 0x0010 #define PCI_DEVICE_ID_NCR_53C875J 0x008f #define PCI_DEVICE_ID_NCR_YELLOWFIN 0x0701 #define PCI_VENDOR_ID_ATI 0x1002 /* Mach64 */ #define PCI_DEVICE_ID_ATI_68800 0x4158 #define PCI_DEVICE_ID_ATI_215CT222 0x4354 #define PCI_DEVICE_ID_ATI_210888CX 0x4358 #define PCI_DEVICE_ID_ATI_215ET222 0x4554 /* Mach64 / Rage */ #define PCI_DEVICE_ID_ATI_215GB 0x4742 #define PCI_DEVICE_ID_ATI_215GD 0x4744 #define PCI_DEVICE_ID_ATI_215GI 0x4749 #define PCI_DEVICE_ID_ATI_215GP 0x4750 #define PCI_DEVICE_ID_ATI_215GQ 0x4751 #define PCI_DEVICE_ID_ATI_215XL 0x4752 #define PCI_DEVICE_ID_ATI_215GT 0x4754 #define PCI_DEVICE_ID_ATI_215GTB 0x4755 #define PCI_DEVICE_ID_ATI_215_IV 0x4756 #define PCI_DEVICE_ID_ATI_215_IW 0x4757 #define PCI_DEVICE_ID_ATI_215_IZ 0x475A #define PCI_DEVICE_ID_ATI_210888GX 0x4758 #define PCI_DEVICE_ID_ATI_215_LB 0x4c42 #define PCI_DEVICE_ID_ATI_215_LD 0x4c44 #define PCI_DEVICE_ID_ATI_215_LG 0x4c47 #define PCI_DEVICE_ID_ATI_215_LI 0x4c49 #define PCI_DEVICE_ID_ATI_215_LM 0x4c4D #define PCI_DEVICE_ID_ATI_215_LN 0x4c4E #define PCI_DEVICE_ID_ATI_215_LR 0x4c52 #define PCI_DEVICE_ID_ATI_215_LS 0x4c53 #define PCI_DEVICE_ID_ATI_264_LT 0x4c54 /* Mach64 VT */ #define PCI_DEVICE_ID_ATI_264VT 0x5654 #define PCI_DEVICE_ID_ATI_264VU 0x5655 #define PCI_DEVICE_ID_ATI_264VV 0x5656 /* Rage128 Pro GL */ #define PCI_DEVICE_ID_ATI_Rage128_PA 0x5041 #define PCI_DEVICE_ID_ATI_Rage128_PB 0x5042 #define PCI_DEVICE_ID_ATI_Rage128_PC 0x5043 #define PCI_DEVICE_ID_ATI_Rage128_PD 0x5044 #define PCI_DEVICE_ID_ATI_Rage128_PE 0x5045 #define PCI_DEVICE_ID_ATI_RAGE128_PF 0x5046 /* Rage128 Pro VR */ #define PCI_DEVICE_ID_ATI_RAGE128_PG 0x5047 #define PCI_DEVICE_ID_ATI_RAGE128_PH 0x5048 #define PCI_DEVICE_ID_ATI_RAGE128_PI 0x5049 #define PCI_DEVICE_ID_ATI_RAGE128_PJ 0x504A #define PCI_DEVICE_ID_ATI_RAGE128_PK 0x504B #define PCI_DEVICE_ID_ATI_RAGE128_PL 0x504C #define PCI_DEVICE_ID_ATI_RAGE128_PM 0x504D #define PCI_DEVICE_ID_ATI_RAGE128_PN 0x504E #define PCI_DEVICE_ID_ATI_RAGE128_PO 0x504F #define PCI_DEVICE_ID_ATI_RAGE128_PP 0x5050 #define PCI_DEVICE_ID_ATI_RAGE128_PQ 0x5051 #define PCI_DEVICE_ID_ATI_RAGE128_PR 0x5052 #define PCI_DEVICE_ID_ATI_RAGE128_TR 0x5452 #define PCI_DEVICE_ID_ATI_RAGE128_PS 0x5053 #define PCI_DEVICE_ID_ATI_RAGE128_PT 0x5054 #define PCI_DEVICE_ID_ATI_RAGE128_PU 0x5055 #define PCI_DEVICE_ID_ATI_RAGE128_PV 0x5056 #define PCI_DEVICE_ID_ATI_RAGE128_PW 0x5057 #define PCI_DEVICE_ID_ATI_RAGE128_PX 0x5058 /* Rage128 GL */ #define PCI_DEVICE_ID_ATI_RAGE128_RE 0x5245 #define PCI_DEVICE_ID_ATI_RAGE128_RF 0x5246 #define PCI_DEVICE_ID_ATI_RAGE128_RG 0x534b #define PCI_DEVICE_ID_ATI_RAGE128_RH 0x534c #define PCI_DEVICE_ID_ATI_RAGE128_RI 0x534d /* Rage128 VR */ #define PCI_DEVICE_ID_ATI_RAGE128_RK 0x524b #define PCI_DEVICE_ID_ATI_RAGE128_RL 0x524c #define PCI_DEVICE_ID_ATI_RAGE128_RM 0x5345 #define PCI_DEVICE_ID_ATI_RAGE128_RN 0x5346 #define PCI_DEVICE_ID_ATI_RAGE128_RO 0x5347 /* Rage128 M3 */ #define PCI_DEVICE_ID_ATI_RAGE128_LE 0x4c45 #define PCI_DEVICE_ID_ATI_RAGE128_LF 0x4c46 /* Rage128 Pro Ultra */ #define PCI_DEVICE_ID_ATI_RAGE128_U1 0x5446 #define PCI_DEVICE_ID_ATI_RAGE128_U2 0x544C #define PCI_DEVICE_ID_ATI_RAGE128_U3 0x5452 /* Radeon M4 */ #define PCI_DEVICE_ID_ATI_RADEON_LE 0x4d45 #define PCI_DEVICE_ID_ATI_RADEON_LF 0x4d46 /* Radeon NV-100 */ #define PCI_DEVICE_ID_ATI_RADEON_N1 0x5159 #define PCI_DEVICE_ID_ATI_RADEON_N2 0x515a /* Radeon */ #define PCI_DEVICE_ID_ATI_RADEON_RA 0x5144 #define PCI_DEVICE_ID_ATI_RADEON_RB 0x5145 #define PCI_DEVICE_ID_ATI_RADEON_RC 0x5146 #define PCI_DEVICE_ID_ATI_RADEON_RD 0x5147 #define PCI_VENDOR_ID_VLSI 0x1004 #define PCI_DEVICE_ID_VLSI_82C592 0x0005 #define PCI_DEVICE_ID_VLSI_82C593 0x0006 #define PCI_DEVICE_ID_VLSI_82C594 0x0007 #define PCI_DEVICE_ID_VLSI_82C597 0x0009 #define PCI_DEVICE_ID_VLSI_82C541 0x000c #define PCI_DEVICE_ID_VLSI_82C543 0x000d #define PCI_DEVICE_ID_VLSI_82C532 0x0101 #define PCI_DEVICE_ID_VLSI_82C534 0x0102 #define PCI_DEVICE_ID_VLSI_82C535 0x0104 #define PCI_DEVICE_ID_VLSI_82C147 0x0105 #define PCI_DEVICE_ID_VLSI_VAS96011 0x0702 #define PCI_VENDOR_ID_ADL 0x1005 #define PCI_DEVICE_ID_ADL_2301 0x2301 #define PCI_VENDOR_ID_NS 0x100b #define PCI_DEVICE_ID_NS_87415 0x0002 #define PCI_DEVICE_ID_NS_87560_LIO 0x000e #define PCI_DEVICE_ID_NS_87560_USB 0x0012 #define PCI_DEVICE_ID_NS_87410 0xd001 #define PCI_VENDOR_ID_TSENG 0x100c #define PCI_DEVICE_ID_TSENG_W32P_2 0x3202 #define PCI_DEVICE_ID_TSENG_W32P_b 0x3205 #define PCI_DEVICE_ID_TSENG_W32P_c 0x3206 #define PCI_DEVICE_ID_TSENG_W32P_d 0x3207 #define PCI_DEVICE_ID_TSENG_ET6000 0x3208 #define PCI_VENDOR_ID_WEITEK 0x100e #define PCI_DEVICE_ID_WEITEK_P9000 0x9001 #define PCI_DEVICE_ID_WEITEK_P9100 0x9100 #define PCI_VENDOR_ID_DEC 0x1011 #define PCI_DEVICE_ID_DEC_BRD 0x0001 #define PCI_DEVICE_ID_DEC_TULIP 0x0002 #define PCI_DEVICE_ID_DEC_TGA 0x0004 #define PCI_DEVICE_ID_DEC_TULIP_FAST 0x0009 #define PCI_DEVICE_ID_DEC_TGA2 0x000D #define PCI_DEVICE_ID_DEC_FDDI 0x000F #define PCI_DEVICE_ID_DEC_TULIP_PLUS 0x0014 #define PCI_DEVICE_ID_DEC_21142 0x0019 #define PCI_DEVICE_ID_DEC_21052 0x0021 #define PCI_DEVICE_ID_DEC_21150 0x0022 #define PCI_DEVICE_ID_DEC_21152 0x0024 #define PCI_DEVICE_ID_DEC_21153 0x0025 #define PCI_DEVICE_ID_DEC_21154 0x0026 #define PCI_DEVICE_ID_DEC_21285 0x1065 #define PCI_DEVICE_ID_COMPAQ_42XX 0x0046 #define PCI_VENDOR_ID_CIRRUS 0x1013 #define PCI_DEVICE_ID_CIRRUS_7548 0x0038 #define PCI_DEVICE_ID_CIRRUS_5430 0x00a0 #define PCI_DEVICE_ID_CIRRUS_5434_4 0x00a4 #define PCI_DEVICE_ID_CIRRUS_5434_8 0x00a8 #define PCI_DEVICE_ID_CIRRUS_5436 0x00ac #define PCI_DEVICE_ID_CIRRUS_5446 0x00b8 #define PCI_DEVICE_ID_CIRRUS_5480 0x00bc #define PCI_DEVICE_ID_CIRRUS_5462 0x00d0 #define PCI_DEVICE_ID_CIRRUS_5464 0x00d4 #define PCI_DEVICE_ID_CIRRUS_5465 0x00d6 #define PCI_DEVICE_ID_CIRRUS_6729 0x1100 #define PCI_DEVICE_ID_CIRRUS_6832 0x1110 #define PCI_DEVICE_ID_CIRRUS_7542 0x1200 #define PCI_DEVICE_ID_CIRRUS_7543 0x1202 #define PCI_DEVICE_ID_CIRRUS_7541 0x1204 #define PCI_VENDOR_ID_IBM 0x1014 #define PCI_DEVICE_ID_IBM_FIRE_CORAL 0x000a #define PCI_DEVICE_ID_IBM_TR 0x0018 #define PCI_DEVICE_ID_IBM_82G2675 0x001d #define PCI_DEVICE_ID_IBM_MCA 0x0020 #define PCI_DEVICE_ID_IBM_82351 0x0022 #define PCI_DEVICE_ID_IBM_PYTHON 0x002d #define PCI_DEVICE_ID_IBM_SERVERAID 0x002e #define PCI_DEVICE_ID_IBM_TR_WAKE 0x003e #define PCI_DEVICE_ID_IBM_MPIC 0x0046 #define PCI_DEVICE_ID_IBM_3780IDSP 0x007d #define PCI_DEVICE_ID_IBM_CHUKAR 0x0096 #define PCI_DEVICE_ID_IBM_405GP 0x0156 #define PCI_DEVICE_ID_IBM_MPIC_2 0xffff #define PCI_VENDOR_ID_COMPEX2 0x101a // pci.ids says "AT&T GIS (NCR)" #define PCI_DEVICE_ID_COMPEX2_100VG 0x0005 #define PCI_VENDOR_ID_WD 0x101c #define PCI_DEVICE_ID_WD_7197 0x3296 #define PCI_VENDOR_ID_AMI 0x101e #define PCI_DEVICE_ID_AMI_MEGARAID3 0x1960 #define PCI_DEVICE_ID_AMI_MEGARAID 0x9010 #define PCI_DEVICE_ID_AMI_MEGARAID2 0x9060 #define PCI_VENDOR_ID_AMD 0x1022 #define PCI_DEVICE_ID_AMD_LANCE 0x2000 #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 #define PCI_DEVICE_ID_AMD_SCSI 0x2020 #define PCI_DEVICE_ID_AMD_FE_GATE_7006 0x7006 #define PCI_DEVICE_ID_AMD_FE_GATE_7007 0x7007 #define PCI_DEVICE_ID_AMD_FE_GATE_700C 0x700C #define PCI_DEVIDE_ID_AMD_FE_GATE_700D 0x700D #define PCI_DEVICE_ID_AMD_FE_GATE_700E 0x700E #define PCI_DEVICE_ID_AMD_FE_GATE_700F 0x700F #define PCI_DEVICE_ID_AMD_COBRA_7400 0x7400 #define PCI_DEVICE_ID_AMD_COBRA_7401 0x7401 #define PCI_DEVICE_ID_AMD_COBRA_7403 0x7403 #define PCI_DEVICE_ID_AMD_COBRA_7404 0x7404 #define PCI_DEVICE_ID_AMD_VIPER_7408 0x7408 #define PCI_DEVICE_ID_AMD_VIPER_7409 0x7409 #define PCI_DEVICE_ID_AMD_VIPER_740B 0x740B #define PCI_DEVICE_ID_AMD_VIPER_740C 0x740C #define PCI_DEVICE_ID_AMD_VIPER_7410 0x7410 #define PCI_DEVICE_ID_AMD_VIPER_7411 0x7411 #define PCI_DEVICE_ID_AMD_VIPER_7413 0x7413 #define PCI_DEVICE_ID_AMD_VIPER_7414 0x7414 #define PCI_VENDOR_ID_TRIDENT 0x1023 #define PCI_DEVICE_ID_TRIDENT_4DWAVE_DX 0x2000 #define PCI_DEVICE_ID_TRIDENT_4DWAVE_NX 0x2001 #define PCI_DEVICE_ID_TRIDENT_9320 0x9320 #define PCI_DEVICE_ID_TRIDENT_9388 0x9388 #define PCI_DEVICE_ID_TRIDENT_9397 0x9397 #define PCI_DEVICE_ID_TRIDENT_939A 0x939A #define PCI_DEVICE_ID_TRIDENT_9520 0x9520 #define PCI_DEVICE_ID_TRIDENT_9525 0x9525 #define PCI_DEVICE_ID_TRIDENT_9420 0x9420 #define PCI_DEVICE_ID_TRIDENT_9440 0x9440 #define PCI_DEVICE_ID_TRIDENT_9660 0x9660 #define PCI_DEVICE_ID_TRIDENT_9750 0x9750 #define PCI_DEVICE_ID_TRIDENT_9850 0x9850 #define PCI_DEVICE_ID_TRIDENT_9880 0x9880 #define PCI_DEVICE_ID_TRIDENT_8400 0x8400 #define PCI_DEVICE_ID_TRIDENT_8420 0x8420 #define PCI_DEVICE_ID_TRIDENT_8500 0x8500 #define PCI_VENDOR_ID_AI 0x1025 #define PCI_DEVICE_ID_AI_M1435 0x1435 #define PCI_VENDOR_ID_DELL 0x1028 #define PCI_VENDOR_ID_MATROX 0x102B #define PCI_DEVICE_ID_MATROX_MGA_2 0x0518 #define PCI_DEVICE_ID_MATROX_MIL 0x0519 #define PCI_DEVICE_ID_MATROX_MYS 0x051A #define PCI_DEVICE_ID_MATROX_MIL_2 0x051b #define PCI_DEVICE_ID_MATROX_MIL_2_AGP 0x051f #define PCI_DEVICE_ID_MATROX_MGA_IMP 0x0d10 #define PCI_DEVICE_ID_MATROX_G100_MM 0x1000 #define PCI_DEVICE_ID_MATROX_G100_AGP 0x1001 #define PCI_DEVICE_ID_MATROX_G200_PCI 0x0520 #define PCI_DEVICE_ID_MATROX_G200_AGP 0x0521 #define PCI_DEVICE_ID_MATROX_G400 0x0525 #define PCI_DEVICE_ID_MATROX_VIA 0x4536 #define PCI_VENDOR_ID_CT 0x102c #define PCI_DEVICE_ID_CT_65545 0x00d8 #define PCI_DEVICE_ID_CT_65548 0x00dc #define PCI_DEVICE_ID_CT_65550 0x00e0 #define PCI_DEVICE_ID_CT_65554 0x00e4 #define PCI_DEVICE_ID_CT_65555 0x00e5 #define PCI_VENDOR_ID_MIRO 0x1031 #define PCI_DEVICE_ID_MIRO_36050 0x5601 #define PCI_VENDOR_ID_NEC 0x1033 #define PCI_DEVICE_ID_NEC_PCX2 0x0046 #define PCI_DEVICE_ID_NEC_NILE4 0x005a #define PCI_DEVICE_ID_NEC_VRC5476 0x009b #define PCI_VENDOR_ID_FD 0x1036 #define PCI_DEVICE_ID_FD_36C70 0x0000 #define PCI_VENDOR_ID_SI 0x1039 #define PCI_DEVICE_ID_SI_5591_AGP 0x0001 #define PCI_DEVICE_ID_SI_6202 0x0002 #define PCI_DEVICE_ID_SI_503 0x0008 #define PCI_DEVICE_ID_SI_ACPI 0x0009 #define PCI_DEVICE_ID_SI_5597_VGA 0x0200 #define PCI_DEVICE_ID_SI_6205 0x0205 #define PCI_DEVICE_ID_SI_501 0x0406 #define PCI_DEVICE_ID_SI_496 0x0496 #define PCI_DEVICE_ID_SI_300 0x0300 #define PCI_DEVICE_ID_SI_315H 0x0310 #define PCI_DEVICE_ID_SI_315 0x0315 #define PCI_DEVICE_ID_SI_530 0x0530 #define PCI_DEVICE_ID_SI_540 0x0540 #define PCI_DEVICE_ID_SI_550 0x0550 #define PCI_DEVICE_ID_SI_540_VGA 0x5300 #define PCI_DEVICE_ID_SI_550_VGA 0x5315 #define PCI_DEVICE_ID_SI_601 0x0601 #define PCI_DEVICE_ID_SI_620 0x0620 #define PCI_DEVICE_ID_SI_630 0x0630 #define PCI_DEVICE_ID_SI_635 0x0635 #define PCI_DEVICE_ID_SI_640 0x0640 #define PCI_DEVICE_ID_SI_645 0x0645 #define PCI_DEVICE_ID_SI_650 0x0650 #define PCI_DEVICE_ID_SI_730 0x0730 #define PCI_DEVICE_ID_SI_735 0x0735 #define PCI_DEVICE_ID_SI_740 0x0740 #define PCI_DEVICE_ID_SI_745 0x0745 #define PCI_DEVICE_ID_SI_750 0x0750 #define PCI_DEVICE_ID_SI_630_VGA 0x6300 #define PCI_DEVICE_ID_SI_730_VGA 0x7300 #define PCI_DEVICE_ID_SI_900 0x0900 #define PCI_DEVICE_ID_SI_5107 0x5107 #define PCI_DEVICE_ID_SI_5300 0x5300 #define PCI_DEVICE_ID_SI_5511 0x5511 #define PCI_DEVICE_ID_SI_5513 0x5513 #define PCI_DEVICE_ID_SI_5571 0x5571 #define PCI_DEVICE_ID_SI_5591 0x5591 #define PCI_DEVICE_ID_SI_5597 0x5597 #define PCI_DEVICE_ID_SI_5598 0x5598 #define PCI_DEVICE_ID_SI_5600 0x5600 #define PCI_DEVICE_ID_SI_6300 0x6300 #define PCI_DEVICE_ID_SI_6306 0x6306 #define PCI_DEVICE_ID_SI_6326 0x6326 #define PCI_DEVICE_ID_SI_7001 0x7001 #define PCI_DEVICE_ID_SI_7016 0x7016 #define PCI_VENDOR_ID_HP 0x103c #define PCI_DEVICE_ID_HP_DONNER_GFX 0x1008 #define PCI_DEVICE_ID_HP_TACHYON 0x1028 #define PCI_DEVICE_ID_HP_TACHLITE 0x1029 #define PCI_DEVICE_ID_HP_J2585A 0x1030 #define PCI_DEVICE_ID_HP_J2585B 0x1031 #define PCI_DEVICE_ID_HP_SAS 0x1048 #define PCI_DEVICE_ID_HP_DIVA1 0x1049 #define PCI_DEVICE_ID_HP_DIVA2 0x104A #define PCI_DEVICE_ID_HP_SP2_0 0x104B #define PCI_VENDOR_ID_PCTECH 0x1042 #define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000 #define PCI_DEVICE_ID_PCTECH_RZ1001 0x1001 #define PCI_DEVICE_ID_PCTECH_SAMURAI_0 0x3000 #define PCI_DEVICE_ID_PCTECH_SAMURAI_1 0x3010 #define PCI_DEVICE_ID_PCTECH_SAMURAI_IDE 0x3020 #define PCI_VENDOR_ID_ASUSTEK 0x1043 #define PCI_DEVICE_ID_ASUSTEK_0675 0x0675 #define PCI_VENDOR_ID_DPT 0x1044 #define PCI_DEVICE_ID_DPT 0xa400 #define PCI_VENDOR_ID_OPTI 0x1045 #define PCI_DEVICE_ID_OPTI_92C178 0xc178 #define PCI_DEVICE_ID_OPTI_82C557 0xc557 #define PCI_DEVICE_ID_OPTI_82C558 0xc558 #define PCI_DEVICE_ID_OPTI_82C621 0xc621 #define PCI_DEVICE_ID_OPTI_82C700 0xc700 #define PCI_DEVICE_ID_OPTI_82C701 0xc701 #define PCI_DEVICE_ID_OPTI_82C814 0xc814 #define PCI_DEVICE_ID_OPTI_82C822 0xc822 #define PCI_DEVICE_ID_OPTI_82C861 0xc861 #define PCI_DEVICE_ID_OPTI_82C825 0xd568 #define PCI_VENDOR_ID_ELSA 0x1048 #define PCI_DEVICE_ID_ELSA_MICROLINK 0x1000 #define PCI_DEVICE_ID_ELSA_QS3000 0x3000 #define PCI_VENDOR_ID_ELSA 0x1048 #define PCI_DEVICE_ID_ELSA_MICROLINK 0x1000 #define PCI_DEVICE_ID_ELSA_QS3000 0x3000 #define PCI_VENDOR_ID_SGS 0x104a #define PCI_DEVICE_ID_SGS_2000 0x0008 #define PCI_DEVICE_ID_SGS_1764 0x0009 #define PCI_VENDOR_ID_BUSLOGIC 0x104B #define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140 #define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER 0x1040 #define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130 #define PCI_VENDOR_ID_TI 0x104c #define PCI_DEVICE_ID_TI_TVP4010 0x3d04 #define PCI_DEVICE_ID_TI_TVP4020 0x3d07 #define PCI_DEVICE_ID_TI_1130 0xac12 #define PCI_DEVICE_ID_TI_1031 0xac13 #define PCI_DEVICE_ID_TI_1131 0xac15 #define PCI_DEVICE_ID_TI_1250 0xac16 #define PCI_DEVICE_ID_TI_1220 0xac17 #define PCI_DEVICE_ID_TI_1221 0xac19 #define PCI_DEVICE_ID_TI_1210 0xac1a #define PCI_DEVICE_ID_TI_1410 0xac50 #define PCI_DEVICE_ID_TI_1450 0xac1b #define PCI_DEVICE_ID_TI_1225 0xac1c #define PCI_DEVICE_ID_TI_1251A 0xac1d #define PCI_DEVICE_ID_TI_1211 0xac1e #define PCI_DEVICE_ID_TI_1251B 0xac1f #define PCI_DEVICE_ID_TI_4410 0xac41 #define PCI_DEVICE_ID_TI_4451 0xac42 #define PCI_DEVICE_ID_TI_1420 0xac51 #define PCI_VENDOR_ID_SONY 0x104d #define PCI_DEVICE_ID_SONY_CXD3222 0x8039 #define PCI_VENDOR_ID_OAK 0x104e #define PCI_DEVICE_ID_OAK_OTI107 0x0107 /* Winbond have two vendor IDs! See 0x10ad as well */ #define PCI_VENDOR_ID_WINBOND2 0x1050 #define PCI_DEVICE_ID_WINBOND2_89C940 0x0940 #define PCI_DEVICE_ID_WINBOND2_89C940F 0x5a5a #define PCI_DEVICE_ID_WINBOND2_6692 0x6692 #define PCI_VENDOR_ID_ANIGMA 0x1051 #define PCI_DEVICE_ID_ANIGMA_MC145575 0x0100 #define PCI_VENDOR_ID_EFAR 0x1055 #define PCI_DEVICE_ID_EFAR_SLC90E66_1 0x9130 #define PCI_DEVICE_ID_EFAR_SLC90E66_0 0x9460 #define PCI_DEVICE_ID_EFAR_SLC90E66_2 0x9462 #define PCI_DEVICE_ID_EFAR_SLC90E66_3 0x9463 #define PCI_VENDOR_ID_MOTOROLA 0x1057 #define PCI_VENDOR_ID_MOTOROLA_OOPS 0x1507 #define PCI_DEVICE_ID_MOTOROLA_MPC105 0x0001 #define PCI_DEVICE_ID_MOTOROLA_MPC106 0x0002 #define PCI_DEVICE_ID_MOTOROLA_RAVEN 0x4801 #define PCI_DEVICE_ID_MOTOROLA_FALCON 0x4802 #define PCI_DEVICE_ID_MOTOROLA_CPX8216 0x4806 #define PCI_VENDOR_ID_PROMISE 0x105a #define PCI_DEVICE_ID_PROMISE_20265 0x0d30 #define PCI_DEVICE_ID_PROMISE_20267 0x4d30 #define PCI_DEVICE_ID_PROMISE_20246 0x4d33 #define PCI_DEVICE_ID_PROMISE_20262 0x4d38 #define PCI_DEVICE_ID_PROMISE_20268 0x4d68 #define PCI_DEVICE_ID_PROMISE_20268R 0x6268 #define PCI_DEVICE_ID_PROMISE_5300 0x5300 #define PCI_VENDOR_ID_N9 0x105d #define PCI_DEVICE_ID_N9_I128 0x2309 #define PCI_DEVICE_ID_N9_I128_2 0x2339 #define PCI_DEVICE_ID_N9_I128_T2R 0x493d #define PCI_VENDOR_ID_UMC 0x1060 #define PCI_DEVICE_ID_UMC_UM8673F 0x0101 #define PCI_DEVICE_ID_UMC_UM8891A 0x0891 #define PCI_DEVICE_ID_UMC_UM8886BF 0x673a #define PCI_DEVICE_ID_UMC_UM8886A 0x886a #define PCI_DEVICE_ID_UMC_UM8881F 0x8881 #define PCI_DEVICE_ID_UMC_UM8886F 0x8886 #define PCI_DEVICE_ID_UMC_UM9017F 0x9017 #define PCI_DEVICE_ID_UMC_UM8886N 0xe886 #define PCI_DEVICE_ID_UMC_UM8891N 0xe891 #define PCI_VENDOR_ID_X 0x1061 #define PCI_DEVICE_ID_X_AGX016 0x0001 #define PCI_VENDOR_ID_MYLEX 0x1069 #define PCI_DEVICE_ID_MYLEX_DAC960_P 0x0001 #define PCI_DEVICE_ID_MYLEX_DAC960_PD 0x0002 #define PCI_DEVICE_ID_MYLEX_DAC960_PG 0x0010 #define PCI_DEVICE_ID_MYLEX_DAC960_LA 0x0020 #define PCI_DEVICE_ID_MYLEX_DAC960_LP 0x0050 #define PCI_DEVICE_ID_MYLEX_DAC960_BA 0xBA56 #define PCI_VENDOR_ID_PICOP 0x1066 #define PCI_DEVICE_ID_PICOP_PT86C52X 0x0001 #define PCI_DEVICE_ID_PICOP_PT80C524 0x8002 #define PCI_VENDOR_ID_APPLE 0x106b #define PCI_DEVICE_ID_APPLE_BANDIT 0x0001 #define PCI_DEVICE_ID_APPLE_GC 0x0002 #define PCI_DEVICE_ID_APPLE_HYDRA 0x000e #define PCI_DEVICE_ID_APPLE_UNI_N_FW 0x0018 #define PCI_DEVICE_ID_APPLE_KL_USB 0x0019 #define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020 #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC 0x0021 #define PCI_VENDOR_ID_YAMAHA 0x1073 #define PCI_DEVICE_ID_YAMAHA_724 0x0004 #define PCI_DEVICE_ID_YAMAHA_724F 0x000d #define PCI_DEVICE_ID_YAMAHA_740 0x000a #define PCI_DEVICE_ID_YAMAHA_740C 0x000c #define PCI_DEVICE_ID_YAMAHA_744 0x0010 #define PCI_DEVICE_ID_YAMAHA_754 0x0012 #define PCI_VENDOR_ID_NEXGEN 0x1074 #define PCI_DEVICE_ID_NEXGEN_82C501 0x4e78 #define PCI_VENDOR_ID_QLOGIC 0x1077 #define PCI_DEVICE_ID_QLOGIC_ISP1020 0x1020 #define PCI_DEVICE_ID_QLOGIC_ISP1022 0x1022 #define PCI_DEVICE_ID_QLOGIC_ISP2100 0x2100 #define PCI_DEVICE_ID_QLOGIC_ISP2200 0x2200 #define PCI_VENDOR_ID_CYRIX 0x1078 #define PCI_DEVICE_ID_CYRIX_5510 0x0000 #define PCI_DEVICE_ID_CYRIX_PCI_MASTER 0x0001 #define PCI_DEVICE_ID_CYRIX_5520 0x0002 #define PCI_DEVICE_ID_CYRIX_5530_LEGACY 0x0100 #define PCI_DEVICE_ID_CYRIX_5530_SMI 0x0101 #define PCI_DEVICE_ID_CYRIX_5530_IDE 0x0102 #define PCI_DEVICE_ID_CYRIX_5530_AUDIO 0x0103 #define PCI_DEVICE_ID_CYRIX_5530_VIDEO 0x0104 #define PCI_VENDOR_ID_LEADTEK 0x107d #define PCI_DEVICE_ID_LEADTEK_805 0x0000 #define PCI_VENDOR_ID_INTERPHASE 0x107e #define PCI_DEVICE_ID_INTERPHASE_5526 0x0004 #define PCI_DEVICE_ID_INTERPHASE_55x6 0x0005 #define PCI_DEVICE_ID_INTERPHASE_5575 0x0008 #define PCI_VENDOR_ID_CONTAQ 0x1080 #define PCI_DEVICE_ID_CONTAQ_82C599 0x0600 #define PCI_DEVICE_ID_CONTAQ_82C693 0xc693 #define PCI_VENDOR_ID_FOREX 0x1083 #define PCI_VENDOR_ID_OLICOM 0x108d #define PCI_DEVICE_ID_OLICOM_OC3136 0x0001 #define PCI_DEVICE_ID_OLICOM_OC2315 0x0011 #define PCI_DEVICE_ID_OLICOM_OC2325 0x0012 #define PCI_DEVICE_ID_OLICOM_OC2183 0x0013 #define PCI_DEVICE_ID_OLICOM_OC2326 0x0014 #define PCI_DEVICE_ID_OLICOM_OC6151 0x0021 #define PCI_VENDOR_ID_SUN 0x108e #define PCI_DEVICE_ID_SUN_EBUS 0x1000 #define PCI_DEVICE_ID_SUN_HAPPYMEAL 0x1001 #define PCI_DEVICE_ID_SUN_RIO_EBUS 0x1100 #define PCI_DEVICE_ID_SUN_RIO_GEM 0x1101 #define PCI_DEVICE_ID_SUN_RIO_1394 0x1102 #define PCI_DEVICE_ID_SUN_RIO_USB 0x1103 #define PCI_DEVICE_ID_SUN_GEM 0x2bad #define PCI_DEVICE_ID_SUN_SIMBA 0x5000 #define PCI_DEVICE_ID_SUN_PBM 0x8000 #define PCI_DEVICE_ID_SUN_SCHIZO 0x8001 #define PCI_DEVICE_ID_SUN_SABRE 0xa000 #define PCI_DEVICE_ID_SUN_HUMMINGBIRD 0xa001 #define PCI_VENDOR_ID_CMD 0x1095 #define PCI_DEVICE_ID_CMD_640 0x0640 #define PCI_DEVICE_ID_CMD_643 0x0643 #define PCI_DEVICE_ID_CMD_646 0x0646 #define PCI_DEVICE_ID_CMD_647 0x0647 #define PCI_DEVICE_ID_CMD_648 0x0648 #define PCI_DEVICE_ID_CMD_649 0x0649 #define PCI_DEVICE_ID_CMD_670 0x0670 #define PCI_VENDOR_ID_VISION 0x1098 #define PCI_DEVICE_ID_VISION_QD8500 0x0001 #define PCI_DEVICE_ID_VISION_QD8580 0x0002 #define PCI_VENDOR_ID_BROOKTREE 0x109e #define PCI_DEVICE_ID_BROOKTREE_848 0x0350 #define PCI_DEVICE_ID_BROOKTREE_849A 0x0351 #define PCI_DEVICE_ID_BROOKTREE_878_1 0x036e #define PCI_DEVICE_ID_BROOKTREE_878 0x0878 #define PCI_DEVICE_ID_BROOKTREE_8474 0x8474 #define PCI_VENDOR_ID_SIERRA 0x10a8 #define PCI_DEVICE_ID_SIERRA_STB 0x0000 #define PCI_VENDOR_ID_SGI 0x10a9 #define PCI_DEVICE_ID_SGI_IOC3 0x0003 #define PCI_VENDOR_ID_ACC 0x10aa #define PCI_DEVICE_ID_ACC_2056 0x0000 #define PCI_VENDOR_ID_WINBOND 0x10ad #define PCI_DEVICE_ID_WINBOND_83769 0x0001 #define PCI_DEVICE_ID_WINBOND_82C105 0x0105 #define PCI_DEVICE_ID_WINBOND_83C553 0x0565 #define PCI_VENDOR_ID_DATABOOK 0x10b3 #define PCI_DEVICE_ID_DATABOOK_87144 0xb106 #define PCI_VENDOR_ID_PLX 0x10b5 #define PCI_DEVICE_ID_PLX_R685 0x1030 #define PCI_DEVICE_ID_PLX_ROMULUS 0x106a #define PCI_DEVICE_ID_PLX_SPCOM800 0x1076 #define PCI_DEVICE_ID_PLX_1077 0x1077 #define PCI_DEVICE_ID_PLX_SPCOM200 0x1103 #define PCI_DEVICE_ID_PLX_DJINN_ITOO 0x1151 #define PCI_DEVICE_ID_PLX_R753 0x1152 #define PCI_DEVICE_ID_PLX_9050 0x9050 #define PCI_DEVICE_ID_PLX_9060 0x9060 #define PCI_DEVICE_ID_PLX_9060ES 0x906E #define PCI_DEVICE_ID_PLX_9060SD 0x906D #define PCI_DEVICE_ID_PLX_9080 0x9080 #define PCI_DEVICE_ID_PLX_GTEK_SERIAL2 0xa001 #define PCI_VENDOR_ID_MADGE 0x10b6 #define PCI_DEVICE_ID_MADGE_MK2 0x0002 #define PCI_DEVICE_ID_MADGE_C155S 0x1001 #define PCI_VENDOR_ID_3COM 0x10b7 #define PCI_DEVICE_ID_3COM_3C985 0x0001 #define PCI_DEVICE_ID_3COM_3C339 0x3390 #define PCI_DEVICE_ID_3COM_3C590 0x5900 #define PCI_DEVICE_ID_3COM_3C595TX 0x5950 #define PCI_DEVICE_ID_3COM_3C595T4 0x5951 #define PCI_DEVICE_ID_3COM_3C595MII 0x5952 #define PCI_DEVICE_ID_3COM_3C900TPO 0x9000 #define PCI_DEVICE_ID_3COM_3C900COMBO 0x9001 #define PCI_DEVICE_ID_3COM_3C905TX 0x9050 #define PCI_DEVICE_ID_3COM_3C905T4 0x9051 #define PCI_DEVICE_ID_3COM_3C905B_TX 0x9055 #define PCI_VENDOR_ID_SMC 0x10b8 #define PCI_DEVICE_ID_SMC_EPIC100 0x0005 #define PCI_VENDOR_ID_AL 0x10b9 #define PCI_DEVICE_ID_AL_M1445 0x1445 #define PCI_DEVICE_ID_AL_M1449 0x1449 #define PCI_DEVICE_ID_AL_M1451 0x1451 #define PCI_DEVICE_ID_AL_M1461 0x1461 #define PCI_DEVICE_ID_AL_M1489 0x1489 #define PCI_DEVICE_ID_AL_M1511 0x1511 #define PCI_DEVICE_ID_AL_M1513 0x1513 #define PCI_DEVICE_ID_AL_M1521 0x1521 #define PCI_DEVICE_ID_AL_M1523 0x1523 #define PCI_DEVICE_ID_AL_M1531 0x1531 #define PCI_DEVICE_ID_AL_M1533 0x1533 #define PCI_DEVICE_ID_AL_M1541 0x1541 #define PCI_DEVICE_ID_AL_M1621 0x1621 #define PCI_DEVICE_ID_AL_M1631 0x1631 #define PCI_DEVICE_ID_AL_M1641 0x1641 #define PCI_DEVICE_ID_AL_M1647 0x1647 #define PCI_DEVICE_ID_AL_M1651 0x1651 #define PCI_DEVICE_ID_AL_M1543 0x1543 #define PCI_DEVICE_ID_AL_M3307 0x3307 #define PCI_DEVICE_ID_AL_M4803 0x5215 #define PCI_DEVICE_ID_AL_M5219 0x5219 #define PCI_DEVICE_ID_AL_M5229 0x5229 #define PCI_DEVICE_ID_AL_M5237 0x5237 #define PCI_DEVICE_ID_AL_M5243 0x5243 #define PCI_DEVICE_ID_AL_M5451 0x5451 #define PCI_DEVICE_ID_AL_M7101 0x7101 #define PCI_VENDOR_ID_MITSUBISHI 0x10ba #define PCI_VENDOR_ID_SURECOM 0x10bd #define PCI_DEVICE_ID_SURECOM_NE34 0x0e34 #define PCI_VENDOR_ID_NEOMAGIC 0x10c8 #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2070 0x0001 #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128V 0x0002 #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZV 0x0003 #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2160 0x0004 #define PCI_DEVICE_ID_NEOMAGIC_MAGICMEDIA_256AV 0x0005 #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZVPLUS 0x0083 #define PCI_VENDOR_ID_ASP 0x10cd #define PCI_DEVICE_ID_ASP_ABP940 0x1200 #define PCI_DEVICE_ID_ASP_ABP940U 0x1300 #define PCI_DEVICE_ID_ASP_ABP940UW 0x2300 #define PCI_VENDOR_ID_MACRONIX 0x10d9 #define PCI_DEVICE_ID_MACRONIX_MX98713 0x0512 #define PCI_DEVICE_ID_MACRONIX_MX987x5 0x0531 #define PCI_VENDOR_ID_TCONRAD 0x10da #define PCI_DEVICE_ID_TCONRAD_TOKENRING 0x0508 #define PCI_VENDOR_ID_CERN 0x10dc #define PCI_DEVICE_ID_CERN_SPSB_PMC 0x0001 #define PCI_DEVICE_ID_CERN_SPSB_PCI 0x0002 #define PCI_DEVICE_ID_CERN_HIPPI_DST 0x0021 #define PCI_DEVICE_ID_CERN_HIPPI_SRC 0x0022 #define PCI_VENDOR_ID_NVIDIA 0x10de #define PCI_DEVICE_ID_NVIDIA_TNT 0x0020 #define PCI_DEVICE_ID_NVIDIA_TNT2 0x0028 #define PCI_DEVICE_ID_NVIDIA_UTNT2 0x0029 #define PCI_DEVICE_ID_NVIDIA_VTNT2 0x002C #define PCI_DEVICE_ID_NVIDIA_UVTNT2 0x002D #define PCI_DEVICE_ID_NVIDIA_ITNT2 0x00A0 #define PCI_DEVICE_ID_NVIDIA_GEFORCE_SDR 0x0100 #define PCI_DEVICE_ID_NVIDIA_GEFORCE_DDR 0x0101 #define PCI_DEVICE_ID_NVIDIA_QUADRO 0x0103 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_MX 0x0110 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_MX2 0x0111 #define PCI_DEVICE_ID_NVIDIA_QUADRO2_MXR 0x0113 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_GTS 0x0150 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_GTS2 0x0151 #define PCI_DEVICE_ID_NVIDIA_GEFORCE2_ULTRA 0x0152 #define PCI_DEVICE_ID_NVIDIA_QUADRO2_PRO 0x0153 #define PCI_VENDOR_ID_IMS 0x10e0 #define PCI_DEVICE_ID_IMS_8849 0x8849 #define PCI_DEVICE_ID_IMS_TT128 0x9128 #define PCI_DEVICE_ID_IMS_TT3D 0x9135 #define PCI_VENDOR_ID_TEKRAM2 0x10e1 #define PCI_DEVICE_ID_TEKRAM2_690c 0x690c #define PCI_VENDOR_ID_TUNDRA 0x10e3 #define PCI_DEVICE_ID_TUNDRA_CA91C042 0x0000 #define PCI_VENDOR_ID_AMCC 0x10e8 #define PCI_DEVICE_ID_AMCC_MYRINET 0x8043 #define PCI_DEVICE_ID_AMCC_PARASTATION 0x8062 #define PCI_DEVICE_ID_AMCC_S5933 0x807d #define PCI_DEVICE_ID_AMCC_S5933_HEPC3 0x809c #define PCI_VENDOR_ID_INTERG 0x10ea #define PCI_DEVICE_ID_INTERG_1680 0x1680 #define PCI_DEVICE_ID_INTERG_1682 0x1682 #define PCI_DEVICE_ID_INTERG_2000 0x2000 #define PCI_DEVICE_ID_INTERG_2010 0x2010 #define PCI_DEVICE_ID_INTERG_5000 0x5000 #define PCI_VENDOR_ID_REALTEK 0x10ec #define PCI_DEVICE_ID_REALTEK_8029 0x8029 #define PCI_DEVICE_ID_REALTEK_8129 0x8129 #define PCI_DEVICE_ID_REALTEK_8139 0x8139 #define PCI_VENDOR_ID_XILINX 0x10ee #define PCI_DEVICE_ID_TURBOPAM 0x4020 #define PCI_VENDOR_ID_TRUEVISION 0x10fa #define PCI_DEVICE_ID_TRUEVISION_T1000 0x000c #define PCI_VENDOR_ID_INIT 0x1101 #define PCI_DEVICE_ID_INIT_320P 0x9100 #define PCI_DEVICE_ID_INIT_360P 0x9500 #define PCI_VENDOR_ID_CREATIVE 0x1102 // duplicate: ECTIVA #define PCI_DEVICE_ID_CREATIVE_EMU10K1 0x0002 #define PCI_VENDOR_ID_ECTIVA 0x1102 // duplicate: CREATIVE #define PCI_DEVICE_ID_ECTIVA_EV1938 0x8938 #define PCI_VENDOR_ID_TTI 0x1103 #define PCI_DEVICE_ID_TTI_HPT343 0x0003 #define PCI_DEVICE_ID_TTI_HPT366 0x0004 #define PCI_VENDOR_ID_VIA 0x1106 #define PCI_DEVICE_ID_VIA_8363_0 0x0305 #define PCI_DEVICE_ID_VIA_8371_0 0x0391 #define PCI_DEVICE_ID_VIA_8501_0 0x0501 #define PCI_DEVICE_ID_VIA_82C505 0x0505 #define PCI_DEVICE_ID_VIA_82C561 0x0561 #define PCI_DEVICE_ID_VIA_82C586_1 0x0571 #define PCI_DEVICE_ID_VIA_82C576 0x0576 #define PCI_DEVICE_ID_VIA_82C585 0x0585 #define PCI_DEVICE_ID_VIA_82C586_0 0x0586 #define PCI_DEVICE_ID_VIA_82C595 0x0595 #define PCI_DEVICE_ID_VIA_82C596 0x0596 #define PCI_DEVICE_ID_VIA_82C597_0 0x0597 #define PCI_DEVICE_ID_VIA_82C598_0 0x0598 #define PCI_DEVICE_ID_VIA_8601_0 0x0601 #define PCI_DEVICE_ID_VIA_8605_0 0x0605 #define PCI_DEVICE_ID_VIA_82C680 0x0680 #define PCI_DEVICE_ID_VIA_82C686 0x0686 #define PCI_DEVICE_ID_VIA_82C691 0x0691 #define PCI_DEVICE_ID_VIA_82C693 0x0693 #define PCI_DEVICE_ID_VIA_82C693_1 0x0698 #define PCI_DEVICE_ID_VIA_82C926 0x0926 #define PCI_DEVICE_ID_VIA_82C416 0x1571 #define PCI_DEVICE_ID_VIA_82C595_97 0x1595 #define PCI_DEVICE_ID_VIA_82C586_2 0x3038 #define PCI_DEVICE_ID_VIA_82C586_3 0x3040 #define PCI_DEVICE_ID_VIA_6305 0x3044 #define PCI_DEVICE_ID_VIA_82C596_3 0x3050 #define PCI_DEVICE_ID_VIA_82C596B_3 0x3051 #define PCI_DEVICE_ID_VIA_82C686_4 0x3057 #define PCI_DEVICE_ID_VIA_82C686_5 0x3058 #define PCI_DEVICE_ID_VIA_8233_5 0x3059 #define PCI_DEVICE_ID_VIA_8233_7 0x3065 #define PCI_DEVICE_ID_VIA_82C686_6 0x3068 #define PCI_DEVICE_ID_VIA_8233_0 0x3074 #define PCI_DEVICE_ID_VIA_8633_0 0x3091 #define PCI_DEVICE_ID_VIA_8367_0 0x3099 #define PCI_DEVICE_ID_VIA_86C100A 0x6100 #define PCI_DEVICE_ID_VIA_8231 0x8231 #define PCI_DEVICE_ID_VIA_8231_4 0x8235 #define PCI_DEVICE_ID_VIA_8365_1 0x8305 #define PCI_DEVICE_ID_VIA_8371_1 0x8391 #define PCI_DEVICE_ID_VIA_8501_1 0x8501 #define PCI_DEVICE_ID_VIA_82C597_1 0x8597 #define PCI_DEVICE_ID_VIA_82C598_1 0x8598 #define PCI_DEVICE_ID_VIA_8601_1 0x8601 #define PCI_DEVICE_ID_VIA_8505_1 0X8605 #define PCI_DEVICE_ID_VIA_8633_1 0xB091 #define PCI_DEVICE_ID_VIA_8367_1 0xB099 #define PCI_VENDOR_ID_SIEMENS 0x110A #define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102 #define PCI_VENDOR_ID_SMC2 0x1113 #define PCI_DEVICE_ID_SMC2_1211TX 0x1211 #define PCI_VENDOR_ID_VORTEX 0x1119 #define PCI_DEVICE_ID_VORTEX_GDT60x0 0x0000 #define PCI_DEVICE_ID_VORTEX_GDT6000B 0x0001 #define PCI_DEVICE_ID_VORTEX_GDT6x10 0x0002 #define PCI_DEVICE_ID_VORTEX_GDT6x20 0x0003 #define PCI_DEVICE_ID_VORTEX_GDT6530 0x0004 #define PCI_DEVICE_ID_VORTEX_GDT6550 0x0005 #define PCI_DEVICE_ID_VORTEX_GDT6x17 0x0006 #define PCI_DEVICE_ID_VORTEX_GDT6x27 0x0007 #define PCI_DEVICE_ID_VORTEX_GDT6537 0x0008 #define PCI_DEVICE_ID_VORTEX_GDT6557 0x0009 #define PCI_DEVICE_ID_VORTEX_GDT6x15 0x000a #define PCI_DEVICE_ID_VORTEX_GDT6x25 0x000b #define PCI_DEVICE_ID_VORTEX_GDT6535 0x000c #define PCI_DEVICE_ID_VORTEX_GDT6555 0x000d #define PCI_DEVICE_ID_VORTEX_GDT6x17RP 0x0100 #define PCI_DEVICE_ID_VORTEX_GDT6x27RP 0x0101 #define PCI_DEVICE_ID_VORTEX_GDT6537RP 0x0102 #define PCI_DEVICE_ID_VORTEX_GDT6557RP 0x0103 #define PCI_DEVICE_ID_VORTEX_GDT6x11RP 0x0104 #define PCI_DEVICE_ID_VORTEX_GDT6x21RP 0x0105 #define PCI_DEVICE_ID_VORTEX_GDT6x17RP1 0x0110 #define PCI_DEVICE_ID_VORTEX_GDT6x27RP1 0x0111 #define PCI_DEVICE_ID_VORTEX_GDT6537RP1 0x0112 #define PCI_DEVICE_ID_VORTEX_GDT6557RP1 0x0113 #define PCI_DEVICE_ID_VORTEX_GDT6x11RP1 0x0114 #define PCI_DEVICE_ID_VORTEX_GDT6x21RP1 0x0115 #define PCI_DEVICE_ID_VORTEX_GDT6x17RP2 0x0120 #define PCI_DEVICE_ID_VORTEX_GDT6x27RP2 0x0121 #define PCI_DEVICE_ID_VORTEX_GDT6537RP2 0x0122 #define PCI_DEVICE_ID_VORTEX_GDT6557RP2 0x0123 #define PCI_DEVICE_ID_VORTEX_GDT6x11RP2 0x0124 #define PCI_DEVICE_ID_VORTEX_GDT6x21RP2 0x0125 #define PCI_VENDOR_ID_EF 0x111a #define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000 #define PCI_DEVICE_ID_EF_ATM_ASIC 0x0002 #define PCI_VENDOR_ID_IDT 0x111d #define PCI_DEVICE_ID_IDT_IDT77201 0x0001 #define PCI_VENDOR_ID_FORE 0x1127 #define PCI_DEVICE_ID_FORE_PCA200PC 0x0210 #define PCI_DEVICE_ID_FORE_PCA200E 0x0300 #define PCI_VENDOR_ID_IMAGINGTECH 0x112f #define PCI_DEVICE_ID_IMAGINGTECH_ICPCI 0x0000 #define PCI_VENDOR_ID_PHILIPS 0x1131 #define PCI_DEVICE_ID_PHILIPS_SAA7145 0x7145 #define PCI_DEVICE_ID_PHILIPS_SAA7146 0x7146 #define PCI_VENDOR_ID_EICON 0x1133 #define PCI_DEVICE_ID_EICON_DIVA20PRO 0xe001 #define PCI_DEVICE_ID_EICON_DIVA20 0xe002 #define PCI_DEVICE_ID_EICON_DIVA20PRO_U 0xe003 #define PCI_DEVICE_ID_EICON_DIVA20_U 0xe004 #define PCI_DEVICE_ID_EICON_DIVA201 0xe005 #define PCI_DEVICE_ID_EICON_MAESTRA 0xe010 #define PCI_DEVICE_ID_EICON_MAESTRAQ 0xe012 #define PCI_DEVICE_ID_EICON_MAESTRAQ_U 0xe013 #define PCI_DEVICE_ID_EICON_MAESTRAP 0xe014 #define PCI_VENDOR_ID_CYCLONE 0x113c #define PCI_DEVICE_ID_CYCLONE_SDK 0x0001 #define PCI_VENDOR_ID_ALLIANCE 0x1142 #define PCI_DEVICE_ID_ALLIANCE_PROMOTIO 0x3210 #define PCI_DEVICE_ID_ALLIANCE_PROVIDEO 0x6422 #define PCI_DEVICE_ID_ALLIANCE_AT24 0x6424 #define PCI_DEVICE_ID_ALLIANCE_AT3D 0x643d #define PCI_VENDOR_ID_SYSKONNECT 0x1148 #define PCI_DEVICE_ID_SYSKONNECT_FP 0x4000 #define PCI_DEVICE_ID_SYSKONNECT_TR 0x4200 #define PCI_DEVICE_ID_SYSKONNECT_GE 0x4300 #define PCI_VENDOR_ID_VMIC 0x114a #define PCI_DEVICE_ID_VMIC_VME 0x7587 #define PCI_VENDOR_ID_DIGI 0x114f #define PCI_DEVICE_ID_DIGI_EPC 0x0002 #define PCI_DEVICE_ID_DIGI_RIGHTSWITCH 0x0003 #define PCI_DEVICE_ID_DIGI_XEM 0x0004 #define PCI_DEVICE_ID_DIGI_XR 0x0005 #define PCI_DEVICE_ID_DIGI_CX 0x0006 #define PCI_DEVICE_ID_DIGI_XRJ 0x0009 #define PCI_DEVICE_ID_DIGI_EPCJ 0x000a #define PCI_DEVICE_ID_DIGI_XR_920 0x0027 #define PCI_DEVICE_ID_DIGI_DF_M_IOM2_E 0x0070 #define PCI_DEVICE_ID_DIGI_DF_M_E 0x0071 #define PCI_DEVICE_ID_DIGI_DF_M_IOM2_A 0x0072 #define PCI_DEVICE_ID_DIGI_DF_M_A 0x0073 #define PCI_VENDOR_ID_MUTECH 0x1159 #define PCI_DEVICE_ID_MUTECH_MV1000 0x0001 #define PCI_VENDOR_ID_XIRCOM 0x115d #define PCI_DEVICE_ID_XIRCOM_X3201_ETH 0x0003 #define PCI_DEVICE_ID_XIRCOM_X3201_MDM 0x0103 #define PCI_VENDOR_ID_RENDITION 0x1163 #define PCI_DEVICE_ID_RENDITION_VERITE 0x0001 #define PCI_DEVICE_ID_RENDITION_VERITE2100 0x2000 #define PCI_VENDOR_ID_SERVERWORKS 0x1166 #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 #define PCI_DEVICE_ID_SERVERWORKS_CIOB30 0x0010 #define PCI_DEVICE_ID_SERVERWORKS_CMIC_HE 0x0011 #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 #define PCI_DEVICE_ID_SERVERWORKS_OSB4IDE 0x0211 #define PCI_DEVICE_ID_SERVERWORKS_CSB5IDE 0x0212 #define PCI_DEVICE_ID_SERVERWORKS_OSB4USB 0x0220 #define PCI_DEVICE_ID_SERVERWORKS_CSB5USB PCI_DEVICE_ID_SERVERWORKS_OSB4USB #define PCI_DEVICE_ID_SERVERWORKS_CSB5ISA 0x0230 #define PCI_VENDOR_ID_SBE 0x1176 #define PCI_DEVICE_ID_SBE_WANXL100 0x0301 #define PCI_DEVICE_ID_SBE_WANXL200 0x0302 #define PCI_DEVICE_ID_SBE_WANXL400 0x0104 #define PCI_VENDOR_ID_TOSHIBA 0x1179 #define PCI_DEVICE_ID_TOSHIBA_601 0x0601 #define PCI_DEVICE_ID_TOSHIBA_TOPIC95 0x060a #define PCI_DEVICE_ID_TOSHIBA_TOPIC97 0x060f #define PCI_VENDOR_ID_RICOH 0x1180 #define PCI_DEVICE_ID_RICOH_RL5C465 0x0465 #define PCI_DEVICE_ID_RICOH_RL5C466 0x0466 #define PCI_DEVICE_ID_RICOH_RL5C475 0x0475 #define PCI_DEVICE_ID_RICOH_RL5C476 0x0476 #define PCI_DEVICE_ID_RICOH_RL5C478 0x0478 #define PCI_VENDOR_ID_ARTOP 0x1191 #define PCI_DEVICE_ID_ARTOP_ATP8400 0x0004 #define PCI_DEVICE_ID_ARTOP_ATP850UF 0x0005 #define PCI_DEVICE_ID_ARTOP_ATP860 0x0006 #define PCI_DEVICE_ID_ARTOP_ATP860R 0x0007 #define PCI_DEVICE_ID_ARTOP_AEC7610 0x8002 #define PCI_DEVICE_ID_ARTOP_AEC7612UW 0x8010 #define PCI_DEVICE_ID_ARTOP_AEC7612U 0x8020 #define PCI_DEVICE_ID_ARTOP_AEC7612S 0x8030 #define PCI_DEVICE_ID_ARTOP_AEC7612D 0x8040 #define PCI_DEVICE_ID_ARTOP_AEC7612SUW 0x8050 #define PCI_DEVICE_ID_ARTOP_8060 0x8060 #define PCI_VENDOR_ID_ZEITNET 0x1193 #define PCI_DEVICE_ID_ZEITNET_1221 0x0001 #define PCI_DEVICE_ID_ZEITNET_1225 0x0002 #define PCI_VENDOR_ID_OMEGA 0x119b #define PCI_DEVICE_ID_OMEGA_82C092G 0x1221 #define PCI_VENDOR_ID_FUJITSU_ME 0x119e #define PCI_DEVICE_ID_FUJITSU_FS155 0x0001 #define PCI_DEVICE_ID_FUJITSU_FS50 0x0003 #define PCI_SUBVENDOR_ID_KEYSPAN 0x11a9 #define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 #define PCI_VENDOR_ID_GALILEO 0x11ab #define PCI_DEVICE_ID_GALILEO_GT64011 0x4146 #define PCI_VENDOR_ID_LITEON 0x11ad #define PCI_DEVICE_ID_LITEON_LNE100TX 0x0002 #define PCI_VENDOR_ID_V3 0x11b0 #define PCI_DEVICE_ID_V3_V960 0x0001 #define PCI_DEVICE_ID_V3_V350 0x0001 #define PCI_DEVICE_ID_V3_V961 0x0002 #define PCI_DEVICE_ID_V3_V351 0x0002 #define PCI_VENDOR_ID_NP 0x11bc #define PCI_DEVICE_ID_NP_PCI_FDDI 0x0001 #define PCI_VENDOR_ID_ATT 0x11c1 #define PCI_DEVICE_ID_ATT_L56XMF 0x0440 #define PCI_DEVICE_ID_ATT_VENUS_MODEM 0x480 #define PCI_VENDOR_ID_SPECIALIX 0x11cb #define PCI_DEVICE_ID_SPECIALIX_IO8 0x2000 #define PCI_DEVICE_ID_SPECIALIX_XIO 0x4000 #define PCI_DEVICE_ID_SPECIALIX_RIO 0x8000 #define PCI_SUBDEVICE_ID_SPECIALIX_SPEED4 0xa004 #define PCI_VENDOR_ID_AURAVISION 0x11d1 #define PCI_DEVICE_ID_AURAVISION_VXP524 0x01f7 #define PCI_VENDOR_ID_ANALOG_DEVICES 0x11d4 #define PCI_DEVICE_ID_AD1889JS 0x1889 #define PCI_VENDOR_ID_IKON 0x11d5 #define PCI_DEVICE_ID_IKON_10115 0x0115 #define PCI_DEVICE_ID_IKON_10117 0x0117 #define PCI_VENDOR_ID_ZORAN 0x11de #define PCI_DEVICE_ID_ZORAN_36057 0x6057 #define PCI_DEVICE_ID_ZORAN_36120 0x6120 #define PCI_VENDOR_ID_KINETIC 0x11f4 #define PCI_DEVICE_ID_KINETIC_2915 0x2915 #define PCI_VENDOR_ID_COMPEX 0x11f6 #define PCI_DEVICE_ID_COMPEX_ENET100VG4 0x0112 #define PCI_DEVICE_ID_COMPEX_RL2000 0x1401 #define PCI_VENDOR_ID_RP 0x11fe #define PCI_DEVICE_ID_RP32INTF 0x0001 #define PCI_DEVICE_ID_RP8INTF 0x0002 #define PCI_DEVICE_ID_RP16INTF 0x0003 #define PCI_DEVICE_ID_RP4QUAD 0x0004 #define PCI_DEVICE_ID_RP8OCTA 0x0005 #define PCI_DEVICE_ID_RP8J 0x0006 #define PCI_DEVICE_ID_RPP4 0x000A #define PCI_DEVICE_ID_RPP8 0x000B #define PCI_DEVICE_ID_RP8M 0x000C #define PCI_VENDOR_ID_CYCLADES 0x120e #define PCI_DEVICE_ID_CYCLOM_Y_Lo 0x0100 #define PCI_DEVICE_ID_CYCLOM_Y_Hi 0x0101 #define PCI_DEVICE_ID_CYCLOM_4Y_Lo 0x0102 #define PCI_DEVICE_ID_CYCLOM_4Y_Hi 0x0103 #define PCI_DEVICE_ID_CYCLOM_8Y_Lo 0x0104 #define PCI_DEVICE_ID_CYCLOM_8Y_Hi 0x0105 #define PCI_DEVICE_ID_CYCLOM_Z_Lo 0x0200 #define PCI_DEVICE_ID_CYCLOM_Z_Hi 0x0201 #define PCI_DEVICE_ID_PC300_RX_2 0x0300 #define PCI_DEVICE_ID_PC300_RX_1 0x0301 #define PCI_DEVICE_ID_PC300_TE_2 0x0310 #define PCI_DEVICE_ID_PC300_TE_1 0x0311 #define PCI_VENDOR_ID_ESSENTIAL 0x120f #define PCI_DEVICE_ID_ESSENTIAL_ROADRUNNER 0x0001 #define PCI_VENDOR_ID_O2 0x1217 #define PCI_DEVICE_ID_O2_6729 0x6729 #define PCI_DEVICE_ID_O2_6730 0x673a #define PCI_DEVICE_ID_O2_6832 0x6832 #define PCI_DEVICE_ID_O2_6836 0x6836 #define PCI_VENDOR_ID_3DFX 0x121a #define PCI_DEVICE_ID_3DFX_VOODOO 0x0001 #define PCI_DEVICE_ID_3DFX_VOODOO2 0x0002 #define PCI_DEVICE_ID_3DFX_BANSHEE 0x0003 #define PCI_DEVICE_ID_3DFX_VOODOO3 0x0005 #define PCI_VENDOR_ID_SIGMADES 0x1236 #define PCI_DEVICE_ID_SIGMADES_6425 0x6401 #define PCI_VENDOR_ID_CCUBE 0x123f #define PCI_VENDOR_ID_AVM 0x1244 #define PCI_DEVICE_ID_AVM_B1 0x0700 #define PCI_DEVICE_ID_AVM_C4 0x0800 #define PCI_DEVICE_ID_AVM_A1 0x0a00 #define PCI_DEVICE_ID_AVM_C2 0x1100 #define PCI_DEVICE_ID_AVM_T1 0x1200 #define PCI_VENDOR_ID_DIPIX 0x1246 #define PCI_VENDOR_ID_STALLION 0x124d #define PCI_DEVICE_ID_STALLION_ECHPCI832 0x0000 #define PCI_DEVICE_ID_STALLION_ECHPCI864 0x0002 #define PCI_DEVICE_ID_STALLION_EIOPCI 0x0003 #define PCI_VENDOR_ID_OPTIBASE 0x1255 #define PCI_DEVICE_ID_OPTIBASE_FORGE 0x1110 #define PCI_DEVICE_ID_OPTIBASE_FUSION 0x1210 #define PCI_DEVICE_ID_OPTIBASE_VPLEX 0x2110 #define PCI_DEVICE_ID_OPTIBASE_VPLEXCC 0x2120 #define PCI_DEVICE_ID_OPTIBASE_VQUEST 0x2130 #define PCI_VENDOR_ID_ESS 0x125d #define PCI_DEVICE_ID_ESS_ESS1968 0x1968 #define PCI_DEVICE_ID_ESS_AUDIOPCI 0x1969 #define PCI_DEVICE_ID_ESS_ESS1978 0x1978 #define PCI_VENDOR_ID_SATSAGEM 0x1267 #define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016 #define PCI_DEVICE_ID_SATSAGEM_PCR2101 0x5352 #define PCI_DEVICE_ID_SATSAGEM_TELSATTURBO 0x5a4b #define PCI_VENDOR_ID_HUGHES 0x1273 #define PCI_DEVICE_ID_HUGHES_DIRECPC 0x0002 #define PCI_VENDOR_ID_ENSONIQ 0x1274 #define PCI_DEVICE_ID_ENSONIQ_CT5880 0x5880 #define PCI_DEVICE_ID_ENSONIQ_ES1370 0x5000 #define PCI_DEVICE_ID_ENSONIQ_ES1371 0x1371 #define PCI_VENDOR_ID_ROCKWELL 0x127A #define PCI_VENDOR_ID_ITE 0x1283 #define PCI_DEVICE_ID_ITE_IT8172G 0x8172 /* formerly Platform Tech */ #define PCI_VENDOR_ID_ESS_OLD 0x1285 #define PCI_DEVICE_ID_ESS_ESS0100 0x0100 #define PCI_VENDOR_ID_ALTEON 0x12ae #define PCI_DEVICE_ID_ALTEON_ACENIC 0x0001 #define PCI_VENDOR_ID_USR 0x12B9 #define PCI_SUBVENDOR_ID_CONNECT_TECH 0x12c4 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_232 0x0001 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH4_232 0x0002 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH2_232 0x0003 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_485 0x0004 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_485_4_4 0x0005 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH4_485 0x0006 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH4_485_2_2 0x0007 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH2_485 0x0008 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_485_2_6 0x0009 #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH081101V1 0x000A #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH041101V1 0x000B #define PCI_VENDOR_ID_PICTUREL 0x12c5 #define PCI_DEVICE_ID_PICTUREL_PCIVST 0x0081 #define PCI_VENDOR_ID_NVIDIA_SGS 0x12d2 #define PCI_DEVICE_ID_NVIDIA_SGS_RIVA128 0x0018 #define PCI_SUBVENDOR_ID_CHASE_PCIFAST 0x12E0 #define PCI_SUBDEVICE_ID_CHASE_PCIFAST4 0x0031 #define PCI_SUBDEVICE_ID_CHASE_PCIFAST8 0x0021 #define PCI_SUBDEVICE_ID_CHASE_PCIFAST16 0x0011 #define PCI_SUBDEVICE_ID_CHASE_PCIFAST16FMC 0x0041 #define PCI_SUBVENDOR_ID_CHASE_PCIRAS 0x124D #define PCI_SUBDEVICE_ID_CHASE_PCIRAS4 0xF001 #define PCI_SUBDEVICE_ID_CHASE_PCIRAS8 0xF010 #define PCI_VENDOR_ID_AUREAL 0x12eb #define PCI_DEVICE_ID_AUREAL_VORTEX_1 0x0001 #define PCI_DEVICE_ID_AUREAL_VORTEX_2 0x0002 #define PCI_VENDOR_ID_CBOARDS 0x1307 #define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001 #define PCI_VENDOR_ID_SIIG 0x131f #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000 #define PCI_DEVICE_ID_SIIG_1S_10x_650 0x1001 #define PCI_DEVICE_ID_SIIG_1S_10x_850 0x1002 #define PCI_DEVICE_ID_SIIG_1S1P_10x_550 0x1010 #define PCI_DEVICE_ID_SIIG_1S1P_10x_650 0x1011 #define PCI_DEVICE_ID_SIIG_1S1P_10x_850 0x1012 #define PCI_DEVICE_ID_SIIG_1P_10x 0x1020 #define PCI_DEVICE_ID_SIIG_2P_10x 0x1021 #define PCI_DEVICE_ID_SIIG_2S_10x_550 0x1030 #define PCI_DEVICE_ID_SIIG_2S_10x_650 0x1031 #define PCI_DEVICE_ID_SIIG_2S_10x_850 0x1032 #define PCI_DEVICE_ID_SIIG_2S1P_10x_550 0x1034 #define PCI_DEVICE_ID_SIIG_2S1P_10x_650 0x1035 #define PCI_DEVICE_ID_SIIG_2S1P_10x_850 0x1036 #define PCI_DEVICE_ID_SIIG_4S_10x_550 0x1050 #define PCI_DEVICE_ID_SIIG_4S_10x_650 0x1051 #define PCI_DEVICE_ID_SIIG_4S_10x_850 0x1052 #define PCI_DEVICE_ID_SIIG_1S_20x_550 0x2000 #define PCI_DEVICE_ID_SIIG_1S_20x_650 0x2001 #define PCI_DEVICE_ID_SIIG_1S_20x_850 0x2002 #define PCI_DEVICE_ID_SIIG_1P_20x 0x2020 #define PCI_DEVICE_ID_SIIG_2P_20x 0x2021 #define PCI_DEVICE_ID_SIIG_2S_20x_550 0x2030 #define PCI_DEVICE_ID_SIIG_2S_20x_650 0x2031 #define PCI_DEVICE_ID_SIIG_2S_20x_850 0x2032 #define PCI_DEVICE_ID_SIIG_2P1S_20x_550 0x2040 #define PCI_DEVICE_ID_SIIG_2P1S_20x_650 0x2041 #define PCI_DEVICE_ID_SIIG_2P1S_20x_850 0x2042 #define PCI_DEVICE_ID_SIIG_1S1P_20x_550 0x2010 #define PCI_DEVICE_ID_SIIG_1S1P_20x_650 0x2011 #define PCI_DEVICE_ID_SIIG_1S1P_20x_850 0x2012 #define PCI_DEVICE_ID_SIIG_4S_20x_550 0x2050 #define PCI_DEVICE_ID_SIIG_4S_20x_650 0x2051 #define PCI_DEVICE_ID_SIIG_4S_20x_850 0x2052 #define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 #define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 #define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 #define PCI_VENDOR_ID_DOMEX 0x134a #define PCI_DEVICE_ID_DOMEX_DMX3191D 0x0001 #define PCI_VENDOR_ID_QUATECH 0x135C #define PCI_DEVICE_ID_QUATECH_QSC100 0x0010 #define PCI_DEVICE_ID_QUATECH_DSC100 0x0020 #define PCI_DEVICE_ID_QUATECH_DSC200 0x0030 #define PCI_DEVICE_ID_QUATECH_QSC200 0x0040 #define PCI_DEVICE_ID_QUATECH_ESC100D 0x0050 #define PCI_DEVICE_ID_QUATECH_ESC100M 0x0060 #define PCI_VENDOR_ID_SEALEVEL 0x135e #define PCI_DEVICE_ID_SEALEVEL_U530 0x7101 #define PCI_DEVICE_ID_SEALEVEL_UCOMM2 0x7201 #define PCI_DEVICE_ID_SEALEVEL_UCOMM422 0x7402 #define PCI_DEVICE_ID_SEALEVEL_UCOMM232 0x7202 #define PCI_DEVICE_ID_SEALEVEL_COMM4 0x7401 #define PCI_DEVICE_ID_SEALEVEL_COMM8 0x7801 #define PCI_VENDOR_ID_HYPERCOPE 0x1365 #define PCI_DEVICE_ID_HYPERCOPE_PLX 0x9050 #define PCI_SUBDEVICE_ID_HYPERCOPE_OLD_ERGO 0x0104 #define PCI_SUBDEVICE_ID_HYPERCOPE_ERGO 0x0106 #define PCI_SUBDEVICE_ID_HYPERCOPE_METRO 0x0107 #define PCI_SUBDEVICE_ID_HYPERCOPE_CHAMP2 0x0108 #define PCI_SUBDEVICE_ID_HYPERCOPE_PLEXUS 0x0109 #define PCI_VENDOR_ID_KAWASAKI 0x136b #define PCI_DEVICE_ID_MCHIP_KL5A72002 0xff01 #define PCI_VENDOR_ID_LMC 0x1376 #define PCI_DEVICE_ID_LMC_HSSI 0x0003 #define PCI_DEVICE_ID_LMC_DS3 0x0004 #define PCI_DEVICE_ID_LMC_SSI 0x0005 #define PCI_DEVICE_ID_LMC_T1 0x0006 #define PCI_VENDOR_ID_NETGEAR 0x1385 #define PCI_DEVICE_ID_NETGEAR_GA620 0x620a #define PCI_VENDOR_ID_APPLICOM 0x1389 #define PCI_DEVICE_ID_APPLICOM_PCIGENERIC 0x0001 #define PCI_DEVICE_ID_APPLICOM_PCI2000IBS_CAN 0x0002 #define PCI_DEVICE_ID_APPLICOM_PCI2000PFB 0x0003 #define PCI_VENDOR_ID_MOXA 0x1393 #define PCI_DEVICE_ID_MOXA_C104 0x1040 #define PCI_DEVICE_ID_MOXA_C168 0x1680 #define PCI_DEVICE_ID_MOXA_CP204J 0x2040 #define PCI_DEVICE_ID_MOXA_C218 0x2180 #define PCI_DEVICE_ID_MOXA_C320 0x3200 #define PCI_VENDOR_ID_CCD 0x1397 #define PCI_DEVICE_ID_CCD_2BD0 0x2bd0 #define PCI_DEVICE_ID_CCD_B000 0xb000 #define PCI_DEVICE_ID_CCD_B006 0xb006 #define PCI_DEVICE_ID_CCD_B007 0xb007 #define PCI_DEVICE_ID_CCD_B008 0xb008 #define PCI_DEVICE_ID_CCD_B009 0xb009 #define PCI_DEVICE_ID_CCD_B00A 0xb00a #define PCI_DEVICE_ID_CCD_B00B 0xb00b #define PCI_DEVICE_ID_CCD_B00C 0xb00c #define PCI_DEVICE_ID_CCD_B100 0xb100 #define PCI_VENDOR_ID_3WARE 0x13C1 #define PCI_DEVICE_ID_3WARE_1000 0x1000 #define PCI_VENDOR_ID_ABOCOM 0x13D1 #define PCI_DEVICE_ID_ABOCOM_2BD1 0x2BD1 #define PCI_VENDOR_ID_CMEDIA 0x13f6 #define PCI_DEVICE_ID_CMEDIA_CM8338A 0x0100 #define PCI_DEVICE_ID_CMEDIA_CM8338B 0x0101 #define PCI_DEVICE_ID_CMEDIA_CM8738 0x0111 #define PCI_DEVICE_ID_CMEDIA_CM8738B 0x0112 #define PCI_VENDOR_ID_LAVA 0x1407 #define PCI_DEVICE_ID_LAVA_DSERIAL 0x0100 /* 2x 16550 */ #define PCI_DEVICE_ID_LAVA_QUATRO_A 0x0101 /* 2x 16550, half of 4 port */ #define PCI_DEVICE_ID_LAVA_QUATRO_B 0x0102 /* 2x 16550, half of 4 port */ #define PCI_DEVICE_ID_LAVA_PORT_PLUS 0x0200 /* 2x 16650 */ #define PCI_DEVICE_ID_LAVA_QUAD_A 0x0201 /* 2x 16650, half of 4 port */ #define PCI_DEVICE_ID_LAVA_QUAD_B 0x0202 /* 2x 16650, half of 4 port */ #define PCI_DEVICE_ID_LAVA_SSERIAL 0x0500 /* 1x 16550 */ #define PCI_DEVICE_ID_LAVA_PORT_650 0x0600 /* 1x 16650 */ #define PCI_DEVICE_ID_LAVA_PARALLEL 0x8000 #define PCI_DEVICE_ID_LAVA_DUAL_PAR_A 0x8002 /* The Lava Dual Parallel is */ #define PCI_DEVICE_ID_LAVA_DUAL_PAR_B 0x8003 /* two PCI devices on a card */ #define PCI_DEVICE_ID_LAVA_BOCA_IOPPAR 0x8800 #define PCI_VENDOR_ID_TIMEDIA 0x1409 #define PCI_DEVICE_ID_TIMEDIA_1889 0x7168 #define PCI_VENDOR_ID_OXSEMI 0x1415 #define PCI_DEVICE_ID_OXSEMI_16PCI954 0x9501 #define PCI_DEVICE_ID_OXSEMI_16PCI952 0x950A #define PCI_DEVICE_ID_OXSEMI_16PCI95N 0x9511 #define PCI_VENDOR_ID_AIRONET 0x14b9 #define PCI_DEVICE_ID_AIRONET_4800_1 0x0001 #define PCI_DEVICE_ID_AIRONET_4800 0x4500 // values switched? see #define PCI_DEVICE_ID_AIRONET_4500 0x4800 // drivers/net/aironet4500_card.c #define PCI_VENDOR_ID_TITAN 0x14D2 #define PCI_DEVICE_ID_TITAN_110L 0x8011 #define PCI_DEVICE_ID_TITAN_210L 0x8021 #define PCI_DEVICE_ID_TITAN_100 0xA001 #define PCI_DEVICE_ID_TITAN_200 0xA005 #define PCI_DEVICE_ID_TITAN_400 0xA003 #define PCI_DEVICE_ID_TITAN_800B 0xA004 #define PCI_VENDOR_ID_PANACOM 0x14d4 #define PCI_DEVICE_ID_PANACOM_QUADMODEM 0x0400 #define PCI_DEVICE_ID_PANACOM_DUALMODEM 0x0402 #define PCI_VENDOR_ID_AFAVLAB 0x14db #define PCI_DEVICE_ID_AFAVLAB_TK9902 0x2120 #define PCI_VENDOR_ID_BROADCOM 0x14e4 #define PCI_DEVICE_ID_TIGON3 0x1644 #define PCI_VENDOR_ID_SYBA 0x1592 #define PCI_DEVICE_ID_SYBA_2P_EPP 0x0782 #define PCI_DEVICE_ID_SYBA_1P_ECP 0x0783 #define PCI_VENDOR_ID_MORETON 0x15aa #define PCI_DEVICE_ID_RASTEL_2PORT 0x2000 #define PCI_VENDOR_ID_ZOLTRIX 0x15b0 #define PCI_DEVICE_ID_ZOLTRIX_2BD0 0x2bd0 #define PCI_VENDOR_ID_PDC 0x15e9 #define PCI_DEVICE_ID_PDC_1841 0x1841 #define PCI_VENDOR_ID_SYMPHONY 0x1c1c #define PCI_DEVICE_ID_SYMPHONY_101 0x0001 #define PCI_VENDOR_ID_TEKRAM 0x1de1 #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29 #define PCI_VENDOR_ID_3DLABS 0x3d3d #define PCI_DEVICE_ID_3DLABS_300SX 0x0001 #define PCI_DEVICE_ID_3DLABS_500TX 0x0002 #define PCI_DEVICE_ID_3DLABS_DELTA 0x0003 #define PCI_DEVICE_ID_3DLABS_PERMEDIA 0x0004 #define PCI_DEVICE_ID_3DLABS_MX 0x0006 #define PCI_DEVICE_ID_3DLABS_PERMEDIA2 0x0007 #define PCI_DEVICE_ID_3DLABS_GAMMA 0x0008 #define PCI_DEVICE_ID_3DLABS_PERMEDIA2V 0x0009 #define PCI_VENDOR_ID_AVANCE 0x4005 #define PCI_DEVICE_ID_AVANCE_ALG2064 0x2064 #define PCI_DEVICE_ID_AVANCE_2302 0x2302 #define PCI_VENDOR_ID_NETVIN 0x4a14 #define PCI_DEVICE_ID_NETVIN_NV5000SC 0x5000 #define PCI_VENDOR_ID_S3 0x5333 #define PCI_DEVICE_ID_S3_PLATO_PXS 0x0551 #define PCI_DEVICE_ID_S3_ViRGE 0x5631 #define PCI_DEVICE_ID_S3_TRIO 0x8811 #define PCI_DEVICE_ID_S3_AURORA64VP 0x8812 #define PCI_DEVICE_ID_S3_TRIO64UVP 0x8814 #define PCI_DEVICE_ID_S3_ViRGE_VX 0x883d #define PCI_DEVICE_ID_S3_868 0x8880 #define PCI_DEVICE_ID_S3_928 0x88b0 #define PCI_DEVICE_ID_S3_864_1 0x88c0 #define PCI_DEVICE_ID_S3_864_2 0x88c1 #define PCI_DEVICE_ID_S3_964_1 0x88d0 #define PCI_DEVICE_ID_S3_964_2 0x88d1 #define PCI_DEVICE_ID_S3_968 0x88f0 #define PCI_DEVICE_ID_S3_TRIO64V2 0x8901 #define PCI_DEVICE_ID_S3_PLATO_PXG 0x8902 #define PCI_DEVICE_ID_S3_ViRGE_DXGX 0x8a01 #define PCI_DEVICE_ID_S3_ViRGE_GX2 0x8a10 #define PCI_DEVICE_ID_S3_ViRGE_MX 0x8c01 #define PCI_DEVICE_ID_S3_ViRGE_MXP 0x8c02 #define PCI_DEVICE_ID_S3_ViRGE_MXPMV 0x8c03 #define PCI_DEVICE_ID_S3_SONICVIBES 0xca00 #define PCI_VENDOR_ID_DCI 0x6666 #define PCI_DEVICE_ID_DCI_PCCOM4 0x0001 #define PCI_DEVICE_ID_DCI_PCCOM8 0x0002 #define PCI_VENDOR_ID_GENROCO 0x5555 #define PCI_DEVICE_ID_GENROCO_HFP832 0x0003 #define PCI_VENDOR_ID_INTEL 0x8086 #define PCI_DEVICE_ID_INTEL_21145 0x0039 #define PCI_DEVICE_ID_INTEL_82375 0x0482 #define PCI_DEVICE_ID_INTEL_82424 0x0483 #define PCI_DEVICE_ID_INTEL_82378 0x0484 #define PCI_DEVICE_ID_INTEL_82430 0x0486 #define PCI_DEVICE_ID_INTEL_82434 0x04a3 #define PCI_DEVICE_ID_INTEL_I960 0x0960 #define PCI_DEVICE_ID_INTEL_82562ET 0x1031 #define PCI_DEVICE_ID_INTEL_82559ER 0x1209 #define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221 #define PCI_DEVICE_ID_INTEL_82092AA_1 0x1222 #define PCI_DEVICE_ID_INTEL_7116 0x1223 #define PCI_DEVICE_ID_INTEL_82596 0x1226 #define PCI_DEVICE_ID_INTEL_82865 0x1227 #define PCI_DEVICE_ID_INTEL_82557 0x1229 #define PCI_DEVICE_ID_INTEL_82437 0x122d #define PCI_DEVICE_ID_INTEL_82371FB_0 0x122e #define PCI_DEVICE_ID_INTEL_82371FB_1 0x1230 #define PCI_DEVICE_ID_INTEL_82371MX 0x1234 #define PCI_DEVICE_ID_INTEL_82437MX 0x1235 #define PCI_DEVICE_ID_INTEL_82441 0x1237 #define PCI_DEVICE_ID_INTEL_82380FB 0x124b #define PCI_DEVICE_ID_INTEL_82439 0x1250 #define PCI_DEVICE_ID_INTEL_80960_RP 0x1960 #define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000 #define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010 #define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020 #define PCI_DEVICE_ID_INTEL_82437VX 0x7030 #define PCI_DEVICE_ID_INTEL_82439TX 0x7100 #define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110 #define PCI_DEVICE_ID_INTEL_82371AB 0x7111 #define PCI_DEVICE_ID_INTEL_82371AB_2 0x7112 #define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113 #define PCI_DEVICE_ID_INTEL_82801AA_0 0x2410 #define PCI_DEVICE_ID_INTEL_82801AA_1 0x2411 #define PCI_DEVICE_ID_INTEL_82801AA_2 0x2412 #define PCI_DEVICE_ID_INTEL_82801AA_3 0x2413 #define PCI_DEVICE_ID_INTEL_82801AA_5 0x2415 #define PCI_DEVICE_ID_INTEL_82801AA_6 0x2416 #define PCI_DEVICE_ID_INTEL_82801AA_8 0x2418 #define PCI_DEVICE_ID_INTEL_82801AB_0 0x2420 #define PCI_DEVICE_ID_INTEL_82801AB_1 0x2421 #define PCI_DEVICE_ID_INTEL_82801AB_2 0x2422 #define PCI_DEVICE_ID_INTEL_82801AB_3 0x2423 #define PCI_DEVICE_ID_INTEL_82801AB_5 0x2425 #define PCI_DEVICE_ID_INTEL_82801AB_6 0x2426 #define PCI_DEVICE_ID_INTEL_82801AB_8 0x2428 #define PCI_DEVICE_ID_INTEL_82801BA_0 0x2440 #define PCI_DEVICE_ID_INTEL_82801BA_1 0x2442 #define PCI_DEVICE_ID_INTEL_82801BA_2 0x2443 #define PCI_DEVICE_ID_INTEL_82801BA_3 0x2444 #define PCI_DEVICE_ID_INTEL_82801BA_4 0x2445 #define PCI_DEVICE_ID_INTEL_82801BA_5 0x2446 #define PCI_DEVICE_ID_INTEL_82801BA_6 0x2448 #define PCI_DEVICE_ID_INTEL_82801BA_7 0x2449 #define PCI_DEVICE_ID_INTEL_82801BA_8 0x244a #define PCI_DEVICE_ID_INTEL_82801BA_9 0x244b #define PCI_DEVICE_ID_INTEL_82801BA_10 0x244c #define PCI_DEVICE_ID_INTEL_82801BA_11 0x244e #define PCI_DEVICE_ID_INTEL_82810_MC1 0x7120 #define PCI_DEVICE_ID_INTEL_82810_IG1 0x7121 #define PCI_DEVICE_ID_INTEL_82810_MC3 0x7122 #define PCI_DEVICE_ID_INTEL_82810_IG3 0x7123 #define PCI_DEVICE_ID_INTEL_82443LX_0 0x7180 #define PCI_DEVICE_ID_INTEL_82443LX_1 0x7181 #define PCI_DEVICE_ID_INTEL_82443BX_0 0x7190 #define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191 #define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192 #define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198 #define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199 #define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a #define PCI_DEVICE_ID_INTEL_82443MX_3 0x719b #define PCI_DEVICE_ID_INTEL_82372FB_0 0x7600 #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 #define PCI_DEVICE_ID_INTEL_82372FB_2 0x7602 #define PCI_DEVICE_ID_INTEL_82372FB_3 0x7603 #define PCI_DEVICE_ID_INTEL_82454GX 0x84c4 #define PCI_DEVICE_ID_INTEL_82450GX 0x84c5 #define PCI_DEVICE_ID_INTEL_82451NX 0x84ca #define PCI_VENDOR_ID_COMPUTONE 0x8e0e #define PCI_DEVICE_ID_COMPUTONE_IP2EX 0x0291 #define PCI_DEVICE_ID_COMPUTONE_PG 0x0302 #define PCI_SUBVENDOR_ID_COMPUTONE 0x8e0e #define PCI_SUBDEVICE_ID_COMPUTONE_PG4 0x0001 #define PCI_SUBDEVICE_ID_COMPUTONE_PG8 0x0002 #define PCI_SUBDEVICE_ID_COMPUTONE_PG6 0x0003 #define PCI_VENDOR_ID_KTI 0x8e2e #define PCI_DEVICE_ID_KTI_ET32P2 0x3000 #define PCI_VENDOR_ID_ADAPTEC 0x9004 #define PCI_DEVICE_ID_ADAPTEC_7810 0x1078 #define PCI_DEVICE_ID_ADAPTEC_7821 0x2178 #define PCI_DEVICE_ID_ADAPTEC_38602 0x3860 #define PCI_DEVICE_ID_ADAPTEC_7850 0x5078 #define PCI_DEVICE_ID_ADAPTEC_7855 0x5578 #define PCI_DEVICE_ID_ADAPTEC_5800 0x5800 #define PCI_DEVICE_ID_ADAPTEC_3860 0x6038 #define PCI_DEVICE_ID_ADAPTEC_1480A 0x6075 #define PCI_DEVICE_ID_ADAPTEC_7860 0x6078 #define PCI_DEVICE_ID_ADAPTEC_7861 0x6178 #define PCI_DEVICE_ID_ADAPTEC_7870 0x7078 #define PCI_DEVICE_ID_ADAPTEC_7871 0x7178 #define PCI_DEVICE_ID_ADAPTEC_7872 0x7278 #define PCI_DEVICE_ID_ADAPTEC_7873 0x7378 #define PCI_DEVICE_ID_ADAPTEC_7874 0x7478 #define PCI_DEVICE_ID_ADAPTEC_7895 0x7895 #define PCI_DEVICE_ID_ADAPTEC_7880 0x8078 #define PCI_DEVICE_ID_ADAPTEC_7881 0x8178 #define PCI_DEVICE_ID_ADAPTEC_7882 0x8278 #define PCI_DEVICE_ID_ADAPTEC_7883 0x8378 #define PCI_DEVICE_ID_ADAPTEC_7884 0x8478 #define PCI_DEVICE_ID_ADAPTEC_7885 0x8578 #define PCI_DEVICE_ID_ADAPTEC_7886 0x8678 #define PCI_DEVICE_ID_ADAPTEC_7887 0x8778 #define PCI_DEVICE_ID_ADAPTEC_7888 0x8878 #define PCI_DEVICE_ID_ADAPTEC_1030 0x8b78 #define PCI_VENDOR_ID_ADAPTEC2 0x9005 #define PCI_DEVICE_ID_ADAPTEC2_2940U2 0x0010 #define PCI_DEVICE_ID_ADAPTEC2_2930U2 0x0011 #define PCI_DEVICE_ID_ADAPTEC2_7890B 0x0013 #define PCI_DEVICE_ID_ADAPTEC2_7890 0x001f #define PCI_DEVICE_ID_ADAPTEC2_3940U2 0x0050 #define PCI_DEVICE_ID_ADAPTEC2_3950U2D 0x0051 #define PCI_DEVICE_ID_ADAPTEC2_7896 0x005f #define PCI_DEVICE_ID_ADAPTEC2_7892A 0x0080 #define PCI_DEVICE_ID_ADAPTEC2_7892B 0x0081 #define PCI_DEVICE_ID_ADAPTEC2_7892D 0x0083 #define PCI_DEVICE_ID_ADAPTEC2_7892P 0x008f #define PCI_DEVICE_ID_ADAPTEC2_7899A 0x00c0 #define PCI_DEVICE_ID_ADAPTEC2_7899B 0x00c1 #define PCI_DEVICE_ID_ADAPTEC2_7899D 0x00c3 #define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf #define PCI_VENDOR_ID_ATRONICS 0x907f #define PCI_DEVICE_ID_ATRONICS_2015 0x2015 #define PCI_VENDOR_ID_HOLTEK 0x9412 #define PCI_DEVICE_ID_HOLTEK_6565 0x6565 #define PCI_VENDOR_ID_NETMOS 0x9710 #define PCI_DEVICE_ID_NETMOS_9735 0x9735 #define PCI_DEVICE_ID_NETMOS_9835 0x9835 #define PCI_SUBVENDOR_ID_EXSYS 0xd84d #define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014 #define PCI_VENDOR_ID_TIGERJET 0xe159 #define PCI_DEVICE_ID_TIGERJET_300 0x0001 #define PCI_DEVICE_ID_TIGERJET_100 0x0002 #define PCI_VENDOR_ID_ARK 0xedd8 #define PCI_DEVICE_ID_ARK_STING 0xa091 #define PCI_DEVICE_ID_ARK_STINGARK 0xa099 #define PCI_DEVICE_ID_ARK_2000MT 0xa0a1 #define PCI_VENDOR_ID_MICROGATE 0x13c0 #define PCI_DEVICE_ID_MICROGATE_USC 0x0010 #define PCI_DEVICE_ID_MICROGATE_SCC 0x0020 #define PCI_DEVICE_ID_MICROGATE_SCA 0x0030 ================================================ FILE: Project/Syser/Source/pcidef.h ================================================ #ifndef _PCIDEF_H_ #define _PCIDEF_H_ #define outl(value,port) SyserWritePortDword(port,value) #define outw(value,port) SyserWritePortWord(port,value) #define outb(value,port) SyserWritePortByte(port,value) #define inl SyserReadPortDword #define inw SyserReadPortWord #define inb SyserReadPortByte #define u16 WORD #define u32 DWORD #define u8 BYTE //#define PCIBIOS_DEVICE_NOT_FOUND 0 //#define PCI_CLASS_DEVICE 0 typedef struct pci_dev_t { int bus; int devfn; }pci_dev; typedef struct st_pci_ops_t { int (*read_byte)( pci_dev *, int where, u8 *val); int (*read_word)( pci_dev *, int where, u16 *val); int (*read_dword)( pci_dev *, int where, u32 *val); int (*write_byte)( pci_dev *, int where, u8 val); int (*write_word)( pci_dev *, int where, u16 val); int (*write_dword)( pci_dev *, int where, u32 val); }pci_ops; pci_ops * pci_init(void); int pci_sanity_check(pci_ops *ops); int pci_conf2_write_config_dword( pci_dev *dev, int where, u32 value); int pci_conf2_write_config_word( pci_dev *dev, int where, u16 value); int pci_conf2_write_config_byte( pci_dev *dev, int where, u8 value); int pci_conf2_read_config_dword( pci_dev *dev, int where, u32 *value); int pci_conf2_read_config_word( pci_dev *dev, int where, u16 *value); int pci_conf2_read_config_byte( pci_dev *dev, int where, u8 *value); int pci_conf1_read_config_byte( pci_dev *dev, int where, u8 *value); int pci_conf1_read_config_word( pci_dev *dev, int where, u16 *value); int pci_conf1_read_config_dword( pci_dev *dev, int where, u32 *value); int pci_conf1_write_config_byte( pci_dev *dev, int where, u8 value); int pci_conf1_write_config_word( pci_dev *dev, int where, u16 value); int pci_conf1_write_config_dword( pci_dev *dev, int where, u32 value); extern pci_ops pci_direct_conf2; extern pci_ops pci_direct_conf1; extern pci_ops *CurrentPCI; #endif ================================================ FILE: Project/Syser/Source/pcreplus.cpp ================================================ /** * @file pcreplus.cpp * @brief Wrapper classes for PCRE using C++ * @author Simon Steele * @note Copyright (c) 2002-2003 Simon Steele * * Programmers Notepad 2 : The license file (license.[txt|html]) describes * the conditions under which this source may be modified / distributed. * * This code uses PCRE to provide regular expressions support - see pcre_license.txt. */ #include "stdafx.h" #include "pcreplus.h" /*#ifdef PCRE_STATIC #pragma comment(lib, "libpcre.lib") #pragma message("Automatically linking with libpcre.lib") #endif*/ namespace PCRE { RegExp::RegExp() { m_pRE = NULL; m_pStudyData = NULL; m_pSubStringVector = NULL; m_strmatch = NULL; } RegExp::RegExp(const char* expression, int flags) { m_pRE = NULL; m_pStudyData = NULL; m_pSubStringVector = NULL; m_strmatch = NULL; compile(expression, (flags != -1) ? flags : PCRE_DEFAULT_FLAGS); } RegExp::~RegExp() { clear(); } void RegExp::Compile(const char* expression, int flags /*= -1*/) { compile(expression, (flags != -1) ? flags : PCRE_DEFAULT_FLAGS); } /** * @brief Study/Analyse the regular expression to see if we can optimise it. * Useful if you are going to use the expression multiple times. * * @note Throws an REException if the study fails. * This is from the PCRE manual as of version 4.2: At present, * studying a pattern is useful only for non-anchored patterns * that do not have a single fixed starting character. A bitmap of * possible starting characters is created. */ void RegExp::Study() { const char* pError; m_pStudyData = pcre_study(m_pRE, 0, &pError); if(pError != NULL) { ;//throw REException(pError); } } /** * @brief See if the pattern matches all or part of str. * @param str The string to try to match. * @param offset Offset into the string to match from. Default 0. */ bool RegExp::Match(const char* str, int offset) { return match(str, strlen(str), offset, 0); } bool RegExp::Match(const char* str, int length, int offset) { return match(str, length, offset, 0); } bool RegExp::GetNamedMatch(const char* name, char** str) { const char* buf; int result = pcre_get_named_substring(m_pRE, m_strmatch, m_pSubStringVector, m_lastResult, name, &buf); if( result >= 0 ) { *str = (char*)buf; //pcre_free_substring(buf); return true; } else { /* if(result != PCRE_ERROR_NOSUBSTRING) throw REException(result); */ return false; } } /** * @brief clear down anything held for the current regular expression. */ void RegExp::clear() { if(m_pRE) { pcre_free(m_pRE); m_pRE = NULL; } if(m_pStudyData) { pcre_free(m_pStudyData); m_pStudyData = NULL; } if(m_pSubStringVector) { delete [] m_pSubStringVector; m_pSubStringVector = NULL; } m_nCaptureGroups = 0; m_strmatch = 0; m_strmatchlen = 0; m_lastResult = 0; } /** * @brief Compile the regular expression string into a PCRE compiled expression. * * @note Throws an REException if the compile fails. */ void RegExp::compile(const char* expression, int flags) { clear(); const char* pError = NULL; int eoffset = 0; m_pRE = pcre_compile(expression, flags, &pError, &eoffset, NULL); if(!m_pRE) { //throw REException(pError, eoffset); } // Now we find out how many capture groups there are in the expression. int nGroups; int result = pcre_fullinfo(m_pRE, m_pStudyData, PCRE_INFO_CAPTURECOUNT, &nGroups ); if(result == 0) { // The size of the array to hold the captures must be a multiple of 3. // There may also be a group before and after the groups, so add 2. m_nCaptureGroups = (nGroups + 2) * 3; } else { // pcre_fullinfo failed. //throw REException(result); } } bool RegExp::match(const char* str, int length, int offset, int flags) { if(m_pSubStringVector == NULL) { m_pSubStringVector = new int[m_nCaptureGroups]; } int result = 0; // Hmmm.... store these for later use - this is possibly bad, but it's fast. m_strmatch = str; m_strmatchlen = length; result = pcre_exec(m_pRE, m_pStudyData, str, length, offset, flags, m_pSubStringVector, m_nCaptureGroups); m_lastResult = result; return result > 0; } REException::REException(const char* message, int offset) { set(message, offset); } REException::REException(int errCode) { int acode = abs(errCode); if(acode <= 8) { static const char* errors[8] = { "no match", /*PCRE_ERROR_NOMATCH (-1)*/ "null argument", /*PCRE_ERROR_NULL (-2)*/ "bad option", /*PCRE_ERROR_BADOPTION (-3)*/ "bad magic number", /*PCRE_ERROR_BADMAGIC (-4)*/ "unknown node", /*PCRE_ERROR_UNKNOWN_NODE (-5)*/ "no memory", /*PCRE_ERROR_NOMEMORY (-6)*/ "no substring", /*PCRE_ERROR_NOSUBSTRING (-7)*/ "match limit reached" /*PCRE_ERROR_MATCHLIMIT (-8)*/ }; set(errors[acode-1]); } else set(NULL); } REException::REException(const REException& copy) { set(copy.m_pMsg, copy.m_offset); } REException::~REException() { if(m_pMsg != NULL) delete [] m_pMsg; } void REException::set(const char* message, int offset) { if(message) { m_pMsg = new char[strlen(message)+1]; strcpy(m_pMsg, message); } else m_pMsg = NULL; m_offset = offset; } const char* REException::GetMessage() { return m_pMsg; } int REException::GetOffset() { return m_offset; } } // namespace PCRE ================================================ FILE: Project/Syser/Source/pcreplus.h ================================================ /** * @file pcreplus.h * @brief Wrapper classes for PCRE using C++ * @author Simon Steele * @note Copyright (c) 2002-2003 Simon Steele * * Programmers Notepad 2 : The license file (license.[txt|html]) describes * the conditions under which this source may be modified / distributed. * * This code uses PCRE to provide regular expressions support - see pcre_license.txt. */ #ifndef pcreplus_h__included #define pcreplus_h__included #define PCRE_STATIC //extern "C" { #include "..\..\..\Pcre\Source\Pcre.h" //} #ifndef PCRE_DEFAULT_FLAGS #ifndef PCRE_NO_UTF8 #define PCRE_DEFAULT_FLAGS PCRE::RegExp::UTF8 #else #define PCRE_DEFAULT_FLAGS 0 #endif #endif namespace PCRE { class RegExp { public: RegExp(); RegExp(const char* expression, int flags = -1); ~RegExp(); void Compile(const char* expression, int flags = -1); void Study(); bool Match(const char* str, int offset = 0); bool Match(const char* str, int length, int offset); bool GetNamedMatch(const char* name, char** str); enum { Anchored = PCRE_ANCHORED, CaseInsensitive = PCRE_CASELESS, DollarEndOnly = PCRE_DOLLAR_ENDONLY, // Dollar matches do not include newlines. DotMatchesAll = PCRE_DOTALL, // Include newlines in . matches Extended = PCRE_EXTENDED, // Ignore unescaped whitespace in pattern. MultiLine = PCRE_MULTILINE, NoAutoCapture = PCRE_NO_AUTO_CAPTURE, // Disable numbered capturing parentheses. UnGreedy = PCRE_UNGREEDY, // Invert operator greediness. UTF8 = PCRE_UTF8, // Enable UTF-8 Support. }; protected: void clear(); void compile(const char* expression, int flags); bool match(const char* str, int length, int offset, int flags); protected: pcre* m_pRE; pcre_extra* m_pStudyData; const char* m_strmatch; int m_strmatchlen; int m_lastResult; int* m_pSubStringVector; int m_nCaptureGroups; }; /** * @brief Exception class used by RegExp */ class REException { public: REException(const char* message, int offset = -1); REException(int errCode); REException(const REException& copy); ~REException(); void set(const char* message, int offset = -1); const char* GetMessage(); int GetOffset(); protected: char* m_pMsg; int m_offset; }; } // namespace PCRE #endif ================================================ FILE: Project/Syser/Source/syntax_color.l ================================================ %{ #include "Lex2.h" #ifdef CODE_OS_NT_DRV #define malloc mymalloc #define free myfree #define realloc myrealloc void myfree(void *); void* mymalloc(size_t size); void* myrealloc(void* path, size_t size); //#define FILE MYFILE //typedef void MYFILE; #endif #define YY_FATAL_ERROR /* Included code before lex code */ /*************** Includes and Defines *****************************/ /* __abstract | __alignof | __asm | __assume | __based | __box | __cdecl | __declspec | __delegate | __event | __except | __fastcall | __forceinline | __gc | __hook | __identifier | __if_exists | __if_not_exists | __inline | __int8 | __int16 | __int32 | __int64 | __interface | __leave | __m64 | __m128 | __m128d | __m128i | __multiple_inheritance | __nogc | __noop | __pin | __property | __raise | __sealed | __single_inheritance | __stdcall | __super | __try_cast | __try | __except | __finally | __unhook | __uuidof | __value | __virtual_inheritance | __w64 | bool | break | case | catch | char | class | const | const_cast | continue | default | delete | deprecated | dllexport | dllimport | do | double | dynamic_cast | else | enum | explicit | extern | false | float | for | friend | goto | if | inline | int | long | mutable | naked | namespace | new | noinline | noreturn | nothrow | novtable | operator | private | property | protected | public | register | reinterpret_cast | return | selectany | short | signed | sizeof | static | static_cast | struct | switch | template | this | thread | throw | true | try | typedef | typeid | typename | union | unsigned | using | uuid | virtual | void | volatile | __wchar_t | wchar_t | while | */ typedef char * YYSTYPE; /* interface with lexer: should be in header file*/ char * yylval; /* We will always point at the text of the lexeme. This makes it easy to print out nice trees when YYDEBUG is enabled. (see C++ grammar file and its definition of YYDEBUG_LEXER_TEXT to be "yylval" */ #define WHITE_RETURN(x) /* do nothing */ #define NEW_LINE_RETURN() WHITE_RETURN('\n') #define PA_KEYWORD_RETURN(x) RETURN_VAL(x) /* standard C PArser Keyword */ #define CPP_KEYWORD_RETURN(x) PA_KEYWORD_RETURN(x) /* C++ keyword */ #define PPPA_KEYWORD_RETURN(x) RETURN_VAL(x) /* both PreProcessor and PArser keyword */ #define PP_KEYWORD_RETURN(x) IDENTIFIER_RETURN() #define COMMENT_RETURN() RETURN_VAL(x) #define NUMERICAL_RETURN(x) RETURN_VAL(x) /* some sort of constant */ #define LITERAL_RETURN(x) RETURN_VAL(x) /* a string literal */ #define RETURN_VAL(x) yylval = yytext; return(x); #define isatty(a) (1) #define fileno(a) (1) #define YY_SKIP_YYWRAP int main1(int argc, char*argv[]); int yywrap(){return 1;} #undef YY_INPUT #define YY_INPUT(b,r,ms) (r = my_yyinput(b,ms)) #ifndef min #define min(a,b) ((a)<(b)?(a):(b)) #endif int my_yyinput(char* buf,int max_size); #define ECHO %} identifier [a-zA-Z_][0-9a-zA-Z_]* exponent_part [eE][-+]?[0-9]+ fractional_constant ([0-9]*"."[0-9]+)|([0-9]+".") floating_constant (({fractional_constant}{exponent_part}?)|([0-9]+{exponent_part}))[FfLl]? integer_suffix_opt ([uU]?[lL]?)|([lL][uU]) decimal_constant [1-9][0-9]*{integer_suffix_opt} octal_constant "0"[0-7]*{integer_suffix_opt} hex_constant "0"[xX][0-9a-fA-F]+{integer_suffix_opt} simple_escape [abfnrtv'"?\\] octal_escape [0-7]{1,3} hex_escape "x"[0-9a-fA-F]+ escape_sequence [\\]({simple_escape}|{octal_escape}|{hex_escape}) c_char [^'\\\n]|{escape_sequence} s_char [^"\\\n]|{escape_sequence} h_tab [\011] form_feed [\014] v_tab [\013] c_return [\015] horizontal_white [ ]|{h_tab} %x COMMENT %% {horizontal_white}+ { RETURN_VAL(LEX_WHITE_SPACE); } ({v_tab}|{c_return}|{form_feed})+ { RETURN_VAL(LEX_WHITE_SPACE); } ({horizontal_white}|{v_tab}|{c_return}|{form_feed})*"\n" { RETURN_VAL(LEX_WHITE_SPACE); } __abstract {RETURN_VAL(LEX___ABSTRACT);} __alignof {RETURN_VAL(LEX___ALIGNOF);} __asm {RETURN_VAL(LEX___ASM);} __assume {RETURN_VAL(LEX___ASSUME);} __based {RETURN_VAL(LEX___BASED);} __box {RETURN_VAL(LEX___BOX);} __cdecl {RETURN_VAL(LEX___CDECL);} __declspec {RETURN_VAL(LEX___DECLSPEC);} __delegate {RETURN_VAL(LEX___DELEGATE);} __event {RETURN_VAL(LEX___EVENT);} __except {RETURN_VAL(LEX___EXCEPT);} __fastcall {RETURN_VAL(LEX___FASTCALL);} __forceinline {RETURN_VAL(LEX___FORCEINLINE);} __gc {RETURN_VAL(LEX___GC);} __hook {RETURN_VAL(LEX___HOOK);} __identifier {RETURN_VAL(LEX___IDENTIFIER);} __if_exists {RETURN_VAL(LEX___IF_EXISTS);} __if_not_exists {RETURN_VAL(LEX___IF_NOT_EXISTS);} __inline {RETURN_VAL(LEX___INLINE);} __int8 {RETURN_VAL(LEX___INT8);} __int16 {RETURN_VAL(LEX___INT16);} __int32 {RETURN_VAL(LEX___INT32);} __int64 {RETURN_VAL(LEX___INT64);} __interface {RETURN_VAL(LEX___INTERFACE);} __leave {RETURN_VAL(LEX___LEAVE);} __m64 {RETURN_VAL(LEX___M64);} __m128 {RETURN_VAL(LEX___M128);} __m128d {RETURN_VAL(LEX___M128D);} __m128i {RETURN_VAL(LEX___M128I);} __multiple_inheritance {RETURN_VAL(LEX___MULTIPLE_INHERITANCE);} __nogc {RETURN_VAL(LEX___NOGC);} __noop {RETURN_VAL(LEX___NOOP);} __pin {RETURN_VAL(LEX___PIN);} __property {RETURN_VAL(LEX___PROPERTY);} __raise {RETURN_VAL(LEX___RAISE);} __sealed {RETURN_VAL(LEX___SEALED);} __single_inheritance {RETURN_VAL(LEX___SINGLE_INHERITANCE);} __stdcall {RETURN_VAL(LEX___STDCALL);} __super {RETURN_VAL(LEX___SUPER);} __try_cast {RETURN_VAL(LEX___TRY_CAST);} __try {RETURN_VAL(LEX___TRY);} __finally {RETURN_VAL(LEX___FINALLY);} __unhook {RETURN_VAL(LEX___UNHOOK);} __uuidof {RETURN_VAL(LEX___UUIDOF);} __value {RETURN_VAL(LEX___VALUE);} __virtual_inheritance {RETURN_VAL(LEX___VIRTUAL_INHERITANCE);} __w64 {RETURN_VAL(LEX___W64);} bool {RETURN_VAL(LEX_BOOL);} break {RETURN_VAL(LEX_BREAK);} case {RETURN_VAL(LEX_CASE);} catch {RETURN_VAL(LEX_CATCH);} char {RETURN_VAL(LEX_CHAR);} class {RETURN_VAL(LEX_CLASS);} const {RETURN_VAL(LEX_CONST);} const_cast {RETURN_VAL(LEX_CONST_CAST);} continue {RETURN_VAL(LEX_CONTINUE);} default {RETURN_VAL(LEX_DEFAULT);} delete {RETURN_VAL(LEX_DELETE);} deprecated {RETURN_VAL(LEX_DEPRECATED);} dllexport {RETURN_VAL(LEX_DLLEXPORT);} dllimport {RETURN_VAL(LEX_DLLIMPORT);} do {RETURN_VAL(LEX_DO);} double {RETURN_VAL(LEX_DOUBLE);} dynamic_cast {RETURN_VAL(LEX_DYNAMIC_CAST);} else {RETURN_VAL(LEX_ELSE);} enum {RETURN_VAL(LEX_ENUM);} explicit {RETURN_VAL(LEX_EXPLICIT);} extern {RETURN_VAL(LEX_EXTERN);} false {RETURN_VAL(LEX_FALSE);} float {RETURN_VAL(LEX_FLOAT);} for {RETURN_VAL(LEX_FOR);} friend {RETURN_VAL(LEX_FRIEND);} goto {RETURN_VAL(LEX_GOTO);} if {RETURN_VAL(LEX_IF);} inline {RETURN_VAL(LEX_INLINE);} int {RETURN_VAL(LEX_INT);} long {RETURN_VAL(LEX_LONG);} mutable {RETURN_VAL(LEX_MUTABLE);} naked {RETURN_VAL(LEX_NAKED);} namespace {RETURN_VAL(LEX_NAMESPACE);} new {RETURN_VAL(LEX_NEW);} noinline {RETURN_VAL(LEX_NOINLINE);} noreturn {RETURN_VAL(LEX_NORETURN);} nothrow {RETURN_VAL(LEX_NOTHROW);} novtable {RETURN_VAL(LEX_NOVTABLE);} operator {RETURN_VAL(LEX_OPERATOR);} private {RETURN_VAL(LEX_PRIVATE);} property {RETURN_VAL(LEX_PROPERTY);} protected {RETURN_VAL(LEX_PROTECTED);} public {RETURN_VAL(LEX_PUBLIC);} register {RETURN_VAL(LEX_REGISTER);} reinterpret_cast {RETURN_VAL(LEX_REINTERPRET_CAST);} return {RETURN_VAL(LEX_RETURN);} selectany {RETURN_VAL(LEX_SELECTANY);} short {RETURN_VAL(LEX_SHORT);} signed {RETURN_VAL(LEX_SIGNED);} sizeof {RETURN_VAL(LEX_SIZEOF);} static {RETURN_VAL(LEX_STATIC);} static_cast {RETURN_VAL(LEX_STATIC_CAST);} struct {RETURN_VAL(LEX_STRUCT);} switch {RETURN_VAL(LEX_SWITCH);} template {RETURN_VAL(LEX_TEMPLATE);} this {RETURN_VAL(LEX_THIS);} thread {RETURN_VAL(LEX_THREAD);} throw {RETURN_VAL(LEX_THROW);} true {RETURN_VAL(LEX_TRUE);} try {RETURN_VAL(LEX_TRY);} typedef {RETURN_VAL(LEX_TYPEDEF);} typeid {RETURN_VAL(LEX_TYPEID);} typename {RETURN_VAL(LEX_TYPENAME);} union {RETURN_VAL(LEX_UNION);} unsigned {RETURN_VAL(LEX_UNSIGNED);} using {RETURN_VAL(LEX_USING);} uuid {RETURN_VAL(LEX_UUID);} virtual {RETURN_VAL(LEX_VIRTUAL);} void {RETURN_VAL(LEX_VOID);} volatile {RETURN_VAL(LEX_VOLATILE);} __wchar_t {RETURN_VAL(LEX___WCHAR_T);} wchar_t {RETURN_VAL(LEX_WCHAR_T);} while {RETURN_VAL(LEX_WHILE);} #define {RETURN_VAL(LEX_PRE_DEFINE);} #error {RETURN_VAL(LEX_PRE_ERROR);} #import {RETURN_VAL(LEX_PRE_IMPORT);} #undef {RETURN_VAL(LEX_PRE_UNDEF);} #elif {RETURN_VAL(LEX_PRE_ELIF);} #if {RETURN_VAL(LEX_PRE_IF);} #include {RETURN_VAL(LEX_INCLUDE);} #using {RETURN_VAL(LEX_PRE_USING);} #else {RETURN_VAL(LEX_PRE_ELSE);} #ifdef {RETURN_VAL(LEX_PRE_IFDEF);} #line {RETURN_VAL(LEX_PRE_LINE);} #endif {RETURN_VAL(LEX_PRE_ENDIF);} #ifndef {RETURN_VAL(LEX_PRE_IFNDEF);} #pragma {RETURN_VAL(LEX_PRE_GRAMA);} {identifier} {RETURN_VAL(LEX_IDENTIFIER);} {decimal_constant} {RETURN_VAL(LEX_INTEGERconstant);} {octal_constant} {RETURN_VAL(LEX_OCTALconstant);} {hex_constant} {RETURN_VAL(LEX_HEXconstant);} {floating_constant} {RETURN_VAL(LEX_FLOATINGconstant);} "L"?[']{c_char}+['] {RETURN_VAL(LEX_CHARACTERconstant);} "L"?["]{s_char}*["] {RETURN_VAL(LEX_STRINGliteral);} "(" {RETURN_VAL(LEX_LP);} ")" {RETURN_VAL(LEX_RP);} "," {RETURN_VAL(LEX_COMMA);} "#" {RETURN_VAL('#') ;} "##" {RETURN_VAL(LEX_POUNDPOUND);} "{" {RETURN_VAL(LEX_LC);} "}" {RETURN_VAL(LEX_RC);} "[" {RETURN_VAL(LEX_LB);} "]" {RETURN_VAL(LEX_RB);} "." {RETURN_VAL(LEX_DOT);} "&" {RETURN_VAL(LEX_AND);} "*" {RETURN_VAL(LEX_STAR);} "+" {RETURN_VAL(LEX_PLUS);} "-" {RETURN_VAL(LEX_MINUS);} "~" {RETURN_VAL(LEX_NEGATE);} "!" {RETURN_VAL(LEX_NOT);} "/" {RETURN_VAL(LEX_DIV);} "%" {RETURN_VAL(LEX_MOD);} "<" {RETURN_VAL(LEX_LT);} ">" {RETURN_VAL(LEX_GT);} "^" {RETURN_VAL(LEX_XOR);} "|" {RETURN_VAL(LEX_PIPE);} "?" {RETURN_VAL(LEX_QUESTION);} ":" {RETURN_VAL(LEX_COLON);} ";" {RETURN_VAL(LEX_SEMICOLON);} "=" {RETURN_VAL(LEX_ASSIGN);} ".*" {RETURN_VAL(LEX_DOTstar);} "::" {RETURN_VAL(LEX_CLCL);} "->" {RETURN_VAL(LEX_ARROW);} "->*" {RETURN_VAL(LEX_ARROWstar);} "++" {RETURN_VAL(LEX_ICR);} "--" {RETURN_VAL(LEX_DECR);} "<<" {RETURN_VAL(LEX_LS);} ">>" {RETURN_VAL(LEX_RS);} "<=" {RETURN_VAL(LEX_LE);} ">=" {RETURN_VAL(LEX_GE);} "==" {RETURN_VAL(LEX_EQ);} "!=" {RETURN_VAL(LEX_NE);} "&&" {RETURN_VAL(LEX_ANDAND);} "||" {RETURN_VAL(LEX_OROR);} "*=" {RETURN_VAL(LEX_MULTassign);} "/=" {RETURN_VAL(LEX_DIVassign);} "%=" {RETURN_VAL(LEX_MODassign);} "+=" {RETURN_VAL(LEX_PLUSassign);} "-=" {RETURN_VAL(LEX_MINUSassign);} "<<=" {RETURN_VAL(LEX_LSassign);} ">>=" {RETURN_VAL(LEX_RSassign);} "&=" {RETURN_VAL(LEX_ANDassign);} "^=" {RETURN_VAL(LEX_ERassign);} "|=" {RETURN_VAL(LEX_ORassign);} "..." {RETURN_VAL(LEX_ELLIPSIS);} "/*" {BEGIN COMMENT;RETURN_VAL(LEX_COMMENT_BLOCK_BEGIN);} "*/" {BEGIN 0;RETURN_VAL(LEX_COMMENT_BLOCK_END);} "//".*\n {RETURN_VAL(LEX_COMMENT_LINE);} . {RETURN_VAL(LEX_UNKNOW);} %% /* I won't bother to provide any error recovery. I won't even handle unknown characters */ /*******************************************************************/ int isaTYPE(char* string) { return ('A' <= string[0] && 'Z' >= string[0]); } char* myinputptr="int main(int argc, char* argv[]);"; char* myinputlim; int my_yyinput(char* buf,int max_size) { int n = min(max_size,*(int*)&myinputlim - *(int*)&myinputptr); if(n > 0) { memcpy(buf,myinputptr,n); myinputptr += n; } return n; } #ifndef CODE_OS_NT_DRV #ifdef CODE_OS_WIN int main1(int argc, char* argv[]) #else int main(int argc, char* argv[]) #endif { FILE* fp; size_t filelen=strlen(myinputptr); if(argc==2) { fp = fopen(argv[1],"r"); if(fp) { filelen = fseek(fp,0,SEEK_END); filelen = ftell(fp); if(filelen<=0x1000000) { fseek(fp,0,SEEK_SET); myinputptr = (char*)malloc(filelen); memset(myinputptr,0,filelen); filelen = fread(myinputptr,1,filelen,fp); //printf("read file %d\n",filelen,myinputptr); } else filelen = strlen(myinputptr); fclose(fp); } } myinputlim=myinputptr+filelen; int retvalue=-1; while(retvalue=yylex()) { //printf("retvalue=%d %s\n",retvalue,yylval); } //printf("exit retvalue=%d %s\n",retvalue,yylval); return 0; } #endif #ifdef CODE_OS_NT_DRV typedef TMap CALLOCMAP; CALLOCMAP* gpLexAllocList=NULL; void myfree(void *ptr) { CALLOCMAP::IT FindIT ; FindIT = gpLexAllocList->Find(ptr); if(FindIT!=gpLexAllocList->End()) { gpLexAllocList->Remove(FindIT); delete ptr; if(gpLexAllocList->Count()==0) { delete gpLexAllocList; gpLexAllocList=NULL; } } } void* mymalloc(size_t size) { void* ptr=NULL; ptr = (void*)new char[size]; if(ptr) { if(gpLexAllocList==NULL) { gpLexAllocList=new CALLOCMAP; if(gpLexAllocList==NULL) return NULL; } gpLexAllocList->InsertUnique(ptr,size); } return ptr; } void* myrealloc(void* ptr, size_t size) { char *TmpPtr=NULL; CALLOCMAP::IT FindIT ; FindIT = gpLexAllocList->Find(ptr); if(FindIT!=gpLexAllocList->End()) { if(*FindIT>=size) return ptr; TmpPtr = (char*)mymalloc(size); memcpy(TmpPtr,ptr,*FindIT); myfree(ptr); } return TmpPtr; } #endif ================================================ FILE: Project/Syser/Win32/Syser.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Syser", "Syser.vcproj", "{0624BDA6-0FF6-44BA-95A1-992E64270B5D}" ProjectSection(ProjectDependencies) = postProject {142E5B2E-BB1F-42A2-B357-81F97F85F86E} = {142E5B2E-BB1F-42A2-B357-81F97F85F86E} {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} = {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {BB4C6B43-4809-417B-ADBC-981EFF82C18E} = {BB4C6B43-4809-417B-ADBC-981EFF82C18E} {BB4C6B43-4809-417B-ADBC-981EFF82C18E} = {BB4C6B43-4809-417B-ADBC-981EFF82C18E} {BB4C6B43-4809-417B-ADBC-981EFF82C18E} = {BB4C6B43-4809-417B-ADBC-981EFF82C18E} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "..\..\WinWisp\Win32\WinWisp.vcproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\Win32\Wisp.vcproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDWin32", "..\..\SDWin32\Win32\SDWin32.vcproj", "{BB4C6B43-4809-417B-ADBC-981EFF82C18E}" ProjectSection(ProjectDependencies) = postProject {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Debug|Win32.ActiveCfg = Debug|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Debug|Win32.Build.0 = Debug|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Release|Win32.ActiveCfg = Release|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Release|Win32.Build.0 = Release|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Trial|Win32.ActiveCfg = Release|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.Build.0 = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.ActiveCfg = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.Build.0 = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.Build.0 = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.ActiveCfg = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.Build.0 = Trial|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Debug|Win32.ActiveCfg = Debug|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Debug|Win32.Build.0 = Debug|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Release|Win32.ActiveCfg = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Release|Win32.Build.0 = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Trial|Win32.ActiveCfg = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Trial|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Syser/Win32/Syser.vcproj ================================================ ================================================ FILE: Project/Syser/Win32/Syser.vcxproj ================================================ Debug Win32 Release Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D} Syser Win32Proj Application v142 MultiByte Application v142 MultiByte <_ProjectFileVersion>16.0.33801.447 Debug\ Debug\ true Release\ Release\ false Disabled ../../../Addition/SyserDebugger;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_SYSER_;%(PreprocessorDefinitions) true Default MultiThreadedDebug Use Level3 EditAndContinue Psapi.lib;%(AdditionalDependencies) ../../../Bin/i386/SyserD.exe SyserUDM.def true ../../../Bin/i386/$(ProjectName)Ring3D.pdb Windows false ../../../Bin/i386/SyserUDM.lib MachineX86 false MaxSpeed ../../../Addition/SyserDebugger;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_SYSER_;%(PreprocessorDefinitions) MultiThreaded Use Level3 ProgramDatabase Psapi.lib;%(AdditionalDependencies) ../../../Bin/i386/Syser.exe SyserUDM.def true ../../../Bin/i386/$(ProjectName)Ring3.pdb Windows true true false ../../../Bin/i386/SyserUDM.lib MachineX86 Create Create {e50360c3-a8d9-4582-a0b8-0f8f88467113} false {094fa380-e96b-4ccb-8f40-d58f53823984} false {bb4c6b43-4809-417b-adbc-981eff82c18e} false {142e5b2e-bb1f-42a2-b357-81f97f85f86e} false {d3a470e1-dbd8-4ccb-bbb4-46842d343f84} false ================================================ FILE: Project/Syser/Win32/SyserUDM.def ================================================ NAME Syser.exe EXPORTS gpSyserPluginUI ================================================ FILE: Project/Syser/Win32/Syser_VS2019.sln ================================================ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.34031.81 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Syser", "Syser.vcxproj", "{0624BDA6-0FF6-44BA-95A1-992E64270B5D}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcxproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcxproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "..\..\WinWisp\Win32\WinWisp.vcxproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\Win32\Wisp.vcxproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDWin32", "..\..\SDWin32\Win32\SDWin32.vcxproj", "{BB4C6B43-4809-417B-ADBC-981EFF82C18E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Debug|Win32.ActiveCfg = Debug|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Debug|Win32.Build.0 = Debug|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Release|Win32.ActiveCfg = Release|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Release|Win32.Build.0 = Release|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Trial|Win32.ActiveCfg = Release|Win32 {0624BDA6-0FF6-44BA-95A1-992E64270B5D}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.Build.0 = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.ActiveCfg = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.Build.0 = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.Build.0 = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.ActiveCfg = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.Build.0 = Trial|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Debug|Win32.ActiveCfg = Debug|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Debug|Win32.Build.0 = Debug|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Release|Win32.ActiveCfg = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Release|Win32.Build.0 = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Trial|Win32.ActiveCfg = Release|Win32 {BB4C6B43-4809-417B-ADBC-981EFF82C18E}.Trial|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {422F7671-367E-4E22-848A-145BFD231AF0} EndGlobalSection EndGlobal ================================================ FILE: Project/Syser/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/Syser/WinXPDrv32/Syser.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Syser", "Syser.vcproj", "{7252580C-EB1A-41A1-AAC9-0F8464B6354B}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\WinXPDrv32\Code.vcproj", "{651091F4-30CA-4134-91EF-88FB5F4D7477}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\WinXPDrv32\Wisp.vcproj", "{351A08EC-318C-460A-9B79-3ECCF444ACA1}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\WinXPDrv32\EXEAnalyzer.vcproj", "{75EBA530-480B-4CB3-A1A5-5887AE6C0252}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {7252580C-EB1A-41A1-AAC9-0F8464B6354B}.Debug|Win32.ActiveCfg = Debug|Win32 {7252580C-EB1A-41A1-AAC9-0F8464B6354B}.Debug|Win32.Build.0 = Debug|Win32 {7252580C-EB1A-41A1-AAC9-0F8464B6354B}.Release|Win32.ActiveCfg = Release|Win32 {7252580C-EB1A-41A1-AAC9-0F8464B6354B}.Release|Win32.Build.0 = Release|Win32 {7252580C-EB1A-41A1-AAC9-0F8464B6354B}.Trial|Win32.ActiveCfg = Trial|Win32 {7252580C-EB1A-41A1-AAC9-0F8464B6354B}.Trial|Win32.Build.0 = Trial|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Debug|Win32.ActiveCfg = Debug|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Debug|Win32.Build.0 = Debug|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Release|Win32.ActiveCfg = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Release|Win32.Build.0 = Release|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Trial|Win32.ActiveCfg = Trial|Win32 {651091F4-30CA-4134-91EF-88FB5F4D7477}.Trial|Win32.Build.0 = Trial|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Debug|Win32.ActiveCfg = Debug|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Debug|Win32.Build.0 = Debug|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Release|Win32.ActiveCfg = Release|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Release|Win32.Build.0 = Release|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Trial|Win32.ActiveCfg = Trial|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Trial|Win32.Build.0 = Trial|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Debug|Win32.ActiveCfg = Debug|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Debug|Win32.Build.0 = Debug|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Release|Win32.ActiveCfg = Release|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Release|Win32.Build.0 = Release|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Trial|Win32.ActiveCfg = Trial|Win32 {75EBA530-480B-4CB3-A1A5-5887AE6C0252}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Syser/WinXPDrv32/Syser.vcproj ================================================ ================================================ FILE: Project/Syser/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_*_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_*_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/Syser/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/Syser/WinXPDrv32/ddkbuild_demo.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @set __DEMO__VERSION__=YES @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/Syser/amd64/common-amd64.asm ================================================ ; /* ; ܷװ ; ; ʮ ; QQ:764439262 ; */ EXTERN HvmSubvertCpu:PROC EXTERN HvmResumeGuest:PROC EXTERN OldKiFastCallEntry:QWORD .CODE MyKiFastCallEntry PROC jmp OldKiFastCallEntry MyKiFastCallEntry ENDP CmSubvert PROC push rax push rcx push rdx push rbx push rbp push rsi push rdi push r8 push r9 push r10 push r11 push r12 push r13 push r14 push r15 sub rsp, 28h mov rcx, rsp call HvmSubvertCpu add rsp, 28h pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop r9 pop r8 pop rdi pop rsi pop rbp pop rbx pop rdx pop rcx pop rax ret CmSubvert ENDP CmSlipIntoMatrix PROC call HvmResumeGuest add rsp, 28h pop r15 pop r14 pop r13 pop r12 pop r11 pop r10 pop r9 pop r8 pop rdi pop rsi pop rbp pop rbx pop rdx pop rcx pop rax ret CmSlipIntoMatrix ENDP HvmGetCpuIdInfo PROC push rbx push rcx push rdx push rsi mov rsi,rcx mov eax,[rsi] cpuid mov [rsi], eax mov [rsi+4], ebx mov [rsi+8], ecx mov [rsi+12], edx pop rsi pop rdx pop rcx pop rbx ret HvmGetCpuIdInfo ENDP ; ; Register Opreation ; HvmRegGetRdtscp PROC push rsi mov rsi,rcx rdtscp mov [rsi],eax mov [rsi+8],ecx mov [rsi+12],edx pop rsi ret HvmRegGetRdtscp ENDP HvmRegGetTSC PROC ; rdtscp rdtsc shl rdx, 32 or rax, rdx ret HvmRegGetTSC ENDP HvmRegGetRax PROC mov rax, rax ret HvmRegGetRax ENDP HvmRegGetRbx PROC mov rax, rbx ret HvmRegGetRbx ENDP HvmRegGetCs PROC mov rax, cs ret HvmRegGetCs ENDP HvmRegGetDs PROC mov rax, ds ret HvmRegGetDs ENDP HvmRegGetEs PROC mov rax, es ret HvmRegGetEs ENDP HvmRegGetSs PROC mov rax, ss ret HvmRegGetSs ENDP HvmRegGetFs PROC mov rax, fs ret HvmRegGetFs ENDP HvmRegGetGs PROC mov rax, gs ret HvmRegGetGs ENDP HvmRegGetCr0 PROC mov rax, cr0 ret HvmRegGetCr0 ENDP HvmRegGetCr2 PROC mov rax, cr2 ret HvmRegGetCr2 ENDP HvmRegGetCr3 PROC mov rax, cr3 ret HvmRegGetCr3 ENDP HvmRegGetCr4 PROC mov rax, cr4 ret HvmRegGetCr4 ENDP HvmRegGetCr8 PROC mov rax, cr8 ret HvmRegGetCr8 ENDP HvmRegSetCr8 PROC mov cr8, rcx ret HvmRegSetCr8 ENDP HvmRegGetDr6 PROC mov rax, dr6 ret HvmRegGetDr6 ENDP HvmRegGetDr0 PROC mov rax, dr0 ret HvmRegGetDr0 ENDP HvmRegGetDr1 PROC mov rax, dr1 ret HvmRegGetDr1 ENDP HvmRegGetDr2 PROC mov rax, dr2 ret HvmRegGetDr2 ENDP HvmRegGetDr3 PROC mov rax, dr3 ret HvmRegGetDr3 ENDP ;VOID HvmRegSetCR0(ULONG_PTR NewValue) HvmRegSetCR0 PROC mov cr0, rcx ret HvmRegSetCR0 ENDP ;VOID HvmRegSetCR2(ULONG_PTR NewValue) HvmRegSetCR2 PROC mov cr2, rcx ret HvmRegSetCR2 ENDP ;VOID HvmRegSetCR3(ULONG_PTR NewValue) HvmRegSetCR3 PROC mov cr3, rcx ret HvmRegSetCR3 ENDP ;VOID HvmRegSetCR4(ULONG_PTR NewValue) HvmRegSetCR4 PROC mov cr4, rcx ret HvmRegSetCR4 ENDP HvmRegGetRflags PROC pushfq pop rax ret HvmRegGetRflags ENDP HvmRegGetRsp PROC mov rax, rsp add rax, 8 ret HvmRegGetRsp ENDP HvmGetIdtBase PROC LOCAL idtr[10]:BYTE sidt idtr mov rax, QWORD PTR idtr[2] ret HvmGetIdtBase ENDP HvmGetIdtLimit PROC LOCAL idtr[10]:BYTE sidt idtr mov ax, WORD PTR idtr[0] ret HvmGetIdtLimit ENDP HvmGetGdtBase PROC LOCAL gdtr[10]:BYTE sgdt gdtr mov rax, QWORD PTR gdtr[2] ret HvmGetGdtBase ENDP HvmGetGdtLimit PROC LOCAL gdtr[10]:BYTE sgdt gdtr mov ax, WORD PTR gdtr[0] ret HvmGetGdtLimit ENDP ;add by cini HvmGetLdtr PROC sldt rax ret HvmGetLdtr ENDP ;add end HvmGetTrSelector PROC str rax ret HvmGetTrSelector ENDP ;ULONG_PTR HvmGetCR4(VOID) HvmGetCR4 PROC mov rax,cr4 ret HvmGetCR4 ENDP ;VOID HvmSetCR4(ULONG_PTR NewValue); HvmSetCR4 PROC mov rax,rcx mov cr4,rax ret HvmSetCR4 ENDP ; ; MSR Opreation ; ;ULONG64 MsrRead (ULONG32 reg ); MsrRead PROC rdmsr ; MSR[ecx] --> edx:eax shl rdx, 32 or rax, rdx ret MsrRead ENDP ; VOID MsrWrite (ULONG32 reg (rcx), ULONG64 MsrValue (rdx)); MsrWrite PROC mov rax, rdx shr rdx, 32 wrmsr ret MsrWrite ENDP ; ULONG64 MsrReadWithEaxEdx (PULONG32 reg (rcx), PULONG32 eax (rdx), PULONG32 edx (r8)); MsrReadWithEaxEdx PROC push r9 mov r9, rdx mov ecx, dword ptr [rcx] rdmsr ; MSR[ecx] --> edx:eax mov [r9], eax mov [r8], edx shl rdx, 32 mov edx,eax pop r9 ret MsrReadWithEaxEdx ENDP ; ; ; CmInitSpinLock PROC and dword ptr [rcx], 0 ret CmInitSpinLock ENDP CmAcquireSpinLock PROC loop_down: lock bts dword ptr [rcx], 0 jb loop_down ret CmAcquireSpinLock ENDP CmReleaseSpinLock PROC lock btr dword ptr [rcx], 0 ret CmReleaseSpinLock ENDP ; CmReloadGdtr (PVOID GdtBase (rcx), ULONG GdtLimit (rdx) ); CmReloadGdtr PROC push rcx shl rdx, 48 push rdx lgdt fword ptr [rsp+6] ; do not try to modify stack selector with this ;) pop rax pop rax ret CmReloadGdtr ENDP ; CmReloadIdtr (PVOID IdtBase (rcx), ULONG IdtLimit (rdx) ); CmReloadIdtr PROC push rcx shl rdx, 48 push rdx lidt fword ptr [rsp+6] pop rax pop rax ret CmReloadIdtr ENDP END ================================================ FILE: Project/Syser/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/Syser/i386/Function.asm ================================================ ; /* ; ܷװ ; ; ʮ ; QQ:764439262 ; */ .686p .MMX .XMM .model flat,StdCall option casemap:none include compatibility-x86.inc ;ⲿ ;EXTERN CloseDebugRegisterMontior@0:PROC ;ԭͶ ;SyserPrivateReadMSR Proto :DWORD ; ;extern gbActive:BYTE .DATA ;bInit db 0 .CODE ; ; LastBranch.cpp ; ;int SyserDetectLastBranchType(VOID); SyserDetectLastBranchType PROC local Index:DWORD local Index2:DWORD local From:DWORD local To:DWORD local From1:DWORD local To1:DWORD local Tos1:DWORD local Tos2:DWORD local From2:DWORD local To2:DWORD mov Index,0 mov Index2,0 mov From,0 mov To,0 mov From1,0 mov To1,0 mov Tos1,0 mov Tos2,0 mov From2,0 mov To2,0 pushad pushfd cli mov ecx,01D9h xor eax,eax xor edx,edx rdmsr or eax,1 wrmsr call @@001 nop @@001: pop eax xor eax,eax xor edx,edx mov ecx,01C9h rdmsr mov Tos1,eax call @@002 nop @@002: pop eax xor eax,eax xor edx,edx mov ecx,01C9h rdmsr mov Tos2,eax popfd popad push ebx ;ڵ P6 û MSR_LASTBRANCH_TOP mov eax,Tos1 and eax,0Fh mov ebx,Tos2 and ebx,0Fh test eax,ebx jnz @@EndIf pop ebx xor eax,eax ret @@EndIf: pop ebx pushad pushfd cli call @@003 nop @@003: pop eax lea eax,[eax-5] mov From,eax lea eax,[eax+6] mov To,eax xor eax,eax xor edx,edx mov ecx,01C9h rdmsr and eax,3 mov ecx,eax add ecx,01DBh xor eax,eax xor edx,edx rdmsr mov From1,eax mov To1,edx popfd popad mov eax,From cmp eax,From1 jnz @@NextCon mov eax,To cmp eax,To1 jnz @@NextCon jmp @@Ret1 @@NextCon: mov eax,From cmp eax,To1 jnz @@EndIf1 mov eax,To cmp eax,From1 jnz @@EndIf1 @@Ret1: mov eax,1 ret @@EndIf1: pushad pushfd cli call @@004 nop @@004: pop eax lea eax,[eax-5] mov From,eax lea eax,[eax+6] mov To,eax xor eax,eax xor edx,edx mov ecx,01C9h rdmsr and eax,7 mov Index,eax mov ecx,eax add ecx,040h xor eax,eax xor edx,edx rdmsr mov From1,eax mov To1,edx jmp @@102 nop @@102: jmp @@103 nop @@103: jmp @@104 nop @@104: jmp @@105 nop @@105: mov ecx,01D9h xor eax,eax xor edx,edx rdmsr and eax,7 mov Index2,eax popfd popad mov eax,From ;һѭջмԪ cmp eax,From1 jnz @@NextCon1 mov eax,To cmp eax,To1 jnz @@NextCon1 jmp @@Ret2 @@NextCon1: mov eax,From cmp eax,To1 jnz @@EndIf2 mov eax,To cmp eax,From1 jnz @@EndIf2 @@Ret2: mov eax,Index ; Index == Index2 ѭջ4Ԫ 8 Ԫ cmp eax,Index2 jz @@Eax2 mov eax,3 ret @@Eax2: mov eax,2 ret @@EndIf2: pushad pushfd cli call @@034 nop @@034: pop eax lea eax,[eax-5] mov From,eax lea eax,[eax+6] mov To,eax xor eax,eax xor edx,edx mov ecx,01C9h rdmsr and eax,7 mov Index,eax mov ecx,eax add ecx,040h xor eax,eax xor edx,edx rdmsr mov From1,eax mov ecx,Index add ecx,060h xor eax,eax xor edx,edx rdmsr mov To1,eax jmp @@005 nop @@005: jmp @@006 nop @@006: jmp @@007 nop @@007: jmp @@008 nop @@008: xor eax,eax xor edx,edx mov ecx,01C9h rdmsr and eax,7 mov Index2,eax popfd popad mov eax,From ;һѭջмԪ cmp eax,From1 jnz @@NextCon2 mov eax,To cmp eax,To1 jnz @@NextCon2 jmp @@Ret3 @@NextCon2: mov eax,From cmp eax,To1 jnz @@EndIf3 mov eax,To cmp eax,From1 jnz @@EndIf3 @@Ret3: mov eax,Index ; Index == Index2 ѭջ4Ԫ 8 Ԫ cmp eax,Index2 jz @@Eax4 mov eax,5 ret @@Eax4: mov eax,4 ret @@EndIf3: pushad pushfd cli call @@036 nop @@036: pop eax lea eax,[eax-5] mov From,eax lea eax,[eax+6] mov To,eax xor eax,eax xor edx,edx mov ecx,01C9h rdmsr and eax,15 mov Index,eax mov ecx,eax add ecx,0680h xor eax,eax xor edx,edx rdmsr mov From1,eax mov ecx,Index add ecx,06C0h xor eax,eax xor edx,edx rdmsr mov To1,eax popfd popad mov eax,From ;һѭջмԪ cmp eax,From1 jnz @@NextCon3 mov eax,To cmp eax,To1 jnz @@NextCon3 jmp @@Ret4 @@NextCon3: mov eax,From cmp eax,To1 jnz @@EndIf4 mov eax,To cmp eax,From1 jnz @@EndIf4 @@Ret4: mov eax,6 ret @@EndIf4: mov eax,0FFFFFFFFh ret SyserDetectLastBranchType ENDP END ================================================ FILE: Project/Syser/i386/Function.inc ================================================ ; /* ; Syserʵص ; ; ʮ ; QQ:764439262 ; */ ================================================ FILE: Project/Syser/i386/common-x86.asm ================================================ ; /* ; ܷװ ; ; ʮ ; QQ:764439262 ; */ .686p .MMX .XMM .model flat,StdCall option casemap:none include common-x86.inc ;ⲿ ;EXTERN HvmSubvertCpu@4:PROC ;EXTERN HvmResumeGuest@0:PROC EXTERN SyserIsSupportRDMSRInstruction@0:PROC EXTERN InsertKeyboardBuffer@4:PROC EXTERN GetCurrentCPULocalAPICID@0:PROC EXTERN Beep@8:PROC EXTERN SaveFpuRegister@0:PROC EXTERN SaveLocalApic@4:PROC EXTERN EnableHardwaveBreakpoint@0:PROC EXTERN SyserGetbUpdateReg@0:PROC EXTERN SyserSetbUpdateReg@4:PROC EXTERN RestorFpuRegister@0:PROC EXTERN SyserGetIsDbgRegAccessMon@0:PROC ;ԭͶ SyserPrivateReadMSR Proto :DWORD SyserPrivateGetTSC Proto SyserPrivateWriteMSR Proto :DWORD,:DWORD,:DWORD SyserGetIDTBase Proto :DWORD InsertKeyboardBuffer Proto :BYTE SyserSaveFlags Proto :DWORD SyserRestoreFlags Proto :DWORD Beep Proto :DWORD,:DWORD GetCurrentCPULocalAPICID Proto SaveFpuRegister Proto SaveLocalApic Proto :DWORD EnableHardwaveBreakpoint Proto SyserGetbUpdateReg Proto SyserSetbUpdateReg Proto :DWORD RestorFpuRegister Proto SyserGetIsDbgRegAccessMon Proto SyserCloseDebugRegisterMontior Proto SyserOpenDebugRegisterMontior Proto ; extern gSystemFSRegisterSelector:DWORD extern gSystemSSRegisterSelector:DWORD extern gSystemCSRegisterSelector:DWORD extern gSystemDSRegisterSelector:DWORD extern gbActive:BYTE extern stKeyGlobalVariable:KEYINTERRUPTVARIABLE extern dwMousePackageBeginOffset:DWORD extern dwWaitMouseInterrupt:DWORD extern gCPUNumbers:DWORD extern gLoopCpuNumber:DWORD extern gdwExitNmiLock:DWORD extern gdwMulitCpuSpinlock:DWORD extern gdwCurrentCPUIndex:DWORD extern gdwMulitCpuSendIPIFlags:DWORD extern gdwLocalAPICLineAddress:DWORD extern Reg:X86REGCONTEXT extern OldESP:DWORD extern gpMCPUReg:ptr X86REGCONTEXT extern ReadOnlyActiveReg:X86REGCONTEXT extern gpMCPULocalApic:ptr LOCALAPICINFO extern ReturnContext:RETURNCONTEXT extern gPrevStepEIP:DWORD ; ; GUEST_REGSṹӦ ; CM_SAVE_ALL_NOSEGREGS MACRO push edi push esi push ebp push ebp ; push esp push ebx push edx push ecx push eax ENDM CM_RESTORE_ALL_NOSEGREGS MACRO pop eax pop ecx pop edx pop ebx pop ebp ; pop esp pop ebp pop esi pop edi ENDM .DATA bInit db 0 bHaveCPUIDInstruction db 0 CR0Backup dd 0 bInitIsSupportRDMSRInstruction db 0 bHaveReadWriteMSRInstruction db 0 .CODE ; ; ; ;VOID SyserSaveFlagsLow16(PWORD _SaveFlags); SyserSaveFlagsLow16 PROC _SaveFlags push eax push esi pushf pop ax mov esi,_SaveFlags mov [esi],ax pop esi pop eax ret SyserSaveFlagsLow16 ENDP ;VOID SyserRestoreFlagsLow16(WORD _Flags); SyserRestoreFlagsLow16 PROC _Flags push eax push _Flags popf pop eax ret SyserRestoreFlagsLow16 ENDP ;VOID SyserPushad(PX86SaveRegs Regs);ԺԿÿŻ SyserPushad PROC Regs pushad mov esi,esp mov edi,Regs mov eax,[esi + X86SAVEREGS.SaveEdi] mov [edi + X86SAVEREGS.SaveEdi],eax mov eax,[esi + X86SAVEREGS.SaveEsi] mov [edi + X86SAVEREGS.SaveEsi],eax mov eax,[esi + X86SAVEREGS.SaveEbp] mov [edi + X86SAVEREGS.SaveEbp],eax mov eax,[esi + X86SAVEREGS.SaveEsp] mov [edi + X86SAVEREGS.SaveEsp],eax mov eax,[esi + X86SAVEREGS.SaveEbx] mov [edi + X86SAVEREGS.SaveEbx],eax mov eax,[esi + X86SAVEREGS.SaveEdx] mov [edi + X86SAVEREGS.SaveEdx],eax mov eax,[esi + X86SAVEREGS.SaveEcx] mov [edi + X86SAVEREGS.SaveEcx],eax mov eax,[esi + X86SAVEREGS.SaveEax] mov [edi + X86SAVEREGS.SaveEax],eax popad ret SyserPushad ENDP ;VOID SyserPopad(PX86SaveRegs Regs);ԺԿÿŻ SyserPopad PROC Regs pushad mov edi,esp mov esi,Regs mov eax,[esi + X86SAVEREGS.SaveEdi] mov [edi + X86SAVEREGS.SaveEdi],eax mov eax,[esi + X86SAVEREGS.SaveEsi] mov [edi + X86SAVEREGS.SaveEsi],eax mov eax,[esi + X86SAVEREGS.SaveEbp] mov [edi + X86SAVEREGS.SaveEbp],eax mov eax,[esi + X86SAVEREGS.SaveEsp] mov [edi + X86SAVEREGS.SaveEsp],eax mov eax,[esi + X86SAVEREGS.SaveEbx] mov [edi + X86SAVEREGS.SaveEbx],eax mov eax,[esi + X86SAVEREGS.SaveEdx] mov [edi + X86SAVEREGS.SaveEdx],eax mov eax,[esi + X86SAVEREGS.SaveEcx] mov [edi + X86SAVEREGS.SaveEcx],eax mov eax,[esi + X86SAVEREGS.SaveEax] mov [edi + X86SAVEREGS.SaveEax],eax popad ret SyserPopad ENDP ;VOID SyserCli(VOID); SyserCli PROC cli ret SyserCli ENDP ;VOID SyserSti(VOID); SyserSti PROC sti ret SyserSti ENDP ;VOID SyserHlt(VOID); SyserHlt PROC hlt ret SyserHlt ENDP ;VOID SyserCltr(VOID); SyserCltr PROC clts ret SyserCltr ENDP ;VOID SyserFnsave(PUCHAR pState); SyserFnsave PROC pState push eax mov eax,pState fnsave byte ptr [eax] pop eax ret SyserFnsave ENDP ;VOID SyserFrstor(PUCHAR pState); SyserFrstor PROC pState push eax mov eax,pState frstor byte ptr [eax] pop eax ret SyserFrstor ENDP ;VOID SyserFnstsw(PUSHORT pState); SyserFnstsw PROC pState push eax push ebx mov ebx,pState xor eax,eax fnstsw ax mov word ptr[ebx],ax pop ebx pop eax ret SyserFnstsw ENDP ;VOID SyserFnstcw(PUSHORT pControl); SyserFnstcw PROC pControl push eax push ebx mov ebx,pControl fnstcw word ptr [ebx] pop ebx pop eax ret SyserFnstcw ENDP ;VOID SyserFlushInsCache(BYTE* AddPte); SyserFlushInsCache PROC AddPte invlpg AddPte push eax mov eax,cr3 mov cr3,eax pop eax ret SyserFlushInsCache ENDP ;VOID SyserFlushProcessInsCache(VOID); SyserFlushProcessInsCache PROC push eax mov eax,cr3 mov cr3,eax pop eax ret SyserFlushProcessInsCache ENDP ;DWORD SyserLar(DWORD Selector); SyserLar PROC Selector push ebx mov ebx,Selector lar eax,ebx pop ebx ret SyserLar ENDP ; ; SysDep.cpp ; ;ULONG64 SyserGetRdTsc(VOID); SyserGetRdTsc PROC rdtsc ret SyserGetRdTsc ENDP ; ; X86Optr.cpp ; ;VOID SyserCloseInterrupt(VOID); SyserCloseInterrupt PROC cli ret SyserCloseInterrupt ENDP ;VOID SyserOpenInterrupt(VOID); SyserOpenInterrupt PROC sti ret SyserOpenInterrupt ENDP ;VOID SyserSaveFlags(PULONG_PTR _SaveFlags); SyserSaveFlags PROC _SaveFlags push eax push ebx pushfd pop eax mov ebx,_SaveFlags mov [ebx],eax pop ebx pop eax ret SyserSaveFlags ENDP ;VOID SyserRestoreFlags(ULONG_PTR _Flags); SyserRestoreFlags PROC _Flags push _Flags popfd ret SyserRestoreFlags ENDP ;VOID SyserCld(VOID); SyserCld PROC cld ret SyserCld ENDP ;VOID SyserGetCPUID(CPUID_INFO *pCPUInfo,DWORD dwIndex); SyserGetCPUID PROC pCPUInfo,dwIndex pushad pushfd mov eax,dwIndex cpuid mov esi,pCPUInfo mov [esi],eax mov [esi+4],ebx mov [esi+8],ecx mov [esi+12],edx popfd popad ret SyserGetCPUID ENDP ;DWORD SyserGetCPUIDMaxIndex(); SyserGetCPUIDMaxIndex PROC pushad pushfd mov eax,0 cpuid mov [esp+32],eax popfd popad ret SyserGetCPUIDMaxIndex ENDP ;bool SyserIsSupportCPUIDInstruction(); SyserIsSupportCPUIDInstruction PROC push ebp mov ebp,esp push ebx push ecx push edx movzx eax,bInit test eax,eax jnz @@3 pushad pushfd mov eax,[esp] mov ebx,eax xor eax,200000h push eax popf pushf pop eax xor eax,ebx mov eax,0 jz @@2 cpuid cmp eax,1 jnb @@1 mov bHaveCPUIDInstruction,0 jmp @@2 @@1: mov bHaveCPUIDInstruction,1 @@2: popfd popad mov bInit,1 @@3: xor eax,eax mov al,bHaveCPUIDInstruction pop edx pop ecx pop ebx leave ret SyserIsSupportCPUIDInstruction ENDP ;__int64 __stdcall SyserPrivateReadMSR(DWORD dwIndex); SyserPrivateReadMSR PROC dwIndex mov ecx,dwIndex rdmsr clc ret 4 SyserPrivateReadMSR ENDP ;__int64 __stdcall SyserPrivateReadMSRError(); SyserPrivateReadMSRError PROC stc ret 4 SyserPrivateReadMSRError ENDP ;VOID __stdcall SyserPrivateWriteMSR(DWORD dwIndex,DWORD dwValueLow,DWORD dwValueHigh); SyserPrivateWriteMSR PROC dwIndex,dwValueLow,dwValueHigh mov ecx,dwIndex mov eax,dwValueLow mov edx,dwValueHigh wrmsr clc ret SyserPrivateWriteMSR ENDP ;VOID __stdcall SyserPrivateWriteMSRError(VOID); SyserPrivateWriteMSRError PROC stc ret 0Ch SyserPrivateWriteMSRError ENDP ;bool SyserReadMSR(DWORD dwIndex,DWORD *dwHigh,DWORD *dwLow); SyserReadMSR PROC dwIndex,dwHigh,dwLow local dwRetValue:DWORD mov dwRetValue,0 call SyserIsSupportRDMSRInstruction movzx eax, al test eax,eax jz @@2 pushad invoke SyserPrivateReadMSR,dwIndex jb @@1 mov dwRetValue,1 push ecx mov ecx,dwHigh mov [ecx],edx mov ecx,dwLow mov [ecx],eax pop ecx @@1: popad @@2: xor eax,eax cmp dwRetValue,1 setz al ret SyserReadMSR ENDP ;__int64 __stdcall SyserPrivateGetTSC(); SyserPrivateGetTSC PROC rdtsc clc ret SyserPrivateGetTSC ENDP ;__int64 __stdcall SyserPrivateGetTSCError(); SyserPrivateGetTSCError PROC stc ret SyserPrivateGetTSCError ENDP ;ULONGLONG SyserGetTSC(); SyserGetTSC PROC invoke SyserPrivateGetTSC ret SyserGetTSC ENDP ;bool SyserWriteMSR(DWORD dwIndex,DWORD dwHigh,DWORD dwLow); SyserWriteMSR PROC dwIndex,dwHigh,dwLow local dwRetValue:DWORD mov dwRetValue,0 ;ԺҪעȥcall IsSupportRDMSRInstruction movzx eax, al test eax,eax jz @@1 pushad invoke SyserPrivateWriteMSR,dwIndex,dwHigh,dwLow movzx eax,al mov dwRetValue,eax popad @@1: xor eax,eax cmp dwRetValue,1 setz al ret SyserWriteMSR ENDP ;DWORD SyserGetTSSSelector(); SyserGetTSSSelector PROC xor eax,eax str ax ret SyserGetTSSSelector ENDP ;DWORD SyserGetLDTSelector(); SyserGetLDTSelector PROC xor eax,eax sldt ax ret SyserGetLDTSelector ENDP ;VADDR32 SyserGetIDTBase(DWORD *dwIdtSize); SyserGetIDTBase PROC dwIdtSize local SIDTBffer:QWORD local vIDTBase:DWORD push esi push ebx lea esi,SIDTBffer sidt [esi] mov eax,[esi+2] mov vIDTBase,eax mov eax,dwIdtSize test eax,eax jz @@1 mov bx,[esi] movzx ebx,bx mov [eax],ebx @@1: mov eax,vIDTBase pop ebx pop esi ret SyserGetIDTBase ENDP ;VADDR32 SyserGetGDTBase(DWORD *dwGdtSize); SyserGetGDTBase PROC dwGdtSize local dwSize:DWORD local GDTInfo:QWORD push esi push edi lea esi,GDTInfo sgdt [esi] mov edi,dwGdtSize test edi,edi jz @@1 movzx eax,word ptr[esi] mov [edi],eax @@1: mov eax,[esi+2] pop edi pop esi ret SyserGetGDTBase ENDP ;SELECTOR SyserGetCurCSeg(); SyserGetCurCSeg PROC xor eax,eax mov ax,cs ret SyserGetCurCSeg ENDP ;SELECTOR SyserGetCurDSeg(); SyserGetCurDSeg PROC xor eax,eax mov ax,ds ret SyserGetCurDSeg ENDP ;SELECTOR SyserGetCurFSeg(); SyserGetCurFSeg PROC xor eax,eax mov ax,fs ret SyserGetCurFSeg ENDP ;REG32 SyserGetCR0Reg(); SyserGetCR0Reg PROC mov eax,cr0 ret SyserGetCR0Reg ENDP ;VOID SyserSetCR0Reg(IN REG32 uReg); SyserSetCR0Reg PROC uReg push eax mov eax,uReg mov cr0,eax pop eax ret SyserSetCR0Reg ENDP ;REG32 SyserGetCR3Reg(); SyserGetCR3Reg PROC mov eax,cr3 ret SyserGetCR3Reg ENDP ;VOID SyserSetCR3Reg(IN REG32 uReg); SyserSetCR3Reg PROC uReg push eax mov eax,uReg mov cr3,eax pop eax ret SyserSetCR3Reg ENDP ;REG32 SyserGetCR4Reg(); SyserGetCR4Reg PROC mov eax,cr4 ret SyserGetCR4Reg ENDP ;VOID SyserSetCR4Reg(IN REG32 uReg); SyserSetCR4Reg PROC uReg push eax mov eax,uReg mov cr4,eax pop eax ret SyserSetCR4Reg ENDP ;VOID SyserClrCR0WP() SyserClrCR0WP PROC push eax mov eax,CR0Backup and eax,080000000h jz @@1 mov eax,cr0 and eax,0FFFEFFFFh mov cr0,eax pop eax ret @@1: mov eax,cr0 mov CR0Backup,eax and eax,0FFFEFFFFh mov cr0,eax pop eax ret SyserClrCR0WP ENDP ;VOID SyserSetCR0WP(); SyserSetCR0WP PROC push eax mov eax,cr0 mov CR0Backup,eax or eax,10000h mov cr0,eax pop eax ret SyserSetCR0WP ENDP ;VOID SyserRestoreCR0(); SyserRestoreCR0 PROC push eax mov eax,CR0Backup and eax,080000000h jz @@1 mov eax,CR0Backup mov cr0,eax xor eax,eax mov CR0Backup,eax @@1: pop eax ret SyserRestoreCR0 ENDP ;DWORD SyserClearCR0WP(); SyserClearCR0WP PROC mov eax,cr0 push eax and eax,0FFFEFFFFh mov cr0,eax pop eax ret SyserClearCR0WP ENDP ;VOID SyserRestoreCR0WP(DWORD dwCR0); SyserRestoreCR0WP PROC dwCR0 push eax mov eax,dwCR0 mov cr0,eax pop eax ret SyserRestoreCR0WP ENDP ;REG32 SyserGetDRX(IN UINT ID); SyserGetDRX PROC ID pushfd push ecx mov ecx,@@1 mov eax,ID shl eax,2 add eax,ecx mov eax,[eax] pop ecx popfd jmp eax @@1: dd @@2 dd @@3 dd @@4 dd @@5 dd @@1 dd @@1 dd @@6 dd @@7 @@2: mov eax,dr0 ret @@3: mov eax,dr1 ret @@4: mov eax,dr2 ret @@5: mov eax,dr3 ret @@6: mov eax,dr6 ret @@7: mov eax,dr7 ret SyserGetDRX ENDP ;VOID SyserSetDRX(IN UINT ID,IN REG32 Reg1); SyserSetDRX PROC ID,Reg1 push eax pushfd push ecx mov ecx,@@1 mov eax,ID shl eax,2 add eax,ecx mov eax,[eax] pop ecx popfd jmp eax @@1: dd @@2 dd @@3 dd @@4 dd @@5 dd @@1 dd @@1 dd @@6 dd @@7 @@2: mov eax,Reg1 mov dr0,eax pop eax ret @@3: mov eax,Reg1 mov dr1,eax pop eax ret @@4: mov eax,Reg1 mov dr2,eax pop eax ret @@5: mov eax,Reg1 mov dr3,eax pop eax ret @@6: mov eax,Reg1 mov dr6,eax pop eax ret @@7: mov eax,Reg1 mov dr7,eax pop eax ret SyserSetDRX ENDP ;BYTE SyserReadPortByte(DWORD wPort); SyserReadPortByte PROC wPort push edx mov edx,wPort in al,dx movzx eax,al pop edx ret SyserReadPortByte ENDP ;WORD SyserReadPortWord(DWORD wPort); SyserReadPortWord PROC wPort push edx mov edx,wPort in ax,dx movzx eax,ax pop edx ret SyserReadPortWord ENDP ;DWORD SyserReadPortDword(DWORD wPort); SyserReadPortDword PROC wPort push edx mov edx,wPort in eax,dx pop edx ret SyserReadPortDword ENDP ;VOID SyserWritePortDword(DWORD dwPort, DWORD dwValue); SyserWritePortDword PROC dwPort,dwValue push eax push edx mov edx,dwPort mov eax,dwValue out dx,eax pop edx pop eax ret SyserWritePortDword ENDP ;VOID SyserWritePortWord(DWORD dwPort, WORD wValue); SyserWritePortWord PROC dwPort,wValue push eax push edx mov edx,dwPort mov ax,word ptr wValue out dx,ax pop edx pop eax ret SyserWritePortWord ENDP ;VOID SyserWritePortByte(DWORD dwPort, BYTE byteValue); SyserWritePortByte PROC dwPort,byteValue push eax push edx mov edx,dwPort mov al,byte ptr byteValue out dx,al pop edx pop eax ret SyserWritePortByte ENDP ;bool SyserIsSupportRDMSRInstruction(); SyserIsSupportRDMSRInstruction PROC xor eax,eax mov al,bInitIsSupportRDMSRInstruction test eax,eax jnz @@3 xor eax,eax invoke SyserIsSupportCPUIDInstruction test eax,eax jz @@2 pushad mov eax,1 cpuid test edx,020h mov bHaveReadWriteMSRInstruction,0 jz @@1 mov bHaveReadWriteMSRInstruction,1 @@1: popad mov bInitIsSupportRDMSRInstruction,1 jmp @@1 @@2: mov bHaveReadWriteMSRInstruction,0 @@3: xor eax,eax mov al,bHaveReadWriteMSRInstruction ret SyserIsSupportRDMSRInstruction ENDP ;void* SyserMemoryCopy(void *dst, const void*src,int count); SyserMemoryCopy PROC dst,src,count pushad pushfd cld mov esi,src mov edi,dst mov ecx,count mov eax,esi and eax,3 jz @@2 @@1: jecxz @@3 movsb dec ecx dec eax jnz @@1 @@2: jecxz @@3 mov eax,ecx shr eax,2 rep movsd and eax,3 mov ecx,eax rep movsb @@3: popfd popad mov eax,dst ret SyserMemoryCopy ENDP ; ; ; ;VOID SyserGetLDTSelectorBySelector(DWORD* dwLdtSelector,DWORD* dwSize); ;Ҫúõ SyserGetLDTSelectorBySelector PROC dwLdtSelector,dwSize pushfd push eax push esi cmp dwLdtSelector,0 jz @@2 cmp dwSize,0 jz @@2 mov esi,dwLdtSelector mov eax,[esi] test eax,eax jnz @@1 sldt ax mov [esi],eax @@1: lsl eax,eax jnz @@2 mov esi,dwSize mov [esi],eax @@2: pop esi pop eax popfd ret SyserGetLDTSelectorBySelector ENDP ;DWORD SyserGetSegmentLimit(WORD SegmentSelector); SyserGetSegmentLimit PROC SegmentSelector movzx eax,word ptr SegmentSelector lsl eax,eax jz @@1 xor eax,eax @@1: ret SyserGetSegmentLimit ENDP ;VOID SyserX86FxSave(BYTE *RegisterBuffer); SyserX86FxSave PROC RegisterBuffer push eax mov eax,RegisterBuffer fxsave dword ptr[eax] pop eax ret SyserX86FxSave ENDP ;bool SyserGetFpuErrorState(); SyserGetFpuErrorState PROC local dwError:DWORD local dwMxcsr:DWORD pushfd push eax push ebx mov dwError,0 mov dwMxcsr,0 clts stmxcsr dwMxcsr mov eax,dwMxcsr mov ebx,eax shr ebx,7 and eax,03fh and ebx,03fh and bl,al not bl test bl,al mov dwError,0 jz @@1 mov dwError,1 @@1: pop ebx pop eax popfd xor eax,eax cmp dwError,1 setz al ret SyserGetFpuErrorState ENDP ;VOID SyserInitSystemSegmentRegister(VOID); SyserInitSystemSegmentRegister PROC push eax xor eax,eax mov ax,fs mov gSystemFSRegisterSelector,eax mov ax,ss mov gSystemSSRegisterSelector,eax mov ax,cs mov gSystemCSRegisterSelector,eax mov ax,ds mov gSystemDSRegisterSelector,eax pop eax ret SyserInitSystemSegmentRegister ENDP ; ; InputDriver.cpp ; ;VOID SyserWaitKeyboardOutPutBufferFull(VOID); SyserWaitKeyboardOutPutBufferFull PROC push ecx push eax mov ecx,02000h @@1: in al,064h push ecx mov ecx,014h @@2: loop @@2 pop ecx test al,1 loope @@1 pop eax pop ecx ret SyserWaitKeyboardOutPutBufferFull ENDP ;VOID SyserWaitKeyboardInputBufferEmpte(VOID); SyserWaitKeyboardInputBufferEmpte PROC push ecx push eax mov ecx,02000h @@1: in al,064h push ecx mov ecx,014h @@2: loop @@2 pop ecx test al,2 loopne @@1 pop eax pop ecx ret SyserWaitKeyboardInputBufferEmpte ENDP ;VOID SyserSimulateKeyboardInput(BYTE scancode,bool isDisableInterrupt); SyserSimulateKeyboardInput PROC scancode,isDisableInterrupt local dwIsInterrupt:DWORD cmp isDisableInterrupt,0 jz @@1 mov dwIsInterrupt,0 @@1: pushad xor eax,eax mov ah,BYTE PTR scancode ; and eax,0ffh ; shl eax,8 mov edx,dwIsInterrupt cmp edx,0 jz @@6 mov al,020 ; out 064h,al push ecx mov ecx,014h @@2: loop @@2 pop ecx call SyserWaitKeyboardOutPutBufferFull in al, 060h ; push ecx mov ecx, 014h @@3: loop @@3 pop ecx call SyserWaitKeyboardInputBufferEmpte mov al,060h ;д out 064h,al push ecx mov ecx, 014h @@4: loop @@4 pop ecx call SyserWaitKeyboardInputBufferEmpte mov al,cl and al,0feh ;ֹ̲ж out 060h,al push ecx mov ecx, 014h @@5: loop @@5 pop ecx @@6: call SyserWaitKeyboardInputBufferEmpte mov al, 0d2h ;д out 064h,al push ecx mov ecx, 014h @@7: loop @@7 pop ecx call SyserWaitKeyboardInputBufferEmpte mov al,ah out 060h,al ;дɨ push ecx mov ecx, 014h @@8: loop @@8 pop ecx call SyserWaitKeyboardOutPutBufferFull or dl,dl jz @@11 call SyserWaitKeyboardInputBufferEmpte mov al,060h out 064h,al push ecx mov ecx, 014h @@9: loop @@9 pop ecx call SyserWaitKeyboardInputBufferEmpte mov al,cl or al,1 out 060h,al push ecx mov ecx, 014h @@10: loop @@10 pop ecx call SyserWaitKeyboardInputBufferEmpte @@11: popad ret SyserSimulateKeyboardInput ENDP ;VOID SyserInterrupt_0xF8_Keyboard_Service(VOID); SyserInterrupt_0xF8_Keyboard_Service PROC pushfd cmp gbActive,0 jnz @@1 push eax in al,064h test al,1 pop eax jnz @@1 popfd ret @@1: popfd ;push KeyboardInterruptService ret SyserInterrupt_0xF8_Keyboard_Service ENDP ;VOID SyserWaitMouseStatus(VOID); SyserWaitMouseStatus PROC push eax in al,064h test al,1 jz @@1 in al,060h @@1: pop eax ret SyserWaitMouseStatus ENDP ;VOID SyserWaitMouseInputBufferEmpte(VOID); SyserWaitMouseInputBufferEmpte PROC push eax push ecx mov ecx,2 @@1: push ecx xor ecx,ecx @@2: in al,064h test al,2 loopne @@2 pop ecx jz @@3 loop @@1 @@3: pop ecx pop eax ret SyserWaitMouseInputBufferEmpte ENDP ;VOID SyserWaitMouseOutPutBufferFull(VOID); SyserWaitMouseOutPutBufferFull PROC push ecx push eax mov ecx,02000h @@1: in al,064h and al,021h cmp al,021h loopne @@1 pop eax pop ecx ret SyserWaitMouseOutPutBufferFull ENDP ;VOID SyserCleanMouseOutPutBuffer(VOID); SyserCleanMouseOutPutBuffer PROC push eax push ecx mov ecx,01000h in al,064h test al,021h jz @@2 in al,060h @@1: loop @@1 @@2: pop ecx pop eax ret SyserCleanMouseOutPutBuffer ENDP ;bool SyserIsMouseOutPutBufferFull(VOID); SyserIsMouseOutPutBufferFull PROC in al,064h test al,021h cmp al,021h jnz @@1 mov eax,1 jmp @@2 @@1: xor eax,eax @@2: ret SyserIsMouseOutPutBufferFull ENDP ;VOID SyserWriteMouseCommandByte(BYTE chCmd); SyserWriteMouseCommandByte PROC chCmd push eax xor eax,eax call SyserIsMouseOutPutBufferFull test eax,eax jz @@1 call SyserCleanMouseOutPutBuffer @@1: mov al,byte ptr chCmd out 060h,al pop eax ret SyserWriteMouseCommandByte ENDP ;BYTE SyserReadMouseByte(VOID); SyserReadMouseByte PROC call SyserWaitMouseOutPutBufferFull xor eax,eax in al,060h ret SyserReadMouseByte ENDP ;VOID SyserGetPortState(VOID)//ڸ̷Ժúȡ̵ķֵ SyserGetPortState PROC push eax push ecx mov ecx,01000h @@1: in al,064h push ecx mov ecx,8 @@2: jmp @@3 @@3: loop @@2 pop ecx test al,1 loope @@1 jz @@4 in al,060h cmp al,0fah jnz @@1 @@4: pop ecx pop eax ret SyserGetPortState ENDP ;VOID SyserSimulateWindowsKeyboardInput(BYTE byteScanCode); SyserSimulateWindowsKeyboardInput PROC byteScanCode local Flags:DWORD push eax lea eax,byteScanCode push eax call InsertKeyboardBuffer lea eax,Flags call SyserSaveFlags cli pushfd push cs push @@1 jmp dword ptr cs:stKeyGlobalVariable.dwOldKeyboardInterrupt @@1: invoke SyserRestoreFlags,Flags pop eax ret SyserSimulateWindowsKeyboardInput ENDP ;VOID SyserSyncMouseInterrupt(VOID); SyserSyncMouseInterrupt PROC push eax push ecx mov ax,010h mov ds,ax mov ecx,088000h ;㹻ʱȴжϵķҪȴ 3 ж mov eax,dwMousePackageBeginOffset cmp eax,stKeyGlobalVariable.dwMouseDataIndex jz @@2 mov dwWaitMouseInterrupt,1 sti @@1: cmp eax,stKeyGlobalVariable.dwMouseDataIndex loopne @@1 cli @@2: mov gbActive,0 pop ds pop ecx pop eax ret SyserSyncMouseInterrupt ENDP ;bool SyserReadPort60(BYTE* ReturnValue,bool IsMouse); SyserReadPort60 PROC ReturnValue,IsMouse local bRet:BYTE local Value:BYTE push ecx push ebx mov bl,1 cmp IsMouse,0 jz @@1 or bl,020h @@1: mov ecx,0800000h @@2: in al,064h and al,bl cmp al,bl jz @@3 loop @@2 jmp @@4 @@3: mov bRet,1 in al,060h mov Value,al @@4: cmp ReturnValue,0 jz @@5 mov ebx,ReturnValue xor eax,eax mov al,byte ptr Value mov [ebx],al @@5: xor eax,eax mov al,byte ptr bRet pop ebx pop ecx ret SyserReadPort60 ENDP ;bool SyserWaitI8042InputBufferEmpty(VOID); SyserWaitI8042InputBufferEmpty PROC local bRet:BYTE mov bRet,0 push ecx mov ecx,080000h @@1: in al,064h test al,2 jz @@2 loop @@1 jmp @@7 @@2: push ecx mov ecx,100 @@3: jmp @@4 @@4: loop @@3 pop ecx @@5: in al,064h test al,2 jz @@6 loop @@5 jmp @@7 @@6: mov bRet,1 @@7: pop ecx xor eax,eax mov al,byte ptr bRet ret SyserWaitI8042InputBufferEmpty ENDP ;bool SyserClearI8042OutputBuffer(VOID); SyserClearI8042OutputBuffer PROC local bRet:BYTE mov bRet,0 push ecx xor ecx,ecx @@1: in al,064h test al,1 jz @@4 in al,060h mov eax,020h @@2: jmp @@3 @@3: dec eax jnz @@2 loop @@1 jmp @@5 @@4: mov bRet,1 @@5: pop ecx xor eax,eax mov al,byte ptr bRet ret SyserClearI8042OutputBuffer ENDP ; ; DbgProcess.cpp ; ;VOID SyserClearFlag(WORD vEs,PDWORD Value,DWORD ClearFlag); SyserClearFlag PROC vEs,Value,ClearFlag push es push eax push ebx push ecx mov ecx,0FFFFFFFFh xor ecx,ClearFlag mov ebx,Value mov ax,word ptr vEs mov es,ax and es:[ebx],ecx pop ecx pop ebx pop eax pop es ret SyserClearFlag ENDP ;VOID SyserBpintEntryPointer(VOID); SyserBpintEntryPointer PROC ; ; 0 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 1 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 2 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 3 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 4 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 5 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 6 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 7 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 8 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; 9 ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; a ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; b ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; c ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; d ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; e ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ ; ; f ; push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ push 0 jmp $ SyserBpintEntryPointer ENDP ;VOID SyserBpintBreakEntry(VOID) SyserBpintBreakEntry PROC SyserBpintBreakEntry ENDP ; ; MultiCPU.cpp ; ;VOID SyserStartOtherCPUs(VOID); SyserStartOtherCPUs PROC pushfd cmp cs:gCPUNumbers,1 jbe @@3 push eax push ds mov eax,cs:gSystemSSRegisterSelector mov ds,ax cmp dword ptr gLoopCpuNumber,0 ;gLoopCpuNumber жǷнѭ cpu jz @@2 lock inc gdwExitNmiLock mov gdwMulitCpuSpinlock,0 mov gdwCurrentCPUIndex,0FFFFFFFFh @@1: cmp gdwExitNmiLock,0 jnz @@1 @@2: pop ds pop eax @@3: popfd ret SyserStartOtherCPUs ENDP ;VOID SyserStopOtherCPUs(VOID); SyserStopOtherCPUs PROC local TmpCurrentCPUIndex:DWORD pushfd cmp cs:gCPUNumbers,1 jnz @@1 popfd ret @@1: pushad push ds mov eax,cs:gSystemSSRegisterSelector mov ds,ax mov ebp,esp sub esp,4 call GetCurrentCPULocalAPICID mov TmpCurrentCPUIndex,eax @@20: lock bts gdwMulitCpuSpinlock,01fh ;ͬʱжCPUִָֻһCPUܻø jnb @@3 mov ecx,0100h @@2: loop @@2 mov eax,TmpCurrentCPUIndex cmp eax,gdwCurrentCPUIndex jnz @@6 inc gdwMulitCpuSpinlock ;ǰCPUѾֹͣCPU ֻļֱ˳ jmp @@Quit @@6: invoke Beep,10,10 cmp gdwMulitCpuSpinlock,0 ;CPU ȴCPUͷŵ jnz @@6 jmp @@20 @@3: mov gdwCurrentCPUIndex,eax inc gdwMulitCpuSpinlock mov eax, gdwLocalAPICLineAddress @@9: test DWORD PTR [eax+0300h],01000h ;Delivery Mode жʱ Send Pending jnz @@9 mov ebx,0c44ffh ;NMI ģʽ EDGE ߵƽ All Excluding Self mov gdwMulitCpuSendIPIFlags,1 mov [eax+0300h],ebx @@11: test DWORD PTR [eax+0300h],01000h ;ȴжϱ jnz @@11 @@12: cmp gdwMulitCpuSendIPIFlags,0 ;ȴCPUѭ jnz @@12 @@Quit: add esp,4 pop ds popad popfd ret SyserStopOtherCPUs ENDP ; ; IOAPIC.cpp ; ;VOID SyserGetApicInfo(DWORD *RdmsrEax,DWORD *RdmsrEdx); SyserGetApicInfo PROC RdmsrEax,RdmsrEdx pushfd push eax push ecx push edx mov ecx,MSR_INDEX_IA32_APIC_BASE rdmsr mov ecx,RdmsrEax mov [ecx],eax mov ecx,RdmsrEdx mov [ecx],edx pop edx pop ecx pop eax popfd ret SyserGetApicInfo ENDP ;DWORD SyserGetIOAPICData(DWORD* IoApicLineAddress, DWORD Index); SyserGetIOAPICData PROC IoApicLineAddress,Index local dwValue:DWORD pushfd pushad mov eax,IoApicLineAddress mov ebx,Index cli mov [eax],ebx mov eax,[eax+010h] mov dwValue,eax popad popfd mov eax,dwValue ret SyserGetIOAPICData ENDP ;DWORD SyserSetIOAPICData(DWORD* IoApicLineAddress, DWORD Index,DWORD Data); SyserSetIOAPICData PROC IoApicLineAddress,Index,Data pushfd pushad mov eax,IoApicLineAddress mov ebx,Index mov ecx,Data cli mov [eax],ebx mov [eax+010h],ecx popad popfd ret SyserSetIOAPICData ENDP ;VOID SyserIOAPICBeep(VOID); SyserIOAPICBeep PROC push eax in al,064h test al,1 jz @@Quit in al,060h push 0100h push 0100h call Beep @@Quit: pop eax ret SyserIOAPICBeep ENDP ; ; NTUtility.cpp ; ;VOID SyserResetSystem(VOID); SyserResetSystem PROC in al,061h ;PC/XT PPI port B push ecx mov ecx,20 @@1: loop @@1 pop ecx or al,0Ch out 061h,al ;PC/XT PPI port B push ecx mov ecx,014h @@2: loop @@2 pop ecx mov dx,674h mov al,0 out dx,al mov dx,670h out dx,al mov al,0FEh out 64h,al ;AT Keyboard controller 8042. ;Resend the last transmission mov ecx,0600000h @@3: loop @@3 ret SyserResetSystem ENDP ; ; SerialMouse.cpp ; ;bool SyserCheckSerialMouse(WORD PortNum,BYTE DataLen); SyserCheckSerialMouse PROC PortNum,DataLen local bRet:BYTE mov bRet,0 push eax push ebx push ecx push edx movzx edx,word ptr PortNum add edx,3 push edx mov eax,080h out dx,al dec edx dec edx mov eax,0 out dx,al dec edx mov eax,060h ;ôڵIJ out dx,al pop edx movzx eax,byte ptr DataLen out dx,al ;ݳ dec edx dec edx xor eax,eax out dx,al ;ֹж add edx,4 in al,dx dec edx mov eax,1 out dx,al ;׼ߵ״̬ sub edx,4 mov ecx,08000h @@1: in al,dx ;ûõ loop @@1 add edx,5 in al,dx cmp DataLen,3 jz @@2 dec edx mov al,0bh out dx,al ;ж mov ebx,3 @@6: movzx edx,word ptr PortNum add edx,5 mov ecx,08000h @@3: in al,dx test al,1 loope @@3 jecxz @@4 sub edx,5 in al,dx cmp al,04dh ;'M' jz @@5 dec ebx jnz @@6 jmp @@4 @@2: dec edx mov al,0bh out dx,al jmp @@8 @@8: in al,dx cmp al,0bh jnz @@4 @@5: movzx edx,word ptr PortNum inc edx mov al,1 out dx,al mov bRet,1 @@4: pop edx pop ecx pop ebx pop eax mov al,bRet ret SyserCheckSerialMouse ENDP ;VOID SyserLoadReg(VOID); SyserLoadReg PROC local dwValue:DWORD local dwLoadRegTmpCpuID:DWORD pushad mov eax,dr0 mov Reg.DR[0*4],eax mov eax,dr1 mov Reg.DR[1*4],eax mov eax,dr2 mov Reg.DR[2*4],eax mov eax,dr3 mov Reg.DR[3*4],eax mov eax,dr6 mov Reg.DR[6*4],eax mov eax,dr7 mov Reg.DR[7*4],eax mov eax,cr0 mov Reg.CR[0*4],eax mov eax,cr2 mov Reg.CR[2*4],eax mov eax,cr3 mov Reg.CR[3*4],eax mov eax,cr4 mov Reg.CR[4*4],eax mov eax,[ebp+12] mov Reg.GeneReg[EDI_IDX*4],eax mov eax,[ebp+12+4] mov Reg.GeneReg[ESI_IDX*4],eax mov eax,[ebp+12+8] mov Reg.GeneReg[EBP_IDX*4],eax mov ebx,OldESP mov Reg.GeneReg[ESP_IDX*4],ebx mov eax,[ebx+8] mov Reg.EFlags,eax mov ReturnContext.rEflags,eax mov eax,[ebp+12+16] mov Reg.GeneReg[EBX_IDX*4],eax mov eax,[ebp+12+20] mov Reg.GeneReg[EDX_IDX*4],eax mov eax,[ebp+12+24] mov Reg.GeneReg[ECX_IDX*4],eax mov eax,[ebp+12+28] mov Reg.GeneReg[EAX_IDX*4],eax mov eax,[ebx] mov Reg.EIP,eax mov ReturnContext.rEIP,eax movzx eax,word ptr [ebx+4] mov word ptr Reg.SegReg[CS_IDX*2],ax mov ReturnContext.rCS,eax mov eax,Reg.EFlags test eax,020000h ;Virtual Mode jz @@1 mov eax,[ebx+0Ch] ; v86ģʽ mov Reg.GeneReg[ESP_IDX*4],eax mov ReturnContext.r3ESP,eax mov eax,[ebx+010h] mov Reg.SegReg[SS_IDX*2],ax mov ReturnContext.r3SS,eax mov eax,[ebx+014h] mov Reg.SegReg[ES_IDX*2],ax mov ReturnContext.rV86ES,eax mov eax,[ebx+018h] mov Reg.SegReg[DS_IDX*2],ax mov ReturnContext.rV86DS,eax mov eax,[ebx+01Ch] mov Reg.SegReg[FS_IDX*2],ax mov ReturnContext.rV86FS,eax mov eax,[ebx+020h] mov Reg.SegReg[GS_IDX*2],ax mov ReturnContext.rV86GS,eax jmp @@3 @@1: mov ax,Reg.SegReg[CS_IDX*2] test ax,03h jz @@2 mov eax,[ebx+0Ch] ; ring3 Ҫ±Գ esp,ss mov Reg.GeneReg[ESP_IDX*4],eax mov ReturnContext.r3ESP,eax movzx eax,byte ptr [ebx+010h] mov Reg.SegReg[SS_IDX*2],ax mov ReturnContext.r3SS,eax jmp @@4 @@2: xor eax,eax ; ring0 mov ax,ss mov Reg.SegReg[SS_IDX*2],ax add Reg.GeneReg[ESP_IDX*4],12 ;ļ12 жϵķֳ ; push eflags ; push cs ; push eip ;Ҫ ֳе ݵȫλ @@4: xor eax,eax mov ax,[ebp] mov Reg.SegReg[ES_IDX*2],ax mov ax,[ebp+4] mov Reg.SegReg[DS_IDX*2],ax mov ax,[ebp+8] mov Reg.SegReg[FS_IDX*2],ax mov ax,gs mov Reg.SegReg[GS_IDX*2],ax @@3: call SaveFpuRegister lea esi,dwValue invoke SyserGetIDTBase,esi mov Reg.IDTBase,eax mov eax,dwValue mov Reg.IDTLimit,ax lea esi,dwValue invoke SyserGetGDTBase,esi mov Reg.GDTBase,eax mov eax,dwValue mov Reg.GDTLimit,ax cmp gCPUNumbers,1 jbe @@Quit invoke GetCurrentCPULocalAPICID mov dwLoadRegTmpCpuID,eax mov ecx,SIZEOF X86REGCONTEXT imul ecx add eax,gpMCPUReg mov edi,eax lea esi,Reg push edi rep movsb pop edi mov eax,dwLoadRegTmpCpuID mov ecx,SIZEOF LOCALAPICINFO imul ecx add eax,gpMCPULocalApic push eax push edi invoke SaveLocalApic,eax pop edi pop esi mov [esi + X86REGCONTEXT.LocalAPIC],edi lea esi,Reg lea edi,ReadOnlyActiveReg mov ecx,SIZEOF X86REGCONTEXT rep movsb @@Quit: popad ret SyserLoadReg ENDP ;VOID SyserSaveReg(VOID); SyserSaveReg PROC pushad call SyserGetIsDbgRegAccessMon test eax,eax jz @@1 invoke EnableHardwaveBreakpoint or Reg.DR[7*4],02000h invoke SyserSetbUpdateReg,1 @@1: mov eax,Reg.EFlags and eax,0100h test eax,eax jnz @@2 mov gPrevStepEIP,0 @@2: invoke RestorFpuRegister invoke SyserGetbUpdateReg test al,al jnz @@3 push eax push ebx mov eax,cr0 cmp eax,Reg.CR[0*4] jz @@ppp mov eax,Reg.CR[0*4] mov cr0,eax @@ppp: mov eax,Reg.EFlags and eax,0FFFFFEFFh mov ebx,OldESP mov [ebx+8],eax mov eax,0FFFF0FF0h mov dr6,eax pop ebx pop eax popad ret @@3: invoke SyserSetbUpdateReg,0 sldt word ptr Reg.LDT str word ptr Reg.TR sgdt fword ptr Reg.GDTLimit sidt fword ptr Reg.IDTLimit mov eax,Reg.DR[0*4] mov dr0,eax mov eax,Reg.DR[1*4] mov dr1,eax mov eax,Reg.DR[2*4] mov dr2,eax mov eax,Reg.DR[3*4] mov dr3,eax mov eax,0FFFF0FF0h ;DR6 mov dr6,eax mov eax,Reg.DR[7*4] mov dr7,eax mov eax,cr0 cmp eax,Reg.CR[0*4] jz @@ppp1 mov eax,Reg.CR[0*4] mov cr0,eax @@ppp1: mov eax,Reg.CR[2*4] mov cr2,eax mov eax,Reg.CR[3*4] mov cr3,eax mov eax,Reg.EFlags test eax,020000h ; v86 ģʽת jnz @@0023 mov ax,word ptr Reg.SegReg[ES_IDX*2] mov [ebp],ax mov ax,word ptr Reg.SegReg[DS_IDX*2] mov [ebp+4],ax mov ax,word ptr Reg.SegReg[FS_IDX*2] mov [ebp+8],ax mov ax,word ptr Reg.SegReg[GS_IDX*2] mov gs,ax jmp @@987 @@0023: ; v86 ģʽ mov ebx,OldESP mov eax,Reg.GeneReg[ESP_IDX*4] mov [ebx+00Ch],eax movzx eax,word ptr Reg.SegReg[SS_IDX*2] mov [ebx+010h],eax movzx eax,word ptr Reg.SegReg[ES_IDX*2] mov eax,01234h mov [ebx+014h],eax movzx eax,word ptr Reg.SegReg[DS_IDX*2] mov [ebx+018h],eax movzx eax,word ptr Reg.SegReg[FS_IDX*2] mov [ebx+01Ch],eax movzx eax,word ptr Reg.SegReg[GS_IDX*2] mov [ebx+020h],eax @@987: mov eax,Reg.GeneReg[EDI_IDX*4] mov [ebp+12],eax mov eax,Reg.GeneReg[ESI_IDX*4] mov [ebp+12+4],eax mov eax,Reg.GeneReg[EBP_IDX*4] mov [ebp+12+8],eax ;mov [ebp+12+12],eax mov eax,Reg.GeneReg[EBX_IDX*4] mov [ebp+12+16],eax mov eax,Reg.GeneReg[EDX_IDX*4] mov [ebp+12+20],eax mov eax,Reg.GeneReg[ECX_IDX*4] mov [ebp+12+24],eax mov eax,Reg.GeneReg[EAX_IDX*4] mov [ebp+12+28],eax push ebx mov ax,ReadOnlyActiveReg.SegReg[CS_IDX*2] test ax,03h jnz @@2skip mov eax,Reg.GeneReg[ESP_IDX*4] ;r0 ʱû޸ ESP ֵ sub eax,12 mov OldESP,eax @@2skip: mov ebx,OldESP mov eax,Reg.EIP mov [ebx],eax movzx eax,Reg.SegReg[CS_IDX*2] mov [ebx+4],eax mov eax,Reg.EFlags mov [ebx+8],eax mov ax,ReadOnlyActiveReg.SegReg[CS_IDX*2] test ax,03h jz @@098skip mov eax,Reg.GeneReg[ESP_IDX*4] mov [ebx+0Ch],eax movzx eax,word ptr Reg.SegReg[SS_IDX*2] mov [ebx+010h],ax @@098skip: pop ebx popad ret SyserSaveReg ENDP ; ; Services.cpp ; ;int SyserCloseDebugRegisterMontior(VOID); SyserCloseDebugRegisterMontior PROC nop mov eax,dr0 ret SyserCloseDebugRegisterMontior ENDP ;VOID SyserDisableDebugRegisterMontior(VOID); SyserDisableDebugRegisterMontior PROC pushfd push eax invoke SyserCloseDebugRegisterMontior pop eax popfd ret SyserDisableDebugRegisterMontior ENDP ;VOID SyserOpenDebugRegisterMontior(VOID); SyserOpenDebugRegisterMontior PROC push eax mov eax,dr7 or eax,02000h mov dr7,eax pop eax ret SyserOpenDebugRegisterMontior ENDP ;VOID SyserEnableDebugRegisterMontior(VOID); SyserEnableDebugRegisterMontior PROC push eax call SyserGetIsDbgRegAccessMon test eax,eax jz @@1 call SyserOpenDebugRegisterMontior @@1: pop eax ret SyserEnableDebugRegisterMontior ENDP ;VOID SyserDisableHardwaveBreakpoint(VOID); SyserDisableHardwaveBreakpoint PROC push eax xor eax,eax mov dr7,eax pop eax SyserDisableHardwaveBreakpoint ENDP ; ; ; ;VOID SyserOnPatchBugCheckExMIniCall(PVOID* NextAddress); @SyserOnPatchBugCheckExMIniCall@4 PROC SYSCALL NextAddress pop eax mov [ecx],eax add eax,2 push eax ret @SyserOnPatchBugCheckExMIniCall@4 ENDP ;VOID SyserNopLoop(VOID); SyserNopLoop PROC @@1: jmp @@1 SyserNopLoop ENDP ;bool SyserCFlag(VOID); SyserCFlag PROC jnc @@1 xor eax,eax jmp @@2 @@1: mov eax,1 @@2: ret SyserCFlag ENDP ; ; SyserMemoryReadWrite.cpp ; ;BYTE SyserPrivateReadByte(void* Address); SyserPrivateReadByte PROC Address push esi push eax mov esi,Address movzx eax,byte ptr[esi] lea esp,[esp+4] pop esi clc ret SyserPrivateReadByte ENDP ;WORD SyserPrivateReadWord(void* Address); SyserPrivateReadWord PROC Address push esi push eax mov esi,Address movzx eax,word ptr[esi] lea esp,[esp+4] pop esi clc ret SyserPrivateReadWord ENDP ;DWORD SyserPrivateReadDword(void* Address); SyserPrivateReadDword PROC Address push esi push eax mov esi,Address mov eax,[esi] lea esp,[esp+4] pop esi clc ret SyserPrivateReadDword ENDP ;VOID SyserPrivateReadError(VOID); SyserPrivateReadError PROC pop eax pop esi stc ret 4 SyserPrivateReadError ENDP ;VOID SyserPrivateWriteByte(void* Address,BYTE ByteValue); SyserPrivateWriteByte PROC Address,ByteValue push esi push eax mov esi,Address mov al,byte ptr ByteValue mov [esi],al pop eax pop esi clc ret SyserPrivateWriteByte ENDP ;VOID SyserPrivateWriteWord(void* Address,WORD WordValue); SyserPrivateWriteWord PROC Address,WordValue push esi push eax mov esi,Address mov ax,word ptr WordValue mov [esi],ax pop eax pop esi clc ret SyserPrivateWriteWord ENDP ;VOID SyserPrivateWriteDword(void* Address,DWORD DwordValue); SyserPrivateWriteDword PROC Address,DwordValue push esi push eax mov esi,Address mov eax,DwordValue mov [esi],eax pop eax pop esi clc ret SyserPrivateWriteDword ENDP ;VOID SyserPrivateSafeWriteByte(void* Address,BYTE ByteValue); SyserPrivateSafeWriteByte PROC Address,ByteValue push esi push eax mov esi,Address mov al,[esi] ;ַʧܷ mov eax,cr0 push eax and eax,0FFFEFFFFh mov cr0,eax mov al,byte ptr ByteValue mov [esi],al pop eax mov cr0,eax pop eax pop esi clc ret SyserPrivateSafeWriteByte ENDP ;VOID SyserPrivateSafeWriteWord(void* Address,WORD WordValue); SyserPrivateSafeWriteWord PROC Address,WordValue push esi push eax mov esi,Address mov ax,[esi] ;ַʧܷ mov eax,cr0 push eax and eax,0FFFEFFFFh mov cr0,eax mov ax,word ptr WordValue mov [esi],ax pop eax mov cr0,eax pop eax pop esi clc ret SyserPrivateSafeWriteWord ENDP ;VOID SyserPrivateSafeWriteDword(void* Address,DWORD DwordValue); SyserPrivateSafeWriteDword PROC Address,DwordValue push esi push eax mov esi,Address mov eax,[esi] ;ַʧܷ mov eax,cr0 push eax and eax,0FFFEFFFFh mov cr0,eax mov eax,DwordValue mov [esi],eax pop eax mov cr0,eax pop eax pop esi clc ret SyserPrivateSafeWriteDword ENDP ;VOID SyserPrivateWriteError(VOID); SyserPrivateWriteError PROC pop eax pop esi stc ret 8 SyserPrivateWriteError ENDP ;int SyserPrivateMemCopy(BYTE* DestAddress,BYTE* SourceAddress,DWORD Len); SyserPrivateMemCopy PROC DestAddress,SourceAddress,Len ifdef CODE_OS_NT_DRV local BackCr0:DWORD endif pushfd push edi push esi push ecx cld xor eax,eax mov ecx,Len cmp ecx,0 ;жϿijǷΪ00ֱ˳ jz @@006 mov esi,SourceAddress cmp esi,DestAddress jz @@006 shr ecx,2 jecxz @@001 lodsb dec esi rep lodsd @@001: mov ecx,Len and ecx,3 jecxz @@002 rep lodsb ;жԭַǷȱҳ @@002: mov ecx,Len mov esi,DestAddress shr ecx,2 jecxz @@003 lodsb dec esi rep lodsd @@003: mov ecx,Len and ecx,3 jecxz @@004 rep lodsb ;жĿַǷȱҳ @@004: mov edi,DestAddress mov esi,SourceAddress mov ecx,Len ifdef CODE_OS_NT_DRV mov eax,cr0 mov BackCr0,eax and eax,0FFFEFFFFh moc cr0,eax endif cmp edi,esi jb @@009 lea eax,[esi+ecx] cmp edi,eax jae @@009 std mov esi,eax lea edi,[edi+ecx] mov eax,ecx shr ecx,2 jecxz @@010 lea esi,[esi-4] lea edi,[edi-4] rep movsd lea esi,[esi+3] lea edi,[edi+3] jmp @@011 @@010: dec esi dec edi @@011: mov ecx,eax and ecx,3 rep movsb jmp @@007 @@009: mov eax,ecx shr ecx,2 jecxz @@005 rep movsd @@005: mov ecx,eax and ecx,3 jecxz @@007 rep movsb @@007: ifdef CODE_OS_NT_DRV mov eax,BackCr0 mov cr0,eax endif @@006: mov eax,Len pop ecx pop esi pop edi popfd clc ret SyserPrivateMemCopy ENDP ;int SyserVideoMemCopy(BYTE* DestAddress,BYTE* SourceAddress,DWORD Len); SyserVideoMemCopy PROC DestAddress,SourceAddress,Len pushfd push edi push esi push ecx cld xor eax,eax mov ecx,Len cmp ecx,0 ;жϿijǷΪ㣬ֱ˳ jz @@006 mov esi,SourceAddress mov edi,DestAddress cmp esi,edi ;ȽԭַĿַǷֱͬͬ˳ jz @@006 shr ecx,2 jecxz @@001 rep movsd @@001: mov ecx,Len and ecx,3 jecxz @@006 rep movsb @@006: mov eax,Len pop ecx pop esi pop edi popfd clc ret SyserVideoMemCopy ENDP ;VOID SyserPrivateMemCopyError(VOID); SyserPrivateMemCopyError PROC pop ecx pop esi pop edi popfd mov esp,ebp pop ebp stc ret 0Ch SyserPrivateMemCopyError ENDP ;BYTE* __stdcall SyserPrivateFindByte(BYTE* Address1,BYTE Value,DWORD Len); SyserPrivateFindByte PROC Address1,Value,Len pushfd push edi push esi push ecx cld mov eax,0 mov ecx,Len mov edi,Address1 mov al,byte ptr Value repne scasb mov eax,edi jz @@001 mov eax,1 @@001: lea eax,[eax-1] pop ecx pop esi pop edi popfd clc ret SyserPrivateFindByte ENDP ;BYTE* __stdcall SyserPrivateFindWord(BYTE* Address1,WORD Value,DWORD Len); SyserPrivateFindWord PROC Address1,Value,Len pushfd push edi push esi push ecx cld mov eax,0 mov ecx,Len mov edi,Address1 mov ax,word ptr Value repne scasw mov eax,edi jz @@001 mov eax,2 @@001: lea eax,[eax-2] pop ecx pop esi pop edi popfd clc ret SyserPrivateFindWord ENDP ;BYTE* __stdcall SyserPrivateFindDword(BYTE* Address1,DWORD Value,DWORD Len); SyserPrivateFindDword PROC Address1,Value,Len pushfd push edi push esi push ecx cld mov eax,0 mov ecx,Len mov edi,Address1 mov eax,Value repne scasd mov eax,edi jz @@001 mov eax,4 @@001: lea eax,[eax-4] pop ecx pop esi pop edi popfd clc ret SyserPrivateFindDword ENDP ;VOID __stdcall SyserPrivateFindMemoryError(VOID); SyserPrivateFindMemoryError PROC pop ecx pop esi pop edi popfd stc ret SyserPrivateFindMemoryError ENDP ;BYTE* __stdcall SyserPrivateMemSearch(BYTE* SourceAddrss,DWORD SourceLen,BYTE *DestinationAddress,DWORD DestinationLen); SyserPrivateMemSearch PROC SourceAddrss,SourceLen,DestinationAddress,DestinationLen push edi push esi push ecx push edx push ebx cld mov ecx,SourceLen jecxz @@002 cmp ecx,DestinationLen jnb @@001 @@006: mov eax,0 jmp @@002 @@001: sub ecx,DestinationLen inc ecx mov edi,SourceAddrss @@008: mov esi,DestinationAddress mov al,[esi] repne scasb jnz @@002 mov ebx,ecx mov edx,edi mov ecx,DestinationLen lea edi,[edi-1] repz cmpsb jz @@009 mov ecx,ebx jecxz @@006 mov edi,edx jmp @@008 @@009: mov eax,edx lea eax,[eax-1] jmp @@005 @@002: mov eax,0 @@005: pop ebx pop edx pop ecx pop esi pop edi clc ret SyserPrivateMemSearch ENDP ;VOID SyserPrivateMemorySearchError(VOID); SyserPrivateMemorySearchError PROC mov eax,edi pop ebx pop edx pop ecx pop esi pop edi stc ret 010h SyserPrivateMemorySearchError ENDP ;VOID SyserPrivatePagePresent(BYTE* Address,DWORD Len); SyserPrivatePagePresent PROC Address,Len push esi push ecx cld mov esi,Address mov ecx,Len jecxz @@002 lodsd @@001: mov ecx,Len and ecx,3 jecxz @@002 lodsb @@002: mov eax,1 pop ecx pop esi clc ret SyserPrivatePagePresent ENDP ;int __stdcall SyserPrivatePageNotPresent(VOID); SyserPrivatePageNotPresent PROC pop ecx pop esi mov eax,0 stc ret 8 SyserPrivatePageNotPresent ENDP ;DWORD SyserPrivateMemCmp(BYTE* SourceAddr,BYTE* DestAddr,DWORD Len); SyserPrivateMemCmp PROC SourceAddr,DestAddr,Len push edi push esi push ecx mov esi,SourceAddr mov edi,DestAddr mov ecx,Len jecxz @@002 cld repz cmpsb jz @@002 lea esi,[esi-1] @@002: mov eax,esi pop ecx pop esi pop edi clc ret SyserPrivateMemCmp ENDP ;DWORD __stdcall SyserPrivateMemCmpError(VOID); SyserPrivateMemCmpError PROC mov eax,esi pop ecx pop esi pop edi stc ret 0Ch SyserPrivateMemCmpError ENDP ; ; SerialPort.cpp ; ;VOID SyserIODelay(VOID); SyserIODelay PROC jmp @@Next @@Next: ret SyserIODelay ENDP ;VOID SyserSerialDLAB(WORD BasePort,bool bSet); SyserSerialDLAB PROC BasePort,bSet push edx push eax mov dx,word ptr BasePort add dx,3 in al,dx call SyserIODelay mov ah,byte ptr bSet xor ah,ah jz @@Disable or al,080h jmp @@Next @@Disable: and al,07Fh @@Next: out dx,al pop eax pop edx ret SyserSerialDLAB ENDP ;int SyserSerialSendData(WORD BasePort,void* Buffer,int BufSize); SyserSerialSendData PROC BasePort,Buffer,BufSize push esi push edx push ecx mov dx,word ptr BasePort mov esi,Buffer mov ecx,BufSize cld @@send_next: add dx,6 ; modem status register in al,dx call SyserIODelay test al,080h ;remote problem? DCD=0 jz @@send_exit ;jump if so dec dx ;line status register in al,dx call SyserIODelay test al,020h ; xmit holding reg ready? jz @@send_exit ;jmp if not mov dx,word ptr BasePort ;transmit holding register lodsb ;get byte into al from [esi] out dx,al ;send byte call SyserIODelay loop @@send_next @@send_exit: mov eax,BufSize sub eax,ecx pop ecx pop edx pop esi ret SyserSerialSendData ENDP ;int SyserSerialRecvData(WORD BasePort,void*Buffer,int BufSize); SyserSerialRecvData PROC BasePort,Buffer,BufSize push edi push edx push ecx mov dx,word ptr BasePort mov ecx,BufSize mov edi,Buffer add dx, 4 ;modem control register mov al, 3 ;set Data Terminal Ready out dx, al ;and Request to Send cld mov dx, word ptr BasePort ;base I/O address @@get_next: add dx, 5 ;line status register in al, dx ;get error & data ready bits test al, 0eh ;any received byte (bl=1) ? jnz @@get_exit ;loop if not test al, 1 ;any received byte (bl=1) ? jz @@get_exit ;loop if not mov dx, word ptr BasePort ;receive register in al, dx ;get byte stosb loop @@get_next @@get_exit: mov eax,BufSize sub eax,ecx pop ecx pop edx pop edi ret SyserSerialRecvData ENDP END ================================================ FILE: Project/Syser/i386/common-x86.inc ================================================ ; /* ; ܷװ ; ; ʮ ; QQ:764439262 ; */ ; ; ҪInputDriver.hеstruct _KeyInterruptVariableͬ ; KEYINTERRUPTVARIABLE STRUCT IsActive db ? IsInsideActive db ? db ? db ? dwFuncKeyState dd ? dwOldKeyboardInterrupt dd ? nCurrentKeyBufferIndex dd ? timer dd ? dwOldTimerInterrupt dd ? keyboard dd ? mouse dd ? wSystemDataSegment dw ? wDSRegister dw ? chFuncKeyScanCode db ? chSecondKeyScanCode db ? IsSaveInterruptInformation db ? Interrupt8259Shield_1 db ? Interrupt8259Shield_2 db ? chAltKeyState db ? chAltKeyScanCode db ? chCurrentScanCode db ? dwIOAPICLineAddress dd ? dwIOAPICPhysAddress dd ? dwLocalAPICPhysAddress dd ? dwLocalAPICLineAddress dd ? bIsUseAPIC db ? db ? db ? db ? dwOldMouseInterrupt dd ? bMouseResponseState db ? db ? db ? db ? dwMouseDataIndex dd ? chCurrentMouseData db ? db ? db ? db ? dwLocalAPICTaskPriority dd ? chPrveScanCode db ? chKeyBuffer db 512 dup(?) db ? db ? db ? KEYINTERRUPTVARIABLE ENDS X86SAVEREGS STRUCT SaveEdi dd ? SaveEsi dd ? SaveEbp dd ? SaveEsp dd ? SaveEbx dd ? SaveEdx dd ? SaveEcx dd ? SaveEax dd ? X86SAVEREGS ENDS EAX_IDX EQU 0 ECX_IDX EQU 1 EDX_IDX EQU 2 EBX_IDX EQU 3 ESP_IDX EQU 4 EBP_IDX EQU 5 ESI_IDX EQU 6 EDI_IDX EQU 7 GENE_IDX_MAX EQU 8 ES_IDX EQU 0 CS_IDX EQU 1 SS_IDX EQU 2 DS_IDX EQU 3 FS_IDX EQU 4 GS_IDX EQU 5 SEG_IDX_MAX EQU 6 X86REGCONTEXT STRUCT GeneReg dd GENE_IDX_MAX dup(?) CR dd 5 dup(?) DR dd 8 dup(?) EIP dd ? EFlags dd ? SegReg dw SEG_IDX_MAX dup(?) TR dw ? LDT dw ? Reserved1 dw ? GDTLimit dw ? GDTBase dd ? Reserved2 dw ? IDTLimit dw ? IDTBase dd ? ExceptionEIP dd ? ;쳣ʱEIP ֻ쳣в ExceptionInterruptNumber dd ? ;쳣жϺ 0e ȱҳж, 0d ͨ쳣 ExceptionInterruptErrorCode dd ? ;쳣Ĵ LocalAPIC dd ? FPUStatusWord dw ? FPUControlWord dw ? FPUTagWord dw ? Reserved3 dw ? X86REGCONTEXT ENDS ; ; struct _RETURN_CONTEXT ; RETURNCONTEXT STRUCT rEIP dd ? rCS dd ? rEflags dd ? r3ESP dd ? r3SS dd ? rV86ES dd ? rV86DS dd ? rV86FS dd ? rV86GS dd ? RETURNCONTEXT ENDS ; ; APIC ; IOAPIC_DEFAULT_PHYSICAL_BASE EQU 0FEC00000h MSR_INDEX_IA32_APIC_BASE EQU 01Bh MSR_APIC_GLOBAL_ENABLE_BIT_MASK EQU 0800h MSR_APIC_BASE_ADDRESS_BIT_MASK EQU 0FFFFF000h CPUID_1_EDX_FEATURE_APIC_ON_CHIP_BIT_MASK EQU 0200h LOCALAPICINFO STRUCT APIC_ID dd ? APICVersion dd ? TaskPriority dd ? ArbitrationPriority dd ? ProcessorPriority dd ? EOI dd ? LogicalDestination dd ? DestinationFormat dd ? SpuriousInterruptVector dd ? db ? ; undefined db ? ; undefined db ? ; undefined db ? ; undefined InService dd 8 dup(?) TriggerMode dd 8 dup(?) InterruptRequest dd 8 dup(?) ErrorStatus dd ? InterruptCommandLow dd ? InterruptCommandHigh dd ? LVTTimer dd ? LVTThermalSensor dd ? LVTPerformanceMonitoringCounters dd ? LVTLINT0 dd ? LVTLINT1 dd ? LVTError dd ? InitialCount dd ? CurrentCount dd ? DivideConfiguration dd ? LOCALAPICINFO ENDS ================================================ FILE: Project/Syser/i386/compatibility-x86.asm ================================================ ; /* ; ܷװ ; ; ʮ ; QQ:764439262 ; */ .686p .MMX .XMM .model flat,StdCall option casemap:none include compatibility-x86.inc ;ⲿ ;EXTERN CloseDebugRegisterMontior@0:PROC ;ԭͶ ;SyserPrivateReadMSR Proto :DWORD ; ;extern gbActive:BYTE .DATA ;bInit db 0 .CODE ; ; VMWareSupport.cpp ; ;bool SyserVMWareTest(VOID); SyserVMWareTest PROC local bInVMWARE:DWORD pushad pushfd mov bInVMWARE,0 xor ebx,ebx mov ecx,0ah mov eax,'VMXh' ; EAX=magic mov dx,'VX' ; DX=magic in eax,dx ; specially processed io cmd cmp ebx,'VMXh' jne @@NoInVmware mov bInVMWARE,1 @@NoInVmware: popfd popad xor eax,eax mov eax,bInVMWARE ret SyserVMWareTest ENDP ;VOID SyserIsDisableVmMouse(BYTE *PortValue1,BYTE *PortValue2); SyserIsDisableVmMouse PROC PortValue1,PortValue2 push eax push edx xor eax,eax in al,064h mov edx,PortValue1 mov [edx],byte ptr al xor eax,eax in eax,064h mov edx,PortValue2 mov [edx],byte ptr al pop edx pop eax ret SyserIsDisableVmMouse ENDP ;DWORD SyserVMWareCall(VMVWARE_CALL* pVMCParam); SyserVMWareCall PROC pVMCParam local Status:DWORD pushad mov eax,pVMCParam mov word ptr[eax + VMVWARE_CALL.Port],'VX' mov dword ptr[eax + VMVWARE_CALL.Return_Status],'VMXh' mov edi,[eax + VMVWARE_CALL.Trans_Dest] mov esi,[eax + VMVWARE_CALL.Trans_Src] mov edx,[eax + VMVWARE_CALL.Port] mov ecx,[eax + VMVWARE_CALL.Func_num] mov ebx,[eax + VMVWARE_CALL.Exist_flag] mov eax,[eax + VMVWARE_CALL.Return_Status] mov eax,[eax] in eax,dx mov Status,eax mov eax,pVMCParam mov [eax + VMVWARE_CALL.Exist_flag],ebx mov [eax + VMVWARE_CALL.Func_num],ecx mov [eax + VMVWARE_CALL.Port],edx mov [eax + VMVWARE_CALL.Trans_Src],esi mov [eax + VMVWARE_CALL.Trans_Dest],edi mov edi,Status mov [eax + VMVWARE_CALL.Return_Status],edi popad mov eax,Status ret SyserVMWareCall ENDP END ================================================ FILE: Project/Syser/i386/compatibility-x86.inc ================================================ ; /* ; VMWAREص ; ; ʮ ; QQ:764439262 ; */ VMVWARE_CALL STRUCT Return_Status dd ? Exist_flag dd ? Func_num dd ? Port dd ? Trans_Src dd ? Trans_Dest dd ? VMVWARE_CALL ENDS ================================================ FILE: Project/Syser/i386/interrupt-x86.asm ================================================ ; /* ; ܷװ ; ; ʮ ; QQ:764439262 ; */ .686p .MMX .XMM .model flat,StdCall option casemap:none include common-x86.inc include interrupt-x86.inc ;ⲿ EXTERN SyserCloseDebugRegisterMontior@0:PROC EXTERN SyserStartOtherCPUs@0:PROC EXTERN SyserStopOtherCPUs@0:PROC EXTERN KeBugCheckEx@20:PROC EXTERN SyserLoadReg@0:PROC EXTERN ActiveHookInt0e@4:PROC EXTERN SyserAttachPopupProcess@4:PROC EXTERN SyserDbgProcessHandleInt1@4:PROC EXTERN SyserDbgProcessHandleInt3@4:PROC EXTERN SetLastBranchMointer@0:PROC EXTERN SyserEnableDebugRegisterMontior@0:PROC EXTERN SyserSaveReg@0:PROC EXTERN SyserSyncMouseInterrupt@0:PROC EXTERN SyserDisableDebugRegisterMontior@0:PROC EXTERN SetLastBranchMointer@0:PROC EXTERN Int0dHandle@4:PROC EXTERN Int0eHandle@4:PROC EXTERN SyserIsgpSyserValid@0:PROC EXTERN HandleBpr@12:PROC EXTERN SyserInt0eProc@0:PROC EXTERN PS2MouseOperation@0:PROC EXTERN SetInteruptEOI@4:PROC EXTERN GetCurrentCPULocalAPICID@0:PROC EXTERN SaveLocalApic@4:PROC EXTERN SyserGetIsDbgRegAccessMon@0:PROC EXTERN SaveIOAPICInterruptVectorTable@0:PROC EXTERN RestoreIOAPICInterruptVectorTable@0:PROC EXTERN SyserEnableAllHardInterrupt@0:PROC EXTERN SyserDisableAllHardInterrupt@0:PROC EXTERN UnloadSystemModuleSymbols@8:PROC EXTERN SyserGetInstallDebug@0:PROC EXTERN SyserDbgPrint:PROC EXTERN SyserGetbInitSuccess@0:PROC EXTERN SyserbIsgpSyserValid@0:PROC EXTERN SyserGetSysInfoSyserBase@0:PROC EXTERN SyserGetSysInfoSyserHighBase@0:PROC EXTERN SyserSerialMouseInterruptServiceInternal@0:PROC ;ԭͶ ;SyserPrivateReadMSR Proto :DWORD ActiveHookInt0e Proto :BYTE SyserAttachPopupProcess Proto :DWORD SyserDbgProcessHandleInt1 Proto :DWORD SyserDbgProcessHandleInt3 Proto :DWORD SyserStartOtherCPUs Proto SyserStopOtherCPUs Proto SyserLoadReg Proto SyserDisableDebugRegisterMontior Proto SetLastBranchMointer Proto SyserEnableDebugRegisterMontior Proto SyserSaveReg Proto SyserSyncMouseInterrupt Proto SaveExceptionRegister Proto Int0dHandle Proto :DWORD Int0eHandle Proto :DWORD SyserIsgpSyserValid Proto HandleBpr Proto :DWORD,:DWORD,:DWORD SyserInt0eProc Proto KeBugCheckEx Proto :DWORD,:DWORD,:DWORD,:DWORD,:DWORD PS2MouseOperation Proto SetInteruptEOI Proto :DWORD MouseInterruptService Proto GetCurrentCPULocalAPICID Proto SaveLocalApic Proto :DWORD SyserSaveSyserDRX Proto SyserSaveSyserDRXNew Proto SyserLoadContext Proto SyserGetIsDbgRegAccessMon Proto SaveIOAPICInterruptVectorTable Proto RestoreIOAPICInterruptVectorTable Proto SyserEnableAllHardInterrupt Proto SyserDisableAllHardInterrupt Proto UnloadSystemModuleSymbols Proto :DWORD,:DWORD SyserGetInstallDebug Proto SyserGetbInitSuccess Proto SyserbIsgpSyserValid Proto SyserGetSysInfoSyserBase Proto SyserGetSysInfoSyserHighBase Proto SyserSaveExceptionRegister Proto SyserSerialMouseInterruptServiceInternal Proto ; extern gbActive:BYTE extern gbBugCheckExExit:BYTE extern bIsMouseData:BYTE extern gOldInt01Proc:DWORD extern gOldInt03Proc:DWORD extern gpStackBufferTop:DWORD extern gpStackBuffer:DWORD extern Reg:X86REGCONTEXT extern OldESP:DWORD extern gIntCounter:DWORD extern gGenInterruptNumber:DWORD extern bGoToSoftice:BYTE extern pSofticeActivePointer:DWORD extern gGenInterruptOffset:DWORD extern gdwActiveInt0eProcAddress:DWORD extern stKeyGlobalVariable:KEYINTERRUPTVARIABLE extern MouseInterruptCount:DWORD extern gpMCPULocalApic:ptr LOCALAPICINFO extern gpMCPUReg:ptr X86REGCONTEXT extern gdwLocalAPICLineAddress:DWORD extern gdwMulitCpuSendIPIFlags:DWORD extern gLoopCpuNumber:DWORD extern gbSyserDRXChg:BYTE extern gdwMulitCpuSpinlock:DWORD extern SyserDR:ptr DWORD extern gdwExitNmiLock:DWORD extern gCPUNumbers:DWORD extern gdwPIC8259Shield_1:BYTE extern gdwPIC8259Shield_2:BYTE extern gbIsSaveInterruptShieldRegister:BYTE extern gdwLocalAPICTaskPriority:DWORD extern gbIsUseAPIC:BYTE extern gSofticeDriverEntry:DWORD extern gSofticeDriverEntryReturnAddress:DWORD ;extern ExceptionTmpReg:X86REGCONTEXT ;extern gExceptionCurrentCpuID:DWORD extern ExceptionReg:DWORD extern dwOldInterruptF9:DWORD extern dwInterruptF9Address:DWORD extern wSerialMousePort:DWORD extern byte3FD:BYTE .DATA ;bInit db 0 nnByte db 0 gNmiCount dd 0 int2eip dd 0 gExceptionSpinLock dd 0 gExceptionCurrentCpuID dd 0 ExceptionTmpReg X86REGCONTEXT <> SofticeDriverEntryExitCallBackStrW db 053h, 000h, 059h, 000h, 053h, 000h, 045h, 000h, 052h, 000h, 020h, 000h, 03Ah, 000h, 020h, 000h db 049h, 000h, 06Eh, 000h, 073h, 000h, 074h, 000h, 061h, 000h, 06Ch, 000h, 06Ch, 000h, 044h, 000h db 065h, 000h, 062h, 000h, 075h, 000h, 067h, 000h, 03Dh, 000h, 03Dh, 000h, 066h, 000h, 061h, 000h db 06Ch, 000h, 073h, 000h, 065h, 000h, 0,0 ;: ; SYSER : InstallDebug==false ;================================================================================ .CODE ; ; Int1.cpp ; ;VOID SyserInt01Proc(VOID); SyserInt01Proc PROC pushfd ; CMP DWORD PTR[esp+8],offset CloseDebugRegisterMontior+1 jnz @@HandleSetDbgReg push eax xor eax,eax mov dr6,eax pop eax popfd lea esp,[esp+4] iretd @@HandleSetDbgReg: cmp ss:gbActive,0 ;ûбת jz @@EntryProc jmp @@HandleSetDbgReg popfd ;ߵһִ ret @@EntryProc: popfd invoke SyserStopOtherCPUs invoke SyserDisableDebugRegisterMontior pop ss:gOldInt01Proc cmp esp,ss:gpStackBuffer jb @@uu cmp esp,ss:gpStackBufferTop ja @@uu push 0 push ebp push esp push Reg.EIP push 031313131h mov eax,KeBugCheckEx call eax @@uu: mov ss:OldESP,esp mov esp,ss:gpStackBufferTop pushad push fs push ds push es mov ax,023h mov ds,ax mov es,ax mov ebp,esp cld invoke SyserLoadReg invoke ActiveHookInt0e,1 invoke SyserAttachPopupProcess,Reg.CR[3*4] inc gIntCounter invoke SyserDbgProcessHandleInt1,Reg.EIP test al,al jnz @@SyserNotActive invoke ActiveHookInt0e,0 invoke SetLastBranchMointer invoke SyserEnableDebugRegisterMontior pop es pop ds pop fs popad mov esp,ss:OldESP jmp cs:[gOldInt01Proc] @@SyserNotActive: invoke ActiveHookInt0e,0 invoke SetLastBranchMointer invoke SyserSaveReg pop es pop ds pop fs popad mov esp,ss:OldESP mov ss:OldESP,0 invoke SyserSyncMouseInterrupt xchg eax,[esp+8] test eax,0100h jnz @@StepNext invoke SyserEnableAllHardInterrupt invoke SyserStartOtherCPUs jmp @@PassSoftice @@StepNext: call SyserDisableAllHardInterrupt @@PassSoftice: xchg eax,[esp+8] cmp ss:gGenInterruptNumber,0FFFFFFFFh jnz @@PassGenInterrupt cmp ss:bGoToSoftice,0 jz @@TmpGoSoftice mov ss:bGoToSoftice,0 call pSofticeActivePointer @@TmpGoSoftice: iretd @@PassGenInterrupt: mov ss:gGenInterruptNumber,0FFFFFFFFh jmp cs:[gGenInterruptOffset] SyserInt01Proc ENDP ; ; Int3.cpp ; ;VOID SyserInt03Proc(VOID) SyserInt03Proc PROC pushfd cmp ss:gbActive,1 jnz @@SyserNotActive popfd ret ;?ӦIret @@SyserNotActive: popfd call SyserStopOtherCPUs call SyserDisableDebugRegisterMontior pop ss:gOldInt03Proc cmp esp,ss:gpStackBuffer jb @@uu cmp esp,ss:gpStackBufferTop ja @@uu push 0 push 0 push esp push 0 push 033333333h mov eax,KeBugCheckEx call eax @@uu: mov ss:OldESP,esp mov esp,ss:gpStackBufferTop pushad push fs push ds push es mov ax,NT_DS mov ds,ax mov es,ax mov ebp,esp cld invoke SyserLoadReg invoke ActiveHookInt0e,1 invoke SyserAttachPopupProcess,Reg.CR[3*4] invoke SyserDbgProcessHandleInt3,Reg.EIP-1 test al,al jnz @@NoSyserActiveEntry invoke ActiveHookInt0e,0 invoke SyserEnableDebugRegisterMontior pop es pop ds pop fs popad mov esp,ss:OldESP invoke SyserStartOtherCPUs jmp ss:[gOldInt03Proc] @@NoSyserActiveEntry: invoke ActiveHookInt0e,0 invoke SyserSaveReg pop es pop ds pop fs popad mov esp,ss:OldESP mov ss:OldESP,0 invoke SyserSyncMouseInterrupt xchg eax,[esp+8] ;eflags test eax,0100h jnz @@StepNext ;Եʽ˳ģ򲻿ӲжҲ cpu ִָ invoke SyserEnableAllHardInterrupt invoke SyserStartOtherCPUs jmp @@101 @@StepNext: invoke SyserDisableAllHardInterrupt @@101: xchg eax,[esp+8] cmp cs:gGenInterruptNumber,0FFFFFFFFh jnz @@100 cmp cs:bGoToSoftice,0 jz @@tmpgosoftice mov ss:bGoToSoftice,0 call pSofticeActivePointer @@tmpgosoftice: cmp ss:gbBugCheckExExit,1 mov ss:gbBugCheckExExit,0 jnz @@ppp test dword ptr[esp+8],0100h jz @@ppp and dword ptr[esp+8],0FFFFFEFFh pushfd or dword ptr[esp],0100h popfd @@ppp: iretd @@100: mov ss:gGenInterruptNumber,0FFFFFFFFh jmp cs:[gGenInterruptOffset] SyserInt03Proc ENDP ; ; Int0x6.cpp ; ;VOID SyserInt06Proc(VOID); SyserInt06Proc PROC push dword ptr 06h invoke SyserSaveExceptionRegister lea esp,[esp+4] pushfd pushad mov ebp,esp push ds push es push fs mov eax,NT_DS mov ds,ax mov es,ax pop fs pop es pop ds popad popfd ret ;Ϊʲôiretd SyserInt06Proc ENDP ; ; Int0xb.cpp ; ;VOID SyserInt0bProc(VOID); SyserInt0bProc PROC push dword ptr 0bh lea esp,[esp+4] pushfd pushad push ds push es push fs mov eax,NT_DS mov ds,ax mov es,ax pop fs pop es pop ds popad popfd ret SyserInt0bProc ENDP ; ; Int0xc.cpp ; ;VOID SyserInt0cProc(VOID); SyserInt0cProc PROC push dword ptr 0ch call SyserSaveExceptionRegister lea esp,[esp+4] pushfd pushad mov ebp,esp push ds push es push fs mov ax,NT_DS mov ds,ax mov es,ax mov ax,NT_FS mov fs,ax pop fs pop es pop ds popad popfd ret SyserInt0cProc ENDP ; ; Int0xd.cpp ; ;VOID SyserInt0dProc(VOID); SyserInt0dProc PROC ; local Int0dStackPointer:DWORD ;,Ȼᵼ±ԼȥESPЩ push dword ptr 0dh call SyserSaveExceptionRegister lea esp,[esp+4] ; push dword ptr 0dh pushfd pushad push ds push es push fs mov eax,NT_DS mov ds,ax mov es,ax mov eax,NT_FS mov fs,ax mov ebp,esp lea esp,[esp-4] mov [ebp-4],ebp ;[ebp-4]൱Int0dStackPointer add [ebp-4],038h invoke Int0dHandle,[ebp-4] test al,al jz @@Int0dQuit lea esp,[esp+4] ;Ƕ Int0dStackPointer ֲ pop fs pop es pop ds popad popfd lea esp,[esp+8] ;code error;windows return address iretd @@Int0dQuit: lea esp,[esp+4] pop fs pop es pop ds popad popfd ret SyserInt0dProc ENDP ; ; Int0xe.cpp ; ;VOID SyserInt0eProc(VOID); SyserInt0eProc PROC ; local Int0eStackPointer:DWORD [ebp-4] ; local PagedCR2:DWORD [ebp-8] push dword ptr 0Eh call SyserSaveExceptionRegister lea esp,[esp+4] ; push dword ptr 0xe pushfd pushad mov ebp,esp lea esp,[esp-08h] ;ֲĿռ mov [ebp-4],ebp mov eax,cr2 mov [ebp-8],eax add [ebp-4],028h push ds push es push fs mov ax,NT_DS mov ds,ax mov es,ax mov ax,NT_FS mov fs,ax mov eax,cr2 cld invoke Int0eHandle,[ebp-4] test al,al jz @@NoErrorInSyser pop fs pop es pop ds lea esp,[esp+8] ;ֲ popad popfd lea esp,[esp+8] ; errorcode windows return address iretd ;ֱӷ @@NoErrorInSyser: invoke SyserIsgpSyserValid test al,al jz @@gpSyserInValid push edi mov edi,[ebp-4] push edi push [edi] push [ebp-8] call HandleBpr pop edi test al,al jz @@gpSyserInValid pop fs pop es pop ds lea esp,[esp+8] ;ֲ popad popfd lea esp,[esp+8] ; errorcode windows return address or dword ptr[esp+8],0100h iretd @@gpSyserInValid: push edi mov edi,[ebp-4] add edi,12 and [edi],0100h test edi,edi jz @@Quit invoke SyserEnableAllHardInterrupt invoke SyserStartOtherCPUs @@Quit: pop fs pop es pop ds lea esp,[esp+8] ;ֲ popad popfd ret ;صԭʼWINDOWSжϴַ SyserInt0eProc ENDP ;VOID SyserActive_Int0eProcStub(VOID); SyserActive_Int0eProcStub PROC push ss:gdwActiveInt0eProcAddress jmp SyserInt0eProc SyserActive_Int0eProcStub ENDP ; ; PS2Mouse.cpp ; ;VOID SyserInterrupt_0xF9_Mouse_Service(VOID); SyserInterrupt_0xF9_Mouse_Service PROC pushfd cmp cs:gbActive,0 jnz @@SyserActive push eax in al,064h test al,1 pop eax jnz @@SyserActive popfd ret @@SyserActive: popfd push cs:MouseInterruptService ret SyserInterrupt_0xF9_Mouse_Service ENDP ;VOID MouseInterruptService(VOID); MouseInterruptService PROC cmp cs:gbActive,1 jz @@SyserActive mov ss:bIsMouseData,1 ret @@SyserActive: lea esp,[esp+4] pushad pushfd in al,064h and eax,0ffh mov nnByte,al mov ebx,eax in al,060h mov stKeyGlobalVariable.chCurrentMouseData,al invoke PS2MouseOperation inc MouseInterruptCount invoke SetInteruptEOI,0Ch popfd popad iretd MouseInterruptService ENDP ; ; NMIInterruptHandle.cpp ; ;VOID SyserLoadContext(VOID); SyserLoadContext PROC local CurrentCpuID:DWORD local TmpContext:X86REGCONTEXT pushad pushfd mov eax,dr0 mov TmpContext.DR[0*4],eax mov eax,dr1 mov TmpContext.DR[1*4],eax mov eax,dr2 mov TmpContext.DR[2*4],eax mov eax,dr3 mov TmpContext.DR[3*4],eax mov eax,dr6 mov TmpContext.DR[6*4],eax mov eax,dr7 mov TmpContext.DR[7*4],eax sldt word ptr TmpContext.LDT str word ptr TmpContext.TR sgdt fword ptr TmpContext.GDTLimit sidt fword ptr TmpContext.IDTLimit mov eax,[ebp+010h] mov TmpContext.GeneReg[EDI_IDX*4],eax mov eax,[ebp+014h] mov TmpContext.GeneReg[ESI_IDX*4],eax mov eax,[ebp+018h] mov TmpContext.GeneReg[EBP_IDX*4],eax mov eax,[ebp+01Ch] mov TmpContext.GeneReg[ESP_IDX*4],eax mov eax,[ebp+020h] mov TmpContext.GeneReg[EBX_IDX*4],eax mov eax,[ebp+024h] mov TmpContext.GeneReg[EDX_IDX*4],eax mov eax,[ebp+028h] mov TmpContext.GeneReg[ECX_IDX*4],eax mov eax,[ebp+02Ch] mov TmpContext.GeneReg[EAX_IDX*4],eax mov eax,[ebp+040h] mov TmpContext.EFlags,eax mov eax,[ebp+038h] mov TmpContext.EIP,eax mov eax,cr0 mov TmpContext.CR[0*4],eax mov eax,cr2 mov TmpContext.CR[2*4],eax mov eax,cr3 mov TmpContext.CR[3*4],eax mov eax,cr4 mov TmpContext.CR[4*4],eax mov eax,TmpContext.EFlags test eax,020000h jz @@001 mov eax,[ebp+044h] mov TmpContext.GeneReg[ESP_IDX*4],eax mov eax,[ebp+048h] mov TmpContext.SegReg[SS_IDX*2],ax mov eax,[ebp+04Ch] mov TmpContext.SegReg[ES_IDX*2],ax mov eax,[ebp+050h] mov TmpContext.SegReg[DS_IDX*2],ax mov eax,[ebp+054h] mov TmpContext.SegReg[FS_IDX*2],ax mov eax,[ebp+058h] mov TmpContext.SegReg[GS_IDX*2],ax jmp @@002 @@001: mov eax,[ebp+8] mov TmpContext.SegReg[ES_IDX*2],ax mov eax,[ebp+0Ch] mov TmpContext.SegReg[DS_IDX*2],ax mov ax,fs mov TmpContext.SegReg[FS_IDX*2],ax mov ax,gs mov TmpContext.SegReg[GS_IDX*2],ax mov eax,[ebp+03Ch] mov TmpContext.SegReg[CS_IDX*2],ax test ax,3 jnz @@005 lea eax,[ebp+044h] mov TmpContext.GeneReg[ESP_IDX*4],eax mov ax,ss mov TmpContext.SegReg[SS_IDX*2],ax jmp @@002 @@005: mov eax,[ebp+044h] mov TmpContext.GeneReg[ESP_IDX*4],eax mov eax,[ebp+048h] mov TmpContext.SegReg[SS_IDX*2],ax @@002: invoke GetCurrentCPULocalAPICID mov CurrentCpuID,eax mov ecx,SIZEOF LOCALAPICINFO imul ecx add eax,gpMCPULocalApic push eax ;&gpMCPULocalApic[CurrentCpuID] invoke SaveLocalApic,eax lea esi,TmpContext mov ecx,SIZEOF X86REGCONTEXT mov eax,CurrentCpuID imul ecx add eax,gpMCPUReg mov edi,eax rep movsb pop esi mov [eax + X86REGCONTEXT.LocalAPIC],esi popfd popad ret SyserLoadContext ENDP ;VOID SyserEnterLoop(DWORD* dwPtr); SyserEnterLoop PROC dwPtr local CurrentCpuID:DWORD pushad pushfd mov eax,gdwLocalAPICLineAddress mov ebx,[eax+080h] push ebx mov ebx,0ffh mov [eax+080h],ebx invoke GetCurrentCPULocalAPICID mov CurrentCpuID,eax mov gdwMulitCpuSendIPIFlags,0 lock inc dword ptr gLoopCpuNumber @@Loop: cmp gdwMulitCpuSpinlock,0 jz @@QuitLoop test gbSyserDRXChg,0 jz @@ContineLoop call SyserSaveSyserDRX mov gbSyserDRXChg,0 @@ContineLoop: jmp @@Loop @@QuitLoop: lock dec dword ptr gLoopCpuNumber mov eax,gdwLocalAPICLineAddress pop ebx mov [eax+080h],ebx popfd popad ret SyserEnterLoop ENDP ;VOID SyserSaveSyserDRX(VOID); SyserSaveSyserDRX PROC push eax push ecx mov ecx,SyserDR mov eax,[ecx + 0*4] mov dr0,eax mov eax,[ecx + 1*4] mov dr1,eax mov eax,[ecx + 2*4] mov dr2,eax mov eax,[ecx + 3*4] mov dr3,eax xor eax,eax mov dr6,eax mov eax,[ecx + 7*4] and eax,0ffffdfffh mov dr7,eax pop ecx pop eax ret SyserSaveSyserDRX ENDP ;VOID SyserSaveSyserDRXNew(VOID); SyserSaveSyserDRXNew PROC push eax push ecx mov ecx,SyserDR mov eax,[ecx + 2*4] mov dr2,eax mov eax,[ecx + 1*4] mov dr1,eax mov eax,[ecx + 3*4] mov dr3,eax mov eax,[ecx + 0*4] mov dr0,eax xor eax,eax mov dr6,eax mov eax,[ecx + 7*4] and eax,0ffffdfffh mov dr7,eax pop ecx pop eax ret SyserSaveSyserDRXNew ENDP ;VOID SyserNMIInterruptService(VOID); SyserNMIInterruptService PROC local dwEBP:ptr DWORD pushfd cmp gCPUNumbers,1 jnz @@MultiCPUMachine popfd ret ;ڵcpu Ļֱӷص windows ж. fixme @@MultiCPUMachine: pushad push ds push es cli mov ax,ss mov ds,ax mov es,ax mov eax,[esp+12*4] mov int2eip,eax lock inc gNmiCount invoke SyserDisableDebugRegisterMontior invoke SyserLoadContext push esp call SyserEnterLoop invoke SyserGetIsDbgRegAccessMon test al,0 jz @@DbgRegAMonFalse call SyserSaveSyserDRXNew @@DbgRegAMonFalse: cmp gNmiCount,2 jge @@Quit invoke SyserEnableDebugRegisterMontior @@Quit: lock dec gNmiCount pop es pop ds popad popfd lea esp,[esp+4] mov gdwExitNmiLock,0 iretd SyserNMIInterruptService ENDP ; ; HardWareInterruptCtrl.cpp ; ;VOID SyserDisableAllHardInterrupt(VOID); SyserDisableAllHardInterrupt PROC pushad cmp gbIsSaveInterruptShieldRegister,0 jnz @@5 cmp gbIsUseAPIC,0 jz @@1 mov eax,gdwLocalAPICLineAddress mov eax,[eax + 080h] mov gdwLocalAPICLineAddress,eax invoke SaveIOAPICInterruptVectorTable jmp @@4 @@1: in al,021h mov gdwPIC8259Shield_1,al mov ecx,0100h @@2: loop @@2 in al,0A1h mov gdwPIC8259Shield_2,al mov ecx,0100h @@3: loop @@3 @@4: mov gbIsSaveInterruptShieldRegister,1 @@5: cmp gbIsUseAPIC,0 jz @@6 mov eax,gdwLocalAPICLineAddress mov dword ptr [eax+080h],0ffh jmp @@Quit @@6: mov al,0ffh out 021h,al mov ecx,0100h @@7: loop @@7 out 0A1h,al mov ecx,0100h @@8: loop @@8 in al,021h mov ecx,0100h @@9: loop @@9 in al,0A1h mov ecx,0100h @@10: loop @@10 @@Quit: popad ret SyserDisableAllHardInterrupt ENDP ;VOID SyserEnableAllHardInterrupt(VOID); SyserEnableAllHardInterrupt PROC pushad push ds push es mov ax,NT_DS mov ds,ax mov es,ax cmp gbIsSaveInterruptShieldRegister,0 jz @@Quit cmp gbIsUseAPIC,0 jz @@IsUseAPICElse invoke RestoreIOAPICInterruptVectorTable mov eax,gdwLocalAPICLineAddress mov ebx,gdwLocalAPICTaskPriority mov [eax+080h],ebx jmp @@IfEnd @@IsUseAPICElse: mov al,gdwPIC8259Shield_1 out 021h,al mov ecx,0100h @@1: loop @@1 mov al,gdwPIC8259Shield_2 out 0A1h,al mov ecx,0100h @@2: loop @@2 @@IfEnd: mov gbIsSaveInterruptShieldRegister,0 @@Quit: pop es pop ds popad ret SyserEnableAllHardInterrupt ENDP ; ; Services.cpp ; ;VOID SyserInt2dProc(VOID); SyserInt2dProc PROC pushad push ds push es push fs mov bp,NT_DS mov ds,bp mov es,bp mov bp,NT_FS mov fs,bp mov ebp,esp sub esp,12 mov [ebp],eax; ;SrvID mov [ebp-4],ecx ;Arg1 mov [ebp-8],edx ;Arg2 cmp eax,3 jnz @@Case4 jmp @@EndSwitch @@Case4: cmp eax,4 jnz @@EndSwitch invoke UnloadSystemModuleSymbols,[ebp-4],[ebp-8] @@EndSwitch: mov esp,ebp pop fs pop es pop ds popad ret SyserInt2dProc ENDP ;VOID SyserSofticeDriverEntryExitCallBack(VOID); SyserSofticeDriverEntryExitCallBack PROC pushad pushfd invoke SyserGetInstallDebug test eax,eax jnz @@1 lea eax,SofticeDriverEntryExitCallBackStrW push eax push 296 push 2 call SyserDbgPrint add esp,12 @@1: mov gSofticeDriverEntry,0 popad popfd push ss:gSofticeDriverEntryReturnAddress ret SyserSofticeDriverEntryExitCallBack ENDP ; ; PIC_8259.cpp ; ;VOID SyserEnablePIC8259HardWareInterrupt(DWORD arg); SyserEnablePIC8259HardWareInterrupt PROC arg cmp arg,08h jnb @@Else push ebx push eax mov ebx,arg in al,021h push ecx mov ecx,0100h @@1: loop @@1 pop ecx btr eax,ebx out 021h,al push ecx mov ecx,0100h @@2: loop @@2 pop ecx pop eax pop ebx jmp @@Quit @@Else: mov eax,arg sub eax,8 mov arg,eax push ebx push eax push ecx mov ebx,arg in al,0A1h mov ecx,0100h @@3: loop @@3 btr eax,ebx out 0A1h,al mov ecx,0100h @@4: loop @@4 in al,021h mov ecx,0100h @@5: loop @@5 and al,0FBh out 021h,al mov ecx,0100h @@6: loop @@6 pop ecx pop eax pop ebx @@Quit: ret SyserEnablePIC8259HardWareInterrupt ENDP ;VOID SyserSet8259EOI(DWORD dwInterruptNum); SyserSet8259EOI PROC dwInterruptNum cmp dwInterruptNum,010h jnb @@Quit cmp dwInterruptNum,8 jb @@Else push eax push ecx mov eax,dwInterruptNum sub eax,8 add eax,060h out 0A0h,al mov ecx,0200h @@2: loop @@2 mov al,062h out 020h,al mov ecx,0200h @@3: loop @@3 pop ecx pop eax jmp @@Quit @@Else: push eax mov eax,dwInterruptNum add eax,060h out 020h,al push ecx mov ecx,0200h @@1: loop @@1 pop ecx pop eax @@Quit: ret SyserSet8259EOI ENDP ;VOID SyserSaveExceptionRegister(VOID); SyserSaveExceptionRegister PROC push ebp mov ebp,esp sub esp,4 mov [ebp - 4],0 @@002: inc dword ptr [ebp-4] cmp [ebp-4],01000h jg @@3 lock bts dword ptr gExceptionSpinLock,01Fh jb @@002 @@003: push eax push ds mov eax,010h mov ds,ax mov eax,[esp+4] mov ExceptionTmpReg.GeneReg[EAX_IDX*4],eax xor eax,eax mov eax,[esp] mov ExceptionTmpReg.SegReg[DS_IDX*2],ax mov ExceptionTmpReg.GeneReg[ECX_IDX*4],ecx mov ExceptionTmpReg.GeneReg[EDX_IDX*4],edx mov ExceptionTmpReg.GeneReg[EBX_IDX*4],ebx mov ExceptionTmpReg.GeneReg[ESI_IDX*4],esi mov ExceptionTmpReg.GeneReg[EDI_IDX*4],edi mov eax,[ebp+0] mov ExceptionTmpReg.GeneReg[EBP_IDX*4],eax mov eax,[ebp+018h] mov ExceptionTmpReg.SegReg[CS_IDX*2],ax test ax,03h jz @@2 mov eax,[ebp+020h] mov ExceptionTmpReg.GeneReg[ESP_IDX*4],eax mov eax,[ebp+024h] mov ExceptionTmpReg.SegReg[SS_IDX*2],ax jmp @@3 @@2: lea eax,[ebp+020h] mov ExceptionTmpReg.GeneReg[ESP_IDX*4],eax mov ax,ss mov ExceptionTmpReg.SegReg[SS_IDX*2],ax @@3: xor eax,eax mov ax,fs mov ExceptionTmpReg.SegReg[FS_IDX*2],ax mov ax,es mov ExceptionTmpReg.SegReg[ES_IDX*2],ax mov ax,gs mov ExceptionTmpReg.SegReg[GS_IDX*2],ax mov eax,[ebp+010h] mov ExceptionTmpReg.ExceptionInterruptErrorCode,eax mov eax,[ebp+08h] mov ExceptionTmpReg.ExceptionInterruptNumber,eax mov eax,[ebp+014h] mov ExceptionTmpReg.EIP,eax mov eax,[ebp+01Ch] mov ExceptionTmpReg.EFlags,eax pop ds pop eax pushad pushfd cld call SyserbIsgpSyserValid test al,al jz @@EndIf call SyserbIsgpSyserValid test al,al jz @@EndIf call GetCurrentCPULocalAPICID mov gExceptionCurrentCpuID,eax call SyserGetSysInfoSyserBase cmp ExceptionTmpReg.EIP,eax jb @@IfBody call SyserGetSysInfoSyserHighBase cmp ExceptionTmpReg.EIP,eax jnb @@IfBody jmp @@EndIf @@IfBody: mov eax,gExceptionCurrentCpuID mov ecx,SIZEOF X86REGCONTEXT imul ecx add eax,ExceptionReg mov edi,eax lea esi,ExceptionTmpReg rep movsb @@EndIf: lock btr dword ptr gExceptionSpinLock,01Fh popfd popad mov esp,ebp pop ebp ret SyserSaveExceptionRegister ENDP ;VOID SyserSerialCom1Com3Proc(VOID); SyserSerialCom1Com3Proc PROC pushfd cmp cs:gbActive,1 jz @@001 popfd ret @@001: pushad push ds push es mov eax,010h mov ds,ax mov es,ax invoke SetInteruptEOI,4 pop es pop ds popad popfd lea esp,[esp+4] iretd SyserSerialCom1Com3Proc ENDP ;VOID SyserSerialCom2Com4Proc(VOID); SyserSerialCom2Com4Proc PROC pushfd cmp cs:gbActive,1 jz @@001 popfd ret @@001: pushad push ds push es mov eax,010H mov ds,ax mov es,ax invoke SetInteruptEOI,3; pop es pop ds popad popfd lea esp,[esp+4] iretd SyserSerialCom2Com4Proc ENDP ;VOID SyserInterrupt_0xFB_Com1_Com3_Service(VOID); SyserInterrupt_0xFB_Com1_Com3_Service PROC pushfd cmp cs:gbActive,0 jnz @@2 popfd ret @@2: popfd push cs:SyserSerialCom1Com3Proc ret SyserInterrupt_0xFB_Com1_Com3_Service ENDP ;VOID SyserInterrupt_0xFC_Com2_Com4_Service(VOID); SyserInterrupt_0xFC_Com2_Com4_Service PROC pushfd cmp cs:gbActive,0 jnz @@2 popfd ret @@2: popfd push cs:SyserSerialCom2Com4Proc ret SyserInterrupt_0xFC_Com2_Com4_Service ENDP ; ; SerialMouse.cpp ; ;VOID SyserSerialMouseInterruptService(VOID); SyserSerialMouseInterruptService PROC cmp cs:dwOldInterruptF9,1 jnz @@007 mov ss:dwOldInterruptF9,0 push cs:dwInterruptF9Address ret @@007: cmp cs:gbActive,1 jz @@1 push dword ptr cs:stKeyGlobalVariable.dwOldMouseInterrupt ret @@1: pushad pushfd push ds mov edx,wSerialMousePort lea edx,[edx+5] in al,dx mov byte3FD,al lea edx,[edx-5] in al,dx mov stKeyGlobalVariable.chCurrentMouseData,al call SyserSerialMouseInterruptServiceInternal invoke SetInteruptEOI,3 pop ds popfd popad iretd SyserSerialMouseInterruptService ENDP END ================================================ FILE: Project/Syser/i386/interrupt-x86.inc ================================================ ; /* ; жص ; ; ʮ ; QQ:764439262 ; */ NT_CS EQU 08h NT_UCS EQU 01bh NT_DS EQU 023h NT_FS EQU 030h ;DR6 DR6_BD EQU 02000h DR6_BS EQU 04000h DR6_BT EQU 08000h DR6_NOT_BD EQU 0FFFFDFFFh DR6_NOT_BS EQU 0FFFFBFFFh DR6_NOT_BT EQU 0FFFF7FFFh CR4_VME_BIT_MASK EQU 01h CR4_PVI_BIT_MASK EQU 02h CR4_TSD_BIT_MASK EQU 04h CR4_DE_BIT_MASK EQU 08h CR4_PSE_BIT_MASK EQU 010h CR4_PAE_BIT_MASK EQU 020h CR4_MCE_BIT_MASK EQU 040h CR4_PGE_BIT_MASK EQU 080h CR4_PCE_BIT_MASK EQU 0100h CR4_OSFXSR_BIT_MASK EQU 0200h CR4_OSXMMEXCPT_BIT_MASK EQU 0400h ================================================ FILE: Project/Syser/incfile.txt ================================================ ================================================ FILE: Project/Syser/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SyserApp/Source/AnalyseCom.cpp ================================================ // AnalyseCom.cpp : Defines the entry point for the console application. // #include "stdafx.h" // ddd1.cpp : Defines the entry point for the console application. // #include "AnalyseCom.h" //#include "stdafx.h" //#include //#include //#include //#include //#include //#include //using namespace std; //#define _CRT_SECURE_NO_WARNINGS // //typedef HRESULT (__stdcall * DLLREGISTERSERVER)(); //typedef HRESULT (__stdcall * DLLUNREGISTERSERVER)(); //typedef struct _COM_CLASS //{ // int index; // IUnknown* pIunknow; //}COM_CLASS,*PCOM_CLASS; // //typedef map INTERFACE_MAP; //typedef map COMSYMBOL_MAP; // // //int Usage(_TCHAR* name) //{ // int j=-1; // for(int i=0;name[i];i++) // { // if(name[i]=='\\') // j=i; // } // // fprintf(stderr,"Websense com symbol analyse version 1.0.0\n"); // fprintf(stderr,"(C) Websense Corporation, 2002-2009\n\n"); // fprintf(stderr,"Usages: %S comfilename\n",name+j+1); // return 0; //} //int GetComSymbols(char* dllname,COMSYMBOL_MAP& symmap); //int _tmain(int argc, _TCHAR* argv[]) //{ // return 0; //} int GetComSymbols(char* dllname,COMSYMBOL_MAP& symmap) { char* libname; char funcname[0x200]; ITypeLib * pLib; HRESULT result; char claid[500]; TYPEATTR* pTypeAddr; ITypeInfo* pTypeInfo; WCHAR oleName[MAX_PATH]; DLLREGISTERSERVER fpDllRegisterServer=NULL; DLLUNREGISTERSERVER fpDllUnregisterServer=NULL; HMODULE hModule=NULL; FUNCDESC* FuncDesc; LPOLESTR wClsid; BSTR FuncName; IUnknown* IUnknow1; COM_CLASS ComClass; INTERFACE_MAP::iterator BeginIT,EndIT; INTERFACE_MAP InterfaceMap; sprintf(claid,"%s",dllname); libname=claid; hModule = LoadLibrary(libname);; if(hModule) { fpDllRegisterServer =(DLLREGISTERSERVER) GetProcAddress(hModule,"DllRegisterServer"); fpDllUnregisterServer =(DLLUNREGISTERSERVER) GetProcAddress(hModule,"DllUnregisterServer"); } result = LoadTypeLibEx(oleName,REGKIND_DEFAULT,&pLib); if(result!=0) return 0; CoInitialize(NULL); { UINT count=0; UINT i; count = pLib->GetTypeInfoCount(); for(i=0;iGetTypeInfo(i,&pTypeInfo); if(result==0) { if(pTypeInfo->GetTypeAttr(&pTypeAddr)>=0) { if(pTypeAddr->typekind==TKIND_COCLASS) { StringFromCLSID(pTypeAddr->guid,&wClsid); result=0; sprintf(claid,"%S",wClsid); result = CoCreateInstance(pTypeAddr->guid,NULL, CLSCTX_INPROC_SERVER |CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER, IID_IUnknown,(LPVOID*)&IUnknow1); if(result == REGDB_E_CLASSNOTREG && fpDllRegisterServer) { fpDllRegisterServer(); result = CoCreateInstance(pTypeAddr->guid,NULL, CLSCTX_INPROC_SERVER |CLSCTX_INPROC_HANDLER|CLSCTX_LOCAL_SERVER, IID_IUnknown,(LPVOID*)&IUnknow1); } if(result==0 && IUnknow1) { ComClass.index=i; ComClass.pIunknow=IUnknow1; InterfaceMap.insert(INTERFACE_MAP::value_type(claid,ComClass)); } } pTypeInfo->ReleaseTypeAttr(pTypeAddr); } pTypeInfo->Release(); } } for(i=0;iGetTypeInfo(i,&pTypeInfo); if(result==0) { if(pTypeInfo->GetTypeAttr(&pTypeAddr)>=0) { if(pTypeAddr->cFuncs) { StringFromCLSID(pTypeAddr->guid,&wClsid); result=0; sprintf(claid,"%S",wClsid); printf("%s\n",claid); for(WORD j=0;jcFuncs;j++) { if(pTypeInfo->GetFuncDesc(j,&FuncDesc)>=0) { if(pTypeInfo->GetDocumentation(FuncDesc->memid,&FuncName,NULL,NULL,NULL)>=0) { sprintf(funcname,"%S",FuncName); count++; SysFreeString(FuncName); BeginIT=InterfaceMap.begin(); EndIT=InterfaceMap.end(); for(;BeginIT!=EndIT;BeginIT++) { PVOID pObject; result = BeginIT->second.pIunknow->QueryInterface(pTypeAddr->guid,&pObject); if(result>=0) { DWORD **pvt = (DWORD**)pObject; DWORD * pfvt=pvt[0]; DWORD offset=pfvt[FuncDesc->oVft/4]; offset-=*(DWORD*)&hModule; symmap.insert(COMSYMBOL_MAP::value_type(funcname,offset)); break; } } } pTypeInfo->ReleaseFuncDesc(FuncDesc); } } } //if(pTypeAddr->cVars) //{ // for(WORD m=0;mcVars;m++) // { // // if(pTypeInfo->GetVarDesc(m,&VarDesc)>=0) // { // if(pTypeInfo->GetDocumentation(VarDesc->memid,&VarName,NULL,NULL,NULL)>=0) // { // printf("var %ws %d \n",VarName,VarDesc->varkind); // } // } // } //} //if(pTypeAddr->cImplTypes) //{ // HREFTYPE hRefType; // for(WORD n=0;ncImplTypes;n++) // { // if(pTypeInfo->GetRefTypeOfImplType(n,&hRefType)>=0) // { // printf("[%d] GetRefTypeOfImplType %x\n",n,hRefType); // } // } //} } pTypeInfo->ReleaseTypeAttr(pTypeAddr); pTypeInfo->Release(); } } } pLib->Release(); FreeLibrary(hModule); BeginIT=InterfaceMap.begin(); EndIT=InterfaceMap.end(); for(;BeginIT!=EndIT;BeginIT++) { BeginIT->second.pIunknow->Release(); } InterfaceMap.clear(); CoUninitialize(); return symmap.size(); } ================================================ FILE: Project/SyserApp/Source/AnalyseCom.h ================================================ #ifndef __ANALYSECOM_H__ #define __ANALYSECOM_H__ #include #include #include #include #include using namespace std; #define _CRT_SECURE_NO_WARNINGS typedef HRESULT (__stdcall * DLLREGISTERSERVER)(); typedef HRESULT (__stdcall * DLLUNREGISTERSERVER)(); typedef struct _COM_CLASS { int index; IUnknown* pIunknow; }COM_CLASS,*PCOM_CLASS; typedef map INTERFACE_MAP; typedef map COMSYMBOL_MAP; int GetComSymbols(char* dllname,COMSYMBOL_MAP& symmap); #endif //__ANALYSECOM_H__ ================================================ FILE: Project/SyserApp/Source/DXTest.cpp ================================================ #include "StdAfx.h" #include "DXTest.h" #include "SyserApp.h" CSyserDX::CSyserDX() { m_pDD4=NULL; m_pDD=NULL; m_pFrameSurfacer=NULL; } bool CSyserDX::Init() { HRESULT hResult; hResult=DirectDrawCreate(NULL, &m_pDD, NULL); if(hResult!=DD_OK) goto FailExit; hResult=m_pDD->QueryInterface(IID_IDirectDraw4,(LPVOID*)&m_pDD4); if(hResult!=DD_OK) { m_pDD->Release(); goto FailExit; } m_pDD4->SetCooperativeLevel(NULL,DDSCL_NORMAL); return true; FailExit: OUTPUT(WSTR("%SyserLoader : Your video driver doesn't support direct draw!\n")); OUTPUT(WSTR("%SyserLoader : Syser could't lock frame buffer!\n")); return false; } void CSyserDX::LockFrameSurfacer() { HRESULT hResult; DDSURFACEDESC2 SurfaceDesc; if(m_pDD4==NULL) return; UnlockFrameSurfacer(); STZeroMemory(SurfaceDesc); SurfaceDesc.dwSize = sizeof(SurfaceDesc); SurfaceDesc.dwFlags = DDSD_CAPS; SurfaceDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; hResult=m_pDD4->CreateSurface(&SurfaceDesc,&m_pFrameSurfacer,NULL); if(hResult!=DD_OK) { OUTPUT(WSTR("%SyserLoader : Fail to create surface !\n")); OUTPUT(WSTR("%SyserLoader : Your video driver doesn't support direct draw!\n")); return; } hResult=m_pFrameSurfacer->Lock(NULL,&SurfaceDesc,DDLOCK_SURFACEMEMORYPTR,NULL); if(hResult!=DD_OK) { m_pFrameSurfacer->Release(); m_pFrameSurfacer=NULL; OUTPUT(WSTR("%SyserLoader : Fail to lock surface !\n")); OUTPUT(WSTR("%SyserLoader : Your video driver doesn't support direct draw!\n")); return; } DWORD cbReturn; SYSER_CORRECT_VIDEO_PARAM CorrectVideoParam; CorrectVideoParam.Pitch= SurfaceDesc.lPitch; CorrectVideoParam.Width = SurfaceDesc.dwWidth; CorrectVideoParam.Height = SurfaceDesc.dwHeight; CorrectVideoParam.Bpp = SurfaceDesc.ddpfPixelFormat.dwRGBBitCount; CorrectVideoParam.FrameBuffer = SurfaceDesc.lpSurface; CorrectVideoParam.BufferSize = SurfaceDesc.dwHeight * SurfaceDesc.lPitch; CorrectVideoParam.PID = GetCurrentProcessId(); HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser!=INVALID_HANDLE_VALUE) { OUTPUT(WSTR("SyserLoader : Notify Syser Kernel Debugger current display mode !\n")); DeviceIoControl(hSyser,IOCTL_SYSER_CORRECT_VIDEO_PARAM,&CorrectVideoParam,sizeof(CorrectVideoParam),NULL,0,&cbReturn,NULL); CloseHandle(hSyser); } } void CSyserDX::UnlockFrameSurfacer() { if(m_pFrameSurfacer) { m_pFrameSurfacer->Unlock(NULL); m_pFrameSurfacer->Release(); m_pFrameSurfacer=NULL; } } void CSyserDX::Release() { SafeRelease(m_pDD4); SafeRelease(m_pDD); } ================================================ FILE: Project/SyserApp/Source/DXTest.h ================================================ #ifndef _DX_TEST_H_ #define _DX_TEST_H_ class CSyserDX { public: CSyserDX(); bool Init(); void Release(); void LockFrameSurfacer(); void UnlockFrameSurfacer(); public: LPDIRECTDRAW4 m_pDD4; LPDIRECTDRAW m_pDD; LPDIRECTDRAWSURFACE4 m_pFrameSurfacer; }; #endif ================================================ FILE: Project/SyserApp/Source/DbgMsgFilter.cpp ================================================ #include "StdAfx.h" #include "SyserApp.h" #include "DbgMsgFilter.h" enum CDbgMsgFilterForm::WISP_FORM_ID { CMD_ID_EDIT_CONTAIN_TEXT = WISP_ID_USER_START, CMD_ID_EDIT_NOT_CONTAIN_TEXT, CMD_ID_BT_RESET, CMD_ID_STATIC_TEXT }; WISP_FORM_RES_ITEM CDbgMsgFilterForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,400,180}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Debug Message Filter (Supported ?*)") }, { WISP_CTRL_STATIC_GROUP, {10,10,370,50}, CMD_ID_STATIC_TEXT, WISP_WS_NULL, WSTR("Display only message contain one or more of these"), }, { WISP_CTRL_EDIT, {20,30,350,16}, CMD_ID_EDIT_CONTAIN_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_STATIC_GROUP, {10,70,370,50}, CMD_ID_STATIC_TEXT, WISP_WS_NULL, WSTR("Don't show message contain one or more of these"), }, { WISP_CTRL_EDIT, {20,90,350,16}, CMD_ID_EDIT_NOT_CONTAIN_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {125,130,60,18}, CMD_ID_BT_RESET, WISP_BS_NORMAL, WSTR("Reset"), NULL, NULL }, { WISP_CTRL_BUTTON, {215,130,60,18}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CDbgMsgFilterForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_EVENT_MAP_BEGIN(CDbgMsgFilterForm) WISP_MSG_EVENT_MAP(CMD_ID_BT_RESET,OnReset) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CDbgMsgFilterForm) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END CDbgMsgFilterForm::CDbgMsgFilterForm() { m_pFormRes = m_FormRes; } CDbgMsgFilterForm::~CDbgMsgFilterForm() { } bool CDbgMsgFilterForm::OnFormCreate(IN WISP_MSG*pMsg) { WISP_CHAR wszBuffer[256]; m_pContainWnd = GetFormItem(CMD_ID_EDIT_CONTAIN_TEXT); m_pNotContainWnd = GetFormItem(CMD_ID_EDIT_NOT_CONTAIN_TEXT); TStrCpy(m_szContain,"*"); GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\SDbgMsg\\Inc",m_szContain,sizeof(m_szContain)); AnsiToUnicode(m_szContain,wszBuffer,256); m_pContainWnd->SetWindowText(wszBuffer); *m_szNotContain = 0; GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\SDbgMsg\\Exc",m_szNotContain,sizeof(m_szNotContain)); AnsiToUnicode(m_szNotContain,wszBuffer,256); m_pNotContainWnd->SetWindowText(wszBuffer); return true; } bool CDbgMsgFilterForm::OnReset(IN WISP_MSG*pMsg) { m_pContainWnd->SetWindowText(WSTR("*")); m_pNotContainWnd->SetWindowText(WSTR("")); return true; } bool CDbgMsgFilterForm::OnOK(IN WISP_MSG*pMsg) { CWispString*pStr; char szContain[256]; char szNotContain[256]; if(pMsg->Command.CmdMsg != WISP_CMD_BT_UP) return true; pStr = &m_pContainWnd->GetWindowText(); UnicodeToAnsi(*pStr,szContain,256); pStr = &m_pNotContainWnd->GetWindowText(); UnicodeToAnsi(*pStr,szNotContain,256); if(TStrICmp(szContain,m_szContain)==0 && TStrICmp(szNotContain,m_szNotContain)==0) return true; if(TStrICmp(szContain,"*")==0 && *szNotContain==0) { DelRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\SDbgMsg\\Inc"); DelRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\SDbgMsg\\Exc"); } else { SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\SDbgMsg\\Inc",szContain,REG_SZ); SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\SDbgMsg\\Exc",szNotContain,REG_SZ); } theApp.m_SyserInterface.ChangeMsgFilter(); return true; } ================================================ FILE: Project/SyserApp/Source/DbgMsgFilter.h ================================================ #ifndef _DBG_MSG_FILTER_H_ #define _DBG_MSG_FILTER_H_ class CDbgMsgFilterForm : public CWispForm { public: CDbgMsgFilterForm(); ~CDbgMsgFilterForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnReset) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK) CWispBaseWnd*m_pContainWnd; CWispBaseWnd*m_pNotContainWnd; char m_szContain[256]; char m_szNotContain[256]; }; #endif ================================================ FILE: Project/SyserApp/Source/LoadIDAMapFile.cpp ================================================ #include "StdAfx.h" #include "OpenFileForm.h" #include "SyserApp.h" enum CLoadIDAMapForm::WISP_FORM_ID { CMD_ID_EDIT_TEXT = WISP_ID_USER_START, CMD_ID_COMMAND_LINE_TEXT, CMD_ID_STATIC_TEXT, CMD_ID_BROWSE_MAP_FILE, CMD_ID_BROWSE_MODULE, CMD_ID_TRANSLATE_SYMBOL, CMD_ID_DEPENDENT_SYMBOL, CMD_ID_AUTO_UNLOAD_SYMBOL, }; WISP_FORM_RES_ITEM CLoadIDAMapForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,400,180}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Load IDA map file to syser"), "\\SyserIcon\\Syser.ico" }, { WISP_CTRL_STATIC_DIB, {15,30,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\SrcExplorer.ico" }, { WISP_CTRL_STATIC_GROUP, {10,10,370,50}, WISP_ID_NULL, WISP_WS_NULL, WSTR("IDA map file"), }, { WISP_CTRL_EDIT, {40,30,250,16}, CMD_ID_EDIT_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_STATIC_DIB, {15,90,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Process.ico" }, { WISP_CTRL_STATIC_GROUP, {10,70,370,50}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Map file corresponding module"), }, { WISP_CTRL_EDIT, {40,90,250,16}, CMD_ID_COMMAND_LINE_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {310,30,60,18}, CMD_ID_BROWSE_MAP_FILE, WISP_BS_NORMAL, WSTR("Browse"), }, { WISP_CTRL_BUTTON, {310,90,60,18}, CMD_ID_BROWSE_MODULE, WISP_BS_NORMAL, WSTR("Browse"), }, /* { WISP_CTRL_STATIC_GROUP, {10,125,370,100}, WISP_ID_NULL, WISP_WS_NULL, NULL, }, { WISP_CTRL_CHECK_BOX, {20,145,270,20}, CMD_ID_TRANSLATE_SYMBOL, WISP_CBS_NORMAL|WISP_WS_MARKED, WSTR("Translate&Load it's SDS"), NULL, }, { WISP_CTRL_CHECK_BOX, {20,170,270,20}, CMD_ID_DEPENDENT_SYMBOL, WISP_CBS_NORMAL, WSTR("Translate&Load dependent module's SDS"), NULL, }, { WISP_CTRL_CHECK_BOX, {20,195,270,20}, CMD_ID_AUTO_UNLOAD_SYMBOL, WISP_CBS_NORMAL|WISP_WS_MARKED, WSTR("Unload SDS when module unload"), NULL, }, { WISP_CTRL_STATIC_DIB, {325,145,32,32}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:1" }, */ { WISP_CTRL_BUTTON, {100,130,60,18}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("Ok"), }, { WISP_CTRL_BUTTON, {240,130,60,18}, WISP_ID_CANCEL, WISP_BS_NORMAL, WSTR("Cancel"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CLoadIDAMapForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_EVENT_MAP_BEGIN(CLoadIDAMapForm) WISP_MSG_EVENT_MAP(CMD_ID_BROWSE_MAP_FILE,OnEventBrowseMapFile) WISP_MSG_EVENT_MAP(CMD_ID_BROWSE_MODULE,OnEventBrowseModule) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CLoadIDAMapForm) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END bool CLoadIDAMapForm::OnFormCreate(IN WISP_MSG*pMsg) { m_pMapFileNameEdit = (CWispEdit*) GetFormItem(CMD_ID_EDIT_TEXT); m_pFileModuleNameEdit = (CWispEdit*) GetFormItem(CMD_ID_COMMAND_LINE_TEXT); m_pTransSymCheckBox = (CWispCheckBox*) GetFormItem(CMD_ID_TRANSLATE_SYMBOL); m_pLoadDepSymCheckBox = (CWispCheckBox*) GetFormItem(CMD_ID_DEPENDENT_SYMBOL); m_pAutoUnloadSymCheckBox = (CWispCheckBox*) GetFormItem(CMD_ID_AUTO_UNLOAD_SYMBOL); *m_FileModuleName = 0; *m_MapFileName = 0; return true; } bool CLoadIDAMapForm::OnEventBrowseMapFile(IN WISP_MSG*pMsg) { char szFileName[MAX_FN_LEN]; WCHAR wszFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "Map Files(map)\0*.map\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; AnsiToUnicode(szFileName,wszFileName,MAX_FN_LEN); m_pMapFileNameEdit->SetWindowText(wszFileName); UpdateClient(); return true; } bool CLoadIDAMapForm::OnEventBrowseModule(IN WISP_MSG*pMsg) { char szFileName[MAX_FN_LEN]; WCHAR wszFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "Executable Files(exe;dll;scr;sys)\0*.exe;*.dll;*.scr;*.sys\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; AnsiToUnicode(szFileName,wszFileName,MAX_FN_LEN); m_pFileModuleNameEdit->SetWindowText(wszFileName); UpdateClient(); return true; } bool CLoadIDAMapForm::OnOK(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { UnicodeToAnsi(m_pMapFileNameEdit->GetWindowText(),m_MapFileName,sizeof(m_MapFileName)); if(*m_MapFileName==0) return false; if(m_pFileModuleNameEdit->GetWindowText().Length()) UnicodeToAnsi(m_pFileModuleNameEdit->GetWindowText(),m_FileModuleName,sizeof(m_FileModuleName)); else *m_FileModuleName=0; } return true; } ================================================ FILE: Project/SyserApp/Source/LoadIDAMapFile.h ================================================ #ifndef _LOAD_IDAMAP_FILE_H_ #define _LOAD_IDAMAP_FILE_H_ class CLoadIDAMapForm : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventBrowseMapFile); DECLARE_WISP_MSG_EVENT(OnEventBrowseModule); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK); CLoadIDAMapForm(){m_pFormRes = m_FormRes;} CWispEdit*m_pMapFileNameEdit; CWispEdit*m_pFileModuleNameEdit; CWispCheckBox*m_pTransSymCheckBox; CWispCheckBox*m_pLoadDepSymCheckBox; CWispCheckBox*m_pAutoUnloadSymCheckBox; char m_FileModuleName[MAX_FN_LEN]; char m_MapFileName[MAX_FN_LEN]; }; #endif //_LOAD_IDAMAP_FILE_H_ ================================================ FILE: Project/SyserApp/Source/LoadSourceFile.cpp ================================================ #include "StdAfx.h" #include "LoadSourceFile.h" #ifdef _SYSER_ #include "../../Syser/Source/Syser.h" #else #include "SyserApp.h" #endif enum CLoadSourceFileDlg::WISP_FORM_ID { CMD_ID_BUTTON_SKIP=WISP_ID_USER_START, CMD_ID_BUTTON_SKIPALL, CMD_ID_BUTTON_BROWSE, CMD_ID_LIST_TYPE, CMD_ID_RADIOBOX_FLOATTYPE, CMD_ID_RADIOBOX_LOCKTYPE, CMD_ID_RADIOBOX_DWORD, CMD_ID_RADIOBOX_QWORD, CMD_ID_RADIOBOX_HEX, CMD_ID_RADIOBOX_DECIMAL, CMD_ID_STATICSTR_FILENAME, CMD_ID_STATICSTR_DESCRIPTION, CMD_ID_EDIT_END_POSITION, CMD_ID_EDIT_VALUE, CMD_ID_CHECKBOX_COUNT, }; WISP_FORM_RES_ITEM CLoadSourceFileDlg::m_FormRes[] = { { WISP_CTRL_FORM, {0,0,285,144}, WISP_ID_NULL, WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER, WSTR("Attach Type"), "\\SyserIcon\\Plugin.ico", NULL, }, { WISP_CTRL_STATIC_STRING, {13,20,250,16}, CMD_ID_STATICSTR_DESCRIPTION, WISP_WS_NULL, WSTR("Unable to locate the following file:"), NULL, }, { WISP_CTRL_STATIC_STRING, {13,70,250,16}, CMD_ID_STATICSTR_FILENAME, WISP_WS_NULL, WSTR(""), NULL, }, { WISP_CTRL_BUTTON, {13,87,75,21}, CMD_ID_BUTTON_SKIP, WISP_BS_NORMAL, WSTR("Skip"), }, { WISP_CTRL_BUTTON, {99,87,75,21}, CMD_ID_BUTTON_SKIPALL, WISP_BS_NORMAL, WSTR("Skip All"), }, { WISP_CTRL_BUTTON, {185,87,75,21}, CMD_ID_BUTTON_BROWSE, WISP_BS_NORMAL, WSTR("Browse"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CLoadSourceFileDlg) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CLoadSourceFileDlg) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CLoadSourceFileDlg) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_SKIP,OnSkipButtonEvent) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_SKIPALL,OnSkipAllButtonEvent) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_BROWSE,OnBrowseButtonEvent) WISP_MSG_EVENT_MAP_END CLoadSourceFileDlg::CLoadSourceFileDlg() { m_pFormRes = m_FormRes; m_FileName[0]=0; } CLoadSourceFileDlg::~CLoadSourceFileDlg() { } bool CLoadSourceFileDlg::OnFormCreate(IN WISP_MSG* pMsg) { m_SkipButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_SKIP); m_SkipAllButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_SKIPALL); m_BrowseButton=(CWispButton*)GetFormItem(CMD_ID_BUTTON_BROWSE); m_DesciptionStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_DESCRIPTION); m_FileNameStr=(CWispStaticStr*)GetFormItem(CMD_ID_STATICSTR_FILENAME); m_FileNameStr->SetWindowText(m_FileName); return true; } bool CLoadSourceFileDlg::OnSkipButtonEvent(IN WISP_MSG* pMsg) { Destroy(); m_Result=1; return true; } bool CLoadSourceFileDlg::OnSkipAllButtonEvent(IN WISP_MSG* pMsg) { Destroy(); m_Result=2; return true; } #ifdef _SYSER_ bool CLoadSourceFileDlg::OnBrowseButtonEvent(IN WISP_MSG* pMsg) { char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; WCHAR * FileExtName; OPENFILENAME OpenFileName; m_Result=1; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = gpSyser->m_hLocalInst; OpenFileName.hwndOwner = gpSyser->m_hLocalWnd; FileExtName = TGetFileName(m_FileName); TStrCpy(szBuffer,"Source Files|"); TStrCat(szBuffer,FileExtName); TStrCat(szBuffer,"|"); m_szFileName[0]=0; for(int n = TStrLen(szBuffer);n>=0;n--) { if(szBuffer[n]=='|') szBuffer[n]=0; } OpenFileName.lpstrFilter = szBuffer; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; gpSyser->LockTimer(); if(GetOpenFileName(&OpenFileName)==TRUE) { Destroy(); m_Result=0; TStrCpy(m_szFileName,OpenFileName.lpstrFile); } gpSyser->UnlockTimer(); return true; } #else bool CLoadSourceFileDlg::OnBrowseButtonEvent(IN WISP_MSG* pMsg) { char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; WCHAR * FileExtName; OPENFILENAME OpenFileName; m_Result=1; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; FileExtName = TGetFileName(m_FileName); TStrCpy(szBuffer,"Source Files|"); TStrCat(szBuffer,FileExtName); TStrCat(szBuffer,"|"); m_szFileName[0]=0; for(int n = TStrLen(szBuffer);n>=0;n--) { if(szBuffer[n]=='|') szBuffer[n]=0; } OpenFileName.lpstrFilter = szBuffer; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; theApp.LockTimer(); if(GetOpenFileName(&OpenFileName)==TRUE) { Destroy(); m_Result=0; TStrCpy(m_szFileName,OpenFileName.lpstrFile); } theApp.UnlockTimer(); return true; } #endif bool CLoadSourceFileDlg::CreateForm(IN CWispBaseWnd* pParentWnd,IN UINT ShowMode,IN char* FileName) { TStrCpy(m_FileName,FileName); return CWispForm::CreateForm(pParentWnd,ShowMode); } int LoadSourceFileCallBack(IN char* OrgFileName,OUT char* NewFileName) { return 2; int bRet=0; char* pStr; #ifdef _SYSER_ if(gpSyser->m_MainFrame.IsWindow()==false) return 2; #else if(theApp.m_MainFrame.IsWindow()==false) return 2; #endif pStr = TGetFileName(OrgFileName); CLoadSourceFileDlg Dlg; Dlg.CreateForm(NULL,WISP_SH_MODAL_BLOCK,pStr); bRet=Dlg.m_Result; if(bRet==0) { TStrCpy(NewFileName,Dlg.m_szFileName); } return bRet; } ================================================ FILE: Project/SyserApp/Source/LoadSourceFile.h ================================================ #ifndef _LOADSOURCEFILE_H_ #define _LOADSOURCEFILE_H_ class CLoadSourceFileDlg:public CWispForm { public: CLoadSourceFileDlg(); ~CLoadSourceFileDlg(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_EVENT(OnSkipButtonEvent) DECLARE_WISP_MSG_EVENT(OnSkipAllButtonEvent) DECLARE_WISP_MSG_EVENT(OnBrowseButtonEvent) bool CreateForm(IN CWispBaseWnd* pParentWnd,IN UINT ShowMode,IN char* FileName); public: CWispStaticStr* m_DesciptionStr; CWispStaticStr* m_FileNameStr; CWispButton*m_SkipButton; CWispButton*m_SkipAllButton; CWispButton*m_BrowseButton; WCHAR m_FileName[MAX_FN_LEN]; char m_szFileName[MAX_FN_LEN]; }; int LoadSourceFileCallBack(IN char* OrgFileName,OUT char* NewFileName); #endif //_LOADSOURCEFILE_H_ ================================================ FILE: Project/SyserApp/Source/MainFrame.cpp ================================================ #include "StdAfx.h" #include "SyserApp.h" WISP_MSG_MAP_BEGIN(CMainFrame) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispWnd) WISP_MSG_CMD_MAP_BEGIN(CMainFrame) WISP_MSG_CMD_MAP(WISP_ID_MAIN_TAB,OnMainTabCommand) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CMainFrame) WISP_MSG_EVENT_MAP(EVENT_ID_UPDATE_DRIVER_STATE,OnUpdateDriverState) WISP_MSG_EVENT_MAP(EVENT_ID_LOAD_MODULE,OnMenuEventLoadModule) WISP_MSG_EVENT_MAP(EVENT_ID_LOAD_EXPORT_SYMBOLS,OnMenuEventLoadExportSymbols) WISP_MSG_EVENT_MAP(EVENT_ID_LOAD_SYMBOL_SYSERAPP,OnMenuEventLoadSymbol) WISP_MSG_EVENT_MAP(EVENT_ID_LOAD_IDA_MAP,OnMenuEventLoadIDAMap) WISP_MSG_EVENT_MAP(EVENT_ID_TRANSLATE_SYMBOL,OnMenuEventTranslateSymbol) WISP_MSG_EVENT_MAP(EVENT_ID_START_SYSER,OnMenuEventStartSyser) WISP_MSG_EVENT_MAP(EVENT_ID_STOP_SYSER,OnMenuEventStopSyser) WISP_MSG_EVENT_MAP(EVENT_ID_OPTION,OnMenuEventOption) WISP_MSG_EVENT_MAP(EVENT_ID_BOOT_OPTION,OnMenuEventBootOption) WISP_MSG_EVENT_MAP(EVENT_ID_VIDEO_DETECT_MODE,OnMenuEventVideoDetectMode) WISP_MSG_EVENT_MAP(EVENT_ID_SYMBIL_DOWNLOADER,OnMenuEventSymDownloader) WISP_MSG_EVENT_MAP(EVENT_ID_DRV_LOADER,OnMenuEventDrvLoader) WISP_MSG_EVENT_MAP(EVENT_ID_VEUNPACK,OnMenuEventVEUnpack) WISP_MSG_EVENT_MAP(EVENT_ID_EXIT,OnMenuEventExit) WISP_MSG_EVENT_MAP(EVENT_ID_CHECKNEWVERSION,OnMenuEventCheckNewVersion) WISP_MSG_EVENT_MAP(EVENT_ID_SEND_CLIPBOARD,OnMenuEventSendClipboard) WISP_MSG_EVENT_MAP(EVENT_ID_RECV_CLIPBOARD,OnMenuEventRecvClipboard) WISP_MSG_EVENT_MAP(EVENT_ID_DEBUG_MESSAGE,OnMenuEventDebugMessage) WISP_MSG_EVENT_MAP(EVENT_ID_DEBUG_MESSAGE_CLEAR,OnMenuEventClearDebugMessage) WISP_MSG_EVENT_MAP(EVENT_ID_DEBUG_MESSAGE_FILTER,OnMenuEventDebugMessageFilter) WISP_MSG_EVENT_MAP(EVENT_ID_BUYNOW,OnMenuEventBuyNow) WISP_MSG_EVENT_MAP(EVENT_ID_REGISTER,OnMenuEventRegister) WISP_MSG_EVENT_MAP(EVENT_ID_COMMAND_REFERENCE,OnMenuEventCmdRef) WISP_MSG_EVENT_MAP(EVENT_ID_DEBUG_HELP,OnMenuEventDebugHelp) WISP_MSG_EVENT_MAP(EVENT_ID_ABOUT_SYSERAPP,OnMenuEventAboutSyserApp) WISP_MSG_EVENT_MAP(EVENT_ID_SAVE_HISTROYS,OnMenuEventSaveHistroys) WISP_MSG_EVENT_MAP(EVENT_ID_SAVE_SYSER_HISTROYS,OnMenuEventSaveSyserHistroys) WISP_MSG_EVENT_MAP(EVENT_ID_SAVE_COMMENTS,OnMenuEventSaveComments) WISP_MSG_EVENT_MAP_DEFAULT_END(OnMenuEventRecentFile) bool CMainFrame::OnMainTabCommand(IN WISP_MSG*pMsg) { return true; } bool CMainFrame::OnMenuEventLoadModule(IN WISP_MSG*pMsg) { DWORD Style; COpenFileForm OpenFileForm; OpenFileForm.CreateForm(NULL,WISP_SH_MODAL_BLOCK); OpenFileForm.Destroy(); if(OpenFileForm.m_Result!=WISP_ID_OK) return true; Style = SDP_NULL; if(OpenFileForm.m_bTransSym) Style|=SDP_LOAD_SDS; if(OpenFileForm.m_bLoadDepSym) Style|=SDP_LOAD_DEP_SDS; if(OpenFileForm.m_bAutoUnloadSym) Style|=SDP_AUTO_UNLOAD_SDS; theApp.m_SyserInterface.LoadModule(OpenFileForm.m_Filename,OpenFileForm.m_CmdLine,Style); return true; } bool CMainFrame::OnMenuEventLoadExportSymbols(IN WISP_MSG*pMsg) { char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; char szSymbolFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "PE Module(exe;scr;dll;sys)\0*.exe;*.scr;*.dll;*.sys\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; GetSystemDirectory(szBuffer,MAX_FN_LEN); OpenFileName.lpstrInitialDir = szBuffer; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; szSymbolFileName[0]=0; if(theApp.m_SyserInterface.TranslateExportSymbolFile(szFileName,szSymbolFileName)) { theApp.m_SyserInterface.LoadSDS(szSymbolFileName); } else { OUTPUT(WSTR("%<3>Error : Failed to load export symbols!\n")); } //theApp.m_SyserInterface.LoadModuleExportSymbols(szFileName); return true; } bool CMainFrame::OnMenuEventLoadSymbol(IN WISP_MSG*pMsg) { char szFileName[MAX_FN_LEN],szDir[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "Symbol Files(*.sds)\0*.sds\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; OpenFileName.lpstrInitialDir = NULL; GetModulePath(szDir); TStrCat(szDir,"Symbols"); *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; theApp.m_SyserInterface.LoadSDS(szFileName); return true; } bool CMainFrame::OnMenuEventLoadIDAMap(IN WISP_MSG*pMsg) { #ifndef __DEMO__VERSION__ CLoadIDAMapForm LoadIDAMapForm; LoadIDAMapForm.CreateForm(NULL,WISP_SH_MODAL_BLOCK); LoadIDAMapForm.Destroy(); if(LoadIDAMapForm.m_Result!=WISP_ID_OK) return true; theApp.m_SyserInterface.LoadModuleIDAMapFile(LoadIDAMapForm.m_MapFileName,LoadIDAMapForm.m_FileModuleName); #else theApp.MsgBox(WSTR("Evaluation version limited."),WSTR("Warnning..")); #endif return true; } bool CMainFrame::OnMenuEventTranslateSymbol(IN WISP_MSG*pMsg) { WCHAR wszBuffer[MAX_FN_LEN]; char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "PE Files(exe;dll;ocx;scr;sys)\0*.exe;*.dll;*.ocx;*.scr;*.sys\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; if(theApp.m_SyserInterface.TranslateSymbolFile(szFileName,szBuffer,true)) { AnsiToUnicode(szBuffer,wszBuffer,MAX_FN_LEN); OUTPUT(WSTR("Translate debugging data to %s\n"),wszBuffer); } else { OUTPUT(WSTR("Counldn't find this module's debugging data !\n")); } return true; } bool CMainFrame::OnMenuEventRecentFile(IN WISP_MSG*pMsg) { int Index; if(pMsg->Command.CmdID>EVENT_ID_RECENT_FILE_SYSERAPP && pMsg->Command.CmdID<=EVENT_ID_RECENT_FILE_SYSERAPP_END) { Index = pMsg->Command.CmdID-EVENT_ID_RECENT_FILE_SYSERAPP-1; TList::IT Iter = theApp.m_HistroyList[Index]; theApp.m_SyserInterface.LoadModule(Iter->FileName,NULL,Iter->Style); } return true; } bool CMainFrame::OnMenuEventSendClipboard(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.SendClipboardString(); return true; } bool CMainFrame::OnMenuEventRecvClipboard(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.RecvClipboardString(); return true; } bool CMainFrame::OnMenuEventDebugMessage(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.m_bCaptureDbgMsg = m_MainMenu.IsItemChecked(EVENT_ID_DEBUG_MESSAGE); return true; } bool CMainFrame::OnMenuEventClearDebugMessage(IN WISP_MSG*pMsg) { theApp.m_MainFrame.m_ConsoleWnd.ClearScreen(); return true; }; bool CMainFrame::OnMenuEventDebugMessageFilter(IN WISP_MSG*pMsg) { CDbgMsgFilterForm DbgMsgFilterForm; DbgMsgFilterForm.CreateForm(NULL,WISP_SH_MODAL_BLOCK); return true; } bool CMainFrame::OnMenuEventStartSyser(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.StartSyserDriver(); return true; } bool CMainFrame::OnMenuEventStopSyser(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.StopSyserDriver(); return true; } bool CMainFrame::OnMenuEventOption(IN WISP_MSG*pMsg) { HANDLE hMutex = OpenMutex(MUTEX_ALL_ACCESS,false,"Syser Option"); if(hMutex) { HWND hWnd = FindWindow(NULL,"Syser Option"); if(hWnd) BringWindowToTop(hWnd); CloseHandle(hMutex); return true; } CHAR szFileName[MAX_FN_LEN]; STARTUPINFO StartInfo; PROCESS_INFORMATION ProcInfo; memset(&StartInfo,0,sizeof(STARTUPINFO)); memset(&ProcInfo,0,sizeof(PROCESS_INFORMATION)); StartInfo.cb = sizeof(STARTUPINFO); StartInfo.dwFlags = STARTF_USESHOWWINDOW; StartInfo.wShowWindow = SW_SHOWDEFAULT; GetModulePath(szFileName); TStrCat(szFileName,"SyserOption.exe"); CreateProcess(szFileName,NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&StartInfo,&ProcInfo); return true; } bool CMainFrame::OnUpdateDriverState(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.UpdateDriverStatus(); return true; } bool CMainFrame::OnMenuEventBootOption(IN WISP_MSG*pMsg) { CHAR szFileName[MAX_FN_LEN]; STARTUPINFO StartInfo; PROCESS_INFORMATION ProcInfo; memset(&StartInfo,0,sizeof(STARTUPINFO)); memset(&ProcInfo,0,sizeof(PROCESS_INFORMATION)); StartInfo.cb = sizeof(STARTUPINFO); StartInfo.dwFlags = STARTF_USESHOWWINDOW; StartInfo.wShowWindow = SW_SHOWDEFAULT; GetModulePath(szFileName); TStrCat(szFileName,"SyserOption.exe /boot"); CreateProcess(NULL,szFileName,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&StartInfo,&ProcInfo); return true; } bool CMainFrame::OnMenuEventVideoDetectMode(IN WISP_MSG*pMsg) { CHAR szFileName[MAX_FN_LEN]; STARTUPINFO StartInfo; PROCESS_INFORMATION ProcInfo; memset(&StartInfo,0,sizeof(STARTUPINFO)); memset(&ProcInfo,0,sizeof(PROCESS_INFORMATION)); StartInfo.cb = sizeof(STARTUPINFO); StartInfo.dwFlags = STARTF_USESHOWWINDOW; StartInfo.wShowWindow = SW_SHOWDEFAULT; GetModulePath(szFileName); TStrCat(szFileName,"SyserOption.exe /video"); CreateProcess(NULL,szFileName,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&StartInfo,&ProcInfo); return true; } bool CMainFrame::OnMenuEventSymDownloader(IN WISP_MSG*pMsg) { char szPathName[MAX_FN_LEN]; GetModulePath(szPathName); TStrCat(szPathName,"SymRecv.exe"); ShellExecute(NULL,NULL,szPathName,NULL,NULL,SW_NORMAL); return true; } bool CMainFrame::OnMenuEventDrvLoader(IN WISP_MSG*pMsg) { char szPathName[MAX_FN_LEN]; GetModulePath(szPathName); TStrCat(szPathName,"Drvloader.exe"); ShellExecute(NULL,NULL,szPathName,NULL,NULL,SW_NORMAL); return true; } bool CMainFrame::OnMenuEventVEUnpack(IN WISP_MSG*pMsg) { char szPathName[MAX_FN_LEN]; GetModulePath(szPathName); TStrCat(szPathName,"VEUnpack.exe"); ShellExecute(NULL,NULL,szPathName,NULL,NULL,SW_NORMAL); return true; } bool CMainFrame::OnMenuEventExit(IN WISP_MSG*pMsg) { Destroy(); return true; } bool CMainFrame::OnMenuEventCmdRef(IN WISP_MSG*pMsg) { char szPathName[MAX_FN_LEN]; GetModulePath(szPathName); TStrCat(szPathName,"SyserCommand.chm"); ShellExecute(NULL,NULL,szPathName,NULL,NULL,SW_MAXIMIZE); return true; } bool CMainFrame::OnMenuEventDebugHelp(IN WISP_MSG*pMsg) { char szPathName[MAX_FN_LEN]; GetModulePath(szPathName); TStrCat(szPathName,"DebuggerHelp.chm"); ShellExecute(NULL,NULL,szPathName,NULL,NULL,SW_MAXIMIZE); return true; } bool CMainFrame::OnCreate(IN WISP_MSG*pMsg) { m_Style|=WISP_WS_BACK_TRANS; m_MainMenu.CreateWndMenu(this,WISP_ID_MAIN_MENU,MainMenu,WispTKDIBList("\\Toolbar.bmp",16,16)); m_MainToolBar.CreateEx(this,0,-1,WISP_ID_MAIN_TOOLBAR,WISP_WS_NULL); m_MainToolBar.LoadToolbar(WispTKDIBList("\\Toolbar.bmp",16,16),MainToolbar); m_MainToolBar.Move(0,m_MainMenu.m_WindowRect.cy); m_MainTabWnd.Create(NULL,0,m_MainMenu.m_WindowRect.cy+m_MainToolBar.m_WindowRect.cy,m_ClientRect.cx,m_ClientRect.cy-m_MainToolBar.m_WindowRect.cy-m_MainMenu.m_WindowRect.cy,this,WISP_ID_MAIN_TAB,WISP_TWS_BUTTOM); m_ConsoleWnd.Create(NULL,0,0,0,0,&m_MainTabWnd,0,WISP_WS_NULL); m_MainTabWnd.InsertWnd(WSTR("Console & Debug Message"),&m_ConsoleWnd,WispDIB("\\SyserIcon\\Console.ico",0)); m_MainTabWnd.RecalcLayout(); int TipSize = m_MainTabWnd.m_ClientRect.cx - m_MainTabWnd.m_TabItemWidth - 5; MAX_LIMIT(TipSize,MAX_TIP_WIDTH); MIN_LIMIT(TipSize,0); m_TipStr.Create(NULL,m_MainTabWnd.m_TabItemWidth + 20,m_MainTabWnd.m_ClientRect.cy-16,TipSize,16,&m_MainTabWnd,0,WISP_WS_NULL); DWORD VerType=SN_ERROR; GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\VerType",&VerType,sizeof(VerType)); if(VerType>=SN_MAX) VerType = SN_ERROR; if(VerType!=SN_ERROR) m_MainMenu.RemoveItem(EVENT_ID_BUYNOW); else m_MainMenu.SetItemColor(EVENT_ID_BUYNOW,SYS_COLOR[SC_LIGHT_RED]); theApp.m_SyserInterface.m_VerType = (SYSER_SN_TYPE)VerType; GetVersionString(); return true; } PCWSTR szVerString[]= { WSTR("Evaluation Version"), WSTR("Personal Version : Licensed to %s"), WSTR("Student Version : Licensed to %s"), WSTR("Enterprise Version : Licensed to %s"), }; void CMainFrame::GetVersionString() { CHAR szLicName[256]; WCHAR wszLicName[256],szBuffer[256]; if(theApp.m_SyserInterface.m_VerType>=SN_MAX || theApp.m_SyserInterface.m_VerTypeMsgBox(WSTR("You may need to restart syser debugger to validate this key!"),WSTR("Notify"),WISP_MB_OK); return true; } bool CMainFrame::OnMenuEventAboutSyserApp(IN WISP_MSG*pMsg) { CAboutForm AboutForm; AboutForm.CreateForm(NULL,WISP_SH_MODAL_BLOCK); AboutForm.Destroy(); return true; } void CMainFrame::UpdateSyserDriverItem(bool bEnable) { m_MainMenu.EnableItem(EVENT_ID_LOAD_MODULE,bEnable); m_MainMenu.EnableItem(EVENT_ID_LOAD_EXPORT_SYMBOLS,bEnable); m_MainMenu.EnableItem(EVENT_ID_LOAD_SYMBOL_SYSERAPP,bEnable); m_MainMenu.EnableItem(EVENT_ID_SAVE_SYSER_HISTROYS,bEnable); m_MainMenu.EnableItem(EVENT_ID_SAVE_COMMENTS,bEnable); m_MainMenu.EnableItem(EVENT_ID_SEND_CLIPBOARD,bEnable); m_MainMenu.EnableItem(EVENT_ID_RECV_CLIPBOARD,bEnable); m_MainMenu.EnableItem(EVENT_ID_START_SYSER,!bEnable); m_MainMenu.EnableItem(EVENT_ID_STOP_SYSER,bEnable); m_MainToolBar.EnableItem(EVENT_ID_LOAD_MODULE,bEnable); m_MainToolBar.EnableItem(EVENT_ID_LOAD_EXPORT_SYMBOLS,bEnable); m_MainToolBar.EnableItem(EVENT_ID_LOAD_SYMBOL_SYSERAPP,bEnable); m_MainToolBar.EnableItem(EVENT_ID_START_SYSER,!bEnable); m_MainToolBar.EnableItem(EVENT_ID_STOP_SYSER,bEnable); Update(); } bool CMainFrame::OnMenuEventSaveHistroys(IN WISP_MSG*pMsg) { char szFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "TEXT Files(*.txt)\0*.txt\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; OpenFileName.Flags = OFN_OVERWRITEPROMPT; TStrCpy(szFileName,"Histroy.txt"); if(GetSaveFileName(&OpenFileName)==false) return true; m_ConsoleWnd.SaveHistroys(szFileName); return true; } bool CMainFrame::OnMenuEventSaveSyserHistroys(IN WISP_MSG*pMsg) { char szFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "TEXT Files(*.txt)\0*.txt\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; OpenFileName.Flags = OFN_OVERWRITEPROMPT; TStrCpy(szFileName,"SyserLog.txt"); if(GetSaveFileName(&OpenFileName)==false) return true; theApp.m_SyserInterface.SaveSyserHistroys(szFileName); return true; } bool CMainFrame::OnMenuEventSaveComments(IN WISP_MSG*pMsg) { theApp.m_SyserInterface.SaveSyserComments(); return true; } ================================================ FILE: Project/SyserApp/Source/MainFrame.h ================================================ #ifndef _MAIN_FRAME_H_ #define _MAIN_FRAME_H_ #include "ProcessList.h" #include "SyserAppCmd.h" #include "DbgMsgFilter.h" #include "OpenFileForm.h" #include "LoadIDAMapFile.h" #include "RegisterForm.h" #include "..\..\Syser\Source\SyserAboutForm.h" #define MAX_TIP_WIDTH 500 class CMainFrame : public CWispWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnSize); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnMainTabCommand) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnUpdateDriverState) DECLARE_WISP_MSG_EVENT(OnMenuEventLoadModule) DECLARE_WISP_MSG_EVENT(OnMenuEventLoadExportSymbols); DECLARE_WISP_MSG_EVENT(OnMenuEventLoadSymbol) DECLARE_WISP_MSG_EVENT(OnMenuEventLoadIDAMap) DECLARE_WISP_MSG_EVENT(OnMenuEventTranslateSymbol) DECLARE_WISP_MSG_EVENT(OnMenuEventStartSyser) DECLARE_WISP_MSG_EVENT(OnMenuEventStopSyser) DECLARE_WISP_MSG_EVENT(OnMenuEventSendClipboard) DECLARE_WISP_MSG_EVENT(OnMenuEventRecvClipboard) DECLARE_WISP_MSG_EVENT(OnMenuEventDebugMessage) DECLARE_WISP_MSG_EVENT(OnMenuEventClearDebugMessage) DECLARE_WISP_MSG_EVENT(OnMenuEventDebugMessageFilter) DECLARE_WISP_MSG_EVENT(OnMenuEventExit) DECLARE_WISP_MSG_EVENT(OnMenuEventOption) DECLARE_WISP_MSG_EVENT(OnMenuEventBootOption) DECLARE_WISP_MSG_EVENT(OnMenuEventVideoDetectMode) DECLARE_WISP_MSG_EVENT(OnMenuEventSymDownloader) DECLARE_WISP_MSG_EVENT(OnMenuEventDrvLoader) DECLARE_WISP_MSG_EVENT(OnMenuEventVEUnpack) DECLARE_WISP_MSG_EVENT(OnMenuEventCheckNewVersion) DECLARE_WISP_MSG_EVENT(OnMenuEventBuyNow); DECLARE_WISP_MSG_EVENT(OnMenuEventRegister) DECLARE_WISP_MSG_EVENT(OnMenuEventCmdRef) DECLARE_WISP_MSG_EVENT(OnMenuEventDebugHelp) DECLARE_WISP_MSG_EVENT(OnMenuEventAboutSyserApp) DECLARE_WISP_MSG_EVENT(OnMenuEventRecentFile) DECLARE_WISP_MSG_EVENT(OnMenuEventSaveHistroys); DECLARE_WISP_MSG_EVENT(OnMenuEventSaveSyserHistroys); DECLARE_WISP_MSG_EVENT(OnMenuEventSaveComments); public: CRegisterForm m_RegForm; CWispMenu m_MainMenu; CWispToolbar m_MainToolBar; CWispTabWnd m_MainTabWnd; CConsoleWnd m_ConsoleWnd; //CProcessList m_ProcessList; CWispProgressForm m_ProgressForm; WISP_SIZE m_OldFrameSize; CWispStaticStr m_TipStr; void GetVersionString(); void UpdateSyserDriverItem(bool bEnable); }; #endif ================================================ FILE: Project/SyserApp/Source/ModifyBoot.cpp ================================================ #include "StdAfx.h" #include "ModifyBoot.h" #include "../../Syser/Source/Ring3Object.h" int DisableNOGUIBOOT(bool Switch) { CLocalFileIO FileIO; char KeyName[1024]; HANDLE hFile; char BufferString[1024]; char FileName[50]="c:\\boot.ini"; char*Name,*Tmp; DWORD Len,DriverBitMask,DriverType; bool bFind=false; DWORD Attr; int i,RetValue; Len = TStrLen(FileName)+1; RetValue=0; if(GetBootINIKeyName(KeyName,sizeof(KeyName))==false) return false; DriverBitMask = GetLogicalDrives(); DriverBitMask>>=2; for(i='c';i<='z';i++,DriverBitMask>>=1) { if((DriverBitMask&1)==0)continue; TSPrintf(FileName,"%c:\\",i); DriverType = GetDriveType(FileName); if(DriverType!=DRIVE_FIXED)continue; TSPrintf(FileName,"%c:\\boot.ini",i); if(FileIO.OpenFile(FileName,&hFile,FIO_READ)) { RetValue++; FileIO.CloseHandle(hFile); Attr = ::GetFileAttributes(FileName); Len = GetPrivateProfileString("operating systems",KeyName,NULL,BufferString,sizeof(BufferString),FileName); if(Len==0) continue; if(Switch) { if(TStrIStr(BufferString,"/noguiboot")==0) { Len = TStrLen(BufferString); while(Len >=1 && (BufferString[Len-1]==' '||BufferString[Len-1]=='\t'))Len--; SetFileAttributes(FileName,FILE_ATTRIBUTE_NORMAL); TStrCat(&BufferString[Len]," /noguiboot"); WritePrivateProfileString("operating systems",KeyName,BufferString,FileName); SetFileAttributes(FileName,Attr); } } else { Name = BufferString; do { Name = TStrIStr(Name,"/noguiboot"); if(Name==NULL) break; Tmp = Name; while(Name[10]) Name[0]=Name[10],Name++; Name[0]=0; bFind=true; Name=Tmp; }while(Name); if(bFind) { SetFileAttributes(FileName,FILE_ATTRIBUTE_NORMAL); WritePrivateProfileString("operating systems",KeyName,BufferString,FileName); SetFileAttributes(FileName,Attr); } } } } return RetValue; } bool GetBootINIKeyName(char* RetKeyName,DWORD RetKeyLen) { DWORD KeyLen; WCHAR *KeyName; DWORD InputLen; char WindowsDirectoryName[MAX_PATH]; int RetLen,Len = sizeof(WindowsDirectoryName); char* DirectoryName; char DiskNum; RetLen = GetWindowsDirectory(WindowsDirectoryName,Len); if(RetLen == 0||RetLen>=Len) return false; DirectoryName = TStrChr(WindowsDirectoryName,'\\'); if(DirectoryName==NULL||DirectoryName[1]=='\0') return false; DiskNum = WindowsDirectoryName[0]; DiskNum&=0xdf; if(DiskNum<'A' || DiskNum >'Z') return false; InputLen = 8192; KeyName =(WCHAR*) new char[InputLen]; KeyLen = GetBootIniKeyNameByDiskNum(DiskNum,KeyName,InputLen); if(KeyLen*sizeof(WCHAR)>=InputLen || KeyLen==0) goto errorquit; TStrCat(KeyName,DirectoryName); KeyLen = TStrLen(KeyName); if(KeyLen+1>RetKeyLen) goto errorquit; TStrCpy(RetKeyName,KeyName); delete []KeyName; return true; errorquit: delete []KeyName; return false; } int GetBootIniKeyNameByDiskNum(DWORD PhysicalDiskNumber,WCHAR *RetName,DWORD BufRetLen) { WCHAR NameBuffer[260]; WCHAR DirectoryNameBuf[260]; WCHAR DirectoryEntryName[4096]; WCHAR LinkNameBuf[4096]; NTSTATUS NTStatus; BOOL RestartScan=TRUE; UNICODE_STRING DirectoryName; ULONG Context=0,ReturnLength=0; HANDLE DirectoryHandle=NULL,SymbolicHandle=NULL; //OBJECT_ATTRIBUTES ObjectAttributes; PDIRECTORY_BASIC_INFORMATION pDirectoryBaseInformation=(PDIRECTORY_BASIC_INFORMATION)DirectoryEntryName; ULONG DirectoryBaseInformationSize=sizeof(DirectoryEntryName); unsigned int iRet = -1; WCHAR* MapName=NULL; WCHAR* DiskLinkList[26]; int DirectoryNameLen=0; if(LoadAPI()==false) { //MessageBox(NULL,"װ NTDLL.DLL еĺ","",MB_OK); UnloadAPI(); return 0; } DirectoryName.Buffer=DirectoryNameBuf; memset(DiskLinkList,0,sizeof(DiskLinkList)); UNICODE_STRING LinkTargetName; SymbolicHandle=NULL; TSPrintf(NameBuffer,L"\\global??\\%c:",PhysicalDiskNumber); LinkTargetName.Buffer=LinkNameBuf; LinkTargetName.Length=sizeof(LinkNameBuf)-2; LinkTargetName.MaximumLength=sizeof(LinkNameBuf); if(GetSymbolicLink(NameBuffer,&LinkTargetName,&ReturnLength)==false) return 0; MapName = (WCHAR*)new char[ReturnLength]; TStrCpy(MapName,LinkTargetName.Buffer); FIND_OBJECT_DATA FindObjectData; TStrCpy(DirectoryName.Buffer,"\\ArcName"); DirectoryNameLen=TStrLen(DirectoryName.Buffer); FindFirstObject(DirectoryName.Buffer,&FindObjectData); DirectoryHandle = FindObjectData.FindHandle; NTStatus = pZwQueryDirectoryObject(DirectoryHandle,pDirectoryBaseInformation,DirectoryBaseInformationSize,TRUE,RestartScan,&Context,&ReturnLength); if(NTStatus) { pZwClose(DirectoryHandle); UnloadAPI(); //MessageBox(NULL,"ѯĿ¼Ϣ","",MB_OK); return 0; } RestartScan=FALSE; do { if(TStrICmp(pDirectoryBaseInformation->ObjectTypeName.Buffer,"SymbolicLink")==0) { DirectoryName.Buffer[DirectoryNameLen]=0; TStrCat(DirectoryName.Buffer,"\\"); TStrCat(DirectoryName.Buffer,pDirectoryBaseInformation->ObjectName.Buffer); if(GetSymbolicLink(DirectoryName.Buffer,&LinkTargetName,&ReturnLength)) { if(GetSymbolicLink(LinkTargetName.Buffer,&LinkTargetName,&ReturnLength)) { if(TStrICmp(LinkTargetName.Buffer,MapName)==0) { iRet = TStrLen(pDirectoryBaseInformation->ObjectName.Buffer); if(iRetObjectName.Buffer); pZwClose(DirectoryHandle); UnloadAPI(); return iRet; } } } } NTStatus = pZwQueryDirectoryObject(DirectoryHandle,DirectoryEntryName,sizeof(DirectoryEntryName),TRUE,RestartScan,&Context,&ReturnLength); if(NTStatus) break; }while(1); pZwClose(DirectoryHandle); UnloadAPI(); return 0; } ================================================ FILE: Project/SyserApp/Source/ModifyBoot.h ================================================ #ifndef _MODIFYBOOT_H_ #define _MODIFYBOOT_H_ int GetBootIniKeyNameByDiskNum(DWORD PhysicalDiskNumber,WCHAR *RetName,DWORD BufRetLen); bool GetBootINIKeyName(char* RetKeyName,DWORD RetKeyLen); int DisableNOGUIBOOT(bool Switch); #endif //_MODIFYBOOT_H_ ================================================ FILE: Project/SyserApp/Source/NTDriver.cpp ================================================ #include "StdAfx.h" #include "NTDriver.h" bool CreateDriver(PCSTR DriverName,PCSTR FullDriver,UINT StartType) { SC_HANDLE hDriver,hSCManager; bool Stopped = false; hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); if(hSCManager==NULL) return false; hDriver = OpenService(hSCManager,DriverName,SERVICE_ALL_ACCESS); if(hDriver) ChangeServiceConfig(hSCManager,SERVICE_KERNEL_DRIVER,StartType,SERVICE_ERROR_NORMAL,FullDriver,NULL,NULL,NULL,NULL,NULL,NULL); else hDriver = CreateService(hSCManager,DriverName,DriverName,SERVICE_ALL_ACCESS,SERVICE_KERNEL_DRIVER,StartType,SERVICE_ERROR_NORMAL,FullDriver,NULL,NULL,NULL,NULL,NULL); if(hDriver==NULL) { CloseServiceHandle(hSCManager); return false; } CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return true; } bool RemoveDriver(PCSTR DriverName) { SC_HANDLE hDriver,hSCManager; bool Result; hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); if(hSCManager==NULL) return false; hDriver = OpenService(hSCManager,DriverName,SERVICE_ALL_ACCESS); if(hDriver==NULL) { CloseServiceHandle(hSCManager); return true; } Result = DeleteService(hDriver)!=FALSE; CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return Result; } bool StartDriver(PCSTR DriverName) { bool Started; SERVICE_STATUS ss; SC_HANDLE hSCManager,hDriver; hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_CONNECT); if(hSCManager==NULL) return false; hDriver=OpenService(hSCManager,DriverName,SERVICE_QUERY_STATUS|SERVICE_START); if(hDriver==NULL) { CloseServiceHandle(hSCManager); return false; } if(QueryServiceStatus(hDriver,&ss) && ss.dwCurrentState!=SERVICE_STOPPED) goto ErrorExit; if(StartService(hDriver,0,NULL)==false) goto ErrorExit; Started=false; for(int seconds=0;seconds<10;seconds++) { Sleep(1000); if(QueryServiceStatus(hDriver,&ss) && ss.dwCurrentState==SERVICE_RUNNING) { Started = true; break; } } if(Started==false) goto ErrorExit; CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return true; ErrorExit: CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return false; } #ifndef INST_DRV_ONLY bool StopDriver(PCSTR DriverName) { SERVICE_STATUS ss; SC_HANDLE hDriver,hSCManager; bool Stopped = false; hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS); if(hSCManager==NULL) return false; hDriver = OpenService(hSCManager,DriverName,SERVICE_ALL_ACCESS); if(hDriver==NULL) { CloseServiceHandle(hSCManager); return true; } if(QueryServiceStatus(hDriver,&ss)==false) goto SuccessExit; if(ss.dwCurrentState==SERVICE_STOPPED) goto SuccessExit; if(ControlService(hDriver,SERVICE_CONTROL_STOP,&ss)==false) goto ErrorExit; Stopped = false; for(int seconds=0;seconds<10;seconds++) { if(QueryServiceStatus(hDriver,&ss) == false || ss.dwCurrentState==SERVICE_STOPPED) { Stopped = true; break; } Sleep(1000); } if(Stopped == false) goto ErrorExit; SuccessExit: CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return true; ErrorExit: CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return false; } bool IsDriverActive(PCSTR DriverName) { SERVICE_STATUS ss; SC_HANDLE hDriver,hSCManager; hSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_CONNECT); if(hSCManager==NULL) return false; hDriver = OpenService(hSCManager,DriverName,SERVICE_QUERY_STATUS); if(hDriver==NULL) { CloseServiceHandle(hSCManager); return false; } if(QueryServiceStatus(hDriver,&ss)==false) goto ErrorExit; if(ss.dwCurrentState==SERVICE_RUNNING) { CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return true; } ErrorExit: CloseServiceHandle(hDriver); CloseServiceHandle(hSCManager); return false; } bool InstallDriver(PCSTR DriverName,PCSTR DriverFileName,UINT StartType,PCSTR GroupName,DWORD Tag) { UINT OldStartType,OldTag; DWORD dwRegValue,Disposition,dwSize; HKEY hKey; bool bGroupChange=false; CHAR FullName[260],FullFileName[260],*pszName,OldGroupName[260]; if(DriverFileName==NULL) { CHAR*pStr; GetModuleFileName(NULL,FullFileName,sizeof(FullFileName)); pStr=strrchr(FullFileName,'\\'); if(pStr==NULL) return false; pStr[1]=0; strcpy(&pStr[1],DriverName); strcat(pStr,".sys"); DriverFileName = FullFileName; } else { strcpy(FullFileName,DriverFileName); } strcpy(FullName,"SYSTEM\\CurrentControlSet\\Services\\"); strcat(FullName,DriverName); if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,FullName,0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; if(Disposition==REG_OPENED_EXISTING_KEY) { OldStartType = -1; dwSize = sizeof(OldStartType); RegQueryValueEx(hKey,"Start",NULL,NULL,(BYTE*)&OldStartType,&dwSize); dwSize = sizeof(OldTag); RegQueryValueEx(hKey,"Tag",NULL,NULL,(BYTE*)&OldTag,&dwSize); if(GroupName) { bGroupChange=true; dwSize=sizeof(OldGroupName); if(RegQueryValueEx(hKey,"Group",NULL,NULL,(BYTE*)OldGroupName,&dwSize) == ERROR_SUCCESS) { if(stricmp(OldGroupName,GroupName)==0) bGroupChange=false; } } dwSize=sizeof(FullName); if(bGroupChange ==false && OldTag == Tag && OldStartType == StartType && RegQueryValueEx(hKey,"ImagePath",NULL,NULL,(BYTE*)FullName,&dwSize) == ERROR_SUCCESS) { pszName = FullName; if(strnicmp(FullName,"\\??\\",4)==0) pszName+=4; if(stricmp(pszName,FullFileName)==0) { RegCloseKey(hKey); return true; } } } dwRegValue = SERVICE_ERROR_NORMAL; if(RegSetValueEx(hKey,"ErrorControl",0,REG_DWORD,(BYTE*)&dwRegValue,sizeof(DWORD)) != ERROR_SUCCESS) return false; dwRegValue = StartType; if(StartType>=0 && RegSetValueEx(hKey,"Start",0,REG_DWORD,(BYTE*)&dwRegValue,sizeof(DWORD)) != ERROR_SUCCESS) return false; dwRegValue = SERVICE_KERNEL_DRIVER; if(RegSetValueEx(hKey,"Type",0,REG_DWORD,(BYTE*)&dwRegValue,sizeof(DWORD)) != ERROR_SUCCESS) return false; dwSize = (DWORD)strlen(DriverName)+1; if(RegSetValueEx(hKey,"DisplayName",0,REG_SZ,(BYTE*)DriverName,dwSize) != ERROR_SUCCESS) return false; if(FullFileName[1]!=':') { strcpy(FullName,FullFileName); } else { strcpy(FullName,"\\??\\"); strcat(FullName,FullFileName); } dwSize = (DWORD)strlen(FullName)+1; if(RegSetValueEx(hKey,"ImagePath",0,REG_SZ,(BYTE*)FullName,dwSize) != ERROR_SUCCESS) return false; if(GroupName) { dwSize = (DWORD)strlen(GroupName)+1; if(RegSetValueEx(hKey,"Group",0,REG_SZ,(BYTE*)GroupName,dwSize) != ERROR_SUCCESS) return false; } if(Tag!=-1) { if(RegSetValueEx(hKey,"Tag",0,REG_DWORD,(BYTE*)&Tag,sizeof(Tag)) != ERROR_SUCCESS) return false; } RegCloseKey(hKey); return CreateDriver(DriverName,DriverFileName,StartType); } bool UninstallDriver(PCSTR DriverName) { CHAR szBuffer[256],FullName[260]; HKEY hKey; FILETIME Time; DWORD dwSize; strcpy(FullName,"SYSTEM\\CurrentControlSet\\Services\\"); strcat(FullName,DriverName); if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,FullName,0,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS) goto RemoveDriver; dwSize=sizeof(szBuffer); while(RegEnumKeyEx(hKey,0,szBuffer,&dwSize,NULL,NULL,NULL,&Time)==ERROR_SUCCESS) { RegDeleteKey(hKey,szBuffer); dwSize=sizeof(szBuffer); } RegCloseKey(hKey); RegDeleteKey(HKEY_LOCAL_MACHINE,FullName); RemoveDriver: return RemoveDriver(DriverName); } bool EnableDriver(PCSTR DriverName,PCSTR DriverFileName) { if(IsDriverActive(DriverName)) return true; InstallDriver(DriverName,DriverFileName); return StartDriver(DriverName); } bool DisableDriver(PCSTR DriverName) { return StopDriver(DriverName); } bool InstallServiceGroup(PCSTR szGroup,PCSTR szPosAfter) { DWORD Size; HKEY hKey; TList NameList; TList::IT Iter; PSTR pStr; char*szList = NULL; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\ServiceGroupOrder",0,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS) return false; if(RegQueryValueEx(hKey,"List",0,NULL,NULL,&Size)!=ERROR_SUCCESS) goto ErrorExit; Size+=100; szList = new char[Size]; if(RegQueryValueEx(hKey,"List",0,NULL,(PBYTE)szList,&Size)!=ERROR_SUCCESS) goto ErrorExit; for(pStr = szList;*pStr;pStr++) { Iter = NameList.Append(pStr); pStr+=Iter->Length(); } Iter = NameList.Find(szGroup); while(Iter != NameList.End()) { NameList.Remove(Iter); Iter = NameList.Find(szGroup); } if(szPosAfter==NULL) szPosAfter = ""; if(TStrICmp(szPosAfter,"")==0) Iter = NameList.InsertBefore(NameList.Begin(),szGroup); else if(TStrICmp(szPosAfter,"")==0) Iter = NameList.Append(szGroup); else { Iter = NameList.Find(szPosAfter); if(Iter == NameList.End()) Iter = NameList.Last(); NameList.InsertAfter(Iter,szGroup); } Iter = NameList.Begin(); pStr = szList; while(Iter!=NameList.End()) { TStrCpy(pStr,(PCSTR)*Iter); pStr+=Iter->Length()+1; Iter++; } *pStr=0; if(RegSetValueEx(hKey,"List",0,REG_MULTI_SZ,(PBYTE)szList,(DWORD)(pStr-szList)+1)!=ERROR_SUCCESS) goto ErrorExit; delete szList; RegCloseKey(hKey); return true; ErrorExit: if(szList) delete szList; RegCloseKey(hKey); return false; } bool UninstallServiceGroup(PCSTR szGroup) { DWORD Size; HKEY hKey; TList NameList; TList::IT Iter; PSTR pStr; char*szList = NULL; if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\ServiceGroupOrder",0,KEY_ALL_ACCESS,&hKey)!=ERROR_SUCCESS) return false; if(RegQueryValueEx(hKey,"List",0,NULL,NULL,&Size)!=ERROR_SUCCESS) goto ErrorExit; Size+=100; szList = new char[Size]; if(RegQueryValueEx(hKey,"List",0,NULL,(PBYTE)szList,&Size)!=ERROR_SUCCESS) goto ErrorExit; for(pStr = szList;*pStr;pStr++) { Iter = NameList.Append(pStr); pStr+=Iter->Length(); } Iter = NameList.Find(szGroup); if(Iter==NameList.End()) goto SuccessExit; while(Iter != NameList.End()) { NameList.Remove(Iter); Iter = NameList.Find(szGroup); } Iter = NameList.Begin(); pStr = szList; while(Iter!=NameList.End()) { TStrCpy(pStr,(PCSTR)*Iter); pStr+=Iter->Length()+1; Iter++; } *pStr=0; if(RegSetValueEx(hKey,"List",0,REG_MULTI_SZ,(PBYTE)szList,(DWORD)(pStr-szList)+1)!=ERROR_SUCCESS) goto ErrorExit; SuccessExit: delete szList; RegCloseKey(hKey); return true; ErrorExit: if(szList) delete szList; RegCloseKey(hKey); return false; } #endif ================================================ FILE: Project/SyserApp/Source/NTDriver.h ================================================ #ifndef _INSTALL_DISK_H_ #define _INSTALL_DISK_H_ #include ////////////////////////////////////////////////////////////////////////////////// //װ //DriverName //DriverFileNameļ ////////////////////////////////////////////////////////////////////////////////// bool InstallDriver(PCSTR DriverName,PCSTR DriverFileName=NULL,UINT StartType = SERVICE_DEMAND_START,PCSTR GroupName=NULL,DWORD Tag=-1); ////////////////////////////////////////////////////////////////////////////////// //ж //DriverName //bDeleteFileǷɾļ ////////////////////////////////////////////////////////////////////////////////// bool UninstallDriver(PCSTR DriverName); ////////////////////////////////////////////////////////////////////////////////// // //DriverName //DriverFileNameļ ////////////////////////////////////////////////////////////////////////////////// bool CreateDriver(PCSTR DriverName,PCSTR FullDriver,UINT StartType = SERVICE_DEMAND_START); ////////////////////////////////////////////////////////////////////////////////// //ɾ //DriverName ////////////////////////////////////////////////////////////////////////////////// bool RemoveDriver(PCSTR DriverName); ////////////////////////////////////////////////////////////////////////////////// // //DriverName ////////////////////////////////////////////////////////////////////////////////// bool StartDriver(PCSTR DriverName); ////////////////////////////////////////////////////////////////////////////////// //ֹͣ //DriverName ////////////////////////////////////////////////////////////////////////////////// bool StopDriver(PCSTR DriverName); ////////////////////////////////////////////////////////////////////////////////// //Ƿ //DriverName ////////////////////////////////////////////////////////////////////////////////// bool IsDriverActive(PCSTR DriverName); ////////////////////////////////////////////////////////////////////////////////// //ԶװĿ¼µ //DriverName ////////////////////////////////////////////////////////////////////////////////// bool EnableDriver(PCSTR DriverName,PCSTR DriverFileName=NULL); ////////////////////////////////////////////////////////////////////////////////// //ر //DriverName ////////////////////////////////////////////////////////////////////////////////// bool DisableDriver(PCSTR DriverName); bool InstallServiceGroup(PCSTR szGroup,PCSTR szPosAfter); bool UninstallServiceGroup(PCSTR szGroup); #endif ================================================ FILE: Project/SyserApp/Source/NoPDBSymbol.cpp ================================================ #include "StdAfx.h" #include "NoPDBSymbol.h" #include "AnalyseCom.h" CNoPDBSymbol::CNoPDBSymbol() { m_CurrentSourceFileIndex=0; m_CurrentCompilandIndex=0; m_PEFileName=NULL; m_PDBFileName=NULL; m_OnlyImportSymbol=false; m_OnlyExportSymbol=false; } CNoPDBSymbol::~CNoPDBSymbol() { } bool CNoPDBSymbol::Init() { DWORD Options; m_DbgHelpModule = LoadLibrary("DbgHelp.dll"); if(m_DbgHelpModule==NULL) return false; LoadDbgHelpApi(); if(m_SymInitialize(MY_PROCESS_HANDLE,NULL,FALSE)==false) return false; Options = m_SymGetOptions(); m_SymSetOptions(0); return true; } bool CNoPDBSymbol::LoadDbgHelpApi() { m_SymInitialize = (fpSymInitialize)GetProcAddress(m_DbgHelpModule,"SymInitialize"); m_SymLoadModule64 = (fpSymLoadModule64)GetProcAddress(m_DbgHelpModule,"SymLoadModule64"); m_SymEnumSymbols = (fpSymEnumSymbols)GetProcAddress(m_DbgHelpModule,"SymEnumSymbols"); m_SymEnumTypes = (fpSymEnumTypes)GetProcAddress(m_DbgHelpModule,"SymEnumTypes"); m_SymEnumLines = (fpSymEnumLines)GetProcAddress(m_DbgHelpModule,"SymEnumLines"); m_SymUnloadModule64 = (fpSymUnloadModule64)GetProcAddress(m_DbgHelpModule,"SymUnloadModule64"); m_SymCleanup = (fpSymCleanup)GetProcAddress(m_DbgHelpModule,"SymCleanup"); m_SymGetTypeInfo = (fpSymGetTypeInfo)GetProcAddress(m_DbgHelpModule,"SymGetTypeInfo"); m_SymGetTypeFromName = (fpSymGetTypeFromName)GetProcAddress(m_DbgHelpModule,"SymGetTypeFromName"); m_SymSetOptions = (fpSymSetOptions)GetProcAddress(m_DbgHelpModule,"SymSetOptions"); m_SymGetOptions = (fpSymGetOptions)GetProcAddress(m_DbgHelpModule,"SymGetOptions"); m_UnDecorateSymbolName = (fpUnDecorateSymbolName)GetProcAddress(m_DbgHelpModule,"UnDecorateSymbolName"); return true; } bool CNoPDBSymbol::ListGlobalSymbols(WCHAR* pExeFileName) { bool bRet; char* FileName = new char[TStrLen(pExeFileName)+1]; TStrCpy(FileName,pExeFileName); bRet = ListGlobalSymbols(FileName); delete []FileName; return bRet; } bool CNoPDBSymbol::ListGlobalSymbols(char* pExeFileName) { bool bRet = false; bool bLineRet=false; m_LoadModule64 = m_SymLoadModule64(MY_PROCESS_HANDLE,NULL,pExeFileName,NULL,0,0); if(m_LoadModule64==0) return false; if(m_SymEnumSymbols(MY_PROCESS_HANDLE,m_LoadModule64,NULL,SymEnumSymbolsCallBackProc,this)) { bRet=true; } /* if(m_SymEnumTypes(MY_PROCESS_HANDLE,m_LoadModule64,SymEnumTypesCallBackProc,this)) { bRet=true; } if(m_SymEnumLines(MY_PROCESS_HANDLE,m_LoadModule64,NULL,NULL,SymEnumLinesCallBackProc,this)) { bLineRet=true; } if(bLineRet) { CalculateLineLen(); } OutputLineInfo(); */ m_SymUnloadModule64(MY_PROCESS_HANDLE,m_LoadModule64); LoadPESym(pExeFileName); COMSYMBOL_MAP symmap; PUBLIC_SYMBOL_MAP::iterator FindIT; SDPUBLICSYMBOL SdPublicSymbol; memset(&SdPublicSymbol,0,sizeof(SdPublicSymbol)); SdPublicSymbol.UndecoratedName.Name=NULL; COMSYMBOL_MAP::iterator BeginIT,EndIT; if(GetComSymbols(pExeFileName,symmap)) { BeginIT=symmap.begin(); EndIT=symmap.end(); for(;BeginIT!=EndIT;BeginIT++) { SdPublicSymbol.Rva=BeginIT->second; SdPublicSymbol.uName.Name = new char[BeginIT->first.length()+1]; TStrCpy(SdPublicSymbol.uName.Name,BeginIT->first.c_str()); SdPublicSymbol.IsComVftable=1; m_PublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva)); } symmap.clear(); } return true; } bool CNoPDBSymbol::LoadPESym(char* FileName) { PUBLIC_SYMBOL_MAP::iterator FindIT; int n,m; char szSymA[1024]; SDPUBLICSYMBOL SdPublicSymbol; PSDPUBLICSYMBOL pSdPublicSymbol; IMPORT_MODULE* pImportModule; STIMPORTMODULENAME stImportModuleName; list::iterator ModuleNameIT; char* ImportModuleName; CPEFile PEFile; if(PEFile.Open(FileName)==false) return false; memset(&SdPublicSymbol,0,sizeof(SdPublicSymbol)); SdPublicSymbol.IsImportEntry=true; for(n=0;nModuleName; ModuleNameIT = find(m_ImportModuleNameList.begin(),m_ImportModuleNameList.end(),stImportModuleName); if(ModuleNameIT==m_ImportModuleNameList.end()) { ImportModuleName = new char[TStrLen(pImportModule->ModuleName)+1]; TStrCpy(ImportModuleName,pImportModule->ModuleName); stImportModuleName.Name = ImportModuleName; m_ImportModuleNameList.push_back(stImportModuleName); } else { ImportModuleName = (*ModuleNameIT).Name; } for(m=0;mFuncCount;m++) { SdPublicSymbol.Rva = pImportModule->FuncList[m].ThunkAddr-PEFile.m_PEHead.ImageBase; FindIT = m_PublicSymbolList.find(SdPublicSymbol); if(FindIT==m_PublicSymbolList.end()) { //TSPrintf(szSymA,"Import_%s_%s",pImportModule->ModuleName,pImportModule->FuncList[m].FuncName); TSPrintf(szSymA,"%s",pImportModule->FuncList[m].FuncName); SdPublicSymbol.uName.Name = new char[TStrLen(szSymA)+1]; TStrCpy (SdPublicSymbol.uName.Name,szSymA); SdPublicSymbol.Length=0; SdPublicSymbol.UndecoratedName.Name=ImportModuleName; //m_PublicSymbolList.insert(SdPublicSymbol,SdPublicSymbol.Rva); m_PublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva)); }else { pSdPublicSymbol=(PSDPUBLICSYMBOL)&(*FindIT).first; pSdPublicSymbol->IsImportEntry=true; pSdPublicSymbol->UndecoratedName.Name=ImportModuleName; //(*FindIT).first.IsImportEntry=true; // (*FindIT).first.UndecoratedName.Name=ImportModuleName; } } pImportModule++; } SdPublicSymbol.IsImportEntry=false; SdPublicSymbol.IsExportEntry=true; SdPublicSymbol.UndecoratedName.Name=NULL; for(n=0;nIsExportEntry= true; } } PEFile.Close(); return true; } BOOL CALLBACK SymEnumSymbolsCallBackProc(PSYMBOL_INFO pSymInfo,ULONG SymbolSize,PVOID UserContext) { CNoPDBSymbol* pNoPDBSymbol = (CNoPDBSymbol*)UserContext; SDPUBLICSYMBOL SdPublicSymbol; char buf[1024]; DWORD RetLen=0; DWORD64 Rva; WCHAR* Name=NULL; DWORD offset = 0; memset(&SdPublicSymbol,0,sizeof(SdPublicSymbol)); if(TStrNICmp(pSymInfo->Name,"__imp_",6)==0) { offset = 6; TStrCpy(buf,"__imp_"); } RetLen = pNoPDBSymbol->m_UnDecorateSymbolName(&pSymInfo->Name[offset],&buf[offset],sizeof(buf)-1-offset,0); if(RetLen) { SdPublicSymbol.uName.Name = new char[RetLen+1+offset]; TStrCpy(SdPublicSymbol.uName.Name,buf); }else { SdPublicSymbol.uName.Name=new char [TStrLen(pSymInfo->Name)+1]; TStrCpy(SdPublicSymbol.uName.Name,pSymInfo->Name); } Rva = pSymInfo->Address - pNoPDBSymbol->m_LoadModule64; SdPublicSymbol.Rva=*(DWORD*)&Rva; SdPublicSymbol.Length=pSymInfo->Size; pNoPDBSymbol->m_PublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva)); //pNoPDBSymbol.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva)); return true; } BOOL CALLBACK SymEnumLinesCallBackProc(PSRCCODEINFO LineInfo,PVOID UserContext) { DWORD64 Rva; CNoPDBSymbol* pNoPDBSymbol = (CNoPDBSymbol*)UserContext; NAMEANDIDPAIR SourceName2Id,CompilandName2Id; DWORD SourceFileID,CompilandID; PSDCOMPILAND pCompiland; ID_TO_SOURCE_FILE_NAME_MAP::iterator FindIT; ID_TO_COMPILAND_NAME_MAP::iterator CompilandFindIT; SDLINE SDLine; SourceName2Id.Name=LineInfo->FileName; FindIT = pNoPDBSymbol->m_IdToSourceFileNameMap.find(SourceName2Id); if(FindIT==pNoPDBSymbol->m_IdToSourceFileNameMap.end()) { SourceName2Id.Name = new char[TStrLen(LineInfo->FileName)+1]; TStrCpy(SourceName2Id.Name,LineInfo->FileName); SourceName2Id.Id = pNoPDBSymbol->m_CurrentSourceFileIndex++; SourceFileID = SourceName2Id.Id; pNoPDBSymbol->m_IdToSourceFileNameMap.insert(ID_TO_SOURCE_FILE_NAME_MAP::value_type(SourceName2Id,SourceFileID)); } else { SourceFileID = FindIT->first.Id; } CompilandName2Id.Name=LineInfo->Obj; CompilandFindIT = pNoPDBSymbol->m_IdToCompilandMap.find(CompilandName2Id); if(CompilandFindIT == pNoPDBSymbol->m_IdToCompilandMap.end()) { pCompiland = new SDCOMPILAND; memset(pCompiland,0,sizeof(SDCOMPILAND)); pCompiland->uName.Name = new char[TStrLen(LineInfo->Obj)+1]; TStrCpy(pCompiland->uName.Name,LineInfo->Obj); pCompiland->CompilandId=pNoPDBSymbol->m_CurrentCompilandIndex++; CompilandID=pCompiland->CompilandId; pNoPDBSymbol->m_IdToCompilandMap.insert(ID_TO_COMPILAND_NAME_MAP::value_type(CompilandName2Id,pCompiland)); } else { pCompiland = CompilandFindIT->second; CompilandID = pCompiland->CompilandId; } Rva = LineInfo->Address-pNoPDBSymbol->m_LoadModule64; SDLine.Rva = *(DWORD*)&Rva; SDLine.FileID=SourceFileID; SDLine.CompilandId=CompilandID; SDLine.LineNumber=LineInfo->LineNumber; pNoPDBSymbol->m_TotalLineNumber.push_back(SDLine); return true; } void CNoPDBSymbol::test(PSYMBOL_INFO pSymInfo,ULONG SymbolSize) { CNoPDBSymbol* pNoPDBSymbol=this; GETTYPEINFOPARAM Param; int i = 1; if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_ADDRESS,&Param.ul64Value)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_ADDRESSOFFSET,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_ARRAYINDEXTYPEID,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_BASETYPE,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_BITPOSITION,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_CALLING_CONVENTION,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_CHILDRENCOUNT,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_CLASSPARENTID,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_COUNT,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_DATAKIND,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_LENGTH,&Param.ul64Value)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_LEXICALPARENT,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_NESTED,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_OFFSET,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_SYMINDEX,&Param.dwValue)) { i = 0; } if(pNoPDBSymbol->m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_SYMNAME,&Param.wName)) { i = 0; //delete Param.wName; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_SYMTAG,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_THISADJUST,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_TYPEID,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_UDTKIND,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_VALUE,&Param.Variant)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_VIRTUALBASECLASS,&Param.dwValue)) { i = 0; } if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_VIRTUALBASEPOINTEROFFSET,&Param.dwValue)) { i = 0; } /* if(m_SymGetTypeInfo(MY_PROCESS_HANDLE,pNoPDBSymbol->m_LoadModule64,pSymInfo->TypeIndex,TI_GET_SYMINDEX,&Param.dwValue)) { i = 0; } */ } BOOL CALLBACK SymEnumTypesCallBackProc(PSYMBOL_INFO pSymInfo,ULONG SymbolSize,PVOID UserContext) { CNoPDBSymbol* pNoPDBSymbol = (CNoPDBSymbol*)UserContext; OutputDebugString("TYPE:"); OutputDebugString(pSymInfo->Name); OutputDebugString("\n"); return true; } void CNoPDBSymbol::Release() { if(m_LoadModule64) m_SymUnloadModule64(MY_PROCESS_HANDLE,m_LoadModule64); m_LoadModule64=0; m_SymCleanup( MY_PROCESS_HANDLE ); } void CNoPDBSymbol::CalculateLineLen() { DWORD PrevRva,CurrentRva; LINE_LIST::iterator BeginIT,EndIT,PrevIT; if(m_TotalLineNumber.size()==0) return; m_TotalLineNumber.sort(); BeginIT = m_TotalLineNumber.begin(); PrevIT=BeginIT; EndIT=m_TotalLineNumber.end(); if(BeginIT==EndIT) return; BeginIT++; PrevRva = BeginIT->Rva; for(;BeginIT!=EndIT;BeginIT++,PrevIT++) { CurrentRva = BeginIT->Rva; PrevIT->Len=CurrentRva-PrevRva; PrevRva=CurrentRva; } if(PrevIT!=EndIT) PrevIT->Len=1; } void CNoPDBSymbol::OutputLineInfo() { char DisplayBuf[100]; ID_TO_SOURCE_FILE_NAME_MAP::iterator SourceFileBeginIT,SourceFileEndIT; ID_TO_COMPILAND_NAME_MAP::iterator CompilandBeginIT,CompilandEndIT; LINE_LIST::iterator LineBeginIT,LineEndIT; SourceFileBeginIT = m_IdToSourceFileNameMap.begin(); SourceFileEndIT = m_IdToSourceFileNameMap.end(); for(;SourceFileBeginIT!=SourceFileEndIT;SourceFileBeginIT++) { OutputDebugString(SourceFileBeginIT->first.Name); OutputDebugString("\n"); } CompilandBeginIT = m_IdToCompilandMap.begin(); CompilandEndIT = m_IdToCompilandMap.end(); for(;CompilandBeginIT!=CompilandEndIT;CompilandBeginIT++) { OutputDebugString(CompilandBeginIT->first.Name); OutputDebugString("\n"); } LineBeginIT = m_TotalLineNumber.begin(); LineEndIT = m_TotalLineNumber.end(); for(;LineBeginIT!=LineEndIT;LineBeginIT++) { sprintf(DisplayBuf,"LineNumber =%04d %08x %08x %d %d\n",LineBeginIT->LineNumber,LineBeginIT->Rva,LineBeginIT->Len,LineBeginIT->CompilandId,LineBeginIT->FileID); OutputDebugString(DisplayBuf); } } bool CNoPDBSymbol::TranslateSymbolFile(IN PCSTR pExeFileName,OUT PSTR pSymbolFileName) { int Len; bool bRet; WCHAR* pwszExeFileName,*pwszSymbolFileName=NULL; if(pSymbolFileName) { Len = TStrLen(pSymbolFileName)+1; pwszSymbolFileName = new WCHAR[512]; AnsiToUnicode(pSymbolFileName,pwszSymbolFileName,Len); } Len = TStrLen(pExeFileName)+1; pwszExeFileName = new WCHAR[Len]; AnsiToUnicode(pExeFileName,pwszExeFileName,Len); bRet = TranslateSymbolFile(pwszExeFileName,pwszSymbolFileName); if(pSymbolFileName) { TStrCpy(pSymbolFileName,pwszSymbolFileName); delete []pwszSymbolFileName; } delete []pwszExeFileName; return bRet; } bool CNoPDBSymbol::TranslateSymbolFile(IN WCHAR* pExeFileName,OUT WCHAR *pSymbolFileName) { char *pDestSymbolName; char *ExtFile; ULLSIZE FileLen; WCHAR NewExeFile[MAX_PATH]; SDSYMBOLFILE SDSymbolFile; bool Valid; DWORD TimeDateStamp=0; DWORD PECheckSum=0; bool IsPDBFile=false; if(IsSymbolFile(pExeFileName,&Valid)) { if(Valid) { if(pSymbolFileName) TStrCpy(pSymbolFileName,pExeFileName); return true; } DWORD Len=sizeof(NewExeFile)/sizeof(NewExeFile[0]); if(GetPEFileFullName(pExeFileName,NewExeFile,&Len)==false) return false; pExeFileName=NewExeFile; goto local_001; } else { local_001: char ModulePath[MAX_FN_LEN]; DWORD ModulePathLen; WCHAR*pTempName; pDestSymbolName = new char[MAX_FN_LEN]; ModulePathLen = GetModulePath(ModulePath); TStrCat(ModulePath,"Symbols"); if(gpFileIO->IsDir(ModulePath)==false) { if(CreateDirectory(ModulePath,NULL)==false) { ::MessageBox(NULL,"Fail to create directory!",ModulePath,MB_OK); delete []pDestSymbolName; return false; } } TStrCat(ModulePath,PATH_SEPARATOR_STR); pTempName=TGetFileExt(pExeFileName); TStrCat(ModulePath,pTempName); if(gpFileIO->IsDir(ModulePath)==false) { if(CreateDirectory(ModulePath,NULL)==false) { ::MessageBox(NULL,"Fail to create directory!",ModulePath,MB_OK); delete []pDestSymbolName; return false; } } TStrCat(ModulePath,PATH_SEPARATOR_STR); TStrCat(ModulePath,TGetFileName(pExeFileName)); ExtFile = TGetFileExt(ModulePath); TStrCpy(ExtFile,"sds"); if(pSymbolFileName) TStrCpy(pSymbolFileName,ModulePath); TStrCpy(pDestSymbolName,ModulePath); DWORD PECheckSum; GetPEFileTimeDateStamp(pExeFileName,&TimeDateStamp,&PECheckSum); if(gpFileIO->IsFileExist(pDestSymbolName)) { if(gpFileIO->ReadFromFile(pDestSymbolName,&SDSymbolFile,sizeof(SDSYMBOLFILE))==sizeof(SDSYMBOLFILE)) { FileLen = gpFileIO->GetFileSize(pDestSymbolName); if(SDSymbolFile.FileLen==*(DWORD*)&FileLen&&SDSymbolFile.ModuleID.TimeDateStamp==TimeDateStamp) { delete []pDestSymbolName; return true; } } } } ListGlobalSymbols(pExeFileName); CreateSDSymbolFile(pDestSymbolName,TimeDateStamp,PECheckSum,pExeFileName); delete []pDestSymbolName; return true; } bool CNoPDBSymbol::CreateSDSymbolFile(char *FileName,DWORD TimeDateStamp,DWORD PECheckSum,WCHAR* pExeFileName) { char *NullPage,*TempChar,*FileHeaderBuf; SDSYMBOLFILE* pSDSymbolFile; SDTYPE NullType; DWORD dwWriteLen,DataCounter,Temp,SymbolCounter,Index=0; DWORD* pSymbolOffsetArray; size_t Size; DWORD FileHeaderLen; NullPage=new char[0x1000]; memset(NullPage,0,0x1000); m_StringTableBlockBeginOffset=0; m_CurrentStringTableMaxLen=STRINGTABLEDUMPBLOCKSIZE; m_StringTable = new char[m_CurrentStringTableMaxLen]; memset(m_StringTable,0,m_CurrentStringTableMaxLen); m_StringTableOffset=1; m_StringIndex=1; FileHeaderBuf = new char[SDSF_FILE_HEADER_SIZE]; memset(FileHeaderBuf,0,SDSF_FILE_HEADER_SIZE); pSDSymbolFile = (SDSYMBOLFILE*)FileHeaderBuf; pSDSymbolFile->Sig = SYSER_DEBUG_SYMBOL_FILE_SIG; pSDSymbolFile->SymbolDirectoryEntryNum=SD_MAX_TYPEIDS; pSDSymbolFile->Version=SYSER_DEBUG_SYMBOL_FILE_VER; pSDSymbolFile->SymbolTotalNum=1;//ΪһյҪһ pSDSymbolFile->UnionSymbolTable.SymbolTableOffset=SDSF_FILE_HEADER_SIZE; pSDSymbolFile->ModuleID.TimeDateStamp = TimeDateStamp; pSDSymbolFile->ModuleID.OrgPECheckSum=PECheckSum; if(gpFileIO->CreateFile(FileName,&m_hFile)==false) return false; gpFileIO->WriteFile(m_hFile,FileHeaderBuf,SDSF_FILE_HEADER_SIZE);//дļͷ m_FileOffset=SDSF_FILE_HEADER_SIZE; SymbolCounter=pSDSymbolFile->SymbolTotalNum; Size=0; DataCounter=*(DWORD*)&Size; pSymbolOffsetArray = new DWORD [SymbolCounter]; memset(pSymbolOffsetArray,0,sizeof(DWORD)*SymbolCounter); Index=0; pSymbolOffsetArray[Index]=m_FileOffset; memset(&NullType,0,sizeof(SDTYPE)); gpFileIO->WriteFile(m_hFile,&NullType,sizeof(SDTYPE)); //дһսṹ m_FileOffset+=sizeof(SDTYPE); m_StringIDVector.push_back(0); //յַ ULLPOS CurFileLen; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //ŵļ //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //ƫƱļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionSymbolIndexTable.SymbolIndexTableOffset=m_FileOffset; gpFileIO->WriteFile(m_hFile,pSymbolOffsetArray,sizeof(DWORD)*SymbolCounter); m_FileOffset+=(sizeof(DWORD)*SymbolCounter); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //Ϣļ //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //溯Ϣļ //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //溯ϢƫƱļ //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //кϢļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionLineNumber.LineNumberOffset=m_FileOffset; DWORD WritedLen = DumpSDLineNumberToFile(&pSDSymbolFile->LineNumberCounter); m_FileOffset+=WritedLen; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //Դļбļ //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //ȫֵķűļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionPublicSymbol.PublicSymbolOffset=m_FileOffset; dwWriteLen = DumpSDPublicSymbolToFile(&pSDSymbolFile->PublicSymbolCounter); m_FileOffset+=dwWriteLen; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// // Compiland ļ //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// //ַƫƱļ //////////////////////////////////////////////////////// Size = m_StringIDVector.size(); pSDSymbolFile->StringTotalNum=*(DWORD*)&Size; pSDSymbolFile->UnionStringIndexTable.StringIndexTableOffset=m_FileOffset; if(pSDSymbolFile->StringTotalNum>SymbolCounter) { delete []pSymbolOffsetArray; pSymbolOffsetArray = new DWORD[pSDSymbolFile->StringTotalNum]; } for(unsigned i=0;iStringTotalNum;i++) pSymbolOffsetArray[i]=m_StringIDVector[i]; gpFileIO->WriteFile(m_hFile,pSymbolOffsetArray,sizeof(DWORD)*pSDSymbolFile->StringTotalNum); delete []pSymbolOffsetArray; m_FileOffset+=(sizeof(DWORD)*pSDSymbolFile->StringTotalNum); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// // ļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionStringTable.StringTableOffset=m_FileOffset; DUMP_STRING_LOCK_LIST::iterator FirstIt,LastIt; FirstIt = m_StringDumpBlockList.begin(); LastIt = m_StringDumpBlockList.end(); for(;FirstIt!=LastIt;FirstIt++) { void * WBuf=(*FirstIt).BlockBaseAddress ; DWORD WLen=(*FirstIt).EndOffset-(*FirstIt).BeginOffset; gpFileIO->WriteFile(m_hFile,WBuf,WLen); m_FileOffset+=WLen; delete []WBuf; } gpFileIO->WriteFile(m_hFile,m_StringTable,m_StringTableOffset-m_StringTableBlockBeginOffset); m_FileOffset+=m_StringTableOffset-m_StringTableBlockBeginOffset; delete []m_StringTable; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; FileHeaderLen=SDSF_FILE_HEADER_SIZE-sizeof(SDSYMBOLFILE); Temp = TStrLen(TGetFileName(pExeFileName))+1; if(FileHeaderLenuPEFileName.PEFileNameOffset = m_FileOffset; TStrCpy(NullPage,TGetFileName(pExeFileName)); gpFileIO->WriteFile(m_hFile,NullPage,Temp); m_FileOffset += Temp; pSDSymbolFile->PEFileNameLen=Temp; } else { pSDSymbolFile->uPEFileName.PEFileNameOffset = SDSF_FILE_HEADER_SIZE-FileHeaderLen; TempChar=(char*)pSDSymbolFile; TStrCpy(&TempChar[SDSF_FILE_HEADER_SIZE-FileHeaderLen],TGetFileName(pExeFileName)); FileHeaderLen-=Temp; pSDSymbolFile->PEFileNameLen=Temp; } Temp = TStrLen(pExeFileName)+1; if(FileHeaderLenuPDBFileName.PDBFileNameOffset = m_FileOffset; TStrCpy(NullPage,pExeFileName); gpFileIO->WriteFile(m_hFile,NullPage,Temp); m_FileOffset += Temp; pSDSymbolFile->PDBFileNameLen=Temp; } else { pSDSymbolFile->uPDBFileName.PDBFileNameOffset = SDSF_FILE_HEADER_SIZE-FileHeaderLen; TempChar=(char*)pSDSymbolFile; TStrCpy(&TempChar[SDSF_FILE_HEADER_SIZE-FileHeaderLen],pExeFileName); FileHeaderLen-=Temp; pSDSymbolFile->PDBFileNameLen=Temp; } if(pExeFileName) { Temp = TStrLen(pExeFileName)+1; if(FileHeaderLenuPEFileFullName.PEFileFullNameOffset=m_FileOffset; gpFileIO->WriteFile(m_hFile,TempChar,Temp); m_FileOffset+=Temp; pSDSymbolFile->PEFileFullNameLen=Temp; delete []TempChar; } else { pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset=SDSF_FILE_HEADER_SIZE-FileHeaderLen; TempChar=(char*)pSDSymbolFile; TStrCpy(&TempChar[SDSF_FILE_HEADER_SIZE-FileHeaderLen],pExeFileName); FileHeaderLen-=Temp; pSDSymbolFile->PEFileFullNameLen=Temp; } } pSDSymbolFile->FileLen=m_FileOffset; DWORD FileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_END); DWORD Tmp = *(DWORD*)&FileLen & 0xFFF; if(Tmp) { Tmp = 0x1000-Tmp; char *BufChar=new char[Tmp]; if(BufChar) { memset(BufChar,0,Tmp); gpFileIO->WriteFile(m_hFile,BufChar,Tmp); FileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_END); pSDSymbolFile->FileLen = FileLen; delete []BufChar; } else { pSDSymbolFile->CheckSum=0; } } gpFileIO->WriteFile(m_hFile,pSDSymbolFile,SDSF_FILE_HEADER_SIZE,0); gpFileIO->CloseHandle(m_hFile); WriteSDSymbolFileCheckSum(FileName); delete []NullPage; delete []FileHeaderBuf; ReleaseResource(); return true; } bool CNoPDBSymbol::WriteSDSymbolFileCheckSum(const char *FileName) { DWORD FileLen,i; DWORD* pBuffer; HANDLE hFile; PSDSYMBOLFILE pSDSymbolFile; ULONGLONG CheckSum=0; if(gpFileIO->OpenFile(FileName,&hFile,FIO_READ|FIO_WRITE)==false) return false; FileLen = (DWORD)gpFileIO->GetFileLength(hFile); if(FileLen&0xfff) { gpFileIO->CloseHandle(hFile); return false; } pBuffer = (DWORD*)new BYTE[FileLen]; if(pBuffer==NULL) { gpFileIO->CloseHandle(hFile); return false; } gpFileIO->SetFilePointer(hFile,0,FILE_CURRENT); if(gpFileIO->ReadFile(hFile,pBuffer,FileLen,0)!=FileLen) { gpFileIO->CloseHandle(hFile); return false; } pSDSymbolFile = (PSDSYMBOLFILE)pBuffer; pSDSymbolFile->CheckSum=0; for(i = 0; i < FileLen/sizeof(DWORD);i++) { CheckSum+=pBuffer[i]; } pSDSymbolFile->CheckSum=*(DWORD*)&CheckSum; gpFileIO->WriteFile(hFile,pSDSymbolFile,sizeof(SDSYMBOLFILE),0); gpFileIO->FlushFileBuffer(hFile); gpFileIO->CloseHandle(hFile); delete []pBuffer; return true; } DWORD CNoPDBSymbol::ReleaseResource() { PUBLIC_SYMBOL_MAP::iterator FirstIt,SecondIt; FirstIt = m_PublicSymbolList.begin(); SecondIt = m_PublicSymbolList.end(); for(;FirstIt!=SecondIt;FirstIt++) if((*FirstIt).first.uName.Name) delete (*FirstIt).first.uName.Name; m_PublicSymbolList.clear(); m_TotalLineNumber.clear(); ID_TO_COMPILAND_NAME_MAP::iterator CompilandFirstIt,CompilandSecondIt; CompilandFirstIt=m_IdToCompilandMap.begin(); CompilandSecondIt=m_IdToCompilandMap.end(); for(;CompilandFirstIt!=CompilandSecondIt;CompilandFirstIt++) { delete [] CompilandFirstIt->first.Name; delete CompilandFirstIt->second; } m_IdToCompilandMap.clear(); ID_TO_SOURCE_FILE_NAME_MAP::iterator SourceFileFirstIT,SourceFileSecondIT; SourceFileFirstIT = m_IdToSourceFileNameMap.begin(); SourceFileSecondIT = m_IdToSourceFileNameMap.end(); for(;SourceFileFirstIT!=SourceFileSecondIT;SourceFileFirstIT++) delete []SourceFileFirstIT->first.Name; m_IdToSourceFileNameMap.clear(); list::iterator IMNBeginIT,IMNEndIT; IMNBeginIT = m_ImportModuleNameList.begin(); IMNEndIT = m_ImportModuleNameList.end(); for(;IMNBeginIT!=IMNEndIT;IMNBeginIT++) { delete []IMNBeginIT->Name; } m_ImportModuleNameList.clear(); return true; } DWORD CNoPDBSymbol::DumpSDPublicSymbolToFile(DWORD* PublicSymbolNumbers) { SDPUBLICSYMBOL* pPublicSymbol; SDPUBLICSYMBOL TmpPubSymbols; static bool stringname=false; static DWORD stringnameid=0; char string[]="`string'"; bool bOK; DWORD ImportNum=0,ExportNum=0; PUBLIC_SYMBOL_MAP::iterator BeginIt,EndIt; size_t count = m_PublicSymbolList.size(); DWORD WriteLen =*(DWORD*)&count * sizeof(SDPUBLICSYMBOL); vector::iterator beingIt,endIt,valueIt; pPublicSymbol = new SDPUBLICSYMBOL[count]; memset(pPublicSymbol,0,WriteLen); BeginIt = m_PublicSymbolList.begin(); EndIt = m_PublicSymbolList.end(); int i,j = 0,k=0,m=0; for( i =0;BeginIt!=EndIt;BeginIt++) { bOK=false; if(m_OnlyImportSymbol||m_OnlyExportSymbol) { TmpPubSymbols = (*BeginIt).first; if(m_OnlyImportSymbol) { if(TmpPubSymbols.IsImportEntry) bOK=true; } if(m_OnlyExportSymbol) { if(TmpPubSymbols.IsExportEntry) bOK=true; } } else { bOK=true; } if(bOK==false) continue; pPublicSymbol[i]=(*BeginIt).first; if(TStrCmp(string,pPublicSymbol[i].uName.Name)) pPublicSymbol[i].uName.StringTableIndex = DumpSDTypeName(pPublicSymbol[i].uName.Name); else { if(stringname) { k++; pPublicSymbol[i].uName.StringTableIndex=stringnameid; } else { pPublicSymbol[i].uName.StringTableIndex = DumpSDTypeName(pPublicSymbol[i].uName.Name); stringname=true; stringnameid=pPublicSymbol[i].uName.StringTableIndex; } } pPublicSymbol[i].UndecoratedName.StringTableIndex = DumpSDTypeName(pPublicSymbol[i].UndecoratedName.Name); i++; } WriteLen = i*sizeof(SDPUBLICSYMBOL); gpFileIO->WriteFile(m_hFile,pPublicSymbol,WriteLen); delete []pPublicSymbol; if(PublicSymbolNumbers) *PublicSymbolNumbers=i; return WriteLen; } DWORD CNoPDBSymbol::DumpSDTypeName(char* Name) { DWORD NameLen; if(Name==NULL||Name[0]==0) return 0; NameLen = TStrLen(Name); if(NameLen+m_StringTableOffset+1 >= m_CurrentStringTableMaxLen) { DUMPSTRINGTABLEBLOCK DumpStringTableBlock; DumpStringTableBlock.BlockBaseAddress = m_StringTable; DumpStringTableBlock.EndOffset = m_StringTableOffset; DumpStringTableBlock.BeginOffset=m_StringTableBlockBeginOffset; m_StringDumpBlockList.push_back(DumpStringTableBlock); int Len = STRINGTABLEDUMPBLOCKSIZE - m_StringTableOffset % STRINGTABLEDUMPBLOCKSIZE + STRINGTABLEDUMPBLOCKSIZE; m_StringTable = new char[Len]; m_CurrentStringTableMaxLen+=STRINGTABLEDUMPBLOCKSIZE; m_StringTableBlockBeginOffset=m_StringTableOffset; } STRINGOFTABLE StringOfTable(Name); STRING_TO_ID_MAP::iterator FindIt=m_String2IDMap.find(StringOfTable); if(FindIt==m_String2IDMap.end()) { m_String2IDMap.insert(STRING_TO_ID_MAP::value_type(StringOfTable,m_StringIndex)); TStrCpy(m_StringTable-m_StringTableBlockBeginOffset+m_StringTableOffset,Name); m_StringIDVector.push_back(m_StringTableOffset); m_StringTableOffset=NameLen+1+m_StringTableOffset; m_StringIndex++; } else return FindIt->second; return m_StringIndex-1; } bool CNoPDBSymbol::IsSymbolFile(WCHAR* pFileName,OUT bool* Valid) { ULLSIZE FileLen; SDSYMBOLFILE SDSymbolFile; char* pStrFileName = new char[TStrLen(pFileName)+1]; TStrCpy(pStrFileName,pFileName); if(gpFileIO->IsFileExist(pStrFileName)==false) goto exit_local_001; if(gpFileIO->ReadFromFile(pStrFileName,&SDSymbolFile,sizeof(SDSymbolFile))!=sizeof(SDSymbolFile)) goto exit_local_001; if(SDSymbolFile.Sig!=SYSER_DEBUG_SYMBOL_FILE_SIG) goto exit_local_001; if(Valid) { FileLen =gpFileIO->GetFileSize(pStrFileName); if(FileLen==SDSymbolFile.FileLen) *Valid=true; else *Valid=false; } delete []pStrFileName; return true; exit_local_001: delete []pStrFileName; return false; } bool CNoPDBSymbol::IsSymbolFile(char* pFileName,OUT bool* Valid) { ULLSIZE FileLen; SDSYMBOLFILE SDSymbolFile; char* pStrFileName = new char[TStrLen(pFileName)+1]; TStrCpy(pStrFileName,pFileName); if(gpFileIO->IsFileExist(pStrFileName)==false) goto exit_local_001; if(gpFileIO->ReadFromFile(pStrFileName,&SDSymbolFile,sizeof(SDSymbolFile))!=sizeof(SDSymbolFile)) goto exit_local_001; if(SDSymbolFile.Sig!=SYSER_DEBUG_SYMBOL_FILE_SIG) goto exit_local_001; if(Valid) { FileLen =gpFileIO->GetFileSize(pStrFileName); if(FileLen==SDSymbolFile.FileLen) *Valid=true; else *Valid=false; } delete []pStrFileName; return true; exit_local_001: delete []pStrFileName; return false; } bool CNoPDBSymbol::GetPEFileFullName(char* pSymbolFileName,WCHAR* pPEFileFullName,DWORD* BufferLen) { bool bRet; WCHAR* pwSymbolFileName = new WCHAR[TStrLen(pSymbolFileName)+1]; TStrCpy(pwSymbolFileName,pSymbolFileName); bRet = GetPEFileFullName(pwSymbolFileName,pPEFileFullName,BufferLen); delete []pwSymbolFileName; return bRet; } bool CNoPDBSymbol::GetPEFileFullName(WCHAR* pSymbolFileName,WCHAR* pPEFileFullName,DWORD* BufferLen) { bool Valid; char *FileName; char buf[SDSF_FILE_HEADER_SIZE]; HANDLE hFile; PSDSYMBOLFILE pSDSymbolFile=(PSDSYMBOLFILE)buf; if(IsSymbolFile(pSymbolFileName,&Valid)==false) return false; if(Valid==false) return false; FileName = new char[TStrLen(pSymbolFileName)+1]; TStrCpy(FileName,pSymbolFileName); if(gpFileIO->OpenFile(FileName,&hFile)==false) { delete []FileName; return false; } if(gpFileIO->ReadFile(hFile,pSDSymbolFile,sizeof(buf),0)!=sizeof(buf)) { delete []FileName; gpFileIO->CloseHandle(hFile); return false; } delete []FileName; if(pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset+pSDSymbolFile->PEFileFullNameLen <= sizeof(buf)) { gpFileIO->CloseHandle(hFile); char* Name=(char*)pSDSymbolFile; if(BufferLen) { if(*BufferLen < pSDSymbolFile->PEFileFullNameLen) { *BufferLen=pSDSymbolFile->PEFileFullNameLen; return false; } } TStrCpy(pPEFileFullName,&Name[pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset]); return true; } else { if(BufferLen) { if(*BufferLen < pSDSymbolFile->PEFileFullNameLen) { gpFileIO->CloseHandle(hFile); *BufferLen=pSDSymbolFile->PEFileFullNameLen; return false; } } char *Name = new char[pSDSymbolFile->PEFileFullNameLen]; if(gpFileIO->ReadFile(hFile,Name,pSDSymbolFile->PEFileFullNameLen,pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset)!=pSDSymbolFile->PEFileFullNameLen) { delete []Name; gpFileIO->CloseHandle(hFile); return false; } TStrCpy(pPEFileFullName,Name); delete []Name; gpFileIO->CloseHandle(hFile); return true; } return true; } bool CNoPDBSymbol::GetPEFileTimeDateStamp(IN WCHAR* pPEFileName,OUT DWORD *TimeDateStamp,OUT DWORD *pPECheckSum) { bool bRet; char* NewFileName; DWORD Len = TStrLen(pPEFileName); NewFileName =new char[Len+1]; TStrCpy(NewFileName,pPEFileName); bRet = GetPEFileTimeDateStamp(NewFileName,TimeDateStamp,pPECheckSum); delete []NewFileName; return bRet; } bool CNoPDBSymbol::GetPEFileTimeDateStamp(IN char* pPEFileName,OUT DWORD *TimeDateStamp,OUT DWORD *pPECheckSum) { char Buf[0x1000]; MZHEAD* pMZHeader=(MZHEAD*)Buf; PE_HEAD* pPEHeader=NULL; DWORD Offset; char* TempStr; ULLSIZE FileSize; if(TimeDateStamp) *TimeDateStamp=0; if(gpFileIO->IsFileExist(pPEFileName)==false) return false; FileSize = gpFileIO->GetFileSize(pPEFileName); if(gpFileIO->ReadFromFile(pPEFileName,Buf,sizeof(Buf))!=sizeof(Buf)) return false; if(pMZHeader->Signature != MZFILE_SIGNATURE && pMZHeader->Signature != MZFILE_SIGNATURE1) return false; TempStr = (char*)&pPEHeader->TimeDateStamp+sizeof(pPEHeader->TimeDateStamp); Offset = *(DWORD*)&TempStr; if(pMZHeader->pfNewHead + Offset<=sizeof(Buf)) { if(TimeDateStamp) { pPEHeader =(PE_HEAD*) &Buf[pMZHeader->pfNewHead]; if(pPEHeader->Signature != PE_HEAD_SIGNATURE) return false; *TimeDateStamp = pPEHeader->TimeDateStamp; *pPECheckSum=pPEHeader->CheckSum; return true; } } else { HANDLE hFile; PE_HEAD PEHeader; if(gpFileIO->OpenFile(pPEFileName,&hFile)==false) return false; if(gpFileIO->ReadFile(hFile,&PEHeader,sizeof(PEHeader),pMZHeader->pfNewHead)!=sizeof(PEHeader)) { gpFileIO->CloseHandle(hFile); return false; } if(PEHeader.Signature != PE_HEAD_SIGNATURE) { gpFileIO->CloseHandle(hFile); return false; } if(TimeDateStamp) *TimeDateStamp=PEHeader.TimeDateStamp; gpFileIO->CloseHandle(hFile); return true; } return false; } DWORD CNoPDBSymbol::DumpSDLineNumberToFile(DWORD* LineNumbers) { DWORD dwTotalLineNumbers=0; size_t Size; DWORD WriteTotalLen=0; SDLINE* pLine; list ::iterator BeginIT,EndIT; Size = m_TotalLineNumber.size(); dwTotalLineNumbers = *(DWORD*)&Size; pLine = new SDLINE[dwTotalLineNumbers]; WriteTotalLen = sizeof(SDLINE)*dwTotalLineNumbers; m_TotalLineNumber.sort(); BeginIT=m_TotalLineNumber.begin(); EndIT=m_TotalLineNumber.end(); int i = 0; for(;BeginIT!=EndIT;BeginIT++,i++) pLine[i]=*BeginIT; gpFileIO->WriteFile(m_hFile,pLine,WriteTotalLen); if(LineNumbers) *LineNumbers=dwTotalLineNumbers; delete []pLine; return WriteTotalLen; } void CNoPDBSymbol::SetImportSymbols(bool bOnly) { m_OnlyImportSymbol=bOnly; } void CNoPDBSymbol::SetExportSymbols(bool bOnly) { m_OnlyExportSymbol=bOnly; } ================================================ FILE: Project/SyserApp/Source/NoPDBSymbol.h ================================================ #ifndef _NOPDBSYMBOL_H_ #define _NOPDBSYMBOL_H_ #define MY_PROCESS_HANDLE 0 #define IMAGEAPI_POINTER __stdcall typedef BOOL (IMAGEAPI_POINTER* fpSymInitialize)( IN HANDLE hProcess, IN PSTR UserSearchPath, IN BOOL fInvadeProcess ); typedef DWORD64 (IMAGEAPI_POINTER* fpSymLoadModule64)( IN HANDLE hProcess, IN HANDLE hFile, IN PSTR ImageName, IN PSTR ModuleName, IN DWORD64 BaseOfDll, IN DWORD SizeOfDll ); typedef BOOL (IMAGEAPI_POINTER* fpSymEnumSymbols)( IN HANDLE hProcess, IN ULONG64 BaseOfDll, IN PCSTR Mask, IN PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, IN PVOID UserContext ); typedef BOOL (IMAGEAPI_POINTER* fpSymEnumTypes)( IN HANDLE hProcess, IN ULONG64 BaseOfDll, IN PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, IN PVOID UserContext ); /* typedef struct _SRCCODEINFO { DWORD SizeOfStruct; PVOID Key; DWORD64 ModBase; CHAR Obj[MAX_PATH+1]; CHAR FileName[MAX_PATH+1]; DWORD LineNumber; DWORD64 Address; } SRCCODEINFO, *PSRCCODEINFO; */ typedef BOOL (CALLBACK *PSYM_ENUMLINES_CALLBACK)(PSRCCODEINFO LineInfo,PVOID UserContext); typedef BOOL (IMAGEAPI_POINTER* fpSymEnumLines)( HANDLE hProcess, ULONG64 Base, PCSTR Obj, PCSTR File, PSYM_ENUMLINES_CALLBACK EnumSymbolsCallback, PVOID UserContext ); typedef BOOL (IMAGEAPI_POINTER* fpSymUnloadModule64)( IN HANDLE hProcess, IN DWORD64 BaseOfDll ); typedef BOOL (IMAGEAPI_POINTER* fpSymCleanup)( IN HANDLE hProcess ); typedef BOOL (IMAGEAPI_POINTER* fpSymGetTypeInfo)( HANDLE hProcess, DWORD64 ModBase, ULONG TypeId, IMAGEHLP_SYMBOL_TYPE_INFO GetType, PVOID pInfo ); typedef BOOL (IMAGEAPI_POINTER*fpSymGetTypeFromName)( HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Name, PSYMBOL_INFO Symbol ); typedef DWORD (IMAGEAPI_POINTER*fpSymSetOptions)( DWORD SymOptions ); typedef DWORD (IMAGEAPI_POINTER* fpSymGetOptions)(void); typedef DWORD (IMAGEAPI_POINTER* fpUnDecorateSymbolName)( PCSTR DecoratedName, PSTR UnDecoratedName, DWORD UndecoratedLength, DWORD Flags ); typedef union Param { ULONG64 ul64Value; VARIANT Variant; DWORD dwValue; WCHAR* wName; }GETTYPEINFOPARAM; class CNoPDBSymbol { bool m_OnlyImportSymbol; bool m_OnlyExportSymbol; public: friend BOOL CALLBACK SymEnumLinesCallBackProc(PSRCCODEINFO LineInfo,PVOID UserContext); friend BOOL CALLBACK SymEnumSymbolsCallBackProc(PSYMBOL_INFO pSymInfo,ULONG SymbolSize,PVOID UserContext); friend BOOL CALLBACK SymEnumTypesCallBackProc(PSYMBOL_INFO pSymInfo,ULONG SymbolSize,PVOID UserContext); DWORD m_CurrentCompilandIndex; DWORD m_CurrentSourceFileIndex; ID_TO_SOURCE_FILE_NAME_MAP m_IdToSourceFileNameMap; ID_TO_COMPILAND_NAME_MAP m_IdToCompilandMap; LINE_LIST m_TotalLineNumber; HMODULE m_DbgHelpModule; DWORD64 m_LoadModule64; char* m_StringTable; HANDLE m_hFile; DWORD m_FileOffset; DWORD m_StringTableOffset; DWORD m_StringIndex; vector m_StringIDVector; //PUBLIC_SYMBOL_LIST m_PublicSymbolList; PUBLIC_SYMBOL_MAP m_PublicSymbolList; DWORD m_CurrentStringTableMaxLen; DWORD m_StringTableBlockBeginOffset; DUMP_STRING_LOCK_LIST m_StringDumpBlockList; STRING_TO_ID_MAP m_String2IDMap; char * m_PEFileName; char * m_PDBFileName; list m_ImportModuleNameList; fpSymCleanup m_SymCleanup; fpSymLoadModule64 m_SymLoadModule64; fpSymEnumSymbols m_SymEnumSymbols; fpSymInitialize m_SymInitialize; fpSymEnumLines m_SymEnumLines; fpSymUnloadModule64 m_SymUnloadModule64; fpSymEnumTypes m_SymEnumTypes; fpSymGetTypeInfo m_SymGetTypeInfo; fpSymGetTypeFromName m_SymGetTypeFromName; fpSymSetOptions m_SymSetOptions; fpSymGetOptions m_SymGetOptions; fpUnDecorateSymbolName m_UnDecorateSymbolName; bool LoadDbgHelpApi(); void OutputLineInfo(); CNoPDBSymbol(); ~CNoPDBSymbol(); bool Init(); void Release(); void CalculateLineLen(); bool ListGlobalSymbols(IN WCHAR* pExeFileName); bool ListGlobalSymbols(IN char* pExeFileName); bool CreateSDSymbolFile(char *FileName,DWORD TimeDateStamp,DWORD PECheckSum,WCHAR* pExeFileName); DWORD DumpSDPublicSymbolToFile(DWORD* PublicSymbolNumbers=NULL); DWORD DumpSDTypeName(char* Name); bool TranslateSymbolFile(IN PCSTR pExeFileName,OUT PSTR pSymbolFileName); bool TranslateSymbolFile(IN WCHAR* pExeFileName,OUT WCHAR *pSymbolFileName); bool IsSymbolFile(char* pFileName,OUT bool* Valid); bool IsSymbolFile(WCHAR* pFileName,OUT bool* Valid); bool GetPEFileTimeDateStamp(IN char* pPEFileName,OUT DWORD *TimeDateStamp,OUT DWORD *pPECheckSum); bool GetPEFileTimeDateStamp(IN WCHAR* pPEFileName,OUT DWORD *TimeDateStamp,OUT DWORD *pPECheckSum); bool GetPEFileFullName(WCHAR* pSymbolFileName,WCHAR* pPEFileFullName,DWORD* BufferLen=NULL); bool GetPEFileFullName(char* pSymbolFileName,WCHAR* pPEFileFullName,DWORD* BufferLen=NULL); DWORD DumpSDLineNumberToFile(DWORD* LineNumbers=NULL); void test(PSYMBOL_INFO pSymInfo,ULONG SymbolSize); bool LoadPESym(char* FileName); DWORD ReleaseResource(); void SetImportSymbols(bool bOnly); void SetExportSymbols(bool bOnly); bool WriteSDSymbolFileCheckSum(const char *FileName); }; BOOL CALLBACK SymEnumSymbolsCallBackProc(PSYMBOL_INFO pSymInfo,ULONG SymbolSize,PVOID UserContext); BOOL CALLBACK SymEnumLinesCallBackProc(PSRCCODEINFO LineInfo,PVOID UserContext); #endif //_NOPDBSYMBOL_H_ ================================================ FILE: Project/SyserApp/Source/OpenFileForm.cpp ================================================ #include "StdAfx.h" #include "OpenFileForm.h" #include "SyserApp.h" enum COpenFileForm::WISP_FORM_ID { CMD_ID_EDIT_TEXT = WISP_ID_USER_START, CMD_ID_COMMAND_LINE_TEXT, CMD_ID_STATIC_TEXT, CMD_ID_BROWSE, CMD_ID_TRANSLATE_SYMBOL, CMD_ID_DEPENDENT_SYMBOL, CMD_ID_AUTO_UNLOAD_SYMBOL, }; WISP_FORM_RES_ITEM COpenFileForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,400,260}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Launch module and break at entry point"), "\\SyserIcon\\Syser.ico" }, { WISP_CTRL_STATIC_DIB, {15,30,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Process.ico" }, { WISP_CTRL_STATIC_GROUP, {10,10,370,50}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Filename"), }, { WISP_CTRL_EDIT, {40,30,250,16}, CMD_ID_EDIT_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_STATIC_DIB, {15,90,16,16}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\SrcExplorer.ico" }, { WISP_CTRL_STATIC_GROUP, {10,70,370,50}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Command Line (Ignored by sys or dll)"), }, { WISP_CTRL_EDIT, {40,90,330,16}, CMD_ID_COMMAND_LINE_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {310,30,60,18}, CMD_ID_BROWSE, WISP_BS_NORMAL, WSTR("Browse"), }, { WISP_CTRL_STATIC_GROUP, {10,125,370,100}, WISP_ID_NULL, WISP_WS_NULL, NULL, }, { WISP_CTRL_CHECK_BOX, {20,145,270,20}, CMD_ID_TRANSLATE_SYMBOL, WISP_CBS_NORMAL|WISP_WS_MARKED, WSTR("Translate&Load it's SDS"), NULL, }, { WISP_CTRL_CHECK_BOX, {20,170,270,20}, CMD_ID_DEPENDENT_SYMBOL, WISP_CBS_NORMAL, WSTR("Translate&Load dependent module's SDS"), NULL, }, { WISP_CTRL_CHECK_BOX, {20,195,270,20}, CMD_ID_AUTO_UNLOAD_SYMBOL, WISP_CBS_NORMAL|WISP_WS_MARKED, WSTR("Unload SDS when module unload"), NULL, }, { WISP_CTRL_STATIC_DIB, {325,145,32,32}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:1" }, { WISP_CTRL_BUTTON, {310,190,60,18}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("Load"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(COpenFileForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_EVENT_MAP_BEGIN(COpenFileForm) WISP_MSG_EVENT_MAP(CMD_ID_BROWSE,OnEventBrowse) WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(COpenFileForm) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END bool COpenFileForm::OnFormCreate(IN WISP_MSG*pMsg) { m_pFilenameEdit = (CWispEdit*) GetFormItem(CMD_ID_EDIT_TEXT); m_pCmdlineEdit = (CWispEdit*) GetFormItem(CMD_ID_COMMAND_LINE_TEXT); m_pTransSymCheckBox = (CWispCheckBox*) GetFormItem(CMD_ID_TRANSLATE_SYMBOL); m_pLoadDepSymCheckBox = (CWispCheckBox*) GetFormItem(CMD_ID_DEPENDENT_SYMBOL); m_pAutoUnloadSymCheckBox = (CWispCheckBox*) GetFormItem(CMD_ID_AUTO_UNLOAD_SYMBOL); *m_CmdLine = 0; *m_Filename = 0; return true; } bool COpenFileForm::OnEventBrowse(IN WISP_MSG*pMsg) { char szFileName[MAX_FN_LEN]; WCHAR wszFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "Executable Files(exe;dll;scr;sys)\0*.exe;*.dll;*.scr;*.sys\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; AnsiToUnicode(szFileName,wszFileName,MAX_FN_LEN); m_pFilenameEdit->SetWindowText(wszFileName); UpdateClient(); return true; } bool COpenFileForm::OnOK(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { UnicodeToAnsi(m_pFilenameEdit->GetWindowText(),m_Filename,MAX_FN_LEN); if(*m_Filename==0) return false; if(m_pCmdlineEdit->GetWindowText().Length()) UnicodeToAnsi(m_pCmdlineEdit->GetWindowText(),m_CmdLine,sizeof(m_CmdLine)); else *m_CmdLine=0; m_bTransSym = (m_pTransSymCheckBox->m_Style&WISP_WS_MARKED)!=0; m_bLoadDepSym = (m_pLoadDepSymCheckBox->m_Style&WISP_WS_MARKED)!=0; m_bAutoUnloadSym = (m_pAutoUnloadSymCheckBox->m_Style&WISP_WS_MARKED)!=0; } return true; } ================================================ FILE: Project/SyserApp/Source/OpenFileForm.h ================================================ #ifndef _OPEN_FILE_FORM_H_ #define _OPEN_FILE_FORM_H_ class COpenFileForm : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventBrowse); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK); COpenFileForm(){m_pFormRes = m_FormRes;} CWispEdit*m_pFilenameEdit; CWispEdit*m_pCmdlineEdit; CWispCheckBox*m_pTransSymCheckBox; CWispCheckBox*m_pLoadDepSymCheckBox; CWispCheckBox*m_pAutoUnloadSymCheckBox; char m_Filename[MAX_FN_LEN]; char m_CmdLine[512]; bool m_bTransSym; bool m_bLoadDepSym; bool m_bAutoUnloadSym; }; #endif ================================================ FILE: Project/SyserApp/Source/OptionPage.cpp ================================================ #include "StdAfx.h" #include "OptionPage.h" extern int SyserAppOptionRef; extern int SyserOptionRef; //Form Resource ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// //Option List WISP_PCSTR NoYesList[]= { WISP_STR("No"), WISP_STR("Yes"), NULL }; WISP_PCSTR DisableEnableList[]= { WISP_STR("Disable"), WISP_STR("Enable"), NULL }; WISP_PCSTR StartPageList[]= { WISP_STR("Console"), WISP_STR("Process Moniter"), WISP_STR("Symbol Download"), WISP_STR("Option"), NULL }; WISP_PCSTR SyserDebuggerStartPageList[]= { WISP_STR("System Explorer"), WISP_STR("Console"), WISP_STR("Source Explorer"), NULL }; WISP_PCSTR AutoActionList[]= { WISP_STR("No"), WISP_STR("Yes"), WISP_STR("Query User"), NULL }; WISP_PCSTR ConnectList[]= { WISP_STR("Disable"), WISP_STR("Serial Port"), NULL }; WISP_PCSTR DirSelectList[]= { WISP_STR("Browse"), WISP_STR("Edit"), WISP_STR("Current Path & Edit"), NULL }; WISP_OPTION_ITEM WindowOption[]= { {WSTR("Start Page"),OPTION_SELECT_INT,&SyserAppOption.iStartPage,sizeof(int),StartPageList,NULL,&SyserAppOptionRef}, {WSTR("Syser Debugger Start Page"),OPTION_SELECT_INT,&SyserOption.iStartPage,sizeof(int),SyserDebuggerStartPageList,NULL,&SyserOptionRef}, {WSTR("Stays in system tray"),OPTION_SELECT_INT,&SyserAppOption.iSystemTray,sizeof(int),NoYesList,NULL,&SyserAppOptionRef}, {WSTR("Top Most"),OPTION_SELECT_INT,&SyserAppOption.iTopMost,sizeof(int),NoYesList,NULL,&SyserAppOptionRef}, {WSTR("Show Syser start splash"),OPTION_SELECT_INT,&SyserAppOption.iShowStartSplash,sizeof(int),NoYesList,NULL,&SyserAppOptionRef}, {NULL} }; WISP_OPTION_ITEM DebuggerOption[]= { {WSTR("Start Syser Debugger when SyserApp launch"),OPTION_SELECT_INT,&SyserAppOption.iAutoStart,sizeof(int),AutoActionList,NULL,&SyserAppOptionRef}, {WSTR("Stop Syser Debugger when SyserApp exit"),OPTION_SELECT_INT,&SyserAppOption.iAutoStop ,sizeof(int),AutoActionList,NULL,&SyserAppOptionRef}, {WSTR("Show Full Symbol (Include Module Name)"),OPTION_SELECT_INT,&SyserOption.iShowFullSym,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Show DbgMsg Source Process Name"),OPTION_SELECT_INT,&SyserOption.iShowDbgMsgProcName,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Mouse Sensitivity (1 - 30)"),OPTION_INT,&SyserOption.iMouseSensitivity,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SymbolDownloadOption[]= { {WSTR("Symbol Server Site"),OPTION_STRING,&SyserAppOption.szSymbolSite,128,NULL,NULL,&SyserAppOptionRef}, {WSTR("Local Symbol Path"),OPTION_DIR_NAME,&SyserAppOption.szDownloadSymbolPath,MAX_FN_LEN,DirSelectList,NULL,&SyserAppOptionRef}, {WSTR("Converted SDS Path"),OPTION_DIR_NAME,&SyserAppOption.szConvertedSDSPath,MAX_FN_LEN,DirSelectList,NULL,&SyserAppOptionRef}, {NULL} }; WISP_OPTION_ITEM SourceDebuggerOption[]= { {WSTR("Syntax Color"),OPTION_SELECT_INT,&SyserOption.iSourceCodeSyntaxColors,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Show Tips"),OPTION_SELECT_INT,&SyserOption.iSourceCodeShowTips ,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Show Line Numbers"),OPTION_SELECT_INT,&SyserOption.iSourceCodeShowLineNumbers ,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SerialPortOption[]= { {WSTR("COM Port"),OPTION_INT,&SyserOption.iComPort,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM RemoteDebuggerOption[]= { {WSTR("Connect Type"),OPTION_SELECT_INT,&SyserOption.iConnectType,sizeof(int),ConnectList,NULL,&SyserOptionRef}, {WSTR("Serial Port Configure"),OPTION_TITLE,SerialPortOption}, {NULL} }; WISP_OPTION_ITEM SyserAdvanceOption[]= { {WSTR("Heap Size [10240 - 40960 (KB) ]"),OPTION_INT,&SyserOption.iHeapSize,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Addition Heap Size [1024 - 40960 (KB)]"),OPTION_INT,&SyserOption.iAddiHeapSize,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Enable Hardware Timer"),OPTION_SELECT_INT,&SyserOption.iHardTimerEnable,sizeof(int),DisableEnableList,NULL,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM MainOption[]= { {WSTR("Window"),OPTION_TITLE,WindowOption}, {WSTR("Debugger"),OPTION_TITLE,DebuggerOption}, {WSTR("Symbol Download"),OPTION_TITLE,SymbolDownloadOption}, {WSTR("Source Code Debugger"),OPTION_TITLE,SourceDebuggerOption}, {WSTR("Developer Advance Option"),OPTION_TITLE,SyserAdvanceOption}, //{WSTR("Remote Debugger"),OPTION_TITLE,RemoteDebuggerOption}, {NULL} }; COptionPage::COptionPage() { m_pOptionItem = MainOption; } void COptionPage::OptionApplyNotify() { if(SyserAppOptionRef) { SyserAppOptionRef = 0; SaveSyserOption("SyserApp.cfg",&SyserAppOption,sizeof(SyserAppOption)); } if(SyserOptionRef) { SyserOptionRef = 0; SaveSyserOption("Syser.cfg",&SyserOption,sizeof(SyserOption)); } } ================================================ FILE: Project/SyserApp/Source/OptionPage.h ================================================ #ifndef _OPTION_PAGE_H_ #define _OPTION_PAGE_H_ class COptionPage : public CWispOptionForm { public: COptionPage(); void OptionApplyNotify(); }; #endif ================================================ FILE: Project/SyserApp/Source/Process.cpp ================================================ #include "StdAfx.h" #include "Process.h" CProcess::CProcess() { m_ProcessID=0; m_ProcessHandle=NULL; } CProcess::~CProcess() { } bool CProcess::GetPrivilege(PCSTR privName) { bool rc; HANDLE hToken; LUID privValue; TOKEN_PRIVILEGES tkp; if(!OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ) return false; if(!LookupPrivilegeValue( NULL, privName, &privValue ) ) { CloseHandle(hToken); return false; } tkp.PrivilegeCount = 1; tkp.Privileges[0].Luid = privValue; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; rc = AdjustTokenPrivileges( hToken, FALSE, &tkp,sizeof tkp,NULL,NULL)!=FALSE; CloseHandle( hToken ); return rc; } //ȡ̵û bool CProcess::GetProcessUser(HANDLE hProcess, WCHAR*szUserName,int MaxLen) { SID_NAME_USE sn; WCHAR szDomainName[MAX_FN_LEN]; DWORD Length,NameLen; bool Result; HANDLE hToken; TOKEN_USER*pTokenUser; *szUserName=0; if(OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)==FALSE) { return false; } Length=0; GetTokenInformation(hToken,TokenUser, NULL, 0, &Length); if(Length==0) { CloseHandle(hToken); return false; } pTokenUser = (TOKEN_USER*)new BYTE[Length]; if(GetTokenInformation(hToken,TokenUser,pTokenUser,Length,&Length)==false) { delete pTokenUser; CloseHandle(hToken); return false; } Length = MAX_FN_LEN; NameLen = MaxLen; Result = LookupAccountSidW(NULL,pTokenUser->User.Sid,szUserName,&NameLen,szDomainName,&Length,&sn)!=FALSE; delete pTokenUser; CloseHandle(hToken); return Result; } bool CProcess::Start(IN PCSTR ProcessName,PCSTR szCmdLine,IN bool bSuspend,PCSTR szDir) { char szAppCmdLine[1024]; bool Result; DWORD dwCreationFlags; STARTUPINFO StartInfo; PROCESS_INFORMATION ProcInfo; // ZeroMemory(&StartInfo,sizeof(STARTUPINFO)); ZeroMemory(&ProcInfo,sizeof(PROCESS_INFORMATION)); StartInfo.cb = sizeof(STARTUPINFO); StartInfo.dwFlags = STARTF_USESHOWWINDOW; StartInfo.wShowWindow = SW_SHOWDEFAULT; strcpy(m_ProcessName,ProcessName); dwCreationFlags = NORMAL_PRIORITY_CLASS; if(bSuspend) dwCreationFlags|=CREATE_SUSPENDED; *szAppCmdLine=0; if(szCmdLine && *szCmdLine) { TStrCpy(szAppCmdLine," "); TStrCat(szAppCmdLine,szCmdLine); } Result=CreateProcess(ProcessName,szAppCmdLine,NULL,NULL,FALSE, dwCreationFlags,NULL,szDir,&StartInfo,&ProcInfo)!=FALSE; if(Result==false) return false; m_ProcessID=ProcInfo.dwProcessId; m_ProcessHandle=ProcInfo.hProcess; return Result; } bool CProcess::Terminate() { return TerminateProcess(m_ProcessHandle,0x0)!=FALSE; } bool CProcess::SuspendAllThread(IN bool bSuspend) { HANDLE hThread,hThreadSnap; DWORD Result,nThread; THREADENTRY32 TE32; hThreadSnap=CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD,0); if(hThreadSnap==INVALID_HANDLE_VALUE) return FALSE; TE32.dwSize=sizeof(THREADENTRY32); nThread=0; if(Thread32First(hThreadSnap,&TE32)) { do { if(m_ProcessID!=TE32.th32OwnerProcessID) continue; nThread++; hThread=OpenThread(THREAD_ALL_ACCESS,TRUE,TE32.th32ThreadID); if(hThread==NULL) return FALSE; if(bSuspend) Result=SuspendThread(hThread); else Result=ResumeThread(hThread); if(Result==-1) { CloseHandle(hThread); return FALSE; } CloseHandle(hThread); }while(Thread32Next(hThreadSnap,&TE32)); } return TRUE; } bool CProcess::ReadMemory(ULPOS Address,void*Buffer,int Size) { SIZE_T cbReturn; cbReturn = 0; ReadProcessMemory(m_ProcessHandle,NUM_TO_PTR(Address),Buffer,Size,&cbReturn); return cbReturn==Size; } bool CProcess::WriteMemory(ULPOS Address,void*Buffer,int Size) { SIZE_T cbReturn; cbReturn = 0; WriteProcessMemory(m_ProcessHandle,NUM_TO_PTR(Address),Buffer,Size,&cbReturn); return cbReturn==Size; } ================================================ FILE: Project/SyserApp/Source/Process.h ================================================ #ifndef _PROCESS_H_ #define _PROCESS_H_ #include "Tlhelp32.h" class CProcess { public: CProcess(); ~CProcess(); public: static bool GetProcessUser(HANDLE hProcess, WCHAR*szUserName,int MaxLen); static bool GetPrivilege(PCSTR privName); bool Start(IN PCSTR ProcessName,PCSTR szCmdLine,IN bool bSuspend = true,PCSTR szDir = NULL); //½ bool Terminate(); //ǰ bool SuspendAllThread(IN bool bSuspend = true); //TRUE :߳ FALSE:ָ߳ bool ReadMemory(ULPOS Address,void*Buffer,int Size); bool WriteMemory(ULPOS Address,void*Buffer,int Size); public: CHAR m_ProcessName[MAX_PATH]; //ǰ DWORD m_ProcessID; //ǰID HANDLE m_ProcessHandle; //ǰ̾ }; #endif ================================================ FILE: Project/SyserApp/Source/ProcessList.cpp ================================================ #include "StdAfx.h" #include "SyserApp.h" #include "ProcessList.h" #include "Process.h" WISP_MSG_MAP_BEGIN(CProcessList) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispList) WISP_MSG_EVENT_MAP_BEGIN(CProcessList) WISP_MSG_EVENT_MAP(EVENT_ID_TERMINATE,OnMenuTerminate) WISP_MSG_EVENT_MAP(EVENT_ID_REAL_TIME,OnMenuRealTime) WISP_MSG_EVENT_MAP(EVENT_ID_HIGH,OnMenuHigh) WISP_MSG_EVENT_MAP(EVENT_ID_ABOVE_NORMAL,OnMenuAboveNormal) WISP_MSG_EVENT_MAP(EVENT_ID_NORMAL,OnMenuNormal) WISP_MSG_EVENT_MAP(EVENT_ID_BELOW_NORMAL,OnMenuBelowNormal) WISP_MSG_EVENT_MAP(EVENT_ID_IDLE,OnMenuIdle) WISP_MSG_EVENT_MAP(EVENT_ID_EMPTY_WORKING_SET,OnMenuEmptyWorkingSet) WISP_MSG_EVENT_MAP(EVENT_ID_DETAIL,OnMenuDetail) WISP_MSG_EVENT_MAP_END CProcessList::CProcessList() { } CProcessList::~CProcessList() { } void CProcessList::ItemDBClickNotify(HANDLE hItem,int Col) { WCHAR szPath[MAX_FN_LEN]; if(GetItemCount(hItem)==0) { GetItemText(hItem,1).GetFilePath(szPath); if(ShellExecuteW(NULL,WSTR("explore"),szPath,NULL,NULL,SW_NORMAL)) ShowWindow(theApp.m_hLocalWnd,SW_MINIMIZE); } } bool CProcessList::ItemExpandingNotify(HANDLE hItem) { HANDLE hModuleSnap,hModItem; MODULEENTRY32W me32; if(hItem == m_hSystemItem) return true; ClearChildItem(hItem); hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,(DWORD)GetItemData(hItem)); if(hModuleSnap == INVALID_HANDLE_VALUE) return false; me32.dwSize = sizeof(MODULEENTRY32W); if(Module32FirstW(hModuleSnap,&me32)) { do { hModItem = InsertItem(TGetFileName(me32.szModule),hItem); SetItemText(hModItem,1,me32.szExePath); SetItemNum(hModItem,2,PTR_TO_NUM(me32.modBaseAddr),WSTR("0x%X")); SetItemNum(hModItem,3,me32.modBaseSize,WSTR("0x%X")); } while(Module32NextW(hModuleSnap,&me32)); } CloseHandle(hModuleSnap); return true; } HANDLE CProcessList::GetCurrentSelectProcess(IN DWORD dwDesiredAccess) { HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL || hItem == m_hSystemItem) return NULL; HANDLE hProcess = OpenProcess(dwDesiredAccess,FALSE,(DWORD)GetItemData(hItem)); if(hProcess==NULL) { m_pWispBase->MsgBox(WSTR("Fail to open process !"),WSTR("Error"),WISP_MB_OK); return NULL; } return hProcess; } bool CProcessList::UpdatePriorityClassItem() { HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL || hItem == m_hSystemItem) return false; int Level = GetItemLevel(hItem); if(IsParentOfItem(m_hSystemItem,hItem)) { if(Level>1) return false; } else if(Level>0) { return false; } m_PopupMenu.UncheckItem(m_hRealTimeMenu); m_PopupMenu.UncheckItem(m_hHighMenu); m_PopupMenu.UncheckItem(m_hAboveNormalMenu); m_PopupMenu.UncheckItem(m_hNormalMenu); m_PopupMenu.UncheckItem(m_hBelowNormalMenu); m_PopupMenu.UncheckItem(m_hIdleMenu); HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,(DWORD)GetItemData(hItem)); if(hProcess==NULL) return true; DWORD Class = GetPriorityClass(hProcess); switch(Class) { case REALTIME_PRIORITY_CLASS: m_PopupMenu.CheckItem(m_hRealTimeMenu); break; case HIGH_PRIORITY_CLASS: m_PopupMenu.CheckItem(m_hHighMenu); break; case ABOVE_NORMAL_PRIORITY_CLASS: m_PopupMenu.CheckItem(m_hAboveNormalMenu); break; case NORMAL_PRIORITY_CLASS: m_PopupMenu.CheckItem(m_hNormalMenu); break; case BELOW_NORMAL_PRIORITY_CLASS: m_PopupMenu.CheckItem(m_hBelowNormalMenu); break; case IDLE_PRIORITY_CLASS: m_PopupMenu.CheckItem(m_hIdleMenu); break; } CloseHandle(hProcess); return true; } void CProcessList::SetPriorityClass(DWORD Class) { HANDLE hProcess = GetCurrentSelectProcess(PROCESS_SET_INFORMATION); if(hProcess==NULL) return; if(::SetPriorityClass(hProcess,Class)==false) m_pWispBase->MsgBox(WSTR("Fail to set process priority class !"),WSTR("Error"),WISP_MB_OK); CloseHandle(hProcess); } bool CProcessList::OnMenuTerminate(IN WISP_MSG*pMsg) { HANDLE hProcess = GetCurrentSelectProcess(PROCESS_TERMINATE); if(hProcess==NULL) return true; if(TerminateProcess(hProcess,0)==false) { m_pWispBase->MsgBox(WSTR("Fail to terminate process !"),WSTR("Error"),WISP_MB_OK); } else { HANDLE hItem = GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) { RemoveItem(hItem); Update(); } } CloseHandle(hProcess); return true; } bool CProcessList::OnMenuRealTime(IN WISP_MSG*pMsg) { SetPriorityClass(REALTIME_PRIORITY_CLASS); return true; } bool CProcessList::OnMenuHigh(IN WISP_MSG*pMsg) { SetPriorityClass(HIGH_PRIORITY_CLASS); return true; } bool CProcessList::OnMenuAboveNormal(IN WISP_MSG*pMsg) { SetPriorityClass(ABOVE_NORMAL_PRIORITY_CLASS); return true; } bool CProcessList::OnMenuNormal(IN WISP_MSG*pMsg) { SetPriorityClass(NORMAL_PRIORITY_CLASS); return true; } bool CProcessList::OnMenuBelowNormal(IN WISP_MSG*pMsg) { SetPriorityClass(BELOW_NORMAL_PRIORITY_CLASS); return true; } bool CProcessList::OnMenuIdle(IN WISP_MSG*pMsg) { SetPriorityClass(IDLE_PRIORITY_CLASS); return true; } bool CProcessList::OnMenuEmptyWorkingSet(IN WISP_MSG*pMsg) { HANDLE hProcess = GetCurrentSelectProcess(PROCESS_ALL_ACCESS); if(hProcess==NULL) return true; if(EmptyWorkingSet(hProcess)==false) m_pWispBase->MsgBox(WSTR("Fail to Release Process Working Pages !"),WSTR("Error"),WISP_MB_OK); CloseHandle(hProcess); return true; } bool CProcessList::OnMenuDetail(IN WISP_MSG*pMsg) { return true; } bool CProcessList::OnCreate(IN WISP_MSG*pMsg) { m_PopupMenu.CreatePopupMenu(ProcessPopupMenu,this,WispTKDIBList("\\Toolbar.bmp",16,16)); m_hRealTimeMenu = m_PopupMenu.GetItem(EVENT_ID_REAL_TIME); m_hHighMenu = m_PopupMenu.GetItem(EVENT_ID_HIGH); m_hAboveNormalMenu = m_PopupMenu.GetItem(EVENT_ID_ABOVE_NORMAL); m_hNormalMenu = m_PopupMenu.GetItem(EVENT_ID_NORMAL); m_hBelowNormalMenu = m_PopupMenu.GetItem(EVENT_ID_BELOW_NORMAL); m_hIdleMenu = m_PopupMenu.GetItem(EVENT_ID_IDLE); InsertColumn(WISP_STR("Name"),150); InsertColumn(WISP_STR("User Name"),80); InsertColumn(WISP_STR("ID"),60); InsertColumn(WISP_STR("Memory Used"),85); m_hSystemItem = InsertItem(WSTR("System Process List")); SetItemText(m_hSystemItem,1,WSTR("SYSTEM")); SetItemTextColor(m_hSystemItem,0,SYS_COLOR[SC_LIGHT_BLUE]); SetItemTextColor(m_hSystemItem,1,SYS_COLOR[SC_LIGHT_BLUE]); SetItemTextColor(m_hSystemItem,3,SYS_COLOR[SC_LIGHT_BLUE]); ListOSProcess(); return true; } bool CProcessList::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CProcessList::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.bKeyDown == false && (pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON || pMsg->KeyEvent.KeyType == WISP_VK_APPS)) { if(UpdatePriorityClassItem()) m_PopupMenu.Popup(NULL,pMsg->KeyEvent.KeyType == WISP_VK_APPS); } return true; } bool CProcessList::ListOSProcess() { SIZE_T SystemTotalSize; WCHAR szBuffer[MAX_FN_LEN]; HANDLE hProcess; HANDLE hSystemItem,hUserItem,hParentItem,hItem; PROCESS_MEMORY_COUNTERS mc; PROCESSENTRY32W pe32; LockUpdate(); HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap == INVALID_HANDLE_VALUE) return false; int UserCount,SystemCount; UserCount=SystemCount=0; hSystemItem = GetItem(0,m_hSystemItem); hUserItem = GetNextItem(m_hSystemItem); SystemTotalSize = 0; pe32.dwSize = sizeof(PROCESSENTRY32W); if(Process32FirstW(hProcessSnap,&pe32)) { do { hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,pe32.th32ProcessID); CProcess::GetProcessUser(hProcess,szBuffer,MAX_FN_LEN); if(*szBuffer==0) TStrCpy(szBuffer,WSTR("SYSTEM")); if(TStrCmp(szBuffer,WSTR("SYSTEM"))) { hParentItem = NULL; hItem = hUserItem; UserCount++; } else { hParentItem = m_hSystemItem; hItem = hSystemItem; SystemCount++; } if(hItem) SetItemText(hItem,0,TGetFileName(pe32.szExeFile)); else { hItem = InsertItem(TGetFileName(pe32.szExeFile),hParentItem); InsertItem(WSTR("..."),hItem); } STZeroMemory(mc); GetProcessMemoryInfo(hProcess,&mc,sizeof(mc)); SetItemData(hItem,0,pe32.th32ProcessID); SetItemText(hItem,1,szBuffer); SetItemNum(hItem,2,pe32.th32ProcessID,WSTR("0x%X")); SetItemNum(hItem,3,(UINT)((mc.WorkingSetSize+0x3FF)/0x400),WSTR("%10d K")); if(hParentItem) { hSystemItem = GetNextItem(hItem); SystemTotalSize+=mc.WorkingSetSize; if(GetItemCell(hItem)->FontColor!=SYS_COLOR[SC_LIGHT_BLUE]) { for(int n=0;nLeaveCriticalSection(); UnlockUpdate(); Update(); if(theApp.m_bMsgSleeping) theApp.WakeUpMsgThread(); return true; } ================================================ FILE: Project/SyserApp/Source/ProcessList.h ================================================ #ifndef _PROCESS_LIST_H_ #define _PROCESS_LIST_H_ class CProcessList : public CWispList { public: CProcessList(); ~CProcessList(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG(OnMenuTerminate) DECLARE_WISP_MSG(OnMenuRealTime) DECLARE_WISP_MSG(OnMenuHigh) DECLARE_WISP_MSG(OnMenuAboveNormal) DECLARE_WISP_MSG(OnMenuNormal) DECLARE_WISP_MSG(OnMenuBelowNormal) DECLARE_WISP_MSG(OnMenuIdle) DECLARE_WISP_MSG(OnMenuEmptyWorkingSet) DECLARE_WISP_MSG(OnMenuDetail) public: bool ItemExpandingNotify(HANDLE hItem); void ItemDBClickNotify(HANDLE hItem,int Col); HANDLE GetCurrentSelectProcess(IN DWORD dwDesiredAccess); void SetPriorityClass(DWORD Class); bool UpdatePriorityClassItem(); HANDLE m_hRealTimeMenu; HANDLE m_hHighMenu; HANDLE m_hAboveNormalMenu; HANDLE m_hNormalMenu; HANDLE m_hBelowNormalMenu; HANDLE m_hIdleMenu; HANDLE m_hSystemItem; CWispMenu m_PopupMenu; bool ListOSProcess(); }; #endif ================================================ FILE: Project/SyserApp/Source/RegisterForm.cpp ================================================ #include "StdAfx.h" #include "RegisterForm.h" enum CRegisterForm::WISP_FORM_ID { CMD_ID_EDIT_NAME = WISP_ID_USER_START, CMD_ID_EDIT_SN, CMD_ID_STATIC_TEXT }; WISP_FORM_RES_ITEM CRegisterForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,260,180}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Please Input Register Informattion") }, { WISP_CTRL_STATIC_GROUP, {10,10,230,50}, CMD_ID_STATIC_TEXT, WISP_WS_NULL, WSTR("User/Company Name"), }, { WISP_CTRL_EDIT, {20,30,200,16}, CMD_ID_EDIT_NAME, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_STATIC_GROUP, {10,70,230,50}, CMD_ID_STATIC_TEXT, WISP_WS_NULL, WSTR("SN"), }, { WISP_CTRL_EDIT, {20,90,200,16}, CMD_ID_EDIT_SN, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {110,130,40,16}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CRegisterForm) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CRegisterForm) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END CRegisterForm::CRegisterForm() { m_pFormRes = m_FormRes; } CRegisterForm::~CRegisterForm() { } bool CRegisterForm::OnOK(IN WISP_MSG*pMsg) { char szBuffer[256]; if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { m_StrName = GetFormItem(CMD_ID_EDIT_NAME)->GetWindowText(); m_StrSN = GetFormItem(CMD_ID_EDIT_SN)->GetWindowText(); m_StrSN.MakeUpper(); TStrCpyLimit(szBuffer,(PCWSTR)m_StrSN,sizeof(szBuffer)); if(IsSerialNumber(szBuffer)==false) { MsgBox(WSTR("Invalid SN !\nPlease input again"),WSTR("Error")); return false; } } return true; } ================================================ FILE: Project/SyserApp/Source/RegisterForm.h ================================================ #ifndef _REGISTER_FORM_H_ #define _REGISTER_FORM_H_ class CRegisterForm : public CWispForm { public: CRegisterForm(); ~CRegisterForm(); CWispString m_StrName; CWispString m_StrSN; enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK) }; #endif ================================================ FILE: Project/SyserApp/Source/Resource.cpp ================================================ #include "StdAfx.h" #include "Resource.h" WISP_TOOLBAR_RES_ITEM MainToolbar[]= { {EVENT_ID_LOAD_MODULE,66,WISP_TBIS_BUTTON,WSTR("File -> Load module for debugging"),0,WISP_WS_DISABLED}, {EVENT_ID_LOAD_EXPORT_SYMBOLS,22,WISP_TBIS_BUTTON,WSTR("File -> Load Module Export Symbols"),0,WISP_WS_DISABLED}, {EVENT_ID_LOAD_SYMBOL_SYSERAPP,10,WISP_TBIS_BUTTON,WSTR("File -> Load symbol file"),0,WISP_WS_DISABLED}, {EVENT_ID_TRANSLATE_SYMBOL,50,WISP_TBIS_BUTTON,WSTR("File -> Translate symbol file"),0}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_START_SYSER, 62, WISP_TBIS_BUTTON,WSTR("File -> Start Syser"), 0}, {EVENT_ID_STOP_SYSER, 31, WISP_TBIS_BUTTON,WSTR("File -> Stop Syser"), 0,WISP_WS_DISABLED}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_SEND_CLIPBOARD,20,WISP_TBIS_BUTTON,WSTR("View -> Send Clipboard to Syser Debugger")}, {EVENT_ID_RECV_CLIPBOARD,21,WISP_TBIS_BUTTON,WSTR("View -> Receive Clipboard from Syser Debugger")}, WISP_TOOLBAR_RES_SEPARATOR, {EVENT_ID_DEBUG_MESSAGE_FILTER,57,WISP_TBIS_BUTTON,WSTR("View -> Debug Message Filter"),0}, {EVENT_ID_DEBUG_MESSAGE_CLEAR,9,WISP_TBIS_BUTTON,WSTR("View -> Clear Console&Debug Message"),0}, WISP_TOOLBAR_RES_END }; WISP_MENU_RES_ITEM RecentFileMenu[]= { {WSTR("Empty"),EVENT_ID_RECENT_FILE_SYSERAPP,132}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM LoaderMenu[]= { {WSTR("Load For Debugging"), EVENT_ID_LOAD_MODULE,66,WISP_MIS_DISABLED}, {WSTR("Recent Files"),0,36,WISP_MIS_POPUP,RecentFileMenu}, WISP_MENU_RES_SEPARATOR, {WSTR("Load Export Symbols"), EVENT_ID_LOAD_EXPORT_SYMBOLS,22,WISP_MIS_DISABLED}, {WSTR("Load Module's SDS"), EVENT_ID_LOAD_SYMBOL_SYSERAPP,10,WISP_MIS_DISABLED}, {WSTR("Load IDA map file"), EVENT_ID_LOAD_IDA_MAP,10}, {WSTR("Translate Debugging Data To SDS"), EVENT_ID_TRANSLATE_SYMBOL,50}, WISP_MENU_RES_SEPARATOR, {WSTR("Export Command Histroy"), EVENT_ID_SAVE_HISTROYS,63}, WISP_MENU_RES_SEPARATOR, {WSTR("Exit"),EVENT_ID_EXIT,132}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM KernelDebuggerMenu[]= { {WSTR("Start Syser"), EVENT_ID_START_SYSER,62}, {WSTR("Stop Syser"), EVENT_ID_STOP_SYSER,31,WISP_MIS_DISABLED}, WISP_MENU_RES_SEPARATOR, {WSTR("Send Clipboard to Syser"), EVENT_ID_SEND_CLIPBOARD,20}, {WSTR("Receive Clipboard from Syser"), EVENT_ID_RECV_CLIPBOARD,21}, WISP_MENU_RES_SEPARATOR, {WSTR("Save Syser Comments"), EVENT_ID_SAVE_COMMENTS,9*16+3,WISP_MIS_DISABLED}, {WSTR("Export Command Histroy"), EVENT_ID_SAVE_SYSER_HISTROYS,63,WISP_MIS_DISABLED}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM ViewMenu[]= { {WSTR("Pause|Resume Debug Message"),EVENT_ID_DEBUG_MESSAGE,0,WISP_MIS_CHECKBOX|WISP_MIS_CHECKED}, {WSTR("Debug Message Filter"),EVENT_ID_DEBUG_MESSAGE_FILTER,57}, {WSTR("Clear Console&Debug Message"),EVENT_ID_DEBUG_MESSAGE_CLEAR,9}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM HelpMenu[]= { {WSTR("Check New Version"), EVENT_ID_CHECKNEWVERSION, 104}, #ifndef __DEMO__VERSION__ {WSTR("Enter Register Key"),EVENT_ID_REGISTER, 81}, #endif {WSTR("Command Reference"), EVENT_ID_COMMAND_REFERENCE, 30}, {WSTR("Debug Help"), EVENT_ID_DEBUG_HELP, 30}, {WSTR("About Syser"), EVENT_ID_ABOUT_SYSERAPP, 62}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM ToolsMenu[]= { {WSTR("Option"),EVENT_ID_OPTION,83}, {WSTR("Boot Option"),EVENT_ID_BOOT_OPTION,16*14+4}, {WSTR("Video Option"),EVENT_ID_VIDEO_DETECT_MODE,19}, WISP_MENU_RES_SEPARATOR, {WSTR("Symbol Downloader"),EVENT_ID_SYMBIL_DOWNLOADER,84}, {WSTR("Quick Driver Loader"),EVENT_ID_DRV_LOADER,16*15}, //{WSTR("PE Unselfpacker"),EVENT_ID_VEUNPACK,86}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM MainMenu[]= { {WSTR("Loader"),0,99,WISP_MIS_POPUP,LoaderMenu}, {WSTR("Debugger"),0,62,WISP_MIS_POPUP,KernelDebuggerMenu}, {WSTR("View"),0,19,WISP_MIS_POPUP,ViewMenu}, {WSTR("Tools"),0,118,WISP_MIS_POPUP,ToolsMenu}, {WSTR("Help"),0,30,WISP_MIS_POPUP,HelpMenu}, {WSTR("BuyNow"),EVENT_ID_BUYNOW,74}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM ProcessPriorityMenu[]= { {WSTR("Real time"), EVENT_ID_REAL_TIME, -1,WISP_MIS_CHECKBOX}, {WSTR("High"), EVENT_ID_HIGH, -1,WISP_MIS_CHECKBOX}, {WSTR("Above normal"), EVENT_ID_ABOVE_NORMAL, -1,WISP_MIS_CHECKBOX}, {WSTR("Normal"), EVENT_ID_NORMAL, -1,WISP_MIS_CHECKBOX}, {WSTR("Below normal"), EVENT_ID_BELOW_NORMAL, -1,WISP_MIS_CHECKBOX}, {WSTR("Idle"), EVENT_ID_IDLE, -1,WISP_MIS_CHECKBOX}, WISP_MENU_RES_END }; WISP_MENU_RES_ITEM ProcessPopupMenu[]= { {WSTR("Terminate"),EVENT_ID_TERMINATE,23}, {WSTR("Set Priority Class"),EVENT_ID_SET_PRIORITY_CLASS,54,WISP_MIS_POPUP,ProcessPriorityMenu}, {WSTR("Release Loose Memory Pages"),EVENT_ID_EMPTY_WORKING_SET,86}, {WSTR("Detail"),EVENT_ID_DETAIL,89}, WISP_MENU_RES_END }; ================================================ FILE: Project/SyserApp/Source/Resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SyserApp.rc // #define IDR_RT_MANIFEST 1 #define IDI_ICON_SYSERAPP 101 #define IDR_MENU_NOTIFY_ICON 102 #define IDI_ICON_SYSER_OFF 103 #define ID_MENU_EXIT 40002 #define ID_MENU_SHOW 40004 #define ID_MENU_ENABLE_SYSER 40006 #define ID_MENU_DISABLE_SYSER 40007 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 112 #define _APS_NEXT_COMMAND_VALUE 40009 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SyserApp/Source/SNCheck.cpp ================================================ #include "StdAfx.h" #include "SNCheck.h" #include "SyserApp.h" #define SYSER_CHECK_PORT 80 void SNCheckThread() { char szBuffer[128],LicName[128]; int BufSize,Length; BOOL bBroadCast; SOCKET Socket; SOCKADDR_IN RecvAddr,SendAddr; WSADATA wsaData; *LicName = 0; if(GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\LicName",LicName,sizeof(LicName))==false) return; if(WSAStartup(MAKEWORD(1,1),&wsaData)!=0) return; Socket=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); bBroadCast = true; setsockopt(Socket,SOL_SOCKET,SO_BROADCAST,(char*)&bBroadCast,sizeof(bBroadCast)); RecvAddr.sin_family=AF_INET; RecvAddr.sin_port=htons(SYSER_CHECK_PORT); RecvAddr.sin_addr.S_un.S_addr=htonl(INADDR_BROADCAST); BufSize=TSPrintf(szBuffer,"Syser:%s",LicName)+1; sendto(Socket,szBuffer,BufSize,MSG_DONTROUTE,(const sockaddr *)&RecvAddr,sizeof(RecvAddr)); closesocket(Socket); Socket = socket(AF_INET, SOCK_DGRAM, 0); memset(&SendAddr, 0, sizeof(SendAddr)); SendAddr.sin_family = AF_INET; SendAddr.sin_port = htons(SYSER_CHECK_PORT); SendAddr.sin_addr.s_addr = htonl(INADDR_ANY); if(bind(Socket,(const sockaddr *)&SendAddr, sizeof(SendAddr)) == SOCKET_ERROR) { closesocket(Socket); return; } Length = sizeof(RecvAddr); while(TRUE) { BufSize = recvfrom(Socket, szBuffer, sizeof(szBuffer)-1,0,(sockaddr *)&RecvAddr,&Length); if(BufSize>6 && TStrNICmp(szBuffer,"Syser:",6)==0) { if(TStrICmp(&szBuffer[6],LicName)==0) { sprintf(szBuffer,"Found another copmputer use same license user name !\nUser Name [%s] IP %d.%d.%d.%d\nSyser will be terminated !", LicName, RecvAddr.sin_addr.S_un.S_un_b.s_b1, RecvAddr.sin_addr.S_un.S_un_b.s_b2, RecvAddr.sin_addr.S_un.S_un_b.s_b3, RecvAddr.sin_addr.S_un.S_un_b.s_b4); MessageBox(NULL,szBuffer,"Warning",MB_OK); theApp.m_SyserInterface.StopSyserDriver(); ::PostMessage(theApp.m_hLocalWnd,WM_QUIT,0,0); break; } } } closesocket(Socket); WSACleanup(); } ================================================ FILE: Project/SyserApp/Source/SNCheck.h ================================================ #ifndef _SN_CHECK_H_ #define _SN_CHECK_H_ void SNCheckThread(); #endif ================================================ FILE: Project/SyserApp/Source/SourceDebug.cpp ================================================ #include "StdAfx.h" #include "SourceDebug.h" #define NTOSKRNLVER "" CSourceDebug::CSourceDebug() { m_CurrentSourceFileIndex=0; m_CurrentCompilandIndex=0; m_CurrentDataSymbolIndex=0x1; m_CurrentFunctionSymbolIndex=0x1; m_CurrentSymbolIndex=0x1; m_DataTagVector.push_back(NULL); m_DiaDllGetClassObject=NULL; m_DiaDllModule=NULL; m_PEFileName=NULL; m_PDBFileName=NULL; m_StringNameID=0; m_StringName=false; m_GlobalEnumSegments=NULL; m_GlobalEnumFrameData=NULL; m_GlobalScopeSymbol=NULL; m_DiaSession=NULL; m_DiaDataSource=NULL; m_pfnSetRange = NULL; m_pfnSetPos = NULL; } bool CSourceDebug::Init() { if(m_DiaDllModule==NULL) { m_DiaDllModule = LoadLibrary("msdia80.dll"); if(!m_DiaDllModule) { m_DiaDllModule = LoadLibrary("c:\\Prg\\Syser\\Addition\\DiaSDK\\bin\\msdia80.dll"); } if(!m_DiaDllModule) return false; } if(m_DiaDllGetClassObject==NULL) { m_DiaDllGetClassObject = (PDLLGETCLASSOBJECT)GetProcAddress(m_DiaDllModule,"DllGetClassObject"); } return true; } bool CSourceDebug::Release() { if(m_DiaDllModule) FreeLibrary(m_DiaDllModule); m_DiaDllModule=NULL; return true; } CSourceDebug::~CSourceDebug() { } bool CSourceDebug::PackedSourceFile(PCSTR pSymbolFileName,PACKEDSOURCEFILEFAILEDCALLBACK pCallBack) { DWORD i; int CallBackRet; bool bSkipAll=false; DWORD SourceFileCount=0; HANDLE hFile; PSDSYMBOLFILE FileHeader; PSDSOURCEFILEID pSourceFile; ULLSIZE FileLen; ULLSIZE FileCurPos; char* StringTable; CLocalFileIO SourceFileIO; char* SourceName; char NewFileName[1024]; char *FileReadWriteBuf=NULL; DWORD* StringTableIndex; if(gpFileIO->OpenFile(pSymbolFileName,&hFile,FIO_READ|FIO_WRITE)==false) return false; FileLen = gpFileIO->GetFileLength(hFile); FileHeader=(PSDSYMBOLFILE)new char[*(size_t*)&FileLen]; gpFileIO->ReadFile(hFile,FileHeader,*(ULSIZE*)&FileLen,0); if(FileHeader->UnionSourceFile.SourceFileOffset) { delete []FileHeader; gpFileIO->CloseHandle(hFile); return false; } StringTableIndex = (DWORD*)((char*)FileHeader + FileHeader->UnionStringIndexTable.StringIndexTableOffset); StringTable = (char*)FileHeader+FileHeader->UnionStringTable.StringTableOffset; gpFileIO->SetFilePointer(hFile,FileHeader->UnionSourceFileIDTable.SourceFileIDTableOffset,FILE_BEGIN); pSourceFile = (PSDSOURCEFILEID)((char*)FileHeader+FileHeader->UnionSourceFileIDTable.SourceFileIDTableOffset); for(i = 0; i < FileHeader->SourceFileCounter;i++) { SourceName =StringTable + StringTableIndex[pSourceFile[i].uName.MemberNameInStringTableIndex]; Local_001: if(gpFileIO->IsFileExist(SourceName)==false) { pSourceFile[i].OffsetAtFile=0; pSourceFile[i].FileLen=0; if(pCallBack&&bSkipAll==false) { CallBackRet = pCallBack(SourceName,NewFileName); switch(CallBackRet) { case 0: SourceName=NewFileName; goto Local_001; case 2: bSkipAll=true; case 1: break; } } } else { SourceFileCount++; FileLen = gpFileIO->GetFileSize(SourceName); FileReadWriteBuf=new char[*(size_t*)&FileLen]; FileCurPos = gpFileIO->SetFilePointer(hFile,0,FILE_END); pSourceFile[i].OffsetAtFile=*(DWORD*)&FileCurPos; pSourceFile[i].FileLen=*(DWORD*)&FileLen; gpFileIO->ReadFromFile(SourceName,FileReadWriteBuf,*(ULSIZE*)&FileLen); gpFileIO->WriteFile(hFile,FileReadWriteBuf,*(ULSIZE*)&FileLen); delete []FileReadWriteBuf; } } gpFileIO->WriteFile(hFile,pSourceFile,sizeof(SDSOURCEFILEID)*FileHeader->SourceFileCounter,FileHeader->UnionSourceFileIDTable.SourceFileIDTableOffset); FileLen = gpFileIO->SetFilePointer(hFile,0,FILE_END); DWORD Tmp = *(DWORD*)&FileLen & 0xFFF; if(Tmp) { Tmp = 0x1000-Tmp; char *BufChar=new char[Tmp]; if(BufChar) { memset(BufChar,0,Tmp); gpFileIO->WriteFile(hFile,BufChar,Tmp); FileLen = gpFileIO->SetFilePointer(hFile,0,FILE_END); delete []BufChar; } else { FileHeader->CheckSum=0; } } FileHeader->UnionSourceFile.SourceFileOffset = FileHeader->FileLen; FileHeader->FileLen=*(DWORD*)&FileLen; FileHeader->PackageSourceFileCounter=SourceFileCount; gpFileIO->WriteFile(hFile,FileHeader,SDSF_FILE_HEADER_SIZE,0); delete []FileHeader; gpFileIO->CloseHandle(hFile); WriteSDSymbolFileCheckSum(pSymbolFileName); return true; } bool CSourceDebug::GetPEFileTimeDateStamp(IN PCSTR szPEFileName,OUT DWORD *TimeDateStamp,OUT DWORD* PECheckSum) { CPEFile PEFile; if(TimeDateStamp) *TimeDateStamp=0; if(PECheckSum) *PECheckSum=0; PEFile.m_OpenMode |= PE_OPEN_NO_IMPORT|PE_OPEN_NO_EXPORT; if(PEFile.Open(szPEFileName)==false) return false; if(TimeDateStamp) *TimeDateStamp=PEFile.m_PEHead.TimeDateStamp; if(PECheckSum) *PECheckSum=PEFile.m_PEHead.CheckSum; PEFile.Close(); return true; } bool CSourceDebug::IsSymbolFile(PCSTR pFileName) { ULLSIZE FileLen; SDSYMBOLFILE SDSymbolFile; if(gpFileIO->IsFileExist(pFileName)==false) return false; if(gpFileIO->ReadFromFile(pFileName,&SDSymbolFile,sizeof(SDSymbolFile))!=sizeof(SDSymbolFile)) return false; if(SDSymbolFile.Sig!=SYSER_DEBUG_SYMBOL_FILE_SIG) return false; FileLen =gpFileIO->GetFileSize(pFileName); if(FileLen!=SDSymbolFile.FileLen) return false; return true; } bool CSourceDebug::GetPDBFileName(char* pSymbolFileName,char* pPDBFileName,DWORD* BufferLen) { if(IsSymbolFile(pSymbolFileName)==false) return false; return true; } bool CSourceDebug::GetPEFileFullName(PCSTR FileName,char* pPEFileFullName,DWORD* BufferLen) { char* Name=NULL; char buf[SDSF_FILE_HEADER_SIZE]; HANDLE hFile; PSDSYMBOLFILE pSDSymbolFile=(PSDSYMBOLFILE)buf; if(IsSymbolFile(FileName)==false) return false; if(gpFileIO->OpenFile(FileName,&hFile)==false) { return false; } if(gpFileIO->ReadFile(hFile,pSDSymbolFile,sizeof(buf),0)!=sizeof(buf)) { gpFileIO->CloseHandle(hFile); return false; } if(pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset+pSDSymbolFile->PEFileFullNameLen <= sizeof(buf)) { gpFileIO->CloseHandle(hFile); Name=(char*)pSDSymbolFile; if(BufferLen) { if(*BufferLen < pSDSymbolFile->PEFileFullNameLen) { *BufferLen=pSDSymbolFile->PEFileFullNameLen; return false; } } TStrCpy(pPEFileFullName,&Name[pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset]); return true; } else { if(BufferLen) { if(*BufferLen < pSDSymbolFile->PEFileFullNameLen) { gpFileIO->CloseHandle(hFile); *BufferLen=pSDSymbolFile->PEFileFullNameLen; return false; } } Name = new char[pSDSymbolFile->PEFileFullNameLen]; if(gpFileIO->ReadFile(hFile,Name,pSDSymbolFile->PEFileFullNameLen,pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset)!=pSDSymbolFile->PEFileFullNameLen) { delete []Name; gpFileIO->CloseHandle(hFile); return false; } TStrCpy(pPEFileFullName,Name); delete []Name; gpFileIO->CloseHandle(hFile); return true; } return true; } bool CSourceDebug::IsTranslated(IN PCSTR szModuleName,PSTR szSymbolFileName) { ULLSIZE FileLen; SDSYMBOLFILE SDSymbolFile; DWORD TimeDateStamp,PECheckSum; char SDSPath[MAX_FN_LEN]; TStrCpy(SDSPath,szModuleName); TStrCat(SDSPath,".sds"); if(szSymbolFileName) TStrCpy(szSymbolFileName,SDSPath); if(gpFileIO->IsFileExist(SDSPath)==false) return false; GetPEFileTimeDateStamp(szModuleName,&TimeDateStamp,&PECheckSum); if(gpFileIO->ReadFromFile(SDSPath,&SDSymbolFile,sizeof(SDSYMBOLFILE))!=sizeof(SDSYMBOLFILE)) return false; FileLen = gpFileIO->GetFileSize(SDSPath); if(SDSymbolFile.FileLen==FileLen&&SDSymbolFile.ModuleID.TimeDateStamp==TimeDateStamp && SDSymbolFile.Version==SYSER_DEBUG_SYMBOL_FILE_VER&&PECheckSum==SDSymbolFile.ModuleID.OrgPECheckSum) return true; return false; } bool CSourceDebug::TranslateSymbolFile(IN PCSTR szModuleName,OUT char *szSymbolFileName,bool bPackedSrcFile) { bool bRet,IsPDBFile; CHAR szDestSymbolName[MAX_FN_LEN]; DWORD TimeDateStamp=0,PECheckSum=0; if(gpFileIO->IsFileExist(szModuleName)==false) return false; TStrCpy(szDestSymbolName,szModuleName); TStrCat(szDestSymbolName,".sds"); if(szSymbolFileName) TStrCpy(szSymbolFileName,szDestSymbolName); if(OpenPdbFile(szModuleName, &m_DiaDataSource, &m_DiaSession, &m_GlobalScopeSymbol,&IsPDBFile)==false) return false; IsPDBFile = false; if(ListGlobalSymbols(IsPDBFile)) { if(IsPDBFile) szModuleName=NULL; else LoadPESym(szModuleName); DumpHeaderFile("c:\\ntddkvista.h"); GetPEFileTimeDateStamp(szModuleName,&TimeDateStamp,&PECheckSum); bRet = CreateSDSymbolFile(szDestSymbolName,TimeDateStamp,PECheckSum,szModuleName); } ReleaseSDType(); ClosePdbFile(); if(bRet && bPackedSrcFile) { PackedSourceFile(szDestSymbolName,NULL); } return bRet; } bool CSourceDebug::TestFunction() { SYMBOL_ID_MAP::iterator BeginIT1,EndIT1; SDTYPE* pType; bool bFind=false; CTempSymbol* pTempSymbol; BeginIT1 = m_UDTSymbolID.begin(); for(;BeginIT1!=m_UDTSymbolID.end();BeginIT1++) { pTempSymbol = (CTempSymbol*)&(*BeginIT1).first; pType =pTempSymbol->GetSDType() ; char *vtablename; PUBLIC_SYMBOL_MAP::iterator BeginIt2,EndIt2; BeginIt2=m_VTablePublicSymbolList.begin(); EndIt2=m_VTablePublicSymbolList.end(); bFind =false; for(;BeginIt2!=EndIt2;BeginIt2++) { vtablename=(*BeginIt2).first.uName.Name; char*vtablename1 = TStrStr(vtablename,pType->SDTypeInfile.uName.Name); if(vtablename1) { if(TStrNCmp(&vtablename1[TStrLen(pType->SDTypeInfile.uName.Name)],"::`vftable'",TStrLen("::`vftable'"))==0) { //m_VTablePublicSymbolList.erase(BeginIt2); bFind=true; break; } } } if(bFind==true) { OutputDebugString(pType->SDTypeInfile.uName.Name); OutputDebugString("\n"); } } // char *Name11; PUBLIC_SYMBOL_MAP::iterator BeginIt3,EndIt3; BeginIt3=m_VTablePublicSymbolList.begin(); EndIt3=m_VTablePublicSymbolList.end(); bFind =false; OutputDebugString("========================================================\n"); char displaybuffer[100]; for(;BeginIt3!=EndIt3;BeginIt3++) { sprintf(displaybuffer,"%08x %08x %s\n",(*BeginIt3).first.Rva,(*BeginIt3).first.Length ,(*BeginIt3).first.uName.Name); OutputDebugString(displaybuffer); } return true; } bool CSourceDebug::MakeSDSegment() { LONG Count = 0; BOOL bValue; ULONG celt; IDiaSegment *pIDiaSegment=NULL; SDSEGMENT* pSegment=NULL; int i=0; if(SUCCEEDED(m_GlobalEnumSegments->get_Count(&Count))&&Count) { pSegment = new SDSEGMENT[Count]; memset(pSegment,0,sizeof(SDSEGMENT)*Count); while(SUCCEEDED(m_GlobalEnumSegments->Next(1,&pIDiaSegment,&celt))&&celt==1&&pIDiaSegment) { pIDiaSegment->get_frame(&pSegment[i].SegmentNumber); pIDiaSegment->get_addressSection(&pSegment[i].SectionNumber); pIDiaSegment->get_length(&pSegment[i].Length); pIDiaSegment->get_offset(&pSegment[i].Offset); pIDiaSegment->get_relativeVirtualAddress(&pSegment[i].RVA); pIDiaSegment->get_virtualAddress(&pSegment[i].VA); pIDiaSegment->get_read(&bValue); pSegment[i].IsRead=bValue?1:0; pIDiaSegment->get_write(&bValue); pSegment[i].IsWrite=bValue?1:0; pIDiaSegment->get_execute(&bValue); pSegment[i].IsExecute=bValue?1:0; pIDiaSegment->Release(); pIDiaSegment=NULL;celt=0;i++; } } return 0; } bool CSourceDebug::DumpFrameData() { if(m_GlobalEnumFrameData==NULL) return false; static int FrameDataCount=0; SDPUBLICSYMBOL SdPublicSymbol; LONG count=0; ULONG celt; IDiaFrameData* pFrameData; DWORD Rav; if(SUCCEEDED(m_GlobalEnumFrameData->get_Count(&count))&& count) { while(SUCCEEDED(m_GlobalEnumFrameData->Next(1,&pFrameData,&celt))&&celt) { Rav = 0; if(SUCCEEDED(pFrameData->get_relativeVirtualAddress(&Rav))) { list::iterator BeginIt,EndIt,findIt; BeginIt = m_FunctionRavList.begin();EndIt=m_FunctionRavList.end(); findIt = find(BeginIt,EndIt,Rav); if(findIt==EndIt) { char* name2; name2 = new char[13]; memset(&SdPublicSymbol,0,sizeof(SDPUBLICSYMBOL)); TSPrintf(name2,"SEH_%08x",Rav); SdPublicSymbol.uName.Name = name2; SdPublicSymbol.Rva=Rav; DWORD BlockLength=0; pFrameData->get_lengthBlock(&BlockLength); SdPublicSymbol.Length=BlockLength; //m_PublicSymbolList.push_back(SdPublicSymbol); m_PublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva));// push_back(SdPublicSymbol); } FrameDataCount++; } } } FrameDataCount++; return true; } HRESULT CSourceDebug::NoRegCoCreate(PCSTR dllName,REFCLSID rclsid,REFIID riid,void **ppv) { HRESULT hr=-1; IClassFactory* classFactory; if(m_DiaDllModule==NULL) Init(); if(m_DiaDllGetClassObject) { hr = m_DiaDllGetClassObject(rclsid, IID_IClassFactory ,(void **) &classFactory); if(FAILED(hr)) return hr; classFactory->CreateInstance(NULL,riid,ppv); classFactory->Release(); } return hr; } void CSourceDebug::ClosePdbFile() { if(m_GlobalEnumSegments) { m_GlobalEnumSegments->Release(); m_GlobalEnumSegments=NULL; } if(m_GlobalEnumFrameData) { m_GlobalEnumFrameData->Release(); m_GlobalEnumFrameData=NULL; } if(m_GlobalScopeSymbol) { m_GlobalScopeSymbol->Release(); m_GlobalScopeSymbol=NULL; } if(m_DiaSession) { m_DiaSession->Release(); m_DiaSession=NULL; } if(m_DiaDataSource) { m_DiaDataSource->Release(); m_DiaDataSource=NULL; } return; } bool CSourceDebug::OpenPdbFile(PCSTR filename, IDiaDataSource** DiaDataSource, IDiaSession** DiaSession, IDiaSymbol** GlobalScopeSymbol,OUT bool* IsPDBFile) { HRESULT hr; if(IsPDBFile) *IsPDBFile=true; #ifdef COM_INTERFACE_DIA hr = CoInitialize(NULL); if(FAILED(hr)) return false; hr = CoCreateInstance(__uuidof(DiaSource) , NULL, CLSCTX_INPROC_SERVER, __uuidof( IDiaDataSource ), (void **) DiaDataSource); hr = CoCreateInstance(__uuidof(DiaSource),//CLSID_DiaSource, NULL, CLSCTX_INPROC_SERVER, __uuidof(IDiaDataSource), (void **) DiaDataSource); #else hr = NoRegCoCreate(NULL,__uuidof( DiaSourceAlt ),__uuidof( IDiaDataSource ), (void **) DiaDataSource); if (FAILED(hr)) { hr = NoRegCoCreate(NULL,__uuidof( DiaSourceAlt ),__uuidof( IDiaDataSource ), (void **) DiaDataSource); if (FAILED(hr)) return false; } #endif if (FAILED(hr)) { return false; } WCHAR wFileName[MAX_PATH*4]; AnsiToUnicode(filename,wFileName,sizeof(wFileName)); // Load the PDB file if (FAILED((*DiaDataSource)->loadDataFromPdb(wFileName))) { if(IsPDBFile) *IsPDBFile=false; if (FAILED((*DiaDataSource)->loadDataForExe(wFileName,NULL,NULL))) { return false; } } // Open a session if (FAILED((*DiaDataSource)->openSession(DiaSession))) { return false; } // Get the global scope if (FAILED((*DiaSession)->get_globalScope(GlobalScopeSymbol))) { return false; } return true; } WCHAR*basetypename[]= { WSTR("btNoType = 0"), WSTR("btVoid = 1"), WSTR("btChar = 2"), WSTR("btWChar = 3"), WSTR(""), WSTR(""), WSTR("btInt = 6"), WSTR("btUInt = 7"), WSTR("btFloat = 8"), WSTR("btBCD = 9"), WSTR("btBool = 10"), WSTR(""), WSTR(""), WSTR("btLong = 13"), WSTR("btULong = 14"), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR(""), WSTR("btCurrency = 25"), WSTR("btDate = 26"), WSTR("btVariant = 27"), WSTR("btComplex = 28"), WSTR("btBit = 29"), WSTR("btBSTR = 30"), WSTR("btHresult = 31"), NULL, }; WCHAR *SymTagName[]= { WSTR("SymTagNull"), WSTR("SymTagExe"), WSTR("SymTagCompiland"), WSTR("SymTagCompilandDetails"), WSTR("SymTagCompilandEnv"), WSTR("SymTagFunction"), WSTR("SymTagBlock"), WSTR("SymTagData"), WSTR("SymTagAnnotation"), WSTR("SymTagLabel"), WSTR("SymTagPublicSymbol"), WSTR("SymTagUDT"), WSTR("SymTagEnum"), WSTR("SymTagFunctionType"), WSTR("SymTagPointerType"), WSTR("SymTagArrayType"), WSTR("SymTagBaseType"), WSTR("SymTagTypedef"), WSTR("SymTagBaseClass"), WSTR("SymTagFriend"), WSTR("SymTagFunctionArgType"), WSTR("SymTagFuncDebugStart"), WSTR("SymTagFuncDebugEnd"), WSTR("SymTagUsingNamespace"), WSTR("SymTagVTableShape"), WSTR("SymTagVTable"), WSTR("SymTagCustom"), WSTR("SymTagThunk"), WSTR("SymTagCustomType"), WSTR("SymTagManagedType"), WSTR("SymTagDimension"), WSTR("SymTagMax"), NULL, }; bool CSourceDebug::GetSymbolType(IDiaSymbol* Symbol,DWORD &TypeId,DWORD &symTag) { IDiaSymbol *SymbolType=NULL; if(FAILED(Symbol->get_typeId(&TypeId))) return false; if(FAILED(Symbol->get_type(&SymbolType))) return false; if(SymbolType==NULL) return false; if(FAILED(SymbolType->get_symTag(&symTag))) return false; if(symTag==SymTagBaseType) if(FAILED(SymbolType->get_baseType(&TypeId))) return false; return true; } WCHAR *CSourceDebug::GetSymbolTypeName(IN IDiaSymbol* Symbol,IN DWORD NameMaxLen,OUT WCHAR *Name) { IDiaSymbol *SymbolType=NULL; BSTR SymbolTypeName=NULL; DWORD TypeId,symTag; DWORD pointerDepth; if(Symbol==NULL) { if(Name) { Name[0]=0; return Name; }else return NULL; } if(FAILED(Symbol->get_type(&SymbolType))) return NULL; if(SymbolType==NULL) return NULL; if(FAILED(SymbolType->get_symTag(&symTag))) return NULL; pointerDepth=0; while(symTag==SymTagPointerType) { pointerDepth++; // Get the next type down IDiaSymbol* tmpPointeeType; if (FAILED(SymbolType->get_type(&tmpPointeeType))) { break; } SymbolType->Release(); SymbolType = tmpPointeeType; // get symtag of next type down if (FAILED(SymbolType->get_symTag(&symTag))) { break; } } if(symTag==SymTagBaseType) { if(FAILED(SymbolType->get_baseType(&TypeId))) return false; if(Name) TStrCpyLimit(Name,basetypename[TypeId],NameMaxLen-1); return Name; } if(SUCCEEDED(SymbolType->get_name(&SymbolTypeName))&&SymbolTypeName) { if(Name) { int i=0; TStrCpyLimit(Name,SymbolTypeName,NameMaxLen-1); if(pointerDepth) { i = TStrLen(Name); for(;pointerDepth;i++,pointerDepth--) { Name[i]='*'; } Name[i]=0; } } return Name; }else { if(Name) TStrCpyLimit(Name,SymTagName[symTag],NameMaxLen-1); return Name; } return NULL; } WCHAR *datakindname[]= { WSTR("DataIsUnknown"), WSTR("DataIsLocal"), WSTR("DataIsStaticLocal"), WSTR("DataIsParam"), WSTR("DataIsObjectPtr"), WSTR("DataIsFileStatic"), WSTR("DataIsGlobal"), WSTR("DataIsMember"), WSTR("DataIsStaticMember"), WSTR("DataIsConstant"), NULL, }; WCHAR* DataKindName[]= { WSTR("DataIsUnknown"), WSTR("DataIsLocal"), WSTR("DataIsStaticLocal"), WSTR("DataIsParam"), WSTR("DataIsObjectPtr"), WSTR("DataIsFileStatic"), WSTR("DataIsGlobal"), WSTR("DataIsMember"), WSTR("DataIsStaticMember"), WSTR("DataIsConstant"), WSTR(""), }; WCHAR* LocationTypeName[]= { WSTR("LocIsNull"), WSTR("LocIsStatic"), WSTR("LocIsTLS"), WSTR("LocIsRegRel"), WSTR("LocIsThisRel"), WSTR("LocIsEnregistered"), WSTR("LocIsBitField"), WSTR("LocIsSlot"), WSTR("LocIsIlRel"), WSTR("LocInMetaData"), WSTR("LocIsConstant"), WSTR("LocTypeMax"), WSTR(""), }; WCHAR *CV_access_eName[]= { WSTR(""), WSTR("CV_private"), WSTR("CV_protected"), WSTR("CV_public"), WSTR(""), }; bool CSourceDebug::ListGlobalSymbols(bool IsPDBFile) { ULONG celt; IDiaSymbol *Symbol; int i =0; DWORD SelfReleaseFlags; IDiaEnumSymbols * EnumSymbols; SDTYPE *RetSDTYPE; if(m_GlobalScopeSymbol==NULL) return false; MakeSDEXE(m_GlobalScopeSymbol); InitEnumFrameDataTable(); if(FAILED(m_GlobalScopeSymbol->findChildren(SymTagPublicSymbol,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return false; while(SUCCEEDED(EnumSymbols->Next(1,&Symbol,&celt))&&celt==1&&Symbol) { SelfReleaseFlags=1; MakeSDPublicSymbol(Symbol,&SelfReleaseFlags,NULL); if(SelfReleaseFlags) { Symbol->Release(); Symbol=NULL; } } EnumSymbols->Release(); EnumSymbols=NULL; if(FAILED(m_GlobalScopeSymbol->findChildren(SymTagCompiland,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return false; while(SUCCEEDED(EnumSymbols->Next(1,&Symbol,&celt))&&celt==1&&Symbol) { MakeSDCompiland(Symbol); Symbol->Release(); Symbol=NULL; } EnumSymbols->Release(); //return true; EnumSymbols=NULL; IsPDBFile=true; if(IsPDBFile) { ////////////////////////////////////////////////////////////////////////// // Ԥȶ ////////////////////////////////////////////////////////////////////////// MakePredefineSDBaseType(); ////////////////////////////////////////////////////////////////////////// // ȡ ////////////////////////////////////////////////////////////////////////// if(FAILED(m_GlobalScopeSymbol->findChildren(SymTagBaseType,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return true; long n; EnumSymbols->get_Count(&n); while(SUCCEEDED(EnumSymbols->Next(1,&Symbol,&celt))&&celt==1&&Symbol) { SelfReleaseFlags=1; MakeSDType(Symbol,&SelfReleaseFlags,&RetSDTYPE); if(SelfReleaseFlags) Symbol->Release(); } EnumSymbols->Release(); if(FAILED(m_GlobalScopeSymbol->findChildren(SymTagNull,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return true; if(m_pfnSetRange) { LONG Count; EnumSymbols->get_Count(&Count); m_pfnSetRange(Count); m_ProgressStep = Count/100; } while(SUCCEEDED(EnumSymbols->Next(1,&Symbol,&celt))&&celt==1&&Symbol) { SelfReleaseFlags=1; MakeSDType(Symbol,&SelfReleaseFlags,&RetSDTYPE); if(SelfReleaseFlags) Symbol->Release(); i++; if(m_pfnSetPos) { if(m_ProgressStep && i%m_ProgressStep==0) m_pfnSetPos(i); } } EnumSymbols->Release(); } else { if(FAILED(m_GlobalScopeSymbol->findChildren(SymTagData,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return true; while(SUCCEEDED(EnumSymbols->Next(1,&Symbol,&celt))&&celt==1&&Symbol) { SelfReleaseFlags=1; MakeSDType(Symbol,&SelfReleaseFlags,&RetSDTYPE); if(SelfReleaseFlags) Symbol->Release(); i++; } EnumSymbols->Release(); EnumSymbols=NULL; if(FAILED(m_GlobalScopeSymbol->findChildren(SymTagFunction,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return true; while(SUCCEEDED(EnumSymbols->Next(1,&Symbol,&celt))&&celt==1&&Symbol) { SelfReleaseFlags=1; MakeSDType(Symbol,&SelfReleaseFlags,&RetSDTYPE); if(SelfReleaseFlags) Symbol->Release(); i++; } EnumSymbols->Release(); } ReleaseIDiaSymbol(); //m_FuntionID.sort(); //sort(m_SymbolList.begin(),m_SymbolList.end()); //m_SymbolList.sort(); return true; } WCHAR *CSourceDebug::GetSymbolName(IN IDiaSymbol* Symbol,IN DWORD NameMaxLen,OUT WCHAR *Name) { BSTR SymbolName=NULL; if(Symbol==NULL) { if(Name) { Name[0]=0; return Name; }else return NULL; } if(SUCCEEDED(Symbol->get_name(&SymbolName))&&SymbolName) { if(Name) TStrCpyLimit(Name,SymbolName,NameMaxLen-1); return Name; }else { DWORD symIndexId; symIndexId=0xffffffff; if(SUCCEEDED(Symbol->get_symIndexId(&symIndexId))&&symIndexId!=0xffffffff) { TSPrintf(Name,WSTR("%08x"),symIndexId); }else { if(Name) { Name[0]=0; return Name; }else return NULL; } } return NULL; } bool CSourceDebug::CheckSymbolSymTagType(IDiaSymbol *Symbol,enum SymTagEnum TagType) { DWORD symTag; if(Symbol==NULL) return false; if(FAILED(Symbol->get_symTag(&symTag))) return false; return symTag==TagType; } bool CSourceDebug::InitEnumFrameDataTable() { IDiaTable* pTable=NULL; ULONG celt; IDiaEnumTables *EnumTables=NULL; IDiaEnumFrameData* pIDiaEnumFrameData=NULL; IDiaEnumSegments* pIDiaEnumSegments=NULL; m_GlobalEnumFrameData=NULL; if(FAILED(m_DiaSession->getEnumTables(&EnumTables))||EnumTables==NULL) return false; while(SUCCEEDED(EnumTables->Next(1,&pTable,&celt))&&celt==1) { if(SUCCEEDED(pTable->QueryInterface(_uuidof(IDiaSegment),(void**)&pIDiaEnumSegments))&&pIDiaEnumSegments) { m_GlobalEnumSegments=pIDiaEnumSegments; pTable->Release(); break; } pTable->Release(); pTable=NULL; } EnumTables->Release(); if(FAILED(m_DiaSession->getEnumTables(&EnumTables))||EnumTables==NULL) return false; while(SUCCEEDED(EnumTables->Next(1,&pTable,&celt))&&celt==1) { if(SUCCEEDED(pTable->QueryInterface(_uuidof(IDiaEnumFrameData),(void**)&pIDiaEnumFrameData))&&pIDiaEnumFrameData) { m_GlobalEnumFrameData=pIDiaEnumFrameData; pTable->Release(); break; } pTable->Release(); pTable=NULL; } EnumTables->Release(); return true; } WCHAR *udtKindName[]={ WSTR("struct"), WSTR("class"), WSTR("union"), WSTR("error udt kind"), }; IDiaSymbol* CSourceDebug::FindSymbol(WCHAR *SymbolName,enum SymTagEnum SymTag,IDiaSymbol* Symbol) { ULONG celt; IDiaEnumSymbols *EnumSymbols; IDiaSymbol* pCurSymbol; if(Symbol==NULL) Symbol=m_GlobalScopeSymbol; if(FAILED(Symbol->findChildren(SymTag,SymbolName,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULL; if(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) return pCurSymbol; return NULL; } IDiaSymbol* CSourceDebug::DumpSymTagPointerType(IDiaSymbol *Symbol,HANDLE pItem/*,CWispList* pListTree*/,DWORD *Depth) { DWORD pointerDepth=0; if(Symbol==NULL) return NULL; if(CheckSymbolSymTagType(Symbol,SymTagPointerType)==false) return NULL; BOOL ref; if(FAILED(Symbol->get_reference(&ref))) return NULL; if(ref) return NULL; IDiaSymbol * pCurSymbol=NULL; DWORD dwSymTag; bool First=false; while(SUCCEEDED(Symbol->get_type(&pCurSymbol))&&pCurSymbol!=NULL) { pointerDepth++; if(FAILED(pCurSymbol->get_symTag(&dwSymTag))) { pCurSymbol->Release(); return NULL; } if(dwSymTag!=SymTagPointerType) { if(Depth) *Depth=pointerDepth; if(First) Symbol->Release(); return pCurSymbol; } if(FAILED(pCurSymbol->get_reference(&ref))) { pCurSymbol->Release(); return NULL; } if(ref) { pCurSymbol->Release(); return NULL; } if(First) Symbol->Release(); Symbol=pCurSymbol; First=true; } return NULL; } bool CSourceDebug::CreateSDSymbolFile(const char *FileName,DWORD TimeDateStamp,DWORD PECheckSum,PCSTR szModuleName) { char *NullPage,*TempChar,*FileHeaderBuf; SDSYMBOLFILE* pSDSymbolFile; SDTYPE NullType; SDUDTDATAITEM NullData; SDFUNCTIONITEM NullFunction; DWORD dwWriteLen,DataCounter,Temp,SymbolCounter,Index=0,FunctionCounter; SDTYPE* pType; DWORD* pSymbolOffsetArray,*pFunctionOffsetArray; SYMBOLLIST sl; size_t Size; DWORD FileHeaderLen; NullPage=new char[0x1000]; memset(NullPage,0,0x1000); m_StringTableBlockBeginOffset=0; m_CurrentStringTableMaxLen=STRINGTABLEDUMPBLOCKSIZE; m_StringTable = new char[m_CurrentStringTableMaxLen]; memset(m_StringTable,0,m_CurrentStringTableMaxLen); m_StringTableOffset=1; m_StringIndex=1; FileHeaderBuf = new char[SDSF_FILE_HEADER_SIZE]; memset(FileHeaderBuf,0,SDSF_FILE_HEADER_SIZE); pSDSymbolFile = (SDSYMBOLFILE*)FileHeaderBuf; pSDSymbolFile->Sig = SYSER_DEBUG_SYMBOL_FILE_SIG; pSDSymbolFile->SymbolDirectoryEntryNum=SD_MAX_TYPEIDS; pSDSymbolFile->Version=SYSER_DEBUG_SYMBOL_FILE_VER; Size = m_SymbolList.size(); pSDSymbolFile->SymbolTotalNum=*(DWORD*)&Size; pSDSymbolFile->SymbolTotalNum++;//ΪһյҪһ pSDSymbolFile->UnionSymbolTable.SymbolTableOffset=SDSF_FILE_HEADER_SIZE; pSDSymbolFile->ModuleID.TimeDateStamp = TimeDateStamp; pSDSymbolFile->ModuleID.OrgPECheckSum=PECheckSum; if(gpFileIO->CreateFile(FileName,&m_hFile)==false) return false; gpFileIO->WriteFile(m_hFile,FileHeaderBuf,SDSF_FILE_HEADER_SIZE);//дļͷ m_FileOffset=SDSF_FILE_HEADER_SIZE; SymbolCounter=pSDSymbolFile->SymbolTotalNum; Size=m_DataTagVector.size(); DataCounter=*(DWORD*)&Size; pSymbolOffsetArray = new DWORD [SymbolCounter]; memset(pSymbolOffsetArray,0,sizeof(DWORD)*SymbolCounter); Index=0; pSymbolOffsetArray[Index]=m_FileOffset; memset(&NullType,0,sizeof(SDTYPE)); gpFileIO->WriteFile(m_hFile,&NullType,sizeof(SDTYPE)); //дһսṹ m_FileOffset+=sizeof(SDTYPE); m_StringIDVector.push_back(0); //յַ ULLPOS CurFileLen; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //ŵļ //////////////////////////////////////////////////////// //sort(m_SymbolList.begin(),m_SymbolList.end()); //m_SymbolList.sort(); //SDSymbolList::iterator BeginIt,EndIt; SD_SYMBOL_MAP::iterator BeginIt,EndIt; BeginIt = m_SymbolList.begin();EndIt=m_SymbolList.end(); for(Index=1;BeginIt!=EndIt;BeginIt++,Index++) { pSymbolOffsetArray[Index]=m_FileOffset; sl = (*BeginIt).first; //sl = *BeginIt; pType = sl.type; dwWriteLen=0; if(Index!=sl.id) MessageBox(NULL,"Sort error","error",MB_OK); switch(pType->SDTypeInfile.Type) { case SD_CLASS: case SD_STRUCT: case SD_UNION: dwWriteLen = DumpSDUDTTypeToFile(pType); break; case SD_TYPEDEF: dwWriteLen = DumpSDTypedefTypeToFile(pType); break; case SD_ENUMERATION: dwWriteLen = DumpSDEnumTypeToFile(pType); break; case SD_REFERENCE: dwWriteLen = DumpSDReferenceTypeToFile(pType); break; case SD_POINTER: dwWriteLen = DumpSDPointerTypeToFile(pType); break; case SD_FUNCTIONTYPE: dwWriteLen = DumpSDFunctionTypeToFile(pType); break; case SD_ARRAY: dwWriteLen = DumpSDArrayToFile(pType); break; case SD_BASECLASS: dwWriteLen = DumpSDUDTBaseClassTypeToFile(pType); break; case SD_THUNK: dwWriteLen = DumpSDThunkTypeToFile(pType); break; case SD_BASIC: dwWriteLen = DumpSDBasicTypeToFile(pType); break; case SD_MANAGED: dwWriteLen = DumpSDManagedToFile(pType); break; case SD_CUSTOM: dwWriteLen = DumpSDCustomToFile(pType); break; case SD_BLOCK: dwWriteLen = DumpSDBlockToFile(pType); break; case SD_VTABLE: dwWriteLen = DumpSDVTableToFile(pType); case SD_FRIEND: dwWriteLen = DumpSDFriendToFile(pType); default: pSymbolOffsetArray[Index]=SDSF_FILE_HEADER_SIZE; break; } if(dwWriteLen==0) pSymbolOffsetArray[Index]=SDSF_FILE_HEADER_SIZE; m_FileOffset+=dwWriteLen; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); } CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //ƫƱļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionSymbolIndexTable.SymbolIndexTableOffset=m_FileOffset; gpFileIO->WriteFile(m_hFile,pSymbolOffsetArray,sizeof(DWORD)*SymbolCounter); m_FileOffset+=(sizeof(DWORD)*SymbolCounter); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //Ϣļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionDataInformation.DataInformationOffset=m_FileOffset; m_FileOffset+=sizeof(SDUDTDATAITEM); memset(&NullData,0,sizeof(SDUDTDATAITEM)); gpFileIO->WriteFile(m_hFile,&NullData,sizeof(SDUDTDATAITEM)); //дһϢ CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); for(Index = 1; Index < DataCounter;Index++) { dwWriteLen = DumpSDDataToFile(m_DataTagVector[Index]); m_FileOffset+=dwWriteLen; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset);; } pSDSymbolFile->DataInformationNum=DataCounter; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //溯Ϣļ //////////////////////////////////////////////////////// //m_FuntionID.sort(); Size = m_FuntionID.size(); FunctionCounter =1 + *(DWORD*)&Size; pFunctionOffsetArray = new DWORD[FunctionCounter]; memset(pFunctionOffsetArray,0,sizeof(DWORD)*FunctionCounter); pSDSymbolFile->UnionFunctionSymbol.FunctionSymbolOffset =m_FileOffset; pFunctionOffsetArray[0]=m_FileOffset; m_FileOffset+=sizeof(SDFUNCTIONITEM); memset(&NullFunction,0,sizeof(SDFUNCTIONITEM)); gpFileIO->WriteFile(m_hFile,&NullFunction,sizeof(SDFUNCTIONITEM)); //дһϢ CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); FUNCTION_ID_MAP::iterator FuncIdBeginIT,FuncIdEndIT;// m_FuntionID; FuncIdBeginIT = m_FuntionID.begin(); FuncIdEndIT = m_FuntionID.end(); PSDFUNCTIONITEM pFunctionItem; for(;FuncIdBeginIT!=FuncIdEndIT;FuncIdBeginIT++) m_IDFuntionMap.insert(ID_FUNCTION_MAP::value_type((*FuncIdBeginIT).second,(PSTFUNCTIONID)&(*FuncIdBeginIT).first));// .push_back(&(*FuncBeginIT).first); ID_FUNCTION_MAP::iterator FuncBeginIT,FuncEndIT;// m_FuntionID; FuncBeginIT = m_IDFuntionMap.begin(); FuncEndIT=m_IDFuntionMap.end(); for(;FuncBeginIT!=FuncEndIT;FuncBeginIT++) { pFunctionItem = (*FuncBeginIT).second->pFuncItem; pFunctionOffsetArray[pFunctionItem->ID]=m_FileOffset; CODE_ASSERT(FunctionCounter>=pFunctionItem->ID); dwWriteLen = DumpSDFunctionToFile(pFunctionItem); if(dwWriteLen==0) pFunctionOffsetArray[pFunctionItem->ID]=pFunctionOffsetArray[0]; m_FileOffset+=dwWriteLen; //CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); //CODE_ASSERT(CurFileLen==m_FileOffset); } m_IDFuntionMap.clear(); pSDSymbolFile->FunctionSymbolNum=FunctionCounter; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //溯ϢƫƱļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionFunctionSymbolIndexTable.FunctionSymbolIndexTableOffset=m_FileOffset; gpFileIO->WriteFile(m_hFile,pFunctionOffsetArray,sizeof(DWORD)*FunctionCounter); delete []pFunctionOffsetArray; m_FileOffset+=(sizeof(DWORD)*FunctionCounter); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //кϢļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionLineNumber.LineNumberOffset=m_FileOffset; DWORD WritedLen = DumpSDLineNumberToFile(&pSDSymbolFile->LineNumberCounter); m_FileOffset+=WritedLen; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //Դļбļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionSourceFileIDTable.SourceFileIDTableOffset=m_FileOffset; ULLPOS ll; ll = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); WritedLen = DumpSDSourceFileToFile(&pSDSymbolFile->SourceFileCounter); m_FileOffset+=WritedLen; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //ȫֵķűļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionPublicSymbol.PublicSymbolOffset=m_FileOffset; WritedLen = DumpSDPublicSymbolToFile(&pSDSymbolFile->PublicSymbolCounter); m_FileOffset+=WritedLen; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// // Compiland ļ //////////////////////////////////////////////////////// pSDSymbolFile->UniosCompiland.CompilandOffset=m_FileOffset; WritedLen = DumpSDCompilandToFile(&pSDSymbolFile->CompilandCounter); m_FileOffset+=WritedLen; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// //ַƫƱļ //////////////////////////////////////////////////////// Size = m_StringIDVector.size(); pSDSymbolFile->StringTotalNum=*(DWORD*)&Size; pSDSymbolFile->UnionStringIndexTable.StringIndexTableOffset=m_FileOffset; if(pSDSymbolFile->StringTotalNum>SymbolCounter) { delete []pSymbolOffsetArray; pSymbolOffsetArray = new DWORD[pSDSymbolFile->StringTotalNum]; } for(unsigned i=0;iStringTotalNum;i++) pSymbolOffsetArray[i]=m_StringIDVector[i]; gpFileIO->WriteFile(m_hFile,pSymbolOffsetArray,sizeof(DWORD)*pSDSymbolFile->StringTotalNum); delete []pSymbolOffsetArray; m_FileOffset+=(sizeof(DWORD)*pSDSymbolFile->StringTotalNum); Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; CurFileLen = gpFileIO->SetFilePointer(m_hFile,0,FILE_CURRENT); CODE_ASSERT(CurFileLen==m_FileOffset); //////////////////////////////////////////////////////// // ļ //////////////////////////////////////////////////////// pSDSymbolFile->UnionStringTable.StringTableOffset=m_FileOffset; DUMP_STRING_LOCK_LIST::iterator FirstIt,LastIt; FirstIt = m_StringDumpBlockList.begin(); LastIt = m_StringDumpBlockList.end(); for(;FirstIt!=LastIt;FirstIt++) { void * WBuf=(*FirstIt).BlockBaseAddress ; DWORD WLen=(*FirstIt).EndOffset-(*FirstIt).BeginOffset; gpFileIO->WriteFile(m_hFile,WBuf,WLen); m_FileOffset+=WLen; delete []WBuf; } gpFileIO->WriteFile(m_hFile,m_StringTable,m_StringTableOffset-m_StringTableBlockBeginOffset); m_FileOffset+=m_StringTableOffset-m_StringTableBlockBeginOffset; delete []m_StringTable; Temp = m_FileOffset % SECTION_ALIGN_SIZE; if(Temp) { Temp = SECTION_ALIGN_SIZE - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset+=Temp; FileHeaderLen=SDSF_FILE_HEADER_SIZE-sizeof(SDSYMBOLFILE); Temp = TStrLen(m_PEFileName)+1; if(FileHeaderLenuPEFileName.PEFileNameOffset = m_FileOffset; gpFileIO->WriteFile(m_hFile,m_PEFileName,Temp); m_FileOffset += Temp; pSDSymbolFile->PEFileNameLen=Temp; } else { pSDSymbolFile->uPEFileName.PEFileNameOffset = SDSF_FILE_HEADER_SIZE-FileHeaderLen; TempChar=(char*)pSDSymbolFile; TStrCpy(&TempChar[SDSF_FILE_HEADER_SIZE-FileHeaderLen],m_PEFileName); FileHeaderLen-=Temp; pSDSymbolFile->PEFileNameLen=Temp; } Temp = TStrLen(m_PDBFileName)+1; if(FileHeaderLenuPDBFileName.PDBFileNameOffset = m_FileOffset; gpFileIO->WriteFile(m_hFile,m_PDBFileName,Temp); m_FileOffset += Temp; pSDSymbolFile->PDBFileNameLen=Temp; } else { pSDSymbolFile->uPDBFileName.PDBFileNameOffset = SDSF_FILE_HEADER_SIZE-FileHeaderLen; TempChar=(char*)pSDSymbolFile; TStrCpy(&TempChar[SDSF_FILE_HEADER_SIZE-FileHeaderLen],m_PDBFileName); FileHeaderLen-=Temp; pSDSymbolFile->PDBFileNameLen=Temp; } if(szModuleName) { Temp = TStrLen(szModuleName)+1; if(FileHeaderLenuPEFileFullName.PEFileFullNameOffset=m_FileOffset; gpFileIO->WriteFile(m_hFile,szModuleName,Temp); m_FileOffset+=Temp; pSDSymbolFile->PEFileFullNameLen=Temp; } else { pSDSymbolFile->uPEFileFullName.PEFileFullNameOffset=SDSF_FILE_HEADER_SIZE-FileHeaderLen; TempChar=(char*)pSDSymbolFile; TStrCpy(&TempChar[SDSF_FILE_HEADER_SIZE-FileHeaderLen],szModuleName); FileHeaderLen-=Temp; pSDSymbolFile->PEFileFullNameLen=Temp; } } Temp = m_FileOffset % 0x1000; if(Temp) { Temp = 0x1000 - Temp; gpFileIO->WriteFile(m_hFile,NullPage,Temp); } m_FileOffset += Temp; pSDSymbolFile->FileLen=m_FileOffset; gpFileIO->WriteFile(m_hFile,pSDSymbolFile,SDSF_FILE_HEADER_SIZE,0); gpFileIO->CloseHandle(m_hFile); WriteSDSymbolFileCheckSum(FileName); //ReleaseSDType(); delete []NullPage; delete []FileHeaderBuf; return true; } bool CSourceDebug::WriteSDSymbolFileCheckSum(const char *FileName) { DWORD FileLen,i; DWORD* pBuffer; HANDLE hFile; PSDSYMBOLFILE pSDSymbolFile; ULONGLONG CheckSum=0; if(gpFileIO->OpenFile(FileName,&hFile,FIO_READ|FIO_WRITE)==false) return false; FileLen = (DWORD)gpFileIO->GetFileLength(hFile); if(FileLen&0xfff) { gpFileIO->CloseHandle(hFile); return false; } pBuffer = (DWORD*)new BYTE[FileLen]; if(pBuffer==NULL) { gpFileIO->CloseHandle(hFile); return false; } gpFileIO->SetFilePointer(hFile,0,FILE_CURRENT); if(gpFileIO->ReadFile(hFile,pBuffer,FileLen,0)!=FileLen) { gpFileIO->CloseHandle(hFile); return false; } pSDSymbolFile = (PSDSYMBOLFILE)pBuffer; pSDSymbolFile->CheckSum=0; for(i = 0; i < FileLen/sizeof(DWORD);i++) { CheckSum+=pBuffer[i]; } pSDSymbolFile->CheckSum=*(DWORD*)&CheckSum; gpFileIO->WriteFile(hFile,pSDSymbolFile,sizeof(SDSYMBOLFILE),0); gpFileIO->FlushFileBuffer(hFile); gpFileIO->CloseHandle(hFile); delete []pBuffer; return true; } DWORD CSourceDebug::DumpSDSourceFileToFile(DWORD* SourceFileCounter) { ID_TO_SOURCE_FILE_NAME_MAP::iterator BeginIT,EndIT; SDSOURCEFILEID* pSourceID; DWORD WriteLen; DWORD OffsetAtFile = 0; size_t Size; DWORD Counter; Size = m_IdToSourceFileNameMap.size(); Counter=*(DWORD*)&Size; pSourceID = new SDSOURCEFILEID[Counter]; WriteLen = sizeof(SDSOURCEFILEID)*Counter; memset(pSourceID,0,WriteLen); BeginIT=m_IdToSourceFileNameMap.begin(); EndIT=m_IdToSourceFileNameMap.end(); int i = 0; for(;BeginIT!=EndIT;BeginIT++,i++) { pSourceID[i].uName.MemberNameInStringTableIndex = DumpSDTypeName(BeginIT->first.Name); pSourceID[i].FileID=BeginIT->first.Id; } CODE_ASSERT(i==Counter); gpFileIO->WriteFile(m_hFile,pSourceID,WriteLen); if(SourceFileCounter) *SourceFileCounter=Counter; delete []pSourceID; return WriteLen; } DWORD CSourceDebug::DumpSDLineNumberToFile(DWORD* LineNumbers) { DWORD dwTotalLineNumbers=0; size_t Size; DWORD WriteTotalLen=0; SDLINE* pLine; list ::iterator BeginIT,EndIT; Size = m_TotalLineNumber.size(); dwTotalLineNumbers = *(DWORD*)&Size; pLine = new SDLINE[dwTotalLineNumbers]; WriteTotalLen = sizeof(SDLINE)*dwTotalLineNumbers; m_TotalLineNumber.sort(); BeginIT=m_TotalLineNumber.begin(); EndIT=m_TotalLineNumber.end(); int i = 0; for(;BeginIT!=EndIT;BeginIT++,i++) pLine[i]=*BeginIT; gpFileIO->WriteFile(m_hFile,pLine,WriteTotalLen); if(LineNumbers) *LineNumbers=dwTotalLineNumbers; delete []pLine; return WriteTotalLen; } DWORD CSourceDebug::DumpSDPublicSymbolToFile(DWORD* PublicSymbolNumbers) { SDPUBLICSYMBOL* pPublicSymbol; char string[]="`string'"; PUBLIC_SYMBOL_MAP::iterator BeginIt,EndIt; size_t count = m_PublicSymbolList.size(); DWORD WriteLen =*(DWORD*)&count * sizeof(SDPUBLICSYMBOL); vector::iterator beingIt,endIt,valueIt; pPublicSymbol = new SDPUBLICSYMBOL[count]; memset(pPublicSymbol,0,WriteLen); BeginIt = m_PublicSymbolList.begin(); EndIt = m_PublicSymbolList.end(); int i,j = 0,k=0,m=0; for( i =0;BeginIt!=EndIt;BeginIt++) { pPublicSymbol[i]=(*BeginIt).first; if(TStrCmp(string,pPublicSymbol[i].uName.Name)) pPublicSymbol[i].uName.StringTableIndex = DumpSDTypeName(pPublicSymbol[i].uName.Name); else { if(m_StringName) { k++; pPublicSymbol[i].uName.StringTableIndex=m_StringNameID; } else { pPublicSymbol[i].uName.StringTableIndex = DumpSDTypeName(pPublicSymbol[i].uName.Name); m_StringName=true; m_StringNameID=pPublicSymbol[i].uName.StringTableIndex; } } pPublicSymbol[i].UndecoratedName.StringTableIndex = DumpSDTypeName(pPublicSymbol[i].UndecoratedName.Name); i++; } WriteLen = i*sizeof(SDPUBLICSYMBOL); gpFileIO->WriteFile(m_hFile,pPublicSymbol,WriteLen); delete []pPublicSymbol; if(PublicSymbolNumbers) *PublicSymbolNumbers=i; return WriteLen; } DWORD CSourceDebug::DumpSDManagedToFile(SDTYPE* pType) { DWORD WriteByteSize; char* pOldName = pType->SDTypeInfile.uName.Name; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex = DumpSDTypeName(pType); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=pOldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDVTableToFile(SDTYPE* pType) { DWORD WriteByteSize; char* pOldName = pType->SDTypeInfile.uName.Name; WriteByteSize = pType->SDTypeInfile.Size- (sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex = DumpSDTypeName(pType); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=pOldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDDataToFile(SDUDTDATAITEM* pUdtDataItem) { DWORD WriteByteSize; char* pOldName = pUdtDataItem->uName.Name; pUdtDataItem->uName.StringTableIndex=DumpSDDataName(pUdtDataItem); WriteByteSize=sizeof(SDUDTDATAITEM); gpFileIO->WriteFile(m_hFile,pUdtDataItem,WriteByteSize); pUdtDataItem->uName.Name=pOldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDBlockToFile(SDTYPE* pType) { DWORD WriteByteSize; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); return WriteByteSize; } DWORD CSourceDebug::DumpSDCustomToFile(SDTYPE* pType) { char* pOldName = pType->SDTypeInfile.uName.Name; DWORD WriteByteSize; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex = DumpSDTypeName(pType); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=pOldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDBasicTypeToFile(SDTYPE* pType) { char* pOldName = pType->SDTypeInfile.uName.Name; DWORD WriteByteSize; pType->SDTypeInfile.uName.StringTableIndex = DumpSDTypeName(pType); WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=pOldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDCompilandToFile(DWORD* CompilandCounter) { int i; size_t Count; SDCOMPILAND* pCompiland; ID_TO_COMPILAND_NAME_MAP::iterator BeginIt,EndIt; DWORD WriteByteSize; BeginIt = m_IdToCompilandMap.begin(); EndIt = m_IdToCompilandMap.end(); Count = m_IdToCompilandMap.size(); WriteByteSize =*(DWORD*)&Count; WriteByteSize = WriteByteSize * sizeof(SDCOMPILAND); pCompiland = new SDCOMPILAND[Count]; for(i=0;BeginIt!=EndIt;BeginIt++,i++) { pCompiland[i]=*(BeginIt->second); pCompiland[i].uName.MemberNameInStringTableIndex=DumpSDTypeName(pCompiland[i].uName.Name); } gpFileIO->WriteFile(m_hFile,pCompiland,WriteByteSize); delete []pCompiland; if(CompilandCounter) *CompilandCounter=*(DWORD*)&Count; return WriteByteSize; } DWORD CSourceDebug::DumpSDUDTBaseClassTypeToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex = DumpSDTypeName(pType); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDArrayToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType); WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDFunctionTypeToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType); WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDThunkTypeToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType); WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDPointerTypeToFile(SDTYPE* pType) { DWORD WriteByteSize; DWORD WriteLen = sizeof(SDTYPE)+sizeof(SDPOINTERTYPE); char *OldName = pType->SDTypeInfile.uName.Name; char *name; SDPOINTERTYPE* pSdPointerType = (SDPOINTERTYPE*)&pType[1]; unsigned int i; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); int len=TStrLen(pType->SDTypeInfile.uName.Name)-9; name = new char [TStrLen(pType->SDTypeInfile.uName.Name)+1+pSdPointerType->PointerDepth]; TStrCpy(name,pType->SDTypeInfile.uName.Name); for(i =0; iPointerDepth;i++ ) name[len+i]='*'; name[len+i]=0; pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(name); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile.Size,WriteByteSize); delete []name; pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDReferenceTypeToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile.Size,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDEnumTypeToFile(SDTYPE* pType) { SDENUMERATIONTYPE* pEnumationType; DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; char *TmpPointer; SDTYPE_INFILE *pSubType; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType); TmpPointer = new char [WriteByteSize]; pSubType =(SDTYPE_INFILE*) TmpPointer; memcpy(pSubType,&pType->SDTypeInfile,WriteByteSize); pEnumationType = (SDENUMERATIONTYPE*)&pSubType[1]; for(unsigned int i = 0; i < pEnumationType->DataCount; i++) pEnumationType->EnumerationDataMember[i].u.MemberNameInStringTableIndex = DumpSDTypeName(pEnumationType->EnumerationDataMember[i].u.Name); gpFileIO->WriteFile(m_hFile,pSubType,WriteByteSize); delete []TmpPointer; pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDTypedefTypeToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType->SDTypeInfile.uName.Name); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDFriendToFile(SDTYPE* pType) { DWORD WriteByteSize; char *OldName = pType->SDTypeInfile.uName.Name; WriteByteSize = pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); pType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType->SDTypeInfile.uName.Name); gpFileIO->WriteFile(m_hFile,&pType->SDTypeInfile,WriteByteSize); pType->SDTypeInfile.uName.Name=OldName; return WriteByteSize; } DWORD CSourceDebug::DumpSDFunctionToFile(PSDFUNCTIONITEM pFunctionItem) { DWORD WriteLen =sizeof(SDFUNCTIONITEM); PSDFUNCTIONITEM pFuncItem = new SDFUNCTIONITEM; PSDFUNCTIONITEM pOldFuncItem; DWORD CurOffset = WriteLen; DWORD DataLen; DWORD BlockLen; *pFuncItem=*pFunctionItem; DataLen = sizeof(DWORD)*pFuncItem->DataCounter; BlockLen = sizeof(DWORD)*pFuncItem->BlockCounter; pOldFuncItem=pFunctionItem; pFuncItem->pData.DataMemberOffset= pFuncItem->DataCounter ? CurOffset:0; CurOffset+=DataLen; pFuncItem->pBlock.BlockOffset =pFuncItem->BlockCounter ? CurOffset:0; CurOffset+=BlockLen; pFuncItem->uName.MemberNameInStringTableIndex=DumpSDTypeName(pFuncItem->uName.Name); gpFileIO->WriteFile(m_hFile,pFuncItem,WriteLen); if(pFuncItem->DataCounter) gpFileIO->WriteFile(m_hFile,pOldFuncItem->pData.pDataMember,DataLen); if(pFuncItem->BlockCounter) gpFileIO->WriteFile(m_hFile,pOldFuncItem->pBlock.pBlockTypeIdArray,BlockLen); if(pFuncItem->LabelCounter) { PSDLABELITEM pSDLabelArray = new SDLABELITEM[pFuncItem->LabelCounter]; for(unsigned int i = 0; i < pFuncItem->LabelCounter; i++) { pSDLabelArray[i].uName.MemberNameInStringTableIndex=DumpSDTypeName(pFuncItem->pLabel.pLabelArray[i].uName.Name); pSDLabelArray[i].Rva=pFuncItem->pLabel.pLabelArray[i].Rva; } CurOffset+=sizeof(SDLABELITEM)*pFuncItem->LabelCounter; gpFileIO->WriteFile(m_hFile,pSDLabelArray,sizeof(SDLABELITEM)*pFuncItem->LabelCounter); delete []pSDLabelArray; } delete pFuncItem; return CurOffset; } DWORD CSourceDebug::DumpSDUDTTypeToFile(SDTYPE* pType) { DWORD dwCurOffset=pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE)); char* temp = new char[pType->SDTypeInfile.Size]; SDTYPE * pCurType; SDUDTTYPE * pUdtType,*pOldUdtType; DWORD FuncIDLen=0; DWORD DataLen=0; DWORD FriendLen=0; DWORD BaseClassLen=0; DWORD VTableLen=0; pCurType= (SDTYPE*)temp; memcpy(pCurType,pType,pType->SDTypeInfile.Size); pUdtType = (SDUDTTYPE*)&pCurType[1]; pOldUdtType=(SDUDTTYPE*)&pType[1]; FuncIDLen=pUdtType->FunctionCounter*sizeof(DWORD); DataLen=pUdtType->DataCounter*sizeof(DWORD); FriendLen=pUdtType->FriendCounter*sizeof(DWORD); BaseClassLen=pUdtType->BaseClassCounter*sizeof(DWORD); VTableLen=pUdtType->VTableCount*sizeof(SDUDTVIRTUALTABLE); pCurType->SDTypeInfile.uName.StringTableIndex=DumpSDTypeName(pType); pUdtType->pData.DataMemberOffset=dwCurOffset; dwCurOffset+=DataLen; pUdtType->pFunction.FunctionMemberOffset=dwCurOffset; dwCurOffset+=FuncIDLen; pUdtType->pFriend.FriendMemberOffset=dwCurOffset; dwCurOffset+=FriendLen; pUdtType->pBaseClass.BaseClassMemberOffset=dwCurOffset; dwCurOffset+=BaseClassLen; pUdtType->pVTable.VTableMemberOffset=dwCurOffset; dwCurOffset+=VTableLen; gpFileIO->WriteFile(m_hFile,&pCurType->SDTypeInfile.Size,pType->SDTypeInfile.Size-(sizeof(SDTYPE)-sizeof(SDTYPE_INFILE))); if(pUdtType->DataCounter) gpFileIO->WriteFile(m_hFile,pOldUdtType->pData.pDataMember,DataLen); if(pUdtType->FunctionCounter) gpFileIO->WriteFile(m_hFile,pOldUdtType->pFunction.pFunctionMember,FuncIDLen); if(pUdtType->FriendCounter) gpFileIO->WriteFile(m_hFile,pOldUdtType->pFriend.pFriendMember,FriendLen); if(pUdtType->BaseClassCounter) gpFileIO->WriteFile(m_hFile,pOldUdtType->pBaseClass.pBaseClassMember,BaseClassLen); if(pUdtType->VTableCount) gpFileIO->WriteFile(m_hFile,pOldUdtType->pVTable.pVTableMember,VTableLen); delete []temp; return dwCurOffset; } DWORD CSourceDebug::DumpSDDataName(SDUDTDATAITEM* pUdtDataItem) { return DumpSDTypeName(pUdtDataItem->uName.Name); } DWORD CSourceDebug::DumpSDTypeName(SDTYPE* pType) { if(pType->SDTypeInfile.uName.Name==NULL||pType->SDTypeInfile.uName.Name[0]==0) return 0; return DumpSDTypeName(pType->SDTypeInfile.uName.Name); } DWORD CSourceDebug::DumpSDTypeName(char* Name) { DWORD NameLen; if(Name==NULL||Name[0]==0) return 0; NameLen = TStrLen(Name); if(NameLen+m_StringTableOffset+1 >= m_CurrentStringTableMaxLen) { DUMPSTRINGTABLEBLOCK DumpStringTableBlock; DumpStringTableBlock.BlockBaseAddress = m_StringTable; DumpStringTableBlock.EndOffset = m_StringTableOffset; DumpStringTableBlock.BeginOffset=m_StringTableBlockBeginOffset; m_StringDumpBlockList.push_back(DumpStringTableBlock); int Len = STRINGTABLEDUMPBLOCKSIZE - m_StringTableOffset % STRINGTABLEDUMPBLOCKSIZE + STRINGTABLEDUMPBLOCKSIZE; m_StringTable = new char[Len]; m_CurrentStringTableMaxLen+=STRINGTABLEDUMPBLOCKSIZE; m_StringTableBlockBeginOffset=m_StringTableOffset; } STRINGOFTABLE StringOfTable(Name); STRING_TO_ID_MAP::iterator FindIt=m_String2IDMap.find(StringOfTable); if(FindIt==m_String2IDMap.end()) { TStrCpy(m_StringTable-m_StringTableBlockBeginOffset+m_StringTableOffset,Name); StringOfTable.String=m_StringTable-m_StringTableBlockBeginOffset+m_StringTableOffset; m_String2IDMap.insert(STRING_TO_ID_MAP::value_type(StringOfTable,m_StringIndex)); m_StringIDVector.push_back(m_StringTableOffset); m_StringTableOffset=NameLen+1+m_StringTableOffset; m_StringIndex++; } else return FindIt->second; return m_StringIndex-1; } char *CSourceDebug::GetBaseTypeName1(DWORD BaseType,DWORD length) { int count = sizeof(BaseTypeNameStructArray)/sizeof(BaseTypeNameStructArray[0]); int i; if(BaseType==btInt) BaseType=length*0x80; if(BaseType==btUInt) BaseType=length*0x800; if(BaseType==btFloat&&length==8) BaseType=0x8000; for(i = 0; i < count;i++) if(BaseType==BaseTypeNameStructArray[i].Type) return BaseTypeNameStructArray[i].Name; return NULL; } char *CSourceDebug::MakeFunctionTypeName(IDiaSymbol*Symbol) { return NULL; } DWORD CSourceDebug::MakeSDType(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { DWORD SymTag; DWORD SelfReleaseFlags=1; DWORD dwRetSymbolID=NULLSYMBOLID; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=1; if(Symbol==NULL) return NULLSYMBOLID; if(FAILED(Symbol->get_symTag(&SymTag))) { CODE_ASSERT(0); return NULLSYMBOLID; } switch(SymTag) { case SymTagUDT: dwRetSymbolID = MakeSDUDTType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagEnum: dwRetSymbolID = MakeSDEnumType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagFunctionType: dwRetSymbolID = MakeSDFunctionType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagBaseClass: dwRetSymbolID = MakeSDBaseClassType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagPointerType: dwRetSymbolID = MakeSDPointerReferenceType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagArrayType: dwRetSymbolID = MakeSDArrayType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagBaseType: dwRetSymbolID = MakeSDBaseType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagCustomType: dwRetSymbolID = MakeSDCustomType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagManagedType: dwRetSymbolID = MakeSDManagedType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagTypedef: dwRetSymbolID = MakeSDTypeDefType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagFunction: dwRetSymbolID = MakeSDFunction(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagThunk: MakeSDThunk(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagFriend: MakeSDFriend(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagData: { DWORD dwDataKind; if(SUCCEEDED(Symbol->get_dataKind(&dwDataKind))) if(dwDataKind==DataIsFileStatic||dwDataKind==DataIsGlobal) MakeSDDataTagType(Symbol,&SelfReleaseFlags,pTypeRetrun); } break; /* case SymTagFunctionArgType: break; case SymTagCompiland: MakeSDCompiland(Symbol); break; case SymTagPublicSymbol: MakeSDPublicSymbol(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagVTableShape: //dwRetSymbolID = MakeSDVTableShapType(Symbol,&SelfReleaseFlags,pTypeRetrun); break; case SymTagVTable: { } break; */ default: break; } if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; return dwRetSymbolID; } DWORD CSourceDebug::MakeSDEXE(IDiaSymbol* Symbol) { BSTR Name=NULL; BSTR SymbolsFileName=NULL; DWORD TimeStamp=0; Symbol->get_name(&Name); m_PEFileName = new char [TStrLen(Name)+1]; TStrCpy(m_PEFileName,Name); Symbol->get_timeStamp(&TimeStamp); Symbol->get_symbolsFileName(&SymbolsFileName); m_PDBFileName = new char[TStrLen(SymbolsFileName)+1]; TStrCpy(m_PDBFileName,SymbolsFileName); LocalFree(Name); LocalFree(SymbolsFileName); return 0; } DWORD CSourceDebug::MakeSDVTable(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { IDiaSymbol* pSubsymbol=NULL,*pClassParent=NULL; DWORD SelfReleaseFlags=1; SDTYPE* pType; SDVTABLE* pSDVtable; DWORD dwSymTag=0; IDiaSymbol* NewType=NULL; DWORD NumbersEntriesVTable=0; if(ReleaseFlags) *ReleaseFlags=1; pType =(SDTYPE*) new char[sizeof(SDTYPE)+sizeof(SDVTABLE)]; memset(pType,0,sizeof(SDTYPE)+sizeof(SDVTABLE)); pType->SDTypeInfile.Size=sizeof(SDTYPE)+sizeof(SDVTABLE); pType->SDTypeInfile.Type=SD_VTABLE; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); pSDVtable = (SDVTABLE*)&pType[1]; if(SUCCEEDED(Symbol->get_type(&pSubsymbol))) { if(SUCCEEDED(pSubsymbol->get_symTag(&dwSymTag))) { if(dwSymTag==SymTagPointerType) { if(SUCCEEDED(pSubsymbol->get_type(&NewType))||NewType) { if(SUCCEEDED(NewType->get_symTag(&dwSymTag))) { if(dwSymTag==SymTagVTableShape) NewType->get_count(&NumbersEntriesVTable); } NewType->Release(); } } } pSubsymbol->Release(); } pSDVtable->NumbersEntriesVTable=NumbersEntriesVTable; if(SUCCEEDED(Symbol->get_classParent(&pClassParent))) pSDVtable->TypeIdParentUDT = MakeSDType(pClassParent,&SelfReleaseFlags,pTypeRetrun); if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } bool CSourceDebug::ModifyVTableName(char *Name) { int i = 0,j=0; bool bRet=false; char *pClass,*pStruct,*pSrcBegin,*pDestBegin,*pNewName; pStruct = TStrStr(Name,"struct "); pClass=TStrStr(Name,"class "); if(pStruct==NULL&&pClass==NULL) return true; pNewName = new char[TStrLen(Name)+1]; pNewName[0]=0; pSrcBegin=Name; pDestBegin=pNewName; while(pClass) { TStrNCpy(pDestBegin,pSrcBegin,*(DWORD*)&pClass-*(DWORD*)&pSrcBegin); pDestBegin=&pDestBegin[pClass-pSrcBegin]; pSrcBegin=&pClass[6]; pClass = TStrStr(pSrcBegin,"class "); bRet=true; }; if(bRet) { TStrCpy(pDestBegin,pSrcBegin); TStrCpy(Name,pNewName); pSrcBegin=Name; pDestBegin=pNewName; bRet=false; } while(pStruct = TStrStr(pSrcBegin,"struct ")) { TStrNCpy(pDestBegin,pSrcBegin,*(DWORD*)&pStruct-*(DWORD*)&pSrcBegin); pDestBegin=&pDestBegin[pStruct-pSrcBegin]; pSrcBegin=&pStruct[7]; bRet=true; }; if(bRet) { TStrCpy(pDestBegin,pSrcBegin); TStrCpy(Name,pNewName); pSrcBegin=Name; pDestBegin=pNewName; bRet=false; } delete []pNewName; return bRet; } DWORD CSourceDebug::MakeSDPublicSymbol(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { SDPUBLICSYMBOL SdPublicSymbol; DWORD Rav; bool bIsString=false; BOOL bRet; ULONGLONG Length; BSTR Name=NULL; int Len; memset(&SdPublicSymbol,0,sizeof(SDPUBLICSYMBOL)); if(SUCCEEDED(Symbol->get_undecoratedName(&Name))&&Name) { Len = TStrLen(Name)+1; SdPublicSymbol.uName.Name=new char[Len]; TStrCpy(SdPublicSymbol.uName.Name,Name); LocalFree(Name); if(TStrStr(SdPublicSymbol.uName.Name,"::`vftable'")!=0) { SdPublicSymbol.IsVftable=1; ModifyVTableName(SdPublicSymbol.uName.Name); }else if(TStrCmp(SdPublicSymbol.uName.Name,"`string'")==0) { SdPublicSymbol.IsString = 1; } } else return 0; bRet = FALSE; if(SUCCEEDED(Symbol->get_function(&bRet))) SdPublicSymbol.IsFunction = bRet?1:0; bRet = FALSE; if(SUCCEEDED(Symbol->get_managed(&bRet))) SdPublicSymbol.IsMangedCode = bRet?1:0; bRet = FALSE; if(SUCCEEDED(Symbol->get_code(&bRet))) SdPublicSymbol.IsInCode = bRet?1:0; bRet = FALSE; if(SUCCEEDED(Symbol->get_msil(&bRet))) SdPublicSymbol.IsMsil = bRet?1:0; if(SUCCEEDED(Symbol->get_relativeVirtualAddress(&Rav))) SdPublicSymbol.Rva=Rav; if(SUCCEEDED(Symbol->get_length(&Length))) SdPublicSymbol.Length=*(DWORD*)&Length; m_PublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva));// push_back(SdPublicSymbol); if(SdPublicSymbol.IsVftable==1) m_VTablePublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva));// push_back(SdPublicSymbol); return 0; } DWORD CSourceDebug::MakeSDFriend(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { BSTR Name=NULL; char* FriendName; PSDTYPE pType=NULL,pSubType=NULL; DWORD SelfReleaseFlags=1; IDiaSymbol* pUdtFriendType; PSDUDTFRIEND pUdtFriend; int Len; Len = sizeof(SDUDTFRIEND) + sizeof(SDTYPE); pType = (PSDTYPE)new char [Len]; memset(pType,0,Len); Symbol->get_name(&Name); FriendName = new char[TStrLen(Name)+1]; TStrCpy(FriendName,Name); LocalFree(Name); pUdtFriend = (PSDUDTFRIEND)&pType[1]; pType->SDTypeInfile.Type=SD_FRIEND; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; pType->SDTypeInfile.Size=Len; pType->SDTypeInfile.uName.Name=FriendName; m_CurrentSymbolIndex++; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); pUdtFriendType=NULL; if(FAILED(Symbol->get_type(&pUdtFriendType))||pUdtFriendType==NULL) return NULLSYMBOLID; pUdtFriend->TypdeId = MakeSDType(pUdtFriendType,&SelfReleaseFlags,&pSubType); if(SelfReleaseFlags) pUdtFriendType->Release(); if(pSubType) pUdtFriend->Type=pSubType->SDTypeInfile.Type; return pUdtFriend->TypdeId; } DWORD CSourceDebug::MakeSDThunk(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { BSTR Name=NULL; SDTYPE *pType; DWORD SelfReleaseFlags=1; DWORD Rav; DWORD Len; SDTHUNK * pThunk; ULONGLONG Length; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; if(FAILED(Symbol->get_relativeVirtualAddress(&Rav))) return NULLSYMBOLID; map ::iterator FindIt = m_ThunkIDMap.find(Rav); if(FindIt!=m_ThunkIDMap.end()) { pType=FindIt->second; if(pTypeRetrun) *pTypeRetrun = pType; return pType->SDTypeInfile.Id; } if(FAILED(Symbol->get_name(&Name))||Name==NULL) return NULLSYMBOLID; Len = sizeof(SDTHUNK)+sizeof(SDTYPE);//+TStrLen(Name)+1; pType=(SDTYPE*)new char[Len]; memset(pType,0,Len); pThunk=(SDTHUNK*)&pType[1]; pType->SDTypeInfile.uName.Name=new char[TStrLen(Name)+1]; TStrCpy(pType->SDTypeInfile.uName.Name,Name); LocalFree(Name); pType->SDTypeInfile.Size=sizeof(SDTHUNK)+sizeof(SDTYPE); Symbol->get_length(&Length); Symbol->get_thunkOrdinal(&pThunk->thunkOrdinal); pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); m_ThunkIDMap.insert(map::value_type(Rav,pType)); pThunk->Rva=Rav; pType->SDTypeInfile.TypeSize=*(DWORD*)&Length; pType->SDTypeInfile.Type=SD_THUNK; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDVTableShapType(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { IDiaSymbol* pCurSymbol=NULL,*pLexicalParent=NULL; ULONG celt; DWORD SymTag; IDiaEnumSymbols* EnumSymbols=NULL; BSTR Name=NULL; ULONGLONG length; if(SUCCEEDED(Symbol->get_type(&pCurSymbol))&&pCurSymbol) { DWORD LocalReleaseFlags=1; MakeSDType(pCurSymbol,&LocalReleaseFlags); if(LocalReleaseFlags) pCurSymbol->Release(); } if(Symbol->get_classParent(&pLexicalParent)==S_OK) { CODE_ASSERT(pLexicalParent->get_name(&Name)); } if(SUCCEEDED(Symbol->findChildren(SymTagNull,NULL,nsNone,&EnumSymbols))&&EnumSymbols) { while(EnumSymbols->Next(1,&pCurSymbol,&celt)&&celt==1) { if(FAILED(pCurSymbol->get_symTag(&SymTag))) continue; if(FAILED(pCurSymbol->get_name(&Name))) continue; if(FAILED(pCurSymbol->get_length(&length))) continue; pCurSymbol->Release(); pCurSymbol=NULL; } } return NULLSYMBOLID; } DWORD CSourceDebug::MakeSDCompiland(IDiaSymbol* Symbol) { DWORD SourceIndex = 0; IDiaSourceFile* SourceFile=NULL; SDCOMPILAND *pCompiland=NULL; SDSOURCEFILE* pSDSourceFile=NULL; ULONG celt=0,celt1=0; BSTR Name=NULL; LONG SourceFileCounter=0; static ULONGLONG lennumber=0; IDiaEnumSymbols * SymbolEnum=NULL; IDiaSymbol *curSymbol=NULL,*curSymbolType=NULL; IDiaEnumSourceFiles *EnumSourceFiles=NULL; IDiaEnumLineNumbers* EnumLineNumbers=NULL; NAMEANDIDPAIR CompilandNamePair; DWORD MinRva=0xffffffff,MaxRva=0; int Len; if(Symbol==NULL) return false; if(FAILED(Symbol->get_name(&Name))||Name==NULL) return 0; if(FAILED(m_DiaSession->findFile(Symbol,NULL,nsNone,&EnumSourceFiles))||EnumSourceFiles==NULL) { LocalFree(Name); return 0; } EnumSourceFiles->get_Count(&SourceFileCounter); Len = sizeof(SDCOMPILAND); if(SourceFileCounter) Len+=(SourceFileCounter-1)*sizeof(SDSOURCEFILE); pCompiland=(SDCOMPILAND*)new char [Len]; memset(pCompiland,0,Len); pCompiland->SourceFileCounter=SourceFileCounter; pSDSourceFile = (SDSOURCEFILE*)&pCompiland->SourceFile; pCompiland->uName.Name = new char[TStrLen(Name)+1]; TStrCpy(pCompiland->uName.Name,Name); LocalFree(Name); CompilandNamePair.Name=pCompiland->uName.Name; CompilandNamePair.Id=m_CurrentCompilandIndex; ID_TO_COMPILAND_NAME_MAP::iterator FindIt = m_IdToCompilandMap.find(CompilandNamePair); if(FindIt!=m_IdToCompilandMap.end()) { EnumSourceFiles->Release(); delete pCompiland->uName.Name; delete pCompiland; return 0; } pCompiland->CompilandId=m_CurrentCompilandIndex; m_IdToCompilandMap.insert(ID_TO_COMPILAND_NAME_MAP::value_type(CompilandNamePair,pCompiland)); m_CurrentCompilandIndex++; if(SourceFileCounter==0) { EnumSourceFiles->Release(); return 0; } while(SUCCEEDED(EnumSourceFiles->Next(1,&SourceFile,&celt))&&celt==1) { bool bInsert; BSTR fileName; DWORD debug; char* SourceFileName=NULL; NAMEANDIDPAIR SourceName2Id; DWORD UniqueId=0xffffffff; DWORD FileNameLen=0; fileName=NULL; if(SUCCEEDED(SourceFile->get_fileName(&fileName))&& fileName) { FileNameLen = TStrLen(fileName)+1; SourceFileName = new char[FileNameLen]; TStrCpy(SourceFileName,fileName); LocalFree(fileName); } else continue; SourceName2Id.Name=SourceFileName; SourceName2Id.Id=m_CurrentSourceFileIndex; ID_TO_SOURCE_FILE_NAME_MAP::iterator FindIt =m_IdToSourceFileNameMap.find(SourceName2Id); if(FindIt==m_IdToSourceFileNameMap.end()) { UniqueId=m_CurrentSourceFileIndex; bInsert=true; } else { UniqueId = FindIt->first.Id; delete []SourceFileName; bInsert=false; } if(SUCCEEDED(m_DiaSession->findLines(Symbol,SourceFile,&EnumLineNumbers))) { LONG dwLineCounter=0; if(SUCCEEDED(EnumLineNumbers->get_Count(&dwLineCounter))&&dwLineCounter) { SDLINE SDLine; IDiaLineNumber* LineNumber=NULL; while(SUCCEEDED(EnumLineNumbers->Next(1,&LineNumber,&celt1))&&celt1==1) { DWORD RAV=0; DWORD lineNumber=0; if(FAILED(LineNumber->get_relativeVirtualAddress(&RAV))) continue; BOOL bStatement=FALSE; if(FAILED(LineNumber->get_statement(&bStatement))) continue; if(bStatement==FALSE) debug=1; if(MinRva>RAV) MinRva=RAV; if(MaxRvaget_lineNumber(&lineNumber))) continue; DWORD Len; if(FAILED(LineNumber->get_length(&Len))) continue; SDLine.CompilandId=pCompiland->CompilandId; SDLine.Len=Len; SDLine.Rva=RAV; SDLine.Statement = bStatement ? 1 : 0; SDLine.LineNumber=lineNumber; SDLine.FileID=UniqueId; m_TotalLineNumber.push_back(SDLine); LineNumber->Release();LineNumber=NULL; } } EnumLineNumbers->Release(); pSDSourceFile[SourceIndex].LinesNumber=dwLineCounter; } pSDSourceFile[SourceIndex].FileID=UniqueId; SourceFile->Release(); SourceFile=NULL; if(pSDSourceFile[SourceIndex].LinesNumber) { if(bInsert) { m_IdToSourceFileNameMap.insert(ID_TO_SOURCE_FILE_NAME_MAP::value_type(SourceName2Id,m_CurrentSourceFileIndex)); m_CurrentSourceFileIndex++; } SourceIndex++; } else { if(bInsert==true) delete []SourceFileName; } } if(SourceIndex!=pCompiland->SourceFileCounter) pCompiland->SourceFileCounter=SourceIndex; pCompiland->MaxRva=MaxRva; pCompiland->MinRva=MinRva; EnumSourceFiles->Release(); return true; } int funcsamecount=0; DWORD CSourceDebug::MakeSDFunctionType(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { static int gFunctionCounter=0; SDTYPE *pType; SDFUNCTIONTYPE* ft; DWORD *TypeIDArgs=NULL; DWORD CallingConvention; DWORD len; IDiaSymbol * FunctionType; IDiaEnumSymbols* argTypesEnum; char *temppointer=NULL; LONG argcount = 0; int i =0; IDiaSymbol* diaCurArg; SD_SYMBOL_LIST::iterator beginIT,endIT; /* for(beginIT=m_FuncSymbolList.begin();beginIT!=m_FuncSymbolList.end();beginIT++) { HRESULT hr; IDiaSymbol* OldSymbol; OldSymbol=(IDiaSymbol*)beginIT->type->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) { if(ReleaseFlags) *ReleaseFlags=1; funcsamecount++; return beginIT->type->SDTypeInfile.Id; } } //*/ if(ReleaseFlags) *ReleaseFlags=0; if (FAILED(Symbol->findChildren(SymTagFunctionArgType, NULL, nsNone, &argTypesEnum))) return NULLSYMBOLID; if (FAILED(argTypesEnum->get_Count(&argcount))) return NULLSYMBOLID; len = sizeof(SDFUNCTIONTYPE)+sizeof(SDTYPE); if(argcount) len=len + sizeof(DWORD)*(argcount-1); pType = (SDTYPE*)new char[len]; memset(pType,0,len); ft =(SDFUNCTIONTYPE*) &pType[1]; pType->Self=ft; pType->SDTypeInfile.Size=len; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; pType->Symbol=Symbol; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); m_FuncSymbolList.push_back(sl); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); if(FAILED(Symbol->get_type(&FunctionType))||FunctionType==NULL) return NULLSYMBOLID; // Enumerate over them DWORD LocalReleaseFlags=1; ft->TypeIDReturnValue=MakeSDType(FunctionType,&LocalReleaseFlags); if(LocalReleaseFlags) FunctionType->Release(); FunctionType=NULL; if(FAILED(Symbol->get_objectPointerType(&FunctionType))) return NULLSYMBOLID; if(FunctionType) { LocalReleaseFlags=1; ft->TypeIDThisPointer=MakeSDType(FunctionType,&LocalReleaseFlags); if(LocalReleaseFlags) { FunctionType->Release(); FunctionType=NULL; } LONG ThisAdjust; Symbol->get_thisAdjust(&ThisAdjust); ft->ThisAdjust=ThisAdjust; } if(FAILED(Symbol->get_callingConvention(&CallingConvention))) return NULLSYMBOLID; ft->CallingConvention=CallingConvention; ft->ArgsCount=argcount; ULONG count=argcount; i=0; while(SUCCEEDED(argTypesEnum->Next(1, &diaCurArg, &count))&&count==1) { IDiaSymbol* curArgType; if (FAILED(diaCurArg->get_type(&curArgType))) return NULLSYMBOLID; DWORD LocalReleaseFlags=1; ft->TypeIDArgs[i]= MakeSDType(curArgType,&LocalReleaseFlags); if(LocalReleaseFlags) { curArgType->Release(); curArgType=NULL; } diaCurArg->Release(); diaCurArg=NULL; i++; } argTypesEnum->Release(); pType->SDTypeInfile.Type =SD_FUNCTIONTYPE; pType->SDTypeInfile.uName.Name=NULL; pType->Symbol=Symbol; gFunctionCounter++; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDUDTType(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { DWORD SelfReleaseFlags=1,dwSymTag,udtkind; IDiaEnumSymbols *EnumSymbols; IDiaSymbol* pCurSymbol; BSTR ClassName=NULL; char* name=NULL; char *name1=NULL; bool bUnnamed=false; SDTYPE *pType; ULONGLONG length=0; LONG count; ULONG celt; SDCLASSTYPE *ct; if(ReleaseFlags) *ReleaseFlags=1; if(pTypeRetrun) *pTypeRetrun=NULL; if(FAILED(Symbol->get_name(&ClassName))) return NULLSYMBOLID; name = new char[TStrLen(ClassName)+1]; TStrCpy(name,ClassName); CTempSymbol TempSymbol(name,0,0); if(IsUnnamedSDType(name)) { name1 = new char[TStrLen(ClassName)+10]; TStrCpy(name1,name); TSPrintf(name1+TStrLen(name),"_%08x",m_CurrentSymbolIndex); SD_SYMBOL_LIST::iterator beginIT,endIT; endIT = m_UnnamedUdtList.end(); for(beginIT=m_UnnamedUdtList.begin();beginIT!=endIT;beginIT++) { HRESULT hr; IDiaSymbol* OldSymbol; OldSymbol=(IDiaSymbol*)beginIT->type->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) { if(pTypeRetrun) *pTypeRetrun=beginIT->type; delete name1; delete name; return beginIT->type->SDTypeInfile.Id; } } delete []name; name = name1; bUnnamed=true; } else { m_TempSymbolIDIter = m_UDTSymbolID.find(TempSymbol); if(m_TempSymbolIDIter!=m_UDTSymbolID.end()) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(m_TempSymbolIDIter->second); delete []name; return (*m_TempSymbolIDIter).second; } } if(FAILED(Symbol->get_udtKind(&udtkind))) return NULLSYMBOLID; if(FAILED(Symbol->get_length(&length))) return NULLSYMBOLID; if(FAILED(Symbol->get_symTag(&dwSymTag))) return NULLSYMBOLID; int NewSize =sizeof(SDTYPE)+sizeof(SDCLASSTYPE); pType = (SDTYPE*)new char[NewSize]; memset(pType,0,sizeof(SDTYPE)); pType->SDTypeInfile.uName.Name = name; LocalFree(ClassName); switch(udtkind) { case UdtClass: pType->SDTypeInfile.Type=SD_CLASS; break; case UdtStruct: pType->SDTypeInfile.Type=SD_STRUCT; break; case UdtUnion: pType->SDTypeInfile.Type=SD_UNION; } pType->SDTypeInfile.TypeSize=*(DWORD*)&length; ct =(SDCLASSTYPE*)&pType[1]; memset(ct,0,sizeof(SDCLASSTYPE)); //ct->IsUnnamed=bUnnamed?1:0; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; pType->Self=ct; pType->SDTypeInfile.Size=NewSize; SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; if(bUnnamed) { m_UnnamedUdtList.push_back(sl); ct->IsUnnamed=1; pType->Symbol=Symbol; if(ReleaseFlags) *ReleaseFlags=0; } //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); TempSymbol.SetSDType(pType,name); m_UDTSymbolID.insert(SYMBOL_ID_MAP::value_type(TempSymbol,pType->SDTypeInfile.Id)); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); BOOL bValue=FALSE; if(SUCCEEDED(Symbol->get_scoped(&bValue))) ct->IsScoped=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_nested(&bValue))) ct->IsNested=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_packed(&bValue))) ct->IsPacked=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_overloadedOperator(&bValue))) ct->HasOverloadedOperator=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_hasAssignmentOperator(&bValue))) ct->HasAssignmentOperator=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_hasCastOperator(&bValue))) ct->HasCastOperator=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_hasNestedTypes(&bValue))) ct->HasNestedTypes=bValue?1:0; bValue=FALSE; if(SUCCEEDED(Symbol->get_constructor(&bValue))) ct->IsConstructor=bValue?1:0; EnumSymbols=NULL; /* if(FAILED(Symbol->findChildren(SymTagVTable,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULLSYMBOLID; LONG VTableCount=0; if(SUCCEEDED(EnumSymbols->get_Count(&VTableCount))) if(VTableCount>1) CODE_ASSERT(0); pCurSymbol=NULL; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { DWORD VTableSize=0; IDiaSymbol *pVTableShape=NULL; if(SUCCEEDED(pCurSymbol->get_type(&pVTableShape)&&pVTableShape)) { char *vtablename; if(SUCCEEDED(pVTableShape->get_count(&VTableSize))) { if(VTableSize) ct->VTableSize=VTableSize; } PUBLIC_SYMBOL_LIST::iterator BeginIt,EndIt; BeginIt=m_VTablePublicSymbolList.begin(); EndIt=m_VTablePublicSymbolList.end(); for(;BeginIt!=EndIt;BeginIt++) { vtablename=(*BeginIt).uName.Name; char*vtablename1 = TStrStr(vtablename,pType->SDTypeInfile.uName.Name); if(vtablename1) { if(TStrNCmp(&vtablename1[TStrLen(pType->SDTypeInfile.uName.Name)],"::`vftable'",TStrLen("::`vftable'"))==0) { ct->VTableRVA=(*BeginIt).Rva; ct->VTableSize=(*BeginIt).Length; } } } if(ct->VTableRVA==0) ct->VTableRVA=0xffffffff; pVTableShape->Release(); } pCurSymbol->Release(); } EnumSymbols->Release(); EnumSymbols=NULL; */ if(FAILED(Symbol->findChildren(SymTagBaseClass,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULLSYMBOLID; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count!=0) { DWORD *BaseClassTypeID = new DWORD[count]; int i = 0; pCurSymbol=NULL; //static BaseClassCountttt=0; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { DWORD id; DWORD LocalReleaseFlags=1; id = MakeSDType(pCurSymbol,&LocalReleaseFlags); if(id==NULLSYMBOLID) { BaseClassTypeID[i]=NULLSYMBOLID; } else { BaseClassTypeID[i]=id; SDTYPE *pSubType = GetSDTypeBySymbolID(id); SDUDTBASECLASS* pSubBaseClass = (SDUDTBASECLASS*)pSubType->Self; pSubBaseClass->TypeIDParent=pType->SDTypeInfile.Id; } if(LocalReleaseFlags) { pCurSymbol->Release(); pCurSymbol=NULL; } i++; } //BaseClassCountttt++; //OutputDebugStr(pType->SDTypeInfile.uName.Name); //OutputDebugStr("\n"); ct->pBaseClass.pBaseClassMember=BaseClassTypeID; ct->BaseClassCounter=count; } else { ct->BaseClassCounter=0; ct->pBaseClass.pBaseClassMember=NULL; } EnumSymbols->Release(); char *vtablename; PUBLIC_SYMBOL_MAP::iterator BeginIt,EndIt; PSDUDTVIRTUALTABLE pUdtVTable=new SDUDTVIRTUALTABLE[(ct->BaseClassCounter>1)?ct->BaseClassCounter:1]; memset(pUdtVTable,0, sizeof(SDUDTVIRTUALTABLE)*(ct->BaseClassCounter>1)?ct->BaseClassCounter:1);// pType->SDTypeInfile.Id,0,) BeginIt=m_VTablePublicSymbolList.begin(); int VTableIndex=0; EndIt=m_VTablePublicSymbolList.end(); for(;BeginIt!=EndIt;BeginIt++) { vtablename=(*BeginIt).first.uName.Name; char* vtablename1 = TStrStr(vtablename,pType->SDTypeInfile.uName.Name); char* bcbegin,*bcend; if(vtablename1) { if(TStrNCmp(&vtablename1[TStrLen(pType->SDTypeInfile.uName.Name)],"::`vftable'",11)==0) { //ct->VTableRVA=(*BeginIt).first.Rva; //ct->VTableSize=(*BeginIt).first.Length; ct->HasVirtualTable=1; pUdtVTable[VTableIndex].VTableSize=(*BeginIt).first.Length; pUdtVTable[VTableIndex].VTableRVA=(*BeginIt).first.Rva; if(ct->BaseClassCounter>1) { bcbegin = TStrStr(vtablename,"::`vftable'{for `"); if(bcbegin) { bcbegin=bcbegin+17; bcend = TStrChr(bcbegin,'\''); for(DWORD kk=0;kkBaseClassCounter;kk++) { SDTYPE *pSubbcType = GetSDTypeBySymbolID(ct->pBaseClass.pBaseClassMember[kk]); SDUDTBASECLASS* pSubbc = (SDUDTBASECLASS*)pSubbcType->Self; pSubbcType = GetSDTypeBySymbolID(pSubbc->TypeID); if(TStrNCmp(pSubbcType->SDTypeInfile.uName.Name,bcbegin, *(int*)&bcend - *(int*)&bcbegin)==0) { pUdtVTable[VTableIndex].VTBaseClassTypeID=pSubbc->TypeID; } } } //find baseclassindex } else pUdtVTable[VTableIndex].VTBaseClassTypeID= pType->SDTypeInfile.Id; VTableIndex++; //m_VTablePublicSymbolList.erase(BeginIt); break; } } } ct->VTableCount=VTableIndex; if(VTableIndex) { ct->VTableCount=VTableIndex; ct->pVTable.pVTableMember=pUdtVTable; } else { ct->VTableCount=0; ct->pVTable.pVTableMember=NULL; delete []pUdtVTable; } EnumSymbols=NULL; if(FAILED(Symbol->findChildren(SymTagFunction,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULLSYMBOLID; count=0; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count!=0) { DWORD *pFunctionData = new DWORD[count]; int i = 0; pCurSymbol=NULL; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { SDTYPE* pLocalTypeReturn=NULL; DWORD LocalReleaseFlags=1; pFunctionData[i]=MakeSDFunction(pCurSymbol,&LocalReleaseFlags,&pLocalTypeReturn); if(LocalReleaseFlags) { pCurSymbol->Release(); pCurSymbol=NULL; } if(pFunctionData[i]==0) continue; ((PSDFUNCTIONITEM)pLocalTypeReturn)->TypeIDParentUDT=pType->SDTypeInfile.Id; i++; } if(i>1) { sort(pFunctionData,&pFunctionData[i]); unique(pFunctionData,&pFunctionData[i]); count=i; for(i = 0; i < count-1;i++) if(pFunctionData[i]>=pFunctionData[i+1]) break; i++; } ct->FunctionCounter=i; ct->pFunction.pFunctionMember=pFunctionData; } else { ct->pFunction.pFunctionMember=NULL; ct->FunctionCounter=0; } EnumSymbols->Release(); EnumSymbols=NULL; if(FAILED(Symbol->findChildren(SymTagData,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULL; count=0; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count!=0) { ct->DataCounter=count; ct->pData.pDataMember = new DWORD[count]; memset(ct->pData.pDataMember,0,sizeof(DWORD)*count); int i =0; pCurSymbol=NULL; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { SDUDTDATAITEM* pUdtDataItem; SDTYPE* pReturnType; ct->pData.pDataMember[i]=MakeSDDataTagType(pCurSymbol,NULL,&pReturnType); if(pReturnType) { pUdtDataItem = (SDUDTDATAITEM*)pReturnType; if(pUdtDataItem) { pUdtDataItem->TypeIdParentUDT=pType->SDTypeInfile.Id; PSDTYPE pUdtDataType = GetSDTypeBySymbolID(pUdtDataItem->TypeId); if(pUdtDataType->SDTypeInfile.Type==SD_CLASS||pUdtDataType->SDTypeInfile.Type==SD_STRUCT||pUdtDataType->SDTypeInfile.Type==SD_UNION) { PSDCLASSTYPE pSubCt=(PSDCLASSTYPE)&pUdtDataType[1]; if(pSubCt&&pSubCt->IsUnnamed) pSubCt->IsNestedUnnamed=1; } } } pCurSymbol->Release(); pCurSymbol=NULL; i++; } } else { ct->DataCounter=0; ct->pData.pDataMember=NULL; } EnumSymbols->Release(); EnumSymbols=NULL; if(FAILED(Symbol->findChildren(SymTagFriend,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULL; count=0; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count!=0) { DWORD* pFriendData=new DWORD[count]; memset(pFriendData,0,sizeof(DWORD)*count); int i =0; pCurSymbol=NULL; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { SDTYPE* pLocalTypeReturn=NULL; DWORD LocalReleaseFlags=1; ct->pFriend.pFriendMember[i]=MakeSDFunction(pCurSymbol,&LocalReleaseFlags,&pLocalTypeReturn); if(LocalReleaseFlags) { pCurSymbol->Release(); pCurSymbol=NULL; } if(ct->pFriend.pFriendMember[i]==0) continue; i++; } if(i>1) { sort(pFriendData,&pFriendData[i]); unique(pFriendData,&pFriendData[i]); count=i; for(i = 0; i < count-1;i++) if(pFriendData[i]>=pFriendData[i+1]) break; i++; } ct->FriendCounter=count; ct->pFriend.pFriendMember=pFriendData; } else { ct->FriendCounter=0; ct->pFriend.pFriendMember=NULL; } EnumSymbols->Release(); EnumSymbols=NULL; /* if(FAILED(Symbol->findChildren(SymTagUDT,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) return NULL; count=0; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count!=0) { while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { SDTYPE* pReturnType=NULL; DWORD LocalReleaseFlags1=1; MakeSDType(pCurSymbol,&LocalReleaseFlags1,&pReturnType); if(pReturnType) { PSDCLASSTYPE pUDT = (PSDCLASSTYPE)pReturnType->Self; pUDT->TypeIdParentUDT=pType->SDTypeInfile.Id; } if(LocalReleaseFlags1) pCurSymbol->Release(); } } IDiaSymbol*ParentUDTType=NULL; if(SUCCEEDED(Symbol->get_lexicalParent(&ParentUDTType))&&ParentUDTType) { DWORD LocalReleaseFlags1=1; ct->TypeIdParentUDT=MakeSDType(ParentUDTType,&LocalReleaseFlags1); if(ct->TypeIdParentUDT) ct->TypeIdParentUDT=0; if(LocalReleaseFlags1) ParentUDTType->Release(); } */ if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } bool CSourceDebug::SetUDTDataItem(SDUDTDATAITEM* pUdtDataItem,IDiaSymbol* Symbol) { LONG offset; switch(pUdtDataItem->Location) { case LocIsNull: break; case LocIsStatic: Symbol->get_relativeVirtualAddress(&pUdtDataItem->u.LOCISSTATIC.Rva); break; case LocIsTLS: Symbol->get_addressSection(&pUdtDataItem->u.LOCISTLS.AddressSection); Symbol->get_addressOffset(&pUdtDataItem->u.LOCISTLS.AddressOffset); break; case LocIsRegRel: Symbol->get_registerId(&pUdtDataItem->u.LOCISREGREL.Register); Symbol->get_offset(&offset); pUdtDataItem->u.LOCISREGREL.Offset=offset; break; case LocIsThisRel: Symbol->get_offset(&offset); pUdtDataItem->u.LOCISTHISREL.Offset=offset; break; case LocIsEnregistered: ////////////////////////////////////////////////////////////////////////// // LocIsEnregistered͵ıget_registerId صĻź // ĻǴ1 Ҫ 1 // ////////////////////////////////////////////////////////////////////////// Symbol->get_registerId(&pUdtDataItem->u.LOCISENREGISTERED.Register); pUdtDataItem->u.LOCISENREGISTERED.Register=pUdtDataItem->u.LOCISENREGISTERED.Register-1; break; case LocIsBitField: { ULONGLONG val=0; Symbol->get_bitPosition(&pUdtDataItem->u.LOCISBITFIELD.Position); Symbol->get_length(&val); Symbol->get_offset(&offset); pUdtDataItem->u.LOCISBITFIELD.Size=*(DWORD*)&val; pUdtDataItem->u.LOCISBITFIELD.Offset=*(DWORD*)&offset; } break; case LocIsSlot: Symbol->get_slot(&pUdtDataItem->u.LOCISLOT.Slot); break; case LocIsIlRel: Symbol->get_offset(&offset); pUdtDataItem->u.LOCISLREL.Offset=offset; break; case LocInMetaData: Symbol->get_token(&pUdtDataItem->u.LOCINMETADATA.Token); break; case LocIsConstant: { LONGLONG valueL=0; VARIANT value; memset(&value,0,sizeof(VARIANT)); Symbol->get_value(&value); switch(value.vt) { case VT_UI1: valueL = value.bVal; break; case VT_UI2: valueL = value.uiVal; break; case VT_UI4: valueL = value.ulVal; break; case VT_UINT: valueL = value.uintVal; break; case VT_UI8:valueL=value.ullVal; break; case VT_INT: valueL = value.intVal; break; case VT_I1: valueL = value.cVal; break; case VT_I2: valueL = value.iVal; break; case VT_I4: valueL = value.lVal; break; case VT_I8: valueL = value.llVal; break; case VT_ERROR:valueL=0;break; default: CODE_ASSERT(0); break; } pUdtDataItem->u.LOCISCONSTSNT.llValue =valueL; /* SDCONSTVAR ConstVar; memset(&ConstVar,0,sizeof(SDCONSTVAR)); ConstVar.Name=pUdtDataItem->uName.Name; ConstVar.u.llValue=valueL; CONST_VAR_MAP::iterator findit= m_ConstVarMap.find(ConstVar); if(findit!=m_ConstVarMap.end()) { m_ConstVarMap.insert(CONST_VAR_MAP::value_type(ConstVar,0)); } */ } break; case LocTypeMax: break; default: break; } return true; } PREDEFINEBASETYPE gPreDefineBaseType[]= { {1*0x80,1,"char"}, {2*0x80,2,"short"}, {4*0x80,4,"int"}, {8*0x80,8,"__int64"}, {1*0x800,1,"unsigned char"}, {2*0x800,2,"unsigned short"}, {4*0x800,4,"unsigned int"}, {8*0x800,8,"unsigned __int64"}, {btLong,4,"long"}, {btULong,4,"unsigned long"}, }; void CSourceDebug::MakePredefineSDBaseType() { SYMBOLBASETYPE LBaseTypeAttribut; SDTYPE* pType; SDBASETYPE *bt=NULL; char *name=NULL; int i; for(i = 0;iSDTypeInfile.uName.Name = new char[TStrLen(gPreDefineBaseType[i].Name)+1]; TStrCpy(pType->SDTypeInfile.uName.Name,gPreDefineBaseType[i].Name); pType->SDTypeInfile.Size=sizeof(SDTYPE); pType->Self=NULL; pType->SDTypeInfile.Type=SD_BASIC; pType->SDTypeInfile.TypeSize=*(DWORD*)&LBaseTypeAttribut.Length; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; m_BaseTypeID.insert(BASE_TYPE_ID_MAP::value_type(LBaseTypeAttribut,pType->SDTypeInfile.Id)); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); } } DWORD CSourceDebug::MakeSDBaseType(IDiaSymbol* Symbol, DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SYMBOLBASETYPE LBaseTypeAttribut; SDTYPE* pType; SDBASETYPE *bt=NULL; char *name=NULL; pType = NULL; if(ReleaseFlags) *ReleaseFlags=1; if(pTypeRetrun) *pTypeRetrun=NULL; LBaseTypeAttribut.baseType=0,LBaseTypeAttribut.Length=0; if(FAILED(Symbol->get_baseType(&LBaseTypeAttribut.baseType))) return NULLSYMBOLID; if(FAILED(Symbol->get_length(&LBaseTypeAttribut.Length))) return NULLSYMBOLID; name = GetBaseTypeName1(LBaseTypeAttribut.baseType,*(DWORD*)&LBaseTypeAttribut.Length); BASE_TYPE_ID_MAP::iterator TempMapIter; TempMapIter = m_BaseTypeID.find(LBaseTypeAttribut); if(TempMapIter!=m_BaseTypeID.end()) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(TempMapIter->second); return TempMapIter->second; } pType = new SDTYPE; memset(pType,0,sizeof(SDTYPE)); pType->SDTypeInfile.uName.Name = new char[TStrLen(name)+1]; TStrCpy(pType->SDTypeInfile.uName.Name,name); pType->SDTypeInfile.Size=sizeof(SDTYPE); pType->Self=NULL; pType->SDTypeInfile.Type=SD_BASIC; pType->SDTypeInfile.TypeSize=*(DWORD*)&LBaseTypeAttribut.Length; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; pType->Symbol=NULL; m_BaseTypeID.insert(BASE_TYPE_ID_MAP::value_type(LBaseTypeAttribut,pType->SDTypeInfile.Id)); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDBaseClassType(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { DWORD SelfReleaseFlags=1; SDUDTBASECLASS *pUdtBaseClass; SDTYPE *pType; DWORD TypeLen; BSTR Name; IDiaSymbol* BaseClassType=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; SD_SYMBOL_LIST::iterator beginIT,endIT; for(beginIT=m_BaseClassList.begin();beginIT!=m_BaseClassList.end();beginIT++) { HRESULT hr; SDTYPE *pCurType,*pSubType; SDUDTBASECLASS*pUdtBaseClass; IDiaSymbol* OldSymbol; pCurType=beginIT->type; pUdtBaseClass = (SDUDTBASECLASS*)pCurType->Self; pSubType = GetSDTypeBySymbolID(pUdtBaseClass->TypeID); OldSymbol=(IDiaSymbol*)pCurType->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) return beginIT->type->SDTypeInfile.Id; } Name=NULL; if(FAILED(Symbol->get_name(&Name))||Name==NULL) return NULLSYMBOLID; TypeLen = sizeof(SDTYPE)+sizeof(SDUDTBASECLASS); pType =(SDTYPE*) new char[TypeLen]; pUdtBaseClass = (SDUDTBASECLASS*)&pType[1]; memset(pType,0,TypeLen); pType->SDTypeInfile.Size=TypeLen; pType->SDTypeInfile.Type=SD_BASECLASS; pType->Symbol=Symbol; pType->SDTypeInfile.uName.Name = new char [TStrLen(Name)+1]; TStrCpy(pType->SDTypeInfile.uName.Name,Name); pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; pType->Self=pUdtBaseClass; SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); m_BaseClassList.push_back(sl); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); if(FAILED(Symbol->get_type(&BaseClassType))||BaseClassType==NULL) return NULLSYMBOLID; SDTYPE* pCurType=NULL; DWORD LocalReleaseFlags=1; pUdtBaseClass->TypeID=MakeSDType(BaseClassType,&LocalReleaseFlags,&pCurType); if(pCurType) pType->SDTypeInfile.TypeSize = pCurType->SDTypeInfile.TypeSize; if(LocalReleaseFlags) BaseClassType->Release(); BOOL bVirtual=false; if(FAILED(Symbol->get_virtualBaseClass(&bVirtual))) return NULLSYMBOLID; pUdtBaseClass->bIsVirtual = bVirtual?true:false; bVirtual=false; if(FAILED(Symbol->get_indirectVirtualBaseClass(&bVirtual))) return NULLSYMBOLID; pUdtBaseClass->bIsIndirectBaseClass = bVirtual?true:false; LONG Off=0xffffffff; if(FAILED(Symbol->get_offset(&Off))) return NULLSYMBOLID; pUdtBaseClass->Offset=Off; DWORD DispIndex=0xffffffff; if(FAILED(Symbol->get_virtualBaseDispIndex(&DispIndex))) return NULLSYMBOLID; pUdtBaseClass->VirtualBaseDispIndex=DispIndex; if(FAILED(Symbol->get_virtualBasePointerOffset(&Off))) return NULLSYMBOLID; DWORD dwAccess=0xffffffff; if(FAILED(Symbol->get_access(&dwAccess))) return NULLSYMBOLID; pUdtBaseClass->Access=dwAccess; pUdtBaseClass->VirtualBasePointerOffset=Off; SelfReleaseFlags=0; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDDataTagType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { BSTR TypeName=NULL; DWORD dwDataKind; SDUDTDATAITEM*pDataMember; IDiaSymbol *DataType; DWORD TypeLen; DWORD typeID; bool bThisObjectPtr=false; DWORD Local1ReleaseFlags; SDTYPE* pTypeReturn=NULL; LONG off=0; THISOBJECTPTR CurThis; DWORD Location; DWORD Access=0; BOOL bConstType=FALSE,bVolatileType=FALSE;; if(pTypeRetrun) *pTypeRetrun=NULL; if(FAILED(Symbol->get_dataKind(&dwDataKind))) { CODE_ASSERT(0); return NULLSYMBOLID; } if(FAILED(Symbol->get_name(&TypeName))) { CODE_ASSERT(0); return NULLSYMBOLID; } if(TStrICmp("PsLoadedmodulelist",TypeName)==0) Access=0; if(dwDataKind==DataIsStaticLocal) { if(TStrCmp(TypeName,"")==0) { LocalFree(TypeName); return NULLSYMBOLID; } } if(FAILED(Symbol->get_locationType(&Location))) { CODE_ASSERT(0); return NULLSYMBOLID; } if(TStrCmp(TypeName,"this")==0&&Location==LocIsEnregistered) { CurThis.dataKind=dwDataKind; if(FAILED(Symbol->get_registerId(&CurThis.Register))) { CODE_ASSERT(0); return NULLSYMBOLID; } ////////////////////////////////////////////////////////////////////////// // LocIsEnregistered͵ıget_registerId صĻź // ĻǴ1 Ҫ 1 // ////////////////////////////////////////////////////////////////////////// CurThis.Register=CurThis.Register-1; THIS_OBJECT_PTR_LIST::iterator FindIt=find(m_ThisObjectPtrList.begin(),m_ThisObjectPtrList.end(),CurThis); if(FindIt!=m_ThisObjectPtrList.end()) { if(pTypeRetrun) *pTypeRetrun=(SDTYPE*)FindIt->pUdtDataItem; return FindIt->DataId; } bThisObjectPtr=true; } Symbol->get_constType(&bConstType); Symbol->get_volatileType(&bVolatileType); TypeLen = sizeof(SDUDTDATAITEM)+TStrLen(TypeName)+1; pDataMember =(SDUDTDATAITEM*) new char [TypeLen]; memset(pDataMember,0,TypeLen); pDataMember->DataId=m_CurrentDataSymbolIndex; m_CurrentDataSymbolIndex++; pDataMember->uName.Name=(char *)&pDataMember[1]; pDataMember->KindData=dwDataKind; TStrCpy(pDataMember->uName.Name,TypeName); LocalFree(TypeName); if(Location==LocIsStatic) { SDPUBLICSYMBOL psdp; Symbol->get_relativeVirtualAddress(&psdp.Rva); PUBLIC_SYMBOL_MAP::iterator FindIt; FindIt = m_PublicSymbolList.find(psdp); if(FindIt!=m_PublicSymbolList.end()) { delete [](*FindIt).first.uName.Name; m_PublicSymbolList.erase(FindIt); } STATICDATA StaticData; StaticData.Name=pDataMember->uName.Name; StaticData.Rva=psdp.Rva; STATIC_DATA_MAP::iterator It = m_StaticDataMap.find(StaticData); if(It!=m_StaticDataMap.end()) { m_CurrentDataSymbolIndex--; delete []pDataMember; if(pTypeRetrun) *pTypeRetrun=(SDTYPE*)m_DataTagVector[It->second]; return It->second; } m_StaticDataMap.insert(STATIC_DATA_MAP::value_type(StaticData,pDataMember->DataId)); } Symbol->get_access(&Access); pDataMember->Access=Access; m_DataTagVector.push_back(pDataMember); pDataMember->IsConstType=bConstType?1:0; pDataMember->IsVolatileType=bVolatileType?1:0; if(bThisObjectPtr) { CurThis.DataId=pDataMember->DataId; CurThis.pUdtDataItem=pDataMember; m_ThisObjectPtrList.push_back(CurThis); } DataType=NULL; if(SUCCEEDED(Symbol->get_type(&DataType))&&DataType!=NULL) { Local1ReleaseFlags=1; typeID=MakeSDType(DataType,&Local1ReleaseFlags,&pTypeReturn); if(pTypeReturn) { pDataMember->DataSize = pTypeReturn->SDTypeInfile.TypeSize; } pDataMember->TypeId=typeID; if(Local1ReleaseFlags) DataType->Release(); }else { if(dwDataKind==DataIsConstant) { pDataMember->DataSize=4; pDataMember->TypeId=0; } else { pDataMember->DataSize=0; pDataMember->TypeId=0; } } pDataMember->Location=Location; SetUDTDataItem(pDataMember,Symbol); //if(pDataMember->Location==LocIsStatic) // m_StaticVariable.push_back(pDataMember->u.LOCISSTATIC.Rav); IDiaSymbol*ParentUDTType=NULL; if(SUCCEEDED(Symbol->get_classParent(&ParentUDTType))&&ParentUDTType) { DWORD LocalReleaseFlags1=1; pDataMember->TypeIdParentUDT=MakeSDType(ParentUDTType,&LocalReleaseFlags1); if(LocalReleaseFlags1) ParentUDTType->Release(); } if(pTypeRetrun) *pTypeRetrun=(SDTYPE*)pDataMember; return pDataMember->DataId; } DWORD CSourceDebug::MakeSDFunction(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { ULONGLONG length; BSTR FuncName=NULL; bool bIsThunk=false; SDTYPE*pType=NULL; DWORD TypeLen; BOOL bValue; DWORD Rav=0; DWORD Access; if(pTypeRetrun) *pTypeRetrun=NULL; if(m_CurrentFunctionSymbolIndex==0x40c) m_CurrentFunctionSymbolIndex=0x40c; if(FAILED(Symbol->get_relativeVirtualAddress(&Rav))) return NULLSYMBOLID; if(Rav==0) return NULLSYMBOLID; if(FAILED(Symbol->get_name(&FuncName))||FuncName==NULL) return NULLSYMBOLID; if(FAILED(Symbol->get_length(&length))) { LocalFree(FuncName); return NULLSYMBOLID; } char* name = new char [TStrLen(FuncName)+1]; TStrCpy(name,FuncName); LocalFree(FuncName); SDFUNCTIONITEM* pFunctionItem; STFUNCTIONID FunctionID; FunctionID.Name=name; FunctionID.Rva = Rav; FUNCTION_ID_MAP::iterator FindIT; FindIT = m_FuntionID.find(FunctionID); if(FindIT!=m_FuntionID.end()) { SDFUNCTIONITEM* pFuncItem = (*FindIT).first.pFuncItem; if(pTypeRetrun) *pTypeRetrun= (PSDTYPE)pFuncItem; delete []name; return pFuncItem->ID; } { SDPUBLICSYMBOL psdp; psdp.Rva=Rav; PUBLIC_SYMBOL_MAP::iterator FindIt; FindIt = m_PublicSymbolList.find(psdp); if(FindIt!=m_PublicSymbolList.end()) { delete [](*FindIt).first.uName.Name; m_PublicSymbolList.erase(FindIt); } } TypeLen = sizeof(SDFUNCTIONITEM); pFunctionItem =(SDFUNCTIONITEM*) new char[TypeLen]; memset(pFunctionItem,0,TypeLen); pFunctionItem->Rva=Rav; if(Rav) m_FunctionRavList.push_back(Rav); pFunctionItem->uName.Name=name; pFunctionItem->Size=*(DWORD*)&length; pFunctionItem->ID = m_CurrentFunctionSymbolIndex; m_CurrentFunctionSymbolIndex++; FunctionID.pFuncItem = pFunctionItem; m_FuntionID.insert(FUNCTION_ID_MAP::value_type(FunctionID,pFunctionItem->ID)); //m_FuntionID.push_back(FunctionID); IDiaFrameData* pFrameData=NULL; if(SUCCEEDED(m_GlobalEnumFrameData->frameByRVA(Rav,&pFrameData))&&pFrameData) { BOOL dwSymtemException=FALSE; if(SUCCEEDED(pFrameData->get_systemExceptionHandling(&dwSymtemException))) pFunctionItem->IsSystemExceptionHandling=dwSymtemException?1:0; dwSymtemException=FALSE; if(SUCCEEDED(pFrameData->get_cplusplusExceptionHandling(&dwSymtemException))) pFunctionItem->IsCplusplusExceptionHandling=dwSymtemException?1:0; pFrameData->Release(); pFrameData=NULL; } if(pTypeRetrun) { *pTypeRetrun=(PSDTYPE)pFunctionItem; } if(FAILED(Symbol->get_access(&Access))) return NULLSYMBOLID; pFunctionItem->Access=Access; Access=0; if(FAILED(Symbol->get_locationType(&Access))) return NULLSYMBOLID; pFunctionItem->Location=Access; pFunctionItem->Size=*(DWORD*)&length; pFunctionItem->IsThunk=bIsThunk; BOOL bIsVirtual=false; if(FAILED(Symbol->get_virtual(&bIsVirtual))) return NULLSYMBOLID; if(bIsVirtual) { DWORD dwVirtualBaseOffset=0xffffffff; if(FAILED(Symbol->get_virtualBaseOffset(&dwVirtualBaseOffset))) return NULLSYMBOLID; pFunctionItem->IsVirtual=true; pFunctionItem->VirtualBaseOffset=dwVirtualBaseOffset; } bValue=FALSE; Symbol->get_pure(&bValue); pFunctionItem->IsPure=bValue?1:0; bValue=FALSE; Symbol->get_intro(&bValue); pFunctionItem->IsIntro=bValue?1:0; IDiaEnumSymbols *EnumSymbols=NULL; if(SUCCEEDED(Symbol->findChildren(SymTagFuncDebugEnd,NULL,nsNone,&EnumSymbols))&&EnumSymbols) { ULONG celt; IDiaSymbol* pCurSymbol; LONG count=0; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count==1) { if(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) { pCurSymbol->get_relativeVirtualAddress(&pFunctionItem->DebugEnd); pCurSymbol->Release(); pCurSymbol = NULL; } } EnumSymbols->Release(); EnumSymbols=NULL; } if(SUCCEEDED(Symbol->findChildren(SymTagFuncDebugStart,NULL,nsNone,&EnumSymbols))&&EnumSymbols) { ULONG celt; IDiaSymbol* pCurSymbol; LONG count=0; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count==1) { if(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) { pCurSymbol->get_relativeVirtualAddress(&pFunctionItem->DebugStart); pCurSymbol->Release(); pCurSymbol = NULL; } } EnumSymbols->Release(); EnumSymbols=NULL; } if(SUCCEEDED(Symbol->findChildren(SymTagBlock,NULL,nsNone,&EnumSymbols))&&EnumSymbols) { ULONG celt; IDiaSymbol* pCurSymbol; LONG count=0; list FuncBlock; list::iterator BeginIt,EndIt; size_t Size; int i = 0; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) { MakeSDBlock(pCurSymbol,&FuncBlock); pCurSymbol->Release(); i++; } Size = FuncBlock.size(); count = *(LONG*)&Size; if(count>=1) { pFunctionItem->pBlock.pBlockTypeIdArray=new DWORD[count]; memset(pFunctionItem->pBlock.pBlockTypeIdArray,0,sizeof(DWORD)*count); pFunctionItem->BlockCounter=count; BeginIt=FuncBlock.begin();EndIt=FuncBlock.end(); int i = 0; for(;BeginIt!=EndIt;BeginIt++,i++) pFunctionItem->pBlock.pBlockTypeIdArray[i]=*BeginIt; } FuncBlock.clear(); EnumSymbols->Release(); EnumSymbols=NULL; } if(SUCCEEDED(Symbol->findChildren(SymTagData,NULL,nsNone,&EnumSymbols))&&EnumSymbols!=NULL) { IDiaSymbol * pCurSymbol; ULONG celt; LONG count=0; SDUDTDATAITEM * pUdtDataItem; if(SUCCEEDED(EnumSymbols->get_Count(&count))&&count) { pFunctionItem->DataCounter=count; pFunctionItem->pData.pDataMember = new DWORD[count]; memset(pFunctionItem->pData.pDataMember,0,sizeof(DWORD)*count); } int i = 0; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) { SDTYPE *pReturnType=NULL; pFunctionItem->pData.pDataMember[i]=MakeSDDataTagType(pCurSymbol,NULL,&pReturnType); if(pFunctionItem->pData.pDataMember[i]==0) { pCurSymbol->Release(); continue; } if(pReturnType) { pUdtDataItem = (SDUDTDATAITEM*)pReturnType; pUdtDataItem->TypeIdParentUDT=pFunctionItem->ID; } pCurSymbol->Release(); i++; } pFunctionItem->DataCounter=i; EnumSymbols->Release(); EnumSymbols=NULL; } if(SUCCEEDED(Symbol->findChildren(SymTagLabel,NULL,nsNone,&EnumSymbols))&&EnumSymbols!=NULL) { IDiaSymbol * pCurSymbol; BSTR LabelName=NULL; LONG count=0; ULONG celt=0; if(SUCCEEDED(EnumSymbols->get_Count(&count)&&count)) { pFunctionItem->LabelCounter=count; SDLABELITEM* pSDLabelItem=new SDLABELITEM[count]; int i = 0; pCurSymbol=NULL; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1&&pCurSymbol) { pCurSymbol->get_name(&LabelName); int Len = TStrLen(LabelName); pSDLabelItem[i].uName.Name = new char[Len+1]; TStrCpy(pSDLabelItem[i].uName.Name,LabelName); LocalFree(LabelName); pCurSymbol->get_relativeVirtualAddress(&pSDLabelItem[i].Rva); pCurSymbol->Release(); pCurSymbol=NULL; i++,celt=0; } pFunctionItem->pLabel.pLabelArray=pSDLabelItem; } else { pFunctionItem->LabelCounter=0; pFunctionItem->pLabel.pLabelArray=NULL; } EnumSymbols->Release(); EnumSymbols=NULL; } IDiaSymbol*FuncType=NULL; if(SUCCEEDED(Symbol->get_type(&FuncType))&&FuncType) { DWORD LocalReleaseFlags=1; pFunctionItem->TypeID=MakeSDType(FuncType,&LocalReleaseFlags); if(LocalReleaseFlags) FuncType->Release(); ID_TO_SYMBOL_MAP::iterator find = m_IDToSymbolMap.find(pFunctionItem->TypeID); if(find!=m_IDToSymbolMap.end()) { SDTYPE *pSubType = find->second; if(pSubType->SDTypeInfile.Type==SD_FUNCTIONTYPE) { SDFUNCTIONTYPE* pFunctionType= (SDFUNCTIONTYPE*)pSubType->Self; pFunctionItem->TypeIDReturnValue = pFunctionType->TypeIDReturnValue; } else pFunctionItem->TypeIDReturnValue=pSubType->SDTypeInfile.Id;//ϵͳԶɵĺ classname::operator= } } IDiaSymbol*ParentUDTType=NULL; if(SUCCEEDED(Symbol->get_classParent(&ParentUDTType))&&ParentUDTType) { DWORD LocalReleaseFlags1=1; pFunctionItem->TypeIDParentUDT=MakeSDType(ParentUDTType,&LocalReleaseFlags1); if(LocalReleaseFlags1) ParentUDTType->Release(); } return pFunctionItem->ID; } DWORD CSourceDebug::MakeSDBlock(IDiaSymbol *Symbol,list* BlockList) { IDiaEnumSymbols *EnumSymbols=NULL; LONG count=0; DWORD BlockLen=sizeof(SDBLOCK)+sizeof(SDTYPE); ULONGLONG length; DWORD RAV=0xffffffff; ULONG celt; SDBLOCK *block=NULL; SDTYPE* pType; IDiaSymbol* pCurSymbol=NULL; if(Symbol==NULL) return NULL; if(CheckSymbolSymTagType(Symbol,SymTagBlock)==false) return NULL; if(FAILED(Symbol->findChildren(SymTagData,NULL,nsNone,&EnumSymbols))||EnumSymbols==NULL) CODE_WARNING("CSourceDebug::MakeSDBlock"); if(FAILED(EnumSymbols->get_Count(&count))) CODE_WARNING("CSourceDebug::MakeSDBlock"); if(count>=1) BlockLen +=((count-1)*sizeof(DWORD*)); pType=(SDTYPE*)new char[BlockLen]; memset(pType,0,BlockLen); pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; pType->SDTypeInfile.Size=BlockLen; block=(SDBLOCK *)&pType[1]; pType->Self=block; block->DataCounter=count; if(FAILED(Symbol->get_relativeVirtualAddress(&RAV))) CODE_WARNING("CSourceDebug::MakeSDBlock"); block->Rva=RAV; if(FAILED(Symbol->get_length(&length))) CODE_WARNING("CSourceDebug::MakeSDBlock"); block->Len=(DWORD)length; int i = 0; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) { SDTYPE *pReturnType; block->pDataMember[i] = MakeSDDataTagType(pCurSymbol,NULL,&pReturnType); SDUDTDATAITEM *pUdtDataItem; pUdtDataItem=(SDUDTDATAITEM*)pReturnType; pUdtDataItem->TypeIdParentUDT=pType->SDTypeInfile.Id; pCurSymbol->Release(); i++; } EnumSymbols->Release(); EnumSymbols=NULL; BlockList->push_back(pType->SDTypeInfile.Id); pType->SDTypeInfile.Type=SD_BLOCK; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); if(SUCCEEDED(Symbol->findChildren(SymTagBlock,NULL,nsNone,&EnumSymbols))&&EnumSymbols) { ULONG celt; IDiaSymbol* pCurSymbol; while(SUCCEEDED(EnumSymbols->Next(1,&pCurSymbol,&celt))&&celt==1) { MakeSDBlock(pCurSymbol,BlockList); pCurSymbol->Release(); } EnumSymbols->Release(); } return pType->SDTypeInfile.Id; } bool CSourceDebug::GetArrayList(IDiaSymbol* Symbol,ARRAY_DIA_SYMBOL_LIST* ArrayList) { IDiaSymbol* NewSymbol=Symbol; DWORD dwSymTag; IDiaSymbol* ElementType=NULL; ArrayList->clear(); if(FAILED(NewSymbol->get_symTag(&dwSymTag))) return false; while(dwSymTag==SymTagArrayType) { ArrayList->push_front(NewSymbol); if (FAILED(NewSymbol->get_type(&ElementType))) return false; if(FAILED(ElementType->get_symTag(&dwSymTag))) return false; NewSymbol=ElementType; } ElementType->Release(); return true; } DWORD CSourceDebug::MakeSDArrayType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { ARRAY_DIA_SYMBOL_LIST::iterator BeginIt,EndIt; ARRAY_DIA_SYMBOL_LIST ArrayList; IDiaSymbol* TmpSymbol; DWORD PrevArrayTypeId=0; DWORD ii=0; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=1; if(GetArrayList(Symbol,&ArrayList)==false) return NULLSYMBOLID; BeginIt=ArrayList.begin(); EndIt=ArrayList.end(); for(;BeginIt!=EndIt;BeginIt++) { if(ii) ii++; TmpSymbol = *BeginIt; PrevArrayTypeId = MakeSDArrayType(TmpSymbol,PrevArrayTypeId,ReleaseFlags,pTypeRetrun); if(*ReleaseFlags) { TmpSymbol->Release(); *ReleaseFlags=0; } ii++; } ArrayList.clear(); return PrevArrayTypeId; } DWORD CSourceDebug::MakeSDArrayType(IDiaSymbol* Symbol,DWORD PrevArrayTypeId,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SDTYPE *pType; SDARRAYTYPE* pArrayType; BSTR Name=NULL; SDARRAYINDEX AI; list IndexList; list::iterator begin,end; ULONGLONG TypeLen; SD_SYMBOL_LIST::iterator beginIT,endIT; IDiaSymbol* curPdbTypeArrayIndex = Symbol; ULONGLONG arraySize,tmplonglong; DWORD curPdbTypeArrayIndexTag; IDiaSymbol* curIndexType; IDiaSymbol* diaElementType; ULONGLONG curElementSize; DWORD LocalReleaseFlags1; bool bFirstFlag=true; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=1; for(beginIT=m_ArrayList.begin();beginIT!=m_ArrayList.end();beginIT++) { HRESULT hr; IDiaSymbol* OldSymbol; OldSymbol=(IDiaSymbol*)beginIT->type->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) { SYMBOLLIST sl = *beginIT; if(pTypeRetrun) *pTypeRetrun=sl.type; return sl.id; } } // Get total size of top array symbol if (FAILED(curPdbTypeArrayIndex->get_length(&arraySize))) return NULLSYMBOLID; TypeLen = arraySize; // We know we're in an array already curPdbTypeArrayIndexTag = SymTagArrayType; // get index type of top array index curIndexType=NULL; if (FAILED(curPdbTypeArrayIndex->get_arrayIndexType(&curIndexType))) return NULLSYMBOLID; // Get type of top array indexes elements diaElementType=NULL; if (FAILED(curPdbTypeArrayIndex->get_type(&diaElementType))) return NULLSYMBOLID; // Get size of of top array indexes elements if (FAILED(diaElementType->get_length(&curElementSize))) return NULLSYMBOLID; // Now, process the indices while(curPdbTypeArrayIndexTag == SymTagArrayType) { if (curElementSize != 0) { tmplonglong=arraySize / curElementSize; AI.Size=*(DWORD*)&tmplonglong; } else AI.Size=0; LocalReleaseFlags1=1; AI.TypeIDIndex=MakeSDType(curIndexType,&LocalReleaseFlags1); if(LocalReleaseFlags1) { curIndexType->Release(); curIndexType=NULL; } IndexList.push_back(AI); // Move down to next array index if(bFirstFlag==false) { curPdbTypeArrayIndex->Release(); curPdbTypeArrayIndex=NULL; } bFirstFlag=false; curPdbTypeArrayIndex = diaElementType; // Size of new array index arraySize = curElementSize; // get symtag of new array index if (FAILED(curPdbTypeArrayIndex->get_symTag(&curPdbTypeArrayIndexTag))) return NULLSYMBOLID; // if it ISNT an array, stop right now if (curPdbTypeArrayIndexTag != SymTagArrayType) break; // get index type of sub-array if (FAILED(curPdbTypeArrayIndex->get_arrayIndexType(&curIndexType))) return NULLSYMBOLID; // Get type of sub-array elements if (FAILED(curPdbTypeArrayIndex->get_type(&diaElementType))) return NULLSYMBOLID; // get size in bytes of sub-array elements if (FAILED(diaElementType->get_length(&curElementSize))) return NULLSYMBOLID; } DWORD len; len = sizeof(SDARRAYTYPE)+sizeof(SDTYPE); if(IndexList.size()>1) len = len+sizeof(SDARRAYINDEX)*(IndexList.size()-1); pType = (SDTYPE *) new char[len]; pType->SDTypeInfile.Size=len; pType->Symbol=Symbol; pType->SDTypeInfile.Id = m_CurrentSymbolIndex; m_CurrentSymbolIndex++; SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); m_ArrayList.push_back(sl); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); pArrayType = (SDARRAYTYPE*)&pType[1]; pType->Self=pArrayType; DWORD LocalReleaseFlags=1; pArrayType->TypeIDElement=MakeSDType(diaElementType,&LocalReleaseFlags); if(LocalReleaseFlags) diaElementType->Release(); begin = IndexList.begin(); end = IndexList.end(); int i = 0; for(;begin!=end;begin++,i++) pArrayType->Dimensions[i]=(*begin); size_t Size; Size=IndexList.size(); pArrayType->DimensionsSize=*(DWORD*)&Size; pArrayType->NextArrayID=PrevArrayTypeId; IndexList.clear(); pType->SDTypeInfile.Type=SD_ARRAY; pType->SDTypeInfile.TypeSize=*(DWORD*)&TypeLen; pType->Self=pArrayType; pType->SDTypeInfile.uName.Name=GetSDSymbolName(pType->SDTypeInfile.Id); if(pTypeRetrun) *pTypeRetrun=pType; if(ReleaseFlags) *ReleaseFlags=0; return pType->SDTypeInfile.Id; } /* DWORD CSourceDebug::MakeSDArrayType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SDTYPE *pType; SDARRAYTYPE* pArrayType; BSTR Name=NULL; SDARRAYINDEX AI; list IndexList; list::iterator begin,end; ULONGLONG TypeLen; SD_SYMBOL_LIST::iterator beginIT,endIT; IDiaSymbol* curPdbTypeArrayIndex = Symbol; ULONGLONG arraySize,tmplonglong; DWORD curPdbTypeArrayIndexTag; IDiaSymbol* curIndexType; IDiaSymbol* diaElementType; ULONGLONG curElementSize; DWORD LocalReleaseFlags1; bool bFirstFlag=true; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=1; for(beginIT=m_ArrayList.begin();beginIT!=m_ArrayList.end();beginIT++) { HRESULT hr; IDiaSymbol* OldSymbol; OldSymbol=(IDiaSymbol*)beginIT->type->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) { SYMBOLLIST sl = *beginIT; if(pTypeRetrun) *pTypeRetrun=sl.type; return sl.id; } } // Get total size of top array symbol if (FAILED(curPdbTypeArrayIndex->get_length(&arraySize))) return NULLSYMBOLID; TypeLen = arraySize; // We know we're in an array already curPdbTypeArrayIndexTag = SymTagArrayType; // get index type of top array index curIndexType=NULL; if (FAILED(curPdbTypeArrayIndex->get_arrayIndexType(&curIndexType))) return NULLSYMBOLID; // Get type of top array indexes elements diaElementType=NULL; if (FAILED(curPdbTypeArrayIndex->get_type(&diaElementType))) return NULLSYMBOLID; // Get size of of top array indexes elements if (FAILED(diaElementType->get_length(&curElementSize))) return NULLSYMBOLID; // Now, process the indices while(curPdbTypeArrayIndexTag == SymTagArrayType) { if (curElementSize != 0) { tmplonglong=arraySize / curElementSize; AI.Size=*(DWORD*)&tmplonglong; } else AI.Size=0; LocalReleaseFlags1=1; AI.TypeIDIndex=MakeSDType(curIndexType,&LocalReleaseFlags1); if(LocalReleaseFlags1) { curIndexType->Release(); curIndexType=NULL; } IndexList.push_back(AI); // Move down to next array index if(bFirstFlag==false) { curPdbTypeArrayIndex->Release(); curPdbTypeArrayIndex=NULL; } bFirstFlag=false; curPdbTypeArrayIndex = diaElementType; // Size of new array index arraySize = curElementSize; // get symtag of new array index if (FAILED(curPdbTypeArrayIndex->get_symTag(&curPdbTypeArrayIndexTag))) return NULLSYMBOLID; // if it ISNT an array, stop right now if (curPdbTypeArrayIndexTag != SymTagArrayType) break; // get index type of sub-array if (FAILED(curPdbTypeArrayIndex->get_arrayIndexType(&curIndexType))) return NULLSYMBOLID; // Get type of sub-array elements if (FAILED(curPdbTypeArrayIndex->get_type(&diaElementType))) return NULLSYMBOLID; // get size in bytes of sub-array elements if (FAILED(diaElementType->get_length(&curElementSize))) return NULLSYMBOLID; } DWORD len; len = sizeof(SDARRAYTYPE)+sizeof(SDTYPE); if(IndexList.size()>1) len = len+sizeof(SDARRAYINDEX)*(IndexList.size()-1); pType = (SDTYPE *) new char[len]; pType->SDTypeInfile.Size=len; pType->Symbol=Symbol; pType->SDTypeInfile.Id = m_CurrentSymbolIndex; m_CurrentSymbolIndex++; SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; m_SymbolList.push_back(sl); m_ArrayList.push_back(sl); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); pArrayType = (SDARRAYTYPE*)&pType[1]; pType->Self=pArrayType; DWORD LocalReleaseFlags=1; pArrayType->TypeIDElement=MakeSDType(diaElementType,&LocalReleaseFlags); if(LocalReleaseFlags) diaElementType->Release(); begin = IndexList.begin(); end = IndexList.end(); int i = 0; for(;begin!=end;begin++,i++) pArrayType->Dimensions[i]=(*begin); size_t Size; Size=IndexList.size(); pArrayType->DimensionsSize=*(DWORD*)&Size; IndexList.clear(); pType->SDTypeInfile.Type=SD_ARRAY; pType->SDTypeInfile.TypeSize=*(DWORD*)&TypeLen; pType->Self=pArrayType; pType->SDTypeInfile.uName.Name=GetSDSymbolName(pType->SDTypeInfile.Id); if(pTypeRetrun) *pTypeRetrun=pType; if(ReleaseFlags) *ReleaseFlags=0; return pType->SDTypeInfile.Id; } */ DWORD CSourceDebug::MakeSDEnumType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SD_SYMBOL_LIST::iterator beginIT,endIT; SDTYPE *pType; ULONGLONG length; DWORD newlen; BOOL bValue; BSTR EnumName=NULL; DWORD SelfReleaseFlags=1; SDENUMERATIONTYPE* EnumData; LONG datacount=0; ULONG count = 0; IDiaSymbol* EnumTypeSymbol=NULL; DWORD TypeId=0xffffffff; DWORD EnumSymTag=0xffffffff; IDiaSymbol* curValue; IDiaEnumSymbols* enumValuesEnum=NULL; unsigned int i; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; for(beginIT=m_EnumList.begin(),endIT=m_EnumList.end();beginIT!=endIT;beginIT++) { if(m_DiaSession->symsAreEquiv(Symbol,(IDiaSymbol*)beginIT->type->Symbol)==S_OK) { if(pTypeRetrun) *pTypeRetrun=beginIT->type; return beginIT->type->SDTypeInfile.Id; } } if (FAILED(Symbol->findChildren(SymTagData, NULL, nsNone, &enumValuesEnum))) return NULLSYMBOLID; if(FAILED(enumValuesEnum->get_Count(&datacount))) return NULLSYMBOLID; newlen = sizeof(SDENUMERATIONTYPE)+sizeof(SDTYPE); if(datacount) newlen=newlen + sizeof(ENUMERATIONDATAMEMBER)*(datacount-1); pType=(SDTYPE*)new char [newlen]; memset(pType,0,newlen); EnumData = (SDENUMERATIONTYPE*)&pType[1]; EnumData->DataCount=datacount; pType->Symbol=Symbol; pType->SDTypeInfile.Id = m_CurrentSymbolIndex; if(m_CurrentSymbolIndex==0x3b) m_CurrentSymbolIndex=0x3b; m_CurrentSymbolIndex++; pType->SDTypeInfile.Type=SD_ENUMERATION; pType->SDTypeInfile.Size=newlen; SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; m_EnumList.push_back(sl); //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); bValue=FALSE; Symbol->get_nested(&bValue); EnumData->IsNested=bValue?1:0; bValue=FALSE; Symbol->get_scoped(&bValue); EnumData->IsScoped=bValue?1:0; if(FAILED(Symbol->get_name(&EnumName))) return NULLSYMBOLID; if(FAILED(Symbol->get_length(&length))) return NULLSYMBOLID; pType->SDTypeInfile.TypeSize= *(DWORD*)&length; pType->SDTypeInfile.uName.Name=new char[TStrLen(EnumName)+1]; TStrCpy(pType->SDTypeInfile.uName.Name,EnumName); pType->Self=EnumData; if(FAILED(Symbol->get_type(&EnumTypeSymbol))&&EnumTypeSymbol==NULL) return NULLSYMBOLID; DWORD LocalReleaseFlags=1; EnumData->TypeID=MakeSDType(EnumTypeSymbol,&LocalReleaseFlags); if(LocalReleaseFlags) EnumTypeSymbol->Release(); curValue=NULL; i = 0; count=0;;DWORD locationType;ULONGLONG valueL=0; while(SUCCEEDED(enumValuesEnum->Next(1, &curValue, &count))&&count==1&&curValue) { char BufTemp[20]={0}; VARIANT value; value.intVal=sizeof(VARIANT); char BufTemp2[20]={0}; //memset(BufTemp2,0,sizeof(BufTemp2)); //memset(BufTemp,0,sizeof(BufTemp)); if (FAILED(curValue->get_locationType(&locationType))) return NULLSYMBOLID; if (locationType != LocIsConstant) return NULLSYMBOLID; if (FAILED(curValue->get_value(&value))) return NULLSYMBOLID; valueL=0; switch(value.vt) { case VT_UI1: valueL = value.bVal; break; case VT_UI2: valueL = value.uiVal; break; case VT_UI4: valueL = value.ulVal; break; case VT_UI8: valueL=value.ullVal;break; case VT_UINT: valueL = value.uintVal; break; case VT_INT: valueL = value.intVal; break; case VT_I1: valueL = value.cVal; break; case VT_I2: valueL = value.iVal; break; case VT_I4: valueL = value.lVal; break; case VT_I8: valueL = value.llVal;break; case VT_ERROR:CODE_ASSERT(0);break; default: valueL=0; break; } EnumData->EnumerationDataMember[i].Value=*(ULONGLONG*)&valueL; BSTR valueName = NULL; if (FAILED(curValue->get_name(&valueName)) || !valueName) return NULLSYMBOLID; EnumData->EnumerationDataMember[i].u.Name = new char[TStrLen(valueName)+1]; TStrCpy(EnumData->EnumerationDataMember[i].u.Name,valueName); /* SDCONSTVAR ConstVar; memset(&ConstVar,0,sizeof(SDCONSTVAR)); ConstVar.Name=EnumData->EnumerationDataMember[i].u.Name; CONST_VAR_MAP::iterator findit = m_ConstVarMap.find(ConstVar); if(findit==m_ConstVarMap.end()) { m_ConstVarMap.insert(CONST_VAR_MAP::value_type(ConstVar,0)); } */ LocalFree(valueName); curValue->Release(); valueName=NULL; curValue=NULL; count=0; i++; CODE_ASSERT(i<=EnumData->DataCount); } enumValuesEnum->Release(); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); if(ReleaseFlags) *ReleaseFlags=0; if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDPointerReferenceType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { BOOL bRef; if(FAILED( Symbol->get_reference(&bRef))) return NULLSYMBOLID; if(bRef==false) return MakeSDPointerType(Symbol,ReleaseFlags,pTypeRetrun); else return MakeSDReferenceType(Symbol,ReleaseFlags,pTypeRetrun); } DWORD CSourceDebug::MakeSDPointerType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SDTYPE* pType; SDPOINTERTYPE *pt; IDiaSymbol * PointerSymbol;//,*ReferenceSymbol; ULONGLONG length; char NullPointerName[]=""; char* PointerName=NULL; DWORD PrevPointerTypeID=0; DWORD TypeLen,i; DWORD SubTypeID; DWORD PointerDepth=1; DWORD SelfReleaseFlags=1; char* TempName; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; PointerSymbol = DumpSymTagPointerType(Symbol,NULL,&PointerDepth); DWORD LocalReleaseFlags=1; SubTypeID=MakeSDType(PointerSymbol,&LocalReleaseFlags); if(LocalReleaseFlags) PointerSymbol->Release(); PointerName=GetSDSymbolName(SubTypeID); length=0; if(FAILED(Symbol->get_length(&length))) { if(PointerName) delete []PointerName; return NULLSYMBOLID; } for(i = 1; i <= PointerDepth;i++) { if(PointerName) { TempName = new char [TStrLen(PointerName)+9+1]; TSPrintf(TempName,"%s_%08x",PointerName,i); } else { TempName = new char [18]; TSPrintf(TempName,"%08x_%08x",SubTypeID,i); } CTempSymbol TempSymbol(TempName,SymTagPointerType,0); m_TempSymbolIDIter = m_PointerID.find(TempSymbol); if(m_TempSymbolIDIter!=m_PointerID.end()) { PrevPointerTypeID = m_TempSymbolIDIter->second; if(i == PointerDepth) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(m_TempSymbolIDIter->second); delete []TempName; if(PointerName) delete []PointerName; return m_TempSymbolIDIter->second; } delete []TempName; continue; } m_PointerID.insert(SYMBOL_ID_MAP::value_type(TempSymbol,m_CurrentSymbolIndex)); TypeLen=sizeof(SDTYPE)+sizeof(SDPOINTERTYPE); pType =(SDTYPE*) new char [TypeLen]; memset(pType,0,TypeLen); pt =(SDPOINTERTYPE*) &pType[1]; pt->TypeID = SubTypeID; pt->PointerDepth=i; pt->NextPointer=PrevPointerTypeID; pType->SDTypeInfile.Type=SD_POINTER; pType->Self=pt; pType->SDTypeInfile.Size=TypeLen; pType->SDTypeInfile.TypeSize=(DWORD)length; pType->SDTypeInfile.uName.Name=TempName; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; PrevPointerTypeID=pType->SDTypeInfile.Id; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); if(pTypeRetrun) *pTypeRetrun=pType; if(ReleaseFlags) *ReleaseFlags=1; } if(PointerName) delete []PointerName; return pType->SDTypeInfile.Id; } #if 0 DWORD CSourceDebug::MakeSDPointerType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SDTYPE* pType; SDPOINTERTYPE *pt; static int debug2=0; IDiaSymbol * PointerSymbol;//,*ReferenceSymbol; ULONGLONG length; char NullPointerName[]=""; char* PointerName; DWORD TypeLen; DWORD SubTypeID; DWORD PointerDepth=1; DWORD SelfReleaseFlags=1; char* TempName; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; PointerSymbol = DumpSymTagPointerType(Symbol,NULL,&PointerDepth); DWORD LocalReleaseFlags=1; SubTypeID=MakeSDType(PointerSymbol,&LocalReleaseFlags); if(LocalReleaseFlags) PointerSymbol->Release(); PointerName=GetSDSymbolName(SubTypeID); if(PointerName) { TempName = new char [TStrLen(PointerName)+9+1]; TSPrintf(TempName,"%s_%08x",PointerName,PointerDepth); delete []PointerName; } else { TempName = new char [18]; TSPrintf(TempName,"%08x_%08x",SubTypeID,PointerDepth); } CTempSymbol TempSymbol(TempName,SymTagPointerType,0); m_TempSymbolIDIter = m_PointerID.find(TempSymbol); if(m_TempSymbolIDIter!=m_PointerID.end()) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(m_TempSymbolIDIter->second); delete []TempName; return m_TempSymbolIDIter->second; } m_PointerID.insert(SymbolID::value_type(TempSymbol,m_CurrentSymbolIndex)); TypeLen=sizeof(SDTYPE)+sizeof(SDPOINTERTYPE); pType =(SDTYPE*) new char [TypeLen]; memset(pType,0,TypeLen); pt =(SDPOINTERTYPE*) &pType[1]; pt->TypeID = SubTypeID; pt->PointerDepth=PointerDepth; pType->SDTypeInfile.Type=SD_POINTER; pType->Self=pt; if(FAILED(Symbol->get_length(&length))) { delete pType; delete pt; return NULLSYMBOLID; } pType->SDTypeInfile.Size=TypeLen; pType->SDTypeInfile.TypeSize=(DWORD)length; pType->SDTypeInfile.uName.Name=TempName; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; m_SymbolList.push_back(sl); if(pTypeRetrun) *pTypeRetrun=pType; if(ReleaseFlags) *ReleaseFlags=1; return pType->SDTypeInfile.Id; } #endif DWORD CSourceDebug::MakeSDReferenceType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { SDTYPE* pType; SDREFERENCETYPE *reft; IDiaSymbol *ReferenceSymbol; DWORD TypeLen; DWORD SelfReleaseFlags=1; DWORD SubTypeID; char *ReferenceName; char* TempName; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; if(FAILED(Symbol->get_type(&ReferenceSymbol))||ReferenceSymbol==NULL) return NULLSYMBOLID; DWORD Local1ReleaseFlags=1; SubTypeID = MakeSDType(ReferenceSymbol,&Local1ReleaseFlags); if(Local1ReleaseFlags) ReferenceSymbol->Release(); ReferenceName=GetSDSymbolName(SubTypeID); if(ReferenceName) { TempName = new char [TStrLen(ReferenceName)+1+1]; TStrCpy(TempName,ReferenceName); TStrCat(TempName,"&"); delete []ReferenceName; } else { TempName = new char[2]; TempName[0]='&'; TempName[1]=0; } CTempSymbol TempSymbol(TempName,SymTagPointerType,0); m_TempSymbolIDIter = m_ReferenceID.find(TempSymbol); if(m_TempSymbolIDIter!=m_ReferenceID.end()) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(m_TempSymbolIDIter->second); delete []TempName; return m_TempSymbolIDIter->second; } m_ReferenceID.insert(SYMBOL_ID_MAP::value_type(TempSymbol,m_CurrentSymbolIndex)); /* SD_SYMBOL_LIST::iterator beginIT,endIT; for(beginIT=m_PointerReferenceSymbolList.begin();beginIT!=m_PointerReferenceSymbolList.end();beginIT++) { HRESULT hr; SDTYPE* pCurType; IDiaSymbol* OldSymbol; pCurType=beginIT->type; OldSymbol=pCurType->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) return pCurType->Id; } */ TypeLen=sizeof(SDTYPE)+sizeof(SDREFERENCETYPE); pType = (SDTYPE*)new char [TypeLen]; memset(pType,0,TypeLen); pType->SDTypeInfile.Size=TypeLen; reft = (SDREFERENCETYPE*)&pType[1]; reft->TypeID=SubTypeID; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; pType->SDTypeInfile.Type=SD_REFERENCE; pType->SDTypeInfile.uName.Name=TempName; //pType->Symbol=Symbol; m_CurrentSymbolIndex++; pType->Self=reft; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); SDTYPE*pSubType = GetSDTypeBySymbolID(reft->TypeID); if(pSubType) pType->SDTypeInfile.TypeSize = pSubType->SDTypeInfile.TypeSize; if(ReleaseFlags) *ReleaseFlags=1; if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDTypeDefType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { char* name; BSTR TypeName=NULL; SDTYPE *pType; ULONGLONG length; SDTYPEDEFTYPE *tdt; DWORD BufferLength=512; DWORD SelfReleaseFlags=1; DWORD TypeLen; TypeName=NULL; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; #if 0 SD_SYMBOL_LIST::iterator beginIT,endIT; for(beginIT=m_TypeDefList.begin();beginIT!=m_TypeDefList.end();beginIT++) { SDTYPE* pCurType; HRESULT hr; IDiaSymbol* OldSymbol; OldSymbol=(IDiaSymbol*)beginIT->type->Symbol; hr = m_DiaSession->symsAreEquiv(Symbol,OldSymbol); if(hr==S_OK) { pCurType=beginIT->type; if(pTypeRetrun) *pTypeRetrun=pCurType; return pCurType->SDTypeInfile.Id; } } #endif if(FAILED(Symbol->get_name(&TypeName))) return NULLSYMBOLID; if(FAILED(Symbol->get_length(&length))) return NULLSYMBOLID; TypeLen = sizeof(SDTYPE)+sizeof(SDTYPEDEFTYPE); pType=(SDTYPE*)new char [TypeLen]; tdt=(SDTYPEDEFTYPE*)&pType[1]; name = new char[TStrLen(TypeName)+1]; TStrCpy(name,TypeName); LocalFree(TypeName); IDiaSymbol *TypeSymbol=NULL; if(FAILED(Symbol->get_type(&TypeSymbol))||TypeSymbol==NULL) return NULLSYMBOLID; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; pType->SDTypeInfile.Size=TypeLen; pType->Self=tdt; pType->Symbol=Symbol; pType->SDTypeInfile.Type=SD_TYPEDEF; pType->SDTypeInfile.uName.Name= name; pType->SDTypeInfile.TypeSize=(DWORD)length; m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); m_TypeDefList.push_back(sl); SelfReleaseFlags=0; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; DWORD LocalReleaseFlags=1; tdt->TypeID = MakeSDType(TypeSymbol,&LocalReleaseFlags); SDTYPE*pSubType = GetSDTypeBySymbolID(tdt->TypeID); if(pSubType) pType->SDTypeInfile.TypeSize = pSubType->SDTypeInfile.TypeSize; if(LocalReleaseFlags) TypeSymbol->Release(); if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDCustomType(IDiaSymbol* Symbol,DWORD *ReleaseFlags,SDTYPE** pTypeRetrun) { BSTR TypeName=NULL; char* name=NULL; SDTYPE* pType; ULONGLONG length; DWORD SelfReleaseFlags=1; if(pTypeRetrun) *pTypeRetrun=NULL; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; if(FAILED(Symbol->get_name(&TypeName))) return NULLSYMBOLID; if(TypeName) { name = new char [TStrLen(TypeName)+1]; TStrCpy(name,TypeName); LocalFree(TypeName); } else name=NULL; CTempSymbol TempSymbol(name,SymTagCustomType,0); m_TempSymbolIDIter = m_TempSymbolID.find(TempSymbol); if(m_TempSymbolIDIter!=m_TempSymbolID.end()) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(m_TempSymbolIDIter->second); if(name) delete []name; return (*m_TempSymbolIDIter).second; } if(FAILED(Symbol->get_length(&length))) return NULL; pType = new SDTYPE; pType->SDTypeInfile.TypeSize=(DWORD)length; pType->SDTypeInfile.Size=sizeof(SDTYPE); pType->Symbol=Symbol; pType->SDTypeInfile.uName.Name = name; pType->Self=NULL; pType->SDTypeInfile.Type = SD_CUSTOM; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; m_TempSymbolID.insert(SYMBOL_ID_MAP::value_type(TempSymbol,pType->SDTypeInfile.Id)); m_TempSymbolIDIter = m_TempSymbolID.find(TempSymbol); ((CTempSymbol &)(m_TempSymbolIDIter->first)).SetSDType(pType); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); SelfReleaseFlags=0; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } DWORD CSourceDebug::MakeSDManagedType(IDiaSymbol* Symbol,DWORD* ReleaseFlags,SDTYPE** pTypeRetrun) { BSTR TypeName=NULL; char* name=NULL; SDTYPE* pType; ULONGLONG length; DWORD SelfReleaseFlags=1; if(pTypeRetrun) *pTypeRetrun=NULL; if(FAILED(Symbol->get_name(&TypeName))) return NULLSYMBOLID; if(TypeName) { name = new char [TStrLen(TypeName)+1]; TStrCpy(name,TypeName); LocalFree(TypeName); } else name=NULL; CTempSymbol TempSymbol(name,SymTagCustomType,0); m_TempSymbolIDIter = m_TempSymbolID.find(TempSymbol); if(m_TempSymbolIDIter!=m_TempSymbolID.end()) { if(pTypeRetrun) *pTypeRetrun=GetSDTypeBySymbolID(m_TempSymbolIDIter->second); if(name) delete []name; return (*m_TempSymbolIDIter).second; } if(FAILED(Symbol->get_length(&length))) return NULL; pType = new SDTYPE; pType->SDTypeInfile.TypeSize=(DWORD)length; pType->SDTypeInfile.Size=sizeof(SDTYPE); pType->Self=NULL; pType->SDTypeInfile.uName.Name = name; pType->SDTypeInfile.Type = SD_MANAGED; pType->SDTypeInfile.Id=m_CurrentSymbolIndex; m_CurrentSymbolIndex++; m_TempSymbolID.insert(SYMBOL_ID_MAP::value_type(TempSymbol,pType->SDTypeInfile.Id)); m_TempSymbolIDIter = m_TempSymbolID.find(TempSymbol); ((CTempSymbol &)(m_TempSymbolIDIter->first)).SetSDType(pType); m_IDToSymbolMap.insert(ID_TO_SYMBOL_MAP::value_type(pType->SDTypeInfile.Id,pType)); SYMBOLLIST sl; sl.id=pType->SDTypeInfile.Id; sl.type=pType; //m_SymbolList.push_back(sl); m_SymbolList.insert( SD_SYMBOL_MAP::value_type(sl,sl.id)); SelfReleaseFlags=0; if(ReleaseFlags) *ReleaseFlags=SelfReleaseFlags; if(pTypeRetrun) *pTypeRetrun=pType; return pType->SDTypeInfile.Id; } bool CSourceDebug::IsUnnamedSDType(char *name) { char unnamed[]=""; char unnamed1[]="__unnamed"; int i,j; int len1,len; if(name==NULL) return false; len = TStrLen(name); len1 = TStrLen(unnamed); if(len==0||len=0;i--,j--) { if(name[i]!=unnamed[j]) return false; } if(i>0) if(name[i]!=':') return false; return true; } WCHAR* CSourceDebug::GetSDSymbolName(DWORD SymbolId,WCHAR *NameBuffer,DWORD *BufferLength) { SDTYPE* pType; ID_TO_SYMBOL_MAP::iterator find = m_IDToSymbolMap.find(SymbolId); if(NameBuffer) NameBuffer[0]=0; pType = GetSDTypeBySymbolID(SymbolId); if(pType==NULL) return NULL; return GetSDSymbolName(pType,NameBuffer,BufferLength); } SDTYPE* CSourceDebug::GetSDTypeBySymbolID(DWORD SymbolId) { //SDSymbolList::iterator FindIT; SD_SYMBOL_MAP::iterator FindIT; SYMBOLLIST SymbolValue; SymbolValue.id = SymbolId; FindIT = m_SymbolList.find(SymbolValue); if(FindIT!=m_SymbolList.end()) return (*FindIT).first.type;//->type; return NULL; } SDUDTDATAITEM* CSourceDebug::GetSDDateTypeBySymbolID(DWORD DataId) { if(DataId>=m_DataTagVector.size()) return NULL; return m_DataTagVector[DataId]; } PSDFUNCTIONITEM CSourceDebug::GetSDFunctionByID(DWORD FunctionId) { FUNCTION_ID_MAP::iterator BeginIT,EndIT; BeginIT = m_FuntionID.begin(); EndIT = m_FuntionID.end(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).first.pFuncItem->ID==FunctionId) return (*BeginIT).first.pFuncItem; } return NULL; } char *CSourceDebug::GetSDSymbolName(DWORD SymbolId) { WCHAR *Buf=NULL; DWORD len; char *Name=NULL; DWORD BufferLength=0x2000; Buf = new WCHAR[BufferLength]; GetSDSymbolName(SymbolId,Buf,&BufferLength); len = TStrLen(Buf); if(len == 0) { delete []Buf; return NULL; } Name = new char[len+1]; TStrCpy(Name,Buf); delete []Buf; return Name; } char* CSourceDebug::GetFunctionName(IN PSDFUNCTIONITEM pFuncItem,OUT char* NameBuffer,INOUT int* BufferLength) { int dwCurrentLen=0; SDTYPE *pSubType=NULL; char pVirtual[]="virtual "; int len; char pFuncEnd[5]=")"; char* CallConventionName; NameBuffer[0]=0; if(pFuncItem->IsVirtual) { dwCurrentLen = TStrLen(pVirtual); if(*BufferLength >dwCurrentLen) TStrCpy(NameBuffer,pVirtual); (*BufferLength) = (*BufferLength) - dwCurrentLen; } if(pFuncItem->TypeIDReturnValue) GetSDSymbolName(pFuncItem->TypeIDReturnValue,&NameBuffer[dwCurrentLen],BufferLength); if(pFuncItem->TypeID) { pSubType=GetSDTypeBySymbolID(pFuncItem->TypeID); if(pSubType->SDTypeInfile.Type==SD_FUNCTIONTYPE) { SDFUNCTIONTYPE* pFunctionType = (SDFUNCTIONTYPE*)pSubType->Self; CallConventionName = GetCallConventionName(pFunctionType->CallingConvention); dwCurrentLen = TStrLen(CallConventionName); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,CallConventionName); *BufferLength=*BufferLength-dwCurrentLen; } } dwCurrentLen = TStrLen(pFuncItem->uName.Name); if(*BufferLength > dwCurrentLen) TStrCat(NameBuffer,pFuncItem->uName.Name); (*BufferLength) = (*BufferLength) - dwCurrentLen; if(*BufferLength > 1) TStrCat(NameBuffer,"("); (*BufferLength)--; for(DWORD i = 0; i < pFuncItem->DataCounter; i++) { SDUDTDATAITEM* pUdtDataItem= GetSDDateTypeBySymbolID(pFuncItem->pData.pDataMember[i]); if(pUdtDataItem->KindData==DataIsParam) { len = TStrLen(NameBuffer); GetSDSymbolName(pUdtDataItem->TypeId,&NameBuffer[len],BufferLength); if(*BufferLength>1) TStrCat(NameBuffer," "); (*BufferLength)--; dwCurrentLen = TStrLen(pUdtDataItem->uName.Name); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,pUdtDataItem->uName.Name); (*BufferLength)=(*BufferLength)-dwCurrentLen; if(*BufferLength>1) TStrCat(NameBuffer,","); (*BufferLength)--; } } len = TStrLen(NameBuffer); if(NameBuffer[len-1]==',') NameBuffer[len-1]=0; if(pFuncItem->IsPure) TStrCpy(pFuncEnd,")=0"); dwCurrentLen = TStrLen(pFuncEnd); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,pFuncEnd); (*BufferLength)=(*BufferLength)-dwCurrentLen; return NameBuffer; } char* CSourceDebug::GetSDSymbolName(IN PSDTYPE pType,OUT char *NameBuffer,INOUT int *BufferLength) { return GetSDSymbolName(&pType->SDTypeInfile,NameBuffer,BufferLength); } char* CSourceDebug::GetSDSymbolName(IN DWORD SymbolId,OUT char *NameBuffer,INOUT int *BufferLength) { SDTYPE* pType; SYMBOLLIST SymbolValue; //SDSymbolList::iterator FindIT; SD_SYMBOL_MAP::iterator FindIT; if(NameBuffer) NameBuffer[0]=0; SymbolValue.id = SymbolId; FindIT = m_SymbolList.find(SymbolValue); if(FindIT==m_SymbolList.end()) return NameBuffer; pType = (*FindIT).first.type; return GetSDSymbolName(pType,NameBuffer,BufferLength); } SDCALLCONVENTIONPAIR CSourceDebug::m_CallConvention[24]= { {0xffffffff," Unknown calling convention in function "}, {CV_CALL_NEAR_C," __cdecl "}, {CV_CALL_NEAR_FAST," __fastcall "}, {CV_CALL_NEAR_STD," __stdcall "}, {CV_CALL_NEAR_SYS," __syscall "}, {CV_CALL_THISCALL," __thiscall "}, {CV_CALL_MIPSCALL," Unknown calling convention in function "}, {CV_CALL_GENERIC," Unknown calling convention in function "}, {CV_CALL_ALPHACALL," Unknown calling convention in function "}, {CV_CALL_PPCCALL," Unknown calling convention in function "}, {CV_CALL_SHCALL," Unknown calling convention in function "}, {CV_CALL_ARMCALL," Unknown calling convention in function "}, {CV_CALL_AM33CALL," Unknown calling convention in function "}, {CV_CALL_TRICALL," Unknown calling convention in function "}, {CV_CALL_SH5CALL," Unknown calling convention in function "}, {CV_CALL_M32RCALL," Unknown calling convention in function "}, {CV_CALL_RESERVED," Unknown calling convention in function "}, {CV_CALL_FAR_C," Unknown calling convention in function "}, {CV_CALL_NEAR_PASCAL," Unknown calling convention in function "}, {CV_CALL_FAR_PASCAL," Unknown calling convention in function "}, {CV_CALL_FAR_FAST," Unknown calling convention in function "}, {CV_CALL_SKIPPED," Unknown calling convention in function "}, {CV_CALL_FAR_STD," Unknown calling convention in function "}, {CV_CALL_FAR_SYS," Unknown calling convention in function "}, }; char* CSourceDebug::GetCallConventionName(DWORD dwType) { int i; if(dwType>=sizeof(m_CallConvention)/sizeof(m_CallConvention[0])) return m_CallConvention[0].Name; for(i = 0; i < sizeof(m_CallConvention)/sizeof(m_CallConvention[0]);i++) if(m_CallConvention[i].Type==dwType) return m_CallConvention[i].Name; return m_CallConvention[0].Name; } char* CSourceDebug::GetSDSymbolName(IN PSDTYPE_INFILE SDTypeInfile,OUT char *NameBuffer,INOUT int *BufferLength) { SDTYPE *SelfType; char TypeName[50];//={0}; int dwOrgBufferLen=*BufferLength; int dwCurrentLen; int len=0; //SDTYPE *pSubType; char* CallConventionName; if(NameBuffer) NameBuffer[0]=0; if(SDTypeInfile==NULL) return NameBuffer; switch(SDTypeInfile->Type) { case SD_FUNCTIONTYPE: { SDFUNCTIONTYPE* pFunctionType= (SDFUNCTIONTYPE*)&SDTypeInfile[1]; GetSDSymbolName(pFunctionType->TypeIDReturnValue,NameBuffer,BufferLength); CallConventionName = GetCallConventionName(pFunctionType->CallingConvention); dwCurrentLen = TStrLen(CallConventionName); if(*BufferLength>dwCurrentLen) TStrCat(NameBuffer,CallConventionName); *BufferLength-=dwCurrentLen; if(*BufferLength>1) TStrCat(NameBuffer,"("); (*BufferLength)--; len = TStrLen(NameBuffer); for(DWORD i = 0; i< pFunctionType->ArgsCount;i++) { len = TStrLen(NameBuffer); GetSDSymbolName(pFunctionType->TypeIDArgs[i],&NameBuffer[len],BufferLength); len = TStrLen(NameBuffer); if(i!=pFunctionType->ArgsCount-1) { if(*BufferLength>1) { TStrCat(&NameBuffer[len],","); len++; } (*BufferLength)--; } } if(*BufferLength>1) { TStrCat(&NameBuffer[len],")"); } (*BufferLength)--; } return NameBuffer; case SD_POINTER: { SDPOINTERTYPE* pPointerType; int MaxBufferLen=*BufferLength; CStrA TmpBuf; pPointerType = (SDPOINTERTYPE*)&SDTypeInfile[1]; SelfType = GetSDTypeBySymbolID(pPointerType->TypeID); GetSDSymbolName(pPointerType->TypeID,NameBuffer,BufferLength); dwCurrentLen = pPointerType->PointerDepth; TmpBuf.Fill('*',dwCurrentLen); if(SelfType->SDTypeInfile.Type==SD_FUNCTIONTYPE) dwCurrentLen+=2; if(*BufferLength<=dwCurrentLen) { *BufferLength-=dwCurrentLen; return NameBuffer; } if(SelfType->SDTypeInfile.Type==SD_FUNCTIONTYPE) { PSDFUNCTIONTYPE pFunctionType = (PSDFUNCTIONTYPE)&SelfType[1]; char *NewName; char* pCallConvention; DWORD len; char NullChar=0; char * pFunc; NewName = new char[MaxBufferLen]; TStrCpy(NewName,NameBuffer); CallConventionName = GetCallConventionName(pFunctionType->CallingConvention); pCallConvention = TStrStr(NameBuffer,CallConventionName); pFunc =GetFuncParamBegin(NewName); if(pCallConvention==NULL) { pCallConvention = &NullChar; len = (*(DWORD*)&pFunc-*(DWORD*)&NewName); }else len = (*(DWORD*)&pCallConvention-*(DWORD*)&NameBuffer); NameBuffer[len]='('; len++; len+=TStrCpy(&NameBuffer[len],CallConventionName); TStrCpy(&NameBuffer[len],(char*)TmpBuf); TStrCat(NameBuffer,")"); TStrCat(NameBuffer,pFunc); delete NewName; } else { TStrCat(NameBuffer,(char*)TmpBuf); } *BufferLength-=dwCurrentLen; return NameBuffer; } break; case SD_REFERENCE: { SDREFERENCETYPE*pReferenceType; pReferenceType = (SDREFERENCETYPE*)&SDTypeInfile[1]; SelfType = GetSDTypeBySymbolID(pReferenceType->TypeID); GetSDSymbolName(SelfType,NameBuffer,BufferLength); if(*BufferLength>1) TStrCat(NameBuffer,"&"); *BufferLength--; } break; case SD_ARRAY: { SDARRAYTYPE* pArrayType; bool bFunctionPointer=false; char DigBuf[30]; CStrA StrBufA; pArrayType = (SDARRAYTYPE*)&SDTypeInfile[1]; SelfType = GetSDTypeBySymbolID(pArrayType->TypeIDElement); if(SelfType==NULL) return NameBuffer; GetSDSymbolName(SelfType,NameBuffer,BufferLength); bFunctionPointer=IsFunctionPointer(SelfType); dwCurrentLen=0; for(DWORD i = 0; i < pArrayType->DimensionsSize; i++) { dwCurrentLen += TSPrintf(DigBuf,"%d",pArrayType->Dimensions[i].Size); dwCurrentLen+=2; StrBufA+="["; StrBufA+=DigBuf; StrBufA+="]"; } if(*BufferLength>dwCurrentLen) { if(bFunctionPointer) { CStrA pFuncParam; char* pFunc = GetFuncParamBegin(NameBuffer); pFuncParam = pFunc; pFunc--; pFunc[0]=0; TStrCat(NameBuffer,(char*)StrBufA); TStrCat(NameBuffer,")"); TStrCat(NameBuffer,(char*)pFuncParam); } else TStrCat(NameBuffer,(char*)StrBufA); } *BufferLength = *BufferLength-dwCurrentLen; return NameBuffer; } break; case SD_BASECLASS: { SDUDTBASECLASS* pUdtBaseClassType= (SDUDTBASECLASS*)&SDTypeInfile[1]; return GetSDSymbolName(pUdtBaseClassType->TypeID,NameBuffer,BufferLength); } case SD_ENUMERATION: TStrCpy(TypeName,"enum " NTOSKRNLVER); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; goto local_002; case SD_CLASS: TStrCpy(TypeName,"class " NTOSKRNLVER); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; goto local_002; case SD_STRUCT: TStrCpy(TypeName,"struct " NTOSKRNLVER); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; goto local_002; case SD_UNION: TStrCpy(TypeName,"union " NTOSKRNLVER); len = TStrLen(TypeName); if(*BufferLength>len) TStrCpy(NameBuffer,TypeName); *BufferLength-=len; default: local_002: { if(SDTypeInfile->uName.Name) { dwCurrentLen = TStrLen(SDTypeInfile->uName.Name); if(dwCurrentLen<*BufferLength) TStrCpy(&NameBuffer[len],SDTypeInfile->uName.Name); *BufferLength-=dwCurrentLen; } else { dwCurrentLen = TStrLen("no name"); if(dwCurrentLen<*BufferLength) TStrCpy(&NameBuffer[len],"no name"); *BufferLength-=dwCurrentLen; } } } return NameBuffer; } WCHAR* CSourceDebug::GetSDSymbolName(SDTYPE* pType,WCHAR *NameBuffer,DWORD *BufferLength,OUT DWORD* ReturnLength) { SDTYPE *SelfType; if(NameBuffer) NameBuffer[0]=0; if(pType==NULL) return NULL; switch(pType->SDTypeInfile.Type) { case SD_FUNCTIONTYPE: { int len; SDFUNCTIONTYPE* pFunctionType= (SDFUNCTIONTYPE*)pType->Self; GetSDSymbolName(pFunctionType->TypeIDReturnValue,NameBuffer,BufferLength); switch(pFunctionType->CallingConvention) { case CV_CALL_NEAR_C: TStrCat(NameBuffer,WSTR(" __cdecl ")); break; case CV_CALL_NEAR_FAST: TStrCat(NameBuffer,WSTR(" __fastcall ")); break; case CV_CALL_NEAR_STD: TStrCat(NameBuffer,WSTR(" __stdcall ")); break; case CV_CALL_NEAR_SYS: TStrCat(NameBuffer,WSTR(" __syscall ")); break; case CV_CALL_THISCALL: TStrCat(NameBuffer,WSTR(" __thiscall ")); break; default: TStrCat(NameBuffer,WSTR(" Unknown calling convention in function ")); } len = TStrLen(NameBuffer); TStrCat(&NameBuffer[len],WSTR("(")); len++; for(unsigned int i = 0; i< pFunctionType->ArgsCount;i++) { GetSDSymbolName(pFunctionType->TypeIDArgs[i],&NameBuffer[len],BufferLength); len = TStrLen(NameBuffer); TStrCat(&NameBuffer[len],WSTR(",")); len++; } if(pFunctionType->ArgsCount) NameBuffer[len-1]=')'; else { TStrCat(&NameBuffer[len],WSTR(")")); len++; } } return NameBuffer; case SD_POINTER: { unsigned int i; SDPOINTERTYPE* pPointerType; pPointerType = (SDPOINTERTYPE*)pType->Self; ID_TO_SYMBOL_MAP::iterator find = m_IDToSymbolMap.find(pPointerType->TypeID); if(find==m_IDToSymbolMap.end()) return NULL; SelfType = find->second; GetSDSymbolName(pPointerType->TypeID,NameBuffer,BufferLength); WCHAR Buf[10]; WCHAR*pBuf=Buf; if(pPointerType->PointerDepth>sizeof(Buf)/sizeof(Buf[0]) - 1) { pBuf= new WCHAR[pPointerType->PointerDepth+1]; } for(i = 0; i < pPointerType->PointerDepth;i++) { pBuf[i]='*'; } pBuf[i]=0; if(SelfType->SDTypeInfile.Type==SD_FUNCTIONTYPE) { WCHAR *NewName; WCHAR c='('; NewName = new WCHAR[*BufferLength]; TStrCpy(NewName,NameBuffer); WCHAR * pFunc =TStrChr(NameBuffer,c); if(pFunc==NULL) { if(pBuf!=&Buf[0]) delete pBuf; delete []NewName; return NameBuffer; } DWORD len = (*(DWORD*)&pFunc-*(DWORD*)&NameBuffer); len = len / sizeof(WCHAR); NameBuffer[len]='('; TStrCpy(&NameBuffer[len+1],pBuf); TStrCat(NameBuffer,WSTR(")")); TStrCat(NameBuffer,&NewName[len]); delete NewName; } else TStrCat(NameBuffer,pBuf); if(pBuf!=&Buf[0]) delete pBuf; return NameBuffer; } break; case SD_REFERENCE: { SDREFERENCETYPE*pReferenceType; pReferenceType = (SDREFERENCETYPE*)pType->Self; ID_TO_SYMBOL_MAP::iterator find = m_IDToSymbolMap.find(pReferenceType->TypeID); if(find==m_IDToSymbolMap.end()) return NULL; SelfType = find->second; GetSDSymbolName(SelfType,NameBuffer,BufferLength); TStrCat(NameBuffer,WSTR("&")); } break; case SD_ARRAY: { SDARRAYTYPE* pArrayType; pArrayType = (SDARRAYTYPE*)pType->Self; ID_TO_SYMBOL_MAP::iterator find = m_IDToSymbolMap.find(pArrayType->TypeIDElement); if(find==m_IDToSymbolMap.end()) return NULL; SelfType = find->second; GetSDSymbolName(SelfType,NameBuffer,BufferLength); WCHAR DigBuf[10]; for(unsigned int i = 0; i DimensionsSize;i++) { TSPrintf(DigBuf,WSTR("%d"),pArrayType->Dimensions[i].Size); TStrCat(NameBuffer,WSTR("[")); TStrCat(NameBuffer,DigBuf); TStrCat(NameBuffer,WSTR("]")); } return NameBuffer; } break; case SD_BASECLASS: { SDUDTBASECLASS* pUdtBaseClassType= (SDUDTBASECLASS*)pType->Self; return GetSDSymbolName(pUdtBaseClassType->TypeID,NameBuffer,BufferLength); } default: { if(pType->SDTypeInfile.uName.Name) { TStrCpy(NameBuffer,pType->SDTypeInfile.uName.Name); } else { TStrCpy(NameBuffer,WSTR("no name")); } return NameBuffer; } } return NULL; } /* SDBASETYPENAME BaseTypeNameStruct[27]= { {btNoType,"NoType"}, {btVoid,"void"}, {btChar,"char"}, {btWChar,"wchar"}, {btInt,"short"}, {btInt1,"char"}, {btInt2,"short"}, {btInt4,"int"}, {btInt8,"__int64"}, {btUInt,"unsigned short int"}, {btUint1,"unsigned char"}, {btUint2,"unsigned short"}, {btUint4,"unsigned int"}, {btUint8,"unsigned __int64"}, {btFloat,"float"}, {btDouble,"double"}, {btBCD,"BCD"}, {btBool,"bool"}, {btLong,"long"}, {btULong,"unsigned long"}, {btCurrency,"Currency"}, {btDate,"date"}, {btVariant,"variant"}, {btComplex,"complex"}, {btBit,"bit"}, {btBSTR,"BSTR"}, {btHresult,"HRESULT"}, }; DWORD GetBaseTypeIdByName(char*Name) { DWORD i,Count = sizeof(BaseTypeNameStruct)/sizeof(BaseTypeNameStruct[0]); for(i = 0; i < Count; i++) { if(TStrCmp(BaseTypeNameStruct[i].Name,Name)==0) return BaseTypeNameStruct[i].Type; } return 0; } */ WCHAR* CSourceDebug::GetRegisterNameById(DWORD RegId) { CV_HREG_eName RegName[]= { {WSTR("CV_REG_NONE "),CV_REG_NONE }, {WSTR("CV_REG_AL "),CV_REG_AL }, {WSTR("CV_REG_CL "),CV_REG_CL }, {WSTR("CV_REG_DL "),CV_REG_DL }, {WSTR("CV_REG_BL "),CV_REG_BL }, {WSTR("CV_REG_AH "),CV_REG_AH }, {WSTR("CV_REG_CH "),CV_REG_CH }, {WSTR("CV_REG_DH "),CV_REG_DH }, {WSTR("CV_REG_BH "),CV_REG_BH }, {WSTR("CV_REG_AX "),CV_REG_AX }, {WSTR("CV_REG_CX "),CV_REG_CX }, {WSTR("CV_REG_DX "),CV_REG_DX }, {WSTR("CV_REG_BX "),CV_REG_BX }, {WSTR("CV_REG_SP "),CV_REG_SP }, {WSTR("CV_REG_BP "),CV_REG_BP }, {WSTR("CV_REG_SI "),CV_REG_SI }, {WSTR("CV_REG_DI "),CV_REG_DI }, {WSTR("CV_REG_EAX "),CV_REG_EAX }, {WSTR("CV_REG_ECX "),CV_REG_ECX }, {WSTR("CV_REG_EDX "),CV_REG_EDX }, {WSTR("CV_REG_EBX "),CV_REG_EBX }, {WSTR("CV_REG_ESP "),CV_REG_ESP }, {WSTR("CV_REG_EBP "),CV_REG_EBP }, {WSTR("CV_REG_ESI "),CV_REG_ESI }, {WSTR("CV_REG_EDI "),CV_REG_EDI }, {WSTR("CV_REG_ES "),CV_REG_ES }, {WSTR("CV_REG_CS "),CV_REG_CS }, {WSTR("CV_REG_SS "),CV_REG_SS }, {WSTR("CV_REG_DS "),CV_REG_DS }, {WSTR("CV_REG_FS "),CV_REG_FS }, {WSTR("CV_REG_GS "),CV_REG_GS }, {WSTR("CV_REG_IP "),CV_REG_IP }, {WSTR("CV_REG_FLAGS "),CV_REG_FLAGS }, {WSTR("CV_REG_EIP "),CV_REG_EIP }, {WSTR("CV_REG_EFLAGS "),CV_REG_EFLAGS }, {WSTR("CV_REG_TEMP "),CV_REG_TEMP }, {WSTR("CV_REG_TEMPH "),CV_REG_TEMPH }, {WSTR("CV_REG_QUOTE "),CV_REG_QUOTE }, {WSTR("CV_REG_PCDR3 "),CV_REG_PCDR3 }, {WSTR("CV_REG_PCDR4 "),CV_REG_PCDR4 }, {WSTR("CV_REG_PCDR5 "),CV_REG_PCDR5 }, {WSTR("CV_REG_PCDR6 "),CV_REG_PCDR6 }, {WSTR("CV_REG_PCDR7 "),CV_REG_PCDR7 }, {WSTR("CV_REG_CR0 "),CV_REG_CR0 }, {WSTR("CV_REG_CR1 "),CV_REG_CR1 }, {WSTR("CV_REG_CR2 "),CV_REG_CR2 }, {WSTR("CV_REG_CR3 "),CV_REG_CR3 }, {WSTR("CV_REG_CR4 "),CV_REG_CR4 }, {WSTR("CV_REG_DR0 "),CV_REG_DR0 }, {WSTR("CV_REG_DR1 "),CV_REG_DR1 }, {WSTR("CV_REG_DR2 "),CV_REG_DR2 }, {WSTR("CV_REG_DR3 "),CV_REG_DR3 }, {WSTR("CV_REG_DR4 "),CV_REG_DR4 }, {WSTR("CV_REG_DR5 "),CV_REG_DR5 }, {WSTR("CV_REG_DR6 "),CV_REG_DR6 }, {WSTR("CV_REG_DR7 "),CV_REG_DR7 }, {WSTR("CV_REG_GDTR "),CV_REG_GDTR }, {WSTR("CV_REG_GDTL "),CV_REG_GDTL }, {WSTR("CV_REG_IDTR "),CV_REG_IDTR }, {WSTR("CV_REG_IDTL "),CV_REG_IDTL }, {WSTR("CV_REG_LDTR "),CV_REG_LDTR }, {WSTR("CV_REG_TR "),CV_REG_TR }, {WSTR("CV_REG_PSEUDO1 "),CV_REG_PSEUDO1 }, {WSTR("CV_REG_PSEUDO2 "),CV_REG_PSEUDO2 }, {WSTR("CV_REG_PSEUDO3 "),CV_REG_PSEUDO3 }, {WSTR("CV_REG_PSEUDO4 "),CV_REG_PSEUDO4 }, {WSTR("CV_REG_PSEUDO5 "),CV_REG_PSEUDO5 }, {WSTR("CV_REG_PSEUDO6 "),CV_REG_PSEUDO6 }, {WSTR("CV_REG_PSEUDO7 "),CV_REG_PSEUDO7 }, {WSTR("CV_REG_PSEUDO8 "),CV_REG_PSEUDO8 }, {WSTR("CV_REG_PSEUDO9 "),CV_REG_PSEUDO9 }, {WSTR("CV_REG_ST0 "),CV_REG_ST0 }, {WSTR("CV_REG_ST1 "),CV_REG_ST1 }, {WSTR("CV_REG_ST2 "),CV_REG_ST2 }, {WSTR("CV_REG_ST3 "),CV_REG_ST3 }, {WSTR("CV_REG_ST4 "),CV_REG_ST4 }, {WSTR("CV_REG_ST5 "),CV_REG_ST5 }, {WSTR("CV_REG_ST6 "),CV_REG_ST6 }, {WSTR("CV_REG_ST7 "),CV_REG_ST7 }, {WSTR("CV_REG_CTRL "),CV_REG_CTRL }, {WSTR("CV_REG_STAT "),CV_REG_STAT }, {WSTR("CV_REG_TAG "),CV_REG_TAG }, {WSTR("CV_REG_FPIP "),CV_REG_FPIP }, {WSTR("CV_REG_FPCS "),CV_REG_FPCS }, {WSTR("CV_REG_FPDO "),CV_REG_FPDO }, {WSTR("CV_REG_FPDS "),CV_REG_FPDS }, {WSTR("CV_REG_ISEM "),CV_REG_ISEM }, {WSTR("CV_REG_FPEIP "),CV_REG_FPEIP }, {WSTR("CV_REG_FPEDO "),CV_REG_FPEDO }, {WSTR("CV_REG_MM0 "),CV_REG_MM0 }, {WSTR("CV_REG_MM1 "),CV_REG_MM1 }, {WSTR("CV_REG_MM2 "),CV_REG_MM2 }, {WSTR("CV_REG_MM3 "),CV_REG_MM3 }, {WSTR("CV_REG_MM4 "),CV_REG_MM4 }, {WSTR("CV_REG_MM5 "),CV_REG_MM5 }, {WSTR("CV_REG_MM6 "),CV_REG_MM6 }, {WSTR("CV_REG_MM7 "),CV_REG_MM7 }, {WSTR("CV_REG_XMM0 "),CV_REG_XMM0 }, {WSTR("CV_REG_XMM1 "),CV_REG_XMM1 }, {WSTR("CV_REG_XMM2 "),CV_REG_XMM2 }, {WSTR("CV_REG_XMM3 "),CV_REG_XMM3 }, {WSTR("CV_REG_XMM4 "),CV_REG_XMM4 }, {WSTR("CV_REG_XMM5 "),CV_REG_XMM5 }, {WSTR("CV_REG_XMM6 "),CV_REG_XMM6 }, {WSTR("CV_REG_XMM7 "),CV_REG_XMM7 }, {WSTR("CV_REG_XMM00 "),CV_REG_XMM00 }, {WSTR("CV_REG_XMM01 "),CV_REG_XMM01 }, {WSTR("CV_REG_XMM02 "),CV_REG_XMM02 }, {WSTR("CV_REG_XMM03 "),CV_REG_XMM03 }, {WSTR("CV_REG_XMM10 "),CV_REG_XMM10 }, {WSTR("CV_REG_XMM11 "),CV_REG_XMM11 }, {WSTR("CV_REG_XMM12 "),CV_REG_XMM12 }, {WSTR("CV_REG_XMM13 "),CV_REG_XMM13 }, {WSTR("CV_REG_XMM20 "),CV_REG_XMM20 }, {WSTR("CV_REG_XMM21 "),CV_REG_XMM21 }, {WSTR("CV_REG_XMM22 "),CV_REG_XMM22 }, {WSTR("CV_REG_XMM23 "),CV_REG_XMM23 }, {WSTR("CV_REG_XMM30 "),CV_REG_XMM30 }, {WSTR("CV_REG_XMM31 "),CV_REG_XMM31 }, {WSTR("CV_REG_XMM32 "),CV_REG_XMM32 }, {WSTR("CV_REG_XMM33 "),CV_REG_XMM33 }, {WSTR("CV_REG_XMM40 "),CV_REG_XMM40 }, {WSTR("CV_REG_XMM41 "),CV_REG_XMM41 }, {WSTR("CV_REG_XMM42 "),CV_REG_XMM42 }, {WSTR("CV_REG_XMM43 "),CV_REG_XMM43 }, {WSTR("CV_REG_XMM50 "),CV_REG_XMM50 }, {WSTR("CV_REG_XMM51 "),CV_REG_XMM51 }, {WSTR("CV_REG_XMM52 "),CV_REG_XMM52 }, {WSTR("CV_REG_XMM53 "),CV_REG_XMM53 }, {WSTR("CV_REG_XMM60 "),CV_REG_XMM60 }, {WSTR("CV_REG_XMM61 "),CV_REG_XMM61 }, {WSTR("CV_REG_XMM62 "),CV_REG_XMM62 }, {WSTR("CV_REG_XMM63 "),CV_REG_XMM63 }, {WSTR("CV_REG_XMM70 "),CV_REG_XMM70 }, {WSTR("CV_REG_XMM71 "),CV_REG_XMM71 }, {WSTR("CV_REG_XMM72 "),CV_REG_XMM72 }, {WSTR("CV_REG_XMM73 "),CV_REG_XMM73 }, {WSTR("CV_REG_XMM0L "),CV_REG_XMM0L }, {WSTR("CV_REG_XMM1L "),CV_REG_XMM1L }, {WSTR("CV_REG_XMM2L "),CV_REG_XMM2L }, {WSTR("CV_REG_XMM3L "),CV_REG_XMM3L }, {WSTR("CV_REG_XMM4L "),CV_REG_XMM4L }, {WSTR("CV_REG_XMM5L "),CV_REG_XMM5L }, {WSTR("CV_REG_XMM6L "),CV_REG_XMM6L }, {WSTR("CV_REG_XMM7L "),CV_REG_XMM7L }, {WSTR("CV_REG_XMM0H "),CV_REG_XMM0H }, {WSTR("CV_REG_XMM1H "),CV_REG_XMM1H }, {WSTR("CV_REG_XMM2H "),CV_REG_XMM2H }, {WSTR("CV_REG_XMM3H "),CV_REG_XMM3H }, {WSTR("CV_REG_XMM4H "),CV_REG_XMM4H }, {WSTR("CV_REG_XMM5H "),CV_REG_XMM5H }, {WSTR("CV_REG_XMM6H "),CV_REG_XMM6H }, {WSTR("CV_REG_XMM7H "),CV_REG_XMM7H }, {WSTR("CV_REG_MXCSR "),CV_REG_MXCSR }, {WSTR("CV_REG_EDXEAX "),CV_REG_EDXEAX }, {WSTR("CV_REG_EMM0L "),CV_REG_EMM0L }, {WSTR("CV_REG_EMM1L "),CV_REG_EMM1L }, {WSTR("CV_REG_EMM2L "),CV_REG_EMM2L }, {WSTR("CV_REG_EMM3L "),CV_REG_EMM3L }, {WSTR("CV_REG_EMM4L "),CV_REG_EMM4L }, {WSTR("CV_REG_EMM5L "),CV_REG_EMM5L }, {WSTR("CV_REG_EMM6L "),CV_REG_EMM6L }, {WSTR("CV_REG_EMM7L "),CV_REG_EMM7L }, {WSTR("CV_REG_EMM0H "),CV_REG_EMM0H }, {WSTR("CV_REG_EMM1H "),CV_REG_EMM1H }, {WSTR("CV_REG_EMM2H "),CV_REG_EMM2H }, {WSTR("CV_REG_EMM3H "),CV_REG_EMM3H }, {WSTR("CV_REG_EMM4H "),CV_REG_EMM4H }, {WSTR("CV_REG_EMM5H "),CV_REG_EMM5H }, {WSTR("CV_REG_EMM6H "),CV_REG_EMM6H }, {WSTR("CV_REG_EMM7H "),CV_REG_EMM7H }, {WSTR("CV_REG_MM00 "),CV_REG_MM00 }, {WSTR("CV_REG_MM01 "),CV_REG_MM01 }, {WSTR("CV_REG_MM10 "),CV_REG_MM10 }, {WSTR("CV_REG_MM11 "),CV_REG_MM11 }, {WSTR("CV_REG_MM20 "),CV_REG_MM20 }, {WSTR("CV_REG_MM21 "),CV_REG_MM21 }, {WSTR("CV_REG_MM30 "),CV_REG_MM30 }, {WSTR("CV_REG_MM31 "),CV_REG_MM31 }, {WSTR("CV_REG_MM40 "),CV_REG_MM40 }, {WSTR("CV_REG_MM41 "),CV_REG_MM41 }, {WSTR("CV_REG_MM50 "),CV_REG_MM50 }, {WSTR("CV_REG_MM51 "),CV_REG_MM51 }, {WSTR("CV_REG_MM60 "),CV_REG_MM60 }, {WSTR("CV_REG_MM61 "),CV_REG_MM61 }, {WSTR("CV_REG_MM70 "),CV_REG_MM70 }, {WSTR("CV_REG_MM71 "),CV_REG_MM71 }, }; int j = sizeof(RegName)/sizeof(RegName[0]); for(int i = 0; i < j;i++) if(RegId==RegName[i].id) return RegName[i].Name; return NULL; } void CSourceDebug::ReleaseSDType() { SYMBOLLIST sl; SDTYPE* pType; DWORD i; PSDUDTTYPE pSDUdtType; PSDFUNCTIONITEM pSDFunctionItem; PSDENUMERATIONTYPE pEnum; //SDSymbolList::iterator BeginIt,EndIt; SD_SYMBOL_MAP::iterator BeginIt,EndIt; BeginIt = m_SymbolList.begin();EndIt=m_SymbolList.end(); for(;BeginIt!=EndIt;BeginIt++) { sl = (*BeginIt).first; pType = sl.type; switch(pType->SDTypeInfile.Type) { case SD_CLASS: case SD_STRUCT: case SD_UNION: pSDUdtType = (PSDUDTTYPE)&pType[1]; if(pSDUdtType->pBaseClass.pBaseClassMember) delete []pSDUdtType->pBaseClass.pBaseClassMember; if(pSDUdtType->pData.pDataMember) delete []pSDUdtType->pData.pDataMember; if(pSDUdtType->pFunction.pFunctionMember) delete []pSDUdtType->pFunction.pFunctionMember; if(pSDUdtType->pFriend.pFriendMember) delete []pSDUdtType->pFriend.pFriendMember; if(pSDUdtType->pVTable.pVTableMember) delete []pSDUdtType->pVTable.pVTableMember; break; case SD_ENUMERATION: pEnum = (PSDENUMERATIONTYPE)&pType[1]; for(i = 0; i < pEnum->DataCount; i++) { if(pEnum->EnumerationDataMember[i].u.Name) delete []pEnum->EnumerationDataMember[i].u.Name; } break; case SD_TYPEDEF: break; case SD_REFERENCE: break; case SD_POINTER: break; case SD_FUNCTIONTYPE: break; case SD_ARRAY: break; case SD_BASECLASS: break; case SD_THUNK: break; case SD_BASIC: break; case SD_MANAGED: break; case SD_CUSTOM: break; case SD_BLOCK: break; case SD_VTABLE: break; default: break; } if(pType->SDTypeInfile.uName.Name) delete []pType->SDTypeInfile.uName.Name; delete pType; } FUNCTION_ID_MAP::iterator FunctionBeginIt,FunctionEndIt; FunctionBeginIt = m_FuntionID.begin(); FunctionEndIt = m_FuntionID.end(); for(;FunctionBeginIt!=FunctionEndIt;FunctionBeginIt++) { pSDFunctionItem = (*FunctionBeginIt).first.pFuncItem; if(pSDFunctionItem->pBlock.pBlockTypeIdArray) delete pSDFunctionItem->pBlock.pBlockTypeIdArray; if(pSDFunctionItem->pData.pDataMember) delete pSDFunctionItem->pData.pDataMember; for(i = 0; i < pSDFunctionItem->LabelCounter;i++) if(pSDFunctionItem->pLabel.pLabelArray[i].uName.Name) delete []pSDFunctionItem->pLabel.pLabelArray[i].uName.Name; if(pSDFunctionItem->pLabel.pLabelArray) delete []pSDFunctionItem->pLabel.pLabelArray; delete []pSDFunctionItem->uName.Name; delete pSDFunctionItem; } m_FuntionID.clear(); PUBLIC_SYMBOL_MAP::iterator FirstIt,SecondIt; FirstIt = m_PublicSymbolList.begin(); SecondIt = m_PublicSymbolList.end(); for(;FirstIt!=SecondIt;FirstIt++) if((*FirstIt).first.uName.Name) delete (*FirstIt).first.uName.Name; m_PublicSymbolList.clear(); m_TotalLineNumber.clear(); ID_TO_COMPILAND_NAME_MAP::iterator CompilandFirstIt,CompilandSecondIt; CompilandFirstIt=m_IdToCompilandMap.begin(); CompilandSecondIt=m_IdToCompilandMap.end(); for(;CompilandFirstIt!=CompilandSecondIt;CompilandFirstIt++) { delete [] CompilandFirstIt->first.Name; delete CompilandFirstIt->second; } m_IdToCompilandMap.clear(); ID_TO_SOURCE_FILE_NAME_MAP::iterator SourceFileFirstIT,SourceFileSecondIT; SourceFileFirstIT = m_IdToSourceFileNameMap.begin(); SourceFileSecondIT = m_IdToSourceFileNameMap.end(); for(;SourceFileFirstIT!=SourceFileSecondIT;SourceFileFirstIT++) { if(SourceFileFirstIT->first.Name) { delete []SourceFileFirstIT->first.Name; } } m_IdToSourceFileNameMap.clear(); DATA_TAG_VECTOR::iterator DataBeginIT,DataEndIT; DataBeginIT = m_DataTagVector.begin(); DataEndIT = m_DataTagVector.end(); for(;DataBeginIT!=DataEndIT;DataBeginIT++) delete *DataBeginIT; if(m_PEFileName) delete []m_PEFileName; if(m_PDBFileName) delete []m_PDBFileName; list::iterator IMNBeginIT,IMNEndIT; IMNBeginIT = m_ImportModuleNameList.begin(); IMNEndIT = m_ImportModuleNameList.end(); for(;IMNBeginIT!=IMNEndIT;IMNBeginIT++) { delete []IMNBeginIT->Name; } m_StaticDataMap.clear(); m_ImportModuleNameList.clear(); m_DataTagVector.clear(); m_StaticDataMap.clear(); m_ThisObjectPtrList.clear(); m_BaseTypeID.clear(); m_TempSymbolID.clear(); m_String2IDMap.clear(); m_ThunkIDMap.clear(); m_UDTSymbolID.clear(); m_PointerID.clear(); m_ReferenceID.clear(); m_FuncSymbolList.clear(); m_TypeDefList.clear(); m_BaseClassList.clear(); m_FunctionRavList.clear(); m_EnumList.clear(); m_ArrayList.clear(); m_UnnamedUdtList.clear(); m_IdToSourceFileNameMap.clear(); m_IdToCompilandMap.clear(); m_IDToSymbolMap.clear(); m_SymbolList.clear(); m_StringIDVector.clear(); m_TotalLineNumber.clear(); m_VTablePublicSymbolList.clear(); m_StringDumpBlockList.clear(); m_IDToFunctionSymbolMap.clear(); m_CurrentSourceFileIndex=0; m_CurrentCompilandIndex=0; m_CurrentDataSymbolIndex=0x1; m_CurrentFunctionSymbolIndex=0x1; m_CurrentSymbolIndex=0x1; m_DataTagVector.push_back(NULL); m_StringNameID=0; m_StringName=false; } bool CSourceDebug::LoadPESym(PCSTR pStrName) { PUBLIC_SYMBOL_MAP::iterator FindIT; PSDPUBLICSYMBOL pSdPublicSymbol; int n,m; char szSymA[1024]; SDPUBLICSYMBOL SdPublicSymbol; IMPORT_MODULE* pImportModule; CPEFile PEFile; STIMPORTMODULENAME stImportModuleName; list::iterator ModuleNameIT; char* ImportModuleName; //char* pStrName = new char[TStrLen(wFileName)+1]; //TStrCpy(pStrName,wFileName); if(PEFile.Open(pStrName)==false) { //delete []pStrName; return false; } //delete []pStrName; memset(&SdPublicSymbol,0,sizeof(SdPublicSymbol)); SdPublicSymbol.IsImportEntry=true; for(n=0;nModuleName; ModuleNameIT = find(m_ImportModuleNameList.begin(),m_ImportModuleNameList.end(),stImportModuleName); if(ModuleNameIT==m_ImportModuleNameList.end()) { ImportModuleName = new char[TStrLen(pImportModule->ModuleName)+1]; TStrCpy(ImportModuleName,pImportModule->ModuleName); stImportModuleName.Name = ImportModuleName; m_ImportModuleNameList.push_back(stImportModuleName); } else { ImportModuleName = (*ModuleNameIT).Name; } for(m=0;mFuncCount;m++) { SdPublicSymbol.Rva = pImportModule->FuncList[m].ThunkAddr-PEFile.m_PEHead.ImageBase; FindIT = m_PublicSymbolList.find(SdPublicSymbol); if(FindIT==m_PublicSymbolList.end()) { TSPrintf(szSymA,"Import_%s_%s",pImportModule->ModuleName,pImportModule->FuncList[m].FuncName); SdPublicSymbol.uName.Name = new char[TStrLen(szSymA)+1]; TStrCpy (SdPublicSymbol.uName.Name,szSymA); SdPublicSymbol.Length=0; SdPublicSymbol.UndecoratedName.Name=ImportModuleName; //m_PublicSymbolList.insert(SdPublicSymbol,SdPublicSymbol.Rva); m_PublicSymbolList.insert(PUBLIC_SYMBOL_MAP::value_type(SdPublicSymbol,SdPublicSymbol.Rva)); }else { pSdPublicSymbol=(PSDPUBLICSYMBOL)&(*FindIT).first; pSdPublicSymbol->IsImportEntry=true; pSdPublicSymbol->UndecoratedName.Name=ImportModuleName; //(*FindIT).first.IsImportEntry=true; //(*FindIT).first.UndecoratedName.Name=ImportModuleName; } } pImportModule++; } SdPublicSymbol.IsImportEntry=false; SdPublicSymbol.IsExportEntry=true; SdPublicSymbol.UndecoratedName.Name=NULL; for(n=0;nIsExportEntry=true; //(*FindIT).first.IsExportEntry=true; } } PEFile.Close(); return true; } DWORD CSourceDebug::DumpFunctionDeclareToHeaderFile(SDFUNCTIONITEM* pFuncItem,CStrA &OutBuffer) { return 0; } void CSourceDebug::InitDependencies() { //SDSymbolList::iterator BeginIt,EndIt; SD_SYMBOL_MAP::iterator BeginIt,EndIt; PSDTYPE pType; BeginIt = m_SymbolList.begin();EndIt=m_SymbolList.end(); for(;BeginIt!=EndIt;BeginIt++) { pType = (*BeginIt).first.type; switch(pType->SDTypeInfile.Type) { case SD_CLASS: case SD_STRUCT: case SD_UNION: MakeUDTDependencies(pType); break; } } return; } bool CSourceDebug::MakeUDTDependencies(PSDTYPE pType) { DWORD i; list* pList = new list; list::iterator FindIt; PSDUDTDATAITEM pUdtDataItem; PSDARRAYTYPE pArrayType; PSDTYPE pDataType; PSDUDTTYPE pUdtType = (PSDUDTTYPE)&pType[1]; for(i = 0; i < pUdtType->DataCounter; i++) { pUdtDataItem = GetSDDateTypeBySymbolID(pUdtType->pData.pDataMember[i]); if(pUdtDataItem==NULL) continue; pDataType = GetSDTypeBySymbolID(pUdtDataItem->TypeId); local_001: if(pDataType==NULL) continue; switch(pDataType->SDTypeInfile.Type) { case SD_CLASS: case SD_STRUCT: case SD_UNION: FindIt = find(pList->begin(),pList->end(),pDataType->SDTypeInfile.Id); if(FindIt==pList->end()) { pList->push_back(pDataType->SDTypeInfile.Id); } break; case SD_ARRAY: { pArrayType = (PSDARRAYTYPE)&pDataType[1]; pDataType = GetSDTypeBySymbolID(pArrayType->TypeIDElement); goto local_001; } } } if(pList->size()) { m_TypeDependenciesList.insert(TYPE_DEPENDENCIES_LIST::value_type(pType->SDTypeInfile.Id,pList)); } else { delete pList; } return true; } bool CSourceDebug::DumpSDUDTTypeToHeaderFile(DWORD TypeID,CStrA& OutBuffer) { list* pList; PSDCLASSTYPE pSDClassType; list::iterator BeginIt,EndIt; PSDTYPE pType; TYPE_DEPENDENCIES_LIST::iterator FindIT; pType = GetSDTypeBySymbolID(TypeID); //SLIST_HEADER if(TStrCmp(pType->SDTypeInfile.uName.Name,"_SLIST_HEADER")==0) pList=NULL; FindIT = m_TypeDependenciesList.find(TypeID); if(FindIT==m_TypeDependenciesList.end()) { pSDClassType = (PSDCLASSTYPE)&pType[1]; if(pSDClassType->IsUnnamed&&pSDClassType->IsNestedUnnamed) return true; DumpSDUDTTypeToHeaderFile(&pType->SDTypeInfile,OutBuffer); (*m_HeaderOutStream)<second; BeginIt = pList->begin(); EndIt = pList->end(); for(;BeginIt!=EndIt;BeginIt++) { DumpSDUDTTypeToHeaderFile(*BeginIt,OutBuffer); } pSDClassType = (PSDCLASSTYPE)&pType[1]; if(pSDClassType->IsUnnamed&&pSDClassType->IsNestedUnnamed) return true; DumpSDUDTTypeToHeaderFile(&pType->SDTypeInfile,OutBuffer); (*m_HeaderOutStream)<::iterator FindOutputIT; BeginIt = m_SymbolList.begin();EndIt=m_SymbolList.end(); if(BeginIt==EndIt) return false; InitDependencies(); m_HeaderOutStream = new ofstream; m_HeaderOutStream->open(HeaderFileName,ios_base::out | ios_base::trunc); for(;BeginIt!=EndIt;BeginIt++) { pType = (*BeginIt).first.type; switch(pType->SDTypeInfile.Type) { case SD_CLASS: case SD_STRUCT: case SD_UNION: pSDClassType = (PSDCLASSTYPE)&pType[1]; if(pSDClassType->IsUnnamed&&pSDClassType->IsNestedUnnamed) continue; FindOutputIT = find(m_OutputTypeList.begin(),m_OutputTypeList.end(),pType->SDTypeInfile.Id); if(FindOutputIT!=m_OutputTypeList.end()) continue; DumpSDUDTTypeToHeaderFile(pType->SDTypeInfile.Id,UdtOutBuffer); break; case SD_TYPEDEF: DumpSDTypedefTypeToHeaderFile(&pType->SDTypeInfile,TypedefOutBuffer); break; case SD_ENUMERATION: DumpSDEnumTypeToHeaderFile(&pType->SDTypeInfile,EnumOutBuffer); break; } } m_HeaderOutStream->flush(); delete m_HeaderOutStream; m_HeaderOutStream=NULL; ReleaseDependencies(); return true; } void CSourceDebug::ReleaseDependencies() { list* pList; TYPE_DEPENDENCIES_LIST::iterator BeginIT,EndIT; BeginIT = m_TypeDependenciesList.begin(); EndIT = m_TypeDependenciesList.end(); for(;BeginIT!=EndIT;BeginIT++) { pList = BeginIT->second; pList->clear(); delete pList; } m_TypeDependenciesList.clear(); return; } DWORD CSourceDebug::DumpSDEnumTypeToHeaderFile(SDTYPE* pType,CStrA &OutBuffer) { return DumpSDEnumTypeToHeaderFile(&pType->SDTypeInfile,OutBuffer); } DWORD CSourceDebug::DumpSDTypedefTypeToHeaderFile(SDTYPE* pType,CStrA &OutBuffer) { return DumpSDTypedefTypeToHeaderFile(&pType->SDTypeInfile,OutBuffer); } DWORD CSourceDebug::DumpSDUDTTypeToHeaderFile(SDTYPE* pType,CStrA& OutBuffer) { return DumpSDUDTTypeToHeaderFile(&pType->SDTypeInfile,OutBuffer); } DWORD CSourceDebug::DumpSDEnumTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile ,CStrA &OutBuffer) { char WriteBuffer[50]; SDENUMERATIONTYPE* pEnumationType; DWORD WriteByteSize=0; (*m_HeaderOutStream)<< "enum " NTOSKRNLVER <uName.Name<<"\n{\n"; pEnumationType = (SDENUMERATIONTYPE*)&SDTypeInfile[1]; for(unsigned int i = 0; i < pEnumationType->DataCount; i++) { (*m_HeaderOutStream)<<"\t"<EnumerationDataMember[i].u.Name<<"\t="; TSPrintf(WriteBuffer,"0x%08x\t,//%d\n",pEnumationType->EnumerationDataMember[i].Value,pEnumationType->EnumerationDataMember[i].Value); (*m_HeaderOutStream)<TypeID); PSDPOINTERTYPE pSDPointer; switch(pSubType->SDTypeInfile.Type) { case SD_STRUCT: TStrCpy(TypeName,"struct "); break; case SD_UNION: TStrCpy(TypeName,"union "); break; case SD_ENUMERATION: TStrCpy(TypeName,"enum "); break; case SD_POINTER: pSDPointer = (PSDPOINTERTYPE)&pSubType[1]; pSubType = GetSDTypeBySymbolID(pSDPointer->TypeID); if(pSubType->SDTypeInfile.Type == SD_FUNCTIONTYPE) bFunctionPointer=true; break; } GetSDSymbolName(pSDTypeDef->TypeID,OrgName,&OrgNameLen); if(bFunctionPointer) { char * pFunc =GetFuncParamBegin(OrgName); if(pFunc) { pFunc--; *pFunc=0; pFunc++; (*m_HeaderOutStream)<<"typedef "<uName.Name<<")"<uName.Name<<";"<uName.Name<<";"<=0;i--) { if(FunctionPointerName[i]==')') Sum++; else if(FunctionPointerName[i]=='(') Sum--; if(Sum==0) break; } return &FunctionPointerName[i]; } void CSourceDebug::GetDataMemberFullName(IN DWORD DataID,bool HasParentName) { } DWORD CSourceDebug::DumpSDUDTTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer) { bool bArray=false; bool bFunctionPointer=false; bool bIsUnnamedUDT=false; DWORD PrevAccess; DWORD i,j; PSDTYPE pSubType; PSDFUNCTIONITEM pFuncItem; PSDUDTDATAITEM pUdtData; char* OrgName; PSDUDTBASECLASS pUdtBaseClassType; PSDUDTTYPE pUdtType = (PSDUDTTYPE)&SDTypeInfile[1]; char FuncName[0x400]; int FuncNameLen = sizeof(FuncName)-1; list::iterator FindOutputIT; OutBuffer.Empty(); if(((PSDCLASSTYPE)&SDTypeInfile[1])->IsUnnamed==0) { FindOutputIT = find(m_OutputTypeList.begin(),m_OutputTypeList.end(),SDTypeInfile->Id); if(FindOutputIT!=m_OutputTypeList.end()) return 0; m_OutputTypeList.push_back(SDTypeInfile->Id); } else { bIsUnnamedUDT=true; } switch(SDTypeInfile->Type) { case SD_STRUCT: OutBuffer+="struct "; PrevAccess=CV_public; break; case SD_CLASS: OutBuffer+="class "; PrevAccess=CV_private; break; case SD_UNION: OutBuffer+="union "; PrevAccess=CV_public; break; } if(bIsUnnamedUDT==false) { OutBuffer+=NTOSKRNLVER; OutBuffer+=SDTypeInfile->uName.Name; if(strcmp("_HANDLE_TABLE_ENTRY",SDTypeInfile->uName.Name)==0) bIsUnnamedUDT=false; } OutBuffer+=" "; if(pUdtType->BaseClassCounter) { OutBuffer+=": "; for(i = 0,j=0; i < pUdtType->BaseClassCounter;i++) { pSubType = GetSDTypeBySymbolID(pUdtType->pBaseClass.pBaseClassMember[i]); CODE_ASSERT(pSubType); pUdtBaseClassType = (PSDUDTBASECLASS)&pSubType[1]; if(pUdtBaseClassType->bIsIndirectBaseClass) continue; if(j) { OutBuffer+=","; } if(pUdtBaseClassType->bIsVirtual) { OutBuffer+="virtual "; } switch(pUdtBaseClassType->Access) { case CV_private: OutBuffer+="private "; break; case CV_protected: OutBuffer+="protected "; break; case CV_public: OutBuffer+="public "; break; } OrgName = GetSDSymbolName(pUdtBaseClassType->TypeID); //(*m_HeaderOutStream)<TypeSize,SDTypeInfile->TypeSize); OutBuffer+=udtsize; OutBuffer+="\n{\n"; if(pUdtType->FunctionCounter) { for(i = 0; i < pUdtType->FunctionCounter;i++) { pFuncItem = GetSDFunctionByID(pUdtType->pFunction.pFunctionMember[i]); CODE_ASSERT(pFuncItem); bool bStatic = false; PSDTYPE pSubType = GetSDTypeBySymbolID(pFuncItem->TypeID); if(PrevAccess!=pFuncItem->Access) { switch(pFuncItem->Access) { case CV_private: OutBuffer+="private:\n"; break; case CV_protected: OutBuffer+="protected:\n"; break; case CV_public: OutBuffer+="public:\n"; break; } PrevAccess=pFuncItem->Access; } CStrA pStrFuncName; GetUDTFunctionMemberName(pUdtType->pFunction.pFunctionMember[i],pStrFuncName); OutBuffer+=pStrFuncName; } } if(pUdtType->DataCounter) { switch(SDTypeInfile->Type) { case SD_STRUCT: if(PrevAccess!=CV_public) { OutBuffer+="public:\n"; } PrevAccess=CV_public; break; case SD_CLASS: PrevAccess=0xffffffff; break; case SD_UNION: if(PrevAccess!=CV_public) { OutBuffer+="public:\n"; } PrevAccess=CV_public; break; } CStrA DataName; OFFSETMAP OffsetMap; pair pr; MEMINFOLIST DataList; UNIONMEMBERMAP UnionMemberMap; UNIONMEMBERMAP::iterator UnionMemberMapIT; pair pr2; DWORD dwLocation,dwOffset,dwDataLen,dwInfo; MEMINFOLIST::iterator FindIt,DataListBegin,DataListEnd,UnameBIt,UnameEIt; STUNIONHELP sht; for(i = 0; i < pUdtType->DataCounter; i++) { pUdtData = m_DataTagVector[pUdtType->pData.pDataMember[i]]; bIsUnnamedUDT=false; { GetUDTDataMemberName(pUdtType->pData.pDataMember[i],DataName,dwOffset,dwLocation,dwDataLen); FindIt = find(DataList.begin(),DataList.end(),MemberInfo(dwOffset)); if(FindIt!=DataList.end()) { dwInfo=FindIt->m_Index; dwInfo<<=16;//16λеһԪڽṹеλã16λͬƫƳԱֵĴ pr = OffsetMap.insert(OFFSETMAP::value_type(dwOffset,dwInfo+1)); if(pr.second==false) { pr.first->second++; UnionMemberMapIT = UnionMemberMap.find(dwOffset); } else { pr2 = UnionMemberMap.insert(map::value_type(dwOffset,MEMINFOLIST())); UnionMemberMapIT=pr2.first; UnionMemberMapIT->second.push_back(*FindIt); } UnionMemberMapIT->second.push_back(MemberInfo(DataName,dwOffset,dwLocation,pUdtData->Access,dwDataLen,i)); } DataList.push_back(MemberInfo(DataName,dwOffset,dwLocation,pUdtData->Access,dwDataLen,i)); } } UnionMemberMapIT = UnionMemberMap.begin(); OFFSETMAP Finish; UNIONHELPLIST HelpList; for(;UnionMemberMapIT!=UnionMemberMap.end();UnionMemberMapIT++) { InitUnameUDT(SDTypeInfile->Type, UnionMemberMapIT->first,DataList,UnionMemberMap,HelpList,Finish,true); } UNIONHELPLIST::iterator HLBIT; for(DataListBegin=DataList.begin();DataListBegin!=DataList.end();DataListBegin++) { for(HLBIT=HelpList.begin();HLBIT!=HelpList.end();HLBIT++) { if(HLBIT->Index==DataListBegin->m_Index) OutBuffer+=HLBIT->Str; } if(PrevAccess!=DataListBegin->m_Access) { switch(DataListBegin->m_Access) { case CV_private: OutBuffer+="private:\n"; break; case CV_protected: OutBuffer+="protected:\n"; break; case CV_public: OutBuffer+="public:\n"; break; } PrevAccess=DataListBegin->m_Access; } OutBuffer+=DataListBegin->m_Name; } for(HLBIT=HelpList.begin();HLBIT!=HelpList.end();HLBIT++) { if(HLBIT->Index==0-1) OutBuffer+=HLBIT->Str; } for(UnionMemberMapIT=UnionMemberMap.begin();UnionMemberMapIT!=UnionMemberMap.end();UnionMemberMapIT++) { UnionMemberMapIT->second.clear(); } UnionMemberMap.clear(); Finish.clear(); HelpList.clear(); OffsetMap.clear(); DataList.clear(); } OutBuffer+="};\n"; return 0; } bool CSourceDebug::HaveNestedUnameStruct(DWORD Offset,UNIONMEMBERMAP& UnionMemberMap,MEMINFOLIST& DataList,UNIONHELPLIST& HelpList,DWORD& LastIndex) { DWORD i,j,Length=0,dwMaxMemberLen=0; bool bRet=false; UNIONMEMBERMAP::iterator UnionMemberMapIT; MEMINFOLIST::iterator UnameBIt,UnameEIt,FindIt; STUNIONHELP sht; UnionMemberMapIT=UnionMemberMap.find(Offset); if(UnionMemberMapIT==UnionMemberMap.end()) return false; UnameBIt = UnionMemberMapIT->second.begin(); i=UnameBIt->m_Index; dwMaxMemberLen = max(UnameBIt->m_DataLen,dwMaxMemberLen); UnameEIt = UnionMemberMapIT->second.end(); UnameBIt++; for(j=1;UnameBIt!=UnameEIt;UnameBIt++)//жеݳԱǷΪĽṹ { if(j + i != UnameBIt->m_Index) { sht.Index=i; sht.Str="struct\n{\n"; HelpList.push_back(sht); sht.Index=UnameBIt->m_Index; sht.Str="};\n"; HelpList.push_back(sht); i=UnameBIt->m_Index; j=1; bRet=true; FindIt=DataList.begin(); for(;FindIt!=DataList.end();FindIt++) { if(FindIt->m_Index==i-1) { Length=FindIt->m_Offset+FindIt->m_DataLen-Offset; } } dwMaxMemberLen = max(Length,dwMaxMemberLen); } else { i=UnameBIt->m_Index; } } FindIt =DataList.end(); FindIt--; UnameBIt--; if(UnameBIt->m_Index < FindIt->m_Index) LastIndex = UnameBIt->m_Index+1; else LastIndex = 0-1; if(FindIt->m_Index>UnameBIt->m_Index)//жϵһԱǷijԱ Ϊṹ { FindIt=DataList.begin(); for(;FindIt!=DataList.end();FindIt++) { if(FindIt->m_Index > UnameBIt->m_Index) { if(FindIt->m_Offset - Offsetm_Offset - Offset >=dwMaxMemberLen) { break; } } } if(bRet) { sht.Index=UnameBIt->m_Index; sht.Str="struct\n{\n"; HelpList.push_back(sht); if(FindIt==DataList.end()) sht.Index=-1; else sht.Index=FindIt->m_Index; sht.Str="};\n"; HelpList.push_back(sht); LastIndex=sht.Index; } } return bRet; } DWORD CSourceDebug::HaveNestedUnameUnion(DWORD Offset,UNIONMEMBERMAP& UnionMemberMap) { DWORD StartIndex,EndIndex; UNIONMEMBERMAP::iterator UnionMemberMapIT; MEMINFOLIST::iterator UnameBIt,UnameEIt; if(UnionMemberMap.size()==1) return 0-1; UnionMemberMapIT=UnionMemberMap.find(Offset); UnameBIt = UnionMemberMapIT->second.begin(); UnameEIt = UnionMemberMapIT->second.end(); UnameEIt--; StartIndex=UnameBIt->m_Index; EndIndex=UnameEIt->m_Index; for(UnionMemberMapIT=UnionMemberMap.begin();UnionMemberMapIT!=UnionMemberMap.end();UnionMemberMapIT++) { if(UnionMemberMapIT->first!=Offset) { UnameBIt = UnionMemberMapIT->second.begin(); UnameEIt = UnionMemberMapIT->second.end(); UnameEIt--; if((UnameEIt->m_Index> StartIndex && UnameEIt->m_Index < EndIndex) || (UnameBIt->m_Index> StartIndex && UnameBIt->m_Index < EndIndex)) return UnionMemberMapIT->first; } } return 0-1; } void CSourceDebug::InitUnameUDT(SDTYPEIDS TypeIDs, DWORD Offset,MEMINFOLIST& DataList,UNIONMEMBERMAP& UnionMemberMap, UNIONHELPLIST& HelpList,OFFSETMAP& Finish,bool bFirst) { UNIONMEMBERMAP::iterator UnionMemberMapIT; MEMINFOLIST::iterator UnameBIt,UnameEIt,FindIt; DWORD dwPrevOffset=Offset,dwOffset,dwMaxMemberLen=0,BitFieldCount,BitFieldBegin,BitFieldEnd;;; STUNIONHELP sht,sht2; bool bHaveNestedStruct=false; DWORD LastIndex; MEMINFOLIST::iterator FindIT; pair pr; UNIONHELPLIST::iterator TempIt,TempIt2; bool bAllBitField; pr = Finish.insert(OFFSETMAP::value_type(dwPrevOffset,dwPrevOffset)); if(pr.second==false) return; dwOffset = HaveNestedUnameUnion(dwPrevOffset,UnionMemberMap); if(dwOffset!=0-1) InitUnameUDT(TypeIDs,dwOffset,DataList,UnionMemberMap,HelpList,Finish,false);//DZӵ union UnionMemberMapIT=UnionMemberMap.find(dwPrevOffset); bAllBitField=IsAllBitField(UnionMemberMapIT->second,BitFieldCount,BitFieldBegin,BitFieldEnd); if(bAllBitField==false && BitFieldCount >1) { sht.Index=BitFieldBegin; sht.Str="struct\n{\n"; HelpList.push_back(sht); FindIt=DataList.end(); FindIt--; if(FindIt->m_Index>BitFieldEnd) sht.Index= BitFieldEnd+1; else sht.Index= 0-1; sht.Str="};\n"; HelpList.push_back(sht); } bHaveNestedStruct = HaveNestedUnameStruct(dwPrevOffset,UnionMemberMap,DataList,HelpList,LastIndex); if(TypeIDs!=SD_UNION || bFirst==false || (bFirst==true && TypeIDs==SD_UNION && Offset)) { if(!bAllBitField) { UnionMemberMapIT=UnionMemberMap.find(dwPrevOffset); UnameBIt = UnionMemberMapIT->second.begin(); UnameEIt = UnionMemberMapIT->second.end(); sht.Index=UnameBIt->m_Index; sht.Str="union\n{\n"; sht2.Index=UnameBIt->m_Index; TempIt = find(HelpList.begin(),HelpList.end(),sht2); if(TempIt!=HelpList.end()) { TempIt2=TempIt; for(;TempIt!=HelpList.end();TempIt++) { if(TempIt->Index==UnameBIt->m_Index && TempIt->Str == "};\n") { TempIt2=TempIt; TempIt2++; } } CStrA ss1; if(TempIt2==HelpList.end()) HelpList.push_back(sht); else HelpList.insert(TempIt2,sht); } else HelpList.push_back(sht); if(bHaveNestedStruct==false) { FindIt = DataList.end(); FindIt--; UnameEIt = UnionMemberMapIT->second.end(); UnameEIt--; if(UnameEIt->m_Index < FindIt->m_Index) LastIndex=UnameEIt->m_Index+1; else LastIndex=0-1; } sht.Index=LastIndex; sht.Str="};\n"; HelpList.push_back(sht); } } } bool CSourceDebug::IsAllBitField(MEMINFOLIST& pList,DWORD& BitFieldCount,DWORD& BitFieldBegin,DWORD& BitFieldEnd) { MEMINFOLIST::iterator BeginIT; bool bRet=true; BitFieldBegin=0-1; BitFieldEnd=0-1; BitFieldCount=0; for(BeginIT=pList.begin();BeginIT!=pList.end();BeginIT++) { if(BeginIT->m_Location!=LocIsBitField) bRet=false; else { if(BitFieldBegin==0-1) BitFieldBegin=BeginIT->m_Index; BitFieldEnd=BeginIT->m_Index; BitFieldCount++; } } return bRet; } char* CSourceDebug::GetUDTFunctionMemberName(DWORD FuncID,OUT CStrA& NameBuffer) { char FuncName[0x400]; PSDFUNCTIONITEM pFuncItem; int FuncNameLen; pFuncItem = GetSDFunctionByID(FuncID); CODE_ASSERT(pFuncItem); bool bStatic = false; PSDFUNCTIONTYPE pFunctionType; PSDTYPE pSubType = GetSDTypeBySymbolID(pFuncItem->TypeID); NameBuffer.Empty(); FuncNameLen = sizeof(FuncName)-1; GetFunctionName(pFuncItem,FuncName,&FuncNameLen); if(pSubType->SDTypeInfile.Type==SD_FUNCTIONTYPE) { pFunctionType = (PSDFUNCTIONTYPE)&pSubType[1]; if(pFunctionType->CallingConvention==CV_CALL_NEAR_STD) bStatic=true; } if(bStatic) { NameBuffer+="\t\tstatic "; NameBuffer+=FuncName; } else { NameBuffer+="\t\t"; NameBuffer+=FuncName; } NameBuffer+=";"; if(pFuncItem->IsVirtual) { char OffsetBuf[50]; TSPrintf(OffsetBuf,"/* VTable offset %08x */",pFuncItem->VirtualBaseOffset); NameBuffer+=OffsetBuf; } NameBuffer+="\n"; return NULL; } bool CSourceDebug::IsFunctionPointer(DWORD dwTypeID) { PSDTYPE pType = GetSDTypeBySymbolID(dwTypeID); if(pType==NULL) return false; if(pType->SDTypeInfile.Type!=SD_POINTER) return false; return IsFunctionPointer(pType); } bool CSourceDebug::IsFunctionPointer(PSDTYPE pType) { return IsFunctionPointer(&pType->SDTypeInfile); } bool CSourceDebug::IsFunctionPointer(PSDTYPE_INFILE SDTypeInfile) { PSDTYPE pSubType; if(SDTypeInfile->Type!=SD_POINTER) return false; PSDPOINTERTYPE pPointerType = (PSDPOINTERTYPE)&SDTypeInfile[1]; pSubType = GetSDTypeBySymbolID(pPointerType->TypeID); if(pSubType==NULL) return false; return pSubType->SDTypeInfile.Type==SD_FUNCTIONTYPE; } bool CSourceDebug::GetDataBitFieldInfo(IN DWORD DataID,OUT DWORD& TypeID,OUT DWORD& BitFieldCount,OUT DWORD& TypeLen) { PSDUDTDATAITEM pUdtData; PSDTYPE pSubType; pUdtData = GetSDDateTypeBySymbolID(DataID); pSubType = GetSDTypeBySymbolID(pUdtData->TypeId); TypeLen = pSubType->SDTypeInfile.TypeSize; TypeID=pUdtData->TypeId; BitFieldCount = pUdtData->u.LOCISBITFIELD.Size; return pUdtData->Location == LocIsBitField; } bool CSourceDebug::GetUDTDataOffsetAndLength(IN DWORD DataID,OUT DWORD& Offset,OUT DWORD& DataLen) { PSDUDTDATAITEM pUdtData; PSDTYPE pSubType; pUdtData = GetSDDateTypeBySymbolID(DataID); pSubType = GetSDTypeBySymbolID(pUdtData->TypeId); if(pUdtData->Location==LocIsThisRel) { Offset=pUdtData->u.LOCISTHISREL.Offset; } if(pUdtData->Location==LocIsBitField) { Offset=pUdtData->u.LOCISBITFIELD.Offset; } DataLen=pUdtData->DataSize; return pUdtData->Location == LocIsThisRel || pUdtData->Location == LocIsBitField; } char* CSourceDebug::GetUDTDataMemberName(IN DWORD DataID,OUT CStrA& NameBuffer,OUT DWORD& dwOffset,OUT DWORD& dwLocation,OUT DWORD& dwDataLen) { #define MAX_LENGTH_NAME (0x400) char ArrayTypeName[20]; CStrA DataName; bool bArray=false; char NullChar=0; char TypeName[20]; char* CallConvention; char* OrgDataName; char FuncNameBuf[MAX_LENGTH_NAME]; char *FuncName=FuncNameBuf; int FuncNameLen; PSDUDTDATAITEM pUdtData; PSDTYPE pSubType; bool bFunctionPointer; bool bUnnamedUDT=false; NameBuffer.Empty(); FuncNameLen = MAX_LENGTH_NAME-1; FuncName[0]=0; pUdtData = GetSDDateTypeBySymbolID(DataID); dwDataLen=pUdtData->DataSize; OrgDataName = pUdtData->uName.Name; GetSDSymbolName(pUdtData->TypeId,FuncName,&FuncNameLen); DataName.Empty(); DataName=FuncName; if(pUdtData->Location == LocIsThisRel) { NameBuffer.Format("/* off 0x%04x */\t",pUdtData->u.LOCISTHISREL.Offset); dwOffset=pUdtData->u.LOCISTHISREL.Offset; } if (pUdtData->Location == LocIsBitField) { NameBuffer.Format("/* off 0x%04x */\t",pUdtData->u.LOCISBITFIELD.Offset); dwOffset=pUdtData->u.LOCISBITFIELD.Offset; } if(pUdtData->Location == LocIsStatic) { NameBuffer+="static "; dwOffset=0-1; } dwLocation=pUdtData->Location; bFunctionPointer=false; CallConvention=NULL; pSubType = GetSDTypeBySymbolID(pUdtData->TypeId); TypeName[0]=0; ArrayTypeName[0]=0; bArray=false; if(pSubType) { switch(pSubType->SDTypeInfile.Type) { case SD_POINTER: { PSDPOINTERTYPE pSDPointer=(PSDPOINTERTYPE)&pSubType[1]; PSDFUNCTIONTYPE pFunctionProc; pSubType = GetSDTypeBySymbolID(pSDPointer->TypeID); if(pSubType->SDTypeInfile.Type==SD_FUNCTIONTYPE) { bFunctionPointer=true; pFunctionProc = (PSDFUNCTIONTYPE)&pSubType[1]; CallConvention = GetCallConventionName(pFunctionProc->CallingConvention); } } break; case SD_ARRAY: { PSDARRAYTYPE pSDArrayType = (PSDARRAYTYPE)&pSubType[1]; bUnnamedUDT = IsUnnamedUDT(pSDArrayType->TypeIDElement); pSubType= GetSDTypeBySymbolID(pSDArrayType->TypeIDElement); bArray=true; break; } case SD_CLASS: case SD_STRUCT: case SD_UNION: bUnnamedUDT = IsUnnamedUDT(pSubType->SDTypeInfile.Id); break; } } if(bUnnamedUDT) { CStrA OutBuffer; OutBuffer.Empty(); int i; DumpSDUDTTypeToHeaderFile(&pSubType->SDTypeInfile,DataName); char* pString = DataName; char* pBegin = DataName; OutBuffer+="\n"; for( i = 0;pString[i];i++) if(pString[i]=='\n') { OutBuffer+="\t"; pString[i]=0; if(pString[i+1]) { OutBuffer+=pBegin; OutBuffer+="\n"; } else { pString[i-1]=0; OutBuffer+=pBegin; } pBegin=&pString[i+1]; } DataName=OutBuffer; if(bArray) { DataName+=TStrChr(FuncName,'['); } if(DataName.Length()>MAX_LENGTH_NAME) { FuncName = new char[DataName.Length()+1]; } TStrCpy(FuncName,(char*)DataName); } if(bFunctionPointer) { char * pFunc =GetFuncParamBegin(FuncName); if(pFunc) { pFunc--; *pFunc=0; pFunc++; NameBuffer+=FuncName; NameBuffer+=pUdtData->uName.Name; NameBuffer+=")"; NameBuffer+=pFunc; } }else if(bArray){ char* pIndexBegin = TStrChr(FuncName,'['); if(pIndexBegin) { *pIndexBegin=0; pIndexBegin++; NameBuffer+=FuncName; NameBuffer+=" "; NameBuffer+=pUdtData->uName.Name; NameBuffer+="["; NameBuffer+=pIndexBegin; } }else { NameBuffer+=FuncName; NameBuffer+="\t"; NameBuffer+=pUdtData->uName.Name; if(pUdtData->Location == LocIsBitField) { NameBuffer+=":"; char buf[50]; TSPrintf(buf,"%d",pUdtData->u.LOCISBITFIELD.Size); NameBuffer+=buf; TSPrintf(buf,"\t /* start bit %d */",pUdtData->u.LOCISBITFIELD.Position); NameBuffer+=buf; } } NameBuffer+=";\n"; if(FuncName!=FuncNameBuf) delete []FuncName; return NULL; } bool CSourceDebug::IsUnnamedUDT(DWORD dwTypeID) { PSDTYPE pType = GetSDTypeBySymbolID(dwTypeID); if(pType==NULL) return false; if(pType->SDTypeInfile.Type==SD_CLASS || pType->SDTypeInfile.Type==SD_STRUCT || pType->SDTypeInfile.Type==SD_UNION) if(((PSDCLASSTYPE)&pType[1])->IsUnnamed) return true; return false; } /* char* CSourceDebug::GetArrayIndexBegin(char* pArrayName) { return TStrChr(pArrayName,"["); } */ void CSourceDebug::ReleaseIDiaSymbol() { PSDTYPE pType; IDiaSymbol* Symbol; //SDSymbolList::iterator BeginIt,EndIt; SD_SYMBOL_MAP::iterator BeginIt,EndIt; BeginIt = m_SymbolList.begin();EndIt=m_SymbolList.end(); for(;BeginIt!=EndIt;BeginIt++) { pType = (*BeginIt).first.type; if(pType->Symbol) { Symbol = (IDiaSymbol*)pType->Symbol; pType->Symbol=NULL; Symbol->Release(); } } } SDBASETYPENAME BaseTypeNameStructArray[27]= { {btNoType,"NoType"}, {btVoid,"void"}, {btChar,"char"}, {btWChar,"wchar"}, {btInt,"short"}, {btInt1,"char"}, {btInt2,"short"}, {btInt4,"int"}, {btInt8,"__int64"}, {btUInt,"unsigned short int"}, {btUint1,"unsigned char"}, {btUint2,"unsigned short"}, {btUint4,"unsigned int"}, {btUint8,"unsigned __int64"}, {btFloat,"float"}, {btDouble,"double"}, {btBCD,"BCD"}, {btBool,"bool"}, {btLong,"long"}, {btULong,"unsigned long"}, {btCurrency,"Currency"}, {btDate,"date"}, {btVariant,"variant"}, {btComplex,"complex"}, {btBit,"bit"}, {btBSTR,"BSTR"}, {btHresult,"HRESULT"}, }; ================================================ FILE: Project/SyserApp/Source/SourceDebug.h ================================================ #ifndef _SOURCEDEBUG_H_ #define _SOURCEDEBUG_H_ #include "../../../Addition/DiaSDK2005/include/dia2.h" #include "../../../Addition/DiaSDK2005/include/cvconst.h" #include "../../../Addition/SyserDebugger/SDSymbol.h" #define STRINGTABLEDUMPBLOCKSIZE (0x100000) #define NULLSYMBOLID 0 typedef int (*PACKEDSOURCEFILEFAILEDCALLBACK)(IN char *FileName,OUT char* NewFileName); typedef void (*PFN_PROGRESS_SET_RANGE)(int Range); typedef void (*PFN_PROGRESS_SET_POS)(int Pos); typedef struct _DUMPSTRINGTABLEBLOCK { void * BlockBaseAddress; DWORD BeginOffset; DWORD EndOffset; }DUMPSTRINGTABLEBLOCK; typedef list DUMP_STRING_LOCK_LIST; typedef list ARRAY_DIA_SYMBOL_LIST; typedef struct _STRINGOFTABLE { char* String; _STRINGOFTABLE(char* str) { String=str; } bool operator<(const struct _STRINGOFTABLE dest)const { return TStrCmp(String,dest.String)<0; } inline operator char*()const { return String; } }STRINGOFTABLE; typedef map STRING_TO_ID_MAP; typedef struct _CV_HREG_eName { WCHAR* Name; DWORD id; }CV_HREG_eName; #define SDTYPE_DUMP_DELT sizeof(SDTYPE)-MEMBER_OFFSET(SDTYPE,Size) extern WCHAR *SymTagName[]; extern WCHAR*basetypename[]; extern WCHAR *datakindname[]; extern SDBASETYPENAME BaseTypeNameStructArray[27]; class CTempSymbol { char *m_Name; SDTYPE* m_Sdtype; public: CTempSymbol() { m_Name=NULL; m_Sdtype=NULL; } CTempSymbol(char *name,DWORD SymTag,DWORD ID) { m_Name=name; m_Sdtype=NULL; } bool operator <(const CTempSymbol& source)const { return (TStrCmp(m_Name,source.m_Name)<0); } void SetSDType(SDTYPE* type,char *Name=NULL) { m_Sdtype=type; if(Name) m_Name=Name; } SDTYPE* GetSDType(){return m_Sdtype;} }; typedef struct _STATICDATA { char* Name; DWORD Rva; bool operator<(const struct _STATICDATA dest)const { if(Rva STATIC_DATA_MAP; typedef map SYMBOL_ID_MAP; typedef map ID_TO_SYMBOL_MAP; typedef struct _NAMEANDIDPAIR { char* Name; DWORD Id; bool operator<(const struct _NAMEANDIDPAIR dest)const { return TStrCmp(Name,dest.Name)<0; } }NAMEANDIDPAIR,*PNAMEANDIDPAIR; typedef mapID_TO_SOURCE_FILE_NAME_MAP; typedef map ID_TO_COMPILAND_NAME_MAP; typedef struct _PREDEFINEBASETYPE { DWORD baseType; ULONGLONG Length; char Name[32]; }PREDEFINEBASETYPE,*PPREDEFINEBASETYPE; typedef struct _SYMBOLBASETYPE { DWORD baseType; ULONGLONG Length; bool operator <(const struct _SYMBOLBASETYPE dest)const { if(baseType DATA_TAG_VECTOR; typedef map BASE_TYPE_ID_MAP; typedef struct stSymbolList { DWORD id; SDTYPE* type; bool operator<(const stSymbolList dest)const { return id < dest.id; } bool operator==(const stSymbolList dest)const { return id == dest.id; } }SYMBOLLIST; typedef list SD_SYMBOL_LIST; typedef map SD_SYMBOL_MAP;//SymbolMap; typedef struct _SDCONSTVAR { char* Name; union{ DWORD Value; ULONGLONG llValue; }u; bool operator<(const struct _SDCONSTVAR dest)const { if(u.llValue CONST_VAR_MAP; typedef map ID_TO_FUNCTION_SYMBOL_MAP;//ToFunctionSymbolMap; typedef struct stObjectPtr { DWORD dataKind; DWORD Register; DWORD DataId; SDUDTDATAITEM *pUdtDataItem; bool operator==(const struct stObjectPtr dest)const { if(dataKind==dest.dataKind&&Register==dest.Register) return true; return false; } }THISOBJECTPTR; typedef struct stFunctionID { char* Name; DWORD Rva; PSDFUNCTIONITEM pFuncItem; bool operator<(const struct stFunctionID dest)const { if(Rvadest.Rva) return false; return TStrCmp(Name,dest.Name)<0; } }STFUNCTIONID,*PSTFUNCTIONID; typedef struct _STIMPORTMODULENAME { char* Name; bool operator ==(const struct _STIMPORTMODULENAME dest)const { return TStrICmp(Name,dest.Name)==0; } }STIMPORTMODULENAME,*PSTIMPORTMODULENAME; typedef list LINE_LIST; typedef map ID_FUNCTION_MAP; typedef map FUNCTION_ID_MAP; typedef list THIS_OBJECT_PTR_LIST; typedef map PUBLIC_SYMBOL_MAP ; typedef long (__stdcall *PDLLGETCLASSOBJECT)(REFCLSID rclsid,REFIID riid,LPVOID * ppv); typedef map*> TYPE_DEPENDENCIES_LIST; class MemberInfo { public: MemberInfo(){} MemberInfo(CStrA Name,DWORD Offset,DWORD Location,DWORD Access,DWORD DataLen,DWORD Index) { m_Offset=Offset; m_Location=Location; m_Name=Name; m_Access=Access; m_DataLen=DataLen; m_Index=Index; } MemberInfo(DWORD Offset) { m_Offset=Offset; } MemberInfo(const MemberInfo& dest) { m_Offset=dest.m_Offset; m_Location=dest.m_Location; m_Name=dest.m_Name; m_Access=dest.m_Access; m_DataLen=dest.m_DataLen; m_Index=dest.m_Index; } ~MemberInfo(){} DWORD m_Offset; DWORD m_Location; DWORD m_Access; DWORD m_DataLen; DWORD m_Index; CStrA m_Name; bool operator == (const MemberInfo& dest)const { return m_Offset==dest.m_Offset; } }; typedef list MEMINFOLIST; typedef struct _STUNIONHELP { DWORD Index; CStrA Str; bool operator ==(const struct _STUNIONHELP& dest)const { return Index==dest.Index; } }STUNIONHELP,*P_STUNIONHELP; typedef list UNIONHELPLIST; typedef map OFFSETMAP; typedef map UNIONMEMBERMAP; class CSourceDebug { IDiaSymbol* m_GlobalScopeSymbol; IDiaSession* m_DiaSession; IDiaDataSource *m_DiaDataSource; IDiaEnumFrameData* m_GlobalEnumFrameData; IDiaEnumSegments* m_GlobalEnumSegments; PDLLGETCLASSOBJECT m_DiaDllGetClassObject; HMODULE m_DiaDllModule; public: CSourceDebug(); ~CSourceDebug(); bool Init(); bool Release(); void ReleaseIDiaSymbol(); bool IsTranslated(IN PCSTR szModuleName,PSTR szSymbolFileName=NULL); bool TranslateSymbolFile(IN PCSTR szModuleName,OUT char *szSymbolFileName,bool bPackedSrcFile=true); bool PackedSourceFile(PCSTR pSymbolFileName,PACKEDSOURCEFILEFAILEDCALLBACK pCallBack); bool GetSymbolType(IDiaSymbol* Symbol,DWORD &TypeId,DWORD& symTag); bool InitEnumFrameDataTable(); WCHAR * GetRegisterNameById(DWORD RegId); bool DumpFrameData(); bool MakeSDSegment(); bool CreateSDSymbolFile(const char *FileName,DWORD TimeDateStamp=0,DWORD PECheckSum=0,const char* pExeFileName=NULL); char *GetBaseTypeName1(DWORD BaseType,DWORD length=0); IDiaSymbol* FindSymbol(WCHAR *SymbolName,enum SymTagEnum SymTag=SymTagNull,IDiaSymbol* Symbol=NULL); IDiaSymbol* DumpSymTagPointerType(IDiaSymbol *Symbol,HANDLE pItem=NULL,DWORD *Depth=NULL); bool ListGlobalSymbols(bool IsPDBFile=false); char *MakeFunctionTypeName(IDiaSymbol*Symbol); bool WriteSDSymbolFileCheckSum(const char *FileName); // ݵļ DWORD DumpSDPublicSymbolToFile(DWORD* PublicSymbolNumbers=NULL); DWORD DumpSDThunkTypeToFile(SDTYPE* pType); DWORD DumpSDBasicTypeToFile(SDTYPE* pType); DWORD DumpSDUDTBaseClassTypeToFile(SDTYPE* pType); DWORD DumpSDArrayToFile(SDTYPE* pType); DWORD DumpSDFunctionTypeToFile(SDTYPE* pType); DWORD DumpSDFriendToFile(SDTYPE* pType); DWORD DumpSDPointerTypeToFile(SDTYPE* pType); DWORD DumpSDReferenceTypeToFile(SDTYPE* pType); DWORD DumpSDEnumTypeToFile(SDTYPE* pType); DWORD DumpSDTypedefTypeToFile(SDTYPE* pType); DWORD DumpSDUDTTypeToFile(SDTYPE* pType); DWORD DumpSDManagedToFile(SDTYPE* pType); DWORD DumpSDCustomToFile(SDTYPE* pType); DWORD DumpSDLineNumberToFile(DWORD* LineNumbers=NULL); DWORD DumpSDSourceFileToFile(DWORD* SourceFileCounter=NULL); DWORD DumpSDBlockToFile(SDTYPE* pType); DWORD DumpSDVTableToFile(SDTYPE* pType); DWORD DumpSDCompilandToFile(DWORD* CompilandCounter=NULL); DWORD DumpSDDataToFile(SDUDTDATAITEM* pUdtDataItem); DWORD DumpSDFunctionToFile(PSDFUNCTIONITEM pType); // DWORD DumpSDTypeName(SDTYPE* pType); DWORD DumpSDTypeName(char* Name); DWORD DumpSDDataName(SDUDTDATAITEM* pUdtDataItem); // dump type to header file DWORD DumpSDEnumTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer); DWORD DumpSDTypedefTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer); DWORD DumpSDUDTTypeToHeaderFile(SDTYPE_INFILE* SDTypeInfile,CStrA& OutBuffer); DWORD DumpSDEnumTypeToHeaderFile(SDTYPE* pType,CStrA& OutBuffer); DWORD DumpSDTypedefTypeToHeaderFile(SDTYPE* pType,CStrA& OutBuffer); DWORD DumpSDUDTTypeToHeaderFile(SDTYPE* pType,CStrA& OutBuffer); DWORD DumpFunctionDeclareToHeaderFile(SDFUNCTIONITEM* pFuncItem,CStrA& OutBuffer); bool DumpHeaderFile(char* HeaderFileName); // DWORD MakeSDEXE(IDiaSymbol* Symbol); DWORD MakeSDCompiland(IDiaSymbol* Symbol); DWORD MakeSDUDTType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDVTableShapType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDBaseType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); void MakePredefineSDBaseType(); DWORD MakeSDType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDFunctionType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDPointerReferenceType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDPointerType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDReferenceType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDTypeDefType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDArrayType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDArrayType(IDiaSymbol* Symbol,DWORD PrevArrayTypeId,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDFriend(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDCustomType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDManagedType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDEnumType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDThunk(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDBaseClassType(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDPublicSymbol(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDBlock(IDiaSymbol *Symbol,list* BlockList=NULL); DWORD MakeSDVTable(IDiaSymbol* Symbol,DWORD* ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); //ͷڴĺ void ReleaseSDType(); // DWORD MakeSDDataTagType(IDiaSymbol* Symbol,DWORD *ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); DWORD MakeSDFunction(IDiaSymbol* Symbol,DWORD *ReleaseFlags=NULL,SDTYPE** pTypeRetrun=NULL); // bool SetUDTDataItem(SDUDTDATAITEM* UdtDataItem,IDiaSymbol* Symbol); WCHAR* GetSDSymbolName(SDTYPE* pType,WCHAR *NameBuffer,DWORD *BufferLength,DWORD* RetureLength=NULL); WCHAR* GetSDSymbolName(DWORD SymbolId,WCHAR *NameBuffer,DWORD *BufferLength); char *GetSDSymbolName(DWORD SymbolId); SDTYPE* GetSDTypeBySymbolID(DWORD SymbolID); SDUDTDATAITEM* GetSDDateTypeBySymbolID(DWORD DataId); char* GetFuncParamBegin(char* FunctionPointerName); char* GetArrayIndexBegin(char* pArrayName); char* GetFunctionName(IN PSDFUNCTIONITEM pFuncItem,OUT char* Buffer,IN DWORD BufferLen); char* GetUDTDataMemberName(IN DWORD DataID,OUT CStrA& NameBuffer,DWORD& dwOffset,DWORD& dwLocation,OUT DWORD& dwDataLen); char* GetUDTFunctionMemberName(DWORD FuncID,OUT CStrA& NameBuffer); bool IsFunctionPointer(DWORD dwTypeID); bool IsFunctionPointer(PSDTYPE pType); bool IsFunctionPointer(PSDTYPE_INFILE SDTypeInfile); bool IsUnnamedSDType(char *name); bool ModifyVTableName(char *Name); bool GetPEFileTimeDateStamp(IN const char* pPEFileName,OUT DWORD *TimeDateStamp,OUT DWORD* PECheckSum); PSDFUNCTIONITEM GetFunctionItemByID(IN DWORD FuncID); bool DumpSymTagPublicSymbol(IDiaSymbol* Symbol,HANDLE pItem=NULL); WCHAR *GetSymbolName(IN IDiaSymbol* Symbol,IN DWORD NameMaxLen,OUT WCHAR *Name); WCHAR *GetSymbolTypeName(IN IDiaSymbol* Symbol,IN DWORD NameMaxLen,OUT WCHAR *Name); bool CheckSymbolSymTagType(IDiaSymbol *Symbol,enum SymTagEnum TagType); bool OpenPdbFile(PCSTR filename, IDiaDataSource** m_DiaDataSource, IDiaSession** m_DiaSession, IDiaSymbol** m_GlobalScopeSymbol,OUT bool* IsPDBFile=NULL); void ClosePdbFile(); HRESULT NoRegCoCreate(PCSTR dllName,REFCLSID rclsid,REFIID riid,void **ppv); bool IsSymbolFile(PCSTR pFileName); bool GetPDBFileName(char* pSymbolFileName,char* pPDBFileName,DWORD* BufferLen=NULL); bool GetPEFileFullName(PCSTR FileName,char* pPEFileFullName,DWORD* BufferLen); bool TestFunction(); bool LoadPESym(PCSTR wFileName); bool GetArrayList(IDiaSymbol* Symbol,ARRAY_DIA_SYMBOL_LIST* ArrayList); PFN_PROGRESS_SET_RANGE m_pfnSetRange; PFN_PROGRESS_SET_POS m_pfnSetPos; int m_ProgressStep; SYMBOL_ID_MAP m_TempSymbolID; BASE_TYPE_ID_MAP m_BaseTypeID; STATIC_DATA_MAP m_StaticDataMap; STRING_TO_ID_MAP m_String2IDMap; THIS_OBJECT_PTR_LIST m_ThisObjectPtrList; DATA_TAG_VECTOR m_DataTagVector; map m_ThunkIDMap; FUNCTION_ID_MAP m_FuntionID; ID_FUNCTION_MAP m_IDFuntionMap; SYMBOL_ID_MAP m_UDTSymbolID; SYMBOL_ID_MAP m_PointerID; SYMBOL_ID_MAP m_ReferenceID; SD_SYMBOL_LIST m_FuncSymbolList; SD_SYMBOL_LIST m_TypeDefList; SD_SYMBOL_LIST m_BaseClassList; list m_FunctionRavList; SD_SYMBOL_LIST m_EnumList; SD_SYMBOL_LIST m_ArrayList; SD_SYMBOL_LIST m_UnnamedUdtList; ID_TO_SOURCE_FILE_NAME_MAP m_IdToSourceFileNameMap; ID_TO_COMPILAND_NAME_MAP m_IdToCompilandMap; SYMBOL_ID_MAP::iterator m_TempSymbolIDIter; DWORD m_CurrentSymbolIndex; DWORD m_CurrentDataSymbolIndex; DWORD m_CurrentCompilandIndex; DWORD m_CurrentFunctionSymbolIndex; DWORD m_StringNameID;//=0; bool m_StringName;//=false; ID_TO_SYMBOL_MAP m_IDToSymbolMap; ID_TO_SYMBOL_MAP::iterator m_IDToSymbolMapIter; //SDSymbolList m_SymbolList; SD_SYMBOL_MAP m_SymbolList; char* m_StringTable; HANDLE m_hFile; DWORD m_FileOffset; DWORD m_StringTableOffset; DWORD m_StringIndex; DWORD m_CurrentSourceFileIndex; vector m_StringIDVector; LINE_LIST m_TotalLineNumber; PUBLIC_SYMBOL_MAP m_PublicSymbolList; PUBLIC_SYMBOL_MAP m_VTablePublicSymbolList; DWORD m_CurrentStringTableMaxLen; DWORD m_StringTableBlockBeginOffset; DUMP_STRING_LOCK_LIST m_StringDumpBlockList; TYPE_DEPENDENCIES_LIST m_TypeDependenciesList; ID_TO_FUNCTION_SYMBOL_MAP m_IDToFunctionSymbolMap; list m_ImportModuleNameList; ofstream* m_HeaderOutStream; char * m_PEFileName; char * m_PDBFileName; char* GetSDSymbolName(PSDTYPE pType,OUT char *NameBuffer,INOUT int *BufferLength); char* GetSDSymbolName(IN PSDTYPE_INFILE pType,OUT char *NameBuffer,INOUT int *BufferLength); char* GetSDSymbolName(IN DWORD SymbolId,OUT char *NameBuffer,INOUT int *BufferLength); char* GetFunctionName(IN PSDFUNCTIONITEM pFuncItem,OUT char* NameBuffer,INOUT int* BufferLength); PSDFUNCTIONITEM GetSDFunctionByID(DWORD FunctionId); static SDCALLCONVENTIONPAIR m_CallConvention[24]; static char* GetCallConventionName(DWORD dwType); void InitDependencies(); bool IsUnnamedUDT(DWORD dwTypeID); void ReleaseDependencies(); bool MakeUDTDependencies(PSDTYPE pType); list m_OutputTypeList; void GetDataMemberFullName(IN DWORD DataID,bool HasParentName=false); bool DumpSDUDTTypeToHeaderFile(DWORD TypeID,CStrA& OutBuffer); bool GetDataBitFieldInfo(IN DWORD DataID,OUT DWORD& TypeID,OUT DWORD& BitFieldCount,OUT DWORD& TypeLen);/* λͱһЩϢ */ bool GetUDTDataOffsetAndLength(IN DWORD DataID,OUT DWORD& Offset,OUT DWORD& DataLen);/* udt ݳԱλƺͳ */ \ bool IsAllBitField(MEMINFOLIST& pList,DWORD& BitFieldCount,DWORD& BitFieldBegin,DWORD& BitFieldEnd); /* жϸһUDT ͵ijԱбǷȫλ͵ijԱ */ void InitUnameUDT(SDTYPE_INFILE* SDTypeInfile,MEMINFOLIST& DataList,UNIONMEMBERMAP& UnionMemberMap, UNIONHELPLIST& HelpList); DWORD HaveNestedUnameUnion(DWORD Offset,UNIONMEMBERMAP& UnionMemberMap);//жǷǶ׵ δ UDT bool HaveNestedUnameStruct(DWORD Offset,UNIONMEMBERMAP& UnionMemberMap,MEMINFOLIST& DataList,UNIONHELPLIST& HelpList,DWORD& LastIndex); void InitUnameUDT(SDTYPEIDS TypeIDs, DWORD Offset,MEMINFOLIST& DataList,UNIONMEMBERMAP& UnionMemberMap, UNIONHELPLIST& HelpList,OFFSETMAP& Finish,bool bFirst); }; DWORD GetBaseTypeIdByName(char*Name); #endif /* _SOURCEDEBUG_H_ */ ================================================ FILE: Project/SyserApp/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/SyserApp/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include #include #include #include #include #include using namespace std; #include "../../Code/Source/Code.h" #include "../../EXEAnalyzer/Source/EXEAnalyzer.h" #include "../../Wisp/Source/Wisp.h" #include "../../WinWisp/Source/WinWisp.h" //NA #include "../../SerialNumber/Source/Validate.h" #include "ddraw.h" #include #include #include #include #include //NA #include "../../SDbgMsg/Source/SDbgMsg.h" #include "../../Syser/Source/SyserDefine.h" #include "../../Syser/Source/X86Define.h" #include "NTDriver.h" #include "DXTest.h" #include "SourceDebug.h" #include "Resource.h" #include "SyserResource.h" #include "SyserAppOption.h" #include "../../Syser/Source/SyserOption.h" #include "../../Syser/Source/ColorOption.h" #include "../../Addition/SyserDebugger/SyserVersion.h" #endif ================================================ FILE: Project/SyserApp/Source/SymbolDownloader.cpp ================================================ #include "StdAfx.h" #include "SymbolDownloader.h" #include "NoPDBSymbol.h" #ifdef CODE_OS_WIN #include #ifdef _SYSER_ #include "../Syser/SyserApp.h" #else #include "SyserApp.h" CSyserApp* gpSyser=&theApp; #endif #endif enum CSymbolDownloaderDlg::WISP_FORM_ID { CMD_ID_BUTTON_ADDFILE = WISP_ID_USER_START, CMD_ID_BUTTON_DELFILE, CMD_ID_BUTTON_GETSYMBOL, CMD_ID_BUTTON_STOP, CMD_ID_LIST_FILE, CMD_ID_EDIT_SYMBOLSITE, CMD_ID_BUTTON_RESETSYMBOLSITE, CMD_ID_EDIT_PDBSAVEPATH, CMD_ID_BUTTON_BROWSEPDBSAVEPATH, CMD_ID_EDIT_SDSSAVEPATH, CMD_ID_BUTTON_BROWSESDSSAVEPATH, CMD_ID_UPDATEDOWNLOADSTATE, CMD_ID_STATIC_SYMBOL_SITE, CMD_ID_STATIC_PDB_PATH, CMD_ID_STATIC_SDS_PATH, CMD_ID_STATIC_MAIN_DIB, }; WISP_MSG_MAP_BEGIN(CSymbolDownloaderDlg) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnResize) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CSymbolDownloaderDlg) WISP_MSG_CMD_MAP(CMD_ID_UPDATEDOWNLOADSTATE,OnCmdUpdateDownLoadState) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CSymbolDownloaderDlg) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_RESETSYMBOLSITE,OnEventButtonResetSymbolSite) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_BROWSEPDBSAVEPATH,OnEventButtonBrowsePDBSavePath) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_BROWSESDSSAVEPATH,OnEventButtonBrowseSDSSavePath) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_STOP,OnEventButtonStop) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_ADDFILE,OnEventButtonAddFile) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_DELFILE,OnEventButtonDelFile) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_GETSYMBOL,OnEventButtonGetSymbol) WISP_MSG_EVENT_MAP_END WISP_FORM_RES_ITEM CSymbolDownloaderDlg::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,500,400}, WISP_ID_NULL, WISP_WS_NULL, }, { WISP_CTRL_LIST, {10,10,390,220}, CMD_ID_LIST_FILE, WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER|WISP_WLS_SELECTED_ALWAYS, NULL, NULL, }, { WISP_CTRL_BUTTON, {420,50,100,20}, CMD_ID_BUTTON_ADDFILE, WISP_BS_NORMAL, WSTR("Add File(s)"), NULL, }, { WISP_CTRL_BUTTON, {420,80,100,20}, CMD_ID_BUTTON_DELFILE, WISP_BS_NORMAL, WSTR("Del File(s)"), NULL, }, { WISP_CTRL_BUTTON, {420,110,100,20}, CMD_ID_BUTTON_GETSYMBOL, WISP_BS_NORMAL, WSTR("Get Symbols"), NULL, }, { WISP_CTRL_BUTTON, {420,140,100,20}, CMD_ID_BUTTON_STOP, WISP_BS_NORMAL, WSTR("Stop"), NULL, }, { WISP_CTRL_STATIC_DIB, {460,180,32,32}, CMD_ID_STATIC_MAIN_DIB, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:1" }, { WISP_CTRL_STATIC_STRING, {10,240,70,20}, CMD_ID_STATIC_SYMBOL_SITE, WISP_WS_NULL, WSTR("Symbol Site"), NULL, }, { WISP_CTRL_STATIC_STRING, {10,270,110,20}, CMD_ID_STATIC_PDB_PATH, WISP_WS_NULL, WSTR("Download PDB Path"), NULL, }, { WISP_CTRL_STATIC_STRING, {10,300,110,20}, CMD_ID_STATIC_SDS_PATH, WISP_WS_NULL, WSTR("Converted SDS Path"), NULL, }, { WISP_CTRL_EDIT, {130,240,270,20}, CMD_ID_EDIT_SYMBOLSITE, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_EDIT, {130,270,270,20}, CMD_ID_EDIT_PDBSAVEPATH, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_EDIT, {130,300,270,20}, CMD_ID_EDIT_SDSSAVEPATH, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, }, { WISP_CTRL_BUTTON, {420,240,100,20}, CMD_ID_BUTTON_RESETSYMBOLSITE, WISP_BS_NORMAL, WSTR("Reset"), NULL, }, { WISP_CTRL_BUTTON, {420,270,100,20}, CMD_ID_BUTTON_BROWSEPDBSAVEPATH, WISP_BS_NORMAL, WSTR("Browse"), NULL, }, { WISP_CTRL_BUTTON, {420,300,100,20}, CMD_ID_BUTTON_BROWSESDSSAVEPATH, WISP_BS_NORMAL, WSTR("Browse"), NULL, }, {WISP_CTRL_NULL} }; CSymbolDownloaderDlg::CSymbolDownloaderDlg() { m_SDSSavePathIndex=0; m_PDBSavePathIndex=0; m_pFormRes = m_FormRes; m_GetSymbolThread=false; m_Stop=false; InitializeCriticalSection(&m_CriticalSection); } CSymbolDownloaderDlg::~CSymbolDownloaderDlg() { SDSSAVEPATHLIST::IT BeginIT,EndIT; BeginIT = m_SDSSavePathList.Begin(); EndIT = m_SDSSavePathList.End(); for(;BeginIT!=EndIT;BeginIT++) delete (*BeginIT).Name; PDBSAVEPATHLIST::IT BeginIT1,EndIT1; BeginIT1 = m_PDBSavePathList.Begin(); EndIT1 = m_PDBSavePathList.End(); for(;BeginIT1!=EndIT1;BeginIT1++) delete (*BeginIT1).Name; SYMFINDPATHLIST::IT BeginIT2,EndIT2; BeginIT2 = m_SymFindPathList.Begin(); EndIT2 = m_SymFindPathList.End(); for(;BeginIT2!=EndIT2;BeginIT2++) delete (*BeginIT2).Name; DeleteCriticalSection(&m_CriticalSection); } bool CSymbolDownloaderDlg::OnResize(IN WISP_MSG*pMsg) { m_FileList->Resize(m_ClientRect.cx - m_AddFileButton->m_WindowRect.cx - 60 ,m_ClientRect.cy-120,false); m_AddFileButton->MoveToClient(m_ClientRect.cx - m_AddFileButton->m_WindowRect.cx - 20,m_AddFileButton->m_ScrWindowRect.y - m_ScrWindowRect.y,false); m_DelFileButton->MoveToClient(m_ClientRect.cx - m_DelFileButton->m_WindowRect.cx - 20,m_DelFileButton->m_ScrWindowRect.y - m_ScrWindowRect.y,false); m_GetSymbolButton->MoveToClient(m_ClientRect.cx - m_GetSymbolButton->m_WindowRect.cx - 20,m_GetSymbolButton->m_ScrWindowRect.y - m_ScrWindowRect.y,false); m_StopButton->MoveToClient(m_ClientRect.cx - m_StopButton->m_WindowRect.cx - 20,m_StopButton->m_ScrWindowRect.y - m_ScrWindowRect.y,false); m_MainStaticDIB->MoveToClient(m_ClientRect.cx - m_MainStaticDIB->m_WindowRect.cx - 50,m_MainStaticDIB->m_ScrWindowRect.y - m_ScrWindowRect.y,false); m_SymbolSiteStatic->MoveToClient(10,m_ClientRect.cy - 90,false); m_PDBPathStatic->MoveToClient(10,m_ClientRect.cy - 60,false); m_SDSPathStatic->MoveToClient(10,m_ClientRect.cy - 30,false); m_SymbolSiteEdit->MoveToClient(150,m_SymbolSiteStatic->m_ScrWindowRect.y-m_ScrWindowRect.y-5,false); m_SymbolSiteEdit->Resize(m_FileList->m_WindowRect.cx- m_SymbolSiteEdit->m_ScrWindowRect.x +m_FileList->m_ScrWindowRect.x,m_SymbolSiteEdit->m_WindowRect.cy,false); m_PDBSavePathEdit->MoveToClient(150,m_PDBPathStatic->m_ScrWindowRect.y-m_ScrWindowRect.y-5,false); m_PDBSavePathEdit->Resize(m_FileList->m_WindowRect.cx- m_PDBSavePathEdit->m_ScrWindowRect.x +m_FileList->m_ScrWindowRect.x,m_PDBSavePathEdit->m_WindowRect.cy,false); m_SDSSavePathEdit->MoveToClient(150,m_SDSPathStatic->m_ScrWindowRect.y-m_ScrWindowRect.y-5,false); m_SDSSavePathEdit->Resize(m_FileList->m_WindowRect.cx- m_SDSSavePathEdit->m_ScrWindowRect.x +m_FileList->m_ScrWindowRect.x,m_SDSSavePathEdit->m_WindowRect.cy,false); m_SymbolSiteResetButton->MoveToClient(m_ClientRect.cx-m_SymbolSiteResetButton->m_WindowRect.cx-20,m_SymbolSiteStatic->m_ScrWindowRect.y-m_ScrWindowRect.y-5,false); m_BrowsePDBSavePathButton->MoveToClient(m_ClientRect.cx-m_BrowsePDBSavePathButton->m_WindowRect.cx-20,m_PDBPathStatic->m_ScrWindowRect.y-m_ScrWindowRect.y-5,false); m_BrowseSDSSavePathButton->MoveToClient(m_ClientRect.cx-m_BrowseSDSSavePathButton->m_WindowRect.cx-20,m_SDSPathStatic->m_ScrWindowRect.y-m_ScrWindowRect.y-5,false); return true; } bool CSymbolDownloaderDlg::OnEventButtonResetSymbolSite(IN WISP_MSG*pMsg) { m_SymbolSiteEdit->SetWindowText(OrgSyserAppOption.szSymbolSite); m_SymbolSiteEdit->Update(); return true; } bool CSymbolDownloaderDlg::OnEventButtonBrowsePDBSavePath(IN WISP_MSG*pMsg) { WCHAR szPathName[MAX_FN_LEN]; if(m_pWispBase->SelectDirForm(szPathName,WSTR("Please select PDB Save Path"))==false) return true; m_PDBSavePathEdit->SetWindowText(szPathName); m_PDBSavePathEdit->Update(); return true; } bool CSymbolDownloaderDlg::OnEventButtonBrowseSDSSavePath(IN WISP_MSG*pMsg) { WCHAR szPathName[MAX_FN_LEN]; if(m_pWispBase->SelectDirForm(szPathName,WSTR("Please select Converted SDS Save Path"))==false) return true; m_SDSSavePathEdit->SetWindowText(szPathName); m_SDSSavePathEdit->Update(); return true; } bool CSymbolDownloaderDlg::OnEventButtonAddFile(IN WISP_MSG*pMsg) { char szFileNameA[MAX_FN_LEN]; WCHAR szFileName[MAX_FN_LEN]; if(m_pWispBase->SelectFileForm(NULL,WSTR("Binaries Files|*.exe;*.dll;*.cpl;*.sys;*.scr;*.ocx|All Files|*.*|"),false,szFileName,MAX_FN_LEN)==false) return true; WORKFILELIST::IT FindIT; HANDLE hItem; UnicodeToAnsi(szFileName,szFileNameA,MAX_FN_LEN); FindIT = m_CurrentFileList.InsertUnique(szFileNameA); if(FindIT!=m_CurrentFileList.End()) { (*FindIT).FileName = FindIT.Key(); hItem = m_FileList->InsertItem(szFileName); m_FileList->SetItemData(hItem,1,0); } Update(); return true; } bool CSymbolDownloaderDlg::OnEventButtonStop(IN WISP_MSG*pMsg) { m_Stop=true; return true; } bool CSymbolDownloaderDlg::OnEventButtonDelFile(IN WISP_MSG*pMsg) { HANDLE hItem,hNextItem; WCHAR* pFileName; char* Name; WORKFILELIST::IT FindIT; hItem = m_FileList->GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return true; do { pFileName = m_FileList->GetItemText(hItem); Name = new char[TStrLen(pFileName)+1]; TStrCpy(Name,pFileName); FindIT = m_CurrentFileList.Find(Name); if(FindIT!=m_CurrentFileList.End()) { m_CurrentFileList.Remove(FindIT); } hNextItem = m_FileList->GetNextItem(hItem,WISP_WLIS_SELECTED); m_FileList->RemoveItem(hItem); hItem=hNextItem; delete Name; } while(hItem); Update(); return true; } DWORD WINAPI GetSymbolThread(LPVOID lpParameter) { PDBSAVEPATHLIST::IT PDBIT; SDSSAVEPATHLIST::IT SDSIT; STPATHNAME stPDBName; STPATHNAME stSDSName; WORKFILELIST::IT BeginIT,EndIT; WCHAR* PathName; char* pStr; CGetSymbolStat CurSymbolStat; CSymbolDownloaderDlg* pDlg = (CSymbolDownloaderDlg*)lpParameter; pDlg->m_GetSymbolThread=true; pDlg->m_Stop=false; for(;pDlg->m_Stop==false;) { EnterCriticalSection(&pDlg->m_CriticalSection); BeginIT=pDlg->m_CurrentFileList.Begin(); EndIT=pDlg->m_CurrentFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).Stat>=2) continue; break; } if(BeginIT==EndIT) { LeaveCriticalSection(&pDlg->m_CriticalSection); pDlg->m_GetSymbolThread=false; break; } if((*BeginIT).Stat==0) { PathName = pDlg->m_PDBSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stPDBName.Name = pStr; TStrCpy(pStr,PathName); PDBIT = pDlg->m_PDBSavePathList.Find(stPDBName); if(PDBIT==pDlg->m_PDBSavePathList.End()) { pDlg->m_PDBSavePathList.Append(stPDBName); } else { delete []pStr; stPDBName=*PDBIT; } PathName = pDlg->m_SDSSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stSDSName.Name = pStr; TStrCpy(pStr,PathName); SDSIT = pDlg->m_SDSSavePathList.Find(stSDSName); if(SDSIT==pDlg->m_SDSSavePathList.End()) { pDlg->m_PDBSavePathList.Append(stSDSName); } else { delete []pStr; stSDSName=*SDSIT; } (*BeginIT).Stat=1; (*BeginIT).PDBSavePath=stPDBName.Name; (*BeginIT).SDSSavePath=stSDSName.Name; } (*BeginIT).Stat=2; CurSymbolStat=(*BeginIT); LeaveCriticalSection(&pDlg->m_CriticalSection); WIN32_FIND_DATA FindData; HANDLE hFindHandle; hFindHandle = FindFirstFile(CurSymbolStat.PDBSavePath,&FindData); if(hFindHandle == INVALID_HANDLE_VALUE) { CreateDirectory(CurSymbolStat.PDBSavePath,NULL); }else FindClose(hFindHandle); hFindHandle = FindFirstFile(CurSymbolStat.SDSSavePath,&FindData); if(hFindHandle == INVALID_HANDLE_VALUE) { CreateDirectory(CurSymbolStat.SDSSavePath,NULL); }else FindClose(hFindHandle); pDlg->DownLoadSymbol(CurSymbolStat); } return 0; } bool CSymbolDownloaderDlg::DownLoadSymbol(CGetSymbolStat& SymbolStat) { CPEFile PEFile; DWORD Index; PE_DEBUG_MISC DebugMisc; PE_DEBUG_PDB DebugPDB; PE_DEBUG_CODEVIEW DebugCodeView; PPE_DEBUG_DIRECTORY pDebugDirectory; PE_DATA_DIR DebugDataDirectory; DWORD DebugDirecotryNum=0; DWORD Signature; BOOL bRet; DWORD ErrorCode=0; DWORD SymbolFileType = 0xffffffff; DWORD ReadLen; DWORD PathLen; BYTE * Buffer=NULL; TListDeleteFileList; char* NoPathFileName; char FindPath[MAX_PATH+1]; char FileName[MAX_PATH+1]; char FindFileName[MAX_PATH+1]; char SymbolFileName[MAX_PATH+1]; WISP_MSG Msg; memset(&DebugDataDirectory,0,sizeof(PE_DATA_DIR)); if(PEFile.Open(SymbolStat.FileName)==false) return false; if(PEFile.GetDataDirectory(6,&DebugDataDirectory)==false) goto local_quit; if(DebugDataDirectory.VirtualAddress ==0) goto local_quit; if(DebugDataDirectory.Size>0x10000||DebugDataDirectory.Size==0) goto local_quit; NoPathFileName = TGetFileName(SymbolStat.FileName); PathLen = *(DWORD*)&NoPathFileName-*(DWORD*)&SymbolStat.FileName; Buffer=new BYTE[DebugDataDirectory.Size]; memset(Buffer,0,DebugDataDirectory.Size); ReadLen = PEFile.ReadImageMemory(DebugDataDirectory.VirtualAddress+PEFile.m_PEHead.ImageBase,Buffer,DebugDataDirectory.Size); if(ReadLen!=DebugDataDirectory.Size) goto local_quit; pDebugDirectory =(PPE_DEBUG_DIRECTORY) Buffer; DebugDirecotryNum = DebugDataDirectory.Size / sizeof(PE_DEBUG_DIRECTORY); for(Index = 0; Index::IT BeginIT,EndIT; BeginIT=DeleteFileList.Begin(); EndIT=DeleteFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { BOOL bretf=false; bretf = ::DeleteFile(*BeginIT); if(bretf==false) ::MessageBox(NULL,*BeginIT,"Delete File Error!",MB_OK); delete *BeginIT; } DeleteFileList.Clear(); Msg.Command.Param1=1; POST_MSG(&Msg); } local_quit: if(Buffer) delete []Buffer; PEFile.Close(); return true; } bool CSymbolDownloaderDlg::TranslateSymbolFile(IN int Type,IN char* pExeFileName,OUT char* pSymbolFileName) { if(Type!=1) { CSourceDebug PDBExplorer; return PDBExplorer.TranslateSymbolFile(pExeFileName,pSymbolFileName); } CNoPDBSymbol NoPDBSymbol; NoPDBSymbol.Init(); return NoPDBSymbol.TranslateSymbolFile(pExeFileName,pSymbolFileName); } bool CSymbolDownloaderDlg::GetDebugCodeviewByDbg(char* DbgFileName,PPE_DEBUG_CODEVIEW DebugCodeView) { DWORD Signature=('0'<<24)+('1'<<16)+('B'<<8)+'N'; DWORD i; bool bRet=false; CImageFile ImageFile; BYTE *Buf=NULL; if(ImageFile.Open(DbgFileName)==false) return false; if(ImageFile.m_FileSize<=0x100000*10&&ImageFile.m_FileSize>100) { Buf = new BYTE[ImageFile.m_FileSize]; if(ImageFile.ReadFile(0,Buf,ImageFile.m_FileSize)==false) { goto local_quit; } for(i = 0;i < ImageFile.m_FileSize-3;i++) { if(*(DWORD*)&Buf[i]==Signature) { bRet=true; *DebugCodeView =*(PPE_DEBUG_CODEVIEW)&Buf[i]; break; } } } local_quit: if(Buf) delete []Buf; ImageFile.Close(); return bRet; } bool CSymbolDownloaderDlg::OnEventButtonGetSymbol(IN WISP_MSG*pMsg) { PDBSAVEPATHLIST::IT PDBIT; SDSSAVEPATHLIST::IT SDSIT; SYMFINDPATHLIST::IT SYMIT; STPATHNAME stPDBName; STPATHNAME stSDSName; STPATHNAME stSymFindPathName; WORKFILELIST::IT BeginIT,EndIT; WCHAR* PathName; char* pStr; EnterCriticalSection(&m_CriticalSection); PathName = m_SymbolSiteEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stSymFindPathName.Name = pStr; TStrCpy(pStr,PathName); SYMIT = m_SymFindPathList.Find(stSymFindPathName); if(SYMIT==m_SymFindPathList.End()) { m_SymFindPathList.Append(stSymFindPathName); } else { delete []pStr; stSymFindPathName=*SYMIT; } PathName = m_PDBSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stPDBName.Name = pStr; TStrCpy(pStr,PathName); PDBIT = m_PDBSavePathList.Find(stPDBName); if(PDBIT==m_PDBSavePathList.End()) { m_PDBSavePathList.Append(stPDBName); } else { delete []pStr; stPDBName=*PDBIT; } PathName = m_SDSSavePathEdit->GetWindowText(); pStr = new char[TStrLen(PathName)+1]; stSDSName.Name = pStr; TStrCpy(pStr,PathName); SDSIT = m_SDSSavePathList.Find(stSDSName); if(SDSIT==m_SDSSavePathList.End()) { m_PDBSavePathList.Append(stSDSName); } else { delete []pStr; stSDSName=*SDSIT; } BeginIT=m_CurrentFileList.Begin(); EndIT=m_CurrentFileList.End(); for(;BeginIT!=EndIT;BeginIT++) { if((*BeginIT).Stat==0) { (*BeginIT).Stat=1; (*BeginIT).PDBSavePath=stPDBName.Name; (*BeginIT).SDSSavePath=stSDSName.Name; (*BeginIT).FindPath=stSymFindPathName.Name; } } if(m_GetSymbolThread==false) { ::CreateThread(NULL,0x100000,GetSymbolThread,this,0,&m_GetSymbolThreadID); } LeaveCriticalSection(&m_CriticalSection); return true; } bool CSymbolDownloaderDlg::OnFormCreate(IN WISP_MSG*pMsg) { InitDbgHelp(); m_AddFileButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_ADDFILE); m_DelFileButton =(CWispButton*)GetFormItem(CMD_ID_BUTTON_DELFILE); m_GetSymbolButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_GETSYMBOL); m_StopButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_STOP); m_FileList = (CWispList*)GetFormItem(CMD_ID_LIST_FILE); m_SymbolSiteEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_SYMBOLSITE); m_SymbolSiteResetButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_RESETSYMBOLSITE); m_PDBSavePathEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_PDBSAVEPATH); m_BrowsePDBSavePathButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_BROWSEPDBSAVEPATH); m_SDSSavePathEdit = (CWispEdit*)GetFormItem(CMD_ID_EDIT_SDSSAVEPATH); m_BrowseSDSSavePathButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_BROWSESDSSAVEPATH); m_SymbolSiteStatic = (CWispStaticStr*)GetFormItem(CMD_ID_STATIC_SYMBOL_SITE); m_PDBPathStatic = (CWispStaticStr*)GetFormItem(CMD_ID_STATIC_PDB_PATH); m_SDSPathStatic = (CWispStaticStr*)GetFormItem(CMD_ID_STATIC_SDS_PATH); m_MainStaticDIB = (CWispStaticDIB*)GetFormItem(CMD_ID_STATIC_MAIN_DIB); m_FileList->InsertColumn(WSTR("FileName"),250); m_FileList->InsertColumn(WSTR("Status"),90); m_SymSetOptions(SYMOPT_DEBUG); m_SymbolSiteEdit->SetWindowText(SyserAppOption.szSymbolSite); m_PDBSavePathEdit->SetWindowText(SyserAppOption.szDownloadSymbolPath); m_SDSSavePathEdit->SetWindowText(SyserAppOption.szConvertedSDSPath); return true; } bool CSymbolDownloaderDlg::InitDbgHelp() { m_DbgHelpModule = LoadLibrary("DbgHelp.dll"); if(m_DbgHelpModule==NULL) return false; LoadDbgHelpApi(); return true; } void CSymbolDownloaderDlg::ReleaseDbgHelp() { if(m_DbgHelpModule) FreeLibrary(m_DbgHelpModule); } bool CSymbolDownloaderDlg::LoadDbgHelpApi() { m_SymFindFileInPath =(fpSymFindFileInPath) GetProcAddress(m_DbgHelpModule,"SymFindFileInPath"); m_SymSetOptions = (fpSymSetOptions)GetProcAddress(m_DbgHelpModule,"SymSetOptions"); m_SymGetOptions = (fpSymGetOptions)GetProcAddress(m_DbgHelpModule,"SymGetOptions"); return true; } bool CSymbolDownloaderDlg::OnCmdUpdateDownLoadState(IN WISP_MSG *pMsg) { char* FileName; CWispString pString; WCHAR * TmpName; HANDLE hItem; FileName = (char*)pMsg->Command.Param2; hItem = m_FileList->GetItem(0); for(;hItem;) { pString = m_FileList->GetItemText(hItem); TmpName = pString; if(TStrICmp(TmpName,FileName)==0) break; hItem = m_FileList->GetNextItem(hItem); } if(hItem==NULL) return true; switch(pMsg->Command.Param1) { case 1: m_FileList->SetItemText(hItem,1,WSTR("Success")); m_FileList->Update(); break; case 2: m_FileList->SetItemText(hItem,1,WSTR("Fail !!!")); m_FileList->Update(); break; case 3: m_FileList->SetItemText(hItem,1,WSTR("Downloading.")); m_FileList->Update(); break; case 4: m_FileList->SetItemText(hItem,1,WSTR("Analyzing Symbol file...")); m_FileList->Update(); break; default : break; } return true; } ================================================ FILE: Project/SyserApp/Source/SymbolDownloader.h ================================================ #ifndef _SYMBOLDOWNLOADER_H_ #define _SYMBOLDOWNLOADER_H_ typedef struct _STPATHNAME { char* Name; bool operator ==(const struct _STPATHNAME dest)const { return TStrCmp(Name,dest.Name)==0; } }STPATHNAME,*PSTPATHNAME; class CGetSymbolStat { public: DWORD Stat; char* SDSSavePath; char* PDBSavePath; char* FindPath; char* FileName; CGetSymbolStat() { Stat=0; SDSSavePath=NULL; PDBSavePath=NULL; FindPath=NULL; FileName=NULL; } }; typedef TMap WORKFILELIST; typedef TList SDSSAVEPATHLIST; typedef TList PDBSAVEPATHLIST; typedef TList SYMFINDPATHLIST; #define IMAGEAPI_POINTER __stdcall typedef BOOL (IMAGEAPI_POINTER* fpSymFindFileInPath)( HANDLE hprocess, PCSTR SearchPath, PCSTR FileName, PVOID id, DWORD two, DWORD three, DWORD flags, PSTR FoundFile, PFINDFILEINPATHCALLBACK callback, PVOID context ); typedef DWORD (IMAGEAPI_POINTER*fpSymSetOptions)( DWORD SymOptions ); typedef DWORD (IMAGEAPI_POINTER* fpSymGetOptions)(void); class CSymbolDownloaderDlg:public CWispForm { fpSymSetOptions m_SymSetOptions; fpSymGetOptions m_SymGetOptions; fpSymFindFileInPath m_SymFindFileInPath; HMODULE m_DbgHelpModule; DWORD m_GetSymbolThreadID; friend DWORD WINAPI GetSymbolThread(LPVOID lpParameter); CRITICAL_SECTION m_CriticalSection; bool m_Stop; bool m_GetSymbolThread; DWORD m_SDSSavePathIndex; DWORD m_PDBSavePathIndex; SDSSAVEPATHLIST m_SDSSavePathList; PDBSAVEPATHLIST m_PDBSavePathList; SYMFINDPATHLIST m_SymFindPathList; WORKFILELIST m_CurrentFileList; CWispButton* m_AddFileButton; CWispButton* m_DelFileButton; CWispButton* m_GetSymbolButton; CWispButton* m_StopButton; CWispList* m_FileList; CWispEdit* m_SymbolSiteEdit; CWispButton* m_SymbolSiteResetButton; CWispEdit* m_PDBSavePathEdit; CWispButton* m_BrowsePDBSavePathButton; CWispEdit* m_SDSSavePathEdit; CWispButton* m_BrowseSDSSavePathButton; CWispStaticStr*m_SymbolSiteStatic; CWispStaticStr*m_PDBPathStatic; CWispStaticStr*m_SDSPathStatic; CWispStaticDIB*m_MainStaticDIB; public: CSymbolDownloaderDlg(void); ~CSymbolDownloaderDlg(void); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnResize); //DECLARE_WISP_MSG(OnTimer) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnCmdUpdateDownLoadState) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventButtonResetSymbolSite) DECLARE_WISP_MSG_EVENT(OnEventButtonBrowsePDBSavePath) DECLARE_WISP_MSG_EVENT(OnEventButtonBrowseSDSSavePath) DECLARE_WISP_MSG_EVENT(OnEventButtonStop) DECLARE_WISP_MSG_EVENT(OnEventButtonAddFile) DECLARE_WISP_MSG_EVENT(OnEventButtonDelFile) DECLARE_WISP_MSG_EVENT(OnEventButtonGetSymbol) bool DownLoadSymbol(CGetSymbolStat& SymbolStat ); bool GetDebugCodeviewByDbg(char* DbgFileName,PPE_DEBUG_CODEVIEW DebugCodeView); bool TranslateSymbolFile(IN int Type,IN char* pExeFileName,OUT char* pSymbolFileName); bool InitDbgHelp(); void ReleaseDbgHelp(); bool LoadDbgHelpApi(); //CWispProgress m_Progress; }; DWORD WINAPI GetSymbolThread(LPVOID lpParameter); #endif //_SYMBOLDOWNLOADER_H_ ================================================ FILE: Project/SyserApp/Source/SymbolModuleList.cpp ================================================ #include "stdafx.h" #include "SymbolModuleList.h" #include "SyserApp.h" enum CModuleSymbolForm::WISP_FORM_ID { CMD_ID_BUTTON_DELMODULE = WISP_ID_USER_START, CMD_ID_BUTTON_ADDMODULE, CMD_ID_LIST_SYMBOLMODULE, }; WISP_MSG_MAP_BEGIN(CModuleSymbolForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CModuleSymbolForm) //WISP_MSG_CMD_MAP(CMD_ID_UPDATEDOWNLOADSTATE,OnCmdUpdateDownLoadState) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CModuleSymbolForm) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_DELMODULE,OnEventButtonDelModule) WISP_MSG_EVENT_MAP(CMD_ID_BUTTON_ADDMODULE,OnEventButtonAddModule) WISP_MSG_EVENT_MAP_END WISP_FORM_RES_ITEM CModuleSymbolForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,500,400}, WISP_ID_NULL, WISP_WS_NULL, }, { WISP_CTRL_LIST, {10,10,390,220}, CMD_ID_LIST_SYMBOLMODULE, WISP_WLS_COLUMN_TITLE|WISP_WS_THIN_BORDER|WISP_WLS_SELECTED_ALWAYS, NULL, NULL, }, { WISP_CTRL_BUTTON, {420,20,100,20}, CMD_ID_BUTTON_ADDMODULE, WISP_BS_NORMAL, WSTR("Add"), NULL, }, { WISP_CTRL_BUTTON, {420,50,100,20}, CMD_ID_BUTTON_DELMODULE, WISP_BS_NORMAL, WSTR("Delete"), NULL, }, {WISP_CTRL_NULL} }; CModuleSymbolForm::CModuleSymbolForm() { m_pFormRes = m_FormRes; } CModuleSymbolForm::~CModuleSymbolForm() { } bool CModuleSymbolForm::OnFormCreate(IN WISP_MSG* pMsg) { m_SymModuleListWnd = (CWispList*)GetFormItem(CMD_ID_LIST_SYMBOLMODULE); m_DelModuleButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_DELMODULE); m_AddModuleButton = (CWispButton*)GetFormItem(CMD_ID_BUTTON_ADDMODULE); m_SymModuleListWnd->InsertColumn(WSTR("SDS File List"),250); return true; } bool CModuleSymbolForm::InsertSymbolModule(const char* SymModuleFullName) { HANDLE hItem; char FileTitleName[MAX_FN_LEN]={0}; SYMMODULEMAP::IT FindIT; FindIT = m_SymModuleMap.InsertUnique(SymModuleFullName); if(FindIT==m_SymModuleMap.End()) return false; TGetFileTitle(SymModuleFullName,FileTitleName); hItem = m_SymModuleListWnd->InsertItemA(FileTitleName); *FindIT=hItem; return true; } bool CModuleSymbolForm::RemoveSymbolModule(const char* SymModuleFullName) { SYMMODULEMAP::IT FindIT; FindIT = m_SymModuleMap.Find(SymModuleFullName); if(FindIT!=m_SymModuleMap.End()) { m_SymModuleListWnd->RemoveItem(*FindIT); m_SymModuleMap.Remove(FindIT); return true; } return false; } bool CModuleSymbolForm::OnEventButtonAddModule(IN WISP_MSG* pMsg) { theApp.m_MainFrame.OnMenuEventLoadSymbol(pMsg); return true; } bool CModuleSymbolForm::OnEventButtonDelModule(IN WISP_MSG* pMsg) { HANDLE hItem; bool bFind = false; SYMMODULEMAP::IT BeginIt,EndIt; hItem = m_SymModuleListWnd->GetNextItem(NULL,WISP_WLIS_SELECTED); if(hItem==NULL) return false; BeginIt = m_SymModuleMap.Begin(); EndIt = m_SymModuleMap.End(); for(;BeginIt!=EndIt;BeginIt++) { if(*BeginIt==hItem) { bFind=true; break; } } if(bFind==false) return false; theApp.m_SyserInterface.UnloadSymbolModuleFile(BeginIt.Key()); return true; } ================================================ FILE: Project/SyserApp/Source/SymbolModuleList.h ================================================ #ifndef _SYMBOLMODULELIST_H_ #define _SYMBOLMODULELIST_H_ typedef TMap SYMMODULEMAP; class CModuleSymbolForm:public CWispForm { CWispButton* m_DelModuleButton; CWispButton* m_AddModuleButton; CWispList* m_SymModuleListWnd; public: CModuleSymbolForm(); ~CModuleSymbolForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; bool InsertSymbolModule(const char* SymModuleFullName); bool RemoveSymbolModule(const char* SymModuleFullName); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) //DECLARE_WISP_MSG(OnTimer) DECLARE_WISP_MSG_CMD_MAP //DECLARE_WISP_MSG_CMD(OnCmdUpdateDownLoadState) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventButtonDelModule) DECLARE_WISP_MSG_EVENT(OnEventButtonAddModule) SYMMODULEMAP m_SymModuleMap; }; #endif /* _SYMBOLMODULELIST_H_ */ ================================================ FILE: Project/SyserApp/Source/SyserApp.cpp ================================================ #include "StdAfx.h" #include "SyserApp.h" #include "MainFrame.h" #include "DXTest.h" #include "ModifyBoot.h" CSyserApp theApp; #ifdef CODE_OS_WIN enum { COPYDATA_CMD_LOAD_SDS=0x100, COPYDATA_CMD_UNLOAD_SDS, COPYDATA_CMD_TRANSLATE_SDS, COPYDATA_CMD_LOAD, COPYDATA_CMD_MAXCMD, }; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return theApp.WinMainStart(hInstance,lpCmdLine,nCmdShow); } #endif int OldiSystemTray; CSyserApp::CSyserApp(void) { GetModulePath(m_szSyserAppCfgFN); TStrCat(m_szSyserAppCfgFN,"SyserApp.cfg"); GetSystemDirectoryA(m_szSyserCfgFN,MAX_FN_LEN); TStrCat(m_szSyserCfgFN,"\\drivers\\Syser.cfg"); GetSystemDirectoryA(m_szSyserColorCfgFN,MAX_FN_LEN); TStrCat(m_szSyserColorCfgFN,"\\drivers\\SyserColor.cfg"); } CSyserApp::~CSyserApp(void) { } void CSyserApp::InitEnv() { } void CSyserApp::LoadCFG() { if(LoadSyserOption(m_szSyserAppCfgFN,&SyserAppOption,sizeof(SyserAppOption))==false) { SaveSyserOption(m_szSyserAppCfgFN,&OrgSyserAppOption,sizeof(OrgSyserAppOption)); SyserAppOption = OrgSyserAppOption; } if(LoadSyserOption(m_szSyserCfgFN,&SyserOption,sizeof(SyserOption))==false) { SaveSyserOption(m_szSyserCfgFN,&OrgSyserOption,sizeof(OrgSyserOption)); SyserOption = OrgSyserOption; } } bool InstallDependData(PCSTR FileNameList) { HANDLE hSrcFile,hDesFile; char szDesFile[MAX_FN_LEN],szSrcFile[MAX_FN_LEN],szFileName[MAX_FN_LEN],*pszDesFile,*pszSrcFile; FILETIME DesTime,SrcTime; PCSTR szBegin,szEnd; GetSystemDirectory(szDesFile,MAX_FN_LEN); TStrCat(szDesFile,"\\drivers\\"); pszDesFile = szDesFile+TStrLen(szDesFile); pszSrcFile = szSrcFile+GetModulePath(szSrcFile); szBegin = FileNameList; while(*szBegin) { szEnd = TStrChr(szBegin,';'); if(szEnd) { TStrCpyLimit(szFileName,szBegin,(int)(szEnd-szBegin)+1); szEnd++; } else { TStrCpy(szFileName,szBegin); szEnd = &szBegin[TStrLen(szBegin)]; } TStrCpy(pszDesFile,szFileName); TStrCpy(pszSrcFile,szFileName); SrcTime.dwLowDateTime = SrcTime.dwHighDateTime = DesTime.dwLowDateTime = DesTime.dwHighDateTime = 0; if(gpFileIO->OpenFile(szSrcFile,&hSrcFile)) { GetFileTime(hSrcFile,NULL,NULL,&SrcTime); gpFileIO->CloseHandle(hSrcFile); } if(gpFileIO->OpenFile(szDesFile,&hDesFile)) { GetFileTime(hDesFile,NULL,NULL,&DesTime); gpFileIO->CloseHandle(hDesFile); } if(SrcTime.dwLowDateTime || SrcTime.dwHighDateTime) { if(SrcTime.dwHighDateTime != DesTime.dwHighDateTime || SrcTime.dwLowDateTime != DesTime.dwLowDateTime) { CopyFile(szSrcFile,szDesFile,FALSE); } } szBegin = szEnd; } return true; } bool CSyserApp::InitInstance() { WCHAR wszBuffer[256]; HWND hWnd; HANDLE hMutex; SYSTEM_INFO SystemInfo; COPYDATASTRUCT CopyData; LRESULT rs; bool bStartAgain=false; StartAgain: CopyData.dwData=COPYDATA_CMD_MAXCMD; if(TStrIStr(m_pCmdLine,"/Uninstall")) { m_SyserInterface.UninstallSyser(); return false; } else if(TStrIStr(m_pCmdLine,"/Install")) { m_SyserInterface.InstallSyser(); return false; } else if(TStrIStr(m_pCmdLine,"/Stop")) { m_SyserInterface.StopSyser(); return false; } else if(TStrNICmp(m_pCmdLine,"/load ",6)==0) { CopyData.dwData=COPYDATA_CMD_LOAD; CopyData.cbData = TStrLen(&m_pCmdLine[6])+1; CopyData.lpData=&m_pCmdLine[6]; } else if(TStrNICmp(m_pCmdLine,"/unloadsds ",11)==0) { CopyData.dwData=COPYDATA_CMD_UNLOAD_SDS; CopyData.cbData = TStrLen(&m_pCmdLine[11])+1; CopyData.lpData=&m_pCmdLine[11]; } else if(TStrNICmp(m_pCmdLine,"/loadsds ",9)==0) { CopyData.dwData=COPYDATA_CMD_LOAD_SDS; CopyData.cbData = TStrLen(&m_pCmdLine[9])+1; CopyData.lpData=&m_pCmdLine[9]; } else if(TStrNICmp(m_pCmdLine,"/tr ",4)==0) { CopyData.dwData=COPYDATA_CMD_TRANSLATE_SDS; CopyData.cbData = TStrLen(&m_pCmdLine[4])+1; CopyData.lpData=&m_pCmdLine[4]; } hMutex = OpenMutex(MUTEX_ALL_ACCESS,false,"Syser Interface"); if(hMutex) { hWnd = ::FindWindow("WispWindowClass",MAIN_WND_NAME); if(hWnd && CopyData.dwData!=COPYDATA_CMD_MAXCMD) rs = ::SendMessage(hWnd,WM_COPYDATA,(WPARAM)m_hLocalWnd,(LPARAM)&CopyData); CloseHandle(hMutex); return false; } InstallDependData("Syser.dat;Wisp.dat;libfunc.fdc;APIDef.lib"); ////////////////////////////////////////////////////////////////////////////// //ļĿ¼ GetSystemDirectory(m_CurDir,MAX_FN_LEN); TStrCat(m_CurDir,"\\drivers\\"); // ////////////////////////////////////////////////////////////////////////////// m_pszDiskList = "Wisp.dat;Syser.dat"; if(CLocalWispApp::InitInstance()==false) { if(bStartAgain==false) { bStartAgain = true; m_SyserInterface.InstallSyser(); goto StartAgain; } return false; } LoadCFG(); GetSystemInfo(&SystemInfo); MEMORYSTATUSEX statex; statex.dwLength = sizeof (statex); GlobalMemoryStatusEx (&statex); if(statex.ullTotalPhys / (1024*1024) < 128) { if(MessageBox(NULL,"Physical memory is less than 128 MB,Syser maybe start fail!","Warning",MB_OK)==IDNO) return false; } //Debug CProcess::GetPrivilege(SE_DEBUG_NAME); m_bHideMouse = true; m_FrameStyle&=~WS_VISIBLE; m_hIcon = LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IDI_ICON_SYSERAPP)); if(SyserAppOption.iTopMost!=0) m_FrameStyleEx|=WS_EX_TOPMOST; TStrCpy(wszBuffer,MAIN_WND_NAME); CreateFrame(wszBuffer,620,430,0); m_MainFrame.Create(NULL,0,0,m_FrameBuffer.Width,m_FrameBuffer.Height,NULL,WISP_ID_MAIN_FRAME,WISP_WS_NULL); m_hNotifyMenu = LoadMenu(m_hLocalInst,MAKEINTRESOURCE(IDR_MENU_NOTIFY_ICON)); m_hSubNotifyMenu = GetSubMenu(m_hNotifyMenu,0); GetClipboardString(); if(m_SyserInterface.Init()==false) { DestroyMenu(m_hNotifyMenu); return false; } LoadHistroy(); theApp.m_MainFrame.m_ConsoleWnd.RunModulePathBat("SyserApp.cmd","-sb"); OldiSystemTray = SyserAppOption.iSystemTray; if(OldiSystemTray) { if(m_SyserInterface.m_bSyserDriverStatus) InsertNotifyIcon(MAIN_WND_NAME,IDI_ICON_SYSERAPP); else InsertNotifyIcon(MAIN_WND_NAME,IDI_ICON_SYSER_OFF); } if(CopyData.dwData!=COPYDATA_CMD_MAXCMD) ::SendMessage(m_hLocalWnd,WM_COPYDATA,(WPARAM)m_hLocalWnd,(LPARAM)&CopyData); InitEnv(); m_UpdateNewVersionDownload.StartupWinsock(); if(m_SyserInterface.m_bAttachFrameBuffer==false && SyserOption.iVideoDetectMode!=SYSER_VDM_USER) { OUTPUT(WSTR("%SyserLoader : Syser Kernel Debugger can't recognise your display driver !\n")); OUTPUT(WSTR("%SyserLoader : Please change Video Display Detect Mode to \"User Mode\" than restart Syser\n")); } ShowWindow(m_hLocalWnd,SW_NORMAL); return true; } int CSyserApp::ExitInstance() { if(OldiSystemTray) RemoveNotifyIcon(IDI_ICON_SYSERAPP); DestroyMenu(m_hNotifyMenu); m_MainFrame.Destroy(); DestroyFrame(); m_UpdateNewVersionDownload.CleanupWinsock(); m_SyserInterface.Release(); if(m_bHistroyModified) SaveHistroy(); return CLocalWispApp::ExitInstance(); } bool CSyserApp::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { POINT pt; switch (message) { case WM_CREATE: SetClipboardViewer(hWnd); return CLocalWispApp::WndProc(hWnd,message,wParam,lParam); case WM_CLOSE: if(OldiSystemTray==0) return CLocalWispApp::WndProc(hWnd,message,wParam,lParam); ShowWindow(m_hLocalWnd,SW_HIDE); break; case WM_DESTROY: if(m_SyserInterface.m_bSyserDriverStatus && SyserAppOption.iAutoStop!=0) { #ifndef __DEMO__VERSION__ if(SyserAppOption.iAutoStop==1 || MessageBox(NULL,"Do you want to unload Syser Debugger ?","Syser",MB_YESNO)==IDYES) m_SyserInterface.StopSyserDriver(); #endif } return CLocalWispApp::WndProc(hWnd,message,wParam,lParam); case WM_DISPLAYCHANGE: if(SyserOption.iVideoDetectMode != SYSER_VDM_KERNEL) { if(SyserOption.iVideoDetectMode == SYSER_VDM_USER || theApp.m_SyserInterface.m_bAttachFrameBuffer==false) theApp.m_SyserInterface.m_SyserDX.LockFrameSurfacer(); } break; case WM_WISP_NOTIFY_ICON: { switch(lParam) { case WM_RBUTTONUP: m_SyserInterface.UpdateDriverStatus(); GetCursorPos(&pt); SetForegroundWindow(m_hLocalWnd); TrackPopupMenu(m_hSubNotifyMenu,0,pt.x,pt.y,0,m_hLocalWnd,NULL); return true; case WM_LBUTTONDOWN: m_SyserInterface.UpdateDriverStatus(); ShowWindow(m_hLocalWnd,SW_NORMAL); BringWindowToTop(m_hLocalWnd); SetForegroundWindow(m_hLocalWnd); return true; } } break; case WM_DRAWCLIPBOARD: theApp.GetClipboardString(); return CLocalWispApp::WndProc(hWnd,message,wParam,lParam); break; case WM_SYSER_GET_CLIPBOARD_STRING: m_SyserInterface.RecvClipboardString(); break; case WM_SHOWWINDOW: break; case WM_COPYDATA: { WCHAR CmdBuffer[MAX_FN_LEN+32]; int Length; PCOPYDATASTRUCT pCopyData; pCopyData=(PCOPYDATASTRUCT)lParam; switch(pCopyData->dwData) { case COPYDATA_CMD_LOAD_SDS: Length = TStrCpy(CmdBuffer,"loadsds "); AnsiToUnicode((PCSTR)pCopyData->lpData,&CmdBuffer[Length],sizeof(CmdBuffer)/sizeof(WCHAR)-Length); m_MainFrame.m_ConsoleWnd.RunCmd(CmdBuffer); break; case COPYDATA_CMD_UNLOAD_SDS: Length = TStrCpy(CmdBuffer,"unloadsds "); AnsiToUnicode((PCSTR)pCopyData->lpData,&CmdBuffer[Length],sizeof(CmdBuffer)/sizeof(WCHAR)-Length); m_MainFrame.m_ConsoleWnd.RunCmd(CmdBuffer); break; case COPYDATA_CMD_TRANSLATE_SDS: Length = TStrCpy(CmdBuffer,"tsf "); AnsiToUnicode((PCSTR)pCopyData->lpData,&CmdBuffer[Length],sizeof(CmdBuffer)/sizeof(WCHAR)-Length); m_MainFrame.m_ConsoleWnd.RunCmd(CmdBuffer); break; case COPYDATA_CMD_LOAD: Length = TStrCpy(CmdBuffer,"load "); AnsiToUnicode((PCSTR)pCopyData->lpData,&CmdBuffer[Length],sizeof(CmdBuffer)/sizeof(WCHAR)-Length); m_MainFrame.m_ConsoleWnd.RunCmd(CmdBuffer); break; } } break; case WM_SYSER_UNINSTALL: SyserAppOption.iAutoStop = 0; PostQuitMessage(0); return true; case WM_SYSER_UPDATE_DBG_MSG: theApp.m_SyserInterface.UpdateDbgMsg(theApp.m_SyserInterface.m_hDbgMsgDevice); break; case WM_SYSER_UPDATE_DRV_STATE: theApp.m_SyserInterface.UpdateDriverStatus(); break; case WM_SYSER_APP_RELOAD_CFG: theApp.LoadCFG(); OUTPUT(WSTR("%SyserLoader : Reload SyserApp.cfg !\n")); break; case WM_COMMAND: { switch(wParam) { case ID_MENU_EXIT: DestroyWindow(m_hLocalWnd); return true; case ID_MENU_SHOW: if(IsWindowVisible(m_hLocalWnd)) ShowWindow(m_hLocalWnd,SW_HIDE); else ShowWindow(m_hLocalWnd,SW_SHOW); return true; case ID_MENU_ENABLE_SYSER: m_SyserInterface.StartSyserDriver(); return true; case ID_MENU_DISABLE_SYSER: m_SyserInterface.StopSyserDriver(); return true; } } break; default: return CLocalWispApp::WndProc(hWnd,message,wParam,lParam); } return true; } bool CSyserApp::CheckNewVersion() { /* INTERNET_PROXY_INFO* pProxy; char Proxybuf[128]; DWORD nProxyPort; pProxy = GetIEDefaultProxy(Proxybuf,&nProxyPort); if(pProxy) { m_UpdateNewVersionDownload.SetProxy(Proxybuf,(unsigned short)nProxyPort); delete pProxy; } //char Buffer[1024]; //int ReturnedLen; //int retvalue; */ ShellExecute(NULL,"open","http://www.sysersoft.com/queryversion.php?version=" VER_PRODUCTVERSION_STR "&date=" __DATE__,NULL,NULL,SW_SHOWMAXIMIZED); //retvalue = m_UpdateNewVersionDownload.DownloadToBuffer("http://www.sysersoft.com/queryversion.php?app=syserapp.exe" VER_PRODUCTVERSION_STR ,Buffer,sizeof(Buffer),&ReturnedLen); return true; } INTERNET_PROXY_INFO* CSyserApp::GetIEDefaultProxy(LPTSTR lpszProxy,DWORD *nProxyPort) { INTERNET_PROXY_INFO* pIProxyInfo; DWORD ErrorNum; char *StrPort; DWORD RetLength=sizeof(INTERNET_PROXY_INFO); BOOL bRet; if(lpszProxy) lpszProxy[0]=0; if(nProxyPort) *nProxyPort=0; pIProxyInfo = (INTERNET_PROXY_INFO*)new char[sizeof(INTERNET_PROXY_INFO)]; memset(pIProxyInfo,0,RetLength); bRet = InternetQueryOption(NULL,INTERNET_OPTION_PROXY,pIProxyInfo,&RetLength); if(bRet==false) { ErrorNum = GetLastError(); if(ErrorNum==ERROR_INSUFFICIENT_BUFFER) { pIProxyInfo = (INTERNET_PROXY_INFO*)new char[RetLength]; memset(pIProxyInfo,0,RetLength); bRet = InternetQueryOption(NULL,INTERNET_OPTION_PROXY,pIProxyInfo,&RetLength); } } if(bRet==false) { delete pIProxyInfo; pIProxyInfo=NULL; } else { if(pIProxyInfo->dwAccessType==INTERNET_OPEN_TYPE_DIRECT) { delete pIProxyInfo; pIProxyInfo=NULL; }else { if(pIProxyInfo->dwAccessType==INTERNET_OPEN_TYPE_PROXY) { StrPort=TStrChr(pIProxyInfo->lpszProxy,':'); if(StrPort==NULL) { delete pIProxyInfo; pIProxyInfo=NULL; }else { if(SDecStrToNum(&StrPort[1],&ErrorNum)) { if(nProxyPort) *nProxyPort=ErrorNum; if(lpszProxy) { StrPort[0]=0; TStrCpy(lpszProxy,pIProxyInfo->lpszProxy); StrPort[0]=':'; } } else { delete pIProxyInfo; pIProxyInfo=NULL; } } } } } return pIProxyInfo; } LPTSTR CSyserApp::GetIEDefaultProxyUserName(LPTSTR lpszUserName) { BOOL bRet; char Buffer[128]; DWORD RetLength=sizeof(Buffer); lpszUserName[0]=0; bRet = InternetQueryOption(NULL,INTERNET_OPTION_PROXY_USERNAME,Buffer,&RetLength); if(bRet==false) return NULL; TStrCpy(lpszUserName,Buffer); return lpszUserName; } LPTSTR CSyserApp::GetIEDefaultProxyPassword(LPTSTR lpszPassword) { BOOL bRet; char Buffer[128]; DWORD RetLength=sizeof(Buffer); lpszPassword[0]=0; bRet = InternetQueryOption(NULL,INTERNET_OPTION_PROXY_PASSWORD,Buffer,&RetLength); if(bRet==false) return NULL; TStrCpy(lpszPassword,Buffer); return lpszPassword; } void CSyserApp::LoadHistroy() { DWORD Style; WCHAR szBuffer[MAX_FN_LEN]; char szFileName[MAX_FN_LEN],*pStr; RECENT_HISTROY_ITEM Item; CTXTFile TXTFile; GetModulePath(szFileName); TStrCat(szFileName,"Histroy.lst"); if(TXTFile.Open(szFileName)==false) return; m_HistroyList.Clear(); for(TTXTStrList::IT Iter = TXTFile.m_StrList.Begin();Iter!=TXTFile.m_StrList.End();Iter++) { Style = SDP_NULL; pStr = TStrRChr(*Iter,'|'); if(pStr) { *pStr++=0; if(USHexStrToNum(pStr,&Style)==false) Style=SDP_NULL; } TStrCpyLimit(Item.FileName,(PCSTR)*Iter,MAX_FN_LEN); Item.Style = Style; if(gpFileIO->IsFileExist(Item.FileName)) m_HistroyList.Append(Item); } TXTFile.Close(); m_bHistroyModified = false; WISP_MENU_ITEM*pMenuItem = (WISP_MENU_ITEM*)m_MainFrame.m_MainMenu.GetItemByName(WSTR("Recent Files")); if(pMenuItem && m_HistroyList.Count()) { CWispMenu*pMenu = pMenuItem->pSubMenu; pMenu->RemoveAllItem(); int CmdID=EVENT_ID_RECENT_FILE_SYSERAPP+1; for(TList::IT Iter = m_HistroyList.Begin();Iter!=m_HistroyList.End()&&CmdID<=EVENT_ID_RECENT_FILE_SYSERAPP_END;Iter++) { AnsiToUnicode(Iter->FileName,szBuffer,MAX_FN_LEN); CWispDIB*pTypeDIB; PCSTR pExtName = TGetFileExt((PCSTR)Iter->FileName); if(pExtName && TStrICmp(pExtName,"exe")==0) pTypeDIB = WispTKDIBListDIB("\\Toolbar.bmp",16,16,102); else pTypeDIB = WispTKDIBListDIB("\\Toolbar.bmp",16,16,15); pMenu->InsertItem(-1,szBuffer,WISP_MIS_NORMAL,CmdID,pTypeDIB); CmdID++; } pMenu->AdjustPopupMenuSize(); } } void CSyserApp::SaveHistroy() { char szBuffer[256]; char szFileName[MAX_FN_LEN]; CImageFileStream File; GetModulePath(szFileName); TStrCat(szFileName,"Histroy.lst"); if(File.Create(szFileName)==false) return; for(TList::IT Iter = m_HistroyList.Begin();Iter!=m_HistroyList.End();Iter++) { File.Puts(Iter->FileName,TStrLen(Iter->FileName)); TSPrintf(szBuffer,"|%X\r\n",Iter->Style); File.Puts(szBuffer,TStrLen(szBuffer)); } File.Close(); } void CSyserApp::InsertHistroy(PCSTR szFileName,DWORD Style) { RECENT_HISTROY_ITEM Item; TList::IT Iter; TStrCpyLimit(Item.FileName,szFileName,MAX_FN_LEN); Item.Style = Style; Iter = m_HistroyList.Find(Item); if(Iter!=m_HistroyList.End()) { if(Iter->Style == Style) return; m_HistroyList.Remove(Iter); } if(m_HistroyList.Count() m_HistroyList; bool m_bHistroyModified; void LoadHistroy(); void SaveHistroy(); void InsertHistroy(PCSTR szFileName,DWORD Style); }; extern CSyserApp theApp; #endif ================================================ FILE: Project/SyserApp/Source/SyserApp.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON_SYSERAPP ICON "Res\\Syser.ico" IDI_ICON_SYSER_OFF ICON "Res\\SyserOff.ico" ///////////////////////////////////////////////////////////////////////////// // // Menu // IDR_MENU_NOTIFY_ICON MENU BEGIN POPUP "SyserPopup" BEGIN MENUITEM "Show Main Window", ID_MENU_SHOW MENUITEM SEPARATOR MENUITEM "Start Syser", ID_MENU_ENABLE_SYSER MENUITEM "Stop Syser", 40007, GRAYED MENUITEM SEPARATOR MENUITEM "Exit", ID_MENU_EXIT END END ///////////////////////////////////////////////////////////////////////////// // // RT_MANIFEST // IDR_RT_MANIFEST RT_MANIFEST "res\\rt_manif.bin" #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""SyserApp.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "SyserApp.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/SyserApp/Source/SyserApp.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "SyserApp" #define VER_INTERNALNAME_STR "SyserApp" #define VER_ORIGINALFILENAME_STR "SyserApp.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/SyserApp/Source/SyserAppCmd.cpp ================================================ #include "StdAfx.h" #include "SyserApp.h" #include "SyserAppCmd.h" ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //SyserAppCmd void OutputLastErrorMsg() { WCHAR szBuffer[256]; *szBuffer=0; FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,NULL,GetLastError(),MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),szBuffer,256,NULL); OUTPUT(WSTR("Error : %s\n"),szBuffer); } SYSER_APP_CMD_ENTRY SyserAppCmdTable[]= { {WSTR("cmd"), WSTR("run windows command !"), run_command}, {WSTR("start"), WSTR("start driver!"), start_command}, {WSTR("stop"), WSTR("stop driver!"), stop_command}, {WSTR("rldcfg"), WSTR("reload registry config"), reloadconfig_command}, {WSTR("loadsds"), WSTR("load SDS symbols file"), loadsds_command}, {WSTR("unloadsds"), WSTR("unload SDS symbols file"), unloadsds_command}, {WSTR("tsf"), WSTR("Translate Symbol File"), tsf_command}, {WSTR("load"), WSTR("Load module to debug"), load_command}, {WSTR("scrshot"), WSTR("Save Syser Debugger ScreenShot"), scrshot_command}, {WSTR("rmsptd"), WSTR("Disabled Daemon Tools SPTD"), rmsptd_command}, {WSTR("install"), NULL, install_command}, {WSTR("uninstall"), NULL, uninstall_command}, {NULL,NULL,NULL} }; int rmsptd_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { DWORD Start = 3; if(SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\Start",&Start,REG_DWORD)) { if(MessageBox(theApp.m_hLocalWnd,"Do you want to reboot ?","SPTD Disabled !!!",MB_YESNO)==IDYES) { CProcess::GetPrivilege(SE_SHUTDOWN_NAME); ExitWindowsEx(EWX_REBOOT,0); } } return 0; } int scrshot_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { int Length; char szBuffer[MAX_FN_LEN]; Length = TStrCpy(szBuffer,"\\??\\"); if(argc<2) { Length+= GetModulePath(&szBuffer[Length]); Length+= TStrCpy(&szBuffer[Length],"Syser.bmp"); } else { Length+=UnicodeToAnsi(argv[1],&szBuffer[Length],MAX_FN_LEN-Length); } HANDLE hDevice = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); if(hDevice == INVALID_HANDLE_VALUE) return 0; DWORD dummy; DeviceIoControl(hDevice,IOCTL_SYSER_SCREEN_SHOT,szBuffer,Length+1,NULL,NULL,&dummy,NULL); CloseHandle(hDevice); return 0; } int install_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { pSyser->m_SyserInterface.InstallSyser(); return 0; } int uninstall_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { pSyser->m_SyserInterface.UninstallSyser(); return 0; } int tsf_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { char FileName[MAX_FN_LEN]; char SymbolFileName[MAX_FN_LEN]; int i; if(argc==1) { OUTPUT(WSTR("Usage: tsf PE filename\n")); return 1; } if(theApp.m_SyserInterface.IsSyserRuning()==false) { theApp.m_MainFrame.OnMenuEventStartSyser(NULL); } for(i = 1; i < argc;i++) { TStrCpy(FileName,argv[i]); if(theApp.m_SyserInterface.TranslateSymbolFile(FileName,SymbolFileName,true)==false) { OUTPUT(WSTR("Translate '%s' error!\n"),argv[i]); } } return 0; } int load_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { char szFileName[MAX_FN_LEN],CmdLine[256]; if(argc==1) { OUTPUT(WSTR("Usage: %s FileFullPathName\n"),argv[0]); return 1; } if(theApp.m_SyserInterface.IsSyserRuning()==false) { theApp.m_SyserInterface.StartSyserDriver(); } TStrCpy(szFileName,argv[1]); if(argc>2) { UnicodeToAnsi(&szCommandLine[argv[2]-argv[0]],CmdLine,sizeof(CmdLine)); } else { *CmdLine=0; } if(theApp.m_SyserInterface.LoadModule(szFileName,CmdLine,SDP_LOAD_SDS|SDP_AUTO_UNLOAD_SDS)==false) { OUTPUT(WSTR("Fail to launch %s!"),szFileName); return 1; } return 0; } int loadsds_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { char FileName[MAX_FN_LEN]; if(argc==1) { OUTPUT(WSTR("Usage: loadsds sds_filename\n")); return 1; } if(theApp.m_SyserInterface.IsSyserRuning()==false) { theApp.m_SyserInterface.StartSyserDriver(); } UnicodeToAnsi(&szCommandLine[argv[1]-argv[0]],FileName,MAX_FN_LEN); theApp.m_SyserInterface.LoadSDS(FileName); return 0; } int unloadsds_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { char FileName[MAX_FN_LEN]; if(argc==1) { OUTPUT(WSTR("Usage: unloadsds sds_filename\n")); return 1; } if(theApp.m_SyserInterface.IsSyserRuning()==false) { theApp.m_SyserInterface.StartSyserDriver(); } UnicodeToAnsi(&szCommandLine[argv[1]-argv[0]],FileName,MAX_FN_LEN); theApp.m_SyserInterface.UnloadSDS(FileName); return 0; } int reloadconfig_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { if(argc==2&&TStrCmp(argv[1],"-h")==0) { OUTPUT(WSTR("SofticeExistCheck\n")); OUTPUT(WSTR("TimerInterrupt\n")); OUTPUT(WSTR("UsbMouse\n")); OUTPUT(WSTR("DebugRegisterMontior\n")); OUTPUT(WSTR("KeyboardLedProgram\n")); OUTPUT(WSTR("DisableDisplay\n")); OUTPUT(WSTR("DisableDDrawHook\n")); OUTPUT(WSTR("DisableDbgMsg\n")); OUTPUT(WSTR("DebugKeyboardInterrupt\n")); OUTPUT(WSTR("PatchKeBugCheck\n")); OUTPUT(WSTR("m_ExceptionDebugInfo\n")); return true; } theApp.m_SyserInterface.ReloadConfig(); return 0; } int run_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { int Length; char szBuffer[MAX_FN_LEN]; Length=TStrCpy(szBuffer,"cmd /c "); UnicodeToAnsi(&szCommandLine[TStrLen(*argv)+1],&szBuffer[Length],MAX_FN_LEN-Length); WinExec(szBuffer,SW_HIDE); return 0; } int start_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { char szBuffer[MAX_FN_LEN]; if(argc!=2) { OUTPUT(WSTR("Usage : %s Name\n"),argv[0]); return -1; } UnicodeToAnsi(argv[1],szBuffer,sizeof(szBuffer)); if(IsDriverActive(szBuffer)) { OUTPUT(WSTR("Driver has already started!\n")); return 0; } if(StartDriver(szBuffer)) OUTPUT(WSTR("Driver started!\n")); else { OutputLastErrorMsg(); } if(TStrICmp(szBuffer,"syser")==0) theApp.m_SyserInterface.UpdateDriverStatus(); return 0; } int stop_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { char szBuffer[MAX_FN_LEN]; if(argc!=2) { OUTPUT(WSTR("Usage : %s Name\n"),argv[0]); return -1; } UnicodeToAnsi(argv[1],szBuffer,sizeof(szBuffer)); if(IsDriverActive(szBuffer)==false) { OUTPUT(WSTR("Driver isn't actived!\n")); return 0; } if(StopDriver(szBuffer)) OUTPUT(WSTR("Driver Stopped!\n")); else OUTPUT(WSTR("Fail to Stop %s Driver!\n"),argv[1]); if(TStrICmp(szBuffer,"syser")==0) theApp.m_SyserInterface.UpdateDriverStatus(); return 0; } int fio_command(int argc, WCHAR *argv[ ],PCWSTR szCommandLine, CSyserApp*pSyser) { DWORD cbSize; WCHAR szBuffer[256],CmdChar; HANDLE hFile; if(argc<3) goto ShowUsage; CmdChar = *argv[2]; MAKE_CHAR_LOWER(CmdChar); ZeroMemory(szBuffer,sizeof(szBuffer)); if(CmdChar=='r') { if(argc!=3) goto ShowUsage; hFile = CreateFileW(argv[1],GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); if(hFile == INVALID_HANDLE_VALUE) goto ErrorExit; ReadFile(hFile,szBuffer,sizeof(szBuffer)-2,&cbSize,NULL); OUTPUT(WSTR("%s\n"),szBuffer); CloseHandle(hFile); } else if(CmdChar=='w') { hFile = CreateFileW(argv[1],GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if(hFile == INVALID_HANDLE_VALUE) goto ErrorExit; WriteFile(hFile,argv[3],TStrLen(argv[3])*sizeof(WCHAR),&cbSize,NULL); CloseHandle(hFile); } else goto ShowUsage; return 0; ShowUsage: OUTPUT(WSTR("Usage : fio name [r|w] \"string\"\n")); return 0; ErrorExit: OutputLastErrorMsg(); return -1; } //SyserAppCmd ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //CConsoleWnd WISP_MSG_MAP_BEGIN (CConsoleWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP_END(CWispConsoleWnd) bool CConsoleWnd::OnCreate(IN WISP_MSG*pMsg) { for(int n=0;SyserAppCmdTable[n].CmdStr;n++) { InsertCmd(SyserAppCmdTable[n].CmdStr,(CMDPROC)SyserAppCmdTable[n].CmdProc,&theApp,SyserAppCmdTable[n].CmdCmt,NULL); } SetHistoryLines(SyserAppOption.iHistroyLines); m_Option.RegisterValueAry(SyserAppOptVal); return TRUE; } //CConsoleWnd ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ================================================ FILE: Project/SyserApp/Source/SyserAppCmd.h ================================================ #ifndef _SYSER_APP_CMD_H_ #define _SYSER_APP_CMD_H_ struct SYSER_APP_CMD_ENTRY { WCHAR* CmdStr; WCHAR* CmdCmt; void* CmdProc; }; extern SYSER_APP_CMD_ENTRY SyserAppCmdTable[]; class CSyserApp; DECLARE_SYSER_APP_CMD(run_command); DECLARE_SYSER_APP_CMD(start_command); DECLARE_SYSER_APP_CMD(stop_command); DECLARE_SYSER_APP_CMD(reloadconfig_command); DECLARE_SYSER_APP_CMD(fio_command); DECLARE_SYSER_APP_CMD(loadsds_command); DECLARE_SYSER_APP_CMD(unloadsds_command); DECLARE_SYSER_APP_CMD(tsf_command); DECLARE_SYSER_APP_CMD(load_command); DECLARE_SYSER_APP_CMD(install_command); DECLARE_SYSER_APP_CMD(uninstall_command); DECLARE_SYSER_APP_CMD(scrshot_command); DECLARE_SYSER_APP_CMD(rmsptd_command); class CConsoleWnd : public CWispConsoleWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); }; #endif ================================================ FILE: Project/SyserApp/Source/SyserAppOption.cpp ================================================ #include "StdAfx.h" #include "SyserAppOption.h" int SyserAppOptionRef = 0; int SyserAppBootTypeRef = 0; int iBootType; int OrgiBootType = 3; SYSER_APP_OPTION OrgSyserAppOption = { 0,//CRCCode 1,//iSystemTray 1,//iAutoStart 2,//iAutoStop 0,//iTopMost 300,//iHistroyLines; }; SYSER_APP_OPTION SyserAppOption; STRegOptVal SyserAppOptVal[]= { {WSTR("iSystemTray"), STOptVal::INT_VAL, &SyserAppOption.iSystemTray}, {WSTR("iAutoStart"), STOptVal::INT_VAL, &SyserAppOption.iAutoStart}, {WSTR("iAutoStop"), STOptVal::INT_VAL, &SyserAppOption.iAutoStop}, {WSTR("iTopMost"), STOptVal::INT_VAL, &SyserAppOption.iTopMost}, {WSTR("iHistroyLines"), STOptVal::INT_VAL, &SyserAppOption.iHistroyLines}, {NULL} }; ================================================ FILE: Project/SyserApp/Source/SyserAppOption.h ================================================ #ifndef _SYSER_APP_OPTION_H_ #define _SYSER_APP_OPTION_H_ struct SYSER_APP_OPTION { DWORD CRCCode; int iSystemTray; int iAutoStart; int iAutoStop; int iTopMost; int iHistroyLines; }; extern SYSER_APP_OPTION OrgSyserAppOption; extern SYSER_APP_OPTION SyserAppOption; extern STRegOptVal SyserAppOptVal[]; #endif ================================================ FILE: Project/SyserApp/Source/SyserInterface.cpp ================================================ #include "StdAfx.h" #include "SyserApp.h" #include "SyserInterface.h" #include "LoadSourceFile.h" #include "ModifyBoot.h" #include "SNCheck.h" CSyserInterface::CSyserInterface(void) { m_bCaptureDbgMsg = true; m_bRecvClipboard = false; m_bAttachFrameBuffer = false; GetModulePath(m_LoadDllName); TStrCat(m_LoadDllName,"LoadDll.exe"); m_VerType = SN_ERROR; } CSyserInterface::~CSyserInterface(void) { } void CSyserInterface::UpdateDbgMsg(HANDLE hDevice) { WCHAR szBufferW[1024]; CHAR szBuffer[1024]; int cbReturn = 0; CWispConsoleWnd*pConsoleWnd = &((CMainFrame*)theApp.m_pRootWnd)->m_ConsoleWnd; do { ReadFile(hDevice,szBuffer,sizeof(szBuffer),(DWORD*)&cbReturn,NULL); if(cbReturn) { AnsiToUnicode(szBuffer,szBufferW,sizeof(szBuffer)); pConsoleWnd->m_pWispBase->EnterCriticalSection(); pConsoleWnd->LockUpdate(); pConsoleWnd->Output(szBufferW); pConsoleWnd->EnsureInputVisible(); pConsoleWnd->UnlockUpdate(); pConsoleWnd->Update(); pConsoleWnd->m_pWispBase->LeaveCriticalSection(); } }while(cbReturn==sizeof(szBuffer)); } void CSyserInterface::ChangeMsgFilter() { if(theApp.m_SyserInterface.m_hDbgMsgDevice == INVALID_HANDLE_VALUE) { OUTPUT(WSTR("%SyserLoad : Fail to change debug message filter !\n")); return; } DWORD dummy; DeviceIoControl(theApp.m_SyserInterface.m_hDbgMsgDevice,IOCTL_SDBGMSG_RELOAD_CFG,NULL,NULL,NULL,NULL,&dummy,NULL); } void CSyserInterface::UpdateWindow() { InvalidateRect(GetTopWindow(NULL),NULL,TRUE); } void CSyserInterface::MsgUpdateThread() { HANDLE hEvent; CWispConsoleWnd*pConsoleWnd = &((CMainFrame*)theApp.m_pRootWnd)->m_ConsoleWnd; theApp.m_SyserInterface.m_hDbgMsgDevice = CreateFile("\\\\.\\SyserDbgMsg",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); if(theApp.m_SyserInterface.m_hDbgMsgDevice == INVALID_HANDLE_VALUE) return; hEvent = CreateEvent(NULL,FALSE,FALSE,NULL); if(hEvent == NULL) { CloseHandle(theApp.m_SyserInterface.m_hDbgMsgDevice); return; } DWORD dummy; DeviceIoControl(theApp.m_SyserInterface.m_hDbgMsgDevice,IOCTL_SDBGMSG_REG_EVENT,&hEvent,sizeof(hEvent),NULL,NULL,&dummy,NULL); while(theApp.m_MainFrame.m_ConsoleWnd.IsWindow()) { if(theApp.m_SyserInterface.m_bCaptureDbgMsg) { ::SendMessage(theApp.m_hLocalWnd,WM_SYSER_UPDATE_DBG_MSG,0,0); } WaitForSingleObject(hEvent,INFINITE); } CloseHandle(hEvent); CloseHandle(theApp.m_SyserInterface.m_hDbgMsgDevice); } void CSyserInterface::ProgressSetRange(int Range) { theApp.m_MainFrame.m_ProgressForm.m_pProgessCtrl->SetRange(1,Range); theApp.m_MainFrame.m_ProgressForm.m_pProgessCtrl->SetPos(1); theApp.m_MainFrame.m_ProgressForm.Update(); } void CSyserInterface::ProgressSetPos(int Pos) { theApp.m_MainFrame.m_ProgressForm.m_pProgessCtrl->SetPos(Pos); theApp.m_MainFrame.m_ProgressForm.Update(); } bool CSyserInterface::Init() { UINT StartType; m_VerInfo.dwOSVersionInfoSize = sizeof(m_VerInfo); GetVersionEx(&m_VerInfo); if(m_VerInfo.dwMajorVersion < 5) { if(MessageBox(theApp.m_hLocalWnd,"Syser isn't support your windows system version!\nContinue?","Error",MB_YESNO)==IDNO) return false; } m_hMutex = OpenMutex(MUTEX_ALL_ACCESS,false,"Syser Interface"); if(m_hMutex) { MessageBox(theApp.m_hLocalWnd,"Syser Debugger is already running !","Syser",MB_OK); return false; } m_hMutex = CreateMutex(NULL,false,"Syser Interface"); if(IsDriverActive("SyserBoot")==false) { InstallDependDriver("SyserBoot","SysBoot.sys"); if(MessageBox(NULL,"Syser Boot Module isn't actived !\nYou need to reboot then you can start syser debugger!\nReboot now?","Warnning",MB_YESNO)==IDYES) { CProcess::GetPrivilege(SE_SHUTDOWN_NAME); ExitWindowsEx(EWX_REBOOT,0); return false; } return false; } if(IsDriverActive("sptd")) { MessageBox(NULL,"Deamon Tools SPTD isn't compatible with kernel debuggers such as Syser!\n" "You can type command \"rmsptd\" to disable it !", "Warning",MB_OK); } if(IsDriverActive("dump_wmimmc")) { MessageBox( NULL, "nProtect dump_wmimmc.sys isn't compatible with kernel debuggers !\nMaybe cause BSOD !", "Warning",MB_OK); } IsSysBootFrameBufferAvailable(); m_SyserDX.Init(); if(m_VerInfo.dwMajorVersion>=6) {//VistaʼBasicɫ } UpdateDriverStatus(); InstallDependDriver("SyserBoot","SysBoot.sys",SERVICE_BOOT_START,DERIVER_GROUP_NAME,GROUP_SYSBOOT_ORDER); InstallDependDriver("SyserLanguage","SysLang.sys",SERVICE_BOOT_START,DERIVER_GROUP_NAME,GROUP_SYSLANG_ORDER); InstallDependDriver("SDbgMsg","SDbgMsg.sys",SERVICE_BOOT_START,DERIVER_GROUP_NAME,GROUP_SDBGMSG_ORDER); if(IsDriverActive(DRIVER_NAME)==false) { if(IsDriverActive("SyserLanguage")==false) StartDriver("SyserLanguage"); if(IsDriverActive("SDbgMsg")==false) StartDriver("SDbgMsg"); } InstallDependData("Syser.dat;Wisp.dat;libfunc.fdc;APIDef.lib"); if(GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\Start",&StartType,sizeof(StartType))==false) StartType = SERVICE_DEMAND_START; InstallDependDriver(DRIVER_NAME,"Syser.sys",StartType,DERIVER_GROUP_NAME,GROUP_SYSER_ORDER); if(m_bSyserDriverStatus==false && SyserAppOption.iAutoStart!=0) { if(SyserAppOption.iAutoStart==1 || MessageBox(theApp.m_hLocalWnd,"Start Syser Debugger ?","Syser",MB_YESNO)==IDYES) StartSyserDriver(); } CreateThread(MsgUpdateThread); return true; } void CSyserInterface::Release() { m_SyserDX.UnlockFrameSurfacer(); m_SyserDX.Release(); CloseHandle(m_hMutex); } void CSyserInterface::IsSysBootFrameBufferAvailable() { DWORD cbReturn; HANDLE hDevice; SYSER_FRAME_BUFFER FrameBuffer; m_bAttachFrameBuffer = false; hDevice = CreateFile("\\\\.\\SyserBoot",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL); if(hDevice==INVALID_HANDLE_VALUE) return; STZeroMemory(FrameBuffer); DeviceIoControl(hDevice,IOCTL_SYSER_BOOT_GET_FRAME_BUFFER,NULL,0,&FrameBuffer,sizeof(FrameBuffer),&cbReturn,NULL); CloseHandle(hDevice); if(FrameBuffer.Buffer) m_bAttachFrameBuffer = true; } bool CSyserInterface::StartSyserDriver() { if(IsDriverActive(DRIVER_NAME)) return true; InstallDependDriver(DRIVER_NAME,"Syser.sys",-1); InstallDependData("Syser.dat;Wisp.dat;libfunc.fdc;APIDef.lib"); if(StartDriver(DRIVER_NAME)==false) { if(m_VerInfo.dwMajorVersion>=6) { MessageBox(theApp.m_hLocalWnd,"Fail to load Syser !\nPlease run Syser Loader with \"Admin\" !","Error",MB_OK); } else { MessageBox(theApp.m_hLocalWnd,"Fail to load Syser !","Error",MB_OK); } return false; } if(SyserOption.iVideoDetectMode != SYSER_VDM_KERNEL) { if(SyserOption.iVideoDetectMode == SYSER_VDM_USER || m_bAttachFrameBuffer==false) m_SyserDX.LockFrameSurfacer(); } UpdateDriverStatus(); //¿ܻGUI߳,ֶˢĻ UpdateWindow(); if(m_VerType==SN_ERROR) { DWORD VerType=0; GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\VerType",&VerType,sizeof(VerType)); if(VerType!=SN_ERROR) { m_VerType = (SYSER_SN_TYPE)VerType; theApp.m_MainFrame.m_MainMenu.RemoveItem(EVENT_ID_BUYNOW); theApp.m_MainFrame.GetVersionString(); theApp.m_MainFrame.Update(); } } return m_bSyserDriverStatus; } void CSyserInterface::StopSyserDriver() { if(DisableDriver(DRIVER_NAME)) UpdateDriverStatus(); m_SyserDX.UnlockFrameSurfacer(); } void CSyserInterface::ReloadConfig() { DWORD cbReturn; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return; DeviceIoControl(hSyser,IOCTL_SYSER_RELOAD_CONFIG,NULL,0,NULL,0,&cbReturn,NULL); CloseHandle(hSyser); } void CSyserInterface::UpdateDriverStatus() { bool bNewState = IsDriverActive(DRIVER_NAME); if(bNewState!=m_bSyserDriverStatus) { m_bSyserDriverStatus = bNewState; theApp.m_MainFrame.UpdateSyserDriverItem(m_bSyserDriverStatus); EnableMenuItem(theApp.m_hSubNotifyMenu,ID_MENU_ENABLE_SYSER,m_bSyserDriverStatus ? MF_DISABLED|MF_GRAYED:MF_ENABLED); EnableMenuItem(theApp.m_hSubNotifyMenu,ID_MENU_DISABLE_SYSER,m_bSyserDriverStatus ? MF_ENABLED:MF_DISABLED|MF_GRAYED); theApp.ModifyNotifyIcon(bNewState?IDI_ICON_SYSERAPP:IDI_ICON_SYSER_OFF); } } bool CSyserInterface::RemoveDependData(PCSTR FileNameList) { char szDesFile[MAX_FN_LEN],szFileName[MAX_FN_LEN],*pszDesFile; PCSTR szBegin,szEnd; GetSystemDirectory(szDesFile,MAX_FN_LEN); TStrCat(szDesFile,"\\drivers\\"); pszDesFile = szDesFile+TStrLen(szDesFile); szBegin = FileNameList; while(*szBegin) { szEnd = TStrChr(szBegin,';'); if(szEnd) { TStrCpyLimit(szFileName,szBegin,(int)(szEnd-szBegin)+1); szEnd++; } else { TStrCpy(szFileName,szBegin); szEnd = &szBegin[TStrLen(szBegin)]; } TStrCpy(pszDesFile,szFileName); DeleteFile(szDesFile); szBegin = szEnd; } return true; } bool CSyserInterface::InstallServiceEventLog(PCSTR ServiceName,PCSTR MessageDllFullName,DWORD TypesSupported,bool bSystemIoLog) { DWORD Disposition,dwSize; HKEY hKey; CHAR FullName[260],Value[260]; strcpy_s(FullName,sizeof(FullName),"SYSTEM\\CurrentControlSet\\Services\\Eventlog\\System\\"); strcat_s(FullName,sizeof(FullName),ServiceName); if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,FullName,0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; strcpy_s(Value,sizeof(Value),"%SystemRoot%"); strcat_s(Value,sizeof(Value),"\\System32\\IoLogMsg.dll;"); strcat_s(Value,sizeof(Value),MessageDllFullName); dwSize = (DWORD)strlen(Value); if(RegSetValueEx(hKey,"EventMessageFile",0,REG_SZ,(BYTE*)Value,dwSize) != ERROR_SUCCESS) { RegCloseKey(hKey); return false; } if(RegSetValueEx(hKey,"TypesSupported",0,REG_DWORD,(BYTE*)&TypesSupported,sizeof(TypesSupported)) != ERROR_SUCCESS) { RegCloseKey(hKey); return false; } RegCloseKey(hKey); return true; } bool CSyserInterface::UninstallServiceEventLog(PCSTR ServiceName) { DWORD Disposition; HKEY hKey; CHAR FullName[260]; strcpy_s(FullName,sizeof(FullName),"SYSTEM\\CurrentControlSet\\Services\\Eventlog\\System\\"); if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,FullName,0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; RegDeleteKey(hKey,ServiceName); RegCloseKey(hKey); return true; } bool CSyserInterface::InstallDependDriver(PCSTR ServiceName,PCSTR FileName,UINT StartType,PCSTR GroupName,DWORD Tag) { char szDriver[MAX_FN_LEN],szNewDriver[MAX_FN_LEN]; TStrCpy(szDriver,"system32\\drivers\\"); TStrCat(szDriver,FileName); if(StartType!=-1) InstallDriver(ServiceName,szDriver,StartType,GroupName,Tag); GetSystemDirectory(szDriver,sizeof(szDriver)); TStrCat(szDriver,"\\drivers\\"); TStrCat(szDriver,FileName); GetModulePath(szNewDriver); TStrCat(szNewDriver,FileName); CPEFile PEFile,NewPEFile; if(PEFile.Open(szDriver)==false) goto Reinstall; if(NewPEFile.Open(szNewDriver)==false) { PEFile.Close(); return false; } PEFile.Close(); NewPEFile.Close(); if(PEFile.m_PEHead.TimeDateStamp == NewPEFile.m_PEHead.TimeDateStamp) return true; Reinstall: if(CopyFile(szNewDriver,szDriver,FALSE)==FALSE) return false; return true; } void CSyserInterface::SendClipboardString() { int Length; char szBuffer[256]; WCHAR wszBuffer[256]; DWORD cbReturn; PSTR szString; HANDLE hClipboard; if(m_bRecvClipboard) return; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return; if(OpenClipboard(theApp.m_hLocalWnd)==FALSE) { CloseHandle(hSyser); return; } hClipboard = GetClipboardData(CF_TEXT); if(hClipboard==NULL) { CloseClipboard(); CloseHandle(hSyser); return; } szString =(PSTR)GlobalLock(hClipboard); if(szString==NULL) { GlobalUnlock(hClipboard); CloseClipboard(); CloseHandle(hSyser); return; } Length = TStrCpyLimit(szBuffer,szString,sizeof(szBuffer)); AnsiToUnicode(szString,wszBuffer,sizeof(wszBuffer)/sizeof(WCHAR)); theApp.m_ClipboardString = wszBuffer; DeviceIoControl(hSyser,IOCTL_SYSER_SET_CLIP_BOARD,szBuffer,Length+1,NULL,0,&cbReturn,NULL); GlobalUnlock(hClipboard); CloseClipboard(); CloseHandle(hSyser); } void CSyserInterface::RecvClipboardString() { WCHAR wszBuffer[1024]; char szBuffer[1024]; DWORD cbReturn; if(m_bRecvClipboard) return; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return; cbReturn = 0; *szBuffer = 0; DeviceIoControl(hSyser,IOCTL_SYSER_GET_CLIP_BOARD,NULL,NULL,szBuffer,sizeof(szBuffer),&cbReturn,NULL); if(cbReturn==0) { CloseHandle(hSyser); return; } AnsiToUnicode(szBuffer,wszBuffer,1024); m_bRecvClipboard = true; theApp.SetClipboardString(wszBuffer); m_bRecvClipboard = false; CloseHandle(hSyser); } void CSyserInterface::UpdateThread() { char VersionBuf[200]; int nRetLen; int retval; CHttpDownload Download; char buffer[200]; DWORD dwHandle; DWORD dwSize; char* lpData; unsigned int nLen; void* ptr; char SystemPath[MAX_PATH]; memset(VersionBuf,0,sizeof(VersionBuf)); memset(buffer,0,sizeof(buffer)); Download.StartupWinsock(); retval = Download.DownloadToBuffer("http://www.sysersoft.com/download/version.txt",buffer,sizeof(buffer),&nRetLen); Download.CleanupWinsock(); if(retval!=0) return; GetSystemDirectory(SystemPath,sizeof(SystemPath)); strcat(SystemPath,"\\drivers\\syser.sys"); dwSize=GetFileVersionInfoSize(SystemPath,&dwHandle); if(dwSize==0) return; lpData=new char[dwSize+1]; if(lpData==NULL) return; if(GetFileVersionInfo(SystemPath,0,dwSize,lpData)==false) { delete []lpData; return; } if(VerQueryValue(lpData,"\\StringFileInfo\\040904B0\\ProductVersion",&ptr,&nLen)==false) { delete []lpData; return; } delete []lpData; if(strcmp(buffer,(char*)ptr)==0) { delete []lpData; return; } } PCSTR szTranslateFileName; PSTR szTranslateSymbolFileName; bool bTranslateResult; void CSyserInterface::TranslateThread() { theApp.m_SourceDebug.m_pfnSetRange = ProgressSetRange; theApp.m_SourceDebug.m_pfnSetPos = ProgressSetPos; bTranslateResult = theApp.m_SourceDebug.TranslateSymbolFile(szTranslateFileName,szTranslateSymbolFileName,true); theApp.m_MainFrame.m_ProgressForm.Destroy(); } bool CSyserInterface::TranslateSymbolFile(IN PCSTR szFileName,OUT PSTR szSymbolFileName,bool bOverWrite) { WCHAR wszFileName[MAX_FN_LEN],szBuffer[512]; if(bOverWrite==false && theApp.m_SourceDebug.IsTranslated(szFileName,szSymbolFileName)) return true; bTranslateResult = false; szTranslateFileName = szFileName; szTranslateSymbolFileName = szSymbolFileName; szSymbolFileName[0]=0; theApp.m_MainFrame.m_ProgressForm.CreateForm(); CreateThread(TranslateThread); AnsiToUnicode(TGetFileName(szFileName),wszFileName,MAX_FN_LEN); TSPrintf(szBuffer,WSTR("Translate %s symbols to SDS"),wszFileName); theApp.m_MainFrame.m_ProgressForm.SetProgressText(szBuffer); theApp.m_MainFrame.m_ProgressForm.Show(WISP_SH_MODAL_BLOCK); return bTranslateResult; } bool CSyserInterface::TranslateExportSymbolFile(IN PCSTR szFileName,OUT PSTR szSymbolFileName) { if(theApp.m_NoPDBSymbol.Init()) return theApp.m_NoPDBSymbol.TranslateSymbolFile(szFileName,szSymbolFileName); return false; } bool CSyserInterface::GetModuleFullPath(PCSTR szModuleName,PCSTR szMainModule,PSTR szFullName) { CHAR szBuffer[MAX_FN_LEN]; TGetFilePath(szMainModule,szBuffer); TStrCat(szBuffer,"\\"); TStrCat(szBuffer,szModuleName); if(gpFileIO->IsFileExist(szBuffer)) { TStrCpy(szFullName,szBuffer); return true; } GetSystemDirectory(szBuffer,MAX_FN_LEN); TStrCat(szBuffer,"\\"); TStrCat(szBuffer,szModuleName); if(gpFileIO->IsFileExist(szBuffer)) { TStrCpy(szFullName,szBuffer); return true; } GetWindowsDirectory(szBuffer,MAX_FN_LEN); TStrCat(szBuffer,"\\"); TStrCat(szBuffer,szModuleName); if(gpFileIO->IsFileExist(szBuffer)) { TStrCpy(szFullName,szBuffer); return true; } return false; } bool CSyserInterface::LoadDepModuleSDS(PCSTR szMainModule,bool bDriver) { CHAR szFileName[MAX_FN_LEN],szSymbolFileName[MAX_FN_LEN]; CPEFile PEFile; if(PEFile.Open(szMainModule)==false) return false; for(int n=0;nError : Syser isn't actived !\n")); return false; } if(TStrICmp(TGetFileExt(szFilename),"sys")==0) { Result = theApp.m_SyserInterface.LaunchDriverForDebugging(szFilename,Style); } else { Result = theApp.m_SyserInterface.LaunchAppForDebugging(szFilename,szCmdLine,Style); } if(!Result) { OUTPUT(WSTR("%<3>Error : Fail to load !\n")); return true; } theApp.InsertHistroy(szFilename,Style); return true; } bool CSyserInterface::LaunchAppForDebugging(IN PCSTR FileName,PCSTR szCmdLine,DWORD Style) { char szDir[MAX_FN_LEN]; DWORD cbReturn; SYSER_DEBUG_PROCESS SyserDbgProc; char NewSymbolFileName[MAX_FN_LEN]; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return false; STZeroMemory(SyserDbgProc); ZeroMemory(NewSymbolFileName,sizeof(NewSymbolFileName)); if(_GET_WORD(FileName)=='\\\\') *SyserDbgProc.ExeFullPathName=0; else TStrCpy(SyserDbgProc.ExeFullPathName,"\\??\\"); TStrCat(SyserDbgProc.ExeFullPathName,FileName); if(Style & SDP_LOAD_SDS) { if(TranslateSymbolFile(FileName,NewSymbolFileName,false)) { if(_GET_WORD(NewSymbolFileName)=='\\\\') { TStrCpy(SyserDbgProc.SymbolFileName,"\\Device\\LanmanreDirector\\"); TStrCat(SyserDbgProc.SymbolFileName,&NewSymbolFileName[2]); } else { TStrCpy(SyserDbgProc.SymbolFileName,"\\??\\"); TStrCat(SyserDbgProc.SymbolFileName,NewSymbolFileName); } } } TGetFilePath(FileName,szDir); PSTR pszExtName = TGetFileExt(FileName); if(pszExtName && TStrICmp(pszExtName,"dll")==0) { if(m_Process.Start(m_LoadDllName,FileName,true,szDir)==false) { CloseHandle(hSyser); return false; } } else { if(m_Process.Start(FileName,szCmdLine,true,szDir)==false) { CloseHandle(hSyser); return false; } } SyserDbgProc.Style = Style; SyserDbgProc.ProcessID = m_Process.m_ProcessID; BOOL bRetValue; bRetValue = DeviceIoControl(hSyser,IOCTL_SYSER_DEBUG_PROCESS,&SyserDbgProc,sizeof(SYSER_DEBUG_PROCESS),NULL,0,&cbReturn,NULL); if(bRetValue==FALSE) { OUTPUT(WSTR("Syser : Debug application error %08x\n"),GetLastError()); } if(Style & SDP_LOAD_DEP_SDS) LoadDepModuleSDS(FileName,false); CloseHandle(hSyser); theApp.m_MainFrame.Update(); m_Process.SuspendAllThread(false); return true; } bool CSyserInterface::LaunchDriverForDebugging(IN PCSTR FileName,DWORD Style) { DWORD cbReturn; SYSER_DEBUG_DRIVER DebugDriver; char szDriverName[MAX_FN_LEN],NewSymbolFileName[MAX_FN_LEN]; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return false; STZeroMemory(DebugDriver); *NewSymbolFileName=0; if(Style & SDP_LOAD_SDS) { if(TranslateSymbolFile(FileName,NewSymbolFileName,false)) { TStrCpy(DebugDriver.SymbolFileName,"\\??\\"); TStrCat(DebugDriver.SymbolFileName,NewSymbolFileName); } } TGetFileTitle(FileName,szDriverName); if(IsDriverActive(szDriverName)) { char szBuffer[512]; sprintf_s(szBuffer,sizeof(szBuffer),"%s is already actived !\nStop it first?",szDriverName); if(MessageBox(theApp.m_hLocalWnd,szBuffer,"Warning",MB_YESNO)==IDYES) { StopDriver(szDriverName); } else { CloseHandle(hSyser); return false; } } TStrCpy(DebugDriver.DriverPathName,"\\??\\"); TStrCat(DebugDriver.DriverPathName,FileName); DebugDriver.Style = Style; DeviceIoControl(hSyser,IOCTL_SYSER_DEBUG_DRIVER,&DebugDriver,sizeof(SYSER_DEBUG_DRIVER),NULL,0,&cbReturn,NULL); if(EnableDriver(szDriverName,FileName)==false) { CloseHandle(hSyser); return false; } CloseHandle(hSyser); return true; } bool CSyserInterface::LoadModuleExportSymbols(IN PCSTR szFileName) { HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return false; DWORD cbReturn; DeviceIoControl(hSyser,IOCTL_SYSER_LOAD_EXPORT_SYMBOL,(PVOID)szFileName,TStrLen(szFileName)+1,NULL,0,&cbReturn,NULL); CloseHandle(hSyser); return true; } bool CSyserInterface::LoadModuleIDAMapFile(IN PCSTR szIDAMapFile,IN PCSTR szModuleName) { SYSER_LOAD_IDA_MAPFILE LoadIDAMapFile; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return false; strcpy_s(LoadIDAMapFile.IDAMapFile,sizeof(LoadIDAMapFile.IDAMapFile),szIDAMapFile); strcpy_s(LoadIDAMapFile.ModuleName,sizeof(LoadIDAMapFile.ModuleName),szModuleName); DWORD cbReturn; DeviceIoControl(hSyser,IOCTL_SYSER_LOAD_IDA_MAPFILE,(PVOID)&LoadIDAMapFile,sizeof(LoadIDAMapFile),NULL,0,&cbReturn,NULL); CloseHandle(hSyser); return true; } bool CSyserInterface::LoadSDS(IN PCSTR SymbolModuleFileName) { DWORD cbReturn; SYSER_LOAD_SYMBOL_MODULE LoadSymbolModule; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return false; STZeroMemory(LoadSymbolModule); if(theApp.m_SourceDebug.IsSymbolFile((char*)SymbolModuleFileName)==false) { CloseHandle(hSyser); return false; } TStrCpy(LoadSymbolModule.SymbolModuleName,"\\??\\"); TStrCat(LoadSymbolModule.SymbolModuleName,SymbolModuleFileName); DeviceIoControl(hSyser,IOCTL_SYSER_LOAD_SDS ,&LoadSymbolModule,sizeof(LoadSymbolModule),NULL,0,&cbReturn,NULL); CloseHandle(hSyser); return true; } bool CSyserInterface::UnloadSDS(IN PCSTR SymbolModuleFileName) { DWORD cbReturn; SYSER_UNLOAD_SYMBOL_MODULE UnloadSymbolModule; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return false; cbReturn = sizeof(UnloadSymbolModule); ZeroMemory(&UnloadSymbolModule,cbReturn); if(theApp.m_SourceDebug.IsSymbolFile(SymbolModuleFileName)==false) { CloseHandle(hSyser); return false; } TStrCpy(UnloadSymbolModule.SymbolModuleName,"\\??\\"); TStrCat(UnloadSymbolModule.SymbolModuleName,SymbolModuleFileName); DeviceIoControl(hSyser,IOCTL_SYSER_UNLOAD_SDS,&UnloadSymbolModule,cbReturn,NULL,0,&cbReturn,NULL); CloseHandle(hSyser); return true; } bool CSyserInterface::IsSyserRuning() { return m_bSyserDriverStatus; } bool CSyserInterface::InstallServiceGroupOrderList() { #define MAX_REGISTRY_VALUENAME_LEN 0x4001 #define SWAP_BYTE_ORDER(x) (((x)<<24) | ((x&0xff00)<<16) | ((x&0xff000)>>8)|(x>>24)) HKEY hKey; LONG lOK; DWORD dwIndex=0; DWORD Disposition,ValueNameLen=MAX_REGISTRY_VALUENAME_LEN; STGROUPORDERLIST GroupOrderList; if((lOK = RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SYSTEM\\CurrentControlSet\\Control\\GroupOrderList",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition))!=ERROR_SUCCESS) return false; memset(&GroupOrderList,0,sizeof(STGROUPORDERLIST)); GroupOrderList.Count=5; GroupOrderList.Order1=SWAP_BYTE_ORDER(GROUP_SYSLANG_ORDER); GroupOrderList.Order2=SWAP_BYTE_ORDER(GROUP_SDBGMSG_ORDER); GroupOrderList.Order3=SWAP_BYTE_ORDER(GROUP_SYSBOOT_ORDER); GroupOrderList.Order4=SWAP_BYTE_ORDER(GROUP_SYSER_ORDER); GroupOrderList.Order5=SWAP_BYTE_ORDER(GROUP_RESERVES2_ORDER); if(RegSetValueEx(hKey,DERIVER_GROUP_NAME,0,REG_BINARY,(BYTE*)&GroupOrderList,sizeof(GroupOrderList)) != ERROR_SUCCESS) { RegCloseKey(hKey); return false; } RegCloseKey(hKey); return true; } bool CSyserInterface::UninstallServiceGroupOrderList() { return DelRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Control\\GroupOrderList\\Syser"); } bool CSyserInterface::UninstallFileExtAssociate() { HKEY hKey; LONG lOK,cbValue; char StringBuf[512]; unsigned char pDataBuf[512]; char Name[]="SdsFile"; char Name7[]="InfoTip"; char Name2[]="Syser Symbol File"; char Name6[]="prop:FileDescription;Company;FileVersion;Create;Size"; DWORD dwType,cbData,dwIndex; lOK = RegOpenKey(HKEY_CLASSES_ROOT,".sds",&hKey); if(lOK==ERROR_SUCCESS) { cbValue=sizeof(StringBuf); lOK = RegQueryValue(hKey,NULL,StringBuf,&cbValue); if(lOK==ERROR_SUCCESS) { if(TStrCmp(StringBuf,Name)==0) lOK = RegDeleteValue(hKey,NULL); cbData = sizeof(pDataBuf); dwIndex=0; cbData = sizeof(pDataBuf); cbValue=sizeof(StringBuf); lOK=RegEnumValue(hKey,dwIndex,StringBuf,(LPDWORD)&cbValue,NULL,&dwType,pDataBuf,&cbData); if(lOK==ERROR_NO_MORE_ITEMS) lOK = RegDeleteKey(hKey,""); } lOK = RegCloseKey(hKey); } lOK = RegOpenKeyEx(HKEY_CLASSES_ROOT,Name,0,KEY_ALL_ACCESS,&hKey); if(lOK==ERROR_SUCCESS) { cbValue=sizeof(StringBuf); lOK = RegQueryValue(hKey,NULL,StringBuf,&cbValue); if(lOK==ERROR_SUCCESS) { if(TStrCmp(StringBuf,Name2)==0) lOK = RegDeleteValue(hKey,NULL); } cbData=sizeof(pDataBuf); lOK = RegQueryValueEx(hKey,Name7,NULL,&dwType,pDataBuf,&cbData); if(lOK==ERROR_SUCCESS) { if(TStrCmp(pDataBuf,Name6)==0) lOK = RegDeleteValue(hKey,Name7); } cbData = sizeof(pDataBuf); dwIndex=0; cbData = sizeof(pDataBuf); cbValue=sizeof(StringBuf); lOK=RegEnumValue(hKey,dwIndex,StringBuf,(LPDWORD)&cbValue,NULL,&dwType,pDataBuf,&cbData); if(lOK==ERROR_NO_MORE_ITEMS) { lOK = RegDeleteKey(hKey,"shell\\open\\command"); lOK = RegDeleteKey(hKey,"shell\\open"); lOK = RegDeleteKey(hKey,"shell\\SyserLoad\\command"); lOK = RegDeleteKey(hKey,"shell\\SyserLoad"); lOK = RegDeleteKey(hKey,"shell"); lOK = RegDeleteKey(hKey,""); } lOK = RegCloseKey(hKey); } lOK = RegOpenKeyEx(HKEY_CLASSES_ROOT,"exefile\\shell\\ SyserLoad\\command",0,KEY_ALL_ACCESS,&hKey); if(lOK==ERROR_SUCCESS) { lOK = RegDeleteKey(hKey,""); lOK = RegCloseKey(hKey); } lOK = RegOpenKeyEx(HKEY_CLASSES_ROOT,"exefile\\shell\\ SyserLoad",0,KEY_ALL_ACCESS,&hKey); if(lOK==ERROR_SUCCESS) { lOK = RegDeleteKey(hKey,""); lOK = RegCloseKey(hKey); } lOK = RegOpenKeyEx(HKEY_CLASSES_ROOT,"sysfile\\shell\\ SyserLoad\\command",0,KEY_ALL_ACCESS,&hKey); if(lOK==ERROR_SUCCESS) { lOK = RegDeleteKey(hKey,""); lOK = RegCloseKey(hKey); } lOK = RegOpenKeyEx(HKEY_CLASSES_ROOT,"sysfile\\shell\\ SyserLoad",0,KEY_ALL_ACCESS,&hKey); if(lOK==ERROR_SUCCESS) { lOK = RegDeleteKey(hKey,""); lOK = RegCloseKey(hKey); } return true; } bool CSyserInterface::InstallFileExtAssociate() { char CommandLine[1024]; char Name[]="SdsFile"; char Name2[]="Syser Symbol File"; char Name3[]="SyserLoad"; char Name4[]="Load into S&yser"; char Name5[]="Debug with S&yser"; char Name6[]="prop:FileDescription;Company;FileVersion;Create;Size"; DWORD Disposition,dwSize; int ModuleFileNameLen; HKEY hKey; LONG lOK; CommandLine[0]='"'; GetModuleFileNameA(NULL,&CommandLine[1],sizeof(CommandLine)); ModuleFileNameLen=TStrLen(CommandLine); ModuleFileNameLen++; TStrCat(CommandLine,"\" /Load \"%1\""); if((lOK = RegCreateKeyEx(HKEY_CLASSES_ROOT,".sds",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition))!=ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)Name,sizeof(Name)) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)Name2,sizeof(Name2)) != ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,"InfoTip",0,REG_SZ,(BYTE*)Name6,sizeof(Name6)) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile\\shell",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)Name3,sizeof(Name3)) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile\\shell",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile\\shell\\open",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile\\shell\\open\\command",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; dwSize = (DWORD)TStrLen(CommandLine)+1; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)CommandLine,dwSize) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile\\shell\\SyserLoad",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)Name4,sizeof(Name4)) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"SdsFile\\shell\\SyserLoad\\command",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; dwSize = (DWORD)TStrLen(CommandLine)+1; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)CommandLine,dwSize) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"exefile\\shell\\ SyserLoad",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)Name5,sizeof(Name5)) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"exefile\\shell\\ SyserLoad\\command",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; CommandLine[ModuleFileNameLen]=0; TStrCat(CommandLine," /debugapp \"%1\""); dwSize = (DWORD)TStrLen(CommandLine)+1; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)CommandLine,dwSize) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"sysfile\\shell",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"sysfile\\shell\\ SyserLoad",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)Name5,sizeof(Name5)) != ERROR_SUCCESS) return false; RegCloseKey(hKey); if(RegCreateKeyEx(HKEY_CLASSES_ROOT,"sysfile\\shell\\ SyserLoad\\command",0,"",0,KEY_ALL_ACCESS,NULL,&hKey,&Disposition)!=ERROR_SUCCESS) return false; CommandLine[ModuleFileNameLen]=0; TStrCat(CommandLine," /debugdriver \"%1\""); dwSize = (DWORD)TStrLen(CommandLine)+1; if(RegSetValueEx(hKey,NULL,0,REG_SZ,(BYTE*)CommandLine,dwSize) != ERROR_SUCCESS) return false; RegCloseKey(hKey); return true; } bool CSyserInterface::InstallSyser() { InstallServiceGroupOrderList(); InstallServiceGroup(DERIVER_GROUP_NAME,"Primary Disk"); InstallDependDriver("SyserBoot","SysBoot.sys",SERVICE_BOOT_START,DERIVER_GROUP_NAME,GROUP_SYSBOOT_ORDER); InstallDependDriver("SyserLanguage","SysLang.sys",SERVICE_BOOT_START,DERIVER_GROUP_NAME,GROUP_SYSLANG_ORDER); InstallDependDriver("SDbgMsg","SDbgMsg.sys",SERVICE_BOOT_START,DERIVER_GROUP_NAME,GROUP_SDBGMSG_ORDER); InstallDependDriver(DRIVER_NAME,"Syser.sys",SERVICE_DEMAND_START,DERIVER_GROUP_NAME,GROUP_SYSER_ORDER); InstallServiceEventLog("Syser","%SystemRoot%\\System32\\drivers\\Syser.sys",7,true); InstallDependData("Syser.dat;Wisp.dat;libfunc.fdc;APIDef.lib"); RemoveDependData("Syser.cfg;SyserColor.cfg"); char szWindows[MAX_FN_LEN]; GetWindowsDirectory(szWindows,MAX_FN_LEN); SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\SystemRoot",szWindows,REG_SZ); SaveSyserOption(theApp.m_szSyserAppCfgFN,&OrgSyserAppOption,sizeof(OrgSyserAppOption)); SaveSyserOption(theApp.m_szSyserCfgFN,&OrgSyserOption,sizeof(OrgSyserOption)); SaveSyserOption(theApp.m_szSyserColorCfgFN,&OrgColorOption,sizeof(OrgColorOption)); ULONGLONG InstTime; if(GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\InstTime",&InstTime,sizeof(InstTime))==false) { InstTime = GetCurrentInstallTime(); if(InstTime) SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\InstTime",&InstTime,REG_QWORD); } if(IsDriverActive("sptd")) { MessageBox( NULL, "Daemon Tools SPTD isn't compatible with kernel debuggers !\n" "Daemon Tools Uninstaller couldn't clean it !\n" "Syser will disable it while installation !", "Warning",MB_OK); } if(IsDriverActive("dump_wmimmc")) { MessageBox( NULL, "nProtect dump_wmimmc.sys isn't compatible with kernel debuggers !\nMaybe cause BSOD !", "Warning",MB_OK); } DWORD Start = 3; DWORD OldStart=0; if(GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\Start",&OldStart,REG_DWORD)) { if(OldStart<3) { SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\Start",&Start,REG_DWORD); SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\OldStart",&OldStart,REG_DWORD); } } return true; } bool CSyserInterface::UninstallSyser() { char szDir[MAX_FN_LEN],szFile[MAX_FN_LEN]; GetSystemDirectory(szDir,MAX_FN_LEN); TStrCpy(szFile,szDir); TStrCat(szFile,"\\drivers\\Syser.cfg"); DeleteFile(szFile); TStrCpy(szFile,szDir); TStrCat(szFile,"\\drivers\\SyserColor.cfg"); DeleteFile(szFile); TStrCpy(szFile,szDir); TStrCat(szFile,"\\drivers\\ExpMod.lst"); DeleteFile(szFile); TStrCpy(szFile,szDir); TStrCat(szFile,"\\drivers\\ModExSym.lst"); DeleteFile(szFile); TStrCpy(szFile,szDir); TStrCat(szFile,"\\drivers\\Syser.cmt"); DeleteFile(szFile); if(IsDriverActive(DRIVER_NAME)) if(DisableDriver(DRIVER_NAME)==false) return false; UninstallDriver(DRIVER_NAME); UninstallDriver("SyserBoot"); UninstallDriver("SyserLanguage"); UninstallDriver("SDbgMsg"); UninstallFileExtAssociate(); UninstallServiceGroup(DERIVER_GROUP_NAME); UninstallServiceGroupOrderList(); UninstallServiceEventLog("Syser"); DWORD OldStart; if(GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\OldStart",&OldStart,REG_DWORD)) { SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\Start",&OldStart,REG_DWORD); } else { if(GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\Start",&OldStart,REG_DWORD)) { if(OldStart==3) { OldStart=0; SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\Start",&OldStart,REG_DWORD); } } } DelRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\sptd\\OldStart"); return true; } bool CSyserInterface::StopSyser() { HWND hWnd; HANDLE hMutex; hMutex = OpenMutex(MUTEX_ALL_ACCESS,false,"Syser Interface"); if(hMutex) { hWnd=::FindWindow("WispWindowClass",MAIN_WND_NAME); if(hWnd) ::SendMessage(hWnd,WM_SYSER_UNINSTALL,0,0); } CloseHandle(hMutex); return true; } void CSyserInterface::SaveSyserHistroys(PCSTR Filename) { DWORD cbReturn; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return; DeviceIoControl(hSyser,IOCTL_SYSER_SAVE_HISTROYS,(void*)Filename,TStrLen(Filename)+1,NULL,0,&cbReturn,NULL); CloseHandle(hSyser); } void CSyserInterface::SaveSyserComments() { DWORD cbReturn; HANDLE hSyser = CreateFile(DRIVER_RING3_NAME,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser==INVALID_HANDLE_VALUE) return; DeviceIoControl(hSyser,IOCTL_SYSER_SAVE_COMMENTS,NULL,0,NULL,0,&cbReturn,NULL); CloseHandle(hSyser); } ================================================ FILE: Project/SyserApp/Source/SyserInterface.h ================================================ #ifndef _SYSER_INTERFACE_ #define _SYSER_INTERFACE_ #include "Process.h" #include "../../SerialNumber/Source/Validate.h" #include "DXTest.h" #define WM_SYSER_UNINSTALL (WM_USER+0x201) #define WM_SYSER_GET_CLIPBOARD_STRING (WM_USER+0x202) #define WM_SYSER_UPDATE_DBG_MSG (WM_USER+0x203) #define WM_SYSER_UPDATE_DRV_STATE (WM_USER+0x204) enum { GROUP_SYSLANG_ORDER=0x1, GROUP_SDBGMSG_ORDER, GROUP_SYSBOOT_ORDER, GROUP_SYSER_ORDER, GROUP_RESERVES2_ORDER, }; typedef struct _STGROUPORDERLIST { BYTE Count; DWORD Order1; DWORD Order2; DWORD Order3; DWORD Order4; DWORD Order5; BYTE Padding[3]; }STGROUPORDERLIST,*PSTGROUPORDERLIST; class CSyserInterface { public: CSyserInterface(void); ~CSyserInterface(void); public: bool Init(); void Release(); bool InstallDependDriver(PCSTR ServiceName,PCSTR FileName,UINT StartType = SERVICE_BOOT_START,PCSTR GroupName=NULL,DWORD Tag=-1); bool TranslateExportSymbolFile(IN PCSTR szFileName,OUT PSTR szSymbolFileName); bool InstallServiceEventLog(PCSTR ServiceName,PCSTR MessageDllName,DWORD TypesSupported=7,bool bSystemIoLog=true); bool UninstallServiceEventLog(PCSTR ServiceName); bool RemoveDependData(PCSTR FileNameList); void IsSysBootFrameBufferAvailable(); bool StartSyserDriver(); void StopSyserDriver(); bool StopSyser(); void SaveSyserHistroys(PCSTR Filename); void SaveSyserComments(); bool LoadModule(PCSTR szFilename,PCSTR szCmdLine,DWORD Style); bool LoadDepModuleSDS(PCSTR szMainModule,bool bDriver); bool GetModuleFullPath(PCSTR szModuleName,PCSTR szMainModule,PSTR szFullName); bool LaunchAppForDebugging(PCSTR FileName,PCSTR szCmdLine,DWORD Style); bool LaunchDriverForDebugging(IN PCSTR FileName,DWORD Style); bool LoadModuleExportSymbols(IN PCSTR szFileName); bool LoadModuleIDAMapFile(IN PCSTR szIDAMapFile,IN PCSTR szModuleName); bool LoadSDS(IN PCSTR SymbolModuleFileName); bool UnloadSDS(IN PCSTR SymbolModuleFileName); bool TranslateSymbolFile(IN PCSTR szFileName,OUT PSTR szSymbolFileName,bool bOverWrite); void UpdateDriverStatus(); void ReloadConfig(); void UpdateDbgMsg(HANDLE hDevice); void ChangeMsgFilter(); bool IsSyserRuning(); bool InstallSyser(); bool UninstallSyser(); bool InstallServiceGroupOrderList(); bool UninstallServiceGroupOrderList(); bool InstallFileExtAssociate(); bool UninstallFileExtAssociate(); void SendClipboardString(); void RecvClipboardString(); void UpdateWindow(); static void MsgUpdateThread(); static void TranslateThread(); static void UpdateThread(); static void ProgressSetRange(int Range); static void ProgressSetPos(int Pos); public: char m_LoadDllName[MAX_FN_LEN]; OSVERSIONINFOA m_VerInfo; bool m_bRecvClipboard; bool m_bSyserDriverStatus; bool m_bCaptureDbgMsg; bool m_bAttachFrameBuffer; CProcess m_Process; HANDLE m_hMutex; HANDLE m_hDbgMsgDevice; SYSER_SN_TYPE m_VerType; CSyserDX m_SyserDX; }; #endif ================================================ FILE: Project/SyserApp/Source/SyserResource.h ================================================ #ifndef _SYSER_RESOURCE_H_ #define _SYSER_RESOURCE_H_ enum { EVENT_ID_LOAD_MODULE = WISP_ID_USER_START, EVENT_ID_LOAD_SYMBOL_SYSERAPP, EVENT_ID_LOAD_IDA_MAP, EVENT_ID_LOAD_EXPORT_SYMBOLS, EVENT_ID_TRANSLATE_SYMBOL, EVENT_ID_SAVE_SYMBOLS, EVENT_ID_SAVE_COMMENTS, EVENT_ID_SAVE_HISTROYS, EVENT_ID_SAVE_SYSER_HISTROYS, EVENT_ID_START_SYSER, EVENT_ID_STOP_SYSER, EVENT_ID_CHECKNEWVERSION, EVENT_ID_ORDER_SYSER, EVENT_ID_REGISTER, EVENT_ID_COMMAND_REFERENCE, EVENT_ID_DEBUG_HELP, EVENT_ID_ABOUT_SYSERAPP, EVENT_ID_OPTION, EVENT_ID_BOOT_OPTION, EVENT_ID_VIDEO_DETECT_MODE, EVENT_ID_SYMBIL_DOWNLOADER, EVENT_ID_DRV_LOADER, EVENT_ID_BUYNOW, EVENT_ID_VEUNPACK, EVENT_ID_OBJECTVIEWER, EVENT_ID_DEBUG_MESSAGE, EVENT_ID_DEBUG_MESSAGE_FILTER, EVENT_ID_DEBUG_MESSAGE_CLEAR, EVENT_ID_SEND_CLIPBOARD, EVENT_ID_RECV_CLIPBOARD, EVENT_ID_EXIT, EVENT_ID_RECENT_FILE_SYSERAPP, EVENT_ID_RECENT_FILE_SYSERAPP_END = EVENT_ID_RECENT_FILE_SYSERAPP+8, EVENT_ID_TERMINATE, EVENT_ID_SET_PRIORITY_CLASS, EVENT_ID_REAL_TIME, EVENT_ID_HIGH, EVENT_ID_ABOVE_NORMAL, EVENT_ID_NORMAL, EVENT_ID_BELOW_NORMAL, EVENT_ID_IDLE, EVENT_ID_DETAIL, EVENT_ID_EMPTY_WORKING_SET, EVENT_ID_UPDATE_DRIVER_STATE, }; extern WISP_TOOLBAR_RES_ITEM MainToolbar[]; extern WISP_MENU_RES_ITEM MainMenu[]; extern WISP_MENU_RES_ITEM ProcessPopupMenu[]; #endif ================================================ FILE: Project/SyserApp/Source/ddraw.h ================================================ /*==========================================================================; * * Copyright (C) Microsoft Corporation. All Rights Reserved. * * File: ddraw.h * Content: DirectDraw include file * ***************************************************************************/ #ifndef __DDRAW_INCLUDED__ #define __DDRAW_INCLUDED__ //Disable the nameless union warning when building internally #undef ENABLE_NAMELESS_UNION_PRAGMA #ifdef DIRECTX_REDIST #define ENABLE_NAMELESS_UNION_PRAGMA #endif #ifdef ENABLE_NAMELESS_UNION_PRAGMA #pragma warning(disable:4201) #endif /* * If you wish an application built against the newest version of DirectDraw * to run against an older DirectDraw run time then define DIRECTDRAW_VERSION * to be the earlies version of DirectDraw you wish to run against. For, * example if you wish an application to run against a DX 3 runtime define * DIRECTDRAW_VERSION to be 0x0300. */ #ifndef DIRECTDRAW_VERSION #define DIRECTDRAW_VERSION 0x0700 #endif /* DIRECTDRAW_VERSION */ #if defined( _WIN32 ) && !defined( _NO_COM ) #define COM_NO_WINDOWS_H #include #else #define IUnknown void #if !defined( NT_BUILD_ENVIRONMENT ) && !defined(WINNT) #define CO_E_NOTINITIALIZED 0x800401F0L #endif #endif #define _FACDD 0x876 #define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code ) #ifdef __cplusplus extern "C" { #endif // // For compilers that don't support nameless unions, do a // // #define NONAMELESSUNION // // before #include // #ifndef DUMMYUNIONNAMEN #if defined(__cplusplus) || !defined(NONAMELESSUNION) #define DUMMYUNIONNAMEN(n) #else #define DUMMYUNIONNAMEN(n) u##n #endif #endif #ifndef MAKEFOURCC #define MAKEFOURCC(ch0, ch1, ch2, ch3) \ ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \ ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 )) #endif //defined(MAKEFOURCC) /* * FOURCC codes for DX compressed-texture pixel formats */ #define FOURCC_DXT1 (MAKEFOURCC('D','X','T','1')) #define FOURCC_DXT2 (MAKEFOURCC('D','X','T','2')) #define FOURCC_DXT3 (MAKEFOURCC('D','X','T','3')) #define FOURCC_DXT4 (MAKEFOURCC('D','X','T','4')) #define FOURCC_DXT5 (MAKEFOURCC('D','X','T','5')) /* * GUIDS used by DirectDraw objects */ #if defined( _WIN32 ) && !defined( _NO_COM ) DEFINE_GUID( CLSID_DirectDraw, 0xD7B70EE0,0x4340,0x11CF,0xB0,0x63,0x00,0x20,0xAF,0xC2,0xCD,0x35 ); DEFINE_GUID( CLSID_DirectDraw7, 0x3c305196,0x50db,0x11d3,0x9c,0xfe,0x00,0xc0,0x4f,0xd9,0x30,0xc5 ); DEFINE_GUID( CLSID_DirectDrawClipper, 0x593817A0,0x7DB3,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xb9,0x33,0x56 ); DEFINE_GUID( IID_IDirectDraw, 0x6C14DB80,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); DEFINE_GUID( IID_IDirectDraw2, 0xB3A6F3E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56 ); DEFINE_GUID( IID_IDirectDraw4, 0x9c59509a,0x39bd,0x11d1,0x8c,0x4a,0x00,0xc0,0x4f,0xd9,0x30,0xc5 ); DEFINE_GUID( IID_IDirectDraw7, 0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); DEFINE_GUID( IID_IDirectDrawSurface, 0x6C14DB81,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); DEFINE_GUID( IID_IDirectDrawSurface2, 0x57805885,0x6eec,0x11cf,0x94,0x41,0xa8,0x23,0x03,0xc1,0x0e,0x27 ); DEFINE_GUID( IID_IDirectDrawSurface3, 0xDA044E00,0x69B2,0x11D0,0xA1,0xD5,0x00,0xAA,0x00,0xB8,0xDF,0xBB ); DEFINE_GUID( IID_IDirectDrawSurface4, 0x0B2B8630,0xAD35,0x11D0,0x8E,0xA6,0x00,0x60,0x97,0x97,0xEA,0x5B ); DEFINE_GUID( IID_IDirectDrawSurface7, 0x06675a80,0x3b9b,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b ); DEFINE_GUID( IID_IDirectDrawPalette, 0x6C14DB84,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); DEFINE_GUID( IID_IDirectDrawClipper, 0x6C14DB85,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60 ); DEFINE_GUID( IID_IDirectDrawColorControl, 0x4B9F0EE0,0x0D7E,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 ); DEFINE_GUID( IID_IDirectDrawGammaControl, 0x69C11C3E,0xB46B,0x11D1,0xAD,0x7A,0x00,0xC0,0x4F,0xC2,0x9B,0x4E ); #endif /*============================================================================ * * DirectDraw Structures * * Various structures used to invoke DirectDraw. * *==========================================================================*/ struct IDirectDraw; struct IDirectDrawSurface; struct IDirectDrawPalette; struct IDirectDrawClipper; typedef struct IDirectDraw FAR *LPDIRECTDRAW; typedef struct IDirectDraw2 FAR *LPDIRECTDRAW2; typedef struct IDirectDraw4 FAR *LPDIRECTDRAW4; typedef struct IDirectDraw7 FAR *LPDIRECTDRAW7; typedef struct IDirectDrawSurface FAR *LPDIRECTDRAWSURFACE; typedef struct IDirectDrawSurface2 FAR *LPDIRECTDRAWSURFACE2; typedef struct IDirectDrawSurface3 FAR *LPDIRECTDRAWSURFACE3; typedef struct IDirectDrawSurface4 FAR *LPDIRECTDRAWSURFACE4; typedef struct IDirectDrawSurface7 FAR *LPDIRECTDRAWSURFACE7; typedef struct IDirectDrawPalette FAR *LPDIRECTDRAWPALETTE; typedef struct IDirectDrawClipper FAR *LPDIRECTDRAWCLIPPER; typedef struct IDirectDrawColorControl FAR *LPDIRECTDRAWCOLORCONTROL; typedef struct IDirectDrawGammaControl FAR *LPDIRECTDRAWGAMMACONTROL; typedef struct _DDFXROP FAR *LPDDFXROP; typedef struct _DDSURFACEDESC FAR *LPDDSURFACEDESC; typedef struct _DDSURFACEDESC2 FAR *LPDDSURFACEDESC2; typedef struct _DDCOLORCONTROL FAR *LPDDCOLORCONTROL; /* * API's */ #if (defined (WIN32) || defined( _WIN32 ) ) && !defined( _NO_COM ) //#if defined( _WIN32 ) && !defined( _NO_ENUM ) typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID); typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID); extern HRESULT WINAPI DirectDrawEnumerateW( LPDDENUMCALLBACKW lpCallback, LPVOID lpContext ); extern HRESULT WINAPI DirectDrawEnumerateA( LPDDENUMCALLBACKA lpCallback, LPVOID lpContext ); /* * Protect against old SDKs */ #if !defined(HMONITOR_DECLARED) && (WINVER < 0x0500) #define HMONITOR_DECLARED DECLARE_HANDLE(HMONITOR); #endif typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXA)(GUID FAR *, LPSTR, LPSTR, LPVOID, HMONITOR); typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKEXW)(GUID FAR *, LPWSTR, LPWSTR, LPVOID, HMONITOR); extern HRESULT WINAPI DirectDrawEnumerateExW( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); extern HRESULT WINAPI DirectDrawEnumerateExA( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXA)( LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags); typedef HRESULT (WINAPI * LPDIRECTDRAWENUMERATEEXW)( LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags); #ifdef UNICODE typedef LPDDENUMCALLBACKW LPDDENUMCALLBACK; #define DirectDrawEnumerate DirectDrawEnumerateW typedef LPDDENUMCALLBACKEXW LPDDENUMCALLBACKEX; typedef LPDIRECTDRAWENUMERATEEXW LPDIRECTDRAWENUMERATEEX; #define DirectDrawEnumerateEx DirectDrawEnumerateExW #else typedef LPDDENUMCALLBACKA LPDDENUMCALLBACK; #define DirectDrawEnumerate DirectDrawEnumerateA typedef LPDDENUMCALLBACKEXA LPDDENUMCALLBACKEX; typedef LPDIRECTDRAWENUMERATEEXA LPDIRECTDRAWENUMERATEEX; #define DirectDrawEnumerateEx DirectDrawEnumerateExA #endif extern HRESULT WINAPI DirectDrawCreate( GUID FAR *lpGUID, LPDIRECTDRAW FAR *lplpDD, IUnknown FAR *pUnkOuter ); extern HRESULT WINAPI DirectDrawCreateEx( GUID FAR * lpGuid, LPVOID *lplpDD, REFIID iid,IUnknown FAR *pUnkOuter ); extern HRESULT WINAPI DirectDrawCreateClipper( DWORD dwFlags, LPDIRECTDRAWCLIPPER FAR *lplpDDClipper, IUnknown FAR *pUnkOuter ); #endif /* * Flags for DirectDrawEnumerateEx * DirectDrawEnumerateEx supercedes DirectDrawEnumerate. You must use GetProcAddress to * obtain a function pointer (of type LPDIRECTDRAWENUMERATEEX) to DirectDrawEnumerateEx. * By default, only the primary display device is enumerated. * DirectDrawEnumerate is equivalent to DirectDrawEnumerate(,,DDENUM_NONDISPLAYDEVICES) */ /* * This flag causes enumeration of any GDI display devices which are part of * the Windows Desktop */ #define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001L /* * This flag causes enumeration of any GDI display devices which are not * part of the Windows Desktop */ #define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002L /* * This flag causes enumeration of non-display devices */ #define DDENUM_NONDISPLAYDEVICES 0x00000004L #define REGSTR_KEY_DDHW_DESCRIPTION "Description" #define REGSTR_KEY_DDHW_DRIVERNAME "DriverName" #define REGSTR_PATH_DDHW "Hardware\\DirectDrawDrivers" #define DDCREATE_HARDWAREONLY 0x00000001l #define DDCREATE_EMULATIONONLY 0x00000002l #if defined(WINNT) || !defined(WIN32) typedef long HRESULT; #endif //#ifndef WINNT typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK)(LPDDSURFACEDESC, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMMODESCALLBACK2)(LPDDSURFACEDESC2, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID); typedef HRESULT (FAR PASCAL * LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID); //#endif /* * Generic pixel format with 8-bit RGB and alpha components */ typedef struct _DDARGB { BYTE blue; BYTE green; BYTE red; BYTE alpha; } DDARGB; typedef DDARGB FAR *LPDDARGB; /* * This version of the structure remains for backwards source compatibility. * The DDARGB structure is the one that should be used for all DirectDraw APIs. */ typedef struct _DDRGBA { BYTE red; BYTE green; BYTE blue; BYTE alpha; } DDRGBA; typedef DDRGBA FAR *LPDDRGBA; /* * DDCOLORKEY */ typedef struct _DDCOLORKEY { DWORD dwColorSpaceLowValue; // low boundary of color space that is to // be treated as Color Key, inclusive DWORD dwColorSpaceHighValue; // high boundary of color space that is // to be treated as Color Key, inclusive } DDCOLORKEY; typedef DDCOLORKEY FAR* LPDDCOLORKEY; /* * DDBLTFX * Used to pass override information to the DIRECTDRAWSURFACE callback Blt. */ typedef struct _DDBLTFX { DWORD dwSize; // size of structure DWORD dwDDFX; // FX operations DWORD dwROP; // Win32 raster operations DWORD dwDDROP; // Raster operations new for DirectDraw DWORD dwRotationAngle; // Rotation angle for blt DWORD dwZBufferOpCode; // ZBuffer compares DWORD dwZBufferLow; // Low limit of Z buffer DWORD dwZBufferHigh; // High limit of Z buffer DWORD dwZBufferBaseDest; // Destination base value DWORD dwZDestConstBitDepth; // Bit depth used to specify Z constant for destination union { DWORD dwZDestConst; // Constant to use as Z buffer for dest LPDIRECTDRAWSURFACE lpDDSZBufferDest; // Surface to use as Z buffer for dest } DUMMYUNIONNAMEN(1); DWORD dwZSrcConstBitDepth; // Bit depth used to specify Z constant for source union { DWORD dwZSrcConst; // Constant to use as Z buffer for src LPDIRECTDRAWSURFACE lpDDSZBufferSrc; // Surface to use as Z buffer for src } DUMMYUNIONNAMEN(2); DWORD dwAlphaEdgeBlendBitDepth; // Bit depth used to specify constant for alpha edge blend DWORD dwAlphaEdgeBlend; // Alpha for edge blending DWORD dwReserved; DWORD dwAlphaDestConstBitDepth; // Bit depth used to specify alpha constant for destination union { DWORD dwAlphaDestConst; // Constant to use as Alpha Channel LPDIRECTDRAWSURFACE lpDDSAlphaDest; // Surface to use as Alpha Channel } DUMMYUNIONNAMEN(3); DWORD dwAlphaSrcConstBitDepth; // Bit depth used to specify alpha constant for source union { DWORD dwAlphaSrcConst; // Constant to use as Alpha Channel LPDIRECTDRAWSURFACE lpDDSAlphaSrc; // Surface to use as Alpha Channel } DUMMYUNIONNAMEN(4); union { DWORD dwFillColor; // color in RGB or Palettized DWORD dwFillDepth; // depth value for z-buffer DWORD dwFillPixel; // pixel value for RGBA or RGBZ LPDIRECTDRAWSURFACE lpDDSPattern; // Surface to use as pattern } DUMMYUNIONNAMEN(5); DDCOLORKEY ddckDestColorkey; // DestColorkey override DDCOLORKEY ddckSrcColorkey; // SrcColorkey override } DDBLTFX; typedef DDBLTFX FAR* LPDDBLTFX; /* * DDSCAPS */ typedef struct _DDSCAPS { DWORD dwCaps; // capabilities of surface wanted } DDSCAPS; typedef DDSCAPS FAR* LPDDSCAPS; /* * DDOSCAPS */ typedef struct _DDOSCAPS { DWORD dwCaps; // capabilities of surface wanted } DDOSCAPS; typedef DDOSCAPS FAR* LPDDOSCAPS; /* * This structure is used internally by DirectDraw. */ typedef struct _DDSCAPSEX { DWORD dwCaps2; DWORD dwCaps3; union { DWORD dwCaps4; DWORD dwVolumeDepth; } DUMMYUNIONNAMEN(1); } DDSCAPSEX, FAR * LPDDSCAPSEX; /* * DDSCAPS2 */ typedef struct _DDSCAPS2 { DWORD dwCaps; // capabilities of surface wanted DWORD dwCaps2; DWORD dwCaps3; union { DWORD dwCaps4; DWORD dwVolumeDepth; } DUMMYUNIONNAMEN(1); } DDSCAPS2; typedef DDSCAPS2 FAR* LPDDSCAPS2; /* * DDCAPS */ #define DD_ROP_SPACE (256/32) // space required to store ROP array /* * NOTE: Our choosen structure number scheme is to append a single digit to * the end of the structure giving the version that structure is associated * with. */ /* * This structure represents the DDCAPS structure released in DirectDraw 1.0. It is used internally * by DirectDraw to interpret caps passed into ddraw by drivers written prior to the release of DirectDraw 2.0. * New applications should use the DDCAPS structure defined below. */ typedef struct _DDCAPS_DX1 { DWORD dwSize; // size of the DDDRIVERCAPS structure DWORD dwCaps; // driver specific capabilities DWORD dwCaps2; // more driver specific capabilites DWORD dwCKeyCaps; // color key capabilities of the surface DWORD dwFXCaps; // driver specific stretching and effects capabilites DWORD dwFXAlphaCaps; // alpha driver specific capabilities DWORD dwPalCaps; // palette capabilities DWORD dwSVCaps; // stereo vision capabilities DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 DWORD dwVidMemTotal; // total amount of video memory DWORD dwVidMemFree; // amount of free video memory DWORD dwMaxVisibleOverlays; // maximum number of visible overlays DWORD dwCurrVisibleOverlays; // current number of visible overlays DWORD dwNumFourCCCodes; // number of four cc codes DWORD dwAlignBoundarySrc; // source rectangle alignment DWORD dwAlignSizeSrc; // source rectangle byte size DWORD dwAlignBoundaryDest; // dest rectangle alignment DWORD dwAlignSizeDest; // dest rectangle byte size DWORD dwAlignStrideAlign; // stride alignment DWORD dwRops[DD_ROP_SPACE]; // ROPS supported DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMinLiveVideoStretch; // OBSOLETE! This field remains for compatability reasons only DWORD dwMaxLiveVideoStretch; // OBSOLETE! This field remains for compatability reasons only DWORD dwMinHwCodecStretch; // OBSOLETE! This field remains for compatability reasons only DWORD dwMaxHwCodecStretch; // OBSOLETE! This field remains for compatability reasons only DWORD dwReserved1; // reserved DWORD dwReserved2; // reserved DWORD dwReserved3; // reserved } DDCAPS_DX1; typedef DDCAPS_DX1 FAR* LPDDCAPS_DX1; /* * This structure is the DDCAPS structure as it was in version 2 and 3 of Direct X. * It is present for back compatability. */ typedef struct _DDCAPS_DX3 { DWORD dwSize; // size of the DDDRIVERCAPS structure DWORD dwCaps; // driver specific capabilities DWORD dwCaps2; // more driver specific capabilites DWORD dwCKeyCaps; // color key capabilities of the surface DWORD dwFXCaps; // driver specific stretching and effects capabilites DWORD dwFXAlphaCaps; // alpha driver specific capabilities DWORD dwPalCaps; // palette capabilities DWORD dwSVCaps; // stereo vision capabilities DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 DWORD dwVidMemTotal; // total amount of video memory DWORD dwVidMemFree; // amount of free video memory DWORD dwMaxVisibleOverlays; // maximum number of visible overlays DWORD dwCurrVisibleOverlays; // current number of visible overlays DWORD dwNumFourCCCodes; // number of four cc codes DWORD dwAlignBoundarySrc; // source rectangle alignment DWORD dwAlignSizeSrc; // source rectangle byte size DWORD dwAlignBoundaryDest; // dest rectangle alignment DWORD dwAlignSizeDest; // dest rectangle byte size DWORD dwAlignStrideAlign; // stride alignment DWORD dwRops[DD_ROP_SPACE]; // ROPS supported DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 DWORD dwReserved1; // reserved DWORD dwReserved2; // reserved DWORD dwReserved3; // reserved DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts DWORD dwSSBCaps; // driver specific capabilities for System->System blts DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts DWORD dwReserved4; // reserved DWORD dwReserved5; // reserved DWORD dwReserved6; // reserved } DDCAPS_DX3; typedef DDCAPS_DX3 FAR* LPDDCAPS_DX3; /* * This structure is the DDCAPS structure as it was in version 5 of Direct X. * It is present for back compatability. */ typedef struct _DDCAPS_DX5 { /* 0*/ DWORD dwSize; // size of the DDDRIVERCAPS structure /* 4*/ DWORD dwCaps; // driver specific capabilities /* 8*/ DWORD dwCaps2; // more driver specific capabilites /* c*/ DWORD dwCKeyCaps; // color key capabilities of the surface /* 10*/ DWORD dwFXCaps; // driver specific stretching and effects capabilites /* 14*/ DWORD dwFXAlphaCaps; // alpha driver specific capabilities /* 18*/ DWORD dwPalCaps; // palette capabilities /* 1c*/ DWORD dwSVCaps; // stereo vision capabilities /* 20*/ DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 /* 24*/ DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 /* 28*/ DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 /* 2c*/ DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 /* 30*/ DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 /* 34*/ DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 /* 38*/ DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 /* 3c*/ DWORD dwVidMemTotal; // total amount of video memory /* 40*/ DWORD dwVidMemFree; // amount of free video memory /* 44*/ DWORD dwMaxVisibleOverlays; // maximum number of visible overlays /* 48*/ DWORD dwCurrVisibleOverlays; // current number of visible overlays /* 4c*/ DWORD dwNumFourCCCodes; // number of four cc codes /* 50*/ DWORD dwAlignBoundarySrc; // source rectangle alignment /* 54*/ DWORD dwAlignSizeSrc; // source rectangle byte size /* 58*/ DWORD dwAlignBoundaryDest; // dest rectangle alignment /* 5c*/ DWORD dwAlignSizeDest; // dest rectangle byte size /* 60*/ DWORD dwAlignStrideAlign; // stride alignment /* 64*/ DWORD dwRops[DD_ROP_SPACE]; // ROPS supported /* 84*/ DDSCAPS ddsCaps; // DDSCAPS structure has all the general capabilities /* 88*/ DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 8c*/ DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 90*/ DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 94*/ DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 98*/ DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 9c*/ DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* a0*/ DWORD dwReserved1; // reserved /* a4*/ DWORD dwReserved2; // reserved /* a8*/ DWORD dwReserved3; // reserved /* ac*/ DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts /* b0*/ DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts /* b4*/ DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts /* b8*/ DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts /* d8*/ DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts /* dc*/ DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts /* e0*/ DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts /* e4*/ DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts /*104*/ DWORD dwSSBCaps; // driver specific capabilities for System->System blts /*108*/ DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts /*10c*/ DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts /*110*/ DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts // Members added for DX5: /*130*/ DWORD dwMaxVideoPorts; // maximum number of usable video ports /*134*/ DWORD dwCurrVideoPorts; // current number of video ports used /*138*/ DWORD dwSVBCaps2; // more driver specific capabilities for System->Vmem blts /*13c*/ DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts /*140*/ DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts /*144*/ DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts /*148*/ DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts /*14c*/ DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts } DDCAPS_DX5; typedef DDCAPS_DX5 FAR* LPDDCAPS_DX5; typedef struct _DDCAPS_DX6 { /* 0*/ DWORD dwSize; // size of the DDDRIVERCAPS structure /* 4*/ DWORD dwCaps; // driver specific capabilities /* 8*/ DWORD dwCaps2; // more driver specific capabilites /* c*/ DWORD dwCKeyCaps; // color key capabilities of the surface /* 10*/ DWORD dwFXCaps; // driver specific stretching and effects capabilites /* 14*/ DWORD dwFXAlphaCaps; // alpha caps /* 18*/ DWORD dwPalCaps; // palette capabilities /* 1c*/ DWORD dwSVCaps; // stereo vision capabilities /* 20*/ DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 /* 24*/ DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 /* 28*/ DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 /* 2c*/ DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 /* 30*/ DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 /* 34*/ DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 /* 38*/ DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 /* 3c*/ DWORD dwVidMemTotal; // total amount of video memory /* 40*/ DWORD dwVidMemFree; // amount of free video memory /* 44*/ DWORD dwMaxVisibleOverlays; // maximum number of visible overlays /* 48*/ DWORD dwCurrVisibleOverlays; // current number of visible overlays /* 4c*/ DWORD dwNumFourCCCodes; // number of four cc codes /* 50*/ DWORD dwAlignBoundarySrc; // source rectangle alignment /* 54*/ DWORD dwAlignSizeSrc; // source rectangle byte size /* 58*/ DWORD dwAlignBoundaryDest; // dest rectangle alignment /* 5c*/ DWORD dwAlignSizeDest; // dest rectangle byte size /* 60*/ DWORD dwAlignStrideAlign; // stride alignment /* 64*/ DWORD dwRops[DD_ROP_SPACE]; // ROPS supported /* 84*/ DDSCAPS ddsOldCaps; // Was DDSCAPS ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 /* 88*/ DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 8c*/ DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 90*/ DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 94*/ DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 98*/ DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 9c*/ DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* a0*/ DWORD dwReserved1; // reserved /* a4*/ DWORD dwReserved2; // reserved /* a8*/ DWORD dwReserved3; // reserved /* ac*/ DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts /* b0*/ DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts /* b4*/ DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts /* b8*/ DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts /* d8*/ DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts /* dc*/ DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts /* e0*/ DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts /* e4*/ DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts /*104*/ DWORD dwSSBCaps; // driver specific capabilities for System->System blts /*108*/ DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts /*10c*/ DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts /*110*/ DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts /*130*/ DWORD dwMaxVideoPorts; // maximum number of usable video ports /*134*/ DWORD dwCurrVideoPorts; // current number of video ports used /*138*/ DWORD dwSVBCaps2; // more driver specific capabilities for System->Vmem blts /*13c*/ DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts /*140*/ DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts /*144*/ DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts /*148*/ DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts /*14c*/ DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts // Members added for DX6 release /*16c*/ DDSCAPS2 ddsCaps; // Surface Caps } DDCAPS_DX6; typedef DDCAPS_DX6 FAR* LPDDCAPS_DX6; typedef struct _DDCAPS_DX7 { /* 0*/ DWORD dwSize; // size of the DDDRIVERCAPS structure /* 4*/ DWORD dwCaps; // driver specific capabilities /* 8*/ DWORD dwCaps2; // more driver specific capabilites /* c*/ DWORD dwCKeyCaps; // color key capabilities of the surface /* 10*/ DWORD dwFXCaps; // driver specific stretching and effects capabilites /* 14*/ DWORD dwFXAlphaCaps; // alpha driver specific capabilities /* 18*/ DWORD dwPalCaps; // palette capabilities /* 1c*/ DWORD dwSVCaps; // stereo vision capabilities /* 20*/ DWORD dwAlphaBltConstBitDepths; // DDBD_2,4,8 /* 24*/ DWORD dwAlphaBltPixelBitDepths; // DDBD_1,2,4,8 /* 28*/ DWORD dwAlphaBltSurfaceBitDepths; // DDBD_1,2,4,8 /* 2c*/ DWORD dwAlphaOverlayConstBitDepths; // DDBD_2,4,8 /* 30*/ DWORD dwAlphaOverlayPixelBitDepths; // DDBD_1,2,4,8 /* 34*/ DWORD dwAlphaOverlaySurfaceBitDepths; // DDBD_1,2,4,8 /* 38*/ DWORD dwZBufferBitDepths; // DDBD_8,16,24,32 /* 3c*/ DWORD dwVidMemTotal; // total amount of video memory /* 40*/ DWORD dwVidMemFree; // amount of free video memory /* 44*/ DWORD dwMaxVisibleOverlays; // maximum number of visible overlays /* 48*/ DWORD dwCurrVisibleOverlays; // current number of visible overlays /* 4c*/ DWORD dwNumFourCCCodes; // number of four cc codes /* 50*/ DWORD dwAlignBoundarySrc; // source rectangle alignment /* 54*/ DWORD dwAlignSizeSrc; // source rectangle byte size /* 58*/ DWORD dwAlignBoundaryDest; // dest rectangle alignment /* 5c*/ DWORD dwAlignSizeDest; // dest rectangle byte size /* 60*/ DWORD dwAlignStrideAlign; // stride alignment /* 64*/ DWORD dwRops[DD_ROP_SPACE]; // ROPS supported /* 84*/ DDSCAPS ddsOldCaps; // Was DDSCAPS ddsCaps. ddsCaps is of type DDSCAPS2 for DX6 /* 88*/ DWORD dwMinOverlayStretch; // minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 8c*/ DWORD dwMaxOverlayStretch; // maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 90*/ DWORD dwMinLiveVideoStretch; // minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 94*/ DWORD dwMaxLiveVideoStretch; // maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 98*/ DWORD dwMinHwCodecStretch; // minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* 9c*/ DWORD dwMaxHwCodecStretch; // maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 /* a0*/ DWORD dwReserved1; // reserved /* a4*/ DWORD dwReserved2; // reserved /* a8*/ DWORD dwReserved3; // reserved /* ac*/ DWORD dwSVBCaps; // driver specific capabilities for System->Vmem blts /* b0*/ DWORD dwSVBCKeyCaps; // driver color key capabilities for System->Vmem blts /* b4*/ DWORD dwSVBFXCaps; // driver FX capabilities for System->Vmem blts /* b8*/ DWORD dwSVBRops[DD_ROP_SPACE];// ROPS supported for System->Vmem blts /* d8*/ DWORD dwVSBCaps; // driver specific capabilities for Vmem->System blts /* dc*/ DWORD dwVSBCKeyCaps; // driver color key capabilities for Vmem->System blts /* e0*/ DWORD dwVSBFXCaps; // driver FX capabilities for Vmem->System blts /* e4*/ DWORD dwVSBRops[DD_ROP_SPACE];// ROPS supported for Vmem->System blts /*104*/ DWORD dwSSBCaps; // driver specific capabilities for System->System blts /*108*/ DWORD dwSSBCKeyCaps; // driver color key capabilities for System->System blts /*10c*/ DWORD dwSSBFXCaps; // driver FX capabilities for System->System blts /*110*/ DWORD dwSSBRops[DD_ROP_SPACE];// ROPS supported for System->System blts /*130*/ DWORD dwMaxVideoPorts; // maximum number of usable video ports /*134*/ DWORD dwCurrVideoPorts; // current number of video ports used /*138*/ DWORD dwSVBCaps2; // more driver specific capabilities for System->Vmem blts /*13c*/ DWORD dwNLVBCaps; // driver specific capabilities for non-local->local vidmem blts /*140*/ DWORD dwNLVBCaps2; // more driver specific capabilities non-local->local vidmem blts /*144*/ DWORD dwNLVBCKeyCaps; // driver color key capabilities for non-local->local vidmem blts /*148*/ DWORD dwNLVBFXCaps; // driver FX capabilities for non-local->local blts /*14c*/ DWORD dwNLVBRops[DD_ROP_SPACE]; // ROPS supported for non-local->local blts // Members added for DX6 release /*16c*/ DDSCAPS2 ddsCaps; // Surface Caps } DDCAPS_DX7; typedef DDCAPS_DX7 FAR* LPDDCAPS_DX7; #if DIRECTDRAW_VERSION <= 0x300 typedef DDCAPS_DX3 DDCAPS; #elif DIRECTDRAW_VERSION <= 0x500 typedef DDCAPS_DX5 DDCAPS; #elif DIRECTDRAW_VERSION <= 0x600 typedef DDCAPS_DX6 DDCAPS; #else typedef DDCAPS_DX7 DDCAPS; #endif typedef DDCAPS FAR* LPDDCAPS; /* * DDPIXELFORMAT */ typedef struct _DDPIXELFORMAT { DWORD dwSize; // size of structure DWORD dwFlags; // pixel format flags DWORD dwFourCC; // (FOURCC code) union { DWORD dwRGBBitCount; // how many bits per pixel DWORD dwYUVBitCount; // how many bits per pixel DWORD dwZBufferBitDepth; // how many total bits/pixel in z buffer (including any stencil bits) DWORD dwAlphaBitDepth; // how many bits for alpha channels DWORD dwLuminanceBitCount; // how many bits per pixel DWORD dwBumpBitCount; // how many bits per "buxel", total DWORD dwPrivateFormatBitCount;// Bits per pixel of private driver formats. Only valid in texture // format list and if DDPF_D3DFORMAT is set } DUMMYUNIONNAMEN(1); union { DWORD dwRBitMask; // mask for red bit DWORD dwYBitMask; // mask for Y bits DWORD dwStencilBitDepth; // how many stencil bits (note: dwZBufferBitDepth-dwStencilBitDepth is total Z-only bits) DWORD dwLuminanceBitMask; // mask for luminance bits DWORD dwBumpDuBitMask; // mask for bump map U delta bits DWORD dwOperations; // DDPF_D3DFORMAT Operations } DUMMYUNIONNAMEN(2); union { DWORD dwGBitMask; // mask for green bits DWORD dwUBitMask; // mask for U bits DWORD dwZBitMask; // mask for Z bits DWORD dwBumpDvBitMask; // mask for bump map V delta bits struct { WORD wFlipMSTypes; // Multisample methods supported via flip for this D3DFORMAT WORD wBltMSTypes; // Multisample methods supported via blt for this D3DFORMAT } MultiSampleCaps; } DUMMYUNIONNAMEN(3); union { DWORD dwBBitMask; // mask for blue bits DWORD dwVBitMask; // mask for V bits DWORD dwStencilBitMask; // mask for stencil bits DWORD dwBumpLuminanceBitMask; // mask for luminance in bump map } DUMMYUNIONNAMEN(4); union { DWORD dwRGBAlphaBitMask; // mask for alpha channel DWORD dwYUVAlphaBitMask; // mask for alpha channel DWORD dwLuminanceAlphaBitMask;// mask for alpha channel DWORD dwRGBZBitMask; // mask for Z channel DWORD dwYUVZBitMask; // mask for Z channel } DUMMYUNIONNAMEN(5); } DDPIXELFORMAT; typedef DDPIXELFORMAT FAR* LPDDPIXELFORMAT; /* * DDOVERLAYFX */ typedef struct _DDOVERLAYFX { DWORD dwSize; // size of structure DWORD dwAlphaEdgeBlendBitDepth; // Bit depth used to specify constant for alpha edge blend DWORD dwAlphaEdgeBlend; // Constant to use as alpha for edge blend DWORD dwReserved; DWORD dwAlphaDestConstBitDepth; // Bit depth used to specify alpha constant for destination union { DWORD dwAlphaDestConst; // Constant to use as alpha channel for dest LPDIRECTDRAWSURFACE lpDDSAlphaDest; // Surface to use as alpha channel for dest } DUMMYUNIONNAMEN(1); DWORD dwAlphaSrcConstBitDepth; // Bit depth used to specify alpha constant for source union { DWORD dwAlphaSrcConst; // Constant to use as alpha channel for src LPDIRECTDRAWSURFACE lpDDSAlphaSrc; // Surface to use as alpha channel for src } DUMMYUNIONNAMEN(2); DDCOLORKEY dckDestColorkey; // DestColorkey override DDCOLORKEY dckSrcColorkey; // DestColorkey override DWORD dwDDFX; // Overlay FX DWORD dwFlags; // flags } DDOVERLAYFX; typedef DDOVERLAYFX FAR *LPDDOVERLAYFX; /* * DDBLTBATCH: BltBatch entry structure */ typedef struct _DDBLTBATCH { LPRECT lprDest; LPDIRECTDRAWSURFACE lpDDSSrc; LPRECT lprSrc; DWORD dwFlags; LPDDBLTFX lpDDBltFx; } DDBLTBATCH; typedef DDBLTBATCH FAR * LPDDBLTBATCH; /* * DDGAMMARAMP */ typedef struct _DDGAMMARAMP { WORD red[256]; WORD green[256]; WORD blue[256]; } DDGAMMARAMP; typedef DDGAMMARAMP FAR * LPDDGAMMARAMP; /* * This is the structure within which DirectDraw returns data about the current graphics driver and chipset */ #define MAX_DDDEVICEID_STRING 512 typedef struct tagDDDEVICEIDENTIFIER { /* * These elements are for presentation to the user only. They should not be used to identify particular * drivers, since this is unreliable and many different strings may be associated with the same * device, and the same driver from different vendors. */ char szDriver[MAX_DDDEVICEID_STRING]; char szDescription[MAX_DDDEVICEID_STRING]; /* * This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons * on the whole 64 bits. Caution should be exercised if you use this element to identify problematic * drivers. It is recommended that guidDeviceIdentifier is used for this purpose. * * This version has the form: * wProduct = HIWORD(liDriverVersion.HighPart) * wVersion = LOWORD(liDriverVersion.HighPart) * wSubVersion = HIWORD(liDriverVersion.LowPart) * wBuild = LOWORD(liDriverVersion.LowPart) */ #ifdef _WIN32 LARGE_INTEGER liDriverVersion; /* Defined for applications and other 32 bit components */ #else DWORD dwDriverVersionLowPart; /* Defined for 16 bit driver components */ DWORD dwDriverVersionHighPart; #endif /* * These elements can be used to identify particular chipsets. Use with extreme caution. * dwVendorId Identifies the manufacturer. May be zero if unknown. * dwDeviceId Identifies the type of chipset. May be zero if unknown. * dwSubSysId Identifies the subsystem, typically this means the particular board. May be zero if unknown. * dwRevision Identifies the revision level of the chipset. May be zero if unknown. */ DWORD dwVendorId; DWORD dwDeviceId; DWORD dwSubSysId; DWORD dwRevision; /* * This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the * driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to * reprofile the graphics subsystem. * This element can also be used to identify particular problematic drivers. */ GUID guidDeviceIdentifier; } DDDEVICEIDENTIFIER, * LPDDDEVICEIDENTIFIER; typedef struct tagDDDEVICEIDENTIFIER2 { /* * These elements are for presentation to the user only. They should not be used to identify particular * drivers, since this is unreliable and many different strings may be associated with the same * device, and the same driver from different vendors. */ char szDriver[MAX_DDDEVICEID_STRING]; char szDescription[MAX_DDDEVICEID_STRING]; /* * This element is the version of the DirectDraw/3D driver. It is legal to do <, > comparisons * on the whole 64 bits. Caution should be exercised if you use this element to identify problematic * drivers. It is recommended that guidDeviceIdentifier is used for this purpose. * * This version has the form: * wProduct = HIWORD(liDriverVersion.HighPart) * wVersion = LOWORD(liDriverVersion.HighPart) * wSubVersion = HIWORD(liDriverVersion.LowPart) * wBuild = LOWORD(liDriverVersion.LowPart) */ #ifdef _WIN32 LARGE_INTEGER liDriverVersion; /* Defined for applications and other 32 bit components */ #else DWORD dwDriverVersionLowPart; /* Defined for 16 bit driver components */ DWORD dwDriverVersionHighPart; #endif /* * These elements can be used to identify particular chipsets. Use with extreme caution. * dwVendorId Identifies the manufacturer. May be zero if unknown. * dwDeviceId Identifies the type of chipset. May be zero if unknown. * dwSubSysId Identifies the subsystem, typically this means the particular board. May be zero if unknown. * dwRevision Identifies the revision level of the chipset. May be zero if unknown. */ DWORD dwVendorId; DWORD dwDeviceId; DWORD dwSubSysId; DWORD dwRevision; /* * This element can be used to check changes in driver/chipset. This GUID is a unique identifier for the * driver/chipset pair. Use this element if you wish to track changes to the driver/chipset in order to * reprofile the graphics subsystem. * This element can also be used to identify particular problematic drivers. */ GUID guidDeviceIdentifier; /* * This element is used to determine the Windows Hardware Quality Lab (WHQL) * certification level for this driver/device pair. */ DWORD dwWHQLLevel; } DDDEVICEIDENTIFIER2, * LPDDDEVICEIDENTIFIER2; /* * Flags for the IDirectDraw4::GetDeviceIdentifier method */ /* * This flag causes GetDeviceIdentifier to return information about the host (typically 2D) adapter in a system equipped * with a stacked secondary 3D adapter. Such an adapter appears to the application as if it were part of the * host adapter, but is typically physcially located on a separate card. The stacked secondary's information is * returned when GetDeviceIdentifier's dwFlags field is zero, since this most accurately reflects the qualities * of the DirectDraw object involved. */ #define DDGDI_GETHOSTIDENTIFIER 0x00000001L /* * Macros for interpretting DDEVICEIDENTIFIER2.dwWHQLLevel */ #define GET_WHQL_YEAR( dwWHQLLevel ) \ ( (dwWHQLLevel) / 0x10000 ) #define GET_WHQL_MONTH( dwWHQLLevel ) \ ( ( (dwWHQLLevel) / 0x100 ) & 0x00ff ) #define GET_WHQL_DAY( dwWHQLLevel ) \ ( (dwWHQLLevel) & 0xff ) /* * callbacks */ typedef DWORD (FAR PASCAL *LPCLIPPERCALLBACK)(LPDIRECTDRAWCLIPPER lpDDClipper, HWND hWnd, DWORD code, LPVOID lpContext ); #ifdef STREAMING typedef DWORD (FAR PASCAL *LPSURFACESTREAMINGCALLBACK)(DWORD); #endif /* * INTERACES FOLLOW: * IDirectDraw * IDirectDrawClipper * IDirectDrawPalette * IDirectDrawSurface */ /* * IDirectDraw */ #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDraw DECLARE_INTERFACE_( IDirectDraw, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDraw methods ***/ STDMETHOD(Compact)(THIS) PURE; STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE; STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE; STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; STDMETHOD(FlipToGDISurface)(THIS) PURE; STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE; STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; STDMETHOD(RestoreDisplayMode)(THIS) PURE; STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD) PURE; STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDraw_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDraw_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDraw_Release(p) (p)->lpVtbl->Release(p) #define IDirectDraw_Compact(p) (p)->lpVtbl->Compact(p) #define IDirectDraw_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) #define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) #define IDirectDraw_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) #define IDirectDraw_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) #define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) #define IDirectDraw_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) #define IDirectDraw_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) #define IDirectDraw_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) #define IDirectDraw_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) #define IDirectDraw_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) #define IDirectDraw_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) #define IDirectDraw_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) #define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) #define IDirectDraw_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) #define IDirectDraw_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) #define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) #define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->lpVtbl->SetDisplayMode(p, a, b, c) #define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) #else #define IDirectDraw_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDraw_AddRef(p) (p)->AddRef() #define IDirectDraw_Release(p) (p)->Release() #define IDirectDraw_Compact(p) (p)->Compact() #define IDirectDraw_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) #define IDirectDraw_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) #define IDirectDraw_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) #define IDirectDraw_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) #define IDirectDraw_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) #define IDirectDraw_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) #define IDirectDraw_FlipToGDISurface(p) (p)->FlipToGDISurface() #define IDirectDraw_GetCaps(p, a, b) (p)->GetCaps(a, b) #define IDirectDraw_GetDisplayMode(p, a) (p)->GetDisplayMode(a) #define IDirectDraw_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) #define IDirectDraw_GetGDISurface(p, a) (p)->GetGDISurface(a) #define IDirectDraw_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) #define IDirectDraw_GetScanLine(p, a) (p)->GetScanLine(a) #define IDirectDraw_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) #define IDirectDraw_Initialize(p, a) (p)->Initialize(a) #define IDirectDraw_RestoreDisplayMode(p) (p)->RestoreDisplayMode() #define IDirectDraw_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) #define IDirectDraw_SetDisplayMode(p, a, b, c) (p)->SetDisplayMode(a, b, c) #define IDirectDraw_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) #endif #endif #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDraw2 DECLARE_INTERFACE_( IDirectDraw2, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDraw methods ***/ STDMETHOD(Compact)(THIS) PURE; STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC, LPDIRECTDRAWSURFACE FAR *, IUnknown FAR *) PURE; STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) PURE; STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ) PURE; STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) PURE; STDMETHOD(FlipToGDISurface)(THIS) PURE; STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC) PURE; STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE FAR *) PURE; STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; STDMETHOD(RestoreDisplayMode)(THIS) PURE; STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS, LPDWORD, LPDWORD) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDraw2_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDraw2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDraw2_Release(p) (p)->lpVtbl->Release(p) #define IDirectDraw2_Compact(p) (p)->lpVtbl->Compact(p) #define IDirectDraw2_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) #define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) #define IDirectDraw2_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) #define IDirectDraw2_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) #define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) #define IDirectDraw2_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) #define IDirectDraw2_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) #define IDirectDraw2_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) #define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) #define IDirectDraw2_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) #define IDirectDraw2_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) #define IDirectDraw2_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) #define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) #define IDirectDraw2_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) #define IDirectDraw2_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) #define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) #define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) #define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) #else #define IDirectDraw2_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDraw2_AddRef(p) (p)->AddRef() #define IDirectDraw2_Release(p) (p)->Release() #define IDirectDraw2_Compact(p) (p)->Compact() #define IDirectDraw2_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) #define IDirectDraw2_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) #define IDirectDraw2_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) #define IDirectDraw2_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) #define IDirectDraw2_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) #define IDirectDraw2_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) #define IDirectDraw2_FlipToGDISurface(p) (p)->FlipToGDISurface() #define IDirectDraw2_GetCaps(p, a, b) (p)->GetCaps(a, b) #define IDirectDraw2_GetDisplayMode(p, a) (p)->GetDisplayMode(a) #define IDirectDraw2_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) #define IDirectDraw2_GetGDISurface(p, a) (p)->GetGDISurface(a) #define IDirectDraw2_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) #define IDirectDraw2_GetScanLine(p, a) (p)->GetScanLine(a) #define IDirectDraw2_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) #define IDirectDraw2_Initialize(p, a) (p)->Initialize(a) #define IDirectDraw2_RestoreDisplayMode(p) (p)->RestoreDisplayMode() #define IDirectDraw2_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) #define IDirectDraw2_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) #define IDirectDraw2_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) #define IDirectDraw2_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) #endif #endif #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDraw4 DECLARE_INTERFACE_( IDirectDraw4, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDraw methods ***/ STDMETHOD(Compact)(THIS) PURE; STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE4 FAR *, IUnknown FAR *) PURE; STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) PURE; STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE; STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) PURE; STDMETHOD(FlipToGDISurface)(THIS) PURE; STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE; STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE4 FAR *) PURE; STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; STDMETHOD(RestoreDisplayMode)(THIS) PURE; STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE; /*** Added in the V4 Interface ***/ STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE; STDMETHOD(RestoreAllSurfaces)(THIS) PURE; STDMETHOD(TestCooperativeLevel)(THIS) PURE; STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER, DWORD ) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDraw4_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDraw4_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDraw4_Release(p) (p)->lpVtbl->Release(p) #define IDirectDraw4_Compact(p) (p)->lpVtbl->Compact(p) #define IDirectDraw4_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) #define IDirectDraw4_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) #define IDirectDraw4_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) #define IDirectDraw4_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) #define IDirectDraw4_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) #define IDirectDraw4_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) #define IDirectDraw4_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) #define IDirectDraw4_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) #define IDirectDraw4_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) #define IDirectDraw4_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) #define IDirectDraw4_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) #define IDirectDraw4_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) #define IDirectDraw4_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) #define IDirectDraw4_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) #define IDirectDraw4_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) #define IDirectDraw4_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) #define IDirectDraw4_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) #define IDirectDraw4_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) #define IDirectDraw4_GetSurfaceFromDC(p, a, b) (p)->lpVtbl->GetSurfaceFromDC(p, a, b) #define IDirectDraw4_RestoreAllSurfaces(p) (p)->lpVtbl->RestoreAllSurfaces(p) #define IDirectDraw4_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) #define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b) #else #define IDirectDraw4_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDraw4_AddRef(p) (p)->AddRef() #define IDirectDraw4_Release(p) (p)->Release() #define IDirectDraw4_Compact(p) (p)->Compact() #define IDirectDraw4_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) #define IDirectDraw4_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) #define IDirectDraw4_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) #define IDirectDraw4_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) #define IDirectDraw4_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) #define IDirectDraw4_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) #define IDirectDraw4_FlipToGDISurface(p) (p)->FlipToGDISurface() #define IDirectDraw4_GetCaps(p, a, b) (p)->GetCaps(a, b) #define IDirectDraw4_GetDisplayMode(p, a) (p)->GetDisplayMode(a) #define IDirectDraw4_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) #define IDirectDraw4_GetGDISurface(p, a) (p)->GetGDISurface(a) #define IDirectDraw4_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) #define IDirectDraw4_GetScanLine(p, a) (p)->GetScanLine(a) #define IDirectDraw4_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) #define IDirectDraw4_Initialize(p, a) (p)->Initialize(a) #define IDirectDraw4_RestoreDisplayMode(p) (p)->RestoreDisplayMode() #define IDirectDraw4_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) #define IDirectDraw4_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) #define IDirectDraw4_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) #define IDirectDraw4_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) #define IDirectDraw4_GetSurfaceFromDC(p, a, b) (p)->GetSurfaceFromDC(a, b) #define IDirectDraw4_RestoreAllSurfaces(p) (p)->RestoreAllSurfaces() #define IDirectDraw4_TestCooperativeLevel(p) (p)->TestCooperativeLevel() #define IDirectDraw4_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b) #endif #endif #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDraw7 DECLARE_INTERFACE_( IDirectDraw7, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDraw methods ***/ STDMETHOD(Compact)(THIS) PURE; STDMETHOD(CreateClipper)(THIS_ DWORD, LPDIRECTDRAWCLIPPER FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreatePalette)(THIS_ DWORD, LPPALETTEENTRY, LPDIRECTDRAWPALETTE FAR*, IUnknown FAR * ) PURE; STDMETHOD(CreateSurface)(THIS_ LPDDSURFACEDESC2, LPDIRECTDRAWSURFACE7 FAR *, IUnknown FAR *) PURE; STDMETHOD(DuplicateSurface)( THIS_ LPDIRECTDRAWSURFACE7, LPDIRECTDRAWSURFACE7 FAR * ) PURE; STDMETHOD(EnumDisplayModes)( THIS_ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ) PURE; STDMETHOD(EnumSurfaces)(THIS_ DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ) PURE; STDMETHOD(FlipToGDISurface)(THIS) PURE; STDMETHOD(GetCaps)( THIS_ LPDDCAPS, LPDDCAPS) PURE; STDMETHOD(GetDisplayMode)( THIS_ LPDDSURFACEDESC2) PURE; STDMETHOD(GetFourCCCodes)(THIS_ LPDWORD, LPDWORD ) PURE; STDMETHOD(GetGDISurface)(THIS_ LPDIRECTDRAWSURFACE7 FAR *) PURE; STDMETHOD(GetMonitorFrequency)(THIS_ LPDWORD) PURE; STDMETHOD(GetScanLine)(THIS_ LPDWORD) PURE; STDMETHOD(GetVerticalBlankStatus)(THIS_ LPBOOL ) PURE; STDMETHOD(Initialize)(THIS_ GUID FAR *) PURE; STDMETHOD(RestoreDisplayMode)(THIS) PURE; STDMETHOD(SetCooperativeLevel)(THIS_ HWND, DWORD) PURE; STDMETHOD(SetDisplayMode)(THIS_ DWORD, DWORD,DWORD, DWORD, DWORD) PURE; STDMETHOD(WaitForVerticalBlank)(THIS_ DWORD, HANDLE ) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetAvailableVidMem)(THIS_ LPDDSCAPS2, LPDWORD, LPDWORD) PURE; /*** Added in the V4 Interface ***/ STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE; STDMETHOD(RestoreAllSurfaces)(THIS) PURE; STDMETHOD(TestCooperativeLevel)(THIS) PURE; STDMETHOD(GetDeviceIdentifier)(THIS_ LPDDDEVICEIDENTIFIER2, DWORD ) PURE; STDMETHOD(StartModeTest)(THIS_ LPSIZE, DWORD, DWORD ) PURE; STDMETHOD(EvaluateMode)(THIS_ DWORD, DWORD * ) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDraw7_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDraw7_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDraw7_Release(p) (p)->lpVtbl->Release(p) #define IDirectDraw7_Compact(p) (p)->lpVtbl->Compact(p) #define IDirectDraw7_CreateClipper(p, a, b, c) (p)->lpVtbl->CreateClipper(p, a, b, c) #define IDirectDraw7_CreatePalette(p, a, b, c, d) (p)->lpVtbl->CreatePalette(p, a, b, c, d) #define IDirectDraw7_CreateSurface(p, a, b, c) (p)->lpVtbl->CreateSurface(p, a, b, c) #define IDirectDraw7_DuplicateSurface(p, a, b) (p)->lpVtbl->DuplicateSurface(p, a, b) #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->lpVtbl->EnumDisplayModes(p, a, b, c, d) #define IDirectDraw7_EnumSurfaces(p, a, b, c, d) (p)->lpVtbl->EnumSurfaces(p, a, b, c, d) #define IDirectDraw7_FlipToGDISurface(p) (p)->lpVtbl->FlipToGDISurface(p) #define IDirectDraw7_GetCaps(p, a, b) (p)->lpVtbl->GetCaps(p, a, b) #define IDirectDraw7_GetDisplayMode(p, a) (p)->lpVtbl->GetDisplayMode(p, a) #define IDirectDraw7_GetFourCCCodes(p, a, b) (p)->lpVtbl->GetFourCCCodes(p, a, b) #define IDirectDraw7_GetGDISurface(p, a) (p)->lpVtbl->GetGDISurface(p, a) #define IDirectDraw7_GetMonitorFrequency(p, a) (p)->lpVtbl->GetMonitorFrequency(p, a) #define IDirectDraw7_GetScanLine(p, a) (p)->lpVtbl->GetScanLine(p, a) #define IDirectDraw7_GetVerticalBlankStatus(p, a) (p)->lpVtbl->GetVerticalBlankStatus(p, a) #define IDirectDraw7_Initialize(p, a) (p)->lpVtbl->Initialize(p, a) #define IDirectDraw7_RestoreDisplayMode(p) (p)->lpVtbl->RestoreDisplayMode(p) #define IDirectDraw7_SetCooperativeLevel(p, a, b) (p)->lpVtbl->SetCooperativeLevel(p, a, b) #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->lpVtbl->SetDisplayMode(p, a, b, c, d, e) #define IDirectDraw7_WaitForVerticalBlank(p, a, b) (p)->lpVtbl->WaitForVerticalBlank(p, a, b) #define IDirectDraw7_GetAvailableVidMem(p, a, b, c) (p)->lpVtbl->GetAvailableVidMem(p, a, b, c) #define IDirectDraw7_GetSurfaceFromDC(p, a, b) (p)->lpVtbl->GetSurfaceFromDC(p, a, b) #define IDirectDraw7_RestoreAllSurfaces(p) (p)->lpVtbl->RestoreAllSurfaces(p) #define IDirectDraw7_TestCooperativeLevel(p) (p)->lpVtbl->TestCooperativeLevel(p) #define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->lpVtbl->GetDeviceIdentifier(p,a,b) #define IDirectDraw7_StartModeTest(p,a,b,c) (p)->lpVtbl->StartModeTest(p,a,b,c) #define IDirectDraw7_EvaluateMode(p,a,b) (p)->lpVtbl->EvaluateMode(p,a,b) #else #define IDirectDraw7_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDraw7_AddRef(p) (p)->AddRef() #define IDirectDraw7_Release(p) (p)->Release() #define IDirectDraw7_Compact(p) (p)->Compact() #define IDirectDraw7_CreateClipper(p, a, b, c) (p)->CreateClipper(a, b, c) #define IDirectDraw7_CreatePalette(p, a, b, c, d) (p)->CreatePalette(a, b, c, d) #define IDirectDraw7_CreateSurface(p, a, b, c) (p)->CreateSurface(a, b, c) #define IDirectDraw7_DuplicateSurface(p, a, b) (p)->DuplicateSurface(a, b) #define IDirectDraw7_EnumDisplayModes(p, a, b, c, d) (p)->EnumDisplayModes(a, b, c, d) #define IDirectDraw7_EnumSurfaces(p, a, b, c, d) (p)->EnumSurfaces(a, b, c, d) #define IDirectDraw7_FlipToGDISurface(p) (p)->FlipToGDISurface() #define IDirectDraw7_GetCaps(p, a, b) (p)->GetCaps(a, b) #define IDirectDraw7_GetDisplayMode(p, a) (p)->GetDisplayMode(a) #define IDirectDraw7_GetFourCCCodes(p, a, b) (p)->GetFourCCCodes(a, b) #define IDirectDraw7_GetGDISurface(p, a) (p)->GetGDISurface(a) #define IDirectDraw7_GetMonitorFrequency(p, a) (p)->GetMonitorFrequency(a) #define IDirectDraw7_GetScanLine(p, a) (p)->GetScanLine(a) #define IDirectDraw7_GetVerticalBlankStatus(p, a) (p)->GetVerticalBlankStatus(a) #define IDirectDraw7_Initialize(p, a) (p)->Initialize(a) #define IDirectDraw7_RestoreDisplayMode(p) (p)->RestoreDisplayMode() #define IDirectDraw7_SetCooperativeLevel(p, a, b) (p)->SetCooperativeLevel(a, b) #define IDirectDraw7_SetDisplayMode(p, a, b, c, d, e) (p)->SetDisplayMode(a, b, c, d, e) #define IDirectDraw7_WaitForVerticalBlank(p, a, b) (p)->WaitForVerticalBlank(a, b) #define IDirectDraw7_GetAvailableVidMem(p, a, b, c) (p)->GetAvailableVidMem(a, b, c) #define IDirectDraw7_GetSurfaceFromDC(p, a, b) (p)->GetSurfaceFromDC(a, b) #define IDirectDraw7_RestoreAllSurfaces(p) (p)->RestoreAllSurfaces() #define IDirectDraw7_TestCooperativeLevel(p) (p)->TestCooperativeLevel() #define IDirectDraw7_GetDeviceIdentifier(p,a,b) (p)->GetDeviceIdentifier(a,b) #define IDirectDraw7_StartModeTest(p,a,b,c) (p)->lpVtbl->StartModeTest(a,b,c) #define IDirectDraw7_EvaluateMode(p,a,b) (p)->lpVtbl->EvaluateMode(a,b) #endif #endif /* * IDirectDrawPalette */ #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDrawPalette DECLARE_INTERFACE_( IDirectDrawPalette, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawPalette methods ***/ STDMETHOD(GetCaps)(THIS_ LPDWORD) PURE; STDMETHOD(GetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD, LPPALETTEENTRY) PURE; STDMETHOD(SetEntries)(THIS_ DWORD,DWORD,DWORD,LPPALETTEENTRY) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawPalette_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDrawPalette_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawPalette_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawPalette_GetCaps(p, a) (p)->lpVtbl->GetCaps(p, a) #define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->lpVtbl->GetEntries(p, a, b, c, d) #define IDirectDrawPalette_Initialize(p, a, b, c) (p)->lpVtbl->Initialize(p, a, b, c) #define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->lpVtbl->SetEntries(p, a, b, c, d) #else #define IDirectDrawPalette_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDrawPalette_AddRef(p) (p)->AddRef() #define IDirectDrawPalette_Release(p) (p)->Release() #define IDirectDrawPalette_GetCaps(p, a) (p)->GetCaps(a) #define IDirectDrawPalette_GetEntries(p, a, b, c, d) (p)->GetEntries(a, b, c, d) #define IDirectDrawPalette_Initialize(p, a, b, c) (p)->Initialize(a, b, c) #define IDirectDrawPalette_SetEntries(p, a, b, c, d) (p)->SetEntries(a, b, c, d) #endif #endif /* * IDirectDrawClipper */ #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDrawClipper DECLARE_INTERFACE_( IDirectDrawClipper, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawClipper methods ***/ STDMETHOD(GetClipList)(THIS_ LPRECT, LPRGNDATA, LPDWORD) PURE; STDMETHOD(GetHWnd)(THIS_ HWND FAR *) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, DWORD) PURE; STDMETHOD(IsClipListChanged)(THIS_ BOOL FAR *) PURE; STDMETHOD(SetClipList)(THIS_ LPRGNDATA,DWORD) PURE; STDMETHOD(SetHWnd)(THIS_ DWORD, HWND ) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawClipper_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDrawClipper_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawClipper_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->lpVtbl->GetClipList(p, a, b, c) #define IDirectDrawClipper_GetHWnd(p, a) (p)->lpVtbl->GetHWnd(p, a) #define IDirectDrawClipper_Initialize(p, a, b) (p)->lpVtbl->Initialize(p, a, b) #define IDirectDrawClipper_IsClipListChanged(p, a) (p)->lpVtbl->IsClipListChanged(p, a) #define IDirectDrawClipper_SetClipList(p, a, b) (p)->lpVtbl->SetClipList(p, a, b) #define IDirectDrawClipper_SetHWnd(p, a, b) (p)->lpVtbl->SetHWnd(p, a, b) #else #define IDirectDrawClipper_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDrawClipper_AddRef(p) (p)->AddRef() #define IDirectDrawClipper_Release(p) (p)->Release() #define IDirectDrawClipper_GetClipList(p, a, b, c) (p)->GetClipList(a, b, c) #define IDirectDrawClipper_GetHWnd(p, a) (p)->GetHWnd(a) #define IDirectDrawClipper_Initialize(p, a, b) (p)->Initialize(a, b) #define IDirectDrawClipper_IsClipListChanged(p, a) (p)->IsClipListChanged(a) #define IDirectDrawClipper_SetClipList(p, a, b) (p)->SetClipList(a, b) #define IDirectDrawClipper_SetHWnd(p, a, b) (p)->SetHWnd(a, b) #endif #endif /* * IDirectDrawSurface and related interfaces */ #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDrawSurface DECLARE_INTERFACE_( IDirectDrawSurface, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawSurface methods ***/ STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE) PURE; STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX) PURE; STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD) PURE; STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE) PURE; STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE; STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE FAR *) PURE; STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; STDMETHOD(IsLost)(THIS) PURE; STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; STDMETHOD(Restore)(THIS) PURE; STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; STDMETHOD(Unlock)(THIS_ LPVOID) PURE; STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX) PURE; STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawSurface_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectDrawSurface_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawSurface_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) #define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) #define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) #define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) #define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) #define IDirectDrawSurface_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) #define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) #define IDirectDrawSurface_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) #define IDirectDrawSurface_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) #define IDirectDrawSurface_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) #define IDirectDrawSurface_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) #define IDirectDrawSurface_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) #define IDirectDrawSurface_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) #define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) #define IDirectDrawSurface_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) #define IDirectDrawSurface_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) #define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) #define IDirectDrawSurface_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) #define IDirectDrawSurface_IsLost(p) (p)->lpVtbl->IsLost(p) #define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) #define IDirectDrawSurface_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) #define IDirectDrawSurface_Restore(p) (p)->lpVtbl->Restore(p) #define IDirectDrawSurface_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) #define IDirectDrawSurface_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) #define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) #define IDirectDrawSurface_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) #define IDirectDrawSurface_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) #define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) #else #define IDirectDrawSurface_QueryInterface(p,a,b) (p)->QueryInterface(a,b) #define IDirectDrawSurface_AddRef(p) (p)->AddRef() #define IDirectDrawSurface_Release(p) (p)->Release() #define IDirectDrawSurface_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) #define IDirectDrawSurface_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) #define IDirectDrawSurface_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) #define IDirectDrawSurface_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) #define IDirectDrawSurface_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) #define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) #define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) #define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) #define IDirectDrawSurface_Flip(p,a,b) (p)->Flip(a,b) #define IDirectDrawSurface_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) #define IDirectDrawSurface_GetBltStatus(p,a) (p)->GetBltStatus(a) #define IDirectDrawSurface_GetCaps(p,b) (p)->GetCaps(b) #define IDirectDrawSurface_GetClipper(p,a) (p)->GetClipper(a) #define IDirectDrawSurface_GetColorKey(p,a,b) (p)->GetColorKey(a,b) #define IDirectDrawSurface_GetDC(p,a) (p)->GetDC(a) #define IDirectDrawSurface_GetFlipStatus(p,a) (p)->GetFlipStatus(a) #define IDirectDrawSurface_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) #define IDirectDrawSurface_GetPalette(p,a) (p)->GetPalette(a) #define IDirectDrawSurface_GetPixelFormat(p,a) (p)->GetPixelFormat(a) #define IDirectDrawSurface_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) #define IDirectDrawSurface_Initialize(p,a,b) (p)->Initialize(a,b) #define IDirectDrawSurface_IsLost(p) (p)->IsLost() #define IDirectDrawSurface_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) #define IDirectDrawSurface_ReleaseDC(p,a) (p)->ReleaseDC(a) #define IDirectDrawSurface_Restore(p) (p)->Restore() #define IDirectDrawSurface_SetClipper(p,a) (p)->SetClipper(a) #define IDirectDrawSurface_SetColorKey(p,a,b) (p)->SetColorKey(a,b) #define IDirectDrawSurface_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) #define IDirectDrawSurface_SetPalette(p,a) (p)->SetPalette(a) #define IDirectDrawSurface_Unlock(p,b) (p)->Unlock(b) #define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) #define IDirectDrawSurface_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) #define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) #endif /* * IDirectDrawSurface2 and related interfaces */ #undef INTERFACE #define INTERFACE IDirectDrawSurface2 DECLARE_INTERFACE_( IDirectDrawSurface2, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawSurface methods ***/ STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE2) PURE; STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX) PURE; STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) PURE; STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE2) PURE; STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE2, DWORD) PURE; STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *) PURE; STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; STDMETHOD(IsLost)(THIS) PURE; STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; STDMETHOD(Restore)(THIS) PURE; STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; STDMETHOD(Unlock)(THIS_ LPVOID) PURE; STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) PURE; STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE2) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; STDMETHOD(PageLock)(THIS_ DWORD) PURE; STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectDrawSurface2_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawSurface2_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) #define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) #define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) #define IDirectDrawSurface2_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) #define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) #define IDirectDrawSurface2_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) #define IDirectDrawSurface2_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) #define IDirectDrawSurface2_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) #define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) #define IDirectDrawSurface2_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) #define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) #define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) #define IDirectDrawSurface2_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) #define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) #define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) #define IDirectDrawSurface2_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) #define IDirectDrawSurface2_IsLost(p) (p)->lpVtbl->IsLost(p) #define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) #define IDirectDrawSurface2_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) #define IDirectDrawSurface2_Restore(p) (p)->lpVtbl->Restore(p) #define IDirectDrawSurface2_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) #define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) #define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) #define IDirectDrawSurface2_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) #define IDirectDrawSurface2_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) #define IDirectDrawSurface2_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) #define IDirectDrawSurface2_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) #define IDirectDrawSurface2_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) #else #define IDirectDrawSurface2_QueryInterface(p,a,b) (p)->QueryInterface(a,b) #define IDirectDrawSurface2_AddRef(p) (p)->AddRef() #define IDirectDrawSurface2_Release(p) (p)->Release() #define IDirectDrawSurface2_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) #define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) #define IDirectDrawSurface2_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) #define IDirectDrawSurface2_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) #define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) #define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) #define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) #define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) #define IDirectDrawSurface2_Flip(p,a,b) (p)->Flip(a,b) #define IDirectDrawSurface2_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) #define IDirectDrawSurface2_GetBltStatus(p,a) (p)->GetBltStatus(a) #define IDirectDrawSurface2_GetCaps(p,b) (p)->GetCaps(b) #define IDirectDrawSurface2_GetClipper(p,a) (p)->GetClipper(a) #define IDirectDrawSurface2_GetColorKey(p,a,b) (p)->GetColorKey(a,b) #define IDirectDrawSurface2_GetDC(p,a) (p)->GetDC(a) #define IDirectDrawSurface2_GetFlipStatus(p,a) (p)->GetFlipStatus(a) #define IDirectDrawSurface2_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) #define IDirectDrawSurface2_GetPalette(p,a) (p)->GetPalette(a) #define IDirectDrawSurface2_GetPixelFormat(p,a) (p)->GetPixelFormat(a) #define IDirectDrawSurface2_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) #define IDirectDrawSurface2_Initialize(p,a,b) (p)->Initialize(a,b) #define IDirectDrawSurface2_IsLost(p) (p)->IsLost() #define IDirectDrawSurface2_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) #define IDirectDrawSurface2_ReleaseDC(p,a) (p)->ReleaseDC(a) #define IDirectDrawSurface2_Restore(p) (p)->Restore() #define IDirectDrawSurface2_SetClipper(p,a) (p)->SetClipper(a) #define IDirectDrawSurface2_SetColorKey(p,a,b) (p)->SetColorKey(a,b) #define IDirectDrawSurface2_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) #define IDirectDrawSurface2_SetPalette(p,a) (p)->SetPalette(a) #define IDirectDrawSurface2_Unlock(p,b) (p)->Unlock(b) #define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) #define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) #define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) #define IDirectDrawSurface2_GetDDInterface(p,a) (p)->GetDDInterface(a) #define IDirectDrawSurface2_PageLock(p,a) (p)->PageLock(a) #define IDirectDrawSurface2_PageUnlock(p,a) (p)->PageUnlock(a) #endif /* * IDirectDrawSurface3 and related interfaces */ #undef INTERFACE #define INTERFACE IDirectDrawSurface3 DECLARE_INTERFACE_( IDirectDrawSurface3, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawSurface methods ***/ STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE3) PURE; STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX) PURE; STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD) PURE; STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE3) PURE; STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK) PURE; STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) PURE; STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE3, DWORD) PURE; STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *) PURE; STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; STDMETHOD(GetCaps)(THIS_ LPDDSCAPS) PURE; STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC) PURE; STDMETHOD(IsLost)(THIS) PURE; STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC,DWORD,HANDLE) PURE; STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; STDMETHOD(Restore)(THIS) PURE; STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; STDMETHOD(Unlock)(THIS_ LPVOID) PURE; STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) PURE; STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE3) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; STDMETHOD(PageLock)(THIS_ DWORD) PURE; STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; /*** Added in the V3 interface ***/ STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC, DWORD) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectDrawSurface3_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawSurface3_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) #define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) #define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) #define IDirectDrawSurface3_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) #define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) #define IDirectDrawSurface3_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) #define IDirectDrawSurface3_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) #define IDirectDrawSurface3_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) #define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) #define IDirectDrawSurface3_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) #define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) #define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) #define IDirectDrawSurface3_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) #define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) #define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) #define IDirectDrawSurface3_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) #define IDirectDrawSurface3_IsLost(p) (p)->lpVtbl->IsLost(p) #define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) #define IDirectDrawSurface3_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) #define IDirectDrawSurface3_Restore(p) (p)->lpVtbl->Restore(p) #define IDirectDrawSurface3_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) #define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) #define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) #define IDirectDrawSurface3_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) #define IDirectDrawSurface3_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) #define IDirectDrawSurface3_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) #define IDirectDrawSurface3_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) #define IDirectDrawSurface3_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) #else #define IDirectDrawSurface3_QueryInterface(p,a,b) (p)->QueryInterface(a,b) #define IDirectDrawSurface3_AddRef(p) (p)->AddRef() #define IDirectDrawSurface3_Release(p) (p)->Release() #define IDirectDrawSurface3_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) #define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) #define IDirectDrawSurface3_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) #define IDirectDrawSurface3_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) #define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) #define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) #define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) #define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) #define IDirectDrawSurface3_Flip(p,a,b) (p)->Flip(a,b) #define IDirectDrawSurface3_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) #define IDirectDrawSurface3_GetBltStatus(p,a) (p)->GetBltStatus(a) #define IDirectDrawSurface3_GetCaps(p,b) (p)->GetCaps(b) #define IDirectDrawSurface3_GetClipper(p,a) (p)->GetClipper(a) #define IDirectDrawSurface3_GetColorKey(p,a,b) (p)->GetColorKey(a,b) #define IDirectDrawSurface3_GetDC(p,a) (p)->GetDC(a) #define IDirectDrawSurface3_GetFlipStatus(p,a) (p)->GetFlipStatus(a) #define IDirectDrawSurface3_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) #define IDirectDrawSurface3_GetPalette(p,a) (p)->GetPalette(a) #define IDirectDrawSurface3_GetPixelFormat(p,a) (p)->GetPixelFormat(a) #define IDirectDrawSurface3_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) #define IDirectDrawSurface3_Initialize(p,a,b) (p)->Initialize(a,b) #define IDirectDrawSurface3_IsLost(p) (p)->IsLost() #define IDirectDrawSurface3_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) #define IDirectDrawSurface3_ReleaseDC(p,a) (p)->ReleaseDC(a) #define IDirectDrawSurface3_Restore(p) (p)->Restore() #define IDirectDrawSurface3_SetClipper(p,a) (p)->SetClipper(a) #define IDirectDrawSurface3_SetColorKey(p,a,b) (p)->SetColorKey(a,b) #define IDirectDrawSurface3_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) #define IDirectDrawSurface3_SetPalette(p,a) (p)->SetPalette(a) #define IDirectDrawSurface3_Unlock(p,b) (p)->Unlock(b) #define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) #define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) #define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) #define IDirectDrawSurface3_GetDDInterface(p,a) (p)->GetDDInterface(a) #define IDirectDrawSurface3_PageLock(p,a) (p)->PageLock(a) #define IDirectDrawSurface3_PageUnlock(p,a) (p)->PageUnlock(a) #define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) #endif /* * IDirectDrawSurface4 and related interfaces */ #undef INTERFACE #define INTERFACE IDirectDrawSurface4 DECLARE_INTERFACE_( IDirectDrawSurface4, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawSurface methods ***/ STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE4) PURE; STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX) PURE; STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD) PURE; STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE4) PURE; STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK2) PURE; STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) PURE; STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE4, DWORD) PURE; STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *) PURE; STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE; STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE; STDMETHOD(IsLost)(THIS) PURE; STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE; STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; STDMETHOD(Restore)(THIS) PURE; STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; STDMETHOD(Unlock)(THIS_ LPRECT) PURE; STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) PURE; STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE4) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; STDMETHOD(PageLock)(THIS_ DWORD) PURE; STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; /*** Added in the v3 interface ***/ STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE; /*** Added in the v4 interface ***/ STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE; STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE; STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE; STDMETHOD(ChangeUniquenessValue)(THIS) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectDrawSurface4_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawSurface4_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawSurface4_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) #define IDirectDrawSurface4_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) #define IDirectDrawSurface4_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) #define IDirectDrawSurface4_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) #define IDirectDrawSurface4_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) #define IDirectDrawSurface4_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) #define IDirectDrawSurface4_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) #define IDirectDrawSurface4_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) #define IDirectDrawSurface4_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) #define IDirectDrawSurface4_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) #define IDirectDrawSurface4_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) #define IDirectDrawSurface4_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) #define IDirectDrawSurface4_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) #define IDirectDrawSurface4_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) #define IDirectDrawSurface4_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) #define IDirectDrawSurface4_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) #define IDirectDrawSurface4_IsLost(p) (p)->lpVtbl->IsLost(p) #define IDirectDrawSurface4_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) #define IDirectDrawSurface4_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) #define IDirectDrawSurface4_Restore(p) (p)->lpVtbl->Restore(p) #define IDirectDrawSurface4_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) #define IDirectDrawSurface4_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) #define IDirectDrawSurface4_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) #define IDirectDrawSurface4_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) #define IDirectDrawSurface4_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) #define IDirectDrawSurface4_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) #define IDirectDrawSurface4_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) #define IDirectDrawSurface4_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) #define IDirectDrawSurface4_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) #define IDirectDrawSurface4_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) #define IDirectDrawSurface4_GetUniquenessValue(p, a) (p)->lpVtbl->GetUniquenessValue(p, a) #define IDirectDrawSurface4_ChangeUniquenessValue(p) (p)->lpVtbl->ChangeUniquenessValue(p) #else #define IDirectDrawSurface4_QueryInterface(p,a,b) (p)->QueryInterface(a,b) #define IDirectDrawSurface4_AddRef(p) (p)->AddRef() #define IDirectDrawSurface4_Release(p) (p)->Release() #define IDirectDrawSurface4_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) #define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) #define IDirectDrawSurface4_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) #define IDirectDrawSurface4_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) #define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) #define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) #define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) #define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) #define IDirectDrawSurface4_Flip(p,a,b) (p)->Flip(a,b) #define IDirectDrawSurface4_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) #define IDirectDrawSurface4_GetBltStatus(p,a) (p)->GetBltStatus(a) #define IDirectDrawSurface4_GetCaps(p,b) (p)->GetCaps(b) #define IDirectDrawSurface4_GetClipper(p,a) (p)->GetClipper(a) #define IDirectDrawSurface4_GetColorKey(p,a,b) (p)->GetColorKey(a,b) #define IDirectDrawSurface4_GetDC(p,a) (p)->GetDC(a) #define IDirectDrawSurface4_GetFlipStatus(p,a) (p)->GetFlipStatus(a) #define IDirectDrawSurface4_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) #define IDirectDrawSurface4_GetPalette(p,a) (p)->GetPalette(a) #define IDirectDrawSurface4_GetPixelFormat(p,a) (p)->GetPixelFormat(a) #define IDirectDrawSurface4_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) #define IDirectDrawSurface4_Initialize(p,a,b) (p)->Initialize(a,b) #define IDirectDrawSurface4_IsLost(p) (p)->IsLost() #define IDirectDrawSurface4_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) #define IDirectDrawSurface4_ReleaseDC(p,a) (p)->ReleaseDC(a) #define IDirectDrawSurface4_Restore(p) (p)->Restore() #define IDirectDrawSurface4_SetClipper(p,a) (p)->SetClipper(a) #define IDirectDrawSurface4_SetColorKey(p,a,b) (p)->SetColorKey(a,b) #define IDirectDrawSurface4_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) #define IDirectDrawSurface4_SetPalette(p,a) (p)->SetPalette(a) #define IDirectDrawSurface4_Unlock(p,b) (p)->Unlock(b) #define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) #define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) #define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) #define IDirectDrawSurface4_GetDDInterface(p,a) (p)->GetDDInterface(a) #define IDirectDrawSurface4_PageLock(p,a) (p)->PageLock(a) #define IDirectDrawSurface4_PageUnlock(p,a) (p)->PageUnlock(a) #define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) #define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) #define IDirectDrawSurface4_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) #define IDirectDrawSurface4_FreePrivateData(p,a) (p)->FreePrivateData(a) #define IDirectDrawSurface4_GetUniquenessValue(p, a) (p)->GetUniquenessValue(a) #define IDirectDrawSurface4_ChangeUniquenessValue(p) (p)->ChangeUniquenessValue() #endif /* * IDirectDrawSurface7 and related interfaces */ #undef INTERFACE #define INTERFACE IDirectDrawSurface7 DECLARE_INTERFACE_( IDirectDrawSurface7, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawSurface methods ***/ STDMETHOD(AddAttachedSurface)(THIS_ LPDIRECTDRAWSURFACE7) PURE; STDMETHOD(AddOverlayDirtyRect)(THIS_ LPRECT) PURE; STDMETHOD(Blt)(THIS_ LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX) PURE; STDMETHOD(BltBatch)(THIS_ LPDDBLTBATCH, DWORD, DWORD ) PURE; STDMETHOD(BltFast)(THIS_ DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD) PURE; STDMETHOD(DeleteAttachedSurface)(THIS_ DWORD,LPDIRECTDRAWSURFACE7) PURE; STDMETHOD(EnumAttachedSurfaces)(THIS_ LPVOID,LPDDENUMSURFACESCALLBACK7) PURE; STDMETHOD(EnumOverlayZOrders)(THIS_ DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7) PURE; STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE7, DWORD) PURE; STDMETHOD(GetAttachedSurface)(THIS_ LPDDSCAPS2, LPDIRECTDRAWSURFACE7 FAR *) PURE; STDMETHOD(GetBltStatus)(THIS_ DWORD) PURE; STDMETHOD(GetCaps)(THIS_ LPDDSCAPS2) PURE; STDMETHOD(GetClipper)(THIS_ LPDIRECTDRAWCLIPPER FAR*) PURE; STDMETHOD(GetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(GetDC)(THIS_ HDC FAR *) PURE; STDMETHOD(GetFlipStatus)(THIS_ DWORD) PURE; STDMETHOD(GetOverlayPosition)(THIS_ LPLONG, LPLONG ) PURE; STDMETHOD(GetPalette)(THIS_ LPDIRECTDRAWPALETTE FAR*) PURE; STDMETHOD(GetPixelFormat)(THIS_ LPDDPIXELFORMAT) PURE; STDMETHOD(GetSurfaceDesc)(THIS_ LPDDSURFACEDESC2) PURE; STDMETHOD(Initialize)(THIS_ LPDIRECTDRAW, LPDDSURFACEDESC2) PURE; STDMETHOD(IsLost)(THIS) PURE; STDMETHOD(Lock)(THIS_ LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE) PURE; STDMETHOD(ReleaseDC)(THIS_ HDC) PURE; STDMETHOD(Restore)(THIS) PURE; STDMETHOD(SetClipper)(THIS_ LPDIRECTDRAWCLIPPER) PURE; STDMETHOD(SetColorKey)(THIS_ DWORD, LPDDCOLORKEY) PURE; STDMETHOD(SetOverlayPosition)(THIS_ LONG, LONG ) PURE; STDMETHOD(SetPalette)(THIS_ LPDIRECTDRAWPALETTE) PURE; STDMETHOD(Unlock)(THIS_ LPRECT) PURE; STDMETHOD(UpdateOverlay)(THIS_ LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX) PURE; STDMETHOD(UpdateOverlayDisplay)(THIS_ DWORD) PURE; STDMETHOD(UpdateOverlayZOrder)(THIS_ DWORD, LPDIRECTDRAWSURFACE7) PURE; /*** Added in the v2 interface ***/ STDMETHOD(GetDDInterface)(THIS_ LPVOID FAR *) PURE; STDMETHOD(PageLock)(THIS_ DWORD) PURE; STDMETHOD(PageUnlock)(THIS_ DWORD) PURE; /*** Added in the v3 interface ***/ STDMETHOD(SetSurfaceDesc)(THIS_ LPDDSURFACEDESC2, DWORD) PURE; /*** Added in the v4 interface ***/ STDMETHOD(SetPrivateData)(THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE; STDMETHOD(GetPrivateData)(THIS_ REFGUID, LPVOID, LPDWORD) PURE; STDMETHOD(FreePrivateData)(THIS_ REFGUID) PURE; STDMETHOD(GetUniquenessValue)(THIS_ LPDWORD) PURE; STDMETHOD(ChangeUniquenessValue)(THIS) PURE; /*** Moved Texture7 methods here ***/ STDMETHOD(SetPriority)(THIS_ DWORD) PURE; STDMETHOD(GetPriority)(THIS_ LPDWORD) PURE; STDMETHOD(SetLOD)(THIS_ DWORD) PURE; STDMETHOD(GetLOD)(THIS_ LPDWORD) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) #define IDirectDrawSurface7_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawSurface7_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawSurface7_AddAttachedSurface(p,a) (p)->lpVtbl->AddAttachedSurface(p,a) #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) (p)->lpVtbl->AddOverlayDirtyRect(p,a) #define IDirectDrawSurface7_Blt(p,a,b,c,d,e) (p)->lpVtbl->Blt(p,a,b,c,d,e) #define IDirectDrawSurface7_BltBatch(p,a,b,c) (p)->lpVtbl->BltBatch(p,a,b,c) #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) (p)->lpVtbl->BltFast(p,a,b,c,d,e) #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->lpVtbl->DeleteAttachedSurface(p,a,b) #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) (p)->lpVtbl->EnumAttachedSurfaces(p,a,b) #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) (p)->lpVtbl->EnumOverlayZOrders(p,a,b,c) #define IDirectDrawSurface7_Flip(p,a,b) (p)->lpVtbl->Flip(p,a,b) #define IDirectDrawSurface7_GetAttachedSurface(p,a,b) (p)->lpVtbl->GetAttachedSurface(p,a,b) #define IDirectDrawSurface7_GetBltStatus(p,a) (p)->lpVtbl->GetBltStatus(p,a) #define IDirectDrawSurface7_GetCaps(p,b) (p)->lpVtbl->GetCaps(p,b) #define IDirectDrawSurface7_GetClipper(p,a) (p)->lpVtbl->GetClipper(p,a) #define IDirectDrawSurface7_GetColorKey(p,a,b) (p)->lpVtbl->GetColorKey(p,a,b) #define IDirectDrawSurface7_GetDC(p,a) (p)->lpVtbl->GetDC(p,a) #define IDirectDrawSurface7_GetFlipStatus(p,a) (p)->lpVtbl->GetFlipStatus(p,a) #define IDirectDrawSurface7_GetOverlayPosition(p,a,b) (p)->lpVtbl->GetOverlayPosition(p,a,b) #define IDirectDrawSurface7_GetPalette(p,a) (p)->lpVtbl->GetPalette(p,a) #define IDirectDrawSurface7_GetPixelFormat(p,a) (p)->lpVtbl->GetPixelFormat(p,a) #define IDirectDrawSurface7_GetSurfaceDesc(p,a) (p)->lpVtbl->GetSurfaceDesc(p,a) #define IDirectDrawSurface7_Initialize(p,a,b) (p)->lpVtbl->Initialize(p,a,b) #define IDirectDrawSurface7_IsLost(p) (p)->lpVtbl->IsLost(p) #define IDirectDrawSurface7_Lock(p,a,b,c,d) (p)->lpVtbl->Lock(p,a,b,c,d) #define IDirectDrawSurface7_ReleaseDC(p,a) (p)->lpVtbl->ReleaseDC(p,a) #define IDirectDrawSurface7_Restore(p) (p)->lpVtbl->Restore(p) #define IDirectDrawSurface7_SetClipper(p,a) (p)->lpVtbl->SetClipper(p,a) #define IDirectDrawSurface7_SetColorKey(p,a,b) (p)->lpVtbl->SetColorKey(p,a,b) #define IDirectDrawSurface7_SetOverlayPosition(p,a,b) (p)->lpVtbl->SetOverlayPosition(p,a,b) #define IDirectDrawSurface7_SetPalette(p,a) (p)->lpVtbl->SetPalette(p,a) #define IDirectDrawSurface7_Unlock(p,b) (p)->lpVtbl->Unlock(p,b) #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) (p)->lpVtbl->UpdateOverlay(p,a,b,c,d,e) #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) (p)->lpVtbl->UpdateOverlayDisplay(p,a) #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) (p)->lpVtbl->UpdateOverlayZOrder(p,a,b) #define IDirectDrawSurface7_GetDDInterface(p,a) (p)->lpVtbl->GetDDInterface(p,a) #define IDirectDrawSurface7_PageLock(p,a) (p)->lpVtbl->PageLock(p,a) #define IDirectDrawSurface7_PageUnlock(p,a) (p)->lpVtbl->PageUnlock(p,a) #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->lpVtbl->SetSurfaceDesc(p,a,b) #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->lpVtbl->SetPrivateData(p,a,b,c,d) #define IDirectDrawSurface7_GetPrivateData(p,a,b,c) (p)->lpVtbl->GetPrivateData(p,a,b,c) #define IDirectDrawSurface7_FreePrivateData(p,a) (p)->lpVtbl->FreePrivateData(p,a) #define IDirectDrawSurface7_GetUniquenessValue(p, a) (p)->lpVtbl->GetUniquenessValue(p, a) #define IDirectDrawSurface7_ChangeUniquenessValue(p) (p)->lpVtbl->ChangeUniquenessValue(p) #define IDirectDrawSurface7_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a) #define IDirectDrawSurface7_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a) #define IDirectDrawSurface7_SetLOD(p,a) (p)->lpVtbl->SetLOD(p,a) #define IDirectDrawSurface7_GetLOD(p,a) (p)->lpVtbl->GetLOD(p,a) #else #define IDirectDrawSurface7_QueryInterface(p,a,b) (p)->QueryInterface(a,b) #define IDirectDrawSurface7_AddRef(p) (p)->AddRef() #define IDirectDrawSurface7_Release(p) (p)->Release() #define IDirectDrawSurface7_AddAttachedSurface(p,a) (p)->AddAttachedSurface(a) #define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) (p)->AddOverlayDirtyRect(a) #define IDirectDrawSurface7_Blt(p,a,b,c,d,e) (p)->Blt(a,b,c,d,e) #define IDirectDrawSurface7_BltBatch(p,a,b,c) (p)->BltBatch(a,b,c) #define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) (p)->BltFast(a,b,c,d,e) #define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) (p)->DeleteAttachedSurface(a,b) #define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) (p)->EnumAttachedSurfaces(a,b) #define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) (p)->EnumOverlayZOrders(a,b,c) #define IDirectDrawSurface7_Flip(p,a,b) (p)->Flip(a,b) #define IDirectDrawSurface7_GetAttachedSurface(p,a,b) (p)->GetAttachedSurface(a,b) #define IDirectDrawSurface7_GetBltStatus(p,a) (p)->GetBltStatus(a) #define IDirectDrawSurface7_GetCaps(p,b) (p)->GetCaps(b) #define IDirectDrawSurface7_GetClipper(p,a) (p)->GetClipper(a) #define IDirectDrawSurface7_GetColorKey(p,a,b) (p)->GetColorKey(a,b) #define IDirectDrawSurface7_GetDC(p,a) (p)->GetDC(a) #define IDirectDrawSurface7_GetFlipStatus(p,a) (p)->GetFlipStatus(a) #define IDirectDrawSurface7_GetOverlayPosition(p,a,b) (p)->GetOverlayPosition(a,b) #define IDirectDrawSurface7_GetPalette(p,a) (p)->GetPalette(a) #define IDirectDrawSurface7_GetPixelFormat(p,a) (p)->GetPixelFormat(a) #define IDirectDrawSurface7_GetSurfaceDesc(p,a) (p)->GetSurfaceDesc(a) #define IDirectDrawSurface7_Initialize(p,a,b) (p)->Initialize(a,b) #define IDirectDrawSurface7_IsLost(p) (p)->IsLost() #define IDirectDrawSurface7_Lock(p,a,b,c,d) (p)->Lock(a,b,c,d) #define IDirectDrawSurface7_ReleaseDC(p,a) (p)->ReleaseDC(a) #define IDirectDrawSurface7_Restore(p) (p)->Restore() #define IDirectDrawSurface7_SetClipper(p,a) (p)->SetClipper(a) #define IDirectDrawSurface7_SetColorKey(p,a,b) (p)->SetColorKey(a,b) #define IDirectDrawSurface7_SetOverlayPosition(p,a,b) (p)->SetOverlayPosition(a,b) #define IDirectDrawSurface7_SetPalette(p,a) (p)->SetPalette(a) #define IDirectDrawSurface7_Unlock(p,b) (p)->Unlock(b) #define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) (p)->UpdateOverlay(a,b,c,d,e) #define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) (p)->UpdateOverlayDisplay(a) #define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) (p)->UpdateOverlayZOrder(a,b) #define IDirectDrawSurface7_GetDDInterface(p,a) (p)->GetDDInterface(a) #define IDirectDrawSurface7_PageLock(p,a) (p)->PageLock(a) #define IDirectDrawSurface7_PageUnlock(p,a) (p)->PageUnlock(a) #define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) (p)->SetSurfaceDesc(a,b) #define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) (p)->SetPrivateData(a,b,c,d) #define IDirectDrawSurface7_GetPrivateData(p,a,b,c) (p)->GetPrivateData(a,b,c) #define IDirectDrawSurface7_FreePrivateData(p,a) (p)->FreePrivateData(a) #define IDirectDrawSurface7_GetUniquenessValue(p, a) (p)->GetUniquenessValue(a) #define IDirectDrawSurface7_ChangeUniquenessValue(p) (p)->ChangeUniquenessValue() #define IDirectDrawSurface7_SetPriority(p,a) (p)->SetPriority(a) #define IDirectDrawSurface7_GetPriority(p,a) (p)->GetPriority(a) #define IDirectDrawSurface7_SetLOD(p,a) (p)->SetLOD(a) #define IDirectDrawSurface7_GetLOD(p,a) (p)->GetLOD(a) #endif /* * IDirectDrawColorControl */ #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDrawColorControl DECLARE_INTERFACE_( IDirectDrawColorControl, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawColorControl methods ***/ STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE; STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDrawColorControl_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawColorControl_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawColorControl_GetColorControls(p, a) (p)->lpVtbl->GetColorControls(p, a) #define IDirectDrawColorControl_SetColorControls(p, a) (p)->lpVtbl->SetColorControls(p, a) #else #define IDirectDrawColorControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDrawColorControl_AddRef(p) (p)->AddRef() #define IDirectDrawColorControl_Release(p) (p)->Release() #define IDirectDrawColorControl_GetColorControls(p, a) (p)->GetColorControls(a) #define IDirectDrawColorControl_SetColorControls(p, a) (p)->SetColorControls(a) #endif #endif /* * IDirectDrawGammaControl */ #if defined( _WIN32 ) && !defined( _NO_COM ) #undef INTERFACE #define INTERFACE IDirectDrawGammaControl DECLARE_INTERFACE_( IDirectDrawGammaControl, IUnknown ) { /*** IUnknown methods ***/ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; /*** IDirectDrawGammaControl methods ***/ STDMETHOD(GetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE; STDMETHOD(SetGammaRamp)(THIS_ DWORD, LPDDGAMMARAMP) PURE; }; #if !defined(__cplusplus) || defined(CINTERFACE) #define IDirectDrawGammaControl_QueryInterface(p, a, b) (p)->lpVtbl->QueryInterface(p, a, b) #define IDirectDrawGammaControl_AddRef(p) (p)->lpVtbl->AddRef(p) #define IDirectDrawGammaControl_Release(p) (p)->lpVtbl->Release(p) #define IDirectDrawGammaControl_GetGammaRamp(p, a, b) (p)->lpVtbl->GetGammaRamp(p, a, b) #define IDirectDrawGammaControl_SetGammaRamp(p, a, b) (p)->lpVtbl->SetGammaRamp(p, a, b) #else #define IDirectDrawGammaControl_QueryInterface(p, a, b) (p)->QueryInterface(a, b) #define IDirectDrawGammaControl_AddRef(p) (p)->AddRef() #define IDirectDrawGammaControl_Release(p) (p)->Release() #define IDirectDrawGammaControl_GetGammaRamp(p, a, b) (p)->GetGammaRamp(a, b) #define IDirectDrawGammaControl_SetGammaRamp(p, a, b) (p)->SetGammaRamp(a, b) #endif #endif #endif /* * DDSURFACEDESC */ typedef struct _DDSURFACEDESC { DWORD dwSize; // size of the DDSURFACEDESC structure DWORD dwFlags; // determines what fields are valid DWORD dwHeight; // height of surface to be created DWORD dwWidth; // width of input surface union { LONG lPitch; // distance to start of next line (return value only) DWORD dwLinearSize; // Formless late-allocated optimized surface size } DUMMYUNIONNAMEN(1); DWORD dwBackBufferCount; // number of back buffers requested union { DWORD dwMipMapCount; // number of mip-map levels requested DWORD dwZBufferBitDepth; // depth of Z buffer requested DWORD dwRefreshRate; // refresh rate (used when display mode is described) } DUMMYUNIONNAMEN(2); DWORD dwAlphaBitDepth; // depth of alpha buffer requested DWORD dwReserved; // reserved LPVOID lpSurface; // pointer to the associated surface memory DDCOLORKEY ddckCKDestOverlay; // color key for destination overlay use DDCOLORKEY ddckCKDestBlt; // color key for destination blt use DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use DDCOLORKEY ddckCKSrcBlt; // color key for source blt use DDPIXELFORMAT ddpfPixelFormat; // pixel format description of the surface DDSCAPS ddsCaps; // direct draw surface capabilities } DDSURFACEDESC; /* * DDSURFACEDESC2 */ typedef struct _DDSURFACEDESC2 { DWORD dwSize; // size of the DDSURFACEDESC structure DWORD dwFlags; // determines what fields are valid DWORD dwHeight; // height of surface to be created DWORD dwWidth; // width of input surface union { LONG lPitch; // distance to start of next line (return value only) DWORD dwLinearSize; // Formless late-allocated optimized surface size } DUMMYUNIONNAMEN(1); union { DWORD dwBackBufferCount; // number of back buffers requested DWORD dwDepth; // the depth if this is a volume texture } DUMMYUNIONNAMEN(5); union { DWORD dwMipMapCount; // number of mip-map levels requestde // dwZBufferBitDepth removed, use ddpfPixelFormat one instead DWORD dwRefreshRate; // refresh rate (used when display mode is described) DWORD dwSrcVBHandle; // The source used in VB::Optimize } DUMMYUNIONNAMEN(2); DWORD dwAlphaBitDepth; // depth of alpha buffer requested DWORD dwReserved; // reserved LPVOID lpSurface; // pointer to the associated surface memory union { DDCOLORKEY ddckCKDestOverlay; // color key for destination overlay use DWORD dwEmptyFaceColor; // Physical color for empty cubemap faces } DUMMYUNIONNAMEN(3); DDCOLORKEY ddckCKDestBlt; // color key for destination blt use DDCOLORKEY ddckCKSrcOverlay; // color key for source overlay use DDCOLORKEY ddckCKSrcBlt; // color key for source blt use union { DDPIXELFORMAT ddpfPixelFormat; // pixel format description of the surface DWORD dwFVF; // vertex format description of vertex buffers } DUMMYUNIONNAMEN(4); DDSCAPS2 ddsCaps; // direct draw surface capabilities DWORD dwTextureStage; // stage in multitexture cascade } DDSURFACEDESC2; /* * ddsCaps field is valid. */ #define DDSD_CAPS 0x00000001l // default /* * dwHeight field is valid. */ #define DDSD_HEIGHT 0x00000002l /* * dwWidth field is valid. */ #define DDSD_WIDTH 0x00000004l /* * lPitch is valid. */ #define DDSD_PITCH 0x00000008l /* * dwBackBufferCount is valid. */ #define DDSD_BACKBUFFERCOUNT 0x00000020l /* * dwZBufferBitDepth is valid. (shouldnt be used in DDSURFACEDESC2) */ #define DDSD_ZBUFFERBITDEPTH 0x00000040l /* * dwAlphaBitDepth is valid. */ #define DDSD_ALPHABITDEPTH 0x00000080l /* * lpSurface is valid. */ #define DDSD_LPSURFACE 0x00000800l /* * ddpfPixelFormat is valid. */ #define DDSD_PIXELFORMAT 0x00001000l /* * ddckCKDestOverlay is valid. */ #define DDSD_CKDESTOVERLAY 0x00002000l /* * ddckCKDestBlt is valid. */ #define DDSD_CKDESTBLT 0x00004000l /* * ddckCKSrcOverlay is valid. */ #define DDSD_CKSRCOVERLAY 0x00008000l /* * ddckCKSrcBlt is valid. */ #define DDSD_CKSRCBLT 0x00010000l /* * dwMipMapCount is valid. */ #define DDSD_MIPMAPCOUNT 0x00020000l /* * dwRefreshRate is valid */ #define DDSD_REFRESHRATE 0x00040000l /* * dwLinearSize is valid */ #define DDSD_LINEARSIZE 0x00080000l /* * dwTextureStage is valid */ #define DDSD_TEXTURESTAGE 0x00100000l /* * dwFVF is valid */ #define DDSD_FVF 0x00200000l /* * dwSrcVBHandle is valid */ #define DDSD_SRCVBHANDLE 0x00400000l /* * dwDepth is valid */ #define DDSD_DEPTH 0x00800000l /* * All input fields are valid. */ #define DDSD_ALL 0x00fff9eel /* * DDOPTSURFACEDESC */ typedef struct _DDOPTSURFACEDESC { DWORD dwSize; // size of the DDOPTSURFACEDESC structure DWORD dwFlags; // determines what fields are valid DDSCAPS2 ddSCaps; // Common caps like: Memory type DDOSCAPS ddOSCaps; // Common caps like: Memory type GUID guid; // Compression technique GUID DWORD dwCompressionRatio; // Compression ratio } DDOPTSURFACEDESC; /* * guid field is valid. */ #define DDOSD_GUID 0x00000001l /* * dwCompressionRatio field is valid. */ #define DDOSD_COMPRESSION_RATIO 0x00000002l /* * ddSCaps field is valid. */ #define DDOSD_SCAPS 0x00000004l /* * ddOSCaps field is valid. */ #define DDOSD_OSCAPS 0x00000008l /* * All input fields are valid. */ #define DDOSD_ALL 0x0000000fl /* * The surface's optimized pixelformat is compressed */ #define DDOSDCAPS_OPTCOMPRESSED 0x00000001l /* * The surface's optimized pixelformat is reordered */ #define DDOSDCAPS_OPTREORDERED 0x00000002l /* * The opt surface is a monolithic mipmap */ #define DDOSDCAPS_MONOLITHICMIPMAP 0x00000004l /* * The valid Surf caps: * #define DDSCAPS_SYSTEMMEMORY 0x00000800l * #define DDSCAPS_VIDEOMEMORY 0x00004000l * #define DDSCAPS_LOCALVIDMEM 0x10000000l * #define DDSCAPS_NONLOCALVIDMEM 0x20000000l */ #define DDOSDCAPS_VALIDSCAPS 0x30004800l /* * The valid OptSurf caps */ #define DDOSDCAPS_VALIDOSCAPS 0x00000007l /* * DDCOLORCONTROL */ typedef struct _DDCOLORCONTROL { DWORD dwSize; DWORD dwFlags; LONG lBrightness; LONG lContrast; LONG lHue; LONG lSaturation; LONG lSharpness; LONG lGamma; LONG lColorEnable; DWORD dwReserved1; } DDCOLORCONTROL; /* * lBrightness field is valid. */ #define DDCOLOR_BRIGHTNESS 0x00000001l /* * lContrast field is valid. */ #define DDCOLOR_CONTRAST 0x00000002l /* * lHue field is valid. */ #define DDCOLOR_HUE 0x00000004l /* * lSaturation field is valid. */ #define DDCOLOR_SATURATION 0x00000008l /* * lSharpness field is valid. */ #define DDCOLOR_SHARPNESS 0x00000010l /* * lGamma field is valid. */ #define DDCOLOR_GAMMA 0x00000020l /* * lColorEnable field is valid. */ #define DDCOLOR_COLORENABLE 0x00000040l /*============================================================================ * * Direct Draw Capability Flags * * These flags are used to describe the capabilities of a given Surface. * All flags are bit flags. * *==========================================================================*/ /**************************************************************************** * * DIRECTDRAWSURFACE CAPABILITY FLAGS * ****************************************************************************/ /* * This bit is reserved. It should not be specified. */ #define DDSCAPS_RESERVED1 0x00000001l /* * Indicates that this surface contains alpha-only information. * (To determine if a surface is RGBA/YUVA, the pixel format must be * interrogated.) */ #define DDSCAPS_ALPHA 0x00000002l /* * Indicates that this surface is a backbuffer. It is generally * set by CreateSurface when the DDSCAPS_FLIP capability bit is set. * It indicates that this surface is THE back buffer of a surface * flipping structure. DirectDraw supports N surfaces in a * surface flipping structure. Only the surface that immediately * precedeces the DDSCAPS_FRONTBUFFER has this capability bit set. * The other surfaces are identified as back buffers by the presence * of the DDSCAPS_FLIP capability, their attachment order, and the * absence of the DDSCAPS_FRONTBUFFER and DDSCAPS_BACKBUFFER * capabilities. The bit is sent to CreateSurface when a standalone * back buffer is being created. This surface could be attached to * a front buffer and/or back buffers to form a flipping surface * structure after the CreateSurface call. See AddAttachments for * a detailed description of the behaviors in this case. */ #define DDSCAPS_BACKBUFFER 0x00000004l /* * Indicates a complex surface structure is being described. A * complex surface structure results in the creation of more than * one surface. The additional surfaces are attached to the root * surface. The complex structure can only be destroyed by * destroying the root. */ #define DDSCAPS_COMPLEX 0x00000008l /* * Indicates that this surface is a part of a surface flipping structure. * When it is passed to CreateSurface the DDSCAPS_FRONTBUFFER and * DDSCAP_BACKBUFFER bits are not set. They are set by CreateSurface * on the resulting creations. The dwBackBufferCount field in the * DDSURFACEDESC structure must be set to at least 1 in order for * the CreateSurface call to succeed. The DDSCAPS_COMPLEX capability * must always be set with creating multiple surfaces through CreateSurface. */ #define DDSCAPS_FLIP 0x00000010l /* * Indicates that this surface is THE front buffer of a surface flipping * structure. It is generally set by CreateSurface when the DDSCAPS_FLIP * capability bit is set. * If this capability is sent to CreateSurface then a standalonw front buffer * is created. This surface will not have the DDSCAPS_FLIP capability. * It can be attached to other back buffers to form a flipping structure. * See AddAttachments for a detailed description of the behaviors in this * case. */ #define DDSCAPS_FRONTBUFFER 0x00000020l /* * Indicates that this surface is any offscreen surface that is not an overlay, * texture, zbuffer, front buffer, back buffer, or alpha surface. It is used * to identify plain vanilla surfaces. */ #define DDSCAPS_OFFSCREENPLAIN 0x00000040l /* * Indicates that this surface is an overlay. It may or may not be directly visible * depending on whether or not it is currently being overlayed onto the primary * surface. DDSCAPS_VISIBLE can be used to determine whether or not it is being * overlayed at the moment. */ #define DDSCAPS_OVERLAY 0x00000080l /* * Indicates that unique DirectDrawPalette objects can be created and * attached to this surface. */ #define DDSCAPS_PALETTE 0x00000100l /* * Indicates that this surface is the primary surface. The primary * surface represents what the user is seeing at the moment. */ #define DDSCAPS_PRIMARYSURFACE 0x00000200l /* * This flag used to be DDSCAPS_PRIMARYSURFACELEFT, which is now * obsolete. */ #define DDSCAPS_RESERVED3 0x00000400l #define DDSCAPS_PRIMARYSURFACELEFT 0x00000000l /* * Indicates that this surface memory was allocated in system memory */ #define DDSCAPS_SYSTEMMEMORY 0x00000800l /* * Indicates that this surface can be used as a 3D texture. It does not * indicate whether or not the surface is being used for that purpose. */ #define DDSCAPS_TEXTURE 0x00001000l /* * Indicates that a surface may be a destination for 3D rendering. This * bit must be set in order to query for a Direct3D Device Interface * from this surface. */ #define DDSCAPS_3DDEVICE 0x00002000l /* * Indicates that this surface exists in video memory. */ #define DDSCAPS_VIDEOMEMORY 0x00004000l /* * Indicates that changes made to this surface are immediately visible. * It is always set for the primary surface and is set for overlays while * they are being overlayed and texture maps while they are being textured. */ #define DDSCAPS_VISIBLE 0x00008000l /* * Indicates that only writes are permitted to the surface. Read accesses * from the surface may or may not generate a protection fault, but the * results of a read from this surface will not be meaningful. READ ONLY. */ #define DDSCAPS_WRITEONLY 0x00010000l /* * Indicates that this surface is a z buffer. A z buffer does not contain * displayable information. Instead it contains bit depth information that is * used to determine which pixels are visible and which are obscured. */ #define DDSCAPS_ZBUFFER 0x00020000l /* * Indicates surface will have a DC associated long term */ #define DDSCAPS_OWNDC 0x00040000l /* * Indicates surface should be able to receive live video */ #define DDSCAPS_LIVEVIDEO 0x00080000l /* * Indicates surface should be able to have a stream decompressed * to it by the hardware. */ #define DDSCAPS_HWCODEC 0x00100000l /* * Surface is a ModeX surface. * */ #define DDSCAPS_MODEX 0x00200000l /* * Indicates surface is one level of a mip-map. This surface will * be attached to other DDSCAPS_MIPMAP surfaces to form the mip-map. * This can be done explicitly, by creating a number of surfaces and * attaching them with AddAttachedSurface or by implicitly by CreateSurface. * If this bit is set then DDSCAPS_TEXTURE must also be set. */ #define DDSCAPS_MIPMAP 0x00400000l /* * This bit is reserved. It should not be specified. */ #define DDSCAPS_RESERVED2 0x00800000l /* * Indicates that memory for the surface is not allocated until the surface * is loaded (via the Direct3D texture Load() function). */ #define DDSCAPS_ALLOCONLOAD 0x04000000l /* * Indicates that the surface will recieve data from a video port. */ #define DDSCAPS_VIDEOPORT 0x08000000l /* * Indicates that a video memory surface is resident in true, local video * memory rather than non-local video memory. If this flag is specified then * so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with * DDSCAPS_NONLOCALVIDMEM. */ #define DDSCAPS_LOCALVIDMEM 0x10000000l /* * Indicates that a video memory surface is resident in non-local video * memory rather than true, local video memory. If this flag is specified * then so must DDSCAPS_VIDEOMEMORY. This flag is mutually exclusive with * DDSCAPS_LOCALVIDMEM. */ #define DDSCAPS_NONLOCALVIDMEM 0x20000000l /* * Indicates that this surface is a standard VGA mode surface, and not a * ModeX surface. (This flag will never be set in combination with the * DDSCAPS_MODEX flag). */ #define DDSCAPS_STANDARDVGAMODE 0x40000000l /* * Indicates that this surface will be an optimized surface. This flag is * currently only valid in conjunction with the DDSCAPS_TEXTURE flag. The surface * will be created without any underlying video memory until loaded. */ #define DDSCAPS_OPTIMIZED 0x80000000l /* * This bit is reserved */ #define DDSCAPS2_RESERVED4 0x00000002L #define DDSCAPS2_HARDWAREDEINTERLACE 0x00000000L /* * Indicates to the driver that this surface will be locked very frequently * (for procedural textures, dynamic lightmaps, etc). Surfaces with this cap * set must also have DDSCAPS_TEXTURE. This cap cannot be used with * DDSCAPS2_HINTSTATIC and DDSCAPS2_OPAQUE. */ #define DDSCAPS2_HINTDYNAMIC 0x00000004L /* * Indicates to the driver that this surface can be re-ordered/retiled on * load. This operation will not change the size of the texture. It is * relatively fast and symmetrical, since the application may lock these * bits (although it will take a performance hit when doing so). Surfaces * with this cap set must also have DDSCAPS_TEXTURE. This cap cannot be * used with DDSCAPS2_HINTDYNAMIC and DDSCAPS2_OPAQUE. */ #define DDSCAPS2_HINTSTATIC 0x00000008L /* * Indicates that the client would like this texture surface to be managed by the * DirectDraw/Direct3D runtime. Surfaces with this cap set must also have * DDSCAPS_TEXTURE set. */ #define DDSCAPS2_TEXTUREMANAGE 0x00000010L /* * These bits are reserved for internal use */ #define DDSCAPS2_RESERVED1 0x00000020L #define DDSCAPS2_RESERVED2 0x00000040L /* * Indicates to the driver that this surface will never be locked again. * The driver is free to optimize this surface via retiling and actual compression. * All calls to Lock() or Blts from this surface will fail. Surfaces with this * cap set must also have DDSCAPS_TEXTURE. This cap cannot be used with * DDSCAPS2_HINTDYNAMIC and DDSCAPS2_HINTSTATIC. */ #define DDSCAPS2_OPAQUE 0x00000080L /* * Applications should set this bit at CreateSurface time to indicate that they * intend to use antialiasing. Only valid if DDSCAPS_3DDEVICE is also set. */ #define DDSCAPS2_HINTANTIALIASING 0x00000100L /* * This flag is used at CreateSurface time to indicate that this set of * surfaces is a cubic environment map */ #define DDSCAPS2_CUBEMAP 0x00000200L /* * These flags preform two functions: * - At CreateSurface time, they define which of the six cube faces are * required by the application. * - After creation, each face in the cubemap will have exactly one of these * bits set. */ #define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400L #define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800L #define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000L #define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000L #define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000L #define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000L /* * This macro may be used to specify all faces of a cube map at CreateSurface time */ #define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\ DDSCAPS2_CUBEMAP_NEGATIVEX |\ DDSCAPS2_CUBEMAP_POSITIVEY |\ DDSCAPS2_CUBEMAP_NEGATIVEY |\ DDSCAPS2_CUBEMAP_POSITIVEZ |\ DDSCAPS2_CUBEMAP_NEGATIVEZ ) /* * This flag is an additional flag which is present on mipmap sublevels from DX7 onwards * It enables easier use of GetAttachedSurface rather than EnumAttachedSurfaces for surface * constructs such as Cube Maps, wherein there are more than one mipmap surface attached * to the root surface. * This caps bit is ignored by CreateSurface */ #define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000L /* This flag indicates that the texture should be managed by D3D only */ #define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000L /* This flag indicates that the managed surface can be safely lost */ #define DDSCAPS2_DONOTPERSIST 0x00040000L /* indicates that this surface is part of a stereo flipping chain */ #define DDSCAPS2_STEREOSURFACELEFT 0x00080000L /* * Indicates that the surface is a volume. * Can be combined with DDSCAPS_MIPMAP to indicate a multi-level volume */ #define DDSCAPS2_VOLUME 0x00200000L /* * Indicates that the surface may be locked multiple times by the application. * This cap cannot be used with DDSCAPS2_OPAQUE. */ #define DDSCAPS2_NOTUSERLOCKABLE 0x00400000L /* * Indicates that the vertex buffer data can be used to render points and * point sprites. */ #define DDSCAPS2_POINTS 0x00800000L /* * Indicates that the vertex buffer data can be used to render rt pactches. */ #define DDSCAPS2_RTPATCHES 0x01000000L /* * Indicates that the vertex buffer data can be used to render n patches. */ #define DDSCAPS2_NPATCHES 0x02000000L /* * This bit is reserved for internal use */ #define DDSCAPS2_RESERVED3 0x04000000L /* * Indicates that the contents of the backbuffer do not have to be preserved * the contents of the backbuffer after they are presented. */ #define DDSCAPS2_DISCARDBACKBUFFER 0x10000000L /* * Indicates that all surfaces in this creation chain should be given an alpha channel. * This flag will be set on primary surface chains that may have no explicit pixel format * (and thus take on the format of the current display mode). * The driver should infer that all these surfaces have a format having an alpha channel. * (e.g. assume D3DFMT_A8R8G8B8 if the display mode is x888.) */ #define DDSCAPS2_ENABLEALPHACHANNEL 0x20000000L /* * Indicates that all surfaces in this creation chain is extended primary surface format. * This flag will be set on extended primary surface chains that always have explicit pixel * format and the pixel format is typically GDI (Graphics Device Interface) couldn't handle, * thus only used with fullscreen application. (e.g. D3DFMT_A2R10G10B10 format) */ #define DDSCAPS2_EXTENDEDFORMATPRIMARY 0x40000000L /* * Indicates that all surfaces in this creation chain is additional primary surface. * This flag will be set on primary surface chains which must present on the adapter * id provided on dwCaps4. Typically this will be used to create secondary primary surface * on DualView display adapter. */ #define DDSCAPS2_ADDITIONALPRIMARY 0x80000000L /* * This is a mask that indicates the set of bits that may be set * at createsurface time to indicate number of samples per pixel * when multisampling */ #define DDSCAPS3_MULTISAMPLE_MASK 0x0000001FL /* * This is a mask that indicates the set of bits that may be set * at createsurface time to indicate the quality level of rendering * for the current number of samples per pixel */ #define DDSCAPS3_MULTISAMPLE_QUALITY_MASK 0x000000E0L #define DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT 5 /* * This bit is reserved for internal use */ #define DDSCAPS3_RESERVED1 0x00000100L /* * This bit is reserved for internal use */ #define DDSCAPS3_RESERVED2 0x00000200L /* * This indicates whether this surface has light-weight miplevels */ #define DDSCAPS3_LIGHTWEIGHTMIPMAP 0x00000400L /* * This indicates that the mipsublevels for this surface are auto-generated */ #define DDSCAPS3_AUTOGENMIPMAP 0x00000800L /* * This indicates that the mipsublevels for this surface are auto-generated */ #define DDSCAPS3_DMAP 0x00001000L /**************************************************************************** * * DIRECTDRAW DRIVER CAPABILITY FLAGS * ****************************************************************************/ /* * Display hardware has 3D acceleration. */ #define DDCAPS_3D 0x00000001l /* * Indicates that DirectDraw will support only dest rectangles that are aligned * on DIRECTDRAWCAPS.dwAlignBoundaryDest boundaries of the surface, respectively. * READ ONLY. */ #define DDCAPS_ALIGNBOUNDARYDEST 0x00000002l /* * Indicates that DirectDraw will support only source rectangles whose sizes in * BYTEs are DIRECTDRAWCAPS.dwAlignSizeDest multiples, respectively. READ ONLY. */ #define DDCAPS_ALIGNSIZEDEST 0x00000004l /* * Indicates that DirectDraw will support only source rectangles that are aligned * on DIRECTDRAWCAPS.dwAlignBoundarySrc boundaries of the surface, respectively. * READ ONLY. */ #define DDCAPS_ALIGNBOUNDARYSRC 0x00000008l /* * Indicates that DirectDraw will support only source rectangles whose sizes in * BYTEs are DIRECTDRAWCAPS.dwAlignSizeSrc multiples, respectively. READ ONLY. */ #define DDCAPS_ALIGNSIZESRC 0x00000010l /* * Indicates that DirectDraw will create video memory surfaces that have a stride * alignment equal to DIRECTDRAWCAPS.dwAlignStride. READ ONLY. */ #define DDCAPS_ALIGNSTRIDE 0x00000020l /* * Display hardware is capable of blt operations. */ #define DDCAPS_BLT 0x00000040l /* * Display hardware is capable of asynchronous blt operations. */ #define DDCAPS_BLTQUEUE 0x00000080l /* * Display hardware is capable of color space conversions during the blt operation. */ #define DDCAPS_BLTFOURCC 0x00000100l /* * Display hardware is capable of stretching during blt operations. */ #define DDCAPS_BLTSTRETCH 0x00000200l /* * Display hardware is shared with GDI. */ #define DDCAPS_GDI 0x00000400l /* * Display hardware can overlay. */ #define DDCAPS_OVERLAY 0x00000800l /* * Set if display hardware supports overlays but can not clip them. */ #define DDCAPS_OVERLAYCANTCLIP 0x00001000l /* * Indicates that overlay hardware is capable of color space conversions during * the overlay operation. */ #define DDCAPS_OVERLAYFOURCC 0x00002000l /* * Indicates that stretching can be done by the overlay hardware. */ #define DDCAPS_OVERLAYSTRETCH 0x00004000l /* * Indicates that unique DirectDrawPalettes can be created for DirectDrawSurfaces * other than the primary surface. */ #define DDCAPS_PALETTE 0x00008000l /* * Indicates that palette changes can be syncd with the veritcal refresh. */ #define DDCAPS_PALETTEVSYNC 0x00010000l /* * Display hardware can return the current scan line. */ #define DDCAPS_READSCANLINE 0x00020000l /* * This flag used to bo DDCAPS_STEREOVIEW, which is now obsolete */ #define DDCAPS_RESERVED1 0x00040000l /* * Display hardware is capable of generating a vertical blank interrupt. */ #define DDCAPS_VBI 0x00080000l /* * Supports the use of z buffers with blt operations. */ #define DDCAPS_ZBLTS 0x00100000l /* * Supports Z Ordering of overlays. */ #define DDCAPS_ZOVERLAYS 0x00200000l /* * Supports color key */ #define DDCAPS_COLORKEY 0x00400000l /* * Supports alpha surfaces */ #define DDCAPS_ALPHA 0x00800000l /* * colorkey is hardware assisted(DDCAPS_COLORKEY will also be set) */ #define DDCAPS_COLORKEYHWASSIST 0x01000000l /* * no hardware support at all */ #define DDCAPS_NOHARDWARE 0x02000000l /* * Display hardware is capable of color fill with bltter */ #define DDCAPS_BLTCOLORFILL 0x04000000l /* * Display hardware is bank switched, and potentially very slow at * random access to VRAM. */ #define DDCAPS_BANKSWITCHED 0x08000000l /* * Display hardware is capable of depth filling Z-buffers with bltter */ #define DDCAPS_BLTDEPTHFILL 0x10000000l /* * Display hardware is capable of clipping while bltting. */ #define DDCAPS_CANCLIP 0x20000000l /* * Display hardware is capable of clipping while stretch bltting. */ #define DDCAPS_CANCLIPSTRETCHED 0x40000000l /* * Display hardware is capable of bltting to or from system memory */ #define DDCAPS_CANBLTSYSMEM 0x80000000l /**************************************************************************** * * MORE DIRECTDRAW DRIVER CAPABILITY FLAGS (dwCaps2) * ****************************************************************************/ /* * Display hardware is certified */ #define DDCAPS2_CERTIFIED 0x00000001l /* * Driver cannot interleave 2D operations (lock and blt) to surfaces with * Direct3D rendering operations between calls to BeginScene() and EndScene() */ #define DDCAPS2_NO2DDURING3DSCENE 0x00000002l /* * Display hardware contains a video port */ #define DDCAPS2_VIDEOPORT 0x00000004l /* * The overlay can be automatically flipped according to the video port * VSYNCs, providing automatic doubled buffered display of video port * data using an overlay */ #define DDCAPS2_AUTOFLIPOVERLAY 0x00000008l /* * Overlay can display each field of interlaced data individually while * it is interleaved in memory without causing jittery artifacts. */ #define DDCAPS2_CANBOBINTERLEAVED 0x00000010l /* * Overlay can display each field of interlaced data individually while * it is not interleaved in memory without causing jittery artifacts. */ #define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020l /* * The overlay surface contains color controls (brightness, sharpness, etc.) */ #define DDCAPS2_COLORCONTROLOVERLAY 0x00000040l /* * The primary surface contains color controls (gamma, etc.) */ #define DDCAPS2_COLORCONTROLPRIMARY 0x00000080l /* * RGBZ -> RGB supported for 16:16 RGB:Z */ #define DDCAPS2_CANDROPZ16BIT 0x00000100l /* * Driver supports non-local video memory. */ #define DDCAPS2_NONLOCALVIDMEM 0x00000200l /* * Dirver supports non-local video memory but has different capabilities for * non-local video memory surfaces. If this bit is set then so must * DDCAPS2_NONLOCALVIDMEM. */ #define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400l /* * Driver neither requires nor prefers surfaces to be pagelocked when performing * blts involving system memory surfaces */ #define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800l /* * Driver can create surfaces which are wider than the primary surface */ #define DDCAPS2_WIDESURFACES 0x00001000l /* * Driver supports bob without using a video port by handling the * DDFLIP_ODD and DDFLIP_EVEN flags specified in Flip. */ #define DDCAPS2_CANFLIPODDEVEN 0x00002000l /* * Driver supports bob using hardware */ #define DDCAPS2_CANBOBHARDWARE 0x00004000l /* * Driver supports bltting any FOURCC surface to another surface of the same FOURCC */ #define DDCAPS2_COPYFOURCC 0x00008000l /* * Driver supports loadable gamma ramps for the primary surface */ #define DDCAPS2_PRIMARYGAMMA 0x00020000l /* * Driver can render in windowed mode. */ #define DDCAPS2_CANRENDERWINDOWED 0x00080000l /* * A calibrator is available to adjust the gamma ramp according to the * physical display properties so that the result will be identical on * all calibrated systems. */ #define DDCAPS2_CANCALIBRATEGAMMA 0x00100000l /* * Indicates that the driver will respond to DDFLIP_INTERVALn flags */ #define DDCAPS2_FLIPINTERVAL 0x00200000l /* * Indicates that the driver will respond to DDFLIP_NOVSYNC */ #define DDCAPS2_FLIPNOVSYNC 0x00400000l /* * Driver supports management of video memory, if this flag is ON, * driver manages the texture if requested with DDSCAPS2_TEXTUREMANAGE on * DirectX manages the texture if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on */ #define DDCAPS2_CANMANAGETEXTURE 0x00800000l /* * The Direct3D texture manager uses this cap to decide whether to put managed * surfaces in non-local video memory. If the cap is set, the texture manager will * put managed surfaces in non-local vidmem. Drivers that cannot texture from * local vidmem SHOULD NOT set this cap. */ #define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000l /* * Indicates that the driver supports DX7 type of stereo in at least one mode (which may * not necessarily be the current mode). Applications should use IDirectDraw7 (or higher) * ::EnumDisplayModes and check the DDSURFACEDESC.ddsCaps.dwCaps2 field for the presence of * DDSCAPS2_STEREOSURFACELEFT to check if a particular mode supports stereo. The application * can also use IDirectDraw7(or higher)::GetDisplayMode to check the current mode. */ #define DDCAPS2_STEREO 0x02000000L /* * This caps bit is intended for internal DirectDraw use. * -It is only valid if DDCAPS2_NONLOCALVIDMEMCAPS is set. * -If this bit is set, then DDCAPS_CANBLTSYSMEM MUST be set by the driver (and * all the assoicated system memory blt caps must be correct). * -It implies that the system->video blt caps in DDCAPS also apply to system to * nonlocal blts. I.e. the dwSVBCaps, dwSVBCKeyCaps, dwSVBFXCaps and dwSVBRops * members of DDCAPS (DDCORECAPS) are filled in correctly. * -Any blt from system to nonlocal memory that matches these caps bits will * be passed to the driver. * * NOTE: This is intended to enable the driver itself to do efficient reordering * of textures. This is NOT meant to imply that hardware can write into AGP memory. * This operation is not currently supported. */ #define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000L /* * was DDCAPS2_PUREHAL */ #define DDCAPS2_RESERVED1 0x08000000L /* * Driver supports management of video memory, if this flag is ON, * driver manages the resource if requested with DDSCAPS2_TEXTUREMANAGE on * DirectX manages the resource if this flag is OFF and surface has DDSCAPS2_TEXTUREMANAGE on */ #define DDCAPS2_CANMANAGERESOURCE 0x10000000L /* * Driver supports dynamic textures. This will allow the application to set * D3DUSAGE_DYNAMIC (DDSCAPS2_HINTDYNAMIC for drivers) at texture create time. * Video memory dynamic textures WILL be lockable by applications. It is * expected that these locks will be very efficient (which implies that the * driver should always maintain a linear copy, a pointer to which can be * quickly handed out to the application). */ #define DDCAPS2_DYNAMICTEXTURES 0x20000000L /* * Driver supports auto-generation of mipmaps. */ #define DDCAPS2_CANAUTOGENMIPMAP 0x40000000L /**************************************************************************** * * DIRECTDRAW FX ALPHA CAPABILITY FLAGS * ****************************************************************************/ /* * Supports alpha blending around the edge of a source color keyed surface. * For Blt. */ #define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001l /* * Supports alpha information in the pixel format. The bit depth of alpha * information in the pixel format can be 1,2,4, or 8. The alpha value becomes * more opaque as the alpha value increases. (0 is transparent.) * For Blt. */ #define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002l /* * Supports alpha information in the pixel format. The bit depth of alpha * information in the pixel format can be 1,2,4, or 8. The alpha value * becomes more transparent as the alpha value increases. (0 is opaque.) * This flag can only be set if DDCAPS_ALPHA is set. * For Blt. */ #define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004l /* * Supports alpha only surfaces. The bit depth of an alpha only surface can be * 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases. * (0 is transparent.) * For Blt. */ #define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008l /* * The depth of the alpha channel data can range can be 1,2,4, or 8. * The NEG suffix indicates that this alpha channel becomes more transparent * as the alpha value increases. (0 is opaque.) This flag can only be set if * DDCAPS_ALPHA is set. * For Blt. */ #define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010l /* * Supports alpha blending around the edge of a source color keyed surface. * For Overlays. */ #define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020l /* * Supports alpha information in the pixel format. The bit depth of alpha * information in the pixel format can be 1,2,4, or 8. The alpha value becomes * more opaque as the alpha value increases. (0 is transparent.) * For Overlays. */ #define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040l /* * Supports alpha information in the pixel format. The bit depth of alpha * information in the pixel format can be 1,2,4, or 8. The alpha value * becomes more transparent as the alpha value increases. (0 is opaque.) * This flag can only be set if DDCAPS_ALPHA is set. * For Overlays. */ #define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080l /* * Supports alpha only surfaces. The bit depth of an alpha only surface can be * 1,2,4, or 8. The alpha value becomes more opaque as the alpha value increases. * (0 is transparent.) * For Overlays. */ #define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100l /* * The depth of the alpha channel data can range can be 1,2,4, or 8. * The NEG suffix indicates that this alpha channel becomes more transparent * as the alpha value increases. (0 is opaque.) This flag can only be set if * DDCAPS_ALPHA is set. * For Overlays. */ #define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200l #if DIRECTDRAW_VERSION < 0x0600 #endif //DIRECTDRAW_VERSION /**************************************************************************** * * DIRECTDRAW FX CAPABILITY FLAGS * ****************************************************************************/ /* * Uses arithmetic operations to stretch and shrink surfaces during blt * rather than pixel doubling techniques. Along the Y axis. */ #define DDFXCAPS_BLTARITHSTRETCHY 0x00000020l /* * Uses arithmetic operations to stretch during blt * rather than pixel doubling techniques. Along the Y axis. Only * works for x1, x2, etc. */ #define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010l /* * Supports mirroring left to right in blt. */ #define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040l /* * Supports mirroring top to bottom in blt. */ #define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080l /* * Supports arbitrary rotation for blts. */ #define DDFXCAPS_BLTROTATION 0x00000100l /* * Supports 90 degree rotations for blts. */ #define DDFXCAPS_BLTROTATION90 0x00000200l /* * DirectDraw supports arbitrary shrinking of a surface along the * x axis (horizontal direction) for blts. */ #define DDFXCAPS_BLTSHRINKX 0x00000400l /* * DirectDraw supports integer shrinking (1x,2x,) of a surface * along the x axis (horizontal direction) for blts. */ #define DDFXCAPS_BLTSHRINKXN 0x00000800l /* * DirectDraw supports arbitrary shrinking of a surface along the * y axis (horizontal direction) for blts. */ #define DDFXCAPS_BLTSHRINKY 0x00001000l /* * DirectDraw supports integer shrinking (1x,2x,) of a surface * along the y axis (vertical direction) for blts. */ #define DDFXCAPS_BLTSHRINKYN 0x00002000l /* * DirectDraw supports arbitrary stretching of a surface along the * x axis (horizontal direction) for blts. */ #define DDFXCAPS_BLTSTRETCHX 0x00004000l /* * DirectDraw supports integer stretching (1x,2x,) of a surface * along the x axis (horizontal direction) for blts. */ #define DDFXCAPS_BLTSTRETCHXN 0x00008000l /* * DirectDraw supports arbitrary stretching of a surface along the * y axis (horizontal direction) for blts. */ #define DDFXCAPS_BLTSTRETCHY 0x00010000l /* * DirectDraw supports integer stretching (1x,2x,) of a surface * along the y axis (vertical direction) for blts. */ #define DDFXCAPS_BLTSTRETCHYN 0x00020000l /* * Uses arithmetic operations to stretch and shrink surfaces during * overlay rather than pixel doubling techniques. Along the Y axis * for overlays. */ #define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000l /* * Uses arithmetic operations to stretch surfaces during * overlay rather than pixel doubling techniques. Along the Y axis * for overlays. Only works for x1, x2, etc. */ #define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008l /* * DirectDraw supports arbitrary shrinking of a surface along the * x axis (horizontal direction) for overlays. */ #define DDFXCAPS_OVERLAYSHRINKX 0x00080000l /* * DirectDraw supports integer shrinking (1x,2x,) of a surface * along the x axis (horizontal direction) for overlays. */ #define DDFXCAPS_OVERLAYSHRINKXN 0x00100000l /* * DirectDraw supports arbitrary shrinking of a surface along the * y axis (horizontal direction) for overlays. */ #define DDFXCAPS_OVERLAYSHRINKY 0x00200000l /* * DirectDraw supports integer shrinking (1x,2x,) of a surface * along the y axis (vertical direction) for overlays. */ #define DDFXCAPS_OVERLAYSHRINKYN 0x00400000l /* * DirectDraw supports arbitrary stretching of a surface along the * x axis (horizontal direction) for overlays. */ #define DDFXCAPS_OVERLAYSTRETCHX 0x00800000l /* * DirectDraw supports integer stretching (1x,2x,) of a surface * along the x axis (horizontal direction) for overlays. */ #define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000l /* * DirectDraw supports arbitrary stretching of a surface along the * y axis (horizontal direction) for overlays. */ #define DDFXCAPS_OVERLAYSTRETCHY 0x02000000l /* * DirectDraw supports integer stretching (1x,2x,) of a surface * along the y axis (vertical direction) for overlays. */ #define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000l /* * DirectDraw supports mirroring of overlays across the vertical axis */ #define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000l /* * DirectDraw supports mirroring of overlays across the horizontal axis */ #define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000l /* * DirectDraw supports deinterlacing of overlay surfaces */ #define DDFXCAPS_OVERLAYDEINTERLACE 0x20000000l /* * Driver can do alpha blending for blits. */ #define DDFXCAPS_BLTALPHA 0x00000001l /* * Driver can do surface-reconstruction filtering for warped blits. */ #define DDFXCAPS_BLTFILTER DDFXCAPS_BLTARITHSTRETCHY /* * Driver can do alpha blending for overlays. */ #define DDFXCAPS_OVERLAYALPHA 0x00000004l /* * Driver can do surface-reconstruction filtering for warped overlays. */ #define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY /**************************************************************************** * * DIRECTDRAW STEREO VIEW CAPABILITIES * ****************************************************************************/ /* * This flag used to be DDSVCAPS_ENIGMA, which is now obsolete */ #define DDSVCAPS_RESERVED1 0x00000001l /* * This flag used to be DDSVCAPS_FLICKER, which is now obsolete */ #define DDSVCAPS_RESERVED2 0x00000002l /* * This flag used to be DDSVCAPS_REDBLUE, which is now obsolete */ #define DDSVCAPS_RESERVED3 0x00000004l /* * This flag used to be DDSVCAPS_SPLIT, which is now obsolete */ #define DDSVCAPS_RESERVED4 0x00000008l /* * The stereo view is accomplished with switching technology */ #define DDSVCAPS_STEREOSEQUENTIAL 0x00000010L /**************************************************************************** * * DIRECTDRAWPALETTE CAPABILITIES * ****************************************************************************/ /* * Index is 4 bits. There are sixteen color entries in the palette table. */ #define DDPCAPS_4BIT 0x00000001l /* * Index is onto a 8 bit color index. This field is only valid with the * DDPCAPS_1BIT, DDPCAPS_2BIT or DDPCAPS_4BIT capability and the target * surface is in 8bpp. Each color entry is one byte long and is an index * into destination surface's 8bpp palette. */ #define DDPCAPS_8BITENTRIES 0x00000002l /* * Index is 8 bits. There are 256 color entries in the palette table. */ #define DDPCAPS_8BIT 0x00000004l /* * Indicates that this DIRECTDRAWPALETTE should use the palette color array * passed into the lpDDColorArray parameter to initialize the DIRECTDRAWPALETTE * object. * This flag is obsolete. DirectDraw always initializes the color array from * the lpDDColorArray parameter. The definition remains for source-level * compatibility. */ #define DDPCAPS_INITIALIZE 0x00000000l /* * This palette is the one attached to the primary surface. Changing this * table has immediate effect on the display unless DDPSETPAL_VSYNC is specified * and supported. */ #define DDPCAPS_PRIMARYSURFACE 0x00000010l /* * This palette is the one attached to the primary surface left. Changing * this table has immediate effect on the display for the left eye unless * DDPSETPAL_VSYNC is specified and supported. */ #define DDPCAPS_PRIMARYSURFACELEFT 0x00000020l /* * This palette can have all 256 entries defined */ #define DDPCAPS_ALLOW256 0x00000040l /* * This palette can have modifications to it synced with the monitors * refresh rate. */ #define DDPCAPS_VSYNC 0x00000080l /* * Index is 1 bit. There are two color entries in the palette table. */ #define DDPCAPS_1BIT 0x00000100l /* * Index is 2 bit. There are four color entries in the palette table. */ #define DDPCAPS_2BIT 0x00000200l /* * The peFlags member of PALETTEENTRY denotes an 8 bit alpha value */ #define DDPCAPS_ALPHA 0x00000400l /**************************************************************************** * * DIRECTDRAWPALETTE SETENTRY CONSTANTS * ****************************************************************************/ /**************************************************************************** * * DIRECTDRAWPALETTE GETENTRY CONSTANTS * ****************************************************************************/ /* 0 is the only legal value */ /**************************************************************************** * * DIRECTDRAWSURFACE SETPRIVATEDATA CONSTANTS * ****************************************************************************/ /* * The passed pointer is an IUnknown ptr. The cbData argument to SetPrivateData * must be set to sizeof(IUnknown*). DirectDraw will call AddRef through this * pointer and Release when the private data is destroyed. This includes when * the surface or palette is destroyed before such priovate data is destroyed. */ #define DDSPD_IUNKNOWNPOINTER 0x00000001L /* * Private data is only valid for the current state of the object, * as determined by the uniqueness value. */ #define DDSPD_VOLATILE 0x00000002L /**************************************************************************** * * DIRECTDRAWSURFACE SETPALETTE CONSTANTS * ****************************************************************************/ /**************************************************************************** * * DIRECTDRAW BITDEPTH CONSTANTS * * NOTE: These are only used to indicate supported bit depths. These * are flags only, they are not to be used as an actual bit depth. The * absolute numbers 1, 2, 4, 8, 16, 24 and 32 are used to indicate actual * bit depths in a surface or for changing the display mode. * ****************************************************************************/ /* * 1 bit per pixel. */ #define DDBD_1 0x00004000l /* * 2 bits per pixel. */ #define DDBD_2 0x00002000l /* * 4 bits per pixel. */ #define DDBD_4 0x00001000l /* * 8 bits per pixel. */ #define DDBD_8 0x00000800l /* * 16 bits per pixel. */ #define DDBD_16 0x00000400l /* * 24 bits per pixel. */ #define DDBD_24 0X00000200l /* * 32 bits per pixel. */ #define DDBD_32 0x00000100l /**************************************************************************** * * DIRECTDRAWSURFACE SET/GET COLOR KEY FLAGS * ****************************************************************************/ /* * Set if the structure contains a color space. Not set if the structure * contains a single color key. */ #define DDCKEY_COLORSPACE 0x00000001l /* * Set if the structure specifies a color key or color space which is to be * used as a destination color key for blt operations. */ #define DDCKEY_DESTBLT 0x00000002l /* * Set if the structure specifies a color key or color space which is to be * used as a destination color key for overlay operations. */ #define DDCKEY_DESTOVERLAY 0x00000004l /* * Set if the structure specifies a color key or color space which is to be * used as a source color key for blt operations. */ #define DDCKEY_SRCBLT 0x00000008l /* * Set if the structure specifies a color key or color space which is to be * used as a source color key for overlay operations. */ #define DDCKEY_SRCOVERLAY 0x00000010l /**************************************************************************** * * DIRECTDRAW COLOR KEY CAPABILITY FLAGS * ****************************************************************************/ /* * Supports transparent blting using a color key to identify the replaceable * bits of the destination surface for RGB colors. */ #define DDCKEYCAPS_DESTBLT 0x00000001l /* * Supports transparent blting using a color space to identify the replaceable * bits of the destination surface for RGB colors. */ #define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002l /* * Supports transparent blting using a color space to identify the replaceable * bits of the destination surface for YUV colors. */ #define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004l /* * Supports transparent blting using a color key to identify the replaceable * bits of the destination surface for YUV colors. */ #define DDCKEYCAPS_DESTBLTYUV 0x00000008l /* * Supports overlaying using colorkeying of the replaceable bits of the surface * being overlayed for RGB colors. */ #define DDCKEYCAPS_DESTOVERLAY 0x00000010l /* * Supports a color space as the color key for the destination for RGB colors. */ #define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020l /* * Supports a color space as the color key for the destination for YUV colors. */ #define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040l /* * Supports only one active destination color key value for visible overlay * surfaces. */ #define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080l /* * Supports overlaying using colorkeying of the replaceable bits of the * surface being overlayed for YUV colors. */ #define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100l /* * Supports transparent blting using the color key for the source with * this surface for RGB colors. */ #define DDCKEYCAPS_SRCBLT 0x00000200l /* * Supports transparent blting using a color space for the source with * this surface for RGB colors. */ #define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400l /* * Supports transparent blting using a color space for the source with * this surface for YUV colors. */ #define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800l /* * Supports transparent blting using the color key for the source with * this surface for YUV colors. */ #define DDCKEYCAPS_SRCBLTYUV 0x00001000l /* * Supports overlays using the color key for the source with this * overlay surface for RGB colors. */ #define DDCKEYCAPS_SRCOVERLAY 0x00002000l /* * Supports overlays using a color space as the source color key for * the overlay surface for RGB colors. */ #define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000l /* * Supports overlays using a color space as the source color key for * the overlay surface for YUV colors. */ #define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000l /* * Supports only one active source color key value for visible * overlay surfaces. */ #define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000l /* * Supports overlays using the color key for the source with this * overlay surface for YUV colors. */ #define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000l /* * there are no bandwidth trade-offs for using colorkey with an overlay */ #define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000l /**************************************************************************** * * DIRECTDRAW PIXELFORMAT FLAGS * ****************************************************************************/ /* * The surface has alpha channel information in the pixel format. */ #define DDPF_ALPHAPIXELS 0x00000001l /* * The pixel format contains alpha only information */ #define DDPF_ALPHA 0x00000002l /* * The FourCC code is valid. */ #define DDPF_FOURCC 0x00000004l /* * The surface is 4-bit color indexed. */ #define DDPF_PALETTEINDEXED4 0x00000008l /* * The surface is indexed into a palette which stores indices * into the destination surface's 8-bit palette. */ #define DDPF_PALETTEINDEXEDTO8 0x00000010l /* * The surface is 8-bit color indexed. */ #define DDPF_PALETTEINDEXED8 0x00000020l /* * The RGB data in the pixel format structure is valid. */ #define DDPF_RGB 0x00000040l /* * The surface will accept pixel data in the format specified * and compress it during the write. */ #define DDPF_COMPRESSED 0x00000080l /* * The surface will accept RGB data and translate it during * the write to YUV data. The format of the data to be written * will be contained in the pixel format structure. The DDPF_RGB * flag will be set. */ #define DDPF_RGBTOYUV 0x00000100l /* * pixel format is YUV - YUV data in pixel format struct is valid */ #define DDPF_YUV 0x00000200l /* * pixel format is a z buffer only surface */ #define DDPF_ZBUFFER 0x00000400l /* * The surface is 1-bit color indexed. */ #define DDPF_PALETTEINDEXED1 0x00000800l /* * The surface is 2-bit color indexed. */ #define DDPF_PALETTEINDEXED2 0x00001000l /* * The surface contains Z information in the pixels */ #define DDPF_ZPIXELS 0x00002000l /* * The surface contains stencil information along with Z */ #define DDPF_STENCILBUFFER 0x00004000l /* * Premultiplied alpha format -- the color components have been * premultiplied by the alpha component. */ #define DDPF_ALPHAPREMULT 0x00008000l /* * Luminance data in the pixel format is valid. * Use this flag for luminance-only or luminance+alpha surfaces, * the bit depth is then ddpf.dwLuminanceBitCount. */ #define DDPF_LUMINANCE 0x00020000l /* * Luminance data in the pixel format is valid. * Use this flag when hanging luminance off bumpmap surfaces, * the bit mask for the luminance portion of the pixel is then * ddpf.dwBumpLuminanceBitMask */ #define DDPF_BUMPLUMINANCE 0x00040000l /* * Bump map dUdV data in the pixel format is valid. */ #define DDPF_BUMPDUDV 0x00080000l /*=========================================================================== * * * DIRECTDRAW CALLBACK FLAGS * * *==========================================================================*/ /**************************************************************************** * * DIRECTDRAW ENUMSURFACES FLAGS * ****************************************************************************/ /* * Enumerate all of the surfaces that meet the search criterion. */ #define DDENUMSURFACES_ALL 0x00000001l /* * A search hit is a surface that matches the surface description. */ #define DDENUMSURFACES_MATCH 0x00000002l /* * A search hit is a surface that does not match the surface description. */ #define DDENUMSURFACES_NOMATCH 0x00000004l /* * Enumerate the first surface that can be created which meets the search criterion. */ #define DDENUMSURFACES_CANBECREATED 0x00000008l /* * Enumerate the surfaces that already exist that meet the search criterion. */ #define DDENUMSURFACES_DOESEXIST 0x00000010l /**************************************************************************** * * DIRECTDRAW SETDISPLAYMODE FLAGS * ****************************************************************************/ /* * The desired mode is a standard VGA mode */ #define DDSDM_STANDARDVGAMODE 0x00000001l /**************************************************************************** * * DIRECTDRAW ENUMDISPLAYMODES FLAGS * ****************************************************************************/ /* * Enumerate Modes with different refresh rates. EnumDisplayModes guarantees * that a particular mode will be enumerated only once. This flag specifies whether * the refresh rate is taken into account when determining if a mode is unique. */ #define DDEDM_REFRESHRATES 0x00000001l /* * Enumerate VGA modes. Specify this flag if you wish to enumerate supported VGA * modes such as mode 0x13 in addition to the usual ModeX modes (which are always * enumerated if the application has previously called SetCooperativeLevel with the * DDSCL_ALLOWMODEX flag set). */ #define DDEDM_STANDARDVGAMODES 0x00000002L /**************************************************************************** * * DIRECTDRAW SETCOOPERATIVELEVEL FLAGS * ****************************************************************************/ /* * Exclusive mode owner will be responsible for the entire primary surface. * GDI can be ignored. used with DD */ #define DDSCL_FULLSCREEN 0x00000001l /* * allow CTRL_ALT_DEL to work while in fullscreen exclusive mode */ #define DDSCL_ALLOWREBOOT 0x00000002l /* * prevents DDRAW from modifying the application window. * prevents DDRAW from minimize/restore the application window on activation. */ #define DDSCL_NOWINDOWCHANGES 0x00000004l /* * app wants to work as a regular Windows application */ #define DDSCL_NORMAL 0x00000008l /* * app wants exclusive access */ #define DDSCL_EXCLUSIVE 0x00000010l /* * app can deal with non-windows display modes */ #define DDSCL_ALLOWMODEX 0x00000040l /* * this window will receive the focus messages */ #define DDSCL_SETFOCUSWINDOW 0x00000080l /* * this window is associated with the DDRAW object and will * cover the screen in fullscreen mode */ #define DDSCL_SETDEVICEWINDOW 0x00000100l /* * app wants DDRAW to create a window to be associated with the * DDRAW object */ #define DDSCL_CREATEDEVICEWINDOW 0x00000200l /* * App explicitly asks DDRAW/D3D to be multithread safe. This makes D3D * take the global crtisec more frequently. */ #define DDSCL_MULTITHREADED 0x00000400l /* * App specifies that it would like to keep the FPU set up for optimal Direct3D * performance (single precision and exceptions disabled) so Direct3D * does not need to explicitly set the FPU each time. This is assumed by * default in DirectX 7. See also DDSCL_FPUPRESERVE */ #define DDSCL_FPUSETUP 0x00000800l /* * App specifies that it needs either double precision FPU or FPU exceptions * enabled. This makes Direct3D explicitly set the FPU state eah time it is * called. Setting the flag will reduce Direct3D performance. The flag is * assumed by default in DirectX 6 and earlier. See also DDSCL_FPUSETUP */ #define DDSCL_FPUPRESERVE 0x00001000l /**************************************************************************** * * DIRECTDRAW BLT FLAGS * ****************************************************************************/ /* * Use the alpha information in the pixel format or the alpha channel surface * attached to the destination surface as the alpha channel for this blt. */ #define DDBLT_ALPHADEST 0x00000001l /* * Use the dwConstAlphaDest field in the DDBLTFX structure as the alpha channel * for the destination surface for this blt. */ #define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002l /* * The NEG suffix indicates that the destination surface becomes more * transparent as the alpha value increases. (0 is opaque) */ #define DDBLT_ALPHADESTNEG 0x00000004l /* * Use the lpDDSAlphaDest field in the DDBLTFX structure as the alpha * channel for the destination for this blt. */ #define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008l /* * Use the dwAlphaEdgeBlend field in the DDBLTFX structure as the alpha channel * for the edges of the image that border the color key colors. */ #define DDBLT_ALPHAEDGEBLEND 0x00000010l /* * Use the alpha information in the pixel format or the alpha channel surface * attached to the source surface as the alpha channel for this blt. */ #define DDBLT_ALPHASRC 0x00000020l /* * Use the dwConstAlphaSrc field in the DDBLTFX structure as the alpha channel * for the source for this blt. */ #define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040l /* * The NEG suffix indicates that the source surface becomes more transparent * as the alpha value increases. (0 is opaque) */ #define DDBLT_ALPHASRCNEG 0x00000080l /* * Use the lpDDSAlphaSrc field in the DDBLTFX structure as the alpha channel * for the source for this blt. */ #define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100l /* * Do this blt asynchronously through the FIFO in the order received. If * there is no room in the hardware FIFO fail the call. */ #define DDBLT_ASYNC 0x00000200l /* * Uses the dwFillColor field in the DDBLTFX structure as the RGB color * to fill the destination rectangle on the destination surface with. */ #define DDBLT_COLORFILL 0x00000400l /* * Uses the dwDDFX field in the DDBLTFX structure to specify the effects * to use for the blt. */ #define DDBLT_DDFX 0x00000800l /* * Uses the dwDDROPS field in the DDBLTFX structure to specify the ROPS * that are not part of the Win32 API. */ #define DDBLT_DDROPS 0x00001000l /* * Use the color key associated with the destination surface. */ #define DDBLT_KEYDEST 0x00002000l /* * Use the dckDestColorkey field in the DDBLTFX structure as the color key * for the destination surface. */ #define DDBLT_KEYDESTOVERRIDE 0x00004000l /* * Use the color key associated with the source surface. */ #define DDBLT_KEYSRC 0x00008000l /* * Use the dckSrcColorkey field in the DDBLTFX structure as the color key * for the source surface. */ #define DDBLT_KEYSRCOVERRIDE 0x00010000l /* * Use the dwROP field in the DDBLTFX structure for the raster operation * for this blt. These ROPs are the same as the ones defined in the Win32 API. */ #define DDBLT_ROP 0x00020000l /* * Use the dwRotationAngle field in the DDBLTFX structure as the angle * (specified in 1/100th of a degree) to rotate the surface. */ #define DDBLT_ROTATIONANGLE 0x00040000l /* * Z-buffered blt using the z-buffers attached to the source and destination * surfaces and the dwZBufferOpCode field in the DDBLTFX structure as the * z-buffer opcode. */ #define DDBLT_ZBUFFER 0x00080000l /* * Z-buffered blt using the dwConstDest Zfield and the dwZBufferOpCode field * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively * for the destination. */ #define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000l /* * Z-buffered blt using the lpDDSDestZBuffer field and the dwZBufferOpCode * field in the DDBLTFX structure as the z-buffer and z-buffer opcode * respectively for the destination. */ #define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000l /* * Z-buffered blt using the dwConstSrcZ field and the dwZBufferOpCode field * in the DDBLTFX structure as the z-buffer and z-buffer opcode respectively * for the source. */ #define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000l /* * Z-buffered blt using the lpDDSSrcZBuffer field and the dwZBufferOpCode * field in the DDBLTFX structure as the z-buffer and z-buffer opcode * respectively for the source. */ #define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000l /* * wait until the device is ready to handle the blt * this will cause blt to not return DDERR_WASSTILLDRAWING */ #define DDBLT_WAIT 0x01000000l /* * Uses the dwFillDepth field in the DDBLTFX structure as the depth value * to fill the destination rectangle on the destination Z-buffer surface * with. */ #define DDBLT_DEPTHFILL 0x02000000l /* * Return immediately (with DDERR_WASSTILLDRAWING) if the device is not * ready to schedule the blt at the time Blt() is called. */ #define DDBLT_DONOTWAIT 0x08000000l /* * These flags indicate a presentation blt (i.e. a blt * that moves surface contents from an offscreen back buffer to the primary * surface). The driver is not allowed to "queue" more than three such blts. * The "end" of the presentation blt is indicated, since the * blt may be clipped, in which case the runtime will call the driver with * several blts. All blts (even if not clipped) are tagged with DDBLT_PRESENTATION * and the last (even if not clipped) additionally with DDBLT_LAST_PRESENTATION. * Thus the true rule is that the driver must not schedule a DDBLT_PRESENTATION * blt if there are 3 or more DDBLT_PRESENTLAST blts in the hardware pipe. * If there are such blts in the pipe, the driver should return DDERR_WASSTILLDRAWING * until the oldest queued DDBLT_LAST_PRESENTATION blts has been retired (i.e. the * pixels have been actually written to the primary surface). Once the oldest blt * has been retired, the driver is free to schedule the current blt. * The goal is to provide a mechanism whereby the device's hardware queue never * gets more than 3 frames ahead of the frames being generated by the application. * When excessive queueing occurs, applications become unusable because the application * visibly lags user input, and such problems make windowed interactive applications impossible. * Some drivers may not have sufficient knowledge of their hardware's FIFO to know * when a certain blt has been retired. Such drivers should code cautiously, and * simply not allow any frames to be queued at all. DDBLT_LAST_PRESENTATION should cause * such drivers to return DDERR_WASSTILLDRAWING until the accelerator is completely * finished- exactly as if the application had called Lock on the source surface * before calling Blt. * In other words, the driver is allowed and encouraged to * generate as much latency as it can, but never more than 3 frames worth. * Implementation detail: Drivers should count blts against the SOURCE surface, not * against the primary surface. This enables multiple parallel windowed application * to function more optimally. * This flag is passed only to DX8 or higher drivers. * * APPLICATIONS DO NOT SET THESE FLAGS. THEY ARE SET BY THE DIRECTDRAW RUNTIME. * */ #define DDBLT_PRESENTATION 0x10000000l #define DDBLT_LAST_PRESENTATION 0x20000000l /* * If DDBLT_EXTENDED_FLAGS is set, then the driver should re-interpret * other flags according to the definitions that follow. * For example, bit 0 (0x00000001L) means DDBLT_ALPHADEST, unless * DDBLT_EXTENDED_FLAGS is also set, in which case bit 0 means * DDBLT_EXTENDED_LINEAR_CONTENT. * Only DirectX9 and higher drivers will be given extended blt flags. * Only flags explicitly mentioned here should be re-interpreted. * All other flags retain their original meanings. * * List of re-interpreted flags: * * Bit Hex value New meaning old meaning * --------------------------------------------------------------- * 2 0x00000004 DDBLT_EXTENDED_LINEAR_CONTENT DDBLT_ALPHADESTNEG * 4 0x00000010 DDBLT_EXTENDED_PRESENTATION_STRETCHFACTOR DDBLT_ALPHAEDGEBLEND * * * NOTE: APPLICATIONS SHOULD NOT SET THIS FLAG. THIS FLAG IS INTENDED * FOR USE BY THE DIRECT3D RUNTIME. */ #define DDBLT_EXTENDED_FLAGS 0x40000000l /* * EXTENDED FLAG. SEE DEFINITION OF DDBLT_EXTENDED_FLAGS. * This flag indidcates that the source surface contains content in a * linear color space. The driver may perform gamma correction to the * desktop color space (i.e. sRGB, gamma 2.2) as part of this blt. * If the device can perform such a conversion as part of the copy, * the driver should also set D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION * * NOTE: APPLICATIONS SHOULD NOT SET THIS FLAG. THIS FLAG IS INTENDED * FOR USE BY THE DIRECT3D RUNTIME. Use IDirect3DSwapChain9::Present * and specify D3DPRESENT_LINEAR_CONTENT in order to use this functionality. */ #define DDBLT_EXTENDED_LINEAR_CONTENT 0x00000004l /**************************************************************************** * * BLTFAST FLAGS * ****************************************************************************/ #define DDBLTFAST_NOCOLORKEY 0x00000000 #define DDBLTFAST_SRCCOLORKEY 0x00000001 #define DDBLTFAST_DESTCOLORKEY 0x00000002 #define DDBLTFAST_WAIT 0x00000010 #define DDBLTFAST_DONOTWAIT 0x00000020 /**************************************************************************** * * FLIP FLAGS * ****************************************************************************/ #define DDFLIP_WAIT 0x00000001L /* * Indicates that the target surface contains the even field of video data. * This flag is only valid with an overlay surface. */ #define DDFLIP_EVEN 0x00000002L /* * Indicates that the target surface contains the odd field of video data. * This flag is only valid with an overlay surface. */ #define DDFLIP_ODD 0x00000004L /* * Causes DirectDraw to perform the physical flip immediately and return * to the application. Typically, what was the front buffer but is now the back * buffer will still be visible (depending on timing) until the next vertical * retrace. Subsequent operations involving the two flipped surfaces will * not check to see if the physical flip has finished (i.e. will not return * DDERR_WASSTILLDRAWING for that reason (but may for other reasons)). * This allows an application to perform Flips at a higher frequency than the * monitor refresh rate, but may introduce visible artifacts. * Only effective if DDCAPS2_FLIPNOVSYNC is set. If that bit is not set, * DDFLIP_NOVSYNC has no effect. */ #define DDFLIP_NOVSYNC 0x00000008L /* * Flip Interval Flags. These flags indicate how many vertical retraces to wait between * each flip. The default is one. DirectDraw will return DDERR_WASSTILLDRAWING for each * surface involved in the flip until the specified number of vertical retraces has * ocurred. Only effective if DDCAPS2_FLIPINTERVAL is set. If that bit is not set, * DDFLIP_INTERVALn has no effect. */ /* * DirectDraw will flip on every other vertical sync */ #define DDFLIP_INTERVAL2 0x02000000L /* * DirectDraw will flip on every third vertical sync */ #define DDFLIP_INTERVAL3 0x03000000L /* * DirectDraw will flip on every fourth vertical sync */ #define DDFLIP_INTERVAL4 0x04000000L /* * DirectDraw will flip and display a main stereo surface */ #define DDFLIP_STEREO 0x00000010L /* * On IDirectDrawSurface7 and higher interfaces, the default is DDFLIP_WAIT. If you wish * to override the default and use time when the accelerator is busy (as denoted by * the DDERR_WASSTILLDRAWING return code) then use DDFLIP_DONOTWAIT. */ #define DDFLIP_DONOTWAIT 0x00000020L /**************************************************************************** * * DIRECTDRAW SURFACE OVERLAY FLAGS * ****************************************************************************/ /* * Use the alpha information in the pixel format or the alpha channel surface * attached to the destination surface as the alpha channel for the * destination overlay. */ #define DDOVER_ALPHADEST 0x00000001l /* * Use the dwConstAlphaDest field in the DDOVERLAYFX structure as the * destination alpha channel for this overlay. */ #define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002l /* * The NEG suffix indicates that the destination surface becomes more * transparent as the alpha value increases. */ #define DDOVER_ALPHADESTNEG 0x00000004l /* * Use the lpDDSAlphaDest field in the DDOVERLAYFX structure as the alpha * channel destination for this overlay. */ #define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008l /* * Use the dwAlphaEdgeBlend field in the DDOVERLAYFX structure as the alpha * channel for the edges of the image that border the color key colors. */ #define DDOVER_ALPHAEDGEBLEND 0x00000010l /* * Use the alpha information in the pixel format or the alpha channel surface * attached to the source surface as the source alpha channel for this overlay. */ #define DDOVER_ALPHASRC 0x00000020l /* * Use the dwConstAlphaSrc field in the DDOVERLAYFX structure as the source * alpha channel for this overlay. */ #define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040l /* * The NEG suffix indicates that the source surface becomes more transparent * as the alpha value increases. */ #define DDOVER_ALPHASRCNEG 0x00000080l /* * Use the lpDDSAlphaSrc field in the DDOVERLAYFX structure as the alpha channel * source for this overlay. */ #define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100l /* * Turn this overlay off. */ #define DDOVER_HIDE 0x00000200l /* * Use the color key associated with the destination surface. */ #define DDOVER_KEYDEST 0x00000400l /* * Use the dckDestColorkey field in the DDOVERLAYFX structure as the color key * for the destination surface */ #define DDOVER_KEYDESTOVERRIDE 0x00000800l /* * Use the color key associated with the source surface. */ #define DDOVER_KEYSRC 0x00001000l /* * Use the dckSrcColorkey field in the DDOVERLAYFX structure as the color key * for the source surface. */ #define DDOVER_KEYSRCOVERRIDE 0x00002000l /* * Turn this overlay on. */ #define DDOVER_SHOW 0x00004000l /* * Add a dirty rect to an emulated overlayed surface. */ #define DDOVER_ADDDIRTYRECT 0x00008000l /* * Redraw all dirty rects on an emulated overlayed surface. */ #define DDOVER_REFRESHDIRTYRECTS 0x00010000l /* * Redraw the entire surface on an emulated overlayed surface. */ #define DDOVER_REFRESHALL 0x00020000l /* * Use the overlay FX flags to define special overlay FX */ #define DDOVER_DDFX 0x00080000l /* * Autoflip the overlay when ever the video port autoflips */ #define DDOVER_AUTOFLIP 0x00100000l /* * Display each field of video port data individually without * causing any jittery artifacts */ #define DDOVER_BOB 0x00200000l /* * Indicates that bob/weave decisions should not be overridden by other * interfaces. */ #define DDOVER_OVERRIDEBOBWEAVE 0x00400000l /* * Indicates that the surface memory is composed of interleaved fields. */ #define DDOVER_INTERLEAVED 0x00800000l /* * Indicates that bob will be performed using hardware rather than * software or emulated. */ #define DDOVER_BOBHARDWARE 0x01000000l /* * Indicates that overlay FX structure contains valid ARGB scaling factors. */ #define DDOVER_ARGBSCALEFACTORS 0x02000000l /* * Indicates that ARGB scaling factors can be degraded to fit driver capabilities. */ #define DDOVER_DEGRADEARGBSCALING 0x04000000l /**************************************************************************** * * DIRECTDRAWSURFACE LOCK FLAGS * ****************************************************************************/ /* * The default. Set to indicate that Lock should return a valid memory pointer * to the top of the specified rectangle. If no rectangle is specified then a * pointer to the top of the surface is returned. */ #define DDLOCK_SURFACEMEMORYPTR 0x00000000L // default /* * Set to indicate that Lock should wait until it can obtain a valid memory * pointer before returning. If this bit is set, Lock will never return * DDERR_WASSTILLDRAWING. */ #define DDLOCK_WAIT 0x00000001L /* * Set if an event handle is being passed to Lock. Lock will trigger the event * when it can return the surface memory pointer requested. */ #define DDLOCK_EVENT 0x00000002L /* * Indicates that the surface being locked will only be read from. */ #define DDLOCK_READONLY 0x00000010L /* * Indicates that the surface being locked will only be written to */ #define DDLOCK_WRITEONLY 0x00000020L /* * Indicates that a system wide lock should not be taken when this surface * is locked. This has several advantages (cursor responsiveness, ability * to call more Windows functions, easier debugging) when locking video * memory surfaces. However, an application specifying this flag must * comply with a number of conditions documented in the help file. * Furthermore, this flag cannot be specified when locking the primary. */ #define DDLOCK_NOSYSLOCK 0x00000800L /* * Used only with Direct3D Vertex Buffer Locks. Indicates that no vertices * that were referred to in Draw*PrimtiveVB calls since the start of the * frame (or the last lock without this flag) will be modified during the * lock. This can be useful when one is only appending data to the vertex * buffer */ #define DDLOCK_NOOVERWRITE 0x00001000L /* * Indicates that no assumptions will be made about the contents of the * surface or vertex buffer during this lock. * This enables two things: * - Direct3D or the driver may provide an alternative memory * area as the vertex buffer. This is useful when one plans to clear the * contents of the vertex buffer and fill in new data. * - Drivers sometimes store surface data in a re-ordered format. * When the application locks the surface, the driver is forced to un-re-order * the surface data before allowing the application to see the surface contents. * This flag is a hint to the driver that it can skip the un-re-ordering process * since the application plans to overwrite every single pixel in the surface * or locked rectangle (and so erase any un-re-ordered pixels anyway). * Applications should always set this flag when they intend to overwrite the entire * surface or locked rectangle. */ #define DDLOCK_DISCARDCONTENTS 0x00002000L /* * DDLOCK_OKTOSWAP is an older, less informative name for DDLOCK_DISCARDCONTENTS */ #define DDLOCK_OKTOSWAP 0x00002000L /* * On IDirectDrawSurface7 and higher interfaces, the default is DDLOCK_WAIT. If you wish * to override the default and use time when the accelerator is busy (as denoted by * the DDERR_WASSTILLDRAWING return code) then use DDLOCK_DONOTWAIT. */ #define DDLOCK_DONOTWAIT 0x00004000L /* * This indicates volume texture lock with front and back specified. */ #define DDLOCK_HASVOLUMETEXTUREBOXRECT 0x00008000L /* * This indicates that the driver should not update dirty rect information for this lock. */ #define DDLOCK_NODIRTYUPDATE 0x00010000L /**************************************************************************** * * DIRECTDRAWSURFACE PAGELOCK FLAGS * ****************************************************************************/ /* * No flags defined at present */ /**************************************************************************** * * DIRECTDRAWSURFACE PAGEUNLOCK FLAGS * ****************************************************************************/ /* * No flags defined at present */ /**************************************************************************** * * DIRECTDRAWSURFACE BLT FX FLAGS * ****************************************************************************/ /* * If stretching, use arithmetic stretching along the Y axis for this blt. */ #define DDBLTFX_ARITHSTRETCHY 0x00000001l /* * Do this blt mirroring the surface left to right. Spin the * surface around its y-axis. */ #define DDBLTFX_MIRRORLEFTRIGHT 0x00000002l /* * Do this blt mirroring the surface up and down. Spin the surface * around its x-axis. */ #define DDBLTFX_MIRRORUPDOWN 0x00000004l /* * Schedule this blt to avoid tearing. */ #define DDBLTFX_NOTEARING 0x00000008l /* * Do this blt rotating the surface one hundred and eighty degrees. */ #define DDBLTFX_ROTATE180 0x00000010l /* * Do this blt rotating the surface two hundred and seventy degrees. */ #define DDBLTFX_ROTATE270 0x00000020l /* * Do this blt rotating the surface ninety degrees. */ #define DDBLTFX_ROTATE90 0x00000040l /* * Do this z blt using dwZBufferLow and dwZBufferHigh as range values * specified to limit the bits copied from the source surface. */ #define DDBLTFX_ZBUFFERRANGE 0x00000080l /* * Do this z blt adding the dwZBufferBaseDest to each of the sources z values * before comparing it with the desting z values. */ #define DDBLTFX_ZBUFFERBASEDEST 0x00000100l /**************************************************************************** * * DIRECTDRAWSURFACE OVERLAY FX FLAGS * ****************************************************************************/ /* * If stretching, use arithmetic stretching along the Y axis for this overlay. */ #define DDOVERFX_ARITHSTRETCHY 0x00000001l /* * Mirror the overlay across the vertical axis */ #define DDOVERFX_MIRRORLEFTRIGHT 0x00000002l /* * Mirror the overlay across the horizontal axis */ #define DDOVERFX_MIRRORUPDOWN 0x00000004l /* * Deinterlace the overlay, if possible */ #define DDOVERFX_DEINTERLACE 0x00000008l /**************************************************************************** * * DIRECTDRAW WAITFORVERTICALBLANK FLAGS * ****************************************************************************/ /* * return when the vertical blank interval begins */ #define DDWAITVB_BLOCKBEGIN 0x00000001l /* * set up an event to trigger when the vertical blank begins */ #define DDWAITVB_BLOCKBEGINEVENT 0x00000002l /* * return when the vertical blank interval ends and display begins */ #define DDWAITVB_BLOCKEND 0x00000004l /**************************************************************************** * * DIRECTDRAW GETFLIPSTATUS FLAGS * ****************************************************************************/ /* * is it OK to flip now? */ #define DDGFS_CANFLIP 0x00000001l /* * is the last flip finished? */ #define DDGFS_ISFLIPDONE 0x00000002l /**************************************************************************** * * DIRECTDRAW GETBLTSTATUS FLAGS * ****************************************************************************/ /* * is it OK to blt now? */ #define DDGBS_CANBLT 0x00000001l /* * is the blt to the surface finished? */ #define DDGBS_ISBLTDONE 0x00000002l /**************************************************************************** * * DIRECTDRAW ENUMOVERLAYZORDER FLAGS * ****************************************************************************/ /* * Enumerate overlays back to front. */ #define DDENUMOVERLAYZ_BACKTOFRONT 0x00000000l /* * Enumerate overlays front to back */ #define DDENUMOVERLAYZ_FRONTTOBACK 0x00000001l /**************************************************************************** * * DIRECTDRAW UPDATEOVERLAYZORDER FLAGS * ****************************************************************************/ /* * Send overlay to front */ #define DDOVERZ_SENDTOFRONT 0x00000000l /* * Send overlay to back */ #define DDOVERZ_SENDTOBACK 0x00000001l /* * Move Overlay forward */ #define DDOVERZ_MOVEFORWARD 0x00000002l /* * Move Overlay backward */ #define DDOVERZ_MOVEBACKWARD 0x00000003l /* * Move Overlay in front of relative surface */ #define DDOVERZ_INSERTINFRONTOF 0x00000004l /* * Move Overlay in back of relative surface */ #define DDOVERZ_INSERTINBACKOF 0x00000005l /**************************************************************************** * * DIRECTDRAW SETGAMMARAMP FLAGS * ****************************************************************************/ /* * Request calibrator to adjust the gamma ramp according to the physical * properties of the display so that the result should appear identical * on all systems. */ #define DDSGR_CALIBRATE 0x00000001L /**************************************************************************** * * DIRECTDRAW STARTMODETEST FLAGS * ****************************************************************************/ /* * Indicates that the mode being tested has passed */ #define DDSMT_ISTESTREQUIRED 0x00000001L /**************************************************************************** * * DIRECTDRAW EVALUATEMODE FLAGS * ****************************************************************************/ /* * Indicates that the mode being tested has passed */ #define DDEM_MODEPASSED 0x00000001L /* * Indicates that the mode being tested has failed */ #define DDEM_MODEFAILED 0x00000002L /*=========================================================================== * * * DIRECTDRAW RETURN CODES * * The return values from DirectDraw Commands and Surface that return an HRESULT * are codes from DirectDraw concerning the results of the action * requested by DirectDraw. * *==========================================================================*/ /* * Status is OK * * Issued by: DirectDraw Commands and all callbacks */ #define DD_OK S_OK #define DD_FALSE S_FALSE /**************************************************************************** * * DIRECTDRAW ENUMCALLBACK RETURN VALUES * * EnumCallback returns are used to control the flow of the DIRECTDRAW and * DIRECTDRAWSURFACE object enumerations. They can only be returned by * enumeration callback routines. * ****************************************************************************/ /* * stop the enumeration */ #define DDENUMRET_CANCEL 0 /* * continue the enumeration */ #define DDENUMRET_OK 1 /**************************************************************************** * * DIRECTDRAW ERRORS * * Errors are represented by negative values and cannot be combined. * ****************************************************************************/ /* * This object is already initialized */ #define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 ) /* * This surface can not be attached to the requested surface. */ #define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 ) /* * This surface can not be detached from the requested surface. */ #define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 ) /* * Support is currently not available. */ #define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 ) /* * An exception was encountered while performing the requested operation */ #define DDERR_EXCEPTION MAKE_DDHRESULT( 55 ) /* * Generic failure. */ #define DDERR_GENERIC E_FAIL /* * Height of rectangle provided is not a multiple of reqd alignment */ #define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 ) /* * Unable to match primary surface creation request with existing * primary surface. */ #define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 ) /* * One or more of the caps bits passed to the callback are incorrect. */ #define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 ) /* * DirectDraw does not support provided Cliplist. */ #define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 ) /* * DirectDraw does not support the requested mode */ #define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 ) /* * DirectDraw received a pointer that was an invalid DIRECTDRAW object. */ #define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 ) /* * One or more of the parameters passed to the callback function are * incorrect. */ #define DDERR_INVALIDPARAMS E_INVALIDARG /* * pixel format was invalid as specified */ #define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 ) /* * Rectangle provided was invalid. */ #define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 ) /* * Operation could not be carried out because one or more surfaces are locked */ #define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 ) /* * There is no 3D present. */ #define DDERR_NO3D MAKE_DDHRESULT( 170 ) /* * Operation could not be carried out because there is no alpha accleration * hardware present or available. */ #define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 ) /* * Operation could not be carried out because there is no stereo * hardware present or available. */ #define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT( 181 ) /* * Operation could not be carried out because there is no hardware * present which supports stereo surfaces */ #define DDERR_NOSURFACELEFT MAKE_DDHRESULT( 182 ) /* * no clip list available */ #define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 ) /* * Operation could not be carried out because there is no color conversion * hardware present or available. */ #define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 ) /* * Create function called without DirectDraw object method SetCooperativeLevel * being called. */ #define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 ) /* * Surface doesn't currently have a color key */ #define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 ) /* * Operation could not be carried out because there is no hardware support * of the dest color key. */ #define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 ) /* * No DirectDraw support possible with current display driver */ #define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 ) /* * Operation requires the application to have exclusive mode but the * application does not have exclusive mode. */ #define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 ) /* * Flipping visible surfaces is not supported. */ #define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 ) /* * There is no GDI present. */ #define DDERR_NOGDI MAKE_DDHRESULT( 240 ) /* * Operation could not be carried out because there is no hardware present * or available. */ #define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 ) /* * Requested item was not found */ #define DDERR_NOTFOUND MAKE_DDHRESULT( 255 ) /* * Operation could not be carried out because there is no overlay hardware * present or available. */ #define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 ) /* * Operation could not be carried out because the source and destination * rectangles are on the same surface and overlap each other. */ #define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT( 270 ) /* * Operation could not be carried out because there is no appropriate raster * op hardware present or available. */ #define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 ) /* * Operation could not be carried out because there is no rotation hardware * present or available. */ #define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 ) /* * Operation could not be carried out because there is no hardware support * for stretching */ #define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 ) /* * DirectDrawSurface is not in 4 bit color palette and the requested operation * requires 4 bit color palette. */ #define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 ) /* * DirectDrawSurface is not in 4 bit color index palette and the requested * operation requires 4 bit color index palette. */ #define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 ) /* * DirectDraw Surface is not in 8 bit color mode and the requested operation * requires 8 bit color. */ #define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 ) /* * Operation could not be carried out because there is no texture mapping * hardware present or available. */ #define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 ) /* * Operation could not be carried out because there is no hardware support * for vertical blank synchronized operations. */ #define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 ) /* * Operation could not be carried out because there is no hardware support * for zbuffer blting. */ #define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 ) /* * Overlay surfaces could not be z layered based on their BltOrder because * the hardware does not support z layering of overlays. */ #define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 ) /* * The hardware needed for the requested operation has already been * allocated. */ #define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 ) /* * DirectDraw does not have enough memory to perform the operation. */ #define DDERR_OUTOFMEMORY E_OUTOFMEMORY /* * DirectDraw does not have enough memory to perform the operation. */ #define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 ) /* * hardware does not support clipped overlays */ #define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 ) /* * Can only have ony color key active at one time for overlays */ #define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 ) /* * Access to this palette is being refused because the palette is already * locked by another thread. */ #define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 ) /* * No src color key specified for this operation. */ #define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 ) /* * This surface is already attached to the surface it is being attached to. */ #define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 ) /* * This surface is already a dependency of the surface it is being made a * dependency of. */ #define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 ) /* * Access to this surface is being refused because the surface is already * locked by another thread. */ #define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 ) /* * Access to this surface is being refused because no driver exists * which can supply a pointer to the surface. * This is most likely to happen when attempting to lock the primary * surface when no DCI provider is present. * Will also happen on attempts to lock an optimized surface. */ #define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 ) /* * Access to Surface refused because Surface is obscured. */ #define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 ) /* * Access to this surface is being refused because the surface is gone. * The DIRECTDRAWSURFACE object representing this surface should * have Restore called on it. */ #define DDERR_SURFACELOST MAKE_DDHRESULT( 450 ) /* * The requested surface is not attached. */ #define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 ) /* * Height requested by DirectDraw is too large. */ #define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 ) /* * Size requested by DirectDraw is too large -- The individual height and * width are OK. */ #define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 ) /* * Width requested by DirectDraw is too large. */ #define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 ) /* * Action not supported. */ #define DDERR_UNSUPPORTED E_NOTIMPL /* * Pixel format requested is unsupported by DirectDraw */ #define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 ) /* * Bitmask in the pixel format requested is unsupported by DirectDraw */ #define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 ) /* * The specified stream contains invalid data */ #define DDERR_INVALIDSTREAM MAKE_DDHRESULT( 521 ) /* * vertical blank is in progress */ #define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 ) /* * Informs DirectDraw that the previous Blt which is transfering information * to or from this Surface is incomplete. */ #define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 ) /* * The specified surface type requires specification of the COMPLEX flag */ #define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT( 542 ) /* * Rectangle provided was not horizontally aligned on reqd. boundary */ #define DDERR_XALIGN MAKE_DDHRESULT( 560 ) /* * The GUID passed to DirectDrawCreate is not a valid DirectDraw driver * identifier. */ #define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 ) /* * A DirectDraw object representing this driver has already been created * for this process. */ #define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 ) /* * A hardware only DirectDraw object creation was attempted but the driver * did not support any hardware. */ #define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 ) /* * this process already has created a primary surface */ #define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 ) /* * software emulation not available. */ #define DDERR_NOEMULATION MAKE_DDHRESULT( 565 ) /* * region passed to Clipper::GetClipList is too small. */ #define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 ) /* * an attempt was made to set a clip list for a clipper objec that * is already monitoring an hwnd. */ #define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 ) /* * No clipper object attached to surface object */ #define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 ) /* * Clipper notification requires an HWND or * no HWND has previously been set as the CooperativeLevel HWND. */ #define DDERR_NOHWND MAKE_DDHRESULT( 569 ) /* * HWND used by DirectDraw CooperativeLevel has been subclassed, * this prevents DirectDraw from restoring state. */ #define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 ) /* * The CooperativeLevel HWND has already been set. * It can not be reset while the process has surfaces or palettes created. */ #define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 ) /* * No palette object attached to this surface. */ #define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 ) /* * No hardware support for 16 or 256 color palettes. */ #define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 ) /* * If a clipper object is attached to the source surface passed into a * BltFast call. */ #define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 ) /* * No blter. */ #define DDERR_NOBLTHW MAKE_DDHRESULT( 575 ) /* * No DirectDraw ROP hardware. */ #define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 ) /* * returned when GetOverlayPosition is called on a hidden overlay */ #define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 ) /* * returned when GetOverlayPosition is called on a overlay that UpdateOverlay * has never been called on to establish a destionation. */ #define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 ) /* * returned when the position of the overlay on the destionation is no longer * legal for that destionation. */ #define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 ) /* * returned when an overlay member is called for a non-overlay surface */ #define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 ) /* * An attempt was made to set the cooperative level when it was already * set to exclusive. */ #define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 ) /* * An attempt has been made to flip a surface that is not flippable. */ #define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 ) /* * Can't duplicate primary & 3D surfaces, or surfaces that are implicitly * created. */ #define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 ) /* * Surface was not locked. An attempt to unlock a surface that was not * locked at all, or by this process, has been attempted. */ #define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 ) /* * Windows can not create any more DCs, or a DC was requested for a paltte-indexed * surface when the surface had no palette AND the display mode was not palette-indexed * (in this case DirectDraw cannot select a proper palette into the DC) */ #define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 ) /* * No DC was ever created for this surface. */ #define DDERR_NODC MAKE_DDHRESULT( 586 ) /* * This surface can not be restored because it was created in a different * mode. */ #define DDERR_WRONGMODE MAKE_DDHRESULT( 587 ) /* * This surface can not be restored because it is an implicitly created * surface. */ #define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 ) /* * The surface being used is not a palette-based surface */ #define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 ) /* * The display is currently in an unsupported mode */ #define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 ) /* * Operation could not be carried out because there is no mip-map * texture mapping hardware present or available. */ #define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 ) /* * The requested action could not be performed because the surface was of * the wrong type. */ #define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 ) /* * Device does not support optimized surfaces, therefore no video memory optimized surfaces */ #define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 ) /* * Surface is an optimized surface, but has not yet been allocated any memory */ #define DDERR_NOTLOADED MAKE_DDHRESULT( 601 ) /* * Attempt was made to create or set a device window without first setting * the focus window */ #define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT( 602 ) /* * Attempt was made to set a palette on a mipmap sublevel */ #define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT( 603 ) /* * A DC has already been returned for this surface. Only one DC can be * retrieved per surface. */ #define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 ) /* * An attempt was made to allocate non-local video memory from a device * that does not support non-local video memory. */ #define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 ) /* * The attempt to page lock a surface failed. */ #define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 ) /* * The attempt to page unlock a surface failed. */ #define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 ) /* * An attempt was made to page unlock a surface with no outstanding page locks. */ #define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 ) /* * There is more data available than the specified buffer size could hold */ #define DDERR_MOREDATA MAKE_DDHRESULT( 690 ) /* * The data has expired and is therefore no longer valid. */ #define DDERR_EXPIRED MAKE_DDHRESULT( 691 ) /* * The mode test has finished executing. */ #define DDERR_TESTFINISHED MAKE_DDHRESULT( 692 ) /* * The mode test has switched to a new mode. */ #define DDERR_NEWMODE MAKE_DDHRESULT( 693 ) /* * D3D has not yet been initialized. */ #define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT( 694 ) /* * The video port is not active */ #define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 ) /* * The monitor does not have EDID data. */ #define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT( 696 ) /* * The driver does not enumerate display mode refresh rates. */ #define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT( 697 ) /* * Surfaces created by one direct draw device cannot be used directly by * another direct draw device. */ #define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 ) /* * An attempt was made to invoke an interface member of a DirectDraw object * created by CoCreateInstance() before it was initialized. */ #define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED /* Alpha bit depth constants */ #ifdef __cplusplus }; #endif #ifdef ENABLE_NAMELESS_UNION_PRAGMA #pragma warning(default:4201) #endif #endif //__DDRAW_INCLUDED__ ================================================ FILE: Project/SyserApp/Win32/SyserApp.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "..\..\WinWisp\Win32\WinWisp.vcproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\Win32\Wisp.vcproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SyserApp", "SyserApp.vcproj", "{98C7FDC7-1C34-44B6-991F-EF345437F3F2}" ProjectSection(ProjectDependencies) = postProject {142E5B2E-BB1F-42A2-B357-81F97F85F86E} = {142E5B2E-BB1F-42A2-B357-81F97F85F86E} {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F} = {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F} {094FA380-E96B-4CCB-8F40-D58F53823984} = {094FA380-E96B-4CCB-8F40-D58F53823984} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} = {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EXEAnalyzer", "..\..\EXEAnalyzer\Win32\EXEAnalyzer.vcproj", "{094FA380-E96B-4CCB-8F40-D58F53823984}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SerialNumber", "..\..\SerialNumber\Win32\SerialNumber.vcproj", "{1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.Build.0 = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.ActiveCfg = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.Build.0 = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.Build.0 = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.ActiveCfg = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.Build.0 = Trial|Win32 {98C7FDC7-1C34-44B6-991F-EF345437F3F2}.Debug|Win32.ActiveCfg = Debug|Win32 {98C7FDC7-1C34-44B6-991F-EF345437F3F2}.Debug|Win32.Build.0 = Debug|Win32 {98C7FDC7-1C34-44B6-991F-EF345437F3F2}.Release|Win32.ActiveCfg = Release|Win32 {98C7FDC7-1C34-44B6-991F-EF345437F3F2}.Release|Win32.Build.0 = Release|Win32 {98C7FDC7-1C34-44B6-991F-EF345437F3F2}.Trial|Win32.ActiveCfg = Trial|Win32 {98C7FDC7-1C34-44B6-991F-EF345437F3F2}.Trial|Win32.Build.0 = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.ActiveCfg = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Debug|Win32.Build.0 = Debug|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.ActiveCfg = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Release|Win32.Build.0 = Release|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.ActiveCfg = Trial|Win32 {094FA380-E96B-4CCB-8F40-D58F53823984}.Trial|Win32.Build.0 = Trial|Win32 {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}.Debug|Win32.ActiveCfg = Debug|Win32 {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}.Debug|Win32.Build.0 = Debug|Win32 {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}.Release|Win32.ActiveCfg = Release|Win32 {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}.Release|Win32.Build.0 = Release|Win32 {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}.Trial|Win32.ActiveCfg = Trial|Win32 {1863E65D-D3EC-4B4E-9B20-0FFB21063C5F}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SyserApp/Win32/SyserApp.vcproj ================================================ ================================================ FILE: Project/SyserApp/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SyserApp/incfile.txt ================================================ ================================================ FILE: Project/SyserApp/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SyserOption/Source/BootOptionForm.cpp ================================================ #include "StdAfx.h" #include "BootOptionForm.h" #include "SyserOptionApp.h" enum CBootOptionForm::WISP_FORM_ID { CMD_ID_BOOT_SYSTEM = WISP_ID_USER_START, CMD_ID_BOOT_AUTOMATIC, CMD_ID_BOOT_MANUAL }; WISP_FORM_RES_ITEM CBootOptionForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,200,300}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Boot Mode") }, { WISP_CTRL_STATIC_DIB, {70,30,32,32}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:2" }, { WISP_CTRL_STATIC_GROUP, {10,10,180,280}, WISP_ID_NULL, WISP_WS_NULL, NULL, }, { WISP_CTRL_RADIO_BOX, {70,110,100,20}, CMD_ID_BOOT_SYSTEM, WISP_CBS_NORMAL, WSTR("System"), NULL, }, { WISP_CTRL_RADIO_BOX, {70,160,100,20}, CMD_ID_BOOT_AUTOMATIC, WISP_CBS_NORMAL, WSTR("Automatic"), NULL, }, { WISP_CTRL_RADIO_BOX, {70,210,100,20}, CMD_ID_BOOT_MANUAL, WISP_CBS_NORMAL, WSTR("Manual"), NULL, }, { WISP_CTRL_BUTTON, {70,250,60,18}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CBootOptionForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CBootOptionForm) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END bool CBootOptionForm::OnFormCreate(IN WISP_MSG*pMsg) { m_pSystemBT = (CWispRadioBox*)GetFormItem(CMD_ID_BOOT_SYSTEM); m_pAutoBT = (CWispRadioBox*)GetFormItem(CMD_ID_BOOT_AUTOMATIC); m_pManualBT = (CWispRadioBox*)GetFormItem(CMD_ID_BOOT_MANUAL); m_BootType = -1; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //ȡ GetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\Start",&m_BootType,sizeof(int)); if(m_BootType<=0 || m_BootType>3) { m_BootType = 3; SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\Start",&m_BootType,REG_DWORD); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////// switch(m_BootType) { case 1: m_pSystemBT->Check(); break; case 2: m_pAutoBT->Check(); break; case 3: m_pManualBT->Check(); break; } m_OldBootType = m_BootType; return true; } bool CBootOptionForm::OnOK(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg != WISP_CMD_BT_UP) return true; if(m_pSystemBT->m_Style&WISP_WS_MARKED) m_BootType = 1; else if(m_pAutoBT->m_Style&WISP_WS_MARKED) m_BootType = 2; else if(m_pManualBT->m_Style&WISP_WS_MARKED) m_BootType = 3; else m_BootType = -1; if(m_OldBootType != m_BootType && m_BootType!=-1) { if(theApp.m_VersionInfo.dwMajorVersion>=6 && m_BootType<3) { ::MessageBox(theApp.m_hLocalWnd,"If you choose this boot type , you must close Vista Aero effect!","Warning",MB_OK); } if(m_BootType < 3 && SyserOption.iVideoDetectMode==SYSER_VDM_USER) { ::MessageBox(theApp.m_hLocalWnd,"Change Video Detect Mode to \"Auto\" to support this boot type","Warning",MB_OK); SyserOption.iVideoDetectMode = SYSER_VDM_AUTO; if(SaveSyserOption(theApp.m_szSyserCfgFN,&SyserOption,sizeof(SyserOption))==false) ::MessageBox(theApp.m_hLocalWnd,"Fail to save Syser.cfg !","Error",MB_OK); } SetRegValueEx("HKLM\\SYSTEM\\CurrentControlSet\\Services\\Syser\\Start",&m_BootType,REG_DWORD); } return true; } ================================================ FILE: Project/SyserOption/Source/BootOptionForm.h ================================================ #ifndef _BOOT_OPTION_FORM_H_ #define _BOOT_OPTION_FORM_H_ class CBootOptionForm : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK); CBootOptionForm(){m_pFormRes = m_FormRes;m_BootType = -1;} CWispRadioBox* m_pSystemBT; CWispRadioBox* m_pAutoBT; CWispRadioBox* m_pManualBT; int m_BootType; int m_OldBootType; }; #endif ================================================ FILE: Project/SyserOption/Source/BootTypePage.cpp ================================================ #include "StdAfx.h" #include "BootTypePage.h" WISP_FORM_RES_ITEM CBootTypePage::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,500,400}, WISP_ID_NULL, WISP_WS_NULL, }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CBootTypePage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) // WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) //WISP_MSG_CMD_MAP_BEGIN(CBootTypePage) //WISP_MSG_CMD_MAP_END CBootTypePage::CBootTypePage() { m_pFormRes = m_FormRes; } CBootTypePage::~CBootTypePage() { } bool CBootTypePage::OnFormCreate(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/SyserOption/Source/BootTypePage.h ================================================ #ifndef _BOOT_TYPE_PAGE_H_ #define _BOOT_TYPE_PAGE_H_ class CBootTypePage : public CWispForm { public: CBootTypePage(); ~CBootTypePage(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) public: static WISP_FORM_RES_ITEM m_FormRes[]; }; #endif ================================================ FILE: Project/SyserOption/Source/CmdEditPage.cpp ================================================ #include "StdAfx.h" #include "CmdEditPage.h" enum CCmdEditPage::WISP_FORM_ID { CMD_ID_VERSION_EDIT = WISP_ID_USER_START, }; WISP_FORM_RES_ITEM CCmdEditPage::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,500,380}, WISP_ID_NULL, WISP_WS_NULL, WSTR("About Syser") }, { WISP_CTRL_STATIC_GROUP, {5,5,300,350}, WISP_ID_NULL, WISP_WS_NULL, WSTR("File"), }, { WISP_CTRL_LIST, {330,25,100,80}, CMD_ID_OPTION_LIST, WISP_WS_THIN_BORDER|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE, }, { WISP_CTRL_EDIT, {17,25,275,315}, WISP_ID_NULL, WISP_ES_LEFT | WISP_WS_BORDER | WISP_ES_MULTILINE | WISP_ES_WANTRETURN, NULL, }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CCmdEditPage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) bool CCmdEditPage::OnFormCreate(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/SyserOption/Source/CmdEditPage.h ================================================ #ifndef _CMD_EDIT_PAGE_H_ #define _CMD_EDIT_PAGE_H_ class CCmdEditPage : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); CCmdEditPage(){m_pFormRes = m_FormRes;} }; #endif ================================================ FILE: Project/SyserOption/Source/ExportModulePage.cpp ================================================ #include "StdAfx.h" #include "SyserOptionApp.h" #include "ExportModulePage.h" enum CExportModulePage::WISP_FORM_ID { CMD_ID_EXPMOD_FILE_LIST = WISP_ID_USER_START, CMD_ID_STATIC_GROUP, CMD_ID_EXPMOD_ADD, CMD_ID_EXPMOD_REMOVE, CMD_ID_EXPMOD_APPLY, CMD_ID_EXPMOD_RELOAD, CMD_ID_EXPMOD_DEFAULT, }; WISP_FORM_RES_ITEM CExportModulePage::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,540,400}, WISP_ID_NULL, WISP_WS_NULL, }, { WISP_CTRL_STATIC_GROUP, {10,10,530,300}, CMD_ID_STATIC_GROUP, WISP_WS_NULL, WSTR("Load their export symbols after syser initialization."), }, { WISP_CTRL_LIST, {20,30,400,260}, CMD_ID_EXPMOD_FILE_LIST, WISP_WS_THIN_BORDER, }, { WISP_CTRL_BUTTON, {430,40,100,20}, CMD_ID_EXPMOD_ADD, WISP_BS_NORMAL, WSTR("Add"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,80,100,20}, CMD_ID_EXPMOD_REMOVE, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Remove"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,340,100,20}, CMD_ID_EXPMOD_APPLY, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Save"), NULL, NULL }, { WISP_CTRL_BUTTON, {10,340,100,20}, CMD_ID_EXPMOD_RELOAD, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Reload"), NULL, NULL }, { WISP_CTRL_BUTTON, {120,340,100,20}, CMD_ID_EXPMOD_DEFAULT, WISP_BS_NORMAL, WSTR("Default"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CExportModulePage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnResize) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CExportModulePage) WISP_MSG_CMD_MAP(CMD_ID_EXPMOD_FILE_LIST,OnFileListCommand) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CExportModulePage) WISP_MSG_EVENT_MAP(CMD_ID_EXPMOD_ADD,OnButtonAdd) WISP_MSG_EVENT_MAP(CMD_ID_EXPMOD_REMOVE,OnButtonRemove) WISP_MSG_EVENT_MAP(CMD_ID_EXPMOD_APPLY,OnButtonSave) WISP_MSG_EVENT_MAP(CMD_ID_EXPMOD_RELOAD,OnButtonReload) WISP_MSG_EVENT_MAP(CMD_ID_EXPMOD_DEFAULT,OnButtonDefault) WISP_MSG_EVENT_MAP_END CExportModulePage::CExportModulePage() { m_pFormRes = m_FormRes; GetSystemDirectory(m_ExpModFileName,MAX_FN_LEN); TStrCat(m_ExpModFileName,"\\drivers\\ModExSym.lst"); GetWindowsDirectoryW(m_szSystemRootDir,MAX_FN_LEN); } bool CExportModulePage::OnFormCreate(IN WISP_MSG*pMsg) { m_pGroup = (CWispStaticGroup*) GetFormItem(CMD_ID_STATIC_GROUP); m_pFileList = (CWispList*) GetFormItem(CMD_ID_EXPMOD_FILE_LIST); m_pSaveBT = (CWispButton*) GetFormItem(CMD_ID_EXPMOD_APPLY); m_pDefaultBT = (CWispButton*) GetFormItem(CMD_ID_EXPMOD_DEFAULT); m_pReloadBT = (CWispButton*) GetFormItem(CMD_ID_EXPMOD_RELOAD); m_pAddBT = (CWispButton*) GetFormItem(CMD_ID_EXPMOD_ADD); m_pRemoveBT = (CWispButton*) GetFormItem(CMD_ID_EXPMOD_REMOVE); m_pFileList->InsertColumn(NULL,0,WISP_WLCS_EDITABLE); LoadExpModFileList(); return true; } bool CExportModulePage::OnResize(IN WISP_MSG*pMsg) { m_pGroup->Resize(m_ClientRect.cx-20,m_ClientRect.cy-50); m_pFileList->Resize(m_pGroup->m_WindowRect.cx-130,m_pGroup->m_WindowRect.cy-30); m_pRemoveBT->MoveToWindow(m_pFileList->m_WindowRect.cx+30,m_pRemoveBT->m_ScrWindowRect.y - m_ScrWindowRect.y); m_pAddBT->MoveToWindow(m_pFileList->m_WindowRect.cx+30,m_pAddBT->m_ScrWindowRect.y - m_ScrWindowRect.y); m_pReloadBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x-m_ScrWindowRect.x,m_pGroup->m_ScrWindowRect.y-m_ScrWindowRect.y+m_pGroup->m_WindowRect.cy+10); m_pDefaultBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x-m_ScrWindowRect.x+m_pReloadBT->m_WindowRect.cx+10,m_pGroup->m_ScrWindowRect.y-m_ScrWindowRect.y+m_pGroup->m_WindowRect.cy+10); m_pSaveBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x + m_pGroup->m_ScrWindowRect.cx - m_pSaveBT->m_WindowRect.cx - m_ScrWindowRect.x,m_pReloadBT->m_ScrWindowRect.y-m_ScrWindowRect.y); return true; } bool CExportModulePage::OnFileListCommand(IN WISP_MSG*pMsg) { switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_SELECTED: m_pRemoveBT->EnableWindow(true); break; case WISP_CMD_ITEM_UNSELECTED: m_pRemoveBT->EnableWindow(false); break; case WISP_CMD_ITEM_CHANGED: m_pSaveBT->EnableWindow(TRUE); m_pReloadBT->EnableWindow(TRUE); break; } return true; } bool ConvertFileNameByMacro(WCHAR*szFileName,const WCHAR*szMacro,const WCHAR*szMacroStr) { int Len; WCHAR szBuffer[MAX_FN_LEN]; Len = TStrLen(szMacro); if(TStrNICmp(szFileName,szMacro,Len)==0) { TStrCpy(szBuffer,&szFileName[Len]); TStrCpy(szFileName,szMacroStr); TStrCat(szFileName,szBuffer); return true; } return false; } bool CExportModulePage::IsListItem(PCWSTR szName) { HANDLE hItem = m_pFileList->GetFirstItem(); while(hItem) { if(m_pFileList->GetItemText(hItem)==szName) return true; hItem = m_pFileList->GetNextItem(hItem); } return false; } bool CExportModulePage::OnButtonAdd(IN WISP_MSG*pMsg) { char szBuffer[MAX_FN_LEN],szFileName[MAX_FN_LEN]; WCHAR wszFileName[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "PE Module(exe;scr;dll;sys)\0*.exe;*.scr;*.dll;*.sys\0All Files\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; GetSystemDirectory(szBuffer,MAX_FN_LEN); OpenFileName.lpstrInitialDir = szBuffer; *szFileName = 0; if(GetOpenFileName(&OpenFileName)==false) return true; AnsiToUnicode(szFileName,wszFileName,MAX_FN_LEN); ConvertFileNameByMacro(wszFileName,m_szSystemRootDir,WSTR("\\SystemRoot")); if(IsListItem(wszFileName)) return true; m_pFileList->InsertItem(wszFileName); m_pFileList->Update(); m_pSaveBT->EnableWindow(TRUE); m_pReloadBT->EnableWindow(TRUE); return true; } bool CExportModulePage::OnButtonRemove(IN WISP_MSG*pMsg) { HANDLE hItem = m_pFileList->GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem) { m_pFileList->RemoveItem(hItem); m_pFileList->Update(); m_pRemoveBT->EnableWindow(false); m_pReloadBT->EnableWindow(TRUE); m_pSaveBT->EnableWindow(TRUE); } return true; } bool CExportModulePage::OnButtonSave(IN WISP_MSG*pMsg) { if(SaveExpModFileList()==false) return true; m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } bool CExportModulePage::OnButtonReload(IN WISP_MSG*pMsg) { if(LoadExpModFileList()==false) return true; m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } bool CExportModulePage::OnButtonDefault(IN WISP_MSG*pMsg) { gpFileIO->WriteToFile(m_ExpModFileName,DefaultPEExportList,TStrLen(DefaultPEExportList)); OnButtonReload(pMsg); return true; } bool CExportModulePage::LoadExpModFileList() { CTXTFile TXTFile; if(TXTFile.Open(m_ExpModFileName)==false) return false; m_pFileList->ClearChildItem(); for(TTXTStrList::IT Iter = TXTFile.m_StrList.Begin();Iter!=TXTFile.m_StrList.End();Iter++) { m_pFileList->InsertItemA(*Iter); } TXTFile.Close(); return true; } bool CExportModulePage::SaveExpModFileList() { CHAR szBuffer[MAX_FN_LEN+2]; CImageFileStream File; HANDLE hItem = m_pFileList->GetFirstItem(); if(hItem==NULL) { gpFileIO->DeleteFile(m_ExpModFileName); return true; } if(File.Create(m_ExpModFileName)==false) return false; while(hItem) { UnicodeToAnsi(m_pFileList->GetItemText(hItem),szBuffer,MAX_FN_LEN); TStrCat(szBuffer,"\r\n"); File.Puts(szBuffer,TStrLen(szBuffer)); hItem = m_pFileList->GetNextItem(hItem); } File.Close(); return true; } ================================================ FILE: Project/SyserOption/Source/ExportModulePage.h ================================================ #ifndef _EXPORT_MODULE_PAGE_H_ #define _EXPORT_MODULE_PAGE_H_ class CExportModulePage : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG(OnResize); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnFileListCommand) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnButtonAdd) DECLARE_WISP_MSG_EVENT(OnButtonRemove) DECLARE_WISP_MSG_EVENT(OnButtonSave) DECLARE_WISP_MSG_EVENT(OnButtonReload) DECLARE_WISP_MSG_EVENT(OnButtonDefault) CExportModulePage(); CWispStaticGroup*m_pGroup; CWispList* m_pFileList; CWispButton*m_pSaveBT; CWispButton*m_pReloadBT; CWispButton*m_pDefaultBT; CWispButton*m_pAddBT; CWispButton*m_pRemoveBT; CHAR m_ExpModFileName[MAX_FN_LEN]; WCHAR m_szSystemRootDir[MAX_FN_LEN]; bool LoadExpModFileList(); bool SaveExpModFileList(); bool IsListItem(PCWSTR szName); }; #endif ================================================ FILE: Project/SyserOption/Source/GUIColorPage.cpp ================================================ #include "StdAfx.h" #include "SyserOptionApp.h" #include "GUIColorPage.h" enum { INDEX_clrBackground = 0, INDEX_clrText, INDEX_clrSelectedFrame, INDEX_clrLostFocusSelFrame, INDEX_clrChgText, INDEX_clrMON_MAX }; WISP_OPTION_ITEM MonitorWindowOption[]= { {WSTR("Background"), OPTION_RGB_COLORREF,&ColorOption.clrBackground , sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Item text"), OPTION_RGB_COLORREF,&ColorOption.clrText , sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Selected frame"), OPTION_RGB_COLORREF,&ColorOption.clrSelectedFrame , sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Selected frame when lost focus"),OPTION_RGB_COLORREF,&ColorOption.clrLostFocusSelFrame, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Changed item text"), OPTION_RGB_COLORREF,&ColorOption.clrChgText , sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {NULL} }; enum { INDEX_clrCVBK = 0, INDEX_clrCVSelectedFrame, INDEX_clrCVLostFocusSelFrame, INDEX_clrCVAddr, INDEX_clrCVPrefix, INDEX_clrCVOpCode, INDEX_clrCVReg, INDEX_clrCVSegReg, INDEX_clrCVImmed, INDEX_clrCVOptr, INDEX_clrCVSymbol, INDEX_clrCVComment, INDEX_clrCVKeyword, INDEX_clrCVStr, INDEX_clrCVBPXStrip, INDEX_clrCVEIPStrip, INDEX_clrCVBPXEIPStrip, INDEX_clrCVAPIName, INDEX_clrCVAPIParamType, INDEX_clrCVAPIParamName, INDEX_clrCVJmpLine, INDEX_clrCVActivedJmpLine, INDEX_clrCVPrefixByte, INDEX_clrCVOpcodeByte, INDEX_clrCVRegRMByte, INDEX_clrCVSIBByte, INDEX_clrCVOtherOpcodeType, INDEX_clrCV3DNowByte, INDEX_clrCV_MAX }; WISP_OPTION_ITEM CodeViewOption[]= { {WSTR("Background"), OPTION_RGB_COLORREF,&ColorOption.clrCVBK, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Selected frame"), OPTION_RGB_COLORREF,&ColorOption.clrCVSelectedFrame, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Selected frame when lost focus"),OPTION_RGB_COLORREF,&ColorOption.clrCVLostFocusSelFrame,sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Address"), OPTION_RGB_COLORREF,&ColorOption.clrCVAddr , sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Prefix"), OPTION_RGB_COLORREF,&ColorOption.clrCVPrefix, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Operate Code"), OPTION_RGB_COLORREF,&ColorOption.clrCVOpCode, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Register"), OPTION_RGB_COLORREF,&ColorOption.clrCVReg, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Segment Register"), OPTION_RGB_COLORREF,&ColorOption.clrCVSegReg, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Immed"), OPTION_RGB_COLORREF,&ColorOption.clrCVImmed, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Operater"), OPTION_RGB_COLORREF,&ColorOption.clrCVOptr, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Symbol"), OPTION_RGB_COLORREF,&ColorOption.clrCVSymbol, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Comment"), OPTION_RGB_COLORREF,&ColorOption.clrCVComment, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Keyword"), OPTION_RGB_COLORREF,&ColorOption.clrCVKeyword, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("String"), OPTION_RGB_COLORREF,&ColorOption.clrCVStr, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("BPX Strip"), OPTION_RGB_COLORREF,&ColorOption.clrCVBPXStrip, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("EIP Strip"), OPTION_RGB_COLORREF,&ColorOption.clrCVEIPStrip, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("BPX EIP Strip"), OPTION_RGB_COLORREF,&ColorOption.clrCVBPXEIPStrip, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("API Name"), OPTION_RGB_COLORREF,&ColorOption.clrCVAPIName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Param Type"), OPTION_RGB_COLORREF,&ColorOption.clrCVAPIParamType, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Param Name"), OPTION_RGB_COLORREF,&ColorOption.clrCVAPIParamName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Jump Line"), OPTION_RGB_COLORREF,&ColorOption.clrCVJmpLine, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Actived Jump Line"), OPTION_RGB_COLORREF,&ColorOption.clrCVActivedJmpLine, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Prefix Byte"), OPTION_RGB_COLORREF,&ColorOption.clrCVPrefixByte, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Opcode Byte"), OPTION_RGB_COLORREF,&ColorOption.clrCVOpcodeByte, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("RegRM Byte"), OPTION_RGB_COLORREF,&ColorOption.clrCVRegRMByte, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("SIB Byte"), OPTION_RGB_COLORREF,&ColorOption.clrCVSIBByte, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Other Opcode Byte"), OPTION_RGB_COLORREF,&ColorOption.clrCVOtherOpcodeByte, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("3dNow! Immediate Byte"), OPTION_RGB_COLORREF,&ColorOption.clrCV3DNowByte, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {NULL} }; enum { INDEX_clrSDBK = 0, INDEX_clrSDSelectedFrame, INDEX_clrSDLostFocusSelFrame, INDEX_clrSDKeyword, INDEX_clrSDId, INDEX_clrSDPrekeyWord, INDEX_clrSDCmtBlock, INDEX_clrSDCmtLine, INDEX_clrSDString, INDEX_clrSDNum, INDEX_clrSDOperation, INDEX_clrSDClassName, INDEX_clrSDStructName, INDEX_clrSDUnionName, INDEX_clrSDTypedefName, INDEX_clrSDFunctionName, INDEX_clrSDUnknown, INDEX_clrSD_MAX }; WISP_OPTION_ITEM SourceCodeViewOption[]= { {WSTR("Background"), OPTION_RGB_COLORREF,&ColorOption.clrSDBK, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Selected frame"), OPTION_RGB_COLORREF,&ColorOption.clrSDSelectedFrame, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Selected frame when lost focus"),OPTION_RGB_COLORREF,&ColorOption.clrSDLostFocusSelFrame,sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Keyword"), OPTION_RGB_COLORREF,&ColorOption.clrSDKeyword, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Identifier"), OPTION_RGB_COLORREF,&ColorOption.clrSDId, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Preprocessor Keyword"), OPTION_RGB_COLORREF,&ColorOption.clrSDPrekeyWord, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Comment block"), OPTION_RGB_COLORREF,&ColorOption.clrSDCmtBlock, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Comment line"), OPTION_RGB_COLORREF,&ColorOption.clrSDCmtLine, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("String"), OPTION_RGB_COLORREF,&ColorOption.clrSDString, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Numerical"), OPTION_RGB_COLORREF,&ColorOption.clrSDNum, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Operation"), OPTION_RGB_COLORREF,&ColorOption.clrSDOperation, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Class name"), OPTION_RGB_COLORREF,&ColorOption.clrSDClassName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Struct name"), OPTION_RGB_COLORREF,&ColorOption.clrSDStructName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Union name"), OPTION_RGB_COLORREF,&ColorOption.clrSDUnionName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Typedef name"), OPTION_RGB_COLORREF,&ColorOption.clrSDTypedefName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Function name"), OPTION_RGB_COLORREF,&ColorOption.clrSDFunctionName, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {WSTR("Unknown"), OPTION_RGB_COLORREF,&ColorOption.clrSDUnknown, sizeof(COLORREF),NULL,NULL,&ColorOptionRef}, {NULL} }; WISP_OPTION_ITEM ColorOptionTitle[]= { {WSTR("Monitor window"),OPTION_TITLE,MonitorWindowOption}, {WSTR("Code View"),OPTION_TITLE,CodeViewOption}, {WSTR("Source Code View"),OPTION_TITLE,SourceCodeViewOption}, {NULL} }; WISP_MSG_MAP_BEGIN(CGUIColorPage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispOptionForm) WISP_MSG_CMD_MAP_BEGIN(CGUIColorPage) WISP_MSG_CMD_MAP(CMD_ID_OPTION_LIST,OnListCmd); WISP_MSG_CMD_MAP_END CGUIColorPage::FPGUIColorSimMothed CGUIColorPage::m_Mothed[MAX_COLOR_DEMO]= { &CGUIColorPage::DrawMonitorDemo, &CGUIColorPage::DrawCodeViewDemo, &CGUIColorPage::DrawSourceCodeViewDemo, }; CGUIColorPage::CGUIColorPage() { m_DemoHeight = 120; m_pOptionItem = ColorOptionTitle; } bool CGUIColorPage::OnFormCreate(IN WISP_MSG*pMsg) { CWispOptionForm::OnFormCreate(pMsg); m_DemoGroup.Create(WISP_STR("Preview"),10,5,m_ClientRect.cx-20,m_DemoHeight-10,this); m_DemoDIB.Create(520,m_DemoGroup.m_WindowRect.cy - 25,WISP_DIB_BITMAP); m_DemoDIB.Clear(); m_OptionList.Move(0,m_DemoHeight); m_OptionList.SetOwner(this); FillOptionTreeValue(); if(ColorOption.CRCCode == OrgColorOption.CRCCode) m_pDefaultBT->EnableWindow(false); m_CurMothed = MAX_COLOR_DEMO; return false; } bool CGUIColorPage::OnSize(IN WISP_MSG*pMsg) { m_DemoGroup.Resize(m_ClientRect.cx-20,m_DemoHeight-10); m_OptionList.Resize(m_ClientRect.cx-20,m_ClientRect.cy-50-m_DemoHeight); m_pRestoreBT->MoveToWindow(m_OptionList.m_ScrWindowRect.x-m_ScrWindowRect.x,m_OptionList.m_ScrWindowRect.y-m_ScrWindowRect.y+m_OptionList.m_WindowRect.cy+10); if(m_pDefaultBT->IsVisible()) m_pDefaultBT->MoveToWindow(m_pRestoreBT->m_ScrWindowRect.x + m_pRestoreBT->m_WindowRect.cx + 10 -m_ScrWindowRect.x,m_pRestoreBT->m_ScrWindowRect.y-m_ScrWindowRect.y); m_pApplyBT->MoveToWindow(m_OptionList.m_ScrWindowRect.x + m_OptionList.m_ScrWindowRect.cx - m_pApplyBT->m_WindowRect.cx - m_ScrWindowRect.x, m_pRestoreBT->m_ScrWindowRect.y-m_ScrWindowRect.y); return false; } bool CGUIColorPage::OnDestroy(IN WISP_MSG*pMsg) { m_DemoDIB.Destroy(); return true; } bool CGUIColorPage::OnUpdateClient(IN WISP_MSG*pMsg) { int x,y; CWispOptionForm::OnUpdateClient(pMsg); x = (m_ClientRect.cx-m_DemoDIB.Width())/2; y = 20; m_ClientDC.DrawDIB(x,y,&m_DemoDIB); m_ClientDC.DrawFrameRect(x-1,y-1,m_DemoDIB.Width()+2,m_DemoDIB.Height()+2,false); return false; } void CGUIColorPage::OptionApplyNotify() { if(ColorOptionRef)//SyserColor.cfg޸ { ColorOptionRef = 0; SaveSyserOption(theApp.m_szColorCfgFN,&ColorOption,sizeof(ColorOption)); } //ȽļǷĬϵһ,һDefaultť if( ColorOption.CRCCode == OrgColorOption.CRCCode) m_pDefaultBT->EnableWindow(false); theApp.SendSyserMsg(IOCTL_SYSER_RELOAD_COLOR_CONFIG); } bool CGUIColorPage::OptionBeforeDefaultNotify() { ColorOption = OrgColorOption; ColorOptionRef = 0; return true; } void CGUIColorPage::OptionDefaultNotify() { SaveSyserOption(theApp.m_szColorCfgFN,&ColorOption,sizeof(ColorOption)); if(m_CurMothed*m_Mothed[m_CurMothed])(); theApp.SendSyserMsg(IOCTL_SYSER_RELOAD_COLOR_CONFIG); } bool CGUIColorPage::OnListCmd(IN WISP_MSG*pMsg) { HANDLE hItem; if(pMsg->Command.CmdMsg != WISP_CMD_ITEM_SELECTED) return true; //лDemo DIB; hItem = pMsg->Command.Param2; if(m_OptionList.GetItemLevel(hItem)==1) hItem = m_OptionList.GetParentItem(hItem); COLOR_DEMO_INDEX Mothed = (COLOR_DEMO_INDEX)m_OptionList.GetItemIndex(hItem); if(m_CurMothed!=Mothed) { m_CurMothed = Mothed; (this->*m_Mothed[m_CurMothed])(); } return true; } void CGUIColorPage::DrawMonitorDemo() { CWispDC dc; dc.AttachDIB(&m_DemoDIB); //////////////////////////// COLORREF clrBackground = *(COLORREF*)MonitorWindowOption[INDEX_clrBackground].pNewValue; COLORREF clrText = *(COLORREF*)MonitorWindowOption[INDEX_clrText].pNewValue; COLORREF clrSelectedFrame = *(COLORREF*)MonitorWindowOption[INDEX_clrSelectedFrame].pNewValue; COLORREF clrChgText = *(COLORREF*)MonitorWindowOption[INDEX_clrChgText].pNewValue; dc.DrawFullRect(0,0,m_DemoDIB.Width(),m_DemoDIB.Height(),clrBackground); dc.SetTextColor(clrText); dc.DrawString(5,5,WSTR("EAX")); dc.DrawString(40,5,WSTR("00000001")); dc.DrawString(5,20,WSTR("EBX")); dc.SetTextColor(clrChgText); dc.DrawString(40,20,WSTR("7FFBC2A0")); dc.RestoreTextColor(); dc.DrawString(5,35,WSTR("EIP")); dc.DrawString(40,35,WSTR("00401000")); dc.DrawRect(0,35,m_DemoDIB.Width()-1,12,clrSelectedFrame); //////////////////////////// UpdateClient(); } void CGUIColorPage::DrawCodeViewDemo() { CWispDC dc; dc.AttachDIB(&m_DemoDIB); ////////////////////////////// WISP_COLOR_CHAR szBuffer[256]; COLORREF ColorTable[INDEX_clrCV_MAX]; for(int n=0;n",INDEX_clrSDOperation,0); dc.DrawColorString(5,y,szBuffer);y+=15; WISP_RECT rc; rc.x = 0; rc.y = 34; rc.cx = m_DemoDIB.Width(); rc.cy = 15; dc.DrawRect(&rc,ColorTable[INDEX_clrSDSelectedFrame]); Off = ColorStrCpy(szBuffer, "int ",INDEX_clrSDKeyword,0); Off+= ColorStrCpy(&szBuffer[Off],"main",INDEX_clrSDFunctionName,0); Off+= ColorStrCpy(&szBuffer[Off],"(", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"int ",INDEX_clrSDKeyword,0); Off+= ColorStrCpy(&szBuffer[Off],"argc",INDEX_clrSDId,0); Off+= ColorStrCpy(&szBuffer[Off],",", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"char",INDEX_clrSDKeyword,0); Off+= ColorStrCpy(&szBuffer[Off],"*", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"argv",INDEX_clrSDId,0); Off+= ColorStrCpy(&szBuffer[Off],");", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"// Main Function",INDEX_clrSDCmtLine,0); dc.DrawColorString(5,y,szBuffer);y+=15; Off = ColorStrCpy(szBuffer, "typedef int ",INDEX_clrSDKeyword,0); Off+= ColorStrCat(&szBuffer[Off],"INT",INDEX_clrSDTypedefName,0); Off+= ColorStrCpy(&szBuffer[Off],";", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"/* new typedef of int */",INDEX_clrSDCmtBlock,0); dc.DrawColorString(5,y,szBuffer);y+=15; //////////////////////////// Off = ColorStrCpy(szBuffer, "class ",INDEX_clrSDKeyword,0); Off+= ColorStrCat(&szBuffer[Off],"CFile",INDEX_clrSDClassName,0); Off+= ColorStrCpy(&szBuffer[Off],";", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"struct ",INDEX_clrSDKeyword,0); Off+= ColorStrCat(&szBuffer[Off],"ST_FILE",INDEX_clrSDStructName,0); Off+= ColorStrCpy(&szBuffer[Off],";", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"union ",INDEX_clrSDKeyword,0); Off+= ColorStrCat(&szBuffer[Off],"UN_FILE",INDEX_clrSDUnionName,0); Off+= ColorStrCpy(&szBuffer[Off],";", INDEX_clrSDOperation,0); dc.DrawColorString(5,y,szBuffer);y+=15; //////////////////////////// Off = ColorStrCpy(szBuffer, "INT ",INDEX_clrSDTypedefName,0); Off+= ColorStrCat(&szBuffer[Off],"Value",INDEX_clrSDId,0); Off+= ColorStrCpy(&szBuffer[Off],"=", INDEX_clrSDOperation,0); Off+= ColorStrCpy(&szBuffer[Off],"1000",INDEX_clrSDNum,0); Off+= ColorStrCpy(&szBuffer[Off],";", INDEX_clrSDOperation,0); dc.DrawColorString(5,y,szBuffer);y+=15; UpdateClient(); } void CGUIColorPage::OnModify(HANDLE hItem) { CWispOptionForm::OnModify(hItem); if(m_CurMothed*m_Mothed[m_CurMothed])(); } void CGUIColorPage::OptionRestoreNotify() { if(m_CurMothed*m_Mothed[m_CurMothed])(); } ================================================ FILE: Project/SyserOption/Source/GUIColorPage.h ================================================ #ifndef _GUI_COLOR_PAGE_H_ #define _GUI_COLOR_PAGE_H_ enum COLOR_DEMO_INDEX { COLOR_DEMO_MONITOR = 0, COLOR_DEMO_CODE_VIEW, COLOR_DEMO_SOURCE_CODE_VIEW, MAX_COLOR_DEMO, }; class CGUIColorPage : public CWispOptionForm { typedef void (CGUIColorPage::*FPGUIColorSimMothed)(); public: CGUIColorPage(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG(OnListCmd) void OptionApplyNotify(); bool OptionBeforeDefaultNotify(); void OptionDefaultNotify(); void OnModify(HANDLE hItem); void OptionRestoreNotify(); int m_DemoHeight; COLOR_DEMO_INDEX m_CurMothed; CWispDIB m_DemoDIB; CWispStaticGroup m_DemoGroup; void DrawMonitorDemo(); void DrawCodeViewDemo(); void DrawSourceCodeViewDemo(); static FPGUIColorSimMothed m_Mothed[MAX_COLOR_DEMO]; }; #endif ================================================ FILE: Project/SyserOption/Source/MainFrame.cpp ================================================ #include "StdAfx.h" #include "SyserOptionApp.h" WISP_MSG_MAP_BEGIN(CMainFrame) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP_END(CWispWnd) bool CMainFrame::OnCreate(IN WISP_MSG*pMsg) { m_Style|=WISP_WS_BACK_TRANS; m_MainTabWnd.Create(NULL,0,0,m_ClientRect.cx,m_ClientRect.cy,this,WISP_ID_MAIN_TAB,WISP_TWS_TOP); m_OptionPage.CreateForm(&m_MainTabWnd); m_GUIColorPage.CreateForm(&m_MainTabWnd); m_SDSFilePage.CreateForm(&m_MainTabWnd); m_ExportModulePage.CreateForm(&m_MainTabWnd); m_KeyMappingPage.CreateForm(&m_MainTabWnd); m_MainTabWnd.InsertWnd(WSTR("Option"),&m_OptionPage,WispTKDIBListDIB("\\Toolbar.bmp",16,16,29)); m_MainTabWnd.InsertWnd(WSTR("Module Export Symbols"),&m_ExportModulePage,WispTKDIBListDIB("\\Toolbar.bmp",16,16,50)); m_MainTabWnd.InsertWnd(WSTR("SDS Symbols"),&m_SDSFilePage,WispTKDIBListDIB("\\Toolbar.bmp",16,16,17)); m_MainTabWnd.InsertWnd(WSTR("Color"),&m_GUIColorPage,WispTKDIBListDIB("\\Toolbar.bmp",16,16,55)); m_MainTabWnd.InsertWnd(WSTR("Key Mapping"),&m_KeyMappingPage,WispTKDIBListDIB("\\Toolbar.bmp",16,16,7)); return true; } bool CMainFrame::OnSize(IN WISP_MSG*pMsg) { m_MainTabWnd.Resize(m_ClientRect.cx,m_ClientRect.cy); return true; } ================================================ FILE: Project/SyserOption/Source/MainFrame.h ================================================ #ifndef _MAIN_FRAME_H_ #define _MAIN_FRAME_H_ #include "OptionPage.h" #include "CmdEditPage.h" #include "SDSFilePage.h" #include "GUIColorPage.h" #include "ExportModulePage.h" #include "../../syser/Source/KeyMappingPage.h" class CMainFrame : public CWispWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnSize); public: COptionPage m_OptionPage; CCmdEditPage m_CmdEditPage; CWispTabWnd m_MainTabWnd; CGUIColorPage m_GUIColorPage; CSDSFilePage m_SDSFilePage; CExportModulePage m_ExportModulePage; CKeyMappingPage m_KeyMappingPage; }; #endif ================================================ FILE: Project/SyserOption/Source/OptionPage.cpp ================================================ #include "StdAfx.h" #include "OptionPage.h" #include "SyserOptionApp.h" extern int SyserAppOptionRef; extern int SyserOptionRef; //Form Resource ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// //Option List WISP_PCSTR OnOffList[]= { WISP_STR("Off"), WISP_STR("On"), NULL }; WISP_PCSTR NoYesList[]= { WISP_STR("No"), WISP_STR("Yes"), NULL }; WISP_PCSTR DisableEnableList[]= { WISP_STR("Disable"), WISP_STR("Enable"), NULL }; WISP_PCSTR StartPageList[]= { WISP_STR("Console"), WISP_STR("Process Moniter"), WISP_STR("Symbol Download"), WISP_STR("Option"), NULL }; WISP_PCSTR SyserDebuggerFollowModeList[]= { WISP_STR("Automatic (Relative to EIP)"), WISP_STR("System Explorer"), WISP_STR("Source Explorer"), NULL }; WISP_PCSTR SyserI3hereStatus[]= { WISP_STR("I3Here is off"), WISP_STR("I3Here is on"), WISP_STR("I3Here is on for device drivers (addr > 2G)"), NULL }; WISP_PCSTR AutoActionList[]= { WISP_STR("No"), WISP_STR("Yes"), WISP_STR("Query User"), NULL }; WISP_PCSTR ConnectList[]= { WISP_STR("Disable"), WISP_STR("Serial Port"), NULL }; WISP_PCSTR DirSelectList[]= { WISP_STR("Browse"), WISP_STR("Edit"), WISP_STR("Current Path & Edit"), NULL }; WISP_PCSTR BootTypeList[]= { WISP_STR("%dBoot"), WISP_STR("System"), WISP_STR("Automatic"), WISP_STR("Manual"), NULL }; WISP_PCSTR SyserVideoAttachType[]= { WISP_STR("Auto (If you don't care)"), WISP_STR("User Mode (High Compatibility)"), WISP_STR("Kernel Mode (Supports DirectX)"), NULL }; WISP_PCSTR SyserKeyboardLayerType[]= { WISP_STR("Normal"), WISP_STR("Azerty"), NULL }; bool TValueTestWidth(void*pValue) { int Value = *(int*)pValue; return Value >= 640 && Value <= SyserOption.iMaxWndWidth; } bool TValueTestHeight(void*pValue) { int Value = *(int*)pValue; return Value >= 480 && Value <= SyserOption.iMaxWndHeight; } WISP_OPTION_ITEM SyserDebuggerOption[]= { {WSTR("Start Syser Debugger when SyserApp launch"), OPTION_SELECT_INT, &SyserAppOption.iAutoStart, sizeof(int),AutoActionList,NULL,&SyserAppOptionRef}, {WSTR("Stop Syser Debugger when SyserApp exit"), OPTION_SELECT_INT, &SyserAppOption.iAutoStop , sizeof(int),AutoActionList,NULL,&SyserAppOptionRef}, {WSTR("Video Detect Mode (Restart Syser to apply)"), OPTION_SELECT_INT, &SyserOption.iVideoDetectMode, sizeof(int),SyserVideoAttachType,NULL,&SyserOptionRef}, {WSTR("Big Font (Restart Syser to apply)"), OPTION_SELECT_INT, &SyserOption.iBigFont, sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("EIP Follow Mode"), OPTION_SELECT_INT, &SyserOption.iFollowMode, sizeof(int),SyserDebuggerFollowModeList,NULL,&SyserOptionRef}, {WSTR("Show Full Symbol (Include Module Name)"), OPTION_SELECT_INT, &SyserOption.iShowFullSym, sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Mouse Sensitivity (1 - 30)"), OPTION_INT, &SyserOption.iMouseSensitivity, sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Command Histroy lines [100 - 10000]"), OPTION_INT, &SyserOption.iHistroyLines, sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Start window width [640 - Max window width ]"), OPTION_INT, &SyserOption.iStartWndWidth, sizeof(int),NULL,TValueTestWidth,&SyserOptionRef}, {WSTR("Start window height [480 - Max window height]"), OPTION_INT, &SyserOption.iStartWndHeight, sizeof(int),NULL,TValueTestHeight,&SyserOptionRef}, {WSTR("Keyboard layer"), OPTION_SELECT_INT, &SyserOption.iKeyboardLayer, sizeof(int),SyserKeyboardLayerType,NULL,&SyserOptionRef}, {WSTR("i3here command default status"), OPTION_SELECT_INT, &SyserOption.i3here, sizeof(int),SyserI3hereStatus,NULL,&SyserOptionRef}, {WSTR("i1here command default status"), OPTION_SELECT_INT, &SyserOption.i1here, sizeof(int),OnOffList,NULL,&SyserOptionRef}, {WSTR("faults command default status"), OPTION_SELECT_INT, &SyserOption.ifaults, sizeof(int),OnOffList,NULL,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SyserLoaderOption[]= { {WSTR("Stays in system tray"), OPTION_SELECT_INT, &SyserAppOption.iSystemTray, sizeof(int),NoYesList,NULL,&SyserAppOptionRef}, {WSTR("Top Most"), OPTION_SELECT_INT, &SyserAppOption.iTopMost, sizeof(int),NoYesList,NULL,&SyserAppOptionRef}, {WSTR("Show Syser start splash"), OPTION_SELECT_INT, &SyserOption.iShowStartSplash, sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Histroy lines [100 - 1000]"), OPTION_INT, &SyserAppOption.iHistroyLines, sizeof(int),NULL,TValueTest,&SyserAppOptionRef}, {NULL} }; WISP_OPTION_ITEM SourceDebuggerOption[]= { {WSTR("Syntax Color"),OPTION_SELECT_INT,&SyserOption.iSourceCodeSyntaxColors,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Show Tips"),OPTION_SELECT_INT,&SyserOption.iSourceCodeShowTips ,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {WSTR("Show Line Numbers"),OPTION_SELECT_INT,&SyserOption.iSourceCodeShowLineNumbers ,sizeof(int),NoYesList,NULL,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SerialPortOption[]= { {WSTR("COM Port"),OPTION_INT,&SyserOption.iComPort,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM RemoteDebuggerOption[]= { {WSTR("Connect Type"),OPTION_SELECT_INT,&SyserOption.iConnectType,sizeof(int),ConnectList,NULL,&SyserOptionRef}, {WSTR("Serial Port Configure"),OPTION_TITLE,SerialPortOption}, {NULL} }; WISP_OPTION_ITEM SyserAdvanceOption[]= { {WSTR("Geneal heap size [15 - 40]M"),OPTION_INT,&SyserOption.iHeapSizeM,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Source Code heap size [6 - 40]M"),OPTION_INT,&SyserOption.iSourceCodeHeapSizeM,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Stack size [512 - 4096]K"),OPTION_INT,&SyserOption.iStackSizeK,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Enable Hardware Timer"),OPTION_SELECT_INT,&SyserOption.iHardTimerEnable,sizeof(int),DisableEnableList,NULL,&SyserOptionRef}, {WSTR("Max window width [640 - 2048]"),OPTION_INT,&SyserOption.iMaxWndWidth ,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {WSTR("Max window height [480 - 2048]"),OPTION_INT,&SyserOption.iMaxWndHeight ,sizeof(int),NULL,TValueTest,&SyserOptionRef}, {NULL} }; WISP_OPTION_ITEM SyserOptionTitle[]= { {WSTR("Syser Debugger"),OPTION_TITLE,SyserDebuggerOption}, {WSTR("Syser Loader"),OPTION_TITLE,SyserLoaderOption}, {WSTR("Source Code Debugger"),OPTION_TITLE,SourceDebuggerOption}, {WSTR("Developer Advance Option (Restart Syser to apply)"),OPTION_TITLE,SyserAdvanceOption}, //{WSTR("Remote Debugger"),OPTION_TITLE,RemoteDebuggerOption}, {NULL} }; WISP_MSG_MAP_BEGIN(COptionPage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispOptionForm) COptionPage::COptionPage() { m_pOptionItem = SyserOptionTitle; } bool COptionPage::OnFormCreate(IN WISP_MSG*pMsg) { if(CWispOptionForm::OnFormCreate(pMsg)==false) return false; m_OptionList.ExpandItem(m_OptionList.GetItem(0)); m_OptionList.ExpandItem(m_OptionList.GetItem(1)); m_OptionList.ExpandItem(m_OptionList.GetItem(2)); m_OptionList.ExpandItem(m_OptionList.GetItem(3)); m_OptionList.ExpandItem(m_OptionList.GetItem(4)); m_OptionList.ExpandItem(m_OptionList.GetItem(5)); if(SyserOption.CRCCode == OrgSyserOption.CRCCode && SyserAppOption.CRCCode == OrgSyserAppOption.CRCCode) m_pDefaultBT->EnableWindow(false); m_OptionList.SetColumnWidth(m_OptionList.GetColumn(0),300); return false; } bool GetPrivilege(PCSTR privName) { bool rc; HANDLE hToken; LUID privValue; TOKEN_PRIVILEGES tkp; if(!OpenProcessToken( GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ) return false; if(!LookupPrivilegeValue( NULL, privName, &privValue ) ) { CloseHandle(hToken); return false; } tkp.PrivilegeCount = 1; tkp.Privileges[0].Luid = privValue; rc = AdjustTokenPrivileges( hToken, FALSE, &tkp,sizeof tkp,NULL,NULL)!=FALSE; CloseHandle( hToken ); return rc; } void COptionPage::OptionApplyNotify() { if(SyserOptionRef)//Syser.cfg޸ { SyserOptionRef = 0; SaveSyserOption(theApp.m_szSyserCfgFN,&SyserOption,sizeof(SyserOption)); } if(SyserAppOptionRef)//SyserApp.cfg޸ { SyserAppOptionRef = 0; SaveSyserOption(theApp.m_szSyserAppCfgFN,&SyserAppOption,sizeof(SyserAppOption)); } //ȽļǷĬϵһ,һDefaultť if( SyserOption.CRCCode == OrgSyserOption.CRCCode && SyserAppOption.CRCCode == OrgSyserAppOption.CRCCode) m_pDefaultBT->EnableWindow(false); theApp.SendSyserMsg(IOCTL_SYSER_RELOAD_CONFIG); theApp.SendSyserAppMsg(WM_SYSER_APP_RELOAD_CFG); } void COptionPage::OptionDefaultNotify() { SaveSyserOption(theApp.m_szSyserCfgFN,&SyserOption,sizeof(SyserOption)); SaveSyserOption(theApp.m_szSyserAppCfgFN,&SyserAppOption,sizeof(SyserAppOption)); theApp.SendSyserMsg(IOCTL_SYSER_RELOAD_CONFIG); theApp.SendSyserAppMsg(WM_SYSER_APP_RELOAD_CFG); } bool COptionPage::OptionBeforeDefaultNotify() { SyserOption = OrgSyserOption; SyserAppOption = OrgSyserAppOption; SyserOptionRef = 0; SyserAppOptionRef = 0; return true; } ================================================ FILE: Project/SyserOption/Source/OptionPage.h ================================================ #ifndef _OPTION_PAGE_H_ #define _OPTION_PAGE_H_ class COptionPage : public CWispOptionForm { public: COptionPage(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); void OptionApplyNotify(); bool OptionBeforeDefaultNotify(); void OptionDefaultNotify(); }; #endif ================================================ FILE: Project/SyserOption/Source/SDSFilePage.cpp ================================================ #include "StdAfx.h" #include "SDSFilePage.h" #include "SyserOptionApp.h" enum CSDSFilePage::WISP_FORM_ID { CMD_ID_SDS_FILE_LIST = WISP_ID_USER_START, CMD_ID_STATIC_GROUP, CMD_ID_SDS_ADD, CMD_ID_SDS_REMOVE, CMD_ID_SDS_APPLY, CMD_ID_SDS_RELOAD, CMD_ID_SDS_DEFAULT, }; WISP_FORM_RES_ITEM CSDSFilePage::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,540,400}, WISP_ID_NULL, WISP_WS_NULL, }, { WISP_CTRL_STATIC_GROUP, {10,10,530,300}, CMD_ID_STATIC_GROUP, WISP_WS_NULL, WSTR("Load these symbol files after syser initialization"), }, { WISP_CTRL_LIST, {20,30,400,260}, CMD_ID_SDS_FILE_LIST, WISP_WS_THIN_BORDER, }, { WISP_CTRL_BUTTON, {430,40,100,20}, CMD_ID_SDS_ADD, WISP_BS_NORMAL, WSTR("Add"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,80,100,20}, CMD_ID_SDS_REMOVE, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Remove"), NULL, NULL }, { WISP_CTRL_BUTTON, {430,340,100,20}, CMD_ID_SDS_APPLY, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Save"), NULL, NULL }, { WISP_CTRL_BUTTON, {10,340,100,20}, CMD_ID_SDS_RELOAD, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Reload"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CSDSFilePage) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnResize) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CSDSFilePage) WISP_MSG_CMD_MAP(CMD_ID_SDS_FILE_LIST,OnFileListCommand) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CSDSFilePage) WISP_MSG_EVENT_MAP(CMD_ID_SDS_ADD,OnButtonAdd) WISP_MSG_EVENT_MAP(CMD_ID_SDS_REMOVE,OnButtonRemove) WISP_MSG_EVENT_MAP(CMD_ID_SDS_APPLY,OnButtonSave) WISP_MSG_EVENT_MAP(CMD_ID_SDS_RELOAD,OnButtonReload) WISP_MSG_EVENT_MAP_END CSDSFilePage::CSDSFilePage() { m_pFormRes = m_FormRes; GetSystemDirectory(m_SDSFileName,MAX_FN_LEN); TStrCat(m_SDSFileName,"\\drivers\\SDSInit.lst"); } bool CSDSFilePage::OnFormCreate(IN WISP_MSG*pMsg) { m_pGroup = (CWispStaticGroup*) GetFormItem(CMD_ID_STATIC_GROUP); m_pFileList = (CWispList*) GetFormItem(CMD_ID_SDS_FILE_LIST); m_pSaveBT = (CWispButton*) GetFormItem(CMD_ID_SDS_APPLY); m_pReloadBT = (CWispButton*) GetFormItem(CMD_ID_SDS_RELOAD); m_pAddBT = (CWispButton*) GetFormItem(CMD_ID_SDS_ADD); m_pRemoveBT = (CWispButton*) GetFormItem(CMD_ID_SDS_REMOVE); m_pFileList->InsertColumn(NULL,0,WISP_WLCS_EDITABLE); LoadSDSFileList(); return true; } bool CSDSFilePage::OnResize(IN WISP_MSG*pMsg) { m_pGroup->Resize(m_ClientRect.cx-20,m_ClientRect.cy-50); m_pFileList->Resize(m_pGroup->m_WindowRect.cx-130,m_pGroup->m_WindowRect.cy-30); m_pRemoveBT->MoveToWindow(m_pFileList->m_WindowRect.cx+30,m_pRemoveBT->m_ScrWindowRect.y - m_ScrWindowRect.y); m_pAddBT->MoveToWindow(m_pFileList->m_WindowRect.cx+30,m_pAddBT->m_ScrWindowRect.y - m_ScrWindowRect.y); m_pReloadBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x-m_ScrWindowRect.x,m_pGroup->m_ScrWindowRect.y-m_ScrWindowRect.y+m_pGroup->m_WindowRect.cy+10); m_pSaveBT->MoveToWindow(m_pGroup->m_ScrWindowRect.x + m_pGroup->m_ScrWindowRect.cx - m_pSaveBT->m_WindowRect.cx - m_ScrWindowRect.x,m_pReloadBT->m_ScrWindowRect.y-m_ScrWindowRect.y); return true; } bool CSDSFilePage::OnFileListCommand(IN WISP_MSG*pMsg) { switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_SELECTED: m_pRemoveBT->EnableWindow(true); break; case WISP_CMD_ITEM_UNSELECTED: m_pRemoveBT->EnableWindow(false); break; case WISP_CMD_ITEM_CHANGED: m_pSaveBT->EnableWindow(TRUE); m_pReloadBT->EnableWindow(TRUE); break; } return true; } bool CSDSFilePage::OnButtonAdd(IN WISP_MSG*pMsg) { CHAR szFileName[MAX_FN_LEN],szDir[MAX_FN_LEN]; OPENFILENAME OpenFileName; STZeroMemory(OpenFileName); GetModulePath(szDir); TStrCat(szDir,"Symbols"); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = theApp.m_hLocalInst; OpenFileName.hwndOwner = theApp.m_hLocalWnd; OpenFileName.lpstrFilter = "SDS File(*.sds)\0*.sds\0All Files(*.*)\0*.*\0"; OpenFileName.nMaxFile = sizeof(szFileName); OpenFileName.lpstrFile = szFileName; OpenFileName.lpstrInitialDir = szDir; *szFileName = 0; theApp.LockTimer(); if(GetOpenFileName(&OpenFileName)==false) { theApp.UnlockTimer(); return true; } theApp.UnlockTimer(); m_pFileList->InsertItemA(szFileName); m_pFileList->Update(); m_pSaveBT->EnableWindow(TRUE); m_pReloadBT->EnableWindow(TRUE); return true; } bool CSDSFilePage::OnButtonRemove(IN WISP_MSG*pMsg) { HANDLE hItem = m_pFileList->GetFirstItem(NULL,WISP_WLIS_SELECTED); if(hItem) { m_pFileList->RemoveItem(hItem); m_pFileList->Update(); m_pRemoveBT->EnableWindow(false); m_pReloadBT->EnableWindow(TRUE); m_pSaveBT->EnableWindow(TRUE); } return true; } bool CSDSFilePage::OnButtonSave(IN WISP_MSG*pMsg) { if(SaveSDSFileList()==false) return true; m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } bool CSDSFilePage::OnButtonReload(IN WISP_MSG*pMsg) { if(LoadSDSFileList()==false) return true; m_pReloadBT->EnableWindow(FALSE); m_pSaveBT->EnableWindow(FALSE); Update(); return true; } bool CSDSFilePage::LoadSDSFileList() { CTXTFile TXTFile; if(TXTFile.Open(m_SDSFileName)==false) return false; m_pFileList->ClearChildItem(); for(TTXTStrList::IT Iter = TXTFile.m_StrList.Begin();Iter!=TXTFile.m_StrList.End();Iter++) { m_pFileList->InsertItemA(*Iter); } TXTFile.Close(); return true; } bool CSDSFilePage::SaveSDSFileList() { CHAR szBuffer[MAX_FN_LEN+2]; CImageFileStream File; HANDLE hItem = m_pFileList->GetFirstItem(); if(hItem==NULL) { gpFileIO->DeleteFile(m_SDSFileName); return true; } if(File.Create(m_SDSFileName)==false) return false; while(hItem) { UnicodeToAnsi(m_pFileList->GetItemText(hItem),szBuffer,MAX_FN_LEN); TStrCat(szBuffer,"\r\n"); File.Puts(szBuffer,TStrLen(szBuffer)); hItem = m_pFileList->GetNextItem(hItem); } File.Close(); return true; } ================================================ FILE: Project/SyserOption/Source/SDSFilePage.h ================================================ #ifndef _SDS_FILE_PAGE_H_ #define _SDS_FILE_PAGE_H_ class CSDSFilePage : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG(OnResize); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnFileListCommand) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnButtonAdd) DECLARE_WISP_MSG_EVENT(OnButtonRemove) DECLARE_WISP_MSG_EVENT(OnButtonSave) DECLARE_WISP_MSG_EVENT(OnButtonReload) CSDSFilePage(); CWispStaticGroup*m_pGroup; CWispList* m_pFileList; CWispButton*m_pSaveBT; CWispButton*m_pReloadBT; CWispButton*m_pDefaultBT; CWispButton*m_pAddBT; CWispButton*m_pRemoveBT; CHAR m_SDSFileName[MAX_FN_LEN]; bool LoadSDSFileList(); bool SaveSDSFileList(); }; #endif ================================================ FILE: Project/SyserOption/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/SyserOption/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "../../Wisp/Source/Wisp.h" #include "../../WinWisp/Source/WinWisp.h" #include "Resource.h" #include "../../SyserApp/Source/ddraw.h" #include "../../SyserApp/Source/SyserAppOption.h" #include "../../SyserApp/Source/SyserInterface.h" #include "../../Syser/Source/SyserOption.h" #include "../../Syser/Source/ColorOption.h" #include "../../Syser/Source/SyserDefine.h" #endif ================================================ FILE: Project/SyserOption/Source/SyserOption.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON_SYSER_OPTION ICON "Res\\SyserOption.ico" IDI_ICON_GEAR ICON "Res\\Gear.ico" ///////////////////////////////////////////////////////////////////////////// // // RT_MANIFEST // IDR_RT_MANIFEST RT_MANIFEST "res\\rt_manif.bin" #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""SyserOption.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "SyserOption.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/SyserOption/Source/SyserOption.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "SyserOption" #define VER_INTERNALNAME_STR "SyserOption" #define VER_ORIGINALFILENAME_STR "SyserOption.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/SyserOption/Source/SyserOptionApp.cpp ================================================ #include "StdAfx.h" #include "SyserOptionApp.h" CSyserOptionApp theApp; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return theApp.WinMainStart(hInstance,lpCmdLine,nCmdShow); } CSyserOptionApp::CSyserOptionApp(void) { STZeroMemory(m_VersionInfo); m_VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&m_VersionInfo); GetModulePath(m_szSyserAppCfgFN); TStrCat(m_szSyserAppCfgFN,"SyserApp.cfg"); GetSystemDirectoryA(m_szSyserCfgFN,MAX_FN_LEN); TStrCat(m_szSyserCfgFN,"\\drivers\\Syser.cfg"); GetSystemDirectoryA(m_szColorCfgFN,MAX_FN_LEN); TStrCat(m_szColorCfgFN,"\\drivers\\SyserColor.cfg"); OrgSyserOption.CRCCode = GetCRCCode(RT_PBYTE(&OrgSyserOption,sizeof(DWORD)),sizeof(OrgSyserOption)-sizeof(DWORD)); OrgSyserAppOption.CRCCode = GetCRCCode(RT_PBYTE(&OrgSyserAppOption,sizeof(DWORD)),sizeof(OrgSyserAppOption)-sizeof(DWORD)); OrgColorOption.CRCCode = GetCRCCode(RT_PBYTE(&OrgColorOption,sizeof(DWORD)),sizeof(OrgColorOption)-sizeof(DWORD)); } CSyserOptionApp::~CSyserOptionApp(void) { } void CSyserOptionApp::InitEnv() { __try { m_MainFrame.m_OptionPage.FillOptionTreeValue(NULL); } __except(EXCEPTION_EXECUTE_HANDLER) {//ֵǷ SaveSyserOption(m_szSyserAppCfgFN,&OrgSyserAppOption,sizeof(OrgSyserAppOption)); SyserAppOption = OrgSyserAppOption; SaveSyserOption(m_szSyserCfgFN,&OrgSyserOption,sizeof(OrgSyserOption)); SyserOption = OrgSyserOption; SaveSyserOption(m_szColorCfgFN,&OrgColorOption,sizeof(OrgColorOption)); ColorOption = OrgColorOption; m_MainFrame.m_OptionPage.FillOptionTreeValue(NULL); } } void CSyserOptionApp::LoadCFG() { if(LoadSyserOption(m_szSyserAppCfgFN,&SyserAppOption,sizeof(SyserAppOption))==false) { SaveSyserOption(m_szSyserAppCfgFN,&OrgSyserAppOption,sizeof(OrgSyserAppOption)); SyserAppOption = OrgSyserAppOption; } if(LoadSyserOption(m_szSyserCfgFN,&SyserOption,sizeof(SyserOption))==false) { SaveSyserOption(m_szSyserCfgFN,&OrgSyserOption,sizeof(OrgSyserOption)); SyserOption = OrgSyserOption; } if(LoadSyserOption(m_szColorCfgFN,&ColorOption,sizeof(ColorOption))==false) { SaveSyserOption(m_szColorCfgFN,&OrgColorOption,sizeof(OrgColorOption)); ColorOption = OrgColorOption; } } void CSyserOptionApp::SendSyserMsg(DWORD Msg) { HANDLE hSyser = CreateFile("\\\\.\\Syser",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); if(hSyser!=INVALID_HANDLE_VALUE) { DWORD cbReturn; DeviceIoControl(hSyser,Msg,NULL,0,NULL,0,&cbReturn,NULL); CloseHandle(hSyser); } } void CSyserOptionApp::SendSyserAppMsg(DWORD Msg) { HWND hWnd = FindWindow(NULL,MAIN_WND_NAME); if(hWnd) { ::SendMessage(hWnd,WM_SYSER_APP_RELOAD_CFG,0,0); } } bool CSyserOptionApp::InitInstance() { ////////////////////////////////////////////////////////////////////////////// //ļĿ¼ GetSystemDirectory(m_CurDir,MAX_FN_LEN); TStrCat(m_CurDir,"\\drivers\\"); // ////////////////////////////////////////////////////////////////////////////// m_pszDiskList = "Wisp.dat;Syser.dat"; if(CLocalWispApp::InitInstance()==false) return false; LoadCFG(); m_bHideMouse = true; m_hIcon = LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IDI_ICON_SYSER_OPTION)); m_FrameStyle&=~WS_VISIBLE; m_FrameStyleEx|=WS_EX_TOPMOST; if(TStrIStr(m_pCmdLine,"/boot")) { m_FrameStyle&=~(WS_MAXIMIZEBOX|WS_THICKFRAME); CreateFrame(WSTR("Boot Mode"),200,300,0); m_BootOptionForm.CreateForm(); m_BootOptionForm.Resize(m_FrameBuffer.Width,m_FrameBuffer.Height); ShowWindow(m_hLocalWnd,SW_NORMAL); return true; } else if(TStrIStr(m_pCmdLine,"/video")) { m_FrameStyle&=~(WS_MAXIMIZEBOX|WS_THICKFRAME); CreateFrame(WSTR("Syser Video Detect Mode"),300,300,0); m_VideoModeForm.CreateForm(); m_VideoModeForm.Resize(m_FrameBuffer.Width,m_FrameBuffer.Height); ShowWindow(m_hLocalWnd,SW_NORMAL); } else { CreateFrame(WSTR("Syser Option"),560,400,0); m_MainFrame.Create(NULL,0,0,0,0,NULL,WISP_ID_MAIN_FRAME,WISP_WS_NULL); m_MainFrame.Resize(m_FrameBuffer.Width,m_FrameBuffer.Height); ShowWindow(m_hLocalWnd,SW_NORMAL); InitEnv(); } return true; } int CSyserOptionApp::ExitInstance() { m_MainFrame.Destroy(); DestroyFrame(); return CLocalWispApp::ExitInstance(); } ================================================ FILE: Project/SyserOption/Source/SyserOptionApp.h ================================================ #ifndef _SYSER_OPTION_APP_H_ #define _SYSER_OPTION_APP_H_ #include "MainFrame.h" #include "BootOptionForm.h" #include "VideoModeForm.h" class CSyserOptionApp : public CLocalWispApp { public: CSyserOptionApp(void); ~CSyserOptionApp(void); virtual bool InitInstance(); virtual int ExitInstance(); void InitEnv(); void LoadCFG(); void SendSyserMsg(DWORD Msg); void SendSyserAppMsg(DWORD Msg); char m_szColorCfgFN[MAX_FN_LEN]; char m_szSyserCfgFN[MAX_FN_LEN]; char m_szSyserAppCfgFN[MAX_FN_LEN]; CMainFrame m_MainFrame; COptionPage m_OptionPage; CBootOptionForm m_BootOptionForm; CVideoModeForm m_VideoModeForm; OSVERSIONINFO m_VersionInfo; }; extern CSyserOptionApp theApp; #endif ================================================ FILE: Project/SyserOption/Source/VideoModeForm.cpp ================================================ #include "StdAfx.h" #include "VideoModeForm.h" #include "SyserOptionApp.h" enum CVideoModeForm::WISP_FORM_ID { CMD_ID_VDM_AUTO = WISP_ID_USER_START, CMD_ID_VDM_USER, CMD_ID_VDM_KERNEL }; WISP_FORM_RES_ITEM CVideoModeForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,300,300}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Video Detect Mode") }, { WISP_CTRL_STATIC_DIB, {123,30,32,32}, WISP_ID_NULL, WISP_WS_NULL, NULL, "\\SyserIcon\\Syser.ico:2" }, { WISP_CTRL_STATIC_GROUP, {10,10,280,280}, WISP_ID_NULL, WISP_WS_NULL, WSTR("You must restart syser to apply"), }, { WISP_CTRL_RADIO_BOX, {60,110,260,20}, CMD_ID_VDM_AUTO, WISP_CBS_NORMAL, WSTR("Auto (if you don't care)"), NULL, }, { WISP_CTRL_RADIO_BOX, {60,160,260,20}, CMD_ID_VDM_USER, WISP_CBS_NORMAL, WSTR("User Mode (High Compatibility)"), NULL, }, { WISP_CTRL_RADIO_BOX, {60,210,260,20}, CMD_ID_VDM_KERNEL, WISP_CBS_NORMAL, WSTR("Kernel Mode (Supports DirectX)"), NULL, }, { WISP_CTRL_BUTTON, {120,250,60,18}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CVideoModeForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CVideoModeForm) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END bool CVideoModeForm::OnFormCreate(IN WISP_MSG*pMsg) { m_pAutoBT = (CWispRadioBox*)GetFormItem(CMD_ID_VDM_AUTO); m_pUserBT = (CWispRadioBox*)GetFormItem(CMD_ID_VDM_USER); m_pKernelBT = (CWispRadioBox*)GetFormItem(CMD_ID_VDM_KERNEL); if(LoadSyserOption(theApp.m_szSyserCfgFN,&SyserOption,sizeof(SyserOption))==false) { SaveSyserOption(theApp.m_szSyserCfgFN,&OrgSyserOption,sizeof(OrgSyserOption)); SyserOption = OrgSyserOption; } m_VideoModeType = SyserOption.iVideoDetectMode; switch(m_VideoModeType) { case SYSER_VDM_AUTO: m_pAutoBT->Check(); break; case SYSER_VDM_USER: m_pUserBT->Check(); break; case SYSER_VDM_KERNEL: m_pKernelBT->Check(); break; } m_OldVideoModeType = m_VideoModeType; return true; } bool CVideoModeForm::OnOK(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg != WISP_CMD_BT_UP) return true; if(m_pAutoBT->m_Style&WISP_WS_MARKED) m_VideoModeType = SYSER_VDM_AUTO; else if(m_pUserBT->m_Style&WISP_WS_MARKED) m_VideoModeType = SYSER_VDM_USER; else if(m_pKernelBT->m_Style&WISP_WS_MARKED) m_VideoModeType = SYSER_VDM_KERNEL; else m_VideoModeType = -1; if(m_OldVideoModeType != m_VideoModeType && m_VideoModeType!=-1) { SyserOption.iVideoDetectMode = m_VideoModeType; SaveSyserOption(theApp.m_szSyserCfgFN,&SyserOption,sizeof(SyserOption)); } return true; } ================================================ FILE: Project/SyserOption/Source/VideoModeForm.h ================================================ #ifndef _VIDEO_MODE_FORM_H_ #define _VIDEO_MODE_FORM_H_ class CVideoModeForm : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK); CVideoModeForm(){m_pFormRes = m_FormRes;m_VideoModeType = -1;} CWispRadioBox* m_pAutoBT; CWispRadioBox* m_pUserBT; CWispRadioBox* m_pKernelBT; int m_VideoModeType; int m_OldVideoModeType; }; #endif ================================================ FILE: Project/SyserOption/Source/resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by SyserOption.rc // #define IDR_RT_MANIFEST 1 #define IDI_ICON1 101 #define IDI_ICON_SYSER_OPTION 101 #define IDI_ICON2 103 #define IDI_ICON_GEAR 103 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 104 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/SyserOption/Win32/SyserOption.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SyserOption", "SyserOption.vcproj", "{019BD290-B361-4955-A6BA-950691B47459}" ProjectSection(ProjectDependencies) = postProject {142E5B2E-BB1F-42A2-B357-81F97F85F86E} = {142E5B2E-BB1F-42A2-B357-81F97F85F86E} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} = {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\Win32\Wisp.vcproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "..\..\WinWisp\Win32\WinWisp.vcproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {019BD290-B361-4955-A6BA-950691B47459}.Debug|Win32.ActiveCfg = Debug|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Debug|Win32.Build.0 = Debug|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Release|Win32.ActiveCfg = Release|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Release|Win32.Build.0 = Release|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Trial|Win32.ActiveCfg = Release|Win32 {019BD290-B361-4955-A6BA-950691B47459}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.Build.0 = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.ActiveCfg = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.Build.0 = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.Build.0 = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.ActiveCfg = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SyserOption/Win32/SyserOption.vcproj ================================================ ================================================ FILE: Project/SyserOption/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/SyserOption/incfile.txt ================================================ ================================================ FILE: Project/SyserOption/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/SyserTools/SyserTools.cpp ================================================ // SyserTools.cpp : Defines the entry point for the console application. // #include "stdafx.h" CAPIMap APIMap; PCSTR APIPrefixList[]= { "WINSOCK_API_LINKAGE", "NTKERNELAPI", "WINBASEAPI", "NTHALAPI", "NTSYSAPI", "WINADVAPI", "WINGDIAPI", "WINUSERAPI", "WINMMAPI", NULL }; PCSTR APIMidList[]= { "PASCAL FAR", "NTAPI", "WINAPI", "APIENTRY", "WSAAPI", "VFWAPI", "NTSTATUS\r\nNt", "VOID\r\nRtl", "NTSTATUS\r\nRtl", NULL }; PCSTR StdcallList[]= { "PASCAL FAR", "NTAPI", "APIENTRY", "WINAPI", "WSAAPI", NULL }; PCSTR FastcallList[]= { "FASTCALL", NULL }; PCSTR InlineList[]= { "__inline", "INLINE", NULL }; int APIPrefixLength[32]; int APIMidLength[32]; int StdcallLength[32]; int FastcallLength[32]; int InlineLength[32]; bool IsValName(char Str) { if((Str>='0'&&Str<='9')||(Str>='a'&&Str<='z')||(Str>='A'&&Str<='Z')) return true; if(Str=='_') return true; return false; } bool IsIgnoreChar(char Str) { return TStrChr("\r\n",Str)!=NULL; } bool CutAPIDefStr(PSTR pStr,PCSTR*pList,int*pLength) { bool bCutted; int n=0; bCutted=false; while(pList[n]) { if(_GET_DWORD(pStr)==_GET_DWORD(pList[n]) && TStrNCmp(pList[n],pStr,pLength[n])==0) { bCutted = true; if(pStr[pLength[n]]==' ') TStrCpy(pStr,&pStr[pLength[n]+1]); else TStrCpy(pStr,&pStr[pLength[n]]); n=0; } else n++; } return bCutted; } bool IsAPIDefStr(PSTR pStr,PCSTR*pList,int*pLength) { int n=0; while(pList[n]) { if(_GET_DWORD(pStr)==_GET_DWORD(pList[n])) { if(TStrNCmp(pList[n],pStr,pLength[n])==0) return true; } n++; } return false; } void AnalyzerAPIParam(PSTR szFunc) { CALL_TYPE CallType = TYPE_STDCALL; PSTR pStr,pStrEnd; pStr=szFunc; while(*pStr) { CutAPIDefStr(pStr,APIPrefixList,APIPrefixLength); if(CutAPIDefStr(pStr,StdcallList,StdcallLength)) CallType = TYPE_STDCALL; if(CutAPIDefStr(pStr,FastcallList,FastcallLength)) CallType = TYPE_FASTCALL; if(CutAPIDefStr(pStr,InlineList,InlineLength)) { CallType = TYPE_INLINE; return; } pStr++; } pStrEnd = TStrChr(szFunc,'('); pStr = pStrEnd-1; while(IsValName(*pStr)) pStr--; *pStr=0; *pStrEnd=0; CAPIMap::IT Iter = APIMap.InsertUnique(&pStr[1]); if(Iter.IsExist()==false) return; Iter->Return = szFunc; Iter->CallType = CallType; pStrEnd++; pStr=pStrEnd; while(*pStrEnd) { if(*pStrEnd==','||*pStrEnd==')') { *pStrEnd=0; Iter->ParamList.Append(pStr); pStr=&pStrEnd[1]; } pStrEnd++; } if(Iter->ParamList.Count()==1 && TStrICmp((PCSTR)*Iter->ParamList.Begin(),"VOID")==0) { Iter->ParamList.Clear(); } } PSTR AnalyzerAPIDefine(PSTR szStart) { int n,Step; bool bIsSplitCharExist; CHAR szFuncDefine[1024]; PSTR szCur,pStr; szCur = szStart; n=0; Step=0; bIsSplitCharExist = true; while(nXScan("APILib\\*.h",ScanCallBack,0,false); LibSize = 0; if(APIMap.Count()) LibSize = SaveLib("APIDef.lib"); CALTFileStream FileStream; if(FileStream.Create("API.TXT")==false) return 0; for(CAPIMap::IT APIIter = APIMap.Begin();APIIter != APIMap.End();APIIter++) { //printf("%s\n",(PCSTR)APIIter.Key()); Length =TStrCpy(szBuffer,(PCSTR)APIIter->Return); Length+=TStrCpy(&szBuffer[Length]," "); Length+=TStrCpy(&szBuffer[Length],(PCSTR)APIIter.Key()); Length+=TStrCpy(&szBuffer[Length],"("); for(TList::IT Iter=APIIter->ParamList.Begin();Iter!=APIIter->ParamList.End();Iter++) { Length+=TStrCpy(&szBuffer[Length],(PCSTR)*Iter); if(Iter!=APIIter->ParamList.Last()) Length+=TStrCpy(&szBuffer[Length],","); } Length+=TStrCpy(&szBuffer[Length],")"); Length+=TStrCpy(&szBuffer[Length],"\r\n"); FileStream.Puts(szBuffer,Length); } FileStream.Close(); printf("%d API(s)\n",APIMap.Count()); FileStream.Open("APIDef.lib"); Length = APIMap.Load(FileStream); FileStream.Close(); int MaxParamCount=0,MaxStrLen=0; for(CAPIMap::IT APIIter = APIMap.Begin();APIIter.IsExist();APIIter++) { TStrCpy(szBuffer,(PCSTR)APIIter.Key()); if(APIIter->ParamList.Count()>MaxParamCount) { MaxParamCount = APIIter->ParamList.Count(); } for(TList::IT ParamIter=APIIter->ParamList.Begin();ParamIter!=APIIter->ParamList.End();ParamIter++) { if(ParamIter->Length()>MaxStrLen) MaxStrLen = ParamIter->Length(); TStrCpy(szBuffer,(PCSTR)*ParamIter); } } printf("Save Length = %d , Load Length = %d\n",LibSize,Length); return 0; } ================================================ FILE: Project/SyserTools/SyserTools.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "SyserTools" #define VER_INTERNALNAME_STR "SyserTools" #define VER_ORIGINALFILENAME_STR "SyserTools.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/SyserTools/SyserTools.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SyserTools", "SyserTools.vcproj", "{FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}" ProjectSection(ProjectDependencies) = postProject {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}.Debug|Win32.ActiveCfg = Debug|Win32 {FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}.Debug|Win32.Build.0 = Debug|Win32 {FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}.Release|Win32.ActiveCfg = Release|Win32 {FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}.Release|Win32.Build.0 = Release|Win32 {FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}.Trial|Win32.ActiveCfg = Release|Win32 {FBA9CAEC-68EB-4975-9A65-0EBB4A0B82D9}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/SyserTools/SyserTools.vcproj ================================================ ================================================ FILE: Project/SyserTools/stdafx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // SyserTools.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: Project/SyserTools/stdafx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #include #include #include "../Code/Source/Code.h" #include "../Syser/Source/SyserDefine.h" // TODO: reference additional headers your program requires here ================================================ FILE: Project/Unicode/Source/Makefile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/Unicode/Source/Sources ================================================ TARGETNAME=Unicode TARGETPATH=Obj TARGETTYPE=DRIVER_LIBRARY PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=StdAfx.h SOURCES= casemap.cpp \ compose.cpp \ cptable.cpp \ c_037.cpp \ c_042.cpp \ c_10000.cpp \ c_10006.cpp \ c_10007.cpp \ c_10029.cpp \ c_1006.cpp \ c_10079.cpp \ c_10081.cpp \ c_1026.cpp \ c_1250.cpp \ c_1251.cpp \ c_1252.cpp \ c_1253.cpp \ c_1254.cpp \ c_1255.cpp \ c_1256.cpp \ c_1257.cpp \ c_1258.cpp \ c_20866.cpp \ c_20932.cpp \ c_28591.cpp \ c_28592.cpp \ c_28593.cpp \ c_28594.cpp \ c_28595.cpp \ c_28596.cpp \ c_28597.cpp \ c_28598.cpp \ c_28599.cpp \ c_28600.cpp \ c_28603.cpp \ c_28604.cpp \ c_28605.cpp \ c_28606.cpp \ c_424.cpp \ c_437.cpp \ c_500.cpp \ c_737.cpp \ c_775.cpp \ c_850.cpp \ c_852.cpp \ c_855.cpp \ c_856.cpp \ c_857.cpp \ c_860.cpp \ c_861.cpp \ c_862.cpp \ c_863.cpp \ c_864.cpp \ c_865.cpp \ c_866.cpp \ c_869.cpp \ c_874.cpp \ c_875.cpp \ c_878.cpp \ c_932.cpp \ c_936.cpp \ c_949.cpp \ c_950.cpp \ mbtowc.cpp \ string.cpp \ utf8.cpp \ wctomb.cpp \ wctype.cpp ================================================ FILE: Project/Unicode/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/Unicode/Source/StdAfx.h ================================================ #include #include #include ================================================ FILE: Project/Unicode/Source/c_037.cpp ================================================ /* code page 037 (IBM EBCDIC US Canada) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, 0xbd, 0xb4, 0x9a, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0x0100 .. 0x01ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, 0xac, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0x3f, 0x63, 0x43, 0xc1, 0x81, 0x9e, 0x9c, 0xc7, 0x87, 0xc7, 0x87, 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, 0xd5, 0x95, 0x67, 0x47, 0x9e, 0x9c, 0x80, 0x70, /* 0x0200 .. 0x02ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc5, 0x85, 0xec, 0xcc, 0xef, 0xcf, 0xd6, 0x96, 0xd6, 0x96, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, 0xa8, 0xbe, 0x7f, 0x79, 0x7d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0xb0, 0xa5, 0x7d, 0xbc, 0xbe, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, 0x3f, 0x93, 0xa2, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x79, 0xbe, 0xb0, 0xa1, 0xbc, 0xbc, 0x3f, 0x3f, 0xbd, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x79, 0xbe, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0xe8, 0xe8, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0x68, 0x48, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0x77, 0x57, 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xef, 0xcf, 0xef, 0xcf, 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0x62, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x42, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x6d, 0x79, 0x7d, 0x6b, 0x79, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0xbe, 0x7f, 0x3f, 0x79, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x5a, 0x3f, 0xbc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4a, 0x3f, 0x3f, 0xb1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0xd2, 0x67, 0xc2, 0xc3, 0x85, 0x85, 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0xb0, 0x6e, 0xa5, 0x60, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xe0, 0x5c, 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x60, 0x60, 0x4f, 0x4f, 0x60, 0x60, 0x6a, 0x6a, 0x60, 0x60, 0x6a, 0x6a, 0x4e, 0x4e, 0x4e, 0x4e, 0x5f, 0x5f, 0x5f, 0x5f, 0xd3, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x6a, 0x6a, 0x7e, 0x4f, 0x4e, 0x4e, 0x4e, 0x5f, 0x5f, 0x5f, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xba, 0xbb, 0x3f, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x5a, 0x60, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, 0xe0, 0x5b, 0x6c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4a, 0xb1, 0x5f, 0xbc, 0x6a, 0xb2, 0x3f, 0x3f, 0x4f, 0x4c, 0xb0, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_037 = { { 37, 1, 0x003f, 0x003f, "IBM EBCDIC US Canada" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_042.cpp ================================================ /* code page 042 (Symbol) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x2200, 0x0023, 0x2203, 0x0025, 0x0026, 0x220b, 0x0028, 0x0029, 0x2217, 0x002b, 0x002c, 0x2212, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x2245, 0x0391, 0x0392, 0x03a7, 0x0394, 0x0395, 0x03a6, 0x0393, 0x0397, 0x0399, 0x03d1, 0x039a, 0x039b, 0x039c, 0x039d, 0x039f, 0x03a0, 0x0398, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03c2, 0x03a9, 0x039e, 0x03a8, 0x0396, 0x005b, 0x2234, 0x005d, 0x22a5, 0x005f, 0xf8e5, 0x03b1, 0x03b2, 0x03c7, 0x03b4, 0x03b5, 0x03c6, 0x03b3, 0x03b7, 0x03b9, 0x03d5, 0x03ba, 0x03bb, 0x00b5, 0x03bd, 0x03bf, 0x03c0, 0x03b8, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03d6, 0x03c9, 0x03be, 0x03c8, 0x03b6, 0x007b, 0x007c, 0x007d, 0x223c, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x20ac, 0x03d2, 0x2032, 0x2264, 0x2044, 0x221e, 0x0192, 0x2663, 0x2666, 0x2665, 0x2660, 0x2194, 0x2190, 0x2191, 0x2192, 0x2193, 0x00b0, 0x00b1, 0x2033, 0x2265, 0x00d7, 0x221d, 0x2202, 0x2022, 0x00f7, 0x2260, 0x2261, 0x2248, 0x2026, 0xf8e6, 0xf8e7, 0x21b5, 0x2135, 0x2111, 0x211c, 0x2118, 0x2297, 0x2295, 0x2205, 0x2229, 0x222a, 0x2283, 0x2287, 0x2284, 0x2282, 0x2286, 0x2208, 0x2209, 0x2220, 0x2207, 0xf6da, 0xf6d9, 0xf6db, 0x220f, 0x221a, 0x22c5, 0x00ac, 0x2227, 0x2228, 0x21d4, 0x21d0, 0x21d1, 0x21d2, 0x21d3, 0x25ca, 0x2329, 0xf8e8, 0xf8e9, 0xf8ea, 0x2211, 0xf8eb, 0xf8ec, 0xf8ed, 0xf8ee, 0xf8ef, 0xf8f0, 0xf8f1, 0xf8f2, 0xf8f3, 0xf8f4, 0x00f0, 0x232a, 0x222b, 0x2320, 0xf8f5, 0x2321, 0xf8f6, 0xf8f7, 0xf8f8, 0xf8f9, 0xf8fa, 0xf8fb, 0xf8fc, 0xf8fd, 0xf8fe, 0x00ff }; static const unsigned char uni2cp_low[4864] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x3f, 0x23, 0x3f, 0x25, 0x26, 0x3f, 0x28, 0x29, 0x3f, 0x2b, 0x2c, 0x3f, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x3f, 0x5d, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7b, 0x7c, 0x7d, 0x3f, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0x20, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0xd8, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0x32, 0x33, 0xa2, 0x6d, 0x3f, 0x3f, 0x2c, 0x31, 0x3f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, /* 0x0100 .. 0x01ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc6, 0x3f, /* 0x0200 .. 0x02ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x55, 0x57, 0x69, 0x41, 0x42, 0x47, 0x44, 0x45, 0x5a, 0x48, 0x51, 0x49, 0x4b, 0x4c, 0x4d, 0x4e, 0x58, 0x4f, 0x50, 0x52, 0x3f, 0x53, 0x54, 0x55, 0x46, 0x43, 0x59, 0x57, 0x49, 0x55, 0x61, 0x65, 0x68, 0x69, 0x75, 0x61, 0x62, 0x67, 0x64, 0x65, 0x7a, 0x68, 0x71, 0x69, 0x6b, 0x6c, 0x6d, 0x6e, 0x78, 0x6f, 0x70, 0x72, 0x56, 0x73, 0x74, 0x75, 0x66, 0x63, 0x79, 0x77, 0x69, 0x75, 0x6f, 0x75, 0x77, 0x3f, 0x62, 0x4a, 0xa1, 0xa1, 0xa1, 0x6a, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6b, 0x72, 0x56, 0x3f, 0x51, 0x65, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x75, 0x3f, 0x55, 0x3f, 0x55, 0x3f, 0x55, 0x3f, 0x55, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x61, 0x61, 0x65, 0x65, 0x68, 0x68, 0x69, 0x69, 0x6f, 0x6f, 0x75, 0x75, 0x77, 0x77, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x57, 0x61, 0x61, 0x61, 0x61, 0x61, 0x3f, 0x61, 0x61, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x68, 0x68, 0x68, 0x3f, 0x68, 0x68, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x69, 0x69, 0x69, 0x69, 0x3f, 0x3f, 0x69, 0x69, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x75, 0x75, 0x75, 0x72, 0x72, 0x75, 0x75, 0x55, 0x55, 0x55, 0x55, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x77, 0x77, 0x77, 0x3f, 0x77, 0x77, 0x4f, 0x4f, 0x57, 0x57, 0x57, 0xa2, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x2e, 0x3f, 0xbc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xa2, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0xc2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x57, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x47, 0x50, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0xad, 0xae, 0xaf, 0xab, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0xae, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdb, 0xde, 0xdc, 0xdd, 0xde, 0xdf, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x22, 0x3f, 0xb6, 0x24, 0x24, 0xc6, 0x44, 0xd1, 0xce, 0xcf, 0x3f, 0x27, 0x27, 0x3f, 0x3f, 0xd5, 0x3f, 0xe5, 0x2d, 0xb1, 0x3f, 0xa4, 0x3f, 0x2a, 0xb0, 0xb7, 0xd6, 0x3f, 0x3f, 0xb5, 0xa5, 0x3f, 0xd0, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0xd9, 0xda, 0xc7, 0xc8, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5c, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x40, 0xbb, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb9, 0xba, 0xba, 0xba, 0xa3, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0xa3, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0xc9, 0xcb, 0xc9, 0xcd, 0xca, 0xcd, 0xca, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf3, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0xf1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xd8, 0xd8, 0xd8, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xd8, 0xd8, 0xd8, 0x3f, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x7c, 0x3f, 0x7c, 0x3f, 0x7c, 0x3f, 0x7c, 0x3f, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2600 .. 0x26ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x3f, 0xa7, 0x3f, 0xa9, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xf600 .. 0xf6ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, 0xd2, 0xd4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xf800 .. 0xf8ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xbd, 0xbe, 0xe2, 0xe3, 0xe4, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf4, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x3f, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x3f, 0x2b, 0x3f, 0x3c, 0x3e, 0x3d, 0x3f, 0x3f, 0x3f, 0x25, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x3f, 0x23, 0x3f, 0x25, 0x26, 0x3f, 0x28, 0x29, 0x3f, 0x2b, 0x2c, 0x3f, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x3f, 0x5d, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7b, 0x7c, 0x7d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0xac, 0xad, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0c00, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x1200, 0x0d00, 0x1200, 0x0e00, 0x1200, 0x1200, 0x0f00, 0x1200, 0x1200, 0x1000, 0x1100 }; const struct sbcs_table cptable_042 = { { 42, 1, 0x003f, 0x003f, "Symbol" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_10000.cpp ================================================ /* code page 10000 (Mac Roman) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/ROMAN.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x2044, 0x00a4, 0x2039, 0x203a, 0xfb01, 0xfb02, 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0x003f, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x3f, 0xa4, 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x2d, 0xa8, 0xf8, 0xa1, 0xb1, 0x32, 0x33, 0xab, 0xb5, 0xa6, 0xe1, 0xfc, 0x31, 0xbc, 0xc8, 0x3f, 0x3f, 0x3f, 0xc0, 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0x44, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x78, 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x59, 0x3f, 0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, 0x64, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x79, 0x3f, 0xd8, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0xf5, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0xce, 0xcf, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0xd9, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, 0x41, 0x61, 0xae, 0xbe, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x81, 0x8c, 0xae, 0xbe, 0xaf, 0xbf, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xab, 0xfd, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0xf6, 0xff, 0x27, 0xf8, 0xab, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xab, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, 0xac, 0x3f, 0xfb, 0xfd, 0xff, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xab, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xac, 0x41, 0xe1, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x82, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xec, 0x95, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xe5, 0x89, 0xe5, 0x89, 0xe5, 0x89, 0xe5, 0x89, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, 0xa0, 0xe0, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0xe4, 0x3f, 0xab, 0xfd, 0x3f, 0xd4, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x21, 0x3f, 0xf8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfb, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0xbd, 0x3f, 0x5a, 0x3f, 0x4b, 0x81, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xf6, 0xdd, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0xaf, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0xb7, 0x2d, 0xb1, 0x3f, 0xda, 0x5c, 0x2a, 0xfb, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd7, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0xde, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0xf8, 0xf8, 0xf8, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xc2, 0xf8, 0x3f, 0xb4, 0x3f, 0x3f, 0x7c, 0xdc, 0xf6, 0xdd, 0xff, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_10000 = { { 10000, 1, 0x003f, 0x003f, "Mac Roman" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_10006.cpp ================================================ /* code page 10006 (Mac Greek) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/GREEK.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00b9, 0x00b2, 0x00c9, 0x00b3, 0x00d6, 0x00dc, 0x0385, 0x00e0, 0x00e2, 0x00e4, 0x0384, 0x00a8, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00a3, 0x2122, 0x00ee, 0x00ef, 0x2022, 0x00bd, 0x2030, 0x00f4, 0x00f6, 0x00a6, 0x00ad, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x0393, 0x0394, 0x0398, 0x039b, 0x039e, 0x03a0, 0x00df, 0x00ae, 0x00a9, 0x03a3, 0x03aa, 0x00a7, 0x2260, 0x00b0, 0x0387, 0x0391, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x0392, 0x0395, 0x0396, 0x0397, 0x0399, 0x039a, 0x039c, 0x03a6, 0x03ab, 0x03a8, 0x03a9, 0x03ac, 0x039d, 0x00ac, 0x039f, 0x03a1, 0x2248, 0x03a4, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x03a5, 0x03a7, 0x0386, 0x0388, 0x0153, 0x2013, 0x2015, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x0389, 0x038a, 0x038c, 0x038e, 0x03ad, 0x03ae, 0x03af, 0x03cc, 0x038f, 0x03cd, 0x03b1, 0x03b2, 0x03c8, 0x03b4, 0x03b5, 0x03c6, 0x03b3, 0x03b7, 0x03b9, 0x03be, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03bf, 0x03c0, 0x03ce, 0x03c1, 0x03c3, 0x03c4, 0x03b8, 0x03c9, 0x03c2, 0x03c7, 0x03c5, 0x03b6, 0x03ca, 0x03cb, 0x0390, 0x03b0, 0x003f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xca, 0x21, 0x63, 0x92, 0x3f, 0xb4, 0x9b, 0xac, 0x8c, 0xa9, 0x61, 0xc7, 0xc2, 0x9c, 0xa8, 0xd0, 0xae, 0xb1, 0x82, 0x84, 0x27, 0xed, 0x3f, 0x3f, 0x2c, 0x81, 0x6f, 0xc8, 0x3f, 0x97, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x80, 0x41, 0x41, 0x43, 0x45, 0x83, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x85, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x86, 0x59, 0x3f, 0xa7, 0x88, 0x61, 0x89, 0x61, 0x8a, 0x61, 0x61, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x69, 0x69, 0x94, 0x95, 0x64, 0x6e, 0x6f, 0x6f, 0x99, 0x6f, 0x9a, 0xd6, 0x6f, 0x9d, 0x75, 0x9e, 0x9f, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0xcf, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x85, 0x9a, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xd0, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0xd0, 0xd0, 0x3f, 0x3f, 0x8c, 0x3f, 0xae, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x87, 0xcd, 0xaf, 0xce, 0xd7, 0xd8, 0x3f, 0xd9, 0x3f, 0xda, 0xdf, 0xfd, 0xb0, 0xb5, 0xa1, 0xa2, 0xb6, 0xb7, 0xb8, 0xa3, 0xb9, 0xba, 0xa4, 0xbb, 0xc1, 0xa5, 0xc3, 0xa6, 0xc4, 0x3f, 0xaa, 0xc6, 0xcb, 0xbc, 0xcc, 0xbe, 0xbf, 0xab, 0xbd, 0xc0, 0xdb, 0xdc, 0xdd, 0xfe, 0xe1, 0xe2, 0xe7, 0xe4, 0xe5, 0xfa, 0xe8, 0xf5, 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xea, 0xef, 0xf0, 0xf2, 0xf7, 0xf3, 0xf4, 0xf9, 0xe6, 0xf8, 0xe3, 0xf6, 0xfb, 0xfc, 0xde, 0xe0, 0xf1, 0x3f, 0xe2, 0xf5, 0xcb, 0xcb, 0xcb, 0xe6, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xeb, 0xf2, 0xf7, 0x3f, 0xa3, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x95, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x89, 0x41, 0x89, 0x41, 0x89, 0x41, 0x89, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x90, 0x45, 0x90, 0x45, 0x90, 0x45, 0x90, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x99, 0x4f, 0x99, 0x4f, 0x99, 0x4f, 0x99, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x3f, 0x3f, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xb9, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x3f, 0x3f, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x3f, 0x3f, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0x3f, 0xcb, 0x3f, 0xcb, 0x3f, 0xcb, 0x3f, 0xcb, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xe1, 0xc0, 0xe5, 0xdb, 0xe8, 0xdc, 0xe9, 0xdd, 0xef, 0xde, 0xf9, 0xe0, 0xf6, 0xf1, 0x3f, 0x3f, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xe8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xb8, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xf6, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xe1, 0xe1, 0xe1, 0xe1, 0xc0, 0x3f, 0xe1, 0xe1, 0xb0, 0xb0, 0xb0, 0xcd, 0xb0, 0x3f, 0xe9, 0x3f, 0x3f, 0x8c, 0xe8, 0xe8, 0xdc, 0x3f, 0xe8, 0xe8, 0xb6, 0xce, 0xb8, 0xd7, 0xb8, 0x3f, 0x3f, 0x3f, 0xe9, 0xe9, 0xfb, 0xfd, 0x3f, 0x3f, 0xe9, 0xfb, 0xb9, 0xb9, 0xb9, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0xf9, 0xfc, 0xfe, 0xf2, 0xf2, 0xf9, 0xfc, 0xcb, 0xcb, 0xcb, 0xda, 0xc4, 0x8c, 0x87, 0x60, 0x3f, 0x3f, 0xf6, 0xf6, 0xf1, 0x3f, 0xf6, 0xf6, 0xc3, 0xd9, 0xbf, 0xdf, 0xbf, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xd0, 0xd0, 0xd1, 0x3f, 0x5f, 0xd4, 0xd5, 0x2c, 0xd4, 0xd2, 0xd3, 0x2c, 0x3f, 0xa0, 0x3f, 0x96, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x98, 0x3f, 0x27, 0x22, 0x3f, 0xd4, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x93, 0x3f, 0x5a, 0x3f, 0xbf, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0xe7, 0xa1, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xae, 0x96, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x9b, 0x9b, 0x2d, 0x2d, 0x9b, 0x9b, 0x2b, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x9b, 0x9b, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0xd0, 0xd0, 0xd0, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xd0, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x92, 0xc2, 0xd0, 0x9b, 0xb4, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_10006 = { { 10006, 1, 0x003f, 0x003f, "Mac Greek" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_10007.cpp ================================================ /* code page 10007 (Mac Cyrillic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/CYRILLIC.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x0406, 0x00ae, 0x00a9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453, 0x221e, 0x00b1, 0x2264, 0x2265, 0x0456, 0x00b5, 0x2202, 0x0408, 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040a, 0x045a, 0x0458, 0x0405, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x040b, 0x045b, 0x040c, 0x045c, 0x0455, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x201e, 0x040e, 0x045e, 0x040f, 0x045f, 0x2116, 0x0401, 0x0451, 0x044f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x00a4 }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xca, 0x21, 0xa2, 0xa3, 0xff, 0x59, 0x3f, 0xa4, 0x22, 0xa9, 0x61, 0xc7, 0xc2, 0x2d, 0xa8, 0xd1, 0xa1, 0xb1, 0x32, 0x33, 0x27, 0xb5, 0xa6, 0x3f, 0x2c, 0x31, 0x6f, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xd6, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xd1, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0xd1, 0xd1, 0x3f, 0x3f, 0x22, 0x3f, 0xa1, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0x85, 0xdd, 0xab, 0xae, 0xb8, 0xc1, 0xa7, 0xba, 0xb7, 0xbc, 0xbe, 0xcb, 0xcd, 0x88, 0xd8, 0xda, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf, 0xe5, 0xde, 0xac, 0xaf, 0xb9, 0xcf, 0xb4, 0xbb, 0xc0, 0xbd, 0xbf, 0xcc, 0xce, 0xe8, 0xd9, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0xe0, 0x80, 0xe0, 0x3f, 0x3f, 0x85, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0xe6, 0x87, 0xe7, 0x3f, 0x3f, 0x88, 0xe8, 0x88, 0xe8, 0x8e, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0xfd, 0x93, 0xf3, 0x93, 0xf3, 0x93, 0xf3, 0x97, 0xf7, 0x3f, 0x3f, 0x9b, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, 0xd4, 0xd5, 0x2c, 0xd4, 0xd2, 0xd3, 0xd7, 0x3f, 0xa0, 0x3f, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0xd4, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xd1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xdc, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0x4f, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xa1, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xd7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd1, 0xd1, 0xd1, 0xd1, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xc2, 0xd1, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_10007 = { { 10007, 1, 0x003f, 0x003f, "Mac Cyrillic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_10029.cpp ================================================ /* code page 10029 (Mac Latin 2) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/LATIN2.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x0100, 0x0101, 0x00c9, 0x0104, 0x00d6, 0x00dc, 0x00e1, 0x0105, 0x010c, 0x00e4, 0x010d, 0x0106, 0x0107, 0x00e9, 0x0179, 0x017a, 0x010e, 0x00ed, 0x010f, 0x0112, 0x0113, 0x0116, 0x00f3, 0x0117, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x011a, 0x011b, 0x00fc, 0x2020, 0x00b0, 0x0118, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x0119, 0x00a8, 0x2260, 0x0123, 0x012e, 0x012f, 0x012a, 0x2264, 0x2265, 0x012b, 0x0136, 0x2202, 0x2211, 0x0142, 0x013b, 0x013c, 0x013d, 0x013e, 0x0139, 0x013a, 0x0145, 0x0146, 0x0143, 0x00ac, 0x221a, 0x0144, 0x0147, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x0148, 0x0150, 0x00d5, 0x0151, 0x014c, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x014d, 0x0154, 0x0155, 0x0158, 0x2039, 0x203a, 0x0159, 0x0156, 0x0157, 0x0160, 0x201a, 0x201e, 0x0161, 0x015a, 0x015b, 0x00c1, 0x0164, 0x0165, 0x00cd, 0x017d, 0x017e, 0x016a, 0x00d3, 0x00d4, 0x016b, 0x016e, 0x00da, 0x016f, 0x0170, 0x0171, 0x0172, 0x0173, 0x00dd, 0x00fd, 0x0137, 0x017b, 0x0141, 0x017c, 0x0122, 0x02c7 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xca, 0x21, 0x63, 0xa3, 0x3f, 0x59, 0x3f, 0xa4, 0xac, 0xa9, 0x61, 0xc7, 0xc2, 0x2d, 0xa8, 0xd1, 0xa1, 0x3f, 0x32, 0x33, 0x27, 0x75, 0xa6, 0x3f, 0x2c, 0x31, 0x6f, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xe7, 0x41, 0x41, 0x80, 0x41, 0x41, 0x43, 0x45, 0x83, 0x45, 0x45, 0x49, 0xea, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0xee, 0xef, 0xcd, 0x85, 0x78, 0x4f, 0x55, 0xf2, 0x55, 0x86, 0xf8, 0x3f, 0xa7, 0x61, 0x87, 0x61, 0x61, 0x8a, 0x61, 0x61, 0x63, 0x65, 0x8e, 0x65, 0x65, 0x69, 0x92, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x97, 0x99, 0x9b, 0x9a, 0xd6, 0x6f, 0x75, 0x9c, 0x75, 0x9f, 0xf9, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x81, 0x82, 0x41, 0x61, 0x84, 0x88, 0x8c, 0x8d, 0x43, 0x63, 0x43, 0x63, 0x89, 0x8b, 0x91, 0x93, 0x44, 0x64, 0x94, 0x95, 0x45, 0x65, 0x96, 0x98, 0xa2, 0xab, 0x9d, 0x9e, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0xfe, 0xae, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xb1, 0xb4, 0x49, 0x69, 0xaf, 0xb0, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xb5, 0xfa, 0x3f, 0xbd, 0xbe, 0xb9, 0xba, 0xbb, 0xbc, 0x3f, 0x3f, 0xfc, 0xb8, 0xc1, 0xc4, 0xbf, 0xc0, 0xc5, 0xcb, 0x3f, 0x3f, 0x3f, 0xcf, 0xd8, 0x4f, 0x6f, 0xcc, 0xce, 0x4f, 0x6f, 0xd9, 0xda, 0xdf, 0xe0, 0xdb, 0xde, 0xe5, 0xe6, 0x53, 0x73, 0x53, 0x73, 0xe1, 0xe4, 0x54, 0x74, 0xe8, 0xe9, 0x54, 0x74, 0x55, 0x75, 0xed, 0xf0, 0x55, 0x75, 0xf1, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0x57, 0x77, 0x59, 0x79, 0x59, 0x8f, 0x90, 0xfb, 0xfd, 0xeb, 0xec, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xff, 0x27, 0xd1, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0xd1, 0xd1, 0x3f, 0x3f, 0xac, 0x3f, 0xa1, 0x22, 0xff, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0xac, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x94, 0x95, 0x94, 0x95, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, 0xcf, 0xd8, 0xcf, 0xd8, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xe5, 0xe6, 0xe1, 0xe4, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xed, 0xf0, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, 0xa0, 0x3f, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0xd4, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x21, 0x3f, 0xd1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0x5e, 0xdd, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0x4f, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xa1, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd7, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd1, 0xd1, 0xd1, 0xd1, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0xa3, 0xc2, 0xd1, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0xdc, 0x5e, 0xdd, 0xff, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_10029 = { { 10029, 1, 0x003f, 0x003f, "Mac Latin 2" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1006.cpp ================================================ /* code page 1006 (IBM Arabic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP1006.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x06f0, 0x06f1, 0x06f2, 0x06f3, 0x06f4, 0x06f5, 0x06f6, 0x06f7, 0x06f8, 0x06f9, 0x060c, 0x061b, 0x00ad, 0x061f, 0xfe81, 0xfe8d, 0xfe8e, 0xfe8e, 0xfe8f, 0xfe91, 0xfb56, 0xfb58, 0xfe93, 0xfe95, 0xfe97, 0xfb66, 0xfb68, 0xfe99, 0xfe9b, 0xfe9d, 0xfe9f, 0xfb7a, 0xfb7c, 0xfea1, 0xfea3, 0xfea5, 0xfea7, 0xfea9, 0xfb84, 0xfeab, 0xfead, 0xfb8c, 0xfeaf, 0xfb8a, 0xfeb1, 0xfeb3, 0xfeb5, 0xfeb7, 0xfeb9, 0xfebb, 0xfebd, 0xfebf, 0xfec1, 0xfec5, 0xfec9, 0xfeca, 0xfecb, 0xfecc, 0xfecd, 0xfece, 0xfecf, 0xfed0, 0xfed1, 0xfed3, 0xfed5, 0xfed7, 0xfed9, 0xfedb, 0xfb92, 0xfb94, 0xfedd, 0xfedf, 0xfee0, 0xfee1, 0xfee3, 0xfb9e, 0xfee5, 0xfee7, 0xfe85, 0xfeed, 0xfba6, 0xfba8, 0xfba9, 0xfbaa, 0xfe80, 0xfe89, 0xfe8a, 0xfe8b, 0xfef1, 0xfef2, 0xfef3, 0xfbb0, 0xfbae, 0xfe7c, 0xfe7d }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0600 .. 0x06ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0xae, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0xb6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xba, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0x3f, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0x3f, 0xca, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xec, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0x3f, 0xf2, 0xf3, 0xf4, 0x3f, 0x3f, 0x3f, 0xfd, 0x3f, 0xfc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0xff, 0x3f, 0x3f, 0xf5, 0xaf, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0xf6, 0xf7, 0xf8, 0x3f, 0xb0, 0xb1, 0xb3, 0x3f, 0xb4, 0x3f, 0xb7, 0x3f, 0xb8, 0x3f, 0xb9, 0x3f, 0xbc, 0x3f, 0xbd, 0x3f, 0xbe, 0x3f, 0xbf, 0x3f, 0xc2, 0x3f, 0xc3, 0x3f, 0xc4, 0x3f, 0xc5, 0x3f, 0xc6, 0x3f, 0xc8, 0x3f, 0xc9, 0x3f, 0xcb, 0x3f, 0xcd, 0x3f, 0xce, 0x3f, 0xcf, 0x3f, 0xd0, 0x3f, 0xd1, 0x3f, 0xd2, 0x3f, 0xd3, 0x3f, 0xd4, 0x3f, 0xd5, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0x3f, 0xe0, 0x3f, 0xe1, 0x3f, 0xe2, 0x3f, 0xe3, 0x3f, 0xe4, 0x3f, 0xe7, 0x3f, 0xe8, 0xe9, 0xea, 0x3f, 0xeb, 0x3f, 0xed, 0x3f, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf0, 0x3f, 0x3f, 0x3f, 0xf9, 0xfa, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_1006 = { { 1006, 1, 0x003f, 0x003f, "IBM Arabic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_10079.cpp ================================================ /* code page 10079 (Mac Icelandic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/ICELAND.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x00dd, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x2044, 0x00a4, 0x00d0, 0x00f0, 0x00de, 0x00fe, 0x00fd, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0x003f, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x0131, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xca, 0xc1, 0xa2, 0xa3, 0xdb, 0xb4, 0x3f, 0xa4, 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x2d, 0xa8, 0xf8, 0xa1, 0xb1, 0x32, 0x33, 0xab, 0xb5, 0xa6, 0xe1, 0xfc, 0x31, 0xbc, 0xc8, 0x3f, 0x3f, 0x3f, 0xc0, 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0xdc, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x78, 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0xa0, 0xde, 0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, 0xdd, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0xe0, 0xdf, 0xd8, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0xdc, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0xf5, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0xce, 0xcf, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0xd9, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, 0x41, 0x61, 0xae, 0xbe, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x81, 0x8c, 0xae, 0xbe, 0xaf, 0xbf, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xab, 0xfd, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0xf6, 0xff, 0x27, 0xf8, 0xab, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xab, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, 0xac, 0x3f, 0xfb, 0xfd, 0xff, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xab, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xac, 0x41, 0xe1, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x82, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xec, 0x95, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xe5, 0x89, 0xe5, 0x89, 0xe5, 0x89, 0xe5, 0x89, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0xe4, 0x3f, 0xab, 0xfd, 0x3f, 0xd4, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xf8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfb, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0xbd, 0x3f, 0x5a, 0x3f, 0x4b, 0x81, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0xf6, 0x3e, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0xaf, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0xb7, 0x2d, 0xb1, 0x3f, 0xda, 0x5c, 0x2a, 0xfb, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd7, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0xf8, 0xf8, 0xf8, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xc2, 0xf8, 0x3f, 0xb4, 0x3f, 0x3f, 0x7c, 0x3c, 0xf6, 0x3e, 0xff, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_10079 = { { 10079, 1, 0x003f, 0x003f, "Mac Icelandic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_10081.cpp ================================================ /* code page 10081 (Mac Turkish) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/TURKISH.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c4, 0x00c5, 0x00c7, 0x00c9, 0x00d1, 0x00d6, 0x00dc, 0x00e1, 0x00e0, 0x00e2, 0x00e4, 0x00e3, 0x00e5, 0x00e7, 0x00e9, 0x00e8, 0x00ea, 0x00eb, 0x00ed, 0x00ec, 0x00ee, 0x00ef, 0x00f1, 0x00f3, 0x00f2, 0x00f4, 0x00f6, 0x00f5, 0x00fa, 0x00f9, 0x00fb, 0x00fc, 0x2020, 0x00b0, 0x00a2, 0x00a3, 0x00a7, 0x2022, 0x00b6, 0x00df, 0x00ae, 0x00a9, 0x2122, 0x00b4, 0x00a8, 0x2260, 0x00c6, 0x00d8, 0x221e, 0x00b1, 0x2264, 0x2265, 0x00a5, 0x00b5, 0x2202, 0x2211, 0x220f, 0x03c0, 0x222b, 0x00aa, 0x00ba, 0x2126, 0x00e6, 0x00f8, 0x00bf, 0x00a1, 0x00ac, 0x221a, 0x0192, 0x2248, 0x2206, 0x00ab, 0x00bb, 0x2026, 0x00a0, 0x00c0, 0x00c3, 0x00d5, 0x0152, 0x0153, 0x2013, 0x2014, 0x201c, 0x201d, 0x2018, 0x2019, 0x00f7, 0x25ca, 0x00ff, 0x0178, 0x011e, 0x011f, 0x0130, 0x0131, 0x015e, 0x015f, 0x2021, 0x00b7, 0x201a, 0x201e, 0x2030, 0x00c2, 0x00ca, 0x00c1, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x00d3, 0x00d4, 0x003f, 0x00d2, 0x00da, 0x00db, 0x00d9, 0x003f, 0x02c6, 0x02dc, 0x00af, 0x02d8, 0x02d9, 0x02da, 0x00b8, 0x02dd, 0x02db, 0x02c7 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xca, 0xc1, 0xa2, 0xa3, 0x3f, 0xb4, 0x3f, 0xa4, 0xac, 0xa9, 0xbb, 0xc7, 0xc2, 0x2d, 0xa8, 0xf8, 0xa1, 0xb1, 0x32, 0x33, 0xab, 0xb5, 0xa6, 0xe1, 0xfc, 0x31, 0xbc, 0xc8, 0x3f, 0x3f, 0x3f, 0xc0, 0xcb, 0xe7, 0xe5, 0xcc, 0x80, 0x81, 0xae, 0x82, 0xe9, 0x83, 0xe6, 0xe8, 0xed, 0xea, 0xeb, 0xec, 0x44, 0x84, 0xf1, 0xee, 0xef, 0xcd, 0x85, 0x78, 0xaf, 0xf4, 0xf2, 0xf3, 0x86, 0x59, 0x3f, 0xa7, 0x88, 0x87, 0x89, 0x8b, 0x8a, 0x8c, 0xbe, 0x8d, 0x8f, 0x8e, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95, 0x64, 0x96, 0x98, 0x97, 0x99, 0x9b, 0x9a, 0xd6, 0xbf, 0x9d, 0x9c, 0x9e, 0x9f, 0x79, 0x3f, 0xd8, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xda, 0xdb, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0xdc, 0xdd, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0xce, 0xcf, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xde, 0xdf, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0xd9, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x86, 0x9f, 0x3f, 0x80, 0x8a, 0x41, 0x61, 0xae, 0xbe, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x81, 0x8c, 0xae, 0xbe, 0xaf, 0xbf, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x85, 0x9a, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xab, 0xfd, 0xd4, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0xf6, 0xff, 0x27, 0xf8, 0xab, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0xfa, 0xfb, 0xfe, 0xf7, 0xfd, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xab, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, 0xac, 0x3f, 0xfb, 0xfd, 0xff, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xab, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xac, 0x41, 0xe1, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0xb9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x82, 0x8d, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xec, 0x95, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xcd, 0x9b, 0xcd, 0x9b, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xe5, 0x89, 0xe5, 0x89, 0xe5, 0x89, 0xe5, 0x89, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0xe6, 0x90, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0xef, 0x99, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xac, 0xac, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xab, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xd0, 0xd1, 0xd0, 0x3f, 0x5f, 0xd4, 0xd5, 0xe2, 0xd4, 0xd2, 0xd3, 0xe3, 0x3f, 0xa0, 0xe0, 0xa5, 0x3f, 0x2e, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0xe4, 0x3f, 0xab, 0xfd, 0x3f, 0xd4, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xf8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfb, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x5a, 0x3f, 0xbd, 0x3f, 0x5a, 0x3f, 0x4b, 0x81, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0xf6, 0x3e, 0xff, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0xb6, 0x3f, 0x3f, 0xaf, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0xb7, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xfb, 0xa5, 0xc3, 0x3f, 0x3f, 0x3f, 0xb0, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xad, 0x3d, 0x3d, 0x3d, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc7, 0xc8, 0x3f, 0x3f, 0x3c, 0x3e, 0xb2, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xc2, 0xc2, 0xc2, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd7, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xc7, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xd2, 0xd3, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0xf8, 0xf8, 0xf8, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xd1, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xc2, 0xf8, 0x3f, 0xb4, 0x3f, 0x3f, 0x7c, 0x3c, 0xf6, 0x3e, 0xff, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_10081 = { { 10081, 1, 0x003f, 0x003f, "Mac Turkish" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1026.cpp ================================================ /* code page 1026 (IBM EBCDIC Latin 5 Turkish) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP1026.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x007b, 0x00f1, 0x00c7, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x011e, 0x0130, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x005b, 0x00d1, 0x015f, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0131, 0x003a, 0x00d6, 0x015e, 0x0027, 0x003d, 0x00dc, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x007d, 0x0060, 0x00a6, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x00f6, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x005d, 0x0024, 0x0040, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x00e7, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x007e, 0x00f2, 0x00f3, 0x00f5, 0x011f, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x005c, 0x00f9, 0x00fa, 0x00ff, 0x00fc, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x0023, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x0022, 0x00d9, 0x00da, 0x009f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, 0x40, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x07, 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x8e, 0xb5, 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x4a, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, 0xc4, 0x69, 0xed, 0xee, 0xeb, 0xef, 0x7b, 0xbf, 0x80, 0xfd, 0xfe, 0xfb, 0x7f, 0xe8, 0x3f, 0x59, 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0xc0, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, 0x84, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xa1, 0xe1, 0x70, 0xdd, 0xde, 0xdb, 0xe0, 0xa8, 0x3f, 0xdf, /* 0x0100 .. 0x01ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0x5a, 0xd0, 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0x5b, 0x79, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0x7c, 0x6a, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0x7f, 0xe0, 0x7f, 0xe0, 0x7f, 0xe0, 0x7f, 0xe0, 0x3f, 0x63, 0x43, 0xc1, 0x81, 0x9e, 0x9c, 0xc7, 0x87, 0xc7, 0x87, 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, 0xd5, 0x95, 0x67, 0x47, 0x9e, 0x9c, 0x80, 0x70, /* 0x0200 .. 0x02ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc5, 0x85, 0x7b, 0xa1, 0xef, 0xcf, 0xd6, 0x96, 0xd6, 0x96, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, 0xa8, 0xbe, 0xfc, 0x8d, 0x7d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x5f, 0xa5, 0x7d, 0xbc, 0xbe, 0x8d, 0x3f, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0xcc, 0xfc, 0x3f, 0x3f, 0x3f, 0x93, 0xa2, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x8d, 0xbe, 0x5f, 0xcc, 0xbc, 0xbc, 0x3f, 0x3f, 0xbd, 0x3f, 0x90, 0xfc, 0xa5, 0x3f, 0xfc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0xbe, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0xe8, 0xe8, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0x4a, 0xc0, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0x77, 0x57, 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xef, 0xcf, 0xef, 0xcf, 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0x62, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x42, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x8d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x6d, 0x8d, 0x7d, 0x6b, 0x8d, 0xfc, 0xfc, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0xbe, 0xfc, 0x3f, 0x8d, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x4f, 0x3f, 0xbc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0xb1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0xd2, 0x67, 0xc2, 0xc3, 0x85, 0x85, 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x5f, 0x6e, 0xa5, 0x60, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xdc, 0x5c, 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, 0x3f, 0x3f, 0x3f, 0xbb, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0xcc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x60, 0x60, 0xbb, 0xbb, 0x60, 0x60, 0x8e, 0x8e, 0x60, 0x60, 0x8e, 0x8e, 0x4e, 0x4e, 0x4e, 0x4e, 0xba, 0xba, 0xba, 0xba, 0xd3, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x8e, 0x8e, 0x7e, 0xbb, 0x4e, 0x4e, 0x4e, 0xba, 0xba, 0xba, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0xdc, 0xe7, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0xac, 0x3f, 0xfc, 0xfc, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x4f, 0x60, 0x4d, 0x5d, 0x48, 0x8c, 0x3f, 0x3f, 0xec, 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, 0xdc, 0xad, 0x6c, 0xae, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x4f, 0xfc, 0xec, 0xad, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0xae, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x68, 0xdc, 0xac, 0x5f, 0x6d, 0x8d, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x48, 0xbb, 0x8c, 0xcc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xba, 0xbc, 0x8e, 0xb2, 0x3f, 0x3f, 0xbb, 0x4c, 0x5f, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1026 = { { 1026, 1, 0x003f, 0x003f, "IBM EBCDIC Latin 5 Turkish" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1250.cpp ================================================ /* code page 1250 (ANSI Eastern Europe) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1250.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0083, 0x201e, 0x2026, 0x2020, 0x2021, 0x0088, 0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x0098, 0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a, 0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b, 0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c, 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x21, 0x63, 0x4c, 0xa4, 0x59, 0xa6, 0xa7, 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x97, 0xb0, 0xb1, 0x32, 0x33, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0x31, 0x6f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0x41, 0xc7, 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0x49, 0xd0, 0x4e, 0x4f, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, 0x4f, 0x55, 0xda, 0x55, 0xdc, 0xdd, 0x3f, 0xdf, 0x61, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0x61, 0xe7, 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0x69, 0x64, 0x6e, 0x6f, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, 0x6f, 0x75, 0xfa, 0x75, 0xfc, 0xfd, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0xc3, 0xe3, 0xa5, 0xb9, 0xc6, 0xe6, 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0xcf, 0xef, 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xcc, 0xec, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0xc5, 0xe5, 0x4c, 0x6c, 0xbc, 0xbe, 0x3f, 0x3f, 0xa3, 0xb3, 0xd1, 0xf1, 0x4e, 0x6e, 0xd2, 0xf2, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0xd5, 0xf5, 0x4f, 0x6f, 0xc0, 0xe0, 0x52, 0x72, 0xd8, 0xf8, 0x8c, 0x9c, 0x53, 0x73, 0xaa, 0xba, 0x8a, 0x9a, 0xde, 0xfe, 0x8d, 0x9d, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd9, 0xf9, 0xdb, 0xfb, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x8f, 0x9f, 0xaf, 0xbf, 0x8e, 0x9e, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0xbd, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xa1, 0x27, 0x97, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xff, 0xb0, 0xb2, 0x7e, 0xbd, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0x97, 0x97, 0xa2, 0xff, 0xa8, 0x3f, 0xb0, 0xbd, 0xa1, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x8c, 0x9c, 0x8a, 0x9a, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0xbd, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x5e, 0x9b, 0xa1, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x97, 0x97, 0x97, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0xac, 0x97, 0xa6, 0x59, 0x3f, 0x3f, 0x7c, 0x8b, 0x5e, 0x9b, 0xa1, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1250 = { { 1250, 1, 0x003f, 0x003f, "ANSI Eastern Europe" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1251.cpp ================================================ /* code page 1251 (ANSI Cyrillic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0402, 0x0403, 0x201a, 0x0453, 0x201e, 0x2026, 0x2020, 0x2021, 0x20ac, 0x2030, 0x0409, 0x2039, 0x040a, 0x040c, 0x040b, 0x040f, 0x0452, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x0098, 0x2122, 0x0459, 0x203a, 0x045a, 0x045c, 0x045b, 0x045f, 0x00a0, 0x040e, 0x045e, 0x0408, 0x00a4, 0x0490, 0x00a6, 0x00a7, 0x0401, 0x00a9, 0x0404, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x0407, 0x00b0, 0x00b1, 0x0406, 0x0456, 0x0491, 0x00b5, 0x00b6, 0x00b7, 0x0451, 0x2116, 0x0454, 0x00bb, 0x0458, 0x0405, 0x0455, 0x0457, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x21, 0x63, 0x4c, 0xa4, 0x59, 0xa6, 0xa7, 0x22, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x97, 0xb0, 0xb1, 0x32, 0x33, 0x27, 0xb5, 0xb6, 0xb7, 0x2c, 0x31, 0x6f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x97, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x97, 0x97, 0x3f, 0x3f, 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0xc5, 0xa8, 0x80, 0x81, 0xaa, 0xbd, 0xb2, 0xaf, 0xa3, 0x8a, 0x8c, 0x8e, 0x8d, 0xc8, 0xa1, 0x8f, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0xe5, 0xb8, 0x90, 0x83, 0xba, 0xbe, 0xb3, 0xbf, 0xbc, 0x9a, 0x9c, 0x9e, 0x9d, 0xe8, 0xa2, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa5, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc6, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xe0, 0xc0, 0xe0, 0x3f, 0x3f, 0xc5, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xc6, 0xe6, 0xc7, 0xe7, 0x3f, 0x3f, 0xc8, 0xe8, 0xc8, 0xe8, 0xce, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0xdd, 0xfd, 0xd3, 0xf3, 0xd3, 0xf3, 0xd3, 0xf3, 0xd7, 0xf7, 0x3f, 0x3f, 0xdb, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0x27, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xb9, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x5e, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x97, 0x97, 0x97, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0xac, 0x97, 0xa6, 0x59, 0x3f, 0x3f, 0x7c, 0x8b, 0x5e, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_1251 = { { 1251, 1, 0x003f, 0x003f, "ANSI Cyrillic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1252.cpp ================================================ /* code page 1252 (ANSI Latin 1) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x017d, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x017e, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, 0x8f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0xd0, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x8c, 0x9c, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x8a, 0x9a, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x9f, 0x5a, 0x7a, 0x5a, 0x7a, 0x8e, 0x9e, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x98, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x88, 0x98, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x8a, 0x9a, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x88, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x8b, 0x88, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1252 = { { 1252, 1, 0x003f, 0x003f, "ANSI Latin 1" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1253.cpp ================================================ /* code page 1253 (ANSI Greek) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1253.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x0088, 0x2030, 0x008a, 0x2039, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x0098, 0x2122, 0x009a, 0x203a, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0385, 0x0386, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x003f, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x2015, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x00b5, 0x00b6, 0x00b7, 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x003f, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x003f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x8a, 0x3f, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x3f, 0x9a, 0x3f, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x97, 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xb5, 0xb6, 0xb7, 0x2c, 0x31, 0x6f, 0xbb, 0x3f, 0xbd, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0xe2, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x97, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x97, 0x97, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa1, 0xa2, 0xb7, 0xb8, 0xb9, 0xba, 0x3f, 0xbc, 0x3f, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0x3f, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x3f, 0xe2, 0xe8, 0xd5, 0xd5, 0xd5, 0xf6, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xf1, 0xf2, 0x3f, 0xc8, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x3f, 0x3f, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x3f, 0x3f, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x3f, 0x3f, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0x3f, 0xd5, 0x3f, 0xd5, 0x3f, 0xd5, 0x3f, 0xd5, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xe1, 0xdc, 0xe5, 0xdd, 0xe7, 0xde, 0xe9, 0xdf, 0xef, 0xfc, 0xf5, 0xfd, 0xf9, 0xfe, 0x3f, 0x3f, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xe1, 0xe1, 0xe1, 0xe1, 0xdc, 0x3f, 0xe1, 0xe1, 0xc1, 0xc1, 0xc1, 0xa2, 0xc1, 0x3f, 0xe9, 0x3f, 0x3f, 0xa8, 0xe7, 0xe7, 0xde, 0x3f, 0xe7, 0xe7, 0xc5, 0xb8, 0xc7, 0xb9, 0xc7, 0x3f, 0x3f, 0x3f, 0xe9, 0xe9, 0xfa, 0xc0, 0x3f, 0x3f, 0xe9, 0xfa, 0xc9, 0xc9, 0xc9, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, 0xf5, 0xf5, 0xfb, 0xe0, 0xf1, 0xf1, 0xf5, 0xfb, 0xd5, 0xd5, 0xd5, 0xbe, 0xd1, 0xa8, 0xa1, 0x60, 0x3f, 0x3f, 0xf9, 0xf9, 0xfe, 0x3f, 0xf9, 0xf9, 0xcf, 0xbc, 0xd9, 0xbf, 0xd9, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0xaf, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0x27, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0xd9, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0xe3, 0xc3, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x5e, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x97, 0x97, 0x97, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0xa3, 0xac, 0x97, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x8b, 0x5e, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1253 = { { 1253, 1, 0x003f, 0x003f, "ANSI Greek" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1254.cpp ================================================ /* code page 1254 (ANSI Turkish) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1254.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x0161, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x8e, 0x8f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x9e, 0x3f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xd0, 0xf0, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0xdd, 0xfd, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x8c, 0x9c, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xde, 0xfe, 0x8a, 0x9a, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x9f, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x98, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x88, 0x98, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x8a, 0x9a, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x88, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x8b, 0x88, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1254 = { { 1254, 1, 0x003f, 0x003f, "ANSI Turkish" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1255.cpp ================================================ /* code page 1255 (ANSI Hebrew) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1255.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x008a, 0x2039, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x009a, 0x203a, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20aa, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x05b0, 0x05b1, 0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, 0x05b8, 0x05b9, 0x003f, 0x05bb, 0x05bc, 0x05bd, 0x05be, 0x05bf, 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f0, 0x05f1, 0x05f2, 0x05f3, 0x05f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00de, 0x00df, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x003f, 0x003f, 0x200e, 0x200f, 0x003f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x3f, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9a, 0x3f, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0x3f, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xaa, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xba, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x98, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x88, 0x98, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0500 .. 0x05ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0x3f, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0xfd, 0xfe, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0xe0, 0xe1, 0xe2, 0xe3, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x88, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0xd6, 0xf2, 0xe0, 0xe3, 0xe4, 0xeb, 0xec, 0xed, 0xf8, 0xfa, 0x2b, 0xf9, 0xf9, 0xf9, 0xf9, 0xe0, 0xe0, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x3f, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0x3f, 0xee, 0x3f, 0xf0, 0xf1, 0x3f, 0xf3, 0xf4, 0x3f, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xe5, 0xe1, 0xeb, 0xf4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x8b, 0x88, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_1255 = { { 1255, 1, 0x003f, 0x003f, "ANSI Hebrew" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1256.cpp ================================================ /* code page 1256 (ANSI Arabic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1256.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x067e, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688, 0x06af, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x06a9, 0x2122, 0x0691, 0x203a, 0x0153, 0x200c, 0x200d, 0x06ba, 0x00a0, 0x060c, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x06be, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x061b, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x061f, 0x06c1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00d7, 0x0637, 0x0638, 0x0639, 0x063a, 0x0640, 0x0641, 0x0642, 0x0643, 0x00e0, 0x0644, 0x00e2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0649, 0x064a, 0x00ee, 0x00ef, 0x064b, 0x064c, 0x064d, 0x064e, 0x00f4, 0x064f, 0x0650, 0x00f7, 0x0651, 0x00f9, 0x0652, 0x00fb, 0x00fc, 0x200e, 0x200f, 0x06d2 }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x21, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xd7, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0xe0, 0x61, 0xe2, 0x61, 0x61, 0x61, 0x61, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0x69, 0x69, 0xee, 0xef, 0x64, 0x6e, 0x6f, 0x6f, 0xf4, 0x6f, 0x6f, 0xf7, 0x6f, 0xf9, 0x75, 0xfb, 0xfc, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x8c, 0x9c, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x55, 0xfc, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x88, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0600 .. 0x06ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xba, 0x3f, 0x3f, 0x3f, 0xbf, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, 0xd9, 0xda, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe3, 0xe4, 0xe5, 0xe6, 0xec, 0xed, 0xf0, 0xf1, 0xf2, 0xf3, 0xf5, 0xf6, 0xf8, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x3f, 0x3f, 0x3f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, 0x8f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9f, 0x3f, 0x3f, 0x3f, 0xaa, 0x3f, 0x3f, 0xc0, 0xc0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0xe2, 0x41, 0xe2, 0x41, 0xe2, 0x41, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0xea, 0x45, 0xea, 0x45, 0xea, 0x45, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0xf4, 0x4f, 0xf4, 0x4f, 0xf4, 0x4f, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x9d, 0x9e, 0xfd, 0xfe, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x88, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x8b, 0x88, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_1256 = { { 1256, 1, 0x003f, 0x003f, "ANSI Arabic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1257.cpp ================================================ /* code page 1257 (ANSI Baltic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1257.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0083, 0x201e, 0x2026, 0x2020, 0x2021, 0x0088, 0x2030, 0x008a, 0x2039, 0x008c, 0x00a8, 0x02c7, 0x00b8, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x0098, 0x2122, 0x009a, 0x203a, 0x009c, 0x00af, 0x02db, 0x009f, 0x00a0, 0x003f, 0x00a2, 0x00a3, 0x00a4, 0x003f, 0x00a6, 0x00a7, 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x02d9 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x8a, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x3f, 0x9a, 0x3f, 0x9c, 0x3f, 0x3f, 0x9f, 0xa0, 0x21, 0xa2, 0xa3, 0xa4, 0x59, 0xa6, 0xa7, 0x8d, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x9d, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0x8f, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x41, 0x41, 0x41, 0x41, 0xc4, 0xc5, 0xaf, 0x43, 0x45, 0xc9, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0xd3, 0x4f, 0xd5, 0xd6, 0xd7, 0xa8, 0x55, 0x55, 0x55, 0xdc, 0x59, 0x3f, 0xdf, 0x61, 0x61, 0x61, 0x61, 0xe4, 0xe5, 0xbf, 0x63, 0x65, 0xe9, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0xf3, 0x6f, 0xf5, 0xf6, 0xf7, 0xb8, 0x75, 0x75, 0x75, 0xfc, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0xc2, 0xe2, 0x41, 0x61, 0xc0, 0xe0, 0xc3, 0xe3, 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, 0x44, 0x64, 0xc7, 0xe7, 0x45, 0x65, 0xcb, 0xeb, 0xc6, 0xe6, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0xcc, 0xec, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xce, 0xee, 0x49, 0x69, 0xc1, 0xe1, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xcd, 0xed, 0x3f, 0x4c, 0x6c, 0xcf, 0xef, 0x4c, 0x6c, 0x3f, 0x3f, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0xaa, 0xba, 0x52, 0x72, 0xda, 0xfa, 0x53, 0x73, 0x53, 0x73, 0xd0, 0xf0, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0xdb, 0xfb, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd8, 0xf8, 0x57, 0x77, 0x59, 0x79, 0x59, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xaf, 0xbf, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xaf, 0xbf, 0xa8, 0xb8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x8e, 0x27, 0x9d, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xb0, 0x9e, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0x9d, 0x9d, 0x3f, 0xff, 0x8d, 0x3f, 0xb0, 0x22, 0x8e, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0x8d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x8d, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0xc7, 0xe7, 0xc7, 0xe7, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0xd4, 0xf4, 0xd4, 0xf4, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xda, 0xfa, 0xd0, 0xf0, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xdb, 0xfb, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x8d, 0x8d, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x5e, 0x9b, 0x8e, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x9d, 0x9d, 0x9d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0x9d, 0xa6, 0x59, 0x3f, 0x3f, 0x7c, 0x8b, 0x5e, 0x9b, 0x8e, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1257 = { { 1257, 1, 0x003f, 0x003f, "ANSI Baltic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_1258.cpp ================================================ /* code page 1258 (ANSI/OEM Viet Nam) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1258.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x201a, 0x0192, 0x201e, 0x2026, 0x2020, 0x2021, 0x02c6, 0x2030, 0x008a, 0x2039, 0x0152, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x02dc, 0x2122, 0x009a, 0x203a, 0x0153, 0x009d, 0x009e, 0x0178, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x0300, 0x00cd, 0x00ce, 0x00cf, 0x0110, 0x00d1, 0x0309, 0x00d3, 0x00d4, 0x01a0, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x01af, 0x0303, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x0301, 0x00ed, 0x00ee, 0x00ef, 0x0111, 0x00f1, 0x0323, 0x00f3, 0x00f4, 0x01a1, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x01b0, 0x20ab, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x3f, 0x3f, 0x8d, 0x8e, 0x8f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9a, 0x3f, 0x3f, 0x9d, 0x9e, 0x3f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0x41, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0x49, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0x4f, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0x61, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0x69, 0xed, 0xee, 0xef, 0x64, 0xf1, 0x6f, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0xc3, 0xe3, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x8c, 0x9c, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x9f, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x83, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0xd5, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0xdd, 0xfd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x88, 0x76, 0x27, 0xaf, 0xb4, 0xcc, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x98, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0xcc, 0xec, 0x88, 0xde, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0xd2, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf2, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcc, 0xec, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xec, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0xd5, 0xf5, 0xd5, 0xf5, 0xd5, 0xf5, 0xd5, 0xf5, 0xd5, 0xf5, 0x55, 0x75, 0x55, 0x75, 0xdd, 0xfd, 0xdd, 0xfd, 0xdd, 0xfd, 0xdd, 0xfd, 0xdd, 0xfd, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x82, 0x91, 0x93, 0x94, 0x84, 0x3f, 0x86, 0x87, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x89, 0x3f, 0xb4, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x99, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x88, 0x9b, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x9b, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x8b, 0x88, 0x9b, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_1258 = { { 1258, 1, 0x003f, 0x003f, "ANSI/OEM Viet Nam" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_20866.cpp ================================================ /* code page 20866 (Russian KOI8) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9a, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0xbf, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, 0x9c, 0x3f, 0x9d, 0x33, 0x27, 0x75, 0x3f, 0x9e, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x9f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x81, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9c, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x9c, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x9e, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0xe5, 0xb3, 0x3f, 0xe7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xeb, 0xe9, 0xf5, 0x3f, 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, 0xc5, 0xa3, 0x3f, 0xc7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0xc9, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0xc1, 0xe1, 0xc1, 0x3f, 0x3f, 0xe5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0xfa, 0xda, 0x3f, 0x3f, 0xe9, 0xc9, 0xe9, 0xc9, 0xef, 0xcf, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xdc, 0xf5, 0xd5, 0xf5, 0xd5, 0xf5, 0xd5, 0xfe, 0xde, 0x3f, 0x3f, 0xf9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9c, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x9c, 0x95, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x98, 0x99, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x98, 0x99, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x93, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x80, 0x80, 0x81, 0x81, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x2d, 0x2d, 0x3f, 0x3f, 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x8b, 0x3f, 0x3f, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, 0x8f, 0x90, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x81, 0x3c, 0x5e, 0x3e, 0x76, 0x94, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_20866 = { { 20866, 1, 0x003f, 0x003f, "Russian KOI8" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_20932.cpp ================================================ /* code page 20932 (EUC-JP) */ /* generated from ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0208.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[20480] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x0000, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, /* unused lead bytes */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 8e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0xff3c, 0x301c, 0x2016, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0xff0b, 0x2212, 0x00b1, 0x00d7, 0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04, 0x00a2, 0x00a3, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x003f, /* lead byte a2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2227, 0x2228, 0x00ac, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x25ef, 0x003f, /* lead byte a3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte b0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, 0x003f, /* lead byte b1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x5712, 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf, 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276, 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a, 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, 0x003f, /* lead byte b2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, 0x003f, /* lead byte b3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x6a7f, 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b, 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6, 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc, 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, 0x003f, /* lead byte b4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, 0x003f, /* lead byte b5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x673d, 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08, 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8, 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, 0x003f, /* lead byte b6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, 0x003f, /* lead byte b7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x5287, 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a, 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039, 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805, 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, 0x003f, /* lead byte b8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, 0x003f, /* lead byte b9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x9805, 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5, 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a, 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170, 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, 0x003f, /* lead byte ba */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, 0x003f, /* lead byte bb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x6b7b, 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2, 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee, 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d, 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, 0x003f, /* lead byte bc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, 0x003f, /* lead byte bd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x6e96, 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6, 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72, 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f, 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, 0x003f, /* lead byte be */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, 0x003f, /* lead byte bf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x9017, 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b, 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e, 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e, 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, 0x003f, /* lead byte c0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, 0x003f, /* lead byte c1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x64cd, 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89, 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349, 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d, 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, 0x003f, /* lead byte c2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, 0x003f, /* lead byte c3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x9010, 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99, 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b, 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457, 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, 0x003f, /* lead byte c4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, 0x003f, /* lead byte c5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x51cd, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b, 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7, 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977, 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, 0x003f, /* lead byte c6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, 0x003f, /* lead byte c7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x6973, 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f, 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf, 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd, 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, 0x003f, /* lead byte c8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, 0x003f, /* lead byte c9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x65a7, 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c, 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66, 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a, 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, 0x003f, /* lead byte ca */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, 0x003f, /* lead byte cb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x6469, 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce, 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52, 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4, 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, 0x003f, /* lead byte cc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, 0x003f, /* lead byte cd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x6c83, 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765, 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71, 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229, 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, 0x003f, /* lead byte ce */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, 0x003f, /* lead byte cf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, 0x6e7e, 0x7897, 0x8155, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte d0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, 0x003f, /* lead byte d1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x51f0, 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a, 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e, 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, 0x003f, /* lead byte d2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, 0x003f, /* lead byte d3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x566b, 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0, 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc, 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7, 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, 0x003f, /* lead byte d4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, 0x003f, /* lead byte d5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x5b83, 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4, 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3, 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28, 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, 0x003f, /* lead byte d6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, 0x003f, /* lead byte d7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x6019, 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026, 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a, 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b, 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, 0x003f, /* lead byte d8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, 0x003f, /* lead byte d9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x6369, 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6, 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d, 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a, 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, 0x003f, /* lead byte da */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, 0x003f, /* lead byte db */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x68b3, 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad, 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5, 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908, 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, 0x003f, /* lead byte dc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, 0x003f, /* lead byte dd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59, 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80, 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa, 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6, 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x9ebe, 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55, 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e, 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd, 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, 0x003f, /* lead byte de */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, 0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, 0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, 0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, 0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, 0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, 0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, 0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, 0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc, 0x003f, /* lead byte df */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1, 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f, 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030, 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1, 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x70d9, 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166, 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195, 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4, 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, 0x003f, /* lead byte e0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, 0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, 0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, 0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, 0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, 0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, 0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, 0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, 0x003f, /* lead byte e1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567, 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a, 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2, 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd, 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x75fc, 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609, 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630, 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662, 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, 0x003f, /* lead byte e2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, 0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, 0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, 0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, 0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, 0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, 0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, 0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, 0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, 0x003f, /* lead byte e3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec, 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f, 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49, 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88, 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x7ab6, 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf, 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6, 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18, 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, 0x003f, /* lead byte e4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, 0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, 0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, 0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, 0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, 0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, 0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, 0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, 0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, 0x003f, /* lead byte e5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab, 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8, 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a, 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22, 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x7e32, 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79, 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae, 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94, 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, 0x003f, /* lead byte e6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, 0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, 0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, 0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, 0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, 0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, 0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, 0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, 0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, 0x003f, /* lead byte e7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9, 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0, 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207, 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233, 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x8262, 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e, 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3, 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb, 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, 0x003f, /* lead byte e8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, 0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, 0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, 0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, 0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, 0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, 0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, 0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, 0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, 0x003f, /* lead byte e9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b, 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d, 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9, 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0, 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x86df, 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb, 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737, 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c, 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, 0x003f, /* lead byte ea */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, 0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, 0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, 0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, 0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, 0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, 0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, 0x003f, /* lead byte eb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10, 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52, 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82, 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3, 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x8ae4, 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c, 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33, 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f, 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, 0x003f, /* lead byte ec */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, 0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, 0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, 0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, 0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, 0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, 0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, 0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, 0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, 0x003f, /* lead byte ed */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5, 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe, 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f, 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42, 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x8f62, 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7, 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005, 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016, 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, 0x003f, /* lead byte ee */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, 0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, 0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, 0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, 0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, 0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, 0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, 0x003f, /* lead byte ef */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407, 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452, 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470, 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f, 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x95a0, 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca, 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc, 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642, 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, 0x003f, /* lead byte f0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, 0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, 0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, 0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, 0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, 0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, 0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, 0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, 0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, 0x003f, /* lead byte f1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951, 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae, 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee, 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2, 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x9a3e, 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64, 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6, 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, 0x003f, /* lead byte f2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, 0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, 0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, 0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, 0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, 0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, 0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, 0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, 0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, 0x003f, /* lead byte f3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a, 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b, 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8, 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4, 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x9ef4, 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08, 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54, 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a, 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, 0x003f, /* lead byte f4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned char cp2uni_leadbytes[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }; static const unsigned short uni2cp_low[27392] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x0021, 0xa1f1, 0xa1f2, 0x003f, 0x005c, 0x003f, 0xa1f8, 0xa1af, 0x0063, 0x0061, 0xa1d4, 0xa2cc, 0x002d, 0x0072, 0xa1bd, 0xa1eb, 0xa1de, 0x0032, 0x0033, 0xa1ad, 0xa6cc, 0xa2f9, 0x003f, 0x002c, 0x0031, 0x006f, 0xa1d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1df, 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x003f, 0xa6c2, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 0x0064, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xa1e0, 0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x003f, 0x0079, /* 0x0100 .. 0x01ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x003f, 0x003f, 0x004a, 0x006a, 0x004b, 0x006b, 0x003f, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x003f, 0x003f, 0x004c, 0x006c, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x003f, 0x003f, 0x003f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a2, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0049, 0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0047, 0x0067, 0x0047, 0x0067, 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, 0x004e, 0x006e, 0x0041, 0x0061, 0x0041, 0x0061, 0x004f, 0x006f, /* 0x0200 .. 0x02ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, 0x0079, 0xa1ad, 0xa1ed, 0xa1c6, 0xa1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0x0076, 0x0027, 0xa1bd, 0xa1ad, 0x0060, 0x003f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1eb, 0x003f, 0x007e, 0xa1ed, 0x003f, 0x003f, 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0300 .. 0x03ff */ 0x0060, 0xa1ad, 0x005e, 0x007e, 0xa1bd, 0x007e, 0x003f, 0x003f, 0xa1af, 0x003f, 0xa1eb, 0xa1ed, 0x0076, 0x003f, 0x0022, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005f, 0x005f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0060, 0xa1ad, 0x003f, 0x003f, 0xa1af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ad, 0xa1af, 0xa6a1, 0x003f, 0xa6a5, 0xa6a7, 0xa6a9, 0x003f, 0xa6af, 0x003f, 0xa6b4, 0xa6b8, 0xa6c9, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5, 0xa6a6, 0xa6a7, 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad, 0xa6ae, 0xa6af, 0xa6b0, 0xa6b1, 0x003f, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5, 0xa6b6, 0xa6b7, 0xa6b8, 0xa6a9, 0xa6b4, 0xa6c1, 0xa6c5, 0xa6c7, 0xa6c9, 0xa6d4, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, 0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, 0xa6d0, 0xa6d1, 0x003f, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, 0xa6d7, 0xa6d8, 0xa6c9, 0xa6d4, 0xa6cf, 0xa6d4, 0xa6d8, 0x003f, 0xa6c2, 0xa6c8, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6d5, 0xa6d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6ca, 0xa6d1, 0x003f, 0x003f, 0xa6a8, 0xa6c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0400 .. 0x04ff */ 0xa7a6, 0xa7a7, 0x003f, 0xa7a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7ac, 0xa7aa, 0xa7b5, 0x003f, 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, 0xa7a5, 0xa7a6, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b5, 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, 0xa7be, 0xa7bf, 0xa7c0, 0xa7c1, 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d8, 0xa7d9, 0xa7da, 0xa7db, 0xa7dc, 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed, 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, 0xa7d6, 0xa7d7, 0x003f, 0xa7d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7dc, 0xa7da, 0xa7e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a8, 0xa7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a1, 0xa7d1, 0xa7a1, 0xa7d1, 0x003f, 0x003f, 0xa7a6, 0xa7d6, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a8, 0xa7d8, 0xa7a9, 0xa7d9, 0x003f, 0x003f, 0xa7aa, 0xa7da, 0xa7aa, 0xa7da, 0xa7b0, 0xa7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7bf, 0xa7ef, 0xa7b5, 0xa7e5, 0xa7b5, 0xa7e5, 0xa7b5, 0xa7e5, 0xa7b9, 0xa7e9, 0x003f, 0x003f, 0xa7bd, 0xa7ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1e00 .. 0x1eff */ 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0050, 0x0070, 0x0050, 0x0070, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0056, 0x0076, 0x0056, 0x0076, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1f00 .. 0x1fff */ 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0x003f, 0x003f, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0x003f, 0x003f, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0x003f, 0x003f, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0x003f, 0x003f, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6c1, 0xa6c1, 0xa6c5, 0xa6c5, 0xa6c7, 0xa6c7, 0xa6c9, 0xa6c9, 0xa6cf, 0xa6cf, 0xa6d4, 0xa6d4, 0xa6d8, 0xa6d8, 0x003f, 0x003f, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0x003f, 0xa6c1, 0xa6c1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0x003f, 0xa6c9, 0x003f, 0x003f, 0xa1af, 0xa6c7, 0xa6c7, 0xa6c7, 0x003f, 0xa6c7, 0xa6c7, 0xa6a5, 0xa6a5, 0xa6a7, 0xa6a7, 0xa6a7, 0x003f, 0x003f, 0x003f, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0x003f, 0x003f, 0xa6c9, 0xa6c9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d1, 0xa6d1, 0xa6d4, 0xa6d4, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6b1, 0xa1af, 0xa1af, 0x0060, 0x003f, 0x003f, 0xa6d8, 0xa6d8, 0xa6d8, 0x003f, 0xa6d8, 0xa6d8, 0xa6af, 0xa6af, 0xa6b8, 0xa6b8, 0xa6b8, 0xa1ad, 0x003f, 0x003f, /* 0x2000 .. 0x20ff */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1be, 0xa1be, 0x003f, 0xa1bd, 0xa1bd, 0xa1bd, 0xa1c2, 0x005f, 0xa1c6, 0xa1c7, 0x002c, 0xa1c6, 0xa1c8, 0xa1c9, 0x002c, 0x003f, 0xa2f7, 0xa2f8, 0x003f, 0x003f, 0x002e, 0xa1c5, 0xa1c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0xa2f3, 0x003f, 0xa1ec, 0xa1ed, 0x003f, 0xa1c6, 0x003f, 0x003f, 0x003f, 0xa1d2, 0xa1d3, 0xa2a8, 0x0021, 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1eb, 0x0069, 0x003f, 0x003f, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0xa1dd, 0x003d, 0x0028, 0x0029, 0x006e, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0xa1dd, 0x003d, 0x0028, 0x0029, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f1, 0x003f, 0x003f, 0xa1f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2100 .. 0x21ff */ 0x003f, 0x003f, 0x0043, 0xa1ee, 0x003f, 0x003f, 0x003f, 0x0045, 0x003f, 0x003f, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0x0068, 0x0049, 0x0049, 0x004c, 0x006c, 0x003f, 0x004e, 0x003f, 0x003f, 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005a, 0x003f, 0xa6b8, 0x003f, 0x005a, 0x003f, 0x004b, 0xa2f2, 0x0042, 0x0043, 0x0065, 0x0065, 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0069, 0x003f, 0x003f, 0x003f, 0xa6c3, 0xa6a3, 0xa6b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, 0x003f, 0x003f, 0x003f, 0x0056, 0x003f, 0x003f, 0x003f, 0x003f, 0x0058, 0x003f, 0x003f, 0x004c, 0x0043, 0x0044, 0x004d, 0x0069, 0x003f, 0x003f, 0x003f, 0x0076, 0x003f, 0x003f, 0x003f, 0x003f, 0x0078, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2ab, 0xa2ac, 0xa2aa, 0xa2ad, 0x002d, 0x007c, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2ab, 0xa2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2ce, 0xa2cd, 0x003f, 0x003f, 0xa2cd, 0x003f, 0xa2ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2200 .. 0x22ff */ 0xa2cf, 0x003f, 0xa2df, 0xa2d0, 0xa2d0, 0x004f, 0x003f, 0xa2e0, 0xa2ba, 0xa2ba, 0x003f, 0xa2bb, 0xa2bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1dd, 0xa1de, 0x003f, 0x002f, 0x005c, 0x002a, 0xa1eb, 0x003f, 0xa2e5, 0x003f, 0x003f, 0xa2e7, 0xa1e7, 0x004c, 0xa2dc, 0x003f, 0x003f, 0x007c, 0x007c, 0x003f, 0x003f, 0xa2ca, 0xa2cb, 0xa2c1, 0xa2c0, 0xa2e9, 0xa2ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e8, 0xa2e8, 0x003a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0xa2e6, 0x003f, 0x003f, 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e2, 0xa2e1, 0xa2e1, 0xa2e1, 0x003f, 0x003f, 0xa1e5, 0xa1e6, 0x003f, 0x003f, 0xa2e3, 0xa2e4, 0x003f, 0x003f, 0x003c, 0x003e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2be, 0xa2bf, 0xa2be, 0xa2bf, 0xa2bc, 0xa2bd, 0xa2bc, 0xa2bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2300 .. 0x23ff */ 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d2, 0xa1d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2400 .. 0x24ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2500 .. 0x25ff */ 0xa8a1, 0xa8ac, 0xa8a2, 0xa8ad, 0x002d, 0x002d, 0x003f, 0x003f, 0x002d, 0x002d, 0x003f, 0x003f, 0xa8a3, 0xa8a3, 0xa8a3, 0xa8ae, 0xa8a4, 0xa8a4, 0xa8a4, 0xa8af, 0xa8a6, 0xa8a6, 0xa8a6, 0xa8b1, 0xa8a5, 0xa8a5, 0xa8a5, 0xa8b0, 0xa8a7, 0xa8bc, 0xa8a7, 0xa8a7, 0xa8b7, 0xa8a7, 0xa8a7, 0xa8b2, 0xa8a9, 0xa8be, 0xa8a9, 0xa8a9, 0xa8b9, 0xa8a9, 0xa8a9, 0xa8b4, 0xa8a8, 0xa8a8, 0xa8a8, 0xa8b8, 0xa8bd, 0xa8a8, 0xa8a8, 0xa8b3, 0xa8aa, 0xa8aa, 0xa8aa, 0xa8ba, 0xa8bf, 0xa8aa, 0xa8aa, 0xa8b5, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8bb, 0xa8ab, 0xa8ab, 0xa8c0, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8ab, 0xa8b6, 0x002d, 0x002d, 0x003f, 0x003f, 0x003d, 0x007c, 0x002b, 0x002b, 0x002b, 0xa2cc, 0xa2cc, 0xa2cc, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x0054, 0x0054, 0x0054, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x005c, 0x0058, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a3, 0xa2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a5, 0xa2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a7, 0xa2a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a1, 0xa1fe, 0x003f, 0x003f, 0x003f, 0xa1fb, 0x003f, 0x003f, 0xa1fd, 0xa1fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2600 .. 0x26ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1fa, 0xa1f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ea, 0x003f, 0xa1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2f6, 0x003f, 0x003f, 0xa2f5, 0x003f, 0xa2f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2e00 .. 0x2eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2f00 .. 0x2fff */ 0xb0ec, 0x003f, 0xd0a6, 0xd0a8, 0xb2b5, 0xd0ad, 0xc6f3, 0xd0b5, 0xbfcd, 0xd1b9, 0xc6fe, 0xc8ac, 0xd1c4, 0xd1cc, 0xd1d2, 0xd1dc, 0xd1e1, 0xc5e1, 0xcecf, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2be, 0xbdbd, 0xcbce, 0xd2c7, 0xd2cc, 0xd2d3, 0xcbf4, 0xb8fd, 0xd3f8, 0xc5da, 0xbbce, 0xd4e9, 0xd4ea, 0xcdbc, 0xc2e7, 0xbdf7, 0xbbd2, 0xd5df, 0xc0a3, 0xbeae, 0xd5f7, 0xd5f9, 0xd6a5, 0xbbb3, 0xd6df, 0xb9a9, 0xb8ca, 0xb6d2, 0xb4b3, 0xd6f6, 0xd6f8, 0xd7ae, 0xd7b0, 0xd7b5, 0xb5dd, 0x003f, 0xd7c4, 0xd7c6, 0xbfb4, 0xd8f9, 0x003f, 0xbcea, 0xbbd9, 0xdabd, 0xcab8, 0xc5cd, 0xb6d4, 0xcafd, 0xdadb, 0xc6fc, 0xdba9, 0xb7ee, 0xccda, 0xb7e7, 0xbbdf, 0xddc6, 0xddd5, 0xddd9, 0xc8e6, 0xccd3, 0xbbe1, 0xdde3, 0xbfe5, 0xb2d0, 0xc4de, 0xc9e3, 0xe0ab, 0xe0ad, 0xcad2, 0xb2e7, 0xb5ed, 0xb8a4, 0xb8bc, 0xb6cc, 0xb1bb, 0xb4a4, 0xb4c5, 0xc0b8, 0xcdd1, 0xc5c4, 0xc9a5, 0x003f, 0xe2a2, 0xc7f2, 0xc8e9, 0xbbae, 0xccdc, 0xccb7, 0xccf0, 0xc0d0, 0xbca8, 0x003f, 0xb2d3, 0xb7ea, 0xcea9, 0xc3dd, 0xcac6, 0xbbe5, 0xb4cc, 0xe6a6, 0xcdd3, 0xb1a9, 0xcfb7, 0xbca9, 0xe6d0, 0xbcaa, 0xe6e6, 0xc6f9, 0xbfc3, 0xbcab, 0xbbea, 0xb1b1, 0xc0e5, 0xc1a4, 0xbdae, 0xbab1, 0xbfa7, 0xe7e7, 0xe9c8, 0xc3ee, 0xb7ec, 0xb9d4, 0xb0e1, 0xeba8, 0xb8ab, 0xb3d1, 0xb8c0, 0xc3ab, 0xc6a6, 0xecb5, 0xecb8, 0xb3ad, 0xc0d6, 0xc1f6, 0xc2ad, 0xbfc8, 0xbcd6, 0xbfc9, 0xc3a4, 0x003f, 0xcdb8, 0xc6d3, 0xc8d0, 0xcea4, 0xb6e2, 0xc4b9, 0xcce7, 0xc9ec, 0xf0b0, 0xf0b2, 0xb1ab, 0x003f, 0xc8f3, 0xcccc, 0xb3d7, 0xf0ea, 0xf0ec, 0xb2bb, 0xcac7, 0xc9f7, 0xc8f4, 0xbfa9, 0xbcf3, 0xb9e1, 0xc7cf, 0xb9fc, 0xb9e2, 0xf1f5, 0xf2a8, 0xf2ae, 0xf2af, 0xb5b4, 0xb5fb, 0xc4bb, 0xf3c3, 0xbcaf, 0xf3ce, 0xcbe3, 0x003f, 0xb5d0, 0x003f, 0xf3e3, 0xf3e6, 0xc5a4, 0xb8dd, 0xc1cd, 0xc9a1, 0xf3ee, 0xf3ef, 0xceb6, 0xf3fd, 0xf3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3000 .. 0x30ff */ 0xa1a1, 0xa1a2, 0xa1a3, 0xa1b7, 0x003f, 0xa1b9, 0xa1ba, 0xa1bb, 0xa1d2, 0xa1d3, 0xa1d4, 0xa1d5, 0xa1d6, 0xa1d7, 0xa1d8, 0xa1d9, 0xa1da, 0xa1db, 0xa2a9, 0xa2ae, 0xa1cc, 0xa1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x005b, 0x005d, 0xa1c1, 0xa1c8, 0xa1c9, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a9, 0x003f, 0xbdbd, 0x003f, 0xd2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0xa4a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ab, 0xa1ac, 0xa1b5, 0xa1b6, 0x003f, 0x003f, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, 0xa5ad, 0xa5ae, 0xa5af, 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, 0xa5be, 0xa5bf, 0xa5c0, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5de, 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0xa1a6, 0xa1bc, 0xa1b3, 0xa1b4, 0x003f, /* 0x3100 .. 0x31ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0ec, 0xc6f3, 0xbbb0, 0xbbcd, 0xbee5, 0xc3e6, 0xb2bc, 0xb9c3, 0xb2b5, 0xcaba, 0xc3fa, 0xc5b7, 0xc3cf, 0xbfcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3200 .. 0x32ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0ec, 0xc6f3, 0xbbb0, 0xbbcd, 0xb8de, 0xcfbb, 0xbcb7, 0xc8ac, 0xb6e5, 0xbdbd, 0xb7ee, 0xb2d0, 0xbfe5, 0xccda, 0xb6e2, 0xc5da, 0xc6fc, 0xb3f4, 0xcdad, 0xbcd2, 0xccbe, 0xc6c3, 0xbae2, 0xbdcb, 0xcfab, 0xc8eb, 0xc3cb, 0xbdf7, 0xc5ac, 0xcda5, 0xb0f5, 0xc3ed, 0xb9e0, 0xb5d9, 0xbccc, 0xc0b5, 0xbee5, 0xc3e6, 0xb2bc, 0xbab8, 0xb1a6, 0xb0e5, 0xbda1, 0xb3d8, 0xb4c6, 0xb4eb, 0xbbf1, 0xb6a8, 0xcceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5a2, 0xa5a4, 0xa5a6, 0xa5a8, 0xa5aa, 0xa5ab, 0xa5ad, 0xa5af, 0xa5b1, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b9, 0xa5bb, 0xa5bd, 0xa5bf, 0xa5c1, 0xa5c4, 0xa5c6, 0xa5c8, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d2, 0xa5d5, 0xa5d8, 0xa5db, 0xa5de, 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e4, 0xa5e6, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0x003f, /* 0x4e00 .. 0x4eff */ 0xb0ec, 0xc3fa, 0x003f, 0xbcb7, 0x003f, 0x003f, 0x003f, 0xcbfc, 0xbee6, 0xbbb0, 0xbee5, 0xb2bc, 0x003f, 0xc9d4, 0xcdbf, 0x003f, 0xd0a2, 0xb1af, 0x003f, 0x003f, 0xb3ee, 0xd0a3, 0xc0a4, 0xd2c2, 0xb5d6, 0xcaba, 0x003f, 0x003f, 0x003f, 0x003f, 0xbee7, 0x003f, 0x003f, 0xcebe, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac2, 0x003f, 0x003f, 0x003f, 0xd0a4, 0x003f, 0x003f, 0xc3e6, 0x003f, 0x003f, 0x003f, 0xd0a5, 0xb6fa, 0x003f, 0x003f, 0x003f, 0xd0a6, 0x003f, 0xb4dd, 0xc3b0, 0x003f, 0xbce7, 0xd0a7, 0x003f, 0x003f, 0xd0a8, 0x003f, 0x003f, 0xd0a9, 0xc7b5, 0x003f, 0xb5d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7b7, 0x003f, 0xc6e3, 0xb8c3, 0xcbb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c9, 0xd0aa, 0xbee8, 0xd0ab, 0xb2b5, 0x003f, 0x003f, 0x003f, 0xb6e5, 0xb8f0, 0xcce9, 0x003f, 0x003f, 0xd6a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf0, 0x003f, 0xc6fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4a5, 0x003f, 0xb5b5, 0x003f, 0xd0ac, 0x003f, 0x003f, 0xd0ad, 0xcebb, 0x003f, 0xcdbd, 0xc1e8, 0xd0af, 0xbbf6, 0xc6f3, 0x003f, 0xd0b2, 0x003f, 0x003f, 0xb1be, 0xb8df, 0x003f, 0xb8de, 0xb0e6, 0x003f, 0x003f, 0xcfcb, 0xcfca, 0x003f, 0xbab3, 0xb0a1, 0x003f, 0xd0b3, 0xd0b4, 0xd0b5, 0xcbb4, 0xd0b6, 0x003f, 0xb8f2, 0xb0e7, 0xcbf2, 0x003f, 0xb5fc, 0x003f, 0x003f, 0xb5fd, 0xb5fe, 0xc4e2, 0xcebc, 0x003f, 0xd0b7, 0x003f, 0x003f, 0xd0b8, 0x003f, 0x003f, 0xd0b9, 0x003f, 0x003f, 0x003f, 0xbfcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdba, 0xbfce, 0xd0be, 0x003f, 0xd0bc, 0x003f, 0xd0bd, 0xb5d8, 0x003f, 0x003f, 0xbaa3, 0xb2f0, 0x003f, 0xd0bb, 0xd0ba, 0xcaa9, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbc6, 0xbbc5, 0xc2be, 0xd0bf, 0xc9d5, 0xc0e7, 0x003f, 0x003f, 0x003f, 0xa1b8, 0xd0c0, 0xd0c2, 0x003f, 0x003f, 0x003f, 0xc2e5, 0xcee1, 0xb0ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c1, 0xb2be, 0x003f, 0xb6c4, 0x003f, 0xc3e7, 0x003f, 0x003f, 0x003f, 0xb7ef, 0xd0c3, 0x003f, 0x003f, 0x003f, 0xc7a4, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x4f00 .. 0x4fff */ 0x003f, 0xb4eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c4, 0xb0cb, 0x003f, 0x003f, 0xb8e0, 0xb4ec, 0xc9fa, 0xc8b2, 0xb5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2f1, 0x003f, 0xd0e7, 0xc5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7ec, 0xd0c6, 0x003f, 0x003f, 0x003f, 0xc8bc, 0x003f, 0xcee2, 0x003f, 0xbfad, 0x003f, 0xbbc7, 0x003f, 0xbbf7, 0xb2c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4d1, 0x003f, 0x003f, 0xc3a2, 0xd0ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0cc, 0xc4e3, 0xbdbb, 0xbab4, 0xcda4, 0x003f, 0xc2ce, 0x003f, 0xb2bf, 0x003f, 0xd0c9, 0x003f, 0xcdbe, 0xd0c5, 0xd0c7, 0xbaee, 0xd0c8, 0xd5a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0d3, 0xd0d1, 0x003f, 0x003f, 0xb2c2, 0x003f, 0xcabb, 0xd0cb, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0cf, 0xb8f3, 0x003f, 0x003f, 0xbbc8, 0x003f, 0x003f, 0x003f, 0xb4a6, 0x003f, 0x003f, 0xd0d4, 0x003f, 0xd0cc, 0x003f, 0x003f, 0xcee3, 0x003f, 0xbbf8, 0x003f, 0xd0cd, 0x003f, 0xd0d2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0d5, 0x003f, 0xd0ce, 0x003f, 0x003f, 0xb6a1, 0x003f, 0xb0cd, 0x003f, 0x003f, 0xb6a2, 0xb2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a5, 0x003f, 0xcbf9, 0xc9ee, 0xb8f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfaf, 0xceb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad8, 0x003f, 0x003f, 0xb7b8, 0xc2a5, 0xb2e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd3, 0x003f, 0x003f, 0x003f, 0xd0d9, 0x003f, 0xd0de, 0xd0dc, 0x003f, 0x003f, 0xd0d7, 0x003f, 0x003f, 0xc2af, 0xd0da, 0x003f, 0xd0dd, 0xd0db, 0x003f, 0xcadd, 0x003f, 0xd0d8, 0x003f, 0xbfae, 0x003f, 0xcbf3, 0xd0df, 0xd0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbda4, 0xd0ed, 0x003f, 0x003f, 0x003f, 0xc7d0, 0x003f, 0xc9b6, 0xd0e8, 0x003f, 0xcaf0, 0x003f, 0xb2b6, 0x003f, 0x003f, 0x003f, 0xd0ec, 0x003f, /* 0x5000 .. 0x50ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e6, 0xd0ef, 0x003f, 0x003f, 0xc1d2, 0x003f, 0xb8c4, 0x003f, 0xc7dc, 0x003f, 0xe0c7, 0x003f, 0xd0ee, 0xc5dd, 0x003f, 0xd0e3, 0x003f, 0xb8f6, 0x003f, 0x003f, 0xb8f5, 0xd0e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcda, 0x003f, 0xd0e9, 0x003f, 0xcaef, 0xc3cd, 0xd0e5, 0xb7f1, 0x003f, 0xd0e2, 0xd0ea, 0xd0e4, 0xced1, 0xd0eb, 0xcfc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e6, 0x003f, 0x003f, 0xb7f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f0, 0x003f, 0x003f, 0x003f, 0xd0f1, 0xd0f5, 0xb0ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad0, 0xd0f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f3, 0xd0f7, 0x003f, 0x003f, 0x003f, 0xd0f6, 0x003f, 0xc4e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcc5, 0x003f, 0xc2a6, 0xc4e5, 0xb6f6, 0x003f, 0xd0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5b6, 0x003f, 0x003f, 0xd0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb5, 0x003f, 0x003f, 0x003f, 0xb7e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbb1, 0xc8f7, 0xd0fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbac5, 0xcdc3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fe, 0xd1a3, 0xd0fd, 0xbac4, 0x003f, 0xbdfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b9, 0x003f, 0x003f, 0x003f, 0xd1a4, 0x003f, 0x003f, 0xb6cf, 0x003f, 0x003f, 0x003f, 0xd1a1, 0xd1a2, 0x003f, 0x003f, 0xc6af, 0x003f, 0xc1fc, 0x003f, 0xb6a3, 0x003f, 0x003f, 0x003f, 0xcbcd, 0xd1a5, 0x003f, 0x003f, 0x003f, 0xcebd, 0x003f, 0x003f, 0x003f, 0xd1a6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a9, 0x003f, 0xd1a7, 0x003f, 0xc1ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a8, 0xd1aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ac, 0x003f, 0x003f, 0x003f, 0xd1ab, 0x003f, 0xcac8, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5100 .. 0x51ff */ 0xb5b7, 0xd1ae, 0xd1af, 0x003f, 0xb2af, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcf4, 0x003f, 0xd1b2, 0xd1b1, 0xd1b0, 0x003f, 0xd0d6, 0x003f, 0xd1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdfe, 0x003f, 0xd1b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b6, 0x003f, 0x003f, 0xd1b5, 0xd1b8, 0xd1b7, 0x003f, 0x003f, 0xd1b9, 0xd1ba, 0xb0f4, 0x003f, 0xb8b5, 0xb7bb, 0xbdbc, 0xc3fb, 0xb6a4, 0xc0e8, 0xb8f7, 0x003f, 0xb9ee, 0xd1bc, 0xccc8, 0xc5c6, 0x003f, 0xbbf9, 0x003f, 0xd1bb, 0x003f, 0xd1bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5de, 0x003f, 0xb3f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1be, 0x003f, 0x003f, 0xc6fe, 0x003f, 0x003f, 0xc1b4, 0xd1c0, 0xd1c1, 0xc8ac, 0xb8f8, 0xcfbb, 0xd1c2, 0x003f, 0x003f, 0xb6a6, 0x003f, 0x003f, 0x003f, 0xcabc, 0xc2b6, 0xb6f1, 0xc5b5, 0x003f, 0x003f, 0x003f, 0xb7f3, 0x003f, 0x003f, 0x003f, 0xd1c3, 0x003f, 0xd1c4, 0x003f, 0x003f, 0xc6e2, 0xb1df, 0x003f, 0x003f, 0xd1c7, 0xbafd, 0x003f, 0xd1c6, 0xbac6, 0x003f, 0xd1c8, 0xe6ee, 0xd1c9, 0xcbc1, 0xd1ca, 0x003f, 0xd1cb, 0xd1cc, 0xbee9, 0x003f, 0xbccc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4a7, 0x003f, 0xd1cf, 0x003f, 0xd1cd, 0xccbd, 0xd1ce, 0x003f, 0xc9da, 0xd1d0, 0xd1d1, 0xd1d2, 0xc5df, 0x003f, 0x003f, 0x003f, 0xd1d6, 0xd1d4, 0xd1d5, 0xd1d3, 0xbae3, 0xd1d7, 0xccea, 0xcee4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0a8, 0xd1d9, 0xbdda, 0x003f, 0x003f, 0xd1da, 0x003f, 0xc3fc, 0xcebf, 0xc5e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1db, 0xf4a5, 0xb6c5, 0x003f, 0x003f, 0xd1dc, 0xcbde, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde8, 0xc2fc, 0x003f, 0xd1de, 0xc6e4, 0x003f, 0x003f, 0xd1df, 0x003f, 0x003f, 0xd1e0, 0xb3ae, 0x003f, 0x003f, 0x003f, 0xd1e1, 0xb6a7, 0x003f, 0xc6cc, 0xb1fa, 0xbdd0, 0x003f, 0x003f, 0xc8a1, 0xd1e2, 0x003f, /* 0x5200 .. 0x52ff */ 0xc5e1, 0x003f, 0x003f, 0xbfcf, 0xd1e3, 0x003f, 0xcaac, 0xc0da, 0xb4a2, 0x003f, 0xb4a9, 0xd1e4, 0x003f, 0x003f, 0xd1e6, 0x003f, 0x003f, 0xb7ba, 0x003f, 0x003f, 0xd1e5, 0x003f, 0x003f, 0xcef3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8bd, 0xcacc, 0x003f, 0xd1e7, 0x003f, 0xcdf8, 0xd1e8, 0x003f, 0x003f, 0x003f, 0xd1e9, 0x003f, 0xc5fe, 0x003f, 0x003f, 0xd1ea, 0x003f, 0x003f, 0xc0a9, 0xbafe, 0xb7f4, 0xd1eb, 0xbbc9, 0xb9ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4e6, 0xd1ed, 0x003f, 0x003f, 0xc2a7, 0x003f, 0x003f, 0xbaef, 0xd1ee, 0xd1ef, 0xc1b0, 0x003f, 0xd1ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1f1, 0x003f, 0xcbb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9e4, 0x003f, 0x003f, 0xd1f0, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7f5, 0xbade, 0xc7ed, 0x003f, 0x003f, 0x003f, 0xd1f4, 0xd1f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9fb, 0xbeea, 0xd1fb, 0xb3e4, 0xd1f5, 0xd1f3, 0xc1cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1f7, 0x003f, 0xd1f6, 0x003f, 0x003f, 0x003f, 0xb3c4, 0x003f, 0x003f, 0x003f, 0xb7e0, 0xd1fc, 0xcead, 0x003f, 0x003f, 0x003f, 0xd1f8, 0x003f, 0x003f, 0x003f, 0xd1fd, 0xd1fa, 0x003f, 0xd1f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcecf, 0x003f, 0x003f, 0x003f, 0xb8f9, 0xb2c3, 0x003f, 0x003f, 0xcef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf5, 0xc5d8, 0xb9e5, 0xd2a2, 0xd2a3, 0x003f, 0x003f, 0x003f, 0xcee5, 0x003f, 0x003f, 0xcfab, 0xd2a5, 0x003f, 0x003f, 0x003f, 0xb8fa, 0x003f, 0x003f, 0xd2a4, 0x003f, 0xb3af, 0x003f, 0x003f, 0xd2a6, 0x003f, 0xcbd6, 0x003f, 0xc4bc, 0x003f, 0xcda6, 0x003f, 0xcad9, 0x003f, 0x003f, 0x003f, 0xd2a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d5, 0x003f, 0x003f, 0xc6b0, 0x003f, 0xd2a8, 0xb4aa, 0xccb3, 0x003f, 0x003f, 0x003f, 0xbea1, 0xd2a9, 0xcae7, 0xd2ad, 0x003f, 0xc0aa, 0xd2aa, 0xb6d0, 0x003f, 0xd2ab, 0xb4ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ae, 0xd2ae, 0x003f, 0xd2af, 0x003f, 0x003f, 0xd2b0, 0xd2b1, 0xbcdb, 0x003f, 0x003f, 0x003f, 0xb8fb, 0xccde, /* 0x5300 .. 0x53ff */ 0x003f, 0xcce8, 0xc6f7, 0x003f, 0x003f, 0xcaf1, 0xd2b2, 0x003f, 0xd2b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b5, 0x003f, 0xd2b7, 0xd2b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b8, 0xb2bd, 0xcbcc, 0x003f, 0xbafc, 0xd2b9, 0x003f, 0x003f, 0xc1d9, 0x003f, 0x003f, 0xbea2, 0xb6a9, 0x003f, 0xd2ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8db, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2bb, 0x003f, 0xd2bc, 0x003f, 0xd2bd, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2be, 0xc9a4, 0xb6e8, 0xb0e5, 0x003f, 0x003f, 0x003f, 0xc6bf, 0xd2bf, 0xbdbd, 0x003f, 0xc0e9, 0x003f, 0xd2c1, 0xd2c0, 0xbea3, 0xb8e1, 0xd2c3, 0xc8be, 0x003f, 0x003f, 0xd2c4, 0x003f, 0x003f, 0x003f, 0xc8dc, 0xc2b4, 0xc2ee, 0xb6a8, 0x003f, 0x003f, 0xc6ee, 0xc3b1, 0x003f, 0xc7ee, 0x003f, 0xcbce, 0x003f, 0xd2c6, 0x003f, 0xc0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b5, 0x003f, 0x003f, 0xd2c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2c8, 0xb1ac, 0xb0f5, 0xb4ed, 0x003f, 0xc2a8, 0xb5d1, 0xcdf1, 0x003f, 0xd2cb, 0xb2b7, 0x003f, 0x003f, 0xd2ca, 0x003f, 0x003f, 0x003f, 0xb6aa, 0x003f, 0x003f, 0xd2cc, 0x003f, 0xccf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2cd, 0x003f, 0xced2, 0x003f, 0xb8fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8b6, 0xd2ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2d0, 0xd2cf, 0x003f, 0xbfdf, 0xb1b9, 0x003f, 0x003f, 0x003f, 0xb1de, 0xd2d1, 0x003f, 0xd2d2, 0x003f, 0x003f, 0xb8b7, 0x003f, 0x003f, 0xd2d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbb2, 0xd2d4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf4, 0xbab5, 0xb5da, 0xcda7, 0xc1d0, 0xc8bf, 0xbcfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc7, 0x003f, 0xbce8, 0xbcf5, 0x003f, 0xbdf6, 0x003f, 0xc8c0, 0x003f, 0x003f, 0x003f, 0xd2d7, 0x003f, 0xb1c3, 0xc1d1, 0xb8fd, 0xb8c5, 0xb6e7, 0x003f, 0x003f, 0xd2db, 0xc3a1, 0xc2fe, 0xb6ab, 0xbea4, 0xd2dc, 0xd2da, 0xb2c4, 0xc2e6, 0xbcb8, 0xbbcb, 0xb1a6, 0x003f, 0x003f, 0xb3f0, 0xb9e6, 0xbbca, 0x003f, 0xd2dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5400 .. 0x54ff */ 0x003f, 0xd2de, 0x003f, 0xb5c9, 0xb3c6, 0x003f, 0x003f, 0x003f, 0xb9e7, 0xb5c8, 0xc4df, 0xb1a5, 0xc6b1, 0xccbe, 0xb9a1, 0xcdf9, 0xc5c7, 0xb8fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7af, 0x003f, 0xd2e7, 0x003f, 0xb6e3, 0xcbca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8dd, 0x003f, 0x003f, 0xd2e6, 0x003f, 0xb4de, 0xd2e1, 0xd2e2, 0xd2e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2e5, 0x003f, 0xb5db, 0xbfe1, 0x003f, 0xcaad, 0xd2e3, 0xd2df, 0xb8e3, 0x003f, 0xd2e0, 0x003f, 0xcfa4, 0x003f, 0x003f, 0x003f, 0xcaf2, 0x003f, 0xc4e8, 0xb8e2, 0xb9f0, 0x003f, 0x003f, 0x003f, 0xd2e8, 0x003f, 0x003f, 0xc6dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcfe, 0x003f, 0xbcf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2ef, 0xd2ed, 0x003f, 0xcca3, 0x003f, 0xd2ea, 0xd2f3, 0xd2ee, 0x003f, 0x003f, 0x003f, 0xd2f1, 0xb8c6, 0xccbf, 0x003f, 0x003f, 0xd2f2, 0x003f, 0x003f, 0x003f, 0xd2f4, 0x003f, 0xd2f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xbaf0, 0xcfc2, 0x003f, 0xd2eb, 0xd2e9, 0xd2f5, 0x003f, 0xd2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2f8, 0x003f, 0xd3a3, 0xd2fa, 0x003f, 0x003f, 0xd2fe, 0x003f, 0x003f, 0xd3a1, 0xd2fb, 0x003f, 0x003f, 0xd3be, 0x003f, 0x003f, 0xbae9, 0xb3b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2f9, 0x003f, 0x003f, 0x003f, 0xd3a5, 0xb0f6, 0xd3a4, 0x003f, 0xb0a5, 0xc9ca, 0xd3a2, 0x003f, 0xd2fc, 0x003f, 0x003f, 0xd2f7, 0xd2fd, 0xbac8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0f7, 0xd3af, 0x003f, 0x003f, 0xd3a7, 0xd3a8, 0x003f, 0xbea5, 0xcbe9, 0x003f, 0x003f, 0x003f, 0xd3ad, 0xd3ac, 0x003f, 0x003f, 0x003f, 0xc5af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ae, 0x003f, 0x003f, 0xd3ab, 0x003f, 0x003f, /* 0x5500 .. 0x55ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b4, 0x003f, 0xbab6, 0xbfb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a9, 0xc5e2, 0x003f, 0x003f, 0x003f, 0xd3aa, 0x003f, 0xb0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b4, 0xcda3, 0x003f, 0xbea7, 0x003f, 0xd3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b9, 0xd3b0, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c3, 0x003f, 0xd3b1, 0x003f, 0x003f, 0x003f, 0xc2ef, 0xd3b6, 0xbea6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b3, 0x003f, 0x003f, 0xcce4, 0x003f, 0x003f, 0x003f, 0xb7bc, 0x003f, 0x003f, 0xd3b7, 0xd3b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b5, 0xd3bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c1, 0xd3c6, 0x003f, 0xd3c2, 0x003f, 0xd3bd, 0x003f, 0x003f, 0xd3c7, 0xc1b1, 0x003f, 0x003f, 0xd3c9, 0x003f, 0xb9a2, 0xd3bf, 0xc3fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c3, 0xd3bc, 0xb4ad, 0x003f, 0xb4ee, 0xb3e5, 0xd3c4, 0xd3c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7f6, 0xd3ca, 0xd3c8, 0xc1d3, 0xb5ca, 0xb6ac, 0x003f, 0xd3c5, 0x003f, 0xb6f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ce, 0xd3cc, 0x003f, 0xd4a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3cb, 0x003f, 0xd3cf, 0x003f, 0x003f, 0xd3cd, 0x003f, 0x003f, 0x003f, 0xbbcc, 0xd3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d3, 0x003f, 0xd3d8, 0x003f, 0x003f, 0x003f, 0xd3d6, 0xd3d5, 0x003f, /* 0x5600 .. 0x56ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3b2, 0x003f, 0x003f, 0xb2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d2, 0x003f, 0xd3d4, 0xbea8, 0xb1b3, 0x003f, 0x003f, 0xd3d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e2, 0x003f, 0xbefc, 0xd3de, 0x003f, 0xd3dc, 0x003f, 0xd3dd, 0x003f, 0xd3df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1b9, 0x003f, 0xd3d9, 0x003f, 0xd3da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e1, 0x003f, 0x003f, 0x003f, 0xb4ef, 0x003f, 0xd3e4, 0xd3e0, 0xd3e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaae, 0x003f, 0x003f, 0x003f, 0xc6d5, 0x003f, 0xc8b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e5, 0xb3c5, 0x003f, 0x003f, 0xd3e7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ea, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e8, 0x003f, 0xc7b9, 0x003f, 0x003f, 0xd3eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ee, 0x003f, 0xd3ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f0, 0x003f, 0x003f, 0x003f, 0xd3f3, 0xd3f1, 0xd3ef, 0xd3f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f5, 0x003f, 0x003f, 0xd3f6, 0x003f, 0xd3f7, 0x003f, 0x003f, 0x003f, 0xd3f8, 0xd1c5, 0x003f, 0xbcfc, 0xbbcd, 0x003f, 0x003f, 0xb2f3, 0x003f, 0xb0f8, 0x003f, 0x003f, 0xc3c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f9, 0x003f, 0xbaa4, 0x003f, 0xb0cf, 0xbfde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3fa, 0xb8c7, 0x003f, 0x003f, 0xb9f1, 0x003f, 0xd3fc, /* 0x5700 .. 0x57ff */ 0xd3fb, 0x003f, 0x003f, 0xcae0, 0xd3fd, 0x003f, 0x003f, 0x003f, 0xd4a1, 0xd3fe, 0x003f, 0xd4a2, 0x003f, 0xd4a3, 0x003f, 0xb7f7, 0x003f, 0x003f, 0xb1e0, 0xd4a4, 0x003f, 0x003f, 0xd4a6, 0x003f, 0xd4a5, 0x003f, 0x003f, 0x003f, 0xd4a8, 0x003f, 0x003f, 0xc5da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4a9, 0xb0b5, 0xbadf, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7bd, 0x003f, 0x003f, 0xc3cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4aa, 0xd4ab, 0x003f, 0x003f, 0xd4ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ae, 0x003f, 0xbae4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6d1, 0x003f, 0x003f, 0xcbb7, 0x003f, 0x003f, 0x003f, 0xd4ac, 0xd4af, 0xbac1, 0xb9a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b3, 0x003f, 0x003f, 0xbaa5, 0x003f, 0xc3b3, 0x003f, 0x003f, 0xd4b0, 0xc4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b4, 0x003f, 0x003f, 0xbfe2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b2, 0xd4b5, 0x003f, 0xb7bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b7, 0x003f, 0xb9a4, 0xb3c0, 0xd4b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4bb, 0x003f, 0x003f, 0xd4b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b1, 0x003f, 0x003f, 0xd4bc, 0x003f, 0x003f, 0xd4bd, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe4, 0x003f, 0x003f, 0xbeeb, 0x003f, 0x003f, 0x003f, 0xd4bf, 0xd4c0, 0xd4be, 0x003f, 0xd4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7b8, 0x003f, 0x003f, 0xb0e8, 0xc9d6, 0x003f, 0x003f, 0xd4c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbefd, 0x003f, 0x003f, 0xbcb9, 0x003f, 0xc7dd, 0xb4f0, 0x003f, 0xbaeb, 0x003f, 0x003f, 0x003f, /* 0x5800 .. 0x58ff */ 0xcbd9, 0x003f, 0xc6b2, 0x003f, 0x003f, 0xb7f8, 0xc2cf, 0x003f, 0x003f, 0x003f, 0xd4c1, 0xd4c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c4, 0x003f, 0x003f, 0x003f, 0xd4c5, 0x003f, 0x003f, 0x003f, 0xd4c6, 0x003f, 0x003f, 0x003f, 0xd4c8, 0x003f, 0x003f, 0xc4e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a1, 0xb1e1, 0xcaf3, 0x003f, 0x003f, 0xbeec, 0xc5c8, 0x003f, 0x003f, 0x003f, 0x003f, 0xbae6, 0x003f, 0x003f, 0xd4ce, 0x003f, 0x003f, 0xcabd, 0xcedd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2f4, 0xd4ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1ba, 0xd4cd, 0x003f, 0xc5e3, 0x003f, 0x003f, 0xc5c9, 0xc5e4, 0xc8b9, 0xc4cd, 0x003f, 0x003f, 0x003f, 0xbac9, 0x003f, 0x003f, 0x003f, 0xd4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1f6, 0x003f, 0xc5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4cb, 0x003f, 0xd4c7, 0x003f, 0x003f, 0xbfd0, 0x003f, 0x003f, 0x003f, 0xd4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdce, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6ad, 0x003f, 0xd4d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae8, 0x003f, 0x003f, 0x003f, 0xc1fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4c6, 0x003f, 0x003f, 0xd4d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcf, 0x003f, 0x003f, 0xd4d3, 0x003f, 0x003f, 0xd4d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaaf, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4d7, 0xd4d1, 0xd4d4, 0xd4d6, 0x003f, 0x003f, 0xbaa6, 0x003f, 0x003f, 0xcac9, 0x003f, 0x003f, 0x003f, 0xd4d9, 0x003f, 0xc3c5, 0x003f, 0x003f, 0xb2f5, 0x003f, 0xbeed, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4db, 0x003f, 0xd4da, 0x003f, 0xb9e8, 0x003f, 0xd4dc, 0xd4de, 0xd4dd, 0x003f, 0x003f, 0xd4e0, 0x003f, 0xd4d5, 0xd4e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e1, 0xd4df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbce, 0xbfd1, 0x003f, 0xc1d4, 0xd4e3, 0xc0bc, 0xb0ed, 0xc7e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4db, 0x003f, 0xd4e5, 0xd4e4, 0xd4e6, 0xd4e7, 0xd4e8, 0x003f, 0x003f, /* 0x5900 .. 0x59ff */ 0x003f, 0x003f, 0xd4e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad1, 0xd4ea, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2c6, 0xd4eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbc, 0xb3b0, 0x003f, 0xd2c9, 0xbdc8, 0xc2bf, 0xd4ec, 0xcceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccb4, 0x003f, 0x003f, 0xd4ee, 0x003f, 0xc2e7, 0x003f, 0xc5b7, 0xc2c0, 0xc9d7, 0xd4ef, 0xd4f0, 0xb1fb, 0x003f, 0x003f, 0xbcba, 0xd4f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0d0, 0xd4f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1e2, 0x003f, 0x003f, 0xb4f1, 0xc6e0, 0xcaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f7, 0xc1d5, 0xd4f6, 0xb7c0, 0x003f, 0x003f, 0xcbdb, 0xd4f5, 0x003f, 0xc5e5, 0xd4f9, 0x003f, 0xd4f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4fb, 0x003f, 0xd4fa, 0x003f, 0x003f, 0xb1fc, 0x003f, 0xd4fc, 0xbea9, 0xd4fe, 0xc3a5, 0x003f, 0xd4fd, 0x003f, 0xcab3, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf7, 0xc5db, 0x003f, 0x003f, 0x003f, 0xd5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9a5, 0x003f, 0x003f, 0x003f, 0xd5a2, 0xc7a1, 0xc8de, 0xccd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7a5, 0x003f, 0x003f, 0xd5ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5b8, 0x003f, 0x003f, 0xcdc5, 0x003f, 0x003f, 0xccaf, 0x003f, 0xd6ac, 0x003f, 0xd5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a6, 0x003f, 0xc2c5, 0x003f, 0x003f, 0xcbb8, 0x003f, 0x003f, 0x003f, 0xc5ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe5, 0x003f, 0xbaca, 0x003f, 0x003f, 0xbeaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a8, 0x003f, 0x003f, 0xbbd0, 0x003f, 0xbbcf, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0b9, 0xb8c8, 0x003f, 0xc0ab, 0xb0d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ac, 0xd5ad, 0x003f, 0xd5aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b8, 0xb4af, 0x003f, 0xd5a9, 0x003f, 0xccc5, 0xc9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0f9, 0x003f, 0x003f, 0x003f, 0xbbd1, /* 0x5a00 .. 0x5aff */ 0x003f, 0xb0d2, 0x003f, 0xb0a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccbc, 0x003f, 0xd5b3, 0x003f, 0xd5b1, 0x003f, 0x003f, 0xd5af, 0xbfb1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ae, 0x003f, 0x003f, 0x003f, 0xcada, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b7, 0xd5b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbeab, 0x003f, 0x003f, 0x003f, 0xd5b4, 0xcfac, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7cc, 0x003f, 0x003f, 0xd5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbaa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b9, 0x003f, 0x003f, 0x003f, 0xc9d8, 0x003f, 0x003f, 0x003f, 0xd5ba, 0x003f, 0xd5b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5bb, 0xc9b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5bc, 0xd5c0, 0xd5bd, 0x003f, 0x003f, 0xb2c7, 0xd5bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcbb, 0x003f, 0xd5be, 0xb7f9, 0x003f, 0x003f, 0x003f, 0xd5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c5, 0xd5c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3e4, 0x003f, 0xd5c1, 0x003f, 0x003f, 0xd5c3, 0x003f, 0x003f, 0xd5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c6, 0xd5c7, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5b00 .. 0x5bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4f2, 0x003f, 0xd5c9, 0xd5c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbeee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cd, 0x003f, 0xc4dc, 0x003f, 0x003f, 0x003f, 0xb1c5, 0x003f, 0xd5cb, 0x003f, 0x003f, 0x003f, 0xd5ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cf, 0x003f, 0xd5d2, 0x003f, 0x003f, 0xd5d0, 0x003f, 0xd5d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbd2, 0xd5d3, 0x003f, 0x003f, 0xb9a6, 0xd5d4, 0x003f, 0xbbfa, 0xc2b8, 0x003f, 0xd5d5, 0xd5d6, 0xbbda, 0xb9a7, 0x003f, 0xccd2, 0x003f, 0x003f, 0x003f, 0xb5a8, 0xb8c9, 0xd5d7, 0xb3d8, 0x003f, 0x003f, 0xd5d8, 0x003f, 0xc2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5d9, 0xd6a3, 0x003f, 0xd5da, 0x003f, 0xd5db, 0x003f, 0x003f, 0xd5dc, 0x003f, 0xd5de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5df, 0x003f, 0x003f, 0xd5e0, 0x003f, 0xc2f0, 0x003f, 0xb1a7, 0xbce9, 0xb0c2, 0x003f, 0xc1d7, 0xb4b0, 0xbcb5, 0x003f, 0xb9a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5e6, 0x003f, 0xbda1, 0xb4b1, 0xc3e8, 0xc4ea, 0xb0b8, 0xb5b9, 0xcaf5, 0x003f, 0xbcc2, 0x003f, 0x003f, 0xb5d2, 0xc0eb, 0xbcbc, 0xcda8, 0xd5e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5dc, 0x003f, 0xbacb, 0x003f, 0x003f, 0xb3b2, 0xb1e3, 0xbeac, 0xb2c8, 0x003f, 0xd5e2, 0xcdc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc9, 0x003f, 0x003f, 0xbce4, 0xd5e3, 0xb4f3, 0xc6d2, 0xcca9, 0xd5e4, 0x003f, 0xd5e5, 0x003f, 0x003f, 0xc9d9, 0x003f, 0x003f, 0x003f, 0xd5e7, 0x003f, 0xb4a8, 0xb6f7, 0xd5e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4b2, 0x003f, 0xbfb2, 0xd5eb, 0xbba1, 0x003f, 0xb2c9, 0xd5ea, 0x003f, 0xd5e8, 0xd5ec, 0xd5e9, 0xc7ab, 0xdccd, 0xbfb3, 0x003f, 0xd5ed, 0x003f, 0x003f, 0xcec0, 0x003f, 0xd5ee, 0x003f, 0x003f, 0xd5f0, 0x003f, 0xc3fe, 0xd5ef, 0x003f, 0xc0a3, 0x003f, 0xbbfb, 0x003f, 0x003f, 0x003f, 0xc2d0, 0xbcf7, /* 0x5c00 .. 0x5cff */ 0x003f, 0xc9f5, 0xc0ec, 0x003f, 0xbccd, 0xd5f1, 0xbead, 0xd5f2, 0xd5f3, 0xb0d3, 0xc2ba, 0xbfd2, 0x003f, 0xd5f4, 0xc6b3, 0xbeae, 0x003f, 0xbeaf, 0x003f, 0xd5f5, 0x003f, 0x003f, 0xc0ed, 0x003f, 0x003f, 0x003f, 0xbeb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5f6, 0x003f, 0xd5f7, 0x003f, 0xcce0, 0x003f, 0x003f, 0x003f, 0xd5f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6c6, 0x003f, 0x003f, 0x003f, 0xbda2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5f9, 0xd5fa, 0xbcdc, 0xbfac, 0xc6f4, 0xbfd4, 0xc8f8, 0xc7a2, 0xb6c9, 0xd5fb, 0x003f, 0x003f, 0x003f, 0xb5ef, 0xd5fc, 0x003f, 0xb6fe, 0x003f, 0xc6cf, 0xb2b0, 0x003f, 0xbbd3, 0xd5fd, 0xd6a2, 0xd6a1, 0xb6fd, 0x003f, 0xd5fe, 0x003f, 0xc5b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2b0, 0x003f, 0xc5cb, 0xbcc8, 0x003f, 0x003f, 0xc1d8, 0xcdfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a4, 0x003f, 0xd6a5, 0xc6d6, 0x003f, 0xbbb3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a7, 0x003f, 0x003f, 0xd6a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a9, 0x003f, 0x003f, 0x003f, 0xb4f4, 0xd6aa, 0x003f, 0x003f, 0xd6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1bb, 0xb4e4, 0x003f, 0xd6ad, 0xcca8, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2d2, 0x003f, 0xb3d9, 0x003f, 0x003f, 0xd6af, 0xd6b1, 0xb4df, 0x003f, 0x003f, 0xd6ae, 0xd6b0, 0x003f, 0xd6b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6b2, 0x003f, 0xd6b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6bd, 0xb6ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2e5, 0xd6b6, 0xd6bb, 0x003f, 0x003f, 0xd6b9, 0x003f, 0xcaf7, 0xcaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5e7, 0x003f, 0x003f, 0x003f, 0xd6b8, 0xbdd4, 0x003f, 0xd6b7, 0x003f, 0x003f, /* 0x5d00 .. 0x5dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbff2, 0x003f, 0x003f, 0x003f, 0xd6bc, 0x003f, 0x003f, 0xbaea, 0x003f, 0x003f, 0xd6c2, 0x003f, 0x003f, 0xd6c3, 0xd6bd, 0xb3b3, 0xd6be, 0xd6c7, 0xd6c6, 0xd6c5, 0xd6c1, 0x003f, 0x003f, 0x003f, 0xd6c0, 0x003f, 0x003f, 0xd6c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6cb, 0xd6c8, 0x003f, 0xd6ca, 0x003f, 0xcdf2, 0x003f, 0xd6c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbff3, 0x003f, 0x003f, 0xd6cc, 0x003f, 0x003f, 0xbab7, 0x003f, 0x003f, 0x003f, 0xd6cd, 0x003f, 0x003f, 0xd6ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d1, 0x003f, 0xd6d0, 0x003f, 0x003f, 0xd6cf, 0x003f, 0x003f, 0x003f, 0xc5e8, 0xd6ba, 0x003f, 0x003f, 0x003f, 0xd6d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d4, 0x003f, 0xd6d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d8, 0x003f, 0x003f, 0xcee6, 0x003f, 0xd6d9, 0xd6d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6da, 0x003f, 0x003f, 0xb4e0, 0xd6db, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6dd, 0xd6dc, 0x003f, 0x003f, 0xd6de, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6df, 0x003f, 0xc0ee, 0xbda3, 0x003f, 0x003f, 0xbde4, 0x003f, 0xc1e3, 0x003f, 0xb9a9, 0xbab8, 0xb9aa, 0xb5f0, 0x003f, 0x003f, 0xd6e0, 0x003f, 0x003f, 0xbab9, 0x003f, 0x003f, 0xb8ca, 0xd6e1, 0xcca6, 0xc7c3, 0xd6e2, 0x003f, 0xb9ab, 0x003f, 0x003f, 0x003f, 0xb4ac, 0x003f, 0xc3a7, 0xb6d2, 0x003f, /* 0x5e00 .. 0x5eff */ 0x003f, 0x003f, 0xbbd4, 0xc9db, 0x003f, 0x003f, 0xc8c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6e3, 0xb4f5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6e6, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4a1, 0x003f, 0x003f, 0xd6e5, 0xd6e4, 0xd6e7, 0x003f, 0xc4eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbd5, 0x003f, 0xc0ca, 0x003f, 0xc2d3, 0xb5a2, 0x003f, 0x003f, 0xc4a2, 0x003f, 0x003f, 0xd6e8, 0xd6e9, 0xbeef, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb9, 0x003f, 0x003f, 0xd6ec, 0x003f, 0x003f, 0xd6eb, 0xd6ea, 0xc9fd, 0x003f, 0xd6f3, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbda, 0x003f, 0xd6ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ef, 0xcbeb, 0x003f, 0xd6ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f0, 0x003f, 0xc8a8, 0xd6f1, 0xcabe, 0xd6f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4b3, 0xcabf, 0xc7af, 0xd6f4, 0xd6f5, 0x003f, 0xb9ac, 0xb4b4, 0xd6f6, 0xb8b8, 0xcdc4, 0xcda9, 0xb4f6, 0xd6f8, 0x003f, 0xc4a3, 0x003f, 0xb9ad, 0xbeb1, 0x003f, 0x003f, 0xc8df, 0x003f, 0x003f, 0xbeb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4ec, 0xcaf9, 0xc5b9, 0x003f, 0x003f, 0xb9ae, 0x003f, 0xc9dc, 0x003f, 0x003f, 0x003f, 0xd6f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d9, 0xbac2, 0x003f, 0x003f, 0x003f, 0xb8cb, 0x003f, 0xc4ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0c3, 0xbdee, 0xb9af, 0xcdc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fa, 0xd6fb, 0xc7d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fc, 0xcef7, 0xcfad, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fe, 0xd6fd, 0x003f, 0x003f, 0xb3c7, 0x003f, 0x003f, 0xd7a1, 0x003f, 0x003f, 0x003f, 0xd7a4, 0xd7a5, 0x003f, 0xd7a3, 0x003f, 0xc9c0, 0xbeb3, 0xd7a7, 0xd7a6, 0xd7a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a8, 0xd7a9, 0x003f, 0x003f, 0xd7aa, 0x003f, 0x003f, 0x003f, 0xd7ad, 0xd7ab, 0x003f, 0xd7ac, 0xd7ae, 0x003f, 0xb1e4, 0xc4ee, 0xd7af, 0x003f, 0xb7fa, 0xb2f6, 0xc7b6, 0x003f, 0xd7b0, 0xc6fb, /* 0x5f00 .. 0x5fff */ 0x003f, 0xcadb, 0x003f, 0xd7b1, 0xcfae, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7b2, 0xcac0, 0xd7b5, 0xd0a1, 0xd0b1, 0x003f, 0xbcb0, 0xc6f5, 0xd7b6, 0x003f, 0xb5dd, 0xc4a4, 0xb0fa, 0xd7b7, 0xcaa6, 0xb9b0, 0x003f, 0x003f, 0xc3d0, 0x003f, 0x003f, 0x003f, 0xc4ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccef, 0xb8b9, 0xb8cc, 0x003f, 0xd7b8, 0x003f, 0x003f, 0x003f, 0xd7b9, 0x003f, 0xd7bf, 0x003f, 0xbce5, 0x003f, 0x003f, 0x003f, 0xc4a5, 0x003f, 0xb6af, 0xd7ba, 0x003f, 0x003f, 0x003f, 0xc9ab, 0x003f, 0xc3c6, 0x003f, 0x003f, 0xd7bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7bc, 0x003f, 0xb6b0, 0x003f, 0xd7bd, 0x003f, 0xd7be, 0x003f, 0x003f, 0xd7c0, 0x003f, 0xc5f6, 0x003f, 0x003f, 0xd7c1, 0xd7c2, 0x003f, 0xd7c3, 0x003f, 0x003f, 0xd7b4, 0xd7b3, 0x003f, 0x003f, 0x003f, 0xd7c4, 0xb7c1, 0x003f, 0x003f, 0x003f, 0xc9a7, 0x003f, 0x003f, 0xbacc, 0xc9b7, 0xc4a6, 0xc9cb, 0xd7c5, 0x003f, 0x003f, 0xbeb4, 0xb1c6, 0x003f, 0xd7c6, 0x003f, 0x003f, 0x003f, 0xd7c7, 0x003f, 0xccf2, 0x003f, 0x003f, 0xc8e0, 0x003f, 0x003f, 0xd7ca, 0xb1fd, 0xc0ac, 0xd7c9, 0xd7c8, 0xb7c2, 0xc2d4, 0x003f, 0xd7ce, 0xd7cc, 0x003f, 0xd7cb, 0xcea7, 0xb8e5, 0x003f, 0x003f, 0x003f, 0xbdf9, 0xd7cd, 0xc5cc, 0xbdbe, 0x003f, 0x003f, 0x003f, 0xc6c0, 0xd7d1, 0xd7d0, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7cf, 0x003f, 0xd7d2, 0xb8e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7d3, 0xc9fc, 0xbddb, 0x003f, 0x003f, 0xd7d4, 0xc8f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6c1, 0xc4a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5b0, 0x003f, 0x003f, 0xd7d5, 0xb5ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfb4, 0x003f, 0xc9ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4f7, 0xc7a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7d6, 0xbbd6, 0xcbba, 0xcbbb, 0x003f, 0x003f, 0xb1fe, 0xd7db, 0x003f, 0x003f, 0xc3e9, 0x003f, 0x003f, 0x003f, 0xd7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2f7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ad, 0xd7da, 0x003f, 0x003f, 0x003f, 0xc7b0, 0x003f, 0x003f, 0xd7d9, 0x003f, 0x003f, 0xd7d7, 0x003f, 0xb9fa, 0x003f, 0xd7dd, /* 0x6000 .. 0x60ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e3, 0xd7e9, 0xd7e1, 0x003f, 0xc5dc, 0x003f, 0x003f, 0xd7e6, 0xc9dd, 0x003f, 0x003f, 0xd7e0, 0x003f, 0xd7e5, 0xcee7, 0xbbd7, 0x003f, 0x003f, 0xc2d5, 0xd7de, 0x003f, 0x003f, 0x003f, 0xb5de, 0xd7e8, 0xc0ad, 0xb1e5, 0xd7e2, 0xb2f8, 0xd7e7, 0x003f, 0x003f, 0x003f, 0xb6b1, 0x003f, 0xd7e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ec, 0xd7f6, 0xd7f4, 0x003f, 0x003f, 0xd7f1, 0x003f, 0x003f, 0x003f, 0xd7f0, 0xcef8, 0x003f, 0xd7f2, 0x003f, 0x003f, 0xb6b2, 0x003f, 0xb9b1, 0x003f, 0x003f, 0xbdfa, 0x003f, 0x003f, 0x003f, 0xd7f9, 0xd7eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ef, 0xd7df, 0x003f, 0xb2fa, 0xd7f3, 0xd7f5, 0xc3d1, 0x003f, 0x003f, 0xbaa8, 0xb2b8, 0xd7ed, 0xd7f8, 0xd7f7, 0xb6b3, 0x003f, 0xc2a9, 0xb3e6, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7c3, 0x003f, 0xd7ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7fa, 0x003f, 0xd7fd, 0xd8a1, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcbd, 0x003f, 0xd8a7, 0xc4f0, 0xd7fb, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8a5, 0x003f, 0xb2f9, 0x003f, 0xd8a3, 0xd8a4, 0x003f, 0x003f, 0xd7fe, 0xd8a2, 0x003f, 0x003f, 0x003f, 0xb8e7, 0xcdaa, 0x003f, 0x003f, 0xb4b5, 0x003f, 0x003f, 0xb1d9, 0xd8a6, 0x003f, 0xc7ba, 0xb0ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8e1, 0xd7dc, 0xd8ac, 0xd8b0, 0xcce5, 0x003f, 0xd8a9, 0x003f, 0x003f, 0x003f, 0xc5e9, 0xd8ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbef0, 0xd8af, 0xc6d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfc7, 0x003f, 0xd8ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8b1, 0x003f, 0xb9fb, 0x003f, 0xc0cb, 0x003f, 0x003f, 0xb0d4, 0xd8aa, 0xd8a8, 0x003f, 0xc1da, 0x003f, 0x003f, 0x003f, 0xd7fc, 0xbbb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c6, 0xd8bd, 0x003f, 0xc1db, 0xd8b8, 0x003f, 0xd8b5, 0xd8b6, 0x003f, 0xbce6, 0xd8b9, 0xd8bc, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6100 .. 0x61ff */ 0xd8b7, 0xbda5, 0x003f, 0xd8ba, 0x003f, 0x003f, 0xd8b4, 0x003f, 0xccfc, 0xccfb, 0x003f, 0x003f, 0x003f, 0xd8be, 0xd8bf, 0xb0d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6f2, 0xb0a6, 0x003f, 0x003f, 0x003f, 0xb4b6, 0x003f, 0xd8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c3, 0xd8c2, 0x003f, 0x003f, 0x003f, 0xd8c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c6, 0xd8c9, 0xd8c1, 0xd8c5, 0x003f, 0x003f, 0xd8ca, 0x003f, 0xd8cb, 0x003f, 0x003f, 0xd8c0, 0xbbfc, 0x003f, 0xd8c4, 0xc2d6, 0xb9b2, 0xd8b2, 0xbfb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8d8, 0x003f, 0xcae9, 0x003f, 0x003f, 0xd8ce, 0xd8cf, 0xd8d0, 0x003f, 0x003f, 0xd8d7, 0x003f, 0xd8d6, 0x003f, 0x003f, 0xcbfd, 0xb4b7, 0x003f, 0xd8d4, 0x003f, 0xb7c5, 0xb3b4, 0x003f, 0x003f, 0xd8d1, 0x003f, 0x003f, 0xceb8, 0xd8d3, 0xb0d6, 0xd8d5, 0x003f, 0xd8cc, 0xd8d2, 0xd8d9, 0xb7c4, 0xd8cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcddd, 0x003f, 0x003f, 0x003f, 0xcdab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8dc, 0x003f, 0x003f, 0xd8e0, 0x003f, 0x003f, 0x003f, 0xc1fe, 0x003f, 0xcef9, 0xd8e1, 0x003f, 0x003f, 0xd8de, 0x003f, 0xd8db, 0x003f, 0x003f, 0xd8da, 0xd8df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab0, 0x003f, 0x003f, 0xc6b4, 0x003f, 0xb7c6, 0x003f, 0xd8e2, 0xd8dd, 0x003f, 0xd8e3, 0x003f, 0x003f, 0x003f, 0xb7fb, 0x003f, 0x003f, 0x003f, 0xb2b1, 0x003f, 0x003f, 0x003f, 0xd8eb, 0x003f, 0x003f, 0x003f, 0xb4b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8e9, 0x003f, 0x003f, 0xd8ea, 0xbaa9, 0xd8e8, 0xd8e6, 0xd8e5, 0xd8ec, 0xd8e4, 0xd8ee, 0x003f, 0x003f, 0xb2fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8f0, 0x003f, 0x003f, 0xd8ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4a8, 0x003f, 0xd8f3, 0x003f, 0xd8f1, 0xd8e7, 0xb7fc, 0x003f, 0xd8f2, 0x003f, 0xd8f6, 0xd8f5, 0xd8f7, 0xd8f4, /* 0x6200 .. 0x62ff */ 0xd8f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8f9, 0xd8fa, 0xcaea, 0x003f, 0xd8fc, 0xd8fb, 0xbdbf, 0x003f, 0xc0ae, 0xb2e6, 0xb2fc, 0x003f, 0xd8fd, 0x003f, 0xb0bf, 0x003f, 0x003f, 0x003f, 0xc0cc, 0xd8fe, 0x003f, 0xecc3, 0xd9a1, 0xb7e1, 0x003f, 0xd9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0ef, 0x003f, 0x003f, 0x003f, 0xd9a3, 0x003f, 0x003f, 0x003f, 0xd9a4, 0xb5ba, 0xd9a5, 0x003f, 0xd9a6, 0xd9a7, 0xc2d7, 0x003f, 0x003f, 0x003f, 0xb8cd, 0x003f, 0x003f, 0xcce1, 0x003f, 0x003f, 0x003f, 0xcbbc, 0xbdea, 0xd9a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0f0, 0xeebd, 0xc8e2, 0x003f, 0xbcea, 0x003f, 0xbacd, 0xd9a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c7, 0x003f, 0xcaa7, 0x003f, 0x003f, 0xc2f1, 0x003f, 0x003f, 0xd9ac, 0x003f, 0x003f, 0xd9aa, 0x003f, 0xd9ad, 0x003f, 0x003f, 0xd9ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab1, 0x003f, 0x003f, 0xb0b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9de, 0x003f, 0x003f, 0xc8e3, 0x003f, 0x003f, 0xd9af, 0x003f, 0xd9b2, 0xbeb5, 0xb5bb, 0x003f, 0xd9b0, 0xd9b7, 0xbeb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b1, 0xc7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdde, 0xd9b3, 0xd9b4, 0xd9b8, 0xc5ea, 0xd9b5, 0xb9b3, 0xc0de, 0x003f, 0x003f, 0xd9c6, 0xc8b4, 0x003f, 0xc2f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8e4, 0xdaad, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafa, 0x003f, 0x003f, 0x003f, 0xc4f1, 0x003f, 0x003f, 0x003f, 0xcbf5, 0x003f, 0xd9bb, 0xb2a1, 0xc3ea, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9c4, 0x003f, 0x003f, 0xc3b4, 0xd9be, 0xd9c5, 0xd9c0, 0xd9c7, 0xd9c3, 0x003f, 0xd9c2, 0xc7ef, 0x003f, 0xd9bc, 0xb2fd, 0xd9ba, 0xb5f1, 0xc2f3, 0xd9b6, 0x003f, 0x003f, 0xd9b9, 0xb9b4, 0xc0db, 0x003f, 0xbeb7, 0xd9c1, 0xc7d2, 0x003f, 0x003f, 0xb5f2, 0xb3c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3e7, 0xbfa1, 0xd9c9, 0xd9ce, 0x003f, 0xd9ca, 0x003f, 0xb7fd, 0x003f, 0xd9cf, 0xbba2, 0xb9e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbda6, 0xd9bd, /* 0x6300 .. 0x63ff */ 0x003f, 0xbbfd, 0xd9cc, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbd8, 0xd9cd, 0xb0c4, 0x003f, 0x003f, 0xd9c8, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cb, 0xb0a7, 0x003f, 0x003f, 0xbac3, 0x003f, 0x003f, 0x003f, 0xbfb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4f2, 0x003f, 0x003f, 0xc8d4, 0xd9d1, 0xc1de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2aa, 0x003f, 0x003f, 0xbbab, 0xd9d2, 0x003f, 0xd9d4, 0xd9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae1, 0x003f, 0xc4bd, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafb, 0xbcce, 0xd9e0, 0x003f, 0xd9df, 0x003f, 0x003f, 0xbff8, 0x003f, 0x003f, 0x003f, 0xb7fe, 0x003f, 0x003f, 0x003f, 0xd9d9, 0xbeb9, 0x003f, 0x003f, 0xc6e8, 0xc7b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d7, 0x003f, 0x003f, 0xc1dd, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcf8, 0xd9dc, 0x003f, 0x003f, 0xbeb8, 0x003f, 0xd9d6, 0xd9db, 0x003f, 0x003f, 0xc7d3, 0x003f, 0x003f, 0x003f, 0xd9d5, 0x003f, 0xb7a1, 0x003f, 0x003f, 0xb3dd, 0x003f, 0x003f, 0x003f, 0xd9dd, 0xceab, 0xbace, 0xc3b5, 0xd9da, 0x003f, 0xc0dc, 0x003f, 0xb9b5, 0xbfe4, 0xb1e6, 0xc1bc, 0xd9d8, 0xb5c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7c7, 0x003f, 0xc4cf, 0xd9de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1df, 0x003f, 0x003f, 0xd9e1, 0x003f, 0xd9e3, 0x003f, 0x003f, 0xc2b7, 0xd9e9, 0x003f, 0xd9e4, 0x003f, 0x003f, 0xd9e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9c1, 0xc4f3, 0x003f, 0xd9e7, 0x003f, 0x003f, 0x003f, 0xcdac, 0x003f, 0x003f, 0x003f, 0xcdc8, 0xb4b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0ae, 0x003f, 0xd9e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1e7, 0x003f, 0xd9e8, 0x003f, 0x003f, 0x003f, 0xcdc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6400 .. 0x64ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2bb, 0x003f, 0xd9f3, 0x003f, 0x003f, 0x003f, 0xd9ed, 0x003f, 0x003f, 0xd9ea, 0xd9f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ee, 0x003f, 0xd9f2, 0x003f, 0x003f, 0x003f, 0xc8c2, 0xc5eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9eb, 0x003f, 0xd9ef, 0x003f, 0x003f, 0x003f, 0xb7c8, 0x003f, 0x003f, 0x003f, 0xbaf1, 0x003f, 0x003f, 0x003f, 0xc0dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f4, 0x003f, 0xcbe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f6, 0x003f, 0xccce, 0x003f, 0xc0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbb5, 0xd9fa, 0x003f, 0xd9f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7b2, 0x003f, 0x003f, 0x003f, 0xc6b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5b1, 0xd9fb, 0x003f, 0x003f, 0x003f, 0xd9fc, 0x003f, 0xc9ef, 0x003f, 0xc7c5, 0xbba3, 0x003f, 0xc0f1, 0x003f, 0xcbd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3c9, 0x003f, 0xdaa5, 0xd9fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdca, 0xdaa7, 0x003f, 0x003f, 0xdaa3, 0x003f, 0xdaa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaa2, 0x003f, 0xd9bf, 0x003f, 0x003f, 0x003f, 0xdaa6, 0x003f, 0xdaa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaab, 0xdaac, 0xc5a7, 0xdaae, 0x003f, 0x003f, 0xbba4, 0xdaa9, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5bc, 0x003f, 0x003f, 0xdaaf, 0x003f, 0xdaa8, 0xdab3, 0x003f, 0xdab2, 0x003f, 0xdab1, 0x003f, 0x003f, 0x003f, 0xdab4, 0x003f, 0x003f, 0xdab6, 0xbef1, 0x003f, /* 0x6500 .. 0x65ff */ 0xdab5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdab9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdab7, 0x003f, 0x003f, 0x003f, 0xdab8, 0xd9f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdabb, 0xdaba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f8, 0xdabc, 0xdab0, 0x003f, 0x003f, 0xbbd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdabd, 0xdabe, 0xdac0, 0xdabf, 0xdac1, 0xb2fe, 0x003f, 0xb9b6, 0x003f, 0x003f, 0xcafc, 0xc0af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8ce, 0x003f, 0x003f, 0xdac3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdac6, 0x003f, 0xc9d2, 0x003f, 0xb5df, 0x003f, 0x003f, 0x003f, 0xdac5, 0xdac4, 0xc7d4, 0xdac7, 0xb6b5, 0x003f, 0x003f, 0x003f, 0xdac9, 0xdac8, 0x003f, 0x003f, 0x003f, 0xb4ba, 0xbbb6, 0x003f, 0x003f, 0xc6d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7c9, 0x003f, 0x003f, 0x003f, 0xbff4, 0x003f, 0xdaca, 0x003f, 0xc0b0, 0xc5a8, 0x003f, 0xc9df, 0xdacb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdacc, 0xdacd, 0x003f, 0x003f, 0x003f, 0xcab8, 0xd5dd, 0xc0c6, 0x003f, 0x003f, 0xc9cc, 0x003f, 0xbad8, 0x003f, 0xc8e5, 0xc8c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5cd, 0x003f, 0xcec1, 0x003f, 0xdacf, 0xbcd0, 0x003f, 0x003f, 0xdad0, 0x003f, 0xb0b6, 0x003f, 0x003f, 0xb6d4, 0xc0cd, 0x003f, 0xc9e0, 0x003f, 0x003f, 0x003f, 0xdad1, 0xbbc2, 0xc3c7, 0x003f, 0xbbdb, 0xbfb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdad2, 0x003f, 0xcafd, 0x003f, 0x003f, 0xb1f7, 0xbbdc, 0x003f, 0x003f, 0x003f, 0xdad5, 0x003f, 0xdad3, 0xdad6, 0xceb9, 0xdad4, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0fb, 0xdad7, 0x003f, 0x003f, 0xc2b2, 0x003f, 0x003f, 0xdad8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4fa, 0x003f, 0xdada, 0x003f, 0xdad9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdadb, 0xdadc, 0xb4fb, 0x003f, 0x003f, 0xc6fc, 0xc3b6, 0xb5ec, 0xbbdd, 0xc1e1, 0x003f, 0x003f, 0xbddc, 0xb0b0, 0x003f, 0x003f, 0x003f, 0xdadd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2a2, 0xdae1, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6600 .. 0x66ff */ 0x003f, 0x003f, 0xb9b7, 0xdae0, 0x003f, 0x003f, 0xbaab, 0xbeba, 0x003f, 0x003f, 0xdadf, 0x003f, 0xbebb, 0x003f, 0xccc0, 0xbaaa, 0x003f, 0x003f, 0x003f, 0xb0d7, 0xc0ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae6, 0x003f, 0x003f, 0xc0b1, 0xb1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd5, 0x003f, 0xcbe6, 0xbaf2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbebc, 0x003f, 0xc0a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae5, 0xdae3, 0xdae4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3eb, 0x003f, 0x003f, 0xdba6, 0x003f, 0xdaea, 0xbbfe, 0xb9b8, 0xdae8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae9, 0x003f, 0xbfb8, 0x003f, 0x003f, 0x003f, 0xdae7, 0x003f, 0x003f, 0xbbaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaec, 0xdaeb, 0xdaf0, 0x003f, 0x003f, 0xdaf1, 0x003f, 0xdaed, 0x003f, 0xb3a2, 0xdaee, 0xdaef, 0xc8d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9e1, 0xb7ca, 0xdaf2, 0x003f, 0x003f, 0x003f, 0xc0b2, 0x003f, 0xbebd, 0x003f, 0x003f, 0x003f, 0xc3d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6c7, 0x003f, 0xdaf3, 0xdaf7, 0x003f, 0x003f, 0xb2cb, 0xdaf4, 0xdaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaf5, 0x003f, 0x003f, 0xbdeb, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3c8, 0xb0c5, 0xdaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaf9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4aa, 0x003f, 0x003f, 0x003f, 0xcef1, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbc3, 0x003f, 0x003f, 0xcaeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbbd, 0x003f, 0x003f, 0x003f, 0xdba2, 0xdafb, 0x003f, 0x003f, 0xdafe, 0x003f, 0xdafd, 0x003f, 0x003f, 0xdafa, 0x003f, 0x003f, 0xdba1, 0x003f, 0x003f, 0xc6de, 0x003f, 0xdafc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba3, 0x003f, 0x003f, 0xbdec, 0xdba4, 0x003f, 0xcdcb, 0xc7f8, 0x003f, 0x003f, 0xdba5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba7, 0x003f, 0x003f, 0xdba8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba9, 0x003f, 0xb6ca, 0xb1c8, 0xb9b9, 0xdbaa, 0x003f, 0xdbab, 0xbdf1, 0xc1e2, 0x003f, 0x003f, 0xd2d8, 0xc1be, 0xc1bd, 0xc2d8, /* 0x6700 .. 0x67ff */ 0xbac7, 0x003f, 0x003f, 0xd0f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ee, 0xcdad, 0x003f, 0xcafe, 0x003f, 0xc9fe, 0x003f, 0xdbac, 0x003f, 0x003f, 0x003f, 0x003f, 0xbaf3, 0xc4bf, 0xdbad, 0xcfaf, 0x003f, 0x003f, 0x003f, 0xcbbe, 0x003f, 0xc4ab, 0xdbae, 0xb4fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbaf, 0xdbb0, 0xccda, 0x003f, 0xcca4, 0xcbf6, 0xcbdc, 0xbba5, 0xdbb2, 0x003f, 0x003f, 0xbceb, 0x003f, 0x003f, 0xcbd1, 0x003f, 0xdbb4, 0xdbb7, 0xdbb6, 0x003f, 0xb4f9, 0x003f, 0x003f, 0xb5e0, 0x003f, 0xdbb3, 0x003f, 0xdbb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbb8, 0x003f, 0x003f, 0xbff9, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdfb, 0xb0c9, 0xbae0, 0xc2bc, 0x003f, 0xbcdd, 0x003f, 0x003f, 0xbef3, 0x003f, 0x003f, 0xdbbb, 0x003f, 0x003f, 0xc5ce, 0x003f, 0xdbb9, 0xc2ab, 0xdbba, 0xbef2, 0xccdd, 0xdbbc, 0xdbbd, 0xcde8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbc2, 0x003f, 0x003f, 0xb9ba, 0x003f, 0xc7d5, 0xdbbf, 0xc5ec, 0xdade, 0xdae2, 0x003f, 0xb5cf, 0x003f, 0xc7c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbc1, 0x003f, 0xbebe, 0xc8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbc7, 0x003f, 0xc8fa, 0x003f, 0xdbbe, 0x003f, 0xdbc4, 0xdbc3, 0x003f, 0x003f, 0x003f, 0xc0cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbed, 0x003f, 0xced3, 0x003f, 0x003f, 0xcbe7, 0x003f, 0xb2cc, 0xbbde, 0x003f, 0x003f, 0xcfc8, 0xdbc6, 0xbff5, 0x003f, 0x003f, 0x003f, 0xdbc5, 0x003f, 0x003f, 0xdbc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8cf, 0x003f, 0x003f, 0x003f, 0xdbcc, 0xdbca, 0x003f, 0xb2cd, 0xdbc8, 0xdbce, 0xdbd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c8, 0x003f, 0x003f, 0xcac1, 0x003f, 0xdbd6, 0x003f, 0x003f, 0x003f, 0xc9a2, 0x003f, 0x003f, 0x003f, 0xdbd5, 0xc7f0, 0xcbbf, 0xb4bb, 0x003f, 0xc0f7, 0xbdc0, 0x003f, 0x003f, 0x003f, 0xc4d3, 0x003f, 0xcdae, 0x003f, 0x003f, 0xdbd1, 0xdbd0, 0x003f, 0x003f, 0x003f, 0xdbd2, 0x003f, 0xdbcf, 0x003f, 0x003f, 0xdbd7, 0x003f, 0xdbcd, 0x003f, 0x003f, 0xdbcb, 0x003f, 0xdbd3, 0xdbc9, 0x003f, 0xc3ec, 0x003f, 0xccf8, 0xbcc6, 0xbaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbaba, 0x003f, 0x003f, 0xcbef, 0xb3c1, /* 0x6800 .. 0x68ff */ 0x003f, 0x003f, 0xc4ce, 0xc6ca, 0xb1c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0f2, 0x003f, 0x003f, 0xc0b4, 0xb7aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd9, 0x003f, 0x003f, 0xb9bb, 0xb3fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbdb, 0xb3f4, 0xdbe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbde, 0x003f, 0xc0f3, 0x003f, 0x003f, 0x003f, 0xb3cb, 0xbaac, 0x003f, 0x003f, 0xb3ca, 0xbacf, 0x003f, 0x003f, 0xdbdc, 0xb7e5, 0xb7cb, 0xc5ed, 0x003f, 0x003f, 0xdbda, 0x003f, 0xb0c6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbdd, 0xdbdf, 0x003f, 0xb6cd, 0xb7ac, 0x003f, 0xb4bc, 0xb5cb, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbe2, 0x003f, 0x003f, 0xbaf9, 0xcbf1, 0x003f, 0xbbb7, 0x003f, 0x003f, 0x003f, 0xdbe3, 0x003f, 0x003f, 0x003f, 0xc9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbef, 0x003f, 0xb2b3, 0xdbe4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf5, 0xdbe5, 0x003f, 0xcec2, 0x003f, 0xdbec, 0x003f, 0xc7df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf4, 0x003f, 0xdbe7, 0x003f, 0x003f, 0x003f, 0xb0b4, 0xdbe9, 0x003f, 0x003f, 0xb9bc, 0x003f, 0x003f, 0x003f, 0xdbeb, 0x003f, 0xdbea, 0x003f, 0xdbe6, 0xdbf1, 0x003f, 0xbebf, 0x003f, 0x003f, 0x003f, 0xd4ed, 0xb8e8, 0xcdfc, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbe8, 0x003f, 0xc4f4, 0xb3a3, 0xbaad, 0x003f, 0xdbe0, 0x003f, 0xdbf0, 0xb3e1, 0x003f, 0x003f, 0xdbee, 0xdbf2, 0x003f, 0xc5ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4fe, 0x003f, 0xdcb2, 0x003f, 0x003f, 0xccc9, 0xdbf7, 0xb4fd, 0x003f, 0xdbfe, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbc0, 0x003f, 0xdca1, 0xdca3, 0x003f, 0xdca7, 0xdbf9, 0x003f, 0xc3aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5ef, 0xdcab, 0xdbfc, 0x003f, 0xdca8, 0x003f, 0x003f, 0x003f, 0xdca2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfb9, 0xdcac, 0x003f, 0x003f, 0xc0b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcaa, 0xb4bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6900 .. 0x69ff */ 0xcfd0, 0xdbf6, 0x003f, 0x003f, 0xdca6, 0xb0d8, 0x003f, 0x003f, 0xdbf8, 0x003f, 0x003f, 0xccba, 0xdbfd, 0xbfa2, 0xc4c7, 0xdbf3, 0x003f, 0x003f, 0xdca5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbffa, 0xdcaf, 0xb3f1, 0xb8a1, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcb1, 0xdbfa, 0xdcb0, 0x003f, 0xdca9, 0xdbfb, 0x003f, 0xdcad, 0x003f, 0xdcae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcbf, 0x003f, 0x003f, 0x003f, 0xc6ce, 0x003f, 0xdca4, 0x003f, 0x003f, 0xdcbb, 0x003f, 0x003f, 0x003f, 0xdcbd, 0x003f, 0xc4d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9f6, 0xdcb8, 0xc2ca, 0x003f, 0x003f, 0x003f, 0xdcbe, 0xc1bf, 0x003f, 0xdcb5, 0xdcc2, 0xdcc1, 0x003f, 0xc6ef, 0xdcc0, 0xc6ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcc4, 0xdcb7, 0x003f, 0xb6c8, 0xdcba, 0xbddd, 0x003f, 0x003f, 0x003f, 0xc7e0, 0xdcbc, 0xb6cb, 0x003f, 0xdcb4, 0xdcb6, 0xdcb3, 0x003f, 0x003f, 0xcfb0, 0xb3da, 0xdcb9, 0x003f, 0x003f, 0xdcc3, 0xb3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbae7, 0x003f, 0x003f, 0x003f, 0xb1dd, 0x003f, 0x003f, 0xdcd4, 0x003f, 0x003f, 0xcfb1, 0xdcd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfba, 0xdcd6, 0x003f, 0x003f, 0x003f, 0xdcd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcc6, 0x003f, 0x003f, 0xdce3, 0xdcc5, 0x003f, 0xdcd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcd0, 0x003f, 0x003f, 0xdccb, 0xdcc8, 0x003f, 0xdcc9, 0x003f, 0xdcd1, 0x003f, 0x003f, 0x003f, 0xf4a2, 0x003f, 0x003f, 0xdcce, 0xb9bd, 0xc4c8, 0xc1e4, 0xdccc, 0x003f, 0xdcc7, 0x003f, 0x003f, 0xdcca, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdcd, 0xcbea, 0x003f, 0x003f, 0x003f, 0xdccf, 0xdcd9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce1, 0xdcda, 0x003f, 0x003f, 0xdce7, 0x003f, 0xdce5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcdf, 0x003f, 0xc4d0, 0x003f, 0xc1e5, 0x003f, 0xdcdd, /* 0x6a00 .. 0x6aff */ 0x003f, 0x003f, 0xdcdb, 0x003f, 0x003f, 0xdce2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce8, 0xc8f5, 0xdcee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce9, 0xdcec, 0xdce6, 0x003f, 0x003f, 0xc3f4, 0x003f, 0xc9b8, 0x003f, 0xdcdc, 0x003f, 0x003f, 0xdce4, 0xbec0, 0x003f, 0xcccf, 0xdcf8, 0xdceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8a2, 0xb2a3, 0xb3df, 0x003f, 0x003f, 0xdcd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbec1, 0xdcf0, 0x003f, 0xdcf7, 0xbcf9, 0xb3f2, 0x003f, 0x003f, 0xc3ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdced, 0x003f, 0x003f, 0xdcf2, 0xdcf6, 0x003f, 0x003f, 0xb6b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5cc, 0xdcf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5a1, 0x003f, 0xc6cb, 0xdcf3, 0x003f, 0x003f, 0x003f, 0xdcf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3e0, 0xc3c9, 0x003f, 0x003f, 0x003f, 0xdcfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcfa, 0xb8e9, 0x003f, 0xdcf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda1, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd8, 0x003f, 0x003f, 0x003f, 0xdcfb, 0x003f, 0xdcfd, 0xdcfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddac, 0x003f, 0xdda8, 0x003f, 0xdbed, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda6, 0x003f, 0x003f, 0xdda3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcea, 0xdda5, 0xdda4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddaa, 0x003f, 0xcfa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddad, 0xb6fb, 0x003f, 0x003f, 0xdda9, 0xddab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8a7, 0x003f, 0xddae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb2, 0xddaf, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6b00 .. 0x6bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf3, 0xddb0, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb3, 0x003f, 0x003f, 0x003f, 0xddb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b5, 0x003f, 0xddb6, 0xb7e7, 0xbca1, 0x003f, 0xb6d5, 0x003f, 0x003f, 0x003f, 0xb2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcddf, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb8, 0xddb7, 0xddba, 0xb5bd, 0x003f, 0x003f, 0xb6d6, 0xb4be, 0x003f, 0x003f, 0x003f, 0x003f, 0xddbd, 0x003f, 0x003f, 0x003f, 0xddbc, 0x003f, 0xddbe, 0x003f, 0x003f, 0xb2ce, 0x003f, 0xc3b7, 0x003f, 0xddbf, 0x003f, 0x003f, 0xb4bf, 0xddc1, 0x003f, 0x003f, 0x003f, 0x003f, 0xddc0, 0x003f, 0xddc2, 0x003f, 0x003f, 0x003f, 0xddc3, 0x003f, 0xddc4, 0xbbdf, 0xc0b5, 0xbaa1, 0x003f, 0xc9f0, 0x003f, 0x003f, 0xcae2, 0xcfc4, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbf5, 0x003f, 0x003f, 0x003f, 0xbad0, 0xcef2, 0x003f, 0x003f, 0x003f, 0xddc5, 0xddc6, 0x003f, 0xbbe0, 0x003f, 0x003f, 0x003f, 0xddc7, 0xddc8, 0x003f, 0x003f, 0xddca, 0xddc9, 0x003f, 0xcbd8, 0x003f, 0x003f, 0xbdde, 0xbcec, 0xbbc4, 0x003f, 0xddcb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddcd, 0xbfa3, 0x003f, 0xddcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddd0, 0xddd1, 0x003f, 0x003f, 0x003f, 0xddd2, 0x003f, 0xddd4, 0xddd3, 0xddd5, 0xb2a5, 0xc3ca, 0x003f, 0xddd6, 0x003f, 0x003f, 0xbba6, 0xb3cc, 0xddd7, 0x003f, 0x003f, 0xc5c2, 0xd4cc, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5a3, 0xddd8, 0x003f, 0x003f, 0x003f, 0x003f, 0xddd9, 0x003f, 0xcaec, 0xcbe8, 0x003f, 0x003f, 0x003f, 0xc6c7, 0xddda, 0xc8e6, 0x003f, 0x003f, 0x003f, 0xc8fb, 0x003f, 0x003f, 0xccd3, 0x003f, 0x003f, 0x003f, 0xdddb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdddd, 0xdddc, 0x003f, 0x003f, 0xdddf, 0x003f, 0x003f, 0x003f, 0xddde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6c00 .. 0x6cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbe1, 0x003f, 0xccb1, 0x003f, 0xdde2, 0xdde3, 0x003f, 0x003f, 0xb5a4, 0x003f, 0x003f, 0x003f, 0xdde4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde6, 0xdde5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfe5, 0x003f, 0x003f, 0xc9b9, 0xb1ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8c5, 0x003f, 0xc4f5, 0xbdc1, 0xb5e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8c6, 0x003f, 0xbcae, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde8, 0x003f, 0xb4c0, 0x003f, 0x003f, 0xb1f8, 0x003f, 0x003f, 0xc6f2, 0xdde7, 0xb9be, 0xc3d3, 0x003f, 0xdde9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf1, 0x003f, 0xddea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2c1, 0x003f, 0xb5e2, 0xddf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e8, 0x003f, 0x003f, 0xb5a5, 0xddf0, 0x003f, 0x003f, 0xddee, 0xddeb, 0xcde0, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4c0, 0x003f, 0x003f, 0x003f, 0xc6d9, 0xddec, 0x003f, 0x003f, 0xddf4, 0x003f, 0xddf3, 0xb7a3, 0x003f, 0x003f, 0xb2ad, 0x003f, 0x003f, 0xbabb, 0xdded, 0xddef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbd7, 0xc2f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf7, 0x003f, 0x003f, 0xddfc, 0x003f, 0x003f, 0xddfd, 0x003f, 0xb2cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaa8, 0xccfd, 0xdea1, 0xbca3, 0xbec2, 0xddf8, 0xddfe, 0xb1e8, 0x003f, 0xb6b7, 0x003f, 0x003f, 0xddf5, 0xddfa, 0x003f, 0x003f, 0x003f, 0xc0f4, 0xc7f1, 0x003f, 0xc8e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf7, 0x003f, 0xcba1, 0x003f, 0xddf9, 0x003f, 0xdea4, 0x003f, 0xdea2, 0x003f, 0xddfb, 0x003f, 0x003f, 0x003f, 0xcba2, 0xc7c8, 0xb5e3, 0x003f, 0xc5a5, 0x003f, 0x003f, 0xc3ed, 0x003f, 0xdea5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea3, 0xc2d9, 0xddf6, 0x003f, 0xb1cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6d00 .. 0x6dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdce, 0xdeb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeaf, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0f6, 0x003f, 0xdeac, 0x003f, 0xcdec, 0x003f, 0x003f, 0xc6b6, 0xdea6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4c5, 0x003f, 0x003f, 0x003f, 0xb1cc, 0xb9bf, 0xdea9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbda7, 0xdeae, 0x003f, 0xdead, 0xdea8, 0x003f, 0xdeab, 0x003f, 0x003f, 0xb3e8, 0x003f, 0xdeaa, 0xc7c9, 0x003f, 0x003f, 0xceae, 0x003f, 0x003f, 0xbef4, 0xc0f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb6, 0xdeb4, 0x003f, 0xc9cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb1, 0xdeb3, 0x003f, 0xb1ba, 0x003f, 0x003f, 0xb9c0, 0xcfb2, 0x003f, 0xb3bd, 0x003f, 0xc9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde1, 0x003f, 0x003f, 0xb3a4, 0xbfbb, 0xdeb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeba, 0x003f, 0x003f, 0xbec3, 0x003f, 0x003f, 0x003f, 0xcdb0, 0x003f, 0xdeb7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb2, 0x003f, 0xdeb8, 0x003f, 0x003f, 0x003f, 0xcede, 0x003f, 0xc5f3, 0xc6c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3b6, 0x003f, 0x003f, 0xb1d5, 0x003f, 0x003f, 0xdebe, 0x003f, 0x003f, 0xdec1, 0x003f, 0x003f, 0x003f, 0xcec3, 0x003f, 0x003f, 0x003f, 0xcde4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdec8, 0xdec2, 0xdebf, 0x003f, 0x003f, 0x003f, 0xced4, 0xdec5, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdca, 0xdec7, 0x003f, 0x003f, 0xdecc, 0x003f, 0x003f, 0xc5f1, 0xdeca, 0x003f, 0x003f, 0x003f, 0x003f, 0xdec4, 0x003f, 0x003f, 0xc3b8, 0x003f, 0x003f, 0xdecb, 0x003f, 0xdec0, 0x003f, 0xdec6, 0x003f, 0xdecd, 0xb0fc, 0xdec3, 0x003f, 0xdece, 0x003f, 0x003f, 0xbfbc, 0x003f, 0xbddf, 0x003f, 0xcaa5, 0x003f, 0xbaae, 0x003f, 0xdebb, 0xdec9, 0xc5ba, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6e00 .. 0x6eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0b6, 0x003f, 0xb3e9, 0xbad1, 0xbec4, 0xdebd, 0xbdc2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7cc, 0x003f, 0xdebc, 0x003f, 0x003f, 0x003f, 0xded2, 0xbded, 0xb8ba, 0x003f, 0xdee1, 0x003f, 0xdedb, 0xb5f4, 0xc5cf, 0x003f, 0xded6, 0xdedf, 0xb0af, 0xb1b2, 0x003f, 0x003f, 0xb2b9, 0x003f, 0xded8, 0xc2ac, 0xdecf, 0xded1, 0xb9c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdee2, 0x003f, 0xdedd, 0x003f, 0x003f, 0x003f, 0xded5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdedc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccab, 0x003f, 0x003f, 0xdeda, 0xdede, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8d0, 0x003f, 0xbec5, 0x003f, 0x003f, 0xc3b9, 0x003f, 0x003f, 0x003f, 0xded4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdaf, 0x003f, 0x003f, 0x003f, 0xded7, 0x003f, 0x003f, 0xded0, 0xc5f2, 0x003f, 0x003f, 0xded3, 0x003f, 0x003f, 0x003f, 0xded9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd1, 0xbcbe, 0xcbfe, 0x003f, 0xdee3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8ae, 0x003f, 0x003f, 0xdeef, 0xb8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde0, 0x003f, 0xdee5, 0x003f, 0x003f, 0x003f, 0xceaf, 0xb9c2, 0x003f, 0xdef2, 0x003f, 0x003f, 0xb0ee, 0x003f, 0x003f, 0xdef0, 0x003f, 0x003f, 0x003f, 0x003f, 0xdee4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeea, 0x003f, 0x003f, 0xdeec, 0x003f, 0x003f, 0x003f, 0xcdcf, 0xdee7, 0x003f, 0x003f, 0xc5ae, 0x003f, 0x003f, 0xdee9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef1, 0x003f, 0xdeeb, 0xccc7, 0x003f, 0x003f, 0x003f, 0xdee6, 0x003f, 0xbca2, 0xdefe, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ea, 0x003f, 0xdee8, 0xdeed, 0xdeee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2ec, 0xc2da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef6, 0x003f, 0x003f, 0xdefc, 0x003f, 0x003f, 0xdefa, 0x003f, 0xc5a9, 0x003f, 0x003f, 0xdfa3, 0xdef7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef8, 0xdee0, /* 0x6f00 .. 0x6fff */ 0x003f, 0xb5f9, 0xc9ba, 0x003f, 0x003f, 0x003f, 0xbcbf, 0x003f, 0x003f, 0xb9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb3, 0x003f, 0xdef4, 0x003f, 0xdfa2, 0xb1e9, 0xc1e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7f9, 0x003f, 0xb4c1, 0xcefa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcca1, 0xc4d2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdefb, 0xdefd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa1, 0xdef9, 0x003f, 0xdef3, 0x003f, 0x003f, 0x003f, 0xb4c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e9, 0x003f, 0x003f, 0x003f, 0xdfaf, 0x003f, 0x003f, 0xdfaa, 0xc0f8, 0x003f, 0x003f, 0xb3e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde1, 0x003f, 0xdfb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfac, 0xc4ac, 0xdfa9, 0xc4d9, 0x003f, 0x003f, 0x003f, 0xdfcc, 0x003f, 0x003f, 0x003f, 0xdfa6, 0x003f, 0xdfa5, 0x003f, 0xdfae, 0x003f, 0x003f, 0x003f, 0xdfa8, 0xdfa7, 0xdfad, 0x003f, 0xc0a1, 0x003f, 0xdfa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb0, 0x003f, 0x003f, 0xdfb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb6, 0x003f, 0xdfb5, 0xdfb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5c3, 0x003f, 0xdfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e3, 0xc2f9, 0xdfb2, 0xc7bb, 0x003f, 0x003f, 0xdfb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfbe, 0xdfbc, 0x003f, 0x003f, 0xdfbf, 0x003f, 0x003f, 0xdfc2, 0x003f, 0x003f, 0x003f, 0xdfbb, 0xb9ea, 0xc7a8, 0x003f, 0x003f, 0xdeb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf4, 0xdfbd, 0x003f, 0xdfc1, 0xc2f5, 0x003f, 0xdfc0, 0x003f, 0xdfab, 0x003f, 0x003f, 0xefe9, 0x003f, 0x003f, 0x003f, 0xdfc5, 0x003f, 0x003f, 0x003f, 0xdfc9, 0x003f, /* 0x7000 .. 0x70ff */ 0x003f, 0xdfc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc3, 0x003f, 0xdfc4, 0x003f, 0x003f, 0x003f, 0xdfc8, 0x003f, 0xdfc6, 0x003f, 0x003f, 0x003f, 0xc9ce, 0x003f, 0x003f, 0xdfce, 0x003f, 0xdfcb, 0xdfca, 0x003f, 0xdfcd, 0xc6d4, 0xdfcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3f5, 0xc2ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0a5, 0x003f, 0x003f, 0x003f, 0xdfd0, 0x003f, 0xdfd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2d0, 0x003f, 0x003f, 0x003f, 0xc5f4, 0xb3a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5e4, 0x003f, 0x003f, 0x003f, 0xbcde, 0xbad2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa7, 0xbfe6, 0x003f, 0x003f, 0x003f, 0xb1ea, 0x003f, 0x003f, 0x003f, 0xdfd6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd9, 0xc3ba, 0xdfdc, 0xdfd7, 0x003f, 0x003f, 0x003f, 0xdfdb, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfda, 0xc5c0, 0xb0d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef5, 0x003f, 0x003f, 0xdfde, 0x003f, 0x003f, 0x003f, 0xb1a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe0, 0x003f, 0x003f, 0x003f, 0xdfdf, 0x003f, 0xdfdd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba3, 0x003f, 0x003f, 0x003f, 0xdfe2, 0x003f, 0x003f, /* 0x7100 .. 0x71ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe4, 0xcab2, 0x003f, 0xdfe3, 0x003f, 0x003f, 0x003f, 0x003f, 0xccb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xbec7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbec6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcefb, 0x003f, 0x003f, 0xdfea, 0x003f, 0xc0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe6, 0xdfeb, 0x003f, 0x003f, 0xb1ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe9, 0x003f, 0xc7e1, 0xdfe5, 0xdfe8, 0xbec8, 0x003f, 0xc8d1, 0x003f, 0x003f, 0xdfec, 0x003f, 0xbcd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfef, 0x003f, 0x003f, 0x003f, 0xdfe7, 0x003f, 0xb7a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfed, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd0, 0xdff0, 0x003f, 0x003f, 0x003f, 0xf4a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff1, 0x003f, 0x003f, 0x003f, 0xdff2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff5, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5f5, 0xdff7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff9, 0x003f, 0xced5, 0x003f, 0xdff6, 0x003f, 0xdff8, 0xb1ed, 0x003f, 0xdff3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3db, 0xdffa, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1e7, 0xbbb8, 0xdffc, 0x003f, 0x003f, 0x003f, 0x003f, 0xdffb, 0xbfa4, 0xd2d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdffd, 0x003f, 0x003f, 0x003f, 0xe0a1, 0x003f, 0xdfee, 0xdffe, 0x003f, 0x003f, 0xe0a2, /* 0x7200 .. 0x72ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a3, 0x003f, 0x003f, 0xe0a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a6, 0x003f, 0xc4de, 0x003f, 0xe0a8, 0xe0a7, 0x003f, 0x003f, 0xe0a9, 0x003f, 0xe0aa, 0x003f, 0x003f, 0xbcdf, 0xc9e3, 0x003f, 0x003f, 0x003f, 0xccec, 0xe0ab, 0xe0ac, 0xc1d6, 0xbca4, 0xe0ad, 0xe0ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0af, 0xcad2, 0xc8c7, 0x003f, 0x003f, 0xe0b0, 0xc7d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b1, 0xb2e7, 0x003f, 0xb5ed, 0x003f, 0xccc6, 0x003f, 0xccb6, 0x003f, 0xb2b4, 0xcfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbd2, 0x003f, 0xcaaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0b7, 0x003f, 0xe0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6c3, 0x003f, 0x003f, 0x003f, 0xb8a3, 0xe0b3, 0x003f, 0xbad4, 0xe0b5, 0xe0b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b7, 0x003f, 0x003f, 0x003f, 0xe0b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5be, 0x003f, 0xe0b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ba, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8a4, 0x003f, 0x003f, 0xc8c8, 0x003f, 0x003f, 0xe0bc, 0x003f, 0x003f, 0x003f, 0xbef5, 0x003f, 0x003f, 0xe0bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6b8, 0xe0bd, 0xe0bf, 0x003f, 0xe0be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c0, 0x003f, 0xb8d1, 0x003f, 0xe0c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e9, 0x003f, 0xc1c0, 0x003f, 0xb9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c3, 0xe0c4, 0xe0c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbced, 0x003f, 0x003f, 0xc6c8, 0xb6b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c6, 0xc3ac, 0xe0c5, 0x003f, 0x003f, 0xcfb5, 0xc7e2, 0x003f, 0x003f, /* 0x7300 .. 0x73ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cb, 0xe0c8, 0x003f, 0x003f, 0x003f, 0xccd4, 0xe0ca, 0xe0cc, 0x003f, 0xcec4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d0, 0x003f, 0x003f, 0x003f, 0xe0cf, 0xc3f6, 0xc7ad, 0x003f, 0x003f, 0xb8a5, 0xe0ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cd, 0x003f, 0xcdb1, 0xcdb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d1, 0xb1ee, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9f6, 0xbbe2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d2, 0xe0d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d7, 0x003f, 0xe0d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d8, 0x003f, 0xb3cd, 0x003f, 0x003f, 0xe0da, 0x003f, 0x003f, 0xe0d9, 0x003f, 0xe0dc, 0xe0db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8bc, 0x003f, 0x003f, 0xcea8, 0x003f, 0xb6cc, 0x003f, 0xb2a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcee8, 0xe0de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e1, 0x003f, 0xb2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0dd, 0x003f, 0xbbb9, 0x003f, 0x003f, 0xc4c1, 0xe0df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e4, 0x003f, 0xbcee, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7be, 0x003f, 0x003f, 0xc8c9, 0xe0e3, 0x003f, 0x003f, 0xe0fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8bd, 0x003f, /* 0x7400 .. 0x74ff */ 0x003f, 0x003f, 0x003f, 0xb5e5, 0x003f, 0xe0e6, 0xcdfd, 0x003f, 0x003f, 0xceb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2f6, 0x003f, 0x003f, 0xe0e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ea, 0xced6, 0xb6d7, 0xc8fc, 0xc7ca, 0x003f, 0x003f, 0x003f, 0xe0eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ed, 0x003f, 0xe0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ec, 0x003f, 0x003f, 0x003f, 0xe0ef, 0xb8ea, 0xb1cd, 0xe0f1, 0x003f, 0xbff0, 0xe0ee, 0xcedc, 0x003f, 0x003f, 0xe0f4, 0xf4a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f2, 0xe0f5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e7, 0xe0f3, 0x003f, 0x003f, 0xbabc, 0x003f, 0x003f, 0xe0f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f9, 0x003f, 0x003f, 0x003f, 0xe0e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbca5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1bb, 0x003f, 0x003f, 0x003f, 0xe1a1, 0x003f, 0xc9bb, 0xe1a2, 0x003f, 0x003f, 0xb4a4, 0xe1a3, 0x003f, 0xe1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a5, 0x003f, 0xe1a7, 0xe1a8, 0xe1a6, 0x003f, 0x003f, 0x003f, 0xc9d3, 0xe1aa, 0xe1a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7500 .. 0x75ff */ 0x003f, 0x003f, 0x003f, 0xe1ac, 0xe1ab, 0xe1ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ae, 0xe1b0, 0xe1af, 0x003f, 0x003f, 0xb9f9, 0x003f, 0xe1b2, 0x003f, 0xe1b1, 0x003f, 0x003f, 0xb4c5, 0x003f, 0xbfd3, 0x003f, 0xc5bc, 0x003f, 0xe1b3, 0xc0b8, 0x003f, 0x003f, 0x003f, 0xbbba, 0x003f, 0xb1f9, 0xe1b4, 0x003f, 0xcdd1, 0x003f, 0x003f, 0xcae3, 0xe1b5, 0x003f, 0x003f, 0x003f, 0xc5c4, 0xcdb3, 0xb9c3, 0xbfbd, 0x003f, 0x003f, 0x003f, 0xc3cb, 0xd2b4, 0x003f, 0xc4ae, 0xb2e8, 0xe1b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b7, 0x003f, 0xe1bc, 0x003f, 0x003f, 0xe1ba, 0xe1b9, 0xdac2, 0xb3a6, 0xe1b8, 0x003f, 0xb0da, 0x003f, 0xc8aa, 0x003f, 0x003f, 0xc8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0xceb1, 0xe1bd, 0xe1bb, 0xc3dc, 0xc0a6, 0x003f, 0x003f, 0xc8ab, 0x003f, 0xc9ad, 0x003f, 0xe1bf, 0xceac, 0xb7cd, 0xe1c0, 0x003f, 0xe1be, 0xc8d6, 0xe1c1, 0x003f, 0xe1c2, 0x003f, 0x003f, 0xb0db, 0x003f, 0x003f, 0xbef6, 0xe1c7, 0x003f, 0xe1c4, 0xc6ed, 0xe1c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5a6, 0x003f, 0x003f, 0xe1ca, 0x003f, 0x003f, 0x003f, 0xe1c5, 0xe1c6, 0x003f, 0xe1c9, 0xe1c8, 0xc9a5, 0x003f, 0x003f, 0xc1c2, 0xc1c1, 0x003f, 0xb5bf, 0x003f, 0x003f, 0xe1cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1cc, 0x003f, 0x003f, 0xe1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1cf, 0x003f, 0xe1ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d7, 0xc8e8, 0xe1d1, 0x003f, 0xe1d3, 0x003f, 0x003f, 0xe1d5, 0xbfbe, 0x003f, 0x003f, 0xe1d6, 0xe1d4, 0xbcc0, 0x003f, 0x003f, 0x003f, 0xe1d0, 0xe1d2, 0x003f, 0xc9c2, 0x003f, 0xbec9, 0x003f, 0x003f, 0xe1d9, 0x003f, 0x003f, 0xe1d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1da, 0x003f, 0xbca6, 0xbaaf, 0x003f, 0x003f, 0xc5f7, 0xe1db, 0x003f, 0xc4cb, 0x003f, 0x003f, 0xe1dd, 0x003f, 0x003f, 0x003f, 0xcea1, 0xe1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e2, 0x003f, 0xe1e4, 0xe1e5, 0xc3d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e3, 0x003f, 0xe1e0, 0x003f, 0xe1de, 0xe1df, /* 0x7600 .. 0x76ff */ 0x003f, 0xe1e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e8, 0x003f, 0xe1e6, 0x003f, 0xe1e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e9, 0xe1eb, 0xe1ec, 0xe1ed, 0x003f, 0xe1ee, 0x003f, 0x003f, 0xe1ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f0, 0x003f, 0x003f, 0x003f, 0xe1ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcec5, 0x003f, 0x003f, 0x003f, 0xe1f4, 0xe1f2, 0xe1f3, 0x003f, 0x003f, 0x003f, 0xb4e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccfe, 0x003f, 0x003f, 0x003f, 0xcaca, 0x003f, 0xe1f6, 0x003f, 0x003f, 0x003f, 0xe1f5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f7, 0xe1f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1fc, 0xe1f9, 0xe1fa, 0xe1fb, 0x003f, 0xe1fd, 0x003f, 0x003f, 0x003f, 0xe1fe, 0x003f, 0xe2a1, 0x003f, 0x003f, 0x003f, 0xe2a2, 0x003f, 0xe2a3, 0x003f, 0xc8af, 0xc5d0, 0xe2a4, 0xc7f2, 0xc9b4, 0x003f, 0xe2a5, 0x003f, 0x003f, 0xe2a6, 0xc5aa, 0x003f, 0xb3a7, 0xb9c4, 0xe2a7, 0x003f, 0x003f, 0xe2a8, 0x003f, 0x003f, 0xe2a9, 0x003f, 0xbba9, 0x003f, 0x003f, 0xe2ab, 0x003f, 0x003f, 0xe2aa, 0x003f, 0x003f, 0xe2ac, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8e9, 0x003f, 0xe2ae, 0x003f, 0x003f, 0x003f, 0xe2af, 0x003f, 0x003f, 0xf3e9, 0xe2b0, 0xe2b1, 0xe2b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbae, 0x003f, 0x003f, 0xe2b3, 0xc7d6, 0x003f, 0x003f, 0xcbdf, 0x003f, 0xb1ce, 0x003f, 0xb1d7, 0x003f, 0x003f, 0xe2b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b6, 0x003f, 0x003f, 0x003f, 0xe2b5, 0xc5f0, 0x003f, 0x003f, 0x003f, 0xc0b9, 0xddb9, 0x003f, 0xe2b7, 0xccc1, 0x003f, 0xe2b8, 0x003f, 0xb4c6, 0xc8d7, 0xe2b9, 0x003f, 0xe2ba, 0x003f, 0x003f, 0xe2bb, 0x003f, 0x003f, 0x003f, 0xccdc, 0x003f, 0x003f, 0x003f, 0xccd5, 0x003f, 0xc4be, 0x003f, 0x003f, 0x003f, 0xc1ea, 0x003f, 0x003f, 0xe2bd, 0x003f, 0x003f, 0xbde2, 0x003f, /* 0x7700 .. 0x77ff */ 0x003f, 0xbeca, 0x003f, 0x003f, 0xe2c0, 0x003f, 0x003f, 0xe2bf, 0xe2be, 0xc8fd, 0x003f, 0xb4c7, 0xb8a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c6, 0x003f, 0x003f, 0xe2c3, 0xbfbf, 0xccb2, 0x003f, 0x003f, 0x003f, 0xe2c2, 0xe2c4, 0xe2c5, 0x003f, 0x003f, 0xe2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c7, 0xe2c8, 0x003f, 0xc4af, 0x003f, 0xb4e3, 0x003f, 0x003f, 0x003f, 0xc3e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ca, 0xe2cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfe7, 0x003f, 0xc6c4, 0x003f, 0xe2ce, 0xcbd3, 0x003f, 0xe2cb, 0x003f, 0x003f, 0xe2cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d0, 0xe2cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d3, 0x003f, 0x003f, 0xe2d2, 0x003f, 0x003f, 0xe2d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d6, 0x003f, 0xe2d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xcacd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd6, 0xcec6, 0x003f, 0x003f, 0xe2d7, 0x003f, 0x003f, 0xc6b7, 0x003f, 0x003f, 0xe2d8, 0x003f, 0x003f, 0xe2d9, 0x003f, 0xe2dd, 0xe2db, 0xe2dc, 0x003f, 0xe2da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e0, 0x003f, 0x003f, 0xe2e1, 0xccb7, 0xe2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccf0, 0xe2e3, 0x003f, 0xc3ce, 0x003f, 0xc7ea, 0x003f, 0xb6eb, 0x003f, 0x003f, 0x003f, 0xc3bb, 0xe2e4, 0xb6ba, 0x003f, 0x003f, 0x003f, 0xc0d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e5, 0x003f, 0x003f, 0x003f, /* 0x7800 .. 0x78ff */ 0x003f, 0x003f, 0xbabd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e7, 0x003f, 0xb8a6, 0xbad5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d6, 0xbad6, 0xb5ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba4, 0x003f, 0xc7cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d7, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbecb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceb2, 0xb9c5, 0x003f, 0x003f, 0xb8a7, 0x003f, 0x003f, 0xc8a3, 0x003f, 0xe2ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ee, 0xc4f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f1, 0xb3b7, 0xe2ec, 0x003f, 0x003f, 0xc8ea, 0x003f, 0xb1b0, 0x003f, 0xbaec, 0x003f, 0xcfd2, 0x003f, 0x003f, 0xe2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f2, 0x003f, 0x003f, 0x003f, 0xcacb, 0x003f, 0xc0d9, 0xe2f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ce, 0x003f, 0xe2fb, 0x003f, 0xe2fa, 0x003f, 0x003f, 0xbca7, 0x003f, 0x003f, 0x003f, 0xe2fc, 0xe2f7, 0x003f, 0x003f, 0x003f, 0xe2fd, 0xe2f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8d8, 0xe2f6, 0x003f, 0x003f, 0xe2f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a1, 0xcbe1, 0x003f, 0x003f, 0x003f, 0xe2fe, 0x003f, 0x003f, 0xb0eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a3, 0x003f, 0x003f, /* 0x7900 .. 0x79ff */ 0x003f, 0xbecc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1c3, 0x003f, 0x003f, 0xe3a7, 0xe3a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e8, 0x003f, 0x003f, 0x003f, 0xe2ea, 0xe3aa, 0xe3a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbca8, 0x003f, 0xcee9, 0x003f, 0xbcd2, 0x003f, 0xe3ab, 0xb7b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5c0, 0xb5a7, 0xbbe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdb4, 0x003f, 0x003f, 0xe3b1, 0x003f, 0xe3b0, 0xc1c4, 0xe3ad, 0x003f, 0x003f, 0xe3af, 0x003f, 0x003f, 0xbdcb, 0xbfc0, 0xe3ae, 0xe3ac, 0x003f, 0xc7aa, 0x003f, 0x003f, 0xbecd, 0x003f, 0x003f, 0xc9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0xbad7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5f8, 0x003f, 0x003f, 0xe3b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b3, 0xe3c9, 0xb6d8, 0x003f, 0x003f, 0xcfbd, 0xc1b5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b4, 0x003f, 0x003f, 0xb2d2, 0xc4f7, 0xcaa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5fa, 0xe3b6, 0x003f, 0x003f, 0xe3b8, 0x003f, 0x003f, 0x003f, 0xe3b9, 0x003f, 0xc7a9, 0x003f, 0x003f, 0xe3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3bb, 0xe3bc, 0x003f, 0x003f, 0xb6d9, 0xb2d3, 0xc6c5, 0xbda8, 0xbbe4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3bd, 0x003f, 0xbda9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2ca, 0xc9c3, 0x003f, 0x003f, 0xe3be, 0x003f, 0x003f, 0xc8eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1c5, 0x003f, 0xe3c1, 0x003f, 0xe3c2, 0xc7e9, 0x003f, 0xbfc1, 0xe3bf, 0x003f, 0xc3e1, 0x003f, 0x003f, 0xe3c0, 0x003f, 0x003f, 0x003f, 0xbece, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0dc, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7a00 .. 0x7aff */ 0xb5a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c3, 0x003f, 0x003f, 0xc4f8, 0x003f, 0xe3c4, 0xc0c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccad, 0x003f, 0x003f, 0xc9a3, 0xe3c5, 0xe3c6, 0xc3d5, 0x003f, 0xcec7, 0x003f, 0x003f, 0xe3c8, 0xe3c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcef, 0x003f, 0x003f, 0xe3ca, 0xb0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3cd, 0x003f, 0x003f, 0x003f, 0xe3cb, 0xb2d4, 0xb7ce, 0xe3cc, 0xb9c6, 0xb9f2, 0x003f, 0xcae6, 0xe3ce, 0x003f, 0x003f, 0xcbd4, 0x003f, 0x003f, 0xe3d0, 0x003f, 0x003f, 0x003f, 0xc0d1, 0xb1cf, 0xb2ba, 0xb0ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d1, 0xe3d2, 0xbef7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d3, 0x003f, 0xb3cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d5, 0x003f, 0x003f, 0x003f, 0xb7ea, 0x003f, 0xb5e6, 0x003f, 0x003f, 0xe3d6, 0xb6f5, 0x003f, 0x003f, 0xe3d7, 0x003f, 0xc0fc, 0x003f, 0xc6cd, 0x003f, 0xc0e0, 0xbaf5, 0x003f, 0x003f, 0x003f, 0xe3d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3e2, 0xc1eb, 0x003f, 0xe3da, 0xe3dc, 0xe3d9, 0xe3db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3dd, 0xb7a6, 0x003f, 0x003f, 0x003f, 0xb5e7, 0xcdd2, 0xe3df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e0, 0x003f, 0x003f, 0x003f, 0xb1ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e3, 0x003f, 0x003f, 0x003f, 0xb3f6, 0xe3e2, 0xe3e1, 0x003f, 0xe3e5, 0xe3de, 0x003f, 0xe3e6, 0xcea9, 0x003f, 0xe3e7, 0x003f, 0xe3e8, 0x003f, 0x003f, 0xd4f4, 0xe3ea, 0x003f, 0xe3e9, 0x003f, 0x003f, 0x003f, 0xe3eb, 0xe3ec, 0x003f, 0xceb5, 0xe3ed, 0x003f, 0xf0ef, 0xbecf, 0xe3ee, 0xe3ef, 0xbdd7, 0x003f, 0xc6b8, 0xe3f0, 0x003f, 0x003f, 0x003f, 0xc3a8, 0x003f, 0x003f, 0xe3f1, 0x003f, 0xc3bc, 0xe3f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6a5, 0x003f, 0xd1bf, 0xc3dd, 0xbcb3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4c8, /* 0x7b00 .. 0x7bff */ 0x003f, 0x003f, 0xe3f3, 0x003f, 0xe4a2, 0x003f, 0xe3f6, 0x003f, 0xb5e8, 0x003f, 0xe3f5, 0xe4a4, 0x003f, 0x003f, 0x003f, 0xe3f4, 0x003f, 0xbed0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f8, 0xe3f9, 0x003f, 0xc5ab, 0x003f, 0x003f, 0xe3fa, 0x003f, 0xb3de, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfda, 0xc9e4, 0x003f, 0xe3fc, 0x003f, 0x003f, 0x003f, 0xc2e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f7, 0x003f, 0xe3fb, 0xe3fd, 0x003f, 0x003f, 0xbafb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a6, 0xc9ae, 0x003f, 0xc8a6, 0xc5f9, 0x003f, 0xb6da, 0xe4a5, 0xe4a3, 0x003f, 0xc8b5, 0xe3fe, 0xc3de, 0xc5fb, 0x003f, 0xc5fa, 0x003f, 0xbaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a8, 0x003f, 0xe4aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ad, 0x003f, 0xe4ae, 0x003f, 0xe4ab, 0xe4ac, 0x003f, 0x003f, 0xe4a9, 0xe4a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcacf, 0xb2d5, 0x003f, 0x003f, 0x003f, 0xe4b5, 0x003f, 0xe4b2, 0x003f, 0xe4b7, 0x003f, 0x003f, 0xe4b6, 0x003f, 0xc7f3, 0xcca7, 0x003f, 0xbbbb, 0xe4b0, 0xe4b9, 0xe4b4, 0x003f, 0xe4b3, 0xe4af, 0x003f, 0xe4b1, 0x003f, 0xb4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3bd, 0x003f, 0x003f, 0xc0fd, 0x003f, 0x003f, 0x003f, 0xc8a2, 0x003f, 0x003f, 0xe4be, 0x003f, 0x003f, 0x003f, 0xc8a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0e1, 0xe4bb, 0x003f, 0x003f, 0xc8cf, 0x003f, 0xe4bf, 0xcad3, 0x003f, 0xc3db, 0x003f, 0xe4ba, 0xe4bc, 0x003f, 0x003f, 0xe4bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c0, 0x003f, 0x003f, 0xbcc4, 0x003f, 0x003f, 0x003f, 0xc6c6, 0xe4c5, 0xe4c4, 0x003f, 0x003f, 0xe4c1, 0x003f, 0x003f, 0x003f, 0xcfb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ca, 0x003f, 0x003f, 0xe4ce, 0xe4cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7c00 .. 0x7cff */ 0xe4c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cd, 0x003f, 0x003f, 0x003f, 0xe4c2, 0xd2d5, 0xe4c9, 0xe4c3, 0x003f, 0x003f, 0xe4cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d2, 0x003f, 0xb4ca, 0x003f, 0xe4cf, 0x003f, 0x003f, 0x003f, 0xe4d0, 0x003f, 0x003f, 0xe4d1, 0xe4d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d3, 0xc8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d5, 0xcefc, 0xcaed, 0xe4da, 0x003f, 0x003f, 0xe4d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d6, 0xc0d2, 0x003f, 0xe4d9, 0xe4db, 0x003f, 0x003f, 0x003f, 0xe4d8, 0x003f, 0xe4df, 0x003f, 0xe4dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4dd, 0xe4c6, 0x003f, 0x003f, 0x003f, 0xe4de, 0xe4e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac6, 0x003f, 0xe4e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce2, 0x003f, 0x003f, 0xb6ce, 0xb7a9, 0xe4e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab4, 0x003f, 0xbfe8, 0x003f, 0xccb0, 0x003f, 0x003f, 0xe4e4, 0x003f, 0xceb3, 0x003f, 0x003f, 0xc7f4, 0x003f, 0xc1c6, 0xc7b4, 0x003f, 0x003f, 0xbdcd, 0x003f, 0x003f, 0x003f, 0xb0c0, 0x003f, 0xe4e9, 0xe4e7, 0x003f, 0xe4e5, 0xb4a1, 0x003f, 0xbed1, 0xe4ea, 0x003f, 0x003f, 0xe4e8, 0x003f, 0xe4e6, 0xe4ee, 0x003f, 0x003f, 0xe4ed, 0xe4ec, 0xe4eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ef, 0x003f, 0x003f, 0x003f, 0xe4f0, 0xc0ba, 0x003f, 0xe4f1, 0x003f, 0xe4f3, 0x003f, 0x003f, 0xe4f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8d2, 0x003f, 0x003f, 0x003f, 0xc1b8, 0x003f, 0x003f, 0x003f, 0xe4f5, 0x003f, 0x003f, 0x003f, 0xc5fc, 0x003f, 0xe4f4, 0x003f, 0x003f, 0x003f, 0xe4f6, 0x003f, 0xcab5, 0xc1ec, 0xb9c7, 0x003f, 0xe4f7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcec8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f9, 0x003f, 0x003f, 0xe4fa, 0x003f, 0xe4fb, 0x003f, 0xe4fc, 0x003f, 0xbbe5, 0x003f, 0xe4fd, 0xb7cf, 0x003f, 0x003f, 0xb5ea, 0x003f, /* 0x7d00 .. 0x7dff */ 0xb5aa, 0x003f, 0xe5a1, 0x003f, 0xccf3, 0xb9c8, 0xe4fe, 0x003f, 0x003f, 0x003f, 0xe5a4, 0xcce6, 0x003f, 0xc7bc, 0x003f, 0x003f, 0xc9b3, 0x003f, 0x003f, 0x003f, 0xbde3, 0xe5a3, 0x003f, 0xbcd3, 0xb9c9, 0xbbe6, 0xb5e9, 0xcab6, 0xe5a2, 0x003f, 0x003f, 0x003f, 0xc1c7, 0xcbc2, 0xbaf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbe7, 0xc4dd, 0x003f, 0xe5a7, 0xcedf, 0xbad9, 0x003f, 0xe5a8, 0xbfc2, 0x003f, 0xe5aa, 0x003f, 0x003f, 0x003f, 0xbed2, 0xbab0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a9, 0x003f, 0x003f, 0xbdaa, 0xb8be, 0xc1c8, 0xe5a5, 0xe5ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a6, 0xb7d0, 0x003f, 0xe5ae, 0xe5b2, 0xb7eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b6, 0x003f, 0x003f, 0xb9ca, 0x003f, 0x003f, 0xcded, 0xb0bc, 0xe5b3, 0x003f, 0x003f, 0xb5eb, 0x003f, 0xe5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b1, 0x003f, 0x003f, 0xc5fd, 0xe5af, 0xe5ac, 0x003f, 0xb3a8, 0xc0e4, 0x003f, 0x003f, 0xb8a8, 0x003f, 0x003f, 0x003f, 0xe5b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b7, 0x003f, 0x003f, 0x003f, 0xe5b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7d1, 0xc2b3, 0xe5b9, 0xc1ee, 0x003f, 0x003f, 0xe5c6, 0x003f, 0x003f, 0xe5c2, 0xe5bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c0, 0xbcfa, 0xb0dd, 0xe5bb, 0xe5c3, 0xe5c7, 0xb9cb, 0xccd6, 0x003f, 0xc4d6, 0xe5bd, 0x003f, 0x003f, 0xe5c5, 0x003f, 0xe5ba, 0xc3be, 0x003f, 0xe5bf, 0xb0bd, 0xccca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5be, 0x003f, 0x003f, 0xb6db, 0xc8ec, 0x003f, 0x003f, 0x003f, 0xc1ed, 0x003f, 0xced0, 0xbdef, 0x003f, 0x003f, 0xe5ee, 0x003f, 0x003f, 0xe5c8, 0x003f, 0xc0fe, 0x003f, 0xe5c4, 0xe5c9, 0xe5cb, 0x003f, 0xc4f9, 0xe5ce, 0x003f, 0x003f, 0xe5ca, 0x003f, 0x003f, 0x003f, 0xcad4, 0xb4cb, 0x003f, 0x003f, 0xcccb, 0x003f, 0x003f, 0xb0de, 0x003f, 0x003f, 0xe5cd, 0x003f, 0xcefd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7e00 .. 0x7eff */ 0x003f, 0xb1ef, 0x003f, 0x003f, 0xc6ec, 0xe5cf, 0x003f, 0x003f, 0x003f, 0xe5d6, 0xe5d0, 0xe5d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7fb, 0x003f, 0x003f, 0xbcca, 0xe5d5, 0x003f, 0xe5d2, 0xe5d8, 0xe5d1, 0x003f, 0x003f, 0xbdc4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba5, 0x003f, 0x003f, 0xbdcc, 0x003f, 0x003f, 0xe5d4, 0xe5e0, 0x003f, 0x003f, 0xe5dc, 0x003f, 0xe5df, 0x003f, 0xe5dd, 0xe5e1, 0xe5db, 0x003f, 0xe5c1, 0xc0d3, 0x003f, 0x003f, 0xc8cb, 0x003f, 0xe5de, 0x003f, 0x003f, 0xe5d9, 0x003f, 0x003f, 0x003f, 0xc1a1, 0xb7d2, 0x003f, 0xbdab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfa5, 0xc1b6, 0xe5e4, 0x003f, 0x003f, 0xe5e6, 0xe5e7, 0x003f, 0x003f, 0xe5e3, 0xe5e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5da, 0xe5e2, 0x003f, 0xe5ea, 0xe5e9, 0x003f, 0x003f, 0xcbfa, 0x003f, 0x003f, 0xb7ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e8, 0x003f, 0xe5ec, 0xe5eb, 0xe5ef, 0x003f, 0xe5f1, 0x003f, 0x003f, 0xbbbc, 0xe5ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f2, 0xe5f3, 0x003f, 0x003f, 0xe5f4, 0x003f, 0xe5fa, 0xc5bb, 0xe5f6, 0x003f, 0xe5f5, 0xe5f7, 0xe5f8, 0x003f, 0xe5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5fb, 0xe5fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7f00 .. 0x7fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4cc, 0x003f, 0xe5fd, 0x003f, 0xe5fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a2, 0xe6a3, 0xe6a4, 0x003f, 0xe6a5, 0xe6a6, 0x003f, 0x003f, 0xe6a8, 0xe6a7, 0x003f, 0x003f, 0xe6a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6aa, 0xe6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ae, 0xe6ac, 0xe6ad, 0xbae1, 0xb7d3, 0x003f, 0x003f, 0xc3d6, 0x003f, 0xc8b3, 0x003f, 0xbdf0, 0x003f, 0x003f, 0xc7cd, 0x003f, 0xc8ed, 0xe6af, 0xd8ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b0, 0xe6b2, 0x003f, 0xcde5, 0xe6b1, 0xe6b4, 0xe6b3, 0x003f, 0xcdd3, 0x003f, 0xe6b5, 0x003f, 0xc8fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b9, 0x003f, 0x003f, 0xe6b8, 0xe6b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ba, 0xb7b2, 0x003f, 0x003f, 0x003f, 0xc1a2, 0xb5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6be, 0xe6bb, 0x003f, 0x003f, 0xe6bc, 0x003f, 0x003f, 0x003f, 0xe6bf, 0x003f, 0xe6c0, 0xe6bd, 0x003f, 0x003f, 0x003f, 0xb1a9, 0x003f, 0x003f, 0x003f, 0xb2a7, 0x003f, 0x003f, 0x003f, 0xe6c2, 0xe6c3, 0x003f, 0x003f, 0x003f, 0xe6c4, 0x003f, 0xcde2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdac, 0x003f, 0xe6c6, 0xe6c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfe9, 0xe6c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6c8, 0x003f, 0x003f, 0xe6c9, 0x003f, 0xb4e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4cd, 0x003f, 0x003f, 0xe6ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cb, 0x003f, 0xcbdd, 0xcde3, 0x003f, 0x003f, 0x003f, /* 0x8000 .. 0x80ff */ 0xcdd4, 0xcfb7, 0x003f, 0xb9cd, 0xe6ce, 0xbcd4, 0xe6cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cf, 0xbca9, 0x003f, 0x003f, 0x003f, 0xc2d1, 0x003f, 0xe6d0, 0x003f, 0x003f, 0xb9cc, 0x003f, 0xccd7, 0xe6d1, 0xe6d2, 0x003f, 0x003f, 0xe6d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcaa, 0x003f, 0x003f, 0xcced, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d7, 0x003f, 0xc3bf, 0x003f, 0xe6d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d9, 0x003f, 0x003f, 0x003f, 0xe6d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6da, 0x003f, 0x003f, 0x003f, 0xc0bb, 0x003f, 0xe6db, 0x003f, 0xe6dc, 0x003f, 0x003f, 0x003f, 0xcab9, 0xe6dd, 0x003f, 0xc1ef, 0xe6de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcefe, 0xe6e2, 0x003f, 0xe6e1, 0xe6e0, 0xc4b0, 0x003f, 0xe6e3, 0xbfa6, 0x003f, 0xe6e4, 0x003f, 0x003f, 0x003f, 0xe6e5, 0xcfb8, 0xe6e6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e7, 0xe6e9, 0xe6e8, 0xc8a5, 0x003f, 0xc6f9, 0x003f, 0xcfbe, 0xc8a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6eb, 0x003f, 0x003f, 0xbed3, 0x003f, 0xc9aa, 0x003f, 0xe6ec, 0xe6ea, 0x003f, 0xb4ce, 0x003f, 0x003f, 0x003f, 0xb8d4, 0xbbe8, 0x003f, 0x003f, 0xc8ee, 0x003f, 0x003f, 0x003f, 0xb8aa, 0xcbc3, 0x003f, 0xe6ef, 0xe6ed, 0x003f, 0xb9ce, 0x003f, 0xb9cf, 0xb0e9, 0x003f, 0xbae8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0df, 0xe6f4, 0x003f, 0xc3c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7d8, 0x003f, 0xc2db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f6, 0x003f, 0x003f, 0xe6f2, 0xe6f5, 0xe6f0, 0x003f, 0xe6f3, 0xcba6, 0x003f, 0x003f, 0xb8d5, 0x003f, 0x003f, 0xb0fd, 0xe6f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f8, 0x003f, 0xe6f9, 0x003f, 0x003f, 0xc6b9, 0x003f, 0x003f, 0x003f, 0xb6bb, 0x003f, 0x003f, 0x003f, 0xe7a6, 0xc7bd, 0x003f, 0x003f, /* 0x8100 .. 0x81ff */ 0x003f, 0x003f, 0xbbe9, 0x003f, 0x003f, 0xb6bc, 0xc0c8, 0xcfc6, 0xccae, 0xe6f7, 0xc0d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5d3, 0xe6fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fd, 0x003f, 0xc3a6, 0x003f, 0xc7be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fe, 0x003f, 0x003f, 0xbfd5, 0x003f, 0xc9e5, 0xe7a5, 0x003f, 0xe7a4, 0xb9d0, 0xcfd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a9, 0xe7aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcf0, 0x003f, 0x003f, 0xe7a8, 0x003f, 0xb9f8, 0xe7a7, 0x003f, 0x003f, 0xe7ab, 0x003f, 0x003f, 0x003f, 0xc4b2, 0xcaa2, 0xc1a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2dc, 0xe7af, 0x003f, 0xe7b0, 0xe7ac, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ad, 0x003f, 0xe7ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9d1, 0x003f, 0x003f, 0x003f, 0xe7b6, 0x003f, 0xe7b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9e6, 0x003f, 0xcbec, 0xc9a8, 0x003f, 0x003f, 0xe7b1, 0x003f, 0x003f, 0xe7b4, 0xe7b3, 0x003f, 0x003f, 0x003f, 0xcbc4, 0xe7b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b8, 0x003f, 0x003f, 0xc1b7, 0x003f, 0xe7b9, 0x003f, 0x003f, 0xe7bb, 0x003f, 0xe7bf, 0x003f, 0x003f, 0xe7bc, 0xe7ba, 0xc7bf, 0xe7bd, 0x003f, 0xe7be, 0x003f, 0x003f, 0x003f, 0xb2b2, 0x003f, 0xe7c5, 0xe7c0, 0x003f, 0x003f, 0x003f, 0xe7c1, 0x003f, 0x003f, 0x003f, 0xe7c2, 0x003f, 0xc2a1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c4, 0xe7c3, 0xe7c6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c7, 0xe7c8, 0x003f, 0x003f, 0xbfc3, 0x003f, 0xb2e9, 0x003f, 0xe7c9, 0xced7, 0x003f, 0xbcab, 0x003f, 0x003f, 0xbdad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbea, 0xc3d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ca, 0xe7cb, 0xb1b1, 0x003f, 0xe7cc, 0x003f, /* 0x8200 .. 0x82ff */ 0x003f, 0xe7cd, 0xe7ce, 0x003f, 0x003f, 0xe7cf, 0x003f, 0xe7d0, 0xb6bd, 0xdaaa, 0xe7d1, 0x003f, 0xc0e5, 0xe7d2, 0xbccb, 0x003f, 0xe7d3, 0x003f, 0xd0b0, 0x003f, 0x003f, 0x003f, 0xe7d4, 0xcade, 0xb4dc, 0x003f, 0x003f, 0xc1a4, 0xbdd8, 0x003f, 0xc9f1, 0xbdae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d5, 0xb9d2, 0xe7d6, 0xc8cc, 0x003f, 0xe7e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d8, 0x003f, 0xc2c9, 0xc7f5, 0xb8bf, 0xe7d7, 0xc1a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7db, 0xe7da, 0xe7dd, 0x003f, 0x003f, 0xe7dc, 0x003f, 0xe7de, 0x003f, 0x003f, 0xe7e0, 0x003f, 0xe7df, 0x003f, 0xb4cf, 0x003f, 0xe7e1, 0x003f, 0xe7e2, 0xe7e3, 0x003f, 0x003f, 0xbab1, 0xcec9, 0x003f, 0xe7e5, 0xbfa7, 0x003f, 0x003f, 0x003f, 0xb1f0, 0xe7e6, 0xe7e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0f2, 0x003f, 0xe7e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9e7, 0x003f, 0x003f, 0x003f, 0xbcc7, 0x003f, 0xe7ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3a9, 0xb0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7eb, 0xe7ee, 0xc7ce, 0x003f, 0xbfc4, 0x003f, 0xb2d6, 0x003f, 0xcba7, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7dd, 0xb6dc, 0x003f, 0xe7ed, 0x003f, 0xb2ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1f1, 0xe7f2, 0xceea, 0xc2dd, 0x003f, 0x003f, 0xc9c4, 0x003f, 0xe7fe, 0x003f, 0xb2d7, 0xe7fc, 0x003f, 0xe7fa, 0xe7f1, 0x003f, 0xe7ef, 0x003f, 0xe7f0, 0x003f, 0xbce3, 0xb6ec, 0xc3f7, 0x003f, 0x003f, 0x003f, 0xc6d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d1, 0x003f, 0xe7f4, 0xe7f3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f9, 0xe7f5, 0xe7f8, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8300 .. 0x83ff */ 0x003f, 0x003f, 0xccd0, 0xe7f7, 0xb2d8, 0xb3fd, 0xe7fb, 0x003f, 0x003f, 0xe7fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a3, 0xe8ac, 0xe8ad, 0x003f, 0x003f, 0x003f, 0xb0ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0f1, 0x003f, 0x003f, 0xe8ab, 0x003f, 0x003f, 0x003f, 0xe8aa, 0x003f, 0xe8a5, 0xe8a4, 0x003f, 0xe8a2, 0xe8a1, 0xc3e3, 0x003f, 0xc2fb, 0xe8a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a9, 0x003f, 0x003f, 0x003f, 0xc1f0, 0xb7d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1c1, 0xe8a8, 0x003f, 0xb9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ba, 0x003f, 0xe8bb, 0x003f, 0xb2d9, 0x003f, 0x003f, 0x003f, 0xb2ae, 0xe8b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ae, 0x003f, 0xe8b6, 0x003f, 0xe8bd, 0xe8b7, 0x003f, 0x003f, 0x003f, 0xe8b5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f6, 0x003f, 0x003f, 0xe8b3, 0x003f, 0x003f, 0x003f, 0xe8af, 0x003f, 0x003f, 0x003f, 0xb4d0, 0xe8b1, 0xe8bc, 0x003f, 0xe8b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8be, 0x003f, 0xe8b0, 0xc7fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde9, 0x003f, 0x003f, 0x003f, 0xe8b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8cf, 0x003f, 0x003f, 0x003f, 0xe8c7, 0x003f, 0x003f, 0x003f, 0xbffb, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5c6, 0x003f, 0xb6dd, 0x003f, 0xe8c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2db, 0x003f, 0x003f, 0xbed4, 0x003f, 0xe8c5, 0x003f, 0x003f, 0x003f, 0xbada, 0x003f, 0x003f, 0xc5d1, 0xe8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaee, 0x003f, 0xe8c1, 0x003f, 0x003f, 0x003f, 0xb2da, 0xb8d6, 0xc9a9, 0xe8cb, 0x003f, 0xe8bf, 0x003f, 0x003f, 0xe8c8, 0x003f, 0x003f, 0x003f, 0xe8d2, 0x003f, 0xe8c3, 0x003f, 0x003f, /* 0x8400 .. 0x84ff */ 0x003f, 0x003f, 0x003f, 0xe8c4, 0xc6ba, 0x003f, 0x003f, 0xe8c9, 0x003f, 0x003f, 0x003f, 0xe8c6, 0xcba8, 0xe8cc, 0xb0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ce, 0x003f, 0xe8cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7eb, 0xe8d4, 0x003f, 0xe8df, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3fe, 0x003f, 0x003f, 0x003f, 0xe8e2, 0x003f, 0x003f, 0xe8d0, 0x003f, 0x003f, 0x003f, 0xe8d5, 0xcdee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8de, 0x003f, 0x003f, 0xcdd5, 0x003f, 0x003f, 0x003f, 0x003f, 0xceaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3f8, 0x003f, 0x003f, 0x003f, 0xb3eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9f2, 0xe8e4, 0xc6a1, 0x003f, 0x003f, 0xb0b1, 0x003f, 0x003f, 0xe8dd, 0x003f, 0xe8d9, 0xc1f2, 0xe8d3, 0xe8db, 0xe8e0, 0x003f, 0xc7ac, 0x003f, 0x003f, 0x003f, 0xb0aa, 0x003f, 0xe8d8, 0x003f, 0xe8e1, 0xc9f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8dc, 0x003f, 0xe8d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbed5, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdaf, 0x003f, 0x003f, 0x003f, 0xbcac, 0x003f, 0x003f, 0x003f, 0x003f, 0xccd8, 0x003f, 0x003f, 0xc9c7, 0x003f, 0x003f, 0xe8e7, 0x003f, 0xe8f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8da, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbef8, 0xe8e5, 0x003f, 0xe8ea, 0xc1f3, 0x003f, 0x003f, 0xe8e6, 0x003f, 0xe8ed, 0x003f, 0x003f, 0xc3df, 0x003f, 0xe8ee, 0x003f, 0x003f, 0xcdd6, 0xe8e3, 0xb3b8, 0x003f, 0xe8e9, 0x003f, 0x003f, 0xe8ec, 0xccac, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ef, 0x003f, 0x003f, 0xe8e8, 0xe8eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba9, 0x003f, 0xcfa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0xe8f2, /* 0x8500 .. 0x85ff */ 0xbcc3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcace, 0x003f, 0xcca2, 0xe8f9, 0xe8f8, 0x003f, 0xe8f4, 0xe8f5, 0x003f, 0xb1b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f7, 0x003f, 0xe8f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f6, 0xb0fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac3, 0x003f, 0x003f, 0xe8fb, 0xe9a1, 0x003f, 0xc8d9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8fe, 0xbed6, 0xbcc9, 0xe9a3, 0x003f, 0x003f, 0xb6be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a4, 0x003f, 0xc9f9, 0xe8fd, 0x003f, 0xe8d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfcf, 0xc6a2, 0xc9f3, 0x003f, 0x003f, 0xe9ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b2, 0x003f, 0xe9a5, 0x003f, 0x003f, 0x003f, 0xc7f6, 0x003f, 0x003f, 0xe9af, 0xe9a7, 0x003f, 0xe9a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b3, 0xe9a8, 0x003f, 0x003f, 0xe9ac, 0x003f, 0x003f, 0xb1f2, 0x003f, 0xc6e5, 0x003f, 0xe9ad, 0xe9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a6, 0x003f, 0xc1a6, 0x003f, 0xe9aa, 0xbba7, 0xbfc5, 0xb7b0, 0xccf4, 0x003f, 0xccf9, 0xbdf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b7, 0xe9b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b4, 0x003f, 0x003f, 0x003f, 0xcdf5, 0x003f, 0xe9b6, 0xe9b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bc, 0xe9ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a3, 0xe9bb, 0x003f, 0x003f, 0x003f, 0xc8cd, 0xe9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf3, 0x003f, 0xe9bd, 0xe9c2, 0xc1f4, 0x003f, 0x003f, 0xe9c1, 0x003f, /* 0x8600 .. 0x86ff */ 0x003f, 0x003f, 0xe9a2, 0x003f, 0x003f, 0x003f, 0xe9c3, 0xc1c9, 0x003f, 0x003f, 0xe9be, 0xe9c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bf, 0x003f, 0x003f, 0xddb1, 0xdda2, 0x003f, 0x003f, 0xe9c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf6, 0x003f, 0xe2bc, 0xe9c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c8, 0xb8d7, 0x003f, 0xb5d4, 0x003f, 0x003f, 0x003f, 0xe9ca, 0xd1dd, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5f5, 0x003f, 0xceba, 0x003f, 0xb6f3, 0xe9cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9cc, 0x003f, 0x003f, 0x003f, 0xc3ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6fa, 0x003f, 0xb0ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2e3, 0xe9d2, 0xe9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ce, 0x003f, 0xbbbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9cf, 0xc7c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d0, 0xe9d1, 0xe9db, 0x003f, 0x003f, 0x003f, 0xe9d5, 0xe9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d6, 0x003f, 0xe9d7, 0xbcd8, 0x003f, 0xe9d9, 0x003f, 0xc3c1, 0x003f, 0xb7d6, 0xb3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3bf, 0x003f, 0xe9e1, 0x003f, 0x003f, 0xe9dd, 0xe9e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8ba, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9de, 0x003f, 0x003f, 0xe9df, 0xc9c8, 0xc8da, 0xe9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2fd, 0xe9ec, 0x003f, 0xe9e8, 0x003f, 0x003f, 0xb2eb, 0x003f, /* 0x8700 .. 0x87ff */ 0xe9e6, 0x003f, 0xcbaa, 0xe9e7, 0x003f, 0x003f, 0xe9e4, 0x003f, 0xe9e5, 0xe9ea, 0xe9ed, 0x003f, 0x003f, 0xe9eb, 0x003f, 0x003f, 0x003f, 0xe9e9, 0xe9e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3d8, 0x003f, 0xe9f4, 0x003f, 0xccaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f2, 0x003f, 0x003f, 0x003f, 0xe9f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ee, 0x003f, 0x003f, 0xe9f0, 0x003f, 0x003f, 0x003f, 0xe9f1, 0x003f, 0x003f, 0x003f, 0xe9ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0e6, 0x003f, 0xcfb9, 0xe9f8, 0x003f, 0xe9f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa1, 0x003f, 0xbfaa, 0x003f, 0xe9fb, 0x003f, 0xe9fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f6, 0xe9f5, 0x003f, 0x003f, 0xeaa2, 0x003f, 0x003f, 0xb2dc, 0x003f, 0xe9fc, 0x003f, 0xeaa3, 0x003f, 0x003f, 0x003f, 0xe9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9fa, 0x003f, 0xc4b3, 0x003f, 0xe9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7e8, 0x003f, 0x003f, 0xeaa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa6, 0x003f, 0x003f, 0xeaa5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaae, 0x003f, 0x003f, 0x003f, 0xeaa8, 0x003f, 0x003f, 0x003f, 0xeab0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde6, 0xeab3, 0x003f, 0xeaaa, 0x003f, 0x003f, 0xeaab, 0x003f, 0x003f, 0x003f, 0xeaaf, 0x003f, 0xeab2, 0xeab1, 0x003f, 0x003f, 0x003f, 0xeaa9, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaac, 0x003f, 0xeabd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab4, 0x003f, 0x003f, 0xeab5, 0x003f, 0x003f, 0x003f, 0xeaba, 0xeabb, 0x003f, 0xb3aa, 0x003f, 0xb5c2, 0x003f, 0x003f, 0xeab9, 0x003f, /* 0x8800 .. 0x88ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab8, 0xeabc, 0xeab7, 0x003f, 0xeabe, 0x003f, 0x003f, 0x003f, 0xeac0, 0xeabf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac2, 0xeac1, 0xe9da, 0x003f, 0x003f, 0x003f, 0xeac6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac3, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac4, 0x003f, 0x003f, 0xeac5, 0x003f, 0xeac7, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ec, 0x003f, 0xeac9, 0x003f, 0xeac8, 0x003f, 0xbdb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9d4, 0xdea7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaca, 0xbdd1, 0x003f, 0x003f, 0x003f, 0xb3b9, 0x003f, 0xeacb, 0x003f, 0xb1d2, 0x003f, 0xbed7, 0xeacc, 0x003f, 0x003f, 0xb9d5, 0xeacd, 0xb0e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9bd, 0x003f, 0x003f, 0xeace, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfea, 0x003f, 0xead5, 0x003f, 0x003f, 0xead2, 0x003f, 0xc3ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xead3, 0xead0, 0xb6de, 0x003f, 0xeacf, 0xead6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b6, 0x003f, 0x003f, 0xc2de, 0x003f, 0xeadc, 0x003f, 0x003f, 0x003f, 0x003f, 0xead8, 0x003f, 0x003f, 0x003f, 0xc2b5, 0xead7, 0x003f, 0xeada, 0x003f, 0x003f, 0x003f, 0x003f, 0xead1, 0x003f, 0x003f, 0x003f, 0xeadb, 0x003f, 0xeadd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8ef, 0x003f, 0x003f, 0xead9, 0x003f, 0xeade, 0xeae0, 0x003f, 0x003f, 0xb8d3, 0xead4, 0x003f, 0xb0c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeadf, 0x003f, 0xbadb, 0xcef6, 0xeae1, 0xeae2, 0xc1f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea2, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae3, 0xcdb5, 0x003f, 0x003f, 0xeae4, 0xeae5, 0x003f, 0x003f, 0xcae4, 0xeae6, 0x003f, 0xbac0, 0x003f, 0xcea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaec, 0xbed8, 0xeaea, 0x003f, 0x003f, 0x003f, 0xcde7, 0xeae7, 0x003f, 0x003f, 0xeae9, 0xc0bd, 0xbffe, 0x003f, /* 0x8900 .. 0x89ff */ 0x003f, 0x003f, 0xeae8, 0x003f, 0xeaed, 0x003f, 0x003f, 0xcaa3, 0x003f, 0x003f, 0xeaef, 0x003f, 0xeaee, 0x003f, 0x003f, 0x003f, 0xb3ec, 0x003f, 0xcbab, 0xeaf0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeafc, 0xeaf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf3, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf4, 0xeaf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf9, 0x003f, 0xeafa, 0x003f, 0x003f, 0xeaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf6, 0x003f, 0xeaf1, 0xeaf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeafb, 0xf0b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeafe, 0xb6df, 0xeafd, 0x003f, 0x003f, 0x003f, 0xeba2, 0x003f, 0xeba1, 0x003f, 0x003f, 0x003f, 0xeba4, 0x003f, 0x003f, 0xeba3, 0x003f, 0xeba5, 0x003f, 0x003f, 0xbdb1, 0x003f, 0xeba6, 0x003f, 0x003f, 0xeba7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba8, 0xc0be, 0x003f, 0xcdd7, 0x003f, 0xeba9, 0x003f, 0x003f, 0xcaa4, 0xc7c6, 0xebaa, 0x003f, 0xebab, 0xb8ab, 0x003f, 0x003f, 0x003f, 0xb5ac, 0x003f, 0x003f, 0x003f, 0xebac, 0x003f, 0x003f, 0xbbeb, 0xc7c1, 0xebad, 0x003f, 0xb3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebae, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb0, 0xcdf7, 0x003f, 0xebaf, 0xbfc6, 0x003f, 0xebb1, 0x003f, 0x003f, 0xebb2, 0x003f, 0x003f, 0xebb3, 0xb4d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb4, 0x003f, 0x003f, 0xebb5, 0x003f, 0xebb6, 0xebb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb8, 0x003f, 0xebb9, 0xebba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2f2, 0x003f, 0x003f, 0xbfa8, 0xebbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebbc, 0x003f, 0x003f, 0x003f, 0xebbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8a00 .. 0x8aff */ 0xb8c0, 0x003f, 0xc4fb, 0xebbe, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7d7, 0x003f, 0xbfd6, 0x003f, 0xebc1, 0x003f, 0xc6a4, 0x003f, 0xebc0, 0x003f, 0x003f, 0xb7b1, 0x003f, 0x003f, 0xebbf, 0xc2f7, 0xb5ad, 0x003f, 0x003f, 0xebc2, 0x003f, 0xebc3, 0x003f, 0xbed9, 0x003f, 0x003f, 0x003f, 0xb7ed, 0x003f, 0xebc4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbac, 0x003f, 0x003f, 0xc0df, 0x003f, 0x003f, 0x003f, 0xb5f6, 0x003f, 0xccf5, 0xc1ca, 0x003f, 0xebc5, 0x003f, 0x003f, 0x003f, 0xbfc7, 0xc3f0, 0xbeda, 0x003f, 0x003f, 0x003f, 0x003f, 0xebc6, 0x003f, 0x003f, 0x003f, 0x003f, 0xebc9, 0x003f, 0xebca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbabe, 0xc2c2, 0xebc8, 0x003f, 0xbedb, 0xc9be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebc7, 0x003f, 0x003f, 0xbbec, 0x003f, 0xb1d3, 0x003f, 0xebce, 0xb7d8, 0x003f, 0x003f, 0xbbee, 0x003f, 0x003f, 0xbbed, 0x003f, 0xcfcd, 0xebcd, 0xebcc, 0xc1a7, 0x003f, 0xb5cd, 0xcfc3, 0xb3ba, 0xbedc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebcb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebd0, 0x003f, 0xebd1, 0xebcf, 0x003f, 0xb8d8, 0x003f, 0xcdc0, 0x003f, 0x003f, 0xbbef, 0xc7a7, 0x003f, 0x003f, 0x003f, 0xebd4, 0x003f, 0xc0c0, 0x003f, 0xc3c2, 0x003f, 0x003f, 0xcdb6, 0x003f, 0xebd7, 0x003f, 0x003f, 0x003f, 0xb8ec, 0x003f, 0xc0bf, 0xebd3, 0x003f, 0xebd8, 0xb8ed, 0xebd5, 0xebd6, 0x003f, 0xebd2, 0x003f, 0x003f, 0x003f, 0xc0e2, 0xc6c9, 0x003f, 0x003f, 0xc3af, 0x003f, 0xb2dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8f0, 0x003f, 0x003f, 0xb5c3, 0x003f, 0x003f, 0xc4b4, 0x003f, 0x003f, 0xebdb, 0x003f, 0xebd9, 0x003f, 0x003f, 0xc3cc, 0x003f, 0x003f, 0x003f, 0xc0c1, 0xb4d2, 0xebda, 0x003f, 0xbfdb, 0x003f, 0x003f, 0xceca, 0x003f, 0x003f, 0x003f, 0xcfc0, 0x003f, 0x003f, 0x003f, 0xebdc, 0xebe7, 0xc4b5, 0x003f, 0xebe6, 0x003f, 0xebe3, 0xebeb, 0xebe4, 0x003f, 0xebe0, 0x003f, 0xc4fc, 0xebdf, 0x003f, 0x003f, 0x003f, 0xebdd, 0x003f, 0xcda1, 0xbbf0, 0x003f, 0x003f, 0xebe1, 0x003f, 0xebde, 0x003f, 0x003f, 0x003f, 0xebe5, 0xbdf4, 0x003f, 0xb8c1, 0x003f, 0x003f, 0x003f, 0xc2fa, 0x003f, /* 0x8b00 .. 0x8bff */ 0xcbc5, 0xb1da, 0xb0e2, 0x003f, 0xc6a5, 0x003f, 0x003f, 0xebe9, 0x003f, 0x003f, 0x003f, 0x003f, 0xebe8, 0x003f, 0xc6e6, 0x003f, 0xebed, 0x003f, 0x003f, 0x003f, 0xebe2, 0x003f, 0xebec, 0xebee, 0x003f, 0xb8ac, 0xebea, 0xb9d6, 0x003f, 0xbcd5, 0x003f, 0x003f, 0xebef, 0xcdd8, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf2, 0x003f, 0xebf5, 0x003f, 0x003f, 0xebf3, 0xc9b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf4, 0x003f, 0x003f, 0xebf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfa, 0x003f, 0x003f, 0xebf7, 0x003f, 0xebf9, 0xebf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfb, 0x003f, 0xbcb1, 0x003f, 0xebfd, 0xebfc, 0xc9e8, 0x003f, 0x003f, 0xeca1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfe, 0xeca2, 0x003f, 0x003f, 0xeca3, 0xb5c4, 0xe6c1, 0xbef9, 0x003f, 0xeca4, 0x003f, 0x003f, 0xb8ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca5, 0x003f, 0x003f, 0xeca6, 0x003f, 0x003f, 0xbbbe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdace, 0x003f, 0xeca7, 0x003f, 0xeca8, 0x003f, 0xbdb2, 0x003f, 0xeca9, 0xecaa, 0x003f, 0x003f, 0xecab, 0x003f, 0x003f, 0xecac, 0xecad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8c00 .. 0x8cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3ab, 0x003f, 0x003f, 0xecae, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb0, 0x003f, 0xecaf, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a6, 0x003f, 0xecb1, 0x003f, 0xcbad, 0x003f, 0xecb2, 0x003f, 0xecb3, 0x003f, 0xecb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbedd, 0xecb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9eb, 0xd0ae, 0xecb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb8, 0xc9bf, 0xecb9, 0x003f, 0xecc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecba, 0x003f, 0x003f, 0xecbc, 0x003f, 0x003f, 0x003f, 0xecbb, 0xecbd, 0x003f, 0xcbc6, 0xecbe, 0xecbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecc0, 0x003f, 0x003f, 0x003f, 0xecc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ad, 0xc4e7, 0x003f, 0xc9e9, 0xbae2, 0xb9d7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9cf, 0xb2df, 0xc8ce, 0xecc5, 0xb4d3, 0xc0d5, 0xecc4, 0xecc9, 0xc3f9, 0xcce3, 0x003f, 0xecc7, 0xecc8, 0xb5ae, 0x003f, 0xecca, 0xc7e3, 0xc2df, 0x003f, 0x003f, 0xc8f1, 0xc5bd, 0xecc6, 0x003f, 0xcbc7, 0xb2ec, 0xeccc, 0xcfa8, 0xc4c2, 0xcfc5, 0x003f, 0x003f, 0xbbf1, 0xeccb, 0x003f, 0xc2b1, 0x003f, 0x003f, 0xecdc, 0xc1a8, 0x003f, 0x003f, 0xc6f8, 0x003f, 0xc9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeccf, 0xbbbf, 0xbbf2, 0x003f, 0xbede, 0x003f, 0xc7e5, 0x003f, 0xb8ad, 0xecce, 0xeccd, 0x003f, 0xc9ea, 0x003f, 0x003f, 0x003f, 0xbcc1, 0x003f, 0x003f, 0xc5d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecd1, 0xecd2, 0xb9d8, 0xecd0, 0x003f, 0x003f, /* 0x8d00 .. 0x8dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xecd3, 0xecd4, 0x003f, 0xecd6, 0xc2a3, 0x003f, 0xecd5, 0xb4e6, 0x003f, 0xecd8, 0x003f, 0xecd7, 0xecd9, 0x003f, 0x003f, 0xecdb, 0xecdd, 0x003f, 0xecde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0d6, 0x003f, 0xbccf, 0xecdf, 0x003f, 0x003f, 0x003f, 0xb3d2, 0x003f, 0xece0, 0x003f, 0x003f, 0xc1f6, 0xece1, 0x003f, 0xece2, 0xc9eb, 0x003f, 0x003f, 0xb5af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xece3, 0x003f, 0x003f, 0x003f, 0xc4b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xece4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcf1, 0x003f, 0x003f, 0x003f, 0x003f, 0xbff6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xece7, 0x003f, 0x003f, 0x003f, 0xece6, 0x003f, 0x003f, 0x003f, 0xece5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeced, 0xeceb, 0x003f, 0x003f, 0xece8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecea, 0x003f, 0x003f, 0x003f, 0xece9, 0xecec, 0x003f, 0xb5f7, 0x003f, 0xecf0, 0x003f, 0xc0d7, 0x003f, 0xecf1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8d9, 0x003f, 0xecee, 0xecef, 0x003f, 0x003f, 0x003f, 0xcfa9, 0x003f, 0x003f, 0x003f, 0xc4b7, 0x003f, 0xc1a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf2, 0x003f, 0x003f, 0xecf5, /* 0x8e00 .. 0x8eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf3, 0xecf4, 0xcdd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a7, 0xecf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf6, 0xecf7, 0xecf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeda9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecfc, 0x003f, 0x003f, 0x003f, 0xecfd, 0xecfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecfa, 0x003f, 0xc4fd, 0x003f, 0x003f, 0xeda1, 0xeda5, 0xeda2, 0xecfe, 0x003f, 0xeda3, 0x003f, 0x003f, 0x003f, 0xeda4, 0x003f, 0x003f, 0x003f, 0x003f, 0xedab, 0x003f, 0x003f, 0x003f, 0xeda6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0d8, 0xeda8, 0x003f, 0x003f, 0xedaa, 0xeda7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedad, 0x003f, 0xbdb3, 0x003f, 0xedac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedae, 0x003f, 0x003f, 0x003f, 0x003f, 0xedaf, 0x003f, 0x003f, 0xedb2, 0xedb1, 0x003f, 0xedb0, 0x003f, 0x003f, 0xedb4, 0xedb3, 0x003f, 0xccf6, 0x003f, 0x003f, 0x003f, 0xedb6, 0x003f, 0xedb5, 0xedb7, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb9, 0xbfc8, 0xedbb, 0x003f, 0x003f, 0xb6ed, 0xedbc, 0xedbe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedc0, 0xedbd, 0x003f, 0xedc1, 0x003f, 0xbcd6, 0xedc2, 0xb5b0, 0xb7b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedc3, 0x003f, 0x003f, 0x003f, 0xc6f0, 0x003f, 0x003f, 0xc5be, 0xedc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcb4, 0x003f, 0x003f, 0xedc6, 0xedc5, 0xb7da, 0xedc8, 0x003f, /* 0x8f00 .. 0x8fff */ 0x003f, 0x003f, 0x003f, 0xb3d3, 0x003f, 0xedca, 0x003f, 0x003f, 0x003f, 0xbadc, 0xedc9, 0x003f, 0xedd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedcc, 0xedce, 0xcae5, 0xedcb, 0x003f, 0x003f, 0x003f, 0xedcd, 0x003f, 0xedd1, 0xedcf, 0xb5b1, 0x003f, 0xedd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd3, 0x003f, 0x003f, 0xc7da, 0xced8, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdb4, 0x003f, 0x003f, 0x003f, 0xedd4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda2, 0xedd6, 0x003f, 0xedd5, 0x003f, 0x003f, 0xedd9, 0xcdc1, 0x003f, 0x003f, 0xedd8, 0x003f, 0xb3ed, 0xedd7, 0xeddc, 0x003f, 0x003f, 0xeddb, 0x003f, 0x003f, 0xedda, 0xc5b2, 0xeddd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedde, 0x003f, 0x003f, 0x003f, 0x003f, 0xeddf, 0x003f, 0x003f, 0xb9ec, 0x003f, 0xb7a5, 0xede0, 0xede1, 0xede2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfc9, 0xede3, 0x003f, 0xbcad, 0xede4, 0x003f, 0x003f, 0x003f, 0xede5, 0x003f, 0x003f, 0x003f, 0xd2a1, 0xd1fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xede6, 0xe5f0, 0xede7, 0xc3a4, 0xbfab, 0xc7c0, 0x003f, 0x003f, 0x003f, 0x003f, 0xede8, 0x003f, 0x003f, 0xcad5, 0xc4d4, 0xb9fe, 0x003f, 0x003f, 0xc3a9, 0x003f, 0x003f, 0xb1aa, 0x003f, 0xcbf8, 0xbfd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7de, 0x003f, 0x003f, 0xb6e1, 0x003f, 0x003f, 0xcad6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xede9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedeb, 0x003f, 0x003f, 0xedea, 0xb2e0, 0x003f, 0x003f, 0xc6f6, 0xedec, 0xc7f7, 0x003f, 0xc5b3, 0x003f, 0xeded, 0xbdd2, 0x003f, 0x003f, 0x003f, 0xedef, 0x003f, 0x003f, 0xccc2, 0xedfe, 0xedf1, 0xedf2, 0x003f, 0x003f, 0xc4c9, 0x003f, 0x003f, /* 0x9000 .. 0x90ff */ 0xc2e0, 0xc1f7, 0x003f, 0xc6a8, 0x003f, 0xedf0, 0xb5d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf9, 0x003f, 0xedf6, 0xeea5, 0xc6a9, 0xc3e0, 0xedf3, 0x003f, 0xc4fe, 0xc5d3, 0xedf4, 0xedf8, 0xbfe0, 0x003f, 0xc7e7, 0xc4cc, 0x003f, 0x003f, 0xc0c2, 0xedf7, 0xc2ae, 0xc2a4, 0xedf5, 0xb0a9, 0xcfa2, 0x003f, 0x003f, 0x003f, 0xedfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2e1, 0x003f, 0x003f, 0xbdb5, 0xbfca, 0x003f, 0x003f, 0xedfc, 0xedfb, 0x003f, 0xb0ef, 0xedfd, 0x003f, 0x003f, 0xc9af, 0x003f, 0xeea7, 0x003f, 0x003f, 0xc6db, 0xbfeb, 0x003f, 0x003f, 0xc3d9, 0x003f, 0xb6f8, 0x003f, 0xeea6, 0xcdb7, 0xb1bf, 0x003f, 0xcad7, 0xb2e1, 0xeea1, 0xeea2, 0xeea3, 0xeea4, 0xc6bb, 0xc3a3, 0xb0e3, 0xeea8, 0x003f, 0xeea9, 0xf4a3, 0x003f, 0x003f, 0xc2bd, 0x003f, 0xeeaa, 0x003f, 0xb1f3, 0xc1cc, 0x003f, 0xb8af, 0x003f, 0xcdda, 0x003f, 0x003f, 0xeeab, 0xc5ac, 0x003f, 0x003f, 0x003f, 0xc1f8, 0xbcd7, 0xeeac, 0x003f, 0x003f, 0xeeaf, 0x003f, 0x003f, 0xbde5, 0xeead, 0xc1ab, 0xc1aa, 0x003f, 0xb0e4, 0x003f, 0xcecb, 0xeeb1, 0x003f, 0xc8f2, 0xeeb3, 0xeeb2, 0xeeb0, 0xe3e4, 0xb4d4, 0x003f, 0x003f, 0xedee, 0x003f, 0xeeb5, 0xeeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb6, 0x003f, 0xcdb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6e1, 0x003f, 0x003f, 0xcbae, 0x003f, 0xeeb7, 0x003f, 0xbcd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb8, 0x003f, 0xeeb9, 0x003f, 0x003f, 0x003f, 0xeeba, 0x003f, 0x003f, 0xc5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9d9, 0x003f, 0x003f, 0x003f, 0xcfba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeebe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b4, 0xeebb, 0x003f, 0xeebc, 0x003f, 0x003f, 0x003f, 0xc9f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdb9, 0x003f, 0xb6bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5d4, 0x003f, 0x003f, /* 0x9100 .. 0x91ff */ 0x003f, 0x003f, 0xeebf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5a2, 0x003f, 0x003f, 0xeec3, 0x003f, 0xeec2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6d3, 0xeec4, 0xbdb6, 0xbce0, 0xc7db, 0xc3f1, 0x003f, 0x003f, 0x003f, 0xbcf2, 0x003f, 0xbfec, 0x003f, 0xeec5, 0x003f, 0xeec6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfdd, 0xeec7, 0x003f, 0xeec8, 0x003f, 0x003f, 0x003f, 0xeec9, 0xcdef, 0x003f, 0xbdb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeecb, 0xeeca, 0x003f, 0xb9da, 0x003f, 0xb9f3, 0xbbc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeece, 0x003f, 0x003f, 0x003f, 0x003f, 0xbde6, 0x003f, 0xeecd, 0x003f, 0xeecc, 0x003f, 0xc2e9, 0x003f, 0x003f, 0xb8ef, 0x003f, 0xc0c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8b0, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeecf, 0x003f, 0xbedf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed2, 0xeed0, 0x003f, 0x003f, 0x003f, 0xeed1, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed4, 0xeed3, 0x003f, 0x003f, 0xbefa, 0x003f, 0xeed5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed6, 0xeed7, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8d0, 0xbad3, 0xbce1, 0xeed8, 0x003f, 0xeed9, 0xcea4, 0xbdc5, 0xccee, 0xcecc, 0xeeda, 0xb6e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xeedb, 0x003f, 0xc5a3, 0x003f, 0x003f, 0xeede, 0xb3f8, 0xbfcb, 0x003f, 0xeedc, 0x003f, 0xeedd, 0x003f, 0xc4e0, 0x003f, 0x003f, 0xcbd5, 0xb6fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee0, 0xeee1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeedf, 0x003f, 0x003f, 0xeee3, /* 0x9200 .. 0x92ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6df, 0xb3c3, 0x003f, 0x003f, 0xeee7, 0x003f, 0x003f, 0xeee4, 0xeee6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefcf, 0x003f, 0x003f, 0xeee5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceeb, 0x003f, 0x003f, 0xb8da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeef, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5b4, 0xeeea, 0x003f, 0x003f, 0xeeed, 0xeeeb, 0x003f, 0xeef0, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee9, 0x003f, 0x003f, 0xeef6, 0xb1f4, 0x003f, 0x003f, 0xeee8, 0x003f, 0x003f, 0x003f, 0xc8ad, 0x003f, 0xeeec, 0x003f, 0xbee0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbc8, 0x003f, 0xb6e4, 0x003f, 0x003f, 0xbdc6, 0x003f, 0xc6bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1ad, 0x003f, 0xeef4, 0x003f, 0xeeee, 0xeef3, 0x003f, 0xccc3, 0x003f, 0xc4b8, 0xeef5, 0xeef2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef9, 0x003f, 0xeef8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef7, 0x003f, 0x003f, 0xcbaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdfb, 0x003f, 0x003f, 0x003f, 0x003f, 0xeefa, 0xcadf, 0x003f, 0x003f, 0xb1d4, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9c6, 0xc3f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5f8, 0x003f, 0xeefc, 0x003f, 0xb9dd, 0x003f, 0x003f, 0x003f, /* 0x9300 .. 0x93ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeefb, 0xbfed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfee, 0xefa1, 0xefa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbefb, 0x003f, 0xefa2, 0xefa4, 0x003f, 0x003f, 0xb6d3, 0x003f, 0xc9c5, 0x003f, 0x003f, 0xbce2, 0xcfa3, 0x003f, 0xeefe, 0xbaf8, 0x003f, 0x003f, 0xcfbf, 0x003f, 0x003f, 0xefa6, 0x003f, 0x003f, 0x003f, 0x003f, 0xefa5, 0xefa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeefd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6e9, 0x003f, 0xc5d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4d7, 0x003f, 0xefac, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3c3, 0xefa8, 0x003f, 0x003f, 0x003f, 0xefa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ad, 0x003f, 0xefab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefaa, 0x003f, 0xbee1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb0, 0x003f, 0xbabf, 0xc1f9, 0x003f, 0x003f, 0xc4ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xefae, 0xefaf, 0xc4c3, 0x003f, 0xefad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb7, 0x003f, 0x003f, 0x003f, 0x003f, 0xefba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb9, 0xc5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb2, 0xefb3, 0xefb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb8, 0x003f, 0x003f, 0x003f, 0xb6c0, 0x003f, 0x003f, 0xefbb, 0xefb5, 0x003f, 0x003f, 0xefb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9400 .. 0x94ff */ 0x003f, 0x003f, 0x003f, 0xefbf, 0x003f, 0x003f, 0x003f, 0xefc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc1, 0x003f, 0x003f, 0xefbe, 0xefbd, 0x003f, 0x003f, 0x003f, 0xbee2, 0xc6aa, 0xefbc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc4, 0xefc2, 0x003f, 0xc2f8, 0x003f, 0xefc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc7, 0x003f, 0x003f, 0xefc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4d5, 0xefc8, 0xccfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd4, 0xefca, 0x003f, 0x003f, 0xefcd, 0x003f, 0xefcb, 0x003f, 0xefcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd0, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd1, 0x003f, 0xefd2, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd5, 0xefd3, 0xefd6, 0xefd8, 0x003f, 0xefd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9500 .. 0x95ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce7, 0x003f, 0xefd9, 0xc1ae, 0x003f, 0x003f, 0x003f, 0xefda, 0x003f, 0xcac4, 0xefdb, 0xb3ab, 0x003f, 0x003f, 0x003f, 0xb1bc, 0x003f, 0xb4d7, 0x003f, 0xb4d6, 0xefdc, 0x003f, 0xefdd, 0x003f, 0xefde, 0xefdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe0, 0x003f, 0xb4d8, 0xb3d5, 0xb9de, 0xc8b6, 0x003f, 0xefe2, 0xefe1, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe3, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe6, 0x003f, 0xefe5, 0xefe4, 0x003f, 0xefe7, 0x003f, 0x003f, 0x003f, 0x003f, 0xefea, 0x003f, 0x003f, 0x003f, 0xb0c7, 0x003f, 0x003f, 0xefe8, 0x003f, 0xefec, 0xefeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefee, 0xefed, 0xefef, 0x003f, 0xc6ae, 0x003f, 0x003f, 0x003f, 0xeff0, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff1, 0xeff3, 0x003f, 0x003f, 0xeff2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9600 .. 0x96ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff5, 0x003f, 0xbae5, 0x003f, 0x003f, 0x003f, 0xeff6, 0xeff7, 0x003f, 0x003f, 0xcbc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1cb, 0x003f, 0x003f, 0x003f, 0xb0a4, 0xc2cb, 0x003f, 0xeff8, 0x003f, 0xc9ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeffb, 0xeff9, 0xb9df, 0x003f, 0xeffa, 0xb8c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac5, 0xeffd, 0xf0a1, 0xeffe, 0xf0a2, 0x003f, 0x003f, 0xb1a1, 0xbfd8, 0xbdfc, 0xb4d9, 0xf0a3, 0x003f, 0x003f, 0x003f, 0xc7e6, 0x003f, 0xf0a5, 0x003f, 0x003f, 0x003f, 0xb1a2, 0x003f, 0xf0a4, 0xc4c4, 0x003f, 0xcecd, 0xc6ab, 0xeffc, 0xcea6, 0x003f, 0xb8b1, 0x003f, 0x003f, 0xcddb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6f9, 0xceb4, 0x003f, 0xb7a8, 0x003f, 0xc2e2, 0xe7a1, 0x003f, 0xf0a6, 0xb3ac, 0xbfef, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3d6, 0xf0a8, 0x003f, 0xf0a9, 0xf0a7, 0xb7e4, 0x003f, 0xbadd, 0xbee3, 0x003f, 0x003f, 0x003f, 0xb1a3, 0x003f, 0x003f, 0xced9, 0x003f, 0x003f, 0x003f, 0xf0ab, 0xeeae, 0x003f, 0xf0aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ae, 0xf0ac, 0xf0ad, 0x003f, 0xf0af, 0x003f, 0xf0b0, 0xceec, 0xf0b1, 0xf0b2, 0x003f, 0xc0c9, 0xc8bb, 0x003f, 0x003f, 0x003f, 0xbffd, 0xb4e7, 0x003f, 0x003f, 0xcdba, 0xb2ed, 0xbdb8, 0xb8db, 0x003f, 0xf0b5, 0x003f, 0xf0b4, 0xbbf3, 0xf0b6, 0xf0b3, 0x003f, 0x003f, 0xbba8, 0x003f, 0x003f, 0x003f, 0xf0ba, 0xeaad, 0x003f, 0x003f, 0xd2d6, 0x003f, 0xbff7, 0xf0b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea5, 0xc6f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1ab, 0x003f, 0xc0e3, 0xbcb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab7, 0x003f, 0xb1c0, 0x003f, 0x003f, 0x003f, 0xceed, 0xcdeb, 0x003f, 0xf0bb, 0x003f, 0xc5c5, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9700 .. 0x97ff */ 0xbcfb, 0x003f, 0x003f, 0x003f, 0xf0bc, 0x003f, 0xf0bd, 0xbfcc, 0xf0be, 0x003f, 0xceee, 0x003f, 0x003f, 0xf0b9, 0xf0c0, 0xf0c2, 0x003f, 0xf0c1, 0x003f, 0xf0bf, 0x003f, 0x003f, 0xf0c3, 0x003f, 0x003f, 0xf0c4, 0x003f, 0x003f, 0xc1fa, 0x003f, 0xb2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c5, 0x003f, 0x003f, 0xccb8, 0x003f, 0x003f, 0xf0c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c7, 0x003f, 0xcfaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbb1, 0xf0c8, 0x003f, 0x003f, 0x003f, 0xf0c9, 0xf0ca, 0x003f, 0x003f, 0x003f, 0xf0ce, 0x003f, 0xf0cb, 0x003f, 0xf0cc, 0x003f, 0xf0cd, 0xf0cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0c4, 0x003f, 0x003f, 0x003f, 0xccf7, 0x003f, 0x003f, 0xc0c5, 0x003f, 0x003f, 0xf0d0, 0x003f, 0xc8f3, 0x003f, 0xf0d1, 0xf3d3, 0xcccc, 0x003f, 0xf0d2, 0x003f, 0xf0d3, 0x003f, 0xf0d4, 0xb3d7, 0x003f, 0xf0d6, 0x003f, 0xbfd9, 0x003f, 0x003f, 0x003f, 0xf0d7, 0x003f, 0x003f, 0xb7a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d8, 0xf0dc, 0x003f, 0xf0da, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0db, 0x003f, 0x003f, 0xb3f3, 0xf0d9, 0xf0dd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0de, 0x003f, 0xb0c8, 0x003f, 0xf0df, 0xf0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbee4, 0x003f, 0x003f, 0x003f, 0xf0e1, 0x003f, 0x003f, 0x003f, 0xb5c7, 0x003f, 0x003f, 0xf0e4, 0x003f, 0x003f, 0xf0e3, 0x003f, 0xf0e2, 0x003f, 0x003f, 0xebf1, 0x003f, 0xcadc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e5, 0xf0e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e7, 0x003f, 0x003f, 0xf0e8, 0x003f, 0xf0e9, 0x003f, 0x003f, 0xf0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ec, 0xc7a3, 0x003f, 0x003f, 0x003f, 0xf0ee, 0xb2bb, 0x003f, 0xf0f1, 0xf0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1a4, 0x003f, 0x003f, 0x003f, 0xb6c1, /* 0x9800 .. 0x98ff */ 0x003f, 0xcac7, 0xc4ba, 0xbaa2, 0x003f, 0xb9e0, 0xbde7, 0x003f, 0xbfdc, 0x003f, 0x003f, 0x003f, 0xf0f3, 0x003f, 0x003f, 0xf0f2, 0xcdc2, 0xb4e8, 0xc8d2, 0xc6dc, 0x003f, 0x003f, 0x003f, 0xbffc, 0xcece, 0x003f, 0xb7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f6, 0x003f, 0x003f, 0xf0f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcb, 0xc6ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d0, 0x003f, 0x003f, 0xf0f7, 0xf0f4, 0x003f, 0x003f, 0xc9d1, 0xcdea, 0xf0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fb, 0xc2ea, 0xb3db, 0xb3dc, 0xf0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xb4e9, 0xb8b2, 0x003f, 0x003f, 0xb4ea, 0x003f, 0x003f, 0xc5bf, 0x003f, 0x003f, 0xcee0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8dc, 0x003f, 0x003f, 0x003f, 0xf0fc, 0x003f, 0x003f, 0x003f, 0xf0fd, 0xf0fe, 0xf1a1, 0x003f, 0xf1a3, 0xf1a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9f7, 0x003f, 0xf1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a5, 0x003f, 0xf1a6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a9, 0xf1a8, 0x003f, 0xf1aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8f4, 0xe6cc, 0x003f, 0x003f, 0xbfa9, 0x003f, 0x003f, 0xb5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ab, 0x003f, 0xf1ac, 0x003f, 0xd2ac, 0xddbb, 0xc8d3, 0x003f, 0x003f, 0xb0fb, 0x003f, 0xb0bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbbf4, 0xcbb0, 0xbefe, 0x003f, /* 0x9900 .. 0x99ff */ 0x003f, 0x003f, 0x003f, 0xf1ad, 0x003f, 0xccdf, 0x003f, 0x003f, 0x003f, 0xf1ae, 0xcddc, 0x003f, 0xb1c2, 0x003f, 0x003f, 0x003f, 0xbbc1, 0x003f, 0xf1af, 0xb2ee, 0xf1b0, 0x003f, 0x003f, 0x003f, 0xf1b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1b3, 0xf1b4, 0x003f, 0xf1b6, 0xf1b2, 0x003f, 0x003f, 0xf1b5, 0x003f, 0x003f, 0x003f, 0xb4db, 0x003f, 0x003f, 0x003f, 0xf1b7, 0x003f, 0xf1b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1b9, 0xf1ba, 0x003f, 0x003f, 0x003f, 0xf1bb, 0x003f, 0x003f, 0xf1bd, 0x003f, 0x003f, 0x003f, 0xf1bc, 0x003f, 0xf1bf, 0xf1c2, 0x003f, 0x003f, 0x003f, 0xf1be, 0xf1c0, 0xf1c1, 0x003f, 0x003f, 0xf1c3, 0x003f, 0xb6c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcf3, 0xf1c4, 0xf1c5, 0xb9e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c6, 0x003f, 0x003f, 0xb3be, 0x003f, 0x003f, 0x003f, 0xc7cf, 0xf1c7, 0xf1c8, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3da, 0xc6eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7fd, 0x003f, 0x003f, 0xc2cc, 0xb1d8, 0xb6ee, 0x003f, 0xb6ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3f3, 0xf1ce, 0xb6f0, 0x003f, 0x003f, 0xb2ef, 0x003f, 0x003f, 0xf1cd, 0x003f, 0x003f, 0xf1cb, 0x003f, 0xf1cc, 0x003f, 0xf1ca, 0x003f, 0x003f, 0xf1d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1cf, 0xf1d0, 0x003f, 0x003f, 0xf1d1, 0xf1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d4, 0x003f, 0x003f, 0xf1d3, 0x003f, 0x003f, 0x003f, 0xbdd9, /* 0x9a00 .. 0x9aff */ 0x003f, 0xf1d5, 0x003f, 0x003f, 0x003f, 0xf1d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5b3, 0xf1d6, 0x003f, 0x003f, 0xc1fb, 0xb8b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2cd, 0x003f, 0x003f, 0xf1da, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e0, 0x003f, 0xf1de, 0x003f, 0xf1dd, 0xf1df, 0x003f, 0xf1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e1, 0x003f, 0xf1e4, 0x003f, 0x003f, 0xb6c3, 0xf1e3, 0x003f, 0x003f, 0x003f, 0xf1e5, 0x003f, 0x003f, 0xf1e6, 0x003f, 0xf1e8, 0xf1e7, 0x003f, 0x003f, 0x003f, 0xf1e9, 0xf1eb, 0xf1ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ec, 0x003f, 0x003f, 0xf1ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3bc, 0x003f, 0x003f, 0x003f, 0xf1ee, 0x003f, 0x003f, 0x003f, 0xf1ef, 0x003f, 0x003f, 0x003f, 0xbff1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f0, 0x003f, 0xf1f1, 0x003f, 0xf1f2, 0xf1f3, 0x003f, 0x003f, 0x003f, 0xb9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f4, 0xf1f5, 0x003f, 0x003f, 0xf1f6, 0xf1f7, 0x003f, 0x003f, 0xf1f8, 0x003f, 0x003f, 0x003f, 0xc8b1, 0xf1fa, 0x003f, 0xc9a6, 0xf1fb, 0xf1f9, 0x003f, 0xf1fd, 0x003f, 0x003f, 0xf1fc, 0x003f, 0x003f, 0xf1fe, 0x003f, 0x003f, 0x003f, 0xf2a1, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9b00 .. 0x9bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a3, 0x003f, 0xf2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a5, 0x003f, 0x003f, 0xf2a6, 0xf2a7, 0x003f, 0xf2a8, 0x003f, 0xf2a9, 0xf2aa, 0xf2ab, 0xf2ac, 0x003f, 0x003f, 0x003f, 0xf2ad, 0xf2ae, 0x003f, 0xddb5, 0xf2af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f8, 0xb5b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3a1, 0xbab2, 0xf2b1, 0xf2b0, 0xcca5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b3, 0xf2b4, 0xf2b2, 0x003f, 0xf2b5, 0x003f, 0x003f, 0xcbe2, 0x003f, 0x003f, 0x003f, 0xf2b6, 0x003f, 0xb5fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0be, 0x003f, 0x003f, 0xf2ba, 0xcaab, 0xf2b8, 0x003f, 0x003f, 0xf2bb, 0xf2bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2bd, 0xf2be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2bf, 0x003f, 0xcbee, 0xbbad, 0x003f, 0xbafa, 0xc1af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c0, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c4, 0x003f, 0x003f, 0xb8f1, 0xf2c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c5, 0x003f, 0xf2c6, 0xf2c7, 0x003f, 0xf2cb, 0x003f, 0xbbaa, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2cc, 0xf2c9, 0xf2c8, 0xf2ca, 0x003f, 0x003f, 0x003f, 0xb7df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d0, 0xf2cf, 0xf2ce, 0x003f, 0x003f, 0xb0b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9c00 .. 0x9cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xf2da, 0x003f, 0xf2d6, 0x003f, 0xf2d7, 0xf2d3, 0xf2d9, 0x003f, 0xf2d5, 0xb3e2, 0x003f, 0x003f, 0xcfcc, 0x003f, 0xf2d8, 0xf2d4, 0xf2d2, 0xf2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2df, 0x003f, 0x003f, 0xf2de, 0xf2dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9c9, 0xf2db, 0xb0f3, 0xf2e0, 0x003f, 0xf2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ef, 0xf2cd, 0xb1b7, 0x003f, 0x003f, 0xf2e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e3, 0xf2e1, 0xc3ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf0, 0x003f, 0x003f, 0x003f, 0x003f, 0xceda, 0x003f, 0x003f, 0xf2e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e8, 0x003f, 0xf2e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4bb, 0x003f, 0xf2ea, 0x003f, 0xc8b7, 0x003f, 0xf2ef, 0xf2eb, 0x003f, 0x003f, 0x003f, 0xf2ec, 0x003f, 0x003f, 0xcbb1, 0xccc4, 0x003f, 0xc6d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9d00 .. 0x9dff */ 0x003f, 0x003f, 0x003f, 0xf2f0, 0x003f, 0x003f, 0xf2f1, 0xc6be, 0xf2ee, 0xf2ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2aa, 0x003f, 0x003f, 0x003f, 0xf2f9, 0x003f, 0x003f, 0xf2f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1f5, 0x003f, 0x003f, 0x003f, 0xf2f6, 0x003f, 0x003f, 0x003f, 0xf2f5, 0x003f, 0x003f, 0xf2f3, 0x003f, 0xb3fb, 0x003f, 0xf2f2, 0xbcb2, 0xb2a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9e3, 0x003f, 0x003f, 0xf2fc, 0xf2fb, 0x003f, 0xf2fa, 0x003f, 0x003f, 0xf2f7, 0x003f, 0xf2fd, 0x003f, 0xf2fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a5, 0xf3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a6, 0x003f, 0x003f, 0xb1ad, 0xf3a1, 0xf3a2, 0x003f, 0xb9f4, 0xccb9, 0x003f, 0x003f, 0xf3a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb2, 0x003f, 0x003f, 0xf3ab, 0x003f, 0x003f, 0xf3a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a9, 0x003f, 0xf3a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3af, 0x003f, 0xf3aa, 0x003f, 0x003f, 0x003f, 0xf2f4, 0x003f, 0x003f, 0xf3b0, 0x003f, 0xc4e1, 0x003f, 0x003f, 0x003f, 0xf3b4, 0x003f, 0xf3b5, 0xf3b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3b2, 0xf3b8, 0x003f, 0xf3b1, 0x003f, 0xf3b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3b7, 0x003f, 0x003f, 0x003f, 0xf3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3bd, 0x003f, 0xf3be, 0x003f, 0x003f, 0xcfc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3bb, 0xc2eb, 0xbaed, 0x003f, 0x003f, 0xf3bf, 0x003f, 0x003f, /* 0x9e00 .. 0x9eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c0, 0xf3c1, 0x003f, 0x003f, 0xf3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c3, 0x003f, 0x003f, 0xb8b4, 0xf3c4, 0x003f, 0x003f, 0x003f, 0xf3c5, 0x003f, 0xbcaf, 0x003f, 0xf3c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c7, 0x003f, 0x003f, 0xf3c8, 0xf3c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3cc, 0xf3ca, 0xcfbc, 0x003f, 0xf3cb, 0x003f, 0xceef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3cd, 0x003f, 0xcedb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ce, 0xc7fe, 0x003f, 0x003f, 0xf3cf, 0xf3d1, 0x003f, 0x003f, 0xf3d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d0, 0xb9ed, 0xcccd, 0xcbe3, 0xd6f7, 0x003f, 0xdde0, 0xcbfb, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d4, 0xb5d0, 0xf3d5, 0xf3d6, 0xf3d7, 0x003f, 0xb9f5, 0x003f, 0xf3d8, 0x003f, 0x003f, 0x003f, 0xe0d4, 0xccdb, 0x003f, 0xc2e3, 0xf3d9, 0xf3db, 0xf3da, 0x003f, 0xf3dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3dd, 0x003f, 0x003f, 0xf3de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3df, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e0, 0x003f, 0xf3e1, 0xf3e2, 0x003f, 0xf3e3, 0x003f, 0xf3e4, 0xf3e5, 0xf3e6, 0x003f, 0x003f, /* 0x9f00 .. 0x9fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e7, 0xf3e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8dd, 0x003f, 0xf3ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1cd, 0xf3eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9a1, 0x003f, 0x003f, 0xf3ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ee, 0xe3b7, 0x003f, 0x003f, 0xecda, 0xf0ed, 0x003f, 0x003f, 0xf3ef, 0x003f, 0xf3f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3f2, 0xf3f3, 0xf3f4, 0xcef0, 0xf3f1, 0x003f, 0x003f, 0xf3f5, 0xf3f6, 0x003f, 0x003f, 0xf3f8, 0x003f, 0xf3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fa, 0x003f, 0x003f, 0x003f, 0xf3fb, 0xf3f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fd, 0xe3d4, 0x003f, 0x003f, 0xf3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xf900 .. 0xf9ff */ 0xecb1, 0xb9b9, 0xbcd6, 0xeccb, 0xb3ea, 0xb6fa, 0xb6e7, 0xf3fd, 0xf3fd, 0xb7c0, 0xb6e2, 0xd3c9, 0xc6e0, 0xd8f1, 0xe1fa, 0xcde5, 0xe9c7, 0xcde6, 0xcde7, 0xeeb6, 0xdcdb, 0xcdec, 0xdfe0, 0xe0e4, 0xcdee, 0xcdef, 0xf1d1, 0xd0ac, 0xcdf1, 0xcdf3, 0xe0a5, 0xcdf6, 0xf3c2, 0xcdf2, 0xcdf4, 0xcdf5, 0xeba2, 0xd9c7, 0xe7c4, 0x003f, 0xcfad, 0xcfaf, 0xcfb2, 0xcfb5, 0xcfba, 0xd0d4, 0xcee4, 0xd2a9, 0x003f, 0xcfa6, 0xe0a4, 0xe2ba, 0xcfb7, 0xe9c3, 0xceba, 0xcfa9, 0xcfaa, 0xcfa5, 0xbaed, 0xe2f1, 0xe3b3, 0x003f, 0x003f, 0x003f, 0xbcaf, 0xcfc0, 0xd4e2, 0xcfae, 0xe4c6, 0xcfb8, 0xcfb4, 0xe2fd, 0xcfa8, 0xcdeb, 0xd4de, 0x003f, 0xdcec, 0x003f, 0xcfb3, 0xcedf, 0xe5df, 0xeffb, 0xf0d5, 0xcfbe, 0xf4a5, 0xcebf, 0xcec7, 0xb0bd, 0xc9a9, 0xcecd, 0xeca6, 0xd9bc, 0xdcdb, 0xc2fa, 0xc3b0, 0xc7ab, 0xc5dc, 0xcea8, 0xb0db, 0xcbcc, 0x003f, 0xcad8, 0xc9fc, 0xc9d4, 0xc8e7, 0xdacb, 0xbaf7, 0xd2d4, 0xbac9, 0xbeca, 0xcdd5, 0x003f, 0xbba6, 0xc3a4, 0xc4c0, 0xbda6, 0xbce3, 0xceab, 0xceac, 0xcebc, 0xd1c0, 0xd1da, 0xcec2, 0xcec8, 0xcec9, 0xceca, 0xcecc, 0xd2af, 0xcfa4, 0xbdf7, 0xd7aa, 0xceb9, 0xdfc9, 0xe2ea, 0xefe3, 0xf1eb, 0xceef, 0xf3d5, 0xcecf, 0x003f, 0x003f, 0xede0, 0xc7af, 0xcef9, 0xd8f8, 0xc7b2, 0xcefa, 0xcefb, 0x003f, 0x003f, 0xcefd, 0xcefe, 0xedd3, 0xcfa1, 0xcfa2, 0x003f, 0xcef3, 0xcef4, 0xb0f6, 0xcef5, 0xcef6, 0x003f, 0xcef7, 0xc7b0, 0xc7b1, 0x003f, 0xcefc, 0xe0da, 0xcee1, 0xd3fa, 0xc7ab, 0xcee6, 0xcee7, 0xcee8, 0xe0f2, 0xe6b9, 0xe6d9, 0xceeb, 0xceed, 0xf0cd, 0xcece, 0xcee3, 0xe3b9, 0xeed4, 0xf0b1, 0xd8a8, 0xcebb, 0xcebd, 0xcec0, 0xc7a2, 0xcec1, 0xdcdb, 0xdff9, 0xcec5, 0xe8fa, 0xcecb, 0xceb6, 0xdaf4, 0xeff6, 0xcead, 0x003f, 0xccf8, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb2, 0xc9b3, 0xcee0, 0xcfbb, 0xd9a4, 0xcea6, 0xced1, 0xd6c6, 0xdecd, 0xced8, 0xcea7, 0xd8cb, 0xb7aa, 0xcea8, 0xceb4, 0xcdf8, 0xcdf9, 0xcdfa, 0xb0d7, 0xcdfb, 0xcdfc, 0xc5a5, 0xcdfd, 0xcea1, 0xd8ed, 0xcea2, 0xcea3, 0xcea4, 0xcea5, 0xc6bf, 0xc5ae, 0xd2e7, 0xced5, 0x003f, 0xe9c2, 0xced9, 0xceda, 0xcedb, 0xced3, 0xced4, 0xced7, 0xcea9, 0xb3de, 0xceb3, 0x003f, 0xdfd5, 0xbcb1, 0xbdba, 0xc3e3, 0xbbc9, /* 0xfa00 .. 0xfaff */ 0xc0da, 0xc5d9, 0xc2f3, 0xc5fc, 0xc2f0, 0xc6b6, 0xcbbd, 0xedd5, 0xb9d4, 0xb9df, 0xb8ab, 0xb3c7, 0xd1ba, 0x003f, 0x003f, 0x003f, 0xc4cd, 0x003f, 0xc0b2, 0x003f, 0x003f, 0x003f, 0xc3f6, 0xb1d7, 0xcee9, 0xbfc0, 0xbecd, 0xcaa1, 0xccf7, 0xc0ba, 0xb1a9, 0x003f, 0x003f, 0x003f, 0xbdf4, 0x003f, 0x003f, 0xb0ef, 0xc5d4, 0x003f, 0x003f, 0x003f, 0xc8d3, 0xbbf4, 0xb4db, 0xc4e1, 0x003f, 0x003f, 0xc9ee, 0xc1ce, 0xccc8, 0xcad9, 0xb6d0, 0xc8dc, 0xb3e5, 0xc3b2, 0xb4ef, 0xcabd, 0xcbcf, 0xc1d8, 0xd6a5, 0xb2f9, 0xb3b4, 0xc1fe, 0xc4a8, 0xc9d2, 0xb4fb, 0xbdeb, 0xc7df, 0xb3a4, 0xbded, 0xb4c1, 0xbcd1, 0x003f, 0xc2f6, 0xc8ea, 0xbcd2, 0xbbe3, 0xb5a7, 0xcdb4, 0xc1c4, 0xbdcb, 0xb2d2, 0xc4f7, 0xb9f2, 0xc6cd, 0xc0e1, 0xcefd, 0xe5d6, 0xc8cb, 0xbdf0, 0xbcd4, 0xbdad, 0x003f, 0x003f, 0xc3f8, 0xb3ec, 0xbbeb, 0xb1da, 0xb6e0, 0xc9d0, 0xc2a3, 0x003f, 0xb0ef, 0xc6f1, 0xb6c1, 0xc9d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfb00 .. 0xfbff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfe00 .. 0xfeff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x007e, 0x007e, 0x007e, 0x005f, 0x005f, 0x005f, 0x002c, 0xa1a2, 0x002e, 0x003f, 0x003b, 0x003a, 0x003f, 0x0021, 0xa1bd, 0x0028, 0x0029, 0x007b, 0x007d, 0xa1cc, 0xa1cd, 0x0023, 0x0026, 0x002a, 0x002b, 0x002d, 0x003c, 0x003e, 0x003d, 0x003f, 0x005c, 0x0024, 0x0025, 0x0040, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xff00 .. 0xffff */ 0x003f, 0xa1aa, 0x0022, 0xa1f4, 0xa1f0, 0xa1f3, 0xa1f5, 0x0027, 0xa1ca, 0xa1cb, 0xa1f6, 0xa1dc, 0xa1a4, 0x002d, 0xa1a5, 0xa1bf, 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, 0xa1a7, 0xa1a8, 0xa1e3, 0xa1e1, 0xa1e4, 0xa1a9, 0xa1f7, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, 0xa3d8, 0xa3d9, 0xa3da, 0xa1ce, 0xa1c0, 0xa1cf, 0xa1b0, 0xa1b2, 0xa1ae, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, 0xa3f8, 0xa3f9, 0xa3fa, 0xa1d0, 0xa1c3, 0xa1d1, 0x007e, 0x003f, 0x003f, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, 0x8ead, 0x8eae, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ede, 0x8edf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f1, 0xa1f2, 0xa2cc, 0xa1b1, 0x003f, 0xa1ef, 0x003f, 0x003f, 0xa8a2, 0xa2ab, 0xa2ac, 0xa2aa, 0xa2ad, 0xa2a3, 0xa1fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* defaults */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x0e00, 0x0f00, 0x1000, 0x1100, 0x1200, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6500, 0x6600, 0x6700, 0x6a00, 0x6a00, 0x6800, 0x6900 }; const struct dbcs_table cptable_20932 = { { 20932, 2, 0x003f, 0x003f, "EUC-JP" }, cp2uni, cp2uni_leadbytes, uni2cp_low, uni2cp_high, { 0x8e, 0x8f, 0xa1, 0xfe, 0x00, 0x00 } }; ================================================ FILE: Project/Unicode/Source/c_28591.cpp ================================================ /* code page 28591 (ISO 8859-1 Latin 1) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0xd0, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28591 = { { 28591, 1, 0x003f, 0x003f, "ISO 8859-1 Latin 1" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28592.cpp ================================================ /* code page 28592 (ISO 8859-2 Latin 2 (East European)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x02d8, 0x0141, 0x00a4, 0x013d, 0x015a, 0x00a7, 0x00a8, 0x0160, 0x015e, 0x0164, 0x0179, 0x00ad, 0x017d, 0x017b, 0x00b0, 0x0105, 0x02db, 0x0142, 0x00b4, 0x013e, 0x015b, 0x02c7, 0x00b8, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, 0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e, 0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7, 0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df, 0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f, 0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7, 0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0xa4, 0x59, 0x3f, 0xa7, 0xa8, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, 0xb0, 0x3f, 0x32, 0x33, 0xb4, 0x75, 0x3f, 0x3f, 0xb8, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0x41, 0xc7, 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0x49, 0xd0, 0x4e, 0x4f, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, 0x4f, 0x55, 0xda, 0x55, 0xdc, 0xdd, 0x3f, 0xdf, 0x61, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0x61, 0xe7, 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0x69, 0x64, 0x6e, 0x6f, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, 0x6f, 0x75, 0xfa, 0x75, 0xfc, 0xfd, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0xc3, 0xe3, 0xa1, 0xb1, 0xc6, 0xe6, 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0xcf, 0xef, 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xcc, 0xec, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0xc5, 0xe5, 0x4c, 0x6c, 0xa5, 0xb5, 0x3f, 0x3f, 0xa3, 0xb3, 0xd1, 0xf1, 0x4e, 0x6e, 0xd2, 0xf2, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0xd5, 0xf5, 0x4f, 0x6f, 0xc0, 0xe0, 0x52, 0x72, 0xd8, 0xf8, 0xa6, 0xb6, 0x53, 0x73, 0xaa, 0xba, 0xa9, 0xb9, 0xde, 0xfe, 0xab, 0xbb, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd9, 0xf9, 0xdb, 0xfb, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0xac, 0xbc, 0xaf, 0xbf, 0xae, 0xbe, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0xbd, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xb7, 0x27, 0x2d, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xff, 0xb0, 0xb2, 0x7e, 0xbd, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0x2d, 0x2d, 0xa2, 0xff, 0xa8, 0x3f, 0xb0, 0xbd, 0xb7, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xa6, 0xb6, 0xa9, 0xb9, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xb4, 0xbd, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0xb7, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0xb7, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28592 = { { 28592, 1, 0x003f, 0x003f, "ISO 8859-2 Latin 2 (East European)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28593.cpp ================================================ /* code page 28593 (ISO 8859-3 Latin 3 (South European)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0126, 0x02d8, 0x00a3, 0x00a4, 0x003f, 0x0124, 0x00a7, 0x00a8, 0x0130, 0x015e, 0x011e, 0x0134, 0x00ad, 0x003f, 0x017b, 0x00b0, 0x0127, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x0125, 0x00b7, 0x00b8, 0x0131, 0x015f, 0x011f, 0x0135, 0x00bd, 0x00be, 0x017c, 0x00c0, 0x00c1, 0x00c2, 0x003f, 0x00c4, 0x010a, 0x0108, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x003f, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x0120, 0x00d6, 0x00d7, 0x011c, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x016c, 0x015c, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x003f, 0x00e4, 0x010b, 0x0109, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x003f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x0121, 0x00f6, 0x00f7, 0x011d, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x016d, 0x015d, 0x02d9 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0xa3, 0xa4, 0x59, 0x3f, 0xa7, 0xa8, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, 0xb0, 0x3f, 0xb2, 0xb3, 0xb4, 0xb5, 0x3f, 0xb7, 0xb8, 0x31, 0x6f, 0x3e, 0x3f, 0xbd, 0xbe, 0x3f, 0xc0, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0x41, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0x4f, 0xd6, 0xd7, 0x4f, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0x61, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0x6f, 0xf6, 0xf7, 0x6f, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0xc6, 0xe6, 0xc5, 0xe5, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xd8, 0xf8, 0xab, 0xbb, 0xd5, 0xf5, 0x47, 0x67, 0xa6, 0xb6, 0xa1, 0xb1, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0xa9, 0xb9, 0x3f, 0x3f, 0xac, 0xbc, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0xde, 0xfe, 0xaa, 0xba, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0xdd, 0xfd, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0xaf, 0xbf, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xff, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0x2d, 0x2d, 0xa2, 0xff, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0xb1, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0xa3, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28593 = { { 28593, 1, 0x003f, 0x003f, "ISO 8859-3 Latin 3 (South European)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28594.cpp ================================================ /* code page 28594 (ISO 8859-4 Latin 4 (Baltic old)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x0138, 0x0156, 0x00a4, 0x0128, 0x013b, 0x00a7, 0x00a8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00ad, 0x017d, 0x00af, 0x00b0, 0x0105, 0x02db, 0x0157, 0x00b4, 0x0129, 0x013c, 0x02c7, 0x00b8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014a, 0x017e, 0x014b, 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x012a, 0x0110, 0x0145, 0x014c, 0x0136, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x0168, 0x016a, 0x00df, 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x012b, 0x0111, 0x0146, 0x014d, 0x0137, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x0169, 0x016b, 0x02d9 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0xa4, 0x59, 0x3f, 0xa7, 0xa8, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0xaf, 0xb0, 0x3f, 0x32, 0x33, 0xb4, 0x75, 0x3f, 0x3f, 0xb8, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x43, 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0x49, 0xd0, 0x4e, 0x4f, 0x4f, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0x55, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, 0x61, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x63, 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0x75, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0xc0, 0xe0, 0x41, 0x61, 0xa1, 0xb1, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, 0xd0, 0xf0, 0xaa, 0xba, 0x45, 0x65, 0xcc, 0xec, 0xca, 0xea, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0xab, 0xbb, 0x48, 0x68, 0x48, 0x68, 0xa5, 0xb5, 0xcf, 0xef, 0x49, 0x69, 0xc7, 0xe7, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xd3, 0xf3, 0xa2, 0x4c, 0x6c, 0xa6, 0xb6, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0xd1, 0xf1, 0x4e, 0x6e, 0x3f, 0xbd, 0xbf, 0xd2, 0xf2, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0xa3, 0xb3, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xa9, 0xb9, 0x54, 0x74, 0x54, 0x74, 0xac, 0xbc, 0xdd, 0xfd, 0xde, 0xfe, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd9, 0xf9, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0xae, 0xbe, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xb7, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xb0, 0xb2, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0xff, 0xa8, 0x3f, 0xb0, 0x22, 0xb7, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0xaa, 0xba, 0xaa, 0xba, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0xd2, 0xf2, 0xd2, 0xf2, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xa9, 0xb9, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xdd, 0xfd, 0xde, 0xfe, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0xb7, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0xaf, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0xb7, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28594 = { { 28594, 1, 0x003f, 0x003f, "ISO 8859-4 Latin 4 (Baltic old)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28595.cpp ================================================ /* code page 28595 (ISO 8859-5 Cyrillic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-5.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407, 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x00ad, 0x040e, 0x040f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457, 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x00a7, 0x045e, 0x045f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0xfd, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0xb5, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xb8, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xd5, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xd8, 0xfe, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xd0, 0xb0, 0xd0, 0x3f, 0x3f, 0xb5, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0xb6, 0xd6, 0xb7, 0xd7, 0x3f, 0x3f, 0xb8, 0xd8, 0xb8, 0xd8, 0xbe, 0xde, 0x3f, 0x3f, 0x3f, 0x3f, 0xcd, 0xed, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0xc7, 0xe7, 0x3f, 0x3f, 0xcb, 0xeb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xf0, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_28595 = { { 28595, 1, 0x003f, 0x003f, "ISO 8859-5 Cyrillic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28596.cpp ================================================ /* code page 28596 (ISO 8859-6 Arabic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-6.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x003f, 0x003f, 0x003f, 0x00a4, 0x003f, 0x00a6, 0x00a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x060c, 0x00ad, 0x003f, 0x003f, 0x00b0, 0x00b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x00b6, 0x00b7, 0x003f, 0x003f, 0x003f, 0x061b, 0x00bc, 0x00bd, 0x00be, 0x061f, 0x003f, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063a, 0x003f, 0x003f, 0x003f, 0x00de, 0x00df, 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651, 0x0652, 0x003f, 0x003f, 0x003f, 0x003f, 0x00f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00fe, 0x003f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0xa4, 0x59, 0xa6, 0xa7, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0x2d, 0xb0, 0xb1, 0x32, 0x33, 0x27, 0x75, 0xb6, 0xb7, 0x2c, 0x31, 0x6f, 0x3e, 0xbc, 0xbd, 0xbe, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0xdf, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf7, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0600 .. 0x06ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0xbf, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_28596 = { { 28596, 1, 0x003f, 0x003f, "ISO 8859-6 Arabic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28597.cpp ================================================ /* code page 28597 (ISO 8859-7 Greek) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x2018, 0x2019, 0x00a3, 0x00a4, 0x003f, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x003f, 0x00ab, 0x00ac, 0x00ad, 0x003f, 0x2015, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x0384, 0x0385, 0x0386, 0x00b7, 0x0388, 0x0389, 0x038a, 0x00bb, 0x038c, 0x00bd, 0x038e, 0x038f, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x003f, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce, 0x003f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0xa3, 0xa4, 0x59, 0xa6, 0xa7, 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0x72, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xec, 0x3f, 0xb7, 0x2c, 0x31, 0x6f, 0xbb, 0x3f, 0xbd, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0xe2, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0xa1, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xaf, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0x3f, 0xbc, 0x3f, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0x3f, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x3f, 0xe2, 0xe8, 0xd5, 0xd5, 0xd5, 0xf6, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xf1, 0xf2, 0x3f, 0xc8, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0xe5, 0x3f, 0x3f, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0x3f, 0x3f, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x3f, 0x3f, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0xf5, 0x3f, 0xd5, 0x3f, 0xd5, 0x3f, 0xd5, 0x3f, 0xd5, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xe1, 0xdc, 0xe5, 0xdd, 0xe7, 0xde, 0xe9, 0xdf, 0xef, 0xfc, 0xf5, 0xfd, 0xf9, 0xfe, 0x3f, 0x3f, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xd9, 0xe1, 0xe1, 0xe1, 0xe1, 0xdc, 0x3f, 0xe1, 0xe1, 0xc1, 0xc1, 0xc1, 0xb6, 0xc1, 0x3f, 0xe9, 0x3f, 0x3f, 0xa8, 0xe7, 0xe7, 0xde, 0x3f, 0xe7, 0xe7, 0xc5, 0xb8, 0xc7, 0xb9, 0xc7, 0x3f, 0x3f, 0x3f, 0xe9, 0xe9, 0xfa, 0xc0, 0x3f, 0x3f, 0xe9, 0xfa, 0xc9, 0xc9, 0xc9, 0xba, 0x3f, 0x3f, 0x3f, 0x3f, 0xf5, 0xf5, 0xfb, 0xe0, 0xf1, 0xf1, 0xf5, 0xfb, 0xd5, 0xd5, 0xd5, 0xbe, 0xd1, 0xa8, 0xb5, 0x60, 0x3f, 0x3f, 0xf9, 0xf9, 0xfe, 0x3f, 0xf9, 0xf9, 0xcf, 0xbc, 0xd9, 0xbf, 0xd9, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xaf, 0xaf, 0xaf, 0x3f, 0x5f, 0xa1, 0xa2, 0x2c, 0xa1, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xd9, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0xe3, 0xc3, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xaf, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0xa3, 0xac, 0xaf, 0xa6, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28597 = { { 28597, 1, 0x003f, 0x003f, "ISO 8859-7 Greek" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28598.cpp ================================================ /* code page 28598 (ISO 8859-8 Hebrew) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-8.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x003f, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00d7, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00f7, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00de, 0x2017, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x003f, 0x003f, 0x200e, 0x200f, 0x003f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xaa, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xba, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0500 .. 0x05ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0xfd, 0xfe, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0xdf, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0xe0, 0xe1, 0xe2, 0xe3, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0xf2, 0xe0, 0xe3, 0xe4, 0xeb, 0xec, 0xed, 0xf8, 0xfa, 0x2b, 0xf9, 0xf9, 0xf9, 0xf9, 0xe0, 0xe0, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x3f, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0x3f, 0xee, 0x3f, 0xf0, 0xf1, 0x3f, 0xf3, 0xf4, 0x3f, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xe5, 0xe1, 0xeb, 0xf4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_28598 = { { 28598, 1, 0x003f, 0x003f, "ISO 8859-8 Hebrew" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28599.cpp ================================================ /* code page 28599 (ISO 8859-9 Latin 5 (Turkish)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x011e, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0130, 0x015e, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x011f, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0131, 0x015f, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xd0, 0xf0, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0xdd, 0xfd, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xde, 0xfe, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xb4, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xaf, 0xb4, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xb4, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, 0xa8, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xb4, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb4, 0xa8, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa8, 0xa8, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xb4, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xb4, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0xa6, 0xa5, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28599 = { { 28599, 1, 0x003f, 0x003f, "ISO 8859-9 Latin 5 (Turkish)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28600.cpp ================================================ /* code page 28600 (ISO 8859-10 Latin 6 (Nordic)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-10.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x0112, 0x0122, 0x012a, 0x0128, 0x0136, 0x00a7, 0x013b, 0x0110, 0x0160, 0x0166, 0x017d, 0x00ad, 0x016a, 0x014a, 0x00b0, 0x0105, 0x0113, 0x0123, 0x012b, 0x0129, 0x0137, 0x00b7, 0x013c, 0x0111, 0x0161, 0x0167, 0x017e, 0x2015, 0x016b, 0x014b, 0x0100, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x012e, 0x010c, 0x00c9, 0x0118, 0x00cb, 0x0116, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x0145, 0x014c, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x0168, 0x00d8, 0x0172, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x0101, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x012f, 0x010d, 0x00e9, 0x0119, 0x00eb, 0x0117, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x0146, 0x014d, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x0169, 0x00f8, 0x0173, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x0138 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0xa7, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0xad, 0x72, 0xbd, 0xb0, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0xb7, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0x43, 0x45, 0xc9, 0x45, 0xcb, 0x49, 0xcd, 0xce, 0xcf, 0xd0, 0x4e, 0x4f, 0xd3, 0xd4, 0xd5, 0xd6, 0x78, 0xd8, 0x55, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0x61, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0x63, 0x65, 0xe9, 0x65, 0xeb, 0x69, 0xed, 0xee, 0xef, 0xf0, 0x6e, 0x6f, 0xf3, 0xf4, 0xf5, 0xf6, 0x3f, 0xf8, 0x75, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x79, /* 0x0100 .. 0x01ff */ 0xc0, 0xe0, 0x41, 0x61, 0xa1, 0xb1, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, 0xa9, 0xb9, 0xa2, 0xb2, 0x45, 0x65, 0xcc, 0xec, 0xca, 0xea, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0xa3, 0xb3, 0x48, 0x68, 0x48, 0x68, 0xa5, 0xb5, 0xa4, 0xb4, 0x49, 0x69, 0xc7, 0xe7, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xa6, 0xb6, 0xff, 0x4c, 0x6c, 0xa8, 0xb8, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0xd1, 0xf1, 0x4e, 0x6e, 0x3f, 0xaf, 0xbf, 0xd2, 0xf2, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xaa, 0xba, 0x54, 0x74, 0x54, 0x74, 0xab, 0xbb, 0xd7, 0xf7, 0xae, 0xbe, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd9, 0xf9, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0xac, 0xbc, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xbd, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0xbd, 0xbd, 0x3f, 0x3f, 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0xa2, 0xb2, 0xa2, 0xb2, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0xd2, 0xf2, 0xd2, 0xf2, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xaa, 0xba, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd7, 0xf7, 0xae, 0xbe, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0xbd, 0xbd, 0xbd, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0xbd, 0xbd, 0xbd, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0xbd, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0xbd, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28600 = { { 28600, 1, 0x003f, 0x003f, "ISO 8859-10 Latin 6 (Nordic)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28603.cpp ================================================ /* code page 28603 (ISO 8859-13 Latin 7 (Baltic)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-13.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x201d, 0x00a2, 0x00a3, 0x00a4, 0x201e, 0x00a6, 0x00a7, 0x00d8, 0x00a9, 0x0156, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00c6, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x201c, 0x00b5, 0x00b6, 0x00b7, 0x00f8, 0x00b9, 0x0157, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00e6, 0x0104, 0x012e, 0x0100, 0x0106, 0x00c4, 0x00c5, 0x0118, 0x0112, 0x010c, 0x00c9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012a, 0x013b, 0x0160, 0x0143, 0x0145, 0x00d3, 0x014c, 0x00d5, 0x00d6, 0x00d7, 0x0172, 0x0141, 0x015a, 0x016a, 0x00dc, 0x017b, 0x017d, 0x00df, 0x0105, 0x012f, 0x0101, 0x0107, 0x00e4, 0x00e5, 0x0119, 0x0113, 0x010d, 0x00e9, 0x017a, 0x0117, 0x0123, 0x0137, 0x012b, 0x013c, 0x0161, 0x0144, 0x0146, 0x00f3, 0x014d, 0x00f5, 0x00f6, 0x00f7, 0x0173, 0x0142, 0x015b, 0x016b, 0x00fc, 0x017c, 0x017e, 0x2019 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0xa2, 0xa3, 0xa4, 0x59, 0xa6, 0xa7, 0x22, 0xa9, 0x61, 0xab, 0xac, 0xad, 0xae, 0x2d, 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xb5, 0xb6, 0xb7, 0x2c, 0xb9, 0x6f, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x41, 0x41, 0x41, 0x41, 0xc4, 0xc5, 0xaf, 0x43, 0x45, 0xc9, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0xd3, 0x4f, 0xd5, 0xd6, 0xd7, 0xa8, 0x55, 0x55, 0x55, 0xdc, 0x59, 0x3f, 0xdf, 0x61, 0x61, 0x61, 0x61, 0xe4, 0xe5, 0xbf, 0x63, 0x65, 0xe9, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0xf3, 0x6f, 0xf5, 0xf6, 0xf7, 0xb8, 0x75, 0x75, 0x75, 0xfc, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0xc2, 0xe2, 0x41, 0x61, 0xc0, 0xe0, 0xc3, 0xe3, 0x43, 0x63, 0x43, 0x63, 0xc8, 0xe8, 0x44, 0x64, 0x44, 0x64, 0xc7, 0xe7, 0x45, 0x65, 0xcb, 0xeb, 0xc6, 0xe6, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0xcc, 0xec, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xce, 0xee, 0x49, 0x69, 0xc1, 0xe1, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xcd, 0xed, 0x3f, 0x4c, 0x6c, 0xcf, 0xef, 0x4c, 0x6c, 0x3f, 0x3f, 0xd9, 0xf9, 0xd1, 0xf1, 0xd2, 0xf2, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0xaa, 0xba, 0x52, 0x72, 0xda, 0xfa, 0x53, 0x73, 0x53, 0x73, 0xd0, 0xf0, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0xdb, 0xfb, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd8, 0xf8, 0x57, 0x77, 0x59, 0x79, 0x59, 0xca, 0xea, 0xdd, 0xfd, 0xde, 0xfe, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xaf, 0xbf, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xaf, 0xbf, 0xa8, 0xb8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0xff, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0xc7, 0xe7, 0xc7, 0xe7, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0xd4, 0xf4, 0xd4, 0xf4, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xda, 0xfa, 0xd0, 0xf0, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xdb, 0xfb, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0xff, 0x2c, 0x60, 0xb4, 0xa1, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0xa6, 0xa6, 0x2d, 0x2d, 0xa6, 0xa6, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0xa6, 0xa6, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xb4, 0xa1, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0x2d, 0xa6, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28603 = { { 28603, 1, 0x003f, 0x003f, "ISO 8859-13 Latin 7 (Baltic)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28604.cpp ================================================ /* code page 28604 (ISO 8859-14 Latin 8 (Celtic)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-14.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x1e02, 0x1e03, 0x00a3, 0x010a, 0x010b, 0x1e0a, 0x00a7, 0x1e80, 0x00a9, 0x1e82, 0x1e0b, 0x1ef2, 0x00ad, 0x00ae, 0x0178, 0x1e1e, 0x1e1f, 0x0120, 0x0121, 0x1e40, 0x1e41, 0x00b6, 0x1e56, 0x1e81, 0x1e57, 0x1e83, 0x1e60, 0x1ef3, 0x1e84, 0x1e85, 0x1e61, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x0174, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x1e6a, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x0176, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x0175, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x1e6b, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0177, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0xa3, 0x3f, 0x59, 0x3f, 0xa7, 0x22, 0xa9, 0x61, 0x3c, 0x3f, 0xad, 0xae, 0x2d, 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0xb6, 0x3f, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0x44, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0x78, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0x64, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0x3f, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x3f, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0xa4, 0xa5, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0xb2, 0xb3, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd0, 0xf0, 0xde, 0xfe, 0xaf, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0xa1, 0xa2, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0xa6, 0xab, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xb0, 0xb1, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0xb4, 0xb5, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0xb7, 0xb9, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0xbb, 0xbf, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xd7, 0xf7, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0xa8, 0xb8, 0xaa, 0xba, 0xbd, 0xbe, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xac, 0xbc, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0xa3, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28604 = { { 28604, 1, 0x003f, 0x003f, "ISO 8859-14 Latin 8 (Celtic)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28605.cpp ================================================ /* code page 28605 (ISO 8859-15 Latin 9 (Euro)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-15.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x20ac, 0x00a5, 0x0160, 0x00a7, 0x0161, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x017d, 0x00b5, 0x00b6, 0x00b7, 0x017e, 0x00b9, 0x00ba, 0x00bb, 0x0152, 0x0153, 0x0178, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x00f6, 0x00f7, 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0x3f, 0xa5, 0x3f, 0xa7, 0x22, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0x27, 0xb5, 0xb6, 0xb7, 0x2c, 0xb9, 0xba, 0xbb, 0x3f, 0x3f, 0x3f, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0xd0, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0xbc, 0xbd, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xa6, 0xa8, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0xbe, 0x5a, 0x7a, 0x5a, 0x7a, 0xb4, 0xb8, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0xc5, 0xe5, 0xc6, 0xe6, 0xd8, 0xf8, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xaf, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0xaf, 0xaf, 0x3f, 0x3f, 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xd5, 0xf5, 0xd5, 0xf5, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0xa6, 0xa8, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0xc5, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xac, 0xac, 0xac, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xaf, 0xaf, 0xaf, 0xaf, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa2, 0xa3, 0xac, 0xaf, 0x3f, 0xa5, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28605 = { { 28605, 1, 0x003f, 0x003f, "ISO 8859-15 Latin 9 (Euro)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_28606.cpp ================================================ /* code page 28606 (ISO 8859-16 Latin 10 (Balkan)) */ /* generated from ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-16.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7, 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b, 0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7, 0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c, 0x00c0, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0106, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x0110, 0x0143, 0x00d2, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x015a, 0x0170, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x0118, 0x021a, 0x00df, 0x00e0, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x0107, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x0111, 0x0144, 0x00f2, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x015b, 0x0171, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x0119, 0x021b, 0x00ff }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0xa7, 0x22, 0xa9, 0x61, 0xab, 0x3f, 0xad, 0x72, 0x2d, 0xb0, 0xb1, 0x32, 0x33, 0x27, 0x75, 0xb6, 0xb7, 0x2c, 0x31, 0x6f, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xc1, 0xc2, 0x41, 0xc4, 0x41, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0x4e, 0xd2, 0xd3, 0xd4, 0x4f, 0xd6, 0x78, 0x4f, 0xd9, 0xda, 0xdb, 0xdc, 0x59, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0x61, 0xe4, 0x61, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0x64, 0x6e, 0xf2, 0xf3, 0xf4, 0x6f, 0xf6, 0x3f, 0x6f, 0xf9, 0xfa, 0xfb, 0xfc, 0x79, 0x3f, 0xff, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0xc3, 0xe3, 0xa1, 0xa2, 0xc5, 0xe5, 0x43, 0x63, 0x43, 0x63, 0xb2, 0xb9, 0x44, 0x64, 0xd0, 0xf0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xdd, 0xfd, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0xa3, 0xb3, 0xd1, 0xf1, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0xd5, 0xf5, 0xbc, 0xbd, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0xd7, 0xf7, 0x53, 0x73, 0x53, 0x73, 0xa6, 0xa8, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xd8, 0xf8, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0xbe, 0xac, 0xae, 0xaf, 0xbf, 0xb4, 0xb8, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0x3f, 0xc4, 0xe4, 0x41, 0x61, 0xc6, 0xe6, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0xc6, 0xe6, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0xaa, 0xba, 0xde, 0xfe, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0xd6, 0xf6, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xb0, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xb7, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0xc7, 0xe7, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xcf, 0xef, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0xd7, 0xf7, 0xa6, 0xa8, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0xc2, 0xe2, 0x41, 0x61, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0xc3, 0xe3, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0xca, 0xea, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0xd4, 0xf4, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0xb5, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xb1, 0x3f, 0x2f, 0x5c, 0x2a, 0xb0, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xab, 0xbb, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xab, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0xb5, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_28606 = { { 28606, 1, 0x003f, 0x003f, "ISO 8859-16 Latin 10 (Balkan)" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_424.cpp ================================================ /* code page 424 (IBM EBCDIC Hebrew) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP424.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x00a2, 0x002e, 0x003c, 0x0028, 0x002b, 0x007c, 0x0026, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x0021, 0x0024, 0x002a, 0x0029, 0x003b, 0x00ac, 0x002d, 0x002f, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x003f, 0x05ea, 0x003f, 0x003f, 0x00a0, 0x003f, 0x003f, 0x003f, 0x2017, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x003f, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x003f, 0x003f, 0x003f, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x003f, 0x003f, 0x003f, 0x00b8, 0x003f, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00ae, 0x005e, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x005b, 0x005d, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x003f, 0x003f, 0x003f, 0x00de, 0x00df, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x003f, 0x003f, 0x003f, 0x00fe, 0x009f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, 0x74, 0x5a, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, 0xbd, 0xb4, 0x81, 0x8a, 0x5f, 0xca, 0xaf, 0xbc, 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, 0x9d, 0xda, 0x96, 0x8b, 0xb7, 0xb8, 0xb9, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc3, 0xc5, 0xc5, 0xc5, 0xc5, 0xc9, 0xc9, 0xc9, 0xc9, 0xc4, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xbf, 0xd6, 0xe4, 0xe4, 0xe4, 0xe4, 0xe8, 0xde, 0xdf, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x83, 0x85, 0x85, 0x85, 0x85, 0x89, 0x89, 0x89, 0x89, 0x84, 0x95, 0x96, 0x96, 0x96, 0x96, 0x96, 0xe1, 0x96, 0xa4, 0xa4, 0xa4, 0xa4, 0xa8, 0xfe, 0xa8, /* 0x0100 .. 0x01ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc7, 0x87, 0xc7, 0x87, 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, 0xd5, 0x95, 0xc1, 0x81, 0xc1, 0x81, 0xd6, 0x96, /* 0x0200 .. 0x02ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc5, 0x85, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, 0xa8, 0xbe, 0x7f, 0x79, 0x7d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0xb0, 0xa5, 0x7d, 0xbc, 0xbe, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, 0x3f, 0x93, 0xa2, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x79, 0xbe, 0xb0, 0xa1, 0xbc, 0xbc, 0x3f, 0x3f, 0xbd, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x79, 0xbe, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0500 .. 0x05ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x71, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x78, 0x79, 0x7d, 0x6b, 0x79, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0xbe, 0x7f, 0x3f, 0x79, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x5a, 0x3f, 0xbc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4a, 0x3f, 0x3f, 0xb1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0xd2, 0xc1, 0xc2, 0xc3, 0x85, 0x85, 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x41, 0x42, 0x43, 0x44, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0xb0, 0x6e, 0xa5, 0x60, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xe0, 0x5c, 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x60, 0x60, 0x4f, 0x4f, 0x60, 0x60, 0x6a, 0x6a, 0x60, 0x60, 0x6a, 0x6a, 0x4e, 0x4e, 0x4e, 0x4e, 0x5f, 0x5f, 0x5f, 0x5f, 0xd3, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x6a, 0x6a, 0x7e, 0x4f, 0x4e, 0x4e, 0x4e, 0x5f, 0x5f, 0x5f, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x60, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xba, 0xbb, 0x3f, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x51, 0x3f, 0x3f, 0x62, 0x41, 0x44, 0x45, 0x53, 0x54, 0x55, 0x68, 0x71, 0x4e, 0x69, 0x69, 0x69, 0x69, 0x41, 0x41, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x3f, 0x49, 0x51, 0x52, 0x53, 0x54, 0x3f, 0x56, 0x3f, 0x58, 0x59, 0x3f, 0x63, 0x64, 0x3f, 0x66, 0x67, 0x68, 0x69, 0x71, 0x46, 0x42, 0x53, 0x64, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x5a, 0x60, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, 0xe0, 0x5b, 0x6c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xba, 0xe0, 0xbb, 0xb0, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4a, 0xb1, 0x5f, 0xbc, 0x6a, 0xb2, 0x3f, 0x3f, 0x4f, 0x4c, 0xb0, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_424 = { { 424, 1, 0x003f, 0x003f, "IBM EBCDIC Hebrew" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_437.cpp ================================================ /* code page 437 (OEM United States) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP437.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0x9b, 0x9c, 0x3f, 0x9d, 0x3f, 0x3f, 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, 0x2c, 0x31, 0xa7, 0xaf, 0xac, 0xab, 0x3f, 0xa8, 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x99, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x9a, 0x59, 0x3f, 0xe1, 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, 0x64, 0xa4, 0x95, 0xa2, 0x93, 0x6f, 0x94, 0xf6, 0x6f, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0x98, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x8b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x83, 0x41, 0x83, 0x41, 0x83, 0x41, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x9c, 0xaa, 0x2d, 0x3f, 0x9d, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_437 = { { 437, 1, 0x003f, 0x003f, "OEM United States" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_500.cpp ================================================ /* code page 500 (IBM EBCDIC International) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP500.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x00a0, 0x00e2, 0x00e4, 0x00e0, 0x00e1, 0x00e3, 0x00e5, 0x00e7, 0x00f1, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x00e9, 0x00ea, 0x00eb, 0x00e8, 0x00ed, 0x00ee, 0x00ef, 0x00ec, 0x00df, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x00c2, 0x00c4, 0x00c0, 0x00c1, 0x00c3, 0x00c5, 0x00c7, 0x00d1, 0x00a6, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00f8, 0x00c9, 0x00ca, 0x00cb, 0x00c8, 0x00cd, 0x00ce, 0x00cf, 0x00cc, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x00d8, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x00ab, 0x00bb, 0x00f0, 0x00fd, 0x00fe, 0x00b1, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x00aa, 0x00ba, 0x00e6, 0x00b8, 0x00c6, 0x00a4, 0x00b5, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00a1, 0x00bf, 0x00d0, 0x00dd, 0x00de, 0x00ae, 0x00a2, 0x00a3, 0x00a5, 0x00b7, 0x00a9, 0x00a7, 0x00b6, 0x00bc, 0x00bd, 0x00be, 0x00ac, 0x007c, 0x00af, 0x00a8, 0x00b4, 0x00d7, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x00f4, 0x00f6, 0x00f2, 0x00f3, 0x00f5, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b9, 0x00fb, 0x00fc, 0x00f9, 0x00fa, 0x00ff, 0x005c, 0x00f7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00d4, 0x00d6, 0x00d2, 0x00d3, 0x00d5, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00db, 0x00dc, 0x00d9, 0x00da, 0x009f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x07, 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, 0x41, 0xaa, 0xb0, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, 0xbd, 0xb4, 0x9a, 0x8a, 0xba, 0xca, 0xaf, 0xbc, 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xad, 0xae, 0x59, 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf, /* 0x0100 .. 0x01ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, 0xac, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0xfc, 0xdc, 0x3f, 0x63, 0x43, 0xc1, 0x81, 0x9e, 0x9c, 0xc7, 0x87, 0xc7, 0x87, 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, 0xd5, 0x95, 0x67, 0x47, 0x9e, 0x9c, 0x80, 0x70, /* 0x0200 .. 0x02ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc5, 0x85, 0xec, 0xcc, 0xef, 0xcf, 0xd6, 0x96, 0xd6, 0x96, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, 0xa8, 0xbe, 0x7f, 0x79, 0x7d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x5f, 0xa5, 0x7d, 0xbc, 0xbe, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, 0x3f, 0x93, 0xa2, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x79, 0xbe, 0x5f, 0xa1, 0xbc, 0xbc, 0x3f, 0x3f, 0xbd, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x79, 0xbe, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbe, 0xbd, 0xc1, 0xb3, 0xc5, 0xc8, 0xc9, 0x3f, 0xd6, 0x3f, 0xe8, 0x3f, 0x3f, 0xc1, 0xc2, 0x3f, 0x3f, 0xc5, 0xe9, 0xc8, 0x3f, 0xc9, 0xd2, 0x3f, 0xd4, 0xd5, 0x3f, 0xd6, 0x3f, 0xd7, 0x3f, 0x3f, 0xe3, 0xe8, 0x3f, 0xe7, 0x3f, 0x3f, 0xc9, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0xe8, 0xe8, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0x68, 0x48, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0x77, 0x57, 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xef, 0xcf, 0xef, 0xcf, 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0x62, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x42, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xeb, 0xcb, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0xe8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc5, 0xc8, 0xc8, 0xc8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0xc9, 0xc9, 0xc9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe8, 0xe8, 0xe8, 0xe8, 0xd7, 0xbd, 0xbd, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x3f, 0x3f, 0x3f, 0xbe, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x60, 0x3f, 0x60, 0x60, 0x60, 0x3f, 0x6d, 0x79, 0x7d, 0x6b, 0x79, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0xbe, 0x7f, 0x3f, 0x79, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x4f, 0x3f, 0xbc, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0xb1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0xd2, 0x67, 0xc2, 0xc3, 0x85, 0x85, 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x5f, 0x6e, 0xa5, 0x60, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x8f, 0x3f, 0x61, 0xe0, 0x5c, 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, 0x3f, 0x3f, 0x3f, 0xbb, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x8b, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x60, 0x60, 0xbb, 0xbb, 0x60, 0x60, 0x6a, 0x6a, 0x60, 0x60, 0x6a, 0x6a, 0x4e, 0x4e, 0x4e, 0x4e, 0xba, 0xba, 0xba, 0xba, 0xd3, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0x6a, 0x6a, 0x7e, 0xbb, 0x4e, 0x4e, 0x4e, 0xba, 0xba, 0xba, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x60, 0xbb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x8a, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4a, 0x5a, 0x3f, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0x6d, 0x6d, 0x6d, 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x4f, 0x60, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, 0xe0, 0x5b, 0x6c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0xbb, 0xd0, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xba, 0xbc, 0x6a, 0xb2, 0x3f, 0x3f, 0xbb, 0x4c, 0x5f, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_500 = { { 500, 1, 0x003f, 0x003f, "IBM EBCDIC International" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_737.cpp ================================================ /* code page 737 (OEM Greek 437G) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP737.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03c9, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, 0x03cb, 0x03ce, 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f, 0x00b1, 0x2265, 0x2264, 0x03aa, 0x03ab, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xa3, 0x3f, 0xfa, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x99, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf6, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0xea, 0xfa, 0xeb, 0xec, 0xed, 0x3f, 0xee, 0x3f, 0xef, 0xf0, 0xe4, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x3f, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0xf4, 0xf5, 0xe1, 0xe2, 0xe3, 0xe5, 0xe8, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xaa, 0xa9, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xe0, 0xe4, 0xe8, 0xe6, 0xe7, 0xe9, 0x3f, 0x99, 0x9f, 0x93, 0x93, 0x93, 0xad, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa8, 0xaa, 0x3f, 0x87, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x3f, 0x3f, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x3f, 0x3f, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa0, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0x3f, 0x3f, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x3f, 0x3f, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0x3f, 0x93, 0x3f, 0x93, 0x3f, 0x93, 0x3f, 0x93, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0xe1, 0x9c, 0xe2, 0x9e, 0xe3, 0xa0, 0xe5, 0xa6, 0xe6, 0xac, 0xe7, 0xe0, 0xe9, 0x3f, 0x3f, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x9e, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x98, 0x98, 0x98, 0x98, 0xe1, 0x3f, 0x98, 0x98, 0x80, 0x80, 0x80, 0xea, 0x80, 0x3f, 0xa0, 0x3f, 0x3f, 0x22, 0x9e, 0x9e, 0xe3, 0x3f, 0x9e, 0x9e, 0x84, 0xeb, 0x86, 0xec, 0x86, 0x3f, 0x3f, 0x3f, 0xa0, 0xa0, 0xe4, 0xe4, 0x3f, 0x3f, 0xa0, 0xe4, 0x88, 0x88, 0x88, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0xac, 0xe8, 0xe8, 0xa8, 0xa8, 0xac, 0xe8, 0x93, 0x93, 0x93, 0xef, 0x90, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0xe0, 0xe0, 0xe9, 0x3f, 0xe0, 0xe0, 0x8e, 0xee, 0x97, 0xf0, 0x97, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x97, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x9a, 0x82, 0x8f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_737 = { { 737, 1, 0x003f, 0x003f, "OEM Greek 437G" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_775.cpp ================================================ /* code page 775 (OEM Baltic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP775.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0106, 0x00fc, 0x00e9, 0x0101, 0x00e4, 0x0123, 0x00e5, 0x0107, 0x0142, 0x0113, 0x0156, 0x0157, 0x012b, 0x0179, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x014d, 0x00f6, 0x0122, 0x00a2, 0x015a, 0x015b, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x00a4, 0x0100, 0x012a, 0x00f3, 0x017b, 0x017c, 0x017a, 0x201d, 0x00a6, 0x00a9, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x0141, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0104, 0x010c, 0x0118, 0x0116, 0x2563, 0x2551, 0x2557, 0x255d, 0x012e, 0x0160, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0172, 0x016a, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x017d, 0x0105, 0x010d, 0x0119, 0x0117, 0x012f, 0x0161, 0x0173, 0x016b, 0x017e, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x00d3, 0x00df, 0x014c, 0x0143, 0x00f5, 0x00d5, 0x00b5, 0x0144, 0x0136, 0x0137, 0x013b, 0x013c, 0x0146, 0x0112, 0x0145, 0x2019, 0x00ad, 0x00b1, 0x201c, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x201e, 0x00b0, 0x2219, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x96, 0x9c, 0x9f, 0x59, 0xa7, 0xf5, 0x22, 0xa8, 0x61, 0xae, 0xaa, 0xf0, 0xa9, 0x2d, 0xf8, 0xf1, 0xfd, 0xfc, 0x27, 0xe6, 0xf4, 0xfa, 0x2c, 0xfb, 0x6f, 0xaf, 0xac, 0xab, 0xf3, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x43, 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0xe0, 0x4f, 0xe5, 0x99, 0x9e, 0x9d, 0x55, 0x55, 0x55, 0x9a, 0x59, 0x3f, 0xe1, 0x61, 0x61, 0x61, 0x61, 0x84, 0x86, 0x91, 0x63, 0x65, 0x82, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0xa2, 0x6f, 0xe4, 0x94, 0xf6, 0x9b, 0x75, 0x75, 0x75, 0x81, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0xa0, 0x83, 0x41, 0x61, 0xb5, 0xd0, 0x80, 0x87, 0x43, 0x63, 0x43, 0x63, 0xb6, 0xd1, 0x44, 0x64, 0x44, 0x64, 0xed, 0x89, 0x45, 0x65, 0xb8, 0xd3, 0xb7, 0xd2, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x95, 0x85, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xa1, 0x8c, 0x49, 0x69, 0xbd, 0xd4, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0xe8, 0xe9, 0x3f, 0x4c, 0x6c, 0xea, 0xeb, 0x4c, 0x6c, 0x3f, 0x3f, 0xad, 0x88, 0xe3, 0xe7, 0xee, 0xec, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0xe2, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x8a, 0x8b, 0x52, 0x72, 0x97, 0x98, 0x53, 0x73, 0x53, 0x73, 0xbe, 0xd5, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0xc7, 0xd7, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xc6, 0xd6, 0x57, 0x77, 0x59, 0x79, 0x59, 0x8d, 0xa5, 0xa3, 0xa4, 0xcf, 0xd8, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0xe5, 0xe4, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0xed, 0x89, 0xed, 0x89, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xe5, 0xe4, 0xe5, 0xe4, 0xe2, 0x93, 0xe2, 0x93, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x97, 0x98, 0xbe, 0xd5, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xc7, 0xd7, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0xef, 0x2c, 0x60, 0xf2, 0xa6, 0xf7, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x96, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xa7, 0xa7, 0x2d, 0x2d, 0xa7, 0xa7, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xa7, 0xa7, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0xf2, 0xa6, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x96, 0x9c, 0xaa, 0x2d, 0xa7, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_775 = { { 775, 1, 0x003f, 0x003f, "OEM Baltic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_850.cpp ================================================ /* code page 850 (OEM Multilingual Latin 1) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP850.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x00d7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x00f0, 0x00d0, 0x00ca, 0x00cb, 0x00c8, 0x0131, 0x00cd, 0x00ce, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x00fe, 0x00de, 0x00da, 0x00db, 0x00d9, 0x00fd, 0x00dd, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, 0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, 0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, 0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0xd1, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0xd5, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0xe5, 0xe4, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xef, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xee, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xef, 0x5e, 0x7e, 0xee, 0xee, 0x3f, 0x3f, 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xef, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xd8, 0x8b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xe5, 0xe4, 0xe5, 0xe4, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xb6, 0x83, 0xb6, 0x83, 0xb6, 0x83, 0xb6, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xd2, 0x88, 0xd2, 0x88, 0xd2, 0x88, 0xd2, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0xf2, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xef, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xdd, 0xdd, 0x2d, 0x2d, 0xdd, 0xdd, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xdd, 0xdd, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xee, 0xee, 0xee, 0xee, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x9c, 0xaa, 0xee, 0xdd, 0xbe, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_850 = { { 850, 1, 0x003f, 0x003f, "OEM Multilingual Latin 1" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_852.cpp ================================================ /* code page 852 (OEM Slovak Latin 2) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP852.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x016f, 0x0107, 0x00e7, 0x0142, 0x00eb, 0x0150, 0x0151, 0x00ee, 0x0179, 0x00c4, 0x0106, 0x00c9, 0x0139, 0x013a, 0x00f4, 0x00f6, 0x013d, 0x013e, 0x015a, 0x015b, 0x00d6, 0x00dc, 0x0164, 0x0165, 0x0141, 0x00d7, 0x010d, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x0104, 0x0105, 0x017d, 0x017e, 0x0118, 0x0119, 0x00ac, 0x017a, 0x010c, 0x015f, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x011a, 0x015e, 0x2563, 0x2551, 0x2557, 0x255d, 0x017b, 0x017c, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x0102, 0x0103, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x0111, 0x0110, 0x010e, 0x00cb, 0x010f, 0x0147, 0x00cd, 0x00ce, 0x011b, 0x2518, 0x250c, 0x2588, 0x2584, 0x0162, 0x016e, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x0143, 0x0144, 0x0148, 0x0160, 0x0161, 0x0154, 0x00da, 0x0155, 0x0170, 0x00fd, 0x00dd, 0x0163, 0x00b4, 0x00ad, 0x02dd, 0x02db, 0x02c7, 0x02d8, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x02d9, 0x0171, 0x0158, 0x0159, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x63, 0x4c, 0xcf, 0x59, 0x3f, 0xf5, 0xf9, 0x63, 0x61, 0xae, 0xaa, 0xf0, 0x72, 0x2d, 0xf8, 0x3f, 0x32, 0x33, 0xef, 0x75, 0x3f, 0x3f, 0xf7, 0x31, 0x6f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0xb5, 0xb6, 0x41, 0x8e, 0x41, 0x41, 0x80, 0x45, 0x90, 0x45, 0xd3, 0x49, 0xd6, 0xd7, 0x49, 0xd1, 0x4e, 0x4f, 0xe0, 0xe2, 0x4f, 0x99, 0x9e, 0x4f, 0x55, 0xe9, 0x55, 0x9a, 0xed, 0x3f, 0xe1, 0x61, 0xa0, 0x83, 0x61, 0x84, 0x61, 0x61, 0x87, 0x65, 0x82, 0x65, 0x89, 0x69, 0xa1, 0x8c, 0x69, 0x64, 0x6e, 0x6f, 0xa2, 0x93, 0x6f, 0x94, 0xf6, 0x6f, 0x75, 0xa3, 0x75, 0x81, 0xec, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0xc6, 0xc7, 0xa4, 0xa5, 0x8f, 0x86, 0x43, 0x63, 0x43, 0x63, 0xac, 0x9f, 0xd2, 0xd4, 0xd1, 0xd0, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xa8, 0xa9, 0xb7, 0xd8, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x91, 0x92, 0x4c, 0x6c, 0x95, 0x96, 0x3f, 0x3f, 0x9d, 0x88, 0xe3, 0xe4, 0x4e, 0x6e, 0xd5, 0xe5, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x8a, 0x8b, 0x4f, 0x6f, 0xe8, 0xea, 0x52, 0x72, 0xfc, 0xfd, 0x97, 0x98, 0x53, 0x73, 0xb8, 0xad, 0xe6, 0xe7, 0xdd, 0xee, 0x9b, 0x9c, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0xde, 0x85, 0xeb, 0xfb, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x8d, 0xab, 0xbd, 0xbe, 0xa6, 0xa7, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xef, 0xf1, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0xf3, 0x27, 0x2d, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xfa, 0xf8, 0xf2, 0x7e, 0xf1, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xef, 0x5e, 0x7e, 0x2d, 0x2d, 0xf4, 0xfa, 0xf9, 0x3f, 0xf8, 0xf1, 0xf3, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xef, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x97, 0x98, 0xe6, 0xe7, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xb6, 0x83, 0xb6, 0x83, 0xb6, 0x83, 0xb6, 0x83, 0x41, 0x61, 0xc6, 0xc7, 0xc6, 0xc7, 0xc6, 0xc7, 0xc6, 0xc7, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xef, 0xf1, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0xf3, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0xaa, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0xf3, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_852 = { { 852, 1, 0x003f, 0x003f, "OEM Slovak Latin 2" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_855.cpp ================================================ /* code page 855 (OEM Cyrillic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP855.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0452, 0x0402, 0x0453, 0x0403, 0x0451, 0x0401, 0x0454, 0x0404, 0x0455, 0x0405, 0x0456, 0x0406, 0x0457, 0x0407, 0x0458, 0x0408, 0x0459, 0x0409, 0x045a, 0x040a, 0x045b, 0x040b, 0x045c, 0x040c, 0x045e, 0x040e, 0x045f, 0x040f, 0x044e, 0x042e, 0x044a, 0x042a, 0x0430, 0x0410, 0x0431, 0x0411, 0x0446, 0x0426, 0x0434, 0x0414, 0x0435, 0x0415, 0x0444, 0x0424, 0x0433, 0x0413, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x0445, 0x0425, 0x0438, 0x0418, 0x2563, 0x2551, 0x2557, 0x255d, 0x0439, 0x0419, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x043a, 0x041a, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x043b, 0x041b, 0x043c, 0x041c, 0x043d, 0x041d, 0x043e, 0x041e, 0x043f, 0x2518, 0x250c, 0x2588, 0x2584, 0x041f, 0x044f, 0x2580, 0x042f, 0x0440, 0x0420, 0x0441, 0x0421, 0x0442, 0x0422, 0x0443, 0x0423, 0x0436, 0x0416, 0x0432, 0x0412, 0x044c, 0x042c, 0x2116, 0x00ad, 0x044b, 0x042b, 0x0437, 0x0417, 0x0448, 0x0428, 0x044d, 0x042d, 0x0449, 0x0429, 0x0447, 0x0427, 0x00a7, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x63, 0x4c, 0xcf, 0x59, 0x3f, 0xfd, 0x22, 0x63, 0x61, 0xae, 0x3f, 0xf0, 0x72, 0x2d, 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f, 0x2c, 0x31, 0x6f, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0xa9, 0x85, 0x81, 0x83, 0x87, 0x89, 0x8b, 0x8d, 0x8f, 0x91, 0x93, 0x95, 0x97, 0xb8, 0x99, 0x9b, 0xa1, 0xa3, 0xec, 0xad, 0xa7, 0xa9, 0xea, 0xf4, 0xb8, 0xbe, 0xc7, 0xd1, 0xd3, 0xd5, 0xd7, 0xdd, 0xe2, 0xe4, 0xe6, 0xe8, 0xab, 0xb6, 0xa5, 0xfc, 0xf6, 0xfa, 0x9f, 0xf2, 0xee, 0xf8, 0x9d, 0xe0, 0xa0, 0xa2, 0xeb, 0xac, 0xa6, 0xa8, 0xe9, 0xf3, 0xb7, 0xbd, 0xc6, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xe1, 0xe3, 0xe5, 0xe7, 0xaa, 0xb5, 0xa4, 0xfb, 0xf5, 0xf9, 0x9e, 0xf1, 0xed, 0xf7, 0x9c, 0xde, 0xa8, 0x84, 0x80, 0x82, 0x86, 0x88, 0x8a, 0x8c, 0x8e, 0x90, 0x92, 0x94, 0x96, 0xb7, 0x98, 0x9a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xe9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa0, 0xa1, 0xa0, 0x3f, 0x3f, 0xa9, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xe9, 0xf4, 0xf3, 0x3f, 0x3f, 0xb8, 0xb7, 0xb8, 0xb7, 0xd7, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0xf7, 0xe8, 0xe7, 0xe8, 0xe7, 0xe8, 0xe7, 0xfc, 0xfb, 0x3f, 0x3f, 0xf2, 0xf1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xef, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_855 = { { 855, 1, 0x003f, 0x003f, "OEM Cyrillic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_856.cpp ================================================ /* code page 856 (Hebrew PC) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP856.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x009b, 0x00a3, 0x009d, 0x00d7, 0x009f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x003f, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x003f, 0x003f, 0x003f, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x003f, 0x003f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00de, 0x2580, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x2017, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x3f, 0x9d, 0x3f, 0x9f, 0xff, 0x21, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, 0xf9, 0xb8, 0x61, 0xae, 0xaa, 0xf0, 0xa9, 0xee, 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, 0xf7, 0xfb, 0x6f, 0xaf, 0xac, 0xab, 0xf3, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x9e, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xf6, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xef, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xee, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xef, 0x5e, 0x7e, 0xee, 0xee, 0x3f, 0x3f, 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xef, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0500 .. 0x05ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0xf2, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xef, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x80, 0x81, 0x82, 0x83, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xdd, 0xdd, 0x2d, 0x2d, 0xdd, 0xdd, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xdd, 0xdd, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x92, 0x80, 0x83, 0x84, 0x8b, 0x8c, 0x8d, 0x98, 0x9a, 0x2b, 0x99, 0x99, 0x99, 0x99, 0x80, 0x80, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x3f, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x3f, 0x8e, 0x3f, 0x90, 0x91, 0x3f, 0x93, 0x94, 0x3f, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x85, 0x81, 0x8b, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xee, 0xee, 0xee, 0xee, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x9c, 0xaa, 0xee, 0xdd, 0xbe, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_856 = { { 856, 1, 0x003f, 0x003f, "Hebrew PC" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_857.cpp ================================================ /* code page 857 (OEM Turkish) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP857.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x0131, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x0130, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x015e, 0x015f, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x011e, 0x011f, 0x00bf, 0x00ae, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x00c1, 0x00c2, 0x00c0, 0x00a9, 0x2563, 0x2551, 0x2557, 0x255d, 0x00a2, 0x00a5, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x00e3, 0x00c3, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x00a4, 0x00ba, 0x00aa, 0x00ca, 0x00cb, 0x00c8, 0x003f, 0x00cd, 0x00ce, 0x00cf, 0x2518, 0x250c, 0x2588, 0x2584, 0x00a6, 0x00cc, 0x2580, 0x00d3, 0x00df, 0x00d4, 0x00d2, 0x00f5, 0x00d5, 0x00b5, 0x003f, 0x00d7, 0x00da, 0x00db, 0x00d9, 0x00ec, 0x00ff, 0x00af, 0x00b4, 0x00ad, 0x00b1, 0x003f, 0x00be, 0x00b6, 0x00a7, 0x00f7, 0x00b8, 0x00b0, 0x00a8, 0x00b7, 0x00b9, 0x00b3, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, 0xf9, 0xb8, 0xd1, 0xae, 0xaa, 0xf0, 0xa9, 0xee, 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, 0xf7, 0xfb, 0xd0, 0xaf, 0xac, 0xab, 0xf3, 0xa8, 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, 0x44, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0xe8, 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0x59, 0x3f, 0xe1, 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, 0x8a, 0x82, 0x88, 0x89, 0xec, 0xa1, 0x8c, 0x8b, 0x64, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0xed, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0xa6, 0xa7, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x98, 0x8d, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x9e, 0x9f, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0xe5, 0xe4, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xef, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xee, 0xef, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xef, 0x5e, 0x7e, 0xee, 0xee, 0x3f, 0x3f, 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xef, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf9, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0xd8, 0x8b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0xe5, 0xe4, 0xe5, 0xe4, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0xb6, 0x83, 0xb6, 0x83, 0xb6, 0x83, 0xb6, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0xd2, 0x88, 0xd2, 0x88, 0xd2, 0x88, 0xd2, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0xe2, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xf9, 0xf9, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xef, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xdd, 0xdd, 0x2d, 0x2d, 0xdd, 0xdd, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xdd, 0xdd, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xee, 0xee, 0xee, 0xee, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbd, 0x9c, 0xaa, 0xee, 0xdd, 0xbe, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_857 = { { 857, 1, 0x003f, 0x003f, "OEM Turkish" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_860.cpp ================================================ /* code page 860 (OEM Portuguese) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP860.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e3, 0x00e0, 0x00c1, 0x00e7, 0x00ea, 0x00ca, 0x00e8, 0x00cd, 0x00d4, 0x00ec, 0x00c3, 0x00c2, 0x00c9, 0x00c0, 0x00c8, 0x00f4, 0x00f5, 0x00f2, 0x00da, 0x00f9, 0x00cc, 0x00d5, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x20a7, 0x00d3, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x00d2, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0x9b, 0x9c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, 0x2c, 0x31, 0xa7, 0xaf, 0xac, 0xab, 0x3f, 0xa8, 0x91, 0x86, 0x8f, 0x8e, 0x41, 0x41, 0x41, 0x80, 0x92, 0x90, 0x89, 0x45, 0x98, 0x8b, 0x49, 0x49, 0x44, 0xa5, 0xa9, 0x9f, 0x8c, 0x99, 0x4f, 0x78, 0x4f, 0x9d, 0x96, 0x55, 0x9a, 0x59, 0x3f, 0xe1, 0x85, 0xa0, 0x83, 0x84, 0x61, 0x61, 0x61, 0x87, 0x8a, 0x82, 0x88, 0x65, 0x8d, 0xa1, 0x69, 0x69, 0x64, 0xa4, 0x95, 0xa2, 0x93, 0x94, 0x6f, 0xf6, 0x6f, 0x97, 0xa3, 0x75, 0x81, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x99, 0x94, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x8f, 0x83, 0x8f, 0x83, 0x8f, 0x83, 0x8f, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x89, 0x88, 0x89, 0x88, 0x89, 0x88, 0x89, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x8c, 0x93, 0x8c, 0x93, 0x8c, 0x93, 0x8c, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x9c, 0xaa, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_860 = { { 860, 1, 0x003f, 0x003f, "OEM Portuguese" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_861.cpp ================================================ /* code page 861 (OEM Icelandic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP861.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00d0, 0x00f0, 0x00de, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00fe, 0x00fb, 0x00dd, 0x00fd, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00c1, 0x00cd, 0x00d3, 0x00da, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0x63, 0x9c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0x61, 0xae, 0xaa, 0x2d, 0x72, 0x2d, 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, 0x2c, 0x31, 0x6f, 0xaf, 0xac, 0xab, 0x3f, 0xa8, 0x41, 0xa4, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, 0x45, 0x90, 0x45, 0x45, 0x49, 0xa5, 0x49, 0x49, 0x8b, 0x4e, 0x4f, 0xa6, 0x4f, 0x4f, 0x99, 0x78, 0x9d, 0x55, 0xa7, 0x55, 0x9a, 0x97, 0x8d, 0xe1, 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, 0x8a, 0x82, 0x88, 0x89, 0x69, 0xa1, 0x69, 0x69, 0x8c, 0x6e, 0x6f, 0xa2, 0x93, 0x6f, 0x94, 0xf6, 0x9b, 0x75, 0xa3, 0x96, 0x81, 0x98, 0x95, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x8b, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x83, 0x41, 0x83, 0x41, 0x83, 0x41, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x9c, 0xaa, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_861 = { { 861, 1, 0x003f, 0x003f, "OEM Icelandic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_862.cpp ================================================ /* code page 862 (OEM Hebrew) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP862.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, 0x05e8, 0x05e9, 0x05ea, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0x9b, 0x9c, 0x3f, 0x9d, 0x3f, 0x3f, 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, 0x2c, 0x31, 0xa7, 0xaf, 0xac, 0xab, 0x3f, 0xa8, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0xe1, 0x61, 0xa0, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0xa1, 0x69, 0x69, 0x64, 0xa4, 0x6f, 0xa2, 0x6f, 0x6f, 0x6f, 0xf6, 0x6f, 0x75, 0xa3, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0500 .. 0x05ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x80, 0x81, 0x82, 0x83, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x92, 0x80, 0x83, 0x84, 0x8b, 0x8c, 0x8d, 0x98, 0x9a, 0x2b, 0x99, 0x99, 0x99, 0x99, 0x80, 0x80, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x3f, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x3f, 0x8e, 0x3f, 0x90, 0x91, 0x3f, 0x93, 0x94, 0x3f, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x85, 0x81, 0x8b, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x9c, 0xaa, 0x2d, 0x3f, 0x9d, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_862 = { { 862, 1, 0x003f, 0x003f, "OEM Hebrew" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_863.cpp ================================================ /* code page 863 (OEM Canadian French) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP863.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00c2, 0x00e0, 0x00b6, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x2017, 0x00c0, 0x00a7, 0x00c9, 0x00c8, 0x00ca, 0x00f4, 0x00cb, 0x00cf, 0x00fb, 0x00f9, 0x00a4, 0x00d4, 0x00dc, 0x00a2, 0x00a3, 0x00d9, 0x00db, 0x0192, 0x00a6, 0x00b4, 0x00f3, 0x00fa, 0x00a8, 0x00b8, 0x00b3, 0x00af, 0x00ce, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00be, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x9b, 0x9c, 0x98, 0x59, 0xa0, 0x8f, 0xa4, 0x63, 0x61, 0xae, 0xaa, 0x2d, 0x72, 0xa7, 0xf8, 0xf1, 0xfd, 0xa6, 0xa1, 0xe6, 0x86, 0xfa, 0xa5, 0x31, 0x6f, 0xaf, 0xac, 0xab, 0xad, 0x3f, 0x8e, 0x41, 0x84, 0x41, 0x41, 0x41, 0x41, 0x80, 0x91, 0x90, 0x92, 0x94, 0x49, 0x49, 0xa8, 0x95, 0x44, 0x4e, 0x4f, 0x4f, 0x99, 0x4f, 0x4f, 0x78, 0x4f, 0x9d, 0x55, 0x9e, 0x9a, 0x59, 0x3f, 0xe1, 0x85, 0x61, 0x83, 0x61, 0x61, 0x61, 0x61, 0x87, 0x8a, 0x82, 0x88, 0x89, 0x69, 0x69, 0x8c, 0x8b, 0x64, 0x6e, 0x6f, 0xa2, 0x93, 0x6f, 0x6f, 0xf6, 0x6f, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0xa1, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0xa7, 0xa1, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0xa1, 0x5e, 0x7e, 0xa7, 0xa7, 0x3f, 0x3f, 0xa4, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xa1, 0x3f, 0x3f, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa4, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x95, 0x8b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x84, 0x83, 0x84, 0x83, 0x84, 0x83, 0x84, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x92, 0x88, 0x92, 0x88, 0x92, 0x88, 0x92, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x99, 0x93, 0x99, 0x93, 0x99, 0x93, 0x99, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0xa4, 0xa4, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0xea, 0xea, 0xea, 0xa1, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x8d, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0xa1, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0xa0, 0xa0, 0x2d, 0x2d, 0xa0, 0xa0, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0xa0, 0xa0, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0xa7, 0xa7, 0xa7, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x9c, 0xaa, 0xa7, 0xa0, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_863 = { { 863, 1, 0x003f, 0x003f, "OEM Canadian French" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_864.cpp ================================================ /* code page 864 (OEM Arabic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP864.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066a, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00b0, 0x00b7, 0x2219, 0x221a, 0x2592, 0x2500, 0x2502, 0x253c, 0x2524, 0x252c, 0x251c, 0x2534, 0x2510, 0x250c, 0x2514, 0x2518, 0x03b2, 0x221e, 0x03c6, 0x00b1, 0x00bd, 0x00bc, 0x2248, 0x00ab, 0x00bb, 0xfef7, 0xfef8, 0x009b, 0x009c, 0xfefb, 0xfefc, 0x009f, 0x00a0, 0x00ad, 0xfe82, 0x00a3, 0x00a4, 0xfe84, 0x003f, 0x00a7, 0xfe8e, 0xfe8f, 0xfe95, 0xfe99, 0x060c, 0xfe9d, 0xfea1, 0xfea5, 0x0660, 0x0661, 0x0662, 0x0663, 0x0664, 0x0665, 0x0666, 0x0667, 0x0668, 0x0669, 0xfed1, 0x061b, 0xfeb1, 0xfeb5, 0xfeb9, 0x061f, 0x00a2, 0xfe80, 0xfe81, 0xfe83, 0xfe85, 0xfeca, 0xfe8b, 0xfe8d, 0xfe91, 0xfe93, 0xfe97, 0xfe9b, 0xfe9f, 0xfea3, 0xfea7, 0xfea9, 0xfeab, 0xfead, 0xfeaf, 0xfeb3, 0xfeb7, 0xfebb, 0xfebf, 0xfec1, 0xfec5, 0xfecb, 0xfecf, 0x00a6, 0x00ac, 0x00f7, 0x00d7, 0xfec9, 0x0640, 0xfed3, 0xfed7, 0xfedb, 0xfedf, 0xfee3, 0xfee7, 0xfeeb, 0xfeed, 0xfeef, 0xfef3, 0xfebd, 0xfecc, 0xfece, 0xfecd, 0xfee1, 0xfe7d, 0x0651, 0xfee5, 0xfee9, 0xfeec, 0xfef0, 0xfef2, 0xfed0, 0xfed5, 0xfef5, 0xfef6, 0xfedd, 0xfed9, 0xfef1, 0x25a0, 0x003f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x3f, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9b, 0x9c, 0x3f, 0x3f, 0x9f, 0xa0, 0x21, 0xc0, 0xa3, 0xa4, 0x59, 0xdb, 0xa7, 0x22, 0x63, 0x61, 0x97, 0xdc, 0xa1, 0x72, 0x2d, 0x80, 0x93, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x81, 0x2c, 0x31, 0x6f, 0x98, 0x95, 0x94, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0xde, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x90, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0xdd, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x80, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x81, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0x59, 0x59, 0x59, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0600 .. 0x06ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xac, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xbb, 0x3f, 0x3f, 0x3f, 0xbf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0x25, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x82, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x93, 0x3f, 0x2f, 0x5c, 0x2a, 0x80, 0x82, 0x83, 0x3f, 0x3f, 0x3f, 0x91, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x96, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x98, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x81, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x85, 0x85, 0x86, 0x86, 0x2d, 0x2d, 0xdb, 0xdb, 0x2d, 0x2d, 0xdb, 0xdb, 0x8d, 0x8d, 0x8d, 0x8d, 0x8c, 0x8c, 0x8c, 0x8c, 0x8e, 0x8e, 0x8e, 0x8e, 0x8f, 0x8f, 0x8f, 0x8f, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x8b, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x2d, 0x2d, 0xdb, 0xdb, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0xdc, 0xdc, 0xdc, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x84, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x97, 0x98, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf0, 0x3f, 0x3f, 0xc1, 0xc2, 0xa2, 0xc3, 0xa5, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc6, 0x3f, 0xc7, 0xa8, 0xa9, 0x3f, 0xc8, 0x3f, 0xc9, 0x3f, 0xaa, 0x3f, 0xca, 0x3f, 0xab, 0x3f, 0xcb, 0x3f, 0xad, 0x3f, 0xcc, 0x3f, 0xae, 0x3f, 0xcd, 0x3f, 0xaf, 0x3f, 0xce, 0x3f, 0xcf, 0x3f, 0xd0, 0x3f, 0xd1, 0x3f, 0xd2, 0x3f, 0xbc, 0x3f, 0xd3, 0x3f, 0xbd, 0x3f, 0xd4, 0x3f, 0xbe, 0x3f, 0xd5, 0x3f, 0xeb, 0x3f, 0xd6, 0x3f, 0xd7, 0x3f, 0x3f, 0x3f, 0xd8, 0x3f, 0x3f, 0x3f, 0xdf, 0xc5, 0xd9, 0xec, 0xee, 0xed, 0xda, 0xf7, 0xba, 0x3f, 0xe1, 0x3f, 0xf8, 0x3f, 0xe2, 0x3f, 0xfc, 0x3f, 0xe3, 0x3f, 0xfb, 0x3f, 0xe4, 0x3f, 0xef, 0x3f, 0xe5, 0x3f, 0xf2, 0x3f, 0xe6, 0x3f, 0xf3, 0x3f, 0xe7, 0xf4, 0xe8, 0x3f, 0xe9, 0xf5, 0xfd, 0xf6, 0xea, 0x3f, 0xf9, 0xfa, 0x99, 0x9a, 0x3f, 0x3f, 0x9d, 0x9e, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x3f, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc0, 0xa3, 0xdc, 0x2d, 0xdb, 0x59, 0x3f, 0x3f, 0x86, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_864 = { { 864, 1, 0x003f, 0x003f, "OEM Arabic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_865.cpp ================================================ /* code page 865 (OEM Nordic) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP865.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x00c7, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, 0x00ff, 0x00d6, 0x00dc, 0x00f8, 0x00a3, 0x00d8, 0x20a7, 0x0192, 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00a4, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0xad, 0x63, 0x9c, 0xaf, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0xa6, 0xae, 0xaa, 0x2d, 0x72, 0x2d, 0xf8, 0xf1, 0xfd, 0x33, 0x27, 0xe6, 0x3f, 0xfa, 0x2c, 0x31, 0xa7, 0x3e, 0xac, 0xab, 0x3f, 0xa8, 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8f, 0x92, 0x80, 0x45, 0x90, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0xa5, 0x4f, 0x4f, 0x4f, 0x4f, 0x99, 0x78, 0x9d, 0x55, 0x55, 0x55, 0x9a, 0x59, 0x3f, 0xe1, 0x85, 0xa0, 0x83, 0x61, 0x84, 0x86, 0x91, 0x87, 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, 0x64, 0xa4, 0x95, 0xa2, 0x93, 0x6f, 0x94, 0xf6, 0x9b, 0x97, 0xa3, 0x96, 0x81, 0x79, 0x3f, 0x98, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x9f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x81, 0x3f, 0x8e, 0x84, 0x41, 0x61, 0x92, 0x91, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x8f, 0x86, 0x92, 0x91, 0x9d, 0x9b, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x99, 0x94, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0xea, 0x3f, 0x41, 0x42, 0xe2, 0x3f, 0x45, 0x5a, 0x48, 0xe9, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0xe4, 0x54, 0x59, 0xe8, 0x58, 0x3f, 0xea, 0x49, 0x59, 0xe0, 0xee, 0x3f, 0x3f, 0x3f, 0xe0, 0xe1, 0x3f, 0xeb, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe6, 0x3f, 0x3f, 0x3f, 0xe3, 0x3f, 0x3f, 0xe5, 0xe7, 0x3f, 0xed, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0x3f, 0x59, 0x59, 0x59, 0xed, 0xe3, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x80, 0x87, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x8b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x83, 0x41, 0x83, 0x41, 0x83, 0x41, 0x83, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x88, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x93, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xee, 0xee, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xea, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x3f, 0xe0, 0xe0, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0xea, 0xea, 0xea, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0xfc, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xea, 0x3f, 0x5a, 0x3f, 0x4b, 0x8f, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0xe2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0xec, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf7, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0xf0, 0xf0, 0xf0, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0xf3, 0xf2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf4, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x9c, 0xaa, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_865 = { { 865, 1, 0x003f, 0x003f, "OEM Nordic" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_866.cpp ================================================ /* code page 866 (OEM Russian) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP866.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040e, 0x045e, 0x00b0, 0x2219, 0x00b7, 0x221a, 0x2116, 0x00a4, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x63, 0x4c, 0xfd, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, 0xf8, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0xfa, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0xfa, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0x85, 0xf0, 0x3f, 0x83, 0xf2, 0x3f, 0x3f, 0xf4, 0x3f, 0x3f, 0x3f, 0x3f, 0x8a, 0x88, 0xf6, 0x3f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xa5, 0xf1, 0x3f, 0xa3, 0xf3, 0x3f, 0x3f, 0xf5, 0x3f, 0x3f, 0x3f, 0x3f, 0xaa, 0xa8, 0xf7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0xa6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0xa0, 0x80, 0xa0, 0x3f, 0x3f, 0x85, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0x86, 0xa6, 0x87, 0xa7, 0x3f, 0x3f, 0x88, 0xa8, 0x88, 0xa8, 0x8e, 0xae, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0xed, 0x93, 0xe3, 0x93, 0xe3, 0x93, 0xe3, 0x97, 0xe7, 0x3f, 0x3f, 0x9b, 0xeb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0xf9, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0xfc, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0xf9, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfa, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x3f, 0x3f, 0xcd, 0xba, 0xd5, 0xd6, 0xc9, 0xb8, 0xb7, 0xbb, 0xd4, 0xd3, 0xc8, 0xbe, 0xbd, 0xbc, 0xc6, 0xc7, 0xcc, 0xb5, 0xb6, 0xb9, 0xd1, 0xd2, 0xcb, 0xcf, 0xd0, 0xca, 0xd8, 0xd7, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0xdd, 0x3f, 0x3f, 0x3f, 0xde, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_866 = { { 866, 1, 0x003f, 0x003f, "OEM Russian" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_869.cpp ================================================ /* code page 869 (OEM Greek) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP869.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0386, 0x0087, 0x00b7, 0x00ac, 0x00a6, 0x2018, 0x2019, 0x0388, 0x2015, 0x0389, 0x038a, 0x03aa, 0x038c, 0x0093, 0x0094, 0x038e, 0x03ab, 0x00a9, 0x038f, 0x00b2, 0x00b3, 0x03ac, 0x00a3, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, 0x03cd, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x00bd, 0x0398, 0x0399, 0x00ab, 0x00bb, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x039a, 0x039b, 0x039c, 0x039d, 0x2563, 0x2551, 0x2557, 0x255d, 0x039e, 0x039f, 0x2510, 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x03a0, 0x03a1, 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x2518, 0x250c, 0x2588, 0x2584, 0x03b4, 0x03b5, 0x2580, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c2, 0x03c4, 0x0384, 0x00ad, 0x00b1, 0x03c5, 0x03c6, 0x03c7, 0x00a7, 0x03c8, 0x0385, 0x00b0, 0x00a8, 0x03c9, 0x03cb, 0x03b0, 0x03ce, 0x25a0, 0x00a0 }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x93, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xff, 0x21, 0x63, 0x9c, 0x3f, 0x59, 0x8a, 0xf5, 0xf9, 0x97, 0x61, 0xae, 0x89, 0xf0, 0x72, 0x8e, 0xf8, 0xf1, 0x99, 0x9a, 0x27, 0xe6, 0x3f, 0x88, 0x2c, 0x31, 0x6f, 0xaf, 0x3f, 0xab, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0xd7, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb3, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x8b, 0x8c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x8e, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x8e, 0x8e, 0x3f, 0x3f, 0xf9, 0x3f, 0xf8, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xef, 0xf7, 0x86, 0x88, 0x8d, 0x8f, 0x90, 0x3f, 0x92, 0x3f, 0x95, 0x98, 0xa1, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xac, 0xad, 0xb5, 0xb6, 0xb7, 0xb8, 0xbd, 0xbe, 0xc6, 0xc7, 0x3f, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0x91, 0x96, 0x9b, 0x9d, 0x9e, 0x9f, 0xfc, 0xd6, 0xd7, 0xd8, 0xdd, 0xde, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xed, 0xec, 0xee, 0xf2, 0xf3, 0xf4, 0xf6, 0xfa, 0xa0, 0xfb, 0xa2, 0xa3, 0xfd, 0x3f, 0xd7, 0xe2, 0xd1, 0xd1, 0xd1, 0xf3, 0xea, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe4, 0xeb, 0xed, 0x3f, 0xac, 0xde, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xde, 0xde, 0xde, 0xde, 0xde, 0xde, 0x3f, 0x3f, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0xa8, 0x3f, 0x3f, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xad, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0xe9, 0x3f, 0x3f, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0xbe, 0x3f, 0x3f, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0xf2, 0x3f, 0xd1, 0x3f, 0xd1, 0x3f, 0xd1, 0x3f, 0xd1, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd6, 0x9b, 0xde, 0x9d, 0xe1, 0x9e, 0xe3, 0x9f, 0xe9, 0xa2, 0xf2, 0xa3, 0xfa, 0xfd, 0x3f, 0x3f, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xfa, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0x9b, 0x3f, 0xd6, 0xd6, 0xa4, 0xa4, 0xa4, 0x86, 0xa4, 0x3f, 0xe3, 0x3f, 0x3f, 0xf9, 0xe1, 0xe1, 0x9e, 0x3f, 0xe1, 0xe1, 0xa8, 0x8d, 0xaa, 0x8f, 0xaa, 0x3f, 0x3f, 0x3f, 0xe3, 0xe3, 0xa0, 0xa1, 0x3f, 0x3f, 0xe3, 0xa0, 0xad, 0xad, 0xad, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0xf2, 0xf2, 0xfb, 0xfc, 0xeb, 0xeb, 0xf2, 0xfb, 0xd1, 0xd1, 0xd1, 0x95, 0xc7, 0xf9, 0xf7, 0x60, 0x3f, 0x3f, 0xfa, 0xfa, 0xfd, 0x3f, 0xfa, 0xfa, 0xbe, 0x92, 0xd5, 0x98, 0xd5, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x8e, 0x8e, 0x8e, 0x3f, 0x5f, 0x8b, 0x8c, 0x2c, 0x8b, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x8b, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf8, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x9c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0xd5, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0xd8, 0xa6, 0xc6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0xf1, 0x3f, 0x2f, 0x5c, 0x2a, 0xf8, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xae, 0xaf, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0xc4, 0xc4, 0xb3, 0xb3, 0x2d, 0x2d, 0x8a, 0x8a, 0x2d, 0x2d, 0x8a, 0x8a, 0xda, 0xda, 0xda, 0xda, 0xbf, 0xbf, 0xbf, 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, 0xd9, 0xd9, 0xd9, 0xd9, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc2, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0xc5, 0x2d, 0x2d, 0x8a, 0x8a, 0xcd, 0xba, 0xc9, 0xc9, 0xc9, 0xbb, 0xbb, 0xbb, 0xc8, 0xc8, 0xc8, 0xbc, 0xbc, 0xbc, 0xcc, 0xcc, 0xcc, 0xb9, 0xb9, 0xb9, 0xcb, 0xcb, 0xcb, 0xca, 0xca, 0xca, 0xce, 0xce, 0xce, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0xdf, 0x3f, 0x3f, 0x3f, 0xdc, 0x3f, 0x3f, 0x3f, 0xdb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xb0, 0xb1, 0xb2, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0xae, 0xaf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x8e, 0x8e, 0x8e, 0x8e, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x8e, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x9c, 0x89, 0x8e, 0x8a, 0x59, 0x3f, 0x3f, 0xb3, 0x3c, 0x5e, 0x3e, 0x76, 0xfe, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_869 = { { 869, 1, 0x003f, 0x003f, "OEM Greek" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_874.cpp ================================================ /* code page 874 (ANSI/OEM Thai) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP874.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0081, 0x0082, 0x0083, 0x0084, 0x2026, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00a0, 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, 0x0e38, 0x0e39, 0x0e3a, 0x003f, 0x003f, 0x003f, 0x00de, 0x0e3f, 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0e4e, 0x0e4f, 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, 0x0e58, 0x0e59, 0x0e5a, 0x0e5b, 0x003f, 0x003f, 0x00fe, 0x003f }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x81, 0x82, 0x83, 0x84, 0x3f, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0x63, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x97, 0x3f, 0x3f, 0x32, 0x33, 0x27, 0x75, 0x3f, 0x3f, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0xde, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x3f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0xfe, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7c, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x97, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x97, 0x97, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x3f, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0e00 .. 0x0eff */ 0x3f, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0x3f, 0x3f, 0x3f, 0x3f, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x96, 0x97, 0x96, 0x3f, 0x5f, 0x91, 0x92, 0x2c, 0x91, 0x93, 0x94, 0x2c, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x2e, 0x3f, 0x85, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x80, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x3f, 0x95, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x2d, 0x2d, 0x7c, 0x7c, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2d, 0x2d, 0x3f, 0x3f, 0x3d, 0x7c, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x4c, 0x4c, 0x4c, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x54, 0x54, 0x54, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x93, 0x94, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x97, 0x97, 0x97, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x97, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x97, 0x3f, 0x59, 0x3f, 0x3f, 0x7c, 0x3c, 0x5e, 0x3e, 0x76, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_874 = { { 874, 1, 0x003f, 0x003f, "ANSI/OEM Thai" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_875.cpp ================================================ /* code page 875 (IBM EBCDIC Greek) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP875.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x009c, 0x0009, 0x0086, 0x007f, 0x0097, 0x008d, 0x008e, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x009d, 0x0085, 0x0008, 0x0087, 0x0018, 0x0019, 0x0092, 0x008f, 0x001c, 0x001d, 0x001e, 0x001f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000a, 0x0017, 0x001b, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c, 0x0005, 0x0006, 0x0007, 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 0x0098, 0x0099, 0x009a, 0x009b, 0x0014, 0x0015, 0x009e, 0x001a, 0x0020, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x005b, 0x002e, 0x003c, 0x0028, 0x002b, 0x0021, 0x0026, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x005d, 0x0024, 0x002a, 0x0029, 0x003b, 0x005e, 0x002d, 0x002f, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x007c, 0x002c, 0x0025, 0x005f, 0x003e, 0x003f, 0x00a8, 0x0386, 0x0388, 0x0389, 0x00a0, 0x038a, 0x038c, 0x038e, 0x038f, 0x0060, 0x003a, 0x0023, 0x0040, 0x0027, 0x003d, 0x0022, 0x0385, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x00b0, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x00b4, 0x007e, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x00a3, 0x03ac, 0x03ad, 0x03ae, 0x03ca, 0x03af, 0x03cc, 0x03cd, 0x03cb, 0x03ce, 0x03c2, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x007b, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x00ad, 0x03c9, 0x0390, 0x03b0, 0x2018, 0x2015, 0x007d, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x00b1, 0x00bd, 0x001a, 0x0387, 0x2019, 0x00a6, 0x005c, 0x001a, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00b2, 0x00a7, 0x001a, 0x001a, 0x00ab, 0x00ac, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00b3, 0x00a9, 0x001a, 0x001a, 0x00bb, 0x009f }; static const unsigned char uni2cp_low[4352] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, 0x40, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xff, 0x74, 0x4f, 0x83, 0xb0, 0x3f, 0xe8, 0xdf, 0xeb, 0x70, 0xfb, 0x81, 0xee, 0xef, 0xca, 0x99, 0xcf, 0x90, 0xda, 0xea, 0xfa, 0xa0, 0x9f, 0x3f, 0x3f, 0x6b, 0xf1, 0x96, 0xfe, 0x3f, 0xdb, 0x3f, 0x3f, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc3, 0xc5, 0xc5, 0xc5, 0xc5, 0xc9, 0xc9, 0xc9, 0xc9, 0xc4, 0xd5, 0xd6, 0xd6, 0xd6, 0xd6, 0xd6, 0xa7, 0xd6, 0xe4, 0xe4, 0xe4, 0xe4, 0xe8, 0x3f, 0x8b, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x83, 0x85, 0x85, 0x85, 0x85, 0x89, 0x89, 0x89, 0x89, 0x84, 0x95, 0x96, 0x96, 0x96, 0x96, 0x96, 0x3f, 0x96, 0xa4, 0xa4, 0xa4, 0xa4, 0xa8, 0x3f, 0xa8, /* 0x0100 .. 0x01ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0xc9, 0x89, 0x3f, 0x3f, 0xd1, 0x91, 0xd2, 0x92, 0x3f, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0x3f, 0x3f, 0xd3, 0x93, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0x3f, 0x3f, 0x3f, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe6, 0xa6, 0xe8, 0xa8, 0xe8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0xa2, 0x82, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0xc6, 0x86, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x93, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0xd6, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa3, 0x3f, 0x3f, 0xe3, 0xe4, 0xa4, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc9, 0x89, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc7, 0x87, 0xc7, 0x87, 0xd2, 0x92, 0xd6, 0x96, 0xd6, 0x96, 0x3f, 0x3f, 0x91, 0x3f, 0x3f, 0x3f, 0xc7, 0x87, 0x3f, 0x3f, 0xd5, 0x95, 0xc1, 0x81, 0xc1, 0x81, 0xd6, 0x96, /* 0x0200 .. 0x02ff */ 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd9, 0x99, 0xd9, 0x99, 0xe4, 0xa4, 0xe4, 0xa4, 0xe2, 0xa2, 0xe3, 0xa3, 0x3f, 0x3f, 0xc8, 0x88, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc5, 0x85, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x87, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x88, 0x3f, 0x91, 0x99, 0x3f, 0x3f, 0x3f, 0xa6, 0xa8, 0xa0, 0x7f, 0xce, 0xde, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x5f, 0xa5, 0x7d, 0xcf, 0xa0, 0x79, 0x3f, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x3f, 0xa1, 0x7f, 0x3f, 0x3f, 0x3f, 0x93, 0xa2, 0xa7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x79, 0xa0, 0x5f, 0xa1, 0xcf, 0xcf, 0x3f, 0x3f, 0x70, 0x3f, 0x90, 0x7f, 0xa5, 0x3f, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x6d, 0x6d, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x79, 0xa0, 0x3f, 0x3f, 0x70, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa0, 0x80, 0x71, 0xdd, 0x72, 0x73, 0x75, 0x3f, 0x76, 0x3f, 0x77, 0x78, 0xcc, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x3f, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xb1, 0xb2, 0xb3, 0xb5, 0xcd, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xba, 0xaf, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xcb, 0xb4, 0xb8, 0xb6, 0xb7, 0xb9, 0x3f, 0x8b, 0x9b, 0x63, 0x63, 0x63, 0xbd, 0xad, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9d, 0xae, 0xba, 0x3f, 0x48, 0x8e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0xc1, 0x81, 0xc2, 0x82, 0xc2, 0x82, 0xc2, 0x82, 0xc3, 0x83, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc4, 0x84, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc6, 0x86, 0xc7, 0x87, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc8, 0x88, 0xc9, 0x89, 0xc9, 0x89, 0xd2, 0x92, 0xd2, 0x92, 0xd2, 0x92, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd3, 0x93, 0xd4, 0x94, 0xd4, 0x94, 0xd4, 0x94, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd5, 0x95, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd7, 0x97, 0xd7, 0x97, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xd9, 0x99, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe2, 0xa2, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe3, 0xa3, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe5, 0xa5, 0xe5, 0xa5, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe6, 0xa6, 0xe7, 0xa7, 0xe7, 0xa7, 0xe8, 0xa8, 0xe9, 0xa9, 0xe9, 0xa9, 0xe9, 0xa9, 0x88, 0xa3, 0xa6, 0xa8, 0x3f, 0xa2, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc1, 0x81, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc5, 0x85, 0xc9, 0x89, 0xc9, 0x89, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xd6, 0x96, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe4, 0xa4, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0xe8, 0xa8, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x8e, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x9c, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0xac, 0xac, 0xac, 0xac, 0xac, 0xac, 0x3f, 0x3f, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x3f, 0x3f, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0xbc, 0x3f, 0x63, 0x3f, 0x63, 0x3f, 0x63, 0x3f, 0x63, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x8a, 0xb1, 0x8e, 0xb2, 0x9a, 0xb3, 0x9c, 0xb5, 0xac, 0xb6, 0xbc, 0xb7, 0xcb, 0xb9, 0x3f, 0x3f, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x9a, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0xcb, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x8a, 0x8a, 0x8a, 0x8a, 0xb1, 0x3f, 0x8a, 0x8a, 0x41, 0x41, 0x41, 0x71, 0x41, 0x3f, 0x9c, 0x3f, 0x3f, 0x70, 0x9a, 0x9a, 0xb3, 0x3f, 0x9a, 0x9a, 0x45, 0x72, 0x47, 0x73, 0x47, 0x3f, 0x3f, 0x3f, 0x9c, 0x9c, 0xb4, 0xcc, 0x3f, 0x3f, 0x9c, 0xb4, 0x49, 0x49, 0x49, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0xbc, 0xbc, 0xb8, 0xcd, 0xae, 0xae, 0xbc, 0xb8, 0x63, 0x63, 0x63, 0x77, 0x58, 0x70, 0x80, 0x79, 0x3f, 0x3f, 0xcb, 0xcb, 0xb9, 0x3f, 0xcb, 0xcb, 0x56, 0x76, 0x67, 0x78, 0x67, 0xa0, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x60, 0x3f, 0xcf, 0xcf, 0xcf, 0x3f, 0x6d, 0xce, 0xde, 0x6b, 0xce, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0xa0, 0x7f, 0x3f, 0xce, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x4f, 0x3f, 0xcf, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x90, 0x89, 0x3f, 0x3f, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x95, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x4e, 0x60, 0x7e, 0x4d, 0x5d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x83, 0x3f, 0x3f, 0xb0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0xc3, 0x3f, 0x3f, 0x3f, 0x3f, 0xc5, 0x3f, 0x3f, 0x87, 0xc8, 0xc8, 0xc8, 0x88, 0x88, 0xc9, 0xc9, 0xd3, 0x93, 0x3f, 0xd5, 0x3f, 0x3f, 0xd7, 0xd7, 0xd8, 0xd9, 0xd9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe9, 0x3f, 0x67, 0x3f, 0xe9, 0x3f, 0xd2, 0xc1, 0xc2, 0xc3, 0x85, 0x85, 0xc5, 0xc6, 0x3f, 0xd4, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x89, 0x3f, 0x3f, 0x3f, 0x8c, 0x43, 0x57, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc4, 0x84, 0x85, 0x89, 0x91, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc9, 0x3f, 0x3f, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xe7, 0x3f, 0x3f, 0xd3, 0xc3, 0xc4, 0xd4, 0x89, 0x3f, 0x3f, 0x3f, 0xa5, 0x3f, 0x3f, 0x3f, 0x3f, 0xa7, 0x3f, 0x3f, 0x93, 0x83, 0x84, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x5f, 0x6e, 0xa5, 0x60, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0xda, 0x3f, 0x61, 0xe0, 0x5c, 0x90, 0x3f, 0xe5, 0x3f, 0x3f, 0x3f, 0x3f, 0xd3, 0x3f, 0x3f, 0x3f, 0x6a, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xa1, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x7e, 0x7e, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xee, 0xfe, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xf0, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x60, 0x60, 0x6a, 0x6a, 0x60, 0x60, 0xdf, 0xdf, 0x60, 0x60, 0xdf, 0xdf, 0x4e, 0x4e, 0x4e, 0x4e, 0xef, 0xef, 0xef, 0xef, 0xd3, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x60, 0x60, 0xdf, 0xdf, 0x7e, 0x6a, 0x4e, 0x4e, 0x4e, 0xef, 0xef, 0xef, 0xd3, 0xd3, 0xd3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0xe3, 0xe3, 0xe3, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x61, 0xe0, 0xe7, 0x60, 0x6a, 0x60, 0x6a, 0x60, 0x6a, 0x60, 0x6a, 0x60, 0x6a, 0x60, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x6e, 0xee, 0xfe, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4a, 0x5a, 0x3f, 0x7f, 0x7f, 0x6b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcf, 0xcf, 0xcf, 0xcf, 0x6d, 0x6d, 0x6d, 0x6b, 0x3f, 0x4b, 0x3f, 0x5e, 0x7a, 0x6f, 0x4f, 0xcf, 0x4d, 0x5d, 0xc0, 0xd0, 0x3f, 0x3f, 0x7b, 0x50, 0x5c, 0x4e, 0x60, 0x4c, 0x6e, 0x7e, 0x3f, 0xe0, 0x5b, 0x6c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x4f, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x5a, 0x5f, 0x6d, 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x83, 0xb0, 0xef, 0xcf, 0xdf, 0xe8, 0x3f, 0x3f, 0x6a, 0x4c, 0x5f, 0x6e, 0xa5, 0x3f, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0c00, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x0d00, 0x1000, 0x1000, 0x0e00, 0x0f00 }; const struct sbcs_table cptable_875 = { { 875, 1, 0x003f, 0x003f, "IBM EBCDIC Greek" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_878.cpp ================================================ /* code page 878 (Russian KOI8) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, 0x2591, 0x2592, 0x2593, 0x2320, 0x25a0, 0x2219, 0x221a, 0x2248, 0x2264, 0x2265, 0x00a0, 0x2321, 0x00b0, 0x00b2, 0x00b7, 0x00f7, 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x00a9, 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042c, 0x042b, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a }; static const unsigned char uni2cp_low[4608] = { /* 0x0000 .. 0x00ff */ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9a, 0x21, 0x63, 0x4c, 0x3f, 0x59, 0x3f, 0x3f, 0x22, 0xbf, 0x61, 0x3c, 0x3f, 0x2d, 0x72, 0x2d, 0x9c, 0x3f, 0x9d, 0x33, 0x27, 0x75, 0x3f, 0x9e, 0x2c, 0x31, 0x6f, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x43, 0x45, 0x45, 0x45, 0x45, 0x49, 0x49, 0x49, 0x49, 0x44, 0x4e, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x78, 0x4f, 0x55, 0x55, 0x55, 0x55, 0x59, 0x3f, 0x3f, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x63, 0x65, 0x65, 0x65, 0x65, 0x69, 0x69, 0x69, 0x69, 0x64, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x9f, 0x6f, 0x75, 0x75, 0x75, 0x75, 0x79, 0x3f, 0x79, /* 0x0100 .. 0x01ff */ 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x49, 0x69, 0x3f, 0x3f, 0x4a, 0x6a, 0x4b, 0x6b, 0x3f, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x3f, 0x3f, 0x4c, 0x6c, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x3f, 0x3f, 0x3f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x57, 0x77, 0x59, 0x79, 0x59, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x73, 0x62, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x46, 0x66, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x6c, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x74, 0x3f, 0x3f, 0x54, 0x55, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x81, 0x3f, 0x3f, 0x21, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x49, 0x69, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x47, 0x67, 0x47, 0x67, 0x4b, 0x6b, 0x4f, 0x6f, 0x4f, 0x6f, 0x3f, 0x3f, 0x6a, 0x3f, 0x3f, 0x3f, 0x47, 0x67, 0x3f, 0x3f, 0x4e, 0x6e, 0x41, 0x61, 0x41, 0x61, 0x4f, 0x6f, /* 0x0200 .. 0x02ff */ 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x52, 0x72, 0x52, 0x72, 0x55, 0x75, 0x55, 0x75, 0x53, 0x73, 0x54, 0x74, 0x3f, 0x3f, 0x48, 0x68, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x45, 0x65, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x67, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x68, 0x3f, 0x6a, 0x72, 0x3f, 0x3f, 0x3f, 0x77, 0x79, 0x27, 0x22, 0x60, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x5e, 0x76, 0x27, 0x2d, 0x27, 0x60, 0x3f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9c, 0x3f, 0x7e, 0x22, 0x3f, 0x3f, 0x3f, 0x6c, 0x73, 0x78, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0300 .. 0x03ff */ 0x60, 0x27, 0x5e, 0x7e, 0x2d, 0x2d, 0x3f, 0x3f, 0x22, 0x3f, 0x9c, 0x22, 0x76, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5f, 0x5f, 0x5f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x60, 0x27, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x27, 0x22, 0x41, 0x9e, 0x45, 0x48, 0x49, 0x3f, 0x4f, 0x3f, 0x59, 0x3f, 0x3f, 0x41, 0x42, 0x3f, 0x3f, 0x45, 0x5a, 0x48, 0x3f, 0x49, 0x4b, 0x3f, 0x4d, 0x4e, 0x3f, 0x4f, 0x3f, 0x50, 0x3f, 0x3f, 0x54, 0x59, 0x3f, 0x58, 0x3f, 0x3f, 0x49, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x75, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x0400 .. 0x04ff */ 0xe5, 0xb3, 0x3f, 0xe7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xeb, 0xe9, 0xf5, 0x3f, 0xe1, 0xe2, 0xf7, 0xe7, 0xe4, 0xe5, 0xf6, 0xfa, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf2, 0xf3, 0xf4, 0xf5, 0xe6, 0xe8, 0xe3, 0xfe, 0xfb, 0xfd, 0xff, 0xf9, 0xf8, 0xfc, 0xe0, 0xf1, 0xc1, 0xc2, 0xd7, 0xc7, 0xc4, 0xc5, 0xd6, 0xda, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd2, 0xd3, 0xd4, 0xd5, 0xc6, 0xc8, 0xc3, 0xde, 0xdb, 0xdd, 0xdf, 0xd9, 0xd8, 0xdc, 0xc0, 0xd1, 0xc5, 0xa3, 0x3f, 0xc7, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0xc9, 0xd5, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xe1, 0xc1, 0xe1, 0xc1, 0x3f, 0x3f, 0xe5, 0xc5, 0x3f, 0x3f, 0x3f, 0x3f, 0xf6, 0xd6, 0xfa, 0xda, 0x3f, 0x3f, 0xe9, 0xc9, 0xe9, 0xc9, 0xef, 0xcf, 0x3f, 0x3f, 0x3f, 0x3f, 0xfc, 0xdc, 0xf5, 0xd5, 0xf5, 0xd5, 0xf5, 0xd5, 0xfe, 0xde, 0x3f, 0x3f, 0xf9, 0xd9, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1e00 .. 0x1eff */ 0x41, 0x61, 0x42, 0x62, 0x42, 0x62, 0x42, 0x62, 0x43, 0x63, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x44, 0x64, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x46, 0x66, 0x47, 0x67, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x48, 0x68, 0x49, 0x69, 0x49, 0x69, 0x4b, 0x6b, 0x4b, 0x6b, 0x4b, 0x6b, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4c, 0x6c, 0x4d, 0x6d, 0x4d, 0x6d, 0x4d, 0x6d, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4e, 0x6e, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x50, 0x70, 0x50, 0x70, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x52, 0x72, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x54, 0x74, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x56, 0x76, 0x56, 0x76, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x57, 0x77, 0x58, 0x78, 0x58, 0x78, 0x59, 0x79, 0x5a, 0x7a, 0x5a, 0x7a, 0x5a, 0x7a, 0x68, 0x74, 0x77, 0x79, 0x3f, 0x73, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x41, 0x61, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x45, 0x65, 0x49, 0x69, 0x49, 0x69, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x4f, 0x6f, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x55, 0x75, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x59, 0x79, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x1f00 .. 0x1fff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x59, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x41, 0x41, 0x41, 0x41, 0x3f, 0x3f, 0x3f, 0x3f, 0x22, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x45, 0x48, 0x48, 0x48, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x49, 0x49, 0x49, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x59, 0x59, 0x59, 0x59, 0x50, 0x22, 0x22, 0x60, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x4f, 0x3f, 0x3f, 0x3f, 0x27, 0x3f, 0x3f, /* 0x2000 .. 0x20ff */ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x2d, 0x2d, 0x2d, 0x3f, 0x5f, 0x60, 0x27, 0x2c, 0x60, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x95, 0x3f, 0x2e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x27, 0x22, 0x3f, 0x60, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x21, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9c, 0x69, 0x3f, 0x3f, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2d, 0x3d, 0x28, 0x29, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2100 .. 0x21ff */ 0x3f, 0x3f, 0x43, 0x3f, 0x3f, 0x3f, 0x3f, 0x45, 0x3f, 0x3f, 0x67, 0x48, 0x48, 0x48, 0x68, 0x68, 0x49, 0x49, 0x4c, 0x6c, 0x3f, 0x4e, 0x3f, 0x3f, 0x50, 0x50, 0x51, 0x52, 0x52, 0x52, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x3f, 0x3f, 0x5a, 0x3f, 0x4b, 0x41, 0x42, 0x43, 0x65, 0x65, 0x45, 0x46, 0x3f, 0x4d, 0x6f, 0x3f, 0x3f, 0x3f, 0x3f, 0x69, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x44, 0x64, 0x65, 0x69, 0x6a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x49, 0x3f, 0x3f, 0x3f, 0x56, 0x3f, 0x3f, 0x3f, 0x3f, 0x58, 0x3f, 0x3f, 0x4c, 0x43, 0x44, 0x4d, 0x69, 0x3f, 0x3f, 0x3f, 0x76, 0x3f, 0x3f, 0x3f, 0x3f, 0x78, 0x3f, 0x3f, 0x6c, 0x63, 0x64, 0x6d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x5e, 0x3e, 0x76, 0x2d, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2200 .. 0x22ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x3f, 0x3f, 0x2f, 0x5c, 0x2a, 0x9c, 0x95, 0x96, 0x3f, 0x3f, 0x3f, 0x3f, 0x4c, 0x3f, 0x3f, 0x3f, 0x7c, 0x7c, 0x3f, 0x3f, 0x3f, 0x3f, 0x6e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3a, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x97, 0x97, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3d, 0x3d, 0x3d, 0x3d, 0x98, 0x99, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3c, 0x3e, 0x98, 0x99, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x9e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2300 .. 0x23ff */ 0x3f, 0x3f, 0x3f, 0x5e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x93, 0x9b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2400 .. 0x24ff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x2500 .. 0x25ff */ 0x80, 0x80, 0x81, 0x81, 0x2d, 0x2d, 0x3f, 0x3f, 0x2d, 0x2d, 0x3f, 0x3f, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x89, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x8a, 0x2d, 0x2d, 0x3f, 0x3f, 0xa0, 0xa1, 0xa2, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0x3f, 0x3f, 0x3f, 0x3f, 0x2f, 0x5c, 0x58, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x2d, 0x7c, 0x8b, 0x3f, 0x3f, 0x3f, 0x8c, 0x3f, 0x3f, 0x3f, 0x8d, 0x3f, 0x3f, 0x3f, 0x8e, 0x3f, 0x3f, 0x3f, 0x8f, 0x90, 0x91, 0x92, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x94, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0x3000 .. 0x30ff */ 0x20, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3c, 0x3e, 0x3c, 0x3e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x5b, 0x5d, 0x3f, 0x22, 0x22, 0x2c, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfb00 .. 0xfbff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2b, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xfe00 .. 0xfeff */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x2d, 0x2d, 0x2d, 0x2d, 0x5f, 0x5f, 0x5f, 0x2c, 0x3f, 0x2e, 0x3f, 0x3b, 0x3a, 0x3f, 0x21, 0x2d, 0x28, 0x29, 0x7b, 0x7d, 0x3f, 0x3f, 0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d, 0x3f, 0x5c, 0x24, 0x25, 0x40, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* 0xff00 .. 0xffff */ 0x3f, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x63, 0x4c, 0x3f, 0x2d, 0x3f, 0x59, 0x3f, 0x3f, 0x81, 0x3c, 0x5e, 0x3e, 0x76, 0x94, 0x4f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, /* defaults */ 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0d00, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0e00, 0x1100, 0x1100, 0x0f00, 0x1000 }; const struct sbcs_table cptable_878 = { { 878, 1, 0x003f, 0x003f, "Russian KOI8" }, cp2uni, uni2cp_low, uni2cp_high }; ================================================ FILE: Project/Unicode/Source/c_932.cpp ================================================ /* code page 932 (ANSI/OEM Japanese Shift-JIS) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[12032] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, 0xff61, 0xff62, 0xff63, 0xff64, 0xff65, 0xff66, 0xff67, 0xff68, 0xff69, 0xff6a, 0xff6b, 0xff6c, 0xff6d, 0xff6e, 0xff6f, 0xff70, 0xff71, 0xff72, 0xff73, 0xff74, 0xff75, 0xff76, 0xff77, 0xff78, 0xff79, 0xff7a, 0xff7b, 0xff7c, 0xff7d, 0xff7e, 0xff7f, 0xff80, 0xff81, 0xff82, 0xff83, 0xff84, 0xff85, 0xff86, 0xff87, 0xff88, 0xff89, 0xff8a, 0xff8b, 0xff8c, 0xff8d, 0xff8e, 0xff8f, 0xff90, 0xff91, 0xff92, 0xff93, 0xff94, 0xff95, 0xff96, 0xff97, 0xff98, 0xff99, 0xff9a, 0xff9b, 0xff9c, 0xff9d, 0xff9e, 0xff9f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, 0x00fe, 0x003f, /* unused lead bytes */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 81 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3000, 0x3001, 0x3002, 0xff0c, 0xff0e, 0x30fb, 0xff1a, 0xff1b, 0xff1f, 0xff01, 0x309b, 0x309c, 0x00b4, 0xff40, 0x00a8, 0xff3e, 0xffe3, 0xff3f, 0x30fd, 0x30fe, 0x309d, 0x309e, 0x3003, 0x4edd, 0x3005, 0x3006, 0x3007, 0x30fc, 0x2015, 0x2010, 0xff0f, 0xff3c, 0xff5e, 0x2225, 0xff5c, 0x2026, 0x2025, 0x2018, 0x2019, 0x201c, 0x201d, 0xff08, 0xff09, 0x3014, 0x3015, 0xff3b, 0xff3d, 0xff5b, 0xff5d, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0xff0b, 0xff0d, 0x00b1, 0x00d7, 0x003f, 0x00f7, 0xff1d, 0x2260, 0xff1c, 0xff1e, 0x2266, 0x2267, 0x221e, 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xffe5, 0xff04, 0xffe0, 0xffe1, 0xff05, 0xff03, 0xff06, 0xff0a, 0xff20, 0x00a7, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x203b, 0x3012, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2227, 0x2228, 0xffe2, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x212b, 0x2030, 0x266f, 0x266d, 0x266a, 0x2020, 0x2021, 0x00b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x25ef, 0x003f, 0x003f, 0x003f, /* lead byte 82 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0x003f, 0x003f, 0x003f, 0x003f, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 83 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x003f, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 84 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x003f, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 87 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472, 0x2473, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x003f, 0x3349, 0x3314, 0x3322, 0x334d, 0x3318, 0x3327, 0x3303, 0x3336, 0x3351, 0x3357, 0x330d, 0x3326, 0x3323, 0x332b, 0x334a, 0x333b, 0x339c, 0x339d, 0x339e, 0x338e, 0x338f, 0x33c4, 0x33a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x337b, 0x003f, 0x301d, 0x301f, 0x2116, 0x33cd, 0x2121, 0x32a4, 0x32a5, 0x32a6, 0x32a7, 0x32a8, 0x3231, 0x3232, 0x3239, 0x337e, 0x337d, 0x337c, 0x2252, 0x2261, 0x222b, 0x222e, 0x2211, 0x221a, 0x22a5, 0x2220, 0x221f, 0x22bf, 0x2235, 0x2229, 0x222a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 88 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e9c, 0x5516, 0x5a03, 0x963f, 0x54c0, 0x611b, 0x6328, 0x59f6, 0x9022, 0x8475, 0x831c, 0x7a50, 0x60aa, 0x63e1, 0x6e25, 0x65ed, 0x8466, 0x82a6, 0x9bf5, 0x6893, 0x5727, 0x65a1, 0x6271, 0x5b9b, 0x59d0, 0x867b, 0x98f4, 0x7d62, 0x7dbe, 0x9b8e, 0x6216, 0x7c9f, 0x88b7, 0x5b89, 0x5eb5, 0x6309, 0x6697, 0x6848, 0x95c7, 0x978d, 0x674f, 0x4ee5, 0x4f0a, 0x4f4d, 0x4f9d, 0x5049, 0x56f2, 0x5937, 0x59d4, 0x5a01, 0x5c09, 0x60df, 0x610f, 0x6170, 0x6613, 0x6905, 0x70ba, 0x754f, 0x7570, 0x79fb, 0x7dad, 0x7def, 0x80c3, 0x840e, 0x8863, 0x8b02, 0x9055, 0x907a, 0x533b, 0x4e95, 0x4ea5, 0x57df, 0x80b2, 0x90c1, 0x78ef, 0x4e00, 0x58f1, 0x6ea2, 0x9038, 0x7a32, 0x8328, 0x828b, 0x9c2f, 0x5141, 0x5370, 0x54bd, 0x54e1, 0x56e0, 0x59fb, 0x5f15, 0x98f2, 0x6deb, 0x80e4, 0x852d, 0x003f, 0x003f, 0x003f, /* lead byte 89 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9662, 0x9670, 0x96a0, 0x97fb, 0x540b, 0x53f3, 0x5b87, 0x70cf, 0x7fbd, 0x8fc2, 0x96e8, 0x536f, 0x9d5c, 0x7aba, 0x4e11, 0x7893, 0x81fc, 0x6e26, 0x5618, 0x5504, 0x6b1d, 0x851a, 0x9c3b, 0x59e5, 0x53a9, 0x6d66, 0x74dc, 0x958f, 0x5642, 0x4e91, 0x904b, 0x96f2, 0x834f, 0x990c, 0x53e1, 0x55b6, 0x5b30, 0x5f71, 0x6620, 0x66f3, 0x6804, 0x6c38, 0x6cf3, 0x6d29, 0x745b, 0x76c8, 0x7a4e, 0x9834, 0x82f1, 0x885b, 0x8a60, 0x92ed, 0x6db2, 0x75ab, 0x76ca, 0x99c5, 0x60a6, 0x8b01, 0x8d8a, 0x95b2, 0x698e, 0x53ad, 0x5186, 0x003f, 0x5712, 0x5830, 0x5944, 0x5bb4, 0x5ef6, 0x6028, 0x63a9, 0x63f4, 0x6cbf, 0x6f14, 0x708e, 0x7114, 0x7159, 0x71d5, 0x733f, 0x7e01, 0x8276, 0x82d1, 0x8597, 0x9060, 0x925b, 0x9d1b, 0x5869, 0x65bc, 0x6c5a, 0x7525, 0x51f9, 0x592e, 0x5965, 0x5f80, 0x5fdc, 0x62bc, 0x65fa, 0x6a2a, 0x6b27, 0x6bb4, 0x738b, 0x7fc1, 0x8956, 0x9d2c, 0x9d0e, 0x9ec4, 0x5ca1, 0x6c96, 0x837b, 0x5104, 0x5c4b, 0x61b6, 0x81c6, 0x6876, 0x7261, 0x4e59, 0x4ffa, 0x5378, 0x6069, 0x6e29, 0x7a4f, 0x97f3, 0x4e0b, 0x5316, 0x4eee, 0x4f55, 0x4f3d, 0x4fa1, 0x4f73, 0x52a0, 0x53ef, 0x5609, 0x590f, 0x5ac1, 0x5bb6, 0x5be1, 0x79d1, 0x6687, 0x679c, 0x67b6, 0x6b4c, 0x6cb3, 0x706b, 0x73c2, 0x798d, 0x79be, 0x7a3c, 0x7b87, 0x82b1, 0x82db, 0x8304, 0x8377, 0x83ef, 0x83d3, 0x8766, 0x8ab2, 0x5629, 0x8ca8, 0x8fe6, 0x904e, 0x971e, 0x868a, 0x4fc4, 0x5ce8, 0x6211, 0x7259, 0x753b, 0x81e5, 0x82bd, 0x86fe, 0x8cc0, 0x96c5, 0x9913, 0x99d5, 0x4ecb, 0x4f1a, 0x89e3, 0x56de, 0x584a, 0x58ca, 0x5efb, 0x5feb, 0x602a, 0x6094, 0x6062, 0x61d0, 0x6212, 0x62d0, 0x6539, 0x003f, 0x003f, 0x003f, /* lead byte 8a */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b41, 0x6666, 0x68b0, 0x6d77, 0x7070, 0x754c, 0x7686, 0x7d75, 0x82a5, 0x87f9, 0x958b, 0x968e, 0x8c9d, 0x51f1, 0x52be, 0x5916, 0x54b3, 0x5bb3, 0x5d16, 0x6168, 0x6982, 0x6daf, 0x788d, 0x84cb, 0x8857, 0x8a72, 0x93a7, 0x9ab8, 0x6d6c, 0x99a8, 0x86d9, 0x57a3, 0x67ff, 0x86ce, 0x920e, 0x5283, 0x5687, 0x5404, 0x5ed3, 0x62e1, 0x64b9, 0x683c, 0x6838, 0x6bbb, 0x7372, 0x78ba, 0x7a6b, 0x899a, 0x89d2, 0x8d6b, 0x8f03, 0x90ed, 0x95a3, 0x9694, 0x9769, 0x5b66, 0x5cb3, 0x697d, 0x984d, 0x984e, 0x639b, 0x7b20, 0x6a2b, 0x003f, 0x6a7f, 0x68b6, 0x9c0d, 0x6f5f, 0x5272, 0x559d, 0x6070, 0x62ec, 0x6d3b, 0x6e07, 0x6ed1, 0x845b, 0x8910, 0x8f44, 0x4e14, 0x9c39, 0x53f6, 0x691b, 0x6a3a, 0x9784, 0x682a, 0x515c, 0x7ac3, 0x84b2, 0x91dc, 0x938c, 0x565b, 0x9d28, 0x6822, 0x8305, 0x8431, 0x7ca5, 0x5208, 0x82c5, 0x74e6, 0x4e7e, 0x4f83, 0x51a0, 0x5bd2, 0x520a, 0x52d8, 0x52e7, 0x5dfb, 0x559a, 0x582a, 0x59e6, 0x5b8c, 0x5b98, 0x5bdb, 0x5e72, 0x5e79, 0x60a3, 0x611f, 0x6163, 0x61be, 0x63db, 0x6562, 0x67d1, 0x6853, 0x68fa, 0x6b3e, 0x6b53, 0x6c57, 0x6f22, 0x6f97, 0x6f45, 0x74b0, 0x7518, 0x76e3, 0x770b, 0x7aff, 0x7ba1, 0x7c21, 0x7de9, 0x7f36, 0x7ff0, 0x809d, 0x8266, 0x839e, 0x89b3, 0x8acc, 0x8cab, 0x9084, 0x9451, 0x9593, 0x9591, 0x95a2, 0x9665, 0x97d3, 0x9928, 0x8218, 0x4e38, 0x542b, 0x5cb8, 0x5dcc, 0x73a9, 0x764c, 0x773c, 0x5ca9, 0x7feb, 0x8d0b, 0x96c1, 0x9811, 0x9854, 0x9858, 0x4f01, 0x4f0e, 0x5371, 0x559c, 0x5668, 0x57fa, 0x5947, 0x5b09, 0x5bc4, 0x5c90, 0x5e0c, 0x5e7e, 0x5fcc, 0x63ee, 0x673a, 0x65d7, 0x65e2, 0x671f, 0x68cb, 0x68c4, 0x003f, 0x003f, 0x003f, /* lead byte 8b */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6a5f, 0x5e30, 0x6bc5, 0x6c17, 0x6c7d, 0x757f, 0x7948, 0x5b63, 0x7a00, 0x7d00, 0x5fbd, 0x898f, 0x8a18, 0x8cb4, 0x8d77, 0x8ecc, 0x8f1d, 0x98e2, 0x9a0e, 0x9b3c, 0x4e80, 0x507d, 0x5100, 0x5993, 0x5b9c, 0x622f, 0x6280, 0x64ec, 0x6b3a, 0x72a0, 0x7591, 0x7947, 0x7fa9, 0x87fb, 0x8abc, 0x8b70, 0x63ac, 0x83ca, 0x97a0, 0x5409, 0x5403, 0x55ab, 0x6854, 0x6a58, 0x8a70, 0x7827, 0x6775, 0x9ecd, 0x5374, 0x5ba2, 0x811a, 0x8650, 0x9006, 0x4e18, 0x4e45, 0x4ec7, 0x4f11, 0x53ca, 0x5438, 0x5bae, 0x5f13, 0x6025, 0x6551, 0x003f, 0x673d, 0x6c42, 0x6c72, 0x6ce3, 0x7078, 0x7403, 0x7a76, 0x7aae, 0x7b08, 0x7d1a, 0x7cfe, 0x7d66, 0x65e7, 0x725b, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x62e0, 0x6319, 0x6e20, 0x865a, 0x8a31, 0x8ddd, 0x92f8, 0x6f01, 0x79a6, 0x9b5a, 0x4ea8, 0x4eab, 0x4eac, 0x4f9b, 0x4fa0, 0x50d1, 0x5147, 0x7af6, 0x5171, 0x51f6, 0x5354, 0x5321, 0x537f, 0x53eb, 0x55ac, 0x5883, 0x5ce1, 0x5f37, 0x5f4a, 0x602f, 0x6050, 0x606d, 0x631f, 0x6559, 0x6a4b, 0x6cc1, 0x72c2, 0x72ed, 0x77ef, 0x80f8, 0x8105, 0x8208, 0x854e, 0x90f7, 0x93e1, 0x97ff, 0x9957, 0x9a5a, 0x4ef0, 0x51dd, 0x5c2d, 0x6681, 0x696d, 0x5c40, 0x66f2, 0x6975, 0x7389, 0x6850, 0x7c81, 0x50c5, 0x52e4, 0x5747, 0x5dfe, 0x9326, 0x65a4, 0x6b23, 0x6b3d, 0x7434, 0x7981, 0x79bd, 0x7b4b, 0x7dca, 0x82b9, 0x83cc, 0x887f, 0x895f, 0x8b39, 0x8fd1, 0x91d1, 0x541f, 0x9280, 0x4e5d, 0x5036, 0x53e5, 0x533a, 0x72d7, 0x7396, 0x77e9, 0x82e6, 0x8eaf, 0x99c6, 0x99c8, 0x99d2, 0x5177, 0x611a, 0x865e, 0x55b0, 0x7a7a, 0x5076, 0x5bd3, 0x9047, 0x9685, 0x4e32, 0x6adb, 0x91e7, 0x5c51, 0x5c48, 0x003f, 0x003f, 0x003f, /* lead byte 8c */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6398, 0x7a9f, 0x6c93, 0x9774, 0x8f61, 0x7aaa, 0x718a, 0x9688, 0x7c82, 0x6817, 0x7e70, 0x6851, 0x936c, 0x52f2, 0x541b, 0x85ab, 0x8a13, 0x7fa4, 0x8ecd, 0x90e1, 0x5366, 0x8888, 0x7941, 0x4fc2, 0x50be, 0x5211, 0x5144, 0x5553, 0x572d, 0x73ea, 0x578b, 0x5951, 0x5f62, 0x5f84, 0x6075, 0x6176, 0x6167, 0x61a9, 0x63b2, 0x643a, 0x656c, 0x666f, 0x6842, 0x6e13, 0x7566, 0x7a3d, 0x7cfb, 0x7d4c, 0x7d99, 0x7e4b, 0x7f6b, 0x830e, 0x834a, 0x86cd, 0x8a08, 0x8a63, 0x8b66, 0x8efd, 0x981a, 0x9d8f, 0x82b8, 0x8fce, 0x9be8, 0x003f, 0x5287, 0x621f, 0x6483, 0x6fc0, 0x9699, 0x6841, 0x5091, 0x6b20, 0x6c7a, 0x6f54, 0x7a74, 0x7d50, 0x8840, 0x8a23, 0x6708, 0x4ef6, 0x5039, 0x5026, 0x5065, 0x517c, 0x5238, 0x5263, 0x55a7, 0x570f, 0x5805, 0x5acc, 0x5efa, 0x61b2, 0x61f8, 0x62f3, 0x6372, 0x691c, 0x6a29, 0x727d, 0x72ac, 0x732e, 0x7814, 0x786f, 0x7d79, 0x770c, 0x80a9, 0x898b, 0x8b19, 0x8ce2, 0x8ed2, 0x9063, 0x9375, 0x967a, 0x9855, 0x9a13, 0x9e78, 0x5143, 0x539f, 0x53b3, 0x5e7b, 0x5f26, 0x6e1b, 0x6e90, 0x7384, 0x73fe, 0x7d43, 0x8237, 0x8a00, 0x8afa, 0x9650, 0x4e4e, 0x500b, 0x53e4, 0x547c, 0x56fa, 0x59d1, 0x5b64, 0x5df1, 0x5eab, 0x5f27, 0x6238, 0x6545, 0x67af, 0x6e56, 0x72d0, 0x7cca, 0x88b4, 0x80a1, 0x80e1, 0x83f0, 0x864e, 0x8a87, 0x8de8, 0x9237, 0x96c7, 0x9867, 0x9f13, 0x4e94, 0x4e92, 0x4f0d, 0x5348, 0x5449, 0x543e, 0x5a2f, 0x5f8c, 0x5fa1, 0x609f, 0x68a7, 0x6a8e, 0x745a, 0x7881, 0x8a9e, 0x8aa4, 0x8b77, 0x9190, 0x4e5e, 0x9bc9, 0x4ea4, 0x4f7c, 0x4faf, 0x5019, 0x5016, 0x5149, 0x516c, 0x529f, 0x52b9, 0x52fe, 0x539a, 0x53e3, 0x5411, 0x003f, 0x003f, 0x003f, /* lead byte 8d */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x540e, 0x5589, 0x5751, 0x57a2, 0x597d, 0x5b54, 0x5b5d, 0x5b8f, 0x5de5, 0x5de7, 0x5df7, 0x5e78, 0x5e83, 0x5e9a, 0x5eb7, 0x5f18, 0x6052, 0x614c, 0x6297, 0x62d8, 0x63a7, 0x653b, 0x6602, 0x6643, 0x66f4, 0x676d, 0x6821, 0x6897, 0x69cb, 0x6c5f, 0x6d2a, 0x6d69, 0x6e2f, 0x6e9d, 0x7532, 0x7687, 0x786c, 0x7a3f, 0x7ce0, 0x7d05, 0x7d18, 0x7d5e, 0x7db1, 0x8015, 0x8003, 0x80af, 0x80b1, 0x8154, 0x818f, 0x822a, 0x8352, 0x884c, 0x8861, 0x8b1b, 0x8ca2, 0x8cfc, 0x90ca, 0x9175, 0x9271, 0x783f, 0x92fc, 0x95a4, 0x964d, 0x003f, 0x9805, 0x9999, 0x9ad8, 0x9d3b, 0x525b, 0x52ab, 0x53f7, 0x5408, 0x58d5, 0x62f7, 0x6fe0, 0x8c6a, 0x8f5f, 0x9eb9, 0x514b, 0x523b, 0x544a, 0x56fd, 0x7a40, 0x9177, 0x9d60, 0x9ed2, 0x7344, 0x6f09, 0x8170, 0x7511, 0x5ffd, 0x60da, 0x9aa8, 0x72db, 0x8fbc, 0x6b64, 0x9803, 0x4eca, 0x56f0, 0x5764, 0x58be, 0x5a5a, 0x6068, 0x61c7, 0x660f, 0x6606, 0x6839, 0x68b1, 0x6df7, 0x75d5, 0x7d3a, 0x826e, 0x9b42, 0x4e9b, 0x4f50, 0x53c9, 0x5506, 0x5d6f, 0x5de6, 0x5dee, 0x67fb, 0x6c99, 0x7473, 0x7802, 0x8a50, 0x9396, 0x88df, 0x5750, 0x5ea7, 0x632b, 0x50b5, 0x50ac, 0x518d, 0x6700, 0x54c9, 0x585e, 0x59bb, 0x5bb0, 0x5f69, 0x624d, 0x63a1, 0x683d, 0x6b73, 0x6e08, 0x707d, 0x91c7, 0x7280, 0x7815, 0x7826, 0x796d, 0x658e, 0x7d30, 0x83dc, 0x88c1, 0x8f09, 0x969b, 0x5264, 0x5728, 0x6750, 0x7f6a, 0x8ca1, 0x51b4, 0x5742, 0x962a, 0x583a, 0x698a, 0x80b4, 0x54b2, 0x5d0e, 0x57fc, 0x7895, 0x9dfa, 0x4f5c, 0x524a, 0x548b, 0x643e, 0x6628, 0x6714, 0x67f5, 0x7a84, 0x7b56, 0x7d22, 0x932f, 0x685c, 0x9bad, 0x7b39, 0x5319, 0x518a, 0x5237, 0x003f, 0x003f, 0x003f, /* lead byte 8e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5bdf, 0x62f6, 0x64ae, 0x64e6, 0x672d, 0x6bba, 0x85a9, 0x96d1, 0x7690, 0x9bd6, 0x634c, 0x9306, 0x9bab, 0x76bf, 0x6652, 0x4e09, 0x5098, 0x53c2, 0x5c71, 0x60e8, 0x6492, 0x6563, 0x685f, 0x71e6, 0x73ca, 0x7523, 0x7b97, 0x7e82, 0x8695, 0x8b83, 0x8cdb, 0x9178, 0x9910, 0x65ac, 0x66ab, 0x6b8b, 0x4ed5, 0x4ed4, 0x4f3a, 0x4f7f, 0x523a, 0x53f8, 0x53f2, 0x55e3, 0x56db, 0x58eb, 0x59cb, 0x59c9, 0x59ff, 0x5b50, 0x5c4d, 0x5e02, 0x5e2b, 0x5fd7, 0x601d, 0x6307, 0x652f, 0x5b5c, 0x65af, 0x65bd, 0x65e8, 0x679d, 0x6b62, 0x003f, 0x6b7b, 0x6c0f, 0x7345, 0x7949, 0x79c1, 0x7cf8, 0x7d19, 0x7d2b, 0x80a2, 0x8102, 0x81f3, 0x8996, 0x8a5e, 0x8a69, 0x8a66, 0x8a8c, 0x8aee, 0x8cc7, 0x8cdc, 0x96cc, 0x98fc, 0x6b6f, 0x4e8b, 0x4f3c, 0x4f8d, 0x5150, 0x5b57, 0x5bfa, 0x6148, 0x6301, 0x6642, 0x6b21, 0x6ecb, 0x6cbb, 0x723e, 0x74bd, 0x75d4, 0x78c1, 0x793a, 0x800c, 0x8033, 0x81ea, 0x8494, 0x8f9e, 0x6c50, 0x9e7f, 0x5f0f, 0x8b58, 0x9d2b, 0x7afa, 0x8ef8, 0x5b8d, 0x96eb, 0x4e03, 0x53f1, 0x57f7, 0x5931, 0x5ac9, 0x5ba4, 0x6089, 0x6e7f, 0x6f06, 0x75be, 0x8cea, 0x5b9f, 0x8500, 0x7be0, 0x5072, 0x67f4, 0x829d, 0x5c61, 0x854a, 0x7e1e, 0x820e, 0x5199, 0x5c04, 0x6368, 0x8d66, 0x659c, 0x716e, 0x793e, 0x7d17, 0x8005, 0x8b1d, 0x8eca, 0x906e, 0x86c7, 0x90aa, 0x501f, 0x52fa, 0x5c3a, 0x6753, 0x707c, 0x7235, 0x914c, 0x91c8, 0x932b, 0x82e5, 0x5bc2, 0x5f31, 0x60f9, 0x4e3b, 0x53d6, 0x5b88, 0x624b, 0x6731, 0x6b8a, 0x72e9, 0x73e0, 0x7a2e, 0x816b, 0x8da3, 0x9152, 0x9996, 0x5112, 0x53d7, 0x546a, 0x5bff, 0x6388, 0x6a39, 0x7dac, 0x9700, 0x56da, 0x53ce, 0x5468, 0x003f, 0x003f, 0x003f, /* lead byte 8f */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5b97, 0x5c31, 0x5dde, 0x4fee, 0x6101, 0x62fe, 0x6d32, 0x79c0, 0x79cb, 0x7d42, 0x7e4d, 0x7fd2, 0x81ed, 0x821f, 0x8490, 0x8846, 0x8972, 0x8b90, 0x8e74, 0x8f2f, 0x9031, 0x914b, 0x916c, 0x96c6, 0x919c, 0x4ec0, 0x4f4f, 0x5145, 0x5341, 0x5f93, 0x620e, 0x67d4, 0x6c41, 0x6e0b, 0x7363, 0x7e26, 0x91cd, 0x9283, 0x53d4, 0x5919, 0x5bbf, 0x6dd1, 0x795d, 0x7e2e, 0x7c9b, 0x587e, 0x719f, 0x51fa, 0x8853, 0x8ff0, 0x4fca, 0x5cfb, 0x6625, 0x77ac, 0x7ae3, 0x821c, 0x99ff, 0x51c6, 0x5faa, 0x65ec, 0x696f, 0x6b89, 0x6df3, 0x003f, 0x6e96, 0x6f64, 0x76fe, 0x7d14, 0x5de1, 0x9075, 0x9187, 0x9806, 0x51e6, 0x521d, 0x6240, 0x6691, 0x66d9, 0x6e1a, 0x5eb6, 0x7dd2, 0x7f72, 0x66f8, 0x85af, 0x85f7, 0x8af8, 0x52a9, 0x53d9, 0x5973, 0x5e8f, 0x5f90, 0x6055, 0x92e4, 0x9664, 0x50b7, 0x511f, 0x52dd, 0x5320, 0x5347, 0x53ec, 0x54e8, 0x5546, 0x5531, 0x5617, 0x5968, 0x59be, 0x5a3c, 0x5bb5, 0x5c06, 0x5c0f, 0x5c11, 0x5c1a, 0x5e84, 0x5e8a, 0x5ee0, 0x5f70, 0x627f, 0x6284, 0x62db, 0x638c, 0x6377, 0x6607, 0x660c, 0x662d, 0x6676, 0x677e, 0x68a2, 0x6a1f, 0x6a35, 0x6cbc, 0x6d88, 0x6e09, 0x6e58, 0x713c, 0x7126, 0x7167, 0x75c7, 0x7701, 0x785d, 0x7901, 0x7965, 0x79f0, 0x7ae0, 0x7b11, 0x7ca7, 0x7d39, 0x8096, 0x83d6, 0x848b, 0x8549, 0x885d, 0x88f3, 0x8a1f, 0x8a3c, 0x8a54, 0x8a73, 0x8c61, 0x8cde, 0x91a4, 0x9266, 0x937e, 0x9418, 0x969c, 0x9798, 0x4e0a, 0x4e08, 0x4e1e, 0x4e57, 0x5197, 0x5270, 0x57ce, 0x5834, 0x58cc, 0x5b22, 0x5e38, 0x60c5, 0x64fe, 0x6761, 0x6756, 0x6d44, 0x72b6, 0x7573, 0x7a63, 0x84b8, 0x8b72, 0x91b8, 0x9320, 0x5631, 0x57f4, 0x98fe, 0x003f, 0x003f, 0x003f, /* lead byte 90 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x62ed, 0x690d, 0x6b96, 0x71ed, 0x7e54, 0x8077, 0x8272, 0x89e6, 0x98df, 0x8755, 0x8fb1, 0x5c3b, 0x4f38, 0x4fe1, 0x4fb5, 0x5507, 0x5a20, 0x5bdd, 0x5be9, 0x5fc3, 0x614e, 0x632f, 0x65b0, 0x664b, 0x68ee, 0x699b, 0x6d78, 0x6df1, 0x7533, 0x75b9, 0x771f, 0x795e, 0x79e6, 0x7d33, 0x81e3, 0x82af, 0x85aa, 0x89aa, 0x8a3a, 0x8eab, 0x8f9b, 0x9032, 0x91dd, 0x9707, 0x4eba, 0x4ec1, 0x5203, 0x5875, 0x58ec, 0x5c0b, 0x751a, 0x5c3d, 0x814e, 0x8a0a, 0x8fc5, 0x9663, 0x976d, 0x7b25, 0x8acf, 0x9808, 0x9162, 0x56f3, 0x53a8, 0x003f, 0x9017, 0x5439, 0x5782, 0x5e25, 0x63a8, 0x6c34, 0x708a, 0x7761, 0x7c8b, 0x7fe0, 0x8870, 0x9042, 0x9154, 0x9310, 0x9318, 0x968f, 0x745e, 0x9ac4, 0x5d07, 0x5d69, 0x6570, 0x67a2, 0x8da8, 0x96db, 0x636e, 0x6749, 0x6919, 0x83c5, 0x9817, 0x96c0, 0x88fe, 0x6f84, 0x647a, 0x5bf8, 0x4e16, 0x702c, 0x755d, 0x662f, 0x51c4, 0x5236, 0x52e2, 0x59d3, 0x5f81, 0x6027, 0x6210, 0x653f, 0x6574, 0x661f, 0x6674, 0x68f2, 0x6816, 0x6b63, 0x6e05, 0x7272, 0x751f, 0x76db, 0x7cbe, 0x8056, 0x58f0, 0x88fd, 0x897f, 0x8aa0, 0x8a93, 0x8acb, 0x901d, 0x9192, 0x9752, 0x9759, 0x6589, 0x7a0e, 0x8106, 0x96bb, 0x5e2d, 0x60dc, 0x621a, 0x65a5, 0x6614, 0x6790, 0x77f3, 0x7a4d, 0x7c4d, 0x7e3e, 0x810a, 0x8cac, 0x8d64, 0x8de1, 0x8e5f, 0x78a9, 0x5207, 0x62d9, 0x63a5, 0x6442, 0x6298, 0x8a2d, 0x7a83, 0x7bc0, 0x8aac, 0x96ea, 0x7d76, 0x820c, 0x8749, 0x4ed9, 0x5148, 0x5343, 0x5360, 0x5ba3, 0x5c02, 0x5c16, 0x5ddd, 0x6226, 0x6247, 0x64b0, 0x6813, 0x6834, 0x6cc9, 0x6d45, 0x6d17, 0x67d3, 0x6f5c, 0x714e, 0x717d, 0x65cb, 0x7a7f, 0x7bad, 0x7dda, 0x003f, 0x003f, 0x003f, /* lead byte 91 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e4a, 0x7fa8, 0x817a, 0x821b, 0x8239, 0x85a6, 0x8a6e, 0x8cce, 0x8df5, 0x9078, 0x9077, 0x92ad, 0x9291, 0x9583, 0x9bae, 0x524d, 0x5584, 0x6f38, 0x7136, 0x5168, 0x7985, 0x7e55, 0x81b3, 0x7cce, 0x564c, 0x5851, 0x5ca8, 0x63aa, 0x66fe, 0x66fd, 0x695a, 0x72d9, 0x758f, 0x758e, 0x790e, 0x7956, 0x79df, 0x7c97, 0x7d20, 0x7d44, 0x8607, 0x8a34, 0x963b, 0x9061, 0x9f20, 0x50e7, 0x5275, 0x53cc, 0x53e2, 0x5009, 0x55aa, 0x58ee, 0x594f, 0x723d, 0x5b8b, 0x5c64, 0x531d, 0x60e3, 0x60f3, 0x635c, 0x6383, 0x633f, 0x63bb, 0x003f, 0x64cd, 0x65e9, 0x66f9, 0x5de3, 0x69cd, 0x69fd, 0x6f15, 0x71e5, 0x4e89, 0x75e9, 0x76f8, 0x7a93, 0x7cdf, 0x7dcf, 0x7d9c, 0x8061, 0x8349, 0x8358, 0x846c, 0x84bc, 0x85fb, 0x88c5, 0x8d70, 0x9001, 0x906d, 0x9397, 0x971c, 0x9a12, 0x50cf, 0x5897, 0x618e, 0x81d3, 0x8535, 0x8d08, 0x9020, 0x4fc3, 0x5074, 0x5247, 0x5373, 0x606f, 0x6349, 0x675f, 0x6e2c, 0x8db3, 0x901f, 0x4fd7, 0x5c5e, 0x8cca, 0x65cf, 0x7d9a, 0x5352, 0x8896, 0x5176, 0x63c3, 0x5b58, 0x5b6b, 0x5c0a, 0x640d, 0x6751, 0x905c, 0x4ed6, 0x591a, 0x592a, 0x6c70, 0x8a51, 0x553e, 0x5815, 0x59a5, 0x60f0, 0x6253, 0x67c1, 0x8235, 0x6955, 0x9640, 0x99c4, 0x9a28, 0x4f53, 0x5806, 0x5bfe, 0x8010, 0x5cb1, 0x5e2f, 0x5f85, 0x6020, 0x614b, 0x6234, 0x66ff, 0x6cf0, 0x6ede, 0x80ce, 0x817f, 0x82d4, 0x888b, 0x8cb8, 0x9000, 0x902e, 0x968a, 0x9edb, 0x9bdb, 0x4ee3, 0x53f0, 0x5927, 0x7b2c, 0x918d, 0x984c, 0x9df9, 0x6edd, 0x7027, 0x5353, 0x5544, 0x5b85, 0x6258, 0x629e, 0x62d3, 0x6ca2, 0x6fef, 0x7422, 0x8a17, 0x9438, 0x6fc1, 0x8afe, 0x8338, 0x51e7, 0x86f8, 0x53ea, 0x003f, 0x003f, 0x003f, /* lead byte 92 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x53e9, 0x4f46, 0x9054, 0x8fb0, 0x596a, 0x8131, 0x5dfd, 0x7aea, 0x8fbf, 0x68da, 0x8c37, 0x72f8, 0x9c48, 0x6a3d, 0x8ab0, 0x4e39, 0x5358, 0x5606, 0x5766, 0x62c5, 0x63a2, 0x65e6, 0x6b4e, 0x6de1, 0x6e5b, 0x70ad, 0x77ed, 0x7aef, 0x7baa, 0x7dbb, 0x803d, 0x80c6, 0x86cb, 0x8a95, 0x935b, 0x56e3, 0x58c7, 0x5f3e, 0x65ad, 0x6696, 0x6a80, 0x6bb5, 0x7537, 0x8ac7, 0x5024, 0x77e5, 0x5730, 0x5f1b, 0x6065, 0x667a, 0x6c60, 0x75f4, 0x7a1a, 0x7f6e, 0x81f4, 0x8718, 0x9045, 0x99b3, 0x7bc9, 0x755c, 0x7af9, 0x7b51, 0x84c4, 0x003f, 0x9010, 0x79e9, 0x7a92, 0x8336, 0x5ae1, 0x7740, 0x4e2d, 0x4ef2, 0x5b99, 0x5fe0, 0x62bd, 0x663c, 0x67f1, 0x6ce8, 0x866b, 0x8877, 0x8a3b, 0x914e, 0x92f3, 0x99d0, 0x6a17, 0x7026, 0x732a, 0x82e7, 0x8457, 0x8caf, 0x4e01, 0x5146, 0x51cb, 0x558b, 0x5bf5, 0x5e16, 0x5e33, 0x5e81, 0x5f14, 0x5f35, 0x5f6b, 0x5fb4, 0x61f2, 0x6311, 0x66a2, 0x671d, 0x6f6e, 0x7252, 0x753a, 0x773a, 0x8074, 0x8139, 0x8178, 0x8776, 0x8abf, 0x8adc, 0x8d85, 0x8df3, 0x929a, 0x9577, 0x9802, 0x9ce5, 0x52c5, 0x6357, 0x76f4, 0x6715, 0x6c88, 0x73cd, 0x8cc3, 0x93ae, 0x9673, 0x6d25, 0x589c, 0x690e, 0x69cc, 0x8ffd, 0x939a, 0x75db, 0x901a, 0x585a, 0x6802, 0x63b4, 0x69fb, 0x4f43, 0x6f2c, 0x67d8, 0x8fbb, 0x8526, 0x7db4, 0x9354, 0x693f, 0x6f70, 0x576a, 0x58f7, 0x5b2c, 0x7d2c, 0x722a, 0x540a, 0x91e3, 0x9db4, 0x4ead, 0x4f4e, 0x505c, 0x5075, 0x5243, 0x8c9e, 0x5448, 0x5824, 0x5b9a, 0x5e1d, 0x5e95, 0x5ead, 0x5ef7, 0x5f1f, 0x608c, 0x62b5, 0x633a, 0x63d0, 0x68af, 0x6c40, 0x7887, 0x798e, 0x7a0b, 0x7de0, 0x8247, 0x8a02, 0x8ae6, 0x8e44, 0x9013, 0x003f, 0x003f, 0x003f, /* lead byte 93 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90b8, 0x912d, 0x91d8, 0x9f0e, 0x6ce5, 0x6458, 0x64e2, 0x6575, 0x6ef4, 0x7684, 0x7b1b, 0x9069, 0x93d1, 0x6eba, 0x54f2, 0x5fb9, 0x64a4, 0x8f4d, 0x8fed, 0x9244, 0x5178, 0x586b, 0x5929, 0x5c55, 0x5e97, 0x6dfb, 0x7e8f, 0x751c, 0x8cbc, 0x8ee2, 0x985b, 0x70b9, 0x4f1d, 0x6bbf, 0x6fb1, 0x7530, 0x96fb, 0x514e, 0x5410, 0x5835, 0x5857, 0x59ac, 0x5c60, 0x5f92, 0x6597, 0x675c, 0x6e21, 0x767b, 0x83df, 0x8ced, 0x9014, 0x90fd, 0x934d, 0x7825, 0x783a, 0x52aa, 0x5ea6, 0x571f, 0x5974, 0x6012, 0x5012, 0x515a, 0x51ac, 0x003f, 0x51cd, 0x5200, 0x5510, 0x5854, 0x5858, 0x5957, 0x5b95, 0x5cf6, 0x5d8b, 0x60bc, 0x6295, 0x642d, 0x6771, 0x6843, 0x68bc, 0x68df, 0x76d7, 0x6dd8, 0x6e6f, 0x6d9b, 0x706f, 0x71c8, 0x5f53, 0x75d8, 0x7977, 0x7b49, 0x7b54, 0x7b52, 0x7cd6, 0x7d71, 0x5230, 0x8463, 0x8569, 0x85e4, 0x8a0e, 0x8b04, 0x8c46, 0x8e0f, 0x9003, 0x900f, 0x9419, 0x9676, 0x982d, 0x9a30, 0x95d8, 0x50cd, 0x52d5, 0x540c, 0x5802, 0x5c0e, 0x61a7, 0x649e, 0x6d1e, 0x77b3, 0x7ae5, 0x80f4, 0x8404, 0x9053, 0x9285, 0x5ce0, 0x9d07, 0x533f, 0x5f97, 0x5fb3, 0x6d9c, 0x7279, 0x7763, 0x79bf, 0x7be4, 0x6bd2, 0x72ec, 0x8aad, 0x6803, 0x6a61, 0x51f8, 0x7a81, 0x6934, 0x5c4a, 0x9cf6, 0x82eb, 0x5bc5, 0x9149, 0x701e, 0x5678, 0x5c6f, 0x60c7, 0x6566, 0x6c8c, 0x8c5a, 0x9041, 0x9813, 0x5451, 0x66c7, 0x920d, 0x5948, 0x90a3, 0x5185, 0x4e4d, 0x51ea, 0x8599, 0x8b0e, 0x7058, 0x637a, 0x934b, 0x6962, 0x99b4, 0x7e04, 0x7577, 0x5357, 0x6960, 0x8edf, 0x96e3, 0x6c5d, 0x4e8c, 0x5c3c, 0x5f10, 0x8fe9, 0x5302, 0x8cd1, 0x8089, 0x8679, 0x5eff, 0x65e5, 0x4e73, 0x5165, 0x003f, 0x003f, 0x003f, /* lead byte 94 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5982, 0x5c3f, 0x97ee, 0x4efb, 0x598a, 0x5fcd, 0x8a8d, 0x6fe1, 0x79b0, 0x7962, 0x5be7, 0x8471, 0x732b, 0x71b1, 0x5e74, 0x5ff5, 0x637b, 0x649a, 0x71c3, 0x7c98, 0x4e43, 0x5efc, 0x4e4b, 0x57dc, 0x56a2, 0x60a9, 0x6fc3, 0x7d0d, 0x80fd, 0x8133, 0x81bf, 0x8fb2, 0x8997, 0x86a4, 0x5df4, 0x628a, 0x64ad, 0x8987, 0x6777, 0x6ce2, 0x6d3e, 0x7436, 0x7834, 0x5a46, 0x7f75, 0x82ad, 0x99ac, 0x4ff3, 0x5ec3, 0x62dd, 0x6392, 0x6557, 0x676f, 0x76c3, 0x724c, 0x80cc, 0x80ba, 0x8f29, 0x914d, 0x500d, 0x57f9, 0x5a92, 0x6885, 0x003f, 0x6973, 0x7164, 0x72fd, 0x8cb7, 0x58f2, 0x8ce0, 0x966a, 0x9019, 0x877f, 0x79e4, 0x77e7, 0x8429, 0x4f2f, 0x5265, 0x535a, 0x62cd, 0x67cf, 0x6cca, 0x767d, 0x7b94, 0x7c95, 0x8236, 0x8584, 0x8feb, 0x66dd, 0x6f20, 0x7206, 0x7e1b, 0x83ab, 0x99c1, 0x9ea6, 0x51fd, 0x7bb1, 0x7872, 0x7bb8, 0x8087, 0x7b48, 0x6ae8, 0x5e61, 0x808c, 0x7551, 0x7560, 0x516b, 0x9262, 0x6e8c, 0x767a, 0x9197, 0x9aea, 0x4f10, 0x7f70, 0x629c, 0x7b4f, 0x95a5, 0x9ce9, 0x567a, 0x5859, 0x86e4, 0x96bc, 0x4f34, 0x5224, 0x534a, 0x53cd, 0x53db, 0x5e06, 0x642c, 0x6591, 0x677f, 0x6c3e, 0x6c4e, 0x7248, 0x72af, 0x73ed, 0x7554, 0x7e41, 0x822c, 0x85e9, 0x8ca9, 0x7bc4, 0x91c6, 0x7169, 0x9812, 0x98ef, 0x633d, 0x6669, 0x756a, 0x76e4, 0x78d0, 0x8543, 0x86ee, 0x532a, 0x5351, 0x5426, 0x5983, 0x5e87, 0x5f7c, 0x60b2, 0x6249, 0x6279, 0x62ab, 0x6590, 0x6bd4, 0x6ccc, 0x75b2, 0x76ae, 0x7891, 0x79d8, 0x7dcb, 0x7f77, 0x80a5, 0x88ab, 0x8ab9, 0x8cbb, 0x907f, 0x975e, 0x98db, 0x6a0b, 0x7c38, 0x5099, 0x5c3e, 0x5fae, 0x6787, 0x6bd8, 0x7435, 0x7709, 0x7f8e, 0x003f, 0x003f, 0x003f, /* lead byte 95 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f3b, 0x67ca, 0x7a17, 0x5339, 0x758b, 0x9aed, 0x5f66, 0x819d, 0x83f1, 0x8098, 0x5f3c, 0x5fc5, 0x7562, 0x7b46, 0x903c, 0x6867, 0x59eb, 0x5a9b, 0x7d10, 0x767e, 0x8b2c, 0x4ff5, 0x5f6a, 0x6a19, 0x6c37, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8a55, 0x8c79, 0x5edf, 0x63cf, 0x75c5, 0x79d2, 0x82d7, 0x9328, 0x92f2, 0x849c, 0x86ed, 0x9c2d, 0x54c1, 0x5f6c, 0x658c, 0x6d5c, 0x7015, 0x8ca7, 0x8cd3, 0x983b, 0x654f, 0x74f6, 0x4e0d, 0x4ed8, 0x57e0, 0x592b, 0x5a66, 0x5bcc, 0x51a8, 0x5e03, 0x5e9c, 0x6016, 0x6276, 0x6577, 0x003f, 0x65a7, 0x666e, 0x6d6e, 0x7236, 0x7b26, 0x8150, 0x819a, 0x8299, 0x8b5c, 0x8ca0, 0x8ce6, 0x8d74, 0x961c, 0x9644, 0x4fae, 0x64ab, 0x6b66, 0x821e, 0x8461, 0x856a, 0x90e8, 0x5c01, 0x6953, 0x98a8, 0x847a, 0x8557, 0x4f0f, 0x526f, 0x5fa9, 0x5e45, 0x670d, 0x798f, 0x8179, 0x8907, 0x8986, 0x6df5, 0x5f17, 0x6255, 0x6cb8, 0x4ecf, 0x7269, 0x9b92, 0x5206, 0x543b, 0x5674, 0x58b3, 0x61a4, 0x626e, 0x711a, 0x596e, 0x7c89, 0x7cde, 0x7d1b, 0x96f0, 0x6587, 0x805e, 0x4e19, 0x4f75, 0x5175, 0x5840, 0x5e63, 0x5e73, 0x5f0a, 0x67c4, 0x4e26, 0x853d, 0x9589, 0x965b, 0x7c73, 0x9801, 0x50fb, 0x58c1, 0x7656, 0x78a7, 0x5225, 0x77a5, 0x8511, 0x7b86, 0x504f, 0x5909, 0x7247, 0x7bc7, 0x7de8, 0x8fba, 0x8fd4, 0x904d, 0x4fbf, 0x52c9, 0x5a29, 0x5f01, 0x97ad, 0x4fdd, 0x8217, 0x92ea, 0x5703, 0x6355, 0x6b69, 0x752b, 0x88dc, 0x8f14, 0x7a42, 0x52df, 0x5893, 0x6155, 0x620a, 0x66ae, 0x6bcd, 0x7c3f, 0x83e9, 0x5023, 0x4ff8, 0x5305, 0x5446, 0x5831, 0x5949, 0x5b9d, 0x5cf0, 0x5cef, 0x5d29, 0x5e96, 0x62b1, 0x6367, 0x653e, 0x65b9, 0x670b, 0x003f, 0x003f, 0x003f, /* lead byte 96 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6cd5, 0x6ce1, 0x70f9, 0x7832, 0x7e2b, 0x80de, 0x82b3, 0x840c, 0x84ec, 0x8702, 0x8912, 0x8a2a, 0x8c4a, 0x90a6, 0x92d2, 0x98fd, 0x9cf3, 0x9d6c, 0x4e4f, 0x4ea1, 0x508d, 0x5256, 0x574a, 0x59a8, 0x5e3d, 0x5fd8, 0x5fd9, 0x623f, 0x66b4, 0x671b, 0x67d0, 0x68d2, 0x5192, 0x7d21, 0x80aa, 0x81a8, 0x8b00, 0x8c8c, 0x8cbf, 0x927e, 0x9632, 0x5420, 0x982c, 0x5317, 0x50d5, 0x535c, 0x58a8, 0x64b2, 0x6734, 0x7267, 0x7766, 0x7a46, 0x91e6, 0x52c3, 0x6ca1, 0x6b86, 0x5800, 0x5e4c, 0x5954, 0x672c, 0x7ffb, 0x51e1, 0x76c6, 0x003f, 0x6469, 0x78e8, 0x9b54, 0x9ebb, 0x57cb, 0x59b9, 0x6627, 0x679a, 0x6bce, 0x54e9, 0x69d9, 0x5e55, 0x819c, 0x6795, 0x9baa, 0x67fe, 0x9c52, 0x685d, 0x4ea6, 0x4fe3, 0x53c8, 0x62b9, 0x672b, 0x6cab, 0x8fc4, 0x4fad, 0x7e6d, 0x9ebf, 0x4e07, 0x6162, 0x6e80, 0x6f2b, 0x8513, 0x5473, 0x672a, 0x9b45, 0x5df3, 0x7b95, 0x5cac, 0x5bc6, 0x871c, 0x6e4a, 0x84d1, 0x7a14, 0x8108, 0x5999, 0x7c8d, 0x6c11, 0x7720, 0x52d9, 0x5922, 0x7121, 0x725f, 0x77db, 0x9727, 0x9d61, 0x690b, 0x5a7f, 0x5a18, 0x51a5, 0x540d, 0x547d, 0x660e, 0x76df, 0x8ff7, 0x9298, 0x9cf4, 0x59ea, 0x725d, 0x6ec5, 0x514d, 0x68c9, 0x7dbf, 0x7dec, 0x9762, 0x9eba, 0x6478, 0x6a21, 0x8302, 0x5984, 0x5b5f, 0x6bdb, 0x731b, 0x76f2, 0x7db2, 0x8017, 0x8499, 0x5132, 0x6728, 0x9ed9, 0x76ee, 0x6762, 0x52ff, 0x9905, 0x5c24, 0x623b, 0x7c7e, 0x8cb0, 0x554f, 0x60b6, 0x7d0b, 0x9580, 0x5301, 0x4e5f, 0x51b6, 0x591c, 0x723a, 0x8036, 0x91ce, 0x5f25, 0x77e2, 0x5384, 0x5f79, 0x7d04, 0x85ac, 0x8a33, 0x8e8d, 0x9756, 0x67f3, 0x85ae, 0x9453, 0x6109, 0x6108, 0x6cb9, 0x7652, 0x003f, 0x003f, 0x003f, /* lead byte 97 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aed, 0x8f38, 0x552f, 0x4f51, 0x512a, 0x52c7, 0x53cb, 0x5ba5, 0x5e7d, 0x60a0, 0x6182, 0x63d6, 0x6709, 0x67da, 0x6e67, 0x6d8c, 0x7336, 0x7337, 0x7531, 0x7950, 0x88d5, 0x8a98, 0x904a, 0x9091, 0x90f5, 0x96c4, 0x878d, 0x5915, 0x4e88, 0x4f59, 0x4e0e, 0x8a89, 0x8f3f, 0x9810, 0x50ad, 0x5e7c, 0x5996, 0x5bb9, 0x5eb8, 0x63da, 0x63fa, 0x64c1, 0x66dc, 0x694a, 0x69d8, 0x6d0b, 0x6eb6, 0x7194, 0x7528, 0x7aaf, 0x7f8a, 0x8000, 0x8449, 0x84c9, 0x8981, 0x8b21, 0x8e0a, 0x9065, 0x967d, 0x990a, 0x617e, 0x6291, 0x6b32, 0x003f, 0x6c83, 0x6d74, 0x7fcc, 0x7ffc, 0x6dc0, 0x7f85, 0x87ba, 0x88f8, 0x6765, 0x83b1, 0x983c, 0x96f7, 0x6d1b, 0x7d61, 0x843d, 0x916a, 0x4e71, 0x5375, 0x5d50, 0x6b04, 0x6feb, 0x85cd, 0x862d, 0x89a7, 0x5229, 0x540f, 0x5c65, 0x674e, 0x68a8, 0x7406, 0x7483, 0x75e2, 0x88cf, 0x88e1, 0x91cc, 0x96e2, 0x9678, 0x5f8b, 0x7387, 0x7acb, 0x844e, 0x63a0, 0x7565, 0x5289, 0x6d41, 0x6e9c, 0x7409, 0x7559, 0x786b, 0x7c92, 0x9686, 0x7adc, 0x9f8d, 0x4fb6, 0x616e, 0x65c5, 0x865c, 0x4e86, 0x4eae, 0x50da, 0x4e21, 0x51cc, 0x5bee, 0x6599, 0x6881, 0x6dbc, 0x731f, 0x7642, 0x77ad, 0x7a1c, 0x7ce7, 0x826f, 0x8ad2, 0x907c, 0x91cf, 0x9675, 0x9818, 0x529b, 0x7dd1, 0x502b, 0x5398, 0x6797, 0x6dcb, 0x71d0, 0x7433, 0x81e8, 0x8f2a, 0x96a3, 0x9c57, 0x9e9f, 0x7460, 0x5841, 0x6d99, 0x7d2f, 0x985e, 0x4ee4, 0x4f36, 0x4f8b, 0x51b7, 0x52b1, 0x5dba, 0x601c, 0x73b2, 0x793c, 0x82d3, 0x9234, 0x96b7, 0x96f6, 0x970a, 0x9e97, 0x9f62, 0x66a6, 0x6b74, 0x5217, 0x52a3, 0x70c8, 0x88c2, 0x5ec9, 0x604b, 0x6190, 0x6f23, 0x7149, 0x7c3e, 0x7df4, 0x806f, 0x003f, 0x003f, 0x003f, /* lead byte 98 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x84ee, 0x9023, 0x932c, 0x5442, 0x9b6f, 0x6ad3, 0x7089, 0x8cc2, 0x8def, 0x9732, 0x52b4, 0x5a41, 0x5eca, 0x5f04, 0x6717, 0x697c, 0x6994, 0x6d6a, 0x6f0f, 0x7262, 0x72fc, 0x7bed, 0x8001, 0x807e, 0x874b, 0x90ce, 0x516d, 0x9e93, 0x7984, 0x808b, 0x9332, 0x8ad6, 0x502d, 0x548c, 0x8a71, 0x6b6a, 0x8cc4, 0x8107, 0x60d1, 0x67a0, 0x9df2, 0x4e99, 0x4e98, 0x9c10, 0x8a6b, 0x85c1, 0x8568, 0x6900, 0x6e7e, 0x7897, 0x8155, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5f0c, 0x4e10, 0x4e15, 0x4e2a, 0x4e31, 0x4e36, 0x4e3c, 0x4e3f, 0x4e42, 0x4e56, 0x4e58, 0x4e82, 0x4e85, 0x8c6b, 0x4e8a, 0x8212, 0x5f0d, 0x4e8e, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea2, 0x4eb0, 0x4eb3, 0x4eb6, 0x4ece, 0x4ecd, 0x4ec4, 0x4ec6, 0x4ec2, 0x4ed7, 0x4ede, 0x4eed, 0x4edf, 0x4ef7, 0x4f09, 0x4f5a, 0x4f30, 0x4f5b, 0x4f5d, 0x4f57, 0x4f47, 0x4f76, 0x4f88, 0x4f8f, 0x4f98, 0x4f7b, 0x4f69, 0x4f70, 0x4f91, 0x4f6f, 0x4f86, 0x4f96, 0x5118, 0x4fd4, 0x4fdf, 0x4fce, 0x4fd8, 0x4fdb, 0x4fd1, 0x4fda, 0x4fd0, 0x4fe4, 0x4fe5, 0x501a, 0x5028, 0x5014, 0x502a, 0x5025, 0x5005, 0x4f1c, 0x4ff6, 0x5021, 0x5029, 0x502c, 0x4ffe, 0x4fef, 0x5011, 0x5006, 0x5043, 0x5047, 0x6703, 0x5055, 0x5050, 0x5048, 0x505a, 0x5056, 0x506c, 0x5078, 0x5080, 0x509a, 0x5085, 0x50b4, 0x50b2, 0x003f, 0x003f, 0x003f, /* lead byte 99 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x50c9, 0x50ca, 0x50b3, 0x50c2, 0x50d6, 0x50de, 0x50e5, 0x50ed, 0x50e3, 0x50ee, 0x50f9, 0x50f5, 0x5109, 0x5101, 0x5102, 0x5116, 0x5115, 0x5114, 0x511a, 0x5121, 0x513a, 0x5137, 0x513c, 0x513b, 0x513f, 0x5140, 0x5152, 0x514c, 0x5154, 0x5162, 0x7af8, 0x5169, 0x516a, 0x516e, 0x5180, 0x5182, 0x56d8, 0x518c, 0x5189, 0x518f, 0x5191, 0x5193, 0x5195, 0x5196, 0x51a4, 0x51a6, 0x51a2, 0x51a9, 0x51aa, 0x51ab, 0x51b3, 0x51b1, 0x51b2, 0x51b0, 0x51b5, 0x51bd, 0x51c5, 0x51c9, 0x51db, 0x51e0, 0x8655, 0x51e9, 0x51ed, 0x003f, 0x51f0, 0x51f5, 0x51fe, 0x5204, 0x520b, 0x5214, 0x520e, 0x5227, 0x522a, 0x522e, 0x5233, 0x5239, 0x524f, 0x5244, 0x524b, 0x524c, 0x525e, 0x5254, 0x526a, 0x5274, 0x5269, 0x5273, 0x527f, 0x527d, 0x528d, 0x5294, 0x5292, 0x5271, 0x5288, 0x5291, 0x8fa8, 0x8fa7, 0x52ac, 0x52ad, 0x52bc, 0x52b5, 0x52c1, 0x52cd, 0x52d7, 0x52de, 0x52e3, 0x52e6, 0x98ed, 0x52e0, 0x52f3, 0x52f5, 0x52f8, 0x52f9, 0x5306, 0x5308, 0x7538, 0x530d, 0x5310, 0x530f, 0x5315, 0x531a, 0x5323, 0x532f, 0x5331, 0x5333, 0x5338, 0x5340, 0x5346, 0x5345, 0x4e17, 0x5349, 0x534d, 0x51d6, 0x535e, 0x5369, 0x536e, 0x5918, 0x537b, 0x5377, 0x5382, 0x5396, 0x53a0, 0x53a6, 0x53a5, 0x53ae, 0x53b0, 0x53b6, 0x53c3, 0x7c12, 0x96d9, 0x53df, 0x66fc, 0x71ee, 0x53ee, 0x53e8, 0x53ed, 0x53fa, 0x5401, 0x543d, 0x5440, 0x542c, 0x542d, 0x543c, 0x542e, 0x5436, 0x5429, 0x541d, 0x544e, 0x548f, 0x5475, 0x548e, 0x545f, 0x5471, 0x5477, 0x5470, 0x5492, 0x547b, 0x5480, 0x5476, 0x5484, 0x5490, 0x5486, 0x54c7, 0x54a2, 0x54b8, 0x54a5, 0x54ac, 0x54c4, 0x54c8, 0x54a8, 0x003f, 0x003f, 0x003f, /* lead byte 9a */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54ab, 0x54c2, 0x54a4, 0x54be, 0x54bc, 0x54d8, 0x54e5, 0x54e6, 0x550f, 0x5514, 0x54fd, 0x54ee, 0x54ed, 0x54fa, 0x54e2, 0x5539, 0x5540, 0x5563, 0x554c, 0x552e, 0x555c, 0x5545, 0x5556, 0x5557, 0x5538, 0x5533, 0x555d, 0x5599, 0x5580, 0x54af, 0x558a, 0x559f, 0x557b, 0x557e, 0x5598, 0x559e, 0x55ae, 0x557c, 0x5583, 0x55a9, 0x5587, 0x55a8, 0x55da, 0x55c5, 0x55df, 0x55c4, 0x55dc, 0x55e4, 0x55d4, 0x5614, 0x55f7, 0x5616, 0x55fe, 0x55fd, 0x561b, 0x55f9, 0x564e, 0x5650, 0x71df, 0x5634, 0x5636, 0x5632, 0x5638, 0x003f, 0x566b, 0x5664, 0x562f, 0x566c, 0x566a, 0x5686, 0x5680, 0x568a, 0x56a0, 0x5694, 0x568f, 0x56a5, 0x56ae, 0x56b6, 0x56b4, 0x56c2, 0x56bc, 0x56c1, 0x56c3, 0x56c0, 0x56c8, 0x56ce, 0x56d1, 0x56d3, 0x56d7, 0x56ee, 0x56f9, 0x5700, 0x56ff, 0x5704, 0x5709, 0x5708, 0x570b, 0x570d, 0x5713, 0x5718, 0x5716, 0x55c7, 0x571c, 0x5726, 0x5737, 0x5738, 0x574e, 0x573b, 0x5740, 0x574f, 0x5769, 0x57c0, 0x5788, 0x5761, 0x577f, 0x5789, 0x5793, 0x57a0, 0x57b3, 0x57a4, 0x57aa, 0x57b0, 0x57c3, 0x57c6, 0x57d4, 0x57d2, 0x57d3, 0x580a, 0x57d6, 0x57e3, 0x580b, 0x5819, 0x581d, 0x5872, 0x5821, 0x5862, 0x584b, 0x5870, 0x6bc0, 0x5852, 0x583d, 0x5879, 0x5885, 0x58b9, 0x589f, 0x58ab, 0x58ba, 0x58de, 0x58bb, 0x58b8, 0x58ae, 0x58c5, 0x58d3, 0x58d1, 0x58d7, 0x58d9, 0x58d8, 0x58e5, 0x58dc, 0x58e4, 0x58df, 0x58ef, 0x58fa, 0x58f9, 0x58fb, 0x58fc, 0x58fd, 0x5902, 0x590a, 0x5910, 0x591b, 0x68a6, 0x5925, 0x592c, 0x592d, 0x5932, 0x5938, 0x593e, 0x7ad2, 0x5955, 0x5950, 0x594e, 0x595a, 0x5958, 0x5962, 0x5960, 0x5967, 0x596c, 0x5969, 0x003f, 0x003f, 0x003f, /* lead byte 9b */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5978, 0x5981, 0x599d, 0x4f5e, 0x4fab, 0x59a3, 0x59b2, 0x59c6, 0x59e8, 0x59dc, 0x598d, 0x59d9, 0x59da, 0x5a25, 0x5a1f, 0x5a11, 0x5a1c, 0x5a09, 0x5a1a, 0x5a40, 0x5a6c, 0x5a49, 0x5a35, 0x5a36, 0x5a62, 0x5a6a, 0x5a9a, 0x5abc, 0x5abe, 0x5acb, 0x5ac2, 0x5abd, 0x5ae3, 0x5ad7, 0x5ae6, 0x5ae9, 0x5ad6, 0x5afa, 0x5afb, 0x5b0c, 0x5b0b, 0x5b16, 0x5b32, 0x5ad0, 0x5b2a, 0x5b36, 0x5b3e, 0x5b43, 0x5b45, 0x5b40, 0x5b51, 0x5b55, 0x5b5a, 0x5b5b, 0x5b65, 0x5b69, 0x5b70, 0x5b73, 0x5b75, 0x5b78, 0x6588, 0x5b7a, 0x5b80, 0x003f, 0x5b83, 0x5ba6, 0x5bb8, 0x5bc3, 0x5bc7, 0x5bc9, 0x5bd4, 0x5bd0, 0x5be4, 0x5be6, 0x5be2, 0x5bde, 0x5be5, 0x5beb, 0x5bf0, 0x5bf6, 0x5bf3, 0x5c05, 0x5c07, 0x5c08, 0x5c0d, 0x5c13, 0x5c20, 0x5c22, 0x5c28, 0x5c38, 0x5c39, 0x5c41, 0x5c46, 0x5c4e, 0x5c53, 0x5c50, 0x5c4f, 0x5b71, 0x5c6c, 0x5c6e, 0x4e62, 0x5c76, 0x5c79, 0x5c8c, 0x5c91, 0x5c94, 0x599b, 0x5cab, 0x5cbb, 0x5cb6, 0x5cbc, 0x5cb7, 0x5cc5, 0x5cbe, 0x5cc7, 0x5cd9, 0x5ce9, 0x5cfd, 0x5cfa, 0x5ced, 0x5d8c, 0x5cea, 0x5d0b, 0x5d15, 0x5d17, 0x5d5c, 0x5d1f, 0x5d1b, 0x5d11, 0x5d14, 0x5d22, 0x5d1a, 0x5d19, 0x5d18, 0x5d4c, 0x5d52, 0x5d4e, 0x5d4b, 0x5d6c, 0x5d73, 0x5d76, 0x5d87, 0x5d84, 0x5d82, 0x5da2, 0x5d9d, 0x5dac, 0x5dae, 0x5dbd, 0x5d90, 0x5db7, 0x5dbc, 0x5dc9, 0x5dcd, 0x5dd3, 0x5dd2, 0x5dd6, 0x5ddb, 0x5deb, 0x5df2, 0x5df5, 0x5e0b, 0x5e1a, 0x5e19, 0x5e11, 0x5e1b, 0x5e36, 0x5e37, 0x5e44, 0x5e43, 0x5e40, 0x5e4e, 0x5e57, 0x5e54, 0x5e5f, 0x5e62, 0x5e64, 0x5e47, 0x5e75, 0x5e76, 0x5e7a, 0x9ebc, 0x5e7f, 0x5ea0, 0x5ec1, 0x5ec2, 0x5ec8, 0x5ed0, 0x5ecf, 0x003f, 0x003f, 0x003f, /* lead byte 9c */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5ed6, 0x5ee3, 0x5edd, 0x5eda, 0x5edb, 0x5ee2, 0x5ee1, 0x5ee8, 0x5ee9, 0x5eec, 0x5ef1, 0x5ef3, 0x5ef0, 0x5ef4, 0x5ef8, 0x5efe, 0x5f03, 0x5f09, 0x5f5d, 0x5f5c, 0x5f0b, 0x5f11, 0x5f16, 0x5f29, 0x5f2d, 0x5f38, 0x5f41, 0x5f48, 0x5f4c, 0x5f4e, 0x5f2f, 0x5f51, 0x5f56, 0x5f57, 0x5f59, 0x5f61, 0x5f6d, 0x5f73, 0x5f77, 0x5f83, 0x5f82, 0x5f7f, 0x5f8a, 0x5f88, 0x5f91, 0x5f87, 0x5f9e, 0x5f99, 0x5f98, 0x5fa0, 0x5fa8, 0x5fad, 0x5fbc, 0x5fd6, 0x5ffb, 0x5fe4, 0x5ff8, 0x5ff1, 0x5fdd, 0x60b3, 0x5fff, 0x6021, 0x6060, 0x003f, 0x6019, 0x6010, 0x6029, 0x600e, 0x6031, 0x601b, 0x6015, 0x602b, 0x6026, 0x600f, 0x603a, 0x605a, 0x6041, 0x606a, 0x6077, 0x605f, 0x604a, 0x6046, 0x604d, 0x6063, 0x6043, 0x6064, 0x6042, 0x606c, 0x606b, 0x6059, 0x6081, 0x608d, 0x60e7, 0x6083, 0x609a, 0x6084, 0x609b, 0x6096, 0x6097, 0x6092, 0x60a7, 0x608b, 0x60e1, 0x60b8, 0x60e0, 0x60d3, 0x60b4, 0x5ff0, 0x60bd, 0x60c6, 0x60b5, 0x60d8, 0x614d, 0x6115, 0x6106, 0x60f6, 0x60f7, 0x6100, 0x60f4, 0x60fa, 0x6103, 0x6121, 0x60fb, 0x60f1, 0x610d, 0x610e, 0x6147, 0x613e, 0x6128, 0x6127, 0x614a, 0x613f, 0x613c, 0x612c, 0x6134, 0x613d, 0x6142, 0x6144, 0x6173, 0x6177, 0x6158, 0x6159, 0x615a, 0x616b, 0x6174, 0x616f, 0x6165, 0x6171, 0x615f, 0x615d, 0x6153, 0x6175, 0x6199, 0x6196, 0x6187, 0x61ac, 0x6194, 0x619a, 0x618a, 0x6191, 0x61ab, 0x61ae, 0x61cc, 0x61ca, 0x61c9, 0x61f7, 0x61c8, 0x61c3, 0x61c6, 0x61ba, 0x61cb, 0x7f79, 0x61cd, 0x61e6, 0x61e3, 0x61f6, 0x61fa, 0x61f4, 0x61ff, 0x61fd, 0x61fc, 0x61fe, 0x6200, 0x6208, 0x6209, 0x620d, 0x620c, 0x6214, 0x621b, 0x003f, 0x003f, 0x003f, /* lead byte 9d */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x621e, 0x6221, 0x622a, 0x622e, 0x6230, 0x6232, 0x6233, 0x6241, 0x624e, 0x625e, 0x6263, 0x625b, 0x6260, 0x6268, 0x627c, 0x6282, 0x6289, 0x627e, 0x6292, 0x6293, 0x6296, 0x62d4, 0x6283, 0x6294, 0x62d7, 0x62d1, 0x62bb, 0x62cf, 0x62ff, 0x62c6, 0x64d4, 0x62c8, 0x62dc, 0x62cc, 0x62ca, 0x62c2, 0x62c7, 0x629b, 0x62c9, 0x630c, 0x62ee, 0x62f1, 0x6327, 0x6302, 0x6308, 0x62ef, 0x62f5, 0x6350, 0x633e, 0x634d, 0x641c, 0x634f, 0x6396, 0x638e, 0x6380, 0x63ab, 0x6376, 0x63a3, 0x638f, 0x6389, 0x639f, 0x63b5, 0x636b, 0x003f, 0x6369, 0x63be, 0x63e9, 0x63c0, 0x63c6, 0x63e3, 0x63c9, 0x63d2, 0x63f6, 0x63c4, 0x6416, 0x6434, 0x6406, 0x6413, 0x6426, 0x6436, 0x651d, 0x6417, 0x6428, 0x640f, 0x6467, 0x646f, 0x6476, 0x644e, 0x652a, 0x6495, 0x6493, 0x64a5, 0x64a9, 0x6488, 0x64bc, 0x64da, 0x64d2, 0x64c5, 0x64c7, 0x64bb, 0x64d8, 0x64c2, 0x64f1, 0x64e7, 0x8209, 0x64e0, 0x64e1, 0x62ac, 0x64e3, 0x64ef, 0x652c, 0x64f6, 0x64f4, 0x64f2, 0x64fa, 0x6500, 0x64fd, 0x6518, 0x651c, 0x6505, 0x6524, 0x6523, 0x652b, 0x6534, 0x6535, 0x6537, 0x6536, 0x6538, 0x754b, 0x6548, 0x6556, 0x6555, 0x654d, 0x6558, 0x655e, 0x655d, 0x6572, 0x6578, 0x6582, 0x6583, 0x8b8a, 0x659b, 0x659f, 0x65ab, 0x65b7, 0x65c3, 0x65c6, 0x65c1, 0x65c4, 0x65cc, 0x65d2, 0x65db, 0x65d9, 0x65e0, 0x65e1, 0x65f1, 0x6772, 0x660a, 0x6603, 0x65fb, 0x6773, 0x6635, 0x6636, 0x6634, 0x661c, 0x664f, 0x6644, 0x6649, 0x6641, 0x665e, 0x665d, 0x6664, 0x6667, 0x6668, 0x665f, 0x6662, 0x6670, 0x6683, 0x6688, 0x668e, 0x6689, 0x6684, 0x6698, 0x669d, 0x66c1, 0x66b9, 0x66c9, 0x66be, 0x66bc, 0x003f, 0x003f, 0x003f, /* lead byte 9e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x66c4, 0x66b8, 0x66d6, 0x66da, 0x66e0, 0x663f, 0x66e6, 0x66e9, 0x66f0, 0x66f5, 0x66f7, 0x670f, 0x6716, 0x671e, 0x6726, 0x6727, 0x9738, 0x672e, 0x673f, 0x6736, 0x6741, 0x6738, 0x6737, 0x6746, 0x675e, 0x6760, 0x6759, 0x6763, 0x6764, 0x6789, 0x6770, 0x67a9, 0x677c, 0x676a, 0x678c, 0x678b, 0x67a6, 0x67a1, 0x6785, 0x67b7, 0x67ef, 0x67b4, 0x67ec, 0x67b3, 0x67e9, 0x67b8, 0x67e4, 0x67de, 0x67dd, 0x67e2, 0x67ee, 0x67b9, 0x67ce, 0x67c6, 0x67e7, 0x6a9c, 0x681e, 0x6846, 0x6829, 0x6840, 0x684d, 0x6832, 0x684e, 0x003f, 0x68b3, 0x682b, 0x6859, 0x6863, 0x6877, 0x687f, 0x689f, 0x688f, 0x68ad, 0x6894, 0x689d, 0x689b, 0x6883, 0x6aae, 0x68b9, 0x6874, 0x68b5, 0x68a0, 0x68ba, 0x690f, 0x688d, 0x687e, 0x6901, 0x68ca, 0x6908, 0x68d8, 0x6922, 0x6926, 0x68e1, 0x690c, 0x68cd, 0x68d4, 0x68e7, 0x68d5, 0x6936, 0x6912, 0x6904, 0x68d7, 0x68e3, 0x6925, 0x68f9, 0x68e0, 0x68ef, 0x6928, 0x692a, 0x691a, 0x6923, 0x6921, 0x68c6, 0x6979, 0x6977, 0x695c, 0x6978, 0x696b, 0x6954, 0x697e, 0x696e, 0x6939, 0x6974, 0x693d, 0x6959, 0x6930, 0x6961, 0x695e, 0x695d, 0x6981, 0x696a, 0x69b2, 0x69ae, 0x69d0, 0x69bf, 0x69c1, 0x69d3, 0x69be, 0x69ce, 0x5be8, 0x69ca, 0x69dd, 0x69bb, 0x69c3, 0x69a7, 0x6a2e, 0x6991, 0x69a0, 0x699c, 0x6995, 0x69b4, 0x69de, 0x69e8, 0x6a02, 0x6a1b, 0x69ff, 0x6b0a, 0x69f9, 0x69f2, 0x69e7, 0x6a05, 0x69b1, 0x6a1e, 0x69ed, 0x6a14, 0x69eb, 0x6a0a, 0x6a12, 0x6ac1, 0x6a23, 0x6a13, 0x6a44, 0x6a0c, 0x6a72, 0x6a36, 0x6a78, 0x6a47, 0x6a62, 0x6a59, 0x6a66, 0x6a48, 0x6a38, 0x6a22, 0x6a90, 0x6a8d, 0x6aa0, 0x6a84, 0x6aa2, 0x6aa3, 0x003f, 0x003f, 0x003f, /* lead byte 9f */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6a97, 0x8617, 0x6abb, 0x6ac3, 0x6ac2, 0x6ab8, 0x6ab3, 0x6aac, 0x6ade, 0x6ad1, 0x6adf, 0x6aaa, 0x6ada, 0x6aea, 0x6afb, 0x6b05, 0x8616, 0x6afa, 0x6b12, 0x6b16, 0x9b31, 0x6b1f, 0x6b38, 0x6b37, 0x76dc, 0x6b39, 0x98ee, 0x6b47, 0x6b43, 0x6b49, 0x6b50, 0x6b59, 0x6b54, 0x6b5b, 0x6b5f, 0x6b61, 0x6b78, 0x6b79, 0x6b7f, 0x6b80, 0x6b84, 0x6b83, 0x6b8d, 0x6b98, 0x6b95, 0x6b9e, 0x6ba4, 0x6baa, 0x6bab, 0x6baf, 0x6bb2, 0x6bb1, 0x6bb3, 0x6bb7, 0x6bbc, 0x6bc6, 0x6bcb, 0x6bd3, 0x6bdf, 0x6bec, 0x6beb, 0x6bf3, 0x6bef, 0x003f, 0x9ebe, 0x6c08, 0x6c13, 0x6c14, 0x6c1b, 0x6c24, 0x6c23, 0x6c5e, 0x6c55, 0x6c62, 0x6c6a, 0x6c82, 0x6c8d, 0x6c9a, 0x6c81, 0x6c9b, 0x6c7e, 0x6c68, 0x6c73, 0x6c92, 0x6c90, 0x6cc4, 0x6cf1, 0x6cd3, 0x6cbd, 0x6cd7, 0x6cc5, 0x6cdd, 0x6cae, 0x6cb1, 0x6cbe, 0x6cba, 0x6cdb, 0x6cef, 0x6cd9, 0x6cea, 0x6d1f, 0x884d, 0x6d36, 0x6d2b, 0x6d3d, 0x6d38, 0x6d19, 0x6d35, 0x6d33, 0x6d12, 0x6d0c, 0x6d63, 0x6d93, 0x6d64, 0x6d5a, 0x6d79, 0x6d59, 0x6d8e, 0x6d95, 0x6fe4, 0x6d85, 0x6df9, 0x6e15, 0x6e0a, 0x6db5, 0x6dc7, 0x6de6, 0x6db8, 0x6dc6, 0x6dec, 0x6dde, 0x6dcc, 0x6de8, 0x6dd2, 0x6dc5, 0x6dfa, 0x6dd9, 0x6de4, 0x6dd5, 0x6dea, 0x6dee, 0x6e2d, 0x6e6e, 0x6e2e, 0x6e19, 0x6e72, 0x6e5f, 0x6e3e, 0x6e23, 0x6e6b, 0x6e2b, 0x6e76, 0x6e4d, 0x6e1f, 0x6e43, 0x6e3a, 0x6e4e, 0x6e24, 0x6eff, 0x6e1d, 0x6e38, 0x6e82, 0x6eaa, 0x6e98, 0x6ec9, 0x6eb7, 0x6ed3, 0x6ebd, 0x6eaf, 0x6ec4, 0x6eb2, 0x6ed4, 0x6ed5, 0x6e8f, 0x6ea5, 0x6ec2, 0x6e9f, 0x6f41, 0x6f11, 0x704c, 0x6eec, 0x6ef8, 0x6efe, 0x6f3f, 0x6ef2, 0x6f31, 0x6eef, 0x6f32, 0x6ecc, 0x003f, 0x003f, 0x003f, /* lead byte e0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6f3e, 0x6f13, 0x6ef7, 0x6f86, 0x6f7a, 0x6f78, 0x6f81, 0x6f80, 0x6f6f, 0x6f5b, 0x6ff3, 0x6f6d, 0x6f82, 0x6f7c, 0x6f58, 0x6f8e, 0x6f91, 0x6fc2, 0x6f66, 0x6fb3, 0x6fa3, 0x6fa1, 0x6fa4, 0x6fb9, 0x6fc6, 0x6faa, 0x6fdf, 0x6fd5, 0x6fec, 0x6fd4, 0x6fd8, 0x6ff1, 0x6fee, 0x6fdb, 0x7009, 0x700b, 0x6ffa, 0x7011, 0x7001, 0x700f, 0x6ffe, 0x701b, 0x701a, 0x6f74, 0x701d, 0x7018, 0x701f, 0x7030, 0x703e, 0x7032, 0x7051, 0x7063, 0x7099, 0x7092, 0x70af, 0x70f1, 0x70ac, 0x70b8, 0x70b3, 0x70ae, 0x70df, 0x70cb, 0x70dd, 0x003f, 0x70d9, 0x7109, 0x70fd, 0x711c, 0x7119, 0x7165, 0x7155, 0x7188, 0x7166, 0x7162, 0x714c, 0x7156, 0x716c, 0x718f, 0x71fb, 0x7184, 0x7195, 0x71a8, 0x71ac, 0x71d7, 0x71b9, 0x71be, 0x71d2, 0x71c9, 0x71d4, 0x71ce, 0x71e0, 0x71ec, 0x71e7, 0x71f5, 0x71fc, 0x71f9, 0x71ff, 0x720d, 0x7210, 0x721b, 0x7228, 0x722d, 0x722c, 0x7230, 0x7232, 0x723b, 0x723c, 0x723f, 0x7240, 0x7246, 0x724b, 0x7258, 0x7274, 0x727e, 0x7282, 0x7281, 0x7287, 0x7292, 0x7296, 0x72a2, 0x72a7, 0x72b9, 0x72b2, 0x72c3, 0x72c6, 0x72c4, 0x72ce, 0x72d2, 0x72e2, 0x72e0, 0x72e1, 0x72f9, 0x72f7, 0x500f, 0x7317, 0x730a, 0x731c, 0x7316, 0x731d, 0x7334, 0x732f, 0x7329, 0x7325, 0x733e, 0x734e, 0x734f, 0x9ed8, 0x7357, 0x736a, 0x7368, 0x7370, 0x7378, 0x7375, 0x737b, 0x737a, 0x73c8, 0x73b3, 0x73ce, 0x73bb, 0x73c0, 0x73e5, 0x73ee, 0x73de, 0x74a2, 0x7405, 0x746f, 0x7425, 0x73f8, 0x7432, 0x743a, 0x7455, 0x743f, 0x745f, 0x7459, 0x7441, 0x745c, 0x7469, 0x7470, 0x7463, 0x746a, 0x7476, 0x747e, 0x748b, 0x749e, 0x74a7, 0x74ca, 0x74cf, 0x74d4, 0x73f1, 0x003f, 0x003f, 0x003f, /* lead byte e1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x74e0, 0x74e3, 0x74e7, 0x74e9, 0x74ee, 0x74f2, 0x74f0, 0x74f1, 0x74f8, 0x74f7, 0x7504, 0x7503, 0x7505, 0x750c, 0x750e, 0x750d, 0x7515, 0x7513, 0x751e, 0x7526, 0x752c, 0x753c, 0x7544, 0x754d, 0x754a, 0x7549, 0x755b, 0x7546, 0x755a, 0x7569, 0x7564, 0x7567, 0x756b, 0x756d, 0x7578, 0x7576, 0x7586, 0x7587, 0x7574, 0x758a, 0x7589, 0x7582, 0x7594, 0x759a, 0x759d, 0x75a5, 0x75a3, 0x75c2, 0x75b3, 0x75c3, 0x75b5, 0x75bd, 0x75b8, 0x75bc, 0x75b1, 0x75cd, 0x75ca, 0x75d2, 0x75d9, 0x75e3, 0x75de, 0x75fe, 0x75ff, 0x003f, 0x75fc, 0x7601, 0x75f0, 0x75fa, 0x75f2, 0x75f3, 0x760b, 0x760d, 0x7609, 0x761f, 0x7627, 0x7620, 0x7621, 0x7622, 0x7624, 0x7634, 0x7630, 0x763b, 0x7647, 0x7648, 0x7646, 0x765c, 0x7658, 0x7661, 0x7662, 0x7668, 0x7669, 0x766a, 0x7667, 0x766c, 0x7670, 0x7672, 0x7676, 0x7678, 0x767c, 0x7680, 0x7683, 0x7688, 0x768b, 0x768e, 0x7696, 0x7693, 0x7699, 0x769a, 0x76b0, 0x76b4, 0x76b8, 0x76b9, 0x76ba, 0x76c2, 0x76cd, 0x76d6, 0x76d2, 0x76de, 0x76e1, 0x76e5, 0x76e7, 0x76ea, 0x862f, 0x76fb, 0x7708, 0x7707, 0x7704, 0x7729, 0x7724, 0x771e, 0x7725, 0x7726, 0x771b, 0x7737, 0x7738, 0x7747, 0x775a, 0x7768, 0x776b, 0x775b, 0x7765, 0x777f, 0x777e, 0x7779, 0x778e, 0x778b, 0x7791, 0x77a0, 0x779e, 0x77b0, 0x77b6, 0x77b9, 0x77bf, 0x77bc, 0x77bd, 0x77bb, 0x77c7, 0x77cd, 0x77d7, 0x77da, 0x77dc, 0x77e3, 0x77ee, 0x77fc, 0x780c, 0x7812, 0x7926, 0x7820, 0x792a, 0x7845, 0x788e, 0x7874, 0x7886, 0x787c, 0x789a, 0x788c, 0x78a3, 0x78b5, 0x78aa, 0x78af, 0x78d1, 0x78c6, 0x78cb, 0x78d4, 0x78be, 0x78bc, 0x78c5, 0x78ca, 0x78ec, 0x003f, 0x003f, 0x003f, /* lead byte e2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x78e7, 0x78da, 0x78fd, 0x78f4, 0x7907, 0x7912, 0x7911, 0x7919, 0x792c, 0x792b, 0x7940, 0x7960, 0x7957, 0x795f, 0x795a, 0x7955, 0x7953, 0x797a, 0x797f, 0x798a, 0x799d, 0x79a7, 0x9f4b, 0x79aa, 0x79ae, 0x79b3, 0x79b9, 0x79ba, 0x79c9, 0x79d5, 0x79e7, 0x79ec, 0x79e1, 0x79e3, 0x7a08, 0x7a0d, 0x7a18, 0x7a19, 0x7a20, 0x7a1f, 0x7980, 0x7a31, 0x7a3b, 0x7a3e, 0x7a37, 0x7a43, 0x7a57, 0x7a49, 0x7a61, 0x7a62, 0x7a69, 0x9f9d, 0x7a70, 0x7a79, 0x7a7d, 0x7a88, 0x7a97, 0x7a95, 0x7a98, 0x7a96, 0x7aa9, 0x7ac8, 0x7ab0, 0x003f, 0x7ab6, 0x7ac5, 0x7ac4, 0x7abf, 0x9083, 0x7ac7, 0x7aca, 0x7acd, 0x7acf, 0x7ad5, 0x7ad3, 0x7ad9, 0x7ada, 0x7add, 0x7ae1, 0x7ae2, 0x7ae6, 0x7aed, 0x7af0, 0x7b02, 0x7b0f, 0x7b0a, 0x7b06, 0x7b33, 0x7b18, 0x7b19, 0x7b1e, 0x7b35, 0x7b28, 0x7b36, 0x7b50, 0x7b7a, 0x7b04, 0x7b4d, 0x7b0b, 0x7b4c, 0x7b45, 0x7b75, 0x7b65, 0x7b74, 0x7b67, 0x7b70, 0x7b71, 0x7b6c, 0x7b6e, 0x7b9d, 0x7b98, 0x7b9f, 0x7b8d, 0x7b9c, 0x7b9a, 0x7b8b, 0x7b92, 0x7b8f, 0x7b5d, 0x7b99, 0x7bcb, 0x7bc1, 0x7bcc, 0x7bcf, 0x7bb4, 0x7bc6, 0x7bdd, 0x7be9, 0x7c11, 0x7c14, 0x7be6, 0x7be5, 0x7c60, 0x7c00, 0x7c07, 0x7c13, 0x7bf3, 0x7bf7, 0x7c17, 0x7c0d, 0x7bf6, 0x7c23, 0x7c27, 0x7c2a, 0x7c1f, 0x7c37, 0x7c2b, 0x7c3d, 0x7c4c, 0x7c43, 0x7c54, 0x7c4f, 0x7c40, 0x7c50, 0x7c58, 0x7c5f, 0x7c64, 0x7c56, 0x7c65, 0x7c6c, 0x7c75, 0x7c83, 0x7c90, 0x7ca4, 0x7cad, 0x7ca2, 0x7cab, 0x7ca1, 0x7ca8, 0x7cb3, 0x7cb2, 0x7cb1, 0x7cae, 0x7cb9, 0x7cbd, 0x7cc0, 0x7cc5, 0x7cc2, 0x7cd8, 0x7cd2, 0x7cdc, 0x7ce2, 0x9b3b, 0x7cef, 0x7cf2, 0x7cf4, 0x7cf6, 0x7cfa, 0x7d06, 0x003f, 0x003f, 0x003f, /* lead byte e3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7d02, 0x7d1c, 0x7d15, 0x7d0a, 0x7d45, 0x7d4b, 0x7d2e, 0x7d32, 0x7d3f, 0x7d35, 0x7d46, 0x7d73, 0x7d56, 0x7d4e, 0x7d72, 0x7d68, 0x7d6e, 0x7d4f, 0x7d63, 0x7d93, 0x7d89, 0x7d5b, 0x7d8f, 0x7d7d, 0x7d9b, 0x7dba, 0x7dae, 0x7da3, 0x7db5, 0x7dc7, 0x7dbd, 0x7dab, 0x7e3d, 0x7da2, 0x7daf, 0x7ddc, 0x7db8, 0x7d9f, 0x7db0, 0x7dd8, 0x7ddd, 0x7de4, 0x7dde, 0x7dfb, 0x7df2, 0x7de1, 0x7e05, 0x7e0a, 0x7e23, 0x7e21, 0x7e12, 0x7e31, 0x7e1f, 0x7e09, 0x7e0b, 0x7e22, 0x7e46, 0x7e66, 0x7e3b, 0x7e35, 0x7e39, 0x7e43, 0x7e37, 0x003f, 0x7e32, 0x7e3a, 0x7e67, 0x7e5d, 0x7e56, 0x7e5e, 0x7e59, 0x7e5a, 0x7e79, 0x7e6a, 0x7e69, 0x7e7c, 0x7e7b, 0x7e83, 0x7dd5, 0x7e7d, 0x8fae, 0x7e7f, 0x7e88, 0x7e89, 0x7e8c, 0x7e92, 0x7e90, 0x7e93, 0x7e94, 0x7e96, 0x7e8e, 0x7e9b, 0x7e9c, 0x7f38, 0x7f3a, 0x7f45, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f50, 0x7f51, 0x7f55, 0x7f54, 0x7f58, 0x7f5f, 0x7f60, 0x7f68, 0x7f69, 0x7f67, 0x7f78, 0x7f82, 0x7f86, 0x7f83, 0x7f88, 0x7f87, 0x7f8c, 0x7f94, 0x7f9e, 0x7f9d, 0x7f9a, 0x7fa3, 0x7faf, 0x7fb2, 0x7fb9, 0x7fae, 0x7fb6, 0x7fb8, 0x8b71, 0x7fc5, 0x7fc6, 0x7fca, 0x7fd5, 0x7fd4, 0x7fe1, 0x7fe6, 0x7fe9, 0x7ff3, 0x7ff9, 0x98dc, 0x8006, 0x8004, 0x800b, 0x8012, 0x8018, 0x8019, 0x801c, 0x8021, 0x8028, 0x803f, 0x803b, 0x804a, 0x8046, 0x8052, 0x8058, 0x805a, 0x805f, 0x8062, 0x8068, 0x8073, 0x8072, 0x8070, 0x8076, 0x8079, 0x807d, 0x807f, 0x8084, 0x8086, 0x8085, 0x809b, 0x8093, 0x809a, 0x80ad, 0x5190, 0x80ac, 0x80db, 0x80e5, 0x80d9, 0x80dd, 0x80c4, 0x80da, 0x80d6, 0x8109, 0x80ef, 0x80f1, 0x811b, 0x8129, 0x8123, 0x812f, 0x814b, 0x003f, 0x003f, 0x003f, /* lead byte e4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x968b, 0x8146, 0x813e, 0x8153, 0x8151, 0x80fc, 0x8171, 0x816e, 0x8165, 0x8166, 0x8174, 0x8183, 0x8188, 0x818a, 0x8180, 0x8182, 0x81a0, 0x8195, 0x81a4, 0x81a3, 0x815f, 0x8193, 0x81a9, 0x81b0, 0x81b5, 0x81be, 0x81b8, 0x81bd, 0x81c0, 0x81c2, 0x81ba, 0x81c9, 0x81cd, 0x81d1, 0x81d9, 0x81d8, 0x81c8, 0x81da, 0x81df, 0x81e0, 0x81e7, 0x81fa, 0x81fb, 0x81fe, 0x8201, 0x8202, 0x8205, 0x8207, 0x820a, 0x820d, 0x8210, 0x8216, 0x8229, 0x822b, 0x8238, 0x8233, 0x8240, 0x8259, 0x8258, 0x825d, 0x825a, 0x825f, 0x8264, 0x003f, 0x8262, 0x8268, 0x826a, 0x826b, 0x822e, 0x8271, 0x8277, 0x8278, 0x827e, 0x828d, 0x8292, 0x82ab, 0x829f, 0x82bb, 0x82ac, 0x82e1, 0x82e3, 0x82df, 0x82d2, 0x82f4, 0x82f3, 0x82fa, 0x8393, 0x8303, 0x82fb, 0x82f9, 0x82de, 0x8306, 0x82dc, 0x8309, 0x82d9, 0x8335, 0x8334, 0x8316, 0x8332, 0x8331, 0x8340, 0x8339, 0x8350, 0x8345, 0x832f, 0x832b, 0x8317, 0x8318, 0x8385, 0x839a, 0x83aa, 0x839f, 0x83a2, 0x8396, 0x8323, 0x838e, 0x8387, 0x838a, 0x837c, 0x83b5, 0x8373, 0x8375, 0x83a0, 0x8389, 0x83a8, 0x83f4, 0x8413, 0x83eb, 0x83ce, 0x83fd, 0x8403, 0x83d8, 0x840b, 0x83c1, 0x83f7, 0x8407, 0x83e0, 0x83f2, 0x840d, 0x8422, 0x8420, 0x83bd, 0x8438, 0x8506, 0x83fb, 0x846d, 0x842a, 0x843c, 0x855a, 0x8484, 0x8477, 0x846b, 0x84ad, 0x846e, 0x8482, 0x8469, 0x8446, 0x842c, 0x846f, 0x8479, 0x8435, 0x84ca, 0x8462, 0x84b9, 0x84bf, 0x849f, 0x84d9, 0x84cd, 0x84bb, 0x84da, 0x84d0, 0x84c1, 0x84c6, 0x84d6, 0x84a1, 0x8521, 0x84ff, 0x84f4, 0x8517, 0x8518, 0x852c, 0x851f, 0x8515, 0x8514, 0x84fc, 0x8540, 0x8563, 0x8558, 0x8548, 0x003f, 0x003f, 0x003f, /* lead byte e5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8541, 0x8602, 0x854b, 0x8555, 0x8580, 0x85a4, 0x8588, 0x8591, 0x858a, 0x85a8, 0x856d, 0x8594, 0x859b, 0x85ea, 0x8587, 0x859c, 0x8577, 0x857e, 0x8590, 0x85c9, 0x85ba, 0x85cf, 0x85b9, 0x85d0, 0x85d5, 0x85dd, 0x85e5, 0x85dc, 0x85f9, 0x860a, 0x8613, 0x860b, 0x85fe, 0x85fa, 0x8606, 0x8622, 0x861a, 0x8630, 0x863f, 0x864d, 0x4e55, 0x8654, 0x865f, 0x8667, 0x8671, 0x8693, 0x86a3, 0x86a9, 0x86aa, 0x868b, 0x868c, 0x86b6, 0x86af, 0x86c4, 0x86c6, 0x86b0, 0x86c9, 0x8823, 0x86ab, 0x86d4, 0x86de, 0x86e9, 0x86ec, 0x003f, 0x86df, 0x86db, 0x86ef, 0x8712, 0x8706, 0x8708, 0x8700, 0x8703, 0x86fb, 0x8711, 0x8709, 0x870d, 0x86f9, 0x870a, 0x8734, 0x873f, 0x8737, 0x873b, 0x8725, 0x8729, 0x871a, 0x8760, 0x875f, 0x8778, 0x874c, 0x874e, 0x8774, 0x8757, 0x8768, 0x876e, 0x8759, 0x8753, 0x8763, 0x876a, 0x8805, 0x87a2, 0x879f, 0x8782, 0x87af, 0x87cb, 0x87bd, 0x87c0, 0x87d0, 0x96d6, 0x87ab, 0x87c4, 0x87b3, 0x87c7, 0x87c6, 0x87bb, 0x87ef, 0x87f2, 0x87e0, 0x880f, 0x880d, 0x87fe, 0x87f6, 0x87f7, 0x880e, 0x87d2, 0x8811, 0x8816, 0x8815, 0x8822, 0x8821, 0x8831, 0x8836, 0x8839, 0x8827, 0x883b, 0x8844, 0x8842, 0x8852, 0x8859, 0x885e, 0x8862, 0x886b, 0x8881, 0x887e, 0x889e, 0x8875, 0x887d, 0x88b5, 0x8872, 0x8882, 0x8897, 0x8892, 0x88ae, 0x8899, 0x88a2, 0x888d, 0x88a4, 0x88b0, 0x88bf, 0x88b1, 0x88c3, 0x88c4, 0x88d4, 0x88d8, 0x88d9, 0x88dd, 0x88f9, 0x8902, 0x88fc, 0x88f4, 0x88e8, 0x88f2, 0x8904, 0x890c, 0x890a, 0x8913, 0x8943, 0x891e, 0x8925, 0x892a, 0x892b, 0x8941, 0x8944, 0x893b, 0x8936, 0x8938, 0x894c, 0x891d, 0x8960, 0x895e, 0x003f, 0x003f, 0x003f, /* lead byte e6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8966, 0x8964, 0x896d, 0x896a, 0x896f, 0x8974, 0x8977, 0x897e, 0x8983, 0x8988, 0x898a, 0x8993, 0x8998, 0x89a1, 0x89a9, 0x89a6, 0x89ac, 0x89af, 0x89b2, 0x89ba, 0x89bd, 0x89bf, 0x89c0, 0x89da, 0x89dc, 0x89dd, 0x89e7, 0x89f4, 0x89f8, 0x8a03, 0x8a16, 0x8a10, 0x8a0c, 0x8a1b, 0x8a1d, 0x8a25, 0x8a36, 0x8a41, 0x8a5b, 0x8a52, 0x8a46, 0x8a48, 0x8a7c, 0x8a6d, 0x8a6c, 0x8a62, 0x8a85, 0x8a82, 0x8a84, 0x8aa8, 0x8aa1, 0x8a91, 0x8aa5, 0x8aa6, 0x8a9a, 0x8aa3, 0x8ac4, 0x8acd, 0x8ac2, 0x8ada, 0x8aeb, 0x8af3, 0x8ae7, 0x003f, 0x8ae4, 0x8af1, 0x8b14, 0x8ae0, 0x8ae2, 0x8af7, 0x8ade, 0x8adb, 0x8b0c, 0x8b07, 0x8b1a, 0x8ae1, 0x8b16, 0x8b10, 0x8b17, 0x8b20, 0x8b33, 0x97ab, 0x8b26, 0x8b2b, 0x8b3e, 0x8b28, 0x8b41, 0x8b4c, 0x8b4f, 0x8b4e, 0x8b49, 0x8b56, 0x8b5b, 0x8b5a, 0x8b6b, 0x8b5f, 0x8b6c, 0x8b6f, 0x8b74, 0x8b7d, 0x8b80, 0x8b8c, 0x8b8e, 0x8b92, 0x8b93, 0x8b96, 0x8b99, 0x8b9a, 0x8c3a, 0x8c41, 0x8c3f, 0x8c48, 0x8c4c, 0x8c4e, 0x8c50, 0x8c55, 0x8c62, 0x8c6c, 0x8c78, 0x8c7a, 0x8c82, 0x8c89, 0x8c85, 0x8c8a, 0x8c8d, 0x8c8e, 0x8c94, 0x8c7c, 0x8c98, 0x621d, 0x8cad, 0x8caa, 0x8cbd, 0x8cb2, 0x8cb3, 0x8cae, 0x8cb6, 0x8cc8, 0x8cc1, 0x8ce4, 0x8ce3, 0x8cda, 0x8cfd, 0x8cfa, 0x8cfb, 0x8d04, 0x8d05, 0x8d0a, 0x8d07, 0x8d0f, 0x8d0d, 0x8d10, 0x9f4e, 0x8d13, 0x8ccd, 0x8d14, 0x8d16, 0x8d67, 0x8d6d, 0x8d71, 0x8d73, 0x8d81, 0x8d99, 0x8dc2, 0x8dbe, 0x8dba, 0x8dcf, 0x8dda, 0x8dd6, 0x8dcc, 0x8ddb, 0x8dcb, 0x8dea, 0x8deb, 0x8ddf, 0x8de3, 0x8dfc, 0x8e08, 0x8e09, 0x8dff, 0x8e1d, 0x8e1e, 0x8e10, 0x8e1f, 0x8e42, 0x8e35, 0x8e30, 0x8e34, 0x8e4a, 0x003f, 0x003f, 0x003f, /* lead byte e7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e47, 0x8e49, 0x8e4c, 0x8e50, 0x8e48, 0x8e59, 0x8e64, 0x8e60, 0x8e2a, 0x8e63, 0x8e55, 0x8e76, 0x8e72, 0x8e7c, 0x8e81, 0x8e87, 0x8e85, 0x8e84, 0x8e8b, 0x8e8a, 0x8e93, 0x8e91, 0x8e94, 0x8e99, 0x8eaa, 0x8ea1, 0x8eac, 0x8eb0, 0x8ec6, 0x8eb1, 0x8ebe, 0x8ec5, 0x8ec8, 0x8ecb, 0x8edb, 0x8ee3, 0x8efc, 0x8efb, 0x8eeb, 0x8efe, 0x8f0a, 0x8f05, 0x8f15, 0x8f12, 0x8f19, 0x8f13, 0x8f1c, 0x8f1f, 0x8f1b, 0x8f0c, 0x8f26, 0x8f33, 0x8f3b, 0x8f39, 0x8f45, 0x8f42, 0x8f3e, 0x8f4c, 0x8f49, 0x8f46, 0x8f4e, 0x8f57, 0x8f5c, 0x003f, 0x8f62, 0x8f63, 0x8f64, 0x8f9c, 0x8f9f, 0x8fa3, 0x8fad, 0x8faf, 0x8fb7, 0x8fda, 0x8fe5, 0x8fe2, 0x8fea, 0x8fef, 0x9087, 0x8ff4, 0x9005, 0x8ff9, 0x8ffa, 0x9011, 0x9015, 0x9021, 0x900d, 0x901e, 0x9016, 0x900b, 0x9027, 0x9036, 0x9035, 0x9039, 0x8ff8, 0x904f, 0x9050, 0x9051, 0x9052, 0x900e, 0x9049, 0x903e, 0x9056, 0x9058, 0x905e, 0x9068, 0x906f, 0x9076, 0x96a8, 0x9072, 0x9082, 0x907d, 0x9081, 0x9080, 0x908a, 0x9089, 0x908f, 0x90a8, 0x90af, 0x90b1, 0x90b5, 0x90e2, 0x90e4, 0x6248, 0x90db, 0x9102, 0x9112, 0x9119, 0x9132, 0x9130, 0x914a, 0x9156, 0x9158, 0x9163, 0x9165, 0x9169, 0x9173, 0x9172, 0x918b, 0x9189, 0x9182, 0x91a2, 0x91ab, 0x91af, 0x91aa, 0x91b5, 0x91b4, 0x91ba, 0x91c0, 0x91c1, 0x91c9, 0x91cb, 0x91d0, 0x91d6, 0x91df, 0x91e1, 0x91db, 0x91fc, 0x91f5, 0x91f6, 0x921e, 0x91ff, 0x9214, 0x922c, 0x9215, 0x9211, 0x925e, 0x9257, 0x9245, 0x9249, 0x9264, 0x9248, 0x9295, 0x923f, 0x924b, 0x9250, 0x929c, 0x9296, 0x9293, 0x929b, 0x925a, 0x92cf, 0x92b9, 0x92b7, 0x92e9, 0x930f, 0x92fa, 0x9344, 0x932e, 0x003f, 0x003f, 0x003f, /* lead byte e8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9319, 0x9322, 0x931a, 0x9323, 0x933a, 0x9335, 0x933b, 0x935c, 0x9360, 0x937c, 0x936e, 0x9356, 0x93b0, 0x93ac, 0x93ad, 0x9394, 0x93b9, 0x93d6, 0x93d7, 0x93e8, 0x93e5, 0x93d8, 0x93c3, 0x93dd, 0x93d0, 0x93c8, 0x93e4, 0x941a, 0x9414, 0x9413, 0x9403, 0x9407, 0x9410, 0x9436, 0x942b, 0x9435, 0x9421, 0x943a, 0x9441, 0x9452, 0x9444, 0x945b, 0x9460, 0x9462, 0x945e, 0x946a, 0x9229, 0x9470, 0x9475, 0x9477, 0x947d, 0x945a, 0x947c, 0x947e, 0x9481, 0x947f, 0x9582, 0x9587, 0x958a, 0x9594, 0x9596, 0x9598, 0x9599, 0x003f, 0x95a0, 0x95a8, 0x95a7, 0x95ad, 0x95bc, 0x95bb, 0x95b9, 0x95be, 0x95ca, 0x6ff6, 0x95c3, 0x95cd, 0x95cc, 0x95d5, 0x95d4, 0x95d6, 0x95dc, 0x95e1, 0x95e5, 0x95e2, 0x9621, 0x9628, 0x962e, 0x962f, 0x9642, 0x964c, 0x964f, 0x964b, 0x9677, 0x965c, 0x965e, 0x965d, 0x965f, 0x9666, 0x9672, 0x966c, 0x968d, 0x9698, 0x9695, 0x9697, 0x96aa, 0x96a7, 0x96b1, 0x96b2, 0x96b0, 0x96b4, 0x96b6, 0x96b8, 0x96b9, 0x96ce, 0x96cb, 0x96c9, 0x96cd, 0x894d, 0x96dc, 0x970d, 0x96d5, 0x96f9, 0x9704, 0x9706, 0x9708, 0x9713, 0x970e, 0x9711, 0x970f, 0x9716, 0x9719, 0x9724, 0x972a, 0x9730, 0x9739, 0x973d, 0x973e, 0x9744, 0x9746, 0x9748, 0x9742, 0x9749, 0x975c, 0x9760, 0x9764, 0x9766, 0x9768, 0x52d2, 0x976b, 0x9771, 0x9779, 0x9785, 0x977c, 0x9781, 0x977a, 0x9786, 0x978b, 0x978f, 0x9790, 0x979c, 0x97a8, 0x97a6, 0x97a3, 0x97b3, 0x97b4, 0x97c3, 0x97c6, 0x97c8, 0x97cb, 0x97dc, 0x97ed, 0x9f4f, 0x97f2, 0x7adf, 0x97f6, 0x97f5, 0x980f, 0x980c, 0x9838, 0x9824, 0x9821, 0x9837, 0x983d, 0x9846, 0x984f, 0x984b, 0x986b, 0x986f, 0x9870, 0x003f, 0x003f, 0x003f, /* lead byte e9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9871, 0x9874, 0x9873, 0x98aa, 0x98af, 0x98b1, 0x98b6, 0x98c4, 0x98c3, 0x98c6, 0x98e9, 0x98eb, 0x9903, 0x9909, 0x9912, 0x9914, 0x9918, 0x9921, 0x991d, 0x991e, 0x9924, 0x9920, 0x992c, 0x992e, 0x993d, 0x993e, 0x9942, 0x9949, 0x9945, 0x9950, 0x994b, 0x9951, 0x9952, 0x994c, 0x9955, 0x9997, 0x9998, 0x99a5, 0x99ad, 0x99ae, 0x99bc, 0x99df, 0x99db, 0x99dd, 0x99d8, 0x99d1, 0x99ed, 0x99ee, 0x99f1, 0x99f2, 0x99fb, 0x99f8, 0x9a01, 0x9a0f, 0x9a05, 0x99e2, 0x9a19, 0x9a2b, 0x9a37, 0x9a45, 0x9a42, 0x9a40, 0x9a43, 0x003f, 0x9a3e, 0x9a55, 0x9a4d, 0x9a5b, 0x9a57, 0x9a5f, 0x9a62, 0x9a65, 0x9a64, 0x9a69, 0x9a6b, 0x9a6a, 0x9aad, 0x9ab0, 0x9abc, 0x9ac0, 0x9acf, 0x9ad1, 0x9ad3, 0x9ad4, 0x9ade, 0x9adf, 0x9ae2, 0x9ae3, 0x9ae6, 0x9aef, 0x9aeb, 0x9aee, 0x9af4, 0x9af1, 0x9af7, 0x9afb, 0x9b06, 0x9b18, 0x9b1a, 0x9b1f, 0x9b22, 0x9b23, 0x9b25, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2e, 0x9b2f, 0x9b32, 0x9b44, 0x9b43, 0x9b4f, 0x9b4d, 0x9b4e, 0x9b51, 0x9b58, 0x9b74, 0x9b93, 0x9b83, 0x9b91, 0x9b96, 0x9b97, 0x9b9f, 0x9ba0, 0x9ba8, 0x9bb4, 0x9bc0, 0x9bca, 0x9bb9, 0x9bc6, 0x9bcf, 0x9bd1, 0x9bd2, 0x9be3, 0x9be2, 0x9be4, 0x9bd4, 0x9be1, 0x9c3a, 0x9bf2, 0x9bf1, 0x9bf0, 0x9c15, 0x9c14, 0x9c09, 0x9c13, 0x9c0c, 0x9c06, 0x9c08, 0x9c12, 0x9c0a, 0x9c04, 0x9c2e, 0x9c1b, 0x9c25, 0x9c24, 0x9c21, 0x9c30, 0x9c47, 0x9c32, 0x9c46, 0x9c3e, 0x9c5a, 0x9c60, 0x9c67, 0x9c76, 0x9c78, 0x9ce7, 0x9cec, 0x9cf0, 0x9d09, 0x9d08, 0x9ceb, 0x9d03, 0x9d06, 0x9d2a, 0x9d26, 0x9daf, 0x9d23, 0x9d1f, 0x9d44, 0x9d15, 0x9d12, 0x9d41, 0x9d3f, 0x9d3e, 0x9d46, 0x9d48, 0x003f, 0x003f, 0x003f, /* lead byte ea */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d5d, 0x9d5e, 0x9d64, 0x9d51, 0x9d50, 0x9d59, 0x9d72, 0x9d89, 0x9d87, 0x9dab, 0x9d6f, 0x9d7a, 0x9d9a, 0x9da4, 0x9da9, 0x9db2, 0x9dc4, 0x9dc1, 0x9dbb, 0x9db8, 0x9dba, 0x9dc6, 0x9dcf, 0x9dc2, 0x9dd9, 0x9dd3, 0x9df8, 0x9de6, 0x9ded, 0x9def, 0x9dfd, 0x9e1a, 0x9e1b, 0x9e1e, 0x9e75, 0x9e79, 0x9e7d, 0x9e81, 0x9e88, 0x9e8b, 0x9e8c, 0x9e92, 0x9e95, 0x9e91, 0x9e9d, 0x9ea5, 0x9ea9, 0x9eb8, 0x9eaa, 0x9ead, 0x9761, 0x9ecc, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed4, 0x9edc, 0x9ede, 0x9edd, 0x9ee0, 0x9ee5, 0x9ee8, 0x9eef, 0x003f, 0x9ef4, 0x9ef6, 0x9ef7, 0x9ef9, 0x9efb, 0x9efc, 0x9efd, 0x9f07, 0x9f08, 0x76b7, 0x9f15, 0x9f21, 0x9f2c, 0x9f3e, 0x9f4a, 0x9f52, 0x9f54, 0x9f63, 0x9f5f, 0x9f60, 0x9f61, 0x9f66, 0x9f67, 0x9f6c, 0x9f6a, 0x9f77, 0x9f72, 0x9f76, 0x9f95, 0x9f9c, 0x9fa0, 0x582f, 0x69c7, 0x9059, 0x7464, 0x51dc, 0x7199, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ed */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0x003f, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x003f, 0x003f, 0x003f, /* lead byte ee */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x003f, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0x003f, 0x003f, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0xffe2, 0xffe4, 0xff07, 0xff02, 0x003f, 0x003f, 0x003f, /* lead byte fa */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0xffe2, 0xffe4, 0xff07, 0xff02, 0x3231, 0x2116, 0x2121, 0x2235, 0x7e8a, 0x891c, 0x9348, 0x9288, 0x84dc, 0x4fc9, 0x70bb, 0x6631, 0x68c8, 0x92f9, 0x66fb, 0x5f45, 0x4e28, 0x4ee1, 0x4efc, 0x4f00, 0x4f03, 0x4f39, 0x4f56, 0x4f92, 0x4f8a, 0x4f9a, 0x4f94, 0x4fcd, 0x5040, 0x5022, 0x4fff, 0x501e, 0x5046, 0x5070, 0x5042, 0x5094, 0x50f4, 0x50d8, 0x514a, 0x003f, 0x5164, 0x519d, 0x51be, 0x51ec, 0x5215, 0x529c, 0x52a6, 0x52c0, 0x52db, 0x5300, 0x5307, 0x5324, 0x5372, 0x5393, 0x53b2, 0x53dd, 0xfa0e, 0x549c, 0x548a, 0x54a9, 0x54ff, 0x5586, 0x5759, 0x5765, 0x57ac, 0x57c8, 0x57c7, 0xfa0f, 0xfa10, 0x589e, 0x58b2, 0x590b, 0x5953, 0x595b, 0x595d, 0x5963, 0x59a4, 0x59ba, 0x5b56, 0x5bc0, 0x752f, 0x5bd8, 0x5bec, 0x5c1e, 0x5ca6, 0x5cba, 0x5cf5, 0x5d27, 0x5d53, 0xfa11, 0x5d42, 0x5d6d, 0x5db8, 0x5db9, 0x5dd0, 0x5f21, 0x5f34, 0x5f67, 0x5fb7, 0x5fde, 0x605d, 0x6085, 0x608a, 0x60de, 0x60d5, 0x6120, 0x60f2, 0x6111, 0x6137, 0x6130, 0x6198, 0x6213, 0x62a6, 0x63f5, 0x6460, 0x649d, 0x64ce, 0x654e, 0x6600, 0x6615, 0x663b, 0x6609, 0x662e, 0x661e, 0x6624, 0x6665, 0x6657, 0x6659, 0xfa12, 0x6673, 0x6699, 0x66a0, 0x66b2, 0x66bf, 0x66fa, 0x670e, 0xf929, 0x6766, 0x67bb, 0x6852, 0x67c0, 0x6801, 0x6844, 0x68cf, 0xfa13, 0x6968, 0xfa14, 0x6998, 0x69e2, 0x6a30, 0x6a6b, 0x6a46, 0x6a73, 0x6a7e, 0x6ae2, 0x6ae4, 0x6bd6, 0x6c3f, 0x6c5c, 0x6c86, 0x6c6f, 0x6cda, 0x6d04, 0x6d87, 0x6d6f, 0x003f, 0x003f, 0x003f, /* lead byte fb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6d96, 0x6dac, 0x6dcf, 0x6df8, 0x6df2, 0x6dfc, 0x6e39, 0x6e5c, 0x6e27, 0x6e3c, 0x6ebf, 0x6f88, 0x6fb5, 0x6ff5, 0x7005, 0x7007, 0x7028, 0x7085, 0x70ab, 0x710f, 0x7104, 0x715c, 0x7146, 0x7147, 0xfa15, 0x71c1, 0x71fe, 0x72b1, 0x72be, 0x7324, 0xfa16, 0x7377, 0x73bd, 0x73c9, 0x73d6, 0x73e3, 0x73d2, 0x7407, 0x73f5, 0x7426, 0x742a, 0x7429, 0x742e, 0x7462, 0x7489, 0x749f, 0x7501, 0x756f, 0x7682, 0x769c, 0x769e, 0x769b, 0x76a6, 0xfa17, 0x7746, 0x52af, 0x7821, 0x784e, 0x7864, 0x787a, 0x7930, 0xfa18, 0xfa19, 0x003f, 0xfa1a, 0x7994, 0xfa1b, 0x799b, 0x7ad1, 0x7ae7, 0xfa1c, 0x7aeb, 0x7b9e, 0xfa1d, 0x7d48, 0x7d5c, 0x7db7, 0x7da0, 0x7dd6, 0x7e52, 0x7f47, 0x7fa1, 0xfa1e, 0x8301, 0x8362, 0x837f, 0x83c7, 0x83f6, 0x8448, 0x84b4, 0x8553, 0x8559, 0x856b, 0xfa1f, 0x85b0, 0xfa20, 0xfa21, 0x8807, 0x88f5, 0x8a12, 0x8a37, 0x8a79, 0x8aa7, 0x8abe, 0x8adf, 0xfa22, 0x8af6, 0x8b53, 0x8b7f, 0x8cf0, 0x8cf4, 0x8d12, 0x8d76, 0xfa23, 0x8ecf, 0xfa24, 0xfa25, 0x9067, 0x90de, 0xfa26, 0x9115, 0x9127, 0x91da, 0x91d7, 0x91de, 0x91ed, 0x91ee, 0x91e4, 0x91e5, 0x9206, 0x9210, 0x920a, 0x923a, 0x9240, 0x923c, 0x924e, 0x9259, 0x9251, 0x9239, 0x9267, 0x92a7, 0x9277, 0x9278, 0x92e7, 0x92d7, 0x92d9, 0x92d0, 0xfa27, 0x92d5, 0x92e0, 0x92d3, 0x9325, 0x9321, 0x92fb, 0xfa28, 0x931e, 0x92ff, 0x931d, 0x9302, 0x9370, 0x9357, 0x93a4, 0x93c6, 0x93de, 0x93f8, 0x9431, 0x9445, 0x9448, 0x9592, 0xf9dc, 0xfa29, 0x969d, 0x96af, 0x9733, 0x973b, 0x9743, 0x974d, 0x974f, 0x9751, 0x9755, 0x9857, 0x9865, 0xfa2a, 0xfa2b, 0x9927, 0xfa2c, 0x999e, 0x9a4e, 0x9ad9, 0x003f, 0x003f, 0x003f, /* lead byte fc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9adc, 0x9b75, 0x9b72, 0x9b8f, 0x9bb1, 0x9bbb, 0x9c00, 0x9d70, 0x9d6b, 0xfa2d, 0x9e19, 0x9ed1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned char cp2uni_leadbytes[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x04, 0x05, 0x01, 0x01, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x01, 0x01, 0x2a, 0x2b, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2c, 0x2d, 0x2e, 0x00, 0x00, 0x00 }; static const unsigned short uni2cp_low[27648] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x0021, 0x0063, 0x004c, 0x003f, 0x0059, 0x003f, 0x8198, 0x814e, 0x0063, 0x0061, 0x8173, 0x003f, 0x002d, 0x0072, 0x815c, 0x818b, 0x817d, 0x0032, 0x0033, 0x814c, 0x83ca, 0x81f7, 0x003f, 0x002c, 0x0031, 0x006f, 0x8174, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0x817e, 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x003f, 0x83c0, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 0x0064, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0x8180, 0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x00fe, 0x0079, /* 0x0100 .. 0x01ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x003f, 0x003f, 0x004a, 0x006a, 0x004b, 0x006b, 0x003f, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x003f, 0x003f, 0x004c, 0x006c, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x003f, 0x003f, 0x003f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x84a0, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0049, 0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0047, 0x0067, 0x0047, 0x0067, 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, 0x004e, 0x006e, 0x0041, 0x0061, 0x0041, 0x0061, 0x004f, 0x006f, /* 0x0200 .. 0x02ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, 0x0079, 0x814c, 0x818d, 0x8165, 0x8166, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0x0076, 0x0027, 0x815c, 0x814c, 0x0060, 0x003f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x818b, 0x003f, 0x007e, 0x818d, 0x003f, 0x003f, 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0300 .. 0x03ff */ 0x0060, 0x814c, 0x005e, 0x007e, 0x815c, 0x815c, 0x003f, 0x003f, 0x814e, 0x003f, 0x818b, 0x818d, 0x0076, 0x003f, 0x0022, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005f, 0x005f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0060, 0x814c, 0x003f, 0x003f, 0x814e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x814c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x814c, 0x814e, 0x839f, 0x003f, 0x83a3, 0x83a5, 0x83a7, 0x003f, 0x83ad, 0x003f, 0x83b2, 0x83b6, 0x83c7, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae, 0x83af, 0x003f, 0x83b0, 0x83b1, 0x83b2, 0x83b3, 0x83b4, 0x83b5, 0x83b6, 0x83a7, 0x83b2, 0x83bf, 0x83c3, 0x83c5, 0x83c7, 0x83d2, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce, 0x83cf, 0x003f, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6, 0x83c7, 0x83d2, 0x83cd, 0x83d2, 0x83d6, 0x003f, 0x83c0, 0x83c6, 0x83b2, 0x83b2, 0x83b2, 0x83d3, 0x83ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x83c8, 0x83cf, 0x003f, 0x003f, 0x83a6, 0x83c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0400 .. 0x04ff */ 0x8445, 0x8446, 0x003f, 0x8443, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x844b, 0x8449, 0x8454, 0x003f, 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8451, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845a, 0x845b, 0x845c, 0x845d, 0x845e, 0x845f, 0x8460, 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8477, 0x8478, 0x8479, 0x847a, 0x847b, 0x847c, 0x847d, 0x847e, 0x8480, 0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, 0x8489, 0x848a, 0x848b, 0x848c, 0x848d, 0x848e, 0x848f, 0x8490, 0x8491, 0x8475, 0x8476, 0x003f, 0x8473, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x847b, 0x8479, 0x8485, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8447, 0x8477, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8440, 0x8470, 0x8440, 0x8470, 0x003f, 0x003f, 0x8445, 0x8475, 0x003f, 0x003f, 0x003f, 0x003f, 0x8447, 0x8477, 0x8448, 0x8478, 0x003f, 0x003f, 0x8449, 0x8479, 0x8449, 0x8479, 0x844f, 0x8480, 0x003f, 0x003f, 0x003f, 0x003f, 0x845e, 0x848f, 0x8454, 0x8485, 0x8454, 0x8485, 0x8454, 0x8485, 0x8458, 0x8489, 0x003f, 0x003f, 0x845c, 0x848d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1e00 .. 0x1eff */ 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0050, 0x0070, 0x0050, 0x0070, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0056, 0x0076, 0x0056, 0x0076, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1f00 .. 0x1fff */ 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x83c3, 0x83c3, 0x83c3, 0x83c3, 0x83c3, 0x83c3, 0x003f, 0x003f, 0x83a3, 0x83a3, 0x83a3, 0x83a3, 0x83a3, 0x83a3, 0x003f, 0x003f, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83c7, 0x83c7, 0x83c7, 0x83c7, 0x83c7, 0x83c7, 0x83c7, 0x83c7, 0x83a7, 0x83a7, 0x83a7, 0x83a7, 0x83a7, 0x83a7, 0x83a7, 0x83a7, 0x83cd, 0x83cd, 0x83cd, 0x83cd, 0x83cd, 0x83cd, 0x003f, 0x003f, 0x83ad, 0x83ad, 0x83ad, 0x83ad, 0x83ad, 0x83ad, 0x003f, 0x003f, 0x83d2, 0x83d2, 0x83d2, 0x83d2, 0x83d2, 0x83d2, 0x83d2, 0x83d2, 0x003f, 0x83b2, 0x003f, 0x83b2, 0x003f, 0x83b2, 0x003f, 0x83b2, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83bf, 0x83bf, 0x83c3, 0x83c3, 0x83c5, 0x83c5, 0x83c7, 0x83c7, 0x83cd, 0x83cd, 0x83d2, 0x83d2, 0x83d6, 0x83d6, 0x003f, 0x003f, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83c5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83a5, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83d6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83b6, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x83bf, 0x003f, 0x83bf, 0x83bf, 0x839f, 0x839f, 0x839f, 0x839f, 0x839f, 0x003f, 0x83c7, 0x003f, 0x003f, 0x814e, 0x83c5, 0x83c5, 0x83c5, 0x003f, 0x83c5, 0x83c5, 0x83a3, 0x83a3, 0x83a5, 0x83a5, 0x83a5, 0x003f, 0x003f, 0x003f, 0x83c7, 0x83c7, 0x83c7, 0x83c7, 0x003f, 0x003f, 0x83c7, 0x83c7, 0x83a7, 0x83a7, 0x83a7, 0x83a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x83d2, 0x83d2, 0x83d2, 0x83d2, 0x83cf, 0x83cf, 0x83d2, 0x83d2, 0x83b2, 0x83b2, 0x83b2, 0x83b2, 0x83af, 0x814e, 0x814e, 0x0060, 0x003f, 0x003f, 0x83d6, 0x83d6, 0x83d6, 0x003f, 0x83d6, 0x83d6, 0x83ad, 0x83ad, 0x83b6, 0x83b6, 0x83b6, 0x814c, 0x003f, 0x003f, /* 0x2000 .. 0x20ff */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x815d, 0x815d, 0x003f, 0x815c, 0x815c, 0x815c, 0x003f, 0x005f, 0x8165, 0x8166, 0x002c, 0x8165, 0x8167, 0x8168, 0x8781, 0x003f, 0x81f5, 0x81f6, 0x003f, 0x003f, 0x002e, 0x8164, 0x8163, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x81f1, 0x003f, 0x818c, 0x818d, 0x003f, 0x8165, 0x003f, 0x003f, 0x003f, 0x8171, 0x8172, 0x81a6, 0x0021, 0x003f, 0x815c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x818b, 0x0069, 0x003f, 0x003f, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0x815d, 0x003d, 0x0028, 0x0029, 0x006e, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0x815d, 0x003d, 0x0028, 0x0029, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0063, 0x003f, 0x003f, 0x004c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2100 .. 0x21ff */ 0x003f, 0x003f, 0x0043, 0x818e, 0x003f, 0x003f, 0x003f, 0x0045, 0x003f, 0x003f, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0x0068, 0x0049, 0x0049, 0x004c, 0x006c, 0x003f, 0x004e, 0x8782, 0x003f, 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, 0x003f, 0x8784, 0x003f, 0x003f, 0x005a, 0x003f, 0x83b6, 0x003f, 0x005a, 0x003f, 0x004b, 0x81f0, 0x0042, 0x0043, 0x0065, 0x0065, 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0069, 0x003f, 0x003f, 0x003f, 0x83c1, 0x83a1, 0x83ae, 0x8794, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x875b, 0x875c, 0x875d, 0x003f, 0x003f, 0x004c, 0x0043, 0x0044, 0x004d, 0xeeef, 0xeef0, 0xeef1, 0xeef2, 0xeef3, 0xeef4, 0xeef5, 0xeef6, 0xeef7, 0xeef8, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81a9, 0x81aa, 0x81a8, 0x81ab, 0x002d, 0x007c, 0x003f, 0x003f, 0x003f, 0x003f, 0x81a9, 0x81a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81cc, 0x81cb, 0x003f, 0x003f, 0x81cb, 0x003f, 0x81cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2200 .. 0x22ff */ 0x81cd, 0x003f, 0x81dd, 0x81ce, 0x81ce, 0x004f, 0x003f, 0x81de, 0x81b8, 0x81b8, 0x003f, 0x81b9, 0x81b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x8794, 0x815d, 0x817d, 0x003f, 0x002f, 0x005c, 0x002a, 0x818b, 0x003f, 0x81e3, 0x003f, 0x003f, 0x81e5, 0x8187, 0x8798, 0x81da, 0x003f, 0x003f, 0x007c, 0x007c, 0x8161, 0x8161, 0x81c8, 0x81c9, 0x81bf, 0x81be, 0x81e7, 0x81e8, 0x003f, 0x8793, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8188, 0x81e6, 0x003a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x81e4, 0x003f, 0x003f, 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8182, 0x81df, 0x81df, 0x81df, 0x003f, 0x003f, 0x8185, 0x8186, 0x003f, 0x003f, 0x81e1, 0x81e2, 0x003f, 0x003f, 0x003c, 0x003e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81bc, 0x81bd, 0x81bc, 0x81bd, 0x81ba, 0x81bb, 0x81ba, 0x81bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8799, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2300 .. 0x23ff */ 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8171, 0x8172, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2400 .. 0x24ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0x874d, 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2500 .. 0x25ff */ 0x849f, 0x84aa, 0x84a0, 0x84ab, 0x002d, 0x002d, 0x003f, 0x003f, 0x002d, 0x002d, 0x003f, 0x003f, 0x84a1, 0x84a1, 0x84a1, 0x84ac, 0x84a2, 0x84a2, 0x84a2, 0x84ad, 0x84a4, 0x84a4, 0x84a4, 0x84af, 0x84a3, 0x84a3, 0x84a3, 0x84ae, 0x84a5, 0x84ba, 0x84a5, 0x84a5, 0x84b5, 0x84a5, 0x84a5, 0x84b0, 0x84a7, 0x84bc, 0x84a7, 0x84a7, 0x84b7, 0x84a7, 0x84a7, 0x84b2, 0x84a6, 0x84a6, 0x84a6, 0x84b6, 0x84bb, 0x84a6, 0x84a6, 0x84b1, 0x84a8, 0x84a8, 0x84a8, 0x84b8, 0x84bd, 0x84a8, 0x84a8, 0x84b3, 0x84a9, 0x84a9, 0x84a9, 0x84b9, 0x84a9, 0x84a9, 0x84be, 0x84a9, 0x84a9, 0x84a9, 0x84a9, 0x84a9, 0x84a9, 0x84a9, 0x84a9, 0x84b4, 0x002d, 0x002d, 0x003f, 0x003f, 0x003d, 0x007c, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x0054, 0x0054, 0x0054, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x005c, 0x0058, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81a1, 0x81a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81a3, 0x81a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81a5, 0x81a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x819f, 0x819e, 0x003f, 0x003f, 0x003f, 0x819b, 0x003f, 0x003f, 0x819d, 0x819c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2600 .. 0x26ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x819a, 0x8199, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x818a, 0x003f, 0x8189, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81f4, 0x003f, 0x003f, 0x81f3, 0x003f, 0x81f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2e00 .. 0x2eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2f00 .. 0x2fff */ 0x88ea, 0xed4c, 0x98a4, 0x98a6, 0x89b3, 0x98ab, 0x93f1, 0x98b3, 0x906c, 0x9958, 0x93fc, 0x94aa, 0x9963, 0x996b, 0x9971, 0x997b, 0x9981, 0x9381, 0x97cd, 0x99af, 0x99b6, 0x99b7, 0x99bc, 0x8f5c, 0x966d, 0x99c5, 0x99ca, 0x99d1, 0x9694, 0x8cfb, 0x9a98, 0x9379, 0x8e6d, 0x9ae7, 0x9ae8, 0x975b, 0x91e5, 0x8f97, 0x8e71, 0x9b7e, 0x90a1, 0x8fac, 0x9b97, 0x9b99, 0x9ba3, 0x8e52, 0x9bdd, 0x8d48, 0x8cc8, 0x8bd0, 0x8ab1, 0x9bf4, 0x9bf6, 0x9c4d, 0x9c4f, 0x9c54, 0x8b7c, 0x003f, 0x9c63, 0x9c65, 0x9053, 0x9cf7, 0x003f, 0x8ee8, 0x8e78, 0x9dbb, 0x95b6, 0x936c, 0x8bd2, 0x95fb, 0x9dd9, 0x93fa, 0x9e48, 0x8c8e, 0x96d8, 0x8c87, 0x8e7e, 0x9f65, 0x9f74, 0x9f78, 0x94e4, 0x96d1, 0x8e81, 0x9f83, 0x9085, 0x89ce, 0x92dc, 0x9583, 0xe0a9, 0xe0ab, 0x95d0, 0x89e5, 0x8b8d, 0x8ca2, 0x8cba, 0x8bca, 0x895a, 0x8aa2, 0x8ac3, 0x90b6, 0x9770, 0x9363, 0x9544, 0x003f, 0xe1a0, 0x9492, 0x94e7, 0x8e4d, 0x96da, 0x96b5, 0x96ee, 0x90ce, 0x8ea6, 0x003f, 0x89d1, 0x8c8a, 0x97a7, 0x927c, 0x95c4, 0x8e85, 0x8aca, 0xe3a4, 0x9772, 0x8948, 0x9856, 0x8ea7, 0xe3ce, 0x8ea8, 0xe3e4, 0x93f7, 0x9062, 0x8ea9, 0x8e8a, 0x8950, 0x90e3, 0x9143, 0x8f4d, 0x8daf, 0x9046, 0xe487, 0xe567, 0x928e, 0x8c8c, 0x8d73, 0x88df, 0xe647, 0x8ca9, 0x8a70, 0x8cbe, 0x924a, 0x93a4, 0xe6b3, 0xe6b6, 0x8a4c, 0x90d4, 0x9196, 0x91ab, 0x9067, 0x8ed4, 0x9068, 0x9243, 0x003f, 0x9757, 0x93d1, 0x94ce, 0x97a2, 0x8be0, 0x92b7, 0x96e5, 0x958c, 0xe8ae, 0xe8b0, 0x894a, 0xeed6, 0x94f1, 0x96ca, 0x8a76, 0xe8e8, 0xe8ea, 0x89b9, 0x95c5, 0x9597, 0x94f2, 0x9048, 0x8ef1, 0x8d81, 0x946e, 0x8d9c, 0x8d82, 0xe995, 0xe9a6, 0xe9ac, 0xe9ad, 0x8b53, 0x8b9b, 0x92b9, 0xea62, 0x8ead, 0xea6d, 0x9683, 0x003f, 0x8b6f, 0xeeec, 0xea83, 0xea86, 0x9343, 0x8cdb, 0x916c, 0x9540, 0xea8e, 0xea8f, 0x97b4, 0xea9d, 0xea9e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3000 .. 0x30ff */ 0x8140, 0x8141, 0x8142, 0x8156, 0x003f, 0x8158, 0x8159, 0x815a, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179, 0x817a, 0x81a7, 0x81ac, 0x816b, 0x816c, 0x003f, 0x003f, 0x003f, 0x003f, 0x005b, 0x005d, 0x003f, 0x8780, 0x8168, 0x8781, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81a7, 0x003f, 0x8f5c, 0x003f, 0x99bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x829f, 0x82a0, 0x82a1, 0x82a2, 0x82a3, 0x82a4, 0x82a5, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0x82d3, 0x82d4, 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x814a, 0x814b, 0x8154, 0x8155, 0x003f, 0x003f, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, 0x8377, 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0x837e, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0x8396, 0x838f, 0x8390, 0x8391, 0x8392, 0x8145, 0x815b, 0x8152, 0x8153, 0x003f, /* 0x3100 .. 0x31ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ea, 0x93f1, 0x8e4f, 0x8e6c, 0x8fe3, 0x9286, 0x89ba, 0x8d62, 0x89b3, 0x95b8, 0x929a, 0x9356, 0x926e, 0x906c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3200 .. 0x32ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x878a, 0x878b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x878c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ea, 0x93f1, 0x8e4f, 0x8e6c, 0x8cdc, 0x985a, 0x8eb5, 0x94aa, 0x8be3, 0x8f5c, 0x8c8e, 0x89ce, 0x9085, 0x96d8, 0x8be0, 0x9379, 0x93fa, 0x8a94, 0x974c, 0x8ed0, 0x96bc, 0x93c1, 0x8de0, 0x8f6a, 0x984a, 0x94e9, 0x926a, 0x8f97, 0x934b, 0x9744, 0x88f3, 0x928d, 0x8d80, 0x8b78, 0x8eca, 0x90b3, 0x8785, 0x8786, 0x8787, 0x8788, 0x8789, 0x88e3, 0x8f40, 0x8a77, 0x8ac4, 0x8ae9, 0x8e91, 0x8ba6, 0x96e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8341, 0x8343, 0x8345, 0x8347, 0x8349, 0x834a, 0x834c, 0x834e, 0x8350, 0x8352, 0x8354, 0x8356, 0x8358, 0x835a, 0x835c, 0x835e, 0x8360, 0x8363, 0x8365, 0x8367, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, 0x8371, 0x8374, 0x8377, 0x837a, 0x837d, 0x837e, 0x8380, 0x8381, 0x8382, 0x8384, 0x8386, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8392, 0x003f, /* 0x3300 .. 0x33ff */ 0x003f, 0x003f, 0x003f, 0x8765, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8769, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8760, 0x003f, 0x003f, 0x003f, 0x8763, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8761, 0x876b, 0x003f, 0x003f, 0x876a, 0x8764, 0x003f, 0x003f, 0x003f, 0x876c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8766, 0x003f, 0x003f, 0x003f, 0x003f, 0x876e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x875f, 0x876d, 0x003f, 0x003f, 0x8762, 0x003f, 0x003f, 0x003f, 0x8767, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8768, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x877e, 0x878f, 0x878e, 0x878d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8772, 0x8773, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x876f, 0x8770, 0x8771, 0x003f, 0x003f, 0x8775, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8774, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8783, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x4e00 .. 0x4eff */ 0x88ea, 0x929a, 0x003f, 0x8eb5, 0x003f, 0x003f, 0x003f, 0x969c, 0x8fe4, 0x8e4f, 0x8fe3, 0x89ba, 0x003f, 0x9573, 0x975e, 0x003f, 0x98a0, 0x894e, 0x003f, 0x003f, 0x8a8e, 0x98a1, 0x90a2, 0x99c0, 0x8b75, 0x95b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fe5, 0x003f, 0x003f, 0x97bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x95c0, 0x003f, 0xed4c, 0x003f, 0x98a2, 0x003f, 0x003f, 0x9286, 0x003f, 0x003f, 0x003f, 0x98a3, 0x8bf8, 0x003f, 0x003f, 0x003f, 0x98a4, 0x003f, 0x8adb, 0x924f, 0x003f, 0x8ee5, 0x98a5, 0x003f, 0x003f, 0x98a6, 0x003f, 0x003f, 0x98a7, 0x9454, 0x003f, 0x8b76, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9456, 0x003f, 0x93e1, 0x8cc1, 0x9652, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe568, 0x98a8, 0x8fe6, 0x98a9, 0x89b3, 0x003f, 0x003f, 0x003f, 0x8be3, 0x8cee, 0x96e7, 0x003f, 0x003f, 0x9ba4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9790, 0x003f, 0x93fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aa3, 0x003f, 0x8b54, 0x003f, 0x98aa, 0x003f, 0x003f, 0x98ab, 0x97b9, 0x003f, 0x975c, 0x9188, 0x98ad, 0x8e96, 0x93f1, 0x003f, 0x98b0, 0x003f, 0x003f, 0x895d, 0x8cdd, 0x003f, 0x8cdc, 0x88e4, 0x003f, 0x003f, 0x986a, 0x9869, 0x003f, 0x8db1, 0x889f, 0x003f, 0x98b1, 0x98b2, 0x98b3, 0x9653, 0x98b4, 0x003f, 0x8cf0, 0x88e5, 0x9692, 0x003f, 0x8b9c, 0x003f, 0x003f, 0x8b9d, 0x8b9e, 0x92e0, 0x97ba, 0x003f, 0x98b5, 0x003f, 0x003f, 0x98b6, 0x003f, 0x003f, 0x98b7, 0x003f, 0x003f, 0x003f, 0x906c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f59, 0x906d, 0x98bc, 0x003f, 0x98ba, 0x003f, 0x98bb, 0x8b77, 0x003f, 0x003f, 0x8da1, 0x89ee, 0x003f, 0x98b9, 0x98b8, 0x95a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e65, 0x8e64, 0x91bc, 0x98bd, 0x9574, 0x90e5, 0x003f, 0x003f, 0x003f, 0x8157, 0x98be, 0x98c0, 0x003f, 0xed4d, 0x003f, 0x91e3, 0x97df, 0x88c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98bf, 0x89bc, 0x003f, 0x8bc2, 0x003f, 0x9287, 0x003f, 0x003f, 0x003f, 0x8c8f, 0x98c1, 0x003f, 0x003f, 0x003f, 0x9443, 0xed4e, 0x003f, 0x003f, 0x003f, /* 0x4f00 .. 0x4fff */ 0xed4f, 0x8ae9, 0x003f, 0xed50, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98c2, 0x88c9, 0x003f, 0x003f, 0x8cde, 0x8aea, 0x959a, 0x94b0, 0x8b78, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89ef, 0x003f, 0x98e5, 0x9360, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x948c, 0x98c4, 0x003f, 0x003f, 0x003f, 0x94ba, 0x003f, 0x97e0, 0x003f, 0x904c, 0xed51, 0x8e66, 0x003f, 0x8e97, 0x89be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92cf, 0x003f, 0x003f, 0x9241, 0x98c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ca, 0x92e1, 0x8f5a, 0x8db2, 0x9743, 0x003f, 0x91cc, 0x003f, 0x89bd, 0xed52, 0x98c7, 0x003f, 0x975d, 0x98c3, 0x98c5, 0x8dec, 0x98c6, 0x9b43, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98d1, 0x98cf, 0x003f, 0x003f, 0x89c0, 0x003f, 0x95b9, 0x98c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x98cd, 0x8cf1, 0x003f, 0x003f, 0x8e67, 0x003f, 0x003f, 0x003f, 0x8aa4, 0x003f, 0x003f, 0x98d2, 0x003f, 0x98ca, 0x003f, 0xed54, 0x97e1, 0x003f, 0x8e98, 0x003f, 0x98cb, 0x003f, 0x98d0, 0xed53, 0x003f, 0xed56, 0x003f, 0x98d3, 0x003f, 0x98cc, 0x003f, 0xed55, 0x8b9f, 0x003f, 0x88cb, 0x003f, 0x003f, 0x8ba0, 0x89bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b44, 0x003f, 0x9699, 0x958e, 0x8cf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x904e, 0x97b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95d6, 0x003f, 0x003f, 0x8c57, 0x91a3, 0x89e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xed45, 0x8f72, 0x003f, 0x003f, 0xed57, 0x98d7, 0x003f, 0x98dc, 0x98da, 0x003f, 0x003f, 0x98d5, 0x003f, 0x003f, 0x91ad, 0x98d8, 0x003f, 0x98db, 0x98d9, 0x003f, 0x95db, 0x003f, 0x98d6, 0x003f, 0x904d, 0x003f, 0x9693, 0x98dd, 0x98de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f43, 0x98eb, 0x003f, 0x003f, 0x003f, 0x946f, 0x003f, 0x9555, 0x98e6, 0x003f, 0x95ee, 0x003f, 0x89b4, 0x003f, 0x003f, 0x003f, 0x98ea, 0xed5a, /* 0x5000 .. 0x50ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98e4, 0x98ed, 0x003f, 0x003f, 0x9171, 0x003f, 0x8cc2, 0x003f, 0x947b, 0x003f, 0xe0c5, 0x003f, 0x98ec, 0x937c, 0x003f, 0x98e1, 0x003f, 0x8cf4, 0x003f, 0x003f, 0x8cf3, 0x98df, 0x003f, 0x003f, 0x003f, 0xed5b, 0x8ed8, 0x003f, 0x98e7, 0xed59, 0x95ed, 0x926c, 0x98e3, 0x8c91, 0x003f, 0x98e0, 0x98e8, 0x98e2, 0x97cf, 0x98e9, 0x9860, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8be4, 0x003f, 0x003f, 0x8c90, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed58, 0x003f, 0xed5e, 0x98ee, 0x003f, 0x003f, 0xed5c, 0x98ef, 0x98f3, 0x88cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95ce, 0x98f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x98f1, 0x98f5, 0x003f, 0x003f, 0x003f, 0x98f4, 0x003f, 0x92e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98f6, 0x003f, 0x003f, 0x003f, 0xed5d, 0x003f, 0x8ec3, 0x003f, 0x91a4, 0x92e3, 0x8bf4, 0x003f, 0x98f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b55, 0x003f, 0x003f, 0x98f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x98fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9654, 0x003f, 0x003f, 0x003f, 0x8c86, 0x003f, 0x003f, 0xed5f, 0x003f, 0x003f, 0x003f, 0x8e50, 0x94f5, 0x98f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8dc3, 0x9762, 0x003f, 0x003f, 0x003f, 0x003f, 0x98fc, 0x9942, 0x98fb, 0x8dc2, 0x003f, 0x8f9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c58, 0x003f, 0x003f, 0x003f, 0x9943, 0x003f, 0x003f, 0x8bcd, 0x003f, 0x003f, 0x003f, 0x9940, 0x9941, 0x003f, 0x003f, 0x93ad, 0x003f, 0x919c, 0x003f, 0x8ba1, 0x003f, 0x003f, 0x003f, 0x966c, 0x9944, 0x003f, 0xed61, 0x003f, 0x97bb, 0x003f, 0x003f, 0x003f, 0x9945, 0x003f, 0x003f, 0x003f, 0x003f, 0x9948, 0x003f, 0x9946, 0x003f, 0x916d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9947, 0x9949, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed60, 0x994b, 0x003f, 0x003f, 0x003f, 0x994a, 0x003f, 0x95c6, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5100 .. 0x51ff */ 0x8b56, 0x994d, 0x994e, 0x003f, 0x89ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x994c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ef2, 0x003f, 0x9951, 0x9950, 0x994f, 0x003f, 0x98d4, 0x003f, 0x9952, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f9e, 0x003f, 0x9953, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9744, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x9955, 0x003f, 0x003f, 0x9954, 0x9957, 0x9956, 0x003f, 0x003f, 0x9958, 0x9959, 0x88f2, 0x003f, 0x8cb3, 0x8c5a, 0x8f5b, 0x929b, 0x8ba2, 0x90e6, 0x8cf5, 0xed62, 0x8d8e, 0x995b, 0x96c6, 0x9365, 0x003f, 0x8e99, 0x003f, 0x995a, 0x003f, 0x995c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x937d, 0x003f, 0x8a95, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x995d, 0x003f, 0xed63, 0x93fc, 0x003f, 0x003f, 0x9153, 0x995f, 0x9960, 0x94aa, 0x8cf6, 0x985a, 0x9961, 0x003f, 0x003f, 0x8ba4, 0x003f, 0x003f, 0x003f, 0x95ba, 0x91b4, 0x8bef, 0x9354, 0x003f, 0x003f, 0x003f, 0x8c93, 0x003f, 0x003f, 0x003f, 0x9962, 0x003f, 0x9963, 0x003f, 0x003f, 0x93e0, 0x897e, 0x003f, 0x003f, 0x9966, 0x8dfb, 0x003f, 0x9965, 0x8dc4, 0x003f, 0x9967, 0xe3ec, 0x9968, 0x9660, 0x9969, 0x003f, 0x996a, 0x996b, 0x8fe7, 0x003f, 0x8eca, 0x003f, 0x003f, 0x003f, 0xed64, 0x003f, 0x003f, 0x8aa5, 0x003f, 0x996e, 0x003f, 0x996c, 0x96bb, 0x996d, 0x003f, 0x9579, 0x996f, 0x9970, 0x9971, 0x937e, 0x003f, 0x003f, 0x003f, 0x9975, 0x9973, 0x9974, 0x9972, 0x8de1, 0x9976, 0x96e8, 0x97e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9977, 0xed65, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90a6, 0x9978, 0x8f79, 0x003f, 0x003f, 0x9979, 0x003f, 0x929c, 0x97bd, 0x9380, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x997a, 0xeaa3, 0x8bc3, 0x003f, 0x003f, 0x997b, 0x967d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f88, 0x91fa, 0x003f, 0x997d, 0x93e2, 0x003f, 0xed66, 0x997e, 0x003f, 0x003f, 0x9980, 0x8a4d, 0x003f, 0x003f, 0x003f, 0x9981, 0x8ba5, 0x003f, 0x93ca, 0x899a, 0x8f6f, 0x003f, 0x003f, 0x949f, 0x9982, 0x003f, /* 0x5200 .. 0x52ff */ 0x9381, 0x003f, 0x003f, 0x906e, 0x9983, 0x003f, 0x95aa, 0x90d8, 0x8aa0, 0x003f, 0x8aa7, 0x9984, 0x003f, 0x003f, 0x9986, 0x003f, 0x003f, 0x8c59, 0x003f, 0x003f, 0x9985, 0xed67, 0x003f, 0x97f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f89, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94bb, 0x95ca, 0x003f, 0x9987, 0x003f, 0x9798, 0x9988, 0x003f, 0x003f, 0x003f, 0x9989, 0x003f, 0x939e, 0x003f, 0x003f, 0x998a, 0x003f, 0x003f, 0x90a7, 0x8dfc, 0x8c94, 0x998b, 0x8e68, 0x8d8f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92e4, 0x998d, 0x003f, 0x003f, 0x91a5, 0x003f, 0x003f, 0x8ded, 0x998e, 0x998f, 0x914f, 0x003f, 0x998c, 0x003f, 0x003f, 0x003f, 0x003f, 0x9991, 0x003f, 0x9655, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d84, 0x003f, 0x003f, 0x9990, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c95, 0x8ddc, 0x948d, 0x003f, 0x003f, 0x003f, 0x9994, 0x9992, 0x003f, 0x003f, 0x003f, 0x003f, 0x959b, 0x8fe8, 0x999b, 0x8a84, 0x9995, 0x9993, 0x916e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9997, 0x003f, 0x9996, 0x003f, 0x003f, 0x003f, 0x8a63, 0x003f, 0x003f, 0x003f, 0x8c80, 0x999c, 0x97ab, 0x003f, 0x003f, 0x003f, 0x9998, 0x003f, 0x003f, 0x003f, 0x999d, 0x999a, 0x003f, 0x9999, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97cd, 0xed68, 0x003f, 0x003f, 0x8cf7, 0x89c1, 0x003f, 0x003f, 0x97f2, 0x003f, 0x003f, 0xed69, 0x003f, 0x003f, 0x8f95, 0x9377, 0x8d85, 0x99a0, 0x99a1, 0x003f, 0xee5b, 0x003f, 0x97e3, 0x003f, 0x003f, 0x984a, 0x99a3, 0x003f, 0x003f, 0x003f, 0x8cf8, 0x003f, 0x003f, 0x99a2, 0x003f, 0x8a4e, 0x003f, 0xed6a, 0x99a4, 0x003f, 0x9675, 0x003f, 0x92ba, 0x003f, 0x9745, 0x003f, 0x95d7, 0x003f, 0x003f, 0x003f, 0x99a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d3, 0x003f, 0x003f, 0x93ae, 0x003f, 0x99a6, 0x8aa8, 0x96b1, 0x003f, 0xed6b, 0x003f, 0x8f9f, 0x99a7, 0x95e5, 0x99ab, 0x003f, 0x90a8, 0x99a8, 0x8bce, 0x003f, 0x99a9, 0x8aa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c4d, 0x99ac, 0x003f, 0x99ad, 0x003f, 0x003f, 0x99ae, 0x99af, 0x8ed9, 0x003f, 0x003f, 0x003f, 0x8cf9, 0x96dc, /* 0x5300 .. 0x53ff */ 0xed6c, 0x96e6, 0x93f5, 0x003f, 0x003f, 0x95ef, 0x99b0, 0xed6d, 0x99b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x99b3, 0x003f, 0x99b5, 0x99b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x99b6, 0x89bb, 0x966b, 0x003f, 0x8dfa, 0x99b7, 0x003f, 0x003f, 0x9178, 0x003f, 0x003f, 0x8fa0, 0x8ba7, 0x003f, 0x99b8, 0xed6e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x99b9, 0x003f, 0x99ba, 0x003f, 0x99bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x99bc, 0x9543, 0x8be6, 0x88e3, 0x003f, 0x003f, 0x003f, 0x93bd, 0x99bd, 0x8f5c, 0x003f, 0x90e7, 0x003f, 0x99bf, 0x99be, 0x8fa1, 0x8cdf, 0x99c1, 0x94bc, 0x003f, 0x003f, 0x99c2, 0x003f, 0x003f, 0x003f, 0x94da, 0x91b2, 0x91ec, 0x8ba6, 0x003f, 0x003f, 0x93ec, 0x9250, 0x003f, 0x948e, 0x003f, 0x966d, 0x003f, 0x99c4, 0x003f, 0x90e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c54, 0x003f, 0x003f, 0x99c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x99c6, 0x894b, 0x88f3, 0x8aeb, 0xed6f, 0x91a6, 0x8b70, 0x9791, 0x003f, 0x99c9, 0x89b5, 0x003f, 0x003f, 0x99c8, 0x003f, 0x003f, 0x003f, 0x8ba8, 0x003f, 0x003f, 0x99ca, 0x003f, 0x96ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed70, 0x003f, 0x003f, 0x99cb, 0x003f, 0x97d0, 0x003f, 0x8cfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cb4, 0x99cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x99ce, 0x99cd, 0x003f, 0x907e, 0x8958, 0x003f, 0x003f, 0x003f, 0x897d, 0x99cf, 0x003f, 0x99d0, 0x003f, 0xed71, 0x8cb5, 0x003f, 0x003f, 0x99d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b8e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e51, 0x99d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x9694, 0x8db3, 0x8b79, 0x9746, 0x916f, 0x94bd, 0x8efb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f66, 0x003f, 0x8ee6, 0x8ef3, 0x003f, 0x8f96, 0x003f, 0x94be, 0x003f, 0xed72, 0x003f, 0x99d5, 0x003f, 0x8962, 0x9170, 0x8cfb, 0x8cc3, 0x8be5, 0x003f, 0x003f, 0x99d9, 0x9240, 0x91fc, 0x8ba9, 0x8fa2, 0x99da, 0x99d8, 0x89c2, 0x91e4, 0x8eb6, 0x8e6a, 0x8945, 0x003f, 0x003f, 0x8a90, 0x8d86, 0x8e69, 0x003f, 0x99db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5400 .. 0x54ff */ 0x003f, 0x99dc, 0x003f, 0x8b68, 0x8a65, 0x003f, 0x003f, 0x003f, 0x8d87, 0x8b67, 0x92dd, 0x8944, 0x93af, 0x96bc, 0x8d40, 0x9799, 0x9366, 0x8cfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c4e, 0x003f, 0x99e5, 0x003f, 0x8be1, 0x9669, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94db, 0x003f, 0x003f, 0x99e4, 0x003f, 0x8adc, 0x99df, 0x99e0, 0x99e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99e3, 0x003f, 0x8b7a, 0x9081, 0x003f, 0x95ab, 0x99e1, 0x99dd, 0x8ce1, 0x003f, 0x99de, 0x003f, 0x9843, 0x003f, 0x003f, 0x003f, 0x95f0, 0x003f, 0x92e6, 0x8ce0, 0x8d90, 0x003f, 0x003f, 0x003f, 0x99e6, 0x003f, 0x003f, 0x93db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8efc, 0x003f, 0x8ef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99ed, 0x99eb, 0x003f, 0x96a1, 0x003f, 0x99e8, 0x99f1, 0x99ec, 0x003f, 0x003f, 0x003f, 0x99ef, 0x8cc4, 0x96bd, 0x003f, 0x003f, 0x99f0, 0x003f, 0x003f, 0x003f, 0x99f2, 0x003f, 0x99f4, 0x003f, 0x003f, 0x003f, 0xed75, 0x8dee, 0x9861, 0x003f, 0x99e9, 0x99e7, 0x99f3, 0x003f, 0x99ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed74, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99f6, 0x003f, 0x9a42, 0x99f8, 0x003f, 0x003f, 0x99fc, 0xed76, 0x003f, 0x9a40, 0x99f9, 0x003f, 0x003f, 0x9a5d, 0x003f, 0x003f, 0x8de7, 0x8a50, 0x003f, 0x003f, 0x003f, 0x003f, 0x99f7, 0x003f, 0x003f, 0x003f, 0x9a44, 0x88f4, 0x9a43, 0x003f, 0x88a3, 0x9569, 0x9a41, 0x003f, 0x99fa, 0x003f, 0x003f, 0x99f5, 0x99fb, 0x8dc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a45, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88f5, 0x9a4e, 0x003f, 0x003f, 0x9a46, 0x9a47, 0x003f, 0x8fa3, 0x9689, 0x003f, 0x003f, 0x003f, 0x9a4c, 0x9a4b, 0x003f, 0x003f, 0x003f, 0x934e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a4d, 0x003f, 0x003f, 0x9a4a, 0x003f, 0xed77, /* 0x5500 .. 0x55ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x8953, 0x003f, 0x8db4, 0x904f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a48, 0x9382, 0x003f, 0x003f, 0x003f, 0x9a49, 0x003f, 0x88a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a53, 0x9742, 0x003f, 0x8fa5, 0x003f, 0x9a59, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a58, 0x9a4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91c1, 0x003f, 0x9a50, 0x003f, 0x003f, 0x003f, 0x91ed, 0x9a55, 0x8fa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a52, 0x003f, 0x003f, 0x96e2, 0x003f, 0x003f, 0x003f, 0x8c5b, 0x003f, 0x003f, 0x9a56, 0x9a57, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a54, 0x9a5a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a60, 0x9a65, 0x003f, 0x9a61, 0x003f, 0x9a5c, 0x003f, 0x003f, 0x9a66, 0x9150, 0x003f, 0xed78, 0x9a68, 0x003f, 0x8d41, 0x9a5e, 0x929d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a62, 0x9a5b, 0x8aab, 0x003f, 0x8aec, 0x8a85, 0x9a63, 0x9a5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c96, 0x9a69, 0x9a67, 0x9172, 0x8b69, 0x8baa, 0x003f, 0x9a64, 0x003f, 0x8bf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8963, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a6d, 0x9a6b, 0x003f, 0x9aa5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a6a, 0x003f, 0x9a6e, 0x003f, 0x003f, 0x9a6c, 0x003f, 0x003f, 0x003f, 0x8e6b, 0x9a6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a72, 0x003f, 0x9a77, 0x003f, 0x003f, 0x003f, 0x9a75, 0x9a74, 0x003f, /* 0x5600 .. 0x56ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9251, 0x003f, 0x003f, 0x89c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a71, 0x003f, 0x9a73, 0x8fa6, 0x8952, 0x003f, 0x003f, 0x9a76, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a82, 0x003f, 0x8ffa, 0x9a7d, 0x003f, 0x9a7b, 0x003f, 0x9a7c, 0x003f, 0x9a7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x895c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9158, 0x003f, 0x9a78, 0x003f, 0x9a79, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a9a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a81, 0x003f, 0x003f, 0x003f, 0x8aed, 0x003f, 0x9a84, 0x9a80, 0x9a83, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95ac, 0x003f, 0x003f, 0x003f, 0x93d3, 0x003f, 0x94b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a86, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a85, 0x8a64, 0x003f, 0x003f, 0x9a87, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a8a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a89, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a88, 0x003f, 0x9458, 0x003f, 0x003f, 0x9a8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a8c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a8e, 0x003f, 0x9a8d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a90, 0x003f, 0x003f, 0x003f, 0x9a93, 0x9a91, 0x9a8f, 0x9a92, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a94, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a95, 0x003f, 0x003f, 0x9a96, 0x003f, 0x9a97, 0x003f, 0x003f, 0x003f, 0x9a98, 0x9964, 0x003f, 0x8efa, 0x8e6c, 0x003f, 0x003f, 0x89f1, 0x003f, 0x88f6, 0x003f, 0x003f, 0x9263, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a99, 0x003f, 0x8da2, 0x003f, 0x88cd, 0x907d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a9a, 0x8cc5, 0x003f, 0x003f, 0x8d91, 0x003f, 0x9a9c, /* 0x5700 .. 0x57ff */ 0x9a9b, 0x003f, 0x003f, 0x95de, 0x9a9d, 0x003f, 0x003f, 0x003f, 0x9a9f, 0x9a9e, 0x003f, 0x9aa0, 0x003f, 0x9aa1, 0x003f, 0x8c97, 0x003f, 0x003f, 0x8980, 0x9aa2, 0x003f, 0x003f, 0x9aa4, 0x003f, 0x9aa3, 0x003f, 0x003f, 0x003f, 0x9aa6, 0x003f, 0x003f, 0x9379, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9aa7, 0x88b3, 0x8ddd, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c5c, 0x003f, 0x003f, 0x926e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9aa8, 0x9aa9, 0x003f, 0x003f, 0x9aab, 0x003f, 0x003f, 0x003f, 0x003f, 0x9aac, 0x003f, 0x8de2, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bcf, 0x003f, 0x003f, 0x9656, 0x003f, 0x003f, 0x003f, 0x9aaa, 0x9aad, 0x8dbf, 0x8d42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed79, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab1, 0x003f, 0x003f, 0x8da3, 0xed7a, 0x9252, 0x003f, 0x003f, 0x9aae, 0x92d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab2, 0x003f, 0x003f, 0x9082, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab0, 0x9ab3, 0x003f, 0x8c5e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab5, 0x003f, 0x8d43, 0x8a5f, 0x9ab7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ab8, 0x003f, 0xed7b, 0x003f, 0x003f, 0x003f, 0x9ab9, 0x003f, 0x003f, 0x9ab6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9aaf, 0x003f, 0x003f, 0x9aba, 0x003f, 0x003f, 0x9abb, 0xed7d, 0xed7c, 0x003f, 0x003f, 0x9684, 0x003f, 0x003f, 0x8fe9, 0x003f, 0x003f, 0x003f, 0x9abd, 0x9abe, 0x9abc, 0x003f, 0x9ac0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9457, 0x003f, 0x003f, 0x88e6, 0x9575, 0x003f, 0x003f, 0x9ac1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ffb, 0x003f, 0x003f, 0x8eb7, 0x003f, 0x947c, 0x8aee, 0x003f, 0x8de9, 0x003f, 0x003f, 0x003f, /* 0x5800 .. 0x58ff */ 0x9678, 0x003f, 0x93b0, 0x003f, 0x003f, 0x8c98, 0x91cd, 0x003f, 0x003f, 0x003f, 0x9abf, 0x9ac2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91c2, 0x003f, 0x003f, 0x003f, 0x9ac3, 0x003f, 0x003f, 0x003f, 0x9ac4, 0x003f, 0x003f, 0x003f, 0x9ac6, 0x003f, 0x003f, 0x92e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aac, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9f, 0x8981, 0x95f1, 0x003f, 0x003f, 0x8fea, 0x9367, 0x003f, 0x003f, 0x003f, 0x003f, 0x8de4, 0x003f, 0x003f, 0x9acc, 0x003f, 0x003f, 0x95bb, 0x97db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89f2, 0x9ac8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9159, 0x9acb, 0x003f, 0x9383, 0x003f, 0x003f, 0x9368, 0x9384, 0x94b7, 0x92cb, 0x003f, 0x003f, 0x003f, 0x8dc7, 0x003f, 0x003f, 0x003f, 0x9ac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8996, 0x003f, 0x9355, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ac9, 0x003f, 0x9ac5, 0x003f, 0x003f, 0x906f, 0x003f, 0x003f, 0x003f, 0x9acd, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f6d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bab, 0x003f, 0x9ace, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95e6, 0x003f, 0x003f, 0x003f, 0x919d, 0x003f, 0x003f, 0x003f, 0x003f, 0x92c4, 0x003f, 0xed81, 0x9ad0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x966e, 0x003f, 0x003f, 0x9ad1, 0x003f, 0x003f, 0x9ad6, 0x003f, 0x003f, 0x003f, 0xed82, 0x95ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ad5, 0x9acf, 0x9ad2, 0x9ad4, 0x003f, 0x003f, 0x8da4, 0x003f, 0x003f, 0x95c7, 0x003f, 0x003f, 0x003f, 0x9ad7, 0x003f, 0x9264, 0x003f, 0x003f, 0x89f3, 0x003f, 0x8feb, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ad9, 0x003f, 0x9ad8, 0x003f, 0x8d88, 0x003f, 0x9ada, 0x9adc, 0x9adb, 0x003f, 0x003f, 0x9ade, 0x003f, 0x9ad3, 0x9ae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x9adf, 0x9add, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e6d, 0x9070, 0x003f, 0x9173, 0x9ae1, 0x90ba, 0x88eb, 0x9484, 0x003f, 0x003f, 0x003f, 0x003f, 0x92d9, 0x003f, 0x9ae3, 0x9ae2, 0x9ae4, 0x9ae5, 0x9ae6, 0x003f, 0x003f, /* 0x5900 .. 0x59ff */ 0x003f, 0x003f, 0x9ae7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cf, 0x9ae8, 0xed83, 0x003f, 0x003f, 0x003f, 0x89c4, 0x9ae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x975b, 0x8a4f, 0x003f, 0x99c7, 0x8f67, 0x91bd, 0x9aea, 0x96e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96b2, 0x003f, 0x003f, 0x9aec, 0x003f, 0x91e5, 0x003f, 0x9356, 0x91be, 0x9576, 0x9aed, 0x9aee, 0x899b, 0x003f, 0x003f, 0x8eb8, 0x9aef, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ce, 0x9af0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9af1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8982, 0x003f, 0x003f, 0x8aef, 0x93de, 0x95f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x9af5, 0x9174, 0x9af4, 0x8c5f, 0x003f, 0xed84, 0x967a, 0x9af3, 0x003f, 0x9385, 0x9af7, 0x003f, 0x9af6, 0xed85, 0x003f, 0xed86, 0x003f, 0x003f, 0x9af9, 0x003f, 0x9af8, 0xed87, 0x003f, 0x899c, 0x003f, 0x9afa, 0x8fa7, 0x9afc, 0x9244, 0x003f, 0x9afb, 0x003f, 0x95b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f97, 0x937a, 0x003f, 0x003f, 0x003f, 0x9b40, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d44, 0x003f, 0x003f, 0x003f, 0x9b41, 0x9440, 0x94dc, 0x96cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9444, 0x003f, 0x003f, 0x9b4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b57, 0x003f, 0x003f, 0x9764, 0x003f, 0x003f, 0x96ad, 0x003f, 0x9baa, 0x003f, 0x9b42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b45, 0xed88, 0x91c3, 0x003f, 0x003f, 0x9657, 0x003f, 0x003f, 0x003f, 0x9369, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b46, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9685, 0xed89, 0x8dc8, 0x003f, 0x003f, 0x8fa8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b47, 0x003f, 0x003f, 0x8e6f, 0x003f, 0x8e6e, 0x003f, 0x003f, 0x003f, 0x003f, 0x88b7, 0x8cc6, 0x003f, 0x90a9, 0x88cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b4b, 0x9b4c, 0x003f, 0x9b49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8957, 0x8aad, 0x003f, 0x9b48, 0x003f, 0x96c3, 0x9550, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x88f7, 0x003f, 0x003f, 0x003f, 0x8e70, /* 0x5a00 .. 0x5aff */ 0x003f, 0x88d0, 0x003f, 0x88a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96ba, 0x003f, 0x9b52, 0x003f, 0x9b50, 0x003f, 0x003f, 0x9b4e, 0x9050, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b4d, 0x003f, 0x003f, 0x003f, 0x95d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ce2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b56, 0x9b57, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fa9, 0x003f, 0x003f, 0x003f, 0x9b53, 0x984b, 0x003f, 0x003f, 0x003f, 0x003f, 0x946b, 0x003f, 0x003f, 0x9b55, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8da5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b58, 0x003f, 0x003f, 0x003f, 0x9577, 0x003f, 0x003f, 0x003f, 0x9b59, 0x003f, 0x9b54, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x947d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b5a, 0x9551, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b5b, 0x9b5f, 0x9b5c, 0x003f, 0x003f, 0x89c5, 0x9b5e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eb9, 0x003f, 0x9b5d, 0x8c99, 0x003f, 0x003f, 0x003f, 0x9b6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b64, 0x9b61, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9284, 0x003f, 0x9b60, 0x003f, 0x003f, 0x9b62, 0x003f, 0x003f, 0x9b63, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b65, 0x9b66, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5b00 .. 0x5bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8af0, 0x003f, 0x9b68, 0x9b67, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b69, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b6c, 0x003f, 0x92da, 0x003f, 0x003f, 0x003f, 0x8964, 0x003f, 0x9b6a, 0x003f, 0x003f, 0x003f, 0x9b6d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b6e, 0x003f, 0x9b71, 0x003f, 0x003f, 0x9b6f, 0x003f, 0x9b70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e71, 0x9b72, 0x003f, 0x003f, 0x8d45, 0x9b73, 0xed8a, 0x8e9a, 0x91b6, 0x003f, 0x9b74, 0x9b75, 0x8e79, 0x8d46, 0x003f, 0x96d0, 0x003f, 0x003f, 0x003f, 0x8b47, 0x8cc7, 0x9b76, 0x8a77, 0x003f, 0x003f, 0x9b77, 0x003f, 0x91b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b78, 0x9ba1, 0x003f, 0x9b79, 0x003f, 0x9b7a, 0x003f, 0x003f, 0x9b7b, 0x003f, 0x9b7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b7e, 0x003f, 0x003f, 0x9b80, 0x003f, 0x91ee, 0x003f, 0x8946, 0x8ee7, 0x88c0, 0x003f, 0x9176, 0x8aae, 0x8eb3, 0x003f, 0x8d47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9386, 0x003f, 0x8f40, 0x8aaf, 0x9288, 0x92e8, 0x88b6, 0x8b58, 0x95f3, 0x003f, 0x8ec0, 0x003f, 0x003f, 0x8b71, 0x90e9, 0x8eba, 0x9747, 0x9b81, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b7b, 0x003f, 0x8dc9, 0x003f, 0x003f, 0x8a51, 0x8983, 0x8faa, 0x89c6, 0x003f, 0x9b82, 0x9765, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f68, 0xed8b, 0x003f, 0x8ee2, 0x9b83, 0x8af1, 0x93d0, 0x96a7, 0x9b84, 0x003f, 0x9b85, 0x003f, 0x003f, 0x9578, 0x003f, 0x003f, 0x003f, 0x9b87, 0x003f, 0x8aa6, 0x8bf5, 0x9b86, 0x003f, 0x003f, 0x003f, 0xed8d, 0x003f, 0x003f, 0x8ab0, 0x003f, 0x9051, 0x9b8b, 0x8e40, 0x003f, 0x89c7, 0x9b8a, 0x003f, 0x9b88, 0x9b8c, 0x9b89, 0x944a, 0x9ecb, 0x9052, 0x003f, 0x9b8d, 0xed8e, 0x003f, 0x97be, 0x003f, 0x9b8e, 0x003f, 0x003f, 0x9b90, 0x003f, 0x929e, 0x9b8f, 0x003f, 0x90a1, 0x003f, 0x8e9b, 0x003f, 0x003f, 0x003f, 0x91ce, 0x8ef5, /* 0x5c00 .. 0x5cff */ 0x003f, 0x9595, 0x90ea, 0x003f, 0x8ecb, 0x9b91, 0x8fab, 0x9b92, 0x9b93, 0x88d1, 0x91b8, 0x9071, 0x003f, 0x9b94, 0x93b1, 0x8fac, 0x003f, 0x8fad, 0x003f, 0x9b95, 0x003f, 0x003f, 0x90eb, 0x003f, 0x003f, 0x003f, 0x8fae, 0x003f, 0x003f, 0x003f, 0xed8f, 0x003f, 0x9b96, 0x003f, 0x9b97, 0x003f, 0x96de, 0x003f, 0x003f, 0x003f, 0x9b98, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bc4, 0x003f, 0x003f, 0x003f, 0x8f41, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b99, 0x9b9a, 0x8eda, 0x904b, 0x93f2, 0x9073, 0x94f6, 0x9441, 0x8bc7, 0x9b9b, 0x003f, 0x003f, 0x003f, 0x8b8f, 0x9b9c, 0x003f, 0x8bfc, 0x003f, 0x93cd, 0x89ae, 0x003f, 0x8e72, 0x9b9d, 0x9ba0, 0x9b9f, 0x8bfb, 0x003f, 0x9b9e, 0x003f, 0x9357, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91ae, 0x003f, 0x936a, 0x8ec6, 0x003f, 0x003f, 0x9177, 0x979a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ba2, 0x003f, 0x9ba3, 0x93d4, 0x003f, 0x8e52, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ba5, 0x003f, 0x003f, 0x9ba6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ba7, 0x003f, 0x003f, 0x003f, 0x8af2, 0x9ba8, 0x003f, 0x003f, 0x9ba9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xed90, 0x003f, 0x915a, 0x8ae2, 0x003f, 0x9bab, 0x96a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x91d0, 0x003f, 0x8a78, 0x003f, 0x003f, 0x9bad, 0x9baf, 0x8add, 0x003f, 0xed91, 0x9bac, 0x9bae, 0x003f, 0x9bb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bb0, 0x003f, 0x9bb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93bb, 0x8bac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89e3, 0x9bb4, 0x9bb9, 0x003f, 0x003f, 0x9bb7, 0x003f, 0x95f5, 0x95f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xed92, 0x9387, 0x003f, 0x003f, 0x003f, 0x9bb6, 0x8f73, 0x003f, 0x9bb5, 0x003f, 0x003f, /* 0x5d00 .. 0x5dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9092, 0x003f, 0x003f, 0x003f, 0x9bba, 0x003f, 0x003f, 0x8de8, 0x003f, 0x003f, 0x9bc0, 0x003f, 0x003f, 0x9bc1, 0x9bbb, 0x8a52, 0x9bbc, 0x9bc5, 0x9bc4, 0x9bc3, 0x9bbf, 0x003f, 0x003f, 0x003f, 0x9bbe, 0x003f, 0x003f, 0x9bc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xed93, 0x003f, 0x95f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed96, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bc9, 0x9bc6, 0x003f, 0x9bc8, 0x003f, 0x9792, 0x003f, 0x9bc7, 0xed94, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9093, 0x003f, 0x003f, 0x9bca, 0xed97, 0x003f, 0x8db5, 0x003f, 0x003f, 0x003f, 0x9bcb, 0x003f, 0x003f, 0x9bcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bcf, 0x003f, 0x9bce, 0x003f, 0x003f, 0x9bcd, 0x003f, 0x003f, 0x003f, 0x9388, 0x9bb8, 0x003f, 0x003f, 0x003f, 0x9bd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd2, 0x003f, 0x9bd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd6, 0xed98, 0xed99, 0x97e4, 0x003f, 0x9bd7, 0x9bd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bd8, 0x003f, 0x003f, 0x8ade, 0x9bd9, 0x003f, 0x003f, 0xed9a, 0x003f, 0x9bdb, 0x9bda, 0x003f, 0x003f, 0x9bdc, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bdd, 0x003f, 0x90ec, 0x8f42, 0x003f, 0x003f, 0x8f84, 0x003f, 0x9183, 0x003f, 0x8d48, 0x8db6, 0x8d49, 0x8b90, 0x003f, 0x003f, 0x9bde, 0x003f, 0x003f, 0x8db7, 0x003f, 0x003f, 0x8cc8, 0x9bdf, 0x96a4, 0x9462, 0x9be0, 0x003f, 0x8d4a, 0x003f, 0x003f, 0x003f, 0x8aaa, 0x003f, 0x9246, 0x8bd0, 0x003f, /* 0x5e00 .. 0x5eff */ 0x003f, 0x003f, 0x8e73, 0x957a, 0x003f, 0x003f, 0x94bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x9be1, 0x8af3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9be4, 0x003f, 0x003f, 0x003f, 0x003f, 0x929f, 0x003f, 0x003f, 0x9be3, 0x9be2, 0x9be5, 0x003f, 0x92e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9083, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e74, 0x003f, 0x90c8, 0x003f, 0x91d1, 0x8b41, 0x003f, 0x003f, 0x92a0, 0x003f, 0x003f, 0x9be6, 0x9be7, 0x8fed, 0x003f, 0x003f, 0x003f, 0x003f, 0x9658, 0x003f, 0x003f, 0x9bea, 0x003f, 0x003f, 0x9be9, 0x9be8, 0x959d, 0x003f, 0x9bf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x9679, 0x003f, 0x9beb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bed, 0x968b, 0x003f, 0x9bec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bee, 0x003f, 0x94a6, 0x9bef, 0x95bc, 0x9bf0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ab1, 0x95bd, 0x944e, 0x9bf2, 0x9bf3, 0x003f, 0x8d4b, 0x8ab2, 0x9bf4, 0x8cb6, 0x9763, 0x9748, 0x8af4, 0x9bf6, 0x003f, 0x92a1, 0x003f, 0x8d4c, 0x8faf, 0x003f, 0x003f, 0x94dd, 0x003f, 0x003f, 0x8fb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f98, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92ea, 0x95f7, 0x9358, 0x003f, 0x003f, 0x8d4d, 0x003f, 0x957b, 0x003f, 0x003f, 0x003f, 0x9bf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9378, 0x8dc0, 0x003f, 0x003f, 0x003f, 0x8cc9, 0x003f, 0x92eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88c1, 0x8f8e, 0x8d4e, 0x9766, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bf8, 0x9bf9, 0x9470, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bfa, 0x97f5, 0x984c, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bfc, 0x9bfb, 0x003f, 0x003f, 0x8a66, 0x003f, 0x003f, 0x9c40, 0x003f, 0x003f, 0x003f, 0x9c43, 0x9c44, 0x003f, 0x9c42, 0x003f, 0x955f, 0x8fb1, 0x9c46, 0x9c45, 0x9c41, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c47, 0x9c48, 0x003f, 0x003f, 0x9c49, 0x003f, 0x003f, 0x003f, 0x9c4c, 0x9c4a, 0x003f, 0x9c4b, 0x9c4d, 0x003f, 0x8984, 0x92ec, 0x9c4e, 0x003f, 0x8c9a, 0x89f4, 0x9455, 0x003f, 0x9c4f, 0x93f9, /* 0x5f00 .. 0x5fff */ 0x003f, 0x95d9, 0x003f, 0x9c50, 0x984d, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c51, 0x95be, 0x9c54, 0x989f, 0x98af, 0x003f, 0x8eae, 0x93f3, 0x9c55, 0x003f, 0x8b7c, 0x92a2, 0x88f8, 0x9c56, 0x95a4, 0x8d4f, 0x003f, 0x003f, 0x926f, 0x003f, 0x003f, 0x003f, 0x92ed, 0x003f, 0xed9b, 0x003f, 0x003f, 0x003f, 0x96ed, 0x8cb7, 0x8cca, 0x003f, 0x9c57, 0x003f, 0x003f, 0x003f, 0x9c58, 0x003f, 0x9c5e, 0x003f, 0x8ee3, 0x003f, 0x003f, 0xed9c, 0x92a3, 0x003f, 0x8bad, 0x9c59, 0x003f, 0x003f, 0x003f, 0x954a, 0x003f, 0x9265, 0x003f, 0x003f, 0x9c5a, 0x003f, 0x003f, 0x003f, 0xed4b, 0x003f, 0x003f, 0x9c5b, 0x003f, 0x8bae, 0x003f, 0x9c5c, 0x003f, 0x9c5d, 0x003f, 0x003f, 0x9c5f, 0x003f, 0x9396, 0x003f, 0x003f, 0x9c60, 0x9c61, 0x003f, 0x9c62, 0x003f, 0x003f, 0x9c53, 0x9c52, 0x003f, 0x003f, 0x003f, 0x9c63, 0x8c60, 0x003f, 0x003f, 0x003f, 0x9546, 0xed9d, 0x003f, 0x8dca, 0x9556, 0x92a4, 0x956a, 0x9c64, 0x003f, 0x003f, 0x8fb2, 0x8965, 0x003f, 0x9c65, 0x003f, 0x003f, 0x003f, 0x9c66, 0x003f, 0x96f0, 0x003f, 0x003f, 0x94de, 0x003f, 0x003f, 0x9c69, 0x899d, 0x90aa, 0x9c68, 0x9c67, 0x8c61, 0x91d2, 0x003f, 0x9c6d, 0x9c6b, 0x003f, 0x9c6a, 0x97a5, 0x8ce3, 0x003f, 0x003f, 0x003f, 0x8f99, 0x9c6c, 0x936b, 0x8f5d, 0x003f, 0x003f, 0x003f, 0x93be, 0x9c70, 0x9c6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c6e, 0x003f, 0x9c71, 0x8ce4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c72, 0x959c, 0x8f7a, 0x003f, 0x003f, 0x9c73, 0x94f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x93bf, 0x92a5, 0x003f, 0x003f, 0xed9e, 0x003f, 0x934f, 0x003f, 0x003f, 0x9c74, 0x8b4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9053, 0x003f, 0x954b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8af5, 0x9445, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c75, 0x8e75, 0x9659, 0x965a, 0x003f, 0x003f, 0x899e, 0x9c7a, 0xed9f, 0x003f, 0x9289, 0x003f, 0x003f, 0x003f, 0x9c77, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cab, 0x9c79, 0x003f, 0x003f, 0x003f, 0x944f, 0x003f, 0x003f, 0x9c78, 0x003f, 0x003f, 0x9c76, 0x003f, 0x8d9a, 0x003f, 0x9c7c, /* 0x6000 .. 0x60ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c83, 0x9c89, 0x9c81, 0x003f, 0x937b, 0x003f, 0x003f, 0x9c86, 0x957c, 0x003f, 0x003f, 0x9c80, 0x003f, 0x9c85, 0x97e5, 0x8e76, 0x003f, 0x003f, 0x91d3, 0x9c7d, 0x003f, 0x003f, 0x003f, 0x8b7d, 0x9c88, 0x90ab, 0x8985, 0x9c82, 0x89f6, 0x9c87, 0x003f, 0x003f, 0x003f, 0x8baf, 0x003f, 0x9c84, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c8a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c8c, 0x9c96, 0x9c94, 0x003f, 0x003f, 0x9c91, 0x003f, 0x003f, 0x003f, 0x9c90, 0x97f6, 0x003f, 0x9c92, 0x003f, 0x003f, 0x8bb0, 0x003f, 0x8d50, 0x003f, 0x003f, 0x8f9a, 0x003f, 0x003f, 0x003f, 0x9c99, 0x9c8b, 0x003f, 0x003f, 0xeda0, 0x003f, 0x9c8f, 0x9c7e, 0x003f, 0x89f8, 0x9c93, 0x9c95, 0x9270, 0x003f, 0x003f, 0x8da6, 0x89b6, 0x9c8d, 0x9c98, 0x9c97, 0x8bb1, 0x003f, 0x91a7, 0x8a86, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c62, 0x003f, 0x9c8e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c9a, 0x003f, 0x9c9d, 0x9c9f, 0xeda1, 0x003f, 0x003f, 0x003f, 0x8ebb, 0xeda2, 0x9ca5, 0x92ee, 0x9c9b, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ca3, 0x003f, 0x89f7, 0x003f, 0x9ca1, 0x9ca2, 0x003f, 0x003f, 0x9c9e, 0x9ca0, 0x003f, 0x003f, 0x003f, 0x8ce5, 0x9749, 0x003f, 0x003f, 0x8ab3, 0x003f, 0x003f, 0x8978, 0x9ca4, 0x003f, 0x9459, 0x88ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94df, 0x9c7b, 0x9caa, 0x9cae, 0x96e3, 0x003f, 0x9ca7, 0x003f, 0x003f, 0x003f, 0x9389, 0x9cac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fee, 0x9cad, 0x93d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9866, 0x003f, 0x9ca9, 0x003f, 0xeda4, 0x003f, 0x003f, 0x9caf, 0x003f, 0x8d9b, 0x003f, 0x90c9, 0x003f, 0xeda3, 0x88d2, 0x9ca8, 0x9ca6, 0x003f, 0x9179, 0x003f, 0x003f, 0x003f, 0x9c9c, 0x8e53, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91c4, 0x9cbb, 0xeda6, 0x917a, 0x9cb6, 0x003f, 0x9cb3, 0x9cb4, 0x003f, 0x8ee4, 0x9cb7, 0x9cba, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6100 .. 0x61ff */ 0x9cb5, 0x8f44, 0x003f, 0x9cb8, 0x003f, 0x003f, 0x9cb2, 0x003f, 0x96fa, 0x96f9, 0x003f, 0x003f, 0x003f, 0x9cbc, 0x9cbd, 0x88d3, 0x003f, 0xeda7, 0x003f, 0x003f, 0x003f, 0x9cb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bf0, 0x88a4, 0x003f, 0x003f, 0x003f, 0x8ab4, 0xeda5, 0x9cb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cc1, 0x9cc0, 0x003f, 0x003f, 0x003f, 0x9cc5, 0x003f, 0x003f, 0x003f, 0xeda9, 0x003f, 0x003f, 0x003f, 0x9cc6, 0x003f, 0x003f, 0xeda8, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cc4, 0x9cc7, 0x9cbf, 0x9cc3, 0x003f, 0x003f, 0x9cc8, 0x003f, 0x9cc9, 0x003f, 0x003f, 0x9cbe, 0x8e9c, 0x003f, 0x9cc2, 0x91d4, 0x8d51, 0x9cb0, 0x9054, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cd6, 0x003f, 0x95e7, 0x003f, 0x003f, 0x9ccc, 0x9ccd, 0x9cce, 0x003f, 0x003f, 0x9cd5, 0x003f, 0x9cd4, 0x003f, 0x003f, 0x969d, 0x8ab5, 0x003f, 0x9cd2, 0x003f, 0x8c64, 0x8a53, 0x003f, 0x003f, 0x9ccf, 0x003f, 0x003f, 0x97b6, 0x9cd1, 0x88d4, 0x9cd3, 0x003f, 0x9cca, 0x9cd0, 0x9cd7, 0x8c63, 0x9ccb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x977c, 0x003f, 0x003f, 0x003f, 0x974a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cda, 0x003f, 0x003f, 0x9cde, 0x003f, 0x003f, 0x003f, 0x919e, 0x003f, 0x97f7, 0x9cdf, 0x003f, 0x003f, 0x9cdc, 0x003f, 0x9cd9, 0x003f, 0xedaa, 0x9cd8, 0x9cdd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95ae, 0x003f, 0x003f, 0x93b2, 0x003f, 0x8c65, 0x003f, 0x9ce0, 0x9cdb, 0x003f, 0x9ce1, 0x003f, 0x003f, 0x003f, 0x8c9b, 0x003f, 0x003f, 0x003f, 0x89af, 0x003f, 0x003f, 0x003f, 0x9ce9, 0x003f, 0x003f, 0x003f, 0x8ab6, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ce7, 0x003f, 0x003f, 0x9ce8, 0x8da7, 0x9ce6, 0x9ce4, 0x9ce3, 0x9cea, 0x9ce2, 0x9cec, 0x003f, 0x003f, 0x89f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cee, 0x003f, 0x003f, 0x9ced, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92a6, 0x003f, 0x9cf1, 0x003f, 0x9cef, 0x9ce5, 0x8c9c, 0x003f, 0x9cf0, 0x003f, 0x9cf4, 0x9cf3, 0x9cf5, 0x9cf2, /* 0x6200 .. 0x62ff */ 0x9cf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9cf7, 0x9cf8, 0x95e8, 0x003f, 0x9cfa, 0x9cf9, 0x8f5e, 0x003f, 0x90ac, 0x89e4, 0x89fa, 0xedab, 0x9cfb, 0x003f, 0x88bd, 0x003f, 0x003f, 0x003f, 0x90ca, 0x9cfc, 0x003f, 0xe6c1, 0x9d40, 0x8c81, 0x003f, 0x9d41, 0x003f, 0x003f, 0x003f, 0x003f, 0x90ed, 0x003f, 0x003f, 0x003f, 0x9d42, 0x003f, 0x003f, 0x003f, 0x9d43, 0x8b59, 0x9d44, 0x003f, 0x9d45, 0x9d46, 0x91d5, 0x003f, 0x003f, 0x003f, 0x8ccb, 0x003f, 0x003f, 0x96df, 0x003f, 0x003f, 0x003f, 0x965b, 0x8f8a, 0x9d47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90ee, 0xe7bb, 0x94e0, 0x003f, 0x8ee8, 0x003f, 0x8dcb, 0x9d48, 0x003f, 0x003f, 0x003f, 0x003f, 0x91c5, 0x003f, 0x95a5, 0x003f, 0x003f, 0x91ef, 0x003f, 0x003f, 0x9d4b, 0x003f, 0x003f, 0x9d49, 0x003f, 0x9d4c, 0x003f, 0x003f, 0x9d4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d4d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95af, 0x003f, 0x003f, 0x88b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x957d, 0x003f, 0x003f, 0x94e1, 0x003f, 0x003f, 0x9d4e, 0x003f, 0x9d51, 0x8fb3, 0x8b5a, 0x003f, 0x9d4f, 0x9d56, 0x8fb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d50, 0x9463, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x977d, 0x9d52, 0x9d53, 0x9d57, 0x938a, 0x9d54, 0x8d52, 0x90dc, 0x003f, 0x003f, 0x9d65, 0x94b2, 0x003f, 0x91f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedac, 0x003f, 0x003f, 0x003f, 0x003f, 0x94e2, 0x9dab, 0x003f, 0x003f, 0x003f, 0x003f, 0x95f8, 0x003f, 0x003f, 0x003f, 0x92ef, 0x003f, 0x003f, 0x003f, 0x9695, 0x003f, 0x9d5a, 0x899f, 0x928a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d63, 0x003f, 0x003f, 0x9253, 0x9d5d, 0x9d64, 0x9d5f, 0x9d66, 0x9d62, 0x003f, 0x9d61, 0x948f, 0x003f, 0x9d5b, 0x89fb, 0x9d59, 0x8b91, 0x91f1, 0x9d55, 0x003f, 0x003f, 0x9d58, 0x8d53, 0x90d9, 0x003f, 0x8fb5, 0x9d60, 0x9471, 0x003f, 0x003f, 0x8b92, 0x8a67, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a87, 0x9040, 0x9d68, 0x9d6d, 0x003f, 0x9d69, 0x003f, 0x8c9d, 0x003f, 0x9d6e, 0x8e41, 0x8d89, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f45, 0x9d5c, /* 0x6300 .. 0x63ff */ 0x003f, 0x8e9d, 0x9d6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e77, 0x9d6c, 0x88c2, 0x003f, 0x003f, 0x9d67, 0x003f, 0x003f, 0x003f, 0x003f, 0x92a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b93, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d6a, 0x88a5, 0x003f, 0x003f, 0x8dc1, 0x003f, 0x003f, 0x003f, 0x9055, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92f0, 0x003f, 0x003f, 0x94d2, 0x9d70, 0x917d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91a8, 0x003f, 0x003f, 0x8e4a, 0x9d71, 0x003f, 0x9d73, 0x9d6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95df, 0x003f, 0x92bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x917b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95f9, 0x8ecc, 0x9d80, 0x003f, 0x9d7e, 0x003f, 0x003f, 0x9098, 0x003f, 0x003f, 0x003f, 0x8c9e, 0x003f, 0x003f, 0x003f, 0x9d78, 0x8fb7, 0x003f, 0x003f, 0x93e6, 0x9450, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d76, 0x003f, 0x003f, 0x917c, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ef6, 0x9d7b, 0x003f, 0x003f, 0x8fb6, 0x003f, 0x9d75, 0x9d7a, 0x003f, 0x003f, 0x9472, 0x003f, 0x003f, 0x003f, 0x9d74, 0x003f, 0x8c40, 0x003f, 0x003f, 0x8a7c, 0x003f, 0x003f, 0x003f, 0x9d7c, 0x97a9, 0x8dcc, 0x9254, 0x9d79, 0x003f, 0x90da, 0x003f, 0x8d54, 0x9084, 0x8986, 0x915b, 0x9d77, 0x8b64, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c66, 0x003f, 0x92cd, 0x9d7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x917e, 0x003f, 0x003f, 0x9d81, 0x003f, 0x9d83, 0x003f, 0x003f, 0x91b5, 0x9d89, 0x003f, 0x9d84, 0x003f, 0x003f, 0x9d86, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9560, 0x92f1, 0x003f, 0x9d87, 0x003f, 0x003f, 0x003f, 0x974b, 0x003f, 0x003f, 0x003f, 0x9767, 0x8ab7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ac, 0x003f, 0x9d85, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d82, 0x003f, 0x003f, 0x003f, 0x003f, 0x8af6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8987, 0xedad, 0x9d88, 0x003f, 0x003f, 0x003f, 0x9768, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6400 .. 0x64ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d8c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91b9, 0x003f, 0x9d93, 0x003f, 0x003f, 0x003f, 0x9d8d, 0x003f, 0x003f, 0x9d8a, 0x9d91, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d72, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d8e, 0x003f, 0x9d92, 0x003f, 0x003f, 0x003f, 0x94c0, 0x938b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d8b, 0x003f, 0x9d8f, 0x003f, 0x003f, 0x003f, 0x8c67, 0x003f, 0x003f, 0x003f, 0x8def, 0x003f, 0x003f, 0x003f, 0x90db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d97, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9345, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d94, 0x003f, 0x9680, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d95, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d96, 0x003f, 0x96cc, 0x003f, 0x90a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c82, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e54, 0x9d9a, 0x003f, 0x9d99, 0x003f, 0x003f, 0x003f, 0x003f, 0x9451, 0x003f, 0x003f, 0xedaf, 0x93b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9350, 0x9d9b, 0x003f, 0x003f, 0x003f, 0x9d9c, 0x003f, 0x958f, 0x003f, 0x9464, 0x8e42, 0x003f, 0x90ef, 0x003f, 0x966f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a68, 0x003f, 0x9da3, 0x9d9e, 0x003f, 0x003f, 0x003f, 0x003f, 0x9769, 0x9da5, 0x003f, 0x003f, 0x9da1, 0x003f, 0x9da2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9180, 0xedb0, 0x003f, 0x003f, 0x003f, 0x9da0, 0x003f, 0x9d5e, 0x003f, 0x003f, 0x003f, 0x9da4, 0x003f, 0x9d9f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9da9, 0x9daa, 0x9346, 0x9dac, 0x003f, 0x003f, 0x8e43, 0x9da7, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b5b, 0x003f, 0x003f, 0x9dad, 0x003f, 0x9da6, 0x9db1, 0x003f, 0x9db0, 0x003f, 0x9daf, 0x003f, 0x003f, 0x003f, 0x9db2, 0x003f, 0x003f, 0x9db4, 0x8fef, 0x003f, /* 0x6500 .. 0x65ff */ 0x9db3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9db7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9db5, 0x003f, 0x003f, 0x003f, 0x9db6, 0x9d90, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9db9, 0x9db8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d98, 0x9dba, 0x9dae, 0x003f, 0x003f, 0x8e78, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dbb, 0x9dbc, 0x9dbe, 0x9dbd, 0x9dbf, 0x89fc, 0x003f, 0x8d55, 0x003f, 0x003f, 0x95fa, 0x90ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ccc, 0x003f, 0x003f, 0x9dc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dc4, 0xedb1, 0x9571, 0x003f, 0x8b7e, 0x003f, 0x003f, 0x003f, 0x9dc3, 0x9dc2, 0x9473, 0x9dc5, 0x8bb3, 0x003f, 0x003f, 0x003f, 0x9dc7, 0x9dc6, 0x003f, 0x003f, 0x003f, 0x8ab8, 0x8e55, 0x003f, 0x003f, 0x93d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c68, 0x003f, 0x003f, 0x003f, 0x9094, 0x003f, 0x9dc8, 0x003f, 0x90ae, 0x9347, 0x003f, 0x957e, 0x9dc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dca, 0x9dcb, 0x003f, 0x003f, 0x003f, 0x95b6, 0x9b7c, 0x90c4, 0x003f, 0x003f, 0x956b, 0x003f, 0x8dd6, 0x003f, 0x94e3, 0x94c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x936c, 0x003f, 0x97bf, 0x003f, 0x9dcd, 0x8ece, 0x003f, 0x003f, 0x9dce, 0x003f, 0x88b4, 0x003f, 0x003f, 0x8bd2, 0x90cb, 0x003f, 0x9580, 0x003f, 0x003f, 0x003f, 0x9dcf, 0x8e61, 0x9266, 0x003f, 0x8e7a, 0x9056, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dd0, 0x003f, 0x95fb, 0x003f, 0x003f, 0x8997, 0x8e7b, 0x003f, 0x003f, 0x003f, 0x9dd3, 0x003f, 0x9dd1, 0x9dd4, 0x97b7, 0x9dd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x90f9, 0x9dd5, 0x003f, 0x003f, 0x91b0, 0x003f, 0x003f, 0x9dd6, 0x003f, 0x003f, 0x003f, 0x003f, 0x8af8, 0x003f, 0x9dd8, 0x003f, 0x9dd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dd9, 0x9dda, 0x8af9, 0x003f, 0x003f, 0x93fa, 0x9255, 0x8b8c, 0x8e7c, 0x9181, 0x003f, 0x003f, 0x8f7b, 0x88ae, 0x003f, 0x003f, 0x003f, 0x9ddb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a0, 0x9ddf, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6600 .. 0x66ff */ 0xedb2, 0x003f, 0x8d56, 0x9dde, 0x003f, 0x003f, 0x8da9, 0x8fb8, 0x003f, 0xedb5, 0x9ddd, 0x003f, 0x8fb9, 0x003f, 0x96be, 0x8da8, 0x003f, 0x003f, 0x003f, 0x88d5, 0x90cc, 0xedb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9de4, 0x003f, 0xedb7, 0x90af, 0x8966, 0x003f, 0x003f, 0x003f, 0xedb8, 0x8f74, 0x003f, 0x9686, 0x8df0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fba, 0xedb6, 0x90a5, 0x003f, 0xed47, 0x003f, 0x003f, 0x9de3, 0x9de1, 0x9de2, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb4, 0x928b, 0x003f, 0x003f, 0x9e45, 0x003f, 0x9de8, 0x8e9e, 0x8d57, 0x9de6, 0x003f, 0x003f, 0x003f, 0x003f, 0x9de7, 0x003f, 0x9057, 0x003f, 0x003f, 0x003f, 0x9de5, 0x003f, 0x003f, 0x8e4e, 0x003f, 0x003f, 0x003f, 0x003f, 0xedba, 0x003f, 0xedbb, 0x003f, 0x003f, 0x003f, 0x9dea, 0x9de9, 0x9dee, 0x003f, 0x003f, 0x9def, 0x003f, 0x9deb, 0xedb9, 0x8a41, 0x9dec, 0x9ded, 0x94d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9581, 0x8c69, 0x9df0, 0x003f, 0x003f, 0xedbd, 0x90b0, 0x003f, 0x8fbb, 0x003f, 0x003f, 0x003f, 0x9271, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bc5, 0x003f, 0x9df1, 0x9df5, 0x003f, 0x003f, 0x89c9, 0x9df2, 0x9df4, 0x003f, 0x003f, 0x003f, 0x003f, 0x9df3, 0x003f, 0x003f, 0x8f8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x9267, 0x88c3, 0x9df6, 0xedbe, 0x003f, 0x003f, 0x003f, 0x9df7, 0x003f, 0x003f, 0xedbf, 0x003f, 0x92a8, 0x003f, 0x003f, 0x003f, 0x97ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e62, 0x003f, 0x003f, 0x95e9, 0x003f, 0x003f, 0x003f, 0xedc0, 0x003f, 0x965c, 0x003f, 0x003f, 0x003f, 0x9e41, 0x9df9, 0x003f, 0x003f, 0x9dfc, 0x003f, 0x9dfb, 0xedc1, 0x003f, 0x9df8, 0x003f, 0x003f, 0x9e40, 0x003f, 0x003f, 0x93dc, 0x003f, 0x9dfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e42, 0x003f, 0x003f, 0x8f8c, 0x9e43, 0x003f, 0x976a, 0x9498, 0x003f, 0x003f, 0x9e44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e46, 0x003f, 0x003f, 0x9e47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e48, 0x003f, 0x8bc8, 0x8967, 0x8d58, 0x9e49, 0x003f, 0x9e4a, 0x8f91, 0x9182, 0xedc2, 0xed4a, 0x99d6, 0x915d, 0x915c, 0x91d6, /* 0x6700 .. 0x67ff */ 0x8dc5, 0x003f, 0x003f, 0x98f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c8e, 0x974c, 0x003f, 0x95fc, 0x003f, 0x959e, 0xedc3, 0x9e4b, 0x003f, 0x003f, 0x003f, 0x003f, 0x8df1, 0x92bd, 0x9e4c, 0x984e, 0x003f, 0x003f, 0x003f, 0x965d, 0x003f, 0x92a9, 0x9e4d, 0x8afa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e4e, 0x9e4f, 0x96d8, 0x003f, 0x96a2, 0x9696, 0x967b, 0x8e44, 0x9e51, 0x003f, 0x003f, 0x8ee9, 0x003f, 0x003f, 0x9670, 0x003f, 0x9e53, 0x9e56, 0x9e55, 0x003f, 0x8af7, 0x003f, 0x003f, 0x8b80, 0x003f, 0x9e52, 0x003f, 0x9e54, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e57, 0x003f, 0x003f, 0x9099, 0x003f, 0x003f, 0x003f, 0x003f, 0x979b, 0x88c7, 0x8dde, 0x91ba, 0x003f, 0x8edb, 0x003f, 0x003f, 0x8ff1, 0x003f, 0x003f, 0x9e5a, 0x003f, 0x003f, 0x936d, 0x003f, 0x9e58, 0x91a9, 0x9e59, 0x8ff0, 0x96db, 0x9e5b, 0x9e5c, 0x9788, 0xedc5, 0x003f, 0x003f, 0x003f, 0x9e61, 0x003f, 0x003f, 0x8d59, 0x003f, 0x9474, 0x9e5e, 0x938c, 0x9ddc, 0x9de0, 0x003f, 0x8b6e, 0x003f, 0x9466, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e60, 0x003f, 0x8fbc, 0x94c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e66, 0x003f, 0x94f8, 0x003f, 0x9e5d, 0x003f, 0x9e63, 0x9e62, 0x003f, 0x003f, 0x003f, 0x90cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x968d, 0x003f, 0x97d1, 0x003f, 0x003f, 0x9687, 0x003f, 0x89ca, 0x8e7d, 0x003f, 0x003f, 0x9867, 0x9e65, 0x9095, 0x003f, 0x003f, 0x003f, 0x9e64, 0x003f, 0x003f, 0x9e5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ccd, 0x003f, 0x003f, 0x003f, 0x9e6b, 0x9e69, 0x003f, 0x89cb, 0x9e67, 0x9e6d, 0x9e73, 0x003f, 0xedc6, 0x003f, 0x003f, 0x003f, 0x003f, 0xedc8, 0x91c6, 0x003f, 0x003f, 0x95bf, 0x003f, 0x9e75, 0x003f, 0x003f, 0x003f, 0x9541, 0x003f, 0x003f, 0x003f, 0x9e74, 0x9490, 0x965e, 0x8ab9, 0x003f, 0x90f5, 0x8f5f, 0x003f, 0x003f, 0x003f, 0x92d1, 0x003f, 0x974d, 0x003f, 0x003f, 0x9e70, 0x9e6f, 0x003f, 0x003f, 0x003f, 0x9e71, 0x003f, 0x9e6e, 0x003f, 0x003f, 0x9e76, 0x003f, 0x9e6c, 0x003f, 0x003f, 0x9e6a, 0x003f, 0x9e72, 0x9e68, 0x003f, 0x928c, 0x003f, 0x96f6, 0x8ec4, 0x8df2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8db8, 0x003f, 0x003f, 0x968f, 0x8a60, /* 0x6800 .. 0x68ff */ 0x003f, 0xedc9, 0x92cc, 0x93c8, 0x8968, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90f0, 0x003f, 0x003f, 0x90b2, 0x8c49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e78, 0x003f, 0x003f, 0x8d5a, 0x8a9c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e7a, 0x8a94, 0x9e81, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e7d, 0x003f, 0x90f1, 0x003f, 0x003f, 0x003f, 0x8a6a, 0x8daa, 0x003f, 0x003f, 0x8a69, 0x8dcd, 0x003f, 0x003f, 0x9e7b, 0x8c85, 0x8c6a, 0x938d, 0xedca, 0x003f, 0x9e79, 0x003f, 0x88c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e7c, 0x9e7e, 0x003f, 0x8bcb, 0x8c4b, 0xedc7, 0x8aba, 0x8b6a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e82, 0x003f, 0x003f, 0x8df7, 0x9691, 0x003f, 0x8e56, 0x003f, 0x003f, 0x003f, 0x9e83, 0x003f, 0x003f, 0x003f, 0x954f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e8f, 0x003f, 0x89b1, 0x9e84, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e95, 0x9e85, 0x003f, 0x97c0, 0x003f, 0x9e8c, 0x003f, 0x947e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e94, 0x003f, 0x9e87, 0x003f, 0x003f, 0x003f, 0x88b2, 0x9e89, 0x003f, 0x003f, 0x8d5b, 0x003f, 0x003f, 0x003f, 0x9e8b, 0x003f, 0x9e8a, 0x003f, 0x9e86, 0x9e91, 0x003f, 0x8fbd, 0x003f, 0x003f, 0x003f, 0x9aeb, 0x8ce6, 0x979c, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e88, 0x003f, 0x92f2, 0x8a42, 0x8dab, 0x003f, 0x9e80, 0x003f, 0x9e90, 0x8a81, 0x003f, 0x003f, 0x9e8e, 0x9e92, 0x003f, 0x938e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8afc, 0x003f, 0x9eb0, 0x003f, 0xed48, 0x96c7, 0x9e97, 0x8afb, 0x003f, 0x9e9e, 0x003f, 0xedcb, 0x003f, 0x003f, 0x965f, 0x003f, 0x9e9f, 0x9ea1, 0x003f, 0x9ea5, 0x9e99, 0x003f, 0x9249, 0x003f, 0x003f, 0x003f, 0x003f, 0x938f, 0x9ea9, 0x9e9c, 0x003f, 0x9ea6, 0x003f, 0x003f, 0x003f, 0x9ea0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9058, 0x9eaa, 0x003f, 0x003f, 0x90b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ea8, 0x8abb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6900 .. 0x69ff */ 0x986f, 0x9e96, 0x003f, 0x003f, 0x9ea4, 0x88d6, 0x003f, 0x003f, 0x9e98, 0x003f, 0x003f, 0x96b8, 0x9e9d, 0x9041, 0x92c5, 0x9e93, 0x003f, 0x003f, 0x9ea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x909a, 0x9ead, 0x8a91, 0x8c9f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9eaf, 0x9e9a, 0x9eae, 0x003f, 0x9ea7, 0x9e9b, 0x003f, 0x9eab, 0x003f, 0x9eac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ebd, 0x003f, 0x003f, 0x003f, 0x93cc, 0x003f, 0x9ea2, 0x003f, 0x003f, 0x9eb9, 0x003f, 0x003f, 0x003f, 0x9ebb, 0x003f, 0x92d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x976b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9596, 0x9eb6, 0x91c8, 0x003f, 0x003f, 0x003f, 0x9ebc, 0x915e, 0x003f, 0x9eb3, 0x9ec0, 0x9ebf, 0x003f, 0x93ed, 0x9ebe, 0x93e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedcd, 0x003f, 0x9ec2, 0x9eb5, 0x003f, 0x8bc6, 0x9eb8, 0x8f7c, 0x003f, 0x003f, 0x003f, 0x9480, 0x9eba, 0x8bc9, 0x003f, 0x9eb2, 0x9eb4, 0x9eb1, 0x003f, 0x003f, 0x984f, 0x8a79, 0x9eb7, 0x003f, 0x003f, 0x9ec1, 0x8a54, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8de5, 0x003f, 0x003f, 0x003f, 0x897c, 0x003f, 0x003f, 0x9ed2, 0x003f, 0x003f, 0x9850, 0x9ed5, 0x003f, 0x003f, 0xedcf, 0x003f, 0x003f, 0x9059, 0x9ed4, 0x003f, 0x003f, 0x003f, 0x9ed3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ed0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ec4, 0x003f, 0x003f, 0x9ee1, 0x9ec3, 0x003f, 0x9ed6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ece, 0x003f, 0x003f, 0x9ec9, 0x9ec6, 0x003f, 0x9ec7, 0x003f, 0x9ecf, 0x003f, 0x003f, 0x003f, 0xeaa0, 0x003f, 0x003f, 0x9ecc, 0x8d5c, 0x92c6, 0x9184, 0x9eca, 0x003f, 0x9ec5, 0x003f, 0x003f, 0x9ec8, 0x003f, 0x003f, 0x003f, 0x003f, 0x976c, 0x968a, 0x003f, 0x003f, 0x003f, 0x9ecd, 0x9ed7, 0x003f, 0x003f, 0x003f, 0xedd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x9edf, 0x9ed8, 0x003f, 0x003f, 0x9ee5, 0x003f, 0x9ee3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ede, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9edd, 0x003f, 0x92ce, 0x003f, 0x9185, 0x003f, 0x9edb, /* 0x6a00 .. 0x6aff */ 0x003f, 0x003f, 0x9ed9, 0x003f, 0x003f, 0x9ee0, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ee6, 0x94f3, 0x9eec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ee7, 0x9eea, 0x9ee4, 0x003f, 0x003f, 0x9294, 0x003f, 0x9557, 0x003f, 0x9eda, 0x003f, 0x003f, 0x9ee2, 0x8fbe, 0x003f, 0x96cd, 0x9ef6, 0x9ee9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ca0, 0x89a1, 0x8a7e, 0x003f, 0x003f, 0x9ed1, 0x003f, 0xedd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fbf, 0x9eee, 0x003f, 0x9ef5, 0x8ef7, 0x8a92, 0x003f, 0x003f, 0x924d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9eeb, 0x003f, 0xedd3, 0x9ef0, 0x9ef4, 0x003f, 0x003f, 0x8bb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b6b, 0x9ef2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b40, 0x003f, 0x93c9, 0x9ef1, 0x003f, 0x003f, 0x003f, 0x9ef3, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9eed, 0xedd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x9eef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd5, 0x8a80, 0x9268, 0x003f, 0x003f, 0x003f, 0x9efa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ef8, 0x8ce7, 0x003f, 0x9ef7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f40, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e77, 0x003f, 0x003f, 0x003f, 0x9ef9, 0x003f, 0x9efb, 0x9efc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f4b, 0x003f, 0x9f47, 0x003f, 0x9e8d, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f46, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f45, 0x003f, 0x003f, 0x9f42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ee8, 0x9f44, 0x9f43, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f49, 0x003f, 0x9845, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f4c, 0x8bf9, 0x003f, 0x003f, 0x9f48, 0x9f4a, 0x003f, 0x003f, 0xedd6, 0x003f, 0xedd7, 0x003f, 0x003f, 0x003f, 0x94a5, 0x003f, 0x9f4d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f51, 0x9f4e, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6b00 .. 0x6bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x9793, 0x9f4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9edc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f52, 0x003f, 0x003f, 0x003f, 0x9f53, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8954, 0x003f, 0x9f55, 0x8c87, 0x8e9f, 0x003f, 0x8bd3, 0x003f, 0x003f, 0x003f, 0x89a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x977e, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f57, 0x9f56, 0x9f59, 0x8b5c, 0x003f, 0x003f, 0x8bd4, 0x8abc, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f5c, 0x003f, 0x003f, 0x003f, 0x9f5b, 0x003f, 0x9f5d, 0x003f, 0x003f, 0x89cc, 0x003f, 0x9256, 0x003f, 0x9f5e, 0x003f, 0x003f, 0x8abd, 0x9f60, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f5f, 0x003f, 0x9f61, 0x003f, 0x003f, 0x003f, 0x9f62, 0x003f, 0x9f63, 0x8e7e, 0x90b3, 0x8d9f, 0x003f, 0x9590, 0x003f, 0x003f, 0x95e0, 0x9863, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e95, 0x003f, 0x003f, 0x003f, 0x8dce, 0x97f0, 0x003f, 0x003f, 0x003f, 0x9f64, 0x9f65, 0x003f, 0x8e80, 0x003f, 0x003f, 0x003f, 0x9f66, 0x9f67, 0x003f, 0x003f, 0x9f69, 0x9f68, 0x003f, 0x9677, 0x003f, 0x003f, 0x8f7d, 0x8eea, 0x8e63, 0x003f, 0x9f6a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6c, 0x9042, 0x003f, 0x9f6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f6f, 0x9f70, 0x003f, 0x003f, 0x003f, 0x9f71, 0x003f, 0x9f73, 0x9f72, 0x9f74, 0x89a3, 0x9269, 0x003f, 0x9f75, 0x003f, 0x003f, 0x8e45, 0x8a6b, 0x9f76, 0x003f, 0x003f, 0x9361, 0x9aca, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b42, 0x9f77, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f78, 0x003f, 0x95ea, 0x9688, 0x003f, 0x003f, 0x003f, 0x93c5, 0x9f79, 0x94e4, 0x003f, 0xedd8, 0x003f, 0x94f9, 0x003f, 0x003f, 0x96d1, 0x003f, 0x003f, 0x003f, 0x9f7a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f7c, 0x9f7b, 0x003f, 0x003f, 0x9f7e, 0x003f, 0x003f, 0x003f, 0x9f7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6c00 .. 0x6cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f81, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e81, 0x003f, 0x96af, 0x003f, 0x9f82, 0x9f83, 0x003f, 0x003f, 0x8b43, 0x003f, 0x003f, 0x003f, 0x9f84, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f86, 0x9f85, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9085, 0x003f, 0x003f, 0x9558, 0x8969, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94c3, 0xedd9, 0x92f3, 0x8f60, 0x8b81, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94c4, 0x003f, 0x8eac, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f88, 0x003f, 0x8abe, 0x003f, 0x003f, 0x8998, 0x003f, 0xedda, 0x93f0, 0x9f87, 0x8d5d, 0x9272, 0x003f, 0x9f89, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f91, 0x003f, 0x9f8a, 0x003f, 0x003f, 0x003f, 0x003f, 0xeddc, 0x91bf, 0x003f, 0x8b82, 0x9f92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c88, 0x003f, 0x003f, 0x8b44, 0x9f90, 0x003f, 0x003f, 0x9f8e, 0x9f8b, 0x9780, 0x003f, 0x003f, 0xeddb, 0x003f, 0x92be, 0x003f, 0x003f, 0x003f, 0x93d7, 0x9f8c, 0x003f, 0x003f, 0x9f94, 0x003f, 0x9f93, 0x8c42, 0x003f, 0x003f, 0x89ab, 0x003f, 0x003f, 0x8db9, 0x9f8d, 0x9f8f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9676, 0x91f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9697, 0x003f, 0x003f, 0x9f9c, 0x003f, 0x003f, 0x9f9d, 0x003f, 0x89cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x95a6, 0x96fb, 0x9f9f, 0x8ea1, 0x8fc0, 0x9f98, 0x9f9e, 0x8988, 0x003f, 0x8bb5, 0x003f, 0x003f, 0x9f95, 0x9f9a, 0x003f, 0x003f, 0x003f, 0x90f2, 0x9491, 0x003f, 0x94e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f97, 0x003f, 0x9640, 0x003f, 0x9f99, 0x003f, 0x9fa2, 0xeddd, 0x9fa0, 0x003f, 0x9f9b, 0x003f, 0x003f, 0x003f, 0x9641, 0x9467, 0x8b83, 0x003f, 0x9344, 0x003f, 0x003f, 0x928d, 0x003f, 0x9fa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fa1, 0x91d7, 0x9f96, 0x003f, 0x896a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6d00 .. 0x6dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xedde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x976d, 0x9fae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fad, 0x003f, 0x003f, 0x003f, 0x003f, 0x90f4, 0x003f, 0x9faa, 0x003f, 0x978c, 0x003f, 0x003f, 0x93b4, 0x9fa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92c3, 0x003f, 0x003f, 0x003f, 0x896b, 0x8d5e, 0x9fa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f46, 0x9fac, 0x003f, 0x9fab, 0x9fa6, 0x003f, 0x9fa9, 0x003f, 0x003f, 0x8a88, 0x003f, 0x9fa8, 0x9468, 0x003f, 0x003f, 0x97ac, 0x003f, 0x003f, 0x8ff2, 0x90f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fb4, 0x9fb2, 0x003f, 0x956c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9faf, 0x9fb1, 0x003f, 0x8959, 0x003f, 0x003f, 0x8d5f, 0x9851, 0x003f, 0x8a5c, 0x003f, 0x9582, 0xede0, 0x003f, 0x003f, 0x003f, 0x003f, 0x9781, 0x003f, 0x003f, 0x8a43, 0x905a, 0x9fb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fb8, 0x003f, 0xeddf, 0x8fc1, 0x003f, 0x003f, 0x003f, 0x974f, 0x003f, 0x9fb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fb0, 0x003f, 0x9fb6, 0xede1, 0x003f, 0x003f, 0x97dc, 0x003f, 0x9393, 0x93c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xede2, 0x003f, 0x003f, 0x8a55, 0x003f, 0x003f, 0x8974, 0x003f, 0x003f, 0x9fbc, 0x003f, 0x003f, 0x9fbf, 0x003f, 0x003f, 0x003f, 0x97c1, 0x003f, 0x003f, 0x003f, 0x9784, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fc6, 0x9fc0, 0x9fbd, 0x003f, 0x003f, 0x003f, 0x97d2, 0x9fc3, 0x003f, 0x003f, 0xede3, 0x003f, 0x8f69, 0x9fc5, 0x003f, 0x003f, 0x9fca, 0x003f, 0x003f, 0x9391, 0x9fc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fc2, 0x003f, 0x003f, 0x9257, 0x003f, 0x003f, 0x9fc9, 0x003f, 0x9fbe, 0x003f, 0x9fc4, 0x003f, 0x9fcb, 0x88fa, 0x9fc1, 0x003f, 0x9fcc, 0x003f, 0x003f, 0x905b, 0xede5, 0x8f7e, 0x003f, 0x95a3, 0x003f, 0x8dac, 0xede4, 0x9fb9, 0x9fc7, 0x9359, 0xede6, 0x003f, 0x003f, 0x003f, /* 0x6e00 .. 0x6eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90b4, 0x003f, 0x8a89, 0x8dcf, 0x8fc2, 0x9fbb, 0x8f61, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c6b, 0x003f, 0x9fba, 0x003f, 0x003f, 0x003f, 0x9fd0, 0x8f8d, 0x8cb8, 0x003f, 0x9fdf, 0x003f, 0x9fd9, 0x8b94, 0x936e, 0x003f, 0x9fd4, 0x9fdd, 0x88ad, 0x8951, 0xede9, 0x003f, 0x89b7, 0x003f, 0x9fd6, 0x91aa, 0x9fcd, 0x9fcf, 0x8d60, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fe0, 0xede7, 0x9fdb, 0x003f, 0xedea, 0x003f, 0x9fd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96a9, 0x003f, 0x003f, 0x9fd8, 0x9fdc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cce, 0x003f, 0x8fc3, 0x003f, 0x003f, 0x9258, 0xede8, 0x003f, 0x003f, 0x9fd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x974e, 0x003f, 0x003f, 0x003f, 0x9fd5, 0x003f, 0x003f, 0x9fce, 0x9392, 0x003f, 0x003f, 0x9fd1, 0x003f, 0x003f, 0x003f, 0x9fd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9870, 0x8ebc, 0x969e, 0x003f, 0x9fe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ac, 0x003f, 0x003f, 0x9fed, 0x8cb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f80, 0x003f, 0x9fe3, 0x003f, 0x003f, 0x003f, 0x97ad, 0x8d61, 0x003f, 0x9ff0, 0x003f, 0x003f, 0x88ec, 0x003f, 0x003f, 0x9fee, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fe2, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fe8, 0x003f, 0x003f, 0x9fea, 0x003f, 0x003f, 0x003f, 0x976e, 0x9fe5, 0x003f, 0x003f, 0x934d, 0x003f, 0x003f, 0x9fe7, 0x003f, 0xedeb, 0x003f, 0x003f, 0x9fef, 0x003f, 0x9fe9, 0x96c5, 0x003f, 0x003f, 0x003f, 0x9fe4, 0x003f, 0x8ea0, 0x9ffc, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a8a, 0x003f, 0x9fe6, 0x9feb, 0x9fec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91ea, 0x91d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff4, 0x003f, 0x003f, 0x9ffa, 0x003f, 0x003f, 0x9ff8, 0x003f, 0x9348, 0x003f, 0x003f, 0xe042, 0x9ff5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff6, 0x9fde, /* 0x6f00 .. 0x6fff */ 0x003f, 0x8b99, 0x9559, 0x003f, 0x003f, 0x003f, 0x8ebd, 0x003f, 0x003f, 0x8d97, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9852, 0x003f, 0x9ff2, 0x003f, 0xe041, 0x8989, 0x9186, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9499, 0x003f, 0x8abf, 0x97f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x969f, 0x92d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff9, 0x9ffb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9151, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe040, 0x9ff7, 0x003f, 0x9ff1, 0x003f, 0x003f, 0x003f, 0x8ac1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c89, 0x003f, 0x003f, 0x003f, 0xe04e, 0x003f, 0x003f, 0xe049, 0x90f6, 0x003f, 0x003f, 0x8a83, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f81, 0x003f, 0xe052, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe04b, 0x92aa, 0xe048, 0x92d7, 0x003f, 0x003f, 0x003f, 0xe06b, 0x003f, 0x003f, 0x003f, 0xe045, 0x003f, 0xe044, 0x003f, 0xe04d, 0x003f, 0x003f, 0x003f, 0xe047, 0xe046, 0xe04c, 0x003f, 0x909f, 0x003f, 0xe043, 0x003f, 0xedec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe04f, 0x003f, 0x003f, 0xe050, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ac0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe055, 0x003f, 0xe054, 0xe056, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe059, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9362, 0x003f, 0xe053, 0x003f, 0xeded, 0x003f, 0x003f, 0x003f, 0xe057, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c83, 0x91f7, 0xe051, 0x945a, 0x003f, 0x003f, 0xe058, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe05d, 0xe05b, 0x003f, 0x003f, 0xe05e, 0x003f, 0x003f, 0xe061, 0x003f, 0x003f, 0x003f, 0xe05a, 0x8d8a, 0x9447, 0x003f, 0x003f, 0x9fb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9794, 0xe05c, 0x003f, 0xe060, 0x91f3, 0x003f, 0xe05f, 0x003f, 0xe04a, 0x003f, 0xedee, 0xe889, 0x003f, 0x003f, 0x003f, 0xe064, 0x003f, 0x003f, 0x003f, 0xe068, 0x003f, /* 0x7000 .. 0x70ff */ 0x003f, 0xe066, 0x003f, 0x003f, 0x003f, 0xedef, 0x003f, 0xedf0, 0x003f, 0xe062, 0x003f, 0xe063, 0x003f, 0x003f, 0x003f, 0xe067, 0x003f, 0xe065, 0x003f, 0x003f, 0x003f, 0x956d, 0x003f, 0x003f, 0xe06d, 0x003f, 0xe06a, 0xe069, 0x003f, 0xe06c, 0x93d2, 0xe06e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9295, 0x91eb, 0xedf1, 0x003f, 0x003f, 0x003f, 0x90a3, 0x003f, 0x003f, 0x003f, 0xe06f, 0x003f, 0xe071, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe070, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ff3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe072, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe073, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89ce, 0x003f, 0x003f, 0x003f, 0x9394, 0x8a44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b84, 0x003f, 0x003f, 0x003f, 0x8edc, 0x8dd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf2, 0x003f, 0x003f, 0x003f, 0x9846, 0x9086, 0x003f, 0x003f, 0x003f, 0x898a, 0x003f, 0x003f, 0x003f, 0xe075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe074, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf3, 0xe078, 0x9259, 0xe07b, 0xe076, 0x003f, 0x003f, 0x003f, 0xe07a, 0x003f, 0x003f, 0x003f, 0x003f, 0xe079, 0x935f, 0x88d7, 0xed46, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97f3, 0x003f, 0x003f, 0xe07d, 0x003f, 0x003f, 0x003f, 0x8947, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe080, 0x003f, 0x003f, 0x003f, 0xe07e, 0x003f, 0xe07c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe077, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9642, 0x003f, 0x003f, 0x003f, 0xe082, 0x003f, 0x003f, /* 0x7100 .. 0x71ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xedf5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe081, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x898b, 0x003f, 0x003f, 0x003f, 0x003f, 0xe084, 0x95b0, 0x003f, 0xe083, 0x003f, 0x003f, 0x003f, 0x003f, 0x96b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9152, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf7, 0xedf8, 0x003f, 0x97f9, 0x003f, 0x003f, 0xe08a, 0x003f, 0x90f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe086, 0xe08b, 0x003f, 0x003f, 0x898c, 0x003f, 0x003f, 0xedf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe089, 0x003f, 0x9481, 0xe085, 0xe088, 0x8fc6, 0x003f, 0x94cf, 0x003f, 0x003f, 0xe08c, 0x003f, 0x8ecf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe08f, 0x003f, 0x003f, 0x003f, 0xe087, 0x003f, 0x8c46, 0x003f, 0x003f, 0x003f, 0x003f, 0xe08d, 0x003f, 0x003f, 0x003f, 0x003f, 0x976f, 0xe090, 0x003f, 0x003f, 0x003f, 0xeaa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f6e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe091, 0x003f, 0x003f, 0x003f, 0xe092, 0x003f, 0x003f, 0x003f, 0x003f, 0x944d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe094, 0x003f, 0x003f, 0x003f, 0x003f, 0xe095, 0x003f, 0x003f, 0xedfa, 0x003f, 0x9452, 0x003f, 0x003f, 0x003f, 0x003f, 0x9395, 0xe097, 0x003f, 0x003f, 0x003f, 0x003f, 0xe099, 0x003f, 0x97d3, 0x003f, 0xe096, 0x003f, 0xe098, 0x898d, 0x003f, 0xe093, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a7a, 0xe09a, 0x003f, 0x003f, 0x003f, 0x003f, 0x9187, 0x8e57, 0xe09c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe09b, 0x9043, 0x99d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe09d, 0x003f, 0x003f, 0x003f, 0xe09f, 0x003f, 0xe08e, 0xe09e, 0x003f, 0xedfb, 0xe0a0, /* 0x7200 .. 0x72ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x949a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a1, 0x003f, 0x003f, 0xe0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a4, 0x003f, 0x92dc, 0x003f, 0xe0a6, 0xe0a5, 0x003f, 0x003f, 0xe0a7, 0x003f, 0xe0a8, 0x003f, 0x003f, 0x8edd, 0x9583, 0x003f, 0x003f, 0x003f, 0x96ea, 0xe0a9, 0xe0aa, 0x9175, 0x8ea2, 0xe0ab, 0xe0ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ad, 0x95d0, 0x94c5, 0x003f, 0x003f, 0xe0ae, 0x9476, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0af, 0x89e5, 0x003f, 0x8b8d, 0x003f, 0x96c4, 0x003f, 0x96b4, 0x003f, 0x89b2, 0x9853, 0x003f, 0x003f, 0x003f, 0x003f, 0x9671, 0x003f, 0x95a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90b5, 0x003f, 0xe0b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x93c1, 0x003f, 0x003f, 0x003f, 0x8ca1, 0xe0b1, 0x003f, 0x8dd2, 0xe0b3, 0xe0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b5, 0x003f, 0x003f, 0x003f, 0xe0b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b5d, 0x003f, 0xe0b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ca2, 0x003f, 0x003f, 0x94c6, 0x003f, 0xedfc, 0xe0ba, 0x003f, 0x003f, 0x003f, 0x8ff3, 0x003f, 0x003f, 0xe0b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xee40, 0x003f, 0x003f, 0x003f, 0x8bb6, 0xe0bb, 0xe0bd, 0x003f, 0xe0bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0be, 0x003f, 0x8ccf, 0x003f, 0xe0bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x8be7, 0x003f, 0x915f, 0x003f, 0x8d9d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c1, 0xe0c2, 0xe0c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eeb, 0x003f, 0x003f, 0x93c6, 0x8bb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c4, 0x924b, 0xe0c3, 0x003f, 0x003f, 0x9854, 0x9482, 0x003f, 0x003f, /* 0x7300 .. 0x73ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c9, 0xe0c6, 0x003f, 0x003f, 0x003f, 0x96d2, 0xe0c8, 0xe0ca, 0x003f, 0x97c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xee41, 0xe0ce, 0x003f, 0x003f, 0x003f, 0xe0cd, 0x9296, 0x944c, 0x003f, 0x003f, 0x8ca3, 0xe0cc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cb, 0x003f, 0x9750, 0x9751, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0cf, 0x898e, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d96, 0x8e82, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d0, 0xe0d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f62, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d5, 0x003f, 0xe0d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d6, 0x003f, 0x8a6c, 0x003f, 0x003f, 0xe0d8, 0x003f, 0xee43, 0xe0d7, 0x003f, 0xe0da, 0xe0d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cba, 0x003f, 0x003f, 0x97a6, 0x003f, 0x8bca, 0x003f, 0x89a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8be8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8adf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97e6, 0xe0dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0de, 0x003f, 0xee44, 0x003f, 0x003f, 0xe0df, 0x003f, 0x89cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0db, 0xee45, 0x8e58, 0x003f, 0x003f, 0x92bf, 0xe0dd, 0x003f, 0x003f, 0x003f, 0xee48, 0x003f, 0x003f, 0x003f, 0xee46, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e2, 0x003f, 0x8eec, 0x003f, 0x003f, 0xee47, 0x003f, 0xe0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c5d, 0x003f, 0x003f, 0x94c7, 0xe0e1, 0x003f, 0x003f, 0xe0fc, 0x003f, 0x003f, 0x003f, 0xee4a, 0x003f, 0x003f, 0xe0e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cbb, 0x003f, /* 0x7400 .. 0x74ff */ 0x003f, 0x003f, 0x003f, 0x8b85, 0x003f, 0xe0e4, 0x979d, 0xee49, 0x003f, 0x97ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91f4, 0x003f, 0x003f, 0xe0e6, 0xee4b, 0x003f, 0x003f, 0xee4d, 0xee4c, 0x003f, 0x003f, 0x003f, 0xee4e, 0x003f, 0x003f, 0x003f, 0xe0e8, 0x97d4, 0x8bd5, 0x94fa, 0x9469, 0x003f, 0x003f, 0x003f, 0xe0e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0eb, 0x003f, 0xe0ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ea, 0x003f, 0x003f, 0x003f, 0xe0ed, 0x8ce8, 0x896c, 0xe0ef, 0x003f, 0x9090, 0xe0ec, 0x97da, 0x003f, 0xee4f, 0xe0f2, 0xeaa2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f0, 0xe0f3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e5, 0xe0f1, 0x003f, 0x003f, 0x8dba, 0x003f, 0x003f, 0xe0f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x979e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee50, 0x003f, 0xe0f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f7, 0xee51, 0x003f, 0x003f, 0xe0e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ac2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x895a, 0x003f, 0x003f, 0x003f, 0xe140, 0x003f, 0x955a, 0xe141, 0x003f, 0x003f, 0x8aa2, 0xe142, 0x003f, 0xe143, 0x003f, 0x003f, 0x003f, 0x003f, 0xe144, 0x003f, 0xe146, 0xe147, 0xe145, 0x003f, 0x003f, 0x003f, 0x9572, 0xe149, 0xe148, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7500 .. 0x75ff */ 0x003f, 0xee52, 0x003f, 0xe14b, 0xe14a, 0xe14c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe14d, 0xe14f, 0xe14e, 0x003f, 0x003f, 0x8d99, 0x003f, 0xe151, 0x003f, 0xe150, 0x003f, 0x003f, 0x8ac3, 0x003f, 0x9072, 0x003f, 0x935b, 0x003f, 0xe152, 0x90b6, 0x003f, 0x003f, 0x003f, 0x8e59, 0x003f, 0x8999, 0xe153, 0x003f, 0x9770, 0x003f, 0x003f, 0x95e1, 0xe154, 0x003f, 0x003f, 0xed8c, 0x9363, 0x9752, 0x8d62, 0x905c, 0x003f, 0x003f, 0x003f, 0x926a, 0x99b2, 0x003f, 0x92ac, 0x89e6, 0xe155, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe156, 0x003f, 0xe15b, 0x003f, 0x003f, 0xe159, 0xe158, 0x9dc0, 0x8a45, 0xe157, 0x003f, 0x88d8, 0x003f, 0x94a8, 0x003f, 0x003f, 0x94c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x97af, 0xe15c, 0xe15a, 0x927b, 0x90a4, 0x003f, 0x003f, 0x94a9, 0x003f, 0x954c, 0x003f, 0xe15e, 0x97aa, 0x8c6c, 0xe15f, 0x003f, 0xe15d, 0x94d4, 0xe160, 0x003f, 0xe161, 0x003f, 0xee53, 0x88d9, 0x003f, 0x003f, 0x8ff4, 0xe166, 0x003f, 0xe163, 0x93eb, 0xe162, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b45, 0x003f, 0x003f, 0xe169, 0x003f, 0x003f, 0x003f, 0xe164, 0xe165, 0x003f, 0xe168, 0xe167, 0x9544, 0x003f, 0x003f, 0x9161, 0x9160, 0x003f, 0x8b5e, 0x003f, 0x003f, 0xe16a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe16b, 0x003f, 0x003f, 0xe16c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe16e, 0x003f, 0xe16d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8975, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe176, 0x94e6, 0xe170, 0x003f, 0xe172, 0x003f, 0x003f, 0xe174, 0x905d, 0x003f, 0x003f, 0xe175, 0xe173, 0x8ebe, 0x003f, 0x003f, 0x003f, 0xe16f, 0xe171, 0x003f, 0x9561, 0x003f, 0x8fc7, 0x003f, 0x003f, 0xe178, 0x003f, 0x003f, 0xe177, 0x003f, 0x003f, 0x003f, 0x003f, 0xe179, 0x003f, 0x8ea4, 0x8dad, 0x003f, 0x003f, 0x9397, 0xe17a, 0x003f, 0x92c9, 0x003f, 0x003f, 0xe17c, 0x003f, 0x003f, 0x003f, 0x979f, 0xe17b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9189, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe182, 0x003f, 0xe184, 0xe185, 0x9273, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe183, 0x003f, 0xe180, 0x003f, 0xe17d, 0xe17e, /* 0x7600 .. 0x76ff */ 0x003f, 0xe181, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe188, 0x003f, 0xe186, 0x003f, 0xe187, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe189, 0xe18b, 0xe18c, 0xe18d, 0x003f, 0xe18e, 0x003f, 0x003f, 0xe18a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe190, 0x003f, 0x003f, 0x003f, 0xe18f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe191, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97c3, 0x003f, 0x003f, 0x003f, 0xe194, 0xe192, 0xe193, 0x003f, 0x003f, 0x003f, 0x8ae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96fc, 0x003f, 0x003f, 0x003f, 0x95c8, 0x003f, 0xe196, 0x003f, 0x003f, 0x003f, 0xe195, 0x003f, 0x003f, 0x003f, 0x003f, 0xe197, 0xe198, 0x003f, 0x003f, 0x003f, 0x003f, 0xe19c, 0xe199, 0xe19a, 0xe19b, 0x003f, 0xe19d, 0x003f, 0x003f, 0x003f, 0xe19e, 0x003f, 0xe19f, 0x003f, 0x003f, 0x003f, 0xe1a0, 0x003f, 0xe1a1, 0x003f, 0x94ad, 0x936f, 0xe1a2, 0x9492, 0x9553, 0x003f, 0xe1a3, 0x003f, 0xee54, 0xe1a4, 0x9349, 0x003f, 0x8a46, 0x8d63, 0xe1a5, 0x003f, 0x003f, 0xe1a6, 0x003f, 0x003f, 0xe1a7, 0x003f, 0x8e48, 0x003f, 0x003f, 0xe1a9, 0x003f, 0x003f, 0xe1a8, 0x003f, 0x003f, 0xe1aa, 0xe1ab, 0xee57, 0xee55, 0x003f, 0xee56, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee58, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94e7, 0x003f, 0xe1ac, 0x003f, 0x003f, 0x003f, 0xe1ad, 0x003f, 0x003f, 0xea89, 0xe1ae, 0xe1af, 0xe1b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e4d, 0x003f, 0x003f, 0xe1b1, 0x9475, 0x003f, 0x003f, 0x967e, 0x003f, 0x896d, 0x003f, 0x8976, 0x003f, 0x003f, 0xe1b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b4, 0x003f, 0x003f, 0x003f, 0xe1b3, 0x9390, 0x003f, 0x003f, 0x003f, 0x90b7, 0x9f58, 0x003f, 0xe1b5, 0x96bf, 0x003f, 0xe1b6, 0x003f, 0x8ac4, 0x94d5, 0xe1b7, 0x003f, 0xe1b8, 0x003f, 0x003f, 0xe1b9, 0x003f, 0x003f, 0x003f, 0x96da, 0x003f, 0x003f, 0x003f, 0x96d3, 0x003f, 0x92bc, 0x003f, 0x003f, 0x003f, 0x918a, 0x003f, 0x003f, 0xe1bb, 0x003f, 0x003f, 0x8f82, 0x003f, /* 0x7700 .. 0x77ff */ 0x003f, 0x8fc8, 0x003f, 0x003f, 0xe1be, 0x003f, 0x003f, 0xe1bd, 0xe1bc, 0x94fb, 0x003f, 0x8ac5, 0x8ca7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c4, 0x003f, 0x003f, 0xe1c1, 0x905e, 0x96b0, 0x003f, 0x003f, 0x003f, 0xe1c0, 0xe1c2, 0xe1c3, 0x003f, 0x003f, 0xe1bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c5, 0xe1c6, 0x003f, 0x92ad, 0x003f, 0x8ae1, 0x003f, 0x003f, 0x003f, 0x9285, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee5a, 0xe1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c8, 0xe1cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9087, 0x003f, 0x93c2, 0x003f, 0xe1cc, 0x9672, 0x003f, 0xe1c9, 0x003f, 0x003f, 0xe1ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ce, 0xe1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d1, 0x003f, 0x003f, 0xe1d0, 0x003f, 0x003f, 0xe1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d4, 0x003f, 0xe1d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f75, 0x97c4, 0x003f, 0x003f, 0xe1d5, 0x003f, 0x003f, 0x93b5, 0x003f, 0x003f, 0xe1d6, 0x003f, 0x003f, 0xe1d7, 0x003f, 0xe1db, 0xe1d9, 0xe1da, 0x003f, 0xe1d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1de, 0x003f, 0x003f, 0xe1df, 0x96b5, 0xe1e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96ee, 0xe1e1, 0x003f, 0x926d, 0x003f, 0x948a, 0x003f, 0x8be9, 0x003f, 0x003f, 0x003f, 0x925a, 0xe1e2, 0x8bb8, 0x003f, 0x003f, 0x003f, 0x90ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e3, 0x003f, 0x003f, 0x003f, /* 0x7800 .. 0x78ff */ 0x003f, 0x003f, 0x8dbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e5, 0x003f, 0x8ca4, 0x8dd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e7, 0xee5c, 0x003f, 0x003f, 0x003f, 0x9375, 0x8dd4, 0x8b6d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9643, 0x003f, 0x946a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9376, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d7b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee5d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee5e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97b0, 0x8d64, 0x003f, 0x003f, 0x8ca5, 0x003f, 0x003f, 0x94a1, 0x003f, 0xe1eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee5f, 0x003f, 0xe1ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ce9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ec, 0x92f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ef, 0x8a56, 0xe1ea, 0x003f, 0x003f, 0x94e8, 0x003f, 0x894f, 0x003f, 0x8dea, 0x003f, 0x9871, 0x003f, 0x003f, 0xe1ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f0, 0x003f, 0x003f, 0x003f, 0x95c9, 0x003f, 0x90d7, 0xe1f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a6d, 0x003f, 0xe1f9, 0x003f, 0xe1f8, 0x003f, 0x003f, 0x8ea5, 0x003f, 0x003f, 0x003f, 0xe1fa, 0xe1f5, 0x003f, 0x003f, 0x003f, 0xe1fb, 0xe1f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x94d6, 0xe1f4, 0x003f, 0x003f, 0xe1f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe241, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe240, 0x9681, 0x003f, 0x003f, 0x003f, 0xe1fc, 0x003f, 0x003f, 0x88e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe243, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe242, 0x003f, 0x003f, /* 0x7900 .. 0x79ff */ 0x003f, 0x8fca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe244, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9162, 0x003f, 0x003f, 0xe246, 0xe245, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe247, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e6, 0x003f, 0x003f, 0x003f, 0xe1e8, 0xe249, 0xe248, 0x003f, 0x003f, 0x003f, 0xee60, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ea6, 0x003f, 0x97e7, 0x003f, 0x8ed0, 0x003f, 0xe24a, 0x8c56, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b5f, 0x8b46, 0x8e83, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9753, 0x003f, 0x003f, 0xe250, 0x003f, 0xe24f, 0x9163, 0xe24c, 0x003f, 0x003f, 0xe24e, 0x003f, 0x003f, 0x8f6a, 0x905f, 0xe24d, 0xe24b, 0x003f, 0x9449, 0x003f, 0x003f, 0x8fcb, 0x003f, 0x003f, 0x955b, 0x003f, 0x003f, 0x003f, 0x003f, 0x8dd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9398, 0x003f, 0x003f, 0xe251, 0x003f, 0x003f, 0x003f, 0x003f, 0xe252, 0xe268, 0x8bd6, 0x003f, 0x003f, 0x985c, 0x9154, 0x003f, 0x003f, 0x003f, 0x003f, 0xe253, 0x003f, 0x003f, 0x89d0, 0x92f5, 0x959f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee64, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee66, 0x003f, 0xe254, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b9a, 0xe255, 0x003f, 0x003f, 0xe257, 0x003f, 0x003f, 0x003f, 0xe258, 0x003f, 0x9448, 0x003f, 0x003f, 0xe259, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe25a, 0xe25b, 0x003f, 0x003f, 0x8bd7, 0x89d1, 0x93c3, 0x8f47, 0x8e84, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe25c, 0x003f, 0x8f48, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89c8, 0x9562, 0x003f, 0x003f, 0xe25d, 0x003f, 0x003f, 0x94e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9164, 0x003f, 0xe260, 0x003f, 0xe261, 0x9489, 0x003f, 0x9060, 0xe25e, 0x003f, 0x9281, 0x003f, 0x003f, 0xe25f, 0x003f, 0x003f, 0x003f, 0x8fcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88da, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7a00 .. 0x7aff */ 0x8b48, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe262, 0x003f, 0x003f, 0x92f6, 0x003f, 0xe263, 0x90c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96ab, 0x003f, 0x003f, 0x9542, 0xe264, 0xe265, 0x9274, 0x003f, 0x97c5, 0x003f, 0x003f, 0xe267, 0xe266, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eed, 0x003f, 0x003f, 0xe269, 0x88ee, 0x003f, 0x003f, 0x003f, 0x003f, 0xe26c, 0x003f, 0x003f, 0x003f, 0xe26a, 0x89d2, 0x8c6d, 0xe26b, 0x8d65, 0x8d92, 0x003f, 0x95e4, 0xe26d, 0x003f, 0x003f, 0x9673, 0x003f, 0x003f, 0xe26f, 0x003f, 0x003f, 0x003f, 0x90cf, 0x896e, 0x89b8, 0x88aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe26e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe270, 0xe271, 0x8ff5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe272, 0x003f, 0x8a6e, 0x003f, 0x003f, 0x003f, 0x003f, 0xe274, 0x003f, 0x003f, 0x003f, 0x8c8a, 0x003f, 0x8b86, 0x003f, 0x003f, 0xe275, 0x8bf3, 0x003f, 0x003f, 0xe276, 0x003f, 0x90fa, 0x003f, 0x93cb, 0x003f, 0x90de, 0x8df3, 0x003f, 0x003f, 0x003f, 0xe277, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9282, 0x918b, 0x003f, 0xe279, 0xe27b, 0xe278, 0xe27a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c41, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe27c, 0x8c45, 0x003f, 0x003f, 0x003f, 0x8b87, 0x9771, 0xe27e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe280, 0x003f, 0x003f, 0x003f, 0x894d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe283, 0x003f, 0x003f, 0x003f, 0x8a96, 0xe282, 0xe281, 0x003f, 0xe285, 0xe27d, 0x003f, 0xe286, 0x97a7, 0x003f, 0xe287, 0x003f, 0xe288, 0x003f, 0xee67, 0x9af2, 0xe28a, 0x003f, 0xe289, 0x003f, 0x003f, 0x003f, 0xe28b, 0xe28c, 0x003f, 0x97b3, 0xe28d, 0x003f, 0xe8ed, 0x8fcd, 0xe28e, 0xe28f, 0x8f76, 0x003f, 0x93b6, 0xe290, 0xee68, 0x003f, 0x003f, 0x9247, 0xee6a, 0x003f, 0xe291, 0x003f, 0x925b, 0xe292, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ba3, 0x003f, 0x995e, 0x927c, 0x8eb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ac6, /* 0x7b00 .. 0x7bff */ 0x003f, 0x003f, 0xe293, 0x003f, 0xe2a0, 0x003f, 0xe296, 0x003f, 0x8b88, 0x003f, 0xe295, 0xe2a2, 0x003f, 0x003f, 0x003f, 0xe294, 0x003f, 0x8fce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe298, 0xe299, 0x003f, 0x934a, 0x003f, 0x003f, 0xe29a, 0x003f, 0x8a7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x9079, 0x9584, 0x003f, 0xe29c, 0x003f, 0x003f, 0x003f, 0x91e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe297, 0x003f, 0xe29b, 0xe29d, 0x003f, 0x003f, 0x8df9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a4, 0x954d, 0x003f, 0x94a4, 0x9399, 0x003f, 0x8bd8, 0xe2a3, 0xe2a1, 0x003f, 0x94b3, 0xe29e, 0x927d, 0x939b, 0x003f, 0x939a, 0x003f, 0x8df4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a6, 0x003f, 0xe2a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ab, 0x003f, 0xe2ac, 0x003f, 0xe2a9, 0xe2aa, 0x003f, 0x003f, 0xe2a7, 0xe2a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe29f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cd, 0x89d3, 0x003f, 0x003f, 0x003f, 0xe2b3, 0x003f, 0xe2b0, 0x003f, 0xe2b5, 0x003f, 0x003f, 0xe2b4, 0x003f, 0x9493, 0x96a5, 0x003f, 0x8e5a, 0xe2ae, 0xe2b7, 0xe2b2, 0x003f, 0xe2b1, 0xe2ad, 0xee6b, 0xe2af, 0x003f, 0x8ac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x925c, 0x003f, 0x003f, 0x90fb, 0x003f, 0x003f, 0x003f, 0x94a0, 0x003f, 0x003f, 0xe2bc, 0x003f, 0x003f, 0x003f, 0x94a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90df, 0xe2b9, 0x003f, 0x003f, 0x94cd, 0x003f, 0xe2bd, 0x95d1, 0x003f, 0x927a, 0x003f, 0xe2b8, 0xe2ba, 0x003f, 0x003f, 0xe2bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2be, 0x003f, 0x003f, 0x8ec2, 0x003f, 0x003f, 0x003f, 0x93c4, 0xe2c3, 0xe2c2, 0x003f, 0x003f, 0xe2bf, 0x003f, 0x003f, 0x003f, 0x9855, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c8, 0x003f, 0x003f, 0xe2cc, 0xe2c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7c00 .. 0x7cff */ 0xe2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2cb, 0x003f, 0x003f, 0x003f, 0xe2c0, 0x99d3, 0xe2c7, 0xe2c1, 0x003f, 0x003f, 0xe2ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d0, 0x003f, 0x8ac8, 0x003f, 0xe2cd, 0x003f, 0x003f, 0x003f, 0xe2ce, 0x003f, 0x003f, 0xe2cf, 0xe2d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d1, 0x94f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d3, 0x97fa, 0x95eb, 0xe2d8, 0x003f, 0x003f, 0xe2d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d4, 0x90d0, 0x003f, 0xe2d7, 0xe2d9, 0x003f, 0x003f, 0x003f, 0xe2d6, 0x003f, 0xe2dd, 0x003f, 0xe2da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2db, 0xe2c4, 0x003f, 0x003f, 0x003f, 0xe2dc, 0xe2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95c4, 0x003f, 0xe2e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96e0, 0x003f, 0x003f, 0x8bcc, 0x8c48, 0xe2e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95b2, 0x003f, 0x9088, 0x003f, 0x96ae, 0x003f, 0x003f, 0xe2e2, 0x003f, 0x97b1, 0x003f, 0x003f, 0x9494, 0x003f, 0x9165, 0x9453, 0x003f, 0x003f, 0x8f6c, 0x003f, 0x003f, 0x003f, 0x88be, 0x003f, 0xe2e7, 0xe2e5, 0x003f, 0xe2e3, 0x8a9f, 0x003f, 0x8fcf, 0xe2e8, 0x003f, 0x003f, 0xe2e6, 0x003f, 0xe2e4, 0xe2ec, 0x003f, 0x003f, 0xe2eb, 0xe2ea, 0xe2e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ed, 0x003f, 0x003f, 0x003f, 0xe2ee, 0x90b8, 0x003f, 0xe2ef, 0x003f, 0xe2f1, 0x003f, 0x003f, 0xe2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cd0, 0x003f, 0x003f, 0x003f, 0x9157, 0x003f, 0x003f, 0x003f, 0xe2f3, 0x003f, 0x003f, 0x003f, 0x939c, 0x003f, 0xe2f2, 0x003f, 0x003f, 0x003f, 0xe2f4, 0x003f, 0x95b3, 0x918c, 0x8d66, 0x003f, 0xe2f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x97c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f7, 0x003f, 0x003f, 0xe2f8, 0x003f, 0xe2f9, 0x003f, 0xe2fa, 0x003f, 0x8e85, 0x003f, 0xe2fb, 0x8c6e, 0x003f, 0x003f, 0x8b8a, 0x003f, /* 0x7d00 .. 0x7dff */ 0x8b49, 0x003f, 0xe340, 0x003f, 0x96f1, 0x8d67, 0xe2fc, 0x003f, 0x003f, 0x003f, 0xe343, 0x96e4, 0x003f, 0x945b, 0x003f, 0x003f, 0x9552, 0x003f, 0x003f, 0x003f, 0x8f83, 0xe342, 0x003f, 0x8ed1, 0x8d68, 0x8e86, 0x8b89, 0x95b4, 0xe341, 0x003f, 0x003f, 0x003f, 0x9166, 0x9661, 0x8df5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e87, 0x92db, 0x003f, 0xe346, 0x97dd, 0x8dd7, 0x003f, 0xe347, 0x9061, 0x003f, 0xe349, 0x003f, 0x003f, 0x003f, 0x8fd0, 0x8dae, 0x003f, 0x003f, 0x003f, 0x003f, 0xe348, 0x003f, 0x003f, 0x8f49, 0x8cbc, 0x9167, 0xe344, 0xe34a, 0x003f, 0xee6d, 0x003f, 0x003f, 0xe345, 0x8c6f, 0x003f, 0xe34d, 0xe351, 0x8c8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe34c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe355, 0xee6e, 0x003f, 0x8d69, 0x003f, 0x003f, 0x978d, 0x88ba, 0xe352, 0x003f, 0x003f, 0x8b8b, 0x003f, 0xe34f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe350, 0x003f, 0x003f, 0x939d, 0xe34e, 0xe34b, 0x003f, 0x8a47, 0x90e2, 0x003f, 0x003f, 0x8ca6, 0x003f, 0x003f, 0x003f, 0xe357, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe354, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe356, 0x003f, 0x003f, 0x003f, 0xe353, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c70, 0x91b1, 0xe358, 0x918e, 0x003f, 0x003f, 0xe365, 0xee70, 0x003f, 0xe361, 0xe35b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe35f, 0x8ef8, 0x88db, 0xe35a, 0xe362, 0xe366, 0x8d6a, 0x96d4, 0x003f, 0x92d4, 0xe35c, 0x003f, 0xee6f, 0xe364, 0x003f, 0xe359, 0x925d, 0x003f, 0xe35e, 0x88bb, 0x96c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe35d, 0x003f, 0x003f, 0x8bd9, 0x94ea, 0x003f, 0x003f, 0x003f, 0x918d, 0x003f, 0x97ce, 0x8f8f, 0x003f, 0x003f, 0xe38e, 0xee71, 0x003f, 0xe367, 0x003f, 0x90fc, 0x003f, 0xe363, 0xe368, 0xe36a, 0x003f, 0x92f7, 0xe36d, 0x003f, 0x003f, 0xe369, 0x003f, 0x003f, 0x003f, 0x95d2, 0x8ac9, 0x003f, 0x003f, 0x96c9, 0x003f, 0x003f, 0x88dc, 0x003f, 0x003f, 0xe36c, 0x003f, 0x97fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe36b, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7e00 .. 0x7eff */ 0x003f, 0x898f, 0x003f, 0x003f, 0x93ea, 0xe36e, 0x003f, 0x003f, 0x003f, 0xe375, 0xe36f, 0xe376, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe372, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x949b, 0x003f, 0x003f, 0x8ec8, 0xe374, 0x003f, 0xe371, 0xe377, 0xe370, 0x003f, 0x003f, 0x8f63, 0x003f, 0x003f, 0x003f, 0x003f, 0x9644, 0x003f, 0x003f, 0x8f6b, 0x003f, 0x003f, 0xe373, 0xe380, 0x003f, 0x003f, 0xe37b, 0x003f, 0xe37e, 0x003f, 0xe37c, 0xe381, 0xe37a, 0x003f, 0xe360, 0x90d1, 0x003f, 0x003f, 0x94c9, 0x003f, 0xe37d, 0x003f, 0x003f, 0xe378, 0x003f, 0x003f, 0x003f, 0x9140, 0x8c71, 0x003f, 0x8f4a, 0x003f, 0x003f, 0x003f, 0x003f, 0xee72, 0x003f, 0x9044, 0x9155, 0xe384, 0x003f, 0x003f, 0xe386, 0xe387, 0x003f, 0x003f, 0xe383, 0xe385, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe379, 0xe382, 0x003f, 0xe38a, 0xe389, 0x003f, 0x003f, 0x969a, 0x003f, 0x003f, 0x8c4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe388, 0x003f, 0xe38c, 0xe38b, 0xe38f, 0x003f, 0xe391, 0x003f, 0x003f, 0x8e5b, 0xe38d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe392, 0xe393, 0xed40, 0x003f, 0xe394, 0x003f, 0xe39a, 0x935a, 0xe396, 0x003f, 0xe395, 0xe397, 0xe398, 0x003f, 0xe399, 0x003f, 0x003f, 0x003f, 0x003f, 0xe39b, 0xe39c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7f00 .. 0x7fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aca, 0x003f, 0xe39d, 0x003f, 0xe39e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe39f, 0x003f, 0xee73, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a0, 0xe3a1, 0xe3a2, 0x003f, 0xe3a3, 0xe3a4, 0x003f, 0x003f, 0xe3a6, 0xe3a5, 0x003f, 0x003f, 0xe3a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a8, 0xe3a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ac, 0xe3aa, 0xe3ab, 0x8ddf, 0x8c72, 0x003f, 0x003f, 0x9275, 0x003f, 0x94b1, 0x003f, 0x8f90, 0x003f, 0x003f, 0x946c, 0x003f, 0x94eb, 0xe3ad, 0x9ceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ae, 0xe3b0, 0x003f, 0x9785, 0xe3af, 0xe3b2, 0xe3b1, 0x003f, 0x9772, 0x003f, 0xe3b3, 0x003f, 0x94fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b7, 0x003f, 0x003f, 0xe3b6, 0xe3b5, 0x003f, 0x003f, 0xee74, 0x003f, 0xe3b8, 0x8c51, 0x003f, 0x003f, 0x003f, 0x9141, 0x8b60, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3bc, 0xe3b9, 0x003f, 0x003f, 0xe3ba, 0x003f, 0x003f, 0x003f, 0xe3bd, 0x003f, 0xe3be, 0xe3bb, 0x003f, 0x003f, 0x003f, 0x8948, 0x003f, 0x003f, 0x003f, 0x89a5, 0x003f, 0x003f, 0x003f, 0xe3c0, 0xe3c1, 0x003f, 0x003f, 0x003f, 0xe3c2, 0x003f, 0x9782, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f4b, 0x003f, 0xe3c4, 0xe3c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9089, 0xe3c5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c6, 0x003f, 0x003f, 0xe3c7, 0x003f, 0x8ae3, 0x003f, 0x003f, 0x003f, 0x003f, 0x8acb, 0x003f, 0x003f, 0xe3c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c9, 0x003f, 0x967c, 0x9783, 0x003f, 0x003f, 0x003f, /* 0x8000 .. 0x80ff */ 0x9773, 0x9856, 0x003f, 0x8d6c, 0xe3cc, 0x8ed2, 0xe3cb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3cd, 0x8ea7, 0x003f, 0x003f, 0x003f, 0x91cf, 0x003f, 0xe3ce, 0x003f, 0x003f, 0x8d6b, 0x003f, 0x96d5, 0xe3cf, 0xe3d0, 0x003f, 0x003f, 0xe3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ea8, 0x003f, 0x003f, 0x96eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d5, 0x003f, 0x925e, 0x003f, 0xe3d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d7, 0x003f, 0x003f, 0x003f, 0xe3d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d8, 0x003f, 0x003f, 0x003f, 0x90b9, 0x003f, 0xe3d9, 0x003f, 0xe3da, 0x003f, 0x003f, 0x003f, 0x95b7, 0xe3db, 0x003f, 0x918f, 0xe3dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97fc, 0xe3e0, 0x003f, 0xe3df, 0xe3de, 0x92ae, 0x003f, 0xe3e1, 0x9045, 0x003f, 0xe3e2, 0x003f, 0x003f, 0x003f, 0xe3e3, 0x9857, 0xe3e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e5, 0xe3e7, 0xe3e6, 0x94a3, 0x003f, 0x93f7, 0x003f, 0x985d, 0x94a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e9, 0x003f, 0x003f, 0x8fd1, 0x003f, 0x9549, 0x003f, 0xe3ea, 0xe3e8, 0x003f, 0x8acc, 0x003f, 0x003f, 0x003f, 0x8cd2, 0x8e88, 0x003f, 0x003f, 0x94ec, 0x003f, 0x003f, 0x003f, 0x8ca8, 0x9662, 0x003f, 0xe3ed, 0xe3eb, 0x003f, 0x8d6d, 0x003f, 0x8d6e, 0x88e7, 0x003f, 0x8de6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9478, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88dd, 0xe3f2, 0x003f, 0x925f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9477, 0x003f, 0x91d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f4, 0x003f, 0x003f, 0xe3f0, 0xe3f3, 0xe3ee, 0x003f, 0xe3f1, 0x9645, 0x003f, 0x003f, 0x8cd3, 0x003f, 0x003f, 0x88fb, 0xe3ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f6, 0x003f, 0xe3f7, 0x003f, 0x003f, 0x93b7, 0x003f, 0x003f, 0x003f, 0x8bb9, 0x003f, 0x003f, 0x003f, 0xe445, 0x945c, 0x003f, 0x003f, /* 0x8100 .. 0x81ff */ 0x003f, 0x003f, 0x8e89, 0x003f, 0x003f, 0x8bba, 0x90c6, 0x9865, 0x96ac, 0xe3f5, 0x90d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b72, 0xe3f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3fb, 0x003f, 0x9245, 0x003f, 0x945d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92af, 0x003f, 0x003f, 0x003f, 0x003f, 0xe442, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe441, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3fc, 0x003f, 0x003f, 0x9074, 0x003f, 0x9585, 0xe444, 0x003f, 0xe443, 0x8d6f, 0x9872, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe454, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe448, 0xe449, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eee, 0x003f, 0x003f, 0xe447, 0x003f, 0x8d98, 0xe446, 0x003f, 0x003f, 0xe44a, 0x003f, 0x003f, 0x003f, 0x92b0, 0x95a0, 0x9142, 0x003f, 0x003f, 0x003f, 0x003f, 0x91da, 0xe44e, 0x003f, 0xe44f, 0xe44b, 0x003f, 0x003f, 0x003f, 0x003f, 0xe44c, 0x003f, 0xe44d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d70, 0x003f, 0x003f, 0x003f, 0xe455, 0x003f, 0xe451, 0x003f, 0x003f, 0x003f, 0x003f, 0x9586, 0x003f, 0x968c, 0x9547, 0x003f, 0x003f, 0xe450, 0x003f, 0x003f, 0xe453, 0xe452, 0x003f, 0x003f, 0x003f, 0x9663, 0xe456, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe457, 0x003f, 0x003f, 0x9156, 0x003f, 0xe458, 0x003f, 0x003f, 0xe45a, 0x003f, 0xe45e, 0x003f, 0x003f, 0xe45b, 0xe459, 0x945e, 0xe45c, 0x003f, 0xe45d, 0x003f, 0x003f, 0x003f, 0x89b0, 0x003f, 0xe464, 0xe45f, 0x003f, 0x003f, 0x003f, 0xe460, 0x003f, 0x003f, 0x003f, 0xe461, 0x003f, 0x919f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe463, 0xe462, 0xe465, 0x003f, 0x003f, 0x003f, 0x003f, 0xe466, 0xe467, 0x003f, 0x003f, 0x9062, 0x003f, 0x89e7, 0x003f, 0xe468, 0x97d5, 0x003f, 0x8ea9, 0x003f, 0x003f, 0x8f4c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e8a, 0x9276, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe469, 0xe46a, 0x8950, 0x003f, 0xe46b, 0x003f, /* 0x8200 .. 0x82ff */ 0x003f, 0xe46c, 0xe46d, 0x003f, 0x003f, 0xe46e, 0x003f, 0xe46f, 0x8bbb, 0x9da8, 0xe470, 0x003f, 0x90e3, 0xe471, 0x8ec9, 0x003f, 0xe472, 0x003f, 0x98ae, 0x003f, 0x003f, 0x003f, 0xe473, 0x95dc, 0x8ada, 0x003f, 0x003f, 0x9143, 0x8f77, 0x003f, 0x9591, 0x8f4d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe474, 0x8d71, 0xe475, 0x94ca, 0x003f, 0xe484, 0x003f, 0x003f, 0x003f, 0x003f, 0xe477, 0x003f, 0x91c7, 0x9495, 0x8cbd, 0xe476, 0x9144, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe478, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe47a, 0xe479, 0xe47c, 0x003f, 0x003f, 0xe47b, 0x003f, 0xe47d, 0x003f, 0x003f, 0xe480, 0x003f, 0xe47e, 0x003f, 0x8acd, 0x003f, 0xe481, 0x003f, 0xe482, 0xe483, 0x003f, 0x003f, 0x8daf, 0x97c7, 0x003f, 0xe485, 0x9046, 0x003f, 0x003f, 0x003f, 0x8990, 0xe486, 0xe487, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe488, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88f0, 0x003f, 0xe489, 0x003f, 0x003f, 0x003f, 0x003f, 0xe48a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9587, 0x003f, 0x003f, 0x003f, 0x8ec5, 0x003f, 0xe48c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a48, 0x88b0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe48b, 0xe48e, 0x946d, 0x003f, 0x9063, 0x003f, 0x89d4, 0x003f, 0x9646, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c7c, 0x8bda, 0x003f, 0xe48d, 0x003f, 0x89e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8991, 0xe492, 0x97e8, 0x91db, 0x003f, 0x003f, 0x9563, 0x003f, 0xe49e, 0x003f, 0x89d5, 0xe49c, 0x003f, 0xe49a, 0xe491, 0x003f, 0xe48f, 0x003f, 0xe490, 0x003f, 0x8ee1, 0x8bea, 0x9297, 0x003f, 0x003f, 0x003f, 0x93cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8970, 0x003f, 0xe494, 0xe493, 0x003f, 0x003f, 0x003f, 0x003f, 0xe499, 0xe495, 0xe498, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8300 .. 0x83ff */ 0x003f, 0xee76, 0x96ce, 0xe497, 0x89d6, 0x8a9d, 0xe49b, 0x003f, 0x003f, 0xe49d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c73, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a1, 0xe4aa, 0xe4ab, 0x003f, 0x003f, 0x003f, 0x88a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ef, 0x003f, 0x003f, 0xe4a9, 0x003f, 0x003f, 0x003f, 0xe4a8, 0x003f, 0xe4a3, 0xe4a2, 0x003f, 0xe4a0, 0xe49f, 0x9283, 0x003f, 0x91f9, 0xe4a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a7, 0x003f, 0x003f, 0x003f, 0x9190, 0x8c74, 0x003f, 0x003f, 0x003f, 0x003f, 0x8960, 0xe4a6, 0x003f, 0x8d72, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9191, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee77, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b8, 0x003f, 0xe4b9, 0x003f, 0x89d7, 0x003f, 0x003f, 0x003f, 0x89ac, 0xe4b6, 0x003f, 0x003f, 0xee78, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ac, 0x003f, 0xe4b4, 0x003f, 0xe4bb, 0xe4b5, 0x003f, 0x003f, 0x003f, 0xe4b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe496, 0x003f, 0x003f, 0xe4b1, 0x003f, 0x003f, 0x003f, 0xe4ad, 0x003f, 0x003f, 0x003f, 0x8ace, 0xe4af, 0xe4ba, 0x003f, 0xe4b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4bc, 0x003f, 0xe4ae, 0x949c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9789, 0x003f, 0x003f, 0x003f, 0xe4b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cd, 0x003f, 0x003f, 0x003f, 0xe4c5, 0x003f, 0x003f, 0x003f, 0x909b, 0x003f, 0xee79, 0x003f, 0x003f, 0x8b65, 0x003f, 0x8bdb, 0x003f, 0xe4c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x89d9, 0x003f, 0x003f, 0x8fd2, 0x003f, 0xe4c3, 0x003f, 0x003f, 0x003f, 0x8dd8, 0x003f, 0x003f, 0x9370, 0xe4c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95ec, 0x003f, 0xe4bf, 0x003f, 0x003f, 0x003f, 0x89d8, 0x8cd4, 0x9548, 0xe4c9, 0x003f, 0xe4bd, 0x003f, 0xee7a, 0xe4c6, 0x003f, 0x003f, 0x003f, 0xe4d0, 0x003f, 0xe4c1, 0x003f, 0x003f, /* 0x8400 .. 0x84ff */ 0x003f, 0x003f, 0x003f, 0xe4c2, 0x93b8, 0x003f, 0x003f, 0xe4c7, 0x003f, 0x003f, 0x003f, 0xe4c4, 0x9647, 0xe4ca, 0x88de, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cc, 0x003f, 0xe4cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x948b, 0xe4d2, 0x003f, 0xe4dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a9e, 0x003f, 0x003f, 0x003f, 0xe4e0, 0x003f, 0x003f, 0xe4ce, 0x003f, 0x003f, 0x003f, 0xe4d3, 0x978e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4dc, 0x003f, 0xee7b, 0x9774, 0x003f, 0x003f, 0x003f, 0x003f, 0x97a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9298, 0x003f, 0x003f, 0x003f, 0x8a8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9592, 0xe4e2, 0x939f, 0x003f, 0x003f, 0x88af, 0x003f, 0x003f, 0xe4db, 0x003f, 0xe4d7, 0x9192, 0xe4d1, 0xe4d9, 0xe4de, 0x003f, 0x944b, 0x003f, 0x003f, 0x003f, 0x88a8, 0x003f, 0xe4d6, 0x003f, 0xe4df, 0x9598, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4da, 0x003f, 0xe4d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f4e, 0x003f, 0x003f, 0x003f, 0x8eaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x96d6, 0x003f, 0x003f, 0x9566, 0x003f, 0x003f, 0xe4e5, 0x003f, 0xe4ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a97, 0x003f, 0xee7c, 0x003f, 0x003f, 0x003f, 0x8ff6, 0xe4e3, 0x003f, 0xe4e8, 0x9193, 0x003f, 0x003f, 0xe4e4, 0x003f, 0xe4eb, 0x003f, 0x003f, 0x927e, 0x003f, 0xe4ec, 0x003f, 0x003f, 0x9775, 0xe4e1, 0x8a57, 0x003f, 0xe4e7, 0x003f, 0x003f, 0xe4ea, 0x96aa, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ed, 0x003f, 0x003f, 0xe4e6, 0xe4e9, 0x003f, 0xed44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9648, 0x003f, 0x9840, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f8, 0x003f, 0x003f, 0xe4f0, /* 0x8500 .. 0x85ff */ 0x8ec1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cc, 0x003f, 0x96a0, 0xe4f7, 0xe4f6, 0x003f, 0xe4f2, 0xe4f3, 0x003f, 0x8955, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f5, 0x003f, 0xe4ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x92d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f4, 0x88fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95c1, 0x003f, 0x003f, 0xe4f9, 0xe540, 0x003f, 0x94d7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4fc, 0x8fd4, 0x8ec7, 0xe542, 0x003f, 0x003f, 0x8bbc, 0x003f, 0x003f, 0x003f, 0x003f, 0xee7d, 0x003f, 0xe543, 0x003f, 0x9599, 0xe4fb, 0xee7e, 0xe4d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x986e, 0x93a0, 0x9593, 0xee80, 0x003f, 0xe54a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe550, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe551, 0x003f, 0xe544, 0x003f, 0x003f, 0x003f, 0x9496, 0x003f, 0x003f, 0xe54e, 0xe546, 0x003f, 0xe548, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe552, 0xe547, 0x003f, 0x003f, 0xe54b, 0x003f, 0x003f, 0x8992, 0x003f, 0x93e3, 0x003f, 0xe54c, 0xe54f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe545, 0x003f, 0x9145, 0x003f, 0xe549, 0x8e46, 0x9064, 0x8c4f, 0x96f2, 0x003f, 0x96f7, 0x8f92, 0xee82, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe556, 0xe554, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x986d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe553, 0x003f, 0x003f, 0x003f, 0x9795, 0x003f, 0xe555, 0xe557, 0x003f, 0x003f, 0x003f, 0x003f, 0xe558, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe55b, 0xe559, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93a1, 0xe55a, 0x003f, 0x003f, 0x003f, 0x94cb, 0xe54d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f93, 0x003f, 0xe55c, 0xe561, 0x9194, 0x003f, 0x003f, 0xe560, 0x003f, /* 0x8600 .. 0x86ff */ 0x003f, 0x003f, 0xe541, 0x003f, 0x003f, 0x003f, 0xe562, 0x9168, 0x003f, 0x003f, 0xe55d, 0xe55f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe55e, 0x003f, 0x003f, 0x9f50, 0x9f41, 0x003f, 0x003f, 0xe564, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe563, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9796, 0x003f, 0xe1ba, 0xe565, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe566, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe567, 0x8cd5, 0x003f, 0x8b73, 0x003f, 0x003f, 0x003f, 0xe569, 0x997c, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b95, 0x003f, 0x97b8, 0x003f, 0x8bf1, 0xe56a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe56b, 0x003f, 0x003f, 0x003f, 0x928e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe56c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93f8, 0x003f, 0x88b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89e1, 0xe571, 0xe572, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe56d, 0x003f, 0x8e5c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe56e, 0x9461, 0x003f, 0x003f, 0x003f, 0x003f, 0xe56f, 0xe570, 0xe57a, 0x003f, 0x003f, 0x003f, 0xe574, 0xe577, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe573, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe575, 0x003f, 0xe576, 0x8ed6, 0x003f, 0xe578, 0x003f, 0x9260, 0x003f, 0x8c75, 0x8a61, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe57b, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a5e, 0x003f, 0xe581, 0x003f, 0x003f, 0xe57c, 0xe580, 0x003f, 0x003f, 0x003f, 0x003f, 0x94b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe57d, 0x003f, 0x003f, 0xe57e, 0x9567, 0x94d8, 0xe582, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91fb, 0xe58c, 0x003f, 0xe588, 0x003f, 0x003f, 0x89e9, 0x003f, /* 0x8700 .. 0x87ff */ 0xe586, 0x003f, 0x9649, 0xe587, 0x003f, 0x003f, 0xe584, 0x003f, 0xe585, 0xe58a, 0xe58d, 0x003f, 0x003f, 0xe58b, 0x003f, 0x003f, 0x003f, 0xe589, 0xe583, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9277, 0x003f, 0xe594, 0x003f, 0x96a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe592, 0x003f, 0x003f, 0x003f, 0xe593, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe58e, 0x003f, 0x003f, 0xe590, 0x003f, 0x003f, 0x003f, 0xe591, 0x003f, 0x003f, 0x003f, 0xe58f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90e4, 0x003f, 0x9858, 0xe598, 0x003f, 0xe599, 0x003f, 0x003f, 0x003f, 0x003f, 0xe59f, 0x003f, 0x9049, 0x003f, 0xe59b, 0x003f, 0xe59e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe596, 0xe595, 0x003f, 0x003f, 0xe5a0, 0x003f, 0x003f, 0x89da, 0x003f, 0xe59c, 0x003f, 0xe5a1, 0x003f, 0x003f, 0x003f, 0xe59d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe59a, 0x003f, 0x92b1, 0x003f, 0xe597, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9488, 0x003f, 0x003f, 0xe5a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x975a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a4, 0x003f, 0x003f, 0xe5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ac, 0x003f, 0x003f, 0x003f, 0xe5a6, 0x003f, 0x003f, 0x003f, 0xe5ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9786, 0xe5b1, 0x003f, 0xe5a8, 0x003f, 0x003f, 0xe5a9, 0x003f, 0x003f, 0x003f, 0xe5ad, 0x003f, 0xe5b0, 0xe5af, 0x003f, 0x003f, 0x003f, 0xe5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5aa, 0x003f, 0xe5bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b2, 0x003f, 0x003f, 0xe5b3, 0x003f, 0x003f, 0x003f, 0xe5b8, 0xe5b9, 0x003f, 0x8a49, 0x003f, 0x8b61, 0x003f, 0x003f, 0xe5b7, 0x003f, /* 0x8800 .. 0x88ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a2, 0x003f, 0xee85, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b6, 0xe5ba, 0xe5b5, 0x003f, 0xe5bc, 0x003f, 0x003f, 0x003f, 0xe5be, 0xe5bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c0, 0xe5bf, 0xe579, 0x003f, 0x003f, 0x003f, 0xe5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c2, 0x003f, 0x003f, 0xe5c3, 0x003f, 0xe5c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c8c, 0x003f, 0xe5c7, 0x003f, 0xe5c6, 0x003f, 0x8f4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d73, 0x9fa5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c8, 0x8f70, 0x003f, 0x003f, 0x003f, 0x8a58, 0x003f, 0xe5c9, 0x003f, 0x8971, 0x003f, 0x8fd5, 0xe5ca, 0x003f, 0x003f, 0x8d74, 0xe5cb, 0x88df, 0x003f, 0x003f, 0x003f, 0x003f, 0x955c, 0x003f, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x908a, 0x003f, 0xe5d3, 0x003f, 0x003f, 0xe5d0, 0x003f, 0x928f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d1, 0xe5ce, 0x8bdc, 0x003f, 0xe5cd, 0xe5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c55, 0x003f, 0x003f, 0x91dc, 0x003f, 0xe5da, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d6, 0x003f, 0x003f, 0x003f, 0x91b3, 0xe5d5, 0x003f, 0xe5d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cf, 0x003f, 0x003f, 0x003f, 0xe5d9, 0x003f, 0xe5db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ed, 0x003f, 0x003f, 0xe5d7, 0x003f, 0xe5dc, 0xe5de, 0x003f, 0x003f, 0x8cd1, 0xe5d2, 0x003f, 0x88bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5dd, 0x003f, 0x8dd9, 0x97f4, 0xe5df, 0xe5e0, 0x9195, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97a0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e1, 0x9754, 0x003f, 0x003f, 0xe5e2, 0xe5e3, 0x003f, 0x003f, 0x95e2, 0xe5e4, 0x003f, 0x8dbe, 0x003f, 0x97a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ea, 0x8fd6, 0xe5e8, 0xee86, 0x003f, 0x003f, 0x9787, 0xe5e5, 0x003f, 0x003f, 0xe5e7, 0x90bb, 0x909e, 0x003f, /* 0x8900 .. 0x89ff */ 0x003f, 0x003f, 0xe5e6, 0x003f, 0xe5eb, 0x003f, 0x003f, 0x95a1, 0x003f, 0x003f, 0xe5ed, 0x003f, 0xe5ec, 0x003f, 0x003f, 0x003f, 0x8a8c, 0x003f, 0x964a, 0xe5ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed41, 0xe5fa, 0xe5f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f2, 0xe5f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f7, 0x003f, 0xe5f8, 0x003f, 0x003f, 0xe5f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f4, 0x003f, 0xe5ef, 0xe5f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f9, 0xe8b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5fc, 0x8bdd, 0xe5fb, 0x003f, 0x003f, 0x003f, 0xe641, 0x003f, 0xe640, 0x003f, 0x003f, 0x003f, 0xe643, 0x003f, 0x003f, 0xe642, 0x003f, 0xe644, 0x003f, 0x003f, 0x8f50, 0x003f, 0xe645, 0x003f, 0x003f, 0xe646, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe647, 0x90bc, 0x003f, 0x9776, 0x003f, 0xe648, 0x003f, 0x003f, 0x95a2, 0x9465, 0xe649, 0x003f, 0xe64a, 0x8ca9, 0x003f, 0x003f, 0x003f, 0x8b4b, 0x003f, 0x003f, 0x003f, 0xe64b, 0x003f, 0x003f, 0x8e8b, 0x9460, 0xe64c, 0x003f, 0x8a6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe64d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe64f, 0x9797, 0x003f, 0xe64e, 0x9065, 0x003f, 0xe650, 0x003f, 0x003f, 0xe651, 0x003f, 0x003f, 0xe652, 0x8acf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe653, 0x003f, 0x003f, 0xe654, 0x003f, 0xe655, 0xe656, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe657, 0x003f, 0xe658, 0xe659, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89f0, 0x003f, 0x003f, 0x9047, 0xe65a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe65b, 0x003f, 0x003f, 0x003f, 0xe65c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8a00 .. 0x8aff */ 0x8cbe, 0x003f, 0x92f9, 0xe65d, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c76, 0x003f, 0x9075, 0x003f, 0xe660, 0x003f, 0x93a2, 0x003f, 0xe65f, 0x003f, 0xee87, 0x8c50, 0x003f, 0x003f, 0xe65e, 0x91f5, 0x8b4c, 0x003f, 0x003f, 0xe661, 0x003f, 0xe662, 0x003f, 0x8fd7, 0x003f, 0x003f, 0x003f, 0x8c8d, 0x003f, 0xe663, 0x003f, 0x003f, 0x003f, 0x003f, 0x964b, 0x003f, 0x003f, 0x90dd, 0x003f, 0x003f, 0x003f, 0x8b96, 0x003f, 0x96f3, 0x9169, 0x003f, 0xe664, 0xee88, 0x003f, 0x003f, 0x9066, 0x9290, 0x8fd8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe665, 0x003f, 0x003f, 0x003f, 0x003f, 0xe668, 0x003f, 0xe669, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8dbc, 0x91c0, 0xe667, 0x003f, 0x8fd9, 0x955d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe666, 0x003f, 0x003f, 0x8e8c, 0x003f, 0x8972, 0x003f, 0xe66d, 0x8c77, 0x003f, 0x003f, 0x8e8e, 0x003f, 0x003f, 0x8e8d, 0x003f, 0x986c, 0xe66c, 0xe66b, 0x9146, 0x003f, 0x8b6c, 0x9862, 0x8a59, 0x8fda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee89, 0x003f, 0x003f, 0xe66a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe66f, 0x003f, 0xe670, 0xe66e, 0x003f, 0x8cd6, 0x003f, 0x975f, 0x003f, 0x003f, 0x8e8f, 0x9446, 0x003f, 0x003f, 0x003f, 0xe673, 0x003f, 0x90be, 0x003f, 0x9261, 0x003f, 0x003f, 0x9755, 0x003f, 0xe676, 0x003f, 0x003f, 0x003f, 0x8cea, 0x003f, 0x90bd, 0xe672, 0x003f, 0xe677, 0x8ceb, 0xe674, 0xe675, 0xee8a, 0xe671, 0x003f, 0x003f, 0x003f, 0x90e0, 0x93c7, 0x003f, 0x003f, 0x924e, 0x003f, 0x89db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ee, 0x003f, 0x003f, 0x8b62, 0x003f, 0xee8b, 0x92b2, 0x003f, 0x003f, 0xe67a, 0x003f, 0xe678, 0x003f, 0x003f, 0x926b, 0x003f, 0x003f, 0x003f, 0x90bf, 0x8ad0, 0xe679, 0x003f, 0x907a, 0x003f, 0x003f, 0x97c8, 0x003f, 0x003f, 0x003f, 0x985f, 0x003f, 0x003f, 0x003f, 0xe67b, 0xe687, 0x92b3, 0x003f, 0xe686, 0xee8c, 0xe683, 0xe68b, 0xe684, 0x003f, 0xe680, 0x003f, 0x92fa, 0xe67e, 0x003f, 0x003f, 0x003f, 0xe67c, 0x003f, 0x9740, 0x8e90, 0x003f, 0x003f, 0xe681, 0x003f, 0xe67d, 0x003f, 0x003f, 0xee8e, 0xe685, 0x8f94, 0x003f, 0x8cbf, 0x003f, 0x003f, 0x003f, 0x91f8, 0x003f, /* 0x8b00 .. 0x8bff */ 0x9664, 0x8979, 0x88e0, 0x003f, 0x93a3, 0x003f, 0x003f, 0xe689, 0x003f, 0x003f, 0x003f, 0x003f, 0xe688, 0x003f, 0x93e4, 0x003f, 0xe68d, 0x003f, 0x003f, 0x003f, 0xe682, 0x003f, 0xe68c, 0xe68e, 0x003f, 0x8caa, 0xe68a, 0x8d75, 0x003f, 0x8ed3, 0x003f, 0x003f, 0xe68f, 0x9777, 0x003f, 0x003f, 0x003f, 0x003f, 0xe692, 0x003f, 0xe695, 0x003f, 0x003f, 0xe693, 0x9554, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe690, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bde, 0x003f, 0x003f, 0x003f, 0x003f, 0xe694, 0x003f, 0x003f, 0xe696, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe69a, 0x003f, 0x003f, 0xe697, 0x003f, 0xe699, 0xe698, 0x003f, 0x003f, 0x003f, 0xee8f, 0x003f, 0x003f, 0xe69b, 0x003f, 0x8eaf, 0x003f, 0xe69d, 0xe69c, 0x9588, 0x003f, 0x003f, 0xe69f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c78, 0x003f, 0x003f, 0x003f, 0x003f, 0xe69e, 0xe6a0, 0x003f, 0x003f, 0xe6a1, 0x8b63, 0xe3bf, 0x8ff7, 0x003f, 0xe6a2, 0x003f, 0x003f, 0x8cec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a3, 0x003f, 0xee90, 0xe6a4, 0x003f, 0x003f, 0x8e5d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9dcc, 0x003f, 0xe6a5, 0x003f, 0xe6a6, 0x003f, 0x8f51, 0x003f, 0xe6a7, 0xe6a8, 0x003f, 0x003f, 0xe6a9, 0x003f, 0x003f, 0xe6aa, 0xe6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8c00 .. 0x8cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x924a, 0x003f, 0x003f, 0xe6ac, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ae, 0x003f, 0xe6ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x93a4, 0x003f, 0xe6af, 0x003f, 0x964c, 0x003f, 0xe6b0, 0x003f, 0xe6b1, 0x003f, 0xe6b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x93d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fdb, 0xe6b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d8b, 0x98ac, 0xe6b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b6, 0x955e, 0xe6b7, 0x003f, 0xe6bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b8, 0x003f, 0x003f, 0xe6ba, 0x003f, 0x003f, 0x003f, 0xe6b9, 0xe6bb, 0x003f, 0x9665, 0xe6bc, 0xe6bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6be, 0x003f, 0x003f, 0x003f, 0xe6c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a4c, 0x92e5, 0x003f, 0x9589, 0x8de0, 0x8d76, 0x003f, 0x003f, 0x003f, 0x003f, 0x956e, 0x89dd, 0x94cc, 0xe6c3, 0x8ad1, 0x90d3, 0xe6c2, 0xe6c7, 0x9299, 0x96e1, 0x003f, 0xe6c5, 0xe6c6, 0x8b4d, 0x003f, 0xe6c8, 0x9483, 0x91dd, 0x003f, 0x003f, 0x94ef, 0x935c, 0xe6c4, 0x003f, 0x9666, 0x89ea, 0xe6ca, 0x9847, 0x92c0, 0x9864, 0x003f, 0x003f, 0x8e91, 0xe6c9, 0x003f, 0x91af, 0x003f, 0x003f, 0xe6da, 0x9147, 0x003f, 0x003f, 0x93f6, 0x003f, 0x956f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cd, 0x8e5e, 0x8e92, 0x003f, 0x8fdc, 0x003f, 0x9485, 0x003f, 0x8cab, 0xe6cc, 0xe6cb, 0x003f, 0x958a, 0x003f, 0x003f, 0x003f, 0x8ebf, 0x003f, 0x003f, 0x9371, 0x003f, 0x003f, 0xee91, 0x003f, 0x003f, 0x003f, 0xee92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cf, 0xe6d0, 0x8d77, 0xe6ce, 0x003f, 0x003f, /* 0x8d00 .. 0x8dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d1, 0xe6d2, 0x003f, 0xe6d4, 0x91a1, 0x003f, 0xe6d3, 0x8ae4, 0x003f, 0xe6d6, 0x003f, 0xe6d5, 0xe6d7, 0x003f, 0xee93, 0xe6d9, 0xe6db, 0x003f, 0xe6dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90d4, 0x003f, 0x8ecd, 0xe6dd, 0x003f, 0x003f, 0x003f, 0x8a71, 0x003f, 0xe6de, 0x003f, 0x003f, 0x9196, 0xe6df, 0x003f, 0xe6e0, 0x958b, 0x003f, 0xee94, 0x8b4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e1, 0x003f, 0x003f, 0x003f, 0x92b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x897a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eef, 0x003f, 0x003f, 0x003f, 0x003f, 0x9096, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e5, 0x003f, 0x003f, 0x003f, 0xe6e4, 0x003f, 0x003f, 0x003f, 0xe6e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6eb, 0xe6e9, 0x003f, 0x003f, 0xe6e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e8, 0x003f, 0x003f, 0x003f, 0xe6e7, 0xe6ea, 0x003f, 0x8b97, 0x003f, 0xe6ee, 0x003f, 0x90d5, 0x003f, 0xe6ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cd7, 0x003f, 0xe6ec, 0xe6ed, 0x003f, 0x003f, 0x003f, 0x9848, 0x003f, 0x003f, 0x003f, 0x92b5, 0x003f, 0x9148, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f0, 0x003f, 0x003f, 0xe6f3, /* 0x8e00 .. 0x8eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f1, 0xe6f2, 0x9778, 0x003f, 0x003f, 0x003f, 0x003f, 0x93a5, 0xe6f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f4, 0xe6f5, 0xe6f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe748, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fa, 0x003f, 0x003f, 0x003f, 0xe6fb, 0xe6f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f8, 0x003f, 0x92fb, 0x003f, 0x003f, 0xe740, 0xe744, 0xe741, 0xe6fc, 0x003f, 0xe742, 0x003f, 0x003f, 0x003f, 0xe743, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74a, 0x003f, 0x003f, 0x003f, 0xe745, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90d6, 0xe747, 0x003f, 0x003f, 0xe749, 0xe746, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74c, 0x003f, 0x8f52, 0x003f, 0xe74b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74e, 0x003f, 0x003f, 0xe751, 0xe750, 0x003f, 0xe74f, 0x003f, 0x003f, 0xe753, 0xe752, 0x003f, 0x96f4, 0x003f, 0x003f, 0x003f, 0xe755, 0x003f, 0xe754, 0xe756, 0x003f, 0x003f, 0x003f, 0x003f, 0xe757, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe759, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe758, 0x9067, 0xe75a, 0x003f, 0x003f, 0x8beb, 0xe75b, 0xe75d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe75e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe75f, 0xe75c, 0x003f, 0xe760, 0x003f, 0x8ed4, 0xe761, 0x8b4f, 0x8c52, 0x003f, 0xee96, 0x003f, 0x003f, 0x8cac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe762, 0x003f, 0x003f, 0x003f, 0x93ee, 0x003f, 0x003f, 0x935d, 0xe763, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe766, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8eb2, 0x003f, 0x003f, 0xe765, 0xe764, 0x8c79, 0xe767, 0x003f, /* 0x8f00 .. 0x8fff */ 0x003f, 0x003f, 0x003f, 0x8a72, 0x003f, 0xe769, 0x003f, 0x003f, 0x003f, 0x8dda, 0xe768, 0x003f, 0xe771, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe76b, 0xe76d, 0x95e3, 0xe76a, 0x003f, 0x003f, 0x003f, 0xe76c, 0x003f, 0xe770, 0xe76e, 0x8b50, 0x003f, 0xe76f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe772, 0x003f, 0x003f, 0x9479, 0x97d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f53, 0x003f, 0x003f, 0x003f, 0xe773, 0x003f, 0x003f, 0x003f, 0x003f, 0x9741, 0xe775, 0x003f, 0xe774, 0x003f, 0x003f, 0xe778, 0x9760, 0x003f, 0x003f, 0xe777, 0x003f, 0x8a8d, 0xe776, 0xe77b, 0x003f, 0x003f, 0xe77a, 0x003f, 0x003f, 0xe779, 0x9351, 0xe77c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe77d, 0x003f, 0x003f, 0x003f, 0x003f, 0xe77e, 0x003f, 0x003f, 0x8d8c, 0x003f, 0x8c44, 0xe780, 0xe781, 0xe782, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9068, 0xe783, 0x003f, 0x8eab, 0xe784, 0x003f, 0x003f, 0x003f, 0xe785, 0x003f, 0x003f, 0x003f, 0x999f, 0x999e, 0x003f, 0x003f, 0x003f, 0x003f, 0xe786, 0xe390, 0xe787, 0x9243, 0x904a, 0x945f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe788, 0x003f, 0x003f, 0x95d3, 0x92d2, 0x8d9e, 0x003f, 0x003f, 0x9248, 0x003f, 0x003f, 0x8949, 0x003f, 0x9698, 0x9076, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c7d, 0x003f, 0x003f, 0x8bdf, 0x003f, 0x003f, 0x95d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe789, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe78b, 0x003f, 0x003f, 0xe78a, 0x89de, 0x003f, 0x003f, 0x93f4, 0xe78c, 0x9497, 0x003f, 0x9352, 0x003f, 0xe78d, 0x8f71, 0x003f, 0x003f, 0x003f, 0xe78f, 0x003f, 0x003f, 0x96c0, 0xe79e, 0xe791, 0xe792, 0x003f, 0x003f, 0x92c7, 0x003f, 0x003f, /* 0x9000 .. 0x90ff */ 0x91de, 0x9197, 0x003f, 0x93a6, 0x003f, 0xe790, 0x8b74, 0x003f, 0x003f, 0x003f, 0x003f, 0xe799, 0x003f, 0xe796, 0xe7a3, 0x93a7, 0x9280, 0xe793, 0x003f, 0x92fc, 0x9372, 0xe794, 0xe798, 0x9080, 0x003f, 0x9487, 0x92ca, 0x003f, 0x003f, 0x90c0, 0xe797, 0x91ac, 0x91a2, 0xe795, 0x88a7, 0x9841, 0x003f, 0x003f, 0x003f, 0xe79a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91df, 0x003f, 0x003f, 0x8f54, 0x9069, 0x003f, 0x003f, 0xe79c, 0xe79b, 0x003f, 0x88ed, 0xe79d, 0x003f, 0x003f, 0x954e, 0x003f, 0xe7a5, 0x003f, 0x003f, 0x93d9, 0x908b, 0x003f, 0x003f, 0x9278, 0x003f, 0x8bf6, 0x003f, 0xe7a4, 0x9756, 0x895e, 0x003f, 0x95d5, 0x89df, 0xe79f, 0xe7a0, 0xe7a1, 0xe7a2, 0x93b9, 0x9242, 0x88e1, 0xe7a6, 0x003f, 0xe7a7, 0xeaa1, 0x003f, 0x003f, 0x91bb, 0x003f, 0xe7a8, 0x003f, 0x8993, 0x916b, 0x003f, 0x8cad, 0x003f, 0x9779, 0x003f, 0xee99, 0xe7a9, 0x934b, 0x003f, 0x003f, 0x003f, 0x9198, 0x8ed5, 0xe7aa, 0x003f, 0x003f, 0xe7ad, 0x003f, 0x003f, 0x8f85, 0xe7ab, 0x914a, 0x9149, 0x003f, 0x88e2, 0x003f, 0x97c9, 0xe7af, 0x003f, 0x94f0, 0xe7b1, 0xe7b0, 0xe7ae, 0xe284, 0x8ad2, 0x003f, 0x003f, 0xe78e, 0x003f, 0xe7b3, 0xe7b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b4, 0x003f, 0x9757, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93df, 0x003f, 0x003f, 0x964d, 0x003f, 0xe7b5, 0x003f, 0x8ed7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b6, 0x003f, 0xe7b7, 0x003f, 0x003f, 0x003f, 0xe7b8, 0x003f, 0x003f, 0x9340, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d78, 0x003f, 0x003f, 0x003f, 0x9859, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7bc, 0x003f, 0x003f, 0xee9a, 0x003f, 0x003f, 0x8c53, 0xe7b9, 0x003f, 0xe7ba, 0x003f, 0x003f, 0x003f, 0x9594, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a73, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9758, 0x003f, 0x8bbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9373, 0x003f, 0x003f, /* 0x9100 .. 0x91ff */ 0x003f, 0x003f, 0xe7bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7be, 0x003f, 0x003f, 0xee9c, 0x003f, 0x003f, 0x003f, 0xe7bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9341, 0x003f, 0x003f, 0xe7c1, 0x003f, 0xe7c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93d1, 0xe7c2, 0x8f55, 0x8ede, 0x947a, 0x9291, 0x003f, 0x003f, 0x003f, 0x8ef0, 0x003f, 0x908c, 0x003f, 0xe7c3, 0x003f, 0xe7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x907c, 0xe7c5, 0x003f, 0xe7c6, 0x003f, 0x003f, 0x003f, 0xe7c7, 0x978f, 0x003f, 0x8f56, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c9, 0xe7c8, 0x003f, 0x8d79, 0x003f, 0x8d93, 0x8e5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f86, 0x003f, 0xe7cb, 0x003f, 0xe7ca, 0x003f, 0x91e7, 0x003f, 0x003f, 0x8ced, 0x003f, 0x90c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f58, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7cd, 0x003f, 0x8fdd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d0, 0xe7ce, 0x003f, 0x003f, 0x003f, 0xe7cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d2, 0xe7d1, 0x003f, 0x003f, 0x8ff8, 0x003f, 0xe7d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d4, 0xe7d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x94ce, 0x8dd1, 0x8edf, 0xe7d6, 0x003f, 0xe7d7, 0x97a2, 0x8f64, 0x96ec, 0x97ca, 0xe7d8, 0x8be0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d9, 0xee9f, 0x9342, 0x003f, 0xee9e, 0xe7dc, 0x8a98, 0x906a, 0xeea0, 0xe7da, 0x003f, 0xe7db, 0x003f, 0x92de, 0xeea3, 0xeea4, 0x9674, 0x8bfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeea1, 0xeea2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7de, 0xe7df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7dd, 0x003f, 0x003f, 0xe7e1, /* 0x9200 .. 0x92ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeea5, 0x003f, 0x003f, 0x003f, 0xeea7, 0x003f, 0x003f, 0x93dd, 0x8a62, 0x003f, 0xeea6, 0xe7e5, 0x003f, 0x003f, 0xe7e2, 0xe7e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe86e, 0x003f, 0x003f, 0xe7e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97e9, 0x003f, 0x003f, 0x8cd8, 0x003f, 0xeeae, 0xeea8, 0x003f, 0xeeaa, 0x003f, 0x003f, 0xe7ed, 0xeea9, 0x003f, 0x003f, 0x003f, 0x9353, 0xe7e8, 0x003f, 0x003f, 0xe7eb, 0xe7e9, 0x003f, 0xe7ee, 0x003f, 0x003f, 0xeeab, 0x003f, 0xe7ef, 0xeead, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e7, 0x003f, 0xeeac, 0xe7f4, 0x8994, 0x003f, 0x003f, 0xe7e6, 0x003f, 0x003f, 0x003f, 0x94ab, 0x003f, 0xe7ea, 0x003f, 0x8fde, 0xeeaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d7a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb1, 0xeeb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9667, 0x003f, 0x8be2, 0x003f, 0x003f, 0x8f65, 0x003f, 0x93ba, 0x003f, 0x003f, 0xed43, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x914c, 0x003f, 0xe7f2, 0x003f, 0xe7ec, 0xe7f1, 0x003f, 0x96c1, 0x003f, 0x92b6, 0xe7f3, 0xe7f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x914b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f7, 0x003f, 0xe7f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f5, 0xeeb6, 0x003f, 0x964e, 0xeeba, 0x003f, 0xeeb8, 0x003f, 0xeeb4, 0x003f, 0xeeb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb9, 0x003f, 0x003f, 0x003f, 0x8f9b, 0x003f, 0x003f, 0xeeb3, 0x003f, 0xe7f8, 0x95dd, 0x003f, 0x003f, 0x8973, 0x003f, 0x003f, 0x003f, 0x003f, 0x9565, 0x9292, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b98, 0xed49, 0xe7fa, 0xeebd, 0x8d7c, 0x003f, 0x003f, 0xeec0, /* 0x9300 .. 0x93ff */ 0x003f, 0x003f, 0xeec2, 0x003f, 0x003f, 0x003f, 0x8e4b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f9, 0x908d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x908e, 0xe840, 0xe842, 0x003f, 0x003f, 0xeec1, 0xeebf, 0x003f, 0x8ff9, 0xeebc, 0xe841, 0xe843, 0x003f, 0xeebb, 0x8bd1, 0x003f, 0x9564, 0x003f, 0x003f, 0x8ee0, 0x9842, 0x003f, 0xe7fc, 0x8df6, 0x003f, 0x003f, 0x985e, 0x003f, 0x003f, 0xe845, 0x003f, 0x003f, 0x003f, 0x003f, 0xe844, 0xe846, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fb, 0x003f, 0x003f, 0x003f, 0xed42, 0x003f, 0x003f, 0x93e7, 0x003f, 0x9374, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92d5, 0x003f, 0xe84b, 0xeec4, 0x003f, 0x003f, 0x003f, 0x9262, 0xe847, 0x003f, 0x003f, 0x003f, 0xe848, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c4c, 0x003f, 0xe84a, 0x003f, 0xeec3, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe849, 0x003f, 0x8fdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a99, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe84f, 0x003f, 0x8dbd, 0x9199, 0x003f, 0x003f, 0x92c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec5, 0x003f, 0x003f, 0x8a5a, 0x003f, 0x003f, 0x003f, 0x003f, 0xe84d, 0xe84e, 0x92c1, 0x003f, 0xe84c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe850, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe856, 0x003f, 0x003f, 0xeec6, 0x003f, 0xe859, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe858, 0x934c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe851, 0xe852, 0xe855, 0x003f, 0x003f, 0x003f, 0x003f, 0xe857, 0xeec7, 0x003f, 0x003f, 0x8bbe, 0x003f, 0x003f, 0xe85a, 0xe854, 0x003f, 0x003f, 0xe853, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9400 .. 0x94ff */ 0x003f, 0x003f, 0x003f, 0xe85e, 0x003f, 0x003f, 0x003f, 0xe85f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe860, 0x003f, 0x003f, 0xe85d, 0xe85c, 0x003f, 0x003f, 0x003f, 0x8fe0, 0x93a8, 0xe85b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe864, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe862, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec9, 0x003f, 0x003f, 0x003f, 0xe863, 0xe861, 0x003f, 0x91f6, 0x003f, 0xe865, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe866, 0x003f, 0x003f, 0xe868, 0xeeca, 0x003f, 0x003f, 0xeecb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ad3, 0xe867, 0x96f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe873, 0xe869, 0x003f, 0x003f, 0xe86c, 0x003f, 0xe86a, 0x003f, 0xe86b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe86d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe86f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe870, 0x003f, 0xe871, 0x003f, 0x003f, 0x003f, 0x003f, 0xe874, 0xe872, 0xe875, 0xe877, 0x003f, 0xe876, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9500 .. 0x95ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x96e5, 0x003f, 0xe878, 0x914d, 0x003f, 0x003f, 0x003f, 0xe879, 0x003f, 0x95c2, 0xe87a, 0x8a4a, 0x003f, 0x003f, 0x003f, 0x895b, 0x003f, 0x8ad5, 0xeecc, 0x8ad4, 0xe87b, 0x003f, 0xe87c, 0x003f, 0xe87d, 0xe87e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe880, 0x003f, 0x8ad6, 0x8a74, 0x8d7d, 0x94b4, 0x003f, 0xe882, 0xe881, 0x003f, 0x003f, 0x003f, 0x003f, 0xe883, 0x003f, 0x003f, 0x003f, 0x003f, 0x897b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe886, 0x003f, 0xe885, 0xe884, 0x003f, 0xe887, 0x003f, 0x003f, 0x003f, 0x003f, 0xe88a, 0x003f, 0x003f, 0x003f, 0x88c5, 0x003f, 0x003f, 0xe888, 0x003f, 0xe88c, 0xe88b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe88e, 0xe88d, 0xe88f, 0x003f, 0x93ac, 0x003f, 0x003f, 0x003f, 0xe890, 0x003f, 0x003f, 0x003f, 0x003f, 0xe891, 0xe893, 0x003f, 0x003f, 0xe892, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9600 .. 0x96ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x958c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe894, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe895, 0x003f, 0x8de3, 0x003f, 0x003f, 0x003f, 0xe896, 0xe897, 0x003f, 0x003f, 0x9668, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x916a, 0x003f, 0x003f, 0x003f, 0x88a2, 0x91c9, 0x003f, 0xe898, 0x003f, 0x958d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe89b, 0xe899, 0x8d7e, 0x003f, 0xe89a, 0x8cc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95c3, 0xe89d, 0xe89f, 0xe89e, 0xe8a0, 0x003f, 0x003f, 0x8940, 0x9077, 0x8f9c, 0x8ad7, 0xe8a1, 0x003f, 0x003f, 0x003f, 0x9486, 0x003f, 0xe8a3, 0x003f, 0x003f, 0x003f, 0x8941, 0x003f, 0xe8a2, 0x92c2, 0x003f, 0x97cb, 0x93a9, 0xe89c, 0x97a4, 0x003f, 0x8caf, 0x003f, 0x003f, 0x977a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8bf7, 0x97b2, 0x003f, 0x8c47, 0x003f, 0x91e0, 0xe440, 0x003f, 0xe8a4, 0x8a4b, 0x908f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a75, 0xe8a6, 0x003f, 0xe8a7, 0xe8a5, 0x8c84, 0x003f, 0x8ddb, 0x8fe1, 0xeecf, 0x003f, 0x003f, 0x8942, 0x003f, 0x003f, 0x97d7, 0x003f, 0x003f, 0x003f, 0xe8a9, 0xe7ac, 0x003f, 0xe8a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed0, 0xe8ac, 0xe8aa, 0xe8ab, 0x003f, 0xe8ad, 0x003f, 0xe8ae, 0x97ea, 0xe8af, 0xe8b0, 0x003f, 0x90c7, 0x94b9, 0x003f, 0x003f, 0x003f, 0x909d, 0x8ae5, 0x003f, 0x003f, 0x9759, 0x89eb, 0x8f57, 0x8cd9, 0x003f, 0xe8b3, 0x003f, 0xe8b2, 0x8e93, 0xe8b4, 0xe8b1, 0x003f, 0x003f, 0x8e47, 0x003f, 0x003f, 0x003f, 0xe8b8, 0xe5ab, 0x003f, 0x003f, 0x99d4, 0x003f, 0x9097, 0xe8b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97a3, 0x93ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x894a, 0x003f, 0x90e1, 0x8eb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x95b5, 0x003f, 0x895f, 0x003f, 0x003f, 0x003f, 0x97eb, 0x978b, 0x003f, 0xe8b9, 0x003f, 0x9364, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9700 .. 0x97ff */ 0x8ef9, 0x003f, 0x003f, 0x003f, 0xe8ba, 0x003f, 0xe8bb, 0x906b, 0xe8bc, 0x003f, 0x97ec, 0x003f, 0x003f, 0xe8b7, 0xe8be, 0xe8c0, 0x003f, 0xe8bf, 0x003f, 0xe8bd, 0x003f, 0x003f, 0xe8c1, 0x003f, 0x003f, 0xe8c2, 0x003f, 0x003f, 0x919a, 0x003f, 0x89e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8c3, 0x003f, 0x003f, 0x96b6, 0x003f, 0x003f, 0xe8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8c5, 0x003f, 0x9849, 0xeed1, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e50, 0xe8c6, 0x003f, 0xeed2, 0x003f, 0xe8c7, 0xe8c8, 0x003f, 0x003f, 0x003f, 0xe8cc, 0xeed3, 0xe8c9, 0x003f, 0xe8ca, 0x003f, 0xe8cb, 0xe8cd, 0x003f, 0x003f, 0x003f, 0xeed4, 0x003f, 0xeed5, 0x003f, 0xeed6, 0x90c2, 0x003f, 0x003f, 0xeed7, 0x96f5, 0x003f, 0x003f, 0x90c3, 0x003f, 0x003f, 0xe8ce, 0x003f, 0x94f1, 0x003f, 0xe8cf, 0xea72, 0x96ca, 0x003f, 0xe8d0, 0x003f, 0xe8d1, 0x003f, 0xe8d2, 0x8a76, 0x003f, 0xe8d4, 0x003f, 0x9078, 0x003f, 0x003f, 0x003f, 0xe8d5, 0x003f, 0x003f, 0x8c43, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d6, 0xe8da, 0x003f, 0xe8d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d9, 0x003f, 0x003f, 0x8a93, 0xe8d7, 0xe8db, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8dc, 0x003f, 0x88c6, 0x003f, 0xe8dd, 0xe8de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fe2, 0x003f, 0x003f, 0x003f, 0xe8df, 0x003f, 0x003f, 0x003f, 0x8b66, 0x003f, 0x003f, 0xe8e2, 0x003f, 0x003f, 0xe8e1, 0x003f, 0xe8e0, 0x003f, 0x003f, 0xe691, 0x003f, 0x95da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e3, 0xe8e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e5, 0x003f, 0x003f, 0xe8e6, 0x003f, 0xe8e7, 0x003f, 0x003f, 0xe8e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ad8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ea, 0x9442, 0x003f, 0x003f, 0x003f, 0xe8ec, 0x89b9, 0x003f, 0xe8ef, 0xe8ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x8943, 0x003f, 0x003f, 0x003f, 0x8bbf, /* 0x9800 .. 0x98ff */ 0x003f, 0x95c5, 0x92b8, 0x8da0, 0x003f, 0x8d80, 0x8f87, 0x003f, 0x907b, 0x003f, 0x003f, 0x003f, 0xe8f1, 0x003f, 0x003f, 0xe8f0, 0x9761, 0x8ae6, 0x94d0, 0x93da, 0x003f, 0x003f, 0x003f, 0x909c, 0x97cc, 0x003f, 0x8c7a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f4, 0x003f, 0x003f, 0xe8f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x966a, 0x93aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x896f, 0x003f, 0x003f, 0xe8f5, 0xe8f2, 0x003f, 0x003f, 0x9570, 0x978a, 0xe8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8f9, 0x91e8, 0x8a7a, 0x8a7b, 0xe8f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ae7, 0x8cb0, 0x003f, 0xeed8, 0x8ae8, 0x003f, 0x003f, 0x935e, 0x003f, 0x003f, 0x97de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed9, 0x003f, 0x8cda, 0x003f, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0x003f, 0xe8fb, 0xe8fc, 0xe940, 0x003f, 0xe942, 0xe941, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9597, 0x003f, 0xe943, 0x003f, 0x003f, 0x003f, 0x003f, 0xe944, 0x003f, 0xe945, 0x003f, 0x003f, 0x003f, 0x003f, 0xe946, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe948, 0xe947, 0x003f, 0xe949, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x94f2, 0xe3ca, 0x003f, 0x003f, 0x9048, 0x003f, 0x003f, 0x8b51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe94a, 0x003f, 0xe94b, 0x003f, 0x99aa, 0x9f5a, 0x94d1, 0x003f, 0x003f, 0x88f9, 0x003f, 0x88b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e94, 0x964f, 0x8ffc, 0x003f, /* 0x9900 .. 0x99ff */ 0x003f, 0x003f, 0x003f, 0xe94c, 0x003f, 0x96dd, 0x003f, 0x003f, 0x003f, 0xe94d, 0x977b, 0x003f, 0x8961, 0x003f, 0x003f, 0x003f, 0x8e60, 0x003f, 0xe94e, 0x89ec, 0xe94f, 0x003f, 0x003f, 0x003f, 0xe950, 0x003f, 0x003f, 0x003f, 0x003f, 0xe952, 0xe953, 0x003f, 0xe955, 0xe951, 0x003f, 0x003f, 0xe954, 0x003f, 0x003f, 0xeedc, 0x8ad9, 0x003f, 0x003f, 0x003f, 0xe956, 0x003f, 0xe957, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe958, 0xe959, 0x003f, 0x003f, 0x003f, 0xe95a, 0x003f, 0x003f, 0xe95c, 0x003f, 0x003f, 0x003f, 0xe95b, 0x003f, 0xe95e, 0xe961, 0x003f, 0x003f, 0x003f, 0xe95d, 0xe95f, 0xe960, 0x003f, 0x003f, 0xe962, 0x003f, 0x8bc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ef1, 0xe963, 0xe964, 0x8d81, 0x003f, 0x003f, 0x003f, 0x003f, 0xeede, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe965, 0x003f, 0x003f, 0x8a5d, 0x003f, 0x003f, 0x003f, 0x946e, 0xe966, 0xe967, 0x003f, 0x003f, 0x003f, 0x003f, 0x9279, 0x93e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe968, 0x003f, 0x003f, 0x003f, 0x003f, 0x949d, 0x003f, 0x003f, 0x91ca, 0x8977, 0x8bec, 0x003f, 0x8bed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9293, 0xe96d, 0x8bee, 0x003f, 0x003f, 0x89ed, 0x003f, 0x003f, 0xe96c, 0x003f, 0x003f, 0xe96a, 0x003f, 0xe96b, 0x003f, 0xe969, 0x003f, 0x003f, 0xe977, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe96e, 0xe96f, 0x003f, 0x003f, 0xe970, 0xe971, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe973, 0x003f, 0x003f, 0xe972, 0x003f, 0x003f, 0x003f, 0x8f78, /* 0x9a00 .. 0x9aff */ 0x003f, 0xe974, 0x003f, 0x003f, 0x003f, 0xe976, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b52, 0xe975, 0x003f, 0x003f, 0x919b, 0x8cb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe978, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91cb, 0x003f, 0x003f, 0xe979, 0x003f, 0x003f, 0x003f, 0x003f, 0x93ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe97a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe980, 0x003f, 0xe97d, 0x003f, 0xe97c, 0xe97e, 0x003f, 0xe97b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe982, 0xeedf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe981, 0x003f, 0xe984, 0x003f, 0x003f, 0x8bc1, 0xe983, 0x003f, 0x003f, 0x003f, 0xe985, 0x003f, 0x003f, 0xe986, 0x003f, 0xe988, 0xe987, 0x003f, 0x003f, 0x003f, 0xe989, 0xe98b, 0xe98a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d9c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe98c, 0x003f, 0x003f, 0xe98d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a5b, 0x003f, 0x003f, 0x003f, 0xe98e, 0x003f, 0x003f, 0x003f, 0xe98f, 0x003f, 0x003f, 0x003f, 0x9091, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe990, 0x003f, 0xe991, 0x003f, 0xe992, 0xe993, 0x003f, 0x003f, 0x003f, 0x8d82, 0xeee0, 0x003f, 0x003f, 0xeee1, 0x003f, 0xe994, 0xe995, 0x003f, 0x003f, 0xe996, 0xe997, 0x003f, 0x003f, 0xe998, 0x003f, 0x003f, 0x003f, 0x94af, 0xe99a, 0x003f, 0x9545, 0xe99b, 0xe999, 0x003f, 0xe99d, 0x003f, 0x003f, 0xe99c, 0x003f, 0x003f, 0xe99e, 0x003f, 0x003f, 0x003f, 0xe99f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9b00 .. 0x9bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a1, 0x003f, 0xe9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a3, 0x003f, 0x003f, 0xe9a4, 0xe9a5, 0x003f, 0xe9a6, 0x003f, 0xe9a7, 0xe9a8, 0xe9a9, 0xe9aa, 0x003f, 0x003f, 0x003f, 0xe9ab, 0xe9ac, 0x003f, 0x9f54, 0xe9ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f6, 0x8b53, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a40, 0x8db0, 0xe9af, 0xe9ae, 0x96a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b1, 0xe9b2, 0xe9b0, 0x003f, 0xe9b3, 0x003f, 0x003f, 0x9682, 0x003f, 0x003f, 0x003f, 0xe9b4, 0x003f, 0x8b9b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9844, 0x003f, 0x003f, 0xeee3, 0x003f, 0xe9b5, 0xeee2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88bc, 0xeee4, 0x003f, 0xe9b8, 0x95a9, 0xe9b6, 0x003f, 0x003f, 0xe9b9, 0xe9ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bb, 0xe9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bd, 0x003f, 0x968e, 0x8e4c, 0x003f, 0x8df8, 0x914e, 0x003f, 0x003f, 0xeee5, 0x003f, 0x003f, 0xe9be, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c1, 0x003f, 0xeee6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c2, 0x003f, 0x003f, 0x8cef, 0xe9c0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c3, 0x003f, 0xe9c4, 0xe9c5, 0x003f, 0xe9c9, 0x003f, 0x8e49, 0x003f, 0x003f, 0x003f, 0x003f, 0x91e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ca, 0xe9c7, 0xe9c6, 0xe9c8, 0x003f, 0x003f, 0x003f, 0x8c7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ce, 0xe9cd, 0xe9cc, 0x003f, 0x003f, 0x88b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9c00 .. 0x9cff */ 0xeee7, 0x003f, 0x003f, 0x003f, 0xe9d8, 0x003f, 0xe9d4, 0x003f, 0xe9d5, 0xe9d1, 0xe9d7, 0x003f, 0xe9d3, 0x8a82, 0x003f, 0x003f, 0x986b, 0x003f, 0xe9d6, 0xe9d2, 0xe9d0, 0xe9cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9dd, 0x003f, 0x003f, 0xe9dc, 0xe9db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9568, 0xe9d9, 0x88f1, 0xe9de, 0x003f, 0xe9e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a8f, 0xe9cb, 0x8956, 0x003f, 0x003f, 0xe9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e1, 0xe9df, 0x924c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9690, 0x003f, 0x003f, 0x003f, 0x003f, 0x97d8, 0x003f, 0x003f, 0xe9e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e6, 0x003f, 0xe9e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92b9, 0x003f, 0xe9e8, 0x003f, 0x94b5, 0x003f, 0xe9ed, 0xe9e9, 0x003f, 0x003f, 0x003f, 0xe9ea, 0x003f, 0x003f, 0x9650, 0x96c2, 0x003f, 0x93ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9d00 .. 0x9dff */ 0x003f, 0x003f, 0x003f, 0xe9ee, 0x003f, 0x003f, 0xe9ef, 0x93bc, 0xe9ec, 0xe9eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a8, 0x003f, 0x003f, 0x003f, 0xe9f7, 0x003f, 0x003f, 0xe9f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8995, 0x003f, 0x003f, 0x003f, 0xe9f4, 0x003f, 0x003f, 0x003f, 0xe9f3, 0x003f, 0x003f, 0xe9f1, 0x003f, 0x8a9b, 0x003f, 0xe9f0, 0x8eb0, 0x89a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d83, 0x003f, 0x003f, 0xe9fa, 0xe9f9, 0x003f, 0xe9f8, 0x003f, 0x003f, 0xe9f5, 0x003f, 0xe9fb, 0x003f, 0xe9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea44, 0xea43, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea45, 0x003f, 0x003f, 0x894c, 0xea40, 0xea41, 0x003f, 0x8d94, 0x96b7, 0x003f, 0x003f, 0xea42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee9, 0x9651, 0x003f, 0x003f, 0xea4a, 0xeee8, 0x003f, 0xea46, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea4b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea48, 0x003f, 0xea47, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c7b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea4c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea4d, 0x003f, 0x003f, 0x003f, 0x003f, 0xea4e, 0x003f, 0xea49, 0x003f, 0x003f, 0x003f, 0xe9f2, 0x003f, 0x003f, 0xea4f, 0x003f, 0x92df, 0x003f, 0x003f, 0x003f, 0xea53, 0x003f, 0xea54, 0xea52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea51, 0xea57, 0x003f, 0xea50, 0x003f, 0xea55, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea56, 0x003f, 0x003f, 0x003f, 0xea59, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea58, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea5b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea5c, 0x003f, 0xea5d, 0x003f, 0x003f, 0x9868, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea5a, 0x91e9, 0x8deb, 0x003f, 0x003f, 0xea5e, 0x003f, 0x003f, /* 0x9e00 .. 0x9eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeeb, 0xea5f, 0xea60, 0x003f, 0x003f, 0xea61, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea62, 0x003f, 0x003f, 0x8cb2, 0xea63, 0x003f, 0x003f, 0x003f, 0xea64, 0x003f, 0x8ead, 0x003f, 0xea65, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea66, 0x003f, 0x003f, 0xea67, 0xea68, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6b, 0xea69, 0x985b, 0x003f, 0xea6a, 0x003f, 0x97ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6c, 0x003f, 0x97d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6d, 0x949e, 0x003f, 0x003f, 0xea6e, 0xea70, 0x003f, 0x003f, 0xea71, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea6f, 0x8d8d, 0x96cb, 0x9683, 0x9bf5, 0x003f, 0x9f80, 0x969b, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea73, 0x8b6f, 0xea74, 0xea75, 0xea76, 0xeeec, 0x8d95, 0x003f, 0xea77, 0x003f, 0x003f, 0x003f, 0xe0d2, 0x96d9, 0x003f, 0x91e1, 0xea78, 0xea7a, 0xea79, 0x003f, 0xea7b, 0x003f, 0x003f, 0x003f, 0x003f, 0xea7c, 0x003f, 0x003f, 0xea7d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea7e, 0x003f, 0x003f, 0x003f, 0x003f, 0xea80, 0x003f, 0xea81, 0xea82, 0x003f, 0xea83, 0x003f, 0xea84, 0xea85, 0xea86, 0x003f, 0x003f, /* 0x9f00 .. 0x9fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea87, 0xea88, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9343, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cdb, 0x003f, 0xea8a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x916c, 0xea8b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea8c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9540, 0x003f, 0x003f, 0xea8d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea8e, 0xe256, 0x003f, 0x003f, 0xe6d8, 0xe8eb, 0x003f, 0x003f, 0xea8f, 0x003f, 0xea90, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea92, 0xea93, 0xea94, 0x97ee, 0xea91, 0x003f, 0x003f, 0xea95, 0xea96, 0x003f, 0x003f, 0xea98, 0x003f, 0xea97, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9a, 0x003f, 0x003f, 0x003f, 0xea9b, 0xea99, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xea9d, 0xe273, 0x003f, 0x003f, 0xea9e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xf900 .. 0xf9ff */ 0xe6af, 0x8d58, 0x8ed4, 0xe6c9, 0x8a8a, 0x8bf8, 0x8be5, 0xea9d, 0xea9d, 0x8c5f, 0x8be0, 0x9a68, 0x93de, 0x9cef, 0xe19a, 0x9785, 0xe566, 0x9786, 0x9787, 0xe7b4, 0x9ed9, 0x978c, 0xe080, 0xe0e2, 0x978e, 0x978f, 0xe970, 0x98aa, 0x9791, 0x9793, 0xe0a3, 0x9796, 0xea61, 0x9792, 0x9794, 0x9795, 0xe641, 0x9d66, 0xe463, 0x003f, 0x984c, 0xedc4, 0x9851, 0x9854, 0x9859, 0x98d2, 0x97e2, 0x99a7, 0x003f, 0x9845, 0xe0a2, 0xe1b8, 0x9856, 0xe562, 0x97b8, 0x9848, 0x9849, 0x9844, 0x8deb, 0xe1ef, 0xe252, 0xee70, 0x003f, 0x003f, 0x8ead, 0x985f, 0x9ae0, 0x984d, 0xe2c4, 0x9857, 0x9853, 0xe1fb, 0x9847, 0x978b, 0x9adc, 0x003f, 0x9eea, 0x003f, 0x9852, 0x97dd, 0xe37e, 0xe89b, 0xe8d3, 0x985d, 0xeaa3, 0x97bd, 0x97c5, 0x88bb, 0x9548, 0x97cb, 0xe6a4, 0x9d5b, 0x9ed9, 0x91f8, 0x924f, 0x944a, 0x937b, 0x97a6, 0x88d9, 0x966b, 0x003f, 0x95d6, 0x959c, 0x9573, 0x94e5, 0x9dc9, 0x8df5, 0x99d2, 0x8dc7, 0x8fc8, 0x9774, 0x003f, 0x8e45, 0x9243, 0x92be, 0x8f45, 0x8ee1, 0x97a9, 0x97aa, 0x97ba, 0x995f, 0x9979, 0x97c0, 0x97c6, 0x97c7, 0x97c8, 0x97ca, 0x99ad, 0x9843, 0x8f97, 0x9c49, 0x97b7, 0xe068, 0xe1e8, 0xe883, 0xe98b, 0x97ed, 0xea74, 0x97cd, 0x003f, 0x003f, 0xe780, 0x944e, 0x97f7, 0x9cf6, 0x9451, 0x97f8, 0x97f9, 0xee50, 0x003f, 0x97fb, 0x97fc, 0xe772, 0x9840, 0x9841, 0x003f, 0x97f1, 0x97f2, 0x88f4, 0x97f3, 0x97f4, 0x003f, 0x97f5, 0x944f, 0x9450, 0x003f, 0x97fa, 0xe0d8, 0x97df, 0x9a9a, 0x944a, 0x97e4, 0x97e5, 0x97e6, 0xe0f0, 0xe3b7, 0xe3d7, 0x97e9, 0x97eb, 0xe8cb, 0x97cc, 0x97e1, 0xe258, 0xe7d2, 0xe8af, 0x9ca6, 0x97b9, 0x97bb, 0x97be, 0x9441, 0x97bf, 0x9ed9, 0xe099, 0x97c3, 0xe4f8, 0x97c9, 0x97b4, 0x9df2, 0xe896, 0x97ab, 0x003f, 0x96f6, 0x97ac, 0x97ad, 0x97ae, 0x97af, 0x97b0, 0x9552, 0x97de, 0x985a, 0x9d43, 0x97a4, 0x97cf, 0x9bc4, 0x9fcb, 0x97d6, 0x97a5, 0x9cc9, 0x8c49, 0x97a6, 0xeecd, 0x9798, 0x9799, 0x979a, 0x88d5, 0x979b, 0x979c, 0x9344, 0x979d, 0x979f, 0x9ceb, 0x97a0, 0x97a1, 0x97a2, 0x97a3, 0x93bd, 0x934d, 0x99e5, 0x97d3, 0x003f, 0xe561, 0x97d7, 0x97d8, 0x97d9, 0x97d1, 0x97d2, 0x97d5, 0x97a7, 0x8a7d, 0x97b1, 0x003f, 0xe074, 0x8eaf, 0x8f59, 0x9283, 0x8e68, /* 0xfa00 .. 0xfaff */ 0x90d8, 0x9378, 0x91f1, 0x939c, 0x91ee, 0x93b4, 0x965c, 0xe774, 0x8d73, 0x8d7e, 0x8ca9, 0x8a66, 0x9959, 0x003f, 0xed73, 0xed7e, 0xed80, 0xed95, 0xedbc, 0xedcc, 0xedce, 0xedf9, 0xee42, 0xee59, 0xee61, 0xee62, 0xee63, 0xee65, 0xee69, 0xee6c, 0xee75, 0xee81, 0xee83, 0xee84, 0xee8d, 0xee95, 0xee97, 0xee98, 0xee9b, 0xeeb7, 0xeebe, 0xeece, 0xeeda, 0xeedb, 0xeedd, 0xeeea, 0x003f, 0x003f, 0x958e, 0x916d, 0x96c6, 0x95d7, 0x8bce, 0x94da, 0x8a85, 0x9251, 0x8aed, 0x95bb, 0x966e, 0x9177, 0x9ba3, 0x89f7, 0x8a53, 0x919e, 0x92a6, 0x9571, 0x8af9, 0x8f8b, 0x947e, 0x8a43, 0x8f8d, 0x8abf, 0x8ecf, 0x003f, 0x91f4, 0x94e8, 0x8ed0, 0x8e83, 0x8b46, 0x9753, 0x9163, 0x8f6a, 0x89d0, 0x92f5, 0x8d92, 0x93cb, 0x90df, 0x97fb, 0xe375, 0x94c9, 0x8f90, 0x8ed2, 0x8f4c, 0x003f, 0x003f, 0x9298, 0x8a8c, 0x8e8b, 0x8979, 0x8bde, 0x956f, 0x91a1, 0x003f, 0x88ed, 0x93ef, 0x8bbf, 0x9570, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfb00 .. 0xfbff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfe00 .. 0xfeff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x815c, 0x815c, 0x815c, 0x815c, 0x005f, 0x005f, 0x005f, 0x002c, 0x8141, 0x002e, 0x003f, 0x003b, 0x003a, 0x003f, 0x0021, 0x815c, 0x0028, 0x0029, 0x007b, 0x007d, 0x816b, 0x816c, 0x0023, 0x0026, 0x002a, 0x002b, 0x002d, 0x003c, 0x003e, 0x003d, 0x003f, 0x005c, 0x0024, 0x0025, 0x0040, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xff00 .. 0xffff */ 0x003f, 0x8149, 0xeefc, 0x8194, 0x8190, 0x8193, 0x8195, 0xeefb, 0x8169, 0x816a, 0x8196, 0x817b, 0x8143, 0x817c, 0x8144, 0x815e, 0x824f, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, 0x8257, 0x8258, 0x8146, 0x8147, 0x8183, 0x8181, 0x8184, 0x8148, 0x8197, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0x826d, 0x826e, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x816d, 0x815f, 0x816e, 0x814f, 0x8151, 0x814d, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, 0x8288, 0x8289, 0x828a, 0x828b, 0x828c, 0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x816f, 0x8162, 0x8170, 0x8160, 0x003f, 0x003f, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6, 0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6, 0x00d7, 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x00df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8191, 0x8192, 0x81ca, 0x8150, 0xeefa, 0x818f, 0x003f, 0x003f, 0x84a0, 0x81a9, 0x81aa, 0x81a8, 0x81ab, 0x81a1, 0x819b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* defaults */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x0e00, 0x0f00, 0x1000, 0x1100, 0x1200, 0x1300, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6600, 0x6700, 0x6800, 0x6b00, 0x6b00, 0x6900, 0x6a00 }; const struct dbcs_table cptable_932 = { { 932, 2, 0x003f, 0x003f, "ANSI/OEM Japanese Shift-JIS" }, cp2uni, cp2uni_leadbytes, uni2cp_low, uni2cp_high, { 0x81, 0x9f, 0xe0, 0xfc, 0x00, 0x00 } }; ================================================ FILE: Project/Unicode/Source/c_936.cpp ================================================ /* code page 936 (ANSI/OEM Simplified Chinese GBK) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP936.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[32512] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x20ac, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, /* lead byte 81 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e02, 0x4e04, 0x4e05, 0x4e06, 0x4e0f, 0x4e12, 0x4e17, 0x4e1f, 0x4e20, 0x4e21, 0x4e23, 0x4e26, 0x4e29, 0x4e2e, 0x4e2f, 0x4e31, 0x4e33, 0x4e35, 0x4e37, 0x4e3c, 0x4e40, 0x4e41, 0x4e42, 0x4e44, 0x4e46, 0x4e4a, 0x4e51, 0x4e55, 0x4e57, 0x4e5a, 0x4e5b, 0x4e62, 0x4e63, 0x4e64, 0x4e65, 0x4e67, 0x4e68, 0x4e6a, 0x4e6b, 0x4e6c, 0x4e6d, 0x4e6e, 0x4e6f, 0x4e72, 0x4e74, 0x4e75, 0x4e76, 0x4e77, 0x4e78, 0x4e79, 0x4e7a, 0x4e7b, 0x4e7c, 0x4e7d, 0x4e7f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84, 0x4e85, 0x4e87, 0x4e8a, 0x003f, 0x4e90, 0x4e96, 0x4e97, 0x4e99, 0x4e9c, 0x4e9d, 0x4e9e, 0x4ea3, 0x4eaa, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb4, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4ebc, 0x4ebd, 0x4ebe, 0x4ec8, 0x4ecc, 0x4ecf, 0x4ed0, 0x4ed2, 0x4eda, 0x4edb, 0x4edc, 0x4ee0, 0x4ee2, 0x4ee6, 0x4ee7, 0x4ee9, 0x4eed, 0x4eee, 0x4eef, 0x4ef1, 0x4ef4, 0x4ef8, 0x4ef9, 0x4efa, 0x4efc, 0x4efe, 0x4f00, 0x4f02, 0x4f03, 0x4f04, 0x4f05, 0x4f06, 0x4f07, 0x4f08, 0x4f0b, 0x4f0c, 0x4f12, 0x4f13, 0x4f14, 0x4f15, 0x4f16, 0x4f1c, 0x4f1d, 0x4f21, 0x4f23, 0x4f28, 0x4f29, 0x4f2c, 0x4f2d, 0x4f2e, 0x4f31, 0x4f33, 0x4f35, 0x4f37, 0x4f39, 0x4f3b, 0x4f3e, 0x4f3f, 0x4f40, 0x4f41, 0x4f42, 0x4f44, 0x4f45, 0x4f47, 0x4f48, 0x4f49, 0x4f4a, 0x4f4b, 0x4f4c, 0x4f52, 0x4f54, 0x4f56, 0x4f61, 0x4f62, 0x4f66, 0x4f68, 0x4f6a, 0x4f6b, 0x4f6d, 0x4f6e, 0x4f71, 0x4f72, 0x4f75, 0x4f77, 0x4f78, 0x4f79, 0x4f7a, 0x4f7d, 0x4f80, 0x4f81, 0x4f82, 0x4f85, 0x4f86, 0x4f87, 0x4f8a, 0x4f8c, 0x4f8e, 0x4f90, 0x4f92, 0x4f93, 0x4f95, 0x4f96, 0x4f98, 0x4f99, 0x4f9a, 0x4f9c, 0x4f9e, 0x4f9f, 0x4fa1, 0x4fa2, 0x003f, /* lead byte 82 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4fa4, 0x4fab, 0x4fad, 0x4fb0, 0x4fb1, 0x4fb2, 0x4fb3, 0x4fb4, 0x4fb6, 0x4fb7, 0x4fb8, 0x4fb9, 0x4fba, 0x4fbb, 0x4fbc, 0x4fbd, 0x4fbe, 0x4fc0, 0x4fc1, 0x4fc2, 0x4fc6, 0x4fc7, 0x4fc8, 0x4fc9, 0x4fcb, 0x4fcc, 0x4fcd, 0x4fd2, 0x4fd3, 0x4fd4, 0x4fd5, 0x4fd6, 0x4fd9, 0x4fdb, 0x4fe0, 0x4fe2, 0x4fe4, 0x4fe5, 0x4fe7, 0x4feb, 0x4fec, 0x4ff0, 0x4ff2, 0x4ff4, 0x4ff5, 0x4ff6, 0x4ff7, 0x4ff9, 0x4ffb, 0x4ffc, 0x4ffd, 0x4fff, 0x5000, 0x5001, 0x5002, 0x5003, 0x5004, 0x5005, 0x5006, 0x5007, 0x5008, 0x5009, 0x500a, 0x003f, 0x500b, 0x500e, 0x5010, 0x5011, 0x5013, 0x5015, 0x5016, 0x5017, 0x501b, 0x501d, 0x501e, 0x5020, 0x5022, 0x5023, 0x5024, 0x5027, 0x502b, 0x502f, 0x5030, 0x5031, 0x5032, 0x5033, 0x5034, 0x5035, 0x5036, 0x5037, 0x5038, 0x5039, 0x503b, 0x503d, 0x503f, 0x5040, 0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5049, 0x504a, 0x504b, 0x504d, 0x5050, 0x5051, 0x5052, 0x5053, 0x5054, 0x5056, 0x5057, 0x5058, 0x5059, 0x505b, 0x505d, 0x505e, 0x505f, 0x5060, 0x5061, 0x5062, 0x5063, 0x5064, 0x5066, 0x5067, 0x5068, 0x5069, 0x506a, 0x506b, 0x506d, 0x506e, 0x506f, 0x5070, 0x5071, 0x5072, 0x5073, 0x5074, 0x5075, 0x5078, 0x5079, 0x507a, 0x507c, 0x507d, 0x5081, 0x5082, 0x5083, 0x5084, 0x5086, 0x5087, 0x5089, 0x508a, 0x508b, 0x508c, 0x508e, 0x508f, 0x5090, 0x5091, 0x5092, 0x5093, 0x5094, 0x5095, 0x5096, 0x5097, 0x5098, 0x5099, 0x509a, 0x509b, 0x509c, 0x509d, 0x509e, 0x509f, 0x50a0, 0x50a1, 0x50a2, 0x50a4, 0x50a6, 0x50aa, 0x50ab, 0x50ad, 0x50ae, 0x50af, 0x50b0, 0x50b1, 0x50b3, 0x50b4, 0x50b5, 0x50b6, 0x50b7, 0x50b8, 0x50b9, 0x50bc, 0x003f, /* lead byte 83 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x50bd, 0x50be, 0x50bf, 0x50c0, 0x50c1, 0x50c2, 0x50c3, 0x50c4, 0x50c5, 0x50c6, 0x50c7, 0x50c8, 0x50c9, 0x50ca, 0x50cb, 0x50cc, 0x50cd, 0x50ce, 0x50d0, 0x50d1, 0x50d2, 0x50d3, 0x50d4, 0x50d5, 0x50d7, 0x50d8, 0x50d9, 0x50db, 0x50dc, 0x50dd, 0x50de, 0x50df, 0x50e0, 0x50e1, 0x50e2, 0x50e3, 0x50e4, 0x50e5, 0x50e8, 0x50e9, 0x50ea, 0x50eb, 0x50ef, 0x50f0, 0x50f1, 0x50f2, 0x50f4, 0x50f6, 0x50f7, 0x50f8, 0x50f9, 0x50fa, 0x50fc, 0x50fd, 0x50fe, 0x50ff, 0x5100, 0x5101, 0x5102, 0x5103, 0x5104, 0x5105, 0x5108, 0x003f, 0x5109, 0x510a, 0x510c, 0x510d, 0x510e, 0x510f, 0x5110, 0x5111, 0x5113, 0x5114, 0x5115, 0x5116, 0x5117, 0x5118, 0x5119, 0x511a, 0x511b, 0x511c, 0x511d, 0x511e, 0x511f, 0x5120, 0x5122, 0x5123, 0x5124, 0x5125, 0x5126, 0x5127, 0x5128, 0x5129, 0x512a, 0x512b, 0x512c, 0x512d, 0x512e, 0x512f, 0x5130, 0x5131, 0x5132, 0x5133, 0x5134, 0x5135, 0x5136, 0x5137, 0x5138, 0x5139, 0x513a, 0x513b, 0x513c, 0x513d, 0x513e, 0x5142, 0x5147, 0x514a, 0x514c, 0x514e, 0x514f, 0x5150, 0x5152, 0x5153, 0x5157, 0x5158, 0x5159, 0x515b, 0x515d, 0x515e, 0x515f, 0x5160, 0x5161, 0x5163, 0x5164, 0x5166, 0x5167, 0x5169, 0x516a, 0x516f, 0x5172, 0x517a, 0x517e, 0x517f, 0x5183, 0x5184, 0x5186, 0x5187, 0x518a, 0x518b, 0x518e, 0x518f, 0x5190, 0x5191, 0x5193, 0x5194, 0x5198, 0x519a, 0x519d, 0x519e, 0x519f, 0x51a1, 0x51a3, 0x51a6, 0x51a7, 0x51a8, 0x51a9, 0x51aa, 0x51ad, 0x51ae, 0x51b4, 0x51b8, 0x51b9, 0x51ba, 0x51be, 0x51bf, 0x51c1, 0x51c2, 0x51c3, 0x51c5, 0x51c8, 0x51ca, 0x51cd, 0x51ce, 0x51d0, 0x51d2, 0x51d3, 0x51d4, 0x51d5, 0x51d6, 0x51d7, 0x003f, /* lead byte 84 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x51d8, 0x51d9, 0x51da, 0x51dc, 0x51de, 0x51df, 0x51e2, 0x51e3, 0x51e5, 0x51e6, 0x51e7, 0x51e8, 0x51e9, 0x51ea, 0x51ec, 0x51ee, 0x51f1, 0x51f2, 0x51f4, 0x51f7, 0x51fe, 0x5204, 0x5205, 0x5209, 0x520b, 0x520c, 0x520f, 0x5210, 0x5213, 0x5214, 0x5215, 0x521c, 0x521e, 0x521f, 0x5221, 0x5222, 0x5223, 0x5225, 0x5226, 0x5227, 0x522a, 0x522c, 0x522f, 0x5231, 0x5232, 0x5234, 0x5235, 0x523c, 0x523e, 0x5244, 0x5245, 0x5246, 0x5247, 0x5248, 0x5249, 0x524b, 0x524e, 0x524f, 0x5252, 0x5253, 0x5255, 0x5257, 0x5258, 0x003f, 0x5259, 0x525a, 0x525b, 0x525d, 0x525f, 0x5260, 0x5262, 0x5263, 0x5264, 0x5266, 0x5268, 0x526b, 0x526c, 0x526d, 0x526e, 0x5270, 0x5271, 0x5273, 0x5274, 0x5275, 0x5276, 0x5277, 0x5278, 0x5279, 0x527a, 0x527b, 0x527c, 0x527e, 0x5280, 0x5283, 0x5284, 0x5285, 0x5286, 0x5287, 0x5289, 0x528a, 0x528b, 0x528c, 0x528d, 0x528e, 0x528f, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5297, 0x5298, 0x5299, 0x529a, 0x529c, 0x52a4, 0x52a5, 0x52a6, 0x52a7, 0x52ae, 0x52af, 0x52b0, 0x52b4, 0x52b5, 0x52b6, 0x52b7, 0x52b8, 0x52b9, 0x52ba, 0x52bb, 0x52bc, 0x52bd, 0x52c0, 0x52c1, 0x52c2, 0x52c4, 0x52c5, 0x52c6, 0x52c8, 0x52ca, 0x52cc, 0x52cd, 0x52ce, 0x52cf, 0x52d1, 0x52d3, 0x52d4, 0x52d5, 0x52d7, 0x52d9, 0x52da, 0x52db, 0x52dc, 0x52dd, 0x52de, 0x52e0, 0x52e1, 0x52e2, 0x52e3, 0x52e5, 0x52e6, 0x52e7, 0x52e8, 0x52e9, 0x52ea, 0x52eb, 0x52ec, 0x52ed, 0x52ee, 0x52ef, 0x52f1, 0x52f2, 0x52f3, 0x52f4, 0x52f5, 0x52f6, 0x52f7, 0x52f8, 0x52fb, 0x52fc, 0x52fd, 0x5301, 0x5302, 0x5303, 0x5304, 0x5307, 0x5309, 0x530a, 0x530b, 0x530c, 0x530e, 0x003f, /* lead byte 85 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5311, 0x5312, 0x5313, 0x5314, 0x5318, 0x531b, 0x531c, 0x531e, 0x531f, 0x5322, 0x5324, 0x5325, 0x5327, 0x5328, 0x5329, 0x532b, 0x532c, 0x532d, 0x532f, 0x5330, 0x5331, 0x5332, 0x5333, 0x5334, 0x5335, 0x5336, 0x5337, 0x5338, 0x533c, 0x533d, 0x5340, 0x5342, 0x5344, 0x5346, 0x534b, 0x534c, 0x534d, 0x5350, 0x5354, 0x5358, 0x5359, 0x535b, 0x535d, 0x5365, 0x5368, 0x536a, 0x536c, 0x536d, 0x5372, 0x5376, 0x5379, 0x537b, 0x537c, 0x537d, 0x537e, 0x5380, 0x5381, 0x5383, 0x5387, 0x5388, 0x538a, 0x538e, 0x538f, 0x003f, 0x5390, 0x5391, 0x5392, 0x5393, 0x5394, 0x5396, 0x5397, 0x5399, 0x539b, 0x539c, 0x539e, 0x53a0, 0x53a1, 0x53a4, 0x53a7, 0x53aa, 0x53ab, 0x53ac, 0x53ad, 0x53af, 0x53b0, 0x53b1, 0x53b2, 0x53b3, 0x53b4, 0x53b5, 0x53b7, 0x53b8, 0x53b9, 0x53ba, 0x53bc, 0x53bd, 0x53be, 0x53c0, 0x53c3, 0x53c4, 0x53c5, 0x53c6, 0x53c7, 0x53ce, 0x53cf, 0x53d0, 0x53d2, 0x53d3, 0x53d5, 0x53da, 0x53dc, 0x53dd, 0x53de, 0x53e1, 0x53e2, 0x53e7, 0x53f4, 0x53fa, 0x53fe, 0x53ff, 0x5400, 0x5402, 0x5405, 0x5407, 0x540b, 0x5414, 0x5418, 0x5419, 0x541a, 0x541c, 0x5422, 0x5424, 0x5425, 0x542a, 0x5430, 0x5433, 0x5436, 0x5437, 0x543a, 0x543d, 0x543f, 0x5441, 0x5442, 0x5444, 0x5445, 0x5447, 0x5449, 0x544c, 0x544d, 0x544e, 0x544f, 0x5451, 0x545a, 0x545d, 0x545e, 0x545f, 0x5460, 0x5461, 0x5463, 0x5465, 0x5467, 0x5469, 0x546a, 0x546b, 0x546c, 0x546d, 0x546e, 0x546f, 0x5470, 0x5474, 0x5479, 0x547a, 0x547e, 0x547f, 0x5481, 0x5483, 0x5485, 0x5487, 0x5488, 0x5489, 0x548a, 0x548d, 0x5491, 0x5493, 0x5497, 0x5498, 0x549c, 0x549e, 0x549f, 0x54a0, 0x54a1, 0x003f, /* lead byte 86 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54a2, 0x54a5, 0x54ae, 0x54b0, 0x54b2, 0x54b5, 0x54b6, 0x54b7, 0x54b9, 0x54ba, 0x54bc, 0x54be, 0x54c3, 0x54c5, 0x54ca, 0x54cb, 0x54d6, 0x54d8, 0x54db, 0x54e0, 0x54e1, 0x54e2, 0x54e3, 0x54e4, 0x54eb, 0x54ec, 0x54ef, 0x54f0, 0x54f1, 0x54f4, 0x54f5, 0x54f6, 0x54f7, 0x54f8, 0x54f9, 0x54fb, 0x54fe, 0x5500, 0x5502, 0x5503, 0x5504, 0x5505, 0x5508, 0x550a, 0x550b, 0x550c, 0x550d, 0x550e, 0x5512, 0x5513, 0x5515, 0x5516, 0x5517, 0x5518, 0x5519, 0x551a, 0x551c, 0x551d, 0x551e, 0x551f, 0x5521, 0x5525, 0x5526, 0x003f, 0x5528, 0x5529, 0x552b, 0x552d, 0x5532, 0x5534, 0x5535, 0x5536, 0x5538, 0x5539, 0x553a, 0x553b, 0x553d, 0x5540, 0x5542, 0x5545, 0x5547, 0x5548, 0x554b, 0x554c, 0x554d, 0x554e, 0x554f, 0x5551, 0x5552, 0x5553, 0x5554, 0x5557, 0x5558, 0x5559, 0x555a, 0x555b, 0x555d, 0x555e, 0x555f, 0x5560, 0x5562, 0x5563, 0x5568, 0x5569, 0x556b, 0x556f, 0x5570, 0x5571, 0x5572, 0x5573, 0x5574, 0x5579, 0x557a, 0x557d, 0x557f, 0x5585, 0x5586, 0x558c, 0x558d, 0x558e, 0x5590, 0x5592, 0x5593, 0x5595, 0x5596, 0x5597, 0x559a, 0x559b, 0x559e, 0x55a0, 0x55a1, 0x55a2, 0x55a3, 0x55a4, 0x55a5, 0x55a6, 0x55a8, 0x55a9, 0x55aa, 0x55ab, 0x55ac, 0x55ad, 0x55ae, 0x55af, 0x55b0, 0x55b2, 0x55b4, 0x55b6, 0x55b8, 0x55ba, 0x55bc, 0x55bf, 0x55c0, 0x55c1, 0x55c2, 0x55c3, 0x55c6, 0x55c7, 0x55c8, 0x55ca, 0x55cb, 0x55ce, 0x55cf, 0x55d0, 0x55d5, 0x55d7, 0x55d8, 0x55d9, 0x55da, 0x55db, 0x55de, 0x55e0, 0x55e2, 0x55e7, 0x55e9, 0x55ed, 0x55ee, 0x55f0, 0x55f1, 0x55f4, 0x55f6, 0x55f8, 0x55f9, 0x55fa, 0x55fb, 0x55fc, 0x55ff, 0x5602, 0x5603, 0x5604, 0x5605, 0x003f, /* lead byte 87 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5606, 0x5607, 0x560a, 0x560b, 0x560d, 0x5610, 0x5611, 0x5612, 0x5613, 0x5614, 0x5615, 0x5616, 0x5617, 0x5619, 0x561a, 0x561c, 0x561d, 0x5620, 0x5621, 0x5622, 0x5625, 0x5626, 0x5628, 0x5629, 0x562a, 0x562b, 0x562e, 0x562f, 0x5630, 0x5633, 0x5635, 0x5637, 0x5638, 0x563a, 0x563c, 0x563d, 0x563e, 0x5640, 0x5641, 0x5642, 0x5643, 0x5644, 0x5645, 0x5646, 0x5647, 0x5648, 0x5649, 0x564a, 0x564b, 0x564f, 0x5650, 0x5651, 0x5652, 0x5653, 0x5655, 0x5656, 0x565a, 0x565b, 0x565d, 0x565e, 0x565f, 0x5660, 0x5661, 0x003f, 0x5663, 0x5665, 0x5666, 0x5667, 0x566d, 0x566e, 0x566f, 0x5670, 0x5672, 0x5673, 0x5674, 0x5675, 0x5677, 0x5678, 0x5679, 0x567a, 0x567d, 0x567e, 0x567f, 0x5680, 0x5681, 0x5682, 0x5683, 0x5684, 0x5687, 0x5688, 0x5689, 0x568a, 0x568b, 0x568c, 0x568d, 0x5690, 0x5691, 0x5692, 0x5694, 0x5695, 0x5696, 0x5697, 0x5698, 0x5699, 0x569a, 0x569b, 0x569c, 0x569d, 0x569e, 0x569f, 0x56a0, 0x56a1, 0x56a2, 0x56a4, 0x56a5, 0x56a6, 0x56a7, 0x56a8, 0x56a9, 0x56aa, 0x56ab, 0x56ac, 0x56ad, 0x56ae, 0x56b0, 0x56b1, 0x56b2, 0x56b3, 0x56b4, 0x56b5, 0x56b6, 0x56b8, 0x56b9, 0x56ba, 0x56bb, 0x56bd, 0x56be, 0x56bf, 0x56c0, 0x56c1, 0x56c2, 0x56c3, 0x56c4, 0x56c5, 0x56c6, 0x56c7, 0x56c8, 0x56c9, 0x56cb, 0x56cc, 0x56cd, 0x56ce, 0x56cf, 0x56d0, 0x56d1, 0x56d2, 0x56d3, 0x56d5, 0x56d6, 0x56d8, 0x56d9, 0x56dc, 0x56e3, 0x56e5, 0x56e6, 0x56e7, 0x56e8, 0x56e9, 0x56ea, 0x56ec, 0x56ee, 0x56ef, 0x56f2, 0x56f3, 0x56f6, 0x56f7, 0x56f8, 0x56fb, 0x56fc, 0x5700, 0x5701, 0x5702, 0x5705, 0x5707, 0x570b, 0x570c, 0x570d, 0x570e, 0x570f, 0x5710, 0x5711, 0x003f, /* lead byte 88 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5712, 0x5713, 0x5714, 0x5715, 0x5716, 0x5717, 0x5718, 0x5719, 0x571a, 0x571b, 0x571d, 0x571e, 0x5720, 0x5721, 0x5722, 0x5724, 0x5725, 0x5726, 0x5727, 0x572b, 0x5731, 0x5732, 0x5734, 0x5735, 0x5736, 0x5737, 0x5738, 0x573c, 0x573d, 0x573f, 0x5741, 0x5743, 0x5744, 0x5745, 0x5746, 0x5748, 0x5749, 0x574b, 0x5752, 0x5753, 0x5754, 0x5755, 0x5756, 0x5758, 0x5759, 0x5762, 0x5763, 0x5765, 0x5767, 0x576c, 0x576e, 0x5770, 0x5771, 0x5772, 0x5774, 0x5775, 0x5778, 0x5779, 0x577a, 0x577d, 0x577e, 0x577f, 0x5780, 0x003f, 0x5781, 0x5787, 0x5788, 0x5789, 0x578a, 0x578d, 0x578e, 0x578f, 0x5790, 0x5791, 0x5794, 0x5795, 0x5796, 0x5797, 0x5798, 0x5799, 0x579a, 0x579c, 0x579d, 0x579e, 0x579f, 0x57a5, 0x57a8, 0x57aa, 0x57ac, 0x57af, 0x57b0, 0x57b1, 0x57b3, 0x57b5, 0x57b6, 0x57b7, 0x57b9, 0x57ba, 0x57bb, 0x57bc, 0x57bd, 0x57be, 0x57bf, 0x57c0, 0x57c1, 0x57c4, 0x57c5, 0x57c6, 0x57c7, 0x57c8, 0x57c9, 0x57ca, 0x57cc, 0x57cd, 0x57d0, 0x57d1, 0x57d3, 0x57d6, 0x57d7, 0x57db, 0x57dc, 0x57de, 0x57e1, 0x57e2, 0x57e3, 0x57e5, 0x57e6, 0x57e7, 0x57e8, 0x57e9, 0x57ea, 0x57eb, 0x57ec, 0x57ee, 0x57f0, 0x57f1, 0x57f2, 0x57f3, 0x57f5, 0x57f6, 0x57f7, 0x57fb, 0x57fc, 0x57fe, 0x57ff, 0x5801, 0x5803, 0x5804, 0x5805, 0x5808, 0x5809, 0x580a, 0x580c, 0x580e, 0x580f, 0x5810, 0x5812, 0x5813, 0x5814, 0x5816, 0x5817, 0x5818, 0x581a, 0x581b, 0x581c, 0x581d, 0x581f, 0x5822, 0x5823, 0x5825, 0x5826, 0x5827, 0x5828, 0x5829, 0x582b, 0x582c, 0x582d, 0x582e, 0x582f, 0x5831, 0x5832, 0x5833, 0x5834, 0x5836, 0x5837, 0x5838, 0x5839, 0x583a, 0x583b, 0x583c, 0x583d, 0x003f, /* lead byte 89 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x583e, 0x583f, 0x5840, 0x5841, 0x5842, 0x5843, 0x5845, 0x5846, 0x5847, 0x5848, 0x5849, 0x584a, 0x584b, 0x584e, 0x584f, 0x5850, 0x5852, 0x5853, 0x5855, 0x5856, 0x5857, 0x5859, 0x585a, 0x585b, 0x585c, 0x585d, 0x585f, 0x5860, 0x5861, 0x5862, 0x5863, 0x5864, 0x5866, 0x5867, 0x5868, 0x5869, 0x586a, 0x586d, 0x586e, 0x586f, 0x5870, 0x5871, 0x5872, 0x5873, 0x5874, 0x5875, 0x5876, 0x5877, 0x5878, 0x5879, 0x587a, 0x587b, 0x587c, 0x587d, 0x587f, 0x5882, 0x5884, 0x5886, 0x5887, 0x5888, 0x588a, 0x588b, 0x588c, 0x003f, 0x588d, 0x588e, 0x588f, 0x5890, 0x5891, 0x5894, 0x5895, 0x5896, 0x5897, 0x5898, 0x589b, 0x589c, 0x589d, 0x58a0, 0x58a1, 0x58a2, 0x58a3, 0x58a4, 0x58a5, 0x58a6, 0x58a7, 0x58aa, 0x58ab, 0x58ac, 0x58ad, 0x58ae, 0x58af, 0x58b0, 0x58b1, 0x58b2, 0x58b3, 0x58b4, 0x58b5, 0x58b6, 0x58b7, 0x58b8, 0x58b9, 0x58ba, 0x58bb, 0x58bd, 0x58be, 0x58bf, 0x58c0, 0x58c2, 0x58c3, 0x58c4, 0x58c6, 0x58c7, 0x58c8, 0x58c9, 0x58ca, 0x58cb, 0x58cc, 0x58cd, 0x58ce, 0x58cf, 0x58d0, 0x58d2, 0x58d3, 0x58d4, 0x58d6, 0x58d7, 0x58d8, 0x58d9, 0x58da, 0x58db, 0x58dc, 0x58dd, 0x58de, 0x58df, 0x58e0, 0x58e1, 0x58e2, 0x58e3, 0x58e5, 0x58e6, 0x58e7, 0x58e8, 0x58e9, 0x58ea, 0x58ed, 0x58ef, 0x58f1, 0x58f2, 0x58f4, 0x58f5, 0x58f7, 0x58f8, 0x58fa, 0x58fb, 0x58fc, 0x58fd, 0x58fe, 0x58ff, 0x5900, 0x5901, 0x5903, 0x5905, 0x5906, 0x5908, 0x5909, 0x590a, 0x590b, 0x590c, 0x590e, 0x5910, 0x5911, 0x5912, 0x5913, 0x5917, 0x5918, 0x591b, 0x591d, 0x591e, 0x5920, 0x5921, 0x5922, 0x5923, 0x5926, 0x5928, 0x592c, 0x5930, 0x5932, 0x5933, 0x5935, 0x5936, 0x593b, 0x003f, /* lead byte 8a */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x593d, 0x593e, 0x593f, 0x5940, 0x5943, 0x5945, 0x5946, 0x594a, 0x594c, 0x594d, 0x5950, 0x5952, 0x5953, 0x5959, 0x595b, 0x595c, 0x595d, 0x595e, 0x595f, 0x5961, 0x5963, 0x5964, 0x5966, 0x5967, 0x5968, 0x5969, 0x596a, 0x596b, 0x596c, 0x596d, 0x596e, 0x596f, 0x5970, 0x5971, 0x5972, 0x5975, 0x5977, 0x597a, 0x597b, 0x597c, 0x597e, 0x597f, 0x5980, 0x5985, 0x5989, 0x598b, 0x598c, 0x598e, 0x598f, 0x5990, 0x5991, 0x5994, 0x5995, 0x5998, 0x599a, 0x599b, 0x599c, 0x599d, 0x599f, 0x59a0, 0x59a1, 0x59a2, 0x59a6, 0x003f, 0x59a7, 0x59ac, 0x59ad, 0x59b0, 0x59b1, 0x59b3, 0x59b4, 0x59b5, 0x59b6, 0x59b7, 0x59b8, 0x59ba, 0x59bc, 0x59bd, 0x59bf, 0x59c0, 0x59c1, 0x59c2, 0x59c3, 0x59c4, 0x59c5, 0x59c7, 0x59c8, 0x59c9, 0x59cc, 0x59cd, 0x59ce, 0x59cf, 0x59d5, 0x59d6, 0x59d9, 0x59db, 0x59de, 0x59df, 0x59e0, 0x59e1, 0x59e2, 0x59e4, 0x59e6, 0x59e7, 0x59e9, 0x59ea, 0x59eb, 0x59ed, 0x59ee, 0x59ef, 0x59f0, 0x59f1, 0x59f2, 0x59f3, 0x59f4, 0x59f5, 0x59f6, 0x59f7, 0x59f8, 0x59fa, 0x59fc, 0x59fd, 0x59fe, 0x5a00, 0x5a02, 0x5a0a, 0x5a0b, 0x5a0d, 0x5a0e, 0x5a0f, 0x5a10, 0x5a12, 0x5a14, 0x5a15, 0x5a16, 0x5a17, 0x5a19, 0x5a1a, 0x5a1b, 0x5a1d, 0x5a1e, 0x5a21, 0x5a22, 0x5a24, 0x5a26, 0x5a27, 0x5a28, 0x5a2a, 0x5a2b, 0x5a2c, 0x5a2d, 0x5a2e, 0x5a2f, 0x5a30, 0x5a33, 0x5a35, 0x5a37, 0x5a38, 0x5a39, 0x5a3a, 0x5a3b, 0x5a3d, 0x5a3e, 0x5a3f, 0x5a41, 0x5a42, 0x5a43, 0x5a44, 0x5a45, 0x5a47, 0x5a48, 0x5a4b, 0x5a4c, 0x5a4d, 0x5a4e, 0x5a4f, 0x5a50, 0x5a51, 0x5a52, 0x5a53, 0x5a54, 0x5a56, 0x5a57, 0x5a58, 0x5a59, 0x5a5b, 0x5a5c, 0x5a5d, 0x5a5e, 0x5a5f, 0x5a60, 0x003f, /* lead byte 8b */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5a61, 0x5a63, 0x5a64, 0x5a65, 0x5a66, 0x5a68, 0x5a69, 0x5a6b, 0x5a6c, 0x5a6d, 0x5a6e, 0x5a6f, 0x5a70, 0x5a71, 0x5a72, 0x5a73, 0x5a78, 0x5a79, 0x5a7b, 0x5a7c, 0x5a7d, 0x5a7e, 0x5a80, 0x5a81, 0x5a82, 0x5a83, 0x5a84, 0x5a85, 0x5a86, 0x5a87, 0x5a88, 0x5a89, 0x5a8a, 0x5a8b, 0x5a8c, 0x5a8d, 0x5a8e, 0x5a8f, 0x5a90, 0x5a91, 0x5a93, 0x5a94, 0x5a95, 0x5a96, 0x5a97, 0x5a98, 0x5a99, 0x5a9c, 0x5a9d, 0x5a9e, 0x5a9f, 0x5aa0, 0x5aa1, 0x5aa2, 0x5aa3, 0x5aa4, 0x5aa5, 0x5aa6, 0x5aa7, 0x5aa8, 0x5aa9, 0x5aab, 0x5aac, 0x003f, 0x5aad, 0x5aae, 0x5aaf, 0x5ab0, 0x5ab1, 0x5ab4, 0x5ab6, 0x5ab7, 0x5ab9, 0x5aba, 0x5abb, 0x5abc, 0x5abd, 0x5abf, 0x5ac0, 0x5ac3, 0x5ac4, 0x5ac5, 0x5ac6, 0x5ac7, 0x5ac8, 0x5aca, 0x5acb, 0x5acd, 0x5ace, 0x5acf, 0x5ad0, 0x5ad1, 0x5ad3, 0x5ad5, 0x5ad7, 0x5ad9, 0x5ada, 0x5adb, 0x5add, 0x5ade, 0x5adf, 0x5ae2, 0x5ae4, 0x5ae5, 0x5ae7, 0x5ae8, 0x5aea, 0x5aec, 0x5aed, 0x5aee, 0x5aef, 0x5af0, 0x5af2, 0x5af3, 0x5af4, 0x5af5, 0x5af6, 0x5af7, 0x5af8, 0x5af9, 0x5afa, 0x5afb, 0x5afc, 0x5afd, 0x5afe, 0x5aff, 0x5b00, 0x5b01, 0x5b02, 0x5b03, 0x5b04, 0x5b05, 0x5b06, 0x5b07, 0x5b08, 0x5b0a, 0x5b0b, 0x5b0c, 0x5b0d, 0x5b0e, 0x5b0f, 0x5b10, 0x5b11, 0x5b12, 0x5b13, 0x5b14, 0x5b15, 0x5b18, 0x5b19, 0x5b1a, 0x5b1b, 0x5b1c, 0x5b1d, 0x5b1e, 0x5b1f, 0x5b20, 0x5b21, 0x5b22, 0x5b23, 0x5b24, 0x5b25, 0x5b26, 0x5b27, 0x5b28, 0x5b29, 0x5b2a, 0x5b2b, 0x5b2c, 0x5b2d, 0x5b2e, 0x5b2f, 0x5b30, 0x5b31, 0x5b33, 0x5b35, 0x5b36, 0x5b38, 0x5b39, 0x5b3a, 0x5b3b, 0x5b3c, 0x5b3d, 0x5b3e, 0x5b3f, 0x5b41, 0x5b42, 0x5b43, 0x5b44, 0x5b45, 0x5b46, 0x5b47, 0x003f, /* lead byte 8c */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5b48, 0x5b49, 0x5b4a, 0x5b4b, 0x5b4c, 0x5b4d, 0x5b4e, 0x5b4f, 0x5b52, 0x5b56, 0x5b5e, 0x5b60, 0x5b61, 0x5b67, 0x5b68, 0x5b6b, 0x5b6d, 0x5b6e, 0x5b6f, 0x5b72, 0x5b74, 0x5b76, 0x5b77, 0x5b78, 0x5b79, 0x5b7b, 0x5b7c, 0x5b7e, 0x5b7f, 0x5b82, 0x5b86, 0x5b8a, 0x5b8d, 0x5b8e, 0x5b90, 0x5b91, 0x5b92, 0x5b94, 0x5b96, 0x5b9f, 0x5ba7, 0x5ba8, 0x5ba9, 0x5bac, 0x5bad, 0x5bae, 0x5baf, 0x5bb1, 0x5bb2, 0x5bb7, 0x5bba, 0x5bbb, 0x5bbc, 0x5bc0, 0x5bc1, 0x5bc3, 0x5bc8, 0x5bc9, 0x5bca, 0x5bcb, 0x5bcd, 0x5bce, 0x5bcf, 0x003f, 0x5bd1, 0x5bd4, 0x5bd5, 0x5bd6, 0x5bd7, 0x5bd8, 0x5bd9, 0x5bda, 0x5bdb, 0x5bdc, 0x5be0, 0x5be2, 0x5be3, 0x5be6, 0x5be7, 0x5be9, 0x5bea, 0x5beb, 0x5bec, 0x5bed, 0x5bef, 0x5bf1, 0x5bf2, 0x5bf3, 0x5bf4, 0x5bf5, 0x5bf6, 0x5bf7, 0x5bfd, 0x5bfe, 0x5c00, 0x5c02, 0x5c03, 0x5c05, 0x5c07, 0x5c08, 0x5c0b, 0x5c0c, 0x5c0d, 0x5c0e, 0x5c10, 0x5c12, 0x5c13, 0x5c17, 0x5c19, 0x5c1b, 0x5c1e, 0x5c1f, 0x5c20, 0x5c21, 0x5c23, 0x5c26, 0x5c28, 0x5c29, 0x5c2a, 0x5c2b, 0x5c2d, 0x5c2e, 0x5c2f, 0x5c30, 0x5c32, 0x5c33, 0x5c35, 0x5c36, 0x5c37, 0x5c43, 0x5c44, 0x5c46, 0x5c47, 0x5c4c, 0x5c4d, 0x5c52, 0x5c53, 0x5c54, 0x5c56, 0x5c57, 0x5c58, 0x5c5a, 0x5c5b, 0x5c5c, 0x5c5d, 0x5c5f, 0x5c62, 0x5c64, 0x5c67, 0x5c68, 0x5c69, 0x5c6a, 0x5c6b, 0x5c6c, 0x5c6d, 0x5c70, 0x5c72, 0x5c73, 0x5c74, 0x5c75, 0x5c76, 0x5c77, 0x5c78, 0x5c7b, 0x5c7c, 0x5c7d, 0x5c7e, 0x5c80, 0x5c83, 0x5c84, 0x5c85, 0x5c86, 0x5c87, 0x5c89, 0x5c8a, 0x5c8b, 0x5c8e, 0x5c8f, 0x5c92, 0x5c93, 0x5c95, 0x5c9d, 0x5c9e, 0x5c9f, 0x5ca0, 0x5ca1, 0x5ca4, 0x5ca5, 0x5ca6, 0x5ca7, 0x5ca8, 0x003f, /* lead byte 8d */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5caa, 0x5cae, 0x5caf, 0x5cb0, 0x5cb2, 0x5cb4, 0x5cb6, 0x5cb9, 0x5cba, 0x5cbb, 0x5cbc, 0x5cbe, 0x5cc0, 0x5cc2, 0x5cc3, 0x5cc5, 0x5cc6, 0x5cc7, 0x5cc8, 0x5cc9, 0x5cca, 0x5ccc, 0x5ccd, 0x5cce, 0x5ccf, 0x5cd0, 0x5cd1, 0x5cd3, 0x5cd4, 0x5cd5, 0x5cd6, 0x5cd7, 0x5cd8, 0x5cda, 0x5cdb, 0x5cdc, 0x5cdd, 0x5cde, 0x5cdf, 0x5ce0, 0x5ce2, 0x5ce3, 0x5ce7, 0x5ce9, 0x5ceb, 0x5cec, 0x5cee, 0x5cef, 0x5cf1, 0x5cf2, 0x5cf3, 0x5cf4, 0x5cf5, 0x5cf6, 0x5cf7, 0x5cf8, 0x5cf9, 0x5cfa, 0x5cfc, 0x5cfd, 0x5cfe, 0x5cff, 0x5d00, 0x003f, 0x5d01, 0x5d04, 0x5d05, 0x5d08, 0x5d09, 0x5d0a, 0x5d0b, 0x5d0c, 0x5d0d, 0x5d0f, 0x5d10, 0x5d11, 0x5d12, 0x5d13, 0x5d15, 0x5d17, 0x5d18, 0x5d19, 0x5d1a, 0x5d1c, 0x5d1d, 0x5d1f, 0x5d20, 0x5d21, 0x5d22, 0x5d23, 0x5d25, 0x5d28, 0x5d2a, 0x5d2b, 0x5d2c, 0x5d2f, 0x5d30, 0x5d31, 0x5d32, 0x5d33, 0x5d35, 0x5d36, 0x5d37, 0x5d38, 0x5d39, 0x5d3a, 0x5d3b, 0x5d3c, 0x5d3f, 0x5d40, 0x5d41, 0x5d42, 0x5d43, 0x5d44, 0x5d45, 0x5d46, 0x5d48, 0x5d49, 0x5d4d, 0x5d4e, 0x5d4f, 0x5d50, 0x5d51, 0x5d52, 0x5d53, 0x5d54, 0x5d55, 0x5d56, 0x5d57, 0x5d59, 0x5d5a, 0x5d5c, 0x5d5e, 0x5d5f, 0x5d60, 0x5d61, 0x5d62, 0x5d63, 0x5d64, 0x5d65, 0x5d66, 0x5d67, 0x5d68, 0x5d6a, 0x5d6d, 0x5d6e, 0x5d70, 0x5d71, 0x5d72, 0x5d73, 0x5d75, 0x5d76, 0x5d77, 0x5d78, 0x5d79, 0x5d7a, 0x5d7b, 0x5d7c, 0x5d7d, 0x5d7e, 0x5d7f, 0x5d80, 0x5d81, 0x5d83, 0x5d84, 0x5d85, 0x5d86, 0x5d87, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c, 0x5d8d, 0x5d8e, 0x5d8f, 0x5d90, 0x5d91, 0x5d92, 0x5d93, 0x5d94, 0x5d95, 0x5d96, 0x5d97, 0x5d98, 0x5d9a, 0x5d9b, 0x5d9c, 0x5d9e, 0x5d9f, 0x5da0, 0x003f, /* lead byte 8e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5da1, 0x5da2, 0x5da3, 0x5da4, 0x5da5, 0x5da6, 0x5da7, 0x5da8, 0x5da9, 0x5daa, 0x5dab, 0x5dac, 0x5dad, 0x5dae, 0x5daf, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4, 0x5db5, 0x5db6, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc, 0x5dbd, 0x5dbe, 0x5dbf, 0x5dc0, 0x5dc1, 0x5dc2, 0x5dc3, 0x5dc4, 0x5dc6, 0x5dc7, 0x5dc8, 0x5dc9, 0x5dca, 0x5dcb, 0x5dcc, 0x5dce, 0x5dcf, 0x5dd0, 0x5dd1, 0x5dd2, 0x5dd3, 0x5dd4, 0x5dd5, 0x5dd6, 0x5dd7, 0x5dd8, 0x5dd9, 0x5dda, 0x5ddc, 0x5ddf, 0x5de0, 0x5de3, 0x5de4, 0x5dea, 0x5dec, 0x5ded, 0x003f, 0x5df0, 0x5df5, 0x5df6, 0x5df8, 0x5df9, 0x5dfa, 0x5dfb, 0x5dfc, 0x5dff, 0x5e00, 0x5e04, 0x5e07, 0x5e09, 0x5e0a, 0x5e0b, 0x5e0d, 0x5e0e, 0x5e12, 0x5e13, 0x5e17, 0x5e1e, 0x5e1f, 0x5e20, 0x5e21, 0x5e22, 0x5e23, 0x5e24, 0x5e25, 0x5e28, 0x5e29, 0x5e2a, 0x5e2b, 0x5e2c, 0x5e2f, 0x5e30, 0x5e32, 0x5e33, 0x5e34, 0x5e35, 0x5e36, 0x5e39, 0x5e3a, 0x5e3e, 0x5e3f, 0x5e40, 0x5e41, 0x5e43, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5c, 0x5e5d, 0x5e5f, 0x5e60, 0x5e63, 0x5e64, 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c, 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e75, 0x5e77, 0x5e79, 0x5e7e, 0x5e81, 0x5e82, 0x5e83, 0x5e85, 0x5e88, 0x5e89, 0x5e8c, 0x5e8d, 0x5e8e, 0x5e92, 0x5e98, 0x5e9b, 0x5e9d, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb4, 0x5eba, 0x5ebb, 0x5ebc, 0x5ebd, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4, 0x5ec5, 0x003f, /* lead byte 8f */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ecb, 0x5ecc, 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed4, 0x5ed5, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edc, 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4, 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee9, 0x5eeb, 0x5eec, 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef5, 0x5ef8, 0x5ef9, 0x5efb, 0x5efc, 0x5efd, 0x5f05, 0x5f06, 0x5f07, 0x5f09, 0x5f0c, 0x5f0d, 0x5f0e, 0x5f10, 0x5f12, 0x5f14, 0x5f16, 0x5f19, 0x5f1a, 0x5f1c, 0x5f1d, 0x5f1e, 0x5f21, 0x5f22, 0x5f23, 0x5f24, 0x003f, 0x5f28, 0x5f2b, 0x5f2c, 0x5f2e, 0x5f30, 0x5f32, 0x5f33, 0x5f34, 0x5f35, 0x5f36, 0x5f37, 0x5f38, 0x5f3b, 0x5f3d, 0x5f3e, 0x5f3f, 0x5f41, 0x5f42, 0x5f43, 0x5f44, 0x5f45, 0x5f46, 0x5f47, 0x5f48, 0x5f49, 0x5f4a, 0x5f4b, 0x5f4c, 0x5f4d, 0x5f4e, 0x5f4f, 0x5f51, 0x5f54, 0x5f59, 0x5f5a, 0x5f5b, 0x5f5c, 0x5f5e, 0x5f5f, 0x5f60, 0x5f63, 0x5f65, 0x5f67, 0x5f68, 0x5f6b, 0x5f6e, 0x5f6f, 0x5f72, 0x5f74, 0x5f75, 0x5f76, 0x5f78, 0x5f7a, 0x5f7d, 0x5f7e, 0x5f7f, 0x5f83, 0x5f86, 0x5f8d, 0x5f8e, 0x5f8f, 0x5f91, 0x5f93, 0x5f94, 0x5f96, 0x5f9a, 0x5f9b, 0x5f9d, 0x5f9e, 0x5f9f, 0x5fa0, 0x5fa2, 0x5fa3, 0x5fa4, 0x5fa5, 0x5fa6, 0x5fa7, 0x5fa9, 0x5fab, 0x5fac, 0x5faf, 0x5fb0, 0x5fb1, 0x5fb2, 0x5fb3, 0x5fb4, 0x5fb6, 0x5fb8, 0x5fb9, 0x5fba, 0x5fbb, 0x5fbe, 0x5fbf, 0x5fc0, 0x5fc1, 0x5fc2, 0x5fc7, 0x5fc8, 0x5fca, 0x5fcb, 0x5fce, 0x5fd3, 0x5fd4, 0x5fd5, 0x5fda, 0x5fdb, 0x5fdc, 0x5fde, 0x5fdf, 0x5fe2, 0x5fe3, 0x5fe5, 0x5fe6, 0x5fe8, 0x5fe9, 0x5fec, 0x5fef, 0x5ff0, 0x5ff2, 0x5ff3, 0x5ff4, 0x5ff6, 0x5ff7, 0x5ff9, 0x5ffa, 0x5ffc, 0x6007, 0x003f, /* lead byte 90 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6008, 0x6009, 0x600b, 0x600c, 0x6010, 0x6011, 0x6013, 0x6017, 0x6018, 0x601a, 0x601e, 0x601f, 0x6022, 0x6023, 0x6024, 0x602c, 0x602d, 0x602e, 0x6030, 0x6031, 0x6032, 0x6033, 0x6034, 0x6036, 0x6037, 0x6038, 0x6039, 0x603a, 0x603d, 0x603e, 0x6040, 0x6044, 0x6045, 0x6046, 0x6047, 0x6048, 0x6049, 0x604a, 0x604c, 0x604e, 0x604f, 0x6051, 0x6053, 0x6054, 0x6056, 0x6057, 0x6058, 0x605b, 0x605c, 0x605e, 0x605f, 0x6060, 0x6061, 0x6065, 0x6066, 0x606e, 0x6071, 0x6072, 0x6074, 0x6075, 0x6077, 0x607e, 0x6080, 0x003f, 0x6081, 0x6082, 0x6085, 0x6086, 0x6087, 0x6088, 0x608a, 0x608b, 0x608e, 0x608f, 0x6090, 0x6091, 0x6093, 0x6095, 0x6097, 0x6098, 0x6099, 0x609c, 0x609e, 0x60a1, 0x60a2, 0x60a4, 0x60a5, 0x60a7, 0x60a9, 0x60aa, 0x60ae, 0x60b0, 0x60b3, 0x60b5, 0x60b6, 0x60b7, 0x60b9, 0x60ba, 0x60bd, 0x60be, 0x60bf, 0x60c0, 0x60c1, 0x60c2, 0x60c3, 0x60c4, 0x60c7, 0x60c8, 0x60c9, 0x60cc, 0x60cd, 0x60ce, 0x60cf, 0x60d0, 0x60d2, 0x60d3, 0x60d4, 0x60d6, 0x60d7, 0x60d9, 0x60db, 0x60de, 0x60e1, 0x60e2, 0x60e3, 0x60e4, 0x60e5, 0x60ea, 0x60f1, 0x60f2, 0x60f5, 0x60f7, 0x60f8, 0x60fb, 0x60fc, 0x60fd, 0x60fe, 0x60ff, 0x6102, 0x6103, 0x6104, 0x6105, 0x6107, 0x610a, 0x610b, 0x610c, 0x6110, 0x6111, 0x6112, 0x6113, 0x6114, 0x6116, 0x6117, 0x6118, 0x6119, 0x611b, 0x611c, 0x611d, 0x611e, 0x6121, 0x6122, 0x6125, 0x6128, 0x6129, 0x612a, 0x612c, 0x612d, 0x612e, 0x612f, 0x6130, 0x6131, 0x6132, 0x6133, 0x6134, 0x6135, 0x6136, 0x6137, 0x6138, 0x6139, 0x613a, 0x613b, 0x613c, 0x613d, 0x613e, 0x6140, 0x6141, 0x6142, 0x6143, 0x6144, 0x6145, 0x6146, 0x003f, /* lead byte 91 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6147, 0x6149, 0x614b, 0x614d, 0x614f, 0x6150, 0x6152, 0x6153, 0x6154, 0x6156, 0x6157, 0x6158, 0x6159, 0x615a, 0x615b, 0x615c, 0x615e, 0x615f, 0x6160, 0x6161, 0x6163, 0x6164, 0x6165, 0x6166, 0x6169, 0x616a, 0x616b, 0x616c, 0x616d, 0x616e, 0x616f, 0x6171, 0x6172, 0x6173, 0x6174, 0x6176, 0x6178, 0x6179, 0x617a, 0x617b, 0x617c, 0x617d, 0x617e, 0x617f, 0x6180, 0x6181, 0x6182, 0x6183, 0x6184, 0x6185, 0x6186, 0x6187, 0x6188, 0x6189, 0x618a, 0x618c, 0x618d, 0x618f, 0x6190, 0x6191, 0x6192, 0x6193, 0x6195, 0x003f, 0x6196, 0x6197, 0x6198, 0x6199, 0x619a, 0x619b, 0x619c, 0x619e, 0x619f, 0x61a0, 0x61a1, 0x61a2, 0x61a3, 0x61a4, 0x61a5, 0x61a6, 0x61aa, 0x61ab, 0x61ad, 0x61ae, 0x61af, 0x61b0, 0x61b1, 0x61b2, 0x61b3, 0x61b4, 0x61b5, 0x61b6, 0x61b8, 0x61b9, 0x61ba, 0x61bb, 0x61bc, 0x61bd, 0x61bf, 0x61c0, 0x61c1, 0x61c3, 0x61c4, 0x61c5, 0x61c6, 0x61c7, 0x61c9, 0x61cc, 0x61cd, 0x61ce, 0x61cf, 0x61d0, 0x61d3, 0x61d5, 0x61d6, 0x61d7, 0x61d8, 0x61d9, 0x61da, 0x61db, 0x61dc, 0x61dd, 0x61de, 0x61df, 0x61e0, 0x61e1, 0x61e2, 0x61e3, 0x61e4, 0x61e5, 0x61e7, 0x61e8, 0x61e9, 0x61ea, 0x61eb, 0x61ec, 0x61ed, 0x61ee, 0x61ef, 0x61f0, 0x61f1, 0x61f2, 0x61f3, 0x61f4, 0x61f6, 0x61f7, 0x61f8, 0x61f9, 0x61fa, 0x61fb, 0x61fc, 0x61fd, 0x61fe, 0x6200, 0x6201, 0x6202, 0x6203, 0x6204, 0x6205, 0x6207, 0x6209, 0x6213, 0x6214, 0x6219, 0x621c, 0x621d, 0x621e, 0x6220, 0x6223, 0x6226, 0x6227, 0x6228, 0x6229, 0x622b, 0x622d, 0x622f, 0x6230, 0x6231, 0x6232, 0x6235, 0x6236, 0x6238, 0x6239, 0x623a, 0x623b, 0x623c, 0x6242, 0x6244, 0x6245, 0x6246, 0x624a, 0x003f, /* lead byte 92 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x624f, 0x6250, 0x6255, 0x6256, 0x6257, 0x6259, 0x625a, 0x625c, 0x625d, 0x625e, 0x625f, 0x6260, 0x6261, 0x6262, 0x6264, 0x6265, 0x6268, 0x6271, 0x6272, 0x6274, 0x6275, 0x6277, 0x6278, 0x627a, 0x627b, 0x627d, 0x6281, 0x6282, 0x6283, 0x6285, 0x6286, 0x6287, 0x6288, 0x628b, 0x628c, 0x628d, 0x628e, 0x628f, 0x6290, 0x6294, 0x6299, 0x629c, 0x629d, 0x629e, 0x62a3, 0x62a6, 0x62a7, 0x62a9, 0x62aa, 0x62ad, 0x62ae, 0x62af, 0x62b0, 0x62b2, 0x62b3, 0x62b4, 0x62b6, 0x62b7, 0x62b8, 0x62ba, 0x62be, 0x62c0, 0x62c1, 0x003f, 0x62c3, 0x62cb, 0x62cf, 0x62d1, 0x62d5, 0x62dd, 0x62de, 0x62e0, 0x62e1, 0x62e4, 0x62ea, 0x62eb, 0x62f0, 0x62f2, 0x62f5, 0x62f8, 0x62f9, 0x62fa, 0x62fb, 0x6300, 0x6303, 0x6304, 0x6305, 0x6306, 0x630a, 0x630b, 0x630c, 0x630d, 0x630f, 0x6310, 0x6312, 0x6313, 0x6314, 0x6315, 0x6317, 0x6318, 0x6319, 0x631c, 0x6326, 0x6327, 0x6329, 0x632c, 0x632d, 0x632e, 0x6330, 0x6331, 0x6333, 0x6334, 0x6335, 0x6336, 0x6337, 0x6338, 0x633b, 0x633c, 0x633e, 0x633f, 0x6340, 0x6341, 0x6344, 0x6347, 0x6348, 0x634a, 0x6351, 0x6352, 0x6353, 0x6354, 0x6356, 0x6357, 0x6358, 0x6359, 0x635a, 0x635b, 0x635c, 0x635d, 0x6360, 0x6364, 0x6365, 0x6366, 0x6368, 0x636a, 0x636b, 0x636c, 0x636f, 0x6370, 0x6372, 0x6373, 0x6374, 0x6375, 0x6378, 0x6379, 0x637c, 0x637d, 0x637e, 0x637f, 0x6381, 0x6383, 0x6384, 0x6385, 0x6386, 0x638b, 0x638d, 0x6391, 0x6393, 0x6394, 0x6395, 0x6397, 0x6399, 0x639a, 0x639b, 0x639c, 0x639d, 0x639e, 0x639f, 0x63a1, 0x63a4, 0x63a6, 0x63ab, 0x63af, 0x63b1, 0x63b2, 0x63b5, 0x63b6, 0x63b9, 0x63bb, 0x63bd, 0x63bf, 0x63c0, 0x003f, /* lead byte 93 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x63c1, 0x63c2, 0x63c3, 0x63c5, 0x63c7, 0x63c8, 0x63ca, 0x63cb, 0x63cc, 0x63d1, 0x63d3, 0x63d4, 0x63d5, 0x63d7, 0x63d8, 0x63d9, 0x63da, 0x63db, 0x63dc, 0x63dd, 0x63df, 0x63e2, 0x63e4, 0x63e5, 0x63e6, 0x63e7, 0x63e8, 0x63eb, 0x63ec, 0x63ee, 0x63ef, 0x63f0, 0x63f1, 0x63f3, 0x63f5, 0x63f7, 0x63f9, 0x63fa, 0x63fb, 0x63fc, 0x63fe, 0x6403, 0x6404, 0x6406, 0x6407, 0x6408, 0x6409, 0x640a, 0x640d, 0x640e, 0x6411, 0x6412, 0x6415, 0x6416, 0x6417, 0x6418, 0x6419, 0x641a, 0x641d, 0x641f, 0x6422, 0x6423, 0x6424, 0x003f, 0x6425, 0x6427, 0x6428, 0x6429, 0x642b, 0x642e, 0x642f, 0x6430, 0x6431, 0x6432, 0x6433, 0x6435, 0x6436, 0x6437, 0x6438, 0x6439, 0x643b, 0x643c, 0x643e, 0x6440, 0x6442, 0x6443, 0x6449, 0x644b, 0x644c, 0x644d, 0x644e, 0x644f, 0x6450, 0x6451, 0x6453, 0x6455, 0x6456, 0x6457, 0x6459, 0x645a, 0x645b, 0x645c, 0x645d, 0x645f, 0x6460, 0x6461, 0x6462, 0x6463, 0x6464, 0x6465, 0x6466, 0x6468, 0x646a, 0x646b, 0x646c, 0x646e, 0x646f, 0x6470, 0x6471, 0x6472, 0x6473, 0x6474, 0x6475, 0x6476, 0x6477, 0x647b, 0x647c, 0x647d, 0x647e, 0x647f, 0x6480, 0x6481, 0x6483, 0x6486, 0x6488, 0x6489, 0x648a, 0x648b, 0x648c, 0x648d, 0x648e, 0x648f, 0x6490, 0x6493, 0x6494, 0x6497, 0x6498, 0x649a, 0x649b, 0x649c, 0x649d, 0x649f, 0x64a0, 0x64a1, 0x64a2, 0x64a3, 0x64a5, 0x64a6, 0x64a7, 0x64a8, 0x64aa, 0x64ab, 0x64af, 0x64b1, 0x64b2, 0x64b3, 0x64b4, 0x64b6, 0x64b9, 0x64bb, 0x64bd, 0x64be, 0x64bf, 0x64c1, 0x64c3, 0x64c4, 0x64c6, 0x64c7, 0x64c8, 0x64c9, 0x64ca, 0x64cb, 0x64cc, 0x64cf, 0x64d1, 0x64d3, 0x64d4, 0x64d5, 0x64d6, 0x64d9, 0x64da, 0x003f, /* lead byte 94 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x64db, 0x64dc, 0x64dd, 0x64df, 0x64e0, 0x64e1, 0x64e3, 0x64e5, 0x64e7, 0x64e8, 0x64e9, 0x64ea, 0x64eb, 0x64ec, 0x64ed, 0x64ee, 0x64ef, 0x64f0, 0x64f1, 0x64f2, 0x64f3, 0x64f4, 0x64f5, 0x64f6, 0x64f7, 0x64f8, 0x64f9, 0x64fa, 0x64fb, 0x64fc, 0x64fd, 0x64fe, 0x64ff, 0x6501, 0x6502, 0x6503, 0x6504, 0x6505, 0x6506, 0x6507, 0x6508, 0x650a, 0x650b, 0x650c, 0x650d, 0x650e, 0x650f, 0x6510, 0x6511, 0x6513, 0x6514, 0x6515, 0x6516, 0x6517, 0x6519, 0x651a, 0x651b, 0x651c, 0x651d, 0x651e, 0x651f, 0x6520, 0x6521, 0x003f, 0x6522, 0x6523, 0x6524, 0x6526, 0x6527, 0x6528, 0x6529, 0x652a, 0x652c, 0x652d, 0x6530, 0x6531, 0x6532, 0x6533, 0x6537, 0x653a, 0x653c, 0x653d, 0x6540, 0x6541, 0x6542, 0x6543, 0x6544, 0x6546, 0x6547, 0x654a, 0x654b, 0x654d, 0x654e, 0x6550, 0x6552, 0x6553, 0x6554, 0x6557, 0x6558, 0x655a, 0x655c, 0x655f, 0x6560, 0x6561, 0x6564, 0x6565, 0x6567, 0x6568, 0x6569, 0x656a, 0x656d, 0x656e, 0x656f, 0x6571, 0x6573, 0x6575, 0x6576, 0x6578, 0x6579, 0x657a, 0x657b, 0x657c, 0x657d, 0x657e, 0x657f, 0x6580, 0x6581, 0x6582, 0x6583, 0x6584, 0x6585, 0x6586, 0x6588, 0x6589, 0x658a, 0x658d, 0x658e, 0x658f, 0x6592, 0x6594, 0x6595, 0x6596, 0x6598, 0x659a, 0x659d, 0x659e, 0x65a0, 0x65a2, 0x65a3, 0x65a6, 0x65a8, 0x65aa, 0x65ac, 0x65ae, 0x65b1, 0x65b2, 0x65b3, 0x65b4, 0x65b5, 0x65b6, 0x65b7, 0x65b8, 0x65ba, 0x65bb, 0x65be, 0x65bf, 0x65c0, 0x65c2, 0x65c7, 0x65c8, 0x65c9, 0x65ca, 0x65cd, 0x65d0, 0x65d1, 0x65d3, 0x65d4, 0x65d5, 0x65d8, 0x65d9, 0x65da, 0x65db, 0x65dc, 0x65dd, 0x65de, 0x65df, 0x65e1, 0x65e3, 0x65e4, 0x65ea, 0x65eb, 0x003f, /* lead byte 95 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x65f2, 0x65f3, 0x65f4, 0x65f5, 0x65f8, 0x65f9, 0x65fb, 0x65fc, 0x65fd, 0x65fe, 0x65ff, 0x6601, 0x6604, 0x6605, 0x6607, 0x6608, 0x6609, 0x660b, 0x660d, 0x6610, 0x6611, 0x6612, 0x6616, 0x6617, 0x6618, 0x661a, 0x661b, 0x661c, 0x661e, 0x6621, 0x6622, 0x6623, 0x6624, 0x6626, 0x6629, 0x662a, 0x662b, 0x662c, 0x662e, 0x6630, 0x6632, 0x6633, 0x6637, 0x6638, 0x6639, 0x663a, 0x663b, 0x663d, 0x663f, 0x6640, 0x6642, 0x6644, 0x6645, 0x6646, 0x6647, 0x6648, 0x6649, 0x664a, 0x664d, 0x664e, 0x6650, 0x6651, 0x6658, 0x003f, 0x6659, 0x665b, 0x665c, 0x665d, 0x665e, 0x6660, 0x6662, 0x6663, 0x6665, 0x6667, 0x6669, 0x666a, 0x666b, 0x666c, 0x666d, 0x6671, 0x6672, 0x6673, 0x6675, 0x6678, 0x6679, 0x667b, 0x667c, 0x667d, 0x667f, 0x6680, 0x6681, 0x6683, 0x6685, 0x6686, 0x6688, 0x6689, 0x668a, 0x668b, 0x668d, 0x668e, 0x668f, 0x6690, 0x6692, 0x6693, 0x6694, 0x6695, 0x6698, 0x6699, 0x669a, 0x669b, 0x669c, 0x669e, 0x669f, 0x66a0, 0x66a1, 0x66a2, 0x66a3, 0x66a4, 0x66a5, 0x66a6, 0x66a9, 0x66aa, 0x66ab, 0x66ac, 0x66ad, 0x66af, 0x66b0, 0x66b1, 0x66b2, 0x66b3, 0x66b5, 0x66b6, 0x66b7, 0x66b8, 0x66ba, 0x66bb, 0x66bc, 0x66bd, 0x66bf, 0x66c0, 0x66c1, 0x66c2, 0x66c3, 0x66c4, 0x66c5, 0x66c6, 0x66c7, 0x66c8, 0x66c9, 0x66ca, 0x66cb, 0x66cc, 0x66cd, 0x66ce, 0x66cf, 0x66d0, 0x66d1, 0x66d2, 0x66d3, 0x66d4, 0x66d5, 0x66d6, 0x66d7, 0x66d8, 0x66da, 0x66de, 0x66df, 0x66e0, 0x66e1, 0x66e2, 0x66e3, 0x66e4, 0x66e5, 0x66e7, 0x66e8, 0x66ea, 0x66eb, 0x66ec, 0x66ed, 0x66ee, 0x66ef, 0x66f1, 0x66f5, 0x66f6, 0x66f8, 0x66fa, 0x66fb, 0x66fd, 0x6701, 0x6702, 0x6703, 0x003f, /* lead byte 96 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6704, 0x6705, 0x6706, 0x6707, 0x670c, 0x670e, 0x670f, 0x6711, 0x6712, 0x6713, 0x6716, 0x6718, 0x6719, 0x671a, 0x671c, 0x671e, 0x6720, 0x6721, 0x6722, 0x6723, 0x6724, 0x6725, 0x6727, 0x6729, 0x672e, 0x6730, 0x6732, 0x6733, 0x6736, 0x6737, 0x6738, 0x6739, 0x673b, 0x673c, 0x673e, 0x673f, 0x6741, 0x6744, 0x6745, 0x6747, 0x674a, 0x674b, 0x674d, 0x6752, 0x6754, 0x6755, 0x6757, 0x6758, 0x6759, 0x675a, 0x675b, 0x675d, 0x6762, 0x6763, 0x6764, 0x6766, 0x6767, 0x676b, 0x676c, 0x676e, 0x6771, 0x6774, 0x6776, 0x003f, 0x6778, 0x6779, 0x677a, 0x677b, 0x677d, 0x6780, 0x6782, 0x6783, 0x6785, 0x6786, 0x6788, 0x678a, 0x678c, 0x678d, 0x678e, 0x678f, 0x6791, 0x6792, 0x6793, 0x6794, 0x6796, 0x6799, 0x679b, 0x679f, 0x67a0, 0x67a1, 0x67a4, 0x67a6, 0x67a9, 0x67ac, 0x67ae, 0x67b1, 0x67b2, 0x67b4, 0x67b9, 0x67ba, 0x67bb, 0x67bc, 0x67bd, 0x67be, 0x67bf, 0x67c0, 0x67c2, 0x67c5, 0x67c6, 0x67c7, 0x67c8, 0x67c9, 0x67ca, 0x67cb, 0x67cc, 0x67cd, 0x67ce, 0x67d5, 0x67d6, 0x67d7, 0x67db, 0x67df, 0x67e1, 0x67e3, 0x67e4, 0x67e6, 0x67e7, 0x67e8, 0x67ea, 0x67eb, 0x67ed, 0x67ee, 0x67f2, 0x67f5, 0x67f6, 0x67f7, 0x67f8, 0x67f9, 0x67fa, 0x67fb, 0x67fc, 0x67fe, 0x6801, 0x6802, 0x6803, 0x6804, 0x6806, 0x680d, 0x6810, 0x6812, 0x6814, 0x6815, 0x6818, 0x6819, 0x681a, 0x681b, 0x681c, 0x681e, 0x681f, 0x6820, 0x6822, 0x6823, 0x6824, 0x6825, 0x6826, 0x6827, 0x6828, 0x682b, 0x682c, 0x682d, 0x682e, 0x682f, 0x6830, 0x6831, 0x6834, 0x6835, 0x6836, 0x683a, 0x683b, 0x683f, 0x6847, 0x684b, 0x684d, 0x684f, 0x6852, 0x6856, 0x6857, 0x6858, 0x6859, 0x685a, 0x685b, 0x003f, /* lead byte 97 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x685c, 0x685d, 0x685e, 0x685f, 0x686a, 0x686c, 0x686d, 0x686e, 0x686f, 0x6870, 0x6871, 0x6872, 0x6873, 0x6875, 0x6878, 0x6879, 0x687a, 0x687b, 0x687c, 0x687d, 0x687e, 0x687f, 0x6880, 0x6882, 0x6884, 0x6887, 0x6888, 0x6889, 0x688a, 0x688b, 0x688c, 0x688d, 0x688e, 0x6890, 0x6891, 0x6892, 0x6894, 0x6895, 0x6896, 0x6898, 0x6899, 0x689a, 0x689b, 0x689c, 0x689d, 0x689e, 0x689f, 0x68a0, 0x68a1, 0x68a3, 0x68a4, 0x68a5, 0x68a9, 0x68aa, 0x68ab, 0x68ac, 0x68ae, 0x68b1, 0x68b2, 0x68b4, 0x68b6, 0x68b7, 0x68b8, 0x003f, 0x68b9, 0x68ba, 0x68bb, 0x68bc, 0x68bd, 0x68be, 0x68bf, 0x68c1, 0x68c3, 0x68c4, 0x68c5, 0x68c6, 0x68c7, 0x68c8, 0x68ca, 0x68cc, 0x68ce, 0x68cf, 0x68d0, 0x68d1, 0x68d3, 0x68d4, 0x68d6, 0x68d7, 0x68d9, 0x68db, 0x68dc, 0x68dd, 0x68de, 0x68df, 0x68e1, 0x68e2, 0x68e4, 0x68e5, 0x68e6, 0x68e7, 0x68e8, 0x68e9, 0x68ea, 0x68eb, 0x68ec, 0x68ed, 0x68ef, 0x68f2, 0x68f3, 0x68f4, 0x68f6, 0x68f7, 0x68f8, 0x68fb, 0x68fd, 0x68fe, 0x68ff, 0x6900, 0x6902, 0x6903, 0x6904, 0x6906, 0x6907, 0x6908, 0x6909, 0x690a, 0x690c, 0x690f, 0x6911, 0x6913, 0x6914, 0x6915, 0x6916, 0x6917, 0x6918, 0x6919, 0x691a, 0x691b, 0x691c, 0x691d, 0x691e, 0x6921, 0x6922, 0x6923, 0x6925, 0x6926, 0x6927, 0x6928, 0x6929, 0x692a, 0x692b, 0x692c, 0x692e, 0x692f, 0x6931, 0x6932, 0x6933, 0x6935, 0x6936, 0x6937, 0x6938, 0x693a, 0x693b, 0x693c, 0x693e, 0x6940, 0x6941, 0x6943, 0x6944, 0x6945, 0x6946, 0x6947, 0x6948, 0x6949, 0x694a, 0x694b, 0x694c, 0x694d, 0x694e, 0x694f, 0x6950, 0x6951, 0x6952, 0x6953, 0x6955, 0x6956, 0x6958, 0x6959, 0x695b, 0x695c, 0x695f, 0x003f, /* lead byte 98 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6961, 0x6962, 0x6964, 0x6965, 0x6967, 0x6968, 0x6969, 0x696a, 0x696c, 0x696d, 0x696f, 0x6970, 0x6972, 0x6973, 0x6974, 0x6975, 0x6976, 0x697a, 0x697b, 0x697d, 0x697e, 0x697f, 0x6981, 0x6983, 0x6985, 0x698a, 0x698b, 0x698c, 0x698e, 0x698f, 0x6990, 0x6991, 0x6992, 0x6993, 0x6996, 0x6997, 0x6999, 0x699a, 0x699d, 0x699e, 0x699f, 0x69a0, 0x69a1, 0x69a2, 0x69a3, 0x69a4, 0x69a5, 0x69a6, 0x69a9, 0x69aa, 0x69ac, 0x69ae, 0x69af, 0x69b0, 0x69b2, 0x69b3, 0x69b5, 0x69b6, 0x69b8, 0x69b9, 0x69ba, 0x69bc, 0x69bd, 0x003f, 0x69be, 0x69bf, 0x69c0, 0x69c2, 0x69c3, 0x69c4, 0x69c5, 0x69c6, 0x69c7, 0x69c8, 0x69c9, 0x69cb, 0x69cd, 0x69cf, 0x69d1, 0x69d2, 0x69d3, 0x69d5, 0x69d6, 0x69d7, 0x69d8, 0x69d9, 0x69da, 0x69dc, 0x69dd, 0x69de, 0x69e1, 0x69e2, 0x69e3, 0x69e4, 0x69e5, 0x69e6, 0x69e7, 0x69e8, 0x69e9, 0x69ea, 0x69eb, 0x69ec, 0x69ee, 0x69ef, 0x69f0, 0x69f1, 0x69f3, 0x69f4, 0x69f5, 0x69f6, 0x69f7, 0x69f8, 0x69f9, 0x69fa, 0x69fb, 0x69fc, 0x69fe, 0x6a00, 0x6a01, 0x6a02, 0x6a03, 0x6a04, 0x6a05, 0x6a06, 0x6a07, 0x6a08, 0x6a09, 0x6a0b, 0x6a0c, 0x6a0d, 0x6a0e, 0x6a0f, 0x6a10, 0x6a11, 0x6a12, 0x6a13, 0x6a14, 0x6a15, 0x6a16, 0x6a19, 0x6a1a, 0x6a1b, 0x6a1c, 0x6a1d, 0x6a1e, 0x6a20, 0x6a22, 0x6a23, 0x6a24, 0x6a25, 0x6a26, 0x6a27, 0x6a29, 0x6a2b, 0x6a2c, 0x6a2d, 0x6a2e, 0x6a30, 0x6a32, 0x6a33, 0x6a34, 0x6a36, 0x6a37, 0x6a38, 0x6a39, 0x6a3a, 0x6a3b, 0x6a3c, 0x6a3f, 0x6a40, 0x6a41, 0x6a42, 0x6a43, 0x6a45, 0x6a46, 0x6a48, 0x6a49, 0x6a4a, 0x6a4b, 0x6a4c, 0x6a4d, 0x6a4e, 0x6a4f, 0x6a51, 0x6a52, 0x6a53, 0x6a54, 0x6a55, 0x6a56, 0x6a57, 0x6a5a, 0x003f, /* lead byte 99 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6a5c, 0x6a5d, 0x6a5e, 0x6a5f, 0x6a60, 0x6a62, 0x6a63, 0x6a64, 0x6a66, 0x6a67, 0x6a68, 0x6a69, 0x6a6a, 0x6a6b, 0x6a6c, 0x6a6d, 0x6a6e, 0x6a6f, 0x6a70, 0x6a72, 0x6a73, 0x6a74, 0x6a75, 0x6a76, 0x6a77, 0x6a78, 0x6a7a, 0x6a7b, 0x6a7d, 0x6a7e, 0x6a7f, 0x6a81, 0x6a82, 0x6a83, 0x6a85, 0x6a86, 0x6a87, 0x6a88, 0x6a89, 0x6a8a, 0x6a8b, 0x6a8c, 0x6a8d, 0x6a8f, 0x6a92, 0x6a93, 0x6a94, 0x6a95, 0x6a96, 0x6a98, 0x6a99, 0x6a9a, 0x6a9b, 0x6a9c, 0x6a9d, 0x6a9e, 0x6a9f, 0x6aa1, 0x6aa2, 0x6aa3, 0x6aa4, 0x6aa5, 0x6aa6, 0x003f, 0x6aa7, 0x6aa8, 0x6aaa, 0x6aad, 0x6aae, 0x6aaf, 0x6ab0, 0x6ab1, 0x6ab2, 0x6ab3, 0x6ab4, 0x6ab5, 0x6ab6, 0x6ab7, 0x6ab8, 0x6ab9, 0x6aba, 0x6abb, 0x6abc, 0x6abd, 0x6abe, 0x6abf, 0x6ac0, 0x6ac1, 0x6ac2, 0x6ac3, 0x6ac4, 0x6ac5, 0x6ac6, 0x6ac7, 0x6ac8, 0x6ac9, 0x6aca, 0x6acb, 0x6acc, 0x6acd, 0x6ace, 0x6acf, 0x6ad0, 0x6ad1, 0x6ad2, 0x6ad3, 0x6ad4, 0x6ad5, 0x6ad6, 0x6ad7, 0x6ad8, 0x6ad9, 0x6ada, 0x6adb, 0x6adc, 0x6add, 0x6ade, 0x6adf, 0x6ae0, 0x6ae1, 0x6ae2, 0x6ae3, 0x6ae4, 0x6ae5, 0x6ae6, 0x6ae7, 0x6ae8, 0x6ae9, 0x6aea, 0x6aeb, 0x6aec, 0x6aed, 0x6aee, 0x6aef, 0x6af0, 0x6af1, 0x6af2, 0x6af3, 0x6af4, 0x6af5, 0x6af6, 0x6af7, 0x6af8, 0x6af9, 0x6afa, 0x6afb, 0x6afc, 0x6afd, 0x6afe, 0x6aff, 0x6b00, 0x6b01, 0x6b02, 0x6b03, 0x6b04, 0x6b05, 0x6b06, 0x6b07, 0x6b08, 0x6b09, 0x6b0a, 0x6b0b, 0x6b0c, 0x6b0d, 0x6b0e, 0x6b0f, 0x6b10, 0x6b11, 0x6b12, 0x6b13, 0x6b14, 0x6b15, 0x6b16, 0x6b17, 0x6b18, 0x6b19, 0x6b1a, 0x6b1b, 0x6b1c, 0x6b1d, 0x6b1e, 0x6b1f, 0x6b25, 0x6b26, 0x6b28, 0x6b29, 0x6b2a, 0x6b2b, 0x6b2c, 0x6b2d, 0x6b2e, 0x003f, /* lead byte 9a */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6b2f, 0x6b30, 0x6b31, 0x6b33, 0x6b34, 0x6b35, 0x6b36, 0x6b38, 0x6b3b, 0x6b3c, 0x6b3d, 0x6b3f, 0x6b40, 0x6b41, 0x6b42, 0x6b44, 0x6b45, 0x6b48, 0x6b4a, 0x6b4b, 0x6b4d, 0x6b4e, 0x6b4f, 0x6b50, 0x6b51, 0x6b52, 0x6b53, 0x6b54, 0x6b55, 0x6b56, 0x6b57, 0x6b58, 0x6b5a, 0x6b5b, 0x6b5c, 0x6b5d, 0x6b5e, 0x6b5f, 0x6b60, 0x6b61, 0x6b68, 0x6b69, 0x6b6b, 0x6b6c, 0x6b6d, 0x6b6e, 0x6b6f, 0x6b70, 0x6b71, 0x6b72, 0x6b73, 0x6b74, 0x6b75, 0x6b76, 0x6b77, 0x6b78, 0x6b7a, 0x6b7d, 0x6b7e, 0x6b7f, 0x6b80, 0x6b85, 0x6b88, 0x003f, 0x6b8c, 0x6b8e, 0x6b8f, 0x6b90, 0x6b91, 0x6b94, 0x6b95, 0x6b97, 0x6b98, 0x6b99, 0x6b9c, 0x6b9d, 0x6b9e, 0x6b9f, 0x6ba0, 0x6ba2, 0x6ba3, 0x6ba4, 0x6ba5, 0x6ba6, 0x6ba7, 0x6ba8, 0x6ba9, 0x6bab, 0x6bac, 0x6bad, 0x6bae, 0x6baf, 0x6bb0, 0x6bb1, 0x6bb2, 0x6bb6, 0x6bb8, 0x6bb9, 0x6bba, 0x6bbb, 0x6bbc, 0x6bbd, 0x6bbe, 0x6bc0, 0x6bc3, 0x6bc4, 0x6bc6, 0x6bc7, 0x6bc8, 0x6bc9, 0x6bca, 0x6bcc, 0x6bce, 0x6bd0, 0x6bd1, 0x6bd8, 0x6bda, 0x6bdc, 0x6bdd, 0x6bde, 0x6bdf, 0x6be0, 0x6be2, 0x6be3, 0x6be4, 0x6be5, 0x6be6, 0x6be7, 0x6be8, 0x6be9, 0x6bec, 0x6bed, 0x6bee, 0x6bf0, 0x6bf1, 0x6bf2, 0x6bf4, 0x6bf6, 0x6bf7, 0x6bf8, 0x6bfa, 0x6bfb, 0x6bfc, 0x6bfe, 0x6bff, 0x6c00, 0x6c01, 0x6c02, 0x6c03, 0x6c04, 0x6c08, 0x6c09, 0x6c0a, 0x6c0b, 0x6c0c, 0x6c0e, 0x6c12, 0x6c17, 0x6c1c, 0x6c1d, 0x6c1e, 0x6c20, 0x6c23, 0x6c25, 0x6c2b, 0x6c2c, 0x6c2d, 0x6c31, 0x6c33, 0x6c36, 0x6c37, 0x6c39, 0x6c3a, 0x6c3b, 0x6c3c, 0x6c3e, 0x6c3f, 0x6c43, 0x6c44, 0x6c45, 0x6c48, 0x6c4b, 0x6c4c, 0x6c4d, 0x6c4e, 0x6c4f, 0x6c51, 0x6c52, 0x6c53, 0x6c56, 0x6c58, 0x003f, /* lead byte 9b */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6c59, 0x6c5a, 0x6c62, 0x6c63, 0x6c65, 0x6c66, 0x6c67, 0x6c6b, 0x6c6c, 0x6c6d, 0x6c6e, 0x6c6f, 0x6c71, 0x6c73, 0x6c75, 0x6c77, 0x6c78, 0x6c7a, 0x6c7b, 0x6c7c, 0x6c7f, 0x6c80, 0x6c84, 0x6c87, 0x6c8a, 0x6c8b, 0x6c8d, 0x6c8e, 0x6c91, 0x6c92, 0x6c95, 0x6c96, 0x6c97, 0x6c98, 0x6c9a, 0x6c9c, 0x6c9d, 0x6c9e, 0x6ca0, 0x6ca2, 0x6ca8, 0x6cac, 0x6caf, 0x6cb0, 0x6cb4, 0x6cb5, 0x6cb6, 0x6cb7, 0x6cba, 0x6cc0, 0x6cc1, 0x6cc2, 0x6cc3, 0x6cc6, 0x6cc7, 0x6cc8, 0x6ccb, 0x6ccd, 0x6cce, 0x6ccf, 0x6cd1, 0x6cd2, 0x6cd8, 0x003f, 0x6cd9, 0x6cda, 0x6cdc, 0x6cdd, 0x6cdf, 0x6ce4, 0x6ce6, 0x6ce7, 0x6ce9, 0x6cec, 0x6ced, 0x6cf2, 0x6cf4, 0x6cf9, 0x6cff, 0x6d00, 0x6d02, 0x6d03, 0x6d05, 0x6d06, 0x6d08, 0x6d09, 0x6d0a, 0x6d0d, 0x6d0f, 0x6d10, 0x6d11, 0x6d13, 0x6d14, 0x6d15, 0x6d16, 0x6d18, 0x6d1c, 0x6d1d, 0x6d1f, 0x6d20, 0x6d21, 0x6d22, 0x6d23, 0x6d24, 0x6d26, 0x6d28, 0x6d29, 0x6d2c, 0x6d2d, 0x6d2f, 0x6d30, 0x6d34, 0x6d36, 0x6d37, 0x6d38, 0x6d3a, 0x6d3f, 0x6d40, 0x6d42, 0x6d44, 0x6d49, 0x6d4c, 0x6d50, 0x6d55, 0x6d56, 0x6d57, 0x6d58, 0x6d5b, 0x6d5d, 0x6d5f, 0x6d61, 0x6d62, 0x6d64, 0x6d65, 0x6d67, 0x6d68, 0x6d6b, 0x6d6c, 0x6d6d, 0x6d70, 0x6d71, 0x6d72, 0x6d73, 0x6d75, 0x6d76, 0x6d79, 0x6d7a, 0x6d7b, 0x6d7d, 0x6d7e, 0x6d7f, 0x6d80, 0x6d81, 0x6d83, 0x6d84, 0x6d86, 0x6d87, 0x6d8a, 0x6d8b, 0x6d8d, 0x6d8f, 0x6d90, 0x6d92, 0x6d96, 0x6d97, 0x6d98, 0x6d99, 0x6d9a, 0x6d9c, 0x6da2, 0x6da5, 0x6dac, 0x6dad, 0x6db0, 0x6db1, 0x6db3, 0x6db4, 0x6db6, 0x6db7, 0x6db9, 0x6dba, 0x6dbb, 0x6dbc, 0x6dbd, 0x6dbe, 0x6dc1, 0x6dc2, 0x6dc3, 0x6dc8, 0x6dc9, 0x6dca, 0x003f, /* lead byte 9c */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6dcd, 0x6dce, 0x6dcf, 0x6dd0, 0x6dd2, 0x6dd3, 0x6dd4, 0x6dd5, 0x6dd7, 0x6dda, 0x6ddb, 0x6ddc, 0x6ddf, 0x6de2, 0x6de3, 0x6de5, 0x6de7, 0x6de8, 0x6de9, 0x6dea, 0x6ded, 0x6def, 0x6df0, 0x6df2, 0x6df4, 0x6df5, 0x6df6, 0x6df8, 0x6dfa, 0x6dfd, 0x6dfe, 0x6dff, 0x6e00, 0x6e01, 0x6e02, 0x6e03, 0x6e04, 0x6e06, 0x6e07, 0x6e08, 0x6e09, 0x6e0b, 0x6e0f, 0x6e12, 0x6e13, 0x6e15, 0x6e18, 0x6e19, 0x6e1b, 0x6e1c, 0x6e1e, 0x6e1f, 0x6e22, 0x6e26, 0x6e27, 0x6e28, 0x6e2a, 0x6e2c, 0x6e2e, 0x6e30, 0x6e31, 0x6e33, 0x6e35, 0x003f, 0x6e36, 0x6e37, 0x6e39, 0x6e3b, 0x6e3c, 0x6e3d, 0x6e3e, 0x6e3f, 0x6e40, 0x6e41, 0x6e42, 0x6e45, 0x6e46, 0x6e47, 0x6e48, 0x6e49, 0x6e4a, 0x6e4b, 0x6e4c, 0x6e4f, 0x6e50, 0x6e51, 0x6e52, 0x6e55, 0x6e57, 0x6e59, 0x6e5a, 0x6e5c, 0x6e5d, 0x6e5e, 0x6e60, 0x6e61, 0x6e62, 0x6e63, 0x6e64, 0x6e65, 0x6e66, 0x6e67, 0x6e68, 0x6e69, 0x6e6a, 0x6e6c, 0x6e6d, 0x6e6f, 0x6e70, 0x6e71, 0x6e72, 0x6e73, 0x6e74, 0x6e75, 0x6e76, 0x6e77, 0x6e78, 0x6e79, 0x6e7a, 0x6e7b, 0x6e7c, 0x6e7d, 0x6e80, 0x6e81, 0x6e82, 0x6e84, 0x6e87, 0x6e88, 0x6e8a, 0x6e8b, 0x6e8c, 0x6e8d, 0x6e8e, 0x6e91, 0x6e92, 0x6e93, 0x6e94, 0x6e95, 0x6e96, 0x6e97, 0x6e99, 0x6e9a, 0x6e9b, 0x6e9d, 0x6e9e, 0x6ea0, 0x6ea1, 0x6ea3, 0x6ea4, 0x6ea6, 0x6ea8, 0x6ea9, 0x6eab, 0x6eac, 0x6ead, 0x6eae, 0x6eb0, 0x6eb3, 0x6eb5, 0x6eb8, 0x6eb9, 0x6ebc, 0x6ebe, 0x6ebf, 0x6ec0, 0x6ec3, 0x6ec4, 0x6ec5, 0x6ec6, 0x6ec8, 0x6ec9, 0x6eca, 0x6ecc, 0x6ecd, 0x6ece, 0x6ed0, 0x6ed2, 0x6ed6, 0x6ed8, 0x6ed9, 0x6edb, 0x6edc, 0x6edd, 0x6ee3, 0x6ee7, 0x6eea, 0x6eeb, 0x6eec, 0x6eed, 0x6eee, 0x6eef, 0x003f, /* lead byte 9d */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6ef0, 0x6ef1, 0x6ef2, 0x6ef3, 0x6ef5, 0x6ef6, 0x6ef7, 0x6ef8, 0x6efa, 0x6efb, 0x6efc, 0x6efd, 0x6efe, 0x6eff, 0x6f00, 0x6f01, 0x6f03, 0x6f04, 0x6f05, 0x6f07, 0x6f08, 0x6f0a, 0x6f0b, 0x6f0c, 0x6f0d, 0x6f0e, 0x6f10, 0x6f11, 0x6f12, 0x6f16, 0x6f17, 0x6f18, 0x6f19, 0x6f1a, 0x6f1b, 0x6f1c, 0x6f1d, 0x6f1e, 0x6f1f, 0x6f21, 0x6f22, 0x6f23, 0x6f25, 0x6f26, 0x6f27, 0x6f28, 0x6f2c, 0x6f2e, 0x6f30, 0x6f32, 0x6f34, 0x6f35, 0x6f37, 0x6f38, 0x6f39, 0x6f3a, 0x6f3b, 0x6f3c, 0x6f3d, 0x6f3f, 0x6f40, 0x6f41, 0x6f42, 0x003f, 0x6f43, 0x6f44, 0x6f45, 0x6f48, 0x6f49, 0x6f4a, 0x6f4c, 0x6f4e, 0x6f4f, 0x6f50, 0x6f51, 0x6f52, 0x6f53, 0x6f54, 0x6f55, 0x6f56, 0x6f57, 0x6f59, 0x6f5a, 0x6f5b, 0x6f5d, 0x6f5f, 0x6f60, 0x6f61, 0x6f63, 0x6f64, 0x6f65, 0x6f67, 0x6f68, 0x6f69, 0x6f6a, 0x6f6b, 0x6f6c, 0x6f6f, 0x6f70, 0x6f71, 0x6f73, 0x6f75, 0x6f76, 0x6f77, 0x6f79, 0x6f7b, 0x6f7d, 0x6f7e, 0x6f7f, 0x6f80, 0x6f81, 0x6f82, 0x6f83, 0x6f85, 0x6f86, 0x6f87, 0x6f8a, 0x6f8b, 0x6f8f, 0x6f90, 0x6f91, 0x6f92, 0x6f93, 0x6f94, 0x6f95, 0x6f96, 0x6f97, 0x6f98, 0x6f99, 0x6f9a, 0x6f9b, 0x6f9d, 0x6f9e, 0x6f9f, 0x6fa0, 0x6fa2, 0x6fa3, 0x6fa4, 0x6fa5, 0x6fa6, 0x6fa8, 0x6fa9, 0x6faa, 0x6fab, 0x6fac, 0x6fad, 0x6fae, 0x6faf, 0x6fb0, 0x6fb1, 0x6fb2, 0x6fb4, 0x6fb5, 0x6fb7, 0x6fb8, 0x6fba, 0x6fbb, 0x6fbc, 0x6fbd, 0x6fbe, 0x6fbf, 0x6fc1, 0x6fc3, 0x6fc4, 0x6fc5, 0x6fc6, 0x6fc7, 0x6fc8, 0x6fca, 0x6fcb, 0x6fcc, 0x6fcd, 0x6fce, 0x6fcf, 0x6fd0, 0x6fd3, 0x6fd4, 0x6fd5, 0x6fd6, 0x6fd7, 0x6fd8, 0x6fd9, 0x6fda, 0x6fdb, 0x6fdc, 0x6fdd, 0x6fdf, 0x6fe2, 0x6fe3, 0x6fe4, 0x6fe5, 0x003f, /* lead byte 9e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6fe6, 0x6fe7, 0x6fe8, 0x6fe9, 0x6fea, 0x6feb, 0x6fec, 0x6fed, 0x6ff0, 0x6ff1, 0x6ff2, 0x6ff3, 0x6ff4, 0x6ff5, 0x6ff6, 0x6ff7, 0x6ff8, 0x6ff9, 0x6ffa, 0x6ffb, 0x6ffc, 0x6ffd, 0x6ffe, 0x6fff, 0x7000, 0x7001, 0x7002, 0x7003, 0x7004, 0x7005, 0x7006, 0x7007, 0x7008, 0x7009, 0x700a, 0x700b, 0x700c, 0x700d, 0x700e, 0x700f, 0x7010, 0x7012, 0x7013, 0x7014, 0x7015, 0x7016, 0x7017, 0x7018, 0x7019, 0x701c, 0x701d, 0x701e, 0x701f, 0x7020, 0x7021, 0x7022, 0x7024, 0x7025, 0x7026, 0x7027, 0x7028, 0x7029, 0x702a, 0x003f, 0x702b, 0x702c, 0x702d, 0x702e, 0x702f, 0x7030, 0x7031, 0x7032, 0x7033, 0x7034, 0x7036, 0x7037, 0x7038, 0x703a, 0x703b, 0x703c, 0x703d, 0x703e, 0x703f, 0x7040, 0x7041, 0x7042, 0x7043, 0x7044, 0x7045, 0x7046, 0x7047, 0x7048, 0x7049, 0x704a, 0x704b, 0x704d, 0x704e, 0x7050, 0x7051, 0x7052, 0x7053, 0x7054, 0x7055, 0x7056, 0x7057, 0x7058, 0x7059, 0x705a, 0x705b, 0x705c, 0x705d, 0x705f, 0x7060, 0x7061, 0x7062, 0x7063, 0x7064, 0x7065, 0x7066, 0x7067, 0x7068, 0x7069, 0x706a, 0x706e, 0x7071, 0x7072, 0x7073, 0x7074, 0x7077, 0x7079, 0x707a, 0x707b, 0x707d, 0x7081, 0x7082, 0x7083, 0x7084, 0x7086, 0x7087, 0x7088, 0x708b, 0x708c, 0x708d, 0x708f, 0x7090, 0x7091, 0x7093, 0x7097, 0x7098, 0x709a, 0x709b, 0x709e, 0x709f, 0x70a0, 0x70a1, 0x70a2, 0x70a3, 0x70a4, 0x70a5, 0x70a6, 0x70a7, 0x70a8, 0x70a9, 0x70aa, 0x70b0, 0x70b2, 0x70b4, 0x70b5, 0x70b6, 0x70ba, 0x70be, 0x70bf, 0x70c4, 0x70c5, 0x70c6, 0x70c7, 0x70c9, 0x70cb, 0x70cc, 0x70cd, 0x70ce, 0x70cf, 0x70d0, 0x70d1, 0x70d2, 0x70d3, 0x70d4, 0x70d5, 0x70d6, 0x70d7, 0x70da, 0x003f, /* lead byte 9f */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x70dc, 0x70dd, 0x70de, 0x70e0, 0x70e1, 0x70e2, 0x70e3, 0x70e5, 0x70ea, 0x70ee, 0x70f0, 0x70f1, 0x70f2, 0x70f3, 0x70f4, 0x70f5, 0x70f6, 0x70f8, 0x70fa, 0x70fb, 0x70fc, 0x70fe, 0x70ff, 0x7100, 0x7101, 0x7102, 0x7103, 0x7104, 0x7105, 0x7106, 0x7107, 0x7108, 0x710b, 0x710c, 0x710d, 0x710e, 0x710f, 0x7111, 0x7112, 0x7114, 0x7117, 0x711b, 0x711c, 0x711d, 0x711e, 0x711f, 0x7120, 0x7121, 0x7122, 0x7123, 0x7124, 0x7125, 0x7127, 0x7128, 0x7129, 0x712a, 0x712b, 0x712c, 0x712d, 0x712e, 0x7132, 0x7133, 0x7134, 0x003f, 0x7135, 0x7137, 0x7138, 0x7139, 0x713a, 0x713b, 0x713c, 0x713d, 0x713e, 0x713f, 0x7140, 0x7141, 0x7142, 0x7143, 0x7144, 0x7146, 0x7147, 0x7148, 0x7149, 0x714b, 0x714d, 0x714f, 0x7150, 0x7151, 0x7152, 0x7153, 0x7154, 0x7155, 0x7156, 0x7157, 0x7158, 0x7159, 0x715a, 0x715b, 0x715d, 0x715f, 0x7160, 0x7161, 0x7162, 0x7163, 0x7165, 0x7169, 0x716a, 0x716b, 0x716c, 0x716d, 0x716f, 0x7170, 0x7171, 0x7174, 0x7175, 0x7176, 0x7177, 0x7179, 0x717b, 0x717c, 0x717e, 0x717f, 0x7180, 0x7181, 0x7182, 0x7183, 0x7185, 0x7186, 0x7187, 0x7188, 0x7189, 0x718b, 0x718c, 0x718d, 0x718e, 0x7190, 0x7191, 0x7192, 0x7193, 0x7195, 0x7196, 0x7197, 0x719a, 0x719b, 0x719c, 0x719d, 0x719e, 0x71a1, 0x71a2, 0x71a3, 0x71a4, 0x71a5, 0x71a6, 0x71a7, 0x71a9, 0x71aa, 0x71ab, 0x71ad, 0x71ae, 0x71af, 0x71b0, 0x71b1, 0x71b2, 0x71b4, 0x71b6, 0x71b7, 0x71b8, 0x71ba, 0x71bb, 0x71bc, 0x71bd, 0x71be, 0x71bf, 0x71c0, 0x71c1, 0x71c2, 0x71c4, 0x71c5, 0x71c6, 0x71c7, 0x71c8, 0x71c9, 0x71ca, 0x71cb, 0x71cc, 0x71cd, 0x71cf, 0x71d0, 0x71d1, 0x71d2, 0x71d3, 0x003f, /* lead byte a0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x71d6, 0x71d7, 0x71d8, 0x71d9, 0x71da, 0x71db, 0x71dc, 0x71dd, 0x71de, 0x71df, 0x71e1, 0x71e2, 0x71e3, 0x71e4, 0x71e6, 0x71e8, 0x71e9, 0x71ea, 0x71eb, 0x71ec, 0x71ed, 0x71ef, 0x71f0, 0x71f1, 0x71f2, 0x71f3, 0x71f4, 0x71f5, 0x71f6, 0x71f7, 0x71f8, 0x71fa, 0x71fb, 0x71fc, 0x71fd, 0x71fe, 0x71ff, 0x7200, 0x7201, 0x7202, 0x7203, 0x7204, 0x7205, 0x7207, 0x7208, 0x7209, 0x720a, 0x720b, 0x720c, 0x720d, 0x720e, 0x720f, 0x7210, 0x7211, 0x7212, 0x7213, 0x7214, 0x7215, 0x7216, 0x7217, 0x7218, 0x7219, 0x721a, 0x003f, 0x721b, 0x721c, 0x721e, 0x721f, 0x7220, 0x7221, 0x7222, 0x7223, 0x7224, 0x7225, 0x7226, 0x7227, 0x7229, 0x722b, 0x722d, 0x722e, 0x722f, 0x7232, 0x7233, 0x7234, 0x723a, 0x723c, 0x723e, 0x7240, 0x7241, 0x7242, 0x7243, 0x7244, 0x7245, 0x7246, 0x7249, 0x724a, 0x724b, 0x724e, 0x724f, 0x7250, 0x7251, 0x7253, 0x7254, 0x7255, 0x7257, 0x7258, 0x725a, 0x725c, 0x725e, 0x7260, 0x7263, 0x7264, 0x7265, 0x7268, 0x726a, 0x726b, 0x726c, 0x726d, 0x7270, 0x7271, 0x7273, 0x7274, 0x7276, 0x7277, 0x7278, 0x727b, 0x727c, 0x727d, 0x7282, 0x7283, 0x7285, 0x7286, 0x7287, 0x7288, 0x7289, 0x728c, 0x728e, 0x7290, 0x7291, 0x7293, 0x7294, 0x7295, 0x7296, 0x7297, 0x7298, 0x7299, 0x729a, 0x729b, 0x729c, 0x729d, 0x729e, 0x72a0, 0x72a1, 0x72a2, 0x72a3, 0x72a4, 0x72a5, 0x72a6, 0x72a7, 0x72a8, 0x72a9, 0x72aa, 0x72ab, 0x72ae, 0x72b1, 0x72b2, 0x72b3, 0x72b5, 0x72ba, 0x72bb, 0x72bc, 0x72bd, 0x72be, 0x72bf, 0x72c0, 0x72c5, 0x72c6, 0x72c7, 0x72c9, 0x72ca, 0x72cb, 0x72cc, 0x72cf, 0x72d1, 0x72d3, 0x72d4, 0x72d5, 0x72d6, 0x72d8, 0x72da, 0x72db, 0x003f, /* lead byte a1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3000, 0x3001, 0x3002, 0x00b7, 0x02c9, 0x02c7, 0x00a8, 0x3003, 0x3005, 0x2014, 0xff5e, 0x2016, 0x2026, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3016, 0x3017, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, 0x2236, 0x2227, 0x2228, 0x2211, 0x220f, 0x222a, 0x2229, 0x2208, 0x2237, 0x221a, 0x22a5, 0x2225, 0x2220, 0x2312, 0x2299, 0x222b, 0x222e, 0x2261, 0x224c, 0x2248, 0x223d, 0x221d, 0x2260, 0x226e, 0x226f, 0x2264, 0x2265, 0x221e, 0x2235, 0x2234, 0x2642, 0x2640, 0x00b0, 0x2032, 0x2033, 0x2103, 0xff04, 0x00a4, 0xffe0, 0xffe1, 0x2030, 0x00a7, 0x2116, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x203b, 0x2192, 0x2190, 0x2191, 0x2193, 0x3013, 0x003f, /* lead byte a2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2488, 0x2489, 0x248a, 0x248b, 0x248c, 0x248d, 0x248e, 0x248f, 0x2490, 0x2491, 0x2492, 0x2493, 0x2494, 0x2495, 0x2496, 0x2497, 0x2498, 0x2499, 0x249a, 0x249b, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x2483, 0x2484, 0x2485, 0x2486, 0x2487, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x003f, 0x003f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226, 0x3227, 0x3228, 0x3229, 0x003f, 0x003f, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x216a, 0x216b, 0x003f, 0x003f, 0x003f, /* lead byte a3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff3b, 0xff3c, 0xff3d, 0xff3e, 0xff3f, 0xff40, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3, 0x003f, /* lead byte a4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfe35, 0xfe36, 0xfe39, 0xfe3a, 0xfe3f, 0xfe40, 0xfe3d, 0xfe3e, 0xfe41, 0xfe42, 0xfe43, 0xfe44, 0x003f, 0x003f, 0xfe3b, 0xfe3c, 0xfe37, 0xfe38, 0xfe31, 0x003f, 0xfe33, 0xfe34, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x02ca, 0x02cb, 0x02d9, 0x2013, 0x2015, 0x2025, 0x2035, 0x2105, 0x2109, 0x2196, 0x2197, 0x2198, 0x2199, 0x2215, 0x221f, 0x2223, 0x2252, 0x2266, 0x2267, 0x22bf, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x256d, 0x256e, 0x256f, 0x2570, 0x2571, 0x2572, 0x2573, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x003f, 0x2588, 0x2589, 0x258a, 0x258b, 0x258c, 0x258d, 0x258e, 0x258f, 0x2593, 0x2594, 0x2595, 0x25bc, 0x25bd, 0x25e2, 0x25e3, 0x25e4, 0x25e5, 0x2609, 0x2295, 0x3012, 0x301d, 0x301e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0101, 0x00e1, 0x01ce, 0x00e0, 0x0113, 0x00e9, 0x011b, 0x00e8, 0x012b, 0x00ed, 0x01d0, 0x00ec, 0x014d, 0x00f3, 0x01d2, 0x00f2, 0x016b, 0x00fa, 0x01d4, 0x00f9, 0x01d6, 0x01d8, 0x01da, 0x01dc, 0x00fc, 0x00ea, 0x0251, 0x003f, 0x0144, 0x0148, 0x003f, 0x0261, 0x003f, 0x003f, 0x003f, 0x003f, 0x3105, 0x3106, 0x3107, 0x3108, 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x32a3, 0x338e, 0x338f, 0x339c, 0x339d, 0x339e, 0x33a1, 0x33c4, 0x33ce, 0x33d1, 0x33d2, 0x33d5, 0xfe30, 0xffe2, 0xffe4, 0x003f, 0x2121, 0x3231, 0x003f, 0x2010, 0x003f, 0x003f, 0x003f, 0x30fc, 0x309b, 0x309c, 0x30fd, 0x30fe, 0x3006, 0x309d, 0x309e, 0xfe49, 0xfe4a, 0xfe4b, 0xfe4c, 0xfe4d, 0xfe4e, 0xfe4f, 0xfe50, 0xfe51, 0xfe52, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xfe59, 0xfe5a, 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0xfe5f, 0xfe60, 0xfe61, 0x003f, 0xfe62, 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xfe68, 0xfe69, 0xfe6a, 0xfe6b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3007, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2500, 0x2501, 0x2502, 0x2503, 0x2504, 0x2505, 0x2506, 0x2507, 0x2508, 0x2509, 0x250a, 0x250b, 0x250c, 0x250d, 0x250e, 0x250f, 0x2510, 0x2511, 0x2512, 0x2513, 0x2514, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251a, 0x251b, 0x251c, 0x251d, 0x251e, 0x251f, 0x2520, 0x2521, 0x2522, 0x2523, 0x2524, 0x2525, 0x2526, 0x2527, 0x2528, 0x2529, 0x252a, 0x252b, 0x252c, 0x252d, 0x252e, 0x252f, 0x2530, 0x2531, 0x2532, 0x2533, 0x2534, 0x2535, 0x2536, 0x2537, 0x2538, 0x2539, 0x253a, 0x253b, 0x253c, 0x253d, 0x253e, 0x253f, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte aa */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x72dc, 0x72dd, 0x72df, 0x72e2, 0x72e3, 0x72e4, 0x72e5, 0x72e6, 0x72e7, 0x72ea, 0x72eb, 0x72f5, 0x72f6, 0x72f9, 0x72fd, 0x72fe, 0x72ff, 0x7300, 0x7302, 0x7304, 0x7305, 0x7306, 0x7307, 0x7308, 0x7309, 0x730b, 0x730c, 0x730d, 0x730f, 0x7310, 0x7311, 0x7312, 0x7314, 0x7318, 0x7319, 0x731a, 0x731f, 0x7320, 0x7323, 0x7324, 0x7326, 0x7327, 0x7328, 0x732d, 0x732f, 0x7330, 0x7332, 0x7333, 0x7335, 0x7336, 0x733a, 0x733b, 0x733c, 0x733d, 0x7340, 0x7341, 0x7342, 0x7343, 0x7344, 0x7345, 0x7346, 0x7347, 0x7348, 0x003f, 0x7349, 0x734a, 0x734b, 0x734c, 0x734e, 0x734f, 0x7351, 0x7353, 0x7354, 0x7355, 0x7356, 0x7358, 0x7359, 0x735a, 0x735b, 0x735c, 0x735d, 0x735e, 0x735f, 0x7361, 0x7362, 0x7363, 0x7364, 0x7365, 0x7366, 0x7367, 0x7368, 0x7369, 0x736a, 0x736b, 0x736e, 0x7370, 0x7371, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ab */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7372, 0x7373, 0x7374, 0x7375, 0x7376, 0x7377, 0x7378, 0x7379, 0x737a, 0x737b, 0x737c, 0x737d, 0x737f, 0x7380, 0x7381, 0x7382, 0x7383, 0x7385, 0x7386, 0x7388, 0x738a, 0x738c, 0x738d, 0x738f, 0x7390, 0x7392, 0x7393, 0x7394, 0x7395, 0x7397, 0x7398, 0x7399, 0x739a, 0x739c, 0x739d, 0x739e, 0x73a0, 0x73a1, 0x73a3, 0x73a4, 0x73a5, 0x73a6, 0x73a7, 0x73a8, 0x73aa, 0x73ac, 0x73ad, 0x73b1, 0x73b4, 0x73b5, 0x73b6, 0x73b8, 0x73b9, 0x73bc, 0x73bd, 0x73be, 0x73bf, 0x73c1, 0x73c3, 0x73c4, 0x73c5, 0x73c6, 0x73c7, 0x003f, 0x73cb, 0x73cc, 0x73ce, 0x73d2, 0x73d3, 0x73d4, 0x73d5, 0x73d6, 0x73d7, 0x73d8, 0x73da, 0x73db, 0x73dc, 0x73dd, 0x73df, 0x73e1, 0x73e2, 0x73e3, 0x73e4, 0x73e6, 0x73e8, 0x73ea, 0x73eb, 0x73ec, 0x73ee, 0x73ef, 0x73f0, 0x73f1, 0x73f3, 0x73f4, 0x73f5, 0x73f6, 0x73f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ac */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x73f8, 0x73f9, 0x73fa, 0x73fb, 0x73fc, 0x73fd, 0x73fe, 0x73ff, 0x7400, 0x7401, 0x7402, 0x7404, 0x7407, 0x7408, 0x740b, 0x740c, 0x740d, 0x740e, 0x7411, 0x7412, 0x7413, 0x7414, 0x7415, 0x7416, 0x7417, 0x7418, 0x7419, 0x741c, 0x741d, 0x741e, 0x741f, 0x7420, 0x7421, 0x7423, 0x7424, 0x7427, 0x7429, 0x742b, 0x742d, 0x742f, 0x7431, 0x7432, 0x7437, 0x7438, 0x7439, 0x743a, 0x743b, 0x743d, 0x743e, 0x743f, 0x7440, 0x7442, 0x7443, 0x7444, 0x7445, 0x7446, 0x7447, 0x7448, 0x7449, 0x744a, 0x744b, 0x744c, 0x744d, 0x003f, 0x744e, 0x744f, 0x7450, 0x7451, 0x7452, 0x7453, 0x7454, 0x7456, 0x7458, 0x745d, 0x7460, 0x7461, 0x7462, 0x7463, 0x7464, 0x7465, 0x7466, 0x7467, 0x7468, 0x7469, 0x746a, 0x746b, 0x746c, 0x746e, 0x746f, 0x7471, 0x7472, 0x7473, 0x7474, 0x7475, 0x7478, 0x7479, 0x747a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ad */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x747b, 0x747c, 0x747d, 0x747f, 0x7482, 0x7484, 0x7485, 0x7486, 0x7488, 0x7489, 0x748a, 0x748c, 0x748d, 0x748f, 0x7491, 0x7492, 0x7493, 0x7494, 0x7495, 0x7496, 0x7497, 0x7498, 0x7499, 0x749a, 0x749b, 0x749d, 0x749f, 0x74a0, 0x74a1, 0x74a2, 0x74a3, 0x74a4, 0x74a5, 0x74a6, 0x74aa, 0x74ab, 0x74ac, 0x74ad, 0x74ae, 0x74af, 0x74b0, 0x74b1, 0x74b2, 0x74b3, 0x74b4, 0x74b5, 0x74b6, 0x74b7, 0x74b8, 0x74b9, 0x74bb, 0x74bc, 0x74bd, 0x74be, 0x74bf, 0x74c0, 0x74c1, 0x74c2, 0x74c3, 0x74c4, 0x74c5, 0x74c6, 0x74c7, 0x003f, 0x74c8, 0x74c9, 0x74ca, 0x74cb, 0x74cc, 0x74cd, 0x74ce, 0x74cf, 0x74d0, 0x74d1, 0x74d3, 0x74d4, 0x74d5, 0x74d6, 0x74d7, 0x74d8, 0x74d9, 0x74da, 0x74db, 0x74dd, 0x74df, 0x74e1, 0x74e5, 0x74e7, 0x74e8, 0x74e9, 0x74ea, 0x74eb, 0x74ec, 0x74ed, 0x74f0, 0x74f1, 0x74f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ae */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x74f3, 0x74f5, 0x74f8, 0x74f9, 0x74fa, 0x74fb, 0x74fc, 0x74fd, 0x74fe, 0x7500, 0x7501, 0x7502, 0x7503, 0x7505, 0x7506, 0x7507, 0x7508, 0x7509, 0x750a, 0x750b, 0x750c, 0x750e, 0x7510, 0x7512, 0x7514, 0x7515, 0x7516, 0x7517, 0x751b, 0x751d, 0x751e, 0x7520, 0x7521, 0x7522, 0x7523, 0x7524, 0x7526, 0x7527, 0x752a, 0x752e, 0x7534, 0x7536, 0x7539, 0x753c, 0x753d, 0x753f, 0x7541, 0x7542, 0x7543, 0x7544, 0x7546, 0x7547, 0x7549, 0x754a, 0x754d, 0x7550, 0x7551, 0x7552, 0x7553, 0x7555, 0x7556, 0x7557, 0x7558, 0x003f, 0x755d, 0x755e, 0x755f, 0x7560, 0x7561, 0x7562, 0x7563, 0x7564, 0x7567, 0x7568, 0x7569, 0x756b, 0x756c, 0x756d, 0x756e, 0x756f, 0x7570, 0x7571, 0x7573, 0x7575, 0x7576, 0x7577, 0x757a, 0x757b, 0x757c, 0x757d, 0x757e, 0x7580, 0x7581, 0x7582, 0x7584, 0x7585, 0x7587, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte af */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7588, 0x7589, 0x758a, 0x758c, 0x758d, 0x758e, 0x7590, 0x7593, 0x7595, 0x7598, 0x759b, 0x759c, 0x759e, 0x75a2, 0x75a6, 0x75a7, 0x75a8, 0x75a9, 0x75aa, 0x75ad, 0x75b6, 0x75b7, 0x75ba, 0x75bb, 0x75bf, 0x75c0, 0x75c1, 0x75c6, 0x75cb, 0x75cc, 0x75ce, 0x75cf, 0x75d0, 0x75d1, 0x75d3, 0x75d7, 0x75d9, 0x75da, 0x75dc, 0x75dd, 0x75df, 0x75e0, 0x75e1, 0x75e5, 0x75e9, 0x75ec, 0x75ed, 0x75ee, 0x75ef, 0x75f2, 0x75f3, 0x75f5, 0x75f6, 0x75f7, 0x75f8, 0x75fa, 0x75fb, 0x75fd, 0x75fe, 0x7602, 0x7604, 0x7606, 0x7607, 0x003f, 0x7608, 0x7609, 0x760b, 0x760d, 0x760e, 0x760f, 0x7611, 0x7612, 0x7613, 0x7614, 0x7616, 0x761a, 0x761c, 0x761d, 0x761e, 0x7621, 0x7623, 0x7627, 0x7628, 0x762c, 0x762e, 0x762f, 0x7631, 0x7632, 0x7636, 0x7637, 0x7639, 0x763a, 0x763b, 0x763d, 0x7641, 0x7642, 0x7644, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte b0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7645, 0x7646, 0x7647, 0x7648, 0x7649, 0x764a, 0x764b, 0x764e, 0x764f, 0x7650, 0x7651, 0x7652, 0x7653, 0x7655, 0x7657, 0x7658, 0x7659, 0x765a, 0x765b, 0x765d, 0x765f, 0x7660, 0x7661, 0x7662, 0x7664, 0x7665, 0x7666, 0x7667, 0x7668, 0x7669, 0x766a, 0x766c, 0x766d, 0x766e, 0x7670, 0x7671, 0x7672, 0x7673, 0x7674, 0x7675, 0x7676, 0x7677, 0x7679, 0x767a, 0x767c, 0x767f, 0x7680, 0x7681, 0x7683, 0x7685, 0x7689, 0x768a, 0x768c, 0x768d, 0x768f, 0x7690, 0x7692, 0x7694, 0x7695, 0x7697, 0x7698, 0x769a, 0x769b, 0x003f, 0x769c, 0x769d, 0x769e, 0x769f, 0x76a0, 0x76a1, 0x76a2, 0x76a3, 0x76a5, 0x76a6, 0x76a7, 0x76a8, 0x76a9, 0x76aa, 0x76ab, 0x76ac, 0x76ad, 0x76af, 0x76b0, 0x76b3, 0x76b5, 0x76b6, 0x76b7, 0x76b8, 0x76b9, 0x76ba, 0x76bb, 0x76bc, 0x76bd, 0x76be, 0x76c0, 0x76c1, 0x76c3, 0x554a, 0x963f, 0x57c3, 0x6328, 0x54ce, 0x5509, 0x54c0, 0x7691, 0x764c, 0x853c, 0x77ee, 0x827e, 0x788d, 0x7231, 0x9698, 0x978d, 0x6c28, 0x5b89, 0x4ffa, 0x6309, 0x6697, 0x5cb8, 0x80fa, 0x6848, 0x80ae, 0x6602, 0x76ce, 0x51f9, 0x6556, 0x71ac, 0x7ff1, 0x8884, 0x50b2, 0x5965, 0x61ca, 0x6fb3, 0x82ad, 0x634c, 0x6252, 0x53ed, 0x5427, 0x7b06, 0x516b, 0x75a4, 0x5df4, 0x62d4, 0x8dcb, 0x9776, 0x628a, 0x8019, 0x575d, 0x9738, 0x7f62, 0x7238, 0x767d, 0x67cf, 0x767e, 0x6446, 0x4f70, 0x8d25, 0x62dc, 0x7a17, 0x6591, 0x73ed, 0x642c, 0x6273, 0x822c, 0x9881, 0x677f, 0x7248, 0x626e, 0x62cc, 0x4f34, 0x74e3, 0x534a, 0x529e, 0x7eca, 0x90a6, 0x5e2e, 0x6886, 0x699c, 0x8180, 0x7ed1, 0x68d2, 0x78c5, 0x868c, 0x9551, 0x508d, 0x8c24, 0x82de, 0x80de, 0x5305, 0x8912, 0x5265, 0x003f, /* lead byte b1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x76c4, 0x76c7, 0x76c9, 0x76cb, 0x76cc, 0x76d3, 0x76d5, 0x76d9, 0x76da, 0x76dc, 0x76dd, 0x76de, 0x76e0, 0x76e1, 0x76e2, 0x76e3, 0x76e4, 0x76e6, 0x76e7, 0x76e8, 0x76e9, 0x76ea, 0x76eb, 0x76ec, 0x76ed, 0x76f0, 0x76f3, 0x76f5, 0x76f6, 0x76f7, 0x76fa, 0x76fb, 0x76fd, 0x76ff, 0x7700, 0x7702, 0x7703, 0x7705, 0x7706, 0x770a, 0x770c, 0x770e, 0x770f, 0x7710, 0x7711, 0x7712, 0x7713, 0x7714, 0x7715, 0x7716, 0x7717, 0x7718, 0x771b, 0x771c, 0x771d, 0x771e, 0x7721, 0x7723, 0x7724, 0x7725, 0x7727, 0x772a, 0x772b, 0x003f, 0x772c, 0x772e, 0x7730, 0x7731, 0x7732, 0x7733, 0x7734, 0x7739, 0x773b, 0x773d, 0x773e, 0x773f, 0x7742, 0x7744, 0x7745, 0x7746, 0x7748, 0x7749, 0x774a, 0x774b, 0x774c, 0x774d, 0x774e, 0x774f, 0x7752, 0x7753, 0x7754, 0x7755, 0x7756, 0x7757, 0x7758, 0x7759, 0x775c, 0x8584, 0x96f9, 0x4fdd, 0x5821, 0x9971, 0x5b9d, 0x62b1, 0x62a5, 0x66b4, 0x8c79, 0x9c8d, 0x7206, 0x676f, 0x7891, 0x60b2, 0x5351, 0x5317, 0x8f88, 0x80cc, 0x8d1d, 0x94a1, 0x500d, 0x72c8, 0x5907, 0x60eb, 0x7119, 0x88ab, 0x5954, 0x82ef, 0x672c, 0x7b28, 0x5d29, 0x7ef7, 0x752d, 0x6cf5, 0x8e66, 0x8ff8, 0x903c, 0x9f3b, 0x6bd4, 0x9119, 0x7b14, 0x5f7c, 0x78a7, 0x84d6, 0x853d, 0x6bd5, 0x6bd9, 0x6bd6, 0x5e01, 0x5e87, 0x75f9, 0x95ed, 0x655d, 0x5f0a, 0x5fc5, 0x8f9f, 0x58c1, 0x81c2, 0x907f, 0x965b, 0x97ad, 0x8fb9, 0x7f16, 0x8d2c, 0x6241, 0x4fbf, 0x53d8, 0x535e, 0x8fa8, 0x8fa9, 0x8fab, 0x904d, 0x6807, 0x5f6a, 0x8198, 0x8868, 0x9cd6, 0x618b, 0x522b, 0x762a, 0x5f6c, 0x658c, 0x6fd2, 0x6ee8, 0x5bbe, 0x6448, 0x5175, 0x51b0, 0x67c4, 0x4e19, 0x79c9, 0x997c, 0x70b3, 0x003f, /* lead byte b2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x775d, 0x775e, 0x775f, 0x7760, 0x7764, 0x7767, 0x7769, 0x776a, 0x776d, 0x776e, 0x776f, 0x7770, 0x7771, 0x7772, 0x7773, 0x7774, 0x7775, 0x7776, 0x7777, 0x7778, 0x777a, 0x777b, 0x777c, 0x7781, 0x7782, 0x7783, 0x7786, 0x7787, 0x7788, 0x7789, 0x778a, 0x778b, 0x778f, 0x7790, 0x7793, 0x7794, 0x7795, 0x7796, 0x7797, 0x7798, 0x7799, 0x779a, 0x779b, 0x779c, 0x779d, 0x779e, 0x77a1, 0x77a3, 0x77a4, 0x77a6, 0x77a8, 0x77ab, 0x77ad, 0x77ae, 0x77af, 0x77b1, 0x77b2, 0x77b4, 0x77b6, 0x77b7, 0x77b8, 0x77b9, 0x77ba, 0x003f, 0x77bc, 0x77be, 0x77c0, 0x77c1, 0x77c2, 0x77c3, 0x77c4, 0x77c5, 0x77c6, 0x77c7, 0x77c8, 0x77c9, 0x77ca, 0x77cb, 0x77cc, 0x77ce, 0x77cf, 0x77d0, 0x77d1, 0x77d2, 0x77d3, 0x77d4, 0x77d5, 0x77d6, 0x77d8, 0x77d9, 0x77da, 0x77dd, 0x77de, 0x77df, 0x77e0, 0x77e1, 0x77e4, 0x75c5, 0x5e76, 0x73bb, 0x83e0, 0x64ad, 0x62e8, 0x94b5, 0x6ce2, 0x535a, 0x52c3, 0x640f, 0x94c2, 0x7b94, 0x4f2f, 0x5e1b, 0x8236, 0x8116, 0x818a, 0x6e24, 0x6cca, 0x9a73, 0x6355, 0x535c, 0x54fa, 0x8865, 0x57e0, 0x4e0d, 0x5e03, 0x6b65, 0x7c3f, 0x90e8, 0x6016, 0x64e6, 0x731c, 0x88c1, 0x6750, 0x624d, 0x8d22, 0x776c, 0x8e29, 0x91c7, 0x5f69, 0x83dc, 0x8521, 0x9910, 0x53c2, 0x8695, 0x6b8b, 0x60ed, 0x60e8, 0x707f, 0x82cd, 0x8231, 0x4ed3, 0x6ca7, 0x85cf, 0x64cd, 0x7cd9, 0x69fd, 0x66f9, 0x8349, 0x5395, 0x7b56, 0x4fa7, 0x518c, 0x6d4b, 0x5c42, 0x8e6d, 0x63d2, 0x53c9, 0x832c, 0x8336, 0x67e5, 0x78b4, 0x643d, 0x5bdf, 0x5c94, 0x5dee, 0x8be7, 0x62c6, 0x67f4, 0x8c7a, 0x6400, 0x63ba, 0x8749, 0x998b, 0x8c17, 0x7f20, 0x94f2, 0x4ea7, 0x9610, 0x98a4, 0x660c, 0x7316, 0x003f, /* lead byte b3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x77e6, 0x77e8, 0x77ea, 0x77ef, 0x77f0, 0x77f1, 0x77f2, 0x77f4, 0x77f5, 0x77f7, 0x77f9, 0x77fa, 0x77fb, 0x77fc, 0x7803, 0x7804, 0x7805, 0x7806, 0x7807, 0x7808, 0x780a, 0x780b, 0x780e, 0x780f, 0x7810, 0x7813, 0x7815, 0x7819, 0x781b, 0x781e, 0x7820, 0x7821, 0x7822, 0x7824, 0x7828, 0x782a, 0x782b, 0x782e, 0x782f, 0x7831, 0x7832, 0x7833, 0x7835, 0x7836, 0x783d, 0x783f, 0x7841, 0x7842, 0x7843, 0x7844, 0x7846, 0x7848, 0x7849, 0x784a, 0x784b, 0x784d, 0x784f, 0x7851, 0x7853, 0x7854, 0x7858, 0x7859, 0x785a, 0x003f, 0x785b, 0x785c, 0x785e, 0x785f, 0x7860, 0x7861, 0x7862, 0x7863, 0x7864, 0x7865, 0x7866, 0x7867, 0x7868, 0x7869, 0x786f, 0x7870, 0x7871, 0x7872, 0x7873, 0x7874, 0x7875, 0x7876, 0x7878, 0x7879, 0x787a, 0x787b, 0x787d, 0x787e, 0x787f, 0x7880, 0x7881, 0x7882, 0x7883, 0x573a, 0x5c1d, 0x5e38, 0x957f, 0x507f, 0x80a0, 0x5382, 0x655e, 0x7545, 0x5531, 0x5021, 0x8d85, 0x6284, 0x949e, 0x671d, 0x5632, 0x6f6e, 0x5de2, 0x5435, 0x7092, 0x8f66, 0x626f, 0x64a4, 0x63a3, 0x5f7b, 0x6f88, 0x90f4, 0x81e3, 0x8fb0, 0x5c18, 0x6668, 0x5ff1, 0x6c89, 0x9648, 0x8d81, 0x886c, 0x6491, 0x79f0, 0x57ce, 0x6a59, 0x6210, 0x5448, 0x4e58, 0x7a0b, 0x60e9, 0x6f84, 0x8bda, 0x627f, 0x901e, 0x9a8b, 0x79e4, 0x5403, 0x75f4, 0x6301, 0x5319, 0x6c60, 0x8fdf, 0x5f1b, 0x9a70, 0x803b, 0x9f7f, 0x4f88, 0x5c3a, 0x8d64, 0x7fc5, 0x65a5, 0x70bd, 0x5145, 0x51b2, 0x866b, 0x5d07, 0x5ba0, 0x62bd, 0x916c, 0x7574, 0x8e0c, 0x7a20, 0x6101, 0x7b79, 0x4ec7, 0x7ef8, 0x7785, 0x4e11, 0x81ed, 0x521d, 0x51fa, 0x6a71, 0x53a8, 0x8e87, 0x9504, 0x96cf, 0x6ec1, 0x9664, 0x695a, 0x003f, /* lead byte b4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7884, 0x7885, 0x7886, 0x7888, 0x788a, 0x788b, 0x788f, 0x7890, 0x7892, 0x7894, 0x7895, 0x7896, 0x7899, 0x789d, 0x789e, 0x78a0, 0x78a2, 0x78a4, 0x78a6, 0x78a8, 0x78a9, 0x78aa, 0x78ab, 0x78ac, 0x78ad, 0x78ae, 0x78af, 0x78b5, 0x78b6, 0x78b7, 0x78b8, 0x78ba, 0x78bb, 0x78bc, 0x78bd, 0x78bf, 0x78c0, 0x78c2, 0x78c3, 0x78c4, 0x78c6, 0x78c7, 0x78c8, 0x78cc, 0x78cd, 0x78ce, 0x78cf, 0x78d1, 0x78d2, 0x78d3, 0x78d6, 0x78d7, 0x78d8, 0x78da, 0x78db, 0x78dc, 0x78dd, 0x78de, 0x78df, 0x78e0, 0x78e1, 0x78e2, 0x78e3, 0x003f, 0x78e4, 0x78e5, 0x78e6, 0x78e7, 0x78e9, 0x78ea, 0x78eb, 0x78ed, 0x78ee, 0x78ef, 0x78f0, 0x78f1, 0x78f3, 0x78f5, 0x78f6, 0x78f8, 0x78f9, 0x78fb, 0x78fc, 0x78fd, 0x78fe, 0x78ff, 0x7900, 0x7902, 0x7903, 0x7904, 0x7906, 0x7907, 0x7908, 0x7909, 0x790a, 0x790b, 0x790c, 0x7840, 0x50a8, 0x77d7, 0x6410, 0x89e6, 0x5904, 0x63e3, 0x5ddd, 0x7a7f, 0x693d, 0x4f20, 0x8239, 0x5598, 0x4e32, 0x75ae, 0x7a97, 0x5e62, 0x5e8a, 0x95ef, 0x521b, 0x5439, 0x708a, 0x6376, 0x9524, 0x5782, 0x6625, 0x693f, 0x9187, 0x5507, 0x6df3, 0x7eaf, 0x8822, 0x6233, 0x7ef0, 0x75b5, 0x8328, 0x78c1, 0x96cc, 0x8f9e, 0x6148, 0x74f7, 0x8bcd, 0x6b64, 0x523a, 0x8d50, 0x6b21, 0x806a, 0x8471, 0x56f1, 0x5306, 0x4ece, 0x4e1b, 0x51d1, 0x7c97, 0x918b, 0x7c07, 0x4fc3, 0x8e7f, 0x7be1, 0x7a9c, 0x6467, 0x5d14, 0x50ac, 0x8106, 0x7601, 0x7cb9, 0x6dec, 0x7fe0, 0x6751, 0x5b58, 0x5bf8, 0x78cb, 0x64ae, 0x6413, 0x63aa, 0x632b, 0x9519, 0x642d, 0x8fbe, 0x7b54, 0x7629, 0x6253, 0x5927, 0x5446, 0x6b79, 0x50a3, 0x6234, 0x5e26, 0x6b86, 0x4ee3, 0x8d37, 0x888b, 0x5f85, 0x902e, 0x003f, /* lead byte b5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x790d, 0x790e, 0x790f, 0x7910, 0x7911, 0x7912, 0x7914, 0x7915, 0x7916, 0x7917, 0x7918, 0x7919, 0x791a, 0x791b, 0x791c, 0x791d, 0x791f, 0x7920, 0x7921, 0x7922, 0x7923, 0x7925, 0x7926, 0x7927, 0x7928, 0x7929, 0x792a, 0x792b, 0x792c, 0x792d, 0x792e, 0x792f, 0x7930, 0x7931, 0x7932, 0x7933, 0x7935, 0x7936, 0x7937, 0x7938, 0x7939, 0x793d, 0x793f, 0x7942, 0x7943, 0x7944, 0x7945, 0x7947, 0x794a, 0x794b, 0x794c, 0x794d, 0x794e, 0x794f, 0x7950, 0x7951, 0x7952, 0x7954, 0x7955, 0x7958, 0x7959, 0x7961, 0x7963, 0x003f, 0x7964, 0x7966, 0x7969, 0x796a, 0x796b, 0x796c, 0x796e, 0x7970, 0x7971, 0x7972, 0x7973, 0x7974, 0x7975, 0x7976, 0x7979, 0x797b, 0x797c, 0x797d, 0x797e, 0x797f, 0x7982, 0x7983, 0x7986, 0x7987, 0x7988, 0x7989, 0x798b, 0x798c, 0x798d, 0x798e, 0x7990, 0x7991, 0x7992, 0x6020, 0x803d, 0x62c5, 0x4e39, 0x5355, 0x90f8, 0x63b8, 0x80c6, 0x65e6, 0x6c2e, 0x4f46, 0x60ee, 0x6de1, 0x8bde, 0x5f39, 0x86cb, 0x5f53, 0x6321, 0x515a, 0x8361, 0x6863, 0x5200, 0x6363, 0x8e48, 0x5012, 0x5c9b, 0x7977, 0x5bfc, 0x5230, 0x7a3b, 0x60bc, 0x9053, 0x76d7, 0x5fb7, 0x5f97, 0x7684, 0x8e6c, 0x706f, 0x767b, 0x7b49, 0x77aa, 0x51f3, 0x9093, 0x5824, 0x4f4e, 0x6ef4, 0x8fea, 0x654c, 0x7b1b, 0x72c4, 0x6da4, 0x7fdf, 0x5ae1, 0x62b5, 0x5e95, 0x5730, 0x8482, 0x7b2c, 0x5e1d, 0x5f1f, 0x9012, 0x7f14, 0x98a0, 0x6382, 0x6ec7, 0x7898, 0x70b9, 0x5178, 0x975b, 0x57ab, 0x7535, 0x4f43, 0x7538, 0x5e97, 0x60e6, 0x5960, 0x6dc0, 0x6bbf, 0x7889, 0x53fc, 0x96d5, 0x51cb, 0x5201, 0x6389, 0x540a, 0x9493, 0x8c03, 0x8dcc, 0x7239, 0x789f, 0x8776, 0x8fed, 0x8c0d, 0x53e0, 0x003f, /* lead byte b6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7993, 0x7994, 0x7995, 0x7996, 0x7997, 0x7998, 0x7999, 0x799b, 0x799c, 0x799d, 0x799e, 0x799f, 0x79a0, 0x79a1, 0x79a2, 0x79a3, 0x79a4, 0x79a5, 0x79a6, 0x79a8, 0x79a9, 0x79aa, 0x79ab, 0x79ac, 0x79ad, 0x79ae, 0x79af, 0x79b0, 0x79b1, 0x79b2, 0x79b4, 0x79b5, 0x79b6, 0x79b7, 0x79b8, 0x79bc, 0x79bf, 0x79c2, 0x79c4, 0x79c5, 0x79c7, 0x79c8, 0x79ca, 0x79cc, 0x79ce, 0x79cf, 0x79d0, 0x79d3, 0x79d4, 0x79d6, 0x79d7, 0x79d9, 0x79da, 0x79db, 0x79dc, 0x79dd, 0x79de, 0x79e0, 0x79e1, 0x79e2, 0x79e5, 0x79e8, 0x79ea, 0x003f, 0x79ec, 0x79ee, 0x79f1, 0x79f2, 0x79f3, 0x79f4, 0x79f5, 0x79f6, 0x79f7, 0x79f9, 0x79fa, 0x79fc, 0x79fe, 0x79ff, 0x7a01, 0x7a04, 0x7a05, 0x7a07, 0x7a08, 0x7a09, 0x7a0a, 0x7a0c, 0x7a0f, 0x7a10, 0x7a11, 0x7a12, 0x7a13, 0x7a15, 0x7a16, 0x7a18, 0x7a19, 0x7a1b, 0x7a1c, 0x4e01, 0x76ef, 0x53ee, 0x9489, 0x9876, 0x9f0e, 0x952d, 0x5b9a, 0x8ba2, 0x4e22, 0x4e1c, 0x51ac, 0x8463, 0x61c2, 0x52a8, 0x680b, 0x4f97, 0x606b, 0x51bb, 0x6d1e, 0x515c, 0x6296, 0x6597, 0x9661, 0x8c46, 0x9017, 0x75d8, 0x90fd, 0x7763, 0x6bd2, 0x728a, 0x72ec, 0x8bfb, 0x5835, 0x7779, 0x8d4c, 0x675c, 0x9540, 0x809a, 0x5ea6, 0x6e21, 0x5992, 0x7aef, 0x77ed, 0x953b, 0x6bb5, 0x65ad, 0x7f0e, 0x5806, 0x5151, 0x961f, 0x5bf9, 0x58a9, 0x5428, 0x8e72, 0x6566, 0x987f, 0x56e4, 0x949d, 0x76fe, 0x9041, 0x6387, 0x54c6, 0x591a, 0x593a, 0x579b, 0x8eb2, 0x6735, 0x8dfa, 0x8235, 0x5241, 0x60f0, 0x5815, 0x86fe, 0x5ce8, 0x9e45, 0x4fc4, 0x989d, 0x8bb9, 0x5a25, 0x6076, 0x5384, 0x627c, 0x904f, 0x9102, 0x997f, 0x6069, 0x800c, 0x513f, 0x8033, 0x5c14, 0x9975, 0x6d31, 0x4e8c, 0x003f, /* lead byte b7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7a1d, 0x7a1f, 0x7a21, 0x7a22, 0x7a24, 0x7a25, 0x7a26, 0x7a27, 0x7a28, 0x7a29, 0x7a2a, 0x7a2b, 0x7a2c, 0x7a2d, 0x7a2e, 0x7a2f, 0x7a30, 0x7a31, 0x7a32, 0x7a34, 0x7a35, 0x7a36, 0x7a38, 0x7a3a, 0x7a3e, 0x7a40, 0x7a41, 0x7a42, 0x7a43, 0x7a44, 0x7a45, 0x7a47, 0x7a48, 0x7a49, 0x7a4a, 0x7a4b, 0x7a4c, 0x7a4d, 0x7a4e, 0x7a4f, 0x7a50, 0x7a52, 0x7a53, 0x7a54, 0x7a55, 0x7a56, 0x7a58, 0x7a59, 0x7a5a, 0x7a5b, 0x7a5c, 0x7a5d, 0x7a5e, 0x7a5f, 0x7a60, 0x7a61, 0x7a62, 0x7a63, 0x7a64, 0x7a65, 0x7a66, 0x7a67, 0x7a68, 0x003f, 0x7a69, 0x7a6a, 0x7a6b, 0x7a6c, 0x7a6d, 0x7a6e, 0x7a6f, 0x7a71, 0x7a72, 0x7a73, 0x7a75, 0x7a7b, 0x7a7c, 0x7a7d, 0x7a7e, 0x7a82, 0x7a85, 0x7a87, 0x7a89, 0x7a8a, 0x7a8b, 0x7a8c, 0x7a8e, 0x7a8f, 0x7a90, 0x7a93, 0x7a94, 0x7a99, 0x7a9a, 0x7a9b, 0x7a9e, 0x7aa1, 0x7aa2, 0x8d30, 0x53d1, 0x7f5a, 0x7b4f, 0x4f10, 0x4e4f, 0x9600, 0x6cd5, 0x73d0, 0x85e9, 0x5e06, 0x756a, 0x7ffb, 0x6a0a, 0x77fe, 0x9492, 0x7e41, 0x51e1, 0x70e6, 0x53cd, 0x8fd4, 0x8303, 0x8d29, 0x72af, 0x996d, 0x6cdb, 0x574a, 0x82b3, 0x65b9, 0x80aa, 0x623f, 0x9632, 0x59a8, 0x4eff, 0x8bbf, 0x7eba, 0x653e, 0x83f2, 0x975e, 0x5561, 0x98de, 0x80a5, 0x532a, 0x8bfd, 0x5420, 0x80ba, 0x5e9f, 0x6cb8, 0x8d39, 0x82ac, 0x915a, 0x5429, 0x6c1b, 0x5206, 0x7eb7, 0x575f, 0x711a, 0x6c7e, 0x7c89, 0x594b, 0x4efd, 0x5fff, 0x6124, 0x7caa, 0x4e30, 0x5c01, 0x67ab, 0x8702, 0x5cf0, 0x950b, 0x98ce, 0x75af, 0x70fd, 0x9022, 0x51af, 0x7f1d, 0x8bbd, 0x5949, 0x51e4, 0x4f5b, 0x5426, 0x592b, 0x6577, 0x80a4, 0x5b75, 0x6276, 0x62c2, 0x8f90, 0x5e45, 0x6c1f, 0x7b26, 0x4f0f, 0x4fd8, 0x670d, 0x003f, /* lead byte b8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7aa3, 0x7aa4, 0x7aa7, 0x7aa9, 0x7aaa, 0x7aab, 0x7aae, 0x7aaf, 0x7ab0, 0x7ab1, 0x7ab2, 0x7ab4, 0x7ab5, 0x7ab6, 0x7ab7, 0x7ab8, 0x7ab9, 0x7aba, 0x7abb, 0x7abc, 0x7abd, 0x7abe, 0x7ac0, 0x7ac1, 0x7ac2, 0x7ac3, 0x7ac4, 0x7ac5, 0x7ac6, 0x7ac7, 0x7ac8, 0x7ac9, 0x7aca, 0x7acc, 0x7acd, 0x7ace, 0x7acf, 0x7ad0, 0x7ad1, 0x7ad2, 0x7ad3, 0x7ad4, 0x7ad5, 0x7ad7, 0x7ad8, 0x7ada, 0x7adb, 0x7adc, 0x7add, 0x7ae1, 0x7ae2, 0x7ae4, 0x7ae7, 0x7ae8, 0x7ae9, 0x7aea, 0x7aeb, 0x7aec, 0x7aee, 0x7af0, 0x7af1, 0x7af2, 0x7af3, 0x003f, 0x7af4, 0x7af5, 0x7af6, 0x7af7, 0x7af8, 0x7afb, 0x7afc, 0x7afe, 0x7b00, 0x7b01, 0x7b02, 0x7b05, 0x7b07, 0x7b09, 0x7b0c, 0x7b0d, 0x7b0e, 0x7b10, 0x7b12, 0x7b13, 0x7b16, 0x7b17, 0x7b18, 0x7b1a, 0x7b1c, 0x7b1d, 0x7b1f, 0x7b21, 0x7b22, 0x7b23, 0x7b27, 0x7b29, 0x7b2d, 0x6d6e, 0x6daa, 0x798f, 0x88b1, 0x5f17, 0x752b, 0x629a, 0x8f85, 0x4fef, 0x91dc, 0x65a7, 0x812f, 0x8151, 0x5e9c, 0x8150, 0x8d74, 0x526f, 0x8986, 0x8d4b, 0x590d, 0x5085, 0x4ed8, 0x961c, 0x7236, 0x8179, 0x8d1f, 0x5bcc, 0x8ba3, 0x9644, 0x5987, 0x7f1a, 0x5490, 0x5676, 0x560e, 0x8be5, 0x6539, 0x6982, 0x9499, 0x76d6, 0x6e89, 0x5e72, 0x7518, 0x6746, 0x67d1, 0x7aff, 0x809d, 0x8d76, 0x611f, 0x79c6, 0x6562, 0x8d63, 0x5188, 0x521a, 0x94a2, 0x7f38, 0x809b, 0x7eb2, 0x5c97, 0x6e2f, 0x6760, 0x7bd9, 0x768b, 0x9ad8, 0x818f, 0x7f94, 0x7cd5, 0x641e, 0x9550, 0x7a3f, 0x544a, 0x54e5, 0x6b4c, 0x6401, 0x6208, 0x9e3d, 0x80f3, 0x7599, 0x5272, 0x9769, 0x845b, 0x683c, 0x86e4, 0x9601, 0x9694, 0x94ec, 0x4e2a, 0x5404, 0x7ed9, 0x6839, 0x8ddf, 0x8015, 0x66f4, 0x5e9a, 0x7fb9, 0x003f, /* lead byte b9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7b2f, 0x7b30, 0x7b32, 0x7b34, 0x7b35, 0x7b36, 0x7b37, 0x7b39, 0x7b3b, 0x7b3d, 0x7b3f, 0x7b40, 0x7b41, 0x7b42, 0x7b43, 0x7b44, 0x7b46, 0x7b48, 0x7b4a, 0x7b4d, 0x7b4e, 0x7b53, 0x7b55, 0x7b57, 0x7b59, 0x7b5c, 0x7b5e, 0x7b5f, 0x7b61, 0x7b63, 0x7b64, 0x7b65, 0x7b66, 0x7b67, 0x7b68, 0x7b69, 0x7b6a, 0x7b6b, 0x7b6c, 0x7b6d, 0x7b6f, 0x7b70, 0x7b73, 0x7b74, 0x7b76, 0x7b78, 0x7b7a, 0x7b7c, 0x7b7d, 0x7b7f, 0x7b81, 0x7b82, 0x7b83, 0x7b84, 0x7b86, 0x7b87, 0x7b88, 0x7b89, 0x7b8a, 0x7b8b, 0x7b8c, 0x7b8e, 0x7b8f, 0x003f, 0x7b91, 0x7b92, 0x7b93, 0x7b96, 0x7b98, 0x7b99, 0x7b9a, 0x7b9b, 0x7b9e, 0x7b9f, 0x7ba0, 0x7ba3, 0x7ba4, 0x7ba5, 0x7bae, 0x7baf, 0x7bb0, 0x7bb2, 0x7bb3, 0x7bb5, 0x7bb6, 0x7bb7, 0x7bb9, 0x7bba, 0x7bbb, 0x7bbc, 0x7bbd, 0x7bbe, 0x7bbf, 0x7bc0, 0x7bc2, 0x7bc3, 0x7bc4, 0x57c2, 0x803f, 0x6897, 0x5de5, 0x653b, 0x529f, 0x606d, 0x9f9a, 0x4f9b, 0x8eac, 0x516c, 0x5bab, 0x5f13, 0x5de9, 0x6c5e, 0x62f1, 0x8d21, 0x5171, 0x94a9, 0x52fe, 0x6c9f, 0x82df, 0x72d7, 0x57a2, 0x6784, 0x8d2d, 0x591f, 0x8f9c, 0x83c7, 0x5495, 0x7b8d, 0x4f30, 0x6cbd, 0x5b64, 0x59d1, 0x9f13, 0x53e4, 0x86ca, 0x9aa8, 0x8c37, 0x80a1, 0x6545, 0x987e, 0x56fa, 0x96c7, 0x522e, 0x74dc, 0x5250, 0x5be1, 0x6302, 0x8902, 0x4e56, 0x62d0, 0x602a, 0x68fa, 0x5173, 0x5b98, 0x51a0, 0x89c2, 0x7ba1, 0x9986, 0x7f50, 0x60ef, 0x704c, 0x8d2f, 0x5149, 0x5e7f, 0x901b, 0x7470, 0x89c4, 0x572d, 0x7845, 0x5f52, 0x9f9f, 0x95fa, 0x8f68, 0x9b3c, 0x8be1, 0x7678, 0x6842, 0x67dc, 0x8dea, 0x8d35, 0x523d, 0x8f8a, 0x6eda, 0x68cd, 0x9505, 0x90ed, 0x56fd, 0x679c, 0x88f9, 0x8fc7, 0x54c8, 0x003f, /* lead byte ba */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7bc5, 0x7bc8, 0x7bc9, 0x7bca, 0x7bcb, 0x7bcd, 0x7bce, 0x7bcf, 0x7bd0, 0x7bd2, 0x7bd4, 0x7bd5, 0x7bd6, 0x7bd7, 0x7bd8, 0x7bdb, 0x7bdc, 0x7bde, 0x7bdf, 0x7be0, 0x7be2, 0x7be3, 0x7be4, 0x7be7, 0x7be8, 0x7be9, 0x7beb, 0x7bec, 0x7bed, 0x7bef, 0x7bf0, 0x7bf2, 0x7bf3, 0x7bf4, 0x7bf5, 0x7bf6, 0x7bf8, 0x7bf9, 0x7bfa, 0x7bfb, 0x7bfd, 0x7bff, 0x7c00, 0x7c01, 0x7c02, 0x7c03, 0x7c04, 0x7c05, 0x7c06, 0x7c08, 0x7c09, 0x7c0a, 0x7c0d, 0x7c0e, 0x7c10, 0x7c11, 0x7c12, 0x7c13, 0x7c14, 0x7c15, 0x7c17, 0x7c18, 0x7c19, 0x003f, 0x7c1a, 0x7c1b, 0x7c1c, 0x7c1d, 0x7c1e, 0x7c20, 0x7c21, 0x7c22, 0x7c23, 0x7c24, 0x7c25, 0x7c28, 0x7c29, 0x7c2b, 0x7c2c, 0x7c2d, 0x7c2e, 0x7c2f, 0x7c30, 0x7c31, 0x7c32, 0x7c33, 0x7c34, 0x7c35, 0x7c36, 0x7c37, 0x7c39, 0x7c3a, 0x7c3b, 0x7c3c, 0x7c3d, 0x7c3e, 0x7c42, 0x9ab8, 0x5b69, 0x6d77, 0x6c26, 0x4ea5, 0x5bb3, 0x9a87, 0x9163, 0x61a8, 0x90af, 0x97e9, 0x542b, 0x6db5, 0x5bd2, 0x51fd, 0x558a, 0x7f55, 0x7ff0, 0x64bc, 0x634d, 0x65f1, 0x61be, 0x608d, 0x710a, 0x6c57, 0x6c49, 0x592f, 0x676d, 0x822a, 0x58d5, 0x568e, 0x8c6a, 0x6beb, 0x90dd, 0x597d, 0x8017, 0x53f7, 0x6d69, 0x5475, 0x559d, 0x8377, 0x83cf, 0x6838, 0x79be, 0x548c, 0x4f55, 0x5408, 0x76d2, 0x8c89, 0x9602, 0x6cb3, 0x6db8, 0x8d6b, 0x8910, 0x9e64, 0x8d3a, 0x563f, 0x9ed1, 0x75d5, 0x5f88, 0x72e0, 0x6068, 0x54fc, 0x4ea8, 0x6a2a, 0x8861, 0x6052, 0x8f70, 0x54c4, 0x70d8, 0x8679, 0x9e3f, 0x6d2a, 0x5b8f, 0x5f18, 0x7ea2, 0x5589, 0x4faf, 0x7334, 0x543c, 0x539a, 0x5019, 0x540e, 0x547c, 0x4e4e, 0x5ffd, 0x745a, 0x58f6, 0x846b, 0x80e1, 0x8774, 0x72d0, 0x7cca, 0x6e56, 0x003f, /* lead byte bb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7c43, 0x7c44, 0x7c45, 0x7c46, 0x7c47, 0x7c48, 0x7c49, 0x7c4a, 0x7c4b, 0x7c4c, 0x7c4e, 0x7c4f, 0x7c50, 0x7c51, 0x7c52, 0x7c53, 0x7c54, 0x7c55, 0x7c56, 0x7c57, 0x7c58, 0x7c59, 0x7c5a, 0x7c5b, 0x7c5c, 0x7c5d, 0x7c5e, 0x7c5f, 0x7c60, 0x7c61, 0x7c62, 0x7c63, 0x7c64, 0x7c65, 0x7c66, 0x7c67, 0x7c68, 0x7c69, 0x7c6a, 0x7c6b, 0x7c6c, 0x7c6d, 0x7c6e, 0x7c6f, 0x7c70, 0x7c71, 0x7c72, 0x7c75, 0x7c76, 0x7c77, 0x7c78, 0x7c79, 0x7c7a, 0x7c7e, 0x7c7f, 0x7c80, 0x7c81, 0x7c82, 0x7c83, 0x7c84, 0x7c85, 0x7c86, 0x7c87, 0x003f, 0x7c88, 0x7c8a, 0x7c8b, 0x7c8c, 0x7c8d, 0x7c8e, 0x7c8f, 0x7c90, 0x7c93, 0x7c94, 0x7c96, 0x7c99, 0x7c9a, 0x7c9b, 0x7ca0, 0x7ca1, 0x7ca3, 0x7ca6, 0x7ca7, 0x7ca8, 0x7ca9, 0x7cab, 0x7cac, 0x7cad, 0x7caf, 0x7cb0, 0x7cb4, 0x7cb5, 0x7cb6, 0x7cb7, 0x7cb8, 0x7cba, 0x7cbb, 0x5f27, 0x864e, 0x552c, 0x62a4, 0x4e92, 0x6caa, 0x6237, 0x82b1, 0x54d7, 0x534e, 0x733e, 0x6ed1, 0x753b, 0x5212, 0x5316, 0x8bdd, 0x69d0, 0x5f8a, 0x6000, 0x6dee, 0x574f, 0x6b22, 0x73af, 0x6853, 0x8fd8, 0x7f13, 0x6362, 0x60a3, 0x5524, 0x75ea, 0x8c62, 0x7115, 0x6da3, 0x5ba6, 0x5e7b, 0x8352, 0x614c, 0x9ec4, 0x78fa, 0x8757, 0x7c27, 0x7687, 0x51f0, 0x60f6, 0x714c, 0x6643, 0x5e4c, 0x604d, 0x8c0e, 0x7070, 0x6325, 0x8f89, 0x5fbd, 0x6062, 0x86d4, 0x56de, 0x6bc1, 0x6094, 0x6167, 0x5349, 0x60e0, 0x6666, 0x8d3f, 0x79fd, 0x4f1a, 0x70e9, 0x6c47, 0x8bb3, 0x8bf2, 0x7ed8, 0x8364, 0x660f, 0x5a5a, 0x9b42, 0x6d51, 0x6df7, 0x8c41, 0x6d3b, 0x4f19, 0x706b, 0x83b7, 0x6216, 0x60d1, 0x970d, 0x8d27, 0x7978, 0x51fb, 0x573e, 0x57fa, 0x673a, 0x7578, 0x7a3d, 0x79ef, 0x7b95, 0x003f, /* lead byte bc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7cbf, 0x7cc0, 0x7cc2, 0x7cc3, 0x7cc4, 0x7cc6, 0x7cc9, 0x7ccb, 0x7cce, 0x7ccf, 0x7cd0, 0x7cd1, 0x7cd2, 0x7cd3, 0x7cd4, 0x7cd8, 0x7cda, 0x7cdb, 0x7cdd, 0x7cde, 0x7ce1, 0x7ce2, 0x7ce3, 0x7ce4, 0x7ce5, 0x7ce6, 0x7ce7, 0x7ce9, 0x7cea, 0x7ceb, 0x7cec, 0x7ced, 0x7cee, 0x7cf0, 0x7cf1, 0x7cf2, 0x7cf3, 0x7cf4, 0x7cf5, 0x7cf6, 0x7cf7, 0x7cf9, 0x7cfa, 0x7cfc, 0x7cfd, 0x7cfe, 0x7cff, 0x7d00, 0x7d01, 0x7d02, 0x7d03, 0x7d04, 0x7d05, 0x7d06, 0x7d07, 0x7d08, 0x7d09, 0x7d0b, 0x7d0c, 0x7d0d, 0x7d0e, 0x7d0f, 0x7d10, 0x003f, 0x7d11, 0x7d12, 0x7d13, 0x7d14, 0x7d15, 0x7d16, 0x7d17, 0x7d18, 0x7d19, 0x7d1a, 0x7d1b, 0x7d1c, 0x7d1d, 0x7d1e, 0x7d1f, 0x7d21, 0x7d23, 0x7d24, 0x7d25, 0x7d26, 0x7d28, 0x7d29, 0x7d2a, 0x7d2c, 0x7d2d, 0x7d2e, 0x7d30, 0x7d31, 0x7d32, 0x7d33, 0x7d34, 0x7d35, 0x7d36, 0x808c, 0x9965, 0x8ff9, 0x6fc0, 0x8ba5, 0x9e21, 0x59ec, 0x7ee9, 0x7f09, 0x5409, 0x6781, 0x68d8, 0x8f91, 0x7c4d, 0x96c6, 0x53ca, 0x6025, 0x75be, 0x6c72, 0x5373, 0x5ac9, 0x7ea7, 0x6324, 0x51e0, 0x810a, 0x5df1, 0x84df, 0x6280, 0x5180, 0x5b63, 0x4f0e, 0x796d, 0x5242, 0x60b8, 0x6d4e, 0x5bc4, 0x5bc2, 0x8ba1, 0x8bb0, 0x65e2, 0x5fcc, 0x9645, 0x5993, 0x7ee7, 0x7eaa, 0x5609, 0x67b7, 0x5939, 0x4f73, 0x5bb6, 0x52a0, 0x835a, 0x988a, 0x8d3e, 0x7532, 0x94be, 0x5047, 0x7a3c, 0x4ef7, 0x67b6, 0x9a7e, 0x5ac1, 0x6b7c, 0x76d1, 0x575a, 0x5c16, 0x7b3a, 0x95f4, 0x714e, 0x517c, 0x80a9, 0x8270, 0x5978, 0x7f04, 0x8327, 0x68c0, 0x67ec, 0x78b1, 0x7877, 0x62e3, 0x6361, 0x7b80, 0x4fed, 0x526a, 0x51cf, 0x8350, 0x69db, 0x9274, 0x8df5, 0x8d31, 0x89c1, 0x952e, 0x7bad, 0x4ef6, 0x003f, /* lead byte bd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7d37, 0x7d38, 0x7d39, 0x7d3a, 0x7d3b, 0x7d3c, 0x7d3d, 0x7d3e, 0x7d3f, 0x7d40, 0x7d41, 0x7d42, 0x7d43, 0x7d44, 0x7d45, 0x7d46, 0x7d47, 0x7d48, 0x7d49, 0x7d4a, 0x7d4b, 0x7d4c, 0x7d4d, 0x7d4e, 0x7d4f, 0x7d50, 0x7d51, 0x7d52, 0x7d53, 0x7d54, 0x7d55, 0x7d56, 0x7d57, 0x7d58, 0x7d59, 0x7d5a, 0x7d5b, 0x7d5c, 0x7d5d, 0x7d5e, 0x7d5f, 0x7d60, 0x7d61, 0x7d62, 0x7d63, 0x7d64, 0x7d65, 0x7d66, 0x7d67, 0x7d68, 0x7d69, 0x7d6a, 0x7d6b, 0x7d6c, 0x7d6d, 0x7d6f, 0x7d70, 0x7d71, 0x7d72, 0x7d73, 0x7d74, 0x7d75, 0x7d76, 0x003f, 0x7d78, 0x7d79, 0x7d7a, 0x7d7b, 0x7d7c, 0x7d7d, 0x7d7e, 0x7d7f, 0x7d80, 0x7d81, 0x7d82, 0x7d83, 0x7d84, 0x7d85, 0x7d86, 0x7d87, 0x7d88, 0x7d89, 0x7d8a, 0x7d8b, 0x7d8c, 0x7d8d, 0x7d8e, 0x7d8f, 0x7d90, 0x7d91, 0x7d92, 0x7d93, 0x7d94, 0x7d95, 0x7d96, 0x7d97, 0x7d98, 0x5065, 0x8230, 0x5251, 0x996f, 0x6e10, 0x6e85, 0x6da7, 0x5efa, 0x50f5, 0x59dc, 0x5c06, 0x6d46, 0x6c5f, 0x7586, 0x848b, 0x6868, 0x5956, 0x8bb2, 0x5320, 0x9171, 0x964d, 0x8549, 0x6912, 0x7901, 0x7126, 0x80f6, 0x4ea4, 0x90ca, 0x6d47, 0x9a84, 0x5a07, 0x56bc, 0x6405, 0x94f0, 0x77eb, 0x4fa5, 0x811a, 0x72e1, 0x89d2, 0x997a, 0x7f34, 0x7ede, 0x527f, 0x6559, 0x9175, 0x8f7f, 0x8f83, 0x53eb, 0x7a96, 0x63ed, 0x63a5, 0x7686, 0x79f8, 0x8857, 0x9636, 0x622a, 0x52ab, 0x8282, 0x6854, 0x6770, 0x6377, 0x776b, 0x7aed, 0x6d01, 0x7ed3, 0x89e3, 0x59d0, 0x6212, 0x85c9, 0x82a5, 0x754c, 0x501f, 0x4ecb, 0x75a5, 0x8beb, 0x5c4a, 0x5dfe, 0x7b4b, 0x65a4, 0x91d1, 0x4eca, 0x6d25, 0x895f, 0x7d27, 0x9526, 0x4ec5, 0x8c28, 0x8fdb, 0x9773, 0x664b, 0x7981, 0x8fd1, 0x70ec, 0x6d78, 0x003f, /* lead byte be */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7d99, 0x7d9a, 0x7d9b, 0x7d9c, 0x7d9d, 0x7d9e, 0x7d9f, 0x7da0, 0x7da1, 0x7da2, 0x7da3, 0x7da4, 0x7da5, 0x7da7, 0x7da8, 0x7da9, 0x7daa, 0x7dab, 0x7dac, 0x7dad, 0x7daf, 0x7db0, 0x7db1, 0x7db2, 0x7db3, 0x7db4, 0x7db5, 0x7db6, 0x7db7, 0x7db8, 0x7db9, 0x7dba, 0x7dbb, 0x7dbc, 0x7dbd, 0x7dbe, 0x7dbf, 0x7dc0, 0x7dc1, 0x7dc2, 0x7dc3, 0x7dc4, 0x7dc5, 0x7dc6, 0x7dc7, 0x7dc8, 0x7dc9, 0x7dca, 0x7dcb, 0x7dcc, 0x7dcd, 0x7dce, 0x7dcf, 0x7dd0, 0x7dd1, 0x7dd2, 0x7dd3, 0x7dd4, 0x7dd5, 0x7dd6, 0x7dd7, 0x7dd8, 0x7dd9, 0x003f, 0x7dda, 0x7ddb, 0x7ddc, 0x7ddd, 0x7dde, 0x7ddf, 0x7de0, 0x7de1, 0x7de2, 0x7de3, 0x7de4, 0x7de5, 0x7de6, 0x7de7, 0x7de8, 0x7de9, 0x7dea, 0x7deb, 0x7dec, 0x7ded, 0x7dee, 0x7def, 0x7df0, 0x7df1, 0x7df2, 0x7df3, 0x7df4, 0x7df5, 0x7df6, 0x7df7, 0x7df8, 0x7df9, 0x7dfa, 0x5c3d, 0x52b2, 0x8346, 0x5162, 0x830e, 0x775b, 0x6676, 0x9cb8, 0x4eac, 0x60ca, 0x7cbe, 0x7cb3, 0x7ecf, 0x4e95, 0x8b66, 0x666f, 0x9888, 0x9759, 0x5883, 0x656c, 0x955c, 0x5f84, 0x75c9, 0x9756, 0x7adf, 0x7ade, 0x51c0, 0x70af, 0x7a98, 0x63ea, 0x7a76, 0x7ea0, 0x7396, 0x97ed, 0x4e45, 0x7078, 0x4e5d, 0x9152, 0x53a9, 0x6551, 0x65e7, 0x81fc, 0x8205, 0x548e, 0x5c31, 0x759a, 0x97a0, 0x62d8, 0x72d9, 0x75bd, 0x5c45, 0x9a79, 0x83ca, 0x5c40, 0x5480, 0x77e9, 0x4e3e, 0x6cae, 0x805a, 0x62d2, 0x636e, 0x5de8, 0x5177, 0x8ddd, 0x8e1e, 0x952f, 0x4ff1, 0x53e5, 0x60e7, 0x70ac, 0x5267, 0x6350, 0x9e43, 0x5a1f, 0x5026, 0x7737, 0x5377, 0x7ee2, 0x6485, 0x652b, 0x6289, 0x6398, 0x5014, 0x7235, 0x89c9, 0x51b3, 0x8bc0, 0x7edd, 0x5747, 0x83cc, 0x94a7, 0x519b, 0x541b, 0x5cfb, 0x003f, /* lead byte bf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7dfb, 0x7dfc, 0x7dfd, 0x7dfe, 0x7dff, 0x7e00, 0x7e01, 0x7e02, 0x7e03, 0x7e04, 0x7e05, 0x7e06, 0x7e07, 0x7e08, 0x7e09, 0x7e0a, 0x7e0b, 0x7e0c, 0x7e0d, 0x7e0e, 0x7e0f, 0x7e10, 0x7e11, 0x7e12, 0x7e13, 0x7e14, 0x7e15, 0x7e16, 0x7e17, 0x7e18, 0x7e19, 0x7e1a, 0x7e1b, 0x7e1c, 0x7e1d, 0x7e1e, 0x7e1f, 0x7e20, 0x7e21, 0x7e22, 0x7e23, 0x7e24, 0x7e25, 0x7e26, 0x7e27, 0x7e28, 0x7e29, 0x7e2a, 0x7e2b, 0x7e2c, 0x7e2d, 0x7e2e, 0x7e2f, 0x7e30, 0x7e31, 0x7e32, 0x7e33, 0x7e34, 0x7e35, 0x7e36, 0x7e37, 0x7e38, 0x7e39, 0x003f, 0x7e3a, 0x7e3c, 0x7e3d, 0x7e3e, 0x7e3f, 0x7e40, 0x7e42, 0x7e43, 0x7e44, 0x7e45, 0x7e46, 0x7e48, 0x7e49, 0x7e4a, 0x7e4b, 0x7e4c, 0x7e4d, 0x7e4e, 0x7e4f, 0x7e50, 0x7e51, 0x7e52, 0x7e53, 0x7e54, 0x7e55, 0x7e56, 0x7e57, 0x7e58, 0x7e59, 0x7e5a, 0x7e5b, 0x7e5c, 0x7e5d, 0x4fca, 0x7ae3, 0x6d5a, 0x90e1, 0x9a8f, 0x5580, 0x5496, 0x5361, 0x54af, 0x5f00, 0x63e9, 0x6977, 0x51ef, 0x6168, 0x520a, 0x582a, 0x52d8, 0x574e, 0x780d, 0x770b, 0x5eb7, 0x6177, 0x7ce0, 0x625b, 0x6297, 0x4ea2, 0x7095, 0x8003, 0x62f7, 0x70e4, 0x9760, 0x5777, 0x82db, 0x67ef, 0x68f5, 0x78d5, 0x9897, 0x79d1, 0x58f3, 0x54b3, 0x53ef, 0x6e34, 0x514b, 0x523b, 0x5ba2, 0x8bfe, 0x80af, 0x5543, 0x57a6, 0x6073, 0x5751, 0x542d, 0x7a7a, 0x6050, 0x5b54, 0x63a7, 0x62a0, 0x53e3, 0x6263, 0x5bc7, 0x67af, 0x54ed, 0x7a9f, 0x82e6, 0x9177, 0x5e93, 0x88e4, 0x5938, 0x57ae, 0x630e, 0x8de8, 0x80ef, 0x5757, 0x7b77, 0x4fa9, 0x5feb, 0x5bbd, 0x6b3e, 0x5321, 0x7b50, 0x72c2, 0x6846, 0x77ff, 0x7736, 0x65f7, 0x51b5, 0x4e8f, 0x76d4, 0x5cbf, 0x7aa5, 0x8475, 0x594e, 0x9b41, 0x5080, 0x003f, /* lead byte c0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e5e, 0x7e5f, 0x7e60, 0x7e61, 0x7e62, 0x7e63, 0x7e64, 0x7e65, 0x7e66, 0x7e67, 0x7e68, 0x7e69, 0x7e6a, 0x7e6b, 0x7e6c, 0x7e6d, 0x7e6e, 0x7e6f, 0x7e70, 0x7e71, 0x7e72, 0x7e73, 0x7e74, 0x7e75, 0x7e76, 0x7e77, 0x7e78, 0x7e79, 0x7e7a, 0x7e7b, 0x7e7c, 0x7e7d, 0x7e7e, 0x7e7f, 0x7e80, 0x7e81, 0x7e83, 0x7e84, 0x7e85, 0x7e86, 0x7e87, 0x7e88, 0x7e89, 0x7e8a, 0x7e8b, 0x7e8c, 0x7e8d, 0x7e8e, 0x7e8f, 0x7e90, 0x7e91, 0x7e92, 0x7e93, 0x7e94, 0x7e95, 0x7e96, 0x7e97, 0x7e98, 0x7e99, 0x7e9a, 0x7e9c, 0x7e9d, 0x7e9e, 0x003f, 0x7eae, 0x7eb4, 0x7ebb, 0x7ebc, 0x7ed6, 0x7ee4, 0x7eec, 0x7ef9, 0x7f0a, 0x7f10, 0x7f1e, 0x7f37, 0x7f39, 0x7f3b, 0x7f3c, 0x7f3d, 0x7f3e, 0x7f3f, 0x7f40, 0x7f41, 0x7f43, 0x7f46, 0x7f47, 0x7f48, 0x7f49, 0x7f4a, 0x7f4b, 0x7f4c, 0x7f4d, 0x7f4e, 0x7f4f, 0x7f52, 0x7f53, 0x9988, 0x6127, 0x6e83, 0x5764, 0x6606, 0x6346, 0x56f0, 0x62ec, 0x6269, 0x5ed3, 0x9614, 0x5783, 0x62c9, 0x5587, 0x8721, 0x814a, 0x8fa3, 0x5566, 0x83b1, 0x6765, 0x8d56, 0x84dd, 0x5a6a, 0x680f, 0x62e6, 0x7bee, 0x9611, 0x5170, 0x6f9c, 0x8c30, 0x63fd, 0x89c8, 0x61d2, 0x7f06, 0x70c2, 0x6ee5, 0x7405, 0x6994, 0x72fc, 0x5eca, 0x90ce, 0x6717, 0x6d6a, 0x635e, 0x52b3, 0x7262, 0x8001, 0x4f6c, 0x59e5, 0x916a, 0x70d9, 0x6d9d, 0x52d2, 0x4e50, 0x96f7, 0x956d, 0x857e, 0x78ca, 0x7d2f, 0x5121, 0x5792, 0x64c2, 0x808b, 0x7c7b, 0x6cea, 0x68f1, 0x695e, 0x51b7, 0x5398, 0x68a8, 0x7281, 0x9ece, 0x7bf1, 0x72f8, 0x79bb, 0x6f13, 0x7406, 0x674e, 0x91cc, 0x9ca4, 0x793c, 0x8389, 0x8354, 0x540f, 0x6817, 0x4e3d, 0x5389, 0x52b1, 0x783e, 0x5386, 0x5229, 0x5088, 0x4f8b, 0x4fd0, 0x003f, /* lead byte c1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7f56, 0x7f59, 0x7f5b, 0x7f5c, 0x7f5d, 0x7f5e, 0x7f60, 0x7f63, 0x7f64, 0x7f65, 0x7f66, 0x7f67, 0x7f6b, 0x7f6c, 0x7f6d, 0x7f6f, 0x7f70, 0x7f73, 0x7f75, 0x7f76, 0x7f77, 0x7f78, 0x7f7a, 0x7f7b, 0x7f7c, 0x7f7d, 0x7f7f, 0x7f80, 0x7f82, 0x7f83, 0x7f84, 0x7f85, 0x7f86, 0x7f87, 0x7f88, 0x7f89, 0x7f8b, 0x7f8d, 0x7f8f, 0x7f90, 0x7f91, 0x7f92, 0x7f93, 0x7f95, 0x7f96, 0x7f97, 0x7f98, 0x7f99, 0x7f9b, 0x7f9c, 0x7fa0, 0x7fa2, 0x7fa3, 0x7fa5, 0x7fa6, 0x7fa8, 0x7fa9, 0x7faa, 0x7fab, 0x7fac, 0x7fad, 0x7fae, 0x7fb1, 0x003f, 0x7fb3, 0x7fb4, 0x7fb5, 0x7fb6, 0x7fb7, 0x7fba, 0x7fbb, 0x7fbe, 0x7fc0, 0x7fc2, 0x7fc3, 0x7fc4, 0x7fc6, 0x7fc7, 0x7fc8, 0x7fc9, 0x7fcb, 0x7fcd, 0x7fcf, 0x7fd0, 0x7fd1, 0x7fd2, 0x7fd3, 0x7fd6, 0x7fd7, 0x7fd9, 0x7fda, 0x7fdb, 0x7fdc, 0x7fdd, 0x7fde, 0x7fe2, 0x7fe3, 0x75e2, 0x7acb, 0x7c92, 0x6ca5, 0x96b6, 0x529b, 0x7483, 0x54e9, 0x4fe9, 0x8054, 0x83b2, 0x8fde, 0x9570, 0x5ec9, 0x601c, 0x6d9f, 0x5e18, 0x655b, 0x8138, 0x94fe, 0x604b, 0x70bc, 0x7ec3, 0x7cae, 0x51c9, 0x6881, 0x7cb1, 0x826f, 0x4e24, 0x8f86, 0x91cf, 0x667e, 0x4eae, 0x8c05, 0x64a9, 0x804a, 0x50da, 0x7597, 0x71ce, 0x5be5, 0x8fbd, 0x6f66, 0x4e86, 0x6482, 0x9563, 0x5ed6, 0x6599, 0x5217, 0x88c2, 0x70c8, 0x52a3, 0x730e, 0x7433, 0x6797, 0x78f7, 0x9716, 0x4e34, 0x90bb, 0x9cde, 0x6dcb, 0x51db, 0x8d41, 0x541d, 0x62ce, 0x73b2, 0x83f1, 0x96f6, 0x9f84, 0x94c3, 0x4f36, 0x7f9a, 0x51cc, 0x7075, 0x9675, 0x5cad, 0x9886, 0x53e6, 0x4ee4, 0x6e9c, 0x7409, 0x69b4, 0x786b, 0x998f, 0x7559, 0x5218, 0x7624, 0x6d41, 0x67f3, 0x516d, 0x9f99, 0x804b, 0x5499, 0x7b3c, 0x7abf, 0x003f, /* lead byte c2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7fe4, 0x7fe7, 0x7fe8, 0x7fea, 0x7feb, 0x7fec, 0x7fed, 0x7fef, 0x7ff2, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffd, 0x7ffe, 0x7fff, 0x8002, 0x8007, 0x8008, 0x8009, 0x800a, 0x800e, 0x800f, 0x8011, 0x8013, 0x801a, 0x801b, 0x801d, 0x801e, 0x801f, 0x8021, 0x8023, 0x8024, 0x802b, 0x802c, 0x802d, 0x802e, 0x802f, 0x8030, 0x8032, 0x8034, 0x8039, 0x803a, 0x803c, 0x803e, 0x8040, 0x8041, 0x8044, 0x8045, 0x8047, 0x8048, 0x8049, 0x804e, 0x804f, 0x8050, 0x8051, 0x8053, 0x8055, 0x8056, 0x8057, 0x003f, 0x8059, 0x805b, 0x805c, 0x805d, 0x805e, 0x805f, 0x8060, 0x8061, 0x8062, 0x8063, 0x8064, 0x8065, 0x8066, 0x8067, 0x8068, 0x806b, 0x806c, 0x806d, 0x806e, 0x806f, 0x8070, 0x8072, 0x8073, 0x8074, 0x8075, 0x8076, 0x8077, 0x8078, 0x8079, 0x807a, 0x807b, 0x807c, 0x807d, 0x9686, 0x5784, 0x62e2, 0x9647, 0x697c, 0x5a04, 0x6402, 0x7bd3, 0x6f0f, 0x964b, 0x82a6, 0x5362, 0x9885, 0x5e90, 0x7089, 0x63b3, 0x5364, 0x864f, 0x9c81, 0x9e93, 0x788c, 0x9732, 0x8def, 0x8d42, 0x9e7f, 0x6f5e, 0x7984, 0x5f55, 0x9646, 0x622e, 0x9a74, 0x5415, 0x94dd, 0x4fa3, 0x65c5, 0x5c65, 0x5c61, 0x7f15, 0x8651, 0x6c2f, 0x5f8b, 0x7387, 0x6ee4, 0x7eff, 0x5ce6, 0x631b, 0x5b6a, 0x6ee6, 0x5375, 0x4e71, 0x63a0, 0x7565, 0x62a1, 0x8f6e, 0x4f26, 0x4ed1, 0x6ca6, 0x7eb6, 0x8bba, 0x841d, 0x87ba, 0x7f57, 0x903b, 0x9523, 0x7ba9, 0x9aa1, 0x88f8, 0x843d, 0x6d1b, 0x9a86, 0x7edc, 0x5988, 0x9ebb, 0x739b, 0x7801, 0x8682, 0x9a6c, 0x9a82, 0x561b, 0x5417, 0x57cb, 0x4e70, 0x9ea6, 0x5356, 0x8fc8, 0x8109, 0x7792, 0x9992, 0x86ee, 0x6ee1, 0x8513, 0x66fc, 0x6162, 0x6f2b, 0x003f, /* lead byte c3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x807e, 0x8081, 0x8082, 0x8085, 0x8088, 0x808a, 0x808d, 0x808e, 0x808f, 0x8090, 0x8091, 0x8092, 0x8094, 0x8095, 0x8097, 0x8099, 0x809e, 0x80a3, 0x80a6, 0x80a7, 0x80a8, 0x80ac, 0x80b0, 0x80b3, 0x80b5, 0x80b6, 0x80b8, 0x80b9, 0x80bb, 0x80c5, 0x80c7, 0x80c8, 0x80c9, 0x80ca, 0x80cb, 0x80cf, 0x80d0, 0x80d1, 0x80d2, 0x80d3, 0x80d4, 0x80d5, 0x80d8, 0x80df, 0x80e0, 0x80e2, 0x80e3, 0x80e6, 0x80ee, 0x80f5, 0x80f7, 0x80f9, 0x80fb, 0x80fe, 0x80ff, 0x8100, 0x8101, 0x8103, 0x8104, 0x8105, 0x8107, 0x8108, 0x810b, 0x003f, 0x810c, 0x8115, 0x8117, 0x8119, 0x811b, 0x811c, 0x811d, 0x811f, 0x8120, 0x8121, 0x8122, 0x8123, 0x8124, 0x8125, 0x8126, 0x8127, 0x8128, 0x8129, 0x812a, 0x812b, 0x812d, 0x812e, 0x8130, 0x8133, 0x8134, 0x8135, 0x8137, 0x8139, 0x813a, 0x813b, 0x813c, 0x813d, 0x813f, 0x8c29, 0x8292, 0x832b, 0x76f2, 0x6c13, 0x5fd9, 0x83bd, 0x732b, 0x8305, 0x951a, 0x6bdb, 0x77db, 0x94c6, 0x536f, 0x8302, 0x5192, 0x5e3d, 0x8c8c, 0x8d38, 0x4e48, 0x73ab, 0x679a, 0x6885, 0x9176, 0x9709, 0x7164, 0x6ca1, 0x7709, 0x5a92, 0x9541, 0x6bcf, 0x7f8e, 0x6627, 0x5bd0, 0x59b9, 0x5a9a, 0x95e8, 0x95f7, 0x4eec, 0x840c, 0x8499, 0x6aac, 0x76df, 0x9530, 0x731b, 0x68a6, 0x5b5f, 0x772f, 0x919a, 0x9761, 0x7cdc, 0x8ff7, 0x8c1c, 0x5f25, 0x7c73, 0x79d8, 0x89c5, 0x6ccc, 0x871c, 0x5bc6, 0x5e42, 0x68c9, 0x7720, 0x7ef5, 0x5195, 0x514d, 0x52c9, 0x5a29, 0x7f05, 0x9762, 0x82d7, 0x63cf, 0x7784, 0x85d0, 0x79d2, 0x6e3a, 0x5e99, 0x5999, 0x8511, 0x706d, 0x6c11, 0x62bf, 0x76bf, 0x654f, 0x60af, 0x95fd, 0x660e, 0x879f, 0x9e23, 0x94ed, 0x540d, 0x547d, 0x8c2c, 0x6478, 0x003f, /* lead byte c4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8140, 0x8141, 0x8142, 0x8143, 0x8144, 0x8145, 0x8147, 0x8149, 0x814d, 0x814e, 0x814f, 0x8152, 0x8156, 0x8157, 0x8158, 0x815b, 0x815c, 0x815d, 0x815e, 0x815f, 0x8161, 0x8162, 0x8163, 0x8164, 0x8166, 0x8168, 0x816a, 0x816b, 0x816c, 0x816f, 0x8172, 0x8173, 0x8175, 0x8176, 0x8177, 0x8178, 0x8181, 0x8183, 0x8184, 0x8185, 0x8186, 0x8187, 0x8189, 0x818b, 0x818c, 0x818d, 0x818e, 0x8190, 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8199, 0x819a, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0x81a4, 0x81a5, 0x003f, 0x81a7, 0x81a9, 0x81ab, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0x81bc, 0x81bd, 0x81be, 0x81bf, 0x81c4, 0x81c5, 0x81c7, 0x81c8, 0x81c9, 0x81cb, 0x81cd, 0x81ce, 0x81cf, 0x81d0, 0x81d1, 0x81d2, 0x81d3, 0x6479, 0x8611, 0x6a21, 0x819c, 0x78e8, 0x6469, 0x9b54, 0x62b9, 0x672b, 0x83ab, 0x58a8, 0x9ed8, 0x6cab, 0x6f20, 0x5bde, 0x964c, 0x8c0b, 0x725f, 0x67d0, 0x62c7, 0x7261, 0x4ea9, 0x59c6, 0x6bcd, 0x5893, 0x66ae, 0x5e55, 0x52df, 0x6155, 0x6728, 0x76ee, 0x7766, 0x7267, 0x7a46, 0x62ff, 0x54ea, 0x5450, 0x94a0, 0x90a3, 0x5a1c, 0x7eb3, 0x6c16, 0x4e43, 0x5976, 0x8010, 0x5948, 0x5357, 0x7537, 0x96be, 0x56ca, 0x6320, 0x8111, 0x607c, 0x95f9, 0x6dd6, 0x5462, 0x9981, 0x5185, 0x5ae9, 0x80fd, 0x59ae, 0x9713, 0x502a, 0x6ce5, 0x5c3c, 0x62df, 0x4f60, 0x533f, 0x817b, 0x9006, 0x6eba, 0x852b, 0x62c8, 0x5e74, 0x78be, 0x64b5, 0x637b, 0x5ff5, 0x5a18, 0x917f, 0x9e1f, 0x5c3f, 0x634f, 0x8042, 0x5b7d, 0x556e, 0x954a, 0x954d, 0x6d85, 0x60a8, 0x67e0, 0x72de, 0x51dd, 0x5b81, 0x003f, /* lead byte c5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0x81d8, 0x81d9, 0x81da, 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0x81e1, 0x81e2, 0x81e4, 0x81e5, 0x81e6, 0x81e8, 0x81e9, 0x81eb, 0x81ee, 0x81ef, 0x81f0, 0x81f1, 0x81f2, 0x81f5, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, 0x81fd, 0x81ff, 0x8203, 0x8207, 0x8208, 0x8209, 0x820a, 0x820b, 0x820e, 0x820f, 0x8211, 0x8213, 0x8215, 0x8216, 0x8217, 0x8218, 0x8219, 0x821a, 0x821d, 0x8220, 0x8224, 0x8225, 0x8226, 0x8227, 0x8229, 0x822e, 0x8232, 0x823a, 0x823c, 0x823d, 0x823f, 0x003f, 0x8240, 0x8241, 0x8242, 0x8243, 0x8245, 0x8246, 0x8248, 0x824a, 0x824c, 0x824d, 0x824e, 0x8250, 0x8251, 0x8252, 0x8253, 0x8254, 0x8255, 0x8256, 0x8257, 0x8259, 0x825b, 0x825c, 0x825d, 0x825e, 0x8260, 0x8261, 0x8262, 0x8263, 0x8264, 0x8265, 0x8266, 0x8267, 0x8269, 0x62e7, 0x6cde, 0x725b, 0x626d, 0x94ae, 0x7ebd, 0x8113, 0x6d53, 0x519c, 0x5f04, 0x5974, 0x52aa, 0x6012, 0x5973, 0x6696, 0x8650, 0x759f, 0x632a, 0x61e6, 0x7cef, 0x8bfa, 0x54e6, 0x6b27, 0x9e25, 0x6bb4, 0x85d5, 0x5455, 0x5076, 0x6ca4, 0x556a, 0x8db4, 0x722c, 0x5e15, 0x6015, 0x7436, 0x62cd, 0x6392, 0x724c, 0x5f98, 0x6e43, 0x6d3e, 0x6500, 0x6f58, 0x76d8, 0x78d0, 0x76fc, 0x7554, 0x5224, 0x53db, 0x4e53, 0x5e9e, 0x65c1, 0x802a, 0x80d6, 0x629b, 0x5486, 0x5228, 0x70ae, 0x888d, 0x8dd1, 0x6ce1, 0x5478, 0x80da, 0x57f9, 0x88f4, 0x8d54, 0x966a, 0x914d, 0x4f69, 0x6c9b, 0x55b7, 0x76c6, 0x7830, 0x62a8, 0x70f9, 0x6f8e, 0x5f6d, 0x84ec, 0x68da, 0x787c, 0x7bf7, 0x81a8, 0x670b, 0x9e4f, 0x6367, 0x78b0, 0x576f, 0x7812, 0x9739, 0x6279, 0x62ab, 0x5288, 0x7435, 0x6bd7, 0x003f, /* lead byte c6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x826a, 0x826b, 0x826c, 0x826d, 0x8271, 0x8275, 0x8276, 0x8277, 0x8278, 0x827b, 0x827c, 0x8280, 0x8281, 0x8283, 0x8285, 0x8286, 0x8287, 0x8289, 0x828c, 0x8290, 0x8293, 0x8294, 0x8295, 0x8296, 0x829a, 0x829b, 0x829e, 0x82a0, 0x82a2, 0x82a3, 0x82a7, 0x82b2, 0x82b5, 0x82b6, 0x82ba, 0x82bb, 0x82bc, 0x82bf, 0x82c0, 0x82c2, 0x82c3, 0x82c5, 0x82c6, 0x82c9, 0x82d0, 0x82d6, 0x82d9, 0x82da, 0x82dd, 0x82e2, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82ec, 0x82ed, 0x82ee, 0x82f0, 0x82f2, 0x82f3, 0x82f5, 0x82f6, 0x82f8, 0x003f, 0x82fa, 0x82fc, 0x82fd, 0x82fe, 0x82ff, 0x8300, 0x830a, 0x830b, 0x830d, 0x8310, 0x8312, 0x8313, 0x8316, 0x8318, 0x8319, 0x831d, 0x831e, 0x831f, 0x8320, 0x8321, 0x8322, 0x8323, 0x8324, 0x8325, 0x8326, 0x8329, 0x832a, 0x832e, 0x8330, 0x8332, 0x8337, 0x833b, 0x833d, 0x5564, 0x813e, 0x75b2, 0x76ae, 0x5339, 0x75de, 0x50fb, 0x5c41, 0x8b6c, 0x7bc7, 0x504f, 0x7247, 0x9a97, 0x98d8, 0x6f02, 0x74e2, 0x7968, 0x6487, 0x77a5, 0x62fc, 0x9891, 0x8d2b, 0x54c1, 0x8058, 0x4e52, 0x576a, 0x82f9, 0x840d, 0x5e73, 0x51ed, 0x74f6, 0x8bc4, 0x5c4f, 0x5761, 0x6cfc, 0x9887, 0x5a46, 0x7834, 0x9b44, 0x8feb, 0x7c95, 0x5256, 0x6251, 0x94fa, 0x4ec6, 0x8386, 0x8461, 0x83e9, 0x84b2, 0x57d4, 0x6734, 0x5703, 0x666e, 0x6d66, 0x8c31, 0x66dd, 0x7011, 0x671f, 0x6b3a, 0x6816, 0x621a, 0x59bb, 0x4e03, 0x51c4, 0x6f06, 0x67d2, 0x6c8f, 0x5176, 0x68cb, 0x5947, 0x6b67, 0x7566, 0x5d0e, 0x8110, 0x9f50, 0x65d7, 0x7948, 0x7941, 0x9a91, 0x8d77, 0x5c82, 0x4e5e, 0x4f01, 0x542f, 0x5951, 0x780c, 0x5668, 0x6c14, 0x8fc4, 0x5f03, 0x6c7d, 0x6ce3, 0x8bab, 0x6390, 0x003f, /* lead byte c7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x833e, 0x833f, 0x8341, 0x8342, 0x8344, 0x8345, 0x8348, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x8353, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359, 0x835d, 0x8362, 0x8370, 0x8371, 0x8372, 0x8373, 0x8374, 0x8375, 0x8376, 0x8379, 0x837a, 0x837e, 0x837f, 0x8380, 0x8381, 0x8382, 0x8383, 0x8384, 0x8387, 0x8388, 0x838a, 0x838b, 0x838c, 0x838d, 0x838f, 0x8390, 0x8391, 0x8394, 0x8395, 0x8396, 0x8397, 0x8399, 0x839a, 0x839d, 0x839f, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83ac, 0x83ad, 0x83ae, 0x003f, 0x83af, 0x83b5, 0x83bb, 0x83be, 0x83bf, 0x83c2, 0x83c3, 0x83c4, 0x83c6, 0x83c8, 0x83c9, 0x83cb, 0x83cd, 0x83ce, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d5, 0x83d7, 0x83d9, 0x83da, 0x83db, 0x83de, 0x83e2, 0x83e3, 0x83e4, 0x83e6, 0x83e7, 0x83e8, 0x83eb, 0x83ec, 0x83ed, 0x6070, 0x6d3d, 0x7275, 0x6266, 0x948e, 0x94c5, 0x5343, 0x8fc1, 0x7b7e, 0x4edf, 0x8c26, 0x4e7e, 0x9ed4, 0x94b1, 0x94b3, 0x524d, 0x6f5c, 0x9063, 0x6d45, 0x8c34, 0x5811, 0x5d4c, 0x6b20, 0x6b49, 0x67aa, 0x545b, 0x8154, 0x7f8c, 0x5899, 0x8537, 0x5f3a, 0x62a2, 0x6a47, 0x9539, 0x6572, 0x6084, 0x6865, 0x77a7, 0x4e54, 0x4fa8, 0x5de7, 0x9798, 0x64ac, 0x7fd8, 0x5ced, 0x4fcf, 0x7a8d, 0x5207, 0x8304, 0x4e14, 0x602f, 0x7a83, 0x94a6, 0x4fb5, 0x4eb2, 0x79e6, 0x7434, 0x52e4, 0x82b9, 0x64d2, 0x79bd, 0x5bdd, 0x6c81, 0x9752, 0x8f7b, 0x6c22, 0x503e, 0x537f, 0x6e05, 0x64ce, 0x6674, 0x6c30, 0x60c5, 0x9877, 0x8bf7, 0x5e86, 0x743c, 0x7a77, 0x79cb, 0x4e18, 0x90b1, 0x7403, 0x6c42, 0x56da, 0x914b, 0x6cc5, 0x8d8b, 0x533a, 0x86c6, 0x66f2, 0x8eaf, 0x5c48, 0x9a71, 0x6e20, 0x003f, /* lead byte c8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x83ee, 0x83ef, 0x83f3, 0x83f4, 0x83f5, 0x83f6, 0x83f7, 0x83fa, 0x83fb, 0x83fc, 0x83fe, 0x83ff, 0x8400, 0x8402, 0x8405, 0x8407, 0x8408, 0x8409, 0x840a, 0x8410, 0x8412, 0x8413, 0x8414, 0x8415, 0x8416, 0x8417, 0x8419, 0x841a, 0x841b, 0x841e, 0x841f, 0x8420, 0x8421, 0x8422, 0x8423, 0x8429, 0x842a, 0x842b, 0x842c, 0x842d, 0x842e, 0x842f, 0x8430, 0x8432, 0x8433, 0x8434, 0x8435, 0x8436, 0x8437, 0x8439, 0x843a, 0x843b, 0x843e, 0x843f, 0x8440, 0x8441, 0x8442, 0x8443, 0x8444, 0x8445, 0x8447, 0x8448, 0x8449, 0x003f, 0x844a, 0x844b, 0x844c, 0x844d, 0x844e, 0x844f, 0x8450, 0x8452, 0x8453, 0x8454, 0x8455, 0x8456, 0x8458, 0x845d, 0x845e, 0x845f, 0x8460, 0x8462, 0x8464, 0x8465, 0x8466, 0x8467, 0x8468, 0x846a, 0x846e, 0x846f, 0x8470, 0x8472, 0x8474, 0x8477, 0x8479, 0x847b, 0x847c, 0x53d6, 0x5a36, 0x9f8b, 0x8da3, 0x53bb, 0x5708, 0x98a7, 0x6743, 0x919b, 0x6cc9, 0x5168, 0x75ca, 0x62f3, 0x72ac, 0x5238, 0x529d, 0x7f3a, 0x7094, 0x7638, 0x5374, 0x9e4a, 0x69b7, 0x786e, 0x96c0, 0x88d9, 0x7fa4, 0x7136, 0x71c3, 0x5189, 0x67d3, 0x74e4, 0x58e4, 0x6518, 0x56b7, 0x8ba9, 0x9976, 0x6270, 0x7ed5, 0x60f9, 0x70ed, 0x58ec, 0x4ec1, 0x4eba, 0x5fcd, 0x97e7, 0x4efb, 0x8ba4, 0x5203, 0x598a, 0x7eab, 0x6254, 0x4ecd, 0x65e5, 0x620e, 0x8338, 0x84c9, 0x8363, 0x878d, 0x7194, 0x6eb6, 0x5bb9, 0x7ed2, 0x5197, 0x63c9, 0x67d4, 0x8089, 0x8339, 0x8815, 0x5112, 0x5b7a, 0x5982, 0x8fb1, 0x4e73, 0x6c5d, 0x5165, 0x8925, 0x8f6f, 0x962e, 0x854a, 0x745e, 0x9510, 0x95f0, 0x6da6, 0x82e5, 0x5f31, 0x6492, 0x6d12, 0x8428, 0x816e, 0x9cc3, 0x585e, 0x8d5b, 0x4e09, 0x53c1, 0x003f, /* lead byte c9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x847d, 0x847e, 0x847f, 0x8480, 0x8481, 0x8483, 0x8484, 0x8485, 0x8486, 0x848a, 0x848d, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8498, 0x849a, 0x849b, 0x849d, 0x849e, 0x849f, 0x84a0, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, 0x84a9, 0x84aa, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84b0, 0x84b1, 0x84b3, 0x84b5, 0x84b6, 0x84b7, 0x84bb, 0x84bc, 0x84be, 0x84c0, 0x84c2, 0x84c3, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84cb, 0x84cc, 0x84ce, 0x84cf, 0x84d2, 0x84d4, 0x84d5, 0x84d7, 0x003f, 0x84d8, 0x84d9, 0x84da, 0x84db, 0x84dc, 0x84de, 0x84e1, 0x84e2, 0x84e4, 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ed, 0x84ee, 0x84ef, 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0x84f9, 0x84fa, 0x84fb, 0x84fd, 0x84fe, 0x8500, 0x8501, 0x8502, 0x4f1e, 0x6563, 0x6851, 0x55d3, 0x4e27, 0x6414, 0x9a9a, 0x626b, 0x5ac2, 0x745f, 0x8272, 0x6da9, 0x68ee, 0x50e7, 0x838e, 0x7802, 0x6740, 0x5239, 0x6c99, 0x7eb1, 0x50bb, 0x5565, 0x715e, 0x7b5b, 0x6652, 0x73ca, 0x82eb, 0x6749, 0x5c71, 0x5220, 0x717d, 0x886b, 0x95ea, 0x9655, 0x64c5, 0x8d61, 0x81b3, 0x5584, 0x6c55, 0x6247, 0x7f2e, 0x5892, 0x4f24, 0x5546, 0x8d4f, 0x664c, 0x4e0a, 0x5c1a, 0x88f3, 0x68a2, 0x634e, 0x7a0d, 0x70e7, 0x828d, 0x52fa, 0x97f6, 0x5c11, 0x54e8, 0x90b5, 0x7ecd, 0x5962, 0x8d4a, 0x86c7, 0x820c, 0x820d, 0x8d66, 0x6444, 0x5c04, 0x6151, 0x6d89, 0x793e, 0x8bbe, 0x7837, 0x7533, 0x547b, 0x4f38, 0x8eab, 0x6df1, 0x5a20, 0x7ec5, 0x795e, 0x6c88, 0x5ba1, 0x5a76, 0x751a, 0x80be, 0x614e, 0x6e17, 0x58f0, 0x751f, 0x7525, 0x7272, 0x5347, 0x7ef3, 0x003f, /* lead byte ca */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8503, 0x8504, 0x8505, 0x8506, 0x8507, 0x8508, 0x8509, 0x850a, 0x850b, 0x850d, 0x850e, 0x850f, 0x8510, 0x8512, 0x8514, 0x8515, 0x8516, 0x8518, 0x8519, 0x851b, 0x851c, 0x851d, 0x851e, 0x8520, 0x8522, 0x8523, 0x8524, 0x8525, 0x8526, 0x8527, 0x8528, 0x8529, 0x852a, 0x852d, 0x852e, 0x852f, 0x8530, 0x8531, 0x8532, 0x8533, 0x8534, 0x8535, 0x8536, 0x853e, 0x853f, 0x8540, 0x8541, 0x8542, 0x8544, 0x8545, 0x8546, 0x8547, 0x854b, 0x854c, 0x854d, 0x854e, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0x003f, 0x8557, 0x8558, 0x855a, 0x855b, 0x855c, 0x855d, 0x855f, 0x8560, 0x8561, 0x8562, 0x8563, 0x8565, 0x8566, 0x8567, 0x8569, 0x856a, 0x856b, 0x856c, 0x856d, 0x856e, 0x856f, 0x8570, 0x8571, 0x8573, 0x8575, 0x8576, 0x8577, 0x8578, 0x857c, 0x857d, 0x857f, 0x8580, 0x8581, 0x7701, 0x76db, 0x5269, 0x80dc, 0x5723, 0x5e08, 0x5931, 0x72ee, 0x65bd, 0x6e7f, 0x8bd7, 0x5c38, 0x8671, 0x5341, 0x77f3, 0x62fe, 0x65f6, 0x4ec0, 0x98df, 0x8680, 0x5b9e, 0x8bc6, 0x53f2, 0x77e2, 0x4f7f, 0x5c4e, 0x9a76, 0x59cb, 0x5f0f, 0x793a, 0x58eb, 0x4e16, 0x67ff, 0x4e8b, 0x62ed, 0x8a93, 0x901d, 0x52bf, 0x662f, 0x55dc, 0x566c, 0x9002, 0x4ed5, 0x4f8d, 0x91ca, 0x9970, 0x6c0f, 0x5e02, 0x6043, 0x5ba4, 0x89c6, 0x8bd5, 0x6536, 0x624b, 0x9996, 0x5b88, 0x5bff, 0x6388, 0x552e, 0x53d7, 0x7626, 0x517d, 0x852c, 0x67a2, 0x68b3, 0x6b8a, 0x6292, 0x8f93, 0x53d4, 0x8212, 0x6dd1, 0x758f, 0x4e66, 0x8d4e, 0x5b70, 0x719f, 0x85af, 0x6691, 0x66d9, 0x7f72, 0x8700, 0x9ecd, 0x9f20, 0x5c5e, 0x672f, 0x8ff0, 0x6811, 0x675f, 0x620d, 0x7ad6, 0x5885, 0x5eb6, 0x6570, 0x6f31, 0x003f, /* lead byte cb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8582, 0x8583, 0x8586, 0x8588, 0x8589, 0x858a, 0x858b, 0x858c, 0x858d, 0x858e, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859d, 0x859e, 0x859f, 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a5, 0x85a6, 0x85a7, 0x85a9, 0x85ab, 0x85ac, 0x85ad, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b8, 0x85ba, 0x85bb, 0x85bc, 0x85bd, 0x85be, 0x85bf, 0x85c0, 0x85c2, 0x85c3, 0x85c4, 0x85c5, 0x85c6, 0x85c7, 0x85c8, 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85d1, 0x85d2, 0x003f, 0x85d4, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0x85ea, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x6055, 0x5237, 0x800d, 0x6454, 0x8870, 0x7529, 0x5e05, 0x6813, 0x62f4, 0x971c, 0x53cc, 0x723d, 0x8c01, 0x6c34, 0x7761, 0x7a0e, 0x542e, 0x77ac, 0x987a, 0x821c, 0x8bf4, 0x7855, 0x6714, 0x70c1, 0x65af, 0x6495, 0x5636, 0x601d, 0x79c1, 0x53f8, 0x4e1d, 0x6b7b, 0x8086, 0x5bfa, 0x55e3, 0x56db, 0x4f3a, 0x4f3c, 0x9972, 0x5df3, 0x677e, 0x8038, 0x6002, 0x9882, 0x9001, 0x5b8b, 0x8bbc, 0x8bf5, 0x641c, 0x8258, 0x64de, 0x55fd, 0x82cf, 0x9165, 0x4fd7, 0x7d20, 0x901f, 0x7c9f, 0x50f3, 0x5851, 0x6eaf, 0x5bbf, 0x8bc9, 0x8083, 0x9178, 0x849c, 0x7b97, 0x867d, 0x968b, 0x968f, 0x7ee5, 0x9ad3, 0x788e, 0x5c81, 0x7a57, 0x9042, 0x96a7, 0x795f, 0x5b59, 0x635f, 0x7b0b, 0x84d1, 0x68ad, 0x5506, 0x7f29, 0x7410, 0x7d22, 0x9501, 0x6240, 0x584c, 0x4ed6, 0x5b83, 0x5979, 0x5854, 0x003f, /* lead byte cc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x85f9, 0x85fa, 0x85fc, 0x85fd, 0x85fe, 0x8600, 0x8601, 0x8602, 0x8603, 0x8604, 0x8606, 0x8607, 0x8608, 0x8609, 0x860a, 0x860b, 0x860c, 0x860d, 0x860e, 0x860f, 0x8610, 0x8612, 0x8613, 0x8614, 0x8615, 0x8617, 0x8618, 0x8619, 0x861a, 0x861b, 0x861c, 0x861d, 0x861e, 0x861f, 0x8620, 0x8621, 0x8622, 0x8623, 0x8624, 0x8625, 0x8626, 0x8628, 0x862a, 0x862b, 0x862c, 0x862d, 0x862e, 0x862f, 0x8630, 0x8631, 0x8632, 0x8633, 0x8634, 0x8635, 0x8636, 0x8637, 0x8639, 0x863a, 0x863b, 0x863d, 0x863e, 0x863f, 0x8640, 0x003f, 0x8641, 0x8642, 0x8643, 0x8644, 0x8645, 0x8646, 0x8647, 0x8648, 0x8649, 0x864a, 0x864b, 0x864c, 0x8652, 0x8653, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0x865b, 0x865c, 0x865d, 0x865f, 0x8660, 0x8661, 0x8663, 0x8664, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x736d, 0x631e, 0x8e4b, 0x8e0f, 0x80ce, 0x82d4, 0x62ac, 0x53f0, 0x6cf0, 0x915e, 0x592a, 0x6001, 0x6c70, 0x574d, 0x644a, 0x8d2a, 0x762b, 0x6ee9, 0x575b, 0x6a80, 0x75f0, 0x6f6d, 0x8c2d, 0x8c08, 0x5766, 0x6bef, 0x8892, 0x78b3, 0x63a2, 0x53f9, 0x70ad, 0x6c64, 0x5858, 0x642a, 0x5802, 0x68e0, 0x819b, 0x5510, 0x7cd6, 0x5018, 0x8eba, 0x6dcc, 0x8d9f, 0x70eb, 0x638f, 0x6d9b, 0x6ed4, 0x7ee6, 0x8404, 0x6843, 0x9003, 0x6dd8, 0x9676, 0x8ba8, 0x5957, 0x7279, 0x85e4, 0x817e, 0x75bc, 0x8a8a, 0x68af, 0x5254, 0x8e22, 0x9511, 0x63d0, 0x9898, 0x8e44, 0x557c, 0x4f53, 0x66ff, 0x568f, 0x60d5, 0x6d95, 0x5243, 0x5c49, 0x5929, 0x6dfb, 0x586b, 0x7530, 0x751c, 0x606c, 0x8214, 0x8146, 0x6311, 0x6761, 0x8fe2, 0x773a, 0x8df3, 0x8d34, 0x94c1, 0x5e16, 0x5385, 0x542c, 0x70c3, 0x003f, /* lead byte cd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x866d, 0x866f, 0x8670, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868e, 0x868f, 0x8690, 0x8691, 0x8692, 0x8694, 0x8696, 0x8697, 0x8698, 0x8699, 0x869a, 0x869b, 0x869e, 0x869f, 0x86a0, 0x86a1, 0x86a2, 0x86a5, 0x86a6, 0x86ab, 0x86ad, 0x86ae, 0x86b2, 0x86b3, 0x86b7, 0x86b8, 0x86b9, 0x86bb, 0x86bc, 0x86bd, 0x86be, 0x86bf, 0x86c1, 0x86c2, 0x86c3, 0x86c5, 0x86c8, 0x86cc, 0x86cd, 0x86d2, 0x86d3, 0x86d5, 0x86d6, 0x86d7, 0x86da, 0x86dc, 0x003f, 0x86dd, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86ea, 0x86eb, 0x86ec, 0x86ef, 0x86f5, 0x86f6, 0x86f7, 0x86fa, 0x86fb, 0x86fc, 0x86fd, 0x86ff, 0x8701, 0x8704, 0x8705, 0x8706, 0x870b, 0x870c, 0x870e, 0x870f, 0x8710, 0x8711, 0x8714, 0x8716, 0x6c40, 0x5ef7, 0x505c, 0x4ead, 0x5ead, 0x633a, 0x8247, 0x901a, 0x6850, 0x916e, 0x77b3, 0x540c, 0x94dc, 0x5f64, 0x7ae5, 0x6876, 0x6345, 0x7b52, 0x7edf, 0x75db, 0x5077, 0x6295, 0x5934, 0x900f, 0x51f8, 0x79c3, 0x7a81, 0x56fe, 0x5f92, 0x9014, 0x6d82, 0x5c60, 0x571f, 0x5410, 0x5154, 0x6e4d, 0x56e2, 0x63a8, 0x9893, 0x817f, 0x8715, 0x892a, 0x9000, 0x541e, 0x5c6f, 0x81c0, 0x62d6, 0x6258, 0x8131, 0x9e35, 0x9640, 0x9a6e, 0x9a7c, 0x692d, 0x59a5, 0x62d3, 0x553e, 0x6316, 0x54c7, 0x86d9, 0x6d3c, 0x5a03, 0x74e6, 0x889c, 0x6b6a, 0x5916, 0x8c4c, 0x5f2f, 0x6e7e, 0x73a9, 0x987d, 0x4e38, 0x70f7, 0x5b8c, 0x7897, 0x633d, 0x665a, 0x7696, 0x60cb, 0x5b9b, 0x5a49, 0x4e07, 0x8155, 0x6c6a, 0x738b, 0x4ea1, 0x6789, 0x7f51, 0x5f80, 0x65fa, 0x671b, 0x5fd8, 0x5984, 0x5a01, 0x003f, /* lead byte ce */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8719, 0x871b, 0x871d, 0x871f, 0x8720, 0x8724, 0x8726, 0x8727, 0x8728, 0x872a, 0x872b, 0x872c, 0x872d, 0x872f, 0x8730, 0x8732, 0x8733, 0x8735, 0x8736, 0x8738, 0x8739, 0x873a, 0x873c, 0x873d, 0x8740, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x874a, 0x874b, 0x874d, 0x874f, 0x8750, 0x8751, 0x8752, 0x8754, 0x8755, 0x8756, 0x8758, 0x875a, 0x875b, 0x875c, 0x875d, 0x875e, 0x875f, 0x8761, 0x8762, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d, 0x876f, 0x8771, 0x8772, 0x8773, 0x8775, 0x003f, 0x8777, 0x8778, 0x8779, 0x877a, 0x877f, 0x8780, 0x8781, 0x8784, 0x8786, 0x8787, 0x8789, 0x878a, 0x878c, 0x878e, 0x878f, 0x8790, 0x8791, 0x8792, 0x8794, 0x8795, 0x8796, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e, 0x87a0, 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0x5dcd, 0x5fae, 0x5371, 0x97e6, 0x8fdd, 0x6845, 0x56f4, 0x552f, 0x60df, 0x4e3a, 0x6f4d, 0x7ef4, 0x82c7, 0x840e, 0x59d4, 0x4f1f, 0x4f2a, 0x5c3e, 0x7eac, 0x672a, 0x851a, 0x5473, 0x754f, 0x80c3, 0x5582, 0x9b4f, 0x4f4d, 0x6e2d, 0x8c13, 0x5c09, 0x6170, 0x536b, 0x761f, 0x6e29, 0x868a, 0x6587, 0x95fb, 0x7eb9, 0x543b, 0x7a33, 0x7d0a, 0x95ee, 0x55e1, 0x7fc1, 0x74ee, 0x631d, 0x8717, 0x6da1, 0x7a9d, 0x6211, 0x65a1, 0x5367, 0x63e1, 0x6c83, 0x5deb, 0x545c, 0x94a8, 0x4e4c, 0x6c61, 0x8bec, 0x5c4b, 0x65e0, 0x829c, 0x68a7, 0x543e, 0x5434, 0x6bcb, 0x6b66, 0x4e94, 0x6342, 0x5348, 0x821e, 0x4f0d, 0x4fae, 0x575e, 0x620a, 0x96fe, 0x6664, 0x7269, 0x52ff, 0x52a1, 0x609f, 0x8bef, 0x6614, 0x7199, 0x6790, 0x897f, 0x7852, 0x77fd, 0x6670, 0x563b, 0x5438, 0x9521, 0x727a, 0x003f, /* lead byte cf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x87a5, 0x87a6, 0x87a7, 0x87a9, 0x87aa, 0x87ae, 0x87b0, 0x87b1, 0x87b2, 0x87b4, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87bb, 0x87bc, 0x87be, 0x87bf, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c7, 0x87c8, 0x87c9, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d4, 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87dc, 0x87dd, 0x87de, 0x87df, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e6, 0x87e7, 0x87e8, 0x87e9, 0x87eb, 0x87ec, 0x87ed, 0x87ef, 0x87f0, 0x87f1, 0x87f2, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x003f, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87ff, 0x8800, 0x8801, 0x8802, 0x8804, 0x8805, 0x8806, 0x8807, 0x8808, 0x8809, 0x880b, 0x880c, 0x880d, 0x880e, 0x880f, 0x8810, 0x8811, 0x8812, 0x8814, 0x8817, 0x8818, 0x8819, 0x881a, 0x881c, 0x881d, 0x881e, 0x881f, 0x8820, 0x8823, 0x7a00, 0x606f, 0x5e0c, 0x6089, 0x819d, 0x5915, 0x60dc, 0x7184, 0x70ef, 0x6eaa, 0x6c50, 0x7280, 0x6a84, 0x88ad, 0x5e2d, 0x4e60, 0x5ab3, 0x559c, 0x94e3, 0x6d17, 0x7cfb, 0x9699, 0x620f, 0x7ec6, 0x778e, 0x867e, 0x5323, 0x971e, 0x8f96, 0x6687, 0x5ce1, 0x4fa0, 0x72ed, 0x4e0b, 0x53a6, 0x590f, 0x5413, 0x6380, 0x9528, 0x5148, 0x4ed9, 0x9c9c, 0x7ea4, 0x54b8, 0x8d24, 0x8854, 0x8237, 0x95f2, 0x6d8e, 0x5f26, 0x5acc, 0x663e, 0x9669, 0x73b0, 0x732e, 0x53bf, 0x817a, 0x9985, 0x7fa1, 0x5baa, 0x9677, 0x9650, 0x7ebf, 0x76f8, 0x53a2, 0x9576, 0x9999, 0x7bb1, 0x8944, 0x6e58, 0x4e61, 0x7fd4, 0x7965, 0x8be6, 0x60f3, 0x54cd, 0x4eab, 0x9879, 0x5df7, 0x6a61, 0x50cf, 0x5411, 0x8c61, 0x8427, 0x785d, 0x9704, 0x524a, 0x54ee, 0x56a3, 0x9500, 0x6d88, 0x5bb5, 0x6dc6, 0x6653, 0x003f, /* lead byte d0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8824, 0x8825, 0x8826, 0x8827, 0x8828, 0x8829, 0x882a, 0x882b, 0x882c, 0x882d, 0x882e, 0x882f, 0x8830, 0x8831, 0x8833, 0x8834, 0x8835, 0x8836, 0x8837, 0x8838, 0x883a, 0x883b, 0x883d, 0x883e, 0x883f, 0x8841, 0x8842, 0x8843, 0x8846, 0x8847, 0x8848, 0x8849, 0x884a, 0x884b, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0x8853, 0x8855, 0x8856, 0x8858, 0x885a, 0x885b, 0x885c, 0x885d, 0x885e, 0x885f, 0x8860, 0x8866, 0x8867, 0x886a, 0x886d, 0x886f, 0x8871, 0x8873, 0x8874, 0x8875, 0x8876, 0x8878, 0x8879, 0x887a, 0x003f, 0x887b, 0x887c, 0x8880, 0x8883, 0x8886, 0x8887, 0x8889, 0x888a, 0x888c, 0x888e, 0x888f, 0x8890, 0x8891, 0x8893, 0x8894, 0x8895, 0x8897, 0x8898, 0x8899, 0x889a, 0x889b, 0x889d, 0x889e, 0x889f, 0x88a0, 0x88a1, 0x88a3, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0x88a9, 0x88aa, 0x5c0f, 0x5b5d, 0x6821, 0x8096, 0x5578, 0x7b11, 0x6548, 0x6954, 0x4e9b, 0x6b47, 0x874e, 0x978b, 0x534f, 0x631f, 0x643a, 0x90aa, 0x659c, 0x80c1, 0x8c10, 0x5199, 0x68b0, 0x5378, 0x87f9, 0x61c8, 0x6cc4, 0x6cfb, 0x8c22, 0x5c51, 0x85aa, 0x82af, 0x950c, 0x6b23, 0x8f9b, 0x65b0, 0x5ffb, 0x5fc3, 0x4fe1, 0x8845, 0x661f, 0x8165, 0x7329, 0x60fa, 0x5174, 0x5211, 0x578b, 0x5f62, 0x90a2, 0x884c, 0x9192, 0x5e78, 0x674f, 0x6027, 0x59d3, 0x5144, 0x51f6, 0x80f8, 0x5308, 0x6c79, 0x96c4, 0x718a, 0x4f11, 0x4fee, 0x7f9e, 0x673d, 0x55c5, 0x9508, 0x79c0, 0x8896, 0x7ee3, 0x589f, 0x620c, 0x9700, 0x865a, 0x5618, 0x987b, 0x5f90, 0x8bb8, 0x84c4, 0x9157, 0x53d9, 0x65ed, 0x5e8f, 0x755c, 0x6064, 0x7d6e, 0x5a7f, 0x7eea, 0x7eed, 0x8f69, 0x55a7, 0x5ba3, 0x60ac, 0x65cb, 0x7384, 0x003f, /* lead byte d1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88ac, 0x88ae, 0x88af, 0x88b0, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b8, 0x88b9, 0x88ba, 0x88bb, 0x88bd, 0x88be, 0x88bf, 0x88c0, 0x88c3, 0x88c4, 0x88c7, 0x88c8, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88cf, 0x88d0, 0x88d1, 0x88d3, 0x88d6, 0x88d7, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88e0, 0x88e1, 0x88e6, 0x88e7, 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f2, 0x88f5, 0x88f6, 0x88f7, 0x88fa, 0x88fb, 0x88fd, 0x88ff, 0x8900, 0x8901, 0x8903, 0x8904, 0x8905, 0x8906, 0x8907, 0x8908, 0x003f, 0x8909, 0x890b, 0x890c, 0x890d, 0x890e, 0x890f, 0x8911, 0x8914, 0x8915, 0x8916, 0x8917, 0x8918, 0x891c, 0x891d, 0x891e, 0x891f, 0x8920, 0x8922, 0x8923, 0x8924, 0x8926, 0x8927, 0x8928, 0x8929, 0x892c, 0x892d, 0x892e, 0x892f, 0x8931, 0x8932, 0x8933, 0x8935, 0x8937, 0x9009, 0x7663, 0x7729, 0x7eda, 0x9774, 0x859b, 0x5b66, 0x7a74, 0x96ea, 0x8840, 0x52cb, 0x718f, 0x5faa, 0x65ec, 0x8be2, 0x5bfb, 0x9a6f, 0x5de1, 0x6b89, 0x6c5b, 0x8bad, 0x8baf, 0x900a, 0x8fc5, 0x538b, 0x62bc, 0x9e26, 0x9e2d, 0x5440, 0x4e2b, 0x82bd, 0x7259, 0x869c, 0x5d16, 0x8859, 0x6daf, 0x96c5, 0x54d1, 0x4e9a, 0x8bb6, 0x7109, 0x54bd, 0x9609, 0x70df, 0x6df9, 0x76d0, 0x4e25, 0x7814, 0x8712, 0x5ca9, 0x5ef6, 0x8a00, 0x989c, 0x960e, 0x708e, 0x6cbf, 0x5944, 0x63a9, 0x773c, 0x884d, 0x6f14, 0x8273, 0x5830, 0x71d5, 0x538c, 0x781a, 0x96c1, 0x5501, 0x5f66, 0x7130, 0x5bb4, 0x8c1a, 0x9a8c, 0x6b83, 0x592e, 0x9e2f, 0x79e7, 0x6768, 0x626c, 0x4f6f, 0x75a1, 0x7f8a, 0x6d0b, 0x9633, 0x6c27, 0x4ef0, 0x75d2, 0x517b, 0x6837, 0x6f3e, 0x9080, 0x8170, 0x5996, 0x7476, 0x003f, /* lead byte d2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8938, 0x8939, 0x893a, 0x893b, 0x893c, 0x893d, 0x893e, 0x893f, 0x8940, 0x8942, 0x8943, 0x8945, 0x8946, 0x8947, 0x8948, 0x8949, 0x894a, 0x894b, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8952, 0x8953, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0x895a, 0x895b, 0x895c, 0x895d, 0x8960, 0x8961, 0x8962, 0x8963, 0x8964, 0x8965, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0x8977, 0x8978, 0x8979, 0x897a, 0x897c, 0x003f, 0x897d, 0x897e, 0x8980, 0x8982, 0x8984, 0x8985, 0x8987, 0x8988, 0x8989, 0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x6447, 0x5c27, 0x9065, 0x7a91, 0x8c23, 0x59da, 0x54ac, 0x8200, 0x836f, 0x8981, 0x8000, 0x6930, 0x564e, 0x8036, 0x7237, 0x91ce, 0x51b6, 0x4e5f, 0x9875, 0x6396, 0x4e1a, 0x53f6, 0x66f3, 0x814b, 0x591c, 0x6db2, 0x4e00, 0x58f9, 0x533b, 0x63d6, 0x94f1, 0x4f9d, 0x4f0a, 0x8863, 0x9890, 0x5937, 0x9057, 0x79fb, 0x4eea, 0x80f0, 0x7591, 0x6c82, 0x5b9c, 0x59e8, 0x5f5d, 0x6905, 0x8681, 0x501a, 0x5df2, 0x4e59, 0x77e3, 0x4ee5, 0x827a, 0x6291, 0x6613, 0x9091, 0x5c79, 0x4ebf, 0x5f79, 0x81c6, 0x9038, 0x8084, 0x75ab, 0x4ea6, 0x88d4, 0x610f, 0x6bc5, 0x5fc6, 0x4e49, 0x76ca, 0x6ea2, 0x8be3, 0x8bae, 0x8c0a, 0x8bd1, 0x5f02, 0x7ffc, 0x7fcc, 0x7ece, 0x8335, 0x836b, 0x56e0, 0x6bb7, 0x97f3, 0x9634, 0x59fb, 0x541f, 0x94f6, 0x6deb, 0x5bc5, 0x996e, 0x5c39, 0x5f15, 0x9690, 0x003f, /* lead byte d3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0x89a7, 0x89a8, 0x89a9, 0x89aa, 0x89ab, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c3, 0x89cd, 0x89d3, 0x89d4, 0x89d5, 0x89d7, 0x89d8, 0x89d9, 0x89db, 0x89dd, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e4, 0x89e7, 0x89e8, 0x89e9, 0x89ea, 0x89ec, 0x89ed, 0x89ee, 0x89f0, 0x89f1, 0x89f2, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x003f, 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x89ff, 0x8a01, 0x8a02, 0x8a03, 0x8a04, 0x8a05, 0x8a06, 0x8a08, 0x8a09, 0x8a0a, 0x8a0b, 0x8a0c, 0x8a0d, 0x8a0e, 0x8a0f, 0x8a10, 0x8a11, 0x8a12, 0x8a13, 0x8a14, 0x8a15, 0x8a16, 0x8a17, 0x8a18, 0x8a19, 0x8a1a, 0x8a1b, 0x8a1c, 0x8a1d, 0x5370, 0x82f1, 0x6a31, 0x5a74, 0x9e70, 0x5e94, 0x7f28, 0x83b9, 0x8424, 0x8425, 0x8367, 0x8747, 0x8fce, 0x8d62, 0x76c8, 0x5f71, 0x9896, 0x786c, 0x6620, 0x54df, 0x62e5, 0x4f63, 0x81c3, 0x75c8, 0x5eb8, 0x96cd, 0x8e0a, 0x86f9, 0x548f, 0x6cf3, 0x6d8c, 0x6c38, 0x607f, 0x52c7, 0x7528, 0x5e7d, 0x4f18, 0x60a0, 0x5fe7, 0x5c24, 0x7531, 0x90ae, 0x94c0, 0x72b9, 0x6cb9, 0x6e38, 0x9149, 0x6709, 0x53cb, 0x53f3, 0x4f51, 0x91c9, 0x8bf1, 0x53c8, 0x5e7c, 0x8fc2, 0x6de4, 0x4e8e, 0x76c2, 0x6986, 0x865e, 0x611a, 0x8206, 0x4f59, 0x4fde, 0x903e, 0x9c7c, 0x6109, 0x6e1d, 0x6e14, 0x9685, 0x4e88, 0x5a31, 0x96e8, 0x4e0e, 0x5c7f, 0x79b9, 0x5b87, 0x8bed, 0x7fbd, 0x7389, 0x57df, 0x828b, 0x90c1, 0x5401, 0x9047, 0x55bb, 0x5cea, 0x5fa1, 0x6108, 0x6b32, 0x72f1, 0x80b2, 0x8a89, 0x003f, /* lead byte d4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a1e, 0x8a1f, 0x8a20, 0x8a21, 0x8a22, 0x8a23, 0x8a24, 0x8a25, 0x8a26, 0x8a27, 0x8a28, 0x8a29, 0x8a2a, 0x8a2b, 0x8a2c, 0x8a2d, 0x8a2e, 0x8a2f, 0x8a30, 0x8a31, 0x8a32, 0x8a33, 0x8a34, 0x8a35, 0x8a36, 0x8a37, 0x8a38, 0x8a39, 0x8a3a, 0x8a3b, 0x8a3c, 0x8a3d, 0x8a3f, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a49, 0x8a4a, 0x8a4b, 0x8a4c, 0x8a4d, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x003f, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0x8a7e, 0x8a7f, 0x8a80, 0x6d74, 0x5bd3, 0x88d5, 0x9884, 0x8c6b, 0x9a6d, 0x9e33, 0x6e0a, 0x51a4, 0x5143, 0x57a3, 0x8881, 0x539f, 0x63f4, 0x8f95, 0x56ed, 0x5458, 0x5706, 0x733f, 0x6e90, 0x7f18, 0x8fdc, 0x82d1, 0x613f, 0x6028, 0x9662, 0x66f0, 0x7ea6, 0x8d8a, 0x8dc3, 0x94a5, 0x5cb3, 0x7ca4, 0x6708, 0x60a6, 0x9605, 0x8018, 0x4e91, 0x90e7, 0x5300, 0x9668, 0x5141, 0x8fd0, 0x8574, 0x915d, 0x6655, 0x97f5, 0x5b55, 0x531d, 0x7838, 0x6742, 0x683d, 0x54c9, 0x707e, 0x5bb0, 0x8f7d, 0x518d, 0x5728, 0x54b1, 0x6512, 0x6682, 0x8d5e, 0x8d43, 0x810f, 0x846c, 0x906d, 0x7cdf, 0x51ff, 0x85fb, 0x67a3, 0x65e9, 0x6fa1, 0x86a4, 0x8e81, 0x566a, 0x9020, 0x7682, 0x7076, 0x71e5, 0x8d23, 0x62e9, 0x5219, 0x6cfd, 0x8d3c, 0x600e, 0x589e, 0x618e, 0x66fe, 0x8d60, 0x624e, 0x55b3, 0x6e23, 0x672d, 0x8f67, 0x003f, /* lead byte d5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, 0x8aa5, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, 0x8ab6, 0x8ab7, 0x8ab8, 0x8ab9, 0x8aba, 0x8abb, 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0x003f, 0x8ac3, 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, 0x8acd, 0x8ace, 0x8acf, 0x8ad0, 0x8ad1, 0x8ad2, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x94e1, 0x95f8, 0x7728, 0x6805, 0x69a8, 0x548b, 0x4e4d, 0x70b8, 0x8bc8, 0x6458, 0x658b, 0x5b85, 0x7a84, 0x503a, 0x5be8, 0x77bb, 0x6be1, 0x8a79, 0x7c98, 0x6cbe, 0x76cf, 0x65a9, 0x8f97, 0x5d2d, 0x5c55, 0x8638, 0x6808, 0x5360, 0x6218, 0x7ad9, 0x6e5b, 0x7efd, 0x6a1f, 0x7ae0, 0x5f70, 0x6f33, 0x5f20, 0x638c, 0x6da8, 0x6756, 0x4e08, 0x5e10, 0x8d26, 0x4ed7, 0x80c0, 0x7634, 0x969c, 0x62db, 0x662d, 0x627e, 0x6cbc, 0x8d75, 0x7167, 0x7f69, 0x5146, 0x8087, 0x53ec, 0x906e, 0x6298, 0x54f2, 0x86f0, 0x8f99, 0x8005, 0x9517, 0x8517, 0x8fd9, 0x6d59, 0x73cd, 0x659f, 0x771f, 0x7504, 0x7827, 0x81fb, 0x8d1e, 0x9488, 0x4fa6, 0x6795, 0x75b9, 0x8bca, 0x9707, 0x632f, 0x9547, 0x9635, 0x84b8, 0x6323, 0x7741, 0x5f81, 0x72f0, 0x4e89, 0x6014, 0x6574, 0x62ef, 0x6b63, 0x653f, 0x003f, /* lead byte d6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0x8afa, 0x8afb, 0x8afc, 0x8afd, 0x8afe, 0x8aff, 0x8b00, 0x8b01, 0x8b02, 0x8b03, 0x8b04, 0x8b05, 0x8b06, 0x8b08, 0x8b09, 0x8b0a, 0x8b0b, 0x8b0c, 0x8b0d, 0x8b0e, 0x8b0f, 0x8b10, 0x8b11, 0x8b12, 0x8b13, 0x8b14, 0x8b15, 0x8b16, 0x8b17, 0x8b18, 0x8b19, 0x8b1a, 0x8b1b, 0x8b1c, 0x8b1d, 0x8b1e, 0x8b1f, 0x8b20, 0x8b21, 0x8b22, 0x8b23, 0x003f, 0x8b24, 0x8b25, 0x8b27, 0x8b28, 0x8b29, 0x8b2a, 0x8b2b, 0x8b2c, 0x8b2d, 0x8b2e, 0x8b2f, 0x8b30, 0x8b31, 0x8b32, 0x8b33, 0x8b34, 0x8b35, 0x8b36, 0x8b37, 0x8b38, 0x8b39, 0x8b3a, 0x8b3b, 0x8b3c, 0x8b3d, 0x8b3e, 0x8b3f, 0x8b40, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x5e27, 0x75c7, 0x90d1, 0x8bc1, 0x829d, 0x679d, 0x652f, 0x5431, 0x8718, 0x77e5, 0x80a2, 0x8102, 0x6c41, 0x4e4b, 0x7ec7, 0x804c, 0x76f4, 0x690d, 0x6b96, 0x6267, 0x503c, 0x4f84, 0x5740, 0x6307, 0x6b62, 0x8dbe, 0x53ea, 0x65e8, 0x7eb8, 0x5fd7, 0x631a, 0x63b7, 0x81f3, 0x81f4, 0x7f6e, 0x5e1c, 0x5cd9, 0x5236, 0x667a, 0x79e9, 0x7a1a, 0x8d28, 0x7099, 0x75d4, 0x6ede, 0x6cbb, 0x7a92, 0x4e2d, 0x76c5, 0x5fe0, 0x949f, 0x8877, 0x7ec8, 0x79cd, 0x80bf, 0x91cd, 0x4ef2, 0x4f17, 0x821f, 0x5468, 0x5dde, 0x6d32, 0x8bcc, 0x7ca5, 0x8f74, 0x8098, 0x5e1a, 0x5492, 0x76b1, 0x5b99, 0x663c, 0x9aa4, 0x73e0, 0x682a, 0x86db, 0x6731, 0x732a, 0x8bf8, 0x8bdb, 0x9010, 0x7af9, 0x70db, 0x716e, 0x62c4, 0x77a9, 0x5631, 0x4e3b, 0x8457, 0x67f1, 0x52a9, 0x86c0, 0x8d2e, 0x94f8, 0x7b51, 0x003f, /* lead byte d7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b46, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, 0x8b4e, 0x8b4f, 0x8b50, 0x8b51, 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, 0x8b67, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0x8b7d, 0x8b7e, 0x8b7f, 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x003f, 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, 0x8b9f, 0x8bac, 0x8bb1, 0x8bbb, 0x8bc7, 0x8bd0, 0x8bea, 0x8c09, 0x8c1e, 0x4f4f, 0x6ce8, 0x795d, 0x9a7b, 0x6293, 0x722a, 0x62fd, 0x4e13, 0x7816, 0x8f6c, 0x64b0, 0x8d5a, 0x7bc6, 0x6869, 0x5e84, 0x88c5, 0x5986, 0x649e, 0x58ee, 0x72b6, 0x690e, 0x9525, 0x8ffd, 0x8d58, 0x5760, 0x7f00, 0x8c06, 0x51c6, 0x6349, 0x62d9, 0x5353, 0x684c, 0x7422, 0x8301, 0x914c, 0x5544, 0x7740, 0x707c, 0x6d4a, 0x5179, 0x54a8, 0x8d44, 0x59ff, 0x6ecb, 0x6dc4, 0x5b5c, 0x7d2b, 0x4ed4, 0x7c7d, 0x6ed3, 0x5b50, 0x81ea, 0x6e0d, 0x5b57, 0x9b03, 0x68d5, 0x8e2a, 0x5b97, 0x7efc, 0x603b, 0x7eb5, 0x90b9, 0x8d70, 0x594f, 0x63cd, 0x79df, 0x8db3, 0x5352, 0x65cf, 0x7956, 0x8bc5, 0x963b, 0x7ec4, 0x94bb, 0x7e82, 0x5634, 0x9189, 0x6700, 0x7f6a, 0x5c0a, 0x9075, 0x6628, 0x5de6, 0x4f50, 0x67de, 0x505a, 0x4f5c, 0x5750, 0x5ea7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte d8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8c38, 0x8c39, 0x8c3a, 0x8c3b, 0x8c3c, 0x8c3d, 0x8c3e, 0x8c3f, 0x8c40, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c48, 0x8c4a, 0x8c4b, 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0x8c51, 0x8c52, 0x8c53, 0x8c54, 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5b, 0x8c5c, 0x8c5d, 0x8c5e, 0x8c5f, 0x8c60, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0x8c68, 0x8c69, 0x8c6c, 0x8c6d, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72, 0x8c74, 0x8c75, 0x8c76, 0x8c77, 0x8c7b, 0x8c7c, 0x8c7d, 0x8c7e, 0x8c7f, 0x8c80, 0x8c81, 0x8c83, 0x8c84, 0x8c86, 0x8c87, 0x003f, 0x8c88, 0x8c8b, 0x8c8d, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, 0x8c95, 0x8c96, 0x8c97, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0x8ca9, 0x8caa, 0x8cab, 0x8cac, 0x8cad, 0x4e8d, 0x4e0c, 0x5140, 0x4e10, 0x5eff, 0x5345, 0x4e15, 0x4e98, 0x4e1e, 0x9b32, 0x5b6c, 0x5669, 0x4e28, 0x79ba, 0x4e3f, 0x5315, 0x4e47, 0x592d, 0x723b, 0x536e, 0x6c10, 0x56df, 0x80e4, 0x9997, 0x6bd3, 0x777e, 0x9f17, 0x4e36, 0x4e9f, 0x9f10, 0x4e5c, 0x4e69, 0x4e93, 0x8288, 0x5b5b, 0x556c, 0x560f, 0x4ec4, 0x538d, 0x539d, 0x53a3, 0x53a5, 0x53ae, 0x9765, 0x8d5d, 0x531a, 0x53f5, 0x5326, 0x532e, 0x533e, 0x8d5c, 0x5366, 0x5363, 0x5202, 0x5208, 0x520e, 0x522d, 0x5233, 0x523f, 0x5240, 0x524c, 0x525e, 0x5261, 0x525c, 0x84af, 0x527d, 0x5282, 0x5281, 0x5290, 0x5293, 0x5182, 0x7f54, 0x4ebb, 0x4ec3, 0x4ec9, 0x4ec2, 0x4ee8, 0x4ee1, 0x4eeb, 0x4ede, 0x4f1b, 0x4ef3, 0x4f22, 0x4f64, 0x4ef5, 0x4f25, 0x4f27, 0x4f09, 0x4f2b, 0x4f5e, 0x4f67, 0x6538, 0x4f5a, 0x4f5d, 0x003f, /* lead byte d9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0x003f, 0x8ced, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8cff, 0x8d00, 0x8d01, 0x8d02, 0x8d03, 0x8d04, 0x8d05, 0x8d06, 0x8d07, 0x8d08, 0x8d09, 0x8d0a, 0x8d0b, 0x8d0c, 0x8d0d, 0x4f5f, 0x4f57, 0x4f32, 0x4f3d, 0x4f76, 0x4f74, 0x4f91, 0x4f89, 0x4f83, 0x4f8f, 0x4f7e, 0x4f7b, 0x4faa, 0x4f7c, 0x4fac, 0x4f94, 0x4fe6, 0x4fe8, 0x4fea, 0x4fc5, 0x4fda, 0x4fe3, 0x4fdc, 0x4fd1, 0x4fdf, 0x4ff8, 0x5029, 0x504c, 0x4ff3, 0x502c, 0x500f, 0x502e, 0x502d, 0x4ffe, 0x501c, 0x500c, 0x5025, 0x5028, 0x507e, 0x5043, 0x5055, 0x5048, 0x504e, 0x506c, 0x507b, 0x50a5, 0x50a7, 0x50a9, 0x50ba, 0x50d6, 0x5106, 0x50ed, 0x50ec, 0x50e6, 0x50ee, 0x5107, 0x510b, 0x4edd, 0x6c3d, 0x4f58, 0x4f65, 0x4fce, 0x9fa0, 0x6c46, 0x7c74, 0x516e, 0x5dfd, 0x9ec9, 0x9998, 0x5181, 0x5914, 0x52f9, 0x530d, 0x8a07, 0x5310, 0x51eb, 0x5919, 0x5155, 0x4ea0, 0x5156, 0x4eb3, 0x886e, 0x88a4, 0x4eb5, 0x8114, 0x88d2, 0x7980, 0x5b34, 0x8803, 0x7fb8, 0x51ab, 0x51b1, 0x51bd, 0x51bc, 0x003f, /* lead byte da */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d0e, 0x8d0f, 0x8d10, 0x8d11, 0x8d12, 0x8d13, 0x8d14, 0x8d15, 0x8d16, 0x8d17, 0x8d18, 0x8d19, 0x8d1a, 0x8d1b, 0x8d1c, 0x8d20, 0x8d51, 0x8d52, 0x8d57, 0x8d5f, 0x8d65, 0x8d68, 0x8d69, 0x8d6a, 0x8d6c, 0x8d6e, 0x8d6f, 0x8d71, 0x8d72, 0x8d78, 0x8d79, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, 0x8d7e, 0x8d7f, 0x8d80, 0x8d82, 0x8d83, 0x8d86, 0x8d87, 0x8d88, 0x8d89, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d92, 0x8d93, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8da0, 0x8da1, 0x003f, 0x8da2, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db2, 0x8db6, 0x8db7, 0x8db9, 0x8dbb, 0x8dbd, 0x8dc0, 0x8dc1, 0x8dc2, 0x8dc5, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcd, 0x8dd0, 0x8dd2, 0x8dd3, 0x8dd4, 0x51c7, 0x5196, 0x51a2, 0x51a5, 0x8ba0, 0x8ba6, 0x8ba7, 0x8baa, 0x8bb4, 0x8bb5, 0x8bb7, 0x8bc2, 0x8bc3, 0x8bcb, 0x8bcf, 0x8bce, 0x8bd2, 0x8bd3, 0x8bd4, 0x8bd6, 0x8bd8, 0x8bd9, 0x8bdc, 0x8bdf, 0x8be0, 0x8be4, 0x8be8, 0x8be9, 0x8bee, 0x8bf0, 0x8bf3, 0x8bf6, 0x8bf9, 0x8bfc, 0x8bff, 0x8c00, 0x8c02, 0x8c04, 0x8c07, 0x8c0c, 0x8c0f, 0x8c11, 0x8c12, 0x8c14, 0x8c15, 0x8c16, 0x8c19, 0x8c1b, 0x8c18, 0x8c1d, 0x8c1f, 0x8c20, 0x8c21, 0x8c25, 0x8c27, 0x8c2a, 0x8c2b, 0x8c2e, 0x8c2f, 0x8c32, 0x8c33, 0x8c35, 0x8c36, 0x5369, 0x537a, 0x961d, 0x9622, 0x9621, 0x9631, 0x962a, 0x963d, 0x963c, 0x9642, 0x9649, 0x9654, 0x965f, 0x9667, 0x966c, 0x9672, 0x9674, 0x9688, 0x968d, 0x9697, 0x96b0, 0x9097, 0x909b, 0x909d, 0x9099, 0x90ac, 0x90a1, 0x90b4, 0x90b3, 0x90b6, 0x90ba, 0x003f, /* lead byte db */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8dd5, 0x8dd8, 0x8dd9, 0x8ddc, 0x8de0, 0x8de1, 0x8de2, 0x8de5, 0x8de6, 0x8de7, 0x8de9, 0x8ded, 0x8dee, 0x8df0, 0x8df1, 0x8df2, 0x8df4, 0x8df6, 0x8dfc, 0x8dfe, 0x8dff, 0x8e00, 0x8e01, 0x8e02, 0x8e03, 0x8e04, 0x8e06, 0x8e07, 0x8e08, 0x8e0b, 0x8e0d, 0x8e0e, 0x8e10, 0x8e11, 0x8e12, 0x8e13, 0x8e15, 0x8e16, 0x8e17, 0x8e18, 0x8e19, 0x8e1a, 0x8e1b, 0x8e1c, 0x8e20, 0x8e21, 0x8e24, 0x8e25, 0x8e26, 0x8e27, 0x8e28, 0x8e2b, 0x8e2d, 0x8e30, 0x8e32, 0x8e33, 0x8e34, 0x8e36, 0x8e37, 0x8e38, 0x8e3b, 0x8e3c, 0x8e3e, 0x003f, 0x8e3f, 0x8e43, 0x8e45, 0x8e46, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0x8e63, 0x8e64, 0x8e65, 0x8e67, 0x8e68, 0x8e6a, 0x8e6b, 0x8e6e, 0x8e71, 0x90b8, 0x90b0, 0x90cf, 0x90c5, 0x90be, 0x90d0, 0x90c4, 0x90c7, 0x90d3, 0x90e6, 0x90e2, 0x90dc, 0x90d7, 0x90db, 0x90eb, 0x90ef, 0x90fe, 0x9104, 0x9122, 0x911e, 0x9123, 0x9131, 0x912f, 0x9139, 0x9143, 0x9146, 0x520d, 0x5942, 0x52a2, 0x52ac, 0x52ad, 0x52be, 0x54ff, 0x52d0, 0x52d6, 0x52f0, 0x53df, 0x71ee, 0x77cd, 0x5ef4, 0x51f5, 0x51fc, 0x9b2f, 0x53b6, 0x5f01, 0x755a, 0x5def, 0x574c, 0x57a9, 0x57a1, 0x587e, 0x58bc, 0x58c5, 0x58d1, 0x5729, 0x572c, 0x572a, 0x5733, 0x5739, 0x572e, 0x572f, 0x575c, 0x573b, 0x5742, 0x5769, 0x5785, 0x576b, 0x5786, 0x577c, 0x577b, 0x5768, 0x576d, 0x5776, 0x5773, 0x57ad, 0x57a4, 0x578c, 0x57b2, 0x57cf, 0x57a7, 0x57b4, 0x5793, 0x57a0, 0x57d5, 0x57d8, 0x57da, 0x57d9, 0x57d2, 0x57b8, 0x57f4, 0x57ef, 0x57f8, 0x57e4, 0x57dd, 0x003f, /* lead byte dc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e73, 0x8e75, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e7b, 0x8e7d, 0x8e7e, 0x8e80, 0x8e82, 0x8e83, 0x8e84, 0x8e86, 0x8e88, 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0x8e91, 0x8e92, 0x8e93, 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0x8e9d, 0x8e9f, 0x8ea0, 0x8ea1, 0x8ea2, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8ead, 0x8eae, 0x8eb0, 0x8eb1, 0x8eb3, 0x8eb4, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8ebb, 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0x8ec1, 0x8ec2, 0x003f, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0x8ed7, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ede, 0x8edf, 0x8ee0, 0x8ee1, 0x8ee2, 0x8ee3, 0x8ee4, 0x580b, 0x580d, 0x57fd, 0x57ed, 0x5800, 0x581e, 0x5819, 0x5844, 0x5820, 0x5865, 0x586c, 0x5881, 0x5889, 0x589a, 0x5880, 0x99a8, 0x9f19, 0x61ff, 0x8279, 0x827d, 0x827f, 0x828f, 0x828a, 0x82a8, 0x8284, 0x828e, 0x8291, 0x8297, 0x8299, 0x82ab, 0x82b8, 0x82be, 0x82b0, 0x82c8, 0x82ca, 0x82e3, 0x8298, 0x82b7, 0x82ae, 0x82cb, 0x82cc, 0x82c1, 0x82a9, 0x82b4, 0x82a1, 0x82aa, 0x829f, 0x82c4, 0x82ce, 0x82a4, 0x82e1, 0x8309, 0x82f7, 0x82e4, 0x830f, 0x8307, 0x82dc, 0x82f4, 0x82d2, 0x82d8, 0x830c, 0x82fb, 0x82d3, 0x8311, 0x831a, 0x8306, 0x8314, 0x8315, 0x82e0, 0x82d5, 0x831c, 0x8351, 0x835b, 0x835c, 0x8308, 0x8392, 0x833c, 0x8334, 0x8331, 0x839b, 0x835e, 0x832f, 0x834f, 0x8347, 0x8343, 0x835f, 0x8340, 0x8317, 0x8360, 0x832d, 0x833a, 0x8333, 0x8366, 0x8365, 0x003f, /* lead byte dd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, 0x8eed, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0x8ef4, 0x8ef5, 0x8ef6, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8eff, 0x8f00, 0x8f01, 0x8f02, 0x8f03, 0x8f04, 0x8f05, 0x8f06, 0x8f07, 0x8f08, 0x8f09, 0x8f0a, 0x8f0b, 0x8f0c, 0x8f0d, 0x8f0e, 0x8f0f, 0x8f10, 0x8f11, 0x8f12, 0x8f13, 0x8f14, 0x8f15, 0x8f16, 0x8f17, 0x8f18, 0x8f19, 0x8f1a, 0x8f1b, 0x8f1c, 0x8f1d, 0x8f1e, 0x8f1f, 0x8f20, 0x8f21, 0x8f22, 0x8f23, 0x003f, 0x8f24, 0x8f25, 0x8f26, 0x8f27, 0x8f28, 0x8f29, 0x8f2a, 0x8f2b, 0x8f2c, 0x8f2d, 0x8f2e, 0x8f2f, 0x8f30, 0x8f31, 0x8f32, 0x8f33, 0x8f34, 0x8f35, 0x8f36, 0x8f37, 0x8f38, 0x8f39, 0x8f3a, 0x8f3b, 0x8f3c, 0x8f3d, 0x8f3e, 0x8f3f, 0x8f40, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8368, 0x831b, 0x8369, 0x836c, 0x836a, 0x836d, 0x836e, 0x83b0, 0x8378, 0x83b3, 0x83b4, 0x83a0, 0x83aa, 0x8393, 0x839c, 0x8385, 0x837c, 0x83b6, 0x83a9, 0x837d, 0x83b8, 0x837b, 0x8398, 0x839e, 0x83a8, 0x83ba, 0x83bc, 0x83c1, 0x8401, 0x83e5, 0x83d8, 0x5807, 0x8418, 0x840b, 0x83dd, 0x83fd, 0x83d6, 0x841c, 0x8438, 0x8411, 0x8406, 0x83d4, 0x83df, 0x840f, 0x8403, 0x83f8, 0x83f9, 0x83ea, 0x83c5, 0x83c0, 0x8426, 0x83f0, 0x83e1, 0x845c, 0x8451, 0x845a, 0x8459, 0x8473, 0x8487, 0x8488, 0x847a, 0x8489, 0x8478, 0x843c, 0x8446, 0x8469, 0x8476, 0x848c, 0x848e, 0x8431, 0x846d, 0x84c1, 0x84cd, 0x84d0, 0x84e6, 0x84bd, 0x84d3, 0x84ca, 0x84bf, 0x84ba, 0x84e0, 0x84a1, 0x84b9, 0x84b4, 0x8497, 0x84e5, 0x84e3, 0x850c, 0x750d, 0x8538, 0x84f0, 0x8539, 0x851f, 0x853a, 0x003f, /* lead byte de */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f5b, 0x8f5c, 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65, 0x8f6a, 0x8f80, 0x8f8c, 0x8f92, 0x8f9d, 0x8fa0, 0x8fa1, 0x8fa2, 0x8fa4, 0x8fa5, 0x8fa6, 0x8fa7, 0x8faa, 0x8fac, 0x8fad, 0x8fae, 0x8faf, 0x8fb2, 0x8fb3, 0x8fb4, 0x8fb5, 0x8fb7, 0x8fb8, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbf, 0x8fc0, 0x8fc3, 0x8fc6, 0x003f, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fcf, 0x8fd2, 0x8fd6, 0x8fd7, 0x8fda, 0x8fe0, 0x8fe1, 0x8fe3, 0x8fe7, 0x8fec, 0x8fef, 0x8ff1, 0x8ff2, 0x8ff4, 0x8ff5, 0x8ff6, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffe, 0x8fff, 0x9007, 0x9008, 0x900c, 0x900e, 0x9013, 0x9015, 0x9018, 0x8556, 0x853b, 0x84ff, 0x84fc, 0x8559, 0x8548, 0x8568, 0x8564, 0x855e, 0x857a, 0x77a2, 0x8543, 0x8572, 0x857b, 0x85a4, 0x85a8, 0x8587, 0x858f, 0x8579, 0x85ae, 0x859c, 0x8585, 0x85b9, 0x85b7, 0x85b0, 0x85d3, 0x85c1, 0x85dc, 0x85ff, 0x8627, 0x8605, 0x8629, 0x8616, 0x863c, 0x5efe, 0x5f08, 0x593c, 0x5941, 0x8037, 0x5955, 0x595a, 0x5958, 0x530f, 0x5c22, 0x5c25, 0x5c2c, 0x5c34, 0x624c, 0x626a, 0x629f, 0x62bb, 0x62ca, 0x62da, 0x62d7, 0x62ee, 0x6322, 0x62f6, 0x6339, 0x634b, 0x6343, 0x63ad, 0x63f6, 0x6371, 0x637a, 0x638e, 0x63b4, 0x636d, 0x63ac, 0x638a, 0x6369, 0x63ae, 0x63bc, 0x63f2, 0x63f8, 0x63e0, 0x63ff, 0x63c4, 0x63de, 0x63ce, 0x6452, 0x63c6, 0x63be, 0x6445, 0x6441, 0x640b, 0x641b, 0x6420, 0x640c, 0x6426, 0x6421, 0x645e, 0x6484, 0x646d, 0x6496, 0x003f, /* lead byte df */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9019, 0x901c, 0x9023, 0x9024, 0x9025, 0x9027, 0x9028, 0x9029, 0x902a, 0x902b, 0x902c, 0x9030, 0x9031, 0x9032, 0x9033, 0x9034, 0x9037, 0x9039, 0x903a, 0x903d, 0x903f, 0x9040, 0x9043, 0x9045, 0x9046, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0x904e, 0x9054, 0x9055, 0x9056, 0x9059, 0x905a, 0x905c, 0x905d, 0x905e, 0x905f, 0x9060, 0x9061, 0x9064, 0x9066, 0x9067, 0x9069, 0x906a, 0x906b, 0x906c, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9076, 0x9077, 0x9078, 0x9079, 0x907a, 0x907b, 0x907c, 0x907e, 0x9081, 0x003f, 0x9084, 0x9085, 0x9086, 0x9087, 0x9089, 0x908a, 0x908c, 0x908d, 0x908e, 0x908f, 0x9090, 0x9092, 0x9094, 0x9096, 0x9098, 0x909a, 0x909c, 0x909e, 0x909f, 0x90a0, 0x90a4, 0x90a5, 0x90a7, 0x90a8, 0x90a9, 0x90ab, 0x90ad, 0x90b2, 0x90b7, 0x90bc, 0x90bd, 0x90bf, 0x90c0, 0x647a, 0x64b7, 0x64b8, 0x6499, 0x64ba, 0x64c0, 0x64d0, 0x64d7, 0x64e4, 0x64e2, 0x6509, 0x6525, 0x652e, 0x5f0b, 0x5fd2, 0x7519, 0x5f11, 0x535f, 0x53f1, 0x53fd, 0x53e9, 0x53e8, 0x53fb, 0x5412, 0x5416, 0x5406, 0x544b, 0x5452, 0x5453, 0x5454, 0x5456, 0x5443, 0x5421, 0x5457, 0x5459, 0x5423, 0x5432, 0x5482, 0x5494, 0x5477, 0x5471, 0x5464, 0x549a, 0x549b, 0x5484, 0x5476, 0x5466, 0x549d, 0x54d0, 0x54ad, 0x54c2, 0x54b4, 0x54d2, 0x54a7, 0x54a6, 0x54d3, 0x54d4, 0x5472, 0x54a3, 0x54d5, 0x54bb, 0x54bf, 0x54cc, 0x54d9, 0x54da, 0x54dc, 0x54a9, 0x54aa, 0x54a4, 0x54dd, 0x54cf, 0x54de, 0x551b, 0x54e7, 0x5520, 0x54fd, 0x5514, 0x54f3, 0x5522, 0x5523, 0x550f, 0x5511, 0x5527, 0x552a, 0x5567, 0x558f, 0x55b5, 0x5549, 0x556d, 0x5541, 0x5555, 0x553f, 0x5550, 0x553c, 0x003f, /* lead byte e0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90c2, 0x90c3, 0x90c6, 0x90c8, 0x90c9, 0x90cb, 0x90cc, 0x90cd, 0x90d2, 0x90d4, 0x90d5, 0x90d6, 0x90d8, 0x90d9, 0x90da, 0x90de, 0x90df, 0x90e0, 0x90e3, 0x90e4, 0x90e5, 0x90e9, 0x90ea, 0x90ec, 0x90ee, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f5, 0x90f6, 0x90f7, 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90ff, 0x9100, 0x9101, 0x9103, 0x9105, 0x9106, 0x9107, 0x9108, 0x9109, 0x910a, 0x910b, 0x910c, 0x910d, 0x910e, 0x910f, 0x9110, 0x9111, 0x9112, 0x9113, 0x9114, 0x9115, 0x9116, 0x9117, 0x9118, 0x911a, 0x911b, 0x911c, 0x003f, 0x911d, 0x911f, 0x9120, 0x9121, 0x9124, 0x9125, 0x9126, 0x9127, 0x9128, 0x9129, 0x912a, 0x912b, 0x912c, 0x912d, 0x912e, 0x9130, 0x9132, 0x9133, 0x9134, 0x9135, 0x9136, 0x9137, 0x9138, 0x913a, 0x913b, 0x913c, 0x913d, 0x913e, 0x913f, 0x9140, 0x9141, 0x9142, 0x9144, 0x5537, 0x5556, 0x5575, 0x5576, 0x5577, 0x5533, 0x5530, 0x555c, 0x558b, 0x55d2, 0x5583, 0x55b1, 0x55b9, 0x5588, 0x5581, 0x559f, 0x557e, 0x55d6, 0x5591, 0x557b, 0x55df, 0x55bd, 0x55be, 0x5594, 0x5599, 0x55ea, 0x55f7, 0x55c9, 0x561f, 0x55d1, 0x55eb, 0x55ec, 0x55d4, 0x55e6, 0x55dd, 0x55c4, 0x55ef, 0x55e5, 0x55f2, 0x55f3, 0x55cc, 0x55cd, 0x55e8, 0x55f5, 0x55e4, 0x8f94, 0x561e, 0x5608, 0x560c, 0x5601, 0x5624, 0x5623, 0x55fe, 0x5600, 0x5627, 0x562d, 0x5658, 0x5639, 0x5657, 0x562c, 0x564d, 0x5662, 0x5659, 0x565c, 0x564c, 0x5654, 0x5686, 0x5664, 0x5671, 0x566b, 0x567b, 0x567c, 0x5685, 0x5693, 0x56af, 0x56d4, 0x56d7, 0x56dd, 0x56e1, 0x56f5, 0x56eb, 0x56f9, 0x56ff, 0x5704, 0x570a, 0x5709, 0x571c, 0x5e0f, 0x5e19, 0x5e14, 0x5e11, 0x5e31, 0x5e3b, 0x5e3c, 0x003f, /* lead byte e1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9145, 0x9147, 0x9148, 0x9151, 0x9153, 0x9154, 0x9155, 0x9156, 0x9158, 0x9159, 0x915b, 0x915c, 0x915f, 0x9160, 0x9166, 0x9167, 0x9168, 0x916b, 0x916d, 0x9173, 0x917a, 0x917b, 0x917c, 0x9180, 0x9181, 0x9182, 0x9183, 0x9184, 0x9186, 0x9188, 0x918a, 0x918e, 0x918f, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0x91ab, 0x91ac, 0x91b0, 0x91b1, 0x91b2, 0x91b3, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91bb, 0x003f, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c8, 0x91cb, 0x91d0, 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0x91dd, 0x91de, 0x91df, 0x91e0, 0x91e1, 0x91e2, 0x91e3, 0x91e4, 0x91e5, 0x5e37, 0x5e44, 0x5e54, 0x5e5b, 0x5e5e, 0x5e61, 0x5c8c, 0x5c7a, 0x5c8d, 0x5c90, 0x5c96, 0x5c88, 0x5c98, 0x5c99, 0x5c91, 0x5c9a, 0x5c9c, 0x5cb5, 0x5ca2, 0x5cbd, 0x5cac, 0x5cab, 0x5cb1, 0x5ca3, 0x5cc1, 0x5cb7, 0x5cc4, 0x5cd2, 0x5ce4, 0x5ccb, 0x5ce5, 0x5d02, 0x5d03, 0x5d27, 0x5d26, 0x5d2e, 0x5d24, 0x5d1e, 0x5d06, 0x5d1b, 0x5d58, 0x5d3e, 0x5d34, 0x5d3d, 0x5d6c, 0x5d5b, 0x5d6f, 0x5d5d, 0x5d6b, 0x5d4b, 0x5d4a, 0x5d69, 0x5d74, 0x5d82, 0x5d99, 0x5d9d, 0x8c73, 0x5db7, 0x5dc5, 0x5f73, 0x5f77, 0x5f82, 0x5f87, 0x5f89, 0x5f8c, 0x5f95, 0x5f99, 0x5f9c, 0x5fa8, 0x5fad, 0x5fb5, 0x5fbc, 0x8862, 0x5f61, 0x72ad, 0x72b0, 0x72b4, 0x72b7, 0x72b8, 0x72c3, 0x72c1, 0x72ce, 0x72cd, 0x72d2, 0x72e8, 0x72ef, 0x72e9, 0x72f2, 0x72f4, 0x72f7, 0x7301, 0x72f3, 0x7303, 0x72fa, 0x003f, /* lead byte e2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0x91f3, 0x91f4, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x91ff, 0x9200, 0x9201, 0x9202, 0x9203, 0x9204, 0x9205, 0x9206, 0x9207, 0x9208, 0x9209, 0x920a, 0x920b, 0x920c, 0x920d, 0x920e, 0x920f, 0x9210, 0x9211, 0x9212, 0x9213, 0x9214, 0x9215, 0x9216, 0x9217, 0x9218, 0x9219, 0x921a, 0x921b, 0x921c, 0x921d, 0x921e, 0x921f, 0x9220, 0x9221, 0x9222, 0x9223, 0x9224, 0x003f, 0x9225, 0x9226, 0x9227, 0x9228, 0x9229, 0x922a, 0x922b, 0x922c, 0x922d, 0x922e, 0x922f, 0x9230, 0x9231, 0x9232, 0x9233, 0x9234, 0x9235, 0x9236, 0x9237, 0x9238, 0x9239, 0x923a, 0x923b, 0x923c, 0x923d, 0x923e, 0x923f, 0x9240, 0x9241, 0x9242, 0x9243, 0x9244, 0x9245, 0x72fb, 0x7317, 0x7313, 0x7321, 0x730a, 0x731e, 0x731d, 0x7315, 0x7322, 0x7339, 0x7325, 0x732c, 0x7338, 0x7331, 0x7350, 0x734d, 0x7357, 0x7360, 0x736c, 0x736f, 0x737e, 0x821b, 0x5925, 0x98e7, 0x5924, 0x5902, 0x9963, 0x9967, 0x9968, 0x9969, 0x996a, 0x996b, 0x996c, 0x9974, 0x9977, 0x997d, 0x9980, 0x9984, 0x9987, 0x998a, 0x998d, 0x9990, 0x9991, 0x9993, 0x9994, 0x9995, 0x5e80, 0x5e91, 0x5e8b, 0x5e96, 0x5ea5, 0x5ea0, 0x5eb9, 0x5eb5, 0x5ebe, 0x5eb3, 0x8d53, 0x5ed2, 0x5ed1, 0x5edb, 0x5ee8, 0x5eea, 0x81ba, 0x5fc4, 0x5fc9, 0x5fd6, 0x5fcf, 0x6003, 0x5fee, 0x6004, 0x5fe1, 0x5fe4, 0x5ffe, 0x6005, 0x6006, 0x5fea, 0x5fed, 0x5ff8, 0x6019, 0x6035, 0x6026, 0x601b, 0x600f, 0x600d, 0x6029, 0x602b, 0x600a, 0x603f, 0x6021, 0x6078, 0x6079, 0x607b, 0x607a, 0x6042, 0x003f, /* lead byte e3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0x9253, 0x9254, 0x9255, 0x9256, 0x9257, 0x9258, 0x9259, 0x925a, 0x925b, 0x925c, 0x925d, 0x925e, 0x925f, 0x9260, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0x926d, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9275, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, 0x927b, 0x927c, 0x927d, 0x927e, 0x927f, 0x9280, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x003f, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0x9297, 0x9298, 0x9299, 0x929a, 0x929b, 0x929c, 0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, 0x606a, 0x607d, 0x6096, 0x609a, 0x60ad, 0x609d, 0x6083, 0x6092, 0x608c, 0x609b, 0x60ec, 0x60bb, 0x60b1, 0x60dd, 0x60d8, 0x60c6, 0x60da, 0x60b4, 0x6120, 0x6126, 0x6115, 0x6123, 0x60f4, 0x6100, 0x610e, 0x612b, 0x614a, 0x6175, 0x61ac, 0x6194, 0x61a7, 0x61b7, 0x61d4, 0x61f5, 0x5fdd, 0x96b3, 0x95e9, 0x95eb, 0x95f1, 0x95f3, 0x95f5, 0x95f6, 0x95fc, 0x95fe, 0x9603, 0x9604, 0x9606, 0x9608, 0x960a, 0x960b, 0x960c, 0x960d, 0x960f, 0x9612, 0x9615, 0x9616, 0x9617, 0x9619, 0x961a, 0x4e2c, 0x723f, 0x6215, 0x6c35, 0x6c54, 0x6c5c, 0x6c4a, 0x6ca3, 0x6c85, 0x6c90, 0x6c94, 0x6c8c, 0x6c68, 0x6c69, 0x6c74, 0x6c76, 0x6c86, 0x6ca9, 0x6cd0, 0x6cd4, 0x6cad, 0x6cf7, 0x6cf8, 0x6cf1, 0x6cd7, 0x6cb2, 0x6ce0, 0x6cd6, 0x6cfa, 0x6ceb, 0x6cee, 0x6cb1, 0x6cd3, 0x6cef, 0x6cfe, 0x003f, /* lead byte e4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0x92b4, 0x92b5, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0x92bd, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c9, 0x92ca, 0x92cb, 0x92cc, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x003f, 0x92e9, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0x92fa, 0x92fb, 0x92fc, 0x92fd, 0x92fe, 0x92ff, 0x9300, 0x9301, 0x9302, 0x9303, 0x9304, 0x9305, 0x9306, 0x9307, 0x9308, 0x9309, 0x6d39, 0x6d27, 0x6d0c, 0x6d43, 0x6d48, 0x6d07, 0x6d04, 0x6d19, 0x6d0e, 0x6d2b, 0x6d4d, 0x6d2e, 0x6d35, 0x6d1a, 0x6d4f, 0x6d52, 0x6d54, 0x6d33, 0x6d91, 0x6d6f, 0x6d9e, 0x6da0, 0x6d5e, 0x6d93, 0x6d94, 0x6d5c, 0x6d60, 0x6d7c, 0x6d63, 0x6e1a, 0x6dc7, 0x6dc5, 0x6dde, 0x6e0e, 0x6dbf, 0x6de0, 0x6e11, 0x6de6, 0x6ddd, 0x6dd9, 0x6e16, 0x6dab, 0x6e0c, 0x6dae, 0x6e2b, 0x6e6e, 0x6e4e, 0x6e6b, 0x6eb2, 0x6e5f, 0x6e86, 0x6e53, 0x6e54, 0x6e32, 0x6e25, 0x6e44, 0x6edf, 0x6eb1, 0x6e98, 0x6ee0, 0x6f2d, 0x6ee2, 0x6ea5, 0x6ea7, 0x6ebd, 0x6ebb, 0x6eb7, 0x6ed7, 0x6eb4, 0x6ecf, 0x6e8f, 0x6ec2, 0x6e9f, 0x6f62, 0x6f46, 0x6f47, 0x6f24, 0x6f15, 0x6ef9, 0x6f2f, 0x6f36, 0x6f4b, 0x6f74, 0x6f2a, 0x6f09, 0x6f29, 0x6f89, 0x6f8d, 0x6f8c, 0x6f78, 0x6f72, 0x6f7c, 0x6f7a, 0x6fd1, 0x003f, /* lead byte e5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x930a, 0x930b, 0x930c, 0x930d, 0x930e, 0x930f, 0x9310, 0x9311, 0x9312, 0x9313, 0x9314, 0x9315, 0x9316, 0x9317, 0x9318, 0x9319, 0x931a, 0x931b, 0x931c, 0x931d, 0x931e, 0x931f, 0x9320, 0x9321, 0x9322, 0x9323, 0x9324, 0x9325, 0x9326, 0x9327, 0x9328, 0x9329, 0x932a, 0x932b, 0x932c, 0x932d, 0x932e, 0x932f, 0x9330, 0x9331, 0x9332, 0x9333, 0x9334, 0x9335, 0x9336, 0x9337, 0x9338, 0x9339, 0x933a, 0x933b, 0x933c, 0x933d, 0x933f, 0x9340, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, 0x9346, 0x9347, 0x9348, 0x9349, 0x003f, 0x934a, 0x934b, 0x934c, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0x9354, 0x9355, 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0x935b, 0x935c, 0x935d, 0x935e, 0x935f, 0x9360, 0x9361, 0x9362, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0x936b, 0x6fc9, 0x6fa7, 0x6fb9, 0x6fb6, 0x6fc2, 0x6fe1, 0x6fee, 0x6fde, 0x6fe0, 0x6fef, 0x701a, 0x7023, 0x701b, 0x7039, 0x7035, 0x704f, 0x705e, 0x5b80, 0x5b84, 0x5b95, 0x5b93, 0x5ba5, 0x5bb8, 0x752f, 0x9a9e, 0x6434, 0x5be4, 0x5bee, 0x8930, 0x5bf0, 0x8e47, 0x8b07, 0x8fb6, 0x8fd3, 0x8fd5, 0x8fe5, 0x8fee, 0x8fe4, 0x8fe9, 0x8fe6, 0x8ff3, 0x8fe8, 0x9005, 0x9004, 0x900b, 0x9026, 0x9011, 0x900d, 0x9016, 0x9021, 0x9035, 0x9036, 0x902d, 0x902f, 0x9044, 0x9051, 0x9052, 0x9050, 0x9068, 0x9058, 0x9062, 0x905b, 0x66b9, 0x9074, 0x907d, 0x9082, 0x9088, 0x9083, 0x908b, 0x5f50, 0x5f57, 0x5f56, 0x5f58, 0x5c3b, 0x54ab, 0x5c50, 0x5c59, 0x5b71, 0x5c63, 0x5c66, 0x7fbc, 0x5f2a, 0x5f29, 0x5f2d, 0x8274, 0x5f3c, 0x9b3b, 0x5c6e, 0x5981, 0x5983, 0x598d, 0x59a9, 0x59aa, 0x59a3, 0x003f, /* lead byte e6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x936c, 0x936d, 0x936e, 0x936f, 0x9370, 0x9371, 0x9372, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x937b, 0x937c, 0x937d, 0x937e, 0x937f, 0x9380, 0x9381, 0x9382, 0x9383, 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, 0x938e, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x003f, 0x93ac, 0x93ad, 0x93ae, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0x93b4, 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93cb, 0x93cc, 0x93cd, 0x5997, 0x59ca, 0x59ab, 0x599e, 0x59a4, 0x59d2, 0x59b2, 0x59af, 0x59d7, 0x59be, 0x5a05, 0x5a06, 0x59dd, 0x5a08, 0x59e3, 0x59d8, 0x59f9, 0x5a0c, 0x5a09, 0x5a32, 0x5a34, 0x5a11, 0x5a23, 0x5a13, 0x5a40, 0x5a67, 0x5a4a, 0x5a55, 0x5a3c, 0x5a62, 0x5a75, 0x80ec, 0x5aaa, 0x5a9b, 0x5a77, 0x5a7a, 0x5abe, 0x5aeb, 0x5ab2, 0x5ad2, 0x5ad4, 0x5ab8, 0x5ae0, 0x5ae3, 0x5af1, 0x5ad6, 0x5ae6, 0x5ad8, 0x5adc, 0x5b09, 0x5b17, 0x5b16, 0x5b32, 0x5b37, 0x5b40, 0x5c15, 0x5c1c, 0x5b5a, 0x5b65, 0x5b73, 0x5b51, 0x5b53, 0x5b62, 0x9a75, 0x9a77, 0x9a78, 0x9a7a, 0x9a7f, 0x9a7d, 0x9a80, 0x9a81, 0x9a85, 0x9a88, 0x9a8a, 0x9a90, 0x9a92, 0x9a93, 0x9a96, 0x9a98, 0x9a9b, 0x9a9c, 0x9a9d, 0x9a9f, 0x9aa0, 0x9aa2, 0x9aa3, 0x9aa5, 0x9aa7, 0x7e9f, 0x7ea1, 0x7ea3, 0x7ea5, 0x7ea8, 0x7ea9, 0x003f, /* lead byte e7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93ce, 0x93cf, 0x93d0, 0x93d1, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0x93dc, 0x93dd, 0x93de, 0x93df, 0x93e0, 0x93e1, 0x93e2, 0x93e3, 0x93e4, 0x93e5, 0x93e6, 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, 0x93f7, 0x93f8, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0x93fd, 0x93fe, 0x93ff, 0x9400, 0x9401, 0x9402, 0x9403, 0x9404, 0x9405, 0x9406, 0x9407, 0x9408, 0x9409, 0x940a, 0x940b, 0x940c, 0x940d, 0x003f, 0x940e, 0x940f, 0x9410, 0x9411, 0x9412, 0x9413, 0x9414, 0x9415, 0x9416, 0x9417, 0x9418, 0x9419, 0x941a, 0x941b, 0x941c, 0x941d, 0x941e, 0x941f, 0x9420, 0x9421, 0x9422, 0x9423, 0x9424, 0x9425, 0x9426, 0x9427, 0x9428, 0x9429, 0x942a, 0x942b, 0x942c, 0x942d, 0x942e, 0x7ead, 0x7eb0, 0x7ebe, 0x7ec0, 0x7ec1, 0x7ec2, 0x7ec9, 0x7ecb, 0x7ecc, 0x7ed0, 0x7ed4, 0x7ed7, 0x7edb, 0x7ee0, 0x7ee1, 0x7ee8, 0x7eeb, 0x7eee, 0x7eef, 0x7ef1, 0x7ef2, 0x7f0d, 0x7ef6, 0x7efa, 0x7efb, 0x7efe, 0x7f01, 0x7f02, 0x7f03, 0x7f07, 0x7f08, 0x7f0b, 0x7f0c, 0x7f0f, 0x7f11, 0x7f12, 0x7f17, 0x7f19, 0x7f1c, 0x7f1b, 0x7f1f, 0x7f21, 0x7f22, 0x7f23, 0x7f24, 0x7f25, 0x7f26, 0x7f27, 0x7f2a, 0x7f2b, 0x7f2c, 0x7f2d, 0x7f2f, 0x7f30, 0x7f31, 0x7f32, 0x7f33, 0x7f35, 0x5e7a, 0x757f, 0x5ddb, 0x753e, 0x9095, 0x738e, 0x7391, 0x73ae, 0x73a2, 0x739f, 0x73cf, 0x73c2, 0x73d1, 0x73b7, 0x73b3, 0x73c0, 0x73c9, 0x73c8, 0x73e5, 0x73d9, 0x987c, 0x740a, 0x73e9, 0x73e7, 0x73de, 0x73ba, 0x73f2, 0x740f, 0x742a, 0x745b, 0x7426, 0x7425, 0x7428, 0x7430, 0x742e, 0x742c, 0x003f, /* lead byte e8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x942f, 0x9430, 0x9431, 0x9432, 0x9433, 0x9434, 0x9435, 0x9436, 0x9437, 0x9438, 0x9439, 0x943a, 0x943b, 0x943c, 0x943d, 0x943f, 0x9440, 0x9441, 0x9442, 0x9443, 0x9444, 0x9445, 0x9446, 0x9447, 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, 0x9460, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, 0x9468, 0x9469, 0x946a, 0x946c, 0x946d, 0x946e, 0x946f, 0x003f, 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x947f, 0x9480, 0x9481, 0x9482, 0x9483, 0x9484, 0x9491, 0x9496, 0x9498, 0x94c7, 0x94cf, 0x94d3, 0x94d4, 0x94da, 0x94e6, 0x94fb, 0x951c, 0x9520, 0x741b, 0x741a, 0x7441, 0x745c, 0x7457, 0x7455, 0x7459, 0x7477, 0x746d, 0x747e, 0x749c, 0x748e, 0x7480, 0x7481, 0x7487, 0x748b, 0x749e, 0x74a8, 0x74a9, 0x7490, 0x74a7, 0x74d2, 0x74ba, 0x97ea, 0x97eb, 0x97ec, 0x674c, 0x6753, 0x675e, 0x6748, 0x6769, 0x67a5, 0x6787, 0x676a, 0x6773, 0x6798, 0x67a7, 0x6775, 0x67a8, 0x679e, 0x67ad, 0x678b, 0x6777, 0x677c, 0x67f0, 0x6809, 0x67d8, 0x680a, 0x67e9, 0x67b0, 0x680c, 0x67d9, 0x67b5, 0x67da, 0x67b3, 0x67dd, 0x6800, 0x67c3, 0x67b8, 0x67e2, 0x680e, 0x67c1, 0x67fd, 0x6832, 0x6833, 0x6860, 0x6861, 0x684e, 0x6862, 0x6844, 0x6864, 0x6883, 0x681d, 0x6855, 0x6866, 0x6841, 0x6867, 0x6840, 0x683e, 0x684a, 0x6849, 0x6829, 0x68b5, 0x688f, 0x6874, 0x6877, 0x6893, 0x686b, 0x68c2, 0x696e, 0x68fc, 0x691f, 0x6920, 0x68f9, 0x003f, /* lead byte e9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9527, 0x9533, 0x953d, 0x9543, 0x9548, 0x954b, 0x9555, 0x955a, 0x9560, 0x956e, 0x9574, 0x9575, 0x9577, 0x9578, 0x9579, 0x957a, 0x957b, 0x957c, 0x957d, 0x957e, 0x9580, 0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0x9588, 0x9589, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x003f, 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0x95c2, 0x95c3, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0x95ca, 0x95cb, 0x6924, 0x68f0, 0x690b, 0x6901, 0x6957, 0x68e3, 0x6910, 0x6971, 0x6939, 0x6960, 0x6942, 0x695d, 0x6984, 0x696b, 0x6980, 0x6998, 0x6978, 0x6934, 0x69cc, 0x6987, 0x6988, 0x69ce, 0x6989, 0x6966, 0x6963, 0x6979, 0x699b, 0x69a7, 0x69bb, 0x69ab, 0x69ad, 0x69d4, 0x69b1, 0x69c1, 0x69ca, 0x69df, 0x6995, 0x69e0, 0x698d, 0x69ff, 0x6a2f, 0x69ed, 0x6a17, 0x6a18, 0x6a65, 0x69f2, 0x6a44, 0x6a3e, 0x6aa0, 0x6a50, 0x6a5b, 0x6a35, 0x6a8e, 0x6a79, 0x6a3d, 0x6a28, 0x6a58, 0x6a7c, 0x6a91, 0x6a90, 0x6aa9, 0x6a97, 0x6aab, 0x7337, 0x7352, 0x6b81, 0x6b82, 0x6b87, 0x6b84, 0x6b92, 0x6b93, 0x6b8d, 0x6b9a, 0x6b9b, 0x6ba1, 0x6baa, 0x8f6b, 0x8f6d, 0x8f71, 0x8f72, 0x8f73, 0x8f75, 0x8f76, 0x8f78, 0x8f77, 0x8f79, 0x8f7a, 0x8f7c, 0x8f7e, 0x8f81, 0x8f82, 0x8f84, 0x8f87, 0x8f8b, 0x003f, /* lead byte ea */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95ec, 0x95ff, 0x9607, 0x9613, 0x9618, 0x961b, 0x961e, 0x9620, 0x9623, 0x9624, 0x9625, 0x9626, 0x9627, 0x9628, 0x9629, 0x962b, 0x962c, 0x962d, 0x962f, 0x9630, 0x9637, 0x9638, 0x9639, 0x963a, 0x963e, 0x9641, 0x9643, 0x964a, 0x964e, 0x964f, 0x9651, 0x9652, 0x9653, 0x9656, 0x9657, 0x003f, 0x9658, 0x9659, 0x965a, 0x965c, 0x965d, 0x965e, 0x9660, 0x9663, 0x9665, 0x9666, 0x966b, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0x9673, 0x9678, 0x9679, 0x967a, 0x967b, 0x967c, 0x967d, 0x967e, 0x967f, 0x9680, 0x9681, 0x9682, 0x9683, 0x9684, 0x9687, 0x9689, 0x968a, 0x8f8d, 0x8f8e, 0x8f8f, 0x8f98, 0x8f9a, 0x8ece, 0x620b, 0x6217, 0x621b, 0x621f, 0x6222, 0x6221, 0x6225, 0x6224, 0x622c, 0x81e7, 0x74ef, 0x74f4, 0x74ff, 0x750f, 0x7511, 0x7513, 0x6534, 0x65ee, 0x65ef, 0x65f0, 0x660a, 0x6619, 0x6772, 0x6603, 0x6615, 0x6600, 0x7085, 0x66f7, 0x661d, 0x6634, 0x6631, 0x6636, 0x6635, 0x8006, 0x665f, 0x6654, 0x6641, 0x664f, 0x6656, 0x6661, 0x6657, 0x6677, 0x6684, 0x668c, 0x66a7, 0x669d, 0x66be, 0x66db, 0x66dc, 0x66e6, 0x66e9, 0x8d32, 0x8d33, 0x8d36, 0x8d3b, 0x8d3d, 0x8d40, 0x8d45, 0x8d46, 0x8d48, 0x8d49, 0x8d47, 0x8d4d, 0x8d55, 0x8d59, 0x89c7, 0x89ca, 0x89cb, 0x89cc, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0x726e, 0x729f, 0x725d, 0x7266, 0x726f, 0x727e, 0x727f, 0x7284, 0x728b, 0x728d, 0x728f, 0x7292, 0x6308, 0x6332, 0x63b0, 0x003f, /* lead byte eb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x968c, 0x968e, 0x9691, 0x9692, 0x9693, 0x9695, 0x9696, 0x969a, 0x969b, 0x969d, 0x969e, 0x969f, 0x96a0, 0x96a1, 0x96a2, 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, 0x96ad, 0x96ae, 0x96af, 0x96b1, 0x96b2, 0x96b4, 0x96b5, 0x96b7, 0x96b8, 0x96ba, 0x96bb, 0x96bf, 0x96c2, 0x96c3, 0x96c8, 0x96ca, 0x96cb, 0x96d0, 0x96d1, 0x96d3, 0x96d4, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e1, 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96eb, 0x003f, 0x96ec, 0x96ed, 0x96ee, 0x96f0, 0x96f1, 0x96f2, 0x96f4, 0x96f5, 0x96f8, 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96ff, 0x9702, 0x9703, 0x9705, 0x970a, 0x970b, 0x970c, 0x9710, 0x9711, 0x9712, 0x9714, 0x9715, 0x9717, 0x9718, 0x9719, 0x971a, 0x971b, 0x971d, 0x971f, 0x9720, 0x643f, 0x64d8, 0x8004, 0x6bea, 0x6bf3, 0x6bfd, 0x6bf5, 0x6bf9, 0x6c05, 0x6c07, 0x6c06, 0x6c0d, 0x6c15, 0x6c18, 0x6c19, 0x6c1a, 0x6c21, 0x6c29, 0x6c24, 0x6c2a, 0x6c32, 0x6535, 0x6555, 0x656b, 0x724d, 0x7252, 0x7256, 0x7230, 0x8662, 0x5216, 0x809f, 0x809c, 0x8093, 0x80bc, 0x670a, 0x80bd, 0x80b1, 0x80ab, 0x80ad, 0x80b4, 0x80b7, 0x80e7, 0x80e8, 0x80e9, 0x80ea, 0x80db, 0x80c2, 0x80c4, 0x80d9, 0x80cd, 0x80d7, 0x6710, 0x80dd, 0x80eb, 0x80f1, 0x80f4, 0x80ed, 0x810d, 0x810e, 0x80f2, 0x80fc, 0x6715, 0x8112, 0x8c5a, 0x8136, 0x811e, 0x812c, 0x8118, 0x8132, 0x8148, 0x814c, 0x8153, 0x8174, 0x8159, 0x815a, 0x8171, 0x8160, 0x8169, 0x817c, 0x817d, 0x816d, 0x8167, 0x584d, 0x5ab5, 0x8188, 0x8182, 0x8191, 0x6ed5, 0x81a3, 0x81aa, 0x81cc, 0x6726, 0x81ca, 0x81bb, 0x003f, /* lead byte ec */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9721, 0x9722, 0x9723, 0x9724, 0x9725, 0x9726, 0x9727, 0x9728, 0x9729, 0x972b, 0x972c, 0x972e, 0x972f, 0x9731, 0x9733, 0x9734, 0x9735, 0x9736, 0x9737, 0x973a, 0x973b, 0x973c, 0x973d, 0x973f, 0x9740, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, 0x9750, 0x9751, 0x9754, 0x9755, 0x9757, 0x9758, 0x975a, 0x975c, 0x975d, 0x975f, 0x9763, 0x9764, 0x9766, 0x9767, 0x9768, 0x976a, 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x003f, 0x9772, 0x9775, 0x9777, 0x9778, 0x9779, 0x977a, 0x977b, 0x977d, 0x977e, 0x977f, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9786, 0x9787, 0x9788, 0x9789, 0x978a, 0x978c, 0x978e, 0x978f, 0x9790, 0x9793, 0x9795, 0x9796, 0x9797, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0x81c1, 0x81a6, 0x6b24, 0x6b37, 0x6b39, 0x6b43, 0x6b46, 0x6b59, 0x98d1, 0x98d2, 0x98d3, 0x98d5, 0x98d9, 0x98da, 0x6bb3, 0x5f40, 0x6bc2, 0x89f3, 0x6590, 0x9f51, 0x6593, 0x65bc, 0x65c6, 0x65c4, 0x65c3, 0x65cc, 0x65ce, 0x65d2, 0x65d6, 0x7080, 0x709c, 0x7096, 0x709d, 0x70bb, 0x70c0, 0x70b7, 0x70ab, 0x70b1, 0x70e8, 0x70ca, 0x7110, 0x7113, 0x7116, 0x712f, 0x7131, 0x7173, 0x715c, 0x7168, 0x7145, 0x7172, 0x714a, 0x7178, 0x717a, 0x7198, 0x71b3, 0x71b5, 0x71a8, 0x71a0, 0x71e0, 0x71d4, 0x71e7, 0x71f9, 0x721d, 0x7228, 0x706c, 0x7118, 0x7166, 0x71b9, 0x623e, 0x623d, 0x6243, 0x6248, 0x6249, 0x793b, 0x7940, 0x7946, 0x7949, 0x795b, 0x795c, 0x7953, 0x795a, 0x7962, 0x7957, 0x7960, 0x796f, 0x7967, 0x797a, 0x7985, 0x798a, 0x799a, 0x79a7, 0x79b3, 0x5fd1, 0x5fd0, 0x003f, /* lead byte ed */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x979e, 0x979f, 0x97a1, 0x97a2, 0x97a4, 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ac, 0x97ae, 0x97b0, 0x97b1, 0x97b3, 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be, 0x97bf, 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x003f, 0x97e4, 0x97e5, 0x97e8, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f4, 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0x97fc, 0x97fd, 0x97fe, 0x97ff, 0x9800, 0x9801, 0x9802, 0x9803, 0x9804, 0x9805, 0x9806, 0x9807, 0x9808, 0x9809, 0x980a, 0x980b, 0x980c, 0x980d, 0x980e, 0x603c, 0x605d, 0x605a, 0x6067, 0x6041, 0x6059, 0x6063, 0x60ab, 0x6106, 0x610d, 0x615d, 0x61a9, 0x619d, 0x61cb, 0x61d1, 0x6206, 0x8080, 0x807f, 0x6c93, 0x6cf6, 0x6dfc, 0x77f6, 0x77f8, 0x7800, 0x7809, 0x7817, 0x7818, 0x7811, 0x65ab, 0x782d, 0x781c, 0x781d, 0x7839, 0x783a, 0x783b, 0x781f, 0x783c, 0x7825, 0x782c, 0x7823, 0x7829, 0x784e, 0x786d, 0x7856, 0x7857, 0x7826, 0x7850, 0x7847, 0x784c, 0x786a, 0x789b, 0x7893, 0x789a, 0x7887, 0x789c, 0x78a1, 0x78a3, 0x78b2, 0x78b9, 0x78a5, 0x78d4, 0x78d9, 0x78c9, 0x78ec, 0x78f2, 0x7905, 0x78f4, 0x7913, 0x7924, 0x791e, 0x7934, 0x9f9b, 0x9ef9, 0x9efb, 0x9efc, 0x76f1, 0x7704, 0x770d, 0x76f9, 0x7707, 0x7708, 0x771a, 0x7722, 0x7719, 0x772d, 0x7726, 0x7735, 0x7738, 0x7750, 0x7751, 0x7747, 0x7743, 0x775a, 0x7768, 0x003f, /* lead byte ee */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x980f, 0x9810, 0x9811, 0x9812, 0x9813, 0x9814, 0x9815, 0x9816, 0x9817, 0x9818, 0x9819, 0x981a, 0x981b, 0x981c, 0x981d, 0x981e, 0x981f, 0x9820, 0x9821, 0x9822, 0x9823, 0x9824, 0x9825, 0x9826, 0x9827, 0x9828, 0x9829, 0x982a, 0x982b, 0x982c, 0x982d, 0x982e, 0x982f, 0x9830, 0x9831, 0x9832, 0x9833, 0x9834, 0x9835, 0x9836, 0x9837, 0x9838, 0x9839, 0x983a, 0x983b, 0x983c, 0x983d, 0x983e, 0x983f, 0x9840, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x003f, 0x984e, 0x984f, 0x9850, 0x9851, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, 0x9858, 0x9859, 0x985a, 0x985b, 0x985c, 0x985d, 0x985e, 0x985f, 0x9860, 0x9861, 0x9862, 0x9863, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x7762, 0x7765, 0x777f, 0x778d, 0x777d, 0x7780, 0x778c, 0x7791, 0x779f, 0x77a0, 0x77b0, 0x77b5, 0x77bd, 0x753a, 0x7540, 0x754e, 0x754b, 0x7548, 0x755b, 0x7572, 0x7579, 0x7583, 0x7f58, 0x7f61, 0x7f5f, 0x8a48, 0x7f68, 0x7f74, 0x7f71, 0x7f79, 0x7f81, 0x7f7e, 0x76cd, 0x76e5, 0x8832, 0x9485, 0x9486, 0x9487, 0x948b, 0x948a, 0x948c, 0x948d, 0x948f, 0x9490, 0x9494, 0x9497, 0x9495, 0x949a, 0x949b, 0x949c, 0x94a3, 0x94a4, 0x94ab, 0x94aa, 0x94ad, 0x94ac, 0x94af, 0x94b0, 0x94b2, 0x94b4, 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bc, 0x94bd, 0x94bf, 0x94c4, 0x94c8, 0x94c9, 0x94ca, 0x94cb, 0x94cc, 0x94cd, 0x94ce, 0x94d0, 0x94d1, 0x94d2, 0x94d5, 0x94d6, 0x94d7, 0x94d9, 0x94d8, 0x94db, 0x94de, 0x94df, 0x94e0, 0x94e2, 0x94e4, 0x94e5, 0x94e7, 0x94e8, 0x94ea, 0x003f, /* lead byte ef */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x988b, 0x988e, 0x9892, 0x9895, 0x9899, 0x98a3, 0x98a8, 0x98a9, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, 0x98b4, 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, 0x98cc, 0x98cd, 0x98cf, 0x98d0, 0x98d4, 0x98d6, 0x98d7, 0x98db, 0x98dc, 0x98dd, 0x98e0, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x003f, 0x98e5, 0x98e6, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0x98ed, 0x98ee, 0x98ef, 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0x98f7, 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0x98fe, 0x98ff, 0x9900, 0x9901, 0x9902, 0x9903, 0x9904, 0x9905, 0x9906, 0x9907, 0x94e9, 0x94eb, 0x94ee, 0x94ef, 0x94f3, 0x94f4, 0x94f5, 0x94f7, 0x94f9, 0x94fc, 0x94fd, 0x94ff, 0x9503, 0x9502, 0x9506, 0x9507, 0x9509, 0x950a, 0x950d, 0x950e, 0x950f, 0x9512, 0x9513, 0x9514, 0x9515, 0x9516, 0x9518, 0x951b, 0x951d, 0x951e, 0x951f, 0x9522, 0x952a, 0x952b, 0x9529, 0x952c, 0x9531, 0x9532, 0x9534, 0x9536, 0x9537, 0x9538, 0x953c, 0x953e, 0x953f, 0x9542, 0x9535, 0x9544, 0x9545, 0x9546, 0x9549, 0x954c, 0x954e, 0x954f, 0x9552, 0x9553, 0x9554, 0x9556, 0x9557, 0x9558, 0x9559, 0x955b, 0x955e, 0x955f, 0x955d, 0x9561, 0x9562, 0x9564, 0x9565, 0x9566, 0x9567, 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, 0x956f, 0x9571, 0x9572, 0x9573, 0x953a, 0x77e7, 0x77ec, 0x96c9, 0x79d5, 0x79ed, 0x79e3, 0x79eb, 0x7a06, 0x5d47, 0x7a03, 0x7a02, 0x7a1e, 0x7a14, 0x003f, /* lead byte f0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9908, 0x9909, 0x990a, 0x990b, 0x990c, 0x990e, 0x990f, 0x9911, 0x9912, 0x9913, 0x9914, 0x9915, 0x9916, 0x9917, 0x9918, 0x9919, 0x991a, 0x991b, 0x991c, 0x991d, 0x991e, 0x991f, 0x9920, 0x9921, 0x9922, 0x9923, 0x9924, 0x9925, 0x9926, 0x9927, 0x9928, 0x9929, 0x992a, 0x992b, 0x992c, 0x992d, 0x992f, 0x9930, 0x9931, 0x9932, 0x9933, 0x9934, 0x9935, 0x9936, 0x9937, 0x9938, 0x9939, 0x993a, 0x993b, 0x993c, 0x993d, 0x993e, 0x993f, 0x9940, 0x9941, 0x9942, 0x9943, 0x9944, 0x9945, 0x9946, 0x9947, 0x9948, 0x9949, 0x003f, 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952, 0x9953, 0x9956, 0x9957, 0x9958, 0x9959, 0x995a, 0x995b, 0x995c, 0x995d, 0x995e, 0x995f, 0x9960, 0x9961, 0x9962, 0x9964, 0x9966, 0x9973, 0x9978, 0x9979, 0x997b, 0x997e, 0x9982, 0x9983, 0x9989, 0x7a39, 0x7a37, 0x7a51, 0x9ecf, 0x99a5, 0x7a70, 0x7688, 0x768e, 0x7693, 0x7699, 0x76a4, 0x74de, 0x74e0, 0x752c, 0x9e20, 0x9e22, 0x9e28, 0x9e29, 0x9e2a, 0x9e2b, 0x9e2c, 0x9e32, 0x9e31, 0x9e36, 0x9e38, 0x9e37, 0x9e39, 0x9e3a, 0x9e3e, 0x9e41, 0x9e42, 0x9e44, 0x9e46, 0x9e47, 0x9e48, 0x9e49, 0x9e4b, 0x9e4c, 0x9e4e, 0x9e51, 0x9e55, 0x9e57, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5e, 0x9e63, 0x9e66, 0x9e67, 0x9e68, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e71, 0x9e6d, 0x9e73, 0x7592, 0x7594, 0x7596, 0x75a0, 0x759d, 0x75ac, 0x75a3, 0x75b3, 0x75b4, 0x75b8, 0x75c4, 0x75b1, 0x75b0, 0x75c3, 0x75c2, 0x75d6, 0x75cd, 0x75e3, 0x75e8, 0x75e6, 0x75e4, 0x75eb, 0x75e7, 0x7603, 0x75f1, 0x75fc, 0x75ff, 0x7610, 0x7600, 0x7605, 0x760c, 0x7617, 0x760a, 0x7625, 0x7618, 0x7615, 0x7619, 0x003f, /* lead byte f1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x998c, 0x998e, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a6, 0x99a7, 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, 0x99d3, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x003f, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0x99f8, 0x99f9, 0x761b, 0x763c, 0x7622, 0x7620, 0x7640, 0x762d, 0x7630, 0x763f, 0x7635, 0x7643, 0x763e, 0x7633, 0x764d, 0x765e, 0x7654, 0x765c, 0x7656, 0x766b, 0x766f, 0x7fca, 0x7ae6, 0x7a78, 0x7a79, 0x7a80, 0x7a86, 0x7a88, 0x7a95, 0x7aa6, 0x7aa0, 0x7aac, 0x7aa8, 0x7aad, 0x7ab3, 0x8864, 0x8869, 0x8872, 0x887d, 0x887f, 0x8882, 0x88a2, 0x88c6, 0x88b7, 0x88bc, 0x88c9, 0x88e2, 0x88ce, 0x88e3, 0x88e5, 0x88f1, 0x891a, 0x88fc, 0x88e8, 0x88fe, 0x88f0, 0x8921, 0x8919, 0x8913, 0x891b, 0x890a, 0x8934, 0x892b, 0x8936, 0x8941, 0x8966, 0x897b, 0x758b, 0x80e5, 0x76b2, 0x76b4, 0x77dc, 0x8012, 0x8014, 0x8016, 0x801c, 0x8020, 0x8022, 0x8025, 0x8026, 0x8027, 0x8029, 0x8028, 0x8031, 0x800b, 0x8035, 0x8043, 0x8046, 0x804d, 0x8052, 0x8069, 0x8071, 0x8983, 0x9878, 0x9880, 0x9883, 0x003f, /* lead byte f2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x99ff, 0x9a00, 0x9a01, 0x9a02, 0x9a03, 0x9a04, 0x9a05, 0x9a06, 0x9a07, 0x9a08, 0x9a09, 0x9a0a, 0x9a0b, 0x9a0c, 0x9a0d, 0x9a0e, 0x9a0f, 0x9a10, 0x9a11, 0x9a12, 0x9a13, 0x9a14, 0x9a15, 0x9a16, 0x9a17, 0x9a18, 0x9a19, 0x9a1a, 0x9a1b, 0x9a1c, 0x9a1d, 0x9a1e, 0x9a1f, 0x9a20, 0x9a21, 0x9a22, 0x9a23, 0x9a24, 0x9a25, 0x9a26, 0x9a27, 0x9a28, 0x9a29, 0x9a2a, 0x9a2b, 0x9a2c, 0x9a2d, 0x9a2e, 0x9a2f, 0x9a30, 0x9a31, 0x9a32, 0x9a33, 0x9a34, 0x9a35, 0x9a36, 0x9a37, 0x9a38, 0x003f, 0x9a39, 0x9a3a, 0x9a3b, 0x9a3c, 0x9a3d, 0x9a3e, 0x9a3f, 0x9a40, 0x9a41, 0x9a42, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0x9a47, 0x9a48, 0x9a49, 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9889, 0x988c, 0x988d, 0x988f, 0x9894, 0x989a, 0x989b, 0x989e, 0x989f, 0x98a1, 0x98a2, 0x98a5, 0x98a6, 0x864d, 0x8654, 0x866c, 0x866e, 0x867f, 0x867a, 0x867c, 0x867b, 0x86a8, 0x868d, 0x868b, 0x86ac, 0x869d, 0x86a7, 0x86a3, 0x86aa, 0x8693, 0x86a9, 0x86b6, 0x86c4, 0x86b5, 0x86ce, 0x86b0, 0x86ba, 0x86b1, 0x86af, 0x86c9, 0x86cf, 0x86b4, 0x86e9, 0x86f1, 0x86f2, 0x86ed, 0x86f3, 0x86d0, 0x8713, 0x86de, 0x86f4, 0x86df, 0x86d8, 0x86d1, 0x8703, 0x8707, 0x86f8, 0x8708, 0x870a, 0x870d, 0x8709, 0x8723, 0x873b, 0x871e, 0x8725, 0x872e, 0x871a, 0x873e, 0x8748, 0x8734, 0x8731, 0x8729, 0x8737, 0x873f, 0x8782, 0x8722, 0x877d, 0x877e, 0x877b, 0x8760, 0x8770, 0x874c, 0x876e, 0x878b, 0x8753, 0x8763, 0x877c, 0x8764, 0x8759, 0x8765, 0x8793, 0x87af, 0x87a8, 0x87d2, 0x003f, /* lead byte f3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0x9a60, 0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0x9a6a, 0x9a6b, 0x9a72, 0x9a83, 0x9a89, 0x9a8d, 0x9a8e, 0x9a94, 0x9a95, 0x9a99, 0x9aa6, 0x9aa9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, 0x9aae, 0x9aaf, 0x9ab2, 0x9ab3, 0x9ab4, 0x9ab5, 0x9ab9, 0x9abb, 0x9abd, 0x9abe, 0x9abf, 0x9ac3, 0x9ac4, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad2, 0x9ad4, 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x003f, 0x9add, 0x9ade, 0x9ae0, 0x9ae2, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae7, 0x9ae8, 0x9ae9, 0x9aea, 0x9aec, 0x9aee, 0x9af0, 0x9af1, 0x9af2, 0x9af3, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9afa, 0x9afc, 0x9afd, 0x9afe, 0x9aff, 0x9b00, 0x9b01, 0x9b02, 0x9b04, 0x9b05, 0x9b06, 0x87c6, 0x8788, 0x8785, 0x87ad, 0x8797, 0x8783, 0x87ab, 0x87e5, 0x87ac, 0x87b5, 0x87b3, 0x87cb, 0x87d3, 0x87bd, 0x87d1, 0x87c0, 0x87ca, 0x87db, 0x87ea, 0x87e0, 0x87ee, 0x8816, 0x8813, 0x87fe, 0x880a, 0x881b, 0x8821, 0x8839, 0x883c, 0x7f36, 0x7f42, 0x7f44, 0x7f45, 0x8210, 0x7afa, 0x7afd, 0x7b08, 0x7b03, 0x7b04, 0x7b15, 0x7b0a, 0x7b2b, 0x7b0f, 0x7b47, 0x7b38, 0x7b2a, 0x7b19, 0x7b2e, 0x7b31, 0x7b20, 0x7b25, 0x7b24, 0x7b33, 0x7b3e, 0x7b1e, 0x7b58, 0x7b5a, 0x7b45, 0x7b75, 0x7b4c, 0x7b5d, 0x7b60, 0x7b6e, 0x7b7b, 0x7b62, 0x7b72, 0x7b71, 0x7b90, 0x7ba6, 0x7ba7, 0x7bb8, 0x7bac, 0x7b9d, 0x7ba8, 0x7b85, 0x7baa, 0x7b9c, 0x7ba2, 0x7bab, 0x7bb4, 0x7bd1, 0x7bc1, 0x7bcc, 0x7bdd, 0x7bda, 0x7be5, 0x7be6, 0x7bea, 0x7c0c, 0x7bfe, 0x7bfc, 0x7c0f, 0x7c16, 0x7c0b, 0x003f, /* lead byte f4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b07, 0x9b09, 0x9b0a, 0x9b0b, 0x9b0c, 0x9b0d, 0x9b0e, 0x9b10, 0x9b11, 0x9b12, 0x9b14, 0x9b15, 0x9b16, 0x9b17, 0x9b18, 0x9b19, 0x9b1a, 0x9b1b, 0x9b1c, 0x9b1d, 0x9b1e, 0x9b20, 0x9b21, 0x9b22, 0x9b24, 0x9b25, 0x9b26, 0x9b27, 0x9b28, 0x9b29, 0x9b2a, 0x9b2b, 0x9b2c, 0x9b2d, 0x9b2e, 0x9b30, 0x9b31, 0x9b33, 0x9b34, 0x9b35, 0x9b36, 0x9b37, 0x9b38, 0x9b39, 0x9b3a, 0x9b3d, 0x9b3e, 0x9b3f, 0x9b40, 0x9b46, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4e, 0x9b50, 0x9b52, 0x9b53, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x003f, 0x9b5b, 0x9b5c, 0x9b5d, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b7b, 0x7c1f, 0x7c2a, 0x7c26, 0x7c38, 0x7c41, 0x7c40, 0x81fe, 0x8201, 0x8202, 0x8204, 0x81ec, 0x8844, 0x8221, 0x8222, 0x8223, 0x822d, 0x822f, 0x8228, 0x822b, 0x8238, 0x823b, 0x8233, 0x8234, 0x823e, 0x8244, 0x8249, 0x824b, 0x824f, 0x825a, 0x825f, 0x8268, 0x887e, 0x8885, 0x8888, 0x88d8, 0x88df, 0x895e, 0x7f9d, 0x7f9f, 0x7fa7, 0x7faf, 0x7fb0, 0x7fb2, 0x7c7c, 0x6549, 0x7c91, 0x7c9d, 0x7c9c, 0x7c9e, 0x7ca2, 0x7cb2, 0x7cbc, 0x7cbd, 0x7cc1, 0x7cc7, 0x7ccc, 0x7ccd, 0x7cc8, 0x7cc5, 0x7cd7, 0x7ce8, 0x826e, 0x66a8, 0x7fbf, 0x7fce, 0x7fd5, 0x7fe5, 0x7fe1, 0x7fe6, 0x7fe9, 0x7fee, 0x7ff3, 0x7cf8, 0x7d77, 0x7da6, 0x7dae, 0x7e47, 0x7e9b, 0x9eb8, 0x9eb4, 0x8d73, 0x8d84, 0x8d94, 0x8d91, 0x8db1, 0x8d67, 0x8d6d, 0x8c47, 0x8c49, 0x914a, 0x9150, 0x914e, 0x914f, 0x9164, 0x003f, /* lead byte f5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b7c, 0x9b7d, 0x9b7e, 0x9b7f, 0x9b80, 0x9b81, 0x9b82, 0x9b83, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e, 0x9b9f, 0x9ba0, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0x9bae, 0x9baf, 0x9bb0, 0x9bb1, 0x9bb2, 0x9bb3, 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x003f, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9162, 0x9161, 0x9170, 0x9169, 0x916f, 0x917d, 0x917e, 0x9172, 0x9174, 0x9179, 0x918c, 0x9185, 0x9190, 0x918d, 0x9191, 0x91a2, 0x91a3, 0x91aa, 0x91ad, 0x91ae, 0x91af, 0x91b5, 0x91b4, 0x91ba, 0x8c55, 0x9e7e, 0x8db8, 0x8deb, 0x8e05, 0x8e59, 0x8e69, 0x8db5, 0x8dbf, 0x8dbc, 0x8dba, 0x8dc4, 0x8dd6, 0x8dd7, 0x8dda, 0x8dde, 0x8dce, 0x8dcf, 0x8ddb, 0x8dc6, 0x8dec, 0x8df7, 0x8df8, 0x8de3, 0x8df9, 0x8dfb, 0x8de4, 0x8e09, 0x8dfd, 0x8e14, 0x8e1d, 0x8e1f, 0x8e2c, 0x8e2e, 0x8e23, 0x8e2f, 0x8e3a, 0x8e40, 0x8e39, 0x8e35, 0x8e3d, 0x8e31, 0x8e49, 0x8e41, 0x8e42, 0x8e51, 0x8e52, 0x8e4a, 0x8e70, 0x8e76, 0x8e7c, 0x8e6f, 0x8e74, 0x8e85, 0x8e8f, 0x8e94, 0x8e90, 0x8e9c, 0x8e9e, 0x8c78, 0x8c82, 0x8c8a, 0x8c85, 0x8c98, 0x8c94, 0x659b, 0x89d6, 0x89de, 0x89da, 0x89dc, 0x003f, /* lead byte f6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0x9bfe, 0x9bff, 0x9c00, 0x9c01, 0x9c02, 0x9c03, 0x9c04, 0x9c05, 0x9c06, 0x9c07, 0x9c08, 0x9c09, 0x9c0a, 0x9c0b, 0x9c0c, 0x9c0d, 0x9c0e, 0x9c0f, 0x9c10, 0x9c11, 0x9c12, 0x9c13, 0x9c14, 0x9c15, 0x9c16, 0x9c17, 0x9c18, 0x9c19, 0x9c1a, 0x003f, 0x9c1b, 0x9c1c, 0x9c1d, 0x9c1e, 0x9c1f, 0x9c20, 0x9c21, 0x9c22, 0x9c23, 0x9c24, 0x9c25, 0x9c26, 0x9c27, 0x9c28, 0x9c29, 0x9c2a, 0x9c2b, 0x9c2c, 0x9c2d, 0x9c2e, 0x9c2f, 0x9c30, 0x9c31, 0x9c32, 0x9c33, 0x9c34, 0x9c35, 0x9c36, 0x9c37, 0x9c38, 0x9c39, 0x9c3a, 0x9c3b, 0x89e5, 0x89eb, 0x89ef, 0x8a3e, 0x8b26, 0x9753, 0x96e9, 0x96f3, 0x96ef, 0x9706, 0x9701, 0x9708, 0x970f, 0x970e, 0x972a, 0x972d, 0x9730, 0x973e, 0x9f80, 0x9f83, 0x9f85, 0x9f86, 0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8c, 0x9efe, 0x9f0b, 0x9f0d, 0x96b9, 0x96bc, 0x96bd, 0x96ce, 0x96d2, 0x77bf, 0x96e0, 0x928e, 0x92ae, 0x92c8, 0x933e, 0x936a, 0x93ca, 0x938f, 0x943e, 0x946b, 0x9c7f, 0x9c82, 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x7a23, 0x9c8b, 0x9c8e, 0x9c90, 0x9c91, 0x9c92, 0x9c94, 0x9c95, 0x9c9a, 0x9c9b, 0x9c9e, 0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, 0x9ca9, 0x9cab, 0x9cad, 0x9cae, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cc4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cca, 0x9ccb, 0x003f, /* lead byte f7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9c3c, 0x9c3d, 0x9c3e, 0x9c3f, 0x9c40, 0x9c41, 0x9c42, 0x9c43, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0x9c4a, 0x9c4b, 0x9c4c, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0x9c53, 0x9c54, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c5b, 0x9c5c, 0x9c5d, 0x9c5e, 0x9c5f, 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x003f, 0x9c7b, 0x9c7d, 0x9c7e, 0x9c80, 0x9c83, 0x9c84, 0x9c89, 0x9c8a, 0x9c8c, 0x9c8f, 0x9c93, 0x9c96, 0x9c97, 0x9c98, 0x9c99, 0x9c9d, 0x9caa, 0x9cac, 0x9caf, 0x9cb9, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, 0x9cc8, 0x9cc9, 0x9cd1, 0x9cd2, 0x9cda, 0x9cdb, 0x9ce0, 0x9ce1, 0x9ccc, 0x9ccd, 0x9cce, 0x9ccf, 0x9cd0, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd7, 0x9cd8, 0x9cd9, 0x9cdc, 0x9cdd, 0x9cdf, 0x9ce2, 0x977c, 0x9785, 0x9791, 0x9792, 0x9794, 0x97af, 0x97ab, 0x97a3, 0x97b2, 0x97b4, 0x9ab1, 0x9ab0, 0x9ab7, 0x9e58, 0x9ab6, 0x9aba, 0x9abc, 0x9ac1, 0x9ac0, 0x9ac5, 0x9ac2, 0x9acb, 0x9acc, 0x9ad1, 0x9b45, 0x9b43, 0x9b47, 0x9b49, 0x9b48, 0x9b4d, 0x9b51, 0x98e8, 0x990d, 0x992e, 0x9955, 0x9954, 0x9adf, 0x9ae1, 0x9ae6, 0x9aef, 0x9aeb, 0x9afb, 0x9aed, 0x9af9, 0x9b08, 0x9b0f, 0x9b13, 0x9b1f, 0x9b23, 0x9ebd, 0x9ebe, 0x7e3b, 0x9e82, 0x9e87, 0x9e88, 0x9e8b, 0x9e92, 0x93d6, 0x9e9d, 0x9e9f, 0x9edb, 0x9edc, 0x9edd, 0x9ee0, 0x9edf, 0x9ee2, 0x9ee9, 0x9ee7, 0x9ee5, 0x9eea, 0x9eef, 0x9f22, 0x9f2c, 0x9f2f, 0x9f39, 0x9f37, 0x9f3d, 0x9f3e, 0x9f44, 0x003f, /* lead byte f8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9cff, 0x9d00, 0x9d01, 0x9d02, 0x9d03, 0x9d04, 0x9d05, 0x9d06, 0x9d07, 0x9d08, 0x9d09, 0x9d0a, 0x9d0b, 0x9d0c, 0x9d0d, 0x9d0e, 0x9d0f, 0x9d10, 0x9d11, 0x9d12, 0x9d13, 0x9d14, 0x9d15, 0x9d16, 0x9d17, 0x9d18, 0x9d19, 0x9d1a, 0x9d1b, 0x9d1c, 0x9d1d, 0x9d1e, 0x9d1f, 0x9d20, 0x9d21, 0x003f, 0x9d22, 0x9d23, 0x9d24, 0x9d25, 0x9d26, 0x9d27, 0x9d28, 0x9d29, 0x9d2a, 0x9d2b, 0x9d2c, 0x9d2d, 0x9d2e, 0x9d2f, 0x9d30, 0x9d31, 0x9d32, 0x9d33, 0x9d34, 0x9d35, 0x9d36, 0x9d37, 0x9d38, 0x9d39, 0x9d3a, 0x9d3b, 0x9d3c, 0x9d3d, 0x9d3e, 0x9d3f, 0x9d40, 0x9d41, 0x9d42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte f9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0x9d4f, 0x9d50, 0x9d51, 0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, 0x9d5b, 0x9d5c, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d7f, 0x9d80, 0x9d81, 0x003f, 0x9d82, 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0x9d91, 0x9d92, 0x9d93, 0x9d94, 0x9d95, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0x9d9a, 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte fa */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9da3, 0x9da4, 0x9da5, 0x9da6, 0x9da7, 0x9da8, 0x9da9, 0x9daa, 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0x9db1, 0x9db2, 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0x9dd7, 0x9dd8, 0x9dd9, 0x9dda, 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0x9de1, 0x003f, 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0x9def, 0x9df0, 0x9df1, 0x9df2, 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0x9dfa, 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9dff, 0x9e00, 0x9e01, 0x9e02, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte fb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9e03, 0x9e04, 0x9e05, 0x9e06, 0x9e07, 0x9e08, 0x9e09, 0x9e0a, 0x9e0b, 0x9e0c, 0x9e0d, 0x9e0e, 0x9e0f, 0x9e10, 0x9e11, 0x9e12, 0x9e13, 0x9e14, 0x9e15, 0x9e16, 0x9e17, 0x9e18, 0x9e19, 0x9e1a, 0x9e1b, 0x9e1c, 0x9e1d, 0x9e1e, 0x9e24, 0x9e27, 0x9e2e, 0x9e30, 0x9e34, 0x9e3b, 0x9e3c, 0x9e40, 0x9e4d, 0x9e50, 0x9e52, 0x9e53, 0x9e54, 0x9e56, 0x9e59, 0x9e5d, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e65, 0x9e6e, 0x9e6f, 0x9e72, 0x9e74, 0x9e75, 0x9e76, 0x9e77, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e80, 0x003f, 0x9e81, 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e89, 0x9e8a, 0x9e8c, 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e94, 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9e, 0x9ea0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte fc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb9, 0x9eba, 0x9ebc, 0x9ebf, 0x9ec0, 0x9ec1, 0x9ec2, 0x9ec3, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0x9eca, 0x9ecb, 0x9ecc, 0x9ed0, 0x9ed2, 0x9ed3, 0x9ed5, 0x9ed6, 0x9ed7, 0x9ed9, 0x9eda, 0x9ede, 0x9ee1, 0x9ee3, 0x9ee4, 0x9ee6, 0x9ee8, 0x9eeb, 0x9eec, 0x9eed, 0x9eee, 0x9ef0, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9efa, 0x9efd, 0x9eff, 0x9f00, 0x9f01, 0x9f02, 0x9f03, 0x9f04, 0x9f05, 0x003f, 0x9f06, 0x9f07, 0x9f08, 0x9f09, 0x9f0a, 0x9f0c, 0x9f0f, 0x9f11, 0x9f12, 0x9f14, 0x9f15, 0x9f16, 0x9f18, 0x9f1a, 0x9f1b, 0x9f1c, 0x9f1d, 0x9f1e, 0x9f1f, 0x9f21, 0x9f23, 0x9f24, 0x9f25, 0x9f26, 0x9f27, 0x9f28, 0x9f29, 0x9f2a, 0x9f2b, 0x9f2d, 0x9f2e, 0x9f30, 0x9f31, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte fd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f32, 0x9f33, 0x9f34, 0x9f35, 0x9f36, 0x9f38, 0x9f3a, 0x9f3c, 0x9f3f, 0x9f40, 0x9f41, 0x9f42, 0x9f43, 0x9f45, 0x9f46, 0x9f47, 0x9f48, 0x9f49, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f52, 0x9f53, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x003f, 0x9f79, 0x9f7a, 0x9f7b, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f81, 0x9f82, 0x9f8d, 0x9f8e, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0x9f93, 0x9f94, 0x9f95, 0x9f96, 0x9f97, 0x9f98, 0x9f9c, 0x9f9d, 0x9f9e, 0x9fa1, 0x9fa2, 0x9fa3, 0x9fa4, 0x9fa5, 0xf92c, 0xf979, 0xf995, 0xf9e7, 0xf9f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte fe */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfa0c, 0xfa0d, 0xfa0e, 0xfa0f, 0xfa11, 0xfa13, 0xfa14, 0xfa18, 0xfa1f, 0xfa20, 0xfa21, 0xfa23, 0xfa24, 0xfa27, 0xfa28, 0xfa29, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned char cp2uni_leadbytes[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x00 }; static const unsigned short uni2cp_low[27648] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x0021, 0x0063, 0x004c, 0xa1e8, 0x0059, 0x003f, 0xa1ec, 0xa1a7, 0x0063, 0x0061, 0xa1b6, 0x003f, 0x002d, 0x0072, 0xa1a5, 0xa1e3, 0xa1c0, 0x0032, 0x0033, 0xa840, 0xa6cc, 0x003f, 0xa1a4, 0x002c, 0x0031, 0x006f, 0xa1b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1c1, 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x003f, 0xa6c2, 0xa8a4, 0xa8a2, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, 0xa8a8, 0xa8a6, 0xa8ba, 0x0065, 0xa8ac, 0xa8aa, 0x0069, 0x0069, 0x0064, 0x006e, 0xa8b0, 0xa8ae, 0x006f, 0x006f, 0x006f, 0xa1c2, 0x006f, 0xa8b4, 0xa8b2, 0x0075, 0xa8b9, 0x0079, 0x003f, 0x0079, /* 0x0100 .. 0x01ff */ 0x0041, 0xa8a1, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0xa8a5, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0xa8a7, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0xa8a9, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x003f, 0x003f, 0x004a, 0x006a, 0x004b, 0x006b, 0x003f, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x003f, 0x003f, 0x004c, 0x006c, 0x004e, 0xa8bd, 0x004e, 0x006e, 0x004e, 0xa8be, 0x003f, 0x003f, 0x003f, 0x004f, 0xa8ad, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0xa8b1, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9a6, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0xa8a3, 0x0049, 0xa8ab, 0x004f, 0xa8af, 0x0055, 0xa8b3, 0x0055, 0xa8b5, 0x0055, 0xa8b6, 0x0055, 0xa8b7, 0x0055, 0xa8b8, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0047, 0x0067, 0x0047, 0x0067, 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, 0x004e, 0x006e, 0x0041, 0x0061, 0x0041, 0x0061, 0x004f, 0x006f, /* 0x0200 .. 0x02ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, 0x0079, 0xa840, 0xa1e5, 0xa1ae, 0xa1af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0xa1a6, 0x0027, 0xa1a5, 0xa840, 0xa841, 0x003f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa842, 0xa1e3, 0x003f, 0x007e, 0xa1e5, 0x003f, 0x003f, 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0300 .. 0x03ff */ 0xa841, 0xa840, 0x005e, 0x007e, 0xa1a5, 0xa1a5, 0x003f, 0xa842, 0xa1a7, 0x003f, 0xa1e3, 0xa1e5, 0xa1a6, 0x003f, 0x0022, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005f, 0x005f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa841, 0xa840, 0x003f, 0x003f, 0xa1a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa840, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa840, 0xa1a7, 0xa6a1, 0xa1a4, 0xa6a5, 0xa6a7, 0xa6a9, 0x003f, 0xa6af, 0x003f, 0xa6b4, 0xa6b8, 0xa6c9, 0xa6a1, 0xa6a2, 0xa6a3, 0xa6a4, 0xa6a5, 0xa6a6, 0xa6a7, 0xa6a8, 0xa6a9, 0xa6aa, 0xa6ab, 0xa6ac, 0xa6ad, 0xa6ae, 0xa6af, 0xa6b0, 0xa6b1, 0x003f, 0xa6b2, 0xa6b3, 0xa6b4, 0xa6b5, 0xa6b6, 0xa6b7, 0xa6b8, 0xa6a9, 0xa6b4, 0xa6c1, 0xa6c5, 0xa6c7, 0xa6c9, 0xa6d4, 0xa6c1, 0xa6c2, 0xa6c3, 0xa6c4, 0xa6c5, 0xa6c6, 0xa6c7, 0xa6c8, 0xa6c9, 0xa6ca, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xa6cf, 0xa6d0, 0xa6d1, 0x003f, 0xa6d2, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, 0xa6d7, 0xa6d8, 0xa6c9, 0xa6d4, 0xa6cf, 0xa6d4, 0xa6d8, 0x003f, 0xa6c2, 0xa6c8, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6d5, 0xa6d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6ca, 0xa6d1, 0x003f, 0x003f, 0xa6a8, 0xa6c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0400 .. 0x04ff */ 0xa7a6, 0xa7a7, 0x003f, 0xa7a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7ac, 0xa7aa, 0xa7b5, 0x003f, 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a4, 0xa7a5, 0xa7a6, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3, 0xa7b4, 0xa7b5, 0xa7b6, 0xa7b7, 0xa7b8, 0xa7b9, 0xa7ba, 0xa7bb, 0xa7bc, 0xa7bd, 0xa7be, 0xa7bf, 0xa7c0, 0xa7c1, 0xa7d1, 0xa7d2, 0xa7d3, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d8, 0xa7d9, 0xa7da, 0xa7db, 0xa7dc, 0xa7dd, 0xa7de, 0xa7df, 0xa7e0, 0xa7e1, 0xa7e2, 0xa7e3, 0xa7e4, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e9, 0xa7ea, 0xa7eb, 0xa7ec, 0xa7ed, 0xa7ee, 0xa7ef, 0xa7f0, 0xa7f1, 0xa7d6, 0xa7d7, 0x003f, 0xa7d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7dc, 0xa7da, 0xa7e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a8, 0xa7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a1, 0xa7d1, 0xa7a1, 0xa7d1, 0x003f, 0x003f, 0xa7a6, 0xa7d6, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a8, 0xa7d8, 0xa7a9, 0xa7d9, 0x003f, 0x003f, 0xa7aa, 0xa7da, 0xa7aa, 0xa7da, 0xa7b0, 0xa7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7bf, 0xa7ef, 0xa7b5, 0xa7e5, 0xa7b5, 0xa7e5, 0xa7b5, 0xa7e5, 0xa7b9, 0xa7e9, 0x003f, 0x003f, 0xa7bd, 0xa7ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1e00 .. 0x1eff */ 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0xa8a5, 0x0045, 0xa8a5, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0xa8ad, 0x004f, 0xa8ad, 0x0050, 0x0070, 0x0050, 0x0070, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0xa8b1, 0x0056, 0x0076, 0x0056, 0x0076, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0xa8ba, 0x0045, 0xa8ba, 0x0045, 0xa8ba, 0x0045, 0xa8ba, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1f00 .. 0x1fff */ 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0xa6c5, 0x003f, 0x003f, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0xa6a5, 0x003f, 0x003f, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0xa6cf, 0x003f, 0x003f, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0xa6af, 0x003f, 0x003f, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0x003f, 0xa6b4, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6c1, 0xa6c1, 0xa6c5, 0xa6c5, 0xa6c7, 0xa6c7, 0xa6c9, 0xa6c9, 0xa6cf, 0xa6cf, 0xa6d4, 0xa6d4, 0xa6d8, 0xa6d8, 0x003f, 0x003f, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6c7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6a7, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6d8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6b8, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0xa6c1, 0x003f, 0xa6c1, 0xa6c1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0xa6a1, 0x003f, 0xa6c9, 0x003f, 0x003f, 0xa1a7, 0xa6c7, 0xa6c7, 0xa6c7, 0x003f, 0xa6c7, 0xa6c7, 0xa6a5, 0xa6a5, 0xa6a7, 0xa6a7, 0xa6a7, 0x003f, 0x003f, 0x003f, 0xa6c9, 0xa6c9, 0xa6c9, 0xa6c9, 0x003f, 0x003f, 0xa6c9, 0xa6c9, 0xa6a9, 0xa6a9, 0xa6a9, 0xa6a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d4, 0xa6d1, 0xa6d1, 0xa6d4, 0xa6d4, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6b4, 0xa6b1, 0xa1a7, 0xa1a7, 0x0060, 0x003f, 0x003f, 0xa6d8, 0xa6d8, 0xa6d8, 0x003f, 0xa6d8, 0xa6d8, 0xa6af, 0xa6af, 0xa6b8, 0xa6b8, 0xa6b8, 0xa840, 0x003f, 0x003f, /* 0x2000 .. 0x20ff */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa95c, 0xa95c, 0x003f, 0xa843, 0xa1aa, 0xa844, 0xa1ac, 0x005f, 0xa1ae, 0xa1af, 0x002c, 0xa1ae, 0xa1b0, 0xa1b1, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002e, 0xa845, 0xa1ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0xa1eb, 0x003f, 0xa1e4, 0xa1e5, 0x003f, 0xa846, 0x003f, 0x003f, 0x003f, 0xa1b4, 0xa1b5, 0xa1f9, 0x0021, 0x003f, 0xa1a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa84d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e3, 0x0069, 0x003f, 0x003f, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0xa95c, 0x003d, 0x0028, 0x0029, 0x006e, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0xa95c, 0x003d, 0x0028, 0x0029, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0063, 0x003f, 0x003f, 0x004c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2100 .. 0x21ff */ 0x003f, 0x003f, 0x0043, 0xa1e6, 0x003f, 0xa847, 0x003f, 0x0045, 0x003f, 0xa848, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0x0068, 0x0049, 0x0049, 0x004c, 0x006c, 0x003f, 0x004e, 0xa1ed, 0x003f, 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, 0x003f, 0xa959, 0x003f, 0x003f, 0x005a, 0x003f, 0xa6b8, 0x003f, 0x005a, 0x003f, 0x004b, 0x0041, 0x0042, 0x0043, 0x0065, 0x0065, 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0069, 0x003f, 0x003f, 0x003f, 0xa6c3, 0xa6a3, 0xa6b0, 0xa1c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0x004c, 0x0043, 0x0044, 0x004d, 0xa2a1, 0xa2a2, 0xa2a3, 0xa2a4, 0xa2a5, 0xa2a6, 0xa2a7, 0xa2a8, 0xa2a9, 0xa2aa, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1fb, 0xa1fc, 0xa1fa, 0xa1fd, 0x002d, 0x007c, 0xa849, 0xa84a, 0xa84b, 0xa84c, 0xa1fb, 0xa1fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2200 .. 0x22ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x003f, 0x003f, 0xa1ca, 0xa1ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c7, 0x003f, 0xa1c6, 0xa95c, 0xa1c0, 0x003f, 0xa84d, 0x005c, 0x002a, 0xa1e3, 0x003f, 0xa1cc, 0x003f, 0x003f, 0xa1d8, 0xa1de, 0xa84e, 0xa1cf, 0x003f, 0x003f, 0xa84f, 0xa84f, 0xa1ce, 0xa1ce, 0xa1c4, 0xa1c5, 0xa1c9, 0xa1c8, 0xa1d2, 0x003f, 0x003f, 0xa1d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e0, 0xa1df, 0xa1c3, 0xa1cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0xa1d7, 0x003f, 0x003f, 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d6, 0xa1d6, 0x003f, 0x003f, 0xa1d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa850, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d9, 0xa1d4, 0xa1d4, 0xa1d4, 0xa1dc, 0xa1dd, 0xa851, 0xa852, 0x003f, 0x003f, 0xa1b6, 0xa1b7, 0x003f, 0x003f, 0xa1da, 0xa1db, 0xa1dc, 0xa1dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa892, 0x003f, 0x003f, 0x003f, 0xa1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa853, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2300 .. 0x23ff */ 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b4, 0xa1b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2400 .. 0x24ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, 0xa2cb, 0xa2cc, 0xa2cd, 0xa2ce, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa2b9, 0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2, 0xa2c3, 0xa2c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2500 .. 0x25ff */ 0xa9a4, 0xa9a5, 0xa9a6, 0xa9a7, 0xa9a8, 0xa9a9, 0xa9aa, 0xa9ab, 0xa9ac, 0xa9ad, 0xa9ae, 0xa9af, 0xa9b0, 0xa9b1, 0xa9b2, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9, 0xa9ba, 0xa9bb, 0xa9bc, 0xa9bd, 0xa9be, 0xa9bf, 0xa9c0, 0xa9c1, 0xa9c2, 0xa9c3, 0xa9c4, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 0xa9ca, 0xa9cb, 0xa9cc, 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d2, 0xa9d3, 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9da, 0xa9db, 0xa9dc, 0xa9dd, 0xa9de, 0xa9df, 0xa9e0, 0xa9e1, 0xa9e2, 0xa9e3, 0xa9e4, 0xa9e5, 0xa9e6, 0xa9e7, 0xa9e8, 0xa9e9, 0xa9ea, 0xa9eb, 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0x002d, 0x002d, 0x003f, 0x003f, 0xa854, 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa85b, 0xa85c, 0xa85d, 0xa85e, 0xa85f, 0xa860, 0xa861, 0xa862, 0xa863, 0xa864, 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c, 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, 0xa874, 0xa875, 0xa876, 0xa877, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x003f, 0xa878, 0xa879, 0xa87a, 0xa87b, 0xa87c, 0xa87d, 0xa87e, 0xa880, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885, 0xa886, 0xa887, 0x003f, 0x003f, 0x003f, 0xa888, 0xa889, 0xa88a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f6, 0xa1f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f8, 0xa1f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa88b, 0xa88c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f4, 0xa1f3, 0x003f, 0x003f, 0x003f, 0xa1f0, 0x003f, 0x003f, 0xa1f2, 0xa1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa88d, 0xa88e, 0xa88f, 0xa890, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2600 .. 0x26ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ef, 0xa1ee, 0x003f, 0x003f, 0xa891, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e2, 0x003f, 0xa1e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2e00 .. 0x2eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2f00 .. 0x2fff */ 0xd2bb, 0xd8ad, 0xd8bc, 0xd8af, 0xd2d2, 0x817c, 0xb6fe, 0xd9ef, 0xc8cb, 0xb6f9, 0xc8eb, 0xb0cb, 0xd8e7, 0xdaa2, 0xd9fb, 0xbcb8, 0xdbc9, 0xb5b6, 0xc1a6, 0xd9e8, 0xd8b0, 0xd8ce, 0x855b, 0xcaae, 0xb2b7, 0xdae0, 0xb3a7, 0xdbcc, 0xd3d6, 0xbfda, 0xe0ed, 0xcdc1, 0xcabf, 0xe2ba, 0x89e5, 0xcfa6, 0xb4f3, 0xc5ae, 0xd7d3, 0xe5b2, 0xb4e7, 0xd0a1, 0xdecc, 0xcaac, 0xe5f8, 0xc9bd, 0xe7dd, 0xb9a4, 0xbcba, 0xbded, 0xb8c9, 0xe7db, 0xb9e3, 0xdbc8, 0xdec3, 0xdfae, 0xb9ad, 0xe5e6, 0xe1ea, 0xe1dc, 0xd0c4, 0xb8ea, 0x91f4, 0xcad6, 0xd6a7, 0xeab7, 0xcec4, 0xb6b7, 0xbdef, 0xb7bd, 0xcede, 0xc8d5, 0xd4bb, 0xd4c2, 0xc4be, 0xc7b7, 0xd6b9, 0xb4f5, 0xecaf, 0xcee3, 0xb1c8, 0xc3ab, 0xcacf, 0xc6f8, 0xcbae, 0xbbf0, 0xd7a6, 0xb8b8, 0xd8b3, 0xe3dd, 0xc6ac, 0xd1c0, 0xc5a3, 0xc8ae, 0xd0fe, 0xd3f1, 0xb9cf, 0xcddf, 0xb8ca, 0xc9fa, 0xd3c3, 0xccef, 0xf1e2, 0xf0da, 0xb068, 0xb0d7, 0xc6a4, 0xc3f3, 0xc4bf, 0xc3ac, 0xcab8, 0xcaaf, 0xcabe, 0xb662, 0xbacc, 0xd1a8, 0xc1a2, 0xd6f1, 0xc3d7, 0xf4e9, 0xf3be, 0xcdf8, 0xd1f2, 0xd3f0, 0xc0cf, 0xb6f8, 0xf1e7, 0xb6fa, 0xedb2, 0xc8e2, 0xb3bc, 0xd7d4, 0xd6c1, 0xbeca, 0xc9e0, 0xe2b6, 0xd6db, 0xf4de, 0xc9ab, 0xc648, 0xf2ae, 0xb3e6, 0xd1aa, 0xd0d0, 0xd2c2, 0xd281, 0xd28a, 0xbdc7, 0xd1d4, 0xb9c8, 0xb6b9, 0xf5b9, 0xf5f4, 0xd890, 0xb3e0, 0xd7df, 0xd7e3, 0xc9ed, 0xdc87, 0xd0c1, 0xb3bd, 0xde75, 0xd2d8, 0xd3cf, 0xe18a, 0xc0ef, 0xbdf0, 0xe94c, 0xe954, 0xb8b7, 0xc1a5, 0xf6bf, 0xd3ea, 0xec69, 0xb7c7, 0xc3e6, 0xb8ef, 0xed66, 0xbec2, 0xd2f4, 0xed93, 0xef4c, 0xef77, 0xcab3, 0xcad7, 0xcfe3, 0xf152, 0xb9c7, 0xb8df, 0xf7d4, 0xf459, 0xdbcb, 0xd8aa, 0xb9ed, 0xf47e, 0xf842, 0xfb75, 0xc2b9, 0xfb9c, 0xc2e9, 0xfc53, 0xcaf2, 0xbada, 0xede9, 0xfc77, 0xb6a6, 0xb9c4, 0xcaf3, 0xb1c7, 0xfd52, 0xfd58, 0xfd88, 0xfd94, 0xd9df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3000 .. 0x30ff */ 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a8, 0x003f, 0xa1a9, 0xa965, 0xa996, 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, 0xa1ba, 0xa1bb, 0xa1be, 0xa1bf, 0xa893, 0xa1fe, 0xa1b2, 0xa1b3, 0xa1bc, 0xa1bd, 0x003f, 0x003f, 0x005b, 0x005d, 0x003f, 0xa894, 0xa895, 0x002c, 0x003f, 0xa940, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946, 0xa947, 0xa948, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa893, 0x003f, 0xcaae, 0x8560, 0xd8a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0xa4a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa961, 0xa962, 0xa966, 0xa967, 0x003f, 0x003f, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, 0xa5a8, 0xa5a9, 0xa5aa, 0xa5ab, 0xa5ac, 0xa5ad, 0xa5ae, 0xa5af, 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5ba, 0xa5bb, 0xa5bc, 0xa5bd, 0xa5be, 0xa5bf, 0xa5c0, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xa5dd, 0xa5de, 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0x003f, 0xa960, 0xa963, 0xa964, 0x003f, /* 0x3100 .. 0x31ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, 0xa8cd, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, 0xa8d5, 0xa8d6, 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, 0xa8de, 0xa8df, 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, 0xa8e7, 0xa8e8, 0xa8e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2bb, 0xb6fe, 0xc8fd, 0xcbc4, 0xc9cf, 0xd6d0, 0xcfc2, 0xbcd7, 0xd2d2, 0xb1fb, 0xb6a1, 0xccec, 0xb5d8, 0xc8cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3200 .. 0x32ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa95a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2bb, 0xb6fe, 0xc8fd, 0xcbc4, 0xcee5, 0xc1f9, 0xc6df, 0xb0cb, 0xbec5, 0xcaae, 0xd4c2, 0xbbf0, 0xcbae, 0xc4be, 0xbdf0, 0xcdc1, 0xc8d5, 0xd6ea, 0xd3d0, 0xc9e7, 0xc3fb, 0xccd8, 0xd894, 0xd7a3, 0x84ba, 0xc3d8, 0xc4d0, 0xc5ae, 0xdf6d, 0x839e, 0xd3a1, 0xd7a2, 0xed97, 0xd0dd, 0xd0b4, 0xa949, 0xc9cf, 0xd6d0, 0xcfc2, 0xd7f3, 0xd3d2, 0xd2bd, 0xd7da, 0xd1a7, 0xb14f, 0xc6f3, 0xd959, 0x8566, 0xd2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5a2, 0xa5a4, 0xa5a6, 0xa5a8, 0xa5aa, 0xa5ab, 0xa5ad, 0xa5af, 0xa5b1, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b9, 0xa5bb, 0xa5bd, 0xa5bf, 0xa5c1, 0xa5c4, 0xa5c6, 0xa5c8, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d2, 0xa5d5, 0xa5d8, 0xa5db, 0xa5de, 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e4, 0xa5e6, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ef, 0xa5f0, 0xa5f1, 0xa5f2, 0x003f, /* 0x3300 .. 0x33ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa94a, 0xa94b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa94c, 0xa94d, 0xa94e, 0x003f, 0x003f, 0xa94f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa950, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa951, 0x003f, 0x003f, 0xa952, 0xa953, 0x003f, 0x003f, 0xa954, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x4e00 .. 0x4eff */ 0xd2bb, 0xb6a1, 0x8140, 0xc6df, 0x8141, 0x8142, 0x8143, 0xcdf2, 0xd5c9, 0xc8fd, 0xc9cf, 0xcfc2, 0xd8a2, 0xb2bb, 0xd3eb, 0x8144, 0xd8a4, 0xb3f3, 0x8145, 0xd7a8, 0xc7d2, 0xd8a7, 0xcac0, 0x8146, 0xc7f0, 0xb1fb, 0xd2b5, 0xb4d4, 0xb6ab, 0xcbbf, 0xd8a9, 0x8147, 0x8148, 0x8149, 0xb6aa, 0x814a, 0xc1bd, 0xd1cf, 0x814b, 0xc9a5, 0xd8ad, 0x814c, 0xb8f6, 0xd1be, 0xe3dc, 0xd6d0, 0x814d, 0x814e, 0xb7e1, 0x814f, 0xb4ae, 0x8150, 0xc1d9, 0x8151, 0xd8bc, 0x8152, 0xcde8, 0xb5a4, 0xceaa, 0xd6f7, 0x8153, 0xc0f6, 0xbed9, 0xd8af, 0x8154, 0x8155, 0x8156, 0xc4cb, 0x8157, 0xbec3, 0x8158, 0xd8b1, 0xc3b4, 0xd2e5, 0x8159, 0xd6ae, 0xceda, 0xd5a7, 0xbaf5, 0xb7a6, 0xc0d6, 0x815a, 0xc6b9, 0xc5d2, 0xc7c7, 0x815b, 0xb9d4, 0x815c, 0xb3cb, 0xd2d2, 0x815d, 0x815e, 0xd8bf, 0xbec5, 0xc6f2, 0xd2b2, 0xcfb0, 0xcfe7, 0x815f, 0x8160, 0x8161, 0x8162, 0xcae9, 0x8163, 0x8164, 0xd8c0, 0x8165, 0x8166, 0x8167, 0x8168, 0x8169, 0x816a, 0xc2f2, 0xc2d2, 0x816b, 0xc8e9, 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171, 0x8172, 0x8173, 0x8174, 0x8175, 0xc7ac, 0x8176, 0x8177, 0x8178, 0x8179, 0x817a, 0x817b, 0x817c, 0xc1cb, 0x817d, 0xd3e8, 0xd5f9, 0x817e, 0xcac2, 0xb6fe, 0xd8a1, 0xd3da, 0xbff7, 0x8180, 0xd4c6, 0xbba5, 0xd8c1, 0xcee5, 0xbeae, 0x8181, 0x8182, 0xd8a8, 0x8183, 0xd1c7, 0xd0a9, 0x8184, 0x8185, 0x8186, 0xd8bd, 0xd9ef, 0xcdf6, 0xbfba, 0x8187, 0xbdbb, 0xbaa5, 0xd2e0, 0xb2fa, 0xbae0, 0xc4b6, 0x8188, 0xcfed, 0xbea9, 0xcda4, 0xc1c1, 0x8189, 0x818a, 0x818b, 0xc7d7, 0xd9f1, 0x818c, 0xd9f4, 0x818d, 0x818e, 0x818f, 0x8190, 0xc8cb, 0xd8e9, 0x8191, 0x8192, 0x8193, 0xd2da, 0xcab2, 0xc8ca, 0xd8ec, 0xd8ea, 0xd8c6, 0xbdf6, 0xc6cd, 0xb3f0, 0x8194, 0xd8eb, 0xbdf1, 0xbde9, 0x8195, 0xc8d4, 0xb4d3, 0x8196, 0x8197, 0xc2d8, 0x8198, 0xb2d6, 0xd7d0, 0xcacb, 0xcbfb, 0xd5cc, 0xb8b6, 0xcfc9, 0x8199, 0x819a, 0x819b, 0xd9da, 0xd8f0, 0xc7aa, 0x819c, 0xd8ee, 0x819d, 0xb4fa, 0xc1ee, 0xd2d4, 0x819e, 0x819f, 0xd8ed, 0x81a0, 0xd2c7, 0xd8ef, 0xc3c7, 0x81a1, 0x81a2, 0x81a3, 0xd1f6, 0x81a4, 0xd6d9, 0xd8f2, 0x81a5, 0xd8f5, 0xbcfe, 0xbcdb, 0x81a6, 0x81a7, 0x81a8, 0xc8ce, 0x81a9, 0xb7dd, 0x81aa, 0xb7c2, /* 0x4f00 .. 0x4fff */ 0x81ab, 0xc6f3, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2, 0xd8f8, 0xd2c1, 0x81b3, 0x81b4, 0xcee9, 0xbcbf, 0xb7fc, 0xb7a5, 0xd0dd, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0xd6da, 0xd3c5, 0xbbef, 0xbbe1, 0xd8f1, 0x81ba, 0x81bb, 0xc9a1, 0xceb0, 0xb4ab, 0x81bc, 0xd8f3, 0x81bd, 0xc9cb, 0xd8f6, 0xc2d7, 0xd8f7, 0x81be, 0x81bf, 0xceb1, 0xd8f9, 0x81c0, 0x81c1, 0x81c2, 0xb2ae, 0xb9c0, 0x81c3, 0xd9a3, 0x81c4, 0xb0e9, 0x81c5, 0xc1e6, 0x81c6, 0xc9ec, 0x81c7, 0xcbc5, 0x81c8, 0xcbc6, 0xd9a4, 0x81c9, 0x81ca, 0x81cb, 0x81cc, 0x81cd, 0xb5e8, 0x81ce, 0x81cf, 0xb5ab, 0x81d0, 0x81d1, 0x81d2, 0x81d3, 0x81d4, 0x81d5, 0xcebb, 0xb5cd, 0xd7a1, 0xd7f4, 0xd3d3, 0x81d6, 0xcce5, 0x81d7, 0xbace, 0x81d8, 0xd9a2, 0xd9dc, 0xd3e0, 0xd8fd, 0xb7f0, 0xd7f7, 0xd8fe, 0xd8fa, 0xd9a1, 0xc4e3, 0x81d9, 0x81da, 0xd3b6, 0xd8f4, 0xd9dd, 0x81db, 0xd8fb, 0x81dc, 0xc5e5, 0x81dd, 0x81de, 0xc0d0, 0x81df, 0x81e0, 0xd1f0, 0xb0db, 0x81e1, 0x81e2, 0xbcd1, 0xd9a6, 0x81e3, 0xd9a5, 0x81e4, 0x81e5, 0x81e6, 0x81e7, 0xd9ac, 0xd9ae, 0x81e8, 0xd9ab, 0xcab9, 0x81e9, 0x81ea, 0x81eb, 0xd9a9, 0xd6b6, 0x81ec, 0x81ed, 0x81ee, 0xb3de, 0xd9a8, 0x81ef, 0xc0fd, 0x81f0, 0xcacc, 0x81f1, 0xd9aa, 0x81f2, 0xd9a7, 0x81f3, 0x81f4, 0xd9b0, 0x81f5, 0x81f6, 0xb6b1, 0x81f7, 0x81f8, 0x81f9, 0xb9a9, 0x81fa, 0xd2c0, 0x81fb, 0x81fc, 0xcfc0, 0x81fd, 0x81fe, 0xc2c2, 0x8240, 0xbdc4, 0xd5ec, 0xb2e0, 0xc7c8, 0xbfeb, 0xd9ad, 0x8241, 0xd9af, 0x8242, 0xceea, 0xbaee, 0x8243, 0x8244, 0x8245, 0x8246, 0x8247, 0xc7d6, 0x8248, 0x8249, 0x824a, 0x824b, 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0xb1e3, 0x8251, 0x8252, 0x8253, 0xb4d9, 0xb6ed, 0xd9b4, 0x8254, 0x8255, 0x8256, 0x8257, 0xbfa1, 0x8258, 0x8259, 0x825a, 0xd9de, 0xc7ce, 0xc0fe, 0xd9b8, 0x825b, 0x825c, 0x825d, 0x825e, 0x825f, 0xcbd7, 0xb7fd, 0x8260, 0xd9b5, 0x8261, 0xd9b7, 0xb1a3, 0xd3e1, 0xd9b9, 0x8262, 0xd0c5, 0x8263, 0xd9b6, 0x8264, 0x8265, 0xd9b1, 0x8266, 0xd9b2, 0xc1a9, 0xd9b3, 0x8267, 0x8268, 0xbcf3, 0xd0de, 0xb8a9, 0x8269, 0xbee3, 0x826a, 0xd9bd, 0x826b, 0x826c, 0x826d, 0x826e, 0xd9ba, 0x826f, 0xb0b3, 0x8270, 0x8271, 0x8272, 0xd9c2, 0x8273, /* 0x5000 .. 0x50ff */ 0x8274, 0x8275, 0x8276, 0x8277, 0x8278, 0x8279, 0x827a, 0x827b, 0x827c, 0x827d, 0x827e, 0x8280, 0xd9c4, 0xb1b6, 0x8281, 0xd9bf, 0x8282, 0x8283, 0xb5b9, 0x8284, 0xbef3, 0x8285, 0x8286, 0x8287, 0xccc8, 0xbaf2, 0xd2d0, 0x8288, 0xd9c3, 0x8289, 0x828a, 0xbde8, 0x828b, 0xb3ab, 0x828c, 0x828d, 0x828e, 0xd9c5, 0xbeeb, 0x828f, 0xd9c6, 0xd9bb, 0xc4df, 0x8290, 0xd9be, 0xd9c1, 0xd9c0, 0x8291, 0x8292, 0x8293, 0x8294, 0x8295, 0x8296, 0x8297, 0x8298, 0x8299, 0x829a, 0x829b, 0xd5ae, 0x829c, 0xd6b5, 0x829d, 0xc7e3, 0x829e, 0x829f, 0x82a0, 0x82a1, 0xd9c8, 0x82a2, 0x82a3, 0x82a4, 0xbcd9, 0xd9ca, 0x82a5, 0x82a6, 0x82a7, 0xd9bc, 0x82a8, 0xd9cb, 0xc6ab, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0xd9c9, 0x82ae, 0x82af, 0x82b0, 0x82b1, 0xd7f6, 0x82b2, 0xcda3, 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0xbda1, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0, 0xd9cc, 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0x82c9, 0xc5bc, 0xcdb5, 0x82ca, 0x82cb, 0x82cc, 0xd9cd, 0x82cd, 0x82ce, 0xd9c7, 0xb3a5, 0xbffe, 0x82cf, 0x82d0, 0x82d1, 0x82d2, 0xb8b5, 0x82d3, 0x82d4, 0xc0fc, 0x82d5, 0x82d6, 0x82d7, 0x82d8, 0xb0f8, 0x82d9, 0x82da, 0x82db, 0x82dc, 0x82dd, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0x82e6, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82eb, 0x82ec, 0x82ed, 0xb4f6, 0x82ee, 0xd9ce, 0x82ef, 0xd9cf, 0xb4a2, 0xd9d0, 0x82f0, 0x82f1, 0xb4df, 0x82f2, 0x82f3, 0x82f4, 0x82f5, 0x82f6, 0xb0c1, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc, 0x82fd, 0xd9d1, 0xc9b5, 0x82fe, 0x8340, 0x8341, 0x8342, 0x8343, 0x8344, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0x834b, 0x834c, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0xcff1, 0x8352, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0xd9d2, 0x8358, 0x8359, 0x835a, 0xc1c5, 0x835b, 0x835c, 0x835d, 0x835e, 0x835f, 0x8360, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0xd9d6, 0xc9ae, 0x8366, 0x8367, 0x8368, 0x8369, 0xd9d5, 0xd9d4, 0xd9d7, 0x836a, 0x836b, 0x836c, 0x836d, 0xcbdb, 0x836e, 0xbda9, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0xc6a7, 0x8374, 0x8375, 0x8376, 0x8377, /* 0x5100 .. 0x51ff */ 0x8378, 0x8379, 0x837a, 0x837b, 0x837c, 0x837d, 0xd9d3, 0xd9d8, 0x837e, 0x8380, 0x8381, 0xd9d9, 0x8382, 0x8383, 0x8384, 0x8385, 0x8386, 0x8387, 0xc8e5, 0x8388, 0x8389, 0x838a, 0x838b, 0x838c, 0x838d, 0x838e, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0x8394, 0x8395, 0xc0dc, 0x8396, 0x8397, 0x8398, 0x8399, 0x839a, 0x839b, 0x839c, 0x839d, 0x839e, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0x83a6, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0x83ad, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b2, 0xb6f9, 0xd8a3, 0xd4ca, 0x83b3, 0xd4aa, 0xd0d6, 0xb3e4, 0xd5d7, 0x83b4, 0xcfc8, 0xb9e2, 0x83b5, 0xbfcb, 0x83b6, 0xc3e2, 0x83b7, 0x83b8, 0x83b9, 0xb6d2, 0x83ba, 0x83bb, 0xcdc3, 0xd9ee, 0xd9f0, 0x83bc, 0x83bd, 0x83be, 0xb5b3, 0x83bf, 0xb6b5, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0xbea4, 0x83c5, 0x83c6, 0xc8eb, 0x83c7, 0x83c8, 0xc8ab, 0x83c9, 0x83ca, 0xb0cb, 0xb9ab, 0xc1f9, 0xd9e2, 0x83cb, 0xc0bc, 0xb9b2, 0x83cc, 0xb9d8, 0xd0cb, 0xb1f8, 0xc6e4, 0xbedf, 0xb5e4, 0xd7c8, 0x83cd, 0xd1f8, 0xbce6, 0xcade, 0x83ce, 0x83cf, 0xbcbd, 0xd9e6, 0xd8e7, 0x83d0, 0x83d1, 0xc4da, 0x83d2, 0x83d3, 0xb8d4, 0xc8bd, 0x83d4, 0x83d5, 0xb2e1, 0xd4d9, 0x83d6, 0x83d7, 0x83d8, 0x83d9, 0xc3b0, 0x83da, 0x83db, 0xc3e1, 0xdaa2, 0xc8df, 0x83dc, 0xd0b4, 0x83dd, 0xbefc, 0xc5a9, 0x83de, 0x83df, 0x83e0, 0xb9da, 0x83e1, 0xdaa3, 0x83e2, 0xd4a9, 0xdaa4, 0x83e3, 0x83e4, 0x83e5, 0x83e6, 0x83e7, 0xd9fb, 0xb6ac, 0x83e8, 0x83e9, 0xb7eb, 0xb1f9, 0xd9fc, 0xb3e5, 0xbef6, 0x83ea, 0xbff6, 0xd2b1, 0xc0e4, 0x83eb, 0x83ec, 0x83ed, 0xb6b3, 0xd9fe, 0xd9fd, 0x83ee, 0x83ef, 0xbebb, 0x83f0, 0x83f1, 0x83f2, 0xc6e0, 0x83f3, 0xd7bc, 0xdaa1, 0x83f4, 0xc1b9, 0x83f5, 0xb5f2, 0xc1e8, 0x83f6, 0x83f7, 0xbcf5, 0x83f8, 0xb4d5, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, 0x8440, 0x8441, 0x8442, 0xc1dd, 0x8443, 0xc4fd, 0x8444, 0x8445, 0xbcb8, 0xb7b2, 0x8446, 0x8447, 0xb7ef, 0x8448, 0x8449, 0x844a, 0x844b, 0x844c, 0x844d, 0xd9ec, 0x844e, 0xc6be, 0x844f, 0xbfad, 0xbbcb, 0x8450, 0x8451, 0xb5ca, 0x8452, 0xdbc9, 0xd0d7, 0x8453, 0xcdb9, 0xb0bc, 0xb3f6, 0xbbf7, 0xdbca, 0xbaaf, 0x8454, 0xd4e4, /* 0x5200 .. 0x52ff */ 0xb5b6, 0xb5f3, 0xd8d6, 0xc8d0, 0x8455, 0x8456, 0xb7d6, 0xc7d0, 0xd8d7, 0x8457, 0xbfaf, 0x8458, 0x8459, 0xdbbb, 0xd8d8, 0x845a, 0x845b, 0xd0cc, 0xbbae, 0x845c, 0x845d, 0x845e, 0xebbe, 0xc1d0, 0xc1f5, 0xd4f2, 0xb8d5, 0xb4b4, 0x845f, 0xb3f5, 0x8460, 0x8461, 0xc9be, 0x8462, 0x8463, 0x8464, 0xc5d0, 0x8465, 0x8466, 0x8467, 0xc5d9, 0xc0fb, 0x8468, 0xb1f0, 0x8469, 0xd8d9, 0xb9ce, 0x846a, 0xb5bd, 0x846b, 0x846c, 0xd8da, 0x846d, 0x846e, 0xd6c6, 0xcba2, 0xc8af, 0xc9b2, 0xb4cc, 0xbfcc, 0x846f, 0xb9f4, 0x8470, 0xd8db, 0xd8dc, 0xb6e7, 0xbcc1, 0xccea, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0xcff7, 0x8477, 0xd8dd, 0xc7b0, 0x8478, 0x8479, 0xb9d0, 0xbda3, 0x847a, 0x847b, 0xccde, 0x847c, 0xc6ca, 0x847d, 0x847e, 0x8480, 0x8481, 0x8482, 0xd8e0, 0x8483, 0xd8de, 0x8484, 0x8485, 0xd8df, 0x8486, 0x8487, 0x8488, 0xb0fe, 0x8489, 0xbee7, 0x848a, 0xcaa3, 0xbcf4, 0x848b, 0x848c, 0x848d, 0x848e, 0xb8b1, 0x848f, 0x8490, 0xb8ee, 0x8491, 0x8492, 0x8493, 0x8494, 0x8495, 0x8496, 0x8497, 0x8498, 0x8499, 0x849a, 0xd8e2, 0x849b, 0xbdcb, 0x849c, 0xd8e4, 0xd8e3, 0x849d, 0x849e, 0x849f, 0x84a0, 0x84a1, 0xc5fc, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, 0xd8e5, 0x84a9, 0x84aa, 0xd8e6, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0, 0x84b1, 0xc1a6, 0x84b2, 0xc8b0, 0xb0ec, 0xb9a6, 0xbcd3, 0xcef1, 0xdbbd, 0xc1d3, 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0xb6af, 0xd6fa, 0xc5ac, 0xbdd9, 0xdbbe, 0xdbbf, 0x84b7, 0x84b8, 0x84b9, 0xc0f8, 0xbea2, 0xc0cd, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0, 0x84c1, 0x84c2, 0x84c3, 0xdbc0, 0xcac6, 0x84c4, 0x84c5, 0x84c6, 0xb2aa, 0x84c7, 0x84c8, 0x84c9, 0xd3c2, 0x84ca, 0xc3e3, 0x84cb, 0xd1ab, 0x84cc, 0x84cd, 0x84ce, 0x84cf, 0xdbc2, 0x84d0, 0xc0d5, 0x84d1, 0x84d2, 0x84d3, 0xdbc3, 0x84d4, 0xbfb1, 0x84d5, 0x84d6, 0x84d7, 0x84d8, 0x84d9, 0x84da, 0xc4bc, 0x84db, 0x84dc, 0x84dd, 0x84de, 0xc7da, 0x84df, 0x84e0, 0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, 0xdbc4, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, 0x84f1, 0xd9e8, 0xc9d7, 0x84f2, 0x84f3, 0x84f4, 0xb9b4, 0xcef0, /* 0x5300 .. 0x53ff */ 0xd4c8, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0xb0fc, 0xb4d2, 0x84f9, 0xd0d9, 0x84fa, 0x84fb, 0x84fc, 0x84fd, 0xd9e9, 0x84fe, 0xdecb, 0xd9eb, 0x8540, 0x8541, 0x8542, 0x8543, 0xd8b0, 0xbbaf, 0xb1b1, 0x8544, 0xb3d7, 0xd8ce, 0x8545, 0x8546, 0xd4d1, 0x8547, 0x8548, 0xbdb3, 0xbfef, 0x8549, 0xcfbb, 0x854a, 0x854b, 0xd8d0, 0x854c, 0x854d, 0x854e, 0xb7cb, 0x854f, 0x8550, 0x8551, 0xd8d1, 0x8552, 0x8553, 0x8554, 0x8555, 0x8556, 0x8557, 0x8558, 0x8559, 0x855a, 0x855b, 0xc6a5, 0xc7f8, 0xd2bd, 0x855c, 0x855d, 0xd8d2, 0xc4e4, 0x855e, 0xcaae, 0x855f, 0xc7a7, 0x8560, 0xd8a6, 0x8561, 0xc9fd, 0xcee7, 0xbbdc, 0xb0eb, 0x8562, 0x8563, 0x8564, 0xbbaa, 0xd0ad, 0x8565, 0xb1b0, 0xd7e4, 0xd7bf, 0x8566, 0xb5a5, 0xc2f4, 0xc4cf, 0x8567, 0x8568, 0xb2a9, 0x8569, 0xb2b7, 0x856a, 0xb1e5, 0xdfb2, 0xd5bc, 0xbfa8, 0xc2ac, 0xd8d5, 0xc2b1, 0x856b, 0xd8d4, 0xced4, 0x856c, 0xdae0, 0x856d, 0xcec0, 0x856e, 0x856f, 0xd8b4, 0xc3ae, 0xd3a1, 0xcea3, 0x8570, 0xbcb4, 0xc8b4, 0xc2d1, 0x8571, 0xbeed, 0xd0b6, 0x8572, 0xdae1, 0x8573, 0x8574, 0x8575, 0x8576, 0xc7e4, 0x8577, 0x8578, 0xb3a7, 0x8579, 0xb6f2, 0xccfc, 0xc0fa, 0x857a, 0x857b, 0xc0f7, 0x857c, 0xd1b9, 0xd1e1, 0xd8c7, 0x857d, 0x857e, 0x8580, 0x8581, 0x8582, 0x8583, 0x8584, 0xb2de, 0x8585, 0x8586, 0xc0e5, 0x8587, 0xbaf1, 0x8588, 0x8589, 0xd8c8, 0x858a, 0xd4ad, 0x858b, 0x858c, 0xcfe1, 0xd8c9, 0x858d, 0xd8ca, 0xcfc3, 0x858e, 0xb3f8, 0xbec7, 0x858f, 0x8590, 0x8591, 0x8592, 0xd8cb, 0x8593, 0x8594, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0xdbcc, 0x859a, 0x859b, 0x859c, 0x859d, 0xc8a5, 0x859e, 0x859f, 0x85a0, 0xcfd8, 0x85a1, 0xc8fe, 0xb2ce, 0x85a2, 0x85a3, 0x85a4, 0x85a5, 0x85a6, 0xd3d6, 0xb2e6, 0xbcb0, 0xd3d1, 0xcbab, 0xb7b4, 0x85a7, 0x85a8, 0x85a9, 0xb7a2, 0x85aa, 0x85ab, 0xcae5, 0x85ac, 0xc8a1, 0xcadc, 0xb1e4, 0xd0f0, 0x85ad, 0xc5d1, 0x85ae, 0x85af, 0x85b0, 0xdbc5, 0xb5fe, 0x85b1, 0x85b2, 0xbfda, 0xb9c5, 0xbee4, 0xc1ed, 0x85b3, 0xdfb6, 0xdfb5, 0xd6bb, 0xbdd0, 0xd5d9, 0xb0c8, 0xb6a3, 0xbfc9, 0xcca8, 0xdfb3, 0xcab7, 0xd3d2, 0x85b4, 0xd8cf, 0xd2b6, 0xbac5, 0xcbbe, 0xccbe, 0x85b5, 0xdfb7, 0xb5f0, 0xdfb4, 0x85b6, 0x85b7, /* 0x5400 .. 0x54ff */ 0x85b8, 0xd3f5, 0x85b9, 0xb3d4, 0xb8f7, 0x85ba, 0xdfba, 0x85bb, 0xbacf, 0xbcaa, 0xb5f5, 0x85bc, 0xcdac, 0xc3fb, 0xbaf3, 0xc0f4, 0xcdc2, 0xcff2, 0xdfb8, 0xcfc5, 0x85bd, 0xc2c0, 0xdfb9, 0xc2f0, 0x85be, 0x85bf, 0x85c0, 0xbefd, 0x85c1, 0xc1df, 0xcdcc, 0xd2f7, 0xb7cd, 0xdfc1, 0x85c2, 0xdfc4, 0x85c3, 0x85c4, 0xb7f1, 0xb0c9, 0xb6d6, 0xb7d4, 0x85c5, 0xbaac, 0xccfd, 0xbfd4, 0xcbb1, 0xc6f4, 0x85c6, 0xd6a8, 0xdfc5, 0x85c7, 0xcee2, 0xb3b3, 0x85c8, 0x85c9, 0xcefc, 0xb4b5, 0x85ca, 0xcec7, 0xbaf0, 0x85cb, 0xcee1, 0x85cc, 0xd1bd, 0x85cd, 0x85ce, 0xdfc0, 0x85cf, 0x85d0, 0xb4f4, 0x85d1, 0xb3ca, 0x85d2, 0xb8e6, 0xdfbb, 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0xc4c5, 0x85d7, 0xdfbc, 0xdfbd, 0xdfbe, 0xc5bb, 0xdfbf, 0xdfc2, 0xd4b1, 0xdfc3, 0x85d8, 0xc7ba, 0xced8, 0x85d9, 0x85da, 0x85db, 0x85dc, 0x85dd, 0xc4d8, 0x85de, 0xdfca, 0x85df, 0xdfcf, 0x85e0, 0xd6dc, 0x85e1, 0x85e2, 0x85e3, 0x85e4, 0x85e5, 0x85e6, 0x85e7, 0x85e8, 0xdfc9, 0xdfda, 0xceb6, 0x85e9, 0xbac7, 0xdfce, 0xdfc8, 0xc5de, 0x85ea, 0x85eb, 0xc9eb, 0xbaf4, 0xc3fc, 0x85ec, 0x85ed, 0xbed7, 0x85ee, 0xdfc6, 0x85ef, 0xdfcd, 0x85f0, 0xc5d8, 0x85f1, 0x85f2, 0x85f3, 0x85f4, 0xd5a6, 0xbacd, 0x85f5, 0xbecc, 0xd3bd, 0xb8c0, 0x85f6, 0xd6e4, 0x85f7, 0xdfc7, 0xb9be, 0xbfa7, 0x85f8, 0x85f9, 0xc1fc, 0xdfcb, 0xdfcc, 0x85fa, 0xdfd0, 0x85fb, 0x85fc, 0x85fd, 0x85fe, 0x8640, 0xdfdb, 0xdfe5, 0x8641, 0xdfd7, 0xdfd6, 0xd7c9, 0xdfe3, 0xdfe4, 0xe5eb, 0xd2a7, 0xdfd2, 0x8642, 0xbfa9, 0x8643, 0xd4db, 0x8644, 0xbfc8, 0xdfd4, 0x8645, 0x8646, 0x8647, 0xcfcc, 0x8648, 0x8649, 0xdfdd, 0x864a, 0xd1ca, 0x864b, 0xdfde, 0xb0a7, 0xc6b7, 0xdfd3, 0x864c, 0xbae5, 0x864d, 0xb6df, 0xcddb, 0xb9fe, 0xd4d5, 0x864e, 0x864f, 0xdfdf, 0xcfec, 0xb0a5, 0xdfe7, 0xdfd1, 0xd1c6, 0xdfd5, 0xdfd8, 0xdfd9, 0xdfdc, 0x8650, 0xbba9, 0x8651, 0xdfe0, 0xdfe1, 0x8652, 0xdfe2, 0xdfe6, 0xdfe8, 0xd3b4, 0x8653, 0x8654, 0x8655, 0x8656, 0x8657, 0xb8e7, 0xc5b6, 0xdfea, 0xc9da, 0xc1a8, 0xc4c4, 0x8658, 0x8659, 0xbfde, 0xcff8, 0x865a, 0x865b, 0x865c, 0xd5dc, 0xdfee, 0x865d, 0x865e, 0x865f, 0x8660, 0x8661, 0x8662, 0xb2b8, 0x8663, 0xbadf, 0xdfec, 0x8664, 0xdbc1, /* 0x5500 .. 0x55ff */ 0x8665, 0xd1e4, 0x8666, 0x8667, 0x8668, 0x8669, 0xcbf4, 0xb4bd, 0x866a, 0xb0a6, 0x866b, 0x866c, 0x866d, 0x866e, 0x866f, 0xdff1, 0xccc6, 0xdff2, 0x8670, 0x8671, 0xdfed, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0xdfe9, 0x8678, 0x8679, 0x867a, 0x867b, 0xdfeb, 0x867c, 0xdfef, 0xdff0, 0xbbbd, 0x867d, 0x867e, 0xdff3, 0x8680, 0x8681, 0xdff4, 0x8682, 0xbba3, 0x8683, 0xcadb, 0xcea8, 0xe0a7, 0xb3aa, 0x8684, 0xe0a6, 0x8685, 0x8686, 0x8687, 0xe0a1, 0x8688, 0x8689, 0x868a, 0x868b, 0xdffe, 0x868c, 0xcdd9, 0xdffc, 0x868d, 0xdffa, 0x868e, 0xbfd0, 0xd7c4, 0x868f, 0xc9cc, 0x8690, 0x8691, 0xdff8, 0xb0a1, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, 0xdffd, 0x8697, 0x8698, 0x8699, 0x869a, 0xdffb, 0xe0a2, 0x869b, 0x869c, 0x869d, 0x869e, 0x869f, 0xe0a8, 0x86a0, 0x86a1, 0x86a2, 0x86a3, 0xb7c8, 0x86a4, 0x86a5, 0xc6a1, 0xc9b6, 0xc0b2, 0xdff5, 0x86a6, 0x86a7, 0xc5be, 0x86a8, 0xd8c4, 0xdff9, 0xc4f6, 0x86a9, 0x86aa, 0x86ab, 0x86ac, 0x86ad, 0x86ae, 0xe0a3, 0xe0a4, 0xe0a5, 0xd0a5, 0x86af, 0x86b0, 0xe0b4, 0xcce4, 0x86b1, 0xe0b1, 0x86b2, 0xbfa6, 0xe0af, 0xceb9, 0xe0ab, 0xc9c6, 0x86b3, 0x86b4, 0xc0ae, 0xe0ae, 0xbaed, 0xbab0, 0xe0a9, 0x86b5, 0x86b6, 0x86b7, 0xdff6, 0x86b8, 0xe0b3, 0x86b9, 0x86ba, 0xe0b8, 0x86bb, 0x86bc, 0x86bd, 0xb4ad, 0xe0b9, 0x86be, 0x86bf, 0xcfb2, 0xbac8, 0x86c0, 0xe0b0, 0x86c1, 0x86c2, 0x86c3, 0x86c4, 0x86c5, 0x86c6, 0x86c7, 0xd0fa, 0x86c8, 0x86c9, 0x86ca, 0x86cb, 0x86cc, 0x86cd, 0x86ce, 0x86cf, 0x86d0, 0xe0ac, 0x86d1, 0xd4fb, 0x86d2, 0xdff7, 0x86d3, 0xc5e7, 0x86d4, 0xe0ad, 0x86d5, 0xd3f7, 0x86d6, 0xe0b6, 0xe0b7, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0xe0c4, 0xd0e1, 0x86dc, 0x86dd, 0x86de, 0xe0bc, 0x86df, 0x86e0, 0xe0c9, 0xe0ca, 0x86e1, 0x86e2, 0x86e3, 0xe0be, 0xe0aa, 0xc9a4, 0xe0c1, 0x86e4, 0xe0b2, 0x86e5, 0x86e6, 0x86e7, 0x86e8, 0x86e9, 0xcac8, 0xe0c3, 0x86ea, 0xe0b5, 0x86eb, 0xcecb, 0x86ec, 0xcbc3, 0xe0cd, 0xe0c6, 0xe0c2, 0x86ed, 0xe0cb, 0x86ee, 0xe0ba, 0xe0bf, 0xe0c0, 0x86ef, 0x86f0, 0xe0c5, 0x86f1, 0x86f2, 0xe0c7, 0xe0c8, 0x86f3, 0xe0cc, 0x86f4, 0xe0bb, 0x86f5, 0x86f6, 0x86f7, 0x86f8, 0x86f9, 0xcbd4, 0xe0d5, 0x86fa, /* 0x5600 .. 0x56ff */ 0xe0d6, 0xe0d2, 0x86fb, 0x86fc, 0x86fd, 0x86fe, 0x8740, 0x8741, 0xe0d0, 0xbcce, 0x8742, 0x8743, 0xe0d1, 0x8744, 0xb8c2, 0xd8c5, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0x874b, 0x874c, 0xd0ea, 0x874d, 0x874e, 0xc2ef, 0x874f, 0x8750, 0xe0cf, 0xe0bd, 0x8751, 0x8752, 0x8753, 0xe0d4, 0xe0d3, 0x8754, 0x8755, 0xe0d7, 0x8756, 0x8757, 0x8758, 0x8759, 0xe0dc, 0xe0d8, 0x875a, 0x875b, 0x875c, 0xd6f6, 0xb3b0, 0x875d, 0xd7ec, 0x875e, 0xcbbb, 0x875f, 0x8760, 0xe0da, 0x8761, 0xcefb, 0x8762, 0x8763, 0x8764, 0xbad9, 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d, 0x876e, 0x876f, 0x8770, 0xe0e1, 0xe0dd, 0xd2ad, 0x8771, 0x8772, 0x8773, 0x8774, 0x8775, 0xe0e2, 0x8776, 0x8777, 0xe0db, 0xe0d9, 0xe0df, 0x8778, 0x8779, 0xe0e0, 0x877a, 0x877b, 0x877c, 0x877d, 0x877e, 0xe0de, 0x8780, 0xe0e4, 0x8781, 0x8782, 0x8783, 0xc6f7, 0xd8ac, 0xd4eb, 0xe0e6, 0xcac9, 0x8784, 0x8785, 0x8786, 0x8787, 0xe0e5, 0x8788, 0x8789, 0x878a, 0x878b, 0xb8c1, 0x878c, 0x878d, 0x878e, 0x878f, 0xe0e7, 0xe0e8, 0x8790, 0x8791, 0x8792, 0x8793, 0x8794, 0x8795, 0x8796, 0x8797, 0xe0e9, 0xe0e3, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0x879d, 0x879e, 0xbabf, 0xcce7, 0x879f, 0x87a0, 0x87a1, 0xe0ea, 0x87a2, 0x87a3, 0x87a4, 0x87a5, 0x87a6, 0x87a7, 0x87a8, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae, 0x87af, 0x87b0, 0xcff9, 0x87b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6, 0x87b7, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0xe0eb, 0x87bc, 0x87bd, 0x87be, 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0xc8c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6, 0xbdc0, 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0x87cb, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d1, 0x87d2, 0x87d3, 0xc4d2, 0x87d4, 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0xe0ec, 0x87dd, 0x87de, 0xe0ed, 0x87df, 0x87e0, 0xc7f4, 0xcbc4, 0x87e1, 0xe0ee, 0xbbd8, 0xd8b6, 0xd2f2, 0xe0ef, 0xcdc5, 0x87e2, 0xb6da, 0x87e3, 0x87e4, 0x87e5, 0x87e6, 0x87e7, 0x87e8, 0xe0f1, 0x87e9, 0xd4b0, 0x87ea, 0x87eb, 0xc0a7, 0xb4d1, 0x87ec, 0x87ed, 0xcea7, 0xe0f0, 0x87ee, 0x87ef, 0x87f0, 0xe0f2, 0xb9cc, 0x87f1, 0x87f2, 0xb9fa, 0xcdbc, 0xe0f3, /* 0x5700 .. 0x57ff */ 0x87f3, 0x87f4, 0x87f5, 0xc6d4, 0xe0f4, 0x87f6, 0xd4b2, 0x87f7, 0xc8a6, 0xe0f6, 0xe0f5, 0x87f8, 0x87f9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe, 0x8840, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0x8846, 0x8847, 0x8848, 0x8849, 0xe0f7, 0x884a, 0x884b, 0xcdc1, 0x884c, 0x884d, 0x884e, 0xcaa5, 0x884f, 0x8850, 0x8851, 0x8852, 0xd4da, 0xdbd7, 0xdbd9, 0x8853, 0xdbd8, 0xb9e7, 0xdbdc, 0xdbdd, 0xb5d8, 0x8854, 0x8855, 0xdbda, 0x8856, 0x8857, 0x8858, 0x8859, 0x885a, 0xdbdb, 0xb3a1, 0xdbdf, 0x885b, 0x885c, 0xbbf8, 0x885d, 0xd6b7, 0x885e, 0xdbe0, 0x885f, 0x8860, 0x8861, 0x8862, 0xbef9, 0x8863, 0x8864, 0xb7bb, 0x8865, 0xdbd0, 0xccae, 0xbfb2, 0xbbb5, 0xd7f8, 0xbfd3, 0x8866, 0x8867, 0x8868, 0x8869, 0x886a, 0xbfe9, 0x886b, 0x886c, 0xbce1, 0xccb3, 0xdbde, 0xb0d3, 0xceeb, 0xb7d8, 0xd7b9, 0xc6c2, 0x886d, 0x886e, 0xc0a4, 0x886f, 0xccb9, 0x8870, 0xdbe7, 0xdbe1, 0xc6ba, 0xdbe3, 0x8871, 0xdbe8, 0x8872, 0xc5f7, 0x8873, 0x8874, 0x8875, 0xdbea, 0x8876, 0x8877, 0xdbe9, 0xbfc0, 0x8878, 0x8879, 0x887a, 0xdbe6, 0xdbe5, 0x887b, 0x887c, 0x887d, 0x887e, 0x8880, 0xb4b9, 0xc0ac, 0xc2a2, 0xdbe2, 0xdbe4, 0x8881, 0x8882, 0x8883, 0x8884, 0xd0cd, 0xdbed, 0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 0xc0dd, 0xdbf2, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890, 0xb6e2, 0x8891, 0x8892, 0x8893, 0x8894, 0xdbf3, 0xdbd2, 0xb9b8, 0xd4ab, 0xdbec, 0x8895, 0xbfd1, 0xdbf0, 0x8896, 0xdbd1, 0x8897, 0xb5e6, 0x8898, 0xdbeb, 0xbfe5, 0x8899, 0x889a, 0x889b, 0xdbee, 0x889c, 0xdbf1, 0x889d, 0x889e, 0x889f, 0xdbf9, 0x88a0, 0x88a1, 0x88a2, 0x88a3, 0x88a4, 0x88a5, 0x88a6, 0x88a7, 0x88a8, 0xb9a1, 0xb0a3, 0x88a9, 0x88aa, 0x88ab, 0x88ac, 0x88ad, 0x88ae, 0x88af, 0xc2f1, 0x88b0, 0x88b1, 0xb3c7, 0xdbef, 0x88b2, 0x88b3, 0xdbf8, 0x88b4, 0xc6d2, 0xdbf4, 0x88b5, 0x88b6, 0xdbf5, 0xdbf7, 0xdbf6, 0x88b7, 0x88b8, 0xdbfe, 0x88b9, 0xd3f2, 0xb2ba, 0x88ba, 0x88bb, 0x88bc, 0xdbfd, 0x88bd, 0x88be, 0x88bf, 0x88c0, 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0xdca4, 0x88c5, 0xdbfb, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0xdbfa, 0x88ca, 0x88cb, 0x88cc, 0xdbfc, 0xc5e0, 0xbbf9, 0x88cd, 0x88ce, 0xdca3, 0x88cf, 0x88d0, /* 0x5800 .. 0x58ff */ 0xdca5, 0x88d1, 0xccc3, 0x88d2, 0x88d3, 0x88d4, 0xb6d1, 0xddc0, 0x88d5, 0x88d6, 0x88d7, 0xdca1, 0x88d8, 0xdca2, 0x88d9, 0x88da, 0x88db, 0xc7b5, 0x88dc, 0x88dd, 0x88de, 0xb6e9, 0x88df, 0x88e0, 0x88e1, 0xdca7, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0xdca6, 0x88e6, 0xdca9, 0xb1a4, 0x88e7, 0x88e8, 0xb5cc, 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0xbfb0, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f2, 0xd1df, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0xb6c2, 0x88f7, 0x88f8, 0x88f9, 0x88fa, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0x8940, 0x8941, 0x8942, 0x8943, 0x8944, 0x8945, 0xdca8, 0x8946, 0x8947, 0x8948, 0x8949, 0x894a, 0x894b, 0x894c, 0xcbfa, 0xebf3, 0x894d, 0x894e, 0x894f, 0xcbdc, 0x8950, 0x8951, 0xcbfe, 0x8952, 0x8953, 0x8954, 0xccc1, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0xc8fb, 0x895a, 0x895b, 0x895c, 0x895d, 0x895e, 0x895f, 0xdcaa, 0x8960, 0x8961, 0x8962, 0x8963, 0x8964, 0xccee, 0xdcab, 0x8965, 0x8966, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0xdbd3, 0x8976, 0xdcaf, 0xdcac, 0x8977, 0xbeb3, 0x8978, 0xcafb, 0x8979, 0x897a, 0x897b, 0xdcad, 0x897c, 0x897d, 0x897e, 0x8980, 0x8981, 0x8982, 0x8983, 0x8984, 0xc9ca, 0xc4b9, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0xc7bd, 0xdcae, 0x898a, 0x898b, 0x898c, 0xd4f6, 0xd0e6, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, 0xc4ab, 0xb6d5, 0x8995, 0x8996, 0x8997, 0x8998, 0x8999, 0x899a, 0x899b, 0x899c, 0x899d, 0x899e, 0x899f, 0x89a0, 0x89a1, 0x89a2, 0x89a3, 0x89a4, 0x89a5, 0x89a6, 0xdbd4, 0x89a7, 0x89a8, 0x89a9, 0x89aa, 0xb1da, 0x89ab, 0x89ac, 0x89ad, 0xdbd5, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0xdbd6, 0x89b9, 0x89ba, 0x89bb, 0xbabe, 0x89bc, 0x89bd, 0x89be, 0x89bf, 0x89c0, 0x89c1, 0x89c2, 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0xc8c0, 0x89ca, 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0xcabf, 0xc8c9, 0x89d0, 0xd7b3, 0x89d1, 0xc9f9, 0x89d2, 0x89d3, 0xbfc7, 0x89d4, 0x89d5, 0xbaf8, 0x89d6, 0x89d7, 0xd2bc, 0x89d8, 0x89d9, 0x89da, 0x89db, 0x89dc, 0x89dd, /* 0x5900 .. 0x59ff */ 0x89de, 0x89df, 0xe2ba, 0x89e0, 0xb4a6, 0x89e1, 0x89e2, 0xb1b8, 0x89e3, 0x89e4, 0x89e5, 0x89e6, 0x89e7, 0xb8b4, 0x89e8, 0xcfc4, 0x89e9, 0x89ea, 0x89eb, 0x89ec, 0xd9e7, 0xcfa6, 0xcde2, 0x89ed, 0x89ee, 0xd9ed, 0xb6e0, 0x89ef, 0xd2b9, 0x89f0, 0x89f1, 0xb9bb, 0x89f2, 0x89f3, 0x89f4, 0x89f5, 0xe2b9, 0xe2b7, 0x89f6, 0xb4f3, 0x89f7, 0xccec, 0xccab, 0xb7f2, 0x89f8, 0xd8b2, 0xd1eb, 0xbabb, 0x89f9, 0xcaa7, 0x89fa, 0x89fb, 0xcdb7, 0x89fc, 0x89fd, 0xd2c4, 0xbfe4, 0xbcd0, 0xb6e1, 0x89fe, 0xdec5, 0x8a40, 0x8a41, 0x8a42, 0x8a43, 0xdec6, 0xdbbc, 0x8a44, 0xd1d9, 0x8a45, 0x8a46, 0xc6e6, 0xc4ce, 0xb7ee, 0x8a47, 0xb7dc, 0x8a48, 0x8a49, 0xbffc, 0xd7e0, 0x8a4a, 0xc6f5, 0x8a4b, 0x8a4c, 0xb1bc, 0xdec8, 0xbdb1, 0xccd7, 0xdeca, 0x8a4d, 0xdec9, 0x8a4e, 0x8a4f, 0x8a50, 0x8a51, 0x8a52, 0xb5ec, 0x8a53, 0xc9dd, 0x8a54, 0x8a55, 0xb0c2, 0x8a56, 0x8a57, 0x8a58, 0x8a59, 0x8a5a, 0x8a5b, 0x8a5c, 0x8a5d, 0x8a5e, 0x8a5f, 0x8a60, 0x8a61, 0x8a62, 0xc5ae, 0xc5ab, 0x8a63, 0xc4cc, 0x8a64, 0xbce9, 0xcbfd, 0x8a65, 0x8a66, 0x8a67, 0xbac3, 0x8a68, 0x8a69, 0x8a6a, 0xe5f9, 0xc8e7, 0xe5fa, 0xcdfd, 0x8a6b, 0xd7b1, 0xb8be, 0xc2e8, 0x8a6c, 0xc8d1, 0x8a6d, 0x8a6e, 0xe5fb, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0xb6ca, 0xbccb, 0x8a73, 0x8a74, 0xd1fd, 0xe6a1, 0x8a75, 0xc3ee, 0x8a76, 0x8a77, 0x8a78, 0x8a79, 0xe6a4, 0x8a7a, 0x8a7b, 0x8a7c, 0x8a7d, 0xe5fe, 0xe6a5, 0xcdd7, 0x8a7e, 0x8a80, 0xb7c1, 0xe5fc, 0xe5fd, 0xe6a3, 0x8a81, 0x8a82, 0xc4dd, 0xe6a8, 0x8a83, 0x8a84, 0xe6a7, 0x8a85, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0xc3c3, 0x8a8b, 0xc6de, 0x8a8c, 0x8a8d, 0xe6aa, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, 0xc4b7, 0x8a95, 0x8a96, 0x8a97, 0xe6a2, 0xcabc, 0x8a98, 0x8a99, 0x8a9a, 0x8a9b, 0xbde3, 0xb9c3, 0xe6a6, 0xd0d5, 0xceaf, 0x8a9c, 0x8a9d, 0xe6a9, 0xe6b0, 0x8a9e, 0xd2a6, 0x8a9f, 0xbdaa, 0xe6ad, 0x8aa0, 0x8aa1, 0x8aa2, 0x8aa3, 0x8aa4, 0xe6af, 0x8aa5, 0xc0d1, 0x8aa6, 0x8aa7, 0xd2cc, 0x8aa8, 0x8aa9, 0x8aaa, 0xbca7, 0x8aab, 0x8aac, 0x8aad, 0x8aae, 0x8aaf, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, 0x8ab6, 0xe6b1, 0x8ab7, 0xd2f6, 0x8ab8, 0x8ab9, 0x8aba, 0xd7cb, /* 0x5a00 .. 0x5aff */ 0x8abb, 0xcdfe, 0x8abc, 0xcdde, 0xc2a6, 0xe6ab, 0xe6ac, 0xbdbf, 0xe6ae, 0xe6b3, 0x8abd, 0x8abe, 0xe6b2, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0xe6b6, 0x8ac3, 0xe6b8, 0x8ac4, 0x8ac5, 0x8ac6, 0x8ac7, 0xc4ef, 0x8ac8, 0x8ac9, 0x8aca, 0xc4c8, 0x8acb, 0x8acc, 0xbeea, 0xc9ef, 0x8acd, 0x8ace, 0xe6b7, 0x8acf, 0xb6f0, 0x8ad0, 0x8ad1, 0x8ad2, 0xc3e4, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0x8ad7, 0x8ad8, 0x8ad9, 0xd3e9, 0xe6b4, 0x8ada, 0xe6b5, 0x8adb, 0xc8a2, 0x8adc, 0x8add, 0x8ade, 0x8adf, 0x8ae0, 0xe6bd, 0x8ae1, 0x8ae2, 0x8ae3, 0xe6b9, 0x8ae4, 0x8ae5, 0x8ae6, 0x8ae7, 0x8ae8, 0xc6c5, 0x8ae9, 0x8aea, 0xcdf1, 0xe6bb, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0xe6bc, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0xbbe9, 0x8af9, 0x8afa, 0x8afb, 0x8afc, 0x8afd, 0x8afe, 0x8b40, 0xe6be, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0xe6ba, 0x8b45, 0x8b46, 0xc0b7, 0x8b47, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0x8b4d, 0x8b4e, 0x8b4f, 0xd3a4, 0xe6bf, 0xc9f4, 0xe6c3, 0x8b50, 0x8b51, 0xe6c4, 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0xd0f6, 0x8b56, 0x8b57, 0x8b58, 0x8b59, 0x8b5a, 0x8b5b, 0x8b5c, 0x8b5d, 0x8b5e, 0x8b5f, 0x8b60, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0x8b65, 0x8b66, 0x8b67, 0xc3bd, 0x8b68, 0x8b69, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, 0x8b6e, 0xc3c4, 0xe6c2, 0x8b6f, 0x8b70, 0x8b71, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b7b, 0x8b7c, 0xe6c1, 0x8b7d, 0x8b7e, 0x8b80, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0xe6c7, 0xcfb1, 0x8b85, 0xebf4, 0x8b86, 0x8b87, 0xe6ca, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0xe6c5, 0x8b8d, 0x8b8e, 0xbcde, 0xc9a9, 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0xbcb5, 0x8b95, 0x8b96, 0xcfd3, 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0xe6c8, 0x8b9c, 0xe6c9, 0x8b9d, 0xe6ce, 0x8b9e, 0xe6d0, 0x8b9f, 0x8ba0, 0x8ba1, 0xe6d1, 0x8ba2, 0x8ba3, 0x8ba4, 0xe6cb, 0xb5d5, 0x8ba5, 0xe6cc, 0x8ba6, 0x8ba7, 0xe6cf, 0x8ba8, 0x8ba9, 0xc4db, 0x8baa, 0xe6c6, 0x8bab, 0x8bac, 0x8bad, 0x8bae, 0x8baf, 0xe6cd, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0x8bb6, 0x8bb7, 0x8bb8, 0x8bb9, 0x8bba, 0x8bbb, 0x8bbc, 0x8bbd, /* 0x5b00 .. 0x5bff */ 0x8bbe, 0x8bbf, 0x8bc0, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0x8bc6, 0xe6d2, 0x8bc7, 0x8bc8, 0x8bc9, 0x8bca, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0x8bd2, 0xe6d4, 0xe6d3, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0x8bec, 0xe6d5, 0x8bed, 0xd9f8, 0x8bee, 0x8bef, 0xe6d6, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, 0xe6d7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, 0x8c40, 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, 0xd7d3, 0xe6dd, 0x8c48, 0xe6de, 0xbfd7, 0xd4d0, 0x8c49, 0xd7d6, 0xb4e6, 0xcbef, 0xe6da, 0xd8c3, 0xd7ce, 0xd0a2, 0x8c4a, 0xc3cf, 0x8c4b, 0x8c4c, 0xe6df, 0xbcbe, 0xb9c2, 0xe6db, 0xd1a7, 0x8c4d, 0x8c4e, 0xbaa2, 0xc2cf, 0x8c4f, 0xd8ab, 0x8c50, 0x8c51, 0x8c52, 0xcaeb, 0xe5ee, 0x8c53, 0xe6dc, 0x8c54, 0xb7f5, 0x8c55, 0x8c56, 0x8c57, 0x8c58, 0xc8e6, 0x8c59, 0x8c5a, 0xc4f5, 0x8c5b, 0x8c5c, 0xe5b2, 0xc4fe, 0x8c5d, 0xcbfc, 0xe5b3, 0xd5ac, 0x8c5e, 0xd3ee, 0xcad8, 0xb0b2, 0x8c5f, 0xcbce, 0xcdea, 0x8c60, 0x8c61, 0xbaea, 0x8c62, 0x8c63, 0x8c64, 0xe5b5, 0x8c65, 0xe5b4, 0x8c66, 0xd7da, 0xb9d9, 0xd6e6, 0xb6a8, 0xcdf0, 0xd2cb, 0xb1a6, 0xcab5, 0x8c67, 0xb3e8, 0xc9f3, 0xbfcd, 0xd0fb, 0xcad2, 0xe5b6, 0xbbc2, 0x8c68, 0x8c69, 0x8c6a, 0xcfdc, 0xb9ac, 0x8c6b, 0x8c6c, 0x8c6d, 0x8c6e, 0xd4d7, 0x8c6f, 0x8c70, 0xbaa6, 0xd1e7, 0xcffc, 0xbcd2, 0x8c71, 0xe5b7, 0xc8dd, 0x8c72, 0x8c73, 0x8c74, 0xbfed, 0xb1f6, 0xcbde, 0x8c75, 0x8c76, 0xbcc5, 0x8c77, 0xbcc4, 0xd2fa, 0xc3dc, 0xbfdc, 0x8c78, 0x8c79, 0x8c7a, 0x8c7b, 0xb8bb, 0x8c7c, 0x8c7d, 0x8c7e, 0xc3c2, 0x8c80, 0xbaae, 0xd4a2, 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88, 0x8c89, 0xc7de, 0xc4af, 0xb2ec, 0x8c8a, 0xb9d1, 0x8c8b, 0x8c8c, 0xe5bb, 0xc1c8, 0x8c8d, 0x8c8e, 0xd5af, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, 0xe5bc, 0x8c94, 0xe5be, 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, 0x8c9a, 0x8c9b, 0xb4e7, 0xb6d4, 0xcbc2, 0xd1b0, 0xb5bc, 0x8c9c, 0x8c9d, 0xcad9, /* 0x5c00 .. 0x5cff */ 0x8c9e, 0xb7e2, 0x8c9f, 0x8ca0, 0xc9e4, 0x8ca1, 0xbdab, 0x8ca2, 0x8ca3, 0xcebe, 0xd7f0, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0xd0a1, 0x8ca8, 0xc9d9, 0x8ca9, 0x8caa, 0xb6fb, 0xe6d8, 0xbce2, 0x8cab, 0xb3be, 0x8cac, 0xc9d0, 0x8cad, 0xe6d9, 0xb3a2, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0xdecc, 0x8cb2, 0xd3c8, 0xdecd, 0x8cb3, 0xd2a2, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0xdece, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0xbecd, 0x8cbc, 0x8cbd, 0xdecf, 0x8cbe, 0x8cbf, 0x8cc0, 0xcaac, 0xd2fc, 0xb3df, 0xe5ea, 0xc4e1, 0xbea1, 0xceb2, 0xc4f2, 0xbed6, 0xc6a8, 0xb2e3, 0x8cc1, 0x8cc2, 0xbed3, 0x8cc3, 0x8cc4, 0xc7fc, 0xcceb, 0xbdec, 0xcedd, 0x8cc5, 0x8cc6, 0xcaba, 0xc6c1, 0xe5ec, 0xd0bc, 0x8cc7, 0x8cc8, 0x8cc9, 0xd5b9, 0x8cca, 0x8ccb, 0x8ccc, 0xe5ed, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0xcaf4, 0x8cd1, 0xcdc0, 0xc2c5, 0x8cd2, 0xe5ef, 0x8cd3, 0xc2c4, 0xe5f0, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0xe5f8, 0xcdcd, 0x8cdb, 0xc9bd, 0x8cdc, 0x8cdd, 0x8cde, 0x8cdf, 0x8ce0, 0x8ce1, 0x8ce2, 0xd2d9, 0xe1a8, 0x8ce3, 0x8ce4, 0x8ce5, 0x8ce6, 0xd3ec, 0x8ce7, 0xcbea, 0xc6f1, 0x8ce8, 0x8ce9, 0x8cea, 0x8ceb, 0x8cec, 0xe1ac, 0x8ced, 0x8cee, 0x8cef, 0xe1a7, 0xe1a9, 0x8cf0, 0x8cf1, 0xe1aa, 0xe1af, 0x8cf2, 0x8cf3, 0xb2ed, 0x8cf4, 0xe1ab, 0xb8da, 0xe1ad, 0xe1ae, 0xe1b0, 0xb5ba, 0xe1b1, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0xe1b3, 0xe1b8, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0xd1d2, 0x8d40, 0xe1b6, 0xe1b5, 0xc1eb, 0x8d41, 0x8d42, 0x8d43, 0xe1b7, 0x8d44, 0xd4c0, 0x8d45, 0xe1b2, 0x8d46, 0xe1ba, 0xb0b6, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0xe1b4, 0x8d4b, 0xbff9, 0x8d4c, 0xe1b9, 0x8d4d, 0x8d4e, 0xe1bb, 0x8d4f, 0x8d50, 0x8d51, 0x8d52, 0x8d53, 0x8d54, 0xe1be, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, 0x8d5a, 0xe1bc, 0x8d5b, 0x8d5c, 0x8d5d, 0x8d5e, 0x8d5f, 0x8d60, 0xd6c5, 0x8d61, 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0xcfbf, 0x8d68, 0x8d69, 0xe1bd, 0xe1bf, 0xc2cd, 0x8d6a, 0xb6eb, 0x8d6b, 0xd3f8, 0x8d6c, 0x8d6d, 0xc7cd, 0x8d6e, 0x8d6f, 0xb7e5, 0x8d70, 0x8d71, 0x8d72, 0x8d73, 0x8d74, 0x8d75, 0x8d76, 0x8d77, 0x8d78, 0x8d79, 0xbefe, 0x8d7a, 0x8d7b, 0x8d7c, 0x8d7d, /* 0x5d00 .. 0x5dff */ 0x8d7e, 0x8d80, 0xe1c0, 0xe1c1, 0x8d81, 0x8d82, 0xe1c7, 0xb3e7, 0x8d83, 0x8d84, 0x8d85, 0x8d86, 0x8d87, 0x8d88, 0xc6e9, 0x8d89, 0x8d8a, 0x8d8b, 0x8d8c, 0x8d8d, 0xb4de, 0x8d8e, 0xd1c2, 0x8d8f, 0x8d90, 0x8d91, 0x8d92, 0xe1c8, 0x8d93, 0x8d94, 0xe1c6, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0xe1c5, 0x8d9a, 0xe1c3, 0xe1c2, 0x8d9b, 0xb1c0, 0x8d9c, 0x8d9d, 0x8d9e, 0xd5b8, 0xe1c4, 0x8d9f, 0x8da0, 0x8da1, 0x8da2, 0x8da3, 0xe1cb, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0x8dab, 0xe1cc, 0xe1ca, 0x8dac, 0x8dad, 0x8dae, 0x8daf, 0x8db0, 0x8db1, 0x8db2, 0x8db3, 0xeffa, 0x8db4, 0x8db5, 0xe1d3, 0xe1d2, 0xc7b6, 0x8db6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0x8dbf, 0x8dc0, 0xe1c9, 0x8dc1, 0x8dc2, 0xe1ce, 0x8dc3, 0xe1d0, 0x8dc4, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcb, 0x8dcc, 0x8dcd, 0x8dce, 0xe1d4, 0x8dcf, 0xe1d1, 0xe1cd, 0x8dd0, 0x8dd1, 0xe1cf, 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, 0xe1d5, 0x8dd6, 0x8dd7, 0x8dd8, 0x8dd9, 0x8dda, 0x8ddb, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2, 0xe1d6, 0x8de3, 0x8de4, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, 0x8deb, 0x8dec, 0x8ded, 0x8dee, 0x8def, 0x8df0, 0x8df1, 0x8df2, 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0x8df7, 0x8df8, 0xe1d7, 0x8df9, 0x8dfa, 0x8dfb, 0xe1d8, 0x8dfc, 0x8dfd, 0x8dfe, 0x8e40, 0x8e41, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0x8e49, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0x8e50, 0x8e51, 0x8e52, 0x8e53, 0x8e54, 0x8e55, 0xe1da, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e5b, 0x8e5c, 0x8e5d, 0x8e5e, 0x8e5f, 0x8e60, 0x8e61, 0x8e62, 0xe1db, 0x8e63, 0x8e64, 0x8e65, 0x8e66, 0x8e67, 0x8e68, 0x8e69, 0xcea1, 0x8e6a, 0x8e6b, 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, 0x8e74, 0x8e75, 0x8e76, 0xe7dd, 0x8e77, 0xb4a8, 0xd6dd, 0x8e78, 0x8e79, 0xd1b2, 0xb3b2, 0x8e7a, 0x8e7b, 0xb9a4, 0xd7f3, 0xc7c9, 0xbede, 0xb9ae, 0x8e7c, 0xced7, 0x8e7d, 0x8e7e, 0xb2ee, 0xdbcf, 0x8e80, 0xbcba, 0xd2d1, 0xcbc8, 0xb0cd, 0x8e81, 0x8e82, 0xcfef, 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0xd9e3, 0xbded, 0x8e88, /* 0x5e00 .. 0x5eff */ 0x8e89, 0xb1d2, 0xcad0, 0xb2bc, 0x8e8a, 0xcba7, 0xb7ab, 0x8e8b, 0xcaa6, 0x8e8c, 0x8e8d, 0x8e8e, 0xcfa3, 0x8e8f, 0x8e90, 0xe0f8, 0xd5ca, 0xe0fb, 0x8e91, 0x8e92, 0xe0fa, 0xc5c1, 0xccfb, 0x8e93, 0xc1b1, 0xe0f9, 0xd6e3, 0xb2af, 0xd6c4, 0xb5db, 0x8e94, 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0x8e9b, 0xb4f8, 0xd6a1, 0x8e9c, 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0xcfaf, 0xb0ef, 0x8ea1, 0x8ea2, 0xe0fc, 0x8ea3, 0x8ea4, 0x8ea5, 0x8ea6, 0x8ea7, 0xe1a1, 0xb3a3, 0x8ea8, 0x8ea9, 0xe0fd, 0xe0fe, 0xc3b1, 0x8eaa, 0x8eab, 0x8eac, 0x8ead, 0xc3dd, 0x8eae, 0xe1a2, 0xb7f9, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0xbbcf, 0x8eb5, 0x8eb6, 0x8eb7, 0x8eb8, 0x8eb9, 0x8eba, 0x8ebb, 0xe1a3, 0xc4bb, 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0xe1a4, 0x8ec1, 0x8ec2, 0xe1a5, 0x8ec3, 0x8ec4, 0xe1a6, 0xb4b1, 0x8ec5, 0x8ec6, 0x8ec7, 0x8ec8, 0x8ec9, 0x8eca, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0xb8c9, 0xc6bd, 0xc4ea, 0x8ed4, 0xb2a2, 0x8ed5, 0xd0d2, 0x8ed6, 0xe7db, 0xbbc3, 0xd3d7, 0xd3c4, 0x8ed7, 0xb9e3, 0xe2cf, 0x8ed8, 0x8ed9, 0x8eda, 0xd7af, 0x8edb, 0xc7ec, 0xb1d3, 0x8edc, 0x8edd, 0xb4b2, 0xe2d1, 0x8ede, 0x8edf, 0x8ee0, 0xd0f2, 0xc2ae, 0xe2d0, 0x8ee1, 0xbfe2, 0xd3a6, 0xb5d7, 0xe2d2, 0xb5ea, 0x8ee2, 0xc3ed, 0xb8fd, 0x8ee3, 0xb8ae, 0x8ee4, 0xc5d3, 0xb7cf, 0xe2d4, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0xe2d3, 0xb6c8, 0xd7f9, 0x8ee9, 0x8eea, 0x8eeb, 0x8eec, 0x8eed, 0xcda5, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0xe2d8, 0x8ef3, 0xe2d6, 0xcafc, 0xbfb5, 0xd3b9, 0xe2d5, 0x8ef4, 0x8ef5, 0x8ef6, 0x8ef7, 0xe2d7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8f40, 0x8f41, 0x8f42, 0xc1ae, 0xc0c8, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0xe2db, 0xe2da, 0xc0aa, 0x8f49, 0x8f4a, 0xc1ce, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0xe2dc, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0xe2dd, 0x8f5b, 0xe2de, 0x8f5c, 0x8f5d, 0x8f5e, 0x8f5f, 0x8f60, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0xdbc8, 0x8f65, 0xd1d3, 0xcda2, 0x8f66, 0x8f67, 0xbda8, 0x8f68, 0x8f69, 0x8f6a, 0xdec3, 0xd8a5, /* 0x5f00 .. 0x5fff */ 0xbfaa, 0xdbcd, 0xd2ec, 0xc6fa, 0xc5aa, 0x8f6b, 0x8f6c, 0x8f6d, 0xdec4, 0x8f6e, 0xb1d7, 0xdfae, 0x8f6f, 0x8f70, 0x8f71, 0xcabd, 0x8f72, 0xdfb1, 0x8f73, 0xb9ad, 0x8f74, 0xd2fd, 0x8f75, 0xb8a5, 0xbaeb, 0x8f76, 0x8f77, 0xb3da, 0x8f78, 0x8f79, 0x8f7a, 0xb5dc, 0xd5c5, 0x8f7b, 0x8f7c, 0x8f7d, 0x8f7e, 0xc3d6, 0xcfd2, 0xbba1, 0x8f80, 0xe5f3, 0xe5f2, 0x8f81, 0x8f82, 0xe5f4, 0x8f83, 0xcde4, 0x8f84, 0xc8f5, 0x8f85, 0x8f86, 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0x8f8b, 0xb5af, 0xc7bf, 0x8f8c, 0xe5f6, 0x8f8d, 0x8f8e, 0x8f8f, 0xecb0, 0x8f90, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96, 0x8f97, 0x8f98, 0x8f99, 0x8f9a, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, 0xe5e6, 0x8f9f, 0xb9e9, 0xb5b1, 0x8fa0, 0xc2bc, 0xe5e8, 0xe5e7, 0xe5e9, 0x8fa1, 0x8fa2, 0x8fa3, 0x8fa4, 0xd2cd, 0x8fa5, 0x8fa6, 0x8fa7, 0xe1ea, 0xd0ce, 0x8fa8, 0xcdae, 0x8fa9, 0xd1e5, 0x8faa, 0x8fab, 0xb2ca, 0xb1eb, 0x8fac, 0xb1f2, 0xc5ed, 0x8fad, 0x8fae, 0xd5c3, 0xd3b0, 0x8faf, 0xe1dc, 0x8fb0, 0x8fb1, 0x8fb2, 0xe1dd, 0x8fb3, 0xd2db, 0x8fb4, 0xb3b9, 0xb1cb, 0x8fb5, 0x8fb6, 0x8fb7, 0xcdf9, 0xd5f7, 0xe1de, 0x8fb8, 0xbeb6, 0xb4fd, 0x8fb9, 0xe1df, 0xbadc, 0xe1e0, 0xbbb2, 0xc2c9, 0xe1e1, 0x8fba, 0x8fbb, 0x8fbc, 0xd0ec, 0x8fbd, 0xcdbd, 0x8fbe, 0x8fbf, 0xe1e2, 0x8fc0, 0xb5c3, 0xc5c7, 0xe1e3, 0x8fc1, 0x8fc2, 0xe1e4, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6, 0xd3f9, 0x8fc7, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0xe1e5, 0x8fcd, 0xd1ad, 0x8fce, 0x8fcf, 0xe1e6, 0xcea2, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0xe1e7, 0x8fd6, 0xb5c2, 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0xe1e8, 0xbbd5, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde, 0x8fdf, 0xd0c4, 0xe2e0, 0xb1d8, 0xd2e4, 0x8fe0, 0x8fe1, 0xe2e1, 0x8fe2, 0x8fe3, 0xbcc9, 0xc8cc, 0x8fe4, 0xe2e3, 0xecfe, 0xecfd, 0xdfaf, 0x8fe5, 0x8fe6, 0x8fe7, 0xe2e2, 0xd6be, 0xcdfc, 0xc3a6, 0x8fe8, 0x8fe9, 0x8fea, 0xe3c3, 0x8feb, 0x8fec, 0xd6d2, 0xe2e7, 0x8fed, 0x8fee, 0xe2e8, 0x8fef, 0x8ff0, 0xd3c7, 0x8ff1, 0x8ff2, 0xe2ec, 0xbfec, 0x8ff3, 0xe2ed, 0xe2e5, 0x8ff4, 0x8ff5, 0xb3c0, 0x8ff6, 0x8ff7, 0x8ff8, 0xc4ee, 0x8ff9, 0x8ffa, 0xe2ee, 0x8ffb, 0x8ffc, 0xd0c3, 0x8ffd, 0xbaf6, 0xe2e9, 0xb7de, /* 0x6000 .. 0x60ff */ 0xbbb3, 0xccac, 0xcbcb, 0xe2e4, 0xe2e6, 0xe2ea, 0xe2eb, 0x8ffe, 0x9040, 0x9041, 0xe2f7, 0x9042, 0x9043, 0xe2f4, 0xd4f5, 0xe2f3, 0x9044, 0x9045, 0xc5ad, 0x9046, 0xd5fa, 0xc5c2, 0xb2c0, 0x9047, 0x9048, 0xe2ef, 0x9049, 0xe2f2, 0xc1af, 0xcbbc, 0x904a, 0x904b, 0xb5a1, 0xe2f9, 0x904c, 0x904d, 0x904e, 0xbcb1, 0xe2f1, 0xd0d4, 0xd4b9, 0xe2f5, 0xb9d6, 0xe2f6, 0x904f, 0x9050, 0x9051, 0xc7d3, 0x9052, 0x9053, 0x9054, 0x9055, 0x9056, 0xe2f0, 0x9057, 0x9058, 0x9059, 0x905a, 0x905b, 0xd7dc, 0xeda1, 0x905c, 0x905d, 0xe2f8, 0x905e, 0xeda5, 0xe2fe, 0xcad1, 0x905f, 0x9060, 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0xc1b5, 0x9066, 0xbbd0, 0x9067, 0x9068, 0xbfd6, 0x9069, 0xbae3, 0x906a, 0x906b, 0xcba1, 0x906c, 0x906d, 0x906e, 0xeda6, 0xeda3, 0x906f, 0x9070, 0xeda2, 0x9071, 0x9072, 0x9073, 0x9074, 0xbbd6, 0xeda7, 0xd0f4, 0x9075, 0x9076, 0xeda4, 0xbade, 0xb6f7, 0xe3a1, 0xb6b2, 0xccf1, 0xb9a7, 0x9077, 0xcfa2, 0xc7a1, 0x9078, 0x9079, 0xbfd2, 0x907a, 0x907b, 0xb6f1, 0x907c, 0xe2fa, 0xe2fb, 0xe2fd, 0xe2fc, 0xc4d5, 0xe3a2, 0x907d, 0xd3c1, 0x907e, 0x9080, 0x9081, 0xe3a7, 0xc7c4, 0x9082, 0x9083, 0x9084, 0x9085, 0xcfa4, 0x9086, 0x9087, 0xe3a9, 0xbab7, 0x9088, 0x9089, 0x908a, 0x908b, 0xe3a8, 0x908c, 0xbbda, 0x908d, 0xe3a3, 0x908e, 0x908f, 0x9090, 0xe3a4, 0xe3aa, 0x9091, 0xe3a6, 0x9092, 0xcef2, 0xd3c6, 0x9093, 0x9094, 0xbbbc, 0x9095, 0x9096, 0xd4c3, 0x9097, 0xc4fa, 0x9098, 0x9099, 0xeda8, 0xd0fc, 0xe3a5, 0x909a, 0xc3f5, 0x909b, 0xe3ad, 0xb1af, 0x909c, 0xe3b2, 0x909d, 0x909e, 0x909f, 0xbcc2, 0x90a0, 0x90a1, 0xe3ac, 0xb5bf, 0x90a2, 0x90a3, 0x90a4, 0x90a5, 0x90a6, 0x90a7, 0x90a8, 0x90a9, 0xc7e9, 0xe3b0, 0x90aa, 0x90ab, 0x90ac, 0xbeaa, 0xcdef, 0x90ad, 0x90ae, 0x90af, 0x90b0, 0x90b1, 0xbbf3, 0x90b2, 0x90b3, 0x90b4, 0xcce8, 0x90b5, 0x90b6, 0xe3af, 0x90b7, 0xe3b1, 0x90b8, 0xcfa7, 0xe3ae, 0x90b9, 0xcea9, 0xbbdd, 0x90ba, 0x90bb, 0x90bc, 0x90bd, 0x90be, 0xb5eb, 0xbee5, 0xb2d2, 0xb3cd, 0x90bf, 0xb1b9, 0xe3ab, 0xb2d1, 0xb5ac, 0xb9df, 0xb6e8, 0x90c0, 0x90c1, 0xcfeb, 0xe3b7, 0x90c2, 0xbbcc, 0x90c3, 0x90c4, 0xc8c7, 0xd0ca, 0x90c5, 0x90c6, 0x90c7, 0x90c8, 0x90c9, /* 0x6100 .. 0x61ff */ 0xe3b8, 0xb3ee, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0xeda9, 0x90ce, 0xd3fa, 0xd3e4, 0x90cf, 0x90d0, 0x90d1, 0xedaa, 0xe3b9, 0xd2e2, 0x90d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0xe3b5, 0x90d7, 0x90d8, 0x90d9, 0x90da, 0xd3de, 0x90db, 0x90dc, 0x90dd, 0x90de, 0xb8d0, 0xe3b3, 0x90df, 0x90e0, 0xe3b6, 0xb7df, 0x90e1, 0xe3b4, 0xc0a2, 0x90e2, 0x90e3, 0x90e4, 0xe3ba, 0x90e5, 0x90e6, 0x90e7, 0x90e8, 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0x90f5, 0x90f6, 0x90f7, 0xd4b8, 0x90f8, 0x90f9, 0x90fa, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9140, 0xb4c8, 0x9141, 0xe3bb, 0x9142, 0xbbc5, 0x9143, 0xc9f7, 0x9144, 0x9145, 0xc9e5, 0x9146, 0x9147, 0x9148, 0xc4bd, 0x9149, 0x914a, 0x914b, 0x914c, 0x914d, 0x914e, 0x914f, 0xedab, 0x9150, 0x9151, 0x9152, 0x9153, 0xc2fd, 0x9154, 0x9155, 0x9156, 0x9157, 0xbbdb, 0xbfae, 0x9158, 0x9159, 0x915a, 0x915b, 0x915c, 0x915d, 0x915e, 0xcebf, 0x915f, 0x9160, 0x9161, 0x9162, 0xe3bc, 0x9163, 0xbfb6, 0x9164, 0x9165, 0x9166, 0x9167, 0x9168, 0x9169, 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0x9170, 0x9171, 0x9172, 0x9173, 0x9174, 0x9175, 0x9176, 0xb1ef, 0x9177, 0x9178, 0xd4f7, 0x9179, 0x917a, 0x917b, 0x917c, 0x917d, 0xe3be, 0x917e, 0x9180, 0x9181, 0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0xedad, 0x9187, 0x9188, 0x9189, 0x918a, 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0xe3bf, 0xbaa9, 0xedac, 0x9190, 0x9191, 0xe3bd, 0x9192, 0x9193, 0x9194, 0x9195, 0x9196, 0x9197, 0x9198, 0x9199, 0x919a, 0x919b, 0xe3c0, 0x919c, 0x919d, 0x919e, 0x919f, 0x91a0, 0x91a1, 0xbab6, 0x91a2, 0x91a3, 0x91a4, 0xb6ae, 0x91a5, 0x91a6, 0x91a7, 0x91a8, 0x91a9, 0xd0b8, 0x91aa, 0xb0c3, 0xedae, 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0xedaf, 0xc0c1, 0x91b0, 0xe3c1, 0x91b1, 0x91b2, 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0x91ba, 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0xc5b3, 0x91c2, 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0xe3c2, 0x91d0, 0x91d1, 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0xdcb2, /* 0x6200 .. 0x62ff */ 0x91d9, 0x91da, 0x91db, 0x91dc, 0x91dd, 0x91de, 0xedb0, 0x91df, 0xb8ea, 0x91e0, 0xceec, 0xeaa7, 0xd0e7, 0xcaf9, 0xc8d6, 0xcfb7, 0xb3c9, 0xced2, 0xbde4, 0x91e1, 0x91e2, 0xe3de, 0xbbf2, 0xeaa8, 0xd5bd, 0x91e3, 0xc6dd, 0xeaa9, 0x91e4, 0x91e5, 0x91e6, 0xeaaa, 0x91e7, 0xeaac, 0xeaab, 0x91e8, 0xeaae, 0xeaad, 0x91e9, 0x91ea, 0x91eb, 0x91ec, 0xbdd8, 0x91ed, 0xeaaf, 0x91ee, 0xc2be, 0x91ef, 0x91f0, 0x91f1, 0x91f2, 0xb4c1, 0xb4f7, 0x91f3, 0x91f4, 0xbba7, 0x91f5, 0x91f6, 0x91f7, 0x91f8, 0x91f9, 0xece6, 0xece5, 0xb7bf, 0xcbf9, 0xb1e2, 0x91fa, 0xece7, 0x91fb, 0x91fc, 0x91fd, 0xc9c8, 0xece8, 0xece9, 0x91fe, 0xcad6, 0xded0, 0xb2c5, 0xd4fa, 0x9240, 0x9241, 0xc6cb, 0xb0c7, 0xb4f2, 0xc8d3, 0x9242, 0x9243, 0x9244, 0xcdd0, 0x9245, 0x9246, 0xbfb8, 0x9247, 0x9248, 0x9249, 0x924a, 0x924b, 0x924c, 0x924d, 0xbfdb, 0x924e, 0x924f, 0xc7a4, 0xd6b4, 0x9250, 0xc0a9, 0xded1, 0xc9a8, 0xd1ef, 0xc5a4, 0xb0e7, 0xb3b6, 0xc8c5, 0x9251, 0x9252, 0xb0e2, 0x9253, 0x9254, 0xb7f6, 0x9255, 0x9256, 0xc5fa, 0x9257, 0x9258, 0xb6f3, 0x9259, 0xd5d2, 0xb3d0, 0xbcbc, 0x925a, 0x925b, 0x925c, 0xb3ad, 0x925d, 0x925e, 0x925f, 0x9260, 0xbef1, 0xb0d1, 0x9261, 0x9262, 0x9263, 0x9264, 0x9265, 0x9266, 0xd2d6, 0xcae3, 0xd7a5, 0x9267, 0xcdb6, 0xb6b6, 0xbfb9, 0xd5db, 0x9268, 0xb8a7, 0xc5d7, 0x9269, 0x926a, 0x926b, 0xded2, 0xbfd9, 0xc2d5, 0xc7c0, 0x926c, 0xbba4, 0xb1a8, 0x926d, 0x926e, 0xc5ea, 0x926f, 0x9270, 0xc5fb, 0xcca7, 0x9271, 0x9272, 0x9273, 0x9274, 0xb1a7, 0x9275, 0x9276, 0x9277, 0xb5d6, 0x9278, 0x9279, 0x927a, 0xc4a8, 0x927b, 0xded3, 0xd1ba, 0xb3e9, 0x927c, 0xc3f2, 0x927d, 0x927e, 0xb7f7, 0x9280, 0xd6f4, 0xb5a3, 0xb2f0, 0xc4b4, 0xc4e9, 0xc0ad, 0xded4, 0x9281, 0xb0e8, 0xc5c4, 0xc1e0, 0x9282, 0xb9d5, 0x9283, 0xbedc, 0xcdd8, 0xb0ce, 0x9284, 0xcdcf, 0xded6, 0xbed0, 0xd7be, 0xded5, 0xd5d0, 0xb0dd, 0x9285, 0x9286, 0xc4e2, 0x9287, 0x9288, 0xc2a3, 0xbcf0, 0x9289, 0xd3b5, 0xc0b9, 0xc5a1, 0xb2a6, 0xd4f1, 0x928a, 0x928b, 0xc0a8, 0xcac3, 0xded7, 0xd5fc, 0x928c, 0xb9b0, 0x928d, 0xc8ad, 0xcba9, 0x928e, 0xded9, 0xbfbd, 0x928f, 0x9290, 0x9291, 0x9292, 0xc6b4, 0xd7a7, 0xcab0, 0xc4c3, /* 0x6300 .. 0x63ff */ 0x9293, 0xb3d6, 0xb9d2, 0x9294, 0x9295, 0x9296, 0x9297, 0xd6b8, 0xeafc, 0xb0b4, 0x9298, 0x9299, 0x929a, 0x929b, 0xbfe6, 0x929c, 0x929d, 0xccf4, 0x929e, 0x929f, 0x92a0, 0x92a1, 0xcdda, 0x92a2, 0x92a3, 0x92a4, 0xd6bf, 0xc2ce, 0x92a5, 0xcece, 0xcca2, 0xd0ae, 0xc4d3, 0xb5b2, 0xded8, 0xd5f5, 0xbcb7, 0xbbd3, 0x92a6, 0x92a7, 0xb0a4, 0x92a8, 0xc5b2, 0xb4ec, 0x92a9, 0x92aa, 0x92ab, 0xd5f1, 0x92ac, 0x92ad, 0xeafd, 0x92ae, 0x92af, 0x92b0, 0x92b1, 0x92b2, 0x92b3, 0xdeda, 0xcda6, 0x92b4, 0x92b5, 0xcdec, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0xcee6, 0xdedc, 0x92ba, 0xcdb1, 0xc0a6, 0x92bb, 0x92bc, 0xd7bd, 0x92bd, 0xdedb, 0xb0c6, 0xbab4, 0xc9d3, 0xc4f3, 0xbee8, 0x92be, 0x92bf, 0x92c0, 0x92c1, 0xb2b6, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0x92c7, 0x92c8, 0x92c9, 0xc0cc, 0xcbf0, 0x92ca, 0xbcf1, 0xbbbb, 0xb5b7, 0x92cb, 0x92cc, 0x92cd, 0xc5f5, 0x92ce, 0xdee6, 0x92cf, 0x92d0, 0x92d1, 0xdee3, 0xbedd, 0x92d2, 0x92d3, 0xdedf, 0x92d4, 0x92d5, 0x92d6, 0x92d7, 0xb4b7, 0xbddd, 0x92d8, 0x92d9, 0xdee0, 0xc4ed, 0x92da, 0x92db, 0x92dc, 0x92dd, 0xcfc6, 0x92de, 0xb5e0, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0xb6de, 0xcada, 0xb5f4, 0xdee5, 0x92e3, 0xd5c6, 0x92e4, 0xdee1, 0xcccd, 0xc6fe, 0x92e5, 0xc5c5, 0x92e6, 0x92e7, 0x92e8, 0xd2b4, 0x92e9, 0xbef2, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0xc2d3, 0x92f1, 0xccbd, 0xb3b8, 0x92f2, 0xbdd3, 0x92f3, 0xbfd8, 0xcdc6, 0xd1da, 0xb4eb, 0x92f4, 0xdee4, 0xdedd, 0xdee7, 0x92f5, 0xeafe, 0x92f6, 0x92f7, 0xc2b0, 0xdee2, 0x92f8, 0x92f9, 0xd6c0, 0xb5a7, 0x92fa, 0xb2f4, 0x92fb, 0xdee8, 0x92fc, 0xdef2, 0x92fd, 0x92fe, 0x9340, 0x9341, 0x9342, 0xdeed, 0x9343, 0xdef1, 0x9344, 0x9345, 0xc8e0, 0x9346, 0x9347, 0x9348, 0xd7e1, 0xdeef, 0xc3e8, 0xcce1, 0x9349, 0xb2e5, 0x934a, 0x934b, 0x934c, 0xd2be, 0x934d, 0x934e, 0x934f, 0x9350, 0x9351, 0x9352, 0x9353, 0xdeee, 0x9354, 0xdeeb, 0xced5, 0x9355, 0xb4a7, 0x9356, 0x9357, 0x9358, 0x9359, 0x935a, 0xbfab, 0xbebe, 0x935b, 0x935c, 0xbdd2, 0x935d, 0x935e, 0x935f, 0x9360, 0xdee9, 0x9361, 0xd4ae, 0x9362, 0xdede, 0x9363, 0xdeea, 0x9364, 0x9365, 0x9366, 0x9367, 0xc0bf, 0x9368, 0xdeec, /* 0x6400 .. 0x64ff */ 0xb2f3, 0xb8e9, 0xc2a7, 0x9369, 0x936a, 0xbdc1, 0x936b, 0x936c, 0x936d, 0x936e, 0x936f, 0xdef5, 0xdef8, 0x9370, 0x9371, 0xb2ab, 0xb4a4, 0x9372, 0x9373, 0xb4ea, 0xc9a6, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0xdef6, 0xcbd1, 0x937a, 0xb8e3, 0x937b, 0xdef7, 0xdefa, 0x937c, 0x937d, 0x937e, 0x9380, 0xdef9, 0x9381, 0x9382, 0x9383, 0xccc2, 0x9384, 0xb0e1, 0xb4ee, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0xe5ba, 0x938b, 0x938c, 0x938d, 0x938e, 0x938f, 0xd0af, 0x9390, 0x9391, 0xb2eb, 0x9392, 0xeba1, 0x9393, 0xdef4, 0x9394, 0x9395, 0xc9e3, 0xdef3, 0xb0da, 0xd2a1, 0xb1f7, 0x9396, 0xccaf, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0xdef0, 0x939e, 0xcba4, 0x939f, 0x93a0, 0x93a1, 0xd5aa, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0xdefb, 0x93a7, 0x93a8, 0x93a9, 0x93aa, 0x93ab, 0x93ac, 0x93ad, 0x93ae, 0xb4dd, 0x93af, 0xc4a6, 0x93b0, 0x93b1, 0x93b2, 0xdefd, 0x93b3, 0x93b4, 0x93b5, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0x93bb, 0x93bc, 0xc3fe, 0xc4a1, 0xdfa1, 0x93bd, 0x93be, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0xc1cc, 0x93c4, 0xdefc, 0xbeef, 0x93c5, 0xc6b2, 0x93c6, 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0x93cd, 0x93ce, 0xb3c5, 0xc8f6, 0x93cf, 0x93d0, 0xcbba, 0xdefe, 0x93d1, 0x93d2, 0xdfa4, 0x93d3, 0x93d4, 0x93d5, 0x93d6, 0xd7b2, 0x93d7, 0x93d8, 0x93d9, 0x93da, 0x93db, 0xb3b7, 0x93dc, 0x93dd, 0x93de, 0x93df, 0xc1c3, 0x93e0, 0x93e1, 0xc7cb, 0xb2a5, 0xb4e9, 0x93e2, 0xd7ab, 0x93e3, 0x93e4, 0x93e5, 0x93e6, 0xc4ec, 0x93e7, 0xdfa2, 0xdfa3, 0x93e8, 0xdfa5, 0x93e9, 0xbab3, 0x93ea, 0x93eb, 0x93ec, 0xdfa6, 0x93ed, 0xc0de, 0x93ee, 0x93ef, 0xc9c3, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, 0xb2d9, 0xc7e6, 0x93f7, 0xdfa7, 0x93f8, 0xc7dc, 0x93f9, 0x93fa, 0x93fb, 0x93fc, 0xdfa8, 0xeba2, 0x93fd, 0x93fe, 0x9440, 0x9441, 0x9442, 0xcbd3, 0x9443, 0x9444, 0x9445, 0xdfaa, 0x9446, 0xdfa9, 0x9447, 0xb2c1, 0x9448, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0x944f, 0x9450, 0x9451, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945a, 0x945b, 0x945c, 0x945d, 0x945e, 0x945f, 0x9460, /* 0x6500 .. 0x65ff */ 0xc5ca, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0x9467, 0x9468, 0xdfab, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0x946e, 0x946f, 0x9470, 0xd4dc, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0xc8c1, 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x947b, 0x947c, 0x947d, 0x947e, 0x9480, 0x9481, 0x9482, 0xdfac, 0x9483, 0x9484, 0x9485, 0x9486, 0x9487, 0xbef0, 0x9488, 0x9489, 0xdfad, 0xd6a7, 0x948a, 0x948b, 0x948c, 0x948d, 0xeab7, 0xebb6, 0xcad5, 0x948e, 0xd8fc, 0xb8c4, 0x948f, 0xb9a5, 0x9490, 0x9491, 0xb7c5, 0xd5fe, 0x9492, 0x9493, 0x9494, 0x9495, 0x9496, 0xb9ca, 0x9497, 0x9498, 0xd0a7, 0xf4cd, 0x9499, 0x949a, 0xb5d0, 0x949b, 0x949c, 0xc3f4, 0x949d, 0xbec8, 0x949e, 0x949f, 0x94a0, 0xebb7, 0xb0bd, 0x94a1, 0x94a2, 0xbdcc, 0x94a3, 0xc1b2, 0x94a4, 0xb1d6, 0xb3a8, 0x94a5, 0x94a6, 0x94a7, 0xb8d2, 0xc9a2, 0x94a8, 0x94a9, 0xb6d8, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0xebb8, 0xbeb4, 0x94ae, 0x94af, 0x94b0, 0xcafd, 0x94b1, 0xc7c3, 0x94b2, 0xd5fb, 0x94b3, 0x94b4, 0xb7f3, 0x94b5, 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0x94be, 0x94bf, 0x94c0, 0x94c1, 0x94c2, 0x94c3, 0xcec4, 0x94c4, 0x94c5, 0x94c6, 0xd5ab, 0xb1f3, 0x94c7, 0x94c8, 0x94c9, 0xecb3, 0xb0df, 0x94ca, 0xecb5, 0x94cb, 0x94cc, 0x94cd, 0xb6b7, 0x94ce, 0xc1cf, 0x94cf, 0xf5fa, 0xd0b1, 0x94d0, 0x94d1, 0xd5e5, 0x94d2, 0xced3, 0x94d3, 0x94d4, 0xbdef, 0xb3e2, 0x94d5, 0xb8ab, 0x94d6, 0xd5b6, 0x94d7, 0xedbd, 0x94d8, 0xb6cf, 0x94d9, 0xcbb9, 0xd0c2, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0x94df, 0x94e0, 0x94e1, 0xb7bd, 0x94e2, 0x94e3, 0xecb6, 0xcaa9, 0x94e4, 0x94e5, 0x94e6, 0xc5d4, 0x94e7, 0xecb9, 0xecb8, 0xc2c3, 0xecb7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0xd0fd, 0xecba, 0x94ec, 0xecbb, 0xd7e5, 0x94ed, 0x94ee, 0xecbc, 0x94ef, 0x94f0, 0x94f1, 0xecbd, 0xc6ec, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, 0xcede, 0x94fa, 0xbcc8, 0x94fb, 0x94fc, 0xc8d5, 0xb5a9, 0xbec9, 0xd6bc, 0xd4e7, 0x94fd, 0x94fe, 0xd1ae, 0xd0f1, 0xeab8, 0xeab9, 0xeaba, 0xbab5, 0x9540, 0x9541, 0x9542, 0x9543, 0xcab1, 0xbff5, 0x9544, 0x9545, 0xcdfa, 0x9546, 0x9547, 0x9548, 0x9549, 0x954a, /* 0x6600 .. 0x66ff */ 0xeac0, 0x954b, 0xb0ba, 0xeabe, 0x954c, 0x954d, 0xc0a5, 0x954e, 0x954f, 0x9550, 0xeabb, 0x9551, 0xb2fd, 0x9552, 0xc3f7, 0xbbe8, 0x9553, 0x9554, 0x9555, 0xd2d7, 0xcef4, 0xeabf, 0x9556, 0x9557, 0x9558, 0xeabc, 0x9559, 0x955a, 0x955b, 0xeac3, 0x955c, 0xd0c7, 0xd3b3, 0x955d, 0x955e, 0x955f, 0x9560, 0xb4ba, 0x9561, 0xc3c1, 0xd7f2, 0x9562, 0x9563, 0x9564, 0x9565, 0xd5d1, 0x9566, 0xcac7, 0x9567, 0xeac5, 0x9568, 0x9569, 0xeac4, 0xeac7, 0xeac6, 0x956a, 0x956b, 0x956c, 0x956d, 0x956e, 0xd6e7, 0x956f, 0xcfd4, 0x9570, 0x9571, 0xeacb, 0x9572, 0xbbce, 0x9573, 0x9574, 0x9575, 0x9576, 0x9577, 0x9578, 0x9579, 0xbdfa, 0xc9ce, 0x957a, 0x957b, 0xeacc, 0x957c, 0x957d, 0xc9b9, 0xcffe, 0xeaca, 0xd4ce, 0xeacd, 0xeacf, 0x957e, 0x9580, 0xcded, 0x9581, 0x9582, 0x9583, 0x9584, 0xeac9, 0x9585, 0xeace, 0x9586, 0x9587, 0xceee, 0x9588, 0xbbde, 0x9589, 0xb3bf, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0xc6d5, 0xbeb0, 0xcefa, 0x958f, 0x9590, 0x9591, 0xc7e7, 0x9592, 0xbea7, 0xead0, 0x9593, 0x9594, 0xd6c7, 0x9595, 0x9596, 0x9597, 0xc1c0, 0x9598, 0x9599, 0x959a, 0xd4dd, 0x959b, 0xead1, 0x959c, 0x959d, 0xcfbe, 0x959e, 0x959f, 0x95a0, 0x95a1, 0xead2, 0x95a2, 0x95a3, 0x95a4, 0x95a5, 0xcaee, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0xc5af, 0xb0b5, 0x95aa, 0x95ab, 0x95ac, 0x95ad, 0x95ae, 0xead4, 0x95af, 0x95b0, 0x95b1, 0x95b2, 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0xead3, 0xf4df, 0x95b8, 0x95b9, 0x95ba, 0x95bb, 0x95bc, 0xc4ba, 0x95bd, 0x95be, 0x95bf, 0x95c0, 0x95c1, 0xb1a9, 0x95c2, 0x95c3, 0x95c4, 0x95c5, 0xe5df, 0x95c6, 0x95c7, 0x95c8, 0x95c9, 0xead5, 0x95ca, 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0x95cf, 0x95d0, 0x95d1, 0x95d2, 0x95d3, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0x95db, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0x95e2, 0x95e3, 0xcaef, 0x95e4, 0xead6, 0xead7, 0xc6d8, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, 0xead8, 0x95ed, 0x95ee, 0xead9, 0x95ef, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, 0xd4bb, 0x95f5, 0xc7fa, 0xd2b7, 0xb8fc, 0x95f6, 0x95f7, 0xeac2, 0x95f8, 0xb2dc, 0x95f9, 0x95fa, 0xc2fc, 0x95fb, 0xd4f8, 0xcce6, /* 0x6700 .. 0x67ff */ 0xd7ee, 0x95fc, 0x95fd, 0x95fe, 0x9640, 0x9641, 0x9642, 0x9643, 0xd4c2, 0xd3d0, 0xebc3, 0xc5f3, 0x9644, 0xb7fe, 0x9645, 0x9646, 0xebd4, 0x9647, 0x9648, 0x9649, 0xcbb7, 0xebde, 0x964a, 0xc0ca, 0x964b, 0x964c, 0x964d, 0xcdfb, 0x964e, 0xb3af, 0x964f, 0xc6da, 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0xebfc, 0x9656, 0xc4be, 0x9657, 0xceb4, 0xc4a9, 0xb1be, 0xd4fd, 0x9658, 0xcaf5, 0x9659, 0xd6ec, 0x965a, 0x965b, 0xc6d3, 0xb6e4, 0x965c, 0x965d, 0x965e, 0x965f, 0xbbfa, 0x9660, 0x9661, 0xd0e0, 0x9662, 0x9663, 0xc9b1, 0x9664, 0xd4d3, 0xc8a8, 0x9665, 0x9666, 0xb8cb, 0x9667, 0xe8be, 0xc9bc, 0x9668, 0x9669, 0xe8bb, 0x966a, 0xc0ee, 0xd0d3, 0xb2c4, 0xb4e5, 0x966b, 0xe8bc, 0x966c, 0x966d, 0xd5c8, 0x966e, 0x966f, 0x9670, 0x9671, 0x9672, 0xb6c5, 0x9673, 0xe8bd, 0xcaf8, 0xb8dc, 0xccf5, 0x9674, 0x9675, 0x9676, 0xc0b4, 0x9677, 0x9678, 0xd1ee, 0xe8bf, 0xe8c2, 0x9679, 0x967a, 0xbabc, 0x967b, 0xb1ad, 0xbddc, 0x967c, 0xeabd, 0xe8c3, 0x967d, 0xe8c6, 0x967e, 0xe8cb, 0x9680, 0x9681, 0x9682, 0x9683, 0xe8cc, 0x9684, 0xcbc9, 0xb0e5, 0x9685, 0xbcab, 0x9686, 0x9687, 0xb9b9, 0x9688, 0x9689, 0xe8c1, 0x968a, 0xcdf7, 0x968b, 0xe8ca, 0x968c, 0x968d, 0x968e, 0x968f, 0xcef6, 0x9690, 0x9691, 0x9692, 0x9693, 0xd5ed, 0x9694, 0xc1d6, 0xe8c4, 0x9695, 0xc3b6, 0x9696, 0xb9fb, 0xd6a6, 0xe8c8, 0x9697, 0x9698, 0x9699, 0xcae0, 0xd4e6, 0x969a, 0xe8c0, 0x969b, 0xe8c5, 0xe8c7, 0x969c, 0xc7b9, 0xb7e3, 0x969d, 0xe8c9, 0x969e, 0xbfdd, 0xe8d2, 0x969f, 0x96a0, 0xe8d7, 0x96a1, 0xe8d5, 0xbcdc, 0xbccf, 0xe8db, 0x96a2, 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0xe8de, 0x96aa, 0xe8da, 0xb1fa, 0x96ab, 0x96ac, 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4, 0xb0d8, 0xc4b3, 0xb8cc, 0xc6e2, 0xc8be, 0xc8e1, 0x96b5, 0x96b6, 0x96b7, 0xe8cf, 0xe8d4, 0xe8d6, 0x96b8, 0xb9f1, 0xe8d8, 0xd7f5, 0x96b9, 0xc4fb, 0x96ba, 0xe8dc, 0x96bb, 0x96bc, 0xb2e9, 0x96bd, 0x96be, 0x96bf, 0xe8d1, 0x96c0, 0x96c1, 0xbced, 0x96c2, 0x96c3, 0xbfc2, 0xe8cd, 0xd6f9, 0x96c4, 0xc1f8, 0xb2f1, 0x96c5, 0x96c6, 0x96c7, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0xe8df, 0x96cd, 0xcac1, /* 0x6800 .. 0x68ff */ 0xe8d9, 0x96ce, 0x96cf, 0x96d0, 0x96d1, 0xd5a4, 0x96d2, 0xb1ea, 0xd5bb, 0xe8ce, 0xe8d0, 0xb6b0, 0xe8d3, 0x96d3, 0xe8dd, 0xc0b8, 0x96d4, 0xcaf7, 0x96d5, 0xcba8, 0x96d6, 0x96d7, 0xc6dc, 0xc0f5, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, 0xe8e9, 0x96dd, 0x96de, 0x96df, 0xd0a3, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0xe8f2, 0xd6ea, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec, 0x96ed, 0xe8e0, 0xe8e1, 0x96ee, 0x96ef, 0x96f0, 0xd1f9, 0xbacb, 0xb8f9, 0x96f1, 0x96f2, 0xb8f1, 0xd4d4, 0xe8ef, 0x96f3, 0xe8ee, 0xe8ec, 0xb9f0, 0xccd2, 0xe8e6, 0xcea6, 0xbff2, 0x96f4, 0xb0b8, 0xe8f1, 0xe8f0, 0x96f5, 0xd7c0, 0x96f6, 0xe8e4, 0x96f7, 0xcda9, 0xc9a3, 0x96f8, 0xbbb8, 0xbddb, 0xe8ea, 0x96f9, 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96fe, 0x9740, 0x9741, 0x9742, 0x9743, 0xe8e2, 0xe8e3, 0xe8e5, 0xb5b5, 0xe8e7, 0xc7c5, 0xe8eb, 0xe8ed, 0xbdb0, 0xd7ae, 0x9744, 0xe8f8, 0x9745, 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0xe8f5, 0x974d, 0xcdb0, 0xe8f6, 0x974e, 0x974f, 0x9750, 0x9751, 0x9752, 0x9753, 0x9754, 0x9755, 0x9756, 0xc1ba, 0x9757, 0xe8e8, 0x9758, 0xc3b7, 0xb0f0, 0x9759, 0x975a, 0x975b, 0x975c, 0x975d, 0x975e, 0x975f, 0x9760, 0xe8f4, 0x9761, 0x9762, 0x9763, 0xe8f7, 0x9764, 0x9765, 0x9766, 0xb9a3, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0xc9d2, 0x9771, 0x9772, 0x9773, 0xc3ce, 0xcee0, 0xc0e6, 0x9774, 0x9775, 0x9776, 0x9777, 0xcbf3, 0x9778, 0xccdd, 0xd0b5, 0x9779, 0x977a, 0xcae1, 0x977b, 0xe8f3, 0x977c, 0x977d, 0x977e, 0x9780, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0xbcec, 0x9787, 0xe8f9, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0x978d, 0xc3de, 0x978e, 0xc6e5, 0x978f, 0xb9f7, 0x9790, 0x9791, 0x9792, 0x9793, 0xb0f4, 0x9794, 0x9795, 0xd7d8, 0x9796, 0x9797, 0xbcac, 0x9798, 0xc5ef, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0xccc4, 0x979e, 0x979f, 0xe9a6, 0x97a0, 0x97a1, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0xc9ad, 0x97aa, 0xe9a2, 0xc0e2, 0x97ab, 0x97ac, 0x97ad, 0xbfc3, 0x97ae, 0x97af, 0x97b0, 0xe8fe, 0xb9d7, 0x97b1, 0xe8fb, 0x97b2, 0x97b3, 0x97b4, /* 0x6900 .. 0x69ff */ 0x97b5, 0xe9a4, 0x97b6, 0x97b7, 0x97b8, 0xd2ce, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0xe9a3, 0x97be, 0xd6b2, 0xd7b5, 0x97bf, 0xe9a7, 0x97c0, 0xbdb7, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0xe8fc, 0xe8fd, 0x97cd, 0x97ce, 0x97cf, 0xe9a1, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7, 0xcdd6, 0x97d8, 0x97d9, 0xd2ac, 0x97da, 0x97db, 0x97dc, 0xe9b2, 0x97dd, 0x97de, 0x97df, 0x97e0, 0xe9a9, 0x97e1, 0x97e2, 0x97e3, 0xb4aa, 0x97e4, 0xb4bb, 0x97e5, 0x97e6, 0xe9ab, 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, 0x97f7, 0xd0a8, 0x97f8, 0x97f9, 0xe9a5, 0x97fa, 0x97fb, 0xb3fe, 0x97fc, 0x97fd, 0xe9ac, 0xc0e3, 0x97fe, 0xe9aa, 0x9840, 0x9841, 0xe9b9, 0x9842, 0x9843, 0xe9b8, 0x9844, 0x9845, 0x9846, 0x9847, 0xe9ae, 0x9848, 0x9849, 0xe8fa, 0x984a, 0x984b, 0xe9a8, 0x984c, 0x984d, 0x984e, 0x984f, 0x9850, 0xbfac, 0xe9b1, 0xe9ba, 0x9851, 0x9852, 0xc2a5, 0x9853, 0x9854, 0x9855, 0xe9af, 0x9856, 0xb8c5, 0x9857, 0xe9ad, 0x9858, 0xd3dc, 0xe9b4, 0xe9b5, 0xe9b7, 0x9859, 0x985a, 0x985b, 0xe9c7, 0x985c, 0x985d, 0x985e, 0x985f, 0x9860, 0x9861, 0xc0c6, 0xe9c5, 0x9862, 0x9863, 0xe9b0, 0x9864, 0x9865, 0xe9bb, 0xb0f1, 0x9866, 0x9867, 0x9868, 0x9869, 0x986a, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0xe9bc, 0xd5a5, 0x9870, 0x9871, 0xe9be, 0x9872, 0xe9bf, 0x9873, 0x9874, 0x9875, 0xe9c1, 0x9876, 0x9877, 0xc1f1, 0x9878, 0x9879, 0xc8b6, 0x987a, 0x987b, 0x987c, 0xe9bd, 0x987d, 0x987e, 0x9880, 0x9881, 0x9882, 0xe9c2, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 0x988a, 0xe9c3, 0x988b, 0xe9b3, 0x988c, 0xe9b6, 0x988d, 0xbbb1, 0x988e, 0x988f, 0x9890, 0xe9c0, 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, 0xbcf7, 0x9897, 0x9898, 0x9899, 0xe9c4, 0xe9c6, 0x989a, 0x989b, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, 0x98a1, 0x98a2, 0x98a3, 0x98a4, 0x98a5, 0xe9ca, 0x98a6, 0x98a7, 0x98a8, 0x98a9, 0xe9ce, 0x98aa, 0x98ab, 0x98ac, 0x98ad, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0x98b3, 0xb2db, 0x98b4, 0xe9c8, /* 0x6a00 .. 0x6aff */ 0x98b5, 0x98b6, 0x98b7, 0x98b8, 0x98b9, 0x98ba, 0x98bb, 0x98bc, 0x98bd, 0x98be, 0xb7ae, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0x98c5, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0xe9cb, 0xe9cc, 0x98cb, 0x98cc, 0x98cd, 0x98ce, 0x98cf, 0x98d0, 0xd5c1, 0x98d1, 0xc4a3, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0xe9d8, 0x98d8, 0xbae1, 0x98d9, 0x98da, 0x98db, 0x98dc, 0xe9c9, 0x98dd, 0xd3a3, 0x98de, 0x98df, 0x98e0, 0xe9d4, 0x98e1, 0x98e2, 0x98e3, 0x98e4, 0x98e5, 0x98e6, 0x98e7, 0xe9d7, 0xe9d0, 0x98e8, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0xe9cf, 0x98ed, 0x98ee, 0xc7c1, 0x98ef, 0x98f0, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0xe9d2, 0x98f7, 0x98f8, 0x98f9, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0xe9d9, 0xb3c8, 0x98fe, 0xe9d3, 0x9940, 0x9941, 0x9942, 0x9943, 0x9944, 0xcff0, 0x9945, 0x9946, 0x9947, 0xe9cd, 0x9948, 0x9949, 0x994a, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0x9952, 0xb3f7, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0x9959, 0xe9d6, 0x995a, 0x995b, 0xe9da, 0x995c, 0x995d, 0x995e, 0xccb4, 0x995f, 0x9960, 0x9961, 0xcfad, 0x9962, 0x9963, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996a, 0xe9d5, 0x996b, 0xe9dc, 0xe9db, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0xe9de, 0x9971, 0x9972, 0x9973, 0x9974, 0x9975, 0x9976, 0x9977, 0x9978, 0xe9d1, 0x9979, 0x997a, 0x997b, 0x997c, 0x997d, 0x997e, 0x9980, 0x9981, 0xe9dd, 0x9982, 0xe9df, 0xc3ca, 0x9983, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0x998a, 0x998b, 0x998c, 0x998d, 0x998e, 0x998f, 0x9990, 0x9991, 0x9992, 0x9993, 0x9994, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0x999a, 0x999b, 0x999c, 0x999d, 0x999e, 0x999f, 0x99a0, 0x99a1, 0x99a2, 0x99a3, 0x99a4, 0x99a5, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0x99b8, 0x99b9, 0x99ba, 0x99bb, 0x99bc, 0x99bd, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0x99c5, 0x99c6, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0x99ce, 0x99cf, 0x99d0, 0x99d1, 0x99d2, 0x99d3, 0x99d4, 0x99d5, /* 0x6b00 .. 0x6bff */ 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0x99db, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0x99e4, 0x99e5, 0x99e6, 0x99e7, 0x99e8, 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0x99f0, 0x99f1, 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0xc7b7, 0xb4ce, 0xbbb6, 0xd0c0, 0xeca3, 0x99f6, 0x99f7, 0xc5b7, 0x99f8, 0x99f9, 0x99fa, 0x99fb, 0x99fc, 0x99fd, 0x99fe, 0x9a40, 0x9a41, 0x9a42, 0xd3fb, 0x9a43, 0x9a44, 0x9a45, 0x9a46, 0xeca4, 0x9a47, 0xeca5, 0xc6db, 0x9a48, 0x9a49, 0x9a4a, 0xbfee, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0xeca6, 0x9a4f, 0x9a50, 0xeca7, 0xd0aa, 0x9a51, 0xc7b8, 0x9a52, 0x9a53, 0xb8e8, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a5b, 0x9a5c, 0x9a5d, 0x9a5e, 0x9a5f, 0xeca8, 0x9a60, 0x9a61, 0x9a62, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0xd6b9, 0xd5fd, 0xb4cb, 0xb2bd, 0xcee4, 0xc6e7, 0x9a68, 0x9a69, 0xcde1, 0x9a6a, 0x9a6b, 0x9a6c, 0x9a6d, 0x9a6e, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, 0x9a74, 0x9a75, 0x9a76, 0x9a77, 0xb4f5, 0x9a78, 0xcbc0, 0xbcdf, 0x9a79, 0x9a7a, 0x9a7b, 0x9a7c, 0xe9e2, 0xe9e3, 0xd1ea, 0xe9e5, 0x9a7d, 0xb4f9, 0xe9e4, 0x9a7e, 0xd1b3, 0xcae2, 0xb2d0, 0x9a80, 0xe9e8, 0x9a81, 0x9a82, 0x9a83, 0x9a84, 0xe9e6, 0xe9e7, 0x9a85, 0x9a86, 0xd6b3, 0x9a87, 0x9a88, 0x9a89, 0xe9e9, 0xe9ea, 0x9a8a, 0x9a8b, 0x9a8c, 0x9a8d, 0x9a8e, 0xe9eb, 0x9a8f, 0x9a90, 0x9a91, 0x9a92, 0x9a93, 0x9a94, 0x9a95, 0x9a96, 0xe9ec, 0x9a97, 0x9a98, 0x9a99, 0x9a9a, 0x9a9b, 0x9a9c, 0x9a9d, 0x9a9e, 0xecaf, 0xc5b9, 0xb6ce, 0x9a9f, 0xd2f3, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0xb5ee, 0x9aa7, 0xbbd9, 0xecb1, 0x9aa8, 0x9aa9, 0xd2e3, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, 0x9aae, 0xcee3, 0x9aaf, 0xc4b8, 0x9ab0, 0xc3bf, 0x9ab1, 0x9ab2, 0xb6be, 0xd8b9, 0xb1c8, 0xb1cf, 0xb1d1, 0xc5fe, 0x9ab3, 0xb1d0, 0x9ab4, 0xc3ab, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0xd5b1, 0x9aba, 0x9abb, 0x9abc, 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0xeba4, 0xbac1, 0x9ac2, 0x9ac3, 0x9ac4, 0xccba, 0x9ac5, 0x9ac6, 0x9ac7, 0xeba5, 0x9ac8, 0xeba7, 0x9ac9, 0x9aca, 0x9acb, 0xeba8, 0x9acc, 0x9acd, 0x9ace, 0xeba6, 0x9acf, 0x9ad0, /* 0x6c00 .. 0x6cff */ 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, 0x9ad5, 0xeba9, 0xebab, 0xebaa, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0xebac, 0x9adb, 0xcacf, 0xd8b5, 0xc3f1, 0x9adc, 0xc3a5, 0xc6f8, 0xebad, 0xc4ca, 0x9add, 0xebae, 0xebaf, 0xebb0, 0xb7d5, 0x9ade, 0x9adf, 0x9ae0, 0xb7fa, 0x9ae1, 0xebb1, 0xc7e2, 0x9ae2, 0xebb3, 0x9ae3, 0xbaa4, 0xd1f5, 0xb0b1, 0xebb2, 0xebb4, 0x9ae4, 0x9ae5, 0x9ae6, 0xb5aa, 0xc2c8, 0xc7e8, 0x9ae7, 0xebb5, 0x9ae8, 0xcbae, 0xe3df, 0x9ae9, 0x9aea, 0xd3c0, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0xd9db, 0x9aef, 0x9af0, 0xcda1, 0xd6ad, 0xc7f3, 0x9af1, 0x9af2, 0x9af3, 0xd9e0, 0xbbe3, 0x9af4, 0xbaba, 0xe3e2, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0xcfab, 0x9afa, 0x9afb, 0x9afc, 0xe3e0, 0xc9c7, 0x9afd, 0xbab9, 0x9afe, 0x9b40, 0x9b41, 0xd1b4, 0xe3e1, 0xc8ea, 0xb9af, 0xbdad, 0xb3d8, 0xcedb, 0x9b42, 0x9b43, 0xccc0, 0x9b44, 0x9b45, 0x9b46, 0xe3e8, 0xe3e9, 0xcdf4, 0x9b47, 0x9b48, 0x9b49, 0x9b4a, 0x9b4b, 0xccad, 0x9b4c, 0xbcb3, 0x9b4d, 0xe3ea, 0x9b4e, 0xe3eb, 0x9b4f, 0x9b50, 0xd0da, 0x9b51, 0x9b52, 0x9b53, 0xc6fb, 0xb7da, 0x9b54, 0x9b55, 0xc7df, 0xd2ca, 0xced6, 0x9b56, 0xe3e4, 0xe3ec, 0x9b57, 0xc9f2, 0xb3c1, 0x9b58, 0x9b59, 0xe3e7, 0x9b5a, 0x9b5b, 0xc6e3, 0xe3e5, 0x9b5c, 0x9b5d, 0xedb3, 0xe3e6, 0x9b5e, 0x9b5f, 0x9b60, 0x9b61, 0xc9b3, 0x9b62, 0xc5e6, 0x9b63, 0x9b64, 0x9b65, 0xb9b5, 0x9b66, 0xc3bb, 0x9b67, 0xe3e3, 0xc5bd, 0xc1a4, 0xc2d9, 0xb2d7, 0x9b68, 0xe3ed, 0xbba6, 0xc4ad, 0x9b69, 0xe3f0, 0xbeda, 0x9b6a, 0x9b6b, 0xe3fb, 0xe3f5, 0xbad3, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0xb7d0, 0xd3cd, 0x9b70, 0xd6ce, 0xd5d3, 0xb9c1, 0xd5b4, 0xd1d8, 0x9b71, 0x9b72, 0x9b73, 0x9b74, 0xd0b9, 0xc7f6, 0x9b75, 0x9b76, 0x9b77, 0xc8aa, 0xb2b4, 0x9b78, 0xc3da, 0x9b79, 0x9b7a, 0x9b7b, 0xe3ee, 0x9b7c, 0x9b7d, 0xe3fc, 0xe3ef, 0xb7a8, 0xe3f7, 0xe3f4, 0x9b7e, 0x9b80, 0x9b81, 0xb7ba, 0x9b82, 0x9b83, 0xc5a2, 0x9b84, 0xe3f6, 0xc5dd, 0xb2a8, 0xc6fc, 0x9b85, 0xc4e0, 0x9b86, 0x9b87, 0xd7a2, 0x9b88, 0xc0e1, 0xe3f9, 0x9b89, 0x9b8a, 0xe3fa, 0xe3fd, 0xcca9, 0xe3f3, 0x9b8b, 0xd3be, 0x9b8c, 0xb1c3, 0xedb4, 0xe3f1, 0xe3f2, 0x9b8d, 0xe3f8, 0xd0ba, 0xc6c3, 0xd4f3, 0xe3fe, 0x9b8e, /* 0x6d00 .. 0x6dff */ 0x9b8f, 0xbde0, 0x9b90, 0x9b91, 0xe4a7, 0x9b92, 0x9b93, 0xe4a6, 0x9b94, 0x9b95, 0x9b96, 0xd1f3, 0xe4a3, 0x9b97, 0xe4a9, 0x9b98, 0x9b99, 0x9b9a, 0xc8f7, 0x9b9b, 0x9b9c, 0x9b9d, 0x9b9e, 0xcfb4, 0x9b9f, 0xe4a8, 0xe4ae, 0xc2e5, 0x9ba0, 0x9ba1, 0xb6b4, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0x9ba6, 0x9ba7, 0xbdf2, 0x9ba8, 0xe4a2, 0x9ba9, 0x9baa, 0xbae9, 0xe4aa, 0x9bab, 0x9bac, 0xe4ac, 0x9bad, 0x9bae, 0xb6fd, 0xd6de, 0xe4b2, 0x9baf, 0xe4ad, 0x9bb0, 0x9bb1, 0x9bb2, 0xe4a1, 0x9bb3, 0xbbee, 0xcddd, 0xc7a2, 0xc5c9, 0x9bb4, 0x9bb5, 0xc1f7, 0x9bb6, 0xe4a4, 0x9bb7, 0xc7b3, 0xbdac, 0xbdbd, 0xe4a5, 0x9bb8, 0xd7c7, 0xb2e2, 0x9bb9, 0xe4ab, 0xbcc3, 0xe4af, 0x9bba, 0xbbeb, 0xe4b0, 0xc5a8, 0xe4b1, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, 0xd5e3, 0xbfa3, 0x9bbf, 0xe4ba, 0x9bc0, 0xe4b7, 0x9bc1, 0xe4bb, 0x9bc2, 0x9bc3, 0xe4bd, 0x9bc4, 0x9bc5, 0xc6d6, 0x9bc6, 0x9bc7, 0xbac6, 0xc0cb, 0x9bc8, 0x9bc9, 0x9bca, 0xb8a1, 0xe4b4, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0xd4a1, 0x9bcf, 0x9bd0, 0xbaa3, 0xbdfe, 0x9bd1, 0x9bd2, 0x9bd3, 0xe4bc, 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0xcdbf, 0x9bd9, 0x9bda, 0xc4f9, 0x9bdb, 0x9bdc, 0xcffb, 0xc9e6, 0x9bdd, 0x9bde, 0xd3bf, 0x9bdf, 0xcfd1, 0x9be0, 0x9be1, 0xe4b3, 0x9be2, 0xe4b8, 0xe4b9, 0xcce9, 0x9be3, 0x9be4, 0x9be5, 0x9be6, 0x9be7, 0xccce, 0x9be8, 0xc0d4, 0xe4b5, 0xc1b0, 0xe4b6, 0xced0, 0x9be9, 0xbbc1, 0xb5d3, 0x9bea, 0xc8f3, 0xbda7, 0xd5c7, 0xc9ac, 0xb8a2, 0xe4ca, 0x9beb, 0x9bec, 0xe4cc, 0xd1c4, 0x9bed, 0x9bee, 0xd2ba, 0x9bef, 0x9bf0, 0xbaad, 0x9bf1, 0x9bf2, 0xbad4, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0xe4c3, 0xb5ed, 0x9bf9, 0x9bfa, 0x9bfb, 0xd7cd, 0xe4c0, 0xcffd, 0xe4bf, 0x9bfc, 0x9bfd, 0x9bfe, 0xc1dc, 0xccca, 0x9c40, 0x9c41, 0x9c42, 0x9c43, 0xcae7, 0x9c44, 0x9c45, 0x9c46, 0x9c47, 0xc4d7, 0x9c48, 0xccd4, 0xe4c8, 0x9c49, 0x9c4a, 0x9c4b, 0xe4c7, 0xe4c1, 0x9c4c, 0xe4c4, 0xb5ad, 0x9c4d, 0x9c4e, 0xd3d9, 0x9c4f, 0xe4c6, 0x9c50, 0x9c51, 0x9c52, 0x9c53, 0xd2f9, 0xb4e3, 0x9c54, 0xbbb4, 0x9c55, 0x9c56, 0xc9ee, 0x9c57, 0xb4be, 0x9c58, 0x9c59, 0x9c5a, 0xbbec, 0x9c5b, 0xd1cd, 0x9c5c, 0xcced, 0xedb5, 0x9c5d, 0x9c5e, 0x9c5f, /* 0x6e00 .. 0x6eff */ 0x9c60, 0x9c61, 0x9c62, 0x9c63, 0x9c64, 0xc7e5, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0xd4a8, 0x9c69, 0xe4cb, 0xd7d5, 0xe4c2, 0x9c6a, 0xbda5, 0xe4c5, 0x9c6b, 0x9c6c, 0xd3e6, 0x9c6d, 0xe4c9, 0xc9f8, 0x9c6e, 0x9c6f, 0xe4be, 0x9c70, 0x9c71, 0xd3e5, 0x9c72, 0x9c73, 0xc7fe, 0xb6c9, 0x9c74, 0xd4fc, 0xb2b3, 0xe4d7, 0x9c75, 0x9c76, 0x9c77, 0xcec2, 0x9c78, 0xe4cd, 0x9c79, 0xcebc, 0x9c7a, 0xb8db, 0x9c7b, 0x9c7c, 0xe4d6, 0x9c7d, 0xbfca, 0x9c7e, 0x9c80, 0x9c81, 0xd3ce, 0x9c82, 0xc3ec, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x9c89, 0x9c8a, 0xc5c8, 0xe4d8, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, 0x9c91, 0x9c92, 0xcdc4, 0xe4cf, 0x9c93, 0x9c94, 0x9c95, 0x9c96, 0xe4d4, 0xe4d5, 0x9c97, 0xbafe, 0x9c98, 0xcfe6, 0x9c99, 0x9c9a, 0xd5bf, 0x9c9b, 0x9c9c, 0x9c9d, 0xe4d2, 0x9c9e, 0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0x9ca8, 0xe4d0, 0x9ca9, 0x9caa, 0xe4ce, 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0xcde5, 0xcaaa, 0x9cba, 0x9cbb, 0x9cbc, 0xc0a3, 0x9cbd, 0xbda6, 0xe4d3, 0x9cbe, 0x9cbf, 0xb8c8, 0x9cc0, 0x9cc1, 0x9cc2, 0x9cc3, 0x9cc4, 0xe4e7, 0xd4b4, 0x9cc5, 0x9cc6, 0x9cc7, 0x9cc8, 0x9cc9, 0x9cca, 0x9ccb, 0xe4db, 0x9ccc, 0x9ccd, 0x9cce, 0xc1ef, 0x9ccf, 0x9cd0, 0xe4e9, 0x9cd1, 0x9cd2, 0xd2e7, 0x9cd3, 0x9cd4, 0xe4df, 0x9cd5, 0xe4e0, 0x9cd6, 0x9cd7, 0xcfaa, 0x9cd8, 0x9cd9, 0x9cda, 0x9cdb, 0xcbdd, 0x9cdc, 0xe4da, 0xe4d1, 0x9cdd, 0xe4e5, 0x9cde, 0xc8dc, 0xe4e3, 0x9cdf, 0x9ce0, 0xc4e7, 0xe4e2, 0x9ce1, 0xe4e1, 0x9ce2, 0x9ce3, 0x9ce4, 0xb3fc, 0xe4e8, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0xb5e1, 0x9ce9, 0x9cea, 0x9ceb, 0xd7cc, 0x9cec, 0x9ced, 0x9cee, 0xe4e6, 0x9cef, 0xbbac, 0x9cf0, 0xd7d2, 0xcccf, 0xebf8, 0x9cf1, 0xe4e4, 0x9cf2, 0x9cf3, 0xb9f6, 0x9cf4, 0x9cf5, 0x9cf6, 0xd6cd, 0xe4d9, 0xe4dc, 0xc2fa, 0xe4de, 0x9cf7, 0xc2cb, 0xc0c4, 0xc2d0, 0x9cf8, 0xb1f5, 0xccb2, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d40, 0x9d41, 0x9d42, 0x9d43, 0xb5ce, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0xe4ef, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, /* 0x6f00 .. 0x6fff */ 0x9d4e, 0x9d4f, 0xc6af, 0x9d50, 0x9d51, 0x9d52, 0xc6e1, 0x9d53, 0x9d54, 0xe4f5, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0xc2a9, 0x9d5a, 0x9d5b, 0x9d5c, 0xc0ec, 0xd1dd, 0xe4ee, 0x9d5d, 0x9d5e, 0x9d5f, 0x9d60, 0x9d61, 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0xc4ae, 0x9d67, 0x9d68, 0x9d69, 0xe4ed, 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0xe4f6, 0xe4f4, 0xc2fe, 0x9d6e, 0xe4dd, 0x9d6f, 0xe4f0, 0x9d70, 0xcafe, 0x9d71, 0xd5c4, 0x9d72, 0x9d73, 0xe4f1, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0xd1fa, 0x9d7b, 0x9d7c, 0x9d7d, 0x9d7e, 0x9d80, 0x9d81, 0x9d82, 0xe4eb, 0xe4ec, 0x9d83, 0x9d84, 0x9d85, 0xe4f2, 0x9d86, 0xceab, 0x9d87, 0x9d88, 0x9d89, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0x9d90, 0xc5cb, 0x9d91, 0x9d92, 0x9d93, 0xc7b1, 0x9d94, 0xc2ba, 0x9d95, 0x9d96, 0x9d97, 0xe4ea, 0x9d98, 0x9d99, 0x9d9a, 0xc1ca, 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0xccb6, 0xb3b1, 0x9da1, 0x9da2, 0x9da3, 0xe4fb, 0x9da4, 0xe4f3, 0x9da5, 0x9da6, 0x9da7, 0xe4fa, 0x9da8, 0xe4fd, 0x9da9, 0xe4fc, 0x9daa, 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0xb3ce, 0x9db1, 0x9db2, 0x9db3, 0xb3ba, 0xe4f7, 0x9db4, 0x9db5, 0xe4f9, 0xe4f8, 0xc5ec, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0x9dbc, 0x9dbd, 0x9dbe, 0x9dbf, 0x9dc0, 0x9dc1, 0x9dc2, 0xc0bd, 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0xd4e8, 0x9dc7, 0x9dc8, 0x9dc9, 0x9dca, 0x9dcb, 0xe5a2, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0x9dd0, 0x9dd1, 0x9dd2, 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0xb0c4, 0x9dd7, 0x9dd8, 0xe5a4, 0x9dd9, 0x9dda, 0xe5a3, 0x9ddb, 0x9ddc, 0x9ddd, 0x9dde, 0x9ddf, 0x9de0, 0xbca4, 0x9de1, 0xe5a5, 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0xe5a1, 0x9de8, 0x9de9, 0x9dea, 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0xe4fe, 0xb1f4, 0x9def, 0x9df0, 0x9df1, 0x9df2, 0x9df3, 0x9df4, 0x9df5, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0xe5a8, 0x9dfa, 0xe5a9, 0xe5a6, 0x9dfb, 0x9dfc, 0x9dfd, 0x9dfe, 0x9e40, 0x9e41, 0x9e42, 0x9e43, 0x9e44, 0x9e45, 0x9e46, 0x9e47, 0xe5a7, 0xe5aa, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0x9e50, 0x9e51, 0x9e52, 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, /* 0x7000 .. 0x70ff */ 0x9e58, 0x9e59, 0x9e5a, 0x9e5b, 0x9e5c, 0x9e5d, 0x9e5e, 0x9e5f, 0x9e60, 0x9e61, 0x9e62, 0x9e63, 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0x9e68, 0xc6d9, 0x9e69, 0x9e6a, 0x9e6b, 0x9e6c, 0x9e6d, 0x9e6e, 0x9e6f, 0x9e70, 0xe5ab, 0xe5ad, 0x9e71, 0x9e72, 0x9e73, 0x9e74, 0x9e75, 0x9e76, 0x9e77, 0xe5ac, 0x9e78, 0x9e79, 0x9e7a, 0x9e7b, 0x9e7c, 0x9e7d, 0x9e7e, 0x9e80, 0x9e81, 0x9e82, 0x9e83, 0x9e84, 0x9e85, 0x9e86, 0x9e87, 0x9e88, 0x9e89, 0xe5af, 0x9e8a, 0x9e8b, 0x9e8c, 0xe5ae, 0x9e8d, 0x9e8e, 0x9e8f, 0x9e90, 0x9e91, 0x9e92, 0x9e93, 0x9e94, 0x9e95, 0x9e96, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9d, 0x9e9e, 0xb9e0, 0x9e9f, 0x9ea0, 0xe5b0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0x9ea6, 0x9ea7, 0x9ea8, 0x9ea9, 0x9eaa, 0x9eab, 0x9eac, 0x9ead, 0x9eae, 0xe5b1, 0x9eaf, 0x9eb0, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, 0x9eb5, 0x9eb6, 0x9eb7, 0x9eb8, 0x9eb9, 0x9eba, 0xbbf0, 0xece1, 0xc3f0, 0x9ebb, 0xb5c6, 0xbbd2, 0x9ebc, 0x9ebd, 0x9ebe, 0x9ebf, 0xc1e9, 0xd4ee, 0x9ec0, 0xbec4, 0x9ec1, 0x9ec2, 0x9ec3, 0xd7c6, 0x9ec4, 0xd4d6, 0xb2d3, 0xecbe, 0x9ec5, 0x9ec6, 0x9ec7, 0x9ec8, 0xeac1, 0x9ec9, 0x9eca, 0x9ecb, 0xc2af, 0xb4b6, 0x9ecc, 0x9ecd, 0x9ece, 0xd1d7, 0x9ecf, 0x9ed0, 0x9ed1, 0xb3b4, 0x9ed2, 0xc8b2, 0xbfbb, 0xecc0, 0x9ed3, 0x9ed4, 0xd6cb, 0x9ed5, 0x9ed6, 0xecbf, 0xecc1, 0x9ed7, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc, 0x9edd, 0x9ede, 0x9edf, 0x9ee0, 0x9ee1, 0x9ee2, 0x9ee3, 0xecc5, 0xbee6, 0xccbf, 0xc5da, 0xbebc, 0x9ee4, 0xecc6, 0x9ee5, 0xb1fe, 0x9ee6, 0x9ee7, 0x9ee8, 0xecc4, 0xd5a8, 0xb5e3, 0x9ee9, 0xecc2, 0xc1b6, 0xb3e3, 0x9eea, 0x9eeb, 0xecc3, 0xcbb8, 0xc0c3, 0xccfe, 0x9eec, 0x9eed, 0x9eee, 0x9eef, 0xc1d2, 0x9ef0, 0xecc8, 0x9ef1, 0x9ef2, 0x9ef3, 0x9ef4, 0x9ef5, 0x9ef6, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, 0xbae6, 0xc0d3, 0x9efe, 0xd6f2, 0x9f40, 0x9f41, 0x9f42, 0xd1cc, 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0xbfbe, 0x9f47, 0xb7b3, 0xc9d5, 0xecc7, 0xbbe2, 0x9f48, 0xcccc, 0xbdfd, 0xc8c8, 0x9f49, 0xcfa9, 0x9f4a, 0x9f4b, 0x9f4c, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, 0xcde9, 0x9f51, 0xc5eb, 0x9f52, 0x9f53, 0x9f54, 0xb7e9, 0x9f55, 0x9f56, /* 0x7100 .. 0x71ff */ 0x9f57, 0x9f58, 0x9f59, 0x9f5a, 0x9f5b, 0x9f5c, 0x9f5d, 0x9f5e, 0x9f5f, 0xd1c9, 0xbab8, 0x9f60, 0x9f61, 0x9f62, 0x9f63, 0x9f64, 0xecc9, 0x9f65, 0x9f66, 0xecca, 0x9f67, 0xbbc0, 0xeccb, 0x9f68, 0xece2, 0xb1ba, 0xb7d9, 0x9f69, 0x9f6a, 0x9f6b, 0x9f6c, 0x9f6d, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0xbdb9, 0x9f74, 0x9f75, 0x9f76, 0x9f77, 0x9f78, 0x9f79, 0x9f7a, 0x9f7b, 0xeccc, 0xd1e6, 0xeccd, 0x9f7c, 0x9f7d, 0x9f7e, 0x9f80, 0xc8bb, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0x9f86, 0x9f87, 0x9f88, 0x9f89, 0x9f8a, 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0xecd1, 0x9f8f, 0x9f90, 0x9f91, 0x9f92, 0xecd3, 0x9f93, 0xbbcd, 0x9f94, 0xbce5, 0x9f95, 0x9f96, 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0x9f9b, 0x9f9c, 0x9f9d, 0x9f9e, 0x9f9f, 0x9fa0, 0x9fa1, 0xeccf, 0x9fa2, 0xc9b7, 0x9fa3, 0x9fa4, 0x9fa5, 0x9fa6, 0x9fa7, 0xc3ba, 0x9fa8, 0xece3, 0xd5d5, 0xecd0, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0xd6f3, 0x9fae, 0x9faf, 0x9fb0, 0xecd2, 0xecce, 0x9fb1, 0x9fb2, 0x9fb3, 0x9fb4, 0xecd4, 0x9fb5, 0xecd5, 0x9fb6, 0x9fb7, 0xc9bf, 0x9fb8, 0x9fb9, 0x9fba, 0x9fbb, 0x9fbc, 0x9fbd, 0xcfa8, 0x9fbe, 0x9fbf, 0x9fc0, 0x9fc1, 0x9fc2, 0xd0dc, 0x9fc3, 0x9fc4, 0x9fc5, 0x9fc6, 0xd1ac, 0x9fc7, 0x9fc8, 0x9fc9, 0x9fca, 0xc8db, 0x9fcb, 0x9fcc, 0x9fcd, 0xecd6, 0xcef5, 0x9fce, 0x9fcf, 0x9fd0, 0x9fd1, 0x9fd2, 0xcaec, 0xecda, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, 0x9fd7, 0x9fd8, 0x9fd9, 0xecd9, 0x9fda, 0x9fdb, 0x9fdc, 0xb0be, 0x9fdd, 0x9fde, 0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0xecd7, 0x9fe3, 0xecd8, 0x9fe4, 0x9fe5, 0x9fe6, 0xece4, 0x9fe7, 0x9fe8, 0x9fe9, 0x9fea, 0x9feb, 0x9fec, 0x9fed, 0x9fee, 0x9fef, 0xc8bc, 0x9ff0, 0x9ff1, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6, 0x9ff7, 0x9ff8, 0x9ff9, 0xc1c7, 0x9ffa, 0x9ffb, 0x9ffc, 0x9ffd, 0x9ffe, 0xecdc, 0xd1e0, 0xa040, 0xa041, 0xa042, 0xa043, 0xa044, 0xa045, 0xa046, 0xa047, 0xa048, 0xa049, 0xecdb, 0xa04a, 0xa04b, 0xa04c, 0xa04d, 0xd4ef, 0xa04e, 0xecdd, 0xa04f, 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xdbc6, 0xa055, 0xa056, 0xa057, 0xa058, 0xa059, 0xa05a, 0xa05b, 0xa05c, 0xa05d, 0xa05e, 0xecde, 0xa05f, 0xa060, 0xa061, 0xa062, 0xa063, 0xa064, /* 0x7200 .. 0x72ff */ 0xa065, 0xa066, 0xa067, 0xa068, 0xa069, 0xa06a, 0xb1ac, 0xa06b, 0xa06c, 0xa06d, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, 0xa07a, 0xa07b, 0xa07c, 0xa07d, 0xa07e, 0xa080, 0xa081, 0xecdf, 0xa082, 0xa083, 0xa084, 0xa085, 0xa086, 0xa087, 0xa088, 0xa089, 0xa08a, 0xa08b, 0xece0, 0xa08c, 0xd7a6, 0xa08d, 0xc5c0, 0xa08e, 0xa08f, 0xa090, 0xebbc, 0xb0ae, 0xa091, 0xa092, 0xa093, 0xbef4, 0xb8b8, 0xd2af, 0xb0d6, 0xb5f9, 0xa094, 0xd8b3, 0xa095, 0xcbac, 0xa096, 0xe3dd, 0xa097, 0xa098, 0xa099, 0xa09a, 0xa09b, 0xa09c, 0xa09d, 0xc6ac, 0xb0e6, 0xa09e, 0xa09f, 0xa0a0, 0xc5c6, 0xebb9, 0xa0a1, 0xa0a2, 0xa0a3, 0xa0a4, 0xebba, 0xa0a5, 0xa0a6, 0xa0a7, 0xebbb, 0xa0a8, 0xa0a9, 0xd1c0, 0xa0aa, 0xc5a3, 0xa0ab, 0xeaf2, 0xa0ac, 0xc4b2, 0xa0ad, 0xc4b5, 0xc0ce, 0xa0ae, 0xa0af, 0xa0b0, 0xeaf3, 0xc4c1, 0xa0b1, 0xceef, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xeaf0, 0xeaf4, 0xa0b6, 0xa0b7, 0xc9fc, 0xa0b8, 0xa0b9, 0xc7a3, 0xa0ba, 0xa0bb, 0xa0bc, 0xccd8, 0xcefe, 0xa0bd, 0xa0be, 0xa0bf, 0xeaf5, 0xeaf6, 0xcfac, 0xc0e7, 0xa0c0, 0xa0c1, 0xeaf7, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xb6bf, 0xeaf8, 0xa0c7, 0xeaf9, 0xa0c8, 0xeafa, 0xa0c9, 0xa0ca, 0xeafb, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xeaf1, 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xa0dc, 0xa0dd, 0xa0de, 0xa0df, 0xa0e0, 0xa0e1, 0xa0e2, 0xc8ae, 0xe1eb, 0xa0e3, 0xb7b8, 0xe1ec, 0xa0e4, 0xa0e5, 0xa0e6, 0xe1ed, 0xa0e7, 0xd7b4, 0xe1ee, 0xe1ef, 0xd3cc, 0xa0e8, 0xa0e9, 0xa0ea, 0xa0eb, 0xa0ec, 0xa0ed, 0xa0ee, 0xe1f1, 0xbff1, 0xe1f0, 0xb5d2, 0xa0ef, 0xa0f0, 0xa0f1, 0xb1b7, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xe1f3, 0xe1f2, 0xa0f6, 0xbafc, 0xa0f7, 0xe1f4, 0xa0f8, 0xa0f9, 0xa0fa, 0xa0fb, 0xb9b7, 0xa0fc, 0xbed1, 0xa0fd, 0xa0fe, 0xaa40, 0xaa41, 0xc4fc, 0xaa42, 0xbadd, 0xbdc6, 0xaa43, 0xaa44, 0xaa45, 0xaa46, 0xaa47, 0xaa48, 0xe1f5, 0xe1f7, 0xaa49, 0xaa4a, 0xb6c0, 0xcfc1, 0xcaa8, 0xe1f6, 0xd5f8, 0xd3fc, 0xe1f8, 0xe1fc, 0xe1f9, 0xaa4b, 0xaa4c, 0xe1fa, 0xc0ea, 0xaa4d, 0xe1fe, 0xe2a1, 0xc0c7, 0xaa4e, 0xaa4f, 0xaa50, /* 0x7300 .. 0x73ff */ 0xaa51, 0xe1fb, 0xaa52, 0xe1fd, 0xaa53, 0xaa54, 0xaa55, 0xaa56, 0xaa57, 0xaa58, 0xe2a5, 0xaa59, 0xaa5a, 0xaa5b, 0xc1d4, 0xaa5c, 0xaa5d, 0xaa5e, 0xaa5f, 0xe2a3, 0xaa60, 0xe2a8, 0xb2fe, 0xe2a2, 0xaa61, 0xaa62, 0xaa63, 0xc3cd, 0xb2c2, 0xe2a7, 0xe2a6, 0xaa64, 0xaa65, 0xe2a4, 0xe2a9, 0xaa66, 0xaa67, 0xe2ab, 0xaa68, 0xaa69, 0xaa6a, 0xd0c9, 0xd6ed, 0xc3a8, 0xe2ac, 0xaa6b, 0xcfd7, 0xaa6c, 0xaa6d, 0xe2ae, 0xaa6e, 0xaa6f, 0xbaef, 0xaa70, 0xaa71, 0xe9e0, 0xe2ad, 0xe2aa, 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xbbab, 0xd4b3, 0xaa76, 0xaa77, 0xaa78, 0xaa79, 0xaa7a, 0xaa7b, 0xaa7c, 0xaa7d, 0xaa7e, 0xaa80, 0xaa81, 0xaa82, 0xaa83, 0xe2b0, 0xaa84, 0xaa85, 0xe2af, 0xaa86, 0xe9e1, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xe2b1, 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, 0xe2b2, 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, 0xaa9b, 0xaa9c, 0xaa9d, 0xe2b3, 0xcca1, 0xaa9e, 0xe2b4, 0xaa9f, 0xaaa0, 0xab40, 0xab41, 0xab42, 0xab43, 0xab44, 0xab45, 0xab46, 0xab47, 0xab48, 0xab49, 0xab4a, 0xab4b, 0xe2b5, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xd0fe, 0xab51, 0xab52, 0xc2ca, 0xab53, 0xd3f1, 0xab54, 0xcdf5, 0xab55, 0xab56, 0xe7e0, 0xab57, 0xab58, 0xe7e1, 0xab59, 0xab5a, 0xab5b, 0xab5c, 0xbec1, 0xab5d, 0xab5e, 0xab5f, 0xab60, 0xc2ea, 0xab61, 0xab62, 0xab63, 0xe7e4, 0xab64, 0xab65, 0xe7e3, 0xab66, 0xab67, 0xab68, 0xab69, 0xab6a, 0xab6b, 0xcde6, 0xab6c, 0xc3b5, 0xab6d, 0xab6e, 0xe7e2, 0xbbb7, 0xcfd6, 0xab6f, 0xc1e1, 0xe7e9, 0xab70, 0xab71, 0xab72, 0xe7e8, 0xab73, 0xab74, 0xe7f4, 0xb2a3, 0xab75, 0xab76, 0xab77, 0xab78, 0xe7ea, 0xab79, 0xe7e6, 0xab7a, 0xab7b, 0xab7c, 0xab7d, 0xab7e, 0xe7ec, 0xe7eb, 0xc9ba, 0xab80, 0xab81, 0xd5e4, 0xab82, 0xe7e5, 0xb7a9, 0xe7e7, 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xe7ee, 0xab8a, 0xab8b, 0xab8c, 0xab8d, 0xe7f3, 0xab8e, 0xd6e9, 0xab8f, 0xab90, 0xab91, 0xab92, 0xe7ed, 0xab93, 0xe7f2, 0xab94, 0xe7f1, 0xab95, 0xab96, 0xab97, 0xb0e0, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xe7f5, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac40, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, /* 0x7400 .. 0x74ff */ 0xac48, 0xac49, 0xac4a, 0xc7f2, 0xac4b, 0xc0c5, 0xc0ed, 0xac4c, 0xac4d, 0xc1f0, 0xe7f0, 0xac4e, 0xac4f, 0xac50, 0xac51, 0xe7f6, 0xcbf6, 0xac52, 0xac53, 0xac54, 0xac55, 0xac56, 0xac57, 0xac58, 0xac59, 0xac5a, 0xe8a2, 0xe8a1, 0xac5b, 0xac5c, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xd7c1, 0xac61, 0xac62, 0xe7fa, 0xe7f9, 0xac63, 0xe7fb, 0xac64, 0xe7f7, 0xac65, 0xe7fe, 0xac66, 0xe7fd, 0xac67, 0xe7fc, 0xac68, 0xac69, 0xc1d5, 0xc7d9, 0xc5fd, 0xc5c3, 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xc7ed, 0xac6f, 0xac70, 0xac71, 0xac72, 0xe8a3, 0xac73, 0xac74, 0xac75, 0xac76, 0xac77, 0xac78, 0xac79, 0xac7a, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac80, 0xac81, 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xe8a6, 0xac87, 0xe8a5, 0xac88, 0xe8a7, 0xbaf7, 0xe7f8, 0xe8a4, 0xac89, 0xc8f0, 0xc9aa, 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92, 0xac93, 0xac94, 0xac95, 0xac96, 0xe8a9, 0xac97, 0xac98, 0xb9e5, 0xac99, 0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xd1fe, 0xe8a8, 0xac9e, 0xac9f, 0xaca0, 0xad40, 0xad41, 0xad42, 0xe8aa, 0xad43, 0xe8ad, 0xe8ae, 0xad44, 0xc1a7, 0xad45, 0xad46, 0xad47, 0xe8af, 0xad48, 0xad49, 0xad4a, 0xe8b0, 0xad4b, 0xad4c, 0xe8ac, 0xad4d, 0xe8b4, 0xad4e, 0xad4f, 0xad50, 0xad51, 0xad52, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xe8ab, 0xad59, 0xe8b1, 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad61, 0xe8b5, 0xe8b2, 0xe8b3, 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, 0xe8b7, 0xad72, 0xad73, 0xad74, 0xad75, 0xad76, 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7b, 0xad7c, 0xad7d, 0xad7e, 0xad80, 0xad81, 0xad82, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad88, 0xad89, 0xe8b6, 0xad8a, 0xad8b, 0xad8c, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92, 0xb9cf, 0xad93, 0xf0ac, 0xad94, 0xf0ad, 0xad95, 0xc6b0, 0xb0ea, 0xc8bf, 0xad96, 0xcddf, 0xad97, 0xad98, 0xad99, 0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xcecd, 0xeab1, 0xad9e, 0xad9f, 0xada0, 0xae40, 0xeab2, 0xae41, 0xc6bf, 0xb4c9, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xae47, 0xae48, 0xeab3, /* 0x7500 .. 0x75ff */ 0xae49, 0xae4a, 0xae4b, 0xae4c, 0xd5e7, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51, 0xae52, 0xae53, 0xae54, 0xddf9, 0xae55, 0xeab4, 0xae56, 0xeab5, 0xae57, 0xeab6, 0xae58, 0xae59, 0xae5a, 0xae5b, 0xb8ca, 0xdfb0, 0xc9f5, 0xae5c, 0xccf0, 0xae5d, 0xae5e, 0xc9fa, 0xae5f, 0xae60, 0xae61, 0xae62, 0xae63, 0xc9fb, 0xae64, 0xae65, 0xd3c3, 0xcba6, 0xae66, 0xb8a6, 0xf0ae, 0xb1c2, 0xae67, 0xe5b8, 0xccef, 0xd3c9, 0xbcd7, 0xc9ea, 0xae68, 0xb5e7, 0xae69, 0xc4d0, 0xb5e9, 0xae6a, 0xeeae, 0xbbad, 0xae6b, 0xae6c, 0xe7de, 0xae6d, 0xeeaf, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xb3a9, 0xae72, 0xae73, 0xeeb2, 0xae74, 0xae75, 0xeeb1, 0xbde7, 0xae76, 0xeeb0, 0xceb7, 0xae77, 0xae78, 0xae79, 0xae7a, 0xc5cf, 0xae7b, 0xae7c, 0xae7d, 0xae7e, 0xc1f4, 0xdbce, 0xeeb3, 0xd0f3, 0xae80, 0xae81, 0xae82, 0xae83, 0xae84, 0xae85, 0xae86, 0xae87, 0xc2d4, 0xc6e8, 0xae88, 0xae89, 0xae8a, 0xb7ac, 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xeeb4, 0xae92, 0xb3eb, 0xae93, 0xae94, 0xae95, 0xbbfb, 0xeeb5, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, 0xe7dc, 0xae9b, 0xae9c, 0xae9d, 0xeeb6, 0xae9e, 0xae9f, 0xbdae, 0xaea0, 0xaf40, 0xaf41, 0xaf42, 0xf1e2, 0xaf43, 0xaf44, 0xaf45, 0xcae8, 0xaf46, 0xd2c9, 0xf0da, 0xaf47, 0xf0db, 0xaf48, 0xf0dc, 0xc1c6, 0xaf49, 0xb8ed, 0xbece, 0xaf4a, 0xaf4b, 0xf0de, 0xaf4c, 0xc5b1, 0xf0dd, 0xd1f1, 0xaf4d, 0xf0e0, 0xb0cc, 0xbdea, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51, 0xaf52, 0xd2df, 0xf0df, 0xaf53, 0xb4af, 0xb7e8, 0xf0e6, 0xf0e5, 0xc6a3, 0xf0e1, 0xf0e2, 0xb4c3, 0xaf54, 0xaf55, 0xf0e3, 0xd5ee, 0xaf56, 0xaf57, 0xccdb, 0xbed2, 0xbcb2, 0xaf58, 0xaf59, 0xaf5a, 0xf0e8, 0xf0e7, 0xf0e4, 0xb2a1, 0xaf5b, 0xd6a2, 0xd3b8, 0xbeb7, 0xc8ac, 0xaf5c, 0xaf5d, 0xf0ea, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xd1f7, 0xaf62, 0xd6cc, 0xbadb, 0xf0e9, 0xaf63, 0xb6bb, 0xaf64, 0xaf65, 0xcdb4, 0xaf66, 0xaf67, 0xc6a6, 0xaf68, 0xaf69, 0xaf6a, 0xc1a1, 0xf0eb, 0xf0ee, 0xaf6b, 0xf0ed, 0xf0f0, 0xf0ec, 0xaf6c, 0xbbbe, 0xf0ef, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xccb5, 0xf0f2, 0xaf71, 0xaf72, 0xb3d5, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xb1d4, 0xaf77, 0xaf78, 0xf0f3, 0xaf79, 0xaf7a, 0xf0f4, /* 0x7600 .. 0x76ff */ 0xf0f6, 0xb4e1, 0xaf7b, 0xf0f1, 0xaf7c, 0xf0f7, 0xaf7d, 0xaf7e, 0xaf80, 0xaf81, 0xf0fa, 0xaf82, 0xf0f8, 0xaf83, 0xaf84, 0xaf85, 0xf0f5, 0xaf86, 0xaf87, 0xaf88, 0xaf89, 0xf0fd, 0xaf8a, 0xf0f9, 0xf0fc, 0xf0fe, 0xaf8b, 0xf1a1, 0xaf8c, 0xaf8d, 0xaf8e, 0xcec1, 0xf1a4, 0xaf8f, 0xf1a3, 0xaf90, 0xc1f6, 0xf0fb, 0xcadd, 0xaf91, 0xaf92, 0xb4f1, 0xb1f1, 0xccb1, 0xaf93, 0xf1a6, 0xaf94, 0xaf95, 0xf1a7, 0xaf96, 0xaf97, 0xf1ac, 0xd5ce, 0xf1a9, 0xaf98, 0xaf99, 0xc8b3, 0xaf9a, 0xaf9b, 0xaf9c, 0xf1a2, 0xaf9d, 0xf1ab, 0xf1a8, 0xf1a5, 0xaf9e, 0xaf9f, 0xf1aa, 0xafa0, 0xb040, 0xb041, 0xb042, 0xb043, 0xb044, 0xb045, 0xb046, 0xb0a9, 0xf1ad, 0xb047, 0xb048, 0xb049, 0xb04a, 0xb04b, 0xb04c, 0xf1af, 0xb04d, 0xf1b1, 0xb04e, 0xb04f, 0xb050, 0xb051, 0xb052, 0xf1b0, 0xb053, 0xf1ae, 0xb054, 0xb055, 0xb056, 0xb057, 0xd1a2, 0xb058, 0xb059, 0xb05a, 0xb05b, 0xb05c, 0xb05d, 0xb05e, 0xf1b2, 0xb05f, 0xb060, 0xb061, 0xf1b3, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, 0xb9ef, 0xb06a, 0xb06b, 0xb5c7, 0xb06c, 0xb0d7, 0xb0d9, 0xb06d, 0xb06e, 0xb06f, 0xd4ed, 0xb070, 0xb5c4, 0xb071, 0xbdd4, 0xbbca, 0xf0a7, 0xb072, 0xb073, 0xb8de, 0xb074, 0xb075, 0xf0a8, 0xb076, 0xb077, 0xb0a8, 0xb078, 0xf0a9, 0xb079, 0xb07a, 0xcdee, 0xb07b, 0xb07c, 0xf0aa, 0xb07d, 0xb07e, 0xb080, 0xb081, 0xb082, 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xf0ab, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xb08f, 0xb090, 0xc6a4, 0xb091, 0xb092, 0xd6e5, 0xf1e4, 0xb093, 0xf1e5, 0xb094, 0xb095, 0xb096, 0xb097, 0xb098, 0xb099, 0xb09a, 0xb09b, 0xb09c, 0xb09d, 0xc3f3, 0xb09e, 0xb09f, 0xd3db, 0xb0a0, 0xb140, 0xd6d1, 0xc5e8, 0xb141, 0xd3af, 0xb142, 0xd2e6, 0xb143, 0xb144, 0xeec1, 0xb0bb, 0xd5b5, 0xd1ce, 0xbce0, 0xbad0, 0xb145, 0xbff8, 0xb146, 0xb8c7, 0xb5c1, 0xc5cc, 0xb147, 0xb148, 0xcaa2, 0xb149, 0xb14a, 0xb14b, 0xc3cb, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb150, 0xeec2, 0xb151, 0xb152, 0xb153, 0xb154, 0xb155, 0xb156, 0xb157, 0xb158, 0xc4bf, 0xb6a2, 0xb159, 0xedec, 0xc3a4, 0xb15a, 0xd6b1, 0xb15b, 0xb15c, 0xb15d, 0xcfe0, 0xedef, 0xb15e, 0xb15f, 0xc5ce, 0xb160, 0xb6dc, 0xb161, /* 0x7700 .. 0x77ff */ 0xb162, 0xcaa1, 0xb163, 0xb164, 0xeded, 0xb165, 0xb166, 0xedf0, 0xedf1, 0xc3bc, 0xb167, 0xbfb4, 0xb168, 0xedee, 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, 0xb172, 0xb173, 0xedf4, 0xedf2, 0xb174, 0xb175, 0xb176, 0xb177, 0xd5e6, 0xc3df, 0xb178, 0xedf3, 0xb179, 0xb17a, 0xb17b, 0xedf6, 0xb17c, 0xd5a3, 0xd1a3, 0xb17d, 0xb17e, 0xb180, 0xedf5, 0xb181, 0xc3d0, 0xb182, 0xb183, 0xb184, 0xb185, 0xb186, 0xedf7, 0xbff4, 0xbeec, 0xedf8, 0xb187, 0xccf7, 0xb188, 0xd1db, 0xb189, 0xb18a, 0xb18b, 0xd7c5, 0xd5f6, 0xb18c, 0xedfc, 0xb18d, 0xb18e, 0xb18f, 0xedfb, 0xb190, 0xb191, 0xb192, 0xb193, 0xb194, 0xb195, 0xb196, 0xb197, 0xedf9, 0xedfa, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xb19c, 0xb19d, 0xb19e, 0xb19f, 0xedfd, 0xbea6, 0xb1a0, 0xb240, 0xb241, 0xb242, 0xb243, 0xcbaf, 0xeea1, 0xb6bd, 0xb244, 0xeea2, 0xc4c0, 0xb245, 0xedfe, 0xb246, 0xb247, 0xbdde, 0xb2c7, 0xb248, 0xb249, 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, 0xb253, 0xb6c3, 0xb254, 0xb255, 0xb256, 0xeea5, 0xd8ba, 0xeea3, 0xeea6, 0xb257, 0xb258, 0xb259, 0xc3e9, 0xb3f2, 0xb25a, 0xb25b, 0xb25c, 0xb25d, 0xb25e, 0xb25f, 0xeea7, 0xeea4, 0xcfb9, 0xb260, 0xb261, 0xeea8, 0xc2f7, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xeea9, 0xeeaa, 0xb26e, 0xdeab, 0xb26f, 0xb270, 0xc6b3, 0xb271, 0xc7c6, 0xb272, 0xd6f5, 0xb5c9, 0xb273, 0xcbb2, 0xb274, 0xb275, 0xb276, 0xeeab, 0xb277, 0xb278, 0xcdab, 0xb279, 0xeeac, 0xb27a, 0xb27b, 0xb27c, 0xb27d, 0xb27e, 0xd5b0, 0xb280, 0xeead, 0xb281, 0xf6c4, 0xb282, 0xb283, 0xb284, 0xb285, 0xb286, 0xb287, 0xb288, 0xb289, 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xdbc7, 0xb28f, 0xb290, 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb4a3, 0xb298, 0xb299, 0xb29a, 0xc3ac, 0xf1e6, 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xcab8, 0xd2d3, 0xb2a0, 0xd6aa, 0xb340, 0xeff2, 0xb341, 0xbed8, 0xb342, 0xbdc3, 0xeff3, 0xb6cc, 0xb0ab, 0xb343, 0xb344, 0xb345, 0xb346, 0xcaaf, 0xb347, 0xb348, 0xedb6, 0xb349, 0xedb7, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xcef9, 0xb7af, 0xbff3, /* 0x7800 .. 0x78ff */ 0xedb8, 0xc2eb, 0xc9b0, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0xedb9, 0xb354, 0xb355, 0xc6f6, 0xbfb3, 0xb356, 0xb357, 0xb358, 0xedbc, 0xc5f8, 0xb359, 0xd1d0, 0xb35a, 0xd7a9, 0xedba, 0xedbb, 0xb35b, 0xd1e2, 0xb35c, 0xedbf, 0xedc0, 0xb35d, 0xedc4, 0xb35e, 0xb35f, 0xb360, 0xedc8, 0xb361, 0xedc6, 0xedce, 0xd5e8, 0xb362, 0xedc9, 0xb363, 0xb364, 0xedc7, 0xedbe, 0xb365, 0xb366, 0xc5e9, 0xb367, 0xb368, 0xb369, 0xc6c6, 0xb36a, 0xb36b, 0xc9e9, 0xd4d2, 0xedc1, 0xedc2, 0xedc3, 0xedc5, 0xb36c, 0xc0f9, 0xb36d, 0xb4a1, 0xb36e, 0xb36f, 0xb370, 0xb371, 0xb9e8, 0xb372, 0xedd0, 0xb373, 0xb374, 0xb375, 0xb376, 0xedd1, 0xb377, 0xedca, 0xb378, 0xedcf, 0xb379, 0xcef8, 0xb37a, 0xb37b, 0xcbb6, 0xedcc, 0xedcd, 0xb37c, 0xb37d, 0xb37e, 0xb380, 0xb381, 0xcff5, 0xb382, 0xb383, 0xb384, 0xb385, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38c, 0xb38d, 0xedd2, 0xc1f2, 0xd3b2, 0xedcb, 0xc8b7, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, 0xb393, 0xb394, 0xb395, 0xbcef, 0xb396, 0xb397, 0xb398, 0xb399, 0xc5f0, 0xb39a, 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xb440, 0xb441, 0xb442, 0xedd6, 0xb443, 0xb5ef, 0xb444, 0xb445, 0xc2b5, 0xb0ad, 0xcbe9, 0xb446, 0xb447, 0xb1ae, 0xb448, 0xedd4, 0xb449, 0xb44a, 0xb44b, 0xcdeb, 0xb5e2, 0xb44c, 0xedd5, 0xedd3, 0xedd7, 0xb44d, 0xb44e, 0xb5fa, 0xb44f, 0xedd8, 0xb450, 0xedd9, 0xb451, 0xeddc, 0xb452, 0xb1cc, 0xb453, 0xb454, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, 0xb45a, 0xc5f6, 0xbcee, 0xedda, 0xccbc, 0xb2ea, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xeddb, 0xb45f, 0xb460, 0xb461, 0xb462, 0xc4eb, 0xb463, 0xb464, 0xb4c5, 0xb465, 0xb466, 0xb467, 0xb0f5, 0xb468, 0xb469, 0xb46a, 0xeddf, 0xc0da, 0xb4e8, 0xb46b, 0xb46c, 0xb46d, 0xb46e, 0xc5cd, 0xb46f, 0xb470, 0xb471, 0xeddd, 0xbfc4, 0xb472, 0xb473, 0xb474, 0xedde, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb480, 0xb481, 0xb482, 0xb483, 0xc4a5, 0xb484, 0xb485, 0xb486, 0xede0, 0xb487, 0xb488, 0xb489, 0xb48a, 0xb48b, 0xede1, 0xb48c, 0xede3, 0xb48d, 0xb48e, 0xc1d7, 0xb48f, 0xb490, 0xbbc7, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, /* 0x7900 .. 0x79ff */ 0xb496, 0xbdb8, 0xb497, 0xb498, 0xb499, 0xede2, 0xb49a, 0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb540, 0xb541, 0xb542, 0xb543, 0xb544, 0xb545, 0xede4, 0xb546, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xede6, 0xb550, 0xb551, 0xb552, 0xb553, 0xb554, 0xede5, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, 0xb55b, 0xb55c, 0xb55d, 0xb55e, 0xb55f, 0xb560, 0xb561, 0xb562, 0xb563, 0xede7, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xcabe, 0xecea, 0xc0f1, 0xb569, 0xc9e7, 0xb56a, 0xeceb, 0xc6ee, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xecec, 0xb56f, 0xc6ed, 0xeced, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xecf0, 0xb579, 0xb57a, 0xd7e6, 0xecf3, 0xb57b, 0xb57c, 0xecf1, 0xecee, 0xecef, 0xd7a3, 0xc9f1, 0xcbee, 0xecf4, 0xb57d, 0xecf2, 0xb57e, 0xb580, 0xcfe9, 0xb581, 0xecf6, 0xc6b1, 0xb582, 0xb583, 0xb584, 0xb585, 0xbcc0, 0xb586, 0xecf5, 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb5bb, 0xbbf6, 0xb58e, 0xecf7, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, 0xd9f7, 0xbdfb, 0xb594, 0xb595, 0xc2bb, 0xecf8, 0xb596, 0xb597, 0xb598, 0xb599, 0xecf9, 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb8a3, 0xb59e, 0xb59f, 0xb5a0, 0xb640, 0xb641, 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xecfa, 0xb647, 0xb648, 0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, 0xecfb, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xecfc, 0xb65e, 0xb65f, 0xb660, 0xb661, 0xb662, 0xd3ed, 0xd8ae, 0xc0eb, 0xb663, 0xc7dd, 0xbacc, 0xb664, 0xd0e3, 0xcbbd, 0xb665, 0xcdba, 0xb666, 0xb667, 0xb8d1, 0xb668, 0xb669, 0xb1fc, 0xb66a, 0xc7ef, 0xb66b, 0xd6d6, 0xb66c, 0xb66d, 0xb66e, 0xbfc6, 0xc3eb, 0xb66f, 0xb670, 0xeff5, 0xb671, 0xb672, 0xc3d8, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xd7e2, 0xb679, 0xb67a, 0xb67b, 0xeff7, 0xb3d3, 0xb67c, 0xc7d8, 0xd1ed, 0xb67d, 0xd6c8, 0xb67e, 0xeff8, 0xb680, 0xeff6, 0xb681, 0xbbfd, 0xb3c6, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xbdd5, 0xb689, 0xb68a, 0xd2c6, 0xb68b, 0xbbe0, 0xb68c, 0xb68d, /* 0x7a00 .. 0x7aff */ 0xcfa1, 0xb68e, 0xeffc, 0xeffb, 0xb68f, 0xb690, 0xeff9, 0xb691, 0xb692, 0xb693, 0xb694, 0xb3cc, 0xb695, 0xc9d4, 0xcbb0, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, 0xeffe, 0xb69b, 0xb69c, 0xb0de, 0xb69d, 0xb69e, 0xd6c9, 0xb69f, 0xb6a0, 0xb740, 0xeffd, 0xb741, 0xb3ed, 0xb742, 0xb743, 0xf6d5, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751, 0xb752, 0xcec8, 0xb753, 0xb754, 0xb755, 0xf0a2, 0xb756, 0xf0a1, 0xb757, 0xb5be, 0xbcda, 0xbbfc, 0xb758, 0xb8e5, 0xb759, 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xc4c2, 0xb75f, 0xb760, 0xb761, 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xf0a3, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xcbeb, 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb772, 0xb773, 0xb774, 0xb775, 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77c, 0xb77d, 0xb77e, 0xb780, 0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, 0xf0a6, 0xb787, 0xb788, 0xb789, 0xd1a8, 0xb78a, 0xbebf, 0xc7ee, 0xf1b6, 0xf1b7, 0xbfd5, 0xb78b, 0xb78c, 0xb78d, 0xb78e, 0xb4a9, 0xf1b8, 0xcdbb, 0xb78f, 0xc7d4, 0xd5ad, 0xb790, 0xf1b9, 0xb791, 0xf1ba, 0xb792, 0xb793, 0xb794, 0xb795, 0xc7cf, 0xb796, 0xb797, 0xb798, 0xd2a4, 0xd6cf, 0xb799, 0xb79a, 0xf1bb, 0xbdd1, 0xb4b0, 0xbebd, 0xb79b, 0xb79c, 0xb79d, 0xb4dc, 0xced1, 0xb79e, 0xbfdf, 0xf1bd, 0xb79f, 0xb7a0, 0xb840, 0xb841, 0xbffa, 0xf1bc, 0xb842, 0xf1bf, 0xb843, 0xb844, 0xb845, 0xf1be, 0xf1c0, 0xb846, 0xb847, 0xb848, 0xb849, 0xb84a, 0xf1c1, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb851, 0xb852, 0xb853, 0xb854, 0xb855, 0xc1fe, 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, 0xb85c, 0xb85d, 0xb85e, 0xb85f, 0xb860, 0xc1a2, 0xb861, 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, 0xcafa, 0xb86b, 0xb86c, 0xd5be, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xbeba, 0xbeb9, 0xd5c2, 0xb871, 0xb872, 0xbfa2, 0xb873, 0xcdaf, 0xf1b5, 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, 0xbddf, 0xb87a, 0xb6cb, 0xb87b, 0xb87c, 0xb87d, 0xb87e, 0xb880, 0xb881, 0xb882, 0xb883, 0xb884, 0xd6f1, 0xf3c3, 0xb885, 0xb886, 0xf3c4, 0xb887, 0xb8cd, /* 0x7b00 .. 0x7bff */ 0xb888, 0xb889, 0xb88a, 0xf3c6, 0xf3c7, 0xb88b, 0xb0ca, 0xb88c, 0xf3c5, 0xb88d, 0xf3c9, 0xcbf1, 0xb88e, 0xb88f, 0xb890, 0xf3cb, 0xb891, 0xd0a6, 0xb892, 0xb893, 0xb1ca, 0xf3c8, 0xb894, 0xb895, 0xb896, 0xf3cf, 0xb897, 0xb5d1, 0xb898, 0xb899, 0xf3d7, 0xb89a, 0xf3d2, 0xb89b, 0xb89c, 0xb89d, 0xf3d4, 0xf3d3, 0xb7fb, 0xb89e, 0xb1bf, 0xb89f, 0xf3ce, 0xf3ca, 0xb5da, 0xb8a0, 0xf3d0, 0xb940, 0xb941, 0xf3d1, 0xb942, 0xf3d5, 0xb943, 0xb944, 0xb945, 0xb946, 0xf3cd, 0xb947, 0xbce3, 0xb948, 0xc1fd, 0xb949, 0xf3d6, 0xb94a, 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xb94f, 0xf3da, 0xb950, 0xf3cc, 0xb951, 0xb5c8, 0xb952, 0xbdee, 0xf3dc, 0xb953, 0xb954, 0xb7a4, 0xbff0, 0xd6fe, 0xcdb2, 0xb955, 0xb4f0, 0xb956, 0xb2df, 0xb957, 0xf3d8, 0xb958, 0xf3d9, 0xc9b8, 0xb959, 0xf3dd, 0xb95a, 0xb95b, 0xf3de, 0xb95c, 0xf3e1, 0xb95d, 0xb95e, 0xb95f, 0xb960, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xf3df, 0xb968, 0xb969, 0xf3e3, 0xf3e2, 0xb96a, 0xb96b, 0xf3db, 0xb96c, 0xbfea, 0xb96d, 0xb3ef, 0xb96e, 0xf3e0, 0xb96f, 0xb970, 0xc7a9, 0xb971, 0xbcf2, 0xb972, 0xb973, 0xb974, 0xb975, 0xf3eb, 0xb976, 0xb977, 0xb978, 0xb979, 0xb97a, 0xb97b, 0xb97c, 0xb9bf, 0xb97d, 0xb97e, 0xf3e4, 0xb980, 0xb981, 0xb982, 0xb2ad, 0xbbfe, 0xb983, 0xcbe3, 0xb984, 0xb985, 0xb986, 0xb987, 0xf3ed, 0xf3e9, 0xb988, 0xb989, 0xb98a, 0xb9dc, 0xf3ee, 0xb98b, 0xb98c, 0xb98d, 0xf3e5, 0xf3e6, 0xf3ea, 0xc2e1, 0xf3ec, 0xf3ef, 0xf3e8, 0xbcfd, 0xb98e, 0xb98f, 0xb990, 0xcfe4, 0xb991, 0xb992, 0xf3f0, 0xb993, 0xb994, 0xb995, 0xf3e7, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, 0xb99d, 0xf3f2, 0xb99e, 0xb99f, 0xb9a0, 0xba40, 0xd7ad, 0xc6aa, 0xba41, 0xba42, 0xba43, 0xba44, 0xf3f3, 0xba45, 0xba46, 0xba47, 0xba48, 0xf3f1, 0xba49, 0xc2a8, 0xba4a, 0xba4b, 0xba4c, 0xba4d, 0xba4e, 0xb8dd, 0xf3f5, 0xba4f, 0xba50, 0xf3f4, 0xba51, 0xba52, 0xba53, 0xb4db, 0xba54, 0xba55, 0xba56, 0xf3f6, 0xf3f7, 0xba57, 0xba58, 0xba59, 0xf3f8, 0xba5a, 0xba5b, 0xba5c, 0xc0ba, 0xba5d, 0xba5e, 0xc0e9, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63, 0xc5f1, 0xba64, 0xba65, 0xba66, 0xba67, 0xf3fb, 0xba68, 0xf3fa, 0xba69, /* 0x7c00 .. 0x7cff */ 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0xba70, 0xb4d8, 0xba71, 0xba72, 0xba73, 0xf3fe, 0xf3f9, 0xba74, 0xba75, 0xf3fc, 0xba76, 0xba77, 0xba78, 0xba79, 0xba7a, 0xba7b, 0xf3fd, 0xba7c, 0xba7d, 0xba7e, 0xba80, 0xba81, 0xba82, 0xba83, 0xba84, 0xf4a1, 0xba85, 0xba86, 0xba87, 0xba88, 0xba89, 0xba8a, 0xf4a3, 0xbbc9, 0xba8b, 0xba8c, 0xf4a2, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xf4a4, 0xba9a, 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xb2be, 0xf4a6, 0xf4a5, 0xbaa0, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb44, 0xbb45, 0xbb46, 0xbb47, 0xbb48, 0xbb49, 0xbcae, 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xbb4e, 0xbb4f, 0xbb50, 0xbb51, 0xbb52, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xbb58, 0xbb59, 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb61, 0xbb62, 0xbb63, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xc3d7, 0xd9e1, 0xbb6f, 0xbb70, 0xbb71, 0xbb72, 0xbb73, 0xbb74, 0xc0e0, 0xf4cc, 0xd7d1, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb80, 0xb7db, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xf4ce, 0xc1a3, 0xbb88, 0xbb89, 0xc6c9, 0xbb8a, 0xb4d6, 0xd5b3, 0xbb8b, 0xbb8c, 0xbb8d, 0xf4d0, 0xf4cf, 0xf4d1, 0xcbda, 0xbb8e, 0xbb8f, 0xf4d2, 0xbb90, 0xd4c1, 0xd6e0, 0xbb91, 0xbb92, 0xbb93, 0xbb94, 0xb7e0, 0xbb95, 0xbb96, 0xbb97, 0xc1b8, 0xbb98, 0xbb99, 0xc1bb, 0xf4d3, 0xbeac, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xb4e2, 0xbb9f, 0xbba0, 0xf4d4, 0xf4d5, 0xbeab, 0xbc40, 0xbc41, 0xf4d6, 0xbc42, 0xbc43, 0xbc44, 0xf4db, 0xbc45, 0xf4d7, 0xf4da, 0xbc46, 0xbafd, 0xbc47, 0xf4d8, 0xf4d9, 0xbc48, 0xbc49, 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xb8e2, 0xccc7, 0xf4dc, 0xbc4f, 0xb2da, 0xbc50, 0xbc51, 0xc3d3, 0xbc52, 0xbc53, 0xd4e3, 0xbfb7, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, 0xbc5a, 0xf4dd, 0xbc5b, 0xbc5c, 0xbc5d, 0xbc5e, 0xbc5f, 0xbc60, 0xc5b4, 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xf4e9, 0xbc69, 0xbc6a, 0xcfb5, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, /* 0x7d00 .. 0x7dff */ 0xbc6f, 0xbc70, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xcec9, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc80, 0xbc81, 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xbc86, 0xbc87, 0xbc88, 0xbc89, 0xbc8a, 0xbc8b, 0xbc8c, 0xbc8d, 0xbc8e, 0xcbd8, 0xbc8f, 0xcbf7, 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbdf4, 0xbc94, 0xbc95, 0xbc96, 0xd7cf, 0xbc97, 0xbc98, 0xbc99, 0xc0db, 0xbc9a, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd40, 0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49, 0xbd4a, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd58, 0xbd59, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61, 0xbd62, 0xbd63, 0xbd64, 0xbd65, 0xbd66, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xd0f5, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xf4ea, 0xbd80, 0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xbe49, 0xbe4a, 0xbe4b, 0xbe4c, 0xf4eb, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xf4ec, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, 0xbe5a, 0xbe5b, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe60, 0xbe61, 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xbe69, 0xbe6a, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe70, 0xbe71, 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7b, 0xbe7c, 0xbe7d, 0xbe7e, 0xbe80, 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xbe90, 0xbe91, 0xbe92, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe98, 0xbe99, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf40, 0xbf41, 0xbf42, 0xbf43, 0xbf44, /* 0x7e00 .. 0x7eff */ 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf80, 0xf7e3, 0xbf81, 0xbf82, 0xbf83, 0xbf84, 0xbf85, 0xb7b1, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, 0xf4ed, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, 0xbf94, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, 0xbf9e, 0xbf9f, 0xbfa0, 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, 0xc05a, 0xc05b, 0xc05c, 0xc05d, 0xc05e, 0xc05f, 0xc060, 0xc061, 0xc062, 0xc063, 0xd7eb, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, 0xc07a, 0xc07b, 0xf4ee, 0xc07c, 0xc07d, 0xc07e, 0xe6f9, 0xbec0, 0xe6fa, 0xbaec, 0xe6fb, 0xcfcb, 0xe6fc, 0xd4bc, 0xbcb6, 0xe6fd, 0xe6fe, 0xbccd, 0xc8d2, 0xceb3, 0xe7a1, 0xc080, 0xb4bf, 0xe7a2, 0xc9b4, 0xb8d9, 0xc4c9, 0xc081, 0xd7dd, 0xc2da, 0xb7d7, 0xd6bd, 0xcec6, 0xb7c4, 0xc082, 0xc083, 0xc5a6, 0xe7a3, 0xcfdf, 0xe7a4, 0xe7a5, 0xe7a6, 0xc1b7, 0xd7e9, 0xc9f0, 0xcfb8, 0xd6af, 0xd6d5, 0xe7a7, 0xb0ed, 0xe7a8, 0xe7a9, 0xc9dc, 0xd2ef, 0xbead, 0xe7aa, 0xb0f3, 0xc8de, 0xbde1, 0xe7ab, 0xc8c6, 0xc084, 0xe7ac, 0xbbe6, 0xb8f8, 0xd1a4, 0xe7ad, 0xc2e7, 0xbef8, 0xbdca, 0xcdb3, 0xe7ae, 0xe7af, 0xbeee, 0xd0e5, 0xc085, 0xcbe7, 0xccd0, 0xbccc, 0xe7b0, 0xbca8, 0xd0f7, 0xe7b1, 0xc086, 0xd0f8, 0xe7b2, 0xe7b3, 0xb4c2, 0xe7b4, 0xe7b5, 0xc9fe, 0xceac, 0xc3e0, 0xe7b7, 0xb1c1, 0xb3f1, 0xc087, 0xe7b8, 0xe7b9, 0xd7db, 0xd5c0, 0xe7ba, 0xc2cc, /* 0x7f00 .. 0x7fff */ 0xd7ba, 0xe7bb, 0xe7bc, 0xe7bd, 0xbcea, 0xc3e5, 0xc0c2, 0xe7be, 0xe7bf, 0xbca9, 0xc088, 0xe7c0, 0xe7c1, 0xe7b6, 0xb6d0, 0xe7c2, 0xc089, 0xe7c3, 0xe7c4, 0xbbba, 0xb5de, 0xc2c6, 0xb1e0, 0xe7c5, 0xd4b5, 0xe7c6, 0xb8bf, 0xe7c8, 0xe7c7, 0xb7ec, 0xc08a, 0xe7c9, 0xb2f8, 0xe7ca, 0xe7cb, 0xe7cc, 0xe7cd, 0xe7ce, 0xe7cf, 0xe7d0, 0xd3a7, 0xcbf5, 0xe7d1, 0xe7d2, 0xe7d3, 0xe7d4, 0xc9c9, 0xe7d5, 0xe7d6, 0xe7d7, 0xe7d8, 0xe7d9, 0xbdc9, 0xe7da, 0xf3be, 0xc08b, 0xb8d7, 0xc08c, 0xc8b1, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc091, 0xc092, 0xc093, 0xf3bf, 0xc094, 0xf3c0, 0xf3c1, 0xc095, 0xc096, 0xc097, 0xc098, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xb9de, 0xcdf8, 0xc09f, 0xc0a0, 0xd8e8, 0xbab1, 0xc140, 0xc2de, 0xeeb7, 0xc141, 0xb7a3, 0xc142, 0xc143, 0xc144, 0xc145, 0xeeb9, 0xc146, 0xeeb8, 0xb0d5, 0xc147, 0xc148, 0xc149, 0xc14a, 0xc14b, 0xeebb, 0xd5d6, 0xd7ef, 0xc14c, 0xc14d, 0xc14e, 0xd6c3, 0xc14f, 0xc150, 0xeebd, 0xcaf0, 0xc151, 0xeebc, 0xc152, 0xc153, 0xc154, 0xc155, 0xeebe, 0xc156, 0xc157, 0xc158, 0xc159, 0xeec0, 0xc15a, 0xc15b, 0xeebf, 0xc15c, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, 0xc162, 0xc163, 0xd1f2, 0xc164, 0xc7bc, 0xc165, 0xc3c0, 0xc166, 0xc167, 0xc168, 0xc169, 0xc16a, 0xb8e1, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc1e7, 0xc170, 0xc171, 0xf4c6, 0xd0df, 0xf4c7, 0xc172, 0xcfdb, 0xc173, 0xc174, 0xc8ba, 0xc175, 0xc176, 0xf4c8, 0xc177, 0xc178, 0xc179, 0xc17a, 0xc17b, 0xc17c, 0xc17d, 0xf4c9, 0xf4ca, 0xc17e, 0xf4cb, 0xc180, 0xc181, 0xc182, 0xc183, 0xc184, 0xd9fa, 0xb8fe, 0xc185, 0xc186, 0xe5f1, 0xd3f0, 0xc187, 0xf4e0, 0xc188, 0xcecc, 0xc189, 0xc18a, 0xc18b, 0xb3e1, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xf1b4, 0xc190, 0xd2ee, 0xc191, 0xf4e1, 0xc192, 0xc193, 0xc194, 0xc195, 0xc196, 0xcfe8, 0xf4e2, 0xc197, 0xc198, 0xc7cc, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xb5d4, 0xb4e4, 0xf4e4, 0xc19f, 0xc1a0, 0xc240, 0xf4e3, 0xf4e5, 0xc241, 0xc242, 0xf4e6, 0xc243, 0xc244, 0xc245, 0xc246, 0xf4e7, 0xc247, 0xbab2, 0xb0bf, 0xc248, 0xf4e8, 0xc249, 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xb7ad, 0xd2ed, 0xc250, 0xc251, 0xc252, /* 0x8000 .. 0x80ff */ 0xd2ab, 0xc0cf, 0xc253, 0xbfbc, 0xeba3, 0xd5df, 0xeac8, 0xc254, 0xc255, 0xc256, 0xc257, 0xf1f3, 0xb6f8, 0xcba3, 0xc258, 0xc259, 0xc4cd, 0xc25a, 0xf1e7, 0xc25b, 0xf1e8, 0xb8fb, 0xf1e9, 0xbac4, 0xd4c5, 0xb0d2, 0xc25c, 0xc25d, 0xf1ea, 0xc25e, 0xc25f, 0xc260, 0xf1eb, 0xc261, 0xf1ec, 0xc262, 0xc263, 0xf1ed, 0xf1ee, 0xf1ef, 0xf1f1, 0xf1f0, 0xc5d5, 0xc264, 0xc265, 0xc266, 0xc267, 0xc268, 0xc269, 0xf1f2, 0xc26a, 0xb6fa, 0xc26b, 0xf1f4, 0xd2ae, 0xdec7, 0xcbca, 0xc26c, 0xc26d, 0xb3dc, 0xc26e, 0xb5a2, 0xc26f, 0xb9a2, 0xc270, 0xc271, 0xc4f4, 0xf1f5, 0xc272, 0xc273, 0xf1f6, 0xc274, 0xc275, 0xc276, 0xc1c4, 0xc1fb, 0xd6b0, 0xf1f7, 0xc277, 0xc278, 0xc279, 0xc27a, 0xf1f8, 0xc27b, 0xc1aa, 0xc27c, 0xc27d, 0xc27e, 0xc6b8, 0xc280, 0xbedb, 0xc281, 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc288, 0xc289, 0xc28a, 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xf1f9, 0xb4cf, 0xc28f, 0xc290, 0xc291, 0xc292, 0xc293, 0xc294, 0xf1fa, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc29f, 0xc2a0, 0xc340, 0xedb2, 0xedb1, 0xc341, 0xc342, 0xcbe0, 0xd2de, 0xc343, 0xcbc1, 0xd5d8, 0xc344, 0xc8e2, 0xc345, 0xc0df, 0xbca1, 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, 0xc34b, 0xebc1, 0xc34c, 0xc34d, 0xd0a4, 0xc34e, 0xd6e2, 0xc34f, 0xb6c7, 0xb8d8, 0xebc0, 0xb8ce, 0xc350, 0xebbf, 0xb3a6, 0xb9c9, 0xd6ab, 0xc351, 0xb7f4, 0xb7ca, 0xc352, 0xc353, 0xc354, 0xbce7, 0xb7be, 0xebc6, 0xc355, 0xebc7, 0xb0b9, 0xbfcf, 0xc356, 0xebc5, 0xd3fd, 0xc357, 0xebc8, 0xc358, 0xc359, 0xebc9, 0xc35a, 0xc35b, 0xb7ce, 0xc35c, 0xebc2, 0xebc4, 0xc9f6, 0xd6d7, 0xd5cd, 0xd0b2, 0xebcf, 0xceb8, 0xebd0, 0xc35d, 0xb5a8, 0xc35e, 0xc35f, 0xc360, 0xc361, 0xc362, 0xb1b3, 0xebd2, 0xcca5, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc368, 0xc369, 0xc5d6, 0xebd3, 0xc36a, 0xebd1, 0xc5df, 0xebce, 0xcaa4, 0xebd5, 0xb0fb, 0xc36b, 0xc36c, 0xbafa, 0xc36d, 0xc36e, 0xd8b7, 0xf1e3, 0xc36f, 0xebca, 0xebcb, 0xebcc, 0xebcd, 0xebd6, 0xe6c0, 0xebd9, 0xc370, 0xbfe8, 0xd2c8, 0xebd7, 0xebdc, 0xb8ec, 0xebd8, 0xc371, 0xbdba, 0xc372, 0xd0d8, 0xc373, 0xb0b7, 0xc374, 0xebdd, 0xc4dc, 0xc375, 0xc376, /* 0x8100 .. 0x81ff */ 0xc377, 0xc378, 0xd6ac, 0xc379, 0xc37a, 0xc37b, 0xb4e0, 0xc37c, 0xc37d, 0xc2f6, 0xbcb9, 0xc37e, 0xc380, 0xebda, 0xebdb, 0xd4e0, 0xc6ea, 0xc4d4, 0xebdf, 0xc5a7, 0xd9f5, 0xc381, 0xb2b1, 0xc382, 0xebe4, 0xc383, 0xbdc5, 0xc384, 0xc385, 0xc386, 0xebe2, 0xc387, 0xc388, 0xc389, 0xc38a, 0xc38b, 0xc38c, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, 0xc393, 0xebe3, 0xc394, 0xc395, 0xb8ac, 0xc396, 0xcdd1, 0xebe5, 0xc397, 0xc398, 0xc399, 0xebe1, 0xc39a, 0xc1b3, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc6a2, 0xc3a0, 0xc440, 0xc441, 0xc442, 0xc443, 0xc444, 0xc445, 0xccf3, 0xc446, 0xebe6, 0xc447, 0xc0b0, 0xd2b8, 0xebe7, 0xc448, 0xc449, 0xc44a, 0xb8af, 0xb8ad, 0xc44b, 0xebe8, 0xc7bb, 0xcdf3, 0xc44c, 0xc44d, 0xc44e, 0xebea, 0xebeb, 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, 0xebed, 0xc454, 0xc455, 0xc456, 0xc457, 0xd0c8, 0xc458, 0xebf2, 0xc459, 0xebee, 0xc45a, 0xc45b, 0xc45c, 0xebf1, 0xc8f9, 0xc45d, 0xd1fc, 0xebec, 0xc45e, 0xc45f, 0xebe9, 0xc460, 0xc461, 0xc462, 0xc463, 0xb8b9, 0xcfd9, 0xc4e5, 0xebef, 0xebf0, 0xccda, 0xcdc8, 0xb0f2, 0xc464, 0xebf6, 0xc465, 0xc466, 0xc467, 0xc468, 0xc469, 0xebf5, 0xc46a, 0xb2b2, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xb8e0, 0xc46f, 0xebf7, 0xc470, 0xc471, 0xc472, 0xc473, 0xc474, 0xc475, 0xb1ec, 0xc476, 0xc477, 0xccc5, 0xc4a4, 0xcfa5, 0xc478, 0xc479, 0xc47a, 0xc47b, 0xc47c, 0xebf9, 0xc47d, 0xc47e, 0xeca2, 0xc480, 0xc5f2, 0xc481, 0xebfa, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc9c5, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xe2df, 0xebfe, 0xc490, 0xc491, 0xc492, 0xc493, 0xcdce, 0xeca1, 0xb1db, 0xd3b7, 0xc494, 0xc495, 0xd2dc, 0xc496, 0xc497, 0xc498, 0xebfd, 0xc499, 0xebfb, 0xc49a, 0xc49b, 0xc49c, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc540, 0xc541, 0xc542, 0xc543, 0xc544, 0xc545, 0xc546, 0xc547, 0xc548, 0xc549, 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xb3bc, 0xc54f, 0xc550, 0xc551, 0xeab0, 0xc552, 0xc553, 0xd7d4, 0xc554, 0xf4ab, 0xb3f4, 0xc555, 0xc556, 0xc557, 0xc558, 0xc559, 0xd6c1, 0xd6c2, 0xc55a, 0xc55b, 0xc55c, 0xc55d, 0xc55e, 0xc55f, 0xd5e9, 0xbeca, 0xc560, 0xf4a7, 0xc561, /* 0x8200 .. 0x82ff */ 0xd2a8, 0xf4a8, 0xf4a9, 0xc562, 0xf4aa, 0xbecb, 0xd3df, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc9e0, 0xc9e1, 0xc568, 0xc569, 0xf3c2, 0xc56a, 0xcae6, 0xc56b, 0xccf2, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, 0xe2b6, 0xcbb4, 0xc572, 0xcee8, 0xd6db, 0xc573, 0xf4ad, 0xf4ae, 0xf4af, 0xc574, 0xc575, 0xc576, 0xc577, 0xf4b2, 0xc578, 0xbabd, 0xf4b3, 0xb0e3, 0xf4b0, 0xc579, 0xf4b1, 0xbda2, 0xb2d5, 0xc57a, 0xf4b6, 0xf4b7, 0xb6e6, 0xb2b0, 0xcfcf, 0xf4b4, 0xb4ac, 0xc57b, 0xf4b5, 0xc57c, 0xc57d, 0xf4b8, 0xc57e, 0xc580, 0xc581, 0xc582, 0xc583, 0xf4b9, 0xc584, 0xc585, 0xcda7, 0xc586, 0xf4ba, 0xc587, 0xf4bb, 0xc588, 0xc589, 0xc58a, 0xf4bc, 0xc58b, 0xc58c, 0xc58d, 0xc58e, 0xc58f, 0xc590, 0xc591, 0xc592, 0xcbd2, 0xc593, 0xf4bd, 0xc594, 0xc595, 0xc596, 0xc597, 0xf4be, 0xc598, 0xc599, 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc59f, 0xf4bf, 0xc5a0, 0xc640, 0xc641, 0xc642, 0xc643, 0xf4de, 0xc1bc, 0xbce8, 0xc644, 0xc9ab, 0xd1de, 0xe5f5, 0xc645, 0xc646, 0xc647, 0xc648, 0xdcb3, 0xd2d5, 0xc649, 0xc64a, 0xdcb4, 0xb0ac, 0xdcb5, 0xc64b, 0xc64c, 0xbdda, 0xc64d, 0xdcb9, 0xc64e, 0xc64f, 0xc650, 0xd8c2, 0xc651, 0xdcb7, 0xd3f3, 0xc652, 0xc9d6, 0xdcba, 0xdcb6, 0xc653, 0xdcbb, 0xc3a2, 0xc654, 0xc655, 0xc656, 0xc657, 0xdcbc, 0xdcc5, 0xdcbd, 0xc658, 0xc659, 0xcedf, 0xd6a5, 0xc65a, 0xdccf, 0xc65b, 0xdccd, 0xc65c, 0xc65d, 0xdcd2, 0xbde6, 0xc2ab, 0xc65e, 0xdcb8, 0xdccb, 0xdcce, 0xdcbe, 0xb7d2, 0xb0c5, 0xdcc7, 0xd0be, 0xdcc1, 0xbba8, 0xc65f, 0xb7bc, 0xdccc, 0xc660, 0xc661, 0xdcc6, 0xdcbf, 0xc7db, 0xc662, 0xc663, 0xc664, 0xd1bf, 0xdcc0, 0xc665, 0xc666, 0xdcca, 0xc667, 0xc668, 0xdcd0, 0xc669, 0xc66a, 0xcead, 0xdcc2, 0xc66b, 0xdcc3, 0xdcc8, 0xdcc9, 0xb2d4, 0xdcd1, 0xcbd5, 0xc66c, 0xd4b7, 0xdcdb, 0xdcdf, 0xcca6, 0xdce6, 0xc66d, 0xc3e7, 0xdcdc, 0xc66e, 0xc66f, 0xbfc1, 0xdcd9, 0xc670, 0xb0fa, 0xb9b6, 0xdce5, 0xdcd3, 0xc671, 0xdcc4, 0xdcd6, 0xc8f4, 0xbfe0, 0xc672, 0xc673, 0xc674, 0xc675, 0xc9bb, 0xc676, 0xc677, 0xc678, 0xb1bd, 0xc679, 0xd3a2, 0xc67a, 0xc67b, 0xdcda, 0xc67c, 0xc67d, 0xdcd5, 0xc67e, 0xc6bb, 0xc680, 0xdcde, 0xc681, 0xc682, 0xc683, 0xc684, /* 0x8300 .. 0x83ff */ 0xc685, 0xd7c2, 0xc3af, 0xb7b6, 0xc7d1, 0xc3a9, 0xdce2, 0xdcd8, 0xdceb, 0xdcd4, 0xc686, 0xc687, 0xdcdd, 0xc688, 0xbea5, 0xdcd7, 0xc689, 0xdce0, 0xc68a, 0xc68b, 0xdce3, 0xdce4, 0xc68c, 0xdcf8, 0xc68d, 0xc68e, 0xdce1, 0xdda2, 0xdce7, 0xc68f, 0xc690, 0xc691, 0xc692, 0xc693, 0xc694, 0xc695, 0xc696, 0xc697, 0xc698, 0xbceb, 0xb4c4, 0xc699, 0xc69a, 0xc3a3, 0xb2e7, 0xdcfa, 0xc69b, 0xdcf2, 0xc69c, 0xdcef, 0xc69d, 0xdcfc, 0xdcee, 0xd2f0, 0xb2e8, 0xc69e, 0xc8d7, 0xc8e3, 0xdcfb, 0xc69f, 0xdced, 0xc6a0, 0xc740, 0xc741, 0xdcf7, 0xc742, 0xc743, 0xdcf5, 0xc744, 0xc745, 0xbea3, 0xdcf4, 0xc746, 0xb2dd, 0xc747, 0xc748, 0xc749, 0xc74a, 0xc74b, 0xdcf3, 0xbcf6, 0xdce8, 0xbbc4, 0xc74c, 0xc0f3, 0xc74d, 0xc74e, 0xc74f, 0xc750, 0xc751, 0xbcd4, 0xdce9, 0xdcea, 0xc752, 0xdcf1, 0xdcf6, 0xdcf9, 0xb5b4, 0xc753, 0xc8d9, 0xbbe7, 0xdcfe, 0xdcfd, 0xd3ab, 0xdda1, 0xdda3, 0xdda5, 0xd2f1, 0xdda4, 0xdda6, 0xdda7, 0xd2a9, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc759, 0xc75a, 0xbac9, 0xdda9, 0xc75b, 0xc75c, 0xddb6, 0xddb1, 0xddb4, 0xc75d, 0xc75e, 0xc75f, 0xc760, 0xc761, 0xc762, 0xc763, 0xddb0, 0xc6ce, 0xc764, 0xc765, 0xc0f2, 0xc766, 0xc767, 0xc768, 0xc769, 0xc9af, 0xc76a, 0xc76b, 0xc76c, 0xdcec, 0xddae, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xddb7, 0xc771, 0xc772, 0xdcf0, 0xddaf, 0xc773, 0xddb8, 0xc774, 0xddac, 0xc775, 0xc776, 0xc777, 0xc778, 0xc779, 0xc77a, 0xc77b, 0xddb9, 0xddb3, 0xddad, 0xc4aa, 0xc77c, 0xc77d, 0xc77e, 0xc780, 0xdda8, 0xc0b3, 0xc1ab, 0xddaa, 0xddab, 0xc781, 0xddb2, 0xbbf1, 0xddb5, 0xd3a8, 0xddba, 0xc782, 0xddbb, 0xc3a7, 0xc783, 0xc784, 0xddd2, 0xddbc, 0xc785, 0xc786, 0xc787, 0xddd1, 0xc788, 0xb9bd, 0xc789, 0xc78a, 0xbed5, 0xc78b, 0xbefa, 0xc78c, 0xc78d, 0xbaca, 0xc78e, 0xc78f, 0xc790, 0xc791, 0xddca, 0xc792, 0xddc5, 0xc793, 0xddbf, 0xc794, 0xc795, 0xc796, 0xb2cb, 0xddc3, 0xc797, 0xddcb, 0xb2a4, 0xddd5, 0xc798, 0xc799, 0xc79a, 0xddbe, 0xc79b, 0xc79c, 0xc79d, 0xc6d0, 0xddd0, 0xc79e, 0xc79f, 0xc7a0, 0xc840, 0xc841, 0xddd4, 0xc1e2, 0xb7c6, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xddce, 0xddcf, 0xc847, 0xc848, 0xc849, 0xddc4, 0xc84a, 0xc84b, /* 0x8400 .. 0x84ff */ 0xc84c, 0xddbd, 0xc84d, 0xddcd, 0xccd1, 0xc84e, 0xddc9, 0xc84f, 0xc850, 0xc851, 0xc852, 0xddc2, 0xc3c8, 0xc6bc, 0xceae, 0xddcc, 0xc853, 0xddc8, 0xc854, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xddc1, 0xc85a, 0xc85b, 0xc85c, 0xddc6, 0xc2dc, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, 0xd3a9, 0xd3aa, 0xddd3, 0xcff4, 0xc8f8, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, 0xc86a, 0xdde6, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc870, 0xddc7, 0xc871, 0xc872, 0xc873, 0xdde0, 0xc2e4, 0xc874, 0xc875, 0xc876, 0xc877, 0xc878, 0xc879, 0xc87a, 0xc87b, 0xdde1, 0xc87c, 0xc87d, 0xc87e, 0xc880, 0xc881, 0xc882, 0xc883, 0xc884, 0xc885, 0xc886, 0xddd7, 0xc887, 0xc888, 0xc889, 0xc88a, 0xc88b, 0xd6f8, 0xc88c, 0xddd9, 0xddd8, 0xb8f0, 0xddd6, 0xc88d, 0xc88e, 0xc88f, 0xc890, 0xc6cf, 0xc891, 0xb6ad, 0xc892, 0xc893, 0xc894, 0xc895, 0xc896, 0xdde2, 0xc897, 0xbaf9, 0xd4e1, 0xdde7, 0xc898, 0xc899, 0xc89a, 0xb4d0, 0xc89b, 0xddda, 0xc89c, 0xbffb, 0xdde3, 0xc89d, 0xdddf, 0xc89e, 0xdddd, 0xc89f, 0xc8a0, 0xc940, 0xc941, 0xc942, 0xc943, 0xc944, 0xb5d9, 0xc945, 0xc946, 0xc947, 0xc948, 0xdddb, 0xdddc, 0xddde, 0xc949, 0xbdaf, 0xdde4, 0xc94a, 0xdde5, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc950, 0xc951, 0xc952, 0xddf5, 0xc953, 0xc3c9, 0xc954, 0xc955, 0xcbe2, 0xc956, 0xc957, 0xc958, 0xc959, 0xddf2, 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc960, 0xc961, 0xc962, 0xc963, 0xc964, 0xc965, 0xc966, 0xd8e1, 0xc967, 0xc968, 0xc6d1, 0xc969, 0xddf4, 0xc96a, 0xc96b, 0xc96c, 0xd5f4, 0xddf3, 0xddf0, 0xc96d, 0xc96e, 0xddec, 0xc96f, 0xddef, 0xc970, 0xdde8, 0xc971, 0xc972, 0xd0ee, 0xc973, 0xc974, 0xc975, 0xc976, 0xc8d8, 0xddee, 0xc977, 0xc978, 0xdde9, 0xc979, 0xc97a, 0xddea, 0xcbf2, 0xc97b, 0xdded, 0xc97c, 0xc97d, 0xb1cd, 0xc97e, 0xc980, 0xc981, 0xc982, 0xc983, 0xc984, 0xc0b6, 0xc985, 0xbcbb, 0xddf1, 0xc986, 0xc987, 0xddf7, 0xc988, 0xddf6, 0xddeb, 0xc989, 0xc98a, 0xc98b, 0xc98c, 0xc98d, 0xc5ee, 0xc98e, 0xc98f, 0xc990, 0xddfb, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, 0xc998, 0xc999, 0xc99a, 0xc99b, 0xdea4, 0xc99c, 0xc99d, 0xdea3, /* 0x8500 .. 0x85ff */ 0xc99e, 0xc99f, 0xc9a0, 0xca40, 0xca41, 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0xca47, 0xca48, 0xddf8, 0xca49, 0xca4a, 0xca4b, 0xca4c, 0xc3ef, 0xca4d, 0xc2fb, 0xca4e, 0xca4f, 0xca50, 0xd5e1, 0xca51, 0xca52, 0xceb5, 0xca53, 0xca54, 0xca55, 0xca56, 0xddfd, 0xca57, 0xb2cc, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5c, 0xca5d, 0xca5e, 0xca5f, 0xca60, 0xc4e8, 0xcadf, 0xca61, 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca68, 0xca69, 0xca6a, 0xc7be, 0xddfa, 0xddfc, 0xddfe, 0xdea2, 0xb0aa, 0xb1ce, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xdeac, 0xca70, 0xca71, 0xca72, 0xca73, 0xdea6, 0xbdb6, 0xc8ef, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, 0xca7a, 0xca7b, 0xca7c, 0xca7d, 0xca7e, 0xdea1, 0xca80, 0xca81, 0xdea5, 0xca82, 0xca83, 0xca84, 0xca85, 0xdea9, 0xca86, 0xca87, 0xca88, 0xca89, 0xca8a, 0xdea8, 0xca8b, 0xca8c, 0xca8d, 0xdea7, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, 0xca93, 0xca94, 0xca95, 0xca96, 0xdead, 0xca97, 0xd4cc, 0xca98, 0xca99, 0xca9a, 0xca9b, 0xdeb3, 0xdeaa, 0xdeae, 0xca9c, 0xca9d, 0xc0d9, 0xca9e, 0xca9f, 0xcaa0, 0xcb40, 0xcb41, 0xb1a1, 0xdeb6, 0xcb42, 0xdeb1, 0xcb43, 0xcb44, 0xcb45, 0xcb46, 0xcb47, 0xcb48, 0xcb49, 0xdeb2, 0xcb4a, 0xcb4b, 0xcb4c, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb50, 0xcb51, 0xcb52, 0xcb53, 0xcb54, 0xd1a6, 0xdeb5, 0xcb55, 0xcb56, 0xcb57, 0xcb58, 0xcb59, 0xcb5a, 0xcb5b, 0xdeaf, 0xcb5c, 0xcb5d, 0xcb5e, 0xdeb0, 0xcb5f, 0xd0bd, 0xcb60, 0xcb61, 0xcb62, 0xdeb4, 0xcaed, 0xdeb9, 0xcb63, 0xcb64, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xdeb8, 0xcb69, 0xdeb7, 0xcb6a, 0xcb6b, 0xcb6c, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xdebb, 0xcb71, 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xbde5, 0xcb78, 0xcb79, 0xcb7a, 0xcb7b, 0xcb7c, 0xb2d8, 0xc3ea, 0xcb7d, 0xcb7e, 0xdeba, 0xcb80, 0xc5ba, 0xcb81, 0xcb82, 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xdebc, 0xcb87, 0xcb88, 0xcb89, 0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xccd9, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xb7aa, 0xcb92, 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9c, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcc40, 0xcc41, 0xd4e5, 0xcc42, 0xcc43, 0xcc44, 0xdebd, /* 0x8600 .. 0x86ff */ 0xcc45, 0xcc46, 0xcc47, 0xcc48, 0xcc49, 0xdebf, 0xcc4a, 0xcc4b, 0xcc4c, 0xcc4d, 0xcc4e, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, 0xcc53, 0xcc54, 0xc4a2, 0xcc55, 0xcc56, 0xcc57, 0xcc58, 0xdec1, 0xcc59, 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc60, 0xcc61, 0xcc62, 0xcc63, 0xcc64, 0xcc65, 0xcc66, 0xcc67, 0xcc68, 0xdebe, 0xcc69, 0xdec0, 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc70, 0xcc71, 0xcc72, 0xcc73, 0xcc74, 0xcc75, 0xcc76, 0xcc77, 0xd5ba, 0xcc78, 0xcc79, 0xcc7a, 0xdec2, 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc80, 0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, 0xcc8b, 0xf2ae, 0xbba2, 0xc2b2, 0xc5b0, 0xc2c7, 0xcc8c, 0xcc8d, 0xf2af, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, 0xd0e9, 0xcc93, 0xcc94, 0xcc95, 0xd3dd, 0xcc96, 0xcc97, 0xcc98, 0xebbd, 0xcc99, 0xcc9a, 0xcc9b, 0xcc9c, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca0, 0xb3e6, 0xf2b0, 0xcd40, 0xf2b1, 0xcd41, 0xcd42, 0xcaad, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49, 0xbae7, 0xf2b3, 0xf2b5, 0xf2b4, 0xcbe4, 0xcfba, 0xf2b2, 0xcab4, 0xd2cf, 0xc2ec, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xcec3, 0xf2b8, 0xb0f6, 0xf2b7, 0xcd51, 0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xf2be, 0xcd56, 0xb2cf, 0xcd57, 0xcd58, 0xcd59, 0xcd5a, 0xcd5b, 0xcd5c, 0xd1c1, 0xf2ba, 0xcd5d, 0xcd5e, 0xcd5f, 0xcd60, 0xcd61, 0xf2bc, 0xd4e9, 0xcd62, 0xcd63, 0xf2bb, 0xf2b6, 0xf2bf, 0xf2bd, 0xcd64, 0xf2b9, 0xcd65, 0xcd66, 0xf2c7, 0xf2c4, 0xf2c6, 0xcd67, 0xcd68, 0xf2ca, 0xf2c2, 0xf2c0, 0xcd69, 0xcd6a, 0xcd6b, 0xf2c5, 0xcd6c, 0xcd6d, 0xcd6e, 0xcd6f, 0xcd70, 0xd6fb, 0xcd71, 0xcd72, 0xcd73, 0xf2c1, 0xcd74, 0xc7f9, 0xc9df, 0xcd75, 0xf2c8, 0xb9c6, 0xb5b0, 0xcd76, 0xcd77, 0xf2c3, 0xf2c9, 0xf2d0, 0xf2d6, 0xcd78, 0xcd79, 0xbbd7, 0xcd7a, 0xcd7b, 0xcd7c, 0xf2d5, 0xcddc, 0xcd7d, 0xd6eb, 0xcd7e, 0xcd80, 0xf2d2, 0xf2d4, 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xb8f2, 0xcd85, 0xcd86, 0xcd87, 0xcd88, 0xf2cb, 0xcd89, 0xcd8a, 0xcd8b, 0xf2ce, 0xc2f9, 0xcd8c, 0xd5dd, 0xf2cc, 0xf2cd, 0xf2cf, 0xf2d3, 0xcd8d, 0xcd8e, 0xcd8f, 0xf2d9, 0xd3bc, 0xcd90, 0xcd91, 0xcd92, 0xcd93, 0xb6ea, 0xcd94, /* 0x8700 .. 0x87ff */ 0xcaf1, 0xcd95, 0xb7e4, 0xf2d7, 0xcd96, 0xcd97, 0xcd98, 0xf2d8, 0xf2da, 0xf2dd, 0xf2db, 0xcd99, 0xcd9a, 0xf2dc, 0xcd9b, 0xcd9c, 0xcd9d, 0xcd9e, 0xd1d1, 0xf2d1, 0xcd9f, 0xcdc9, 0xcda0, 0xcecf, 0xd6a9, 0xce40, 0xf2e3, 0xce41, 0xc3db, 0xce42, 0xf2e0, 0xce43, 0xce44, 0xc0af, 0xf2ec, 0xf2de, 0xce45, 0xf2e1, 0xce46, 0xce47, 0xce48, 0xf2e8, 0xce49, 0xce4a, 0xce4b, 0xce4c, 0xf2e2, 0xce4d, 0xce4e, 0xf2e7, 0xce4f, 0xce50, 0xf2e6, 0xce51, 0xce52, 0xf2e9, 0xce53, 0xce54, 0xce55, 0xf2df, 0xce56, 0xce57, 0xf2e4, 0xf2ea, 0xce58, 0xce59, 0xce5a, 0xce5b, 0xce5c, 0xce5d, 0xce5e, 0xd3ac, 0xf2e5, 0xb2f5, 0xce5f, 0xce60, 0xf2f2, 0xce61, 0xd0ab, 0xce62, 0xce63, 0xce64, 0xce65, 0xf2f5, 0xce66, 0xce67, 0xce68, 0xbbc8, 0xce69, 0xf2f9, 0xce6a, 0xce6b, 0xce6c, 0xce6d, 0xce6e, 0xce6f, 0xf2f0, 0xce70, 0xce71, 0xf2f6, 0xf2f8, 0xf2fa, 0xce72, 0xce73, 0xce74, 0xce75, 0xce76, 0xce77, 0xce78, 0xce79, 0xf2f3, 0xce7a, 0xf2f1, 0xce7b, 0xce7c, 0xce7d, 0xbafb, 0xce7e, 0xb5fb, 0xce80, 0xce81, 0xce82, 0xce83, 0xf2ef, 0xf2f7, 0xf2ed, 0xf2ee, 0xce84, 0xce85, 0xce86, 0xf2eb, 0xf3a6, 0xce87, 0xf3a3, 0xce88, 0xce89, 0xf3a2, 0xce8a, 0xce8b, 0xf2f4, 0xce8c, 0xc8da, 0xce8d, 0xce8e, 0xce8f, 0xce90, 0xce91, 0xf2fb, 0xce92, 0xce93, 0xce94, 0xf3a5, 0xce95, 0xce96, 0xce97, 0xce98, 0xce99, 0xce9a, 0xce9b, 0xc3f8, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea0, 0xcf40, 0xcf41, 0xcf42, 0xf2fd, 0xcf43, 0xcf44, 0xf3a7, 0xf3a9, 0xf3a4, 0xcf45, 0xf2fc, 0xcf46, 0xcf47, 0xcf48, 0xf3ab, 0xcf49, 0xf3aa, 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xc2dd, 0xcf4e, 0xcf4f, 0xf3ae, 0xcf50, 0xcf51, 0xf3b0, 0xcf52, 0xcf53, 0xcf54, 0xcf55, 0xcf56, 0xf3a1, 0xcf57, 0xcf58, 0xcf59, 0xf3b1, 0xf3ac, 0xcf5a, 0xcf5b, 0xcf5c, 0xcf5d, 0xcf5e, 0xf3af, 0xf2fe, 0xf3ad, 0xcf5f, 0xcf60, 0xcf61, 0xcf62, 0xcf63, 0xcf64, 0xcf65, 0xf3b2, 0xcf66, 0xcf67, 0xcf68, 0xcf69, 0xf3b4, 0xcf6a, 0xcf6b, 0xcf6c, 0xcf6d, 0xf3a8, 0xcf6e, 0xcf6f, 0xcf70, 0xcf71, 0xf3b3, 0xcf72, 0xcf73, 0xcf74, 0xf3b5, 0xcf75, 0xcf76, 0xcf77, 0xcf78, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xd0b7, 0xcf80, 0xcf81, 0xcf82, 0xcf83, 0xf3b8, 0xcf84, /* 0x8800 .. 0x88ff */ 0xcf85, 0xcf86, 0xcf87, 0xd9f9, 0xcf88, 0xcf89, 0xcf8a, 0xcf8b, 0xcf8c, 0xcf8d, 0xf3b9, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, 0xcf93, 0xcf94, 0xcf95, 0xf3b7, 0xcf96, 0xc8e4, 0xf3b6, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, 0xf3ba, 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, 0xcf9f, 0xf3bb, 0xb4c0, 0xcfa0, 0xd040, 0xd041, 0xd042, 0xd043, 0xd044, 0xd045, 0xd046, 0xd047, 0xd048, 0xd049, 0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xeec3, 0xd04e, 0xd04f, 0xd050, 0xd051, 0xd052, 0xd053, 0xf3bc, 0xd054, 0xd055, 0xf3bd, 0xd056, 0xd057, 0xd058, 0xd1aa, 0xd059, 0xd05a, 0xd05b, 0xf4ac, 0xd0c6, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd060, 0xd061, 0xd0d0, 0xd1dc, 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xcfce, 0xd068, 0xd069, 0xbdd6, 0xd06a, 0xd1c3, 0xd06b, 0xd06c, 0xd06d, 0xd06e, 0xd06f, 0xd070, 0xd071, 0xbae2, 0xe1e9, 0xd2c2, 0xf1c2, 0xb2b9, 0xd072, 0xd073, 0xb1ed, 0xf1c3, 0xd074, 0xc9c0, 0xb3c4, 0xd075, 0xd9f2, 0xd076, 0xcba5, 0xd077, 0xf1c4, 0xd078, 0xd079, 0xd07a, 0xd07b, 0xd6d4, 0xd07c, 0xd07d, 0xd07e, 0xd080, 0xd081, 0xf1c5, 0xf4c0, 0xf1c6, 0xd082, 0xd4ac, 0xf1c7, 0xd083, 0xb0c0, 0xf4c1, 0xd084, 0xd085, 0xf4c2, 0xd086, 0xd087, 0xb4fc, 0xd088, 0xc5db, 0xd089, 0xd08a, 0xd08b, 0xd08c, 0xccbb, 0xd08d, 0xd08e, 0xd08f, 0xd0e4, 0xd090, 0xd091, 0xd092, 0xd093, 0xd094, 0xcde0, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xf1c8, 0xd09a, 0xd9f3, 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xb1bb, 0xd140, 0xcfae, 0xd141, 0xd142, 0xd143, 0xb8a4, 0xd144, 0xd145, 0xd146, 0xd147, 0xd148, 0xf1ca, 0xd149, 0xd14a, 0xd14b, 0xd14c, 0xf1cb, 0xd14d, 0xd14e, 0xd14f, 0xd150, 0xb2c3, 0xc1d1, 0xd151, 0xd152, 0xd7b0, 0xf1c9, 0xd153, 0xd154, 0xf1cc, 0xd155, 0xd156, 0xd157, 0xd158, 0xf1ce, 0xd159, 0xd15a, 0xd15b, 0xd9f6, 0xd15c, 0xd2e1, 0xd4a3, 0xd15d, 0xd15e, 0xf4c3, 0xc8b9, 0xd15f, 0xd160, 0xd161, 0xd162, 0xd163, 0xf4c4, 0xd164, 0xd165, 0xf1cd, 0xf1cf, 0xbfe3, 0xf1d0, 0xd166, 0xd167, 0xf1d4, 0xd168, 0xd169, 0xd16a, 0xd16b, 0xd16c, 0xd16d, 0xd16e, 0xf1d6, 0xf1d1, 0xd16f, 0xc9d1, 0xc5e1, 0xd170, 0xd171, 0xd172, 0xc2e3, 0xb9fc, 0xd173, 0xd174, 0xf1d3, 0xd175, 0xf1d5, 0xd176, /* 0x8900 .. 0x89ff */ 0xd177, 0xd178, 0xb9d3, 0xd179, 0xd17a, 0xd17b, 0xd17c, 0xd17d, 0xd17e, 0xd180, 0xf1db, 0xd181, 0xd182, 0xd183, 0xd184, 0xd185, 0xbad6, 0xd186, 0xb0fd, 0xf1d9, 0xd187, 0xd188, 0xd189, 0xd18a, 0xd18b, 0xf1d8, 0xf1d2, 0xf1da, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xf1d7, 0xd191, 0xd192, 0xd193, 0xc8ec, 0xd194, 0xd195, 0xd196, 0xd197, 0xcdca, 0xf1dd, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xe5bd, 0xd19c, 0xd19d, 0xd19e, 0xf1dc, 0xd19f, 0xf1de, 0xd1a0, 0xd240, 0xd241, 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd248, 0xf1df, 0xd249, 0xd24a, 0xcfe5, 0xd24b, 0xd24c, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25c, 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261, 0xd262, 0xd263, 0xf4c5, 0xbdf3, 0xd264, 0xd265, 0xd266, 0xd267, 0xd268, 0xd269, 0xf1e0, 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, 0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xf1e1, 0xd27e, 0xd280, 0xd281, 0xcef7, 0xd282, 0xd2aa, 0xd283, 0xf1fb, 0xd284, 0xd285, 0xb8b2, 0xd286, 0xd287, 0xd288, 0xd289, 0xd28a, 0xd28b, 0xd28c, 0xd28d, 0xd28e, 0xd28f, 0xd290, 0xd291, 0xd292, 0xd293, 0xd294, 0xd295, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29c, 0xd29d, 0xd29e, 0xd29f, 0xd2a0, 0xd340, 0xd341, 0xd342, 0xd343, 0xd344, 0xd345, 0xd346, 0xd347, 0xd348, 0xd349, 0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xbcfb, 0xb9db, 0xd35f, 0xb9e6, 0xc3d9, 0xcad3, 0xeae8, 0xc0c0, 0xbef5, 0xeae9, 0xeaea, 0xeaeb, 0xd360, 0xeaec, 0xeaed, 0xeaee, 0xeaef, 0xbdc7, 0xd361, 0xd362, 0xd363, 0xf5fb, 0xd364, 0xd365, 0xd366, 0xf5fd, 0xd367, 0xf5fe, 0xd368, 0xf5fc, 0xd369, 0xd36a, 0xd36b, 0xd36c, 0xbde2, 0xd36d, 0xf6a1, 0xb4a5, 0xd36e, 0xd36f, 0xd370, 0xd371, 0xf6a2, 0xd372, 0xd373, 0xd374, 0xf6a3, 0xd375, 0xd376, 0xd377, 0xecb2, 0xd378, 0xd379, 0xd37a, 0xd37b, 0xd37c, 0xd37d, 0xd37e, 0xd380, 0xd381, 0xd382, 0xd383, 0xd384, /* 0x8a00 .. 0x8aff */ 0xd1d4, 0xd385, 0xd386, 0xd387, 0xd388, 0xd389, 0xd38a, 0xd9ea, 0xd38b, 0xd38c, 0xd38d, 0xd38e, 0xd38f, 0xd390, 0xd391, 0xd392, 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd398, 0xd399, 0xd39a, 0xd39b, 0xd39c, 0xd39d, 0xd39e, 0xd39f, 0xd3a0, 0xd440, 0xd441, 0xd442, 0xd443, 0xd444, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, 0xd452, 0xd453, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, 0xd45a, 0xd45b, 0xd45c, 0xd45d, 0xd45e, 0xd45f, 0xf6a4, 0xd460, 0xd461, 0xd462, 0xd463, 0xd464, 0xd465, 0xd466, 0xd467, 0xd468, 0xeeba, 0xd469, 0xd46a, 0xd46b, 0xd46c, 0xd46d, 0xd46e, 0xd46f, 0xd470, 0xd471, 0xd472, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd478, 0xd479, 0xd47a, 0xd47b, 0xd47c, 0xd47d, 0xd47e, 0xd480, 0xd481, 0xd482, 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd488, 0xd489, 0xd48a, 0xd48b, 0xd48c, 0xd48d, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492, 0xd493, 0xd494, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd5b2, 0xd49a, 0xd49b, 0xd49c, 0xd49d, 0xd49e, 0xd49f, 0xd4a0, 0xd540, 0xd541, 0xd542, 0xd543, 0xd544, 0xd545, 0xd546, 0xd547, 0xd3fe, 0xccdc, 0xd548, 0xd549, 0xd54a, 0xd54b, 0xd54c, 0xd54d, 0xd54e, 0xd54f, 0xcac4, 0xd550, 0xd551, 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0xd558, 0xd559, 0xd55a, 0xd55b, 0xd55c, 0xd55d, 0xd55e, 0xd55f, 0xd560, 0xd561, 0xd562, 0xd563, 0xd564, 0xd565, 0xd566, 0xd567, 0xd568, 0xd569, 0xd56a, 0xd56b, 0xd56c, 0xd56d, 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, 0xd574, 0xd575, 0xd576, 0xd577, 0xd578, 0xd579, 0xd57a, 0xd57b, 0xd57c, 0xd57d, 0xd57e, 0xd580, 0xd581, 0xd582, 0xd583, 0xd584, 0xd585, 0xd586, 0xd587, 0xd588, 0xd589, 0xd58a, 0xd58b, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd590, 0xd591, 0xd592, 0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, 0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd640, 0xd641, 0xd642, 0xd643, 0xd644, 0xd645, 0xd646, 0xd647, 0xd648, 0xd649, 0xd64a, 0xd64b, 0xd64c, 0xd64d, 0xd64e, 0xd64f, 0xd650, 0xd651, 0xd652, 0xd653, 0xd654, 0xd655, 0xd656, 0xd657, 0xd658, 0xd659, 0xd65a, 0xd65b, /* 0x8b00 .. 0x8bff */ 0xd65c, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, 0xd662, 0xe5c0, 0xd663, 0xd664, 0xd665, 0xd666, 0xd667, 0xd668, 0xd669, 0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd670, 0xd671, 0xd672, 0xd673, 0xd674, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679, 0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd680, 0xd681, 0xf6a5, 0xd682, 0xd683, 0xd684, 0xd685, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, 0xd68b, 0xd68c, 0xd68d, 0xd68e, 0xd68f, 0xd690, 0xd691, 0xd692, 0xd693, 0xd694, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, 0xd69b, 0xd69c, 0xd69d, 0xd69e, 0xd69f, 0xd6a0, 0xd740, 0xd741, 0xd742, 0xd743, 0xd744, 0xd745, 0xd746, 0xd747, 0xd748, 0xd749, 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd750, 0xd751, 0xd752, 0xd753, 0xd754, 0xd755, 0xd756, 0xd757, 0xd758, 0xd759, 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0xd75f, 0xbeaf, 0xd760, 0xd761, 0xd762, 0xd763, 0xd764, 0xc6a9, 0xd765, 0xd766, 0xd767, 0xd768, 0xd769, 0xd76a, 0xd76b, 0xd76c, 0xd76d, 0xd76e, 0xd76f, 0xd770, 0xd771, 0xd772, 0xd773, 0xd774, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779, 0xd77a, 0xd77b, 0xd77c, 0xd77d, 0xd77e, 0xd780, 0xd781, 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd788, 0xd789, 0xd78a, 0xd78b, 0xd78c, 0xd78d, 0xd78e, 0xd78f, 0xd790, 0xd791, 0xd792, 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd798, 0xdaa5, 0xbcc6, 0xb6a9, 0xb8bc, 0xc8cf, 0xbca5, 0xdaa6, 0xdaa7, 0xccd6, 0xc8c3, 0xdaa8, 0xc6fd, 0xd799, 0xd1b5, 0xd2e9, 0xd1b6, 0xbcc7, 0xd79a, 0xbdb2, 0xbbe4, 0xdaa9, 0xdaaa, 0xd1c8, 0xdaab, 0xd0ed, 0xb6ef, 0xc2db, 0xd79b, 0xcbcf, 0xb7ed, 0xc9e8, 0xb7c3, 0xbef7, 0xd6a4, 0xdaac, 0xdaad, 0xc6c0, 0xd7e7, 0xcab6, 0xd79c, 0xd5a9, 0xcbdf, 0xd5ef, 0xdaae, 0xd6df, 0xb4ca, 0xdab0, 0xdaaf, 0xd79d, 0xd2eb, 0xdab1, 0xdab2, 0xdab3, 0xcad4, 0xdab4, 0xcaab, 0xdab5, 0xdab6, 0xb3cf, 0xd6ef, 0xdab7, 0xbbb0, 0xb5ae, 0xdab8, 0xdab9, 0xb9ee, 0xd1af, 0xd2e8, 0xdaba, 0xb8c3, 0xcfea, 0xb2ef, 0xdabb, 0xdabc, 0xd79e, 0xbdeb, 0xcedc, 0xd3ef, 0xdabd, 0xcef3, 0xdabe, 0xd3d5, 0xbbe5, 0xdabf, 0xcbb5, 0xcbd0, 0xdac0, 0xc7eb, 0xd6ee, 0xdac1, 0xc5b5, 0xb6c1, 0xdac2, 0xb7cc, 0xbfce, 0xdac3, /* 0x8c00 .. 0x8cff */ 0xdac4, 0xcbad, 0xdac5, 0xb5f7, 0xdac6, 0xc1c2, 0xd7bb, 0xdac7, 0xccb8, 0xd79f, 0xd2ea, 0xc4b1, 0xdac8, 0xb5fd, 0xbbd1, 0xdac9, 0xd0b3, 0xdaca, 0xdacb, 0xcebd, 0xdacc, 0xdacd, 0xdace, 0xb2f7, 0xdad1, 0xdacf, 0xd1e8, 0xdad0, 0xc3d5, 0xdad2, 0xd7a0, 0xdad3, 0xdad4, 0xdad5, 0xd0bb, 0xd2a5, 0xb0f9, 0xdad6, 0xc7ab, 0xdad7, 0xbdf7, 0xc3a1, 0xdad8, 0xdad9, 0xc3fd, 0xccb7, 0xdada, 0xdadb, 0xc0be, 0xc6d7, 0xdadc, 0xdadd, 0xc7b4, 0xdade, 0xdadf, 0xb9c8, 0xd840, 0xd841, 0xd842, 0xd843, 0xd844, 0xd845, 0xd846, 0xd847, 0xd848, 0xbbed, 0xd849, 0xd84a, 0xd84b, 0xd84c, 0xb6b9, 0xf4f8, 0xd84d, 0xf4f9, 0xd84e, 0xd84f, 0xcde3, 0xd850, 0xd851, 0xd852, 0xd853, 0xd854, 0xd855, 0xd856, 0xd857, 0xf5b9, 0xd858, 0xd859, 0xd85a, 0xd85b, 0xebe0, 0xd85c, 0xd85d, 0xd85e, 0xd85f, 0xd860, 0xd861, 0xcff3, 0xbbbf, 0xd862, 0xd863, 0xd864, 0xd865, 0xd866, 0xd867, 0xd868, 0xbac0, 0xd4a5, 0xd869, 0xd86a, 0xd86b, 0xd86c, 0xd86d, 0xd86e, 0xd86f, 0xe1d9, 0xd870, 0xd871, 0xd872, 0xd873, 0xf5f4, 0xb1aa, 0xb2f2, 0xd874, 0xd875, 0xd876, 0xd877, 0xd878, 0xd879, 0xd87a, 0xf5f5, 0xd87b, 0xd87c, 0xf5f7, 0xd87d, 0xd87e, 0xd880, 0xbad1, 0xf5f6, 0xd881, 0xc3b2, 0xd882, 0xd883, 0xd884, 0xd885, 0xd886, 0xd887, 0xd888, 0xf5f9, 0xd889, 0xd88a, 0xd88b, 0xf5f8, 0xd88c, 0xd88d, 0xd88e, 0xd88f, 0xd890, 0xd891, 0xd892, 0xd893, 0xd894, 0xd895, 0xd896, 0xd897, 0xd898, 0xd899, 0xd89a, 0xd89b, 0xd89c, 0xd89d, 0xd89e, 0xd89f, 0xd8a0, 0xd940, 0xd941, 0xd942, 0xd943, 0xd944, 0xd945, 0xd946, 0xd947, 0xd948, 0xd949, 0xd94a, 0xd94b, 0xd94c, 0xd94d, 0xd94e, 0xd94f, 0xd950, 0xd951, 0xd952, 0xd953, 0xd954, 0xd955, 0xd956, 0xd957, 0xd958, 0xd959, 0xd95a, 0xd95b, 0xd95c, 0xd95d, 0xd95e, 0xd95f, 0xd960, 0xd961, 0xd962, 0xd963, 0xd964, 0xd965, 0xd966, 0xd967, 0xd968, 0xd969, 0xd96a, 0xd96b, 0xd96c, 0xd96d, 0xd96e, 0xd96f, 0xd970, 0xd971, 0xd972, 0xd973, 0xd974, 0xd975, 0xd976, 0xd977, 0xd978, 0xd979, 0xd97a, 0xd97b, 0xd97c, 0xd97d, 0xd97e, 0xd980, 0xd981, 0xd982, 0xd983, 0xd984, 0xd985, 0xd986, 0xd987, 0xd988, 0xd989, 0xd98a, 0xd98b, 0xd98c, 0xd98d, 0xd98e, 0xd98f, 0xd990, 0xd991, 0xd992, /* 0x8d00 .. 0x8dff */ 0xd993, 0xd994, 0xd995, 0xd996, 0xd997, 0xd998, 0xd999, 0xd99a, 0xd99b, 0xd99c, 0xd99d, 0xd99e, 0xd99f, 0xd9a0, 0xda40, 0xda41, 0xda42, 0xda43, 0xda44, 0xda45, 0xda46, 0xda47, 0xda48, 0xda49, 0xda4a, 0xda4b, 0xda4c, 0xda4d, 0xda4e, 0xb1b4, 0xd5ea, 0xb8ba, 0xda4f, 0xb9b1, 0xb2c6, 0xd4f0, 0xcfcd, 0xb0dc, 0xd5cb, 0xbbf5, 0xd6ca, 0xb7b7, 0xccb0, 0xc6b6, 0xb1e1, 0xb9ba, 0xd6fc, 0xb9e1, 0xb7a1, 0xbcfa, 0xeada, 0xeadb, 0xccf9, 0xb9f3, 0xeadc, 0xb4fb, 0xc3b3, 0xb7d1, 0xbad8, 0xeadd, 0xd4f4, 0xeade, 0xbcd6, 0xbbdf, 0xeadf, 0xc1de, 0xc2b8, 0xd4df, 0xd7ca, 0xeae0, 0xeae1, 0xeae4, 0xeae2, 0xeae3, 0xc9de, 0xb8b3, 0xb6c4, 0xeae5, 0xcaea, 0xc9cd, 0xb4cd, 0xda50, 0xda51, 0xe2d9, 0xc5e2, 0xeae6, 0xc0b5, 0xda52, 0xd7b8, 0xeae7, 0xd7ac, 0xc8fc, 0xd8d3, 0xd8cd, 0xd4de, 0xda53, 0xd4f9, 0xc9c4, 0xd3ae, 0xb8d3, 0xb3e0, 0xda54, 0xc9e2, 0xf4f6, 0xda55, 0xda56, 0xda57, 0xbad5, 0xda58, 0xf4f7, 0xda59, 0xda5a, 0xd7df, 0xda5b, 0xda5c, 0xf4f1, 0xb8b0, 0xd5d4, 0xb8cf, 0xc6f0, 0xda5d, 0xda5e, 0xda5f, 0xda60, 0xda61, 0xda62, 0xda63, 0xda64, 0xda65, 0xb3c3, 0xda66, 0xda67, 0xf4f2, 0xb3ac, 0xda68, 0xda69, 0xda6a, 0xda6b, 0xd4bd, 0xc7f7, 0xda6c, 0xda6d, 0xda6e, 0xda6f, 0xda70, 0xf4f4, 0xda71, 0xda72, 0xf4f3, 0xda73, 0xda74, 0xda75, 0xda76, 0xda77, 0xda78, 0xda79, 0xda7a, 0xda7b, 0xda7c, 0xcccb, 0xda7d, 0xda7e, 0xda80, 0xc8a4, 0xda81, 0xda82, 0xda83, 0xda84, 0xda85, 0xda86, 0xda87, 0xda88, 0xda89, 0xda8a, 0xda8b, 0xda8c, 0xda8d, 0xf4f5, 0xda8e, 0xd7e3, 0xc5bf, 0xf5c0, 0xda8f, 0xda90, 0xf5bb, 0xda91, 0xf5c3, 0xda92, 0xf5c2, 0xda93, 0xd6ba, 0xf5c1, 0xda94, 0xda95, 0xda96, 0xd4be, 0xf5c4, 0xda97, 0xf5cc, 0xda98, 0xda99, 0xda9a, 0xda9b, 0xb0cf, 0xb5f8, 0xda9c, 0xf5c9, 0xf5ca, 0xda9d, 0xc5dc, 0xda9e, 0xda9f, 0xdaa0, 0xdb40, 0xf5c5, 0xf5c6, 0xdb41, 0xdb42, 0xf5c7, 0xf5cb, 0xdb43, 0xbee0, 0xf5c8, 0xb8fa, 0xdb44, 0xdb45, 0xdb46, 0xf5d0, 0xf5d3, 0xdb47, 0xdb48, 0xdb49, 0xbfe7, 0xdb4a, 0xb9f2, 0xf5bc, 0xf5cd, 0xdb4b, 0xdb4c, 0xc2b7, 0xdb4d, 0xdb4e, 0xdb4f, 0xccf8, 0xdb50, 0xbcf9, 0xdb51, 0xf5ce, 0xf5cf, 0xf5d1, 0xb6e5, 0xf5d2, 0xdb52, 0xf5d5, 0xdb53, 0xdb54, /* 0x8e00 .. 0x8eff */ 0xdb55, 0xdb56, 0xdb57, 0xdb58, 0xdb59, 0xf5bd, 0xdb5a, 0xdb5b, 0xdb5c, 0xf5d4, 0xd3bb, 0xdb5d, 0xb3ec, 0xdb5e, 0xdb5f, 0xcca4, 0xdb60, 0xdb61, 0xdb62, 0xdb63, 0xf5d6, 0xdb64, 0xdb65, 0xdb66, 0xdb67, 0xdb68, 0xdb69, 0xdb6a, 0xdb6b, 0xf5d7, 0xbee1, 0xf5d8, 0xdb6c, 0xdb6d, 0xccdf, 0xf5db, 0xdb6e, 0xdb6f, 0xdb70, 0xdb71, 0xdb72, 0xb2c8, 0xd7d9, 0xdb73, 0xf5d9, 0xdb74, 0xf5da, 0xf5dc, 0xdb75, 0xf5e2, 0xdb76, 0xdb77, 0xdb78, 0xf5e0, 0xdb79, 0xdb7a, 0xdb7b, 0xf5df, 0xf5dd, 0xdb7c, 0xdb7d, 0xf5e1, 0xdb7e, 0xdb80, 0xf5de, 0xf5e4, 0xf5e5, 0xdb81, 0xcce3, 0xdb82, 0xdb83, 0xe5bf, 0xb5b8, 0xf5e3, 0xf5e8, 0xcca3, 0xdb84, 0xdb85, 0xdb86, 0xdb87, 0xdb88, 0xf5e6, 0xf5e7, 0xdb89, 0xdb8a, 0xdb8b, 0xdb8c, 0xdb8d, 0xdb8e, 0xf5be, 0xdb8f, 0xdb90, 0xdb91, 0xdb92, 0xdb93, 0xdb94, 0xdb95, 0xdb96, 0xdb97, 0xdb98, 0xdb99, 0xdb9a, 0xb1c4, 0xdb9b, 0xdb9c, 0xf5bf, 0xdb9d, 0xdb9e, 0xb5c5, 0xb2e4, 0xdb9f, 0xf5ec, 0xf5e9, 0xdba0, 0xb6d7, 0xdc40, 0xf5ed, 0xdc41, 0xf5ea, 0xdc42, 0xdc43, 0xdc44, 0xdc45, 0xdc46, 0xf5eb, 0xdc47, 0xdc48, 0xb4da, 0xdc49, 0xd4ea, 0xdc4a, 0xdc4b, 0xdc4c, 0xf5ee, 0xdc4d, 0xb3f9, 0xdc4e, 0xdc4f, 0xdc50, 0xdc51, 0xdc52, 0xdc53, 0xdc54, 0xf5ef, 0xf5f1, 0xdc55, 0xdc56, 0xdc57, 0xf5f0, 0xdc58, 0xdc59, 0xdc5a, 0xdc5b, 0xdc5c, 0xdc5d, 0xdc5e, 0xf5f2, 0xdc5f, 0xf5f3, 0xdc60, 0xdc61, 0xdc62, 0xdc63, 0xdc64, 0xdc65, 0xdc66, 0xdc67, 0xdc68, 0xdc69, 0xdc6a, 0xdc6b, 0xc9ed, 0xb9aa, 0xdc6c, 0xdc6d, 0xc7fb, 0xdc6e, 0xdc6f, 0xb6e3, 0xdc70, 0xdc71, 0xdc72, 0xdc73, 0xdc74, 0xdc75, 0xdc76, 0xccc9, 0xdc77, 0xdc78, 0xdc79, 0xdc7a, 0xdc7b, 0xdc7c, 0xdc7d, 0xdc7e, 0xdc80, 0xdc81, 0xdc82, 0xdc83, 0xdc84, 0xdc85, 0xdc86, 0xdc87, 0xdc88, 0xdc89, 0xdc8a, 0xeaa6, 0xdc8b, 0xdc8c, 0xdc8d, 0xdc8e, 0xdc8f, 0xdc90, 0xdc91, 0xdc92, 0xdc93, 0xdc94, 0xdc95, 0xdc96, 0xdc97, 0xdc98, 0xdc99, 0xdc9a, 0xdc9b, 0xdc9c, 0xdc9d, 0xdc9e, 0xdc9f, 0xdca0, 0xdd40, 0xdd41, 0xdd42, 0xdd43, 0xdd44, 0xdd45, 0xdd46, 0xdd47, 0xdd48, 0xdd49, 0xdd4a, 0xdd4b, 0xdd4c, 0xdd4d, 0xdd4e, 0xdd4f, 0xdd50, 0xdd51, 0xdd52, 0xdd53, 0xdd54, 0xdd55, 0xdd56, 0xdd57, 0xdd58, 0xdd59, 0xdd5a, /* 0x8f00 .. 0x8fff */ 0xdd5b, 0xdd5c, 0xdd5d, 0xdd5e, 0xdd5f, 0xdd60, 0xdd61, 0xdd62, 0xdd63, 0xdd64, 0xdd65, 0xdd66, 0xdd67, 0xdd68, 0xdd69, 0xdd6a, 0xdd6b, 0xdd6c, 0xdd6d, 0xdd6e, 0xdd6f, 0xdd70, 0xdd71, 0xdd72, 0xdd73, 0xdd74, 0xdd75, 0xdd76, 0xdd77, 0xdd78, 0xdd79, 0xdd7a, 0xdd7b, 0xdd7c, 0xdd7d, 0xdd7e, 0xdd80, 0xdd81, 0xdd82, 0xdd83, 0xdd84, 0xdd85, 0xdd86, 0xdd87, 0xdd88, 0xdd89, 0xdd8a, 0xdd8b, 0xdd8c, 0xdd8d, 0xdd8e, 0xdd8f, 0xdd90, 0xdd91, 0xdd92, 0xdd93, 0xdd94, 0xdd95, 0xdd96, 0xdd97, 0xdd98, 0xdd99, 0xdd9a, 0xdd9b, 0xdd9c, 0xdd9d, 0xdd9e, 0xdd9f, 0xdda0, 0xde40, 0xde41, 0xde42, 0xde43, 0xde44, 0xde45, 0xde46, 0xde47, 0xde48, 0xde49, 0xde4a, 0xde4b, 0xde4c, 0xde4d, 0xde4e, 0xde4f, 0xde50, 0xde51, 0xde52, 0xde53, 0xde54, 0xde55, 0xde56, 0xde57, 0xde58, 0xde59, 0xde5a, 0xde5b, 0xde5c, 0xde5d, 0xde5e, 0xde5f, 0xde60, 0xb3b5, 0xd4fe, 0xb9ec, 0xd0f9, 0xde61, 0xe9ed, 0xd7aa, 0xe9ee, 0xc2d6, 0xc8ed, 0xbae4, 0xe9ef, 0xe9f0, 0xe9f1, 0xd6e1, 0xe9f2, 0xe9f3, 0xe9f5, 0xe9f4, 0xe9f6, 0xe9f7, 0xc7e1, 0xe9f8, 0xd4d8, 0xe9f9, 0xbdce, 0xde62, 0xe9fa, 0xe9fb, 0xbdcf, 0xe9fc, 0xb8a8, 0xc1be, 0xe9fd, 0xb1b2, 0xbbd4, 0xb9f5, 0xe9fe, 0xde63, 0xeaa1, 0xeaa2, 0xeaa3, 0xb7f8, 0xbcad, 0xde64, 0xcae4, 0xe0ce, 0xd4af, 0xcfbd, 0xd5b7, 0xeaa4, 0xd5de, 0xeaa5, 0xd0c1, 0xb9bc, 0xde65, 0xb4c7, 0xb1d9, 0xde66, 0xde67, 0xde68, 0xc0b1, 0xde69, 0xde6a, 0xde6b, 0xde6c, 0xb1e6, 0xb1e7, 0xde6d, 0xb1e8, 0xde6e, 0xde6f, 0xde70, 0xde71, 0xb3bd, 0xc8e8, 0xde72, 0xde73, 0xde74, 0xde75, 0xe5c1, 0xde76, 0xde77, 0xb1df, 0xde78, 0xde79, 0xde7a, 0xc1c9, 0xb4ef, 0xde7b, 0xde7c, 0xc7a8, 0xd3d8, 0xde7d, 0xc6f9, 0xd1b8, 0xde7e, 0xb9fd, 0xc2f5, 0xde80, 0xde81, 0xde82, 0xde83, 0xde84, 0xd3ad, 0xde85, 0xd4cb, 0xbdfc, 0xde86, 0xe5c2, 0xb7b5, 0xe5c3, 0xde87, 0xde88, 0xbbb9, 0xd5e2, 0xde89, 0xbdf8, 0xd4b6, 0xcea5, 0xc1ac, 0xb3d9, 0xde8a, 0xde8b, 0xccf6, 0xde8c, 0xe5c6, 0xe5c4, 0xe5c8, 0xde8d, 0xe5ca, 0xe5c7, 0xb5cf, 0xc6c8, 0xde8e, 0xb5fc, 0xe5c5, 0xde8f, 0xcaf6, 0xde90, 0xde91, 0xe5c9, 0xde92, 0xde93, 0xde94, 0xc3d4, 0xb1c5, 0xbca3, 0xde95, 0xde96, 0xde97, 0xd7b7, 0xde98, 0xde99, /* 0x9000 .. 0x90ff */ 0xcdcb, 0xcbcd, 0xcaca, 0xccd3, 0xe5cc, 0xe5cb, 0xc4e6, 0xde9a, 0xde9b, 0xd1a1, 0xd1b7, 0xe5cd, 0xde9c, 0xe5d0, 0xde9d, 0xcdb8, 0xd6f0, 0xe5cf, 0xb5dd, 0xde9e, 0xcdbe, 0xde9f, 0xe5d1, 0xb6ba, 0xdea0, 0xdf40, 0xcda8, 0xb9e4, 0xdf41, 0xcac5, 0xb3d1, 0xcbd9, 0xd4ec, 0xe5d2, 0xb7ea, 0xdf42, 0xdf43, 0xdf44, 0xe5ce, 0xdf45, 0xdf46, 0xdf47, 0xdf48, 0xdf49, 0xdf4a, 0xe5d5, 0xb4fe, 0xe5d6, 0xdf4b, 0xdf4c, 0xdf4d, 0xdf4e, 0xdf4f, 0xe5d3, 0xe5d4, 0xdf50, 0xd2dd, 0xdf51, 0xdf52, 0xc2df, 0xb1c6, 0xdf53, 0xd3e2, 0xdf54, 0xdf55, 0xb6dd, 0xcbec, 0xdf56, 0xe5d7, 0xdf57, 0xdf58, 0xd3f6, 0xdf59, 0xdf5a, 0xdf5b, 0xdf5c, 0xdf5d, 0xb1e9, 0xdf5e, 0xb6f4, 0xe5da, 0xe5d8, 0xe5d9, 0xb5c0, 0xdf5f, 0xdf60, 0xdf61, 0xd2c5, 0xe5dc, 0xdf62, 0xdf63, 0xe5de, 0xdf64, 0xdf65, 0xdf66, 0xdf67, 0xdf68, 0xdf69, 0xe5dd, 0xc7b2, 0xdf6a, 0xd2a3, 0xdf6b, 0xdf6c, 0xe5db, 0xdf6d, 0xdf6e, 0xdf6f, 0xdf70, 0xd4e2, 0xd5da, 0xdf71, 0xdf72, 0xdf73, 0xdf74, 0xdf75, 0xe5e0, 0xd7f1, 0xdf76, 0xdf77, 0xdf78, 0xdf79, 0xdf7a, 0xdf7b, 0xdf7c, 0xe5e1, 0xdf7d, 0xb1dc, 0xd1fb, 0xdf7e, 0xe5e2, 0xe5e4, 0xdf80, 0xdf81, 0xdf82, 0xdf83, 0xe5e3, 0xdf84, 0xdf85, 0xe5e5, 0xdf86, 0xdf87, 0xdf88, 0xdf89, 0xdf8a, 0xd2d8, 0xdf8b, 0xb5cb, 0xdf8c, 0xe7df, 0xdf8d, 0xdaf5, 0xdf8e, 0xdaf8, 0xdf8f, 0xdaf6, 0xdf90, 0xdaf7, 0xdf91, 0xdf92, 0xdf93, 0xdafa, 0xd0cf, 0xc4c7, 0xdf94, 0xdf95, 0xb0ee, 0xdf96, 0xdf97, 0xdf98, 0xd0b0, 0xdf99, 0xdaf9, 0xdf9a, 0xd3ca, 0xbaaa, 0xdba2, 0xc7f1, 0xdf9b, 0xdafc, 0xdafb, 0xc9db, 0xdafd, 0xdf9c, 0xdba1, 0xd7de, 0xdafe, 0xc1da, 0xdf9d, 0xdf9e, 0xdba5, 0xdf9f, 0xdfa0, 0xd3f4, 0xe040, 0xe041, 0xdba7, 0xdba4, 0xe042, 0xdba8, 0xe043, 0xe044, 0xbdbc, 0xe045, 0xe046, 0xe047, 0xc0c9, 0xdba3, 0xdba6, 0xd6a3, 0xe048, 0xdba9, 0xe049, 0xe04a, 0xe04b, 0xdbad, 0xe04c, 0xe04d, 0xe04e, 0xdbae, 0xdbac, 0xbac2, 0xe04f, 0xe050, 0xe051, 0xbfa4, 0xdbab, 0xe052, 0xe053, 0xe054, 0xdbaa, 0xd4c7, 0xb2bf, 0xe055, 0xe056, 0xdbaf, 0xe057, 0xb9f9, 0xe058, 0xdbb0, 0xe059, 0xe05a, 0xe05b, 0xe05c, 0xb3bb, 0xe05d, 0xe05e, 0xe05f, 0xb5a6, 0xe060, 0xe061, 0xe062, 0xe063, 0xb6bc, 0xdbb1, 0xe064, /* 0x9100 .. 0x91ff */ 0xe065, 0xe066, 0xb6f5, 0xe067, 0xdbb2, 0xe068, 0xe069, 0xe06a, 0xe06b, 0xe06c, 0xe06d, 0xe06e, 0xe06f, 0xe070, 0xe071, 0xe072, 0xe073, 0xe074, 0xe075, 0xe076, 0xe077, 0xe078, 0xe079, 0xe07a, 0xe07b, 0xb1c9, 0xe07c, 0xe07d, 0xe07e, 0xe080, 0xdbb4, 0xe081, 0xe082, 0xe083, 0xdbb3, 0xdbb5, 0xe084, 0xe085, 0xe086, 0xe087, 0xe088, 0xe089, 0xe08a, 0xe08b, 0xe08c, 0xe08d, 0xe08e, 0xdbb7, 0xe08f, 0xdbb6, 0xe090, 0xe091, 0xe092, 0xe093, 0xe094, 0xe095, 0xe096, 0xdbb8, 0xe097, 0xe098, 0xe099, 0xe09a, 0xe09b, 0xe09c, 0xe09d, 0xe09e, 0xe09f, 0xdbb9, 0xe0a0, 0xe140, 0xdbba, 0xe141, 0xe142, 0xd3cf, 0xf4fa, 0xc7f5, 0xd7c3, 0xc5e4, 0xf4fc, 0xf4fd, 0xf4fb, 0xe143, 0xbec6, 0xe144, 0xe145, 0xe146, 0xe147, 0xd0ef, 0xe148, 0xe149, 0xb7d3, 0xe14a, 0xe14b, 0xd4cd, 0xccaa, 0xe14c, 0xe14d, 0xf5a2, 0xf5a1, 0xbaa8, 0xf4fe, 0xcbd6, 0xe14e, 0xe14f, 0xe150, 0xf5a4, 0xc0d2, 0xe151, 0xb3ea, 0xe152, 0xcdaa, 0xf5a5, 0xf5a3, 0xbdb4, 0xf5a8, 0xe153, 0xf5a9, 0xbdcd, 0xc3b8, 0xbfe1, 0xcbe1, 0xf5aa, 0xe154, 0xe155, 0xe156, 0xf5a6, 0xf5a7, 0xc4f0, 0xe157, 0xe158, 0xe159, 0xe15a, 0xe15b, 0xf5ac, 0xe15c, 0xb4bc, 0xe15d, 0xd7ed, 0xe15e, 0xb4d7, 0xf5ab, 0xf5ae, 0xe15f, 0xe160, 0xf5ad, 0xf5af, 0xd0d1, 0xe161, 0xe162, 0xe163, 0xe164, 0xe165, 0xe166, 0xe167, 0xc3d1, 0xc8a9, 0xe168, 0xe169, 0xe16a, 0xe16b, 0xe16c, 0xe16d, 0xf5b0, 0xf5b1, 0xe16e, 0xe16f, 0xe170, 0xe171, 0xe172, 0xe173, 0xf5b2, 0xe174, 0xe175, 0xf5b3, 0xf5b4, 0xf5b5, 0xe176, 0xe177, 0xe178, 0xe179, 0xf5b7, 0xf5b6, 0xe17a, 0xe17b, 0xe17c, 0xe17d, 0xf5b8, 0xe17e, 0xe180, 0xe181, 0xe182, 0xe183, 0xe184, 0xe185, 0xe186, 0xe187, 0xe188, 0xe189, 0xe18a, 0xb2c9, 0xe18b, 0xd3d4, 0xcacd, 0xe18c, 0xc0ef, 0xd6d8, 0xd2b0, 0xc1bf, 0xe18d, 0xbdf0, 0xe18e, 0xe18f, 0xe190, 0xe191, 0xe192, 0xe193, 0xe194, 0xe195, 0xe196, 0xe197, 0xb8aa, 0xe198, 0xe199, 0xe19a, 0xe19b, 0xe19c, 0xe19d, 0xe19e, 0xe19f, 0xe1a0, 0xe240, 0xe241, 0xe242, 0xe243, 0xe244, 0xe245, 0xe246, 0xe247, 0xe248, 0xe249, 0xe24a, 0xe24b, 0xe24c, 0xe24d, 0xe24e, 0xe24f, 0xe250, 0xe251, 0xe252, 0xe253, 0xe254, 0xe255, 0xe256, 0xe257, 0xe258, 0xe259, /* 0x9200 .. 0x92ff */ 0xe25a, 0xe25b, 0xe25c, 0xe25d, 0xe25e, 0xe25f, 0xe260, 0xe261, 0xe262, 0xe263, 0xe264, 0xe265, 0xe266, 0xe267, 0xe268, 0xe269, 0xe26a, 0xe26b, 0xe26c, 0xe26d, 0xe26e, 0xe26f, 0xe270, 0xe271, 0xe272, 0xe273, 0xe274, 0xe275, 0xe276, 0xe277, 0xe278, 0xe279, 0xe27a, 0xe27b, 0xe27c, 0xe27d, 0xe27e, 0xe280, 0xe281, 0xe282, 0xe283, 0xe284, 0xe285, 0xe286, 0xe287, 0xe288, 0xe289, 0xe28a, 0xe28b, 0xe28c, 0xe28d, 0xe28e, 0xe28f, 0xe290, 0xe291, 0xe292, 0xe293, 0xe294, 0xe295, 0xe296, 0xe297, 0xe298, 0xe299, 0xe29a, 0xe29b, 0xe29c, 0xe29d, 0xe29e, 0xe29f, 0xe2a0, 0xe340, 0xe341, 0xe342, 0xe343, 0xe344, 0xe345, 0xe346, 0xe347, 0xe348, 0xe349, 0xe34a, 0xe34b, 0xe34c, 0xe34d, 0xe34e, 0xe34f, 0xe350, 0xe351, 0xe352, 0xe353, 0xe354, 0xe355, 0xe356, 0xe357, 0xe358, 0xe359, 0xe35a, 0xe35b, 0xe35c, 0xe35d, 0xe35e, 0xe35f, 0xe360, 0xe361, 0xe362, 0xe363, 0xe364, 0xe365, 0xe366, 0xe367, 0xe368, 0xe369, 0xe36a, 0xe36b, 0xe36c, 0xe36d, 0xbcf8, 0xe36e, 0xe36f, 0xe370, 0xe371, 0xe372, 0xe373, 0xe374, 0xe375, 0xe376, 0xe377, 0xe378, 0xe379, 0xe37a, 0xe37b, 0xe37c, 0xe37d, 0xe37e, 0xe380, 0xe381, 0xe382, 0xe383, 0xe384, 0xe385, 0xe386, 0xe387, 0xf6c6, 0xe388, 0xe389, 0xe38a, 0xe38b, 0xe38c, 0xe38d, 0xe38e, 0xe38f, 0xe390, 0xe391, 0xe392, 0xe393, 0xe394, 0xe395, 0xe396, 0xe397, 0xe398, 0xe399, 0xe39a, 0xe39b, 0xe39c, 0xe39d, 0xe39e, 0xe39f, 0xe3a0, 0xe440, 0xe441, 0xe442, 0xe443, 0xe444, 0xe445, 0xf6c7, 0xe446, 0xe447, 0xe448, 0xe449, 0xe44a, 0xe44b, 0xe44c, 0xe44d, 0xe44e, 0xe44f, 0xe450, 0xe451, 0xe452, 0xe453, 0xe454, 0xe455, 0xe456, 0xe457, 0xe458, 0xe459, 0xe45a, 0xe45b, 0xe45c, 0xe45d, 0xe45e, 0xf6c8, 0xe45f, 0xe460, 0xe461, 0xe462, 0xe463, 0xe464, 0xe465, 0xe466, 0xe467, 0xe468, 0xe469, 0xe46a, 0xe46b, 0xe46c, 0xe46d, 0xe46e, 0xe46f, 0xe470, 0xe471, 0xe472, 0xe473, 0xe474, 0xe475, 0xe476, 0xe477, 0xe478, 0xe479, 0xe47a, 0xe47b, 0xe47c, 0xe47d, 0xe47e, 0xe480, 0xe481, 0xe482, 0xe483, 0xe484, 0xe485, 0xe486, 0xe487, 0xe488, 0xe489, 0xe48a, 0xe48b, 0xe48c, 0xe48d, 0xe48e, 0xe48f, 0xe490, 0xe491, 0xe492, 0xe493, 0xe494, 0xe495, 0xe496, /* 0x9300 .. 0x93ff */ 0xe497, 0xe498, 0xe499, 0xe49a, 0xe49b, 0xe49c, 0xe49d, 0xe49e, 0xe49f, 0xe4a0, 0xe540, 0xe541, 0xe542, 0xe543, 0xe544, 0xe545, 0xe546, 0xe547, 0xe548, 0xe549, 0xe54a, 0xe54b, 0xe54c, 0xe54d, 0xe54e, 0xe54f, 0xe550, 0xe551, 0xe552, 0xe553, 0xe554, 0xe555, 0xe556, 0xe557, 0xe558, 0xe559, 0xe55a, 0xe55b, 0xe55c, 0xe55d, 0xe55e, 0xe55f, 0xe560, 0xe561, 0xe562, 0xe563, 0xe564, 0xe565, 0xe566, 0xe567, 0xe568, 0xe569, 0xe56a, 0xe56b, 0xe56c, 0xe56d, 0xe56e, 0xe56f, 0xe570, 0xe571, 0xe572, 0xe573, 0xf6c9, 0xe574, 0xe575, 0xe576, 0xe577, 0xe578, 0xe579, 0xe57a, 0xe57b, 0xe57c, 0xe57d, 0xe57e, 0xe580, 0xe581, 0xe582, 0xe583, 0xe584, 0xe585, 0xe586, 0xe587, 0xe588, 0xe589, 0xe58a, 0xe58b, 0xe58c, 0xe58d, 0xe58e, 0xe58f, 0xe590, 0xe591, 0xe592, 0xe593, 0xe594, 0xe595, 0xe596, 0xe597, 0xe598, 0xe599, 0xe59a, 0xe59b, 0xe59c, 0xe59d, 0xe59e, 0xe59f, 0xf6ca, 0xe5a0, 0xe640, 0xe641, 0xe642, 0xe643, 0xe644, 0xe645, 0xe646, 0xe647, 0xe648, 0xe649, 0xe64a, 0xe64b, 0xe64c, 0xe64d, 0xe64e, 0xe64f, 0xe650, 0xe651, 0xe652, 0xe653, 0xe654, 0xe655, 0xe656, 0xe657, 0xe658, 0xe659, 0xe65a, 0xe65b, 0xe65c, 0xe65d, 0xe65e, 0xe65f, 0xe660, 0xe661, 0xe662, 0xf6cc, 0xe663, 0xe664, 0xe665, 0xe666, 0xe667, 0xe668, 0xe669, 0xe66a, 0xe66b, 0xe66c, 0xe66d, 0xe66e, 0xe66f, 0xe670, 0xe671, 0xe672, 0xe673, 0xe674, 0xe675, 0xe676, 0xe677, 0xe678, 0xe679, 0xe67a, 0xe67b, 0xe67c, 0xe67d, 0xe67e, 0xe680, 0xe681, 0xe682, 0xe683, 0xe684, 0xe685, 0xe686, 0xe687, 0xe688, 0xe689, 0xe68a, 0xe68b, 0xe68c, 0xe68d, 0xe68e, 0xe68f, 0xe690, 0xe691, 0xe692, 0xe693, 0xe694, 0xe695, 0xe696, 0xe697, 0xe698, 0xe699, 0xe69a, 0xe69b, 0xe69c, 0xe69d, 0xf6cb, 0xe69e, 0xe69f, 0xe6a0, 0xe740, 0xe741, 0xe742, 0xe743, 0xe744, 0xe745, 0xe746, 0xe747, 0xf7e9, 0xe748, 0xe749, 0xe74a, 0xe74b, 0xe74c, 0xe74d, 0xe74e, 0xe74f, 0xe750, 0xe751, 0xe752, 0xe753, 0xe754, 0xe755, 0xe756, 0xe757, 0xe758, 0xe759, 0xe75a, 0xe75b, 0xe75c, 0xe75d, 0xe75e, 0xe75f, 0xe760, 0xe761, 0xe762, 0xe763, 0xe764, 0xe765, 0xe766, 0xe767, 0xe768, 0xe769, 0xe76a, 0xe76b, 0xe76c, 0xe76d, 0xe76e, 0xe76f, 0xe770, /* 0x9400 .. 0x94ff */ 0xe771, 0xe772, 0xe773, 0xe774, 0xe775, 0xe776, 0xe777, 0xe778, 0xe779, 0xe77a, 0xe77b, 0xe77c, 0xe77d, 0xe77e, 0xe780, 0xe781, 0xe782, 0xe783, 0xe784, 0xe785, 0xe786, 0xe787, 0xe788, 0xe789, 0xe78a, 0xe78b, 0xe78c, 0xe78d, 0xe78e, 0xe78f, 0xe790, 0xe791, 0xe792, 0xe793, 0xe794, 0xe795, 0xe796, 0xe797, 0xe798, 0xe799, 0xe79a, 0xe79b, 0xe79c, 0xe79d, 0xe79e, 0xe79f, 0xe7a0, 0xe840, 0xe841, 0xe842, 0xe843, 0xe844, 0xe845, 0xe846, 0xe847, 0xe848, 0xe849, 0xe84a, 0xe84b, 0xe84c, 0xe84d, 0xe84e, 0xf6cd, 0xe84f, 0xe850, 0xe851, 0xe852, 0xe853, 0xe854, 0xe855, 0xe856, 0xe857, 0xe858, 0xe859, 0xe85a, 0xe85b, 0xe85c, 0xe85d, 0xe85e, 0xe85f, 0xe860, 0xe861, 0xe862, 0xe863, 0xe864, 0xe865, 0xe866, 0xe867, 0xe868, 0xe869, 0xe86a, 0xe86b, 0xe86c, 0xe86d, 0xe86e, 0xe86f, 0xe870, 0xe871, 0xe872, 0xe873, 0xe874, 0xe875, 0xe876, 0xe877, 0xe878, 0xe879, 0xe87a, 0xf6ce, 0xe87b, 0xe87c, 0xe87d, 0xe87e, 0xe880, 0xe881, 0xe882, 0xe883, 0xe884, 0xe885, 0xe886, 0xe887, 0xe888, 0xe889, 0xe88a, 0xe88b, 0xe88c, 0xe88d, 0xe88e, 0xe88f, 0xe890, 0xe891, 0xe892, 0xe893, 0xe894, 0xeec4, 0xeec5, 0xeec6, 0xd5eb, 0xb6a4, 0xeec8, 0xeec7, 0xeec9, 0xeeca, 0xc7a5, 0xeecb, 0xeecc, 0xe895, 0xb7b0, 0xb5f6, 0xeecd, 0xeecf, 0xe896, 0xeece, 0xe897, 0xb8c6, 0xeed0, 0xeed1, 0xeed2, 0xb6db, 0xb3ae, 0xd6d3, 0xc4c6, 0xb1b5, 0xb8d6, 0xeed3, 0xeed4, 0xd4bf, 0xc7d5, 0xbefb, 0xced9, 0xb9b3, 0xeed6, 0xeed5, 0xeed8, 0xeed7, 0xc5a5, 0xeed9, 0xeeda, 0xc7ae, 0xeedb, 0xc7af, 0xeedc, 0xb2a7, 0xeedd, 0xeede, 0xeedf, 0xeee0, 0xeee1, 0xd7ea, 0xeee2, 0xeee3, 0xbcd8, 0xeee4, 0xd3cb, 0xccfa, 0xb2ac, 0xc1e5, 0xeee5, 0xc7a6, 0xc3ad, 0xe898, 0xeee6, 0xeee7, 0xeee8, 0xeee9, 0xeeea, 0xeeeb, 0xeeec, 0xe899, 0xeeed, 0xeeee, 0xeeef, 0xe89a, 0xe89b, 0xeef0, 0xeef1, 0xeef2, 0xeef4, 0xeef3, 0xe89c, 0xeef5, 0xcdad, 0xc2c1, 0xeef6, 0xeef7, 0xeef8, 0xd5a1, 0xeef9, 0xcfb3, 0xeefa, 0xeefb, 0xe89d, 0xeefc, 0xeefd, 0xefa1, 0xeefe, 0xefa2, 0xb8f5, 0xc3fa, 0xefa3, 0xefa4, 0xbdc2, 0xd2bf, 0xb2f9, 0xefa5, 0xefa6, 0xefa7, 0xd2f8, 0xefa8, 0xd6fd, 0xefa9, 0xc6cc, 0xe89e, 0xefaa, 0xefab, 0xc1b4, 0xefac, /* 0x9500 .. 0x95ff */ 0xcffa, 0xcbf8, 0xefae, 0xefad, 0xb3fa, 0xb9f8, 0xefaf, 0xefb0, 0xd0e2, 0xefb1, 0xefb2, 0xb7e6, 0xd0bf, 0xefb3, 0xefb4, 0xefb5, 0xc8f1, 0xcce0, 0xefb6, 0xefb7, 0xefb8, 0xefb9, 0xefba, 0xd5e0, 0xefbb, 0xb4ed, 0xc3aa, 0xefbc, 0xe89f, 0xefbd, 0xefbe, 0xefbf, 0xe8a0, 0xcefd, 0xefc0, 0xc2e0, 0xb4b8, 0xd7b6, 0xbdf5, 0xe940, 0xcfc7, 0xefc3, 0xefc1, 0xefc2, 0xefc4, 0xb6a7, 0xbcfc, 0xbee2, 0xc3cc, 0xefc5, 0xefc6, 0xe941, 0xefc7, 0xefcf, 0xefc8, 0xefc9, 0xefca, 0xc7c2, 0xeff1, 0xb6cd, 0xefcb, 0xe942, 0xefcc, 0xefcd, 0xb6c6, 0xc3be, 0xefce, 0xe943, 0xefd0, 0xefd1, 0xefd2, 0xd5f2, 0xe944, 0xefd3, 0xc4f7, 0xe945, 0xefd4, 0xc4f8, 0xefd5, 0xefd6, 0xb8e4, 0xb0f7, 0xefd7, 0xefd8, 0xefd9, 0xe946, 0xefda, 0xefdb, 0xefdc, 0xefdd, 0xe947, 0xefde, 0xbeb5, 0xefe1, 0xefdf, 0xefe0, 0xe948, 0xefe2, 0xefe3, 0xc1cd, 0xefe4, 0xefe5, 0xefe6, 0xefe7, 0xefe8, 0xefe9, 0xefea, 0xefeb, 0xefec, 0xc0d8, 0xe949, 0xefed, 0xc1ad, 0xefee, 0xefef, 0xeff0, 0xe94a, 0xe94b, 0xcfe2, 0xe94c, 0xe94d, 0xe94e, 0xe94f, 0xe950, 0xe951, 0xe952, 0xe953, 0xb3a4, 0xe954, 0xe955, 0xe956, 0xe957, 0xe958, 0xe959, 0xe95a, 0xe95b, 0xe95c, 0xe95d, 0xe95e, 0xe95f, 0xe960, 0xe961, 0xe962, 0xe963, 0xe964, 0xe965, 0xe966, 0xe967, 0xe968, 0xe969, 0xe96a, 0xe96b, 0xe96c, 0xe96d, 0xe96e, 0xe96f, 0xe970, 0xe971, 0xe972, 0xe973, 0xe974, 0xe975, 0xe976, 0xe977, 0xe978, 0xe979, 0xe97a, 0xe97b, 0xe97c, 0xe97d, 0xe97e, 0xe980, 0xe981, 0xe982, 0xe983, 0xe984, 0xe985, 0xe986, 0xe987, 0xe988, 0xe989, 0xe98a, 0xe98b, 0xe98c, 0xe98d, 0xe98e, 0xe98f, 0xe990, 0xe991, 0xe992, 0xe993, 0xe994, 0xe995, 0xe996, 0xe997, 0xe998, 0xe999, 0xe99a, 0xe99b, 0xe99c, 0xe99d, 0xe99e, 0xe99f, 0xe9a0, 0xea40, 0xea41, 0xea42, 0xea43, 0xea44, 0xea45, 0xea46, 0xea47, 0xea48, 0xea49, 0xea4a, 0xea4b, 0xea4c, 0xea4d, 0xea4e, 0xea4f, 0xea50, 0xea51, 0xea52, 0xea53, 0xea54, 0xea55, 0xea56, 0xea57, 0xea58, 0xea59, 0xea5a, 0xea5b, 0xc3c5, 0xe3c5, 0xc9c1, 0xe3c6, 0xea5c, 0xb1d5, 0xceca, 0xb4b3, 0xc8f2, 0xe3c7, 0xcfd0, 0xe3c8, 0xbce4, 0xe3c9, 0xe3ca, 0xc3c6, 0xd5a2, 0xc4d6, 0xb9eb, 0xcec5, 0xe3cb, 0xc3f6, 0xe3cc, 0xea5d, /* 0x9600 .. 0x96ff */ 0xb7a7, 0xb8f3, 0xbad2, 0xe3cd, 0xe3ce, 0xd4c4, 0xe3cf, 0xea5e, 0xe3d0, 0xd1cb, 0xe3d1, 0xe3d2, 0xe3d3, 0xe3d4, 0xd1d6, 0xe3d5, 0xb2fb, 0xc0bb, 0xe3d6, 0xea5f, 0xc0ab, 0xe3d7, 0xe3d8, 0xe3d9, 0xea60, 0xe3da, 0xe3db, 0xea61, 0xb8b7, 0xdae2, 0xea62, 0xb6d3, 0xea63, 0xdae4, 0xdae3, 0xea64, 0xea65, 0xea66, 0xea67, 0xea68, 0xea69, 0xea6a, 0xdae6, 0xea6b, 0xea6c, 0xea6d, 0xc8ee, 0xea6e, 0xea6f, 0xdae5, 0xb7c0, 0xd1f4, 0xd2f5, 0xd5f3, 0xbdd7, 0xea70, 0xea71, 0xea72, 0xea73, 0xd7e8, 0xdae8, 0xdae7, 0xea74, 0xb0a2, 0xcdd3, 0xea75, 0xdae9, 0xea76, 0xb8bd, 0xbcca, 0xc2bd, 0xc2a4, 0xb3c2, 0xdaea, 0xea77, 0xc2aa, 0xc4b0, 0xbdb5, 0xea78, 0xea79, 0xcfde, 0xea7a, 0xea7b, 0xea7c, 0xdaeb, 0xc9c2, 0xea7d, 0xea7e, 0xea80, 0xea81, 0xea82, 0xb1dd, 0xea83, 0xea84, 0xea85, 0xdaec, 0xea86, 0xb6b8, 0xd4ba, 0xea87, 0xb3fd, 0xea88, 0xea89, 0xdaed, 0xd4c9, 0xcfd5, 0xc5e3, 0xea8a, 0xdaee, 0xea8b, 0xea8c, 0xea8d, 0xea8e, 0xea8f, 0xdaef, 0xea90, 0xdaf0, 0xc1ea, 0xccd5, 0xcfdd, 0xea91, 0xea92, 0xea93, 0xea94, 0xea95, 0xea96, 0xea97, 0xea98, 0xea99, 0xea9a, 0xea9b, 0xea9c, 0xea9d, 0xd3e7, 0xc2a1, 0xea9e, 0xdaf1, 0xea9f, 0xeaa0, 0xcbe5, 0xeb40, 0xdaf2, 0xeb41, 0xcbe6, 0xd2fe, 0xeb42, 0xeb43, 0xeb44, 0xb8f4, 0xeb45, 0xeb46, 0xdaf3, 0xb0af, 0xcfb6, 0xeb47, 0xeb48, 0xd5cf, 0xeb49, 0xeb4a, 0xeb4b, 0xeb4c, 0xeb4d, 0xeb4e, 0xeb4f, 0xeb50, 0xeb51, 0xeb52, 0xcbed, 0xeb53, 0xeb54, 0xeb55, 0xeb56, 0xeb57, 0xeb58, 0xeb59, 0xeb5a, 0xdaf4, 0xeb5b, 0xeb5c, 0xe3c4, 0xeb5d, 0xeb5e, 0xc1a5, 0xeb5f, 0xeb60, 0xf6bf, 0xeb61, 0xeb62, 0xf6c0, 0xf6c1, 0xc4d1, 0xeb63, 0xc8b8, 0xd1e3, 0xeb64, 0xeb65, 0xd0db, 0xd1c5, 0xbcaf, 0xb9cd, 0xeb66, 0xeff4, 0xeb67, 0xeb68, 0xb4c6, 0xd3ba, 0xf6c2, 0xb3fb, 0xeb69, 0xeb6a, 0xf6c3, 0xeb6b, 0xeb6c, 0xb5f1, 0xeb6d, 0xeb6e, 0xeb6f, 0xeb70, 0xeb71, 0xeb72, 0xeb73, 0xeb74, 0xeb75, 0xeb76, 0xf6c5, 0xeb77, 0xeb78, 0xeb79, 0xeb7a, 0xeb7b, 0xeb7c, 0xeb7d, 0xd3ea, 0xf6a7, 0xd1a9, 0xeb7e, 0xeb80, 0xeb81, 0xeb82, 0xf6a9, 0xeb83, 0xeb84, 0xeb85, 0xf6a8, 0xeb86, 0xeb87, 0xc1e3, 0xc0d7, 0xeb88, 0xb1a2, 0xeb89, 0xeb8a, 0xeb8b, 0xeb8c, 0xceed, 0xeb8d, /* 0x9700 .. 0x97ff */ 0xd0e8, 0xf6ab, 0xeb8e, 0xeb8f, 0xcff6, 0xeb90, 0xf6aa, 0xd5f0, 0xf6ac, 0xc3b9, 0xeb91, 0xeb92, 0xeb93, 0xbbf4, 0xf6ae, 0xf6ad, 0xeb94, 0xeb95, 0xeb96, 0xc4de, 0xeb97, 0xeb98, 0xc1d8, 0xeb99, 0xeb9a, 0xeb9b, 0xeb9c, 0xeb9d, 0xcbaa, 0xeb9e, 0xcfbc, 0xeb9f, 0xeba0, 0xec40, 0xec41, 0xec42, 0xec43, 0xec44, 0xec45, 0xec46, 0xec47, 0xec48, 0xf6af, 0xec49, 0xec4a, 0xf6b0, 0xec4b, 0xec4c, 0xf6b1, 0xec4d, 0xc2b6, 0xec4e, 0xec4f, 0xec50, 0xec51, 0xec52, 0xb0d4, 0xc5f9, 0xec53, 0xec54, 0xec55, 0xec56, 0xf6b2, 0xec57, 0xec58, 0xec59, 0xec5a, 0xec5b, 0xec5c, 0xec5d, 0xec5e, 0xec5f, 0xec60, 0xec61, 0xec62, 0xec63, 0xec64, 0xec65, 0xec66, 0xec67, 0xec68, 0xec69, 0xc7e0, 0xf6a6, 0xec6a, 0xec6b, 0xbeb8, 0xec6c, 0xec6d, 0xbeb2, 0xec6e, 0xb5e5, 0xec6f, 0xec70, 0xb7c7, 0xec71, 0xbfbf, 0xc3d2, 0xc3e6, 0xec72, 0xec73, 0xd8cc, 0xec74, 0xec75, 0xec76, 0xb8ef, 0xec77, 0xec78, 0xec79, 0xec7a, 0xec7b, 0xec7c, 0xec7d, 0xec7e, 0xec80, 0xbdf9, 0xd1a5, 0xec81, 0xb0d0, 0xec82, 0xec83, 0xec84, 0xec85, 0xec86, 0xf7b0, 0xec87, 0xec88, 0xec89, 0xec8a, 0xec8b, 0xec8c, 0xec8d, 0xec8e, 0xf7b1, 0xec8f, 0xec90, 0xec91, 0xec92, 0xec93, 0xd0ac, 0xec94, 0xb0b0, 0xec95, 0xec96, 0xec97, 0xf7b2, 0xf7b3, 0xec98, 0xf7b4, 0xec99, 0xec9a, 0xec9b, 0xc7ca, 0xec9c, 0xec9d, 0xec9e, 0xec9f, 0xeca0, 0xed40, 0xed41, 0xbecf, 0xed42, 0xed43, 0xf7b7, 0xed44, 0xed45, 0xed46, 0xed47, 0xed48, 0xed49, 0xed4a, 0xf7b6, 0xed4b, 0xb1de, 0xed4c, 0xf7b5, 0xed4d, 0xed4e, 0xf7b8, 0xed4f, 0xf7b9, 0xed50, 0xed51, 0xed52, 0xed53, 0xed54, 0xed55, 0xed56, 0xed57, 0xed58, 0xed59, 0xed5a, 0xed5b, 0xed5c, 0xed5d, 0xed5e, 0xed5f, 0xed60, 0xed61, 0xed62, 0xed63, 0xed64, 0xed65, 0xed66, 0xed67, 0xed68, 0xed69, 0xed6a, 0xed6b, 0xed6c, 0xed6d, 0xed6e, 0xed6f, 0xed70, 0xed71, 0xed72, 0xed73, 0xed74, 0xed75, 0xed76, 0xed77, 0xed78, 0xed79, 0xed7a, 0xed7b, 0xed7c, 0xed7d, 0xed7e, 0xed80, 0xed81, 0xcea4, 0xc8cd, 0xed82, 0xbaab, 0xe8b8, 0xe8b9, 0xe8ba, 0xbec2, 0xed83, 0xed84, 0xed85, 0xed86, 0xed87, 0xd2f4, 0xed88, 0xd4cf, 0xc9d8, 0xed89, 0xed8a, 0xed8b, 0xed8c, 0xed8d, 0xed8e, 0xed8f, 0xed90, 0xed91, /* 0x9800 .. 0x98ff */ 0xed92, 0xed93, 0xed94, 0xed95, 0xed96, 0xed97, 0xed98, 0xed99, 0xed9a, 0xed9b, 0xed9c, 0xed9d, 0xed9e, 0xed9f, 0xeda0, 0xee40, 0xee41, 0xee42, 0xee43, 0xee44, 0xee45, 0xee46, 0xee47, 0xee48, 0xee49, 0xee4a, 0xee4b, 0xee4c, 0xee4d, 0xee4e, 0xee4f, 0xee50, 0xee51, 0xee52, 0xee53, 0xee54, 0xee55, 0xee56, 0xee57, 0xee58, 0xee59, 0xee5a, 0xee5b, 0xee5c, 0xee5d, 0xee5e, 0xee5f, 0xee60, 0xee61, 0xee62, 0xee63, 0xee64, 0xee65, 0xee66, 0xee67, 0xee68, 0xee69, 0xee6a, 0xee6b, 0xee6c, 0xee6d, 0xee6e, 0xee6f, 0xee70, 0xee71, 0xee72, 0xee73, 0xee74, 0xee75, 0xee76, 0xee77, 0xee78, 0xee79, 0xee7a, 0xee7b, 0xee7c, 0xee7d, 0xee7e, 0xee80, 0xee81, 0xee82, 0xee83, 0xee84, 0xee85, 0xee86, 0xee87, 0xee88, 0xee89, 0xee8a, 0xee8b, 0xee8c, 0xee8d, 0xee8e, 0xee8f, 0xee90, 0xee91, 0xee92, 0xee93, 0xee94, 0xee95, 0xee96, 0xee97, 0xee98, 0xee99, 0xee9a, 0xee9b, 0xee9c, 0xee9d, 0xee9e, 0xee9f, 0xeea0, 0xef40, 0xef41, 0xef42, 0xef43, 0xef44, 0xef45, 0xd2b3, 0xb6a5, 0xc7ea, 0xf1fc, 0xcfee, 0xcbb3, 0xd0eb, 0xe7ef, 0xcde7, 0xb9cb, 0xb6d9, 0xf1fd, 0xb0e4, 0xcbcc, 0xf1fe, 0xd4a4, 0xc2ad, 0xc1ec, 0xc6c4, 0xbeb1, 0xf2a1, 0xbcd5, 0xef46, 0xf2a2, 0xf2a3, 0xef47, 0xf2a4, 0xd2c3, 0xc6b5, 0xef48, 0xcdc7, 0xf2a5, 0xef49, 0xd3b1, 0xbfc5, 0xcce2, 0xef4a, 0xf2a6, 0xf2a7, 0xd1d5, 0xb6ee, 0xf2a8, 0xf2a9, 0xb5df, 0xf2aa, 0xf2ab, 0xef4b, 0xb2fc, 0xf2ac, 0xf2ad, 0xc8a7, 0xef4c, 0xef4d, 0xef4e, 0xef4f, 0xef50, 0xef51, 0xef52, 0xef53, 0xef54, 0xef55, 0xef56, 0xef57, 0xef58, 0xef59, 0xef5a, 0xef5b, 0xef5c, 0xef5d, 0xef5e, 0xef5f, 0xef60, 0xef61, 0xef62, 0xef63, 0xef64, 0xef65, 0xef66, 0xef67, 0xef68, 0xef69, 0xef6a, 0xef6b, 0xef6c, 0xef6d, 0xef6e, 0xef6f, 0xef70, 0xef71, 0xb7e7, 0xef72, 0xef73, 0xeca9, 0xecaa, 0xecab, 0xef74, 0xecac, 0xef75, 0xef76, 0xc6ae, 0xecad, 0xecae, 0xef77, 0xef78, 0xef79, 0xb7c9, 0xcab3, 0xef7a, 0xef7b, 0xef7c, 0xef7d, 0xef7e, 0xef80, 0xef81, 0xe2b8, 0xf7cf, 0xef82, 0xef83, 0xef84, 0xef85, 0xef86, 0xef87, 0xef88, 0xef89, 0xef8a, 0xef8b, 0xef8c, 0xef8d, 0xef8e, 0xef8f, 0xef90, 0xef91, 0xef92, 0xef93, 0xef94, 0xef95, 0xef96, 0xef97, 0xef98, /* 0x9900 .. 0x99ff */ 0xef99, 0xef9a, 0xef9b, 0xef9c, 0xef9d, 0xef9e, 0xef9f, 0xefa0, 0xf040, 0xf041, 0xf042, 0xf043, 0xf044, 0xf7d0, 0xf045, 0xf046, 0xb2cd, 0xf047, 0xf048, 0xf049, 0xf04a, 0xf04b, 0xf04c, 0xf04d, 0xf04e, 0xf04f, 0xf050, 0xf051, 0xf052, 0xf053, 0xf054, 0xf055, 0xf056, 0xf057, 0xf058, 0xf059, 0xf05a, 0xf05b, 0xf05c, 0xf05d, 0xf05e, 0xf05f, 0xf060, 0xf061, 0xf062, 0xf063, 0xf7d1, 0xf064, 0xf065, 0xf066, 0xf067, 0xf068, 0xf069, 0xf06a, 0xf06b, 0xf06c, 0xf06d, 0xf06e, 0xf06f, 0xf070, 0xf071, 0xf072, 0xf073, 0xf074, 0xf075, 0xf076, 0xf077, 0xf078, 0xf079, 0xf07a, 0xf07b, 0xf07c, 0xf07d, 0xf07e, 0xf080, 0xf081, 0xf082, 0xf083, 0xf084, 0xf085, 0xf086, 0xf087, 0xf088, 0xf089, 0xf7d3, 0xf7d2, 0xf08a, 0xf08b, 0xf08c, 0xf08d, 0xf08e, 0xf08f, 0xf090, 0xf091, 0xf092, 0xf093, 0xf094, 0xf095, 0xf096, 0xe2bb, 0xf097, 0xbca2, 0xf098, 0xe2bc, 0xe2bd, 0xe2be, 0xe2bf, 0xe2c0, 0xe2c1, 0xb7b9, 0xd2fb, 0xbda4, 0xcace, 0xb1a5, 0xcbc7, 0xf099, 0xe2c2, 0xb6fc, 0xc8c4, 0xe2c3, 0xf09a, 0xf09b, 0xbdc8, 0xf09c, 0xb1fd, 0xe2c4, 0xf09d, 0xb6f6, 0xe2c5, 0xc4d9, 0xf09e, 0xf09f, 0xe2c6, 0xcfda, 0xb9dd, 0xe2c7, 0xc0a1, 0xf0a0, 0xe2c8, 0xb2f6, 0xf140, 0xe2c9, 0xf141, 0xc1f3, 0xe2ca, 0xe2cb, 0xc2f8, 0xe2cc, 0xe2cd, 0xe2ce, 0xcad7, 0xd8b8, 0xd9e5, 0xcfe3, 0xf142, 0xf143, 0xf144, 0xf145, 0xf146, 0xf147, 0xf148, 0xf149, 0xf14a, 0xf14b, 0xf14c, 0xf0a5, 0xf14d, 0xf14e, 0xdcb0, 0xf14f, 0xf150, 0xf151, 0xf152, 0xf153, 0xf154, 0xf155, 0xf156, 0xf157, 0xf158, 0xf159, 0xf15a, 0xf15b, 0xf15c, 0xf15d, 0xf15e, 0xf15f, 0xf160, 0xf161, 0xf162, 0xf163, 0xf164, 0xf165, 0xf166, 0xf167, 0xf168, 0xf169, 0xf16a, 0xf16b, 0xf16c, 0xf16d, 0xf16e, 0xf16f, 0xf170, 0xf171, 0xf172, 0xf173, 0xf174, 0xf175, 0xf176, 0xf177, 0xf178, 0xf179, 0xf17a, 0xf17b, 0xf17c, 0xf17d, 0xf17e, 0xf180, 0xf181, 0xf182, 0xf183, 0xf184, 0xf185, 0xf186, 0xf187, 0xf188, 0xf189, 0xf18a, 0xf18b, 0xf18c, 0xf18d, 0xf18e, 0xf18f, 0xf190, 0xf191, 0xf192, 0xf193, 0xf194, 0xf195, 0xf196, 0xf197, 0xf198, 0xf199, 0xf19a, 0xf19b, 0xf19c, 0xf19d, 0xf19e, 0xf19f, 0xf1a0, 0xf240, 0xf241, 0xf242, 0xf243, 0xf244, 0xf245, /* 0x9a00 .. 0x9aff */ 0xf246, 0xf247, 0xf248, 0xf249, 0xf24a, 0xf24b, 0xf24c, 0xf24d, 0xf24e, 0xf24f, 0xf250, 0xf251, 0xf252, 0xf253, 0xf254, 0xf255, 0xf256, 0xf257, 0xf258, 0xf259, 0xf25a, 0xf25b, 0xf25c, 0xf25d, 0xf25e, 0xf25f, 0xf260, 0xf261, 0xf262, 0xf263, 0xf264, 0xf265, 0xf266, 0xf267, 0xf268, 0xf269, 0xf26a, 0xf26b, 0xf26c, 0xf26d, 0xf26e, 0xf26f, 0xf270, 0xf271, 0xf272, 0xf273, 0xf274, 0xf275, 0xf276, 0xf277, 0xf278, 0xf279, 0xf27a, 0xf27b, 0xf27c, 0xf27d, 0xf27e, 0xf280, 0xf281, 0xf282, 0xf283, 0xf284, 0xf285, 0xf286, 0xf287, 0xf288, 0xf289, 0xf28a, 0xf28b, 0xf28c, 0xf28d, 0xf28e, 0xf28f, 0xf290, 0xf291, 0xf292, 0xf293, 0xf294, 0xf295, 0xf296, 0xf297, 0xf298, 0xf299, 0xf29a, 0xf29b, 0xf29c, 0xf29d, 0xf29e, 0xf29f, 0xf2a0, 0xf340, 0xf341, 0xf342, 0xf343, 0xf344, 0xf345, 0xf346, 0xf347, 0xf348, 0xf349, 0xf34a, 0xf34b, 0xf34c, 0xf34d, 0xf34e, 0xf34f, 0xf350, 0xf351, 0xc2ed, 0xd4a6, 0xcdd4, 0xd1b1, 0xb3db, 0xc7fd, 0xf352, 0xb2b5, 0xc2bf, 0xe6e0, 0xcabb, 0xe6e1, 0xe6e2, 0xbed4, 0xe6e3, 0xd7a4, 0xcdd5, 0xe6e5, 0xbcdd, 0xe6e4, 0xe6e6, 0xe6e7, 0xc2ee, 0xf353, 0xbdbe, 0xe6e8, 0xc2e6, 0xbaa7, 0xe6e9, 0xf354, 0xe6ea, 0xb3d2, 0xd1e9, 0xf355, 0xf356, 0xbfa5, 0xe6eb, 0xc6ef, 0xe6ec, 0xe6ed, 0xf357, 0xf358, 0xe6ee, 0xc6ad, 0xe6ef, 0xf359, 0xc9a7, 0xe6f0, 0xe6f1, 0xe6f2, 0xe5b9, 0xe6f3, 0xe6f4, 0xc2e2, 0xe6f5, 0xe6f6, 0xd6e8, 0xe6f7, 0xf35a, 0xe6f8, 0xb9c7, 0xf35b, 0xf35c, 0xf35d, 0xf35e, 0xf35f, 0xf360, 0xf361, 0xf7bb, 0xf7ba, 0xf362, 0xf363, 0xf364, 0xf365, 0xf7be, 0xf7bc, 0xbaa1, 0xf366, 0xf7bf, 0xf367, 0xf7c0, 0xf368, 0xf369, 0xf36a, 0xf7c2, 0xf7c1, 0xf7c4, 0xf36b, 0xf36c, 0xf7c3, 0xf36d, 0xf36e, 0xf36f, 0xf370, 0xf371, 0xf7c5, 0xf7c6, 0xf372, 0xf373, 0xf374, 0xf375, 0xf7c7, 0xf376, 0xcbe8, 0xf377, 0xf378, 0xf379, 0xf37a, 0xb8df, 0xf37b, 0xf37c, 0xf37d, 0xf37e, 0xf380, 0xf381, 0xf7d4, 0xf382, 0xf7d5, 0xf383, 0xf384, 0xf385, 0xf386, 0xf7d6, 0xf387, 0xf388, 0xf389, 0xf38a, 0xf7d8, 0xf38b, 0xf7da, 0xf38c, 0xf7d7, 0xf38d, 0xf38e, 0xf38f, 0xf390, 0xf391, 0xf392, 0xf393, 0xf394, 0xf395, 0xf7db, 0xf396, 0xf7d9, 0xf397, 0xf398, 0xf399, 0xf39a, /* 0x9b00 .. 0x9bff */ 0xf39b, 0xf39c, 0xf39d, 0xd7d7, 0xf39e, 0xf39f, 0xf3a0, 0xf440, 0xf7dc, 0xf441, 0xf442, 0xf443, 0xf444, 0xf445, 0xf446, 0xf7dd, 0xf447, 0xf448, 0xf449, 0xf7de, 0xf44a, 0xf44b, 0xf44c, 0xf44d, 0xf44e, 0xf44f, 0xf450, 0xf451, 0xf452, 0xf453, 0xf454, 0xf7df, 0xf455, 0xf456, 0xf457, 0xf7e0, 0xf458, 0xf459, 0xf45a, 0xf45b, 0xf45c, 0xf45d, 0xf45e, 0xf45f, 0xf460, 0xf461, 0xf462, 0xdbcb, 0xf463, 0xf464, 0xd8aa, 0xf465, 0xf466, 0xf467, 0xf468, 0xf469, 0xf46a, 0xf46b, 0xf46c, 0xe5f7, 0xb9ed, 0xf46d, 0xf46e, 0xf46f, 0xf470, 0xbffd, 0xbbea, 0xf7c9, 0xc6c7, 0xf7c8, 0xf471, 0xf7ca, 0xf7cc, 0xf7cb, 0xf472, 0xf473, 0xf474, 0xf7cd, 0xf475, 0xceba, 0xf476, 0xf7ce, 0xf477, 0xf478, 0xc4a7, 0xf479, 0xf47a, 0xf47b, 0xf47c, 0xf47d, 0xf47e, 0xf480, 0xf481, 0xf482, 0xf483, 0xf484, 0xf485, 0xf486, 0xf487, 0xf488, 0xf489, 0xf48a, 0xf48b, 0xf48c, 0xf48d, 0xf48e, 0xf48f, 0xf490, 0xf491, 0xf492, 0xf493, 0xf494, 0xf495, 0xf496, 0xf497, 0xf498, 0xf499, 0xf49a, 0xf49b, 0xf49c, 0xf49d, 0xf49e, 0xf49f, 0xf4a0, 0xf540, 0xf541, 0xf542, 0xf543, 0xf544, 0xf545, 0xf546, 0xf547, 0xf548, 0xf549, 0xf54a, 0xf54b, 0xf54c, 0xf54d, 0xf54e, 0xf54f, 0xf550, 0xf551, 0xf552, 0xf553, 0xf554, 0xf555, 0xf556, 0xf557, 0xf558, 0xf559, 0xf55a, 0xf55b, 0xf55c, 0xf55d, 0xf55e, 0xf55f, 0xf560, 0xf561, 0xf562, 0xf563, 0xf564, 0xf565, 0xf566, 0xf567, 0xf568, 0xf569, 0xf56a, 0xf56b, 0xf56c, 0xf56d, 0xf56e, 0xf56f, 0xf570, 0xf571, 0xf572, 0xf573, 0xf574, 0xf575, 0xf576, 0xf577, 0xf578, 0xf579, 0xf57a, 0xf57b, 0xf57c, 0xf57d, 0xf57e, 0xf580, 0xf581, 0xf582, 0xf583, 0xf584, 0xf585, 0xf586, 0xf587, 0xf588, 0xf589, 0xf58a, 0xf58b, 0xf58c, 0xf58d, 0xf58e, 0xf58f, 0xf590, 0xf591, 0xf592, 0xf593, 0xf594, 0xf595, 0xf596, 0xf597, 0xf598, 0xf599, 0xf59a, 0xf59b, 0xf59c, 0xf59d, 0xf59e, 0xf59f, 0xf5a0, 0xf640, 0xf641, 0xf642, 0xf643, 0xf644, 0xf645, 0xf646, 0xf647, 0xf648, 0xf649, 0xf64a, 0xf64b, 0xf64c, 0xf64d, 0xf64e, 0xf64f, 0xf650, 0xf651, 0xf652, 0xf653, 0xf654, 0xf655, 0xf656, 0xf657, 0xf658, 0xf659, 0xf65a, 0xf65b, 0xf65c, 0xf65d, 0xf65e, 0xf65f, 0xf660, 0xf661, 0xf662, 0xf663, /* 0x9c00 .. 0x9cff */ 0xf664, 0xf665, 0xf666, 0xf667, 0xf668, 0xf669, 0xf66a, 0xf66b, 0xf66c, 0xf66d, 0xf66e, 0xf66f, 0xf670, 0xf671, 0xf672, 0xf673, 0xf674, 0xf675, 0xf676, 0xf677, 0xf678, 0xf679, 0xf67a, 0xf67b, 0xf67c, 0xf67d, 0xf67e, 0xf680, 0xf681, 0xf682, 0xf683, 0xf684, 0xf685, 0xf686, 0xf687, 0xf688, 0xf689, 0xf68a, 0xf68b, 0xf68c, 0xf68d, 0xf68e, 0xf68f, 0xf690, 0xf691, 0xf692, 0xf693, 0xf694, 0xf695, 0xf696, 0xf697, 0xf698, 0xf699, 0xf69a, 0xf69b, 0xf69c, 0xf69d, 0xf69e, 0xf69f, 0xf6a0, 0xf740, 0xf741, 0xf742, 0xf743, 0xf744, 0xf745, 0xf746, 0xf747, 0xf748, 0xf749, 0xf74a, 0xf74b, 0xf74c, 0xf74d, 0xf74e, 0xf74f, 0xf750, 0xf751, 0xf752, 0xf753, 0xf754, 0xf755, 0xf756, 0xf757, 0xf758, 0xf759, 0xf75a, 0xf75b, 0xf75c, 0xf75d, 0xf75e, 0xf75f, 0xf760, 0xf761, 0xf762, 0xf763, 0xf764, 0xf765, 0xf766, 0xf767, 0xf768, 0xf769, 0xf76a, 0xf76b, 0xf76c, 0xf76d, 0xf76e, 0xf76f, 0xf770, 0xf771, 0xf772, 0xf773, 0xf774, 0xf775, 0xf776, 0xf777, 0xf778, 0xf779, 0xf77a, 0xf77b, 0xf77c, 0xf77d, 0xf77e, 0xf780, 0xd3e3, 0xf781, 0xf782, 0xf6cf, 0xf783, 0xc2b3, 0xf6d0, 0xf784, 0xf785, 0xf6d1, 0xf6d2, 0xf6d3, 0xf6d4, 0xf786, 0xf787, 0xf6d6, 0xf788, 0xb1ab, 0xf6d7, 0xf789, 0xf6d8, 0xf6d9, 0xf6da, 0xf78a, 0xf6db, 0xf6dc, 0xf78b, 0xf78c, 0xf78d, 0xf78e, 0xf6dd, 0xf6de, 0xcfca, 0xf78f, 0xf6df, 0xf6e0, 0xf6e1, 0xf6e2, 0xf6e3, 0xf6e4, 0xc0f0, 0xf6e5, 0xf6e6, 0xf6e7, 0xf6e8, 0xf6e9, 0xf790, 0xf6ea, 0xf791, 0xf6eb, 0xf6ec, 0xf792, 0xf6ed, 0xf6ee, 0xf6ef, 0xf6f0, 0xf6f1, 0xf6f2, 0xf6f3, 0xf6f4, 0xbea8, 0xf793, 0xf6f5, 0xf6f6, 0xf6f7, 0xf6f8, 0xf794, 0xf795, 0xf796, 0xf797, 0xf798, 0xc8fa, 0xf6f9, 0xf6fa, 0xf6fb, 0xf6fc, 0xf799, 0xf79a, 0xf6fd, 0xf6fe, 0xf7a1, 0xf7a2, 0xf7a3, 0xf7a4, 0xf7a5, 0xf79b, 0xf79c, 0xf7a6, 0xf7a7, 0xf7a8, 0xb1ee, 0xf7a9, 0xf7aa, 0xf7ab, 0xf79d, 0xf79e, 0xf7ac, 0xf7ad, 0xc1db, 0xf7ae, 0xf79f, 0xf7a0, 0xf7af, 0xf840, 0xf841, 0xf842, 0xf843, 0xf844, 0xf845, 0xf846, 0xf847, 0xf848, 0xf849, 0xf84a, 0xf84b, 0xf84c, 0xf84d, 0xf84e, 0xf84f, 0xf850, 0xf851, 0xf852, 0xf853, 0xf854, 0xf855, 0xf856, 0xf857, 0xf858, 0xf859, 0xf85a, 0xf85b, 0xf85c, /* 0x9d00 .. 0x9dff */ 0xf85d, 0xf85e, 0xf85f, 0xf860, 0xf861, 0xf862, 0xf863, 0xf864, 0xf865, 0xf866, 0xf867, 0xf868, 0xf869, 0xf86a, 0xf86b, 0xf86c, 0xf86d, 0xf86e, 0xf86f, 0xf870, 0xf871, 0xf872, 0xf873, 0xf874, 0xf875, 0xf876, 0xf877, 0xf878, 0xf879, 0xf87a, 0xf87b, 0xf87c, 0xf87d, 0xf87e, 0xf880, 0xf881, 0xf882, 0xf883, 0xf884, 0xf885, 0xf886, 0xf887, 0xf888, 0xf889, 0xf88a, 0xf88b, 0xf88c, 0xf88d, 0xf88e, 0xf88f, 0xf890, 0xf891, 0xf892, 0xf893, 0xf894, 0xf895, 0xf896, 0xf897, 0xf898, 0xf899, 0xf89a, 0xf89b, 0xf89c, 0xf89d, 0xf89e, 0xf89f, 0xf8a0, 0xf940, 0xf941, 0xf942, 0xf943, 0xf944, 0xf945, 0xf946, 0xf947, 0xf948, 0xf949, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0xf958, 0xf959, 0xf95a, 0xf95b, 0xf95c, 0xf95d, 0xf95e, 0xf95f, 0xf960, 0xf961, 0xf962, 0xf963, 0xf964, 0xf965, 0xf966, 0xf967, 0xf968, 0xf969, 0xf96a, 0xf96b, 0xf96c, 0xf96d, 0xf96e, 0xf96f, 0xf970, 0xf971, 0xf972, 0xf973, 0xf974, 0xf975, 0xf976, 0xf977, 0xf978, 0xf979, 0xf97a, 0xf97b, 0xf97c, 0xf97d, 0xf97e, 0xf980, 0xf981, 0xf982, 0xf983, 0xf984, 0xf985, 0xf986, 0xf987, 0xf988, 0xf989, 0xf98a, 0xf98b, 0xf98c, 0xf98d, 0xf98e, 0xf98f, 0xf990, 0xf991, 0xf992, 0xf993, 0xf994, 0xf995, 0xf996, 0xf997, 0xf998, 0xf999, 0xf99a, 0xf99b, 0xf99c, 0xf99d, 0xf99e, 0xf99f, 0xf9a0, 0xfa40, 0xfa41, 0xfa42, 0xfa43, 0xfa44, 0xfa45, 0xfa46, 0xfa47, 0xfa48, 0xfa49, 0xfa4a, 0xfa4b, 0xfa4c, 0xfa4d, 0xfa4e, 0xfa4f, 0xfa50, 0xfa51, 0xfa52, 0xfa53, 0xfa54, 0xfa55, 0xfa56, 0xfa57, 0xfa58, 0xfa59, 0xfa5a, 0xfa5b, 0xfa5c, 0xfa5d, 0xfa5e, 0xfa5f, 0xfa60, 0xfa61, 0xfa62, 0xfa63, 0xfa64, 0xfa65, 0xfa66, 0xfa67, 0xfa68, 0xfa69, 0xfa6a, 0xfa6b, 0xfa6c, 0xfa6d, 0xfa6e, 0xfa6f, 0xfa70, 0xfa71, 0xfa72, 0xfa73, 0xfa74, 0xfa75, 0xfa76, 0xfa77, 0xfa78, 0xfa79, 0xfa7a, 0xfa7b, 0xfa7c, 0xfa7d, 0xfa7e, 0xfa80, 0xfa81, 0xfa82, 0xfa83, 0xfa84, 0xfa85, 0xfa86, 0xfa87, 0xfa88, 0xfa89, 0xfa8a, 0xfa8b, 0xfa8c, 0xfa8d, 0xfa8e, 0xfa8f, 0xfa90, 0xfa91, 0xfa92, 0xfa93, 0xfa94, 0xfa95, 0xfa96, 0xfa97, 0xfa98, 0xfa99, 0xfa9a, 0xfa9b, 0xfa9c, 0xfa9d, /* 0x9e00 .. 0x9eff */ 0xfa9e, 0xfa9f, 0xfaa0, 0xfb40, 0xfb41, 0xfb42, 0xfb43, 0xfb44, 0xfb45, 0xfb46, 0xfb47, 0xfb48, 0xfb49, 0xfb4a, 0xfb4b, 0xfb4c, 0xfb4d, 0xfb4e, 0xfb4f, 0xfb50, 0xfb51, 0xfb52, 0xfb53, 0xfb54, 0xfb55, 0xfb56, 0xfb57, 0xfb58, 0xfb59, 0xfb5a, 0xfb5b, 0xc4f1, 0xf0af, 0xbca6, 0xf0b0, 0xc3f9, 0xfb5c, 0xc5b8, 0xd1bb, 0xfb5d, 0xf0b1, 0xf0b2, 0xf0b3, 0xf0b4, 0xf0b5, 0xd1bc, 0xfb5e, 0xd1ec, 0xfb5f, 0xf0b7, 0xf0b6, 0xd4a7, 0xfb60, 0xcdd2, 0xf0b8, 0xf0ba, 0xf0b9, 0xf0bb, 0xf0bc, 0xfb61, 0xfb62, 0xb8eb, 0xf0bd, 0xbae8, 0xfb63, 0xf0be, 0xf0bf, 0xbee9, 0xf0c0, 0xb6ec, 0xf0c1, 0xf0c2, 0xf0c3, 0xf0c4, 0xc8b5, 0xf0c5, 0xf0c6, 0xfb64, 0xf0c7, 0xc5f4, 0xfb65, 0xf0c8, 0xfb66, 0xfb67, 0xfb68, 0xf0c9, 0xfb69, 0xf0ca, 0xf7bd, 0xfb6a, 0xf0cb, 0xf0cc, 0xf0cd, 0xfb6b, 0xf0ce, 0xfb6c, 0xfb6d, 0xfb6e, 0xfb6f, 0xf0cf, 0xbad7, 0xfb70, 0xf0d0, 0xf0d1, 0xf0d2, 0xf0d3, 0xf0d4, 0xf0d5, 0xf0d6, 0xf0d8, 0xfb71, 0xfb72, 0xd3a5, 0xf0d7, 0xfb73, 0xf0d9, 0xfb74, 0xfb75, 0xfb76, 0xfb77, 0xfb78, 0xfb79, 0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d, 0xf5ba, 0xc2b9, 0xfb7e, 0xfb80, 0xf7e4, 0xfb81, 0xfb82, 0xfb83, 0xfb84, 0xf7e5, 0xf7e6, 0xfb85, 0xfb86, 0xf7e7, 0xfb87, 0xfb88, 0xfb89, 0xfb8a, 0xfb8b, 0xfb8c, 0xf7e8, 0xc2b4, 0xfb8d, 0xfb8e, 0xfb8f, 0xfb90, 0xfb91, 0xfb92, 0xfb93, 0xfb94, 0xfb95, 0xf7ea, 0xfb96, 0xf7eb, 0xfb97, 0xfb98, 0xfb99, 0xfb9a, 0xfb9b, 0xfb9c, 0xc2f3, 0xfb9d, 0xfb9e, 0xfb9f, 0xfba0, 0xfc40, 0xfc41, 0xfc42, 0xfc43, 0xfc44, 0xfc45, 0xfc46, 0xfc47, 0xfc48, 0xf4f0, 0xfc49, 0xfc4a, 0xfc4b, 0xf4ef, 0xfc4c, 0xfc4d, 0xc2e9, 0xfc4e, 0xf7e1, 0xf7e2, 0xfc4f, 0xfc50, 0xfc51, 0xfc52, 0xfc53, 0xbbc6, 0xfc54, 0xfc55, 0xfc56, 0xfc57, 0xd9e4, 0xfc58, 0xfc59, 0xfc5a, 0xcaf2, 0xc0e8, 0xf0a4, 0xfc5b, 0xbada, 0xfc5c, 0xfc5d, 0xc7ad, 0xfc5e, 0xfc5f, 0xfc60, 0xc4ac, 0xfc61, 0xfc62, 0xf7ec, 0xf7ed, 0xf7ee, 0xfc63, 0xf7f0, 0xf7ef, 0xfc64, 0xf7f1, 0xfc65, 0xfc66, 0xf7f4, 0xfc67, 0xf7f3, 0xfc68, 0xf7f2, 0xf7f5, 0xfc69, 0xfc6a, 0xfc6b, 0xfc6c, 0xf7f6, 0xfc6d, 0xfc6e, 0xfc6f, 0xfc70, 0xfc71, 0xfc72, 0xfc73, 0xfc74, 0xfc75, 0xede9, 0xfc76, 0xedea, 0xedeb, 0xfc77, 0xf6bc, 0xfc78, /* 0x9f00 .. 0x9fff */ 0xfc79, 0xfc7a, 0xfc7b, 0xfc7c, 0xfc7d, 0xfc7e, 0xfc80, 0xfc81, 0xfc82, 0xfc83, 0xfc84, 0xf6bd, 0xfc85, 0xf6be, 0xb6a6, 0xfc86, 0xd8be, 0xfc87, 0xfc88, 0xb9c4, 0xfc89, 0xfc8a, 0xfc8b, 0xd8bb, 0xfc8c, 0xdcb1, 0xfc8d, 0xfc8e, 0xfc8f, 0xfc90, 0xfc91, 0xfc92, 0xcaf3, 0xfc93, 0xf7f7, 0xfc94, 0xfc95, 0xfc96, 0xfc97, 0xfc98, 0xfc99, 0xfc9a, 0xfc9b, 0xfc9c, 0xf7f8, 0xfc9d, 0xfc9e, 0xf7f9, 0xfc9f, 0xfca0, 0xfd40, 0xfd41, 0xfd42, 0xfd43, 0xfd44, 0xf7fb, 0xfd45, 0xf7fa, 0xfd46, 0xb1c7, 0xfd47, 0xf7fc, 0xf7fd, 0xfd48, 0xfd49, 0xfd4a, 0xfd4b, 0xfd4c, 0xf7fe, 0xfd4d, 0xfd4e, 0xfd4f, 0xfd50, 0xfd51, 0xfd52, 0xfd53, 0xfd54, 0xfd55, 0xfd56, 0xfd57, 0xc6eb, 0xecb4, 0xfd58, 0xfd59, 0xfd5a, 0xfd5b, 0xfd5c, 0xfd5d, 0xfd5e, 0xfd5f, 0xfd60, 0xfd61, 0xfd62, 0xfd63, 0xfd64, 0xfd65, 0xfd66, 0xfd67, 0xfd68, 0xfd69, 0xfd6a, 0xfd6b, 0xfd6c, 0xfd6d, 0xfd6e, 0xfd6f, 0xfd70, 0xfd71, 0xfd72, 0xfd73, 0xfd74, 0xfd75, 0xfd76, 0xfd77, 0xfd78, 0xfd79, 0xfd7a, 0xfd7b, 0xfd7c, 0xfd7d, 0xfd7e, 0xfd80, 0xfd81, 0xfd82, 0xfd83, 0xfd84, 0xfd85, 0xb3dd, 0xf6b3, 0xfd86, 0xfd87, 0xf6b4, 0xc1e4, 0xf6b5, 0xf6b6, 0xf6b7, 0xf6b8, 0xf6b9, 0xf6ba, 0xc8a3, 0xf6bb, 0xfd88, 0xfd89, 0xfd8a, 0xfd8b, 0xfd8c, 0xfd8d, 0xfd8e, 0xfd8f, 0xfd90, 0xfd91, 0xfd92, 0xfd93, 0xc1fa, 0xb9a8, 0xede8, 0xfd94, 0xfd95, 0xfd96, 0xb9ea, 0xd9df, 0xfd97, 0xfd98, 0xfd99, 0xfd9a, 0xfd9b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xf900 .. 0xf9ff */ 0xd84d, 0xb8fc, 0xdc87, 0xd95a, 0xbbac, 0xb4ae, 0xbee4, 0xfd94, 0xfd94, 0xc6f5, 0xbdf0, 0xc0ae, 0xc4ce, 0x91d0, 0xb05d, 0xc15f, 0xcc7d, 0xc2dd, 0xc2e3, 0xdf89, 0x98b7, 0xc2e5, 0xc0d3, 0xe7f3, 0xc2e4, 0xc0d2, 0xf198, 0x8179, 0xc2d1, 0x99da, 0xa080, 0xcc6d, 0xfb5b, 0x8db9, 0x9e45, 0xcb7b, 0xd268, 0xc0ad, 0xc544, 0xcf9e, 0xc0c8, 0xc0ca, 0xc0cb, 0xc0c7, 0xfd9c, 0x81ed, 0xc0e4, 0x84da, 0x93ef, 0x99a9, 0xa074, 0xb152, 0xc0cf, 0xcc4a, 0xcc94, 0xc2b7, 0xc2b6, 0xf494, 0xfa98, 0xc2b5, 0xb593, 0xbe47, 0xc78a, 0xe49b, 0xc2b9, 0xd593, 0x89c5, 0xc5aa, 0xbb5c, 0xc340, 0xc0ce, 0xc0da, 0xd954, 0xc0d7, 0x89be, 0x8cd2, 0x98c7, 0x9c49, 0xc2a9, 0xc0db, 0xbf7c, 0xc2aa, 0xc0d5, 0xc0df, 0x8443, 0xc1e8, 0xb6a0, 0xbe63, 0xc1e2, 0xc1ea, 0xd778, 0x9282, 0x98b7, 0xd65a, 0xb5a4, 0x8c8e, 0xc5ad, 0xc2ca, 0xae90, 0xb1b1, 0xb491, 0xb1e3, 0x8fcd, 0xb2bb, 0xc3da, 0x94b5, 0xcbf7, 0x85a2, 0xc8fb, 0xcaa1, 0xc87e, 0xd566, 0x9aa2, 0xb3bd, 0xc9f2, 0xcab0, 0xc8f4, 0xc2d3, 0xc2d4, 0xc1c1, 0x83c9, 0xfd9d, 0xc1ba, 0xbc5a, 0xc1bc, 0xd58f, 0xc1bf, 0x84ee, 0x85ce, 0xc5ae, 0x8f5d, 0xc2c3, 0x9e56, 0xb55a, 0xe982, 0xf350, 0xfb90, 0xc0e8, 0xc1a6, 0x95d1, 0x9a76, 0xde5d, 0xc4ea, 0x917a, 0x91d9, 0x93d3, 0x9d69, 0x9f92, 0xad49, 0xfd9e, 0xbe9a, 0xc293, 0xdd82, 0xc98f, 0xdf42, 0xe580, 0xc1d0, 0xc1d3, 0xd1ca, 0xc1d2, 0xc1d1, 0xd566, 0xc1ae, 0xc4ee, 0xc4ed, 0x9a9a, 0xba9f, 0xab43, 0xc1ee, 0xe0f2, 0x8c8e, 0x8e58, 0xc1af, 0xc1e1, 0xac93, 0xc1e7, 0xf1f6, 0xe28f, 0xc1e3, 0xec60, 0xee49, 0xc0fd, 0xb659, 0xf5b7, 0xeb60, 0x90ba, 0xc1cb, 0xc1c5, 0xe5bc, 0xc4f2, 0xc1cf, 0x98b7, 0xc1c7, 0xaf9f, 0xdea4, 0xdf7c, 0xfd88, 0x959e, 0xc8ee, 0x84a2, 0x9683, 0xc1f8, 0xc1f7, 0xc1ef, 0xc1f0, 0xc1f4, 0xc1f2, 0xbc7e, 0xee90, 0xc1f9, 0xc2be, 0xea91, 0x8290, 0x8d91, 0x9c53, 0xdd86, 0xc2c9, 0x90fc, 0xc0f5, 0xc2ca, 0xc2a1, 0xc0fb, 0xc0f4, 0xc2c4, 0xd2d7, 0xc0ee, 0xc0e6, 0xc4e0, 0xc0ed, 0xc1a1, 0xeebe, 0xfd9f, 0xd165, 0xc0ef, 0xeb78, 0xc4e4, 0xc4e7, 0xc1df, 0x9ffb, 0xad55, 0xcc41, 0xfda0, 0xf75b, 0xf7eb, 0xc1d6, 0xc1dc, 0xc552, 0xc1a2, 0xf3d2, 0xc1a3, 0xa0ee, 0xd6cb, 0xd752, 0xcab2, 0xb2e8, 0xb4cc, /* 0xfa00 .. 0xfaff */ 0xc7d0, 0xb6c8, 0xcdd8, 0xccc7, 0xd5ac, 0xb6b4, 0xb1a9, 0xdd97, 0xd0d0, 0xbdb5, 0xd28a, 0xc0aa, 0xfe40, 0xfe41, 0xfe42, 0xfe43, 0x8956, 0xfe44, 0xc7e7, 0xfe45, 0xfe46, 0x8444, 0xd6ed, 0xd2e6, 0xfe47, 0xc9f1, 0xcfe9, 0xb8a3, 0xbeb8, 0xbeab, 0xd3f0, 0xfe48, 0xfe49, 0xfe4a, 0xd654, 0xfe4b, 0xfe4c, 0xd2dd, 0xb6bc, 0xfe4d, 0xfe4e, 0xfe4f, 0xef88, 0xef95, 0xf05e, 0xfa51, 0x003f, 0x003f, 0xceea, 0xc9ae, 0xc3e2, 0xc3e3, 0xc7da, 0xb1b0, 0xbac8, 0x8740, 0xc6f7, 0x8942, 0xc4ab, 0x8cd3, 0xe5f8, 0xbbda, 0xbfae, 0xd4f7, 0x91cd, 0xc3f4, 0xbcc8, 0xcaee, 0xc3b7, 0xbaa3, 0xe4be, 0x9d68, 0xd6f3, 0xa08d, 0xd7c1, 0xb1ae, 0xc9e7, 0xeced, 0xc6ed, 0xb576, 0xd7e6, 0xd7a3, 0xb59c, 0xb59d, 0xb759, 0xcdbb, 0xb99d, 0xbe9a, 0xbf4e, 0xb7b1, 0xcaf0, 0xd5df, 0xb3f4, 0xdcb3, 0xdcb3, 0xd6f8, 0xbad6, 0xd295, 0xd65d, 0xd694, 0xd965, 0xd99b, 0xe5c1, 0xd2dd, 0xeb79, 0xed91, 0xee6c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfb00 .. 0xfbff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfe00 .. 0xfeff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa955, 0xa6f2, 0x003f, 0xa6f4, 0xa6f5, 0xa6e0, 0xa6e1, 0xa6f0, 0xa6f1, 0xa6e2, 0xa6e3, 0xa6ee, 0xa6ef, 0xa6e6, 0xa6e7, 0xa6e4, 0xa6e5, 0xa6e8, 0xa6e9, 0xa6ea, 0xa6eb, 0x003f, 0x003f, 0x003f, 0x003f, 0xa968, 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970, 0xa971, 0x003f, 0xa972, 0xa973, 0xa974, 0xa975, 0xa1aa, 0xa976, 0xa977, 0xa978, 0xa979, 0xa97a, 0xa97b, 0xa97c, 0xa97d, 0xa97e, 0xa980, 0xa981, 0xa982, 0xa983, 0xa984, 0x003f, 0xa985, 0xa986, 0xa987, 0xa988, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xff00 .. 0xffff */ 0x003f, 0xa3a1, 0xa3a2, 0xa3a3, 0xa1e7, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa3be, 0xa3bf, 0xa3c0, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, 0xa3d8, 0xa3d9, 0xa3da, 0xa3db, 0xa3dc, 0xa3dd, 0xa3de, 0xa3df, 0xa3e0, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, 0xa3f8, 0xa3f9, 0xa3fa, 0xa3fb, 0xa3fc, 0xa3fd, 0xa1ab, 0x003f, 0x003f, 0xa1a3, 0xa1b8, 0xa1b9, 0xa1a2, 0x003f, 0xa5f2, 0xa5a1, 0xa5a3, 0xa5a5, 0xa5a7, 0xa5a9, 0xa5e3, 0xa5e5, 0xa5e7, 0xa5c3, 0xa960, 0xa5a2, 0xa5a4, 0xa5a6, 0xa5a8, 0xa5aa, 0xa5ab, 0xa5ad, 0xa5af, 0xa5b1, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b9, 0xa5bb, 0xa5bd, 0xa5bf, 0xa5c1, 0xa5c4, 0xa5c6, 0xa5c8, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d2, 0xa5d5, 0xa5d8, 0xa5db, 0xa5de, 0xa5df, 0xa5e0, 0xa5e1, 0xa5e2, 0xa5e4, 0xa5e6, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ef, 0xa5f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e9, 0xa1ea, 0xa956, 0xa3fe, 0xa957, 0xa3a4, 0x003f, 0x003f, 0xa9a6, 0xa1fb, 0xa1fc, 0xa1fa, 0xa1fd, 0xa1f6, 0xa1f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* defaults */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x0e00, 0x0f00, 0x1000, 0x1100, 0x1200, 0x1300, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6b00, 0x6600, 0x6700, 0x6800, 0x6b00, 0x6b00, 0x6900, 0x6a00 }; const struct dbcs_table cptable_936 = { { 936, 2, 0x003f, 0x003f, "ANSI/OEM Simplified Chinese GBK" }, cp2uni, cp2uni_leadbytes, uni2cp_low, uni2cp_high, { 0x81, 0xfe, 0x00, 0x00 } }; ================================================ FILE: Project/Unicode/Source/c_949.cpp ================================================ /* code page 949 (ANSI/OEM Korean Unified Hangul) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP949.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[32256] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, /* unused lead bytes */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte 81 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xac02, 0xac03, 0xac05, 0xac06, 0xac0b, 0xac0c, 0xac0d, 0xac0e, 0xac0f, 0xac18, 0xac1e, 0xac1f, 0xac21, 0xac22, 0xac23, 0xac25, 0xac26, 0xac27, 0xac28, 0xac29, 0xac2a, 0xac2b, 0xac2e, 0xac32, 0xac33, 0xac34, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xac35, 0xac36, 0xac37, 0xac3a, 0xac3b, 0xac3d, 0xac3e, 0xac3f, 0xac41, 0xac42, 0xac43, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, 0xac4a, 0xac4c, 0xac4e, 0xac4f, 0xac50, 0xac51, 0xac52, 0xac53, 0xac55, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xac56, 0xac57, 0xac59, 0xac5a, 0xac5b, 0xac5d, 0xac5e, 0xac5f, 0xac60, 0xac61, 0xac62, 0xac63, 0xac64, 0xac65, 0xac66, 0xac67, 0xac68, 0xac69, 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac72, 0xac73, 0xac75, 0xac76, 0xac79, 0xac7b, 0xac7c, 0xac7d, 0xac7e, 0xac7f, 0xac82, 0xac87, 0xac88, 0xac8d, 0xac8e, 0xac8f, 0xac91, 0xac92, 0xac93, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, 0xac9b, 0xac9e, 0xaca2, 0xaca3, 0xaca4, 0xaca5, 0xaca6, 0xaca7, 0xacab, 0xacad, 0xacae, 0xacb1, 0xacb2, 0xacb3, 0xacb4, 0xacb5, 0xacb6, 0xacb7, 0xacba, 0xacbe, 0xacbf, 0xacc0, 0xacc2, 0xacc3, 0xacc5, 0xacc6, 0xacc7, 0xacc9, 0xacca, 0xaccb, 0xaccd, 0xacce, 0xaccf, 0xacd0, 0xacd1, 0xacd2, 0xacd3, 0xacd4, 0xacd6, 0xacd8, 0xacd9, 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xacde, 0xacdf, 0xace2, 0xace3, 0xace5, 0xace6, 0xace9, 0xaceb, 0xaced, 0xacee, 0xacf2, 0xacf4, 0xacf7, 0xacf8, 0xacf9, 0xacfa, 0xacfb, 0xacfe, 0xacff, 0xad01, 0xad02, 0xad03, 0xad05, 0xad07, 0xad08, 0xad09, 0xad0a, 0xad0b, 0xad0e, 0xad10, 0xad12, 0xad13, 0x003f, /* lead byte 82 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xad14, 0xad15, 0xad16, 0xad17, 0xad19, 0xad1a, 0xad1b, 0xad1d, 0xad1e, 0xad1f, 0xad21, 0xad22, 0xad23, 0xad24, 0xad25, 0xad26, 0xad27, 0xad28, 0xad2a, 0xad2b, 0xad2e, 0xad2f, 0xad30, 0xad31, 0xad32, 0xad33, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xad36, 0xad37, 0xad39, 0xad3a, 0xad3b, 0xad3d, 0xad3e, 0xad3f, 0xad40, 0xad41, 0xad42, 0xad43, 0xad46, 0xad48, 0xad4a, 0xad4b, 0xad4c, 0xad4d, 0xad4e, 0xad4f, 0xad51, 0xad52, 0xad53, 0xad55, 0xad56, 0xad57, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xad59, 0xad5a, 0xad5b, 0xad5c, 0xad5d, 0xad5e, 0xad5f, 0xad60, 0xad62, 0xad64, 0xad65, 0xad66, 0xad67, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6e, 0xad6f, 0xad71, 0xad72, 0xad77, 0xad78, 0xad79, 0xad7a, 0xad7e, 0xad80, 0xad83, 0xad84, 0xad85, 0xad86, 0xad87, 0xad8a, 0xad8b, 0xad8d, 0xad8e, 0xad8f, 0xad91, 0xad92, 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, 0xad9b, 0xad9e, 0xad9f, 0xada0, 0xada1, 0xada2, 0xada3, 0xada5, 0xada6, 0xada7, 0xada8, 0xada9, 0xadaa, 0xadab, 0xadac, 0xadad, 0xadae, 0xadaf, 0xadb0, 0xadb1, 0xadb2, 0xadb3, 0xadb4, 0xadb5, 0xadb6, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xadbc, 0xadbd, 0xadbe, 0xadbf, 0xadc2, 0xadc3, 0xadc5, 0xadc6, 0xadc7, 0xadc9, 0xadca, 0xadcb, 0xadcc, 0xadcd, 0xadce, 0xadcf, 0xadd2, 0xadd4, 0xadd5, 0xadd6, 0xadd7, 0xadd8, 0xadd9, 0xadda, 0xaddb, 0xaddd, 0xadde, 0xaddf, 0xade1, 0xade2, 0xade3, 0xade5, 0xade6, 0xade7, 0xade8, 0xade9, 0xadea, 0xadeb, 0xadec, 0xaded, 0xadee, 0xadef, 0xadf0, 0xadf1, 0xadf2, 0xadf3, 0xadf4, 0xadf5, 0xadf6, 0xadf7, 0x003f, /* lead byte 83 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadfa, 0xadfb, 0xadfd, 0xadfe, 0xae02, 0xae03, 0xae04, 0xae05, 0xae06, 0xae07, 0xae0a, 0xae0c, 0xae0e, 0xae0f, 0xae10, 0xae11, 0xae12, 0xae13, 0xae15, 0xae16, 0xae17, 0xae18, 0xae19, 0xae1a, 0xae1b, 0xae1c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xae1d, 0xae1e, 0xae1f, 0xae20, 0xae21, 0xae22, 0xae23, 0xae24, 0xae25, 0xae26, 0xae27, 0xae28, 0xae29, 0xae2a, 0xae2b, 0xae2c, 0xae2d, 0xae2e, 0xae2f, 0xae32, 0xae33, 0xae35, 0xae36, 0xae39, 0xae3b, 0xae3c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xae3d, 0xae3e, 0xae3f, 0xae42, 0xae44, 0xae47, 0xae48, 0xae49, 0xae4b, 0xae4f, 0xae51, 0xae52, 0xae53, 0xae55, 0xae57, 0xae58, 0xae59, 0xae5a, 0xae5b, 0xae5e, 0xae62, 0xae63, 0xae64, 0xae66, 0xae67, 0xae6a, 0xae6b, 0xae6d, 0xae6e, 0xae6f, 0xae71, 0xae72, 0xae73, 0xae74, 0xae75, 0xae76, 0xae77, 0xae7a, 0xae7e, 0xae7f, 0xae80, 0xae81, 0xae82, 0xae83, 0xae86, 0xae87, 0xae88, 0xae89, 0xae8a, 0xae8b, 0xae8d, 0xae8e, 0xae8f, 0xae90, 0xae91, 0xae92, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xae99, 0xae9a, 0xae9b, 0xae9c, 0xae9d, 0xae9e, 0xae9f, 0xaea0, 0xaea1, 0xaea2, 0xaea3, 0xaea4, 0xaea5, 0xaea6, 0xaea7, 0xaea8, 0xaea9, 0xaeaa, 0xaeab, 0xaeac, 0xaead, 0xaeae, 0xaeaf, 0xaeb0, 0xaeb1, 0xaeb2, 0xaeb3, 0xaeb4, 0xaeb5, 0xaeb6, 0xaeb7, 0xaeb8, 0xaeb9, 0xaeba, 0xaebb, 0xaebf, 0xaec1, 0xaec2, 0xaec3, 0xaec5, 0xaec6, 0xaec7, 0xaec8, 0xaec9, 0xaeca, 0xaecb, 0xaece, 0xaed2, 0xaed3, 0xaed4, 0xaed5, 0xaed6, 0xaed7, 0xaeda, 0xaedb, 0xaedd, 0xaede, 0xaedf, 0xaee0, 0xaee1, 0xaee2, 0xaee3, 0xaee4, 0xaee5, 0x003f, /* lead byte 84 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaee6, 0xaee7, 0xaee9, 0xaeea, 0xaeec, 0xaeee, 0xaeef, 0xaef0, 0xaef1, 0xaef2, 0xaef3, 0xaef5, 0xaef6, 0xaef7, 0xaef9, 0xaefa, 0xaefb, 0xaefd, 0xaefe, 0xaeff, 0xaf00, 0xaf01, 0xaf02, 0xaf03, 0xaf04, 0xaf05, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaf06, 0xaf09, 0xaf0a, 0xaf0b, 0xaf0c, 0xaf0e, 0xaf0f, 0xaf11, 0xaf12, 0xaf13, 0xaf14, 0xaf15, 0xaf16, 0xaf17, 0xaf18, 0xaf19, 0xaf1a, 0xaf1b, 0xaf1c, 0xaf1d, 0xaf1e, 0xaf1f, 0xaf20, 0xaf21, 0xaf22, 0xaf23, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaf24, 0xaf25, 0xaf26, 0xaf27, 0xaf28, 0xaf29, 0xaf2a, 0xaf2b, 0xaf2e, 0xaf2f, 0xaf31, 0xaf33, 0xaf35, 0xaf36, 0xaf37, 0xaf38, 0xaf39, 0xaf3a, 0xaf3b, 0xaf3e, 0xaf40, 0xaf44, 0xaf45, 0xaf46, 0xaf47, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf51, 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, 0xaf5a, 0xaf5b, 0xaf5e, 0xaf5f, 0xaf60, 0xaf61, 0xaf62, 0xaf63, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xaf6f, 0xaf70, 0xaf71, 0xaf72, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xaf7a, 0xaf7b, 0xaf7c, 0xaf7d, 0xaf7e, 0xaf7f, 0xaf81, 0xaf82, 0xaf83, 0xaf85, 0xaf86, 0xaf87, 0xaf89, 0xaf8a, 0xaf8b, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf92, 0xaf93, 0xaf94, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, 0xaf9b, 0xaf9d, 0xaf9e, 0xaf9f, 0xafa0, 0xafa1, 0xafa2, 0xafa3, 0xafa4, 0xafa5, 0xafa6, 0xafa7, 0xafa8, 0xafa9, 0xafaa, 0xafab, 0xafac, 0xafad, 0xafae, 0xafaf, 0xafb0, 0xafb1, 0xafb2, 0xafb3, 0xafb4, 0xafb5, 0xafb6, 0xafb7, 0xafba, 0xafbb, 0xafbd, 0xafbe, 0x003f, /* lead byte 85 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xafbf, 0xafc1, 0xafc2, 0xafc3, 0xafc4, 0xafc5, 0xafc6, 0xafca, 0xafcc, 0xafcf, 0xafd0, 0xafd1, 0xafd2, 0xafd3, 0xafd5, 0xafd6, 0xafd7, 0xafd8, 0xafd9, 0xafda, 0xafdb, 0xafdd, 0xafde, 0xafdf, 0xafe0, 0xafe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xafe2, 0xafe3, 0xafe4, 0xafe5, 0xafe6, 0xafe7, 0xafea, 0xafeb, 0xafec, 0xafed, 0xafee, 0xafef, 0xaff2, 0xaff3, 0xaff5, 0xaff6, 0xaff7, 0xaff9, 0xaffa, 0xaffb, 0xaffc, 0xaffd, 0xaffe, 0xafff, 0xb002, 0xb003, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb005, 0xb006, 0xb007, 0xb008, 0xb009, 0xb00a, 0xb00b, 0xb00d, 0xb00e, 0xb00f, 0xb011, 0xb012, 0xb013, 0xb015, 0xb016, 0xb017, 0xb018, 0xb019, 0xb01a, 0xb01b, 0xb01e, 0xb01f, 0xb020, 0xb021, 0xb022, 0xb023, 0xb024, 0xb025, 0xb026, 0xb027, 0xb029, 0xb02a, 0xb02b, 0xb02c, 0xb02d, 0xb02e, 0xb02f, 0xb030, 0xb031, 0xb032, 0xb033, 0xb034, 0xb035, 0xb036, 0xb037, 0xb038, 0xb039, 0xb03a, 0xb03b, 0xb03c, 0xb03d, 0xb03e, 0xb03f, 0xb040, 0xb041, 0xb042, 0xb043, 0xb046, 0xb047, 0xb049, 0xb04b, 0xb04d, 0xb04f, 0xb050, 0xb051, 0xb052, 0xb056, 0xb058, 0xb05a, 0xb05b, 0xb05c, 0xb05e, 0xb05f, 0xb060, 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xb067, 0xb068, 0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071, 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, 0xb07a, 0xb07b, 0xb07e, 0xb07f, 0xb081, 0xb082, 0xb083, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08e, 0xb090, 0xb092, 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb09b, 0xb09d, 0xb09e, 0xb0a3, 0xb0a4, 0x003f, /* lead byte 86 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0a5, 0xb0a6, 0xb0a7, 0xb0aa, 0xb0b0, 0xb0b2, 0xb0b6, 0xb0b7, 0xb0b9, 0xb0ba, 0xb0bb, 0xb0bd, 0xb0be, 0xb0bf, 0xb0c0, 0xb0c1, 0xb0c2, 0xb0c3, 0xb0c6, 0xb0ca, 0xb0cb, 0xb0cc, 0xb0cd, 0xb0ce, 0xb0cf, 0xb0d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0d3, 0xb0d5, 0xb0d6, 0xb0d7, 0xb0d9, 0xb0da, 0xb0db, 0xb0dc, 0xb0dd, 0xb0de, 0xb0df, 0xb0e1, 0xb0e2, 0xb0e3, 0xb0e4, 0xb0e6, 0xb0e7, 0xb0e8, 0xb0e9, 0xb0ea, 0xb0eb, 0xb0ec, 0xb0ed, 0xb0ee, 0xb0ef, 0xb0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0f1, 0xb0f2, 0xb0f3, 0xb0f4, 0xb0f5, 0xb0f6, 0xb0f7, 0xb0f8, 0xb0f9, 0xb0fa, 0xb0fb, 0xb0fc, 0xb0fd, 0xb0fe, 0xb0ff, 0xb100, 0xb101, 0xb102, 0xb103, 0xb104, 0xb105, 0xb106, 0xb107, 0xb10a, 0xb10d, 0xb10e, 0xb10f, 0xb111, 0xb114, 0xb115, 0xb116, 0xb117, 0xb11a, 0xb11e, 0xb11f, 0xb120, 0xb121, 0xb122, 0xb126, 0xb127, 0xb129, 0xb12a, 0xb12b, 0xb12d, 0xb12e, 0xb12f, 0xb130, 0xb131, 0xb132, 0xb133, 0xb136, 0xb13a, 0xb13b, 0xb13c, 0xb13d, 0xb13e, 0xb13f, 0xb142, 0xb143, 0xb145, 0xb146, 0xb147, 0xb149, 0xb14a, 0xb14b, 0xb14c, 0xb14d, 0xb14e, 0xb14f, 0xb152, 0xb153, 0xb156, 0xb157, 0xb159, 0xb15a, 0xb15b, 0xb15d, 0xb15e, 0xb15f, 0xb161, 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xb168, 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xb16f, 0xb170, 0xb171, 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb17a, 0xb17b, 0xb17d, 0xb17e, 0xb17f, 0xb181, 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb18a, 0xb18c, 0xb18e, 0xb18f, 0xb190, 0xb191, 0xb195, 0xb196, 0xb197, 0xb199, 0xb19a, 0xb19b, 0xb19d, 0x003f, /* lead byte 87 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb19e, 0xb19f, 0xb1a0, 0xb1a1, 0xb1a2, 0xb1a3, 0xb1a4, 0xb1a5, 0xb1a6, 0xb1a7, 0xb1a9, 0xb1aa, 0xb1ab, 0xb1ac, 0xb1ad, 0xb1ae, 0xb1af, 0xb1b0, 0xb1b1, 0xb1b2, 0xb1b3, 0xb1b4, 0xb1b5, 0xb1b6, 0xb1b7, 0xb1b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1b9, 0xb1ba, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, 0xb1bf, 0xb1c0, 0xb1c1, 0xb1c2, 0xb1c3, 0xb1c4, 0xb1c5, 0xb1c6, 0xb1c7, 0xb1c8, 0xb1c9, 0xb1ca, 0xb1cb, 0xb1cd, 0xb1ce, 0xb1cf, 0xb1d1, 0xb1d2, 0xb1d3, 0xb1d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d6, 0xb1d7, 0xb1d8, 0xb1d9, 0xb1da, 0xb1db, 0xb1de, 0xb1e0, 0xb1e1, 0xb1e2, 0xb1e3, 0xb1e4, 0xb1e5, 0xb1e6, 0xb1e7, 0xb1ea, 0xb1eb, 0xb1ed, 0xb1ee, 0xb1ef, 0xb1f1, 0xb1f2, 0xb1f3, 0xb1f4, 0xb1f5, 0xb1f6, 0xb1f7, 0xb1f8, 0xb1fa, 0xb1fc, 0xb1fe, 0xb1ff, 0xb200, 0xb201, 0xb202, 0xb203, 0xb206, 0xb207, 0xb209, 0xb20a, 0xb20d, 0xb20e, 0xb20f, 0xb210, 0xb211, 0xb212, 0xb213, 0xb216, 0xb218, 0xb21a, 0xb21b, 0xb21c, 0xb21d, 0xb21e, 0xb21f, 0xb221, 0xb222, 0xb223, 0xb224, 0xb225, 0xb226, 0xb227, 0xb228, 0xb229, 0xb22a, 0xb22b, 0xb22c, 0xb22d, 0xb22e, 0xb22f, 0xb230, 0xb231, 0xb232, 0xb233, 0xb235, 0xb236, 0xb237, 0xb238, 0xb239, 0xb23a, 0xb23b, 0xb23d, 0xb23e, 0xb23f, 0xb240, 0xb241, 0xb242, 0xb243, 0xb244, 0xb245, 0xb246, 0xb247, 0xb248, 0xb249, 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xb250, 0xb251, 0xb252, 0xb253, 0xb254, 0xb255, 0xb256, 0xb257, 0xb259, 0xb25a, 0xb25b, 0xb25d, 0xb25e, 0xb25f, 0xb261, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0x003f, /* lead byte 88 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb26f, 0xb270, 0xb271, 0xb272, 0xb273, 0xb276, 0xb277, 0xb278, 0xb279, 0xb27a, 0xb27b, 0xb27d, 0xb27e, 0xb27f, 0xb280, 0xb281, 0xb282, 0xb283, 0xb286, 0xb287, 0xb288, 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb28f, 0xb292, 0xb293, 0xb295, 0xb296, 0xb297, 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a2, 0xb2a4, 0xb2a7, 0xb2a8, 0xb2a9, 0xb2ab, 0xb2ad, 0xb2ae, 0xb2af, 0xb2b1, 0xb2b2, 0xb2b3, 0xb2b5, 0xb2b6, 0xb2b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2b8, 0xb2b9, 0xb2ba, 0xb2bb, 0xb2bc, 0xb2bd, 0xb2be, 0xb2bf, 0xb2c0, 0xb2c1, 0xb2c2, 0xb2c3, 0xb2c4, 0xb2c5, 0xb2c6, 0xb2c7, 0xb2ca, 0xb2cb, 0xb2cd, 0xb2ce, 0xb2cf, 0xb2d1, 0xb2d3, 0xb2d4, 0xb2d5, 0xb2d6, 0xb2d7, 0xb2da, 0xb2dc, 0xb2de, 0xb2df, 0xb2e0, 0xb2e1, 0xb2e3, 0xb2e7, 0xb2e9, 0xb2ea, 0xb2f0, 0xb2f1, 0xb2f2, 0xb2f6, 0xb2fc, 0xb2fd, 0xb2fe, 0xb302, 0xb303, 0xb305, 0xb306, 0xb307, 0xb309, 0xb30a, 0xb30b, 0xb30c, 0xb30d, 0xb30e, 0xb30f, 0xb312, 0xb316, 0xb317, 0xb318, 0xb319, 0xb31a, 0xb31b, 0xb31d, 0xb31e, 0xb31f, 0xb320, 0xb321, 0xb322, 0xb323, 0xb324, 0xb325, 0xb326, 0xb327, 0xb328, 0xb329, 0xb32a, 0xb32b, 0xb32c, 0xb32d, 0xb32e, 0xb32f, 0xb330, 0xb331, 0xb332, 0xb333, 0xb334, 0xb335, 0xb336, 0xb337, 0xb338, 0xb339, 0xb33a, 0xb33b, 0xb33c, 0xb33d, 0xb33e, 0xb33f, 0xb340, 0xb341, 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0xb357, 0xb359, 0xb35a, 0xb35d, 0xb360, 0xb361, 0xb362, 0xb363, 0x003f, /* lead byte 89 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb366, 0xb368, 0xb36a, 0xb36c, 0xb36d, 0xb36f, 0xb372, 0xb373, 0xb375, 0xb376, 0xb377, 0xb379, 0xb37a, 0xb37b, 0xb37c, 0xb37d, 0xb37e, 0xb37f, 0xb382, 0xb386, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb38e, 0xb38f, 0xb391, 0xb392, 0xb393, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a2, 0xb3a3, 0xb3a4, 0xb3a5, 0xb3a6, 0xb3a7, 0xb3a9, 0xb3aa, 0xb3ab, 0xb3ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ae, 0xb3af, 0xb3b0, 0xb3b1, 0xb3b2, 0xb3b3, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0xb3b9, 0xb3ba, 0xb3bb, 0xb3bc, 0xb3bd, 0xb3be, 0xb3bf, 0xb3c0, 0xb3c1, 0xb3c2, 0xb3c3, 0xb3c6, 0xb3c7, 0xb3c9, 0xb3ca, 0xb3cd, 0xb3cf, 0xb3d1, 0xb3d2, 0xb3d3, 0xb3d6, 0xb3d8, 0xb3da, 0xb3dc, 0xb3de, 0xb3df, 0xb3e1, 0xb3e2, 0xb3e3, 0xb3e5, 0xb3e6, 0xb3e7, 0xb3e9, 0xb3ea, 0xb3eb, 0xb3ec, 0xb3ed, 0xb3ee, 0xb3ef, 0xb3f0, 0xb3f1, 0xb3f2, 0xb3f3, 0xb3f4, 0xb3f5, 0xb3f6, 0xb3f7, 0xb3f8, 0xb3f9, 0xb3fa, 0xb3fb, 0xb3fd, 0xb3fe, 0xb3ff, 0xb400, 0xb401, 0xb402, 0xb403, 0xb404, 0xb405, 0xb406, 0xb407, 0xb408, 0xb409, 0xb40a, 0xb40b, 0xb40c, 0xb40d, 0xb40e, 0xb40f, 0xb411, 0xb412, 0xb413, 0xb414, 0xb415, 0xb416, 0xb417, 0xb419, 0xb41a, 0xb41b, 0xb41d, 0xb41e, 0xb41f, 0xb421, 0xb422, 0xb423, 0xb424, 0xb425, 0xb426, 0xb427, 0xb42a, 0xb42c, 0xb42d, 0xb42e, 0xb42f, 0xb430, 0xb431, 0xb432, 0xb433, 0xb435, 0xb436, 0xb437, 0xb438, 0xb439, 0xb43a, 0xb43b, 0xb43c, 0xb43d, 0xb43e, 0xb43f, 0xb440, 0xb441, 0xb442, 0xb443, 0xb444, 0x003f, /* lead byte 8a */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb445, 0xb446, 0xb447, 0xb448, 0xb449, 0xb44a, 0xb44b, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb452, 0xb453, 0xb455, 0xb456, 0xb457, 0xb459, 0xb45a, 0xb45b, 0xb45c, 0xb45d, 0xb45e, 0xb45f, 0xb462, 0xb464, 0xb466, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46d, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xb479, 0xb47a, 0xb47b, 0xb47c, 0xb47d, 0xb47e, 0xb47f, 0xb481, 0xb482, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb483, 0xb484, 0xb485, 0xb486, 0xb487, 0xb489, 0xb48a, 0xb48b, 0xb48c, 0xb48d, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, 0xb49b, 0xb49c, 0xb49e, 0xb49f, 0xb4a0, 0xb4a1, 0xb4a2, 0xb4a3, 0xb4a5, 0xb4a6, 0xb4a7, 0xb4a9, 0xb4aa, 0xb4ab, 0xb4ad, 0xb4ae, 0xb4af, 0xb4b0, 0xb4b1, 0xb4b2, 0xb4b3, 0xb4b4, 0xb4b6, 0xb4b8, 0xb4ba, 0xb4bb, 0xb4bc, 0xb4bd, 0xb4be, 0xb4bf, 0xb4c1, 0xb4c2, 0xb4c3, 0xb4c5, 0xb4c6, 0xb4c7, 0xb4c9, 0xb4ca, 0xb4cb, 0xb4cc, 0xb4cd, 0xb4ce, 0xb4cf, 0xb4d1, 0xb4d2, 0xb4d3, 0xb4d4, 0xb4d6, 0xb4d7, 0xb4d8, 0xb4d9, 0xb4da, 0xb4db, 0xb4de, 0xb4df, 0xb4e1, 0xb4e2, 0xb4e5, 0xb4e7, 0xb4e8, 0xb4e9, 0xb4ea, 0xb4eb, 0xb4ee, 0xb4f0, 0xb4f2, 0xb4f3, 0xb4f4, 0xb4f5, 0xb4f6, 0xb4f7, 0xb4f9, 0xb4fa, 0xb4fb, 0xb4fc, 0xb4fd, 0xb4fe, 0xb4ff, 0xb500, 0xb501, 0xb502, 0xb503, 0xb504, 0xb505, 0xb506, 0xb507, 0xb508, 0xb509, 0xb50a, 0xb50b, 0xb50c, 0xb50d, 0xb50e, 0xb50f, 0xb510, 0xb511, 0xb512, 0xb513, 0xb516, 0xb517, 0xb519, 0xb51a, 0xb51d, 0x003f, /* lead byte 8b */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb51e, 0xb51f, 0xb520, 0xb521, 0xb522, 0xb523, 0xb526, 0xb52b, 0xb52c, 0xb52d, 0xb52e, 0xb52f, 0xb532, 0xb533, 0xb535, 0xb536, 0xb537, 0xb539, 0xb53a, 0xb53b, 0xb53c, 0xb53d, 0xb53e, 0xb53f, 0xb542, 0xb546, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54e, 0xb54f, 0xb551, 0xb552, 0xb553, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, 0xb55b, 0xb55e, 0xb562, 0xb563, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, 0xb56a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb56b, 0xb56c, 0xb56d, 0xb56e, 0xb56f, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xb575, 0xb576, 0xb577, 0xb578, 0xb579, 0xb57a, 0xb57b, 0xb57c, 0xb57d, 0xb57e, 0xb57f, 0xb580, 0xb581, 0xb582, 0xb583, 0xb584, 0xb585, 0xb586, 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xb58e, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, 0xb594, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, 0xb59b, 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a2, 0xb5a3, 0xb5a5, 0xb5a6, 0xb5a7, 0xb5a9, 0xb5ac, 0xb5ad, 0xb5ae, 0xb5af, 0xb5b2, 0xb5b6, 0xb5b7, 0xb5b8, 0xb5b9, 0xb5ba, 0xb5be, 0xb5bf, 0xb5c1, 0xb5c2, 0xb5c3, 0xb5c5, 0xb5c6, 0xb5c7, 0xb5c8, 0xb5c9, 0xb5ca, 0xb5cb, 0xb5ce, 0xb5d2, 0xb5d3, 0xb5d4, 0xb5d5, 0xb5d6, 0xb5d7, 0xb5d9, 0xb5da, 0xb5db, 0xb5dc, 0xb5dd, 0xb5de, 0xb5df, 0xb5e0, 0xb5e1, 0xb5e2, 0xb5e3, 0xb5e4, 0xb5e5, 0xb5e6, 0xb5e7, 0xb5e8, 0xb5e9, 0xb5ea, 0xb5eb, 0xb5ed, 0xb5ee, 0xb5ef, 0xb5f0, 0xb5f1, 0xb5f2, 0xb5f3, 0xb5f4, 0xb5f5, 0xb5f6, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, 0xb5fb, 0xb5fc, 0xb5fd, 0xb5fe, 0xb5ff, 0x003f, /* lead byte 8c */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb600, 0xb601, 0xb602, 0xb603, 0xb604, 0xb605, 0xb606, 0xb607, 0xb608, 0xb609, 0xb60a, 0xb60b, 0xb60c, 0xb60d, 0xb60e, 0xb60f, 0xb612, 0xb613, 0xb615, 0xb616, 0xb617, 0xb619, 0xb61a, 0xb61b, 0xb61c, 0xb61d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb61e, 0xb61f, 0xb620, 0xb621, 0xb622, 0xb623, 0xb624, 0xb626, 0xb627, 0xb628, 0xb629, 0xb62a, 0xb62b, 0xb62d, 0xb62e, 0xb62f, 0xb630, 0xb631, 0xb632, 0xb633, 0xb635, 0xb636, 0xb637, 0xb638, 0xb639, 0xb63a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb63b, 0xb63c, 0xb63d, 0xb63e, 0xb63f, 0xb640, 0xb641, 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, 0xb65b, 0xb65c, 0xb65d, 0xb65e, 0xb65f, 0xb660, 0xb661, 0xb662, 0xb663, 0xb665, 0xb666, 0xb667, 0xb669, 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xb671, 0xb672, 0xb673, 0xb674, 0xb675, 0xb676, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb67b, 0xb67c, 0xb67d, 0xb67e, 0xb67f, 0xb680, 0xb681, 0xb682, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xb689, 0xb68a, 0xb68b, 0xb68c, 0xb68d, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692, 0xb693, 0xb694, 0xb695, 0xb696, 0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0xb69e, 0xb69f, 0xb6a1, 0xb6a2, 0xb6a3, 0xb6a5, 0xb6a6, 0xb6a7, 0xb6a8, 0xb6a9, 0xb6aa, 0xb6ad, 0xb6ae, 0xb6af, 0xb6b0, 0xb6b2, 0xb6b3, 0xb6b4, 0xb6b5, 0xb6b6, 0xb6b7, 0xb6b8, 0xb6b9, 0xb6ba, 0xb6bb, 0xb6bc, 0xb6bd, 0xb6be, 0xb6bf, 0xb6c0, 0xb6c1, 0xb6c2, 0x003f, /* lead byte 8d */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6c3, 0xb6c4, 0xb6c5, 0xb6c6, 0xb6c7, 0xb6c8, 0xb6c9, 0xb6ca, 0xb6cb, 0xb6cc, 0xb6cd, 0xb6ce, 0xb6cf, 0xb6d0, 0xb6d1, 0xb6d2, 0xb6d3, 0xb6d5, 0xb6d6, 0xb6d7, 0xb6d8, 0xb6d9, 0xb6da, 0xb6db, 0xb6dc, 0xb6dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6de, 0xb6df, 0xb6e0, 0xb6e1, 0xb6e2, 0xb6e3, 0xb6e4, 0xb6e5, 0xb6e6, 0xb6e7, 0xb6e8, 0xb6e9, 0xb6ea, 0xb6eb, 0xb6ec, 0xb6ed, 0xb6ee, 0xb6ef, 0xb6f1, 0xb6f2, 0xb6f3, 0xb6f5, 0xb6f6, 0xb6f7, 0xb6f9, 0xb6fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6fb, 0xb6fc, 0xb6fd, 0xb6fe, 0xb6ff, 0xb702, 0xb703, 0xb704, 0xb706, 0xb707, 0xb708, 0xb709, 0xb70a, 0xb70b, 0xb70c, 0xb70d, 0xb70e, 0xb70f, 0xb710, 0xb711, 0xb712, 0xb713, 0xb714, 0xb715, 0xb716, 0xb717, 0xb718, 0xb719, 0xb71a, 0xb71b, 0xb71c, 0xb71d, 0xb71e, 0xb71f, 0xb720, 0xb721, 0xb722, 0xb723, 0xb724, 0xb725, 0xb726, 0xb727, 0xb72a, 0xb72b, 0xb72d, 0xb72e, 0xb731, 0xb732, 0xb733, 0xb734, 0xb735, 0xb736, 0xb737, 0xb73a, 0xb73c, 0xb73d, 0xb73e, 0xb73f, 0xb740, 0xb741, 0xb742, 0xb743, 0xb745, 0xb746, 0xb747, 0xb749, 0xb74a, 0xb74b, 0xb74d, 0xb74e, 0xb74f, 0xb750, 0xb751, 0xb752, 0xb753, 0xb756, 0xb757, 0xb758, 0xb759, 0xb75a, 0xb75b, 0xb75c, 0xb75d, 0xb75e, 0xb75f, 0xb761, 0xb762, 0xb763, 0xb765, 0xb766, 0xb767, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb772, 0xb774, 0xb776, 0xb777, 0xb778, 0xb779, 0xb77a, 0xb77b, 0xb77e, 0xb77f, 0xb781, 0xb782, 0xb783, 0xb785, 0xb786, 0xb787, 0xb788, 0xb789, 0xb78a, 0xb78b, 0xb78e, 0xb793, 0xb794, 0xb795, 0xb79a, 0xb79b, 0xb79d, 0xb79e, 0x003f, /* lead byte 8e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb79f, 0xb7a1, 0xb7a2, 0xb7a3, 0xb7a4, 0xb7a5, 0xb7a6, 0xb7a7, 0xb7aa, 0xb7ae, 0xb7af, 0xb7b0, 0xb7b1, 0xb7b2, 0xb7b3, 0xb7b6, 0xb7b7, 0xb7b9, 0xb7ba, 0xb7bb, 0xb7bc, 0xb7bd, 0xb7be, 0xb7bf, 0xb7c0, 0xb7c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7c2, 0xb7c3, 0xb7c4, 0xb7c5, 0xb7c6, 0xb7c8, 0xb7ca, 0xb7cb, 0xb7cc, 0xb7cd, 0xb7ce, 0xb7cf, 0xb7d0, 0xb7d1, 0xb7d2, 0xb7d3, 0xb7d4, 0xb7d5, 0xb7d6, 0xb7d7, 0xb7d8, 0xb7d9, 0xb7da, 0xb7db, 0xb7dc, 0xb7dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7de, 0xb7df, 0xb7e0, 0xb7e1, 0xb7e2, 0xb7e3, 0xb7e4, 0xb7e5, 0xb7e6, 0xb7e7, 0xb7e8, 0xb7e9, 0xb7ea, 0xb7eb, 0xb7ee, 0xb7ef, 0xb7f1, 0xb7f2, 0xb7f3, 0xb7f5, 0xb7f6, 0xb7f7, 0xb7f8, 0xb7f9, 0xb7fa, 0xb7fb, 0xb7fe, 0xb802, 0xb803, 0xb804, 0xb805, 0xb806, 0xb80a, 0xb80b, 0xb80d, 0xb80e, 0xb80f, 0xb811, 0xb812, 0xb813, 0xb814, 0xb815, 0xb816, 0xb817, 0xb81a, 0xb81c, 0xb81e, 0xb81f, 0xb820, 0xb821, 0xb822, 0xb823, 0xb826, 0xb827, 0xb829, 0xb82a, 0xb82b, 0xb82d, 0xb82e, 0xb82f, 0xb830, 0xb831, 0xb832, 0xb833, 0xb836, 0xb83a, 0xb83b, 0xb83c, 0xb83d, 0xb83e, 0xb83f, 0xb841, 0xb842, 0xb843, 0xb845, 0xb846, 0xb847, 0xb848, 0xb849, 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb852, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb85b, 0xb85e, 0xb85f, 0xb861, 0xb862, 0xb863, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xb86a, 0xb86b, 0xb86e, 0xb870, 0xb872, 0xb873, 0xb874, 0xb875, 0xb876, 0xb877, 0xb879, 0xb87a, 0xb87b, 0xb87d, 0xb87e, 0xb87f, 0xb880, 0xb881, 0xb882, 0xb883, 0xb884, 0x003f, /* lead byte 8f */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb885, 0xb886, 0xb887, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8a0, 0xb8a1, 0xb8a2, 0xb8a3, 0xb8a4, 0xb8a5, 0xb8a6, 0xb8a7, 0xb8a9, 0xb8aa, 0xb8ab, 0xb8ac, 0xb8ad, 0xb8ae, 0xb8af, 0xb8b1, 0xb8b2, 0xb8b3, 0xb8b5, 0xb8b6, 0xb8b7, 0xb8b9, 0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8be, 0xb8bf, 0xb8c2, 0xb8c4, 0xb8c6, 0xb8c7, 0xb8c8, 0xb8c9, 0xb8ca, 0xb8cb, 0xb8cd, 0xb8ce, 0xb8cf, 0xb8d1, 0xb8d2, 0xb8d3, 0xb8d5, 0xb8d6, 0xb8d7, 0xb8d8, 0xb8d9, 0xb8da, 0xb8db, 0xb8dc, 0xb8de, 0xb8e0, 0xb8e2, 0xb8e3, 0xb8e4, 0xb8e5, 0xb8e6, 0xb8e7, 0xb8ea, 0xb8eb, 0xb8ed, 0xb8ee, 0xb8ef, 0xb8f1, 0xb8f2, 0xb8f3, 0xb8f4, 0xb8f5, 0xb8f6, 0xb8f7, 0xb8fa, 0xb8fc, 0xb8fe, 0xb8ff, 0xb900, 0xb901, 0xb902, 0xb903, 0xb905, 0xb906, 0xb907, 0xb908, 0xb909, 0xb90a, 0xb90b, 0xb90c, 0xb90d, 0xb90e, 0xb90f, 0xb910, 0xb911, 0xb912, 0xb913, 0xb914, 0xb915, 0xb916, 0xb917, 0xb919, 0xb91a, 0xb91b, 0xb91c, 0xb91d, 0xb91e, 0xb91f, 0xb921, 0xb922, 0xb923, 0xb924, 0xb925, 0xb926, 0xb927, 0xb928, 0xb929, 0xb92a, 0xb92b, 0xb92c, 0xb92d, 0xb92e, 0xb92f, 0xb930, 0xb931, 0xb932, 0xb933, 0xb934, 0xb935, 0xb936, 0xb937, 0xb938, 0xb939, 0xb93a, 0xb93b, 0xb93e, 0xb93f, 0xb941, 0xb942, 0xb943, 0xb945, 0xb946, 0xb947, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94d, 0xb94e, 0xb950, 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xb957, 0x003f, /* lead byte 90 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb95a, 0xb95b, 0xb95d, 0xb95e, 0xb95f, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb96a, 0xb96c, 0xb96e, 0xb96f, 0xb970, 0xb971, 0xb972, 0xb973, 0xb976, 0xb977, 0xb979, 0xb97a, 0xb97b, 0xb97d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb97e, 0xb97f, 0xb980, 0xb981, 0xb982, 0xb983, 0xb986, 0xb988, 0xb98b, 0xb98c, 0xb98f, 0xb990, 0xb991, 0xb992, 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xb998, 0xb999, 0xb99a, 0xb99b, 0xb99c, 0xb99d, 0xb99e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb99f, 0xb9a0, 0xb9a1, 0xb9a2, 0xb9a3, 0xb9a4, 0xb9a5, 0xb9a6, 0xb9a7, 0xb9a8, 0xb9a9, 0xb9aa, 0xb9ab, 0xb9ae, 0xb9af, 0xb9b1, 0xb9b2, 0xb9b3, 0xb9b5, 0xb9b6, 0xb9b7, 0xb9b8, 0xb9b9, 0xb9ba, 0xb9bb, 0xb9be, 0xb9c0, 0xb9c2, 0xb9c3, 0xb9c4, 0xb9c5, 0xb9c6, 0xb9c7, 0xb9ca, 0xb9cb, 0xb9cd, 0xb9d3, 0xb9d4, 0xb9d5, 0xb9d6, 0xb9d7, 0xb9da, 0xb9dc, 0xb9df, 0xb9e0, 0xb9e2, 0xb9e6, 0xb9e7, 0xb9e9, 0xb9ea, 0xb9eb, 0xb9ed, 0xb9ee, 0xb9ef, 0xb9f0, 0xb9f1, 0xb9f2, 0xb9f3, 0xb9f6, 0xb9fb, 0xb9fc, 0xb9fd, 0xb9fe, 0xb9ff, 0xba02, 0xba03, 0xba04, 0xba05, 0xba06, 0xba07, 0xba09, 0xba0a, 0xba0b, 0xba0c, 0xba0d, 0xba0e, 0xba0f, 0xba10, 0xba11, 0xba12, 0xba13, 0xba14, 0xba16, 0xba17, 0xba18, 0xba19, 0xba1a, 0xba1b, 0xba1c, 0xba1d, 0xba1e, 0xba1f, 0xba20, 0xba21, 0xba22, 0xba23, 0xba24, 0xba25, 0xba26, 0xba27, 0xba28, 0xba29, 0xba2a, 0xba2b, 0xba2c, 0xba2d, 0xba2e, 0xba2f, 0xba30, 0xba31, 0xba32, 0xba33, 0xba34, 0xba35, 0xba36, 0xba37, 0xba3a, 0xba3b, 0xba3d, 0xba3e, 0xba3f, 0xba41, 0xba43, 0xba44, 0xba45, 0xba46, 0x003f, /* lead byte 91 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xba47, 0xba4a, 0xba4c, 0xba4f, 0xba50, 0xba51, 0xba52, 0xba56, 0xba57, 0xba59, 0xba5a, 0xba5b, 0xba5d, 0xba5e, 0xba5f, 0xba60, 0xba61, 0xba62, 0xba63, 0xba66, 0xba6a, 0xba6b, 0xba6c, 0xba6d, 0xba6e, 0xba6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xba72, 0xba73, 0xba75, 0xba76, 0xba77, 0xba79, 0xba7a, 0xba7b, 0xba7c, 0xba7d, 0xba7e, 0xba7f, 0xba80, 0xba81, 0xba82, 0xba86, 0xba88, 0xba89, 0xba8a, 0xba8b, 0xba8d, 0xba8e, 0xba8f, 0xba90, 0xba91, 0xba92, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xba9a, 0xba9b, 0xba9c, 0xba9d, 0xba9e, 0xba9f, 0xbaa0, 0xbaa1, 0xbaa2, 0xbaa3, 0xbaa4, 0xbaa5, 0xbaa6, 0xbaa7, 0xbaaa, 0xbaad, 0xbaae, 0xbaaf, 0xbab1, 0xbab3, 0xbab4, 0xbab5, 0xbab6, 0xbab7, 0xbaba, 0xbabc, 0xbabe, 0xbabf, 0xbac0, 0xbac1, 0xbac2, 0xbac3, 0xbac5, 0xbac6, 0xbac7, 0xbac9, 0xbaca, 0xbacb, 0xbacc, 0xbacd, 0xbace, 0xbacf, 0xbad0, 0xbad1, 0xbad2, 0xbad3, 0xbad4, 0xbad5, 0xbad6, 0xbad7, 0xbada, 0xbadb, 0xbadc, 0xbadd, 0xbade, 0xbadf, 0xbae0, 0xbae1, 0xbae2, 0xbae3, 0xbae4, 0xbae5, 0xbae6, 0xbae7, 0xbae8, 0xbae9, 0xbaea, 0xbaeb, 0xbaec, 0xbaed, 0xbaee, 0xbaef, 0xbaf0, 0xbaf1, 0xbaf2, 0xbaf3, 0xbaf4, 0xbaf5, 0xbaf6, 0xbaf7, 0xbaf8, 0xbaf9, 0xbafa, 0xbafb, 0xbafd, 0xbafe, 0xbaff, 0xbb01, 0xbb02, 0xbb03, 0xbb05, 0xbb06, 0xbb07, 0xbb08, 0xbb09, 0xbb0a, 0xbb0b, 0xbb0c, 0xbb0e, 0xbb10, 0xbb12, 0xbb13, 0xbb14, 0xbb15, 0xbb16, 0xbb17, 0xbb19, 0xbb1a, 0xbb1b, 0xbb1d, 0xbb1e, 0xbb1f, 0xbb21, 0xbb22, 0xbb23, 0xbb24, 0xbb25, 0xbb26, 0xbb27, 0x003f, /* lead byte 92 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbb28, 0xbb2a, 0xbb2c, 0xbb2d, 0xbb2e, 0xbb2f, 0xbb30, 0xbb31, 0xbb32, 0xbb33, 0xbb37, 0xbb39, 0xbb3a, 0xbb3f, 0xbb40, 0xbb41, 0xbb42, 0xbb43, 0xbb46, 0xbb48, 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4e, 0xbb51, 0xbb52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbb53, 0xbb55, 0xbb56, 0xbb57, 0xbb59, 0xbb5a, 0xbb5b, 0xbb5c, 0xbb5d, 0xbb5e, 0xbb5f, 0xbb60, 0xbb62, 0xbb64, 0xbb65, 0xbb66, 0xbb67, 0xbb68, 0xbb69, 0xbb6a, 0xbb6b, 0xbb6d, 0xbb6e, 0xbb6f, 0xbb70, 0xbb71, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb7b, 0xbb7c, 0xbb7d, 0xbb7e, 0xbb7f, 0xbb80, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb91, 0xbb92, 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbba1, 0xbba2, 0xbba3, 0xbba5, 0xbba6, 0xbba7, 0xbba9, 0xbbaa, 0xbbab, 0xbbad, 0xbbae, 0xbbaf, 0xbbb0, 0xbbb1, 0xbbb2, 0xbbb3, 0xbbb5, 0xbbb6, 0xbbb8, 0xbbb9, 0xbbba, 0xbbbb, 0xbbbc, 0xbbbd, 0xbbbe, 0xbbbf, 0xbbc1, 0xbbc2, 0xbbc3, 0xbbc5, 0xbbc6, 0xbbc7, 0xbbc9, 0xbbca, 0xbbcb, 0xbbcc, 0xbbcd, 0xbbce, 0xbbcf, 0xbbd1, 0xbbd2, 0xbbd4, 0xbbd5, 0xbbd6, 0xbbd7, 0xbbd8, 0xbbd9, 0xbbda, 0xbbdb, 0xbbdc, 0xbbdd, 0xbbde, 0xbbdf, 0xbbe0, 0xbbe1, 0xbbe2, 0xbbe3, 0xbbe4, 0xbbe5, 0xbbe6, 0xbbe7, 0xbbe8, 0xbbe9, 0xbbea, 0xbbeb, 0xbbec, 0xbbed, 0xbbee, 0xbbef, 0xbbf0, 0xbbf1, 0xbbf2, 0xbbf3, 0xbbf4, 0xbbf5, 0xbbf6, 0xbbf7, 0xbbfa, 0xbbfb, 0xbbfd, 0xbbfe, 0xbc01, 0x003f, /* lead byte 93 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbc03, 0xbc04, 0xbc05, 0xbc06, 0xbc07, 0xbc0a, 0xbc0e, 0xbc10, 0xbc12, 0xbc13, 0xbc19, 0xbc1a, 0xbc20, 0xbc21, 0xbc22, 0xbc23, 0xbc26, 0xbc28, 0xbc2a, 0xbc2b, 0xbc2c, 0xbc2e, 0xbc2f, 0xbc32, 0xbc33, 0xbc35, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbc36, 0xbc37, 0xbc39, 0xbc3a, 0xbc3b, 0xbc3c, 0xbc3d, 0xbc3e, 0xbc3f, 0xbc42, 0xbc46, 0xbc47, 0xbc48, 0xbc4a, 0xbc4b, 0xbc4e, 0xbc4f, 0xbc51, 0xbc52, 0xbc53, 0xbc54, 0xbc55, 0xbc56, 0xbc57, 0xbc58, 0xbc59, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbc5a, 0xbc5b, 0xbc5c, 0xbc5e, 0xbc5f, 0xbc60, 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xbc65, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, 0xbc6c, 0xbc6d, 0xbc6e, 0xbc6f, 0xbc70, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xbc78, 0xbc79, 0xbc7a, 0xbc7b, 0xbc7c, 0xbc7d, 0xbc7e, 0xbc7f, 0xbc80, 0xbc81, 0xbc82, 0xbc83, 0xbc86, 0xbc87, 0xbc89, 0xbc8a, 0xbc8d, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, 0xbc93, 0xbc96, 0xbc98, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca2, 0xbca3, 0xbca5, 0xbca6, 0xbca9, 0xbcaa, 0xbcab, 0xbcac, 0xbcad, 0xbcae, 0xbcaf, 0xbcb2, 0xbcb6, 0xbcb7, 0xbcb8, 0xbcb9, 0xbcba, 0xbcbb, 0xbcbe, 0xbcbf, 0xbcc1, 0xbcc2, 0xbcc3, 0xbcc5, 0xbcc6, 0xbcc7, 0xbcc8, 0xbcc9, 0xbcca, 0xbccb, 0xbccc, 0xbcce, 0xbcd2, 0xbcd3, 0xbcd4, 0xbcd6, 0xbcd7, 0xbcd9, 0xbcda, 0xbcdb, 0xbcdd, 0xbcde, 0xbcdf, 0xbce0, 0xbce1, 0xbce2, 0xbce3, 0xbce4, 0xbce5, 0xbce6, 0xbce7, 0xbce8, 0xbce9, 0xbcea, 0xbceb, 0xbcec, 0xbced, 0xbcee, 0xbcef, 0xbcf0, 0xbcf1, 0xbcf2, 0xbcf3, 0xbcf7, 0xbcf9, 0xbcfa, 0xbcfb, 0xbcfd, 0x003f, /* lead byte 94 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcfe, 0xbcff, 0xbd00, 0xbd01, 0xbd02, 0xbd03, 0xbd06, 0xbd08, 0xbd0a, 0xbd0b, 0xbd0c, 0xbd0d, 0xbd0e, 0xbd0f, 0xbd11, 0xbd12, 0xbd13, 0xbd15, 0xbd16, 0xbd17, 0xbd18, 0xbd19, 0xbd1a, 0xbd1b, 0xbd1c, 0xbd1d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbd1e, 0xbd1f, 0xbd20, 0xbd21, 0xbd22, 0xbd23, 0xbd25, 0xbd26, 0xbd27, 0xbd28, 0xbd29, 0xbd2a, 0xbd2b, 0xbd2d, 0xbd2e, 0xbd2f, 0xbd30, 0xbd31, 0xbd32, 0xbd33, 0xbd34, 0xbd35, 0xbd36, 0xbd37, 0xbd38, 0xbd39, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbd3a, 0xbd3b, 0xbd3c, 0xbd3d, 0xbd3e, 0xbd3f, 0xbd41, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd4a, 0xbd4b, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd51, 0xbd52, 0xbd53, 0xbd54, 0xbd55, 0xbd56, 0xbd57, 0xbd5a, 0xbd5b, 0xbd5c, 0xbd5d, 0xbd5e, 0xbd5f, 0xbd60, 0xbd61, 0xbd62, 0xbd63, 0xbd65, 0xbd66, 0xbd67, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd7b, 0xbd7c, 0xbd7d, 0xbd7e, 0xbd7f, 0xbd82, 0xbd83, 0xbd85, 0xbd86, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd92, 0xbd94, 0xbd96, 0xbd97, 0xbd98, 0xbd9b, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbda1, 0xbda2, 0xbda3, 0xbda5, 0xbda6, 0xbda7, 0xbda8, 0xbda9, 0xbdaa, 0xbdab, 0xbdac, 0xbdad, 0xbdae, 0xbdaf, 0xbdb1, 0xbdb2, 0xbdb3, 0xbdb4, 0xbdb5, 0xbdb6, 0xbdb7, 0xbdb9, 0xbdba, 0xbdbb, 0xbdbc, 0xbdbd, 0xbdbe, 0xbdbf, 0xbdc0, 0xbdc1, 0xbdc2, 0xbdc3, 0xbdc4, 0xbdc5, 0xbdc6, 0xbdc7, 0xbdc8, 0xbdc9, 0xbdca, 0xbdcb, 0xbdcc, 0xbdcd, 0xbdce, 0xbdcf, 0xbdd0, 0xbdd1, 0x003f, /* lead byte 95 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd2, 0xbdd3, 0xbdd6, 0xbdd7, 0xbdd9, 0xbdda, 0xbddb, 0xbddd, 0xbdde, 0xbddf, 0xbde0, 0xbde1, 0xbde2, 0xbde3, 0xbde4, 0xbde5, 0xbde6, 0xbde7, 0xbde8, 0xbdea, 0xbdeb, 0xbdec, 0xbded, 0xbdee, 0xbdef, 0xbdf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf2, 0xbdf3, 0xbdf5, 0xbdf6, 0xbdf7, 0xbdf9, 0xbdfa, 0xbdfb, 0xbdfc, 0xbdfd, 0xbdfe, 0xbdff, 0xbe01, 0xbe02, 0xbe04, 0xbe06, 0xbe07, 0xbe08, 0xbe09, 0xbe0a, 0xbe0b, 0xbe0e, 0xbe0f, 0xbe11, 0xbe12, 0xbe13, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbe15, 0xbe16, 0xbe17, 0xbe18, 0xbe19, 0xbe1a, 0xbe1b, 0xbe1e, 0xbe20, 0xbe21, 0xbe22, 0xbe23, 0xbe24, 0xbe25, 0xbe26, 0xbe27, 0xbe28, 0xbe29, 0xbe2a, 0xbe2b, 0xbe2c, 0xbe2d, 0xbe2e, 0xbe2f, 0xbe30, 0xbe31, 0xbe32, 0xbe33, 0xbe34, 0xbe35, 0xbe36, 0xbe37, 0xbe38, 0xbe39, 0xbe3a, 0xbe3b, 0xbe3c, 0xbe3d, 0xbe3e, 0xbe3f, 0xbe40, 0xbe41, 0xbe42, 0xbe43, 0xbe46, 0xbe47, 0xbe49, 0xbe4a, 0xbe4b, 0xbe4d, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xbe56, 0xbe58, 0xbe5c, 0xbe5d, 0xbe5e, 0xbe5f, 0xbe62, 0xbe63, 0xbe65, 0xbe66, 0xbe67, 0xbe69, 0xbe6b, 0xbe6c, 0xbe6d, 0xbe6e, 0xbe6f, 0xbe72, 0xbe76, 0xbe77, 0xbe78, 0xbe79, 0xbe7a, 0xbe7e, 0xbe7f, 0xbe81, 0xbe82, 0xbe83, 0xbe85, 0xbe86, 0xbe87, 0xbe88, 0xbe89, 0xbe8a, 0xbe8b, 0xbe8e, 0xbe92, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbea1, 0xbea2, 0xbea3, 0xbea4, 0xbea5, 0xbea6, 0xbea7, 0xbea9, 0xbeaa, 0xbeab, 0xbeac, 0xbead, 0xbeae, 0xbeaf, 0xbeb0, 0xbeb1, 0xbeb2, 0xbeb3, 0xbeb4, 0xbeb5, 0xbeb6, 0xbeb7, 0x003f, /* lead byte 96 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbeb8, 0xbeb9, 0xbeba, 0xbebb, 0xbebc, 0xbebd, 0xbebe, 0xbebf, 0xbec0, 0xbec1, 0xbec2, 0xbec3, 0xbec4, 0xbec5, 0xbec6, 0xbec7, 0xbec8, 0xbec9, 0xbeca, 0xbecb, 0xbecc, 0xbecd, 0xbece, 0xbecf, 0xbed2, 0xbed3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbed5, 0xbed6, 0xbed9, 0xbeda, 0xbedb, 0xbedc, 0xbedd, 0xbede, 0xbedf, 0xbee1, 0xbee2, 0xbee6, 0xbee7, 0xbee8, 0xbee9, 0xbeea, 0xbeeb, 0xbeed, 0xbeee, 0xbeef, 0xbef0, 0xbef1, 0xbef2, 0xbef3, 0xbef4, 0xbef5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0xbefd, 0xbefe, 0xbeff, 0xbf00, 0xbf02, 0xbf03, 0xbf04, 0xbf05, 0xbf06, 0xbf07, 0xbf0a, 0xbf0b, 0xbf0c, 0xbf0d, 0xbf0e, 0xbf0f, 0xbf10, 0xbf11, 0xbf12, 0xbf13, 0xbf14, 0xbf15, 0xbf16, 0xbf17, 0xbf1a, 0xbf1e, 0xbf1f, 0xbf20, 0xbf21, 0xbf22, 0xbf23, 0xbf24, 0xbf25, 0xbf26, 0xbf27, 0xbf28, 0xbf29, 0xbf2a, 0xbf2b, 0xbf2c, 0xbf2d, 0xbf2e, 0xbf2f, 0xbf30, 0xbf31, 0xbf32, 0xbf33, 0xbf34, 0xbf35, 0xbf36, 0xbf37, 0xbf38, 0xbf39, 0xbf3a, 0xbf3b, 0xbf3c, 0xbf3d, 0xbf3e, 0xbf3f, 0xbf42, 0xbf43, 0xbf45, 0xbf46, 0xbf47, 0xbf49, 0xbf4a, 0xbf4b, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf52, 0xbf53, 0xbf54, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf5b, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf5f, 0xbf60, 0xbf61, 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xbf74, 0xbf75, 0xbf76, 0xbf77, 0xbf78, 0xbf79, 0xbf7a, 0xbf7b, 0xbf7c, 0xbf7d, 0xbf7e, 0xbf7f, 0xbf80, 0xbf81, 0xbf82, 0x003f, /* lead byte 97 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xbf87, 0xbf88, 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xbf91, 0xbf92, 0xbf93, 0xbf95, 0xbf96, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbf9e, 0xbf9f, 0xbfa0, 0xbfa1, 0xbfa2, 0xbfa3, 0xbfa4, 0xbfa5, 0xbfa6, 0xbfa7, 0xbfa8, 0xbfa9, 0xbfaa, 0xbfab, 0xbfac, 0xbfad, 0xbfae, 0xbfaf, 0xbfb1, 0xbfb2, 0xbfb3, 0xbfb4, 0xbfb5, 0xbfb6, 0xbfb7, 0xbfb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfb9, 0xbfba, 0xbfbb, 0xbfbc, 0xbfbd, 0xbfbe, 0xbfbf, 0xbfc0, 0xbfc1, 0xbfc2, 0xbfc3, 0xbfc4, 0xbfc6, 0xbfc7, 0xbfc8, 0xbfc9, 0xbfca, 0xbfcb, 0xbfce, 0xbfcf, 0xbfd1, 0xbfd2, 0xbfd3, 0xbfd5, 0xbfd6, 0xbfd7, 0xbfd8, 0xbfd9, 0xbfda, 0xbfdb, 0xbfdd, 0xbfde, 0xbfe0, 0xbfe2, 0xbfe3, 0xbfe4, 0xbfe5, 0xbfe6, 0xbfe7, 0xbfe8, 0xbfe9, 0xbfea, 0xbfeb, 0xbfec, 0xbfed, 0xbfee, 0xbfef, 0xbff0, 0xbff1, 0xbff2, 0xbff3, 0xbff4, 0xbff5, 0xbff6, 0xbff7, 0xbff8, 0xbff9, 0xbffa, 0xbffb, 0xbffc, 0xbffd, 0xbffe, 0xbfff, 0xc000, 0xc001, 0xc002, 0xc003, 0xc004, 0xc005, 0xc006, 0xc007, 0xc008, 0xc009, 0xc00a, 0xc00b, 0xc00c, 0xc00d, 0xc00e, 0xc00f, 0xc010, 0xc011, 0xc012, 0xc013, 0xc014, 0xc015, 0xc016, 0xc017, 0xc018, 0xc019, 0xc01a, 0xc01b, 0xc01c, 0xc01d, 0xc01e, 0xc01f, 0xc020, 0xc021, 0xc022, 0xc023, 0xc024, 0xc025, 0xc026, 0xc027, 0xc028, 0xc029, 0xc02a, 0xc02b, 0xc02c, 0xc02d, 0xc02e, 0xc02f, 0xc030, 0xc031, 0xc032, 0xc033, 0xc034, 0xc035, 0xc036, 0xc037, 0xc038, 0xc039, 0xc03a, 0xc03b, 0xc03d, 0xc03e, 0xc03f, 0x003f, /* lead byte 98 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc040, 0xc041, 0xc042, 0xc043, 0xc044, 0xc045, 0xc046, 0xc047, 0xc048, 0xc049, 0xc04a, 0xc04b, 0xc04c, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc052, 0xc053, 0xc054, 0xc055, 0xc056, 0xc057, 0xc059, 0xc05a, 0xc05b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc05d, 0xc05e, 0xc05f, 0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc07a, 0xc07b, 0xc07c, 0xc07d, 0xc07e, 0xc07f, 0xc080, 0xc081, 0xc082, 0xc083, 0xc084, 0xc085, 0xc086, 0xc087, 0xc088, 0xc089, 0xc08a, 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc092, 0xc093, 0xc095, 0xc096, 0xc097, 0xc099, 0xc09a, 0xc09b, 0xc09c, 0xc09d, 0xc09e, 0xc09f, 0xc0a2, 0xc0a4, 0xc0a6, 0xc0a7, 0xc0a8, 0xc0a9, 0xc0aa, 0xc0ab, 0xc0ae, 0xc0b1, 0xc0b2, 0xc0b7, 0xc0b8, 0xc0b9, 0xc0ba, 0xc0bb, 0xc0be, 0xc0c2, 0xc0c3, 0xc0c4, 0xc0c6, 0xc0c7, 0xc0ca, 0xc0cb, 0xc0cd, 0xc0ce, 0xc0cf, 0xc0d1, 0xc0d2, 0xc0d3, 0xc0d4, 0xc0d5, 0xc0d6, 0xc0d7, 0xc0da, 0xc0de, 0xc0df, 0xc0e0, 0xc0e1, 0xc0e2, 0xc0e3, 0xc0e6, 0xc0e7, 0xc0e9, 0xc0ea, 0xc0eb, 0xc0ed, 0xc0ee, 0xc0ef, 0xc0f0, 0xc0f1, 0xc0f2, 0xc0f3, 0xc0f6, 0xc0f8, 0xc0fa, 0xc0fb, 0xc0fc, 0xc0fd, 0xc0fe, 0xc0ff, 0xc101, 0xc102, 0xc103, 0xc105, 0xc106, 0xc107, 0xc109, 0xc10a, 0xc10b, 0xc10c, 0xc10d, 0xc10e, 0xc10f, 0xc111, 0xc112, 0xc113, 0xc114, 0xc116, 0xc117, 0xc118, 0xc119, 0xc11a, 0xc11b, 0xc121, 0xc122, 0xc125, 0xc128, 0xc129, 0xc12a, 0xc12b, 0xc12e, 0x003f, /* lead byte 99 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc132, 0xc133, 0xc134, 0xc135, 0xc137, 0xc13a, 0xc13b, 0xc13d, 0xc13e, 0xc13f, 0xc141, 0xc142, 0xc143, 0xc144, 0xc145, 0xc146, 0xc147, 0xc14a, 0xc14e, 0xc14f, 0xc150, 0xc151, 0xc152, 0xc153, 0xc156, 0xc157, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc159, 0xc15a, 0xc15b, 0xc15d, 0xc15e, 0xc15f, 0xc160, 0xc161, 0xc162, 0xc163, 0xc166, 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc171, 0xc172, 0xc173, 0xc175, 0xc176, 0xc177, 0xc179, 0xc17a, 0xc17b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc17c, 0xc17d, 0xc17e, 0xc17f, 0xc180, 0xc181, 0xc182, 0xc183, 0xc184, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, 0xc18f, 0xc191, 0xc192, 0xc193, 0xc195, 0xc197, 0xc198, 0xc199, 0xc19a, 0xc19b, 0xc19e, 0xc1a0, 0xc1a2, 0xc1a3, 0xc1a4, 0xc1a6, 0xc1a7, 0xc1aa, 0xc1ab, 0xc1ad, 0xc1ae, 0xc1af, 0xc1b1, 0xc1b2, 0xc1b3, 0xc1b4, 0xc1b5, 0xc1b6, 0xc1b7, 0xc1b8, 0xc1b9, 0xc1ba, 0xc1bb, 0xc1bc, 0xc1be, 0xc1bf, 0xc1c0, 0xc1c1, 0xc1c2, 0xc1c3, 0xc1c5, 0xc1c6, 0xc1c7, 0xc1c9, 0xc1ca, 0xc1cb, 0xc1cd, 0xc1ce, 0xc1cf, 0xc1d0, 0xc1d1, 0xc1d2, 0xc1d3, 0xc1d5, 0xc1d6, 0xc1d9, 0xc1da, 0xc1db, 0xc1dc, 0xc1dd, 0xc1de, 0xc1df, 0xc1e1, 0xc1e2, 0xc1e3, 0xc1e5, 0xc1e6, 0xc1e7, 0xc1e9, 0xc1ea, 0xc1eb, 0xc1ec, 0xc1ed, 0xc1ee, 0xc1ef, 0xc1f2, 0xc1f4, 0xc1f5, 0xc1f6, 0xc1f7, 0xc1f8, 0xc1f9, 0xc1fa, 0xc1fb, 0xc1fe, 0xc1ff, 0xc201, 0xc202, 0xc203, 0xc205, 0xc206, 0xc207, 0xc208, 0xc209, 0xc20a, 0xc20b, 0xc20e, 0xc210, 0xc212, 0xc213, 0xc214, 0xc215, 0xc216, 0xc217, 0xc21a, 0xc21b, 0xc21d, 0xc21e, 0xc221, 0xc222, 0xc223, 0x003f, /* lead byte 9a */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc224, 0xc225, 0xc226, 0xc227, 0xc22a, 0xc22c, 0xc22e, 0xc230, 0xc233, 0xc235, 0xc236, 0xc237, 0xc238, 0xc239, 0xc23a, 0xc23b, 0xc23c, 0xc23d, 0xc23e, 0xc23f, 0xc240, 0xc241, 0xc242, 0xc243, 0xc244, 0xc245, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc246, 0xc247, 0xc249, 0xc24a, 0xc24b, 0xc24c, 0xc24d, 0xc24e, 0xc24f, 0xc252, 0xc253, 0xc255, 0xc256, 0xc257, 0xc259, 0xc25a, 0xc25b, 0xc25c, 0xc25d, 0xc25e, 0xc25f, 0xc261, 0xc262, 0xc263, 0xc264, 0xc266, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc267, 0xc268, 0xc269, 0xc26a, 0xc26b, 0xc26e, 0xc26f, 0xc271, 0xc272, 0xc273, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, 0xc27a, 0xc27b, 0xc27e, 0xc280, 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc287, 0xc28a, 0xc28b, 0xc28c, 0xc28d, 0xc28e, 0xc28f, 0xc291, 0xc292, 0xc293, 0xc294, 0xc295, 0xc296, 0xc297, 0xc299, 0xc29a, 0xc29c, 0xc29e, 0xc29f, 0xc2a0, 0xc2a1, 0xc2a2, 0xc2a3, 0xc2a6, 0xc2a7, 0xc2a9, 0xc2aa, 0xc2ab, 0xc2ae, 0xc2af, 0xc2b0, 0xc2b1, 0xc2b2, 0xc2b3, 0xc2b6, 0xc2b8, 0xc2ba, 0xc2bb, 0xc2bc, 0xc2bd, 0xc2be, 0xc2bf, 0xc2c0, 0xc2c1, 0xc2c2, 0xc2c3, 0xc2c4, 0xc2c5, 0xc2c6, 0xc2c7, 0xc2c8, 0xc2c9, 0xc2ca, 0xc2cb, 0xc2cc, 0xc2cd, 0xc2ce, 0xc2cf, 0xc2d0, 0xc2d1, 0xc2d2, 0xc2d3, 0xc2d4, 0xc2d5, 0xc2d6, 0xc2d7, 0xc2d8, 0xc2d9, 0xc2da, 0xc2db, 0xc2de, 0xc2df, 0xc2e1, 0xc2e2, 0xc2e5, 0xc2e6, 0xc2e7, 0xc2e8, 0xc2e9, 0xc2ea, 0xc2ee, 0xc2f0, 0xc2f2, 0xc2f3, 0xc2f4, 0xc2f5, 0xc2f7, 0xc2fa, 0xc2fd, 0xc2fe, 0xc2ff, 0xc301, 0xc302, 0xc303, 0xc304, 0xc305, 0xc306, 0xc307, 0xc30a, 0xc30b, 0xc30e, 0xc30f, 0x003f, /* lead byte 9b */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc310, 0xc311, 0xc312, 0xc316, 0xc317, 0xc319, 0xc31a, 0xc31b, 0xc31d, 0xc31e, 0xc31f, 0xc320, 0xc321, 0xc322, 0xc323, 0xc326, 0xc327, 0xc32a, 0xc32b, 0xc32c, 0xc32d, 0xc32e, 0xc32f, 0xc330, 0xc331, 0xc332, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc333, 0xc334, 0xc335, 0xc336, 0xc337, 0xc338, 0xc339, 0xc33a, 0xc33b, 0xc33c, 0xc33d, 0xc33e, 0xc33f, 0xc340, 0xc341, 0xc342, 0xc343, 0xc344, 0xc346, 0xc347, 0xc348, 0xc349, 0xc34a, 0xc34b, 0xc34c, 0xc34d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc34e, 0xc34f, 0xc350, 0xc351, 0xc352, 0xc353, 0xc354, 0xc355, 0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc35b, 0xc35c, 0xc35d, 0xc35e, 0xc35f, 0xc360, 0xc361, 0xc362, 0xc363, 0xc364, 0xc365, 0xc366, 0xc367, 0xc36a, 0xc36b, 0xc36d, 0xc36e, 0xc36f, 0xc371, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc37a, 0xc37b, 0xc37e, 0xc37f, 0xc380, 0xc381, 0xc382, 0xc383, 0xc385, 0xc386, 0xc387, 0xc389, 0xc38a, 0xc38b, 0xc38d, 0xc38e, 0xc38f, 0xc390, 0xc391, 0xc392, 0xc393, 0xc394, 0xc395, 0xc396, 0xc397, 0xc398, 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc39f, 0xc3a0, 0xc3a1, 0xc3a2, 0xc3a3, 0xc3a4, 0xc3a5, 0xc3a6, 0xc3a7, 0xc3a8, 0xc3a9, 0xc3aa, 0xc3ab, 0xc3ac, 0xc3ad, 0xc3ae, 0xc3af, 0xc3b0, 0xc3b1, 0xc3b2, 0xc3b3, 0xc3b4, 0xc3b5, 0xc3b6, 0xc3b7, 0xc3b8, 0xc3b9, 0xc3ba, 0xc3bb, 0xc3bc, 0xc3bd, 0xc3be, 0xc3bf, 0xc3c1, 0xc3c2, 0xc3c3, 0xc3c4, 0xc3c5, 0xc3c6, 0xc3c7, 0xc3c8, 0xc3c9, 0xc3ca, 0xc3cb, 0xc3cc, 0xc3cd, 0xc3ce, 0xc3cf, 0xc3d0, 0xc3d1, 0xc3d2, 0xc3d3, 0xc3d4, 0xc3d5, 0xc3d6, 0xc3d7, 0xc3da, 0x003f, /* lead byte 9c */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3db, 0xc3dd, 0xc3de, 0xc3e1, 0xc3e3, 0xc3e4, 0xc3e5, 0xc3e6, 0xc3e7, 0xc3ea, 0xc3eb, 0xc3ec, 0xc3ee, 0xc3ef, 0xc3f0, 0xc3f1, 0xc3f2, 0xc3f3, 0xc3f6, 0xc3f7, 0xc3f9, 0xc3fa, 0xc3fb, 0xc3fc, 0xc3fd, 0xc3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3ff, 0xc400, 0xc401, 0xc402, 0xc403, 0xc404, 0xc405, 0xc406, 0xc407, 0xc409, 0xc40a, 0xc40b, 0xc40c, 0xc40d, 0xc40e, 0xc40f, 0xc411, 0xc412, 0xc413, 0xc414, 0xc415, 0xc416, 0xc417, 0xc418, 0xc419, 0xc41a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc41b, 0xc41c, 0xc41d, 0xc41e, 0xc41f, 0xc420, 0xc421, 0xc422, 0xc423, 0xc425, 0xc426, 0xc427, 0xc428, 0xc429, 0xc42a, 0xc42b, 0xc42d, 0xc42e, 0xc42f, 0xc431, 0xc432, 0xc433, 0xc435, 0xc436, 0xc437, 0xc438, 0xc439, 0xc43a, 0xc43b, 0xc43e, 0xc43f, 0xc440, 0xc441, 0xc442, 0xc443, 0xc444, 0xc445, 0xc446, 0xc447, 0xc449, 0xc44a, 0xc44b, 0xc44c, 0xc44d, 0xc44e, 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, 0xc454, 0xc455, 0xc456, 0xc457, 0xc458, 0xc459, 0xc45a, 0xc45b, 0xc45c, 0xc45d, 0xc45e, 0xc45f, 0xc460, 0xc461, 0xc462, 0xc463, 0xc466, 0xc467, 0xc469, 0xc46a, 0xc46b, 0xc46d, 0xc46e, 0xc46f, 0xc470, 0xc471, 0xc472, 0xc473, 0xc476, 0xc477, 0xc478, 0xc47a, 0xc47b, 0xc47c, 0xc47d, 0xc47e, 0xc47f, 0xc481, 0xc482, 0xc483, 0xc484, 0xc485, 0xc486, 0xc487, 0xc488, 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc48d, 0xc48e, 0xc48f, 0xc490, 0xc491, 0xc492, 0xc493, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, 0xc49b, 0xc49d, 0xc49e, 0xc49f, 0xc4a0, 0xc4a1, 0xc4a2, 0xc4a3, 0xc4a4, 0xc4a5, 0xc4a6, 0xc4a7, 0xc4a8, 0xc4a9, 0x003f, /* lead byte 9d */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4aa, 0xc4ab, 0xc4ac, 0xc4ad, 0xc4ae, 0xc4af, 0xc4b0, 0xc4b1, 0xc4b2, 0xc4b3, 0xc4b4, 0xc4b5, 0xc4b6, 0xc4b7, 0xc4b9, 0xc4ba, 0xc4bb, 0xc4bd, 0xc4be, 0xc4bf, 0xc4c0, 0xc4c1, 0xc4c2, 0xc4c3, 0xc4c4, 0xc4c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4c6, 0xc4c7, 0xc4c8, 0xc4c9, 0xc4ca, 0xc4cb, 0xc4cc, 0xc4cd, 0xc4ce, 0xc4cf, 0xc4d0, 0xc4d1, 0xc4d2, 0xc4d3, 0xc4d4, 0xc4d5, 0xc4d6, 0xc4d7, 0xc4d8, 0xc4d9, 0xc4da, 0xc4db, 0xc4dc, 0xc4dd, 0xc4de, 0xc4df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4e0, 0xc4e1, 0xc4e2, 0xc4e3, 0xc4e4, 0xc4e5, 0xc4e6, 0xc4e7, 0xc4e8, 0xc4ea, 0xc4eb, 0xc4ec, 0xc4ed, 0xc4ee, 0xc4ef, 0xc4f2, 0xc4f3, 0xc4f5, 0xc4f6, 0xc4f7, 0xc4f9, 0xc4fb, 0xc4fc, 0xc4fd, 0xc4fe, 0xc502, 0xc503, 0xc504, 0xc505, 0xc506, 0xc507, 0xc508, 0xc509, 0xc50a, 0xc50b, 0xc50d, 0xc50e, 0xc50f, 0xc511, 0xc512, 0xc513, 0xc515, 0xc516, 0xc517, 0xc518, 0xc519, 0xc51a, 0xc51b, 0xc51d, 0xc51e, 0xc51f, 0xc520, 0xc521, 0xc522, 0xc523, 0xc524, 0xc525, 0xc526, 0xc527, 0xc52a, 0xc52b, 0xc52d, 0xc52e, 0xc52f, 0xc531, 0xc532, 0xc533, 0xc534, 0xc535, 0xc536, 0xc537, 0xc53a, 0xc53c, 0xc53e, 0xc53f, 0xc540, 0xc541, 0xc542, 0xc543, 0xc546, 0xc547, 0xc54b, 0xc54f, 0xc550, 0xc551, 0xc552, 0xc556, 0xc55a, 0xc55b, 0xc55c, 0xc55f, 0xc562, 0xc563, 0xc565, 0xc566, 0xc567, 0xc569, 0xc56a, 0xc56b, 0xc56c, 0xc56d, 0xc56e, 0xc56f, 0xc572, 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc57b, 0xc57e, 0xc57f, 0xc581, 0xc582, 0xc583, 0xc585, 0xc586, 0xc588, 0xc589, 0xc58a, 0xc58b, 0xc58e, 0xc590, 0xc592, 0xc593, 0xc594, 0x003f, /* lead byte 9e */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc596, 0xc599, 0xc59a, 0xc59b, 0xc59d, 0xc59e, 0xc59f, 0xc5a1, 0xc5a2, 0xc5a3, 0xc5a4, 0xc5a5, 0xc5a6, 0xc5a7, 0xc5a8, 0xc5aa, 0xc5ab, 0xc5ac, 0xc5ad, 0xc5ae, 0xc5af, 0xc5b0, 0xc5b1, 0xc5b2, 0xc5b3, 0xc5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5b7, 0xc5ba, 0xc5bf, 0xc5c0, 0xc5c1, 0xc5c2, 0xc5c3, 0xc5cb, 0xc5cd, 0xc5cf, 0xc5d2, 0xc5d3, 0xc5d5, 0xc5d6, 0xc5d7, 0xc5d9, 0xc5da, 0xc5db, 0xc5dc, 0xc5dd, 0xc5de, 0xc5df, 0xc5e2, 0xc5e4, 0xc5e6, 0xc5e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc5e8, 0xc5e9, 0xc5ea, 0xc5eb, 0xc5ef, 0xc5f1, 0xc5f2, 0xc5f3, 0xc5f5, 0xc5f8, 0xc5f9, 0xc5fa, 0xc5fb, 0xc602, 0xc603, 0xc604, 0xc609, 0xc60a, 0xc60b, 0xc60d, 0xc60e, 0xc60f, 0xc611, 0xc612, 0xc613, 0xc614, 0xc615, 0xc616, 0xc617, 0xc61a, 0xc61d, 0xc61e, 0xc61f, 0xc620, 0xc621, 0xc622, 0xc623, 0xc626, 0xc627, 0xc629, 0xc62a, 0xc62b, 0xc62f, 0xc631, 0xc632, 0xc636, 0xc638, 0xc63a, 0xc63c, 0xc63d, 0xc63e, 0xc63f, 0xc642, 0xc643, 0xc645, 0xc646, 0xc647, 0xc649, 0xc64a, 0xc64b, 0xc64c, 0xc64d, 0xc64e, 0xc64f, 0xc652, 0xc656, 0xc657, 0xc658, 0xc659, 0xc65a, 0xc65b, 0xc65e, 0xc65f, 0xc661, 0xc662, 0xc663, 0xc664, 0xc665, 0xc666, 0xc667, 0xc668, 0xc669, 0xc66a, 0xc66b, 0xc66d, 0xc66e, 0xc670, 0xc672, 0xc673, 0xc674, 0xc675, 0xc676, 0xc677, 0xc67a, 0xc67b, 0xc67d, 0xc67e, 0xc67f, 0xc681, 0xc682, 0xc683, 0xc684, 0xc685, 0xc686, 0xc687, 0xc68a, 0xc68c, 0xc68e, 0xc68f, 0xc690, 0xc691, 0xc692, 0xc693, 0xc696, 0xc697, 0xc699, 0xc69a, 0xc69b, 0xc69d, 0xc69e, 0xc69f, 0xc6a0, 0xc6a1, 0xc6a2, 0xc6a3, 0xc6a6, 0x003f, /* lead byte 9f */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6a8, 0xc6aa, 0xc6ab, 0xc6ac, 0xc6ad, 0xc6ae, 0xc6af, 0xc6b2, 0xc6b3, 0xc6b5, 0xc6b6, 0xc6b7, 0xc6bb, 0xc6bc, 0xc6bd, 0xc6be, 0xc6bf, 0xc6c2, 0xc6c4, 0xc6c6, 0xc6c7, 0xc6c8, 0xc6c9, 0xc6ca, 0xc6cb, 0xc6ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6cf, 0xc6d1, 0xc6d2, 0xc6d3, 0xc6d5, 0xc6d6, 0xc6d7, 0xc6d8, 0xc6d9, 0xc6da, 0xc6db, 0xc6de, 0xc6df, 0xc6e2, 0xc6e3, 0xc6e4, 0xc6e5, 0xc6e6, 0xc6e7, 0xc6ea, 0xc6eb, 0xc6ed, 0xc6ee, 0xc6ef, 0xc6f1, 0xc6f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc6f3, 0xc6f4, 0xc6f5, 0xc6f6, 0xc6f7, 0xc6fa, 0xc6fb, 0xc6fc, 0xc6fe, 0xc6ff, 0xc700, 0xc701, 0xc702, 0xc703, 0xc706, 0xc707, 0xc709, 0xc70a, 0xc70b, 0xc70d, 0xc70e, 0xc70f, 0xc710, 0xc711, 0xc712, 0xc713, 0xc716, 0xc718, 0xc71a, 0xc71b, 0xc71c, 0xc71d, 0xc71e, 0xc71f, 0xc722, 0xc723, 0xc725, 0xc726, 0xc727, 0xc729, 0xc72a, 0xc72b, 0xc72c, 0xc72d, 0xc72e, 0xc72f, 0xc732, 0xc734, 0xc736, 0xc738, 0xc739, 0xc73a, 0xc73b, 0xc73e, 0xc73f, 0xc741, 0xc742, 0xc743, 0xc745, 0xc746, 0xc747, 0xc748, 0xc749, 0xc74b, 0xc74e, 0xc750, 0xc759, 0xc75a, 0xc75b, 0xc75d, 0xc75e, 0xc75f, 0xc761, 0xc762, 0xc763, 0xc764, 0xc765, 0xc766, 0xc767, 0xc769, 0xc76a, 0xc76c, 0xc76d, 0xc76e, 0xc76f, 0xc770, 0xc771, 0xc772, 0xc773, 0xc776, 0xc777, 0xc779, 0xc77a, 0xc77b, 0xc77f, 0xc780, 0xc781, 0xc782, 0xc786, 0xc78b, 0xc78c, 0xc78d, 0xc78f, 0xc792, 0xc793, 0xc795, 0xc799, 0xc79b, 0xc79c, 0xc79d, 0xc79e, 0xc79f, 0xc7a2, 0xc7a7, 0xc7a8, 0xc7a9, 0xc7aa, 0xc7ab, 0xc7ae, 0xc7af, 0xc7b1, 0xc7b2, 0xc7b3, 0xc7b5, 0xc7b6, 0xc7b7, 0x003f, /* lead byte a0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7b8, 0xc7b9, 0xc7ba, 0xc7bb, 0xc7be, 0xc7c2, 0xc7c3, 0xc7c4, 0xc7c5, 0xc7c6, 0xc7c7, 0xc7ca, 0xc7cb, 0xc7cd, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d3, 0xc7d4, 0xc7d5, 0xc7d6, 0xc7d7, 0xc7d9, 0xc7da, 0xc7db, 0xc7dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7de, 0xc7df, 0xc7e0, 0xc7e1, 0xc7e2, 0xc7e3, 0xc7e5, 0xc7e6, 0xc7e7, 0xc7e9, 0xc7ea, 0xc7eb, 0xc7ed, 0xc7ee, 0xc7ef, 0xc7f0, 0xc7f1, 0xc7f2, 0xc7f3, 0xc7f4, 0xc7f5, 0xc7f6, 0xc7f7, 0xc7f8, 0xc7f9, 0xc7fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc7fb, 0xc7fc, 0xc7fd, 0xc7fe, 0xc7ff, 0xc802, 0xc803, 0xc805, 0xc806, 0xc807, 0xc809, 0xc80b, 0xc80c, 0xc80d, 0xc80e, 0xc80f, 0xc812, 0xc814, 0xc817, 0xc818, 0xc819, 0xc81a, 0xc81b, 0xc81e, 0xc81f, 0xc821, 0xc822, 0xc823, 0xc825, 0xc826, 0xc827, 0xc828, 0xc829, 0xc82a, 0xc82b, 0xc82e, 0xc830, 0xc832, 0xc833, 0xc834, 0xc835, 0xc836, 0xc837, 0xc839, 0xc83a, 0xc83b, 0xc83d, 0xc83e, 0xc83f, 0xc841, 0xc842, 0xc843, 0xc844, 0xc845, 0xc846, 0xc847, 0xc84a, 0xc84b, 0xc84e, 0xc84f, 0xc850, 0xc851, 0xc852, 0xc853, 0xc855, 0xc856, 0xc857, 0xc858, 0xc859, 0xc85a, 0xc85b, 0xc85c, 0xc85d, 0xc85e, 0xc85f, 0xc860, 0xc861, 0xc862, 0xc863, 0xc864, 0xc865, 0xc866, 0xc867, 0xc868, 0xc869, 0xc86a, 0xc86b, 0xc86c, 0xc86d, 0xc86e, 0xc86f, 0xc872, 0xc873, 0xc875, 0xc876, 0xc877, 0xc879, 0xc87b, 0xc87c, 0xc87d, 0xc87e, 0xc87f, 0xc882, 0xc884, 0xc888, 0xc889, 0xc88a, 0xc88e, 0xc88f, 0xc890, 0xc891, 0xc892, 0xc893, 0xc895, 0xc896, 0xc897, 0xc898, 0xc899, 0xc89a, 0xc89b, 0xc89c, 0xc89e, 0xc8a0, 0xc8a2, 0xc8a3, 0xc8a4, 0x003f, /* lead byte a1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8a5, 0xc8a6, 0xc8a7, 0xc8a9, 0xc8aa, 0xc8ab, 0xc8ac, 0xc8ad, 0xc8ae, 0xc8af, 0xc8b0, 0xc8b1, 0xc8b2, 0xc8b3, 0xc8b4, 0xc8b5, 0xc8b6, 0xc8b7, 0xc8b8, 0xc8b9, 0xc8ba, 0xc8bb, 0xc8be, 0xc8bf, 0xc8c0, 0xc8c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8c2, 0xc8c3, 0xc8c5, 0xc8c6, 0xc8c7, 0xc8c9, 0xc8ca, 0xc8cb, 0xc8cd, 0xc8ce, 0xc8cf, 0xc8d0, 0xc8d1, 0xc8d2, 0xc8d3, 0xc8d6, 0xc8d8, 0xc8da, 0xc8db, 0xc8dc, 0xc8dd, 0xc8de, 0xc8df, 0xc8e2, 0xc8e3, 0xc8e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc8e6, 0xc8e7, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc8ec, 0xc8ed, 0xc8ee, 0xc8ef, 0xc8f0, 0xc8f1, 0xc8f2, 0xc8f3, 0xc8f4, 0xc8f6, 0xc8f7, 0xc8f8, 0xc8f9, 0xc8fa, 0xc8fb, 0xc8fe, 0xc8ff, 0xc901, 0xc902, 0xc903, 0xc907, 0xc908, 0xc909, 0xc90a, 0xc90b, 0xc90e, 0x3000, 0x3001, 0x3002, 0x00b7, 0x2025, 0x2026, 0x00a8, 0x3003, 0x00ad, 0x2015, 0x2225, 0xff3c, 0x223c, 0x2018, 0x2019, 0x201c, 0x201d, 0x3014, 0x3015, 0x3008, 0x3009, 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x00b1, 0x00d7, 0x00f7, 0x2260, 0x2264, 0x2265, 0x221e, 0x2234, 0x00b0, 0x2032, 0x2033, 0x2103, 0x212b, 0xffe0, 0xffe1, 0xffe5, 0x2642, 0x2640, 0x2220, 0x22a5, 0x2312, 0x2202, 0x2207, 0x2261, 0x2252, 0x00a7, 0x203b, 0x2606, 0x2605, 0x25cb, 0x25cf, 0x25ce, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25b3, 0x25b2, 0x25bd, 0x25bc, 0x2192, 0x2190, 0x2191, 0x2193, 0x2194, 0x3013, 0x226a, 0x226b, 0x221a, 0x223d, 0x221d, 0x2235, 0x222b, 0x222c, 0x2208, 0x220b, 0x2286, 0x2287, 0x2282, 0x2283, 0x222a, 0x2229, 0x2227, 0x2228, 0xffe2, 0x003f, /* lead byte a2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc910, 0xc912, 0xc913, 0xc914, 0xc915, 0xc916, 0xc917, 0xc919, 0xc91a, 0xc91b, 0xc91c, 0xc91d, 0xc91e, 0xc91f, 0xc920, 0xc921, 0xc922, 0xc923, 0xc924, 0xc925, 0xc926, 0xc927, 0xc928, 0xc929, 0xc92a, 0xc92b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc92d, 0xc92e, 0xc92f, 0xc930, 0xc931, 0xc932, 0xc933, 0xc935, 0xc936, 0xc937, 0xc938, 0xc939, 0xc93a, 0xc93b, 0xc93c, 0xc93d, 0xc93e, 0xc93f, 0xc940, 0xc941, 0xc942, 0xc943, 0xc944, 0xc945, 0xc946, 0xc947, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc948, 0xc949, 0xc94a, 0xc94b, 0xc94c, 0xc94d, 0xc94e, 0xc94f, 0xc952, 0xc953, 0xc955, 0xc956, 0xc957, 0xc959, 0xc95a, 0xc95b, 0xc95c, 0xc95d, 0xc95e, 0xc95f, 0xc962, 0xc964, 0xc965, 0xc966, 0xc967, 0xc968, 0xc969, 0xc96a, 0xc96b, 0xc96d, 0xc96e, 0xc96f, 0x21d2, 0x21d4, 0x2200, 0x2203, 0x00b4, 0xff5e, 0x02c7, 0x02d8, 0x02dd, 0x02da, 0x02d9, 0x00b8, 0x02db, 0x00a1, 0x00bf, 0x02d0, 0x222e, 0x2211, 0x220f, 0x00a4, 0x2109, 0x2030, 0x25c1, 0x25c0, 0x25b7, 0x25b6, 0x2664, 0x2660, 0x2661, 0x2665, 0x2667, 0x2663, 0x2299, 0x25c8, 0x25a3, 0x25d0, 0x25d1, 0x2592, 0x25a4, 0x25a5, 0x25a8, 0x25a7, 0x25a6, 0x25a9, 0x2668, 0x260f, 0x260e, 0x261c, 0x261e, 0x00b6, 0x2020, 0x2021, 0x2195, 0x2197, 0x2199, 0x2196, 0x2198, 0x266d, 0x2669, 0x266a, 0x266c, 0x327f, 0x321c, 0x2116, 0x33c7, 0x2122, 0x33c2, 0x33d8, 0x2121, 0x20ac, 0x00ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc971, 0xc972, 0xc973, 0xc975, 0xc976, 0xc977, 0xc978, 0xc979, 0xc97a, 0xc97b, 0xc97d, 0xc97e, 0xc97f, 0xc980, 0xc981, 0xc982, 0xc983, 0xc984, 0xc985, 0xc986, 0xc987, 0xc98a, 0xc98b, 0xc98d, 0xc98e, 0xc98f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc991, 0xc992, 0xc993, 0xc994, 0xc995, 0xc996, 0xc997, 0xc99a, 0xc99c, 0xc99e, 0xc99f, 0xc9a0, 0xc9a1, 0xc9a2, 0xc9a3, 0xc9a4, 0xc9a5, 0xc9a6, 0xc9a7, 0xc9a8, 0xc9a9, 0xc9aa, 0xc9ab, 0xc9ac, 0xc9ad, 0xc9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9af, 0xc9b0, 0xc9b1, 0xc9b2, 0xc9b3, 0xc9b4, 0xc9b5, 0xc9b6, 0xc9b7, 0xc9b8, 0xc9b9, 0xc9ba, 0xc9bb, 0xc9bc, 0xc9bd, 0xc9be, 0xc9bf, 0xc9c2, 0xc9c3, 0xc9c5, 0xc9c6, 0xc9c9, 0xc9cb, 0xc9cc, 0xc9cd, 0xc9ce, 0xc9cf, 0xc9d2, 0xc9d4, 0xc9d7, 0xc9d8, 0xc9db, 0xff01, 0xff02, 0xff03, 0xff04, 0xff05, 0xff06, 0xff07, 0xff08, 0xff09, 0xff0a, 0xff0b, 0xff0c, 0xff0d, 0xff0e, 0xff0f, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0xff1a, 0xff1b, 0xff1c, 0xff1d, 0xff1e, 0xff1f, 0xff20, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff3b, 0xffe6, 0xff3d, 0xff3e, 0xff3f, 0xff40, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57, 0xff58, 0xff59, 0xff5a, 0xff5b, 0xff5c, 0xff5d, 0xffe3, 0x003f, /* lead byte a4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9de, 0xc9df, 0xc9e1, 0xc9e3, 0xc9e5, 0xc9e6, 0xc9e8, 0xc9e9, 0xc9ea, 0xc9eb, 0xc9ee, 0xc9f2, 0xc9f3, 0xc9f4, 0xc9f5, 0xc9f6, 0xc9f7, 0xc9fa, 0xc9fb, 0xc9fd, 0xc9fe, 0xc9ff, 0xca01, 0xca02, 0xca03, 0xca04, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xca05, 0xca06, 0xca07, 0xca0a, 0xca0e, 0xca0f, 0xca10, 0xca11, 0xca12, 0xca13, 0xca15, 0xca16, 0xca17, 0xca19, 0xca1a, 0xca1b, 0xca1c, 0xca1d, 0xca1e, 0xca1f, 0xca20, 0xca21, 0xca22, 0xca23, 0xca24, 0xca25, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xca26, 0xca27, 0xca28, 0xca2a, 0xca2b, 0xca2c, 0xca2d, 0xca2e, 0xca2f, 0xca30, 0xca31, 0xca32, 0xca33, 0xca34, 0xca35, 0xca36, 0xca37, 0xca38, 0xca39, 0xca3a, 0xca3b, 0xca3c, 0xca3d, 0xca3e, 0xca3f, 0xca40, 0xca41, 0xca42, 0xca43, 0xca44, 0xca45, 0xca46, 0x3131, 0x3132, 0x3133, 0x3134, 0x3135, 0x3136, 0x3137, 0x3138, 0x3139, 0x313a, 0x313b, 0x313c, 0x313d, 0x313e, 0x313f, 0x3140, 0x3141, 0x3142, 0x3143, 0x3144, 0x3145, 0x3146, 0x3147, 0x3148, 0x3149, 0x314a, 0x314b, 0x314c, 0x314d, 0x314e, 0x314f, 0x3150, 0x3151, 0x3152, 0x3153, 0x3154, 0x3155, 0x3156, 0x3157, 0x3158, 0x3159, 0x315a, 0x315b, 0x315c, 0x315d, 0x315e, 0x315f, 0x3160, 0x3161, 0x3162, 0x3163, 0x3164, 0x3165, 0x3166, 0x3167, 0x3168, 0x3169, 0x316a, 0x316b, 0x316c, 0x316d, 0x316e, 0x316f, 0x3170, 0x3171, 0x3172, 0x3173, 0x3174, 0x3175, 0x3176, 0x3177, 0x3178, 0x3179, 0x317a, 0x317b, 0x317c, 0x317d, 0x317e, 0x317f, 0x3180, 0x3181, 0x3182, 0x3183, 0x3184, 0x3185, 0x3186, 0x3187, 0x3188, 0x3189, 0x318a, 0x318b, 0x318c, 0x318d, 0x318e, 0x003f, /* lead byte a5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xca47, 0xca48, 0xca49, 0xca4a, 0xca4b, 0xca4e, 0xca4f, 0xca51, 0xca52, 0xca53, 0xca55, 0xca56, 0xca57, 0xca58, 0xca59, 0xca5a, 0xca5b, 0xca5e, 0xca62, 0xca63, 0xca64, 0xca65, 0xca66, 0xca67, 0xca69, 0xca6a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xca6b, 0xca6c, 0xca6d, 0xca6e, 0xca6f, 0xca70, 0xca71, 0xca72, 0xca73, 0xca74, 0xca75, 0xca76, 0xca77, 0xca78, 0xca79, 0xca7a, 0xca7b, 0xca7c, 0xca7e, 0xca7f, 0xca80, 0xca81, 0xca82, 0xca83, 0xca85, 0xca86, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xca87, 0xca88, 0xca89, 0xca8a, 0xca8b, 0xca8c, 0xca8d, 0xca8e, 0xca8f, 0xca90, 0xca91, 0xca92, 0xca93, 0xca94, 0xca95, 0xca96, 0xca97, 0xca99, 0xca9a, 0xca9b, 0xca9c, 0xca9d, 0xca9e, 0xca9f, 0xcaa0, 0xcaa1, 0xcaa2, 0xcaa3, 0xcaa4, 0xcaa5, 0xcaa6, 0xcaa7, 0x2170, 0x2171, 0x2172, 0x2173, 0x2174, 0x2175, 0x2176, 0x2177, 0x2178, 0x2179, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaa8, 0xcaa9, 0xcaaa, 0xcaab, 0xcaac, 0xcaad, 0xcaae, 0xcaaf, 0xcab0, 0xcab1, 0xcab2, 0xcab3, 0xcab4, 0xcab5, 0xcab6, 0xcab7, 0xcab8, 0xcab9, 0xcaba, 0xcabb, 0xcabe, 0xcabf, 0xcac1, 0xcac2, 0xcac3, 0xcac5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac6, 0xcac7, 0xcac8, 0xcac9, 0xcaca, 0xcacb, 0xcace, 0xcad0, 0xcad2, 0xcad4, 0xcad5, 0xcad6, 0xcad7, 0xcada, 0xcadb, 0xcadc, 0xcadd, 0xcade, 0xcadf, 0xcae1, 0xcae2, 0xcae3, 0xcae4, 0xcae5, 0xcae6, 0xcae7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae8, 0xcae9, 0xcaea, 0xcaeb, 0xcaed, 0xcaee, 0xcaef, 0xcaf0, 0xcaf1, 0xcaf2, 0xcaf3, 0xcaf5, 0xcaf6, 0xcaf7, 0xcaf8, 0xcaf9, 0xcafa, 0xcafb, 0xcafc, 0xcafd, 0xcafe, 0xcaff, 0xcb00, 0xcb01, 0xcb02, 0xcb03, 0xcb04, 0xcb05, 0xcb06, 0xcb07, 0xcb09, 0xcb0a, 0x2500, 0x2502, 0x250c, 0x2510, 0x2518, 0x2514, 0x251c, 0x252c, 0x2524, 0x2534, 0x253c, 0x2501, 0x2503, 0x250f, 0x2513, 0x251b, 0x2517, 0x2523, 0x2533, 0x252b, 0x253b, 0x254b, 0x2520, 0x252f, 0x2528, 0x2537, 0x253f, 0x251d, 0x2530, 0x2525, 0x2538, 0x2542, 0x2512, 0x2511, 0x251a, 0x2519, 0x2516, 0x2515, 0x250e, 0x250d, 0x251e, 0x251f, 0x2521, 0x2522, 0x2526, 0x2527, 0x2529, 0x252a, 0x252d, 0x252e, 0x2531, 0x2532, 0x2535, 0x2536, 0x2539, 0x253a, 0x253d, 0x253e, 0x2540, 0x2541, 0x2543, 0x2544, 0x2545, 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcb0b, 0xcb0c, 0xcb0d, 0xcb0e, 0xcb0f, 0xcb11, 0xcb12, 0xcb13, 0xcb15, 0xcb16, 0xcb17, 0xcb19, 0xcb1a, 0xcb1b, 0xcb1c, 0xcb1d, 0xcb1e, 0xcb1f, 0xcb22, 0xcb23, 0xcb24, 0xcb25, 0xcb26, 0xcb27, 0xcb28, 0xcb29, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcb2a, 0xcb2b, 0xcb2c, 0xcb2d, 0xcb2e, 0xcb2f, 0xcb30, 0xcb31, 0xcb32, 0xcb33, 0xcb34, 0xcb35, 0xcb36, 0xcb37, 0xcb38, 0xcb39, 0xcb3a, 0xcb3b, 0xcb3c, 0xcb3d, 0xcb3e, 0xcb3f, 0xcb40, 0xcb42, 0xcb43, 0xcb44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcb45, 0xcb46, 0xcb47, 0xcb4a, 0xcb4b, 0xcb4d, 0xcb4e, 0xcb4f, 0xcb51, 0xcb52, 0xcb53, 0xcb54, 0xcb55, 0xcb56, 0xcb57, 0xcb5a, 0xcb5b, 0xcb5c, 0xcb5e, 0xcb5f, 0xcb60, 0xcb61, 0xcb62, 0xcb63, 0xcb65, 0xcb66, 0xcb67, 0xcb68, 0xcb69, 0xcb6a, 0xcb6b, 0xcb6c, 0x3395, 0x3396, 0x3397, 0x2113, 0x3398, 0x33c4, 0x33a3, 0x33a4, 0x33a5, 0x33a6, 0x3399, 0x339a, 0x339b, 0x339c, 0x339d, 0x339e, 0x339f, 0x33a0, 0x33a1, 0x33a2, 0x33ca, 0x338d, 0x338e, 0x338f, 0x33cf, 0x3388, 0x3389, 0x33c8, 0x33a7, 0x33a8, 0x33b0, 0x33b1, 0x33b2, 0x33b3, 0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9, 0x3380, 0x3381, 0x3382, 0x3383, 0x3384, 0x33ba, 0x33bb, 0x33bc, 0x33bd, 0x33be, 0x33bf, 0x3390, 0x3391, 0x3392, 0x3393, 0x3394, 0x2126, 0x33c0, 0x33c1, 0x338a, 0x338b, 0x338c, 0x33d6, 0x33c5, 0x33ad, 0x33ae, 0x33af, 0x33db, 0x33a9, 0x33aa, 0x33ab, 0x33ac, 0x33dd, 0x33d0, 0x33d3, 0x33c3, 0x33c9, 0x33dc, 0x33c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcb6d, 0xcb6e, 0xcb6f, 0xcb70, 0xcb71, 0xcb72, 0xcb73, 0xcb74, 0xcb75, 0xcb76, 0xcb77, 0xcb7a, 0xcb7b, 0xcb7c, 0xcb7d, 0xcb7e, 0xcb7f, 0xcb80, 0xcb81, 0xcb82, 0xcb83, 0xcb84, 0xcb85, 0xcb86, 0xcb87, 0xcb88, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcb89, 0xcb8a, 0xcb8b, 0xcb8c, 0xcb8d, 0xcb8e, 0xcb8f, 0xcb90, 0xcb91, 0xcb92, 0xcb93, 0xcb94, 0xcb95, 0xcb96, 0xcb97, 0xcb98, 0xcb99, 0xcb9a, 0xcb9b, 0xcb9d, 0xcb9e, 0xcb9f, 0xcba0, 0xcba1, 0xcba2, 0xcba3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba4, 0xcba5, 0xcba6, 0xcba7, 0xcba8, 0xcba9, 0xcbaa, 0xcbab, 0xcbac, 0xcbad, 0xcbae, 0xcbaf, 0xcbb0, 0xcbb1, 0xcbb2, 0xcbb3, 0xcbb4, 0xcbb5, 0xcbb6, 0xcbb7, 0xcbb9, 0xcbba, 0xcbbb, 0xcbbc, 0xcbbd, 0xcbbe, 0xcbbf, 0xcbc0, 0xcbc1, 0xcbc2, 0xcbc3, 0xcbc4, 0x00c6, 0x00d0, 0x00aa, 0x0126, 0x003f, 0x0132, 0x003f, 0x013f, 0x0141, 0x00d8, 0x0152, 0x00ba, 0x00de, 0x0166, 0x014a, 0x003f, 0x3260, 0x3261, 0x3262, 0x3263, 0x3264, 0x3265, 0x3266, 0x3267, 0x3268, 0x3269, 0x326a, 0x326b, 0x326c, 0x326d, 0x326e, 0x326f, 0x3270, 0x3271, 0x3272, 0x3273, 0x3274, 0x3275, 0x3276, 0x3277, 0x3278, 0x3279, 0x327a, 0x327b, 0x24d0, 0x24d1, 0x24d2, 0x24d3, 0x24d4, 0x24d5, 0x24d6, 0x24d7, 0x24d8, 0x24d9, 0x24da, 0x24db, 0x24dc, 0x24dd, 0x24de, 0x24df, 0x24e0, 0x24e1, 0x24e2, 0x24e3, 0x24e4, 0x24e5, 0x24e6, 0x24e7, 0x24e8, 0x24e9, 0x2460, 0x2461, 0x2462, 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a, 0x246b, 0x246c, 0x246d, 0x246e, 0x00bd, 0x2153, 0x2154, 0x00bc, 0x00be, 0x215b, 0x215c, 0x215d, 0x215e, 0x003f, /* lead byte a9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbc5, 0xcbc6, 0xcbc7, 0xcbc8, 0xcbc9, 0xcbca, 0xcbcb, 0xcbcc, 0xcbcd, 0xcbce, 0xcbcf, 0xcbd0, 0xcbd1, 0xcbd2, 0xcbd3, 0xcbd5, 0xcbd6, 0xcbd7, 0xcbd8, 0xcbd9, 0xcbda, 0xcbdb, 0xcbdc, 0xcbdd, 0xcbde, 0xcbdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe0, 0xcbe1, 0xcbe2, 0xcbe3, 0xcbe5, 0xcbe6, 0xcbe8, 0xcbea, 0xcbeb, 0xcbec, 0xcbed, 0xcbee, 0xcbef, 0xcbf0, 0xcbf1, 0xcbf2, 0xcbf3, 0xcbf4, 0xcbf5, 0xcbf6, 0xcbf7, 0xcbf8, 0xcbf9, 0xcbfa, 0xcbfb, 0xcbfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbfd, 0xcbfe, 0xcbff, 0xcc00, 0xcc01, 0xcc02, 0xcc03, 0xcc04, 0xcc05, 0xcc06, 0xcc07, 0xcc08, 0xcc09, 0xcc0a, 0xcc0b, 0xcc0e, 0xcc0f, 0xcc11, 0xcc12, 0xcc13, 0xcc15, 0xcc16, 0xcc17, 0xcc18, 0xcc19, 0xcc1a, 0xcc1b, 0xcc1e, 0xcc1f, 0xcc20, 0xcc23, 0xcc24, 0x00e6, 0x0111, 0x00f0, 0x0127, 0x0131, 0x0133, 0x0138, 0x0140, 0x0142, 0x00f8, 0x0153, 0x00df, 0x00fe, 0x0167, 0x014b, 0x0149, 0x3200, 0x3201, 0x3202, 0x3203, 0x3204, 0x3205, 0x3206, 0x3207, 0x3208, 0x3209, 0x320a, 0x320b, 0x320c, 0x320d, 0x320e, 0x320f, 0x3210, 0x3211, 0x3212, 0x3213, 0x3214, 0x3215, 0x3216, 0x3217, 0x3218, 0x3219, 0x321a, 0x321b, 0x249c, 0x249d, 0x249e, 0x249f, 0x24a0, 0x24a1, 0x24a2, 0x24a3, 0x24a4, 0x24a5, 0x24a6, 0x24a7, 0x24a8, 0x24a9, 0x24aa, 0x24ab, 0x24ac, 0x24ad, 0x24ae, 0x24af, 0x24b0, 0x24b1, 0x24b2, 0x24b3, 0x24b4, 0x24b5, 0x2474, 0x2475, 0x2476, 0x2477, 0x2478, 0x2479, 0x247a, 0x247b, 0x247c, 0x247d, 0x247e, 0x247f, 0x2480, 0x2481, 0x2482, 0x00b9, 0x00b2, 0x00b3, 0x2074, 0x207f, 0x2081, 0x2082, 0x2083, 0x2084, 0x003f, /* lead byte aa */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc25, 0xcc26, 0xcc2a, 0xcc2b, 0xcc2d, 0xcc2f, 0xcc31, 0xcc32, 0xcc33, 0xcc34, 0xcc35, 0xcc36, 0xcc37, 0xcc3a, 0xcc3f, 0xcc40, 0xcc41, 0xcc42, 0xcc43, 0xcc46, 0xcc47, 0xcc49, 0xcc4a, 0xcc4b, 0xcc4d, 0xcc4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc4f, 0xcc50, 0xcc51, 0xcc52, 0xcc53, 0xcc56, 0xcc5a, 0xcc5b, 0xcc5c, 0xcc5d, 0xcc5e, 0xcc5f, 0xcc61, 0xcc62, 0xcc63, 0xcc65, 0xcc67, 0xcc69, 0xcc6a, 0xcc6b, 0xcc6c, 0xcc6d, 0xcc6e, 0xcc6f, 0xcc71, 0xcc72, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc73, 0xcc74, 0xcc76, 0xcc77, 0xcc78, 0xcc79, 0xcc7a, 0xcc7b, 0xcc7c, 0xcc7d, 0xcc7e, 0xcc7f, 0xcc80, 0xcc81, 0xcc82, 0xcc83, 0xcc84, 0xcc85, 0xcc86, 0xcc87, 0xcc88, 0xcc89, 0xcc8a, 0xcc8b, 0xcc8c, 0xcc8d, 0xcc8e, 0xcc8f, 0xcc90, 0xcc91, 0xcc92, 0xcc93, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 0x3090, 0x3091, 0x3092, 0x3093, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ab */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc94, 0xcc95, 0xcc96, 0xcc97, 0xcc9a, 0xcc9b, 0xcc9d, 0xcc9e, 0xcc9f, 0xcca1, 0xcca2, 0xcca3, 0xcca4, 0xcca5, 0xcca6, 0xcca7, 0xccaa, 0xccae, 0xccaf, 0xccb0, 0xccb1, 0xccb2, 0xccb3, 0xccb6, 0xccb7, 0xccb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccba, 0xccbb, 0xccbd, 0xccbe, 0xccbf, 0xccc0, 0xccc1, 0xccc2, 0xccc3, 0xccc6, 0xccc8, 0xccca, 0xcccb, 0xcccc, 0xcccd, 0xccce, 0xcccf, 0xccd1, 0xccd2, 0xccd3, 0xccd5, 0xccd6, 0xccd7, 0xccd8, 0xccd9, 0xccda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccdb, 0xccdc, 0xccdd, 0xccde, 0xccdf, 0xcce0, 0xcce1, 0xcce2, 0xcce3, 0xcce5, 0xcce6, 0xcce7, 0xcce8, 0xcce9, 0xccea, 0xcceb, 0xcced, 0xccee, 0xccef, 0xccf1, 0xccf2, 0xccf3, 0xccf4, 0xccf5, 0xccf6, 0xccf7, 0xccf8, 0xccf9, 0xccfa, 0xccfb, 0xccfc, 0xccfd, 0x30a1, 0x30a2, 0x30a3, 0x30a4, 0x30a5, 0x30a6, 0x30a7, 0x30a8, 0x30a9, 0x30aa, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c3, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30ca, 0x30cb, 0x30cc, 0x30cd, 0x30ce, 0x30cf, 0x30d0, 0x30d1, 0x30d2, 0x30d3, 0x30d4, 0x30d5, 0x30d6, 0x30d7, 0x30d8, 0x30d9, 0x30da, 0x30db, 0x30dc, 0x30dd, 0x30de, 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e3, 0x30e4, 0x30e5, 0x30e6, 0x30e7, 0x30e8, 0x30e9, 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ee, 0x30ef, 0x30f0, 0x30f1, 0x30f2, 0x30f3, 0x30f4, 0x30f5, 0x30f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ac */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccfe, 0xccff, 0xcd00, 0xcd02, 0xcd03, 0xcd04, 0xcd05, 0xcd06, 0xcd07, 0xcd0a, 0xcd0b, 0xcd0d, 0xcd0e, 0xcd0f, 0xcd11, 0xcd12, 0xcd13, 0xcd14, 0xcd15, 0xcd16, 0xcd17, 0xcd1a, 0xcd1c, 0xcd1e, 0xcd1f, 0xcd20, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd21, 0xcd22, 0xcd23, 0xcd25, 0xcd26, 0xcd27, 0xcd29, 0xcd2a, 0xcd2b, 0xcd2d, 0xcd2e, 0xcd2f, 0xcd30, 0xcd31, 0xcd32, 0xcd33, 0xcd34, 0xcd35, 0xcd36, 0xcd37, 0xcd38, 0xcd3a, 0xcd3b, 0xcd3c, 0xcd3d, 0xcd3e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd3f, 0xcd40, 0xcd41, 0xcd42, 0xcd43, 0xcd44, 0xcd45, 0xcd46, 0xcd47, 0xcd48, 0xcd49, 0xcd4a, 0xcd4b, 0xcd4c, 0xcd4d, 0xcd4e, 0xcd4f, 0xcd50, 0xcd51, 0xcd52, 0xcd53, 0xcd54, 0xcd55, 0xcd56, 0xcd57, 0xcd58, 0xcd59, 0xcd5a, 0xcd5b, 0xcd5d, 0xcd5e, 0xcd5f, 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0401, 0x0416, 0x0417, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, 0x041f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042a, 0x042b, 0x042c, 0x042d, 0x042e, 0x042f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0451, 0x0436, 0x0437, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, 0x043f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044a, 0x044b, 0x044c, 0x044d, 0x044e, 0x044f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ad */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd61, 0xcd62, 0xcd63, 0xcd65, 0xcd66, 0xcd67, 0xcd68, 0xcd69, 0xcd6a, 0xcd6b, 0xcd6e, 0xcd70, 0xcd72, 0xcd73, 0xcd74, 0xcd75, 0xcd76, 0xcd77, 0xcd79, 0xcd7a, 0xcd7b, 0xcd7c, 0xcd7d, 0xcd7e, 0xcd7f, 0xcd80, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd81, 0xcd82, 0xcd83, 0xcd84, 0xcd85, 0xcd86, 0xcd87, 0xcd89, 0xcd8a, 0xcd8b, 0xcd8c, 0xcd8d, 0xcd8e, 0xcd8f, 0xcd90, 0xcd91, 0xcd92, 0xcd93, 0xcd96, 0xcd97, 0xcd99, 0xcd9a, 0xcd9b, 0xcd9d, 0xcd9e, 0xcd9f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda0, 0xcda1, 0xcda2, 0xcda3, 0xcda6, 0xcda8, 0xcdaa, 0xcdab, 0xcdac, 0xcdad, 0xcdae, 0xcdaf, 0xcdb1, 0xcdb2, 0xcdb3, 0xcdb4, 0xcdb5, 0xcdb6, 0xcdb7, 0xcdb8, 0xcdb9, 0xcdba, 0xcdbb, 0xcdbc, 0xcdbd, 0xcdbe, 0xcdbf, 0xcdc0, 0xcdc1, 0xcdc2, 0xcdc3, 0xcdc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte ae */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc6, 0xcdc7, 0xcdc8, 0xcdc9, 0xcdca, 0xcdcb, 0xcdcd, 0xcdce, 0xcdcf, 0xcdd1, 0xcdd2, 0xcdd3, 0xcdd4, 0xcdd5, 0xcdd6, 0xcdd7, 0xcdd8, 0xcdd9, 0xcdda, 0xcddb, 0xcddc, 0xcddd, 0xcdde, 0xcddf, 0xcde0, 0xcde1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde2, 0xcde3, 0xcde4, 0xcde5, 0xcde6, 0xcde7, 0xcde9, 0xcdea, 0xcdeb, 0xcded, 0xcdee, 0xcdef, 0xcdf1, 0xcdf2, 0xcdf3, 0xcdf4, 0xcdf5, 0xcdf6, 0xcdf7, 0xcdfa, 0xcdfc, 0xcdfe, 0xcdff, 0xce00, 0xce01, 0xce02, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce03, 0xce05, 0xce06, 0xce07, 0xce09, 0xce0a, 0xce0b, 0xce0d, 0xce0e, 0xce0f, 0xce10, 0xce11, 0xce12, 0xce13, 0xce15, 0xce16, 0xce17, 0xce18, 0xce1a, 0xce1b, 0xce1c, 0xce1d, 0xce1e, 0xce1f, 0xce22, 0xce23, 0xce25, 0xce26, 0xce27, 0xce29, 0xce2a, 0xce2b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte af */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce2c, 0xce2d, 0xce2e, 0xce2f, 0xce32, 0xce34, 0xce36, 0xce37, 0xce38, 0xce39, 0xce3a, 0xce3b, 0xce3c, 0xce3d, 0xce3e, 0xce3f, 0xce40, 0xce41, 0xce42, 0xce43, 0xce44, 0xce45, 0xce46, 0xce47, 0xce48, 0xce49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce4a, 0xce4b, 0xce4c, 0xce4d, 0xce4e, 0xce4f, 0xce50, 0xce51, 0xce52, 0xce53, 0xce54, 0xce55, 0xce56, 0xce57, 0xce5a, 0xce5b, 0xce5d, 0xce5e, 0xce62, 0xce63, 0xce64, 0xce65, 0xce66, 0xce67, 0xce6a, 0xce6c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce6e, 0xce6f, 0xce70, 0xce71, 0xce72, 0xce73, 0xce76, 0xce77, 0xce79, 0xce7a, 0xce7b, 0xce7d, 0xce7e, 0xce7f, 0xce80, 0xce81, 0xce82, 0xce83, 0xce86, 0xce88, 0xce8a, 0xce8b, 0xce8c, 0xce8d, 0xce8e, 0xce8f, 0xce92, 0xce93, 0xce95, 0xce96, 0xce97, 0xce99, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte b0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce9a, 0xce9b, 0xce9c, 0xce9d, 0xce9e, 0xce9f, 0xcea2, 0xcea6, 0xcea7, 0xcea8, 0xcea9, 0xceaa, 0xceab, 0xceae, 0xceaf, 0xceb0, 0xceb1, 0xceb2, 0xceb3, 0xceb4, 0xceb5, 0xceb6, 0xceb7, 0xceb8, 0xceb9, 0xceba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcebb, 0xcebc, 0xcebd, 0xcebe, 0xcebf, 0xcec0, 0xcec2, 0xcec3, 0xcec4, 0xcec5, 0xcec6, 0xcec7, 0xcec8, 0xcec9, 0xceca, 0xcecb, 0xcecc, 0xcecd, 0xcece, 0xcecf, 0xced0, 0xced1, 0xced2, 0xced3, 0xced4, 0xced5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced6, 0xced7, 0xced8, 0xced9, 0xceda, 0xcedb, 0xcedc, 0xcedd, 0xcede, 0xcedf, 0xcee0, 0xcee1, 0xcee2, 0xcee3, 0xcee6, 0xcee7, 0xcee9, 0xceea, 0xceed, 0xceee, 0xceef, 0xcef0, 0xcef1, 0xcef2, 0xcef3, 0xcef6, 0xcefa, 0xcefb, 0xcefc, 0xcefd, 0xcefe, 0xceff, 0xac00, 0xac01, 0xac04, 0xac07, 0xac08, 0xac09, 0xac0a, 0xac10, 0xac11, 0xac12, 0xac13, 0xac14, 0xac15, 0xac16, 0xac17, 0xac19, 0xac1a, 0xac1b, 0xac1c, 0xac1d, 0xac20, 0xac24, 0xac2c, 0xac2d, 0xac2f, 0xac30, 0xac31, 0xac38, 0xac39, 0xac3c, 0xac40, 0xac4b, 0xac4d, 0xac54, 0xac58, 0xac5c, 0xac70, 0xac71, 0xac74, 0xac77, 0xac78, 0xac7a, 0xac80, 0xac81, 0xac83, 0xac84, 0xac85, 0xac86, 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac90, 0xac94, 0xac9c, 0xac9d, 0xac9f, 0xaca0, 0xaca1, 0xaca8, 0xaca9, 0xacaa, 0xacac, 0xacaf, 0xacb0, 0xacb8, 0xacb9, 0xacbb, 0xacbc, 0xacbd, 0xacc1, 0xacc4, 0xacc8, 0xaccc, 0xacd5, 0xacd7, 0xace0, 0xace1, 0xace4, 0xace7, 0xace8, 0xacea, 0xacec, 0xacef, 0xacf0, 0xacf1, 0xacf3, 0xacf5, 0xacf6, 0xacfc, 0xacfd, 0xad00, 0xad04, 0xad06, 0x003f, /* lead byte b1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf02, 0xcf03, 0xcf05, 0xcf06, 0xcf07, 0xcf09, 0xcf0a, 0xcf0b, 0xcf0c, 0xcf0d, 0xcf0e, 0xcf0f, 0xcf12, 0xcf14, 0xcf16, 0xcf17, 0xcf18, 0xcf19, 0xcf1a, 0xcf1b, 0xcf1d, 0xcf1e, 0xcf1f, 0xcf21, 0xcf22, 0xcf23, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf25, 0xcf26, 0xcf27, 0xcf28, 0xcf29, 0xcf2a, 0xcf2b, 0xcf2e, 0xcf32, 0xcf33, 0xcf34, 0xcf35, 0xcf36, 0xcf37, 0xcf39, 0xcf3a, 0xcf3b, 0xcf3c, 0xcf3d, 0xcf3e, 0xcf3f, 0xcf40, 0xcf41, 0xcf42, 0xcf43, 0xcf44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf45, 0xcf46, 0xcf47, 0xcf48, 0xcf49, 0xcf4a, 0xcf4b, 0xcf4c, 0xcf4d, 0xcf4e, 0xcf4f, 0xcf50, 0xcf51, 0xcf52, 0xcf53, 0xcf56, 0xcf57, 0xcf59, 0xcf5a, 0xcf5b, 0xcf5d, 0xcf5e, 0xcf5f, 0xcf60, 0xcf61, 0xcf62, 0xcf63, 0xcf66, 0xcf68, 0xcf6a, 0xcf6b, 0xcf6c, 0xad0c, 0xad0d, 0xad0f, 0xad11, 0xad18, 0xad1c, 0xad20, 0xad29, 0xad2c, 0xad2d, 0xad34, 0xad35, 0xad38, 0xad3c, 0xad44, 0xad45, 0xad47, 0xad49, 0xad50, 0xad54, 0xad58, 0xad61, 0xad63, 0xad6c, 0xad6d, 0xad70, 0xad73, 0xad74, 0xad75, 0xad76, 0xad7b, 0xad7c, 0xad7d, 0xad7f, 0xad81, 0xad82, 0xad88, 0xad89, 0xad8c, 0xad90, 0xad9c, 0xad9d, 0xada4, 0xadb7, 0xadc0, 0xadc1, 0xadc4, 0xadc8, 0xadd0, 0xadd1, 0xadd3, 0xaddc, 0xade0, 0xade4, 0xadf8, 0xadf9, 0xadfc, 0xadff, 0xae00, 0xae01, 0xae08, 0xae09, 0xae0b, 0xae0d, 0xae14, 0xae30, 0xae31, 0xae34, 0xae37, 0xae38, 0xae3a, 0xae40, 0xae41, 0xae43, 0xae45, 0xae46, 0xae4a, 0xae4c, 0xae4d, 0xae4e, 0xae50, 0xae54, 0xae56, 0xae5c, 0xae5d, 0xae5f, 0xae60, 0xae61, 0xae65, 0xae68, 0xae69, 0xae6c, 0xae70, 0xae78, 0x003f, /* lead byte b2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf6d, 0xcf6e, 0xcf6f, 0xcf72, 0xcf73, 0xcf75, 0xcf76, 0xcf77, 0xcf79, 0xcf7a, 0xcf7b, 0xcf7c, 0xcf7d, 0xcf7e, 0xcf7f, 0xcf81, 0xcf82, 0xcf83, 0xcf84, 0xcf86, 0xcf87, 0xcf88, 0xcf89, 0xcf8a, 0xcf8b, 0xcf8d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf8e, 0xcf8f, 0xcf90, 0xcf91, 0xcf92, 0xcf93, 0xcf94, 0xcf95, 0xcf96, 0xcf97, 0xcf98, 0xcf99, 0xcf9a, 0xcf9b, 0xcf9c, 0xcf9d, 0xcf9e, 0xcf9f, 0xcfa0, 0xcfa2, 0xcfa3, 0xcfa4, 0xcfa5, 0xcfa6, 0xcfa7, 0xcfa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfaa, 0xcfab, 0xcfac, 0xcfad, 0xcfae, 0xcfaf, 0xcfb1, 0xcfb2, 0xcfb3, 0xcfb4, 0xcfb5, 0xcfb6, 0xcfb7, 0xcfb8, 0xcfb9, 0xcfba, 0xcfbb, 0xcfbc, 0xcfbd, 0xcfbe, 0xcfbf, 0xcfc0, 0xcfc1, 0xcfc2, 0xcfc3, 0xcfc5, 0xcfc6, 0xcfc7, 0xcfc8, 0xcfc9, 0xcfca, 0xcfcb, 0xae79, 0xae7b, 0xae7c, 0xae7d, 0xae84, 0xae85, 0xae8c, 0xaebc, 0xaebd, 0xaebe, 0xaec0, 0xaec4, 0xaecc, 0xaecd, 0xaecf, 0xaed0, 0xaed1, 0xaed8, 0xaed9, 0xaedc, 0xaee8, 0xaeeb, 0xaeed, 0xaef4, 0xaef8, 0xaefc, 0xaf07, 0xaf08, 0xaf0d, 0xaf10, 0xaf2c, 0xaf2d, 0xaf30, 0xaf32, 0xaf34, 0xaf3c, 0xaf3d, 0xaf3f, 0xaf41, 0xaf42, 0xaf43, 0xaf48, 0xaf49, 0xaf50, 0xaf5c, 0xaf5d, 0xaf64, 0xaf65, 0xaf79, 0xaf80, 0xaf84, 0xaf88, 0xaf90, 0xaf91, 0xaf95, 0xaf9c, 0xafb8, 0xafb9, 0xafbc, 0xafc0, 0xafc7, 0xafc8, 0xafc9, 0xafcb, 0xafcd, 0xafce, 0xafd4, 0xafdc, 0xafe8, 0xafe9, 0xaff0, 0xaff1, 0xaff4, 0xaff8, 0xb000, 0xb001, 0xb004, 0xb00c, 0xb010, 0xb014, 0xb01c, 0xb01d, 0xb028, 0xb044, 0xb045, 0xb048, 0xb04a, 0xb04c, 0xb04e, 0xb053, 0xb054, 0xb055, 0xb057, 0xb059, 0x003f, /* lead byte b3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfcc, 0xcfcd, 0xcfce, 0xcfcf, 0xcfd0, 0xcfd1, 0xcfd2, 0xcfd3, 0xcfd4, 0xcfd5, 0xcfd6, 0xcfd7, 0xcfd8, 0xcfd9, 0xcfda, 0xcfdb, 0xcfdc, 0xcfdd, 0xcfde, 0xcfdf, 0xcfe2, 0xcfe3, 0xcfe5, 0xcfe6, 0xcfe7, 0xcfe9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfea, 0xcfeb, 0xcfec, 0xcfed, 0xcfee, 0xcfef, 0xcff2, 0xcff4, 0xcff6, 0xcff7, 0xcff8, 0xcff9, 0xcffa, 0xcffb, 0xcffd, 0xcffe, 0xcfff, 0xd001, 0xd002, 0xd003, 0xd005, 0xd006, 0xd007, 0xd008, 0xd009, 0xd00a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd00b, 0xd00c, 0xd00d, 0xd00e, 0xd00f, 0xd010, 0xd012, 0xd013, 0xd014, 0xd015, 0xd016, 0xd017, 0xd019, 0xd01a, 0xd01b, 0xd01c, 0xd01d, 0xd01e, 0xd01f, 0xd020, 0xd021, 0xd022, 0xd023, 0xd024, 0xd025, 0xd026, 0xd027, 0xd028, 0xd029, 0xd02a, 0xd02b, 0xd02c, 0xb05d, 0xb07c, 0xb07d, 0xb080, 0xb084, 0xb08c, 0xb08d, 0xb08f, 0xb091, 0xb098, 0xb099, 0xb09a, 0xb09c, 0xb09f, 0xb0a0, 0xb0a1, 0xb0a2, 0xb0a8, 0xb0a9, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, 0xb0b1, 0xb0b3, 0xb0b4, 0xb0b5, 0xb0b8, 0xb0bc, 0xb0c4, 0xb0c5, 0xb0c7, 0xb0c8, 0xb0c9, 0xb0d0, 0xb0d1, 0xb0d4, 0xb0d8, 0xb0e0, 0xb0e5, 0xb108, 0xb109, 0xb10b, 0xb10c, 0xb110, 0xb112, 0xb113, 0xb118, 0xb119, 0xb11b, 0xb11c, 0xb11d, 0xb123, 0xb124, 0xb125, 0xb128, 0xb12c, 0xb134, 0xb135, 0xb137, 0xb138, 0xb139, 0xb140, 0xb141, 0xb144, 0xb148, 0xb150, 0xb151, 0xb154, 0xb155, 0xb158, 0xb15c, 0xb160, 0xb178, 0xb179, 0xb17c, 0xb180, 0xb182, 0xb188, 0xb189, 0xb18b, 0xb18d, 0xb192, 0xb193, 0xb194, 0xb198, 0xb19c, 0xb1a8, 0xb1cc, 0xb1d0, 0xb1d4, 0xb1dc, 0xb1dd, 0x003f, /* lead byte b4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd02e, 0xd02f, 0xd030, 0xd031, 0xd032, 0xd033, 0xd036, 0xd037, 0xd039, 0xd03a, 0xd03b, 0xd03d, 0xd03e, 0xd03f, 0xd040, 0xd041, 0xd042, 0xd043, 0xd046, 0xd048, 0xd04a, 0xd04b, 0xd04c, 0xd04d, 0xd04e, 0xd04f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd051, 0xd052, 0xd053, 0xd055, 0xd056, 0xd057, 0xd059, 0xd05a, 0xd05b, 0xd05c, 0xd05d, 0xd05e, 0xd05f, 0xd061, 0xd062, 0xd063, 0xd064, 0xd065, 0xd066, 0xd067, 0xd068, 0xd069, 0xd06a, 0xd06b, 0xd06e, 0xd06f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd071, 0xd072, 0xd073, 0xd075, 0xd076, 0xd077, 0xd078, 0xd079, 0xd07a, 0xd07b, 0xd07e, 0xd07f, 0xd080, 0xd082, 0xd083, 0xd084, 0xd085, 0xd086, 0xd087, 0xd088, 0xd089, 0xd08a, 0xd08b, 0xd08c, 0xd08d, 0xd08e, 0xd08f, 0xd090, 0xd091, 0xd092, 0xd093, 0xd094, 0xb1df, 0xb1e8, 0xb1e9, 0xb1ec, 0xb1f0, 0xb1f9, 0xb1fb, 0xb1fd, 0xb204, 0xb205, 0xb208, 0xb20b, 0xb20c, 0xb214, 0xb215, 0xb217, 0xb219, 0xb220, 0xb234, 0xb23c, 0xb258, 0xb25c, 0xb260, 0xb268, 0xb269, 0xb274, 0xb275, 0xb27c, 0xb284, 0xb285, 0xb289, 0xb290, 0xb291, 0xb294, 0xb298, 0xb299, 0xb29a, 0xb2a0, 0xb2a1, 0xb2a3, 0xb2a5, 0xb2a6, 0xb2aa, 0xb2ac, 0xb2b0, 0xb2b4, 0xb2c8, 0xb2c9, 0xb2cc, 0xb2d0, 0xb2d2, 0xb2d8, 0xb2d9, 0xb2db, 0xb2dd, 0xb2e2, 0xb2e4, 0xb2e5, 0xb2e6, 0xb2e8, 0xb2eb, 0xb2ec, 0xb2ed, 0xb2ee, 0xb2ef, 0xb2f3, 0xb2f4, 0xb2f5, 0xb2f7, 0xb2f8, 0xb2f9, 0xb2fa, 0xb2fb, 0xb2ff, 0xb300, 0xb301, 0xb304, 0xb308, 0xb310, 0xb311, 0xb313, 0xb314, 0xb315, 0xb31c, 0xb354, 0xb355, 0xb356, 0xb358, 0xb35b, 0xb35c, 0xb35e, 0xb35f, 0xb364, 0xb365, 0x003f, /* lead byte b5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd095, 0xd096, 0xd097, 0xd098, 0xd099, 0xd09a, 0xd09b, 0xd09c, 0xd09d, 0xd09e, 0xd09f, 0xd0a0, 0xd0a1, 0xd0a2, 0xd0a3, 0xd0a6, 0xd0a7, 0xd0a9, 0xd0aa, 0xd0ab, 0xd0ad, 0xd0ae, 0xd0af, 0xd0b0, 0xd0b1, 0xd0b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b3, 0xd0b6, 0xd0b8, 0xd0ba, 0xd0bb, 0xd0bc, 0xd0bd, 0xd0be, 0xd0bf, 0xd0c2, 0xd0c3, 0xd0c5, 0xd0c6, 0xd0c7, 0xd0ca, 0xd0cb, 0xd0cc, 0xd0cd, 0xd0ce, 0xd0cf, 0xd0d2, 0xd0d6, 0xd0d7, 0xd0d8, 0xd0d9, 0xd0da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0db, 0xd0de, 0xd0df, 0xd0e1, 0xd0e2, 0xd0e3, 0xd0e5, 0xd0e6, 0xd0e7, 0xd0e8, 0xd0e9, 0xd0ea, 0xd0eb, 0xd0ee, 0xd0f2, 0xd0f3, 0xd0f4, 0xd0f5, 0xd0f6, 0xd0f7, 0xd0f9, 0xd0fa, 0xd0fb, 0xd0fc, 0xd0fd, 0xd0fe, 0xd0ff, 0xd100, 0xd101, 0xd102, 0xd103, 0xd104, 0xb367, 0xb369, 0xb36b, 0xb36e, 0xb370, 0xb371, 0xb374, 0xb378, 0xb380, 0xb381, 0xb383, 0xb384, 0xb385, 0xb38c, 0xb390, 0xb394, 0xb3a0, 0xb3a1, 0xb3a8, 0xb3ac, 0xb3c4, 0xb3c5, 0xb3c8, 0xb3cb, 0xb3cc, 0xb3ce, 0xb3d0, 0xb3d4, 0xb3d5, 0xb3d7, 0xb3d9, 0xb3db, 0xb3dd, 0xb3e0, 0xb3e4, 0xb3e8, 0xb3fc, 0xb410, 0xb418, 0xb41c, 0xb420, 0xb428, 0xb429, 0xb42b, 0xb434, 0xb450, 0xb451, 0xb454, 0xb458, 0xb460, 0xb461, 0xb463, 0xb465, 0xb46c, 0xb480, 0xb488, 0xb49d, 0xb4a4, 0xb4a8, 0xb4ac, 0xb4b5, 0xb4b7, 0xb4b9, 0xb4c0, 0xb4c4, 0xb4c8, 0xb4d0, 0xb4d5, 0xb4dc, 0xb4dd, 0xb4e0, 0xb4e3, 0xb4e4, 0xb4e6, 0xb4ec, 0xb4ed, 0xb4ef, 0xb4f1, 0xb4f8, 0xb514, 0xb515, 0xb518, 0xb51b, 0xb51c, 0xb524, 0xb525, 0xb527, 0xb528, 0xb529, 0xb52a, 0xb530, 0xb531, 0xb534, 0xb538, 0x003f, /* lead byte b6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd105, 0xd106, 0xd107, 0xd108, 0xd109, 0xd10a, 0xd10b, 0xd10c, 0xd10e, 0xd10f, 0xd110, 0xd111, 0xd112, 0xd113, 0xd114, 0xd115, 0xd116, 0xd117, 0xd118, 0xd119, 0xd11a, 0xd11b, 0xd11c, 0xd11d, 0xd11e, 0xd11f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd120, 0xd121, 0xd122, 0xd123, 0xd124, 0xd125, 0xd126, 0xd127, 0xd128, 0xd129, 0xd12a, 0xd12b, 0xd12c, 0xd12d, 0xd12e, 0xd12f, 0xd132, 0xd133, 0xd135, 0xd136, 0xd137, 0xd139, 0xd13b, 0xd13c, 0xd13d, 0xd13e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd13f, 0xd142, 0xd146, 0xd147, 0xd148, 0xd149, 0xd14a, 0xd14b, 0xd14e, 0xd14f, 0xd151, 0xd152, 0xd153, 0xd155, 0xd156, 0xd157, 0xd158, 0xd159, 0xd15a, 0xd15b, 0xd15e, 0xd160, 0xd162, 0xd163, 0xd164, 0xd165, 0xd166, 0xd167, 0xd169, 0xd16a, 0xd16b, 0xd16d, 0xb540, 0xb541, 0xb543, 0xb544, 0xb545, 0xb54b, 0xb54c, 0xb54d, 0xb550, 0xb554, 0xb55c, 0xb55d, 0xb55f, 0xb560, 0xb561, 0xb5a0, 0xb5a1, 0xb5a4, 0xb5a8, 0xb5aa, 0xb5ab, 0xb5b0, 0xb5b1, 0xb5b3, 0xb5b4, 0xb5b5, 0xb5bb, 0xb5bc, 0xb5bd, 0xb5c0, 0xb5c4, 0xb5cc, 0xb5cd, 0xb5cf, 0xb5d0, 0xb5d1, 0xb5d8, 0xb5ec, 0xb610, 0xb611, 0xb614, 0xb618, 0xb625, 0xb62c, 0xb634, 0xb648, 0xb664, 0xb668, 0xb69c, 0xb69d, 0xb6a0, 0xb6a4, 0xb6ab, 0xb6ac, 0xb6b1, 0xb6d4, 0xb6f0, 0xb6f4, 0xb6f8, 0xb700, 0xb701, 0xb705, 0xb728, 0xb729, 0xb72c, 0xb72f, 0xb730, 0xb738, 0xb739, 0xb73b, 0xb744, 0xb748, 0xb74c, 0xb754, 0xb755, 0xb760, 0xb764, 0xb768, 0xb770, 0xb771, 0xb773, 0xb775, 0xb77c, 0xb77d, 0xb780, 0xb784, 0xb78c, 0xb78d, 0xb78f, 0xb790, 0xb791, 0xb792, 0xb796, 0xb797, 0x003f, /* lead byte b7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd16e, 0xd16f, 0xd170, 0xd171, 0xd172, 0xd173, 0xd174, 0xd175, 0xd176, 0xd177, 0xd178, 0xd179, 0xd17a, 0xd17b, 0xd17d, 0xd17e, 0xd17f, 0xd180, 0xd181, 0xd182, 0xd183, 0xd185, 0xd186, 0xd187, 0xd189, 0xd18a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd18b, 0xd18c, 0xd18d, 0xd18e, 0xd18f, 0xd190, 0xd191, 0xd192, 0xd193, 0xd194, 0xd195, 0xd196, 0xd197, 0xd198, 0xd199, 0xd19a, 0xd19b, 0xd19c, 0xd19d, 0xd19e, 0xd19f, 0xd1a2, 0xd1a3, 0xd1a5, 0xd1a6, 0xd1a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a9, 0xd1aa, 0xd1ab, 0xd1ac, 0xd1ad, 0xd1ae, 0xd1af, 0xd1b2, 0xd1b4, 0xd1b6, 0xd1b7, 0xd1b8, 0xd1b9, 0xd1bb, 0xd1bd, 0xd1be, 0xd1bf, 0xd1c1, 0xd1c2, 0xd1c3, 0xd1c4, 0xd1c5, 0xd1c6, 0xd1c7, 0xd1c8, 0xd1c9, 0xd1ca, 0xd1cb, 0xd1cc, 0xd1cd, 0xd1ce, 0xd1cf, 0xb798, 0xb799, 0xb79c, 0xb7a0, 0xb7a8, 0xb7a9, 0xb7ab, 0xb7ac, 0xb7ad, 0xb7b4, 0xb7b5, 0xb7b8, 0xb7c7, 0xb7c9, 0xb7ec, 0xb7ed, 0xb7f0, 0xb7f4, 0xb7fc, 0xb7fd, 0xb7ff, 0xb800, 0xb801, 0xb807, 0xb808, 0xb809, 0xb80c, 0xb810, 0xb818, 0xb819, 0xb81b, 0xb81d, 0xb824, 0xb825, 0xb828, 0xb82c, 0xb834, 0xb835, 0xb837, 0xb838, 0xb839, 0xb840, 0xb844, 0xb851, 0xb853, 0xb85c, 0xb85d, 0xb860, 0xb864, 0xb86c, 0xb86d, 0xb86f, 0xb871, 0xb878, 0xb87c, 0xb88d, 0xb8a8, 0xb8b0, 0xb8b4, 0xb8b8, 0xb8c0, 0xb8c1, 0xb8c3, 0xb8c5, 0xb8cc, 0xb8d0, 0xb8d4, 0xb8dd, 0xb8df, 0xb8e1, 0xb8e8, 0xb8e9, 0xb8ec, 0xb8f0, 0xb8f8, 0xb8f9, 0xb8fb, 0xb8fd, 0xb904, 0xb918, 0xb920, 0xb93c, 0xb93d, 0xb940, 0xb944, 0xb94c, 0xb94f, 0xb951, 0xb958, 0xb959, 0xb95c, 0xb960, 0xb968, 0xb969, 0x003f, /* lead byte b8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1d0, 0xd1d1, 0xd1d2, 0xd1d3, 0xd1d4, 0xd1d5, 0xd1d6, 0xd1d7, 0xd1d9, 0xd1da, 0xd1db, 0xd1dc, 0xd1dd, 0xd1de, 0xd1df, 0xd1e0, 0xd1e1, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e7, 0xd1e8, 0xd1e9, 0xd1ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1eb, 0xd1ec, 0xd1ed, 0xd1ee, 0xd1ef, 0xd1f0, 0xd1f1, 0xd1f2, 0xd1f3, 0xd1f5, 0xd1f6, 0xd1f7, 0xd1f9, 0xd1fa, 0xd1fb, 0xd1fc, 0xd1fd, 0xd1fe, 0xd1ff, 0xd200, 0xd201, 0xd202, 0xd203, 0xd204, 0xd205, 0xd206, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd208, 0xd20a, 0xd20b, 0xd20c, 0xd20d, 0xd20e, 0xd20f, 0xd211, 0xd212, 0xd213, 0xd214, 0xd215, 0xd216, 0xd217, 0xd218, 0xd219, 0xd21a, 0xd21b, 0xd21c, 0xd21d, 0xd21e, 0xd21f, 0xd220, 0xd221, 0xd222, 0xd223, 0xd224, 0xd225, 0xd226, 0xd227, 0xd228, 0xd229, 0xb96b, 0xb96d, 0xb974, 0xb975, 0xb978, 0xb97c, 0xb984, 0xb985, 0xb987, 0xb989, 0xb98a, 0xb98d, 0xb98e, 0xb9ac, 0xb9ad, 0xb9b0, 0xb9b4, 0xb9bc, 0xb9bd, 0xb9bf, 0xb9c1, 0xb9c8, 0xb9c9, 0xb9cc, 0xb9ce, 0xb9cf, 0xb9d0, 0xb9d1, 0xb9d2, 0xb9d8, 0xb9d9, 0xb9db, 0xb9dd, 0xb9de, 0xb9e1, 0xb9e3, 0xb9e4, 0xb9e5, 0xb9e8, 0xb9ec, 0xb9f4, 0xb9f5, 0xb9f7, 0xb9f8, 0xb9f9, 0xb9fa, 0xba00, 0xba01, 0xba08, 0xba15, 0xba38, 0xba39, 0xba3c, 0xba40, 0xba42, 0xba48, 0xba49, 0xba4b, 0xba4d, 0xba4e, 0xba53, 0xba54, 0xba55, 0xba58, 0xba5c, 0xba64, 0xba65, 0xba67, 0xba68, 0xba69, 0xba70, 0xba71, 0xba74, 0xba78, 0xba83, 0xba84, 0xba85, 0xba87, 0xba8c, 0xbaa8, 0xbaa9, 0xbaab, 0xbaac, 0xbab0, 0xbab2, 0xbab8, 0xbab9, 0xbabb, 0xbabd, 0xbac4, 0xbac8, 0xbad8, 0xbad9, 0xbafc, 0x003f, /* lead byte b9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd22a, 0xd22b, 0xd22e, 0xd22f, 0xd231, 0xd232, 0xd233, 0xd235, 0xd236, 0xd237, 0xd238, 0xd239, 0xd23a, 0xd23b, 0xd23e, 0xd240, 0xd242, 0xd243, 0xd244, 0xd245, 0xd246, 0xd247, 0xd249, 0xd24a, 0xd24b, 0xd24c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd24d, 0xd24e, 0xd24f, 0xd250, 0xd251, 0xd252, 0xd253, 0xd254, 0xd255, 0xd256, 0xd257, 0xd258, 0xd259, 0xd25a, 0xd25b, 0xd25d, 0xd25e, 0xd25f, 0xd260, 0xd261, 0xd262, 0xd263, 0xd265, 0xd266, 0xd267, 0xd268, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd269, 0xd26a, 0xd26b, 0xd26c, 0xd26d, 0xd26e, 0xd26f, 0xd270, 0xd271, 0xd272, 0xd273, 0xd274, 0xd275, 0xd276, 0xd277, 0xd278, 0xd279, 0xd27a, 0xd27b, 0xd27c, 0xd27d, 0xd27e, 0xd27f, 0xd282, 0xd283, 0xd285, 0xd286, 0xd287, 0xd289, 0xd28a, 0xd28b, 0xd28c, 0xbb00, 0xbb04, 0xbb0d, 0xbb0f, 0xbb11, 0xbb18, 0xbb1c, 0xbb20, 0xbb29, 0xbb2b, 0xbb34, 0xbb35, 0xbb36, 0xbb38, 0xbb3b, 0xbb3c, 0xbb3d, 0xbb3e, 0xbb44, 0xbb45, 0xbb47, 0xbb49, 0xbb4d, 0xbb4f, 0xbb50, 0xbb54, 0xbb58, 0xbb61, 0xbb63, 0xbb6c, 0xbb88, 0xbb8c, 0xbb90, 0xbba4, 0xbba8, 0xbbac, 0xbbb4, 0xbbb7, 0xbbc0, 0xbbc4, 0xbbc8, 0xbbd0, 0xbbd3, 0xbbf8, 0xbbf9, 0xbbfc, 0xbbff, 0xbc00, 0xbc02, 0xbc08, 0xbc09, 0xbc0b, 0xbc0c, 0xbc0d, 0xbc0f, 0xbc11, 0xbc14, 0xbc15, 0xbc16, 0xbc17, 0xbc18, 0xbc1b, 0xbc1c, 0xbc1d, 0xbc1e, 0xbc1f, 0xbc24, 0xbc25, 0xbc27, 0xbc29, 0xbc2d, 0xbc30, 0xbc31, 0xbc34, 0xbc38, 0xbc40, 0xbc41, 0xbc43, 0xbc44, 0xbc45, 0xbc49, 0xbc4c, 0xbc4d, 0xbc50, 0xbc5d, 0xbc84, 0xbc85, 0xbc88, 0xbc8b, 0xbc8c, 0xbc8e, 0xbc94, 0xbc95, 0xbc97, 0x003f, /* lead byte ba */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd28d, 0xd28e, 0xd28f, 0xd292, 0xd293, 0xd294, 0xd296, 0xd297, 0xd298, 0xd299, 0xd29a, 0xd29b, 0xd29d, 0xd29e, 0xd29f, 0xd2a1, 0xd2a2, 0xd2a3, 0xd2a5, 0xd2a6, 0xd2a7, 0xd2a8, 0xd2a9, 0xd2aa, 0xd2ab, 0xd2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2ae, 0xd2af, 0xd2b0, 0xd2b2, 0xd2b3, 0xd2b4, 0xd2b5, 0xd2b6, 0xd2b7, 0xd2ba, 0xd2bb, 0xd2bd, 0xd2be, 0xd2c1, 0xd2c3, 0xd2c4, 0xd2c5, 0xd2c6, 0xd2c7, 0xd2ca, 0xd2cc, 0xd2cd, 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2d2, 0xd2d3, 0xd2d5, 0xd2d6, 0xd2d7, 0xd2d9, 0xd2da, 0xd2db, 0xd2dd, 0xd2de, 0xd2df, 0xd2e0, 0xd2e1, 0xd2e2, 0xd2e3, 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, 0xd2ea, 0xd2eb, 0xd2ec, 0xd2ed, 0xd2ee, 0xd2ef, 0xd2f2, 0xd2f3, 0xd2f5, 0xd2f6, 0xd2f7, 0xd2f9, 0xd2fa, 0xbc99, 0xbc9a, 0xbca0, 0xbca1, 0xbca4, 0xbca7, 0xbca8, 0xbcb0, 0xbcb1, 0xbcb3, 0xbcb4, 0xbcb5, 0xbcbc, 0xbcbd, 0xbcc0, 0xbcc4, 0xbccd, 0xbccf, 0xbcd0, 0xbcd1, 0xbcd5, 0xbcd8, 0xbcdc, 0xbcf4, 0xbcf5, 0xbcf6, 0xbcf8, 0xbcfc, 0xbd04, 0xbd05, 0xbd07, 0xbd09, 0xbd10, 0xbd14, 0xbd24, 0xbd2c, 0xbd40, 0xbd48, 0xbd49, 0xbd4c, 0xbd50, 0xbd58, 0xbd59, 0xbd64, 0xbd68, 0xbd80, 0xbd81, 0xbd84, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd90, 0xbd91, 0xbd93, 0xbd95, 0xbd99, 0xbd9a, 0xbd9c, 0xbda4, 0xbdb0, 0xbdb8, 0xbdd4, 0xbdd5, 0xbdd8, 0xbddc, 0xbde9, 0xbdf0, 0xbdf4, 0xbdf8, 0xbe00, 0xbe03, 0xbe05, 0xbe0c, 0xbe0d, 0xbe10, 0xbe14, 0xbe1c, 0xbe1d, 0xbe1f, 0xbe44, 0xbe45, 0xbe48, 0xbe4c, 0xbe4e, 0xbe54, 0xbe55, 0xbe57, 0xbe59, 0xbe5a, 0xbe5b, 0xbe60, 0xbe61, 0xbe64, 0x003f, /* lead byte bb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2fb, 0xd2fc, 0xd2fd, 0xd2fe, 0xd2ff, 0xd302, 0xd304, 0xd306, 0xd307, 0xd308, 0xd309, 0xd30a, 0xd30b, 0xd30f, 0xd311, 0xd312, 0xd313, 0xd315, 0xd317, 0xd318, 0xd319, 0xd31a, 0xd31b, 0xd31e, 0xd322, 0xd323, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd324, 0xd326, 0xd327, 0xd32a, 0xd32b, 0xd32d, 0xd32e, 0xd32f, 0xd331, 0xd332, 0xd333, 0xd334, 0xd335, 0xd336, 0xd337, 0xd33a, 0xd33e, 0xd33f, 0xd340, 0xd341, 0xd342, 0xd343, 0xd346, 0xd347, 0xd348, 0xd349, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd34a, 0xd34b, 0xd34c, 0xd34d, 0xd34e, 0xd34f, 0xd350, 0xd351, 0xd352, 0xd353, 0xd354, 0xd355, 0xd356, 0xd357, 0xd358, 0xd359, 0xd35a, 0xd35b, 0xd35c, 0xd35d, 0xd35e, 0xd35f, 0xd360, 0xd361, 0xd362, 0xd363, 0xd364, 0xd365, 0xd366, 0xd367, 0xd368, 0xd369, 0xbe68, 0xbe6a, 0xbe70, 0xbe71, 0xbe73, 0xbe74, 0xbe75, 0xbe7b, 0xbe7c, 0xbe7d, 0xbe80, 0xbe84, 0xbe8c, 0xbe8d, 0xbe8f, 0xbe90, 0xbe91, 0xbe98, 0xbe99, 0xbea8, 0xbed0, 0xbed1, 0xbed4, 0xbed7, 0xbed8, 0xbee0, 0xbee3, 0xbee4, 0xbee5, 0xbeec, 0xbf01, 0xbf08, 0xbf09, 0xbf18, 0xbf19, 0xbf1b, 0xbf1c, 0xbf1d, 0xbf40, 0xbf41, 0xbf44, 0xbf48, 0xbf50, 0xbf51, 0xbf55, 0xbf94, 0xbfb0, 0xbfc5, 0xbfcc, 0xbfcd, 0xbfd0, 0xbfd4, 0xbfdc, 0xbfdf, 0xbfe1, 0xc03c, 0xc051, 0xc058, 0xc05c, 0xc060, 0xc068, 0xc069, 0xc090, 0xc091, 0xc094, 0xc098, 0xc0a0, 0xc0a1, 0xc0a3, 0xc0a5, 0xc0ac, 0xc0ad, 0xc0af, 0xc0b0, 0xc0b3, 0xc0b4, 0xc0b5, 0xc0b6, 0xc0bc, 0xc0bd, 0xc0bf, 0xc0c0, 0xc0c1, 0xc0c5, 0xc0c8, 0xc0c9, 0xc0cc, 0xc0d0, 0xc0d8, 0xc0d9, 0xc0db, 0xc0dc, 0xc0dd, 0xc0e4, 0x003f, /* lead byte bc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd36a, 0xd36b, 0xd36c, 0xd36d, 0xd36e, 0xd36f, 0xd370, 0xd371, 0xd372, 0xd373, 0xd374, 0xd375, 0xd376, 0xd377, 0xd378, 0xd379, 0xd37a, 0xd37b, 0xd37e, 0xd37f, 0xd381, 0xd382, 0xd383, 0xd385, 0xd386, 0xd387, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd388, 0xd389, 0xd38a, 0xd38b, 0xd38e, 0xd392, 0xd393, 0xd394, 0xd395, 0xd396, 0xd397, 0xd39a, 0xd39b, 0xd39d, 0xd39e, 0xd39f, 0xd3a1, 0xd3a2, 0xd3a3, 0xd3a4, 0xd3a5, 0xd3a6, 0xd3a7, 0xd3aa, 0xd3ac, 0xd3ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3af, 0xd3b0, 0xd3b1, 0xd3b2, 0xd3b3, 0xd3b5, 0xd3b6, 0xd3b7, 0xd3b9, 0xd3ba, 0xd3bb, 0xd3bd, 0xd3be, 0xd3bf, 0xd3c0, 0xd3c1, 0xd3c2, 0xd3c3, 0xd3c6, 0xd3c7, 0xd3ca, 0xd3cb, 0xd3cc, 0xd3cd, 0xd3ce, 0xd3cf, 0xd3d1, 0xd3d2, 0xd3d3, 0xd3d4, 0xd3d5, 0xd3d6, 0xc0e5, 0xc0e8, 0xc0ec, 0xc0f4, 0xc0f5, 0xc0f7, 0xc0f9, 0xc100, 0xc104, 0xc108, 0xc110, 0xc115, 0xc11c, 0xc11d, 0xc11e, 0xc11f, 0xc120, 0xc123, 0xc124, 0xc126, 0xc127, 0xc12c, 0xc12d, 0xc12f, 0xc130, 0xc131, 0xc136, 0xc138, 0xc139, 0xc13c, 0xc140, 0xc148, 0xc149, 0xc14b, 0xc14c, 0xc14d, 0xc154, 0xc155, 0xc158, 0xc15c, 0xc164, 0xc165, 0xc167, 0xc168, 0xc169, 0xc170, 0xc174, 0xc178, 0xc185, 0xc18c, 0xc18d, 0xc18e, 0xc190, 0xc194, 0xc196, 0xc19c, 0xc19d, 0xc19f, 0xc1a1, 0xc1a5, 0xc1a8, 0xc1a9, 0xc1ac, 0xc1b0, 0xc1bd, 0xc1c4, 0xc1c8, 0xc1cc, 0xc1d4, 0xc1d7, 0xc1d8, 0xc1e0, 0xc1e4, 0xc1e8, 0xc1f0, 0xc1f1, 0xc1f3, 0xc1fc, 0xc1fd, 0xc200, 0xc204, 0xc20c, 0xc20d, 0xc20f, 0xc211, 0xc218, 0xc219, 0xc21c, 0xc21f, 0xc220, 0xc228, 0xc229, 0xc22b, 0xc22d, 0x003f, /* lead byte bd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d7, 0xd3d9, 0xd3da, 0xd3db, 0xd3dc, 0xd3dd, 0xd3de, 0xd3df, 0xd3e0, 0xd3e2, 0xd3e4, 0xd3e5, 0xd3e6, 0xd3e7, 0xd3e8, 0xd3e9, 0xd3ea, 0xd3eb, 0xd3ee, 0xd3ef, 0xd3f1, 0xd3f2, 0xd3f3, 0xd3f5, 0xd3f6, 0xd3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f8, 0xd3f9, 0xd3fa, 0xd3fb, 0xd3fe, 0xd400, 0xd402, 0xd403, 0xd404, 0xd405, 0xd406, 0xd407, 0xd409, 0xd40a, 0xd40b, 0xd40c, 0xd40d, 0xd40e, 0xd40f, 0xd410, 0xd411, 0xd412, 0xd413, 0xd414, 0xd415, 0xd416, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd417, 0xd418, 0xd419, 0xd41a, 0xd41b, 0xd41c, 0xd41e, 0xd41f, 0xd420, 0xd421, 0xd422, 0xd423, 0xd424, 0xd425, 0xd426, 0xd427, 0xd428, 0xd429, 0xd42a, 0xd42b, 0xd42c, 0xd42d, 0xd42e, 0xd42f, 0xd430, 0xd431, 0xd432, 0xd433, 0xd434, 0xd435, 0xd436, 0xd437, 0xc22f, 0xc231, 0xc232, 0xc234, 0xc248, 0xc250, 0xc251, 0xc254, 0xc258, 0xc260, 0xc265, 0xc26c, 0xc26d, 0xc270, 0xc274, 0xc27c, 0xc27d, 0xc27f, 0xc281, 0xc288, 0xc289, 0xc290, 0xc298, 0xc29b, 0xc29d, 0xc2a4, 0xc2a5, 0xc2a8, 0xc2ac, 0xc2ad, 0xc2b4, 0xc2b5, 0xc2b7, 0xc2b9, 0xc2dc, 0xc2dd, 0xc2e0, 0xc2e3, 0xc2e4, 0xc2eb, 0xc2ec, 0xc2ed, 0xc2ef, 0xc2f1, 0xc2f6, 0xc2f8, 0xc2f9, 0xc2fb, 0xc2fc, 0xc300, 0xc308, 0xc309, 0xc30c, 0xc30d, 0xc313, 0xc314, 0xc315, 0xc318, 0xc31c, 0xc324, 0xc325, 0xc328, 0xc329, 0xc345, 0xc368, 0xc369, 0xc36c, 0xc370, 0xc372, 0xc378, 0xc379, 0xc37c, 0xc37d, 0xc384, 0xc388, 0xc38c, 0xc3c0, 0xc3d8, 0xc3d9, 0xc3dc, 0xc3df, 0xc3e0, 0xc3e2, 0xc3e8, 0xc3e9, 0xc3ed, 0xc3f4, 0xc3f5, 0xc3f8, 0xc408, 0xc410, 0xc424, 0xc42c, 0xc430, 0x003f, /* lead byte be */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd438, 0xd439, 0xd43a, 0xd43b, 0xd43c, 0xd43d, 0xd43e, 0xd43f, 0xd441, 0xd442, 0xd443, 0xd445, 0xd446, 0xd447, 0xd448, 0xd449, 0xd44a, 0xd44b, 0xd44c, 0xd44d, 0xd44e, 0xd44f, 0xd450, 0xd451, 0xd452, 0xd453, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd454, 0xd455, 0xd456, 0xd457, 0xd458, 0xd459, 0xd45a, 0xd45b, 0xd45d, 0xd45e, 0xd45f, 0xd461, 0xd462, 0xd463, 0xd465, 0xd466, 0xd467, 0xd468, 0xd469, 0xd46a, 0xd46b, 0xd46c, 0xd46e, 0xd470, 0xd471, 0xd472, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd473, 0xd474, 0xd475, 0xd476, 0xd477, 0xd47a, 0xd47b, 0xd47d, 0xd47e, 0xd481, 0xd483, 0xd484, 0xd485, 0xd486, 0xd487, 0xd48a, 0xd48c, 0xd48e, 0xd48f, 0xd490, 0xd491, 0xd492, 0xd493, 0xd495, 0xd496, 0xd497, 0xd498, 0xd499, 0xd49a, 0xd49b, 0xd49c, 0xd49d, 0xc434, 0xc43c, 0xc43d, 0xc448, 0xc464, 0xc465, 0xc468, 0xc46c, 0xc474, 0xc475, 0xc479, 0xc480, 0xc494, 0xc49c, 0xc4b8, 0xc4bc, 0xc4e9, 0xc4f0, 0xc4f1, 0xc4f4, 0xc4f8, 0xc4fa, 0xc4ff, 0xc500, 0xc501, 0xc50c, 0xc510, 0xc514, 0xc51c, 0xc528, 0xc529, 0xc52c, 0xc530, 0xc538, 0xc539, 0xc53b, 0xc53d, 0xc544, 0xc545, 0xc548, 0xc549, 0xc54a, 0xc54c, 0xc54d, 0xc54e, 0xc553, 0xc554, 0xc555, 0xc557, 0xc558, 0xc559, 0xc55d, 0xc55e, 0xc560, 0xc561, 0xc564, 0xc568, 0xc570, 0xc571, 0xc573, 0xc574, 0xc575, 0xc57c, 0xc57d, 0xc580, 0xc584, 0xc587, 0xc58c, 0xc58d, 0xc58f, 0xc591, 0xc595, 0xc597, 0xc598, 0xc59c, 0xc5a0, 0xc5a9, 0xc5b4, 0xc5b5, 0xc5b8, 0xc5b9, 0xc5bb, 0xc5bc, 0xc5bd, 0xc5be, 0xc5c4, 0xc5c5, 0xc5c6, 0xc5c7, 0xc5c8, 0xc5c9, 0xc5ca, 0xc5cc, 0xc5ce, 0x003f, /* lead byte bf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd49e, 0xd49f, 0xd4a0, 0xd4a1, 0xd4a2, 0xd4a3, 0xd4a4, 0xd4a5, 0xd4a6, 0xd4a7, 0xd4a8, 0xd4aa, 0xd4ab, 0xd4ac, 0xd4ad, 0xd4ae, 0xd4af, 0xd4b0, 0xd4b1, 0xd4b2, 0xd4b3, 0xd4b4, 0xd4b5, 0xd4b6, 0xd4b7, 0xd4b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b9, 0xd4ba, 0xd4bb, 0xd4bc, 0xd4bd, 0xd4be, 0xd4bf, 0xd4c0, 0xd4c1, 0xd4c2, 0xd4c3, 0xd4c4, 0xd4c5, 0xd4c6, 0xd4c7, 0xd4c8, 0xd4c9, 0xd4ca, 0xd4cb, 0xd4cd, 0xd4ce, 0xd4cf, 0xd4d1, 0xd4d2, 0xd4d3, 0xd4d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4d6, 0xd4d7, 0xd4d8, 0xd4d9, 0xd4da, 0xd4db, 0xd4dd, 0xd4de, 0xd4e0, 0xd4e1, 0xd4e2, 0xd4e3, 0xd4e4, 0xd4e5, 0xd4e6, 0xd4e7, 0xd4e9, 0xd4ea, 0xd4eb, 0xd4ed, 0xd4ee, 0xd4ef, 0xd4f1, 0xd4f2, 0xd4f3, 0xd4f4, 0xd4f5, 0xd4f6, 0xd4f7, 0xd4f9, 0xd4fa, 0xd4fc, 0xc5d0, 0xc5d1, 0xc5d4, 0xc5d8, 0xc5e0, 0xc5e1, 0xc5e3, 0xc5e5, 0xc5ec, 0xc5ed, 0xc5ee, 0xc5f0, 0xc5f4, 0xc5f6, 0xc5f7, 0xc5fc, 0xc5fd, 0xc5fe, 0xc5ff, 0xc600, 0xc601, 0xc605, 0xc606, 0xc607, 0xc608, 0xc60c, 0xc610, 0xc618, 0xc619, 0xc61b, 0xc61c, 0xc624, 0xc625, 0xc628, 0xc62c, 0xc62d, 0xc62e, 0xc630, 0xc633, 0xc634, 0xc635, 0xc637, 0xc639, 0xc63b, 0xc640, 0xc641, 0xc644, 0xc648, 0xc650, 0xc651, 0xc653, 0xc654, 0xc655, 0xc65c, 0xc65d, 0xc660, 0xc66c, 0xc66f, 0xc671, 0xc678, 0xc679, 0xc67c, 0xc680, 0xc688, 0xc689, 0xc68b, 0xc68d, 0xc694, 0xc695, 0xc698, 0xc69c, 0xc6a4, 0xc6a5, 0xc6a7, 0xc6a9, 0xc6b0, 0xc6b1, 0xc6b4, 0xc6b8, 0xc6b9, 0xc6ba, 0xc6c0, 0xc6c1, 0xc6c3, 0xc6c5, 0xc6cc, 0xc6cd, 0xc6d0, 0xc6d4, 0xc6dc, 0xc6dd, 0xc6e0, 0xc6e1, 0xc6e8, 0x003f, /* lead byte c0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4fe, 0xd4ff, 0xd500, 0xd501, 0xd502, 0xd503, 0xd505, 0xd506, 0xd507, 0xd509, 0xd50a, 0xd50b, 0xd50d, 0xd50e, 0xd50f, 0xd510, 0xd511, 0xd512, 0xd513, 0xd516, 0xd518, 0xd519, 0xd51a, 0xd51b, 0xd51c, 0xd51d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd51e, 0xd51f, 0xd520, 0xd521, 0xd522, 0xd523, 0xd524, 0xd525, 0xd526, 0xd527, 0xd528, 0xd529, 0xd52a, 0xd52b, 0xd52c, 0xd52d, 0xd52e, 0xd52f, 0xd530, 0xd531, 0xd532, 0xd533, 0xd534, 0xd535, 0xd536, 0xd537, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd538, 0xd539, 0xd53a, 0xd53b, 0xd53e, 0xd53f, 0xd541, 0xd542, 0xd543, 0xd545, 0xd546, 0xd547, 0xd548, 0xd549, 0xd54a, 0xd54b, 0xd54e, 0xd550, 0xd552, 0xd553, 0xd554, 0xd555, 0xd556, 0xd557, 0xd55a, 0xd55b, 0xd55d, 0xd55e, 0xd55f, 0xd561, 0xd562, 0xd563, 0xc6e9, 0xc6ec, 0xc6f0, 0xc6f8, 0xc6f9, 0xc6fd, 0xc704, 0xc705, 0xc708, 0xc70c, 0xc714, 0xc715, 0xc717, 0xc719, 0xc720, 0xc721, 0xc724, 0xc728, 0xc730, 0xc731, 0xc733, 0xc735, 0xc737, 0xc73c, 0xc73d, 0xc740, 0xc744, 0xc74a, 0xc74c, 0xc74d, 0xc74f, 0xc751, 0xc752, 0xc753, 0xc754, 0xc755, 0xc756, 0xc757, 0xc758, 0xc75c, 0xc760, 0xc768, 0xc76b, 0xc774, 0xc775, 0xc778, 0xc77c, 0xc77d, 0xc77e, 0xc783, 0xc784, 0xc785, 0xc787, 0xc788, 0xc789, 0xc78a, 0xc78e, 0xc790, 0xc791, 0xc794, 0xc796, 0xc797, 0xc798, 0xc79a, 0xc7a0, 0xc7a1, 0xc7a3, 0xc7a4, 0xc7a5, 0xc7a6, 0xc7ac, 0xc7ad, 0xc7b0, 0xc7b4, 0xc7bc, 0xc7bd, 0xc7bf, 0xc7c0, 0xc7c1, 0xc7c8, 0xc7c9, 0xc7cc, 0xc7ce, 0xc7d0, 0xc7d8, 0xc7dd, 0xc7e4, 0xc7e8, 0xc7ec, 0xc800, 0xc801, 0xc804, 0xc808, 0xc80a, 0x003f, /* lead byte c1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd564, 0xd566, 0xd567, 0xd56a, 0xd56c, 0xd56e, 0xd56f, 0xd570, 0xd571, 0xd572, 0xd573, 0xd576, 0xd577, 0xd579, 0xd57a, 0xd57b, 0xd57d, 0xd57e, 0xd57f, 0xd580, 0xd581, 0xd582, 0xd583, 0xd586, 0xd58a, 0xd58b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd58c, 0xd58d, 0xd58e, 0xd58f, 0xd591, 0xd592, 0xd593, 0xd594, 0xd595, 0xd596, 0xd597, 0xd598, 0xd599, 0xd59a, 0xd59b, 0xd59c, 0xd59d, 0xd59e, 0xd59f, 0xd5a0, 0xd5a1, 0xd5a2, 0xd5a3, 0xd5a4, 0xd5a6, 0xd5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a8, 0xd5a9, 0xd5aa, 0xd5ab, 0xd5ac, 0xd5ad, 0xd5ae, 0xd5af, 0xd5b0, 0xd5b1, 0xd5b2, 0xd5b3, 0xd5b4, 0xd5b5, 0xd5b6, 0xd5b7, 0xd5b8, 0xd5b9, 0xd5ba, 0xd5bb, 0xd5bc, 0xd5bd, 0xd5be, 0xd5bf, 0xd5c0, 0xd5c1, 0xd5c2, 0xd5c3, 0xd5c4, 0xd5c5, 0xd5c6, 0xd5c7, 0xc810, 0xc811, 0xc813, 0xc815, 0xc816, 0xc81c, 0xc81d, 0xc820, 0xc824, 0xc82c, 0xc82d, 0xc82f, 0xc831, 0xc838, 0xc83c, 0xc840, 0xc848, 0xc849, 0xc84c, 0xc84d, 0xc854, 0xc870, 0xc871, 0xc874, 0xc878, 0xc87a, 0xc880, 0xc881, 0xc883, 0xc885, 0xc886, 0xc887, 0xc88b, 0xc88c, 0xc88d, 0xc894, 0xc89d, 0xc89f, 0xc8a1, 0xc8a8, 0xc8bc, 0xc8bd, 0xc8c4, 0xc8c8, 0xc8cc, 0xc8d4, 0xc8d5, 0xc8d7, 0xc8d9, 0xc8e0, 0xc8e1, 0xc8e4, 0xc8f5, 0xc8fc, 0xc8fd, 0xc900, 0xc904, 0xc905, 0xc906, 0xc90c, 0xc90d, 0xc90f, 0xc911, 0xc918, 0xc92c, 0xc934, 0xc950, 0xc951, 0xc954, 0xc958, 0xc960, 0xc961, 0xc963, 0xc96c, 0xc970, 0xc974, 0xc97c, 0xc988, 0xc989, 0xc98c, 0xc990, 0xc998, 0xc999, 0xc99b, 0xc99d, 0xc9c0, 0xc9c1, 0xc9c4, 0xc9c7, 0xc9c8, 0xc9ca, 0xc9d0, 0xc9d1, 0xc9d3, 0x003f, /* lead byte c2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ca, 0xd5cb, 0xd5cd, 0xd5ce, 0xd5cf, 0xd5d1, 0xd5d3, 0xd5d4, 0xd5d5, 0xd5d6, 0xd5d7, 0xd5da, 0xd5dc, 0xd5de, 0xd5df, 0xd5e0, 0xd5e1, 0xd5e2, 0xd5e3, 0xd5e6, 0xd5e7, 0xd5e9, 0xd5ea, 0xd5eb, 0xd5ed, 0xd5ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ef, 0xd5f0, 0xd5f1, 0xd5f2, 0xd5f3, 0xd5f6, 0xd5f8, 0xd5fa, 0xd5fb, 0xd5fc, 0xd5fd, 0xd5fe, 0xd5ff, 0xd602, 0xd603, 0xd605, 0xd606, 0xd607, 0xd609, 0xd60a, 0xd60b, 0xd60c, 0xd60d, 0xd60e, 0xd60f, 0xd612, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd616, 0xd617, 0xd618, 0xd619, 0xd61a, 0xd61b, 0xd61d, 0xd61e, 0xd61f, 0xd621, 0xd622, 0xd623, 0xd625, 0xd626, 0xd627, 0xd628, 0xd629, 0xd62a, 0xd62b, 0xd62c, 0xd62e, 0xd62f, 0xd630, 0xd631, 0xd632, 0xd633, 0xd634, 0xd635, 0xd636, 0xd637, 0xd63a, 0xd63b, 0xc9d5, 0xc9d6, 0xc9d9, 0xc9da, 0xc9dc, 0xc9dd, 0xc9e0, 0xc9e2, 0xc9e4, 0xc9e7, 0xc9ec, 0xc9ed, 0xc9ef, 0xc9f0, 0xc9f1, 0xc9f8, 0xc9f9, 0xc9fc, 0xca00, 0xca08, 0xca09, 0xca0b, 0xca0c, 0xca0d, 0xca14, 0xca18, 0xca29, 0xca4c, 0xca4d, 0xca50, 0xca54, 0xca5c, 0xca5d, 0xca5f, 0xca60, 0xca61, 0xca68, 0xca7d, 0xca84, 0xca98, 0xcabc, 0xcabd, 0xcac0, 0xcac4, 0xcacc, 0xcacd, 0xcacf, 0xcad1, 0xcad3, 0xcad8, 0xcad9, 0xcae0, 0xcaec, 0xcaf4, 0xcb08, 0xcb10, 0xcb14, 0xcb18, 0xcb20, 0xcb21, 0xcb41, 0xcb48, 0xcb49, 0xcb4c, 0xcb50, 0xcb58, 0xcb59, 0xcb5d, 0xcb64, 0xcb78, 0xcb79, 0xcb9c, 0xcbb8, 0xcbd4, 0xcbe4, 0xcbe7, 0xcbe9, 0xcc0c, 0xcc0d, 0xcc10, 0xcc14, 0xcc1c, 0xcc1d, 0xcc21, 0xcc22, 0xcc27, 0xcc28, 0xcc29, 0xcc2c, 0xcc2e, 0xcc30, 0xcc38, 0xcc39, 0xcc3b, 0x003f, /* lead byte c3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd63d, 0xd63e, 0xd63f, 0xd641, 0xd642, 0xd643, 0xd644, 0xd646, 0xd647, 0xd64a, 0xd64c, 0xd64e, 0xd64f, 0xd650, 0xd652, 0xd653, 0xd656, 0xd657, 0xd659, 0xd65a, 0xd65b, 0xd65d, 0xd65e, 0xd65f, 0xd660, 0xd661, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd662, 0xd663, 0xd664, 0xd665, 0xd666, 0xd668, 0xd66a, 0xd66b, 0xd66c, 0xd66d, 0xd66e, 0xd66f, 0xd672, 0xd673, 0xd675, 0xd676, 0xd677, 0xd678, 0xd679, 0xd67a, 0xd67b, 0xd67c, 0xd67d, 0xd67e, 0xd67f, 0xd680, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd681, 0xd682, 0xd684, 0xd686, 0xd687, 0xd688, 0xd689, 0xd68a, 0xd68b, 0xd68e, 0xd68f, 0xd691, 0xd692, 0xd693, 0xd695, 0xd696, 0xd697, 0xd698, 0xd699, 0xd69a, 0xd69b, 0xd69c, 0xd69e, 0xd6a0, 0xd6a2, 0xd6a3, 0xd6a4, 0xd6a5, 0xd6a6, 0xd6a7, 0xd6a9, 0xd6aa, 0xcc3c, 0xcc3d, 0xcc3e, 0xcc44, 0xcc45, 0xcc48, 0xcc4c, 0xcc54, 0xcc55, 0xcc57, 0xcc58, 0xcc59, 0xcc60, 0xcc64, 0xcc66, 0xcc68, 0xcc70, 0xcc75, 0xcc98, 0xcc99, 0xcc9c, 0xcca0, 0xcca8, 0xcca9, 0xccab, 0xccac, 0xccad, 0xccb4, 0xccb5, 0xccb8, 0xccbc, 0xccc4, 0xccc5, 0xccc7, 0xccc9, 0xccd0, 0xccd4, 0xcce4, 0xccec, 0xccf0, 0xcd01, 0xcd08, 0xcd09, 0xcd0c, 0xcd10, 0xcd18, 0xcd19, 0xcd1b, 0xcd1d, 0xcd24, 0xcd28, 0xcd2c, 0xcd39, 0xcd5c, 0xcd60, 0xcd64, 0xcd6c, 0xcd6d, 0xcd6f, 0xcd71, 0xcd78, 0xcd88, 0xcd94, 0xcd95, 0xcd98, 0xcd9c, 0xcda4, 0xcda5, 0xcda7, 0xcda9, 0xcdb0, 0xcdc4, 0xcdcc, 0xcdd0, 0xcde8, 0xcdec, 0xcdf0, 0xcdf8, 0xcdf9, 0xcdfb, 0xcdfd, 0xce04, 0xce08, 0xce0c, 0xce14, 0xce19, 0xce20, 0xce21, 0xce24, 0xce28, 0xce30, 0xce31, 0xce33, 0xce35, 0x003f, /* lead byte c4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ab, 0xd6ad, 0xd6ae, 0xd6af, 0xd6b1, 0xd6b2, 0xd6b3, 0xd6b4, 0xd6b5, 0xd6b6, 0xd6b7, 0xd6b8, 0xd6ba, 0xd6bc, 0xd6bd, 0xd6be, 0xd6bf, 0xd6c0, 0xd6c1, 0xd6c2, 0xd6c3, 0xd6c6, 0xd6c7, 0xd6c9, 0xd6ca, 0xd6cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6cd, 0xd6ce, 0xd6cf, 0xd6d0, 0xd6d2, 0xd6d3, 0xd6d5, 0xd6d6, 0xd6d8, 0xd6da, 0xd6db, 0xd6dc, 0xd6dd, 0xd6de, 0xd6df, 0xd6e1, 0xd6e2, 0xd6e3, 0xd6e5, 0xd6e6, 0xd6e7, 0xd6e9, 0xd6ea, 0xd6eb, 0xd6ec, 0xd6ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ee, 0xd6ef, 0xd6f1, 0xd6f2, 0xd6f3, 0xd6f4, 0xd6f6, 0xd6f7, 0xd6f8, 0xd6f9, 0xd6fa, 0xd6fb, 0xd6fe, 0xd6ff, 0xd701, 0xd702, 0xd703, 0xd705, 0xd706, 0xd707, 0xd708, 0xd709, 0xd70a, 0xd70b, 0xd70c, 0xd70d, 0xd70e, 0xd70f, 0xd710, 0xd712, 0xd713, 0xd714, 0xce58, 0xce59, 0xce5c, 0xce5f, 0xce60, 0xce61, 0xce68, 0xce69, 0xce6b, 0xce6d, 0xce74, 0xce75, 0xce78, 0xce7c, 0xce84, 0xce85, 0xce87, 0xce89, 0xce90, 0xce91, 0xce94, 0xce98, 0xcea0, 0xcea1, 0xcea3, 0xcea4, 0xcea5, 0xceac, 0xcead, 0xcec1, 0xcee4, 0xcee5, 0xcee8, 0xceeb, 0xceec, 0xcef4, 0xcef5, 0xcef7, 0xcef8, 0xcef9, 0xcf00, 0xcf01, 0xcf04, 0xcf08, 0xcf10, 0xcf11, 0xcf13, 0xcf15, 0xcf1c, 0xcf20, 0xcf24, 0xcf2c, 0xcf2d, 0xcf2f, 0xcf30, 0xcf31, 0xcf38, 0xcf54, 0xcf55, 0xcf58, 0xcf5c, 0xcf64, 0xcf65, 0xcf67, 0xcf69, 0xcf70, 0xcf71, 0xcf74, 0xcf78, 0xcf80, 0xcf85, 0xcf8c, 0xcfa1, 0xcfa8, 0xcfb0, 0xcfc4, 0xcfe0, 0xcfe1, 0xcfe4, 0xcfe8, 0xcff0, 0xcff1, 0xcff3, 0xcff5, 0xcffc, 0xd000, 0xd004, 0xd011, 0xd018, 0xd02d, 0xd034, 0xd035, 0xd038, 0xd03c, 0x003f, /* lead byte c5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd715, 0xd716, 0xd717, 0xd71a, 0xd71b, 0xd71d, 0xd71e, 0xd71f, 0xd721, 0xd722, 0xd723, 0xd724, 0xd725, 0xd726, 0xd727, 0xd72a, 0xd72c, 0xd72e, 0xd72f, 0xd730, 0xd731, 0xd732, 0xd733, 0xd736, 0xd737, 0xd739, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd73a, 0xd73b, 0xd73d, 0xd73e, 0xd73f, 0xd740, 0xd741, 0xd742, 0xd743, 0xd745, 0xd746, 0xd748, 0xd74a, 0xd74b, 0xd74c, 0xd74d, 0xd74e, 0xd74f, 0xd752, 0xd753, 0xd755, 0xd75a, 0xd75b, 0xd75c, 0xd75d, 0xd75e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd75f, 0xd762, 0xd764, 0xd766, 0xd767, 0xd768, 0xd76a, 0xd76b, 0xd76d, 0xd76e, 0xd76f, 0xd771, 0xd772, 0xd773, 0xd775, 0xd776, 0xd777, 0xd778, 0xd779, 0xd77a, 0xd77b, 0xd77e, 0xd77f, 0xd780, 0xd782, 0xd783, 0xd784, 0xd785, 0xd786, 0xd787, 0xd78a, 0xd78b, 0xd044, 0xd045, 0xd047, 0xd049, 0xd050, 0xd054, 0xd058, 0xd060, 0xd06c, 0xd06d, 0xd070, 0xd074, 0xd07c, 0xd07d, 0xd081, 0xd0a4, 0xd0a5, 0xd0a8, 0xd0ac, 0xd0b4, 0xd0b5, 0xd0b7, 0xd0b9, 0xd0c0, 0xd0c1, 0xd0c4, 0xd0c8, 0xd0c9, 0xd0d0, 0xd0d1, 0xd0d3, 0xd0d4, 0xd0d5, 0xd0dc, 0xd0dd, 0xd0e0, 0xd0e4, 0xd0ec, 0xd0ed, 0xd0ef, 0xd0f0, 0xd0f1, 0xd0f8, 0xd10d, 0xd130, 0xd131, 0xd134, 0xd138, 0xd13a, 0xd140, 0xd141, 0xd143, 0xd144, 0xd145, 0xd14c, 0xd14d, 0xd150, 0xd154, 0xd15c, 0xd15d, 0xd15f, 0xd161, 0xd168, 0xd16c, 0xd17c, 0xd184, 0xd188, 0xd1a0, 0xd1a1, 0xd1a4, 0xd1a8, 0xd1b0, 0xd1b1, 0xd1b3, 0xd1b5, 0xd1ba, 0xd1bc, 0xd1c0, 0xd1d8, 0xd1f4, 0xd1f8, 0xd207, 0xd209, 0xd210, 0xd22c, 0xd22d, 0xd230, 0xd234, 0xd23c, 0xd23d, 0xd23f, 0xd241, 0xd248, 0xd25c, 0x003f, /* lead byte c6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd78d, 0xd78e, 0xd78f, 0xd791, 0xd792, 0xd793, 0xd794, 0xd795, 0xd796, 0xd797, 0xd79a, 0xd79c, 0xd79e, 0xd79f, 0xd7a0, 0xd7a1, 0xd7a2, 0xd7a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd264, 0xd280, 0xd281, 0xd284, 0xd288, 0xd290, 0xd291, 0xd295, 0xd29c, 0xd2a0, 0xd2a4, 0xd2ac, 0xd2b1, 0xd2b8, 0xd2b9, 0xd2bc, 0xd2bf, 0xd2c0, 0xd2c2, 0xd2c8, 0xd2c9, 0xd2cb, 0xd2d4, 0xd2d8, 0xd2dc, 0xd2e4, 0xd2e5, 0xd2f0, 0xd2f1, 0xd2f4, 0xd2f8, 0xd300, 0xd301, 0xd303, 0xd305, 0xd30c, 0xd30d, 0xd30e, 0xd310, 0xd314, 0xd316, 0xd31c, 0xd31d, 0xd31f, 0xd320, 0xd321, 0xd325, 0xd328, 0xd329, 0xd32c, 0xd330, 0xd338, 0xd339, 0xd33b, 0xd33c, 0xd33d, 0xd344, 0xd345, 0xd37c, 0xd37d, 0xd380, 0xd384, 0xd38c, 0xd38d, 0xd38f, 0xd390, 0xd391, 0xd398, 0xd399, 0xd39c, 0xd3a0, 0xd3a8, 0xd3a9, 0xd3ab, 0xd3ad, 0xd3b4, 0xd3b8, 0xd3bc, 0xd3c4, 0xd3c5, 0xd3c8, 0xd3c9, 0xd3d0, 0xd3d8, 0xd3e1, 0xd3e3, 0xd3ec, 0xd3ed, 0xd3f0, 0xd3f4, 0xd3fc, 0xd3fd, 0xd3ff, 0xd401, 0x003f, /* lead byte c7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd408, 0xd41d, 0xd440, 0xd444, 0xd45c, 0xd460, 0xd464, 0xd46d, 0xd46f, 0xd478, 0xd479, 0xd47c, 0xd47f, 0xd480, 0xd482, 0xd488, 0xd489, 0xd48b, 0xd48d, 0xd494, 0xd4a9, 0xd4cc, 0xd4d0, 0xd4d4, 0xd4dc, 0xd4df, 0xd4e8, 0xd4ec, 0xd4f0, 0xd4f8, 0xd4fb, 0xd4fd, 0xd504, 0xd508, 0xd50c, 0xd514, 0xd515, 0xd517, 0xd53c, 0xd53d, 0xd540, 0xd544, 0xd54c, 0xd54d, 0xd54f, 0xd551, 0xd558, 0xd559, 0xd55c, 0xd560, 0xd565, 0xd568, 0xd569, 0xd56b, 0xd56d, 0xd574, 0xd575, 0xd578, 0xd57c, 0xd584, 0xd585, 0xd587, 0xd588, 0xd589, 0xd590, 0xd5a5, 0xd5c8, 0xd5c9, 0xd5cc, 0xd5d0, 0xd5d2, 0xd5d8, 0xd5d9, 0xd5db, 0xd5dd, 0xd5e4, 0xd5e5, 0xd5e8, 0xd5ec, 0xd5f4, 0xd5f5, 0xd5f7, 0xd5f9, 0xd600, 0xd601, 0xd604, 0xd608, 0xd610, 0xd611, 0xd613, 0xd614, 0xd615, 0xd61c, 0xd620, 0x003f, /* lead byte c8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd624, 0xd62d, 0xd638, 0xd639, 0xd63c, 0xd640, 0xd645, 0xd648, 0xd649, 0xd64b, 0xd64d, 0xd651, 0xd654, 0xd655, 0xd658, 0xd65c, 0xd667, 0xd669, 0xd670, 0xd671, 0xd674, 0xd683, 0xd685, 0xd68c, 0xd68d, 0xd690, 0xd694, 0xd69d, 0xd69f, 0xd6a1, 0xd6a8, 0xd6ac, 0xd6b0, 0xd6b9, 0xd6bb, 0xd6c4, 0xd6c5, 0xd6c8, 0xd6cc, 0xd6d1, 0xd6d4, 0xd6d7, 0xd6d9, 0xd6e0, 0xd6e4, 0xd6e8, 0xd6f0, 0xd6f5, 0xd6fc, 0xd6fd, 0xd700, 0xd704, 0xd711, 0xd718, 0xd719, 0xd71c, 0xd720, 0xd728, 0xd729, 0xd72b, 0xd72d, 0xd734, 0xd735, 0xd738, 0xd73c, 0xd744, 0xd747, 0xd749, 0xd750, 0xd751, 0xd754, 0xd756, 0xd757, 0xd758, 0xd759, 0xd760, 0xd761, 0xd763, 0xd765, 0xd769, 0xd76c, 0xd770, 0xd774, 0xd77c, 0xd77d, 0xd781, 0xd788, 0xd789, 0xd78c, 0xd790, 0xd798, 0xd799, 0xd79b, 0xd79d, 0x003f, /* lead byte ca */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4f3d, 0x4f73, 0x5047, 0x50f9, 0x52a0, 0x53ef, 0x5475, 0x54e5, 0x5609, 0x5ac1, 0x5bb6, 0x6687, 0x67b6, 0x67b7, 0x67ef, 0x6b4c, 0x73c2, 0x75c2, 0x7a3c, 0x82db, 0x8304, 0x8857, 0x8888, 0x8a36, 0x8cc8, 0x8dcf, 0x8efb, 0x8fe6, 0x99d5, 0x523b, 0x5374, 0x5404, 0x606a, 0x6164, 0x6bbc, 0x73cf, 0x811a, 0x89ba, 0x89d2, 0x95a3, 0x4f83, 0x520a, 0x58be, 0x5978, 0x59e6, 0x5e72, 0x5e79, 0x61c7, 0x63c0, 0x6746, 0x67ec, 0x687f, 0x6f97, 0x764e, 0x770b, 0x78f5, 0x7a08, 0x7aff, 0x7c21, 0x809d, 0x826e, 0x8271, 0x8aeb, 0x9593, 0x4e6b, 0x559d, 0x66f7, 0x6e34, 0x78a3, 0x7aed, 0x845b, 0x8910, 0x874e, 0x97a8, 0x52d8, 0x574e, 0x582a, 0x5d4c, 0x611f, 0x61be, 0x6221, 0x6562, 0x67d1, 0x6a44, 0x6e1b, 0x7518, 0x75b3, 0x76e3, 0x77b0, 0x7d3a, 0x90af, 0x9451, 0x9452, 0x9f95, 0x003f, /* lead byte cb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5323, 0x5cac, 0x7532, 0x80db, 0x9240, 0x9598, 0x525b, 0x5808, 0x59dc, 0x5ca1, 0x5d17, 0x5eb7, 0x5f3a, 0x5f4a, 0x6177, 0x6c5f, 0x757a, 0x7586, 0x7ce0, 0x7d73, 0x7db1, 0x7f8c, 0x8154, 0x8221, 0x8591, 0x8941, 0x8b1b, 0x92fc, 0x964d, 0x9c47, 0x4ecb, 0x4ef7, 0x500b, 0x51f1, 0x584f, 0x6137, 0x613e, 0x6168, 0x6539, 0x69ea, 0x6f11, 0x75a5, 0x7686, 0x76d6, 0x7b87, 0x82a5, 0x84cb, 0xf900, 0x93a7, 0x958b, 0x5580, 0x5ba2, 0x5751, 0xf901, 0x7cb3, 0x7fb9, 0x91b5, 0x5028, 0x53bb, 0x5c45, 0x5de8, 0x62d2, 0x636e, 0x64da, 0x64e7, 0x6e20, 0x70ac, 0x795b, 0x8ddd, 0x8e1e, 0xf902, 0x907d, 0x9245, 0x92f8, 0x4e7e, 0x4ef6, 0x5065, 0x5dfe, 0x5efa, 0x6106, 0x6957, 0x8171, 0x8654, 0x8e47, 0x9375, 0x9a2b, 0x4e5e, 0x5091, 0x6770, 0x6840, 0x5109, 0x528d, 0x5292, 0x6aa2, 0x003f, /* lead byte cc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x77bc, 0x9210, 0x9ed4, 0x52ab, 0x602f, 0x8ff2, 0x5048, 0x61a9, 0x63ed, 0x64ca, 0x683c, 0x6a84, 0x6fc0, 0x8188, 0x89a1, 0x9694, 0x5805, 0x727d, 0x72ac, 0x7504, 0x7d79, 0x7e6d, 0x80a9, 0x898b, 0x8b74, 0x9063, 0x9d51, 0x6289, 0x6c7a, 0x6f54, 0x7d50, 0x7f3a, 0x8a23, 0x517c, 0x614a, 0x7b9d, 0x8b19, 0x9257, 0x938c, 0x4eac, 0x4fd3, 0x501e, 0x50be, 0x5106, 0x52c1, 0x52cd, 0x537f, 0x5770, 0x5883, 0x5e9a, 0x5f91, 0x6176, 0x61ac, 0x64ce, 0x656c, 0x666f, 0x66bb, 0x66f4, 0x6897, 0x6d87, 0x7085, 0x70f1, 0x749f, 0x74a5, 0x74ca, 0x75d9, 0x786c, 0x78ec, 0x7adf, 0x7af6, 0x7d45, 0x7d93, 0x8015, 0x803f, 0x811b, 0x8396, 0x8b66, 0x8f15, 0x9015, 0x93e1, 0x9803, 0x9838, 0x9a5a, 0x9be8, 0x4fc2, 0x5553, 0x583a, 0x5951, 0x5b63, 0x5c46, 0x60b8, 0x6212, 0x6842, 0x68b0, 0x003f, /* lead byte cd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x68e8, 0x6eaa, 0x754c, 0x7678, 0x78ce, 0x7a3d, 0x7cfb, 0x7e6b, 0x7e7c, 0x8a08, 0x8aa1, 0x8c3f, 0x968e, 0x9dc4, 0x53e4, 0x53e9, 0x544a, 0x5471, 0x56fa, 0x59d1, 0x5b64, 0x5c3b, 0x5eab, 0x62f7, 0x6537, 0x6545, 0x6572, 0x66a0, 0x67af, 0x69c1, 0x6cbd, 0x75fc, 0x7690, 0x777e, 0x7a3f, 0x7f94, 0x8003, 0x80a1, 0x818f, 0x82e6, 0x82fd, 0x83f0, 0x85c1, 0x8831, 0x88b4, 0x8aa5, 0xf903, 0x8f9c, 0x932e, 0x96c7, 0x9867, 0x9ad8, 0x9f13, 0x54ed, 0x659b, 0x66f2, 0x688f, 0x7a40, 0x8c37, 0x9d60, 0x56f0, 0x5764, 0x5d11, 0x6606, 0x68b1, 0x68cd, 0x6efe, 0x7428, 0x889e, 0x9be4, 0x6c68, 0xf904, 0x9aa8, 0x4f9b, 0x516c, 0x5171, 0x529f, 0x5b54, 0x5de5, 0x6050, 0x606d, 0x62f1, 0x63a7, 0x653b, 0x73d9, 0x7a7a, 0x86a3, 0x8ca2, 0x978f, 0x4e32, 0x5be1, 0x6208, 0x679c, 0x74dc, 0x003f, /* lead byte ce */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x79d1, 0x83d3, 0x8a87, 0x8ab2, 0x8de8, 0x904e, 0x934b, 0x9846, 0x5ed3, 0x69e8, 0x85ff, 0x90ed, 0xf905, 0x51a0, 0x5b98, 0x5bec, 0x6163, 0x68fa, 0x6b3e, 0x704c, 0x742f, 0x74d8, 0x7ba1, 0x7f50, 0x83c5, 0x89c0, 0x8cab, 0x95dc, 0x9928, 0x522e, 0x605d, 0x62ec, 0x9002, 0x4f8a, 0x5149, 0x5321, 0x58d9, 0x5ee3, 0x66e0, 0x6d38, 0x709a, 0x72c2, 0x73d6, 0x7b50, 0x80f1, 0x945b, 0x5366, 0x639b, 0x7f6b, 0x4e56, 0x5080, 0x584a, 0x58de, 0x602a, 0x6127, 0x62d0, 0x69d0, 0x9b41, 0x5b8f, 0x7d18, 0x80b1, 0x8f5f, 0x4ea4, 0x50d1, 0x54ac, 0x55ac, 0x5b0c, 0x5da0, 0x5de7, 0x652a, 0x654e, 0x6821, 0x6a4b, 0x72e1, 0x768e, 0x77ef, 0x7d5e, 0x7ff9, 0x81a0, 0x854e, 0x86df, 0x8f03, 0x8f4e, 0x90ca, 0x9903, 0x9a55, 0x9bab, 0x4e18, 0x4e45, 0x4e5d, 0x4ec7, 0x4ff1, 0x5177, 0x52fe, 0x003f, /* lead byte cf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5340, 0x53e3, 0x53e5, 0x548e, 0x5614, 0x5775, 0x57a2, 0x5bc7, 0x5d87, 0x5ed0, 0x61fc, 0x62d8, 0x6551, 0x67b8, 0x67e9, 0x69cb, 0x6b50, 0x6bc6, 0x6bec, 0x6c42, 0x6e9d, 0x7078, 0x72d7, 0x7396, 0x7403, 0x77bf, 0x77e9, 0x7a76, 0x7d7f, 0x8009, 0x81fc, 0x8205, 0x820a, 0x82df, 0x8862, 0x8b33, 0x8cfc, 0x8ec0, 0x9011, 0x90b1, 0x9264, 0x92b6, 0x99d2, 0x9a45, 0x9ce9, 0x9dd7, 0x9f9c, 0x570b, 0x5c40, 0x83ca, 0x97a0, 0x97ab, 0x9eb4, 0x541b, 0x7a98, 0x7fa4, 0x88d9, 0x8ecd, 0x90e1, 0x5800, 0x5c48, 0x6398, 0x7a9f, 0x5bae, 0x5f13, 0x7a79, 0x7aae, 0x828e, 0x8eac, 0x5026, 0x5238, 0x52f8, 0x5377, 0x5708, 0x62f3, 0x6372, 0x6b0a, 0x6dc3, 0x7737, 0x53a5, 0x7357, 0x8568, 0x8e76, 0x95d5, 0x673a, 0x6ac3, 0x6f70, 0x8a6d, 0x8ecc, 0x994b, 0xf906, 0x6677, 0x6b78, 0x8cb4, 0x003f, /* lead byte d0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b3c, 0xf907, 0x53eb, 0x572d, 0x594e, 0x63c6, 0x69fb, 0x73ea, 0x7845, 0x7aba, 0x7ac5, 0x7cfe, 0x8475, 0x898f, 0x8d73, 0x9035, 0x95a8, 0x52fb, 0x5747, 0x7547, 0x7b60, 0x83cc, 0x921e, 0xf908, 0x6a58, 0x514b, 0x524b, 0x5287, 0x621f, 0x68d8, 0x6975, 0x9699, 0x50c5, 0x52a4, 0x52e4, 0x61c3, 0x65a4, 0x6839, 0x69ff, 0x747e, 0x7b4b, 0x82b9, 0x83eb, 0x89b2, 0x8b39, 0x8fd1, 0x9949, 0xf909, 0x4eca, 0x5997, 0x64d2, 0x6611, 0x6a8e, 0x7434, 0x7981, 0x79bd, 0x82a9, 0x887e, 0x887f, 0x895f, 0xf90a, 0x9326, 0x4f0b, 0x53ca, 0x6025, 0x6271, 0x6c72, 0x7d1a, 0x7d66, 0x4e98, 0x5162, 0x77dc, 0x80af, 0x4f01, 0x4f0e, 0x5176, 0x5180, 0x55dc, 0x5668, 0x573b, 0x57fa, 0x57fc, 0x5914, 0x5947, 0x5993, 0x5bc4, 0x5c90, 0x5d0e, 0x5df1, 0x5e7e, 0x5fcc, 0x6280, 0x65d7, 0x65e3, 0x003f, /* lead byte d1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x671e, 0x671f, 0x675e, 0x68cb, 0x68c4, 0x6a5f, 0x6b3a, 0x6c23, 0x6c7d, 0x6c82, 0x6dc7, 0x7398, 0x7426, 0x742a, 0x7482, 0x74a3, 0x7578, 0x757f, 0x7881, 0x78ef, 0x7941, 0x7947, 0x7948, 0x797a, 0x7b95, 0x7d00, 0x7dba, 0x7f88, 0x8006, 0x802d, 0x808c, 0x8a18, 0x8b4f, 0x8c48, 0x8d77, 0x9321, 0x9324, 0x98e2, 0x9951, 0x9a0e, 0x9a0f, 0x9a65, 0x9e92, 0x7dca, 0x4f76, 0x5409, 0x62ee, 0x6854, 0x91d1, 0x55ab, 0x513a, 0xf90b, 0xf90c, 0x5a1c, 0x61e6, 0xf90d, 0x62cf, 0x62ff, 0xf90e, 0xf90f, 0xf910, 0xf911, 0xf912, 0xf913, 0x90a3, 0xf914, 0xf915, 0xf916, 0xf917, 0xf918, 0x8afe, 0xf919, 0xf91a, 0xf91b, 0xf91c, 0x6696, 0xf91d, 0x7156, 0xf91e, 0xf91f, 0x96e3, 0xf920, 0x634f, 0x637a, 0x5357, 0xf921, 0x678f, 0x6960, 0x6e73, 0xf922, 0x7537, 0xf923, 0xf924, 0xf925, 0x003f, /* lead byte d2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7d0d, 0xf926, 0xf927, 0x8872, 0x56ca, 0x5a18, 0xf928, 0xf929, 0xf92a, 0xf92b, 0xf92c, 0x4e43, 0xf92d, 0x5167, 0x5948, 0x67f0, 0x8010, 0xf92e, 0x5973, 0x5e74, 0x649a, 0x79ca, 0x5ff5, 0x606c, 0x62c8, 0x637b, 0x5be7, 0x5bd7, 0x52aa, 0xf92f, 0x5974, 0x5f29, 0x6012, 0xf930, 0xf931, 0xf932, 0x7459, 0xf933, 0xf934, 0xf935, 0xf936, 0xf937, 0xf938, 0x99d1, 0xf939, 0xf93a, 0xf93b, 0xf93c, 0xf93d, 0xf93e, 0xf93f, 0xf940, 0xf941, 0xf942, 0xf943, 0x6fc3, 0xf944, 0xf945, 0x81bf, 0x8fb2, 0x60f1, 0xf946, 0xf947, 0x8166, 0xf948, 0xf949, 0x5c3f, 0xf94a, 0xf94b, 0xf94c, 0xf94d, 0xf94e, 0xf94f, 0xf950, 0xf951, 0x5ae9, 0x8a25, 0x677b, 0x7d10, 0xf952, 0xf953, 0xf954, 0xf955, 0xf956, 0xf957, 0x80fd, 0xf958, 0xf959, 0x5c3c, 0x6ce5, 0x533f, 0x6eba, 0x591a, 0x8336, 0x003f, /* lead byte d3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e39, 0x4eb6, 0x4f46, 0x55ae, 0x5718, 0x58c7, 0x5f56, 0x65b7, 0x65e6, 0x6a80, 0x6bb5, 0x6e4d, 0x77ed, 0x7aef, 0x7c1e, 0x7dde, 0x86cb, 0x8892, 0x9132, 0x935b, 0x64bb, 0x6fbe, 0x737a, 0x75b8, 0x9054, 0x5556, 0x574d, 0x61ba, 0x64d4, 0x66c7, 0x6de1, 0x6e5b, 0x6f6d, 0x6fb9, 0x75f0, 0x8043, 0x81bd, 0x8541, 0x8983, 0x8ac7, 0x8b5a, 0x931f, 0x6c93, 0x7553, 0x7b54, 0x8e0f, 0x905d, 0x5510, 0x5802, 0x5858, 0x5e62, 0x6207, 0x649e, 0x68e0, 0x7576, 0x7cd6, 0x87b3, 0x9ee8, 0x4ee3, 0x5788, 0x576e, 0x5927, 0x5c0d, 0x5cb1, 0x5e36, 0x5f85, 0x6234, 0x64e1, 0x73b3, 0x81fa, 0x888b, 0x8cb8, 0x968a, 0x9edb, 0x5b85, 0x5fb7, 0x60b3, 0x5012, 0x5200, 0x5230, 0x5716, 0x5835, 0x5857, 0x5c0e, 0x5c60, 0x5cf6, 0x5d8b, 0x5ea6, 0x5f92, 0x60bc, 0x6311, 0x6389, 0x6417, 0x6843, 0x003f, /* lead byte d4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x68f9, 0x6ac2, 0x6dd8, 0x6e21, 0x6ed4, 0x6fe4, 0x71fe, 0x76dc, 0x7779, 0x79b1, 0x7a3b, 0x8404, 0x89a9, 0x8ced, 0x8df3, 0x8e48, 0x9003, 0x9014, 0x9053, 0x90fd, 0x934d, 0x9676, 0x97dc, 0x6bd2, 0x7006, 0x7258, 0x72a2, 0x7368, 0x7763, 0x79bf, 0x7be4, 0x7e9b, 0x8b80, 0x58a9, 0x60c7, 0x6566, 0x65fd, 0x66be, 0x6c8c, 0x711e, 0x71c9, 0x8c5a, 0x9813, 0x4e6d, 0x7a81, 0x4edd, 0x51ac, 0x51cd, 0x52d5, 0x540c, 0x61a7, 0x6771, 0x6850, 0x68df, 0x6d1e, 0x6f7c, 0x75bc, 0x77b3, 0x7ae5, 0x80f4, 0x8463, 0x9285, 0x515c, 0x6597, 0x675c, 0x6793, 0x75d8, 0x7ac7, 0x8373, 0xf95a, 0x8c46, 0x9017, 0x982d, 0x5c6f, 0x81c0, 0x829a, 0x9041, 0x906f, 0x920d, 0x5f97, 0x5d9d, 0x6a59, 0x71c8, 0x767b, 0x7b49, 0x85e4, 0x8b04, 0x9127, 0x9a30, 0x5587, 0x61f6, 0xf95b, 0x7669, 0x7f85, 0x003f, /* lead byte d5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x863f, 0x87ba, 0x88f8, 0x908f, 0xf95c, 0x6d1b, 0x70d9, 0x73de, 0x7d61, 0x843d, 0xf95d, 0x916a, 0x99f1, 0xf95e, 0x4e82, 0x5375, 0x6b04, 0x6b12, 0x703e, 0x721b, 0x862d, 0x9e1e, 0x524c, 0x8fa3, 0x5d50, 0x64e5, 0x652c, 0x6b16, 0x6feb, 0x7c43, 0x7e9c, 0x85cd, 0x8964, 0x89bd, 0x62c9, 0x81d8, 0x881f, 0x5eca, 0x6717, 0x6d6a, 0x72fc, 0x7405, 0x746f, 0x8782, 0x90de, 0x4f86, 0x5d0d, 0x5fa0, 0x840a, 0x51b7, 0x63a0, 0x7565, 0x4eae, 0x5006, 0x5169, 0x51c9, 0x6881, 0x6a11, 0x7cae, 0x7cb1, 0x7ce7, 0x826f, 0x8ad2, 0x8f1b, 0x91cf, 0x4fb6, 0x5137, 0x52f5, 0x5442, 0x5eec, 0x616e, 0x623e, 0x65c5, 0x6ada, 0x6ffe, 0x792a, 0x85dc, 0x8823, 0x95ad, 0x9a62, 0x9a6a, 0x9e97, 0x9ece, 0x529b, 0x66c6, 0x6b77, 0x701d, 0x792b, 0x8f62, 0x9742, 0x6190, 0x6200, 0x6523, 0x6f23, 0x003f, /* lead byte d6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7149, 0x7489, 0x7df4, 0x806f, 0x84ee, 0x8f26, 0x9023, 0x934a, 0x51bd, 0x5217, 0x52a3, 0x6d0c, 0x70c8, 0x88c2, 0x5ec9, 0x6582, 0x6bae, 0x6fc2, 0x7c3e, 0x7375, 0x4ee4, 0x4f36, 0x56f9, 0xf95f, 0x5cba, 0x5dba, 0x601c, 0x73b2, 0x7b2d, 0x7f9a, 0x7fce, 0x8046, 0x901e, 0x9234, 0x96f6, 0x9748, 0x9818, 0x9f61, 0x4f8b, 0x6fa7, 0x79ae, 0x91b4, 0x96b7, 0x52de, 0xf960, 0x6488, 0x64c4, 0x6ad3, 0x6f5e, 0x7018, 0x7210, 0x76e7, 0x8001, 0x8606, 0x865c, 0x8def, 0x8f05, 0x9732, 0x9b6f, 0x9dfa, 0x9e75, 0x788c, 0x797f, 0x7da0, 0x83c9, 0x9304, 0x9e7f, 0x9e93, 0x8ad6, 0x58df, 0x5f04, 0x6727, 0x7027, 0x74cf, 0x7c60, 0x807e, 0x5121, 0x7028, 0x7262, 0x78ca, 0x8cc2, 0x8cda, 0x8cf4, 0x96f7, 0x4e86, 0x50da, 0x5bee, 0x5ed6, 0x6599, 0x71ce, 0x7642, 0x77ad, 0x804a, 0x84fc, 0x003f, /* lead byte d7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x907c, 0x9b27, 0x9f8d, 0x58d8, 0x5a41, 0x5c62, 0x6a13, 0x6dda, 0x6f0f, 0x763b, 0x7d2f, 0x7e37, 0x851e, 0x8938, 0x93e4, 0x964b, 0x5289, 0x65d2, 0x67f3, 0x69b4, 0x6d41, 0x6e9c, 0x700f, 0x7409, 0x7460, 0x7559, 0x7624, 0x786b, 0x8b2c, 0x985e, 0x516d, 0x622e, 0x9678, 0x4f96, 0x502b, 0x5d19, 0x6dea, 0x7db8, 0x8f2a, 0x5f8b, 0x6144, 0x6817, 0xf961, 0x9686, 0x52d2, 0x808b, 0x51dc, 0x51cc, 0x695e, 0x7a1c, 0x7dbe, 0x83f1, 0x9675, 0x4fda, 0x5229, 0x5398, 0x540f, 0x550e, 0x5c65, 0x60a7, 0x674e, 0x68a8, 0x6d6c, 0x7281, 0x72f8, 0x7406, 0x7483, 0xf962, 0x75e2, 0x7c6c, 0x7f79, 0x7fb8, 0x8389, 0x88cf, 0x88e1, 0x91cc, 0x91d0, 0x96e2, 0x9bc9, 0x541d, 0x6f7e, 0x71d0, 0x7498, 0x85fa, 0x8eaa, 0x96a3, 0x9c57, 0x9e9f, 0x6797, 0x6dcb, 0x7433, 0x81e8, 0x9716, 0x782c, 0x003f, /* lead byte d8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7acb, 0x7b20, 0x7c92, 0x6469, 0x746a, 0x75f2, 0x78bc, 0x78e8, 0x99ac, 0x9b54, 0x9ebb, 0x5bde, 0x5e55, 0x6f20, 0x819c, 0x83ab, 0x9088, 0x4e07, 0x534d, 0x5a29, 0x5dd2, 0x5f4e, 0x6162, 0x633d, 0x6669, 0x66fc, 0x6eff, 0x6f2b, 0x7063, 0x779e, 0x842c, 0x8513, 0x883b, 0x8f13, 0x9945, 0x9c3b, 0x551c, 0x62b9, 0x672b, 0x6cab, 0x8309, 0x896a, 0x977a, 0x4ea1, 0x5984, 0x5fd8, 0x5fd9, 0x671b, 0x7db2, 0x7f54, 0x8292, 0x832b, 0x83bd, 0x8f1e, 0x9099, 0x57cb, 0x59b9, 0x5a92, 0x5bd0, 0x6627, 0x679a, 0x6885, 0x6bcf, 0x7164, 0x7f75, 0x8cb7, 0x8ce3, 0x9081, 0x9b45, 0x8108, 0x8c8a, 0x964c, 0x9a40, 0x9ea5, 0x5b5f, 0x6c13, 0x731b, 0x76f2, 0x76df, 0x840c, 0x51aa, 0x8993, 0x514d, 0x5195, 0x52c9, 0x68c9, 0x6c94, 0x7704, 0x7720, 0x7dbf, 0x7dec, 0x9762, 0x9eb5, 0x6ec5, 0x003f, /* lead byte d9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8511, 0x51a5, 0x540d, 0x547d, 0x660e, 0x669d, 0x6927, 0x6e9f, 0x76bf, 0x7791, 0x8317, 0x84c2, 0x879f, 0x9169, 0x9298, 0x9cf4, 0x8882, 0x4fae, 0x5192, 0x52df, 0x59c6, 0x5e3d, 0x6155, 0x6478, 0x6479, 0x66ae, 0x67d0, 0x6a21, 0x6bcd, 0x6bdb, 0x725f, 0x7261, 0x7441, 0x7738, 0x77db, 0x8017, 0x82bc, 0x8305, 0x8b00, 0x8b28, 0x8c8c, 0x6728, 0x6c90, 0x7267, 0x76ee, 0x7766, 0x7a46, 0x9da9, 0x6b7f, 0x6c92, 0x5922, 0x6726, 0x8499, 0x536f, 0x5893, 0x5999, 0x5edf, 0x63cf, 0x6634, 0x6773, 0x6e3a, 0x732b, 0x7ad7, 0x82d7, 0x9328, 0x52d9, 0x5deb, 0x61ae, 0x61cb, 0x620a, 0x62c7, 0x64ab, 0x65e0, 0x6959, 0x6b66, 0x6bcb, 0x7121, 0x73f7, 0x755d, 0x7e46, 0x821e, 0x8302, 0x856a, 0x8aa3, 0x8cbf, 0x9727, 0x9d61, 0x58a8, 0x9ed8, 0x5011, 0x520e, 0x543b, 0x554f, 0x6587, 0x003f, /* lead byte da */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6c76, 0x7d0a, 0x7d0b, 0x805e, 0x868a, 0x9580, 0x96ef, 0x52ff, 0x6c95, 0x7269, 0x5473, 0x5a9a, 0x5c3e, 0x5d4b, 0x5f4c, 0x5fae, 0x672a, 0x68b6, 0x6963, 0x6e3c, 0x6e44, 0x7709, 0x7c73, 0x7f8e, 0x8587, 0x8b0e, 0x8ff7, 0x9761, 0x9ef4, 0x5cb7, 0x60b6, 0x610d, 0x61ab, 0x654f, 0x65fb, 0x65fc, 0x6c11, 0x6cef, 0x739f, 0x73c9, 0x7de1, 0x9594, 0x5bc6, 0x871c, 0x8b10, 0x525d, 0x535a, 0x62cd, 0x640f, 0x64b2, 0x6734, 0x6a38, 0x6cca, 0x73c0, 0x749e, 0x7b94, 0x7c95, 0x7e1b, 0x818a, 0x8236, 0x8584, 0x8feb, 0x96f9, 0x99c1, 0x4f34, 0x534a, 0x53cd, 0x53db, 0x62cc, 0x642c, 0x6500, 0x6591, 0x69c3, 0x6cee, 0x6f58, 0x73ed, 0x7554, 0x7622, 0x76e4, 0x76fc, 0x78d0, 0x78fb, 0x792c, 0x7d46, 0x822c, 0x87e0, 0x8fd4, 0x9812, 0x98ef, 0x52c3, 0x62d4, 0x64a5, 0x6e24, 0x6f51, 0x003f, /* lead byte db */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x767c, 0x8dcb, 0x91b1, 0x9262, 0x9aee, 0x9b43, 0x5023, 0x508d, 0x574a, 0x59a8, 0x5c28, 0x5e47, 0x5f77, 0x623f, 0x653e, 0x65b9, 0x65c1, 0x6609, 0x678b, 0x699c, 0x6ec2, 0x78c5, 0x7d21, 0x80aa, 0x8180, 0x822b, 0x82b3, 0x84a1, 0x868c, 0x8a2a, 0x8b17, 0x90a6, 0x9632, 0x9f90, 0x500d, 0x4ff3, 0xf963, 0x57f9, 0x5f98, 0x62dc, 0x6392, 0x676f, 0x6e43, 0x7119, 0x76c3, 0x80cc, 0x80da, 0x88f4, 0x88f5, 0x8919, 0x8ce0, 0x8f29, 0x914d, 0x966a, 0x4f2f, 0x4f70, 0x5e1b, 0x67cf, 0x6822, 0x767d, 0x767e, 0x9b44, 0x5e61, 0x6a0a, 0x7169, 0x71d4, 0x756a, 0xf964, 0x7e41, 0x8543, 0x85e9, 0x98dc, 0x4f10, 0x7b4f, 0x7f70, 0x95a5, 0x51e1, 0x5e06, 0x68b5, 0x6c3e, 0x6c4e, 0x6cdb, 0x72af, 0x7bc4, 0x8303, 0x6cd5, 0x743a, 0x50fb, 0x5288, 0x58c1, 0x64d8, 0x6a97, 0x74a7, 0x7656, 0x003f, /* lead byte dc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x78a7, 0x8617, 0x95e2, 0x9739, 0xf965, 0x535e, 0x5f01, 0x8b8a, 0x8fa8, 0x8faf, 0x908a, 0x5225, 0x77a5, 0x9c49, 0x9f08, 0x4e19, 0x5002, 0x5175, 0x5c5b, 0x5e77, 0x661e, 0x663a, 0x67c4, 0x68c5, 0x70b3, 0x7501, 0x75c5, 0x79c9, 0x7add, 0x8f27, 0x9920, 0x9a08, 0x4fdd, 0x5821, 0x5831, 0x5bf6, 0x666e, 0x6b65, 0x6d11, 0x6e7a, 0x6f7d, 0x73e4, 0x752b, 0x83e9, 0x88dc, 0x8913, 0x8b5c, 0x8f14, 0x4f0f, 0x50d5, 0x5310, 0x535c, 0x5b93, 0x5fa9, 0x670d, 0x798f, 0x8179, 0x832f, 0x8514, 0x8907, 0x8986, 0x8f39, 0x8f3b, 0x99a5, 0x9c12, 0x672c, 0x4e76, 0x4ff8, 0x5949, 0x5c01, 0x5cef, 0x5cf0, 0x6367, 0x68d2, 0x70fd, 0x71a2, 0x742b, 0x7e2b, 0x84ec, 0x8702, 0x9022, 0x92d2, 0x9cf3, 0x4e0d, 0x4ed8, 0x4fef, 0x5085, 0x5256, 0x526f, 0x5426, 0x5490, 0x57e0, 0x592b, 0x5a66, 0x003f, /* lead byte dd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5b5a, 0x5b75, 0x5bcc, 0x5e9c, 0xf966, 0x6276, 0x6577, 0x65a7, 0x6d6e, 0x6ea5, 0x7236, 0x7b26, 0x7c3f, 0x7f36, 0x8150, 0x8151, 0x819a, 0x8240, 0x8299, 0x83a9, 0x8a03, 0x8ca0, 0x8ce6, 0x8cfb, 0x8d74, 0x8dba, 0x90e8, 0x91dc, 0x961c, 0x9644, 0x99d9, 0x9ce7, 0x5317, 0x5206, 0x5429, 0x5674, 0x58b3, 0x5954, 0x596e, 0x5fff, 0x61a4, 0x626e, 0x6610, 0x6c7e, 0x711a, 0x76c6, 0x7c89, 0x7cde, 0x7d1b, 0x82ac, 0x8cc1, 0x96f0, 0xf967, 0x4f5b, 0x5f17, 0x5f7f, 0x62c2, 0x5d29, 0x670b, 0x68da, 0x787c, 0x7e43, 0x9d6c, 0x4e15, 0x5099, 0x5315, 0x532a, 0x5351, 0x5983, 0x5a62, 0x5e87, 0x60b2, 0x618a, 0x6249, 0x6279, 0x6590, 0x6787, 0x69a7, 0x6bd4, 0x6bd6, 0x6bd7, 0x6bd8, 0x6cb8, 0xf968, 0x7435, 0x75fa, 0x7812, 0x7891, 0x79d5, 0x79d8, 0x7c83, 0x7dcb, 0x7fe1, 0x80a5, 0x003f, /* lead byte de */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x813e, 0x81c2, 0x83f2, 0x871a, 0x88e8, 0x8ab9, 0x8b6c, 0x8cbb, 0x9119, 0x975e, 0x98db, 0x9f3b, 0x56ac, 0x5b2a, 0x5f6c, 0x658c, 0x6ab3, 0x6baf, 0x6d5c, 0x6ff1, 0x7015, 0x725d, 0x73ad, 0x8ca7, 0x8cd3, 0x983b, 0x6191, 0x6c37, 0x8058, 0x9a01, 0x4e4d, 0x4e8b, 0x4e9b, 0x4ed5, 0x4f3a, 0x4f3c, 0x4f7f, 0x4fdf, 0x50ff, 0x53f2, 0x53f8, 0x5506, 0x55e3, 0x56db, 0x58eb, 0x5962, 0x5a11, 0x5beb, 0x5bfa, 0x5c04, 0x5df3, 0x5e2b, 0x5f99, 0x601d, 0x6368, 0x659c, 0x65af, 0x67f6, 0x67fb, 0x68ad, 0x6b7b, 0x6c99, 0x6cd7, 0x6e23, 0x7009, 0x7345, 0x7802, 0x793e, 0x7940, 0x7960, 0x79c1, 0x7be9, 0x7d17, 0x7d72, 0x8086, 0x820d, 0x838e, 0x84d1, 0x86c7, 0x88df, 0x8a50, 0x8a5e, 0x8b1d, 0x8cdc, 0x8d66, 0x8fad, 0x90aa, 0x98fc, 0x99df, 0x9e9d, 0x524a, 0xf969, 0x6714, 0xf96a, 0x003f, /* lead byte df */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5098, 0x522a, 0x5c71, 0x6563, 0x6c55, 0x73ca, 0x7523, 0x759d, 0x7b97, 0x849c, 0x9178, 0x9730, 0x4e77, 0x6492, 0x6bba, 0x715e, 0x85a9, 0x4e09, 0xf96b, 0x6749, 0x68ee, 0x6e17, 0x829f, 0x8518, 0x886b, 0x63f7, 0x6f81, 0x9212, 0x98af, 0x4e0a, 0x50b7, 0x50cf, 0x511f, 0x5546, 0x55aa, 0x5617, 0x5b40, 0x5c19, 0x5ce0, 0x5e38, 0x5e8a, 0x5ea0, 0x5ec2, 0x60f3, 0x6851, 0x6a61, 0x6e58, 0x723d, 0x7240, 0x72c0, 0x76f8, 0x7965, 0x7bb1, 0x7fd4, 0x88f3, 0x89f4, 0x8a73, 0x8c61, 0x8cde, 0x971c, 0x585e, 0x74bd, 0x8cfd, 0x55c7, 0xf96c, 0x7a61, 0x7d22, 0x8272, 0x7272, 0x751f, 0x7525, 0xf96d, 0x7b19, 0x5885, 0x58fb, 0x5dbc, 0x5e8f, 0x5eb6, 0x5f90, 0x6055, 0x6292, 0x637f, 0x654d, 0x6691, 0x66d9, 0x66f8, 0x6816, 0x68f2, 0x7280, 0x745e, 0x7b6e, 0x7d6e, 0x7dd6, 0x7f72, 0x003f, /* lead byte e0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x80e5, 0x8212, 0x85af, 0x897f, 0x8a93, 0x901d, 0x92e4, 0x9ecd, 0x9f20, 0x5915, 0x596d, 0x5e2d, 0x60dc, 0x6614, 0x6673, 0x6790, 0x6c50, 0x6dc5, 0x6f5f, 0x77f3, 0x78a9, 0x84c6, 0x91cb, 0x932b, 0x4ed9, 0x50ca, 0x5148, 0x5584, 0x5b0b, 0x5ba3, 0x6247, 0x657e, 0x65cb, 0x6e32, 0x717d, 0x7401, 0x7444, 0x7487, 0x74bf, 0x766c, 0x79aa, 0x7dda, 0x7e55, 0x7fa8, 0x817a, 0x81b3, 0x8239, 0x861a, 0x87ec, 0x8a75, 0x8de3, 0x9078, 0x9291, 0x9425, 0x994d, 0x9bae, 0x5368, 0x5c51, 0x6954, 0x6cc4, 0x6d29, 0x6e2b, 0x820c, 0x859b, 0x893b, 0x8a2d, 0x8aaa, 0x96ea, 0x9f67, 0x5261, 0x66b9, 0x6bb2, 0x7e96, 0x87fe, 0x8d0d, 0x9583, 0x965d, 0x651d, 0x6d89, 0x71ee, 0xf96e, 0x57ce, 0x59d3, 0x5bac, 0x6027, 0x60fa, 0x6210, 0x661f, 0x665f, 0x7329, 0x73f9, 0x76db, 0x7701, 0x7b6c, 0x003f, /* lead byte e1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8056, 0x8072, 0x8165, 0x8aa0, 0x9192, 0x4e16, 0x52e2, 0x6b72, 0x6d17, 0x7a05, 0x7b39, 0x7d30, 0xf96f, 0x8cb0, 0x53ec, 0x562f, 0x5851, 0x5bb5, 0x5c0f, 0x5c11, 0x5de2, 0x6240, 0x6383, 0x6414, 0x662d, 0x68b3, 0x6cbc, 0x6d88, 0x6eaf, 0x701f, 0x70a4, 0x71d2, 0x7526, 0x758f, 0x758e, 0x7619, 0x7b11, 0x7be0, 0x7c2b, 0x7d20, 0x7d39, 0x852c, 0x856d, 0x8607, 0x8a34, 0x900d, 0x9061, 0x90b5, 0x92b7, 0x97f6, 0x9a37, 0x4fd7, 0x5c6c, 0x675f, 0x6d91, 0x7c9f, 0x7e8c, 0x8b16, 0x8d16, 0x901f, 0x5b6b, 0x5dfd, 0x640d, 0x84c0, 0x905c, 0x98e1, 0x7387, 0x5b8b, 0x609a, 0x677e, 0x6dde, 0x8a1f, 0x8aa6, 0x9001, 0x980c, 0x5237, 0xf970, 0x7051, 0x788e, 0x9396, 0x8870, 0x91d7, 0x4fee, 0x53d7, 0x55fd, 0x56da, 0x5782, 0x58fd, 0x5ac2, 0x5b88, 0x5cab, 0x5cc0, 0x5e25, 0x6101, 0x003f, /* lead byte e2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x620d, 0x624b, 0x6388, 0x641c, 0x6536, 0x6578, 0x6a39, 0x6b8a, 0x6c34, 0x6d19, 0x6f31, 0x71e7, 0x72e9, 0x7378, 0x7407, 0x74b2, 0x7626, 0x7761, 0x79c0, 0x7a57, 0x7aea, 0x7cb9, 0x7d8f, 0x7dac, 0x7e61, 0x7f9e, 0x8129, 0x8331, 0x8490, 0x84da, 0x85ea, 0x8896, 0x8ab0, 0x8b90, 0x8f38, 0x9042, 0x9083, 0x916c, 0x9296, 0x92b9, 0x968b, 0x96a7, 0x96a8, 0x96d6, 0x9700, 0x9808, 0x9996, 0x9ad3, 0x9b1a, 0x53d4, 0x587e, 0x5919, 0x5b70, 0x5bbf, 0x6dd1, 0x6f5a, 0x719f, 0x7421, 0x74b9, 0x8085, 0x83fd, 0x5de1, 0x5f87, 0x5faa, 0x6042, 0x65ec, 0x6812, 0x696f, 0x6a53, 0x6b89, 0x6d35, 0x6df3, 0x73e3, 0x76fe, 0x77ac, 0x7b4d, 0x7d14, 0x8123, 0x821c, 0x8340, 0x84f4, 0x8563, 0x8a62, 0x8ac4, 0x9187, 0x931e, 0x9806, 0x99b4, 0x620c, 0x8853, 0x8ff0, 0x9265, 0x5d07, 0x5d27, 0x003f, /* lead byte e3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5d69, 0x745f, 0x819d, 0x8768, 0x6fd5, 0x62fe, 0x7fd2, 0x8936, 0x8972, 0x4e1e, 0x4e58, 0x50e7, 0x52dd, 0x5347, 0x627f, 0x6607, 0x7e69, 0x8805, 0x965e, 0x4f8d, 0x5319, 0x5636, 0x59cb, 0x5aa4, 0x5c38, 0x5c4e, 0x5c4d, 0x5e02, 0x5f11, 0x6043, 0x65bd, 0x662f, 0x6642, 0x67be, 0x67f4, 0x731c, 0x77e2, 0x793a, 0x7fc5, 0x8494, 0x84cd, 0x8996, 0x8a66, 0x8a69, 0x8ae1, 0x8c55, 0x8c7a, 0x57f4, 0x5bd4, 0x5f0f, 0x606f, 0x62ed, 0x690d, 0x6b96, 0x6e5c, 0x7184, 0x7bd2, 0x8755, 0x8b58, 0x8efe, 0x98df, 0x98fe, 0x4f38, 0x4f81, 0x4fe1, 0x547b, 0x5a20, 0x5bb8, 0x613c, 0x65b0, 0x6668, 0x71fc, 0x7533, 0x795e, 0x7d33, 0x814e, 0x81e3, 0x8398, 0x85aa, 0x85ce, 0x8703, 0x8a0a, 0x8eab, 0x8f9b, 0xf971, 0x8fc5, 0x5931, 0x5ba4, 0x5be6, 0x6089, 0x5be9, 0x5c0b, 0x5fc3, 0x6c81, 0x003f, /* lead byte e4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf972, 0x6df1, 0x700b, 0x751a, 0x82af, 0x8af6, 0x4ec0, 0x5341, 0xf973, 0x96d9, 0x6c0f, 0x4e9e, 0x4fc4, 0x5152, 0x555e, 0x5a25, 0x5ce8, 0x6211, 0x7259, 0x82bd, 0x83aa, 0x86fe, 0x8859, 0x8a1d, 0x963f, 0x96c5, 0x9913, 0x9d09, 0x9d5d, 0x580a, 0x5cb3, 0x5dbd, 0x5e44, 0x60e1, 0x6115, 0x63e1, 0x6a02, 0x6e25, 0x9102, 0x9354, 0x984e, 0x9c10, 0x9f77, 0x5b89, 0x5cb8, 0x6309, 0x664f, 0x6848, 0x773c, 0x96c1, 0x978d, 0x9854, 0x9b9f, 0x65a1, 0x8b01, 0x8ecb, 0x95bc, 0x5535, 0x5ca9, 0x5dd6, 0x5eb5, 0x6697, 0x764c, 0x83f4, 0x95c7, 0x58d3, 0x62bc, 0x72ce, 0x9d28, 0x4ef0, 0x592e, 0x600f, 0x663b, 0x6b83, 0x79e7, 0x9d26, 0x5393, 0x54c0, 0x57c3, 0x5d16, 0x611b, 0x66d6, 0x6daf, 0x788d, 0x827e, 0x9698, 0x9744, 0x5384, 0x627c, 0x6396, 0x6db2, 0x7e0a, 0x814b, 0x984d, 0x003f, /* lead byte e5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6afb, 0x7f4c, 0x9daf, 0x9e1a, 0x4e5f, 0x503b, 0x51b6, 0x591c, 0x60f9, 0x63f6, 0x6930, 0x723a, 0x8036, 0xf974, 0x91ce, 0x5f31, 0xf975, 0xf976, 0x7d04, 0x82e5, 0x846f, 0x84bb, 0x85e5, 0x8e8d, 0xf977, 0x4f6f, 0xf978, 0xf979, 0x58e4, 0x5b43, 0x6059, 0x63da, 0x6518, 0x656d, 0x6698, 0xf97a, 0x694a, 0x6a23, 0x6d0b, 0x7001, 0x716c, 0x75d2, 0x760d, 0x79b3, 0x7a70, 0xf97b, 0x7f8a, 0xf97c, 0x8944, 0xf97d, 0x8b93, 0x91c0, 0x967d, 0xf97e, 0x990a, 0x5704, 0x5fa1, 0x65bc, 0x6f01, 0x7600, 0x79a6, 0x8a9e, 0x99ad, 0x9b5a, 0x9f6c, 0x5104, 0x61b6, 0x6291, 0x6a8d, 0x81c6, 0x5043, 0x5830, 0x5f66, 0x7109, 0x8a00, 0x8afa, 0x5b7c, 0x8616, 0x4ffa, 0x513c, 0x56b4, 0x5944, 0x63a9, 0x6df9, 0x5daa, 0x696d, 0x5186, 0x4e88, 0x4f59, 0xf97f, 0xf980, 0xf981, 0x5982, 0xf982, 0x003f, /* lead byte e6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf983, 0x6b5f, 0x6c5d, 0xf984, 0x74b5, 0x7916, 0xf985, 0x8207, 0x8245, 0x8339, 0x8f3f, 0x8f5d, 0xf986, 0x9918, 0xf987, 0xf988, 0xf989, 0x4ea6, 0xf98a, 0x57df, 0x5f79, 0x6613, 0xf98b, 0xf98c, 0x75ab, 0x7e79, 0x8b6f, 0xf98d, 0x9006, 0x9a5b, 0x56a5, 0x5827, 0x59f8, 0x5a1f, 0x5bb4, 0xf98e, 0x5ef6, 0xf98f, 0xf990, 0x6350, 0x633b, 0xf991, 0x693d, 0x6c87, 0x6cbf, 0x6d8e, 0x6d93, 0x6df5, 0x6f14, 0xf992, 0x70df, 0x7136, 0x7159, 0xf993, 0x71c3, 0x71d5, 0xf994, 0x784f, 0x786f, 0xf995, 0x7b75, 0x7de3, 0xf996, 0x7e2f, 0xf997, 0x884d, 0x8edf, 0xf998, 0xf999, 0xf99a, 0x925b, 0xf99b, 0x9cf6, 0xf99c, 0xf99d, 0xf99e, 0x6085, 0x6d85, 0xf99f, 0x71b1, 0xf9a0, 0xf9a1, 0x95b1, 0x53ad, 0xf9a2, 0xf9a3, 0xf9a4, 0x67d3, 0xf9a5, 0x708e, 0x7130, 0x7430, 0x8276, 0x82d2, 0x003f, /* lead byte e7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9a6, 0x95bb, 0x9ae5, 0x9e7d, 0x66c4, 0xf9a7, 0x71c1, 0x8449, 0xf9a8, 0xf9a9, 0x584b, 0xf9aa, 0xf9ab, 0x5db8, 0x5f71, 0xf9ac, 0x6620, 0x668e, 0x6979, 0x69ae, 0x6c38, 0x6cf3, 0x6e36, 0x6f41, 0x6fda, 0x701b, 0x702f, 0x7150, 0x71df, 0x7370, 0xf9ad, 0x745b, 0xf9ae, 0x74d4, 0x76c8, 0x7a4e, 0x7e93, 0xf9af, 0xf9b0, 0x82f1, 0x8a60, 0x8fce, 0xf9b1, 0x9348, 0xf9b2, 0x9719, 0xf9b3, 0xf9b4, 0x4e42, 0x502a, 0xf9b5, 0x5208, 0x53e1, 0x66f3, 0x6c6d, 0x6fca, 0x730a, 0x777f, 0x7a62, 0x82ae, 0x85dd, 0x8602, 0xf9b6, 0x88d4, 0x8a63, 0x8b7d, 0x8c6b, 0xf9b7, 0x92b3, 0xf9b8, 0x9713, 0x9810, 0x4e94, 0x4f0d, 0x4fc9, 0x50b2, 0x5348, 0x543e, 0x5433, 0x55da, 0x5862, 0x58ba, 0x5967, 0x5a1b, 0x5be4, 0x609f, 0xf9b9, 0x61ca, 0x6556, 0x65ff, 0x6664, 0x68a7, 0x6c5a, 0x6fb3, 0x003f, /* lead byte e8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x70cf, 0x71ac, 0x7352, 0x7b7d, 0x8708, 0x8aa4, 0x9c32, 0x9f07, 0x5c4b, 0x6c83, 0x7344, 0x7389, 0x923a, 0x6eab, 0x7465, 0x761f, 0x7a69, 0x7e15, 0x860a, 0x5140, 0x58c5, 0x64c1, 0x74ee, 0x7515, 0x7670, 0x7fc1, 0x9095, 0x96cd, 0x9954, 0x6e26, 0x74e6, 0x7aa9, 0x7aaa, 0x81e5, 0x86d9, 0x8778, 0x8a1b, 0x5a49, 0x5b8c, 0x5b9b, 0x68a1, 0x6900, 0x6d63, 0x73a9, 0x7413, 0x742c, 0x7897, 0x7de9, 0x7feb, 0x8118, 0x8155, 0x839e, 0x8c4c, 0x962e, 0x9811, 0x66f0, 0x5f80, 0x65fa, 0x6789, 0x6c6a, 0x738b, 0x502d, 0x5a03, 0x6b6a, 0x77ee, 0x5916, 0x5d6c, 0x5dcd, 0x7325, 0x754f, 0xf9ba, 0xf9bb, 0x50e5, 0x51f9, 0x582f, 0x592d, 0x5996, 0x59da, 0x5be5, 0xf9bc, 0xf9bd, 0x5da2, 0x62d7, 0x6416, 0x6493, 0x64fe, 0xf9be, 0x66dc, 0xf9bf, 0x6a48, 0xf9c0, 0x71ff, 0x7464, 0xf9c1, 0x003f, /* lead byte e9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7a88, 0x7aaf, 0x7e47, 0x7e5e, 0x8000, 0x8170, 0xf9c2, 0x87ef, 0x8981, 0x8b20, 0x9059, 0xf9c3, 0x9080, 0x9952, 0x617e, 0x6b32, 0x6d74, 0x7e1f, 0x8925, 0x8fb1, 0x4fd1, 0x50ad, 0x5197, 0x52c7, 0x57c7, 0x5889, 0x5bb9, 0x5eb8, 0x6142, 0x6995, 0x6d8c, 0x6e67, 0x6eb6, 0x7194, 0x7462, 0x7528, 0x752c, 0x8073, 0x8338, 0x84c9, 0x8e0a, 0x9394, 0x93de, 0xf9c4, 0x4e8e, 0x4f51, 0x5076, 0x512a, 0x53c8, 0x53cb, 0x53f3, 0x5b87, 0x5bd3, 0x5c24, 0x611a, 0x6182, 0x65f4, 0x725b, 0x7397, 0x7440, 0x76c2, 0x7950, 0x7991, 0x79b9, 0x7d06, 0x7fbd, 0x828b, 0x85d5, 0x865e, 0x8fc2, 0x9047, 0x90f5, 0x91ea, 0x9685, 0x96e8, 0x96e9, 0x52d6, 0x5f67, 0x65ed, 0x6631, 0x682f, 0x715c, 0x7a36, 0x90c1, 0x980a, 0x4e91, 0xf9c5, 0x6a52, 0x6b9e, 0x6f90, 0x7189, 0x8018, 0x82b8, 0x8553, 0x003f, /* lead byte ea */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x904b, 0x9695, 0x96f2, 0x97fb, 0x851a, 0x9b31, 0x4e90, 0x718a, 0x96c4, 0x5143, 0x539f, 0x54e1, 0x5713, 0x5712, 0x57a3, 0x5a9b, 0x5ac4, 0x5bc3, 0x6028, 0x613f, 0x63f4, 0x6c85, 0x6d39, 0x6e72, 0x6e90, 0x7230, 0x733f, 0x7457, 0x82d1, 0x8881, 0x8f45, 0x9060, 0xf9c6, 0x9662, 0x9858, 0x9d1b, 0x6708, 0x8d8a, 0x925e, 0x4f4d, 0x5049, 0x50de, 0x5371, 0x570d, 0x59d4, 0x5a01, 0x5c09, 0x6170, 0x6690, 0x6e2d, 0x7232, 0x744b, 0x7def, 0x80c3, 0x840e, 0x8466, 0x853f, 0x875f, 0x885b, 0x8918, 0x8b02, 0x9055, 0x97cb, 0x9b4f, 0x4e73, 0x4f91, 0x5112, 0x516a, 0xf9c7, 0x552f, 0x55a9, 0x5b7a, 0x5ba5, 0x5e7c, 0x5e7d, 0x5ebe, 0x60a0, 0x60df, 0x6108, 0x6109, 0x63c4, 0x6538, 0x6709, 0xf9c8, 0x67d4, 0x67da, 0xf9c9, 0x6961, 0x6962, 0x6cb9, 0x6d27, 0xf9ca, 0x6e38, 0xf9cb, 0x003f, /* lead byte eb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6fe1, 0x7336, 0x7337, 0xf9cc, 0x745c, 0x7531, 0xf9cd, 0x7652, 0xf9ce, 0xf9cf, 0x7dad, 0x81fe, 0x8438, 0x88d5, 0x8a98, 0x8adb, 0x8aed, 0x8e30, 0x8e42, 0x904a, 0x903e, 0x907a, 0x9149, 0x91c9, 0x936e, 0xf9d0, 0xf9d1, 0x5809, 0xf9d2, 0x6bd3, 0x8089, 0x80b2, 0xf9d3, 0xf9d4, 0x5141, 0x596b, 0x5c39, 0xf9d5, 0xf9d6, 0x6f64, 0x73a7, 0x80e4, 0x8d07, 0xf9d7, 0x9217, 0x958f, 0xf9d8, 0xf9d9, 0xf9da, 0xf9db, 0x807f, 0x620e, 0x701c, 0x7d68, 0x878d, 0xf9dc, 0x57a0, 0x6069, 0x6147, 0x6bb7, 0x8abe, 0x9280, 0x96b1, 0x4e59, 0x541f, 0x6deb, 0x852d, 0x9670, 0x97f3, 0x98ee, 0x63d6, 0x6ce3, 0x9091, 0x51dd, 0x61c9, 0x81ba, 0x9df9, 0x4f9d, 0x501a, 0x5100, 0x5b9c, 0x610f, 0x61ff, 0x64ec, 0x6905, 0x6bc5, 0x7591, 0x77e3, 0x7fa9, 0x8264, 0x858f, 0x87fb, 0x8863, 0x8abc, 0x003f, /* lead byte ec */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b70, 0x91ab, 0x4e8c, 0x4ee5, 0x4f0a, 0xf9dd, 0xf9de, 0x5937, 0x59e8, 0xf9df, 0x5df2, 0x5f1b, 0x5f5b, 0x6021, 0xf9e0, 0xf9e1, 0xf9e2, 0xf9e3, 0x723e, 0x73e5, 0xf9e4, 0x7570, 0x75cd, 0xf9e5, 0x79fb, 0xf9e6, 0x800c, 0x8033, 0x8084, 0x82e1, 0x8351, 0xf9e7, 0xf9e8, 0x8cbd, 0x8cb3, 0x9087, 0xf9e9, 0xf9ea, 0x98f4, 0x990c, 0xf9eb, 0xf9ec, 0x7037, 0x76ca, 0x7fca, 0x7fcc, 0x7ffc, 0x8b1a, 0x4eba, 0x4ec1, 0x5203, 0x5370, 0xf9ed, 0x54bd, 0x56e0, 0x59fb, 0x5bc5, 0x5f15, 0x5fcd, 0x6e6e, 0xf9ee, 0xf9ef, 0x7d6a, 0x8335, 0xf9f0, 0x8693, 0x8a8d, 0xf9f1, 0x976d, 0x9777, 0xf9f2, 0xf9f3, 0x4e00, 0x4f5a, 0x4f7e, 0x58f9, 0x65e5, 0x6ea2, 0x9038, 0x93b0, 0x99b9, 0x4efb, 0x58ec, 0x598a, 0x59d9, 0x6041, 0xf9f4, 0xf9f5, 0x7a14, 0xf9f6, 0x834f, 0x8cc3, 0x5165, 0x5344, 0x003f, /* lead byte ed */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f7, 0xf9f8, 0xf9f9, 0x4ecd, 0x5269, 0x5b55, 0x82bf, 0x4ed4, 0x523a, 0x54a8, 0x59c9, 0x59ff, 0x5b50, 0x5b57, 0x5b5c, 0x6063, 0x6148, 0x6ecb, 0x7099, 0x716e, 0x7386, 0x74f7, 0x75b5, 0x78c1, 0x7d2b, 0x8005, 0x81ea, 0x8328, 0x8517, 0x85c9, 0x8aee, 0x8cc7, 0x96cc, 0x4f5c, 0x52fa, 0x56bc, 0x65ab, 0x6628, 0x707c, 0x70b8, 0x7235, 0x7dbd, 0x828d, 0x914c, 0x96c0, 0x9d72, 0x5b71, 0x68e7, 0x6b98, 0x6f7a, 0x76de, 0x5c91, 0x66ab, 0x6f5b, 0x7bb4, 0x7c2a, 0x8836, 0x96dc, 0x4e08, 0x4ed7, 0x5320, 0x5834, 0x58bb, 0x58ef, 0x596c, 0x5c07, 0x5e33, 0x5e84, 0x5f35, 0x638c, 0x66b2, 0x6756, 0x6a1f, 0x6aa3, 0x6b0c, 0x6f3f, 0x7246, 0xf9fa, 0x7350, 0x748b, 0x7ae0, 0x7ca7, 0x8178, 0x81df, 0x81e7, 0x838a, 0x846c, 0x8523, 0x8594, 0x85cf, 0x88dd, 0x8d13, 0x91ac, 0x9577, 0x003f, /* lead byte ee */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x969c, 0x518d, 0x54c9, 0x5728, 0x5bb0, 0x624d, 0x6750, 0x683d, 0x6893, 0x6e3d, 0x6ed3, 0x707d, 0x7e21, 0x88c1, 0x8ca1, 0x8f09, 0x9f4b, 0x9f4e, 0x722d, 0x7b8f, 0x8acd, 0x931a, 0x4f47, 0x4f4e, 0x5132, 0x5480, 0x59d0, 0x5e95, 0x62b5, 0x6775, 0x696e, 0x6a17, 0x6cae, 0x6e1a, 0x72d9, 0x732a, 0x75bd, 0x7bb8, 0x7d35, 0x82e7, 0x83f9, 0x8457, 0x85f7, 0x8a5b, 0x8caf, 0x8e87, 0x9019, 0x90b8, 0x96ce, 0x9f5f, 0x52e3, 0x540a, 0x5ae1, 0x5bc2, 0x6458, 0x6575, 0x6ef4, 0x72c4, 0xf9fb, 0x7684, 0x7a4d, 0x7b1b, 0x7c4d, 0x7e3e, 0x7fdf, 0x837b, 0x8b2b, 0x8cca, 0x8d64, 0x8de1, 0x8e5f, 0x8fea, 0x8ff9, 0x9069, 0x93d1, 0x4f43, 0x4f7a, 0x50b3, 0x5168, 0x5178, 0x524d, 0x526a, 0x5861, 0x587c, 0x5960, 0x5c08, 0x5c55, 0x5edb, 0x609b, 0x6230, 0x6813, 0x6bbf, 0x6c08, 0x6fb1, 0x003f, /* lead byte ef */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x714e, 0x7420, 0x7530, 0x7538, 0x7551, 0x7672, 0x7b4c, 0x7b8b, 0x7bad, 0x7bc6, 0x7e8f, 0x8a6e, 0x8f3e, 0x8f49, 0x923f, 0x9293, 0x9322, 0x942b, 0x96fb, 0x985a, 0x986b, 0x991e, 0x5207, 0x622a, 0x6298, 0x6d59, 0x7664, 0x7aca, 0x7bc0, 0x7d76, 0x5360, 0x5cbe, 0x5e97, 0x6f38, 0x70b9, 0x7c98, 0x9711, 0x9b8e, 0x9ede, 0x63a5, 0x647a, 0x8776, 0x4e01, 0x4e95, 0x4ead, 0x505c, 0x5075, 0x5448, 0x59c3, 0x5b9a, 0x5e40, 0x5ead, 0x5ef7, 0x5f81, 0x60c5, 0x633a, 0x653f, 0x6574, 0x65cc, 0x6676, 0x6678, 0x67fe, 0x6968, 0x6a89, 0x6b63, 0x6c40, 0x6dc0, 0x6de8, 0x6e1f, 0x6e5e, 0x701e, 0x70a1, 0x738e, 0x73fd, 0x753a, 0x775b, 0x7887, 0x798e, 0x7a0b, 0x7a7d, 0x7cbe, 0x7d8e, 0x8247, 0x8a02, 0x8aea, 0x8c9e, 0x912d, 0x914a, 0x91d8, 0x9266, 0x92cc, 0x9320, 0x9706, 0x9756, 0x003f, /* lead byte f0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x975c, 0x9802, 0x9f0e, 0x5236, 0x5291, 0x557c, 0x5824, 0x5e1d, 0x5f1f, 0x608c, 0x63d0, 0x68af, 0x6fdf, 0x796d, 0x7b2c, 0x81cd, 0x85ba, 0x88fd, 0x8af8, 0x8e44, 0x918d, 0x9664, 0x969b, 0x973d, 0x984c, 0x9f4a, 0x4fce, 0x5146, 0x51cb, 0x52a9, 0x5632, 0x5f14, 0x5f6b, 0x63aa, 0x64cd, 0x65e9, 0x6641, 0x66fa, 0x66f9, 0x671d, 0x689d, 0x68d7, 0x69fd, 0x6f15, 0x6f6e, 0x7167, 0x71e5, 0x722a, 0x74aa, 0x773a, 0x7956, 0x795a, 0x79df, 0x7a20, 0x7a95, 0x7c97, 0x7cdf, 0x7d44, 0x7e70, 0x8087, 0x85fb, 0x86a4, 0x8a54, 0x8abf, 0x8d99, 0x8e81, 0x9020, 0x906d, 0x91e3, 0x963b, 0x96d5, 0x9ce5, 0x65cf, 0x7c07, 0x8db3, 0x93c3, 0x5b58, 0x5c0a, 0x5352, 0x62d9, 0x731d, 0x5027, 0x5b97, 0x5f9e, 0x60b0, 0x616b, 0x68d5, 0x6dd9, 0x742e, 0x7a2e, 0x7d42, 0x7d9c, 0x7e31, 0x816b, 0x003f, /* lead byte f1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e2a, 0x8e35, 0x937e, 0x9418, 0x4f50, 0x5750, 0x5de6, 0x5ea7, 0x632b, 0x7f6a, 0x4e3b, 0x4f4f, 0x4f8f, 0x505a, 0x59dd, 0x80c4, 0x546a, 0x5468, 0x55fe, 0x594f, 0x5b99, 0x5dde, 0x5eda, 0x665d, 0x6731, 0x67f1, 0x682a, 0x6ce8, 0x6d32, 0x6e4a, 0x6f8d, 0x70b7, 0x73e0, 0x7587, 0x7c4c, 0x7d02, 0x7d2c, 0x7da2, 0x821f, 0x86db, 0x8a3b, 0x8a85, 0x8d70, 0x8e8a, 0x8f33, 0x9031, 0x914e, 0x9152, 0x9444, 0x99d0, 0x7af9, 0x7ca5, 0x4fca, 0x5101, 0x51c6, 0x57c8, 0x5bef, 0x5cfb, 0x6659, 0x6a3d, 0x6d5a, 0x6e96, 0x6fec, 0x710c, 0x756f, 0x7ae3, 0x8822, 0x9021, 0x9075, 0x96cb, 0x99ff, 0x8301, 0x4e2d, 0x4ef2, 0x8846, 0x91cd, 0x537d, 0x6adb, 0x696b, 0x6c41, 0x847a, 0x589e, 0x618e, 0x66fe, 0x62ef, 0x70dd, 0x7511, 0x75c7, 0x7e52, 0x84b8, 0x8b49, 0x8d08, 0x4e4b, 0x53ea, 0x003f, /* lead byte f2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54ab, 0x5730, 0x5740, 0x5fd7, 0x6301, 0x6307, 0x646f, 0x652f, 0x65e8, 0x667a, 0x679d, 0x67b3, 0x6b62, 0x6c60, 0x6c9a, 0x6f2c, 0x77e5, 0x7825, 0x7949, 0x7957, 0x7d19, 0x80a2, 0x8102, 0x81f3, 0x829d, 0x82b7, 0x8718, 0x8a8c, 0xf9fc, 0x8d04, 0x8dbe, 0x9072, 0x76f4, 0x7a19, 0x7a37, 0x7e54, 0x8077, 0x5507, 0x55d4, 0x5875, 0x632f, 0x6422, 0x6649, 0x664b, 0x686d, 0x699b, 0x6b84, 0x6d25, 0x6eb1, 0x73cd, 0x7468, 0x74a1, 0x755b, 0x75b9, 0x76e1, 0x771e, 0x778b, 0x79e6, 0x7e09, 0x7e1d, 0x81fb, 0x852f, 0x8897, 0x8a3a, 0x8cd1, 0x8eeb, 0x8fb0, 0x9032, 0x93ad, 0x9663, 0x9673, 0x9707, 0x4f84, 0x53f1, 0x59ea, 0x5ac9, 0x5e19, 0x684e, 0x74c6, 0x75be, 0x79e9, 0x7a92, 0x81a3, 0x86ed, 0x8cea, 0x8dcc, 0x8fed, 0x659f, 0x6715, 0xf9fd, 0x57f7, 0x6f57, 0x7ddd, 0x8f2f, 0x003f, /* lead byte f3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93f6, 0x96c6, 0x5fb5, 0x61f2, 0x6f84, 0x4e14, 0x4f98, 0x501f, 0x53c9, 0x55df, 0x5d6f, 0x5dee, 0x6b21, 0x6b64, 0x78cb, 0x7b9a, 0xf9fe, 0x8e49, 0x8eca, 0x906e, 0x6349, 0x643e, 0x7740, 0x7a84, 0x932f, 0x947f, 0x9f6a, 0x64b0, 0x6faf, 0x71e6, 0x74a8, 0x74da, 0x7ac4, 0x7c12, 0x7e82, 0x7cb2, 0x7e98, 0x8b9a, 0x8d0a, 0x947d, 0x9910, 0x994c, 0x5239, 0x5bdf, 0x64e6, 0x672d, 0x7d2e, 0x50ed, 0x53c3, 0x5879, 0x6158, 0x6159, 0x61fa, 0x65ac, 0x7ad9, 0x8b92, 0x8b96, 0x5009, 0x5021, 0x5275, 0x5531, 0x5a3c, 0x5ee0, 0x5f70, 0x6134, 0x655e, 0x660c, 0x6636, 0x66a2, 0x69cd, 0x6ec4, 0x6f32, 0x7316, 0x7621, 0x7a93, 0x8139, 0x8259, 0x83d6, 0x84bc, 0x50b5, 0x57f0, 0x5bc0, 0x5be8, 0x5f69, 0x63a1, 0x7826, 0x7db5, 0x83dc, 0x8521, 0x91c7, 0x91f5, 0x518a, 0x67f5, 0x7b56, 0x003f, /* lead byte f4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8cac, 0x51c4, 0x59bb, 0x60bd, 0x8655, 0x501c, 0xf9ff, 0x5254, 0x5c3a, 0x617d, 0x621a, 0x62d3, 0x64f2, 0x65a5, 0x6ecc, 0x7620, 0x810a, 0x8e60, 0x965f, 0x96bb, 0x4edf, 0x5343, 0x5598, 0x5929, 0x5ddd, 0x64c5, 0x6cc9, 0x6dfa, 0x7394, 0x7a7f, 0x821b, 0x85a6, 0x8ce4, 0x8e10, 0x9077, 0x91e7, 0x95e1, 0x9621, 0x97c6, 0x51f8, 0x54f2, 0x5586, 0x5fb9, 0x64a4, 0x6f88, 0x7db4, 0x8f1f, 0x8f4d, 0x9435, 0x50c9, 0x5c16, 0x6cbe, 0x6dfb, 0x751b, 0x77bb, 0x7c3d, 0x7c64, 0x8a79, 0x8ac2, 0x581e, 0x59be, 0x5e16, 0x6377, 0x7252, 0x758a, 0x776b, 0x8adc, 0x8cbc, 0x8f12, 0x5ef3, 0x6674, 0x6df8, 0x807d, 0x83c1, 0x8acb, 0x9751, 0x9bd6, 0xfa00, 0x5243, 0x66ff, 0x6d95, 0x6eef, 0x7de0, 0x8ae6, 0x902e, 0x905e, 0x9ad4, 0x521d, 0x527f, 0x54e8, 0x6194, 0x6284, 0x62db, 0x68a2, 0x003f, /* lead byte f5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6912, 0x695a, 0x6a35, 0x7092, 0x7126, 0x785d, 0x7901, 0x790e, 0x79d2, 0x7a0d, 0x8096, 0x8278, 0x82d5, 0x8349, 0x8549, 0x8c82, 0x8d85, 0x9162, 0x918b, 0x91ae, 0x4fc3, 0x56d1, 0x71ed, 0x77d7, 0x8700, 0x89f8, 0x5bf8, 0x5fd6, 0x6751, 0x90a8, 0x53e2, 0x585a, 0x5bf5, 0x60a4, 0x6181, 0x6460, 0x7e3d, 0x8070, 0x8525, 0x9283, 0x64ae, 0x50ac, 0x5d14, 0x6700, 0x589c, 0x62bd, 0x63a8, 0x690e, 0x6978, 0x6a1e, 0x6e6b, 0x76ba, 0x79cb, 0x82bb, 0x8429, 0x8acf, 0x8da8, 0x8ffd, 0x9112, 0x914b, 0x919c, 0x9310, 0x9318, 0x939a, 0x96db, 0x9a36, 0x9c0d, 0x4e11, 0x755c, 0x795d, 0x7afa, 0x7b51, 0x7bc9, 0x7e2e, 0x84c4, 0x8e59, 0x8e74, 0x8ef8, 0x9010, 0x6625, 0x693f, 0x7443, 0x51fa, 0x672e, 0x9edc, 0x5145, 0x5fe0, 0x6c96, 0x87f2, 0x885d, 0x8877, 0x60b4, 0x81b5, 0x8403, 0x003f, /* lead byte f6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8d05, 0x53d6, 0x5439, 0x5634, 0x5a36, 0x5c31, 0x708a, 0x7fe0, 0x805a, 0x8106, 0x81ed, 0x8da3, 0x9189, 0x9a5f, 0x9df2, 0x5074, 0x4ec4, 0x53a0, 0x60fb, 0x6e2c, 0x5c64, 0x4f88, 0x5024, 0x55e4, 0x5cd9, 0x5e5f, 0x6065, 0x6894, 0x6cbb, 0x6dc4, 0x71be, 0x75d4, 0x75f4, 0x7661, 0x7a1a, 0x7a49, 0x7dc7, 0x7dfb, 0x7f6e, 0x81f4, 0x86a9, 0x8f1c, 0x96c9, 0x99b3, 0x9f52, 0x5247, 0x52c5, 0x98ed, 0x89aa, 0x4e03, 0x67d2, 0x6f06, 0x4fb5, 0x5be2, 0x6795, 0x6c88, 0x6d78, 0x741b, 0x7827, 0x91dd, 0x937c, 0x87c4, 0x79e4, 0x7a31, 0x5feb, 0x4ed6, 0x54a4, 0x553e, 0x58ae, 0x59a5, 0x60f0, 0x6253, 0x62d6, 0x6736, 0x6955, 0x8235, 0x9640, 0x99b1, 0x99dd, 0x502c, 0x5353, 0x5544, 0x577c, 0xfa01, 0x6258, 0xfa02, 0x64e2, 0x666b, 0x67dd, 0x6fc1, 0x6fef, 0x7422, 0x7438, 0x8a17, 0x003f, /* lead byte f7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9438, 0x5451, 0x5606, 0x5766, 0x5f48, 0x619a, 0x6b4e, 0x7058, 0x70ad, 0x7dbb, 0x8a95, 0x596a, 0x812b, 0x63a2, 0x7708, 0x803d, 0x8caa, 0x5854, 0x642d, 0x69bb, 0x5b95, 0x5e11, 0x6e6f, 0xfa03, 0x8569, 0x514c, 0x53f0, 0x592a, 0x6020, 0x614b, 0x6b86, 0x6c70, 0x6cf0, 0x7b1e, 0x80ce, 0x82d4, 0x8dc6, 0x90b0, 0x98b1, 0xfa04, 0x64c7, 0x6fa4, 0x6491, 0x6504, 0x514e, 0x5410, 0x571f, 0x8a0e, 0x615f, 0x6876, 0xfa05, 0x75db, 0x7b52, 0x7d71, 0x901a, 0x5806, 0x69cc, 0x817f, 0x892a, 0x9000, 0x9839, 0x5078, 0x5957, 0x59ac, 0x6295, 0x900f, 0x9b2a, 0x615d, 0x7279, 0x95d6, 0x5761, 0x5a46, 0x5df4, 0x628a, 0x64ad, 0x64fa, 0x6777, 0x6ce2, 0x6d3e, 0x722c, 0x7436, 0x7834, 0x7f77, 0x82ad, 0x8ddb, 0x9817, 0x5224, 0x5742, 0x677f, 0x7248, 0x74e3, 0x8ca9, 0x8fa6, 0x9211, 0x003f, /* lead byte f8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x962a, 0x516b, 0x53ed, 0x634c, 0x4f69, 0x5504, 0x6096, 0x6557, 0x6c9b, 0x6d7f, 0x724c, 0x72fd, 0x7a17, 0x8987, 0x8c9d, 0x5f6d, 0x6f8e, 0x70f9, 0x81a8, 0x610e, 0x4fbf, 0x504f, 0x6241, 0x7247, 0x7bc7, 0x7de8, 0x7fe9, 0x904d, 0x97ad, 0x9a19, 0x8cb6, 0x576a, 0x5e73, 0x67b0, 0x840d, 0x8a55, 0x5420, 0x5b16, 0x5e63, 0x5ee2, 0x5f0a, 0x6583, 0x80ba, 0x853d, 0x9589, 0x965b, 0x4f48, 0x5305, 0x530d, 0x530f, 0x5486, 0x54fa, 0x5703, 0x5e03, 0x6016, 0x629b, 0x62b1, 0x6355, 0xfa06, 0x6ce1, 0x6d66, 0x75b1, 0x7832, 0x80de, 0x812f, 0x82de, 0x8461, 0x84b2, 0x888d, 0x8912, 0x900b, 0x92ea, 0x98fd, 0x9b91, 0x5e45, 0x66b4, 0x66dd, 0x7011, 0x7206, 0xfa07, 0x4ff5, 0x527d, 0x5f6a, 0x6153, 0x6753, 0x6a19, 0x6f02, 0x74e2, 0x7968, 0x8868, 0x8c79, 0x98c7, 0x98c4, 0x9a43, 0x003f, /* lead byte f9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54c1, 0x7a1f, 0x6953, 0x8af7, 0x8c4a, 0x98a8, 0x99ae, 0x5f7c, 0x62ab, 0x75b2, 0x76ae, 0x88ab, 0x907f, 0x9642, 0x5339, 0x5f3c, 0x5fc5, 0x6ccc, 0x73cc, 0x7562, 0x758b, 0x7b46, 0x82fe, 0x999d, 0x4e4f, 0x903c, 0x4e0b, 0x4f55, 0x53a6, 0x590f, 0x5ec8, 0x6630, 0x6cb3, 0x7455, 0x8377, 0x8766, 0x8cc0, 0x9050, 0x971e, 0x9c15, 0x58d1, 0x5b78, 0x8650, 0x8b14, 0x9db4, 0x5bd2, 0x6068, 0x608d, 0x65f1, 0x6c57, 0x6f22, 0x6fa3, 0x701a, 0x7f55, 0x7ff0, 0x9591, 0x9592, 0x9650, 0x97d3, 0x5272, 0x8f44, 0x51fd, 0x542b, 0x54b8, 0x5563, 0x558a, 0x6abb, 0x6db5, 0x7dd8, 0x8266, 0x929c, 0x9677, 0x9e79, 0x5408, 0x54c8, 0x76d2, 0x86e4, 0x95a4, 0x95d4, 0x965c, 0x4ea2, 0x4f09, 0x59ee, 0x5ae6, 0x5df7, 0x6052, 0x6297, 0x676d, 0x6841, 0x6c86, 0x6e2f, 0x7f38, 0x809b, 0x822a, 0x003f, /* lead byte fa */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfa08, 0xfa09, 0x9805, 0x4ea5, 0x5055, 0x54b3, 0x5793, 0x595a, 0x5b69, 0x5bb3, 0x61c8, 0x6977, 0x6d77, 0x7023, 0x87f9, 0x89e3, 0x8a72, 0x8ae7, 0x9082, 0x99ed, 0x9ab8, 0x52be, 0x6838, 0x5016, 0x5e78, 0x674f, 0x8347, 0x884c, 0x4eab, 0x5411, 0x56ae, 0x73e6, 0x9115, 0x97ff, 0x9909, 0x9957, 0x9999, 0x5653, 0x589f, 0x865b, 0x8a31, 0x61b2, 0x6af6, 0x737b, 0x8ed2, 0x6b47, 0x96aa, 0x9a57, 0x5955, 0x7200, 0x8d6b, 0x9769, 0x4fd4, 0x5cf4, 0x5f26, 0x61f8, 0x665b, 0x6ceb, 0x70ab, 0x7384, 0x73b9, 0x73fe, 0x7729, 0x774d, 0x7d43, 0x7d62, 0x7e23, 0x8237, 0x8852, 0xfa0a, 0x8ce2, 0x9249, 0x986f, 0x5b51, 0x7a74, 0x8840, 0x9801, 0x5acc, 0x4fe0, 0x5354, 0x593e, 0x5cfd, 0x633e, 0x6d79, 0x72f9, 0x8105, 0x8107, 0x83a2, 0x92cf, 0x9830, 0x4ea8, 0x5144, 0x5211, 0x578b, 0x003f, /* lead byte fb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5f62, 0x6cc2, 0x6ece, 0x7005, 0x7050, 0x70af, 0x7192, 0x73e9, 0x7469, 0x834a, 0x87a2, 0x8861, 0x9008, 0x90a2, 0x93a3, 0x99a8, 0x516e, 0x5f57, 0x60e0, 0x6167, 0x66b3, 0x8559, 0x8e4a, 0x91af, 0x978b, 0x4e4e, 0x4e92, 0x547c, 0x58d5, 0x58fa, 0x597d, 0x5cb5, 0x5f27, 0x6236, 0x6248, 0x660a, 0x6667, 0x6beb, 0x6d69, 0x6dcf, 0x6e56, 0x6ef8, 0x6f94, 0x6fe0, 0x6fe9, 0x705d, 0x72d0, 0x7425, 0x745a, 0x74e0, 0x7693, 0x795c, 0x7cca, 0x7e1e, 0x80e1, 0x82a6, 0x846b, 0x84bf, 0x864e, 0x865f, 0x8774, 0x8b77, 0x8c6a, 0x93ac, 0x9800, 0x9865, 0x60d1, 0x6216, 0x9177, 0x5a5a, 0x660f, 0x6df7, 0x6e3e, 0x743f, 0x9b42, 0x5ffd, 0x60da, 0x7b0f, 0x54c4, 0x5f18, 0x6c5e, 0x6cd3, 0x6d2a, 0x70d8, 0x7d05, 0x8679, 0x8a0c, 0x9d3b, 0x5316, 0x548c, 0x5b05, 0x6a3a, 0x706b, 0x7575, 0x003f, /* lead byte fc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x798d, 0x79be, 0x82b1, 0x83ef, 0x8a71, 0x8b41, 0x8ca8, 0x9774, 0xfa0b, 0x64f4, 0x652b, 0x78ba, 0x78bb, 0x7a6b, 0x4e38, 0x559a, 0x5950, 0x5ba6, 0x5e7b, 0x60a3, 0x63db, 0x6b61, 0x6665, 0x6853, 0x6e19, 0x7165, 0x74b0, 0x7d08, 0x9084, 0x9a69, 0x9c25, 0x6d3b, 0x6ed1, 0x733e, 0x8c41, 0x95ca, 0x51f0, 0x5e4c, 0x5fa8, 0x604d, 0x60f6, 0x6130, 0x614c, 0x6643, 0x6644, 0x69a5, 0x6cc1, 0x6e5f, 0x6ec9, 0x6f62, 0x714c, 0x749c, 0x7687, 0x7bc1, 0x7c27, 0x8352, 0x8757, 0x9051, 0x968d, 0x9ec3, 0x532f, 0x56de, 0x5efb, 0x5f8a, 0x6062, 0x6094, 0x61f7, 0x6666, 0x6703, 0x6a9c, 0x6dee, 0x6fae, 0x7070, 0x736a, 0x7e6a, 0x81be, 0x8334, 0x86d4, 0x8aa8, 0x8cc4, 0x5283, 0x7372, 0x5b96, 0x6a6b, 0x9404, 0x54ee, 0x5686, 0x5b5d, 0x6548, 0x6585, 0x66c9, 0x689f, 0x6d8d, 0x6dc6, 0x003f, /* lead byte fd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x723b, 0x80b4, 0x9175, 0x9a4d, 0x4faf, 0x5019, 0x539a, 0x540e, 0x543c, 0x5589, 0x55c5, 0x5e3f, 0x5f8c, 0x673d, 0x7166, 0x73dd, 0x9005, 0x52db, 0x52f3, 0x5864, 0x58ce, 0x7104, 0x718f, 0x71fb, 0x85b0, 0x8a13, 0x6688, 0x85a8, 0x55a7, 0x6684, 0x714a, 0x8431, 0x5349, 0x5599, 0x6bc1, 0x5f59, 0x5fbd, 0x63ee, 0x6689, 0x7147, 0x8af1, 0x8f1d, 0x9ebe, 0x4f11, 0x643a, 0x70cb, 0x7566, 0x8667, 0x6064, 0x8b4e, 0x9df8, 0x5147, 0x51f6, 0x5308, 0x6d36, 0x80f8, 0x9ed1, 0x6615, 0x6b23, 0x7098, 0x75d5, 0x5403, 0x5c79, 0x7d07, 0x8a16, 0x6b20, 0x6b3d, 0x6b46, 0x5438, 0x6070, 0x6d3d, 0x7fd5, 0x8208, 0x50d6, 0x51de, 0x559c, 0x566b, 0x56cd, 0x59ec, 0x5b09, 0x5e0c, 0x6199, 0x6198, 0x6231, 0x665e, 0x66e6, 0x7199, 0x71b9, 0x71ba, 0x72a7, 0x79a7, 0x7a00, 0x7fb2, 0x8a70, 0x003f }; static const unsigned char cp2uni_leadbytes[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x01, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x01, 0x00 }; static const unsigned short uni2cp_low[38912] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0xa2ae, 0x0063, 0x004c, 0xa2b4, 0x0059, 0x003f, 0xa1d7, 0xa1a7, 0x0063, 0xa8a3, 0xa1b6, 0x003f, 0xa1a9, 0xa2e7, 0xa1aa, 0xa1c6, 0xa1be, 0xa9f7, 0xa9f8, 0xa2a5, 0xa5ec, 0xa2d2, 0xa1a4, 0xa2ac, 0xa9f6, 0xa8ac, 0xa1b7, 0xa8f9, 0xa8f6, 0xa8fa, 0xa2af, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0xa8a1, 0x0043, 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 0xa8a2, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1bf, 0xa8aa, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0xa8ad, 0xa9ac, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0xa9a1, 0x0063, 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 0xa9a3, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xa1c0, 0xa9aa, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0xa9ad, 0x0079, /* 0x0100 .. 0x01ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 0xa8a2, 0xa9a2, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0xa8a4, 0xa9a4, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0xa9a5, 0xa8a6, 0xa9a6, 0x004a, 0x006a, 0x004b, 0x006b, 0xa9a7, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0xa8a8, 0xa9a8, 0xa8a9, 0xa9a9, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0xa9b0, 0xa8af, 0xa9af, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0xa8ab, 0xa9ab, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0xa8ae, 0xa9ae, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6a2, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0049, 0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0xa8a1, 0xa9a1, 0x0047, 0x0067, 0x0047, 0x0067, 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, 0x004e, 0x006e, 0x0041, 0x0061, 0xa8a1, 0xa9a1, 0xa8aa, 0xa9aa, /* 0x0200 .. 0x02ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, 0x0079, 0xa2a5, 0xa2a9, 0xa1ae, 0xa1af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0xa2a7, 0x0027, 0xa1aa, 0xa2a5, 0x0060, 0x003f, 0x005f, 0x003f, 0x003f, 0xa2b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a8, 0xa2ab, 0xa2aa, 0xa2ad, 0x007e, 0xa2a9, 0x003f, 0x003f, 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0300 .. 0x03ff */ 0x0060, 0xa2a5, 0x005e, 0x007e, 0xa1aa, 0xa1aa, 0xa2a8, 0xa2ab, 0xa1a7, 0x003f, 0xa2aa, 0xa2a9, 0xa2a7, 0x003f, 0x0022, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2ac, 0xa2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005f, 0x005f, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0060, 0xa2a5, 0x003f, 0x003f, 0xa1a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a5, 0xa1a7, 0xa5c1, 0xa1a4, 0xa5c5, 0xa5c7, 0xa5c9, 0x003f, 0xa5cf, 0x003f, 0xa5d4, 0xa5d8, 0xa5e9, 0xa5c1, 0xa5c2, 0xa5c3, 0xa5c4, 0xa5c5, 0xa5c6, 0xa5c7, 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5cf, 0xa5d0, 0xa5d1, 0x003f, 0xa5d2, 0xa5d3, 0xa5d4, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5d8, 0xa5c9, 0xa5d4, 0xa5e1, 0xa5e5, 0xa5e7, 0xa5e9, 0xa5f4, 0xa5e1, 0xa5e2, 0xa5e3, 0xa5e4, 0xa5e5, 0xa5e6, 0xa5e7, 0xa5e8, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5ee, 0xa5ef, 0xa5f0, 0xa5f1, 0x003f, 0xa5f2, 0xa5f3, 0xa5f4, 0xa5f5, 0xa5f6, 0xa5f7, 0xa5f8, 0xa5e9, 0xa5f4, 0xa5ef, 0xa5f4, 0xa5f8, 0x003f, 0xa5e2, 0xa5e8, 0xa5d4, 0xa5d4, 0xa5d4, 0xa5f5, 0xa5f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5ea, 0xa5f1, 0x003f, 0x003f, 0xa5c8, 0xa5e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0400 .. 0x04ff */ 0xaca6, 0xaca7, 0x003f, 0xaca4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xacac, 0xacaa, 0xacb5, 0x003f, 0xaca1, 0xaca2, 0xaca3, 0xaca4, 0xaca5, 0xaca6, 0xaca8, 0xaca9, 0xacaa, 0xacab, 0xacac, 0xacad, 0xacae, 0xacaf, 0xacb0, 0xacb1, 0xacb2, 0xacb3, 0xacb4, 0xacb5, 0xacb6, 0xacb7, 0xacb8, 0xacb9, 0xacba, 0xacbb, 0xacbc, 0xacbd, 0xacbe, 0xacbf, 0xacc0, 0xacc1, 0xacd1, 0xacd2, 0xacd3, 0xacd4, 0xacd5, 0xacd6, 0xacd8, 0xacd9, 0xacda, 0xacdb, 0xacdc, 0xacdd, 0xacde, 0xacdf, 0xace0, 0xace1, 0xace2, 0xace3, 0xace4, 0xace5, 0xace6, 0xace7, 0xace8, 0xace9, 0xacea, 0xaceb, 0xacec, 0xaced, 0xacee, 0xacef, 0xacf0, 0xacf1, 0xacd6, 0xacd7, 0x003f, 0xacd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xacdc, 0xacda, 0xace5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaca8, 0xacd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaca1, 0xacd1, 0xaca1, 0xacd1, 0x003f, 0x003f, 0xaca6, 0xacd6, 0x003f, 0x003f, 0x003f, 0x003f, 0xaca8, 0xacd8, 0xaca9, 0xacd9, 0x003f, 0x003f, 0xacaa, 0xacda, 0xacaa, 0xacda, 0xacb0, 0xace0, 0x003f, 0x003f, 0x003f, 0x003f, 0xacbf, 0xacef, 0xacb5, 0xace5, 0xacb5, 0xace5, 0xacb5, 0xace5, 0xacb9, 0xace9, 0x003f, 0x003f, 0xacbd, 0xaced, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1e00 .. 0x1eff */ 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0050, 0x0070, 0x0050, 0x0070, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0056, 0x0076, 0x0056, 0x0076, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1f00 .. 0x1fff */ 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5e5, 0xa5e5, 0xa5e5, 0xa5e5, 0xa5e5, 0xa5e5, 0x003f, 0x003f, 0xa5c5, 0xa5c5, 0xa5c5, 0xa5c5, 0xa5c5, 0xa5c5, 0x003f, 0x003f, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5ef, 0xa5ef, 0xa5ef, 0xa5ef, 0xa5ef, 0xa5ef, 0x003f, 0x003f, 0xa5cf, 0xa5cf, 0xa5cf, 0xa5cf, 0xa5cf, 0xa5cf, 0x003f, 0x003f, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f4, 0x003f, 0xa5d4, 0x003f, 0xa5d4, 0x003f, 0xa5d4, 0x003f, 0xa5d4, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5e1, 0xa5e1, 0xa5e5, 0xa5e5, 0xa5e7, 0xa5e7, 0xa5e9, 0xa5e9, 0xa5ef, 0xa5ef, 0xa5f4, 0xa5f4, 0xa5f8, 0xa5f8, 0x003f, 0x003f, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5e7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5c7, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5f8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5d8, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0xa5e1, 0x003f, 0xa5e1, 0xa5e1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0xa5c1, 0x003f, 0xa5e9, 0x003f, 0x003f, 0xa1a7, 0xa5e7, 0xa5e7, 0xa5e7, 0x003f, 0xa5e7, 0xa5e7, 0xa5c5, 0xa5c5, 0xa5c7, 0xa5c7, 0xa5c7, 0x003f, 0x003f, 0x003f, 0xa5e9, 0xa5e9, 0xa5e9, 0xa5e9, 0x003f, 0x003f, 0xa5e9, 0xa5e9, 0xa5c9, 0xa5c9, 0xa5c9, 0xa5c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f4, 0xa5f1, 0xa5f1, 0xa5f4, 0xa5f4, 0xa5d4, 0xa5d4, 0xa5d4, 0xa5d4, 0xa5d1, 0xa1a7, 0xa1a7, 0x0060, 0x003f, 0x003f, 0xa5f8, 0xa5f8, 0xa5f8, 0x003f, 0xa5f8, 0xa5f8, 0xa5cf, 0xa5cf, 0xa5d8, 0xa5d8, 0xa5d8, 0xa2a5, 0x003f, 0x003f, /* 0x2000 .. 0x20ff */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x002d, 0x003f, 0xa1aa, 0xa1aa, 0xa1aa, 0x003f, 0x005f, 0xa1ae, 0xa1af, 0x002c, 0xa1ae, 0xa1b0, 0xa1b1, 0x002c, 0x003f, 0xa2d3, 0xa2d4, 0x003f, 0x003f, 0x002e, 0xa1a5, 0xa1a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0xa2b6, 0x003f, 0xa1c7, 0xa1c8, 0x003f, 0xa1ae, 0x003f, 0x003f, 0x003f, 0xa1b4, 0xa1b5, 0xa1d8, 0x0021, 0x003f, 0xa1aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2aa, 0x0069, 0x003f, 0x003f, 0xa9f9, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0x002d, 0x003d, 0x0028, 0x0029, 0xa9fa, 0x0030, 0xa9fb, 0xa9fc, 0xa9fd, 0xa9fe, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0x002d, 0x003d, 0x0028, 0x0029, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0063, 0x003f, 0x003f, 0x004c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2100 .. 0x21ff */ 0x003f, 0x003f, 0x0043, 0xa1c9, 0x003f, 0x003f, 0x003f, 0x0045, 0x003f, 0xa2b5, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0xa9a4, 0x0049, 0x0049, 0x004c, 0xa7a4, 0x003f, 0x004e, 0xa2e0, 0x003f, 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, 0x003f, 0xa2e5, 0xa2e2, 0x003f, 0x005a, 0x003f, 0xa7d9, 0x003f, 0x005a, 0x003f, 0x004b, 0xa1ca, 0x0042, 0x0043, 0x0065, 0x0065, 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0069, 0x003f, 0x003f, 0x003f, 0xa5e3, 0xa5c3, 0xa5d0, 0xa2b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8f7, 0xa8f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8fb, 0xa8fc, 0xa8fd, 0xa8fe, 0x003f, 0xa5b0, 0xa5b1, 0xa5b2, 0xa5b3, 0xa5b4, 0xa5b5, 0xa5b6, 0xa5b7, 0xa5b8, 0xa5b9, 0x003f, 0x003f, 0x004c, 0x0043, 0x0044, 0x004d, 0xa5a1, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a5, 0xa5a6, 0xa5a7, 0xa5a8, 0xa5a9, 0xa5aa, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e7, 0xa1e8, 0xa1e6, 0xa1e9, 0xa1ea, 0xa2d5, 0xa2d8, 0xa2d6, 0xa2d9, 0xa2d7, 0xa1e7, 0xa1e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a2, 0xa2a1, 0x003f, 0x003f, 0xa2a1, 0x003f, 0xa2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2200 .. 0x22ff */ 0xa2a3, 0x003f, 0xa1d3, 0xa2a4, 0xa2a4, 0xa8aa, 0x003f, 0xa1d4, 0xa1f4, 0xa1f4, 0x003f, 0xa1f5, 0xa1f5, 0x003f, 0x003f, 0xa2b3, 0x003f, 0xa2b2, 0x002d, 0xa1be, 0x003f, 0x002f, 0x005c, 0x002a, 0xa2aa, 0x003f, 0xa1ee, 0x003f, 0x003f, 0xa1f0, 0xa1c4, 0x004c, 0xa1d0, 0x003f, 0x003f, 0x007c, 0x007c, 0xa1ab, 0xa1ab, 0xa1fc, 0xa1fd, 0xa1fb, 0xa1fa, 0xa1f2, 0xa1f3, 0x003f, 0xa2b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c5, 0xa1f1, 0x003a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ad, 0xa1ef, 0x003f, 0x003f, 0x003f, 0xa1ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c1, 0xa1d5, 0xa1d5, 0xa1d5, 0xa1c2, 0xa1c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ec, 0xa1ed, 0x003f, 0x003f, 0x003c, 0x003e, 0xa1c2, 0xa1c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f8, 0xa1f9, 0xa1f8, 0xa1f9, 0xa1f6, 0xa1f7, 0xa1f6, 0xa1f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2300 .. 0x23ff */ 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b4, 0xa1b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2400 .. 0x24ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8e7, 0xa8e8, 0xa8e9, 0xa8ea, 0xa8eb, 0xa8ec, 0xa8ed, 0xa8ee, 0xa8ef, 0xa8f0, 0xa8f1, 0xa8f2, 0xa8f3, 0xa8f4, 0xa8f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9e7, 0xa9e8, 0xa9e9, 0xa9ea, 0xa9eb, 0xa9ec, 0xa9ed, 0xa9ee, 0xa9ef, 0xa9f0, 0xa9f1, 0xa9f2, 0xa9f3, 0xa9f4, 0xa9f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9cd, 0xa9ce, 0xa9cf, 0xa9d0, 0xa9d1, 0xa9d2, 0xa9d3, 0xa9d4, 0xa9d5, 0xa9d6, 0xa9d7, 0xa9d8, 0xa9d9, 0xa9da, 0xa9db, 0xa9dc, 0xa9dd, 0xa9de, 0xa9df, 0xa9e0, 0xa9e1, 0xa9e2, 0xa9e3, 0xa9e4, 0xa9e5, 0xa9e6, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0xa8cd, 0xa8ce, 0xa8cf, 0xa8d0, 0xa8d1, 0xa8d2, 0xa8d3, 0xa8d4, 0xa8d5, 0xa8d6, 0xa8d7, 0xa8d8, 0xa8d9, 0xa8da, 0xa8db, 0xa8dc, 0xa8dd, 0xa8de, 0xa8df, 0xa8e0, 0xa8e1, 0xa8e2, 0xa8e3, 0xa8e4, 0xa8e5, 0xa8e6, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2500 .. 0x25ff */ 0xa6a1, 0xa6ac, 0xa6a2, 0xa6ad, 0x002d, 0x002d, 0x003f, 0x003f, 0x002d, 0x002d, 0x003f, 0x003f, 0xa6a3, 0xa6c8, 0xa6c7, 0xa6ae, 0xa6a4, 0xa6c2, 0xa6c1, 0xa6af, 0xa6a6, 0xa6c6, 0xa6c5, 0xa6b1, 0xa6a5, 0xa6c4, 0xa6c3, 0xa6b0, 0xa6a7, 0xa6bc, 0xa6c9, 0xa6ca, 0xa6b7, 0xa6cb, 0xa6cc, 0xa6b2, 0xa6a9, 0xa6be, 0xa6cd, 0xa6ce, 0xa6b9, 0xa6cf, 0xa6d0, 0xa6b4, 0xa6a8, 0xa6d1, 0xa6d2, 0xa6b8, 0xa6bd, 0xa6d3, 0xa6d4, 0xa6b3, 0xa6aa, 0xa6d5, 0xa6d6, 0xa6ba, 0xa6bf, 0xa6d7, 0xa6d8, 0xa6b5, 0xa6ab, 0xa6d9, 0xa6da, 0xa6bb, 0xa6db, 0xa6dc, 0xa6c0, 0xa6dd, 0xa6de, 0xa6df, 0xa6e0, 0xa6e1, 0xa6e2, 0xa6e3, 0xa6e4, 0xa6b6, 0x002d, 0x002d, 0x003f, 0x003f, 0x003d, 0x007c, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, 0x004c, 0x004c, 0x004c, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x0054, 0x0054, 0x0054, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x002f, 0x005c, 0x0058, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x002d, 0x007c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e1, 0xa1e0, 0x003f, 0xa2c3, 0xa2c7, 0xa2c8, 0xa2cb, 0xa2ca, 0xa2c9, 0xa2cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e3, 0xa1e2, 0x003f, 0x003f, 0xa2ba, 0xa2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e5, 0xa1e4, 0x003f, 0x003f, 0xa2b8, 0xa2b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1df, 0xa1de, 0xa2c2, 0x003f, 0x003f, 0xa1db, 0x003f, 0x003f, 0xa1dd, 0xa1dc, 0xa2c4, 0xa2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2600 .. 0x26ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1da, 0xa1d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2cf, 0xa2ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2d0, 0x003f, 0xa2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1cf, 0x003f, 0xa1ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2bc, 0xa2bd, 0x003f, 0xa2c0, 0xa2bb, 0xa2be, 0x003f, 0xa2bf, 0xa2cd, 0xa2db, 0xa2dc, 0x003f, 0xa2dd, 0xa2da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2e00 .. 0x2eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2f00 .. 0x2fff */ 0xece9, 0x003f, 0x003f, 0x003f, 0xebe0, 0x003f, 0xeca3, 0x003f, 0xecd1, 0x003f, 0xecfd, 0xf8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ef, 0xd5f4, 0x003f, 0xdde2, 0x003f, 0x003f, 0xe4a8, 0xdcd4, 0x003f, 0x003f, 0x003f, 0xe9d1, 0xcfa2, 0x003f, 0xf7cf, 0xdecd, 0x003f, 0x003f, 0xe0aa, 0xd3de, 0xd2b3, 0xedad, 0x003f, 0xf5bb, 0xe1b3, 0x003f, 0xe3b9, 0x003f, 0xdfa3, 0x003f, 0xcdef, 0xd0f9, 0xcbee, 0xcace, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfe1, 0x003f, 0x003f, 0x003f, 0xe3fd, 0xcdfc, 0xfbc2, 0xe2a2, 0xf2a8, 0x003f, 0xd9fe, 0xd4e0, 0xd0c5, 0xdbb0, 0xd9e9, 0xeced, 0xe8d8, 0xeac5, 0xd9ca, 0xfde2, 0xf2ad, 0x003f, 0x003f, 0xd9ec, 0xddef, 0xd9be, 0xe4ab, 0x003f, 0xe2a9, 0xfbfd, 0xf0d0, 0xddab, 0xfda1, 0x003f, 0xf8b8, 0xe4b3, 0xe9da, 0xccb3, 0xfadc, 0xe8ac, 0xcdfe, 0xe8bf, 0xcaf6, 0xdfe6, 0xe9c4, 0xefa3, 0xf9b5, 0x003f, 0x003f, 0xdbdc, 0xf9ab, 0xd9a9, 0xd9cd, 0xd9c3, 0xe3c5, 0xe0b4, 0xe3c6, 0x003f, 0xfca2, 0xfaeb, 0xd8a1, 0xf1d3, 0xdab7, 0x003f, 0xddae, 0x003f, 0xe5cf, 0xe9e2, 0xd6d5, 0xecbb, 0x003f, 0xecbc, 0xebd3, 0xebbf, 0xe3ed, 0xedbb, 0xf2b8, 0xcfbf, 0xe0df, 0xf4bf, 0xf1c7, 0xcadd, 0xdfe4, 0xf5ac, 0x003f, 0x003f, 0xfaec, 0xfabc, 0xebfd, 0x003f, 0xccb8, 0xcac7, 0xe5eb, 0xcddb, 0xd4e7, 0xe3ce, 0x003f, 0xf8af, 0xeee5, 0xf1cb, 0xf0eb, 0xe3f3, 0xf3b3, 0xe3f4, 0xf2e3, 0x003f, 0xebe9, 0xebb7, 0x003f, 0xd7ec, 0xd1d1, 0xedfe, 0xdaa6, 0xddbd, 0x003f, 0x003f, 0xe9eb, 0xf4ec, 0xdeaa, 0xd8fc, 0xfad4, 0xeadf, 0x003f, 0xebe5, 0xfaed, 0xf9a6, 0xdeab, 0xe3dd, 0xe2cf, 0xfac5, 0xd8a9, 0xcde9, 0xcdd4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a1, 0xe5e0, 0xf0e8, 0xd6dd, 0xd6e3, 0xd8ea, 0xd8ab, 0xfcdc, 0xe0a8, 0xfdd9, 0x003f, 0x003f, 0xf0a3, 0xcdd5, 0xe0a9, 0xdeac, 0xf0ba, 0xf6cd, 0xd7a3, 0xcfcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3000 .. 0x30ff */ 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b4, 0xa1b5, 0xa1b6, 0xa1b7, 0xa1b8, 0xa1b9, 0xa1ba, 0xa1bb, 0xa1bc, 0xa1bd, 0x003f, 0xa1eb, 0xa1b2, 0xa1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x005b, 0x005d, 0x003f, 0xa1b0, 0xa1b1, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a8, 0xecfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaaa1, 0xaaa2, 0xaaa3, 0xaaa4, 0xaaa5, 0xaaa6, 0xaaa7, 0xaaa8, 0xaaa9, 0xaaaa, 0xaaab, 0xaaac, 0xaaad, 0xaaae, 0xaaaf, 0xaab0, 0xaab1, 0xaab2, 0xaab3, 0xaab4, 0xaab5, 0xaab6, 0xaab7, 0xaab8, 0xaab9, 0xaaba, 0xaabb, 0xaabc, 0xaabd, 0xaabe, 0xaabf, 0xaac0, 0xaac1, 0xaac2, 0xaac3, 0xaac4, 0xaac5, 0xaac6, 0xaac7, 0xaac8, 0xaac9, 0xaaca, 0xaacb, 0xaacc, 0xaacd, 0xaace, 0xaacf, 0xaad0, 0xaad1, 0xaad2, 0xaad3, 0xaad4, 0xaad5, 0xaad6, 0xaad7, 0xaad8, 0xaad9, 0xaada, 0xaadb, 0xaadc, 0xaadd, 0xaade, 0xaadf, 0xaae0, 0xaae1, 0xaae2, 0xaae3, 0xaae4, 0xaae5, 0xaae6, 0xaae7, 0xaae8, 0xaae9, 0xaaea, 0xaaeb, 0xaaec, 0xaaed, 0xaaee, 0xaaef, 0xaaf0, 0xaaf1, 0xaaf2, 0xaaf3, 0xaaa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaba1, 0xaba2, 0xaba3, 0xaba4, 0xaba5, 0xaba6, 0xaba7, 0xaba8, 0xaba9, 0xabaa, 0xabab, 0xabac, 0xabad, 0xabae, 0xabaf, 0xabb0, 0xabb1, 0xabb2, 0xabb3, 0xabb4, 0xabb5, 0xabb6, 0xabb7, 0xabb8, 0xabb9, 0xabba, 0xabbb, 0xabbc, 0xabbd, 0xabbe, 0xabbf, 0xabc0, 0xabc1, 0xabc2, 0xabc3, 0xabc4, 0xabc5, 0xabc6, 0xabc7, 0xabc8, 0xabc9, 0xabca, 0xabcb, 0xabcc, 0xabcd, 0xabce, 0xabcf, 0xabd0, 0xabd1, 0xabd2, 0xabd3, 0xabd4, 0xabd5, 0xabd6, 0xabd7, 0xabd8, 0xabd9, 0xabda, 0xabdb, 0xabdc, 0xabdd, 0xabde, 0xabdf, 0xabe0, 0xabe1, 0xabe2, 0xabe3, 0xabe4, 0xabe5, 0xabe6, 0xabe7, 0xabe8, 0xabe9, 0xabea, 0xabeb, 0xabec, 0xabed, 0xabee, 0xabef, 0xabf0, 0xabf1, 0xabf2, 0xabf3, 0xabf4, 0xabf5, 0xabf6, 0xabef, 0xabf0, 0xabf1, 0xabf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3100 .. 0x31ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4d1, 0xa4d2, 0xa4d3, 0xa4d4, 0xa4d5, 0xa4d6, 0xa4d7, 0xa4d8, 0xa4d9, 0xa4da, 0xa4db, 0xa4dc, 0xa4dd, 0xa4de, 0xa4df, 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e3, 0xa4e4, 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0xa4f4, 0xa4f5, 0xa4f6, 0xa4f7, 0xa4f8, 0xa4f9, 0xa4fa, 0xa4fb, 0xa4fc, 0xa4fd, 0xa4fe, 0x003f, 0x003f, 0x003f, 0xece9, 0xeca3, 0xdfb2, 0xdecc, 0xdfbe, 0xf1e9, 0xf9bb, 0xcba3, 0xebe0, 0xdcb0, 0xefcb, 0xf4b8, 0xf2a2, 0xecd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3200 .. 0x32ff */ 0xa9b1, 0xa9b2, 0xa9b3, 0xa9b4, 0xa9b5, 0xa9b6, 0xa9b7, 0xa9b8, 0xa9b9, 0xa9ba, 0xa9bb, 0xa9bc, 0xa9bd, 0xa9be, 0xa9bf, 0xa9c0, 0xa9c1, 0xa9c2, 0xa9c3, 0xa9c4, 0xa9c5, 0xa9c6, 0xa9c7, 0xa9c8, 0xa9c9, 0xa9ca, 0xa9cb, 0xa9cc, 0xa2df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8b1, 0xa8b2, 0xa8b3, 0xa8b4, 0xa8b5, 0xa8b6, 0xa8b7, 0xa8b8, 0xa8b9, 0xa8ba, 0xa8bb, 0xa8bc, 0xa8bd, 0xa8be, 0xa8bf, 0xa8c0, 0xa8c1, 0xa8c2, 0xa8c3, 0xa8c4, 0xa8c5, 0xa8c6, 0xa8c7, 0xa8c8, 0xa8c9, 0xa8ca, 0xa8cb, 0xa8cc, 0x003f, 0x003f, 0x003f, 0xa2de, 0xece9, 0xeca3, 0xdfb2, 0xdecc, 0xe7e9, 0xd7bf, 0xf6d2, 0xf8a2, 0xcefa, 0xe4a8, 0xeac5, 0xfbfd, 0xe2a9, 0xd9ca, 0xd1d1, 0xf7cf, 0xeced, 0xf1bb, 0xeaf3, 0xdee4, 0xd9a3, 0xf7e5, 0xeeaf, 0xf5e6, 0x003f, 0xddfa, 0xd1fb, 0xd2b3, 0xeeea, 0xe9d0, 0xecd4, 0xf1bc, 0xfaa3, 0xfdcc, 0x003f, 0xefe1, 0xdfbe, 0xf1e9, 0xf9bb, 0xf1a7, 0xe9d3, 0x003f, 0xf0f3, 0x003f, 0xcaf8, 0xd0ea, 0xedc0, 0xfaf0, 0xe5a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaba2, 0xaba4, 0xaba6, 0xaba8, 0xabaa, 0xabab, 0xabad, 0xabaf, 0xabb1, 0xabb3, 0xabb5, 0xabb7, 0xabb9, 0xabbb, 0xabbd, 0xabbf, 0xabc1, 0xabc4, 0xabc6, 0xabc8, 0xabca, 0xabcb, 0xabcc, 0xabcd, 0xabce, 0xabcf, 0xabd2, 0xabd5, 0xabd8, 0xabdb, 0xabde, 0xabdf, 0xabe0, 0xabe1, 0xabe2, 0xabe4, 0xabe6, 0xabe8, 0xabe9, 0xabea, 0xabeb, 0xabec, 0xabed, 0xabef, 0xabf0, 0xabf1, 0xabf2, 0x003f, /* 0x3300 .. 0x33ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7c9, 0xa7ca, 0xa7cb, 0xa7cc, 0xa7cd, 0x003f, 0x003f, 0x003f, 0xa7ba, 0xa7bb, 0xa7dc, 0xa7dd, 0xa7de, 0xa7b6, 0xa7b7, 0xa7b8, 0xa7d4, 0xa7d5, 0xa7d6, 0xa7d7, 0xa7d8, 0xa7a1, 0xa7a2, 0xa7a3, 0xa7a5, 0xa7ab, 0xa7ac, 0xa7ad, 0xa7ae, 0xa7af, 0xa7b0, 0xa7b1, 0xa7b2, 0xa7b3, 0xa7b4, 0xa7a7, 0xa7a8, 0xa7a9, 0xa7aa, 0xa7bd, 0xa7be, 0xa7e5, 0xa7e6, 0xa7e7, 0xa7e8, 0xa7e1, 0xa7e2, 0xa7e3, 0xa7bf, 0xa7c0, 0xa7c1, 0xa7c2, 0xa7c3, 0xa7c4, 0xa7c5, 0xa7c6, 0xa7c7, 0xa7c8, 0xa7ce, 0xa7cf, 0xa7d0, 0xa7d1, 0xa7d2, 0xa7d3, 0xa7da, 0xa7db, 0xa2e3, 0xa7ec, 0xa7a6, 0xa7e0, 0xa7ef, 0xa2e1, 0xa7bc, 0xa7ed, 0xa7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7b9, 0xa7ea, 0x003f, 0x003f, 0xa7eb, 0x003f, 0x003f, 0xa7df, 0x003f, 0xa2e4, 0x003f, 0x003f, 0xa7e4, 0xa7ee, 0xa7e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x4e00 .. 0x4eff */ 0xece9, 0xefcb, 0x003f, 0xf6d2, 0x003f, 0x003f, 0x003f, 0xd8b2, 0xeddb, 0xdfb2, 0xdfbe, 0xf9bb, 0x003f, 0xdcf4, 0x003f, 0x003f, 0x003f, 0xf5e4, 0x003f, 0x003f, 0xf3a6, 0xdde0, 0xe1a6, 0x003f, 0xcef8, 0xdcb0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcaf, 0xd3a1, 0x003f, 0xf1ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d1, 0xd2ac, 0x003f, 0xcef9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1fd, 0x003f, 0xdebf, 0xfbba, 0xf9b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced2, 0x003f, 0xe3ab, 0xebe0, 0x003f, 0x003f, 0x003f, 0xcefa, 0xcbf7, 0xe5a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae1, 0x003f, 0xd4cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae1, 0x003f, 0x003f, 0xdce3, 0xdfad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbeb, 0x003f, 0x003f, 0x003f, 0xd5af, 0x003f, 0x003f, 0x003f, 0xd6f5, 0x003f, 0xe5f8, 0x003f, 0x003f, 0xdec0, 0xeca3, 0x003f, 0xe9cd, 0x003f, 0xeaa7, 0xe9f6, 0xfbbb, 0x003f, 0xe7e9, 0xefcc, 0x003f, 0x003f, 0xd0e6, 0x003f, 0x003f, 0xdec1, 0x003f, 0x003f, 0xe4ac, 0x003f, 0x003f, 0xd8cc, 0xf9f1, 0x003f, 0xcedf, 0xfaa4, 0xe6b2, 0x003f, 0xfafb, 0x003f, 0x003f, 0xfabd, 0xccc8, 0xefcd, 0xd5d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a2, 0x003f, 0x003f, 0x003f, 0xecd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a7, 0xecd2, 0x003f, 0x003f, 0xf6b1, 0x003f, 0x003f, 0xcefb, 0x003f, 0x003f, 0xd0d1, 0xcbbf, 0x003f, 0xeda4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeda8, 0xdec2, 0xf6e2, 0xeddc, 0xdcf5, 0xe0b9, 0x003f, 0x003f, 0x003f, 0xd4ce, 0x003f, 0xf4b5, 0x003f, 0x003f, 0x003f, 0xd3db, 0xd6b5, 0xeca4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e6, 0x003f, 0xf1ea, 0x003f, 0x003f, 0x003f, 0xcbec, 0xcbc0, 0x003f, 0x003f, 0x003f, 0xecf2, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x4f00 .. 0x4fff */ 0x003f, 0xd0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f2, 0xeca5, 0xd0df, 0x003f, 0xe7ea, 0xd0eb, 0xdcd1, 0xdbe9, 0xfdcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd7, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae1, 0x003f, 0xd6b6, 0x003f, 0xe3df, 0x003f, 0xdec3, 0x003f, 0xdec4, 0xcaa1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeec, 0x003f, 0x003f, 0xd3a3, 0xeeb7, 0xf8cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac8, 0xeeb8, 0xf1ac, 0xf1a5, 0xe9ce, 0x003f, 0x003f, 0x003f, 0xf9bc, 0x003f, 0x003f, 0x003f, 0xe5f9, 0xecea, 0xddd6, 0xedc2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ba, 0xdbd8, 0x003f, 0x003f, 0xcaa2, 0x003f, 0x003f, 0xd1cd, 0x003f, 0x003f, 0x003f, 0xeeed, 0x003f, 0x003f, 0x003f, 0xeceb, 0xdec5, 0x003f, 0xe3e0, 0x003f, 0xcac9, 0xf2e9, 0x003f, 0xd5ce, 0x003f, 0xf6b6, 0x003f, 0xcec2, 0xd6c7, 0x003f, 0xe3b4, 0x003f, 0xf1ad, 0x003f, 0xeae2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7c2, 0x003f, 0xf3a7, 0x003f, 0x003f, 0xcdea, 0x003f, 0xebee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b2, 0xfda5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6d5, 0xd5e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8b5, 0x003f, 0x003f, 0xccf5, 0xf5b5, 0xe4ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7eb, 0xf1d5, 0x003f, 0x003f, 0x003f, 0xf0bb, 0x003f, 0x003f, 0xe9b5, 0x003f, 0xccc9, 0xfad5, 0x003f, 0x003f, 0xe1d4, 0x003f, 0x003f, 0xd7d6, 0x003f, 0x003f, 0xdcc1, 0x003f, 0xdec6, 0xfaef, 0xe3e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f3, 0xdcf6, 0x003f, 0xcefc, 0x003f, 0xdbc4, 0x003f, 0xf8f1, 0x003f, 0x003f, 0xdce4, 0x003f, 0xe5ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5000 .. 0x50ff */ 0x003f, 0x003f, 0xdcb1, 0x003f, 0x003f, 0x003f, 0xd5d6, 0x003f, 0x003f, 0xf3da, 0x003f, 0xcbc1, 0x003f, 0xdbc3, 0x003f, 0x003f, 0x003f, 0xd9fa, 0xd3ee, 0x003f, 0x003f, 0x003f, 0xfab8, 0x003f, 0x003f, 0xfda6, 0xebef, 0x003f, 0xf4a6, 0x003f, 0xccca, 0xf3a8, 0x003f, 0xf3db, 0x003f, 0xdba7, 0xf6b7, 0x003f, 0xcfe6, 0xf0f2, 0xcbda, 0x003f, 0xe7d2, 0xd7c3, 0xf6f0, 0xe8de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e7, 0x003f, 0x003f, 0x003f, 0xcaa3, 0xcca7, 0xeac9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaa5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ae, 0x003f, 0xefce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6b0, 0xefcf, 0xe9cf, 0x003f, 0xf7de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba8, 0x003f, 0x003f, 0x003f, 0xcbf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa1, 0xdde1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ca, 0xe9b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ec, 0xeeee, 0x003f, 0xf3f0, 0x003f, 0xdfbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcccb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c1, 0x003f, 0x003f, 0x003f, 0xf4d2, 0xe0ba, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc0, 0x003f, 0xcee0, 0x003f, 0x003f, 0x003f, 0xdcd2, 0xfdea, 0x003f, 0x003f, 0x003f, 0xd6f6, 0x003f, 0x003f, 0x003f, 0xeaca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e9, 0x003f, 0xe3ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaa4, 0x003f, 0xdbf8, 0x003f, 0x003f, 0x003f, 0xdec7, /* 0x5100 .. 0x51ff */ 0xebf0, 0xf1d6, 0x003f, 0x003f, 0xe5e2, 0x003f, 0xcccc, 0x003f, 0x003f, 0xcbfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc1, 0x003f, 0xd6ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeb9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e3, 0x003f, 0x003f, 0xd1d3, 0x003f, 0xe5f0, 0x003f, 0x003f, 0x003f, 0xe8b4, 0xebc3, 0x003f, 0xeaaa, 0xfafc, 0xf5f6, 0xf0bc, 0xfdd4, 0xe0bb, 0xcec3, 0x003f, 0xd0ba, 0xf7ba, 0xd8f3, 0xf7cd, 0x003f, 0x003f, 0x003f, 0xe4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e7, 0x003f, 0x003f, 0xecfd, 0x003f, 0xd2ae, 0xeeef, 0xd5d7, 0xeae4, 0xf8a2, 0xcdeb, 0xd7bf, 0xfbb1, 0x003f, 0x003f, 0xcdec, 0x003f, 0x003f, 0x003f, 0xdcb2, 0xd0ec, 0xcefd, 0xeef0, 0x003f, 0x003f, 0x003f, 0xccc2, 0x003f, 0x003f, 0x003f, 0xd0ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f7, 0x003f, 0x003f, 0x003f, 0xf3fc, 0x003f, 0x003f, 0xeea2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b3, 0x003f, 0x003f, 0xd8f4, 0x003f, 0xe9b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceae, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8f1, 0x003f, 0xd4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a7, 0xd5d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a2, 0x003f, 0xf1d7, 0x003f, 0x003f, 0xd5d8, 0x003f, 0xf0bd, 0xd7d0, 0xd4d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7cf, 0xebea, 0xfdeb, 0x003f, 0x003f, 0xdbed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc5, 0xcbc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd5, 0x003f, 0xf4c8, 0xe8ea, 0xf5f3, 0x003f, 0x003f, 0xf9de, 0x003f, 0x003f, /* 0x5200 .. 0x52ff */ 0xd3ef, 0x003f, 0x003f, 0xecd3, 0x003f, 0x003f, 0xddc2, 0xefb7, 0xe7d4, 0x003f, 0xcaca, 0x003f, 0x003f, 0x003f, 0xd9fb, 0x003f, 0x003f, 0xfafd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7f7, 0xdcac, 0x003f, 0x003f, 0x003f, 0xd7d7, 0xdfa2, 0x003f, 0x003f, 0x003f, 0xcebe, 0x003f, 0xd3f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a4, 0xe1ec, 0xcfe7, 0xf3cb, 0xeda9, 0xcabe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4ef, 0x003f, 0x003f, 0x003f, 0xf6ce, 0x003f, 0x003f, 0xdefb, 0xd0bb, 0xd5b7, 0xeef1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4a8, 0x003f, 0xdcf8, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba7, 0x003f, 0xdace, 0x003f, 0x003f, 0x003f, 0xe0e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeda5, 0xeef2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcf9, 0x003f, 0x003f, 0xf9dc, 0x003f, 0x003f, 0xf3dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8f2, 0x003f, 0xf4f9, 0x003f, 0x003f, 0x003f, 0xfcf1, 0x003f, 0x003f, 0x003f, 0xd0bc, 0xdbf9, 0xd7b1, 0x003f, 0x003f, 0x003f, 0xcbfc, 0x003f, 0x003f, 0x003f, 0xf0a5, 0xcbfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5f4, 0x003f, 0x003f, 0x003f, 0xcded, 0xcaa5, 0x003f, 0x003f, 0xd6ab, 0xd0c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0be, 0xd2bd, 0xcca4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab6, 0x003f, 0x003f, 0xcccd, 0x003f, 0xdafa, 0x003f, 0xf6cf, 0x003f, 0xe9b8, 0x003f, 0xd8f5, 0x003f, 0x003f, 0x003f, 0xccce, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7cd, 0x003f, 0x003f, 0xd4d1, 0xe9ed, 0x003f, 0xcaeb, 0xd9e2, 0x003f, 0xfdb2, 0x003f, 0xe3ad, 0xd6cc, 0xd9b4, 0x003f, 0x003f, 0xe1a7, 0xeed3, 0xd0c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb3, 0x003f, 0xd5e4, 0x003f, 0x003f, 0xcfe8, 0x003f, 0xedc3, 0xd0b2, 0x003f, 0x003f, 0xcefe, 0xdaa8, /* 0x5300 .. 0x53ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d0, 0x003f, 0x003f, 0xfdd6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d1, 0x003f, 0xf8d2, 0xdcd3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde2, 0xfbf9, 0xddc1, 0x003f, 0xe3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeddd, 0xcec4, 0x003f, 0xcba1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde3, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcdd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2fb, 0xcfa1, 0xe4a8, 0x003f, 0xf4b6, 0xecfe, 0x003f, 0x003f, 0xe3ae, 0xe7ed, 0xfdc1, 0xdae2, 0x003f, 0x003f, 0xd8b3, 0x003f, 0x003f, 0x003f, 0xdde4, 0xf0ef, 0xf6f1, 0xfaf0, 0x003f, 0x003f, 0xd1f5, 0x003f, 0x003f, 0xdacf, 0x003f, 0xdcd4, 0x003f, 0xdca6, 0x003f, 0xefbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcecf, 0x003f, 0xe0d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d6, 0xecd4, 0xeacb, 0x003f, 0x003f, 0xcabf, 0xd5b0, 0x003f, 0xcfe9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ed, 0x003f, 0xcccf, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7d8, 0x003f, 0xfda7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaab, 0xf6b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xcff0, 0xf9bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d1, 0xf3a9, 0xd0e0, 0xe9d2, 0x003f, 0xdae3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d2, 0x003f, 0xf6a2, 0xe1f4, 0x003f, 0x003f, 0x003f, 0xdae4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d5, 0xf5bf, 0xcfa2, 0xcdaf, 0xcfa3, 0x003f, 0x003f, 0x003f, 0xcdb0, 0xf1fe, 0xd0a3, 0xe1af, 0xf8a3, 0x003f, 0xcaa6, 0xf7bb, 0xf2ea, 0xdec8, 0xe9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xdec9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5400 .. 0x54ff */ 0x003f, 0x003f, 0x003f, 0xfdde, 0xcac0, 0x003f, 0x003f, 0x003f, 0xf9ea, 0xd1ce, 0xeed4, 0x003f, 0xd4d2, 0xd9a3, 0xfda8, 0xd7d9, 0xf7ce, 0xfabe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd6, 0x003f, 0xd7f0, 0x003f, 0xebe1, 0xf8c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcfa, 0x003f, 0x003f, 0xddc3, 0x003f, 0xf9df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xfde5, 0xf6a3, 0x003f, 0xd9fc, 0xfda9, 0x003f, 0xe7ee, 0x003f, 0x003f, 0x003f, 0xd5e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd0, 0x003f, 0xcdb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1b2, 0x003f, 0xf1b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdb2, 0x003f, 0xdaab, 0x003f, 0xcaa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e2, 0xfbbc, 0xd9a4, 0x003f, 0x003f, 0xeeba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfa, 0x003f, 0xcfa4, 0x003f, 0xdcfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e3, 0x003f, 0x003f, 0x003f, 0xedaa, 0x003f, 0x003f, 0xf2a1, 0xcee1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaa6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xecd6, 0x003f, 0x003f, 0xe4ee, 0xf9a1, 0x003f, 0x003f, 0xfbef, 0x003f, 0x003f, 0x003f, 0xf9eb, 0xeea3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaac, 0x003f, 0x003f, 0x003f, 0xcaa8, 0x003f, 0x003f, 0xf4fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd6, 0xfcf6, 0x003f, 0x003f, 0x003f, 0xf4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5500 .. 0x55ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xf8a6, 0x003f, 0xdeca, 0xf2c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7da, 0x003f, 0xd3d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae6, 0x003f, 0xf3dd, 0x003f, 0x003f, 0x003f, 0xe4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6f2, 0x003f, 0xdfc2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9fd, 0x003f, 0x003f, 0x003f, 0xccf6, 0x003f, 0x003f, 0xd3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4af, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a6, 0x003f, 0x003f, 0x003f, 0xcbd3, 0x003f, 0x003f, 0x003f, 0xe0bc, 0x003f, 0xf4ca, 0xd4fa, 0x003f, 0xfdaa, 0xf9e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4b7, 0xfdc2, 0xfcb0, 0x003f, 0xfdec, 0xcae2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdbd, 0x003f, 0xeae7, 0xdfc3, 0xd1d2, 0xcee2, 0x003f, 0xd3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdab, 0x003f, 0xdfe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f0, 0x003f, 0xd0ee, 0x003f, 0x003f, 0xf3aa, 0x003f, 0x003f, 0x003f, 0xdecb, 0xf6b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f5, 0xf1b3, 0x003f, /* 0x5600 .. 0x56ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7a3, 0x003f, 0x003f, 0xcaa9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa5, 0x003f, 0x003f, 0xdfc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b0, 0x003f, 0x003f, 0xf0bf, 0x003f, 0xf6a4, 0x003f, 0xe3b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfac6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0ef, 0x003f, 0x003f, 0xfded, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdead, 0x003f, 0xfabf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2a5, 0x003f, 0x003f, 0xfdee, 0x003f, 0x003f, 0x003f, 0xf5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f6, 0xdecc, 0x003f, 0x003f, 0xfcde, 0x003f, 0xecd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcddd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6b7, 0xcdb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5700 .. 0x57ff */ 0x003f, 0x003f, 0x003f, 0xf8d5, 0xe5d8, 0x003f, 0x003f, 0x003f, 0xcfea, 0x003f, 0x003f, 0xcfd0, 0x003f, 0xeacc, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaae, 0xeaad, 0x003f, 0x003f, 0xd3f1, 0x003f, 0xd3a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeea4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a4, 0x003f, 0x003f, 0xf2a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a3, 0x003f, 0xf7f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b3, 0x003f, 0x003f, 0xdba9, 0x003f, 0x003f, 0xd3bb, 0xcaec, 0x003f, 0xf1a6, 0xcbd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7e7, 0x003f, 0x003f, 0xcdde, 0x003f, 0xf7a4, 0x003f, 0x003f, 0x003f, 0xf8c0, 0x003f, 0x003f, 0x003f, 0xd3dd, 0x003f, 0xccd0, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3dc, 0x003f, 0x003f, 0xfafe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaa7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebd9, 0x003f, 0xcfa7, 0xeaaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ef, 0x003f, 0x003f, 0x003f, 0xe9b9, 0xf1d8, 0x003f, 0x003f, 0xd8d8, 0x003f, 0x003f, 0xe0f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b4, 0xdcfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3f1, 0x003f, 0x003f, 0x003f, 0xe3d0, 0x003f, 0x003f, 0xf2fb, 0x003f, 0xdbc6, 0xd0f1, 0x003f, 0xd0f2, 0x003f, 0x003f, 0x003f, /* 0x5800 .. 0x58ff */ 0xcfdc, 0x003f, 0xd3d1, 0x003f, 0x003f, 0xccb1, 0xf7d8, 0x003f, 0xcba8, 0xebbc, 0xe4be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4dc, 0x003f, 0x003f, 0xdcc2, 0x003f, 0x003f, 0xf0a7, 0x003f, 0x003f, 0xe6c0, 0x003f, 0x003f, 0xcaed, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8eb, 0xe5e8, 0xdcc3, 0x003f, 0x003f, 0xedde, 0xd3f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xccf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced4, 0xe7ab, 0x003f, 0x003f, 0x003f, 0xcbc3, 0x003f, 0xe1b1, 0x003f, 0x003f, 0xf7b2, 0x003f, 0x003f, 0xd3f3, 0xd3d2, 0x003f, 0xf5c0, 0x003f, 0x003f, 0x003f, 0xdfdd, 0x003f, 0x003f, 0xeef3, 0xe7f1, 0x003f, 0xfdb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2c8, 0x003f, 0x003f, 0x003f, 0xf3d2, 0x003f, 0x003f, 0xeef4, 0x003f, 0xe2d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xccd1, 0x003f, 0xdfea, 0x003f, 0x003f, 0x003f, 0xe9ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5cd, 0x003f, 0xf1f2, 0xfac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f8, 0xd4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xddc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f2, 0xeddf, 0x003f, 0x003f, 0xcacb, 0x003f, 0x003f, 0xdbfa, 0x003f, 0x003f, 0x003f, 0xe8b5, 0x003f, 0xd3a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb5, 0x003f, 0x003f, 0xf9c9, 0x003f, 0xe4e2, 0x003f, 0xfbbd, 0x003f, 0x003f, 0xd7a4, 0xcec5, 0x003f, 0x003f, 0x003f, 0x003f, 0xced5, 0xd6e6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdecd, 0xecf3, 0x003f, 0x003f, 0xede0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecec, 0xfbbe, 0xdfeb, 0x003f, 0xe1f8, 0x003f, 0x003f, /* 0x5900 .. 0x59ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9be, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f3, 0xe0aa, 0xe8e2, 0x003f, 0x003f, 0xe2d4, 0xd2fd, 0x003f, 0xe5a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3de, 0x003f, 0xf4b8, 0xf7bc, 0xdcfd, 0x003f, 0xe8ec, 0xe4e7, 0x003f, 0x003f, 0xe3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f2, 0x003f, 0x003f, 0xd0f4, 0xd2af, 0xdce5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a5, 0xf1b4, 0xfcb1, 0xccf8, 0x003f, 0x003f, 0xddc6, 0xfad1, 0x003f, 0xf7df, 0x003f, 0x003f, 0xfaa8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeef5, 0x003f, 0xdece, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f3, 0x003f, 0x003f, 0xf7ac, 0xebc4, 0xede1, 0xe0ab, 0xddc7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b3, 0xd2bf, 0x003f, 0x003f, 0x003f, 0xcacc, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbbf, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5fd, 0xdde5, 0xd8cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f5, 0x003f, 0x003f, 0xe8ed, 0xd0d2, 0x003f, 0xd9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e6, 0x003f, 0x003f, 0xdbaa, 0x003f, 0x003f, 0x003f, 0xf7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8d9, 0x003f, 0xf4a3, 0x003f, 0x003f, 0xf4dd, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd1, 0x003f, 0x003f, 0xd9b5, 0x003f, 0x003f, 0xedab, 0x003f, 0xe3b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeebb, 0xcdb4, 0x003f, 0xe0f3, 0xeacd, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf5, 0xe8ee, 0x003f, 0xcba9, 0xf1af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcacd, 0x003f, 0xeca9, 0x003f, 0xf2eb, 0x003f, 0xfdef, 0x003f, 0xf9f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6c1, 0x003f, 0x003f, 0xecd8, 0x003f, 0x003f, 0x003f, 0xedac, /* 0x5a00 .. 0x5aff */ 0x003f, 0xeace, 0x003f, 0xe8df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdecf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2a6, 0x003f, 0x003f, 0xe7f4, 0xd1d6, 0x003f, 0x003f, 0xe6c2, 0xe3e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b0, 0x003f, 0x003f, 0x003f, 0xd8b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3de, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7e8, 0x003f, 0x003f, 0xe8c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde6, 0x003f, 0x003f, 0x003f, 0xdcfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaac, 0xeab0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaaa, 0xe1f9, 0x003f, 0xeab1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ec, 0x003f, 0x003f, 0xfaee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f4, 0x003f, 0x003f, 0xd2ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5b00 .. 0x5bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfb, 0x003f, 0x003f, 0x003f, 0xfdf0, 0x003f, 0xe0bd, 0xcee3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc5, 0x003f, 0x003f, 0xe5be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedad, 0xfaea, 0x003f, 0x003f, 0xcdee, 0xeda6, 0x003f, 0xedae, 0xf0ed, 0x003f, 0xdda1, 0x003f, 0xedaf, 0xfcf8, 0x003f, 0xd8eb, 0x003f, 0x003f, 0x003f, 0xccf9, 0xcdb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaa9, 0x003f, 0xe1dd, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d5, 0xedcf, 0x003f, 0x003f, 0x003f, 0xdda2, 0x003f, 0x003f, 0xf9ca, 0x003f, 0xeae8, 0x003f, 0xe5ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3eb, 0x003f, 0xe9d4, 0xe1fa, 0xe4cc, 0x003f, 0xe1e4, 0xe8c7, 0x003f, 0x003f, 0xcedb, 0x003f, 0x003f, 0x003f, 0xdcd5, 0x003f, 0xf7b5, 0xfcf3, 0xf0f3, 0xceaf, 0xf1b5, 0xefd2, 0xe8c8, 0xebf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbd4, 0xe0be, 0xe3f8, 0xeae9, 0xfcb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0f4, 0x003f, 0xcfe0, 0x003f, 0xeea5, 0x003f, 0x003f, 0xfaaa, 0xe6c3, 0xe1b2, 0xcaab, 0x003f, 0xe3e4, 0xe9bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d6, 0xf3f2, 0x003f, 0xeed6, 0xeab2, 0xd0f6, 0xecd9, 0xdacb, 0xcfa8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda3, 0x003f, 0x003f, 0x003f, 0xd8db, 0x003f, 0xf9ce, 0xe9d5, 0xe3d1, 0x003f, 0x003f, 0xd2bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ac, 0xf3cc, 0x003f, 0xcdfb, 0xf6d6, 0x003f, 0xe7f5, 0xe8ef, 0xe3f9, 0xd2bb, 0xf3f3, 0xe3fb, 0x003f, 0xded0, 0xceb0, 0x003f, 0xd6f7, 0xf1d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c1, 0xdcc4, 0x003f, 0xf5bb, 0x003f, 0xded1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5c00 .. 0x5cff */ 0x003f, 0xdce6, 0x003f, 0x003f, 0xded2, 0x003f, 0x003f, 0xede2, 0xeef6, 0xeacf, 0xf0ee, 0xe3fc, 0x003f, 0xd3df, 0xd3f4, 0xe1b3, 0x003f, 0xe1b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d3, 0x003f, 0x003f, 0xdfc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d6, 0x003f, 0x003f, 0x003f, 0xdbab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b9, 0xebc5, 0xf4a9, 0xcdb6, 0xd2f9, 0x003f, 0xdaad, 0xd2e3, 0xcfd1, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbdc, 0xccfa, 0x003f, 0xcfdd, 0x003f, 0x003f, 0xe8a9, 0x003f, 0xe3bb, 0xe3ba, 0x003f, 0x003f, 0xe0da, 0x003f, 0x003f, 0x003f, 0xeef7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcb3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f5, 0x003f, 0xd7a6, 0x003f, 0xf6b5, 0xd7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d5, 0x003f, 0x003f, 0xd4ea, 0x003f, 0xdfa3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfddf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f7, 0xedd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4db, 0x003f, 0xe1fb, 0xcba2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e0, 0x003f, 0xe4bf, 0x003f, 0xfbc0, 0x003f, 0xdabe, 0xe4cd, 0x003f, 0xd6b9, 0x003f, 0x003f, 0x003f, 0xefc0, 0x003f, 0xe1fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce7, 0xdce8, 0x003f, 0x003f, 0x003f, 0xfad6, 0x003f, 0xd3f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1da, 0x003f, 0xfaf2, 0x003f, 0x003f, /* 0x5d00 .. 0x5dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cf, 0xd0f8, 0x003f, 0x003f, 0xcddf, 0x003f, 0x003f, 0xf5cb, 0x003f, 0xe4f0, 0xcbab, 0x003f, 0xd7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2fe, 0x003f, 0xddda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaae, 0xcaee, 0x003f, 0x003f, 0x003f, 0xd5b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a1, 0x003f, 0x003f, 0xe8e3, 0x003f, 0x003f, 0xf3ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfa9, 0x003f, 0x003f, 0x003f, 0xd3f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f1, 0x003f, 0x003f, 0xcee4, 0x003f, 0xe8f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ae, 0x003f, 0xd6ba, 0x003f, 0xdfec, 0xe4c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8b5, 0x003f, 0x003f, 0x003f, 0xe4dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4b9, 0xf1b6, 0x003f, 0x003f, 0xe2de, 0xe1b5, 0x003f, 0x003f, 0xcdef, 0xf1a7, 0xcee5, 0xcbdd, 0x003f, 0x003f, 0xd9e3, 0x003f, 0x003f, 0xf3ac, 0x003f, 0x003f, 0xd0f9, 0xecab, 0xded3, 0xf7e9, 0x003f, 0x003f, 0xf9f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1de, 0xcbee, 0x003f, /* 0x5e00 .. 0x5eff */ 0x003f, 0x003f, 0xe3bc, 0xf8d6, 0x003f, 0x003f, 0xdbee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdf1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4de, 0x003f, 0x003f, 0xf2ed, 0x003f, 0xdbd9, 0x003f, 0xf0a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xded4, 0x003f, 0xe0ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xede3, 0x003f, 0x003f, 0xd3e1, 0x003f, 0xdfc8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b6, 0x003f, 0xfdac, 0xefd3, 0x003f, 0x003f, 0x003f, 0xe4c1, 0xf8eb, 0x003f, 0xdbac, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ba, 0x003f, 0xdbdf, 0xd3d3, 0xf8c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcace, 0xf8c1, 0xd2b4, 0x003f, 0x003f, 0xdcb4, 0xfab9, 0xcacf, 0x003f, 0xfcb3, 0xeaea, 0xeaeb, 0xd0fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xede4, 0x003f, 0x003f, 0xdde7, 0x003f, 0x003f, 0xdfc9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeebc, 0x003f, 0xefc1, 0x003f, 0x003f, 0xccd2, 0x003f, 0xdda4, 0x003f, 0x003f, 0x003f, 0xdfca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3f8, 0xf1a8, 0x003f, 0x003f, 0x003f, 0xcdb7, 0x003f, 0xefd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4dd, 0xdfee, 0xcbac, 0xe9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaec, 0x003f, 0x003f, 0x003f, 0xdfcb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9bf, 0xd6af, 0xd5c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfaa, 0x003f, 0x003f, 0xcea9, 0x003f, 0x003f, 0xd6f8, 0x003f, 0x003f, 0x003f, 0xf1b7, 0xeef8, 0x003f, 0x003f, 0x003f, 0xd9d9, 0xf3df, 0x003f, 0xf8c8, 0xcec6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e6, 0x003f, 0x003f, 0xe6c5, 0xefd5, 0x003f, 0x003f, 0xcbef, 0xfcdf, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5f00 .. 0x5fff */ 0x003f, 0xdca7, 0x003f, 0x003f, 0xd6e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d2, 0x003f, 0xe3bd, 0x003f, 0xcfe1, 0xf0c0, 0xecda, 0x003f, 0xddd7, 0xfbf0, 0x003f, 0x003f, 0xecac, 0x003f, 0x003f, 0x003f, 0xf0a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfad7, 0xfbc1, 0x003f, 0xd2c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5b0, 0x003f, 0x003f, 0x003f, 0xede5, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbad, 0x003f, 0xf9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7a5, 0x003f, 0xcbae, 0x003f, 0xdaaf, 0x003f, 0xd8b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a7, 0xfbb2, 0x003f, 0xfdc4, 0x003f, 0xecad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfba1, 0x003f, 0x003f, 0x003f, 0xe5e9, 0xe9ee, 0x003f, 0xf3f4, 0xf8f3, 0xf0c1, 0xdeaf, 0xf8b0, 0x003f, 0x003f, 0xf3e0, 0xe7af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbad, 0x003f, 0xe6b5, 0x003f, 0x003f, 0xf9a8, 0x003f, 0x003f, 0xddd8, 0xe8d9, 0xefd6, 0x003f, 0x003f, 0x003f, 0xd3e2, 0x003f, 0xe2df, 0x003f, 0x003f, 0xfce0, 0xd7c8, 0xfdad, 0x003f, 0x003f, 0x003f, 0xdfef, 0xccd3, 0xd3f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f0, 0xdbc7, 0xded5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f4, 0x003f, 0xd5d0, 0xe5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc7, 0xdcd6, 0xe2e0, 0x003f, 0x003f, 0x003f, 0xdab0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a3, 0x003f, 0xd3ec, 0x003f, 0xf4cb, 0x003f, 0x003f, 0x003f, 0xfdc5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3fd, 0x003f, 0xf9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fb, 0xecdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5bc, 0xf2a4, 0xd8ce, 0xd8cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbec, 0x003f, 0xddc8, /* 0x6000 .. 0x60ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e8, 0x003f, 0x003f, 0xd2c1, 0x003f, 0x003f, 0x003f, 0xf8d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6bb, 0xded6, 0x003f, 0x003f, 0xf7bd, 0xecae, 0x003f, 0x003f, 0x003f, 0xd0e1, 0x003f, 0xe0f5, 0xeab3, 0x003f, 0xced6, 0x003f, 0x003f, 0x003f, 0x003f, 0xcca5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf6, 0xe2e1, 0xe3be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc8, 0x003f, 0x003f, 0xcdf0, 0x003f, 0xf9f6, 0x003f, 0x003f, 0xdff0, 0x003f, 0x003f, 0x003f, 0xe5bf, 0x003f, 0x003f, 0x003f, 0xcebf, 0x003f, 0x003f, 0x003f, 0x003f, 0xfce1, 0xedb0, 0xfdd1, 0xf6bb, 0x003f, 0x003f, 0xf9cf, 0xebda, 0xcac1, 0x003f, 0xd2b8, 0xcdf1, 0x003f, 0xe3d3, 0xfde6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ed, 0x003f, 0x003f, 0x003f, 0xe3fa, 0x003f, 0x003f, 0xf0aa, 0xf9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfce2, 0x003f, 0xf8a7, 0x003f, 0x003f, 0x003f, 0xe1e5, 0xeef9, 0x003f, 0x003f, 0x003f, 0xe7f6, 0xeaed, 0x003f, 0x003f, 0xfcb4, 0xf5c2, 0x003f, 0x003f, 0xd7dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0f5, 0x003f, 0xdde8, 0xd3ed, 0xf5fc, 0x003f, 0xdabf, 0x003f, 0xccfb, 0x003f, 0x003f, 0x003f, 0xd3fa, 0xf4a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd7, 0x003f, 0xd4c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbed, 0x003f, 0xe0ad, 0x003f, 0x003f, 0xeaee, 0xfbb3, 0xe4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e7, 0xd2dd, 0x003f, 0xdfcc, 0x003f, 0x003f, 0xfcc9, 0x003f, 0x003f, 0xe5a9, 0xe0f6, 0xf6b3, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6100 .. 0x61ff */ 0x003f, 0xe1fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf0, 0x003f, 0xeaef, 0xeaf0, 0x003f, 0x003f, 0x003f, 0xdac0, 0xf8b4, 0xebf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9d7, 0xe4f1, 0x003f, 0x003f, 0x003f, 0xcaef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xced7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcca, 0x003f, 0x003f, 0x003f, 0xf3e1, 0x003f, 0x003f, 0xcbc4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3e5, 0x003f, 0xcbc5, 0xeab4, 0x003f, 0x003f, 0xe9bd, 0x003f, 0xd7c9, 0x003f, 0x003f, 0xebdb, 0xedb1, 0x003f, 0xccc3, 0xf7be, 0xfccb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8f4, 0x003f, 0xd9b7, 0x003f, 0x003f, 0xf3d3, 0xf3d4, 0x003f, 0x003f, 0x003f, 0xf7e4, 0x003f, 0xf7d1, 0x003f, 0x003f, 0xd8b7, 0xceb1, 0xcac2, 0x003f, 0x003f, 0xfbb4, 0xcbc6, 0x003f, 0x003f, 0xf0f6, 0x003f, 0x003f, 0xd5e7, 0x003f, 0xead0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccd4, 0xcbaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4aa, 0xe9af, 0x003f, 0x003f, 0xf5c3, 0xe9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdde9, 0x003f, 0x003f, 0x003f, 0xf1f3, 0x003f, 0xd5fb, 0xdebb, 0x003f, 0x003f, 0xf4fb, 0x003f, 0x003f, 0x003f, 0xfdf3, 0xfdf2, 0xf7a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddc9, 0x003f, 0x003f, 0xd4d3, 0x003f, 0xcca8, 0x003f, 0xdac1, 0xccd5, 0x003f, 0xd9e4, 0x003f, 0x003f, 0x003f, 0xfaca, 0x003f, 0x003f, 0x003f, 0xe5e3, 0x003f, 0x003f, 0x003f, 0xd3bc, 0x003f, 0x003f, 0x003f, 0xcaf0, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c4, 0x003f, 0x003f, 0x003f, 0xcad0, 0xfaab, 0xebeb, 0xe7f8, 0xd9e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a4, 0x003f, 0x003f, 0x003f, 0xd4fb, 0xfce3, 0xfad8, 0x003f, 0xf3d5, 0x003f, 0xcfab, 0x003f, 0x003f, 0xebf3, /* 0x6200 .. 0x62ff */ 0xd5fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d4, 0xcdfc, 0x003f, 0xd9e6, 0x003f, 0xe2f9, 0xe2a1, 0xebd4, 0x003f, 0xe0f7, 0xe4b2, 0xccfc, 0x003f, 0x003f, 0x003f, 0xfbe4, 0x003f, 0x003f, 0x003f, 0xf4ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0bd, 0x003f, 0xcaf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb8, 0x003f, 0x003f, 0x003f, 0xd7c0, 0x003f, 0xeefa, 0xfdf4, 0x003f, 0x003f, 0xd3e3, 0x003f, 0xfbc2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e8, 0xdbae, 0xe1b6, 0xf8b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0bf, 0xfbc3, 0xddea, 0x003f, 0xe2a2, 0x003f, 0xeea6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6e8, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddca, 0x003f, 0x003f, 0xd0e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdda6, 0x003f, 0x003f, 0xddeb, 0x003f, 0x003f, 0xe4f9, 0x003f, 0x003f, 0xe3af, 0xd0fc, 0x003f, 0x003f, 0x003f, 0xf4fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xccbc, 0xf7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e4, 0xdff1, 0x003f, 0x003f, 0xf7e1, 0x003f, 0xf9f7, 0xefb9, 0x003f, 0x003f, 0xf8d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8d9, 0x003f, 0x003f, 0x003f, 0xeebd, 0x003f, 0x003f, 0x003f, 0xd8c6, 0x003f, 0x003f, 0xe4e3, 0xf5ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xddd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9e7, 0xd2b9, 0xd5c3, 0x003f, 0x003f, 0xdae5, 0xdad0, 0x003f, 0xd1d9, 0xced8, 0x003f, 0xcbde, 0xf4ac, 0xdafb, 0x003f, 0xf6e9, 0xe8f3, 0xcfac, 0xf0f0, 0x003f, 0xf4fd, 0xdbc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcec0, 0xe3d4, 0xd1cf, 0xf1f5, 0x003f, 0xcdf2, 0x003f, 0xcfeb, 0x003f, 0x003f, 0x003f, 0xcdb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a6, 0xd1da, /* 0x6300 .. 0x63ff */ 0x003f, 0xf2a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a6, 0x003f, 0xe4ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a9, 0x003f, 0x003f, 0x003f, 0xf2c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefd8, 0xe6c9, 0x003f, 0xd8b8, 0xfaf3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3b5, 0x003f, 0x003f, 0xf8a4, 0x003f, 0x003f, 0xd1f3, 0xe6c8, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce9, 0xded7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbdf, 0x003f, 0x003f, 0x003f, 0xcfec, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4df, 0x003f, 0x003f, 0xd1f4, 0xd2ba, 0x003f, 0x003f, 0x003f, 0xdff2, 0x003f, 0x003f, 0x003f, 0xe1b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a3, 0xd3fc, 0x003f, 0x003f, 0xede6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbc9, 0x003f, 0x003f, 0x003f, 0xe4fa, 0x003f, 0xcfde, 0x003f, 0x003f, 0xced0, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5d3, 0xf3f5, 0xf7ae, 0x003f, 0x003f, 0xefc8, 0x003f, 0xcdf3, 0xf5cf, 0xe5f3, 0xf0c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad1, 0x003f, 0x003f, 0x003f, 0xeaf1, 0x003f, 0xd0a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9da, 0xf0ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebe7, 0x003f, 0x003f, 0x003f, 0xe5c0, 0xfcb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcca9, 0xfdc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab5, 0x003f, 0xe5aa, 0xdfba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6400 .. 0x64ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1df, 0x003f, 0xdad1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b8, 0x003f, 0xe8f4, 0xd3fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae6, 0xf7b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdcd, 0x003f, 0x003f, 0x003f, 0xf3b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9b8, 0xd9b9, 0xefc9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7cb, 0xdfae, 0xe8f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b5, 0x003f, 0x003f, 0x003f, 0xd3d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4cc, 0xdafc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9e8, 0x003f, 0xf7eb, 0xf5c9, 0x003f, 0xf3bc, 0x003f, 0xdad2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b6, 0x003f, 0x003f, 0xd6cf, 0xf4ba, 0x003f, 0xf7c9, 0x003f, 0x003f, 0xccaa, 0x003f, 0x003f, 0xf0c3, 0xccd6, 0x003f, 0x003f, 0x003f, 0xd0d3, 0x003f, 0xd3bd, 0x003f, 0x003f, 0x003f, 0xdbfb, 0x003f, 0xcbe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e4, 0xf6f7, 0x003f, 0x003f, 0xd5ba, 0xf3cd, 0xcbe1, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4ad, 0x003f, 0xfcaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7ec, 0x003f, 0x003f, 0x003f, 0xe8f6, 0x003f, /* 0x6500 .. 0x65ff */ 0xdae7, 0x003f, 0x003f, 0x003f, 0xf7cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcee6, 0xfcab, 0xd5bb, 0x003f, 0x003f, 0xf2a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a5, 0xcdb9, 0xeaf2, 0xcbc7, 0x003f, 0xcdf4, 0x003f, 0x003f, 0xdbaf, 0xefd9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdba, 0x003f, 0x003f, 0xfcf9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdff3, 0xcee7, 0xdac2, 0x003f, 0xcfad, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7f9, 0xf8a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e2, 0x003f, 0x003f, 0x003f, 0xcaf2, 0xdfa4, 0x003f, 0x003f, 0xd4c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccd7, 0xe5c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbb, 0x003f, 0xefda, 0xeed8, 0x003f, 0xdda7, 0xe2a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c0, 0x003f, 0x003f, 0x003f, 0xd6b0, 0xf8ca, 0x003f, 0xfcfa, 0x003f, 0xd9fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb0, 0x003f, 0x003f, 0x003f, 0xddec, 0xdae8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e0, 0x003f, 0xd6f9, 0x003f, 0xcdd7, 0xded8, 0x003f, 0x003f, 0xf2f8, 0x003f, 0xe4d6, 0x003f, 0x003f, 0xd0c5, 0xf4ae, 0x003f, 0xdda8, 0x003f, 0x003f, 0x003f, 0xedc5, 0xf3d6, 0x003f, 0x003f, 0xded9, 0xe3e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a8, 0x003f, 0xdbb0, 0x003f, 0x003f, 0xe5da, 0xe3bf, 0x003f, 0x003f, 0x003f, 0xdbb1, 0x003f, 0x003f, 0x003f, 0xd5e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c1, 0xefdb, 0x003f, 0x003f, 0xf0e9, 0x003f, 0x003f, 0xd7b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9e9, 0x003f, 0x003f, 0xd0fe, 0x003f, 0xeced, 0xd3a9, 0x003f, 0xf2a9, 0xf0c4, 0x003f, 0x003f, 0xe2e2, 0xe9ef, 0x003f, 0x003f, 0x003f, 0xf9d1, 0x003f, 0x003f, 0xe9d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8da, 0xdac3, 0xdac4, 0xd4c5, 0x003f, 0xe7fa, /* 0x6600 .. 0x66ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde0, 0xe3b0, 0x003f, 0xdbb2, 0xfbc4, 0x003f, 0xf3e3, 0x003f, 0xd9a5, 0xfbe7, 0xddcb, 0xd0d4, 0x003f, 0xe6b6, 0xe0ae, 0xfdda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcb5, 0xe0f8, 0xe7b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5f0, 0x003f, 0xd8dc, 0xedc6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1b9, 0x003f, 0xe3c0, 0xf9c0, 0xe9f0, 0x003f, 0x003f, 0xd9db, 0x003f, 0xf3e4, 0x003f, 0x003f, 0x003f, 0xdcb6, 0xe4e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c5, 0xe3c1, 0xfccc, 0xfccd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2cb, 0x003f, 0xf2cc, 0x003f, 0x003f, 0x003f, 0xe4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1db, 0x003f, 0xfad9, 0x003f, 0xf1b8, 0xfdf5, 0xe0f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fb, 0xfcb7, 0xfce4, 0xfbc5, 0xe3e7, 0xd8b9, 0x003f, 0xf6f8, 0x003f, 0x003f, 0xdcc5, 0xccd8, 0x003f, 0x003f, 0x003f, 0xe0af, 0xf4e7, 0x003f, 0xefdc, 0xcffc, 0xefdd, 0x003f, 0xf2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdbe, 0x003f, 0x003f, 0xcaac, 0xfdbb, 0xfdc7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b2, 0x003f, 0xead1, 0xdff4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ec, 0xe4de, 0xe5c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a6, 0x003f, 0x003f, 0xcdbc, 0x003f, 0xf3e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd5, 0x003f, 0x003f, 0xd9ba, 0x003f, 0x003f, 0x003f, 0xede7, 0xfbb5, 0xf8ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e7, 0x003f, 0xccd9, 0x003f, 0x003f, 0xd4c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a5, 0x003f, 0xd5f5, 0xd3be, 0x003f, 0xfcfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f2, 0x003f, 0x003f, 0xdff5, 0x003f, 0x003f, 0xe8f8, 0xf8ed, 0x003f, 0x003f, 0xcec7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d8, 0x003f, 0xcdd8, 0xe7d6, 0xccda, 0x003f, 0x003f, 0xcae3, 0xdff6, 0xf0c7, 0xf0c6, 0x003f, 0xd8ba, 0x003f, 0xf1f4, 0xf4f0, /* 0x6700 .. 0x67ff */ 0xf5cc, 0x003f, 0x003f, 0xfce5, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac5, 0xeaf3, 0x003f, 0xdddb, 0x003f, 0xdcd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdefd, 0xf2f9, 0x003f, 0xd5c7, 0x003f, 0x003f, 0x003f, 0xd8d0, 0x003f, 0xf0c8, 0xd1a1, 0xd1a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d4, 0xd6e8, 0xd9ca, 0x003f, 0xdab1, 0xd8c7, 0xdce2, 0xf3ce, 0xf5f4, 0x003f, 0x003f, 0xf1b9, 0x003f, 0x003f, 0xdad3, 0x003f, 0xf6ea, 0x003f, 0x003f, 0x003f, 0xcff5, 0x003f, 0x003f, 0xfdae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad2, 0x003f, 0x003f, 0xdfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7dd, 0xfaba, 0xeea7, 0xf5bd, 0x003f, 0xf8f5, 0x003f, 0x003f, 0xede8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e1, 0x003f, 0xd1a3, 0xe1d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9f8, 0x003f, 0xdbca, 0xcbf9, 0xd4d4, 0x003f, 0xd9dc, 0x003f, 0xeebe, 0x003f, 0xf7ed, 0x003f, 0x003f, 0x003f, 0xd2ee, 0x003f, 0x003f, 0xe1e6, 0xf7f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdded, 0x003f, 0xe8db, 0x003f, 0xdbb3, 0x003f, 0x003f, 0x003f, 0xd1f7, 0xe0b0, 0x003f, 0x003f, 0xd4e2, 0x003f, 0xf6d7, 0x003f, 0xd7f9, 0x003f, 0x003f, 0xd8dd, 0x003f, 0xcdfd, 0xf2ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbd, 0xf8c2, 0x003f, 0x003f, 0xf2ac, 0x003f, 0x003f, 0xcaad, 0xcaae, 0xcfae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbda, 0xd9bb, 0xcaf3, 0xf6d3, 0xe6f8, 0xeaf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaf6, 0x003f, 0x003f, 0xf6f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfaf, 0x003f, 0x003f, 0xcad3, 0x003f, 0x003f, 0xcaaf, 0xd2b0, 0xf1ba, 0x003f, 0xd7b3, 0xe3c3, 0xf3fd, 0xdeda, 0x003f, 0x003f, 0x003f, 0x003f, 0xdedb, 0x003f, 0x003f, 0xefde, 0x003f, /* 0x6800 .. 0x68ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2e3, 0xeefb, 0x003f, 0x003f, 0xdff7, 0xd7ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcee8, 0xdbdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab7, 0xd0c6, 0x003f, 0x003f, 0xccab, 0xeea8, 0x003f, 0x003f, 0xcbfa, 0xf9f9, 0xccfd, 0xd3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ee, 0x003f, 0xd4d5, 0xdfcd, 0x003f, 0xfcb8, 0xd1d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad4, 0x003f, 0xd5d9, 0x003f, 0x003f, 0x003f, 0xd8de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd9, 0x003f, 0x003f, 0x003f, 0xeea9, 0xf6bc, 0x003f, 0x003f, 0xccdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0c9, 0x003f, 0xfcfc, 0x003f, 0xe8c9, 0xf4fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7fc, 0xd7de, 0x003f, 0x003f, 0x003f, 0x003f, 0xdedc, 0x003f, 0xf0ac, 0xccfe, 0xcde1, 0x003f, 0xe1ba, 0x003f, 0xdbef, 0xdab2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a5, 0xdcb8, 0x003f, 0x003f, 0x003f, 0xd8f6, 0x003f, 0xd1a4, 0x003f, 0xcde2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcea, 0x003f, 0x003f, 0xf0f7, 0x003f, 0xf0ca, 0xd0be, 0x003f, 0xdddc, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4d6, 0xd3d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd0, 0xcda1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb5, 0x003f, 0x003f, 0x003f, 0xdff8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4a1, 0xceb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6900 .. 0x69ff */ 0xe8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d5, 0xf5d0, 0x003f, 0x003f, 0x003f, 0xf5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6cb, 0x003f, 0xf5f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9a3, 0xe0db, 0xf6eb, 0x003f, 0xcbf1, 0x003f, 0xd9ea, 0xf5a2, 0x003f, 0x003f, 0x003f, 0xd7d1, 0x003f, 0xd1f8, 0xeaf8, 0xeaf9, 0xdab3, 0x003f, 0x003f, 0x003f, 0x003f, 0xefdf, 0x003f, 0x003f, 0xf1ef, 0x003f, 0xe5f6, 0xeebf, 0xe2e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0bf, 0x003f, 0xfaac, 0xf5d1, 0xe7b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ce, 0xdbb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcce, 0x003f, 0xddee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdbe, 0x003f, 0xdae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb0, 0xf7d9, 0xf3e6, 0x003f, 0x003f, 0xced9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceaa, 0x003f, 0xcbc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a7, 0x003f, 0xf0cb, 0x003f, 0xd0c7, /* 0x6a00 .. 0x6aff */ 0x003f, 0x003f, 0xe4c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbe0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5da, 0x003f, 0xd7a7, 0x003f, 0x003f, 0x003f, 0xeec0, 0x003f, 0xf8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d2, 0xede9, 0x003f, 0xd9bc, 0x003f, 0xe5c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a3, 0x003f, 0x003f, 0xdad4, 0xe2a7, 0xfbfc, 0x003f, 0x003f, 0xf1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaf4, 0x003f, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0xcee9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f8, 0xe2e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b9, 0xd4f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a6, 0x003f, 0xdfce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3aa, 0x003f, 0x003f, 0x003f, 0xccac, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe0, 0x003f, 0x003f, 0x003f, 0xe5e5, 0xd0d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbfc, 0x003f, 0x003f, 0x003f, 0x003f, 0xfce6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbfe, 0xedea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4a2, 0xcff6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ea, 0xf1ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfacb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a1, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6b00 .. 0x6bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfed, 0x003f, 0xedeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b2, 0x003f, 0x003f, 0x003f, 0xd5bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfde2, 0xf3ad, 0x003f, 0xfddb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a7, 0x003f, 0x003f, 0xfde3, 0xceb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfde4, 0xface, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab0, 0x003f, 0xf7a7, 0x003f, 0xcfb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a2, 0x003f, 0xfcb6, 0xf2ad, 0xefe1, 0xf3ae, 0xdcc6, 0xd9eb, 0x003f, 0x003f, 0x003f, 0xe8e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5f6, 0xcffd, 0x003f, 0x003f, 0xdedd, 0x003f, 0x003f, 0x003f, 0xd9d1, 0x003f, 0x003f, 0x003f, 0xe4ea, 0xf2cf, 0x003f, 0xf7bf, 0x003f, 0x003f, 0xe2e6, 0xe2a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d6, 0x003f, 0xedd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6b1, 0xdeb2, 0x003f, 0x003f, 0xe0e8, 0x003f, 0x003f, 0xd3ab, 0x003f, 0xebdc, 0x003f, 0x003f, 0xdfaf, 0x003f, 0xcac3, 0x003f, 0x003f, 0xeefc, 0x003f, 0xfdc3, 0x003f, 0x003f, 0x003f, 0xebf6, 0xcfb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ec, 0x003f, 0xd9bd, 0x003f, 0xd8df, 0x003f, 0x003f, 0xd4b8, 0xebbe, 0xddef, 0x003f, 0xddf0, 0xddf1, 0xddf2, 0x003f, 0x003f, 0xd9be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbc6, 0xcfb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6c00 .. 0x6cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeefd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ab, 0x003f, 0xdac5, 0x003f, 0xd8ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2a9, 0x003f, 0x003f, 0xdebc, 0xe7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf0, 0x003f, 0xefe2, 0xf1f0, 0xcfb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbf1, 0x003f, 0xe0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa5, 0x003f, 0xf9d2, 0x003f, 0x003f, 0xe7fd, 0x003f, 0x003f, 0xe6a3, 0xfbf1, 0xcbb0, 0xf2ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde7, 0x003f, 0xe8dc, 0x003f, 0x003f, 0xe7d7, 0x003f, 0x003f, 0xf7c0, 0x003f, 0xd0e3, 0x003f, 0x003f, 0x003f, 0xdaa1, 0x003f, 0x003f, 0x003f, 0xccbd, 0x003f, 0x003f, 0xd1a9, 0xddcc, 0x003f, 0x003f, 0xe3fe, 0xd1aa, 0xe8aa, 0x003f, 0xeab6, 0xf9fa, 0xe6cc, 0xf6d8, 0x003f, 0x003f, 0x003f, 0xd4c7, 0x003f, 0x003f, 0x003f, 0xd9cb, 0x003f, 0xd9d2, 0xd3cb, 0xd8f7, 0xdaa9, 0xf5f8, 0x003f, 0x003f, 0xdede, 0xf2af, 0xf8a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c8, 0x003f, 0x003f, 0xeec1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf3, 0xeafa, 0x003f, 0xf6bd, 0xe1bb, 0xcdbf, 0xf4d4, 0xe6cd, 0x003f, 0xfccf, 0xfba2, 0x003f, 0xe0dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4bb, 0xdad5, 0x003f, 0xf9b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbf2, 0x003f, 0xdbf6, 0x003f, 0xdedf, 0x003f, 0x003f, 0x003f, 0xdbf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8dc, 0xf7ee, 0xebe8, 0x003f, 0xd2fa, 0x003f, 0x003f, 0xf1bc, 0x003f, 0x003f, 0xfada, 0x003f, 0x003f, 0xdaea, 0xdac6, 0xf7c1, 0x003f, 0x003f, 0xe7b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6d00 .. 0x6dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5c7, 0xd6ac, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a9, 0x003f, 0xe2aa, 0x003f, 0xd5a6, 0x003f, 0x003f, 0xd4d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d0, 0x003f, 0xeafb, 0x003f, 0xe0dd, 0xfbf3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1bd, 0x003f, 0x003f, 0xe2e7, 0xfdd7, 0x003f, 0xcec8, 0xeab7, 0x003f, 0xfcc0, 0x003f, 0xfde7, 0xf7ef, 0x003f, 0x003f, 0xd7b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefba, 0xf1dd, 0x003f, 0xdeb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8cb, 0x003f, 0x003f, 0xf8dd, 0x003f, 0x003f, 0xfbc7, 0xd5c8, 0x003f, 0xd7df, 0x003f, 0xdda9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b1, 0x003f, 0x003f, 0xfaad, 0xf6d9, 0xfaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ee, 0x003f, 0xccdc, 0xe1bc, 0xe0ef, 0x003f, 0x003f, 0xe9bf, 0xfcfd, 0xe6ce, 0x003f, 0x003f, 0xe1d7, 0x003f, 0xe6cf, 0x003f, 0xf4f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f3, 0x003f, 0x003f, 0xe4fb, 0x003f, 0x003f, 0xf9e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe3, 0x003f, 0x003f, 0xcfee, 0xf6be, 0xe0b2, 0xfcfe, 0xd1ab, 0x003f, 0x003f, 0x003f, 0xd7fa, 0x003f, 0x003f, 0x003f, 0xfbc8, 0x003f, 0xe2d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4a3, 0xf0f8, 0xd7a8, 0x003f, 0x003f, 0x003f, 0xe1e7, 0x003f, 0x003f, 0xd3bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe4, 0x003f, 0xd7c5, 0xebe2, 0x003f, 0x003f, 0xfce7, 0x003f, 0x003f, 0xe4a2, 0x003f, 0xe2e8, 0x003f, 0xe6d0, 0x003f, 0xfbe8, 0xf4e8, 0xe5f4, 0xf4bc, 0xf4d5, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6e00 .. 0x6eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfb6, 0x003f, 0xfcb9, 0xeec2, 0xcaf5, 0x003f, 0x003f, 0x003f, 0xefe5, 0xcbe2, 0xd4a4, 0x003f, 0xdee0, 0xdafd, 0xe4c6, 0xe8be, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0de, 0xf6b4, 0xead2, 0x003f, 0xf9fb, 0x003f, 0x003f, 0xe0c2, 0x003f, 0xcae4, 0x003f, 0xe7b7, 0x003f, 0xeafd, 0x003f, 0xd9dd, 0x003f, 0xdab4, 0xeeaa, 0xfbe9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbcb, 0xdab5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1be, 0x003f, 0x003f, 0xd3ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbc9, 0x003f, 0xdfcf, 0x003f, 0x003f, 0xd3c0, 0xe3d7, 0x003f, 0xefe6, 0xfcd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c0, 0x003f, 0x003f, 0x003f, 0xf5d3, 0x003f, 0x003f, 0xecdc, 0xf7b7, 0x003f, 0x003f, 0xeab8, 0xd1f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeab9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7b6, 0xcfb5, 0x003f, 0xd9a8, 0x003f, 0x003f, 0xecee, 0x003f, 0x003f, 0xddaa, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda2, 0xe8ae, 0x003f, 0x003f, 0x003f, 0xe1bd, 0x003f, 0xf2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c1, 0x003f, 0x003f, 0x003f, 0xd2fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbb5, 0x003f, 0xf3e7, 0xd8fe, 0x003f, 0x003f, 0x003f, 0xfcd1, 0x003f, 0xedb2, 0xf4af, 0x003f, 0xfba3, 0x003f, 0x003f, 0xfcc1, 0x003f, 0xeeab, 0xd4a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed9, 0x003f, 0x003f, 0x003f, 0xfbca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde3, 0xd8bb, /* 0x6f00 .. 0x6fff */ 0x003f, 0xe5db, 0xf8f7, 0x003f, 0x003f, 0x003f, 0xf6d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a9, 0x003f, 0xcbc9, 0x003f, 0x003f, 0xe6d1, 0xf0cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ae, 0x003f, 0xf9d3, 0xd5fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8bc, 0xf2b0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ab, 0xf3e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedec, 0x003f, 0xe7b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdafe, 0x003f, 0x003f, 0xccbe, 0x003f, 0x003f, 0xf2fc, 0xdaeb, 0x003f, 0xe2d8, 0xedd6, 0x003f, 0x003f, 0xd6d1, 0xe0b3, 0x003f, 0x003f, 0xfcd2, 0x003f, 0xebc8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c1, 0xf0cd, 0x003f, 0xcff7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd2, 0x003f, 0xd4d8, 0xdcc9, 0xd7f1, 0x003f, 0x003f, 0xdfbb, 0x003f, 0x003f, 0xf3a5, 0x003f, 0x003f, 0x003f, 0xf4cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1bf, 0xf8b1, 0x003f, 0xe9fa, 0x003f, 0x003f, 0x003f, 0xfbcb, 0x003f, 0x003f, 0xcad5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9d4, 0xf7ca, 0x003f, 0x003f, 0xd6c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfce8, 0xf3bd, 0x003f, 0xeefe, 0x003f, 0xe7fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b6, 0x003f, 0xccad, 0xf6fa, 0xd6b2, 0xd2d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7b9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ad, 0xfbcc, 0xeba1, 0x003f, 0x003f, 0xd4a6, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbcd, 0x003f, 0xd5bd, 0xf1df, 0x003f, 0x003f, 0xf6fb, 0x003f, 0xdeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5eb, 0x003f, /* 0x7000 .. 0x70ff */ 0x003f, 0xe5c8, 0x003f, 0x003f, 0x003f, 0xfba4, 0xd4b9, 0x003f, 0x003f, 0xdee1, 0x003f, 0xe4a3, 0x003f, 0x003f, 0x003f, 0xd7b7, 0x003f, 0xf8ee, 0x003f, 0x003f, 0x003f, 0xdeb5, 0x003f, 0x003f, 0xd6d2, 0x003f, 0xf9d5, 0xe7ba, 0xebd5, 0xd5f7, 0xefe7, 0xe1be, 0x003f, 0x003f, 0x003f, 0xfaae, 0x003f, 0x003f, 0x003f, 0xd6e9, 0xd6ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7bb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeccb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceb4, 0x003f, 0x003f, 0x003f, 0xfba5, 0xe1ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7a8, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfd, 0x003f, 0x003f, 0x003f, 0x003f, 0xfce9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb6, 0x003f, 0x003f, 0x003f, 0xedc7, 0xeeac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccdd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6a7, 0x003f, 0x003f, 0x003f, 0xe6fa, 0x003f, 0x003f, 0x003f, 0xf5a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfddc, 0xedb3, 0xcec9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefe8, 0x003f, 0x003f, 0xe1bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfadb, 0xcbe3, 0xf7a9, 0x003f, 0xfba6, 0x003f, 0x003f, 0x003f, 0xdcb9, 0x003f, 0x003f, 0x003f, 0xf1c0, 0xedc8, 0xefc3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ad, 0x003f, 0x003f, 0xfdce, 0x003f, 0x003f, 0x003f, 0xe8a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbf4, 0xd5a7, 0x003f, 0x003f, 0x003f, 0xf1f6, 0x003f, 0xe6d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8b2, 0x003f, 0x003f, 0x003f, 0xdceb, 0x003f, 0x003f, /* 0x7100 .. 0x71ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ea, 0x003f, 0x003f, 0xf1e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbcc, 0xddcd, 0x003f, 0x003f, 0x003f, 0xd4c8, 0x003f, 0x003f, 0xd9ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdc8, 0x003f, 0xd6a1, 0xfdbf, 0x003f, 0xfcd3, 0x003f, 0xefa1, 0x003f, 0xe7bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ee, 0x003f, 0x003f, 0xe6d5, 0x003f, 0x003f, 0xe9f2, 0x003f, 0xdfb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8e0, 0xfcba, 0xfdaf, 0xf0ce, 0x003f, 0xdbe1, 0x003f, 0x003f, 0xe5c9, 0x003f, 0xedb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9fb, 0xeaa8, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb7, 0x003f, 0x003f, 0xfba7, 0x003f, 0xe9c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d9, 0x003f, 0x003f, 0xdcec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdf8, 0xfdf9, 0x003f, 0x003f, 0x003f, 0xf6bf, 0x003f, 0x003f, 0xe7a7, 0x003f, 0xe6d7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f3, 0xd4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fa, 0x003f, 0xd7f2, 0x003f, 0xe1c0, 0x003f, 0xdbe2, 0xe6d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0cf, 0xf3be, 0xe2ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b7, 0xe0f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdb8, 0xe3e8, 0x003f, 0xd4a7, 0xe8fc, /* 0x7200 .. 0x72ff */ 0xfad2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d0, 0x003f, 0xf7f0, 0xeeb3, 0x003f, 0x003f, 0xeaba, 0x003f, 0xead3, 0x003f, 0x003f, 0xedc9, 0xddab, 0x003f, 0x003f, 0x003f, 0xe5ac, 0xfda1, 0x003f, 0xdfd0, 0xecb3, 0x003f, 0xdfd1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeded, 0xf8b8, 0xf7fa, 0x003f, 0x003f, 0x003f, 0xf8ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ba, 0xe4b3, 0x003f, 0xe9da, 0x003f, 0xdeb6, 0x003f, 0xd9bf, 0x003f, 0xd9c0, 0xd6ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cc, 0x003f, 0xdaaa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7e5, 0x003f, 0x003f, 0x003f, 0xccb2, 0x003f, 0x003f, 0xdff9, 0xd7e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdfa, 0x003f, 0x003f, 0x003f, 0x003f, 0xccb3, 0x003f, 0x003f, 0xdbf3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd2, 0x003f, 0xceca, 0x003f, 0xeeda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e4, 0x003f, 0xfbcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb7, 0x003f, 0xeec3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e1, 0xfaf5, 0x003f, 0x003f, 0xd5c9, 0xf8ac, 0x003f, 0x003f, /* 0x7300 .. 0x73ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ed, 0xe3c4, 0xf0f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8e5, 0x003f, 0x003f, 0x003f, 0xe0fa, 0xeec4, 0xd9de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeba2, 0xeba3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcc2, 0xeabb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ab, 0xdee2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedef, 0x003f, 0xe8a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xcff1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4bc, 0x003f, 0xfcea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7be, 0x003f, 0xfcf2, 0x003f, 0x003f, 0xd6b4, 0x003f, 0x003f, 0xe2ae, 0x003f, 0xd3b7, 0xfacc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfadc, 0x003f, 0xedb5, 0xe1e3, 0x003f, 0xe8ac, 0x003f, 0xe8dd, 0x003f, 0x003f, 0xefe9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4bd, 0x003f, 0xcfb8, 0xe9db, 0xd1ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebc9, 0x003f, 0xe8cc, 0x003f, 0x003f, 0x003f, 0xdeb7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6bc, 0xd3e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfadd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdad6, 0x003f, 0xcab1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdac8, 0xdfa6, 0x003f, 0xf9b3, 0xf2d2, 0x003f, 0xcac4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcecb, 0x003f, 0x003f, 0xcdf5, 0x003f, 0x003f, 0x003f, 0xfdb0, 0xd5a8, 0x003f, 0xf1c1, 0x003f, 0x003f, 0xe2e9, 0xdcca, 0xecb4, 0xfac0, 0x003f, 0x003f, 0xfba8, 0xd0a8, 0x003f, 0x003f, 0xdaec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ee, 0x003f, 0xe0fb, 0x003f, 0x003f, 0x003f, 0xefea, 0xfade, 0x003f, /* 0x7400 .. 0x74ff */ 0x003f, 0xe0c4, 0x003f, 0xcfb9, 0x003f, 0xd5ca, 0xd7e2, 0xe2af, 0x003f, 0xd7b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6da, 0x003f, 0x003f, 0x003f, 0x003f, 0xefa2, 0xe2da, 0xf6fc, 0x003f, 0x003f, 0xfbd0, 0xd1ad, 0x003f, 0xcde4, 0x003f, 0xd1ae, 0xdced, 0xe8ce, 0x003f, 0xf0f9, 0xceb5, 0xe6fc, 0x003f, 0x003f, 0xd7fb, 0xd0d6, 0xddf5, 0xf7f1, 0x003f, 0xf6fd, 0x003f, 0xdbf7, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbea, 0xe9dc, 0xd9c1, 0x003f, 0xf5f2, 0xe0c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xead4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9c2, 0x003f, 0xeabc, 0x003f, 0xd2c5, 0xfbd1, 0xe7c0, 0xeba5, 0x003f, 0xdffa, 0xe3a2, 0xd7b9, 0x003f, 0xe9c3, 0x003f, 0xe8fd, 0xe8af, 0x003f, 0x003f, 0xf2d3, 0xfba9, 0xd8a5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c8, 0x003f, 0x003f, 0x003f, 0xd1af, 0xd7e3, 0x003f, 0x003f, 0x003f, 0xe0c6, 0x003f, 0xd6a2, 0x003f, 0xedf0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7f3, 0x003f, 0x003f, 0x003f, 0xfcd4, 0x003f, 0xdad7, 0xccdf, 0x003f, 0xf2d4, 0x003f, 0xd1b0, 0x003f, 0xcce0, 0x003f, 0xdbfd, 0xf3bf, 0x003f, 0xf0d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcbb, 0x003f, 0xe2b0, 0x003f, 0x003f, 0xe6a5, 0x003f, 0x003f, 0x003f, 0xe2db, 0x003f, 0x003f, 0x003f, 0xdfde, 0x003f, 0xe0c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2ef, 0x003f, 0x003f, 0x003f, 0xcce1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6ea, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c2, 0x003f, 0x003f, 0x003f, 0xceb6, 0x003f, 0xf3c0, 0x003f, 0xcdfe, 0x003f, 0x003f, 0x003f, 0xfbd2, 0x003f, 0xf8f8, 0xf7fb, 0x003f, 0x003f, 0xe8bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7500 .. 0x75ff */ 0x003f, 0xdcba, 0x003f, 0x003f, 0xccb4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f7, 0x003f, 0x003f, 0x003f, 0xe8b8, 0x003f, 0x003f, 0xcaf6, 0x003f, 0xe4a4, 0xf4d6, 0x003f, 0x003f, 0x003f, 0xdfe6, 0x003f, 0x003f, 0x003f, 0xdfa7, 0x003f, 0xdfe7, 0xe1c1, 0x003f, 0xe9c4, 0x003f, 0x003f, 0xdccb, 0xe9c5, 0x003f, 0x003f, 0x003f, 0xefa3, 0xeba6, 0xcba3, 0xe3e9, 0x003f, 0x003f, 0x003f, 0xd1fb, 0xefa4, 0x003f, 0xefeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda3, 0x003f, 0x003f, 0xe8e6, 0x003f, 0xefa5, 0x003f, 0xd3cc, 0xdaed, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ba, 0x003f, 0xf2d5, 0xf5e5, 0xd9ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9b4, 0x003f, 0x003f, 0xd5d4, 0xfdcf, 0x003f, 0x003f, 0x003f, 0xdbe3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e1, 0xecb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbfe, 0xd3d7, 0x003f, 0xd1b1, 0x003f, 0xcbb1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbb2, 0xf1c2, 0x003f, 0x003f, 0xf4e1, 0xf9b5, 0x003f, 0x003f, 0xe1c3, 0xe1c2, 0x003f, 0xebf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfa8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8de, 0xf9aa, 0xcaf7, 0x003f, 0xedb7, 0x003f, 0x003f, 0xd3b8, 0xf2d6, 0x003f, 0x003f, 0xd4d9, 0xeec5, 0xf2f0, 0x003f, 0x003f, 0x003f, 0xcab2, 0x003f, 0x003f, 0xdcbb, 0x003f, 0xf1f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb7, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ca, 0x003f, 0xf6c0, 0xfddd, 0x003f, 0x003f, 0xd4e3, 0xcce2, 0x003f, 0xf7d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c3, 0x003f, 0xd8a6, 0x003f, 0xf6c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf6, 0x003f, 0xcdc0, 0x003f, 0x003f, 0x003f, /* 0x7600 .. 0x76ff */ 0xe5dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b0, 0xf4b0, 0xf3ea, 0xdaee, 0x003f, 0xd7bb, 0x003f, 0xe2b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4df, 0x003f, 0xcad6, 0x003f, 0x003f, 0x003f, 0xeba8, 0x003f, 0x003f, 0x003f, 0xdbfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6c2, 0x003f, 0x003f, 0xefbb, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4fd, 0x003f, 0x003f, 0xe0c8, 0x003f, 0x003f, 0x003f, 0xe8b9, 0x003f, 0xefa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda4, 0x003f, 0x003f, 0xd4f4, 0xdba1, 0xdbdc, 0xdbdd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeedc, 0x003f, 0xcbcb, 0xfcd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceeb, 0x003f, 0xcdc1, 0x003f, 0x003f, 0xfbd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a9, 0x003f, 0x003f, 0xe9dd, 0xdbcd, 0x003f, 0x003f, 0xddce, 0x003f, 0xe7c3, 0x003f, 0xeccc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ec, 0x003f, 0x003f, 0x003f, 0xcbcc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fc, 0xd4a8, 0x003f, 0xedd3, 0xd8ef, 0x003f, 0xf2d7, 0x003f, 0xcaf8, 0xdaef, 0x003f, 0x003f, 0xd6d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cd, 0x003f, 0x003f, 0x003f, 0xd8ee, 0x003f, 0xf2c1, 0x003f, 0x003f, 0x003f, 0xdfd3, 0x003f, 0x003f, 0x003f, 0xdaf0, 0x003f, 0xe2ea, 0x003f, /* 0x7700 .. 0x77ff */ 0x003f, 0xe0fd, 0x003f, 0x003f, 0xd8f8, 0x003f, 0x003f, 0x003f, 0xf7af, 0xdab6, 0x003f, 0xcad7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d8, 0x003f, 0xd8f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfadf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfef, 0xd9c2, 0x003f, 0xf0d2, 0x003f, 0xe4d1, 0x003f, 0x003f, 0x003f, 0xf3b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b2, 0x003f, 0xd4bd, 0x003f, 0x003f, 0xd9ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc2, 0xe7da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2eb, 0xd6fc, 0x003f, 0x003f, 0xcaf9, 0x003f, 0x003f, 0xd4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d7, 0xcca1, 0x003f, 0x003f, 0xcfba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b8, 0x003f, 0x003f, 0x003f, 0xd9c3, 0xd0e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c5, 0xebf8, 0x003f, 0xf2b1, 0x003f, 0x003f, 0x003f, 0xcfbb, 0x003f, 0x003f, 0x003f, 0xd3ad, 0xe8e1, 0xceec, 0x003f, 0x003f, 0x003f, 0xe0b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7800 .. 0x78ff */ 0x003f, 0x003f, 0xdee3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b2, 0xf3f6, 0xf6db, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8df, 0x003f, 0xf7f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7bc, 0xcce3, 0x003f, 0x003f, 0xe6db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdddd, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefed, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6de, 0xe4f4, 0xe1ef, 0x003f, 0x003f, 0xddf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae5, 0x003f, 0x003f, 0x003f, 0xdca1, 0x003f, 0xe0b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcac, 0xfcad, 0xd8a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb8, 0x003f, 0x003f, 0x003f, 0xdbb6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f0, 0xf3af, 0x003f, 0x003f, 0xcda5, 0x003f, 0xdaf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8a8, 0x003f, 0x003f, 0x003f, 0xcce4, 0x003f, 0x003f, 0xd1b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcad8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaf2, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7900 .. 0x79ff */ 0x003f, 0xf5a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ec, 0xd5f8, 0xdaf3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3c6, 0x003f, 0x003f, 0x003f, 0xdee4, 0x003f, 0xdee5, 0xd1b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b6, 0xd1b7, 0xf2b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d3, 0xf2b4, 0x003f, 0x003f, 0xf0d4, 0xcbe4, 0xfbd4, 0xf5e6, 0xe3ea, 0x003f, 0xdee6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd4, 0x003f, 0x003f, 0xf8f9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6df, 0x003f, 0xd0d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfca1, 0xefee, 0xdcd8, 0x003f, 0xe9df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5dd, 0xfdfb, 0x003f, 0x003f, 0xe0c9, 0x003f, 0x003f, 0x003f, 0xd6c9, 0x003f, 0x003f, 0xd4aa, 0x003f, 0xe5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e0, 0x003f, 0x003f, 0x003f, 0xd0d8, 0xfca2, 0xd4be, 0xe2b3, 0xdee7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcbc, 0xd2b6, 0xf5d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea1, 0xf5a9, 0x003f, 0x003f, 0xddf9, 0x003f, 0x003f, 0xddfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0d5, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6df, 0x003f, 0xf2da, 0xe4eb, 0x003f, 0xf2f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecb9, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7a00 .. 0x7aff */ 0xfdfc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1aa, 0x003f, 0x003f, 0xcad9, 0x003f, 0x003f, 0xefef, 0x003f, 0xf5aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf9, 0x003f, 0x003f, 0xf8ad, 0x003f, 0xf2c2, 0xf6c3, 0x003f, 0xd7d2, 0x003f, 0x003f, 0xf9a2, 0xf0d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fa, 0x003f, 0x003f, 0xf6e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f3, 0xf2c3, 0x003f, 0x003f, 0x003f, 0xd4ab, 0xcab3, 0xcda6, 0x003f, 0xcdc3, 0xcdda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9cf, 0x003f, 0x003f, 0xf6c4, 0x003f, 0x003f, 0x003f, 0xeedd, 0xe7c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe2, 0xe7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b1, 0x003f, 0xfcae, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5cd, 0x003f, 0x003f, 0x003f, 0xfaeb, 0x003f, 0xcfbc, 0x003f, 0x003f, 0xcfe2, 0xcdf6, 0x003f, 0x003f, 0xeff0, 0x003f, 0xf4be, 0x003f, 0xd4cd, 0x003f, 0x003f, 0xf3b8, 0x003f, 0x003f, 0x003f, 0xe9a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2f2, 0xf3eb, 0x003f, 0xf0d7, 0x003f, 0x003f, 0xcfd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8c0, 0xe8c1, 0x003f, 0x003f, 0x003f, 0xcfe3, 0xe9a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c1, 0xd0ab, 0x003f, 0xd4e4, 0x003f, 0x003f, 0xefbc, 0xd8a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9df, 0x003f, 0xf3d7, 0x003f, 0x003f, 0x003f, 0xdcbd, 0x003f, 0xcce5, 0xedf1, 0x003f, 0x003f, 0xf1e2, 0x003f, 0xd4db, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b5, 0x003f, 0x003f, 0xcae6, 0x003f, 0xd3ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce6, 0x003f, 0x003f, 0xf1d3, 0xf5e7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcada, /* 0x7b00 .. 0x7bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbee, 0x003f, 0xe1c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe9, 0x003f, 0xeede, 0x003f, 0x003f, 0xf7c2, 0x003f, 0xd8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0af, 0xd6bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9b6, 0x003f, 0x003f, 0xd4f5, 0x003f, 0xd0c9, 0xefa7, 0xe2ec, 0x003f, 0xdbea, 0xcecc, 0xf5e8, 0xf7d5, 0x003f, 0xd3cd, 0x003f, 0xf3fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0fe, 0x003f, 0xdffb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcd, 0x003f, 0x003f, 0x003f, 0xefa8, 0x003f, 0x003f, 0x003f, 0xeeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdad8, 0xd1b9, 0x003f, 0xdfa9, 0x003f, 0x003f, 0xf3b0, 0x003f, 0x003f, 0xccc4, 0x003f, 0x003f, 0x003f, 0xceb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefa9, 0x003f, 0x003f, 0x003f, 0xdfd5, 0x003f, 0x003f, 0xedd7, 0x003f, 0x003f, 0x003f, 0xeec6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefbd, 0xfcd6, 0x003f, 0x003f, 0xdbf4, 0x003f, 0xefaa, 0xf8b9, 0x003f, 0xf5e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c6, 0x003f, 0x003f, 0x003f, 0xd4bf, 0x003f, 0x003f, 0x003f, 0x003f, 0xdee8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7c00 .. 0x7cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3af, 0x003f, 0x003f, 0xcadb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcd7, 0x003f, 0x003f, 0xedd8, 0xe1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d8, 0xd6b3, 0xddad, 0x003f, 0x003f, 0x003f, 0xd5be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c3, 0xeedf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6eb, 0x003f, 0x003f, 0x003f, 0xf4d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdab7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddfb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8a3, 0x003f, 0x003f, 0xdad9, 0x003f, 0xf0d8, 0xefc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d4, 0x003f, 0xedf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5db, 0x003f, 0x003f, 0xd5dc, 0xf3c4, 0xcbd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b6, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddd0, 0xf0d9, 0xcbb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcda7, 0x003f, 0x003f, 0xd0ac, 0x003f, /* 0x7d00 .. 0x7dff */ 0xd1ba, 0x003f, 0xf1c4, 0x003f, 0xe5b3, 0xfbf5, 0xe9e1, 0xfde0, 0xfcbc, 0x003f, 0xdaa2, 0xdaa3, 0x003f, 0xd2a1, 0x003f, 0x003f, 0xd2ef, 0x003f, 0x003f, 0x003f, 0xe2ed, 0x003f, 0x003f, 0xdee9, 0xcedc, 0xf2b5, 0xd0e4, 0xddd1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1c8, 0xdbb7, 0xdfe3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb9, 0xf1c5, 0x003f, 0xf3cf, 0xd7ab, 0xe1ac, 0x003f, 0x003f, 0xe3eb, 0x003f, 0xeec7, 0x003f, 0x003f, 0x003f, 0xe1c9, 0xcafa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fb, 0xfae1, 0xf0da, 0xcce7, 0xdaf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceed, 0x003f, 0x003f, 0xd5a9, 0xfae2, 0x003f, 0x003f, 0x003f, 0xd0e5, 0x003f, 0xebd6, 0x003f, 0xecdf, 0x003f, 0x003f, 0x003f, 0xdffc, 0x003f, 0x003f, 0xf7d6, 0xdeea, 0xcbb4, 0x003f, 0x003f, 0xefbe, 0x003f, 0x003f, 0xccb5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff2, 0xe2b7, 0x003f, 0x003f, 0x003f, 0xcce8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fc, 0x003f, 0x003f, 0x003f, 0xd6e0, 0x003f, 0xf1c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2b8, 0xebab, 0x003f, 0x003f, 0x003f, 0xcbb5, 0xd8d1, 0x003f, 0xf4ce, 0xf3f7, 0x003f, 0x003f, 0xd7c6, 0x003f, 0xd1bb, 0xf7aa, 0x003f, 0xedca, 0xd7d3, 0xd8fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6c5, 0x003f, 0x003f, 0xd1cc, 0xddfc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdffd, 0x003f, 0xf9e5, 0x003f, 0xe0ca, 0x003f, 0x003f, 0xf2fd, 0xd3b0, 0x003f, 0xf4f3, 0xdac9, 0x003f, 0xe6de, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ba, 0xe8d0, 0x003f, 0x003f, 0xd8fb, 0x003f, 0x003f, 0xead5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6c6, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7e00 .. 0x7eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2db, 0xe4fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdada, 0x003f, 0xf2dc, 0xfbd6, 0xe9b2, 0x003f, 0xeead, 0x003f, 0xfae3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcee, 0x003f, 0x003f, 0xf5ea, 0xe6e0, 0x003f, 0xf0fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5c5, 0xeee0, 0x003f, 0x003f, 0xdbe5, 0x003f, 0xddde, 0x003f, 0x003f, 0xd9f0, 0xe9a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f9, 0x003f, 0xf2c4, 0xe0cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a4, 0x003f, 0x003f, 0xe2b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b1, 0xfceb, 0xcda8, 0x003f, 0xccb6, 0x003f, 0x003f, 0xf0db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ba, 0x003f, 0x003f, 0xcda9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1d9, 0x003f, 0x003f, 0xefab, 0x003f, 0x003f, 0x003f, 0xe7c5, 0x003f, 0x003f, 0xe0e9, 0x003f, 0xf3c5, 0x003f, 0x003f, 0xd4c0, 0xd5bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7f00 .. 0x7fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddae, 0x003f, 0xf9fc, 0x003f, 0xccc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a2, 0x003f, 0x003f, 0x003f, 0xceb8, 0x003f, 0x003f, 0x003f, 0xd8d2, 0xf9d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1aa, 0xced1, 0x003f, 0x003f, 0xf6c7, 0x003f, 0xdbeb, 0x003f, 0xdffe, 0x003f, 0x003f, 0xd8e1, 0x003f, 0xf7f3, 0x003f, 0xd7e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4fe, 0x003f, 0x003f, 0xd1bc, 0x003f, 0xe5cf, 0x003f, 0xcbb6, 0x003f, 0xdab8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6be, 0x003f, 0x003f, 0x003f, 0xe2ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd8, 0x003f, 0x003f, 0x003f, 0xe0cc, 0xebf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e8, 0xcbd8, 0x003f, 0x003f, 0x003f, 0xe9e2, 0x003f, 0x003f, 0x003f, 0xe8ba, 0x003f, 0x003f, 0x003f, 0xe3c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeccd, 0x003f, 0xecce, 0x003f, 0xd6bf, 0x003f, 0x003f, 0x003f, 0xe3a7, 0x003f, 0xdfd6, 0xfde8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee1, 0xf6a8, 0xddfd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8bb, 0x003f, 0xe8d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceee, 0x003f, 0x003f, 0xeccf, 0x003f, 0x003f, 0x003f, /* 0x8000 .. 0x80ff */ 0xe9a5, 0xd6d5, 0x003f, 0xcdc5, 0x003f, 0xedba, 0xd1bd, 0x003f, 0x003f, 0xcfbe, 0x003f, 0x003f, 0xecbb, 0x003f, 0x003f, 0x003f, 0xd2b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xcce9, 0x003f, 0xd9c4, 0xe9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecbc, 0x003f, 0x003f, 0xe5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7b0, 0x003f, 0xccea, 0x003f, 0x003f, 0x003f, 0xd3c4, 0x003f, 0x003f, 0xd6c0, 0x003f, 0x003f, 0x003f, 0xd6fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a1, 0x003f, 0xdebd, 0x003f, 0xf6a9, 0x003f, 0x003f, 0x003f, 0xdaa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a4, 0xf5c6, 0x003f, 0xe1a2, 0xe9c6, 0x003f, 0x003f, 0x003f, 0xf2c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e9, 0xd6ec, 0xebd3, 0x003f, 0x003f, 0x003f, 0x003f, 0xecbd, 0xe2dc, 0xdeeb, 0xf0dc, 0x003f, 0xebbf, 0x003f, 0xd7ce, 0xd1bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9fd, 0x003f, 0xcadc, 0x003f, 0x003f, 0x003f, 0xcdc6, 0xf2b6, 0x003f, 0x003f, 0xddfe, 0x003f, 0x003f, 0x003f, 0xccb7, 0xdbb8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e9, 0x003f, 0xcedd, 0xebc0, 0x003f, 0xfda2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xead6, 0xf1b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbce, 0x003f, 0xf7c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbcf, 0xcba4, 0x003f, 0x003f, 0xf8e0, 0x003f, 0x003f, 0xfbd7, 0x003f, 0x003f, 0xebca, 0xe0a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcecd, 0x003f, 0x003f, 0xd4dc, 0x003f, 0x003f, 0x003f, 0xfdd8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2f6, 0x003f, 0x003f, /* 0x8100 .. 0x81ff */ 0x003f, 0x003f, 0xf2b7, 0x003f, 0x003f, 0xfaf6, 0xf6aa, 0xfaf7, 0xd8e6, 0x003f, 0xf4b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d2, 0x003f, 0xcac5, 0xcceb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2bb, 0x003f, 0xf7ad, 0x003f, 0x003f, 0x003f, 0xf8e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4fd, 0x003f, 0x003f, 0xe3ec, 0x003f, 0xddaf, 0xddb0, 0x003f, 0x003f, 0xcbb7, 0xe8d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a3, 0xd2e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9a6, 0xcbf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf3, 0xdcd9, 0xe0cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7da, 0xdbb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccae, 0x003f, 0xdadb, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb1, 0x003f, 0xd8af, 0xe3a3, 0x003f, 0x003f, 0xceef, 0x003f, 0x003f, 0xf2f3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0ce, 0x003f, 0xf5fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xebec, 0x003f, 0x003f, 0xd3c5, 0xfcec, 0xd2db, 0xd4eb, 0x003f, 0xdea2, 0x003f, 0x003f, 0x003f, 0xe5e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedf4, 0x003f, 0x003f, 0x003f, 0xe3ed, 0x003f, 0xe8c2, 0x003f, 0xedf5, 0xd7fc, 0x003f, 0xedbb, 0x003f, 0x003f, 0xf6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b8, 0xf6c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3e6, 0xf2dd, 0xcfbf, 0x003f, 0xebac, 0x003f, /* 0x8200 .. 0x82ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfc0, 0x003f, 0xe6a8, 0xfde9, 0x003f, 0xcfc1, 0x003f, 0xe0df, 0xdeec, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4bf, 0xe2ef, 0x003f, 0xd9f1, 0xf1c7, 0x003f, 0xcbb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9fe, 0xdbba, 0xdaf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ec, 0xdadc, 0xfae4, 0x003f, 0xe0cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6a9, 0x003f, 0xeff3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfa, 0x003f, 0xf9e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcadd, 0xd5de, 0x003f, 0xcade, 0xdfe4, 0x003f, 0x003f, 0x003f, 0xe6fd, 0x003f, 0xf5ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e3, 0x003f, 0xedcb, 0xcfe4, 0x003f, 0x003f, 0x003f, 0xd8d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb3, 0xd4ec, 0x003f, 0x003f, 0xf2b9, 0x003f, 0xdfb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbce, 0xfbd8, 0x003f, 0x003f, 0xd0d9, 0x003f, 0x003f, 0xddd2, 0xf7f4, 0xe7dc, 0xe4a5, 0x003f, 0xfca3, 0x003f, 0xdbbb, 0x003f, 0x003f, 0x003f, 0xf2ba, 0xe9fd, 0xd0ca, 0x003f, 0xf5d6, 0xd9c5, 0xe4b4, 0x003f, 0xeda7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeabd, 0xe6fe, 0x003f, 0xf7c4, 0xf5ad, 0x003f, 0xd9e0, 0x003f, 0x003f, 0x003f, 0xcab4, 0x003f, 0x003f, 0xf8e2, 0xcfc2, 0x003f, 0xecbe, 0x003f, 0x003f, 0x003f, 0xe5b4, 0xcdc8, 0xeec8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdc9, 0xf9b7, 0x003f, /* 0x8300 .. 0x83ff */ 0x003f, 0xf1e8, 0xd9f2, 0xdbf5, 0xcab5, 0xd9c6, 0x003f, 0x003f, 0x003f, 0xd8c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedbc, 0x003f, 0x003f, 0xd8d4, 0x003f, 0x003f, 0x003f, 0xdcda, 0x003f, 0xe2bc, 0x003f, 0x003f, 0xfced, 0xece0, 0xd2fe, 0x003f, 0xe9c7, 0xe6aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfabb, 0x003f, 0xf5ae, 0xfbaa, 0x003f, 0x003f, 0x003f, 0x003f, 0xecfb, 0x003f, 0xecbf, 0xfcd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e5, 0x003f, 0x003f, 0x003f, 0xf9c3, 0x003f, 0x003f, 0x003f, 0xeee2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e9, 0xedf6, 0x003f, 0x003f, 0x003f, 0xdeed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccec, 0x003f, 0xe3ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8d4, 0x003f, 0x003f, 0x003f, 0xfaf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb4, 0xe4b5, 0xd8b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8d5, 0x003f, 0x003f, 0x003f, 0xf4ea, 0x003f, 0x003f, 0x003f, 0xceb9, 0x003f, 0x003f, 0x003f, 0xd6e1, 0xcfd2, 0x003f, 0xd0b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea2, 0x003f, 0x003f, 0xf3ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdccc, 0x003f, 0xd0cb, 0x003f, 0x003f, 0x003f, 0xfca4, 0xcdca, 0xd7d4, 0xdea3, 0x003f, 0xe4e0, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec9, 0x003f, 0x003f, 0x003f, 0xe2dd, 0x003f, 0x003f, /* 0x8400 .. 0x84ff */ 0x003f, 0x003f, 0x003f, 0xf5fe, 0xd4ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5d1, 0x003f, 0xd8f0, 0xf8c3, 0xead7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d7, 0x003f, 0x003f, 0xd8bf, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebad, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeca, 0x003f, 0x003f, 0x003f, 0xcae7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8e3, 0x003f, 0xd4dd, 0x003f, 0x003f, 0xead8, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbd9, 0xedf7, 0x003f, 0x003f, 0xe5b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2bd, 0x003f, 0x003f, 0x003f, 0xe3c8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d5, 0x003f, 0x003f, 0xdfaa, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbbc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1fa, 0x003f, 0x003f, 0xe5b6, 0xf3ef, 0x003f, 0x003f, 0xfbda, 0xe1e0, 0x003f, 0xd9ac, 0x003f, 0xf5eb, 0x003f, 0xe0b6, 0x003f, 0x003f, 0xe9c8, 0x003f, 0xcbcf, 0x003f, 0xe3c9, 0x003f, 0x003f, 0x003f, 0xdeee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcef, 0x003f, 0xd6a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6fe, 0x003f, 0x003f, 0x003f, /* 0x8500 .. 0x85ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9a1, 0x003f, 0xd8c0, 0xdcdb, 0x003f, 0x003f, 0xedbd, 0xdfb8, 0x003f, 0xeaa5, 0x003f, 0x003f, 0x003f, 0xd7ad, 0x003f, 0x003f, 0xf3f9, 0x003f, 0xedf8, 0x003f, 0xf5c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1ca, 0xebe3, 0x003f, 0xf2de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8cc, 0x003f, 0xead9, 0x003f, 0xd3c6, 0x003f, 0xdbe6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5af, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef0, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xcff2, 0xf7b9, 0xd9f3, 0x003f, 0x003f, 0xe1cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdadd, 0x003f, 0x003f, 0xdab9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebfb, 0x003f, 0xcbb9, 0x003f, 0x003f, 0xedf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c0, 0x003f, 0xfdbc, 0xdfb1, 0xe3ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a3, 0xfdb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdcb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedbe, 0x003f, 0x003f, 0x003f, 0xd5c0, 0xe3f0, 0xedfa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ed, 0xe7dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f6, 0xe5b7, 0x003f, 0x003f, 0x003f, 0xdbe7, 0xe2bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeecb, 0x003f, 0x003f, 0xd7f4, 0xf0dd, 0x003f, 0x003f, 0x003f, 0xceab, /* 0x8600 .. 0x86ff */ 0x003f, 0x003f, 0xe7de, 0x003f, 0x003f, 0x003f, 0xd6d6, 0xe1cc, 0x003f, 0x003f, 0xe8b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5ee, 0xdca2, 0x003f, 0x003f, 0xe0d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbdb, 0x003f, 0xf9cb, 0x003f, 0x003f, 0x003f, 0xcbf3, 0xf4a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfac8, 0xd6d7, 0x003f, 0xe9e5, 0xfbdc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaa5, 0x003f, 0xdbbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xece2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdf7, 0xf0de, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeef, 0x003f, 0x003f, 0x003f, 0xd3b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcee, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8c3, 0x003f, 0xf1c8, 0x003f, 0x003f, 0x003f, 0xcef1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4b6, 0x003f, /* 0x8700 .. 0x87ff */ 0xf5b9, 0x003f, 0xdcf0, 0xe3f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2bb, 0x003f, 0xdea4, 0x003f, 0xdacc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3da, 0x003f, 0xfcd9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeada, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9c4, 0x003f, 0xe3a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbdd, 0x003f, 0xefca, 0x003f, 0xe8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebd7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ad, 0x003f, 0x003f, 0xfbab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaf6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d1, 0x003f, 0x003f, 0xe9a8, 0x003f, 0x003f, 0xf5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaaf, 0x003f, 0xebfc, 0x003f, 0x003f, 0xe0ea, 0x003f, /* 0x8800 .. 0x88ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c5, 0x003f, 0x003f, 0xf1e3, 0xd5ee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdcc, 0x003f, 0x003f, 0x003f, 0x003f, 0xedd9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xfaec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfabc, 0xe6e2, 0x003f, 0x003f, 0x003f, 0x003f, 0xfae5, 0xe2fa, 0x003f, 0x003f, 0x003f, 0xcab6, 0x003f, 0xe4b7, 0x003f, 0xeadb, 0x003f, 0xf5fa, 0x003f, 0x003f, 0x003f, 0xfbac, 0xcfc3, 0xebfd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fa, 0x003f, 0x003f, 0xdfb9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f1, 0x003f, 0xd2a4, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0da, 0xd0db, 0x003f, 0xeabe, 0xd9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcab7, 0x003f, 0x003f, 0xd3e7, 0x003f, 0xf8e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b2, 0x003f, 0x003f, 0x003f, 0xe2c0, 0xf2df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeae, 0xd6ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ea, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e0, 0xebae, 0x003f, 0x003f, 0x003f, 0xcfd9, 0x003f, 0x003f, 0xdccd, 0xedfb, 0x003f, 0xdef0, 0x003f, 0xd7eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd7, 0xdbd0, 0xdbd1, 0x003f, 0x003f, 0xd5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b2, 0x003f, 0x003f, /* 0x8900 .. 0x89ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcdc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcae8, 0x003f, 0xf8e6, 0xdcce, 0x003f, 0x003f, 0x003f, 0x003f, 0xeadc, 0xdbd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9b3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a8, 0x003f, 0xd7ae, 0x003f, 0x003f, 0xe0e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbba, 0x003f, 0x003f, 0xe5d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a4, 0x003f, 0xe9a9, 0x003f, 0xd3c7, 0x003f, 0x003f, 0xdcdd, 0xf8ae, 0x003f, 0x003f, 0x003f, 0xccb8, 0x003f, 0x003f, 0x003f, 0xd0ae, 0x003f, 0x003f, 0x003f, 0xd8f2, 0x003f, 0x003f, 0xe3ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ad, 0xf6d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac6, 0x003f, 0x003f, 0xd5c2, 0x003f, 0x003f, 0xceba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfd8, 0x003f, 0x003f, 0x003f, 0xf5ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8a00 .. 0x8aff */ 0xe5eb, 0x003f, 0xeff4, 0xddb5, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdaa, 0x003f, 0xe3f2, 0x003f, 0xfbf7, 0x003f, 0xf7d0, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdba, 0x003f, 0x003f, 0xfde1, 0xf6fe, 0xd1c0, 0x003f, 0x003f, 0xe8c5, 0x003f, 0xe4b8, 0x003f, 0xe1e8, 0x003f, 0x003f, 0x003f, 0xccc1, 0x003f, 0xd2ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbbe, 0x003f, 0x003f, 0xe0e2, 0x003f, 0x003f, 0x003f, 0xfac9, 0x003f, 0x003f, 0xe1cd, 0x003f, 0xcab8, 0x003f, 0x003f, 0x003f, 0xf2e0, 0xf1c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef1, 0x003f, 0x003f, 0x003f, 0xf0df, 0xf8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeecc, 0x003f, 0x003f, 0xdef2, 0x003f, 0xe7c9, 0x003f, 0xe2f3, 0xe7e1, 0x003f, 0x003f, 0xe3cb, 0x003f, 0x003f, 0xe3cc, 0x003f, 0x003f, 0x003f, 0xcff8, 0xefac, 0x003f, 0xfdfe, 0xfca5, 0xfab1, 0xdfd9, 0x003f, 0xe0d2, 0x003f, 0x003f, 0x003f, 0xf4da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ca, 0x003f, 0xcea3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2bc, 0xece3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a5, 0x003f, 0xf7ab, 0x003f, 0x003f, 0xebaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5de, 0x003f, 0xe1a4, 0xcdab, 0x003f, 0xd9f4, 0xe8a6, 0xcdce, 0xe1e9, 0x003f, 0xfcef, 0x003f, 0xe0e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c1, 0x003f, 0xcea4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea6, 0x003f, 0x003f, 0xebfe, 0x003f, 0xebdd, 0xf0e0, 0x003f, 0x003f, 0xf4db, 0x003f, 0xe2f4, 0x003f, 0x003f, 0xd3c8, 0x003f, 0x003f, 0x003f, 0xf4eb, 0x003f, 0xeeb5, 0x003f, 0xf5d8, 0x003f, 0x003f, 0xd5df, 0x003f, 0x003f, 0x003f, 0xd6e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb0, 0xf4e3, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f4, 0xfab2, 0x003f, 0x003f, 0xeff5, 0xcadf, 0x003f, 0xebb1, 0xedbf, 0x003f, 0x003f, 0xfdc9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4a6, 0xf9a4, 0xf0b3, 0x003f, 0xe5ec, 0x003f, 0x003f, 0x003f, 0xd1e7, 0x003f, /* 0x8b00 .. 0x8bff */ 0xd9c7, 0xe4d7, 0xeadd, 0x003f, 0xd4f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaba, 0x003f, 0xdacd, 0x003f, 0x003f, 0x003f, 0xf9cc, 0x003f, 0xe1da, 0xdbbf, 0x003f, 0xccc5, 0xecd0, 0xcbbb, 0x003f, 0xdef3, 0x003f, 0x003f, 0xe9aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9c8, 0x003f, 0x003f, 0xeee3, 0xd7bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfca6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1fb, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd2, 0xd1c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3db, 0x003f, 0xd3c9, 0x003f, 0xdccf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcced, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdea7, 0x003f, 0x003f, 0xe6bb, 0xeca1, 0x003f, 0x003f, 0x003f, 0xccb9, 0x003f, 0x003f, 0xfbde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e2, 0x003f, 0x003f, 0xd4c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdca8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c2, 0x003f, 0xf3d8, 0xe5d3, 0x003f, 0x003f, 0xf3d9, 0x003f, 0x003f, 0x003f, 0xf3c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8c00 .. 0x8cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcddb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdac, 0x003f, 0xfcc3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e7, 0x003f, 0xd1c2, 0x003f, 0xf9a5, 0x003f, 0xe8d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbdf, 0xe7e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fb, 0xe3cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8e7, 0x003f, 0xd9c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8af, 0xeff6, 0x003f, 0xddb6, 0xeeaf, 0xcdf8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeb8, 0xfca7, 0xf7fc, 0xf7b1, 0xcebb, 0xf4a1, 0x003f, 0x003f, 0xeecd, 0xe1ae, 0x003f, 0x003f, 0xecc3, 0xcffe, 0x003f, 0xf8bf, 0xd8e2, 0xd3e8, 0x003f, 0x003f, 0xdea8, 0xf4e4, 0xecc2, 0x003f, 0xd9f5, 0xf9c5, 0xddd3, 0xd6f1, 0xecfc, 0xfcf0, 0x003f, 0x003f, 0xedc0, 0xcab9, 0x003f, 0xeee4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e1, 0x003f, 0xdeb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f2, 0x003f, 0xdef4, 0x003f, 0xdfdb, 0x003f, 0xdbd3, 0x003f, 0xfae7, 0xd8e3, 0xf4c1, 0x003f, 0xddb7, 0x003f, 0x003f, 0x003f, 0xf2f5, 0x003f, 0x003f, 0xd4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddb8, 0xcfc5, 0xdfdf, 0x003f, 0x003f, /* 0x8d00 .. 0x8dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xf2be, 0xf6a1, 0x003f, 0xebcb, 0xf1fc, 0x003f, 0xf3c7, 0x003f, 0x003f, 0xe0eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedfc, 0x003f, 0x003f, 0xe1db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee5, 0x003f, 0xdef5, 0x003f, 0x003f, 0x003f, 0x003f, 0xfad3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1cb, 0x003f, 0x003f, 0xd0af, 0xddb9, 0x003f, 0x003f, 0xd1c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ac, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddba, 0x003f, 0x003f, 0x003f, 0xf2bf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7c5, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba2, 0xf2f6, 0x003f, 0x003f, 0xcaba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf7f5, 0x003f, 0xcbe5, 0x003f, 0x003f, 0x003f, 0xeee6, 0x003f, 0xe0d3, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d8, 0x003f, 0x003f, 0x003f, 0xd4af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8e00 .. 0x8eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c9, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3ce, 0xf4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb2, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb3, 0x003f, 0xf0b4, 0x003f, 0x003f, 0xcbf4, 0xd4b0, 0xf3b2, 0xfbb7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeee7, 0xf4b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ed, 0x003f, 0xcff3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeece, 0x003f, 0x003f, 0xf1cc, 0x003f, 0x003f, 0xe5b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7f5, 0xe3f3, 0xcfe5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfc6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3b3, 0xe4d8, 0xcff9, 0xcfda, 0x003f, 0x003f, 0x003f, 0x003f, 0xfacd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5ee, 0x003f, 0x003f, 0xcabb, 0x003f, 0x003f, 0xe3dc, 0x003f, /* 0x8f00 .. 0x8fff */ 0x003f, 0x003f, 0x003f, 0xcef2, 0x003f, 0xd6d9, 0x003f, 0x003f, 0x003f, 0xeeb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4e5, 0xd8c2, 0xdcd0, 0xccee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5e0, 0xf6ca, 0xfdca, 0xd8d6, 0xf4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6a6, 0xdcbe, 0x003f, 0xdbd4, 0xd7c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2fe, 0x003f, 0x003f, 0x003f, 0xf1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c3, 0xdcde, 0x003f, 0xdcdf, 0x003f, 0x003f, 0xefad, 0xe6ab, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9dd, 0xeabf, 0x003f, 0x003f, 0x003f, 0xefae, 0x003f, 0x003f, 0x003f, 0xf4d0, 0xcef3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ac, 0x003f, 0xcede, 0x003f, 0x003f, 0xd5f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f4, 0xcdd0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5b8, 0x003f, 0x003f, 0xf7fd, 0x003f, 0xdca9, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef6, 0x003f, 0xdcaa, 0xf2e3, 0xe9b4, 0xd2dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e6, 0x003f, 0x003f, 0xe3f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7ca, 0x003f, 0x003f, 0xd0ce, 0x003f, 0x003f, 0xdaf7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcabc, 0x003f, 0x003f, 0x003f, 0xeee8, 0xdade, 0x003f, 0xf2f7, 0x003f, 0x003f, 0xe2fb, 0x003f, 0xcca6, 0x003f, 0x003f, 0x003f, 0x003f, 0xdabb, 0x003f, 0xeee9, 0x003f, 0x003f, 0x003f, 0xf5da, 0x003f, 0x003f, /* 0x9000 .. 0x90ff */ 0xf7dc, 0xe1ea, 0xcec1, 0xd4b1, 0x003f, 0xfdb1, 0xe6bd, 0x003f, 0xfbad, 0x003f, 0x003f, 0xf8e7, 0x003f, 0xe1ce, 0x003f, 0xf7e2, 0xf5ef, 0xcfc7, 0x003f, 0x003f, 0xd4b2, 0xccef, 0x003f, 0xd4e8, 0x003f, 0xeecf, 0xf7d7, 0x003f, 0x003f, 0xe0a6, 0xd6c1, 0xe1dc, 0xf0e3, 0xf1e4, 0xdcf1, 0xd6a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f5, 0x003f, 0x003f, 0xf1ce, 0xf2e4, 0x003f, 0x003f, 0xd0b0, 0x003f, 0x003f, 0xecef, 0x003f, 0x003f, 0x003f, 0xf9ba, 0x003f, 0xebb5, 0x003f, 0x003f, 0xd4ed, 0xe2c4, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e7, 0x003f, 0x003f, 0xebb4, 0xeaa1, 0x003f, 0xf8bc, 0xcea6, 0x003f, 0xf9c6, 0xfcda, 0x003f, 0xd4b3, 0xd3b9, 0xeade, 0x003f, 0x003f, 0x003f, 0xe9ab, 0x003f, 0x003f, 0xe1e1, 0xd3cf, 0xf4f6, 0x003f, 0xeac0, 0xe1cf, 0x003f, 0xccba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeea, 0x003f, 0x003f, 0x003f, 0xf0e4, 0xf3b4, 0xd4ee, 0x003f, 0x003f, 0xf2c0, 0x003f, 0x003f, 0xf1e5, 0x003f, 0xf4c3, 0xe0d4, 0x003f, 0xebb6, 0x003f, 0xd7a1, 0xcbe8, 0x003f, 0xf9ad, 0xe9ad, 0xd8e4, 0xfab3, 0xe2c5, 0xfcbd, 0x003f, 0x003f, 0xecc4, 0xd8b1, 0x003f, 0xdcab, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5a4, 0x003f, 0xebe9, 0x003f, 0x003f, 0x003f, 0xe8bb, 0x003f, 0x003f, 0x003f, 0xd8d7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbae, 0xd1e1, 0x003f, 0x003f, 0xdbc0, 0x003f, 0xf5be, 0x003f, 0xdef7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafb, 0xf7c6, 0xcfc8, 0x003f, 0x003f, 0x003f, 0xe1d0, 0x003f, 0x003f, 0xeed0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5cd, 0x003f, 0x003f, 0xcfdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddbb, 0x003f, 0x003f, 0x003f, 0x003f, 0xceac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b4, 0x003f, 0x003f, /* 0x9100 .. 0x91ff */ 0x003f, 0x003f, 0xe4c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5db, 0x003f, 0x003f, 0xfac1, 0x003f, 0x003f, 0x003f, 0xdea9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeff7, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb7, 0xeff8, 0xf5dc, 0xedcc, 0xdbd5, 0xf1cf, 0x003f, 0x003f, 0x003f, 0xf1d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5b2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ae, 0xd5ac, 0x003f, 0xe2c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfda3, 0x003f, 0xfbe5, 0xdfab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2f5, 0x003f, 0xf6ad, 0x003f, 0xf5b3, 0x003f, 0xf0b5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5dd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeca2, 0xedfd, 0x003f, 0xf5b4, 0xfbb8, 0x003f, 0xdba3, 0x003f, 0x003f, 0xd6ca, 0xcbd9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fa, 0x003f, 0xebb8, 0x003f, 0xe0b7, 0xd7ec, 0xf1ec, 0xe5af, 0xd5e1, 0xd7ed, 0xd1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1f2, 0xeff9, 0x003f, 0x003f, 0x003f, 0xddbc, 0xf6dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e5, 0x003f, 0x003f, 0x003f, 0xf4c4, 0x003f, 0x003f, 0xe9e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3fb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9200 .. 0x92ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4ef, 0x003f, 0x003f, 0xcca2, 0xf7fe, 0xdfbc, 0x003f, 0x003f, 0x003f, 0x003f, 0xebcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8ad, 0x003f, 0x003f, 0x003f, 0x003f, 0xefaf, 0xcba5, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbe9, 0x003f, 0x003f, 0x003f, 0xfae8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccc6, 0x003f, 0x003f, 0x003f, 0xe6e7, 0x003f, 0x003f, 0xeac7, 0x003f, 0x003f, 0x003f, 0xdba4, 0x003f, 0xcfc9, 0xe2fc, 0xeffa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebde, 0x003f, 0x003f, 0xf5c8, 0x003f, 0xd4de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d5, 0x003f, 0xefb0, 0x003f, 0x003f, 0xe2c7, 0x003f, 0xd9af, 0x003f, 0x003f, 0x003f, 0xf9e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7e5, 0x003f, 0x003f, 0xcfca, 0xe1d1, 0x003f, 0xe2c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeffb, 0x003f, 0x003f, 0xfaf9, 0x003f, 0x003f, 0xdcf2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbea, 0x003f, 0x003f, 0x003f, 0xcbbc, 0x003f, 0x003f, 0x003f, /* 0x9300 .. 0x93ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xd6e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5de, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5df, 0x003f, 0xeeb6, 0x003f, 0x003f, 0x003f, 0xe2f6, 0xd3ca, 0xeffc, 0xd1c4, 0xefb1, 0x003f, 0xd1c5, 0x003f, 0xd0de, 0x003f, 0xd9e1, 0x003f, 0x003f, 0xe0b8, 0x003f, 0x003f, 0xcdd1, 0xf3b9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7cc, 0x003f, 0xd6a8, 0xcea7, 0x003f, 0xd4b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebb9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6dd, 0x003f, 0xf1a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ca, 0x003f, 0xe1f0, 0x003f, 0x003f, 0x003f, 0xf5e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbaf, 0x003f, 0x003f, 0x003f, 0xcbd1, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe0, 0xf2e5, 0x003f, 0x003f, 0xecf0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeeeb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9cb, 0x003f, 0x003f, 0xccf0, 0x003f, 0x003f, 0xd7af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9400 .. 0x94ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xfcf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0d6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4d1, 0x003f, 0x003f, 0xf7a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafc, 0xcafd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcece, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3c8, 0x003f, 0xf3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9500 .. 0x95ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaa6, 0x003f, 0x003f, 0xe0ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8cd, 0x003f, 0xcbd2, 0x003f, 0x003f, 0x003f, 0xebce, 0x003f, 0xf9d8, 0xf9d9, 0xcae0, 0xdaca, 0x003f, 0x003f, 0x003f, 0xcba6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac8, 0xf9ee, 0xdbec, 0x003f, 0x003f, 0xd0b1, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ef, 0x003f, 0x003f, 0x003f, 0xe6f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a2, 0xe4d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4e1, 0x003f, 0x003f, 0xfcc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ef, 0xcff4, 0xf7e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcebc, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c5, 0xdca3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9600 .. 0x96ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xddbd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8a1, 0x003f, 0x003f, 0x003f, 0xe8d6, 0x003f, 0x003f, 0x003f, 0xdbc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e6, 0x003f, 0x003f, 0x003f, 0xe4b9, 0xf6ed, 0x003f, 0xf9ae, 0x003f, 0xddbe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7b0, 0xd8e8, 0xcbbd, 0x003f, 0x003f, 0xf9da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8ce, 0xf9f0, 0xe0ed, 0xe3b3, 0xf4b3, 0x003f, 0x003f, 0xeac2, 0xf2e6, 0xf0b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbd6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebe4, 0x003f, 0x003f, 0xf2e7, 0x003f, 0xd7d5, 0xd4b6, 0xf9e8, 0xd7c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9ea, 0xd7cc, 0x003f, 0x003f, 0x003f, 0xd3e9, 0xe2c9, 0x003f, 0xfcdb, 0xcdad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccb0, 0xeaa2, 0x003f, 0x003f, 0xe4f6, 0xd0c0, 0x003f, 0xf0b7, 0xeea1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7f6, 0x003f, 0x003f, 0x003f, 0xe2ca, 0xe2cb, 0x003f, 0xfacf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebdf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6cb, 0x003f, 0x003f, 0x003f, 0xf4b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xedcd, 0xe4d2, 0x003f, 0x003f, 0xeaa9, 0xe4ba, 0xf3a2, 0xcdd2, 0x003f, 0xf6cb, 0x003f, 0xf1e6, 0xedc1, 0xe8bc, 0xeed1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e7, 0xe2cc, 0x003f, 0x003f, 0xe4aa, 0x003f, 0xf5e1, 0xedda, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ee, 0xd1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9eb, 0xe9ec, 0xe0e4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdaa7, 0xddd4, 0x003f, 0xeaa3, 0x003f, 0x003f, 0x003f, 0xd6c3, 0xd6f4, 0x003f, 0xdadf, 0x003f, 0xefb3, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9700 .. 0x97ff */ 0xe2cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeffd, 0xf2e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc5, 0x003f, 0xe7e7, 0x003f, 0x003f, 0xd7fd, 0x003f, 0x003f, 0xe7ce, 0x003f, 0x003f, 0xdfdc, 0x003f, 0xf9c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfac, 0x003f, 0xd6da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdca4, 0x003f, 0x003f, 0x003f, 0xf0b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5fa, 0x003f, 0xe4f7, 0x003f, 0x003f, 0x003f, 0xd6c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4ec, 0x003f, 0x003f, 0x003f, 0x003f, 0xeffe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a1, 0x003f, 0xdeaa, 0x003f, 0x003f, 0xdabc, 0xd8fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfad4, 0x003f, 0x003f, 0x003f, 0xece5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfca8, 0x003f, 0x003f, 0xece6, 0x003f, 0x003f, 0xd8cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbb9, 0x003f, 0xe4d3, 0x003f, 0xcdf9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcaea, 0x003f, 0x003f, 0xcfd4, 0x003f, 0xf8bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4c7, 0x003f, 0x003f, 0x003f, 0x003f, 0xeadf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebe5, 0x003f, 0x003f, 0xe1d2, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa4, 0x003f, 0x003f, 0x003f, 0xfac2, /* 0x9800 .. 0x98ff */ 0xfbe1, 0xfaed, 0xf0a2, 0xccf1, 0x003f, 0xfaa3, 0xe2f7, 0x003f, 0xe2ce, 0x003f, 0xe9f5, 0x003f, 0xe1eb, 0x003f, 0x003f, 0x003f, 0xe7e8, 0xe8d7, 0xdaf8, 0xd4cb, 0x003f, 0x003f, 0x003f, 0xf7f6, 0xd6c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4e9, 0x003f, 0x003f, 0xfafa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccf2, 0xf7dd, 0x003f, 0xdeba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcea8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0b9, 0xe4fe, 0xe4c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d4, 0x003f, 0x003f, 0x003f, 0xeac3, 0x003f, 0xefb4, 0x003f, 0x003f, 0x003f, 0xd7be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbe2, 0x003f, 0xcdd3, 0x003f, 0x003f, 0x003f, 0xefb5, 0x003f, 0x003f, 0x003f, 0xfae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfbd, 0x003f, 0xf7c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8fd, 0x003f, 0x003f, 0xf8fc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeab, 0xdbe8, 0x003f, 0x003f, 0xe3dd, 0x003f, 0xe1e2, 0xd1c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6d0, 0xebe6, 0xdaf9, 0x003f, 0x003f, 0x003f, 0x003f, 0xecc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef8, 0xf8e9, 0xe3de, 0x003f, /* 0x9900 .. 0x99ff */ 0x003f, 0x003f, 0x003f, 0xcef5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfac3, 0xe5d7, 0x003f, 0xecc8, 0x003f, 0x003f, 0x003f, 0xf3c9, 0x003f, 0x003f, 0xe4bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefb6, 0x003f, 0xdcbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcebd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c3, 0x003f, 0x003f, 0x003f, 0xd0cf, 0x003f, 0xcffa, 0xf3ca, 0xe0d7, 0x003f, 0x003f, 0x003f, 0xd1c7, 0xe9ae, 0x003f, 0xe8bd, 0x003f, 0x003f, 0xfac4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2cf, 0x003f, 0x003f, 0xfac5, 0x003f, 0x003f, 0x003f, 0xf9b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdce0, 0x003f, 0x003f, 0xfbb0, 0x003f, 0x003f, 0x003f, 0xd8a9, 0xe5df, 0xf9a7, 0x003f, 0x003f, 0xf6ee, 0x003f, 0xf6cc, 0xe2f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xecf1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d2, 0xd2cc, 0xcfcb, 0x003f, 0x003f, 0xcabd, 0x003f, 0x003f, 0x003f, 0xddbf, 0x003f, 0x003f, 0x003f, 0xf6ef, 0x003f, 0xdef9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab4, 0x003f, 0x003f, 0x003f, 0xd5ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1e7, /* 0x9a00 .. 0x9aff */ 0x003f, 0xdebe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcc0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1c8, 0xd1c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf6, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4f9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5e2, 0xe1d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8e9, 0x003f, 0x003f, 0xf8fe, 0x003f, 0xcfcc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfda4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef6, 0x003f, 0xfad0, 0x003f, 0x003f, 0xccf3, 0xe6be, 0x003f, 0x003f, 0x003f, 0xf6ae, 0x003f, 0x003f, 0xd5f0, 0x003f, 0x003f, 0xd1ca, 0x003f, 0x003f, 0x003f, 0xfcbe, 0xd5f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfab5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d0, 0xf4f7, 0x003f, 0x003f, 0x003f, 0xcdd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe7a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdba5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9b00 .. 0x9bff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a2, 0x003f, 0x003f, 0xf7e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeaa6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0a1, 0x003f, 0x003f, 0x003f, 0x003f, 0xceda, 0xfbeb, 0xdba6, 0xdbde, 0xd8e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae0, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5e0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefc6, 0x003f, 0x003f, 0xf8ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4d5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcef7, 0x003f, 0x003f, 0xe0d8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ef, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcde6, 0x003f, 0x003f, 0x003f, 0xccf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9c00 .. 0x9cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5e3, 0x003f, 0x003f, 0xe4ca, 0x003f, 0xdce1, 0x003f, 0x003f, 0xf9c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcbf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbbe, 0x003f, 0xdcae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0e8, 0x003f, 0xddc0, 0x003f, 0xcfcd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdcf3, 0xd9b0, 0x003f, 0xe6e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9d00 .. 0x9dff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ec, 0x003f, 0xe4e5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfbf8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccbb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4bd, 0x003f, 0x003f, 0xcddc, 0xd9f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdddf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfdd3, 0xebed, 0xd6dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9e00 .. 0x9eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5a4, 0x003f, 0x003f, 0x003f, 0xd5b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6dd, 0x003f, 0x003f, 0x003f, 0xf9e9, 0x003f, 0x003f, 0x003f, 0xe7a4, 0x003f, 0xd6e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1cb, 0xd6e4, 0x003f, 0x003f, 0x003f, 0xd5f2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdefa, 0x003f, 0xd7f8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfd5, 0xd8fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8ab, 0x003f, 0x003f, 0xfdcb, 0x003f, 0x003f, 0x003f, 0x003f, 0xfcdc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a8, 0xd5f3, 0x003f, 0x003f, 0xfdd9, 0x003f, 0x003f, 0xcca3, 0x003f, 0x003f, 0x003f, 0xd9f9, 0x003f, 0x003f, 0xd3ea, 0xf5f5, 0x003f, 0xefc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdabd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9f00 .. 0x9fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe8a8, 0xdcaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0a3, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0a9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf0ba, 0xeeb1, 0x003f, 0x003f, 0xeeb2, 0x003f, 0x003f, 0x003f, 0xf6cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeed2, 0x003f, 0xd6c6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0e5, 0x003f, 0x003f, 0xf3bb, 0x003f, 0xe5e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7a3, 0x003f, 0x003f, 0xdbc2, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xac00 .. 0xacff */ 0xb0a1, 0xb0a2, 0x8141, 0x8142, 0xb0a3, 0x8143, 0x8144, 0xb0a4, 0xb0a5, 0xb0a6, 0xb0a7, 0x8145, 0x8146, 0x8147, 0x8148, 0x8149, 0xb0a8, 0xb0a9, 0xb0aa, 0xb0ab, 0xb0ac, 0xb0ad, 0xb0ae, 0xb0af, 0x814a, 0xb0b0, 0xb0b1, 0xb0b2, 0xb0b3, 0xb0b4, 0x814b, 0x814c, 0xb0b5, 0x814d, 0x814e, 0x814f, 0xb0b6, 0x8150, 0x8151, 0x8152, 0x8153, 0x8154, 0x8155, 0x8156, 0xb0b7, 0xb0b8, 0x8157, 0xb0b9, 0xb0ba, 0xb0bb, 0x8158, 0x8159, 0x815a, 0x8161, 0x8162, 0x8163, 0xb0bc, 0xb0bd, 0x8164, 0x8165, 0xb0be, 0x8166, 0x8167, 0x8168, 0xb0bf, 0x8169, 0x816a, 0x816b, 0x816c, 0x816d, 0x816e, 0x816f, 0x8170, 0x8171, 0x8172, 0xb0c0, 0x8173, 0xb0c1, 0x8174, 0x8175, 0x8176, 0x8177, 0x8178, 0x8179, 0xb0c2, 0x817a, 0x8181, 0x8182, 0xb0c3, 0x8183, 0x8184, 0x8185, 0xb0c4, 0x8186, 0x8187, 0x8188, 0x8189, 0x818a, 0x818b, 0x818c, 0x818d, 0x818e, 0x818f, 0x8190, 0x8191, 0x8192, 0x8193, 0x8194, 0x8195, 0x8196, 0x8197, 0x8198, 0xb0c5, 0xb0c6, 0x8199, 0x819a, 0xb0c7, 0x819b, 0x819c, 0xb0c8, 0xb0c9, 0x819d, 0xb0ca, 0x819e, 0x819f, 0x81a0, 0x81a1, 0x81a2, 0xb0cb, 0xb0cc, 0x81a3, 0xb0cd, 0xb0ce, 0xb0cf, 0xb0d0, 0x81a4, 0x81a5, 0xb0d1, 0xb0d2, 0xb0d3, 0xb0d4, 0x81a6, 0x81a7, 0x81a8, 0xb0d5, 0x81a9, 0x81aa, 0x81ab, 0xb0d6, 0x81ac, 0x81ad, 0x81ae, 0x81af, 0x81b0, 0x81b1, 0x81b2, 0xb0d7, 0xb0d8, 0x81b3, 0xb0d9, 0xb0da, 0xb0db, 0x81b4, 0x81b5, 0x81b6, 0x81b7, 0x81b8, 0x81b9, 0xb0dc, 0xb0dd, 0xb0de, 0x81ba, 0xb0df, 0x81bb, 0x81bc, 0xb0e0, 0xb0e1, 0x81bd, 0x81be, 0x81bf, 0x81c0, 0x81c1, 0x81c2, 0x81c3, 0xb0e2, 0xb0e3, 0x81c4, 0xb0e4, 0xb0e5, 0xb0e6, 0x81c5, 0x81c6, 0x81c7, 0xb0e7, 0x81c8, 0x81c9, 0xb0e8, 0x81ca, 0x81cb, 0x81cc, 0xb0e9, 0x81cd, 0x81ce, 0x81cf, 0xb0ea, 0x81d0, 0x81d1, 0x81d2, 0x81d3, 0x81d4, 0x81d5, 0x81d6, 0x81d7, 0xb0eb, 0x81d8, 0xb0ec, 0x81d9, 0x81da, 0x81db, 0x81dc, 0x81dd, 0x81de, 0x81df, 0x81e0, 0xb0ed, 0xb0ee, 0x81e1, 0x81e2, 0xb0ef, 0x81e3, 0x81e4, 0xb0f0, 0xb0f1, 0x81e5, 0xb0f2, 0x81e6, 0xb0f3, 0x81e7, 0x81e8, 0xb0f4, 0xb0f5, 0xb0f6, 0x81e9, 0xb0f7, 0x81ea, 0xb0f8, 0xb0f9, 0x81eb, 0x81ec, 0x81ed, 0x81ee, 0x81ef, 0xb0fa, 0xb0fb, 0x81f0, 0x81f1, /* 0xad00 .. 0xadff */ 0xb0fc, 0x81f2, 0x81f3, 0x81f4, 0xb0fd, 0x81f5, 0xb0fe, 0x81f6, 0x81f7, 0x81f8, 0x81f9, 0x81fa, 0xb1a1, 0xb1a2, 0x81fb, 0xb1a3, 0x81fc, 0xb1a4, 0x81fd, 0x81fe, 0x8241, 0x8242, 0x8243, 0x8244, 0xb1a5, 0x8245, 0x8246, 0x8247, 0xb1a6, 0x8248, 0x8249, 0x824a, 0xb1a7, 0x824b, 0x824c, 0x824d, 0x824e, 0x824f, 0x8250, 0x8251, 0x8252, 0xb1a8, 0x8253, 0x8254, 0xb1a9, 0xb1aa, 0x8255, 0x8256, 0x8257, 0x8258, 0x8259, 0x825a, 0xb1ab, 0xb1ac, 0x8261, 0x8262, 0xb1ad, 0x8263, 0x8264, 0x8265, 0xb1ae, 0x8266, 0x8267, 0x8268, 0x8269, 0x826a, 0x826b, 0x826c, 0xb1af, 0xb1b0, 0x826d, 0xb1b1, 0x826e, 0xb1b2, 0x826f, 0x8270, 0x8271, 0x8272, 0x8273, 0x8274, 0xb1b3, 0x8275, 0x8276, 0x8277, 0xb1b4, 0x8278, 0x8279, 0x827a, 0xb1b5, 0x8281, 0x8282, 0x8283, 0x8284, 0x8285, 0x8286, 0x8287, 0x8288, 0xb1b6, 0x8289, 0xb1b7, 0x828a, 0x828b, 0x828c, 0x828d, 0x828e, 0x828f, 0x8290, 0x8291, 0xb1b8, 0xb1b9, 0x8292, 0x8293, 0xb1ba, 0x8294, 0x8295, 0xb1bb, 0xb1bc, 0xb1bd, 0xb1be, 0x8296, 0x8297, 0x8298, 0x8299, 0xb1bf, 0xb1c0, 0xb1c1, 0x829a, 0xb1c2, 0x829b, 0xb1c3, 0xb1c4, 0x829c, 0x829d, 0x829e, 0x829f, 0x82a0, 0xb1c5, 0xb1c6, 0x82a1, 0x82a2, 0xb1c7, 0x82a3, 0x82a4, 0x82a5, 0xb1c8, 0x82a6, 0x82a7, 0x82a8, 0x82a9, 0x82aa, 0x82ab, 0x82ac, 0x82ad, 0x82ae, 0x82af, 0x82b0, 0xb1c9, 0xb1ca, 0x82b1, 0x82b2, 0x82b3, 0x82b4, 0x82b5, 0x82b6, 0xb1cb, 0x82b7, 0x82b8, 0x82b9, 0x82ba, 0x82bb, 0x82bc, 0x82bd, 0x82be, 0x82bf, 0x82c0, 0x82c1, 0x82c2, 0x82c3, 0x82c4, 0x82c5, 0x82c6, 0x82c7, 0x82c8, 0xb1cc, 0x82c9, 0x82ca, 0x82cb, 0x82cc, 0x82cd, 0x82ce, 0x82cf, 0x82d0, 0xb1cd, 0xb1ce, 0x82d1, 0x82d2, 0xb1cf, 0x82d3, 0x82d4, 0x82d5, 0xb1d0, 0x82d6, 0x82d7, 0x82d8, 0x82d9, 0x82da, 0x82db, 0x82dc, 0xb1d1, 0xb1d2, 0x82dd, 0xb1d3, 0x82de, 0x82df, 0x82e0, 0x82e1, 0x82e2, 0x82e3, 0x82e4, 0x82e5, 0xb1d4, 0x82e6, 0x82e7, 0x82e8, 0xb1d5, 0x82e9, 0x82ea, 0x82eb, 0xb1d6, 0x82ec, 0x82ed, 0x82ee, 0x82ef, 0x82f0, 0x82f1, 0x82f2, 0x82f3, 0x82f4, 0x82f5, 0x82f6, 0x82f7, 0x82f8, 0x82f9, 0x82fa, 0x82fb, 0x82fc, 0x82fd, 0x82fe, 0xb1d7, 0xb1d8, 0x8341, 0x8342, 0xb1d9, 0x8343, 0x8344, 0xb1da, /* 0xae00 .. 0xaeff */ 0xb1db, 0xb1dc, 0x8345, 0x8346, 0x8347, 0x8348, 0x8349, 0x834a, 0xb1dd, 0xb1de, 0x834b, 0xb1df, 0x834c, 0xb1e0, 0x834d, 0x834e, 0x834f, 0x8350, 0x8351, 0x8352, 0xb1e1, 0x8353, 0x8354, 0x8355, 0x8356, 0x8357, 0x8358, 0x8359, 0x835a, 0x8361, 0x8362, 0x8363, 0x8364, 0x8365, 0x8366, 0x8367, 0x8368, 0x8369, 0x836a, 0x836b, 0x836c, 0x836d, 0x836e, 0x836f, 0x8370, 0x8371, 0x8372, 0x8373, 0xb1e2, 0xb1e3, 0x8374, 0x8375, 0xb1e4, 0x8376, 0x8377, 0xb1e5, 0xb1e6, 0x8378, 0xb1e7, 0x8379, 0x837a, 0x8381, 0x8382, 0x8383, 0xb1e8, 0xb1e9, 0x8384, 0xb1ea, 0x8385, 0xb1eb, 0xb1ec, 0x8386, 0x8387, 0x8388, 0xb1ed, 0x8389, 0xb1ee, 0xb1ef, 0xb1f0, 0x838a, 0xb1f1, 0x838b, 0x838c, 0x838d, 0xb1f2, 0x838e, 0xb1f3, 0x838f, 0x8390, 0x8391, 0x8392, 0x8393, 0xb1f4, 0xb1f5, 0x8394, 0xb1f6, 0xb1f7, 0xb1f8, 0x8395, 0x8396, 0x8397, 0xb1f9, 0x8398, 0x8399, 0xb1fa, 0xb1fb, 0x839a, 0x839b, 0xb1fc, 0x839c, 0x839d, 0x839e, 0xb1fd, 0x839f, 0x83a0, 0x83a1, 0x83a2, 0x83a3, 0x83a4, 0x83a5, 0xb1fe, 0xb2a1, 0x83a6, 0xb2a2, 0xb2a3, 0xb2a4, 0x83a7, 0x83a8, 0x83a9, 0x83aa, 0x83ab, 0x83ac, 0xb2a5, 0xb2a6, 0x83ad, 0x83ae, 0x83af, 0x83b0, 0x83b1, 0x83b2, 0xb2a7, 0x83b3, 0x83b4, 0x83b5, 0x83b6, 0x83b7, 0x83b8, 0x83b9, 0x83ba, 0x83bb, 0x83bc, 0x83bd, 0x83be, 0x83bf, 0x83c0, 0x83c1, 0x83c2, 0x83c3, 0x83c4, 0x83c5, 0x83c6, 0x83c7, 0x83c8, 0x83c9, 0x83ca, 0x83cb, 0x83cc, 0x83cd, 0x83ce, 0x83cf, 0x83d0, 0x83d1, 0x83d2, 0x83d3, 0x83d4, 0x83d5, 0x83d6, 0x83d7, 0x83d8, 0x83d9, 0x83da, 0x83db, 0x83dc, 0x83dd, 0x83de, 0x83df, 0x83e0, 0x83e1, 0xb2a8, 0xb2a9, 0xb2aa, 0x83e2, 0xb2ab, 0x83e3, 0x83e4, 0x83e5, 0xb2ac, 0x83e6, 0x83e7, 0x83e8, 0x83e9, 0x83ea, 0x83eb, 0x83ec, 0xb2ad, 0xb2ae, 0x83ed, 0xb2af, 0xb2b0, 0xb2b1, 0x83ee, 0x83ef, 0x83f0, 0x83f1, 0x83f2, 0x83f3, 0xb2b2, 0xb2b3, 0x83f4, 0x83f5, 0xb2b4, 0x83f6, 0x83f7, 0x83f8, 0x83f9, 0x83fa, 0x83fb, 0x83fc, 0x83fd, 0x83fe, 0x8441, 0x8442, 0xb2b5, 0x8443, 0x8444, 0xb2b6, 0x8445, 0xb2b7, 0x8446, 0x8447, 0x8448, 0x8449, 0x844a, 0x844b, 0xb2b8, 0x844c, 0x844d, 0x844e, 0xb2b9, 0x844f, 0x8450, 0x8451, 0xb2ba, 0x8452, 0x8453, 0x8454, /* 0xaf00 .. 0xafff */ 0x8455, 0x8456, 0x8457, 0x8458, 0x8459, 0x845a, 0x8461, 0xb2bb, 0xb2bc, 0x8462, 0x8463, 0x8464, 0x8465, 0xb2bd, 0x8466, 0x8467, 0xb2be, 0x8468, 0x8469, 0x846a, 0x846b, 0x846c, 0x846d, 0x846e, 0x846f, 0x8470, 0x8471, 0x8472, 0x8473, 0x8474, 0x8475, 0x8476, 0x8477, 0x8478, 0x8479, 0x847a, 0x8481, 0x8482, 0x8483, 0x8484, 0x8485, 0x8486, 0x8487, 0x8488, 0xb2bf, 0xb2c0, 0x8489, 0x848a, 0xb2c1, 0x848b, 0xb2c2, 0x848c, 0xb2c3, 0x848d, 0x848e, 0x848f, 0x8490, 0x8491, 0x8492, 0x8493, 0xb2c4, 0xb2c5, 0x8494, 0xb2c6, 0x8495, 0xb2c7, 0xb2c8, 0xb2c9, 0x8496, 0x8497, 0x8498, 0x8499, 0xb2ca, 0xb2cb, 0x849a, 0x849b, 0x849c, 0x849d, 0x849e, 0x849f, 0xb2cc, 0x84a0, 0x84a1, 0x84a2, 0x84a3, 0x84a4, 0x84a5, 0x84a6, 0x84a7, 0x84a8, 0x84a9, 0x84aa, 0xb2cd, 0xb2ce, 0x84ab, 0x84ac, 0x84ad, 0x84ae, 0x84af, 0x84b0, 0xb2cf, 0xb2d0, 0x84b1, 0x84b2, 0x84b3, 0x84b4, 0x84b5, 0x84b6, 0x84b7, 0x84b8, 0x84b9, 0x84ba, 0x84bb, 0x84bc, 0x84bd, 0x84be, 0x84bf, 0x84c0, 0x84c1, 0x84c2, 0x84c3, 0xb2d1, 0x84c4, 0x84c5, 0x84c6, 0x84c7, 0x84c8, 0x84c9, 0xb2d2, 0x84ca, 0x84cb, 0x84cc, 0xb2d3, 0x84cd, 0x84ce, 0x84cf, 0xb2d4, 0x84d0, 0x84d1, 0x84d2, 0x84d3, 0x84d4, 0x84d5, 0x84d6, 0xb2d5, 0xb2d6, 0x84d7, 0x84d8, 0x84d9, 0xb2d7, 0x84da, 0x84db, 0x84dc, 0x84dd, 0x84de, 0x84df, 0xb2d8, 0x84e0, 0x84e1, 0x84e2, 0x84e3, 0x84e4, 0x84e5, 0x84e6, 0x84e7, 0x84e8, 0x84e9, 0x84ea, 0x84eb, 0x84ec, 0x84ed, 0x84ee, 0x84ef, 0x84f0, 0x84f1, 0x84f2, 0x84f3, 0x84f4, 0x84f5, 0x84f6, 0x84f7, 0x84f8, 0x84f9, 0x84fa, 0xb2d9, 0xb2da, 0x84fb, 0x84fc, 0xb2db, 0x84fd, 0x84fe, 0x8541, 0xb2dc, 0x8542, 0x8543, 0x8544, 0x8545, 0x8546, 0x8547, 0xb2dd, 0xb2de, 0xb2df, 0x8548, 0xb2e0, 0x8549, 0xb2e1, 0xb2e2, 0x854a, 0x854b, 0x854c, 0x854d, 0x854e, 0xb2e3, 0x854f, 0x8550, 0x8551, 0x8552, 0x8553, 0x8554, 0x8555, 0xb2e4, 0x8556, 0x8557, 0x8558, 0x8559, 0x855a, 0x8561, 0x8562, 0x8563, 0x8564, 0x8565, 0x8566, 0xb2e5, 0xb2e6, 0x8567, 0x8568, 0x8569, 0x856a, 0x856b, 0x856c, 0xb2e7, 0xb2e8, 0x856d, 0x856e, 0xb2e9, 0x856f, 0x8570, 0x8571, 0xb2ea, 0x8572, 0x8573, 0x8574, 0x8575, 0x8576, 0x8577, 0x8578, /* 0xb000 .. 0xb0ff */ 0xb2eb, 0xb2ec, 0x8579, 0x857a, 0xb2ed, 0x8581, 0x8582, 0x8583, 0x8584, 0x8585, 0x8586, 0x8587, 0xb2ee, 0x8588, 0x8589, 0x858a, 0xb2ef, 0x858b, 0x858c, 0x858d, 0xb2f0, 0x858e, 0x858f, 0x8590, 0x8591, 0x8592, 0x8593, 0x8594, 0xb2f1, 0xb2f2, 0x8595, 0x8596, 0x8597, 0x8598, 0x8599, 0x859a, 0x859b, 0x859c, 0x859d, 0x859e, 0xb2f3, 0x859f, 0x85a0, 0x85a1, 0x85a2, 0x85a3, 0x85a4, 0x85a5, 0x85a6, 0x85a7, 0x85a8, 0x85a9, 0x85aa, 0x85ab, 0x85ac, 0x85ad, 0x85ae, 0x85af, 0x85b0, 0x85b1, 0x85b2, 0x85b3, 0x85b4, 0x85b5, 0x85b6, 0x85b7, 0x85b8, 0x85b9, 0xb2f4, 0xb2f5, 0x85ba, 0x85bb, 0xb2f6, 0x85bc, 0xb2f7, 0x85bd, 0xb2f8, 0x85be, 0xb2f9, 0x85bf, 0x85c0, 0x85c1, 0x85c2, 0xb2fa, 0xb2fb, 0xb2fc, 0x85c3, 0xb2fd, 0x85c4, 0xb2fe, 0x85c5, 0x85c6, 0x85c7, 0xb3a1, 0x85c8, 0x85c9, 0x85ca, 0x85cb, 0x85cc, 0x85cd, 0x85ce, 0x85cf, 0x85d0, 0x85d1, 0x85d2, 0x85d3, 0x85d4, 0x85d5, 0x85d6, 0x85d7, 0x85d8, 0x85d9, 0x85da, 0x85db, 0x85dc, 0x85dd, 0x85de, 0x85df, 0x85e0, 0x85e1, 0x85e2, 0x85e3, 0x85e4, 0x85e5, 0xb3a2, 0xb3a3, 0x85e6, 0x85e7, 0xb3a4, 0x85e8, 0x85e9, 0x85ea, 0xb3a5, 0x85eb, 0x85ec, 0x85ed, 0x85ee, 0x85ef, 0x85f0, 0x85f1, 0xb3a6, 0xb3a7, 0x85f2, 0xb3a8, 0x85f3, 0xb3a9, 0x85f4, 0x85f5, 0x85f6, 0x85f7, 0x85f8, 0x85f9, 0xb3aa, 0xb3ab, 0xb3ac, 0x85fa, 0xb3ad, 0x85fb, 0x85fc, 0xb3ae, 0xb3af, 0xb3b0, 0xb3b1, 0x85fd, 0x85fe, 0x8641, 0x8642, 0x8643, 0xb3b2, 0xb3b3, 0x8644, 0xb3b4, 0xb3b5, 0xb3b6, 0xb3b7, 0xb3b8, 0x8645, 0xb3b9, 0x8646, 0xb3ba, 0xb3bb, 0xb3bc, 0x8647, 0x8648, 0xb3bd, 0x8649, 0x864a, 0x864b, 0xb3be, 0x864c, 0x864d, 0x864e, 0x864f, 0x8650, 0x8651, 0x8652, 0xb3bf, 0xb3c0, 0x8653, 0xb3c1, 0xb3c2, 0xb3c3, 0x8654, 0x8655, 0x8656, 0x8657, 0x8658, 0x8659, 0xb3c4, 0xb3c5, 0x865a, 0x8661, 0xb3c6, 0x8662, 0x8663, 0x8664, 0xb3c7, 0x8665, 0x8666, 0x8667, 0x8668, 0x8669, 0x866a, 0x866b, 0xb3c8, 0x866c, 0x866d, 0x866e, 0x866f, 0xb3c9, 0x8670, 0x8671, 0x8672, 0x8673, 0x8674, 0x8675, 0x8676, 0x8677, 0x8678, 0x8679, 0x867a, 0x8681, 0x8682, 0x8683, 0x8684, 0x8685, 0x8686, 0x8687, 0x8688, 0x8689, 0x868a, 0x868b, 0x868c, 0x868d, 0x868e, 0x868f, /* 0xb100 .. 0xb1ff */ 0x8690, 0x8691, 0x8692, 0x8693, 0x8694, 0x8695, 0x8696, 0x8697, 0xb3ca, 0xb3cb, 0x8698, 0xb3cc, 0xb3cd, 0x8699, 0x869a, 0x869b, 0xb3ce, 0x869c, 0xb3cf, 0xb3d0, 0x869d, 0x869e, 0x869f, 0x86a0, 0xb3d1, 0xb3d2, 0x86a1, 0xb3d3, 0xb3d4, 0xb3d5, 0x86a2, 0x86a3, 0x86a4, 0x86a5, 0x86a6, 0xb3d6, 0xb3d7, 0xb3d8, 0x86a7, 0x86a8, 0xb3d9, 0x86a9, 0x86aa, 0x86ab, 0xb3da, 0x86ac, 0x86ad, 0x86ae, 0x86af, 0x86b0, 0x86b1, 0x86b2, 0xb3db, 0xb3dc, 0x86b3, 0xb3dd, 0xb3de, 0xb3df, 0x86b4, 0x86b5, 0x86b6, 0x86b7, 0x86b8, 0x86b9, 0xb3e0, 0xb3e1, 0x86ba, 0x86bb, 0xb3e2, 0x86bc, 0x86bd, 0x86be, 0xb3e3, 0x86bf, 0x86c0, 0x86c1, 0x86c2, 0x86c3, 0x86c4, 0x86c5, 0xb3e4, 0xb3e5, 0x86c6, 0x86c7, 0xb3e6, 0xb3e7, 0x86c8, 0x86c9, 0xb3e8, 0x86ca, 0x86cb, 0x86cc, 0xb3e9, 0x86cd, 0x86ce, 0x86cf, 0xb3ea, 0x86d0, 0x86d1, 0x86d2, 0x86d3, 0x86d4, 0x86d5, 0x86d6, 0x86d7, 0x86d8, 0x86d9, 0x86da, 0x86db, 0x86dc, 0x86dd, 0x86de, 0x86df, 0x86e0, 0x86e1, 0x86e2, 0x86e3, 0x86e4, 0x86e5, 0x86e6, 0xb3eb, 0xb3ec, 0x86e7, 0x86e8, 0xb3ed, 0x86e9, 0x86ea, 0x86eb, 0xb3ee, 0x86ec, 0xb3ef, 0x86ed, 0x86ee, 0x86ef, 0x86f0, 0x86f1, 0xb3f0, 0xb3f1, 0x86f2, 0xb3f2, 0x86f3, 0xb3f3, 0x86f4, 0x86f5, 0x86f6, 0x86f7, 0xb3f4, 0xb3f5, 0xb3f6, 0x86f8, 0x86f9, 0x86fa, 0xb3f7, 0x86fb, 0x86fc, 0x86fd, 0xb3f8, 0x86fe, 0x8741, 0x8742, 0x8743, 0x8744, 0x8745, 0x8746, 0x8747, 0x8748, 0x8749, 0x874a, 0xb3f9, 0x874b, 0x874c, 0x874d, 0x874e, 0x874f, 0x8750, 0x8751, 0x8752, 0x8753, 0x8754, 0x8755, 0x8756, 0x8757, 0x8758, 0x8759, 0x875a, 0x8761, 0x8762, 0x8763, 0x8764, 0x8765, 0x8766, 0x8767, 0x8768, 0x8769, 0x876a, 0x876b, 0x876c, 0x876d, 0x876e, 0x876f, 0x8770, 0x8771, 0x8772, 0x8773, 0xb3fa, 0x8774, 0x8775, 0x8776, 0xb3fb, 0x8777, 0x8778, 0x8779, 0xb3fc, 0x877a, 0x8781, 0x8782, 0x8783, 0x8784, 0x8785, 0x8786, 0xb3fd, 0xb3fe, 0x8787, 0xb4a1, 0x8788, 0x8789, 0x878a, 0x878b, 0x878c, 0x878d, 0x878e, 0x878f, 0xb4a2, 0xb4a3, 0x8790, 0x8791, 0xb4a4, 0x8792, 0x8793, 0x8794, 0xb4a5, 0x8795, 0x8796, 0x8797, 0x8798, 0x8799, 0x879a, 0x879b, 0x879c, 0xb4a6, 0x879d, 0xb4a7, 0x879e, 0xb4a8, 0x879f, 0x87a0, /* 0xb200 .. 0xb2ff */ 0x87a1, 0x87a2, 0x87a3, 0x87a4, 0xb4a9, 0xb4aa, 0x87a5, 0x87a6, 0xb4ab, 0x87a7, 0x87a8, 0xb4ac, 0xb4ad, 0x87a9, 0x87aa, 0x87ab, 0x87ac, 0x87ad, 0x87ae, 0x87af, 0xb4ae, 0xb4af, 0x87b0, 0xb4b0, 0x87b1, 0xb4b1, 0x87b2, 0x87b3, 0x87b4, 0x87b5, 0x87b6, 0x87b7, 0xb4b2, 0x87b8, 0x87b9, 0x87ba, 0x87bb, 0x87bc, 0x87bd, 0x87be, 0x87bf, 0x87c0, 0x87c1, 0x87c2, 0x87c3, 0x87c4, 0x87c5, 0x87c6, 0x87c7, 0x87c8, 0x87c9, 0x87ca, 0xb4b3, 0x87cb, 0x87cc, 0x87cd, 0x87ce, 0x87cf, 0x87d0, 0x87d1, 0xb4b4, 0x87d2, 0x87d3, 0x87d4, 0x87d5, 0x87d6, 0x87d7, 0x87d8, 0x87d9, 0x87da, 0x87db, 0x87dc, 0x87dd, 0x87de, 0x87df, 0x87e0, 0x87e1, 0x87e2, 0x87e3, 0x87e4, 0x87e5, 0x87e6, 0x87e7, 0x87e8, 0x87e9, 0x87ea, 0x87eb, 0x87ec, 0xb4b5, 0x87ed, 0x87ee, 0x87ef, 0xb4b6, 0x87f0, 0x87f1, 0x87f2, 0xb4b7, 0x87f3, 0x87f4, 0x87f5, 0x87f6, 0x87f7, 0x87f8, 0x87f9, 0xb4b8, 0xb4b9, 0x87fa, 0x87fb, 0x87fc, 0x87fd, 0x87fe, 0x8841, 0x8842, 0x8843, 0x8844, 0x8845, 0xb4ba, 0xb4bb, 0x8846, 0x8847, 0x8848, 0x8849, 0x884a, 0x884b, 0xb4bc, 0x884c, 0x884d, 0x884e, 0x884f, 0x8850, 0x8851, 0x8852, 0xb4bd, 0xb4be, 0x8853, 0x8854, 0x8855, 0xb4bf, 0x8856, 0x8857, 0x8858, 0x8859, 0x885a, 0x8861, 0xb4c0, 0xb4c1, 0x8862, 0x8863, 0xb4c2, 0x8864, 0x8865, 0x8866, 0xb4c3, 0xb4c4, 0xb4c5, 0x8867, 0x8868, 0x8869, 0x886a, 0x886b, 0xb4c6, 0xb4c7, 0x886c, 0xb4c8, 0x886d, 0xb4c9, 0xb4ca, 0x886e, 0x886f, 0x8870, 0xb4cb, 0x8871, 0xb4cc, 0x8872, 0x8873, 0x8874, 0xb4cd, 0x8875, 0x8876, 0x8877, 0xb4ce, 0x8878, 0x8879, 0x887a, 0x8881, 0x8882, 0x8883, 0x8884, 0x8885, 0x8886, 0x8887, 0x8888, 0x8889, 0x888a, 0x888b, 0x888c, 0x888d, 0x888e, 0x888f, 0x8890, 0xb4cf, 0xb4d0, 0x8891, 0x8892, 0xb4d1, 0x8893, 0x8894, 0x8895, 0xb4d2, 0x8896, 0xb4d3, 0x8897, 0x8898, 0x8899, 0x889a, 0x889b, 0xb4d4, 0xb4d5, 0x889c, 0xb4d6, 0x889d, 0xb4d7, 0x889e, 0x889f, 0x88a0, 0x88a1, 0xb4d8, 0x88a2, 0xb4d9, 0xb4da, 0xb4db, 0x88a3, 0xb4dc, 0x88a4, 0x88a5, 0xb4dd, 0xb4de, 0xb4df, 0xb4e0, 0xb4e1, 0x88a6, 0x88a7, 0x88a8, 0xb4e2, 0xb4e3, 0xb4e4, 0x88a9, 0xb4e5, 0xb4e6, 0xb4e7, 0xb4e8, 0xb4e9, 0x88aa, 0x88ab, 0x88ac, 0xb4ea, /* 0xb300 .. 0xb3ff */ 0xb4eb, 0xb4ec, 0x88ad, 0x88ae, 0xb4ed, 0x88af, 0x88b0, 0x88b1, 0xb4ee, 0x88b2, 0x88b3, 0x88b4, 0x88b5, 0x88b6, 0x88b7, 0x88b8, 0xb4ef, 0xb4f0, 0x88b9, 0xb4f1, 0xb4f2, 0xb4f3, 0x88ba, 0x88bb, 0x88bc, 0x88bd, 0x88be, 0x88bf, 0xb4f4, 0x88c0, 0x88c1, 0x88c2, 0x88c3, 0x88c4, 0x88c5, 0x88c6, 0x88c7, 0x88c8, 0x88c9, 0x88ca, 0x88cb, 0x88cc, 0x88cd, 0x88ce, 0x88cf, 0x88d0, 0x88d1, 0x88d2, 0x88d3, 0x88d4, 0x88d5, 0x88d6, 0x88d7, 0x88d8, 0x88d9, 0x88da, 0x88db, 0x88dc, 0x88dd, 0x88de, 0x88df, 0x88e0, 0x88e1, 0x88e2, 0x88e3, 0x88e4, 0x88e5, 0x88e6, 0x88e7, 0x88e8, 0x88e9, 0x88ea, 0x88eb, 0x88ec, 0x88ed, 0x88ee, 0x88ef, 0x88f0, 0x88f1, 0x88f2, 0x88f3, 0x88f4, 0x88f5, 0x88f6, 0xb4f5, 0xb4f6, 0xb4f7, 0x88f7, 0xb4f8, 0x88f8, 0x88f9, 0xb4f9, 0xb4fa, 0x88fa, 0xb4fb, 0xb4fc, 0x88fb, 0x88fc, 0x88fd, 0x88fe, 0xb4fd, 0xb4fe, 0x8941, 0xb5a1, 0x8942, 0xb5a2, 0x8943, 0xb5a3, 0x8944, 0x8945, 0xb5a4, 0x8946, 0xb5a5, 0xb5a6, 0x8947, 0x8948, 0xb5a7, 0x8949, 0x894a, 0x894b, 0xb5a8, 0x894c, 0x894d, 0x894e, 0x894f, 0x8950, 0x8951, 0x8952, 0xb5a9, 0xb5aa, 0x8953, 0xb5ab, 0xb5ac, 0xb5ad, 0x8954, 0x8955, 0x8956, 0x8957, 0x8958, 0x8959, 0xb5ae, 0x895a, 0x8961, 0x8962, 0xb5af, 0x8963, 0x8964, 0x8965, 0xb5b0, 0x8966, 0x8967, 0x8968, 0x8969, 0x896a, 0x896b, 0x896c, 0x896d, 0x896e, 0x896f, 0x8970, 0xb5b1, 0xb5b2, 0x8971, 0x8972, 0x8973, 0x8974, 0x8975, 0x8976, 0xb5b3, 0x8977, 0x8978, 0x8979, 0xb5b4, 0x897a, 0x8981, 0x8982, 0x8983, 0x8984, 0x8985, 0x8986, 0x8987, 0x8988, 0x8989, 0x898a, 0x898b, 0x898c, 0x898d, 0x898e, 0x898f, 0x8990, 0x8991, 0x8992, 0x8993, 0x8994, 0x8995, 0x8996, 0xb5b5, 0xb5b6, 0x8997, 0x8998, 0xb5b7, 0x8999, 0x899a, 0xb5b8, 0xb5b9, 0x899b, 0xb5ba, 0x899c, 0xb5bb, 0x899d, 0x899e, 0x899f, 0xb5bc, 0xb5bd, 0x89a0, 0xb5be, 0x89a1, 0xb5bf, 0x89a2, 0xb5c0, 0x89a3, 0xb5c1, 0x89a4, 0x89a5, 0xb5c2, 0x89a6, 0x89a7, 0x89a8, 0xb5c3, 0x89a9, 0x89aa, 0x89ab, 0xb5c4, 0x89ac, 0x89ad, 0x89ae, 0x89af, 0x89b0, 0x89b1, 0x89b2, 0x89b3, 0x89b4, 0x89b5, 0x89b6, 0x89b7, 0x89b8, 0x89b9, 0x89ba, 0x89bb, 0x89bc, 0x89bd, 0x89be, 0xb5c5, 0x89bf, 0x89c0, 0x89c1, /* 0xb400 .. 0xb4ff */ 0x89c2, 0x89c3, 0x89c4, 0x89c5, 0x89c6, 0x89c7, 0x89c8, 0x89c9, 0x89ca, 0x89cb, 0x89cc, 0x89cd, 0x89ce, 0x89cf, 0x89d0, 0x89d1, 0xb5c6, 0x89d2, 0x89d3, 0x89d4, 0x89d5, 0x89d6, 0x89d7, 0x89d8, 0xb5c7, 0x89d9, 0x89da, 0x89db, 0xb5c8, 0x89dc, 0x89dd, 0x89de, 0xb5c9, 0x89df, 0x89e0, 0x89e1, 0x89e2, 0x89e3, 0x89e4, 0x89e5, 0xb5ca, 0xb5cb, 0x89e6, 0xb5cc, 0x89e7, 0x89e8, 0x89e9, 0x89ea, 0x89eb, 0x89ec, 0x89ed, 0x89ee, 0xb5cd, 0x89ef, 0x89f0, 0x89f1, 0x89f2, 0x89f3, 0x89f4, 0x89f5, 0x89f6, 0x89f7, 0x89f8, 0x89f9, 0x89fa, 0x89fb, 0x89fc, 0x89fd, 0x89fe, 0x8a41, 0x8a42, 0x8a43, 0x8a44, 0x8a45, 0x8a46, 0x8a47, 0x8a48, 0x8a49, 0x8a4a, 0x8a4b, 0xb5ce, 0xb5cf, 0x8a4c, 0x8a4d, 0xb5d0, 0x8a4e, 0x8a4f, 0x8a50, 0xb5d1, 0x8a51, 0x8a52, 0x8a53, 0x8a54, 0x8a55, 0x8a56, 0x8a57, 0xb5d2, 0xb5d3, 0x8a58, 0xb5d4, 0x8a59, 0xb5d5, 0x8a5a, 0x8a61, 0x8a62, 0x8a63, 0x8a64, 0x8a65, 0xb5d6, 0x8a66, 0x8a67, 0x8a68, 0x8a69, 0x8a6a, 0x8a6b, 0x8a6c, 0x8a6d, 0x8a6e, 0x8a6f, 0x8a70, 0x8a71, 0x8a72, 0x8a73, 0x8a74, 0x8a75, 0x8a76, 0x8a77, 0x8a78, 0xb5d7, 0x8a79, 0x8a7a, 0x8a81, 0x8a82, 0x8a83, 0x8a84, 0x8a85, 0xb5d8, 0x8a86, 0x8a87, 0x8a88, 0x8a89, 0x8a8a, 0x8a8b, 0x8a8c, 0x8a8d, 0x8a8e, 0x8a8f, 0x8a90, 0x8a91, 0x8a92, 0x8a93, 0x8a94, 0x8a95, 0x8a96, 0x8a97, 0x8a98, 0x8a99, 0xb5d9, 0x8a9a, 0x8a9b, 0x8a9c, 0x8a9d, 0x8a9e, 0x8a9f, 0xb5da, 0x8aa0, 0x8aa1, 0x8aa2, 0xb5db, 0x8aa3, 0x8aa4, 0x8aa5, 0xb5dc, 0x8aa6, 0x8aa7, 0x8aa8, 0x8aa9, 0x8aaa, 0x8aab, 0x8aac, 0x8aad, 0xb5dd, 0x8aae, 0xb5de, 0x8aaf, 0xb5df, 0x8ab0, 0x8ab1, 0x8ab2, 0x8ab3, 0x8ab4, 0x8ab5, 0xb5e0, 0x8ab6, 0x8ab7, 0x8ab8, 0xb5e1, 0x8ab9, 0x8aba, 0x8abb, 0xb5e2, 0x8abc, 0x8abd, 0x8abe, 0x8abf, 0x8ac0, 0x8ac1, 0x8ac2, 0xb5e3, 0x8ac3, 0x8ac4, 0x8ac5, 0x8ac6, 0xb5e4, 0x8ac7, 0x8ac8, 0x8ac9, 0x8aca, 0x8acb, 0x8acc, 0xb5e5, 0xb5e6, 0x8acd, 0x8ace, 0xb5e7, 0x8acf, 0x8ad0, 0xb5e8, 0xb5e9, 0x8ad1, 0xb5ea, 0x8ad2, 0x8ad3, 0x8ad4, 0x8ad5, 0x8ad6, 0xb5eb, 0xb5ec, 0x8ad7, 0xb5ed, 0x8ad8, 0xb5ee, 0x8ad9, 0x8ada, 0x8adb, 0x8adc, 0x8add, 0x8ade, 0xb5ef, 0x8adf, 0x8ae0, 0x8ae1, 0x8ae2, 0x8ae3, 0x8ae4, 0x8ae5, /* 0xb500 .. 0xb5ff */ 0x8ae6, 0x8ae7, 0x8ae8, 0x8ae9, 0x8aea, 0x8aeb, 0x8aec, 0x8aed, 0x8aee, 0x8aef, 0x8af0, 0x8af1, 0x8af2, 0x8af3, 0x8af4, 0x8af5, 0x8af6, 0x8af7, 0x8af8, 0x8af9, 0xb5f0, 0xb5f1, 0x8afa, 0x8afb, 0xb5f2, 0x8afc, 0x8afd, 0xb5f3, 0xb5f4, 0x8afe, 0x8b41, 0x8b42, 0x8b43, 0x8b44, 0x8b45, 0x8b46, 0xb5f5, 0xb5f6, 0x8b47, 0xb5f7, 0xb5f8, 0xb5f9, 0xb5fa, 0x8b48, 0x8b49, 0x8b4a, 0x8b4b, 0x8b4c, 0xb5fb, 0xb5fc, 0x8b4d, 0x8b4e, 0xb5fd, 0x8b4f, 0x8b50, 0x8b51, 0xb5fe, 0x8b52, 0x8b53, 0x8b54, 0x8b55, 0x8b56, 0x8b57, 0x8b58, 0xb6a1, 0xb6a2, 0x8b59, 0xb6a3, 0xb6a4, 0xb6a5, 0x8b5a, 0x8b61, 0x8b62, 0x8b63, 0x8b64, 0xb6a6, 0xb6a7, 0xb6a8, 0x8b65, 0x8b66, 0xb6a9, 0x8b67, 0x8b68, 0x8b69, 0xb6aa, 0x8b6a, 0x8b6b, 0x8b6c, 0x8b6d, 0x8b6e, 0x8b6f, 0x8b70, 0xb6ab, 0xb6ac, 0x8b71, 0xb6ad, 0xb6ae, 0xb6af, 0x8b72, 0x8b73, 0x8b74, 0x8b75, 0x8b76, 0x8b77, 0x8b78, 0x8b79, 0x8b7a, 0x8b81, 0x8b82, 0x8b83, 0x8b84, 0x8b85, 0x8b86, 0x8b87, 0x8b88, 0x8b89, 0x8b8a, 0x8b8b, 0x8b8c, 0x8b8d, 0x8b8e, 0x8b8f, 0x8b90, 0x8b91, 0x8b92, 0x8b93, 0x8b94, 0x8b95, 0x8b96, 0x8b97, 0x8b98, 0x8b99, 0x8b9a, 0x8b9b, 0x8b9c, 0x8b9d, 0x8b9e, 0x8b9f, 0x8ba0, 0x8ba1, 0x8ba2, 0x8ba3, 0x8ba4, 0x8ba5, 0x8ba6, 0x8ba7, 0x8ba8, 0x8ba9, 0x8baa, 0x8bab, 0x8bac, 0x8bad, 0x8bae, 0x8baf, 0x8bb0, 0x8bb1, 0x8bb2, 0x8bb3, 0x8bb4, 0x8bb5, 0xb6b0, 0xb6b1, 0x8bb6, 0x8bb7, 0xb6b2, 0x8bb8, 0x8bb9, 0x8bba, 0xb6b3, 0x8bbb, 0xb6b4, 0xb6b5, 0x8bbc, 0x8bbd, 0x8bbe, 0x8bbf, 0xb6b6, 0xb6b7, 0x8bc0, 0xb6b8, 0xb6b9, 0xb6ba, 0x8bc1, 0x8bc2, 0x8bc3, 0x8bc4, 0x8bc5, 0xb6bb, 0xb6bc, 0xb6bd, 0x8bc6, 0x8bc7, 0xb6be, 0x8bc8, 0x8bc9, 0x8bca, 0xb6bf, 0x8bcb, 0x8bcc, 0x8bcd, 0x8bce, 0x8bcf, 0x8bd0, 0x8bd1, 0xb6c0, 0xb6c1, 0x8bd2, 0xb6c2, 0xb6c3, 0xb6c4, 0x8bd3, 0x8bd4, 0x8bd5, 0x8bd6, 0x8bd7, 0x8bd8, 0xb6c5, 0x8bd9, 0x8bda, 0x8bdb, 0x8bdc, 0x8bdd, 0x8bde, 0x8bdf, 0x8be0, 0x8be1, 0x8be2, 0x8be3, 0x8be4, 0x8be5, 0x8be6, 0x8be7, 0x8be8, 0x8be9, 0x8bea, 0x8beb, 0xb6c6, 0x8bec, 0x8bed, 0x8bee, 0x8bef, 0x8bf0, 0x8bf1, 0x8bf2, 0x8bf3, 0x8bf4, 0x8bf5, 0x8bf6, 0x8bf7, 0x8bf8, 0x8bf9, 0x8bfa, 0x8bfb, 0x8bfc, 0x8bfd, 0x8bfe, /* 0xb600 .. 0xb6ff */ 0x8c41, 0x8c42, 0x8c43, 0x8c44, 0x8c45, 0x8c46, 0x8c47, 0x8c48, 0x8c49, 0x8c4a, 0x8c4b, 0x8c4c, 0x8c4d, 0x8c4e, 0x8c4f, 0x8c50, 0xb6c7, 0xb6c8, 0x8c51, 0x8c52, 0xb6c9, 0x8c53, 0x8c54, 0x8c55, 0xb6ca, 0x8c56, 0x8c57, 0x8c58, 0x8c59, 0x8c5a, 0x8c61, 0x8c62, 0x8c63, 0x8c64, 0x8c65, 0x8c66, 0x8c67, 0xb6cb, 0x8c68, 0x8c69, 0x8c6a, 0x8c6b, 0x8c6c, 0x8c6d, 0xb6cc, 0x8c6e, 0x8c6f, 0x8c70, 0x8c71, 0x8c72, 0x8c73, 0x8c74, 0xb6cd, 0x8c75, 0x8c76, 0x8c77, 0x8c78, 0x8c79, 0x8c7a, 0x8c81, 0x8c82, 0x8c83, 0x8c84, 0x8c85, 0x8c86, 0x8c87, 0x8c88, 0x8c89, 0x8c8a, 0x8c8b, 0x8c8c, 0x8c8d, 0xb6ce, 0x8c8e, 0x8c8f, 0x8c90, 0x8c91, 0x8c92, 0x8c93, 0x8c94, 0x8c95, 0x8c96, 0x8c97, 0x8c98, 0x8c99, 0x8c9a, 0x8c9b, 0x8c9c, 0x8c9d, 0x8c9e, 0x8c9f, 0x8ca0, 0x8ca1, 0x8ca2, 0x8ca3, 0x8ca4, 0x8ca5, 0x8ca6, 0x8ca7, 0x8ca8, 0xb6cf, 0x8ca9, 0x8caa, 0x8cab, 0xb6d0, 0x8cac, 0x8cad, 0x8cae, 0x8caf, 0x8cb0, 0x8cb1, 0x8cb2, 0x8cb3, 0x8cb4, 0x8cb5, 0x8cb6, 0x8cb7, 0x8cb8, 0x8cb9, 0x8cba, 0x8cbb, 0x8cbc, 0x8cbd, 0x8cbe, 0x8cbf, 0x8cc0, 0x8cc1, 0x8cc2, 0x8cc3, 0x8cc4, 0x8cc5, 0x8cc6, 0x8cc7, 0x8cc8, 0x8cc9, 0x8cca, 0x8ccb, 0x8ccc, 0x8ccd, 0x8cce, 0x8ccf, 0x8cd0, 0x8cd1, 0x8cd2, 0x8cd3, 0x8cd4, 0x8cd5, 0x8cd6, 0x8cd7, 0x8cd8, 0x8cd9, 0x8cda, 0x8cdb, 0x8cdc, 0x8cdd, 0x8cde, 0xb6d1, 0xb6d2, 0x8cdf, 0x8ce0, 0xb6d3, 0x8ce1, 0x8ce2, 0x8ce3, 0xb6d4, 0x8ce4, 0x8ce5, 0x8ce6, 0x8ce7, 0x8ce8, 0x8ce9, 0xb6d5, 0xb6d6, 0x8cea, 0x8ceb, 0x8cec, 0x8ced, 0xb6d7, 0x8cee, 0x8cef, 0x8cf0, 0x8cf1, 0x8cf2, 0x8cf3, 0x8cf4, 0x8cf5, 0x8cf6, 0x8cf7, 0x8cf8, 0x8cf9, 0x8cfa, 0x8cfb, 0x8cfc, 0x8cfd, 0x8cfe, 0x8d41, 0x8d42, 0x8d43, 0x8d44, 0x8d45, 0x8d46, 0x8d47, 0x8d48, 0x8d49, 0x8d4a, 0x8d4b, 0x8d4c, 0x8d4d, 0x8d4e, 0x8d4f, 0x8d50, 0x8d51, 0xb6d8, 0x8d52, 0x8d53, 0x8d54, 0x8d55, 0x8d56, 0x8d57, 0x8d58, 0x8d59, 0x8d5a, 0x8d61, 0x8d62, 0x8d63, 0x8d64, 0x8d65, 0x8d66, 0x8d67, 0x8d68, 0x8d69, 0x8d6a, 0x8d6b, 0x8d6c, 0x8d6d, 0x8d6e, 0x8d6f, 0x8d70, 0x8d71, 0x8d72, 0xb6d9, 0x8d73, 0x8d74, 0x8d75, 0xb6da, 0x8d76, 0x8d77, 0x8d78, 0xb6db, 0x8d79, 0x8d7a, 0x8d81, 0x8d82, 0x8d83, 0x8d84, 0x8d85, /* 0xb700 .. 0xb7ff */ 0xb6dc, 0xb6dd, 0x8d86, 0x8d87, 0x8d88, 0xb6de, 0x8d89, 0x8d8a, 0x8d8b, 0x8d8c, 0x8d8d, 0x8d8e, 0x8d8f, 0x8d90, 0x8d91, 0x8d92, 0x8d93, 0x8d94, 0x8d95, 0x8d96, 0x8d97, 0x8d98, 0x8d99, 0x8d9a, 0x8d9b, 0x8d9c, 0x8d9d, 0x8d9e, 0x8d9f, 0x8da0, 0x8da1, 0x8da2, 0x8da3, 0x8da4, 0x8da5, 0x8da6, 0x8da7, 0x8da8, 0x8da9, 0x8daa, 0xb6df, 0xb6e0, 0x8dab, 0x8dac, 0xb6e1, 0x8dad, 0x8dae, 0xb6e2, 0xb6e3, 0x8daf, 0x8db0, 0x8db1, 0x8db2, 0x8db3, 0x8db4, 0x8db5, 0xb6e4, 0xb6e5, 0x8db6, 0xb6e6, 0x8db7, 0x8db8, 0x8db9, 0x8dba, 0x8dbb, 0x8dbc, 0x8dbd, 0x8dbe, 0xb6e7, 0x8dbf, 0x8dc0, 0x8dc1, 0xb6e8, 0x8dc2, 0x8dc3, 0x8dc4, 0xb6e9, 0x8dc5, 0x8dc6, 0x8dc7, 0x8dc8, 0x8dc9, 0x8dca, 0x8dcb, 0xb6ea, 0xb6eb, 0x8dcc, 0x8dcd, 0x8dce, 0x8dcf, 0x8dd0, 0x8dd1, 0x8dd2, 0x8dd3, 0x8dd4, 0x8dd5, 0xb6ec, 0x8dd6, 0x8dd7, 0x8dd8, 0xb6ed, 0x8dd9, 0x8dda, 0x8ddb, 0xb6ee, 0x8ddc, 0x8ddd, 0x8dde, 0x8ddf, 0x8de0, 0x8de1, 0x8de2, 0xb6ef, 0xb6f0, 0x8de3, 0xb6f1, 0x8de4, 0xb6f2, 0x8de5, 0x8de6, 0x8de7, 0x8de8, 0x8de9, 0x8dea, 0xb6f3, 0xb6f4, 0x8deb, 0x8dec, 0xb6f5, 0x8ded, 0x8dee, 0x8def, 0xb6f6, 0x8df0, 0x8df1, 0x8df2, 0x8df3, 0x8df4, 0x8df5, 0x8df6, 0xb6f7, 0xb6f8, 0x8df7, 0xb6f9, 0xb6fa, 0xb6fb, 0xb6fc, 0x8df8, 0x8df9, 0x8dfa, 0xb6fd, 0xb6fe, 0xb7a1, 0xb7a2, 0x8dfb, 0x8dfc, 0xb7a3, 0x8dfd, 0x8dfe, 0x8e41, 0xb7a4, 0x8e42, 0x8e43, 0x8e44, 0x8e45, 0x8e46, 0x8e47, 0x8e48, 0xb7a5, 0xb7a6, 0x8e49, 0xb7a7, 0xb7a8, 0xb7a9, 0x8e4a, 0x8e4b, 0x8e4c, 0x8e4d, 0x8e4e, 0x8e4f, 0xb7aa, 0xb7ab, 0x8e50, 0x8e51, 0xb7ac, 0x8e52, 0x8e53, 0x8e54, 0x8e55, 0x8e56, 0x8e57, 0x8e58, 0x8e59, 0x8e5a, 0x8e61, 0x8e62, 0x8e63, 0x8e64, 0x8e65, 0xb7ad, 0x8e66, 0xb7ae, 0x8e67, 0x8e68, 0x8e69, 0x8e6a, 0x8e6b, 0x8e6c, 0x8e6d, 0x8e6e, 0x8e6f, 0x8e70, 0x8e71, 0x8e72, 0x8e73, 0x8e74, 0x8e75, 0x8e76, 0x8e77, 0x8e78, 0x8e79, 0x8e7a, 0x8e81, 0x8e82, 0x8e83, 0x8e84, 0x8e85, 0x8e86, 0x8e87, 0x8e88, 0x8e89, 0x8e8a, 0x8e8b, 0x8e8c, 0x8e8d, 0x8e8e, 0xb7af, 0xb7b0, 0x8e8f, 0x8e90, 0xb7b1, 0x8e91, 0x8e92, 0x8e93, 0xb7b2, 0x8e94, 0x8e95, 0x8e96, 0x8e97, 0x8e98, 0x8e99, 0x8e9a, 0xb7b3, 0xb7b4, 0x8e9b, 0xb7b5, /* 0xb800 .. 0xb8ff */ 0xb7b6, 0xb7b7, 0x8e9c, 0x8e9d, 0x8e9e, 0x8e9f, 0x8ea0, 0xb7b8, 0xb7b9, 0xb7ba, 0x8ea1, 0x8ea2, 0xb7bb, 0x8ea3, 0x8ea4, 0x8ea5, 0xb7bc, 0x8ea6, 0x8ea7, 0x8ea8, 0x8ea9, 0x8eaa, 0x8eab, 0x8eac, 0xb7bd, 0xb7be, 0x8ead, 0xb7bf, 0x8eae, 0xb7c0, 0x8eaf, 0x8eb0, 0x8eb1, 0x8eb2, 0x8eb3, 0x8eb4, 0xb7c1, 0xb7c2, 0x8eb5, 0x8eb6, 0xb7c3, 0x8eb7, 0x8eb8, 0x8eb9, 0xb7c4, 0x8eba, 0x8ebb, 0x8ebc, 0x8ebd, 0x8ebe, 0x8ebf, 0x8ec0, 0xb7c5, 0xb7c6, 0x8ec1, 0xb7c7, 0xb7c8, 0xb7c9, 0x8ec2, 0x8ec3, 0x8ec4, 0x8ec5, 0x8ec6, 0x8ec7, 0xb7ca, 0x8ec8, 0x8ec9, 0x8eca, 0xb7cb, 0x8ecb, 0x8ecc, 0x8ecd, 0x8ece, 0x8ecf, 0x8ed0, 0x8ed1, 0x8ed2, 0x8ed3, 0x8ed4, 0x8ed5, 0x8ed6, 0xb7cc, 0x8ed7, 0xb7cd, 0x8ed8, 0x8ed9, 0x8eda, 0x8edb, 0x8edc, 0x8edd, 0x8ede, 0x8edf, 0xb7ce, 0xb7cf, 0x8ee0, 0x8ee1, 0xb7d0, 0x8ee2, 0x8ee3, 0x8ee4, 0xb7d1, 0x8ee5, 0x8ee6, 0x8ee7, 0x8ee8, 0x8ee9, 0x8eea, 0x8eeb, 0xb7d2, 0xb7d3, 0x8eec, 0xb7d4, 0x8eed, 0xb7d5, 0x8eee, 0x8eef, 0x8ef0, 0x8ef1, 0x8ef2, 0x8ef3, 0xb7d6, 0x8ef4, 0x8ef5, 0x8ef6, 0xb7d7, 0x8ef7, 0x8ef8, 0x8ef9, 0x8efa, 0x8efb, 0x8efc, 0x8efd, 0x8efe, 0x8f41, 0x8f42, 0x8f43, 0x8f44, 0x8f45, 0x8f46, 0x8f47, 0x8f48, 0xb7d8, 0x8f49, 0x8f4a, 0x8f4b, 0x8f4c, 0x8f4d, 0x8f4e, 0x8f4f, 0x8f50, 0x8f51, 0x8f52, 0x8f53, 0x8f54, 0x8f55, 0x8f56, 0x8f57, 0x8f58, 0x8f59, 0x8f5a, 0x8f61, 0x8f62, 0x8f63, 0x8f64, 0x8f65, 0x8f66, 0x8f67, 0x8f68, 0xb7d9, 0x8f69, 0x8f6a, 0x8f6b, 0x8f6c, 0x8f6d, 0x8f6e, 0x8f6f, 0xb7da, 0x8f70, 0x8f71, 0x8f72, 0xb7db, 0x8f73, 0x8f74, 0x8f75, 0xb7dc, 0x8f76, 0x8f77, 0x8f78, 0x8f79, 0x8f7a, 0x8f81, 0x8f82, 0xb7dd, 0xb7de, 0x8f83, 0xb7df, 0x8f84, 0xb7e0, 0x8f85, 0x8f86, 0x8f87, 0x8f88, 0x8f89, 0x8f8a, 0xb7e1, 0x8f8b, 0x8f8c, 0x8f8d, 0xb7e2, 0x8f8e, 0x8f8f, 0x8f90, 0xb7e3, 0x8f91, 0x8f92, 0x8f93, 0x8f94, 0x8f95, 0x8f96, 0x8f97, 0x8f98, 0xb7e4, 0x8f99, 0xb7e5, 0x8f9a, 0xb7e6, 0x8f9b, 0x8f9c, 0x8f9d, 0x8f9e, 0x8f9f, 0x8fa0, 0xb7e7, 0xb7e8, 0x8fa1, 0x8fa2, 0xb7e9, 0x8fa3, 0x8fa4, 0x8fa5, 0xb7ea, 0x8fa6, 0x8fa7, 0x8fa8, 0x8fa9, 0x8faa, 0x8fab, 0x8fac, 0xb7eb, 0xb7ec, 0x8fad, 0xb7ed, 0x8fae, 0xb7ee, 0x8faf, 0x8fb0, /* 0xb900 .. 0xb9ff */ 0x8fb1, 0x8fb2, 0x8fb3, 0x8fb4, 0xb7ef, 0x8fb5, 0x8fb6, 0x8fb7, 0x8fb8, 0x8fb9, 0x8fba, 0x8fbb, 0x8fbc, 0x8fbd, 0x8fbe, 0x8fbf, 0x8fc0, 0x8fc1, 0x8fc2, 0x8fc3, 0x8fc4, 0x8fc5, 0x8fc6, 0x8fc7, 0xb7f0, 0x8fc8, 0x8fc9, 0x8fca, 0x8fcb, 0x8fcc, 0x8fcd, 0x8fce, 0xb7f1, 0x8fcf, 0x8fd0, 0x8fd1, 0x8fd2, 0x8fd3, 0x8fd4, 0x8fd5, 0x8fd6, 0x8fd7, 0x8fd8, 0x8fd9, 0x8fda, 0x8fdb, 0x8fdc, 0x8fdd, 0x8fde, 0x8fdf, 0x8fe0, 0x8fe1, 0x8fe2, 0x8fe3, 0x8fe4, 0x8fe5, 0x8fe6, 0x8fe7, 0x8fe8, 0x8fe9, 0xb7f2, 0xb7f3, 0x8fea, 0x8feb, 0xb7f4, 0x8fec, 0x8fed, 0x8fee, 0xb7f5, 0x8fef, 0x8ff0, 0x8ff1, 0x8ff2, 0x8ff3, 0x8ff4, 0x8ff5, 0xb7f6, 0x8ff6, 0x8ff7, 0xb7f7, 0x8ff8, 0xb7f8, 0x8ff9, 0x8ffa, 0x8ffb, 0x8ffc, 0x8ffd, 0x8ffe, 0xb7f9, 0xb7fa, 0x9041, 0x9042, 0xb7fb, 0x9043, 0x9044, 0x9045, 0xb7fc, 0x9046, 0x9047, 0x9048, 0x9049, 0x904a, 0x904b, 0x904c, 0xb7fd, 0xb7fe, 0x904d, 0xb8a1, 0x904e, 0xb8a2, 0x904f, 0x9050, 0x9051, 0x9052, 0x9053, 0x9054, 0xb8a3, 0xb8a4, 0x9055, 0x9056, 0xb8a5, 0x9057, 0x9058, 0x9059, 0xb8a6, 0x905a, 0x9061, 0x9062, 0x9063, 0x9064, 0x9065, 0x9066, 0xb8a7, 0xb8a8, 0x9067, 0xb8a9, 0x9068, 0xb8aa, 0xb8ab, 0x9069, 0x906a, 0xb8ac, 0xb8ad, 0x906b, 0x906c, 0x906d, 0x906e, 0x906f, 0x9070, 0x9071, 0x9072, 0x9073, 0x9074, 0x9075, 0x9076, 0x9077, 0x9078, 0x9079, 0x907a, 0x9081, 0x9082, 0x9083, 0x9084, 0x9085, 0x9086, 0x9087, 0x9088, 0x9089, 0x908a, 0x908b, 0x908c, 0x908d, 0xb8ae, 0xb8af, 0x908e, 0x908f, 0xb8b0, 0x9090, 0x9091, 0x9092, 0xb8b1, 0x9093, 0x9094, 0x9095, 0x9096, 0x9097, 0x9098, 0x9099, 0xb8b2, 0xb8b3, 0x909a, 0xb8b4, 0x909b, 0xb8b5, 0x909c, 0x909d, 0x909e, 0x909f, 0x90a0, 0x90a1, 0xb8b6, 0xb8b7, 0x90a2, 0x90a3, 0xb8b8, 0x90a4, 0xb8b9, 0xb8ba, 0xb8bb, 0xb8bc, 0xb8bd, 0x90a5, 0x90a6, 0x90a7, 0x90a8, 0x90a9, 0xb8be, 0xb8bf, 0x90aa, 0xb8c0, 0x90ab, 0xb8c1, 0xb8c2, 0x90ac, 0x90ad, 0xb8c3, 0x90ae, 0xb8c4, 0xb8c5, 0xb8c6, 0x90af, 0x90b0, 0xb8c7, 0x90b1, 0x90b2, 0x90b3, 0xb8c8, 0x90b4, 0x90b5, 0x90b6, 0x90b7, 0x90b8, 0x90b9, 0x90ba, 0xb8c9, 0xb8ca, 0x90bb, 0xb8cb, 0xb8cc, 0xb8cd, 0xb8ce, 0x90bc, 0x90bd, 0x90be, 0x90bf, 0x90c0, /* 0xba00 .. 0xbaff */ 0xb8cf, 0xb8d0, 0x90c1, 0x90c2, 0x90c3, 0x90c4, 0x90c5, 0x90c6, 0xb8d1, 0x90c7, 0x90c8, 0x90c9, 0x90ca, 0x90cb, 0x90cc, 0x90cd, 0x90ce, 0x90cf, 0x90d0, 0x90d1, 0x90d2, 0xb8d2, 0x90d3, 0x90d4, 0x90d5, 0x90d6, 0x90d7, 0x90d8, 0x90d9, 0x90da, 0x90db, 0x90dc, 0x90dd, 0x90de, 0x90df, 0x90e0, 0x90e1, 0x90e2, 0x90e3, 0x90e4, 0x90e5, 0x90e6, 0x90e7, 0x90e8, 0x90e9, 0x90ea, 0x90eb, 0x90ec, 0x90ed, 0x90ee, 0x90ef, 0x90f0, 0x90f1, 0x90f2, 0x90f3, 0x90f4, 0xb8d3, 0xb8d4, 0x90f5, 0x90f6, 0xb8d5, 0x90f7, 0x90f8, 0x90f9, 0xb8d6, 0x90fa, 0xb8d7, 0x90fb, 0x90fc, 0x90fd, 0x90fe, 0x9141, 0xb8d8, 0xb8d9, 0x9142, 0xb8da, 0x9143, 0xb8db, 0xb8dc, 0x9144, 0x9145, 0x9146, 0x9147, 0xb8dd, 0xb8de, 0xb8df, 0x9148, 0x9149, 0xb8e0, 0x914a, 0x914b, 0x914c, 0xb8e1, 0x914d, 0x914e, 0x914f, 0x9150, 0x9151, 0x9152, 0x9153, 0xb8e2, 0xb8e3, 0x9154, 0xb8e4, 0xb8e5, 0xb8e6, 0x9155, 0x9156, 0x9157, 0x9158, 0x9159, 0x915a, 0xb8e7, 0xb8e8, 0x9161, 0x9162, 0xb8e9, 0x9163, 0x9164, 0x9165, 0xb8ea, 0x9166, 0x9167, 0x9168, 0x9169, 0x916a, 0x916b, 0x916c, 0x916d, 0x916e, 0x916f, 0xb8eb, 0xb8ec, 0xb8ed, 0x9170, 0xb8ee, 0x9171, 0x9172, 0x9173, 0x9174, 0xb8ef, 0x9175, 0x9176, 0x9177, 0x9178, 0x9179, 0x917a, 0x9181, 0x9182, 0x9183, 0x9184, 0x9185, 0x9186, 0x9187, 0x9188, 0x9189, 0x918a, 0x918b, 0x918c, 0x918d, 0x918e, 0x918f, 0x9190, 0x9191, 0x9192, 0x9193, 0x9194, 0x9195, 0xb8f0, 0xb8f1, 0x9196, 0xb8f2, 0xb8f3, 0x9197, 0x9198, 0x9199, 0xb8f4, 0x919a, 0xb8f5, 0x919b, 0x919c, 0x919d, 0x919e, 0x919f, 0xb8f6, 0xb8f7, 0x91a0, 0xb8f8, 0x91a1, 0xb8f9, 0x91a2, 0x91a3, 0x91a4, 0x91a5, 0x91a6, 0x91a7, 0xb8fa, 0x91a8, 0x91a9, 0x91aa, 0xb8fb, 0x91ab, 0x91ac, 0x91ad, 0x91ae, 0x91af, 0x91b0, 0x91b1, 0x91b2, 0x91b3, 0x91b4, 0x91b5, 0x91b6, 0x91b7, 0x91b8, 0x91b9, 0xb8fc, 0xb8fd, 0x91ba, 0x91bb, 0x91bc, 0x91bd, 0x91be, 0x91bf, 0x91c0, 0x91c1, 0x91c2, 0x91c3, 0x91c4, 0x91c5, 0x91c6, 0x91c7, 0x91c8, 0x91c9, 0x91ca, 0x91cb, 0x91cc, 0x91cd, 0x91ce, 0x91cf, 0x91d0, 0x91d1, 0x91d2, 0x91d3, 0x91d4, 0x91d5, 0x91d6, 0x91d7, 0x91d8, 0x91d9, 0x91da, 0x91db, 0xb8fe, 0x91dc, 0x91dd, 0x91de, /* 0xbb00 .. 0xbbff */ 0xb9a1, 0x91df, 0x91e0, 0x91e1, 0xb9a2, 0x91e2, 0x91e3, 0x91e4, 0x91e5, 0x91e6, 0x91e7, 0x91e8, 0x91e9, 0xb9a3, 0x91ea, 0xb9a4, 0x91eb, 0xb9a5, 0x91ec, 0x91ed, 0x91ee, 0x91ef, 0x91f0, 0x91f1, 0xb9a6, 0x91f2, 0x91f3, 0x91f4, 0xb9a7, 0x91f5, 0x91f6, 0x91f7, 0xb9a8, 0x91f8, 0x91f9, 0x91fa, 0x91fb, 0x91fc, 0x91fd, 0x91fe, 0x9241, 0xb9a9, 0x9242, 0xb9aa, 0x9243, 0x9244, 0x9245, 0x9246, 0x9247, 0x9248, 0x9249, 0x924a, 0xb9ab, 0xb9ac, 0xb9ad, 0x924b, 0xb9ae, 0x924c, 0x924d, 0xb9af, 0xb9b0, 0xb9b1, 0xb9b2, 0x924e, 0x924f, 0x9250, 0x9251, 0x9252, 0xb9b3, 0xb9b4, 0x9253, 0xb9b5, 0x9254, 0xb9b6, 0x9255, 0x9256, 0x9257, 0xb9b7, 0x9258, 0xb9b8, 0xb9b9, 0x9259, 0x925a, 0x9261, 0xb9ba, 0x9262, 0x9263, 0x9264, 0xb9bb, 0x9265, 0x9266, 0x9267, 0x9268, 0x9269, 0x926a, 0x926b, 0x926c, 0xb9bc, 0x926d, 0xb9bd, 0x926e, 0x926f, 0x9270, 0x9271, 0x9272, 0x9273, 0x9274, 0x9275, 0xb9be, 0x9276, 0x9277, 0x9278, 0x9279, 0x927a, 0x9281, 0x9282, 0x9283, 0x9284, 0x9285, 0x9286, 0x9287, 0x9288, 0x9289, 0x928a, 0x928b, 0x928c, 0x928d, 0x928e, 0x928f, 0x9290, 0x9291, 0x9292, 0x9293, 0x9294, 0x9295, 0x9296, 0xb9bf, 0x9297, 0x9298, 0x9299, 0xb9c0, 0x929a, 0x929b, 0x929c, 0xb9c1, 0x929d, 0x929e, 0x929f, 0x92a0, 0x92a1, 0x92a2, 0x92a3, 0x92a4, 0x92a5, 0x92a6, 0x92a7, 0x92a8, 0x92a9, 0x92aa, 0x92ab, 0x92ac, 0x92ad, 0x92ae, 0x92af, 0xb9c2, 0x92b0, 0x92b1, 0x92b2, 0xb9c3, 0x92b3, 0x92b4, 0x92b5, 0xb9c4, 0x92b6, 0x92b7, 0x92b8, 0x92b9, 0x92ba, 0x92bb, 0x92bc, 0xb9c5, 0x92bd, 0x92be, 0xb9c6, 0x92bf, 0x92c0, 0x92c1, 0x92c2, 0x92c3, 0x92c4, 0x92c5, 0x92c6, 0xb9c7, 0x92c7, 0x92c8, 0x92c9, 0xb9c8, 0x92ca, 0x92cb, 0x92cc, 0xb9c9, 0x92cd, 0x92ce, 0x92cf, 0x92d0, 0x92d1, 0x92d2, 0x92d3, 0xb9ca, 0x92d4, 0x92d5, 0xb9cb, 0x92d6, 0x92d7, 0x92d8, 0x92d9, 0x92da, 0x92db, 0x92dc, 0x92dd, 0x92de, 0x92df, 0x92e0, 0x92e1, 0x92e2, 0x92e3, 0x92e4, 0x92e5, 0x92e6, 0x92e7, 0x92e8, 0x92e9, 0x92ea, 0x92eb, 0x92ec, 0x92ed, 0x92ee, 0x92ef, 0x92f0, 0x92f1, 0x92f2, 0x92f3, 0x92f4, 0x92f5, 0x92f6, 0x92f7, 0x92f8, 0x92f9, 0xb9cc, 0xb9cd, 0x92fa, 0x92fb, 0xb9ce, 0x92fc, 0x92fd, 0xb9cf, /* 0xbc00 .. 0xbcff */ 0xb9d0, 0x92fe, 0xb9d1, 0x9341, 0x9342, 0x9343, 0x9344, 0x9345, 0xb9d2, 0xb9d3, 0x9346, 0xb9d4, 0xb9d5, 0xb9d6, 0x9347, 0xb9d7, 0x9348, 0xb9d8, 0x9349, 0x934a, 0xb9d9, 0xb9da, 0xb9db, 0xb9dc, 0xb9dd, 0x934b, 0x934c, 0xb9de, 0xb9df, 0xb9e0, 0xb9e1, 0xb9e2, 0x934d, 0x934e, 0x934f, 0x9350, 0xb9e3, 0xb9e4, 0x9351, 0xb9e5, 0x9352, 0xb9e6, 0x9353, 0x9354, 0x9355, 0xb9e7, 0x9356, 0x9357, 0xb9e8, 0xb9e9, 0x9358, 0x9359, 0xb9ea, 0x935a, 0x9361, 0x9362, 0xb9eb, 0x9363, 0x9364, 0x9365, 0x9366, 0x9367, 0x9368, 0x9369, 0xb9ec, 0xb9ed, 0x936a, 0xb9ee, 0xb9ef, 0xb9f0, 0x936b, 0x936c, 0x936d, 0xb9f1, 0x936e, 0x936f, 0xb9f2, 0xb9f3, 0x9370, 0x9371, 0xb9f4, 0x9372, 0x9373, 0x9374, 0x9375, 0x9376, 0x9377, 0x9378, 0x9379, 0x937a, 0x9381, 0x9382, 0x9383, 0xb9f5, 0x9384, 0x9385, 0x9386, 0x9387, 0x9388, 0x9389, 0x938a, 0x938b, 0x938c, 0x938d, 0x938e, 0x938f, 0x9390, 0x9391, 0x9392, 0x9393, 0x9394, 0x9395, 0x9396, 0x9397, 0x9398, 0x9399, 0x939a, 0x939b, 0x939c, 0x939d, 0x939e, 0x939f, 0x93a0, 0x93a1, 0x93a2, 0x93a3, 0x93a4, 0x93a5, 0x93a6, 0x93a7, 0x93a8, 0x93a9, 0xb9f6, 0xb9f7, 0x93aa, 0x93ab, 0xb9f8, 0x93ac, 0x93ad, 0xb9f9, 0xb9fa, 0x93ae, 0xb9fb, 0x93af, 0x93b0, 0x93b1, 0x93b2, 0x93b3, 0xb9fc, 0xb9fd, 0x93b4, 0xb9fe, 0x93b5, 0xbaa1, 0xbaa2, 0x93b6, 0x93b7, 0x93b8, 0x93b9, 0x93ba, 0xbaa3, 0xbaa4, 0x93bb, 0x93bc, 0xbaa5, 0x93bd, 0x93be, 0xbaa6, 0xbaa7, 0x93bf, 0x93c0, 0x93c1, 0x93c2, 0x93c3, 0x93c4, 0x93c5, 0xbaa8, 0xbaa9, 0x93c6, 0xbaaa, 0xbaab, 0xbaac, 0x93c7, 0x93c8, 0x93c9, 0x93ca, 0x93cb, 0x93cc, 0xbaad, 0xbaae, 0x93cd, 0x93ce, 0xbaaf, 0x93cf, 0x93d0, 0x93d1, 0xbab0, 0x93d2, 0x93d3, 0x93d4, 0x93d5, 0x93d6, 0x93d7, 0x93d8, 0x93d9, 0xbab1, 0x93da, 0xbab2, 0xbab3, 0xbab4, 0x93db, 0x93dc, 0x93dd, 0xbab5, 0x93de, 0x93df, 0xbab6, 0x93e0, 0x93e1, 0x93e2, 0xbab7, 0x93e3, 0x93e4, 0x93e5, 0x93e6, 0x93e7, 0x93e8, 0x93e9, 0x93ea, 0x93eb, 0x93ec, 0x93ed, 0x93ee, 0x93ef, 0x93f0, 0x93f1, 0x93f2, 0x93f3, 0x93f4, 0x93f5, 0x93f6, 0x93f7, 0x93f8, 0x93f9, 0xbab8, 0xbab9, 0xbaba, 0x93fa, 0xbabb, 0x93fb, 0x93fc, 0x93fd, 0xbabc, 0x93fe, 0x9441, 0x9442, /* 0xbd00 .. 0xbdff */ 0x9443, 0x9444, 0x9445, 0x9446, 0xbabd, 0xbabe, 0x9447, 0xbabf, 0x9448, 0xbac0, 0x9449, 0x944a, 0x944b, 0x944c, 0x944d, 0x944e, 0xbac1, 0x944f, 0x9450, 0x9451, 0xbac2, 0x9452, 0x9453, 0x9454, 0x9455, 0x9456, 0x9457, 0x9458, 0x9459, 0x945a, 0x9461, 0x9462, 0x9463, 0x9464, 0x9465, 0x9466, 0xbac3, 0x9467, 0x9468, 0x9469, 0x946a, 0x946b, 0x946c, 0x946d, 0xbac4, 0x946e, 0x946f, 0x9470, 0x9471, 0x9472, 0x9473, 0x9474, 0x9475, 0x9476, 0x9477, 0x9478, 0x9479, 0x947a, 0x9481, 0x9482, 0x9483, 0x9484, 0x9485, 0x9486, 0xbac5, 0x9487, 0x9488, 0x9489, 0x948a, 0x948b, 0x948c, 0x948d, 0xbac6, 0xbac7, 0x948e, 0x948f, 0xbac8, 0x9490, 0x9491, 0x9492, 0xbac9, 0x9493, 0x9494, 0x9495, 0x9496, 0x9497, 0x9498, 0x9499, 0xbaca, 0xbacb, 0x949a, 0x949b, 0x949c, 0x949d, 0x949e, 0x949f, 0x94a0, 0x94a1, 0x94a2, 0x94a3, 0xbacc, 0x94a4, 0x94a5, 0x94a6, 0xbacd, 0x94a7, 0x94a8, 0x94a9, 0x94aa, 0x94ab, 0x94ac, 0x94ad, 0x94ae, 0x94af, 0x94b0, 0x94b1, 0x94b2, 0x94b3, 0x94b4, 0x94b5, 0x94b6, 0x94b7, 0x94b8, 0x94b9, 0x94ba, 0x94bb, 0x94bc, 0x94bd, 0xbace, 0xbacf, 0x94be, 0x94bf, 0xbad0, 0x94c0, 0x94c1, 0xbad1, 0xbad2, 0xbad3, 0xbad4, 0x94c2, 0x94c3, 0x94c4, 0x94c5, 0x94c6, 0xbad5, 0xbad6, 0x94c7, 0xbad7, 0x94c8, 0xbad8, 0x94c9, 0x94ca, 0x94cb, 0xbad9, 0xbada, 0x94cc, 0xbadb, 0x94cd, 0x94ce, 0x94cf, 0x94d0, 0x94d1, 0x94d2, 0x94d3, 0xbadc, 0x94d4, 0x94d5, 0x94d6, 0x94d7, 0x94d8, 0x94d9, 0x94da, 0x94db, 0x94dc, 0x94dd, 0x94de, 0xbadd, 0x94df, 0x94e0, 0x94e1, 0x94e2, 0x94e3, 0x94e4, 0x94e5, 0xbade, 0x94e6, 0x94e7, 0x94e8, 0x94e9, 0x94ea, 0x94eb, 0x94ec, 0x94ed, 0x94ee, 0x94ef, 0x94f0, 0x94f1, 0x94f2, 0x94f3, 0x94f4, 0x94f5, 0x94f6, 0x94f7, 0x94f8, 0x94f9, 0x94fa, 0x94fb, 0x94fc, 0x94fd, 0x94fe, 0x9541, 0x9542, 0xbadf, 0xbae0, 0x9543, 0x9544, 0xbae1, 0x9545, 0x9546, 0x9547, 0xbae2, 0x9548, 0x9549, 0x954a, 0x954b, 0x954c, 0x954d, 0x954e, 0x954f, 0x9550, 0x9551, 0x9552, 0x9553, 0xbae3, 0x9554, 0x9555, 0x9556, 0x9557, 0x9558, 0x9559, 0xbae4, 0x955a, 0x9561, 0x9562, 0xbae5, 0x9563, 0x9564, 0x9565, 0xbae6, 0x9566, 0x9567, 0x9568, 0x9569, 0x956a, 0x956b, 0x956c, /* 0xbe00 .. 0xbeff */ 0xbae7, 0x956d, 0x956e, 0xbae8, 0x956f, 0xbae9, 0x9570, 0x9571, 0x9572, 0x9573, 0x9574, 0x9575, 0xbaea, 0xbaeb, 0x9576, 0x9577, 0xbaec, 0x9578, 0x9579, 0x957a, 0xbaed, 0x9581, 0x9582, 0x9583, 0x9584, 0x9585, 0x9586, 0x9587, 0xbaee, 0xbaef, 0x9588, 0xbaf0, 0x9589, 0x958a, 0x958b, 0x958c, 0x958d, 0x958e, 0x958f, 0x9590, 0x9591, 0x9592, 0x9593, 0x9594, 0x9595, 0x9596, 0x9597, 0x9598, 0x9599, 0x959a, 0x959b, 0x959c, 0x959d, 0x959e, 0x959f, 0x95a0, 0x95a1, 0x95a2, 0x95a3, 0x95a4, 0x95a5, 0x95a6, 0x95a7, 0x95a8, 0x95a9, 0x95aa, 0x95ab, 0x95ac, 0xbaf1, 0xbaf2, 0x95ad, 0x95ae, 0xbaf3, 0x95af, 0x95b0, 0x95b1, 0xbaf4, 0x95b2, 0xbaf5, 0x95b3, 0x95b4, 0x95b5, 0x95b6, 0x95b7, 0xbaf6, 0xbaf7, 0x95b8, 0xbaf8, 0x95b9, 0xbaf9, 0xbafa, 0xbafb, 0x95ba, 0x95bb, 0x95bc, 0x95bd, 0xbafc, 0xbafd, 0x95be, 0x95bf, 0xbafe, 0x95c0, 0x95c1, 0x95c2, 0xbba1, 0x95c3, 0xbba2, 0x95c4, 0x95c5, 0x95c6, 0x95c7, 0x95c8, 0xbba3, 0xbba4, 0x95c9, 0xbba5, 0xbba6, 0xbba7, 0x95ca, 0x95cb, 0x95cc, 0x95cd, 0x95ce, 0xbba8, 0xbba9, 0xbbaa, 0x95cf, 0x95d0, 0xbbab, 0x95d1, 0x95d2, 0x95d3, 0xbbac, 0x95d4, 0x95d5, 0x95d6, 0x95d7, 0x95d8, 0x95d9, 0x95da, 0xbbad, 0xbbae, 0x95db, 0xbbaf, 0xbbb0, 0xbbb1, 0x95dc, 0x95dd, 0x95de, 0x95df, 0x95e0, 0x95e1, 0xbbb2, 0xbbb3, 0x95e2, 0x95e3, 0x95e4, 0x95e5, 0x95e6, 0x95e7, 0x95e8, 0x95e9, 0x95ea, 0x95eb, 0x95ec, 0x95ed, 0x95ee, 0x95ef, 0xbbb4, 0x95f0, 0x95f1, 0x95f2, 0x95f3, 0x95f4, 0x95f5, 0x95f6, 0x95f7, 0x95f8, 0x95f9, 0x95fa, 0x95fb, 0x95fc, 0x95fd, 0x95fe, 0x9641, 0x9642, 0x9643, 0x9644, 0x9645, 0x9646, 0x9647, 0x9648, 0x9649, 0x964a, 0x964b, 0x964c, 0x964d, 0x964e, 0x964f, 0x9650, 0x9651, 0x9652, 0x9653, 0x9654, 0x9655, 0x9656, 0x9657, 0x9658, 0xbbb5, 0xbbb6, 0x9659, 0x965a, 0xbbb7, 0x9661, 0x9662, 0xbbb8, 0xbbb9, 0x9663, 0x9664, 0x9665, 0x9666, 0x9667, 0x9668, 0x9669, 0xbbba, 0x966a, 0x966b, 0xbbbb, 0xbbbc, 0xbbbd, 0x966c, 0x966d, 0x966e, 0x966f, 0x9670, 0x9671, 0xbbbe, 0x9672, 0x9673, 0x9674, 0x9675, 0x9676, 0x9677, 0x9678, 0x9679, 0x967a, 0x9681, 0x9682, 0x9683, 0x9684, 0x9685, 0x9686, 0x9687, 0x9688, 0x9689, 0x968a, /* 0xbf00 .. 0xbfff */ 0x968b, 0xbbbf, 0x968c, 0x968d, 0x968e, 0x968f, 0x9690, 0x9691, 0xbbc0, 0xbbc1, 0x9692, 0x9693, 0x9694, 0x9695, 0x9696, 0x9697, 0x9698, 0x9699, 0x969a, 0x969b, 0x969c, 0x969d, 0x969e, 0x969f, 0xbbc2, 0xbbc3, 0x96a0, 0xbbc4, 0xbbc5, 0xbbc6, 0x96a1, 0x96a2, 0x96a3, 0x96a4, 0x96a5, 0x96a6, 0x96a7, 0x96a8, 0x96a9, 0x96aa, 0x96ab, 0x96ac, 0x96ad, 0x96ae, 0x96af, 0x96b0, 0x96b1, 0x96b2, 0x96b3, 0x96b4, 0x96b5, 0x96b6, 0x96b7, 0x96b8, 0x96b9, 0x96ba, 0x96bb, 0x96bc, 0x96bd, 0x96be, 0x96bf, 0x96c0, 0x96c1, 0x96c2, 0xbbc7, 0xbbc8, 0x96c3, 0x96c4, 0xbbc9, 0x96c5, 0x96c6, 0x96c7, 0xbbca, 0x96c8, 0x96c9, 0x96ca, 0x96cb, 0x96cc, 0x96cd, 0x96ce, 0xbbcb, 0xbbcc, 0x96cf, 0x96d0, 0x96d1, 0xbbcd, 0x96d2, 0x96d3, 0x96d4, 0x96d5, 0x96d6, 0x96d7, 0x96d8, 0x96d9, 0x96da, 0x96db, 0x96dc, 0x96dd, 0x96de, 0x96df, 0x96e0, 0x96e1, 0x96e2, 0x96e3, 0x96e4, 0x96e5, 0x96e6, 0x96e7, 0x96e8, 0x96e9, 0x96ea, 0x96eb, 0x96ec, 0x96ed, 0x96ee, 0x96ef, 0x96f0, 0x96f1, 0x96f2, 0x96f3, 0x96f4, 0x96f5, 0x96f6, 0x96f7, 0x96f8, 0x96f9, 0x96fa, 0x96fb, 0x96fc, 0x96fd, 0x96fe, 0x9741, 0x9742, 0x9743, 0x9744, 0x9745, 0x9746, 0x9747, 0x9748, 0x9749, 0x974a, 0x974b, 0x974c, 0x974d, 0x974e, 0x974f, 0x9750, 0x9751, 0xbbce, 0x9752, 0x9753, 0x9754, 0x9755, 0x9756, 0x9757, 0x9758, 0x9759, 0x975a, 0x9761, 0x9762, 0x9763, 0x9764, 0x9765, 0x9766, 0x9767, 0x9768, 0x9769, 0x976a, 0x976b, 0x976c, 0x976d, 0x976e, 0x976f, 0x9770, 0x9771, 0x9772, 0xbbcf, 0x9773, 0x9774, 0x9775, 0x9776, 0x9777, 0x9778, 0x9779, 0x977a, 0x9781, 0x9782, 0x9783, 0x9784, 0x9785, 0x9786, 0x9787, 0x9788, 0x9789, 0x978a, 0x978b, 0x978c, 0xbbd0, 0x978d, 0x978e, 0x978f, 0x9790, 0x9791, 0x9792, 0xbbd1, 0xbbd2, 0x9793, 0x9794, 0xbbd3, 0x9795, 0x9796, 0x9797, 0xbbd4, 0x9798, 0x9799, 0x979a, 0x979b, 0x979c, 0x979d, 0x979e, 0xbbd5, 0x979f, 0x97a0, 0xbbd6, 0x97a1, 0xbbd7, 0x97a2, 0x97a3, 0x97a4, 0x97a5, 0x97a6, 0x97a7, 0x97a8, 0x97a9, 0x97aa, 0x97ab, 0x97ac, 0x97ad, 0x97ae, 0x97af, 0x97b0, 0x97b1, 0x97b2, 0x97b3, 0x97b4, 0x97b5, 0x97b6, 0x97b7, 0x97b8, 0x97b9, 0x97ba, 0x97bb, 0x97bc, 0x97bd, 0x97be, 0x97bf, /* 0xc000 .. 0xc0ff */ 0x97c0, 0x97c1, 0x97c2, 0x97c3, 0x97c4, 0x97c5, 0x97c6, 0x97c7, 0x97c8, 0x97c9, 0x97ca, 0x97cb, 0x97cc, 0x97cd, 0x97ce, 0x97cf, 0x97d0, 0x97d1, 0x97d2, 0x97d3, 0x97d4, 0x97d5, 0x97d6, 0x97d7, 0x97d8, 0x97d9, 0x97da, 0x97db, 0x97dc, 0x97dd, 0x97de, 0x97df, 0x97e0, 0x97e1, 0x97e2, 0x97e3, 0x97e4, 0x97e5, 0x97e6, 0x97e7, 0x97e8, 0x97e9, 0x97ea, 0x97eb, 0x97ec, 0x97ed, 0x97ee, 0x97ef, 0x97f0, 0x97f1, 0x97f2, 0x97f3, 0x97f4, 0x97f5, 0x97f6, 0x97f7, 0x97f8, 0x97f9, 0x97fa, 0x97fb, 0xbbd8, 0x97fc, 0x97fd, 0x97fe, 0x9841, 0x9842, 0x9843, 0x9844, 0x9845, 0x9846, 0x9847, 0x9848, 0x9849, 0x984a, 0x984b, 0x984c, 0x984d, 0x984e, 0x984f, 0x9850, 0x9851, 0xbbd9, 0x9852, 0x9853, 0x9854, 0x9855, 0x9856, 0x9857, 0xbbda, 0x9858, 0x9859, 0x985a, 0xbbdb, 0x9861, 0x9862, 0x9863, 0xbbdc, 0x9864, 0x9865, 0x9866, 0x9867, 0x9868, 0x9869, 0x986a, 0xbbdd, 0xbbde, 0x986b, 0x986c, 0x986d, 0x986e, 0x986f, 0x9870, 0x9871, 0x9872, 0x9873, 0x9874, 0x9875, 0x9876, 0x9877, 0x9878, 0x9879, 0x987a, 0x9881, 0x9882, 0x9883, 0x9884, 0x9885, 0x9886, 0x9887, 0x9888, 0x9889, 0x988a, 0x988b, 0x988c, 0x988d, 0x988e, 0x988f, 0x9890, 0x9891, 0x9892, 0x9893, 0x9894, 0x9895, 0x9896, 0xbbdf, 0xbbe0, 0x9897, 0x9898, 0xbbe1, 0x9899, 0x989a, 0x989b, 0xbbe2, 0x989c, 0x989d, 0x989e, 0x989f, 0x98a0, 0x98a1, 0x98a2, 0xbbe3, 0xbbe4, 0x98a3, 0xbbe5, 0x98a4, 0xbbe6, 0x98a5, 0x98a6, 0x98a7, 0x98a8, 0x98a9, 0x98aa, 0xbbe7, 0xbbe8, 0x98ab, 0xbbe9, 0xbbea, 0x98ac, 0x98ad, 0xbbeb, 0xbbec, 0xbbed, 0xbbee, 0x98ae, 0x98af, 0x98b0, 0x98b1, 0x98b2, 0xbbef, 0xbbf0, 0x98b3, 0xbbf1, 0xbbf2, 0xbbf3, 0x98b4, 0x98b5, 0x98b6, 0xbbf4, 0x98b7, 0x98b8, 0xbbf5, 0xbbf6, 0x98b9, 0x98ba, 0xbbf7, 0x98bb, 0x98bc, 0x98bd, 0xbbf8, 0x98be, 0x98bf, 0x98c0, 0x98c1, 0x98c2, 0x98c3, 0x98c4, 0xbbf9, 0xbbfa, 0x98c5, 0xbbfb, 0xbbfc, 0xbbfd, 0x98c6, 0x98c7, 0x98c8, 0x98c9, 0x98ca, 0x98cb, 0xbbfe, 0xbca1, 0x98cc, 0x98cd, 0xbca2, 0x98ce, 0x98cf, 0x98d0, 0xbca3, 0x98d1, 0x98d2, 0x98d3, 0x98d4, 0x98d5, 0x98d6, 0x98d7, 0xbca4, 0xbca5, 0x98d8, 0xbca6, 0x98d9, 0xbca7, 0x98da, 0x98db, 0x98dc, 0x98dd, 0x98de, 0x98df, /* 0xc100 .. 0xc1ff */ 0xbca8, 0x98e0, 0x98e1, 0x98e2, 0xbca9, 0x98e3, 0x98e4, 0x98e5, 0xbcaa, 0x98e6, 0x98e7, 0x98e8, 0x98e9, 0x98ea, 0x98eb, 0x98ec, 0xbcab, 0x98ed, 0x98ee, 0x98ef, 0x98f0, 0xbcac, 0x98f1, 0x98f2, 0x98f3, 0x98f4, 0x98f5, 0x98f6, 0xbcad, 0xbcae, 0xbcaf, 0xbcb0, 0xbcb1, 0x98f7, 0x98f8, 0xbcb2, 0xbcb3, 0x98f9, 0xbcb4, 0xbcb5, 0x98fa, 0x98fb, 0x98fc, 0x98fd, 0xbcb6, 0xbcb7, 0x98fe, 0xbcb8, 0xbcb9, 0xbcba, 0x9941, 0x9942, 0x9943, 0x9944, 0xbcbb, 0x9945, 0xbcbc, 0xbcbd, 0x9946, 0x9947, 0xbcbe, 0x9948, 0x9949, 0x994a, 0xbcbf, 0x994b, 0x994c, 0x994d, 0x994e, 0x994f, 0x9950, 0x9951, 0xbcc0, 0xbcc1, 0x9952, 0xbcc2, 0xbcc3, 0xbcc4, 0x9953, 0x9954, 0x9955, 0x9956, 0x9957, 0x9958, 0xbcc5, 0xbcc6, 0x9959, 0x995a, 0xbcc7, 0x9961, 0x9962, 0x9963, 0xbcc8, 0x9964, 0x9965, 0x9966, 0x9967, 0x9968, 0x9969, 0x996a, 0xbcc9, 0xbcca, 0x996b, 0xbccb, 0xbccc, 0xbccd, 0x996c, 0x996d, 0x996e, 0x996f, 0x9970, 0x9971, 0xbcce, 0x9972, 0x9973, 0x9974, 0xbccf, 0x9975, 0x9976, 0x9977, 0xbcd0, 0x9978, 0x9979, 0x997a, 0x9981, 0x9982, 0x9983, 0x9984, 0x9985, 0x9986, 0x9987, 0x9988, 0x9989, 0xbcd1, 0x998a, 0x998b, 0x998c, 0x998d, 0x998e, 0x998f, 0xbcd2, 0xbcd3, 0xbcd4, 0x9990, 0xbcd5, 0x9991, 0x9992, 0x9993, 0xbcd6, 0x9994, 0xbcd7, 0x9995, 0x9996, 0x9997, 0x9998, 0x9999, 0xbcd8, 0xbcd9, 0x999a, 0xbcda, 0x999b, 0xbcdb, 0x999c, 0x999d, 0x999e, 0xbcdc, 0x999f, 0x99a0, 0xbcdd, 0xbcde, 0x99a1, 0x99a2, 0xbcdf, 0x99a3, 0x99a4, 0x99a5, 0xbce0, 0x99a6, 0x99a7, 0x99a8, 0x99a9, 0x99aa, 0x99ab, 0x99ac, 0x99ad, 0x99ae, 0x99af, 0x99b0, 0x99b1, 0xbce1, 0x99b2, 0x99b3, 0x99b4, 0x99b5, 0x99b6, 0x99b7, 0xbce2, 0x99b8, 0x99b9, 0x99ba, 0xbce3, 0x99bb, 0x99bc, 0x99bd, 0xbce4, 0x99be, 0x99bf, 0x99c0, 0x99c1, 0x99c2, 0x99c3, 0x99c4, 0xbce5, 0x99c5, 0x99c6, 0xbce6, 0xbce7, 0x99c7, 0x99c8, 0x99c9, 0x99ca, 0x99cb, 0x99cc, 0x99cd, 0xbce8, 0x99ce, 0x99cf, 0x99d0, 0xbce9, 0x99d1, 0x99d2, 0x99d3, 0xbcea, 0x99d4, 0x99d5, 0x99d6, 0x99d7, 0x99d8, 0x99d9, 0x99da, 0xbceb, 0xbcec, 0x99db, 0xbced, 0x99dc, 0x99dd, 0x99de, 0x99df, 0x99e0, 0x99e1, 0x99e2, 0x99e3, 0xbcee, 0xbcef, 0x99e4, 0x99e5, /* 0xc200 .. 0xc2ff */ 0xbcf0, 0x99e6, 0x99e7, 0x99e8, 0xbcf1, 0x99e9, 0x99ea, 0x99eb, 0x99ec, 0x99ed, 0x99ee, 0x99ef, 0xbcf2, 0xbcf3, 0x99f0, 0xbcf4, 0x99f1, 0xbcf5, 0x99f2, 0x99f3, 0x99f4, 0x99f5, 0x99f6, 0x99f7, 0xbcf6, 0xbcf7, 0x99f8, 0x99f9, 0xbcf8, 0x99fa, 0x99fb, 0xbcf9, 0xbcfa, 0x99fc, 0x99fd, 0x99fe, 0x9a41, 0x9a42, 0x9a43, 0x9a44, 0xbcfb, 0xbcfc, 0x9a45, 0xbcfd, 0x9a46, 0xbcfe, 0x9a47, 0xbda1, 0x9a48, 0xbda2, 0xbda3, 0x9a49, 0xbda4, 0x9a4a, 0x9a4b, 0x9a4c, 0x9a4d, 0x9a4e, 0x9a4f, 0x9a50, 0x9a51, 0x9a52, 0x9a53, 0x9a54, 0x9a55, 0x9a56, 0x9a57, 0x9a58, 0x9a59, 0x9a5a, 0x9a61, 0x9a62, 0xbda5, 0x9a63, 0x9a64, 0x9a65, 0x9a66, 0x9a67, 0x9a68, 0x9a69, 0xbda6, 0xbda7, 0x9a6a, 0x9a6b, 0xbda8, 0x9a6c, 0x9a6d, 0x9a6e, 0xbda9, 0x9a6f, 0x9a70, 0x9a71, 0x9a72, 0x9a73, 0x9a74, 0x9a75, 0xbdaa, 0x9a76, 0x9a77, 0x9a78, 0x9a79, 0xbdab, 0x9a7a, 0x9a81, 0x9a82, 0x9a83, 0x9a84, 0x9a85, 0xbdac, 0xbdad, 0x9a86, 0x9a87, 0xbdae, 0x9a88, 0x9a89, 0x9a8a, 0xbdaf, 0x9a8b, 0x9a8c, 0x9a8d, 0x9a8e, 0x9a8f, 0x9a90, 0x9a91, 0xbdb0, 0xbdb1, 0x9a92, 0xbdb2, 0x9a93, 0xbdb3, 0x9a94, 0x9a95, 0x9a96, 0x9a97, 0x9a98, 0x9a99, 0xbdb4, 0xbdb5, 0x9a9a, 0x9a9b, 0x9a9c, 0x9a9d, 0x9a9e, 0x9a9f, 0xbdb6, 0x9aa0, 0x9aa1, 0x9aa2, 0x9aa3, 0x9aa4, 0x9aa5, 0x9aa6, 0xbdb7, 0x9aa7, 0x9aa8, 0xbdb8, 0x9aa9, 0xbdb9, 0x9aaa, 0x9aab, 0x9aac, 0x9aad, 0x9aae, 0x9aaf, 0xbdba, 0xbdbb, 0x9ab0, 0x9ab1, 0xbdbc, 0x9ab2, 0x9ab3, 0x9ab4, 0xbdbd, 0xbdbe, 0x9ab5, 0x9ab6, 0x9ab7, 0x9ab8, 0x9ab9, 0x9aba, 0xbdbf, 0xbdc0, 0x9abb, 0xbdc1, 0x9abc, 0xbdc2, 0x9abd, 0x9abe, 0x9abf, 0x9ac0, 0x9ac1, 0x9ac2, 0x9ac3, 0x9ac4, 0x9ac5, 0x9ac6, 0x9ac7, 0x9ac8, 0x9ac9, 0x9aca, 0x9acb, 0x9acc, 0x9acd, 0x9ace, 0x9acf, 0x9ad0, 0x9ad1, 0x9ad2, 0x9ad3, 0x9ad4, 0x9ad5, 0x9ad6, 0x9ad7, 0x9ad8, 0x9ad9, 0x9ada, 0x9adb, 0x9adc, 0x9add, 0x9ade, 0xbdc3, 0xbdc4, 0x9adf, 0x9ae0, 0xbdc5, 0x9ae1, 0x9ae2, 0xbdc6, 0xbdc7, 0x9ae3, 0x9ae4, 0x9ae5, 0x9ae6, 0x9ae7, 0x9ae8, 0xbdc8, 0xbdc9, 0xbdca, 0x9ae9, 0xbdcb, 0x9aea, 0xbdcc, 0x9aeb, 0x9aec, 0x9aed, 0x9aee, 0xbdcd, 0x9aef, 0xbdce, 0xbdcf, 0x9af0, 0xbdd0, 0xbdd1, 0x9af1, 0x9af2, 0x9af3, /* 0xc300 .. 0xc3ff */ 0xbdd2, 0x9af4, 0x9af5, 0x9af6, 0x9af7, 0x9af8, 0x9af9, 0x9afa, 0xbdd3, 0xbdd4, 0x9afb, 0x9afc, 0xbdd5, 0xbdd6, 0x9afd, 0x9afe, 0x9b41, 0x9b42, 0x9b43, 0xbdd7, 0xbdd8, 0xbdd9, 0x9b44, 0x9b45, 0xbdda, 0x9b46, 0x9b47, 0x9b48, 0xbddb, 0x9b49, 0x9b4a, 0x9b4b, 0x9b4c, 0x9b4d, 0x9b4e, 0x9b4f, 0xbddc, 0xbddd, 0x9b50, 0x9b51, 0xbdde, 0xbddf, 0x9b52, 0x9b53, 0x9b54, 0x9b55, 0x9b56, 0x9b57, 0x9b58, 0x9b59, 0x9b5a, 0x9b61, 0x9b62, 0x9b63, 0x9b64, 0x9b65, 0x9b66, 0x9b67, 0x9b68, 0x9b69, 0x9b6a, 0x9b6b, 0x9b6c, 0x9b6d, 0x9b6e, 0x9b6f, 0x9b70, 0x9b71, 0x9b72, 0xbde0, 0x9b73, 0x9b74, 0x9b75, 0x9b76, 0x9b77, 0x9b78, 0x9b79, 0x9b7a, 0x9b81, 0x9b82, 0x9b83, 0x9b84, 0x9b85, 0x9b86, 0x9b87, 0x9b88, 0x9b89, 0x9b8a, 0x9b8b, 0x9b8c, 0x9b8d, 0x9b8e, 0x9b8f, 0x9b90, 0x9b91, 0x9b92, 0x9b93, 0x9b94, 0x9b95, 0x9b96, 0x9b97, 0x9b98, 0x9b99, 0x9b9a, 0xbde1, 0xbde2, 0x9b9b, 0x9b9c, 0xbde3, 0x9b9d, 0x9b9e, 0x9b9f, 0xbde4, 0x9ba0, 0xbde5, 0x9ba1, 0x9ba2, 0x9ba3, 0x9ba4, 0x9ba5, 0xbde6, 0xbde7, 0x9ba6, 0x9ba7, 0xbde8, 0xbde9, 0x9ba8, 0x9ba9, 0x9baa, 0x9bab, 0x9bac, 0x9bad, 0xbdea, 0x9bae, 0x9baf, 0x9bb0, 0xbdeb, 0x9bb1, 0x9bb2, 0x9bb3, 0xbdec, 0x9bb4, 0x9bb5, 0x9bb6, 0x9bb7, 0x9bb8, 0x9bb9, 0x9bba, 0x9bbb, 0x9bbc, 0x9bbd, 0x9bbe, 0x9bbf, 0x9bc0, 0x9bc1, 0x9bc2, 0x9bc3, 0x9bc4, 0x9bc5, 0x9bc6, 0x9bc7, 0x9bc8, 0x9bc9, 0x9bca, 0x9bcb, 0x9bcc, 0x9bcd, 0x9bce, 0x9bcf, 0x9bd0, 0x9bd1, 0x9bd2, 0x9bd3, 0x9bd4, 0x9bd5, 0x9bd6, 0x9bd7, 0x9bd8, 0x9bd9, 0x9bda, 0x9bdb, 0x9bdc, 0x9bdd, 0x9bde, 0x9bdf, 0x9be0, 0x9be1, 0x9be2, 0x9be3, 0x9be4, 0x9be5, 0x9be6, 0xbded, 0x9be7, 0x9be8, 0x9be9, 0x9bea, 0x9beb, 0x9bec, 0x9bed, 0x9bee, 0x9bef, 0x9bf0, 0x9bf1, 0x9bf2, 0x9bf3, 0x9bf4, 0x9bf5, 0x9bf6, 0x9bf7, 0x9bf8, 0x9bf9, 0x9bfa, 0x9bfb, 0x9bfc, 0x9bfd, 0xbdee, 0xbdef, 0x9bfe, 0x9c41, 0xbdf0, 0x9c42, 0x9c43, 0xbdf1, 0xbdf2, 0x9c44, 0xbdf3, 0x9c45, 0x9c46, 0x9c47, 0x9c48, 0x9c49, 0xbdf4, 0xbdf5, 0x9c4a, 0x9c4b, 0x9c4c, 0xbdf6, 0x9c4d, 0x9c4e, 0x9c4f, 0x9c50, 0x9c51, 0x9c52, 0xbdf7, 0xbdf8, 0x9c53, 0x9c54, 0xbdf9, 0x9c55, 0x9c56, 0x9c57, 0x9c58, 0x9c59, 0x9c5a, 0x9c61, /* 0xc400 .. 0xc4ff */ 0x9c62, 0x9c63, 0x9c64, 0x9c65, 0x9c66, 0x9c67, 0x9c68, 0x9c69, 0xbdfa, 0x9c6a, 0x9c6b, 0x9c6c, 0x9c6d, 0x9c6e, 0x9c6f, 0x9c70, 0xbdfb, 0x9c71, 0x9c72, 0x9c73, 0x9c74, 0x9c75, 0x9c76, 0x9c77, 0x9c78, 0x9c79, 0x9c7a, 0x9c81, 0x9c82, 0x9c83, 0x9c84, 0x9c85, 0x9c86, 0x9c87, 0x9c88, 0x9c89, 0xbdfc, 0x9c8a, 0x9c8b, 0x9c8c, 0x9c8d, 0x9c8e, 0x9c8f, 0x9c90, 0xbdfd, 0x9c91, 0x9c92, 0x9c93, 0xbdfe, 0x9c94, 0x9c95, 0x9c96, 0xbea1, 0x9c97, 0x9c98, 0x9c99, 0x9c9a, 0x9c9b, 0x9c9c, 0x9c9d, 0xbea2, 0xbea3, 0x9c9e, 0x9c9f, 0x9ca0, 0x9ca1, 0x9ca2, 0x9ca3, 0x9ca4, 0x9ca5, 0x9ca6, 0x9ca7, 0xbea4, 0x9ca8, 0x9ca9, 0x9caa, 0x9cab, 0x9cac, 0x9cad, 0x9cae, 0x9caf, 0x9cb0, 0x9cb1, 0x9cb2, 0x9cb3, 0x9cb4, 0x9cb5, 0x9cb6, 0x9cb7, 0x9cb8, 0x9cb9, 0x9cba, 0x9cbb, 0x9cbc, 0x9cbd, 0x9cbe, 0x9cbf, 0x9cc0, 0x9cc1, 0x9cc2, 0xbea5, 0xbea6, 0x9cc3, 0x9cc4, 0xbea7, 0x9cc5, 0x9cc6, 0x9cc7, 0xbea8, 0x9cc8, 0x9cc9, 0x9cca, 0x9ccb, 0x9ccc, 0x9ccd, 0x9cce, 0xbea9, 0xbeaa, 0x9ccf, 0x9cd0, 0x9cd1, 0xbeab, 0x9cd2, 0x9cd3, 0x9cd4, 0x9cd5, 0x9cd6, 0x9cd7, 0xbeac, 0x9cd8, 0x9cd9, 0x9cda, 0x9cdb, 0x9cdc, 0x9cdd, 0x9cde, 0x9cdf, 0x9ce0, 0x9ce1, 0x9ce2, 0x9ce3, 0x9ce4, 0x9ce5, 0x9ce6, 0x9ce7, 0x9ce8, 0x9ce9, 0x9cea, 0xbead, 0x9ceb, 0x9cec, 0x9ced, 0x9cee, 0x9cef, 0x9cf0, 0x9cf1, 0xbeae, 0x9cf2, 0x9cf3, 0x9cf4, 0x9cf5, 0x9cf6, 0x9cf7, 0x9cf8, 0x9cf9, 0x9cfa, 0x9cfb, 0x9cfc, 0x9cfd, 0x9cfe, 0x9d41, 0x9d42, 0x9d43, 0x9d44, 0x9d45, 0x9d46, 0x9d47, 0x9d48, 0x9d49, 0x9d4a, 0x9d4b, 0x9d4c, 0x9d4d, 0x9d4e, 0xbeaf, 0x9d4f, 0x9d50, 0x9d51, 0xbeb0, 0x9d52, 0x9d53, 0x9d54, 0x9d55, 0x9d56, 0x9d57, 0x9d58, 0x9d59, 0x9d5a, 0x9d61, 0x9d62, 0x9d63, 0x9d64, 0x9d65, 0x9d66, 0x9d67, 0x9d68, 0x9d69, 0x9d6a, 0x9d6b, 0x9d6c, 0x9d6d, 0x9d6e, 0x9d6f, 0x9d70, 0x9d71, 0x9d72, 0x9d73, 0x9d74, 0x9d75, 0x9d76, 0x9d77, 0x9d78, 0x9d79, 0x9d7a, 0x9d81, 0x9d82, 0x9d83, 0x9d84, 0x9d85, 0x9d86, 0x9d87, 0x9d88, 0x9d89, 0xbeb1, 0x9d8a, 0x9d8b, 0x9d8c, 0x9d8d, 0x9d8e, 0x9d8f, 0xbeb2, 0xbeb3, 0x9d90, 0x9d91, 0xbeb4, 0x9d92, 0x9d93, 0x9d94, 0xbeb5, 0x9d95, 0xbeb6, 0x9d96, 0x9d97, 0x9d98, 0x9d99, 0xbeb7, /* 0xc500 .. 0xc5ff */ 0xbeb8, 0xbeb9, 0x9d9a, 0x9d9b, 0x9d9c, 0x9d9d, 0x9d9e, 0x9d9f, 0x9da0, 0x9da1, 0x9da2, 0x9da3, 0xbeba, 0x9da4, 0x9da5, 0x9da6, 0xbebb, 0x9da7, 0x9da8, 0x9da9, 0xbebc, 0x9daa, 0x9dab, 0x9dac, 0x9dad, 0x9dae, 0x9daf, 0x9db0, 0xbebd, 0x9db1, 0x9db2, 0x9db3, 0x9db4, 0x9db5, 0x9db6, 0x9db7, 0x9db8, 0x9db9, 0x9dba, 0x9dbb, 0xbebe, 0xbebf, 0x9dbc, 0x9dbd, 0xbec0, 0x9dbe, 0x9dbf, 0x9dc0, 0xbec1, 0x9dc1, 0x9dc2, 0x9dc3, 0x9dc4, 0x9dc5, 0x9dc6, 0x9dc7, 0xbec2, 0xbec3, 0x9dc8, 0xbec4, 0x9dc9, 0xbec5, 0x9dca, 0x9dcb, 0x9dcc, 0x9dcd, 0x9dce, 0x9dcf, 0xbec6, 0xbec7, 0x9dd0, 0x9dd1, 0xbec8, 0xbec9, 0xbeca, 0x9dd2, 0xbecb, 0xbecc, 0xbecd, 0x9dd3, 0x9dd4, 0x9dd5, 0x9dd6, 0xbece, 0xbecf, 0xbed0, 0x9dd7, 0xbed1, 0xbed2, 0xbed3, 0x9dd8, 0x9dd9, 0x9dda, 0xbed4, 0xbed5, 0x9ddb, 0xbed6, 0xbed7, 0x9ddc, 0x9ddd, 0xbed8, 0x9dde, 0x9ddf, 0x9de0, 0xbed9, 0x9de1, 0x9de2, 0x9de3, 0x9de4, 0x9de5, 0x9de6, 0x9de7, 0xbeda, 0xbedb, 0x9de8, 0xbedc, 0xbedd, 0xbede, 0x9de9, 0x9dea, 0x9deb, 0x9dec, 0x9ded, 0x9dee, 0xbedf, 0xbee0, 0x9def, 0x9df0, 0xbee1, 0x9df1, 0x9df2, 0x9df3, 0xbee2, 0x9df4, 0x9df5, 0xbee3, 0x9df6, 0x9df7, 0x9df8, 0x9df9, 0xbee4, 0xbee5, 0x9dfa, 0xbee6, 0x9dfb, 0xbee7, 0x9dfc, 0x9dfd, 0x9dfe, 0xbee8, 0x9e41, 0xbee9, 0xbeea, 0x9e42, 0x9e43, 0x9e44, 0xbeeb, 0x9e45, 0x9e46, 0x9e47, 0xbeec, 0x9e48, 0x9e49, 0x9e4a, 0x9e4b, 0x9e4c, 0x9e4d, 0x9e4e, 0x9e4f, 0xbeed, 0x9e50, 0x9e51, 0x9e52, 0x9e53, 0x9e54, 0x9e55, 0x9e56, 0x9e57, 0x9e58, 0x9e59, 0xbeee, 0xbeef, 0x9e5a, 0x9e61, 0xbef0, 0xbef1, 0x9e62, 0xbef2, 0xbef3, 0xbef4, 0xbef5, 0x9e63, 0x9e64, 0x9e65, 0x9e66, 0x9e67, 0xbef6, 0xbef7, 0xbef8, 0xbef9, 0xbefa, 0xbefb, 0xbefc, 0x9e68, 0xbefd, 0x9e69, 0xbefe, 0x9e6a, 0xbfa1, 0xbfa2, 0x9e6b, 0x9e6c, 0xbfa3, 0x9e6d, 0x9e6e, 0x9e6f, 0xbfa4, 0x9e70, 0x9e71, 0x9e72, 0x9e73, 0x9e74, 0x9e75, 0x9e76, 0xbfa5, 0xbfa6, 0x9e77, 0xbfa7, 0x9e78, 0xbfa8, 0x9e79, 0x9e7a, 0x9e81, 0x9e82, 0x9e83, 0x9e84, 0xbfa9, 0xbfaa, 0xbfab, 0x9e85, 0xbfac, 0x9e86, 0x9e87, 0x9e88, 0xbfad, 0x9e89, 0xbfae, 0xbfaf, 0x9e8a, 0x9e8b, 0x9e8c, 0x9e8d, 0xbfb0, 0xbfb1, 0xbfb2, 0xbfb3, /* 0xc600 .. 0xc6ff */ 0xbfb4, 0xbfb5, 0x9e8e, 0x9e8f, 0x9e90, 0xbfb6, 0xbfb7, 0xbfb8, 0xbfb9, 0x9e91, 0x9e92, 0x9e93, 0xbfba, 0x9e94, 0x9e95, 0x9e96, 0xbfbb, 0x9e97, 0x9e98, 0x9e99, 0x9e9a, 0x9e9b, 0x9e9c, 0x9e9d, 0xbfbc, 0xbfbd, 0x9e9e, 0xbfbe, 0xbfbf, 0x9e9f, 0x9ea0, 0x9ea1, 0x9ea2, 0x9ea3, 0x9ea4, 0x9ea5, 0xbfc0, 0xbfc1, 0x9ea6, 0x9ea7, 0xbfc2, 0x9ea8, 0x9ea9, 0x9eaa, 0xbfc3, 0xbfc4, 0xbfc5, 0x9eab, 0xbfc6, 0x9eac, 0x9ead, 0xbfc7, 0xbfc8, 0xbfc9, 0x9eae, 0xbfca, 0x9eaf, 0xbfcb, 0x9eb0, 0xbfcc, 0x9eb1, 0x9eb2, 0x9eb3, 0x9eb4, 0xbfcd, 0xbfce, 0x9eb5, 0x9eb6, 0xbfcf, 0x9eb7, 0x9eb8, 0x9eb9, 0xbfd0, 0x9eba, 0x9ebb, 0x9ebc, 0x9ebd, 0x9ebe, 0x9ebf, 0x9ec0, 0xbfd1, 0xbfd2, 0x9ec1, 0xbfd3, 0xbfd4, 0xbfd5, 0x9ec2, 0x9ec3, 0x9ec4, 0x9ec5, 0x9ec6, 0x9ec7, 0xbfd6, 0xbfd7, 0x9ec8, 0x9ec9, 0xbfd8, 0x9eca, 0x9ecb, 0x9ecc, 0x9ecd, 0x9ece, 0x9ecf, 0x9ed0, 0x9ed1, 0x9ed2, 0x9ed3, 0x9ed4, 0xbfd9, 0x9ed5, 0x9ed6, 0xbfda, 0x9ed7, 0xbfdb, 0x9ed8, 0x9ed9, 0x9eda, 0x9edb, 0x9edc, 0x9edd, 0xbfdc, 0xbfdd, 0x9ede, 0x9edf, 0xbfde, 0x9ee0, 0x9ee1, 0x9ee2, 0xbfdf, 0x9ee3, 0x9ee4, 0x9ee5, 0x9ee6, 0x9ee7, 0x9ee8, 0x9ee9, 0xbfe0, 0xbfe1, 0x9eea, 0xbfe2, 0x9eeb, 0xbfe3, 0x9eec, 0x9eed, 0x9eee, 0x9eef, 0x9ef0, 0x9ef1, 0xbfe4, 0xbfe5, 0x9ef2, 0x9ef3, 0xbfe6, 0x9ef4, 0x9ef5, 0x9ef6, 0xbfe7, 0x9ef7, 0x9ef8, 0x9ef9, 0x9efa, 0x9efb, 0x9efc, 0x9efd, 0xbfe8, 0xbfe9, 0x9efe, 0xbfea, 0x9f41, 0xbfeb, 0x9f42, 0x9f43, 0x9f44, 0x9f45, 0x9f46, 0x9f47, 0xbfec, 0xbfed, 0x9f48, 0x9f49, 0xbfee, 0x9f4a, 0x9f4b, 0x9f4c, 0xbfef, 0xbff0, 0xbff1, 0x9f4d, 0x9f4e, 0x9f4f, 0x9f50, 0x9f51, 0xbff2, 0xbff3, 0x9f52, 0xbff4, 0x9f53, 0xbff5, 0x9f54, 0x9f55, 0x9f56, 0x9f57, 0x9f58, 0x9f59, 0xbff6, 0xbff7, 0x9f5a, 0x9f61, 0xbff8, 0x9f62, 0x9f63, 0x9f64, 0xbff9, 0x9f65, 0x9f66, 0x9f67, 0x9f68, 0x9f69, 0x9f6a, 0x9f6b, 0xbffa, 0xbffb, 0x9f6c, 0x9f6d, 0xbffc, 0xbffd, 0x9f6e, 0x9f6f, 0x9f70, 0x9f71, 0x9f72, 0x9f73, 0xbffe, 0xc0a1, 0x9f74, 0x9f75, 0xc0a2, 0x9f76, 0x9f77, 0x9f78, 0xc0a3, 0x9f79, 0x9f7a, 0x9f81, 0x9f82, 0x9f83, 0x9f84, 0x9f85, 0xc0a4, 0xc0a5, 0x9f86, 0x9f87, 0x9f88, 0xc0a6, 0x9f89, 0x9f8a, /* 0xc700 .. 0xc7ff */ 0x9f8b, 0x9f8c, 0x9f8d, 0x9f8e, 0xc0a7, 0xc0a8, 0x9f8f, 0x9f90, 0xc0a9, 0x9f91, 0x9f92, 0x9f93, 0xc0aa, 0x9f94, 0x9f95, 0x9f96, 0x9f97, 0x9f98, 0x9f99, 0x9f9a, 0xc0ab, 0xc0ac, 0x9f9b, 0xc0ad, 0x9f9c, 0xc0ae, 0x9f9d, 0x9f9e, 0x9f9f, 0x9fa0, 0x9fa1, 0x9fa2, 0xc0af, 0xc0b0, 0x9fa3, 0x9fa4, 0xc0b1, 0x9fa5, 0x9fa6, 0x9fa7, 0xc0b2, 0x9fa8, 0x9fa9, 0x9faa, 0x9fab, 0x9fac, 0x9fad, 0x9fae, 0xc0b3, 0xc0b4, 0x9faf, 0xc0b5, 0x9fb0, 0xc0b6, 0x9fb1, 0xc0b7, 0x9fb2, 0x9fb3, 0x9fb4, 0x9fb5, 0xc0b8, 0xc0b9, 0x9fb6, 0x9fb7, 0xc0ba, 0x9fb8, 0x9fb9, 0x9fba, 0xc0bb, 0x9fbb, 0x9fbc, 0x9fbd, 0x9fbe, 0x9fbf, 0xc0bc, 0x9fc0, 0xc0bd, 0xc0be, 0x9fc1, 0xc0bf, 0x9fc2, 0xc0c0, 0xc0c1, 0xc0c2, 0xc0c3, 0xc0c4, 0xc0c5, 0xc0c6, 0xc0c7, 0x9fc3, 0x9fc4, 0x9fc5, 0xc0c8, 0x9fc6, 0x9fc7, 0x9fc8, 0xc0c9, 0x9fc9, 0x9fca, 0x9fcb, 0x9fcc, 0x9fcd, 0x9fce, 0x9fcf, 0xc0ca, 0x9fd0, 0x9fd1, 0xc0cb, 0x9fd2, 0x9fd3, 0x9fd4, 0x9fd5, 0x9fd6, 0x9fd7, 0x9fd8, 0x9fd9, 0xc0cc, 0xc0cd, 0x9fda, 0x9fdb, 0xc0ce, 0x9fdc, 0x9fdd, 0x9fde, 0xc0cf, 0xc0d0, 0xc0d1, 0x9fdf, 0x9fe0, 0x9fe1, 0x9fe2, 0xc0d2, 0xc0d3, 0xc0d4, 0x9fe3, 0xc0d5, 0xc0d6, 0xc0d7, 0xc0d8, 0x9fe4, 0x9fe5, 0x9fe6, 0xc0d9, 0x9fe7, 0xc0da, 0xc0db, 0x9fe8, 0x9fe9, 0xc0dc, 0x9fea, 0xc0dd, 0xc0de, 0xc0df, 0x9feb, 0xc0e0, 0x9fec, 0x9fed, 0x9fee, 0x9fef, 0x9ff0, 0xc0e1, 0xc0e2, 0x9ff1, 0xc0e3, 0xc0e4, 0xc0e5, 0xc0e6, 0x9ff2, 0x9ff3, 0x9ff4, 0x9ff5, 0x9ff6, 0xc0e7, 0xc0e8, 0x9ff7, 0x9ff8, 0xc0e9, 0x9ff9, 0x9ffa, 0x9ffb, 0xc0ea, 0x9ffc, 0x9ffd, 0x9ffe, 0xa041, 0xa042, 0xa043, 0xa044, 0xc0eb, 0xc0ec, 0xa045, 0xc0ed, 0xc0ee, 0xc0ef, 0xa046, 0xa047, 0xa048, 0xa049, 0xa04a, 0xa04b, 0xc0f0, 0xc0f1, 0xa04c, 0xa04d, 0xc0f2, 0xa04e, 0xc0f3, 0xa04f, 0xc0f4, 0xa050, 0xa051, 0xa052, 0xa053, 0xa054, 0xa055, 0xa056, 0xc0f5, 0xa057, 0xa058, 0xa059, 0xa05a, 0xc0f6, 0xa061, 0xa062, 0xa063, 0xa064, 0xa065, 0xa066, 0xc0f7, 0xa067, 0xa068, 0xa069, 0xc0f8, 0xa06a, 0xa06b, 0xa06c, 0xc0f9, 0xa06d, 0xa06e, 0xa06f, 0xa070, 0xa071, 0xa072, 0xa073, 0xa074, 0xa075, 0xa076, 0xa077, 0xa078, 0xa079, 0xa07a, 0xa081, 0xa082, 0xa083, 0xa084, 0xa085, /* 0xc800 .. 0xc8ff */ 0xc0fa, 0xc0fb, 0xa086, 0xa087, 0xc0fc, 0xa088, 0xa089, 0xa08a, 0xc0fd, 0xa08b, 0xc0fe, 0xa08c, 0xa08d, 0xa08e, 0xa08f, 0xa090, 0xc1a1, 0xc1a2, 0xa091, 0xc1a3, 0xa092, 0xc1a4, 0xc1a5, 0xa093, 0xa094, 0xa095, 0xa096, 0xa097, 0xc1a6, 0xc1a7, 0xa098, 0xa099, 0xc1a8, 0xa09a, 0xa09b, 0xa09c, 0xc1a9, 0xa09d, 0xa09e, 0xa09f, 0xa0a0, 0xa0a1, 0xa0a2, 0xa0a3, 0xc1aa, 0xc1ab, 0xa0a4, 0xc1ac, 0xa0a5, 0xc1ad, 0xa0a6, 0xa0a7, 0xa0a8, 0xa0a9, 0xa0aa, 0xa0ab, 0xc1ae, 0xa0ac, 0xa0ad, 0xa0ae, 0xc1af, 0xa0af, 0xa0b0, 0xa0b1, 0xc1b0, 0xa0b2, 0xa0b3, 0xa0b4, 0xa0b5, 0xa0b6, 0xa0b7, 0xa0b8, 0xc1b1, 0xc1b2, 0xa0b9, 0xa0ba, 0xc1b3, 0xc1b4, 0xa0bb, 0xa0bc, 0xa0bd, 0xa0be, 0xa0bf, 0xa0c0, 0xc1b5, 0xa0c1, 0xa0c2, 0xa0c3, 0xa0c4, 0xa0c5, 0xa0c6, 0xa0c7, 0xa0c8, 0xa0c9, 0xa0ca, 0xa0cb, 0xa0cc, 0xa0cd, 0xa0ce, 0xa0cf, 0xa0d0, 0xa0d1, 0xa0d2, 0xa0d3, 0xa0d4, 0xa0d5, 0xa0d6, 0xa0d7, 0xa0d8, 0xa0d9, 0xa0da, 0xa0db, 0xc1b6, 0xc1b7, 0xa0dc, 0xa0dd, 0xc1b8, 0xa0de, 0xa0df, 0xa0e0, 0xc1b9, 0xa0e1, 0xc1ba, 0xa0e2, 0xa0e3, 0xa0e4, 0xa0e5, 0xa0e6, 0xc1bb, 0xc1bc, 0xa0e7, 0xc1bd, 0xa0e8, 0xc1be, 0xc1bf, 0xc1c0, 0xa0e9, 0xa0ea, 0xa0eb, 0xc1c1, 0xc1c2, 0xc1c3, 0xa0ec, 0xa0ed, 0xa0ee, 0xa0ef, 0xa0f0, 0xa0f1, 0xc1c4, 0xa0f2, 0xa0f3, 0xa0f4, 0xa0f5, 0xa0f6, 0xa0f7, 0xa0f8, 0xa0f9, 0xc1c5, 0xa0fa, 0xc1c6, 0xa0fb, 0xc1c7, 0xa0fc, 0xa0fd, 0xa0fe, 0xa141, 0xa142, 0xa143, 0xc1c8, 0xa144, 0xa145, 0xa146, 0xa147, 0xa148, 0xa149, 0xa14a, 0xa14b, 0xa14c, 0xa14d, 0xa14e, 0xa14f, 0xa150, 0xa151, 0xa152, 0xa153, 0xa154, 0xa155, 0xa156, 0xc1c9, 0xc1ca, 0xa157, 0xa158, 0xa159, 0xa15a, 0xa161, 0xa162, 0xc1cb, 0xa163, 0xa164, 0xa165, 0xc1cc, 0xa166, 0xa167, 0xa168, 0xc1cd, 0xa169, 0xa16a, 0xa16b, 0xa16c, 0xa16d, 0xa16e, 0xa16f, 0xc1ce, 0xc1cf, 0xa170, 0xc1d0, 0xa171, 0xc1d1, 0xa172, 0xa173, 0xa174, 0xa175, 0xa176, 0xa177, 0xc1d2, 0xc1d3, 0xa178, 0xa179, 0xc1d4, 0xa17a, 0xa181, 0xa182, 0xa183, 0xa184, 0xa185, 0xa186, 0xa187, 0xa188, 0xa189, 0xa18a, 0xa18b, 0xa18c, 0xa18d, 0xa18e, 0xa18f, 0xc1d5, 0xa190, 0xa191, 0xa192, 0xa193, 0xa194, 0xa195, 0xc1d6, 0xc1d7, 0xa196, 0xa197, /* 0xc900 .. 0xc9ff */ 0xc1d8, 0xa198, 0xa199, 0xa19a, 0xc1d9, 0xc1da, 0xc1db, 0xa19b, 0xa19c, 0xa19d, 0xa19e, 0xa19f, 0xc1dc, 0xc1dd, 0xa1a0, 0xc1de, 0xa241, 0xc1df, 0xa242, 0xa243, 0xa244, 0xa245, 0xa246, 0xa247, 0xc1e0, 0xa248, 0xa249, 0xa24a, 0xa24b, 0xa24c, 0xa24d, 0xa24e, 0xa24f, 0xa250, 0xa251, 0xa252, 0xa253, 0xa254, 0xa255, 0xa256, 0xa257, 0xa258, 0xa259, 0xa25a, 0xc1e1, 0xa261, 0xa262, 0xa263, 0xa264, 0xa265, 0xa266, 0xa267, 0xc1e2, 0xa268, 0xa269, 0xa26a, 0xa26b, 0xa26c, 0xa26d, 0xa26e, 0xa26f, 0xa270, 0xa271, 0xa272, 0xa273, 0xa274, 0xa275, 0xa276, 0xa277, 0xa278, 0xa279, 0xa27a, 0xa281, 0xa282, 0xa283, 0xa284, 0xa285, 0xa286, 0xa287, 0xa288, 0xc1e3, 0xc1e4, 0xa289, 0xa28a, 0xc1e5, 0xa28b, 0xa28c, 0xa28d, 0xc1e6, 0xa28e, 0xa28f, 0xa290, 0xa291, 0xa292, 0xa293, 0xa294, 0xc1e7, 0xc1e8, 0xa295, 0xc1e9, 0xa296, 0xa297, 0xa298, 0xa299, 0xa29a, 0xa29b, 0xa29c, 0xa29d, 0xc1ea, 0xa29e, 0xa29f, 0xa2a0, 0xc1eb, 0xa341, 0xa342, 0xa343, 0xc1ec, 0xa344, 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xc1ed, 0xa34b, 0xa34c, 0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0xa355, 0xc1ee, 0xc1ef, 0xa356, 0xa357, 0xc1f0, 0xa358, 0xa359, 0xa35a, 0xc1f1, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xc1f2, 0xc1f3, 0xa368, 0xc1f4, 0xa369, 0xc1f5, 0xa36a, 0xa36b, 0xa36c, 0xa36d, 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, 0xa37a, 0xa381, 0xa382, 0xa383, 0xa384, 0xa385, 0xa386, 0xa387, 0xa388, 0xa389, 0xa38a, 0xa38b, 0xa38c, 0xa38d, 0xa38e, 0xa38f, 0xa390, 0xa391, 0xc1f6, 0xc1f7, 0xa392, 0xa393, 0xc1f8, 0xa394, 0xa395, 0xc1f9, 0xc1fa, 0xa396, 0xc1fb, 0xa397, 0xa398, 0xa399, 0xa39a, 0xa39b, 0xc1fc, 0xc1fd, 0xa39c, 0xc1fe, 0xa39d, 0xc2a1, 0xc2a2, 0xa39e, 0xa39f, 0xc2a3, 0xc2a4, 0xa3a0, 0xc2a5, 0xc2a6, 0xa441, 0xa442, 0xc2a7, 0xa443, 0xc2a8, 0xa444, 0xc2a9, 0xa445, 0xa446, 0xc2aa, 0xa447, 0xa448, 0xa449, 0xa44a, 0xc2ab, 0xc2ac, 0xa44b, 0xc2ad, 0xc2ae, 0xc2af, 0xa44c, 0xa44d, 0xa44e, 0xa44f, 0xa450, 0xa451, 0xc2b0, 0xc2b1, 0xa452, 0xa453, 0xc2b2, 0xa454, 0xa455, 0xa456, /* 0xca00 .. 0xcaff */ 0xc2b3, 0xa457, 0xa458, 0xa459, 0xa45a, 0xa461, 0xa462, 0xa463, 0xc2b4, 0xc2b5, 0xa464, 0xc2b6, 0xc2b7, 0xc2b8, 0xa465, 0xa466, 0xa467, 0xa468, 0xa469, 0xa46a, 0xc2b9, 0xa46b, 0xa46c, 0xa46d, 0xc2ba, 0xa46e, 0xa46f, 0xa470, 0xa471, 0xa472, 0xa473, 0xa474, 0xa475, 0xa476, 0xa477, 0xa478, 0xa479, 0xa47a, 0xa481, 0xa482, 0xa483, 0xc2bb, 0xa484, 0xa485, 0xa486, 0xa487, 0xa488, 0xa489, 0xa48a, 0xa48b, 0xa48c, 0xa48d, 0xa48e, 0xa48f, 0xa490, 0xa491, 0xa492, 0xa493, 0xa494, 0xa495, 0xa496, 0xa497, 0xa498, 0xa499, 0xa49a, 0xa49b, 0xa49c, 0xa49d, 0xa49e, 0xa49f, 0xa4a0, 0xa541, 0xa542, 0xa543, 0xa544, 0xa545, 0xc2bc, 0xc2bd, 0xa546, 0xa547, 0xc2be, 0xa548, 0xa549, 0xa54a, 0xc2bf, 0xa54b, 0xa54c, 0xa54d, 0xa54e, 0xa54f, 0xa550, 0xa551, 0xc2c0, 0xc2c1, 0xa552, 0xc2c2, 0xc2c3, 0xc2c4, 0xa553, 0xa554, 0xa555, 0xa556, 0xa557, 0xa558, 0xc2c5, 0xa559, 0xa55a, 0xa561, 0xa562, 0xa563, 0xa564, 0xa565, 0xa566, 0xa567, 0xa568, 0xa569, 0xa56a, 0xa56b, 0xa56c, 0xa56d, 0xa56e, 0xa56f, 0xa570, 0xa571, 0xa572, 0xc2c6, 0xa573, 0xa574, 0xa575, 0xa576, 0xa577, 0xa578, 0xc2c7, 0xa579, 0xa57a, 0xa581, 0xa582, 0xa583, 0xa584, 0xa585, 0xa586, 0xa587, 0xa588, 0xa589, 0xa58a, 0xa58b, 0xa58c, 0xa58d, 0xa58e, 0xa58f, 0xa590, 0xa591, 0xc2c8, 0xa592, 0xa593, 0xa594, 0xa595, 0xa596, 0xa597, 0xa598, 0xa599, 0xa59a, 0xa59b, 0xa59c, 0xa59d, 0xa59e, 0xa59f, 0xa5a0, 0xa641, 0xa642, 0xa643, 0xa644, 0xa645, 0xa646, 0xa647, 0xa648, 0xa649, 0xa64a, 0xa64b, 0xa64c, 0xa64d, 0xa64e, 0xa64f, 0xa650, 0xa651, 0xa652, 0xa653, 0xa654, 0xc2c9, 0xc2ca, 0xa655, 0xa656, 0xc2cb, 0xa657, 0xa658, 0xa659, 0xc2cc, 0xa65a, 0xa661, 0xa662, 0xa663, 0xa664, 0xa665, 0xa666, 0xc2cd, 0xc2ce, 0xa667, 0xc2cf, 0xa668, 0xc2d0, 0xa669, 0xc2d1, 0xa66a, 0xa66b, 0xa66c, 0xa66d, 0xc2d2, 0xc2d3, 0xa66e, 0xa66f, 0xa670, 0xa671, 0xa672, 0xa673, 0xc2d4, 0xa674, 0xa675, 0xa676, 0xa677, 0xa678, 0xa679, 0xa67a, 0xa681, 0xa682, 0xa683, 0xa684, 0xc2d5, 0xa685, 0xa686, 0xa687, 0xa688, 0xa689, 0xa68a, 0xa68b, 0xc2d6, 0xa68c, 0xa68d, 0xa68e, 0xa68f, 0xa690, 0xa691, 0xa692, 0xa693, 0xa694, 0xa695, 0xa696, /* 0xcb00 .. 0xcbff */ 0xa697, 0xa698, 0xa699, 0xa69a, 0xa69b, 0xa69c, 0xa69d, 0xa69e, 0xc2d7, 0xa69f, 0xa6a0, 0xa741, 0xa742, 0xa743, 0xa744, 0xa745, 0xc2d8, 0xa746, 0xa747, 0xa748, 0xc2d9, 0xa749, 0xa74a, 0xa74b, 0xc2da, 0xa74c, 0xa74d, 0xa74e, 0xa74f, 0xa750, 0xa751, 0xa752, 0xc2db, 0xc2dc, 0xa753, 0xa754, 0xa755, 0xa756, 0xa757, 0xa758, 0xa759, 0xa75a, 0xa761, 0xa762, 0xa763, 0xa764, 0xa765, 0xa766, 0xa767, 0xa768, 0xa769, 0xa76a, 0xa76b, 0xa76c, 0xa76d, 0xa76e, 0xa76f, 0xa770, 0xa771, 0xa772, 0xa773, 0xa774, 0xa775, 0xa776, 0xa777, 0xc2dd, 0xa778, 0xa779, 0xa77a, 0xa781, 0xa782, 0xa783, 0xc2de, 0xc2df, 0xa784, 0xa785, 0xc2e0, 0xa786, 0xa787, 0xa788, 0xc2e1, 0xa789, 0xa78a, 0xa78b, 0xa78c, 0xa78d, 0xa78e, 0xa78f, 0xc2e2, 0xc2e3, 0xa790, 0xa791, 0xa792, 0xc2e4, 0xa793, 0xa794, 0xa795, 0xa796, 0xa797, 0xa798, 0xc2e5, 0xa799, 0xa79a, 0xa79b, 0xa79c, 0xa79d, 0xa79e, 0xa79f, 0xa7a0, 0xa841, 0xa842, 0xa843, 0xa844, 0xa845, 0xa846, 0xa847, 0xa848, 0xa849, 0xa84a, 0xa84b, 0xc2e6, 0xc2e7, 0xa84c, 0xa84d, 0xa84e, 0xa84f, 0xa850, 0xa851, 0xa852, 0xa853, 0xa854, 0xa855, 0xa856, 0xa857, 0xa858, 0xa859, 0xa85a, 0xa861, 0xa862, 0xa863, 0xa864, 0xa865, 0xa866, 0xa867, 0xa868, 0xa869, 0xa86a, 0xa86b, 0xa86c, 0xa86d, 0xa86e, 0xa86f, 0xa870, 0xa871, 0xa872, 0xa873, 0xc2e8, 0xa874, 0xa875, 0xa876, 0xa877, 0xa878, 0xa879, 0xa87a, 0xa881, 0xa882, 0xa883, 0xa884, 0xa885, 0xa886, 0xa887, 0xa888, 0xa889, 0xa88a, 0xa88b, 0xa88c, 0xa88d, 0xa88e, 0xa88f, 0xa890, 0xa891, 0xa892, 0xa893, 0xa894, 0xc2e9, 0xa895, 0xa896, 0xa897, 0xa898, 0xa899, 0xa89a, 0xa89b, 0xa89c, 0xa89d, 0xa89e, 0xa89f, 0xa8a0, 0xa941, 0xa942, 0xa943, 0xa944, 0xa945, 0xa946, 0xa947, 0xa948, 0xa949, 0xa94a, 0xa94b, 0xa94c, 0xa94d, 0xa94e, 0xa94f, 0xc2ea, 0xa950, 0xa951, 0xa952, 0xa953, 0xa954, 0xa955, 0xa956, 0xa957, 0xa958, 0xa959, 0xa95a, 0xa961, 0xa962, 0xa963, 0xa964, 0xc2eb, 0xa965, 0xa966, 0xc2ec, 0xa967, 0xc2ed, 0xa968, 0xa969, 0xa96a, 0xa96b, 0xa96c, 0xa96d, 0xa96e, 0xa96f, 0xa970, 0xa971, 0xa972, 0xa973, 0xa974, 0xa975, 0xa976, 0xa977, 0xa978, 0xa979, 0xa97a, 0xa981, 0xa982, 0xa983, /* 0xcc00 .. 0xccff */ 0xa984, 0xa985, 0xa986, 0xa987, 0xa988, 0xa989, 0xa98a, 0xa98b, 0xa98c, 0xa98d, 0xa98e, 0xa98f, 0xc2ee, 0xc2ef, 0xa990, 0xa991, 0xc2f0, 0xa992, 0xa993, 0xa994, 0xc2f1, 0xa995, 0xa996, 0xa997, 0xa998, 0xa999, 0xa99a, 0xa99b, 0xc2f2, 0xc2f3, 0xa99c, 0xa99d, 0xa99e, 0xc2f4, 0xc2f5, 0xa99f, 0xa9a0, 0xaa41, 0xaa42, 0xc2f6, 0xc2f7, 0xc2f8, 0xaa43, 0xaa44, 0xc2f9, 0xaa45, 0xc2fa, 0xaa46, 0xc2fb, 0xaa47, 0xaa48, 0xaa49, 0xaa4a, 0xaa4b, 0xaa4c, 0xaa4d, 0xc2fc, 0xc2fd, 0xaa4e, 0xc2fe, 0xc3a1, 0xc3a2, 0xc3a3, 0xaa4f, 0xaa50, 0xaa51, 0xaa52, 0xaa53, 0xc3a4, 0xc3a5, 0xaa54, 0xaa55, 0xc3a6, 0xaa56, 0xaa57, 0xaa58, 0xc3a7, 0xaa59, 0xaa5a, 0xaa61, 0xaa62, 0xaa63, 0xaa64, 0xaa65, 0xc3a8, 0xc3a9, 0xaa66, 0xc3aa, 0xc3ab, 0xc3ac, 0xaa67, 0xaa68, 0xaa69, 0xaa6a, 0xaa6b, 0xaa6c, 0xc3ad, 0xaa6d, 0xaa6e, 0xaa6f, 0xc3ae, 0xaa70, 0xc3af, 0xaa71, 0xc3b0, 0xaa72, 0xaa73, 0xaa74, 0xaa75, 0xaa76, 0xaa77, 0xaa78, 0xc3b1, 0xaa79, 0xaa7a, 0xaa81, 0xaa82, 0xc3b2, 0xaa83, 0xaa84, 0xaa85, 0xaa86, 0xaa87, 0xaa88, 0xaa89, 0xaa8a, 0xaa8b, 0xaa8c, 0xaa8d, 0xaa8e, 0xaa8f, 0xaa90, 0xaa91, 0xaa92, 0xaa93, 0xaa94, 0xaa95, 0xaa96, 0xaa97, 0xaa98, 0xaa99, 0xaa9a, 0xaa9b, 0xaa9c, 0xaa9d, 0xaa9e, 0xaa9f, 0xaaa0, 0xab41, 0xab42, 0xab43, 0xab44, 0xc3b3, 0xc3b4, 0xab45, 0xab46, 0xc3b5, 0xab47, 0xab48, 0xab49, 0xc3b6, 0xab4a, 0xab4b, 0xab4c, 0xab4d, 0xab4e, 0xab4f, 0xab50, 0xc3b7, 0xc3b8, 0xab51, 0xc3b9, 0xc3ba, 0xc3bb, 0xab52, 0xab53, 0xab54, 0xab55, 0xab56, 0xab57, 0xc3bc, 0xc3bd, 0xab58, 0xab59, 0xc3be, 0xab5a, 0xab61, 0xab62, 0xc3bf, 0xab63, 0xab64, 0xab65, 0xab66, 0xab67, 0xab68, 0xab69, 0xc3c0, 0xc3c1, 0xab6a, 0xc3c2, 0xab6b, 0xc3c3, 0xab6c, 0xab6d, 0xab6e, 0xab6f, 0xab70, 0xab71, 0xc3c4, 0xab72, 0xab73, 0xab74, 0xc3c5, 0xab75, 0xab76, 0xab77, 0xab78, 0xab79, 0xab7a, 0xab81, 0xab82, 0xab83, 0xab84, 0xab85, 0xab86, 0xab87, 0xab88, 0xab89, 0xc3c6, 0xab8a, 0xab8b, 0xab8c, 0xab8d, 0xab8e, 0xab8f, 0xab90, 0xc3c7, 0xab91, 0xab92, 0xab93, 0xc3c8, 0xab94, 0xab95, 0xab96, 0xab97, 0xab98, 0xab99, 0xab9a, 0xab9b, 0xab9c, 0xab9d, 0xab9e, 0xab9f, 0xaba0, 0xac41, 0xac42, /* 0xcd00 .. 0xcdff */ 0xac43, 0xc3c9, 0xac44, 0xac45, 0xac46, 0xac47, 0xac48, 0xac49, 0xc3ca, 0xc3cb, 0xac4a, 0xac4b, 0xc3cc, 0xac4c, 0xac4d, 0xac4e, 0xc3cd, 0xac4f, 0xac50, 0xac51, 0xac52, 0xac53, 0xac54, 0xac55, 0xc3ce, 0xc3cf, 0xac56, 0xc3d0, 0xac57, 0xc3d1, 0xac58, 0xac59, 0xac5a, 0xac61, 0xac62, 0xac63, 0xc3d2, 0xac64, 0xac65, 0xac66, 0xc3d3, 0xac67, 0xac68, 0xac69, 0xc3d4, 0xac6a, 0xac6b, 0xac6c, 0xac6d, 0xac6e, 0xac6f, 0xac70, 0xac71, 0xac72, 0xac73, 0xac74, 0xac75, 0xc3d5, 0xac76, 0xac77, 0xac78, 0xac79, 0xac7a, 0xac81, 0xac82, 0xac83, 0xac84, 0xac85, 0xac86, 0xac87, 0xac88, 0xac89, 0xac8a, 0xac8b, 0xac8c, 0xac8d, 0xac8e, 0xac8f, 0xac90, 0xac91, 0xac92, 0xac93, 0xac94, 0xac95, 0xac96, 0xac97, 0xac98, 0xac99, 0xac9a, 0xac9b, 0xac9c, 0xac9d, 0xc3d6, 0xac9e, 0xac9f, 0xaca0, 0xc3d7, 0xad41, 0xad42, 0xad43, 0xc3d8, 0xad44, 0xad45, 0xad46, 0xad47, 0xad48, 0xad49, 0xad4a, 0xc3d9, 0xc3da, 0xad4b, 0xc3db, 0xad4c, 0xc3dc, 0xad4d, 0xad4e, 0xad4f, 0xad50, 0xad51, 0xad52, 0xc3dd, 0xad53, 0xad54, 0xad55, 0xad56, 0xad57, 0xad58, 0xad59, 0xad5a, 0xad61, 0xad62, 0xad63, 0xad64, 0xad65, 0xad66, 0xad67, 0xc3de, 0xad68, 0xad69, 0xad6a, 0xad6b, 0xad6c, 0xad6d, 0xad6e, 0xad6f, 0xad70, 0xad71, 0xad72, 0xc3df, 0xc3e0, 0xad73, 0xad74, 0xc3e1, 0xad75, 0xad76, 0xad77, 0xc3e2, 0xad78, 0xad79, 0xad7a, 0xad81, 0xad82, 0xad83, 0xad84, 0xc3e3, 0xc3e4, 0xad85, 0xc3e5, 0xad86, 0xc3e6, 0xad87, 0xad88, 0xad89, 0xad8a, 0xad8b, 0xad8c, 0xc3e7, 0xad8d, 0xad8e, 0xad8f, 0xad90, 0xad91, 0xad92, 0xad93, 0xad94, 0xad95, 0xad96, 0xad97, 0xad98, 0xad99, 0xad9a, 0xad9b, 0xad9c, 0xad9d, 0xad9e, 0xad9f, 0xc3e8, 0xada0, 0xae41, 0xae42, 0xae43, 0xae44, 0xae45, 0xae46, 0xc3e9, 0xae47, 0xae48, 0xae49, 0xc3ea, 0xae4a, 0xae4b, 0xae4c, 0xae4d, 0xae4e, 0xae4f, 0xae50, 0xae51, 0xae52, 0xae53, 0xae54, 0xae55, 0xae56, 0xae57, 0xae58, 0xae59, 0xae5a, 0xae61, 0xae62, 0xae63, 0xae64, 0xae65, 0xae66, 0xc3eb, 0xae67, 0xae68, 0xae69, 0xc3ec, 0xae6a, 0xae6b, 0xae6c, 0xc3ed, 0xae6d, 0xae6e, 0xae6f, 0xae70, 0xae71, 0xae72, 0xae73, 0xc3ee, 0xc3ef, 0xae74, 0xc3f0, 0xae75, 0xc3f1, 0xae76, 0xae77, /* 0xce00 .. 0xceff */ 0xae78, 0xae79, 0xae7a, 0xae81, 0xc3f2, 0xae82, 0xae83, 0xae84, 0xc3f3, 0xae85, 0xae86, 0xae87, 0xc3f4, 0xae88, 0xae89, 0xae8a, 0xae8b, 0xae8c, 0xae8d, 0xae8e, 0xc3f5, 0xae8f, 0xae90, 0xae91, 0xae92, 0xc3f6, 0xae93, 0xae94, 0xae95, 0xae96, 0xae97, 0xae98, 0xc3f7, 0xc3f8, 0xae99, 0xae9a, 0xc3f9, 0xae9b, 0xae9c, 0xae9d, 0xc3fa, 0xae9e, 0xae9f, 0xaea0, 0xaf41, 0xaf42, 0xaf43, 0xaf44, 0xc3fb, 0xc3fc, 0xaf45, 0xc3fd, 0xaf46, 0xc3fe, 0xaf47, 0xaf48, 0xaf49, 0xaf4a, 0xaf4b, 0xaf4c, 0xaf4d, 0xaf4e, 0xaf4f, 0xaf50, 0xaf51, 0xaf52, 0xaf53, 0xaf54, 0xaf55, 0xaf56, 0xaf57, 0xaf58, 0xaf59, 0xaf5a, 0xaf61, 0xaf62, 0xaf63, 0xaf64, 0xaf65, 0xaf66, 0xaf67, 0xaf68, 0xaf69, 0xaf6a, 0xaf6b, 0xaf6c, 0xaf6d, 0xaf6e, 0xc4a1, 0xc4a2, 0xaf6f, 0xaf70, 0xc4a3, 0xaf71, 0xaf72, 0xc4a4, 0xc4a5, 0xc4a6, 0xaf73, 0xaf74, 0xaf75, 0xaf76, 0xaf77, 0xaf78, 0xc4a7, 0xc4a8, 0xaf79, 0xc4a9, 0xaf7a, 0xc4aa, 0xaf81, 0xaf82, 0xaf83, 0xaf84, 0xaf85, 0xaf86, 0xc4ab, 0xc4ac, 0xaf87, 0xaf88, 0xc4ad, 0xaf89, 0xaf8a, 0xaf8b, 0xc4ae, 0xaf8c, 0xaf8d, 0xaf8e, 0xaf8f, 0xaf90, 0xaf91, 0xaf92, 0xc4af, 0xc4b0, 0xaf93, 0xc4b1, 0xaf94, 0xc4b2, 0xaf95, 0xaf96, 0xaf97, 0xaf98, 0xaf99, 0xaf9a, 0xc4b3, 0xc4b4, 0xaf9b, 0xaf9c, 0xc4b5, 0xaf9d, 0xaf9e, 0xaf9f, 0xc4b6, 0xafa0, 0xb041, 0xb042, 0xb043, 0xb044, 0xb045, 0xb046, 0xc4b7, 0xc4b8, 0xb047, 0xc4b9, 0xc4ba, 0xc4bb, 0xb048, 0xb049, 0xb04a, 0xb04b, 0xb04c, 0xb04d, 0xc4bc, 0xc4bd, 0xb04e, 0xb04f, 0xb050, 0xb051, 0xb052, 0xb053, 0xb054, 0xb055, 0xb056, 0xb057, 0xb058, 0xb059, 0xb05a, 0xb061, 0xb062, 0xb063, 0xb064, 0xb065, 0xb066, 0xc4be, 0xb067, 0xb068, 0xb069, 0xb06a, 0xb06b, 0xb06c, 0xb06d, 0xb06e, 0xb06f, 0xb070, 0xb071, 0xb072, 0xb073, 0xb074, 0xb075, 0xb076, 0xb077, 0xb078, 0xb079, 0xb07a, 0xb081, 0xb082, 0xb083, 0xb084, 0xb085, 0xb086, 0xb087, 0xb088, 0xb089, 0xb08a, 0xb08b, 0xb08c, 0xb08d, 0xb08e, 0xc4bf, 0xc4c0, 0xb08f, 0xb090, 0xc4c1, 0xb091, 0xb092, 0xc4c2, 0xc4c3, 0xb093, 0xb094, 0xb095, 0xb096, 0xb097, 0xb098, 0xb099, 0xc4c4, 0xc4c5, 0xb09a, 0xc4c6, 0xc4c7, 0xc4c8, 0xb09b, 0xb09c, 0xb09d, 0xb09e, 0xb09f, 0xb0a0, /* 0xcf00 .. 0xcfff */ 0xc4c9, 0xc4ca, 0xb141, 0xb142, 0xc4cb, 0xb143, 0xb144, 0xb145, 0xc4cc, 0xb146, 0xb147, 0xb148, 0xb149, 0xb14a, 0xb14b, 0xb14c, 0xc4cd, 0xc4ce, 0xb14d, 0xc4cf, 0xb14e, 0xc4d0, 0xb14f, 0xb150, 0xb151, 0xb152, 0xb153, 0xb154, 0xc4d1, 0xb155, 0xb156, 0xb157, 0xc4d2, 0xb158, 0xb159, 0xb15a, 0xc4d3, 0xb161, 0xb162, 0xb163, 0xb164, 0xb165, 0xb166, 0xb167, 0xc4d4, 0xc4d5, 0xb168, 0xc4d6, 0xc4d7, 0xc4d8, 0xb169, 0xb16a, 0xb16b, 0xb16c, 0xb16d, 0xb16e, 0xc4d9, 0xb16f, 0xb170, 0xb171, 0xb172, 0xb173, 0xb174, 0xb175, 0xb176, 0xb177, 0xb178, 0xb179, 0xb17a, 0xb181, 0xb182, 0xb183, 0xb184, 0xb185, 0xb186, 0xb187, 0xb188, 0xb189, 0xb18a, 0xb18b, 0xb18c, 0xb18d, 0xb18e, 0xb18f, 0xc4da, 0xc4db, 0xb190, 0xb191, 0xc4dc, 0xb192, 0xb193, 0xb194, 0xc4dd, 0xb195, 0xb196, 0xb197, 0xb198, 0xb199, 0xb19a, 0xb19b, 0xc4de, 0xc4df, 0xb19c, 0xc4e0, 0xb19d, 0xc4e1, 0xb19e, 0xb19f, 0xb1a0, 0xb241, 0xb242, 0xb243, 0xc4e2, 0xc4e3, 0xb244, 0xb245, 0xc4e4, 0xb246, 0xb247, 0xb248, 0xc4e5, 0xb249, 0xb24a, 0xb24b, 0xb24c, 0xb24d, 0xb24e, 0xb24f, 0xc4e6, 0xb250, 0xb251, 0xb252, 0xb253, 0xc4e7, 0xb254, 0xb255, 0xb256, 0xb257, 0xb258, 0xb259, 0xc4e8, 0xb25a, 0xb261, 0xb262, 0xb263, 0xb264, 0xb265, 0xb266, 0xb267, 0xb268, 0xb269, 0xb26a, 0xb26b, 0xb26c, 0xb26d, 0xb26e, 0xb26f, 0xb270, 0xb271, 0xb272, 0xb273, 0xc4e9, 0xb274, 0xb275, 0xb276, 0xb277, 0xb278, 0xb279, 0xc4ea, 0xb27a, 0xb281, 0xb282, 0xb283, 0xb284, 0xb285, 0xb286, 0xc4eb, 0xb287, 0xb288, 0xb289, 0xb28a, 0xb28b, 0xb28c, 0xb28d, 0xb28e, 0xb28f, 0xb290, 0xb291, 0xb292, 0xb293, 0xb294, 0xb295, 0xb296, 0xb297, 0xb298, 0xb299, 0xc4ec, 0xb29a, 0xb29b, 0xb29c, 0xb29d, 0xb29e, 0xb29f, 0xb2a0, 0xb341, 0xb342, 0xb343, 0xb344, 0xb345, 0xb346, 0xb347, 0xb348, 0xb349, 0xb34a, 0xb34b, 0xb34c, 0xb34d, 0xb34e, 0xb34f, 0xb350, 0xb351, 0xb352, 0xb353, 0xb354, 0xc4ed, 0xc4ee, 0xb355, 0xb356, 0xc4ef, 0xb357, 0xb358, 0xb359, 0xc4f0, 0xb35a, 0xb361, 0xb362, 0xb363, 0xb364, 0xb365, 0xb366, 0xc4f1, 0xc4f2, 0xb367, 0xc4f3, 0xb368, 0xc4f4, 0xb369, 0xb36a, 0xb36b, 0xb36c, 0xb36d, 0xb36e, 0xc4f5, 0xb36f, 0xb370, 0xb371, /* 0xd000 .. 0xd0ff */ 0xc4f6, 0xb372, 0xb373, 0xb374, 0xc4f7, 0xb375, 0xb376, 0xb377, 0xb378, 0xb379, 0xb37a, 0xb381, 0xb382, 0xb383, 0xb384, 0xb385, 0xb386, 0xc4f8, 0xb387, 0xb388, 0xb389, 0xb38a, 0xb38b, 0xb38c, 0xc4f9, 0xb38d, 0xb38e, 0xb38f, 0xb390, 0xb391, 0xb392, 0xb393, 0xb394, 0xb395, 0xb396, 0xb397, 0xb398, 0xb399, 0xb39a, 0xb39b, 0xb39c, 0xb39d, 0xb39e, 0xb39f, 0xb3a0, 0xc4fa, 0xb441, 0xb442, 0xb443, 0xb444, 0xb445, 0xb446, 0xc4fb, 0xc4fc, 0xb447, 0xb448, 0xc4fd, 0xb449, 0xb44a, 0xb44b, 0xc4fe, 0xb44c, 0xb44d, 0xb44e, 0xb44f, 0xb450, 0xb451, 0xb452, 0xc5a1, 0xc5a2, 0xb453, 0xc5a3, 0xb454, 0xc5a4, 0xb455, 0xb456, 0xb457, 0xb458, 0xb459, 0xb45a, 0xc5a5, 0xb461, 0xb462, 0xb463, 0xc5a6, 0xb464, 0xb465, 0xb466, 0xc5a7, 0xb467, 0xb468, 0xb469, 0xb46a, 0xb46b, 0xb46c, 0xb46d, 0xc5a8, 0xb46e, 0xb46f, 0xb470, 0xb471, 0xb472, 0xb473, 0xb474, 0xb475, 0xb476, 0xb477, 0xb478, 0xc5a9, 0xc5aa, 0xb479, 0xb47a, 0xc5ab, 0xb481, 0xb482, 0xb483, 0xc5ac, 0xb484, 0xb485, 0xb486, 0xb487, 0xb488, 0xb489, 0xb48a, 0xc5ad, 0xc5ae, 0xb48b, 0xb48c, 0xb48d, 0xc5af, 0xb48e, 0xb48f, 0xb490, 0xb491, 0xb492, 0xb493, 0xb494, 0xb495, 0xb496, 0xb497, 0xb498, 0xb499, 0xb49a, 0xb49b, 0xb49c, 0xb49d, 0xb49e, 0xb49f, 0xb4a0, 0xb541, 0xb542, 0xb543, 0xb544, 0xb545, 0xb546, 0xb547, 0xb548, 0xb549, 0xb54a, 0xb54b, 0xb54c, 0xb54d, 0xb54e, 0xb54f, 0xc5b0, 0xc5b1, 0xb550, 0xb551, 0xc5b2, 0xb552, 0xb553, 0xb554, 0xc5b3, 0xb555, 0xb556, 0xb557, 0xb558, 0xb559, 0xb55a, 0xb561, 0xc5b4, 0xc5b5, 0xb562, 0xc5b6, 0xb563, 0xc5b7, 0xb564, 0xb565, 0xb566, 0xb567, 0xb568, 0xb569, 0xc5b8, 0xc5b9, 0xb56a, 0xb56b, 0xc5ba, 0xb56c, 0xb56d, 0xb56e, 0xc5bb, 0xc5bc, 0xb56f, 0xb570, 0xb571, 0xb572, 0xb573, 0xb574, 0xc5bd, 0xc5be, 0xb575, 0xc5bf, 0xc5c0, 0xc5c1, 0xb576, 0xb577, 0xb578, 0xb579, 0xb57a, 0xb581, 0xc5c2, 0xc5c3, 0xb582, 0xb583, 0xc5c4, 0xb584, 0xb585, 0xb586, 0xc5c5, 0xb587, 0xb588, 0xb589, 0xb58a, 0xb58b, 0xb58c, 0xb58d, 0xc5c6, 0xc5c7, 0xb58e, 0xc5c8, 0xc5c9, 0xc5ca, 0xb58f, 0xb590, 0xb591, 0xb592, 0xb593, 0xb594, 0xc5cb, 0xb595, 0xb596, 0xb597, 0xb598, 0xb599, 0xb59a, 0xb59b, /* 0xd100 .. 0xd1ff */ 0xb59c, 0xb59d, 0xb59e, 0xb59f, 0xb5a0, 0xb641, 0xb642, 0xb643, 0xb644, 0xb645, 0xb646, 0xb647, 0xb648, 0xc5cc, 0xb649, 0xb64a, 0xb64b, 0xb64c, 0xb64d, 0xb64e, 0xb64f, 0xb650, 0xb651, 0xb652, 0xb653, 0xb654, 0xb655, 0xb656, 0xb657, 0xb658, 0xb659, 0xb65a, 0xb661, 0xb662, 0xb663, 0xb664, 0xb665, 0xb666, 0xb667, 0xb668, 0xb669, 0xb66a, 0xb66b, 0xb66c, 0xb66d, 0xb66e, 0xb66f, 0xb670, 0xc5cd, 0xc5ce, 0xb671, 0xb672, 0xc5cf, 0xb673, 0xb674, 0xb675, 0xc5d0, 0xb676, 0xc5d1, 0xb677, 0xb678, 0xb679, 0xb67a, 0xb681, 0xc5d2, 0xc5d3, 0xb682, 0xc5d4, 0xc5d5, 0xc5d6, 0xb683, 0xb684, 0xb685, 0xb686, 0xb687, 0xb688, 0xc5d7, 0xc5d8, 0xb689, 0xb68a, 0xc5d9, 0xb68b, 0xb68c, 0xb68d, 0xc5da, 0xb68e, 0xb68f, 0xb690, 0xb691, 0xb692, 0xb693, 0xb694, 0xc5db, 0xc5dc, 0xb695, 0xc5dd, 0xb696, 0xc5de, 0xb697, 0xb698, 0xb699, 0xb69a, 0xb69b, 0xb69c, 0xc5df, 0xb69d, 0xb69e, 0xb69f, 0xc5e0, 0xb6a0, 0xb741, 0xb742, 0xb743, 0xb744, 0xb745, 0xb746, 0xb747, 0xb748, 0xb749, 0xb74a, 0xb74b, 0xb74c, 0xb74d, 0xb74e, 0xc5e1, 0xb74f, 0xb750, 0xb751, 0xb752, 0xb753, 0xb754, 0xb755, 0xc5e2, 0xb756, 0xb757, 0xb758, 0xc5e3, 0xb759, 0xb75a, 0xb761, 0xb762, 0xb763, 0xb764, 0xb765, 0xb766, 0xb767, 0xb768, 0xb769, 0xb76a, 0xb76b, 0xb76c, 0xb76d, 0xb76e, 0xb76f, 0xb770, 0xb771, 0xb772, 0xb773, 0xb774, 0xb775, 0xc5e4, 0xc5e5, 0xb776, 0xb777, 0xc5e6, 0xb778, 0xb779, 0xb77a, 0xc5e7, 0xb781, 0xb782, 0xb783, 0xb784, 0xb785, 0xb786, 0xb787, 0xc5e8, 0xc5e9, 0xb788, 0xc5ea, 0xb789, 0xc5eb, 0xb78a, 0xb78b, 0xb78c, 0xb78d, 0xc5ec, 0xb78e, 0xc5ed, 0xb78f, 0xb790, 0xb791, 0xc5ee, 0xb792, 0xb793, 0xb794, 0xb795, 0xb796, 0xb797, 0xb798, 0xb799, 0xb79a, 0xb79b, 0xb79c, 0xb79d, 0xb79e, 0xb79f, 0xb7a0, 0xb841, 0xb842, 0xb843, 0xb844, 0xb845, 0xb846, 0xb847, 0xb848, 0xc5ef, 0xb849, 0xb84a, 0xb84b, 0xb84c, 0xb84d, 0xb84e, 0xb84f, 0xb850, 0xb851, 0xb852, 0xb853, 0xb854, 0xb855, 0xb856, 0xb857, 0xb858, 0xb859, 0xb85a, 0xb861, 0xb862, 0xb863, 0xb864, 0xb865, 0xb866, 0xb867, 0xb868, 0xb869, 0xc5f0, 0xb86a, 0xb86b, 0xb86c, 0xc5f1, 0xb86d, 0xb86e, 0xb86f, 0xb870, 0xb871, 0xb872, 0xb873, /* 0xd200 .. 0xd2ff */ 0xb874, 0xb875, 0xb876, 0xb877, 0xb878, 0xb879, 0xb87a, 0xc5f2, 0xb881, 0xc5f3, 0xb882, 0xb883, 0xb884, 0xb885, 0xb886, 0xb887, 0xc5f4, 0xb888, 0xb889, 0xb88a, 0xb88b, 0xb88c, 0xb88d, 0xb88e, 0xb88f, 0xb890, 0xb891, 0xb892, 0xb893, 0xb894, 0xb895, 0xb896, 0xb897, 0xb898, 0xb899, 0xb89a, 0xb89b, 0xb89c, 0xb89d, 0xb89e, 0xb89f, 0xb8a0, 0xb941, 0xb942, 0xc5f5, 0xc5f6, 0xb943, 0xb944, 0xc5f7, 0xb945, 0xb946, 0xb947, 0xc5f8, 0xb948, 0xb949, 0xb94a, 0xb94b, 0xb94c, 0xb94d, 0xb94e, 0xc5f9, 0xc5fa, 0xb94f, 0xc5fb, 0xb950, 0xc5fc, 0xb951, 0xb952, 0xb953, 0xb954, 0xb955, 0xb956, 0xc5fd, 0xb957, 0xb958, 0xb959, 0xb95a, 0xb961, 0xb962, 0xb963, 0xb964, 0xb965, 0xb966, 0xb967, 0xb968, 0xb969, 0xb96a, 0xb96b, 0xb96c, 0xb96d, 0xb96e, 0xb96f, 0xc5fe, 0xb970, 0xb971, 0xb972, 0xb973, 0xb974, 0xb975, 0xb976, 0xc6a1, 0xb977, 0xb978, 0xb979, 0xb97a, 0xb981, 0xb982, 0xb983, 0xb984, 0xb985, 0xb986, 0xb987, 0xb988, 0xb989, 0xb98a, 0xb98b, 0xb98c, 0xb98d, 0xb98e, 0xb98f, 0xb990, 0xb991, 0xb992, 0xb993, 0xb994, 0xb995, 0xb996, 0xb997, 0xc6a2, 0xc6a3, 0xb998, 0xb999, 0xc6a4, 0xb99a, 0xb99b, 0xb99c, 0xc6a5, 0xb99d, 0xb99e, 0xb99f, 0xb9a0, 0xba41, 0xba42, 0xba43, 0xc6a6, 0xc6a7, 0xba44, 0xba45, 0xba46, 0xc6a8, 0xba47, 0xba48, 0xba49, 0xba4a, 0xba4b, 0xba4c, 0xc6a9, 0xba4d, 0xba4e, 0xba4f, 0xc6aa, 0xba50, 0xba51, 0xba52, 0xc6ab, 0xba53, 0xba54, 0xba55, 0xba56, 0xba57, 0xba58, 0xba59, 0xc6ac, 0xba5a, 0xba61, 0xba62, 0xba63, 0xc6ad, 0xba64, 0xba65, 0xba66, 0xba67, 0xba68, 0xba69, 0xc6ae, 0xc6af, 0xba6a, 0xba6b, 0xc6b0, 0xba6c, 0xba6d, 0xc6b1, 0xc6b2, 0xba6e, 0xc6b3, 0xba6f, 0xba70, 0xba71, 0xba72, 0xba73, 0xc6b4, 0xc6b5, 0xba74, 0xc6b6, 0xba75, 0xba76, 0xba77, 0xba78, 0xba79, 0xba7a, 0xba81, 0xba82, 0xc6b7, 0xba83, 0xba84, 0xba85, 0xc6b8, 0xba86, 0xba87, 0xba88, 0xc6b9, 0xba89, 0xba8a, 0xba8b, 0xba8c, 0xba8d, 0xba8e, 0xba8f, 0xc6ba, 0xc6bb, 0xba90, 0xba91, 0xba92, 0xba93, 0xba94, 0xba95, 0xba96, 0xba97, 0xba98, 0xba99, 0xc6bc, 0xc6bd, 0xba9a, 0xba9b, 0xc6be, 0xba9c, 0xba9d, 0xba9e, 0xc6bf, 0xba9f, 0xbaa0, 0xbb41, 0xbb42, 0xbb43, 0xbb44, 0xbb45, /* 0xd300 .. 0xd3ff */ 0xc6c0, 0xc6c1, 0xbb46, 0xc6c2, 0xbb47, 0xc6c3, 0xbb48, 0xbb49, 0xbb4a, 0xbb4b, 0xbb4c, 0xbb4d, 0xc6c4, 0xc6c5, 0xc6c6, 0xbb4e, 0xc6c7, 0xbb4f, 0xbb50, 0xbb51, 0xc6c8, 0xbb52, 0xc6c9, 0xbb53, 0xbb54, 0xbb55, 0xbb56, 0xbb57, 0xc6ca, 0xc6cb, 0xbb58, 0xc6cc, 0xc6cd, 0xc6ce, 0xbb59, 0xbb5a, 0xbb61, 0xc6cf, 0xbb62, 0xbb63, 0xc6d0, 0xc6d1, 0xbb64, 0xbb65, 0xc6d2, 0xbb66, 0xbb67, 0xbb68, 0xc6d3, 0xbb69, 0xbb6a, 0xbb6b, 0xbb6c, 0xbb6d, 0xbb6e, 0xbb6f, 0xc6d4, 0xc6d5, 0xbb70, 0xc6d6, 0xc6d7, 0xc6d8, 0xbb71, 0xbb72, 0xbb73, 0xbb74, 0xbb75, 0xbb76, 0xc6d9, 0xc6da, 0xbb77, 0xbb78, 0xbb79, 0xbb7a, 0xbb81, 0xbb82, 0xbb83, 0xbb84, 0xbb85, 0xbb86, 0xbb87, 0xbb88, 0xbb89, 0xbb8a, 0xbb8b, 0xbb8c, 0xbb8d, 0xbb8e, 0xbb8f, 0xbb90, 0xbb91, 0xbb92, 0xbb93, 0xbb94, 0xbb95, 0xbb96, 0xbb97, 0xbb98, 0xbb99, 0xbb9a, 0xbb9b, 0xbb9c, 0xbb9d, 0xbb9e, 0xbb9f, 0xbba0, 0xbc41, 0xbc42, 0xbc43, 0xbc44, 0xbc45, 0xbc46, 0xbc47, 0xbc48, 0xbc49, 0xbc4a, 0xbc4b, 0xbc4c, 0xbc4d, 0xbc4e, 0xbc4f, 0xbc50, 0xbc51, 0xbc52, 0xc6db, 0xc6dc, 0xbc53, 0xbc54, 0xc6dd, 0xbc55, 0xbc56, 0xbc57, 0xc6de, 0xbc58, 0xbc59, 0xbc5a, 0xbc61, 0xbc62, 0xbc63, 0xbc64, 0xc6df, 0xc6e0, 0xbc65, 0xc6e1, 0xc6e2, 0xc6e3, 0xbc66, 0xbc67, 0xbc68, 0xbc69, 0xbc6a, 0xbc6b, 0xc6e4, 0xc6e5, 0xbc6c, 0xbc6d, 0xc6e6, 0xbc6e, 0xbc6f, 0xbc70, 0xc6e7, 0xbc71, 0xbc72, 0xbc73, 0xbc74, 0xbc75, 0xbc76, 0xbc77, 0xc6e8, 0xc6e9, 0xbc78, 0xc6ea, 0xbc79, 0xc6eb, 0xbc7a, 0xbc81, 0xbc82, 0xbc83, 0xbc84, 0xbc85, 0xc6ec, 0xbc86, 0xbc87, 0xbc88, 0xc6ed, 0xbc89, 0xbc8a, 0xbc8b, 0xc6ee, 0xbc8c, 0xbc8d, 0xbc8e, 0xbc8f, 0xbc90, 0xbc91, 0xbc92, 0xc6ef, 0xc6f0, 0xbc93, 0xbc94, 0xc6f1, 0xc6f2, 0xbc95, 0xbc96, 0xbc97, 0xbc98, 0xbc99, 0xbc9a, 0xc6f3, 0xbc9b, 0xbc9c, 0xbc9d, 0xbc9e, 0xbc9f, 0xbca0, 0xbd41, 0xc6f4, 0xbd42, 0xbd43, 0xbd44, 0xbd45, 0xbd46, 0xbd47, 0xbd48, 0xbd49, 0xc6f5, 0xbd4a, 0xc6f6, 0xbd4b, 0xbd4c, 0xbd4d, 0xbd4e, 0xbd4f, 0xbd50, 0xbd51, 0xbd52, 0xc6f7, 0xc6f8, 0xbd53, 0xbd54, 0xc6f9, 0xbd55, 0xbd56, 0xbd57, 0xc6fa, 0xbd58, 0xbd59, 0xbd5a, 0xbd61, 0xbd62, 0xbd63, 0xbd64, 0xc6fb, 0xc6fc, 0xbd65, 0xc6fd, /* 0xd400 .. 0xd4ff */ 0xbd66, 0xc6fe, 0xbd67, 0xbd68, 0xbd69, 0xbd6a, 0xbd6b, 0xbd6c, 0xc7a1, 0xbd6d, 0xbd6e, 0xbd6f, 0xbd70, 0xbd71, 0xbd72, 0xbd73, 0xbd74, 0xbd75, 0xbd76, 0xbd77, 0xbd78, 0xbd79, 0xbd7a, 0xbd81, 0xbd82, 0xbd83, 0xbd84, 0xbd85, 0xbd86, 0xc7a2, 0xbd87, 0xbd88, 0xbd89, 0xbd8a, 0xbd8b, 0xbd8c, 0xbd8d, 0xbd8e, 0xbd8f, 0xbd90, 0xbd91, 0xbd92, 0xbd93, 0xbd94, 0xbd95, 0xbd96, 0xbd97, 0xbd98, 0xbd99, 0xbd9a, 0xbd9b, 0xbd9c, 0xbd9d, 0xbd9e, 0xbd9f, 0xbda0, 0xbe41, 0xbe42, 0xbe43, 0xbe44, 0xbe45, 0xbe46, 0xbe47, 0xbe48, 0xc7a3, 0xbe49, 0xbe4a, 0xbe4b, 0xc7a4, 0xbe4c, 0xbe4d, 0xbe4e, 0xbe4f, 0xbe50, 0xbe51, 0xbe52, 0xbe53, 0xbe54, 0xbe55, 0xbe56, 0xbe57, 0xbe58, 0xbe59, 0xbe5a, 0xbe61, 0xbe62, 0xbe63, 0xbe64, 0xbe65, 0xbe66, 0xbe67, 0xbe68, 0xc7a5, 0xbe69, 0xbe6a, 0xbe6b, 0xc7a6, 0xbe6c, 0xbe6d, 0xbe6e, 0xc7a7, 0xbe6f, 0xbe70, 0xbe71, 0xbe72, 0xbe73, 0xbe74, 0xbe75, 0xbe76, 0xc7a8, 0xbe77, 0xc7a9, 0xbe78, 0xbe79, 0xbe7a, 0xbe81, 0xbe82, 0xbe83, 0xbe84, 0xbe85, 0xc7aa, 0xc7ab, 0xbe86, 0xbe87, 0xc7ac, 0xbe88, 0xbe89, 0xc7ad, 0xc7ae, 0xbe8a, 0xc7af, 0xbe8b, 0xbe8c, 0xbe8d, 0xbe8e, 0xbe8f, 0xc7b0, 0xc7b1, 0xbe90, 0xc7b2, 0xbe91, 0xc7b3, 0xbe92, 0xbe93, 0xbe94, 0xbe95, 0xbe96, 0xbe97, 0xc7b4, 0xbe98, 0xbe99, 0xbe9a, 0xbe9b, 0xbe9c, 0xbe9d, 0xbe9e, 0xbe9f, 0xbea0, 0xbf41, 0xbf42, 0xbf43, 0xbf44, 0xbf45, 0xbf46, 0xbf47, 0xbf48, 0xbf49, 0xbf4a, 0xbf4b, 0xc7b5, 0xbf4c, 0xbf4d, 0xbf4e, 0xbf4f, 0xbf50, 0xbf51, 0xbf52, 0xbf53, 0xbf54, 0xbf55, 0xbf56, 0xbf57, 0xbf58, 0xbf59, 0xbf5a, 0xbf61, 0xbf62, 0xbf63, 0xbf64, 0xbf65, 0xbf66, 0xbf67, 0xbf68, 0xbf69, 0xbf6a, 0xbf6b, 0xbf6c, 0xbf6d, 0xbf6e, 0xbf6f, 0xbf70, 0xbf71, 0xbf72, 0xbf73, 0xc7b6, 0xbf74, 0xbf75, 0xbf76, 0xc7b7, 0xbf77, 0xbf78, 0xbf79, 0xc7b8, 0xbf7a, 0xbf81, 0xbf82, 0xbf83, 0xbf84, 0xbf85, 0xbf86, 0xc7b9, 0xbf87, 0xbf88, 0xc7ba, 0xbf89, 0xbf8a, 0xbf8b, 0xbf8c, 0xbf8d, 0xbf8e, 0xbf8f, 0xbf90, 0xc7bb, 0xbf91, 0xbf92, 0xbf93, 0xc7bc, 0xbf94, 0xbf95, 0xbf96, 0xc7bd, 0xbf97, 0xbf98, 0xbf99, 0xbf9a, 0xbf9b, 0xbf9c, 0xbf9d, 0xc7be, 0xbf9e, 0xbf9f, 0xc7bf, 0xbfa0, 0xc7c0, 0xc041, 0xc042, /* 0xd500 .. 0xd5ff */ 0xc043, 0xc044, 0xc045, 0xc046, 0xc7c1, 0xc047, 0xc048, 0xc049, 0xc7c2, 0xc04a, 0xc04b, 0xc04c, 0xc7c3, 0xc04d, 0xc04e, 0xc04f, 0xc050, 0xc051, 0xc052, 0xc053, 0xc7c4, 0xc7c5, 0xc054, 0xc7c6, 0xc055, 0xc056, 0xc057, 0xc058, 0xc059, 0xc05a, 0xc061, 0xc062, 0xc063, 0xc064, 0xc065, 0xc066, 0xc067, 0xc068, 0xc069, 0xc06a, 0xc06b, 0xc06c, 0xc06d, 0xc06e, 0xc06f, 0xc070, 0xc071, 0xc072, 0xc073, 0xc074, 0xc075, 0xc076, 0xc077, 0xc078, 0xc079, 0xc07a, 0xc081, 0xc082, 0xc083, 0xc084, 0xc7c7, 0xc7c8, 0xc085, 0xc086, 0xc7c9, 0xc087, 0xc088, 0xc089, 0xc7ca, 0xc08a, 0xc08b, 0xc08c, 0xc08d, 0xc08e, 0xc08f, 0xc090, 0xc7cb, 0xc7cc, 0xc091, 0xc7cd, 0xc092, 0xc7ce, 0xc093, 0xc094, 0xc095, 0xc096, 0xc097, 0xc098, 0xc7cf, 0xc7d0, 0xc099, 0xc09a, 0xc7d1, 0xc09b, 0xc09c, 0xc09d, 0xc7d2, 0xc09e, 0xc09f, 0xc0a0, 0xc141, 0xc7d3, 0xc142, 0xc143, 0xc7d4, 0xc7d5, 0xc144, 0xc7d6, 0xc145, 0xc7d7, 0xc146, 0xc147, 0xc148, 0xc149, 0xc14a, 0xc14b, 0xc7d8, 0xc7d9, 0xc14c, 0xc14d, 0xc7da, 0xc14e, 0xc14f, 0xc150, 0xc7db, 0xc151, 0xc152, 0xc153, 0xc154, 0xc155, 0xc156, 0xc157, 0xc7dc, 0xc7dd, 0xc158, 0xc7de, 0xc7df, 0xc7e0, 0xc159, 0xc15a, 0xc161, 0xc162, 0xc163, 0xc164, 0xc7e1, 0xc165, 0xc166, 0xc167, 0xc168, 0xc169, 0xc16a, 0xc16b, 0xc16c, 0xc16d, 0xc16e, 0xc16f, 0xc170, 0xc171, 0xc172, 0xc173, 0xc174, 0xc175, 0xc176, 0xc177, 0xc178, 0xc7e2, 0xc179, 0xc17a, 0xc181, 0xc182, 0xc183, 0xc184, 0xc185, 0xc186, 0xc187, 0xc188, 0xc189, 0xc18a, 0xc18b, 0xc18c, 0xc18d, 0xc18e, 0xc18f, 0xc190, 0xc191, 0xc192, 0xc193, 0xc194, 0xc195, 0xc196, 0xc197, 0xc198, 0xc199, 0xc19a, 0xc19b, 0xc19c, 0xc19d, 0xc19e, 0xc19f, 0xc1a0, 0xc7e3, 0xc7e4, 0xc241, 0xc242, 0xc7e5, 0xc243, 0xc244, 0xc245, 0xc7e6, 0xc246, 0xc7e7, 0xc247, 0xc248, 0xc249, 0xc24a, 0xc24b, 0xc7e8, 0xc7e9, 0xc24c, 0xc7ea, 0xc24d, 0xc7eb, 0xc24e, 0xc24f, 0xc250, 0xc251, 0xc252, 0xc253, 0xc7ec, 0xc7ed, 0xc254, 0xc255, 0xc7ee, 0xc256, 0xc257, 0xc258, 0xc7ef, 0xc259, 0xc25a, 0xc261, 0xc262, 0xc263, 0xc264, 0xc265, 0xc7f0, 0xc7f1, 0xc266, 0xc7f2, 0xc267, 0xc7f3, 0xc268, 0xc269, 0xc26a, 0xc26b, 0xc26c, 0xc26d, /* 0xd600 .. 0xd6ff */ 0xc7f4, 0xc7f5, 0xc26e, 0xc26f, 0xc7f6, 0xc270, 0xc271, 0xc272, 0xc7f7, 0xc273, 0xc274, 0xc275, 0xc276, 0xc277, 0xc278, 0xc279, 0xc7f8, 0xc7f9, 0xc27a, 0xc7fa, 0xc7fb, 0xc7fc, 0xc281, 0xc282, 0xc283, 0xc284, 0xc285, 0xc286, 0xc7fd, 0xc287, 0xc288, 0xc289, 0xc7fe, 0xc28a, 0xc28b, 0xc28c, 0xc8a1, 0xc28d, 0xc28e, 0xc28f, 0xc290, 0xc291, 0xc292, 0xc293, 0xc294, 0xc8a2, 0xc295, 0xc296, 0xc297, 0xc298, 0xc299, 0xc29a, 0xc29b, 0xc29c, 0xc29d, 0xc29e, 0xc8a3, 0xc8a4, 0xc29f, 0xc2a0, 0xc8a5, 0xc341, 0xc342, 0xc343, 0xc8a6, 0xc344, 0xc345, 0xc346, 0xc347, 0xc8a7, 0xc348, 0xc349, 0xc8a8, 0xc8a9, 0xc34a, 0xc8aa, 0xc34b, 0xc8ab, 0xc34c, 0xc34d, 0xc34e, 0xc8ac, 0xc34f, 0xc350, 0xc8ad, 0xc8ae, 0xc351, 0xc352, 0xc8af, 0xc353, 0xc354, 0xc355, 0xc8b0, 0xc356, 0xc357, 0xc358, 0xc359, 0xc35a, 0xc361, 0xc362, 0xc363, 0xc364, 0xc365, 0xc8b1, 0xc366, 0xc8b2, 0xc367, 0xc368, 0xc369, 0xc36a, 0xc36b, 0xc36c, 0xc8b3, 0xc8b4, 0xc36d, 0xc36e, 0xc8b5, 0xc36f, 0xc370, 0xc371, 0xc372, 0xc373, 0xc374, 0xc375, 0xc376, 0xc377, 0xc378, 0xc379, 0xc37a, 0xc381, 0xc382, 0xc8b6, 0xc383, 0xc8b7, 0xc384, 0xc385, 0xc386, 0xc387, 0xc388, 0xc389, 0xc8b8, 0xc8b9, 0xc38a, 0xc38b, 0xc8ba, 0xc38c, 0xc38d, 0xc38e, 0xc8bb, 0xc38f, 0xc390, 0xc391, 0xc392, 0xc393, 0xc394, 0xc395, 0xc396, 0xc8bc, 0xc397, 0xc8bd, 0xc398, 0xc8be, 0xc399, 0xc39a, 0xc39b, 0xc39c, 0xc39d, 0xc39e, 0xc8bf, 0xc39f, 0xc3a0, 0xc441, 0xc8c0, 0xc442, 0xc443, 0xc444, 0xc8c1, 0xc445, 0xc446, 0xc447, 0xc448, 0xc449, 0xc44a, 0xc44b, 0xc44c, 0xc8c2, 0xc44d, 0xc8c3, 0xc44e, 0xc44f, 0xc450, 0xc451, 0xc452, 0xc453, 0xc454, 0xc455, 0xc8c4, 0xc8c5, 0xc456, 0xc457, 0xc8c6, 0xc458, 0xc459, 0xc45a, 0xc8c7, 0xc461, 0xc462, 0xc463, 0xc464, 0xc8c8, 0xc465, 0xc466, 0xc8c9, 0xc467, 0xc468, 0xc8ca, 0xc469, 0xc8cb, 0xc46a, 0xc46b, 0xc46c, 0xc46d, 0xc46e, 0xc46f, 0xc8cc, 0xc470, 0xc471, 0xc472, 0xc8cd, 0xc473, 0xc474, 0xc475, 0xc8ce, 0xc476, 0xc477, 0xc478, 0xc479, 0xc47a, 0xc481, 0xc482, 0xc8cf, 0xc483, 0xc484, 0xc485, 0xc486, 0xc8d0, 0xc487, 0xc488, 0xc489, 0xc48a, 0xc48b, 0xc48c, 0xc8d1, 0xc8d2, 0xc48d, 0xc48e, /* 0xd700 .. 0xd7ff */ 0xc8d3, 0xc48f, 0xc490, 0xc491, 0xc8d4, 0xc492, 0xc493, 0xc494, 0xc495, 0xc496, 0xc497, 0xc498, 0xc499, 0xc49a, 0xc49b, 0xc49c, 0xc49d, 0xc8d5, 0xc49e, 0xc49f, 0xc4a0, 0xc541, 0xc542, 0xc543, 0xc8d6, 0xc8d7, 0xc544, 0xc545, 0xc8d8, 0xc546, 0xc547, 0xc548, 0xc8d9, 0xc549, 0xc54a, 0xc54b, 0xc54c, 0xc54d, 0xc54e, 0xc54f, 0xc8da, 0xc8db, 0xc550, 0xc8dc, 0xc551, 0xc8dd, 0xc552, 0xc553, 0xc554, 0xc555, 0xc556, 0xc557, 0xc8de, 0xc8df, 0xc558, 0xc559, 0xc8e0, 0xc55a, 0xc561, 0xc562, 0xc8e1, 0xc563, 0xc564, 0xc565, 0xc566, 0xc567, 0xc568, 0xc569, 0xc8e2, 0xc56a, 0xc56b, 0xc8e3, 0xc56c, 0xc8e4, 0xc56d, 0xc56e, 0xc56f, 0xc570, 0xc571, 0xc572, 0xc8e5, 0xc8e6, 0xc573, 0xc574, 0xc8e7, 0xc575, 0xc8e8, 0xc8e9, 0xc8ea, 0xc8eb, 0xc576, 0xc577, 0xc578, 0xc579, 0xc57a, 0xc581, 0xc8ec, 0xc8ed, 0xc582, 0xc8ee, 0xc583, 0xc8ef, 0xc584, 0xc585, 0xc586, 0xc8f0, 0xc587, 0xc588, 0xc8f1, 0xc589, 0xc58a, 0xc58b, 0xc8f2, 0xc58c, 0xc58d, 0xc58e, 0xc8f3, 0xc58f, 0xc590, 0xc591, 0xc592, 0xc593, 0xc594, 0xc595, 0xc8f4, 0xc8f5, 0xc596, 0xc597, 0xc598, 0xc8f6, 0xc599, 0xc59a, 0xc59b, 0xc59c, 0xc59d, 0xc59e, 0xc8f7, 0xc8f8, 0xc59f, 0xc5a0, 0xc8f9, 0xc641, 0xc642, 0xc643, 0xc8fa, 0xc644, 0xc645, 0xc646, 0xc647, 0xc648, 0xc649, 0xc64a, 0xc8fb, 0xc8fc, 0xc64b, 0xc8fd, 0xc64c, 0xc8fe, 0xc64d, 0xc64e, 0xc64f, 0xc650, 0xc651, 0xc652, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xf900 .. 0xf9ff */ 0xcbd0, 0xcbd6, 0xcbe7, 0xcdcf, 0xcde8, 0xcead, 0xcffb, 0xd0a2, 0xd0b8, 0xd0d0, 0xd0dd, 0xd1d4, 0xd1d5, 0xd1d8, 0xd1db, 0xd1dc, 0xd1dd, 0xd1de, 0xd1df, 0xd1e0, 0xd1e2, 0xd1e3, 0xd1e4, 0xd1e5, 0xd1e6, 0xd1e8, 0xd1e9, 0xd1ea, 0xd1eb, 0xd1ed, 0xd1ef, 0xd1f0, 0xd1f2, 0xd1f6, 0xd1fa, 0xd1fc, 0xd1fd, 0xd1fe, 0xd2a2, 0xd2a3, 0xd2a7, 0xd2a8, 0xd2a9, 0xd2aa, 0xd2ab, 0xd2ad, 0xd2b2, 0xd2be, 0xd2c2, 0xd2c3, 0xd2c4, 0xd2c6, 0xd2c7, 0xd2c8, 0xd2c9, 0xd2ca, 0xd2cb, 0xd2cd, 0xd2ce, 0xd2cf, 0xd2d0, 0xd2d1, 0xd2d2, 0xd2d3, 0xd2d4, 0xd2d5, 0xd2d6, 0xd2d7, 0xd2d9, 0xd2da, 0xd2de, 0xd2df, 0xd2e1, 0xd2e2, 0xd2e4, 0xd2e5, 0xd2e6, 0xd2e7, 0xd2e8, 0xd2e9, 0xd2ea, 0xd2eb, 0xd2f0, 0xd2f1, 0xd2f2, 0xd2f3, 0xd2f4, 0xd2f5, 0xd2f7, 0xd2f8, 0xd4e6, 0xd4fc, 0xd5a5, 0xd5ab, 0xd5ae, 0xd6b8, 0xd6cd, 0xd7cb, 0xd7e4, 0xdbc5, 0xdbe4, 0xdca5, 0xdda5, 0xddd5, 0xddf4, 0xdefc, 0xdefe, 0xdfb3, 0xdfe1, 0xdfe8, 0xe0f1, 0xe1ad, 0xe1ed, 0xe3f5, 0xe4a1, 0xe4a9, 0xe5ae, 0xe5b1, 0xe5b2, 0xe5b9, 0xe5bb, 0xe5bc, 0xe5c4, 0xe5ce, 0xe5d0, 0xe5d2, 0xe5d6, 0xe5fa, 0xe5fb, 0xe5fc, 0xe5fe, 0xe6a1, 0xe6a4, 0xe6a7, 0xe6ad, 0xe6af, 0xe6b0, 0xe6b1, 0xe6b3, 0xe6b7, 0xe6b8, 0xe6bc, 0xe6c4, 0xe6c6, 0xe6c7, 0xe6ca, 0xe6d2, 0xe6d6, 0xe6d9, 0xe6dc, 0xe6df, 0xe6e1, 0xe6e4, 0xe6e5, 0xe6e6, 0xe6e8, 0xe6ea, 0xe6eb, 0xe6ec, 0xe6ef, 0xe6f1, 0xe6f2, 0xe6f5, 0xe6f6, 0xe6f7, 0xe6f9, 0xe7a1, 0xe7a6, 0xe7a9, 0xe7aa, 0xe7ac, 0xe7ad, 0xe7b0, 0xe7bf, 0xe7c1, 0xe7c6, 0xe7c7, 0xe7cb, 0xe7cd, 0xe7cf, 0xe7d0, 0xe7d3, 0xe7df, 0xe7e4, 0xe7e6, 0xe7f7, 0xe8e7, 0xe8e8, 0xe8f0, 0xe8f1, 0xe8f7, 0xe8f9, 0xe8fb, 0xe8fe, 0xe9a7, 0xe9ac, 0xe9cc, 0xe9f7, 0xeac1, 0xeae5, 0xeaf4, 0xeaf7, 0xeafc, 0xeafe, 0xeba4, 0xeba7, 0xeba9, 0xebaa, 0xebba, 0xebbb, 0xebbd, 0xebc1, 0xebc2, 0xebc6, 0xebc7, 0xebcc, 0xebcf, 0xebd0, 0xebd1, 0xebd2, 0xebd8, 0xeca6, 0xeca7, 0xecaa, 0xecaf, 0xecb0, 0xecb1, 0xecb2, 0xecb5, 0xecb8, 0xecba, 0xecc0, 0xecc1, 0xecc5, 0xecc6, 0xecc9, 0xecca, 0xecd5, 0xecdd, 0xecde, 0xece1, 0xece4, 0xece7, 0xece8, 0xecf7, 0xecf8, 0xecfa, 0xeda1, 0xeda2, 0xeda3, 0xedee, 0xeedb, 0xf2bd, 0xf2fa, 0xf3b1, 0xf4a7, /* 0xfa00 .. 0xfaff */ 0xf4ee, 0xf6f4, 0xf6f6, 0xf7b8, 0xf7c8, 0xf7d3, 0xf8db, 0xf8f0, 0xfaa1, 0xfaa2, 0xfae6, 0xfca9, 0xe8b4, 0x003f, 0x003f, 0x003f, 0xf5c0, 0x003f, 0xf4e7, 0x003f, 0x003f, 0xfdeb, 0xeec4, 0xeccc, 0x003f, 0xe3ea, 0xdfd4, 0xdcd8, 0xeffe, 0xeff1, 0xe9e2, 0x003f, 0x003f, 0x003f, 0xf0b3, 0x003f, 0x003f, 0xecef, 0xd4b4, 0x003f, 0x003f, 0x003f, 0xdaf9, 0xdef8, 0xcebd, 0xf9cd, 0x003f, 0x003f, 0xd9b2, 0xe3ac, 0xd8f3, 0xd8f5, 0xd0c3, 0xdde4, 0xcae2, 0xf7a3, 0xd0ef, 0x003f, 0xd9f8, 0xf6b5, 0x003f, 0xfce2, 0xcbc6, 0xf1f3, 0xf3a4, 0xdac2, 0x003f, 0xdff4, 0xd8de, 0xfaad, 0xeec2, 0xf9d3, 0xedb4, 0x003f, 0xf6fc, 0xddf8, 0xdee4, 0xf2b3, 0xd1b7, 0xe9de, 0xf0d3, 0xf5e6, 0xfca1, 0xefee, 0xcdda, 0xd4cd, 0xefbd, 0xd6a3, 0xf2db, 0xdbe5, 0xdffe, 0xedba, 0xf6ab, 0x003f, 0x003f, 0xeeca, 0xcae8, 0xe3ca, 0xe4d7, 0xd0cd, 0xdeb9, 0xf1fc, 0x003f, 0xecef, 0xd1f1, 0xfac2, 0xdeba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfb00 .. 0xfbff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfe00 .. 0xfeff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1aa, 0xa1aa, 0xa1aa, 0xa1aa, 0x005f, 0x005f, 0x005f, 0x002c, 0xa1a2, 0x002e, 0x003f, 0x003b, 0x003a, 0x003f, 0x0021, 0xa1aa, 0x0028, 0x0029, 0x007b, 0x007d, 0xa1b2, 0xa1b3, 0x0023, 0x0026, 0x002a, 0x002b, 0x002d, 0x003c, 0x003e, 0x003d, 0x003f, 0x005c, 0x0024, 0x0025, 0x0040, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xff00 .. 0xffff */ 0x003f, 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, 0xa3ba, 0xa3bb, 0xa3bc, 0xa3bd, 0xa3be, 0xa3bf, 0xa3c0, 0xa3c1, 0xa3c2, 0xa3c3, 0xa3c4, 0xa3c5, 0xa3c6, 0xa3c7, 0xa3c8, 0xa3c9, 0xa3ca, 0xa3cb, 0xa3cc, 0xa3cd, 0xa3ce, 0xa3cf, 0xa3d0, 0xa3d1, 0xa3d2, 0xa3d3, 0xa3d4, 0xa3d5, 0xa3d6, 0xa3d7, 0xa3d8, 0xa3d9, 0xa3da, 0xa3db, 0xa1ac, 0xa3dd, 0xa3de, 0xa3df, 0xa3e0, 0xa3e1, 0xa3e2, 0xa3e3, 0xa3e4, 0xa3e5, 0xa3e6, 0xa3e7, 0xa3e8, 0xa3e9, 0xa3ea, 0xa3eb, 0xa3ec, 0xa3ed, 0xa3ee, 0xa3ef, 0xa3f0, 0xa3f1, 0xa3f2, 0xa3f3, 0xa3f4, 0xa3f5, 0xa3f6, 0xa3f7, 0xa3f8, 0xa3f9, 0xa3fa, 0xa3fb, 0xa3fc, 0xa3fd, 0xa2a6, 0x003f, 0x003f, 0xa1a3, 0xa1b8, 0xa1b9, 0xa1a2, 0x003f, 0xabf2, 0xaba1, 0xaba3, 0xaba5, 0xaba7, 0xaba9, 0xabe3, 0xabe5, 0xabe7, 0xabc3, 0x003f, 0xaba2, 0xaba4, 0xaba6, 0xaba8, 0xabaa, 0xabab, 0xabad, 0xabaf, 0xabb1, 0xabb3, 0xabb5, 0xabb7, 0xabb9, 0xabbb, 0xabbd, 0xabbf, 0xabc1, 0xabc4, 0xabc6, 0xabc8, 0xabca, 0xabcb, 0xabcc, 0xabcd, 0xabce, 0xabcf, 0xabd2, 0xabd5, 0xabd8, 0xabdb, 0xabde, 0xabdf, 0xabe0, 0xabe1, 0xabe2, 0xabe4, 0xabe6, 0xabe8, 0xabe9, 0xabea, 0xabeb, 0xabec, 0xabed, 0xabef, 0xabf3, 0x003f, 0x003f, 0xa4d4, 0xa4a1, 0xa4a2, 0xa4a3, 0xa4a4, 0xa4a5, 0xa4a6, 0xa4a7, 0xa4a8, 0xa4a9, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4ae, 0xa4af, 0xa4b0, 0xa4b1, 0xa4b2, 0xa4b3, 0xa4b4, 0xa4b5, 0xa4b6, 0xa4b7, 0xa4b8, 0xa4b9, 0xa4ba, 0xa4bb, 0xa4bc, 0xa4bd, 0xa4be, 0x003f, 0x003f, 0x003f, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c2, 0xa4c3, 0xa4c4, 0x003f, 0x003f, 0xa4c5, 0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0x003f, 0x003f, 0xa4cb, 0xa4cc, 0xa4cd, 0xa4ce, 0xa4cf, 0xa4d0, 0x003f, 0x003f, 0xa4d1, 0xa4d2, 0xa4d3, 0x003f, 0x003f, 0x003f, 0xa1cb, 0xa1cc, 0xa1fe, 0xa3fe, 0x003f, 0xa1cd, 0xa3dc, 0x003f, 0xa6a2, 0xa1e7, 0xa1e8, 0xa1e6, 0xa1e9, 0xa1e1, 0xa1db, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* defaults */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x0400, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x0e00, 0x0f00, 0x1000, 0x1100, 0x1200, 0x1300, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6500, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x6600, 0x6700, 0x6800, 0x6900, 0x6a00, 0x6b00, 0x6c00, 0x6d00, 0x6e00, 0x6f00, 0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700, 0x7800, 0x7900, 0x7a00, 0x7b00, 0x7c00, 0x7d00, 0x7e00, 0x7f00, 0x8000, 0x8100, 0x8200, 0x8300, 0x8400, 0x8500, 0x8600, 0x8700, 0x8800, 0x8900, 0x8a00, 0x8b00, 0x8c00, 0x8d00, 0x8e00, 0x8f00, 0x9000, 0x9100, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9700, 0x9200, 0x9300, 0x9400, 0x9700, 0x9700, 0x9500, 0x9600 }; const struct dbcs_table cptable_949 = { { 949, 2, 0x003f, 0x003f, "ANSI/OEM Korean Unified Hangul" }, cp2uni, cp2uni_leadbytes, uni2cp_low, uni2cp_high, { 0x81, 0xfe, 0x00, 0x00 } }; ================================================ FILE: Project/Unicode/Source/c_950.cpp ================================================ /* code page 950 (ANSI/OEM Traditional Chinese Big5) */ /* generated from ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT */ /* DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" static const WCHAR cp2uni[22784] = { 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, /* unused lead bytes */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3000, 0xff0c, 0x3001, 0x3002, 0xff0e, 0x2027, 0xff1b, 0xff1a, 0xff1f, 0xff01, 0xfe30, 0x2026, 0x2025, 0xfe50, 0xfe51, 0xfe52, 0x00b7, 0xfe54, 0xfe55, 0xfe56, 0xfe57, 0xff5c, 0x2013, 0xfe31, 0x2014, 0xfe33, 0x2574, 0xfe34, 0xfe4f, 0xff08, 0xff09, 0xfe35, 0xfe36, 0xff5b, 0xff5d, 0xfe37, 0xfe38, 0x3014, 0x3015, 0xfe39, 0xfe3a, 0x3010, 0x3011, 0xfe3b, 0xfe3c, 0x300a, 0x300b, 0xfe3d, 0xfe3e, 0x3008, 0x3009, 0xfe3f, 0xfe40, 0x300c, 0x300d, 0xfe41, 0xfe42, 0x300e, 0x300f, 0xfe43, 0xfe44, 0xfe59, 0xfe5a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xfe5b, 0xfe5c, 0xfe5d, 0xfe5e, 0x2018, 0x2019, 0x201c, 0x201d, 0x301d, 0x301e, 0x2035, 0x2032, 0xff03, 0xff06, 0xff0a, 0x203b, 0x00a7, 0x3003, 0x25cb, 0x25cf, 0x25b3, 0x25b2, 0x25ce, 0x2606, 0x2605, 0x25c7, 0x25c6, 0x25a1, 0x25a0, 0x25bd, 0x25bc, 0x32a3, 0x2105, 0x00af, 0xffe3, 0xff3f, 0x02cd, 0xfe49, 0xfe4a, 0xfe4d, 0xfe4e, 0xfe4b, 0xfe4c, 0xfe5f, 0xfe60, 0xfe61, 0xff0b, 0xff0d, 0x00d7, 0x00f7, 0x00b1, 0x221a, 0xff1c, 0xff1e, 0xff1d, 0x2266, 0x2267, 0x2260, 0x221e, 0x2252, 0x2261, 0xfe62, 0xfe63, 0xfe64, 0xfe65, 0xfe66, 0xff5e, 0x2229, 0x222a, 0x22a5, 0x2220, 0x221f, 0x22bf, 0x33d2, 0x33d1, 0x222b, 0x222e, 0x2235, 0x2234, 0x2640, 0x2642, 0x2295, 0x2299, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, 0x2199, 0x2198, 0x2225, 0x2223, 0xff0f, 0x003f, /* lead byte a2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff3c, 0x2215, 0xfe68, 0xff04, 0xffe5, 0x3012, 0xffe0, 0xffe1, 0xff05, 0xff20, 0x2103, 0x2109, 0xfe69, 0xfe6a, 0xfe6b, 0x33d5, 0x339c, 0x339d, 0x339e, 0x33ce, 0x33a1, 0x338e, 0x338f, 0x33c4, 0x00b0, 0x5159, 0x515b, 0x515e, 0x515d, 0x5161, 0x5163, 0x55e7, 0x74e9, 0x7cce, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587, 0x2588, 0x258f, 0x258e, 0x258d, 0x258c, 0x258b, 0x258a, 0x2589, 0x253c, 0x2534, 0x252c, 0x2524, 0x251c, 0x2594, 0x2500, 0x2502, 0x2595, 0x250c, 0x2510, 0x2514, 0x2518, 0x256d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x256e, 0x2570, 0x256f, 0x2550, 0x255e, 0x256a, 0x2561, 0x25e2, 0x25e3, 0x25e5, 0x25e4, 0x2571, 0x2572, 0x2573, 0xff10, 0xff11, 0xff12, 0xff13, 0xff14, 0xff15, 0xff16, 0xff17, 0xff18, 0xff19, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166, 0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x5341, 0x5344, 0x5345, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27, 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f, 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37, 0xff38, 0xff39, 0xff3a, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47, 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f, 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0x003f, /* lead byte a3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xff57, 0xff58, 0xff59, 0xff5a, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, 0x03c0, 0x03c1, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x3105, 0x3106, 0x3107, 0x3108, 0x3109, 0x310a, 0x310b, 0x310c, 0x310d, 0x310e, 0x310f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x3110, 0x3111, 0x3112, 0x3113, 0x3114, 0x3115, 0x3116, 0x3117, 0x3118, 0x3119, 0x311a, 0x311b, 0x311c, 0x311d, 0x311e, 0x311f, 0x3120, 0x3121, 0x3122, 0x3123, 0x3124, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, 0x02d9, 0x02c9, 0x02ca, 0x02c7, 0x02cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x20ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte a4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e00, 0x4e59, 0x4e01, 0x4e03, 0x4e43, 0x4e5d, 0x4e86, 0x4e8c, 0x4eba, 0x513f, 0x5165, 0x516b, 0x51e0, 0x5200, 0x5201, 0x529b, 0x5315, 0x5341, 0x535c, 0x53c8, 0x4e09, 0x4e0b, 0x4e08, 0x4e0a, 0x4e2b, 0x4e38, 0x51e1, 0x4e45, 0x4e48, 0x4e5f, 0x4e5e, 0x4e8e, 0x4ea1, 0x5140, 0x5203, 0x52fa, 0x5343, 0x53c9, 0x53e3, 0x571f, 0x58eb, 0x5915, 0x5927, 0x5973, 0x5b50, 0x5b51, 0x5b53, 0x5bf8, 0x5c0f, 0x5c22, 0x5c38, 0x5c71, 0x5ddd, 0x5de5, 0x5df1, 0x5df2, 0x5df3, 0x5dfe, 0x5e72, 0x5efe, 0x5f0b, 0x5f13, 0x624d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e11, 0x4e10, 0x4e0d, 0x4e2d, 0x4e30, 0x4e39, 0x4e4b, 0x5c39, 0x4e88, 0x4e91, 0x4e95, 0x4e92, 0x4e94, 0x4ea2, 0x4ec1, 0x4ec0, 0x4ec3, 0x4ec6, 0x4ec7, 0x4ecd, 0x4eca, 0x4ecb, 0x4ec4, 0x5143, 0x5141, 0x5167, 0x516d, 0x516e, 0x516c, 0x5197, 0x51f6, 0x5206, 0x5207, 0x5208, 0x52fb, 0x52fe, 0x52ff, 0x5316, 0x5339, 0x5348, 0x5347, 0x5345, 0x535e, 0x5384, 0x53cb, 0x53ca, 0x53cd, 0x58ec, 0x5929, 0x592b, 0x592a, 0x592d, 0x5b54, 0x5c11, 0x5c24, 0x5c3a, 0x5c6f, 0x5df4, 0x5e7b, 0x5eff, 0x5f14, 0x5f15, 0x5fc3, 0x6208, 0x6236, 0x624b, 0x624e, 0x652f, 0x6587, 0x6597, 0x65a4, 0x65b9, 0x65e5, 0x66f0, 0x6708, 0x6728, 0x6b20, 0x6b62, 0x6b79, 0x6bcb, 0x6bd4, 0x6bdb, 0x6c0f, 0x6c34, 0x706b, 0x722a, 0x7236, 0x723b, 0x7247, 0x7259, 0x725b, 0x72ac, 0x738b, 0x4e19, 0x003f, /* lead byte a5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e16, 0x4e15, 0x4e14, 0x4e18, 0x4e3b, 0x4e4d, 0x4e4f, 0x4e4e, 0x4ee5, 0x4ed8, 0x4ed4, 0x4ed5, 0x4ed6, 0x4ed7, 0x4ee3, 0x4ee4, 0x4ed9, 0x4ede, 0x5145, 0x5144, 0x5189, 0x518a, 0x51ac, 0x51f9, 0x51fa, 0x51f8, 0x520a, 0x52a0, 0x529f, 0x5305, 0x5306, 0x5317, 0x531d, 0x4edf, 0x534a, 0x5349, 0x5361, 0x5360, 0x536f, 0x536e, 0x53bb, 0x53ef, 0x53e4, 0x53f3, 0x53ec, 0x53ee, 0x53e9, 0x53e8, 0x53fc, 0x53f8, 0x53f5, 0x53eb, 0x53e6, 0x53ea, 0x53f2, 0x53f1, 0x53f0, 0x53e5, 0x53ed, 0x53fb, 0x56db, 0x56da, 0x5916, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x592e, 0x5931, 0x5974, 0x5976, 0x5b55, 0x5b83, 0x5c3c, 0x5de8, 0x5de7, 0x5de6, 0x5e02, 0x5e03, 0x5e73, 0x5e7c, 0x5f01, 0x5f18, 0x5f17, 0x5fc5, 0x620a, 0x6253, 0x6254, 0x6252, 0x6251, 0x65a5, 0x65e6, 0x672e, 0x672c, 0x672a, 0x672b, 0x672d, 0x6b63, 0x6bcd, 0x6c11, 0x6c10, 0x6c38, 0x6c41, 0x6c40, 0x6c3e, 0x72af, 0x7384, 0x7389, 0x74dc, 0x74e6, 0x7518, 0x751f, 0x7528, 0x7529, 0x7530, 0x7531, 0x7532, 0x7533, 0x758b, 0x767d, 0x76ae, 0x76bf, 0x76ee, 0x77db, 0x77e2, 0x77f3, 0x793a, 0x79be, 0x7a74, 0x7acb, 0x4e1e, 0x4e1f, 0x4e52, 0x4e53, 0x4e69, 0x4e99, 0x4ea4, 0x4ea6, 0x4ea5, 0x4eff, 0x4f09, 0x4f19, 0x4f0a, 0x4f15, 0x4f0d, 0x4f10, 0x4f11, 0x4f0f, 0x4ef2, 0x4ef6, 0x4efb, 0x4ef0, 0x4ef3, 0x4efd, 0x4f01, 0x4f0b, 0x5149, 0x5147, 0x5146, 0x5148, 0x5168, 0x003f, /* lead byte a6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5171, 0x518d, 0x51b0, 0x5217, 0x5211, 0x5212, 0x520e, 0x5216, 0x52a3, 0x5308, 0x5321, 0x5320, 0x5370, 0x5371, 0x5409, 0x540f, 0x540c, 0x540a, 0x5410, 0x5401, 0x540b, 0x5404, 0x5411, 0x540d, 0x5408, 0x5403, 0x540e, 0x5406, 0x5412, 0x56e0, 0x56de, 0x56dd, 0x5733, 0x5730, 0x5728, 0x572d, 0x572c, 0x572f, 0x5729, 0x5919, 0x591a, 0x5937, 0x5938, 0x5984, 0x5978, 0x5983, 0x597d, 0x5979, 0x5982, 0x5981, 0x5b57, 0x5b58, 0x5b87, 0x5b88, 0x5b85, 0x5b89, 0x5bfa, 0x5c16, 0x5c79, 0x5dde, 0x5e06, 0x5e76, 0x5e74, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5f0f, 0x5f1b, 0x5fd9, 0x5fd6, 0x620e, 0x620c, 0x620d, 0x6210, 0x6263, 0x625b, 0x6258, 0x6536, 0x65e9, 0x65e8, 0x65ec, 0x65ed, 0x66f2, 0x66f3, 0x6709, 0x673d, 0x6734, 0x6731, 0x6735, 0x6b21, 0x6b64, 0x6b7b, 0x6c16, 0x6c5d, 0x6c57, 0x6c59, 0x6c5f, 0x6c60, 0x6c50, 0x6c55, 0x6c61, 0x6c5b, 0x6c4d, 0x6c4e, 0x7070, 0x725f, 0x725d, 0x767e, 0x7af9, 0x7c73, 0x7cf8, 0x7f36, 0x7f8a, 0x7fbd, 0x8001, 0x8003, 0x800c, 0x8012, 0x8033, 0x807f, 0x8089, 0x808b, 0x808c, 0x81e3, 0x81ea, 0x81f3, 0x81fc, 0x820c, 0x821b, 0x821f, 0x826e, 0x8272, 0x827e, 0x866b, 0x8840, 0x884c, 0x8863, 0x897f, 0x9621, 0x4e32, 0x4ea8, 0x4f4d, 0x4f4f, 0x4f47, 0x4f57, 0x4f5e, 0x4f34, 0x4f5b, 0x4f55, 0x4f30, 0x4f50, 0x4f51, 0x4f3d, 0x4f3a, 0x4f38, 0x4f43, 0x4f54, 0x4f3c, 0x4f46, 0x4f63, 0x003f, /* lead byte a7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4f5c, 0x4f60, 0x4f2f, 0x4f4e, 0x4f36, 0x4f59, 0x4f5d, 0x4f48, 0x4f5a, 0x514c, 0x514b, 0x514d, 0x5175, 0x51b6, 0x51b7, 0x5225, 0x5224, 0x5229, 0x522a, 0x5228, 0x52ab, 0x52a9, 0x52aa, 0x52ac, 0x5323, 0x5373, 0x5375, 0x541d, 0x542d, 0x541e, 0x543e, 0x5426, 0x544e, 0x5427, 0x5446, 0x5443, 0x5433, 0x5448, 0x5442, 0x541b, 0x5429, 0x544a, 0x5439, 0x543b, 0x5438, 0x542e, 0x5435, 0x5436, 0x5420, 0x543c, 0x5440, 0x5431, 0x542b, 0x541f, 0x542c, 0x56ea, 0x56f0, 0x56e4, 0x56eb, 0x574a, 0x5751, 0x5740, 0x574d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5747, 0x574e, 0x573e, 0x5750, 0x574f, 0x573b, 0x58ef, 0x593e, 0x599d, 0x5992, 0x59a8, 0x599e, 0x59a3, 0x5999, 0x5996, 0x598d, 0x59a4, 0x5993, 0x598a, 0x59a5, 0x5b5d, 0x5b5c, 0x5b5a, 0x5b5b, 0x5b8c, 0x5b8b, 0x5b8f, 0x5c2c, 0x5c40, 0x5c41, 0x5c3f, 0x5c3e, 0x5c90, 0x5c91, 0x5c94, 0x5c8c, 0x5deb, 0x5e0c, 0x5e8f, 0x5e87, 0x5e8a, 0x5ef7, 0x5f04, 0x5f1f, 0x5f64, 0x5f62, 0x5f77, 0x5f79, 0x5fd8, 0x5fcc, 0x5fd7, 0x5fcd, 0x5ff1, 0x5feb, 0x5ff8, 0x5fea, 0x6212, 0x6211, 0x6284, 0x6297, 0x6296, 0x6280, 0x6276, 0x6289, 0x626d, 0x628a, 0x627c, 0x627e, 0x6279, 0x6273, 0x6292, 0x626f, 0x6298, 0x626e, 0x6295, 0x6293, 0x6291, 0x6286, 0x6539, 0x653b, 0x6538, 0x65f1, 0x66f4, 0x675f, 0x674e, 0x674f, 0x6750, 0x6751, 0x675c, 0x6756, 0x675e, 0x6749, 0x6746, 0x6760, 0x003f, /* lead byte a8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6753, 0x6757, 0x6b65, 0x6bcf, 0x6c42, 0x6c5e, 0x6c99, 0x6c81, 0x6c88, 0x6c89, 0x6c85, 0x6c9b, 0x6c6a, 0x6c7a, 0x6c90, 0x6c70, 0x6c8c, 0x6c68, 0x6c96, 0x6c92, 0x6c7d, 0x6c83, 0x6c72, 0x6c7e, 0x6c74, 0x6c86, 0x6c76, 0x6c8d, 0x6c94, 0x6c98, 0x6c82, 0x7076, 0x707c, 0x707d, 0x7078, 0x7262, 0x7261, 0x7260, 0x72c4, 0x72c2, 0x7396, 0x752c, 0x752b, 0x7537, 0x7538, 0x7682, 0x76ef, 0x77e3, 0x79c1, 0x79c0, 0x79bf, 0x7a76, 0x7cfb, 0x7f55, 0x8096, 0x8093, 0x809d, 0x8098, 0x809b, 0x809a, 0x80b2, 0x826f, 0x8292, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x828b, 0x828d, 0x898b, 0x89d2, 0x8a00, 0x8c37, 0x8c46, 0x8c55, 0x8c9d, 0x8d64, 0x8d70, 0x8db3, 0x8eab, 0x8eca, 0x8f9b, 0x8fb0, 0x8fc2, 0x8fc6, 0x8fc5, 0x8fc4, 0x5de1, 0x9091, 0x90a2, 0x90aa, 0x90a6, 0x90a3, 0x9149, 0x91c6, 0x91cc, 0x9632, 0x962e, 0x9631, 0x962a, 0x962c, 0x4e26, 0x4e56, 0x4e73, 0x4e8b, 0x4e9b, 0x4e9e, 0x4eab, 0x4eac, 0x4f6f, 0x4f9d, 0x4f8d, 0x4f73, 0x4f7f, 0x4f6c, 0x4f9b, 0x4f8b, 0x4f86, 0x4f83, 0x4f70, 0x4f75, 0x4f88, 0x4f69, 0x4f7b, 0x4f96, 0x4f7e, 0x4f8f, 0x4f91, 0x4f7a, 0x5154, 0x5152, 0x5155, 0x5169, 0x5177, 0x5176, 0x5178, 0x51bd, 0x51fd, 0x523b, 0x5238, 0x5237, 0x523a, 0x5230, 0x522e, 0x5236, 0x5241, 0x52be, 0x52bb, 0x5352, 0x5354, 0x5353, 0x5351, 0x5366, 0x5377, 0x5378, 0x5379, 0x53d6, 0x53d4, 0x53d7, 0x5473, 0x5475, 0x003f, /* lead byte a9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5496, 0x5478, 0x5495, 0x5480, 0x547b, 0x5477, 0x5484, 0x5492, 0x5486, 0x547c, 0x5490, 0x5471, 0x5476, 0x548c, 0x549a, 0x5462, 0x5468, 0x548b, 0x547d, 0x548e, 0x56fa, 0x5783, 0x5777, 0x576a, 0x5769, 0x5761, 0x5766, 0x5764, 0x577c, 0x591c, 0x5949, 0x5947, 0x5948, 0x5944, 0x5954, 0x59be, 0x59bb, 0x59d4, 0x59b9, 0x59ae, 0x59d1, 0x59c6, 0x59d0, 0x59cd, 0x59cb, 0x59d3, 0x59ca, 0x59af, 0x59b3, 0x59d2, 0x59c5, 0x5b5f, 0x5b64, 0x5b63, 0x5b97, 0x5b9a, 0x5b98, 0x5b9c, 0x5b99, 0x5b9b, 0x5c1a, 0x5c48, 0x5c45, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5c46, 0x5cb7, 0x5ca1, 0x5cb8, 0x5ca9, 0x5cab, 0x5cb1, 0x5cb3, 0x5e18, 0x5e1a, 0x5e16, 0x5e15, 0x5e1b, 0x5e11, 0x5e78, 0x5e9a, 0x5e97, 0x5e9c, 0x5e95, 0x5e96, 0x5ef6, 0x5f26, 0x5f27, 0x5f29, 0x5f80, 0x5f81, 0x5f7f, 0x5f7c, 0x5fdd, 0x5fe0, 0x5ffd, 0x5ff5, 0x5fff, 0x600f, 0x6014, 0x602f, 0x6035, 0x6016, 0x602a, 0x6015, 0x6021, 0x6027, 0x6029, 0x602b, 0x601b, 0x6216, 0x6215, 0x623f, 0x623e, 0x6240, 0x627f, 0x62c9, 0x62cc, 0x62c4, 0x62bf, 0x62c2, 0x62b9, 0x62d2, 0x62db, 0x62ab, 0x62d3, 0x62d4, 0x62cb, 0x62c8, 0x62a8, 0x62bd, 0x62bc, 0x62d0, 0x62d9, 0x62c7, 0x62cd, 0x62b5, 0x62da, 0x62b1, 0x62d8, 0x62d6, 0x62d7, 0x62c6, 0x62ac, 0x62ce, 0x653e, 0x65a7, 0x65bc, 0x65fa, 0x6614, 0x6613, 0x660c, 0x6606, 0x6602, 0x660e, 0x6600, 0x660f, 0x6615, 0x660a, 0x003f, /* lead byte aa */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6607, 0x670d, 0x670b, 0x676d, 0x678b, 0x6795, 0x6771, 0x679c, 0x6773, 0x6777, 0x6787, 0x679d, 0x6797, 0x676f, 0x6770, 0x677f, 0x6789, 0x677e, 0x6790, 0x6775, 0x679a, 0x6793, 0x677c, 0x676a, 0x6772, 0x6b23, 0x6b66, 0x6b67, 0x6b7f, 0x6c13, 0x6c1b, 0x6ce3, 0x6ce8, 0x6cf3, 0x6cb1, 0x6ccc, 0x6ce5, 0x6cb3, 0x6cbd, 0x6cbe, 0x6cbc, 0x6ce2, 0x6cab, 0x6cd5, 0x6cd3, 0x6cb8, 0x6cc4, 0x6cb9, 0x6cc1, 0x6cae, 0x6cd7, 0x6cc5, 0x6cf1, 0x6cbf, 0x6cbb, 0x6ce1, 0x6cdb, 0x6cca, 0x6cac, 0x6cef, 0x6cdc, 0x6cd6, 0x6ce0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7095, 0x708e, 0x7092, 0x708a, 0x7099, 0x722c, 0x722d, 0x7238, 0x7248, 0x7267, 0x7269, 0x72c0, 0x72ce, 0x72d9, 0x72d7, 0x72d0, 0x73a9, 0x73a8, 0x739f, 0x73ab, 0x73a5, 0x753d, 0x759d, 0x7599, 0x759a, 0x7684, 0x76c2, 0x76f2, 0x76f4, 0x77e5, 0x77fd, 0x793e, 0x7940, 0x7941, 0x79c9, 0x79c8, 0x7a7a, 0x7a79, 0x7afa, 0x7cfe, 0x7f54, 0x7f8c, 0x7f8b, 0x8005, 0x80ba, 0x80a5, 0x80a2, 0x80b1, 0x80a1, 0x80ab, 0x80a9, 0x80b4, 0x80aa, 0x80af, 0x81e5, 0x81fe, 0x820d, 0x82b3, 0x829d, 0x8299, 0x82ad, 0x82bd, 0x829f, 0x82b9, 0x82b1, 0x82ac, 0x82a5, 0x82af, 0x82b8, 0x82a3, 0x82b0, 0x82be, 0x82b7, 0x864e, 0x8671, 0x521d, 0x8868, 0x8ecb, 0x8fce, 0x8fd4, 0x8fd1, 0x90b5, 0x90b8, 0x90b1, 0x90b6, 0x91c7, 0x91d1, 0x9577, 0x9580, 0x961c, 0x9640, 0x963f, 0x963b, 0x9644, 0x003f, /* lead byte ab */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9642, 0x96b9, 0x96e8, 0x9752, 0x975e, 0x4e9f, 0x4ead, 0x4eae, 0x4fe1, 0x4fb5, 0x4faf, 0x4fbf, 0x4fe0, 0x4fd1, 0x4fcf, 0x4fdd, 0x4fc3, 0x4fb6, 0x4fd8, 0x4fdf, 0x4fca, 0x4fd7, 0x4fae, 0x4fd0, 0x4fc4, 0x4fc2, 0x4fda, 0x4fce, 0x4fde, 0x4fb7, 0x5157, 0x5192, 0x5191, 0x51a0, 0x524e, 0x5243, 0x524a, 0x524d, 0x524c, 0x524b, 0x5247, 0x52c7, 0x52c9, 0x52c3, 0x52c1, 0x530d, 0x5357, 0x537b, 0x539a, 0x53db, 0x54ac, 0x54c0, 0x54a8, 0x54ce, 0x54c9, 0x54b8, 0x54a6, 0x54b3, 0x54c7, 0x54c2, 0x54bd, 0x54aa, 0x54c1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54c4, 0x54c8, 0x54af, 0x54ab, 0x54b1, 0x54bb, 0x54a9, 0x54a7, 0x54bf, 0x56ff, 0x5782, 0x578b, 0x57a0, 0x57a3, 0x57a2, 0x57ce, 0x57ae, 0x5793, 0x5955, 0x5951, 0x594f, 0x594e, 0x5950, 0x59dc, 0x59d8, 0x59ff, 0x59e3, 0x59e8, 0x5a03, 0x59e5, 0x59ea, 0x59da, 0x59e6, 0x5a01, 0x59fb, 0x5b69, 0x5ba3, 0x5ba6, 0x5ba4, 0x5ba2, 0x5ba5, 0x5c01, 0x5c4e, 0x5c4f, 0x5c4d, 0x5c4b, 0x5cd9, 0x5cd2, 0x5df7, 0x5e1d, 0x5e25, 0x5e1f, 0x5e7d, 0x5ea0, 0x5ea6, 0x5efa, 0x5f08, 0x5f2d, 0x5f65, 0x5f88, 0x5f85, 0x5f8a, 0x5f8b, 0x5f87, 0x5f8c, 0x5f89, 0x6012, 0x601d, 0x6020, 0x6025, 0x600e, 0x6028, 0x604d, 0x6070, 0x6068, 0x6062, 0x6046, 0x6043, 0x606c, 0x606b, 0x606a, 0x6064, 0x6241, 0x62dc, 0x6316, 0x6309, 0x62fc, 0x62ed, 0x6301, 0x62ee, 0x62fd, 0x6307, 0x62f1, 0x62f7, 0x003f, /* lead byte ac */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x62ef, 0x62ec, 0x62fe, 0x62f4, 0x6311, 0x6302, 0x653f, 0x6545, 0x65ab, 0x65bd, 0x65e2, 0x6625, 0x662d, 0x6620, 0x6627, 0x662f, 0x661f, 0x6628, 0x6631, 0x6624, 0x66f7, 0x67ff, 0x67d3, 0x67f1, 0x67d4, 0x67d0, 0x67ec, 0x67b6, 0x67af, 0x67f5, 0x67e9, 0x67ef, 0x67c4, 0x67d1, 0x67b4, 0x67da, 0x67e5, 0x67b8, 0x67cf, 0x67de, 0x67f3, 0x67b0, 0x67d9, 0x67e2, 0x67dd, 0x67d2, 0x6b6a, 0x6b83, 0x6b86, 0x6bb5, 0x6bd2, 0x6bd7, 0x6c1f, 0x6cc9, 0x6d0b, 0x6d32, 0x6d2a, 0x6d41, 0x6d25, 0x6d0c, 0x6d31, 0x6d1e, 0x6d17, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6d3b, 0x6d3d, 0x6d3e, 0x6d36, 0x6d1b, 0x6cf5, 0x6d39, 0x6d27, 0x6d38, 0x6d29, 0x6d2e, 0x6d35, 0x6d0e, 0x6d2b, 0x70ab, 0x70ba, 0x70b3, 0x70ac, 0x70af, 0x70ad, 0x70b8, 0x70ae, 0x70a4, 0x7230, 0x7272, 0x726f, 0x7274, 0x72e9, 0x72e0, 0x72e1, 0x73b7, 0x73ca, 0x73bb, 0x73b2, 0x73cd, 0x73c0, 0x73b3, 0x751a, 0x752d, 0x754f, 0x754c, 0x754e, 0x754b, 0x75ab, 0x75a4, 0x75a5, 0x75a2, 0x75a3, 0x7678, 0x7686, 0x7687, 0x7688, 0x76c8, 0x76c6, 0x76c3, 0x76c5, 0x7701, 0x76f9, 0x76f8, 0x7709, 0x770b, 0x76fe, 0x76fc, 0x7707, 0x77dc, 0x7802, 0x7814, 0x780c, 0x780d, 0x7946, 0x7949, 0x7948, 0x7947, 0x79b9, 0x79ba, 0x79d1, 0x79d2, 0x79cb, 0x7a7f, 0x7a81, 0x7aff, 0x7afd, 0x7c7d, 0x7d02, 0x7d05, 0x7d00, 0x7d09, 0x7d07, 0x7d04, 0x7d06, 0x7f38, 0x7f8e, 0x7fbf, 0x8004, 0x003f, /* lead byte ad */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8010, 0x800d, 0x8011, 0x8036, 0x80d6, 0x80e5, 0x80da, 0x80c3, 0x80c4, 0x80cc, 0x80e1, 0x80db, 0x80ce, 0x80de, 0x80e4, 0x80dd, 0x81f4, 0x8222, 0x82e7, 0x8303, 0x8305, 0x82e3, 0x82db, 0x82e6, 0x8304, 0x82e5, 0x8302, 0x8309, 0x82d2, 0x82d7, 0x82f1, 0x8301, 0x82dc, 0x82d4, 0x82d1, 0x82de, 0x82d3, 0x82df, 0x82ef, 0x8306, 0x8650, 0x8679, 0x867b, 0x867a, 0x884d, 0x886b, 0x8981, 0x89d4, 0x8a08, 0x8a02, 0x8a03, 0x8c9e, 0x8ca0, 0x8d74, 0x8d73, 0x8db4, 0x8ecd, 0x8ecc, 0x8ff0, 0x8fe6, 0x8fe2, 0x8fea, 0x8fe5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8fed, 0x8feb, 0x8fe4, 0x8fe8, 0x90ca, 0x90ce, 0x90c1, 0x90c3, 0x914b, 0x914a, 0x91cd, 0x9582, 0x9650, 0x964b, 0x964c, 0x964d, 0x9762, 0x9769, 0x97cb, 0x97ed, 0x97f3, 0x9801, 0x98a8, 0x98db, 0x98df, 0x9996, 0x9999, 0x4e58, 0x4eb3, 0x500c, 0x500d, 0x5023, 0x4fef, 0x5026, 0x5025, 0x4ff8, 0x5029, 0x5016, 0x5006, 0x503c, 0x501f, 0x501a, 0x5012, 0x5011, 0x4ffa, 0x5000, 0x5014, 0x5028, 0x4ff1, 0x5021, 0x500b, 0x5019, 0x5018, 0x4ff3, 0x4fee, 0x502d, 0x502a, 0x4ffe, 0x502b, 0x5009, 0x517c, 0x51a4, 0x51a5, 0x51a2, 0x51cd, 0x51cc, 0x51c6, 0x51cb, 0x5256, 0x525c, 0x5254, 0x525b, 0x525d, 0x532a, 0x537f, 0x539f, 0x539d, 0x53df, 0x54e8, 0x5510, 0x5501, 0x5537, 0x54fc, 0x54e5, 0x54f2, 0x5506, 0x54fa, 0x5514, 0x54e9, 0x54ed, 0x54e1, 0x5509, 0x54ee, 0x54ea, 0x003f, /* lead byte ae */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54e6, 0x5527, 0x5507, 0x54fd, 0x550f, 0x5703, 0x5704, 0x57c2, 0x57d4, 0x57cb, 0x57c3, 0x5809, 0x590f, 0x5957, 0x5958, 0x595a, 0x5a11, 0x5a18, 0x5a1c, 0x5a1f, 0x5a1b, 0x5a13, 0x59ec, 0x5a20, 0x5a23, 0x5a29, 0x5a25, 0x5a0c, 0x5a09, 0x5b6b, 0x5c58, 0x5bb0, 0x5bb3, 0x5bb6, 0x5bb4, 0x5bae, 0x5bb5, 0x5bb9, 0x5bb8, 0x5c04, 0x5c51, 0x5c55, 0x5c50, 0x5ced, 0x5cfd, 0x5cfb, 0x5cea, 0x5ce8, 0x5cf0, 0x5cf6, 0x5d01, 0x5cf4, 0x5dee, 0x5e2d, 0x5e2b, 0x5eab, 0x5ead, 0x5ea7, 0x5f31, 0x5f92, 0x5f91, 0x5f90, 0x6059, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6063, 0x6065, 0x6050, 0x6055, 0x606d, 0x6069, 0x606f, 0x6084, 0x609f, 0x609a, 0x608d, 0x6094, 0x608c, 0x6085, 0x6096, 0x6247, 0x62f3, 0x6308, 0x62ff, 0x634e, 0x633e, 0x632f, 0x6355, 0x6342, 0x6346, 0x634f, 0x6349, 0x633a, 0x6350, 0x633d, 0x632a, 0x632b, 0x6328, 0x634d, 0x634c, 0x6548, 0x6549, 0x6599, 0x65c1, 0x65c5, 0x6642, 0x6649, 0x664f, 0x6643, 0x6652, 0x664c, 0x6645, 0x6641, 0x66f8, 0x6714, 0x6715, 0x6717, 0x6821, 0x6838, 0x6848, 0x6846, 0x6853, 0x6839, 0x6842, 0x6854, 0x6829, 0x68b3, 0x6817, 0x684c, 0x6851, 0x683d, 0x67f4, 0x6850, 0x6840, 0x683c, 0x6843, 0x682a, 0x6845, 0x6813, 0x6818, 0x6841, 0x6b8a, 0x6b89, 0x6bb7, 0x6c23, 0x6c27, 0x6c28, 0x6c26, 0x6c24, 0x6cf0, 0x6d6a, 0x6d95, 0x6d88, 0x6d87, 0x6d66, 0x6d78, 0x6d77, 0x6d59, 0x6d93, 0x003f, /* lead byte af */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6d6c, 0x6d89, 0x6d6e, 0x6d5a, 0x6d74, 0x6d69, 0x6d8c, 0x6d8a, 0x6d79, 0x6d85, 0x6d65, 0x6d94, 0x70ca, 0x70d8, 0x70e4, 0x70d9, 0x70c8, 0x70cf, 0x7239, 0x7279, 0x72fc, 0x72f9, 0x72fd, 0x72f8, 0x72f7, 0x7386, 0x73ed, 0x7409, 0x73ee, 0x73e0, 0x73ea, 0x73de, 0x7554, 0x755d, 0x755c, 0x755a, 0x7559, 0x75be, 0x75c5, 0x75c7, 0x75b2, 0x75b3, 0x75bd, 0x75bc, 0x75b9, 0x75c2, 0x75b8, 0x768b, 0x76b0, 0x76ca, 0x76cd, 0x76ce, 0x7729, 0x771f, 0x7720, 0x7728, 0x77e9, 0x7830, 0x7827, 0x7838, 0x781d, 0x7834, 0x7837, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7825, 0x782d, 0x7820, 0x781f, 0x7832, 0x7955, 0x7950, 0x7960, 0x795f, 0x7956, 0x795e, 0x795d, 0x7957, 0x795a, 0x79e4, 0x79e3, 0x79e7, 0x79df, 0x79e6, 0x79e9, 0x79d8, 0x7a84, 0x7a88, 0x7ad9, 0x7b06, 0x7b11, 0x7c89, 0x7d21, 0x7d17, 0x7d0b, 0x7d0a, 0x7d20, 0x7d22, 0x7d14, 0x7d10, 0x7d15, 0x7d1a, 0x7d1c, 0x7d0d, 0x7d19, 0x7d1b, 0x7f3a, 0x7f5f, 0x7f94, 0x7fc5, 0x7fc1, 0x8006, 0x8018, 0x8015, 0x8019, 0x8017, 0x803d, 0x803f, 0x80f1, 0x8102, 0x80f0, 0x8105, 0x80ed, 0x80f4, 0x8106, 0x80f8, 0x80f3, 0x8108, 0x80fd, 0x810a, 0x80fc, 0x80ef, 0x81ed, 0x81ec, 0x8200, 0x8210, 0x822a, 0x822b, 0x8228, 0x822c, 0x82bb, 0x832b, 0x8352, 0x8354, 0x834a, 0x8338, 0x8350, 0x8349, 0x8335, 0x8334, 0x834f, 0x8332, 0x8339, 0x8336, 0x8317, 0x8340, 0x8331, 0x8328, 0x8343, 0x003f, /* lead byte b0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8654, 0x868a, 0x86aa, 0x8693, 0x86a4, 0x86a9, 0x868c, 0x86a3, 0x869c, 0x8870, 0x8877, 0x8881, 0x8882, 0x887d, 0x8879, 0x8a18, 0x8a10, 0x8a0e, 0x8a0c, 0x8a15, 0x8a0a, 0x8a17, 0x8a13, 0x8a16, 0x8a0f, 0x8a11, 0x8c48, 0x8c7a, 0x8c79, 0x8ca1, 0x8ca2, 0x8d77, 0x8eac, 0x8ed2, 0x8ed4, 0x8ecf, 0x8fb1, 0x9001, 0x9006, 0x8ff7, 0x9000, 0x8ffa, 0x8ff4, 0x9003, 0x8ffd, 0x9005, 0x8ff8, 0x9095, 0x90e1, 0x90dd, 0x90e2, 0x9152, 0x914d, 0x914c, 0x91d8, 0x91dd, 0x91d7, 0x91dc, 0x91d9, 0x9583, 0x9662, 0x9663, 0x9661, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x965b, 0x965d, 0x9664, 0x9658, 0x965e, 0x96bb, 0x98e2, 0x99ac, 0x9aa8, 0x9ad8, 0x9b25, 0x9b32, 0x9b3c, 0x4e7e, 0x507a, 0x507d, 0x505c, 0x5047, 0x5043, 0x504c, 0x505a, 0x5049, 0x5065, 0x5076, 0x504e, 0x5055, 0x5075, 0x5074, 0x5077, 0x504f, 0x500f, 0x506f, 0x506d, 0x515c, 0x5195, 0x51f0, 0x526a, 0x526f, 0x52d2, 0x52d9, 0x52d8, 0x52d5, 0x5310, 0x530f, 0x5319, 0x533f, 0x5340, 0x533e, 0x53c3, 0x66fc, 0x5546, 0x556a, 0x5566, 0x5544, 0x555e, 0x5561, 0x5543, 0x554a, 0x5531, 0x5556, 0x554f, 0x5555, 0x552f, 0x5564, 0x5538, 0x552e, 0x555c, 0x552c, 0x5563, 0x5533, 0x5541, 0x5557, 0x5708, 0x570b, 0x5709, 0x57df, 0x5805, 0x580a, 0x5806, 0x57e0, 0x57e4, 0x57fa, 0x5802, 0x5835, 0x57f7, 0x57f9, 0x5920, 0x5962, 0x5a36, 0x5a41, 0x5a49, 0x5a66, 0x5a6a, 0x5a40, 0x003f, /* lead byte b1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5a3c, 0x5a62, 0x5a5a, 0x5a46, 0x5a4a, 0x5b70, 0x5bc7, 0x5bc5, 0x5bc4, 0x5bc2, 0x5bbf, 0x5bc6, 0x5c09, 0x5c08, 0x5c07, 0x5c60, 0x5c5c, 0x5c5d, 0x5d07, 0x5d06, 0x5d0e, 0x5d1b, 0x5d16, 0x5d22, 0x5d11, 0x5d29, 0x5d14, 0x5d19, 0x5d24, 0x5d27, 0x5d17, 0x5de2, 0x5e38, 0x5e36, 0x5e33, 0x5e37, 0x5eb7, 0x5eb8, 0x5eb6, 0x5eb5, 0x5ebe, 0x5f35, 0x5f37, 0x5f57, 0x5f6c, 0x5f69, 0x5f6b, 0x5f97, 0x5f99, 0x5f9e, 0x5f98, 0x5fa1, 0x5fa0, 0x5f9c, 0x607f, 0x60a3, 0x6089, 0x60a0, 0x60a8, 0x60cb, 0x60b4, 0x60e6, 0x60bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x60c5, 0x60bb, 0x60b5, 0x60dc, 0x60bc, 0x60d8, 0x60d5, 0x60c6, 0x60df, 0x60b8, 0x60da, 0x60c7, 0x621a, 0x621b, 0x6248, 0x63a0, 0x63a7, 0x6372, 0x6396, 0x63a2, 0x63a5, 0x6377, 0x6367, 0x6398, 0x63aa, 0x6371, 0x63a9, 0x6389, 0x6383, 0x639b, 0x636b, 0x63a8, 0x6384, 0x6388, 0x6399, 0x63a1, 0x63ac, 0x6392, 0x638f, 0x6380, 0x637b, 0x6369, 0x6368, 0x637a, 0x655d, 0x6556, 0x6551, 0x6559, 0x6557, 0x555f, 0x654f, 0x6558, 0x6555, 0x6554, 0x659c, 0x659b, 0x65ac, 0x65cf, 0x65cb, 0x65cc, 0x65ce, 0x665d, 0x665a, 0x6664, 0x6668, 0x6666, 0x665e, 0x66f9, 0x52d7, 0x671b, 0x6881, 0x68af, 0x68a2, 0x6893, 0x68b5, 0x687f, 0x6876, 0x68b1, 0x68a7, 0x6897, 0x68b0, 0x6883, 0x68c4, 0x68ad, 0x6886, 0x6885, 0x6894, 0x689d, 0x68a8, 0x689f, 0x68a1, 0x6882, 0x6b32, 0x6bba, 0x003f, /* lead byte b2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6beb, 0x6bec, 0x6c2b, 0x6d8e, 0x6dbc, 0x6df3, 0x6dd9, 0x6db2, 0x6de1, 0x6dcc, 0x6de4, 0x6dfb, 0x6dfa, 0x6e05, 0x6dc7, 0x6dcb, 0x6daf, 0x6dd1, 0x6dae, 0x6dde, 0x6df9, 0x6db8, 0x6df7, 0x6df5, 0x6dc5, 0x6dd2, 0x6e1a, 0x6db5, 0x6dda, 0x6deb, 0x6dd8, 0x6dea, 0x6df1, 0x6dee, 0x6de8, 0x6dc6, 0x6dc4, 0x6daa, 0x6dec, 0x6dbf, 0x6de6, 0x70f9, 0x7109, 0x710a, 0x70fd, 0x70ef, 0x723d, 0x727d, 0x7281, 0x731c, 0x731b, 0x7316, 0x7313, 0x7319, 0x7387, 0x7405, 0x740a, 0x7403, 0x7406, 0x73fe, 0x740d, 0x74e0, 0x74f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x74f7, 0x751c, 0x7522, 0x7565, 0x7566, 0x7562, 0x7570, 0x758f, 0x75d4, 0x75d5, 0x75b5, 0x75ca, 0x75cd, 0x768e, 0x76d4, 0x76d2, 0x76db, 0x7737, 0x773e, 0x773c, 0x7736, 0x7738, 0x773a, 0x786b, 0x7843, 0x784e, 0x7965, 0x7968, 0x796d, 0x79fb, 0x7a92, 0x7a95, 0x7b20, 0x7b28, 0x7b1b, 0x7b2c, 0x7b26, 0x7b19, 0x7b1e, 0x7b2e, 0x7c92, 0x7c97, 0x7c95, 0x7d46, 0x7d43, 0x7d71, 0x7d2e, 0x7d39, 0x7d3c, 0x7d40, 0x7d30, 0x7d33, 0x7d44, 0x7d2f, 0x7d42, 0x7d32, 0x7d31, 0x7f3d, 0x7f9e, 0x7f9a, 0x7fcc, 0x7fce, 0x7fd2, 0x801c, 0x804a, 0x8046, 0x812f, 0x8116, 0x8123, 0x812b, 0x8129, 0x8130, 0x8124, 0x8202, 0x8235, 0x8237, 0x8236, 0x8239, 0x838e, 0x839e, 0x8398, 0x8378, 0x83a2, 0x8396, 0x83bd, 0x83ab, 0x8392, 0x838a, 0x8393, 0x8389, 0x83a0, 0x8377, 0x837b, 0x837c, 0x003f, /* lead byte b3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8386, 0x83a7, 0x8655, 0x5f6a, 0x86c7, 0x86c0, 0x86b6, 0x86c4, 0x86b5, 0x86c6, 0x86cb, 0x86b1, 0x86af, 0x86c9, 0x8853, 0x889e, 0x8888, 0x88ab, 0x8892, 0x8896, 0x888d, 0x888b, 0x8993, 0x898f, 0x8a2a, 0x8a1d, 0x8a23, 0x8a25, 0x8a31, 0x8a2d, 0x8a1f, 0x8a1b, 0x8a22, 0x8c49, 0x8c5a, 0x8ca9, 0x8cac, 0x8cab, 0x8ca8, 0x8caa, 0x8ca7, 0x8d67, 0x8d66, 0x8dbe, 0x8dba, 0x8edb, 0x8edf, 0x9019, 0x900d, 0x901a, 0x9017, 0x9023, 0x901f, 0x901d, 0x9010, 0x9015, 0x901e, 0x9020, 0x900f, 0x9022, 0x9016, 0x901b, 0x9014, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x90e8, 0x90ed, 0x90fd, 0x9157, 0x91ce, 0x91f5, 0x91e6, 0x91e3, 0x91e7, 0x91ed, 0x91e9, 0x9589, 0x966a, 0x9675, 0x9673, 0x9678, 0x9670, 0x9674, 0x9676, 0x9677, 0x966c, 0x96c0, 0x96ea, 0x96e9, 0x7ae0, 0x7adf, 0x9802, 0x9803, 0x9b5a, 0x9ce5, 0x9e75, 0x9e7f, 0x9ea5, 0x9ebb, 0x50a2, 0x508d, 0x5085, 0x5099, 0x5091, 0x5080, 0x5096, 0x5098, 0x509a, 0x6700, 0x51f1, 0x5272, 0x5274, 0x5275, 0x5269, 0x52de, 0x52dd, 0x52db, 0x535a, 0x53a5, 0x557b, 0x5580, 0x55a7, 0x557c, 0x558a, 0x559d, 0x5598, 0x5582, 0x559c, 0x55aa, 0x5594, 0x5587, 0x558b, 0x5583, 0x55b3, 0x55ae, 0x559f, 0x553e, 0x55b2, 0x559a, 0x55bb, 0x55ac, 0x55b1, 0x557e, 0x5589, 0x55ab, 0x5599, 0x570d, 0x582f, 0x582a, 0x5834, 0x5824, 0x5830, 0x5831, 0x5821, 0x581d, 0x5820, 0x58f9, 0x58fa, 0x5960, 0x003f, /* lead byte b4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5a77, 0x5a9a, 0x5a7f, 0x5a92, 0x5a9b, 0x5aa7, 0x5b73, 0x5b71, 0x5bd2, 0x5bcc, 0x5bd3, 0x5bd0, 0x5c0a, 0x5c0b, 0x5c31, 0x5d4c, 0x5d50, 0x5d34, 0x5d47, 0x5dfd, 0x5e45, 0x5e3d, 0x5e40, 0x5e43, 0x5e7e, 0x5eca, 0x5ec1, 0x5ec2, 0x5ec4, 0x5f3c, 0x5f6d, 0x5fa9, 0x5faa, 0x5fa8, 0x60d1, 0x60e1, 0x60b2, 0x60b6, 0x60e0, 0x611c, 0x6123, 0x60fa, 0x6115, 0x60f0, 0x60fb, 0x60f4, 0x6168, 0x60f1, 0x610e, 0x60f6, 0x6109, 0x6100, 0x6112, 0x621f, 0x6249, 0x63a3, 0x638c, 0x63cf, 0x63c0, 0x63e9, 0x63c9, 0x63c6, 0x63cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x63d2, 0x63e3, 0x63d0, 0x63e1, 0x63d6, 0x63ed, 0x63ee, 0x6376, 0x63f4, 0x63ea, 0x63db, 0x6452, 0x63da, 0x63f9, 0x655e, 0x6566, 0x6562, 0x6563, 0x6591, 0x6590, 0x65af, 0x666e, 0x6670, 0x6674, 0x6676, 0x666f, 0x6691, 0x667a, 0x667e, 0x6677, 0x66fe, 0x66ff, 0x671f, 0x671d, 0x68fa, 0x68d5, 0x68e0, 0x68d8, 0x68d7, 0x6905, 0x68df, 0x68f5, 0x68ee, 0x68e7, 0x68f9, 0x68d2, 0x68f2, 0x68e3, 0x68cb, 0x68cd, 0x690d, 0x6912, 0x690e, 0x68c9, 0x68da, 0x696e, 0x68fb, 0x6b3e, 0x6b3a, 0x6b3d, 0x6b98, 0x6b96, 0x6bbc, 0x6bef, 0x6c2e, 0x6c2f, 0x6c2c, 0x6e2f, 0x6e38, 0x6e54, 0x6e21, 0x6e32, 0x6e67, 0x6e4a, 0x6e20, 0x6e25, 0x6e23, 0x6e1b, 0x6e5b, 0x6e58, 0x6e24, 0x6e56, 0x6e6e, 0x6e2d, 0x6e26, 0x6e6f, 0x6e34, 0x6e4d, 0x6e3a, 0x6e2c, 0x6e43, 0x6e1d, 0x6e3e, 0x6ecb, 0x003f, /* lead byte b5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6e89, 0x6e19, 0x6e4e, 0x6e63, 0x6e44, 0x6e72, 0x6e69, 0x6e5f, 0x7119, 0x711a, 0x7126, 0x7130, 0x7121, 0x7136, 0x716e, 0x711c, 0x724c, 0x7284, 0x7280, 0x7336, 0x7325, 0x7334, 0x7329, 0x743a, 0x742a, 0x7433, 0x7422, 0x7425, 0x7435, 0x7436, 0x7434, 0x742f, 0x741b, 0x7426, 0x7428, 0x7525, 0x7526, 0x756b, 0x756a, 0x75e2, 0x75db, 0x75e3, 0x75d9, 0x75d8, 0x75de, 0x75e0, 0x767b, 0x767c, 0x7696, 0x7693, 0x76b4, 0x76dc, 0x774f, 0x77ed, 0x785d, 0x786c, 0x786f, 0x7a0d, 0x7a08, 0x7a0b, 0x7a05, 0x7a00, 0x7a98, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7a97, 0x7a96, 0x7ae5, 0x7ae3, 0x7b49, 0x7b56, 0x7b46, 0x7b50, 0x7b52, 0x7b54, 0x7b4d, 0x7b4b, 0x7b4f, 0x7b51, 0x7c9f, 0x7ca5, 0x7d5e, 0x7d50, 0x7d68, 0x7d55, 0x7d2b, 0x7d6e, 0x7d72, 0x7d61, 0x7d66, 0x7d62, 0x7d70, 0x7d73, 0x5584, 0x7fd4, 0x7fd5, 0x800b, 0x8052, 0x8085, 0x8155, 0x8154, 0x814b, 0x8151, 0x814e, 0x8139, 0x8146, 0x813e, 0x814c, 0x8153, 0x8174, 0x8212, 0x821c, 0x83e9, 0x8403, 0x83f8, 0x840d, 0x83e0, 0x83c5, 0x840b, 0x83c1, 0x83ef, 0x83f1, 0x83f4, 0x8457, 0x840a, 0x83f0, 0x840c, 0x83cc, 0x83fd, 0x83f2, 0x83ca, 0x8438, 0x840e, 0x8404, 0x83dc, 0x8407, 0x83d4, 0x83df, 0x865b, 0x86df, 0x86d9, 0x86ed, 0x86d4, 0x86db, 0x86e4, 0x86d0, 0x86de, 0x8857, 0x88c1, 0x88c2, 0x88b1, 0x8983, 0x8996, 0x8a3b, 0x8a60, 0x8a55, 0x8a5e, 0x8a3c, 0x8a41, 0x003f, /* lead byte b6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8a54, 0x8a5b, 0x8a50, 0x8a46, 0x8a34, 0x8a3a, 0x8a36, 0x8a56, 0x8c61, 0x8c82, 0x8caf, 0x8cbc, 0x8cb3, 0x8cbd, 0x8cc1, 0x8cbb, 0x8cc0, 0x8cb4, 0x8cb7, 0x8cb6, 0x8cbf, 0x8cb8, 0x8d8a, 0x8d85, 0x8d81, 0x8dce, 0x8ddd, 0x8dcb, 0x8dda, 0x8dd1, 0x8dcc, 0x8ddb, 0x8dc6, 0x8efb, 0x8ef8, 0x8efc, 0x8f9c, 0x902e, 0x9035, 0x9031, 0x9038, 0x9032, 0x9036, 0x9102, 0x90f5, 0x9109, 0x90fe, 0x9163, 0x9165, 0x91cf, 0x9214, 0x9215, 0x9223, 0x9209, 0x921e, 0x920d, 0x9210, 0x9207, 0x9211, 0x9594, 0x958f, 0x958b, 0x9591, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9593, 0x9592, 0x958e, 0x968a, 0x968e, 0x968b, 0x967d, 0x9685, 0x9686, 0x968d, 0x9672, 0x9684, 0x96c1, 0x96c5, 0x96c4, 0x96c6, 0x96c7, 0x96ef, 0x96f2, 0x97cc, 0x9805, 0x9806, 0x9808, 0x98e7, 0x98ea, 0x98ef, 0x98e9, 0x98f2, 0x98ed, 0x99ae, 0x99ad, 0x9ec3, 0x9ecd, 0x9ed1, 0x4e82, 0x50ad, 0x50b5, 0x50b2, 0x50b3, 0x50c5, 0x50be, 0x50ac, 0x50b7, 0x50bb, 0x50af, 0x50c7, 0x527f, 0x5277, 0x527d, 0x52df, 0x52e6, 0x52e4, 0x52e2, 0x52e3, 0x532f, 0x55df, 0x55e8, 0x55d3, 0x55e6, 0x55ce, 0x55dc, 0x55c7, 0x55d1, 0x55e3, 0x55e4, 0x55ef, 0x55da, 0x55e1, 0x55c5, 0x55c6, 0x55e5, 0x55c9, 0x5712, 0x5713, 0x585e, 0x5851, 0x5858, 0x5857, 0x585a, 0x5854, 0x586b, 0x584c, 0x586d, 0x584a, 0x5862, 0x5852, 0x584b, 0x5967, 0x5ac1, 0x5ac9, 0x5acc, 0x5abe, 0x5abd, 0x5abc, 0x003f, /* lead byte b7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5ab3, 0x5ac2, 0x5ab2, 0x5d69, 0x5d6f, 0x5e4c, 0x5e79, 0x5ec9, 0x5ec8, 0x5f12, 0x5f59, 0x5fac, 0x5fae, 0x611a, 0x610f, 0x6148, 0x611f, 0x60f3, 0x611b, 0x60f9, 0x6101, 0x6108, 0x614e, 0x614c, 0x6144, 0x614d, 0x613e, 0x6134, 0x6127, 0x610d, 0x6106, 0x6137, 0x6221, 0x6222, 0x6413, 0x643e, 0x641e, 0x642a, 0x642d, 0x643d, 0x642c, 0x640f, 0x641c, 0x6414, 0x640d, 0x6436, 0x6416, 0x6417, 0x6406, 0x656c, 0x659f, 0x65b0, 0x6697, 0x6689, 0x6687, 0x6688, 0x6696, 0x6684, 0x6698, 0x668d, 0x6703, 0x6994, 0x696d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x695a, 0x6977, 0x6960, 0x6954, 0x6975, 0x6930, 0x6982, 0x694a, 0x6968, 0x696b, 0x695e, 0x6953, 0x6979, 0x6986, 0x695d, 0x6963, 0x695b, 0x6b47, 0x6b72, 0x6bc0, 0x6bbf, 0x6bd3, 0x6bfd, 0x6ea2, 0x6eaf, 0x6ed3, 0x6eb6, 0x6ec2, 0x6e90, 0x6e9d, 0x6ec7, 0x6ec5, 0x6ea5, 0x6e98, 0x6ebc, 0x6eba, 0x6eab, 0x6ed1, 0x6e96, 0x6e9c, 0x6ec4, 0x6ed4, 0x6eaa, 0x6ea7, 0x6eb4, 0x714e, 0x7159, 0x7169, 0x7164, 0x7149, 0x7167, 0x715c, 0x716c, 0x7166, 0x714c, 0x7165, 0x715e, 0x7146, 0x7168, 0x7156, 0x723a, 0x7252, 0x7337, 0x7345, 0x733f, 0x733e, 0x746f, 0x745a, 0x7455, 0x745f, 0x745e, 0x7441, 0x743f, 0x7459, 0x745b, 0x745c, 0x7576, 0x7578, 0x7600, 0x75f0, 0x7601, 0x75f2, 0x75f1, 0x75fa, 0x75ff, 0x75f4, 0x75f3, 0x76de, 0x76df, 0x775b, 0x776b, 0x7766, 0x775e, 0x7763, 0x003f, /* lead byte b8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7779, 0x776a, 0x776c, 0x775c, 0x7765, 0x7768, 0x7762, 0x77ee, 0x788e, 0x78b0, 0x7897, 0x7898, 0x788c, 0x7889, 0x787c, 0x7891, 0x7893, 0x787f, 0x797a, 0x797f, 0x7981, 0x842c, 0x79bd, 0x7a1c, 0x7a1a, 0x7a20, 0x7a14, 0x7a1f, 0x7a1e, 0x7a9f, 0x7aa0, 0x7b77, 0x7bc0, 0x7b60, 0x7b6e, 0x7b67, 0x7cb1, 0x7cb3, 0x7cb5, 0x7d93, 0x7d79, 0x7d91, 0x7d81, 0x7d8f, 0x7d5b, 0x7f6e, 0x7f69, 0x7f6a, 0x7f72, 0x7fa9, 0x7fa8, 0x7fa4, 0x8056, 0x8058, 0x8086, 0x8084, 0x8171, 0x8170, 0x8178, 0x8165, 0x816e, 0x8173, 0x816b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8179, 0x817a, 0x8166, 0x8205, 0x8247, 0x8482, 0x8477, 0x843d, 0x8431, 0x8475, 0x8466, 0x846b, 0x8449, 0x846c, 0x845b, 0x843c, 0x8435, 0x8461, 0x8463, 0x8469, 0x846d, 0x8446, 0x865e, 0x865c, 0x865f, 0x86f9, 0x8713, 0x8708, 0x8707, 0x8700, 0x86fe, 0x86fb, 0x8702, 0x8703, 0x8706, 0x870a, 0x8859, 0x88df, 0x88d4, 0x88d9, 0x88dc, 0x88d8, 0x88dd, 0x88e1, 0x88ca, 0x88d5, 0x88d2, 0x899c, 0x89e3, 0x8a6b, 0x8a72, 0x8a73, 0x8a66, 0x8a69, 0x8a70, 0x8a87, 0x8a7c, 0x8a63, 0x8aa0, 0x8a71, 0x8a85, 0x8a6d, 0x8a62, 0x8a6e, 0x8a6c, 0x8a79, 0x8a7b, 0x8a3e, 0x8a68, 0x8c62, 0x8c8a, 0x8c89, 0x8cca, 0x8cc7, 0x8cc8, 0x8cc4, 0x8cb2, 0x8cc3, 0x8cc2, 0x8cc5, 0x8de1, 0x8ddf, 0x8de8, 0x8def, 0x8df3, 0x8dfa, 0x8dea, 0x8de4, 0x8de6, 0x8eb2, 0x8f03, 0x8f09, 0x8efe, 0x8f0a, 0x003f, /* lead byte b9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f9f, 0x8fb2, 0x904b, 0x904a, 0x9053, 0x9042, 0x9054, 0x903c, 0x9055, 0x9050, 0x9047, 0x904f, 0x904e, 0x904d, 0x9051, 0x903e, 0x9041, 0x9112, 0x9117, 0x916c, 0x916a, 0x9169, 0x91c9, 0x9237, 0x9257, 0x9238, 0x923d, 0x9240, 0x923e, 0x925b, 0x924b, 0x9264, 0x9251, 0x9234, 0x9249, 0x924d, 0x9245, 0x9239, 0x923f, 0x925a, 0x9598, 0x9698, 0x9694, 0x9695, 0x96cd, 0x96cb, 0x96c9, 0x96ca, 0x96f7, 0x96fb, 0x96f9, 0x96f6, 0x9756, 0x9774, 0x9776, 0x9810, 0x9811, 0x9813, 0x980a, 0x9812, 0x980c, 0x98fc, 0x98f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x98fd, 0x98fe, 0x99b3, 0x99b1, 0x99b4, 0x9ae1, 0x9ce9, 0x9e82, 0x9f0e, 0x9f13, 0x9f20, 0x50e7, 0x50ee, 0x50e5, 0x50d6, 0x50ed, 0x50da, 0x50d5, 0x50cf, 0x50d1, 0x50f1, 0x50ce, 0x50e9, 0x5162, 0x51f3, 0x5283, 0x5282, 0x5331, 0x53ad, 0x55fe, 0x5600, 0x561b, 0x5617, 0x55fd, 0x5614, 0x5606, 0x5609, 0x560d, 0x560e, 0x55f7, 0x5616, 0x561f, 0x5608, 0x5610, 0x55f6, 0x5718, 0x5716, 0x5875, 0x587e, 0x5883, 0x5893, 0x588a, 0x5879, 0x5885, 0x587d, 0x58fd, 0x5925, 0x5922, 0x5924, 0x596a, 0x5969, 0x5ae1, 0x5ae6, 0x5ae9, 0x5ad7, 0x5ad6, 0x5ad8, 0x5ae3, 0x5b75, 0x5bde, 0x5be7, 0x5be1, 0x5be5, 0x5be6, 0x5be8, 0x5be2, 0x5be4, 0x5bdf, 0x5c0d, 0x5c62, 0x5d84, 0x5d87, 0x5e5b, 0x5e63, 0x5e55, 0x5e57, 0x5e54, 0x5ed3, 0x5ed6, 0x5f0a, 0x5f46, 0x5f70, 0x5fb9, 0x6147, 0x003f, /* lead byte ba */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x613f, 0x614b, 0x6177, 0x6162, 0x6163, 0x615f, 0x615a, 0x6158, 0x6175, 0x622a, 0x6487, 0x6458, 0x6454, 0x64a4, 0x6478, 0x645f, 0x647a, 0x6451, 0x6467, 0x6434, 0x646d, 0x647b, 0x6572, 0x65a1, 0x65d7, 0x65d6, 0x66a2, 0x66a8, 0x669d, 0x699c, 0x69a8, 0x6995, 0x69c1, 0x69ae, 0x69d3, 0x69cb, 0x699b, 0x69b7, 0x69bb, 0x69ab, 0x69b4, 0x69d0, 0x69cd, 0x69ad, 0x69cc, 0x69a6, 0x69c3, 0x69a3, 0x6b49, 0x6b4c, 0x6c33, 0x6f33, 0x6f14, 0x6efe, 0x6f13, 0x6ef4, 0x6f29, 0x6f3e, 0x6f20, 0x6f2c, 0x6f0f, 0x6f02, 0x6f22, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6eff, 0x6eef, 0x6f06, 0x6f31, 0x6f38, 0x6f32, 0x6f23, 0x6f15, 0x6f2b, 0x6f2f, 0x6f88, 0x6f2a, 0x6eec, 0x6f01, 0x6ef2, 0x6ecc, 0x6ef7, 0x7194, 0x7199, 0x717d, 0x718a, 0x7184, 0x7192, 0x723e, 0x7292, 0x7296, 0x7344, 0x7350, 0x7464, 0x7463, 0x746a, 0x7470, 0x746d, 0x7504, 0x7591, 0x7627, 0x760d, 0x760b, 0x7609, 0x7613, 0x76e1, 0x76e3, 0x7784, 0x777d, 0x777f, 0x7761, 0x78c1, 0x789f, 0x78a7, 0x78b3, 0x78a9, 0x78a3, 0x798e, 0x798f, 0x798d, 0x7a2e, 0x7a31, 0x7aaa, 0x7aa9, 0x7aed, 0x7aef, 0x7ba1, 0x7b95, 0x7b8b, 0x7b75, 0x7b97, 0x7b9d, 0x7b94, 0x7b8f, 0x7bb8, 0x7b87, 0x7b84, 0x7cb9, 0x7cbd, 0x7cbe, 0x7dbb, 0x7db0, 0x7d9c, 0x7dbd, 0x7dbe, 0x7da0, 0x7dca, 0x7db4, 0x7db2, 0x7db1, 0x7dba, 0x7da2, 0x7dbf, 0x7db5, 0x7db8, 0x7dad, 0x7dd2, 0x7dc7, 0x7dac, 0x003f, /* lead byte bb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7f70, 0x7fe0, 0x7fe1, 0x7fdf, 0x805e, 0x805a, 0x8087, 0x8150, 0x8180, 0x818f, 0x8188, 0x818a, 0x817f, 0x8182, 0x81e7, 0x81fa, 0x8207, 0x8214, 0x821e, 0x824b, 0x84c9, 0x84bf, 0x84c6, 0x84c4, 0x8499, 0x849e, 0x84b2, 0x849c, 0x84cb, 0x84b8, 0x84c0, 0x84d3, 0x8490, 0x84bc, 0x84d1, 0x84ca, 0x873f, 0x871c, 0x873b, 0x8722, 0x8725, 0x8734, 0x8718, 0x8755, 0x8737, 0x8729, 0x88f3, 0x8902, 0x88f4, 0x88f9, 0x88f8, 0x88fd, 0x88e8, 0x891a, 0x88ef, 0x8aa6, 0x8a8c, 0x8a9e, 0x8aa3, 0x8a8d, 0x8aa1, 0x8a93, 0x8aa4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8aaa, 0x8aa5, 0x8aa8, 0x8a98, 0x8a91, 0x8a9a, 0x8aa7, 0x8c6a, 0x8c8d, 0x8c8c, 0x8cd3, 0x8cd1, 0x8cd2, 0x8d6b, 0x8d99, 0x8d95, 0x8dfc, 0x8f14, 0x8f12, 0x8f15, 0x8f13, 0x8fa3, 0x9060, 0x9058, 0x905c, 0x9063, 0x9059, 0x905e, 0x9062, 0x905d, 0x905b, 0x9119, 0x9118, 0x911e, 0x9175, 0x9178, 0x9177, 0x9174, 0x9278, 0x9280, 0x9285, 0x9298, 0x9296, 0x927b, 0x9293, 0x929c, 0x92a8, 0x927c, 0x9291, 0x95a1, 0x95a8, 0x95a9, 0x95a3, 0x95a5, 0x95a4, 0x9699, 0x969c, 0x969b, 0x96cc, 0x96d2, 0x9700, 0x977c, 0x9785, 0x97f6, 0x9817, 0x9818, 0x98af, 0x98b1, 0x9903, 0x9905, 0x990c, 0x9909, 0x99c1, 0x9aaf, 0x9ab0, 0x9ae6, 0x9b41, 0x9b42, 0x9cf4, 0x9cf6, 0x9cf3, 0x9ebc, 0x9f3b, 0x9f4a, 0x5104, 0x5100, 0x50fb, 0x50f5, 0x50f9, 0x5102, 0x5108, 0x5109, 0x5105, 0x51dc, 0x003f, /* lead byte bc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5287, 0x5288, 0x5289, 0x528d, 0x528a, 0x52f0, 0x53b2, 0x562e, 0x563b, 0x5639, 0x5632, 0x563f, 0x5634, 0x5629, 0x5653, 0x564e, 0x5657, 0x5674, 0x5636, 0x562f, 0x5630, 0x5880, 0x589f, 0x589e, 0x58b3, 0x589c, 0x58ae, 0x58a9, 0x58a6, 0x596d, 0x5b09, 0x5afb, 0x5b0b, 0x5af5, 0x5b0c, 0x5b08, 0x5bee, 0x5bec, 0x5be9, 0x5beb, 0x5c64, 0x5c65, 0x5d9d, 0x5d94, 0x5e62, 0x5e5f, 0x5e61, 0x5ee2, 0x5eda, 0x5edf, 0x5edd, 0x5ee3, 0x5ee0, 0x5f48, 0x5f71, 0x5fb7, 0x5fb5, 0x6176, 0x6167, 0x616e, 0x615d, 0x6155, 0x6182, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x617c, 0x6170, 0x616b, 0x617e, 0x61a7, 0x6190, 0x61ab, 0x618e, 0x61ac, 0x619a, 0x61a4, 0x6194, 0x61ae, 0x622e, 0x6469, 0x646f, 0x6479, 0x649e, 0x64b2, 0x6488, 0x6490, 0x64b0, 0x64a5, 0x6493, 0x6495, 0x64a9, 0x6492, 0x64ae, 0x64ad, 0x64ab, 0x649a, 0x64ac, 0x6499, 0x64a2, 0x64b3, 0x6575, 0x6577, 0x6578, 0x66ae, 0x66ab, 0x66b4, 0x66b1, 0x6a23, 0x6a1f, 0x69e8, 0x6a01, 0x6a1e, 0x6a19, 0x69fd, 0x6a21, 0x6a13, 0x6a0a, 0x69f3, 0x6a02, 0x6a05, 0x69ed, 0x6a11, 0x6b50, 0x6b4e, 0x6ba4, 0x6bc5, 0x6bc6, 0x6f3f, 0x6f7c, 0x6f84, 0x6f51, 0x6f66, 0x6f54, 0x6f86, 0x6f6d, 0x6f5b, 0x6f78, 0x6f6e, 0x6f8e, 0x6f7a, 0x6f70, 0x6f64, 0x6f97, 0x6f58, 0x6ed5, 0x6f6f, 0x6f60, 0x6f5f, 0x719f, 0x71ac, 0x71b1, 0x71a8, 0x7256, 0x729b, 0x734e, 0x7357, 0x7469, 0x748b, 0x7483, 0x003f, /* lead byte bd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x747e, 0x7480, 0x757f, 0x7620, 0x7629, 0x761f, 0x7624, 0x7626, 0x7621, 0x7622, 0x769a, 0x76ba, 0x76e4, 0x778e, 0x7787, 0x778c, 0x7791, 0x778b, 0x78cb, 0x78c5, 0x78ba, 0x78ca, 0x78be, 0x78d5, 0x78bc, 0x78d0, 0x7a3f, 0x7a3c, 0x7a40, 0x7a3d, 0x7a37, 0x7a3b, 0x7aaf, 0x7aae, 0x7bad, 0x7bb1, 0x7bc4, 0x7bb4, 0x7bc6, 0x7bc7, 0x7bc1, 0x7ba0, 0x7bcc, 0x7cca, 0x7de0, 0x7df4, 0x7def, 0x7dfb, 0x7dd8, 0x7dec, 0x7ddd, 0x7de8, 0x7de3, 0x7dda, 0x7dde, 0x7de9, 0x7d9e, 0x7dd9, 0x7df2, 0x7df9, 0x7f75, 0x7f77, 0x7faf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7fe9, 0x8026, 0x819b, 0x819c, 0x819d, 0x81a0, 0x819a, 0x8198, 0x8517, 0x853d, 0x851a, 0x84ee, 0x852c, 0x852d, 0x8513, 0x8511, 0x8523, 0x8521, 0x8514, 0x84ec, 0x8525, 0x84ff, 0x8506, 0x8782, 0x8774, 0x8776, 0x8760, 0x8766, 0x8778, 0x8768, 0x8759, 0x8757, 0x874c, 0x8753, 0x885b, 0x885d, 0x8910, 0x8907, 0x8912, 0x8913, 0x8915, 0x890a, 0x8abc, 0x8ad2, 0x8ac7, 0x8ac4, 0x8a95, 0x8acb, 0x8af8, 0x8ab2, 0x8ac9, 0x8ac2, 0x8abf, 0x8ab0, 0x8ad6, 0x8acd, 0x8ab6, 0x8ab9, 0x8adb, 0x8c4c, 0x8c4e, 0x8c6c, 0x8ce0, 0x8cde, 0x8ce6, 0x8ce4, 0x8cec, 0x8ced, 0x8ce2, 0x8ce3, 0x8cdc, 0x8cea, 0x8ce1, 0x8d6d, 0x8d9f, 0x8da3, 0x8e2b, 0x8e10, 0x8e1d, 0x8e22, 0x8e0f, 0x8e29, 0x8e1f, 0x8e21, 0x8e1e, 0x8eba, 0x8f1d, 0x8f1b, 0x8f1f, 0x8f29, 0x8f26, 0x8f2a, 0x8f1c, 0x8f1e, 0x003f, /* lead byte be */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8f25, 0x9069, 0x906e, 0x9068, 0x906d, 0x9077, 0x9130, 0x912d, 0x9127, 0x9131, 0x9187, 0x9189, 0x918b, 0x9183, 0x92c5, 0x92bb, 0x92b7, 0x92ea, 0x92ac, 0x92e4, 0x92c1, 0x92b3, 0x92bc, 0x92d2, 0x92c7, 0x92f0, 0x92b2, 0x95ad, 0x95b1, 0x9704, 0x9706, 0x9707, 0x9709, 0x9760, 0x978d, 0x978b, 0x978f, 0x9821, 0x982b, 0x981c, 0x98b3, 0x990a, 0x9913, 0x9912, 0x9918, 0x99dd, 0x99d0, 0x99df, 0x99db, 0x99d1, 0x99d5, 0x99d2, 0x99d9, 0x9ab7, 0x9aee, 0x9aef, 0x9b27, 0x9b45, 0x9b44, 0x9b77, 0x9b6f, 0x9d06, 0x9d09, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d03, 0x9ea9, 0x9ebe, 0x9ece, 0x58a8, 0x9f52, 0x5112, 0x5118, 0x5114, 0x5110, 0x5115, 0x5180, 0x51aa, 0x51dd, 0x5291, 0x5293, 0x52f3, 0x5659, 0x566b, 0x5679, 0x5669, 0x5664, 0x5678, 0x566a, 0x5668, 0x5665, 0x5671, 0x566f, 0x566c, 0x5662, 0x5676, 0x58c1, 0x58be, 0x58c7, 0x58c5, 0x596e, 0x5b1d, 0x5b34, 0x5b78, 0x5bf0, 0x5c0e, 0x5f4a, 0x61b2, 0x6191, 0x61a9, 0x618a, 0x61cd, 0x61b6, 0x61be, 0x61ca, 0x61c8, 0x6230, 0x64c5, 0x64c1, 0x64cb, 0x64bb, 0x64bc, 0x64da, 0x64c4, 0x64c7, 0x64c2, 0x64cd, 0x64bf, 0x64d2, 0x64d4, 0x64be, 0x6574, 0x66c6, 0x66c9, 0x66b9, 0x66c4, 0x66c7, 0x66b8, 0x6a3d, 0x6a38, 0x6a3a, 0x6a59, 0x6a6b, 0x6a58, 0x6a39, 0x6a44, 0x6a62, 0x6a61, 0x6a4b, 0x6a47, 0x6a35, 0x6a5f, 0x6a48, 0x6b59, 0x6b77, 0x6c05, 0x6fc2, 0x6fb1, 0x6fa1, 0x003f, /* lead byte bf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6fc3, 0x6fa4, 0x6fc1, 0x6fa7, 0x6fb3, 0x6fc0, 0x6fb9, 0x6fb6, 0x6fa6, 0x6fa0, 0x6fb4, 0x71be, 0x71c9, 0x71d0, 0x71d2, 0x71c8, 0x71d5, 0x71b9, 0x71ce, 0x71d9, 0x71dc, 0x71c3, 0x71c4, 0x7368, 0x749c, 0x74a3, 0x7498, 0x749f, 0x749e, 0x74e2, 0x750c, 0x750d, 0x7634, 0x7638, 0x763a, 0x76e7, 0x76e5, 0x77a0, 0x779e, 0x779f, 0x77a5, 0x78e8, 0x78da, 0x78ec, 0x78e7, 0x79a6, 0x7a4d, 0x7a4e, 0x7a46, 0x7a4c, 0x7a4b, 0x7aba, 0x7bd9, 0x7c11, 0x7bc9, 0x7be4, 0x7bdb, 0x7be1, 0x7be9, 0x7be6, 0x7cd5, 0x7cd6, 0x7e0a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e11, 0x7e08, 0x7e1b, 0x7e23, 0x7e1e, 0x7e1d, 0x7e09, 0x7e10, 0x7f79, 0x7fb2, 0x7ff0, 0x7ff1, 0x7fee, 0x8028, 0x81b3, 0x81a9, 0x81a8, 0x81fb, 0x8208, 0x8258, 0x8259, 0x854a, 0x8559, 0x8548, 0x8568, 0x8569, 0x8543, 0x8549, 0x856d, 0x856a, 0x855e, 0x8783, 0x879f, 0x879e, 0x87a2, 0x878d, 0x8861, 0x892a, 0x8932, 0x8925, 0x892b, 0x8921, 0x89aa, 0x89a6, 0x8ae6, 0x8afa, 0x8aeb, 0x8af1, 0x8b00, 0x8adc, 0x8ae7, 0x8aee, 0x8afe, 0x8b01, 0x8b02, 0x8af7, 0x8aed, 0x8af3, 0x8af6, 0x8afc, 0x8c6b, 0x8c6d, 0x8c93, 0x8cf4, 0x8e44, 0x8e31, 0x8e34, 0x8e42, 0x8e39, 0x8e35, 0x8f3b, 0x8f2f, 0x8f38, 0x8f33, 0x8fa8, 0x8fa6, 0x9075, 0x9074, 0x9078, 0x9072, 0x907c, 0x907a, 0x9134, 0x9192, 0x9320, 0x9336, 0x92f8, 0x9333, 0x932f, 0x9322, 0x92fc, 0x932b, 0x9304, 0x931a, 0x003f, /* lead byte c0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9310, 0x9326, 0x9321, 0x9315, 0x932e, 0x9319, 0x95bb, 0x96a7, 0x96a8, 0x96aa, 0x96d5, 0x970e, 0x9711, 0x9716, 0x970d, 0x9713, 0x970f, 0x975b, 0x975c, 0x9766, 0x9798, 0x9830, 0x9838, 0x983b, 0x9837, 0x982d, 0x9839, 0x9824, 0x9910, 0x9928, 0x991e, 0x991b, 0x9921, 0x991a, 0x99ed, 0x99e2, 0x99f1, 0x9ab8, 0x9abc, 0x9afb, 0x9aed, 0x9b28, 0x9b91, 0x9d15, 0x9d23, 0x9d26, 0x9d28, 0x9d12, 0x9d1b, 0x9ed8, 0x9ed4, 0x9f8d, 0x9f9c, 0x512a, 0x511f, 0x5121, 0x5132, 0x52f5, 0x568e, 0x5680, 0x5690, 0x5685, 0x5687, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x568f, 0x58d5, 0x58d3, 0x58d1, 0x58ce, 0x5b30, 0x5b2a, 0x5b24, 0x5b7a, 0x5c37, 0x5c68, 0x5dbc, 0x5dba, 0x5dbd, 0x5db8, 0x5e6b, 0x5f4c, 0x5fbd, 0x61c9, 0x61c2, 0x61c7, 0x61e6, 0x61cb, 0x6232, 0x6234, 0x64ce, 0x64ca, 0x64d8, 0x64e0, 0x64f0, 0x64e6, 0x64ec, 0x64f1, 0x64e2, 0x64ed, 0x6582, 0x6583, 0x66d9, 0x66d6, 0x6a80, 0x6a94, 0x6a84, 0x6aa2, 0x6a9c, 0x6adb, 0x6aa3, 0x6a7e, 0x6a97, 0x6a90, 0x6aa0, 0x6b5c, 0x6bae, 0x6bda, 0x6c08, 0x6fd8, 0x6ff1, 0x6fdf, 0x6fe0, 0x6fdb, 0x6fe4, 0x6feb, 0x6fef, 0x6f80, 0x6fec, 0x6fe1, 0x6fe9, 0x6fd5, 0x6fee, 0x6ff0, 0x71e7, 0x71df, 0x71ee, 0x71e6, 0x71e5, 0x71ed, 0x71ec, 0x71f4, 0x71e0, 0x7235, 0x7246, 0x7370, 0x7372, 0x74a9, 0x74b0, 0x74a6, 0x74a8, 0x7646, 0x7642, 0x764c, 0x76ea, 0x77b3, 0x77aa, 0x77b0, 0x77ac, 0x003f, /* lead byte c1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x77a7, 0x77ad, 0x77ef, 0x78f7, 0x78fa, 0x78f4, 0x78ef, 0x7901, 0x79a7, 0x79aa, 0x7a57, 0x7abf, 0x7c07, 0x7c0d, 0x7bfe, 0x7bf7, 0x7c0c, 0x7be0, 0x7ce0, 0x7cdc, 0x7cde, 0x7ce2, 0x7cdf, 0x7cd9, 0x7cdd, 0x7e2e, 0x7e3e, 0x7e46, 0x7e37, 0x7e32, 0x7e43, 0x7e2b, 0x7e3d, 0x7e31, 0x7e45, 0x7e41, 0x7e34, 0x7e39, 0x7e48, 0x7e35, 0x7e3f, 0x7e2f, 0x7f44, 0x7ff3, 0x7ffc, 0x8071, 0x8072, 0x8070, 0x806f, 0x8073, 0x81c6, 0x81c3, 0x81ba, 0x81c2, 0x81c0, 0x81bf, 0x81bd, 0x81c9, 0x81be, 0x81e8, 0x8209, 0x8271, 0x85aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8584, 0x857e, 0x859c, 0x8591, 0x8594, 0x85af, 0x859b, 0x8587, 0x85a8, 0x858a, 0x8667, 0x87c0, 0x87d1, 0x87b3, 0x87d2, 0x87c6, 0x87ab, 0x87bb, 0x87ba, 0x87c8, 0x87cb, 0x893b, 0x8936, 0x8944, 0x8938, 0x893d, 0x89ac, 0x8b0e, 0x8b17, 0x8b19, 0x8b1b, 0x8b0a, 0x8b20, 0x8b1d, 0x8b04, 0x8b10, 0x8c41, 0x8c3f, 0x8c73, 0x8cfa, 0x8cfd, 0x8cfc, 0x8cf8, 0x8cfb, 0x8da8, 0x8e49, 0x8e4b, 0x8e48, 0x8e4a, 0x8f44, 0x8f3e, 0x8f42, 0x8f45, 0x8f3f, 0x907f, 0x907d, 0x9084, 0x9081, 0x9082, 0x9080, 0x9139, 0x91a3, 0x919e, 0x919c, 0x934d, 0x9382, 0x9328, 0x9375, 0x934a, 0x9365, 0x934b, 0x9318, 0x937e, 0x936c, 0x935b, 0x9370, 0x935a, 0x9354, 0x95ca, 0x95cb, 0x95cc, 0x95c8, 0x95c6, 0x96b1, 0x96b8, 0x96d6, 0x971c, 0x971e, 0x97a0, 0x97d3, 0x9846, 0x98b6, 0x9935, 0x9a01, 0x003f, /* lead byte c2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x99ff, 0x9bae, 0x9bab, 0x9baa, 0x9bad, 0x9d3b, 0x9d3f, 0x9e8b, 0x9ecf, 0x9ede, 0x9edc, 0x9edd, 0x9edb, 0x9f3e, 0x9f4b, 0x53e2, 0x5695, 0x56ae, 0x58d9, 0x58d8, 0x5b38, 0x5f5d, 0x61e3, 0x6233, 0x64f4, 0x64f2, 0x64fe, 0x6506, 0x64fa, 0x64fb, 0x64f7, 0x65b7, 0x66dc, 0x6726, 0x6ab3, 0x6aac, 0x6ac3, 0x6abb, 0x6ab8, 0x6ac2, 0x6aae, 0x6aaf, 0x6b5f, 0x6b78, 0x6baf, 0x7009, 0x700b, 0x6ffe, 0x7006, 0x6ffa, 0x7011, 0x700f, 0x71fb, 0x71fc, 0x71fe, 0x71f8, 0x7377, 0x7375, 0x74a7, 0x74bf, 0x7515, 0x7656, 0x7658, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7652, 0x77bd, 0x77bf, 0x77bb, 0x77bc, 0x790e, 0x79ae, 0x7a61, 0x7a62, 0x7a60, 0x7ac4, 0x7ac5, 0x7c2b, 0x7c27, 0x7c2a, 0x7c1e, 0x7c23, 0x7c21, 0x7ce7, 0x7e54, 0x7e55, 0x7e5e, 0x7e5a, 0x7e61, 0x7e52, 0x7e59, 0x7f48, 0x7ff9, 0x7ffb, 0x8077, 0x8076, 0x81cd, 0x81cf, 0x820a, 0x85cf, 0x85a9, 0x85cd, 0x85d0, 0x85c9, 0x85b0, 0x85ba, 0x85b9, 0x85a6, 0x87ef, 0x87ec, 0x87f2, 0x87e0, 0x8986, 0x89b2, 0x89f4, 0x8b28, 0x8b39, 0x8b2c, 0x8b2b, 0x8c50, 0x8d05, 0x8e59, 0x8e63, 0x8e66, 0x8e64, 0x8e5f, 0x8e55, 0x8ec0, 0x8f49, 0x8f4d, 0x9087, 0x9083, 0x9088, 0x91ab, 0x91ac, 0x91d0, 0x9394, 0x938a, 0x9396, 0x93a2, 0x93b3, 0x93ae, 0x93ac, 0x93b0, 0x9398, 0x939a, 0x9397, 0x95d4, 0x95d6, 0x95d0, 0x95d5, 0x96e2, 0x96dc, 0x96d9, 0x96db, 0x96de, 0x9724, 0x97a3, 0x97a6, 0x003f, /* lead byte c3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97ad, 0x97f9, 0x984d, 0x984f, 0x984c, 0x984e, 0x9853, 0x98ba, 0x993e, 0x993f, 0x993d, 0x992e, 0x99a5, 0x9a0e, 0x9ac1, 0x9b03, 0x9b06, 0x9b4f, 0x9b4e, 0x9b4d, 0x9bca, 0x9bc9, 0x9bfd, 0x9bc8, 0x9bc0, 0x9d51, 0x9d5d, 0x9d60, 0x9ee0, 0x9f15, 0x9f2c, 0x5133, 0x56a5, 0x58de, 0x58df, 0x58e2, 0x5bf5, 0x9f90, 0x5eec, 0x61f2, 0x61f7, 0x61f6, 0x61f5, 0x6500, 0x650f, 0x66e0, 0x66dd, 0x6ae5, 0x6add, 0x6ada, 0x6ad3, 0x701b, 0x701f, 0x7028, 0x701a, 0x701d, 0x7015, 0x7018, 0x7206, 0x720d, 0x7258, 0x72a2, 0x7378, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x737a, 0x74bd, 0x74ca, 0x74e3, 0x7587, 0x7586, 0x765f, 0x7661, 0x77c7, 0x7919, 0x79b1, 0x7a6b, 0x7a69, 0x7c3e, 0x7c3f, 0x7c38, 0x7c3d, 0x7c37, 0x7c40, 0x7e6b, 0x7e6d, 0x7e79, 0x7e69, 0x7e6a, 0x7f85, 0x7e73, 0x7fb6, 0x7fb9, 0x7fb8, 0x81d8, 0x85e9, 0x85dd, 0x85ea, 0x85d5, 0x85e4, 0x85e5, 0x85f7, 0x87fb, 0x8805, 0x880d, 0x87f9, 0x87fe, 0x8960, 0x895f, 0x8956, 0x895e, 0x8b41, 0x8b5c, 0x8b58, 0x8b49, 0x8b5a, 0x8b4e, 0x8b4f, 0x8b46, 0x8b59, 0x8d08, 0x8d0a, 0x8e7c, 0x8e72, 0x8e87, 0x8e76, 0x8e6c, 0x8e7a, 0x8e74, 0x8f54, 0x8f4e, 0x8fad, 0x908a, 0x908b, 0x91b1, 0x91ae, 0x93e1, 0x93d1, 0x93df, 0x93c3, 0x93c8, 0x93dc, 0x93dd, 0x93d6, 0x93e2, 0x93cd, 0x93d8, 0x93e4, 0x93d7, 0x93e8, 0x95dc, 0x96b4, 0x96e3, 0x972a, 0x9727, 0x9761, 0x97dc, 0x97fb, 0x985e, 0x003f, /* lead byte c4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9858, 0x985b, 0x98bc, 0x9945, 0x9949, 0x9a16, 0x9a19, 0x9b0d, 0x9be8, 0x9be7, 0x9bd6, 0x9bdb, 0x9d89, 0x9d61, 0x9d72, 0x9d6a, 0x9d6c, 0x9e92, 0x9e97, 0x9e93, 0x9eb4, 0x52f8, 0x56a8, 0x56b7, 0x56b6, 0x56b4, 0x56bc, 0x58e4, 0x5b40, 0x5b43, 0x5b7d, 0x5bf6, 0x5dc9, 0x61f8, 0x61fa, 0x6518, 0x6514, 0x6519, 0x66e6, 0x6727, 0x6aec, 0x703e, 0x7030, 0x7032, 0x7210, 0x737b, 0x74cf, 0x7662, 0x7665, 0x7926, 0x792a, 0x792c, 0x792b, 0x7ac7, 0x7af6, 0x7c4c, 0x7c43, 0x7c4d, 0x7cef, 0x7cf0, 0x8fae, 0x7e7d, 0x7e7c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e82, 0x7f4c, 0x8000, 0x81da, 0x8266, 0x85fb, 0x85f9, 0x8611, 0x85fa, 0x8606, 0x860b, 0x8607, 0x860a, 0x8814, 0x8815, 0x8964, 0x89ba, 0x89f8, 0x8b70, 0x8b6c, 0x8b66, 0x8b6f, 0x8b5f, 0x8b6b, 0x8d0f, 0x8d0d, 0x8e89, 0x8e81, 0x8e85, 0x8e82, 0x91b4, 0x91cb, 0x9418, 0x9403, 0x93fd, 0x95e1, 0x9730, 0x98c4, 0x9952, 0x9951, 0x99a8, 0x9a2b, 0x9a30, 0x9a37, 0x9a35, 0x9c13, 0x9c0d, 0x9e79, 0x9eb5, 0x9ee8, 0x9f2f, 0x9f5f, 0x9f63, 0x9f61, 0x5137, 0x5138, 0x56c1, 0x56c0, 0x56c2, 0x5914, 0x5c6c, 0x5dcd, 0x61fc, 0x61fe, 0x651d, 0x651c, 0x6595, 0x66e9, 0x6afb, 0x6b04, 0x6afa, 0x6bb2, 0x704c, 0x721b, 0x72a7, 0x74d6, 0x74d4, 0x7669, 0x77d3, 0x7c50, 0x7e8f, 0x7e8c, 0x7fbc, 0x8617, 0x862d, 0x861a, 0x8823, 0x8822, 0x8821, 0x881f, 0x896a, 0x896c, 0x89bd, 0x8b74, 0x003f, /* lead byte c5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b77, 0x8b7d, 0x8d13, 0x8e8a, 0x8e8d, 0x8e8b, 0x8f5f, 0x8faf, 0x91ba, 0x942e, 0x9433, 0x9435, 0x943a, 0x9438, 0x9432, 0x942b, 0x95e2, 0x9738, 0x9739, 0x9732, 0x97ff, 0x9867, 0x9865, 0x9957, 0x9a45, 0x9a43, 0x9a40, 0x9a3e, 0x9acf, 0x9b54, 0x9b51, 0x9c2d, 0x9c25, 0x9daf, 0x9db4, 0x9dc2, 0x9db8, 0x9e9d, 0x9eef, 0x9f19, 0x9f5c, 0x9f66, 0x9f67, 0x513c, 0x513b, 0x56c8, 0x56ca, 0x56c9, 0x5b7f, 0x5dd4, 0x5dd2, 0x5f4e, 0x61ff, 0x6524, 0x6b0a, 0x6b61, 0x7051, 0x7058, 0x7380, 0x74e4, 0x758a, 0x766e, 0x766c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x79b3, 0x7c60, 0x7c5f, 0x807e, 0x807d, 0x81df, 0x8972, 0x896f, 0x89fc, 0x8b80, 0x8d16, 0x8d17, 0x8e91, 0x8e93, 0x8f61, 0x9148, 0x9444, 0x9451, 0x9452, 0x973d, 0x973e, 0x97c3, 0x97c1, 0x986b, 0x9955, 0x9a55, 0x9a4d, 0x9ad2, 0x9b1a, 0x9c49, 0x9c31, 0x9c3e, 0x9c3b, 0x9dd3, 0x9dd7, 0x9f34, 0x9f6c, 0x9f6a, 0x9f94, 0x56cc, 0x5dd6, 0x6200, 0x6523, 0x652b, 0x652a, 0x66ec, 0x6b10, 0x74da, 0x7aca, 0x7c64, 0x7c63, 0x7c65, 0x7e93, 0x7e96, 0x7e94, 0x81e2, 0x8638, 0x863f, 0x8831, 0x8b8a, 0x9090, 0x908f, 0x9463, 0x9460, 0x9464, 0x9768, 0x986f, 0x995c, 0x9a5a, 0x9a5b, 0x9a57, 0x9ad3, 0x9ad4, 0x9ad1, 0x9c54, 0x9c57, 0x9c56, 0x9de5, 0x9e9f, 0x9ef4, 0x56d1, 0x58e9, 0x652c, 0x705e, 0x7671, 0x7672, 0x77d7, 0x7f50, 0x7f88, 0x8836, 0x8839, 0x8862, 0x8b93, 0x8b92, 0x003f, /* lead byte c6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b96, 0x8277, 0x8d1b, 0x91c0, 0x946a, 0x9742, 0x9748, 0x9744, 0x97c6, 0x9870, 0x9a5f, 0x9b22, 0x9b58, 0x9c5f, 0x9df9, 0x9dfa, 0x9e7c, 0x9e7d, 0x9f07, 0x9f77, 0x9f72, 0x5ef3, 0x6b16, 0x7063, 0x7c6c, 0x7c6e, 0x883b, 0x89c0, 0x8ea1, 0x91c1, 0x9472, 0x9470, 0x9871, 0x995e, 0x9ad6, 0x9b23, 0x9ecc, 0x7064, 0x77da, 0x8b9a, 0x9477, 0x97c9, 0x9a62, 0x9a65, 0x7e9c, 0x8b9c, 0x8eaa, 0x91c5, 0x947d, 0x947e, 0x947c, 0x9c77, 0x9c78, 0x9ef7, 0x8c54, 0x947f, 0x9e1a, 0x7228, 0x9a6a, 0x9b31, 0x9e1b, 0x9e1e, 0x7c72, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* lead byte c9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x4e42, 0x4e5c, 0x51f5, 0x531a, 0x5382, 0x4e07, 0x4e0c, 0x4e47, 0x4e8d, 0x56d7, 0xfa0c, 0x5c6e, 0x5f73, 0x4e0f, 0x5187, 0x4e0e, 0x4e2e, 0x4e93, 0x4ec2, 0x4ec9, 0x4ec8, 0x5198, 0x52fc, 0x536c, 0x53b9, 0x5720, 0x5903, 0x592c, 0x5c10, 0x5dff, 0x65e1, 0x6bb3, 0x6bcc, 0x6c14, 0x723f, 0x4e31, 0x4e3c, 0x4ee8, 0x4edc, 0x4ee9, 0x4ee1, 0x4edd, 0x4eda, 0x520c, 0x531c, 0x534c, 0x5722, 0x5723, 0x5917, 0x592f, 0x5b81, 0x5b84, 0x5c12, 0x5c3b, 0x5c74, 0x5c73, 0x5e04, 0x5e80, 0x5e82, 0x5fc9, 0x6209, 0x6250, 0x6c15, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6c36, 0x6c43, 0x6c3f, 0x6c3b, 0x72ae, 0x72b0, 0x738a, 0x79b8, 0x808a, 0x961e, 0x4f0e, 0x4f18, 0x4f2c, 0x4ef5, 0x4f14, 0x4ef1, 0x4f00, 0x4ef7, 0x4f08, 0x4f1d, 0x4f02, 0x4f05, 0x4f22, 0x4f13, 0x4f04, 0x4ef4, 0x4f12, 0x51b1, 0x5213, 0x5209, 0x5210, 0x52a6, 0x5322, 0x531f, 0x534d, 0x538a, 0x5407, 0x56e1, 0x56df, 0x572e, 0x572a, 0x5734, 0x593c, 0x5980, 0x597c, 0x5985, 0x597b, 0x597e, 0x5977, 0x597f, 0x5b56, 0x5c15, 0x5c25, 0x5c7c, 0x5c7a, 0x5c7b, 0x5c7e, 0x5ddf, 0x5e75, 0x5e84, 0x5f02, 0x5f1a, 0x5f74, 0x5fd5, 0x5fd4, 0x5fcf, 0x625c, 0x625e, 0x6264, 0x6261, 0x6266, 0x6262, 0x6259, 0x6260, 0x625a, 0x6265, 0x65ef, 0x65ee, 0x673e, 0x6739, 0x6738, 0x673b, 0x673a, 0x673f, 0x673c, 0x6733, 0x6c18, 0x6c46, 0x6c52, 0x6c5c, 0x6c4f, 0x6c4a, 0x6c54, 0x6c4b, 0x003f, /* lead byte ca */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6c4c, 0x7071, 0x725e, 0x72b4, 0x72b5, 0x738e, 0x752a, 0x767f, 0x7a75, 0x7f51, 0x8278, 0x827c, 0x8280, 0x827d, 0x827f, 0x864d, 0x897e, 0x9099, 0x9097, 0x9098, 0x909b, 0x9094, 0x9622, 0x9624, 0x9620, 0x9623, 0x4f56, 0x4f3b, 0x4f62, 0x4f49, 0x4f53, 0x4f64, 0x4f3e, 0x4f67, 0x4f52, 0x4f5f, 0x4f41, 0x4f58, 0x4f2d, 0x4f33, 0x4f3f, 0x4f61, 0x518f, 0x51b9, 0x521c, 0x521e, 0x5221, 0x52ad, 0x52ae, 0x5309, 0x5363, 0x5372, 0x538e, 0x538f, 0x5430, 0x5437, 0x542a, 0x5454, 0x5445, 0x5419, 0x541c, 0x5425, 0x5418, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x543d, 0x544f, 0x5441, 0x5428, 0x5424, 0x5447, 0x56ee, 0x56e7, 0x56e5, 0x5741, 0x5745, 0x574c, 0x5749, 0x574b, 0x5752, 0x5906, 0x5940, 0x59a6, 0x5998, 0x59a0, 0x5997, 0x598e, 0x59a2, 0x5990, 0x598f, 0x59a7, 0x59a1, 0x5b8e, 0x5b92, 0x5c28, 0x5c2a, 0x5c8d, 0x5c8f, 0x5c88, 0x5c8b, 0x5c89, 0x5c92, 0x5c8a, 0x5c86, 0x5c93, 0x5c95, 0x5de0, 0x5e0a, 0x5e0e, 0x5e8b, 0x5e89, 0x5e8c, 0x5e88, 0x5e8d, 0x5f05, 0x5f1d, 0x5f78, 0x5f76, 0x5fd2, 0x5fd1, 0x5fd0, 0x5fed, 0x5fe8, 0x5fee, 0x5ff3, 0x5fe1, 0x5fe4, 0x5fe3, 0x5ffa, 0x5fef, 0x5ff7, 0x5ffb, 0x6000, 0x5ff4, 0x623a, 0x6283, 0x628c, 0x628e, 0x628f, 0x6294, 0x6287, 0x6271, 0x627b, 0x627a, 0x6270, 0x6281, 0x6288, 0x6277, 0x627d, 0x6272, 0x6274, 0x6537, 0x65f0, 0x65f4, 0x65f3, 0x65f2, 0x65f5, 0x6745, 0x6747, 0x003f, /* lead byte cb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6759, 0x6755, 0x674c, 0x6748, 0x675d, 0x674d, 0x675a, 0x674b, 0x6bd0, 0x6c19, 0x6c1a, 0x6c78, 0x6c67, 0x6c6b, 0x6c84, 0x6c8b, 0x6c8f, 0x6c71, 0x6c6f, 0x6c69, 0x6c9a, 0x6c6d, 0x6c87, 0x6c95, 0x6c9c, 0x6c66, 0x6c73, 0x6c65, 0x6c7b, 0x6c8e, 0x7074, 0x707a, 0x7263, 0x72bf, 0x72bd, 0x72c3, 0x72c6, 0x72c1, 0x72ba, 0x72c5, 0x7395, 0x7397, 0x7393, 0x7394, 0x7392, 0x753a, 0x7539, 0x7594, 0x7595, 0x7681, 0x793d, 0x8034, 0x8095, 0x8099, 0x8090, 0x8092, 0x809c, 0x8290, 0x828f, 0x8285, 0x828e, 0x8291, 0x8293, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x828a, 0x8283, 0x8284, 0x8c78, 0x8fc9, 0x8fbf, 0x909f, 0x90a1, 0x90a5, 0x909e, 0x90a7, 0x90a0, 0x9630, 0x9628, 0x962f, 0x962d, 0x4e33, 0x4f98, 0x4f7c, 0x4f85, 0x4f7d, 0x4f80, 0x4f87, 0x4f76, 0x4f74, 0x4f89, 0x4f84, 0x4f77, 0x4f4c, 0x4f97, 0x4f6a, 0x4f9a, 0x4f79, 0x4f81, 0x4f78, 0x4f90, 0x4f9c, 0x4f94, 0x4f9e, 0x4f92, 0x4f82, 0x4f95, 0x4f6b, 0x4f6e, 0x519e, 0x51bc, 0x51be, 0x5235, 0x5232, 0x5233, 0x5246, 0x5231, 0x52bc, 0x530a, 0x530b, 0x533c, 0x5392, 0x5394, 0x5487, 0x547f, 0x5481, 0x5491, 0x5482, 0x5488, 0x546b, 0x547a, 0x547e, 0x5465, 0x546c, 0x5474, 0x5466, 0x548d, 0x546f, 0x5461, 0x5460, 0x5498, 0x5463, 0x5467, 0x5464, 0x56f7, 0x56f9, 0x576f, 0x5772, 0x576d, 0x576b, 0x5771, 0x5770, 0x5776, 0x5780, 0x5775, 0x577b, 0x5773, 0x5774, 0x5762, 0x003f, /* lead byte cc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5768, 0x577d, 0x590c, 0x5945, 0x59b5, 0x59ba, 0x59cf, 0x59ce, 0x59b2, 0x59cc, 0x59c1, 0x59b6, 0x59bc, 0x59c3, 0x59d6, 0x59b1, 0x59bd, 0x59c0, 0x59c8, 0x59b4, 0x59c7, 0x5b62, 0x5b65, 0x5b93, 0x5b95, 0x5c44, 0x5c47, 0x5cae, 0x5ca4, 0x5ca0, 0x5cb5, 0x5caf, 0x5ca8, 0x5cac, 0x5c9f, 0x5ca3, 0x5cad, 0x5ca2, 0x5caa, 0x5ca7, 0x5c9d, 0x5ca5, 0x5cb6, 0x5cb0, 0x5ca6, 0x5e17, 0x5e14, 0x5e19, 0x5f28, 0x5f22, 0x5f23, 0x5f24, 0x5f54, 0x5f82, 0x5f7e, 0x5f7d, 0x5fde, 0x5fe5, 0x602d, 0x6026, 0x6019, 0x6032, 0x600b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6034, 0x600a, 0x6017, 0x6033, 0x601a, 0x601e, 0x602c, 0x6022, 0x600d, 0x6010, 0x602e, 0x6013, 0x6011, 0x600c, 0x6009, 0x601c, 0x6214, 0x623d, 0x62ad, 0x62b4, 0x62d1, 0x62be, 0x62aa, 0x62b6, 0x62ca, 0x62ae, 0x62b3, 0x62af, 0x62bb, 0x62a9, 0x62b0, 0x62b8, 0x653d, 0x65a8, 0x65bb, 0x6609, 0x65fc, 0x6604, 0x6612, 0x6608, 0x65fb, 0x6603, 0x660b, 0x660d, 0x6605, 0x65fd, 0x6611, 0x6610, 0x66f6, 0x670a, 0x6785, 0x676c, 0x678e, 0x6792, 0x6776, 0x677b, 0x6798, 0x6786, 0x6784, 0x6774, 0x678d, 0x678c, 0x677a, 0x679f, 0x6791, 0x6799, 0x6783, 0x677d, 0x6781, 0x6778, 0x6779, 0x6794, 0x6b25, 0x6b80, 0x6b7e, 0x6bde, 0x6c1d, 0x6c93, 0x6cec, 0x6ceb, 0x6cee, 0x6cd9, 0x6cb6, 0x6cd4, 0x6cad, 0x6ce7, 0x6cb7, 0x6cd0, 0x6cc2, 0x6cba, 0x6cc3, 0x6cc6, 0x6ced, 0x6cf2, 0x003f, /* lead byte cd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6cd2, 0x6cdd, 0x6cb4, 0x6c8a, 0x6c9d, 0x6c80, 0x6cde, 0x6cc0, 0x6d30, 0x6ccd, 0x6cc7, 0x6cb0, 0x6cf9, 0x6ccf, 0x6ce9, 0x6cd1, 0x7094, 0x7098, 0x7085, 0x7093, 0x7086, 0x7084, 0x7091, 0x7096, 0x7082, 0x709a, 0x7083, 0x726a, 0x72d6, 0x72cb, 0x72d8, 0x72c9, 0x72dc, 0x72d2, 0x72d4, 0x72da, 0x72cc, 0x72d1, 0x73a4, 0x73a1, 0x73ad, 0x73a6, 0x73a2, 0x73a0, 0x73ac, 0x739d, 0x74dd, 0x74e8, 0x753f, 0x7540, 0x753e, 0x758c, 0x7598, 0x76af, 0x76f3, 0x76f1, 0x76f0, 0x76f5, 0x77f8, 0x77fc, 0x77f9, 0x77fb, 0x77fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x77f7, 0x7942, 0x793f, 0x79c5, 0x7a78, 0x7a7b, 0x7afb, 0x7c75, 0x7cfd, 0x8035, 0x808f, 0x80ae, 0x80a3, 0x80b8, 0x80b5, 0x80ad, 0x8220, 0x82a0, 0x82c0, 0x82ab, 0x829a, 0x8298, 0x829b, 0x82b5, 0x82a7, 0x82ae, 0x82bc, 0x829e, 0x82ba, 0x82b4, 0x82a8, 0x82a1, 0x82a9, 0x82c2, 0x82a4, 0x82c3, 0x82b6, 0x82a2, 0x8670, 0x866f, 0x866d, 0x866e, 0x8c56, 0x8fd2, 0x8fcb, 0x8fd3, 0x8fcd, 0x8fd6, 0x8fd5, 0x8fd7, 0x90b2, 0x90b4, 0x90af, 0x90b3, 0x90b0, 0x9639, 0x963d, 0x963c, 0x963a, 0x9643, 0x4fcd, 0x4fc5, 0x4fd3, 0x4fb2, 0x4fc9, 0x4fcb, 0x4fc1, 0x4fd4, 0x4fdc, 0x4fd9, 0x4fbb, 0x4fb3, 0x4fdb, 0x4fc7, 0x4fd6, 0x4fba, 0x4fc0, 0x4fb9, 0x4fec, 0x5244, 0x5249, 0x52c0, 0x52c2, 0x533d, 0x537c, 0x5397, 0x5396, 0x5399, 0x5398, 0x54ba, 0x54a1, 0x54ad, 0x54a5, 0x54cf, 0x003f, /* lead byte ce */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x54c3, 0x830d, 0x54b7, 0x54ae, 0x54d6, 0x54b6, 0x54c5, 0x54c6, 0x54a0, 0x5470, 0x54bc, 0x54a2, 0x54be, 0x5472, 0x54de, 0x54b0, 0x57b5, 0x579e, 0x579f, 0x57a4, 0x578c, 0x5797, 0x579d, 0x579b, 0x5794, 0x5798, 0x578f, 0x5799, 0x57a5, 0x579a, 0x5795, 0x58f4, 0x590d, 0x5953, 0x59e1, 0x59de, 0x59ee, 0x5a00, 0x59f1, 0x59dd, 0x59fa, 0x59fd, 0x59fc, 0x59f6, 0x59e4, 0x59f2, 0x59f7, 0x59db, 0x59e9, 0x59f3, 0x59f5, 0x59e0, 0x59fe, 0x59f4, 0x59ed, 0x5ba8, 0x5c4c, 0x5cd0, 0x5cd8, 0x5ccc, 0x5cd7, 0x5ccb, 0x5cdb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5cde, 0x5cda, 0x5cc9, 0x5cc7, 0x5cca, 0x5cd6, 0x5cd3, 0x5cd4, 0x5ccf, 0x5cc8, 0x5cc6, 0x5cce, 0x5cdf, 0x5cf8, 0x5df9, 0x5e21, 0x5e22, 0x5e23, 0x5e20, 0x5e24, 0x5eb0, 0x5ea4, 0x5ea2, 0x5e9b, 0x5ea3, 0x5ea5, 0x5f07, 0x5f2e, 0x5f56, 0x5f86, 0x6037, 0x6039, 0x6054, 0x6072, 0x605e, 0x6045, 0x6053, 0x6047, 0x6049, 0x605b, 0x604c, 0x6040, 0x6042, 0x605f, 0x6024, 0x6044, 0x6058, 0x6066, 0x606e, 0x6242, 0x6243, 0x62cf, 0x630d, 0x630b, 0x62f5, 0x630e, 0x6303, 0x62eb, 0x62f9, 0x630f, 0x630c, 0x62f8, 0x62f6, 0x6300, 0x6313, 0x6314, 0x62fa, 0x6315, 0x62fb, 0x62f0, 0x6541, 0x6543, 0x65aa, 0x65bf, 0x6636, 0x6621, 0x6632, 0x6635, 0x661c, 0x6626, 0x6622, 0x6633, 0x662b, 0x663a, 0x661d, 0x6634, 0x6639, 0x662e, 0x670f, 0x6710, 0x67c1, 0x67f2, 0x67c8, 0x67ba, 0x003f, /* lead byte cf */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x67dc, 0x67bb, 0x67f8, 0x67d8, 0x67c0, 0x67b7, 0x67c5, 0x67eb, 0x67e4, 0x67df, 0x67b5, 0x67cd, 0x67b3, 0x67f7, 0x67f6, 0x67ee, 0x67e3, 0x67c2, 0x67b9, 0x67ce, 0x67e7, 0x67f0, 0x67b2, 0x67fc, 0x67c6, 0x67ed, 0x67cc, 0x67ae, 0x67e6, 0x67db, 0x67fa, 0x67c9, 0x67ca, 0x67c3, 0x67ea, 0x67cb, 0x6b28, 0x6b82, 0x6b84, 0x6bb6, 0x6bd6, 0x6bd8, 0x6be0, 0x6c20, 0x6c21, 0x6d28, 0x6d34, 0x6d2d, 0x6d1f, 0x6d3c, 0x6d3f, 0x6d12, 0x6d0a, 0x6cda, 0x6d33, 0x6d04, 0x6d19, 0x6d3a, 0x6d1a, 0x6d11, 0x6d00, 0x6d1d, 0x6d42, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6d01, 0x6d18, 0x6d37, 0x6d03, 0x6d0f, 0x6d40, 0x6d07, 0x6d20, 0x6d2c, 0x6d08, 0x6d22, 0x6d09, 0x6d10, 0x70b7, 0x709f, 0x70be, 0x70b1, 0x70b0, 0x70a1, 0x70b4, 0x70b5, 0x70a9, 0x7241, 0x7249, 0x724a, 0x726c, 0x7270, 0x7273, 0x726e, 0x72ca, 0x72e4, 0x72e8, 0x72eb, 0x72df, 0x72ea, 0x72e6, 0x72e3, 0x7385, 0x73cc, 0x73c2, 0x73c8, 0x73c5, 0x73b9, 0x73b6, 0x73b5, 0x73b4, 0x73eb, 0x73bf, 0x73c7, 0x73be, 0x73c3, 0x73c6, 0x73b8, 0x73cb, 0x74ec, 0x74ee, 0x752e, 0x7547, 0x7548, 0x75a7, 0x75aa, 0x7679, 0x76c4, 0x7708, 0x7703, 0x7704, 0x7705, 0x770a, 0x76f7, 0x76fb, 0x76fa, 0x77e7, 0x77e8, 0x7806, 0x7811, 0x7812, 0x7805, 0x7810, 0x780f, 0x780e, 0x7809, 0x7803, 0x7813, 0x794a, 0x794c, 0x794b, 0x7945, 0x7944, 0x79d5, 0x79cd, 0x79cf, 0x79d6, 0x79ce, 0x7a80, 0x003f, /* lead byte d0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7a7e, 0x7ad1, 0x7b00, 0x7b01, 0x7c7a, 0x7c78, 0x7c79, 0x7c7f, 0x7c80, 0x7c81, 0x7d03, 0x7d08, 0x7d01, 0x7f58, 0x7f91, 0x7f8d, 0x7fbe, 0x8007, 0x800e, 0x800f, 0x8014, 0x8037, 0x80d8, 0x80c7, 0x80e0, 0x80d1, 0x80c8, 0x80c2, 0x80d0, 0x80c5, 0x80e3, 0x80d9, 0x80dc, 0x80ca, 0x80d5, 0x80c9, 0x80cf, 0x80d7, 0x80e6, 0x80cd, 0x81ff, 0x8221, 0x8294, 0x82d9, 0x82fe, 0x82f9, 0x8307, 0x82e8, 0x8300, 0x82d5, 0x833a, 0x82eb, 0x82d6, 0x82f4, 0x82ec, 0x82e1, 0x82f2, 0x82f5, 0x830c, 0x82fb, 0x82f6, 0x82f0, 0x82ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x82e4, 0x82e0, 0x82fa, 0x82f3, 0x82ed, 0x8677, 0x8674, 0x867c, 0x8673, 0x8841, 0x884e, 0x8867, 0x886a, 0x8869, 0x89d3, 0x8a04, 0x8a07, 0x8d72, 0x8fe3, 0x8fe1, 0x8fee, 0x8fe0, 0x90f1, 0x90bd, 0x90bf, 0x90d5, 0x90c5, 0x90be, 0x90c7, 0x90cb, 0x90c8, 0x91d4, 0x91d3, 0x9654, 0x964f, 0x9651, 0x9653, 0x964a, 0x964e, 0x501e, 0x5005, 0x5007, 0x5013, 0x5022, 0x5030, 0x501b, 0x4ff5, 0x4ff4, 0x5033, 0x5037, 0x502c, 0x4ff6, 0x4ff7, 0x5017, 0x501c, 0x5020, 0x5027, 0x5035, 0x502f, 0x5031, 0x500e, 0x515a, 0x5194, 0x5193, 0x51ca, 0x51c4, 0x51c5, 0x51c8, 0x51ce, 0x5261, 0x525a, 0x5252, 0x525e, 0x525f, 0x5255, 0x5262, 0x52cd, 0x530e, 0x539e, 0x5526, 0x54e2, 0x5517, 0x5512, 0x54e7, 0x54f3, 0x54e4, 0x551a, 0x54ff, 0x5504, 0x5508, 0x54eb, 0x5511, 0x5505, 0x54f1, 0x003f, /* lead byte d1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x550a, 0x54fb, 0x54f7, 0x54f8, 0x54e0, 0x550e, 0x5503, 0x550b, 0x5701, 0x5702, 0x57cc, 0x5832, 0x57d5, 0x57d2, 0x57ba, 0x57c6, 0x57bd, 0x57bc, 0x57b8, 0x57b6, 0x57bf, 0x57c7, 0x57d0, 0x57b9, 0x57c1, 0x590e, 0x594a, 0x5a19, 0x5a16, 0x5a2d, 0x5a2e, 0x5a15, 0x5a0f, 0x5a17, 0x5a0a, 0x5a1e, 0x5a33, 0x5b6c, 0x5ba7, 0x5bad, 0x5bac, 0x5c03, 0x5c56, 0x5c54, 0x5cec, 0x5cff, 0x5cee, 0x5cf1, 0x5cf7, 0x5d00, 0x5cf9, 0x5e29, 0x5e28, 0x5ea8, 0x5eae, 0x5eaa, 0x5eac, 0x5f33, 0x5f30, 0x5f67, 0x605d, 0x605a, 0x6067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6041, 0x60a2, 0x6088, 0x6080, 0x6092, 0x6081, 0x609d, 0x6083, 0x6095, 0x609b, 0x6097, 0x6087, 0x609c, 0x608e, 0x6219, 0x6246, 0x62f2, 0x6310, 0x6356, 0x632c, 0x6344, 0x6345, 0x6336, 0x6343, 0x63e4, 0x6339, 0x634b, 0x634a, 0x633c, 0x6329, 0x6341, 0x6334, 0x6358, 0x6354, 0x6359, 0x632d, 0x6347, 0x6333, 0x635a, 0x6351, 0x6338, 0x6357, 0x6340, 0x6348, 0x654a, 0x6546, 0x65c6, 0x65c3, 0x65c4, 0x65c2, 0x664a, 0x665f, 0x6647, 0x6651, 0x6712, 0x6713, 0x681f, 0x681a, 0x6849, 0x6832, 0x6833, 0x683b, 0x684b, 0x684f, 0x6816, 0x6831, 0x681c, 0x6835, 0x682b, 0x682d, 0x682f, 0x684e, 0x6844, 0x6834, 0x681d, 0x6812, 0x6814, 0x6826, 0x6828, 0x682e, 0x684d, 0x683a, 0x6825, 0x6820, 0x6b2c, 0x6b2f, 0x6b2d, 0x6b31, 0x6b34, 0x6b6d, 0x8082, 0x6b88, 0x6be6, 0x6be4, 0x003f, /* lead byte d2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6be8, 0x6be3, 0x6be2, 0x6be7, 0x6c25, 0x6d7a, 0x6d63, 0x6d64, 0x6d76, 0x6d0d, 0x6d61, 0x6d92, 0x6d58, 0x6d62, 0x6d6d, 0x6d6f, 0x6d91, 0x6d8d, 0x6def, 0x6d7f, 0x6d86, 0x6d5e, 0x6d67, 0x6d60, 0x6d97, 0x6d70, 0x6d7c, 0x6d5f, 0x6d82, 0x6d98, 0x6d2f, 0x6d68, 0x6d8b, 0x6d7e, 0x6d80, 0x6d84, 0x6d16, 0x6d83, 0x6d7b, 0x6d7d, 0x6d75, 0x6d90, 0x70dc, 0x70d3, 0x70d1, 0x70dd, 0x70cb, 0x7f39, 0x70e2, 0x70d7, 0x70d2, 0x70de, 0x70e0, 0x70d4, 0x70cd, 0x70c5, 0x70c6, 0x70c7, 0x70da, 0x70ce, 0x70e1, 0x7242, 0x7278, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7277, 0x7276, 0x7300, 0x72fa, 0x72f4, 0x72fe, 0x72f6, 0x72f3, 0x72fb, 0x7301, 0x73d3, 0x73d9, 0x73e5, 0x73d6, 0x73bc, 0x73e7, 0x73e3, 0x73e9, 0x73dc, 0x73d2, 0x73db, 0x73d4, 0x73dd, 0x73da, 0x73d7, 0x73d8, 0x73e8, 0x74de, 0x74df, 0x74f4, 0x74f5, 0x7521, 0x755b, 0x755f, 0x75b0, 0x75c1, 0x75bb, 0x75c4, 0x75c0, 0x75bf, 0x75b6, 0x75ba, 0x768a, 0x76c9, 0x771d, 0x771b, 0x7710, 0x7713, 0x7712, 0x7723, 0x7711, 0x7715, 0x7719, 0x771a, 0x7722, 0x7727, 0x7823, 0x782c, 0x7822, 0x7835, 0x782f, 0x7828, 0x782e, 0x782b, 0x7821, 0x7829, 0x7833, 0x782a, 0x7831, 0x7954, 0x795b, 0x794f, 0x795c, 0x7953, 0x7952, 0x7951, 0x79eb, 0x79ec, 0x79e0, 0x79ee, 0x79ed, 0x79ea, 0x79dc, 0x79de, 0x79dd, 0x7a86, 0x7a89, 0x7a85, 0x7a8b, 0x7a8c, 0x7a8a, 0x7a87, 0x7ad8, 0x7b10, 0x003f, /* lead byte d3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7b04, 0x7b13, 0x7b05, 0x7b0f, 0x7b08, 0x7b0a, 0x7b0e, 0x7b09, 0x7b12, 0x7c84, 0x7c91, 0x7c8a, 0x7c8c, 0x7c88, 0x7c8d, 0x7c85, 0x7d1e, 0x7d1d, 0x7d11, 0x7d0e, 0x7d18, 0x7d16, 0x7d13, 0x7d1f, 0x7d12, 0x7d0f, 0x7d0c, 0x7f5c, 0x7f61, 0x7f5e, 0x7f60, 0x7f5d, 0x7f5b, 0x7f96, 0x7f92, 0x7fc3, 0x7fc2, 0x7fc0, 0x8016, 0x803e, 0x8039, 0x80fa, 0x80f2, 0x80f9, 0x80f5, 0x8101, 0x80fb, 0x8100, 0x8201, 0x822f, 0x8225, 0x8333, 0x832d, 0x8344, 0x8319, 0x8351, 0x8325, 0x8356, 0x833f, 0x8341, 0x8326, 0x831c, 0x8322, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8342, 0x834e, 0x831b, 0x832a, 0x8308, 0x833c, 0x834d, 0x8316, 0x8324, 0x8320, 0x8337, 0x832f, 0x8329, 0x8347, 0x8345, 0x834c, 0x8353, 0x831e, 0x832c, 0x834b, 0x8327, 0x8348, 0x8653, 0x8652, 0x86a2, 0x86a8, 0x8696, 0x868d, 0x8691, 0x869e, 0x8687, 0x8697, 0x8686, 0x868b, 0x869a, 0x8685, 0x86a5, 0x8699, 0x86a1, 0x86a7, 0x8695, 0x8698, 0x868e, 0x869d, 0x8690, 0x8694, 0x8843, 0x8844, 0x886d, 0x8875, 0x8876, 0x8872, 0x8880, 0x8871, 0x887f, 0x886f, 0x8883, 0x887e, 0x8874, 0x887c, 0x8a12, 0x8c47, 0x8c57, 0x8c7b, 0x8ca4, 0x8ca3, 0x8d76, 0x8d78, 0x8db5, 0x8db7, 0x8db6, 0x8ed1, 0x8ed3, 0x8ffe, 0x8ff5, 0x9002, 0x8fff, 0x8ffb, 0x9004, 0x8ffc, 0x8ff6, 0x90d6, 0x90e0, 0x90d9, 0x90da, 0x90e3, 0x90df, 0x90e5, 0x90d8, 0x90db, 0x90d7, 0x90dc, 0x90e4, 0x9150, 0x003f, /* lead byte d4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x914e, 0x914f, 0x91d5, 0x91e2, 0x91da, 0x965c, 0x965f, 0x96bc, 0x98e3, 0x9adf, 0x9b2f, 0x4e7f, 0x5070, 0x506a, 0x5061, 0x505e, 0x5060, 0x5053, 0x504b, 0x505d, 0x5072, 0x5048, 0x504d, 0x5041, 0x505b, 0x504a, 0x5062, 0x5015, 0x5045, 0x505f, 0x5069, 0x506b, 0x5063, 0x5064, 0x5046, 0x5040, 0x506e, 0x5073, 0x5057, 0x5051, 0x51d0, 0x526b, 0x526d, 0x526c, 0x526e, 0x52d6, 0x52d3, 0x532d, 0x539c, 0x5575, 0x5576, 0x553c, 0x554d, 0x5550, 0x5534, 0x552a, 0x5551, 0x5562, 0x5536, 0x5535, 0x5530, 0x5552, 0x5545, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x550c, 0x5532, 0x5565, 0x554e, 0x5539, 0x5548, 0x552d, 0x553b, 0x5540, 0x554b, 0x570a, 0x5707, 0x57fb, 0x5814, 0x57e2, 0x57f6, 0x57dc, 0x57f4, 0x5800, 0x57ed, 0x57fd, 0x5808, 0x57f8, 0x580b, 0x57f3, 0x57cf, 0x5807, 0x57ee, 0x57e3, 0x57f2, 0x57e5, 0x57ec, 0x57e1, 0x580e, 0x57fc, 0x5810, 0x57e7, 0x5801, 0x580c, 0x57f1, 0x57e9, 0x57f0, 0x580d, 0x5804, 0x595c, 0x5a60, 0x5a58, 0x5a55, 0x5a67, 0x5a5e, 0x5a38, 0x5a35, 0x5a6d, 0x5a50, 0x5a5f, 0x5a65, 0x5a6c, 0x5a53, 0x5a64, 0x5a57, 0x5a43, 0x5a5d, 0x5a52, 0x5a44, 0x5a5b, 0x5a48, 0x5a8e, 0x5a3e, 0x5a4d, 0x5a39, 0x5a4c, 0x5a70, 0x5a69, 0x5a47, 0x5a51, 0x5a56, 0x5a42, 0x5a5c, 0x5b72, 0x5b6e, 0x5bc1, 0x5bc0, 0x5c59, 0x5d1e, 0x5d0b, 0x5d1d, 0x5d1a, 0x5d20, 0x5d0c, 0x5d28, 0x5d0d, 0x5d26, 0x5d25, 0x5d0f, 0x003f, /* lead byte d5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5d30, 0x5d12, 0x5d23, 0x5d1f, 0x5d2e, 0x5e3e, 0x5e34, 0x5eb1, 0x5eb4, 0x5eb9, 0x5eb2, 0x5eb3, 0x5f36, 0x5f38, 0x5f9b, 0x5f96, 0x5f9f, 0x608a, 0x6090, 0x6086, 0x60be, 0x60b0, 0x60ba, 0x60d3, 0x60d4, 0x60cf, 0x60e4, 0x60d9, 0x60dd, 0x60c8, 0x60b1, 0x60db, 0x60b7, 0x60ca, 0x60bf, 0x60c3, 0x60cd, 0x60c0, 0x6332, 0x6365, 0x638a, 0x6382, 0x637d, 0x63bd, 0x639e, 0x63ad, 0x639d, 0x6397, 0x63ab, 0x638e, 0x636f, 0x6387, 0x6390, 0x636e, 0x63af, 0x6375, 0x639c, 0x636d, 0x63ae, 0x637c, 0x63a4, 0x633b, 0x639f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6378, 0x6385, 0x6381, 0x6391, 0x638d, 0x6370, 0x6553, 0x65cd, 0x6665, 0x6661, 0x665b, 0x6659, 0x665c, 0x6662, 0x6718, 0x6879, 0x6887, 0x6890, 0x689c, 0x686d, 0x686e, 0x68ae, 0x68ab, 0x6956, 0x686f, 0x68a3, 0x68ac, 0x68a9, 0x6875, 0x6874, 0x68b2, 0x688f, 0x6877, 0x6892, 0x687c, 0x686b, 0x6872, 0x68aa, 0x6880, 0x6871, 0x687e, 0x689b, 0x6896, 0x688b, 0x68a0, 0x6889, 0x68a4, 0x6878, 0x687b, 0x6891, 0x688c, 0x688a, 0x687d, 0x6b36, 0x6b33, 0x6b37, 0x6b38, 0x6b91, 0x6b8f, 0x6b8d, 0x6b8e, 0x6b8c, 0x6c2a, 0x6dc0, 0x6dab, 0x6db4, 0x6db3, 0x6e74, 0x6dac, 0x6de9, 0x6de2, 0x6db7, 0x6df6, 0x6dd4, 0x6e00, 0x6dc8, 0x6de0, 0x6ddf, 0x6dd6, 0x6dbe, 0x6de5, 0x6ddc, 0x6ddd, 0x6ddb, 0x6df4, 0x6dca, 0x6dbd, 0x6ded, 0x6df0, 0x6dba, 0x6dd5, 0x6dc2, 0x6dcf, 0x6dc9, 0x003f, /* lead byte d6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6dd0, 0x6df2, 0x6dd3, 0x6dfd, 0x6dd7, 0x6dcd, 0x6de3, 0x6dbb, 0x70fa, 0x710d, 0x70f7, 0x7117, 0x70f4, 0x710c, 0x70f0, 0x7104, 0x70f3, 0x7110, 0x70fc, 0x70ff, 0x7106, 0x7113, 0x7100, 0x70f8, 0x70f6, 0x710b, 0x7102, 0x710e, 0x727e, 0x727b, 0x727c, 0x727f, 0x731d, 0x7317, 0x7307, 0x7311, 0x7318, 0x730a, 0x7308, 0x72ff, 0x730f, 0x731e, 0x7388, 0x73f6, 0x73f8, 0x73f5, 0x7404, 0x7401, 0x73fd, 0x7407, 0x7400, 0x73fa, 0x73fc, 0x73ff, 0x740c, 0x740b, 0x73f4, 0x7408, 0x7564, 0x7563, 0x75ce, 0x75d2, 0x75cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x75cb, 0x75cc, 0x75d1, 0x75d0, 0x768f, 0x7689, 0x76d3, 0x7739, 0x772f, 0x772d, 0x7731, 0x7732, 0x7734, 0x7733, 0x773d, 0x7725, 0x773b, 0x7735, 0x7848, 0x7852, 0x7849, 0x784d, 0x784a, 0x784c, 0x7826, 0x7845, 0x7850, 0x7964, 0x7967, 0x7969, 0x796a, 0x7963, 0x796b, 0x7961, 0x79bb, 0x79fa, 0x79f8, 0x79f6, 0x79f7, 0x7a8f, 0x7a94, 0x7a90, 0x7b35, 0x7b47, 0x7b34, 0x7b25, 0x7b30, 0x7b22, 0x7b24, 0x7b33, 0x7b18, 0x7b2a, 0x7b1d, 0x7b31, 0x7b2b, 0x7b2d, 0x7b2f, 0x7b32, 0x7b38, 0x7b1a, 0x7b23, 0x7c94, 0x7c98, 0x7c96, 0x7ca3, 0x7d35, 0x7d3d, 0x7d38, 0x7d36, 0x7d3a, 0x7d45, 0x7d2c, 0x7d29, 0x7d41, 0x7d47, 0x7d3e, 0x7d3f, 0x7d4a, 0x7d3b, 0x7d28, 0x7f63, 0x7f95, 0x7f9c, 0x7f9d, 0x7f9b, 0x7fca, 0x7fcb, 0x7fcd, 0x7fd0, 0x7fd1, 0x7fc7, 0x7fcf, 0x7fc9, 0x801f, 0x003f, /* lead byte d7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x801e, 0x801b, 0x8047, 0x8043, 0x8048, 0x8118, 0x8125, 0x8119, 0x811b, 0x812d, 0x811f, 0x812c, 0x811e, 0x8121, 0x8115, 0x8127, 0x811d, 0x8122, 0x8211, 0x8238, 0x8233, 0x823a, 0x8234, 0x8232, 0x8274, 0x8390, 0x83a3, 0x83a8, 0x838d, 0x837a, 0x8373, 0x83a4, 0x8374, 0x838f, 0x8381, 0x8395, 0x8399, 0x8375, 0x8394, 0x83a9, 0x837d, 0x8383, 0x838c, 0x839d, 0x839b, 0x83aa, 0x838b, 0x837e, 0x83a5, 0x83af, 0x8388, 0x8397, 0x83b0, 0x837f, 0x83a6, 0x8387, 0x83ae, 0x8376, 0x839a, 0x8659, 0x8656, 0x86bf, 0x86b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x86c2, 0x86c1, 0x86c5, 0x86ba, 0x86b0, 0x86c8, 0x86b9, 0x86b3, 0x86b8, 0x86cc, 0x86b4, 0x86bb, 0x86bc, 0x86c3, 0x86bd, 0x86be, 0x8852, 0x8889, 0x8895, 0x88a8, 0x88a2, 0x88aa, 0x889a, 0x8891, 0x88a1, 0x889f, 0x8898, 0x88a7, 0x8899, 0x889b, 0x8897, 0x88a4, 0x88ac, 0x888c, 0x8893, 0x888e, 0x8982, 0x89d6, 0x89d9, 0x89d5, 0x8a30, 0x8a27, 0x8a2c, 0x8a1e, 0x8c39, 0x8c3b, 0x8c5c, 0x8c5d, 0x8c7d, 0x8ca5, 0x8d7d, 0x8d7b, 0x8d79, 0x8dbc, 0x8dc2, 0x8db9, 0x8dbf, 0x8dc1, 0x8ed8, 0x8ede, 0x8edd, 0x8edc, 0x8ed7, 0x8ee0, 0x8ee1, 0x9024, 0x900b, 0x9011, 0x901c, 0x900c, 0x9021, 0x90ef, 0x90ea, 0x90f0, 0x90f4, 0x90f2, 0x90f3, 0x90d4, 0x90eb, 0x90ec, 0x90e9, 0x9156, 0x9158, 0x915a, 0x9153, 0x9155, 0x91ec, 0x91f4, 0x91f1, 0x91f3, 0x91f8, 0x91e4, 0x91f9, 0x91ea, 0x003f, /* lead byte d8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x91eb, 0x91f7, 0x91e8, 0x91ee, 0x957a, 0x9586, 0x9588, 0x967c, 0x966d, 0x966b, 0x9671, 0x966f, 0x96bf, 0x976a, 0x9804, 0x98e5, 0x9997, 0x509b, 0x5095, 0x5094, 0x509e, 0x508b, 0x50a3, 0x5083, 0x508c, 0x508e, 0x509d, 0x5068, 0x509c, 0x5092, 0x5082, 0x5087, 0x515f, 0x51d4, 0x5312, 0x5311, 0x53a4, 0x53a7, 0x5591, 0x55a8, 0x55a5, 0x55ad, 0x5577, 0x5645, 0x55a2, 0x5593, 0x5588, 0x558f, 0x55b5, 0x5581, 0x55a3, 0x5592, 0x55a4, 0x557d, 0x558c, 0x55a6, 0x557f, 0x5595, 0x55a1, 0x558e, 0x570c, 0x5829, 0x5837, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5819, 0x581e, 0x5827, 0x5823, 0x5828, 0x57f5, 0x5848, 0x5825, 0x581c, 0x581b, 0x5833, 0x583f, 0x5836, 0x582e, 0x5839, 0x5838, 0x582d, 0x582c, 0x583b, 0x5961, 0x5aaf, 0x5a94, 0x5a9f, 0x5a7a, 0x5aa2, 0x5a9e, 0x5a78, 0x5aa6, 0x5a7c, 0x5aa5, 0x5aac, 0x5a95, 0x5aae, 0x5a37, 0x5a84, 0x5a8a, 0x5a97, 0x5a83, 0x5a8b, 0x5aa9, 0x5a7b, 0x5a7d, 0x5a8c, 0x5a9c, 0x5a8f, 0x5a93, 0x5a9d, 0x5bea, 0x5bcd, 0x5bcb, 0x5bd4, 0x5bd1, 0x5bca, 0x5bce, 0x5c0c, 0x5c30, 0x5d37, 0x5d43, 0x5d6b, 0x5d41, 0x5d4b, 0x5d3f, 0x5d35, 0x5d51, 0x5d4e, 0x5d55, 0x5d33, 0x5d3a, 0x5d52, 0x5d3d, 0x5d31, 0x5d59, 0x5d42, 0x5d39, 0x5d49, 0x5d38, 0x5d3c, 0x5d32, 0x5d36, 0x5d40, 0x5d45, 0x5e44, 0x5e41, 0x5f58, 0x5fa6, 0x5fa5, 0x5fab, 0x60c9, 0x60b9, 0x60cc, 0x60e2, 0x60ce, 0x60c4, 0x6114, 0x003f, /* lead byte d9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x60f2, 0x610a, 0x6116, 0x6105, 0x60f5, 0x6113, 0x60f8, 0x60fc, 0x60fe, 0x60c1, 0x6103, 0x6118, 0x611d, 0x6110, 0x60ff, 0x6104, 0x610b, 0x624a, 0x6394, 0x63b1, 0x63b0, 0x63ce, 0x63e5, 0x63e8, 0x63ef, 0x63c3, 0x649d, 0x63f3, 0x63ca, 0x63e0, 0x63f6, 0x63d5, 0x63f2, 0x63f5, 0x6461, 0x63df, 0x63be, 0x63dd, 0x63dc, 0x63c4, 0x63d8, 0x63d3, 0x63c2, 0x63c7, 0x63cc, 0x63cb, 0x63c8, 0x63f0, 0x63d7, 0x63d9, 0x6532, 0x6567, 0x656a, 0x6564, 0x655c, 0x6568, 0x6565, 0x658c, 0x659d, 0x659e, 0x65ae, 0x65d0, 0x65d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x667c, 0x666c, 0x667b, 0x6680, 0x6671, 0x6679, 0x666a, 0x6672, 0x6701, 0x690c, 0x68d3, 0x6904, 0x68dc, 0x692a, 0x68ec, 0x68ea, 0x68f1, 0x690f, 0x68d6, 0x68f7, 0x68eb, 0x68e4, 0x68f6, 0x6913, 0x6910, 0x68f3, 0x68e1, 0x6907, 0x68cc, 0x6908, 0x6970, 0x68b4, 0x6911, 0x68ef, 0x68c6, 0x6914, 0x68f8, 0x68d0, 0x68fd, 0x68fc, 0x68e8, 0x690b, 0x690a, 0x6917, 0x68ce, 0x68c8, 0x68dd, 0x68de, 0x68e6, 0x68f4, 0x68d1, 0x6906, 0x68d4, 0x68e9, 0x6915, 0x6925, 0x68c7, 0x6b39, 0x6b3b, 0x6b3f, 0x6b3c, 0x6b94, 0x6b97, 0x6b99, 0x6b95, 0x6bbd, 0x6bf0, 0x6bf2, 0x6bf3, 0x6c30, 0x6dfc, 0x6e46, 0x6e47, 0x6e1f, 0x6e49, 0x6e88, 0x6e3c, 0x6e3d, 0x6e45, 0x6e62, 0x6e2b, 0x6e3f, 0x6e41, 0x6e5d, 0x6e73, 0x6e1c, 0x6e33, 0x6e4b, 0x6e40, 0x6e51, 0x6e3b, 0x6e03, 0x6e2e, 0x6e5e, 0x003f, /* lead byte da */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6e68, 0x6e5c, 0x6e61, 0x6e31, 0x6e28, 0x6e60, 0x6e71, 0x6e6b, 0x6e39, 0x6e22, 0x6e30, 0x6e53, 0x6e65, 0x6e27, 0x6e78, 0x6e64, 0x6e77, 0x6e55, 0x6e79, 0x6e52, 0x6e66, 0x6e35, 0x6e36, 0x6e5a, 0x7120, 0x711e, 0x712f, 0x70fb, 0x712e, 0x7131, 0x7123, 0x7125, 0x7122, 0x7132, 0x711f, 0x7128, 0x713a, 0x711b, 0x724b, 0x725a, 0x7288, 0x7289, 0x7286, 0x7285, 0x728b, 0x7312, 0x730b, 0x7330, 0x7322, 0x7331, 0x7333, 0x7327, 0x7332, 0x732d, 0x7326, 0x7323, 0x7335, 0x730c, 0x742e, 0x742c, 0x7430, 0x742b, 0x7416, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x741a, 0x7421, 0x742d, 0x7431, 0x7424, 0x7423, 0x741d, 0x7429, 0x7420, 0x7432, 0x74fb, 0x752f, 0x756f, 0x756c, 0x75e7, 0x75da, 0x75e1, 0x75e6, 0x75dd, 0x75df, 0x75e4, 0x75d7, 0x7695, 0x7692, 0x76da, 0x7746, 0x7747, 0x7744, 0x774d, 0x7745, 0x774a, 0x774e, 0x774b, 0x774c, 0x77de, 0x77ec, 0x7860, 0x7864, 0x7865, 0x785c, 0x786d, 0x7871, 0x786a, 0x786e, 0x7870, 0x7869, 0x7868, 0x785e, 0x7862, 0x7974, 0x7973, 0x7972, 0x7970, 0x7a02, 0x7a0a, 0x7a03, 0x7a0c, 0x7a04, 0x7a99, 0x7ae6, 0x7ae4, 0x7b4a, 0x7b3b, 0x7b44, 0x7b48, 0x7b4c, 0x7b4e, 0x7b40, 0x7b58, 0x7b45, 0x7ca2, 0x7c9e, 0x7ca8, 0x7ca1, 0x7d58, 0x7d6f, 0x7d63, 0x7d53, 0x7d56, 0x7d67, 0x7d6a, 0x7d4f, 0x7d6d, 0x7d5c, 0x7d6b, 0x7d52, 0x7d54, 0x7d69, 0x7d51, 0x7d5f, 0x7d4e, 0x7f3e, 0x7f3f, 0x7f65, 0x003f, /* lead byte db */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7f66, 0x7fa2, 0x7fa0, 0x7fa1, 0x7fd7, 0x8051, 0x804f, 0x8050, 0x80fe, 0x80d4, 0x8143, 0x814a, 0x8152, 0x814f, 0x8147, 0x813d, 0x814d, 0x813a, 0x81e6, 0x81ee, 0x81f7, 0x81f8, 0x81f9, 0x8204, 0x823c, 0x823d, 0x823f, 0x8275, 0x833b, 0x83cf, 0x83f9, 0x8423, 0x83c0, 0x83e8, 0x8412, 0x83e7, 0x83e4, 0x83fc, 0x83f6, 0x8410, 0x83c6, 0x83c8, 0x83eb, 0x83e3, 0x83bf, 0x8401, 0x83dd, 0x83e5, 0x83d8, 0x83ff, 0x83e1, 0x83cb, 0x83ce, 0x83d6, 0x83f5, 0x83c9, 0x8409, 0x840f, 0x83de, 0x8411, 0x8406, 0x83c2, 0x83f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x83d5, 0x83fa, 0x83c7, 0x83d1, 0x83ea, 0x8413, 0x83c3, 0x83ec, 0x83ee, 0x83c4, 0x83fb, 0x83d7, 0x83e2, 0x841b, 0x83db, 0x83fe, 0x86d8, 0x86e2, 0x86e6, 0x86d3, 0x86e3, 0x86da, 0x86ea, 0x86dd, 0x86eb, 0x86dc, 0x86ec, 0x86e9, 0x86d7, 0x86e8, 0x86d1, 0x8848, 0x8856, 0x8855, 0x88ba, 0x88d7, 0x88b9, 0x88b8, 0x88c0, 0x88be, 0x88b6, 0x88bc, 0x88b7, 0x88bd, 0x88b2, 0x8901, 0x88c9, 0x8995, 0x8998, 0x8997, 0x89dd, 0x89da, 0x89db, 0x8a4e, 0x8a4d, 0x8a39, 0x8a59, 0x8a40, 0x8a57, 0x8a58, 0x8a44, 0x8a45, 0x8a52, 0x8a48, 0x8a51, 0x8a4a, 0x8a4c, 0x8a4f, 0x8c5f, 0x8c81, 0x8c80, 0x8cba, 0x8cbe, 0x8cb0, 0x8cb9, 0x8cb5, 0x8d84, 0x8d80, 0x8d89, 0x8dd8, 0x8dd3, 0x8dcd, 0x8dc7, 0x8dd6, 0x8ddc, 0x8dcf, 0x8dd5, 0x8dd9, 0x8dc8, 0x8dd7, 0x8dc5, 0x8eef, 0x8ef7, 0x8efa, 0x003f, /* lead byte dc */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ef9, 0x8ee6, 0x8eee, 0x8ee5, 0x8ef5, 0x8ee7, 0x8ee8, 0x8ef6, 0x8eeb, 0x8ef1, 0x8eec, 0x8ef4, 0x8ee9, 0x902d, 0x9034, 0x902f, 0x9106, 0x912c, 0x9104, 0x90ff, 0x90fc, 0x9108, 0x90f9, 0x90fb, 0x9101, 0x9100, 0x9107, 0x9105, 0x9103, 0x9161, 0x9164, 0x915f, 0x9162, 0x9160, 0x9201, 0x920a, 0x9225, 0x9203, 0x921a, 0x9226, 0x920f, 0x920c, 0x9200, 0x9212, 0x91ff, 0x91fd, 0x9206, 0x9204, 0x9227, 0x9202, 0x921c, 0x9224, 0x9219, 0x9217, 0x9205, 0x9216, 0x957b, 0x958d, 0x958c, 0x9590, 0x9687, 0x967e, 0x9688, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9689, 0x9683, 0x9680, 0x96c2, 0x96c8, 0x96c3, 0x96f1, 0x96f0, 0x976c, 0x9770, 0x976e, 0x9807, 0x98a9, 0x98eb, 0x9ce6, 0x9ef9, 0x4e83, 0x4e84, 0x4eb6, 0x50bd, 0x50bf, 0x50c6, 0x50ae, 0x50c4, 0x50ca, 0x50b4, 0x50c8, 0x50c2, 0x50b0, 0x50c1, 0x50ba, 0x50b1, 0x50cb, 0x50c9, 0x50b6, 0x50b8, 0x51d7, 0x527a, 0x5278, 0x527b, 0x527c, 0x55c3, 0x55db, 0x55cc, 0x55d0, 0x55cb, 0x55ca, 0x55dd, 0x55c0, 0x55d4, 0x55c4, 0x55e9, 0x55bf, 0x55d2, 0x558d, 0x55cf, 0x55d5, 0x55e2, 0x55d6, 0x55c8, 0x55f2, 0x55cd, 0x55d9, 0x55c2, 0x5714, 0x5853, 0x5868, 0x5864, 0x584f, 0x584d, 0x5849, 0x586f, 0x5855, 0x584e, 0x585d, 0x5859, 0x5865, 0x585b, 0x583d, 0x5863, 0x5871, 0x58fc, 0x5ac7, 0x5ac4, 0x5acb, 0x5aba, 0x5ab8, 0x5ab1, 0x5ab5, 0x5ab0, 0x5abf, 0x5ac8, 0x5abb, 0x5ac6, 0x003f, /* lead byte dd */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5ab7, 0x5ac0, 0x5aca, 0x5ab4, 0x5ab6, 0x5acd, 0x5ab9, 0x5a90, 0x5bd6, 0x5bd8, 0x5bd9, 0x5c1f, 0x5c33, 0x5d71, 0x5d63, 0x5d4a, 0x5d65, 0x5d72, 0x5d6c, 0x5d5e, 0x5d68, 0x5d67, 0x5d62, 0x5df0, 0x5e4f, 0x5e4e, 0x5e4a, 0x5e4d, 0x5e4b, 0x5ec5, 0x5ecc, 0x5ec6, 0x5ecb, 0x5ec7, 0x5f40, 0x5faf, 0x5fad, 0x60f7, 0x6149, 0x614a, 0x612b, 0x6145, 0x6136, 0x6132, 0x612e, 0x6146, 0x612f, 0x614f, 0x6129, 0x6140, 0x6220, 0x9168, 0x6223, 0x6225, 0x6224, 0x63c5, 0x63f1, 0x63eb, 0x6410, 0x6412, 0x6409, 0x6420, 0x6424, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6433, 0x6443, 0x641f, 0x6415, 0x6418, 0x6439, 0x6437, 0x6422, 0x6423, 0x640c, 0x6426, 0x6430, 0x6428, 0x6441, 0x6435, 0x642f, 0x640a, 0x641a, 0x6440, 0x6425, 0x6427, 0x640b, 0x63e7, 0x641b, 0x642e, 0x6421, 0x640e, 0x656f, 0x6592, 0x65d3, 0x6686, 0x668c, 0x6695, 0x6690, 0x668b, 0x668a, 0x6699, 0x6694, 0x6678, 0x6720, 0x6966, 0x695f, 0x6938, 0x694e, 0x6962, 0x6971, 0x693f, 0x6945, 0x696a, 0x6939, 0x6942, 0x6957, 0x6959, 0x697a, 0x6948, 0x6949, 0x6935, 0x696c, 0x6933, 0x693d, 0x6965, 0x68f0, 0x6978, 0x6934, 0x6969, 0x6940, 0x696f, 0x6944, 0x6976, 0x6958, 0x6941, 0x6974, 0x694c, 0x693b, 0x694b, 0x6937, 0x695c, 0x694f, 0x6951, 0x6932, 0x6952, 0x692f, 0x697b, 0x693c, 0x6b46, 0x6b45, 0x6b43, 0x6b42, 0x6b48, 0x6b41, 0x6b9b, 0xfa0d, 0x6bfb, 0x6bfc, 0x003f, /* lead byte de */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6bf9, 0x6bf7, 0x6bf8, 0x6e9b, 0x6ed6, 0x6ec8, 0x6e8f, 0x6ec0, 0x6e9f, 0x6e93, 0x6e94, 0x6ea0, 0x6eb1, 0x6eb9, 0x6ec6, 0x6ed2, 0x6ebd, 0x6ec1, 0x6e9e, 0x6ec9, 0x6eb7, 0x6eb0, 0x6ecd, 0x6ea6, 0x6ecf, 0x6eb2, 0x6ebe, 0x6ec3, 0x6edc, 0x6ed8, 0x6e99, 0x6e92, 0x6e8e, 0x6e8d, 0x6ea4, 0x6ea1, 0x6ebf, 0x6eb3, 0x6ed0, 0x6eca, 0x6e97, 0x6eae, 0x6ea3, 0x7147, 0x7154, 0x7152, 0x7163, 0x7160, 0x7141, 0x715d, 0x7162, 0x7172, 0x7178, 0x716a, 0x7161, 0x7142, 0x7158, 0x7143, 0x714b, 0x7170, 0x715f, 0x7150, 0x7153, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7144, 0x714d, 0x715a, 0x724f, 0x728d, 0x728c, 0x7291, 0x7290, 0x728e, 0x733c, 0x7342, 0x733b, 0x733a, 0x7340, 0x734a, 0x7349, 0x7444, 0x744a, 0x744b, 0x7452, 0x7451, 0x7457, 0x7440, 0x744f, 0x7450, 0x744e, 0x7442, 0x7446, 0x744d, 0x7454, 0x74e1, 0x74ff, 0x74fe, 0x74fd, 0x751d, 0x7579, 0x7577, 0x6983, 0x75ef, 0x760f, 0x7603, 0x75f7, 0x75fe, 0x75fc, 0x75f9, 0x75f8, 0x7610, 0x75fb, 0x75f6, 0x75ed, 0x75f5, 0x75fd, 0x7699, 0x76b5, 0x76dd, 0x7755, 0x775f, 0x7760, 0x7752, 0x7756, 0x775a, 0x7769, 0x7767, 0x7754, 0x7759, 0x776d, 0x77e0, 0x7887, 0x789a, 0x7894, 0x788f, 0x7884, 0x7895, 0x7885, 0x7886, 0x78a1, 0x7883, 0x7879, 0x7899, 0x7880, 0x7896, 0x787b, 0x797c, 0x7982, 0x797d, 0x7979, 0x7a11, 0x7a18, 0x7a19, 0x7a12, 0x7a17, 0x7a15, 0x7a22, 0x7a13, 0x003f, /* lead byte df */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7a1b, 0x7a10, 0x7aa3, 0x7aa2, 0x7a9e, 0x7aeb, 0x7b66, 0x7b64, 0x7b6d, 0x7b74, 0x7b69, 0x7b72, 0x7b65, 0x7b73, 0x7b71, 0x7b70, 0x7b61, 0x7b78, 0x7b76, 0x7b63, 0x7cb2, 0x7cb4, 0x7caf, 0x7d88, 0x7d86, 0x7d80, 0x7d8d, 0x7d7f, 0x7d85, 0x7d7a, 0x7d8e, 0x7d7b, 0x7d83, 0x7d7c, 0x7d8c, 0x7d94, 0x7d84, 0x7d7d, 0x7d92, 0x7f6d, 0x7f6b, 0x7f67, 0x7f68, 0x7f6c, 0x7fa6, 0x7fa5, 0x7fa7, 0x7fdb, 0x7fdc, 0x8021, 0x8164, 0x8160, 0x8177, 0x815c, 0x8169, 0x815b, 0x8162, 0x8172, 0x6721, 0x815e, 0x8176, 0x8167, 0x816f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8144, 0x8161, 0x821d, 0x8249, 0x8244, 0x8240, 0x8242, 0x8245, 0x84f1, 0x843f, 0x8456, 0x8476, 0x8479, 0x848f, 0x848d, 0x8465, 0x8451, 0x8440, 0x8486, 0x8467, 0x8430, 0x844d, 0x847d, 0x845a, 0x8459, 0x8474, 0x8473, 0x845d, 0x8507, 0x845e, 0x8437, 0x843a, 0x8434, 0x847a, 0x8443, 0x8478, 0x8432, 0x8445, 0x8429, 0x83d9, 0x844b, 0x842f, 0x8442, 0x842d, 0x845f, 0x8470, 0x8439, 0x844e, 0x844c, 0x8452, 0x846f, 0x84c5, 0x848e, 0x843b, 0x8447, 0x8436, 0x8433, 0x8468, 0x847e, 0x8444, 0x842b, 0x8460, 0x8454, 0x846e, 0x8450, 0x870b, 0x8704, 0x86f7, 0x870c, 0x86fa, 0x86d6, 0x86f5, 0x874d, 0x86f8, 0x870e, 0x8709, 0x8701, 0x86f6, 0x870d, 0x8705, 0x88d6, 0x88cb, 0x88cd, 0x88ce, 0x88de, 0x88db, 0x88da, 0x88cc, 0x88d0, 0x8985, 0x899b, 0x89df, 0x89e5, 0x89e4, 0x003f, /* lead byte e0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x89e1, 0x89e0, 0x89e2, 0x89dc, 0x89e6, 0x8a76, 0x8a86, 0x8a7f, 0x8a61, 0x8a3f, 0x8a77, 0x8a82, 0x8a84, 0x8a75, 0x8a83, 0x8a81, 0x8a74, 0x8a7a, 0x8c3c, 0x8c4b, 0x8c4a, 0x8c65, 0x8c64, 0x8c66, 0x8c86, 0x8c84, 0x8c85, 0x8ccc, 0x8d68, 0x8d69, 0x8d91, 0x8d8c, 0x8d8e, 0x8d8f, 0x8d8d, 0x8d93, 0x8d94, 0x8d90, 0x8d92, 0x8df0, 0x8de0, 0x8dec, 0x8df1, 0x8dee, 0x8dd0, 0x8de9, 0x8de3, 0x8de2, 0x8de7, 0x8df2, 0x8deb, 0x8df4, 0x8f06, 0x8eff, 0x8f01, 0x8f00, 0x8f05, 0x8f07, 0x8f08, 0x8f02, 0x8f0b, 0x9052, 0x903f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9044, 0x9049, 0x903d, 0x9110, 0x910d, 0x910f, 0x9111, 0x9116, 0x9114, 0x910b, 0x910e, 0x916e, 0x916f, 0x9248, 0x9252, 0x9230, 0x923a, 0x9266, 0x9233, 0x9265, 0x925e, 0x9283, 0x922e, 0x924a, 0x9246, 0x926d, 0x926c, 0x924f, 0x9260, 0x9267, 0x926f, 0x9236, 0x9261, 0x9270, 0x9231, 0x9254, 0x9263, 0x9250, 0x9272, 0x924e, 0x9253, 0x924c, 0x9256, 0x9232, 0x959f, 0x959c, 0x959e, 0x959b, 0x9692, 0x9693, 0x9691, 0x9697, 0x96ce, 0x96fa, 0x96fd, 0x96f8, 0x96f5, 0x9773, 0x9777, 0x9778, 0x9772, 0x980f, 0x980d, 0x980e, 0x98ac, 0x98f6, 0x98f9, 0x99af, 0x99b2, 0x99b0, 0x99b5, 0x9aad, 0x9aab, 0x9b5b, 0x9cea, 0x9ced, 0x9ce7, 0x9e80, 0x9efd, 0x50e6, 0x50d4, 0x50d7, 0x50e8, 0x50f3, 0x50db, 0x50ea, 0x50dd, 0x50e4, 0x50d3, 0x50ec, 0x50f0, 0x50ef, 0x50e3, 0x50e0, 0x003f, /* lead byte e1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x51d8, 0x5280, 0x5281, 0x52e9, 0x52eb, 0x5330, 0x53ac, 0x5627, 0x5615, 0x560c, 0x5612, 0x55fc, 0x560f, 0x561c, 0x5601, 0x5613, 0x5602, 0x55fa, 0x561d, 0x5604, 0x55ff, 0x55f9, 0x5889, 0x587c, 0x5890, 0x5898, 0x5886, 0x5881, 0x587f, 0x5874, 0x588b, 0x587a, 0x5887, 0x5891, 0x588e, 0x5876, 0x5882, 0x5888, 0x587b, 0x5894, 0x588f, 0x58fe, 0x596b, 0x5adc, 0x5aee, 0x5ae5, 0x5ad5, 0x5aea, 0x5ada, 0x5aed, 0x5aeb, 0x5af3, 0x5ae2, 0x5ae0, 0x5adb, 0x5aec, 0x5ade, 0x5add, 0x5ad9, 0x5ae8, 0x5adf, 0x5b77, 0x5be0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5be3, 0x5c63, 0x5d82, 0x5d80, 0x5d7d, 0x5d86, 0x5d7a, 0x5d81, 0x5d77, 0x5d8a, 0x5d89, 0x5d88, 0x5d7e, 0x5d7c, 0x5d8d, 0x5d79, 0x5d7f, 0x5e58, 0x5e59, 0x5e53, 0x5ed8, 0x5ed1, 0x5ed7, 0x5ece, 0x5edc, 0x5ed5, 0x5ed9, 0x5ed2, 0x5ed4, 0x5f44, 0x5f43, 0x5f6f, 0x5fb6, 0x612c, 0x6128, 0x6141, 0x615e, 0x6171, 0x6173, 0x6152, 0x6153, 0x6172, 0x616c, 0x6180, 0x6174, 0x6154, 0x617a, 0x615b, 0x6165, 0x613b, 0x616a, 0x6161, 0x6156, 0x6229, 0x6227, 0x622b, 0x642b, 0x644d, 0x645b, 0x645d, 0x6474, 0x6476, 0x6472, 0x6473, 0x647d, 0x6475, 0x6466, 0x64a6, 0x644e, 0x6482, 0x645e, 0x645c, 0x644b, 0x6453, 0x6460, 0x6450, 0x647f, 0x643f, 0x646c, 0x646b, 0x6459, 0x6465, 0x6477, 0x6573, 0x65a0, 0x66a1, 0x66a0, 0x669f, 0x6705, 0x6704, 0x6722, 0x69b1, 0x69b6, 0x69c9, 0x003f, /* lead byte e2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x69a0, 0x69ce, 0x6996, 0x69b0, 0x69ac, 0x69bc, 0x6991, 0x6999, 0x698e, 0x69a7, 0x698d, 0x69a9, 0x69be, 0x69af, 0x69bf, 0x69c4, 0x69bd, 0x69a4, 0x69d4, 0x69b9, 0x69ca, 0x699a, 0x69cf, 0x69b3, 0x6993, 0x69aa, 0x69a1, 0x699e, 0x69d9, 0x6997, 0x6990, 0x69c2, 0x69b5, 0x69a5, 0x69c6, 0x6b4a, 0x6b4d, 0x6b4b, 0x6b9e, 0x6b9f, 0x6ba0, 0x6bc3, 0x6bc4, 0x6bfe, 0x6ece, 0x6ef5, 0x6ef1, 0x6f03, 0x6f25, 0x6ef8, 0x6f37, 0x6efb, 0x6f2e, 0x6f09, 0x6f4e, 0x6f19, 0x6f1a, 0x6f27, 0x6f18, 0x6f3b, 0x6f12, 0x6eed, 0x6f0a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6f36, 0x6f73, 0x6ef9, 0x6eee, 0x6f2d, 0x6f40, 0x6f30, 0x6f3c, 0x6f35, 0x6eeb, 0x6f07, 0x6f0e, 0x6f43, 0x6f05, 0x6efd, 0x6ef6, 0x6f39, 0x6f1c, 0x6efc, 0x6f3a, 0x6f1f, 0x6f0d, 0x6f1e, 0x6f08, 0x6f21, 0x7187, 0x7190, 0x7189, 0x7180, 0x7185, 0x7182, 0x718f, 0x717b, 0x7186, 0x7181, 0x7197, 0x7244, 0x7253, 0x7297, 0x7295, 0x7293, 0x7343, 0x734d, 0x7351, 0x734c, 0x7462, 0x7473, 0x7471, 0x7475, 0x7472, 0x7467, 0x746e, 0x7500, 0x7502, 0x7503, 0x757d, 0x7590, 0x7616, 0x7608, 0x760c, 0x7615, 0x7611, 0x760a, 0x7614, 0x76b8, 0x7781, 0x777c, 0x7785, 0x7782, 0x776e, 0x7780, 0x776f, 0x777e, 0x7783, 0x78b2, 0x78aa, 0x78b4, 0x78ad, 0x78a8, 0x787e, 0x78ab, 0x789e, 0x78a5, 0x78a0, 0x78ac, 0x78a2, 0x78a4, 0x7998, 0x798a, 0x798b, 0x7996, 0x7995, 0x7994, 0x7993, 0x003f, /* lead byte e3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7997, 0x7988, 0x7992, 0x7990, 0x7a2b, 0x7a4a, 0x7a30, 0x7a2f, 0x7a28, 0x7a26, 0x7aa8, 0x7aab, 0x7aac, 0x7aee, 0x7b88, 0x7b9c, 0x7b8a, 0x7b91, 0x7b90, 0x7b96, 0x7b8d, 0x7b8c, 0x7b9b, 0x7b8e, 0x7b85, 0x7b98, 0x5284, 0x7b99, 0x7ba4, 0x7b82, 0x7cbb, 0x7cbf, 0x7cbc, 0x7cba, 0x7da7, 0x7db7, 0x7dc2, 0x7da3, 0x7daa, 0x7dc1, 0x7dc0, 0x7dc5, 0x7d9d, 0x7dce, 0x7dc4, 0x7dc6, 0x7dcb, 0x7dcc, 0x7daf, 0x7db9, 0x7d96, 0x7dbc, 0x7d9f, 0x7da6, 0x7dae, 0x7da9, 0x7da1, 0x7dc9, 0x7f73, 0x7fe2, 0x7fe3, 0x7fe5, 0x7fde, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8024, 0x805d, 0x805c, 0x8189, 0x8186, 0x8183, 0x8187, 0x818d, 0x818c, 0x818b, 0x8215, 0x8497, 0x84a4, 0x84a1, 0x849f, 0x84ba, 0x84ce, 0x84c2, 0x84ac, 0x84ae, 0x84ab, 0x84b9, 0x84b4, 0x84c1, 0x84cd, 0x84aa, 0x849a, 0x84b1, 0x84d0, 0x849d, 0x84a7, 0x84bb, 0x84a2, 0x8494, 0x84c7, 0x84cc, 0x849b, 0x84a9, 0x84af, 0x84a8, 0x84d6, 0x8498, 0x84b6, 0x84cf, 0x84a0, 0x84d7, 0x84d4, 0x84d2, 0x84db, 0x84b0, 0x8491, 0x8661, 0x8733, 0x8723, 0x8728, 0x876b, 0x8740, 0x872e, 0x871e, 0x8721, 0x8719, 0x871b, 0x8743, 0x872c, 0x8741, 0x873e, 0x8746, 0x8720, 0x8732, 0x872a, 0x872d, 0x873c, 0x8712, 0x873a, 0x8731, 0x8735, 0x8742, 0x8726, 0x8727, 0x8738, 0x8724, 0x871a, 0x8730, 0x8711, 0x88f7, 0x88e7, 0x88f1, 0x88f2, 0x88fa, 0x88fe, 0x88ee, 0x88fc, 0x88f6, 0x88fb, 0x003f, /* lead byte e4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x88f0, 0x88ec, 0x88eb, 0x899d, 0x89a1, 0x899f, 0x899e, 0x89e9, 0x89eb, 0x89e8, 0x8aab, 0x8a99, 0x8a8b, 0x8a92, 0x8a8f, 0x8a96, 0x8c3d, 0x8c68, 0x8c69, 0x8cd5, 0x8ccf, 0x8cd7, 0x8d96, 0x8e09, 0x8e02, 0x8dff, 0x8e0d, 0x8dfd, 0x8e0a, 0x8e03, 0x8e07, 0x8e06, 0x8e05, 0x8dfe, 0x8e00, 0x8e04, 0x8f10, 0x8f11, 0x8f0e, 0x8f0d, 0x9123, 0x911c, 0x9120, 0x9122, 0x911f, 0x911d, 0x911a, 0x9124, 0x9121, 0x911b, 0x917a, 0x9172, 0x9179, 0x9173, 0x92a5, 0x92a4, 0x9276, 0x929b, 0x927a, 0x92a0, 0x9294, 0x92aa, 0x928d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92a6, 0x929a, 0x92ab, 0x9279, 0x9297, 0x927f, 0x92a3, 0x92ee, 0x928e, 0x9282, 0x9295, 0x92a2, 0x927d, 0x9288, 0x92a1, 0x928a, 0x9286, 0x928c, 0x9299, 0x92a7, 0x927e, 0x9287, 0x92a9, 0x929d, 0x928b, 0x922d, 0x969e, 0x96a1, 0x96ff, 0x9758, 0x977d, 0x977a, 0x977e, 0x9783, 0x9780, 0x9782, 0x977b, 0x9784, 0x9781, 0x977f, 0x97ce, 0x97cd, 0x9816, 0x98ad, 0x98ae, 0x9902, 0x9900, 0x9907, 0x999d, 0x999c, 0x99c3, 0x99b9, 0x99bb, 0x99ba, 0x99c2, 0x99bd, 0x99c7, 0x9ab1, 0x9ae3, 0x9ae7, 0x9b3e, 0x9b3f, 0x9b60, 0x9b61, 0x9b5f, 0x9cf1, 0x9cf2, 0x9cf5, 0x9ea7, 0x50ff, 0x5103, 0x5130, 0x50f8, 0x5106, 0x5107, 0x50f6, 0x50fe, 0x510b, 0x510c, 0x50fd, 0x510a, 0x528b, 0x528c, 0x52f1, 0x52ef, 0x5648, 0x5642, 0x564c, 0x5635, 0x5641, 0x564a, 0x5649, 0x5646, 0x5658, 0x003f, /* lead byte e5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x565a, 0x5640, 0x5633, 0x563d, 0x562c, 0x563e, 0x5638, 0x562a, 0x563a, 0x571a, 0x58ab, 0x589d, 0x58b1, 0x58a0, 0x58a3, 0x58af, 0x58ac, 0x58a5, 0x58a1, 0x58ff, 0x5aff, 0x5af4, 0x5afd, 0x5af7, 0x5af6, 0x5b03, 0x5af8, 0x5b02, 0x5af9, 0x5b01, 0x5b07, 0x5b05, 0x5b0f, 0x5c67, 0x5d99, 0x5d97, 0x5d9f, 0x5d92, 0x5da2, 0x5d93, 0x5d95, 0x5da0, 0x5d9c, 0x5da1, 0x5d9a, 0x5d9e, 0x5e69, 0x5e5d, 0x5e60, 0x5e5c, 0x7df3, 0x5edb, 0x5ede, 0x5ee1, 0x5f49, 0x5fb2, 0x618b, 0x6183, 0x6179, 0x61b1, 0x61b0, 0x61a2, 0x6189, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x619b, 0x6193, 0x61af, 0x61ad, 0x619f, 0x6192, 0x61aa, 0x61a1, 0x618d, 0x6166, 0x61b3, 0x622d, 0x646e, 0x6470, 0x6496, 0x64a0, 0x6485, 0x6497, 0x649c, 0x648f, 0x648b, 0x648a, 0x648c, 0x64a3, 0x649f, 0x6468, 0x64b1, 0x6498, 0x6576, 0x657a, 0x6579, 0x657b, 0x65b2, 0x65b3, 0x66b5, 0x66b0, 0x66a9, 0x66b2, 0x66b7, 0x66aa, 0x66af, 0x6a00, 0x6a06, 0x6a17, 0x69e5, 0x69f8, 0x6a15, 0x69f1, 0x69e4, 0x6a20, 0x69ff, 0x69ec, 0x69e2, 0x6a1b, 0x6a1d, 0x69fe, 0x6a27, 0x69f2, 0x69ee, 0x6a14, 0x69f7, 0x69e7, 0x6a40, 0x6a08, 0x69e6, 0x69fb, 0x6a0d, 0x69fc, 0x69eb, 0x6a09, 0x6a04, 0x6a18, 0x6a25, 0x6a0f, 0x69f6, 0x6a26, 0x6a07, 0x69f4, 0x6a16, 0x6b51, 0x6ba5, 0x6ba3, 0x6ba2, 0x6ba6, 0x6c01, 0x6c00, 0x6bff, 0x6c02, 0x6f41, 0x6f26, 0x6f7e, 0x6f87, 0x6fc6, 0x6f92, 0x003f, /* lead byte e6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6f8d, 0x6f89, 0x6f8c, 0x6f62, 0x6f4f, 0x6f85, 0x6f5a, 0x6f96, 0x6f76, 0x6f6c, 0x6f82, 0x6f55, 0x6f72, 0x6f52, 0x6f50, 0x6f57, 0x6f94, 0x6f93, 0x6f5d, 0x6f00, 0x6f61, 0x6f6b, 0x6f7d, 0x6f67, 0x6f90, 0x6f53, 0x6f8b, 0x6f69, 0x6f7f, 0x6f95, 0x6f63, 0x6f77, 0x6f6a, 0x6f7b, 0x71b2, 0x71af, 0x719b, 0x71b0, 0x71a0, 0x719a, 0x71a9, 0x71b5, 0x719d, 0x71a5, 0x719e, 0x71a4, 0x71a1, 0x71aa, 0x719c, 0x71a7, 0x71b3, 0x7298, 0x729a, 0x7358, 0x7352, 0x735e, 0x735f, 0x7360, 0x735d, 0x735b, 0x7361, 0x735a, 0x7359, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7362, 0x7487, 0x7489, 0x748a, 0x7486, 0x7481, 0x747d, 0x7485, 0x7488, 0x747c, 0x7479, 0x7508, 0x7507, 0x757e, 0x7625, 0x761e, 0x7619, 0x761d, 0x761c, 0x7623, 0x761a, 0x7628, 0x761b, 0x769c, 0x769d, 0x769e, 0x769b, 0x778d, 0x778f, 0x7789, 0x7788, 0x78cd, 0x78bb, 0x78cf, 0x78cc, 0x78d1, 0x78ce, 0x78d4, 0x78c8, 0x78c3, 0x78c4, 0x78c9, 0x799a, 0x79a1, 0x79a0, 0x799c, 0x79a2, 0x799b, 0x6b76, 0x7a39, 0x7ab2, 0x7ab4, 0x7ab3, 0x7bb7, 0x7bcb, 0x7bbe, 0x7bac, 0x7bce, 0x7baf, 0x7bb9, 0x7bca, 0x7bb5, 0x7cc5, 0x7cc8, 0x7ccc, 0x7ccb, 0x7df7, 0x7ddb, 0x7dea, 0x7de7, 0x7dd7, 0x7de1, 0x7e03, 0x7dfa, 0x7de6, 0x7df6, 0x7df1, 0x7df0, 0x7dee, 0x7ddf, 0x7f76, 0x7fac, 0x7fb0, 0x7fad, 0x7fed, 0x7feb, 0x7fea, 0x7fec, 0x7fe6, 0x7fe8, 0x8064, 0x8067, 0x81a3, 0x819f, 0x003f, /* lead byte e7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x819e, 0x8195, 0x81a2, 0x8199, 0x8197, 0x8216, 0x824f, 0x8253, 0x8252, 0x8250, 0x824e, 0x8251, 0x8524, 0x853b, 0x850f, 0x8500, 0x8529, 0x850e, 0x8509, 0x850d, 0x851f, 0x850a, 0x8527, 0x851c, 0x84fb, 0x852b, 0x84fa, 0x8508, 0x850c, 0x84f4, 0x852a, 0x84f2, 0x8515, 0x84f7, 0x84eb, 0x84f3, 0x84fc, 0x8512, 0x84ea, 0x84e9, 0x8516, 0x84fe, 0x8528, 0x851d, 0x852e, 0x8502, 0x84fd, 0x851e, 0x84f6, 0x8531, 0x8526, 0x84e7, 0x84e8, 0x84f0, 0x84ef, 0x84f9, 0x8518, 0x8520, 0x8530, 0x850b, 0x8519, 0x852f, 0x8662, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8756, 0x8763, 0x8764, 0x8777, 0x87e1, 0x8773, 0x8758, 0x8754, 0x875b, 0x8752, 0x8761, 0x875a, 0x8751, 0x875e, 0x876d, 0x876a, 0x8750, 0x874e, 0x875f, 0x875d, 0x876f, 0x876c, 0x877a, 0x876e, 0x875c, 0x8765, 0x874f, 0x877b, 0x8775, 0x8762, 0x8767, 0x8769, 0x885a, 0x8905, 0x890c, 0x8914, 0x890b, 0x8917, 0x8918, 0x8919, 0x8906, 0x8916, 0x8911, 0x890e, 0x8909, 0x89a2, 0x89a4, 0x89a3, 0x89ed, 0x89f0, 0x89ec, 0x8acf, 0x8ac6, 0x8ab8, 0x8ad3, 0x8ad1, 0x8ad4, 0x8ad5, 0x8abb, 0x8ad7, 0x8abe, 0x8ac0, 0x8ac5, 0x8ad8, 0x8ac3, 0x8aba, 0x8abd, 0x8ad9, 0x8c3e, 0x8c4d, 0x8c8f, 0x8ce5, 0x8cdf, 0x8cd9, 0x8ce8, 0x8cda, 0x8cdd, 0x8ce7, 0x8da0, 0x8d9c, 0x8da1, 0x8d9b, 0x8e20, 0x8e23, 0x8e25, 0x8e24, 0x8e2e, 0x8e15, 0x8e1b, 0x8e16, 0x8e11, 0x8e19, 0x8e26, 0x8e27, 0x003f, /* lead byte e8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e14, 0x8e12, 0x8e18, 0x8e13, 0x8e1c, 0x8e17, 0x8e1a, 0x8f2c, 0x8f24, 0x8f18, 0x8f1a, 0x8f20, 0x8f23, 0x8f16, 0x8f17, 0x9073, 0x9070, 0x906f, 0x9067, 0x906b, 0x912f, 0x912b, 0x9129, 0x912a, 0x9132, 0x9126, 0x912e, 0x9185, 0x9186, 0x918a, 0x9181, 0x9182, 0x9184, 0x9180, 0x92d0, 0x92c3, 0x92c4, 0x92c0, 0x92d9, 0x92b6, 0x92cf, 0x92f1, 0x92df, 0x92d8, 0x92e9, 0x92d7, 0x92dd, 0x92cc, 0x92ef, 0x92c2, 0x92e8, 0x92ca, 0x92c8, 0x92ce, 0x92e6, 0x92cd, 0x92d5, 0x92c9, 0x92e0, 0x92de, 0x92e7, 0x92d1, 0x92d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x92b5, 0x92e1, 0x92c6, 0x92b4, 0x957c, 0x95ac, 0x95ab, 0x95ae, 0x95b0, 0x96a4, 0x96a2, 0x96d3, 0x9705, 0x9708, 0x9702, 0x975a, 0x978a, 0x978e, 0x9788, 0x97d0, 0x97cf, 0x981e, 0x981d, 0x9826, 0x9829, 0x9828, 0x9820, 0x981b, 0x9827, 0x98b2, 0x9908, 0x98fa, 0x9911, 0x9914, 0x9916, 0x9917, 0x9915, 0x99dc, 0x99cd, 0x99cf, 0x99d3, 0x99d4, 0x99ce, 0x99c9, 0x99d6, 0x99d8, 0x99cb, 0x99d7, 0x99cc, 0x9ab3, 0x9aec, 0x9aeb, 0x9af3, 0x9af2, 0x9af1, 0x9b46, 0x9b43, 0x9b67, 0x9b74, 0x9b71, 0x9b66, 0x9b76, 0x9b75, 0x9b70, 0x9b68, 0x9b64, 0x9b6c, 0x9cfc, 0x9cfa, 0x9cfd, 0x9cff, 0x9cf7, 0x9d07, 0x9d00, 0x9cf9, 0x9cfb, 0x9d08, 0x9d05, 0x9d04, 0x9e83, 0x9ed3, 0x9f0f, 0x9f10, 0x511c, 0x5113, 0x5117, 0x511a, 0x5111, 0x51de, 0x5334, 0x53e1, 0x5670, 0x5660, 0x566e, 0x003f, /* lead byte e9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5673, 0x5666, 0x5663, 0x566d, 0x5672, 0x565e, 0x5677, 0x571c, 0x571b, 0x58c8, 0x58bd, 0x58c9, 0x58bf, 0x58ba, 0x58c2, 0x58bc, 0x58c6, 0x5b17, 0x5b19, 0x5b1b, 0x5b21, 0x5b14, 0x5b13, 0x5b10, 0x5b16, 0x5b28, 0x5b1a, 0x5b20, 0x5b1e, 0x5bef, 0x5dac, 0x5db1, 0x5da9, 0x5da7, 0x5db5, 0x5db0, 0x5dae, 0x5daa, 0x5da8, 0x5db2, 0x5dad, 0x5daf, 0x5db4, 0x5e67, 0x5e68, 0x5e66, 0x5e6f, 0x5ee9, 0x5ee7, 0x5ee6, 0x5ee8, 0x5ee5, 0x5f4b, 0x5fbc, 0x619d, 0x61a8, 0x6196, 0x61c5, 0x61b4, 0x61c6, 0x61c1, 0x61cc, 0x61ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x61bf, 0x61b8, 0x618c, 0x64d7, 0x64d6, 0x64d0, 0x64cf, 0x64c9, 0x64bd, 0x6489, 0x64c3, 0x64db, 0x64f3, 0x64d9, 0x6533, 0x657f, 0x657c, 0x65a2, 0x66c8, 0x66be, 0x66c0, 0x66ca, 0x66cb, 0x66cf, 0x66bd, 0x66bb, 0x66ba, 0x66cc, 0x6723, 0x6a34, 0x6a66, 0x6a49, 0x6a67, 0x6a32, 0x6a68, 0x6a3e, 0x6a5d, 0x6a6d, 0x6a76, 0x6a5b, 0x6a51, 0x6a28, 0x6a5a, 0x6a3b, 0x6a3f, 0x6a41, 0x6a6a, 0x6a64, 0x6a50, 0x6a4f, 0x6a54, 0x6a6f, 0x6a69, 0x6a60, 0x6a3c, 0x6a5e, 0x6a56, 0x6a55, 0x6a4d, 0x6a4e, 0x6a46, 0x6b55, 0x6b54, 0x6b56, 0x6ba7, 0x6baa, 0x6bab, 0x6bc8, 0x6bc7, 0x6c04, 0x6c03, 0x6c06, 0x6fad, 0x6fcb, 0x6fa3, 0x6fc7, 0x6fbc, 0x6fce, 0x6fc8, 0x6f5e, 0x6fc4, 0x6fbd, 0x6f9e, 0x6fca, 0x6fa8, 0x7004, 0x6fa5, 0x6fae, 0x6fba, 0x6fac, 0x6faa, 0x6fcf, 0x6fbf, 0x6fb8, 0x003f, /* lead byte ea */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6fa2, 0x6fc9, 0x6fab, 0x6fcd, 0x6faf, 0x6fb2, 0x6fb0, 0x71c5, 0x71c2, 0x71bf, 0x71b8, 0x71d6, 0x71c0, 0x71c1, 0x71cb, 0x71d4, 0x71ca, 0x71c7, 0x71cf, 0x71bd, 0x71d8, 0x71bc, 0x71c6, 0x71da, 0x71db, 0x729d, 0x729e, 0x7369, 0x7366, 0x7367, 0x736c, 0x7365, 0x736b, 0x736a, 0x747f, 0x749a, 0x74a0, 0x7494, 0x7492, 0x7495, 0x74a1, 0x750b, 0x7580, 0x762f, 0x762d, 0x7631, 0x763d, 0x7633, 0x763c, 0x7635, 0x7632, 0x7630, 0x76bb, 0x76e6, 0x779a, 0x779d, 0x77a1, 0x779c, 0x779b, 0x77a2, 0x77a3, 0x7795, 0x7799, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7797, 0x78dd, 0x78e9, 0x78e5, 0x78ea, 0x78de, 0x78e3, 0x78db, 0x78e1, 0x78e2, 0x78ed, 0x78df, 0x78e0, 0x79a4, 0x7a44, 0x7a48, 0x7a47, 0x7ab6, 0x7ab8, 0x7ab5, 0x7ab1, 0x7ab7, 0x7bde, 0x7be3, 0x7be7, 0x7bdd, 0x7bd5, 0x7be5, 0x7bda, 0x7be8, 0x7bf9, 0x7bd4, 0x7bea, 0x7be2, 0x7bdc, 0x7beb, 0x7bd8, 0x7bdf, 0x7cd2, 0x7cd4, 0x7cd7, 0x7cd0, 0x7cd1, 0x7e12, 0x7e21, 0x7e17, 0x7e0c, 0x7e1f, 0x7e20, 0x7e13, 0x7e0e, 0x7e1c, 0x7e15, 0x7e1a, 0x7e22, 0x7e0b, 0x7e0f, 0x7e16, 0x7e0d, 0x7e14, 0x7e25, 0x7e24, 0x7f43, 0x7f7b, 0x7f7c, 0x7f7a, 0x7fb1, 0x7fef, 0x802a, 0x8029, 0x806c, 0x81b1, 0x81a6, 0x81ae, 0x81b9, 0x81b5, 0x81ab, 0x81b0, 0x81ac, 0x81b4, 0x81b2, 0x81b7, 0x81a7, 0x81f2, 0x8255, 0x8256, 0x8257, 0x8556, 0x8545, 0x856b, 0x854d, 0x8553, 0x8561, 0x8558, 0x003f, /* lead byte eb */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8540, 0x8546, 0x8564, 0x8541, 0x8562, 0x8544, 0x8551, 0x8547, 0x8563, 0x853e, 0x855b, 0x8571, 0x854e, 0x856e, 0x8575, 0x8555, 0x8567, 0x8560, 0x858c, 0x8566, 0x855d, 0x8554, 0x8565, 0x856c, 0x8663, 0x8665, 0x8664, 0x879b, 0x878f, 0x8797, 0x8793, 0x8792, 0x8788, 0x8781, 0x8796, 0x8798, 0x8779, 0x8787, 0x87a3, 0x8785, 0x8790, 0x8791, 0x879d, 0x8784, 0x8794, 0x879c, 0x879a, 0x8789, 0x891e, 0x8926, 0x8930, 0x892d, 0x892e, 0x8927, 0x8931, 0x8922, 0x8929, 0x8923, 0x892f, 0x892c, 0x891f, 0x89f1, 0x8ae0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8ae2, 0x8af2, 0x8af4, 0x8af5, 0x8add, 0x8b14, 0x8ae4, 0x8adf, 0x8af0, 0x8ac8, 0x8ade, 0x8ae1, 0x8ae8, 0x8aff, 0x8aef, 0x8afb, 0x8c91, 0x8c92, 0x8c90, 0x8cf5, 0x8cee, 0x8cf1, 0x8cf0, 0x8cf3, 0x8d6c, 0x8d6e, 0x8da5, 0x8da7, 0x8e33, 0x8e3e, 0x8e38, 0x8e40, 0x8e45, 0x8e36, 0x8e3c, 0x8e3d, 0x8e41, 0x8e30, 0x8e3f, 0x8ebd, 0x8f36, 0x8f2e, 0x8f35, 0x8f32, 0x8f39, 0x8f37, 0x8f34, 0x9076, 0x9079, 0x907b, 0x9086, 0x90fa, 0x9133, 0x9135, 0x9136, 0x9193, 0x9190, 0x9191, 0x918d, 0x918f, 0x9327, 0x931e, 0x9308, 0x931f, 0x9306, 0x930f, 0x937a, 0x9338, 0x933c, 0x931b, 0x9323, 0x9312, 0x9301, 0x9346, 0x932d, 0x930e, 0x930d, 0x92cb, 0x931d, 0x92fa, 0x9325, 0x9313, 0x92f9, 0x92f7, 0x9334, 0x9302, 0x9324, 0x92ff, 0x9329, 0x9339, 0x9335, 0x932a, 0x9314, 0x930c, 0x003f, /* lead byte ec */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x930b, 0x92fe, 0x9309, 0x9300, 0x92fb, 0x9316, 0x95bc, 0x95cd, 0x95be, 0x95b9, 0x95ba, 0x95b6, 0x95bf, 0x95b5, 0x95bd, 0x96a9, 0x96d4, 0x970b, 0x9712, 0x9710, 0x9799, 0x9797, 0x9794, 0x97f0, 0x97f8, 0x9835, 0x982f, 0x9832, 0x9924, 0x991f, 0x9927, 0x9929, 0x999e, 0x99ee, 0x99ec, 0x99e5, 0x99e4, 0x99f0, 0x99e3, 0x99ea, 0x99e9, 0x99e7, 0x9ab9, 0x9abf, 0x9ab4, 0x9abb, 0x9af6, 0x9afa, 0x9af9, 0x9af7, 0x9b33, 0x9b80, 0x9b85, 0x9b87, 0x9b7c, 0x9b7e, 0x9b7b, 0x9b82, 0x9b93, 0x9b92, 0x9b90, 0x9b7a, 0x9b95, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9b7d, 0x9b88, 0x9d25, 0x9d17, 0x9d20, 0x9d1e, 0x9d14, 0x9d29, 0x9d1d, 0x9d18, 0x9d22, 0x9d10, 0x9d19, 0x9d1f, 0x9e88, 0x9e86, 0x9e87, 0x9eae, 0x9ead, 0x9ed5, 0x9ed6, 0x9efa, 0x9f12, 0x9f3d, 0x5126, 0x5125, 0x5122, 0x5124, 0x5120, 0x5129, 0x52f4, 0x5693, 0x568c, 0x568d, 0x5686, 0x5684, 0x5683, 0x567e, 0x5682, 0x567f, 0x5681, 0x58d6, 0x58d4, 0x58cf, 0x58d2, 0x5b2d, 0x5b25, 0x5b32, 0x5b23, 0x5b2c, 0x5b27, 0x5b26, 0x5b2f, 0x5b2e, 0x5b7b, 0x5bf1, 0x5bf2, 0x5db7, 0x5e6c, 0x5e6a, 0x5fbe, 0x5fbb, 0x61c3, 0x61b5, 0x61bc, 0x61e7, 0x61e0, 0x61e5, 0x61e4, 0x61e8, 0x61de, 0x64ef, 0x64e9, 0x64e3, 0x64eb, 0x64e4, 0x64e8, 0x6581, 0x6580, 0x65b6, 0x65da, 0x66d2, 0x6a8d, 0x6a96, 0x6a81, 0x6aa5, 0x6a89, 0x6a9f, 0x6a9b, 0x6aa1, 0x6a9e, 0x6a87, 0x6a93, 0x6a8e, 0x003f, /* lead byte ed */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x6a95, 0x6a83, 0x6aa8, 0x6aa4, 0x6a91, 0x6a7f, 0x6aa6, 0x6a9a, 0x6a85, 0x6a8c, 0x6a92, 0x6b5b, 0x6bad, 0x6c09, 0x6fcc, 0x6fa9, 0x6ff4, 0x6fd4, 0x6fe3, 0x6fdc, 0x6fed, 0x6fe7, 0x6fe6, 0x6fde, 0x6ff2, 0x6fdd, 0x6fe2, 0x6fe8, 0x71e1, 0x71f1, 0x71e8, 0x71f2, 0x71e4, 0x71f0, 0x71e2, 0x7373, 0x736e, 0x736f, 0x7497, 0x74b2, 0x74ab, 0x7490, 0x74aa, 0x74ad, 0x74b1, 0x74a5, 0x74af, 0x7510, 0x7511, 0x7512, 0x750f, 0x7584, 0x7643, 0x7648, 0x7649, 0x7647, 0x76a4, 0x76e9, 0x77b5, 0x77ab, 0x77b2, 0x77b7, 0x77b6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x77b4, 0x77b1, 0x77a8, 0x77f0, 0x78f3, 0x78fd, 0x7902, 0x78fb, 0x78fc, 0x78f2, 0x7905, 0x78f9, 0x78fe, 0x7904, 0x79ab, 0x79a8, 0x7a5c, 0x7a5b, 0x7a56, 0x7a58, 0x7a54, 0x7a5a, 0x7abe, 0x7ac0, 0x7ac1, 0x7c05, 0x7c0f, 0x7bf2, 0x7c00, 0x7bff, 0x7bfb, 0x7c0e, 0x7bf4, 0x7c0b, 0x7bf3, 0x7c02, 0x7c09, 0x7c03, 0x7c01, 0x7bf8, 0x7bfd, 0x7c06, 0x7bf0, 0x7bf1, 0x7c10, 0x7c0a, 0x7ce8, 0x7e2d, 0x7e3c, 0x7e42, 0x7e33, 0x9848, 0x7e38, 0x7e2a, 0x7e49, 0x7e40, 0x7e47, 0x7e29, 0x7e4c, 0x7e30, 0x7e3b, 0x7e36, 0x7e44, 0x7e3a, 0x7f45, 0x7f7f, 0x7f7e, 0x7f7d, 0x7ff4, 0x7ff2, 0x802c, 0x81bb, 0x81c4, 0x81cc, 0x81ca, 0x81c5, 0x81c7, 0x81bc, 0x81e9, 0x825b, 0x825a, 0x825c, 0x8583, 0x8580, 0x858f, 0x85a7, 0x8595, 0x85a0, 0x858b, 0x85a3, 0x857b, 0x85a4, 0x859a, 0x859e, 0x003f, /* lead byte ee */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8577, 0x857c, 0x8589, 0x85a1, 0x857a, 0x8578, 0x8557, 0x858e, 0x8596, 0x8586, 0x858d, 0x8599, 0x859d, 0x8581, 0x85a2, 0x8582, 0x8588, 0x8585, 0x8579, 0x8576, 0x8598, 0x8590, 0x859f, 0x8668, 0x87be, 0x87aa, 0x87ad, 0x87c5, 0x87b0, 0x87ac, 0x87b9, 0x87b5, 0x87bc, 0x87ae, 0x87c9, 0x87c3, 0x87c2, 0x87cc, 0x87b7, 0x87af, 0x87c4, 0x87ca, 0x87b4, 0x87b6, 0x87bf, 0x87b8, 0x87bd, 0x87de, 0x87b2, 0x8935, 0x8933, 0x893c, 0x893e, 0x8941, 0x8952, 0x8937, 0x8942, 0x89ad, 0x89af, 0x89ae, 0x89f2, 0x89f3, 0x8b1e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b18, 0x8b16, 0x8b11, 0x8b05, 0x8b0b, 0x8b22, 0x8b0f, 0x8b12, 0x8b15, 0x8b07, 0x8b0d, 0x8b08, 0x8b06, 0x8b1c, 0x8b13, 0x8b1a, 0x8c4f, 0x8c70, 0x8c72, 0x8c71, 0x8c6f, 0x8c95, 0x8c94, 0x8cf9, 0x8d6f, 0x8e4e, 0x8e4d, 0x8e53, 0x8e50, 0x8e4c, 0x8e47, 0x8f43, 0x8f40, 0x9085, 0x907e, 0x9138, 0x919a, 0x91a2, 0x919b, 0x9199, 0x919f, 0x91a1, 0x919d, 0x91a0, 0x93a1, 0x9383, 0x93af, 0x9364, 0x9356, 0x9347, 0x937c, 0x9358, 0x935c, 0x9376, 0x9349, 0x9350, 0x9351, 0x9360, 0x936d, 0x938f, 0x934c, 0x936a, 0x9379, 0x9357, 0x9355, 0x9352, 0x934f, 0x9371, 0x9377, 0x937b, 0x9361, 0x935e, 0x9363, 0x9367, 0x9380, 0x934e, 0x9359, 0x95c7, 0x95c0, 0x95c9, 0x95c3, 0x95c5, 0x95b7, 0x96ae, 0x96b0, 0x96ac, 0x9720, 0x971f, 0x9718, 0x971d, 0x9719, 0x979a, 0x97a1, 0x979c, 0x003f, /* lead byte ef */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x979e, 0x979d, 0x97d5, 0x97d4, 0x97f1, 0x9841, 0x9844, 0x984a, 0x9849, 0x9845, 0x9843, 0x9925, 0x992b, 0x992c, 0x992a, 0x9933, 0x9932, 0x992f, 0x992d, 0x9931, 0x9930, 0x9998, 0x99a3, 0x99a1, 0x9a02, 0x99fa, 0x99f4, 0x99f7, 0x99f9, 0x99f8, 0x99f6, 0x99fb, 0x99fd, 0x99fe, 0x99fc, 0x9a03, 0x9abe, 0x9afe, 0x9afd, 0x9b01, 0x9afc, 0x9b48, 0x9b9a, 0x9ba8, 0x9b9e, 0x9b9b, 0x9ba6, 0x9ba1, 0x9ba5, 0x9ba4, 0x9b86, 0x9ba2, 0x9ba0, 0x9baf, 0x9d33, 0x9d41, 0x9d67, 0x9d36, 0x9d2e, 0x9d2f, 0x9d31, 0x9d38, 0x9d30, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9d45, 0x9d42, 0x9d43, 0x9d3e, 0x9d37, 0x9d40, 0x9d3d, 0x7ff5, 0x9d2d, 0x9e8a, 0x9e89, 0x9e8d, 0x9eb0, 0x9ec8, 0x9eda, 0x9efb, 0x9eff, 0x9f24, 0x9f23, 0x9f22, 0x9f54, 0x9fa0, 0x5131, 0x512d, 0x512e, 0x5698, 0x569c, 0x5697, 0x569a, 0x569d, 0x5699, 0x5970, 0x5b3c, 0x5c69, 0x5c6a, 0x5dc0, 0x5e6d, 0x5e6e, 0x61d8, 0x61df, 0x61ed, 0x61ee, 0x61f1, 0x61ea, 0x61f0, 0x61eb, 0x61d6, 0x61e9, 0x64ff, 0x6504, 0x64fd, 0x64f8, 0x6501, 0x6503, 0x64fc, 0x6594, 0x65db, 0x66da, 0x66db, 0x66d8, 0x6ac5, 0x6ab9, 0x6abd, 0x6ae1, 0x6ac6, 0x6aba, 0x6ab6, 0x6ab7, 0x6ac7, 0x6ab4, 0x6aad, 0x6b5e, 0x6bc9, 0x6c0b, 0x7007, 0x700c, 0x700d, 0x7001, 0x7005, 0x7014, 0x700e, 0x6fff, 0x7000, 0x6ffb, 0x7026, 0x6ffc, 0x6ff7, 0x700a, 0x7201, 0x71ff, 0x71f9, 0x7203, 0x71fd, 0x7376, 0x003f, /* lead byte f0 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x74b8, 0x74c0, 0x74b5, 0x74c1, 0x74be, 0x74b6, 0x74bb, 0x74c2, 0x7514, 0x7513, 0x765c, 0x7664, 0x7659, 0x7650, 0x7653, 0x7657, 0x765a, 0x76a6, 0x76bd, 0x76ec, 0x77c2, 0x77ba, 0x78ff, 0x790c, 0x7913, 0x7914, 0x7909, 0x7910, 0x7912, 0x7911, 0x79ad, 0x79ac, 0x7a5f, 0x7c1c, 0x7c29, 0x7c19, 0x7c20, 0x7c1f, 0x7c2d, 0x7c1d, 0x7c26, 0x7c28, 0x7c22, 0x7c25, 0x7c30, 0x7e5c, 0x7e50, 0x7e56, 0x7e63, 0x7e58, 0x7e62, 0x7e5f, 0x7e51, 0x7e60, 0x7e57, 0x7e53, 0x7fb5, 0x7fb3, 0x7ff7, 0x7ff8, 0x8075, 0x81d1, 0x81d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x81d0, 0x825f, 0x825e, 0x85b4, 0x85c6, 0x85c0, 0x85c3, 0x85c2, 0x85b3, 0x85b5, 0x85bd, 0x85c7, 0x85c4, 0x85bf, 0x85cb, 0x85ce, 0x85c8, 0x85c5, 0x85b1, 0x85b6, 0x85d2, 0x8624, 0x85b8, 0x85b7, 0x85be, 0x8669, 0x87e7, 0x87e6, 0x87e2, 0x87db, 0x87eb, 0x87ea, 0x87e5, 0x87df, 0x87f3, 0x87e4, 0x87d4, 0x87dc, 0x87d3, 0x87ed, 0x87d8, 0x87e3, 0x87a4, 0x87d7, 0x87d9, 0x8801, 0x87f4, 0x87e8, 0x87dd, 0x8953, 0x894b, 0x894f, 0x894c, 0x8946, 0x8950, 0x8951, 0x8949, 0x8b2a, 0x8b27, 0x8b23, 0x8b33, 0x8b30, 0x8b35, 0x8b47, 0x8b2f, 0x8b3c, 0x8b3e, 0x8b31, 0x8b25, 0x8b37, 0x8b26, 0x8b36, 0x8b2e, 0x8b24, 0x8b3b, 0x8b3d, 0x8b3a, 0x8c42, 0x8c75, 0x8c99, 0x8c98, 0x8c97, 0x8cfe, 0x8d04, 0x8d02, 0x8d00, 0x8e5c, 0x8e62, 0x8e60, 0x8e57, 0x8e56, 0x8e5e, 0x8e65, 0x8e67, 0x003f, /* lead byte f1 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8e5b, 0x8e5a, 0x8e61, 0x8e5d, 0x8e69, 0x8e54, 0x8f46, 0x8f47, 0x8f48, 0x8f4b, 0x9128, 0x913a, 0x913b, 0x913e, 0x91a8, 0x91a5, 0x91a7, 0x91af, 0x91aa, 0x93b5, 0x938c, 0x9392, 0x93b7, 0x939b, 0x939d, 0x9389, 0x93a7, 0x938e, 0x93aa, 0x939e, 0x93a6, 0x9395, 0x9388, 0x9399, 0x939f, 0x938d, 0x93b1, 0x9391, 0x93b2, 0x93a4, 0x93a8, 0x93b4, 0x93a3, 0x93a5, 0x95d2, 0x95d3, 0x95d1, 0x96b3, 0x96d7, 0x96da, 0x5dc2, 0x96df, 0x96d8, 0x96dd, 0x9723, 0x9722, 0x9725, 0x97ac, 0x97ae, 0x97a8, 0x97ab, 0x97a4, 0x97aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97a2, 0x97a5, 0x97d7, 0x97d9, 0x97d6, 0x97d8, 0x97fa, 0x9850, 0x9851, 0x9852, 0x98b8, 0x9941, 0x993c, 0x993a, 0x9a0f, 0x9a0b, 0x9a09, 0x9a0d, 0x9a04, 0x9a11, 0x9a0a, 0x9a05, 0x9a07, 0x9a06, 0x9ac0, 0x9adc, 0x9b08, 0x9b04, 0x9b05, 0x9b29, 0x9b35, 0x9b4a, 0x9b4c, 0x9b4b, 0x9bc7, 0x9bc6, 0x9bc3, 0x9bbf, 0x9bc1, 0x9bb5, 0x9bb8, 0x9bd3, 0x9bb6, 0x9bc4, 0x9bb9, 0x9bbd, 0x9d5c, 0x9d53, 0x9d4f, 0x9d4a, 0x9d5b, 0x9d4b, 0x9d59, 0x9d56, 0x9d4c, 0x9d57, 0x9d52, 0x9d54, 0x9d5f, 0x9d58, 0x9d5a, 0x9e8e, 0x9e8c, 0x9edf, 0x9f01, 0x9f00, 0x9f16, 0x9f25, 0x9f2b, 0x9f2a, 0x9f29, 0x9f28, 0x9f4c, 0x9f55, 0x5134, 0x5135, 0x5296, 0x52f7, 0x53b4, 0x56ab, 0x56ad, 0x56a6, 0x56a7, 0x56aa, 0x56ac, 0x58da, 0x58dd, 0x58db, 0x5912, 0x5b3d, 0x5b3e, 0x5b3f, 0x5dc3, 0x5e70, 0x003f, /* lead byte f2 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x5fbf, 0x61fb, 0x6507, 0x6510, 0x650d, 0x6509, 0x650c, 0x650e, 0x6584, 0x65de, 0x65dd, 0x66de, 0x6ae7, 0x6ae0, 0x6acc, 0x6ad1, 0x6ad9, 0x6acb, 0x6adf, 0x6adc, 0x6ad0, 0x6aeb, 0x6acf, 0x6acd, 0x6ade, 0x6b60, 0x6bb0, 0x6c0c, 0x7019, 0x7027, 0x7020, 0x7016, 0x702b, 0x7021, 0x7022, 0x7023, 0x7029, 0x7017, 0x7024, 0x701c, 0x702a, 0x720c, 0x720a, 0x7207, 0x7202, 0x7205, 0x72a5, 0x72a6, 0x72a4, 0x72a3, 0x72a1, 0x74cb, 0x74c5, 0x74b7, 0x74c3, 0x7516, 0x7660, 0x77c9, 0x77ca, 0x77c4, 0x77f1, 0x791d, 0x791b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7921, 0x791c, 0x7917, 0x791e, 0x79b0, 0x7a67, 0x7a68, 0x7c33, 0x7c3c, 0x7c39, 0x7c2c, 0x7c3b, 0x7cec, 0x7cea, 0x7e76, 0x7e75, 0x7e78, 0x7e70, 0x7e77, 0x7e6f, 0x7e7a, 0x7e72, 0x7e74, 0x7e68, 0x7f4b, 0x7f4a, 0x7f83, 0x7f86, 0x7fb7, 0x7ffd, 0x7ffe, 0x8078, 0x81d7, 0x81d5, 0x8264, 0x8261, 0x8263, 0x85eb, 0x85f1, 0x85ed, 0x85d9, 0x85e1, 0x85e8, 0x85da, 0x85d7, 0x85ec, 0x85f2, 0x85f8, 0x85d8, 0x85df, 0x85e3, 0x85dc, 0x85d1, 0x85f0, 0x85e6, 0x85ef, 0x85de, 0x85e2, 0x8800, 0x87fa, 0x8803, 0x87f6, 0x87f7, 0x8809, 0x880c, 0x880b, 0x8806, 0x87fc, 0x8808, 0x87ff, 0x880a, 0x8802, 0x8962, 0x895a, 0x895b, 0x8957, 0x8961, 0x895c, 0x8958, 0x895d, 0x8959, 0x8988, 0x89b7, 0x89b6, 0x89f6, 0x8b50, 0x8b48, 0x8b4a, 0x8b40, 0x8b53, 0x8b56, 0x8b54, 0x8b4b, 0x8b55, 0x003f, /* lead byte f3 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b51, 0x8b42, 0x8b52, 0x8b57, 0x8c43, 0x8c77, 0x8c76, 0x8c9a, 0x8d06, 0x8d07, 0x8d09, 0x8dac, 0x8daa, 0x8dad, 0x8dab, 0x8e6d, 0x8e78, 0x8e73, 0x8e6a, 0x8e6f, 0x8e7b, 0x8ec2, 0x8f52, 0x8f51, 0x8f4f, 0x8f50, 0x8f53, 0x8fb4, 0x9140, 0x913f, 0x91b0, 0x91ad, 0x93de, 0x93c7, 0x93cf, 0x93c2, 0x93da, 0x93d0, 0x93f9, 0x93ec, 0x93cc, 0x93d9, 0x93a9, 0x93e6, 0x93ca, 0x93d4, 0x93ee, 0x93e3, 0x93d5, 0x93c4, 0x93ce, 0x93c0, 0x93d2, 0x93e7, 0x957d, 0x95da, 0x95db, 0x96e1, 0x9729, 0x972b, 0x972c, 0x9728, 0x9726, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x97b3, 0x97b7, 0x97b6, 0x97dd, 0x97de, 0x97df, 0x985c, 0x9859, 0x985d, 0x9857, 0x98bf, 0x98bd, 0x98bb, 0x98be, 0x9948, 0x9947, 0x9943, 0x99a6, 0x99a7, 0x9a1a, 0x9a15, 0x9a25, 0x9a1d, 0x9a24, 0x9a1b, 0x9a22, 0x9a20, 0x9a27, 0x9a23, 0x9a1e, 0x9a1c, 0x9a14, 0x9ac2, 0x9b0b, 0x9b0a, 0x9b0e, 0x9b0c, 0x9b37, 0x9bea, 0x9beb, 0x9be0, 0x9bde, 0x9be4, 0x9be6, 0x9be2, 0x9bf0, 0x9bd4, 0x9bd7, 0x9bec, 0x9bdc, 0x9bd9, 0x9be5, 0x9bd5, 0x9be1, 0x9bda, 0x9d77, 0x9d81, 0x9d8a, 0x9d84, 0x9d88, 0x9d71, 0x9d80, 0x9d78, 0x9d86, 0x9d8b, 0x9d8c, 0x9d7d, 0x9d6b, 0x9d74, 0x9d75, 0x9d70, 0x9d69, 0x9d85, 0x9d73, 0x9d7b, 0x9d82, 0x9d6f, 0x9d79, 0x9d7f, 0x9d87, 0x9d68, 0x9e94, 0x9e91, 0x9ec0, 0x9efc, 0x9f2d, 0x9f40, 0x9f41, 0x9f4d, 0x9f56, 0x9f57, 0x9f58, 0x5337, 0x56b2, 0x003f, /* lead byte f4 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x56b5, 0x56b3, 0x58e3, 0x5b45, 0x5dc6, 0x5dc7, 0x5eee, 0x5eef, 0x5fc0, 0x5fc1, 0x61f9, 0x6517, 0x6516, 0x6515, 0x6513, 0x65df, 0x66e8, 0x66e3, 0x66e4, 0x6af3, 0x6af0, 0x6aea, 0x6ae8, 0x6af9, 0x6af1, 0x6aee, 0x6aef, 0x703c, 0x7035, 0x702f, 0x7037, 0x7034, 0x7031, 0x7042, 0x7038, 0x703f, 0x703a, 0x7039, 0x7040, 0x703b, 0x7033, 0x7041, 0x7213, 0x7214, 0x72a8, 0x737d, 0x737c, 0x74ba, 0x76ab, 0x76aa, 0x76be, 0x76ed, 0x77cc, 0x77ce, 0x77cf, 0x77cd, 0x77f2, 0x7925, 0x7923, 0x7927, 0x7928, 0x7924, 0x7929, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x79b2, 0x7a6e, 0x7a6c, 0x7a6d, 0x7af7, 0x7c49, 0x7c48, 0x7c4a, 0x7c47, 0x7c45, 0x7cee, 0x7e7b, 0x7e7e, 0x7e81, 0x7e80, 0x7fba, 0x7fff, 0x8079, 0x81db, 0x81d9, 0x820b, 0x8268, 0x8269, 0x8622, 0x85ff, 0x8601, 0x85fe, 0x861b, 0x8600, 0x85f6, 0x8604, 0x8609, 0x8605, 0x860c, 0x85fd, 0x8819, 0x8810, 0x8811, 0x8817, 0x8813, 0x8816, 0x8963, 0x8966, 0x89b9, 0x89f7, 0x8b60, 0x8b6a, 0x8b5d, 0x8b68, 0x8b63, 0x8b65, 0x8b67, 0x8b6d, 0x8dae, 0x8e86, 0x8e88, 0x8e84, 0x8f59, 0x8f56, 0x8f57, 0x8f55, 0x8f58, 0x8f5a, 0x908d, 0x9143, 0x9141, 0x91b7, 0x91b5, 0x91b2, 0x91b3, 0x940b, 0x9413, 0x93fb, 0x9420, 0x940f, 0x9414, 0x93fe, 0x9415, 0x9410, 0x9428, 0x9419, 0x940d, 0x93f5, 0x9400, 0x93f7, 0x9407, 0x940e, 0x9416, 0x9412, 0x93fa, 0x9409, 0x93f8, 0x940a, 0x93ff, 0x003f, /* lead byte f5 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x93fc, 0x940c, 0x93f6, 0x9411, 0x9406, 0x95de, 0x95e0, 0x95df, 0x972e, 0x972f, 0x97b9, 0x97bb, 0x97fd, 0x97fe, 0x9860, 0x9862, 0x9863, 0x985f, 0x98c1, 0x98c2, 0x9950, 0x994e, 0x9959, 0x994c, 0x994b, 0x9953, 0x9a32, 0x9a34, 0x9a31, 0x9a2c, 0x9a2a, 0x9a36, 0x9a29, 0x9a2e, 0x9a38, 0x9a2d, 0x9ac7, 0x9aca, 0x9ac6, 0x9b10, 0x9b12, 0x9b11, 0x9c0b, 0x9c08, 0x9bf7, 0x9c05, 0x9c12, 0x9bf8, 0x9c40, 0x9c07, 0x9c0e, 0x9c06, 0x9c17, 0x9c14, 0x9c09, 0x9d9f, 0x9d99, 0x9da4, 0x9d9d, 0x9d92, 0x9d98, 0x9d90, 0x9d9b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9da0, 0x9d94, 0x9d9c, 0x9daa, 0x9d97, 0x9da1, 0x9d9a, 0x9da2, 0x9da8, 0x9d9e, 0x9da3, 0x9dbf, 0x9da9, 0x9d96, 0x9da6, 0x9da7, 0x9e99, 0x9e9b, 0x9e9a, 0x9ee5, 0x9ee4, 0x9ee7, 0x9ee6, 0x9f30, 0x9f2e, 0x9f5b, 0x9f60, 0x9f5e, 0x9f5d, 0x9f59, 0x9f91, 0x513a, 0x5139, 0x5298, 0x5297, 0x56c3, 0x56bd, 0x56be, 0x5b48, 0x5b47, 0x5dcb, 0x5dcf, 0x5ef1, 0x61fd, 0x651b, 0x6b02, 0x6afc, 0x6b03, 0x6af8, 0x6b00, 0x7043, 0x7044, 0x704a, 0x7048, 0x7049, 0x7045, 0x7046, 0x721d, 0x721a, 0x7219, 0x737e, 0x7517, 0x766a, 0x77d0, 0x792d, 0x7931, 0x792f, 0x7c54, 0x7c53, 0x7cf2, 0x7e8a, 0x7e87, 0x7e88, 0x7e8b, 0x7e86, 0x7e8d, 0x7f4d, 0x7fbb, 0x8030, 0x81dd, 0x8618, 0x862a, 0x8626, 0x861f, 0x8623, 0x861c, 0x8619, 0x8627, 0x862e, 0x8621, 0x8620, 0x8629, 0x861e, 0x8625, 0x003f, /* lead byte f6 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8829, 0x881d, 0x881b, 0x8820, 0x8824, 0x881c, 0x882b, 0x884a, 0x896d, 0x8969, 0x896e, 0x896b, 0x89fa, 0x8b79, 0x8b78, 0x8b45, 0x8b7a, 0x8b7b, 0x8d10, 0x8d14, 0x8daf, 0x8e8e, 0x8e8c, 0x8f5e, 0x8f5b, 0x8f5d, 0x9146, 0x9144, 0x9145, 0x91b9, 0x943f, 0x943b, 0x9436, 0x9429, 0x943d, 0x943c, 0x9430, 0x9439, 0x942a, 0x9437, 0x942c, 0x9440, 0x9431, 0x95e5, 0x95e4, 0x95e3, 0x9735, 0x973a, 0x97bf, 0x97e1, 0x9864, 0x98c9, 0x98c6, 0x98c0, 0x9958, 0x9956, 0x9a39, 0x9a3d, 0x9a46, 0x9a44, 0x9a42, 0x9a41, 0x9a3a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a3f, 0x9acd, 0x9b15, 0x9b17, 0x9b18, 0x9b16, 0x9b3a, 0x9b52, 0x9c2b, 0x9c1d, 0x9c1c, 0x9c2c, 0x9c23, 0x9c28, 0x9c29, 0x9c24, 0x9c21, 0x9db7, 0x9db6, 0x9dbc, 0x9dc1, 0x9dc7, 0x9dca, 0x9dcf, 0x9dbe, 0x9dc5, 0x9dc3, 0x9dbb, 0x9db5, 0x9dce, 0x9db9, 0x9dba, 0x9dac, 0x9dc8, 0x9db1, 0x9dad, 0x9dcc, 0x9db3, 0x9dcd, 0x9db2, 0x9e7a, 0x9e9c, 0x9eeb, 0x9eee, 0x9eed, 0x9f1b, 0x9f18, 0x9f1a, 0x9f31, 0x9f4e, 0x9f65, 0x9f64, 0x9f92, 0x4eb9, 0x56c6, 0x56c5, 0x56cb, 0x5971, 0x5b4b, 0x5b4c, 0x5dd5, 0x5dd1, 0x5ef2, 0x6521, 0x6520, 0x6526, 0x6522, 0x6b0b, 0x6b08, 0x6b09, 0x6c0d, 0x7055, 0x7056, 0x7057, 0x7052, 0x721e, 0x721f, 0x72a9, 0x737f, 0x74d8, 0x74d5, 0x74d9, 0x74d7, 0x766d, 0x76ad, 0x7935, 0x79b4, 0x7a70, 0x7a71, 0x7c57, 0x7c5c, 0x7c59, 0x7c5b, 0x7c5a, 0x003f, /* lead byte f7 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7cf4, 0x7cf1, 0x7e91, 0x7f4f, 0x7f87, 0x81de, 0x826b, 0x8634, 0x8635, 0x8633, 0x862c, 0x8632, 0x8636, 0x882c, 0x8828, 0x8826, 0x882a, 0x8825, 0x8971, 0x89bf, 0x89be, 0x89fb, 0x8b7e, 0x8b84, 0x8b82, 0x8b86, 0x8b85, 0x8b7f, 0x8d15, 0x8e95, 0x8e94, 0x8e9a, 0x8e92, 0x8e90, 0x8e96, 0x8e97, 0x8f60, 0x8f62, 0x9147, 0x944c, 0x9450, 0x944a, 0x944b, 0x944f, 0x9447, 0x9445, 0x9448, 0x9449, 0x9446, 0x973f, 0x97e3, 0x986a, 0x9869, 0x98cb, 0x9954, 0x995b, 0x9a4e, 0x9a53, 0x9a54, 0x9a4c, 0x9a4f, 0x9a48, 0x9a4a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9a49, 0x9a52, 0x9a50, 0x9ad0, 0x9b19, 0x9b2b, 0x9b3b, 0x9b56, 0x9b55, 0x9c46, 0x9c48, 0x9c3f, 0x9c44, 0x9c39, 0x9c33, 0x9c41, 0x9c3c, 0x9c37, 0x9c34, 0x9c32, 0x9c3d, 0x9c36, 0x9ddb, 0x9dd2, 0x9dde, 0x9dda, 0x9dcb, 0x9dd0, 0x9ddc, 0x9dd1, 0x9ddf, 0x9de9, 0x9dd9, 0x9dd8, 0x9dd6, 0x9df5, 0x9dd5, 0x9ddd, 0x9eb6, 0x9ef0, 0x9f35, 0x9f33, 0x9f32, 0x9f42, 0x9f6b, 0x9f95, 0x9fa2, 0x513d, 0x5299, 0x58e8, 0x58e7, 0x5972, 0x5b4d, 0x5dd8, 0x882f, 0x5f4f, 0x6201, 0x6203, 0x6204, 0x6529, 0x6525, 0x6596, 0x66eb, 0x6b11, 0x6b12, 0x6b0f, 0x6bca, 0x705b, 0x705a, 0x7222, 0x7382, 0x7381, 0x7383, 0x7670, 0x77d4, 0x7c67, 0x7c66, 0x7e95, 0x826c, 0x863a, 0x8640, 0x8639, 0x863c, 0x8631, 0x863b, 0x863e, 0x8830, 0x8832, 0x882e, 0x8833, 0x8976, 0x8974, 0x8973, 0x89fe, 0x003f, /* lead byte f8 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x8b8c, 0x8b8e, 0x8b8b, 0x8b88, 0x8c45, 0x8d19, 0x8e98, 0x8f64, 0x8f63, 0x91bc, 0x9462, 0x9455, 0x945d, 0x9457, 0x945e, 0x97c4, 0x97c5, 0x9800, 0x9a56, 0x9a59, 0x9b1e, 0x9b1f, 0x9b20, 0x9c52, 0x9c58, 0x9c50, 0x9c4a, 0x9c4d, 0x9c4b, 0x9c55, 0x9c59, 0x9c4c, 0x9c4e, 0x9dfb, 0x9df7, 0x9def, 0x9de3, 0x9deb, 0x9df8, 0x9de4, 0x9df6, 0x9de1, 0x9dee, 0x9de6, 0x9df2, 0x9df0, 0x9de2, 0x9dec, 0x9df4, 0x9df3, 0x9de8, 0x9ded, 0x9ec2, 0x9ed0, 0x9ef2, 0x9ef3, 0x9f06, 0x9f1c, 0x9f38, 0x9f37, 0x9f36, 0x9f43, 0x9f4f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9f71, 0x9f70, 0x9f6e, 0x9f6f, 0x56d3, 0x56cd, 0x5b4e, 0x5c6d, 0x652d, 0x66ed, 0x66ee, 0x6b13, 0x705f, 0x7061, 0x705d, 0x7060, 0x7223, 0x74db, 0x74e5, 0x77d5, 0x7938, 0x79b7, 0x79b6, 0x7c6a, 0x7e97, 0x7f89, 0x826d, 0x8643, 0x8838, 0x8837, 0x8835, 0x884b, 0x8b94, 0x8b95, 0x8e9e, 0x8e9f, 0x8ea0, 0x8e9d, 0x91be, 0x91bd, 0x91c2, 0x946b, 0x9468, 0x9469, 0x96e5, 0x9746, 0x9743, 0x9747, 0x97c7, 0x97e5, 0x9a5e, 0x9ad5, 0x9b59, 0x9c63, 0x9c67, 0x9c66, 0x9c62, 0x9c5e, 0x9c60, 0x9e02, 0x9dfe, 0x9e07, 0x9e03, 0x9e06, 0x9e05, 0x9e00, 0x9e01, 0x9e09, 0x9dff, 0x9dfd, 0x9e04, 0x9ea0, 0x9f1e, 0x9f46, 0x9f74, 0x9f75, 0x9f76, 0x56d4, 0x652e, 0x65b8, 0x6b18, 0x6b19, 0x6b17, 0x6b1a, 0x7062, 0x7226, 0x72aa, 0x77d8, 0x77d9, 0x7939, 0x7c69, 0x7c6b, 0x7cf6, 0x7e9a, 0x003f, /* lead byte f9 */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x7e98, 0x7e9b, 0x7e99, 0x81e0, 0x81e1, 0x8646, 0x8647, 0x8648, 0x8979, 0x897a, 0x897c, 0x897b, 0x89ff, 0x8b98, 0x8b99, 0x8ea5, 0x8ea4, 0x8ea3, 0x946e, 0x946d, 0x946f, 0x9471, 0x9473, 0x9749, 0x9872, 0x995f, 0x9c68, 0x9c6e, 0x9c6d, 0x9e0b, 0x9e0d, 0x9e10, 0x9e0f, 0x9e12, 0x9e11, 0x9ea1, 0x9ef5, 0x9f09, 0x9f47, 0x9f78, 0x9f7b, 0x9f7a, 0x9f79, 0x571e, 0x7066, 0x7c6f, 0x883c, 0x8db2, 0x8ea6, 0x91c3, 0x9474, 0x9478, 0x9476, 0x9475, 0x9a60, 0x9c74, 0x9c73, 0x9c71, 0x9c75, 0x9e14, 0x9e13, 0x9ef6, 0x9f0a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x9fa4, 0x7068, 0x7065, 0x7cf7, 0x866a, 0x883e, 0x883d, 0x883f, 0x8b9e, 0x8c9c, 0x8ea9, 0x8ec9, 0x974b, 0x9873, 0x9874, 0x98cc, 0x9961, 0x99ab, 0x9a64, 0x9a66, 0x9a67, 0x9b24, 0x9e15, 0x9e17, 0x9f48, 0x6207, 0x6b1e, 0x7227, 0x864c, 0x8ea8, 0x9482, 0x9480, 0x9481, 0x9a69, 0x9a68, 0x9b2e, 0x9e19, 0x7229, 0x864b, 0x8b9f, 0x9483, 0x9c79, 0x9eb7, 0x7675, 0x9a6b, 0x9c7a, 0x9e1d, 0x7069, 0x706a, 0x9ea4, 0x9f7e, 0x9f49, 0x9f98, 0x7881, 0x92b9, 0x88cf, 0x58bb, 0x6052, 0x7ca7, 0x5afa, 0x2554, 0x2566, 0x2557, 0x2560, 0x256c, 0x2563, 0x255a, 0x2569, 0x255d, 0x2552, 0x2564, 0x2555, 0x255e, 0x256a, 0x2561, 0x2558, 0x2567, 0x255b, 0x2553, 0x2565, 0x2556, 0x255f, 0x256b, 0x2562, 0x2559, 0x2568, 0x255c, 0x2551, 0x2550, 0x256d, 0x256e, 0x2570, 0x256f, 0x2593, 0x003f }; static const unsigned char cp2uni_leadbytes[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x01, 0x01, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00 }; static const unsigned short uni2cp_low[27392] = { /* 0x0000 .. 0x00ff */ 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008, 0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019, 0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x0021, 0x0063, 0x004c, 0x003f, 0x0059, 0x003f, 0xa1b1, 0x0022, 0x0063, 0x0061, 0xa16d, 0x003f, 0x002d, 0x0072, 0xa1c2, 0xa258, 0xa1d3, 0x0032, 0x0033, 0xa3bd, 0xa367, 0x003f, 0xa150, 0x002c, 0x0031, 0x006f, 0xa16e, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0043, 0x0045, 0x0045, 0x0045, 0x0045, 0x0049, 0x0049, 0x0049, 0x0049, 0x0044, 0x004e, 0x004f, 0x004f, 0x004f, 0x004f, 0x004f, 0xa1d1, 0x004f, 0x0055, 0x0055, 0x0055, 0x0055, 0x0059, 0x003f, 0xa35d, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0063, 0x0065, 0x0065, 0x0065, 0x0065, 0x0069, 0x0069, 0x0069, 0x0069, 0x0064, 0x006e, 0x006f, 0x006f, 0x006f, 0x006f, 0x006f, 0xa1d2, 0x006f, 0x0075, 0x0075, 0x0075, 0x0075, 0x0079, 0x003f, 0x0079, /* 0x0100 .. 0x01ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x003f, 0x003f, 0x004a, 0x006a, 0x004b, 0x006b, 0x003f, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x003f, 0x003f, 0x004c, 0x006c, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x003f, 0x003f, 0x003f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079, 0x0059, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0073, 0x0062, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0045, 0x0046, 0x0066, 0x003f, 0x003f, 0x003f, 0x003f, 0x0049, 0x003f, 0x003f, 0x006c, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x004f, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0074, 0x003f, 0x003f, 0x0054, 0x0055, 0x0075, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa278, 0x003f, 0x003f, 0x0021, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0049, 0x0069, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0047, 0x0067, 0x0047, 0x0067, 0x004b, 0x006b, 0x004f, 0x006f, 0x004f, 0x006f, 0x003f, 0x003f, 0x006a, 0x003f, 0x003f, 0x003f, 0x0047, 0x0067, 0x003f, 0x003f, 0x004e, 0x006e, 0x0041, 0x0061, 0x0041, 0x0061, 0x004f, 0x006f, /* 0x0200 .. 0x02ff */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x0052, 0x0072, 0x0052, 0x0072, 0x0055, 0x0075, 0x0055, 0x0075, 0x0053, 0x0073, 0x0054, 0x0074, 0x003f, 0x003f, 0x0048, 0x0068, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0045, 0x0065, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0067, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0068, 0x003f, 0x006a, 0x0072, 0x003f, 0x003f, 0x003f, 0x0077, 0x0079, 0xa3bd, 0x0022, 0xa1a5, 0xa1a6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x005e, 0xa3be, 0x0027, 0xa3bc, 0xa3bd, 0xa3bf, 0x003f, 0xa1c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa3bb, 0xa258, 0x003f, 0x007e, 0x0022, 0x003f, 0x003f, 0x003f, 0x006c, 0x0073, 0x0078, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x0300 .. 0x03ff */ 0xa3bf, 0xa3bd, 0x005e, 0x007e, 0xa1c2, 0xa1c2, 0x003f, 0xa3bb, 0x0022, 0x003f, 0xa258, 0x0022, 0xa3be, 0x003f, 0x0022, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c5, 0xa1c5, 0x005f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa3bf, 0xa3bd, 0x003f, 0x003f, 0x0022, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa3bd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa3bd, 0x0022, 0xa344, 0xa150, 0xa348, 0xa34a, 0xa34c, 0x003f, 0xa352, 0x003f, 0xa357, 0xa35b, 0xa364, 0xa344, 0xa345, 0xa346, 0xa347, 0xa348, 0xa349, 0xa34a, 0xa34b, 0xa34c, 0xa34d, 0xa34e, 0xa34f, 0xa350, 0xa351, 0xa352, 0xa353, 0xa354, 0x003f, 0xa355, 0xa356, 0xa357, 0xa358, 0xa359, 0xa35a, 0xa35b, 0xa34c, 0xa357, 0xa35c, 0xa360, 0xa362, 0xa364, 0xa36f, 0xa35c, 0xa35d, 0xa35e, 0xa35f, 0xa360, 0xa361, 0xa362, 0xa363, 0xa364, 0xa365, 0xa366, 0xa367, 0xa368, 0xa369, 0xa36a, 0xa36b, 0xa36c, 0x003f, 0xa36d, 0xa36e, 0xa36f, 0xa370, 0xa371, 0xa372, 0xa373, 0xa364, 0xa36f, 0xa36a, 0xa36f, 0xa373, 0x003f, 0xa35d, 0xa363, 0xa357, 0xa357, 0xa357, 0xa370, 0xa36b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa365, 0xa36c, 0x003f, 0x003f, 0xa34b, 0xa360, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1e00 .. 0x1eff */ 0x0041, 0x0061, 0x0042, 0x0062, 0x0042, 0x0062, 0x0042, 0x0062, 0x0043, 0x0063, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0044, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0046, 0x0066, 0x0047, 0x0067, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0048, 0x0068, 0x0049, 0x0069, 0x0049, 0x0069, 0x004b, 0x006b, 0x004b, 0x006b, 0x004b, 0x006b, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004c, 0x006c, 0x004d, 0x006d, 0x004d, 0x006d, 0x004d, 0x006d, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004e, 0x006e, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0050, 0x0070, 0x0050, 0x0070, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0052, 0x0072, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0053, 0x0073, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0054, 0x0074, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0056, 0x0076, 0x0056, 0x0076, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0057, 0x0077, 0x0058, 0x0078, 0x0058, 0x0078, 0x0059, 0x0079, 0x005a, 0x007a, 0x005a, 0x007a, 0x005a, 0x007a, 0x0068, 0x0074, 0x0077, 0x0079, 0x003f, 0x0073, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065, 0x0049, 0x0069, 0x0049, 0x0069, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x004f, 0x006f, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0055, 0x0075, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x0059, 0x0079, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x1f00 .. 0x1fff */ 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa360, 0xa360, 0xa360, 0xa360, 0xa360, 0xa360, 0x003f, 0x003f, 0xa348, 0xa348, 0xa348, 0xa348, 0xa348, 0xa348, 0x003f, 0x003f, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa364, 0xa364, 0xa364, 0xa364, 0xa364, 0xa364, 0xa364, 0xa364, 0xa34c, 0xa34c, 0xa34c, 0xa34c, 0xa34c, 0xa34c, 0xa34c, 0xa34c, 0xa36a, 0xa36a, 0xa36a, 0xa36a, 0xa36a, 0xa36a, 0x003f, 0x003f, 0xa352, 0xa352, 0xa352, 0xa352, 0xa352, 0xa352, 0x003f, 0x003f, 0xa36f, 0xa36f, 0xa36f, 0xa36f, 0xa36f, 0xa36f, 0xa36f, 0xa36f, 0x003f, 0xa357, 0x003f, 0xa357, 0x003f, 0xa357, 0x003f, 0xa357, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35c, 0xa35c, 0xa360, 0xa360, 0xa362, 0xa362, 0xa364, 0xa364, 0xa36a, 0xa36a, 0xa36f, 0xa36f, 0xa373, 0xa373, 0x003f, 0x003f, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa362, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa34a, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa373, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35b, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0xa35c, 0x003f, 0xa35c, 0xa35c, 0xa344, 0xa344, 0xa344, 0xa344, 0xa344, 0x003f, 0xa364, 0x003f, 0x003f, 0x0022, 0xa362, 0xa362, 0xa362, 0x003f, 0xa362, 0xa362, 0xa348, 0xa348, 0xa34a, 0xa34a, 0xa34a, 0x003f, 0x003f, 0x003f, 0xa364, 0xa364, 0xa364, 0xa364, 0x003f, 0x003f, 0xa364, 0xa364, 0xa34c, 0xa34c, 0xa34c, 0xa34c, 0x003f, 0x003f, 0x003f, 0x003f, 0xa36f, 0xa36f, 0xa36f, 0xa36f, 0xa36c, 0xa36c, 0xa36f, 0xa36f, 0xa357, 0xa357, 0xa357, 0xa357, 0xa354, 0x0022, 0x0022, 0x0060, 0x003f, 0x003f, 0xa373, 0xa373, 0xa373, 0x003f, 0xa373, 0xa373, 0xa352, 0xa352, 0xa35b, 0xa35b, 0xa35b, 0xa3bd, 0x003f, 0x003f, /* 0x2000 .. 0x20ff */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x002d, 0x003f, 0xa156, 0xa158, 0xa156, 0x003f, 0x005f, 0xa1a5, 0xa1a6, 0x002c, 0xa1a5, 0xa1a7, 0xa1a8, 0x002c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002e, 0xa14c, 0xa14b, 0xa145, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x003f, 0x003f, 0xa1ac, 0x0022, 0x003f, 0xa1ab, 0x003f, 0x003f, 0x003f, 0xa171, 0xa172, 0xa1b0, 0x0021, 0x003f, 0xa1c2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa241, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0020, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa258, 0x0069, 0x003f, 0x003f, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0x002d, 0x003d, 0x0028, 0x0029, 0x006e, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x002b, 0x002d, 0x003d, 0x0028, 0x0029, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0063, 0x003f, 0x003f, 0x004c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa3e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2100 .. 0x21ff */ 0x003f, 0x003f, 0x0043, 0xa24a, 0x003f, 0xa1c1, 0x003f, 0x0045, 0x003f, 0xa24b, 0x0067, 0x0048, 0x0048, 0x0048, 0x0068, 0x0068, 0x0049, 0x0049, 0x004c, 0x006c, 0x003f, 0x004e, 0x003f, 0x003f, 0x0050, 0x0050, 0x0051, 0x0052, 0x0052, 0x0052, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x005a, 0x003f, 0xa35b, 0x003f, 0x005a, 0x003f, 0x004b, 0x0041, 0x0042, 0x0043, 0x0065, 0x0065, 0x0045, 0x0046, 0x003f, 0x004d, 0x006f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0069, 0x003f, 0x003f, 0x003f, 0xa35e, 0xa346, 0xa353, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0044, 0x0064, 0x0065, 0x0069, 0x006a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2b9, 0xa2ba, 0xa2bb, 0xa2bc, 0xa2bd, 0xa2be, 0xa2bf, 0xa2c0, 0xa2c1, 0xa2c2, 0x003f, 0x003f, 0x004c, 0x0043, 0x0044, 0x004d, 0x0069, 0x003f, 0x003f, 0x003f, 0x0076, 0x003f, 0x003f, 0x003f, 0x003f, 0x0078, 0x003f, 0x003f, 0x006c, 0x0063, 0x0064, 0x006d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0x002d, 0x007c, 0xa1f8, 0xa1f9, 0xa1fb, 0xa1fa, 0xa1f6, 0xa1f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2200 .. 0x22ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x004f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002d, 0xa1d3, 0x003f, 0xa241, 0x005c, 0x002a, 0xa258, 0x003f, 0xa1d4, 0x003f, 0x003f, 0x003f, 0xa1db, 0xa1e8, 0xa1e7, 0x003f, 0x003f, 0xa1fd, 0xa1fd, 0xa1fc, 0xa1fc, 0x003f, 0x003f, 0xa1e4, 0xa1e5, 0xa1ec, 0x003f, 0x003f, 0xa1ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1ef, 0xa1ee, 0x003a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x007e, 0x007e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1dc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1da, 0xa1dd, 0xa1dd, 0xa1dd, 0x003f, 0x003f, 0xa1d8, 0xa1d9, 0x003f, 0x003f, 0xa16d, 0xa16e, 0x003f, 0x003f, 0x003c, 0x003e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f2, 0x003f, 0x003f, 0x003f, 0xa1f3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa150, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2300 .. 0x23ff */ 0x003f, 0x003f, 0x003f, 0x005e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa171, 0xa172, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2400 .. 0x24ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x0030, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2500 .. 0x25ff */ 0xa277, 0xa277, 0xa278, 0xa278, 0x002d, 0x002d, 0x003f, 0x003f, 0x002d, 0x002d, 0x003f, 0x003f, 0xa27a, 0xa27a, 0xa27a, 0xa27a, 0xa27b, 0xa27b, 0xa27b, 0xa27b, 0xa27c, 0xa27c, 0xa27c, 0xa27c, 0xa27d, 0xa27d, 0xa27d, 0xa27d, 0xa275, 0xa275, 0xa275, 0xa275, 0xa275, 0xa275, 0xa275, 0xa275, 0xa274, 0xa274, 0xa274, 0xa274, 0xa274, 0xa274, 0xa274, 0xa274, 0xa273, 0xa273, 0xa273, 0xa273, 0xa273, 0xa273, 0xa273, 0xa273, 0xa272, 0xa272, 0xa272, 0xa272, 0xa272, 0xa272, 0xa272, 0xa272, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0xa271, 0x002d, 0x002d, 0x003f, 0x003f, 0xa2a4, 0xf9f8, 0xf9e6, 0xf9ef, 0xf9dd, 0xf9e8, 0xf9f1, 0xf9df, 0xf9ec, 0xf9f5, 0xf9e3, 0xf9ee, 0xf9f7, 0xf9e5, 0xa2a5, 0xf9f2, 0xf9e0, 0xa2a7, 0xf9f4, 0xf9e2, 0xf9e7, 0xf9f0, 0xf9de, 0xf9ed, 0xf9f6, 0xf9e4, 0xa2a6, 0xf9f3, 0xf9e1, 0xa27e, 0xa2a1, 0xa2a3, 0xa2a2, 0xa2ac, 0xa2ad, 0xa2ae, 0xa15a, 0x007c, 0xa15a, 0x007c, 0xa15a, 0x007c, 0xa15a, 0x007c, 0xa15a, 0x007c, 0xa15a, 0x007c, 0x003f, 0xa262, 0xa263, 0xa264, 0xa265, 0xa266, 0xa267, 0xa268, 0xa269, 0xa270, 0xa26f, 0xa26e, 0xa26d, 0xa26c, 0xa26b, 0xa26a, 0x003f, 0x003f, 0x003f, 0xf9fe, 0xa276, 0xa279, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1bd, 0xa1bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b6, 0xa1b5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1bf, 0xa1be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1bb, 0xa1ba, 0x003f, 0x003f, 0x003f, 0xa1b3, 0x003f, 0x003f, 0xa1b7, 0xa1b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa2a8, 0xa2a9, 0xa2ab, 0xa2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2600 .. 0x26ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1b9, 0xa1b8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1f0, 0x003f, 0xa1f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2e00 .. 0x2eff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5c0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x2f00 .. 0x2fff */ 0xa440, 0x003f, 0x003f, 0x003f, 0xa441, 0x003f, 0xa447, 0x003f, 0xa448, 0xa449, 0xa44a, 0xa44b, 0x003f, 0x003f, 0x003f, 0xa44c, 0xc942, 0xa44d, 0xa44f, 0x003f, 0xa450, 0xc943, 0x003f, 0xa2cc, 0xa452, 0x003f, 0xc944, 0x003f, 0xa453, 0xa466, 0xc949, 0xa467, 0xa468, 0x003f, 0x003f, 0xa469, 0xa46a, 0xa46b, 0xa46c, 0x003f, 0xa46f, 0xa470, 0xa471, 0xa472, 0xc94b, 0xa473, 0x003f, 0xa475, 0xa476, 0xa479, 0xa47a, 0x003f, 0x003f, 0x003f, 0xa47b, 0xa47c, 0xa47d, 0x003f, 0x003f, 0xc94c, 0xa4df, 0xa4e0, 0xa4e1, 0xa4e2, 0xa4e4, 0x003f, 0xa4e5, 0xa4e6, 0xa4e7, 0xa4e8, 0x003f, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ed, 0xa4ee, 0xa4ef, 0xc95f, 0xa4f0, 0xa4f1, 0xa4f2, 0xa4f3, 0xc961, 0xa4f4, 0xa4f5, 0xa4f6, 0xa4f7, 0xa4f8, 0xc962, 0xa4f9, 0xa4fa, 0xa4fb, 0xa4fc, 0xa5c8, 0xa5c9, 0xa5ca, 0xa5cb, 0xa5cc, 0xa5cd, 0xa5ce, 0xa5d0, 0xa5d4, 0x003f, 0x003f, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5d8, 0xa5d9, 0xa5da, 0xa5db, 0xa5dc, 0xc9a8, 0xa5dd, 0xa5de, 0xa5df, 0xa6cb, 0xa6cc, 0xa6cd, 0xa6ce, 0xca49, 0xa6cf, 0xa6d0, 0xa6d1, 0xa6d3, 0xa6d4, 0xa6d5, 0xa6d6, 0xa6d7, 0xa6da, 0xa6db, 0xa6dc, 0xa6dd, 0xa6de, 0xa6df, 0xa6e0, 0xa6e1, 0xa6e2, 0xca4a, 0xca4f, 0xa6e4, 0xa6e5, 0xa6e6, 0xa6e7, 0xca50, 0xa8a3, 0xa8a4, 0xa8a5, 0xa8a6, 0xa8a7, 0xa8a8, 0xcba4, 0xa8a9, 0xa8aa, 0xa8ab, 0xa8ac, 0xa8ad, 0xa8ae, 0xa8af, 0xa8b0, 0x003f, 0xa8b6, 0xa8bb, 0xa8bc, 0xa8bd, 0xaaf7, 0xaaf8, 0xaaf9, 0xaafa, 0x003f, 0xab41, 0xab42, 0x003f, 0xab44, 0xadb1, 0xadb2, 0xadb3, 0xadb4, 0xadb5, 0xadb6, 0xadb7, 0xadb8, 0xadb9, 0xadba, 0xadbb, 0xb0a8, 0xb0a9, 0xb0aa, 0xd449, 0xb0ab, 0xd44a, 0xb0ac, 0xb0ad, 0xb3bd, 0xb3be, 0xb3bf, 0xb3c0, 0xb3c1, 0xb3c2, 0xb6c0, 0xb6c1, 0xb6c2, 0xdcb0, 0xe0ef, 0xb9a9, 0xb9aa, 0xb9ab, 0xbbf3, 0xbbf4, 0xbea6, 0xc073, 0xc074, 0xefb6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3000 .. 0x30ff */ 0xa140, 0xa142, 0xa143, 0xa1b2, 0x003f, 0x003f, 0x003f, 0x003f, 0xa171, 0xa172, 0xa16d, 0xa16e, 0xa175, 0xa176, 0xa179, 0xa17a, 0xa169, 0xa16a, 0xa245, 0x003f, 0xa165, 0xa166, 0x003f, 0x003f, 0x003f, 0x003f, 0x005b, 0x005d, 0x003f, 0xa1a9, 0xa1aa, 0x002c, 0x003f, 0xa2c3, 0xa2c4, 0xa2c5, 0xa2c6, 0xa2c7, 0xa2c8, 0xa2c9, 0xa2ca, 0xa2cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa245, 0x003f, 0xa2cc, 0xa2cd, 0xa2ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3100 .. 0x31ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa374, 0xa375, 0xa376, 0xa377, 0xa378, 0xa379, 0xa37a, 0xa37b, 0xa37c, 0xa37d, 0xa37e, 0xa3a1, 0xa3a2, 0xa3a3, 0xa3a4, 0xa3a5, 0xa3a6, 0xa3a7, 0xa3a8, 0xa3a9, 0xa3aa, 0xa3ab, 0xa3ac, 0xa3ad, 0xa3ae, 0xa3af, 0xa3b0, 0xa3b1, 0xa3b2, 0xa3b3, 0xa3b4, 0xa3b5, 0xa3b6, 0xa3b7, 0xa3b8, 0xa3b9, 0xa3ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa440, 0xa447, 0xa454, 0xa57c, 0xa457, 0xa4a4, 0xa455, 0xa5d2, 0xa441, 0xa4fe, 0xa442, 0xa4d1, 0xa661, 0xa448, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3200 .. 0x32ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa440, 0xa447, 0xa454, 0xa57c, 0xa4ad, 0xa4bb, 0xa443, 0xa44b, 0xa445, 0xa2cc, 0xa4eb, 0xa4f5, 0xa4f4, 0xa4ec, 0xaaf7, 0xa467, 0xa4e9, 0xaee8, 0xa6b3, 0xaac0, 0xa657, 0xaf53, 0xb05d, 0xafac, 0x003f, 0xafb5, 0xa86b, 0xa46b, 0xbe41, 0xc075, 0xa64c, 0xaa60, 0xb6b5, 0xa5f0, 0x003f, 0xa1c0, 0xa457, 0xa4a4, 0xa455, 0xa5aa, 0xa56b, 0x003f, 0xa976, 0x003f, 0xbaca, 0xa5f8, 0xb8ea, 0xa8f3, 0xa95d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x3300 .. 0x33ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa255, 0xa256, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa250, 0xa251, 0xa252, 0x003f, 0x003f, 0xa254, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa257, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa253, 0x003f, 0x003f, 0xa1eb, 0xa1ea, 0x003f, 0x003f, 0xa24f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x4e00 .. 0x4eff */ 0xa440, 0xa442, 0x003f, 0xa443, 0x003f, 0x003f, 0x003f, 0xc945, 0xa456, 0xa454, 0xa457, 0xa455, 0xc946, 0xa4a3, 0xc94f, 0xc94d, 0xa4a2, 0xa4a1, 0x003f, 0x003f, 0xa542, 0xa541, 0xa540, 0x003f, 0xa543, 0xa4fe, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5e0, 0xa5e1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8c3, 0x003f, 0x003f, 0x003f, 0x003f, 0xa458, 0x003f, 0xa4a4, 0xc950, 0x003f, 0xa4a5, 0xc963, 0xa6ea, 0xcbb1, 0x003f, 0x003f, 0x003f, 0x003f, 0xa459, 0xa4a6, 0x003f, 0xa544, 0xc964, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc940, 0xa444, 0x003f, 0xa45b, 0x003f, 0xc947, 0xa45c, 0x003f, 0x003f, 0xa4a7, 0x003f, 0xa545, 0xa547, 0xa546, 0x003f, 0x003f, 0xa5e2, 0xa5e3, 0x003f, 0x003f, 0xa8c4, 0x003f, 0xadbc, 0xa441, 0x003f, 0x003f, 0xc941, 0xa445, 0xa45e, 0xa45d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5e4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8c5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0ae, 0xd44b, 0x003f, 0x003f, 0xb6c3, 0xdcb1, 0xdcb2, 0x003f, 0xa446, 0x003f, 0xa4a9, 0x003f, 0x003f, 0xa8c6, 0xa447, 0xc948, 0xa45f, 0x003f, 0x003f, 0xa4aa, 0xa4ac, 0xc951, 0xa4ad, 0xa4ab, 0x003f, 0x003f, 0x003f, 0xa5e5, 0x003f, 0xa8c7, 0x003f, 0x003f, 0xa8c8, 0xab45, 0x003f, 0xa460, 0xa4ae, 0x003f, 0xa5e6, 0xa5e8, 0xa5e7, 0x003f, 0xa6eb, 0x003f, 0x003f, 0xa8c9, 0xa8ca, 0xab46, 0xab47, 0x003f, 0x003f, 0x003f, 0x003f, 0xadbd, 0x003f, 0x003f, 0xdcb3, 0x003f, 0x003f, 0xf6d6, 0xa448, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa4b0, 0xa4af, 0xc952, 0xa4b1, 0xa4b7, 0x003f, 0xa4b2, 0xa4b3, 0xc954, 0xc953, 0xa4b5, 0xa4b6, 0x003f, 0xa4b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa54a, 0xa54b, 0xa54c, 0xa54d, 0xa549, 0xa550, 0xc96a, 0x003f, 0xc966, 0xc969, 0xa551, 0xa561, 0x003f, 0xc968, 0x003f, 0xa54e, 0xa54f, 0xa548, 0x003f, 0x003f, 0xc965, 0xc967, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa5f5, 0xc9b0, 0xa5f2, 0xa5f6, 0xc9ba, 0xc9ae, 0xa5f3, 0xc9b2, 0x003f, 0x003f, 0x003f, 0xa5f4, 0x003f, 0xa5f7, 0x003f, 0xa5e9, /* 0x4f00 .. 0x4fff */ 0xc9b1, 0xa5f8, 0xc9b5, 0x003f, 0xc9b9, 0xc9b6, 0x003f, 0x003f, 0xc9b3, 0xa5ea, 0xa5ec, 0xa5f9, 0x003f, 0xa5ee, 0xc9ab, 0xa5f1, 0xa5ef, 0xa5f0, 0xc9bb, 0xc9b8, 0xc9af, 0xa5ed, 0x003f, 0x003f, 0xc9ac, 0xa5eb, 0x003f, 0x003f, 0x003f, 0xc9b4, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9b7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9ad, 0xca66, 0x003f, 0xa742, 0xa6f4, 0x003f, 0x003f, 0xca67, 0xa6f1, 0x003f, 0xa744, 0x003f, 0xa6f9, 0x003f, 0xa6f8, 0xca5b, 0xa6fc, 0xa6f7, 0xca60, 0xca68, 0x003f, 0xca64, 0x003f, 0xa6fa, 0x003f, 0x003f, 0xa6fd, 0xa6ee, 0xa747, 0xca5d, 0x003f, 0x003f, 0xcbbd, 0xa6ec, 0xa743, 0xa6ed, 0xa6f5, 0xa6f6, 0xca62, 0xca5e, 0xa6fb, 0xa6f3, 0xca5a, 0xa6ef, 0xca65, 0xa745, 0xa748, 0xa6f2, 0xa740, 0xa746, 0xa6f0, 0xca63, 0xa741, 0xca69, 0xca5c, 0xa6fe, 0xca5f, 0x003f, 0x003f, 0xca61, 0x003f, 0xa8d8, 0xcbbf, 0xcbcb, 0xa8d0, 0x003f, 0xcbcc, 0xa8cb, 0xa8d5, 0x003f, 0x003f, 0xa8ce, 0xcbb9, 0xa8d6, 0xcbb8, 0xcbbc, 0xcbc3, 0xcbc1, 0xa8de, 0xa8d9, 0xcbb3, 0xcbb5, 0xa8db, 0xa8cf, 0xcbb6, 0xcbc2, 0xcbc9, 0xa8d4, 0xcbbb, 0xcbb4, 0xa8d3, 0xcbb7, 0xa8d7, 0xcbba, 0x003f, 0xa8d2, 0x003f, 0xa8cd, 0x003f, 0xa8dc, 0xcbc4, 0xa8dd, 0xcbc8, 0x003f, 0xcbc6, 0xcbca, 0xa8da, 0xcbbe, 0xcbb2, 0x003f, 0xcbc0, 0xa8d1, 0xcbc5, 0xa8cc, 0xcbc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xab56, 0xab4a, 0x003f, 0x003f, 0xcde0, 0xcde8, 0x003f, 0xab49, 0xab51, 0xab5d, 0x003f, 0xcdee, 0xcdec, 0xcde7, 0x003f, 0x003f, 0x003f, 0xab4b, 0xcded, 0xcde3, 0xab59, 0xab50, 0xab58, 0xcdde, 0x003f, 0xcdea, 0x003f, 0xcde1, 0xab54, 0xcde2, 0x003f, 0xcddd, 0xab5b, 0xab4e, 0xab57, 0xab4d, 0x003f, 0xcddf, 0xcde4, 0x003f, 0xcdeb, 0xab55, 0xab52, 0xcde6, 0xab5a, 0xcde9, 0xcde5, 0xab4f, 0xab5c, 0xab53, 0xab4c, 0xab48, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdef, 0x003f, 0xadd7, 0xadc1, 0x003f, 0xadd1, 0x003f, 0xadd6, 0xd0d0, 0xd0cf, 0xd0d4, 0xd0d5, 0xadc4, 0x003f, 0xadcd, 0x003f, 0x003f, 0x003f, 0xadda, 0x003f, /* 0x5000 .. 0x50ff */ 0xadce, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c9, 0xadc7, 0xd0ca, 0x003f, 0xaddc, 0x003f, 0xadd3, 0xadbe, 0xadbf, 0xd0dd, 0xb0bf, 0x003f, 0xadcc, 0xadcb, 0xd0cb, 0xadcf, 0xd45b, 0xadc6, 0xd0d6, 0xadd5, 0xadd4, 0xadca, 0xd0ce, 0xd0d7, 0x003f, 0xd0c8, 0xadc9, 0xd0d8, 0xadd2, 0xd0cc, 0xadc0, 0x003f, 0xadc3, 0xadc2, 0xd0d9, 0xadd0, 0xadc5, 0xadd9, 0xaddb, 0xd0d3, 0xadd8, 0x003f, 0xd0db, 0xd0cd, 0xd0dc, 0x003f, 0xd0d1, 0x003f, 0xd0da, 0x003f, 0xd0d2, 0x003f, 0x003f, 0x003f, 0x003f, 0xadc8, 0x003f, 0x003f, 0x003f, 0xd463, 0xd457, 0x003f, 0xb0b3, 0x003f, 0xd45c, 0xd462, 0xb0b2, 0xd455, 0xb0b6, 0xd459, 0xd452, 0xb0b4, 0xd456, 0xb0b9, 0xb0be, 0x003f, 0xd467, 0x003f, 0xd451, 0x003f, 0xb0ba, 0x003f, 0xd466, 0x003f, 0x003f, 0xb0b5, 0xd458, 0xb0b1, 0xd453, 0xd44f, 0xd45d, 0xd450, 0xd44e, 0xd45a, 0xd460, 0xd461, 0xb0b7, 0x003f, 0x003f, 0xd85b, 0xd45e, 0xd44d, 0xd45f, 0x003f, 0xb0c1, 0xd464, 0xb0c0, 0xd44c, 0x003f, 0xd454, 0xd465, 0xb0bc, 0xb0bb, 0xb0b8, 0xb0bd, 0x003f, 0x003f, 0xb0af, 0x003f, 0x003f, 0xb0b0, 0x003f, 0x003f, 0xb3c8, 0x003f, 0xd85e, 0xd857, 0x003f, 0xb3c5, 0x003f, 0xd85f, 0x003f, 0x003f, 0x003f, 0xd855, 0xd858, 0xb3c4, 0xd859, 0x003f, 0x003f, 0xb3c7, 0xd85d, 0x003f, 0xd853, 0xd852, 0xb3c9, 0x003f, 0xb3ca, 0xb3c6, 0xb3cb, 0xd851, 0xd85c, 0xd85a, 0xd854, 0x003f, 0x003f, 0x003f, 0xb3c3, 0xd856, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6ca, 0xb6c4, 0xdcb7, 0xb6cd, 0xdcbd, 0xdcc0, 0xb6c6, 0xb6c7, 0xdcba, 0xb6c5, 0xdcc3, 0xb6cb, 0xdcc4, 0x003f, 0xdcbf, 0xb6cc, 0x003f, 0xdcb4, 0xb6c9, 0xdcb5, 0x003f, 0xdcbe, 0xdcbc, 0x003f, 0xdcb8, 0xb6c8, 0xdcb6, 0xb6ce, 0xdcbb, 0xdcc2, 0xdcb9, 0xdcc1, 0x003f, 0x003f, 0xb9b6, 0xb9b3, 0x003f, 0xb9b4, 0x003f, 0xe0f9, 0xe0f1, 0xb9b2, 0xb9af, 0xe0f2, 0x003f, 0x003f, 0xb9b1, 0xe0f5, 0x003f, 0xe0f7, 0x003f, 0x003f, 0xe0fe, 0x003f, 0x003f, 0xe0fd, 0xe0f8, 0xb9ae, 0xe0f0, 0xb9ac, 0xe0f3, 0xb9b7, 0xe0f6, 0x003f, 0xe0fa, 0xb9b0, 0xb9ad, 0xe0fc, 0xe0fb, 0xb9b5, 0x003f, 0xe0f4, 0x003f, 0xbbf8, 0xe4ec, 0x003f, 0xe4e9, 0xbbf9, 0x003f, 0xbbf7, 0x003f, 0xe4f0, 0xe4ed, 0xe4e6, /* 0x5100 .. 0x51ff */ 0xbbf6, 0x003f, 0xbbfa, 0xe4e7, 0xbbf5, 0xbbfd, 0xe4ea, 0xe4eb, 0xbbfb, 0xbbfc, 0xe4f1, 0xe4ee, 0xe4ef, 0x003f, 0x003f, 0x003f, 0xbeaa, 0xe8f8, 0xbea7, 0xe8f5, 0xbea9, 0xbeab, 0x003f, 0xe8f6, 0xbea8, 0x003f, 0xe8f7, 0x003f, 0xe8f4, 0x003f, 0x003f, 0xc076, 0xecbd, 0xc077, 0xecbb, 0x003f, 0xecbc, 0xecba, 0xecb9, 0x003f, 0x003f, 0xecbe, 0xc075, 0x003f, 0x003f, 0xefb8, 0xefb9, 0x003f, 0xe4e8, 0xefb7, 0xc078, 0xc35f, 0xf1eb, 0xf1ec, 0x003f, 0xc4d7, 0xc4d8, 0xf5c1, 0xf5c0, 0xc56c, 0xc56b, 0xf7d0, 0x003f, 0xa449, 0xa461, 0xa4b9, 0x003f, 0xa4b8, 0xa553, 0xa552, 0xa5fc, 0xa5fb, 0xa5fd, 0xa5fa, 0x003f, 0xa74a, 0xa749, 0xa74b, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8e0, 0x003f, 0xa8df, 0xa8e1, 0x003f, 0xab5e, 0x003f, 0xa259, 0xd0de, 0xa25a, 0xb0c2, 0xa25c, 0xa25b, 0xd860, 0x003f, 0xa25d, 0xb9b8, 0xa25e, 0x003f, 0xa44a, 0x003f, 0xa4ba, 0xa5fe, 0xa8e2, 0x003f, 0xa44b, 0xa4bd, 0xa4bb, 0xa4bc, 0x003f, 0x003f, 0xa640, 0x003f, 0x003f, 0x003f, 0xa74c, 0xa8e4, 0xa8e3, 0xa8e5, 0x003f, 0x003f, 0x003f, 0xaddd, 0x003f, 0x003f, 0x003f, 0xbeac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc94e, 0x003f, 0xa554, 0xa555, 0x003f, 0x003f, 0xa641, 0x003f, 0xca6a, 0x003f, 0xab60, 0xab5f, 0xd0e0, 0xd0df, 0xb0c3, 0x003f, 0xa4be, 0xc955, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbcd, 0x003f, 0xab61, 0x003f, 0xade0, 0x003f, 0xadde, 0xaddf, 0x003f, 0x003f, 0x003f, 0x003f, 0xbead, 0x003f, 0xa556, 0x003f, 0x003f, 0x003f, 0xa642, 0xc9bc, 0x003f, 0x003f, 0x003f, 0x003f, 0xa74d, 0xa74e, 0x003f, 0xca6b, 0x003f, 0x003f, 0xcbce, 0xa8e6, 0xcbcf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0e2, 0xd0e3, 0xade3, 0x003f, 0xd0e4, 0x003f, 0xd0e1, 0xade4, 0xade2, 0xade1, 0xd0e5, 0x003f, 0xd468, 0x003f, 0x003f, 0x003f, 0xd861, 0x003f, 0x003f, 0xdcc5, 0xe140, 0x003f, 0x003f, 0x003f, 0xbbfe, 0xbeae, 0xe8f9, 0x003f, 0xa44c, 0xa45a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0c4, 0xb3cd, 0x003f, 0xb9b9, 0x003f, 0xc942, 0xa4bf, 0x003f, 0xa559, 0xa557, 0xa558, 0x003f, 0x003f, 0xa8e7, 0x003f, 0x003f, /* 0x5200 .. 0x52ff */ 0xa44d, 0xa44e, 0x003f, 0xa462, 0x003f, 0x003f, 0xa4c0, 0xa4c1, 0xa4c2, 0xc9be, 0xa55a, 0x003f, 0xc96b, 0x003f, 0xa646, 0x003f, 0xc9bf, 0xa644, 0xa645, 0xc9bd, 0x003f, 0x003f, 0xa647, 0xa643, 0x003f, 0x003f, 0x003f, 0x003f, 0xca6c, 0xaaec, 0xca6d, 0x003f, 0x003f, 0xca6e, 0x003f, 0x003f, 0xa750, 0xa74f, 0x003f, 0x003f, 0xa753, 0xa751, 0xa752, 0x003f, 0x003f, 0x003f, 0xa8ed, 0x003f, 0xa8ec, 0xcbd4, 0xcbd1, 0xcbd2, 0x003f, 0xcbd0, 0xa8ee, 0xa8ea, 0xa8e9, 0x003f, 0xa8eb, 0xa8e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8ef, 0x003f, 0xab63, 0xcdf0, 0x003f, 0xcbd3, 0xab68, 0x003f, 0xcdf1, 0xab64, 0xab67, 0xab66, 0xab65, 0xab62, 0x003f, 0x003f, 0x003f, 0xd0e8, 0x003f, 0xade7, 0xd0eb, 0xade5, 0x003f, 0x003f, 0x003f, 0xd0e7, 0xade8, 0xade6, 0xade9, 0xd0e9, 0xd0ea, 0x003f, 0xd0e6, 0xd0ec, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3d1, 0xb0c5, 0xd469, 0xd46b, 0xd46a, 0xd46c, 0xb0c6, 0x003f, 0x003f, 0xb3ce, 0x003f, 0xb3cf, 0xb3d0, 0x003f, 0xb6d0, 0xdcc7, 0x003f, 0xdcc6, 0xdcc8, 0xdcc9, 0xb6d1, 0x003f, 0xb6cf, 0xe141, 0xe142, 0xb9bb, 0xb9ba, 0xe35a, 0x003f, 0x003f, 0xbc40, 0xbc41, 0xbc42, 0xbc44, 0xe4f2, 0xe4f3, 0xbc43, 0x003f, 0x003f, 0x003f, 0xbeaf, 0x003f, 0xbeb0, 0x003f, 0x003f, 0xf1ed, 0xf5c3, 0xf5c2, 0xf7d1, 0x003f, 0xa44f, 0x003f, 0x003f, 0x003f, 0xa55c, 0xa55b, 0x003f, 0x003f, 0xa648, 0x003f, 0x003f, 0xc9c0, 0x003f, 0x003f, 0xa755, 0xa756, 0xa754, 0xa757, 0xca6f, 0xca70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8f1, 0xcbd5, 0x003f, 0xa8f0, 0x003f, 0xcdf2, 0xab6c, 0xcdf3, 0xab6b, 0x003f, 0x003f, 0x003f, 0xab69, 0x003f, 0xab6a, 0x003f, 0x003f, 0x003f, 0xd0ed, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0c7, 0xd46e, 0x003f, 0xb0ca, 0xd46d, 0xb1e5, 0xb0c9, 0xb0c8, 0x003f, 0xb3d4, 0x003f, 0xb3d3, 0xb3d2, 0xb6d2, 0x003f, 0x003f, 0xb6d5, 0xb6d6, 0xb6d4, 0x003f, 0xb6d3, 0x003f, 0x003f, 0xe143, 0x003f, 0xe144, 0x003f, 0x003f, 0x003f, 0xe4f5, 0xbc45, 0xe4f4, 0x003f, 0xbeb1, 0xecbf, 0xc079, 0x003f, 0xf1ee, 0xc455, 0x003f, 0xa463, 0xa4c3, 0xc956, 0x003f, 0xa4c4, 0xa4c5, /* 0x5300 .. 0x53ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa55d, 0xa55e, 0x003f, 0xa649, 0xca71, 0xcbd6, 0xcbd7, 0x003f, 0xab6d, 0xd0ee, 0xb0cc, 0xb0cb, 0xd863, 0xd862, 0x003f, 0x003f, 0xa450, 0xa4c6, 0xa55f, 0x003f, 0xb0cd, 0xc943, 0x003f, 0xc96c, 0xa560, 0x003f, 0xc9c2, 0xa64b, 0xa64a, 0xc9c1, 0xa758, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadea, 0x003f, 0x003f, 0xd46f, 0x003f, 0xb6d7, 0xe145, 0xb9bc, 0x003f, 0x003f, 0xe8fa, 0x003f, 0x003f, 0xf3fd, 0x003f, 0xa4c7, 0x003f, 0x003f, 0xcbd8, 0xcdf4, 0xb0d0, 0xb0ce, 0xb0cf, 0xa2cc, 0x003f, 0xa464, 0xa2cd, 0xa2ce, 0x003f, 0xa4c9, 0xa4c8, 0xa563, 0xa562, 0x003f, 0xc96d, 0xc9c3, 0x003f, 0x003f, 0x003f, 0xa8f5, 0xa8f2, 0xa8f4, 0xa8f3, 0x003f, 0x003f, 0xab6e, 0x003f, 0x003f, 0xb3d5, 0x003f, 0xa452, 0x003f, 0xa4cb, 0x003f, 0xa565, 0xa564, 0x003f, 0xca72, 0x003f, 0x003f, 0xa8f6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc957, 0x003f, 0xa567, 0xa566, 0xa64c, 0xa64d, 0xca73, 0xa759, 0x003f, 0xa75a, 0x003f, 0xa8f7, 0xa8f8, 0xa8f9, 0x003f, 0xab6f, 0xcdf5, 0x003f, 0x003f, 0xadeb, 0x003f, 0x003f, 0xc944, 0x003f, 0xa4cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc9c4, 0x003f, 0x003f, 0x003f, 0xca74, 0xca75, 0x003f, 0x003f, 0xcbd9, 0x003f, 0xcbda, 0x003f, 0xcdf7, 0xcdf6, 0xcdf9, 0xcdf8, 0xab70, 0x003f, 0xd470, 0xaded, 0xd0ef, 0xadec, 0x003f, 0x003f, 0x003f, 0x003f, 0xd864, 0xb3d6, 0x003f, 0xd865, 0x003f, 0x003f, 0x003f, 0x003f, 0xe146, 0xb9bd, 0x003f, 0x003f, 0x003f, 0x003f, 0xbc46, 0x003f, 0xf1ef, 0x003f, 0x003f, 0x003f, 0x003f, 0xc958, 0x003f, 0xa568, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0d1, 0x003f, 0x003f, 0x003f, 0x003f, 0xa453, 0xa465, 0xa4ce, 0xa4cd, 0x003f, 0xa4cf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8fb, 0x003f, 0xa8fa, 0xa8fc, 0x003f, 0x003f, 0x003f, 0xab71, 0x003f, 0x003f, 0x003f, 0xadee, 0x003f, 0xe8fb, 0xc24f, 0xa466, 0xa56a, 0xa579, 0xa574, 0x003f, 0xa56f, 0xa56e, 0xa575, 0xa573, 0xa56c, 0xa57a, 0xa56d, 0xa569, 0xa578, 0xa577, 0xa576, 0xa56b, 0x003f, 0xa572, 0x003f, 0x003f, 0xa571, 0x003f, 0x003f, 0xa57b, 0xa570, 0x003f, 0x003f, 0x003f, /* 0x5400 .. 0x54ff */ 0x003f, 0xa653, 0x003f, 0xa659, 0xa655, 0x003f, 0xa65b, 0xc9c5, 0xa658, 0xa64e, 0xa651, 0xa654, 0xa650, 0xa657, 0xa65a, 0xa64f, 0xa652, 0xa656, 0xa65c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xca7e, 0xca7b, 0x003f, 0xa767, 0xca7c, 0xa75b, 0xa75d, 0xa775, 0xa770, 0x003f, 0x003f, 0x003f, 0xcaa5, 0xca7d, 0xa75f, 0xa761, 0xcaa4, 0xa768, 0xca78, 0xa774, 0xa776, 0xa75c, 0xa76d, 0x003f, 0xca76, 0xa773, 0x003f, 0xa764, 0x003f, 0xa76e, 0xa76f, 0xca77, 0xa76c, 0xa76a, 0x003f, 0xa76b, 0xa771, 0xcaa1, 0xa75e, 0x003f, 0xa772, 0xcaa3, 0xa766, 0xa763, 0x003f, 0xca7a, 0xa762, 0xcaa6, 0xa765, 0x003f, 0xa769, 0x003f, 0x003f, 0x003f, 0xa760, 0xcaa2, 0x003f, 0x003f, 0x003f, 0x003f, 0xca79, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbeb, 0xcbea, 0xa94f, 0xcbed, 0xcbef, 0xcbe4, 0xcbe7, 0xcbee, 0xa950, 0x003f, 0x003f, 0xcbe1, 0xcbe5, 0x003f, 0x003f, 0xcbe9, 0xce49, 0xa94b, 0xce4d, 0xa8fd, 0xcbe6, 0xa8fe, 0xa94c, 0xa945, 0xa941, 0x003f, 0xcbe2, 0xa944, 0xa949, 0xa952, 0xcbe3, 0xcbdc, 0xa943, 0xcbdd, 0xcbdf, 0x003f, 0xa946, 0x003f, 0xa948, 0xcbdb, 0xcbe0, 0x003f, 0x003f, 0xa951, 0xa94d, 0xcbe8, 0xa953, 0x003f, 0xa94a, 0xcbde, 0xa947, 0x003f, 0x003f, 0xa942, 0xa940, 0x003f, 0xcbec, 0x003f, 0xa94e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce48, 0xcdfb, 0xce4b, 0x003f, 0x003f, 0xcdfd, 0xab78, 0xaba8, 0xab74, 0xaba7, 0xab7d, 0xaba4, 0xab72, 0xcdfc, 0xce43, 0xaba3, 0xce4f, 0xaba5, 0x003f, 0xab79, 0x003f, 0x003f, 0xce45, 0xce42, 0xab77, 0x003f, 0xcdfa, 0xaba6, 0xce4a, 0xab7c, 0xce4c, 0xaba9, 0xab73, 0xab7e, 0xab7b, 0xce40, 0xaba1, 0xce46, 0xce47, 0xab7a, 0xaba2, 0xab76, 0x003f, 0x003f, 0x003f, 0x003f, 0xab75, 0xcdfe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce4e, 0x003f, 0xd144, 0xadfb, 0xd0f1, 0x003f, 0xd0f6, 0xadf4, 0xae40, 0xd0f4, 0xadef, 0xadf9, 0xadfe, 0xd0fb, 0x003f, 0xadfa, 0xadfd, 0x003f, 0x003f, 0xd0fe, 0xadf5, 0xd0f5, 0x003f, 0x003f, 0x003f, 0xd142, 0xd143, 0x003f, 0xadf7, 0xd141, 0xadf3, 0xae43, 0x003f, 0xd0f8, /* 0x5500 .. 0x55ff */ 0x003f, 0xadf1, 0x003f, 0xd146, 0xd0f9, 0xd0fd, 0xadf6, 0xae42, 0xd0fa, 0xadfc, 0xd140, 0xd147, 0xd4a1, 0x003f, 0xd145, 0xae44, 0xadf0, 0xd0fc, 0xd0f3, 0x003f, 0xadf8, 0x003f, 0x003f, 0xd0f2, 0x003f, 0x003f, 0xd0f7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0f0, 0xae41, 0x003f, 0x003f, 0xd477, 0x003f, 0xb0e4, 0xd4a7, 0xb0e2, 0xb0df, 0xd47c, 0xb0db, 0xd4a2, 0xb0e6, 0xd476, 0xd47b, 0xd47a, 0xadf2, 0xb0e1, 0xd4a5, 0x003f, 0xd4a8, 0xd473, 0x003f, 0xb3e8, 0x003f, 0xd4a9, 0xb0e7, 0x003f, 0xb0d9, 0xb0d6, 0xd47e, 0xb0d3, 0x003f, 0xd4a6, 0x003f, 0xb0da, 0xd4aa, 0x003f, 0xd474, 0xd4a4, 0xb0dd, 0xd475, 0xd478, 0xd47d, 0x003f, 0x003f, 0xb0de, 0xb0dc, 0xb0e8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0e3, 0x003f, 0xb0d7, 0xb1d2, 0x003f, 0xb0d8, 0xd479, 0xb0e5, 0xb0e0, 0xd4a3, 0xb0d5, 0x003f, 0x003f, 0x003f, 0xb0d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd471, 0xd472, 0xd86a, 0x003f, 0x003f, 0x003f, 0xb3d7, 0xb3da, 0xd875, 0xb3ee, 0xd878, 0xb3d8, 0xd871, 0xb3de, 0xb3e4, 0xb5bd, 0x003f, 0x003f, 0xb3e2, 0xd86e, 0xb3ef, 0xb3db, 0xb3e3, 0xd876, 0xdcd7, 0xd87b, 0xd86f, 0x003f, 0xd866, 0xd873, 0xd86d, 0xb3e1, 0xd879, 0x003f, 0x003f, 0xb3dd, 0xb3f1, 0xb3ea, 0x003f, 0xb3df, 0xb3dc, 0x003f, 0xb3e7, 0x003f, 0xd87a, 0xd86c, 0xd872, 0xd874, 0xd868, 0xd877, 0xb3d9, 0xd867, 0x003f, 0xb3e0, 0xb3f0, 0xb3ec, 0xd869, 0xb3e6, 0x003f, 0x003f, 0xb3ed, 0xb3e9, 0xb3e5, 0x003f, 0xd870, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3eb, 0x003f, 0x003f, 0x003f, 0xdcd5, 0xdcd1, 0x003f, 0xdce0, 0xdcca, 0xdcd3, 0xb6e5, 0xb6e6, 0xb6de, 0xdcdc, 0xb6e8, 0xdccf, 0xdcce, 0xdccc, 0xdcde, 0xb6dc, 0xdcd8, 0xdccd, 0xb6df, 0xdcd6, 0xb6da, 0xdcd2, 0xdcd9, 0xdcdb, 0x003f, 0x003f, 0xdcdf, 0xb6e3, 0xdccb, 0xb6dd, 0xdcd0, 0x003f, 0xb6d8, 0x003f, 0xb6e4, 0xdcda, 0xb6e0, 0xb6e1, 0xb6e7, 0xb6db, 0xa25f, 0xb6d9, 0xdcd4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e2, 0x003f, 0x003f, 0xdcdd, 0x003f, 0x003f, 0x003f, 0xb9cd, 0xb9c8, 0x003f, 0xe155, 0xe151, 0x003f, 0xe14b, 0xb9c2, 0xb9be, 0xe154, /* 0x5600 .. 0x56ff */ 0xb9bf, 0xe14e, 0xe150, 0x003f, 0xe153, 0x003f, 0xb9c4, 0x003f, 0xb9cb, 0xb9c5, 0x003f, 0x003f, 0xe149, 0xb9c6, 0xb9c7, 0xe14c, 0xb9cc, 0x003f, 0xe14a, 0xe14f, 0xb9c3, 0xe148, 0xb9c9, 0xb9c1, 0x003f, 0x003f, 0x003f, 0xb9c0, 0xe14d, 0xe152, 0x003f, 0xb9ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe147, 0x003f, 0xbc4d, 0xe547, 0x003f, 0xe544, 0x003f, 0xbc47, 0xbc53, 0xbc54, 0x003f, 0xbc4a, 0xe542, 0xbc4c, 0xe4f9, 0xbc52, 0x003f, 0xe546, 0xbc49, 0xe548, 0xbc48, 0x003f, 0xe543, 0xe545, 0xbc4b, 0xe541, 0xe4fa, 0xe4f7, 0x003f, 0x003f, 0xd86b, 0xe4fd, 0x003f, 0xe4f6, 0xe4fc, 0xe4fb, 0x003f, 0xe4f8, 0x003f, 0xbc4f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbc4e, 0x003f, 0x003f, 0x003f, 0xbc50, 0xe4fe, 0xbeb2, 0xe540, 0x003f, 0x003f, 0x003f, 0xe945, 0x003f, 0xe8fd, 0x003f, 0xbebe, 0xe942, 0xbeb6, 0xbeba, 0xe941, 0x003f, 0xbeb9, 0xbeb5, 0xbeb8, 0xbeb3, 0xbebd, 0xe943, 0xe8fe, 0xbebc, 0xe8fc, 0xbebb, 0xe944, 0xe940, 0xbc51, 0x003f, 0xbebf, 0xe946, 0xbeb7, 0xbeb4, 0x003f, 0x003f, 0x003f, 0x003f, 0xecc6, 0xecc8, 0xc07b, 0xecc9, 0xecc7, 0xecc5, 0xecc4, 0xc07d, 0xecc3, 0xc07e, 0x003f, 0x003f, 0x003f, 0x003f, 0xecc1, 0xecc2, 0xc07a, 0xc0a1, 0xc07c, 0x003f, 0x003f, 0xecc0, 0x003f, 0xc250, 0x003f, 0xefbc, 0xefba, 0xefbf, 0xefbd, 0x003f, 0xefbb, 0xefbe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc360, 0xf1f2, 0xf1f3, 0xc456, 0x003f, 0xf1f4, 0xf1f0, 0xf1f5, 0xf1f1, 0xc251, 0x003f, 0x003f, 0x003f, 0xf3fe, 0xf441, 0xc459, 0xf440, 0xc458, 0xc457, 0x003f, 0x003f, 0x003f, 0x003f, 0xc45a, 0xf5c5, 0xf5c6, 0x003f, 0xc4da, 0xc4d9, 0xc4db, 0xf5c4, 0x003f, 0xf6d8, 0xf6d7, 0x003f, 0xc56d, 0xc56f, 0xc56e, 0xf6d9, 0xc5c8, 0xf8a6, 0x003f, 0x003f, 0x003f, 0xc5f1, 0x003f, 0xf8a5, 0xf8ee, 0x003f, 0x003f, 0xc949, 0x003f, 0x003f, 0xa57d, 0xa57c, 0x003f, 0xa65f, 0xa65e, 0xc9c7, 0xa65d, 0xc9c6, 0x003f, 0x003f, 0xa779, 0xcaa9, 0x003f, 0xcaa8, 0x003f, 0x003f, 0xa777, 0xa77a, 0x003f, 0x003f, 0xcaa7, 0x003f, 0xa778, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcbf0, 0x003f, 0xcbf1, 0xa954, 0x003f, 0x003f, 0x003f, 0x003f, 0xabaa, /* 0x5700 .. 0x57ff */ 0x003f, 0xd148, 0xd149, 0xae45, 0xae46, 0x003f, 0x003f, 0xd4ac, 0xb0e9, 0xb0eb, 0xd4ab, 0xb0ea, 0xd87c, 0xb3f2, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6e9, 0xb6ea, 0xdce1, 0x003f, 0xb9cf, 0x003f, 0xb9ce, 0x003f, 0xe549, 0xe948, 0xe947, 0x003f, 0xf96b, 0xa467, 0xc959, 0x003f, 0xc96e, 0xc96f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa662, 0xa666, 0xc9c9, 0x003f, 0xa664, 0xa663, 0xc9c8, 0xa665, 0xa661, 0x003f, 0x003f, 0xa660, 0xc9ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7a6, 0x003f, 0x003f, 0xa7a3, 0x003f, 0xa77d, 0xcaaa, 0x003f, 0x003f, 0x003f, 0xcaab, 0x003f, 0xa7a1, 0x003f, 0xcaad, 0xa77b, 0xcaae, 0xcaac, 0xa77e, 0xa7a2, 0xa7a5, 0xa7a4, 0xa77c, 0xcaaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa959, 0xcbfe, 0x003f, 0xa95b, 0x003f, 0xa95a, 0x003f, 0xcc40, 0xa958, 0xa957, 0xcbf5, 0x003f, 0xcbf4, 0x003f, 0xcbf2, 0xcbf7, 0xcbf6, 0xcbf3, 0xcbfc, 0xcbfd, 0xcbfa, 0xcbf8, 0xa956, 0x003f, 0x003f, 0x003f, 0xcbfb, 0xa95c, 0xcc41, 0x003f, 0x003f, 0xcbf9, 0x003f, 0xabab, 0xa955, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xabac, 0xce54, 0x003f, 0x003f, 0xce5a, 0x003f, 0x003f, 0x003f, 0xabb2, 0xce58, 0xce5e, 0x003f, 0xce55, 0xce59, 0xce5b, 0xce5d, 0xce57, 0x003f, 0xce56, 0xce51, 0xce52, 0xabad, 0x003f, 0xabaf, 0xabae, 0xce53, 0xce5c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xabb1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xce50, 0xd153, 0x003f, 0xd152, 0xd157, 0xd14e, 0x003f, 0xd151, 0xd150, 0x003f, 0xd154, 0x003f, 0xd158, 0xae47, 0xae4a, 0x003f, 0x003f, 0xd14f, 0xd155, 0x003f, 0x003f, 0x003f, 0xae49, 0xd14a, 0x003f, 0xabb0, 0xd4ba, 0xd156, 0x003f, 0xd14d, 0x003f, 0xae48, 0xd14c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd4b1, 0x003f, 0x003f, 0xb0ec, 0xb0f0, 0xd4c1, 0xd4af, 0xd4bd, 0xb0f1, 0xd4bf, 0x003f, 0xd4c5, 0x003f, 0xd4c9, 0x003f, 0x003f, 0xd4c0, 0xd4b4, 0xd4bc, 0x003f, 0xd4ca, 0xd4c8, 0xd4be, 0xd4b9, 0xd4b2, 0xd8a6, 0xd4b0, 0xb0f5, 0xd4b7, 0xb0f6, 0xb0f2, 0xd4ad, 0xd4c3, 0xd4b5, 0x003f, 0x003f, /* 0x5800 .. 0x58ff */ 0xd4b3, 0xd4c6, 0xb0f3, 0x003f, 0xd4cc, 0xb0ed, 0xb0ef, 0xd4bb, 0xd4b6, 0xae4b, 0xb0ee, 0xd4b8, 0xd4c7, 0xd4cb, 0xd4c2, 0x003f, 0xd4c4, 0x003f, 0x003f, 0x003f, 0xd4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8a1, 0x003f, 0xd8aa, 0xd8a9, 0xb3fa, 0xd8a2, 0x003f, 0xb3fb, 0xb3f9, 0x003f, 0xd8a4, 0xb3f6, 0xd8a8, 0x003f, 0xd8a3, 0xd8a5, 0xd87d, 0xb3f4, 0x003f, 0xd8b2, 0xd8b1, 0xd8ae, 0xb3f3, 0xb3f7, 0xb3f8, 0xd14b, 0xd8ab, 0xb3f5, 0xb0f4, 0xd8ad, 0xd87e, 0xd8b0, 0xd8af, 0x003f, 0xd8b3, 0x003f, 0xdcef, 0x003f, 0xd8ac, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8a7, 0xdce7, 0xb6f4, 0xb6f7, 0xb6f2, 0xdce6, 0xdcea, 0xdce5, 0x003f, 0xb6ec, 0xb6f6, 0xdce2, 0xb6f0, 0xdce9, 0x003f, 0xb6ee, 0xb6ed, 0xdcec, 0xb6ef, 0xdcee, 0x003f, 0xdceb, 0xb6eb, 0x003f, 0x003f, 0x003f, 0xb6f5, 0xdcf0, 0xdce4, 0xdced, 0x003f, 0x003f, 0xdce3, 0x003f, 0x003f, 0xb6f1, 0x003f, 0xb6f3, 0x003f, 0xdce8, 0x003f, 0xdcf1, 0x003f, 0x003f, 0xe15d, 0xb9d0, 0xe163, 0x003f, 0x003f, 0xb9d5, 0xe15f, 0xe166, 0xe157, 0xb9d7, 0xb9d1, 0xe15c, 0xbc55, 0xe15b, 0xe164, 0xb9d2, 0x003f, 0xb9d6, 0xe15a, 0xe160, 0xe165, 0xe156, 0xb9d4, 0xe15e, 0x003f, 0x003f, 0xe162, 0xe168, 0xe158, 0xe161, 0x003f, 0xb9d3, 0xe167, 0x003f, 0x003f, 0x003f, 0xe159, 0x003f, 0x003f, 0x003f, 0xbc59, 0xe54b, 0xbc57, 0xbc56, 0xe54d, 0xe552, 0x003f, 0xe54e, 0x003f, 0xe551, 0xbc5c, 0x003f, 0xbea5, 0xbc5b, 0x003f, 0xe54a, 0xe550, 0x003f, 0xbc5a, 0xe54f, 0x003f, 0xe54c, 0x003f, 0xbc58, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe94d, 0xf9d9, 0xe94f, 0xe94a, 0xbec1, 0xe94c, 0x003f, 0xbec0, 0xe94e, 0x003f, 0x003f, 0xbec3, 0xe950, 0xbec2, 0xe949, 0xe94b, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0a5, 0xeccc, 0x003f, 0xc0a4, 0xeccd, 0xc0a3, 0xeccb, 0xc0a2, 0xecca, 0x003f, 0xc253, 0xc252, 0xf1f6, 0xf1f8, 0x003f, 0xf1f7, 0xc361, 0xc362, 0x003f, 0x003f, 0xc363, 0xf442, 0xc45b, 0x003f, 0x003f, 0xf7d3, 0xf7d2, 0xc5f2, 0x003f, 0xa468, 0xa4d0, 0x003f, 0x003f, 0xa7a7, 0x003f, 0x003f, 0x003f, 0x003f, 0xce5f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3fc, 0xb3fd, 0x003f, 0xdcf2, 0xb9d8, 0xe169, 0xe553, /* 0x5900 .. 0x59ff */ 0x003f, 0x003f, 0x003f, 0xc95a, 0x003f, 0x003f, 0xcab0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc42, 0xce60, 0xd159, 0xae4c, 0x003f, 0x003f, 0xf1f9, 0x003f, 0xc4dc, 0xa469, 0xa57e, 0xc970, 0x003f, 0xa667, 0xa668, 0x003f, 0xa95d, 0x003f, 0x003f, 0x003f, 0xb0f7, 0x003f, 0xb9da, 0x003f, 0xb9db, 0xb9d9, 0x003f, 0xa46a, 0x003f, 0xa4d1, 0xa4d3, 0xa4d2, 0xc95b, 0xa4d4, 0xa5a1, 0xc971, 0x003f, 0xa5a2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa669, 0xa66a, 0x003f, 0x003f, 0x003f, 0xc9cb, 0x003f, 0xa7a8, 0x003f, 0xcab1, 0x003f, 0x003f, 0x003f, 0xa961, 0xcc43, 0x003f, 0xa95f, 0xa960, 0xa95e, 0xd15a, 0x003f, 0x003f, 0x003f, 0xabb6, 0xabb5, 0xabb7, 0xabb4, 0x003f, 0xce61, 0xa962, 0xabb3, 0x003f, 0xae4d, 0xae4e, 0x003f, 0xae4f, 0x003f, 0xd4cd, 0x003f, 0x003f, 0x003f, 0xb3fe, 0xd8b4, 0xb0f8, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6f8, 0x003f, 0xb9dd, 0xb9dc, 0xe16a, 0x003f, 0xbc5d, 0xbec4, 0x003f, 0xefc0, 0xf6da, 0xf7d4, 0xa46b, 0xa5a3, 0x003f, 0xa5a4, 0xc9d1, 0xa66c, 0xa66f, 0x003f, 0xc9cf, 0xc9cd, 0xa66e, 0xc9d0, 0xc9d2, 0xc9cc, 0xa671, 0xa670, 0xa66d, 0xa66b, 0xc9ce, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7b3, 0x003f, 0x003f, 0xa7b0, 0xcab6, 0xcab9, 0xcab8, 0x003f, 0xa7aa, 0xa7b2, 0x003f, 0x003f, 0xa7af, 0xcab5, 0xcab3, 0xa7ae, 0x003f, 0x003f, 0x003f, 0xa7a9, 0xa7ac, 0x003f, 0xcab4, 0xcabb, 0xcab7, 0xa7ad, 0xa7b1, 0xa7b4, 0xcab2, 0xcaba, 0xa7ab, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa967, 0xa96f, 0x003f, 0xcc4f, 0xcc48, 0xa970, 0xcc53, 0xcc44, 0xcc4b, 0x003f, 0x003f, 0xa966, 0xcc45, 0xa964, 0xcc4c, 0xcc50, 0xa963, 0x003f, 0xcc51, 0xcc4a, 0x003f, 0xcc4d, 0x003f, 0xa972, 0xa969, 0xcc54, 0xcc52, 0x003f, 0xa96e, 0xa96c, 0xcc49, 0xa96b, 0xcc47, 0xcc46, 0xa96a, 0xa968, 0xa971, 0xa96d, 0xa965, 0x003f, 0xcc4e, 0x003f, 0xabb9, 0x003f, 0xabc0, 0xce6f, 0xabb8, 0xce67, 0xce63, 0x003f, 0xce73, 0xce62, 0x003f, 0xabbb, 0xce6c, 0xabbe, 0xabc1, 0x003f, 0xabbc, 0xce70, 0xabbf, 0x003f, 0xae56, 0xce76, 0xce64, 0x003f, 0x003f, 0xce66, 0xce6d, 0xce71, 0xce75, 0xce72, 0xce6b, 0xce6e, 0x003f, 0x003f, 0xce68, 0xabc3, 0xce6a, 0xce69, 0xce74, 0xabba, /* 0x5a00 .. 0x5aff */ 0xce65, 0xabc2, 0x003f, 0xabbd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xae5c, 0xd162, 0x003f, 0xae5b, 0x003f, 0x003f, 0xd160, 0x003f, 0xae50, 0x003f, 0xae55, 0x003f, 0xd15f, 0xd15c, 0xd161, 0xae51, 0xd15b, 0x003f, 0xae54, 0xae52, 0x003f, 0xd163, 0xae53, 0xae57, 0x003f, 0x003f, 0xae58, 0x003f, 0xae5a, 0x003f, 0x003f, 0x003f, 0xae59, 0x003f, 0x003f, 0x003f, 0xd15d, 0xd15e, 0x003f, 0x003f, 0x003f, 0x003f, 0xd164, 0x003f, 0xd4d4, 0xb0f9, 0xd8c2, 0xd4d3, 0xd4e6, 0x003f, 0x003f, 0xb140, 0x003f, 0xd4e4, 0x003f, 0xb0fe, 0xb0fa, 0xd4ed, 0xd4dd, 0xd4e0, 0x003f, 0xb143, 0xd4ea, 0xd4e2, 0xb0fb, 0xb144, 0x003f, 0xd4e7, 0xd4e5, 0x003f, 0x003f, 0xd4d6, 0xd4eb, 0xd4df, 0xd4da, 0x003f, 0xd4d0, 0xd4ec, 0xd4dc, 0xd4cf, 0x003f, 0xb142, 0xd4e1, 0xd4ee, 0xd4de, 0xd4d2, 0xd4d7, 0xd4ce, 0x003f, 0xb141, 0x003f, 0xd4db, 0xd4d8, 0xb0fc, 0xd4d1, 0x003f, 0xd4e9, 0xb0fd, 0x003f, 0xd4d9, 0xd4d5, 0x003f, 0x003f, 0xd4e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb440, 0xd8bb, 0x003f, 0xd8b8, 0xd8c9, 0xd8bd, 0xd8ca, 0x003f, 0xb442, 0x003f, 0x003f, 0x003f, 0xd8c6, 0xd8c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd8c4, 0xd8c7, 0xd8cb, 0x003f, 0xd4e3, 0xd8cd, 0xdd47, 0x003f, 0xb443, 0xd8ce, 0xd8b6, 0xd8c0, 0x003f, 0xd8c5, 0x003f, 0x003f, 0xb441, 0xb444, 0xd8cc, 0xd8cf, 0xd8ba, 0xd8b7, 0x003f, 0x003f, 0xd8b9, 0x003f, 0x003f, 0xd8be, 0xd8bc, 0xb445, 0x003f, 0xd8c8, 0x003f, 0x003f, 0xd8bf, 0x003f, 0xd8c1, 0xd8b5, 0xdcfa, 0xdcf8, 0xb742, 0xb740, 0xdd43, 0xdcf9, 0xdd44, 0xdd40, 0xdcf7, 0xdd46, 0xdcf6, 0xdcfd, 0xb6fe, 0xb6fd, 0xb6fc, 0xdcfb, 0xdd41, 0xb6f9, 0xb741, 0x003f, 0xdcf4, 0x003f, 0xdcfe, 0xdcf3, 0xdcfc, 0xb6fa, 0xdd42, 0xdcf5, 0xb6fb, 0xdd45, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe16e, 0xb9e2, 0xb9e1, 0xb9e3, 0xe17a, 0xe170, 0xe176, 0xe16b, 0xe179, 0xe178, 0xe17c, 0xe175, 0xb9de, 0xe174, 0xb9e4, 0x003f, 0xe16d, 0xb9df, 0x003f, 0xe17b, 0xb9e0, 0xe16f, 0xe172, 0xe177, 0xe171, 0xe16c, 0x003f, 0x003f, 0x003f, 0x003f, 0xe173, 0xe555, 0xbc61, 0xe558, 0xe557, 0xe55a, 0xe55c, 0xf9dc, 0xbc5f, 0x003f, 0xe556, 0x003f, 0xe554, /* 0x5b00 .. 0x5bff */ 0x003f, 0xe55d, 0xe55b, 0xe559, 0x003f, 0xe55f, 0x003f, 0xe55e, 0xbc63, 0xbc5e, 0x003f, 0xbc60, 0xbc62, 0x003f, 0x003f, 0xe560, 0xe957, 0x003f, 0x003f, 0xe956, 0xe955, 0x003f, 0xe958, 0xe951, 0x003f, 0xe952, 0xe95a, 0xe953, 0x003f, 0xbec5, 0xe95c, 0x003f, 0xe95b, 0xe954, 0x003f, 0xecd1, 0xc0a8, 0xeccf, 0xecd4, 0xecd3, 0xe959, 0x003f, 0xc0a7, 0x003f, 0xecd2, 0xecce, 0xecd6, 0xecd5, 0xc0a6, 0x003f, 0xecd0, 0x003f, 0xbec6, 0x003f, 0x003f, 0x003f, 0xc254, 0x003f, 0x003f, 0x003f, 0xefc1, 0xf1fa, 0xf1fb, 0xf1fc, 0xc45c, 0x003f, 0x003f, 0xc45d, 0x003f, 0xf443, 0x003f, 0xf5c8, 0xf5c7, 0x003f, 0x003f, 0xf6db, 0xf6dc, 0xf7d5, 0xf8a7, 0x003f, 0xa46c, 0xa46d, 0x003f, 0xa46e, 0xa4d5, 0xa5a5, 0xc9d3, 0xa672, 0xa673, 0x003f, 0xa7b7, 0xa7b8, 0xa7b6, 0xa7b5, 0x003f, 0xa973, 0x003f, 0x003f, 0xcc55, 0xa975, 0xa974, 0xcc56, 0x003f, 0x003f, 0x003f, 0xabc4, 0x003f, 0xae5d, 0xd165, 0x003f, 0xd4f0, 0x003f, 0xb145, 0xb447, 0xd4ef, 0xb446, 0x003f, 0xb9e5, 0x003f, 0xe17d, 0xbec7, 0x003f, 0xc0a9, 0xecd7, 0x003f, 0xc45e, 0x003f, 0xc570, 0x003f, 0xc972, 0x003f, 0xa5a6, 0xc973, 0xa676, 0x003f, 0xa674, 0xa675, 0xa677, 0x003f, 0xa7ba, 0xa7b9, 0x003f, 0xcabc, 0xa7bb, 0x003f, 0x003f, 0xcabd, 0xcc57, 0x003f, 0xcc58, 0x003f, 0xa976, 0xa978, 0xa97a, 0xa977, 0xa97b, 0xa979, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xabc8, 0xabc5, 0xabc7, 0xabc9, 0xabc6, 0xd166, 0xce77, 0x003f, 0x003f, 0x003f, 0xd168, 0xd167, 0xae63, 0x003f, 0xae5f, 0x003f, 0x003f, 0xae60, 0xae62, 0xae64, 0xae61, 0x003f, 0xae66, 0xae65, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb14a, 0xd4f2, 0xd4f1, 0xb149, 0x003f, 0xb148, 0xb147, 0xb14b, 0xb146, 0x003f, 0x003f, 0xd8d5, 0xd8d2, 0xb449, 0xd8d1, 0xd8d6, 0x003f, 0xb44b, 0xd8d4, 0xb448, 0xb44a, 0xd8d3, 0x003f, 0xdd48, 0x003f, 0xdd49, 0xdd4a, 0x003f, 0x003f, 0x003f, 0x003f, 0xb9e6, 0xb9ee, 0xe17e, 0xb9e8, 0xb9ec, 0xe1a1, 0xb9ed, 0xb9e9, 0xb9ea, 0xb9e7, 0xb9eb, 0xbc66, 0xd8d0, 0xbc67, 0xbc65, 0x003f, 0xbc64, 0xe95d, 0xbec8, 0xecd8, 0xecd9, 0x003f, 0x003f, 0xc364, 0xc45f, 0x003f, 0xa46f, 0x003f, 0xa678, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x5c00 .. 0x5cff */ 0x003f, 0xabca, 0x003f, 0xd169, 0xae67, 0x003f, 0x003f, 0xb14e, 0xb14d, 0xb14c, 0xb44c, 0xb44d, 0xd8d7, 0xb9ef, 0xbec9, 0xa470, 0xc95c, 0xa4d6, 0xc974, 0x003f, 0x003f, 0xc9d4, 0xa679, 0x003f, 0x003f, 0x003f, 0xa97c, 0x003f, 0x003f, 0x003f, 0x003f, 0xdd4b, 0x003f, 0x003f, 0xa471, 0x003f, 0xa4d7, 0xc9d5, 0x003f, 0x003f, 0xcabe, 0x003f, 0xcabf, 0x003f, 0xa7bc, 0x003f, 0x003f, 0x003f, 0xd8d8, 0xb44e, 0x003f, 0xdd4c, 0x003f, 0x003f, 0x003f, 0xc0aa, 0xa472, 0xa4a8, 0xa4d8, 0xc975, 0xa5a7, 0x003f, 0xa7c0, 0xa7bf, 0xa7bd, 0xa7be, 0x003f, 0x003f, 0xcc59, 0xa97e, 0xa9a1, 0xcc5a, 0xa97d, 0x003f, 0x003f, 0xabce, 0xce78, 0xabcd, 0xabcb, 0xabcc, 0xae6a, 0xae68, 0x003f, 0x003f, 0xd16b, 0xae69, 0xd16a, 0x003f, 0xae5e, 0xd4f3, 0x003f, 0x003f, 0xb150, 0xb151, 0x003f, 0x003f, 0xb14f, 0x003f, 0xb9f0, 0xe1a2, 0xbc68, 0xbc69, 0x003f, 0xe561, 0xc0ab, 0xefc2, 0xefc3, 0x003f, 0xc4dd, 0xf8a8, 0xc94b, 0xa4d9, 0x003f, 0xa473, 0x003f, 0xc977, 0xc976, 0x003f, 0x003f, 0x003f, 0x003f, 0xa67a, 0xc9d7, 0xc9d8, 0xc9d6, 0x003f, 0xc9d9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcac7, 0x003f, 0xcac2, 0xcac4, 0xcac6, 0xcac3, 0xa7c4, 0xcac0, 0x003f, 0xcac1, 0xa7c1, 0xa7c2, 0xcac5, 0xcac8, 0xa7c3, 0xcac9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc68, 0x003f, 0xcc62, 0xcc5d, 0xa9a3, 0xcc65, 0xcc63, 0xcc5c, 0xcc69, 0xcc6c, 0xcc67, 0xcc60, 0xa9a5, 0xcc66, 0xa9a6, 0xcc61, 0xcc64, 0xcc5b, 0xcc5f, 0xcc6b, 0xa9a7, 0x003f, 0xa9a8, 0x003f, 0xcc5e, 0xcc6a, 0xa9a2, 0xa9a4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceab, 0xcea4, 0xceaa, 0xcea3, 0xcea5, 0xce7d, 0xce7b, 0x003f, 0xceac, 0xcea9, 0xce79, 0x003f, 0xabd0, 0xcea7, 0xcea8, 0x003f, 0xcea6, 0xce7c, 0xce7a, 0xabcf, 0xcea2, 0xce7e, 0x003f, 0x003f, 0xcea1, 0xcead, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xae6f, 0x003f, 0xae6e, 0x003f, 0xd16c, 0xae6b, 0xd16e, 0x003f, 0xae70, 0xd16f, 0x003f, 0x003f, 0xae73, 0x003f, 0xae71, 0xd170, 0xceae, 0xd172, 0x003f, 0xae6d, 0x003f, 0xae6c, 0x003f, 0xd16d, /* 0x5d00 .. 0x5dff */ 0xd171, 0xae72, 0x003f, 0x003f, 0x003f, 0x003f, 0xb153, 0xb152, 0x003f, 0x003f, 0x003f, 0xd4f5, 0xd4f9, 0xd4fb, 0xb154, 0xd4fe, 0x003f, 0xb158, 0xd541, 0x003f, 0xb15a, 0x003f, 0xb156, 0xb15e, 0x003f, 0xb15b, 0xd4f7, 0xb155, 0x003f, 0xd4f6, 0xd4f4, 0xd543, 0xd4f8, 0x003f, 0xb157, 0xd542, 0xb15c, 0xd4fd, 0xd4fc, 0xb15d, 0xd4fa, 0xb159, 0x003f, 0x003f, 0x003f, 0x003f, 0xd544, 0x003f, 0xd540, 0xd8e7, 0xd8ee, 0xd8e3, 0xb451, 0xd8df, 0xd8ef, 0xd8d9, 0xd8ec, 0xd8ea, 0xd8e4, 0x003f, 0xd8ed, 0xd8e6, 0x003f, 0xd8de, 0xd8f0, 0xd8dc, 0xd8e9, 0xd8da, 0x003f, 0xd8f1, 0x003f, 0xb452, 0x003f, 0xd8eb, 0xdd4f, 0xd8dd, 0xb44f, 0x003f, 0xd8e1, 0x003f, 0xb450, 0xd8e0, 0xd8e5, 0x003f, 0x003f, 0xd8e2, 0x003f, 0x003f, 0x003f, 0xd8e8, 0x003f, 0x003f, 0x003f, 0x003f, 0xdd53, 0x003f, 0x003f, 0x003f, 0xdd56, 0xdd4e, 0x003f, 0xdd50, 0x003f, 0xdd55, 0xdd54, 0xb743, 0x003f, 0xd8db, 0xdd52, 0x003f, 0x003f, 0xb744, 0x003f, 0xdd4d, 0xdd51, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1a9, 0x003f, 0xe1b0, 0xe1a7, 0x003f, 0xe1ae, 0xe1a5, 0xe1ad, 0xe1b1, 0xe1a4, 0xe1a8, 0xe1a3, 0x003f, 0xb9f1, 0x003f, 0xe1a6, 0xb9f2, 0xe1ac, 0xe1ab, 0xe1aa, 0x003f, 0x003f, 0xe1af, 0x003f, 0x003f, 0x003f, 0x003f, 0xe565, 0xe567, 0xbc6b, 0xe568, 0x003f, 0xe563, 0x003f, 0xe562, 0xe56c, 0x003f, 0xe56a, 0xbc6a, 0xe56d, 0xe564, 0xe569, 0xe56b, 0xe566, 0x003f, 0x003f, 0x003f, 0x003f, 0xe961, 0xe966, 0xe960, 0xe965, 0x003f, 0xe95e, 0xe968, 0xe964, 0xe969, 0xe963, 0xe95f, 0xe967, 0x003f, 0xe96a, 0xe962, 0x003f, 0xecda, 0xc0af, 0x003f, 0xc0ad, 0x003f, 0xc0ac, 0xc0ae, 0x003f, 0x003f, 0xefc4, 0x003f, 0xf172, 0xf1fd, 0x003f, 0x003f, 0xf444, 0xf445, 0x003f, 0xc460, 0x003f, 0xf5c9, 0x003f, 0xc4de, 0x003f, 0xf5ca, 0x003f, 0xf6de, 0xc572, 0x003f, 0xc571, 0xf6dd, 0xc5c9, 0x003f, 0xf7d6, 0x003f, 0x003f, 0x003f, 0x003f, 0xa474, 0xa67b, 0xc9da, 0xcaca, 0xa8b5, 0xb15f, 0x003f, 0x003f, 0xa475, 0xa5aa, 0xa5a9, 0xa5a8, 0x003f, 0x003f, 0xa7c5, 0x003f, 0x003f, 0xae74, 0x003f, 0xdd57, 0xa476, 0xa477, 0xa478, 0xa4da, 0x003f, 0x003f, 0xabd1, 0x003f, 0xceaf, 0x003f, 0x003f, 0x003f, 0xb453, 0xa479, 0xc95d, /* 0x5e00 .. 0x5eff */ 0x003f, 0x003f, 0xa5ab, 0xa5ac, 0xc978, 0x003f, 0xa67c, 0x003f, 0x003f, 0x003f, 0xcacb, 0x003f, 0xa7c6, 0x003f, 0xcacc, 0x003f, 0x003f, 0xa9ae, 0x003f, 0x003f, 0xcc6e, 0xa9ac, 0xa9ab, 0xcc6d, 0xa9a9, 0xcc6f, 0xa9aa, 0xa9ad, 0x003f, 0xabd2, 0x003f, 0xabd4, 0xceb3, 0xceb0, 0xceb1, 0xceb2, 0xceb4, 0xabd3, 0x003f, 0x003f, 0xd174, 0xd173, 0x003f, 0xae76, 0x003f, 0xae75, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb162, 0xd546, 0x003f, 0xb161, 0xb163, 0xb160, 0x003f, 0x003f, 0x003f, 0x003f, 0xb455, 0xd545, 0x003f, 0xb456, 0xd8f3, 0x003f, 0xb457, 0xd8f2, 0xb454, 0x003f, 0x003f, 0x003f, 0x003f, 0xdd5a, 0xdd5c, 0xb745, 0xdd5b, 0xdd59, 0xdd58, 0x003f, 0x003f, 0x003f, 0xe1b4, 0xb9f7, 0xb9f5, 0x003f, 0xb9f6, 0xe1b2, 0xe1b3, 0x003f, 0xb9f3, 0xe571, 0xe56f, 0x003f, 0xbc6d, 0xe570, 0xbc6e, 0xbc6c, 0xb9f4, 0x003f, 0x003f, 0xe96d, 0xe96b, 0xe96c, 0xe56e, 0xecdc, 0xc0b0, 0xecdb, 0xefc5, 0xefc6, 0xe96e, 0xf1fe, 0x003f, 0xa47a, 0xa5ad, 0xa67e, 0xc9db, 0xa67d, 0x003f, 0xa9af, 0xb746, 0x003f, 0xa4db, 0xa5ae, 0xabd5, 0xb458, 0x003f, 0xc979, 0x003f, 0xc97a, 0x003f, 0xc9dc, 0x003f, 0x003f, 0xa7c8, 0xcad0, 0xcace, 0xa7c9, 0xcacd, 0xcacf, 0xcad1, 0x003f, 0xa7c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9b3, 0xa9b4, 0xa9b1, 0x003f, 0x003f, 0xa9b0, 0xceb8, 0xa9b2, 0x003f, 0x003f, 0x003f, 0xabd6, 0x003f, 0xceb7, 0xceb9, 0xceb6, 0xceba, 0xabd7, 0xae79, 0xd175, 0x003f, 0xd177, 0xae77, 0xd178, 0xae78, 0xd176, 0x003f, 0xceb5, 0xd547, 0xd54a, 0xd54b, 0xd548, 0xb167, 0xb166, 0xb164, 0xb165, 0xd549, 0x003f, 0x003f, 0x003f, 0x003f, 0xb168, 0x003f, 0x003f, 0xb45a, 0xb45b, 0x003f, 0xb45c, 0xdd5d, 0xdd5f, 0xdd61, 0xb748, 0xb747, 0xb459, 0xdd60, 0xdd5e, 0x003f, 0xe1b8, 0x003f, 0x003f, 0xe1b6, 0xe1bc, 0xb9f8, 0xe1bd, 0xe1ba, 0xb9f9, 0xe1b7, 0xe1b5, 0xe1bb, 0xbc70, 0xe573, 0xe1b9, 0xbc72, 0xe574, 0xbc71, 0xbc74, 0xe575, 0xbc6f, 0xbc73, 0x003f, 0xe973, 0xe971, 0xe970, 0xe972, 0xe96f, 0x003f, 0x003f, 0xc366, 0x003f, 0xf446, 0xf447, 0x003f, 0xf5cb, 0xf6df, 0xc655, 0x003f, 0x003f, 0xa9b5, 0xa7ca, 0x003f, 0x003f, 0xabd8, 0x003f, 0x003f, 0x003f, 0xa47b, 0xa4dc, /* 0x5f00 .. 0x5fff */ 0x003f, 0xa5af, 0xc9dd, 0x003f, 0xa7cb, 0xcad2, 0x003f, 0xcebb, 0xabd9, 0x003f, 0xb9fa, 0xa47c, 0x003f, 0x003f, 0x003f, 0xa6a1, 0x003f, 0x003f, 0xb749, 0xa47d, 0xa4dd, 0xa4de, 0x003f, 0xa5b1, 0xa5b0, 0x003f, 0xc9de, 0xa6a2, 0x003f, 0xcad3, 0x003f, 0xa7cc, 0x003f, 0x003f, 0xcc71, 0xcc72, 0xcc73, 0x003f, 0xa9b6, 0xa9b7, 0xcc70, 0xa9b8, 0x003f, 0x003f, 0x003f, 0xabda, 0xcebc, 0x003f, 0xd17a, 0xae7a, 0x003f, 0xd179, 0x003f, 0xb169, 0xd54c, 0xb16a, 0xd54d, 0x003f, 0x003f, 0x003f, 0xb45d, 0x003f, 0x003f, 0x003f, 0xdd62, 0x003f, 0x003f, 0xe1bf, 0xe1be, 0x003f, 0xb9fb, 0x003f, 0xbc75, 0xe576, 0xbeca, 0xe974, 0xc0b1, 0x003f, 0xc573, 0xf7d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xcc74, 0x003f, 0xcebd, 0xb16b, 0xd8f4, 0xb74a, 0x003f, 0x003f, 0x003f, 0xc255, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7ce, 0x003f, 0xa7cd, 0xabdb, 0x003f, 0xd17b, 0x003f, 0xb16d, 0xb343, 0xb16e, 0xb16c, 0xb45e, 0x003f, 0xe1c0, 0xb9fc, 0xbc76, 0x003f, 0xc94c, 0xc9df, 0x003f, 0xcad5, 0xa7cf, 0xcad4, 0xa7d0, 0x003f, 0x003f, 0xa9bc, 0xcc77, 0xcc76, 0xa9bb, 0xa9b9, 0xa9ba, 0xcc75, 0x003f, 0x003f, 0xabdd, 0xcebe, 0xabe0, 0xabdc, 0xabe2, 0xabde, 0xabdf, 0xabe1, 0x003f, 0x003f, 0x003f, 0xae7d, 0xae7c, 0xae7b, 0x003f, 0x003f, 0x003f, 0xd54f, 0xb16f, 0xb172, 0xb170, 0x003f, 0xd54e, 0xb175, 0x003f, 0xb171, 0xd550, 0xb174, 0xb173, 0x003f, 0x003f, 0x003f, 0xd8f6, 0xd8f5, 0x003f, 0xb461, 0xb45f, 0xb460, 0xd8f7, 0xb74b, 0xdd64, 0xb74c, 0xdd63, 0x003f, 0x003f, 0xe577, 0x003f, 0x003f, 0xbc78, 0xe1c1, 0xbc77, 0x003f, 0xb9fd, 0x003f, 0xecde, 0xe975, 0xc0b2, 0xecdd, 0xf240, 0xf448, 0xf449, 0x003f, 0xa4df, 0x003f, 0xa5b2, 0x003f, 0x003f, 0x003f, 0xc97b, 0x003f, 0x003f, 0xa7d2, 0xa7d4, 0x003f, 0xc9e2, 0xcad8, 0xcad7, 0xcad6, 0x003f, 0xc9e1, 0xc9e0, 0xa6a4, 0xa7d3, 0xa7d1, 0xa6a3, 0x003f, 0x003f, 0x003f, 0xa9bd, 0xcc78, 0x003f, 0xa9be, 0xcadd, 0x003f, 0xcadf, 0xcade, 0xcc79, 0x003f, 0x003f, 0xcada, 0x003f, 0xa7d8, 0xa7d6, 0x003f, 0xcad9, 0xcadb, 0xcae1, 0x003f, 0xa7d5, 0x003f, 0xcadc, 0xcae5, 0xa9c0, 0x003f, 0xcae2, 0xa7d7, 0x003f, 0xcae0, 0xcae3, 0x003f, 0xa9bf, 0x003f, 0xa9c1, /* 0x6000 .. 0x60ff */ 0xcae4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xccaf, 0xcca2, 0xcc7e, 0xccae, 0xcca9, 0xabe7, 0xa9c2, 0xccaa, 0xccad, 0xabe3, 0xccac, 0xa9c3, 0xa9c8, 0xa9c6, 0xcca3, 0x003f, 0xcc7c, 0xcca5, 0xa9cd, 0xccb0, 0xabe4, 0xcca6, 0x003f, 0xabe5, 0xa9c9, 0xcca8, 0x003f, 0xcecd, 0xabe6, 0xcc7b, 0xa9ca, 0xabe8, 0xa9cb, 0xa9c7, 0xa9cc, 0xcca7, 0xcc7a, 0xccab, 0xa9c4, 0x003f, 0x003f, 0xcc7d, 0xcca4, 0xcca1, 0xa9c5, 0x003f, 0xcebf, 0x003f, 0xcec0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceca, 0xd1a1, 0xcecb, 0xabee, 0xcece, 0xcec4, 0xabed, 0xcec6, 0x003f, 0xcec7, 0x003f, 0x003f, 0xcec9, 0xabe9, 0x003f, 0x003f, 0xaea3, 0x003f, 0xf9da, 0xcec5, 0xcec1, 0xaea4, 0x003f, 0x003f, 0xcecf, 0xae7e, 0xd17d, 0xcec8, 0x003f, 0xd17c, 0xcec3, 0xcecc, 0x003f, 0x003f, 0xabec, 0xaea1, 0xabf2, 0xaea2, 0xced0, 0xd17e, 0xabeb, 0xaea6, 0xabf1, 0xabf0, 0xabef, 0xaea5, 0xced1, 0xaea7, 0xabea, 0x003f, 0xcec2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb176, 0xd1a4, 0xd1a6, 0x003f, 0xd1a8, 0xaea8, 0xaeae, 0xd553, 0xd1ac, 0xd1a3, 0xb178, 0xd551, 0x003f, 0xaead, 0xaeab, 0xd1ae, 0x003f, 0xd552, 0x003f, 0xd1a5, 0x003f, 0xaeac, 0xd1a9, 0xaeaf, 0xd1ab, 0x003f, 0x003f, 0xaeaa, 0xd1aa, 0xd1ad, 0xd1a7, 0x003f, 0xaea9, 0xb179, 0x003f, 0xd1a2, 0xb177, 0x003f, 0x003f, 0x003f, 0x003f, 0xb17a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd555, 0xd55e, 0xb464, 0x003f, 0xb17c, 0xb1a3, 0xb465, 0xd560, 0xb1aa, 0xd8f9, 0xd556, 0xb1a2, 0xb1a5, 0xb17e, 0xd554, 0xd562, 0xd565, 0xd949, 0x003f, 0xd563, 0xd8fd, 0xb1a1, 0xb1a8, 0xb1ac, 0xd55d, 0xd8f8, 0xd561, 0xb17b, 0xd8fa, 0xd564, 0xd8fc, 0xd559, 0x003f, 0xb462, 0x003f, 0xd557, 0xd558, 0xb1a7, 0x003f, 0x003f, 0xb1a6, 0xd55b, 0xb1ab, 0xd55f, 0xb1a4, 0xd55c, 0x003f, 0xb1a9, 0xb466, 0xb463, 0xd8fb, 0x003f, 0xd55a, 0x003f, 0xb17d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb46b, 0xb46f, 0xd940, 0xb751, 0xb46d, 0xd944, 0xb471, 0xdd65, 0xd946, 0xb753, 0xb469, 0xb46c, 0xd947, 0x003f, 0xd948, 0xd94e, /* 0x6100 .. 0x61ff */ 0xb473, 0xb754, 0x003f, 0xd94a, 0xd94f, 0xd943, 0xb75e, 0x003f, 0xb755, 0xb472, 0xd941, 0xd950, 0x003f, 0xb75d, 0xb470, 0xb74e, 0xd94d, 0x003f, 0xb474, 0xd945, 0xd8fe, 0xb46a, 0xd942, 0x003f, 0xd94b, 0x003f, 0xb74d, 0xb752, 0xb467, 0xd94c, 0x003f, 0xb750, 0x003f, 0x003f, 0x003f, 0xb468, 0x003f, 0x003f, 0x003f, 0xb75c, 0xe1c3, 0xdd70, 0x003f, 0xdd68, 0xe1c2, 0x003f, 0xdd6c, 0xdd6e, 0x003f, 0x003f, 0xdd6b, 0x003f, 0xb75b, 0x003f, 0xdd6a, 0xb75f, 0x003f, 0x003f, 0x003f, 0xe1d2, 0x003f, 0x003f, 0xb75a, 0xba40, 0xdd71, 0xe1c4, 0x003f, 0x003f, 0xb758, 0xdd69, 0xdd6d, 0xb9fe, 0xb74f, 0xdd66, 0xdd67, 0xba41, 0xb757, 0xb759, 0xb756, 0xdd6f, 0x003f, 0x003f, 0xe1c8, 0xe1c9, 0xe1ce, 0xbc7d, 0xe1d5, 0x003f, 0xba47, 0x003f, 0xba46, 0xe1d0, 0x003f, 0xbc7c, 0xe1c5, 0xba45, 0x003f, 0xe1d4, 0xba43, 0xba44, 0x003f, 0xe1d1, 0xe5aa, 0xbc7a, 0xb46e, 0x003f, 0xe1d3, 0xbca3, 0xe1cb, 0x003f, 0xbc7b, 0x003f, 0xbca2, 0xe1c6, 0xe1ca, 0xe1c7, 0xe1cd, 0xba48, 0xbc79, 0xba42, 0x003f, 0xe57a, 0xe1cf, 0x003f, 0xbca1, 0x003f, 0xbca4, 0x003f, 0xe1cc, 0x003f, 0xbc7e, 0xe579, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe57e, 0xbece, 0xe578, 0xe9a3, 0xe5a9, 0xbca8, 0x003f, 0xbca6, 0xbecc, 0xe5a6, 0xe5a2, 0xbcac, 0x003f, 0xe978, 0x003f, 0x003f, 0x003f, 0xbcaa, 0xe5a1, 0x003f, 0xe976, 0x003f, 0xe5a5, 0x003f, 0xe5a8, 0xe57d, 0x003f, 0xbcab, 0x003f, 0x003f, 0xbca5, 0xe977, 0xbecd, 0xe5a7, 0xbca7, 0xbca9, 0xe5a4, 0xbcad, 0xe5a3, 0xe57c, 0xe57b, 0xbecb, 0xe5ab, 0xe97a, 0xece0, 0xbed0, 0x003f, 0xe9a2, 0x003f, 0xe97e, 0x003f, 0xece1, 0x003f, 0xbed1, 0xe9a1, 0x003f, 0xe97c, 0xc0b4, 0xecdf, 0x003f, 0xe979, 0xe97b, 0xc0b5, 0xbed3, 0xc0b3, 0xbed2, 0xc0b7, 0xe97d, 0xbecf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xefcf, 0x003f, 0xefc7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xece7, 0xefc8, 0xece3, 0x003f, 0x003f, 0xc256, 0xece5, 0xece4, 0xc0b6, 0xece2, 0xece6, 0xefd0, 0xefcc, 0xefce, 0x003f, 0xefc9, 0xefca, 0x003f, 0xefcd, 0xefcb, 0xc367, 0x003f, 0x003f, 0xc36a, 0xc369, 0xc368, 0xc461, 0xf44a, 0xc462, 0xf241, 0xc4df, 0xf5cc, 0xc4e0, 0xc574, /* 0x6200 .. 0x62ff */ 0xc5ca, 0xf7d9, 0x003f, 0xf7da, 0xf7db, 0x003f, 0x003f, 0xf9ba, 0xa4e0, 0xc97c, 0xa5b3, 0x003f, 0xa6a6, 0xa6a7, 0xa6a5, 0x003f, 0xa6a8, 0xa7da, 0xa7d9, 0x003f, 0xccb1, 0xa9cf, 0xa9ce, 0x003f, 0x003f, 0xd1af, 0xb1ad, 0xb1ae, 0x003f, 0x003f, 0x003f, 0xb475, 0xdd72, 0xb760, 0xb761, 0xdd74, 0xdd76, 0xdd75, 0x003f, 0xe1d7, 0x003f, 0xe1d6, 0xba49, 0xe1d8, 0x003f, 0xe5ac, 0xbcae, 0x003f, 0xbed4, 0x003f, 0xc0b8, 0xc257, 0xc0b9, 0x003f, 0xa4e1, 0x003f, 0x003f, 0x003f, 0xcae6, 0x003f, 0x003f, 0xccb2, 0xa9d1, 0xa9d0, 0xa9d2, 0xabf3, 0xced2, 0xced3, 0x003f, 0x003f, 0xd1b0, 0xaeb0, 0xb1af, 0xb476, 0xd951, 0xa4e2, 0x003f, 0xa47e, 0xa4e3, 0x003f, 0xc97d, 0xa5b7, 0xa5b6, 0xa5b4, 0xa5b5, 0x003f, 0x003f, 0x003f, 0xa6ab, 0xc9e9, 0xc9eb, 0xa6aa, 0xc9e3, 0x003f, 0xc9e4, 0x003f, 0xc9ea, 0xc9e6, 0xc9e8, 0xa6a9, 0xc9e5, 0xc9ec, 0xc9e7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa7e1, 0xa7ea, 0xa7e8, 0xcaf0, 0xcaed, 0xcaf5, 0xa7e6, 0xcaf6, 0x003f, 0xa7df, 0xcaf3, 0x003f, 0xa7e5, 0xcaef, 0xcaee, 0xa7e3, 0xcaf4, 0xa7e4, 0xa9d3, 0xa7de, 0xcaf1, 0x003f, 0xcae7, 0xa7db, 0x003f, 0xa7ee, 0xcaec, 0xcaf2, 0xa7e0, 0xa7e2, 0x003f, 0xcae8, 0x003f, 0xcae9, 0xcaea, 0x003f, 0xa7ed, 0xa7e7, 0xa7ec, 0xcaeb, 0xa7eb, 0xa7dd, 0xa7dc, 0xa7e9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9e1, 0xccbe, 0xccb7, 0xa9dc, 0xa9ef, 0xccb3, 0xccba, 0xccbc, 0xccbf, 0xa9ea, 0x003f, 0xccbb, 0xccb4, 0xa9e8, 0xccb8, 0x003f, 0xccc0, 0xa9d9, 0x003f, 0xccbd, 0xa9e3, 0xa9e2, 0xccb6, 0xa9d7, 0x003f, 0x003f, 0xa9d8, 0x003f, 0xa9d6, 0x003f, 0xa9ee, 0xa9e6, 0xa9e0, 0xa9d4, 0xccb9, 0xa9df, 0xa9d5, 0xa9e7, 0xa9f0, 0xced4, 0xa9e4, 0xccb5, 0xa9da, 0xa9dd, 0xa9de, 0x003f, 0xa9ec, 0xa9ed, 0xa9eb, 0xa9e5, 0xa9e9, 0xa9db, 0xabf4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceda, 0xac41, 0xabf8, 0xabfa, 0xac40, 0xcee6, 0xabfd, 0xd1b1, 0xaeb1, 0xac43, 0xced7, 0xcedf, 0xabfe, 0xcede, 0xcedb, 0xcee3, 0xcee5, 0xabf7, 0xabfb, 0xac42, 0xaeb3, /* 0x6300 .. 0x63ff */ 0xcee0, 0xabf9, 0xac45, 0xced9, 0x003f, 0x003f, 0x003f, 0xabfc, 0xaeb2, 0xabf6, 0x003f, 0xced6, 0xcedd, 0xced5, 0xced8, 0xcedc, 0xd1b2, 0xac44, 0x003f, 0xcee1, 0xcee2, 0xcee4, 0xabf5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaec1, 0xd1be, 0xaebf, 0xaec0, 0xd1b4, 0xd1c4, 0x003f, 0xaeb6, 0x003f, 0x003f, 0xd566, 0xd1c6, 0xd1c0, 0x003f, 0xd1b7, 0x003f, 0xd1c9, 0xd1ba, 0xaebc, 0xd57d, 0xd1bd, 0xaebe, 0xaeb5, 0x003f, 0xd1cb, 0xd1bf, 0xaeb8, 0xd1b8, 0xd1b5, 0xd1b6, 0xaeb9, 0xd1c5, 0xd1cc, 0xaebb, 0xd1bc, 0xd1bb, 0xaec3, 0xaec2, 0xaeb4, 0xaeba, 0xaebd, 0xd1c8, 0x003f, 0x003f, 0xd1c2, 0xaeb7, 0xd1b3, 0xd1ca, 0xd1c1, 0xd1c3, 0xd1c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd567, 0x003f, 0xb1b7, 0xb1cb, 0xb1ca, 0x003f, 0xb1bf, 0x003f, 0xd579, 0xd575, 0xd572, 0xd5a6, 0xb1ba, 0xb1b2, 0x003f, 0x003f, 0xd577, 0xb4a8, 0xb1b6, 0xd5a1, 0x003f, 0xb1cc, 0xb1c9, 0xd57b, 0xd56a, 0x003f, 0x003f, 0xb1c8, 0xd5a3, 0xd569, 0xb1bd, 0xb1c1, 0xd5a2, 0x003f, 0xd573, 0xb1c2, 0xb1bc, 0xd568, 0x003f, 0xb478, 0xd5a5, 0xd571, 0xb1c7, 0xd574, 0xd5a4, 0xb1c6, 0x003f, 0xd952, 0x003f, 0xb1b3, 0xd56f, 0xb1b8, 0xb1c3, 0x003f, 0xb1be, 0xd578, 0xd56e, 0xd56c, 0xd57e, 0xb1b0, 0xb1c4, 0xb1b4, 0xb477, 0xd57c, 0xb1b5, 0x003f, 0xb1b1, 0xb1c0, 0xb1bb, 0xb1b9, 0xd570, 0xb1c5, 0xd56d, 0xd57a, 0xd576, 0xd954, 0xd953, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd56b, 0xd964, 0x003f, 0xb47a, 0x003f, 0xd96a, 0xd959, 0xd967, 0xdd77, 0xb47d, 0xd96b, 0xd96e, 0xb47c, 0xd95c, 0xd96d, 0xd96c, 0xb47e, 0xd955, 0xb479, 0xb4a3, 0x003f, 0xb4a1, 0xd969, 0x003f, 0xd95f, 0xb4a5, 0xd970, 0xd968, 0xd971, 0xb4ad, 0xb4ab, 0xd966, 0xd965, 0x003f, 0xd963, 0xd95d, 0xb4a4, 0x003f, 0xb4a2, 0xd1b9, 0xd956, 0x003f, 0xddb7, 0xd957, 0xb47b, 0xb4aa, 0xdd79, 0x003f, 0xb4a6, 0xb4a7, 0xd958, 0xd96f, 0xdd78, 0xd960, 0xd95b, 0xb4a9, 0xd961, 0xd95e, 0x003f, 0x003f, 0xb4ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6400 .. 0x64ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb770, 0x003f, 0x003f, 0xdd7c, 0xddb1, 0xddb6, 0xddaa, 0xb76c, 0xddbb, 0xb769, 0xdd7a, 0x003f, 0xdd7b, 0xb762, 0xb76b, 0xdda4, 0xb76e, 0xb76f, 0xdda5, 0x003f, 0xddb2, 0xddb8, 0xb76a, 0x003f, 0xb764, 0xdda3, 0xdd7d, 0xddba, 0xdda8, 0xdda9, 0xdd7e, 0xddb4, 0xddab, 0xddb5, 0xddad, 0x003f, 0xb765, 0xe1d9, 0xb768, 0xb766, 0xddb9, 0xddb0, 0xddac, 0x003f, 0x003f, 0xdda1, 0xba53, 0xddaf, 0xb76d, 0xdda7, 0x003f, 0xdda6, 0x003f, 0x003f, 0x003f, 0xb767, 0xb763, 0xe1ee, 0xddb3, 0xddae, 0x003f, 0xdda2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe1e9, 0x003f, 0xe1da, 0xe1e5, 0x003f, 0xe1ec, 0xba51, 0xb4ac, 0xe1ea, 0xba4c, 0x003f, 0x003f, 0x003f, 0xba4b, 0xe1f1, 0x003f, 0xe1db, 0xe1e8, 0xe1dc, 0xe1e7, 0xba4f, 0xe1eb, 0xd962, 0x003f, 0x003f, 0x003f, 0xe1f2, 0xe1e3, 0xba52, 0xe5ba, 0xbcaf, 0x003f, 0xe1f0, 0xe1ef, 0xba54, 0xe5ad, 0xbcb0, 0xe5ae, 0x003f, 0xe1df, 0xe1e0, 0xe1dd, 0xe1e2, 0xe1de, 0xe1f3, 0xba4e, 0xbcb1, 0xba50, 0xba55, 0x003f, 0xe1e1, 0x003f, 0xe1ed, 0x003f, 0x003f, 0xe1e6, 0x003f, 0x003f, 0xe5b1, 0x003f, 0xba4a, 0xbcb4, 0xe9aa, 0xe5b6, 0xe5b5, 0xe5b7, 0x003f, 0x003f, 0xe5b4, 0xbcb5, 0x003f, 0xbcbb, 0xbcb8, 0x003f, 0xbcb9, 0xe5af, 0xe5b2, 0xe5bc, 0xbcc1, 0xbcbf, 0x003f, 0xe5b3, 0xd95a, 0xbcb2, 0xe5b9, 0xe5b0, 0x003f, 0xbcc2, 0xe5b8, 0xba4d, 0xbcb7, 0xe1e4, 0x003f, 0x003f, 0xbcba, 0x003f, 0xbcbe, 0xbcc0, 0xbcbd, 0xbcbc, 0x003f, 0xbcb6, 0xe5bb, 0xbcb3, 0xbcc3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbed8, 0xbed9, 0xe9a9, 0xbee2, 0xbedf, 0x003f, 0xbed6, 0xbedd, 0xe9ab, 0xbedb, 0xbed5, 0x003f, 0xbedc, 0x003f, 0xe9a8, 0xc0bb, 0xbed7, 0x003f, 0xbede, 0xc0ba, 0xe9a7, 0xe9a6, 0x003f, 0xbee0, 0x003f, 0xbee1, 0x003f, 0xe9a5, 0xe9a4, 0xc0bc, 0xe9ae, 0xbeda, 0xe9ac, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0bd, 0x003f, 0xc0c2, 0xecea, 0xecec, 0x003f, 0xc0bf, 0x003f, 0xeced, 0xece9, 0x003f, 0xeceb, 0xc0c0, 0xc0c3, 0x003f, 0xece8, 0xc0be, 0xc0c1, 0xc259, 0xe9ad, 0xc258, 0x003f, 0x003f, 0xc25e, 0xefd4, 0x003f, 0xc25c, 0xc25d, 0xefd7, 0xefd3, 0xc25a, 0xefd1, /* 0x6500 .. 0x65ff */ 0xc36b, 0xefd5, 0x003f, 0xefd6, 0xefd2, 0x003f, 0xc25b, 0xf242, 0x003f, 0xf245, 0x003f, 0x003f, 0xf246, 0xf244, 0xf247, 0xc36c, 0xf243, 0x003f, 0x003f, 0xf44e, 0xc464, 0xf44d, 0xf44c, 0xf44b, 0xc463, 0xc465, 0x003f, 0xf5cd, 0xc4e2, 0xc4e1, 0x003f, 0x003f, 0xf6e1, 0xf6e0, 0xf6e3, 0xc5cb, 0xc575, 0xf7dd, 0xf6e2, 0x003f, 0x003f, 0xf7dc, 0xc5cd, 0xc5cc, 0xc5f3, 0xf8a9, 0xf8ef, 0xa4e4, 0x003f, 0x003f, 0xd972, 0xe9af, 0x003f, 0x003f, 0xa6ac, 0xcaf7, 0xa7f1, 0xa7ef, 0x003f, 0xa7f0, 0x003f, 0xccc1, 0xa9f1, 0xac46, 0x003f, 0xcee7, 0x003f, 0xcee8, 0x003f, 0xac47, 0xd1ce, 0x003f, 0xaec4, 0xaec5, 0xd1cd, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1d3, 0x003f, 0xb1cf, 0x003f, 0xd5a7, 0xb1d6, 0xb1d5, 0xb1ce, 0xb1d1, 0xb1d4, 0xb1d0, 0x003f, 0x003f, 0xd976, 0xb1cd, 0xb4af, 0x003f, 0x003f, 0x003f, 0xb4b1, 0xb4b2, 0xd975, 0xd978, 0xb4b0, 0xd973, 0xd977, 0x003f, 0xd974, 0x003f, 0xb771, 0x003f, 0x003f, 0xddbc, 0x003f, 0x003f, 0xba56, 0xe1f4, 0xbee3, 0xbcc4, 0xe5bd, 0xbcc5, 0xbcc6, 0xe5bf, 0xe5be, 0xe5c0, 0xe9b1, 0x003f, 0x003f, 0xe9b0, 0xecef, 0xecee, 0xc0c4, 0xc0c5, 0xf248, 0x003f, 0x003f, 0xa4e5, 0x003f, 0x003f, 0x003f, 0x003f, 0xd979, 0x003f, 0x003f, 0x003f, 0xb4b4, 0xb4b3, 0xddbd, 0x003f, 0xefd8, 0xc4e3, 0xf7de, 0xa4e6, 0x003f, 0xaec6, 0x003f, 0xb1d8, 0xb1d7, 0xd97a, 0xd97b, 0xb772, 0xe1f5, 0xba57, 0xe9b2, 0x003f, 0xa4e7, 0xa5b8, 0x003f, 0xa9f2, 0xccc2, 0x003f, 0xcee9, 0xac48, 0xb1d9, 0x003f, 0xd97c, 0xb4b5, 0xb773, 0x003f, 0xe5c1, 0xe5c2, 0x003f, 0x003f, 0xecf0, 0xc25f, 0xf8f0, 0xa4e8, 0x003f, 0xccc3, 0xa9f3, 0xac49, 0x003f, 0xceea, 0x003f, 0xaec7, 0xd1d2, 0xd1d0, 0xd1d1, 0xaec8, 0xd1cf, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1db, 0xb1dc, 0xd5a8, 0xb1dd, 0xb1da, 0xd97d, 0x003f, 0xd97e, 0xddbe, 0x003f, 0x003f, 0xba59, 0xba58, 0x003f, 0x003f, 0xecf1, 0xefd9, 0x003f, 0xf24a, 0xf249, 0xf44f, 0x003f, 0xc95e, 0xac4a, 0x003f, 0x003f, 0xa4e9, 0xa5b9, 0x003f, 0xa6ae, 0xa6ad, 0x003f, 0x003f, 0xa6af, 0xa6b0, 0xc9ee, 0xc9ed, 0xcaf8, 0xa7f2, 0xcafb, 0xcafa, 0xcaf9, 0xcafc, 0x003f, 0x003f, 0x003f, 0x003f, 0xa9f4, 0xccc9, 0xccc5, 0xccce, 0x003f, 0x003f, /* 0x6600 .. 0x66ff */ 0xa9fb, 0x003f, 0xa9f9, 0xccca, 0xccc6, 0xcccd, 0xa9f8, 0xaa40, 0xccc8, 0xccc4, 0xa9fe, 0xcccb, 0xa9f7, 0xcccc, 0xa9fa, 0xa9fc, 0xccd0, 0xcccf, 0xccc7, 0xa9f6, 0xa9f5, 0xa9fd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xceef, 0xcef5, 0x003f, 0xac50, 0xac4d, 0xceec, 0xcef1, 0x003f, 0xac53, 0xac4b, 0xcef0, 0xac4e, 0xac51, 0x003f, 0x003f, 0xcef3, 0x003f, 0xac4c, 0xcef8, 0xac4f, 0x003f, 0xac52, 0xceed, 0xcef2, 0xcef6, 0xceee, 0xceeb, 0x003f, 0x003f, 0xcef7, 0xcef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaed0, 0xaec9, 0xaecc, 0x003f, 0xaecf, 0x003f, 0xd1d5, 0x003f, 0xaeca, 0xd1d3, 0x003f, 0xaece, 0x003f, 0x003f, 0xaecb, 0x003f, 0xd1d6, 0xaecd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5ac, 0xb1df, 0xd5ab, 0xd5ad, 0xb1de, 0xb1e3, 0xd1d4, 0x003f, 0xd5aa, 0xd5ae, 0x003f, 0xb1e0, 0xd5a9, 0xb1e2, 0x003f, 0xb1e1, 0x003f, 0xd9a7, 0x003f, 0xd9a2, 0x003f, 0xb4b6, 0xb4ba, 0xb4b7, 0xd9a5, 0xd9a8, 0x003f, 0xb4b8, 0x003f, 0xb4b9, 0xb4be, 0xddc7, 0xd9a6, 0xb4bc, 0xd9a3, 0xd9a1, 0x003f, 0xb4bd, 0x003f, 0xd9a4, 0x003f, 0x003f, 0x003f, 0xb779, 0x003f, 0xddbf, 0xb776, 0xb777, 0xb775, 0xddc4, 0xddc3, 0xddc0, 0xb77b, 0x003f, 0x003f, 0xddc2, 0xb4bb, 0x003f, 0x003f, 0xddc6, 0xddc1, 0xb778, 0xb774, 0xb77a, 0xddc5, 0x003f, 0x003f, 0x003f, 0xba5c, 0x003f, 0xe1f8, 0xe1f7, 0xe1f6, 0xba5a, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xba5b, 0xe5c5, 0xe5c8, 0xbcc8, 0x003f, 0x003f, 0xbcc7, 0xe5c9, 0xe5c4, 0xbcca, 0xe5c6, 0x003f, 0xbcc9, 0xe5c3, 0x003f, 0xe5c7, 0xbee9, 0xbee6, 0xe9bb, 0xe9ba, 0x003f, 0xe9b9, 0xe9b4, 0x003f, 0xe9b5, 0x003f, 0x003f, 0x003f, 0xbee7, 0x003f, 0xbee4, 0xbee8, 0xe9b3, 0xbee5, 0xe9b6, 0xe9b7, 0xe9bc, 0x003f, 0x003f, 0xe9b8, 0x003f, 0x003f, 0xecf2, 0x003f, 0x003f, 0x003f, 0xc0c7, 0x003f, 0xefdc, 0xc0c6, 0xefda, 0xefdb, 0xc260, 0xc36e, 0xf24b, 0x003f, 0xc36d, 0x003f, 0x003f, 0xf451, 0xf452, 0x003f, 0xc466, 0x003f, 0xf450, 0xc4e4, 0x003f, 0xf7df, 0xc5ce, 0xf8aa, 0xf8ab, 0x003f, 0xa4ea, 0x003f, 0xa6b1, 0xa6b2, 0xa7f3, 0x003f, 0xccd1, 0xac54, 0xaed1, 0xb1e4, 0x003f, 0x003f, 0xb0d2, 0x003f, 0xb4bf, 0xb4c0, /* 0x6700 .. 0x67ff */ 0xb3cc, 0xd9a9, 0x003f, 0xb77c, 0xe1fa, 0xe1f9, 0x003f, 0x003f, 0xa4eb, 0xa6b3, 0xccd2, 0xaa42, 0x003f, 0xaa41, 0x003f, 0xcef9, 0xcefa, 0x003f, 0xd1d7, 0xd1d8, 0xaed2, 0xaed3, 0x003f, 0xaed4, 0xd5af, 0x003f, 0x003f, 0xb1e6, 0x003f, 0xb4c2, 0x003f, 0xb4c1, 0xddc8, 0xdf7a, 0xe1fb, 0xe9bd, 0x003f, 0x003f, 0xc261, 0xc467, 0xa4ec, 0x003f, 0xa5bc, 0xa5bd, 0xa5bb, 0xa5be, 0xa5ba, 0x003f, 0x003f, 0xa6b6, 0x003f, 0xc9f6, 0xa6b5, 0xa6b7, 0x003f, 0x003f, 0xc9f1, 0xc9f0, 0xc9f3, 0xc9f2, 0xc9f5, 0xa6b4, 0xc9ef, 0xc9f4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcafd, 0xa7fd, 0xcafe, 0xcb43, 0xa7fc, 0x003f, 0xcb47, 0xcb42, 0xcb45, 0xa7f5, 0xa7f6, 0xa7f7, 0xa7f8, 0x003f, 0xa840, 0x003f, 0xcb41, 0xa7fa, 0xa841, 0x003f, 0xcb40, 0xcb46, 0x003f, 0xa7f9, 0xcb44, 0xa7fb, 0xa7f4, 0xa7fe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaa57, 0x003f, 0xccd4, 0xaa43, 0x003f, 0xaa4d, 0xaa4e, 0xaa46, 0xaa58, 0xaa48, 0xccdc, 0xaa53, 0xccd7, 0xaa49, 0xcce6, 0xcce7, 0xccdf, 0xccd8, 0xaa56, 0xcce4, 0xaa51, 0xaa4f, 0x003f, 0xcce5, 0x003f, 0xcce3, 0xccdb, 0xccd3, 0xccda, 0xaa4a, 0x003f, 0xaa50, 0x003f, 0xaa44, 0xccde, 0xccdd, 0xccd5, 0x003f, 0xaa52, 0xcce1, 0xccd6, 0xaa55, 0xcce8, 0xaa45, 0x003f, 0xaa4c, 0xccd9, 0xcce2, 0xaa54, 0x003f, 0xaa47, 0xaa4b, 0x003f, 0xcce0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf5b, 0xac5c, 0xac69, 0x003f, 0xcf56, 0xcf4c, 0xac62, 0xcf4a, 0xac5b, 0xcf45, 0xac65, 0xcf52, 0xcefe, 0xcf41, 0x003f, 0x003f, 0x003f, 0x003f, 0xcf44, 0xcefb, 0xcf51, 0xcf61, 0xac60, 0xcf46, 0xcf58, 0x003f, 0xcefd, 0xcf5f, 0xcf60, 0xcf63, 0xcf5a, 0xcf4b, 0xcf53, 0xac66, 0xac59, 0xac61, 0xac6d, 0xac56, 0xac58, 0x003f, 0x003f, 0x003f, 0xcf43, 0xac6a, 0xac63, 0xcf5d, 0xcf40, 0xac6c, 0xac67, 0xcf49, 0x003f, 0x003f, 0xac6b, 0xcf50, 0xcf48, 0xac64, 0xcf5c, 0xcf54, 0x003f, 0xac5e, 0xcf62, 0xcf47, 0xac5a, 0xcf59, 0xcf4f, 0xac5f, 0xcf55, 0xac57, 0xcefc, 0xac68, 0xaee3, 0xac5d, 0xcf4e, 0xcf4d, 0xcf42, 0x003f, 0xcf5e, 0x003f, 0xcf57, 0x003f, 0x003f, 0xac55, /* 0x6800 .. 0x68ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd1ec, 0xaeea, 0xd1ed, 0x003f, 0xd1e1, 0xaedf, 0xaeeb, 0x003f, 0xd1da, 0x003f, 0xd1e3, 0xd1eb, 0x003f, 0xd1d9, 0xd1f4, 0xaed5, 0x003f, 0x003f, 0x003f, 0xd1f3, 0xd1ee, 0x003f, 0xd1ef, 0xaedd, 0xaee8, 0xd1e5, 0x003f, 0xd1e6, 0xd1f0, 0xd1e7, 0x003f, 0xd1e2, 0xd1dc, 0xd1dd, 0xd1ea, 0xd1e4, 0x003f, 0x003f, 0xaed6, 0xaeda, 0xd1f2, 0xd1de, 0xaee6, 0xaee2, 0x003f, 0x003f, 0xaee5, 0xaeec, 0xaedb, 0xaee7, 0xd1e9, 0xaee9, 0xaed8, 0x003f, 0xaed7, 0xd1db, 0x003f, 0xd1df, 0xaee0, 0xd1f1, 0xd1e8, 0xd1e0, 0xaee4, 0xaee1, 0x003f, 0xaed9, 0xaedc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd5c4, 0x003f, 0xd5b4, 0xd5b5, 0xd5b9, 0x003f, 0xd5c8, 0xd5c5, 0x003f, 0xd5be, 0xd5bd, 0xb1ed, 0xd5c1, 0xd5d0, 0xd5b0, 0x003f, 0xd5d1, 0xd5c3, 0xd5d5, 0xd5c9, 0xb1ec, 0xd5c7, 0xb1e7, 0xb1fc, 0xb1f2, 0x003f, 0xb1f6, 0xb1f5, 0xd5b1, 0x003f, 0xd5ce, 0xd5d4, 0xd5cc, 0xd5d3, 0x003f, 0x003f, 0xd5c0, 0xd5b2, 0xd5d2, 0xd5c2, 0xb1ea, 0xb1f7, 0x003f, 0xd5cb, 0xb1f0, 0x003f, 0x003f, 0x003f, 0xd5ca, 0xd5b3, 0xb1f8, 0x003f, 0xb1fa, 0xd5cd, 0xb1fb, 0xb1e9, 0xd5ba, 0xd5cf, 0x003f, 0x003f, 0xb1ef, 0xb1f9, 0xd5bc, 0xd5c6, 0xd5b7, 0xd5bb, 0xb1f4, 0xd5b6, 0xb1e8, 0xb1f1, 0xb1ee, 0xd5bf, 0xaede, 0xd9c0, 0xb1eb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb1f3, 0x003f, 0xd9c3, 0xd9d9, 0xd9ce, 0xb4d6, 0x003f, 0xb4d1, 0xd9bd, 0xb4d2, 0xd9cd, 0x003f, 0xd9c6, 0xd9d3, 0xb4ce, 0xd9ab, 0xd9d5, 0xb4c4, 0xd9b3, 0xb4c7, 0xb4c6, 0x003f, 0xb4d7, 0x003f, 0xd9ad, 0xd9cf, 0xd9d0, 0xb4c9, 0xb4c5, 0xd9bb, 0x003f, 0xb4d0, 0xd9b6, 0x003f, 0xd9d1, 0xb4cc, 0xd9c9, 0xd9d6, 0xd9b0, 0xd9b5, 0xd9af, 0x003f, 0xb4cb, 0xd9c2, 0xddde, 0xd9b1, 0xb4cf, 0xd9ba, 0xd9d2, 0xb4ca, 0xd9b7, 0xd9b4, 0xd9c5, 0xb4cd, 0xb4c3, 0xb4d9, 0xd9c8, 0xd9c7, 0x003f, 0x003f, /* 0x6900 .. 0x69ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ac, 0xb4c8, 0xd9d4, 0xd9bc, 0xd9be, 0x003f, 0xd9cb, 0xd9ca, 0xd9aa, 0xb4d3, 0xb4d5, 0xd9b2, 0xd9b9, 0xd9c1, 0xb4d4, 0xd9b8, 0xd9c4, 0xd9d7, 0x003f, 0xd9cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9d8, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ae, 0x003f, 0x003f, 0x003f, 0x003f, 0xddf2, 0xb7a6, 0x003f, 0xddf0, 0xdddb, 0xdde0, 0xddd9, 0x003f, 0xddec, 0xddcb, 0xddd2, 0x003f, 0xddea, 0xddf4, 0xdddc, 0x003f, 0xddcf, 0xdde2, 0xdde7, 0xddd3, 0x003f, 0xdde4, 0xddd0, 0x003f, 0x003f, 0xddd7, 0xddd8, 0xb7a8, 0xddeb, 0xdde9, 0x003f, 0xddcc, 0xddee, 0x003f, 0xddef, 0xddf1, 0xb7ac, 0xb7a4, 0x003f, 0xd5b8, 0xddd4, 0xdde6, 0xddd5, 0xb7a1, 0xb7b1, 0xdded, 0xb7af, 0xb7ab, 0xddca, 0xb7a3, 0x003f, 0xddcd, 0xb7b0, 0x003f, 0xdddd, 0xddc9, 0x003f, 0xb7a9, 0xdde1, 0xddd1, 0xb7aa, 0xddda, 0xb77e, 0xb4d8, 0xdde3, 0xd9bf, 0xddce, 0x003f, 0x003f, 0xdde8, 0xb7a5, 0xdde5, 0xb7a2, 0xdddf, 0xb7ad, 0xddd6, 0xddf3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7a7, 0xdec6, 0x003f, 0x003f, 0xb7ae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe24a, 0xe248, 0x003f, 0xe25e, 0xe246, 0x003f, 0xe258, 0xb77d, 0xba5f, 0xe242, 0xe25d, 0x003f, 0xe247, 0xe255, 0xba64, 0xba5d, 0x003f, 0xe25b, 0x003f, 0xe240, 0xe25a, 0x003f, 0xba6f, 0xe251, 0xe261, 0xba6d, 0xe249, 0xba5e, 0xe24b, 0xe259, 0xba67, 0xe244, 0xba6b, 0xba61, 0xe24d, 0xe243, 0xe1fc, 0x003f, 0xe257, 0xba68, 0xe260, 0xe1fd, 0xba65, 0x003f, 0xe253, 0x003f, 0xba66, 0xe245, 0xe250, 0xe24c, 0xe24e, 0x003f, 0xba60, 0xe25f, 0xba6e, 0xe24f, 0x003f, 0xe262, 0x003f, 0x003f, 0xe1fe, 0xe254, 0xba63, 0xba6c, 0xba6a, 0xe241, 0xe256, 0xba69, 0x003f, 0x003f, 0xba62, 0xe252, 0x003f, 0x003f, 0x003f, 0x003f, 0xe25c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe5d5, 0x003f, 0xe5d1, 0xe5cd, 0xe5e1, 0xe5de, 0xbccd, 0x003f, 0x003f, 0xe5e5, 0xe5d4, 0xbcd8, 0xe5db, 0x003f, 0x003f, 0xe5d0, 0xe5da, 0xbcd5, 0xe5ee, 0x003f, 0xe5eb, 0xe5dd, 0xe5ce, 0x003f, 0x003f, 0xe5e2, 0xe5e4, 0xbcd1, 0xe5d8, 0xe5d3, /* 0x6a00 .. 0x6aff */ 0xe5ca, 0xbcce, 0xbcd6, 0x003f, 0xe5e7, 0xbcd7, 0xe5cb, 0xe5ed, 0xe5e0, 0xe5e6, 0xbcd4, 0x003f, 0x003f, 0xe5e3, 0x003f, 0xe5ea, 0x003f, 0xbcd9, 0x003f, 0xbcd3, 0xe5dc, 0xe5cf, 0xe5ef, 0xe5cc, 0xe5e8, 0xbcd0, 0x003f, 0xe5d6, 0x003f, 0xe5d7, 0xbccf, 0xbccc, 0xe5d2, 0xbcd2, 0x003f, 0xbccb, 0x003f, 0xe5e9, 0xe5ec, 0xe5d9, 0xe9ca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c2, 0x003f, 0xe9be, 0xbef6, 0x003f, 0x003f, 0xbeeb, 0xbef0, 0xbeec, 0xe9cc, 0xe9d7, 0xbeea, 0xe9c4, 0xe9cd, 0xe5df, 0xe9ce, 0x003f, 0x003f, 0xbef1, 0x003f, 0xe9dd, 0xbef5, 0xbef8, 0xe9c0, 0x003f, 0xbef4, 0x003f, 0xe9db, 0xe9dc, 0xe9d2, 0xe9d1, 0xe9c9, 0x003f, 0x003f, 0xe9d3, 0xe9da, 0xe9d9, 0x003f, 0xbeef, 0xbeed, 0xe9cb, 0xe9c8, 0x003f, 0xe9c5, 0xe9d8, 0xbef7, 0xe9d6, 0xbef3, 0xbef2, 0x003f, 0xe9d0, 0x003f, 0xe9bf, 0xe9c1, 0xe9c3, 0xe9d5, 0xe9cf, 0xbeee, 0x003f, 0xe9c6, 0x003f, 0xe9d4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9c7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0cf, 0xed45, 0xc0c8, 0xecf5, 0x003f, 0xed41, 0xc0ca, 0xed48, 0x003f, 0xecfc, 0x003f, 0xecf7, 0x003f, 0x003f, 0xed49, 0xecf3, 0xecfe, 0x003f, 0xc0d1, 0xed44, 0xed4a, 0xecfd, 0xc0c9, 0xed40, 0xecf4, 0xc0d0, 0x003f, 0x003f, 0xed47, 0xecf9, 0xc0cc, 0x003f, 0xecfb, 0xecf8, 0xc0d2, 0xecfa, 0xc0cb, 0xc0ce, 0xed43, 0xecf6, 0xed46, 0x003f, 0xed42, 0x003f, 0x003f, 0x003f, 0xc263, 0xefe7, 0xc268, 0xc269, 0x003f, 0x003f, 0x003f, 0xc262, 0xefe6, 0x003f, 0xefe3, 0xefe4, 0xc266, 0xefde, 0xefe2, 0xc265, 0x003f, 0xefdf, 0x003f, 0x003f, 0x003f, 0x003f, 0xc267, 0xc264, 0x003f, 0xefdd, 0xefe1, 0xefe5, 0x003f, 0x003f, 0x003f, 0xf251, 0xf24e, 0xf257, 0x003f, 0xf256, 0xf254, 0xf24f, 0x003f, 0xc372, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf250, 0xc371, 0xc0cd, 0xf253, 0xc370, 0xf258, 0xf252, 0xf24d, 0xefe0, 0x003f, 0x003f, 0x003f, 0xc36f, 0x003f, 0xf24c, 0xf456, 0x003f, 0xf455, 0xf255, 0xc468, 0x003f, 0xf459, 0xf45a, 0xf454, 0xf458, 0x003f, 0xf453, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5d1, 0xf457, 0xc4e7, 0xc4e5, 0xf5cf, 0x003f, 0x003f, 0x003f, /* 0x6b00 .. 0x6bff */ 0xf5d2, 0x003f, 0xf5ce, 0xf5d0, 0xc4e6, 0x003f, 0x003f, 0x003f, 0xf6e5, 0xf6e6, 0xc576, 0xf6e4, 0x003f, 0x003f, 0x003f, 0xf7e2, 0xc5cf, 0xf7e0, 0xf7e1, 0xf8ac, 0x003f, 0x003f, 0xc656, 0xf8f3, 0xf8f1, 0xf8f2, 0xf8f4, 0x003f, 0x003f, 0x003f, 0xf9bb, 0x003f, 0xa4ed, 0xa6b8, 0x003f, 0xaa59, 0x003f, 0xcce9, 0x003f, 0x003f, 0xcf64, 0x003f, 0x003f, 0x003f, 0xd1f5, 0xd1f7, 0x003f, 0xd1f6, 0x003f, 0xd1f8, 0xb1fd, 0xd5d7, 0xd1f9, 0x003f, 0xd5d6, 0xd5d8, 0xd5d9, 0xd9da, 0xb4db, 0xd9db, 0xd9dd, 0xb4dc, 0xb4da, 0xd9dc, 0x003f, 0xddfa, 0xddf8, 0xddf7, 0x003f, 0xddf6, 0xddf5, 0xb7b2, 0xddf9, 0xba70, 0xe263, 0xe265, 0xba71, 0xe264, 0xbcdb, 0x003f, 0xbcda, 0xe5f0, 0x003f, 0x003f, 0xe9df, 0xe9de, 0xe9e0, 0x003f, 0x003f, 0xbef9, 0x003f, 0xed4b, 0xc0d3, 0x003f, 0xefe8, 0xc26a, 0xf259, 0xc577, 0xa4ee, 0xa5bf, 0xa6b9, 0xa842, 0xaa5a, 0xaa5b, 0x003f, 0x003f, 0xac6e, 0x003f, 0x003f, 0xd1fa, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7b3, 0x003f, 0x003f, 0x003f, 0xe6d1, 0xbefa, 0xc26b, 0xa4ef, 0x003f, 0xa6ba, 0x003f, 0x003f, 0xcceb, 0xaa5c, 0xccea, 0x003f, 0xcf65, 0xac6f, 0xcf66, 0x003f, 0xac70, 0x003f, 0xd1fc, 0xaeee, 0xaeed, 0x003f, 0xd5de, 0xd5dc, 0xd5dd, 0xd5db, 0x003f, 0xd5da, 0x003f, 0x003f, 0xd9de, 0xd9e1, 0xb4de, 0xd9df, 0xb4dd, 0xd9e0, 0x003f, 0xddfb, 0x003f, 0x003f, 0xe266, 0xe267, 0xe268, 0x003f, 0xe5f3, 0xe5f2, 0xbcdc, 0xe5f1, 0xe5f4, 0xe9e1, 0x003f, 0x003f, 0xe9e2, 0xe9e3, 0x003f, 0xed4c, 0xc0d4, 0xc26c, 0xf25a, 0x003f, 0xc4e8, 0xc95f, 0x003f, 0xac71, 0xcf67, 0xaeef, 0x003f, 0x003f, 0xb1fe, 0x003f, 0xb4df, 0xd9e2, 0x003f, 0xb7b5, 0xb7b4, 0x003f, 0x003f, 0xe269, 0xe26a, 0xbcdd, 0xbcde, 0xe9e5, 0xe9e4, 0xefe9, 0xf7e3, 0xa4f0, 0xc960, 0xa5c0, 0x003f, 0xa843, 0xcb48, 0x003f, 0xac72, 0xb7b6, 0xa4f1, 0x003f, 0xcf68, 0xac73, 0xcf69, 0x003f, 0xc0d5, 0xa4f2, 0x003f, 0x003f, 0xccec, 0x003f, 0xcf6a, 0x003f, 0xd242, 0xd241, 0xd1fe, 0x003f, 0xd1fd, 0xd243, 0xd240, 0x003f, 0x003f, 0xb240, 0xb241, 0x003f, 0x003f, 0xb4e0, 0xd9e3, 0x003f, 0xd9e4, 0xd9e5, 0x003f, 0x003f, 0x003f, 0xde41, 0xde42, 0xde40, 0x003f, 0xddfd, 0xddfe, 0xb7b7, 0xe26b, 0xe5f7, /* 0x6c00 .. 0x6cff */ 0xe5f6, 0xe5f5, 0xe5f8, 0xe9e7, 0xe9e6, 0xbefb, 0xe9e8, 0x003f, 0xc0d6, 0xed4d, 0x003f, 0xefea, 0xf25b, 0xf6e7, 0x003f, 0xa4f3, 0xa5c2, 0xa5c1, 0x003f, 0xaa5d, 0xc961, 0xc97e, 0xa6bb, 0x003f, 0xc9f7, 0xcb49, 0xcb4a, 0xaa5e, 0x003f, 0xcced, 0x003f, 0xac74, 0xcf6b, 0xcf6c, 0x003f, 0xaef0, 0xaef4, 0xd244, 0xaef3, 0xaef1, 0xaef2, 0x003f, 0xd5df, 0xb242, 0xb4e3, 0x003f, 0xb4e1, 0xb4e2, 0xd9e6, 0x003f, 0x003f, 0xba72, 0xa4f4, 0x003f, 0xc9a1, 0x003f, 0xa5c3, 0x003f, 0x003f, 0xc9a4, 0x003f, 0x003f, 0xa5c6, 0xc9a3, 0xa5c5, 0xa5c4, 0xa844, 0xc9a2, 0x003f, 0x003f, 0xc9f8, 0x003f, 0x003f, 0x003f, 0xc9fc, 0xc9fe, 0xca40, 0xa6c5, 0xa6c6, 0xc9fb, 0xa6c1, 0x003f, 0xc9f9, 0x003f, 0xc9fd, 0xa6c2, 0x003f, 0xa6bd, 0x003f, 0xa6be, 0x003f, 0xa6c4, 0xc9fa, 0xa6bc, 0xa845, 0xa6bf, 0xa6c0, 0xa6c3, 0x003f, 0x003f, 0x003f, 0xcb5b, 0xcb59, 0xcb4c, 0xa851, 0xcb53, 0xa84c, 0xcb4d, 0x003f, 0xcb55, 0x003f, 0xcb52, 0xa84f, 0xcb51, 0xa856, 0xcb5a, 0xa858, 0x003f, 0xa85a, 0x003f, 0xcb4b, 0x003f, 0xa84d, 0xcb5c, 0x003f, 0xa854, 0xa857, 0x003f, 0xcd45, 0xa847, 0xa85e, 0xa855, 0xcb4e, 0xa84a, 0xa859, 0xcb56, 0xa848, 0xa849, 0xcd43, 0xcb4f, 0xa850, 0xa85b, 0xcb5d, 0xcb50, 0xa84e, 0x003f, 0xa853, 0xccee, 0xa85c, 0xcb57, 0xa852, 0x003f, 0xa85d, 0xa846, 0xcb54, 0xa84b, 0xcb58, 0xcd44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaa6a, 0xaa7a, 0xccf5, 0xaa71, 0x003f, 0xcd4b, 0xaa62, 0x003f, 0xaa65, 0xcd42, 0x003f, 0xccf3, 0xccf7, 0xaa6d, 0xaa6f, 0xccfa, 0xaa76, 0xaa68, 0xaa66, 0xaa67, 0xaa75, 0xcd47, 0xaa70, 0xccf9, 0xccfb, 0xaa6e, 0xaa73, 0xccfc, 0xcd4a, 0x003f, 0xac75, 0xaa79, 0x003f, 0xaa63, 0xcd49, 0x003f, 0xcd4d, 0xccf8, 0xcd4f, 0xcd40, 0xaa6c, 0xccf4, 0xaa6b, 0xaa7d, 0xaa72, 0x003f, 0xccf2, 0xcf75, 0xaa78, 0xaa7c, 0xcd41, 0xcd46, 0x003f, 0xaa7e, 0xaa77, 0xaa69, 0xaa5f, 0x003f, 0xaa64, 0x003f, 0xccf6, 0xaa60, 0xcd4e, 0x003f, 0xccf0, 0xccef, 0xccfd, 0xccf1, 0xaa7b, 0xaef5, 0xaa74, 0xccfe, 0xaa61, 0x003f, 0xaca6, 0x003f, 0x003f, 0x003f, 0xcd4c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x6d00 .. 0x6dff */ 0xcf7c, 0xcfa1, 0x003f, 0xcfa4, 0xcf77, 0x003f, 0x003f, 0xcfa7, 0xcfaa, 0xcfac, 0xcf74, 0xac76, 0xac7b, 0xd249, 0xacad, 0xcfa5, 0xcfad, 0xcf7b, 0xcf73, 0x003f, 0x003f, 0x003f, 0xd264, 0xac7e, 0xcfa2, 0xcf78, 0xcf7a, 0xaca5, 0x003f, 0xcf7d, 0xac7d, 0xcf70, 0xcfa8, 0x003f, 0xcfab, 0x003f, 0x003f, 0xac7a, 0x003f, 0xaca8, 0xcf6d, 0xacaa, 0xac78, 0xacae, 0xcfa9, 0xcf6f, 0xacab, 0xd25e, 0xcd48, 0xac7c, 0xac77, 0xcf76, 0xcf6e, 0xacac, 0xaca4, 0xcfa3, 0xaca9, 0xaca7, 0xcf79, 0xaca1, 0xcf71, 0xaca2, 0xaca3, 0xcf72, 0xcfa6, 0xac79, 0xcf7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd24c, 0xaefd, 0xaf43, 0x003f, 0x003f, 0x003f, 0xd255, 0xd25b, 0xd257, 0xd24a, 0xd24d, 0xd246, 0xd247, 0xaf4a, 0xaefa, 0xd256, 0xd25f, 0xaf45, 0xaef6, 0x003f, 0xaf40, 0xd24e, 0xaf42, 0xd24f, 0xd259, 0x003f, 0x003f, 0x003f, 0xaf44, 0xd268, 0xd248, 0xaefc, 0xaefb, 0xaf48, 0xd245, 0xd266, 0xd25a, 0xd267, 0xd261, 0xd253, 0xd262, 0x003f, 0xd25c, 0xd265, 0xd263, 0xaf49, 0xd254, 0xaef9, 0xaef8, 0xaf41, 0xaf47, 0xd260, 0xaf46, 0xd251, 0xb243, 0x003f, 0xd269, 0xd250, 0xd24b, 0xaefe, 0xaf4b, 0xaef7, 0x003f, 0xd258, 0xd25d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb265, 0xd5e1, 0xd5e5, 0x003f, 0xb252, 0xb250, 0x003f, 0x003f, 0xb247, 0xd5e3, 0xd5e2, 0xb25b, 0x003f, 0xd5e8, 0xb255, 0x003f, 0xd5fa, 0xd647, 0xb244, 0xd5f7, 0xd5f0, 0xb267, 0xd5e0, 0x003f, 0xd5fc, 0x003f, 0xb264, 0xb258, 0xb263, 0xb24e, 0xd5ec, 0xd5fe, 0xd5f6, 0xb24f, 0xb249, 0xd645, 0x003f, 0xd5fd, 0xd640, 0xb251, 0xb259, 0xd642, 0xd5ea, 0xd5fb, 0xd5ef, 0xd644, 0xb25e, 0xb246, 0xb25c, 0xd5f4, 0xd5f2, 0xd5f3, 0xb253, 0xd5ee, 0xd5ed, 0xb248, 0xd5e7, 0xd646, 0xb24a, 0xd5f1, 0xb268, 0x003f, 0xb262, 0xd5e6, 0xb25f, 0xb25d, 0xb266, 0xd5f8, 0xb261, 0xd252, 0xd5f9, 0xb260, 0xd641, 0xb245, 0xd5f5, 0xb257, 0xd5e9, 0xb256, 0x003f, 0xb254, 0xb24c, 0xb24b, 0xd9e7, 0xd643, 0x003f, 0x003f, /* 0x6e00 .. 0x6eff */ 0xd5eb, 0x003f, 0x003f, 0xd9fc, 0x003f, 0xb24d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb541, 0xb25a, 0xb4ee, 0xd9f6, 0xb4fc, 0x003f, 0xd9ea, 0xb4eb, 0xb4e7, 0xda49, 0xb4ed, 0xb4f1, 0xb4ec, 0xb4f5, 0xda4d, 0xda44, 0x003f, 0x003f, 0xd9f1, 0xb4fa, 0xb4f4, 0xd9fd, 0xb4e4, 0xda4a, 0xda43, 0xb4e8, 0xd9f7, 0xb4f7, 0xda55, 0xda56, 0x003f, 0xb4e5, 0xda48, 0xb4f9, 0xd9fb, 0xd9ed, 0xd9ee, 0xb4fd, 0xd9f2, 0xd9f9, 0xd9f3, 0x003f, 0xb4fb, 0xb544, 0xd9ef, 0xd9e8, 0xd9e9, 0x003f, 0xd9eb, 0xb4ea, 0xd9f8, 0x003f, 0xb4f8, 0xb542, 0x003f, 0x003f, 0xd9fa, 0xda53, 0xda4b, 0xb4e6, 0xda51, 0xb4f2, 0x003f, 0xb4f0, 0x003f, 0xda57, 0xb4ef, 0xda41, 0xd9f4, 0xd9fe, 0xb547, 0xda45, 0xda42, 0xd9f0, 0xb543, 0xda4f, 0xda4c, 0xda54, 0xb4e9, 0xda40, 0xb546, 0x003f, 0xda47, 0x003f, 0x003f, 0xb4f3, 0xb4f6, 0x003f, 0xda46, 0xb545, 0xd9f5, 0xd5e4, 0x003f, 0x003f, 0xda50, 0xda4e, 0xda52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd9ec, 0xb540, 0x003f, 0x003f, 0x003f, 0xde61, 0xde60, 0xde46, 0xb7bd, 0x003f, 0xde5f, 0xde49, 0xde4a, 0x003f, 0xb7c7, 0xde68, 0xb7c2, 0xde5e, 0x003f, 0xde43, 0xb7c8, 0xb7be, 0xde52, 0xde48, 0xde4b, 0xde63, 0xb7b8, 0xde6a, 0xde62, 0xb7c1, 0xde57, 0xb7cc, 0x003f, 0x003f, 0xb7cb, 0xb7c5, 0x003f, 0x003f, 0xde69, 0xb7b9, 0xde55, 0xde4c, 0xde59, 0xde65, 0xb7cd, 0x003f, 0xb7bb, 0xde54, 0x003f, 0xde4d, 0xb7c4, 0x003f, 0xb7c3, 0xde50, 0xde5a, 0xde64, 0xde47, 0xde51, 0xb7bc, 0xde5b, 0xb7c9, 0xb7c0, 0xde4e, 0xb7bf, 0xde45, 0xde53, 0xde67, 0xb4fe, 0xbab0, 0xde56, 0xe26c, 0xde58, 0xde66, 0xb7c6, 0xde4f, 0xb7ba, 0xb7ca, 0xbcf0, 0xde44, 0x003f, 0xde5d, 0x003f, 0x003f, 0x003f, 0xde5c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2aa, 0xbaad, 0xe27d, 0xe2a4, 0xbaa2, 0x003f, 0xe26e, 0xbaaf, 0x003f, 0xba77, 0xe26d, 0xe2b0, 0xbab1, 0xe271, 0xe2a3, 0x003f, 0xe273, 0xe2b3, 0xe2af, 0xba75, 0xbaa1, /* 0x6f00 .. 0x6fff */ 0xe653, 0xbaae, 0xba7d, 0xe26f, 0x003f, 0xe2ae, 0xbaa3, 0xe2ab, 0xe2b8, 0xe275, 0xe27e, 0x003f, 0x003f, 0xe2b6, 0xe2ac, 0xba7c, 0x003f, 0x003f, 0xe27c, 0xba76, 0xba74, 0xbaa8, 0x003f, 0x003f, 0xe27a, 0xe277, 0xe278, 0x003f, 0xe2b2, 0x003f, 0xe2b7, 0xe2b5, 0xba7a, 0xe2b9, 0xba7e, 0xbaa7, 0x003f, 0xe270, 0xe5fa, 0xe279, 0x003f, 0xba78, 0xbaac, 0xbaa9, 0xba7b, 0xe2a5, 0xe274, 0xbaaa, 0xe2a7, 0xbaa4, 0xbaa6, 0xba73, 0x003f, 0xe2a9, 0xe2a1, 0xe272, 0xbaa5, 0xe2b1, 0xe2b4, 0xe27b, 0xe2a8, 0x003f, 0xba79, 0xbcdf, 0xe2a6, 0xe5f9, 0x003f, 0xe2ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe276, 0xe644, 0xe64e, 0xbce2, 0xe64d, 0xe659, 0xbce4, 0xe64b, 0x003f, 0xe64f, 0xbcef, 0x003f, 0xe646, 0xbce7, 0x003f, 0xe652, 0xe9f0, 0xbcf3, 0xbcf2, 0xe654, 0xe643, 0xe65e, 0xbced, 0x003f, 0xbce3, 0xe657, 0x003f, 0xe65b, 0xe660, 0xe655, 0xe649, 0xbce6, 0xbce9, 0xbcf1, 0xbcec, 0x003f, 0xe64c, 0xe2a2, 0x003f, 0x003f, 0xe648, 0xe65f, 0xbce8, 0x003f, 0xbceb, 0xe661, 0xbce0, 0xe656, 0xe5fb, 0xe65c, 0xc0df, 0x003f, 0xe64a, 0x003f, 0xbce1, 0xe645, 0xbce5, 0xe5fc, 0xbaab, 0xe641, 0x003f, 0xe65a, 0xe642, 0xe640, 0xbcea, 0x003f, 0xe658, 0x003f, 0xe5fe, 0xe651, 0xe650, 0xe65d, 0xe647, 0xbcee, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe9f3, 0x003f, 0xbf49, 0xbefe, 0xea40, 0xe9eb, 0xbf41, 0xe9f7, 0xbf48, 0xbf43, 0xe9f5, 0xed4f, 0xe9fb, 0xea42, 0xe9fa, 0xe9e9, 0xe9f8, 0xea44, 0xea46, 0xbefd, 0xea45, 0xbf44, 0xbf4a, 0x003f, 0xbf47, 0x003f, 0xe9fe, 0xbf46, 0xe9f9, 0x003f, 0xe9ed, 0xe9f2, 0x003f, 0xe9fd, 0xbf45, 0xbf42, 0xbefc, 0xbf40, 0xe9f1, 0x003f, 0xe5fd, 0xe9ec, 0xe9ef, 0xea41, 0xe9f4, 0xe9ea, 0xed4e, 0xea43, 0xe9ee, 0xe9fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xed51, 0xc0e3, 0x003f, 0x003f, 0xc0d7, 0x003f, 0x003f, 0xc0db, 0xed53, 0xed59, 0xed57, 0xc0d9, 0xc0da, 0xc0e1, 0xed5a, 0xed52, 0xc0dc, 0x003f, 0xed56, 0xed55, 0xed5b, 0xc0e2, 0x003f, 0xc0dd, 0xc0e0, 0xed54, 0xc0e4, 0xc0de, 0xc0e5, 0xc0d8, 0xed58, 0x003f, 0xed50, 0x003f, 0x003f, 0xeff7, 0x003f, 0x003f, 0xc271, 0xeff4, 0xeff6, 0x003f, 0xc26f, 0xeff2, /* 0x7000 .. 0x70ff */ 0xeff3, 0xefee, 0x003f, 0x003f, 0xe9f6, 0xefef, 0xc270, 0xefeb, 0x003f, 0xc26d, 0xeff8, 0xc26e, 0xefec, 0xefed, 0xeff1, 0xc273, 0x003f, 0xc272, 0x003f, 0x003f, 0xeff0, 0xc378, 0xf25f, 0xf265, 0xc379, 0xf25c, 0xc376, 0xc373, 0xf267, 0xc377, 0x003f, 0xc374, 0xf25e, 0xf261, 0xf262, 0xf263, 0xf266, 0x003f, 0xeff5, 0xf25d, 0xc375, 0xf264, 0xf268, 0xf260, 0x003f, 0x003f, 0x003f, 0xf45d, 0xc46a, 0xf460, 0xc46b, 0xf468, 0xf45f, 0xf45c, 0x003f, 0xf45e, 0xf462, 0xf465, 0xf464, 0xf467, 0xf45b, 0x003f, 0xc469, 0xf463, 0xf466, 0xf469, 0xf461, 0xf5d3, 0xf5d4, 0xf5d8, 0xf5d9, 0x003f, 0xf5d6, 0xf5d7, 0xf5d5, 0x003f, 0xc4e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xc578, 0xf6eb, 0x003f, 0x003f, 0xf6e8, 0xf6e9, 0xf6ea, 0xc579, 0x003f, 0xf7e5, 0xf7e4, 0x003f, 0xf8af, 0xc5f4, 0xf8ad, 0xf8b0, 0xf8ae, 0xf8f5, 0xc657, 0xc665, 0xf9a3, 0xf96c, 0x003f, 0xf9a2, 0xf9d0, 0xf9d1, 0xa4f5, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6c7, 0xca41, 0x003f, 0x003f, 0xcb5e, 0x003f, 0xa85f, 0x003f, 0xa862, 0x003f, 0xcb5f, 0x003f, 0xa860, 0xa861, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd58, 0xcd5a, 0xcd55, 0xcd52, 0xcd54, 0x003f, 0x003f, 0x003f, 0xaaa4, 0x003f, 0x003f, 0x003f, 0xaaa2, 0x003f, 0x003f, 0xcd56, 0xaaa3, 0xcd53, 0xcd50, 0xaaa1, 0xcd57, 0x003f, 0xcd51, 0xaaa5, 0xcd59, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfaf, 0x003f, 0xcfb3, 0x003f, 0x003f, 0xacb7, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfb6, 0x003f, 0xacaf, 0xacb2, 0xacb4, 0xacb6, 0xacb3, 0xcfb2, 0xcfb1, 0x003f, 0xacb1, 0xcfb4, 0xcfb5, 0x003f, 0xcfae, 0xacb5, 0x003f, 0xacb0, 0x003f, 0x003f, 0x003f, 0xcfb0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd277, 0xd278, 0xd279, 0xaf50, 0x003f, 0xaf4c, 0xd26e, 0x003f, 0xd276, 0xd27b, 0xaf51, 0x003f, 0xd26c, 0xd272, 0xd26b, 0xd275, 0x003f, 0x003f, 0xd271, 0xaf4d, 0xaf4f, 0xd27a, 0x003f, 0xd26a, 0xd26d, 0xd273, 0x003f, 0xd274, 0xd27c, 0xd270, 0x003f, 0xaf4e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb26d, 0xd64e, 0x003f, 0x003f, 0xd650, 0xd64c, 0x003f, 0xd658, 0xd64a, 0xd657, 0xb269, 0xd648, 0xda5b, 0xd652, 0xb26c, 0x003f, 0xd653, /* 0x7100 .. 0x71ff */ 0xd656, 0x003f, 0xd65a, 0x003f, 0xd64f, 0x003f, 0xd654, 0x003f, 0x003f, 0xb26a, 0xb26b, 0xd659, 0xd64d, 0xd649, 0xd65b, 0x003f, 0xd651, 0x003f, 0x003f, 0xd655, 0x003f, 0x003f, 0x003f, 0xd64b, 0x003f, 0xb548, 0xb549, 0xda65, 0xb54f, 0x003f, 0xda59, 0xda62, 0xda58, 0xb54c, 0xda60, 0xda5e, 0x003f, 0xda5f, 0xb54a, 0x003f, 0xda63, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xda5c, 0xda5a, 0xb54b, 0xda5d, 0xda61, 0x003f, 0x003f, 0x003f, 0xb54d, 0x003f, 0x003f, 0x003f, 0xda64, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xde70, 0xde77, 0xde79, 0xdea1, 0x003f, 0xb7da, 0xde6b, 0x003f, 0xb7d2, 0x003f, 0xde7a, 0xb7d7, 0xdea2, 0xb7ce, 0x003f, 0xde7d, 0x003f, 0xde6d, 0xde7e, 0xde6c, 0x003f, 0xb7dc, 0x003f, 0xde78, 0xb7cf, 0xdea3, 0x003f, 0xb7d4, 0xde71, 0xb7d9, 0xde7c, 0xde6f, 0xde76, 0xde72, 0xde6e, 0xb7d1, 0xb7d8, 0xb7d6, 0xb7d3, 0xb7db, 0xb7d0, 0xde75, 0x003f, 0xb7d5, 0x003f, 0xb54e, 0x003f, 0xde7b, 0x003f, 0xde73, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xde74, 0x003f, 0x003f, 0xe2c1, 0x003f, 0xbab4, 0x003f, 0x003f, 0xe2bd, 0xe2c3, 0xe2bf, 0x003f, 0xbab6, 0xe2be, 0xe2c2, 0xe2ba, 0x003f, 0xe2bc, 0xbab5, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2c0, 0xe2bb, 0x003f, 0xbab7, 0x003f, 0xbab2, 0x003f, 0x003f, 0xe2c4, 0x003f, 0xbab3, 0xe667, 0xe664, 0xe670, 0xe66a, 0xe66c, 0xbcf4, 0xe666, 0xe66e, 0x003f, 0x003f, 0xe66d, 0xe66b, 0x003f, 0xe671, 0xbcf7, 0xe668, 0xe66f, 0x003f, 0xbcf5, 0x003f, 0x003f, 0xe663, 0xe665, 0xbcf6, 0xe662, 0xe672, 0x003f, 0xe669, 0x003f, 0x003f, 0xea4a, 0xbf51, 0x003f, 0x003f, 0xea55, 0xea53, 0xbf4b, 0xea49, 0xea4c, 0xea4d, 0xea48, 0xbf55, 0xbf56, 0xea47, 0xea56, 0xea51, 0xbf4f, 0xbf4c, 0xea50, 0xea4e, 0x003f, 0x003f, 0xbf52, 0xea52, 0xbf4d, 0x003f, 0xbf4e, 0x003f, 0xea4f, 0xbf50, 0xea4b, 0x003f, 0xea54, 0xbf53, 0xea57, 0xea58, 0xbf54, 0x003f, 0x003f, 0xc0e7, 0xc0ee, 0xed5c, 0xed62, 0x003f, 0xed60, 0xc0ea, 0xc0e9, 0xc0e6, 0xed5e, 0x003f, 0x003f, 0x003f, 0xc0ec, 0xc0eb, 0xc0e8, 0x003f, 0xed61, 0xed5d, 0xed5f, 0x003f, 0xc0ed, 0x003f, 0x003f, 0x003f, 0xc277, 0xeffb, 0x003f, 0xc274, 0xc275, 0xeffd, 0xc276, 0xeffa, /* 0x7200 .. 0x72ff */ 0x003f, 0xeff9, 0xf26c, 0xeffc, 0x003f, 0xf26d, 0xc37a, 0xf26b, 0x003f, 0x003f, 0xf26a, 0x003f, 0xf269, 0xc37b, 0x003f, 0x003f, 0xc46c, 0x003f, 0x003f, 0xf46a, 0xf46b, 0x003f, 0x003f, 0x003f, 0x003f, 0xf5dc, 0xf5db, 0xc4ea, 0x003f, 0xf5da, 0xf6ec, 0xf6ed, 0x003f, 0x003f, 0xf7e6, 0xf8b1, 0x003f, 0x003f, 0xf8f6, 0xf9bc, 0xc679, 0xf9c6, 0xa4f6, 0x003f, 0xaaa6, 0xaaa7, 0x003f, 0x003f, 0xacb8, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0ef, 0xa4f7, 0x003f, 0xaaa8, 0xaf52, 0xb7dd, 0xa4f8, 0x003f, 0xb26e, 0xbab8, 0xc962, 0x003f, 0xcfb7, 0xd27d, 0x003f, 0xe2c5, 0x003f, 0xc0f0, 0xa4f9, 0xaaa9, 0xcfb8, 0xcfb9, 0xda66, 0xb550, 0x003f, 0x003f, 0xdea4, 0x003f, 0x003f, 0xb7de, 0xe2c6, 0x003f, 0x003f, 0xbcf8, 0x003f, 0xc37c, 0xa4fa, 0xda67, 0xa4fb, 0x003f, 0xa6c9, 0xca42, 0xa6c8, 0xa865, 0xa864, 0xa863, 0xcb60, 0x003f, 0x003f, 0x003f, 0xaaaa, 0x003f, 0xaaab, 0xcd5b, 0x003f, 0xcfba, 0x003f, 0xcfbd, 0xacba, 0xcfbb, 0x003f, 0xacb9, 0xcfbc, 0xacbb, 0x003f, 0xd2a2, 0xd2a1, 0xd27e, 0xaf53, 0x003f, 0xd65d, 0xd65e, 0xb26f, 0xd65c, 0xd65f, 0xb552, 0xb270, 0x003f, 0x003f, 0xb551, 0xda6b, 0xda6a, 0x003f, 0xda68, 0xda69, 0x003f, 0xda6c, 0xdea6, 0xdea5, 0xdea9, 0x003f, 0xdea8, 0xdea7, 0xbab9, 0xe2c9, 0x003f, 0xe2c8, 0xbaba, 0xe2c7, 0xe673, 0x003f, 0xe674, 0xbcf9, 0x003f, 0xea59, 0xea5a, 0x003f, 0x003f, 0xf272, 0xc37d, 0xf271, 0xf270, 0xf26e, 0xf26f, 0xc4eb, 0xf46c, 0xf6ee, 0xf8f7, 0x003f, 0xa4fc, 0x003f, 0xc9a5, 0xa5c7, 0xc9a6, 0x003f, 0x003f, 0x003f, 0xca43, 0xca44, 0x003f, 0x003f, 0x003f, 0x003f, 0xcb66, 0x003f, 0x003f, 0xcb62, 0x003f, 0xcb61, 0xaaac, 0xcb65, 0xa867, 0xcb63, 0xa866, 0xcb67, 0xcb64, 0x003f, 0x003f, 0xcd5f, 0xcfbe, 0xcd5d, 0xcd64, 0x003f, 0xaaad, 0x003f, 0xaab0, 0xcd65, 0xcd61, 0x003f, 0xcd62, 0x003f, 0xcd5c, 0xaaaf, 0xcd5e, 0xaaae, 0xcd63, 0x003f, 0xcd60, 0x003f, 0x003f, 0xcfc2, 0xacbd, 0xacbe, 0x003f, 0xcfc5, 0xcfbf, 0x003f, 0xcfc4, 0x003f, 0xcfc0, 0xacbc, 0xcfc3, 0xcfc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2a8, 0xd2a5, 0x003f, 0xd2a7, 0xaf58, 0xaf57, 0xaf55, 0xd2a4, 0xd2a9, 0xaf54, 0xaf56, 0xd2a6, 0xd667, /* 0x7300 .. 0x73ff */ 0xd2a3, 0xd2aa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd662, 0xd666, 0x003f, 0xd665, 0xda6e, 0xda79, 0x003f, 0x003f, 0xd668, 0x003f, 0xd663, 0xda6d, 0xb274, 0x003f, 0x003f, 0xb273, 0xd661, 0xd664, 0xb275, 0x003f, 0xb272, 0xb271, 0xd660, 0xd669, 0x003f, 0x003f, 0x003f, 0xda70, 0xda77, 0x003f, 0xb554, 0xda76, 0xda73, 0x003f, 0xb556, 0x003f, 0x003f, 0x003f, 0xda75, 0x003f, 0x003f, 0xda6f, 0xda71, 0xda74, 0xda72, 0xb555, 0xda78, 0xb553, 0xb7df, 0x003f, 0x003f, 0xdead, 0xdeac, 0xdeaa, 0x003f, 0xb7e2, 0xb7e1, 0xdeae, 0x003f, 0xdeab, 0xe2ca, 0xbabb, 0xb7e0, 0x003f, 0x003f, 0x003f, 0xdeb0, 0xdeaf, 0x003f, 0xe2cd, 0xe2cb, 0xbcfa, 0x003f, 0xbabc, 0xe2cc, 0xe676, 0x003f, 0x003f, 0x003f, 0x003f, 0xbcfb, 0xe675, 0xe67e, 0xe67d, 0xe67b, 0x003f, 0xe67a, 0xe677, 0xe678, 0xe679, 0xe67c, 0xe6a1, 0x003f, 0x003f, 0xea5f, 0xea5c, 0xea5d, 0xbf57, 0xea5b, 0xea61, 0xea60, 0xea5e, 0x003f, 0xed64, 0xed65, 0xc0f1, 0x003f, 0xc0f2, 0xed63, 0x003f, 0xc279, 0xeffe, 0xc278, 0xc37e, 0x003f, 0xc3a1, 0xc46d, 0xf46e, 0xf46d, 0xf5dd, 0xf6ef, 0xc57a, 0xf7e8, 0xf7e7, 0xf7e9, 0xa5c8, 0xcfc6, 0xaf59, 0xb276, 0xd66a, 0xa5c9, 0xc9a7, 0xa4fd, 0x003f, 0x003f, 0xca45, 0x003f, 0x003f, 0x003f, 0xcb6c, 0xcb6a, 0xcb6b, 0xcb68, 0xa868, 0xcb69, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcd6d, 0x003f, 0xaab3, 0xcd6b, 0xcd67, 0xcd6a, 0x003f, 0xcd66, 0xaab5, 0xcd69, 0x003f, 0xaab2, 0xaab1, 0x003f, 0xaab4, 0xcd6c, 0xcd68, 0x003f, 0x003f, 0x003f, 0x003f, 0xacc2, 0xacc5, 0xcfce, 0xcfcd, 0xcfcc, 0xacbf, 0xcfd5, 0xcfcb, 0x003f, 0xacc1, 0xd2af, 0x003f, 0xcfd2, 0xcfd0, 0xacc4, 0x003f, 0xcfc8, 0xcfd3, 0x003f, 0xcfca, 0xcfd4, 0xcfd1, 0xcfc9, 0x003f, 0xacc0, 0xcfd6, 0xcfc7, 0xacc3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2b4, 0xd2ab, 0xd2b6, 0x003f, 0xd2ae, 0xd2b9, 0xd2ba, 0xd2ac, 0xd2b8, 0xd2b5, 0xd2b3, 0xd2b7, 0xaf5f, 0x003f, 0xaf5d, 0x003f, 0x003f, 0xd2b1, 0x003f, 0xd2ad, 0x003f, 0xd2b0, 0xd2bb, 0xd2b2, 0xaf5e, 0xcfcf, 0x003f, 0xaf5a, 0xaf5c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd678, 0xd66d, 0xd66b, 0x003f, 0xd66c, 0x003f, 0xd673, 0x003f, 0xd674, 0xd670, 0xb27b, 0xd675, /* 0x7400 .. 0x74ff */ 0xd672, 0xd66f, 0x003f, 0xb279, 0xd66e, 0xb277, 0xb27a, 0xd671, 0xd679, 0xaf5b, 0xb278, 0xd677, 0xd676, 0xb27c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xda7e, 0x003f, 0x003f, 0x003f, 0xdaa1, 0xb560, 0x003f, 0xdaa7, 0x003f, 0x003f, 0xdaa9, 0xdaa2, 0xb55a, 0xdaa6, 0xdaa5, 0xb55b, 0xb561, 0x003f, 0xb562, 0xdaa8, 0xb558, 0xda7d, 0xda7b, 0xdaa3, 0xda7a, 0xb55f, 0xda7c, 0xdaa4, 0xdaaa, 0xb559, 0xb55e, 0xb55c, 0xb55d, 0x003f, 0x003f, 0x003f, 0xb557, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7e9, 0xdeb7, 0xb7e8, 0xdebb, 0x003f, 0xdeb1, 0x003f, 0xdebc, 0x003f, 0x003f, 0x003f, 0xdeb2, 0xdeb3, 0x003f, 0xdebd, 0xdeba, 0xdeb8, 0xdeb9, 0xdeb5, 0xdeb4, 0x003f, 0xdebe, 0xb7e5, 0x003f, 0xdeb6, 0x003f, 0xb7ea, 0xb7e4, 0xb7eb, 0xb7ec, 0x003f, 0xb7e7, 0xb7e6, 0x003f, 0x003f, 0xe2ce, 0xbabe, 0xbabd, 0x003f, 0x003f, 0xe2d3, 0x003f, 0xbcfc, 0xbabf, 0x003f, 0x003f, 0xbac1, 0xe2d4, 0xb7e3, 0xbac0, 0xe2d0, 0xe2d2, 0xe2cf, 0x003f, 0xe2d1, 0x003f, 0x003f, 0x003f, 0xe6ab, 0x003f, 0x003f, 0xe6aa, 0xe6a7, 0xbd40, 0xea62, 0xbd41, 0xe6a6, 0x003f, 0xbcfe, 0x003f, 0xe6a8, 0xe6a5, 0xe6a2, 0xe6a9, 0xe6a3, 0xe6a4, 0xbcfd, 0x003f, 0x003f, 0x003f, 0x003f, 0xed69, 0x003f, 0xea66, 0x003f, 0xea65, 0xea67, 0x003f, 0xed66, 0xbf5a, 0x003f, 0xea63, 0x003f, 0xbf58, 0x003f, 0xbf5c, 0xbf5b, 0xea64, 0xea68, 0x003f, 0xbf59, 0x003f, 0xed6d, 0xc0f5, 0xc27a, 0xc0f6, 0xc0f3, 0xed6a, 0xed68, 0x003f, 0xed6b, 0x003f, 0xed6e, 0xc0f4, 0xed6c, 0xed67, 0x003f, 0x003f, 0xf042, 0xf045, 0xf275, 0xf040, 0x003f, 0xf46f, 0xf046, 0x003f, 0xc3a2, 0xf044, 0xc27b, 0xf041, 0xf043, 0xf047, 0xf276, 0x003f, 0xf274, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3a3, 0xf273, 0x003f, 0x003f, 0x003f, 0xc46e, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4ed, 0xf6f1, 0xc4ec, 0xf6f3, 0xf6f0, 0xf6f2, 0xc5d0, 0xf8b2, 0xa5ca, 0xcd6e, 0xd2bc, 0xd2bd, 0xb27d, 0xdebf, 0xbf5d, 0xc3a4, 0xc57b, 0xf8b3, 0xa5cb, 0x003f, 0xcd6f, 0xa260, 0x003f, 0x003f, 0xcfd7, 0x003f, 0xcfd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2be, 0xd2bf, 0xb27e, 0xb2a1, 0x003f, 0x003f, 0x003f, 0xdaab, 0x003f, 0xdec2, 0xdec1, 0xdec0, /* 0x7500 .. 0x75ff */ 0xe2d5, 0x003f, 0xe2d6, 0xe2d7, 0xbac2, 0x003f, 0x003f, 0xe6ad, 0xe6ac, 0x003f, 0x003f, 0xea69, 0xbf5e, 0xbf5f, 0x003f, 0xed72, 0xed6f, 0xed70, 0xed71, 0xf049, 0xf048, 0xc27c, 0xf277, 0xf5de, 0xa5cc, 0x003f, 0xacc6, 0x003f, 0xb2a2, 0xdec3, 0x003f, 0xa5cd, 0x003f, 0xd2c0, 0xb2a3, 0x003f, 0x003f, 0xb563, 0xb564, 0x003f, 0xa5ce, 0xa5cf, 0xca46, 0xa86a, 0xa869, 0xacc7, 0xcfd9, 0xdaac, 0xa5d0, 0xa5d1, 0xa5d2, 0xa5d3, 0x003f, 0x003f, 0x003f, 0xa86b, 0xa86c, 0xcb6e, 0xcb6d, 0x003f, 0x003f, 0xaab6, 0xcd72, 0xcd70, 0xcd71, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcfda, 0xcfdb, 0x003f, 0x003f, 0xaccb, 0xacc9, 0x003f, 0xacca, 0xacc8, 0x003f, 0x003f, 0x003f, 0x003f, 0xaf60, 0x003f, 0x003f, 0x003f, 0x003f, 0xaf64, 0xaf63, 0xd2c1, 0xaf62, 0xaf61, 0x003f, 0xd2c2, 0x003f, 0x003f, 0xb2a6, 0xd67b, 0xd67a, 0xb2a4, 0xb2a5, 0x003f, 0x003f, 0x003f, 0xb566, 0xb565, 0xdaae, 0x003f, 0x003f, 0xdaad, 0xb2a7, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb7ed, 0xdec5, 0xb7ee, 0xdec4, 0x003f, 0x003f, 0x003f, 0xe2d8, 0xe6ae, 0xbd42, 0xea6a, 0x003f, 0x003f, 0x003f, 0xed73, 0x003f, 0xc3a6, 0xc3a5, 0x003f, 0x003f, 0xc57c, 0xa5d4, 0xcd73, 0x003f, 0x003f, 0xb2a8, 0xe2d9, 0xbac3, 0x003f, 0x003f, 0xcb6f, 0xcb70, 0x003f, 0x003f, 0xcd74, 0xaab8, 0xaab9, 0x003f, 0x003f, 0xaab7, 0x003f, 0x003f, 0x003f, 0x003f, 0xaccf, 0xacd0, 0xaccd, 0xacce, 0x003f, 0xcfdc, 0x003f, 0x003f, 0xcfdd, 0xaccc, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2c3, 0x003f, 0xaf68, 0xaf69, 0x003f, 0xb2ab, 0xd2c9, 0x003f, 0xaf6e, 0xaf6c, 0xd2ca, 0xd2c5, 0xaf6b, 0xaf6a, 0xaf65, 0xd2c8, 0xd2c7, 0xd2c4, 0xaf6d, 0x003f, 0xd2c6, 0xaf66, 0x003f, 0xaf67, 0x003f, 0x003f, 0xb2ac, 0xd6a1, 0xd6a2, 0xb2ad, 0xd67c, 0xd67e, 0xd6a4, 0xd6a3, 0xd67d, 0x003f, 0xb2a9, 0xb2aa, 0x003f, 0xdab6, 0xb56b, 0xb56a, 0xdab0, 0xb568, 0x003f, 0xdab3, 0xb56c, 0xdab4, 0xb56d, 0xdab1, 0xb567, 0xb569, 0xdab5, 0x003f, 0xdab2, 0xdaaf, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xded2, 0x003f, 0xdec7, 0xb7f0, 0xb7f3, 0xb7f2, 0xb7f7, 0xb7f6, 0xded3, 0xded1, 0xdeca, 0xdece, 0xdecd, 0xb7f4, 0xded0, 0xdecc, 0xded4, 0xdecb, 0xb7f5, /* 0x7600 .. 0x76ff */ 0xb7ef, 0xb7f1, 0x003f, 0xdec9, 0x003f, 0x003f, 0x003f, 0x003f, 0xe2db, 0xbac7, 0xe2df, 0xbac6, 0xe2dc, 0xbac5, 0x003f, 0xdec8, 0xdecf, 0xe2de, 0x003f, 0xbac8, 0xe2e0, 0xe2dd, 0xe2da, 0x003f, 0x003f, 0xe6b1, 0xe6b5, 0xe6b7, 0xe6b3, 0xe6b2, 0xe6b0, 0xbd45, 0xbd43, 0xbd48, 0xbd49, 0xe6b4, 0xbd46, 0xe6af, 0xbd47, 0xbac4, 0xe6b6, 0xbd44, 0x003f, 0x003f, 0x003f, 0xea6c, 0x003f, 0xea6b, 0xea73, 0xea6d, 0xea72, 0xea6f, 0xbf60, 0xea71, 0x003f, 0x003f, 0xbf61, 0x003f, 0xbf62, 0x003f, 0xea70, 0xea6e, 0x003f, 0x003f, 0x003f, 0x003f, 0xc0f8, 0xed74, 0x003f, 0x003f, 0xc0f7, 0xed77, 0xed75, 0xed76, 0x003f, 0x003f, 0xc0f9, 0x003f, 0x003f, 0x003f, 0xf04d, 0x003f, 0xc2a1, 0xf04e, 0x003f, 0x003f, 0xc27d, 0xf04f, 0xc27e, 0xf04c, 0xf050, 0x003f, 0xf04a, 0x003f, 0x003f, 0xc3a7, 0xf278, 0xc3a8, 0xc46f, 0x003f, 0xf04b, 0xc470, 0x003f, 0x003f, 0x003f, 0xc4ee, 0xf5df, 0x003f, 0xc57e, 0xf6f4, 0xc57d, 0x003f, 0xf7ea, 0xc5f5, 0xc5f6, 0x003f, 0x003f, 0xf9cc, 0x003f, 0x003f, 0xacd1, 0xcfde, 0x003f, 0xb56e, 0xb56f, 0xa5d5, 0xa6ca, 0xca47, 0x003f, 0xcb71, 0xa86d, 0x003f, 0xaaba, 0x003f, 0xacd2, 0xacd3, 0xacd4, 0xd6a6, 0xd2cb, 0xaf6f, 0x003f, 0x003f, 0xb2ae, 0xd6a5, 0x003f, 0x003f, 0xdab8, 0xb571, 0x003f, 0xdab7, 0xb570, 0x003f, 0x003f, 0xded5, 0xbd4a, 0xe6bb, 0xe6b8, 0xe6b9, 0xe6ba, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xed78, 0x003f, 0xf051, 0x003f, 0x003f, 0x003f, 0xf471, 0xf470, 0x003f, 0xf6f5, 0xa5d6, 0xcd75, 0xaf70, 0x003f, 0x003f, 0x003f, 0xb572, 0xded6, 0x003f, 0x003f, 0xe2e1, 0x003f, 0xbd4b, 0xea74, 0x003f, 0xf052, 0xf472, 0xa5d7, 0x003f, 0x003f, 0xaabb, 0xacd7, 0xcfdf, 0xacd8, 0xacd6, 0x003f, 0xacd5, 0xd2cc, 0xaf71, 0x003f, 0x003f, 0xaf72, 0xaf73, 0x003f, 0x003f, 0x003f, 0xb2b0, 0xd6a7, 0xb2af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdab9, 0xb2b1, 0xb573, 0xded7, 0xb7f8, 0xb7f9, 0x003f, 0xbac9, 0x003f, 0xbaca, 0xbd4c, 0xbf64, 0xea75, 0xbf63, 0x003f, 0xed79, 0xc0fa, 0x003f, 0xf053, 0xf473, 0xa5d8, 0xa86e, 0xcd78, 0xcd77, 0xaabc, 0xcd76, 0xaabd, 0xcd79, 0x003f, 0xcfe5, 0xacdb, 0xacda, 0xcfe7, 0xcfe6, 0xacdf, 0x003f, 0xacde, 0x003f, /* 0x7700 .. 0x77ff */ 0x003f, 0xacd9, 0x003f, 0xcfe1, 0xcfe2, 0xcfe3, 0x003f, 0xace0, 0xcfe0, 0xacdc, 0xcfe4, 0xacdd, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2cf, 0xd2d3, 0xd2d1, 0xd2d0, 0x003f, 0xd2d4, 0x003f, 0x003f, 0x003f, 0xd2d5, 0xd2d6, 0xd2ce, 0x003f, 0xd2cd, 0x003f, 0xaf75, 0xaf76, 0x003f, 0xd2d7, 0xd2d2, 0x003f, 0xd6b0, 0x003f, 0xd2d8, 0xaf77, 0xaf74, 0x003f, 0x003f, 0x003f, 0xd6aa, 0x003f, 0xd6a9, 0x003f, 0xd6ab, 0xd6ac, 0xd6ae, 0xd6ad, 0xd6b2, 0xb2b5, 0xb2b2, 0xb2b6, 0xd6a8, 0xb2b7, 0xd6b1, 0xb2b4, 0xd6af, 0xb2b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdabc, 0xdabe, 0xdaba, 0xdabb, 0x003f, 0x003f, 0xdabf, 0xdac1, 0xdac2, 0xdabd, 0xdac0, 0xb574, 0x003f, 0x003f, 0xdedb, 0x003f, 0xdee0, 0xded8, 0xdedc, 0x003f, 0x003f, 0xdee1, 0xdedd, 0xb7fa, 0xb843, 0x003f, 0xb7fd, 0xded9, 0xdeda, 0xbace, 0xb846, 0xb7fe, 0x003f, 0xb844, 0xb7fc, 0xdedf, 0xb845, 0xdede, 0xb841, 0xb7fb, 0xb842, 0xdee2, 0xe2e6, 0xe2e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb840, 0x003f, 0x003f, 0xe2e3, 0xbacc, 0xe2e9, 0xbacd, 0xe2e7, 0xe2e2, 0xe2e5, 0xe2ea, 0xbacb, 0xe2e4, 0x003f, 0xbd4e, 0xe6bf, 0xe6be, 0x003f, 0xbd51, 0xbd4f, 0xe6bc, 0xbd4d, 0xe6bd, 0x003f, 0xbd50, 0x003f, 0x003f, 0x003f, 0xea7d, 0x003f, 0xeaa1, 0x003f, 0xea7e, 0xea76, 0xea7a, 0xea79, 0xea77, 0xbf66, 0xbf67, 0xbf65, 0xea78, 0xea7b, 0xea7c, 0x003f, 0xbf68, 0x003f, 0xc140, 0xeda3, 0x003f, 0xc0fc, 0xed7b, 0xc0fe, 0xc141, 0x003f, 0x003f, 0xc0fd, 0xeda2, 0xed7c, 0xc0fb, 0xeda1, 0xed7a, 0xed7e, 0xed7d, 0x003f, 0x003f, 0xf055, 0xc2a4, 0xc2a5, 0xc2a2, 0x003f, 0xc2a3, 0x003f, 0x003f, 0xf054, 0x003f, 0xf27b, 0x003f, 0x003f, 0xc3a9, 0x003f, 0xf279, 0xf27a, 0x003f, 0xf474, 0xf477, 0xf475, 0xf476, 0xf5e0, 0x003f, 0x003f, 0xc4ef, 0xf7eb, 0xf8b4, 0x003f, 0xc5f7, 0xf8f8, 0xf8f9, 0xc666, 0xa5d9, 0xace1, 0x003f, 0xdac3, 0x003f, 0xdee3, 0x003f, 0xa5da, 0xa86f, 0x003f, 0xaabe, 0x003f, 0xcfe8, 0xcfe9, 0xaf78, 0x003f, 0x003f, 0xdac4, 0xb575, 0xb847, 0xc142, 0xeda4, 0xf27c, 0xf478, 0xa5db, 0x003f, 0x003f, 0x003f, 0xcda1, 0xcd7a, 0xcd7c, 0xcd7e, 0xcd7d, 0xcd7b, 0xaabf, 0x003f, 0x003f, /* 0x7800 .. 0x78ff */ 0x003f, 0x003f, 0xace2, 0xcff2, 0x003f, 0xcfed, 0xcfea, 0x003f, 0x003f, 0xcff1, 0x003f, 0x003f, 0xace4, 0xace5, 0xcff0, 0xcfef, 0xcfee, 0xcfeb, 0xcfec, 0xcff3, 0xace3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaf7c, 0x003f, 0xafa4, 0xafa3, 0xd2e1, 0xd2db, 0xd2d9, 0x003f, 0xafa1, 0xd6b9, 0xaf7a, 0xd2de, 0xd2e2, 0xd2e4, 0xd2e0, 0xd2da, 0xafa2, 0xd2df, 0xd2dd, 0xaf79, 0xd2e5, 0xafa5, 0xd2e3, 0xaf7d, 0xd2dc, 0x003f, 0xaf7e, 0xaf7b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2b9, 0x003f, 0xd6ba, 0x003f, 0x003f, 0xd6b3, 0xd6b5, 0xd6b7, 0x003f, 0xd6b8, 0xd6b6, 0xb2ba, 0x003f, 0xd6bb, 0x003f, 0xd6b4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdac8, 0xb576, 0xdad0, 0x003f, 0xdac5, 0x003f, 0xdad1, 0x003f, 0xdac6, 0xdac7, 0x003f, 0x003f, 0xdacf, 0xdace, 0xdacb, 0xb2b8, 0xb577, 0xdac9, 0xdacc, 0xb578, 0xdacd, 0xdaca, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdeee, 0x003f, 0xdef2, 0xb84e, 0x003f, 0xe2f0, 0xb851, 0xdef0, 0xf9d6, 0x003f, 0xdeed, 0xdee8, 0xdeea, 0xdeeb, 0xdee4, 0x003f, 0xb84d, 0x003f, 0x003f, 0xb84c, 0x003f, 0xb848, 0xdee7, 0x003f, 0xb84f, 0x003f, 0xb850, 0xdee6, 0xdee9, 0xdef1, 0xb84a, 0xb84b, 0xdeef, 0xdee5, 0x003f, 0x003f, 0x003f, 0xe2f2, 0xbad0, 0xe2f4, 0xdeec, 0xe2f6, 0xbad4, 0xe2f7, 0xe2f3, 0x003f, 0xbad1, 0xe2ef, 0xbad3, 0xe2ec, 0xe2f1, 0xe2f5, 0xe2ee, 0x003f, 0x003f, 0xb849, 0x003f, 0xe2eb, 0xbad2, 0xe2ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbd54, 0xe6c1, 0xbd58, 0x003f, 0xbd56, 0x003f, 0x003f, 0xbacf, 0x003f, 0xe6c8, 0xe6c9, 0xbd53, 0x003f, 0x003f, 0xe6c7, 0xe6ca, 0xbd55, 0xbd52, 0xe6c3, 0xe6c0, 0xe6c5, 0xe6c2, 0xbd59, 0xe6c4, 0x003f, 0x003f, 0xe6c6, 0xbd57, 0x003f, 0x003f, 0x003f, 0x003f, 0xbf6a, 0xeaa8, 0x003f, 0xeaa2, 0xeaa6, 0xeaac, 0xeaad, 0xeaa9, 0xeaaa, 0xeaa7, 0x003f, 0xeaa4, 0x003f, 0xbf6c, 0xbf69, 0xeaa3, 0xeaa5, 0x003f, 0xbf6b, 0xeaab, 0x003f, 0xc146, 0x003f, 0x003f, 0xedaa, 0xeda5, 0xc145, 0x003f, 0x003f, 0xc143, 0x003f, 0xedac, 0xc144, 0xeda8, 0xeda9, 0xeda6, 0xedad, 0xf056, /* 0x7900 .. 0x79ff */ 0x003f, 0xc147, 0xeda7, 0x003f, 0xedae, 0xedab, 0x003f, 0x003f, 0x003f, 0xf05a, 0x003f, 0x003f, 0xf057, 0x003f, 0xc2a6, 0x003f, 0xf05b, 0xf05d, 0xf05c, 0xf058, 0xf059, 0x003f, 0x003f, 0xf2a3, 0x003f, 0xc3aa, 0x003f, 0xf27e, 0xf2a2, 0xf27d, 0xf2a4, 0x003f, 0x003f, 0xf2a1, 0x003f, 0xf47a, 0xf47d, 0xf479, 0xc471, 0xf47b, 0xf47c, 0xf47e, 0xc472, 0xc474, 0xc473, 0xf5e1, 0x003f, 0xf5e3, 0x003f, 0xf5e2, 0x003f, 0x003f, 0x003f, 0xf6f6, 0x003f, 0x003f, 0xf8b5, 0xf8fa, 0xa5dc, 0x003f, 0x003f, 0xcb72, 0xaac0, 0xcda3, 0xaac1, 0xaac2, 0xcda2, 0x003f, 0xcff8, 0xcff7, 0xace6, 0xace9, 0xace8, 0xace7, 0xcff4, 0xcff6, 0xcff5, 0x003f, 0x003f, 0xd2e8, 0xafa7, 0xd2ec, 0xd2eb, 0xd2ea, 0xd2e6, 0xafa6, 0xafaa, 0xafad, 0x003f, 0x003f, 0xafae, 0xd2e7, 0xd2e9, 0xafac, 0xafab, 0xafa9, 0xafa8, 0xd6c2, 0x003f, 0xd6c0, 0xd6bc, 0xb2bb, 0x003f, 0xd6bd, 0xb2bc, 0xd6be, 0xd6bf, 0xd6c1, 0x003f, 0xb2bd, 0x003f, 0x003f, 0xdad5, 0x003f, 0xdad4, 0xdad3, 0xdad2, 0x003f, 0x003f, 0x003f, 0x003f, 0xdef6, 0xb852, 0x003f, 0xdef3, 0xdef5, 0x003f, 0xb853, 0x003f, 0xb854, 0xdef4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe341, 0x003f, 0xe2f9, 0xe2fa, 0x003f, 0xbad7, 0xbad5, 0xbad6, 0xe343, 0x003f, 0xe342, 0xe2fe, 0xe2fd, 0xe2fc, 0xe2fb, 0xe340, 0xe2f8, 0x003f, 0xe6cb, 0xe6d0, 0xe6ce, 0x003f, 0x003f, 0x003f, 0xe6cd, 0xe6cc, 0xe6cf, 0x003f, 0xeaae, 0x003f, 0xbf6d, 0xc148, 0xedb0, 0x003f, 0xc149, 0xedaf, 0xf05f, 0xf05e, 0xc2a7, 0x003f, 0xf2a5, 0xc3ab, 0xf4a1, 0xc5a1, 0xf6f7, 0x003f, 0xf8b7, 0xf8b6, 0xc9a8, 0xacea, 0xaceb, 0xd6c3, 0x003f, 0xb856, 0xa5dd, 0xa872, 0xa871, 0xa870, 0x003f, 0x003f, 0x003f, 0xcda4, 0x003f, 0x003f, 0xaac4, 0xaac3, 0x003f, 0xacee, 0x003f, 0xcffa, 0xcffd, 0xcffb, 0x003f, 0xacec, 0xaced, 0x003f, 0x003f, 0xcff9, 0xcffc, 0x003f, 0xafb5, 0x003f, 0x003f, 0x003f, 0xd2f3, 0xd2f5, 0xd2f4, 0xafb2, 0xd2ef, 0x003f, 0x003f, 0xafb0, 0xafaf, 0x003f, 0xafb3, 0xafb1, 0x003f, 0xafb4, 0xd2f2, 0xd2ed, 0xd2ee, 0xd2f1, 0xd2f0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6c6, 0xd6c7, 0xd6c5, 0x003f, 0xd6c4, 0xb2be, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7a00 .. 0x7aff */ 0xb57d, 0x003f, 0xdad6, 0xdad8, 0xdada, 0xb57c, 0x003f, 0x003f, 0xb57a, 0x003f, 0xdad7, 0xb57b, 0xdad9, 0xb579, 0x003f, 0x003f, 0xdf41, 0xdef7, 0xdefa, 0xdefe, 0xb85a, 0xdefc, 0x003f, 0xdefb, 0xdef8, 0xdef9, 0xb858, 0xdf40, 0xb857, 0x003f, 0xb85c, 0xb85b, 0xb859, 0x003f, 0xdefd, 0x003f, 0x003f, 0x003f, 0xe349, 0x003f, 0xe348, 0x003f, 0x003f, 0xe344, 0x003f, 0x003f, 0xbad8, 0xe347, 0xe346, 0xbad9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbd5e, 0x003f, 0xe6d2, 0x003f, 0xbd5f, 0xbd5b, 0xbd5d, 0x003f, 0xbd5a, 0xbd5c, 0x003f, 0x003f, 0x003f, 0xeaaf, 0x003f, 0xbf70, 0xeab1, 0xeab0, 0x003f, 0xe345, 0xbf72, 0xbf71, 0xbf6e, 0xbf6f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xedb5, 0x003f, 0xedb3, 0xc14a, 0xedb4, 0x003f, 0xedb6, 0xedb2, 0xedb1, 0x003f, 0x003f, 0xf060, 0xc2aa, 0xc2a8, 0xc2a9, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2a6, 0xf2a7, 0xc3ad, 0x003f, 0xc3ac, 0xf4a3, 0xf4a4, 0xf4a2, 0x003f, 0xf6f8, 0xf6f9, 0x003f, 0x003f, 0xa5de, 0xca48, 0xa873, 0x003f, 0xcda5, 0xaac6, 0xaac5, 0xcda6, 0x003f, 0x003f, 0xd040, 0xacef, 0xcffe, 0xacf0, 0x003f, 0x003f, 0xafb6, 0xd2f8, 0xd2f6, 0xd2fc, 0xafb7, 0xd2f7, 0xd2fb, 0xd2f9, 0xd2fa, 0x003f, 0x003f, 0xd6c8, 0xd6ca, 0x003f, 0xb2bf, 0x003f, 0xd6c9, 0xb2c0, 0xb5a2, 0xb5a1, 0xb57e, 0xdadb, 0x003f, 0x003f, 0x003f, 0x003f, 0xdf44, 0xb85d, 0xb85e, 0x003f, 0xdf43, 0xdf42, 0x003f, 0x003f, 0x003f, 0x003f, 0xe34a, 0xbadb, 0xbada, 0xe34b, 0xe34c, 0x003f, 0xbd61, 0xbd60, 0x003f, 0xeab5, 0xe6d3, 0xe6d5, 0xe6d4, 0xeab4, 0xeab2, 0xeab6, 0xeab3, 0x003f, 0xbf73, 0x003f, 0x003f, 0x003f, 0xedb7, 0xc14b, 0xedb8, 0xedb9, 0x003f, 0x003f, 0xc2ab, 0xc2ac, 0x003f, 0xc475, 0x003f, 0x003f, 0xc5d1, 0xa5df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd041, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd2fd, 0xafb8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ba, 0xb3b9, 0x003f, 0x003f, 0xb5a4, 0xdadd, 0xb5a3, 0xdadc, 0x003f, 0x003f, 0x003f, 0x003f, 0xdf45, 0x003f, 0xbadc, 0xe34d, 0xbadd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc476, 0xf4a5, 0x003f, 0xa6cb, 0xaac7, 0xcda7, 0x003f, 0xacf2, 0x003f, 0xacf1, /* 0x7b00 .. 0x7bff */ 0xd042, 0xd043, 0x003f, 0x003f, 0xd340, 0xd342, 0xafb9, 0x003f, 0xd344, 0xd347, 0xd345, 0x003f, 0x003f, 0x003f, 0xd346, 0xd343, 0xd2fe, 0xafba, 0xd348, 0xd341, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6d3, 0xb2c6, 0xd6dc, 0xb2c3, 0x003f, 0xd6d5, 0xb2c7, 0x003f, 0xb2c1, 0x003f, 0xd6d0, 0xd6dd, 0xd6d1, 0xd6ce, 0xb2c5, 0x003f, 0xb2c2, 0x003f, 0xd6d4, 0xd6d7, 0xb2c4, 0xd6d8, 0xb2c8, 0xd6d9, 0xd6cf, 0xd6d6, 0xd6da, 0xd6d2, 0xd6cd, 0xd6cb, 0x003f, 0x003f, 0xd6db, 0x003f, 0x003f, 0xdadf, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae4, 0x003f, 0x003f, 0x003f, 0xdae0, 0xdae6, 0xb5a7, 0xd6cc, 0xdae1, 0xb5a5, 0xdade, 0xb5ac, 0xdae2, 0xb5ab, 0xdae3, 0xb5ad, 0xb5a8, 0xb5ae, 0xb5a9, 0x003f, 0xb5aa, 0x003f, 0xb5a6, 0x003f, 0xdae5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb861, 0xdf50, 0x003f, 0xdf53, 0xdf47, 0xdf4c, 0xdf46, 0xb863, 0x003f, 0xdf4a, 0x003f, 0x003f, 0x003f, 0xdf48, 0xb862, 0x003f, 0xdf4f, 0xdf4e, 0xdf4b, 0xdf4d, 0xdf49, 0xbae1, 0xdf52, 0xb85f, 0xdf51, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe35d, 0x003f, 0xbae8, 0xe358, 0x003f, 0xbae7, 0xe34e, 0x003f, 0xe350, 0xbae0, 0xe355, 0xe354, 0xe357, 0xbae5, 0xe352, 0xe351, 0x003f, 0x003f, 0xbae4, 0xbadf, 0xe353, 0xbae2, 0xe359, 0xe35b, 0x003f, 0xe356, 0xe34f, 0xbae3, 0x003f, 0x003f, 0xbd69, 0xbade, 0x003f, 0x003f, 0xe35c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d9, 0xbd62, 0x003f, 0xe6db, 0x003f, 0xbd63, 0x003f, 0x003f, 0xbd65, 0xe6de, 0x003f, 0xe6d6, 0xbae6, 0xe6dc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6d8, 0x003f, 0xb860, 0xbd68, 0x003f, 0x003f, 0xbd64, 0x003f, 0xbd66, 0xbd67, 0x003f, 0xbf76, 0xe6dd, 0xe6d7, 0xbd6a, 0x003f, 0xe6da, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeac0, 0xeabb, 0x003f, 0x003f, 0xeac5, 0xbf74, 0xeabd, 0xbf78, 0xeac3, 0xeaba, 0xeab7, 0xeac6, 0xc151, 0xbf79, 0xeac2, 0xeab8, 0xbf77, 0xeabc, 0xbf7b, 0xeab9, 0xeabe, 0xbf7a, 0xeac1, 0xeac4, 0x003f, 0x003f, 0x003f, 0x003f, 0xedcb, 0xedcc, 0xedbc, 0xedc3, 0xedc1, 0x003f, 0x003f, 0xc14f, 0xedc8, 0xeabf, 0x003f, 0xedbf, 0x003f, 0xedc9, 0xc14e, 0xedbe, /* 0x7c00 .. 0x7cff */ 0xedbd, 0xedc7, 0xedc4, 0xedc6, 0x003f, 0xedba, 0xedca, 0xc14c, 0x003f, 0xedc5, 0xedce, 0xedc2, 0xc150, 0xc14d, 0xedc0, 0xedbb, 0xedcd, 0xbf75, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf063, 0x003f, 0x003f, 0xf061, 0xf067, 0xc2b0, 0xf065, 0xf064, 0xc2b2, 0xf06a, 0xc2b1, 0x003f, 0xf06b, 0xf068, 0xc2ae, 0xf069, 0xf062, 0xc2af, 0xc2ad, 0xf2ab, 0xf066, 0x003f, 0x003f, 0xf06c, 0x003f, 0x003f, 0xf2a8, 0x003f, 0x003f, 0x003f, 0xc3b2, 0xc3b0, 0xf2aa, 0x003f, 0xf2ac, 0xf2a9, 0xc3b1, 0xc3ae, 0xc3af, 0xc3b3, 0x003f, 0x003f, 0xc478, 0x003f, 0xf4aa, 0x003f, 0xf4a9, 0xf4a7, 0xf4a6, 0xf4a8, 0x003f, 0xc477, 0xc479, 0x003f, 0x003f, 0xc4f0, 0x003f, 0x003f, 0xf5e5, 0xf5e4, 0x003f, 0x003f, 0xf6fa, 0x003f, 0xf6fc, 0xf6fe, 0xf6fd, 0xf6fb, 0x003f, 0x003f, 0xc5a3, 0xc5a2, 0x003f, 0x003f, 0xc5d3, 0xc5d2, 0xc5d4, 0xf7ed, 0xf7ec, 0x003f, 0xf8fb, 0xf8b8, 0xf8fc, 0xc658, 0x003f, 0xc659, 0xf96d, 0x003f, 0x003f, 0xc67e, 0xa6cc, 0x003f, 0xcda8, 0x003f, 0x003f, 0xd045, 0xd046, 0xd044, 0x003f, 0x003f, 0xacf3, 0x003f, 0xd047, 0xd048, 0xd049, 0x003f, 0x003f, 0xd349, 0xd34f, 0x003f, 0x003f, 0xd34d, 0xafbb, 0xd34b, 0x003f, 0xd34c, 0xd34e, 0x003f, 0x003f, 0x003f, 0xd34a, 0xb2c9, 0x003f, 0xd6de, 0xb2cb, 0xd6e0, 0xb2ca, 0xd6df, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdae8, 0xb5af, 0x003f, 0xdaea, 0xdae7, 0xd6e1, 0x003f, 0xb5b0, 0x003f, 0xf9db, 0xdae9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdf56, 0x003f, 0xb864, 0xdf54, 0xb865, 0xdf55, 0xb866, 0x003f, 0x003f, 0x003f, 0xbae9, 0xe361, 0xe35e, 0xe360, 0xbaea, 0xbaeb, 0xe35f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6df, 0x003f, 0x003f, 0xe6e0, 0x003f, 0xbd6b, 0xe6e2, 0xe6e1, 0x003f, 0xa261, 0x003f, 0xeaca, 0xeacb, 0xeac7, 0x003f, 0xeac8, 0xbf7c, 0xbf7d, 0xeac9, 0x003f, 0xc157, 0x003f, 0x003f, 0xc153, 0xc158, 0xc154, 0xc156, 0xc152, 0x003f, 0xc155, 0x003f, 0x003f, 0x003f, 0x003f, 0xc2b3, 0xedcf, 0x003f, 0xf2ae, 0x003f, 0xf2ad, 0x003f, 0xf4ab, 0xc47a, 0xc47b, 0xf741, 0xf5e6, 0x003f, 0xf740, 0x003f, 0xf8fd, 0xf9a4, 0xa6cd, 0x003f, 0x003f, 0xa874, 0x003f, 0xcda9, 0xaac8, 0x003f, /* 0x7d00 .. 0x7dff */ 0xacf6, 0xd04c, 0xacf4, 0xd04a, 0xacf9, 0xacf5, 0xacfa, 0xacf8, 0xd04b, 0xacf7, 0xafbf, 0xafbe, 0xd35a, 0xafc7, 0xd353, 0xd359, 0xafc3, 0xd352, 0xd358, 0xd356, 0xafc2, 0xafc4, 0xd355, 0xafbd, 0xd354, 0xafc8, 0xafc5, 0xafc9, 0xafc6, 0xd351, 0xd350, 0xd357, 0xafc0, 0xafbc, 0xafc1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd6f0, 0xd6e9, 0x003f, 0xb5b5, 0xd6e8, 0x003f, 0xb2cf, 0xb2d6, 0xb2d3, 0xb2d9, 0xb2d8, 0xb2d4, 0x003f, 0xd6e2, 0xd6e5, 0x003f, 0xd6e4, 0xb2d0, 0xd6e6, 0xd6ef, 0xb2d1, 0xd6e3, 0xd6ec, 0xd6ed, 0xb2d2, 0xd6ea, 0xb2d7, 0xb2cd, 0xb2d5, 0xd6e7, 0xb2cc, 0xd6eb, 0x003f, 0x003f, 0xd6ee, 0x003f, 0x003f, 0x003f, 0xdafb, 0xdaf2, 0xb5b2, 0xdaf9, 0xdaf6, 0xdaee, 0xdaf7, 0xb5b4, 0xdaef, 0x003f, 0xdaeb, 0x003f, 0x003f, 0xb86c, 0xdaf4, 0x003f, 0xb5b1, 0xdafa, 0x003f, 0xb5b8, 0xb5ba, 0xdaed, 0x003f, 0x003f, 0xb5b9, 0xdaf0, 0xb5b3, 0xdaf8, 0xdaf1, 0xdaf5, 0x003f, 0xdaf3, 0xb5b6, 0xdaec, 0xb5bb, 0xb2ce, 0xb5b7, 0xb5bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb868, 0xdf5d, 0xdf5f, 0xdf61, 0xdf65, 0x003f, 0xdf5b, 0xdf59, 0xb86a, 0x003f, 0xdf60, 0xdf64, 0xdf5c, 0xdf58, 0x003f, 0xdf57, 0x003f, 0x003f, 0x003f, 0xdf62, 0xdf5a, 0xdf5e, 0xb86b, 0x003f, 0xb869, 0xdf66, 0xb867, 0xdf63, 0x003f, 0xe372, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbaee, 0xe36a, 0xbd78, 0xe374, 0xbaf1, 0xe378, 0xbaf7, 0xe365, 0x003f, 0x003f, 0xe375, 0xe362, 0x003f, 0xe377, 0xe366, 0x003f, 0xbafe, 0xbafb, 0xe376, 0xe370, 0xbaed, 0xbaf5, 0xbaf4, 0x003f, 0xbaf3, 0xbaf9, 0x003f, 0xe363, 0xbafa, 0xe371, 0xbaf6, 0xbaec, 0xe373, 0xbaef, 0xbaf0, 0xbaf8, 0xe368, 0xe367, 0xe364, 0x003f, 0xe36c, 0xe369, 0xe36d, 0xbafd, 0x003f, 0xe379, 0xbaf2, 0xe36e, 0xe36f, 0x003f, 0xe36b, 0x003f, 0x003f, 0x003f, 0xbafc, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6e7, 0xbd70, 0xbd79, 0xbd75, 0xe6e4, 0x003f, 0xbd72, 0xbd76, 0xe6f0, 0xbd6c, 0xe6e8, 0x003f, 0xbd74, 0x003f, 0x003f, 0xe6eb, 0xe6e6, 0xbd73, 0xbd77, 0xe6e5, 0x003f, 0xbd71, 0x003f, 0xe6ef, 0xbd6e, 0xe6ee, 0xe6ed, 0xbd7a, 0xe572, 0xbd6d, 0x003f, 0xe6ec, 0xe6e3, 0x003f, 0xbd7b, 0xe6ea, 0xbd6f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7e00 .. 0x7eff */ 0x003f, 0x003f, 0x003f, 0xe6e9, 0x003f, 0x003f, 0x003f, 0x003f, 0xbfa2, 0xbfa7, 0xbf7e, 0xead8, 0xeacf, 0xeadb, 0xead3, 0xead9, 0xbfa8, 0xbfa1, 0xeacc, 0xead2, 0xeadc, 0xead5, 0xeada, 0xeace, 0x003f, 0x003f, 0xead6, 0xbfa3, 0xead4, 0xbfa6, 0xbfa5, 0xead0, 0xead1, 0xeacd, 0xead7, 0xbfa4, 0xeade, 0xeadd, 0x003f, 0x003f, 0x003f, 0xedda, 0xedd6, 0xc15f, 0x003f, 0xedd0, 0xc159, 0xc169, 0xeddc, 0xc161, 0xc15d, 0xedd3, 0xc164, 0xc167, 0xedde, 0xc15c, 0xedd5, 0xc165, 0xede0, 0xeddd, 0xedd1, 0xc160, 0xc15a, 0xc168, 0xedd8, 0xc163, 0xedd2, 0xc15e, 0xeddf, 0xc162, 0xc15b, 0xedd9, 0xc166, 0xedd7, 0x003f, 0x003f, 0xeddb, 0x003f, 0x003f, 0x003f, 0xf06e, 0xf074, 0xc2b9, 0xf077, 0xc2b4, 0xc2b5, 0xf06f, 0xf076, 0xf071, 0xc2ba, 0xc2b7, 0x003f, 0xf06d, 0x003f, 0xc2b6, 0xf073, 0xf075, 0xc2b8, 0xf072, 0xf070, 0x003f, 0x003f, 0x003f, 0x003f, 0xf2b8, 0xc3b7, 0xc3b8, 0xc3b4, 0x003f, 0xc3b5, 0x003f, 0xf2b4, 0xf2b2, 0x003f, 0xf2b6, 0xc3ba, 0xf2b7, 0xf2b0, 0xf2af, 0xf2b3, 0xf2b1, 0xc3b6, 0xf2b5, 0xf4ac, 0xc47e, 0xc47d, 0xf4ad, 0x003f, 0xf4af, 0xf4ae, 0xc4a1, 0x003f, 0x003f, 0x003f, 0xf5eb, 0xf5e8, 0xf5e9, 0x003f, 0xf5e7, 0xf5ea, 0xc4f2, 0xf5ec, 0x003f, 0xc4f1, 0x003f, 0xf742, 0x003f, 0xc5d5, 0xc5d7, 0xf7ee, 0xc5d6, 0xf8b9, 0xf940, 0xf942, 0xf8fe, 0xf941, 0xc66c, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x7f00 .. 0x7fff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6ce, 0x003f, 0xacfb, 0xd26f, 0xafca, 0x003f, 0x003f, 0xb2da, 0xdafc, 0xdafd, 0x003f, 0x003f, 0x003f, 0xeadf, 0xc16a, 0xede1, 0x003f, 0x003f, 0xc2bb, 0x003f, 0xf2ba, 0xf2b9, 0xc4a2, 0xf5ed, 0x003f, 0xf743, 0xc5f8, 0xca49, 0x003f, 0x003f, 0xaac9, 0xa875, 0x003f, 0x003f, 0xd04d, 0x003f, 0x003f, 0xd360, 0xd35b, 0xd35f, 0xd35d, 0xafcb, 0xd35e, 0xd35c, 0x003f, 0xd6f1, 0x003f, 0xdafe, 0xdb40, 0xdf69, 0xdf6a, 0xb86e, 0xb86f, 0xdf68, 0xdf6b, 0xdf67, 0xb86d, 0x003f, 0xbb40, 0x003f, 0xb870, 0xe37a, 0x003f, 0xbd7c, 0xe6f1, 0xbd7d, 0x003f, 0xbfa9, 0xeae2, 0xeae0, 0xeae1, 0xede4, 0xede3, 0xede2, 0x003f, 0x003f, 0x003f, 0xf2bb, 0x003f, 0xc3b9, 0xf2bc, 0xf744, 0xc5f9, 0xf8ba, 0xa6cf, 0xaacb, 0xaaca, 0xd04f, 0xacfc, 0x003f, 0x003f, 0xd04e, 0xd362, 0x003f, 0xafcc, 0xd6f2, 0xd361, 0x003f, 0x003f, 0x003f, 0xb2dc, 0xd6f5, 0xd6f3, 0xd6f4, 0xb2db, 0x003f, 0xdb42, 0xdb43, 0xdb41, 0x003f, 0xb873, 0xdf6d, 0xdf6c, 0xdf6e, 0xb872, 0xb871, 0x003f, 0x003f, 0xe6f2, 0xe6f4, 0x003f, 0xbd7e, 0xe6f3, 0xeae3, 0xbfaa, 0xf079, 0x003f, 0xf078, 0xc3bb, 0xf2bd, 0xc3bd, 0xc3bc, 0xf4b0, 0xf5ee, 0xc4f3, 0xa6d0, 0xd050, 0xacfd, 0xd365, 0xafce, 0xd364, 0xd363, 0x003f, 0xafcd, 0x003f, 0xd6fb, 0x003f, 0xd6fd, 0xd6f6, 0xd6f7, 0xb2dd, 0xd6f8, 0xb2de, 0xd6fc, 0xd6f9, 0xd6fa, 0xb2df, 0x003f, 0xb5be, 0xb5bf, 0x003f, 0xdb44, 0x003f, 0x003f, 0x003f, 0xdf6f, 0xdf70, 0x003f, 0xe37e, 0xbb43, 0xbb41, 0xbb42, 0xe37b, 0xe37c, 0x003f, 0xe37d, 0xe6f9, 0x003f, 0xe6fa, 0xbda1, 0xe6f7, 0xe6f6, 0xe6f8, 0xe6f5, 0xbfad, 0xeae4, 0xbfab, 0xbfac, 0xede6, 0xc16b, 0xede5, 0xefa8, 0x003f, 0xf07a, 0xf07b, 0xc2bc, 0x003f, 0xc2bd, 0xc16c, 0xf2be, 0xf2bf, 0xf4b1, /* 0x8000 .. 0x80ff */ 0xc4a3, 0xa6d1, 0x003f, 0xa6d2, 0xacfe, 0xaacc, 0xafcf, 0xd051, 0x003f, 0x003f, 0x003f, 0xb5c0, 0xa6d3, 0xad41, 0xd052, 0xd053, 0xad40, 0xad42, 0xa6d4, 0x003f, 0xd054, 0xafd1, 0xd366, 0xafd3, 0xafd0, 0xafd2, 0x003f, 0xd741, 0xb2e0, 0x003f, 0xd740, 0xd6fe, 0x003f, 0xdf71, 0x003f, 0x003f, 0xe3a1, 0x003f, 0xbda2, 0x003f, 0xbfae, 0xeae6, 0xeae5, 0x003f, 0xede7, 0x003f, 0x003f, 0x003f, 0xf5ef, 0x003f, 0x003f, 0xa6d5, 0xcb73, 0xcdaa, 0xad43, 0xd055, 0x003f, 0xd368, 0x003f, 0x003f, 0x003f, 0xafd4, 0xd367, 0xafd5, 0x003f, 0x003f, 0x003f, 0xd743, 0x003f, 0x003f, 0xb2e2, 0xd742, 0xd744, 0x003f, 0xb2e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xdb46, 0xdb47, 0xdb45, 0xb5c1, 0x003f, 0x003f, 0x003f, 0xb874, 0x003f, 0xb875, 0x003f, 0xbb45, 0x003f, 0xe3a3, 0xe3a2, 0xbb44, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe6fb, 0x003f, 0x003f, 0xe6fc, 0x003f, 0x003f, 0x003f, 0x003f, 0xeae7, 0x003f, 0x003f, 0xc170, 0xc16f, 0xc16d, 0xc16e, 0xc171, 0x003f, 0xf07c, 0xc2bf, 0xc2be, 0xf2c0, 0xf4b2, 0x003f, 0x003f, 0x003f, 0xc5a5, 0xc5a4, 0xa6d6, 0x003f, 0x003f, 0xd1fb, 0x003f, 0xb877, 0xb5c2, 0xb876, 0xbb46, 0x003f, 0xa6d7, 0xc9a9, 0xa6d8, 0xa6d9, 0x003f, 0x003f, 0xcdab, 0xcb76, 0x003f, 0xcb77, 0xa877, 0x003f, 0xcb74, 0xa876, 0x003f, 0xa879, 0xcb75, 0xa87b, 0xa87a, 0xcb78, 0xa878, 0x003f, 0x003f, 0x003f, 0xaad1, 0xaacf, 0xcdad, 0x003f, 0xaace, 0x003f, 0x003f, 0x003f, 0xaad3, 0xaad5, 0xaad2, 0x003f, 0xcdb0, 0xcdac, 0xaad6, 0x003f, 0xaad0, 0xa87c, 0x003f, 0xaad4, 0xcdaf, 0x003f, 0x003f, 0xcdae, 0x003f, 0xaacd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd05b, 0xad47, 0xad48, 0xd05d, 0x003f, 0xd057, 0xd05a, 0xd063, 0xd061, 0x003f, 0xad49, 0xd067, 0xad4c, 0xd064, 0xd05c, 0xd059, 0x003f, 0x003f, 0xdb49, 0xd062, 0xad44, 0xd065, 0xd056, 0xd05f, 0xad46, 0xad4b, 0xd060, 0xad4f, 0xad4d, 0x003f, 0xd058, 0xad4a, 0x003f, 0xd05e, 0xad4e, 0xad45, 0xd066, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xafda, 0x003f, 0xafe3, 0xafd8, 0xafd6, 0xd36a, 0xafde, 0xafdb, 0xd36c, 0x003f, 0x003f, 0xafdd, 0xd36b, 0xd369, 0xd36e, 0xafe2, 0xafe0, 0xdb48, 0x003f, /* 0x8100 .. 0x81ff */ 0xd36f, 0xd36d, 0xafd7, 0x003f, 0x003f, 0xafd9, 0xafdc, 0x003f, 0xafdf, 0x003f, 0xafe1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd74e, 0xb2e4, 0x003f, 0xd745, 0xd747, 0x003f, 0xd748, 0x003f, 0xd750, 0xd74c, 0xd74a, 0x003f, 0xd74d, 0xd751, 0xb2e5, 0xb2e9, 0xd746, 0x003f, 0xd74f, 0x003f, 0xb2e7, 0x003f, 0xb2e6, 0xd74b, 0xd749, 0x003f, 0xb2e3, 0xb2e8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5c8, 0xdb51, 0x003f, 0x003f, 0xdb4f, 0xb5ca, 0x003f, 0x003f, 0x003f, 0x003f, 0xdb4a, 0xdfa1, 0x003f, 0xb5c9, 0xdb4e, 0x003f, 0x003f, 0xdb4b, 0xb5c5, 0xb5cb, 0xdb50, 0xb5c7, 0xdb4d, 0xbb47, 0xb5c6, 0xdb4c, 0xb5cc, 0xb5c4, 0xb5c3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdf77, 0xdf75, 0x003f, 0xdf7b, 0x003f, 0xdf73, 0xdfa2, 0xdf78, 0x003f, 0xdf72, 0xb87b, 0xb8a3, 0xdf7d, 0x003f, 0xdf76, 0x003f, 0xb87e, 0x003f, 0x003f, 0xb87c, 0xdf7e, 0xb879, 0xb878, 0xdf79, 0xb87d, 0xb5cd, 0x003f, 0xdf7c, 0xdf74, 0xb87a, 0xb8a1, 0xb8a2, 0x003f, 0x003f, 0x003f, 0x003f, 0xbb4c, 0xbb48, 0x003f, 0xbb4d, 0xe3a6, 0x003f, 0x003f, 0xe3a5, 0xe3a7, 0xbb4a, 0xe3a4, 0xbb4b, 0xe3aa, 0xe3a9, 0xe3a8, 0x003f, 0xbb49, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe741, 0x003f, 0xe744, 0xbda8, 0xe743, 0xbda7, 0xbda3, 0xbda4, 0xbda5, 0xe740, 0xe6fe, 0xbda6, 0x003f, 0xe742, 0xe6fd, 0x003f, 0x003f, 0xeae9, 0xeaf3, 0xbfb1, 0xbfb0, 0x003f, 0xeaed, 0xeaef, 0x003f, 0xeaea, 0x003f, 0xeaee, 0xeae8, 0xeaf1, 0xbfaf, 0xeaf0, 0xeaec, 0x003f, 0xeaf2, 0x003f, 0xeaeb, 0xc174, 0xede8, 0xedee, 0xc178, 0xc17a, 0xc177, 0xc176, 0x003f, 0xc175, 0xc173, 0xede9, 0xedec, 0xc172, 0xeded, 0x003f, 0xc179, 0xedeb, 0x003f, 0xedea, 0xc2c0, 0x003f, 0xc2c1, 0xf0a1, 0xf07d, 0xf07e, 0x003f, 0x003f, 0xf2c2, 0x003f, 0xf2c1, 0xc3be, 0xf4b4, 0xc4a4, 0xf4b3, 0x003f, 0xf5f0, 0xf745, 0xc5a6, 0xf943, 0xf944, 0xc5d8, 0xa6da, 0x003f, 0xaad7, 0xdb52, 0xbb4e, 0xc17b, 0xedef, 0xa6db, 0x003f, 0xafe5, 0xafe4, 0xdb53, 0x003f, 0x003f, 0x003f, 0xeaf4, 0xa6dc, 0xad50, 0x003f, 0x003f, 0xdb54, 0xdb55, 0xdb56, 0xbb4f, 0xbfb2, 0xa6dd, 0x003f, 0xaad8, 0xd068, /* 0x8200 .. 0x82ff */ 0xafe6, 0xd370, 0xb2ea, 0x003f, 0xdb57, 0xb8a4, 0x003f, 0xbb50, 0xbfb3, 0xc17c, 0xc2c2, 0xf4b5, 0xa6de, 0xaad9, 0x003f, 0x003f, 0xafe7, 0xd752, 0xb5ce, 0x003f, 0xbb51, 0xe3ab, 0xe745, 0x003f, 0x003f, 0x003f, 0x003f, 0xa6df, 0xb5cf, 0xdfa3, 0xbb52, 0xa6e0, 0xcdb1, 0xd069, 0xad51, 0x003f, 0x003f, 0xd372, 0x003f, 0x003f, 0xafea, 0x003f, 0xafe8, 0xafe9, 0xafeb, 0x003f, 0x003f, 0xd371, 0x003f, 0x003f, 0xd757, 0xd754, 0xd756, 0xb2eb, 0xb2ed, 0xb2ec, 0xd753, 0xb2ee, 0xd755, 0x003f, 0xdb58, 0xdb59, 0x003f, 0xdb5a, 0xdfa6, 0x003f, 0xdfa7, 0x003f, 0xdfa5, 0xdfa8, 0x003f, 0xb8a5, 0x003f, 0xdfa4, 0x003f, 0xbb53, 0x003f, 0x003f, 0xe74a, 0xe746, 0xe749, 0xe74b, 0xe748, 0xe747, 0x003f, 0xeaf5, 0xeaf6, 0xeaf7, 0xbfb4, 0xbfb5, 0xedf1, 0xedf0, 0xedf2, 0x003f, 0xf0a3, 0xf0a2, 0x003f, 0xf2c4, 0x003f, 0xf2c5, 0xf2c3, 0x003f, 0xc4a5, 0x003f, 0xf4b6, 0xf4b7, 0x003f, 0xf746, 0xf7ef, 0xf8bb, 0xa6e1, 0xa87d, 0x003f, 0xc17d, 0xa6e2, 0x003f, 0xd758, 0xdb5b, 0x003f, 0xc641, 0xca4a, 0x003f, 0x003f, 0x003f, 0xca4b, 0xca4d, 0xa6e3, 0xca4e, 0xca4c, 0x003f, 0x003f, 0xcba2, 0xcba3, 0xcb7b, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba1, 0xa8a1, 0x003f, 0xa8a2, 0xcb7c, 0xcb7a, 0xcb79, 0xcb7d, 0xa87e, 0xcb7e, 0xd06a, 0x003f, 0x003f, 0x003f, 0xcdb6, 0xaadc, 0xcdb5, 0xcdb7, 0x003f, 0xaadb, 0xcdbc, 0xaadf, 0xcdb2, 0xcdc0, 0xcdc6, 0xaae6, 0xcdc3, 0xaae3, 0x003f, 0xcdb9, 0xcdbf, 0xcdc1, 0x003f, 0xcdb4, 0xaae2, 0xaadd, 0xcdba, 0xaae4, 0xaae7, 0xaae1, 0x003f, 0xaada, 0xcdbe, 0xcdb8, 0xcdc5, 0xaae9, 0xaae5, 0xaae0, 0xcdbd, 0xafec, 0xcdbb, 0xaade, 0xaae8, 0x003f, 0xcdb3, 0x003f, 0xcdc2, 0xcdc4, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xad62, 0xad5c, 0xad64, 0xad61, 0xd071, 0xd074, 0xad5d, 0x003f, 0xd06b, 0x003f, 0xad56, 0xad60, 0x003f, 0xad63, 0xad65, 0xd0a2, 0xd077, 0x003f, 0xad55, 0xd0a1, 0xad59, 0xad57, 0xad52, 0xd06f, 0x003f, 0xd07e, 0xd073, 0xd076, 0xd0a5, 0x003f, 0xad66, 0xd07d, 0xad5e, 0xd078, 0xd0a4, 0xd075, 0xd079, 0xd07c, 0x003f, 0x003f, 0xd06d, 0xd0a3, 0xd07b, 0x003f, 0x003f, 0xd06c, 0x003f, /* 0x8300 .. 0x83ff */ 0xd070, 0xad5f, 0xad5a, 0xad53, 0xad58, 0xad54, 0xad67, 0xd06e, 0xd3a5, 0xad5b, 0x003f, 0x003f, 0xd07a, 0xce41, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3a8, 0xaffa, 0x003f, 0xd376, 0x003f, 0xd3a3, 0xd37d, 0x003f, 0xd3b2, 0x003f, 0xd3aa, 0x003f, 0xd37e, 0x003f, 0xd3a9, 0xd378, 0xd37c, 0xd3b5, 0xaffd, 0xd3ad, 0xd3a4, 0xafed, 0xd3b3, 0xd374, 0x003f, 0xd3ac, 0x003f, 0xaffc, 0xaff7, 0xd373, 0xaff5, 0xaff4, 0xaff9, 0xd3ab, 0xaff1, 0xaff8, 0xd072, 0xdb5c, 0xd3a6, 0x003f, 0x003f, 0xd37a, 0xaffb, 0xd37b, 0xd3a1, 0xaffe, 0xd375, 0xd3af, 0x003f, 0xd3ae, 0xd3b6, 0xaff3, 0xaff0, 0xd3b4, 0xd3b0, 0xd3a7, 0xd3a2, 0xaff6, 0xaff2, 0xd377, 0xafee, 0xd3b1, 0xafef, 0x003f, 0xd379, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd75e, 0xd760, 0xd765, 0xd779, 0xb2fc, 0xb2f2, 0x003f, 0xd75d, 0xb2fd, 0xb2fe, 0xd768, 0xd76f, 0xd775, 0x003f, 0xd762, 0x003f, 0xd769, 0x003f, 0x003f, 0xb340, 0xd777, 0xd772, 0xb2fa, 0xb2f8, 0xd76e, 0xd76a, 0xd75c, 0xb2ef, 0xd761, 0xd759, 0x003f, 0xb2f7, 0xb2f9, 0xd766, 0xd763, 0xb2f4, 0xd773, 0xb2f1, 0xd764, 0xd77a, 0xd76c, 0x003f, 0xd76b, 0xb2f0, 0x003f, 0xb2fb, 0x003f, 0xb2f3, 0xd75a, 0xd75f, 0xd770, 0xd776, 0xb341, 0xd75b, 0xd767, 0xd76d, 0xb2f6, 0x003f, 0x003f, 0xd778, 0xd771, 0xd774, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb2f5, 0x003f, 0xdb6c, 0xdb60, 0xb5d7, 0xdb7d, 0xdba7, 0xdbaa, 0xb5d5, 0xdb68, 0xdba3, 0xdb69, 0xdb77, 0xb5e2, 0xdb73, 0xb5df, 0x003f, 0xdb74, 0xdb5d, 0x003f, 0xdba4, 0x003f, 0x003f, 0xb5e8, 0xdba1, 0xdb75, 0xdbac, 0xdb70, 0xdfc8, 0x003f, 0xdbaf, 0xb5e6, 0xdb6e, 0xdb7a, 0xb5e9, 0xb5d4, 0xdb72, 0xdbad, 0xdb6b, 0xdb64, 0xdb6f, 0x003f, 0xdb63, 0xdb61, 0xb5d0, 0xdba5, 0xdb6a, 0xdba8, 0x003f, 0xdba9, 0xb5d8, 0xb5dd, 0xb5d9, 0xb5e1, 0xdb7e, 0xb5da, 0xdb76, 0xdb66, 0x003f, 0xb5d2, 0xdb5e, 0xdba2, 0xdbab, 0xdb65, 0xb5e0, 0xdbb0, 0xdb71, /* 0x8400 .. 0x84ff */ 0x003f, 0xdb6d, 0x003f, 0xb5d1, 0xb5e5, 0x003f, 0xdb7c, 0xb5e7, 0x003f, 0xdb78, 0xb5dc, 0xb5d6, 0xb5de, 0xb5d3, 0xb5e4, 0xdb79, 0xdb67, 0xdb7b, 0xdb62, 0xdba6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbae, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdb5f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfc7, 0x003f, 0xdfdd, 0xb855, 0xdfcc, 0x003f, 0xdfca, 0xdfb5, 0xb8a9, 0xdfc5, 0xdfd9, 0xdfc1, 0xb8b1, 0xdfd8, 0xdfbf, 0xb5e3, 0xdfcf, 0xdfc0, 0xdfd6, 0xb8b0, 0xb8a8, 0x003f, 0xdfaa, 0xdfb2, 0x003f, 0xdfcb, 0xdfc3, 0xdfdc, 0xdfc6, 0xb8b6, 0xdfd7, 0x003f, 0xb8ad, 0x003f, 0xdfc9, 0xdfd1, 0xdfb6, 0xdfd0, 0x003f, 0xdfe1, 0xdfb1, 0xdfd2, 0x003f, 0xdfdf, 0x003f, 0xdfab, 0xb5db, 0x003f, 0xdfb9, 0xdfb8, 0xb8af, 0x003f, 0xdfbc, 0xdfbe, 0xdfcd, 0xdfde, 0xb8b2, 0x003f, 0xb8b3, 0x003f, 0xdfb0, 0xb8ab, 0xdfb4, 0xdfda, 0xb8b4, 0x003f, 0xb8ac, 0xb8ae, 0xb8b5, 0xdfe0, 0xdfd3, 0xdfce, 0x003f, 0x003f, 0xdfbb, 0xdfba, 0xb8aa, 0xdfac, 0xb8a7, 0xdfc4, 0xdfad, 0xdfc2, 0x003f, 0x003f, 0xdfb7, 0xdfdb, 0x003f, 0x003f, 0x003f, 0xb8a6, 0x003f, 0x003f, 0x003f, 0xdfb3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfaf, 0xdfd5, 0xdfae, 0xbb60, 0xe3d3, 0x003f, 0x003f, 0xe3c2, 0x003f, 0x003f, 0xe3ac, 0xe3ca, 0xbb58, 0xe3bb, 0xe3c5, 0xbb5b, 0xe3be, 0xbb59, 0xe3af, 0xe3cd, 0xe3ae, 0xe3c1, 0x003f, 0xe3ad, 0x003f, 0x003f, 0xe3bf, 0xe3c8, 0xe3c6, 0xe3ba, 0xe3b5, 0xe3b3, 0x003f, 0xe3b4, 0xe3c7, 0xe3d2, 0xe3bc, 0xbb5a, 0x003f, 0xe3b7, 0x003f, 0xe3cb, 0x003f, 0xbb5d, 0xe3b6, 0xe3b0, 0xe3c0, 0xbb61, 0x003f, 0x003f, 0xbb55, 0xbb5e, 0xe3b8, 0xe3b2, 0x003f, 0xbb57, 0xdfd4, 0xbb56, 0xe3c3, 0x003f, 0xbb54, 0xbb63, 0xbb5c, 0xe3c4, 0xe3b9, 0xe3b1, 0xe3cc, 0xe3bd, 0xbb62, 0xe3d0, 0xbb5f, 0xe3cf, 0x003f, 0xe3c9, 0xe3ce, 0x003f, 0x003f, 0x003f, 0xe3d1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe773, 0xe774, 0xe767, 0xe766, 0xe762, 0xbdb4, 0x003f, 0xbdac, 0xe776, 0xe775, 0xdfa9, 0xe75f, 0xe763, 0xe75d, 0x003f, 0xe770, 0xe761, 0x003f, 0xe777, 0xe75a, 0xe758, 0xe764, 0xe76e, 0xe769, 0xbdb6, /* 0x8500 .. 0x85ff */ 0xe74f, 0x003f, 0xe76d, 0x003f, 0x003f, 0x003f, 0xbdb7, 0xdfbd, 0xe75b, 0xe752, 0xe755, 0xe77b, 0xe75c, 0xe753, 0xe751, 0xe74e, 0x003f, 0xbdb0, 0xe765, 0xbdaf, 0xbdb3, 0xe760, 0xe768, 0xbda9, 0xe778, 0xe77c, 0xbdab, 0x003f, 0xe757, 0xe76b, 0xe76f, 0xe754, 0xe779, 0xbdb2, 0x003f, 0xbdb1, 0xe74c, 0xbdb5, 0xe772, 0xe756, 0xe76a, 0xe750, 0xe75e, 0xe759, 0xbdad, 0xbdae, 0xe76c, 0xe77d, 0xe77a, 0xe771, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe74d, 0x003f, 0xbdaa, 0xeb49, 0x003f, 0xeb40, 0xeb43, 0x003f, 0xbfbb, 0xeb45, 0xeaf9, 0xeb41, 0xeb47, 0xbfb8, 0xbfbc, 0xbfb6, 0x003f, 0x003f, 0xeafb, 0xeb4c, 0x003f, 0x003f, 0xeb46, 0x003f, 0xeafc, 0xeb55, 0xeb4f, 0xeaf8, 0xee46, 0xeafe, 0xbfb7, 0x003f, 0xeb4a, 0x003f, 0xeb54, 0xbfbf, 0x003f, 0xeb51, 0xeafd, 0xeb44, 0xeb48, 0xeb42, 0xeb56, 0xeb53, 0xeb50, 0xbfb9, 0xbfba, 0xbfbe, 0xeafa, 0xeb57, 0xbfbd, 0xeb4d, 0x003f, 0x003f, 0xeb4b, 0x003f, 0x003f, 0x003f, 0xeb4e, 0xee53, 0xee40, 0xee45, 0xee52, 0xee44, 0xedfb, 0xee41, 0x003f, 0xc1a2, 0x003f, 0xedf4, 0xee4d, 0xee4f, 0xedf3, 0xc1a1, 0xee51, 0xee49, 0xc1a8, 0xee50, 0xee42, 0xc1aa, 0xedf9, 0xeb52, 0xee4a, 0xee47, 0xedf5, 0xee55, 0xc1a4, 0x003f, 0x003f, 0xc1a5, 0xedf7, 0xee48, 0x003f, 0xee54, 0xee4b, 0xedfd, 0xc1a7, 0xc1a3, 0xee4c, 0xedfe, 0xee56, 0xedf8, 0xee43, 0xee4e, 0xedfa, 0xedfc, 0x003f, 0xc2cb, 0xedf6, 0xc1a9, 0xc2c4, 0xc17e, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1a6, 0xc2c8, 0xf0b3, 0x003f, 0xf0a9, 0xf0a4, 0xf0aa, 0xf0b4, 0xf0b8, 0xf0b7, 0xc2ca, 0xc2c9, 0x003f, 0x003f, 0xf0ab, 0xf0b9, 0xf0ae, 0xf0a6, 0x003f, 0xf0a8, 0xf0a7, 0xf0ad, 0xf0b2, 0xf0a5, 0xf0ac, 0xf0b1, 0xc2c7, 0x003f, 0xf0af, 0x003f, 0xc2c5, 0xf0b0, 0xc2c3, 0xc2c6, 0xf2d5, 0xf0b5, 0x003f, 0x003f, 0xc3c2, 0x003f, 0xf2cd, 0xf2d1, 0xf2c9, 0xf2cc, 0x003f, 0xf2d4, 0xc3c0, 0xf2d9, 0xf2d2, 0x003f, 0xf2ca, 0xf2da, 0xf2d3, 0xc3c3, 0xc3c4, 0xf2d7, 0x003f, 0xf2cb, 0xc3bf, 0xc3c1, 0xf2c6, 0xf2ce, 0xf2c8, 0x003f, 0xf2d8, 0xf2d6, 0xf2c7, 0xf2cf, 0x003f, 0x003f, 0x003f, 0xf4be, 0xc3c5, 0xf2d0, 0xc4a7, 0xc4a9, 0xc4a6, 0x003f, 0xf4c3, 0xf4bb, 0xf4b9, /* 0x8600 .. 0x86ff */ 0xf4bd, 0xf4ba, 0x003f, 0x003f, 0xf4bf, 0xf4c1, 0xc4aa, 0xc4ac, 0x003f, 0xf4c0, 0xc4ad, 0xc4ab, 0xf4c2, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4f4, 0xf5f1, 0xf5f7, 0xc4f6, 0xf4bc, 0xf5f6, 0x003f, 0xf5fd, 0xf5f4, 0xf5fb, 0xf5fa, 0xf4b8, 0xf5f5, 0xf0b6, 0xf5fe, 0xf5f3, 0xf5f8, 0x003f, 0xf5fc, 0xf5f2, 0x003f, 0xf74a, 0xc4f5, 0xf5f9, 0x003f, 0x003f, 0xf7f4, 0xf74b, 0xf749, 0xf747, 0xf748, 0xf74c, 0x003f, 0xc5d9, 0xf7f2, 0xf7f0, 0xf7f5, 0xf7f3, 0x003f, 0xf7f6, 0xc5da, 0xf7f1, 0x003f, 0x003f, 0xf8bc, 0x003f, 0x003f, 0xf945, 0xf946, 0xf947, 0x003f, 0x003f, 0xf9c7, 0xf9bd, 0xca4f, 0xaaea, 0x003f, 0xad68, 0x003f, 0xd3b8, 0xd3b7, 0xb040, 0xb342, 0xd77c, 0x003f, 0x003f, 0xd77b, 0x003f, 0xb5ea, 0xb8b8, 0x003f, 0xb8b7, 0xb8b9, 0x003f, 0xe3d4, 0xe77e, 0xeb58, 0xeb5a, 0xeb59, 0x003f, 0xc1ab, 0xee57, 0xf0ba, 0xf9a5, 0xa6e4, 0x003f, 0xcdc9, 0xcdca, 0xcdc8, 0xcdc7, 0xaaeb, 0x003f, 0xd0a9, 0xd0a7, 0x003f, 0x003f, 0xd0a6, 0x003f, 0xad69, 0xad6b, 0xad6a, 0xd0a8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd3c4, 0xd3c1, 0xd3bf, 0x003f, 0x003f, 0xb041, 0xd3c2, 0xb046, 0xd3bc, 0xd3cb, 0x003f, 0xd3cd, 0xd3bd, 0x003f, 0xb043, 0xd3ce, 0xd3c9, 0xd3bb, 0xd3c0, 0xd3ca, 0xd3c6, 0xd3c3, 0x003f, 0xb048, 0xd3cc, 0xd3be, 0x003f, 0x003f, 0xd3c7, 0xd3b9, 0xb047, 0xb044, 0xd3c5, 0x003f, 0xd3c8, 0xd3ba, 0xb045, 0xb042, 0x003f, 0x003f, 0x003f, 0x003f, 0xb34c, 0xd7a5, 0xb34b, 0x003f, 0xd7a8, 0xd7ab, 0xb348, 0xb346, 0xd77e, 0xd7a9, 0xd7a7, 0xd7a4, 0xd7ac, 0xd7ad, 0xd7af, 0xd7b0, 0xd77d, 0xb345, 0xd7a2, 0xd7a1, 0xd7ae, 0xb347, 0xd7a3, 0xb349, 0xb344, 0xd7a6, 0xb34d, 0x003f, 0xb34a, 0xd7aa, 0x003f, 0x003f, 0x003f, 0xb5f1, 0xdbbf, 0x003f, 0xdbb4, 0xb5ee, 0x003f, 0xdfe7, 0xdbbd, 0xdbb1, 0xb5ec, 0xdbb6, 0xb5ef, 0xdbba, 0xdbb8, 0xb5f2, 0xb5eb, 0x003f, 0x003f, 0xdbb2, 0xdbb5, 0xb5f0, 0x003f, 0xdbb3, 0x003f, 0xdbbe, 0xdbbc, 0xdbb7, 0xdbb9, 0xdbbb, 0xb5ed, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdfe8, 0xdfee, 0xdfe4, 0xdfea, 0xb8ba, 0xdfe6, 0xb8c0, 0x003f, 0x003f, 0xb8bf, 0x003f, /* 0x8700 .. 0x87ff */ 0xb8be, 0xdfed, 0xb8c1, 0xb8c2, 0xdfe3, 0xdff0, 0xb8c3, 0xb8bd, 0xb8bc, 0xdfec, 0xb8c4, 0xdfe2, 0xdfe5, 0xdfef, 0xdfeb, 0x003f, 0x003f, 0xe3f4, 0xe3e9, 0xb8bb, 0x003f, 0x003f, 0x003f, 0x003f, 0xbb6a, 0xe3dd, 0xe3f2, 0xe3de, 0xbb65, 0x003f, 0xe3db, 0x003f, 0xe3e4, 0xe3dc, 0xbb67, 0xe3d6, 0xe3f1, 0xbb68, 0xe3ee, 0xe3ef, 0xe3d7, 0xbb6d, 0xe3e6, 0x003f, 0xe3e0, 0xe3e7, 0xe3da, 0x003f, 0xe3f3, 0xe3eb, 0xe3e5, 0xe3d5, 0xbb69, 0xe3ec, 0x003f, 0xbb6c, 0xe3f0, 0x003f, 0xe3ea, 0xbb66, 0xe3e8, 0x003f, 0xe3e2, 0xbb64, 0xe3d9, 0xe3e1, 0xe3ed, 0xe3df, 0x003f, 0x003f, 0xe3e3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdc1, 0xdfe9, 0xe7b2, 0xe7bb, 0xe7b1, 0xe7ad, 0xe7aa, 0xbdc2, 0xe7a8, 0xbb6b, 0xe7a1, 0xbdc0, 0xe7a7, 0xbdbf, 0xe7ac, 0xe7a9, 0xe7b9, 0xe7b4, 0xe7ae, 0xe7b3, 0xbdbb, 0xe7ab, 0xe7be, 0xe7a2, 0xe7a3, 0xe7ba, 0xbdbc, 0xe7bf, 0xbdbe, 0xe7c0, 0xe7b0, 0xe3d8, 0xe7b6, 0xe7af, 0xe7b8, 0xe7b5, 0x003f, 0x003f, 0x003f, 0xe7a6, 0xbdb9, 0xe7bd, 0xbdba, 0xe7a4, 0xbdbd, 0xeb64, 0xe7b7, 0xe7bc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeb61, 0xbdb8, 0xbfc0, 0xeb6b, 0xeb67, 0x003f, 0xeb65, 0xeb60, 0xeb6f, 0x003f, 0x003f, 0x003f, 0xbfc4, 0x003f, 0xeb5c, 0xeb68, 0xeb69, 0xeb5f, 0xeb5e, 0xeb6c, 0x003f, 0xeb62, 0xeb5d, 0xeb63, 0x003f, 0xeb6e, 0xeb5b, 0xeb6d, 0xeb6a, 0xbfc2, 0xbfc1, 0x003f, 0x003f, 0xbfc3, 0xeb66, 0xf0cb, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xee59, 0xc1b1, 0xee5d, 0xee5a, 0xee61, 0xee67, 0xee5c, 0x003f, 0xee70, 0xc1ae, 0xee6a, 0xee5f, 0xee6b, 0xee66, 0xee6d, 0xee5e, 0xc1b3, 0xc1b2, 0xee60, 0xee6e, 0xee58, 0xee6c, 0xc1ac, 0x003f, 0xee64, 0xee63, 0xee68, 0xee5b, 0xc1b0, 0x003f, 0xc1b4, 0xee62, 0xee69, 0xc1b5, 0xee65, 0x003f, 0x003f, 0x003f, 0x003f, 0xc1ad, 0xc1af, 0xf0c7, 0xf0c5, 0x003f, 0x003f, 0xf0cc, 0xf0c9, 0xf0cd, 0x003f, 0xf0be, 0xf0c6, 0xf0d1, 0xee6f, 0xf0c2, 0xc2cf, 0xe7a5, 0xf0bd, 0xf0ca, 0xf0c4, 0xf0c1, 0xf0bc, 0xf0bb, 0xf0d0, 0x003f, 0xf0c0, 0xf0bf, 0xc2cd, 0xf0c8, 0x003f, 0xc2cc, 0x003f, 0x003f, 0xc2ce, 0xf0c3, 0xf0cf, 0x003f, 0xf2de, 0xf2df, 0x003f, 0xc3c9, 0xf2dc, 0xc3c6, 0xf2e4, 0x003f, 0xc3ca, 0xf2e6, /* 0x8800 .. 0x88ff */ 0xf2db, 0xf0ce, 0xf2e8, 0xf2dd, 0x003f, 0xc3c7, 0xf2e3, 0x003f, 0xf2e5, 0xf2e0, 0xf2e7, 0xf2e2, 0xf2e1, 0xc3c8, 0x003f, 0x003f, 0xf4c5, 0xf4c6, 0x003f, 0xf4c8, 0xc4ae, 0xc4af, 0xf4c9, 0xf4c7, 0x003f, 0xf4c4, 0x003f, 0xf642, 0xf645, 0xf641, 0x003f, 0xc4fa, 0xf643, 0xc4f9, 0xc4f8, 0xc4f7, 0xf644, 0xf751, 0xf74f, 0x003f, 0xf74e, 0xf640, 0xf750, 0xf646, 0xf74d, 0x003f, 0xf7f9, 0xf7d7, 0xf7f7, 0xc5db, 0xf7f8, 0xf7fa, 0x003f, 0xf8bf, 0xc5fa, 0xf8be, 0xf8bd, 0xc5fb, 0x003f, 0xc65a, 0xf96e, 0xf9a7, 0xf9a6, 0xf9a8, 0xa6e5, 0xd0aa, 0x003f, 0xd3cf, 0xd3d0, 0x003f, 0x003f, 0x003f, 0xdbc0, 0x003f, 0xf647, 0xf8c0, 0xa6e6, 0xad6c, 0xd0ab, 0x003f, 0x003f, 0x003f, 0xd7b1, 0xb34e, 0x003f, 0xdbc2, 0xdbc1, 0xb5f3, 0x003f, 0xb8c5, 0xe7c1, 0xbdc3, 0x003f, 0xbdc4, 0x003f, 0x003f, 0x003f, 0xbfc5, 0xc5fc, 0xa6e7, 0x003f, 0x003f, 0x003f, 0xd0ac, 0xaaed, 0xd0ae, 0xd0ad, 0xad6d, 0x003f, 0xd3d1, 0x003f, 0xd3d8, 0xb049, 0xd3d6, 0xd3d4, 0x003f, 0xd3db, 0xd3d2, 0xd3d3, 0xb04a, 0x003f, 0xb04e, 0x003f, 0x003f, 0xd3dc, 0xb04d, 0xd3da, 0xd3d7, 0xd3d5, 0xb04b, 0xb04c, 0xd3d9, 0x003f, 0x003f, 0x003f, 0x003f, 0xb350, 0xd7b2, 0x003f, 0xb355, 0xd7c2, 0xb354, 0xd7c4, 0x003f, 0x003f, 0xd7b8, 0xb352, 0xd7c3, 0x003f, 0xd7b3, 0xb353, 0xd7bf, 0xd7bb, 0xd7bd, 0xd7b7, 0xd7be, 0x003f, 0x003f, 0xb34f, 0xd7ba, 0x003f, 0xd7b9, 0xd7b5, 0x003f, 0xd7c0, 0x003f, 0x003f, 0xd7bc, 0xd7b4, 0x003f, 0xd7b6, 0xb351, 0xd7c1, 0x003f, 0x003f, 0x003f, 0x003f, 0xb5f6, 0xdbcd, 0x003f, 0x003f, 0x003f, 0xdbc9, 0xdbcb, 0xdbc6, 0xdbc5, 0xdbc3, 0x003f, 0xdbca, 0xdbcc, 0xdbc8, 0x003f, 0xdbc7, 0xb5f4, 0xb5f5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdbcf, 0xb8cd, 0xdff2, 0xdff8, 0xdff3, 0xdff4, 0xf9d8, 0xdff9, 0x003f, 0xb8cf, 0x003f, 0xb8c7, 0xb8ce, 0xdff1, 0xdbc4, 0xb8ca, 0xb8c8, 0xdff7, 0xdff6, 0xb8c9, 0xb8cb, 0xdff5, 0xb8c6, 0x003f, 0xb8cc, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe3f6, 0xbb74, 0x003f, 0x003f, 0xe442, 0xe441, 0x003f, 0xe3fb, 0xbb76, 0xe440, 0xe3f7, 0xe3f8, 0xbb6e, 0xbb70, 0x003f, 0xe3fd, 0xe3f5, 0xbb72, 0xbb71, 0xe3f9, 0xe3fe, 0xe3fc, 0xbb73, 0xe3fa, 0x003f, /* 0x8900 .. 0x89ff */ 0x003f, 0xdbce, 0xbb6f, 0x003f, 0x003f, 0xe7c2, 0xe7c9, 0xbdc6, 0x003f, 0xe7cd, 0xbdca, 0xe7c5, 0xe7c3, 0x003f, 0xe7cc, 0x003f, 0xbdc5, 0xe7cb, 0xbdc7, 0xbdc8, 0xe7c4, 0xbdc9, 0xe7ca, 0xe7c6, 0xe7c7, 0xe7c8, 0xbb75, 0x003f, 0x003f, 0x003f, 0xeb70, 0xeb7c, 0x003f, 0xbfca, 0xeb77, 0xeb79, 0x003f, 0xbfc8, 0xeb71, 0xeb75, 0x003f, 0xeb78, 0xbfc6, 0xbfc9, 0xeb7b, 0xeb73, 0xeb74, 0xeb7a, 0xeb72, 0xeb76, 0xbfc7, 0xee72, 0x003f, 0xee71, 0xc1b7, 0xee77, 0xc1b9, 0x003f, 0x003f, 0xc1b6, 0xee73, 0xc1ba, 0xee74, 0x003f, 0x003f, 0xee75, 0xee78, 0x003f, 0xc1b8, 0x003f, 0xf0d6, 0x003f, 0x003f, 0xf0d9, 0x003f, 0xf0d3, 0xf0d5, 0x003f, 0x003f, 0xf0d4, 0xf0d7, 0xf0d8, 0xee76, 0xf0d2, 0x003f, 0x003f, 0xc3cd, 0xf2ec, 0xf2ef, 0xf2f1, 0xf2ea, 0xf2eb, 0xf2ee, 0xf2f0, 0xc3ce, 0xc3cc, 0xc3cb, 0xf2ed, 0xf2e9, 0xf4ca, 0xc4b0, 0x003f, 0xf4cb, 0x003f, 0x003f, 0xf649, 0xc4fb, 0xf64b, 0xc4fc, 0xf648, 0xf64a, 0xc5a8, 0x003f, 0xf752, 0xc5a7, 0xf7fd, 0xf7fc, 0x003f, 0xf7fb, 0x003f, 0x003f, 0xf948, 0xf949, 0xf94b, 0xf94a, 0x003f, 0xca50, 0xa6e8, 0x003f, 0xad6e, 0xd7c5, 0xb5f7, 0x003f, 0xdffa, 0xc2d0, 0x003f, 0xf2f2, 0x003f, 0x003f, 0xa8a3, 0x003f, 0x003f, 0x003f, 0xb357, 0x003f, 0x003f, 0x003f, 0xb356, 0x003f, 0xdbd0, 0xb5f8, 0xdbd2, 0xdbd1, 0x003f, 0x003f, 0xdffb, 0xb8d0, 0xe443, 0xe446, 0xe445, 0x003f, 0xe444, 0xe7ce, 0xe7d0, 0xe7cf, 0x003f, 0xbfcc, 0x003f, 0x003f, 0x003f, 0xbfcb, 0x003f, 0xc1bb, 0xee79, 0xee7b, 0xee7a, 0x003f, 0x003f, 0xc2d1, 0x003f, 0x003f, 0x003f, 0xf2f4, 0xf2f3, 0x003f, 0xf4cc, 0xc4b1, 0x003f, 0x003f, 0xc4fd, 0xf754, 0xf753, 0xc65b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a4, 0xd0af, 0xad6f, 0xd7c8, 0xd7c6, 0x003f, 0x003f, 0xd7c7, 0xdbd4, 0xdbd5, 0xe043, 0xdbd3, 0x003f, 0xdffc, 0xe041, 0xe040, 0xe042, 0xb8d1, 0xdffe, 0xdffd, 0xe044, 0x003f, 0xe449, 0xe447, 0x003f, 0xe448, 0xe7d3, 0xe7d1, 0x003f, 0x003f, 0xe7d2, 0xeb7d, 0xee7c, 0xee7d, 0xc2d2, 0x003f, 0xf2f5, 0xf4cd, 0xc4b2, 0x003f, 0xf64c, 0xf755, 0xc5a9, 0x003f, 0xf7fe, 0xf94c, /* 0x8a00 .. 0x8aff */ 0xa8a5, 0x003f, 0xad71, 0xad72, 0xd0b0, 0x003f, 0x003f, 0xd0b1, 0xad70, 0x003f, 0xb054, 0x003f, 0xb052, 0x003f, 0xb051, 0xb058, 0xb050, 0xb059, 0xd3dd, 0xb056, 0x003f, 0xb053, 0xb057, 0xb055, 0xb04f, 0x003f, 0x003f, 0xb35f, 0x003f, 0xb359, 0xd7cc, 0xb35e, 0x003f, 0x003f, 0xb360, 0xb35a, 0x003f, 0xb35b, 0x003f, 0xd7ca, 0x003f, 0x003f, 0xb358, 0x003f, 0xd7cb, 0xb35d, 0x003f, 0x003f, 0xd7c9, 0xb35c, 0x003f, 0x003f, 0xb644, 0x003f, 0xb646, 0x003f, 0x003f, 0xdbd8, 0xb645, 0xb5f9, 0xb5fd, 0x003f, 0xb8e4, 0xe049, 0xdbda, 0xb5fe, 0x003f, 0x003f, 0xdbdd, 0xdbde, 0xb643, 0x003f, 0xdbe0, 0x003f, 0xdbe2, 0x003f, 0xdbe3, 0xdbd7, 0xdbd6, 0xdbe4, 0xb642, 0xdbe1, 0xdbdf, 0x003f, 0xb640, 0xb5fb, 0xb647, 0xdbdb, 0xdbdc, 0xdbd9, 0x003f, 0xb641, 0x003f, 0x003f, 0xb5fc, 0x003f, 0xb5fa, 0xe048, 0xb8df, 0xb8da, 0x003f, 0x003f, 0xb8d5, 0x003f, 0xb8e5, 0xb8d6, 0x003f, 0xb8d2, 0xb8e1, 0xb8de, 0xb8e0, 0x003f, 0xb8d7, 0xb8dc, 0xb8d3, 0xb8d4, 0xe050, 0xe04d, 0xe045, 0xe04a, 0x003f, 0xb8e2, 0xe051, 0xb8e3, 0xb8d9, 0x003f, 0x003f, 0xe047, 0x003f, 0xe04f, 0xe04b, 0xe04e, 0xe04c, 0xb8dd, 0xe046, 0xb8d8, 0x003f, 0x003f, 0x003f, 0xe44c, 0xbb78, 0xbb7b, 0x003f, 0xe44e, 0x003f, 0xbba5, 0xe44d, 0xbb7d, 0x003f, 0xbdcf, 0xe44f, 0x003f, 0xbba4, 0xe44b, 0xbba6, 0x003f, 0x003f, 0x003f, 0xbb79, 0x003f, 0xb8db, 0xbb7c, 0x003f, 0xbb7a, 0xbb7e, 0xbba2, 0xbb77, 0xbba7, 0xbba3, 0x003f, 0xbba1, 0xe44a, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdd6, 0x003f, 0xbdd2, 0x003f, 0x003f, 0x003f, 0xbdd9, 0x003f, 0xe7d6, 0xbdda, 0xe7e2, 0xe7db, 0xbdcb, 0xe7e3, 0xe7dd, 0xbdd5, 0xe7de, 0x003f, 0xbdd4, 0xe7e1, 0xbdce, 0xe7df, 0xe7d5, 0xbdcd, 0xebaa, 0xbdd3, 0x003f, 0xbdd0, 0x003f, 0xbdd8, 0x003f, 0xe7d4, 0x003f, 0xe7d8, 0xbdcc, 0xe7d7, 0xe7d9, 0xe7da, 0xbdd7, 0xe7dc, 0xe7e0, 0xe7e4, 0x003f, 0xbddb, 0xbfd2, 0xeba5, 0xebab, 0xeba8, 0xeb7e, 0xebac, 0xeba1, 0x003f, 0xeba7, 0x003f, 0xbfcd, 0xbfd3, 0xebad, 0x003f, 0x003f, 0xbfcf, 0x003f, 0xbfd9, 0xbfd4, 0xebaf, 0xeba9, 0xbfd0, 0xeba2, 0xbfda, 0xeba3, 0xeba4, 0xbfdb, 0xbfd8, 0xbdd1, 0x003f, 0xbfce, 0xebb0, 0xbfdc, 0x003f, 0xbfd5, 0xebae, /* 0x8b00 .. 0x8bff */ 0xbfd1, 0xbfd6, 0xbfd7, 0x003f, 0xc1c3, 0xeea4, 0xeead, 0xeeaa, 0xeeac, 0x003f, 0xc1c0, 0xeea5, 0x003f, 0xeeab, 0xc1bc, 0xeea7, 0xc1c4, 0xeea3, 0xeea8, 0xeeaf, 0xeba6, 0xeea9, 0xeea2, 0xc1bd, 0xeea1, 0xc1be, 0xeeb0, 0xc1bf, 0xeeae, 0xc1c2, 0xee7e, 0x003f, 0xc1c1, 0x003f, 0xeea6, 0xf0dc, 0xf0ea, 0xf0e5, 0xf0e7, 0xf0db, 0xc2d3, 0x003f, 0xf0da, 0xc2d6, 0xc2d5, 0x003f, 0xf0e9, 0xf0e1, 0xf0de, 0xf0e4, 0x003f, 0xf0dd, 0x003f, 0xf0df, 0xf0e8, 0xf0e6, 0x003f, 0xc2d4, 0xf0ed, 0xf0eb, 0xf0e2, 0xf0ec, 0xf0e3, 0x003f, 0xf2f9, 0xc3cf, 0xf341, 0x003f, 0x003f, 0xf64f, 0xc3d6, 0xf0e0, 0xf2f7, 0xc3d2, 0xf2f8, 0xf2fd, 0x003f, 0x003f, 0xc3d4, 0xc3d5, 0xf2f6, 0xf340, 0xf342, 0xf2fa, 0xf2fc, 0xf2fe, 0xf2fb, 0xf343, 0xc3d1, 0xc3d7, 0xc3d3, 0x003f, 0xc3d0, 0xf4d0, 0x003f, 0xc4b7, 0xf4ce, 0x003f, 0x003f, 0xf4d2, 0x003f, 0xf4d3, 0xc4b5, 0xf4d4, 0xf4d1, 0x003f, 0xf4cf, 0xc4b8, 0xc4b4, 0xf4d5, 0x003f, 0xc4b6, 0xc4b3, 0x003f, 0x003f, 0x003f, 0xc4fe, 0x003f, 0x003f, 0xc540, 0xf64e, 0xf64d, 0xf650, 0xf651, 0x003f, 0xc541, 0xf756, 0xf75b, 0xc5aa, 0x003f, 0xf758, 0x003f, 0xf757, 0xf75a, 0xf759, 0x003f, 0xf843, 0x003f, 0xc5dc, 0xf842, 0xf840, 0x003f, 0xf841, 0x003f, 0x003f, 0x003f, 0xc5fe, 0xc5fd, 0xf8c1, 0xf8c2, 0xc640, 0x003f, 0xf94d, 0xf94e, 0xc667, 0x003f, 0xc66d, 0x003f, 0xf9a9, 0xf9c8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x8c00 .. 0x8cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8a6, 0x003f, 0xd7cd, 0x003f, 0xd7ce, 0xe052, 0xe450, 0xe7e5, 0xc1c6, 0x003f, 0xc1c5, 0xf0ee, 0xf344, 0x003f, 0xf844, 0xa8a7, 0xd3de, 0xb05a, 0xb361, 0xe054, 0xe053, 0xbddc, 0xe7e6, 0xbddd, 0xeeb1, 0xc2d7, 0x003f, 0x003f, 0x003f, 0xc676, 0xa8a8, 0xcdcb, 0xd3df, 0x003f, 0x003f, 0xb362, 0x003f, 0xd7cf, 0xd7d0, 0x003f, 0xdbe5, 0x003f, 0xb648, 0xb8e6, 0x003f, 0xe056, 0xe055, 0xe057, 0x003f, 0xe451, 0xe452, 0xbba8, 0xbfdd, 0xbdde, 0xbfde, 0x003f, 0xeeb5, 0xeeb2, 0xeeb4, 0xeeb3, 0xc1c7, 0x003f, 0xf0ef, 0xf346, 0xf345, 0xcba4, 0xb05c, 0xb05b, 0xd3e0, 0x003f, 0xd7d1, 0x003f, 0x003f, 0xdbe7, 0xdbe6, 0xb649, 0x003f, 0xe059, 0xe05a, 0xe058, 0x003f, 0x003f, 0xb8e8, 0xb8e7, 0x003f, 0xbbaa, 0xbba9, 0x003f, 0xe7e7, 0xebb3, 0xebb1, 0xebb2, 0xbfdf, 0xeeb7, 0xeeb6, 0x003f, 0xf0f2, 0xf0f1, 0xf0f0, 0xf347, 0x003f, 0xf9aa, 0xa8a9, 0xad73, 0x003f, 0xad74, 0xb05d, 0xb05e, 0xd3e2, 0xd3e1, 0xd7d2, 0x003f, 0xb368, 0xb366, 0xb363, 0xb367, 0xb365, 0xb364, 0x003f, 0x003f, 0xb64a, 0xdbea, 0x003f, 0xb8ed, 0xb64c, 0xb651, 0xdbec, 0xb653, 0xb652, 0xb655, 0xdbeb, 0xdbe8, 0xb64f, 0xb64b, 0xb64d, 0xdbe9, 0xb654, 0xb650, 0xb64e, 0xb8ef, 0xb8ee, 0xb8ec, 0xb8f0, 0x003f, 0xb8ea, 0xb8eb, 0x003f, 0xb8e9, 0x003f, 0xe05b, 0x003f, 0x003f, 0xe454, 0x003f, 0xbbac, 0xbbad, 0xbbab, 0x003f, 0xe453, 0x003f, 0xe455, 0x003f, 0xe7ea, 0xe7ec, 0x003f, 0xbde7, 0xe7ed, 0xbde0, 0xe7e9, 0xbddf, 0xbde9, 0xbde5, 0xbde6, 0xbde2, 0xe7e8, 0xbde1, 0xe7ee, 0xe7eb, 0x003f, 0xbde8, 0x003f, 0xbde3, 0xbde4, 0xebb5, 0x003f, 0xebb7, 0xebb6, 0x003f, 0xebb8, 0xbfe0, 0xebb4, 0x003f, 0x003f, 0xc1cb, 0xeeb8, 0xc1c8, 0xc1cc, 0xc1ca, 0xc1c9, 0xf0f3, 0x003f, /* 0x8d00 .. 0x8dff */ 0xf0f6, 0x003f, 0xf0f5, 0x003f, 0xf0f4, 0xc2d8, 0xf348, 0xf349, 0xc3d8, 0xf34a, 0xc3d9, 0x003f, 0x003f, 0xc4ba, 0x003f, 0xc4b9, 0xf652, 0x003f, 0x003f, 0xc542, 0xf653, 0xf75c, 0xc5ab, 0xc5ac, 0x003f, 0xf845, 0x003f, 0xc642, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8aa, 0x003f, 0xb36a, 0xb369, 0xe05c, 0xe05d, 0x003f, 0xbbae, 0xebb9, 0xbdea, 0xebba, 0xeeb9, 0xa8ab, 0x003f, 0xd0b2, 0xad76, 0xad75, 0x003f, 0xd3e3, 0xb05f, 0xd3e4, 0xd7d5, 0x003f, 0xd7d4, 0x003f, 0xd7d3, 0x003f, 0x003f, 0xdbee, 0xb658, 0x003f, 0x003f, 0xdbed, 0xb657, 0x003f, 0x003f, 0x003f, 0xdbef, 0xb656, 0x003f, 0xe05f, 0xe062, 0xe060, 0xe061, 0xe065, 0xe05e, 0xe066, 0xe063, 0xe064, 0xbbb0, 0xe456, 0x003f, 0x003f, 0xbbaf, 0x003f, 0xe7f2, 0xe7f0, 0x003f, 0x003f, 0xbdeb, 0xe7ef, 0xe7f1, 0x003f, 0xbdec, 0x003f, 0xebbb, 0x003f, 0xebbc, 0xc1cd, 0x003f, 0xf34c, 0xf34e, 0xf34b, 0xf34d, 0xf4d6, 0xf654, 0x003f, 0x003f, 0xf96f, 0xa8ac, 0xad77, 0xd3e5, 0xd3e7, 0xd3e6, 0x003f, 0xd7d8, 0xb36c, 0x003f, 0xd7d6, 0x003f, 0xb36b, 0xd7d9, 0x003f, 0xd7da, 0xd7d7, 0x003f, 0x003f, 0xdbfb, 0xb660, 0xdbf3, 0xdbf9, 0x003f, 0x003f, 0xb65b, 0xb65e, 0xdbf2, 0xb659, 0xdbf6, 0xe06c, 0xb65d, 0x003f, 0xdbf1, 0x003f, 0xdbf7, 0xdbf4, 0xdbfa, 0xdbf0, 0xdbf8, 0xb65c, 0xb65f, 0xdbf5, 0xb65a, 0x003f, 0xb8f2, 0xe068, 0xb8f1, 0xe06f, 0xe06e, 0xb8f8, 0x003f, 0xb8f9, 0xe070, 0xb8f3, 0xe06d, 0xb8f7, 0xe072, 0xe069, 0x003f, 0xe06b, 0xb8f4, 0xe067, 0xe06a, 0xe071, 0xb8f5, 0xe073, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8f6, 0x003f, 0xbbb1, 0xe45b, 0xe461, 0xe459, /* 0x8e00 .. 0x8eff */ 0xe462, 0x003f, 0xe458, 0xe45d, 0xe463, 0xe460, 0xe45f, 0xe45e, 0x003f, 0xe457, 0xe45c, 0x003f, 0x003f, 0xe45a, 0x003f, 0xbdf1, 0xbdee, 0xe7fb, 0xe841, 0xe843, 0xe840, 0xe7f8, 0xe7fa, 0xe845, 0xe842, 0xe7fc, 0xe846, 0xe7f9, 0xe844, 0xbdef, 0xbdf5, 0xbdf3, 0xe7f3, 0xbdf4, 0xbdf0, 0xe7f4, 0xe7f6, 0xe7f5, 0xe7fd, 0xe7fe, 0x003f, 0xbdf2, 0x003f, 0xbded, 0x003f, 0x003f, 0xe7f7, 0x003f, 0xebc6, 0xbfe2, 0x003f, 0xebbd, 0xbfe3, 0xbfe6, 0xebc2, 0x003f, 0xebbf, 0xbfe5, 0x003f, 0x003f, 0xebc3, 0xebc4, 0xebbe, 0xebc7, 0xebc0, 0xebc5, 0xbfe4, 0x003f, 0xbfe1, 0xebc1, 0x003f, 0xeebf, 0xc1d0, 0xc1ce, 0xc1d1, 0xc1cf, 0xeebe, 0xeebb, 0xeeba, 0x003f, 0xeebd, 0x003f, 0x003f, 0xeebc, 0xf145, 0xc2de, 0xf0fb, 0xf0fa, 0x003f, 0xc2d9, 0xf141, 0xf140, 0xf0f7, 0xf143, 0xf0fc, 0xc2dd, 0xf0f9, 0xf142, 0xf0f8, 0xc2da, 0xc2dc, 0xf0fd, 0xc2db, 0xf0fe, 0x003f, 0xf144, 0xf352, 0x003f, 0xc3de, 0xf34f, 0x003f, 0xf353, 0x003f, 0x003f, 0xc3db, 0xf351, 0xc3e0, 0x003f, 0xc3dd, 0x003f, 0xf350, 0x003f, 0xc3df, 0xf354, 0xc3da, 0x003f, 0x003f, 0x003f, 0x003f, 0xc4bc, 0xc4be, 0x003f, 0xf4d9, 0xc4bd, 0xf4d7, 0xc3dc, 0xf4d8, 0xc4bb, 0xc543, 0xc545, 0xf656, 0xc544, 0xf655, 0x003f, 0xf761, 0xc5ad, 0xf760, 0xc5ae, 0xf75e, 0xf75d, 0xf762, 0xf763, 0xf846, 0x003f, 0xf75f, 0x003f, 0x003f, 0xf8c6, 0xf8c3, 0xf8c4, 0xf8c5, 0xc65c, 0x003f, 0xf951, 0xf950, 0xf94f, 0xf970, 0x003f, 0xf9be, 0xf9ab, 0xc66e, 0xa8ad, 0xb060, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb8fa, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbdf6, 0x003f, 0x003f, 0xebc8, 0x003f, 0x003f, 0xc2df, 0x003f, 0xf355, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf9ac, 0xa8ae, 0xaaee, 0xad79, 0xad78, 0x003f, 0xb063, 0x003f, 0xd3e8, 0xb061, 0xd3e9, 0xb062, 0x003f, 0x003f, 0xd7df, 0xd7db, 0x003f, 0x003f, 0xb36d, 0xd7de, 0xd7dd, 0xd7dc, 0xb36e, 0xd7e0, 0xd7e1, 0x003f, 0x003f, 0x003f, 0xdc43, 0xdc41, 0xdc45, 0xdc46, 0xdc4c, 0x003f, 0xdc48, 0xdc4a, 0x003f, 0xdc42, 0xdbfc, 0x003f, 0xdc49, 0x003f, 0x003f, 0xdc4b, 0xdc44, 0xdc47, 0xdbfd, 0xb662, 0xdc40, 0xdbfe, 0xb661, 0xb663, 0x003f, 0xb8fd, 0xe075, /* 0x8f00 .. 0x8fff */ 0xe077, 0xe076, 0xe07b, 0xb8fb, 0x003f, 0xe078, 0xe074, 0xe079, 0xe07a, 0xb8fc, 0xb8fe, 0xe07c, 0x003f, 0xe467, 0xe466, 0x003f, 0xe464, 0xe465, 0xbbb3, 0xbbb5, 0xbbb2, 0xbbb4, 0xe84d, 0xe84e, 0xe849, 0x003f, 0xe84a, 0xbdf8, 0xbdfd, 0xbdf7, 0xbdfe, 0xbdf9, 0xe84b, 0x003f, 0x003f, 0xe84c, 0xe848, 0xbe40, 0xbdfb, 0x003f, 0x003f, 0xbdfa, 0xbdfc, 0x003f, 0xe847, 0x003f, 0xebca, 0xbfe8, 0x003f, 0x003f, 0xebcc, 0xbfea, 0xebcf, 0xebcb, 0xebc9, 0xebce, 0xbfe9, 0xebcd, 0x003f, 0xbfe7, 0x003f, 0x003f, 0xc1d3, 0xc1d6, 0xeec1, 0x003f, 0xc1d4, 0xeec0, 0xc1d2, 0xc1d5, 0xf146, 0xf147, 0xf148, 0xc2e0, 0x003f, 0xf149, 0x003f, 0xc2e1, 0xc3e2, 0xf358, 0xf359, 0xf357, 0xf356, 0xf35a, 0xc3e1, 0xf4dd, 0xf4db, 0xf4dc, 0xf4de, 0xf4da, 0xf4df, 0xf658, 0x003f, 0xf659, 0xf657, 0xc546, 0xf764, 0xc5af, 0xf765, 0xf848, 0xf847, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa8af, 0xb664, 0x003f, 0x003f, 0xb940, 0x003f, 0x003f, 0x003f, 0xbbb6, 0x003f, 0x003f, 0xbfec, 0x003f, 0xbfeb, 0x003f, 0x003f, 0x003f, 0x003f, 0xc3e3, 0xc47c, 0xc547, 0xa8b0, 0xb064, 0xb941, 0x003f, 0xf35b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcba6, 0x003f, 0x003f, 0xa8b1, 0x003f, 0xa8b4, 0xa8b3, 0xa8b2, 0x003f, 0x003f, 0xcba5, 0x003f, 0xcdcd, 0x003f, 0xcdcf, 0xaaef, 0x003f, 0x003f, 0xaaf1, 0xcdcc, 0xcdce, 0xaaf0, 0xcdd1, 0xcdd0, 0xcdd2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b6, 0xd0b4, 0xad7c, 0xd0b3, 0xada3, 0xad7e, 0xad7b, 0x003f, 0xada4, 0x003f, 0xad7d, 0xada2, 0x003f, 0xada1, 0xd0b5, 0x003f, 0xad7a, 0x003f, 0x003f, 0x003f, 0xb06a, 0xd3eb, 0xd3f1, 0xb067, 0xb06e, 0x003f, 0xb069, 0xd3ee, 0xd3f0, 0xb06c, 0xd3ea, 0xd3ed, /* 0x9000 .. 0x90ff */ 0xb068, 0xb065, 0xd3ec, 0xb06b, 0xd3ef, 0xb06d, 0xb066, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7e3, 0xd7e6, 0xb370, 0x003f, 0xb37a, 0xb376, 0xd7e4, 0x003f, 0x003f, 0xb37e, 0xb377, 0xb37c, 0xb372, 0x003f, 0xb36f, 0xb371, 0xb37d, 0xd7e5, 0xb375, 0xb378, 0xb374, 0xb379, 0xd7e7, 0xb37b, 0xb373, 0xd7e2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xdc4d, 0xb665, 0xdc4f, 0x003f, 0xb667, 0xb669, 0x003f, 0xdc4e, 0xb666, 0xb66a, 0x003f, 0xb668, 0x003f, 0x003f, 0x003f, 0xb947, 0xe0a3, 0xb94f, 0xe07e, 0x003f, 0xb950, 0xb945, 0x003f, 0xe0a1, 0x003f, 0x003f, 0xb94a, 0x003f, 0xe0a2, 0xb943, 0xb942, 0x003f, 0xb94d, 0xb94c, 0xb94b, 0xb949, 0xb94e, 0xe07d, 0xb944, 0xb946, 0xb948, 0x003f, 0x003f, 0xbbb8, 0xbbbb, 0x003f, 0xbbbf, 0xbbb9, 0xbbbe, 0xbbbc, 0x003f, 0xbbb7, 0x003f, 0xbbbd, 0xbbba, 0x003f, 0x003f, 0x003f, 0xe852, 0xbe43, 0xbe41, 0x003f, 0xe853, 0x003f, 0xbe44, 0xbe42, 0xe851, 0xe850, 0x003f, 0xbff0, 0xe84f, 0xbfee, 0xbfed, 0xebd0, 0xbe45, 0xbfef, 0xebd1, 0xbff2, 0xebd2, 0xbff1, 0xc1d8, 0xeec3, 0xc1d7, 0xc1dc, 0xc1da, 0xc1db, 0xc2e3, 0xc1d9, 0xeec2, 0xebd3, 0xc2e2, 0xc2e4, 0x003f, 0xc3e4, 0xc3e5, 0x003f, 0xf4e0, 0x003f, 0xc5de, 0xc5dd, 0xa8b6, 0x003f, 0x003f, 0xca55, 0xb06f, 0x003f, 0xca52, 0xca53, 0xca51, 0x003f, 0xca54, 0x003f, 0x003f, 0xcbaa, 0xcba7, 0xcbac, 0xcba8, 0xa8b7, 0xa8ba, 0x003f, 0xcba9, 0xa8b9, 0xcbab, 0x003f, 0x003f, 0xa8b8, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd5, 0xcdd7, 0xaaf4, 0xcdd3, 0xcdd6, 0xcdd4, 0xaaf2, 0xaaf5, 0x003f, 0xaaf3, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0b8, 0xd0bc, 0xd0b9, 0x003f, 0xada7, 0x003f, 0xada8, 0x003f, 0xd0bb, 0x003f, 0xd0bd, 0xd0bf, 0x003f, 0xada5, 0xd0be, 0x003f, 0x003f, 0xada6, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd7ee, 0xd0ba, 0xd3f2, 0xd3fb, 0xd3f9, 0xd3f4, 0xd3f5, 0xd3fa, 0xd3fc, 0xb071, 0x003f, 0xd3f7, 0xd3f3, 0xb070, 0xb072, 0xd3f6, 0xd3fd, 0xd3f8, 0x003f, 0x003f, 0xb3a1, 0xd7f1, 0xd7e9, 0xd7ef, 0xd7f0, 0xb3a2, 0x003f, 0xd7e8, 0xd7ea, 0xd0b7, 0xd7ec, 0xd7ed, 0xd7eb, 0xb66c, 0x003f, 0x003f, 0x003f, 0xdc56, 0xebd4, 0xdc57, 0xdc54, 0xb3a3, 0xb66e, 0xdc53, /* 0x9100 .. 0x91ff */ 0xdc59, 0xdc58, 0xb66b, 0xdc5c, 0xdc52, 0xdc5b, 0xdc50, 0xdc5a, 0xdc55, 0xb66d, 0x003f, 0xe0aa, 0x003f, 0xe0a5, 0xe0ab, 0xe0a6, 0xe0a4, 0xe0a7, 0xb951, 0x003f, 0xe0a9, 0x003f, 0xe0a8, 0xb952, 0xbbc1, 0xbbc0, 0xe46e, 0xe471, 0xe469, 0xe46d, 0xbbc2, 0xe46c, 0xe46a, 0xe470, 0xe46b, 0xe468, 0xe46f, 0x003f, 0xe859, 0xbe48, 0xf14a, 0xe856, 0xe857, 0xe855, 0xdc51, 0xbe47, 0xe85a, 0xe854, 0xbe46, 0xbe49, 0xe858, 0xebd5, 0xbff3, 0xebd6, 0xebd7, 0x003f, 0xeec4, 0xc1dd, 0xf14b, 0xf14c, 0x003f, 0x003f, 0xf14d, 0xf35d, 0xf35c, 0xf4e2, 0x003f, 0xf4e1, 0xf65b, 0xf65c, 0xf65a, 0xf766, 0xc5b0, 0xa8bb, 0xadaa, 0xada9, 0xb075, 0xb074, 0xd440, 0xd441, 0xd3fe, 0x003f, 0xb073, 0xd7f5, 0x003f, 0xd7f6, 0xd7f2, 0xb3a4, 0xd7f3, 0x003f, 0xd7f4, 0x003f, 0x003f, 0x003f, 0x003f, 0xdc5f, 0xdc61, 0xdc5d, 0xdc60, 0xb66f, 0xdc5e, 0xb670, 0x003f, 0x003f, 0xdd73, 0xb955, 0xb954, 0x003f, 0xb953, 0x003f, 0xe0ac, 0xe0ad, 0x003f, 0x003f, 0xe473, 0xe475, 0xbbc6, 0xbbc3, 0x003f, 0xbbc5, 0xbbc4, 0xe474, 0xe472, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe861, 0xe85e, 0xe85f, 0xbe4d, 0xe860, 0xe85b, 0xe85c, 0xbe4a, 0x003f, 0xbe4b, 0xe85d, 0xbe4c, 0x003f, 0xebdb, 0x003f, 0xebdc, 0xebd9, 0xebda, 0xbff4, 0xebd8, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xeec8, 0xeec5, 0xeec7, 0xc1e0, 0xeecb, 0xc1df, 0xeec9, 0xeecc, 0xeeca, 0xeec6, 0xc1de, 0x003f, 0xf14f, 0x003f, 0xf150, 0xf14e, 0x003f, 0xf152, 0xc2e5, 0xc2e6, 0xf35f, 0xc3e7, 0xf151, 0xf35e, 0xc3e6, 0xf4e5, 0xf4e6, 0xc4bf, 0xf4e4, 0x003f, 0xf4e3, 0x003f, 0xf65d, 0xc548, 0x003f, 0xf849, 0xf8c8, 0xf8c7, 0x003f, 0xc643, 0xc65d, 0xf8c9, 0xf971, 0x003f, 0xc66f, 0xa8bc, 0xaaf6, 0x003f, 0xb956, 0x003f, 0xc4c0, 0xa8bd, 0xadab, 0xb3a5, 0xb671, 0xc2e7, 0xaaf7, 0x003f, 0xd0c1, 0xd0c0, 0xd442, 0x003f, 0xb078, 0xb076, 0xb07a, 0xd444, 0x003f, 0xb079, 0xb077, 0x003f, 0x003f, 0x003f, 0x003f, 0xd443, 0xb3a8, 0xd7fc, 0x003f, 0xb3a7, 0xb3a9, 0xd842, 0xb3ab, 0xd7fe, 0xd840, 0xd7f7, 0xb3aa, 0xd843, 0x003f, 0x003f, 0xd7f9, 0x003f, 0xd7fa, 0xd7f8, 0xb3a6, 0x003f, 0xd841, 0xd7fb, 0xd7fd, 0x003f, 0x003f, 0x003f, 0xdc6d, 0x003f, 0xdc6c, /* 0x9200 .. 0x92ff */ 0xdc6a, 0xdc62, 0xdc71, 0xdc65, 0xdc6f, 0xdc76, 0xdc6e, 0xb679, 0x003f, 0xb675, 0xdc63, 0x003f, 0xdc69, 0xb677, 0x003f, 0xdc68, 0xb678, 0xb67a, 0xdc6b, 0x003f, 0xb672, 0xb673, 0xdc77, 0xdc75, 0x003f, 0xdc74, 0xdc66, 0x003f, 0xdc72, 0x003f, 0xb676, 0x003f, 0x003f, 0x003f, 0x003f, 0xb674, 0xdc73, 0xdc64, 0xdc67, 0xdc70, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xe4ba, 0xe0b7, 0x003f, 0xe0b0, 0xe0c3, 0xe0cc, 0xe0b3, 0xb961, 0x003f, 0xe0c0, 0xb957, 0xb959, 0xb965, 0xe0b1, 0x003f, 0x003f, 0xb95a, 0xb95c, 0xb966, 0xb95b, 0x003f, 0x003f, 0x003f, 0x003f, 0xb964, 0xe0b9, 0x003f, 0xe0ae, 0xb962, 0xe0b8, 0xb95e, 0xe0ca, 0xb963, 0xe0c8, 0xe0bc, 0xe0c6, 0xb960, 0xe0af, 0xe0c9, 0xe0c4, 0x003f, 0xe0cb, 0xb958, 0x003f, 0x003f, 0xb967, 0xb95d, 0x003f, 0x003f, 0xe0b5, 0x003f, 0xe0bd, 0xe0c1, 0x003f, 0xe0c5, 0xb95f, 0xe0b4, 0xe0b2, 0xe0be, 0x003f, 0x003f, 0x003f, 0x003f, 0xe0bb, 0xe0ba, 0x003f, 0xe0bf, 0xe0c2, 0x003f, 0xe0c7, 0x003f, 0x003f, 0x003f, 0xe478, 0x003f, 0xbbc7, 0xe4a4, 0xe47a, 0xbbcc, 0xbbd0, 0xe4ad, 0xe4b5, 0xe4a6, 0xbbc8, 0x003f, 0xe4aa, 0xe0b6, 0x003f, 0xbbc9, 0xe4b1, 0xe4b6, 0xe4ae, 0x003f, 0xe4b0, 0xe4b9, 0xe4b2, 0xe47e, 0xe4a9, 0x003f, 0x003f, 0xbbd1, 0x003f, 0xbbcd, 0xe47c, 0xe4ab, 0xbbcb, 0xe4a5, 0xbbca, 0xe4b3, 0xe4a2, 0xe479, 0xbbce, 0xe4b8, 0x003f, 0x003f, 0xe47b, 0xe4af, 0xe4ac, 0xe4a7, 0xe477, 0xe476, 0xe4a1, 0xe4b4, 0xbbcf, 0xe4b7, 0xe47d, 0xe4a3, 0xbe52, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xbe5a, 0xbe55, 0xe8a4, 0xe8a1, 0xe867, 0xbe50, 0x003f, 0xf9d7, 0x003f, 0xbe4f, 0xbe56, 0x003f, 0x003f, 0x003f, 0xe865, 0xbe54, 0xe871, 0xe863, 0xe864, 0xbe4e, 0xe8a3, 0xbe58, 0xe874, 0xe879, 0xe873, 0xebee, 0xe86f, 0xe877, 0xe875, 0xe868, 0xe862, 0xe87d, 0xbe57, 0xe87e, 0x003f, 0xe878, 0x003f, 0xe86d, 0xe86b, 0xe866, 0x003f, 0x003f, 0x003f, 0xe86e, 0xe87b, 0xe86a, 0xe87a, 0xe8a2, 0x003f, 0x003f, 0xbe53, 0x003f, 0xe876, 0xe87c, 0xe872, 0xe86c, 0xbe51, 0x003f, 0x003f, 0x003f, 0xe4a8, 0xe870, 0xbe59, 0xe869, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebf4, 0xbff7, 0xebf3, 0xebf0, 0xec44, 0xbffb, 0x003f, 0xec41, 0xebf8, /* 0x9300 .. 0x93ff */ 0xec43, 0xebe9, 0xebf6, 0x003f, 0xbffd, 0x003f, 0xebe1, 0x003f, 0xebdf, 0xec42, 0x003f, 0xec40, 0xebfe, 0xebed, 0xebec, 0xebe2, 0xc040, 0x003f, 0xebe8, 0xebf2, 0xebfd, 0xc043, 0xec45, 0x003f, 0xc1e8, 0xc045, 0xbffe, 0xebe6, 0x003f, 0xebef, 0xebde, 0xebe0, 0xbff5, 0xc042, 0xbffa, 0xebe7, 0xebf7, 0xebf1, 0xc041, 0xebdd, 0xc1e3, 0xebf9, 0xebfc, 0xbffc, 0x003f, 0xebeb, 0xc044, 0xbff9, 0x003f, 0x003f, 0x003f, 0xbff8, 0xebf5, 0xebfb, 0xbff6, 0x003f, 0xebe4, 0xebfa, 0x003f, 0x003f, 0xebe5, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xebea, 0xeed2, 0x003f, 0xeed7, 0xc1e5, 0xc1e7, 0xeedd, 0xc1e1, 0xeeec, 0xeee3, 0xeed8, 0xeed9, 0xeee2, 0x003f, 0xc1ee, 0xeee1, 0xeed1, 0xeee0, 0xeed4, 0xeeed, 0xc1ed, 0xc1eb, 0xeed5, 0x003f, 0xeee8, 0x003f, 0xeeda, 0xeee7, 0x003f, 0xeee9, 0xeed0, 0xc1e6, 0x003f, 0xeeea, 0x003f, 0x003f, 0xeede, 0x003f, 0xc1ea, 0xeedb, 0x003f, 0x003f, 0xc1ec, 0xeee4, 0x003f, 0x003f, 0x003f, 0xc1e4, 0xeed6, 0xeee5, 0x003f, 0xeedf, 0xebe3, 0xeee6, 0xeed3, 0x003f, 0xc1e9, 0x003f, 0xeeeb, 0x003f, 0xc1e2, 0xeece, 0x003f, 0x003f, 0x003f, 0x003f, 0xf160, 0xf159, 0xc2e9, 0x003f, 0xf154, 0xf163, 0xf15b, 0xeedc, 0x003f, 0xf165, 0xf155, 0x003f, 0xc2e8, 0xf15f, 0xc2ea, 0xc2f2, 0xc2f0, 0xf161, 0xc2f1, 0xf157, 0x003f, 0xf158, 0xf15d, 0xf162, 0x003f, 0xeecd, 0xc2eb, 0xf16a, 0xf167, 0xf16b, 0xf15e, 0xf15a, 0xf168, 0xf36a, 0xf15c, 0x003f, 0xc2ee, 0x003f, 0xc2ed, 0xeecf, 0xc2ef, 0xf164, 0xf166, 0xc2ec, 0xf169, 0xf153, 0x003f, 0xf156, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf373, 0x003f, 0xf363, 0xc3eb, 0xf371, 0x003f, 0x003f, 0xf361, 0xc3ec, 0x003f, 0xf36c, 0x003f, 0xf368, 0xc3f1, 0xf372, 0xf362, 0xf365, 0xc3e9, 0xf374, 0x003f, 0xf36d, 0xf370, 0xc3ef, 0xc3f4, 0xc3f2, 0xf369, 0xf364, 0x003f, 0xc3ed, 0xc3ee, 0xf360, 0xc3ea, 0x003f, 0xc3e8, 0xc3f0, 0xf36f, 0xc3f3, 0x003f, 0xf36b, 0xf375, 0xc3f5, 0x003f, 0x003f, 0x003f, 0xf367, 0x003f, 0xf36e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f3, 0xf542, 0xf4f5, 0xf4fc, 0xf366, 0xf4fa, 0xf4e9, 0xf540, 0xc4c3, 0xf4ed, 0xf4fe, /* 0x9400 .. 0x94ff */ 0xf4f4, 0x003f, 0x003f, 0xc4c2, 0x003f, 0x003f, 0xf544, 0xf4f6, 0x003f, 0xf4fb, 0xf4fd, 0xf4e7, 0xf541, 0xf4f2, 0xf4f7, 0xf4eb, 0xf4ef, 0xf543, 0xf4f9, 0xf4e8, 0xf4ec, 0xf4ee, 0xf4f8, 0x003f, 0xc4c1, 0xf4f1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4ea, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf4f0, 0xf661, 0xf666, 0xc54f, 0xf668, 0x003f, 0xc549, 0x003f, 0xf664, 0xf66a, 0xc54e, 0xc54a, 0x003f, 0xc54b, 0xf660, 0xf667, 0xc54d, 0xf665, 0xc54c, 0xf65f, 0xf663, 0xf662, 0x003f, 0xf65e, 0xf669, 0x003f, 0x003f, 0x003f, 0xc5b1, 0xf76d, 0xf770, 0xf76c, 0xf76e, 0xf76f, 0xf769, 0xf76a, 0xf767, 0x003f, 0x003f, 0xf76b, 0xf768, 0xc5b2, 0xc5b3, 0x003f, 0x003f, 0xf84b, 0x003f, 0xf84d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf84c, 0xf84e, 0x003f, 0xc5e0, 0x003f, 0xf84a, 0xc5df, 0xc5e1, 0x003f, 0x003f, 0x003f, 0xf8cb, 0xf8cc, 0xc644, 0xf8ca, 0x003f, 0xf953, 0xf952, 0xf954, 0xc65f, 0xf955, 0xc65e, 0xf956, 0xf972, 0xf975, 0xf974, 0xc668, 0xf973, 0x003f, 0x003f, 0x003f, 0xc672, 0xc670, 0xc671, 0xc677, 0xf9c0, 0xf9c1, 0xf9bf, 0xf9c9, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9500 .. 0x95ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaaf8, 0x003f, 0x003f, 0xd844, 0xdc78, 0xe8a5, 0xf376, 0x003f, 0x003f, 0xaaf9, 0x003f, 0xadac, 0xb07b, 0x003f, 0x003f, 0xd845, 0x003f, 0xd846, 0xb3ac, 0x003f, 0xb67d, 0xdc7a, 0xdc79, 0xb6a3, 0xb67c, 0xdc7b, 0xb67e, 0xb6a2, 0xb6a1, 0xb67b, 0x003f, 0x003f, 0x003f, 0xb968, 0x003f, 0x003f, 0xe0d0, 0xe0ce, 0x003f, 0xe0cf, 0xe0cd, 0x003f, 0xbbd2, 0x003f, 0xbbd5, 0xbbd7, 0xbbd6, 0x003f, 0x003f, 0xbbd3, 0xbbd4, 0x003f, 0xe8a7, 0xe8a6, 0xbe5b, 0xe8a8, 0x003f, 0xe8a9, 0xbe5c, 0x003f, 0x003f, 0x003f, 0xec4d, 0xec4b, 0xeef3, 0x003f, 0xec49, 0xec4a, 0xc046, 0xec46, 0xec4e, 0xec48, 0xec4c, 0xeeef, 0x003f, 0x003f, 0xeef1, 0x003f, 0xeef2, 0xc1f3, 0xeeee, 0xc1f2, 0xeef0, 0xc1ef, 0xc1f0, 0xc1f1, 0xec47, 0x003f, 0x003f, 0xc2f5, 0xf16e, 0xf16c, 0xf16d, 0xc2f3, 0xc2f6, 0xc2f4, 0x003f, 0x003f, 0x003f, 0xf377, 0xf378, 0xc3f6, 0x003f, 0xf545, 0xf547, 0xf546, 0xc4c4, 0xc550, 0xf66d, 0xf66c, 0xf66b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0x9600 .. 0x96ff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xaafa, 0x003f, 0xc9aa, 0x003f, 0xca58, 0xa6e9, 0xca56, 0xca59, 0xca57, 0x003f, 0x003f, 0x003f, 0xcbae, 0x003f, 0xa8c1, 0x003f, 0xa8c2, 0xcbb0, 0xa8bf, 0xcbaf, 0xcbad, 0xa8c0, 0xa8be, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xcdd8, 0xcddb, 0xaafd, 0xcdda, 0xcdd9, 0x003f, 0xaafc, 0xaafb, 0x003f, 0xab40, 0xcddc, 0xaafe, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xd0c6, 0xadae, 0xadaf, 0xadb0, 0xd0c7, 0xd0c3, 0xadad, 0xd0c4, 0x003f, 0xd0c5, 0xd0c2, 0x003f, 0x003f, 0x003f, 0xb0a4, 0x003f, 0x003f, 0xb0a1, 0xd445, 0xb0a2, 0xb0a5, 0xd446, 0x003f, 0xb07e, 0xb07c, 0xb07d, 0xb0a3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3ad, 0xd849, 0xb3b5, 0xd848, 0x003f, 0xd84b, 0xb3b1, 0xd84a, 0xb6ab, 0xb3af, 0xb3b2, 0xb3ae, 0xb3b3, 0xb3b4, 0xb3b0, 0x003f, 0x003f, 0x003f, 0xd847, 0xb6a7, 0xdc7d, 0x003f, 0xdca3, 0x003f, 0x003f, 0xdca2, 0xb6ac, 0xb6a8, 0xb6a9, 0xdc7c, 0xdc7e, 0xdca1, 0xb6a4, 0xb6a6, 0x003f, 0xb6aa, 0xb6a5, 0x003f, 0x003f, 0xe0d3, 0xe0d1, 0xe0d2, 0xb96a, 0xb96b, 0x003f, 0xe0d4, 0xb969, 0xbbd8, 0x003f, 0xbbda, 0xbbd9, 0x003f, 0xe4bb, 0x003f, 0x003f, 0xe4bc, 0xe8ab, 0x003f, 0xe8aa, 0x003f, 0x003f, 0xc047, 0xc048, 0xec4f, 0xc049, 0x003f, 0xeef6, 0x003f, 0xeef4, 0x003f, 0xeef5, 0xc1f4, 0x003f, 0xf16f, 0xc3f7, 0x003f, 0x003f, 0x003f, 0xc1f5, 0xab41, 0x003f, 0xb0a6, 0xd447, 0x003f, 0x003f, 0xd84c, 0xb3b6, 0xb6ad, 0xdca4, 0xdca6, 0xb6af, 0xb6ae, 0xb6b0, 0xb6b1, 0xdca5, 0xb96e, 0xb96f, 0xb96d, 0xbbdb, 0xb96c, 0xe0d5, 0x003f, 0x003f, 0x003f, 0xbbdc, 0xe8ac, 0xec50, 0xc04a, 0xc1f6, 0xf170, 0xf174, 0xc2f9, 0xf171, 0xc2fa, 0xc2f8, 0xf175, 0xc2fb, 0xf173, 0x003f, 0xf379, 0xc2f7, 0xc3f8, 0x003f, 0xf8cd, 0x003f, 0x003f, 0xab42, 0xb3b8, 0xb3b7, 0x003f, 0x003f, 0x003f, 0x003f, 0xb6b2, 0xdca8, 0xdca7, 0xb6b3, 0x003f, 0x003f, 0xe0d9, 0xb973, 0xb970, 0xe0d8, 0xb972, 0xe0d6, 0xb971, 0x003f, 0xe0d7, 0x003f, 0xe4bd, /* 0x9700 .. 0x97ff */ 0xbbdd, 0x003f, 0xe8af, 0x003f, 0xbe5d, 0xe8ad, 0xbe5e, 0xbe5f, 0xe8ae, 0xbe60, 0x003f, 0xec51, 0x003f, 0xc04e, 0xc04b, 0xc050, 0xec53, 0xc04c, 0xec52, 0xc04f, 0x003f, 0x003f, 0xc04d, 0x003f, 0xeef9, 0xeefb, 0x003f, 0x003f, 0xc1f7, 0xeefa, 0xc1f8, 0xeef8, 0xeef7, 0x003f, 0xf177, 0xf176, 0xc2fc, 0xf178, 0xf37e, 0xc3fa, 0xf37d, 0xf37a, 0xc3f9, 0xf37b, 0xf37c, 0x003f, 0xf548, 0xf549, 0xc4c5, 0x003f, 0xc553, 0x003f, 0x003f, 0xf66e, 0x003f, 0x003f, 0xc551, 0xc552, 0xf66f, 0x003f, 0x003f, 0xc5b4, 0xc5b5, 0xf771, 0x003f, 0x003f, 0xc645, 0xf8cf, 0xc647, 0x003f, 0xf8ce, 0xf8d0, 0xc646, 0xf957, 0x003f, 0xf9ad, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xab43, 0x003f, 0x003f, 0x003f, 0xb974, 0x003f, 0xe4be, 0x003f, 0xe8b0, 0xc051, 0xc052, 0x003f, 0xab44, 0x003f, 0xbe61, 0xc3fb, 0xadb1, 0x003f, 0x003f, 0x003f, 0xc053, 0x003f, 0xc5e2, 0xadb2, 0xd84d, 0x003f, 0xdca9, 0x003f, 0xdcab, 0x003f, 0xdcaa, 0x003f, 0xe0dd, 0xe0da, 0xb975, 0x003f, 0xb976, 0xe0db, 0xe0dc, 0x003f, 0xe4c0, 0xe4c5, 0xbbde, 0xe4bf, 0xe4c1, 0xe4c8, 0xe4c3, 0xe4c7, 0xe4c4, 0xe4c2, 0xe4c6, 0xbbdf, 0x003f, 0x003f, 0xe8b3, 0x003f, 0xe8b1, 0xbe63, 0x003f, 0xbe62, 0xe8b2, 0xbe64, 0x003f, 0x003f, 0x003f, 0x003f, 0xec56, 0x003f, 0x003f, 0xec55, 0xc054, 0xec54, 0xeefc, 0x003f, 0xeefe, 0xef41, 0xef40, 0x003f, 0xc1f9, 0xeefd, 0xf1a1, 0xc2fd, 0xf17d, 0xf1a2, 0xc2fe, 0x003f, 0xf17b, 0x003f, 0xf17e, 0xf17c, 0xf179, 0xc340, 0xf17a, 0x003f, 0x003f, 0x003f, 0x003f, 0xf3a1, 0x003f, 0x003f, 0xf3a3, 0xf3a2, 0x003f, 0xf54a, 0x003f, 0xf54b, 0x003f, 0x003f, 0x003f, 0xf670, 0x003f, 0xc5b7, 0x003f, 0xc5b6, 0xf84f, 0xf850, 0xc648, 0xf8d1, 0x003f, 0xc669, 0x003f, 0xadb3, 0xb6b4, 0xe4ca, 0xe4c9, 0xe8b5, 0xe8b4, 0x003f, 0x003f, 0xc1fa, 0xef43, 0xef42, 0xf1a5, 0xf1a3, 0xf1a6, 0xf1a4, 0x003f, 0x003f, 0xc3fc, 0xf3a4, 0xf3a5, 0xf3a6, 0x003f, 0xf671, 0x003f, 0xf772, 0x003f, 0xf8d2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadb4, 0x003f, 0x003f, 0xec57, 0xef44, 0x003f, 0xadb5, 0x003f, 0x003f, 0xbbe0, 0x003f, 0xec58, 0xc341, 0xf1a7, 0xc3fd, 0x003f, 0xf54c, 0xf54d, 0xc554, /* 0x9800 .. 0x98ff */ 0xf851, 0xadb6, 0xb3bb, 0xb3bc, 0xd84e, 0xb6b5, 0xb6b6, 0xdcac, 0xb6b7, 0x003f, 0xb97a, 0x003f, 0xb97c, 0xe0df, 0xe0e0, 0xe0de, 0xb977, 0xb978, 0xb97b, 0xb979, 0x003f, 0x003f, 0xe4cb, 0xbbe1, 0xbbe2, 0x003f, 0x003f, 0xe8bc, 0xbe67, 0xe8b7, 0xe8b6, 0x003f, 0xe8bb, 0xbe65, 0x003f, 0x003f, 0xc05b, 0x003f, 0xe8b8, 0xe8bd, 0xe8ba, 0xe8b9, 0x003f, 0xbe66, 0x003f, 0xc059, 0x003f, 0xec5a, 0xc055, 0x003f, 0xec5b, 0x003f, 0x003f, 0xec59, 0x003f, 0xc058, 0xc056, 0xc05a, 0x003f, 0xc057, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef45, 0x003f, 0xef4a, 0xef46, 0xef49, 0xc1fb, 0x003f, 0xedd4, 0xef48, 0xef47, 0x003f, 0xc344, 0xc342, 0xc345, 0xc343, 0xf1a8, 0xf1a9, 0xf1aa, 0xc346, 0x003f, 0x003f, 0x003f, 0xf3aa, 0xc440, 0xf3a8, 0x003f, 0xc441, 0xf3a7, 0xf3a9, 0xc3fe, 0xf551, 0xf54e, 0x003f, 0xf54f, 0xf550, 0xf672, 0xc556, 0x003f, 0xc555, 0x003f, 0xf774, 0xf773, 0xc5b8, 0x003f, 0x003f, 0x003f, 0xc5e3, 0xc649, 0xc660, 0xf958, 0xf9ae, 0xf9af, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadb7, 0xdcad, 0x003f, 0x003f, 0xe0e1, 0xe4cc, 0xe4cd, 0xbbe3, 0x003f, 0xbbe4, 0xe8be, 0xbe68, 0x003f, 0x003f, 0xc1fc, 0x003f, 0xf1ab, 0x003f, 0xc347, 0xf3ad, 0xc442, 0xf3ac, 0xf3ae, 0xf3ab, 0xf675, 0xf552, 0xf553, 0x003f, 0xc4c6, 0x003f, 0xf674, 0x003f, 0x003f, 0xf673, 0x003f, 0xf775, 0xf9b0, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadb8, 0x003f, 0x003f, 0x003f, 0xadb9, 0x003f, 0x003f, 0xb0a7, 0xd448, 0x003f, 0xd84f, 0x003f, 0xb6b8, 0x003f, 0xb6bb, 0xb6b9, 0xdcae, 0x003f, 0xb6bd, 0x003f, 0xb6ba, 0x003f, 0x003f, 0xb6bc, 0x003f, 0xb97e, 0x003f, 0xe0e2, 0x003f, 0x003f, 0xe0e3, 0xe8c0, 0x003f, 0xb97d, 0xb9a1, 0xb9a2, 0x003f, /* 0x9900 .. 0x99ff */ 0xe4cf, 0x003f, 0xe4ce, 0xbbe5, 0x003f, 0xbbe6, 0x003f, 0xe4d0, 0xe8bf, 0xbbe8, 0xbe69, 0x003f, 0xbbe7, 0x003f, 0x003f, 0x003f, 0xc05c, 0xe8c1, 0xbe6b, 0xbe6a, 0xe8c2, 0xe8c5, 0xe8c3, 0xe8c4, 0xbe6c, 0x003f, 0xc061, 0xc05f, 0x003f, 0x003f, 0xc05e, 0xec5d, 0x003f, 0xc060, 0x003f, 0x003f, 0xec5c, 0xef4b, 0x003f, 0xec5e, 0xc05d, 0xec5f, 0xef4e, 0xef4c, 0xef4d, 0xef52, 0xc34b, 0xef51, 0xef54, 0xef53, 0xef50, 0xef4f, 0x003f, 0xc1fd, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ae, 0x003f, 0xf1ad, 0xc34a, 0xc348, 0xc349, 0x003f, 0xf1ac, 0x003f, 0xf3b1, 0x003f, 0xc443, 0x003f, 0xf3b0, 0xf3af, 0xc444, 0x003f, 0xf558, 0xf557, 0x003f, 0xf555, 0x003f, 0xf554, 0xc4c8, 0xc4c7, 0xf559, 0xf776, 0xc5b9, 0xf677, 0xc557, 0xf676, 0xf556, 0x003f, 0xf777, 0xc5e4, 0x003f, 0xc661, 0xf959, 0x003f, 0xf9b1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xadba, 0xd850, 0xef55, 0xadbb, 0x003f, 0x003f, 0xe4d2, 0xe4d1, 0xec60, 0x003f, 0x003f, 0xef57, 0x003f, 0xef56, 0x003f, 0xc34c, 0xf3b2, 0xf3b3, 0xc4c9, 0x003f, 0x003f, 0xf9b2, 0xb0a8, 0xb6bf, 0xb6be, 0xe0e4, 0xe0e6, 0xb9a4, 0xe0e5, 0xb9a3, 0xb9a5, 0xe0e7, 0x003f, 0x003f, 0x003f, 0xe4d4, 0xe4d6, 0xe4d5, 0x003f, 0xe4d8, 0x003f, 0x003f, 0x003f, 0xbbe9, 0xe4d7, 0xe4d3, 0x003f, 0x003f, 0x003f, 0xe4d9, 0x003f, 0xe8cc, 0x003f, 0xe8cf, 0xe8d1, 0xe8c7, 0xe8cb, 0xe8c8, 0xbe6e, 0xbe71, 0xbe73, 0xe8c9, 0xe8ca, 0xbe72, 0xe8cd, 0xe8d0, 0xe8ce, 0xbe74, 0x003f, 0xbe70, 0xe8c6, 0xbe6d, 0x003f, 0xbe6f, 0x003f, 0x003f, 0xc063, 0xec66, 0xec64, 0xec63, 0x003f, 0xec69, 0x003f, 0xec68, 0xec67, 0x003f, 0xec62, 0xc062, 0xec61, 0x003f, 0xec65, 0xc064, 0x003f, 0x003f, 0xef5a, 0x003f, 0xef5e, 0xef5b, 0xef5d, 0xef5c, 0xef59, 0xef5f, 0xef62, 0xef60, 0xef61, 0xc240, /* 0x9a00 .. 0x9aff */ 0x003f, 0xc1fe, 0xef58, 0xef63, 0xf1b3, 0xf1b6, 0xf1b8, 0xf1b7, 0x003f, 0xf1b1, 0xf1b5, 0xf1b0, 0x003f, 0xf1b2, 0xc34d, 0xf1af, 0x003f, 0xf1b4, 0x003f, 0x003f, 0xf3c0, 0xf3b5, 0xc445, 0x003f, 0x003f, 0xc446, 0xf3b4, 0xf3b9, 0xf3bf, 0xf3b7, 0xf3be, 0x003f, 0xf3bb, 0x003f, 0xf3ba, 0xf3bd, 0xf3b8, 0xf3b6, 0x003f, 0xf3bc, 0x003f, 0xf560, 0xf55e, 0xc4ca, 0xf55d, 0xf563, 0xf561, 0x003f, 0xc4cb, 0xf55c, 0xf55a, 0x003f, 0xf55b, 0xc4cd, 0xf55f, 0xc4cc, 0xf562, 0xf678, 0xf67e, 0x003f, 0x003f, 0xf679, 0xc55b, 0xf6a1, 0xc55a, 0xf67d, 0xf67c, 0xc559, 0xf67b, 0xc558, 0xf67a, 0x003f, 0xf77d, 0xf7a1, 0xf77e, 0x003f, 0xf77b, 0xc5bb, 0xf778, 0xf77c, 0xf7a3, 0x003f, 0xf7a2, 0xf779, 0xf77a, 0xc5ba, 0xf852, 0xc5e7, 0x003f, 0xf853, 0xc5e5, 0xc5e6, 0x003f, 0x003f, 0xf8d3, 0xc64a, 0xf976, 0x003f, 0xc66a, 0x003f, 0xf9b3, 0xc66b, 0xf9b4, 0xf9b5, 0xf9c3, 0xf9c2, 0xc67a, 0xf9cd, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb0a9, 0x003f, 0x003f, 0xe0e9, 0x003f, 0xe0e8, 0x003f, 0xbbea, 0xbbeb, 0xe4da, 0x003f, 0xe8d2, 0xec6c, 0x003f, 0x003f, 0xbe75, 0xc065, 0xec6a, 0x003f, 0xec6d, 0xc066, 0x003f, 0xef64, 0xec6b, 0xf1b9, 0xc34e, 0xf3c1, 0x003f, 0x003f, 0x003f, 0xf566, 0xf564, 0x003f, 0x003f, 0xf565, 0x003f, 0x003f, 0xf6a2, 0x003f, 0xc55c, 0xf7a4, 0xc5ea, 0xc5bc, 0xc5e8, 0xc5e9, 0xf8d4, 0xc662, 0x003f, 0xb0aa, 0x003f, 0x003f, 0x003f, 0xf1ba, 0x003f, 0x003f, 0xd449, 0x003f, 0xb9a6, 0x003f, 0xe4db, 0x003f, 0x003f, 0xbbec, 0xe4dc, 0x003f, 0x003f, 0x003f, 0xe8d4, 0xe8d3, 0xc068, 0xbe76, 0xbe77, 0x003f, 0xe8d7, 0xe8d6, 0xe8d5, 0x003f, 0x003f, 0xec6e, 0xec71, 0x003f, 0xec70, 0xec6f, 0xc067, 0xef68, 0xef66, 0xef65, 0x003f, /* 0x9b00 .. 0x9bff */ 0x003f, 0xef67, 0x003f, 0xc34f, 0xf1bc, 0xf1bd, 0xc350, 0x003f, 0xf1bb, 0x003f, 0xf3c3, 0xf3c2, 0xf3c5, 0xc447, 0xf3c4, 0x003f, 0xf567, 0xf569, 0xf568, 0x003f, 0x003f, 0xf6a3, 0xf6a6, 0xf6a4, 0xf6a5, 0xf7a5, 0xc5bd, 0x003f, 0x003f, 0x003f, 0xf854, 0xf855, 0xf856, 0x003f, 0xc64b, 0xc663, 0xf9b6, 0xb0ab, 0x003f, 0xbe78, 0xc069, 0xf1be, 0x003f, 0xf7a6, 0x003f, 0x003f, 0xf9c4, 0xd44a, 0x003f, 0xc67b, 0xb0ac, 0xec72, 0x003f, 0xf1bf, 0x003f, 0xf3c6, 0x003f, 0x003f, 0xf6a7, 0xf7a7, 0xb0ad, 0x003f, 0xe4dd, 0xe4de, 0x003f, 0xbbed, 0xbbee, 0xe8d9, 0xbe7a, 0xbe79, 0xe8d8, 0x003f, 0xef69, 0x003f, 0xf1c0, 0xf1c2, 0xf1c1, 0xc353, 0xc352, 0xc351, 0x003f, 0xc55e, 0xf6a8, 0x003f, 0xc55d, 0xf7a9, 0xf7a8, 0x003f, 0xc64c, 0xf8d5, 0xb3bd, 0xe0ea, 0x003f, 0x003f, 0x003f, 0xe4e1, 0xe4df, 0xe4e0, 0x003f, 0x003f, 0xe8e2, 0x003f, 0xe8dd, 0xe8da, 0xe8e1, 0x003f, 0x003f, 0x003f, 0xe8e3, 0x003f, 0x003f, 0xbe7c, 0xe8e0, 0xe8dc, 0x003f, 0x003f, 0xe8db, 0xe8df, 0xe8de, 0xbe7b, 0x003f, 0x003f, 0xec7d, 0xec78, 0xec76, 0xeca1, 0xec77, 0x003f, 0xec73, 0x003f, 0xec79, 0x003f, 0x003f, 0xec74, 0xef72, 0xec75, 0xeca2, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xec7c, 0xc06a, 0xec7b, 0xec7a, 0x003f, 0xec7e, 0x003f, 0x003f, 0x003f, 0x003f, 0xef6a, 0xef6d, 0x003f, 0x003f, 0xef6c, 0x003f, 0xef74, 0xef6f, 0xef73, 0x003f, 0xef71, 0xef70, 0xef6e, 0x003f, 0xef6b, 0x003f, 0xc243, 0xc242, 0x003f, 0xc244, 0xc241, 0xef75, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1c8, 0xf1cb, 0x003f, 0xf1c9, 0xf1cd, 0x003f, 0x003f, 0x003f, 0xf1ce, 0x003f, 0xf1c6, 0xc358, 0xf1c7, 0x003f, 0xf1c5, 0xf1cc, 0x003f, 0xf1c4, 0xf1c3, 0xc357, 0xc355, 0xc354, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1ca, 0xf3cf, 0xf3d5, 0xc44a, 0xf3d0, 0x003f, 0xf3d3, 0xf3d7, 0xc44b, 0xf3d2, 0x003f, 0xf3ca, 0x003f, 0xf3c9, 0xf3d6, 0xf3cd, 0x003f, 0xf3cb, 0xf3d4, 0xf3cc, 0xc449, 0xc448, 0x003f, 0xf3c7, 0xf3c8, 0xf3d1, 0x003f, 0x003f, 0x003f, 0xf3ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56c, 0xf56f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc356, 0x003f, 0x003f, /* 0x9c00 .. 0x9cff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xf56d, 0xf573, 0xf571, 0xf56b, 0xf576, 0x003f, 0xf56a, 0x003f, 0xc4cf, 0xf572, 0x003f, 0x003f, 0x003f, 0xf56e, 0xc4ce, 0xf575, 0x003f, 0x003f, 0xf574, 0x003f, 0x003f, 0x003f, 0x003f, 0xf6ab, 0xf6aa, 0x003f, 0x003f, 0x003f, 0xf6b1, 0x003f, 0xf6ad, 0xf6b0, 0xc560, 0x003f, 0x003f, 0xf6ae, 0xf6af, 0x003f, 0xf6a9, 0xf6ac, 0xc55f, 0x003f, 0x003f, 0x003f, 0xc5bf, 0xf7b4, 0xf7af, 0xf7b3, 0x003f, 0xf7b6, 0xf7b2, 0x003f, 0xf7ae, 0x003f, 0xc5c1, 0xf7b1, 0xf7b5, 0xc5c0, 0xf7ac, 0xf570, 0xf7b0, 0x003f, 0x003f, 0xf7ad, 0x003f, 0xf7aa, 0x003f, 0xf7ab, 0xc5be, 0xf85a, 0xf85c, 0xf85f, 0xf85b, 0xf860, 0x003f, 0xf859, 0x003f, 0xf857, 0x003f, 0xc5eb, 0xf85d, 0xc5ed, 0xc5ec, 0xf858, 0xf85e, 0x003f, 0x003f, 0x003f, 0x003f, 0xf8da, 0xc64d, 0xf8db, 0x003f, 0xf8d9, 0xf8d6, 0x003f, 0x003f, 0xf8d8, 0xf8d7, 0xf95a, 0x003f, 0x003f, 0x003f, 0x003f, 0xf95c, 0xf95b, 0x003f, 0x003f, 0xf979, 0x003f, 0xf978, 0xf977, 0xf97a, 0x003f, 0xc673, 0xc674, 0xf9ca, 0xf9ce, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3be, 0xdcaf, 0xe0ed, 0x003f, 0xb9a7, 0xe0eb, 0x003f, 0x003f, 0xe0ec, 0x003f, 0x003f, 0x003f, 0xe4e2, 0xe4e3, 0xbbf1, 0xbbef, 0xe4e4, 0xbbf0, 0xe8e8, 0x003f, 0xe8eb, 0xe8e5, 0xe8ec, 0xe8e4, 0xe8e6, 0x003f, 0xe8e7, /* 0x9d00 .. 0x9dff */ 0xe8ea, 0x003f, 0x003f, 0xbea1, 0xe8ef, 0xe8ee, 0xbe7d, 0xe8e9, 0xe8ed, 0xbe7e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xecac, 0x003f, 0xc06f, 0x003f, 0xeca7, 0xc06b, 0x003f, 0xeca4, 0xecaa, 0xecad, 0x003f, 0xc070, 0x003f, 0xeca9, 0xeca6, 0xecae, 0xeca5, 0x003f, 0xecab, 0xc06c, 0x003f, 0xeca3, 0xc06d, 0x003f, 0xc06e, 0xeca8, 0x003f, 0x003f, 0x003f, 0xefa9, 0xef7a, 0xef7b, 0xef7e, 0xef7c, 0x003f, 0xef76, 0x003f, 0x003f, 0xef79, 0xefa5, 0xef7d, 0x003f, 0x003f, 0xc245, 0x003f, 0xefa7, 0xefa4, 0xc246, 0xefa6, 0xef77, 0xefa2, 0xefa3, 0x003f, 0xefa1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf1d2, 0xf1d4, 0xf1d7, 0x003f, 0x003f, 0xf1d1, 0x003f, 0xc359, 0xf1d9, 0xf1d0, 0xf1da, 0x003f, 0xf1d6, 0xf1d8, 0xf1dc, 0xf1d5, 0xf1dd, 0xf1d3, 0xf1cf, 0xc35a, 0x003f, 0xf1db, 0xc35b, 0xc44d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xef78, 0xf3f1, 0xf3e8, 0xc44f, 0xf3e4, 0xc450, 0x003f, 0x003f, 0xf3ed, 0xf3e7, 0xf3dd, 0xc44e, 0xf3ea, 0xf3e5, 0xf3e6, 0x003f, 0xf3d8, 0xf3df, 0xf3ee, 0x003f, 0xf3eb, 0x003f, 0xf3e3, 0x003f, 0xf3ef, 0xf3de, 0xf3d9, 0xf3ec, 0x003f, 0xf3db, 0xf3e9, 0xf3e0, 0xf3f0, 0xf3dc, 0xc44c, 0xf3da, 0xf3e1, 0xf3e2, 0x003f, 0x003f, 0x003f, 0xf57d, 0x003f, 0xf57b, 0x003f, 0xf5a2, 0x003f, 0xf5ae, 0xf5a5, 0xf57c, 0xf578, 0xf5a7, 0xf57e, 0xf5a3, 0xf57a, 0xf5aa, 0xf577, 0xf5a1, 0xf5a6, 0xf5a8, 0xf5ab, 0xf579, 0x003f, 0xf5af, 0xf5b0, 0xf5a9, 0xf5ad, 0xf5a4, 0x003f, 0xf6c1, 0xf6c4, 0x003f, 0xc561, 0x003f, 0xf6c3, 0xf6c8, 0xf6c6, 0xc562, 0xf6bd, 0xf6b3, 0xf6b2, 0xc564, 0xf6bf, 0xf6c0, 0xf6bc, 0xf6b4, 0x003f, 0xf6b9, 0xf5ac, 0x003f, 0xf6b5, 0xc563, 0xf6bb, 0x003f, 0xf6ba, 0x003f, 0xf6b6, 0xf6c2, 0x003f, 0xf6b7, 0xf7bb, 0xf6c5, 0xf6c7, 0xf6be, 0xf6b8, 0xf7bc, 0xf7be, 0xf7b8, 0xc5c2, 0x003f, 0xf7c5, 0xf7c3, 0xc5c3, 0xf7c2, 0xf7c1, 0xf7ba, 0xf7b7, 0xf7bd, 0xf7c6, 0xf7b9, 0xf7bf, 0x003f, 0xf869, 0xf86e, 0xf864, 0xf867, 0xc5ee, 0xf86b, 0x003f, 0xf872, 0xf7c0, 0x003f, 0xf865, 0xf86f, 0xf873, 0xf86a, 0xf863, 0xf86d, 0x003f, 0xf86c, 0xf871, 0xf870, 0xf7c4, 0xf868, 0xf862, 0xf866, 0xc64e, 0xc64f, 0xf861, 0x003f, 0xf8e6, 0xf8dd, 0xf8e5, /* 0x9e00 .. 0x9eff */ 0xf8e2, 0xf8e3, 0xf8dc, 0xf8df, 0xf8e7, 0xf8e1, 0xf8e0, 0xf8de, 0x003f, 0xf8e4, 0x003f, 0xf95d, 0x003f, 0xf95e, 0x003f, 0xf960, 0xf95f, 0xf962, 0xf961, 0xf97c, 0xf97b, 0xf9b7, 0x003f, 0xf9b8, 0x003f, 0xf9c5, 0xc678, 0xc67c, 0x003f, 0xf9cf, 0xc67d, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xb3bf, 0x003f, 0x003f, 0x003f, 0xc4d0, 0xf6c9, 0x003f, 0xc650, 0xc651, 0x003f, 0xb3c0, 0xe0ee, 0x003f, 0xb9a8, 0xe8f0, 0x003f, 0x003f, 0xecb0, 0xecb1, 0xecaf, 0xefab, 0xefaa, 0xc247, 0xf1df, 0xefac, 0xf1de, 0x003f, 0x003f, 0xf3f3, 0xc451, 0xc453, 0xf3f2, 0x003f, 0x003f, 0xc452, 0x003f, 0xf5b1, 0xf5b3, 0xf5b2, 0xf6ca, 0xc565, 0x003f, 0xc5ef, 0xf8e8, 0xf963, 0x003f, 0x003f, 0xf9d2, 0xb3c1, 0x003f, 0xe4e5, 0x003f, 0xbea2, 0x003f, 0x003f, 0x003f, 0xecb3, 0xecb2, 0x003f, 0xefad, 0x003f, 0x003f, 0x003f, 0xc454, 0xc4d1, 0xf7c7, 0xf9cb, 0x003f, 0x003f, 0x003f, 0xb3c2, 0xbbf2, 0x003f, 0xbea3, 0x003f, 0xf3f4, 0x003f, 0xf874, 0xb6c0, 0x003f, 0x003f, 0x003f, 0x003f, 0xefae, 0x003f, 0x003f, 0x003f, 0xc664, 0xb6c1, 0xbea4, 0xc248, 0xf875, 0xb6c2, 0x003f, 0xe8f1, 0xc072, 0xecb4, 0xecb5, 0x003f, 0xc071, 0x003f, 0xefaf, 0xc24c, 0xc24a, 0xc24b, 0xc249, 0xf1e0, 0xc35c, 0x003f, 0x003f, 0x003f, 0xf5b5, 0xf5b4, 0xf5b7, 0xf5b6, 0xc4d2, 0x003f, 0x003f, 0xf6cb, 0x003f, 0xf6cd, 0xf6cc, 0xc566, 0xf7c8, 0x003f, 0xf876, 0xf877, 0xc5f0, 0xf964, 0xf97d, 0xc675, 0x003f, 0xdcb0, 0xecb6, 0xefb0, 0xf3f5, 0xe0ef, 0x003f, 0xefb1, /* 0x9f00 .. 0x9fff */ 0xf1e2, 0xf1e1, 0x003f, 0x003f, 0x003f, 0x003f, 0xf878, 0xc652, 0x003f, 0xf965, 0xf97e, 0x003f, 0x003f, 0x003f, 0xb9a9, 0xe8f2, 0xe8f3, 0x003f, 0xecb7, 0xb9aa, 0x003f, 0xc35d, 0xf1e3, 0x003f, 0xf6cf, 0xc567, 0xf6d0, 0xf6ce, 0xf879, 0x003f, 0xf8e9, 0x003f, 0xb9ab, 0x003f, 0xefb4, 0xefb3, 0xefb2, 0xf1e4, 0x003f, 0x003f, 0xf1e8, 0xf1e7, 0xf1e6, 0xf1e5, 0xc35e, 0xf3f6, 0xf5b9, 0xc4d3, 0xf5b8, 0xf6d1, 0xf7cb, 0xf7ca, 0xc5c4, 0xf7c9, 0xf87c, 0xf87b, 0xf87a, 0x003f, 0x003f, 0xbbf3, 0x003f, 0xecb8, 0xc24d, 0x003f, 0xf3f7, 0xf3f8, 0xf7cc, 0xf87d, 0x003f, 0x003f, 0xf8ea, 0xf966, 0xf9b9, 0xf9d4, 0xbbf4, 0xc24e, 0xf1e9, 0xf3f9, 0xf6d2, 0xf87e, 0x003f, 0x003f, 0xbea6, 0x003f, 0xefb5, 0xf1ea, 0xf3fa, 0xf3fb, 0xf3fc, 0xf5be, 0x003f, 0xf5ba, 0xc568, 0xf5bd, 0xf5bc, 0xc4d4, 0xf5bb, 0xc4d6, 0x003f, 0xc4d5, 0xf6d4, 0xf6d3, 0xc569, 0xc56a, 0x003f, 0x003f, 0xc5c6, 0xf7cd, 0xc5c5, 0x003f, 0xf8a3, 0xf8a4, 0xf8a2, 0xf8a1, 0xc654, 0x003f, 0xf8eb, 0xf8ec, 0xf8ed, 0xc653, 0xf967, 0xf96a, 0xf969, 0xf968, 0x003f, 0x003f, 0xf9d3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xc073, 0x003f, 0x003f, 0xc365, 0xf5bf, 0xf6d5, 0x003f, 0xc5c7, 0xf7ce, 0x003f, 0x003f, 0xf9d5, 0x003f, 0x003f, 0x003f, 0xc074, 0x003f, 0x003f, 0x003f, 0xefb6, 0x003f, 0xf7cf, 0x003f, 0xf9a1, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xf900 .. 0xf9ff */ 0xb05a, 0xa7f3, 0xa8ae, 0xb8eb, 0xb7c6, 0xa6ea, 0xa579, 0xc074, 0xc074, 0xabb4, 0xaaf7, 0xb3e2, 0xa960, 0xc369, 0xc4ee, 0xc3b9, 0xc5da, 0xc1b3, 0xbb72, 0xc5de, 0xbcd6, 0xaca5, 0xaf4f, 0xaf5f, 0xb8a8, 0xb954, 0xc064, 0xb6c3, 0xa75a, 0xc4e6, 0xc4ea, 0xc4f5, 0xc67d, 0xb450, 0xc0dd, 0xc2c5, 0xc4b0, 0xa9d4, 0xc3be, 0xc4fa, 0xb459, 0xaed4, 0xaef6, 0xaf54, 0xada6, 0xa8d3, 0xa74e, 0xb3d2, 0xbedb, 0xc372, 0xc46c, 0xbf63, 0xa6d1, 0xc4aa, 0xb8b8, 0xb8f4, 0xc553, 0xbe7c, 0xc64f, 0xb84c, 0xb853, 0xbaf1, 0xdb77, 0xbffd, 0xb3c0, 0xbdd7, 0xc362, 0xa7cb, 0xc5a2, 0xc5a4, 0xa863, 0xbd55, 0xb8ef, 0xb970, 0xc253, 0xb9f0, 0xbcd3, 0xb25c, 0xba7c, 0xb2d6, 0xc15c, 0xadae, 0xb0c7, 0xa6d8, 0xbbfe, 0xade2, 0xb857, 0xbaf0, 0xb5d9, 0xb3ae, 0xc5aa, 0xced4, 0xbcd6, 0xbfd5, 0xa4a6, 0xb9e7, 0xabe3, 0xb276, 0xb2a7, 0xa55f, 0xeda8, 0xab4b, 0xb45f, 0xa4a3, 0xaa63, 0xbcc6, 0xafc1, 0xb0d1, 0xb6eb, 0xacd9, 0xb8ad, 0xbba1, 0xb1fe, 0xa8b0, 0xa848, 0xac42, 0xad59, 0xb1b0, 0xb2a4, 0xab47, 0xa8e2, 0x003f, 0xb1e7, 0xc2b3, 0xa87d, 0xbdcc, 0xb671, 0xc079, 0xa766, 0xa46b, 0xc366, 0xaec8, 0xc26f, 0xc472, 0xbe5b, 0xc67a, 0xc452, 0xbea4, 0xa44f, 0xbee4, 0xbefa, 0xf765, 0xa67e, 0xbca6, 0xc5ca, 0xbcbf, 0xbaa7, 0xb7d2, 0xe6a3, 0x003f, 0xbd6d, 0xc170, 0xbdfb, 0xbdac, 0xb373, 0xc1e5, 0xa643, 0xa648, 0xab7c, 0xaf50, 0xb5f5, 0xbba1, 0xb747, 0xa9c0, 0xb1c9, 0xc0d4, 0xc3ae, 0xc279, 0xa54f, 0xcbf1, 0xb9e7, 0xc0ad, 0xccb0, 0xacc2, 0xbcfc, 0xb2dc, 0xb2e2, 0xb961, 0xb973, 0xc646, 0xbbe2, 0xa8d2, 0xc2a7, 0xc4bf, 0xc1f5, 0xb463, 0xa446, 0xb9b1, 0xbc64, 0xa7bf, 0xaec6, 0xbcd6, 0xbf52, 0xc0f8, 0xe764, 0xbff1, 0xc073, 0xb777, 0xa8bf, 0xbc42, 0xccd8, 0xac68, 0xac79, 0xb7c8, 0xaf5b, 0xaf64, 0xb2b8, 0xafc3, 0xc3fe, 0xa4bb, 0xbcae, 0xb3b0, 0xaddb, 0xb15b, 0xb25f, 0xbdfc, 0xabdf, 0xb758, 0xaedf, 0xb276, 0xb6a9, 0xa751, 0xa64f, 0xbc69, 0xa9f6, 0xa7f5, 0xb1f9, 0xaa64, 0xb27a, 0xb567, 0xbfa9, 0xf9d8, 0xb8cc, 0xa8bd, 0xc2f7, 0xb0ce, 0xb7c4, 0xa75b, 0xbf4d, 0xbf5a, 0xc4a9, 0x003f, 0xc5ec, 0xc5ef, 0xaa4c, 0xb24f, 0xc17b, 0xa5df, 0xb2c1, 0xb2c9, 0xaaac, 0xaaa5, 0xc3d1, 0xa4b0, 0xaff9, 0xa8eb, /* 0xfa00 .. 0xfaff */ 0xa4c1, 0xabd7, 0xa9dd, 0xbf7d, 0xa676, 0xac7d, 0xbcc9, 0xbfe7, 0xa6e6, 0xadb0, 0xa8a3, 0xb9f8, 0xc94a, 0xddfc, 0x003f, 0x003f, 0xb6ef, 0x003f, 0xb4b8, 0x003f, 0x003f, 0xe8f9, 0x003f, 0xaf71, 0x003f, 0xafab, 0xb2bb, 0xbad6, 0xb974, 0xbaeb, 0xa6d0, 0x003f, 0x003f, 0x003f, 0xbdd1, 0x003f, 0x003f, 0xb668, 0xb3a3, 0x003f, 0x003f, 0x003f, 0xb6ba, 0xb97d, 0xc05d, 0xc562, 0x003f, 0x003f, 0xab56, 0xb9ac, 0xa74b, 0xab6a, 0xb6d4, 0xa8f5, 0xb3dc, 0xb9c4, 0xbeb9, 0x003f, 0xbea5, 0xbc68, 0xc94b, 0xaeac, 0xb46e, 0xbca8, 0xc367, 0xb1d3, 0xac4a, 0xb4bb, 0xb1f6, 0xaefc, 0xb25a, 0xba7e, 0xb54e, 0x003f, 0xb55a, 0xb84f, 0xaac0, 0xace7, 0xace8, 0xafa7, 0xafaa, 0xafac, 0xbad7, 0xbad5, 0xbd5c, 0xacf0, 0xb860, 0xbd6d, 0xbfa7, 0xc163, 0xb870, 0xaacc, 0xafe4, 0x003f, 0x003f, 0xb5db, 0xbdc5, 0xb5f8, 0xbfd6, 0xc2d4, 0xbbab, 0xc3d8, 0x003f, 0xb668, 0xc3f8, 0xc554, 0xc057, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfb00 .. 0xfbff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x002b, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xfe00 .. 0xfeff */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa14a, 0xa157, 0x003f, 0xa159, 0xa15b, 0xa15f, 0xa160, 0xa163, 0xa164, 0xa167, 0xa168, 0xa16b, 0xa16c, 0xa16f, 0xa170, 0xa173, 0xa174, 0xa177, 0xa178, 0xa17b, 0xa17c, 0x003f, 0x003f, 0x003f, 0x003f, 0xa1c6, 0xa1c7, 0xa1ca, 0xa1cb, 0xa1c8, 0xa1c9, 0xa15c, 0xa14d, 0xa14e, 0xa14f, 0x003f, 0xa151, 0xa152, 0xa153, 0xa154, 0xa158, 0xa17d, 0xa17e, 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1cc, 0xa1cd, 0xa1ce, 0xa1de, 0xa1df, 0xa1e0, 0xa1e1, 0xa1e2, 0x003f, 0xa242, 0xa24c, 0xa24d, 0xa24e, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* 0xff00 .. 0xffff */ 0x003f, 0xa149, 0x0022, 0xa1ad, 0xa243, 0xa248, 0xa1ae, 0x0027, 0xa15d, 0xa15e, 0xa1af, 0xa1cf, 0xa141, 0xa1d0, 0xa144, 0xa1fe, 0xa2af, 0xa2b0, 0xa2b1, 0xa2b2, 0xa2b3, 0xa2b4, 0xa2b5, 0xa2b6, 0xa2b7, 0xa2b8, 0xa147, 0xa146, 0xa1d5, 0xa1d7, 0xa1d6, 0xa148, 0xa249, 0xa2cf, 0xa2d0, 0xa2d1, 0xa2d2, 0xa2d3, 0xa2d4, 0xa2d5, 0xa2d6, 0xa2d7, 0xa2d8, 0xa2d9, 0xa2da, 0xa2db, 0xa2dc, 0xa2dd, 0xa2de, 0xa2df, 0xa2e0, 0xa2e1, 0xa2e2, 0xa2e3, 0xa2e4, 0xa2e5, 0xa2e6, 0xa2e7, 0xa2e8, 0x005b, 0xa240, 0x005d, 0x005e, 0xa1c4, 0x0060, 0xa2e9, 0xa2ea, 0xa2eb, 0xa2ec, 0xa2ed, 0xa2ee, 0xa2ef, 0xa2f0, 0xa2f1, 0xa2f2, 0xa2f3, 0xa2f4, 0xa2f5, 0xa2f6, 0xa2f7, 0xa2f8, 0xa2f9, 0xa2fa, 0xa2fb, 0xa2fc, 0xa2fd, 0xa2fe, 0xa340, 0xa341, 0xa342, 0xa343, 0xa161, 0xa155, 0xa162, 0xa1e3, 0x003f, 0x003f, 0xa143, 0xa175, 0xa176, 0xa142, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0xa246, 0xa247, 0x003f, 0xa1c3, 0x003f, 0xa244, 0x003f, 0x003f, 0xa278, 0xa1f6, 0xa1f4, 0xa1f7, 0xa1f5, 0xa1bd, 0xa1b3, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, /* defaults */ 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f }; static const unsigned short uni2cp_high[256] = { 0x0000, 0x0100, 0x0200, 0x0300, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x0d00, 0x0e00, 0x0f00, 0x1000, 0x1100, 0x1200, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x2a00, 0x2b00, 0x2c00, 0x2d00, 0x2e00, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, 0x3500, 0x3600, 0x3700, 0x3800, 0x3900, 0x3a00, 0x3b00, 0x3c00, 0x3d00, 0x3e00, 0x3f00, 0x4000, 0x4100, 0x4200, 0x4300, 0x4400, 0x4500, 0x4600, 0x4700, 0x4800, 0x4900, 0x4a00, 0x4b00, 0x4c00, 0x4d00, 0x4e00, 0x4f00, 0x5000, 0x5100, 0x5200, 0x5300, 0x5400, 0x5500, 0x5600, 0x5700, 0x5800, 0x5900, 0x5a00, 0x5b00, 0x5c00, 0x5d00, 0x5e00, 0x5f00, 0x6000, 0x6100, 0x6200, 0x6300, 0x6400, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6a00, 0x6500, 0x6600, 0x6700, 0x6a00, 0x6a00, 0x6800, 0x6900 }; const struct dbcs_table cptable_950 = { { 950, 2, 0x003f, 0x003f, "ANSI/OEM Traditional Chinese Big5" }, cp2uni, cp2uni_leadbytes, uni2cp_low, uni2cp_high, { 0x81, 0xfe, 0x00, 0x00 } }; ================================================ FILE: Project/Unicode/Source/casemap.cpp ================================================ /* Unicode case mappings */ /* Automatically generated; DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" const WCHAR casemap_lower[3328] = { /* index */ 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0800, 0x0900, 0x0100, 0x0a00, 0x0100, 0x0100, 0x0b00, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0c00, /* defaults */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0000 .. 0x00ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0100 .. 0x01ff */ 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0xff39, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0xff87, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x00d2, 0x0001, 0x0000, 0x0001, 0x0000, 0x00ce, 0x0001, 0x0000, 0x00cd, 0x00cd, 0x0001, 0x0000, 0x0000, 0x004f, 0x00ca, 0x00cb, 0x0001, 0x0000, 0x00cd, 0x00cf, 0x0000, 0x00d3, 0x00d1, 0x0001, 0x0000, 0x0000, 0x0000, 0x00d3, 0x00d5, 0x0000, 0x00d6, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, 0x0000, 0x00da, 0x0000, 0x0000, 0x0001, 0x0000, 0x00da, 0x0001, 0x0000, 0x00d9, 0x00d9, 0x0001, 0x0000, 0x0001, 0x0000, 0x00db, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0001, 0x0000, 0x0002, 0x0001, 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0002, 0x0001, 0x0000, 0x0001, 0x0000, 0xff9f, 0xffc8, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, /* 0x0200 .. 0x02ff */ 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0xff7e, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0300 .. 0x03ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x0000, 0x0025, 0x0025, 0x0025, 0x0000, 0x0040, 0x0000, 0x003f, 0x003f, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffc4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0400 .. 0x04ff */ 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0500 .. 0x05ff */ 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1e00 .. 0x1eff */ 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1f00 .. 0x1fff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0xfff8, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xffb6, 0xffb6, 0xfff7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffaa, 0xffaa, 0xffaa, 0xffaa, 0xfff7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xff9c, 0xff9c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff8, 0xfff8, 0xff90, 0xff90, 0xfff9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff80, 0xff80, 0xff82, 0xff82, 0xfff7, 0x0000, 0x0000, 0x0000, /* 0x2100 .. 0x21ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe2a3, 0x0000, 0x0000, 0x0000, 0xdf41, 0xdfba, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2400 .. 0x24ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xff00 .. 0xffff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; const WCHAR casemap_upper[3328] = { /* index */ 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0800, 0x0900, 0x0100, 0x0a00, 0x0100, 0x0100, 0x0b00, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0c00, /* defaults */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0000 .. 0x00ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x02e7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0079, /* 0x0100 .. 0x01ff */ 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xff18, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xfed4, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0061, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0082, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0038, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xffb1, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0xfffe, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, /* 0x0200 .. 0x02ff */ 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff2e, 0xff32, 0x0000, 0xff33, 0xff33, 0x0000, 0xff36, 0x0000, 0xff35, 0x0000, 0x0000, 0x0000, 0x0000, 0xff33, 0x0000, 0x0000, 0xff31, 0x0000, 0x0000, 0x0000, 0x0000, 0xff2f, 0xff2d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff2d, 0x0000, 0x0000, 0xff2b, 0x0000, 0x0000, 0xff2a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff26, 0x0000, 0x0000, 0xff26, 0x0000, 0x0000, 0x0000, 0x0000, 0xff26, 0x0000, 0xff27, 0xff27, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xff25, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0300 .. 0x03ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0054, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffda, 0xffdb, 0xffdb, 0xffdb, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe1, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffc0, 0xffc1, 0xffc1, 0x0000, 0xffc2, 0xffc7, 0x0000, 0x0000, 0x0000, 0xffd1, 0xffca, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0xffaa, 0xffb0, 0xffb1, 0x0000, 0x0000, 0xffa0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0400 .. 0x04ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0xffb0, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0500 .. 0x05ff */ 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0xffd0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1e00 .. 0x1eff */ 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffc5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1f00 .. 0x1fff */ 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x004a, 0x004a, 0x0056, 0x0056, 0x0056, 0x0056, 0x0064, 0x0064, 0x0080, 0x0080, 0x0070, 0x0070, 0x007e, 0x007e, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xe3db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0007, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2100 .. 0x21ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0xfff0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2400 .. 0x24ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0xffe6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0xff00 .. 0xffff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0xffe0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 }; ================================================ FILE: Project/Unicode/Source/compose.cpp ================================================ /* Unicode char composition */ /* Automatically generated; DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" const WCHAR unicode_compose_table[0x846] = { /* second chars + offsets */ 0x0300, 0x0046, 0x0301, 0x009a, 0x0302, 0x0110, 0x0303, 0x0130, 0x0304, 0x014c, 0x0306, 0x0178, 0x0307, 0x0198, 0x0308, 0x01c6, 0x0309, 0x01fc, 0x030a, 0x0214, 0x030b, 0x021a, 0x030c, 0x0220, 0x030f, 0x0245, 0x0311, 0x0253, 0x0313, 0x025f, 0x0314, 0x026d, 0x031b, 0x027d, 0x0323, 0x0281, 0x0324, 0x02ab, 0x0325, 0x02ad, 0x0326, 0x02af, 0x0327, 0x02b3, 0x0328, 0x02c9, 0x032d, 0x02d3, 0x032e, 0x02df, 0x0330, 0x02e1, 0x0331, 0x02e7, 0x0338, 0x02f8, 0x0342, 0x0325, 0x0345, 0x0342, 0x05b4, 0x0381, 0x05b7, 0x0382, 0x05b8, 0x0384, 0x05b9, 0x0385, 0x05bc, 0x0386, 0x05bf, 0x039c, 0x05c1, 0x039f, 0x05c2, 0x03a1, 0x0653, 0x03a3, 0x0654, 0x03a4, 0x0655, 0x03aa, 0x093c, 0x03ab, 0x09bc, 0x03b6, 0x09be, 0x03b9, 0x09d7, 0x03ba, 0x0a3c, 0x03bb, 0x0b3c, 0x03c1, 0x0b3e, 0x03c3, 0x0b56, 0x03c4, 0x0b57, 0x03c5, 0x0bbe, 0x03c6, 0x0bd7, 0x03c8, 0x0c56, 0x03ca, 0x0cc2, 0x03cb, 0x0cd5, 0x03cc, 0x0cd6, 0x03cf, 0x0d3e, 0x03d0, 0x0d57, 0x03d2, 0x0dca, 0x03d3, 0x0dcf, 0x03d5, 0x0ddf, 0x03d6, 0x0f72, 0x03d7, 0x0f74, 0x03d8, 0x0f80, 0x03d9, 0x0fb5, 0x03dc, 0x0fb7, 0x03de, 0x102e, 0x03e8, 0x3099, 0x03e9, 0x309a, 0x0419, 0x0000, 0x0423, /* 0x0300 */ 0x0041, 0x00c0, 0x0045, 0x00c8, 0x0049, 0x00cc, 0x004e, 0x01f8, 0x004f, 0x00d2, 0x0055, 0x00d9, 0x0057, 0x1e80, 0x0059, 0x1ef2, 0x0061, 0x00e0, 0x0065, 0x00e8, 0x0069, 0x00ec, 0x006e, 0x01f9, 0x006f, 0x00f2, 0x0075, 0x00f9, 0x0077, 0x1e81, 0x0079, 0x1ef3, 0x00a8, 0x1fed, 0x00c2, 0x1ea6, 0x00ca, 0x1ec0, 0x00d4, 0x1ed2, 0x00dc, 0x01db, 0x00e2, 0x1ea7, 0x00ea, 0x1ec1, 0x00f4, 0x1ed3, 0x00fc, 0x01dc, 0x0102, 0x1eb0, 0x0103, 0x1eb1, 0x0112, 0x1e14, 0x0113, 0x1e15, 0x014c, 0x1e50, 0x014d, 0x1e51, 0x01a0, 0x1edc, 0x01a1, 0x1edd, 0x01af, 0x1eea, 0x01b0, 0x1eeb, 0x0391, 0x1fba, 0x0395, 0x1fc8, 0x0397, 0x1fca, 0x0399, 0x1fda, 0x039f, 0x1ff8, 0x03a5, 0x1fea, 0x03a9, 0x1ffa, 0x03b1, 0x1f70, 0x03b5, 0x1f72, 0x03b7, 0x1f74, 0x03b9, 0x1f76, 0x03bf, 0x1f78, 0x03c5, 0x1f7a, 0x03c9, 0x1f7c, 0x03ca, 0x1fd2, 0x03cb, 0x1fe2, 0x0415, 0x0400, 0x0418, 0x040d, 0x0435, 0x0450, 0x0438, 0x045d, 0x1f00, 0x1f02, 0x1f01, 0x1f03, 0x1f08, 0x1f0a, 0x1f09, 0x1f0b, 0x1f10, 0x1f12, 0x1f11, 0x1f13, 0x1f18, 0x1f1a, 0x1f19, 0x1f1b, 0x1f20, 0x1f22, 0x1f21, 0x1f23, 0x1f28, 0x1f2a, 0x1f29, 0x1f2b, 0x1f30, 0x1f32, 0x1f31, 0x1f33, 0x1f38, 0x1f3a, 0x1f39, 0x1f3b, 0x1f40, 0x1f42, 0x1f41, 0x1f43, 0x1f48, 0x1f4a, 0x1f49, 0x1f4b, 0x1f50, 0x1f52, 0x1f51, 0x1f53, 0x1f59, 0x1f5b, 0x1f60, 0x1f62, 0x1f61, 0x1f63, 0x1f68, 0x1f6a, 0x1f69, 0x1f6b, 0x1fbf, 0x1fcd, 0x1ffe, 0x1fdd, /* 0x0301 */ 0x0041, 0x00c1, 0x0043, 0x0106, 0x0045, 0x00c9, 0x0047, 0x01f4, 0x0049, 0x00cd, 0x004b, 0x1e30, 0x004c, 0x0139, 0x004d, 0x1e3e, 0x004e, 0x0143, 0x004f, 0x00d3, 0x0050, 0x1e54, 0x0052, 0x0154, 0x0053, 0x015a, 0x0055, 0x00da, 0x0057, 0x1e82, 0x0059, 0x00dd, 0x005a, 0x0179, 0x0061, 0x00e1, 0x0063, 0x0107, 0x0065, 0x00e9, 0x0067, 0x01f5, 0x0069, 0x00ed, 0x006b, 0x1e31, 0x006c, 0x013a, 0x006d, 0x1e3f, 0x006e, 0x0144, 0x006f, 0x00f3, 0x0070, 0x1e55, 0x0072, 0x0155, 0x0073, 0x015b, 0x0075, 0x00fa, 0x0077, 0x1e83, 0x0079, 0x00fd, 0x007a, 0x017a, 0x00a8, 0x0385, 0x00c2, 0x1ea4, 0x00c5, 0x01fa, 0x00c6, 0x01fc, 0x00c7, 0x1e08, 0x00ca, 0x1ebe, 0x00cf, 0x1e2e, 0x00d4, 0x1ed0, 0x00d5, 0x1e4c, 0x00d8, 0x01fe, 0x00dc, 0x01d7, 0x00e2, 0x1ea5, 0x00e5, 0x01fb, 0x00e6, 0x01fd, 0x00e7, 0x1e09, 0x00ea, 0x1ebf, 0x00ef, 0x1e2f, 0x00f4, 0x1ed1, 0x00f5, 0x1e4d, 0x00f8, 0x01ff, 0x00fc, 0x01d8, 0x0102, 0x1eae, 0x0103, 0x1eaf, 0x0112, 0x1e16, 0x0113, 0x1e17, 0x014c, 0x1e52, 0x014d, 0x1e53, 0x0168, 0x1e78, 0x0169, 0x1e79, 0x01a0, 0x1eda, 0x01a1, 0x1edb, 0x01af, 0x1ee8, 0x01b0, 0x1ee9, 0x0308, 0x0344, 0x0391, 0x0386, 0x0395, 0x0388, 0x0397, 0x0389, 0x0399, 0x038a, 0x039f, 0x038c, 0x03a5, 0x038e, 0x03a9, 0x038f, 0x03b1, 0x03ac, 0x03b5, 0x03ad, 0x03b7, 0x03ae, 0x03b9, 0x03af, 0x03bf, 0x03cc, 0x03c5, 0x03cd, 0x03c9, 0x03ce, 0x03ca, 0x0390, 0x03cb, 0x03b0, 0x03d2, 0x03d3, 0x0413, 0x0403, 0x041a, 0x040c, 0x0433, 0x0453, 0x043a, 0x045c, 0x1f00, 0x1f04, 0x1f01, 0x1f05, 0x1f08, 0x1f0c, 0x1f09, 0x1f0d, 0x1f10, 0x1f14, 0x1f11, 0x1f15, 0x1f18, 0x1f1c, 0x1f19, 0x1f1d, 0x1f20, 0x1f24, 0x1f21, 0x1f25, 0x1f28, 0x1f2c, 0x1f29, 0x1f2d, 0x1f30, 0x1f34, 0x1f31, 0x1f35, 0x1f38, 0x1f3c, 0x1f39, 0x1f3d, 0x1f40, 0x1f44, 0x1f41, 0x1f45, 0x1f48, 0x1f4c, 0x1f49, 0x1f4d, 0x1f50, 0x1f54, 0x1f51, 0x1f55, 0x1f59, 0x1f5d, 0x1f60, 0x1f64, 0x1f61, 0x1f65, 0x1f68, 0x1f6c, 0x1f69, 0x1f6d, 0x1fbf, 0x1fce, 0x1ffe, 0x1fde, /* 0x0302 */ 0x0041, 0x00c2, 0x0043, 0x0108, 0x0045, 0x00ca, 0x0047, 0x011c, 0x0048, 0x0124, 0x0049, 0x00ce, 0x004a, 0x0134, 0x004f, 0x00d4, 0x0053, 0x015c, 0x0055, 0x00db, 0x0057, 0x0174, 0x0059, 0x0176, 0x005a, 0x1e90, 0x0061, 0x00e2, 0x0063, 0x0109, 0x0065, 0x00ea, 0x0067, 0x011d, 0x0068, 0x0125, 0x0069, 0x00ee, 0x006a, 0x0135, 0x006f, 0x00f4, 0x0073, 0x015d, 0x0075, 0x00fb, 0x0077, 0x0175, 0x0079, 0x0177, 0x007a, 0x1e91, 0x1ea0, 0x1eac, 0x1ea1, 0x1ead, 0x1eb8, 0x1ec6, 0x1eb9, 0x1ec7, 0x1ecc, 0x1ed8, 0x1ecd, 0x1ed9, /* 0x0303 */ 0x0041, 0x00c3, 0x0045, 0x1ebc, 0x0049, 0x0128, 0x004e, 0x00d1, 0x004f, 0x00d5, 0x0055, 0x0168, 0x0056, 0x1e7c, 0x0059, 0x1ef8, 0x0061, 0x00e3, 0x0065, 0x1ebd, 0x0069, 0x0129, 0x006e, 0x00f1, 0x006f, 0x00f5, 0x0075, 0x0169, 0x0076, 0x1e7d, 0x0079, 0x1ef9, 0x00c2, 0x1eaa, 0x00ca, 0x1ec4, 0x00d4, 0x1ed6, 0x00e2, 0x1eab, 0x00ea, 0x1ec5, 0x00f4, 0x1ed7, 0x0102, 0x1eb4, 0x0103, 0x1eb5, 0x01a0, 0x1ee0, 0x01a1, 0x1ee1, 0x01af, 0x1eee, 0x01b0, 0x1eef, /* 0x0304 */ 0x0041, 0x0100, 0x0045, 0x0112, 0x0047, 0x1e20, 0x0049, 0x012a, 0x004f, 0x014c, 0x0055, 0x016a, 0x0059, 0x0232, 0x0061, 0x0101, 0x0065, 0x0113, 0x0067, 0x1e21, 0x0069, 0x012b, 0x006f, 0x014d, 0x0075, 0x016b, 0x0079, 0x0233, 0x00c4, 0x01de, 0x00c6, 0x01e2, 0x00d5, 0x022c, 0x00d6, 0x022a, 0x00dc, 0x01d5, 0x00e4, 0x01df, 0x00e6, 0x01e3, 0x00f5, 0x022d, 0x00f6, 0x022b, 0x00fc, 0x01d6, 0x01ea, 0x01ec, 0x01eb, 0x01ed, 0x0226, 0x01e0, 0x0227, 0x01e1, 0x022e, 0x0230, 0x022f, 0x0231, 0x0391, 0x1fb9, 0x0399, 0x1fd9, 0x03a5, 0x1fe9, 0x03b1, 0x1fb1, 0x03b9, 0x1fd1, 0x03c5, 0x1fe1, 0x0418, 0x04e2, 0x0423, 0x04ee, 0x0438, 0x04e3, 0x0443, 0x04ef, 0x1e36, 0x1e38, 0x1e37, 0x1e39, 0x1e5a, 0x1e5c, 0x1e5b, 0x1e5d, /* 0x0306 */ 0x0041, 0x0102, 0x0045, 0x0114, 0x0047, 0x011e, 0x0049, 0x012c, 0x004f, 0x014e, 0x0055, 0x016c, 0x0061, 0x0103, 0x0065, 0x0115, 0x0067, 0x011f, 0x0069, 0x012d, 0x006f, 0x014f, 0x0075, 0x016d, 0x0228, 0x1e1c, 0x0229, 0x1e1d, 0x0391, 0x1fb8, 0x0399, 0x1fd8, 0x03a5, 0x1fe8, 0x03b1, 0x1fb0, 0x03b9, 0x1fd0, 0x03c5, 0x1fe0, 0x0410, 0x04d0, 0x0415, 0x04d6, 0x0416, 0x04c1, 0x0418, 0x0419, 0x0423, 0x040e, 0x0430, 0x04d1, 0x0435, 0x04d7, 0x0436, 0x04c2, 0x0438, 0x0439, 0x0443, 0x045e, 0x1ea0, 0x1eb6, 0x1ea1, 0x1eb7, /* 0x0307 */ 0x0041, 0x0226, 0x0042, 0x1e02, 0x0043, 0x010a, 0x0044, 0x1e0a, 0x0045, 0x0116, 0x0046, 0x1e1e, 0x0047, 0x0120, 0x0048, 0x1e22, 0x0049, 0x0130, 0x004d, 0x1e40, 0x004e, 0x1e44, 0x004f, 0x022e, 0x0050, 0x1e56, 0x0052, 0x1e58, 0x0053, 0x1e60, 0x0054, 0x1e6a, 0x0057, 0x1e86, 0x0058, 0x1e8a, 0x0059, 0x1e8e, 0x005a, 0x017b, 0x0061, 0x0227, 0x0062, 0x1e03, 0x0063, 0x010b, 0x0064, 0x1e0b, 0x0065, 0x0117, 0x0066, 0x1e1f, 0x0067, 0x0121, 0x0068, 0x1e23, 0x006d, 0x1e41, 0x006e, 0x1e45, 0x006f, 0x022f, 0x0070, 0x1e57, 0x0072, 0x1e59, 0x0073, 0x1e61, 0x0074, 0x1e6b, 0x0077, 0x1e87, 0x0078, 0x1e8b, 0x0079, 0x1e8f, 0x007a, 0x017c, 0x015a, 0x1e64, 0x015b, 0x1e65, 0x0160, 0x1e66, 0x0161, 0x1e67, 0x017f, 0x1e9b, 0x1e62, 0x1e68, 0x1e63, 0x1e69, /* 0x0308 */ 0x0041, 0x00c4, 0x0045, 0x00cb, 0x0048, 0x1e26, 0x0049, 0x00cf, 0x004f, 0x00d6, 0x0055, 0x00dc, 0x0057, 0x1e84, 0x0058, 0x1e8c, 0x0059, 0x0178, 0x0061, 0x00e4, 0x0065, 0x00eb, 0x0068, 0x1e27, 0x0069, 0x00ef, 0x006f, 0x00f6, 0x0074, 0x1e97, 0x0075, 0x00fc, 0x0077, 0x1e85, 0x0078, 0x1e8d, 0x0079, 0x00ff, 0x00d5, 0x1e4e, 0x00f5, 0x1e4f, 0x016a, 0x1e7a, 0x016b, 0x1e7b, 0x0399, 0x03aa, 0x03a5, 0x03ab, 0x03b9, 0x03ca, 0x03c5, 0x03cb, 0x03d2, 0x03d4, 0x0406, 0x0407, 0x0410, 0x04d2, 0x0415, 0x0401, 0x0416, 0x04dc, 0x0417, 0x04de, 0x0418, 0x04e4, 0x041e, 0x04e6, 0x0423, 0x04f0, 0x0427, 0x04f4, 0x042b, 0x04f8, 0x042d, 0x04ec, 0x0430, 0x04d3, 0x0435, 0x0451, 0x0436, 0x04dd, 0x0437, 0x04df, 0x0438, 0x04e5, 0x043e, 0x04e7, 0x0443, 0x04f1, 0x0447, 0x04f5, 0x044b, 0x04f9, 0x044d, 0x04ed, 0x0456, 0x0457, 0x04d8, 0x04da, 0x04d9, 0x04db, 0x04e8, 0x04ea, 0x04e9, 0x04eb, /* 0x0309 */ 0x0041, 0x1ea2, 0x0045, 0x1eba, 0x0049, 0x1ec8, 0x004f, 0x1ece, 0x0055, 0x1ee6, 0x0059, 0x1ef6, 0x0061, 0x1ea3, 0x0065, 0x1ebb, 0x0069, 0x1ec9, 0x006f, 0x1ecf, 0x0075, 0x1ee7, 0x0079, 0x1ef7, 0x00c2, 0x1ea8, 0x00ca, 0x1ec2, 0x00d4, 0x1ed4, 0x00e2, 0x1ea9, 0x00ea, 0x1ec3, 0x00f4, 0x1ed5, 0x0102, 0x1eb2, 0x0103, 0x1eb3, 0x01a0, 0x1ede, 0x01a1, 0x1edf, 0x01af, 0x1eec, 0x01b0, 0x1eed, /* 0x030a */ 0x0041, 0x00c5, 0x0055, 0x016e, 0x0061, 0x00e5, 0x0075, 0x016f, 0x0077, 0x1e98, 0x0079, 0x1e99, /* 0x030b */ 0x004f, 0x0150, 0x0055, 0x0170, 0x006f, 0x0151, 0x0075, 0x0171, 0x0423, 0x04f2, 0x0443, 0x04f3, /* 0x030c */ 0x0041, 0x01cd, 0x0043, 0x010c, 0x0044, 0x010e, 0x0045, 0x011a, 0x0047, 0x01e6, 0x0048, 0x021e, 0x0049, 0x01cf, 0x004b, 0x01e8, 0x004c, 0x013d, 0x004e, 0x0147, 0x004f, 0x01d1, 0x0052, 0x0158, 0x0053, 0x0160, 0x0054, 0x0164, 0x0055, 0x01d3, 0x005a, 0x017d, 0x0061, 0x01ce, 0x0063, 0x010d, 0x0064, 0x010f, 0x0065, 0x011b, 0x0067, 0x01e7, 0x0068, 0x021f, 0x0069, 0x01d0, 0x006a, 0x01f0, 0x006b, 0x01e9, 0x006c, 0x013e, 0x006e, 0x0148, 0x006f, 0x01d2, 0x0072, 0x0159, 0x0073, 0x0161, 0x0074, 0x0165, 0x0075, 0x01d4, 0x007a, 0x017e, 0x00dc, 0x01d9, 0x00fc, 0x01da, 0x01b7, 0x01ee, 0x0292, 0x01ef, /* 0x030f */ 0x0041, 0x0200, 0x0045, 0x0204, 0x0049, 0x0208, 0x004f, 0x020c, 0x0052, 0x0210, 0x0055, 0x0214, 0x0061, 0x0201, 0x0065, 0x0205, 0x0069, 0x0209, 0x006f, 0x020d, 0x0072, 0x0211, 0x0075, 0x0215, 0x0474, 0x0476, 0x0475, 0x0477, /* 0x0311 */ 0x0041, 0x0202, 0x0045, 0x0206, 0x0049, 0x020a, 0x004f, 0x020e, 0x0052, 0x0212, 0x0055, 0x0216, 0x0061, 0x0203, 0x0065, 0x0207, 0x0069, 0x020b, 0x006f, 0x020f, 0x0072, 0x0213, 0x0075, 0x0217, /* 0x0313 */ 0x0391, 0x1f08, 0x0395, 0x1f18, 0x0397, 0x1f28, 0x0399, 0x1f38, 0x039f, 0x1f48, 0x03a9, 0x1f68, 0x03b1, 0x1f00, 0x03b5, 0x1f10, 0x03b7, 0x1f20, 0x03b9, 0x1f30, 0x03bf, 0x1f40, 0x03c1, 0x1fe4, 0x03c5, 0x1f50, 0x03c9, 0x1f60, /* 0x0314 */ 0x0391, 0x1f09, 0x0395, 0x1f19, 0x0397, 0x1f29, 0x0399, 0x1f39, 0x039f, 0x1f49, 0x03a1, 0x1fec, 0x03a5, 0x1f59, 0x03a9, 0x1f69, 0x03b1, 0x1f01, 0x03b5, 0x1f11, 0x03b7, 0x1f21, 0x03b9, 0x1f31, 0x03bf, 0x1f41, 0x03c1, 0x1fe5, 0x03c5, 0x1f51, 0x03c9, 0x1f61, /* 0x031b */ 0x004f, 0x01a0, 0x0055, 0x01af, 0x006f, 0x01a1, 0x0075, 0x01b0, /* 0x0323 */ 0x0041, 0x1ea0, 0x0042, 0x1e04, 0x0044, 0x1e0c, 0x0045, 0x1eb8, 0x0048, 0x1e24, 0x0049, 0x1eca, 0x004b, 0x1e32, 0x004c, 0x1e36, 0x004d, 0x1e42, 0x004e, 0x1e46, 0x004f, 0x1ecc, 0x0052, 0x1e5a, 0x0053, 0x1e62, 0x0054, 0x1e6c, 0x0055, 0x1ee4, 0x0056, 0x1e7e, 0x0057, 0x1e88, 0x0059, 0x1ef4, 0x005a, 0x1e92, 0x0061, 0x1ea1, 0x0062, 0x1e05, 0x0064, 0x1e0d, 0x0065, 0x1eb9, 0x0068, 0x1e25, 0x0069, 0x1ecb, 0x006b, 0x1e33, 0x006c, 0x1e37, 0x006d, 0x1e43, 0x006e, 0x1e47, 0x006f, 0x1ecd, 0x0072, 0x1e5b, 0x0073, 0x1e63, 0x0074, 0x1e6d, 0x0075, 0x1ee5, 0x0076, 0x1e7f, 0x0077, 0x1e89, 0x0079, 0x1ef5, 0x007a, 0x1e93, 0x01a0, 0x1ee2, 0x01a1, 0x1ee3, 0x01af, 0x1ef0, 0x01b0, 0x1ef1, /* 0x0324 */ 0x0055, 0x1e72, 0x0075, 0x1e73, /* 0x0325 */ 0x0041, 0x1e00, 0x0061, 0x1e01, /* 0x0326 */ 0x0053, 0x0218, 0x0054, 0x021a, 0x0073, 0x0219, 0x0074, 0x021b, /* 0x0327 */ 0x0043, 0x00c7, 0x0044, 0x1e10, 0x0045, 0x0228, 0x0047, 0x0122, 0x0048, 0x1e28, 0x004b, 0x0136, 0x004c, 0x013b, 0x004e, 0x0145, 0x0052, 0x0156, 0x0053, 0x015e, 0x0054, 0x0162, 0x0063, 0x00e7, 0x0064, 0x1e11, 0x0065, 0x0229, 0x0067, 0x0123, 0x0068, 0x1e29, 0x006b, 0x0137, 0x006c, 0x013c, 0x006e, 0x0146, 0x0072, 0x0157, 0x0073, 0x015f, 0x0074, 0x0163, /* 0x0328 */ 0x0041, 0x0104, 0x0045, 0x0118, 0x0049, 0x012e, 0x004f, 0x01ea, 0x0055, 0x0172, 0x0061, 0x0105, 0x0065, 0x0119, 0x0069, 0x012f, 0x006f, 0x01eb, 0x0075, 0x0173, /* 0x032d */ 0x0044, 0x1e12, 0x0045, 0x1e18, 0x004c, 0x1e3c, 0x004e, 0x1e4a, 0x0054, 0x1e70, 0x0055, 0x1e76, 0x0064, 0x1e13, 0x0065, 0x1e19, 0x006c, 0x1e3d, 0x006e, 0x1e4b, 0x0074, 0x1e71, 0x0075, 0x1e77, /* 0x032e */ 0x0048, 0x1e2a, 0x0068, 0x1e2b, /* 0x0330 */ 0x0045, 0x1e1a, 0x0049, 0x1e2c, 0x0055, 0x1e74, 0x0065, 0x1e1b, 0x0069, 0x1e2d, 0x0075, 0x1e75, /* 0x0331 */ 0x0042, 0x1e06, 0x0044, 0x1e0e, 0x004b, 0x1e34, 0x004c, 0x1e3a, 0x004e, 0x1e48, 0x0052, 0x1e5e, 0x0054, 0x1e6e, 0x005a, 0x1e94, 0x0062, 0x1e07, 0x0064, 0x1e0f, 0x0068, 0x1e96, 0x006b, 0x1e35, 0x006c, 0x1e3b, 0x006e, 0x1e49, 0x0072, 0x1e5f, 0x0074, 0x1e6f, 0x007a, 0x1e95, /* 0x0338 */ 0x003c, 0x226e, 0x003d, 0x2260, 0x003e, 0x226f, 0x2190, 0x219a, 0x2192, 0x219b, 0x2194, 0x21ae, 0x21d0, 0x21cd, 0x21d2, 0x21cf, 0x21d4, 0x21ce, 0x2203, 0x2204, 0x2208, 0x2209, 0x220b, 0x220c, 0x2223, 0x2224, 0x2225, 0x2226, 0x223c, 0x2241, 0x2243, 0x2244, 0x2245, 0x2247, 0x2248, 0x2249, 0x224d, 0x226d, 0x2261, 0x2262, 0x2264, 0x2270, 0x2265, 0x2271, 0x2272, 0x2274, 0x2273, 0x2275, 0x2276, 0x2278, 0x2277, 0x2279, 0x227a, 0x2280, 0x227b, 0x2281, 0x227c, 0x22e0, 0x227d, 0x22e1, 0x2282, 0x2284, 0x2283, 0x2285, 0x2286, 0x2288, 0x2287, 0x2289, 0x2291, 0x22e2, 0x2292, 0x22e3, 0x22a2, 0x22ac, 0x22a8, 0x22ad, 0x22a9, 0x22ae, 0x22ab, 0x22af, 0x22b2, 0x22ea, 0x22b3, 0x22eb, 0x22b4, 0x22ec, 0x22b5, 0x22ed, 0x2add, 0x2adc, /* 0x0342 */ 0x00a8, 0x1fc1, 0x03b1, 0x1fb6, 0x03b7, 0x1fc6, 0x03b9, 0x1fd6, 0x03c5, 0x1fe6, 0x03c9, 0x1ff6, 0x03ca, 0x1fd7, 0x03cb, 0x1fe7, 0x1f00, 0x1f06, 0x1f01, 0x1f07, 0x1f08, 0x1f0e, 0x1f09, 0x1f0f, 0x1f20, 0x1f26, 0x1f21, 0x1f27, 0x1f28, 0x1f2e, 0x1f29, 0x1f2f, 0x1f30, 0x1f36, 0x1f31, 0x1f37, 0x1f38, 0x1f3e, 0x1f39, 0x1f3f, 0x1f50, 0x1f56, 0x1f51, 0x1f57, 0x1f59, 0x1f5f, 0x1f60, 0x1f66, 0x1f61, 0x1f67, 0x1f68, 0x1f6e, 0x1f69, 0x1f6f, 0x1fbf, 0x1fcf, 0x1ffe, 0x1fdf, /* 0x0345 */ 0x0391, 0x1fbc, 0x0397, 0x1fcc, 0x03a9, 0x1ffc, 0x03ac, 0x1fb4, 0x03ae, 0x1fc4, 0x03b1, 0x1fb3, 0x03b7, 0x1fc3, 0x03c9, 0x1ff3, 0x03ce, 0x1ff4, 0x1f00, 0x1f80, 0x1f01, 0x1f81, 0x1f02, 0x1f82, 0x1f03, 0x1f83, 0x1f04, 0x1f84, 0x1f05, 0x1f85, 0x1f06, 0x1f86, 0x1f07, 0x1f87, 0x1f08, 0x1f88, 0x1f09, 0x1f89, 0x1f0a, 0x1f8a, 0x1f0b, 0x1f8b, 0x1f0c, 0x1f8c, 0x1f0d, 0x1f8d, 0x1f0e, 0x1f8e, 0x1f0f, 0x1f8f, 0x1f20, 0x1f90, 0x1f21, 0x1f91, 0x1f22, 0x1f92, 0x1f23, 0x1f93, 0x1f24, 0x1f94, 0x1f25, 0x1f95, 0x1f26, 0x1f96, 0x1f27, 0x1f97, 0x1f28, 0x1f98, 0x1f29, 0x1f99, 0x1f2a, 0x1f9a, 0x1f2b, 0x1f9b, 0x1f2c, 0x1f9c, 0x1f2d, 0x1f9d, 0x1f2e, 0x1f9e, 0x1f2f, 0x1f9f, 0x1f60, 0x1fa0, 0x1f61, 0x1fa1, 0x1f62, 0x1fa2, 0x1f63, 0x1fa3, 0x1f64, 0x1fa4, 0x1f65, 0x1fa5, 0x1f66, 0x1fa6, 0x1f67, 0x1fa7, 0x1f68, 0x1fa8, 0x1f69, 0x1fa9, 0x1f6a, 0x1faa, 0x1f6b, 0x1fab, 0x1f6c, 0x1fac, 0x1f6d, 0x1fad, 0x1f6e, 0x1fae, 0x1f6f, 0x1faf, 0x1f70, 0x1fb2, 0x1f74, 0x1fc2, 0x1f7c, 0x1ff2, 0x1fb6, 0x1fb7, 0x1fc6, 0x1fc7, 0x1ff6, 0x1ff7, /* 0x05b4 */ 0x05d9, 0xfb1d, /* 0x05b7 */ 0x05d0, 0xfb2e, 0x05f2, 0xfb1f, /* 0x05b8 */ 0x05d0, 0xfb2f, /* 0x05b9 */ 0x05d5, 0xfb4b, /* 0x05bc */ 0x05d0, 0xfb30, 0x05d1, 0xfb31, 0x05d2, 0xfb32, 0x05d3, 0xfb33, 0x05d4, 0xfb34, 0x05d5, 0xfb35, 0x05d6, 0xfb36, 0x05d8, 0xfb38, 0x05d9, 0xfb39, 0x05da, 0xfb3a, 0x05db, 0xfb3b, 0x05dc, 0xfb3c, 0x05de, 0xfb3e, 0x05e0, 0xfb40, 0x05e1, 0xfb41, 0x05e3, 0xfb43, 0x05e4, 0xfb44, 0x05e6, 0xfb46, 0x05e7, 0xfb47, 0x05e8, 0xfb48, 0x05e9, 0xfb49, 0x05ea, 0xfb4a, /* 0x05bf */ 0x05d1, 0xfb4c, 0x05db, 0xfb4d, 0x05e4, 0xfb4e, /* 0x05c1 */ 0x05e9, 0xfb2a, 0xfb49, 0xfb2c, /* 0x05c2 */ 0x05e9, 0xfb2b, 0xfb49, 0xfb2d, /* 0x0653 */ 0x0627, 0x0622, /* 0x0654 */ 0x0627, 0x0623, 0x0648, 0x0624, 0x064a, 0x0626, 0x06c1, 0x06c2, 0x06d2, 0x06d3, 0x06d5, 0x06c0, /* 0x0655 */ 0x0627, 0x0625, /* 0x093c */ 0x0915, 0x0958, 0x0916, 0x0959, 0x0917, 0x095a, 0x091c, 0x095b, 0x0921, 0x095c, 0x0922, 0x095d, 0x0928, 0x0929, 0x092b, 0x095e, 0x092f, 0x095f, 0x0930, 0x0931, 0x0933, 0x0934, /* 0x09bc */ 0x09a1, 0x09dc, 0x09a2, 0x09dd, 0x09af, 0x09df, /* 0x09be */ 0x09c7, 0x09cb, /* 0x09d7 */ 0x09c7, 0x09cc, /* 0x0a3c */ 0x0a16, 0x0a59, 0x0a17, 0x0a5a, 0x0a1c, 0x0a5b, 0x0a2b, 0x0a5e, 0x0a32, 0x0a33, 0x0a38, 0x0a36, /* 0x0b3c */ 0x0b21, 0x0b5c, 0x0b22, 0x0b5d, /* 0x0b3e */ 0x0b47, 0x0b4b, /* 0x0b56 */ 0x0b47, 0x0b48, /* 0x0b57 */ 0x0b47, 0x0b4c, /* 0x0bbe */ 0x0bc6, 0x0bca, 0x0bc7, 0x0bcb, /* 0x0bd7 */ 0x0b92, 0x0b94, 0x0bc6, 0x0bcc, /* 0x0c56 */ 0x0c46, 0x0c48, /* 0x0cc2 */ 0x0cc6, 0x0cca, /* 0x0cd5 */ 0x0cbf, 0x0cc0, 0x0cc6, 0x0cc7, 0x0cca, 0x0ccb, /* 0x0cd6 */ 0x0cc6, 0x0cc8, /* 0x0d3e */ 0x0d46, 0x0d4a, 0x0d47, 0x0d4b, /* 0x0d57 */ 0x0d46, 0x0d4c, /* 0x0dca */ 0x0dd9, 0x0dda, 0x0ddc, 0x0ddd, /* 0x0dcf */ 0x0dd9, 0x0ddc, /* 0x0ddf */ 0x0dd9, 0x0dde, /* 0x0f72 */ 0x0f71, 0x0f73, /* 0x0f74 */ 0x0f71, 0x0f75, /* 0x0f80 */ 0x0f71, 0x0f81, 0x0fb2, 0x0f76, 0x0fb3, 0x0f78, /* 0x0fb5 */ 0x0f40, 0x0f69, 0x0f90, 0x0fb9, /* 0x0fb7 */ 0x0f42, 0x0f43, 0x0f4c, 0x0f4d, 0x0f51, 0x0f52, 0x0f56, 0x0f57, 0x0f5b, 0x0f5c, 0x0f92, 0x0f93, 0x0f9c, 0x0f9d, 0x0fa1, 0x0fa2, 0x0fa6, 0x0fa7, 0x0fab, 0x0fac, /* 0x102e */ 0x1025, 0x1026, /* 0x3099 */ 0x3046, 0x3094, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 0x3060, 0x3061, 0x3062, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306f, 0x3070, 0x3072, 0x3073, 0x3075, 0x3076, 0x3078, 0x3079, 0x307b, 0x307c, 0x309d, 0x309e, 0x30a6, 0x30f4, 0x30ab, 0x30ac, 0x30ad, 0x30ae, 0x30af, 0x30b0, 0x30b1, 0x30b2, 0x30b3, 0x30b4, 0x30b5, 0x30b6, 0x30b7, 0x30b8, 0x30b9, 0x30ba, 0x30bb, 0x30bc, 0x30bd, 0x30be, 0x30bf, 0x30c0, 0x30c1, 0x30c2, 0x30c4, 0x30c5, 0x30c6, 0x30c7, 0x30c8, 0x30c9, 0x30cf, 0x30d0, 0x30d2, 0x30d3, 0x30d5, 0x30d6, 0x30d8, 0x30d9, 0x30db, 0x30dc, 0x30ef, 0x30f7, 0x30f0, 0x30f8, 0x30f1, 0x30f9, 0x30f2, 0x30fa, 0x30fd, 0x30fe, /* 0x309a */ 0x306f, 0x3071, 0x3072, 0x3074, 0x3075, 0x3077, 0x3078, 0x307a, 0x307b, 0x307d, 0x30cf, 0x30d1, 0x30d2, 0x30d4, 0x30d5, 0x30d7, 0x30d8, 0x30da, 0x30db, 0x30dd }; const unsigned int unicode_compose_table_size = 69; const WCHAR unicode_decompose_table[4560] = { /* index */ 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0100, 0x0160, 0x0100, 0x0100, 0x0170, 0x0180, 0x0190, 0x01a0, 0x01b0, 0x0100, 0x01c0, 0x01d0, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x01e0, 0x01f0, 0x0100, 0x0200, 0x0210, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0220, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0230, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0240, 0x0100, 0x0100, 0x0100, 0x0100, /* null sub-index */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, /* sub-index 00 */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0270, 0x0290, 0x02b0, 0x02d0, /* sub-index 01 */ 0x02f0, 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0, 0x0250, 0x0250, 0x03f0, 0x0410, 0x0430, 0x0450, 0x0470, 0x0490, /* sub-index 02 */ 0x04b0, 0x04d0, 0x04f0, 0x0510, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, /* sub-index 03 */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0530, 0x0250, 0x0250, 0x0250, 0x0550, 0x0570, 0x0590, 0x05b0, 0x05d0, 0x05f0, 0x0250, 0x0250, /* sub-index 04 */ 0x0610, 0x0630, 0x0250, 0x0650, 0x0250, 0x0670, 0x0250, 0x0690, 0x0250, 0x0250, 0x0250, 0x0250, 0x06b0, 0x06d0, 0x06f0, 0x0710, /* sub-index 06 */ 0x0250, 0x0250, 0x0730, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0750, 0x0770, 0x0250, 0x0250, /* sub-index 09 */ 0x0250, 0x0250, 0x0790, 0x07b0, 0x0250, 0x07d0, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x07f0, 0x0810, 0x0250, 0x0250, /* sub-index 0a */ 0x0250, 0x0250, 0x0250, 0x0830, 0x0250, 0x0850, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, /* sub-index 0b */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0870, 0x0890, 0x0250, 0x0250, 0x0250, 0x08b0, 0x0250, 0x0250, 0x08d0, 0x0250, 0x0250, 0x0250, /* sub-index 0c */ 0x0250, 0x0250, 0x0250, 0x0250, 0x08f0, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0910, 0x0250, 0x0250, 0x0250, /* sub-index 0d */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0930, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0950, 0x0250, 0x0250, /* sub-index 0f */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0970, 0x0990, 0x09b0, 0x09d0, 0x09f0, 0x0a10, 0x0a30, 0x0a50, 0x0250, 0x0250, 0x0250, 0x0250, /* sub-index 10 */ 0x0250, 0x0250, 0x0a70, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, /* sub-index 1e */ 0x0a90, 0x0ab0, 0x0ad0, 0x0af0, 0x0b10, 0x0b30, 0x0b50, 0x0b70, 0x0b90, 0x0bb0, 0x0bd0, 0x0bf0, 0x0c10, 0x0c30, 0x0c50, 0x0c70, /* sub-index 1f */ 0x0c90, 0x0cb0, 0x0cd0, 0x0cf0, 0x0d10, 0x0d30, 0x0d50, 0x0d70, 0x0d90, 0x0db0, 0x0dd0, 0x0df0, 0x0e10, 0x0e30, 0x0e50, 0x0e70, /* sub-index 21 */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0e90, 0x0eb0, 0x0250, 0x0ed0, 0x0250, 0x0250, 0x0250, /* sub-index 22 */ 0x0ef0, 0x0250, 0x0f10, 0x0250, 0x0f30, 0x0250, 0x0f50, 0x0f70, 0x0f90, 0x0250, 0x0fb0, 0x0250, 0x0250, 0x0250, 0x0fd0, 0x0250, /* sub-index 2a */ 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0ff0, 0x0250, 0x0250, /* sub-index 30 */ 0x0250, 0x0250, 0x0250, 0x0250, 0x1010, 0x1030, 0x1050, 0x1070, 0x0250, 0x1090, 0x10b0, 0x10d0, 0x10f0, 0x1110, 0x0250, 0x1130, /* sub-index fb */ 0x0250, 0x1150, 0x1170, 0x1190, 0x11b0, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, 0x0250, /* null mapping */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x00c0 .. 0x00cf */ 0x0041, 0x0300, 0x0041, 0x0301, 0x0041, 0x0302, 0x0041, 0x0303, 0x0041, 0x0308, 0x0041, 0x030a, 0x0000, 0x0000, 0x0043, 0x0327, 0x0045, 0x0300, 0x0045, 0x0301, 0x0045, 0x0302, 0x0045, 0x0308, 0x0049, 0x0300, 0x0049, 0x0301, 0x0049, 0x0302, 0x0049, 0x0308, /* 0x00d0 .. 0x00df */ 0x0000, 0x0000, 0x004e, 0x0303, 0x004f, 0x0300, 0x004f, 0x0301, 0x004f, 0x0302, 0x004f, 0x0303, 0x004f, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0055, 0x0300, 0x0055, 0x0301, 0x0055, 0x0302, 0x0055, 0x0308, 0x0059, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x00e0 .. 0x00ef */ 0x0061, 0x0300, 0x0061, 0x0301, 0x0061, 0x0302, 0x0061, 0x0303, 0x0061, 0x0308, 0x0061, 0x030a, 0x0000, 0x0000, 0x0063, 0x0327, 0x0065, 0x0300, 0x0065, 0x0301, 0x0065, 0x0302, 0x0065, 0x0308, 0x0069, 0x0300, 0x0069, 0x0301, 0x0069, 0x0302, 0x0069, 0x0308, /* 0x00f0 .. 0x00ff */ 0x0000, 0x0000, 0x006e, 0x0303, 0x006f, 0x0300, 0x006f, 0x0301, 0x006f, 0x0302, 0x006f, 0x0303, 0x006f, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0075, 0x0300, 0x0075, 0x0301, 0x0075, 0x0302, 0x0075, 0x0308, 0x0079, 0x0301, 0x0000, 0x0000, 0x0079, 0x0308, /* 0x0100 .. 0x010f */ 0x0041, 0x0304, 0x0061, 0x0304, 0x0041, 0x0306, 0x0061, 0x0306, 0x0041, 0x0328, 0x0061, 0x0328, 0x0043, 0x0301, 0x0063, 0x0301, 0x0043, 0x0302, 0x0063, 0x0302, 0x0043, 0x0307, 0x0063, 0x0307, 0x0043, 0x030c, 0x0063, 0x030c, 0x0044, 0x030c, 0x0064, 0x030c, /* 0x0110 .. 0x011f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0045, 0x0304, 0x0065, 0x0304, 0x0045, 0x0306, 0x0065, 0x0306, 0x0045, 0x0307, 0x0065, 0x0307, 0x0045, 0x0328, 0x0065, 0x0328, 0x0045, 0x030c, 0x0065, 0x030c, 0x0047, 0x0302, 0x0067, 0x0302, 0x0047, 0x0306, 0x0067, 0x0306, /* 0x0120 .. 0x012f */ 0x0047, 0x0307, 0x0067, 0x0307, 0x0047, 0x0327, 0x0067, 0x0327, 0x0048, 0x0302, 0x0068, 0x0302, 0x0000, 0x0000, 0x0000, 0x0000, 0x0049, 0x0303, 0x0069, 0x0303, 0x0049, 0x0304, 0x0069, 0x0304, 0x0049, 0x0306, 0x0069, 0x0306, 0x0049, 0x0328, 0x0069, 0x0328, /* 0x0130 .. 0x013f */ 0x0049, 0x0307, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x004a, 0x0302, 0x006a, 0x0302, 0x004b, 0x0327, 0x006b, 0x0327, 0x0000, 0x0000, 0x004c, 0x0301, 0x006c, 0x0301, 0x004c, 0x0327, 0x006c, 0x0327, 0x004c, 0x030c, 0x006c, 0x030c, 0x0000, 0x0000, /* 0x0140 .. 0x014f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x004e, 0x0301, 0x006e, 0x0301, 0x004e, 0x0327, 0x006e, 0x0327, 0x004e, 0x030c, 0x006e, 0x030c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x004f, 0x0304, 0x006f, 0x0304, 0x004f, 0x0306, 0x006f, 0x0306, /* 0x0150 .. 0x015f */ 0x004f, 0x030b, 0x006f, 0x030b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0052, 0x0301, 0x0072, 0x0301, 0x0052, 0x0327, 0x0072, 0x0327, 0x0052, 0x030c, 0x0072, 0x030c, 0x0053, 0x0301, 0x0073, 0x0301, 0x0053, 0x0302, 0x0073, 0x0302, 0x0053, 0x0327, 0x0073, 0x0327, /* 0x0160 .. 0x016f */ 0x0053, 0x030c, 0x0073, 0x030c, 0x0054, 0x0327, 0x0074, 0x0327, 0x0054, 0x030c, 0x0074, 0x030c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0055, 0x0303, 0x0075, 0x0303, 0x0055, 0x0304, 0x0075, 0x0304, 0x0055, 0x0306, 0x0075, 0x0306, 0x0055, 0x030a, 0x0075, 0x030a, /* 0x0170 .. 0x017f */ 0x0055, 0x030b, 0x0075, 0x030b, 0x0055, 0x0328, 0x0075, 0x0328, 0x0057, 0x0302, 0x0077, 0x0302, 0x0059, 0x0302, 0x0079, 0x0302, 0x0059, 0x0308, 0x005a, 0x0301, 0x007a, 0x0301, 0x005a, 0x0307, 0x007a, 0x0307, 0x005a, 0x030c, 0x007a, 0x030c, 0x0000, 0x0000, /* 0x01a0 .. 0x01af */ 0x004f, 0x031b, 0x006f, 0x031b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0055, 0x031b, /* 0x01b0 .. 0x01bf */ 0x0075, 0x031b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x01c0 .. 0x01cf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x030c, 0x0061, 0x030c, 0x0049, 0x030c, /* 0x01d0 .. 0x01df */ 0x0069, 0x030c, 0x004f, 0x030c, 0x006f, 0x030c, 0x0055, 0x030c, 0x0075, 0x030c, 0x00dc, 0x0304, 0x00fc, 0x0304, 0x00dc, 0x0301, 0x00fc, 0x0301, 0x00dc, 0x030c, 0x00fc, 0x030c, 0x00dc, 0x0300, 0x00fc, 0x0300, 0x0000, 0x0000, 0x00c4, 0x0304, 0x00e4, 0x0304, /* 0x01e0 .. 0x01ef */ 0x0226, 0x0304, 0x0227, 0x0304, 0x00c6, 0x0304, 0x00e6, 0x0304, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, 0x030c, 0x0067, 0x030c, 0x004b, 0x030c, 0x006b, 0x030c, 0x004f, 0x0328, 0x006f, 0x0328, 0x01ea, 0x0304, 0x01eb, 0x0304, 0x01b7, 0x030c, 0x0292, 0x030c, /* 0x01f0 .. 0x01ff */ 0x006a, 0x030c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0047, 0x0301, 0x0067, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x004e, 0x0300, 0x006e, 0x0300, 0x00c5, 0x0301, 0x00e5, 0x0301, 0x00c6, 0x0301, 0x00e6, 0x0301, 0x00d8, 0x0301, 0x00f8, 0x0301, /* 0x0200 .. 0x020f */ 0x0041, 0x030f, 0x0061, 0x030f, 0x0041, 0x0311, 0x0061, 0x0311, 0x0045, 0x030f, 0x0065, 0x030f, 0x0045, 0x0311, 0x0065, 0x0311, 0x0049, 0x030f, 0x0069, 0x030f, 0x0049, 0x0311, 0x0069, 0x0311, 0x004f, 0x030f, 0x006f, 0x030f, 0x004f, 0x0311, 0x006f, 0x0311, /* 0x0210 .. 0x021f */ 0x0052, 0x030f, 0x0072, 0x030f, 0x0052, 0x0311, 0x0072, 0x0311, 0x0055, 0x030f, 0x0075, 0x030f, 0x0055, 0x0311, 0x0075, 0x0311, 0x0053, 0x0326, 0x0073, 0x0326, 0x0054, 0x0326, 0x0074, 0x0326, 0x0000, 0x0000, 0x0000, 0x0000, 0x0048, 0x030c, 0x0068, 0x030c, /* 0x0220 .. 0x022f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0041, 0x0307, 0x0061, 0x0307, 0x0045, 0x0327, 0x0065, 0x0327, 0x00d6, 0x0304, 0x00f6, 0x0304, 0x00d5, 0x0304, 0x00f5, 0x0304, 0x004f, 0x0307, 0x006f, 0x0307, /* 0x0230 .. 0x023f */ 0x022e, 0x0304, 0x022f, 0x0304, 0x0059, 0x0304, 0x0079, 0x0304, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0340 .. 0x034f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0308, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0380 .. 0x038f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00a8, 0x0301, 0x0391, 0x0301, 0x0000, 0x0000, 0x0395, 0x0301, 0x0397, 0x0301, 0x0399, 0x0301, 0x0000, 0x0000, 0x039f, 0x0301, 0x0000, 0x0000, 0x03a5, 0x0301, 0x03a9, 0x0301, /* 0x0390 .. 0x039f */ 0x03ca, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03a0 .. 0x03af */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0399, 0x0308, 0x03a5, 0x0308, 0x03b1, 0x0301, 0x03b5, 0x0301, 0x03b7, 0x0301, 0x03b9, 0x0301, /* 0x03b0 .. 0x03bf */ 0x03cb, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03c0 .. 0x03cf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03b9, 0x0308, 0x03c5, 0x0308, 0x03bf, 0x0301, 0x03c5, 0x0301, 0x03c9, 0x0301, 0x0000, 0x0000, /* 0x03d0 .. 0x03df */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03d2, 0x0301, 0x03d2, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0400 .. 0x040f */ 0x0415, 0x0300, 0x0415, 0x0308, 0x0000, 0x0000, 0x0413, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0406, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x041a, 0x0301, 0x0418, 0x0300, 0x0423, 0x0306, 0x0000, 0x0000, /* 0x0410 .. 0x041f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0418, 0x0306, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0430 .. 0x043f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0438, 0x0306, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0450 .. 0x045f */ 0x0435, 0x0300, 0x0435, 0x0308, 0x0000, 0x0000, 0x0433, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0456, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x043a, 0x0301, 0x0438, 0x0300, 0x0443, 0x0306, 0x0000, 0x0000, /* 0x0470 .. 0x047f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0474, 0x030f, 0x0475, 0x030f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x04c0 .. 0x04cf */ 0x0000, 0x0000, 0x0416, 0x0306, 0x0436, 0x0306, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x04d0 .. 0x04df */ 0x0410, 0x0306, 0x0430, 0x0306, 0x0410, 0x0308, 0x0430, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0415, 0x0306, 0x0435, 0x0306, 0x0000, 0x0000, 0x0000, 0x0000, 0x04d8, 0x0308, 0x04d9, 0x0308, 0x0416, 0x0308, 0x0436, 0x0308, 0x0417, 0x0308, 0x0437, 0x0308, /* 0x04e0 .. 0x04ef */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0418, 0x0304, 0x0438, 0x0304, 0x0418, 0x0308, 0x0438, 0x0308, 0x041e, 0x0308, 0x043e, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x04e8, 0x0308, 0x04e9, 0x0308, 0x042d, 0x0308, 0x044d, 0x0308, 0x0423, 0x0304, 0x0443, 0x0304, /* 0x04f0 .. 0x04ff */ 0x0423, 0x0308, 0x0443, 0x0308, 0x0423, 0x030b, 0x0443, 0x030b, 0x0427, 0x0308, 0x0447, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x042b, 0x0308, 0x044b, 0x0308, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0620 .. 0x062f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0627, 0x0653, 0x0627, 0x0654, 0x0648, 0x0654, 0x0627, 0x0655, 0x064a, 0x0654, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x06c0 .. 0x06cf */ 0x06d5, 0x0654, 0x0000, 0x0000, 0x06c1, 0x0654, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x06d0 .. 0x06df */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x06d2, 0x0654, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0920 .. 0x092f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0928, 0x093c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0930 .. 0x093f */ 0x0000, 0x0000, 0x0930, 0x093c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0933, 0x093c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0950 .. 0x095f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0915, 0x093c, 0x0916, 0x093c, 0x0917, 0x093c, 0x091c, 0x093c, 0x0921, 0x093c, 0x0922, 0x093c, 0x092b, 0x093c, 0x092f, 0x093c, /* 0x09c0 .. 0x09cf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x09c7, 0x09be, 0x09c7, 0x09d7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x09d0 .. 0x09df */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x09a1, 0x09bc, 0x09a2, 0x09bc, 0x0000, 0x0000, 0x09af, 0x09bc, /* 0x0a30 .. 0x0a3f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a32, 0x0a3c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a38, 0x0a3c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0a50 .. 0x0a5f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a16, 0x0a3c, 0x0a17, 0x0a3c, 0x0a1c, 0x0a3c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0a2b, 0x0a3c, 0x0000, 0x0000, /* 0x0b40 .. 0x0b4f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b47, 0x0b56, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b47, 0x0b3e, 0x0b47, 0x0b57, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0b50 .. 0x0b5f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b21, 0x0b3c, 0x0b22, 0x0b3c, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0b90 .. 0x0b9f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0b92, 0x0bd7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0bc0 .. 0x0bcf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0bc6, 0x0bbe, 0x0bc7, 0x0bbe, 0x0bc6, 0x0bd7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0c40 .. 0x0c4f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0c46, 0x0c56, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0cc0 .. 0x0ccf */ 0x0cbf, 0x0cd5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0cc6, 0x0cd5, 0x0cc6, 0x0cd6, 0x0000, 0x0000, 0x0cc6, 0x0cc2, 0x0cca, 0x0cd5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0d40 .. 0x0d4f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0d46, 0x0d3e, 0x0d47, 0x0d3e, 0x0d46, 0x0d57, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0dd0 .. 0x0ddf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0dd9, 0x0dca, 0x0000, 0x0000, 0x0dd9, 0x0dcf, 0x0ddc, 0x0dca, 0x0dd9, 0x0ddf, 0x0000, 0x0000, /* 0x0f40 .. 0x0f4f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f42, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f4c, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0f50 .. 0x0f5f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0f51, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f56, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f5b, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0f60 .. 0x0f6f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f40, 0x0fb5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0f70 .. 0x0f7f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f71, 0x0f72, 0x0000, 0x0000, 0x0f71, 0x0f74, 0x0fb2, 0x0f80, 0x0000, 0x0000, 0x0fb3, 0x0f80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0f80 .. 0x0f8f */ 0x0000, 0x0000, 0x0f71, 0x0f80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0f90 .. 0x0f9f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f92, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f9c, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0fa0 .. 0x0faf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0fa1, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0fa6, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0fab, 0x0fb7, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x0fb0 .. 0x0fbf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0f90, 0x0fb5, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1020 .. 0x102f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1025, 0x102e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1e00 .. 0x1e0f */ 0x0041, 0x0325, 0x0061, 0x0325, 0x0042, 0x0307, 0x0062, 0x0307, 0x0042, 0x0323, 0x0062, 0x0323, 0x0042, 0x0331, 0x0062, 0x0331, 0x00c7, 0x0301, 0x00e7, 0x0301, 0x0044, 0x0307, 0x0064, 0x0307, 0x0044, 0x0323, 0x0064, 0x0323, 0x0044, 0x0331, 0x0064, 0x0331, /* 0x1e10 .. 0x1e1f */ 0x0044, 0x0327, 0x0064, 0x0327, 0x0044, 0x032d, 0x0064, 0x032d, 0x0112, 0x0300, 0x0113, 0x0300, 0x0112, 0x0301, 0x0113, 0x0301, 0x0045, 0x032d, 0x0065, 0x032d, 0x0045, 0x0330, 0x0065, 0x0330, 0x0228, 0x0306, 0x0229, 0x0306, 0x0046, 0x0307, 0x0066, 0x0307, /* 0x1e20 .. 0x1e2f */ 0x0047, 0x0304, 0x0067, 0x0304, 0x0048, 0x0307, 0x0068, 0x0307, 0x0048, 0x0323, 0x0068, 0x0323, 0x0048, 0x0308, 0x0068, 0x0308, 0x0048, 0x0327, 0x0068, 0x0327, 0x0048, 0x032e, 0x0068, 0x032e, 0x0049, 0x0330, 0x0069, 0x0330, 0x00cf, 0x0301, 0x00ef, 0x0301, /* 0x1e30 .. 0x1e3f */ 0x004b, 0x0301, 0x006b, 0x0301, 0x004b, 0x0323, 0x006b, 0x0323, 0x004b, 0x0331, 0x006b, 0x0331, 0x004c, 0x0323, 0x006c, 0x0323, 0x1e36, 0x0304, 0x1e37, 0x0304, 0x004c, 0x0331, 0x006c, 0x0331, 0x004c, 0x032d, 0x006c, 0x032d, 0x004d, 0x0301, 0x006d, 0x0301, /* 0x1e40 .. 0x1e4f */ 0x004d, 0x0307, 0x006d, 0x0307, 0x004d, 0x0323, 0x006d, 0x0323, 0x004e, 0x0307, 0x006e, 0x0307, 0x004e, 0x0323, 0x006e, 0x0323, 0x004e, 0x0331, 0x006e, 0x0331, 0x004e, 0x032d, 0x006e, 0x032d, 0x00d5, 0x0301, 0x00f5, 0x0301, 0x00d5, 0x0308, 0x00f5, 0x0308, /* 0x1e50 .. 0x1e5f */ 0x014c, 0x0300, 0x014d, 0x0300, 0x014c, 0x0301, 0x014d, 0x0301, 0x0050, 0x0301, 0x0070, 0x0301, 0x0050, 0x0307, 0x0070, 0x0307, 0x0052, 0x0307, 0x0072, 0x0307, 0x0052, 0x0323, 0x0072, 0x0323, 0x1e5a, 0x0304, 0x1e5b, 0x0304, 0x0052, 0x0331, 0x0072, 0x0331, /* 0x1e60 .. 0x1e6f */ 0x0053, 0x0307, 0x0073, 0x0307, 0x0053, 0x0323, 0x0073, 0x0323, 0x015a, 0x0307, 0x015b, 0x0307, 0x0160, 0x0307, 0x0161, 0x0307, 0x1e62, 0x0307, 0x1e63, 0x0307, 0x0054, 0x0307, 0x0074, 0x0307, 0x0054, 0x0323, 0x0074, 0x0323, 0x0054, 0x0331, 0x0074, 0x0331, /* 0x1e70 .. 0x1e7f */ 0x0054, 0x032d, 0x0074, 0x032d, 0x0055, 0x0324, 0x0075, 0x0324, 0x0055, 0x0330, 0x0075, 0x0330, 0x0055, 0x032d, 0x0075, 0x032d, 0x0168, 0x0301, 0x0169, 0x0301, 0x016a, 0x0308, 0x016b, 0x0308, 0x0056, 0x0303, 0x0076, 0x0303, 0x0056, 0x0323, 0x0076, 0x0323, /* 0x1e80 .. 0x1e8f */ 0x0057, 0x0300, 0x0077, 0x0300, 0x0057, 0x0301, 0x0077, 0x0301, 0x0057, 0x0308, 0x0077, 0x0308, 0x0057, 0x0307, 0x0077, 0x0307, 0x0057, 0x0323, 0x0077, 0x0323, 0x0058, 0x0307, 0x0078, 0x0307, 0x0058, 0x0308, 0x0078, 0x0308, 0x0059, 0x0307, 0x0079, 0x0307, /* 0x1e90 .. 0x1e9f */ 0x005a, 0x0302, 0x007a, 0x0302, 0x005a, 0x0323, 0x007a, 0x0323, 0x005a, 0x0331, 0x007a, 0x0331, 0x0068, 0x0331, 0x0074, 0x0308, 0x0077, 0x030a, 0x0079, 0x030a, 0x0000, 0x0000, 0x017f, 0x0307, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1ea0 .. 0x1eaf */ 0x0041, 0x0323, 0x0061, 0x0323, 0x0041, 0x0309, 0x0061, 0x0309, 0x00c2, 0x0301, 0x00e2, 0x0301, 0x00c2, 0x0300, 0x00e2, 0x0300, 0x00c2, 0x0309, 0x00e2, 0x0309, 0x00c2, 0x0303, 0x00e2, 0x0303, 0x1ea0, 0x0302, 0x1ea1, 0x0302, 0x0102, 0x0301, 0x0103, 0x0301, /* 0x1eb0 .. 0x1ebf */ 0x0102, 0x0300, 0x0103, 0x0300, 0x0102, 0x0309, 0x0103, 0x0309, 0x0102, 0x0303, 0x0103, 0x0303, 0x1ea0, 0x0306, 0x1ea1, 0x0306, 0x0045, 0x0323, 0x0065, 0x0323, 0x0045, 0x0309, 0x0065, 0x0309, 0x0045, 0x0303, 0x0065, 0x0303, 0x00ca, 0x0301, 0x00ea, 0x0301, /* 0x1ec0 .. 0x1ecf */ 0x00ca, 0x0300, 0x00ea, 0x0300, 0x00ca, 0x0309, 0x00ea, 0x0309, 0x00ca, 0x0303, 0x00ea, 0x0303, 0x1eb8, 0x0302, 0x1eb9, 0x0302, 0x0049, 0x0309, 0x0069, 0x0309, 0x0049, 0x0323, 0x0069, 0x0323, 0x004f, 0x0323, 0x006f, 0x0323, 0x004f, 0x0309, 0x006f, 0x0309, /* 0x1ed0 .. 0x1edf */ 0x00d4, 0x0301, 0x00f4, 0x0301, 0x00d4, 0x0300, 0x00f4, 0x0300, 0x00d4, 0x0309, 0x00f4, 0x0309, 0x00d4, 0x0303, 0x00f4, 0x0303, 0x1ecc, 0x0302, 0x1ecd, 0x0302, 0x01a0, 0x0301, 0x01a1, 0x0301, 0x01a0, 0x0300, 0x01a1, 0x0300, 0x01a0, 0x0309, 0x01a1, 0x0309, /* 0x1ee0 .. 0x1eef */ 0x01a0, 0x0303, 0x01a1, 0x0303, 0x01a0, 0x0323, 0x01a1, 0x0323, 0x0055, 0x0323, 0x0075, 0x0323, 0x0055, 0x0309, 0x0075, 0x0309, 0x01af, 0x0301, 0x01b0, 0x0301, 0x01af, 0x0300, 0x01b0, 0x0300, 0x01af, 0x0309, 0x01b0, 0x0309, 0x01af, 0x0303, 0x01b0, 0x0303, /* 0x1ef0 .. 0x1eff */ 0x01af, 0x0323, 0x01b0, 0x0323, 0x0059, 0x0300, 0x0079, 0x0300, 0x0059, 0x0323, 0x0079, 0x0323, 0x0059, 0x0309, 0x0079, 0x0309, 0x0059, 0x0303, 0x0079, 0x0303, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1f00 .. 0x1f0f */ 0x03b1, 0x0313, 0x03b1, 0x0314, 0x1f00, 0x0300, 0x1f01, 0x0300, 0x1f00, 0x0301, 0x1f01, 0x0301, 0x1f00, 0x0342, 0x1f01, 0x0342, 0x0391, 0x0313, 0x0391, 0x0314, 0x1f08, 0x0300, 0x1f09, 0x0300, 0x1f08, 0x0301, 0x1f09, 0x0301, 0x1f08, 0x0342, 0x1f09, 0x0342, /* 0x1f10 .. 0x1f1f */ 0x03b5, 0x0313, 0x03b5, 0x0314, 0x1f10, 0x0300, 0x1f11, 0x0300, 0x1f10, 0x0301, 0x1f11, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x0395, 0x0313, 0x0395, 0x0314, 0x1f18, 0x0300, 0x1f19, 0x0300, 0x1f18, 0x0301, 0x1f19, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1f20 .. 0x1f2f */ 0x03b7, 0x0313, 0x03b7, 0x0314, 0x1f20, 0x0300, 0x1f21, 0x0300, 0x1f20, 0x0301, 0x1f21, 0x0301, 0x1f20, 0x0342, 0x1f21, 0x0342, 0x0397, 0x0313, 0x0397, 0x0314, 0x1f28, 0x0300, 0x1f29, 0x0300, 0x1f28, 0x0301, 0x1f29, 0x0301, 0x1f28, 0x0342, 0x1f29, 0x0342, /* 0x1f30 .. 0x1f3f */ 0x03b9, 0x0313, 0x03b9, 0x0314, 0x1f30, 0x0300, 0x1f31, 0x0300, 0x1f30, 0x0301, 0x1f31, 0x0301, 0x1f30, 0x0342, 0x1f31, 0x0342, 0x0399, 0x0313, 0x0399, 0x0314, 0x1f38, 0x0300, 0x1f39, 0x0300, 0x1f38, 0x0301, 0x1f39, 0x0301, 0x1f38, 0x0342, 0x1f39, 0x0342, /* 0x1f40 .. 0x1f4f */ 0x03bf, 0x0313, 0x03bf, 0x0314, 0x1f40, 0x0300, 0x1f41, 0x0300, 0x1f40, 0x0301, 0x1f41, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, 0x039f, 0x0313, 0x039f, 0x0314, 0x1f48, 0x0300, 0x1f49, 0x0300, 0x1f48, 0x0301, 0x1f49, 0x0301, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1f50 .. 0x1f5f */ 0x03c5, 0x0313, 0x03c5, 0x0314, 0x1f50, 0x0300, 0x1f51, 0x0300, 0x1f50, 0x0301, 0x1f51, 0x0301, 0x1f50, 0x0342, 0x1f51, 0x0342, 0x0000, 0x0000, 0x03a5, 0x0314, 0x0000, 0x0000, 0x1f59, 0x0300, 0x0000, 0x0000, 0x1f59, 0x0301, 0x0000, 0x0000, 0x1f59, 0x0342, /* 0x1f60 .. 0x1f6f */ 0x03c9, 0x0313, 0x03c9, 0x0314, 0x1f60, 0x0300, 0x1f61, 0x0300, 0x1f60, 0x0301, 0x1f61, 0x0301, 0x1f60, 0x0342, 0x1f61, 0x0342, 0x03a9, 0x0313, 0x03a9, 0x0314, 0x1f68, 0x0300, 0x1f69, 0x0300, 0x1f68, 0x0301, 0x1f69, 0x0301, 0x1f68, 0x0342, 0x1f69, 0x0342, /* 0x1f70 .. 0x1f7f */ 0x03b1, 0x0300, 0x0000, 0x0000, 0x03b5, 0x0300, 0x0000, 0x0000, 0x03b7, 0x0300, 0x0000, 0x0000, 0x03b9, 0x0300, 0x0000, 0x0000, 0x03bf, 0x0300, 0x0000, 0x0000, 0x03c5, 0x0300, 0x0000, 0x0000, 0x03c9, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1f80 .. 0x1f8f */ 0x1f00, 0x0345, 0x1f01, 0x0345, 0x1f02, 0x0345, 0x1f03, 0x0345, 0x1f04, 0x0345, 0x1f05, 0x0345, 0x1f06, 0x0345, 0x1f07, 0x0345, 0x1f08, 0x0345, 0x1f09, 0x0345, 0x1f0a, 0x0345, 0x1f0b, 0x0345, 0x1f0c, 0x0345, 0x1f0d, 0x0345, 0x1f0e, 0x0345, 0x1f0f, 0x0345, /* 0x1f90 .. 0x1f9f */ 0x1f20, 0x0345, 0x1f21, 0x0345, 0x1f22, 0x0345, 0x1f23, 0x0345, 0x1f24, 0x0345, 0x1f25, 0x0345, 0x1f26, 0x0345, 0x1f27, 0x0345, 0x1f28, 0x0345, 0x1f29, 0x0345, 0x1f2a, 0x0345, 0x1f2b, 0x0345, 0x1f2c, 0x0345, 0x1f2d, 0x0345, 0x1f2e, 0x0345, 0x1f2f, 0x0345, /* 0x1fa0 .. 0x1faf */ 0x1f60, 0x0345, 0x1f61, 0x0345, 0x1f62, 0x0345, 0x1f63, 0x0345, 0x1f64, 0x0345, 0x1f65, 0x0345, 0x1f66, 0x0345, 0x1f67, 0x0345, 0x1f68, 0x0345, 0x1f69, 0x0345, 0x1f6a, 0x0345, 0x1f6b, 0x0345, 0x1f6c, 0x0345, 0x1f6d, 0x0345, 0x1f6e, 0x0345, 0x1f6f, 0x0345, /* 0x1fb0 .. 0x1fbf */ 0x03b1, 0x0306, 0x03b1, 0x0304, 0x1f70, 0x0345, 0x03b1, 0x0345, 0x03ac, 0x0345, 0x0000, 0x0000, 0x03b1, 0x0342, 0x1fb6, 0x0345, 0x0391, 0x0306, 0x0391, 0x0304, 0x0391, 0x0300, 0x0000, 0x0000, 0x0391, 0x0345, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1fc0 .. 0x1fcf */ 0x0000, 0x0000, 0x00a8, 0x0342, 0x1f74, 0x0345, 0x03b7, 0x0345, 0x03ae, 0x0345, 0x0000, 0x0000, 0x03b7, 0x0342, 0x1fc6, 0x0345, 0x0395, 0x0300, 0x0000, 0x0000, 0x0397, 0x0300, 0x0000, 0x0000, 0x0397, 0x0345, 0x1fbf, 0x0300, 0x1fbf, 0x0301, 0x1fbf, 0x0342, /* 0x1fd0 .. 0x1fdf */ 0x03b9, 0x0306, 0x03b9, 0x0304, 0x03ca, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03b9, 0x0342, 0x03ca, 0x0342, 0x0399, 0x0306, 0x0399, 0x0304, 0x0399, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000, 0x1ffe, 0x0300, 0x1ffe, 0x0301, 0x1ffe, 0x0342, /* 0x1fe0 .. 0x1fef */ 0x03c5, 0x0306, 0x03c5, 0x0304, 0x03cb, 0x0300, 0x0000, 0x0000, 0x03c1, 0x0313, 0x03c1, 0x0314, 0x03c5, 0x0342, 0x03cb, 0x0342, 0x03a5, 0x0306, 0x03a5, 0x0304, 0x03a5, 0x0300, 0x0000, 0x0000, 0x03a1, 0x0314, 0x00a8, 0x0300, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x1ff0 .. 0x1fff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x1f7c, 0x0345, 0x03c9, 0x0345, 0x03ce, 0x0345, 0x0000, 0x0000, 0x03c9, 0x0342, 0x1ff6, 0x0345, 0x039f, 0x0300, 0x0000, 0x0000, 0x03a9, 0x0300, 0x0000, 0x0000, 0x03a9, 0x0345, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2190 .. 0x219f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2190, 0x0338, 0x2192, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x21a0 .. 0x21af */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2194, 0x0338, 0x0000, 0x0000, /* 0x21c0 .. 0x21cf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x21d0, 0x0338, 0x21d4, 0x0338, 0x21d2, 0x0338, /* 0x2200 .. 0x220f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2203, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2208, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x220b, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2220 .. 0x222f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2223, 0x0338, 0x0000, 0x0000, 0x2225, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2240 .. 0x224f */ 0x0000, 0x0000, 0x223c, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2243, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2245, 0x0338, 0x0000, 0x0000, 0x2248, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2260 .. 0x226f */ 0x003d, 0x0338, 0x0000, 0x0000, 0x2261, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x224d, 0x0338, 0x003c, 0x0338, 0x003e, 0x0338, /* 0x2270 .. 0x227f */ 0x2264, 0x0338, 0x2265, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2272, 0x0338, 0x2273, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2276, 0x0338, 0x2277, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2280 .. 0x228f */ 0x227a, 0x0338, 0x227b, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2282, 0x0338, 0x2283, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x2286, 0x0338, 0x2287, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x22a0 .. 0x22af */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x22a2, 0x0338, 0x22a8, 0x0338, 0x22a9, 0x0338, 0x22ab, 0x0338, /* 0x22e0 .. 0x22ef */ 0x227c, 0x0338, 0x227d, 0x0338, 0x2291, 0x0338, 0x2292, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x22b2, 0x0338, 0x22b3, 0x0338, 0x22b4, 0x0338, 0x22b5, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x2ad0 .. 0x2adf */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2add, 0x0338, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x3040 .. 0x304f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x304b, 0x3099, 0x0000, 0x0000, 0x304d, 0x3099, 0x0000, 0x0000, /* 0x3050 .. 0x305f */ 0x304f, 0x3099, 0x0000, 0x0000, 0x3051, 0x3099, 0x0000, 0x0000, 0x3053, 0x3099, 0x0000, 0x0000, 0x3055, 0x3099, 0x0000, 0x0000, 0x3057, 0x3099, 0x0000, 0x0000, 0x3059, 0x3099, 0x0000, 0x0000, 0x305b, 0x3099, 0x0000, 0x0000, 0x305d, 0x3099, 0x0000, 0x0000, /* 0x3060 .. 0x306f */ 0x305f, 0x3099, 0x0000, 0x0000, 0x3061, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x3064, 0x3099, 0x0000, 0x0000, 0x3066, 0x3099, 0x0000, 0x0000, 0x3068, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x3070 .. 0x307f */ 0x306f, 0x3099, 0x306f, 0x309a, 0x0000, 0x0000, 0x3072, 0x3099, 0x3072, 0x309a, 0x0000, 0x0000, 0x3075, 0x3099, 0x3075, 0x309a, 0x0000, 0x0000, 0x3078, 0x3099, 0x3078, 0x309a, 0x0000, 0x0000, 0x307b, 0x3099, 0x307b, 0x309a, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x3090 .. 0x309f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3046, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x309d, 0x3099, 0x0000, 0x0000, /* 0x30a0 .. 0x30af */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30ab, 0x3099, 0x0000, 0x0000, 0x30ad, 0x3099, 0x0000, 0x0000, /* 0x30b0 .. 0x30bf */ 0x30af, 0x3099, 0x0000, 0x0000, 0x30b1, 0x3099, 0x0000, 0x0000, 0x30b3, 0x3099, 0x0000, 0x0000, 0x30b5, 0x3099, 0x0000, 0x0000, 0x30b7, 0x3099, 0x0000, 0x0000, 0x30b9, 0x3099, 0x0000, 0x0000, 0x30bb, 0x3099, 0x0000, 0x0000, 0x30bd, 0x3099, 0x0000, 0x0000, /* 0x30c0 .. 0x30cf */ 0x30bf, 0x3099, 0x0000, 0x0000, 0x30c1, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x30c4, 0x3099, 0x0000, 0x0000, 0x30c6, 0x3099, 0x0000, 0x0000, 0x30c8, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x30d0 .. 0x30df */ 0x30cf, 0x3099, 0x30cf, 0x309a, 0x0000, 0x0000, 0x30d2, 0x3099, 0x30d2, 0x309a, 0x0000, 0x0000, 0x30d5, 0x3099, 0x30d5, 0x309a, 0x0000, 0x0000, 0x30d8, 0x3099, 0x30d8, 0x309a, 0x0000, 0x0000, 0x30db, 0x3099, 0x30db, 0x309a, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x30f0 .. 0x30ff */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30a6, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x30ef, 0x3099, 0x30f0, 0x3099, 0x30f1, 0x3099, 0x30f2, 0x3099, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x30fd, 0x3099, 0x0000, 0x0000, /* 0xfb10 .. 0xfb1f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x05d9, 0x05b4, 0x0000, 0x0000, 0x05f2, 0x05b7, /* 0xfb20 .. 0xfb2f */ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x05e9, 0x05c1, 0x05e9, 0x05c2, 0xfb49, 0x05c1, 0xfb49, 0x05c2, 0x05d0, 0x05b7, 0x05d0, 0x05b8, /* 0xfb30 .. 0xfb3f */ 0x05d0, 0x05bc, 0x05d1, 0x05bc, 0x05d2, 0x05bc, 0x05d3, 0x05bc, 0x05d4, 0x05bc, 0x05d5, 0x05bc, 0x05d6, 0x05bc, 0x0000, 0x0000, 0x05d8, 0x05bc, 0x05d9, 0x05bc, 0x05da, 0x05bc, 0x05db, 0x05bc, 0x05dc, 0x05bc, 0x0000, 0x0000, 0x05de, 0x05bc, 0x0000, 0x0000, /* 0xfb40 .. 0xfb4f */ 0x05e0, 0x05bc, 0x05e1, 0x05bc, 0x0000, 0x0000, 0x05e3, 0x05bc, 0x05e4, 0x05bc, 0x0000, 0x0000, 0x05e6, 0x05bc, 0x05e7, 0x05bc, 0x05e8, 0x05bc, 0x05e9, 0x05bc, 0x05ea, 0x05bc, 0x05d5, 0x05b9, 0x05d1, 0x05bf, 0x05db, 0x05bf, 0x05e4, 0x05bf, 0x0000, 0x0000 }; ================================================ FILE: Project/Unicode/Source/cptable.cpp ================================================ /* * Codepage tables * * Copyright 2000 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "StdAfx.h" //#include #include "unicode.h" /* Everything below this line is generated automatically by cpmap.pl */ /* ### cpmap begin ### */ static const union cptable * const cptables[60] = { (const union cptable *)&cptable_037, (const union cptable *)&cptable_042, (const union cptable *)&cptable_424, (const union cptable *)&cptable_437, (const union cptable *)&cptable_500, (const union cptable *)&cptable_737, (const union cptable *)&cptable_775, (const union cptable *)&cptable_850, (const union cptable *)&cptable_852, (const union cptable *)&cptable_855, (const union cptable *)&cptable_856, (const union cptable *)&cptable_857, (const union cptable *)&cptable_860, (const union cptable *)&cptable_861, (const union cptable *)&cptable_862, (const union cptable *)&cptable_863, (const union cptable *)&cptable_864, (const union cptable *)&cptable_865, (const union cptable *)&cptable_866, (const union cptable *)&cptable_869, (const union cptable *)&cptable_874, (const union cptable *)&cptable_875, (const union cptable *)&cptable_878, (const union cptable *)&cptable_932, (const union cptable *)&cptable_936, (const union cptable *)&cptable_949, (const union cptable *)&cptable_950, (const union cptable *)&cptable_1006, (const union cptable *)&cptable_1026, (const union cptable *)&cptable_1250, (const union cptable *)&cptable_1251, (const union cptable *)&cptable_1252, (const union cptable *)&cptable_1253, (const union cptable *)&cptable_1254, (const union cptable *)&cptable_1255, (const union cptable *)&cptable_1256, (const union cptable *)&cptable_1257, (const union cptable *)&cptable_1258, (const union cptable *)&cptable_10000, (const union cptable *)&cptable_10006, (const union cptable *)&cptable_10007, (const union cptable *)&cptable_10029, (const union cptable *)&cptable_10079, (const union cptable *)&cptable_10081, (const union cptable *)&cptable_20866, (const union cptable *)&cptable_20932, (const union cptable *)&cptable_28591, (const union cptable *)&cptable_28592, (const union cptable *)&cptable_28593, (const union cptable *)&cptable_28594, (const union cptable *)&cptable_28595, (const union cptable *)&cptable_28596, (const union cptable *)&cptable_28597, (const union cptable *)&cptable_28598, (const union cptable *)&cptable_28599, (const union cptable *)&cptable_28600, (const union cptable *)&cptable_28603, (const union cptable *)&cptable_28604, (const union cptable *)&cptable_28605, (const union cptable *)&cptable_28606, }; /* ### cpmap end ### */ /* Everything above this line is generated automatically by cpmap.pl */ #define NB_CODEPAGES (sizeof(cptables)/sizeof(cptables[0])) static int __cdecl cmp_codepage( unsigned int codepage, const void *entry ) { return (unsigned int)codepage - (*(union cptable **)entry)->info.codepage; } /* get the table of a given code page */ const union cptable *cp_get_table( unsigned int codepage ) { int i = 0; //const union cptable **res; for(;iinfo.codepage == codepage) return cptables[i]; } return NULL; /* if (!(res = (const union cptable **)bsearch( (void *)codepage, cptables, NB_CODEPAGES, sizeof(cptables[0]), cmp_codepage ))) return NULL; return *res;*/ } /* enum valid codepages */ const union cptable *cp_enum_table( unsigned int index ) { if (index >= NB_CODEPAGES) return NULL; return cptables[index]; } ================================================ FILE: Project/Unicode/Source/mbtowc.cpp ================================================ /* * MultiByteToWideChar implementation * * Copyright 2000 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "StdAfx.h" //#include //#include "winnls.h" #include "unicode.h" /* get the decomposition of a Unicode char */ //extern const WCHAR unicode_decompose_table[]; static int get_decomposition( WCHAR src, WCHAR *dst, unsigned int dstlen ) { const WCHAR *ptr = unicode_decompose_table; int res; *dst = src; ptr = unicode_decompose_table + ptr[src >> 8]; ptr = unicode_decompose_table + ptr[(src >> 4) & 0x0f] + 2 * (src & 0x0f); if (!*ptr) return 1; if (dstlen <= 1) return 0; /* apply the decomposition recursively to the first char */ if ((res = get_decomposition( *ptr, dst, dstlen-1 ))) dst[res++] = ptr[1]; return res; } /* check src string for invalid chars; return non-zero if invalid char found */ static inline int check_invalid_chars_sbcs( const struct sbcs_table *table, const unsigned char *src, unsigned int srclen ) { const WCHAR * const cp2uni = table->cp2uni; while (srclen) { if (cp2uni[*src] == table->info.def_unicode_char && *src != table->info.def_char) break; src++; srclen--; } return srclen; } /* mbstowcs for single-byte code page */ /* all lengths are in characters, not bytes */ static inline int mbstowcs_sbcs( const struct sbcs_table *table, const unsigned char *src, unsigned int srclen, WCHAR *dst, unsigned int dstlen ) { const WCHAR * const cp2uni = table->cp2uni; int ret = srclen; if (dstlen < srclen) { /* buffer too small: fill it up to dstlen and return error */ srclen = dstlen; ret = -1; } for (;;) { switch(srclen) { default: case 16: dst[15] = cp2uni[src[15]]; case 15: dst[14] = cp2uni[src[14]]; case 14: dst[13] = cp2uni[src[13]]; case 13: dst[12] = cp2uni[src[12]]; case 12: dst[11] = cp2uni[src[11]]; case 11: dst[10] = cp2uni[src[10]]; case 10: dst[9] = cp2uni[src[9]]; case 9: dst[8] = cp2uni[src[8]]; case 8: dst[7] = cp2uni[src[7]]; case 7: dst[6] = cp2uni[src[6]]; case 6: dst[5] = cp2uni[src[5]]; case 5: dst[4] = cp2uni[src[4]]; case 4: dst[3] = cp2uni[src[3]]; case 3: dst[2] = cp2uni[src[2]]; case 2: dst[1] = cp2uni[src[1]]; case 1: dst[0] = cp2uni[src[0]]; case 0: break; } if (srclen < 16) return ret; dst += 16; src += 16; srclen -= 16; } } /* mbstowcs for single-byte code page with char decomposition */ static int mbstowcs_sbcs_decompose( const struct sbcs_table *table, const unsigned char *src, unsigned int srclen, WCHAR *dst, unsigned int dstlen ) { const WCHAR * const cp2uni = table->cp2uni; unsigned int len; if (!dstlen) /* compute length */ { WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ for (len = 0; srclen; srclen--, src++) len += get_decomposition( cp2uni[*src], dummy, 4 ); return len; } for (len = dstlen; srclen && len; srclen--, src++) { int res = get_decomposition( cp2uni[*src], dst, len ); if (!res) break; len -= res; dst += res; } if (srclen) return -1; /* overflow */ return dstlen - len; } /* query necessary dst length for src string */ static inline int get_length_dbcs( const struct dbcs_table *table, const unsigned char *src, unsigned int srclen ) { const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; int len; for (len = 0; srclen; srclen--, src++, len++) { if (cp2uni_lb[*src]) { if (!--srclen) break; /* partial char, ignore it */ src++; } } return len; } /* check src string for invalid chars; return non-zero if invalid char found */ static inline int check_invalid_chars_dbcs( const struct dbcs_table *table, const unsigned char *src, unsigned int srclen ) { const WCHAR * const cp2uni = table->cp2uni; const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; while (srclen) { unsigned char off = cp2uni_lb[*src]; if (off) /* multi-byte char */ { if (srclen == 1) break; /* partial char, error */ if (cp2uni[(off << 8) + src[1]] == table->info.def_unicode_char && ((src[0] << 8) | src[1]) != table->info.def_char) break; src++; srclen--; } else if (cp2uni[*src] == table->info.def_unicode_char && *src != table->info.def_char) break; src++; srclen--; } return srclen; } /* mbstowcs for double-byte code page */ /* all lengths are in characters, not bytes */ static inline int mbstowcs_dbcs( const struct dbcs_table *table, const unsigned char *src, unsigned int srclen, WCHAR *dst, unsigned int dstlen ) { const WCHAR * const cp2uni = table->cp2uni; const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; unsigned int len; if (!dstlen) return get_length_dbcs( table, src, srclen ); for (len = dstlen; srclen && len; len--, srclen--, src++, dst++) { unsigned char off = cp2uni_lb[*src]; if (off) { if (!--srclen) break; /* partial char, ignore it */ src++; *dst = cp2uni[(off << 8) + *src]; } else *dst = cp2uni[*src]; } if (srclen) return -1; /* overflow */ return dstlen - len; } /* mbstowcs for double-byte code page with character decomposition */ static int mbstowcs_dbcs_decompose( const struct dbcs_table *table, const unsigned char *src, unsigned int srclen, WCHAR *dst, unsigned int dstlen ) { const WCHAR * const cp2uni = table->cp2uni; const unsigned char * const cp2uni_lb = table->cp2uni_leadbytes; unsigned int len; WCHAR ch; int res; if (!dstlen) /* compute length */ { WCHAR dummy[4]; /* no decomposition is larger than 4 chars */ for (len = 0; srclen; srclen--, src++) { unsigned char off = cp2uni_lb[*src]; if (off) { if (!--srclen) break; /* partial char, ignore it */ src++; ch = cp2uni[(off << 8) + *src]; } else ch = cp2uni[*src]; len += get_decomposition( ch, dummy, 4 ); } return len; } for (len = dstlen; srclen && len; srclen--, src++) { unsigned char off = cp2uni_lb[*src]; if (off) { if (!--srclen) break; /* partial char, ignore it */ src++; ch = cp2uni[(off << 8) + *src]; } else ch = cp2uni[*src]; if (!(res = get_decomposition( ch, dst, len ))) break; dst += res; len -= res; } if (srclen) return -1; /* overflow */ return dstlen - len; } /* return -1 on dst buffer overflow, -2 on invalid input char */ int cp_mbstowcs( const union cptable *table, int flags, const char *src, int srclen, WCHAR *dst, int dstlen ) { if (table->info.char_size == 1) { if (flags & MB_ERR_INVALID_CHARS) { if (check_invalid_chars_sbcs( &table->sbcs,(const unsigned char *) src, srclen )) return -2; } if (!(flags & MB_COMPOSITE)) { if (!dstlen) return srclen; return mbstowcs_sbcs( &table->sbcs,(const unsigned char *)src, srclen, dst, dstlen ); } return mbstowcs_sbcs_decompose( &table->sbcs,(const unsigned char *)src, srclen, dst, dstlen ); } else /* mbcs */ { if (flags & MB_ERR_INVALID_CHARS) { if (check_invalid_chars_dbcs((const struct dbcs_table *)&table->dbcs,(const unsigned char *) src, srclen )) return -2; } if (!(flags & MB_COMPOSITE)) return mbstowcs_dbcs( &table->dbcs,(const unsigned char *)src, srclen, dst, dstlen ); else return mbstowcs_dbcs_decompose( &table->dbcs,(const unsigned char *)src, srclen, dst, dstlen ); } } ================================================ FILE: Project/Unicode/Source/string.cpp ================================================ /* * Unicode string manipulation functions * * Copyright 2000 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "StdAfx.h" //#include #include "unicode.h" int strcmpiW( const WCHAR *str1, const WCHAR *str2 ) { for (;;) { int ret = toupperW(*str1) - toupperW(*str2); if (ret || !*str1) return ret; str1++; str2++; } } int strncmpiW( const WCHAR *str1, const WCHAR *str2, int n ) { int ret = 0; for ( ; n > 0; n--, str1++, str2++) if ((ret = toupperW(*str1) - toupperW(*str2)) || !*str1) break; return ret; } WCHAR *strstrW( const WCHAR *str, const WCHAR *sub ) { while (*str) { const WCHAR *p1 = str, *p2 = sub; while (*p1 && *p2 && *p1 == *p2) { p1++; p2++; } if (!*p2) return (WCHAR *)str; str++; } return NULL; } /* strtolW and strtoulW implementation based on the GNU C library code */ /* Copyright (C) 1991,92,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc. */ long int strtolW( const WCHAR *nptr, WCHAR **endptr, int base ) { int negative; register unsigned long int cutoff; register unsigned int cutlim; register unsigned long int i; register const WCHAR *s; register WCHAR c; const WCHAR *save, *end; int overflow; if (base < 0 || base == 1 || base > 36) return 0; save = s = nptr; /* Skip white space. */ while (isspaceW (*s)) ++s; if (!*s) goto noconv; /* Check for a sign. */ negative = 0; if (*s == '-') { negative = 1; ++s; } else if (*s == '+') ++s; /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ if (*s == '0') { if ((base == 0 || base == 16) && toupperW(s[1]) == 'X') { s += 2; base = 16; } else if (base == 0) base = 8; } else if (base == 0) base = 10; /* Save the pointer so we can check later if anything happened. */ save = s; end = NULL; cutoff = ULONG_MAX / (unsigned long int) base; cutlim = ULONG_MAX % (unsigned long int) base; overflow = 0; i = 0; c = *s; for (;c != '\0'; c = *++s) { if (s == end) break; if (c >= '0' && c <= '9') c -= '0'; else if (isalphaW (c)) c = toupperW (c) - 'A' + 10; else break; if ((int) c >= base) break; /* Check for overflow. */ if (i > cutoff || (i == cutoff && c > cutlim)) overflow = 1; else { i *= (unsigned long int) base; i += c; } } /* Check if anything actually happened. */ if (s == save) goto noconv; /* Store in ENDPTR the address of one character past the last character we converted. */ if (endptr != NULL) *endptr = (WCHAR *)s; /* Check for a value that is within the range of `unsigned LONG int', but outside the range of `LONG int'. */ if (overflow == 0 && i > (negative ?1 -((unsigned long int) (LONG_MIN + 1)) : (unsigned long int) LONG_MAX)) overflow = 1; if (overflow) { return negative ? LONG_MIN : LONG_MAX; } /* Return the result of the appropriate sign. */ return negative ? 0-i : i; noconv: /* We must handle a special case here: the base is 0 or 16 and the first two characters are '0' and 'x', but the rest are no hexadecimal digits. This is no error case. We return 0 and ENDPTR points to the `x`. */ if (endptr != NULL) { if (save - nptr >= 2 && toupperW (save[-1]) == 'X' && save[-2] == '0') *endptr = (WCHAR *)&save[-1]; else /* There was no number to convert. */ *endptr = (WCHAR *)nptr; } return 0L; } unsigned long int strtoulW( const WCHAR *nptr, WCHAR **endptr, int base ) { int negative; register unsigned long int cutoff; register unsigned int cutlim; register unsigned long int i; register const WCHAR *s; register WCHAR c; const WCHAR *save, *end; int overflow; if (base < 0 || base == 1 || base > 36) return 0; save = s = nptr; /* Skip white space. */ while (isspaceW (*s)) ++s; if (!*s) goto noconv; /* Check for a sign. */ negative = 0; if (*s == '-') { negative = 1; ++s; } else if (*s == '+') ++s; /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ if (*s == '0') { if ((base == 0 || base == 16) && toupperW(s[1]) == 'X') { s += 2; base = 16; } else if (base == 0) base = 8; } else if (base == 0) base = 10; /* Save the pointer so we can check later if anything happened. */ save = s; end = NULL; cutoff = ULONG_MAX / (unsigned long int) base; cutlim = ULONG_MAX % (unsigned long int) base; overflow = 0; i = 0; c = *s; for (;c != '\0'; c = *++s) { if (s == end) break; if (c >= '0' && c <= '9') c -= '0'; else if (isalphaW (c)) c = toupperW (c) - 'A' + 10; else break; if ((int) c >= base) break; /* Check for overflow. */ if (i > cutoff || (i == cutoff && c > cutlim)) overflow = 1; else { i *= (unsigned long int) base; i += c; } } /* Check if anything actually happened. */ if (s == save) goto noconv; /* Store in ENDPTR the address of one character past the last character we converted. */ if (endptr != NULL) *endptr = (WCHAR *)s; if (overflow) { return ULONG_MAX; } /* Return the result of the appropriate sign. */ return negative ? 0-i : i; noconv: /* We must handle a special case here: the base is 0 or 16 and the first two characters are '0' and 'x', but the rest are no hexadecimal digits. This is no error case. We return 0 and ENDPTR points to the `x`. */ if (endptr != NULL) { if (save - nptr >= 2 && toupperW (save[-1]) == 'X' && save[-2] == '0') *endptr = (WCHAR *)&save[-1]; else /* There was no number to convert. */ *endptr = (WCHAR *)nptr; } return 0L; } ================================================ FILE: Project/Unicode/Source/test.cpp ================================================ #include #include #include #include "unicode.h" /* extern int cp_mbstowcs( const union cptable *table, int flags, const char *src, int srclen, WCHAR *dst, int dstlen ); int utf8_mbstowcs( int flags, const char *src, int srclen, WCHAR *dst, int dstlen ) */ void test2() { WCHAR dst[0x100]; int ret = 0,i; int dstlen = 0x100; char *src=NULL; int len = 0; FILE *fp; #ifdef WIN32 fp = fopen(".\\testfile\\demo.utf8.txt","r"); #else fp = fopen("./testfile/demo.utf8.txt","r"); #endif if(fp != NULL) { fseek(fp,0,SEEK_END); len = ftell(fp); fseek(fp,0,SEEK_SET); src =(char *) malloc(sizeof(char)*len); fread(src,1,len,fp); fclose(fp); } printf("src = "); for(i = 0; i < len; i++) printf("%x ",src[i]); printf("\n"); printf("srclen = %d\n",len); ret = utf8_mbstowcs(0,src,len,dst,dstlen); fwrite(dst,1,sizeof(WCHAR)*ret,stderr); fwrite("\n",1,strlen("\n"),stderr); printf("dst = "); for(i = 0; i < ret; i++) printf("%x ",dst[i]); printf("\n"); printf("dstlen = %d\n",ret); return ; } int main(int argc, char *argv[]) { const union cptable *table; WCHAR dst[0x100]; int ret = 0,i; int dstlen = 0x100; char *src=NULL; int len = 0; FILE *fp; //test2(); //return 0; table = cp_get_table(936); #ifdef WIN32 fp = fopen(".\\testfile\\demo.ansi.txt","r"); #else fp = fopen("./testfile/demo.ansi.txt","r"); #endif if(fp != NULL) { fseek(fp,0,SEEK_END); len = ftell(fp); fseek(fp,0,SEEK_SET); src = (char *)malloc(sizeof(char)*len); fread(src,1,len,fp); fclose(fp); } ret = cp_mbstowcs(table,0,src,len,dst,dstlen); fwrite(dst,1,sizeof(WCHAR)*ret,stderr); for(i = 0; i < ret; i++) printf("%x ",dst[i]); printf("\n"); printf("%d\n",ret); getchar(); return 0; } ================================================ FILE: Project/Unicode/Source/testfile/demo.ansi.txt ================================================ л񹲺͹ ================================================ FILE: Project/Unicode/Source/testfile/demo.unicode.txt ================================================ 中华人民共和国 ================================================ FILE: Project/Unicode/Source/testfile/demo.unicode_big_endian.txt ================================================ 中华人民共和国 ================================================ FILE: Project/Unicode/Source/testfile/demo.utf8.txt ================================================ 中华人民共和国 ================================================ FILE: Project/Unicode/Source/unicode.h ================================================ /* * Wine internal Unicode definitions * * Copyright 2000 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __WINE_UNICODE_H #define __WINE_UNICODE_H #define _UNICODE_VALID_ extern const struct sbcs_table cptable_037; extern const struct sbcs_table cptable_042; extern const struct sbcs_table cptable_424; extern const struct sbcs_table cptable_437; extern const struct sbcs_table cptable_500; extern const struct sbcs_table cptable_737; extern const struct sbcs_table cptable_775; extern const struct sbcs_table cptable_850; extern const struct sbcs_table cptable_852; extern const struct sbcs_table cptable_855; extern const struct sbcs_table cptable_856; extern const struct sbcs_table cptable_857; extern const struct sbcs_table cptable_860; extern const struct sbcs_table cptable_861; extern const struct sbcs_table cptable_862; extern const struct sbcs_table cptable_863; extern const struct sbcs_table cptable_864; extern const struct sbcs_table cptable_865; extern const struct sbcs_table cptable_866; extern const struct sbcs_table cptable_869; extern const struct sbcs_table cptable_874; extern const struct sbcs_table cptable_875; extern const struct sbcs_table cptable_878; extern const struct dbcs_table cptable_932; extern const struct dbcs_table cptable_936; extern const struct dbcs_table cptable_949; extern const struct dbcs_table cptable_950; extern const struct sbcs_table cptable_1006; extern const struct sbcs_table cptable_1026; extern const struct sbcs_table cptable_1250; extern const struct sbcs_table cptable_1251; extern const struct sbcs_table cptable_1252; extern const struct sbcs_table cptable_1253; extern const struct sbcs_table cptable_1254; extern const struct sbcs_table cptable_1255; extern const struct sbcs_table cptable_1256; extern const struct sbcs_table cptable_1257; extern const struct sbcs_table cptable_1258; extern const struct sbcs_table cptable_10000; extern const struct sbcs_table cptable_10006; extern const struct sbcs_table cptable_10007; extern const struct sbcs_table cptable_10029; extern const struct sbcs_table cptable_10079; extern const struct sbcs_table cptable_10081; extern const struct sbcs_table cptable_20866; extern const struct dbcs_table cptable_20932; extern const struct sbcs_table cptable_28591; extern const struct sbcs_table cptable_28592; extern const struct sbcs_table cptable_28593; extern const struct sbcs_table cptable_28594; extern const struct sbcs_table cptable_28595; extern const struct sbcs_table cptable_28596; extern const struct sbcs_table cptable_28597; extern const struct sbcs_table cptable_28598; extern const struct sbcs_table cptable_28599; extern const struct sbcs_table cptable_28600; extern const struct sbcs_table cptable_28603; extern const struct sbcs_table cptable_28604; extern const struct sbcs_table cptable_28605; extern const struct sbcs_table cptable_28606; #undef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void*)0) #endif #define MB_PRECOMPOSED 0x00000001 #define MB_COMPOSITE 0x00000002 #define MB_USEGLYPHCHARS 0x00000004 #define MB_ERR_INVALID_CHARS 0x00000008 #define LCID_INSTALLED 0x00000001 /* flags to GetLocaleInfo */ #define LOCALE_NOUSEROVERRIDE 0x80000000 #define LOCALE_USE_CP_ACP 0x40000000 #define LOCALE_RETURN_NUMBER 0x20000000 /* When adding new defines, don't forget to add an entry to the * locale_name2id map in ole/ole2nls.c */ #define LOCALE_ILANGUAGE 0x00000001 #define LOCALE_SLANGUAGE 0x00000002 #define LOCALE_SENGLANGUAGE 0x00001001 #define LOCALE_SABBREVLANGNAME 0x00000003 #define LOCALE_SNATIVELANGNAME 0x00000004 #define LOCALE_ICOUNTRY 0x00000005 #define LOCALE_SCOUNTRY 0x00000006 #define LOCALE_SENGCOUNTRY 0x00001002 #define LOCALE_SABBREVCTRYNAME 0x00000007 #define LOCALE_SNATIVECTRYNAME 0x00000008 #define LOCALE_IDEFAULTLANGUAGE 0x00000009 #define LOCALE_IDEFAULTCOUNTRY 0x0000000A #define LOCALE_IDEFAULTCODEPAGE 0x0000000B #define LOCALE_IDEFAULTANSICODEPAGE 0x00001004 #define LOCALE_IDEFAULTMACCODEPAGE 0x00001011 #define LOCALE_SLIST 0x0000000C #define LOCALE_IMEASURE 0x0000000D #define LOCALE_SDECIMAL 0x0000000E #define LOCALE_STHOUSAND 0x0000000F #define LOCALE_SGROUPING 0x00000010 #define LOCALE_IDIGITS 0x00000011 #define LOCALE_ILZERO 0x00000012 #define LOCALE_INEGNUMBER 0x00001010 #define LOCALE_SNATIVEDIGITS 0x00000013 #define LOCALE_SCURRENCY 0x00000014 #define LOCALE_SINTLSYMBOL 0x00000015 #define LOCALE_SMONDECIMALSEP 0x00000016 #define LOCALE_SMONTHOUSANDSEP 0x00000017 #define LOCALE_SMONGROUPING 0x00000018 #define LOCALE_ICURRDIGITS 0x00000019 #define LOCALE_IINTLCURRDIGITS 0x0000001A #define LOCALE_ICURRENCY 0x0000001B #define LOCALE_INEGCURR 0x0000001C #define LOCALE_SDATE 0x0000001D #define LOCALE_STIME 0x0000001E #define LOCALE_SSHORTDATE 0x0000001F #define LOCALE_SLONGDATE 0x00000020 #define LOCALE_STIMEFORMAT 0x00001003 #define LOCALE_IDATE 0x00000021 #define LOCALE_ILDATE 0x00000022 #define LOCALE_ITIME 0x00000023 #define LOCALE_ITIMEMARKPOSN 0x00001005 #define LOCALE_ICENTURY 0x00000024 #define LOCALE_ITLZERO 0x00000025 #define LOCALE_IDAYLZERO 0x00000026 #define LOCALE_IMONLZERO 0x00000027 #define LOCALE_S1159 0x00000028 #define LOCALE_S2359 0x00000029 #define LOCALE_ICALENDARTYPE 0x00001009 #define LOCALE_IOPTIONALCALENDAR 0x0000100B #define LOCALE_IFIRSTDAYOFWEEK 0x0000100C #define LOCALE_IFIRSTWEEKOFYEAR 0x0000100D #define LOCALE_SDAYNAME1 0x0000002A #define LOCALE_SDAYNAME2 0x0000002B #define LOCALE_SDAYNAME3 0x0000002C #define LOCALE_SDAYNAME4 0x0000002D #define LOCALE_SDAYNAME5 0x0000002E #define LOCALE_SDAYNAME6 0x0000002F #define LOCALE_SDAYNAME7 0x00000030 #define LOCALE_SABBREVDAYNAME1 0x00000031 #define LOCALE_SABBREVDAYNAME2 0x00000032 #define LOCALE_SABBREVDAYNAME3 0x00000033 #define LOCALE_SABBREVDAYNAME4 0x00000034 #define LOCALE_SABBREVDAYNAME5 0x00000035 #define LOCALE_SABBREVDAYNAME6 0x00000036 #define LOCALE_SABBREVDAYNAME7 0x00000037 #define LOCALE_SMONTHNAME1 0x00000038 #define LOCALE_SMONTHNAME2 0x00000039 #define LOCALE_SMONTHNAME3 0x0000003A #define LOCALE_SMONTHNAME4 0x0000003B #define LOCALE_SMONTHNAME5 0x0000003C #define LOCALE_SMONTHNAME6 0x0000003D #define LOCALE_SMONTHNAME7 0x0000003E #define LOCALE_SMONTHNAME8 0x0000003F #define LOCALE_SMONTHNAME9 0x00000040 #define LOCALE_SMONTHNAME10 0x00000041 #define LOCALE_SMONTHNAME11 0x00000042 #define LOCALE_SMONTHNAME12 0x00000043 #define LOCALE_SMONTHNAME13 0x0000100E #define LOCALE_SABBREVMONTHNAME1 0x00000044 #define LOCALE_SABBREVMONTHNAME2 0x00000045 #define LOCALE_SABBREVMONTHNAME3 0x00000046 #define LOCALE_SABBREVMONTHNAME4 0x00000047 #define LOCALE_SABBREVMONTHNAME5 0x00000048 #define LOCALE_SABBREVMONTHNAME6 0x00000049 #define LOCALE_SABBREVMONTHNAME7 0x0000004A #define LOCALE_SABBREVMONTHNAME8 0x0000004B #define LOCALE_SABBREVMONTHNAME9 0x0000004C #define LOCALE_SABBREVMONTHNAME10 0x0000004D #define LOCALE_SABBREVMONTHNAME11 0x0000004E #define LOCALE_SABBREVMONTHNAME12 0x0000004F #define LOCALE_SABBREVMONTHNAME13 0x0000100F #define LOCALE_SPOSITIVESIGN 0x00000050 #define LOCALE_SNEGATIVESIGN 0x00000051 #define LOCALE_IPOSSIGNPOSN 0x00000052 #define LOCALE_INEGSIGNPOSN 0x00000053 #define LOCALE_IPOSSYMPRECEDES 0x00000054 #define LOCALE_IPOSSEPBYSPACE 0x00000055 #define LOCALE_INEGSYMPRECEDES 0x00000056 #define LOCALE_INEGSEPBYSPACE 0x00000057 #define LOCALE_FONTSIGNATURE 0x00000058 #define LOCALE_SISO639LANGNAME 0x00000059 #define LOCALE_SISO3166CTRYNAME 0x0000005A #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012 #define LOCALE_IPAPERSIZE 0x0000100A #define LOCALE_SENGCURRNAME 0x00001007 #define LOCALE_SNATIVECURRNAME 0x00001008 #define LOCALE_SYEARMONTH 0x00001006 #define LOCALE_SSORTNAME 0x00001013 #define LOCALE_IDIGITSUBSTITUTION 0x00001014 #define NORM_IGNORECASE 1 #define NORM_IGNORENONSPACE 2 #define NORM_IGNORESYMBOLS 4 #define NORM_STRINGSORT 0x1000 #define NORM_IGNOREKANATYPE 0x00010000 #define NORM_IGNOREWIDTH 0x00020000 #define CP_ACP 0 #define CP_OEMCP 1 #define CP_MACCP 2 #define CP_THREAD_ACP 3 #define CP_SYMBOL 42 #define CP_UTF7 65000 #define CP_UTF8 65001 #define WC_DISCARDNS 0x00000010 #define WC_SEPCHARS 0x00000020 #define WC_DEFAULTCHAR 0x00000040 #define WC_COMPOSITECHECK 0x00000200 #define WC_NO_BEST_FIT_CHARS 0x00000400 /* Locale Dependent Mapping Flags */ #define LCMAP_LOWERCASE 0x00000100 /* lower case letters */ #define LCMAP_UPPERCASE 0x00000200 /* upper case letters */ #define LCMAP_SORTKEY 0x00000400 /* WC sort key (normalize) */ #define LCMAP_BYTEREV 0x00000800 /* byte reversal */ #define SORT_STRINGSORT 0x00001000 /* take punctuation into account */ #define LCMAP_HIRAGANA 0x00100000 /* map katakana to hiragana */ #define LCMAP_KATAKANA 0x00200000 /* map hiragana to katakana */ #define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */ #define LCMAP_FULLWIDTH 0x00800000 /* map single byte to double byte */ /* Date Flags for GetDateFormat. */ #define DATE_SHORTDATE 0x00000001 /* use short date picture */ #define DATE_LONGDATE 0x00000002 /* use long date picture */ #define DATE_USE_ALT_CALENDAR 0x00000004 /* use alternate calendar */ /* alt. calendar support is broken anyway */ #define TIME_FORCE24HOURFORMAT 0x00000008 /* force 24 hour format*/ #define TIME_NOTIMEMARKER 0x00000004 /* show no AM/PM */ #define TIME_NOSECONDS 0x00000002 /* show no seconds */ #define TIME_NOMINUTESORSECONDS 0x0000001 /* show no minutes either */ /* internal flags for GetDateFormat system */ #define DATE_DATEVARSONLY 0x00000100 /* only date stuff: yMdg */ #define TIME_TIMEVARSONLY 0x00000200 /* only time stuff: hHmst */ /* use this in a Winelib program if you really want all types */ #define LOCALE_TIMEDATEBOTH 0x00000300 /* full set */ /* Tests that we currently implement */ #define ITU_IMPLEMENTED_TESTS \ IS_TEXT_UNICODE_SIGNATURE| \ IS_TEXT_UNICODE_ODD_LENGTH /* Character Type Flags */ #define CT_CTYPE1 0x00000001 /* usual ctype */ #define CT_CTYPE2 0x00000002 /* bidirectional layout info */ #define CT_CTYPE3 0x00000004 /* textprocessing info */ /* CType 1 Flag Bits */ #define C1_UPPER 0x0001 #define C1_LOWER 0x0002 #define C1_DIGIT 0x0004 #define C1_SPACE 0x0008 #define C1_PUNCT 0x0010 #define C1_CNTRL 0x0020 #define C1_BLANK 0x0040 #define C1_XDIGIT 0x0080 #define C1_ALPHA 0x0100 /* CType 2 Flag Bits */ #define C2_LEFTTORIGHT 0x0001 #define C2_RIGHTTOLEFT 0x0002 #define C2_EUROPENUMBER 0x0003 #define C2_EUROPESEPARATOR 0x0004 #define C2_EUROPETERMINATOR 0x0005 #define C2_ARABICNUMBER 0x0006 #define C2_COMMONSEPARATOR 0x0007 #define C2_BLOCKSEPARATOR 0x0008 #define C2_SEGMENTSEPARATOR 0x0009 #define C2_WHITESPACE 0x000A #define C2_OTHERNEUTRAL 0x000B #define C2_NOTAPPLICABLE 0x0000 /* CType 3 Flag Bits */ #define C3_NONSPACING 0x0001 #define C3_DIACRITIC 0x0002 #define C3_VOWELMARK 0x0004 #define C3_SYMBOL 0x0008 #define C3_KATAKANA 0x0010 #define C3_HIRAGANA 0x0020 #define C3_HALFWIDTH 0x0040 #define C3_FULLWIDTH 0x0080 #define C3_IDEOGRAPH 0x0100 #define C3_KASHIDA 0x0200 #define C3_LEXICAL 0x0400 #define C3_ALPHA 0x8000 #define C3_NOTAPPLICABLE 0x0000 /* Code page information. */ #define MAX_LEADBYTES 12 #define MAX_DEFAULTCHAR 2 /* Defines for calendar handling */ #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP #define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER #define CAL_ICALINTVALUE 0x00000001 #define CAL_SCALNAME 0x00000002 #define CAL_IYEAROFFSETRANGE 0x00000003 #define CAL_SERASTRING 0x00000004 #define CAL_SSHORTDATE 0x00000005 #define CAL_SLONGDATE 0x00000006 #define CAL_SDAYNAME1 0x00000007 #define CAL_SDAYNAME2 0x00000008 #define CAL_SDAYNAME3 0x00000009 #define CAL_SDAYNAME4 0x0000000a #define CAL_SDAYNAME5 0x0000000b #define CAL_SDAYNAME6 0x0000000c #define CAL_SDAYNAME7 0x0000000d #define CAL_SABBREVDAYNAME1 0x0000000e #define CAL_SABBREVDAYNAME2 0x0000000f #define CAL_SABBREVDAYNAME3 0x00000010 #define CAL_SABBREVDAYNAME4 0x00000011 #define CAL_SABBREVDAYNAME5 0x00000012 #define CAL_SABBREVDAYNAME6 0x00000013 #define CAL_SABBREVDAYNAME7 0x00000014 #define CAL_SMONTHNAME1 0x00000015 #define CAL_SMONTHNAME2 0x00000016 #define CAL_SMONTHNAME3 0x00000017 #define CAL_SMONTHNAME4 0x00000018 #define CAL_SMONTHNAME5 0x00000019 #define CAL_SMONTHNAME6 0x0000001a #define CAL_SMONTHNAME7 0x0000001b #define CAL_SMONTHNAME8 0x0000001c #define CAL_SMONTHNAME9 0x0000001d #define CAL_SMONTHNAME10 0x0000001e #define CAL_SMONTHNAME11 0x0000001f #define CAL_SMONTHNAME12 0x00000020 #define CAL_SMONTHNAME13 0x00000021 #define CAL_SABBREVMONTHNAME1 0x00000022 #define CAL_SABBREVMONTHNAME2 0x00000023 #define CAL_SABBREVMONTHNAME3 0x00000024 #define CAL_SABBREVMONTHNAME4 0x00000025 #define CAL_SABBREVMONTHNAME5 0x00000026 #define CAL_SABBREVMONTHNAME6 0x00000027 #define CAL_SABBREVMONTHNAME7 0x00000028 #define CAL_SABBREVMONTHNAME8 0x00000029 #define CAL_SABBREVMONTHNAME9 0x0000002a #define CAL_SABBREVMONTHNAME10 0x0000002b #define CAL_SABBREVMONTHNAME11 0x0000002c #define CAL_SABBREVMONTHNAME12 0x0000002d #define CAL_SABBREVMONTHNAME13 0x0000002e #define CAL_SYEARMONTH 0x0000002f #define CAL_ITWODIGITYEARMAX 0x00000030 #define CAL_GREGORIAN 1 #define CAL_GREGORIAN_US 2 #define CAL_JAPAN 3 #define CAL_TAIWAN 4 #define CAL_KOREA 5 #define CAL_HIJRI 6 #define CAL_THAI 7 #define CAL_HEBREW 8 #define CAL_GREGORIAN_ME_FRENCH 9 #define CAL_GREGORIAN_ARABIC 10 #define CAL_GREGORIAN_XLIT_ENGLISH 11 #define CAL_GREGORIAN_XLIT_FRENCH 12 /* CompareString defines */ #define CSTR_LESS_THAN 1 #define CSTR_EQUAL 2 #define CSTR_GREATER_THAN 3 #ifndef wchar_t typedef unsigned short wchar_t; #endif #ifndef WCHAR typedef wchar_t WCHAR, *PWCHAR; #endif #if 0 #ifndef WINE_WCHAR_DEFINED #ifdef WINE_UNICODE_NATIVE typedef wchar_t WCHAR, *PWCHAR; #else typedef unsigned short WCHAR, *PWCHAR; #endif #define WINE_WCHAR_DEFINED #endif #endif extern int unicodelib_initflag; /* code page info common to SBCS and DBCS */ struct cp_info { unsigned int codepage; /* codepage id */ unsigned int char_size; /* char size (1 or 2 bytes) */ WCHAR def_char; /* default char value (can be double-byte) */ WCHAR def_unicode_char; /* default Unicode char value */ const char *name; /* code page name */ }; struct sbcs_table { struct cp_info info; const WCHAR *cp2uni; /* code page -> Unicode map */ const unsigned char *uni2cp_low; /* Unicode -> code page map */ const unsigned short *uni2cp_high; }; struct dbcs_table { struct cp_info info; const WCHAR *cp2uni; /* code page -> Unicode map */ const unsigned char *cp2uni_leadbytes; const unsigned short *uni2cp_low; /* Unicode -> code page map */ const unsigned short *uni2cp_high; unsigned char lead_bytes[12]; /* lead bytes ranges */ }; union cptable { struct cp_info info; struct sbcs_table sbcs; struct dbcs_table dbcs; }; extern const union cptable *cp_get_table( unsigned int codepage ); extern const union cptable *cp_enum_table( unsigned int index ); extern int cp_mbstowcs( const union cptable *table, int flags, const char *src, int srclen, WCHAR *dst, int dstlen ); extern int cp_wcstombs( const union cptable *table, int flags, const WCHAR *src, int srclen, char *dst, int dstlen, const char *defchar, int *used ); extern int utf8_wcstombs( const WCHAR *src, int srclen, char *dst, int dstlen ); extern int utf8_mbstowcs( int flags, const char *src, int srclen, WCHAR *dst, int dstlen ); extern int strcmpiW( const WCHAR *str1, const WCHAR *str2 ); extern int strncmpiW( const WCHAR *str1, const WCHAR *str2, int n ); extern WCHAR *strstrW( const WCHAR *str, const WCHAR *sub ); extern long int strtolW( const WCHAR *nptr, WCHAR **endptr, int base ); extern unsigned long int strtoulW( const WCHAR *nptr, WCHAR **endptr, int base ); static inline int is_dbcs_leadbyte( const union cptable *table, unsigned char ch ) { return (table->info.char_size == 2) && (table->dbcs.cp2uni_leadbytes[ch]); } static inline WCHAR tolowerW( WCHAR ch ) { extern const WCHAR casemap_lower[]; return ch + casemap_lower[casemap_lower[ch >> 8] + (ch & 0xff)]; } static inline WCHAR toupperW( WCHAR ch ) { extern const WCHAR casemap_upper[]; return ch + casemap_upper[casemap_upper[ch >> 8] + (ch & 0xff)]; } /* the character type contains the C1_* flags in the low 12 bits */ /* and the C2_* type in the high 4 bits */ static inline unsigned short get_char_typeW( WCHAR ch ) { extern const unsigned short wctype_table[]; return wctype_table[wctype_table[ch >> 8] + (ch & 0xff)]; } inline static int iscntrlW( WCHAR wc ) { return get_char_typeW(wc) & C1_CNTRL; } inline static int ispunctW( WCHAR wc ) { return get_char_typeW(wc) & C1_PUNCT; } inline static int isspaceW( WCHAR wc ) { return get_char_typeW(wc) & C1_SPACE; } inline static int isdigitW( WCHAR wc ) { return get_char_typeW(wc) & C1_DIGIT; } inline static int isxdigitW( WCHAR wc ) { return get_char_typeW(wc) & C1_XDIGIT; } inline static int islowerW( WCHAR wc ) { return get_char_typeW(wc) & C1_LOWER; } inline static int isupperW( WCHAR wc ) { return get_char_typeW(wc) & C1_UPPER; } inline static int isalnumW( WCHAR wc ) { return get_char_typeW(wc) & (C1_ALPHA|C1_DIGIT|C1_LOWER|C1_UPPER); } inline static int isalphaW( WCHAR wc ) { return get_char_typeW(wc) & (C1_ALPHA|C1_LOWER|C1_UPPER); } inline static int isgraphW( WCHAR wc ) { return get_char_typeW(wc) & (C1_ALPHA|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); } inline static int isprintW( WCHAR wc ) { return get_char_typeW(wc) & (C1_ALPHA|C1_BLANK|C1_PUNCT|C1_DIGIT|C1_LOWER|C1_UPPER); } /* some useful string manipulation routines */ static inline unsigned int strlenW( const WCHAR *str ) { #if defined(__i386__) && defined(__GNUC__) int dummy, res; __asm__ __volatile__( "cld\n\t" "repnz\n\t" "scasw\n\t" "notl %0" : "=c" (res), "=&D" (dummy) : "0" (0xffffffff), "1" (str), "a" (0) ); return res - 1; #else const WCHAR *s = str; while (*s) s++; return (int)(s - str); #endif } static inline WCHAR *strcpyW( WCHAR *dst, const WCHAR *src ) { #if defined(__i386__) && defined(__GNUC__) int dummy1, dummy2, dummy3; __asm__ __volatile__( "cld\n" "1:\tlodsw\n\t" "stosw\n\t" "testw %%ax,%%ax\n\t" "jne 1b" : "=&S" (dummy1), "=&D" (dummy2), "=&a" (dummy3) : "0" (src), "1" (dst) : "memory" ); #else WCHAR *p = dst; while ((*p++ = *src++)); #endif return dst; } static inline int strcmpW( const WCHAR *str1, const WCHAR *str2 ) { while (*str1 && (*str1 == *str2)) { str1++; str2++; } return *str1 - *str2; } static inline int strncmpW( const WCHAR *str1, const WCHAR *str2, int n ) { if (n <= 0) return 0; while ((--n > 0) && *str1 && (*str1 == *str2)) { str1++; str2++; } return *str1 - *str2; } static inline WCHAR *strncpyW( WCHAR *str1, const WCHAR *str2, int n ) { WCHAR *ret = str1; while (n-- > 0) if (!(*str1++ = *str2++)) break; while (n-- > 0) *str1++ = 0; return ret; } static inline WCHAR *strcatW( WCHAR *dst, const WCHAR *src ) { strcpyW( dst + strlenW(dst), src ); return dst; } static inline WCHAR *strchrW( const WCHAR *str, WCHAR ch ) { for ( ; *str; str++) if (*str == ch) return (WCHAR *)str; return NULL; } static inline WCHAR *strrchrW( const WCHAR *str, WCHAR ch ) { WCHAR *ret = NULL; for ( ; *str; str++) if (*str == ch) ret = (WCHAR *)str; return ret; } static inline WCHAR *strlwrW( WCHAR *str ) { WCHAR *ret = str; while ((*str = tolowerW(*str))) str++; return ret; } static inline WCHAR *struprW( WCHAR *str ) { WCHAR *ret = str; while ((*str = toupperW(*str))) str++; return ret; } static inline long int atolW( const WCHAR *str ) { return strtolW( str, (WCHAR **)0, 10 ); } static inline int atoiW( const WCHAR *str ) { return (int)atolW( str ); } extern const WCHAR unicode_compose_table[0x846]; extern const unsigned int unicode_compose_table_size; extern const WCHAR unicode_decompose_table[4560]; extern const unsigned short wctype_table[13568]; extern const WCHAR casemap_lower[3328]; extern const WCHAR casemap_upper[3328]; #endif /* __WINE_UNICODE_H */ ================================================ FILE: Project/Unicode/Source/utf8.cpp ================================================ /* * UTF-8 support routines * * Copyright 2000 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "StdAfx.h" //#include //#include "winnls.h" #include "unicode.h" /* number of following bytes in sequence based on first byte value (for bytes above 0x7f) */ static const char utf8_length[128] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x80-0x8f */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0x90-0x9f */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xa0-0xaf */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0xb0-0xbf */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0xc0-0xcf */ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0xd0-0xdf */ 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, /* 0xe0-0xef */ 3,3,3,3,3,3,3,3,4,4,4,4,5,5,0,0 /* 0xf0-0xff */ }; /* first byte mask depending on UTF-8 sequence length */ static const unsigned char utf8_mask[6] = { 0x7f, 0x1f, 0x0f, 0x07, 0x03, 0x01 }; /* minimum Unicode value depending on UTF-8 sequence length */ static const unsigned int utf8_minval[6] = { 0x0, 0x80, 0x800, 0x10000, 0x200000, 0x4000000 }; /* query necessary dst length for src string */ inline static int get_length_wcs_utf8( const WCHAR *src, unsigned int srclen ) { int len; for (len = 0; srclen; srclen--, src++, len++) { if (*src >= 0x80) { len++; if (*src >= 0x800) len++; } } return len; } /* wide char to UTF-8 string conversion */ /* return -1 on dst buffer overflow */ int utf8_wcstombs( const WCHAR *src, int srclen, char *dst, int dstlen ) { int ret = srclen; if (!dstlen) return get_length_wcs_utf8( src, srclen ); for (ret = srclen; srclen; srclen--, src++) { WCHAR ch = *src; if (ch < 0x80) /* 0x00-0x7f: 1 byte */ { if (!dstlen--) return -1; /* overflow */ *dst++ = (char)ch; continue; } if (ch < 0x800) /* 0x80-0x7ff: 2 bytes */ { if ((dstlen -= 2) < 0) return -1; /* overflow */ dst[1] = 0x80 | (ch & 0x3f); ch >>= 6; dst[0] = 0xc0 | ch; dst += 2; continue; } /* 0x800-0xffff: 3 bytes */ if ((dstlen -= 3) < 0) return -1; /* overflow */ dst[2] = 0x80 | (ch & 0x3f); ch >>= 6; dst[1] = 0x80 | (ch & 0x3f); ch >>= 6; dst[0] = 0xe0 | ch; dst += 3; } return ret; } /* query necessary dst length for src string */ inline static int get_length_mbs_utf8( const unsigned char *src, int srclen ) { int ret; const unsigned char *srcend = src + srclen; for (ret = 0; src < srcend; ret++) { unsigned char ch = *src++; if (ch < 0xc0) continue; switch(utf8_length[ch-0x80]) { case 5: if (src >= srcend) return ret; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) continue; src++; case 4: if (src >= srcend) return ret; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) continue; src++; case 3: if (src >= srcend) return ret; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) continue; src++; case 2: if (src >= srcend) return ret; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) continue; src++; case 1: if (src >= srcend) return ret; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) continue; src++; } } return ret; } /* UTF-8 to wide char string conversion */ /* return -1 on dst buffer overflow, -2 on invalid input char */ int utf8_mbstowcs( int flags, const char *src, int srclen, WCHAR *dst, int dstlen ) { int len, count; unsigned int res; const char *srcend = src + srclen; if (!dstlen) return get_length_mbs_utf8( (const unsigned char*)src, srclen ); for (count = dstlen; count && (src < srcend); count--, dst++) { unsigned char ch = *src++; if (ch < 0x80) /* special fast case for 7-bit ASCII */ { *dst = ch; continue; } len = utf8_length[ch-0x80]; res = ch & utf8_mask[len]; switch(len) { case 5: if (src >= srcend) goto done; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) goto bad; res = (res << 6) | ch; src++; case 4: if (src >= srcend) goto done; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) goto bad; res = (res << 6) | ch; src++; case 3: if (src >= srcend) goto done; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) goto bad; res = (res << 6) | ch; src++; case 2: if (src >= srcend) goto done; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) goto bad; res = (res << 6) | ch; src++; case 1: if (src >= srcend) goto done; /* ignore partial char */ if ((ch = *src ^ 0x80) >= 0x40) goto bad; res = (res << 6) | ch; src++; if (res < utf8_minval[len]) goto bad; if (res >= 0x10000) goto bad; /* FIXME: maybe we should do surrogates here */ *dst = *(WCHAR*)&res; continue; } bad: if (flags & MB_ERR_INVALID_CHARS) return -2; /* bad char */ *dst = (WCHAR)'?'; } if (src < srcend) return -1; /* overflow */ done: return dstlen - count; } ================================================ FILE: Project/Unicode/Source/wctomb.cpp ================================================ /* * WideCharToMultiByte implementation * * Copyright 2000 Alexandre Julliard * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * 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. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "StdAfx.h" //#include //#include "winnls.h" #include "unicode.h" /* search for a character in the unicode_compose_table; helper for compose() */ static inline int binary_search( WCHAR ch, int low, int high ) { //extern const WCHAR unicode_compose_table[]; while (low <= high) { int pos = (low + high) / 2; if (unicode_compose_table[2*pos] < ch) { low = pos + 1; continue; } if (unicode_compose_table[2*pos] > ch) { high = pos - 1; continue; } return pos; } return -1; } /* return the result of the composition of two Unicode chars, or 0 if none */ static WCHAR compose( const WCHAR *str ) { //extern const WCHAR unicode_compose_table[]; extern const unsigned int unicode_compose_table_size; int idx = 1, low = 0, high = unicode_compose_table_size - 1; for (;;) { int pos = binary_search( str[idx], low, high ); if (pos == -1) return 0; if (!idx--) return unicode_compose_table[2*pos+1]; low = unicode_compose_table[2*pos+1]; high = unicode_compose_table[2*pos+3] - 1; } } /****************************************************************/ /* sbcs support */ /* check if 'ch' is an acceptable sbcs mapping for 'wch' */ static inline int is_valid_sbcs_mapping( const struct sbcs_table *table, int flags, WCHAR wch, unsigned char ch ) { if (flags & WC_NO_BEST_FIT_CHARS) return (table->cp2uni[ch] == wch); if (ch != (unsigned char)table->info.def_char) return 1; return (wch == table->info.def_unicode_char); } /* query necessary dst length for src string */ static int get_length_sbcs( const struct sbcs_table *table, int flags, const WCHAR *src, unsigned int srclen, int *used ) { const unsigned char * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; int ret, tmp; WCHAR composed; if (!used) used = &tmp; /* avoid checking on every char */ *used = 0; for (ret = 0; srclen; ret++, src++, srclen--) { WCHAR wch = *src; unsigned char ch; if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) { /* now check if we can use the composed char */ ch = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; if (is_valid_sbcs_mapping( table, flags, composed, ch )) { /* we have a good mapping, use it */ src++; srclen--; continue; } /* no mapping for the composed char, check the other flags */ if (flags & WC_DEFAULTCHAR) /* use the default char instead */ { *used = 1; src++; /* skip the non-spacing char */ srclen--; continue; } if (flags & WC_DISCARDNS) /* skip the second char of the composition */ { src++; srclen--; } /* WC_SEPCHARS is the default */ } if (!*used) { ch = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; *used = !is_valid_sbcs_mapping( table, flags, wch, ch ); } } return ret; } /* wcstombs for single-byte code page */ static inline int wcstombs_sbcs( const struct sbcs_table *table, const WCHAR *src, unsigned int srclen, char *dst, unsigned int dstlen ) { const unsigned char * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; int ret = srclen; if (dstlen < srclen) { /* buffer too small: fill it up to dstlen and return error */ srclen = dstlen; ret = -1; } for (;;) { switch(srclen) { default: case 16: dst[15] = uni2cp_low[uni2cp_high[src[15] >> 8] + (src[15] & 0xff)]; case 15: dst[14] = uni2cp_low[uni2cp_high[src[14] >> 8] + (src[14] & 0xff)]; case 14: dst[13] = uni2cp_low[uni2cp_high[src[13] >> 8] + (src[13] & 0xff)]; case 13: dst[12] = uni2cp_low[uni2cp_high[src[12] >> 8] + (src[12] & 0xff)]; case 12: dst[11] = uni2cp_low[uni2cp_high[src[11] >> 8] + (src[11] & 0xff)]; case 11: dst[10] = uni2cp_low[uni2cp_high[src[10] >> 8] + (src[10] & 0xff)]; case 10: dst[9] = uni2cp_low[uni2cp_high[src[9] >> 8] + (src[9] & 0xff)]; case 9: dst[8] = uni2cp_low[uni2cp_high[src[8] >> 8] + (src[8] & 0xff)]; case 8: dst[7] = uni2cp_low[uni2cp_high[src[7] >> 8] + (src[7] & 0xff)]; case 7: dst[6] = uni2cp_low[uni2cp_high[src[6] >> 8] + (src[6] & 0xff)]; case 6: dst[5] = uni2cp_low[uni2cp_high[src[5] >> 8] + (src[5] & 0xff)]; case 5: dst[4] = uni2cp_low[uni2cp_high[src[4] >> 8] + (src[4] & 0xff)]; case 4: dst[3] = uni2cp_low[uni2cp_high[src[3] >> 8] + (src[3] & 0xff)]; case 3: dst[2] = uni2cp_low[uni2cp_high[src[2] >> 8] + (src[2] & 0xff)]; case 2: dst[1] = uni2cp_low[uni2cp_high[src[1] >> 8] + (src[1] & 0xff)]; case 1: dst[0] = uni2cp_low[uni2cp_high[src[0] >> 8] + (src[0] & 0xff)]; case 0: break; } if (srclen < 16) return ret; dst += 16; src += 16; srclen -= 16; } } /* slow version of wcstombs_sbcs that handles the various flags */ static int wcstombs_sbcs_slow( const struct sbcs_table *table, int flags, const WCHAR *src, unsigned int srclen, char *dst, unsigned int dstlen, const char *defchar, int *used ) { const unsigned char * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; const unsigned char table_default = table->info.def_char & 0xff; unsigned int len; int tmp; WCHAR composed; if (!defchar) defchar = (const char*)&table_default; if (!used) used = &tmp; /* avoid checking on every char */ *used = 0; for (len = dstlen; srclen && len; dst++, len--, src++, srclen--) { WCHAR wch = *src; if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) { /* now check if we can use the composed char */ *dst = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; if (is_valid_sbcs_mapping( table, flags, composed, *dst )) { /* we have a good mapping, use it */ src++; srclen--; continue; } /* no mapping for the composed char, check the other flags */ if (flags & WC_DEFAULTCHAR) /* use the default char instead */ { *dst = *defchar; *used = 1; src++; /* skip the non-spacing char */ srclen--; continue; } if (flags & WC_DISCARDNS) /* skip the second char of the composition */ { src++; srclen--; } /* WC_SEPCHARS is the default */ } *dst = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; if (!is_valid_sbcs_mapping( table, flags, wch, *dst )) { *dst = *defchar; *used = 1; } } if (srclen) return -1; /* overflow */ return dstlen - len; } /****************************************************************/ /* dbcs support */ /* check if 'ch' is an acceptable dbcs mapping for 'wch' */ static inline int is_valid_dbcs_mapping( const struct dbcs_table *table, int flags, WCHAR wch, unsigned short ch ) { if (ch == table->info.def_char && wch != table->info.def_unicode_char) return 0; if (flags & WC_NO_BEST_FIT_CHARS) { /* check if char maps back to the same Unicode value */ if (ch & 0xff00) { unsigned char off = table->cp2uni_leadbytes[ch >> 8]; return (table->cp2uni[(off << 8) + (ch & 0xff)] == wch); } return (table->cp2uni[ch & 0xff] == wch); } return 1; } /* query necessary dst length for src string */ static int get_length_dbcs( const struct dbcs_table *table, int flags, const WCHAR *src, unsigned int srclen, const char *defchar, int *used ) { const unsigned short * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; WCHAR defchar_value = table->info.def_char; WCHAR composed; int len, tmp; if (!defchar && !used && !(flags & WC_COMPOSITECHECK)) { for (len = 0; srclen; srclen--, src++, len++) { if (uni2cp_low[uni2cp_high[*src >> 8] + (*src & 0xff)] & 0xff00) len++; } return len; } if (defchar) defchar_value = defchar[1] ? ((defchar[0] << 8) | defchar[1]) : defchar[0]; if (!used) used = &tmp; /* avoid checking on every char */ *used = 0; for (len = 0; srclen; len++, srclen--, src++) { unsigned short res; WCHAR wch = *src; if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) { /* now check if we can use the composed char */ res = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; if (is_valid_dbcs_mapping( table, flags, composed, res )) { /* we have a good mapping for the composed char, use it */ if (res & 0xff00) len++; src++; srclen--; continue; } /* no mapping for the composed char, check the other flags */ if (flags & WC_DEFAULTCHAR) /* use the default char instead */ { if (defchar_value & 0xff00) len++; *used = 1; src++; /* skip the non-spacing char */ srclen--; continue; } if (flags & WC_DISCARDNS) /* skip the second char of the composition */ { src++; srclen--; } /* WC_SEPCHARS is the default */ } res = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; if (!is_valid_dbcs_mapping( table, flags, wch, res )) { res = defchar_value; *used = 1; } if (res & 0xff00) len++; } return len; } /* wcstombs for double-byte code page */ static inline int wcstombs_dbcs( const struct dbcs_table *table, const WCHAR *src, unsigned int srclen, char *dst, unsigned int dstlen ) { const unsigned short * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; int len; for (len = dstlen; srclen && len; len--, srclen--, src++) { unsigned short res = uni2cp_low[uni2cp_high[*src >> 8] + (*src & 0xff)]; if (res & 0xff00) { if (len == 1) break; /* do not output a partial char */ len--; *dst++ = res >> 8; } *dst++ = (char)res; } if (srclen) return -1; /* overflow */ return dstlen - len; } /* slow version of wcstombs_dbcs that handles the various flags */ static int wcstombs_dbcs_slow( const struct dbcs_table *table, int flags, const WCHAR *src, unsigned int srclen, char *dst, unsigned int dstlen, const char *defchar, int *used ) { const unsigned short * const uni2cp_low = table->uni2cp_low; const unsigned short * const uni2cp_high = table->uni2cp_high; WCHAR defchar_value = table->info.def_char; WCHAR composed; int len, tmp; if (defchar) defchar_value = defchar[1] ? ((defchar[0] << 8) | defchar[1]) : defchar[0]; if (!used) used = &tmp; /* avoid checking on every char */ *used = 0; for (len = dstlen; srclen && len; len--, srclen--, src++) { unsigned short res; WCHAR wch = *src; if ((flags & WC_COMPOSITECHECK) && (srclen > 1) && (composed = compose(src))) { /* now check if we can use the composed char */ res = uni2cp_low[uni2cp_high[composed >> 8] + (composed & 0xff)]; if (is_valid_dbcs_mapping( table, flags, composed, res )) { /* we have a good mapping for the composed char, use it */ src++; srclen--; goto output_char; } /* no mapping for the composed char, check the other flags */ if (flags & WC_DEFAULTCHAR) /* use the default char instead */ { res = defchar_value; *used = 1; src++; /* skip the non-spacing char */ srclen--; goto output_char; } if (flags & WC_DISCARDNS) /* skip the second char of the composition */ { src++; srclen--; } /* WC_SEPCHARS is the default */ } res = uni2cp_low[uni2cp_high[wch >> 8] + (wch & 0xff)]; if (!is_valid_dbcs_mapping( table, flags, wch, res )) { res = defchar_value; *used = 1; } output_char: if (res & 0xff00) { if (len == 1) break; /* do not output a partial char */ len--; *dst++ = res >> 8; } *dst++ = (char)res; } if (srclen) return -1; /* overflow */ return dstlen - len; } /* wide char to multi byte string conversion */ /* return -1 on dst buffer overflow */ int cp_wcstombs( const union cptable *table, int flags, const WCHAR *src, int srclen, char *dst, int dstlen, const char *defchar, int *used ) { if (table->info.char_size == 1) { if (flags || defchar || used) { if (!dstlen) return get_length_sbcs( &table->sbcs, flags, src, srclen, used ); return wcstombs_sbcs_slow( &table->sbcs, flags, src, srclen, dst, dstlen, defchar, used ); } if (!dstlen) return srclen; return wcstombs_sbcs( &table->sbcs, src, srclen, dst, dstlen ); } else /* mbcs */ { if (!dstlen) return get_length_dbcs( &table->dbcs, flags, src, srclen, defchar, used ); if (flags || defchar || used) return wcstombs_dbcs_slow( &table->dbcs, flags, src, srclen, dst, dstlen, defchar, used ); return wcstombs_dbcs( &table->dbcs, src, srclen, dst, dstlen ); } } ================================================ FILE: Project/Unicode/Source/wctype.cpp ================================================ /* Unicode ctype tables */ /* Automatically generated; DO NOT EDIT!! */ #include "StdAfx.h" #include "unicode.h" const unsigned short wctype_table[13568] = { /* offsets */ 0x0100, 0x0200, 0x0300, 0x0400, 0x0500, 0x0600, 0x0700, 0x0800, 0x0900, 0x0a00, 0x0b00, 0x0c00, 0x0d00, 0x0e00, 0x0f00, 0x1000, 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600, 0x1700, 0x1800, 0x1900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x1a00, 0x1b00, 0x1c00, 0x1d00, 0x1e00, 0x1f00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2100, 0x2100, 0x2100, 0x0900, 0x0900, 0x0900, 0x2400, 0x2500, 0x2600, 0x2700, 0x2800, 0x2900, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x2a00, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x2b00, 0x1600, 0x1600, 0x1600, 0x1600, 0x2c00, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x0900, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x1600, 0x2d00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x2e00, 0x1600, 0x2f00, 0x3000, 0x3100, 0x3200, 0x3300, 0x3400, /* values */ 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x9068, 0x8028, 0x9028, 0xa028, 0x8028, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x8020, 0x8020, 0x8020, 0x9020, 0xa048, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, 0x7010, 0x5010, 0x7010, 0x4010, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x8020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x7048, 0xb010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, 0x5010, 0x3014, 0x3014, 0xb010, 0x1102, 0xb010, 0xb010, 0xb010, 0x3014, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1102, 0x1100, 0x1101, 0x1102, 0x1102, 0x1102, 0x1100, 0x1100, 0x1100, 0x1100, 0x1101, 0x1103, 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1101, 0x1103, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x0000, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0112, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1101, 0xb010, 0x1101, 0x1101, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x1101, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x1010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x0010, 0x2010, 0x0010, 0x2010, 0x0010, 0x0010, 0x2010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2010, 0x2010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2010, 0x0000, 0x0000, 0x0000, 0x2010, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x6004, 0x5010, 0x6010, 0x6010, 0x2010, 0x2100, 0x2100, 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2010, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2010, 0x2010, 0x0010, 0x0010, 0xb010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x3004, 0x2100, 0x2100, 0x2100, 0x2010, 0x2010, 0x0000, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x2010, 0x0000, 0x0000, 0x2100, 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x0010, 0x1010, 0x1010, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1100, 0x1100, 0x5010, 0x5010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0010, 0x0010, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x1010, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x1100, 0x1010, 0x0010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0010, 0x1010, 0x1010, 0x0000, 0x1010, 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x5010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, 0x0010, 0x1010, 0x0010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x0010, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x0000, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x1010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa008, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x5010, 0x1100, 0x0000, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x1004, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x1101, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x0000, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0x1102, 0xb010, 0xb010, 0xb010, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x0000, 0xb010, 0xb010, 0xb010, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x0000, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0x0000, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0xa008, 0x0008, 0x0000, 0x0000, 0x1000, 0x2000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xa000, 0x8000, 0xb000, 0xb000, 0xb000, 0xb000, 0xb000, 0xa008, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xa008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3014, 0x1102, 0x0000, 0x0000, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0x1102, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x3014, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x5010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0xb010, 0xb010, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0x1102, 0x1101, 0x1101, 0x1101, 0x1102, 0xb010, 0x1101, 0xb010, 0xb010, 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0xb010, 0x1101, 0xb010, 0x1101, 0xb010, 0x1101, 0x1101, 0x1101, 0x1101, 0x5010, 0x1102, 0x1101, 0x1101, 0xb010, 0x1101, 0x1102, 0x1100, 0x1100, 0x1100, 0x1100, 0x1102, 0xb010, 0x0000, 0x0000, 0x1102, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1101, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x3010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1111, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x1112, 0x3010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0xa008, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1100, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1100, 0xb010, 0xb010, 0xb010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0010, 0x0010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1100, 0xb010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0xb010, 0x1010, 0x1010, 0x1010, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x0000, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x1010, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x0010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x5010, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x0000, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2010, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0010, 0x0010, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x7010, 0xb010, 0x7010, 0x0000, 0xb010, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, 0xb010, 0xb010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0x0000, 0xb010, 0x5010, 0x5010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x2100, 0x0000, 0x0000, 0x0048, 0x0000, 0xb010, 0xb010, 0x5010, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x5010, 0x7010, 0x5010, 0x7010, 0x4010, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x3084, 0x7010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1181, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0x1101, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1182, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0x1102, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1010, 0x1010, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x1100, 0x1100, 0x1100, 0x0000, 0x0000, 0x0000, 0x5010, 0x5010, 0xb010, 0xb010, 0xb010, 0x5010, 0x5010, 0x0000, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0xb010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xb010, 0xb010, 0x0000, 0x0000 }; ================================================ FILE: Project/Unicode/Win32/Unicode.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicode", "unicode.vcproj", "{E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodetest", "unicodetest.vcproj", "{F7B6CD2E-0787-4444-9000-C8C71D9FBAB0}" ProjectSection(ProjectDependencies) = postProject {E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4} = {E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4}.Debug|Win32.ActiveCfg = Debug|Win32 {E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4}.Debug|Win32.Build.0 = Debug|Win32 {E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4}.Release|Win32.ActiveCfg = Release|Win32 {E81FD0AF-FFD0-4E2D-A113-C2C68A42F9C4}.Release|Win32.Build.0 = Release|Win32 {F7B6CD2E-0787-4444-9000-C8C71D9FBAB0}.Debug|Win32.ActiveCfg = Debug|Win32 {F7B6CD2E-0787-4444-9000-C8C71D9FBAB0}.Debug|Win32.Build.0 = Debug|Win32 {F7B6CD2E-0787-4444-9000-C8C71D9FBAB0}.Release|Win32.ActiveCfg = Release|Win32 {F7B6CD2E-0787-4444-9000-C8C71D9FBAB0}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Unicode/Win32/Unicode.vcproj ================================================ ================================================ FILE: Project/Unicode/Win32/Unicodetest.vcproj ================================================ ================================================ FILE: Project/Unicode/WinDrv32/Unicode.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Unicode", "Unicode.vcproj", "{4CC7AB5D-54AA-4B15-9CE9-61057E945892}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {4CC7AB5D-54AA-4B15-9CE9-61057E945892}.Debug|Win32.ActiveCfg = Debug|Win32 {4CC7AB5D-54AA-4B15-9CE9-61057E945892}.Debug|Win32.Build.0 = Debug|Win32 {4CC7AB5D-54AA-4B15-9CE9-61057E945892}.Release|Win32.ActiveCfg = Release|Win32 {4CC7AB5D-54AA-4B15-9CE9-61057E945892}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Unicode/WinDrv32/Unicode.vcproj ================================================ ================================================ FILE: Project/Unicode/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/Unicode/WinXPDrv32/Unicode.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Unicode", "Unicode.vcproj", "{27CC6E41-F0EA-48F8-9114-D1F78C617E4E}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Debug.ActiveCfg = Debug|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Debug.Build.0 = Debug|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Release.ActiveCfg = Release|Win32 {27CC6E41-F0EA-48F8-9114-D1F78C617E4E}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/Unicode/WinXPDrv32/Unicode.vcproj ================================================ ================================================ FILE: Project/Unicode/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/Unicode/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/Unicode/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/Unicode/incfile.txt ================================================ ================================================ FILE: Project/Unicode/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/VersionInfo/Source/VersionInfo.cpp ================================================ // VersionInfo.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "VersionInfo.h" int main(int argc, char* argv[]) { if(argc==1) { printf("%s [--MAJOR | --MINOR | --BUILDNUMBER | --BUILDDATE]\n"); return 0; } if(argc==2) { if(TStrICmp(argv[1],"--MAJOR")==0) printf("%d",VER_PRODUCTMAJORVERSION); else if(TStrICmp(argv[1],"--MINOR")==0) printf("%d",VER_PRODUCTMINORVERSION); else if(TStrICmp(argv[1],"--BUILDNUMBER")==0) printf("%d",VER_PRODUCTBUILD); else if(TStrICmp(argv[1],"--BUILDDATE")==0) printf("%s",__DATE__); else printf("0"); return 0; } return -1; } ================================================ FILE: Project/VersionInfo/Source/VersionInfo.h ================================================ #ifndef __VERSION__INFO__ #define __VERSION__INFO__ #endif //__VERSION__INFO__ ================================================ FILE: Project/VersionInfo/Source/stdafx.cpp ================================================ // stdafx.cpp : source file that includes just the standard includes // VersionInfo.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ================================================ FILE: Project/VersionInfo/Source/stdafx.h ================================================ // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently // #pragma once #include "../../code/source/Code.h" #include "../../../Addition/SyserDebugger/SyserVersion.h" #include #include // TODO: reference additional headers your program requires here ================================================ FILE: Project/VersionInfo/Win32/VersionInfo.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VersionInfo", "VersionInfo.vcproj", "{C6DC9D93-4C63-4C71-8FD3-5A49F369D847}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {C6DC9D93-4C63-4C71-8FD3-5A49F369D847}.Debug|Win32.ActiveCfg = Debug|Win32 {C6DC9D93-4C63-4C71-8FD3-5A49F369D847}.Debug|Win32.Build.0 = Debug|Win32 {C6DC9D93-4C63-4C71-8FD3-5A49F369D847}.Release|Win32.ActiveCfg = Release|Win32 {C6DC9D93-4C63-4C71-8FD3-5A49F369D847}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/VersionInfo/Win32/VersionInfo.vcproj ================================================ ================================================ FILE: Project/WinWisp/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/WinWisp/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "../../Wisp/Source/Wisp.h" #endif ================================================ FILE: Project/WinWisp/Source/WinWisp.cpp ================================================ #include "StdAfx.h" #include "WinWisp.h" #include #include #define WS_FRAME_WND (WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_THICKFRAME|WS_VISIBLE) #define RESIZE_DELTA 32 #define WM_WISP_UPDATE WM_USER+0x10 CLocalWispApp* gpApp; CWinWisp::CWinWisp() { gpApp = this; m_hArrowCursor= m_hDragCursor= m_hVertResizeCursor= m_hHorzResizeCursor= m_hLeftLeanCursor= m_hRightLeanCursor=NULL; m_FrameStyle = WS_FRAME_WND; m_FrameStyleEx = 0; m_NotifyIconID = 0; m_hTrayIcon = NULL; } void CWinWisp::RemoveNotifyIcon(UINT IconID) { ///ɾͼ//////////////// NOTIFYICONDATA tnd; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=m_hLocalWnd; tnd.uID=0; if(m_hTrayIcon) { DestroyIcon(m_hTrayIcon); m_hTrayIcon = NULL; } Shell_NotifyIcon(NIM_DELETE,&tnd); ///ɾͼ//////////////// } void CWinWisp::InsertNotifyIcon(PCSTR szTip,UINT IconID) { ///ͼ//////////////// NOTIFYICONDATA tnd; m_NotifyIconID = IconID; m_NotifyString = szTip; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=m_hLocalWnd; tnd.uID=0; tnd.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP; tnd.uCallbackMessage=WM_WISP_NOTIFY_ICON; m_hTrayIcon=tnd.hIcon=LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IconID)); TStrCpy(tnd.szTip,szTip); Shell_NotifyIcon(NIM_ADD,&tnd); ///ͼ/////////////////////// } void CWinWisp::ModifyNotifyIcon(UINT IconID) { ///ɾͼ//////////////// NOTIFYICONDATA tnd; tnd.cbSize=sizeof(NOTIFYICONDATA); tnd.hWnd=m_hLocalWnd; tnd.uID=0; tnd.uFlags=NIF_ICON; if(m_hTrayIcon) DestroyIcon(m_hTrayIcon); m_hTrayIcon = tnd.hIcon = LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IconID)); BOOL boolll = Shell_NotifyIcon(NIM_MODIFY,&tnd); } bool CWinWisp::CreateFrame(WISP_CHAR*WndName,int Width,int Height,int Bpp) { WNDCLASSEX wcex; char szWndName[256]; HWND hDesktopWnd; RECT DesktopWndRect; hDesktopWnd = GetDesktopWindow(); GetWindowRect(hDesktopWnd, &DesktopWndRect); m_RealFrameBuffer.Width = DesktopWndRect.right - DesktopWndRect.left; m_RealFrameBuffer.Height = DesktopWndRect.bottom - DesktopWndRect.top; if(m_hArrowCursor==NULL) m_hArrowCursor = LoadCursor(NULL, IDC_ARROW); if(m_hDragCursor=NULL) m_hDragCursor = LoadCursor(NULL,IDC_SIZENWSE); if(m_hVertResizeCursor==NULL) m_hVertResizeCursor = LoadCursor(NULL, IDC_SIZENS); if(m_hHorzResizeCursor==NULL) m_hHorzResizeCursor = LoadCursor(NULL, IDC_SIZEWE); if(m_hLeftLeanCursor==NULL) m_hLeftLeanCursor = LoadCursor(NULL, IDC_SIZENWSE); if(m_hRightLeanCursor==NULL) m_hRightLeanCursor = LoadCursor(NULL, IDC_SIZENESW); wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; wcex.lpfnWndProc = (WNDPROC)CWinWisp::StaticWndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = m_hLocalInst; wcex.hIcon = m_hIcon; wcex.hCursor = m_hArrowCursor; wcex.hbrBackground = NULL; wcex.lpszMenuName = NULL; wcex.lpszClassName = "WispWindowClass"; wcex.hIconSm = NULL; RegisterClassEx(&wcex); UnicodeToAnsi(WndName,szWndName,sizeof(szWndName)); m_hLocalWnd = CreateWindowEx(m_FrameStyleEx,"WispWindowClass",szWndName,m_FrameStyle,CW_USEDEFAULT,CW_USEDEFAULT,Width,Height,NULL,NULL,m_hLocalInst,NULL); RECT ClientRC,WindowRC; GetClientRect(m_hLocalWnd,&ClientRC); GetWindowRect(m_hLocalWnd,&WindowRC); m_DeltaWndWidth = (WindowRC.right-WindowRC.left)-(ClientRC.right - ClientRC.left); m_DeltaWndHeight = (WindowRC.bottom-WindowRC.top)-(ClientRC.bottom - ClientRC.top); if(m_nLocalCmdShow == SW_MAXIMIZE) { Width = GetSystemMetrics(SM_CXFULLSCREEN); Height = GetSystemMetrics(SM_CYFULLSCREEN); } SetWindowPos(m_hLocalWnd,NULL, (GetSystemMetrics(SM_CXFULLSCREEN)-m_DeltaWndWidth-Width)/2, (GetSystemMetrics(SM_CYFULLSCREEN)-m_DeltaWndHeight-Height)/2, Width+m_DeltaWndWidth,Height+m_DeltaWndHeight,SWP_NOACTIVATE | SWP_NOZORDER); if(m_FrameStyle&WS_VISIBLE) { ShowWindow(m_hLocalWnd, m_nLocalCmdShow); UpdateWindow(m_hLocalWnd); } m_BmpWidth=m_BmpHeight=0; m_CurWndHDC = GetDC(m_hLocalWnd); m_CurMemHDC = CreateCompatibleDC(m_CurWndHDC); AdjustGDIBitmap(Width,Height); return true; } bool CWinWisp::ResizingFrame(int Width,int Height) { AdjustGDIBitmap(Width,Height); return true; } bool CWinWisp::ResizeHostFrame(int Width,int Height) { SetWindowPos(m_hLocalWnd,NULL,0,0,Width+m_DeltaWndWidth,Height+m_DeltaWndHeight,SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOMOVE); return true; } void CWinWisp::DestroyFrame() { if(m_hArrowCursor!=NULL) DestroyCursor(m_hArrowCursor); if(m_hDragCursor==NULL) DestroyCursor(m_hDragCursor); if(m_hVertResizeCursor!=NULL) DestroyCursor(m_hVertResizeCursor); if(m_hHorzResizeCursor!=NULL) DestroyCursor(m_hHorzResizeCursor); if(m_hLeftLeanCursor!=NULL) DestroyCursor(m_hLeftLeanCursor); if(m_hRightLeanCursor!=NULL) DestroyCursor(m_hRightLeanCursor); DestroyWindow(m_hLocalWnd); } void CWinWisp::SetMouseCaptureNotify() { ::SetCapture(m_hLocalWnd); } void CWinWisp::ReleaseMouseCaptureNotify() { ::ReleaseCapture(); } void CWinWisp::BeginDraw(WISP_RECT*pUpdateRect) { GdiFlush(); } void CWinWisp::EndDraw(WISP_RECT*pUpdateRect) { if(pUpdateRect==NULL) pUpdateRect = &gpCurWisp->m_pRootWnd->m_WindowRect; BitBlt(m_CurWndHDC,pUpdateRect->x,pUpdateRect->y,pUpdateRect->cx,pUpdateRect->cy,m_CurMemHDC,pUpdateRect->x,pUpdateRect->y,SRCCOPY); } WISP_PSTR CWinWisp::GetClipboardString() { int Length; PCSTR szString; HANDLE hClipboard; if(IsClipboardFormatAvailable(CF_TEXT)==FALSE) return m_ClipboardString; OpenClipboard(m_hLocalWnd); hClipboard = GetClipboardData(CF_TEXT); szString =(PCSTR)GlobalLock(hClipboard); if(szString==NULL) { CloseClipboard(); return m_ClipboardString; } Length = TStrLen(szString)+1; m_ClipboardString.Preallocate(Length); Length = AnsiToUnicode(szString,(PWSTR)m_ClipboardString,Length); m_ClipboardString.Truncate(Length); GlobalUnlock(hClipboard); CloseClipboard(); return CWispBase::GetClipboardString(); } bool CWinWisp::SetClipboardString(WISP_PCSTR String) { int Length; HGLOBAL hMem; PSTR pszStr; CWispBase::SetClipboardString(String); if(OpenClipboard(m_hLocalWnd)) { EmptyClipboard(); Length = TStrLen(String)+1; hMem = GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE|GMEM_ZEROINIT,Length*2); pszStr=(PSTR)GlobalLock(hMem); UnicodeToAnsi(String,pszStr,Length*2); GlobalUnlock(hMem); SetClipboardData(CF_TEXT,hMem); CloseClipboard(); } return true; } void CWinWisp::AdjustGDIBitmap(int Width,int Height) { BITMAPINFO BitMapInfo; if(Width<=0 || Height<=0) return; m_FrameBuffer.Bpp = 32; m_FrameBuffer.Width = Width; m_FrameBuffer.Height = Height; if( m_BmpWidth=RESIZE_DELTA || m_BmpHeight-Height>=RESIZE_DELTA) { if(m_BmpWidth-Width>=RESIZE_DELTA) m_BmpWidth=Width; else m_BmpWidth=Width+RESIZE_DELTA; if(m_BmpHeight-Height>=RESIZE_DELTA) m_BmpHeight=Height; else m_BmpHeight=Height+RESIZE_DELTA; BitMapInfo.bmiHeader.biBitCount=32; BitMapInfo.bmiHeader.biSize=sizeof(BITMAPINFOHEADER); BitMapInfo.bmiHeader.biCompression=BI_RGB; BitMapInfo.bmiHeader.biPlanes=1; BitMapInfo.bmiHeader.biSizeImage=0; BitMapInfo.bmiHeader.biClrUsed=0; BitMapInfo.bmiHeader.biClrImportant=0; BitMapInfo.bmiHeader.biHeight=-m_BmpHeight; BitMapInfo.bmiHeader.biWidth=m_BmpWidth; m_hBitmap = CreateDIBSection(NULL,&BitMapInfo,DIB_RGB_COLORS,(void**)&m_FrameBuffer.Buffer,NULL,0); CODE_ASSERT(m_hBitmap); DeleteObject(SelectObject(m_CurMemHDC,m_hBitmap)); m_FrameBuffer.LineDistance = m_BmpWidth*(m_FrameBuffer.Bpp/8); m_FrameBuffer.BufferSize = m_FrameBuffer.LineDistance*m_BmpHeight; } } void CWinWisp::ChangeCursor(UINT CursorType,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize,IN CWispDIB*pDIB) { if(m_bHideMouse==false) { CWispBase::ChangeCursor(CursorType,pMouseHotPT,pMouseSize,pDIB); return; } HICON hCursor; switch(CursorType) { case WISP_CT_ARROW: hCursor = m_hArrowCursor; break; case WISP_CT_DRAG_ARROW: hCursor = m_hHorzResizeCursor; break; case WISP_CT_RESIZE_VERT: hCursor = m_hVertResizeCursor; break; case WISP_CT_RESIZE_HORZ: hCursor = m_hHorzResizeCursor; break; case WISP_CT_RESIZE_LEFT_LEAN: hCursor = m_hLeftLeanCursor; break; case WISP_CT_RESIZE_RIGHT_LEAN: hCursor = m_hRightLeanCursor; break; default: return; } SetClassLong(m_hLocalWnd,GCL_HCURSOR,PTR_TO_NUM(hCursor)); } void CWinWisp::ChangeHostCursor(IN NUM_PTR CursorData,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize) { ICONINFO IconInfo; HICON hCursor = (HICON)CursorData; if(GetIconInfo(hCursor,&IconInfo)==FALSE) return; pMouseHotPT->x = IconInfo.xHotspot; pMouseHotPT->y = IconInfo.yHotspot; pMouseSize->cx = pMouseSize->cy = 0; SetClassLong(m_hLocalWnd,GCL_HCURSOR,PTR_TO_NUM(hCursor)); } int CWinWisp::WinMainStart(HINSTANCE hInstance,LPSTR lpCmdLine, int nCmdShow) { int Result; m_hLocalInst = hInstance; m_nLocalCmdShow = nCmdShow; m_pCmdLine = lpCmdLine; InitializeCriticalSection(&m_CriticalSection); Result = 0; if(InitInstance()==false) goto Exit; Pump(); Result = ExitInstance(); Exit: DeleteCriticalSection(&m_CriticalSection); return Result; } bool CWinWisp::WakeUpMsgThread() { if(m_bMsgSleeping) { ::PostMessage(m_hLocalWnd,WM_WISP_UPDATE,0,0); } return true; } bool CWinWisp::SleepMsgThread() { MSG msg; if(::GetMessage(&msg,NULL,0,0)==FALSE) { m_bActive = false; return true; } ::TranslateMessage(&msg); ::DispatchMessage(&msg); return true; } #ifndef WM_MOUSEWHEEL #define WM_MOUSEWHEEL 0x020A #endif #ifndef GET_WHEEL_DELTA_WPARAM #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam)) #endif #ifndef WHEEL_DELTA #define WHEEL_DELTA 120 #endif bool CWinWisp::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { int nRepeat,NewCX,NewCY; RECT*pRC; switch (message) { case WM_ERASEBKGND: if(gpApp->m_pRootWnd) gpApp->EndDraw(NULL); break; case WM_CREATE: gpApp->m_TaskBarCreatedMsg = RegisterWindowMessage(TEXT("TaskbarCreated")); ShowCursor(gpApp->m_bHideMouse); SetTimer(hWnd,0,30,NULL); break; case WM_LBUTTONDBLCLK: if(gpApp->m_pRootWnd) gpApp->OnMouseButtonDBClick(WISP_VK_LBUTTON); break; case WM_RBUTTONDBLCLK: if(gpApp->m_pRootWnd) gpApp->OnMouseButtonDBClick(WISP_VK_RBUTTON); break; case WM_LBUTTONDOWN: if(gpApp->m_pRootWnd) gpApp->OnKeyEvent(WISP_VK_LBUTTON,true); break; case WM_RBUTTONDOWN: if(gpApp->m_pRootWnd) gpApp->OnKeyEvent(WISP_VK_RBUTTON,true); break; case WM_LBUTTONUP: if(gpApp->m_pRootWnd) gpApp->OnKeyEvent(WISP_VK_LBUTTON,false); break; case WM_RBUTTONUP: if(gpApp->m_pRootWnd) gpApp->OnKeyEvent(WISP_VK_RBUTTON,false); break; case WM_MOUSEWHEEL: if(gpApp->m_pRootWnd) gpApp->OnMouseWheel((int)GET_WHEEL_DELTA_WPARAM(wParam)/WHEEL_DELTA); break; case WM_MOUSEMOVE: if(gpApp->m_pRootWnd) gpApp->OnMousePosChg((short)LOWORD(lParam),(short)HIWORD(lParam)); break; case WM_SYSKEYDOWN: case WM_KEYDOWN: if(gpApp->m_pRootWnd) { nRepeat = LOW_WORD(lParam); for(int n=0;nOnKeyEvent((UINT)wParam,true,(BYTE)(HIWORD(lParam) & 0xFF)); } break; case WM_SYSKEYUP: case WM_KEYUP: if(gpApp->m_pRootWnd) { nRepeat = LOW_WORD(lParam); for(int n=0;nOnKeyEvent((UINT)wParam,false,(BYTE)(HIWORD(lParam) & 0xFF)); } break; case WM_ACTIVATE: if(gpApp->m_pRootWnd) gpApp->EndDraw(NULL); break; case WM_TIMER: gpApp->OnTimer(20); break; case WM_DESTROY: gpApp->m_bActive = false; break; case WM_NCCALCSIZE: if(gpApp->m_pRootWnd && wParam) { pRC=((NCCALCSIZE_PARAMS*)NUM_TO_PTR(lParam))->rgrc; NewCX = pRC->right-pRC->left-gpApp->m_DeltaWndWidth; NewCY = pRC->bottom-pRC->top-gpApp->m_DeltaWndHeight; if(NewCX>0 && NewCY>0) { gpApp->EnterCriticalSection(); gpApp->m_pRootWnd->m_State = WISP_WST_SIZING; gpApp->m_pRootWnd->Resize(NewCX,NewCY); gpApp->m_pRootWnd->m_State = WISP_WST_NORMAL; gpApp->UpdateFrameBuffer(); gpApp->LeaveCriticalSection(); } } return false; case WM_WISP_UPDATE: return true; default: if(message == gpApp->m_TaskBarCreatedMsg) { if(gpApp->m_NotifyIconID) gpApp->InsertNotifyIcon(gpApp->m_NotifyString,gpApp->m_NotifyIconID); return true; } return false; } return true; } LRESULT CALLBACK CWinWisp::StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { if(gpApp->WndProc(hWnd,message,wParam,lParam)) return 0; return DefWindowProc(hWnd, message, wParam, lParam); } void CWinWisp::EnterCriticalSection() { ::EnterCriticalSection(&m_CriticalSection); } void CWinWisp::LeaveCriticalSection() { ::LeaveCriticalSection(&m_CriticalSection); } bool CWinWisp::SelectDirForm(OUT WISP_PSTR szDir,WISP_PCSTR szTitle) { bool Result; BROWSEINFOW bi; LPITEMIDLIST pidl; LPMALLOC pMalloc; if(SHGetMalloc(&pMalloc) != NOERROR) return false; bi.hwndOwner=m_hLocalWnd; bi.pidlRoot=NULL; bi.pszDisplayName=NULL; bi.lpszTitle=szTitle; bi.ulFlags=BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE; bi.lpfn=NULL; bi.lParam=0; Result = false; if((pidl=SHBrowseForFolderW(&bi)) != NULL) { Result = SHGetPathFromIDListW(pidl, szDir)!=FALSE; pMalloc->Free(pidl); } pMalloc->Release(); return Result; } bool CWinWisp::SelectFileForm(IN WISP_PCSTR szInitDir,WISP_PCSTR szFilter,bool bSave,OUT WISP_PSTR szFileName,int Length) { WCHAR szBuffer[MAX_FN_LEN]; OPENFILENAMEW OpenFileName; STZeroMemory(OpenFileName); OpenFileName.lStructSize = sizeof(OPENFILENAME); OpenFileName.hInstance = m_hLocalInst; OpenFileName.hwndOwner = m_hLocalWnd; TStrCpy(szBuffer,szFilter); for(int n = TStrLen(szBuffer);n>=0;n--) { if(szBuffer[n]=='|') szBuffer[n]=0; } OpenFileName.lpstrFilter = szBuffer; OpenFileName.nMaxFile = Length; OpenFileName.lpstrFile = szFileName; OpenFileName.lpstrInitialDir = szInitDir; *szFileName = 0; return GetOpenFileNameW(&OpenFileName)!=FALSE; } void CWinWisp::ReportMsg(IN const WISP_CHAR* Format,...) { WCHAR szBuffer[0x200]; va_list Next; va_start(Next,Format); TVSPrintf(szBuffer,Format,Next); va_end(Next); OutputDebugStringW(szBuffer); } ================================================ FILE: Project/WinWisp/Source/WinWisp.h ================================================ #ifndef _WIN_WISP_INTERFACE_ #define _WIN_WISP_INTERFACE_ #include "WispApp.h" #define WM_WISP_NOTIFY_ICON WM_USER+0x100 class CWinWisp : public CWispApp { public: CWinWisp(); UINT m_FrameStyle; UINT m_FrameStyleEx; HWND m_hLocalWnd; HINSTANCE m_hLocalInst; HICON m_hIcon; HICON m_hTrayIcon; int m_nLocalCmdShow; PSTR m_pCmdLine; HDC m_CurWndHDC; HDC m_CurMemHDC; HBITMAP m_hBitmap; HICON m_hArrowCursor; HICON m_hDragCursor; HICON m_hVertResizeCursor; HICON m_hHorzResizeCursor; HICON m_hLeftLeanCursor; HICON m_hRightLeanCursor; int m_DeltaWndWidth; int m_DeltaWndHeight; int m_BmpWidth; int m_BmpHeight; CRITICAL_SECTION m_CriticalSection; CStrA m_NotifyString; UINT m_NotifyIconID; UINT m_TaskBarCreatedMsg; WISP_FRAME_BUFFER m_RealFrameBuffer; public: bool CreateFrame(WISP_CHAR*WndName,int Width,int Height,int Bpp); bool ResizingFrame(int Width,int Height); bool ResizeHostFrame(int Width,int Height); void ChangeCursor(UINT CursorType,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize,IN CWispDIB*pDIB = NULL); void ChangeHostCursor(IN NUM_PTR CursorData,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize); void DestroyFrame(); void SetMouseCaptureNotify(); void ReleaseMouseCaptureNotify(); void BeginDraw(WISP_RECT*pUpdateRect); void EndDraw(WISP_RECT*pUpdateRect); void AdjustGDIBitmap(int Width,int Height); WISP_PSTR GetClipboardString(); bool SetClipboardString(WISP_PCSTR String); HICON LoadWinWispCursor(LPCSTR CursorID,WISP_POINT*pHotPT,WISP_SIZE*pSize); int WinMainStart(HINSTANCE hInstance,LPSTR lpCmdLine,int nCmdShow); virtual bool WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); static LRESULT CALLBACK StaticWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void RemoveNotifyIcon(UINT IconID); void ModifyNotifyIcon(UINT IconID); void InsertNotifyIcon(PCSTR szTip,UINT IconID); void EnterCriticalSection(); void LeaveCriticalSection(); bool SelectDirForm(OUT WISP_PSTR szDir,WISP_PCSTR szTitle = NULL); bool SelectFileForm(IN WISP_PCSTR szInitDir,WISP_PCSTR szFilter,bool bSave,OUT WISP_PSTR szFileName,int Length); void ReportMsg(IN const WISP_CHAR* Format,...); bool WakeUpMsgThread(); bool SleepMsgThread(); }; typedef CWinWisp CLocalWispApp; extern CLocalWispApp* gpApp; #endif ================================================ FILE: Project/WinWisp/Source/WispApp.cpp ================================================ #include "StdAfx.h" #include "WispApp.h" CWispApp::CWispApp() { } CWispApp::~CWispApp() { } bool CWispApp::InitInstance() { return Init(); } int CWispApp::ExitInstance() { Release(); return 0; } int CWispApp::Run() { Pump(); return 0; } ================================================ FILE: Project/WinWisp/Source/WispApp.h ================================================ #ifndef _WISP_APP_H_ #define _WISP_APP_H_ class CWispApp : public CWispBase { public: CWispApp(); ~CWispApp(); public: virtual bool InitInstance(); virtual int ExitInstance(); virtual int Run(); }; #endif ================================================ FILE: Project/WinWisp/Win32/WinWisp.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "WinWisp.vcproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/WinWisp/Win32/WinWisp.vcproj ================================================ ================================================ FILE: Project/WinWisp/Win32/WinWisp.vcxproj ================================================ Debug Win32 Release Win32 Trial Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E} Win32Proj StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte <_ProjectFileVersion>16.0.33801.447 Debug\ Debug\ Release\ Release\ $(Configuration)\ $(Configuration)\ Disabled WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Use Level3 EditAndContinue $(OutDir)WinWisp.lib false WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded Use Level3 ProgramDatabase $(OutDir)WinWisp.lib WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded Use Level3 ProgramDatabase $(OutDir)WinWisp.lib Create Create Create Create Create ================================================ FILE: Project/WinWisp/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/WinWisp/incfile.txt ================================================ ================================================ FILE: Project/WinWisp/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/Wisp/Source/DIBData.cpp ================================================ #include "StdAfx.h" #include "WispDIB.h" #define HH 0x00FFFFFF COLORREF BTCaret[2*12]= { 00,00, HH,HH, HH,HH, HH,HH, HH,HH, HH,HH, HH,HH, HH,HH, HH,HH, HH,HH, HH,HH, 00,00, }; ================================================ FILE: Project/Wisp/Source/DIBData.h ================================================ #ifndef _DIB_DATA_H_ #define _DIB_DATA_H_ extern COLORREF BTCaret[2*12]; #define ICON_REDIOBOX_BMPSIZE 3122 extern BYTE RedioBoxIconBmp[3122]; #endif ================================================ FILE: Project/Wisp/Source/MakeFile ================================================ # # DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def ================================================ FILE: Project/Wisp/Source/Ripple.cpp ================================================ #include "StdAfx.h" #include "Ripple.h" CRipple::CRipple() { m_buf1 = NULL; m_buf2 = NULL; } CRipple::~CRipple() { CleanRippleData(); } bool CRipple::InitRipple(int nBackWidth, int nBackHeight, int nDepth, int Pitch) { m_BackWidth = nBackWidth; m_BackHeight = nBackHeight; m_PixelBytes = (nDepth+7)/8; if(Pitch) m_Pitch = Pitch; else m_Pitch = m_PixelBytes*m_BackWidth; m_buf1 = new short[m_BackWidth*m_BackHeight]; m_buf2 = new short[m_BackWidth*m_BackHeight]; ZeroMemory(m_buf1,m_BackWidth*m_BackHeight*sizeof(short)); ZeroMemory(m_buf2,m_BackWidth*m_BackHeight*sizeof(short)); return true; } //***************************************************** //ӲԴ //***************************************************** void CRipple::DropStone(int x,int y,int stonesize,int stoneweight) { //жǷĻΧ if(x+stonesize>=m_BackWidth || y+stonesize>=m_BackHeight||x-stonesize<0||y-stonesize<0) return; for(int posx=x-stonesize; posx>1)-m_buf2[pos]) Result = true; if(m_buf2[pos] -= m_buf2[pos]>>5) Result = true; } } short *ptmp =m_buf1; m_buf1 = m_buf2; m_buf2 = ptmp; return Result; } //******************************************************* //ݲݻҳȾ //******************************************************* void CRipple::RenderRipple(void* Bitmap1,void* Bitmap2) { //ҳȾ int pos1,pos2,xoff,yoff; int k = m_BackWidth; for(int y=1; y= m_BackHeight || x+xoff < 0 || x+xoff >= m_BackWidth) { k++; continue; } //ƫغԭʼصڴַƫ pos1=m_Pitch*(y+yoff)+ m_PixelBytes*(x+xoff); pos2=m_Pitch*y+ m_PixelBytes*x; // for(int d=0; d #endif ================================================ FILE: Project/Wisp/Source/Utility.cpp ================================================ #include "StdAfx.h" #include "Utility.h" // Ƿھ bool PtInRect(IN const WISP_RECT *pRect, IN int x, int y) { return pRect->cx >0 && pRect->cy >0 && x >= pRect->x && y >= pRect->y && x < pRect->x + pRect->cx && y < pRect->y + pRect->cy; } bool PtInRect(IN WISP_RECT *pRect,const IN WISP_POINT*pPoint) { return pRect->cx >0 && pRect->cy >0 && pPoint->x >= pRect->x && pPoint->y >= pRect->y && pPoint->x < pRect->x + pRect->cx && pPoint->y < pRect->y + pRect->cy; } bool PtInRect(IN WISP_RECT *pRect,const IN WISP_POINT &Point) { return pRect->cx >0 && pRect->cy >0 && Point.x >= pRect->x && Point.y >= pRect->y && Point.x < pRect->x + pRect->cx && Point.y < pRect->y + pRect->cy; } void PointToRect(INOUT WISP_POINT*pPoint,IN WISP_RECT*pRect) { pPoint->x-=pRect->x; pPoint->y-=pRect->y; } void RectToRect(INOUT WISP_RECT*pRect,IN WISP_RECT*pToRect) { pRect->x-=pToRect->x; pRect->y-=pToRect->y; } void PointSpliceRect(INOUT WISP_POINT*pPoint,IN WISP_RECT*pRect) { pPoint->x+=pRect->x; pPoint->y+=pRect->y; } bool IsInvalidRect(IN WISP_RECT*pRect) { return pRect->cx<=0 || pRect->cy<=0; } bool ClipLine(INOUT int*pX1,INOUT int*pY1,INOUT int*pX2,INOUT int*pY2,IN WISP_RECT*pRect) { if(*pX1==*pX2) return ClipVLine(pX1,pY1,pY2,pRect); if(*pY1==*pY2) return ClipHLine(pX1,pX2,pY1,pRect); if(*pX1x && *pX2x) return false; if(*pX1>=pRect->x+pRect->cx && *pX2>=pRect->x+pRect->cx) return false; if(*pY1y && *pY2y) return false; if(*pY1>=pRect->y+pRect->cy && *pY2>=pRect->y+pRect->cy) return false; int dx,dy,l; dx = *pX2 - *pX1; dy = *pY2 - *pY1; if(*pX1x) { l=pRect->x-*pX1; *pX1=pRect->x; *pY1+=((dy<<16)/dx*l)>>16; } else if(*pX1>=pRect->x+pRect->cx) { l=pRect->x+pRect->cx-1-*pX1; *pX1=pRect->x+pRect->cx-1; *pY1+=((dy<<16)/dx*l)>>16; } if(*pX2x) { l=pRect->x-*pX2; *pX2=pRect->x; *pY2+=((dy<<16)/dx*l)>>16; } else if(*pX2>=pRect->x+pRect->cx) { l=pRect->x+pRect->cx-1-*pX2; *pX2=pRect->x+pRect->cx-1; *pY2+=((dy<<16)/dx*l)>>16; } if(*pY1y) { l=pRect->y-*pY1; *pY1=pRect->y; *pX1+=((dx<<16)/dy*l)>>16; } else if(*pY1>=pRect->y+pRect->cy) { l=pRect->y+pRect->cy-1-*pY1; *pY1=pRect->y+pRect->cy-1; *pX1+=((dx<<16)/dy*l)>>16; } if(*pY2y) { l=pRect->y-*pY2; *pY2=pRect->y; *pX2+=((dx<<16)/dy*l)>>16; } else if(*pY2>=pRect->y+pRect->cy) { l=pRect->y+pRect->cy-1-*pY2; *pY2=pRect->y+pRect->cy-1; *pX2+=((dx<<16)/dy*l)>>16; } return *pX1!=*pX2 || *pY1!=*pY2; } bool ClipHLine(INOUT int*pX1,INOUT int*pX2,INOUT int*pY,IN WISP_RECT*pRect) { if(*pX1x && *pX2x) return false; if(*pX1>=pRect->x+pRect->cx && *pX2>=pRect->x+pRect->cx) return false; if(*pYy || *pY>=pRect->y+pRect->cy) return false; if(*pX1x) *pX1=pRect->x; else if(*pX1>=pRect->x+pRect->cx) *pX1=pRect->x+pRect->cx-1; if(*pX2x) *pX2=pRect->x; else if(*pX2>=pRect->x+pRect->cx) *pX2=pRect->x+pRect->cx-1; return *pX1!=*pX2; } bool ClipVLine(INOUT int*pX,INOUT int*pY1,INOUT int*pY2,IN WISP_RECT*pRect) { if(*pXx || *pX>=pRect->x+pRect->cx) return false; if(*pY1y && *pY2y) return false; if(*pY1>=pRect->y+pRect->cy && *pY2>=pRect->y+pRect->cy) return false; if(*pY1y) *pY1=pRect->y; else if(*pY1>=pRect->y+pRect->cy) *pY1=pRect->y+pRect->cy-1; if(*pY2y) *pY2=pRect->y; else if(*pY2>=pRect->y+pRect->cy) *pY2=pRect->y+pRect->cy-1; return *pY1!=*pY2; } bool ClipRect(INOUT WISP_RECT*pRect,IN WISP_RECT*pClipRect) { if(pRect->x < pClipRect->x) { pRect->cx-=pClipRect->x-pRect->x; pRect->x=pClipRect->x; } if(pRect->y < pClipRect->y) { pRect->cy-=pClipRect->y-pRect->y; pRect->y=pClipRect->y; } if(pRect->x+pRect->cx > pClipRect->x+pClipRect->cx) pRect->cx = pClipRect->x+pClipRect->cx - pRect->x; if(pRect->y+pRect->cy > pClipRect->y+pClipRect->cy) pRect->cy = pClipRect->y+pClipRect->cy - pRect->y; return pRect->cx>0 && pRect->cy>0; } bool IsRectVisible(IN WISP_RECT*pRect,IN WISP_RECT*pClipRect) { WISP_RECT Rect=*pRect; if(Rect.x < pClipRect->x) { Rect.cx-=pClipRect->x-Rect.x; Rect.x=pClipRect->x; } if(Rect.y < pClipRect->y) { Rect.cy-=pClipRect->y-Rect.y; Rect.y=pClipRect->y; } if(Rect.x+Rect.cx > pClipRect->x+pClipRect->cx) Rect.cx = pClipRect->x+pClipRect->cx - Rect.x; if(Rect.y+Rect.cy > pClipRect->y+pClipRect->cy) Rect.cy = pClipRect->y+pClipRect->cy - Rect.y; return Rect.cx>0 && Rect.cy>0; } void MergeRect(IN WISP_RECT*pRect1,IN WISP_RECT*pRect2,OUT WISP_RECT*pRect) { if(pRect1==NULL || pRect2==NULL) return; if(pRect1->cx <=0 || pRect1->cy <=0) { *pRect = *pRect2; return; } if(pRect2->cx <=0 || pRect2->cy <=0) { *pRect = *pRect1; return; } pRect->x = MIN(pRect1->x,pRect2->x); pRect->y = MIN(pRect1->y,pRect2->y); pRect->cx= MAX(pRect1->x+pRect1->cx,pRect2->x+pRect2->cx) - pRect->x; pRect->cy= MAX(pRect1->y+pRect1->cy,pRect2->y+pRect2->cy) - pRect->y; } void MergeRect(IN WISP_RECT*pRect1,INOUT WISP_RECT*pRect2) { int x,y,cx,cy; if(pRect1->cx <=0 ||pRect1->cy <=0) return; if(pRect2->cx <=0 ||pRect2->cy <=0) { *pRect2 = *pRect1; return; } x = MIN(pRect1->x,pRect2->x); y = MIN(pRect1->y,pRect2->y); cx= MAX(pRect1->x+pRect1->cx,pRect2->x+pRect2->cx) - x; cy= MAX(pRect1->y+pRect1->cy,pRect2->y+pRect2->cy) - y; pRect2->x = x; pRect2->y = y; pRect2->cx = cx; pRect2->cy = cy; } bool RectInRect(const IN WISP_RECT&Rect,const IN WISP_RECT&TestRect) { return TestRect.x >= Rect.x && TestRect.x + TestRect.cx < Rect.x + Rect.cx && TestRect.y >= Rect.y && TestRect.y + TestRect.cy < Rect.y + Rect.cy; } COLORREF FindFitColor(COLORREF Color,COLORREF*Pal) { long MinDelta,Delta,nDelta; MinDelta = 0x7FFFFFFF; nDelta = 0; for(int n=0;n<256;n++) { Delta = ABS((long)Color-(long)Pal[n]); if(Delta==0) return n; if(MinDelta>Delta) { MinDelta = Delta; nDelta = n; } } return nDelta; } void ColorStrSet(WISP_COLOR_CHAR*Src,int Len,BYTE TXTColor,BYTE BKColor) { while(Len) { *Src += (TXTColor<<16) + (BKColor<<24); Src++; Len--; } } int ColorStrNCpy(WISP_COLOR_CHAR*Des,const WISP_CHAR*Src,int Count,BYTE TXTColor,BYTE BKColor) { int len=0; while(*Src && Count--) { *Des = (WISP_COLOR_CHAR)*Src + (TXTColor<<16) + (BKColor<<24); Src++; Des++; len++; } *Des=0; return len; } int ColorStrCpy(WISP_COLOR_CHAR*Des,const WISP_CHAR*Src,BYTE TXTColor,BYTE BKColor) { int len=0; while(*Src) { *Des = (WISP_COLOR_CHAR)*Src + (TXTColor<<16) + (BKColor<<24); Src++; Des++; len++; } *Des=0; return len; } int ColorStrCat(WISP_COLOR_CHAR*Des,const WISP_CHAR*Src,BYTE TXTColor,BYTE BKColor) { int len=0; Des+=TStrLen(Des); while(*Src) { *Des = (WISP_COLOR_CHAR)*Src + (TXTColor<<16) + (BKColor<<24); Src++; Des++; len++; } *Des=0; return len; } int ColorStrCpy(WISP_COLOR_CHAR*Des,const CHAR*Src,BYTE TXTColor,BYTE BKColor) { int len=0; while(*Src) { *Des = (WISP_COLOR_CHAR)*Src + (TXTColor<<16) + (BKColor<<24); Src++; Des++; len++; } *Des=0; return len; } int ColorStrCat(WISP_COLOR_CHAR*Des,const CHAR*Src,BYTE TXTColor,BYTE BKColor) { int len=0; Des+=TStrLen(Des); while(*Src) { *Des = (WISP_COLOR_CHAR)*Src + (TXTColor<<16) + (BKColor<<24); Src++; Des++; len++; } *Des=0; return len; } ================================================ FILE: Project/Wisp/Source/Utility.h ================================================ #ifndef _WISP_UTILITY_H_ #define _WISP_UTILITY_H_ #include "WispDefine.h" #include "WispMsgDefine.h" // Ƿھ bool PtInRect(IN const WISP_RECT *pRect, IN int x, int y); bool PtInRect(IN WISP_RECT *pRect,const IN WISP_POINT*pPoint); bool PtInRect(IN WISP_RECT *pRect,const IN WISP_POINT &Point); void PointToRect(INOUT WISP_POINT*pPoint,IN WISP_RECT*pRect); void RectToRect(INOUT WISP_RECT*pRect,IN WISP_RECT*pToRect); void PointSpliceRect(INOUT WISP_POINT*pPoint,IN WISP_RECT*pRect); bool IsInvalidRect(IN WISP_RECT*pRect); //üֱ bool ClipLine(INOUT int*pX1,INOUT int*pY1,INOUT int*pX2,INOUT int*pY2,IN WISP_RECT*pRect); bool ClipHLine(INOUT int*pX1,INOUT int*pX2,INOUT int*pY,IN WISP_RECT*pRect); bool ClipVLine(INOUT int*pX,INOUT int*pY1,INOUT int*pY2,IN WISP_RECT*pRect); //ü bool ClipRect(INOUT WISP_RECT*pRect,IN WISP_RECT*pClipRect); bool IsRectVisible(IN WISP_RECT*pRect,IN WISP_RECT*pClipRect); //ںϾ void MergeRect(IN WISP_RECT*pRect1,IN WISP_RECT*pRect2,OUT WISP_RECT*pRect); void MergeRect(IN WISP_RECT*pRect1,INOUT WISP_RECT*pRect2); //Ƿھ bool RectInRect(const IN WISP_RECT&Rect,const IN WISP_RECT&TestRect); //صʱС //bool CalcUpdateRect(const IN WISP_RECT&Rect,INOUT WISP_RECT&UpdateRect); COLORREF FindFitColor(COLORREF Color,COLORREF*Pal); inline bool IsColorString(WISP_PCSTR pStr){return pStr && *pStr==0xFFFF;} inline const WISP_COLOR_CHAR* GetColorString(WISP_PCSTR pStr){return (const WISP_COLOR_CHAR*)&pStr[2];} ///////////////////////////////////////////////////////////////////////////////////////////////////////// //class WispRect ///////////////////////////////////////////////////////////////////////////////////////////////////////// class CWispRect : public WISP_RECT { public: CWispRect(){x=y=cx=cy=0;} CWispRect(LONG nx,LONG ny,LONG ncx,LONG ncy){ x=nx; y=ny; cx=ncx; cy=ncy; } CWispRect(const WISP_RECT&rc){ x=rc.x; y=rc.y; cx=rc.cx; cy=rc.cy; } CWispRect(const WISP_RECT*pRC){ x=pRC->x; y=pRC->y; cx=pRC->cx; cy=pRC->cy; } CWispRect(const WISP_POINT&pt,const WISP_SIZE &size){ x=pt.x; y=pt.y; cx=size.cx;cy=size.cy; } CWispRect(const WISP_POINT&LeftPT,const WISP_POINT&RightPT){x=LeftPT.x;y=LeftPT.y;cx=RightPT.x-x;cy=RightPT.y-y;} void DeflateRect(int nX, int nY) { x+=nX; y+=nY; cx-=2*nX; cy-=2*nY; } void OffsetRect(int nX, int nY) { x+=nX; y+=nY; } void operator=(const WISP_RECT& srcRect){ x = srcRect.x; y=srcRect.y; cx=srcRect.cx; cy=srcRect.cy; } bool operator==(const WISP_RECT&rc) { return x==rc.x && y==rc.y && cx==rc.cx && cy==rc.cy; } bool operator!=(const WISP_RECT&rc) { return x!=rc.x || y!=rc.y || cx!=rc.cx || cy!=rc.cy; } void operator+=(WISP_POINT pt){ x+=pt.x; y+=pt.y; } void operator+=(WISP_SIZE size){ x+=size.cx; y+=size.cy; } void operator+=(WISP_RECT&RC){ x+=RC.x; y+=RC.y; } void operator-=(WISP_POINT pt){ x-=pt.x; y-=pt.y; } void operator-=(WISP_SIZE size){ x-= size.cx; y-= size.cy; } void operator-=(WISP_RECT&RC){ x-=RC.x; y-=RC.y; } void operator&=(const WISP_RECT&rc) { } void operator|=(const WISP_RECT&rc) { LONG MinX,MinY,MaxX,MaxY; MinX=MIN(x,rc.x); MinY=MIN(y,rc.y); MaxX=MAX(x+cx,rc.x+rc.y); MaxY=MAX(y+cy,rc.y+rc.y); x=MinX;y=MinY; cx=MaxX-MinX;cy=MaxY-MinY; } CWispRect operator+(WISP_POINT pt) { CWispRect RC; RC.x=x+pt.x; RC.y=y+pt.y; RC.cx=cx; RC.cy=cy; return RC; } CWispRect operator+(WISP_RECT*pRC) { CWispRect RC; RC.x=x+pRC->x; RC.y=y+pRC->y; RC.cx=cx; RC.cy=cy; return RC; } CWispRect operator+(WISP_RECT rc) { CWispRect RC; RC.x=x+rc.x; RC.y=y+rc.y; RC.cx=cx; RC.cy=cy; return RC; } CWispRect operator+(WISP_SIZE size) { CWispRect RC; RC.x=x+size.cx; RC.y=y+size.cy; RC.cx=cx; RC.cy=cy; return RC; } CWispRect operator-(WISP_POINT pt) { CWispRect RC; RC.x=x-pt.x; RC.y=y-pt.y; RC.cx=cx; RC.cy=cy; return RC; } CWispRect operator-(WISP_RECT &RC) { CWispRect rRC; rRC.x=x-RC.x; rRC.y=y-RC.y; rRC.cx=cx; rRC.cy=cy; return rRC; } CWispRect operator-(WISP_SIZE size) { CWispRect RC; RC.x=x-size.cx; RC.y=y-size.cy; RC.cx=cx; RC.cy=cy; return RC; } CWispRect operator&(const WISP_RECT&rc) { } CWispRect operator|(const WISP_RECT&rc) { CWispRect RC; LONG MinX,MinY,MaxX,MaxY; MinX=MIN(x,rc.x); MinY=MIN(y,rc.y); MaxX=MAX(x+cx,rc.x+rc.y); MaxY=MAX(y+cy,rc.y+rc.y); RC.x=MinX; RC.y=MinY; RC.cx=MaxX-MinX; RC.cy=MaxY-MinY; return RC; } int y2() { return y+cy-1; } int x2() { return x+cx-1; } operator WISP_RECT*() const { return (WISP_RECT*)this; } void SetRect(int nx,int ny,int ncx,int ncy) { x = nx; y = ny; cx = ncx; cy = ncy; } }; int ColorStrNCpy(WISP_COLOR_CHAR*Des,const WISP_CHAR*Src,int Count,BYTE TXTColor,BYTE BKColor); int ColorStrCpy(WISP_COLOR_CHAR*Des,const WISP_CHAR*Src,BYTE TXTColor,BYTE BKColor); int ColorStrCat(WISP_COLOR_CHAR*Des,const WISP_CHAR*Src,BYTE TXTColor,BYTE BKColor); void ColorStrSet(WISP_COLOR_CHAR*Src,int Len,BYTE TXTColor,BYTE BKColor); int ColorStrCpy(WISP_COLOR_CHAR*Des,const CHAR*Src,BYTE TXTColor,BYTE BKColor); int ColorStrCat(WISP_COLOR_CHAR*Des,const CHAR*Src,BYTE TXTColor,BYTE BKColor); #endif ================================================ FILE: Project/Wisp/Source/Wisp.h ================================================ #ifndef _WISP_H_ #define _WISP_H_ #include "WispBase.h" #include "WispFont.h" #include "WispMultiTabView.h" #include "WispHexWnd.h" #include "WispConsoleWnd.h" #include "WispCheckBox.h" #include "WispStatic.h" #include "WispProgress.h" #include "WispMsgBox.h" #include "WispSplitWnd.h" #include "WispInfoWnd.h" #include "WispCalcWnd.h" #include "WispRadioBox.h" #include "WispComboBox.h" #include "WispToolbar.h" #include "WispSoftKeyboard.h" #include "WispTipWnd.h" #include "Ripple.h" #include "Wisp3D.h" #include "WispTaskPanel.h" #include "WispOptionForm.h" #include "WispMenu.h" #include "WispMisc.h" #include "WispRGBSelect.h" #endif ================================================ FILE: Project/Wisp/Source/Wisp3D.cpp ================================================ #include "StdAfx.h" #include "Wisp3D.h" //*****************************clip_edges************************************ BYTE cross_code(WISP_WIN*win,char edge, VS_2D v1,VS_2D v2) { switch(edge) { case 0:{ if(v1.x>=win->min_x && v2.x>=win->min_x) return 0; if(v1.x< win->min_x && v2.x>=win->min_x) return 1; if(v1.x>=win->min_x && v2.x< win->min_x) return 2; if(v1.x< win->min_x && v2.x< win->min_x) return 3; } case 1:{ if(v1.x<=win->max_x && v2.x<=win->max_x) return 0; if(v1.x> win->max_x && v2.x<=win->max_x) return 1; if(v1.x<=win->max_x && v2.x> win->max_x) return 2; if(v1.x> win->max_x && v2.x> win->max_x) return 3; } case 2:{ if(v1.y>=win->min_y && v2.y>=win->min_y) return 0; if(v1.y< win->min_y && v2.y>=win->min_y) return 1; if(v1.y>=win->min_y && v2.y< win->min_y) return 2; if(v1.y< win->min_y && v2.y< win->min_y) return 3; } case 3:{ if(v1.y<=win->max_y && v2.y<=win->max_y) return 0; if(v1.y> win->max_y && v2.y<=win->max_y) return 1; if(v1.y<=win->max_y && v2.y> win->max_y) return 2; if(v1.y> win->max_y && v2.y> win->max_y) return 3; } default:return 0; } } VS_2D cross_v(WISP_WIN*win,char edge,VS_2D v1,VS_2D v2) { float m=0,edge_xy; VS_2D v; if(edge<2) { if(edge==0)edge_xy=(float)win->min_x; else edge_xy=(float)win->max_x; if(v1.x!=v2.x) m=(v2.y-v1.y)/(v2.x-v1.x); v.x=edge_xy; v.y=m*(v.x-v1.x)+v1.y; } else { if(edge==2)edge_xy=(float)win->min_y; else edge_xy=(float)win->max_y; if(v1.y!=v2.y)m=(v2.x-v1.x)/(v2.y-v1.y); v.y=edge_xy; v.x=m*(v.y-v1.y)+v1.x; } return v; } void copy_es_2d(ES_2D*se,ES_2D*de) { VS_2D*p1,*p2; p1=se->vp; p2=de->vp; for(unsigned n=0;n<=se->vn;n++) p2[n]=p1[n]; de->vn=se->vn; return; } void link_hd(ES_2D*e) { VS_2D*p=e->vp; p[e->vn]=p[0]; return; } void clipedges(WISP_WIN*win,ES_2D*sp) { BYTE code; VS_2D*svp,*dvp; ES_2D temp; unsigned tvn; svp=temp.vp; dvp=sp->vp; for(char edge=0;edge<4;edge++) { copy_es_2d(sp,&temp); link_hd(&temp); tvn=0; for(unsigned n=0;nvn=tvn; }//end for(edge) return; }//end fuction //**************************************************************** void wctovc(WISP_VIEW*view,VS_3D*vs) { float x,y,z; x=vs->x-view->ox; y=vs->y-view->oy; z=vs->z-view->oz; vs->x=view->u1*x+view->u2*y+view->u3*z; vs->y=view->v1*x+view->v2*y+view->v3*z; vs->z=view->w1*x+view->w2*y+view->w3*z; return; } void vcto2dc(WISP_VIEW*view,VS_3D *s,VS_2D *d) { float u; u=view->dp/(view->dp+s->z); d->x=s->x*u; d->y=s->y*u; return; } BYTE cross_code_3d(VS_3D v1,VS_3D v2) { if(v1.z>=0&&v2.z>=0)return 0; if(v1.z< 0&&v2.z>=0)return 1; if(v1.z>=0&&v2.z< 0)return 2; return 3; } VS_3D cross_v_3d(VS_3D v1,VS_3D v2) { float ux,uy; VS_3D res; ux=(v1.x-v2.x)/(v2.z-v1.z); uy=(v1.y-v2.y)/(v2.z-v1.z); res.x=ux*v1.z+v1.x; res.y=uy*v1.z+v1.y; res.z=0; return res; } void link_hd_3d(ES_3D*e) { VS_3D*p=e->vp; p[e->vn]=p[0]; return; } void copy_es_3d(ES_3D*se,ES_3D*de) { VS_3D*p1,*p2; p1=se->vp; p2=de->vp; for(unsigned n=0;n<=se->vn;n++) p2[n]=p1[n]; de->vn=se->vn; return; } void clip_z0_es_3d(ES_3D*sp) { BYTE code; unsigned tvn=0; ES_3D temp; copy_es_3d(sp,&temp); link_hd_3d(&temp); VS_3D*svp=temp.vp; VS_3D*dvp=sp->vp; for(unsigned n=0;nvn=tvn; return; } void clipwin_E3toE2(WISP_WIN*win,WISP_VIEW*view,ES_3D *s_p,ES_2D *d_p,CWispDC*pDC) { BYTE code1=0,code2=0; VS_3D*s_vp=s_p->vp; VS_2D*d_vp=d_p->vp; unsigned n; for( n=0;nvn;n++) wctovc(view,&s_vp[n]); for(n=0;nvn;n++) { if(s_vp[n].z<0)code2=1; else code1=1; } if(code1==1&&code2==1)clip_z0_es_3d(s_p); if(code2==1&&code1==0){d_p->vn=0;return;} for(n=0;nvn;n++) vcto2dc(view,&s_vp[n],&d_vp[n]); d_p->vn=s_p->vn; clipedges(win,d_p); for(n=0;nvn;n++) { d_vp[n].x+=pDC->m_pRect->cx/2; d_vp[n].y+=pDC->m_pRect->cy/2; } } void draw_edges(ES_2D*ep,COLORREF color,CWispDC*pDC) { float x1,y1,x2,y2; link_hd(ep); for(unsigned n=0;nvn;n++) { x1=ep->vp[n].x;y1=ep->vp[n].y; x2=ep->vp[n+1].x;y2=ep->vp[n+1].y; pDC->DrawLine((int)x1,(int)y1,(int)x2,(int)y2,color); } } void draw_obj(WISP_WIN*win,WISP_VIEW*view,OBJ *obj,COLORREF color,CWispDC*pDC) { ES_2D tes2D; ES_3D tes3D; for(unsigned n=0;nen;n++) { copy_es_3d(&(obj->ep[n]),&tes3D); clipwin_E3toE2(win,view,&tes3D,&tes2D,pDC); draw_edges(&tes2D,color,pDC); } } void draw_sky_ground(char sky,char ground) { return; } void change_view(WISP_VIEW*view,float rl,float du) { float x,y,cos_a,sin_a; if(rl!=0) { x=view->w1;y=view->w2; cos_a=cos(rl);sin_a=sin(rl); view->w1=x*cos_a-y*sin_a; view->w2=x*sin_a+y*cos_a; x=view->u1;y=view->u2; view->u1=x*cos_a-y*sin_a; view->u2=x*sin_a+y*cos_a; x=view->v1;y=view->v2; view->v1=x*cos_a-y*sin_a; view->v2=x*sin_a+y*cos_a; } return; } ================================================ FILE: Project/Wisp/Source/Wisp3D.h ================================================ #ifndef _WISP_3D_H_ #define _WISP_3D_H_ #include "WispDC.h" #define MAX_NV 30 #define MAX_NV_3D 30 struct VS_2D { float x; float y; }; struct VS_3D { float x; float y; float z; }; struct ES_2D { VS_2D vp[MAX_NV]; unsigned vn; }; struct ES_3D { VS_3D vp[MAX_NV_3D]; unsigned vn; }; struct OBJ { ES_3D *ep; unsigned en; }; struct WISP_WIN { int min_x; int min_y; int max_x; int max_y; }; struct WISP_VIEW { float dp; float ox,oy,oz; float u1,u2,u3; float v1,v2,v3; float w1,w2,w3; }; void draw_obj(WISP_WIN*win,WISP_VIEW*view,OBJ *obj,COLORREF color,CWispDC*pDC); void change_view(WISP_VIEW*view,float rl,float du); #endif ================================================ FILE: Project/Wisp/Source/WispBase.cpp ================================================ #include "StdAfx.h" #include "WispBase.h" #include "WispFont.h" #include "WispMsgBox.h" #include "DIBData.h" #define WND_MSG_CONDITION(pWnd) (m_pModalWnd ==NULL || pWnd->IsChildWndOf(m_pModalWnd) || pWnd==m_pModalWnd) CWispBase*gpCurWisp=NULL; CWispBase::CWispBase() { m_Metrics[WISP_SM_CAPTION_CY]=WISP_CAPTION_HEIGHT; m_Metrics[WISP_SM_CAPTION_BT_SIZE]=WISP_CAPTION_BT_SIZE; m_Metrics[WISP_SM_BORDER_SIZE]=WISP_BORDER_SIZE; m_Metrics[WISP_SM_THIN_BORDER_SIZE]=WISP_THIN_BORDER_SIZE; m_Metrics[WISP_SM_SCROLL_BAR_SIZE]=WISP_SCROLL_BORDER_SIZE; m_Metrics[WISP_SM_FONT_FRAME_HEIGHT]=WISP_FONT_FRAME_HEIGHT; m_Metrics[WISP_SM_RESIZE_SPACE]=WISP_RESIZE_SPACE; m_pRootWnd=NULL; ZeroMemory(m_PalColors,sizeof(m_PalColors)); STZeroMemory(m_FrameBuffer); memcpy(m_PalColors,m_DefColorPal,sizeof(m_PalColors)); m_bHideMouse = false; m_pszDiskList = NULL; m_bActive = false; GetModulePath(m_CurDir); m_DefaultFontType = WISP_FONT_6X12; m_iKeyboardLayer=0; } CWispBase::~CWispBase() { } bool CWispBase::Init() { int Length; PCSTR szBegin,szEnd; char szWispDatFN[MAX_FN_LEN],*szFileName; WISP_POINT pt; gpCurWisp=this; m_bActive = false; m_pCurDrawObj=NULL; m_KeySimulateMouse = false; /////////////////////////////////////////////////////////////////////////////////////////////////// //Open wisp data disk file /////////////////////////////////////////////////////////////////////////////////////////////////// if(m_pszDiskList==NULL) m_pszDiskList = "Wisp.dat"; m_PFSFileIO.ChangeFileIO(gpFileIO); Length=TStrCpy(szWispDatFN,m_CurDir); if(Length && szWispDatFN[Length-1]!=PATH_SEPARATOR_CHAR) TStrCat(szWispDatFN,PATH_SEPARATOR_STR); szFileName=&szWispDatFN[TStrLen(szWispDatFN)]; szBegin = m_pszDiskList; while(*szBegin) { szEnd = TStrChr(szBegin,';'); if(szEnd) { TStrCpyLimit(szFileName,szBegin,(int)(szEnd-szBegin)+1); szEnd++; } else { TStrCpy(szFileName,szBegin); szEnd = &szBegin[TStrLen(szBegin)]; } if(m_PFSFileIO.OpenDisk(szWispDatFN, #ifdef CODE_OS_NT_DRV PFS_FULL_DISK_CACHE|PFS_WRITE_COPY #else PFS_WRITE_COPY #endif )==false) { ReportMsg(WSTR("Error : Fail to open %s!\n"),szWispDatFN); m_PFSFileIO.CloseAllDisk(); return false; } szBegin = szEnd; } /////////////////////////////////////////////////////////////////////////////////////////////////// ZeroMemory(m_KeyMap,sizeof(m_KeyMap)); ZeroMemory(m_LockMap,sizeof(m_LockMap)); ZeroMemory(&m_MousePT,sizeof(m_MousePT)); ZeroMemory(&m_PrevMousePT,sizeof(m_PrevMousePT)); m_bUpdate=false; m_LockRef=0; m_DefDIB[WISP_DI_CARET].Create(2,12,WISP_DIB_TK_XOR); memcpy(m_DefDIB[WISP_DI_CARET].m_FrameBuffer.Buffer,BTCaret,m_DefDIB[WISP_DI_CARET].m_FrameBuffer.BufferSize); pt.x=pt.y=8; m_pRootWnd=NULL; m_bNeedUpdate=false; for(int n=0;nDestroy(); m_pRootWnd=NULL; } if(m_pCurDrawObj) m_pCurDrawObj->Release(); for(int n=0;nDrawCursorArrow(NULL,NULL); break; case WISP_CT_DRAG_ARROW: m_pCurDrawObj->DrawCursorDrag(NULL,NULL); break; case WISP_CT_RESIZE_VERT: m_pCurDrawObj->DrawCursorResizeVert(NULL,NULL); break; case WISP_CT_RESIZE_HORZ: m_pCurDrawObj->DrawCursorResizeHorz(NULL,NULL); break; case WISP_CT_RESIZE_LEFT_LEAN: m_pCurDrawObj->DrawCursorResizeLeftLean(NULL,NULL); break; case WISP_CT_RESIZE_RIGHT_LEAN: m_pCurDrawObj->DrawCursorResizeRightLean(NULL,NULL); break; default: if(pDIB) { if(pMouseHotPT) *pMouseHotPT = pDIB->m_HotPT; if(pMouseSize) { pMouseSize->cx = pDIB->Width(); pMouseSize->cy = pDIB->Height(); } } break; } } void CWispBase::ChangeHostCursor(IN NUM_PTR CursorData,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize) { } bool CWispBase::InsertTimerNotify(WISP_TIMER*pTimer) { return true; } bool CWispBase::RemoveTimerNotify(WISP_TIMER*pTimer) { return true; } void CWispBase::AdjustColor() { for(int n=0;nm_crSystem[n]=FindFitColor(m_pCurDrawObj->m_crSystem[n],m_PalColors); } } void CWispBase::OnFrameBufferBppChg(int Bpp) { m_FrameBuffer.Bpp = Bpp; switch(m_FrameBuffer.Bpp) { case 4: m_FrameBuffer.pDrawHAL = &m_DrawHAL4Bit; case 8: m_FrameBuffer.pDrawHAL = &m_DrawHAL8Bit; break; case 16: m_FrameBuffer.pDrawHAL = &m_DrawHAL16Bit; break; case 24: m_FrameBuffer.pDrawHAL = &m_DrawHAL24Bit; break; case 32: m_FrameBuffer.pDrawHAL = &m_DrawHAL32Bit; break; default: m_FrameBuffer.pDrawHAL = &m_NotSupportDrawHAL; break; } if(m_FrameBuffer.Bpp==8) { LoadPalette(); AdjustColor(); } } void CWispBase::SetMousePos(int x,int y) { m_PrevMousePT.x = m_MousePT.x = x; m_PrevMousePT.y = m_MousePT.y = y; } void CWispBase::LockUpdate() { m_LockRef++; } void CWispBase::UnlockUpdate() { if(m_LockRef>0) m_LockRef--; } void CWispBase::LockKey() { m_KeyLockRef++; } void CWispBase::UnlockKey() { if(m_KeyLockRef>0) m_KeyLockRef--; } void CWispBase::LockTimer() { m_TimerRef++; } void CWispBase::UnlockTimer() { if(m_TimerRef>0) m_TimerRef--; } COLORREF CWispBase::GetPalColor(int Index) { return m_PalColors[Index]; } bool CWispBase::SetPalColor(int Index,COLORREF Color) { m_PalColors[Index]=Color; return true; } void CWispBase::LoadPalette() { for(int n=0;n<256;n++) SetPalColor(n,m_PalColors[n]); } CWispDIB*CWispBase::GetDefDIB(IN UINT ID) { if(ID>=WISP_DI_COUNT) return NULL; return &m_DefDIB[ID]; } void CWispBase::ChangeCursorType(IN UINT DIBID) { if(m_CursorType==DIBID) return; m_CursorTypeBak = m_CursorType; m_CursorType = DIBID; m_pCursorDIBBak = m_pCursorDIB; m_pCursorDIB = NULL; ChangeCursor(m_CursorType,&m_MouseHotPT,&m_MouseSize,NULL); if(m_bHideMouse==false) RedrawNextTime(); } void CWispBase::ChangeCursorType(IN CWispDIB*pDIB) { if(m_pCursorDIB==pDIB) return; m_CursorTypeBak = m_CursorType; m_CursorType = WISP_CT_USER_DIB_TYPE; m_pCursorDIBBak = m_pCursorDIB; m_pCursorDIB = pDIB; ChangeCursor(m_CursorType,&m_MouseHotPT,&m_MouseSize,m_pCursorDIB); if(m_bHideMouse==false) RedrawNextTime(); } void CWispBase::ChangeHostCursorType(IN NUM_PTR CursorData) { m_CursorTypeBak = m_CursorType; m_CursorType = WISP_CT_USER_DATA_TYPE; ChangeHostCursor(CursorData,&m_MouseHotPT,&m_MouseSize); if(m_bHideMouse==false) RedrawNextTime(); } void CWispBase::RestorCursorType() { if(m_CursorType == WISP_CT_USER_DIB_TYPE) { m_pCursorDIB = m_pCursorDIBBak; } else if(m_CursorType == WISP_CT_USER_DATA_TYPE) { m_pCursorDIB = NULL; } m_CursorType = m_CursorTypeBak; m_pCursorDIB = m_pCursorDIBBak; ChangeCursor(m_CursorType,&m_MouseHotPT,&m_MouseSize,m_pCursorDIB); if(m_bHideMouse==false) RedrawNextTime(); } void CWispBase::BeginMoveWnd(CWispBaseWnd*pWnd) { WISP_MSG Msg; if(pWnd==NULL) pWnd = m_pRootWnd; Msg.hWnd = pWnd; Msg.Msg = WISP_WM_BEGIN_MOVE; m_pMoveWnd = pWnd; m_pMoveWnd->m_State|=WISP_WST_MOVING; SendMessage(&Msg); } void CWispBase::EndMoveWnd() { WISP_MSG Msg; if(m_pMoveWnd==NULL || m_pMoveWnd->IsWindow()==false) return; Msg.hWnd = m_pMoveWnd; Msg.Msg = WISP_WM_END_MOVE; m_pMoveWnd->m_State&=~WISP_WST_MOVING; SendMessage(&Msg); m_pMoveWnd = NULL; } void CWispBase::OnMousePosChg(IN int PosX,IN int PosY) { WISP_INPUT_MSG*pMsg = m_InputMsgQueue.Append(); pMsg->InputMsg = WISP_INPUT_MOUSE_POS_CHG; pMsg->MousePosChg.PosX = PosX; pMsg->MousePosChg.PosY = PosY; } void CWispBase::DispatchMousePosChg(IN int PosX,IN int PosY) { UINT HitAreaType,HitCtrlType,HitReizeAreaType; WISP_MSG Msg; CWispWnd*pScrollWnd; CWispBaseWnd*pWispWnd; int DeltaX,DeltaY; if(m_MousePT.x==PosX && m_MousePT.y==PosY) return; m_MousePT.x=PosX; m_MousePT.y=PosY; //CODE_DEBUG_OUTPUT("x = %d,y = %d\n",m_MousePT.x,m_MousePT.y); if(m_MousePT.x<0) m_MousePT.x=0; if(m_MousePT.y<0) m_MousePT.y=0; if(m_MousePT.x>=m_FrameBuffer.Width) m_MousePT.x=m_FrameBuffer.Width-1; if(m_MousePT.y>=m_FrameBuffer.Height) m_MousePT.y=m_FrameBuffer.Height-1; DeltaX = m_MousePT.x-m_PrevMousePT.x; DeltaY = m_MousePT.y-m_PrevMousePT.y; m_PrevMousePT=m_MousePT; if(m_bHideMouse==false) RedrawNextTime(); if(m_pMoveWnd && (m_pMoveWnd->m_State&WISP_WST_MOVING)) { m_pMoveWnd->Move(DeltaX,DeltaY); goto ExitOnMousePosChg; } pWispWnd=WindowFromPoint(&m_MousePT,m_pRootWnd); CODE_ASSERT(pWispWnd); if(pWispWnd==NULL) goto ExitOnMousePosChg; if(pWispWnd==NULL || pWispWnd->IsDisabled()) goto ExitOnMousePosChg; if(gpCurWisp->m_pDragWnd==m_pMouseEventWnd) { WISP_MSG Msg; Msg.hWnd = m_pMouseEventWnd; Msg.Msg = WISP_WM_DRAG_MOVE; Msg.DragEvent.BeginMouseWndPT = m_BeginPT; Msg.DragEvent.DeltaX = DeltaX; Msg.DragEvent.DeltaY = DeltaY; gpCurWisp->SendMessage(&Msg); goto ExitOnMousePosChg; } if(pWispWnd->m_State&WISP_WST_SIZING) { pWispWnd->Move( -DeltaX*((CWispWnd*)pWispWnd)->m_SignResizeX,-DeltaY*((CWispWnd*)pWispWnd)->m_SignResizeY); if(((CWispWnd*)pWispWnd)->Resize( pWispWnd->m_WindowRect.cx-DeltaX*((CWispWnd*)pWispWnd)->m_SignResizeDX, pWispWnd->m_WindowRect.cy-DeltaY*((CWispWnd*)pWispWnd)->m_SignResizeDY)==false) { m_pMouseEventWnd->m_State&=~WISP_WST_SIZING; ChangeCursorType(WISP_CT_ARROW); } goto ExitOnMousePosChg; } if(pWispWnd!=m_pMouseEventWnd) { if(m_pMouseEventWnd->m_State&WISP_WST_MOVING) { m_pMouseEventWnd->Move(DeltaX,DeltaY); goto ExitOnMousePosChg; } if(m_pMouseEventWnd->m_State&WISP_WST_SIZING) { m_pMouseEventWnd->Move( -DeltaX*((CWispWnd*)m_pMouseEventWnd)->m_SignResizeX,-DeltaY*((CWispWnd*)m_pMouseEventWnd)->m_SignResizeY); if(((CWispWnd*)m_pMouseEventWnd)->Resize( m_pMouseEventWnd->m_WindowRect.cx-DeltaX*((CWispWnd*)m_pMouseEventWnd)->m_SignResizeDX, m_pMouseEventWnd->m_WindowRect.cy-DeltaY*((CWispWnd*)m_pMouseEventWnd)->m_SignResizeDY)==false) { m_pMouseEventWnd->m_State&=~WISP_WST_SIZING; ChangeCursorType(WISP_CT_ARROW); } goto ExitOnMousePosChg; } Msg.hWnd = pWispWnd; Msg.Msg = WISP_WM_HIT_TEST; Msg.HitTest.bKeyDown=m_KeyMap[WISP_VK_LBUTTON]; Msg.HitTest.HitAreaType = WISP_HIT_WND_NON; Msg.HitTest.HitCtrlType = WISP_HIT_CTRL_NON; SendMessage(&Msg); HitAreaType = Msg.HitTest.HitAreaType; HitCtrlType = Msg.HitTest.HitCtrlType; if((m_pMouseEventWnd->m_Style&WISP_WS_ADV_WND) && ((CWispWnd*)m_pMouseEventWnd)->m_bInResizeArea) ChangeCursorType(WISP_CT_ARROW); Msg.hWnd=m_pMouseEventWnd; Msg.Msg=WISP_WM_MOUSE_LEAVE; if(m_pMouseEventWnd->m_Style & WISP_WS_ADV_WND) { pScrollWnd = (CWispWnd*)m_pMouseEventWnd; if(pScrollWnd->m_ScrollBar[WISP_SB_VERT] && pScrollWnd->m_ScrollBar[WISP_SB_VERT]->State == STATUS_DOWN) { Msg.Msg = WISP_WM_VERT_SCROLL_MOVE; } else if(pScrollWnd->m_ScrollBar[WISP_SB_HORZ] && pScrollWnd->m_ScrollBar[WISP_SB_HORZ]->State == STATUS_DOWN) { Msg.Msg = WISP_WM_HORZ_SCROLL_MOVE; } } Msg.MouseEvent.HitAreaType=HitAreaType; Msg.MouseEvent.HitCtrlType=HitCtrlType; Msg.MouseEvent.hWndMouseAt=pWispWnd; Msg.MouseEvent.DeltaX=DeltaX; Msg.MouseEvent.DeltaY=DeltaY; Msg.MouseEvent.DeltaZ=0; SendMessage(&Msg); if(m_pMouseEventWnd==pWispWnd) { Msg.hWnd=m_pMouseEventWnd; Msg.Msg=WISP_WM_MOUSE_ENTER; SendMessage(&Msg); } goto ExitOnMousePosChg; } if(WND_MSG_CONDITION(pWispWnd)) { Msg.hWnd = pWispWnd; Msg.Msg = WISP_WM_HIT_TEST; Msg.HitTest.bKeyDown = false; Msg.HitTest.HitAreaType = WISP_HIT_WND_NON; Msg.HitTest.HitCtrlType = WISP_HIT_CTRL_NON; SendMessage(&Msg); HitAreaType = Msg.HitTest.HitAreaType; HitCtrlType = Msg.HitTest.HitCtrlType; HitReizeAreaType = Msg.HitTest.HitAreaType & WISP_HIT_WND_RESIZE_MASK; if(HitReizeAreaType) { switch(HitReizeAreaType) { case WISP_HIT_WND_RESIZE_LEFT: case WISP_HIT_WND_RESIZE_RIGHT: HitReizeAreaType = WISP_CT_RESIZE_HORZ; break; case WISP_HIT_WND_RESIZE_TOP: case WISP_HIT_WND_RESIZE_BOTTOM: HitReizeAreaType = WISP_CT_RESIZE_VERT; break; case WISP_HIT_WND_RESIZE_LEFT|WISP_HIT_WND_RESIZE_TOP: case WISP_HIT_WND_RESIZE_RIGHT|WISP_HIT_WND_RESIZE_BOTTOM: HitReizeAreaType = WISP_CT_RESIZE_LEFT_LEAN; break; case WISP_HIT_WND_RESIZE_LEFT|WISP_HIT_WND_RESIZE_BOTTOM: case WISP_HIT_WND_RESIZE_RIGHT|WISP_HIT_WND_RESIZE_TOP: HitReizeAreaType = WISP_CT_RESIZE_RIGHT_LEAN; break; } if(m_pMouseEventWnd->m_Style&WISP_WS_ADV_WND) { ((CWispWnd*)m_pMouseEventWnd)->m_bInResizeArea=true; ChangeCursorType(HitReizeAreaType); } } else { if( (m_pMouseEventWnd->m_Style&WISP_WS_ADV_WND) && ((CWispWnd*)m_pMouseEventWnd)->m_bInResizeArea) { ChangeCursorType(WISP_CT_ARROW); ((CWispWnd*)m_pMouseEventWnd)->m_bInResizeArea=false; } } Msg.hWnd=pWispWnd; Msg.Msg=WISP_WM_MOUSE_MOVE; Msg.MouseEvent.HitAreaType = HitAreaType; Msg.MouseEvent.HitCtrlType = HitCtrlType; Msg.MouseEvent.hWndMouseAt=pWispWnd; Msg.MouseEvent.DeltaX=DeltaX; Msg.MouseEvent.DeltaY=DeltaY; Msg.MouseEvent.DeltaZ=0; if(m_MouseMoveHookWndList.Count()) { for(CWndList::IT Iter = m_MouseMoveHookWndList.Begin();Iter!=m_MouseMoveHookWndList.End();Iter++) { if(*Iter!=Msg.hWnd) { Msg.hWnd = *Iter; if(SendMessage(&Msg)==false) goto ExitOnMousePosChg; } } } Msg.hWnd=pWispWnd; if(pWispWnd->m_Style & WISP_WS_ADV_WND) { pScrollWnd = (CWispWnd*)pWispWnd; if(pScrollWnd->m_ScrollBar[WISP_SB_VERT] && pScrollWnd->m_ScrollBar[WISP_SB_VERT]->State == STATUS_DOWN) Msg.Msg = WISP_WM_VERT_SCROLL_MOVE; else if(pScrollWnd->m_ScrollBar[WISP_SB_HORZ] && pScrollWnd->m_ScrollBar[WISP_SB_HORZ]->State == STATUS_DOWN) Msg.Msg = WISP_WM_HORZ_SCROLL_MOVE; } SendMessage(&Msg); } ExitOnMousePosChg: return; } void CWispBase::OnMouseMove(IN int DeltaX,IN int DeltaY) { WISP_INPUT_MSG*pMsg=m_InputMsgQueue.Append(); pMsg->InputMsg = WISP_INPUT_MOUSE_MOVE; pMsg->MouseMove.DeltaX = DeltaX; pMsg->MouseMove.DeltaY = DeltaY; } void CWispBase::DispatchMouseMove(IN int DeltaX,IN int DeltaY) { int NewPosX,NewPosY; NewPosX=m_MousePT.x+DeltaX; NewPosY=m_MousePT.y+DeltaY; OnMousePosChg(NewPosX,NewPosY); } void CWispBase::OnMouseWheel(IN int DeltaZ) { WISP_INPUT_MSG*pMsg=m_InputMsgQueue.Append(); pMsg->InputMsg = WISP_INPUT_MOUSE_WHEEL; pMsg->MouseWheel.DeltaZ = DeltaZ; } void CWispBase::DispatchMouseWheel(IN int DeltaZ) { if(m_pFocusWnd==NULL) return; WISP_MSG Msg; Msg.hWnd = m_pFocusWnd; Msg.Msg = WISP_WM_MOUSE_WHEEL; Msg.MouseEvent.DeltaX = 0; Msg.MouseEvent.DeltaY = 0; Msg.MouseEvent.DeltaZ = DeltaZ; Msg.MouseEvent.HitAreaType = WISP_HIT_WND_NON; Msg.MouseEvent.HitCtrlType = WISP_HIT_CTRL_NON; Msg.MouseEvent.hWndMouseAt = m_pFocusWnd; SendMessage(&Msg); } void CWispBase::OnMouseButtonDBClick(UINT KeyType) { WISP_INPUT_MSG*pMsg=m_InputMsgQueue.Append(); pMsg->InputMsg = WISP_INPUT_MOUSE_BT_DB_CLICK; pMsg->MouseBTDBClick.KeyType = KeyType; } void CWispBase::DispatchMouseButtonDBClick(UINT KeyType) { WISP_MSG Msg; if(m_pFocusWnd==NULL) return; switch(m_LastMouseClickHitAreaType) { case WISP_HIT_WND_CLIENT: case WISP_HIT_WND_NON_CLIENT: Msg.hWnd = m_pFocusWnd; Msg.Msg = WISP_WM_MOUSE_DBCLICK; Msg.KeyEvent.bKeyDown = true; Msg.KeyEvent.ScanCode = 0; Msg.KeyEvent.KeyType = KeyType; Msg.KeyEvent.HitAreaType = m_LastMouseClickHitAreaType; Msg.KeyEvent.HitCtrlType = m_LastMouseClickHitCtrlType; SendMessage(&Msg); break; } } void CWispBase::OnKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode) { WISP_INPUT_MSG*pMsg=m_InputMsgQueue.Append(); pMsg->InputMsg = WISP_INPUT_KEY_EVENT; pMsg->KeyEvent.KeyType = KeyType; pMsg->KeyEvent.bKeyDown = bKeyDown; pMsg->KeyEvent.ScanCode = ScanCode; } void CWispBase::DispatchKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode) { if(m_KeyLockRef) return; if(KeyType>WISP_VK_KEYBOARD_START) OnProcessKeyEvent(KeyType,bKeyDown,ScanCode); else OnProcessMouseKeyEvent(KeyType,bKeyDown,ScanCode); } void CWispBase::OnTimer(int MilliSec) { WISP_INPUT_MSG*pMsg=m_InputMsgQueue.Append(); pMsg->InputMsg = WISP_INPUT_TIMER; pMsg->Timer.MilliSec = MilliSec; } void CWispBase::DispatchTimer(int MilliSec) { WISP_CHAR Char; WISP_MSG Msg; WISP_TIMER*pTimer; WISP_TIMER_KEY*pTimerKey; CWispBaseWnd*pMsgWnd; if(m_TimerRef>0) return; if(m_RepKeyIndex!=WISP_VK_NULL) { m_RepKeyElapse+=MilliSec; if(m_KeySimulateMouse) KeySimulateMouse(m_RepKeyIndex,true); if(m_RepKeyElapse>=m_RepKeyPeriod) { m_RepKeyElapse-=m_RepKeyPeriod; if(m_RepKeyIndexPeriod) { pTimer->Elapse+=MilliSec; if(pTimer->Elapse>pTimer->Period) { pTimer->Elapse-=pTimer->Period; Msg.hWnd = pTimerKey->hWnd; Msg.Msg = WISP_WM_TIMER; Msg.Timer.ID = pTimerKey->ID; Msg.Timer.UserData = pTimer->UserData; Msg.Timer.UserPtr = pTimer->UserPtr; SendMessage(&Msg); } } } } WISP_CHAR CWispBase::IsCharKey(IN UINT KeyType) { bool bLowCase=true; if(m_KeyMap[WISP_VK_SHIFT]) bLowCase=!bLowCase; if(m_LockMap[WISP_VK_CAPS_LOCK]) bLowCase=!bLowCase; return (WISP_CHAR)m_VKKeyChar[m_iKeyboardLayer][KeyType*2+bLowCase]; } bool CWispBase::KeySimulateMouse(IN UINT KeyType,IN bool bKeyDown) { int x,y; x=y=0; switch(KeyType) { case WISP_VK_PAGE_UP: case WISP_VK_END: DispatchKeyEvent(WISP_VK_LBUTTON,bKeyDown,0); return true; case WISP_VK_PAGE_DOWN: DispatchKeyEvent(WISP_VK_RBUTTON,bKeyDown,0); return true; case WISP_VK_UP: case WISP_VK_DOWN: case WISP_VK_LEFT: case WISP_VK_RIGHT: if(m_KeyMap[WISP_VK_UP]) y=-m_KeySimDelta; if(m_KeyMap[WISP_VK_DOWN]) y = m_KeySimDelta; if(m_KeyMap[WISP_VK_LEFT]) x = -m_KeySimDelta; if(m_KeyMap[WISP_VK_RIGHT]) x += m_KeySimDelta; if(m_KeySimDelta<20) m_KeySimDelta++; break; default: return false; } DispatchMousePosChg(m_PrevMousePT.x+x,m_PrevMousePT.y+y); return true; } bool CWispBase::OnProcessKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode) { WISP_CHAR Char; WISP_MSG Msg; CWispBaseWnd*pMsgWnd; #ifdef WISP_TIMER_SIM_KEY_REPEAT if(m_KeyMap[KeyType]==bKeyDown) return false; #endif pMsgWnd = m_pFocusWnd; if(pMsgWnd==NULL) return false; if(WND_MSG_CONDITION(pMsgWnd)==false) pMsgWnd=m_pModalWnd; m_KeyMap[KeyType]=bKeyDown; if(KeyType == WISP_VK_LSHIFT || KeyType == WISP_VK_RSHIFT) { m_KeyMap[WISP_VK_SHIFT] = m_KeyMap[WISP_VK_LSHIFT] | m_KeyMap[WISP_VK_RSHIFT]; } if(KeyType == WISP_VK_LALT || KeyType == WISP_VK_RALT) { m_KeyMap[WISP_VK_ALT] = m_KeyMap[WISP_VK_LALT] | m_KeyMap[WISP_VK_RALT]; } if(KeyType == WISP_VK_LCONTROL || KeyType == WISP_VK_RCONTROL) { m_KeyMap[WISP_VK_CONTROL] = m_KeyMap[WISP_VK_LCONTROL] | m_KeyMap[WISP_VK_RCONTROL]; } if(m_KeyMap[WISP_VK_SHIFT]) m_ModKeyState |= WISP_MOD_SHIFT; else m_ModKeyState &= ~WISP_MOD_SHIFT; if(m_KeyMap[WISP_VK_ALT]) m_ModKeyState |= WISP_MOD_ALT; else m_ModKeyState &= ~WISP_MOD_ALT; if(m_KeyMap[WISP_VK_CONTROL]) m_ModKeyState |= WISP_MOD_CTRL; else m_ModKeyState &= ~WISP_MOD_CTRL; if(m_KeySimulateMouse) { if(bKeyDown) { if(KeyType!=WISP_VK_END && KeyType!=WISP_VK_PAGE_DOWN && KeyType!=WISP_VK_PAGE_UP) { m_RepKeyIndex = KeyType; m_RepKeyElapse = 0; m_RepKeyPeriod = WISP_KEY_REPEAT_DELAY; m_KeySimDelta = 1; } } else { if(m_RepKeyIndex==KeyType) m_RepKeyIndex = WISP_VK_NULL; } if(KeySimulateMouse(KeyType,bKeyDown)) return true; } if(bKeyDown && m_HotKeyList.Count()) { for(CHotKeyList::IT Iter = m_HotKeyList.Begin();Iter!=m_HotKeyList.End();Iter++) { if(Iter->KeyType == KeyType && (Iter->Modifier==0 || Iter->Modifier == m_ModKeyState) ) { WISP_MSG Msg; Msg.hWnd = Iter->hWnd; Msg.Msg = WISP_WM_EVENT; Msg.Command.CmdID = Iter->EventID; Msg.Command.CmdMsg = WISP_CMD_HOTKEY; if(Iter->Style & WISP_HKS_CHILD_WND) { if(pMsgWnd->IsChildWndOf(Msg.hWnd)==false && pMsgWnd!=Msg.hWnd) continue; } SendMessage(&Msg); } } } Msg.hWnd = pMsgWnd; Msg.Msg = WISP_WM_KEY_EVENT; Msg.KeyEvent.KeyType = KeyType|m_ModKeyState; Msg.KeyEvent.bKeyDown = bKeyDown; Msg.KeyEvent.ScanCode = ScanCode; if(m_KeyHookWndList.Count()) { for(CWndList::IT Iter = m_KeyHookWndList.Begin();Iter!=m_KeyHookWndList.End();Iter++) { if(*Iter!=Msg.hWnd) { Msg.hWnd = *Iter; SendMessage(&Msg); } } } if(pMsgWnd->IsDisabled()==false) { Msg.hWnd = pMsgWnd; if(SendMessage(&Msg)==false) return true; } if(bKeyDown) { if(m_KeyMap[WISP_VK_CONTROL] && m_KeyMap[WISP_VK_ALT]) { if(m_KeyMap[WISP_VK_F1]) { SelectDrawObject(&m_DefDrawObj); m_pRootWnd->Update(); } else if(m_KeyMap[WISP_VK_F2]) { SelectDrawObject(&m_DIBDrawObj); m_pRootWnd->Update(); } } #ifdef WISP_TIMER_SIM_KEY_REPEAT m_RepKeyIndex = KeyType; m_RepKeyElapse = 0; m_RepKeyPeriod = WISP_KEY_REPEAT_DELAY; #endif if(m_ModKeyState==0 || m_ModKeyState==WISP_MOD_SHIFT) { switch(KeyType) { case WISP_VK_CAPITAL: m_LockMap[WISP_VK_CAPS_LOCK]=!m_LockMap[WISP_VK_CAPS_LOCK]; break; } Char=IsCharKey(KeyType); if(Char) { pMsgWnd = m_pFocusWnd; if(WND_MSG_CONDITION(pMsgWnd)==false) pMsgWnd=m_pModalWnd; Msg.hWnd = pMsgWnd; Msg.Msg = WISP_WM_CHAR; Msg.Char.Char=Char; Msg.Char.nRepeat=1; PostMessage(&Msg); for(CWndList::IT Iter = m_KeyHookWndList.Begin();Iter!=m_KeyHookWndList.End();Iter++) { if(*Iter!=Msg.hWnd) { Msg.hWnd = *Iter; PostMessage(&Msg); } } } } } else { #ifdef WISP_TIMER_SIM_KEY_REPEAT if(m_RepKeyIndex == KeyType) m_RepKeyIndex = WISP_VK_NULL; #endif } return true; } bool CWispBase::OnProcessMouseKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode) { UINT HitAreaType,HitCtrlType; CWispBaseWnd*pMsgWnd; WISP_MSG Msg; m_KeyMap[KeyType]=bKeyDown; if(m_pMoveWnd && (m_pMoveWnd->m_State&WISP_WST_MOVING) && KeyType == WISP_VK_LBUTTON && bKeyDown==false) { EndMoveWnd(); return true; } if(KeyType == WISP_VK_LBUTTON && bKeyDown) { pMsgWnd=WindowFromPoint(&m_MousePT,m_pRootWnd); if(WND_MSG_CONDITION(pMsgWnd)==false) pMsgWnd=m_pModalWnd; CODE_ASSERT(pMsgWnd); if(pMsgWnd==NULL) return false; if(pMsgWnd->IsDisabled()) return true; if(pMsgWnd!=m_pFocusWnd) pMsgWnd->Focus(); Msg.hWnd = pMsgWnd; } else { pMsgWnd = m_pMouseEventWnd; if(WND_MSG_CONDITION(pMsgWnd)==false) pMsgWnd=m_pModalWnd; if(pMsgWnd->IsDisabled()) return true; Msg.hWnd = pMsgWnd; } if(bKeyDown) { if(Msg.hWnd->m_AdvStyle & WISP_WAS_DRAG_WND) { if((pMsgWnd->m_State&(WISP_WST_MOVING|WISP_WST_MAX))==0) { pMsgWnd->m_State|=WISP_WST_MOVING; Msg.Msg = WISP_WM_BEGIN_MOVE; SendMessage(&Msg); } } else if(Msg.hWnd->m_Style & WISP_WS_ADV_WND) { Msg.Msg = WISP_WM_HIT_TEST; Msg.HitTest.bKeyDown=bKeyDown; Msg.HitTest.HitAreaType = WISP_HIT_WND_NON; Msg.HitTest.HitCtrlType = WISP_HIT_CTRL_NON; SendMessage(&Msg); m_LastMouseClickHitAreaType = Msg.HitTest.HitAreaType; m_LastMouseClickHitCtrlType = Msg.HitTest.HitCtrlType; switch(Msg.HitTest.HitAreaType) { case WISP_HIT_WND_CLIENT: case WISP_HIT_WND_NON_CLIENT: HitAreaType = Msg.HitTest.HitAreaType; HitCtrlType = Msg.HitTest.HitCtrlType; Msg.KeyEvent.HitAreaType = HitAreaType; Msg.KeyEvent.HitCtrlType = HitCtrlType; Msg.KeyEvent.KeyType = KeyType; Msg.KeyEvent.bKeyDown = bKeyDown; Msg.KeyEvent.ScanCode = ScanCode; Msg.Msg = WISP_WM_KEY_EVENT; SendMessage(&Msg); break; case WISP_HIT_WND_MOVE: if(KeyType == WISP_VK_LBUTTON && (pMsgWnd->m_State&(WISP_WST_MOVING|WISP_WST_MAX))==0) { BeginMoveWnd(pMsgWnd); } break; default: if(KeyType == WISP_VK_LBUTTON && (Msg.HitTest.HitAreaType & WISP_HIT_WND_RESIZE_MASK)) { ((CWispWnd*)pMsgWnd)->m_SignResizeX= ((CWispWnd*)pMsgWnd)->m_SignResizeDX= ((CWispWnd*)pMsgWnd)->m_SignResizeY= ((CWispWnd*)pMsgWnd)->m_SignResizeDY=0; if(Msg.HitTest.HitAreaType & WISP_HIT_WND_RESIZE_LEFT) { ((CWispWnd*)pMsgWnd)->m_SignResizeX=-1; ((CWispWnd*)pMsgWnd)->m_SignResizeDX=1; } if(Msg.HitTest.HitAreaType & WISP_HIT_WND_RESIZE_RIGHT) { ((CWispWnd*)pMsgWnd)->m_SignResizeX=0; ((CWispWnd*)pMsgWnd)->m_SignResizeDX=-1; } if(Msg.HitTest.HitAreaType & WISP_HIT_WND_RESIZE_TOP) { ((CWispWnd*)pMsgWnd)->m_SignResizeY=-1; ((CWispWnd*)pMsgWnd)->m_SignResizeDY=1; } if(Msg.HitTest.HitAreaType & WISP_HIT_WND_RESIZE_BOTTOM) { ((CWispWnd*)pMsgWnd)->m_SignResizeY=0; ((CWispWnd*)pMsgWnd)->m_SignResizeDY=-1; } pMsgWnd->m_State|=WISP_WST_SIZING; } break; } } else {//Wnd is CWispBaseWnd Msg.Msg = WISP_WM_HIT_TEST; Msg.HitTest.bKeyDown=bKeyDown; Msg.HitTest.HitAreaType = WISP_HIT_WND_NON; Msg.HitTest.HitCtrlType = WISP_HIT_CTRL_NON; SendMessage(&Msg); Msg.Msg = WISP_WM_KEY_EVENT; HitAreaType = Msg.HitTest.HitAreaType; HitCtrlType = Msg.HitTest.HitCtrlType; Msg.KeyEvent.HitAreaType = Msg.HitTest.HitAreaType; Msg.KeyEvent.HitCtrlType = Msg.HitTest.HitCtrlType; Msg.KeyEvent.KeyType = KeyType; Msg.KeyEvent.bKeyDown = bKeyDown; Msg.KeyEvent.ScanCode = ScanCode; /* if(m_KeyHookWndList.Count()) { for(CWndList::IT Iter = m_KeyHookWndList.Begin();Iter!=m_KeyHookWndList.End();Iter++) { if(*Iter!=Msg.hWnd) { Msg.hWnd = *Iter; SendMessage(&Msg); } } }*/ Msg.hWnd = pMsgWnd; SendMessage(&Msg); } } else {//bKeyDown is false if(m_RepKeyIndex == KeyType) m_RepKeyIndex = WISP_VK_NULL; Msg.Msg = WISP_WM_HIT_TEST; Msg.HitTest.bKeyDown = bKeyDown; Msg.HitTest.HitAreaType = WISP_HIT_WND_NON; Msg.HitTest.HitCtrlType = WISP_HIT_CTRL_NON; SendMessage(&Msg); HitAreaType = Msg.HitTest.HitAreaType; HitCtrlType = Msg.HitTest.HitCtrlType; Msg.KeyEvent.HitAreaType = HitAreaType; Msg.KeyEvent.HitCtrlType = HitCtrlType; Msg.KeyEvent.KeyType = KeyType; Msg.KeyEvent.bKeyDown = bKeyDown; Msg.KeyEvent.ScanCode = ScanCode; Msg.Msg = WISP_WM_KEY_EVENT; /* if(m_KeyHookWndList.Count()) { for(CWndList::IT Iter = m_KeyHookWndList.Begin();Iter!=m_KeyHookWndList.End();Iter++) { if(*Iter!=Msg.hWnd) { Msg.hWnd = *Iter; SendMessage(&Msg); } } }*/ Msg.hWnd = pMsgWnd; SendMessage(&Msg); if(KeyType == WISP_VK_LBUTTON) { if(pMsgWnd->m_State&WISP_WST_SIZING) { pMsgWnd->m_State&=~WISP_WST_SIZING; ChangeCursorType(WISP_CT_ARROW); } } } return true; } void CWispBase::StartMouseKeyRep(UINT RepKeyIndex) { if(m_RepKeyIndex==RepKeyIndex) return; m_RepKeyIndex = RepKeyIndex; m_RepKeyElapse = 0; m_RepKeyPeriod = WISP_MOUSE_KEY_REPEAT_DELAY; } void CWispBase::StopMouseKeyRep() { m_RepKeyIndex = WISP_VK_NULL; } void CWispBase::UpdateCursor() { if(m_bHideMouse==false) { m_pRootWnd->m_pUpdateRect = &m_pRootWnd->m_WindowRect; m_pCurDrawObj->DrawCursor(&m_MousePT, &m_pRootWnd->m_WindowDC,m_CursorType,m_pCursorDIB); m_pRootWnd->m_pUpdateRect = NULL; } } int CWispBase::GetMetrics(IN UINT Type) { if(Type>=WISP_SM_COUNT) return 0; return m_Metrics[Type]; } void CWispBase::UpdateFrameBuffer() { WISP_RECT Rect; WISP_MSG Msg; if(m_pRootWnd==NULL) return; Msg.hWnd=m_pRootWnd; if(Msg.hWnd->m_pUpdateRect) Rect = *Msg.hWnd->m_pUpdateRect; else if(m_bHideMouse) goto ExitUpdateFrameBuffer; if(m_bHideMouse==false) { WISP_RECT MouseRC; MouseRC.x = m_MousePT.x - m_MouseHotPT.x; MouseRC.y = m_MousePT.y - m_MouseHotPT.y; MouseRC.cx = m_MouseSize.cx; MouseRC.cy = m_MouseSize.cy; MergeRect(&MouseRC,&m_LastMouseRect); Msg.hWnd->UpdateSelfAndChild(&m_LastMouseRect); if(Msg.hWnd->m_pUpdateRect==NULL) goto ExitUpdateFrameBuffer; Rect = *Msg.hWnd->m_pUpdateRect; m_LastMouseRect = MouseRC; } BeginDraw(&Rect); Msg.Msg=WISP_WM_UPDATE; SendMessage(&Msg); UpdateCursor(); EndDraw(&Rect); ExitUpdateFrameBuffer: return; } void CWispBase::RedrawNextTime() { if(m_bNeedUpdate) return; m_bNeedUpdate=true; if(m_bMsgSleeping) { m_bMsgSleeping = false; WakeUpMsgThread(); } } void CWispBase::SendLanguageChangeNotify(CWispBaseWnd*pParentWnd) { CWispBaseWnd*pChildWnd; WISP_MSG Msg; if(pParentWnd==NULL) pParentWnd=m_pRootWnd; Msg.hWnd=pParentWnd; Msg.Msg=WISP_WM_COMMAND; Msg.Command.CmdID=WISP_CMD_LANGUAGE_CHANGE; if(SendMessage(&Msg)==false) return; pChildWnd=pParentWnd->m_ChildWnd; while(pChildWnd) { SendLanguageChangeNotify(pChildWnd); pChildWnd=pChildWnd->m_NextWnd; } return ; } CWispBaseWnd* CWispBase::WindowFromPoint(IN WISP_POINT*pPoint,IN CWispBaseWnd*pParentWnd) { CWispBaseWnd*pChildWnd,*pWnd; if(pParentWnd==NULL) pParentWnd=m_pRootWnd; if(pParentWnd->IsScrPtIn(pPoint)==false) return NULL; pChildWnd=pParentWnd->m_ChildTopWnd; while(pChildWnd) { if(pChildWnd->m_ShowMode!=WISP_SH_HIDDEN && pChildWnd->m_CtrlType != WISP_CTRL_STATIC_GROUP) {//WindowFromPointStaticGroup if(pParentWnd->IsScrPtIn(pPoint)&&pChildWnd->IsScrPtIn(pPoint)) { pWnd = WindowFromPoint(pPoint,pChildWnd); if((pChildWnd->m_Style & WISP_WS_VIRTUAL)==0) return pWnd; if(pWnd && pWnd != pChildWnd) return pWnd; } } pChildWnd=pChildWnd->m_PrevWnd; } if(pParentWnd->m_Style & WISP_WS_VIRTUAL) return NULL; return pParentWnd; } void CWispBase::InsertWnd(IN CWispBaseWnd*pParentWnd,IN CWispBaseWnd*pNewWnd) { CWispBaseWnd*pLastWnd; if(m_pRootWnd==pNewWnd) return; if(pParentWnd==NULL) pParentWnd=m_pRootWnd; pLastWnd=pParentWnd->m_ChildWnd; if(pNewWnd->m_Style & WISP_WS_ADV_WND) m_WndCount++; else m_BaseWndCount++; if(pLastWnd==NULL) { pParentWnd->m_ChildTopWnd=pParentWnd->m_ChildWnd=pNewWnd; pNewWnd->m_NextWnd=pNewWnd->m_PrevWnd=NULL; pNewWnd->m_ParentWnd=pParentWnd; return; } pLastWnd=pParentWnd->m_ChildTopWnd; pNewWnd->m_NextWnd=NULL; pLastWnd->m_NextWnd=pNewWnd; pNewWnd->m_PrevWnd=pLastWnd; pNewWnd->m_ParentWnd=pParentWnd; pParentWnd->m_ChildTopWnd=pNewWnd; if(pParentWnd==m_pRootWnd && pNewWnd!=gpCurWisp->m_pTopMostRootWnd) gpCurWisp->m_pTopMostRootWnd->Top(false); return; } void CWispBase::RemoveWnd(IN CWispBaseWnd*pWnd) { if(m_pRootWnd==pWnd) { m_pRootWnd = NULL; m_bActive = false; return; } if(pWnd->m_PrevWnd) pWnd->m_PrevWnd->m_NextWnd=pWnd->m_NextWnd; if(pWnd->m_NextWnd) pWnd->m_NextWnd->m_PrevWnd=pWnd->m_PrevWnd; if(pWnd->m_ParentWnd->m_ChildWnd==pWnd) pWnd->m_ParentWnd->m_ChildWnd=pWnd->m_PrevWnd?pWnd->m_PrevWnd:pWnd->m_NextWnd; if(pWnd->m_ParentWnd->m_ChildTopWnd==pWnd) pWnd->m_ParentWnd->m_ChildTopWnd=pWnd->m_PrevWnd; if(pWnd->m_Style & WISP_WS_ADV_WND) m_WndCount--; else m_BaseWndCount--; } void CWispBase::RemoveWndMsg(IN CWispBaseWnd*pWnd) { for(int nMsg=0;nMsgMsg!=pMergeMsg->Msg) return false; switch(pNewMsg->Msg) { case WISP_WM_MOUSE_MOVE: pMergeMsg->MouseEvent.hWndMouseAt = pNewMsg->MouseEvent.hWndMouseAt; pMergeMsg->MouseEvent.DeltaX += pNewMsg->MouseEvent.DeltaX; pMergeMsg->MouseEvent.DeltaY += pNewMsg->MouseEvent.DeltaY; break; default: return false; } return true; } bool CWispBase::GetMessage(OUT WISP_MSG*pMsg) { if(m_MsgQueue.Count()) { *pMsg=m_MsgQueue[0]; m_MsgQueue.Remove(); return true; } return false; } bool CWispBase::SendMessage(IN WISP_MSG*pMsg) { bool bResult; if(pMsg->hWnd==NULL) return true; pMsg->bMsgLBTDown = m_KeyMap[WISP_VK_LBUTTON]; pMsg->bMsgRBTDown = m_KeyMap[WISP_VK_RBUTTON]; pMsg->MsgMouseWndPT = pMsg->MsgMouseScrPT = m_MousePT; PointToRect(&pMsg->MsgMouseWndPT,&pMsg->hWnd->m_ScrWindowRect); pMsg->MsgMouseCltPT = pMsg->MsgMouseWndPT; if(pMsg->hWnd->m_Style&WISP_WS_ADV_WND) PointToRect(&pMsg->MsgMouseCltPT,&((CWispWnd*)pMsg->hWnd)->m_ClientRect); bResult=pMsg->hWnd->MsgProc(pMsg); if(m_bMsgSleeping) { WakeUpMsgThread(); } return bResult; } bool CWispBase::PostMessage(IN WISP_MSG*pMsg) { WISP_MSG*pLastMsg; if(pMsg->hWnd==NULL) return false; pMsg->bMsgLBTDown = m_KeyMap[WISP_VK_LBUTTON]; pMsg->bMsgRBTDown = m_KeyMap[WISP_VK_RBUTTON]; pMsg->MsgMouseWndPT = pMsg->MsgMouseScrPT = m_MousePT; PointToRect(&pMsg->MsgMouseWndPT,&((CWispWnd*)pMsg->hWnd)->m_ScrWindowRect); if(m_MsgQueue.Count()) { pLastMsg = &m_MsgQueue[m_MsgQueue.Count()-1]; if(pLastMsg->hWnd==pMsg->hWnd) { if(MergeMessage(pMsg,pLastMsg)) { goto ExitPostMessage; } } } m_MsgQueue.Append(*pMsg); ExitPostMessage: if(m_bMsgSleeping) { m_bMsgSleeping = false; WakeUpMsgThread(); } return true; } bool CWispBase::DispatchMessage(IN WISP_MSG*pMsg) { if(pMsg->hWnd==NULL) return false; return pMsg->hWnd->MsgProc(pMsg); } void CWispBase::DispatchMsg() { WISP_MSG Msg; while(m_MsgQueue.Count()) { Msg = m_MsgQueue[0]; m_MsgQueue.Remove(); DispatchMessage(&Msg); } } void CWispBase::DispatchInputMsg() { WISP_INPUT_MSG Msg; while(m_InputMsgQueue.Count()) { Msg = m_InputMsgQueue[0]; m_InputMsgQueue.Remove(); switch(Msg.InputMsg) { case WISP_INPUT_KEY_EVENT: DispatchKeyEvent(Msg.KeyEvent.KeyType,Msg.KeyEvent.bKeyDown,Msg.KeyEvent.ScanCode); break; case WISP_INPUT_MOUSE_BT_DB_CLICK: DispatchMouseButtonDBClick(Msg.MouseBTDBClick.KeyType); break; case WISP_INPUT_MOUSE_POS_CHG: DispatchMousePosChg(Msg.MousePosChg.PosX,Msg.MousePosChg.PosY); break; case WISP_INPUT_MOUSE_MOVE: DispatchMouseMove(Msg.MouseMove.DeltaX,Msg.MouseMove.DeltaY); break; case WISP_INPUT_MOUSE_WHEEL: DispatchMouseWheel(Msg.MouseWheel.DeltaZ); break; case WISP_INPUT_TIMER: DispatchTimer(Msg.Timer.MilliSec); break; } } } void CWispBase::Pump() { m_bActive=true; while(m_bActive && PumpCondition()) { EnterCriticalSection(); DispatchInputMsg(); DispatchMsg(); if(m_bActive && m_bNeedUpdate && m_LockRef==0) { UpdateFrameBuffer(); m_bNeedUpdate=false; } LeaveCriticalSection(); m_bMsgSleeping = true; SleepMsgThread(); m_bMsgSleeping = false; } EnterCriticalSection(); UpdateFrameBuffer(); LeaveCriticalSection(); m_bActive = false; } void CWispBase::BlockPump(CWispBaseWnd*pWnd) { m_ModelLevel++; while(m_bActive && pWnd->IsWindow() && pWnd->IsVisible()) { DispatchInputMsg(); DispatchMsg(); if(m_bActive && m_bNeedUpdate && m_LockRef==0) { UpdateFrameBuffer(); m_bNeedUpdate=false; } LeaveCriticalSection(); m_bMsgSleeping=true; SleepMsgThread(); m_bMsgSleeping=false; EnterCriticalSection(); } m_ModelLevel--; } bool CWispBase::SelectDrawObject(CWispDrawObj*pDrawObj) { if(pDrawObj == m_pCurDrawObj) { if(m_pCurDrawObj) { m_pCurDrawObj->Release(); return m_pCurDrawObj->Init(); } return false; } if(pDrawObj && pDrawObj->Init()==false) return false; if(m_pCurDrawObj) m_pCurDrawObj->Release(); m_pCurDrawObj = pDrawObj; return true; } bool CWispBase::PumpCondition() { if(m_KeyMap[WISP_VK_F12] && m_KeyMap[WISP_VK_CONTROL]) return false; return true; } WISP_PSTR CWispBase::GetClipboardString() { return (WISP_PSTR)m_ClipboardString; } bool CWispBase::SetClipboardString(WISP_PCSTR String) { m_ClipboardString = String; return true; } void CWispBase::GetFrameBufferDrawHAL(WISP_FRAME_BUFFER*pFrameBuffer) { switch(pFrameBuffer->Bpp) { case 4: pFrameBuffer->pDrawHAL = &m_DrawHAL4Bit; break; case 8: pFrameBuffer->pDrawHAL = &m_DrawHAL8Bit; break; case 16: pFrameBuffer->pDrawHAL = &m_DrawHAL16Bit; break; case 24: pFrameBuffer->pDrawHAL = &m_DrawHAL24Bit; break; case 32: pFrameBuffer->pDrawHAL = &m_DrawHAL32Bit; break; default: pFrameBuffer->pDrawHAL = &m_NotSupportDrawHAL; break; } } bool CWispBase::SaveScreen(PCSTR FileName) { bool Result; CWispDIB Bmp; Bmp.m_FrameBuffer = m_FrameBuffer; Result = Bmp.Save(FileName); STZeroMemory(Bmp); return Result; } int CWispBase::MsgBox(WISP_CHAR*pText,WISP_CHAR*pCaption,UINT uType,CWispBaseWnd*pParentWnd) { return CWispMsgBox::StaticShowMsgBox(pText,pCaption,uType,pParentWnd); } void CWispBase::ReportMsg(IN const WISP_CHAR* Format,...) { return; } void*CWispBase::GetScreenBuffer(IN int x,IN int y) { return RT_PVOID(m_FrameBuffer.Buffer,y*m_FrameBuffer.LineDistance+x*m_FrameBuffer.Bpp/8); } bool CWispBase::CopyToScreen(WISP_FRAME_BUFFER*pRealScreen,WISP_POINT*pPT,WISP_RECT*pUpdateRect) { WISP_RECT rc,rcClip; CWispDrawHAL*pDrawHAL; void* Buffer; int XOffset,YOffset; Buffer=pRealScreen->Buffer; if(Buffer==NULL) return false; if(pPT) { rc.x=pPT->x; rc.y=pPT->y; } else { rc.x = CENTER_ALGN(m_FrameBuffer.Width,pRealScreen->Width); rc.y = CENTER_ALGN(m_FrameBuffer.Height,pRealScreen->Height); MIN_LIMIT(rc.x,0); MIN_LIMIT(rc.y,0); } if(pUpdateRect) { rc.x+=pUpdateRect->x; rc.y+=pUpdateRect->y; rc.cx=pUpdateRect->cx; rc.cy=pUpdateRect->cy; } else { rc.cx=m_FrameBuffer.Width; rc.cy=m_FrameBuffer.Height; } switch(pRealScreen->Bpp) { case 32: pDrawHAL = &m_DrawHAL32Bit; break; case 24: pDrawHAL = &m_DrawHAL24Bit; break; case 16: pDrawHAL = &m_DrawHAL16Bit; break; case 8: pDrawHAL = &m_DrawHAL8Bit; break; case 4: pDrawHAL = &m_DrawHAL4Bit; break; default: pDrawHAL = &m_NotSupportDrawHAL; break; } XOffset = rc.x; YOffset = rc.y; if(pUpdateRect) { XOffset-=pUpdateRect->x; YOffset-=pUpdateRect->y; } rcClip.x=0; rcClip.y=0; rcClip.cx=pRealScreen->Width; rcClip.cy=pRealScreen->Height; if(ClipRect(&rc,&rcClip)==false) return true; for(int y=0;yCopy32BitPixelTo(RT_PVOID(pRealScreen->Buffer,(rc.y+y)*pRealScreen->LineDistance+rc.x*pRealScreen->Bpp/8), RT_PVOID(m_FrameBuffer.Buffer,(rc.y-YOffset+y)*m_FrameBuffer.LineDistance+(rc.x-XOffset)*m_FrameBuffer.Bpp/8),rc.cx); } return true; } WISP_PHYS_FONT_INFO CWispBase::m_PhysFontInfo[WISP_FONT_COUNT]= { {8,16,"\\Font\\Font8x16.dat","\\Font\\WF8x16.dat"}, {6,12,"\\Font\\Font6x12.dat","\\Font\\WF6x12.dat"}, {12,16,"\\Font\\ASCI1216.dat","\\Font\\ASCI1216.dat"}, {12,16,"\\Font\\EBCD1216.dat","\\Font\\EBCD1216.dat"}, {12,16,"\\Font\\ANSI1216.dat","\\Font\\ANSI1216.dat"}, }; WISP_CHAR CWispBase::m_VKKeyChar[2][WISP_VK_COUNT*2]= { { '\0', '\0', // WISP_VK_NULL 0x00 '\0', '\0', // WISP_VK_LBUTTON 0x01 '\0', '\0', // WISP_VK_RBUTTON 0x02 '\0', '\0', // WISP_VK_CANCEL 0x03 '\0', '\0', // WISP_VK_MBUTTON 0x04 '\0', '\0', // WISP_VK_XBUTTON1 0x05 '\0', '\0', // WISP_VK_XBUTTON2 0x06 '\0', '\0', // WISP_VK_KEYBOARD_START 0x07 0x08, 0x08, // WISP_VK_BACK 0x08 '\t', '\t', // WISP_VK_TAB 0x09 '\0', '\0', // WISP_VK_0X0A 0x0A '\0', '\0', // WISP_VK_0X0B 0x0B '\0', '\0', // WISP_VK_CLEAR 0x0C '\n', '\n', // WISP_VK_RETURN 0x0D '\0', '\0', // WISP_VK_0X0E 0x0E '\0', '\0', // WISP_VK_0X0F 0x0F '\0', '\0', // WISP_VK_SHIFT 0x10 '\0', '\0', // WISP_VK_CONTROL 0x11 '\0', '\0', // WISP_VK_MENU 0x12 '\0', '\0', // WISP_VK_PAUSE 0x13 '\0', '\0', // WISP_VK_CAPITAL 0x14 '\0', '\0', // WISP_VK_0X15 0x15 '\0', '\0', // WISP_VK_0X16 0x16 '\0', '\0', // WISP_VK_0X17 0x17 '\0', '\0', // WISP_VK_0X18 0x18 '\0', '\0', // WISP_VK_0X19 0x19 '\0', '\0', // WISP_VK_0X1A 0x1A '\0', '\0', // WISP_VK_ESCAPE 0x1B '\0', '\0', // WISP_VK_CONVERT 0x1C '\0', '\0', // WISP_VK_NONCONVERT 0x1D '\0', '\0', // WISP_VK_ACCEPT 0x1E '\0', '\0', // WISP_VK_MODECHANGE 0x1F 0x20, 0x20, // WISP_VK_SPACE 0x20 '\0', '\0', // WISP_VK_PRIOR 0x21 '\0', '\0', // WISP_VK_NEXT 0x22 '\0', '\0', // WISP_VK_END 0x23 '\0', '\0', // WISP_VK_HOME 0x24 '\0', '\0', // WISP_VK_LEFT 0x25 '\0', '\0', // WISP_VK_UP 0x26 '\0', '\0', // WISP_VK_RIGHT 0x27 '\0', '\0', // WISP_VK_DOWN 0x28 '\0', '\0', // WISP_VK_SELECT 0x29 '\0', '\0', // WISP_VK_PRint 0x2A '\0', '\0', // WISP_VK_EXECUTE 0x2B '\0', '\0', // WISP_VK_SNAPSHOT 0x2C '\0', '\0', // WISP_VK_INSERT 0x2D '\0', '\0', // WISP_VK_DELETE 0x2E '\0', '\0', // WISP_VK_HELP 0x2F ')', '0', // WISP_VK_0 0x30 '!', '1', // WISP_VK_1 0x31 '@', '2', // WISP_VK_2 0x32 '#', '3', // WISP_VK_3 0x33 '$', '4', // WISP_VK_4 0x34 '%', '5', // WISP_VK_5 0x35 '^', '6', // WISP_VK_6 0x36 '&', '7', // WISP_VK_7 0x37 '*', '8', // WISP_VK_8 0x38 '(', '9', // WISP_VK_9 0x39 '\0', '\0', // WISP_VK_0X3A 0x3A '\0', '\0', // WISP_VK_0X3B 0x3B '\0', '\0', // WISP_VK_0X3C 0x3C '\0', '\0', // WISP_VK_0X3D 0x3D '\0', '\0', // WISP_VK_0X3E 0x3E '\0', '\0', // WISP_VK_0X3F 0x3F '\0', '\0', // WISP_VK_0X40 0x40 'A', 'a', // WISP_VK_A 0x41 'B', 'b', // WISP_VK_B 0x42 'C', 'c', // WISP_VK_C 0x43 'D', 'd', // WISP_VK_D 0x44 'E', 'e', // WISP_VK_E 0x45 'F', 'f', // WISP_VK_F 0x46 'G', 'g', // WISP_VK_G 0x47 'H', 'h', // WISP_VK_H 0x48 'I', 'i', // WISP_VK_I 0x49 'J', 'j', // WISP_VK_J 0x4A 'K', 'k', // WISP_VK_K 0x4B 'L', 'l', // WISP_VK_L 0x4C 'M', 'm', // WISP_VK_M 0x4D 'N', 'n', // WISP_VK_N 0x4E 'O', 'o', // WISP_VK_O 0x4F 'P', 'p', // WISP_VK_P 0x50 'Q', 'q', // WISP_VK_Q 0x51 'R', 'r', // WISP_VK_R 0x52 'S', 's', // WISP_VK_S 0x53 'T', 't', // WISP_VK_T 0x54 'U', 'u', // WISP_VK_U 0x55 'V', 'v', // WISP_VK_V 0x56 'W', 'w', // WISP_VK_W 0x57 'X', 'x', // WISP_VK_X 0x58 'Y', 'y', // WISP_VK_Y 0x59 'Z', 'z', // WISP_VK_Z 0x5A '\0', '\0', // WISP_VK_LWIN 0x5B '\0', '\0', // WISP_VK_RWIN 0x5C '\0', '\0', // WISP_VK_APPS 0x5D '\0', '\0', // WISP_VK_0X5E 0x5E '\0', '\0', // WISP_VK_SLEEP 0x5F '0', '0', // WISP_VK_NUMPAD0 0x60 '1', '1', // WISP_VK_NUMPAD1 0x61 '2', '2', // WISP_VK_NUMPAD2 0x62 '3', '3', // WISP_VK_NUMPAD3 0x63 '4', '4', // WISP_VK_NUMPAD4 0x64 '5', '5', // WISP_VK_NUMPAD5 0x65 '6', '6', // WISP_VK_NUMPAD6 0x66 '7', '7', // WISP_VK_NUMPAD7 0x67 '8', '8', // WISP_VK_NUMPAD8 0x68 '9', '9', // WISP_VK_NUMPAD9 0x69 '*', '*', // WISP_VK_MULTIPLY 0x6A '+', '+', // WISP_VK_ADD 0x6B '\\', '\\', // WISP_VK_SEPARATOR 0x6C '-', '-', // WISP_VK_SUBTRACT 0x6D '.', '.', // WISP_VK_DECIMAL 0x6E '/', '/', // WISP_VK_DIVIDE 0x6F '\0', '\0', // WISP_VK_F1 0x70 '\0', '\0', // WISP_VK_F2 0x71 '\0', '\0', // WISP_VK_F3 0x72 '\0', '\0', // WISP_VK_F4 0x73 '\0', '\0', // WISP_VK_F5 0x74 '\0', '\0', // WISP_VK_F6 0x75 '\0', '\0', // WISP_VK_F7 0x76 '\0', '\0', // WISP_VK_F8 0x77 '\0', '\0', // WISP_VK_F9 0x78 '\0', '\0', // WISP_VK_F10 0x79 '\0', '\0', // WISP_VK_F11 0x7A '\0', '\0', // WISP_VK_F12 0x7B '\0', '\0', // WISP_VK_F13 0x7C '\0', '\0', // WISP_VK_F14 0x7D '\0', '\0', // WISP_VK_F15 0x7E '\0', '\0', // WISP_VK_F16 0x7F '\0', '\0', // WISP_VK_F17 0x80 '\0', '\0', // WISP_VK_F18 0x81 '\0', '\0', // WISP_VK_F19 0x82 '\0', '\0', // WISP_VK_F20 0x83 '\0', '\0', // WISP_VK_F21 0x84 '\0', '\0', // WISP_VK_F22 0x85 '\0', '\0', // WISP_VK_F23 0x86 '\0', '\0', // WISP_VK_F24 0x87 '\0', '\0', // WISP_VK_0X88 0x88 '\0', '\0', // WISP_VK_0X89 0x89 '\0', '\0', // WISP_VK_0X8A 0x8A '\0', '\0', // WISP_VK_0X8B 0x8B '\0', '\0', // WISP_VK_0X8C 0x8C '\0', '\0', // WISP_VK_0X8D 0x8D '\0', '\0', // WISP_VK_0X8E 0x8E '\0', '\0', // WISP_VK_0X8F 0x8F '\0', '\0', // WISP_VK_0X90 0x90 '\0', '\0', // WISP_VK_0X91 0x91 '\0', '\0', // WISP_VK_0X92 0x92 '\0', '\0', // WISP_VK_0X93 0x93 '\0', '\0', // WISP_VK_0X94 0x94 '\0', '\0', // WISP_VK_0X95 0x95 '\0', '\0', // WISP_VK_0X96 0x96 '\0', '\0', // WISP_VK_0X97 0x97 '\0', '\0', // WISP_VK_0X98 0x98 '\0', '\0', // WISP_VK_0X99 0x99 '\0', '\0', // WISP_VK_0X9A 0x9A '\0', '\0', // WISP_VK_0X9B 0x9B '\0', '\0', // WISP_VK_0X9C 0x9C '\0', '\0', // WISP_VK_0X9D 0x9D '\0', '\0', // WISP_VK_0X9E 0x9E '\0', '\0', // WISP_VK_0X9F 0x9F '\0', '\0', // WISP_VK_LSHIFT 0xA0 '\0', '\0', // WISP_VK_RSHIFT 0xA1 '\0', '\0', // WISP_VK_LCONTROL 0xA2 '\0', '\0', // WISP_VK_RCONTROL 0xA3 '\0', '\0', // WISP_VK_LMENU 0xA4 '\0', '\0', // WISP_VK_RMENU 0xA5 '\0', '\0', // VK_BROWSER_BACK 0xA6 '\0', '\0', // VK_BROWSER_FORWARD 0xA7 '\0', '\0', // VK_BROWSER_REFRESH 0xA8 '\0', '\0', // VK_BROWSER_STOP 0xA9 '\0', '\0', // VK_BROWSER_SEARCH 0xAA '\0', '\0', // VK_BROWSER_FAVORITES 0xAB '\0', '\0', // VK_BROWSER_HOME 0xAC '\0', '\0', // VK_VOLUME_MUTE 0xAD '\0', '\0', // VK_VOLUME_DOWN 0xAE '\0', '\0', // VK_VOLUME_UP 0xAF '\0', '\0', // VK_MEDIA_NEXT_TRACK 0xB0 '\0', '\0', // VK_MEDIA_PREV_TRACK 0xB1 '\0', '\0', // VK_MEDIA_STOP 0xB2 '\0', '\0', // VK_MEDIA_PLAY_PAUSE 0xB3 '\0', '\0', // VK_LAUNCH_MAIL 0xB4 '\0', '\0', // VK_LAUNCH_MEDIA_SELECT 0xB5 '\0', '\0', // VK_LAUNCH_APP1 0xB6 '\0', '\0', // VK_LAUNCH_APP2 0xB7 '\0', '\0', // WISP_VK_0XB8 0xB8 '\0', '\0', // WISP_VK_0XB9 0xB9 ':', ';', // WISP_VK_OEM_1 0xBA // ';:' for US '+', '=', // WISP_VK_OEM_PLUS 0xBB // '+' any country '<', ',', // WISP_VK_OEM_COMMA 0xBC // ',' any country '_', '-', // WISP_VK_OEM_MINUS 0xBD // '-' any country '>', '.', // WISP_VK_OEM_PERIOD 0xBE // '.' any country '?', '/', // WISP_VK_OEM_2 0xBF // '/?' for US '~', '`', // WISP_VK_OEM_3 0xC0 // '`~' for US '\0', '\0', // WISP_VK_0XC1 0xC1 '\0', '\0', // WISP_VK_0XC2 0xC2 '\0', '\0', // WISP_VK_0XC3 0xC3 '\0', '\0', // WISP_VK_0XC4 0xC4 '\0', '\0', // WISP_VK_0XC5 0xC5 '\0', '\0', // WISP_VK_0XC6 0xC6 '\0', '\0', // WISP_VK_0XC7 0xC7 '\0', '\0', // WISP_VK_0XC8 0xC8 '\0', '\0', // WISP_VK_0XC9 0xC9 '\0', '\0', // WISP_VK_0XCA 0xCA '\0', '\0', // WISP_VK_0XCB 0xCB '\0', '\0', // WISP_VK_0XCC 0xCC '\0', '\0', // WISP_VK_0XCD 0xCD '\0', '\0', // WISP_VK_0XCE 0xCE '\0', '\0', // WISP_VK_0XCF 0xCF '\0', '\0', // WISP_VK_0XD0 0xD0 '\0', '\0', // WISP_VK_0XD1 0xD1 '\0', '\0', // WISP_VK_0XD2 0xD2 '\0', '\0', // WISP_VK_0XD3 0xD3 '\0', '\0', // WISP_VK_0XD4 0xD4 '\0', '\0', // WISP_VK_0XD5 0xD5 '\0', '\0', // WISP_VK_0XD6 0xD6 '\0', '\0', // WISP_VK_0XD7 0xD7 '\0', '\0', // WISP_VK_0XD8 0xD8 '\0', '\0', // WISP_VK_0XD9 0xD9 '\0', '\0', // WISP_VK_0XDA 0xDA '{', '[', // WISP_VK_OEM_4 0xDB // '[{' for US '|', '\\', // WISP_VK_OEM_5 0xDC // '\|' for US '}', ']', // WISP_VK_OEM_6 0xDD // ']}' for US '\"', '\'', // WISP_VK_OEM_7 0xDE // ''"' for US '\0', '\0', // WISP_VK_OEM_8 0xDF '\0', '\0', // WISP_VK_0XE0 0xE0 '\0', '\0', // WISP_VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd '\0', '\0', // WISP_VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd. '\0', '\0', // WISP_VK_ICO_HELP 0xE3 // Help key on ICO '\0', '\0', // WISP_VK_ICO_00 0xE4 // 00 key on ICO '\0', '\0', // WISP_VK_PROCESSKEY 0xE5 '\0', '\0', // WISP_VK_ICO_CLEAR 0xE6 '\0', '\0', // WISP_VK_PACKET 0xE7 '\0', '\0', // WISP_VK_OEM_RESET 0xE9 '\0', '\0', // WISP_VK_OEM_JUMP 0xEA '\0', '\0', // WISP_VK_OEM_PA1 0xEB '\0', '\0', // WISP_VK_OEM_PA2 0xEC '\0', '\0', // WISP_VK_OEM_PA3 0xED '\0', '\0', // WISP_VK_OEM_WSCTRL 0xEE '\0', '\0', // WISP_VK_OEM_CUSEL 0xEF '\0', '\0', // WISP_VK_OEM_ATTN 0xF0 '\0', '\0', // WISP_VK_OEM_FINISH 0xF1 '\0', '\0', // WISP_WISP_VK_OEM_COPY 0xF2 '\0', '\0', // WISP_VK_OEM_AUTO 0xF3 '\0', '\0', // WISP_VK_OEM_ENLW 0xF4 '\0', '\0', // WISP_VK_OEM_BACKTAB 0xF5 '\0', '\0', // WISP_VK_VK_ATTN 0xF6 '\0', '\0', // WISP_VK_VK_CRSEL 0xF7 '\0', '\0', // WISP_VK_VK_EXSEL 0xF8 '\0', '\0', // WISP_VK_VK_EREOF 0xF9 '\0', '\0', // WISP_VK_VK_PLAY 0xFA '\0', '\0', // WISP_VK_VK_ZOOM 0xFB '\0', '\0', // WISP_VK_VK_NONAME 0xFC '\0', '\0', // WISP_VK_VK_PA1 0xFD '\0', '\0', // WISP_VK_VK_OEM_CLEAR 0xFE '\0', '\0', // WISP_VK_MAX_ID 0xFF }, { '\0', '\0', // WISP_VK_NULL 0x00 '\0', '\0', // WISP_VK_LBUTTON 0x01 '\0', '\0', // WISP_VK_RBUTTON 0x02 '\0', '\0', // WISP_VK_CANCEL 0x03 '\0', '\0', // WISP_VK_MBUTTON 0x04 '\0', '\0', // WISP_VK_XBUTTON1 0x05 '\0', '\0', // WISP_VK_XBUTTON2 0x06 '\0', '\0', // WISP_VK_KEYBOARD_START 0x07 0x08, 0x08, // WISP_VK_BACK 0x08 '\t', '\t', // WISP_VK_TAB 0x09 '\0', '\0', // WISP_VK_0X0A 0x0A '\0', '\0', // WISP_VK_0X0B 0x0B '\0', '\0', // WISP_VK_CLEAR 0x0C '\n', '\n', // WISP_VK_RETURN 0x0D '\0', '\0', // WISP_VK_0X0E 0x0E '\0', '\0', // WISP_VK_0X0F 0x0F '\0', '\0', // WISP_VK_SHIFT 0x10 '\0', '\0', // WISP_VK_CONTROL 0x11 '\0', '\0', // WISP_VK_MENU 0x12 '\0', '\0', // WISP_VK_PAUSE 0x13 '\0', '\0', // WISP_VK_CAPITAL 0x14 '\0', '\0', // WISP_VK_0X15 0x15 '\0', '\0', // WISP_VK_0X16 0x16 '\0', '\0', // WISP_VK_0X17 0x17 '\0', '\0', // WISP_VK_0X18 0x18 '\0', '\0', // WISP_VK_0X19 0x19 '\0', '\0', // WISP_VK_0X1A 0x1A '\0', '\0', // WISP_VK_ESCAPE 0x1B '\0', '\0', // WISP_VK_CONVERT 0x1C '\0', '\0', // WISP_VK_NONCONVERT 0x1D '\0', '\0', // WISP_VK_ACCEPT 0x1E '\0', '\0', // WISP_VK_MODECHANGE 0x1F 0x20, 0x20, // WISP_VK_SPACE 0x20 '\0', '\0', // WISP_VK_PRIOR 0x21 '\0', '\0', // WISP_VK_NEXT 0x22 '\0', '\0', // WISP_VK_END 0x23 '\0', '\0', // WISP_VK_HOME 0x24 '\0', '\0', // WISP_VK_LEFT 0x25 '\0', '\0', // WISP_VK_UP 0x26 '\0', '\0', // WISP_VK_RIGHT 0x27 '\0', '\0', // WISP_VK_DOWN 0x28 '\0', '\0', // WISP_VK_SELECT 0x29 '\0', '\0', // WISP_VK_PRint 0x2A '\0', '\0', // WISP_VK_EXECUTE 0x2B '\0', '\0', // WISP_VK_SNAPSHOT 0x2C '\0', '\0', // WISP_VK_INSERT 0x2D '\0', '\0', // WISP_VK_DELETE 0x2E '\0', '\0', // WISP_VK_HELP 0x2F '0', '\xe0', // WISP_VK_0 0x30 '1', '&', // WISP_VK_1 0x31 '2', '\xe9', // WISP_VK_2 0x32 '3', '"', // WISP_VK_3 0x33 '4', '\'', // WISP_VK_4 0x34 '5', '(', // WISP_VK_5 0x35 '6', '-', // WISP_VK_6 0x36 '7', '\xe0', // WISP_VK_7 0x37 '8', '_', // WISP_VK_8 0x38 '9', '\xe7', // WISP_VK_9 0x39 '\0', '\0', // WISP_VK_0X3A 0x3A '\0', '\0', // WISP_VK_0X3B 0x3B '\0', '\0', // WISP_VK_0X3C 0x3C '\0', '\0', // WISP_VK_0X3D 0x3D '\0', '\0', // WISP_VK_0X3E 0x3E '\0', '\0', // WISP_VK_0X3F 0x3F '\0', '\0', // WISP_VK_0X40 0x40 'A', 'a', // WISP_VK_A 0x41 'B', 'b', // WISP_VK_B 0x42 'C', 'c', // WISP_VK_C 0x43 'D', 'd', // WISP_VK_D 0x44 'E', 'e', // WISP_VK_E 0x45 'F', 'f', // WISP_VK_F 0x46 'G', 'g', // WISP_VK_G 0x47 'H', 'h', // WISP_VK_H 0x48 'I', 'i', // WISP_VK_I 0x49 'J', 'j', // WISP_VK_J 0x4A 'K', 'k', // WISP_VK_K 0x4B 'L', 'l', // WISP_VK_L 0x4C 'M', 'm', // WISP_VK_M 0x4D 'N', 'n', // WISP_VK_N 0x4E 'O', 'o', // WISP_VK_O 0x4F 'P', 'p', // WISP_VK_P 0x50 'Q', 'q', // WISP_VK_Q 0x51 'R', 'r', // WISP_VK_R 0x52 'S', 's', // WISP_VK_S 0x53 'T', 't', // WISP_VK_T 0x54 'U', 'u', // WISP_VK_U 0x55 'V', 'v', // WISP_VK_V 0x56 'W', 'w', // WISP_VK_W 0x57 'X', 'x', // WISP_VK_X 0x58 'Y', 'y', // WISP_VK_Y 0x59 'Z', 'z', // WISP_VK_Z 0x5A '\0', '\0', // WISP_VK_LWIN 0x5B '\0', '\0', // WISP_VK_RWIN 0x5C '\0', '\0', // WISP_VK_APPS 0x5D '\0', '\0', // WISP_VK_0X5E 0x5E '\0', '\0', // WISP_VK_SLEEP 0x5F '0', '0', // WISP_VK_NUMPAD0 0x60 '1', '1', // WISP_VK_NUMPAD1 0x61 '2', '2', // WISP_VK_NUMPAD2 0x62 '3', '3', // WISP_VK_NUMPAD3 0x63 '4', '4', // WISP_VK_NUMPAD4 0x64 '5', '5', // WISP_VK_NUMPAD5 0x65 '6', '6', // WISP_VK_NUMPAD6 0x66 '7', '7', // WISP_VK_NUMPAD7 0x67 '8', '8', // WISP_VK_NUMPAD8 0x68 '9', '9', // WISP_VK_NUMPAD9 0x69 '*', '*', // WISP_VK_MULTIPLY 0x6A '+', '+', // WISP_VK_ADD 0x6B '\\', '\\', // WISP_VK_SEPARATOR 0x6C '-', '-', // WISP_VK_SUBTRACT 0x6D '.', '.', // WISP_VK_DECIMAL 0x6E '/', '/', // WISP_VK_DIVIDE 0x6F '\0', '\0', // WISP_VK_F1 0x70 '\0', '\0', // WISP_VK_F2 0x71 '\0', '\0', // WISP_VK_F3 0x72 '\0', '\0', // WISP_VK_F4 0x73 '\0', '\0', // WISP_VK_F5 0x74 '\0', '\0', // WISP_VK_F6 0x75 '\0', '\0', // WISP_VK_F7 0x76 '\0', '\0', // WISP_VK_F8 0x77 '\0', '\0', // WISP_VK_F9 0x78 '\0', '\0', // WISP_VK_F10 0x79 '\0', '\0', // WISP_VK_F11 0x7A '\0', '\0', // WISP_VK_F12 0x7B '\0', '\0', // WISP_VK_F13 0x7C '\0', '\0', // WISP_VK_F14 0x7D '\0', '\0', // WISP_VK_F15 0x7E '\0', '\0', // WISP_VK_F16 0x7F '\0', '\0', // WISP_VK_F17 0x80 '\0', '\0', // WISP_VK_F18 0x81 '\0', '\0', // WISP_VK_F19 0x82 '\0', '\0', // WISP_VK_F20 0x83 '\0', '\0', // WISP_VK_F21 0x84 '\0', '\0', // WISP_VK_F22 0x85 '\0', '\0', // WISP_VK_F23 0x86 '\0', '\0', // WISP_VK_F24 0x87 '\0', '\0', // WISP_VK_0X88 0x88 '\0', '\0', // WISP_VK_0X89 0x89 '\0', '\0', // WISP_VK_0X8A 0x8A '\0', '\0', // WISP_VK_0X8B 0x8B '\0', '\0', // WISP_VK_0X8C 0x8C '\0', '\0', // WISP_VK_0X8D 0x8D '\0', '\0', // WISP_VK_0X8E 0x8E '\0', '\0', // WISP_VK_0X8F 0x8F '\0', '\0', // WISP_VK_0X90 0x90 '\0', '\0', // WISP_VK_0X91 0x91 '\0', '\0', // WISP_VK_0X92 0x92 '\0', '\0', // WISP_VK_0X93 0x93 '\0', '\0', // WISP_VK_0X94 0x94 '\0', '\0', // WISP_VK_0X95 0x95 '\0', '\0', // WISP_VK_0X96 0x96 '\0', '\0', // WISP_VK_0X97 0x97 '\0', '\0', // WISP_VK_0X98 0x98 '\0', '\0', // WISP_VK_0X99 0x99 '\0', '\0', // WISP_VK_0X9A 0x9A '\0', '\0', // WISP_VK_0X9B 0x9B '\0', '\0', // WISP_VK_0X9C 0x9C '\0', '\0', // WISP_VK_0X9D 0x9D '\0', '\0', // WISP_VK_0X9E 0x9E '\0', '\0', // WISP_VK_0X9F 0x9F '\0', '\0', // WISP_VK_LSHIFT 0xA0 '\0', '\0', // WISP_VK_RSHIFT 0xA1 '\0', '\0', // WISP_VK_LCONTROL 0xA2 '\0', '\0', // WISP_VK_RCONTROL 0xA3 '\0', '\0', // WISP_VK_LMENU 0xA4 '\0', '\0', // WISP_VK_RMENU 0xA5 '\0', '\0', // VK_BROWSER_BACK 0xA6 '\0', '\0', // VK_BROWSER_FORWARD 0xA7 '\0', '\0', // VK_BROWSER_REFRESH 0xA8 '\0', '\0', // VK_BROWSER_STOP 0xA9 '\0', '\0', // VK_BROWSER_SEARCH 0xAA '\0', '\0', // VK_BROWSER_FAVORITES 0xAB '\0', '\0', // VK_BROWSER_HOME 0xAC '\0', '\0', // VK_VOLUME_MUTE 0xAD '\0', '\0', // VK_VOLUME_DOWN 0xAE '\0', '\0', // VK_VOLUME_UP 0xAF '\0', '\0', // VK_MEDIA_NEXT_TRACK 0xB0 '\0', '\0', // VK_MEDIA_PREV_TRACK 0xB1 '\0', '\0', // VK_MEDIA_STOP 0xB2 '\0', '\0', // VK_MEDIA_PLAY_PAUSE 0xB3 '\0', '\0', // VK_LAUNCH_MAIL 0xB4 '\0', '\0', // VK_LAUNCH_MEDIA_SELECT 0xB5 '\0', '\0', // VK_LAUNCH_APP1 0xB6 '\0', '\0', // VK_LAUNCH_APP2 0xB7 '\0', '\0', // WISP_VK_0XB8 0xB8 '\0', '\0', // WISP_VK_0XB9 0xB9 '?', ',', // WISP_VK_OEM_1 0xBA // ';:' for US '+', '=', // WISP_VK_OEM_PLUS 0xBB // '+' any country '.', ';', // WISP_VK_OEM_COMMA 0xBC // ',' any country '\xb0', ')', // WISP_VK_OEM_MINUS 0xBD // '-' any country '/', ':', // WISP_VK_OEM_PERIOD 0xBE // '.' any country '\xa7', '!', // WISP_VK_OEM_2 0xBF // '/?' for US '~', '`', // WISP_VK_OEM_3 0xC0 // '`~' for US '\0', '\0', // WISP_VK_0XC1 0xC1 '\0', '\0', // WISP_VK_0XC2 0xC2 '\0', '\0', // WISP_VK_0XC3 0xC3 '\0', '\0', // WISP_VK_0XC4 0xC4 '\0', '\0', // WISP_VK_0XC5 0xC5 '\0', '\0', // WISP_VK_0XC6 0xC6 '\0', '\0', // WISP_VK_0XC7 0xC7 '\0', '\0', // WISP_VK_0XC8 0xC8 '\0', '\0', // WISP_VK_0XC9 0xC9 '\0', '\0', // WISP_VK_0XCA 0xCA '\0', '\0', // WISP_VK_0XCB 0xCB '\0', '\0', // WISP_VK_0XCC 0xCC '\0', '\0', // WISP_VK_0XCD 0xCD '\0', '\0', // WISP_VK_0XCE 0xCE '\0', '\0', // WISP_VK_0XCF 0xCF '\0', '\0', // WISP_VK_0XD0 0xD0 '\0', '\0', // WISP_VK_0XD1 0xD1 '\0', '\0', // WISP_VK_0XD2 0xD2 '\0', '\0', // WISP_VK_0XD3 0xD3 '\0', '\0', // WISP_VK_0XD4 0xD4 '\0', '\0', // WISP_VK_0XD5 0xD5 '\0', '\0', // WISP_VK_0XD6 0xD6 '\0', '\0', // WISP_VK_0XD7 0xD7 '\0', '\0', // WISP_VK_0XD8 0xD8 '\0', '\0', // WISP_VK_0XD9 0xD9 '\0', '\0', // WISP_VK_0XDA 0xDA '\xa8', '^', // WISP_VK_OEM_4 0xDB // '[{' for US '\xb5', '*', // WISP_VK_OEM_5 0xDC // '\|' for US '\xa3', '$', // WISP_VK_OEM_6 0xDD // ']}' for US '%', '\xf9', // WISP_VK_OEM_7 0xDE // ''"' for US '\0', '\0', // WISP_VK_OEM_8 0xDF '\0', '\0', // WISP_VK_0XE0 0xE0 '\0', '\0', // WISP_VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd '>', '<', // WISP_VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd. '\0', '\0', // WISP_VK_ICO_HELP 0xE3 // Help key on ICO '\0', '\0', // WISP_VK_ICO_00 0xE4 // 00 key on ICO '\0', '\0', // WISP_VK_PROCESSKEY 0xE5 '\0', '\0', // WISP_VK_ICO_CLEAR 0xE6 '\0', '\0', // WISP_VK_PACKET 0xE7 '\0', '\0', // WISP_VK_OEM_RESET 0xE9 '\0', '\0', // WISP_VK_OEM_JUMP 0xEA '\0', '\0', // WISP_VK_OEM_PA1 0xEB '\0', '\0', // WISP_VK_OEM_PA2 0xEC '\0', '\0', // WISP_VK_OEM_PA3 0xED '\0', '\0', // WISP_VK_OEM_WSCTRL 0xEE '\0', '\0', // WISP_VK_OEM_CUSEL 0xEF '\0', '\0', // WISP_VK_OEM_ATTN 0xF0 '\0', '\0', // WISP_VK_OEM_FINISH 0xF1 '\0', '\0', // WISP_WISP_VK_OEM_COPY 0xF2 '\0', '\0', // WISP_VK_OEM_AUTO 0xF3 '\0', '\0', // WISP_VK_OEM_ENLW 0xF4 '\0', '\0', // WISP_VK_OEM_BACKTAB 0xF5 '\0', '\0', // WISP_VK_VK_ATTN 0xF6 '\0', '\0', // WISP_VK_VK_CRSEL 0xF7 '\0', '\0', // WISP_VK_VK_EXSEL 0xF8 '\0', '\0', // WISP_VK_VK_EREOF 0xF9 '\0', '\0', // WISP_VK_VK_PLAY 0xFA '\0', '\0', // WISP_VK_VK_ZOOM 0xFB '\0', '\0', // WISP_VK_VK_NONAME 0xFC '\0', '\0', // WISP_VK_VK_PA1 0xFD '\0', '\0', // WISP_VK_VK_OEM_CLEAR 0xFE '\0', '\0', // WISP_VK_MAX_ID 0xFF }, }; COLORREF CWispBase::m_DefColorPal[256]= { WISP_RGB(0,0,0), WISP_RGB(255,255,255), WISP_RGB(192,0,0), WISP_RGB(255,0,0), WISP_RGB(0,192,0), WISP_RGB(0,255,128), WISP_RGB(0,0,192), WISP_RGB(0,128,255), WISP_RGB(128,64,64), WISP_RGB(200,100,100), WISP_RGB(0,192,192), WISP_RGB(0,255,255), WISP_RGB(128,128,128), WISP_RGB(200,200,200), WISP_RGB(192,192,0), WISP_RGB(255,255,0), WISP_RGB(128,64,0), WISP_RGB(255,128,0), WISP_RGB(0,0,0), WISP_RGB(200,200,200), WISP_RGB(236,233,216), WISP_RGB(0,0,0), WISP_RGB(255,255,255), WISP_RGB(35,152,200), WISP_RGB(80,176,255), WISP_RGB(0,128,255), WISP_RGB(100,200,250), WISP_RGB(0,130,230), WISP_RGB(220,220,220), WISP_RGB(85,85,85), WISP_RGB(170,170,170), WISP_RGB(80,230,255), WISP_RGB(50,180,230), WISP_RGB(0,0,255), WISP_RGB(127,157,185), WISP_RGB(127,157,185), WISP_RGB(28,81,128), WISP_RGB(255,255,255), WISP_RGB(243,243,239), WISP_RGB(226,225,218), WISP_RGB(49,105,198), WISP_RGB(248,179,48), WISP_RGB(255,214,100), WISP_RGB(255,255,255), WISP_RGB(0,0,0), WISP_RGB(0,0,128), WISP_RGB(0,0,255), WISP_RGB(49,106,197), WISP_RGB(180,200,228), WISP_RGB(210,230,255), WISP_RGB(138,134,122), WISP_RGB(120,152,181), WISP_RGB(0,255,255), WISP_RGB(255,255,255), WISP_RGB(33,161,33), WISP_RGB(0,0,0), WISP_RGB(118,177,229), WISP_RGB(180,214,241), WISP_RGB(100,146,185), WISP_RGB(235,234,219), WISP_RGB(255,255,255), WISP_RGB(199,197,178), WISP_RGB(226,222,205), WISP_RGB(214,210,194), WISP_RGB(203,199,184), WISP_RGB(243,243,243), WISP_RGB(248,169,0), WISP_RGB(249,198,84), WISP_RGB(248,179,31), WISP_RGB(171,237,172), WISP_RGB(149,233,150), WISP_RGB(124,228,126), WISP_RGB(102,223,104), WISP_RGB(78,218,80), WISP_RGB(53,213,56), WISP_RGB(40,210,43), WISP_RGB(229,151,0), WISP_RGB(248,179,48), WISP_RGB(253,216,137), WISP_RGB(61,149,255), WISP_RGB(43,144,255), WISP_RGB(0,85,234), WISP_RGB(0,70,224), WISP_RGB(1,67,207), WISP_RGB(0,61,220), WISP_RGB(0,29,160), WISP_RGB(0,19,140), WISP_RGB(123,123,123), WISP_RGB(224,232,254), WISP_RGB(241,241,241), WISP_RGB(231,235,255), WISP_RGB(107,121,189), WISP_RGB(172,168,153), WISP_RGB(241,239,226), WISP_RGB(113,111,100), WISP_RGB(222,223,216), WISP_RGB(165,165,151), WISP_RGB(193,194,184), WISP_RGB(208,209,201), WISP_RGB(180,250,212), WISP_RGB(100,200,255), WISP_RGB(255,170,170), WISP_RGB(0,155,255), WISP_RGB(180,40,40), WISP_RGB(112,162,243), WISP_RGB(197,194,184), WISP_RGB(0,255,0), WISP_RGB(255,0,255), WISP_RGB(250,250,204), WISP_RGB(33,162,33), WISP_RGB(123,162,231), WISP_RGB(99,117,214), WISP_RGB(180,177,163), WISP_RGB(254,254,255), WISP_RGB(240,240,241), WISP_RGB(230,234,255), WISP_RGB(224,228,249), WISP_RGB(210,216,247), WISP_RGB(104,120,191), WISP_RGB(40,8,12), WISP_RGB(139,51,119), WISP_RGB(45,24,44), WISP_RGB(232,200,232), WISP_RGB(248,232,248), WISP_RGB(24,8,29), WISP_RGB(184,136,200), WISP_RGB(216,176,232), WISP_RGB(192,152,216), WISP_RGB(154,106,200), WISP_RGB(216,200,232), WISP_RGB(45,44,52), WISP_RGB(185,183,200), WISP_RGB(108,103,159), WISP_RGB(8,8,136), WISP_RGB(8,8,87), WISP_RGB(8,8,24), WISP_RGB(56,56,128), WISP_RGB(104,104,184), WISP_RGB(168,168,216), WISP_RGB(200,200,248), WISP_RGB(184,184,216), WISP_RGB(200,200,232), WISP_RGB(216,216,248), WISP_RGB(216,216,232), WISP_RGB(232,232,248), WISP_RGB(201,202,216), WISP_RGB(94,96,116), WISP_RGB(146,147,156), WISP_RGB(52,56,86), WISP_RGB(40,56,152), WISP_RGB(119,136,233), WISP_RGB(40,56,136), WISP_RGB(56,72,152), WISP_RGB(72,88,169), WISP_RGB(88,104,184), WISP_RGB(120,136,216), WISP_RGB(136,152,232), WISP_RGB(88,104,168), WISP_RGB(104,120,184), WISP_RGB(122,136,199), WISP_RGB(56,72,134), WISP_RGB(136,152,209), WISP_RGB(171,184,235), WISP_RGB(154,164,199), WISP_RGB(8,55,185), WISP_RGB(16,24,48), WISP_RGB(104,120,168), WISP_RGB(149,171,234), WISP_RGB(122,134,167), WISP_RGB(24,56,136), WISP_RGB(40,72,154), WISP_RGB(80,127,245), WISP_RGB(56,88,168), WISP_RGB(72,104,185), WISP_RGB(88,120,200), WISP_RGB(104,136,216), WISP_RGB(22,73,184), WISP_RGB(22,48,108), WISP_RGB(72,92,138), WISP_RGB(88,107,152), WISP_RGB(41,109,246), WISP_RGB(40,72,136), WISP_RGB(56,88,152), WISP_RGB(72,104,168), WISP_RGB(88,120,184), WISP_RGB(104,136,200), WISP_RGB(120,152,216), WISP_RGB(104,120,151), WISP_RGB(168,184,216), WISP_RGB(200,216,248), WISP_RGB(25,40,64), WISP_RGB(110,136,179), WISP_RGB(56,104,174), WISP_RGB(120,152,200), WISP_RGB(71,120,187), WISP_RGB(82,133,204), WISP_RGB(56,89,133), WISP_RGB(103,153,222), WISP_RGB(180,209,248), WISP_RGB(39,89,152), WISP_RGB(88,124,168), WISP_RGB(55,72,92), WISP_RGB(142,177,216), WISP_RGB(200,216,232), WISP_RGB(79,168,247), WISP_RGB(104,153,200), WISP_RGB(168,201,232), WISP_RGB(182,200,216), WISP_RGB(168,184,199), WISP_RGB(8,78,135), WISP_RGB(40,90,132), WISP_RGB(120,168,208), WISP_RGB(113,190,248), WISP_RGB(216,232,244), WISP_RGB(143,209,246), WISP_RGB(9,123,179), WISP_RGB(71,127,157), WISP_RGB(71,171,200), WISP_RGB(94,220,248), WISP_RGB(17,167,188), WISP_RGB(27,205,231), WISP_RGB(43,223,248), WISP_RGB(133,233,247), WISP_RGB(177,239,248), WISP_RGB(109,201,206), WISP_RGB(46,133,135), WISP_RGB(8,24,24), WISP_RGB(232,248,248), WISP_RGB(20,106,96), WISP_RGB(36,146,76), WISP_RGB(19,124,30), WISP_RGB(229,248,231), WISP_RGB(105,174,105), WISP_RGB(191,224,189), WISP_RGB(66,233,15), WISP_RGB(111,191,49), WISP_RGB(169,227,110), WISP_RGB(217,237,168), WISP_RGB(248,248,232), WISP_RGB(179,162,79), WISP_RGB(248,235,166), WISP_RGB(248,242,213), WISP_RGB(140,110,17), WISP_RGB(222,193,123), WISP_RGB(190,129,29), WISP_RGB(82,44,31), WISP_RGB(242,194,190), WISP_RGB(245,84,75), WISP_RGB(235,133,129), WISP_RGB(24,8,8), WISP_RGB(248,232,232), WISP_RGB(25,24,24), WISP_RGB(248,248,248), WISP_RGB(232,232,232), WISP_RGB(72,72,72), WISP_RGB(8,8,8), }; ================================================ FILE: Project/Wisp/Source/WispBase.h ================================================ #ifndef _WISP_BASE_H_ #define _WISP_BASE_H_ #include "WispConfig.h" #include "WispDIBLib.h" #include "WispFont.h" #include "WispDrawObj.h" #include "WispDrawHAL.h" #define WISP_CAPTION_HEIGHT 18 #define WISP_CAPTION_BT_SIZE 16 #define WISP_FONT_FRAME_HEIGHT 18 #define WISP_BORDER_SIZE 4 #define WISP_THIN_BORDER_SIZE 2 #define WISP_DEFAULT_ALPHA 128 #define WISP_FONT_DISTANCE 2 #define WISP_SCROLL_BORDER_SIZE 16 #define WISP_SCROLL_MIN_SLIDE_SIZE 8 #define WISP_MAX_MSG_QUEUE 128 #define WISP_MAX_INPUT_MSG_QUEUE 128 #define WISP_KEY_REPEAT_PERIOD 15 #define WISP_KEY_REPEAT_DELAY 600 #define WISP_MOUSE_KEY_REPEAT_PERIOD 50 #define WISP_MOUSE_KEY_REPEAT_DELAY 500 #define WISP_RESIZE_SPACE 6 #define WISP_TK WISP_RGB(255,0,255) typedef TQueue CInputMsgQueue; typedef TQueue CMsgQueue; typedef TMap CTimerMap; typedef TList CWndList; typedef TList CHotKeyList; #define WispReportMsg gpCurWisp->ReportMsg #define WispColor(i) gpCurWisp->m_pCurDrawObj->m_crSystem[i] #define WispDIB(f,i) gpCurWisp->m_DIBLib.LoadDIB(f,i) #define WispDIBList(f,w,h) gpCurWisp->m_DIBLib.LoadDIBList(f,w,h,0) #define WispTKDIB(f,i) gpCurWisp->m_DIBLib.LoadDIB(f,i,WISP_TK) #define WispTKDIBList(f,w,h) gpCurWisp->m_DIBLib.LoadDIBList(f,w,h,0,WISP_TK) #define WispTKDIBListDIB(f,w,h,i) gpCurWisp->m_DIBLib.LoadDIBList(f,w,h,0,WISP_TK)->GetDIB(i) class CWispApp; class CWispBaseWnd; class CWispWnd; class CWispFont; class CWispTipWnd; class CWispBase { friend class CWispBaseWnd; friend class CWispDC; public: CWispBase(); virtual ~CWispBase(); public: ////////////////////////////////////////////////////////////////////////////////////////////////// //ƽ̨ؽӿ virtual bool Init(); virtual void Release(); //Frame virtual bool CreateFrame(WISP_CHAR*WndName,int Width,int Height,int Bpp)=0; virtual void DestroyFrame()=0; virtual bool ResizeHostFrame(int Width,int Height); virtual bool ResizingFrame(int Width,int Height); virtual bool MoveFrame(int dx,int dy); //Mouse Input virtual void SetMouseCaptureNotify(); virtual void ReleaseMouseCaptureNotify(); //Msg Thread virtual bool WakeUpMsgThread(); virtual bool SleepMsgThread(); virtual void EnterCriticalSection(); virtual void LeaveCriticalSection(); //GDI virtual void BeginDraw(WISP_RECT*pUpdateRect); virtual void EndDraw(WISP_RECT*pUpdateRect); virtual void ChangeCursor(IN UINT CursorType,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize,IN CWispDIB*pDIB=NULL); virtual void ChangeHostCursor(IN NUM_PTR CursorData,OUT WISP_POINT*pMouseHotPT,OUT WISP_SIZE*pMouseSize); virtual void UpdateFrameBuffer(); virtual void UpdateCursor(); //Timer virtual bool InsertTimerNotify(WISP_TIMER*pTimer); virtual bool RemoveTimerNotify(WISP_TIMER*pTimer); //Pal virtual COLORREF GetPalColor(int Index); virtual bool SetPalColor(int Index,COLORREF Color); virtual void LoadPalette(); //ƽ̨ؽӿ ////////////////////////////////////////////////////////////////////////////////////////////////// public: virtual void Pump(); virtual void BlockPump(CWispBaseWnd*pWnd); virtual bool PumpCondition(); virtual WISP_PSTR GetClipboardString(); virtual bool SetClipboardString(WISP_PCSTR String); virtual void GetFrameBufferDrawHAL(WISP_FRAME_BUFFER*pFrameBuffer); virtual void DispatchMousePosChg(IN int PosX,IN int PosY); virtual void OnMousePosChg(IN int PosX,IN int PosY); virtual void DispatchMouseMove(IN int DeltaX,IN int DeltaY); virtual void OnMouseMove(IN int DeltaX,IN int DeltaY); virtual void DispatchMouseWheel(IN int DeltaZ); virtual void OnMouseWheel(IN int DeltaZ); virtual void DispatchMouseButtonDBClick(UINT KeyType); virtual void OnMouseButtonDBClick(UINT KeyType); virtual void DispatchKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode = 0); virtual void OnKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode = 0); virtual void DispatchTimer(int MilliSec); virtual void OnTimer(int MilliSec); virtual void OnFrameBufferBppChg(int Bpp); virtual void SetMousePos(int x,int y); virtual bool SelectDirForm(OUT WISP_PSTR szDir,WISP_PCSTR szTitle = NULL){return false;} virtual bool SelectFileForm(IN WISP_PCSTR szInitDir,WISP_PCSTR szFilter,bool bSave,OUT WISP_PSTR szFileName,int Length){return false;} void LockUpdate(); void UnlockUpdate(); void LockKey(); void UnlockKey(); void LockTimer(); void UnlockTimer(); void StartMouseKeyRep(UINT RepKeyIndex); void StopMouseKeyRep(); void RedrawNextTime(); public: ////////////////////////////////////////////////////////////////////////////////////////////////// //Ļת void* GetScreenBuffer(IN int x,IN int y); bool CopyToScreen(WISP_FRAME_BUFFER*pRealScreen,WISP_POINT*pPT=NULL,WISP_RECT*pUpdateRect=NULL); void AdjustColor(); //Ļת ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// //Ϣ public: //ںϢ bool MergeMessage(IN WISP_MSG*pNewMsg,INOUT WISP_MSG*pMergeMsg); //ϢеһϢ bool GetMessage(OUT WISP_MSG*pMsg); //ϢзһϢֱϢӦŷء bool SendMessage(IN WISP_MSG*pMsg); //ϢзһϢء bool PostMessage(IN WISP_MSG*pMsg); //ɷϢ bool DispatchMessage(IN WISP_MSG*pMsg); void DispatchMsg(); void DispatchInputMsg(); bool SelectDrawObject(CWispDrawObj*pDrawObj); bool m_bActive; bool m_bMsgSleeping; CWispDrawObj* m_pCurDrawObj; CWispDrawObj m_DefDrawObj; CWispDIBDrawObj m_DIBDrawObj; CWispDrawHAL m_NotSupportDrawHAL; CWispDraw32Bit m_DrawHAL32Bit; CWispDraw24Bit m_DrawHAL24Bit; CWispDraw16Bit m_DrawHAL16Bit; CWispDraw8Bit m_DrawHAL8Bit; CWispDraw4Bit m_DrawHAL4Bit; //Ϣ ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// // public: CWispString m_ClipboardString; bool m_KeyMap[WISP_VK_COUNT]; bool m_LockMap[WISP_VK_LOCK_COUNT]; WISP_POINT m_MousePT; WISP_POINT m_PrevMousePT; WISP_POINT m_MouseHotPT; WISP_SIZE m_MouseSize; WISP_RECT m_LastMouseRect; UINT m_LastMouseClickHitAreaType; UINT m_LastMouseClickHitCtrlType; bool m_bUpdate; int m_LockRef; UINT m_CursorType; UINT m_CursorTypeBak; CWispDIB* m_pCursorDIB; CWispDIB* m_pCursorDIBBak; int m_ModelLevel; CWispDIB* GetDefDIB(IN UINT ID); void ChangeCursorType(IN UINT DIBID); void ChangeCursorType(IN CWispDIB*pDIB); void ChangeHostCursorType(IN NUM_PTR CursorData); void RestorCursorType(); private: void ProcessRepeatKeyEvent(); bool OnProcessKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode); bool OnProcessMouseKeyEvent(IN UINT KeyType,IN bool bKeyDown,IN UINT ScanCode); WISP_CHAR IsCharKey(IN UINT KeyType); // ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// // public: bool SaveScreen(PCSTR FileName); int MsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType = 0,CWispBaseWnd* pParentWnd = NULL); public: bool KeySimulateMouse(IN UINT KeyType,IN bool bKeyDown); void PrintWispParam(); virtual void ReportMsg(IN const WISP_CHAR* Format,...); // ////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////// //ڹ public: CWispWnd* m_pRootWnd; CWispWnd* m_pTopMostRootWnd; CWispTipWnd* m_pHelpTipWnd; void InsertWnd(IN CWispBaseWnd*pParentWnd,IN CWispBaseWnd*pNewWnd); void RemoveWnd(IN CWispBaseWnd*pWnd); void RemoveWndMsg(IN CWispBaseWnd*pWnd); void CaptureMouseEvent(IN CWispBaseWnd*pWnd); CWispBaseWnd* WindowFromPoint(IN WISP_POINT*pPoint,IN CWispBaseWnd*pParentWnd = NULL); void SendLanguageChangeNotify(CWispBaseWnd*pParentWnd=NULL); virtual int GetMetrics(IN UINT Type); void BeginMoveWnd(CWispBaseWnd*pWnd=NULL); void EndMoveWnd(); void SetKeyboardLayer(int nLayer){m_iKeyboardLayer=nLayer;}; public: char m_CurDir[MAX_FN_LEN]; PCSTR m_pszDiskList; CWispBaseWnd* m_pMoveWnd; CWispBaseWnd* m_pDragWnd; WISP_POINT m_BeginPT; CPFSFileIO m_PFSFileIO; CWispFont m_FontList[WISP_FONT_COUNT]; CWispBaseWnd* m_pMouseEventWnd; CWispBaseWnd* m_pFocusWnd; CWispBaseWnd* m_pModalWnd; CWispDIB m_DefDIB[WISP_DI_COUNT]; CWispDIBLib m_DIBLib; int m_Metrics[WISP_SM_COUNT]; //ϵͳߴ WISP_FRAME_BUFFER m_FrameBuffer; CInputMsgQueue m_InputMsgQueue; CMsgQueue m_MsgQueue; CTimerMap m_TimerMap; CHotKeyList m_HotKeyList; bool m_bNeedUpdate; bool m_bOldNeedUpdate; COLORREF m_PalColors[256]; UINT m_RepKeyIndex; int m_RepKeyElapse; int m_RepKeyPeriod; UINT m_ModKeyState; public: CWndList m_KeyHookWndList; CWndList m_MouseMoveHookWndList; bool m_KeySimulateMouse; bool m_bHideMouse; int m_KeySimDelta; int m_BaseWndCount; int m_WndCount; int m_KeyLockRef; int m_TimerRef; int m_DefaultFontType; int m_iKeyboardLayer; //ڹ ////////////////////////////////////////////////////////////////////////////////////////////////// public: static WISP_PHYS_FONT_INFO m_PhysFontInfo[WISP_FONT_COUNT]; static COLORREF m_DefColorPal[256]; static WISP_CHAR m_VKKeyChar[2][WISP_VK_COUNT*2]; }; extern CWispBase* gpCurWisp; #endif ================================================ FILE: Project/Wisp/Source/WispBaseWnd.cpp ================================================ #include "StdAfx.h" #include "WispWnd.h" #include "WispBase.h" #include "WispTipWnd.h" WISP_MSG_MAP_BEGIN(CWispBaseWnd) WISP_MSG_MAP(WISP_WM_CLOSE,OnClose) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP(WISP_WM_LOST_FOCUS,OnLostFocus) WISP_MSG_MAP(WISP_WM_MOUSE_ENTER,OnMouseEnter) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_BEGIN_MOVE,OnBeginMove) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_TIMER,OnTimer) WISP_BASE_WND_MSG_MAP_END bool CWispBaseWnd::OnClose(IN WISP_MSG*pMsg) { return Destroy(); } bool CWispBaseWnd::OnGetFocus(IN WISP_MSG*pMsg) { if(SendCmdMsg(WISP_CMD_CTRL_GET_FOCUS)==false) return false; Top(); return true; } bool CWispBaseWnd::OnKeyEvent(WISP_MSG*pMsg) { if((m_AdvStyle & WISP_WAS_HELP_TIP) && pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON && pMsg->KeyEvent.bKeyDown) { RemoveTimer(WISP_ID_HELP_TIP); m_pWispBase->m_pHelpTipWnd->Show(WISP_SH_HIDDEN); m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd = NULL; } if(m_OwnerWnd && m_OwnerWnd->m_CtrlType == WISP_CTRL_FORM) { SendCmdMsg(pMsg->KeyEvent.bKeyDown?WISP_CMD_ITEM_KEY_DOWN:WISP_CMD_ITEM_KEY_UP,(int)pMsg->KeyEvent.KeyType,this); } return true; } bool CWispBaseWnd::OnLostFocus(IN WISP_MSG*pMsg) { return SendCmdMsg(WISP_CMD_CTRL_LOST_FOCUS,0,pMsg->hOtherWnd); } bool CWispBaseWnd::OnBeginMove(IN WISP_MSG*pMsg) { if((m_AdvStyle & WISP_WAS_HELP_TIP) && m_pWispBase->m_pHelpTipWnd->IsWindow()) { RemoveTimer(WISP_ID_HELP_TIP); m_pWispBase->m_pHelpTipWnd->Show(WISP_SH_HIDDEN); m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd = NULL; } return true; } bool CWispBaseWnd::OnTimer(IN WISP_MSG*pMsg) { if(m_AdvStyle & WISP_WAS_HELP_TIP && pMsg->Timer.ID == WISP_ID_HELP_TIP && PtInRect(&m_ScrWindowRect,&m_pWispBase->m_MousePT)) { RemoveTimer(WISP_ID_HELP_TIP); if(IsDisabled()==false) { m_pWispBase->m_pHelpTipWnd->SetWindowText(m_HelpTipString); m_pWispBase->m_pHelpTipWnd->AutoAdjustPostion(this); m_pWispBase->m_pHelpTipWnd->Show(); } } return true; } bool CWispBaseWnd::OnMouseLeave(IN WISP_MSG*pMsg) { m_pWispBase->CaptureMouseEvent((CWispBaseWnd*)pMsg->MouseEvent.hWndMouseAt); if(m_AdvStyle & WISP_WAS_HELP_TIP) { RemoveTimer(WISP_ID_HELP_TIP); m_pWispBase->m_pHelpTipWnd->Show(WISP_SH_HIDDEN); m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd = NULL; } return true; } bool CWispBaseWnd::OnMouseEnter(IN WISP_MSG*pMsg) { if(m_AdvStyle & WISP_WAS_HELP_TIP) { InsertTimer(WISP_ID_HELP_TIP,WISP_TIP_PERIOD,0,NULL); } return true; } bool CWispBaseWnd::SendCmdMsg(UINT CmdMsg,int CmdParam1,void*CmdParam2) { WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.hSrcWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = CmdMsg; Msg.Command.CtrlType = m_CtrlType; Msg.Command.Param1 = CmdParam1; Msg.Command.Param2 = CmdParam2; return SEND_MSG(&Msg); } bool CWispBaseWnd::PostEventMsg(UINT CmdMsg,int CmdParam1,void*CmdParam2) { WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.hSrcWnd = this; Msg.Msg = WISP_WM_EVENT; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = CmdMsg; Msg.Command.CtrlType = m_CtrlType; Msg.Command.Param1 = CmdParam1; Msg.Command.Param2 = CmdParam2; return POST_MSG(&Msg); } void CWispBaseWnd::PostCloseMsg() { WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_CLOSE; POST_MSG(&Msg); } bool CWispBaseWnd::SendCloseMsg() { WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_CLOSE; return SEND_MSG(&Msg); } CWispBaseWnd::CWispBaseWnd() { m_Style=0; m_ShowMode=WISP_SH_NULL; m_State=WISP_WST_INVAILD; m_ParentWnd = NULL; m_CtrlType = WISP_CTRL_BASE_WND; m_pUpdateRect=NULL; m_WndFlag = 0; } CWispBaseWnd::~CWispBaseWnd() { } bool CWispBaseWnd::Create( IN WISP_PCSTR Name,IN const CWispRect&Rect,IN CWispBaseWnd*pParentWnd, IN UINT CmdID,IN UINT Style,IN UINT ShowMode) { return Create(Name,Rect.x,Rect.y,Rect.cx,Rect.cy,pParentWnd,CmdID,Style,ShowMode); } bool CWispBaseWnd::Create( IN WISP_PCSTR Name,IN int x,IN int y,IN int cx,IN int cy, IN CWispBaseWnd*pParentWnd,IN UINT CmdID,IN UINT Style,IN UINT ShowMode) { WISP_MSG Msg; m_pWispBase = gpCurWisp; CODE_ASSERT(IsWindow()==false); if(pParentWnd==NULL) { if(m_pWispBase->m_pRootWnd==NULL) { m_pWispBase->m_pRootWnd=(CWispWnd*)this; m_pWispBase->m_pMouseEventWnd=this; m_pWispBase->m_pFocusWnd=this; pParentWnd=(CWispBaseWnd*)m_pWispBase->m_pRootWnd; m_pWispBase->m_Metrics[WISP_SM_SCREEN_CX]=cx; m_pWispBase->m_Metrics[WISP_SM_SCREEN_CY]=cy; m_pWispBase->SetMousePos(m_pWispBase->m_FrameBuffer.Width/2,m_pWispBase->m_FrameBuffer.Height/2); STZeroMemory(m_pWispBase->m_LastMouseRect); m_pWispBase->ChangeCursorType(WISP_CT_ARROW); m_pWispBase->OnFrameBufferBppChg(m_pWispBase->m_FrameBuffer.Bpp); } else pParentWnd=(CWispBaseWnd*)m_pWispBase->m_pTopMostRootWnd; } if((CWispBaseWnd*)m_pWispBase->m_pRootWnd==this) { m_ScrWindowRect.x=x; m_ScrWindowRect.y=y; } else { m_ScrWindowRect.x=((CWispWnd*)pParentWnd)->m_ScrClientRect.x+x; m_ScrWindowRect.y=((CWispWnd*)pParentWnd)->m_ScrClientRect.y+y; } m_WindowRect.x = m_WindowRect.y = 0; m_WindowRect.cx = m_ScrWindowRect.cx=cx; m_WindowRect.cy = m_ScrWindowRect.cy=cy; m_Style=Style; m_State=WISP_WST_NORMAL; m_CmdID=CmdID; m_PrevModalWnd=m_PrevWnd=m_NextWnd=m_ChildWnd=m_ChildTopWnd=m_ParentWnd=NULL; m_pWispBase->InsertWnd(pParentWnd,this); m_OwnerWnd = m_ParentWnd; if(m_WindowDC.AttachWnd(this,&m_ScrWindowRect)==false) return false; if(Name) m_WndText = Name; if((m_Style & WISP_WS_ADV_WND)==0) { if(InitWnd()==false) { m_WndText.Empty(); return false; } m_WndFlag = WISP_WND_EXIST_FLAG; Msg.hWnd=this; Msg.Msg=WISP_WM_CREATE; if(SEND_MSG(&Msg)==false) { Destroy(); return false; } Show(ShowMode); } else m_WndFlag = WISP_WND_EXIST_FLAG; return true; } bool CWispBaseWnd::InitWnd() { m_WndData = NULL; m_ShowMode = WISP_SH_NULL; m_AdvStyle = WISP_WAS_NULL; m_pUpdateRect = NULL; m_LockUpdateRef = 0; return true; } bool CWispBaseWnd::Destroy() { WISP_MSG Msg; CWispBaseWnd*pWispWnd,*pDelWispWnd; if(IsWindow()==false) return false; Msg.Msg = WISP_WM_DESTROY; Msg.hWnd = this; if(SEND_MSG(&Msg)==false) return false; if(m_pWispBase->m_pMouseEventWnd==this) m_pWispBase->m_pMouseEventWnd=(CWispBaseWnd*)m_pWispBase->m_pRootWnd; pWispWnd=m_ChildWnd; while(pWispWnd) { pDelWispWnd=pWispWnd; pWispWnd=pWispWnd->m_NextWnd; if(pDelWispWnd->Destroy()==false) return false; } m_pWispBase->RemoveWndMsg(this); m_pWispBase->RemoveWnd(this); m_WindowDC.Detach(); if(m_pWispBase->m_pFocusWnd==this) { if((CWispBaseWnd*)m_pWispBase->m_pRootWnd==this) m_pWispBase->m_pFocusWnd=NULL; else m_pWispBase->m_pFocusWnd=(CWispBaseWnd*)m_pWispBase->m_pRootWnd; } if(m_pWispBase->m_pModalWnd==this) { m_pWispBase->m_pModalWnd = m_PrevModalWnd; m_PrevModalWnd = NULL; } CTimerMap::IT Iter=m_pWispBase->m_TimerMap.Begin(); while(Iter!=m_pWispBase->m_TimerMap.End()) { if(Iter.Key().hWnd==this) { CTimerMap::IT DelIter=Iter; Iter++; m_pWispBase->m_TimerMap.Remove(DelIter); } else { Iter++; } } UnhookKeyEvent(); UnhookMouseMoveEvent(); m_WndText.Empty(); if(m_pWispBase->m_pHelpTipWnd==this) m_pWispBase->m_pHelpTipWnd = NULL; if( m_pWispBase->m_pHelpTipWnd && m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd==this && m_pWispBase->m_pHelpTipWnd->m_ShowMode != WISP_SH_HIDDEN) { m_pWispBase->m_pHelpTipWnd->Show(WISP_SH_HIDDEN); m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd = NULL; } if( m_pWispBase->m_pRootWnd!=this && m_pWispBase->m_pRootWnd && m_ShowMode!=WISP_SH_HIDDEN) { m_pWispBase->m_pRootWnd->UpdateSelfAndChild(&m_ScrWindowRect,this); m_pWispBase->RedrawNextTime(); } m_State=WISP_WST_INVAILD; m_WndFlag = 0; m_ShowMode=WISP_SH_NULL; if((m_Style & WISP_WS_ADV_WND)==0&&(m_AdvStyle&WISP_WAS_AUTO_DELETE)) delete this; return true; } void CWispBaseWnd::RecalcLayout() { m_WindowRect.x=m_WindowRect.y=0; m_WindowRect.cx=m_ScrWindowRect.cx; m_WindowRect.cy=m_ScrWindowRect.cy; } bool CWispBaseWnd::Show(IN UINT ShowMode) { if(m_ShowMode==ShowMode) return true; if(m_ShowMode==WISP_SH_HIDDEN && ShowMode!=WISP_SH_HIDDEN) OnShow(); m_ShowMode=ShowMode; if(ShowMode == WISP_SH_MODAL) { if(m_pWispBase->m_pModalWnd!=this) { m_PrevModalWnd = m_pWispBase->m_pModalWnd; m_pWispBase->m_pModalWnd = this; } Top(); Update(); return true; } else if(ShowMode == WISP_SH_MODAL_BLOCK) { if(m_pWispBase->m_pModalWnd!=this) { m_PrevModalWnd = m_pWispBase->m_pModalWnd; m_pWispBase->m_pModalWnd = this; Top(); Update(); m_pWispBase->BlockPump(this); return true; } } else { if(m_pWispBase->m_pModalWnd==this) { m_pWispBase->m_pModalWnd = m_PrevModalWnd; m_PrevModalWnd = NULL; } } if(m_ShowMode==WISP_SH_HIDDEN) { if(m_pWispBase->m_pMouseEventWnd==this) { WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_MOUSE_LEAVE; Msg.MouseEvent.DeltaX = Msg.MouseEvent.DeltaY = 0; Msg.MouseEvent.HitAreaType = WISP_HIT_WND_NON; Msg.MouseEvent.HitCtrlType = WISP_HIT_CTRL_NON; Msg.MouseEvent.hWndMouseAt = this; SEND_MSG(&Msg); } OnHide(); } Update(); return true; } void CWispBaseWnd::Top(bool bUpdate) { CWispBaseWnd*pParentWnd; if(m_ParentWnd ==NULL || this==m_ParentWnd) return; pParentWnd=m_ParentWnd; m_pWispBase->RemoveWnd(this); m_pWispBase->InsertWnd(pParentWnd,this); pParentWnd->Top(bUpdate); if(m_pWispBase->m_pTopMostRootWnd && pParentWnd==(CWispBaseWnd*)m_pWispBase->m_pRootWnd && this!=(CWispBaseWnd*)m_pWispBase->m_pTopMostRootWnd) m_pWispBase->m_pTopMostRootWnd->Top(bUpdate); if(bUpdate) Update(); } void CWispBaseWnd::UpdateSelfAndChild(IN const WISP_RECT*pRect,CWispBaseWnd*pExcChildWnd) { WISP_RECT UpdateRect,NewUpdateRect; if(pRect) { if(m_pUpdateRect) { NewUpdateRect = *pRect; UpdateRect = *m_pUpdateRect; m_pUpdateRect=&m_UpdateRect; MergeRect(&UpdateRect,&NewUpdateRect,m_pUpdateRect); } else { m_UpdateRect=*pRect; m_pUpdateRect=&m_UpdateRect; } /*@@*/ if(m_pUpdateRect==NULL) return; if(ClipRect(m_pUpdateRect,&m_WindowRect)==false) { m_pUpdateRect=NULL; return; } } else { m_pUpdateRect=&m_WindowRect; } CWispBaseWnd*pUpdateWnd=m_ChildWnd; while(pUpdateWnd) { if(pUpdateWnd!=pExcChildWnd && m_pUpdateRect /*@@*/) { UpdateRect = *m_pUpdateRect; UpdateRect.x+=m_ScrWindowRect.x - pUpdateWnd->m_ScrWindowRect.x; UpdateRect.y+=m_ScrWindowRect.y - pUpdateWnd->m_ScrWindowRect.y; if(pUpdateWnd->m_pUpdateRect) { MergeRect(&UpdateRect,pUpdateWnd->m_pUpdateRect,&NewUpdateRect); pUpdateWnd->UpdateSelfAndChild(&NewUpdateRect,pExcChildWnd); } else { pUpdateWnd->UpdateSelfAndChild(&UpdateRect,pExcChildWnd); } } pUpdateWnd=pUpdateWnd->m_NextWnd; } } void CWispBaseWnd::Update(IN const WISP_RECT*pRect) { WISP_RECT UpdateRect,NewUpdateRect; if(m_LockUpdateRef>0) return; UpdateSelfAndChild(pRect); if(m_pWispBase->m_pRootWnd && m_pWispBase->m_pRootWnd!=this && m_pUpdateRect) { UpdateRect = *m_pUpdateRect; UpdateRect.x+=m_ScrWindowRect.x; UpdateRect.y+=m_ScrWindowRect.y; if(m_pWispBase->m_pRootWnd->m_pUpdateRect) { MergeRect(&UpdateRect,m_pWispBase->m_pRootWnd->m_pUpdateRect,&NewUpdateRect); m_pWispBase->m_pRootWnd->UpdateSelfAndChild(&NewUpdateRect,this); } else { m_pWispBase->m_pRootWnd->UpdateSelfAndChild(&UpdateRect,this); } } m_pWispBase->RedrawNextTime(); } bool CWispBaseWnd::IsScrPtIn(WISP_POINT*pPT) { return PtInRect(&m_ScrWindowRect,pPT); } void CWispBaseWnd::Move(IN int DeltaX,IN int DeltaY,IN bool bUpdate) { WISP_RECT OldRect,NewRect,UpdateRect; CWispBaseWnd*pChildWnd; WISP_MSG Msg; if(DeltaX==0 && DeltaY==0) return; Msg.hWnd=this; Msg.Msg=WISP_WM_MOVING; Msg.Move.DeltaX=DeltaX; Msg.Move.DeltaY=DeltaY; if(m_ParentWnd) OldRect = m_ScrWindowRect; if(SEND_MSG(&Msg)==false) return; m_ScrWindowRect.x+=DeltaX; m_ScrWindowRect.y+=DeltaY; RecalcLayout(); pChildWnd=m_ChildWnd; while(pChildWnd) { pChildWnd->Move(DeltaX,DeltaY,false); pChildWnd=pChildWnd->m_NextWnd; } Msg.hWnd=this; Msg.Msg=WISP_WM_MOVE; Msg.Move.DeltaX=DeltaX; Msg.Move.DeltaY=DeltaY; SEND_MSG(&Msg); RecalcLayout(); if(bUpdate) { if(m_ParentWnd) { NewRect = m_ScrWindowRect; MergeRect(&OldRect,&NewRect,&UpdateRect); UpdateRect.x-=m_ParentWnd->m_ScrWindowRect.x; UpdateRect.y-=m_ParentWnd->m_ScrWindowRect.y; m_ParentWnd->Update(&UpdateRect); } else { Update(); } } } void CWispBaseWnd::MoveToWindow(IN int PosX,IN int PosY,IN bool bUpdate) { if(this==(CWispBaseWnd*)m_pWispBase->m_pRootWnd) return; if(m_ParentWnd) Move(m_ParentWnd->m_ScrWindowRect.x+PosX-m_ScrWindowRect.x,m_ParentWnd->m_ScrWindowRect.y+PosY-m_ScrWindowRect.y,bUpdate); else Move(PosX-m_ScrWindowRect.x,PosY-m_ScrWindowRect.y,bUpdate); } void CWispBaseWnd::MoveToClient(IN int PosX,IN int PosY,IN bool bUpdate) { if(this==(CWispWnd*)m_pWispBase->m_pRootWnd) return; if(m_ParentWnd) Move(((CWispWnd*)m_ParentWnd)->m_ScrClientRect.x+PosX-m_ScrWindowRect.x,((CWispWnd*)m_ParentWnd)->m_ScrClientRect.y+PosY-m_ScrWindowRect.y,bUpdate); else Move(PosX-m_ScrWindowRect.x,PosY-m_ScrWindowRect.y,bUpdate); } void CWispBaseWnd::MoveToScreen(IN int PosX,IN int PosY,IN bool bUpdate) { if(this==(CWispWnd*)m_pWispBase->m_pRootWnd) return; Move(PosX-m_ScrWindowRect.x,PosY-m_ScrWindowRect.y,bUpdate); } bool CWispBaseWnd::MoveWindowToWindow(IN int x,IN int y,IN int cx,IN int cy,IN bool bUpdate) { MoveToWindow(x,y,bUpdate); return Resize(cx,cy,bUpdate); } bool CWispBaseWnd::MoveWindowToWindow(IN const WISP_RECT&Rect,IN bool bUpdate) { MoveToWindow(Rect.x,Rect.y,bUpdate); return Resize(Rect.cx,Rect.cy,bUpdate); } bool CWispBaseWnd::MoveWindowToClient(IN int x,IN int y,IN int cx,IN int cy,IN bool bUpdate) { MoveToClient(x,y,bUpdate); return Resize(cx,cy,bUpdate); } bool CWispBaseWnd::MoveWindowToClient(IN const WISP_RECT&Rect,IN bool bUpdate) { MoveToClient(Rect.x,Rect.y,bUpdate); return Resize(Rect.cx,Rect.cy,bUpdate); } bool CWispBaseWnd::Resize(IN int cx,IN int cy,IN bool bUpdate) { CWispBaseWnd*pChildWnd; WISP_RECT OldRect,NewRect,UpdateRect; WISP_MSG Msg; if(cx==m_WindowRect.cx && cy==m_WindowRect.cy) return true; MIN_LIMIT(cx,0); MIN_LIMIT(cy,0); if(m_Style & WISP_WS_ADV_WND) {//϶ڴСʱ״̬ if(((CWispWnd*)this)->m_MaxWndSize.cx && cx>((CWispWnd*)this)->m_MaxWndSize.cx) { if(m_State&WISP_WST_SIZING) return false; cx=((CWispWnd*)this)->m_MaxWndSize.cx; } if(((CWispWnd*)this)->m_MaxWndSize.cy && cy>((CWispWnd*)this)->m_MaxWndSize.cy) { if(m_State&WISP_WST_SIZING) return false; cy=((CWispWnd*)this)->m_MaxWndSize.cy; } } if(cx == -1) cx = m_WindowRect.cx; if(cy == -1) cy = m_WindowRect.cy; Msg.hWnd=this; Msg.Msg=WISP_WM_SIZING; Msg.Resize.NewSize.cx=cx; Msg.Resize.NewSize.cy=cy; if(m_ParentWnd) { OldRect = m_ScrWindowRect; OldRect.x -= m_ParentWnd->m_ScrWindowRect.x; OldRect.y -= m_ParentWnd->m_ScrWindowRect.y; } Msg.Resize.NewSizeDelta.cx = cx - m_ScrWindowRect.cx; Msg.Resize.NewSizeDelta.cy = cy - m_ScrWindowRect.cy; if(SEND_MSG(&Msg)==false) return false; m_ScrWindowRect.cx=cx; m_ScrWindowRect.cy=cy; RecalcLayout(); Msg.hWnd=this; Msg.Msg=WISP_WM_SIZE; SEND_MSG(&Msg); RecalcLayout(); pChildWnd = m_ChildWnd; while(pChildWnd) { Msg.hWnd=pChildWnd; Msg.Msg=WISP_WM_PARENT_RESIZE; SEND_MSG(&Msg); pChildWnd = pChildWnd->m_NextWnd; } if(bUpdate) { if(m_ParentWnd) { NewRect = m_ScrWindowRect; NewRect.x -= m_ParentWnd->m_ScrWindowRect.x; NewRect.y -= m_ParentWnd->m_ScrWindowRect.y; MergeRect(&OldRect,&NewRect,&UpdateRect); m_ParentWnd->Update(&UpdateRect); } else { Update(); } } return true; } void CWispBaseWnd::Center(CWispBaseWnd*pCenterWnd) { if(pCenterWnd==NULL) { pCenterWnd = m_pWispBase->m_pRootWnd; MoveToScreen((pCenterWnd->m_WindowRect.cx - m_WindowRect.cx)/2,(pCenterWnd->m_WindowRect.cy - m_WindowRect.cy)/2); } else { MoveToWindow((pCenterWnd->m_WindowRect.cx - m_WindowRect.cx)/2 + pCenterWnd->m_ScrWindowRect.x, (pCenterWnd->m_WindowRect.cy - m_WindowRect.cy)/2 + pCenterWnd->m_ScrWindowRect.y); } } void CWispBaseWnd::SetOwner(CWispBaseWnd*pOwnerWnd) { m_OwnerWnd = pOwnerWnd; } HANDLE CWispBaseWnd::GetTimer(UINT TimerID) { WISP_TIMER_KEY Key; Key.hWnd = this; Key.ID = TimerID; CTimerMap::IT Iter=m_pWispBase->m_TimerMap.Find(Key); if(Iter==m_pWispBase->m_TimerMap.End()) return NULL; return &(*Iter); } HANDLE CWispBaseWnd::InsertTimer(UINT TimerID,int Period,UINT UserData,void*UserPtr) { if(GetTimer(TimerID)) return NULL; WISP_TIMER_KEY Key; Key.hWnd = this; Key.ID = TimerID; CTimerMap::IT Iter = m_pWispBase->m_TimerMap.InsertUnique(Key); if(Iter==m_pWispBase->m_TimerMap.End()) return NULL; Iter->Period = Period; Iter->UserData = UserData; Iter->UserPtr = UserPtr; Iter->Elapse = 0; if(m_pWispBase->InsertTimerNotify((WISP_TIMER*)&(*Iter))==false) { m_pWispBase->m_TimerMap.Remove(Iter); return NULL; } return &(*Iter); } bool CWispBaseWnd::RemoveTimer(UINT TimerID) { WISP_TIMER_KEY Key; Key.hWnd = this; Key.ID = TimerID; CTimerMap::IT Iter = m_pWispBase->m_TimerMap.Find(Key); if(Iter==m_pWispBase->m_TimerMap.End()) return false; if(m_pWispBase->RemoveTimerNotify(&*Iter)==false) return false; m_pWispBase->m_TimerMap.Remove(Iter); return false; } bool CWispBaseWnd::RemoveTimer(HANDLE hTimer) { CTimerMap::IT Iter=*(WISP_TIMER*)hTimer; m_pWispBase->m_TimerMap.Remove(Iter); return true; } bool CWispBaseWnd::SetTimerData(HANDLE hTimer,UINT UserData,void*UserPtr) { CTimerMap::IT Iter=*(WISP_TIMER*)hTimer; Iter->UserData = UserData; Iter->UserPtr = UserPtr; return true; } bool CWispBaseWnd::SetTimerData(UINT TimerID,UINT UserData,void*UserPtr) { HANDLE hTimer = GetTimer(TimerID); if(hTimer==NULL) return false; return SetTimerData(hTimer,UserData,UserPtr); } bool CWispBaseWnd::ModifyTimerPeriod(HANDLE hTimer,int Period) { CTimerMap::IT Iter=*(WISP_TIMER*)hTimer; Iter->Period = Period; Iter->Elapse%=Period; return true; } bool CWispBaseWnd::ModifyTimerPeriod(UINT TimerID,int Period) { HANDLE hTimer = GetTimer(TimerID); if(hTimer==NULL) return false; return ModifyTimerPeriod(hTimer,Period); } int CWispBaseWnd::MsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType) { return m_pWispBase->MsgBox(pText,pCaption,uType); } CWispBaseWnd*CWispBaseWnd::Focus() { WISP_MSG Msg; CODE_ASSERT(IsWindow()); if(m_pWispBase->m_pFocusWnd==this) return this; Msg.hWnd=this; Msg.hOtherWnd = m_pWispBase->m_pFocusWnd; Msg.Msg=WISP_WM_GET_FOCUS; if(SEND_MSG(&Msg)) { Msg.Msg = WISP_WM_LOST_FOCUS; Msg.hWnd = Msg.hOtherWnd; Msg.hOtherWnd = this; if(SEND_MSG(&Msg)) m_pWispBase->m_pFocusWnd=this; } Update(); m_pWispBase->CaptureMouseEvent(this); return m_pWispBase->m_pFocusWnd; } bool CWispBaseWnd::IsTopMostWindow() { return this==m_pWispBase->m_pTopMostRootWnd; } bool CWispBaseWnd::IsWindow() { return m_WndFlag==WISP_WND_EXIST_FLAG; } bool CWispBaseWnd::IsChildWndOf(CWispBaseWnd*pParentWnd) { CWispBaseWnd*pWnd = m_ParentWnd; while(pWnd) { if(pWnd==pParentWnd) return true; pWnd=pWnd->m_ParentWnd; } return false; } bool CWispBaseWnd::HookKeyEvent() { for(CWndList::IT Iter = m_pWispBase->m_KeyHookWndList.Begin();Iter!=m_pWispBase->m_KeyHookWndList.End();Iter++) { if(*Iter==this) return false; } m_pWispBase->m_KeyHookWndList.Append(this); return true; } bool CWispBaseWnd::UnhookKeyEvent() { for(CWndList::IT Iter = m_pWispBase->m_KeyHookWndList.Begin();Iter!=m_pWispBase->m_KeyHookWndList.End();Iter++) { if(*Iter==this) { m_pWispBase->m_KeyHookWndList.Remove(Iter); return true; } } return false; } bool CWispBaseWnd::HookMouseMoveEvent() { for(CWndList::IT Iter = m_pWispBase->m_MouseMoveHookWndList.Begin();Iter!=m_pWispBase->m_MouseMoveHookWndList.End();Iter++) { if(*Iter==this) return false; } m_pWispBase->m_MouseMoveHookWndList.Append(this); return true; } bool CWispBaseWnd::UnhookMouseMoveEvent() { for(CWndList::IT Iter = m_pWispBase->m_MouseMoveHookWndList.Begin();Iter!=m_pWispBase->m_MouseMoveHookWndList.End();Iter++) { if(*Iter==this) { m_pWispBase->m_MouseMoveHookWndList.Remove(Iter); return true; } } return false; } HANDLE CWispBaseWnd::RegisterHotKey(UINT EventID,UINT KeyType,UINT Modifier,UINT Style) { CHotKeyList::IT Iter = m_pWispBase->m_HotKeyList.Append(); Iter->EventID = EventID; Iter->KeyType = KeyType; Iter->Modifier = Modifier; Iter->Style = Style; Iter->hWnd = this; return &(*Iter); } bool CWispBaseWnd::UnregisterHotKey(HANDLE hHotKey) { for(CHotKeyList::IT It = m_pWispBase->m_HotKeyList.Begin();It!=m_pWispBase->m_HotKeyList.End();It++) { if(&(*It) == (WISP_HOTKEY_ITEM*)hHotKey) { m_pWispBase->m_HotKeyList.Remove(It); return true; } } return false; } bool CWispBaseWnd::SetWindowText(const WISP_CHAR* pString) { m_WndText = pString; Update(); return true; } bool CWispBaseWnd::EnableWindow(bool bState) { bool OldState = IsEnabled(); if(bState) { m_Style&=~WISP_WS_DISABLED; } else { m_Style|=WISP_WS_DISABLED; if((m_AdvStyle & WISP_WAS_HELP_TIP)&&m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd==this) { RemoveTimer(WISP_ID_HELP_TIP); m_pWispBase->m_pHelpTipWnd->Show(WISP_SH_HIDDEN); m_pWispBase->m_pHelpTipWnd->m_pTipHelpWnd = NULL; } } RecalcLayout(); if(OldState!=bState) Update(); return OldState; } bool CWispBaseWnd::EnableHelpTip(const WISP_CHAR*pString) { if(pString==NULL) return false; m_HelpTipString = pString; m_AdvStyle|=WISP_WAS_HELP_TIP; return true; } bool CWispBaseWnd::DisableHelpTip() { m_HelpTipString.Empty(); m_AdvStyle&=~WISP_WAS_HELP_TIP; return true; } bool CWispBaseWnd::IsVisible() { if(IsWindow()==false) return false; return m_ShowMode!=WISP_SH_HIDDEN && (m_Style&WISP_WS_VIRTUAL)==0 && m_WindowRect.cx && m_WindowRect.cy; } ================================================ FILE: Project/Wisp/Source/WispBaseWnd.h ================================================ #ifndef _WISP_BASE_WND_H_ #define _WISP_BASE_WND_H_ #include "WispDC.h" #define WISP_WS_NORMAL_NO_MAX (WISP_WS_CAPTION | WISP_WS_BORDER | WISP_WS_BT_CLOSE | WISP_WS_BT_MIN | WISP_WS_SIZABLE) #define WISP_WS_NORMAL (WISP_WS_CAPTION | WISP_WS_BORDER | WISP_WS_BT_CLOSE | WISP_WS_BT_MIN | WISP_WS_BT_MAX | WISP_WS_SIZABLE) #define WISP_WS_FRAME (WISP_WS_CAPTION | WISP_WS_BORDER | WISP_WS_BT_CLOSE) /////////////////////////////////////////// //window style /////////////////////////////////////////// #define WISP_WS_NULL 0x00000000 #define WISP_WS_CAPTION 0x00000001 #define WISP_WS_BORDER 0x00000002 #define WISP_WS_THIN_BORDER 0x00000006 #define WISP_WS_BT_CLOSE 0x00000008 #define WISP_WS_BT_MAX 0x00000010 #define WISP_WS_BT_MIN 0x00000020 #define WISP_WS_BACK_TRANS 0x00000040 #define WISP_WS_SIZABLE 0x00000080 #define WISP_WS_VIRTUAL 0x00000100 #define WISP_WS_DISABLED 0x00000200 #define WISP_WS_MARKED 0x00000400 #define WISP_WS_DEFAULT 0x00000800 //Formȱʡؼ #define WISP_WS_ADV_WND 0x00008000 //WispBaseWndWispWnd /////////////////////////////////////////// //window advance style /////////////////////////////////////////// #define WISP_WAS_NULL 0x00000000 #define WISP_WAS_AUTO_DELETE 0x00000001 #define WISP_WAS_HELP_TIP 0x00000002 #define WISP_WAS_DRAG_WND 0x00000004 #define WISP_WAS_DISABLE_MSG_CS 0x00000010 /////////////////////////////////////////// //window show mode /////////////////////////////////////////// enum WISP_SH { WISP_SH_NULL=0, WISP_SH_NORMAL, WISP_SH_MINSIZE, WISP_SH_HIDDEN, WISP_SH_MODAL, WISP_SH_MODAL_BLOCK }; #define WISP_TIP_PERIOD 500 class CWispBase; #define SEND_MSG m_pWispBase->SendMessage #define POST_MSG m_pWispBase->PostMessage #define SYS_COLOR m_pWispBase->m_pCurDrawObj->m_crSystem #define SYS_METRICS m_pWispBase->m_Metrics #define WISP_WND_EXIST_FLAG 0x77777777 class CWispBaseWnd { public: CWispBaseWnd(); virtual ~CWispBaseWnd(); CWispBase* m_pWispBase; WISP_CTRL_TYPE m_CtrlType; UINT m_State; WISP_RECT m_ScrWindowRect; //Ļеλ WISP_RECT m_WindowRect; //ڴеλ UINT m_Style; UINT m_AdvStyle; UINT m_ShowMode; CWispString m_WndText; UINT m_CmdID; //CmdIDΪ0 CWispDC m_WindowDC; CWispBaseWnd* m_PrevWnd; CWispBaseWnd* m_NextWnd; CWispBaseWnd* m_ChildWnd; CWispBaseWnd* m_ChildTopWnd; CWispBaseWnd* m_ParentWnd; CWispBaseWnd* m_PrevModalWnd; CWispBaseWnd* m_OwnerWnd; void* m_WndData; CWispString m_HelpTipString; WISP_RECT m_UpdateRect; WISP_RECT* m_pUpdateRect; //Ҫ޸ģɸϵ int m_LockUpdateRef; UINT m_WndFlag; public: virtual bool Create( IN WISP_PCSTR Name,IN int x,IN int y,IN int cx,IN int cy,IN CWispBaseWnd*pParentWnd = NULL, IN UINT CmdID = 0,IN UINT Style=WISP_WS_NORMAL,IN UINT ShowMode=WISP_SH_NORMAL); virtual bool Destroy(); virtual void RecalcLayout(); virtual bool InitWnd(); virtual void SetOwner(CWispBaseWnd*pOwnerWnd); virtual bool SetWindowText(const WISP_CHAR* pString); virtual CWispString&GetWindowText(){return m_WndText;} virtual void Update(IN const WISP_RECT*pRect=NULL); virtual bool IsScrPtIn(WISP_POINT*pPT);//ڲWindowFromPoint,⴦ʹӴijЩλǸڵ virtual void OnHide(){} virtual void OnShow(){} bool Create( IN WISP_PCSTR Name,IN const CWispRect&Rect,IN CWispBaseWnd*pParentWnd = NULL, IN UINT CmdID = 0,IN UINT Style=WISP_WS_NORMAL,IN UINT ShowMode=WISP_SH_NORMAL); bool Show(IN UINT ShowMode = WISP_SH_NORMAL); void Top(bool bUpdate=true); void UpdateSelfAndChild(IN const WISP_RECT*pRect=NULL,CWispBaseWnd*pExcChildWnd=NULL); void Move(IN int DeltaX,IN int DeltaY,bool bUpdate = true); void MoveToWindow(IN int PosX,IN int PosY,bool bUpdate = true); void MoveToClient(IN int PosX,IN int PosY,bool bUpdate = true); void MoveToScreen(IN int PosX,IN int PosY,bool bUpdate = true); bool Resize(IN int cx,IN int cy,bool bUpdate = true); bool MoveWindowToWindow(IN int x,IN int y,IN int cx,IN int cy,bool bUpdate = true); bool MoveWindowToWindow(IN const WISP_RECT&Rect,bool bUpdate = true); bool MoveWindowToClient(IN int x,IN int y,IN int cx,IN int cy,bool bUpdate = true); bool MoveWindowToClient(IN const WISP_RECT&Rect,bool bUpdate = true); void Center(CWispBaseWnd*pCenterWnd = NULL); ///////////////////////////////////////////////////////////////////////////////// //Timer HANDLE GetTimer(UINT TimerID); HANDLE InsertTimer(UINT TimerID,int Period,UINT UserData=0,void*UserPtr=NULL); bool RemoveTimer(UINT TimerID); bool RemoveTimer(HANDLE hTimer); bool SetTimerData(UINT TimerID,UINT UserData=0,void*UserPtr=NULL); bool SetTimerData(HANDLE hTimer,UINT UserData=0,void*UserPtr=NULL); bool ModifyTimerPeriod(UINT TimerID,int Period); bool ModifyTimerPeriod(HANDLE hTimer,int Period); //Timer ///////////////////////////////////////////////////////////////////////////////// int MsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType = 0); CWispBaseWnd*Focus(); INLINE bool IsFocus(){return m_pWispBase->m_pFocusWnd==this;} bool IsTopMostWindow(); bool IsWindow(); bool IsChildWndOf(CWispBaseWnd*pParentWnd); bool HookKeyEvent(); bool HookMouseMoveEvent(); bool UnhookKeyEvent(); bool UnhookMouseMoveEvent(); HANDLE RegisterHotKey(UINT EventID,UINT KeyType,UINT Modifier,UINT Style = WISP_HKS_CHILD_WND); bool UnregisterHotKey(HANDLE hHotKey); bool EnableWindow(bool bState); bool EnableHelpTip(const WISP_CHAR*pString); bool DisableHelpTip(); void AddAdvStyle(UINT Style){m_AdvStyle|=Style;} void RemoveAdvStyle(UINT Style){m_AdvStyle&=~Style;} public: bool inline IsMarked(){return (m_Style&WISP_WS_MARKED)!=0;} bool inline IsDisabled(){return (m_Style&WISP_WS_DISABLED)!=0;} bool inline IsEnabled(){return (m_Style&WISP_WS_DISABLED)==0;} public: bool IsVisible(); bool SendCmdMsg(UINT CmdMsg,int CmdParam1=0,void*CmdParam2=NULL); bool PostEventMsg(UINT CmdMsg,int CmdParam1=0,void*CmdParam2=NULL); void PostCloseMsg(); bool SendCloseMsg(); void LockUpdate(){m_LockUpdateRef++;} void UnlockUpdate(){m_LockUpdateRef--;} public://Ϣӳ DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnClose) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG(OnLostFocus) DECLARE_WISP_MSG(OnMouseEnter) DECLARE_WISP_MSG(OnMouseLeave) DECLARE_WISP_MSG(OnTimer) DECLARE_WISP_MSG(OnBeginMove) DECLARE_WISP_MSG(OnKeyEvent) }; #endif ================================================ FILE: Project/Wisp/Source/WispButton.cpp ================================================ #include "StdAfx.h" #include "WispButton.h" WISP_MSG_MAP_BEGIN(CWispButton) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_MOVE,OnMove) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP_END(CWispBaseWnd) bool CWispButton::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType==WISP_VK_LBUTTON || pMsg->KeyEvent.KeyType==WISP_VK_RETURN) { if(pMsg->KeyEvent.bKeyDown) { if(m_bPressed==false) { m_bPressed = true; Update(); WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.hSrcWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_BUTTON; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_BT_DOWN; SEND_MSG(&Msg); } } else { if(m_bPressed) { m_bPressed = false; Update(); WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.hSrcWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_BUTTON; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_BT_UP; if(SEND_MSG(&Msg)) { Msg.hWnd=m_OwnerWnd; Msg.Msg=WISP_WM_EVENT; POST_MSG(&Msg); } return true; } } } return true; } void CWispButton::RecalcLayout() { CWispBaseWnd::RecalcLayout(); if(IsDisabled()) { if(m_bMouseInBTRect) { m_bMouseInBTRect=false; } return; } if(PtInRect(&m_ScrWindowRect, &m_pWispBase->m_MousePT)!=m_bMouseInBTRect) { m_bMouseInBTRect=!m_bMouseInBTRect; Update(); } } bool CWispButton::OnUpdate(IN WISP_MSG*pMsg) { UINT State; COLORREF OrgTextColor; State = STATUS_NORMAL; if(m_bMouseInBTRect) State = STATUS_HOVER; if(m_bPressed) State = STATUS_DOWN; CWispRect rcBtn(m_WindowRect); // client background if((m_Style & WISP_WS_BACK_TRANS)==0) { m_pWispBase->m_pCurDrawObj->DrawButtonClient(&m_WindowDC, &m_WindowRect, State); } // back dib if(*m_DIBList) { int x,y; if(IsDisabled()) { if(m_DIBList[WISP_BT_DIB_DISABLE]) { x = CENTER_ALGN(m_DIBList[WISP_BT_DIB_DISABLE]->m_FrameBuffer.Width,m_WindowRect.cx); y = CENTER_ALGN(m_DIBList[WISP_BT_DIB_DISABLE]->m_FrameBuffer.Height,m_WindowRect.cy); m_WindowDC.DrawDIB(x,y,m_DIBList[WISP_BT_DIB_DISABLE]); } else { x = CENTER_ALGN(m_DIBList[WISP_BT_DIB_NORMAL]->m_FrameBuffer.Width,m_WindowRect.cx); y = CENTER_ALGN(m_DIBList[WISP_BT_DIB_NORMAL]->m_FrameBuffer.Height,m_WindowRect.cy); m_WindowDC.DrawGrayDIB(x,y,m_DIBList[WISP_BT_DIB_NORMAL]); } } else if(m_bPressed) { if(m_DIBList[WISP_BT_DIB_DOWN]) { x = CENTER_ALGN(m_DIBList[WISP_BT_DIB_DOWN]->m_FrameBuffer.Width,m_WindowRect.cx); y = CENTER_ALGN(m_DIBList[WISP_BT_DIB_DOWN]->m_FrameBuffer.Height,m_WindowRect.cy); m_WindowDC.DrawDIB(x,y,m_DIBList[WISP_BT_DIB_DOWN]); } else { x = CENTER_ALGN(m_DIBList[WISP_BT_DIB_NORMAL]->m_FrameBuffer.Width,m_WindowRect.cx)+1; y = CENTER_ALGN(m_DIBList[WISP_BT_DIB_NORMAL]->m_FrameBuffer.Height,m_WindowRect.cy)+1; m_WindowDC.DrawDIB(x,y,m_DIBList[WISP_BT_DIB_NORMAL]); } } else if(m_bMouseInBTRect && m_DIBList[WISP_BT_DIB_HOVER]) { x = CENTER_ALGN(m_DIBList[WISP_BT_DIB_HOVER]->m_FrameBuffer.Width,m_WindowRect.cx); y = CENTER_ALGN(m_DIBList[WISP_BT_DIB_HOVER]->m_FrameBuffer.Height,m_WindowRect.cy); m_WindowDC.DrawDIB(x,y,m_DIBList[WISP_BT_DIB_HOVER]); } else { x = CENTER_ALGN(m_DIBList[WISP_BT_DIB_NORMAL]->m_FrameBuffer.Width,m_WindowRect.cx); y = CENTER_ALGN(m_DIBList[WISP_BT_DIB_NORMAL]->m_FrameBuffer.Height,m_WindowRect.cy); m_WindowDC.DrawDIB(x,y,m_DIBList[WISP_BT_DIB_NORMAL]); } } // border if(m_Style & WISP_BS_TOOLBAR_BT) { switch(State) { case STATUS_HOVER: m_WindowDC.DrawFrameRect(&m_WindowRect); break; case STATUS_DOWN: m_WindowDC.DrawFrameRect(&m_WindowRect,false); break; } } else if((m_Style & WISP_BS_NOBORDER)==0) { if(m_DIBList[State]==NULL) m_pWispBase->m_pCurDrawObj->DrawButtonFrameRect(&m_WindowDC, &rcBtn, State); if(State == STATUS_HOVER) rcBtn.DeflateRect(3, 3); else rcBtn.DeflateRect(1, 1); } // text if(m_WndText.m_Length) { if(m_bSetTextPos) rcBtn = m_TextRect; if(State != STATUS_HOVER) rcBtn.DeflateRect(2, 2); UINT uStyle = WISP_DT_SINGLELINE|WISP_DT_VCENTER; switch(m_Style & WISP_BS_TEXT_POS_MASK) { case WISP_BS_TEXT_LEFT: uStyle|=WISP_DT_LEFT; break; case WISP_BS_TEXT_RIGHT: uStyle|=WISP_DT_RIGHT; break; default://WISP_BS_TEXT_CENTER uStyle|=WISP_DT_CENTER; break; } if(IsDisabled()) { OrgTextColor = m_WindowDC.GetTextColor(); m_WindowDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRAY]); } if(State == STATUS_DOWN) { rcBtn.x++; rcBtn.y++; } m_WindowDC.DrawString(m_WndText, &rcBtn, uStyle); if(IsDisabled()) { m_WindowDC.SetTextColor(OrgTextColor); } } return false; } bool CWispButton::OnMouseMove(IN WISP_MSG*pMsg) { if(m_bMouseInBTRect) return true; HoverNotify(); SendCmdMsg(WISP_CMD_ITEM_HOVER); m_bMouseInBTRect = true; Update(); return true; } bool CWispButton::OnMouseLeave(IN WISP_MSG*pMsg) { m_bPressed = m_bMouseInBTRect = false; UnhoverNotify(); SendCmdMsg(WISP_CMD_ITEM_UNHOVER); Update(); return true; } bool CWispButton::OnMove(IN WISP_MSG*pMsg) { if(m_bMouseInBTRect) { m_bMouseInBTRect = PtInRect(&m_ScrWindowRect, &m_pWispBase->m_MousePT); Update(); } return true; } CWispButton::CWispButton() { m_CtrlType = WISP_CTRL_BUTTON; m_bSetTextPos=false; } CWispButton::~CWispButton() { } bool CWispButton::InitWnd() { if(CWispBaseWnd::InitWnd()==false) return false; m_bPressed=false; m_bMouseInBTRect = PtInRect(&m_ScrWindowRect, &m_pWispBase->m_MousePT); ZeroMemory(m_DIBList,sizeof(m_DIBList)); return true; } bool CWispButton::CreateEx(CWispDIB* pDib, int x, int y, IN CWispWnd*pParentWnd, IN UINT CmdID,IN UINT Style) { if( Create(NULL, x, y, pDib->m_FrameBuffer.Width, pDib->m_FrameBuffer.Height, pParentWnd, CmdID, Style, WISP_SH_NORMAL) ) { SetDIB(pDib); return true; } return false; } bool CWispButton::CreateEx(CWispDIBList* pDibList, int x, int y, IN CWispWnd*pParentWnd, IN UINT CmdID,IN UINT Style) { if( Create(NULL, x, y, pDibList->m_DIBList->m_FrameBuffer.Width, pDibList->m_DIBList->m_FrameBuffer.Height, pParentWnd, CmdID, Style, WISP_SH_NORMAL) ) { SetDIBList(pDibList); return true; } return false; } bool CWispButton::SetDIB(CWispDIB*pDIB,WISP_BT_DIB ID) { m_DIBList[ID]=pDIB; return true; } bool CWispButton::SetDIBList(CWispDIBList*pDIBList) { for(int n=0;nGetDIB(n); } return true; } void CWispButton::SetTextPos(IN WISP_POINT Point) { if(Point.x < m_WindowRect.cx && Point.y < m_WindowRect.cy) { m_bSetTextPos=true; m_TextRect.x = Point.x; m_TextRect.y = Point.y; m_TextRect.cx = m_WindowRect.cx - Point.x; m_TextRect.cy = m_WindowRect.cy - Point.y; } } void CWispButton::SetTextRect(IN WISP_RECT TextRect) { if(TextRect.x < m_WindowRect.cx && TextRect.y < m_WindowRect.cy) { m_bSetTextPos=true; m_TextRect = TextRect; if(m_TextRect.x + m_TextRect.cx > m_WindowRect.cx) m_TextRect.cx = m_WindowRect.cx - m_TextRect.x; if(m_TextRect.y + m_TextRect.cy > m_WindowRect.cy) m_TextRect.cy = m_WindowRect.cy - m_TextRect.y; } } ================================================ FILE: Project/Wisp/Source/WispButton.h ================================================ #ifndef _WISP_BUTTON_H_ #define _WISP_BUTTON_H_ #include "WispWnd.h" ////////////////////////////////////////////// //ť ////////////////////////////////////////////// #define WISP_BS_NORMAL 0 #define WISP_BS_TEXT_LEFT 0x00010000 #define WISP_BS_TEXT_RIGHT 0x00020000 #define WISP_BS_TEXT_POS_MASK 0x00030000 #define WISP_BS_DIB_LEFT 0x00100000 #define WISP_BS_DIB_RIGHT 0x00200000 #define WISP_BS_DIB_POS_MASK 0x00300000 #define WISP_BS_DISABLE 0x00400000 #define WISP_BS_NOBORDER 0x00800000 #define WISP_BS_TOOLBAR_BT 0x01000000 enum WISP_BT_DIB { WISP_BT_DIB_NORMAL=0, WISP_BT_DIB_HOVER, WISP_BT_DIB_DOWN, WISP_BT_DIB_DISABLE, WISP_BT_DIB_COUNT }; class CWispButton : public CWispBaseWnd { bool m_bSetTextPos; WISP_RECT m_TextRect; public: CWispButton(); ~CWispButton(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnMove); DECLARE_WISP_MSG(OnMouseMove); DECLARE_WISP_MSG(OnMouseLeave); DECLARE_WISP_MSG(OnUpdate); public: virtual bool InitWnd(); virtual void RecalcLayout(); virtual void HoverNotify(){}; virtual void UnhoverNotify(){}; bool m_bPressed; bool m_bMouseInBTRect; CWispDIB* m_DIBList[WISP_BT_DIB_COUNT]; bool CreateEx(IN CWispDIB* pDib, IN int x, IN int y, IN CWispWnd*pParentWnd = NULL, IN UINT CmdID = 0,UINT Style = WISP_BS_NOBORDER); bool CreateEx(IN CWispDIBList* pDibList, IN int x, IN int y, IN CWispWnd*pParentWnd = NULL, IN UINT CmdID = 0,UINT Style = WISP_BS_NOBORDER); bool SetDIB(CWispDIB*pDIB,WISP_BT_DIB ID = WISP_BT_DIB_NORMAL); bool SetDIBList(CWispDIBList*pDIBList); void SetTextPos(IN WISP_POINT Point); void SetTextRect(IN WISP_RECT TextRect); }; #endif ================================================ FILE: Project/Wisp/Source/WispCalcWnd.cpp ================================================ #include "StdAfx.h" #include "WispCalcWnd.h" //extern item_contents display_data; //extern bool display_error; item_contents display_data; bool display_error = false; bool percent_mode = false; stack_ptr top_of_stack = NULL; stack_ptr top_type_stack[2] = { NULL, NULL }; int stack_next, stack_last; stack_item process_stack[STACK_SIZE]; #define PRINT_FLOAT "%d" #define PRINT_LONG_BIG "%d" #define PRINT_LONG "%d" #define PRINT_OCTAL "%I64o" #define PRINT_HEX "%I64X" int precedence[14] = { 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 6 }; int adjust_op[14][3] = { {FUNC_NULL, FUNC_NULL, FUNC_NULL}, {FUNC_OR, FUNC_OR, FUNC_XOR }, {FUNC_XOR, FUNC_XOR, FUNC_XOR }, {FUNC_AND, FUNC_AND, FUNC_AND }, {FUNC_LSH, FUNC_LSH, FUNC_RSH }, {FUNC_RSH, FUNC_RSH, FUNC_RSH }, {FUNC_ADD, FUNC_ADD, FUNC_ADD }, {FUNC_SUBTRACT, FUNC_SUBTRACT, FUNC_SUBTRACT}, {FUNC_MULTIPLY, FUNC_MULTIPLY, FUNC_MULTIPLY}, {FUNC_DIVIDE, FUNC_DIVIDE, FUNC_DIVIDE}, {FUNC_MOD, FUNC_MOD, FUNC_INTDIV }, {FUNC_POWER, FUNC_POWER, FUNC_PWR_ROOT}, {FUNC_PWR_ROOT, FUNC_PWR_ROOT, FUNC_PWR_ROOT}, {FUNC_INTDIV, FUNC_INTDIV, FUNC_INTDIV}, }; Arith Arith_ops[14] = { NULL, CWispCalcWnd::ExecOr, CWispCalcWnd::ExecXor, CWispCalcWnd::ExecAnd, CWispCalcWnd::ExecLsh, CWispCalcWnd::ExecRsh, CWispCalcWnd::ExecAdd, CWispCalcWnd::ExecSubtract, CWispCalcWnd::ExecMultiply, CWispCalcWnd::ExecDivide, CWispCalcWnd::ExecMod, CWispCalcWnd::ExecPower, CWispCalcWnd::ExecPwrRoot, CWispCalcWnd::ExecIntDiv }; Prcnt Prcnt_ops[14] = { NULL, NULL, NULL, NULL, NULL, NULL, CWispCalcWnd::ExecAddP, CWispCalcWnd::ExecSubP, CWispCalcWnd::ExecMultiplyP, CWispCalcWnd::ExecDivideP, NULL, NULL, NULL, NULL }; const CALCAMNT CWispCalcWnd::pi = 3; WISP_MSG_MAP_BEGIN(CWispCalcWnd) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestory) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_END(CWispWnd) CWispCalcWnd::CWispCalcWnd(void) { inverse=false; refresh_display=false; display_size=DEC_SIZE; m_NumberBitWdith=ANG_DEGREE; input_limit=0; input_count=0; decimal_point=0; precedence_base=0; current_base=NB_DECIMAL; memory_num=0; last_input=DIGIT; history_index=0; key_pressed=false; mInternalSpacing=4; } bool CWispCalcWnd::OnKeyEvent(IN WISP_MSG *pMsg) { if(pMsg->KeyEvent.bKeyDown) OnKeyDown(pMsg); Update(); return true; } bool CWispCalcWnd::OnDestory(IN WISP_MSG*pMsg) { pbA->Destroy(); delete pbA; pbMR->Destroy(); delete pbMR; pbMplusminus->Destroy(); delete pbMplusminus; pbMC->Destroy(); delete pbMC; pbClear->Destroy(); delete pbClear; pbAC->Destroy(); delete pbAC; pbRsh->Destroy(); delete pbRsh; pbplusminus->Destroy(); delete pbplusminus; pbB->Destroy(); delete pbB; pb7->Destroy(); delete pb7; pb8->Destroy(); delete pb8; pb9->Destroy(); delete pb9; pbparenopen->Destroy(); delete pbparenopen; pbparenclose->Destroy(); delete pbparenclose; pband->Destroy(); delete pband; pbXor->Destroy(); delete pbXor; pbC->Destroy(); delete pbC; pb4->Destroy(); delete pb4; pb5->Destroy(); delete pb5; pb6->Destroy(); delete pb6; pbX->Destroy(); delete pbX; pbdivision->Destroy(); delete pbdivision; pbor->Destroy(); delete pbor; pbfactorial->Destroy(); delete pbfactorial; pbD->Destroy(); delete pbD; pb1->Destroy(); delete pb1; pb2->Destroy(); delete pb2; pb3->Destroy(); delete pb3; pbplus->Destroy(); delete pbplus; pbminus->Destroy(); delete pbminus; pbshift->Destroy(); delete pbshift; pbsquare->Destroy(); delete pbsquare; pbE->Destroy(); delete pbE; pb0->Destroy(); delete pb0; pbequal->Destroy(); delete pbequal; pbnegate->Destroy(); delete pbnegate; pbmod->Destroy(); delete pbmod; pbpower->Destroy(); delete pbpower; pbF->Destroy(); delete pbF; for(int i =0; i < 4;i++) { anglebutton[i]->Destroy(); delete anglebutton[i]; basebutton[i]->Destroy(); delete basebutton[i]; } return true; } void CWispCalcWnd::Popup() { if(IsWindow()) { Show(); } else { Create(0,0); Center(); } } bool CWispCalcWnd::Create(int x,int y,CWispBaseWnd*pParentWnd,UINT CmdID) { return CWispWnd::Create(WISP_STR("Calc"),x,y,500,204,pParentWnd,CmdID,WISP_WS_CAPTION|WISP_WS_BORDER|WISP_WS_BT_CLOSE,WISP_SH_NORMAL); } bool CWispCalcWnd::OnCreate(IN WISP_MSG*pMsg) { CWispRect rc; int NormalWidth=40,NormalHeight=16; int xdelt=4; int ydelt=4; pbA = new CWispButton; pbMR = new CWispButton; pbMplusminus = new CWispButton; pbMC = new CWispButton; pbClear = new CWispButton; pbAC = new CWispButton; pbRsh = new CWispButton; pbplusminus = new CWispButton; pbB = new CWispButton; pb7 = new CWispButton; pb8 = new CWispButton; pb9 = new CWispButton; pbparenopen = new CWispButton; pbparenclose = new CWispButton; pband = new CWispButton; pbXor = new CWispButton; pbC = new CWispButton; pb4 = new CWispButton; pb5 = new CWispButton; pb6 = new CWispButton; pbX = new CWispButton; pbdivision = new CWispButton; pbor = new CWispButton; pbfactorial = new CWispButton; pbD = new CWispButton; pb1 = new CWispButton; pb2 = new CWispButton; pb3 = new CWispButton; pbplus = new CWispButton; pbminus = new CWispButton; pbshift = new CWispButton; pbsquare = new CWispButton; pbE = new CWispButton; pb0 = new CWispButton; pbequal = new CWispButton; pbnegate = new CWispButton; pbmod = new CWispButton; pbpower = new CWispButton; pbF = new CWispButton; for(int i = 0; i < 4;i++) { anglebutton[i] = new CWispRadioBox; basebutton[i]=new CWispRadioBox; } NormalHeight=25; rc.x = 15,rc.y=33,rc.cx=40,rc.cy=16; basebutton[0]->Create(WSTR("Hex"),rc,this,CHECKBOX_HEX,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 15,rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; basebutton[1]->Create(WSTR("Dec"),rc,this,CHECKBOX_DEC,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 15,rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; basebutton[2]->Create(WSTR("Oct"),rc,this,CHECKBOX_OCT,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 15,rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; basebutton[3]->Create(WSTR("Bin"),rc,this,CHECKBOX_BIN,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 90,rc.y=33,rc.cx=58,rc.cy=16; anglebutton[0]->Create(WSTR("64 Bit"),rc,this,CHECKBOX_8BYTE,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 90,rc.y+=(NormalHeight+ydelt),rc.cx=58,rc.cy=NormalHeight; anglebutton[1]->Create(WSTR("32 Bit"),rc,this,CHECKBOX_4BYTE,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 90,rc.y+=(NormalHeight+ydelt),rc.cx=58,rc.cy=NormalHeight; anglebutton[2]->Create(WSTR("16 Bit"),rc,this,CHECKBOX_2BYTE,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); rc.x = 90,rc.y+=(NormalHeight+ydelt),rc.cx=58,rc.cy=NormalHeight; anglebutton[3]->Create(WSTR(" 8 Bit"),rc,this,CHECKBOX_1BYTE,WISP_RBS_FLAT|WISP_WS_BACK_TRANS,WISP_SH_NORMAL); anglebutton[0]->Check(false); anglebutton[1]->Check(true); anglebutton[2]->Check(false); anglebutton[3]->Check(false); basebutton[0]->Check(true); basebutton[1]->Check(false); basebutton[2]->Check(false); basebutton[3]->Check(false); #define HIGH_ITEM 24 NormalWidth=40;NormalHeight=16; rc.x = 303-35,rc.y=32,rc.cx=NormalWidth,rc.cy=NormalHeight; pbMR->Create(WISP_STR("MR"),&rc,this,BUTTON_MR,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.y=32,rc.cx=NormalWidth,rc.cy=NormalHeight; pbMplusminus->Create(WISP_STR("M+-"),&rc,this,BUTTON_MOTHER,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.y=32,rc.cx=NormalWidth,rc.cy=NormalHeight; pbMC->Create(WISP_STR("MC"),&rc,this,BUTTON_MC,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.y=32,rc.cx=NormalWidth,rc.cy=NormalHeight; pbClear->Create(WISP_STR("C"),&rc,this,BUTTON_AFUNCTION,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.y=32,rc.cx=NormalWidth,rc.cy=NormalHeight; pbAC->Create(WISP_STR("AC"),&rc,this,BUTTON_AC,WISP_BS_NORMAL,WISP_SH_NORMAL); #define HIGH_2 89 rc.x = 171-35, rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; rc.x += (NormalWidth+xdelt); pbplusminus->Create(WISP_STR("+/-"),&rc,this,BUTTON_PLUSMINUS,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb7->Create(WISP_STR("7"),&rc,this,BUTTON_7,WISP_BS_NORMAL,WISP_SH_NORMAL);//13521866678 rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb8->Create(WISP_STR("8"),&rc,this,BUTTON_8,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb9->Create(WISP_STR("9"),&rc,this,BUTTON_9,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbparenopen->Create(WISP_STR("("),&rc,this,BUTTON_LBRACKET,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbparenclose->Create(WISP_STR(")"),&rc,this,BUTTON_RBRACKET,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pband->Create(WISP_STR("And"),&rc,this,BUTTON_AND,WISP_BS_NORMAL,WISP_SH_NORMAL); #define HIGH_3 117 rc.x = 171-35, rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; rc.x += (NormalWidth+xdelt); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb4->Create(WISP_STR("4"),&rc,this,BUTTON_4,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb5->Create(WISP_STR("5"),&rc,this,BUTTON_5,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb6->Create(WISP_STR("6"),&rc,this,BUTTON_6,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbX->Create(WISP_STR("X"),&rc,this,BUTTON_MULTIPLYSIGN,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbdivision->Create(WISP_STR("/"),&rc,this,BUTTON_DIVESIONSIGN,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbor->Create(WISP_STR("Or"),&rc,this,BUTTON_OR,WISP_BS_NORMAL,WISP_SH_NORMAL); #define HIGH_4 145 rc.x = 62+153-35,rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbfactorial->Create(WISP_STR("x!"),&rc,this,BUTTON_FACTORIAL,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb1->Create(WISP_STR("1"),&rc,this,BUTTON_1,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb2->Create(WISP_STR("2"),&rc,this,BUTTON_2,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb3->Create(WISP_STR("3"),&rc,this,BUTTON_3,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbplus->Create(WISP_STR("+"),&rc,this,BUTTON_ADDSIGN,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbminus->Create(WISP_STR("-"),&rc,this,BUTTON_SUBSIGN,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbshift->Create(WISP_STR("Lsh"),&rc,this,BUTTON_LSH,WISP_BS_NORMAL,WISP_SH_NORMAL); //13504330378//13180887271 #define HIGH_5 173 rc.x = 62+153-35,rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbsquare->Create(WISP_STR("x^2"),&rc,this,BUTTON_SQUARE,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pb0->Create(WISP_STR("0"),&rc,this,BUTTON_0,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbequal->Create(WISP_STR("="),&rc,this,BUTTON_EQUALSIGN,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbnegate->Create(WISP_STR("Not"),&rc,this,BUTTON_CMP,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbmod->Create(WISP_STR("Mod"),&rc,this,BUTTON_MOD,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbRsh->Create(WISP_STR("Rsh"),&rc,this,BUTTON_RSH,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbXor->Create(WISP_STR("Cos"),&rc,this,BUTTON_COS,WISP_BS_NORMAL,WISP_SH_NORMAL); #define HIGH_6 (201) rc.x = 62+153-35,rc.y+=(NormalHeight+ydelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbpower->Create(WISP_STR("x^y"),&rc,this,BUTTON_POWER,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbA->Create(WISP_STR("A"),&rc,this,BUTTON_A,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbB->Create(WISP_STR("B"),&rc,this,BUTTON_B,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbC->Create(WISP_STR("C"),&rc,this,BUTTON_C,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbD->Create(WISP_STR("D"),&rc,this,BUTTON_D,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbE->Create(WISP_STR("E"),&rc,this,BUTTON_E,WISP_BS_NORMAL,WISP_SH_NORMAL); rc.x += (NormalWidth+xdelt),rc.cx=NormalWidth,rc.cy=NormalHeight; pbF->Create(WISP_STR("F"),&rc,this,BUTTON_F,WISP_BS_NORMAL,WISP_SH_NORMAL); readSettings(); set_precision(); set_style(); Base_Selected(0); InitializeCalculator(); LoadTitleDIB("\\WispApp\\Calc\\Calc.bmp"); m_pTitleDIB->SetType(WISP_DIB_TK); m_pTitleDIB->SetColorKey(0); return true; } bool CWispCalcWnd::OnCommand(IN WISP_MSG*pMsg) { if(pMsg->Command.CtrlType==WISP_CTRL_RADIO_BOX) { switch(pMsg->Command.CmdID) { case CHECKBOX_HEX: Hex_Selected(); break; case CHECKBOX_DEC: Dec_Selected(); break; case CHECKBOX_OCT: Oct_Selected(); break; case CHECKBOX_BIN: Bin_Selected(); break; case CHECKBOX_8BYTE: Qword_Selected(); break; case CHECKBOX_4BYTE: Dword_Selected(); break; case CHECKBOX_2BYTE: Word_Selected(); break; case CHECKBOX_1BYTE: Byte_Selected(); break; } } if(pMsg->Command.CtrlType==WISP_CTRL_BUTTON) { if(pMsg->Command.CmdMsg==WISP_CMD_BT_UP) switch(pMsg->Command.CmdID) { case BUTTON_CONFIG: break; case BUTTON_HELP: break; case EDIT_DISPLAY: break; case BUTTON_HYP: pbhyptoggled(true); break; case BUTTON_INV: pbinvtoggled(true); break; case BUTTON_A: pbAtoggled(true); break; case BUTTON_EE: EEtoggled(true); break; case BUTTON_MR: pbMRtoggled(true); break; case BUTTON_MOTHER: pbMplusminustoggled(true); break; case BUTTON_MC: pbMCtoggled(true); break; case BUTTON_AFUNCTION: pbCleartoggled(true); break; case BUTTON_AC: pbACtoggled(true); break; case BUTTON_RSH: pbRshtoggled(true); break; case BUTTON_PLUSMINUS: pbplusminustoggled(true); break; case BUTTON_B: pbBtoggled(true); break; case BUTTON_7: pb7toggled(true); break; case BUTTON_8: pb8toggled(true); break; case BUTTON_9: pb9toggled(true); break; case BUTTON_LBRACKET: pbparenopentoggled(true); break; case BUTTON_RBRACKET: pbparenclosetoggled(true); break; case BUTTON_AND: pbandtoggled(true); break; case BUTTON_COS: pbXortoggled(true); break; case BUTTON_RECIPROCAL: pbrecitoggled(true); break; case BUTTON_C: pbCtoggled(true); break; case BUTTON_4: pb4toggled(true); break; case BUTTON_5: pb5toggled(true); break; case BUTTON_6: pb6toggled(true); break; case BUTTON_MULTIPLYSIGN: pbXtoggled(true); break; case BUTTON_DIVESIONSIGN: pbdivisiontoggled(true); break; case BUTTON_OR: pbortoggled(true); break; case BUTTON_TAN: pbTantoggled(true); break; case BUTTON_FACTORIAL: pbfactorialtoggled(true); break; case BUTTON_D: pbDtoggled(true); break; case BUTTON_1: pb1toggled(true); break; case BUTTON_2: pb2toggled(true); break; case BUTTON_3: pb3toggled(true); break; case BUTTON_ADDSIGN: pbplustoggled(true); break; case BUTTON_SUBSIGN: pbminustoggled(true); break; case BUTTON_LSH: pbshifttoggled(true); break; case BUTTON_LOG: pblogtoggled(true); break; case BUTTON_SQUARE: pbsquaretoggled(true); break; case BUTTON_E: pbEtoggled(true); break; case BUTTON_DECIMAL: pbperiodtoggled(true); break; case BUTTON_0: pb0toggled(true); break; case BUTTON_EQUALSIGN: pbequaltoggled(true); break; case BUTTON_PERCENTSIGN: pbpercenttoggled(true); break; case BUTTON_CMP: pbnegatetoggled(true); break; case BUTTON_MOD: pbmodtoggled(true); break; case BUTTON_LN: pblntoggled(true); break; case BUTTON_POWER: pbpowertoggled(true); break; case BUTTON_F: pbFtoggled(true); break; default: break; } } return true; } bool CWispCalcWnd::OnUpdateClient(IN WISP_MSG*pMsg) { #define STAT_Y_VALUE 156 WISP_RECT rc; WISP_CHAR DisplayOut[100]; CWispWnd::OnUpdateClient(pMsg); rc.x = 5, rc.y=31,rc.cx=64,rc.cy=117; m_ClientDC.DrawRect(&rc,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_RED]); rc.x = 85,rc.y=31,rc.cx=66,rc.cy=117; m_ClientDC.DrawRect(&rc,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_RED]); rc.x = 5,rc.y=STAT_Y_VALUE,rc.cx=49,rc.cy=17; m_ClientDC.DrawFrameRect(&rc,false); m_ClientDC.DrawString(WISP_STR("NORM"),&rc,WISP_DT_VCENTER|WISP_DT_CENTER); rc.x = 58,rc.y=STAT_Y_VALUE,rc.cx=49,rc.cy=17; m_ClientDC.DrawFrameRect(&rc,false); m_ClientDC.DrawString(WISP_STR(""),&rc,WISP_DT_VCENTER|WISP_DT_CENTER); rc.x = 111,rc.y=STAT_Y_VALUE,rc.cx=218+156,rc.cy=17; m_ClientDC.DrawFrameRect(&rc,false); rc.x = 5, rc.y=4,rc.cx=329+150,rc.cy=22; m_ClientDC.DrawFullRect(&rc,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_WHITE]); m_ClientDC.DrawRect(&rc,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BLACK]); rc.cx-=4; TStrToStr(display_str,DisplayOut); m_ClientDC.DrawString(DisplayOut,&rc,WISP_DT_VCENTER|WISP_DT_RIGHT); return false; } //------------------------------------------------------------------------- // Name: Base_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Base_Selected(int base) { pbA->EnableWindow(base==0); pbB->EnableWindow(base==0); pbC->EnableWindow(base==0); pbD->EnableWindow(base==0); pbE->EnableWindow(base==0); pbF->EnableWindow(base==0); pb9->EnableWindow(base<=1); pb8->EnableWindow(base<=1); pb7->EnableWindow(base <= 2); pb6->EnableWindow(base <= 2); pb5->EnableWindow(base <= 2); pb4->EnableWindow(base <= 2); pb3->EnableWindow(base <= 2); pb2->EnableWindow(base <= 2); base_selected(base); } //------------------------------------------------------------------------- // Name: Hex_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Hex_Selected() { basebutton[0]->Check(true); basebutton[1]->Check(false); basebutton[2]->Check(false); basebutton[3]->Check(false); Base_Selected(0); } //------------------------------------------------------------------------- // Name: Dec_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Dec_Selected() { basebutton[0]->Check(false); basebutton[1]->Check(true); basebutton[2]->Check(false); basebutton[3]->Check(false); Base_Selected(1); } //------------------------------------------------------------------------- // Name: Oct_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Oct_Selected() { basebutton[0]->Check(false); basebutton[1]->Check(false); basebutton[2]->Check(true); basebutton[3]->Check(false); Base_Selected(2); } //------------------------------------------------------------------------- // Name: Bin_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Bin_Selected() { basebutton[0]->Check(false); basebutton[1]->Check(false); basebutton[2]->Check(false); basebutton[3]->Check(true); Base_Selected(3); } //------------------------------------------------------------------------- // Name: Deg_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Qword_Selected() { anglebutton[0]->Check(true); anglebutton[1]->Check(false); anglebutton[2]->Check(false); anglebutton[3]->Check(false); angle_selected(0); } //------------------------------------------------------------------------- // Name: Rad_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Dword_Selected() { anglebutton[0]->Check(false); anglebutton[1]->Check(true); anglebutton[2]->Check(false); anglebutton[3]->Check(false); angle_selected(1); } //------------------------------------------------------------------------- // Name: Gra_Selected() //------------------------------------------------------------------------- void CWispCalcWnd::Word_Selected() { anglebutton[0]->Check(false); anglebutton[1]->Check(false); anglebutton[2]->Check(true); anglebutton[3]->Check(false); angle_selected(2); } void CWispCalcWnd::Byte_Selected() { anglebutton[0]->Check(false); anglebutton[1]->Check(false); anglebutton[2]->Check(false); anglebutton[3]->Check(true); angle_selected(3); } //------------------------------------------------------------------------- // Name: keyPressEvent(QKeyEvent *e) //------------------------------------------------------------------------- bool CWispCalcWnd::OnKeyDown(IN WISP_MSG *pMsg) { switch (pMsg->KeyEvent.KeyType) { case WISP_VK_F1: break; case WISP_VK_F2: break; case WISP_VK_F3: if(kcalcdefaults.style == 0) kcalcdefaults.style = 1; else kcalcdefaults.style = 0; set_style(); break; case WISP_VK_UP: history_prev(); break; case WISP_VK_DOWN: history_next(); break; case WISP_VK_PAGE_DOWN: key_pressed = true; pbACtoggled(true); break; case WISP_VK_PAGE_UP: key_pressed = true; pbCleartoggled(true); break; case WISP_VK_H: key_pressed = true; pbhyptoggled(true); break; case WISP_VK_I: key_pressed = true; pbinvtoggled(true); break; case WISP_VK_A: key_pressed = true; pbAtoggled(true); break; case WISP_VK_E: key_pressed = true; if (current_base == NB_HEX) pbEtoggled(true); else EEtoggled(true); break; case WISP_VK_ESCAPE: key_pressed = true; pbCleartoggled(true); break; case WISP_VK_DELETE: key_pressed = true; pbACtoggled(true); break; case WISP_VK_S: key_pressed = true; pbRshtoggled(true); break; case WISP_VK_OEM_5: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbortoggled(true); else pbplusminustoggled(true); break; case WISP_VK_B: key_pressed = true; pbBtoggled(true); break; case WISP_VK_7: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbandtoggled(true); else pb7toggled(true); break; case WISP_VK_8: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbXtoggled(true); else pb8toggled(true); break; case WISP_VK_9: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbparenopentoggled(true); else pb9toggled(true); break; case WISP_VK_C: key_pressed = true; if (current_base == NB_HEX) pbCtoggled(true); else pbXortoggled(true); break; case WISP_VK_4: key_pressed = true; pb4toggled(true); break; case WISP_VK_5: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbpercenttoggled(true); else pb5toggled(true); break; case WISP_VK_6: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbpowertoggled(true); else pb6toggled(true); break; case WISP_VK_X: key_pressed = true; pbXtoggled(true); break; case WISP_VK_DIVIDE: key_pressed = true; pbdivisiontoggled(true); break; case WISP_VK_O: key_pressed = true; pbortoggled(true); break; case WISP_VK_T: key_pressed = true; pbTantoggled(true); break; case WISP_VK_D: key_pressed = true; //if(kcalcdefaults.style == 0) pbDtoggled(true); //else // pblog->setOn(true); // stat mode break; case WISP_VK_1: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbfactorialtoggled(true); else pb1toggled(true); break; case WISP_VK_2: key_pressed = true; pb2toggled(true); break; case WISP_VK_3: key_pressed = true; pb3toggled(true); break; case WISP_VK_OEM_PLUS: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbplustoggled(true); else pbequaltoggled(true); break; case WISP_VK_OEM_MINUS: key_pressed = true; pbminustoggled(true); break; case WISP_VK_N: key_pressed = true; pblntoggled(true); break; case WISP_VK_L: key_pressed = true; pblogtoggled(true); break; case WISP_VK_F: key_pressed = true; pbFtoggled(true); break; case WISP_VK_OEM_PERIOD: key_pressed = true; pbperiodtoggled(true); break; case WISP_VK_OEM_COMMA: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbshifttoggled(true); else pbperiodtoggled(true); break; case WISP_VK_0: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbparenclosetoggled(true); else pb0toggled(true);; break; case WISP_VK_RETURN: key_pressed = true; pbequaltoggled(true); break; case WISP_VK_OEM_3: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbnegatetoggled(true); break; case WISP_VK_SEMI: key_pressed = true; if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) pbmodtoggled(true); break; case WISP_VK_LSQUARE_BRACKET: key_pressed = true; pbsquaretoggled(true); break; case WISP_VK_BACK: SubtractDigit(); key_pressed = true; pbACtoggled(true); break; case WISP_VK_R: key_pressed = true; pbrecitoggled(true); break; } return true; } //------------------------------------------------------------------------- // Name: keyReleaseEvent(QKeyEvent *e) //------------------------------------------------------------------------- bool CWispCalcWnd::OnKeyUp(IN WISP_MSG *pMsg) { bool oldKey = key_pressed; key_pressed = false; switch (pMsg->KeyEvent.KeyType) { // case Key_Next: //pbAC->setOn(false); break; // case Key_Prior: //pbClear->setOn(false); break; case WISP_VK_H: //pbhyp->setOn(false); break; case WISP_VK_I: //pbinv->setOn(false); break; case WISP_VK_A: //pbA->setOn(false); break; case WISP_VK_E: if (current_base == NB_HEX) ;// pbE->setOn(false); else ;// pbEE->setOn(false); break; case WISP_VK_ESCAPE: //pbClear->setOn(false); break; case WISP_VK_DELETE: //pbAC->setOn(false); break; case WISP_VK_S: //pbSin->setOn(false); break; // case Key_Backslash: //pbplusminus->setOn(false); break; case WISP_VK_B: //pbB->setOn(false); break; case WISP_VK_7: //pb7->setOn(false); break; case WISP_VK_8: //pb8->setOn(false); break; case WISP_VK_9: //pb9->setOn(false); break; // case Key_ParenLeft: //pbparenopen->setOn(false); break; // case Key_ParenRight: //pbparenclose->setOn(false); break; // case Key_Ampersand: //pband->setOn(false); break; case WISP_VK_C: if (current_base == NB_HEX) ;// pbC->setOn(false); else ;// pbCos->setOn(false); break; case WISP_VK_4: //pb4->setOn(false); break; case WISP_VK_5: //pb5->setOn(false); break; case WISP_VK_6: //pb6->setOn(false); break; // case Key_Asterisk: //pbX->setOn(false); break; // case Key_Slash: //pbdivision->setOn(false); break; case WISP_VK_O: //pbor->setOn(false); break; case WISP_VK_T: //pbTan->setOn(false); break; // case Key_Exclam: //pbfactorial->setOn(false); break; case WISP_VK_D: if(kcalcdefaults.style == 0) ;// pbD->setOn(false); // trig mode else ;// pblog->setOn(false); // stat mode break; case WISP_VK_1: //pb1->setOn(false); break; case WISP_VK_2: //pb2->setOn(false); break; case WISP_VK_3: //pb3->setOn(false); break; case WISP_VK_ADD: ///pbplus->setOn(false); break; case WISP_VK_SUBTRACT: //pbminus->setOn(false); break; // case Key_Less: //pbshift->setOn(false); break; case WISP_VK_N: //pbln->setOn(false); break; case WISP_VK_L: key_pressed = false; //pblog->setOn(false); break; // case Key_AsciiCircum: //pbpower->setOn(false); break; case WISP_VK_F: //pbF->setOn(false); break; case WISP_VK_OEM_PERIOD: //pbperiod->setOn(false); break; case WISP_VK_OEM_COMMA: //pbperiod->setOn(false); break; case WISP_VK_0: //pb0->setOn(false); break; // case Key_Equal: //pbequal->setOn(false); break; // case Key_Return: //pbequal->setOn(false); break; // case Key_Enter: //pbequal->setOn(false); break; // case Key_Percent: key_pressed = false; //pbpercent->setOn(false); break; // case Key_AsciiTilde: //pbnegate->setOn(false); break; // case Key_Colon: //pbmod->setOn(false); break; // case Key_BracketLeft: //pbsquare->setOn(false); break; // case Key_Backspace: //pbAC->setOn(false); break; case WISP_VK_R: //pbreci->setOn(false); break; default: key_pressed = oldKey; } clear_buttons(); return true; } //------------------------------------------------------------------------- // Name: clear_buttons() //------------------------------------------------------------------------- void CWispCalcWnd::clear_buttons() { //TODO: does this do anything? } //------------------------------------------------------------------------- // Name: EEtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::EEtoggled(bool myboolean) { if(!display_error) { if(myboolean) EE(); } } //------------------------------------------------------------------------- // Name: pbinvtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbinvtoggled(bool myboolean) { if(myboolean) SetInverse(); } //------------------------------------------------------------------------- // Name: pbhyptoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbhyptoggled(bool myboolean) { if(myboolean) EnterHyp(); } //------------------------------------------------------------------------- // Name: pbMRtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbMRtoggled(bool myboolean) { if(myboolean) MR(); } //------------------------------------------------------------------------- // Name: pbAtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbAtoggled(bool myboolean) { if(myboolean) buttonA(); } //------------------------------------------------------------------------- // Name: pbSintoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbRshtoggled(bool myboolean) { if(myboolean) Rshift(); //ExecSin(); } //------------------------------------------------------------------------- // Name: pbplusminustoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbplusminustoggled(bool myboolean) { if(myboolean) EnterNegate(); } //------------------------------------------------------------------------- // Name: pbMplusminustoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbMplusminustoggled(bool myboolean) { if(myboolean) Mplusminus(); } //------------------------------------------------------------------------- // Name: pbBtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbBtoggled(bool myboolean) { if(myboolean) buttonB(); } //------------------------------------------------------------------------- // Name: pbCostoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbXortoggled(bool myboolean) { if(myboolean) Xor(); } //------------------------------------------------------------------------- // Name: pbrecitoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbrecitoggled(bool myboolean) { if(myboolean) EnterRecip(); } //------------------------------------------------------------------------- // Name: pbCtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbCtoggled(bool myboolean) { if(myboolean) buttonC(); } //------------------------------------------------------------------------- // Name: pbTantoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbTantoggled(bool myboolean) { if(myboolean) ExecTan(); } //------------------------------------------------------------------------- // Name: pbfactorialtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbfactorialtoggled(bool myboolean) { if(myboolean) EnterFactorial(); } //------------------------------------------------------------------------- // Name: pbDtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbDtoggled(bool myboolean) { if(myboolean) buttonD(); } //------------------------------------------------------------------------- // Name: pblogtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pblogtoggled(bool myboolean) { if(myboolean) EnterLogr(); } //------------------------------------------------------------------------- // Name: pbsquaretoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbsquaretoggled(bool myboolean) { if(myboolean) EnterSquare(); } //------------------------------------------------------------------------- // Name: pbEtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbEtoggled(bool myboolean) { if(!display_error) { if(myboolean) buttonE(); } } //------------------------------------------------------------------------- // Name: pblntoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pblntoggled(bool myboolean) { if(myboolean) EnterLogn(); } //------------------------------------------------------------------------- // Name: pbpowertoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbpowertoggled(bool myboolean) { if(myboolean) Power(); } //------------------------------------------------------------------------- // Name: pbFtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbFtoggled(bool myboolean) { if(myboolean) buttonF(); } //------------------------------------------------------------------------- // Name: pbMCtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbMCtoggled(bool myboolean) { if(myboolean) MC(); } //------------------------------------------------------------------------- // Name: pbCleartoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbCleartoggled(bool myboolean) { if(myboolean) Clear(); } //------------------------------------------------------------------------- // Name: pbACtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbACtoggled(bool myboolean) { if(myboolean) ClearAll(); } //------------------------------------------------------------------------- // Name: pb7toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb7toggled(bool myboolean) { if(myboolean) button7(); } //------------------------------------------------------------------------- // Name: pb8toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb8toggled(bool myboolean) { if(myboolean) button8(); } //------------------------------------------------------------------------- // Name: pb9toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb9toggled(bool myboolean) { if(myboolean) button9(); } //------------------------------------------------------------------------- // Name: pbparenopentoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbparenopentoggled(bool myboolean) { if(myboolean) EnterOpenParen(); } //------------------------------------------------------------------------- // Name: pbparenclosetoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbparenclosetoggled(bool myboolean) { if(myboolean) EnterCloseParen(); } //------------------------------------------------------------------------- // Name: pbandtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbandtoggled(bool myboolean) { if(myboolean) And(); } //------------------------------------------------------------------------- // Name: pb4toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb4toggled(bool myboolean) { if(myboolean) button4(); } //------------------------------------------------------------------------- // Name: pb5toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb5toggled(bool myboolean) { if(myboolean) button5(); } //------------------------------------------------------------------------- // Name: pb6toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb6toggled(bool myboolean) { if(myboolean) button6(); } //------------------------------------------------------------------------- // Name: pbXtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbXtoggled(bool myboolean) { if(myboolean) Multiply(); } //------------------------------------------------------------------------- // Name: //------------------------------------------------------------------------- void CWispCalcWnd::pbdivisiontoggled(bool myboolean) { if(myboolean) Divide(); } //------------------------------------------------------------------------- // Name: pbortoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbortoggled(bool myboolean) { if(myboolean) Or(); } //------------------------------------------------------------------------- // Name: pb1toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb1toggled(bool myboolean) { if(myboolean) button1(); } //------------------------------------------------------------------------- // Name: pb2toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb2toggled(bool myboolean) { if(myboolean) button2(); } //------------------------------------------------------------------------- // Name: pb3toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb3toggled(bool myboolean) { if(myboolean) button3(); } //------------------------------------------------------------------------- // Name: pbplustoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbplustoggled(bool myboolean) { if(myboolean) Plus(); } //------------------------------------------------------------------------- // Name: pbminustoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbminustoggled(bool myboolean) { if(myboolean) Minus(); } //------------------------------------------------------------------------- // Name: pbshifttoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbshifttoggled(bool myboolean) { if(myboolean) Shift(); } //------------------------------------------------------------------------- // Name: pbperiodtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbperiodtoggled(bool myboolean) { //if(myboolean) // EnterDecimal(); } //------------------------------------------------------------------------- // Name: pb0toggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pb0toggled(bool myboolean) { if(myboolean) button0(); } //------------------------------------------------------------------------- // Name: pbequaltoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbequaltoggled(bool myboolean) { if(myboolean) EnterEqual(); } //------------------------------------------------------------------------- // Name: pbpercenttoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbpercenttoggled(bool myboolean) { if(myboolean) EnterPercent(); } //------------------------------------------------------------------------- // Name: pbnegatetoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbnegatetoggled(bool myboolean) { if(myboolean) EnterNotCmp(); } //------------------------------------------------------------------------- // Name: pbmodtoggled(bool myboolean) //------------------------------------------------------------------------- void CWispCalcWnd::pbmodtoggled(bool myboolean) { if(myboolean) Mod(); } //------------------------------------------------------------------------- // Name: set_style() //------------------------------------------------------------------------- void CWispCalcWnd::set_style() { switch(kcalcdefaults.style) { case 0: // pbhyp->SetWindowText(WSTR("Hyp")); pbRsh->SetWindowText(WSTR("Rsh")); pbXor->SetWindowText(WSTR("Xor")); // pbTan->SetWindowText(WSTR("Tan")); // pblog->SetWindowText(WSTR("Log")); // pbln ->SetWindowText(WSTR("Ln")); break; case 1: // pbhyp->SetWindowText(WSTR("N")); pbRsh->SetWindowText(WSTR("Mea")); pbXor->SetWindowText(WSTR("Xor")); // pbTan->SetWindowText(WSTR("Med")); // pblog->SetWindowText(WSTR("Dat")); // pbln ->SetWindowText(WSTR("CSt")); break; default: break; } //angle_group->setEnabled(kcalcdefaults.style == 0); } //------------------------------------------------------------------------- // Name: readSettings() //------------------------------------------------------------------------- void CWispCalcWnd::readSettings() { #ifdef HAVE_LONG_DOUBLE kcalcdefaults.precision = 14; #else kcalcdefaults.precision = 10; #endif kcalcdefaults.fixedprecision =2; kcalcdefaults.fixed = false; kcalcdefaults.style = 0; kcalcdefaults.beep = true; } //------------------------------------------------------------------------- // Name: writeSettings() //------------------------------------------------------------------------- void CWispCalcWnd::writeSettings() { } //------------------------------------------------------------------------- // Name: set_precision() //------------------------------------------------------------------------- void CWispCalcWnd::set_precision() { // TODO: make this do somthing!! UpdateDisplay(); } //------------------------------------------------------------------------- // Name: history_next() //------------------------------------------------------------------------- void CWispCalcWnd::history_next() { if(history_list.Count()<=0 || (history_index <= 0)) { return; } last_input = RECALL; DISPLAY_AMOUNT = *history_list[--history_index]; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: history_prev() //------------------------------------------------------------------------- void CWispCalcWnd::history_prev() { if(history_list.Count() <=0 || history_index >= history_list.Count() - 1) { return; } last_input = RECALL; DISPLAY_AMOUNT = *history_list[++history_index]; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: button0() //------------------------------------------------------------------------- void CWispCalcWnd::button0() { EnterDigit(0x0); } //------------------------------------------------------------------------- // Name: button1() //------------------------------------------------------------------------- void CWispCalcWnd::button1() { EnterDigit(0x1); } //------------------------------------------------------------------------- // Name: button2() //------------------------------------------------------------------------- void CWispCalcWnd::button2() { if (current_base != NB_BINARY) EnterDigit(0x2); } //------------------------------------------------------------------------- // Name: button3() //------------------------------------------------------------------------- void CWispCalcWnd::button3() { if (current_base != NB_BINARY) EnterDigit(0x3); } //------------------------------------------------------------------------- // Name: button4() //------------------------------------------------------------------------- void CWispCalcWnd::button4() { if (current_base != NB_BINARY) EnterDigit(0x4); } //------------------------------------------------------------------------- // Name: button5() //------------------------------------------------------------------------- void CWispCalcWnd::button5() { if (current_base != NB_BINARY) EnterDigit(0x5); } //------------------------------------------------------------------------- // Name: button6() //------------------------------------------------------------------------- void CWispCalcWnd::button6() { if (current_base != NB_BINARY) EnterDigit(0x6); } //------------------------------------------------------------------------- // Name: button7() //------------------------------------------------------------------------- void CWispCalcWnd::button7() { if (current_base != NB_BINARY) EnterDigit(0x7); } //------------------------------------------------------------------------- // Name: button8() //------------------------------------------------------------------------- void CWispCalcWnd::button8() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL)) EnterDigit(0x8); } //------------------------------------------------------------------------- // Name: button9() //------------------------------------------------------------------------- void CWispCalcWnd::button9() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL)) EnterDigit(0x9); } //------------------------------------------------------------------------- // Name: buttonA() //------------------------------------------------------------------------- void CWispCalcWnd::buttonA() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL) && (current_base != NB_DECIMAL)) EnterDigit(0xA); } //------------------------------------------------------------------------- // Name: buttonB() //------------------------------------------------------------------------- void CWispCalcWnd::buttonB() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL) && (current_base != NB_DECIMAL)) EnterDigit(0xB); } //------------------------------------------------------------------------- // Name: buttonC() //------------------------------------------------------------------------- void CWispCalcWnd::buttonC() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL) && (current_base != NB_DECIMAL)) EnterDigit(0xC); } //------------------------------------------------------------------------- // Name: buttonD() //------------------------------------------------------------------------- void CWispCalcWnd::buttonD() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL) && (current_base != NB_DECIMAL)) EnterDigit(0xD); } //------------------------------------------------------------------------- // Name: buttonE() //------------------------------------------------------------------------- void CWispCalcWnd::buttonE() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL) && (current_base != NB_DECIMAL)) EnterDigit(0xE); } //------------------------------------------------------------------------- // Name: buttonF() //------------------------------------------------------------------------- void CWispCalcWnd::buttonF() { if ((current_base != NB_BINARY) && (current_base != NB_OCTAL) && (current_base != NB_DECIMAL)) EnterDigit(0xF); } //------------------------------------------------------------------------- // Name: InitializeCalculator() //------------------------------------------------------------------------- void CWispCalcWnd::InitializeCalculator() { // // Basic initialization involves initializing the calcultion // stack, forcing the display to refresh to zero, and setting // up the floating point excetion signal handler to trap the // errors that the code can/has not been written to trap. // display_data.s_item_type = ITEM_AMOUNT; display_data.s_item_data.item_amount = 0; display_data.s_item_data.item_func_data.item_function = 0; display_data.s_item_data.item_func_data.item_precedence = 0; RefreshCalculator(); } //------------------------------------------------------------------------- // Name: (int fpe_parm) //------------------------------------------------------------------------- //------------------------------------------------------------------------- // Name: RefreshCalculator() //------------------------------------------------------------------------- void CWispCalcWnd::RefreshCalculator() { InitStack(); display_error = false; DISPLAY_AMOUNT = 0L; inverse = false; decimal_point = 0; input_count = 0; UpdateDisplay(); last_input = DIGIT; // must set last to DIGIT after Update Display in order // not to get a display holding e.g. 0.000 } //------------------------------------------------------------------------- // Name: EnterDigit(int data) //------------------------------------------------------------------------- void CWispCalcWnd::EnterDigit(int data) { last_input = DIGIT; if (refresh_display) { DISPLAY_AMOUNT = 0L; decimal_point = 0; refresh_display = false; input_count = 0; } if (!(input_limit && input_count >= input_limit)) { if (DISPLAY_AMOUNT < 0) { DISPLAY_AMOUNT =(current_base * DISPLAY_AMOUNT) - data; } else { DISPLAY_AMOUNT =(current_base * DISPLAY_AMOUNT) + data; } } if (decimal_point) { input_count ++; } UpdateDisplay(); } //------------------------------------------------------------------------- // Name: SubtractDigit() //------------------------------------------------------------------------- void CWispCalcWnd::SubtractDigit() { // This function could be better, possibly, but am I glad to see it! } //------------------------------------------------------------------------- // Name: EnterDecimal() //------------------------------------------------------------------------- void CWispCalcWnd::EnterDecimal() { // exit if we aren't in decimla mode if (current_base != NB_DECIMAL) return; if (refresh_display) { DISPLAY_AMOUNT = 0L; refresh_display = false; input_count = 0; } if(last_input == DIGIT) { if (decimal_point==0) //strpbrk() doesn't work in fixed precision mode { // if the last input was a DIGIT and we don't // have already a period in our // display string then display a period if (strlen(display_str) >= DSP_SIZE) return; if (!kcalcdefaults.fixed) strcat(display_str, "."); decimal_point = 1; } } else { // the last input wasn't a DIGIT so we are about to // input a new number in particular we need to display a "0.". if (decimal_point==0) //strpbrk() doesn't work in fixed precision mode { DISPLAY_AMOUNT = 0L; refresh_display = false; decimal_point = 1; if (!kcalcdefaults.fixed) strcpy(display_str, "0."); } } } //------------------------------------------------------------------------- // Name: Or() //------------------------------------------------------------------------- void CWispCalcWnd::Or() { EnterStackFunction(1); // OR last_input = OPERATION; } void CWispCalcWnd::Xor() { EnterStackFunction(2); // XOR last_input = OPERATION; } //------------------------------------------------------------------------- // Name: And() //------------------------------------------------------------------------- void CWispCalcWnd::And() { last_input = OPERATION; EnterStackFunction(3); } //------------------------------------------------------------------------- // Name: Shift() //------------------------------------------------------------------------- void CWispCalcWnd::Shift() { last_input = OPERATION; if (inverse) { EnterStackFunction(5); // Rsh inverse = false; } else EnterStackFunction(4); // Lsh } void CWispCalcWnd::Lshift() { last_input = OPERATION; EnterStackFunction(4); // Lsh } void CWispCalcWnd::Rshift() { last_input = OPERATION; EnterStackFunction(5); // Rsh } //------------------------------------------------------------------------- // Name: Plus() //------------------------------------------------------------------------- void CWispCalcWnd::Plus() { last_input = OPERATION; EnterStackFunction(6); } //------------------------------------------------------------------------- // Name: Minus() //------------------------------------------------------------------------- void CWispCalcWnd::Minus() { last_input = OPERATION; EnterStackFunction(7); } //------------------------------------------------------------------------- // Name: Multiply() //------------------------------------------------------------------------- void CWispCalcWnd::Multiply() { last_input = OPERATION; EnterStackFunction(8); } //------------------------------------------------------------------------- // Name: Divide() //------------------------------------------------------------------------- void CWispCalcWnd::Divide() { last_input = OPERATION; EnterStackFunction(9); } //------------------------------------------------------------------------- // Name: Mod() //------------------------------------------------------------------------- void CWispCalcWnd::Mod() { last_input = OPERATION; if (inverse) { EnterStackFunction(13); // InvMod inverse = false; } else { EnterStackFunction(10); // Mod } } //------------------------------------------------------------------------- // Name: Power() //------------------------------------------------------------------------- void CWispCalcWnd::Power() { last_input = OPERATION; if (inverse) { EnterStackFunction(12); // InvPower inverse = false; } else { EnterStackFunction(11); // Power } } //------------------------------------------------------------------------- // Name: EnterStackFunction(int data) //------------------------------------------------------------------------- void CWispCalcWnd::EnterStackFunction(int data) { item_contents new_item; int new_precedence; int dummy = 0; data = adjust_op[data][dummy]; PushStack(&display_data); new_item.s_item_type = ITEM_FUNCTION; new_item.s_item_data.item_func_data.item_function = data; new_item.s_item_data.item_func_data.item_precedence = new_precedence = precedence[data] + precedence_base; refresh_display = true; if (UpdateStack(new_precedence)) { UpdateDisplay(); } PushStack(&new_item); } //------------------------------------------------------------------------- // Name: EnterNegate() //------------------------------------------------------------------------- void CWispCalcWnd::EnterNegate() { { if (DISPLAY_AMOUNT != 0) { DISPLAY_AMOUNT *= -1; UpdateDisplay(); } } last_input = DIGIT; } //------------------------------------------------------------------------- // Name: EnterOpenParen() //------------------------------------------------------------------------- void CWispCalcWnd::EnterOpenParen() { last_input = OPERATION; precedence_base += PRECEDENCE_INCR; refresh_display = true; } //------------------------------------------------------------------------- // Name: EnterCloseParen() //------------------------------------------------------------------------- void CWispCalcWnd::EnterCloseParen() { last_input = OPERATION; PushStack(&display_data); refresh_display = true; if (UpdateStack(precedence_base)) UpdateDisplay(); if ((precedence_base -= PRECEDENCE_INCR) < 0) precedence_base = 0; } //------------------------------------------------------------------------- // Name: EnterRecip() //------------------------------------------------------------------------- void CWispCalcWnd::EnterRecip() { /* last_input = OPERATION; DISPLAY_AMOUNT = 1 / DISPLAY_AMOUNT; refresh_display = true; UpdateDisplay(); */ } //------------------------------------------------------------------------- // Name: EnterInt() //------------------------------------------------------------------------- void CWispCalcWnd::EnterInt() { CALCAMNT work_amount1 = 0; CALCAMNT work_amount2 = 0; last_input = OPERATION; if (!inverse) { work_amount2 = 0;//MODF(DISPLAY_AMOUNT, &work_amount1); DISPLAY_AMOUNT = work_amount2 ; } else { DISPLAY_AMOUNT = work_amount1; inverse = false; } refresh_display = true; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: EnterFactorial() //------------------------------------------------------------------------- void CWispCalcWnd::EnterFactorial() { CALCAMNT work_amount1; CALCAMNT work_amount2; int incr; //MODF(DISPLAY_AMOUNT, &work_amount1); work_amount1 = DISPLAY_AMOUNT; incr = work_amount1 < 0 ? -1 : 1; work_amount2 = work_amount1 - incr; while (work_amount1 != 0 && work_amount2 != 0 && !display_error) { work_amount1 *= work_amount2; work_amount2 -= incr; } if(work_amount1 == 0) work_amount1 = 1; DISPLAY_AMOUNT = work_amount1; refresh_display = true; last_input = OPERATION; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: EnterSquare() //------------------------------------------------------------------------- void CWispCalcWnd::EnterSquare() { DISPLAY_AMOUNT *= DISPLAY_AMOUNT; refresh_display = true; inverse = false; last_input = OPERATION; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: EnterNotCmp() //------------------------------------------------------------------------- void CWispCalcWnd::EnterNotCmp() { CALCAMNT boh_work_d; KCALC_LONG boh_work; //MODF(DISPLAY_AMOUNT, &boh_work_d); boh_work_d = DISPLAY_AMOUNT; if (ABS(boh_work_d) > KCALC_LONG_MAX) display_error = true; else { boh_work = (KCALC_LONG)boh_work_d; DISPLAY_AMOUNT = ~boh_work; } refresh_display = true; last_input = OPERATION; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: EnterHyp() //------------------------------------------------------------------------- void CWispCalcWnd::EnterHyp() { } //------------------------------------------------------------------------- // Name: ExecSin() //------------------------------------------------------------------------- void CWispCalcWnd::ExecSin() { } //------------------------------------------------------------------------- // Name: ComputeMean() //------------------------------------------------------------------------- void CWispCalcWnd::ComputeMean() { } //------------------------------------------------------------------------- // Name: ComputeSin() //------------------------------------------------------------------------- void CWispCalcWnd::ComputeSin() { } //------------------------------------------------------------------------- // Name: ExecCos() //------------------------------------------------------------------------- void CWispCalcWnd::ExecCos() { } //------------------------------------------------------------------------- // Name: ComputeStd() //------------------------------------------------------------------------- void CWispCalcWnd::ComputeStd() { } //------------------------------------------------------------------------- // Name: ComputeCos() //------------------------------------------------------------------------- void CWispCalcWnd::ComputeCos() { } //------------------------------------------------------------------------- // Name: ComputeMedean() //------------------------------------------------------------------------- void CWispCalcWnd::ComputeMedean() { } //------------------------------------------------------------------------- // Name: ComputeTan() //------------------------------------------------------------------------- void CWispCalcWnd::ComputeTan() { } //------------------------------------------------------------------------- // Name: ExecTan() //------------------------------------------------------------------------- void CWispCalcWnd::ExecTan() { } //------------------------------------------------------------------------- // Name: EnterPercent() //------------------------------------------------------------------------- void CWispCalcWnd::EnterPercent() { last_input = OPERATION; percent_mode = true; EnterEqual(); percent_mode = false; } //------------------------------------------------------------------------- // Name: EnterLogr() //------------------------------------------------------------------------- void CWispCalcWnd::EnterLogr() { } //------------------------------------------------------------------------- // Name: EnterLogn() //------------------------------------------------------------------------- void CWispCalcWnd::EnterLogn() { } //------------------------------------------------------------------------- // Name: base_selected(int number) //------------------------------------------------------------------------- void CWispCalcWnd::base_selected(int number) { switch(number) { case 0: current_base = NB_HEX; display_size = HEX_SIZE; decimal_point = 0; input_limit = sizeof(KCALC_LONG)*2; break; case 1: current_base = NB_DECIMAL; display_size = DEC_SIZE; input_limit = 0; break; case 2: current_base = NB_OCTAL; display_size = OCT_SIZE; decimal_point = 0; input_limit = 11; break; case 3: current_base = NB_BINARY; display_size = BIN_SIZE; decimal_point = 0; input_limit = 32; break; default: // we shouldn't ever end up here current_base = NB_DECIMAL; display_size = DEC_SIZE; input_limit = 0; } UpdateDisplay(); } //------------------------------------------------------------------------- // Name: angle_selected(int number) //------------------------------------------------------------------------- void CWispCalcWnd::angle_selected(int number) { switch(number) { case 0: m_NumberBitWdith = ANG_DEGREE; break; case 1: m_NumberBitWdith = ANG_RADIAN; break; case 2: m_NumberBitWdith = ANG_GRADIENT; break; case 3: m_NumberBitWdith=ANG_RADIAN; default: // we shouldn't ever end up here m_NumberBitWdith = ANG_RADIAN; } } //------------------------------------------------------------------------- // Name: SetInverse() //------------------------------------------------------------------------- void CWispCalcWnd::SetInverse() { inverse = ! inverse; } //------------------------------------------------------------------------- // Name: EE() //------------------------------------------------------------------------- void CWispCalcWnd::EE() { } //------------------------------------------------------------------------- // Name: MR() //------------------------------------------------------------------------- void CWispCalcWnd::MR() { last_input = OPERATION; DISPLAY_AMOUNT = memory_num; refresh_display = true; UpdateDisplay(); } //------------------------------------------------------------------------- // Name: Mplusminus() //------------------------------------------------------------------------- void CWispCalcWnd::Mplusminus() { EnterEqual(); if (!inverse) memory_num += DISPLAY_AMOUNT; else memory_num -= DISPLAY_AMOUNT; inverse = false; } //------------------------------------------------------------------------- // Name: MC() //------------------------------------------------------------------------- void CWispCalcWnd::MC() { memory_num = 0; refresh_display = true; } //------------------------------------------------------------------------- // Name: EnterEqual() //------------------------------------------------------------------------- void CWispCalcWnd::EnterEqual() { last_input = OPERATION; PushStack(&display_data); refresh_display = true; //if (UpdateStack(0)) UpdateStack(0); UpdateDisplay(); precedence_base = 0; // add this latest value to our history history_list.InsertBefore(history_list.Begin(), DISPLAY_AMOUNT); } //------------------------------------------------------------------------- // Name: Clear() //------------------------------------------------------------------------- void CWispCalcWnd::Clear() { input_count = 0; decimal_point = 0; if (last_input == OPERATION) { PopStack(); last_input = DIGIT; } if(display_error) { display_error = false; refresh_display = false; } if (!refresh_display) { DISPLAY_AMOUNT = 0L; UpdateDisplay(); } //RefreshCalculator(); } //------------------------------------------------------------------------- // Name: ClearAll() //------------------------------------------------------------------------- void CWispCalcWnd::ClearAll() { // last_input = OPERATION; last_input = DIGIT; RefreshCalculator(); refresh_display = true; } //------------------------------------------------------------------------- // Name: UpdateDisplay() //------------------------------------------------------------------------- void CWispCalcWnd::UpdateDisplay() {; // this needs to be rewritten based on whether we are currently // inputting a number so that the period and the 0 after a period // are correctly displayed. CALCAMNT boh_work_d; KCALC_LONG boh_work = 0; int str_size = 0; if (current_base != NB_DECIMAL) { //MODF(DISPLAY_AMOUNT, &boh_work_d); // int mm=100; boh_work_d = DISPLAY_AMOUNT; //KCALC_LONG tmpminlong = KCALC_LONG_MIN; #ifdef CODE_OS_UNIX KCALC_LONG tmpminlong = (-9223372036854775807LL - 1); KCALC_LONG tmpmaxlong = 0xffffffffffffffffULL; if(boh_work_d<(-9223372036854775807LL - 1)) mm-=100; if(boh_work_d>0xffffffffffffffffULL) mm+=100; #else KCALC_LONG tmpminlong = (-9223372036854775807i64 - 1); KCALC_LONG tmpmaxlong = 0xffffffffffffffffui64; if(boh_work_d<(-9223372036854775807i64 - 1)) mm-=100; if(boh_work_d>0xffffffffffffffffui64) mm+=100; #endif //KCALC_LONG tmpmaxlong = KCALC_ULONG_MAX; if(boh_work_d < tmpminlong ||boh_work_d > KCALC_ULONG_MAX) { display_error = true; // // We may be in that never-never land where boh numbers // turn from positive to negative - if so then we do // just that, allowing boh negative numbers to be entered // as read (from dumps and the like!) // } else if (boh_work_d > KCALC_LONG_MAX) { DISPLAY_AMOUNT = KCALC_LONG_MIN + (boh_work_d - KCALC_LONG_MAX - 1); boh_work = (KCALC_LONG)DISPLAY_AMOUNT; } else { DISPLAY_AMOUNT = boh_work_d; boh_work = (KCALC_LONG)boh_work_d; } } if (!display_error) { switch(current_base) { case NB_BINARY: str_size = cvb(display_str, boh_work, BIN_SIZE); break; case NB_OCTAL: str_size = sprintf(display_str, PRINT_OCTAL, boh_work); break; case NB_HEX: str_size = sprintf(display_str, PRINT_HEX, boh_work); break; case NB_DECIMAL: if (kcalcdefaults.fixed) { str_size = sprintf(display_str, PRINT_FLOAT, DISPLAY_AMOUNT); } else if(last_input == DIGIT) { str_size = sprintf(display_str, PRINT_LONG_BIG, DISPLAY_AMOUNT); } else { str_size = sprintf(display_str, PRINT_LONG, DISPLAY_AMOUNT); } if (input_count > 0 &&last_input == DIGIT ) { str_size = sprintf(display_str, PRINT_FLOAT, DISPLAY_AMOUNT); } break; default: display_error = true; break; } } if (display_error || str_size < 0) { display_error = true; } Update(); } //------------------------------------------------------------------------- // Name: cvb(char *out_str, KCALC_LONG amount, int max_digits) //------------------------------------------------------------------------- int CWispCalcWnd::cvb(char *out_str, KCALC_LONG amount, int max_digits) { /* * A routine that converts a long int to * binary display format */ char *strPtr = out_str; bool hitOne = false; unsigned KCALC_LONG bit_mask = ((unsigned KCALC_LONG) 1 << (BIN_SIZE - 1)); unsigned KCALC_LONG bit_mask_mask = bit_mask - 1; unsigned int count = 0 ; while(bit_mask != 0 && max_digits > 0) { char tmp = (bit_mask & amount) ? '1' : '0'; if (hitOne && (count%4==0)) *strPtr++ = ' '; count++; if(!hitOne && tmp == '1') hitOne = true; if(hitOne) *strPtr++ = tmp; bit_mask >>= 1; // this will fix a prob with some processors using an // arithmetic right shift (which would maintain sign on // negative numbers and cause a loop that's too long) bit_mask &= bit_mask_mask; //Sven: Uwe's Alpha adition max_digits--; } if(amount == 0) *strPtr++ = '0'; *strPtr = '\0'; return (int)strlen(out_str); } //------------------------------------------------------------------------- // Name: UpdateStack(int run_precedence) //------------------------------------------------------------------------- int CWispCalcWnd::UpdateStack(int run_precedence) { item_contents new_item; item_contents *top_item; item_contents *top_function; CALCAMNT left_op = 0; CALCAMNT right_op = 0; int op_function = 0; int return_value = 0; new_item.s_item_type = ITEM_AMOUNT; while ((top_function = TopTypeStack(ITEM_FUNCTION)) && top_function->s_item_data.item_func_data.item_precedence >= run_precedence) { return_value = 1; top_item = PopStack(); right_op = top_item->s_item_data.item_amount; top_item = PopStack(); op_function = top_item->s_item_data.item_func_data.item_function; top_item = PopStack(); left_op = top_item->s_item_data.item_amount; if ( ! percent_mode || Prcnt_ops[op_function] == NULL ) { new_item.s_item_data.item_amount = (Arith_ops[op_function])(left_op, right_op); } else { new_item.s_item_data.item_amount = (Prcnt_ops[op_function])(left_op, right_op); percent_mode = false; }; PushStack(&new_item); } if (return_value) DISPLAY_AMOUNT = new_item.s_item_data.item_amount; decimal_point=1; return return_value; } //------------------------------------------------------------------------- // Name: isoddint(CALCAMNT input) //------------------------------------------------------------------------- int isoddint(CALCAMNT input) { return (input % 2)==1; } //------------------------------------------------------------------------- // Name: ExecOr(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecOr(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecOr\n"); CALCAMNT boh_work_d; KCALC_LONG boh_work_l; KCALC_LONG boh_work_r; //MODF(left_op, &boh_work_d); boh_work_d = left_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_l = (KCALC_LONG)boh_work_d; //MODF(right_op, &boh_work_d); boh_work_d = right_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_r = (KCALC_LONG) boh_work_d; return (boh_work_l | boh_work_r); } //------------------------------------------------------------------------- // Name: ExecXor(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecXor(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecXOr\n"); CALCAMNT boh_work_d; KCALC_LONG boh_work_l; KCALC_LONG boh_work_r; //MODF(left_op, &boh_work_d); boh_work_d = left_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_l = (KCALC_LONG)boh_work_d; //MODF(right_op, &boh_work_d); boh_work_d=right_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_r = (KCALC_LONG)boh_work_d; return (boh_work_l ^ boh_work_r); } //------------------------------------------------------------------------- // Name: ExecAnd(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecAnd(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecAnd\n"); CALCAMNT boh_work_d; KCALC_LONG boh_work_l; KCALC_LONG boh_work_r; //MODF(left_op, &boh_work_d); boh_work_d=left_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_l = (KCALC_LONG)boh_work_d; //MODF(right_op, &boh_work_d); boh_work_d=right_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_r = (KCALC_LONG)boh_work_d; return (boh_work_l & boh_work_r); } //------------------------------------------------------------------------- // Name: ExecLsh(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecLsh(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecLsh\n"); CALCAMNT boh_work_d; KCALC_LONG boh_work_l; KCALC_LONG boh_work_r; //MODF(left_op, &boh_work_d); boh_work_d=left_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_l = (KCALC_LONG) boh_work_d; //MODF(right_op, &boh_work_d); boh_work_d=right_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_r = (KCALC_LONG) boh_work_d; return (boh_work_l << boh_work_r); } //------------------------------------------------------------------------- // Name: ExecRsh(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecRsh(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecRsh\n"); CALCAMNT boh_work_d; KCALC_LONG boh_work_l; KCALC_LONG boh_work_r; //MODF(left_op, &boh_work_d); boh_work_d=left_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_l = (KCALC_LONG)boh_work_d; //MODF(right_op, &boh_work_d); boh_work_d=right_op; if (ABS(boh_work_d) > KCALC_LONG_MAX) { display_error = true; return 0; } boh_work_r = (KCALC_LONG)boh_work_d; return (boh_work_l >> boh_work_r); } //------------------------------------------------------------------------- // Name: ExecAdd(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecAdd(CALCAMNT left_op, CALCAMNT right_op) { return left_op + right_op; } //------------------------------------------------------------------------- // Name: ExecSubtract(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecSubtract(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecSubtract\n"); return left_op - right_op; } //------------------------------------------------------------------------- // Name: ExecMultiply(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecMultiply(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecMulti\n"); return left_op * right_op; } //------------------------------------------------------------------------- // Name: ExecMod(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecDivide(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecDivide\n"); if (right_op == 0) { display_error = true; return 0L; } else return left_op / right_op; } //------------------------------------------------------------------------- // Name: QExecMod(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecMod(CALCAMNT left_op, CALCAMNT right_op) { // printf("ExecMod\n"); CALCAMNT temp = 0; if (right_op == 0) { display_error = true; return 0L; } else { // x mod y should be the same as x mod -y, thus: right_op = ABS(right_op); temp = left_op%right_op;//FMOD(left_op, right_op); // let's make sure that -7 mod 3 = 2 and NOT -1. // In other words we wand x mod 3 to be a _positive_ number // that is 0,1 or 2. if( temp < 0 ) temp = right_op + temp; return ABS(temp); } } //------------------------------------------------------------------------- // Name: ExecIntDiv(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecIntDiv(CALCAMNT left_op, CALCAMNT right_op) { // printf("IndDiv\n"); if (right_op == 0) { display_error = true; return 0L; } else { //MODF(left_op / right_op, &left_op); left_op=left_op / right_op; return left_op; } } //------------------------------------------------------------------------- // Name: ExecPower(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecPower(CALCAMNT left_op, CALCAMNT right_op) { int i; CALCAMNT ret; ret = left_op; if (right_op == 0) return 1L; for(i = 1; i < right_op;i++) ret = ret * left_op; if (left_op < 0 && isoddint(right_op)) left_op = -1 * left_op; return ret; } //------------------------------------------------------------------------- // Name: ExecPwrRoot(CALCAMNT left_op, CALCAMNT right_op) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecPwrRoot(CALCAMNT left_op, CALCAMNT right_op) { return left_op; } //------------------------------------------------------------------------- // Name: ExecAddSubP(CALCAMNT left_op, CALCAMNT right_op, CALCAMNT result) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecAddP(CALCAMNT left_op, CALCAMNT right_op) { return (left_op + left_op * right_op/100 ); } //------------------------------------------------------------------------- // Name: ExecAddSubP(CALCAMNT left_op, CALCAMNT right_op, CALCAMNT result) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecSubP(CALCAMNT left_op, CALCAMNT right_op) { return (left_op - left_op * right_op/100 ); } //------------------------------------------------------------------------- // Name: ExecMultiplyP(CALCAMNT left_op, CALCAMNT right_op, CALCAMNT result) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecMultiplyP(CALCAMNT left_op, CALCAMNT right_op) { return left_op*right_op/100; } //------------------------------------------------------------------------- // Name: ExecPowerP(CALCAMNT left_op, CALCAMNT right_op, CALCAMNT result) //------------------------------------------------------------------------- CALCAMNT CWispCalcWnd::ExecDivideP(CALCAMNT left_op, CALCAMNT right_op) { return left_op*100/right_op; } //------------------------------------------------------------------------- // Name: AllocStackItem() //------------------------------------------------------------------------- stack_ptr AllocStackItem() { CODE_ASSERT(stack_next <= stack_last); process_stack[stack_next].prior_item = NULL; process_stack[stack_next].prior_type = NULL; return (process_stack + (stack_next++)); } //------------------------------------------------------------------------- // Name: UnAllocStackItem(stack_ptr return_item) //------------------------------------------------------------------------- void UnAllocStackItem(stack_ptr return_item) { if (return_item != (process_stack + (--stack_next))) { CODE_ASSERT(false); // stack error } } //------------------------------------------------------------------------- // Name: PushStack(item_contents *add_item) //------------------------------------------------------------------------- void PushStack(item_contents *add_item) { // Add an item to the stack stack_ptr new_item = top_of_stack; if (!(new_item && new_item->item_value.s_item_type == add_item->s_item_type)) { new_item = AllocStackItem(); // Get a new item // Chain new item to existing stacks new_item->prior_item = top_of_stack; top_of_stack = new_item; new_item->prior_type = top_type_stack[add_item->s_item_type]; top_type_stack[add_item->s_item_type] = new_item; } new_item->item_value = *add_item; // assign contents } //------------------------------------------------------------------------- // Name: PopStack() //------------------------------------------------------------------------- item_contents *PopStack() { // Remove and return the top item in the stack static item_contents return_item; item_contents *return_item_ptr = NULL; stack_ptr return_stack_ptr; if ((return_stack_ptr = top_of_stack)) { return_item = top_of_stack->item_value; top_type_stack[return_item.s_item_type] = top_of_stack->prior_type; top_of_stack = top_of_stack->prior_item; UnAllocStackItem(return_stack_ptr); return_item_ptr = &return_item; } return return_item_ptr; } //------------------------------------------------------------------------- // Name: TopTypeStack(item_type rqstd_type) //------------------------------------------------------------------------- item_contents *TopTypeStack(item_type rqstd_type) { // Return the top item in the stack without removing item_contents *return_item_ptr = NULL; if (top_type_stack[rqstd_type]) return_item_ptr = &(top_type_stack[rqstd_type]->item_value); return return_item_ptr; } /* * Stack storage management Data and Functions */ //------------------------------------------------------------------------- // Name: InitStack() //------------------------------------------------------------------------- void InitStack() { stack_next = 0; stack_last = STACK_SIZE - 1; top_of_stack = top_type_stack[0] = top_type_stack[1] = NULL; } ================================================ FILE: Project/Wisp/Source/WispCalcWnd.h ================================================ #ifndef _WISPCALCWND_H_ #define _WISPCALCWND_H_ #include "WispDefine.h" #include "WispMsgDefine.h" #include "WispButton.h" #include "WispRadioBox.h" #ifndef CODE_OS_UNIX #define _I64_MIN (-9223372036854775807i64 - 1) #define _I64_MAX 9223372036854775807i64 #define _UI64_MAX 0xffffffffffffffffui64 typedef __int64 CALCAMNT; #define KCALC_LONG_MIN _I64_MIN #define KCALC_LONG_MAX _I64_MAX #define KCALC_ULONG_MAX _UI64_MAX #define KCALC_LONG __int64 #define HAVE_LONG_LONG #define HAVE_LONG_DOUBLE #else #define LONG_MIN (-2147483647L - 1) #define LONG_MAX 2147483647L #define ULONG_MAX 0xffffffffUL typedef long CALCAMNT; #define KCALC_LONG_MIN LONG_MIN #define KCALC_LONG_MAX LONG_MAX #define KCALC_ULONG_MAX ULONG_MAX #define KCALC_LONG long #define HAVE_LONG_LONG #define HAVE_LONG_DOUBLE #endif #define UNUSED(x) ((void)(x)) enum { BUTTON_CONFIG, BUTTON_HELP, EDIT_DISPLAY, CHECKBOX_HEX, CHECKBOX_DEC, CHECKBOX_OCT, CHECKBOX_BIN, CHECKBOX_8BYTE, CHECKBOX_4BYTE, CHECKBOX_2BYTE, CHECKBOX_1BYTE, BUTTON_HYP, BUTTON_INV, BUTTON_A, BUTTON_EE, BUTTON_MR, BUTTON_MOTHER, BUTTON_MC, BUTTON_AFUNCTION, BUTTON_AC, BUTTON_RSH, BUTTON_PLUSMINUS, BUTTON_B, BUTTON_7, BUTTON_8, BUTTON_9, BUTTON_LBRACKET, BUTTON_RBRACKET, BUTTON_AND, BUTTON_COS, BUTTON_RECIPROCAL, BUTTON_C, BUTTON_4, BUTTON_5, BUTTON_6, BUTTON_MULTIPLYSIGN, BUTTON_DIVESIONSIGN, BUTTON_OR, BUTTON_TAN, BUTTON_FACTORIAL, BUTTON_D, BUTTON_1, BUTTON_2, BUTTON_3, BUTTON_ADDSIGN, BUTTON_SUBSIGN, BUTTON_LSH, BUTTON_LOG, BUTTON_SQUARE, BUTTON_E, BUTTON_DECIMAL, BUTTON_0, BUTTON_EQUALSIGN, BUTTON_PERCENTSIGN, BUTTON_CMP, BUTTON_MOD, BUTTON_LN, BUTTON_POWER, BUTTON_F, CONTROL_MAXNUM, }; #define STACK_SIZE 100 #define PRECEDENCE_INCR 20 #define FUNC_NULL 0 #define FUNC_OR 1 #define FUNC_XOR 2 #define FUNC_AND 3 #define FUNC_LSH 4 #define FUNC_RSH 5 #define FUNC_ADD 6 #define FUNC_SUBTRACT 7 #define FUNC_MULTIPLY 8 #define FUNC_DIVIDE 9 #define FUNC_MOD 10 #define FUNC_POWER 11 #define FUNC_PWR_ROOT 12 #define FUNC_INTDIV 13 #define HEX_SIZE sizeof(KCALC_LONG)*2 #define OCT_SIZE 22 #define DEC_SIZE 20 #define BIN_SIZE 64 #define DSP_SIZE 65 // 25 #define POS_ZERO 1e-19L /* What we consider zero is */ #define NEG_ZERO -1e-19L /* anything between these two */ #define DISPLAY_AMOUNT display_data.s_item_data.item_amount typedef CALCAMNT (*Arith)(CALCAMNT, CALCAMNT); typedef CALCAMNT (*Prcnt)(CALCAMNT, CALCAMNT); typedef CALCAMNT (*Trig)(CALCAMNT); typedef enum _last_input_type { DIGIT = 1, OPERATION = 2, RECALL = 3, PASTE = 4 } last_input_type; typedef enum _num_base { NB_BINARY = 2, NB_OCTAL = 8, NB_DECIMAL = 10, NB_HEX = 16 } num_base; typedef enum _angle_type { ANG_DEGREE = 0, ANG_RADIAN = 1, ANG_GRADIENT = 2 } angle_type; typedef enum _item_type { ITEM_FUNCTION, ITEM_AMOUNT } item_type; typedef struct _func_data { int item_function; int item_precedence; } func_data; typedef union _item_data { CALCAMNT item_amount; // an amount func_data item_func_data; // or a function } item_data; typedef struct _item_contents { item_type s_item_type; // a type flag item_data s_item_data; // and data } item_contents; typedef struct stack_item *stack_ptr; typedef struct stack_item { // Contents of an item on the input stack stack_ptr prior_item; // Pointer to prior item stack_ptr prior_type; // Pointer to prior type item_contents item_value; // The value of the item } stack_item; void InitStack(); void PushStack(item_contents *add_item); int UpdateStack(int run_precedence); item_contents *PopStack(); item_contents *TopOfStack(); item_contents *TopTypeStack(item_type rqstd_type); typedef struct _DefStruct { COLORREF forecolor; COLORREF backcolor; COLORREF numberButtonColor; COLORREF functionButtonColor; COLORREF hexButtonColor; COLORREF memoryButtonColor; COLORREF operationButtonColor; int precision; int fixedprecision; int style; bool fixed; bool beep; CWispFont font; } DefStruct; class CWispCalcWnd :public CWispWnd { public: CWispCalcWnd(void); void Popup(); bool Create(int x=0,int y=0,CWispBaseWnd*pParentWnd = NULL,UINT CmdID = 0); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnCommand); DECLARE_WISP_MSG(OnDestory); DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnKeyDown); DECLARE_WISP_MSG(OnKeyUp); CWispRadioBox* anglebutton[4]; CWispRadioBox* basebutton[4]; CWispButton* pbA; CWispButton* pbMR; CWispButton* pbMplusminus; CWispButton* pbMC; CWispButton* pbClear; CWispButton* pbAC; CWispButton* pbRsh; CWispButton* pbplusminus; CWispButton* pbB; CWispButton* pb7; CWispButton* pb8; CWispButton* pb9; CWispButton* pbparenopen; CWispButton* pbparenclose; CWispButton* pband; CWispButton* pbXor; CWispButton* pbC; CWispButton* pb4; CWispButton* pb5; CWispButton* pb6; CWispButton* pbX; CWispButton* pbdivision; CWispButton* pbor; CWispButton* pbfactorial; CWispButton* pbD; CWispButton* pb1; CWispButton* pb2; CWispButton* pb3; CWispButton* pbplus; CWispButton* pbminus; CWispButton* pbshift; CWispButton* pbsquare; CWispButton* pbE; CWispButton* pb0; CWispButton* pbequal; CWispButton* pbnegate; CWispButton* pbmod; CWispButton* pbpower; CWispButton* pbF; void writeSettings(); void readSettings(); void set_precision(); void set_style(); void history_next(); void history_prev(); void ComputeMean(); void ComputeSin(); void ComputeStd(); void ComputeCos(); void ComputeMedean(); void ComputeTan(); int UpdateStack(int run_precedence); protected : void display_selected(); void selection_timed_out(); void clear_buttons(); void EnterDigit(int data); void SubtractDigit(); void EnterDecimal(); void EnterStackFunction(int data); void EnterNegate(); void EnterOpenParen(); void EnterCloseParen(); void EnterRecip(); void EnterInt(); void EnterFactorial(); void EnterSquare(); void EnterNotCmp(); void EnterHyp(); void EnterPercent(); void EnterLogr(); void EnterLogn(); void Qword_Selected(); void Dword_Selected(); void Word_Selected(); void Byte_Selected(); void Base_Selected(int number); void Hex_Selected(); void Dec_Selected(); void Oct_Selected(); void Bin_Selected(); void SetInverse(); void EnterEqual(); void Clear(); void ClearAll(); void RefreshCalculator(); void InitializeCalculator(); void UpdateDisplay(); void ExecSin(); void ExecCos(); void ExecTan(); void button0(); void button1(); void button2(); void button3(); void button4(); void button5(); void button6(); void button7(); void button8(); void button9(); void buttonA(); void buttonB(); void buttonC(); void buttonD(); void buttonE(); void buttonF(); void base_selected(int number); void angle_selected(int number); void Or(); void Xor(); void And(); void Shift(); void Lshift(); void Rshift(); void Plus(); void Minus(); void Multiply(); void Divide(); void Mod(); void Power(); void EE(); void MR(); void Mplusminus(); void MC(); void EEtoggled(bool myboolean); void pbinvtoggled(bool myboolean); void pbMRtoggled(bool myboolean); void pbAtoggled(bool myboolean); void pbRshtoggled(bool myboolean); void pbplusminustoggled(bool myboolean); void pbMplusminustoggled(bool myboolean); void pbBtoggled(bool myboolean); void pbXortoggled(bool myboolean); void pbrecitoggled(bool myboolean); void pbCtoggled(bool myboolean); void pbTantoggled(bool myboolean); void pbfactorialtoggled(bool myboolean); void pbDtoggled(bool myboolean); void pblogtoggled(bool myboolean); void pbsquaretoggled(bool myboolean); void pbEtoggled(bool myboolean); void pblntoggled(bool myboolean); void pbpowertoggled(bool myboolean); void pbFtoggled(bool myboolean); void pbMCtoggled(bool myboolean); void pbCleartoggled(bool myboolean); void pbACtoggled(bool myboolean); void pb7toggled(bool myboolean); void pb8toggled(bool myboolean); void pb9toggled(bool myboolean); void pbparenopentoggled(bool myboolean); void pbparenclosetoggled(bool myboolean); void pbandtoggled(bool myprivateboolean); void pb4toggled(bool myboolean); void pb5toggled(bool myboolean); void pb6toggled(bool myboolean); void pbXtoggled(bool myboolean); void pbdivisiontoggled(bool myboolean); void pbortoggled(bool myboolean); void pb1toggled(bool myboolean); void pb2toggled(bool myboolean); void pb3toggled(bool myboolean); void pbplustoggled(bool myboolean); void pbminustoggled(bool myboolean); void pbshifttoggled(bool privatemyboolean); void pbperiodtoggled(bool myboolean); void pb0toggled(bool myboolean); void pbequaltoggled(bool myboolean); void pbpercenttoggled(bool myboolean); void pbnegatetoggled(bool myboolean); void pbmodtoggled(bool myboolean); void pbhyptoggled(bool myboolean); private: DefStruct kcalcdefaults; void setStatusLabel(); private: static int cvb(char *out_str, KCALC_LONG amount, int max_digits); public: static CALCAMNT ExecOr(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecXor(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecAnd(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecLsh(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecRsh(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecAdd(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecSubtract(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecMultiply(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecDivide(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecMod(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecPower(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecPwrRoot(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecIntDiv(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecAddP(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecSubP(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecMultiplyP(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecDivideP(CALCAMNT left_op, CALCAMNT right_op); static CALCAMNT ExecFunction(CALCAMNT left_op, int function, CALCAMNT right_op); private: bool inverse; bool refresh_display; int display_size; int m_NumberBitWdith; int input_limit; int input_count; int decimal_point; int precedence_base; num_base current_base; CALCAMNT memory_num; last_input_type last_input; public: static const CALCAMNT pi; private: char display_str[DSP_SIZE + 1]; private: TList history_list; int history_index; bool key_pressed; int mInternalSpacing; }; #endif /* _WISPCALCWND_H_ */ ================================================ FILE: Project/Wisp/Source/WispCheckBox.cpp ================================================ #include "StdAfx.h" #include "WispCheckBox.h" WISP_MSG_MAP_BEGIN(CWispCheckBox) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP_END(CWispBaseWnd) CWispCheckBox::CWispCheckBox(void) { m_bIsMultiLine = false; m_bMouseDown = false; m_bMouseIn = false; m_CtrlType = WISP_CTRL_CHECK_BOX; } bool CWispCheckBox::InitWnd() { if(CWispBaseWnd::InitWnd()==false) return false; m_Style &= ~(WISP_WS_CAPTION|WISP_WS_BT_MAX|WISP_WS_SIZABLE|WISP_WS_BT_MIN|WISP_WS_BT_CLOSE|WISP_WS_BORDER); m_Style |= WISP_WS_BACK_TRANS; if(m_Style & WISP_CBS_PUSHLIKE) m_Style |= WISP_WS_THIN_BORDER; if(m_Style & WISP_CBS_MULTILINE) m_bIsMultiLine = true; if(m_Style & WISP_CBS_PUSHLIKE) { m_TextRect.x = m_WindowRect.x; m_TextRect.y = m_WindowRect.y; m_TextRect.cx = m_WindowRect.cx; m_TextRect.cy = m_WindowRect.cy; m_CheckBoxRect.x = m_TextRect.x; m_CheckBoxRect.y = m_TextRect.y; m_CheckBoxRect.cx = m_TextRect.cx; m_CheckBoxRect.cy = m_TextRect.cy; } else { if(m_Style & WISP_CBS_RIGHT) { m_CheckBoxRect.x = m_WindowRect.x + m_WindowRect.cx - WISP_CHECKBOX_WIDTH-4; m_CheckBoxRect.cx = WISP_CHECKBOX_WIDTH; m_CheckBoxRect.cy = WISP_CHECKBOX_HEIGH; m_CheckBoxRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_CBS_TOP) m_CheckBoxRect.y = m_WindowRect.y; else if(m_Style & WISP_CBS_BOTTOM) m_CheckBoxRect.y = m_WindowRect.y + m_WindowRect.cy - WISP_CHECKBOX_HEIGH; m_TextRect.x = m_WindowRect.x; m_TextRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_CBS_TOP) m_TextRect.y = m_WindowRect.y; else if(m_Style & WISP_CBS_BOTTOM) m_TextRect.y = m_WindowRect.y + m_WindowRect.cy - m_WindowDC.m_pFont->m_Height; m_TextRect.cx = m_CheckBoxRect.x - m_TextRect.x - WISP_TEXT_CHECKBOX_DISTANCE; if(m_Style & WISP_CBS_MULTILINE) m_TextRect.cy = m_WindowRect.cy; else { m_TextRect.cy = m_WindowDC.m_pFont->m_Height; if(m_WindowDC.m_pFont->m_Height > WISP_CHECKBOX_HEIGH) { m_CheckBoxRect.y += (m_WindowDC.m_pFont->m_Height - WISP_CHECKBOX_HEIGH) / 2 ; } } } else { m_CheckBoxRect.x = m_WindowRect.x; m_CheckBoxRect.cx = WISP_CHECKBOX_WIDTH; m_CheckBoxRect.cy = WISP_CHECKBOX_HEIGH; m_CheckBoxRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_CBS_TOP) m_CheckBoxRect.y = m_WindowRect.y; else if(m_Style & WISP_CBS_BOTTOM) m_CheckBoxRect.y = m_WindowRect.y + m_WindowRect.cy - WISP_CHECKBOX_HEIGH; m_TextRect.x = m_CheckBoxRect.x + m_CheckBoxRect.cx + WISP_TEXT_CHECKBOX_DISTANCE; m_TextRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_CBS_TOP) m_TextRect.y = m_WindowRect.y; else if(m_Style & WISP_CBS_BOTTOM) m_TextRect.y = m_WindowRect.y + m_WindowRect.cy - m_WindowDC.m_pFont->m_Height; m_TextRect.cx = m_WindowRect.cx - (m_TextRect.x - m_WindowRect.x); if(m_Style & WISP_CBS_MULTILINE) m_TextRect.cy = m_WindowRect.cy; else { m_TextRect.cy = m_WindowDC.m_pFont->m_Height; if(m_WindowDC.m_pFont->m_Height > WISP_CHECKBOX_HEIGH) { m_CheckBoxRect.y += (m_WindowDC.m_pFont->m_Height - WISP_CHECKBOX_HEIGH) / 2 ; } } } } return true; } bool CWispCheckBox::OnUpdate(IN WISP_MSG*pMsg) { if((m_Style&WISP_WS_BACK_TRANS)==0) m_pWispBase->m_pCurDrawObj->DrawCtrlClient(&m_WindowDC, &m_WindowRect); if((m_Style & WISP_CBS_PUSHLIKE)==0) { m_WindowDC.DrawSystemStandardIcon(m_CheckBoxRect,IsMarked()?WISP_SSI_CHECKBOX_CHECKED:WISP_SSI_CHECKBOX_UNCHECKED); } DrawCaption(); if(m_Style & WISP_CBS_PUSHLIKE) { if(IsMarked() || (m_bMouseDown && m_bMouseIn)) m_WindowDC.DrawFrameRect(&m_WindowRect,false,1); else m_WindowDC.DrawFrameRect(&m_WindowRect,true,1); } return false; } // ʾıϢ void CWispCheckBox::DrawCaption(void) { WISP_RECT Rect; INT uFormat = WISP_DT_VCENTER; //ȱʡıʾ ,м. Rect.x = m_TextRect.x; Rect.y = m_TextRect.y; Rect.cx = m_TextRect.cx; Rect.cy = m_TextRect.cy; if(m_Style & WISP_CBS_PUSHLIKE) { uFormat |= WISP_DT_CENTER; if(m_bMouseDown && m_bMouseIn) { Rect.x = m_TextRect.x + 1; } } if(!m_bIsMultiLine) uFormat |= WISP_DT_SINGLELINE; if(m_Style & WISP_CBS_BOTTOM) uFormat |= WISP_DT_BOTTOM; if(IsDisabled()) m_WindowDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRAY]); m_WindowDC.DrawString(m_WndText,&Rect,uFormat); if(IsDisabled()) m_WindowDC.RestoreTextColor(); } bool CWispCheckBox::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { if(pMsg->KeyEvent.bKeyDown) OnMouseLDown(pMsg); else { if(OnMouseLUp(pMsg)) { WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= m_CtrlType; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_CB_CLICK; Msg.Command.Param1 = (m_Style&WISP_WS_MARKED)!=0; SEND_MSG(&Msg); } } Update(); } return true; } bool CWispCheckBox::OnMouseLDown(IN WISP_MSG*pMsg) { m_bMouseDown = true; return true; } bool CWispCheckBox::OnMouseLUp(IN WISP_MSG*pMsg) { if(m_bMouseIn&&m_bMouseDown) { if(IsChecked()) Check(false); else Check(true); m_bMouseDown = false; return true; } return false; } bool CWispCheckBox::OnMouseLeave(IN WISP_MSG*pMsg) { m_bMouseIn = false; if(m_bMouseDown) { if(pMsg->bMsgLBTDown==false) m_bMouseDown=false; return false; } return true; } bool CWispCheckBox::OnMouseMove(IN WISP_MSG*pMsg) { m_bMouseIn = true; return true; } void CWispCheckBox::Check(bool bCheck) { if(bCheck) { m_Style|=WISP_WS_MARKED; } else { m_Style&=~WISP_WS_MARKED; } } ================================================ FILE: Project/Wisp/Source/WispCheckBox.h ================================================ #ifndef _WISP_CHECKBOX_H_ #define _WISP_CHECKBOX_H_ #include "WispWnd.h" #include "Utility.h" #define WISP_CBS_NORMAL WISP_CBS_TEXTLEFT #define WISP_CBS_MULTILINE 0x80000000 #define WISP_CBS_PUSHLIKE 0x40000000 #define WISP_CBS_TEXTLEFT 0x20000000 #define WISP_CBS_ICON 0x10000000 #define WISP_CBS_BMP 0x08000000 #define WISP_CBS_NOTIFY 0x04000000 #define WISP_CBS_RIGHT 0x02000000 #define WISP_CBS_RTLREADING 0x01000000 #define WISP_CBS_STATICEDGE 0x00800000 #define WISP_CBS_TABSTOP 0x00400000 #define WISP_CBS_BOTTOM 0x00080000 #define WISP_CBS_TOP 0x00040000 #define WISP_CBS_FLAT 0x00020000 #define WISP_CBS_CLIENTEDGE 0x00010000 #define WISP_CHECKBOX_WIDTH WISP_SSI_CHECKBOX_SIZE+2 #define WISP_CHECKBOX_HEIGH WISP_SSI_CHECKBOX_SIZE+2 #define WISP_TEXT_CHECKBOX_DISTANCE 0x6 class CWispCheckBox :public CWispBaseWnd { public: CWispCheckBox(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnMouseLDown); DECLARE_WISP_MSG(OnMouseLUp); DECLARE_WISP_MSG(OnMouseLeave); DECLARE_WISP_MSG(OnMouseMove); public: virtual bool InitWnd(); private: // ʾֵľ CWispRect m_TextRect; CWispRect m_CheckBoxRect; public: // ñΪ̬ťΪ̬ť // ǰİť״̬ // Ƿֶ֧ı bool m_bIsMultiLine; // ʾıϢ void DrawCaption(void); void Check(bool bCheck=true); bool IsChecked(){return (m_Style&WISP_WS_MARKED)!=0;} public: // Ƿ񱻰 bool m_bMouseDown; // Ƿڱ bool m_bMouseIn; }; #endif ================================================ FILE: Project/Wisp/Source/WispColorStrWnd.cpp ================================================ #include "StdAfx.h" #include "WispColorStrWnd.h" WISP_MSG_MAP_BEGIN(CWispColorStrWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_SCROLL_EVENT,OnScrollEvent) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CWispColorStrWnd) WISP_MSG_EVENT_MAP(WISP_ID_COPY,OnEventCopy) WISP_MSG_EVENT_MAP_END CWispColorStrWnd::CWispColorStrWnd(void) { m_MaxLines = m_MaxChars = 0; m_Margin = WISP_COLOR_STR_MARGIN; } CWispColorStrWnd::~CWispColorStrWnd(void) { } bool CWispColorStrWnd::OnCreate(IN WISP_MSG*pMsg) { m_bSelect = false; return true; } bool CWispColorStrWnd::OnEventCopy(IN WISP_MSG*pMsg) { int Length; WISP_CHAR szBuffer[MAX_LINE_CHAR+1]; WISP_COLOR_CHAR CSBuffer[MAX_LINE_CHAR+1]; if(m_bSelect==false) return false; CWispString ClipboardString; ClipboardString.Empty(); for(int ScrPosY=m_pSelStartPos->y;ScrPosY<=m_pSelEndPos->y;ScrPosY++) { if(ScrPosY!=m_pSelStartPos->y) ClipboardString+=WSTR("\r\n"); *CSBuffer=0; GetLineStr(ScrPosY,CSBuffer); TStrCpy(szBuffer,CSBuffer); if(m_pSelStartPos->y == m_pSelEndPos->y) { Length = m_pSelEndPos->x - m_pSelStartPos->x + 1; if(Length>0) { szBuffer[m_pSelStartPos->x+Length]=0; ClipboardString+=&szBuffer[m_pSelStartPos->x]; } } else if(ScrPosYy) { if(ScrPosY == m_pSelStartPos->y) { ClipboardString+=&szBuffer[m_pSelStartPos->x]; } else { ClipboardString+=szBuffer; } } else if(ScrPosY==m_pSelEndPos->y) { szBuffer[m_pSelEndPos->x+1]=0; ClipboardString+=szBuffer; } } m_pWispBase->SetClipboardString(ClipboardString); m_bSelect = false; UpdateClient(); return true; } bool CWispColorStrWnd::OnUpdateClient(IN WISP_MSG*pMsg) { BYTE BKClr; WISP_RECT Rect; int Length,ScrPosX,ScrPosY; WISP_COLOR_CHAR CSBuffer[MAX_LINE_CHAR+1],Char; CWispWnd::OnUpdateClient(pMsg); for(int n=0;nm_Height; Rect.cx = m_ClientRect.cx; Rect.cy = m_ClientDC.m_pFont->m_Height; m_ClientDC.DrawFullRect(&Rect,SYS_COLOR[BKClr]); } Length=TStrLen(CSBuffer); if(Length>0) { if((m_Style & WISP_WCSS_SELECT_STRING) && m_bSelect && ScrPosY>=m_pSelStartPos->y && ScrPosY<=m_pSelEndPos->y) { ScrPosX = m_Margin - m_ClientDC.m_pFont->m_Width * m_ScrPos.x; for(int nx=0;nxm_Width,ScrPosY)) { Char = (CSBuffer[m_ScrPos.x+nx]&0xFFFF)+(SC_WHITE<<16)+(SC_SELECT_BG<<24); ScrPosX+=m_ClientDC.DrawColorString(ScrPosX,m_Margin+n*m_ClientDC.m_pFont->m_Height,&Char,1,m_ScrPos.x+nx); } else { ScrPosX+=m_ClientDC.DrawColorString(ScrPosX,m_Margin+n*m_ClientDC.m_pFont->m_Height,&CSBuffer[m_ScrPos.x+nx],1,m_ScrPos.x+nx); } } } else { m_ClientDC.DrawColorString(m_Margin - m_ClientDC.m_pFont->m_Width * m_ScrPos.x,m_Margin+n*m_ClientDC.m_pFont->m_Height,CSBuffer,Length); } } } return false; } bool CWispColorStrWnd::OnScrollEvent(IN WISP_MSG*pMsg) { CWispWnd::OnScrollEvent(pMsg); if(pMsg->ScrollEvent.SBType == WISP_SB_HORZ) { m_ScrPos.x = (int)m_ScrollBar[WISP_SB_HORZ]->CurPos; } else { m_ScrPos.y = (int)m_ScrollBar[WISP_SB_VERT]->CurPos; } UpdateCaretState(); UpdateClient(); return false; } bool CWispColorStrWnd::OnMouseMove(IN WISP_MSG*pMsg) { if(PtInRect(&m_ClientRect,pMsg->MsgMouseWndPT)==false) return true; if(pMsg->bMsgLBTDown) { if((m_Style & WISP_WCSS_SELECT_STRING) && m_RealSelStartPos.x>=0 && m_RealSelStartPos.y>=0) { CalcPonitStrPos(&pMsg->MsgMouseWndPT,&m_RealSelEndPos); if(m_RealSelEndPos.x>=0&&m_RealSelEndPos.y>=0&&m_RealSelStartPos.x>=0&&m_RealSelStartPos.y>=0) { m_bSelect = true; if(m_RealSelEndPos.y < m_RealSelStartPos.y || (m_RealSelEndPos.y == m_RealSelStartPos.y && m_RealSelEndPos.x < m_RealSelStartPos.x) ) { m_pSelStartPos = &m_RealSelEndPos; m_pSelEndPos = &m_RealSelStartPos; } else { m_pSelStartPos = &m_RealSelStartPos; m_pSelEndPos = &m_RealSelEndPos; } Update(); } } } return true; } void CWispColorStrWnd::ClearSelect() { if(m_bSelect) { m_bSelect = false; m_RealSelEndPos.x = m_RealSelEndPos.y = m_RealSelStartPos.x = m_RealSelStartPos.y = -1; } } bool CWispColorStrWnd::OnKeyEvent(IN WISP_MSG*pMsg) { WISP_MSG Msg; if(pMsg->KeyEvent.bKeyDown) { switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: case WISP_MOD_CTRL|WISP_VK_C: case WISP_MOD_SHIFT|WISP_VK_INSERT: Msg.hWnd = this; Msg.Msg = WISP_WM_EVENT; Msg.Command.CmdID = WISP_ID_COPY; POST_MSG(&Msg); return false; case WISP_MOD_CTRL|WISP_VK_V: case WISP_MOD_CTRL|WISP_VK_INSERT: Msg.hWnd = this; Msg.Msg = WISP_WM_EVENT; Msg.Command.CmdID = WISP_ID_PASTE; POST_MSG(&Msg); return false; } if(m_Style & WISP_WCSS_SELECT_STRING && pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { m_bSelect = false; CalcPonitStrPos(&pMsg->MsgMouseWndPT,&m_RealSelStartPos); m_pSelStartPos = &m_RealSelStartPos; m_RealSelEndPos.x = m_RealSelEndPos.y = -1; m_pSelEndPos = &m_RealSelEndPos; Update(); } if(m_Style&WISP_WCSS_FREE_CARET) { if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { ClearSelect(); m_CaretPos.x=pMsg->MsgMouseWndPT.x-pMsg->MsgMouseWndPT.x%m_ClientDC.m_pFont->m_Width; m_CaretPos.x/=m_ClientDC.m_pFont->m_Width; m_CaretPos.y=pMsg->MsgMouseWndPT.y-pMsg->MsgMouseWndPT.y%m_ClientDC.m_pFont->m_Height; m_CaretPos.y/=m_ClientDC.m_pFont->m_Height; SetCaretPos(m_CaretPos.x*m_ClientDC.m_pFont->m_Width,m_CaretPos.y*m_ClientDC.m_pFont->m_Height); m_CaretPos.y+=m_ScrPos.y; m_CaretPos.x+=m_ScrPos.x; RecalcLayout(); Update(); } switch(pMsg->KeyEvent.KeyType) { case WISP_VK_UP: ClearSelect(); if(m_CaretPos.y>0) { if(m_CaretPos.y<=m_ScrPos.y) SendScrollEvent(WISP_SB_VERT,WISP_SB_DEC); m_CaretPos.y--; RecalcLayout(); Update(); } break; case WISP_VK_LEFT: ClearSelect(); if(m_CaretPos.x>0) { if(m_CaretPos.x<=m_ScrPos.x) SendScrollEvent(WISP_SB_HORZ,WISP_SB_DEC); m_CaretPos.x--; RecalcLayout(); Update(); } break; case WISP_VK_DOWN: ClearSelect(); if(m_CaretPos.y+1=m_ScrPos.y+m_nLinesPerPage) SendScrollEvent(WISP_SB_VERT,WISP_SB_INC); m_CaretPos.y++; RecalcLayout(); Update(); } break; case WISP_VK_RIGHT: ClearSelect(); if(m_CaretPos.x+1=m_ScrPos.x+m_nCharsPerLine) SendScrollEvent(WISP_SB_HORZ,WISP_SB_INC); m_CaretPos.x++; RecalcLayout(); Update(); } break; } } } else { } return true; } bool CWispColorStrWnd::OnRecalcLayout(IN WISP_MSG*pMsg) { m_nCharsPerLine = (m_ClientRect.cx-m_Margin*2)/m_ClientDC.m_pFont->m_Width; MIN_LIMIT(m_nCharsPerLine,0); m_nLinesPerPage = (m_ClientRect.cy-m_Margin) /m_ClientDC.m_pFont->m_Height; MIN_LIMIT(m_nLinesPerPage,0); if(m_nLinesPerPage>=m_MaxLines && m_ScrPos.y!=0) m_ScrPos.y = 0; SetScrollBarInfo(WISP_SB_VERT,m_ScrPos.y,m_MaxLines,m_nLinesPerPage); SetScrollBarInfo(WISP_SB_HORZ,m_ScrPos.x,m_MaxChars,m_nCharsPerLine); UpdateCaretState(); return true; } void CWispColorStrWnd::CalcPonitStrPos(IN WISP_POINT*pPoint,WISP_POINT*pStrPT) { int x,y; x = pPoint->x - m_Margin; y = pPoint->y - m_Margin; pStrPT->x=x-x%m_ClientDC.m_pFont->m_Width; pStrPT->x/=m_ClientDC.m_pFont->m_Width; if(xm_Width/2 && pStrPT->x>0) pStrPT->x--; pStrPT->y=y-y%m_ClientDC.m_pFont->m_Height; pStrPT->y/=m_ClientDC.m_pFont->m_Height; pStrPT->y+=m_ScrPos.y; pStrPT->x+=m_ScrPos.x; } void CWispColorStrWnd::SetMaxLines(IN int nLine) { m_MaxLines = nLine; } void CWispColorStrWnd::SetMaxChars(IN int nChar) { m_MaxChars = nChar; } bool CWispColorStrWnd::InitWnd() { if(CWispWnd::InitWnd()==false) return false; m_CaretPos.x = m_CaretPos.y = m_ScrPos.x = m_ScrPos.y = 0; return true; } void CWispColorStrWnd::UpdateCaretState() { if(m_CaretPos.x>=m_ScrPos.x&&m_CaretPos.x=m_ScrPos.y&&m_CaretPos.ym_Width,m_Margin+(m_CaretPos.y-m_ScrPos.y)*m_ClientDC.m_pFont->m_Height); ShowCaret(true); } else { ShowCaret(false); } } bool CWispColorStrWnd::IsSelectChar(int ScrX,int ScrY) { if(m_pSelEndPos->x==-1 || m_pSelEndPos->y==-1) return false; if(ScrYy || ScrY>m_pSelEndPos->y) return false; if(ScrY==m_pSelStartPos->y && ScrXx) return false; if(ScrY==m_pSelEndPos->y && ScrX>m_pSelEndPos->x) return false; return true; } ================================================ FILE: Project/Wisp/Source/WispColorStrWnd.h ================================================ #ifndef _WISP_COLOR_STR_WND_ #define _WISP_COLOR_STR_WND_ #include "WispWnd.h" #define MAX_LINE_CHAR 256 #define WISP_COLOR_STR_MARGIN 5 #define WISP_WCSS_FREE_CARET 0x00010000 #define WISP_WCSS_SELECT_STRING 0x00020000 class CWispColorStrWnd : public CWispWnd { public: CWispColorStrWnd(void); virtual ~CWispColorStrWnd(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnScrollEvent) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventCopy) public: virtual bool InitWnd(); virtual BYTE GetLineStr(IN int LineIndex,OUT WISP_COLOR_CHAR*pColorStr)=0; virtual void SetMaxLines(IN int nLine); virtual void SetMaxChars(IN int nChar); void CalcPonitStrPos(IN WISP_POINT*pPoint,WISP_POINT*pStrPT); void UpdateCaretState(); void ClearSelect(); public: WISP_POINT m_ScrPos; WISP_POINT m_CaretPos; WISP_POINT m_RealSelStartPos; WISP_POINT m_RealSelEndPos; WISP_POINT* m_pSelStartPos; WISP_POINT* m_pSelEndPos; bool m_bSelect; int m_Margin; int m_nCharsPerLine; int m_nLinesPerPage; int m_MaxChars; int m_MaxLines; private: bool inline IsSelectChar(int ScrX,int ScrY); }; #endif ================================================ FILE: Project/Wisp/Source/WispComboBox.cpp ================================================ #include "StdAfx.h" #include "WispComboBox.h" #include "WispDIBLib.h" enum WISP_COMBO_BOX { WISP_ID_COMBO_BT = WISP_ID_DEVELOP_START, WISP_ID_COMBO_LIST, }; WISP_MSG_MAP_BEGIN(CWispComboBox) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_CREATE,OnCreate); WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy); WISP_MSG_MAP_END(CWispEdit) WISP_MSG_EVENT_MAP_BEGIN(CWispComboBox) WISP_MSG_EVENT_MAP(WISP_ID_COMBO_BT,OnComboBT); WISP_MSG_EVENT_MAP(WISP_ID_COMBO_LIST,OnComboListEvent); WISP_MSG_EVENT_MAP_END WISP_MSG_CMD_MAP_BEGIN(CWispComboBox) WISP_MSG_CMD_MAP(WISP_ID_COMBO_LIST,OnComboListCmd); WISP_MSG_CMD_MAP_END CWispComboBox::CWispComboBox() { m_CtrlType = WISP_CTRL_COMBO_BOX; m_CurSelIndex = -1; } bool CWispComboBox::OnCreate(IN WISP_MSG*pMsg) { WISP_SIZE BTSize; CWispDIBList*pDIBList=WispDIBList("\\Skin\\Default\\VertInc.bmp",16,16); BTSize.cx = pDIBList->m_DIBList->Width(); BTSize.cy = pDIBList->m_DIBList->Height(); m_ComboButton.CreateEx(pDIBList,m_ClientRect.cx-BTSize.cx,0,this,WISP_ID_COMBO_BT); m_ComboList.Create(NULL,0,0,m_WindowRect.cx,BTSize.cy,NULL,WISP_ID_COMBO_LIST,WISP_WS_THIN_BORDER|WISP_WLS_FOLLOW_SEL,WISP_SH_HIDDEN); m_ComboList.SetOwner(this); m_ComboList.InsertColumn(NULL,-1); return true; } bool CWispComboBox::OnDestroy(IN WISP_MSG*pMsg) { m_ComboList.Destroy(); return true; } bool CWispComboBox::OnComboBT(IN WISP_MSG*pMsg) { if(m_ComboList.IsVisible()) { m_ComboList.Show(WISP_SH_HIDDEN); } else { m_ComboList.MoveToScreen(m_ScrWindowRect.x,m_ScrWindowRect.y+m_ScrWindowRect.cy,false); m_ComboList.Resize(m_ComboList.m_WindowRect.cx,m_ComboList.GetItemCount()*m_ComboList.m_ButtonSize.cy+m_BorderSize*2,false); m_ComboList.Show(); m_ComboList.Top(); m_ComboList.Focus(); } return true; } bool CWispComboBox::OnComboListEvent(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_CTRL_CLICK) { HANDLE hItem = pMsg->Command.Param2; m_CurSelIndex = m_ComboList.GetItemIndex(hItem); SetWindowText(m_ComboList.GetItemText(hItem)); m_ComboList.Show(WISP_SH_HIDDEN); Focus(); SendCmdMsg(WISP_CMD_COMBOX_SELCHANGE,m_CurSelIndex,hItem); } return true; } bool CWispComboBox::OnComboListCmd(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_CTRL_LOST_FOCUS && pMsg->Command.Param2 != &m_ComboButton) { m_ComboList.Show(WISP_SH_HIDDEN); } return true; } void CWispComboBox::SelectItem(int Index) { HANDLE hItem = m_ComboList.GetItem(Index); if(hItem) { SetWindowText(m_ComboList.GetItemText(hItem)); m_CurSelIndex = Index; Update(); } } int CWispComboBox::GetCurSelItem() { return m_CurSelIndex; } ================================================ FILE: Project/Wisp/Source/WispComboBox.h ================================================ #ifndef _WISP_COMBOBOX_H_ #define _WISP_COMBOBOX_H_ #include "WispList.h" #include "WispButton.h" class CWispComboBox : public CWispEdit { public: CWispComboBox(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnComboBT) DECLARE_WISP_MSG_EVENT(OnComboListEvent) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnComboListCmd) public: int m_CurSelIndex; CWispList m_ComboList; CWispButton m_ComboButton; void SelectItem(int Index); int GetCurSelItem(); }; #endif ================================================ FILE: Project/Wisp/Source/WispConfig.h ================================================ #ifndef _WISP_CONFIG_H_ #define _WISP_CONFIG_H_ ///////////////////////////////////////////// //ǰհ뿪 ///////////////////////////////////////////// ///////////////////////////////////////////// //Scroll Use LONGLONG //#define WISP_SCROLL_LONGLONG ///////////////////////////////////////////// ///////////////////////////////////////////// //Repeat key use timer #ifdef CODE_OS_NT_DRV //#define WISP_TIMER_SIM_KEY_REPEAT #endif ///////////////////////////////////////////// #endif ================================================ FILE: Project/Wisp/Source/WispConsoleWnd.cpp ================================================ #include "StdAfx.h" #include "WispConsoleWnd.h" #define OUTPUT_PREALLOCATE_LEN MAX_LINE_CHAR*10+1 WISP_MSG_MAP_BEGIN(CWispTerminalWnd) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_CHAR,OnChar); WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_END(CWispColorStrWnd) WISP_MSG_CMD_MAP_BEGIN(CWispTerminalWnd) WISP_MSG_CMD_MAP_DEFAULT_END(OnCmdGetCmd) WISP_MSG_EVENT_MAP_BEGIN(CWispTerminalWnd) WISP_MSG_EVENT_MAP(WISP_ID_PASTE,OnEventPaste) WISP_MSG_EVENT_MAP_END CWispTerminalWnd::CWispTerminalWnd() { m_CtrlType = WISP_CTRL_TERMINAL_WND; m_pConsoleWnd = NULL; m_Prefix=WISP_STR(">"); m_MaxChars = m_Prefix.m_Length; m_OutPutStr.Preallocate(OUTPUT_PREALLOCATE_LEN); m_pStream = NULL; m_StreamStyle = WISP_SSTREAM_UNIX; } CWispTerminalWnd::~CWispTerminalWnd() { } bool CWispTerminalWnd::OnCreate(IN WISP_MSG*pMsg) { EnableScrollBar(WISP_SB_VERT); EnableScrollBar(WISP_SB_HORZ); m_InputStr.Empty(); m_InputStr=m_Prefix; m_CaretPos.x=m_ScrPos.x+m_InputStr.m_Length; m_CaretPos.y=m_LineList.Count(); m_CurHisIndex=-1; RecalcLayout(); UpdateCaretState(); CreateCaret(WISP_DI_CARET); ShowCaret(true); BlinkCaret(300); m_bBGColor = true; m_crBGColor = m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BLACK]; m_TextColor = SC_WHITE; m_bNewLine = true; m_Style|=WISP_WCSS_SELECT_STRING; return true; } bool CWispTerminalWnd::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.bKeyDown) { switch(pMsg->KeyEvent.KeyType) { case WISP_VK_UP: { if(m_CmdHistroy.Count() && m_CurHisIndex0) { m_CurHisIndex--; m_InputStr = m_CmdHistroy[m_CurHisIndex]; m_CaretPos.x = m_InputStr.Length(); RecalcLayout(); Update(); } } break; case WISP_VK_LBUTTON: { int NewX,ScrY; ScrY = (pMsg->MsgMouseCltPT.y-m_Margin)/m_ClientDC.m_pFont->m_Height; if(ScrY == m_LineList.Count() - m_ScrPos.y) { NewX = (pMsg->MsgMouseCltPT.x-m_Margin)/m_ClientDC.m_pFont->m_Width + m_ScrPos.x; if(NewX >= m_Prefix.Length() && NewX<=m_InputStr.Length()) { m_CaretPos.x = NewX; RecalcLayout(); UpdateClient(); } } } break; case WISP_VK_LEFT: ClearSelect(); if(m_CaretPos.x>m_Prefix.Length()) { m_CaretPos.x--; EnsureInputCaretVisible(); RecalcLayout(); } UpdateClient(); break; case WISP_VK_RIGHT: ClearSelect(); if(m_CaretPos.x m_Prefix.Length() && m_RealSelEndPos.y==m_LineList.Count()) { m_CaretPos.x--; m_RealSelEndPos.x = m_CaretPos.x; UpdateCaretState(); m_RealSelEndPos.y = m_RealSelStartPos.y; } } else { if(m_CaretPos.x>m_Prefix.Length()) { m_bSelect = true; m_RealSelStartPos = m_CaretPos; m_RealSelStartPos.x--; m_RealSelEndPos = m_RealSelStartPos; m_CaretPos.x = m_RealSelEndPos.x; UpdateCaretState(); } } if(m_RealSelEndPos.y < m_RealSelStartPos.y || (m_RealSelEndPos.y == m_RealSelStartPos.y && m_RealSelEndPos.x < m_RealSelStartPos.x) ) { m_pSelStartPos = &m_RealSelEndPos; m_pSelEndPos = &m_RealSelStartPos; } else { m_pSelStartPos = &m_RealSelStartPos; m_pSelEndPos = &m_RealSelEndPos; } Update(); break; case WISP_MOD_SHIFT|WISP_VK_RIGHT: if(m_bSelect) { if(m_CaretPos.xy==m_LineList.Count() && m_pSelStartPos->x>=m_Prefix.Length() && m_pSelEndPos->x>=m_pSelStartPos->x) { int Count = m_pSelEndPos->x-m_pSelStartPos->x+1; if(pMsg->KeyEvent.KeyType == (WISP_MOD_CTRL|WISP_VK_X)) { CWispString Str; Str.Preallocate(Count+1); Str.m_Length=TStrCpyLimit(Str.m_pData,&m_InputStr.m_pData[m_pSelStartPos->x],Count+1); m_pWispBase->SetClipboardString(Str); } m_InputStr.Delete(m_pSelStartPos->x,Count); m_bSelect = false; m_CaretPos.x = m_pSelStartPos->x; RecalcLayout(); UpdateClient(); } else if(m_CaretPos.x=MAX_CHARS_PER_LINE-1 && pMsg->Char.Char!=0x08/*Back Space*/&&pMsg->Char.Char!='\n') return true; if(m_LineList.Count()>m_nLinesPerPage && m_ScrPos.y < m_LineList.Count() - m_nLinesPerPage + 1) EnsureInputVisible(); if(pMsg->Char.Char==0x08/*Back Space*/) { if(m_bSelect && m_pSelStartPos->y==m_LineList.Count() && m_pSelStartPos->x>=m_Prefix.Length() && m_pSelEndPos->x>m_pSelStartPos->x) { m_InputStr.Delete(m_pSelStartPos->x,m_pSelEndPos->x-m_pSelStartPos->x); m_bSelect = false; m_CaretPos.x = m_pSelStartPos->x; RecalcLayout(); UpdateClient(); } else { if(m_CaretPos.x<=m_Prefix.Length()) return true; m_CaretPos.x--; if(m_CaretPos.x=m_Prefix.Length()) m_InputStr.Delete(m_CaretPos.x); } else m_InputStr.Truncate(m_CaretPos.x); RecalcLayout(); Update(); } return true; } if(pMsg->Char.Char!='\n') { if(pMsg->Char.Char=='\t') {//Զ for(CCmdMap::IT Iter=m_pConsoleWnd->m_CmdMap.Begin();Iter!=m_pConsoleWnd->m_CmdMap.End();Iter++) { if(TStrNICmp(&m_InputStr[m_Prefix.m_Length],(CMD_CHAR*)Iter.Key(),m_InputStr.m_Length-m_Prefix.m_Length)==0) { m_InputStr = m_Prefix+Iter.Key(); m_CaretPos.x = m_InputStr.m_Length; break; } } } else { if(m_CaretPos.xChar.Char); } else { m_InputStr+=pMsg->Char.Char; } m_CaretPos.x++; if(m_InputStr.m_Length+1>m_MaxChars) m_MaxChars = m_InputStr.m_Length+1; if(m_CaretPos.x>=m_ScrPos.x+m_nCharsPerLine) m_ScrPos.x++; } } if(pMsg->Char.Char=='\n') { if(m_InputStr.GetLength()>m_Prefix.GetLength()) { m_CmdHistroy.Push(m_InputStr); m_CurHisIndex = -1; } WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = WISP_ID_SELF; Msg.Command.CmdMsg = WISP_CMD_GET_CMD; Msg.Command.Param2 = m_InputStr; m_CmdStr = &m_InputStr[m_Prefix.m_Length]; m_InputStr.SetAt(m_Prefix.m_Length,0); m_CaretPos.x=m_Prefix.m_Length; SEND_MSG(&Msg); if(m_nLinesPerPage>0) { m_ScrPos.y=m_LineList.Count()-m_nLinesPerPage+1; MIN_LIMIT(m_ScrPos.y,0); SetScrollBarCurPos(WISP_SB_VERT,m_ScrPos.y); } m_CaretPos.y=m_LineList.Count(); m_ScrPos.x=0; } RecalcLayout(); Update(); return true; } bool CWispTerminalWnd::OnCmdGetCmd(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg==WISP_CMD_GET_CMD) { LockUpdate(); Printf(WISP_STR("%s%s\n"),(WISP_PCSTR)m_InputStr,(WISP_PCSTR)m_CmdStr); if(m_pConsoleWnd==NULL) { Printf(WISP_STR("Error : inside error!\n")); UnlockUpdate(); return false; } if(m_CmdStr.Length()) { if(m_CtrlType == WISP_CTRL_TERMINAL_WND) m_pConsoleWnd->m_pTerminalWnd = this; if(m_pConsoleWnd->RunCmdNotify(m_CmdStr)) { if(m_pConsoleWnd->RunCmd(m_CmdStr)==false) Printf(WISP_STR("Error : unknown command !\n")); AfterRunCmdNotify(m_CmdStr); } if(m_CtrlType == WISP_CTRL_TERMINAL_WND) m_pConsoleWnd->m_pTerminalWnd = NULL; } UnlockUpdate(); } return true; } bool CWispTerminalWnd::OnEventPaste(IN WISP_MSG*pMsg) { if(m_pWispBase->m_ClipboardString.IsEmpty()==false) { m_InputStr.Insert(m_CaretPos.x,m_pWispBase->m_ClipboardString); if(m_InputStr.GetLength()>=MAX_CHARS_PER_LINE) m_InputStr.Truncate(MAX_CHARS_PER_LINE); m_CaretPos.x += m_pWispBase->m_ClipboardString.Length(); MAX_LIMIT(m_CaretPos.x,m_InputStr.GetLength()); UpdateCaretState(); Update(); } return true; } void CWispTerminalWnd::SetFontColor(BYTE ColorIndex) { if(m_CtrlType == WISP_CTRL_CONSOLE_WND && ((CWispConsoleWnd*)this)->m_pTerminalWnd) ((CWispConsoleWnd*)this)->m_pTerminalWnd->m_TextColor = ColorIndex; else m_TextColor = ColorIndex; } void CWispTerminalWnd::SaveFontColor() { if(m_CtrlType == WISP_CTRL_CONSOLE_WND && ((CWispConsoleWnd*)this)->m_pTerminalWnd) ((CWispConsoleWnd*)this)->m_pTerminalWnd->m_OldTextColor = ((CWispConsoleWnd*)this)->m_pTerminalWnd->m_TextColor; else m_OldTextColor = m_TextColor; } void CWispTerminalWnd::RestoreFontColor() { if(m_CtrlType == WISP_CTRL_CONSOLE_WND && ((CWispConsoleWnd*)this)->m_pTerminalWnd) ((CWispConsoleWnd*)this)->m_pTerminalWnd->m_TextColor = ((CWispConsoleWnd*)this)->m_pTerminalWnd->m_OldTextColor; else m_TextColor = m_OldTextColor; } void CWispTerminalWnd::EnsureInputVisible() { m_ScrPos.y=m_LineList.Count()-m_nLinesPerPage+1; MIN_LIMIT(m_ScrPos.y,0); SetScrollBarCurPos(WISP_SB_VERT,m_ScrPos.y); UpdateCaretState(); } void CWispTerminalWnd::EnsureInputCaretVisible() { if(m_CaretPos.x < m_ScrPos.x) m_ScrPos.x = m_CaretPos.x; if(m_CaretPos.x >= m_ScrPos.x+m_nCharsPerLine) m_ScrPos.x = m_CaretPos.x - m_nCharsPerLine+1; MIN_LIMIT(m_CaretPos.x,0); UpdateCaretState(); Update(); } bool CWispTerminalWnd::RunModulePathBat(PCSTR FileName,PCSTR szCmdArg,int*pResult) { WCHAR wszBuffer[MAX_FN_LEN]; char szBuffer[MAX_FN_LEN],*pStr; pStr = szBuffer + TStrCpy(szBuffer,"bat "); if(szCmdArg) { pStr+=TStrCpy(pStr,szCmdArg); pStr+=TStrCpy(pStr," "); } pStr+=GetModulePath(pStr); pStr+=TStrCpy(pStr,FileName); AnsiToUnicode(szBuffer,wszBuffer,MAX_FN_LEN); return m_pConsoleWnd->RunCmd(wszBuffer,pResult); } bool CWispTerminalWnd::TermRunCmd(const CMD_CHAR*szCmd,int*pResult) { bool Result; if(m_CtrlType == WISP_CTRL_TERMINAL_WND) m_pConsoleWnd->m_pTerminalWnd = this; Result = m_pConsoleWnd->RunCmd(szCmd,pResult); if(m_CtrlType == WISP_CTRL_TERMINAL_WND) m_pConsoleWnd->m_pTerminalWnd = NULL; return Result; } bool CWispTerminalWnd::SaveHistroys(PCSTR FileName) { int Length; WCHAR wszBuffer[MAX_CHARS_PER_LINE+2]; CHAR szBuffer[MAX_CHARS_PER_LINE+2]; CImageFileStream FileObj; gpFileIO->DeleteFile(FileName); if(FileObj.Create(FileName)==false) return false; for(int n=0;n 0 && nLine<10000) m_LineList.Resize(nLine); } void CWispTerminalWnd::ClearScreen() { m_LineList.Clear(); m_CaretPos.x = m_Prefix.m_Length; m_CaretPos.y = 0; m_ScrPos.x = m_ScrPos.y = 0; m_MaxChars = m_Prefix.m_Length+1; SetMaxLines(m_LineList.Count()+1); m_InputStr = m_Prefix; RecalcLayout(); Update(); } void CWispTerminalWnd::Output(IN const WISP_CHAR*szLine) { int Length,TotalLength,LineLengthLeft; const WISP_CHAR*pThisLine,*pNextLine; WISP_COLOR_CHAR szLineBuffer[MAX_CHARS_PER_LINE+1]; CWispColorString*pLine; if(m_CtrlType == WISP_CTRL_CONSOLE_WND && ((CWispConsoleWnd*)this)->m_pTerminalWnd) { ((CWispConsoleWnd*)this)->m_pTerminalWnd->Output(szLine); return; } TotalLength = TStrLen(szLine); if(m_bNewLine) { LineLengthLeft = MAX_CHARS_PER_LINE; pLine = m_LineList.Append(); SetMaxLines(m_LineList.Count()+1); pLine->Empty(); m_bNewLine = false; } else { LineLengthLeft = MAX_CHARS_PER_LINE - m_LineList[m_LineList.Count()-1].m_Length; pLine = &m_LineList[m_LineList.Count()-1]; } pThisLine = szLine; while(pThisLine && *pThisLine) { if(LineLengthLeft==0) { LineLengthLeft = MAX_CHARS_PER_LINE; pLine = m_LineList.Append(); SetMaxLines(m_LineList.Count()+1); pLine->Empty(); } pNextLine=TStrChr(pThisLine,(WISP_CHAR)'\n'); if(pNextLine) { Length = (int) (pNextLine - pThisLine); if(Length>LineLengthLeft) Length = LineLengthLeft; pNextLine++; ColorStrNCpy(szLineBuffer,pThisLine,Length,m_TextColor,0); if(*pNextLine==0) { m_bNewLine=true; if(m_pStream) { if(m_StreamStyle&WISP_SSTREAM_DOS) szLineBuffer[Length++] = (WISP_COLOR_CHAR)'\r'; szLineBuffer[Length++] = (WISP_COLOR_CHAR)'\n'; szLineBuffer[Length] = 0; } } if(m_pStream) m_pStream->Puts((void*)szLineBuffer,Length*sizeof(WISP_COLOR_CHAR)); *pLine += szLineBuffer; if(pLine->m_Length > m_MaxChars) m_MaxChars = pLine->m_Length; LineLengthLeft = 0; } else { Length = TStrLen(pThisLine); if(Length>LineLengthLeft) Length = LineLengthLeft; pNextLine = &pThisLine[Length]; ColorStrNCpy(szLineBuffer,pThisLine,Length,m_TextColor,0); *pLine += szLineBuffer; if(m_pStream) m_pStream->Puts((void*)szLineBuffer,Length*sizeof(WISP_COLOR_CHAR)); if(pLine->m_Length > m_MaxChars) m_MaxChars = pLine->m_Length; LineLengthLeft = MAX_CHARS_PER_LINE - pLine->m_Length; } pThisLine = pNextLine; } m_CaretPos.y=m_LineList.Count(); if(m_nLinesPerPage>0) { m_ScrPos.y=m_LineList.Count()-m_nLinesPerPage+1; MIN_LIMIT(m_ScrPos.y,0); SetScrollBarCurPos(WISP_SB_VERT,m_ScrPos.y); } RecalcLayout(); } void CWispTerminalWnd::Output(IN const WISP_COLOR_CHAR*szLine) { int Length,TotalLength,LineLengthLeft; const WISP_COLOR_CHAR*pThisLine,*pNextLine; WISP_COLOR_CHAR szLineBuffer[MAX_CHARS_PER_LINE+1]; CWispColorString*pLine; if(m_CtrlType == WISP_CTRL_CONSOLE_WND && ((CWispConsoleWnd*)this)->m_pTerminalWnd) { ((CWispConsoleWnd*)this)->m_pTerminalWnd->Output(szLine); return; } TotalLength = TStrLen(szLine); if(m_bNewLine) { LineLengthLeft = MAX_CHARS_PER_LINE; pLine = m_LineList.Append(); SetMaxLines(m_LineList.Count()+1); pLine->Empty(); m_bNewLine = false; } else { LineLengthLeft = MAX_CHARS_PER_LINE - m_LineList[m_LineList.Count()-1].m_Length; pLine = &m_LineList[m_LineList.Count()-1]; } pThisLine = szLine; while(pThisLine && *pThisLine) { if(LineLengthLeft==0) { LineLengthLeft = MAX_CHARS_PER_LINE; pLine = m_LineList.Append(); SetMaxLines(m_LineList.Count()+1); pLine->Empty(); } pNextLine=TStrChr(pThisLine,(WISP_COLOR_CHAR)'\n'); if(pNextLine) { Length = (int) (pNextLine - pThisLine); if(Length>LineLengthLeft) Length = LineLengthLeft; pNextLine++; TStrCpyLimit(szLineBuffer,pThisLine,Length+1); if(*pNextLine==0) { m_bNewLine=true; if(m_pStream) { if(m_StreamStyle&WISP_SSTREAM_DOS) szLineBuffer[Length++] = (WISP_COLOR_CHAR)'\r'; szLineBuffer[Length++] = (WISP_COLOR_CHAR)'\n'; szLineBuffer[Length] = 0; } } if(m_pStream) m_pStream->Puts((void*)szLineBuffer,Length*sizeof(WISP_COLOR_CHAR)); *pLine += szLineBuffer; if(pLine->m_Length > m_MaxChars) m_MaxChars = pLine->m_Length; LineLengthLeft = 0; } else { Length = TStrLen(pThisLine); if(Length>LineLengthLeft) Length = LineLengthLeft; pNextLine = &pThisLine[Length]; TStrCpyLimit(szLineBuffer,pThisLine,Length+1); *pLine += szLineBuffer; if(m_pStream) m_pStream->Puts((void*)szLineBuffer,Length*sizeof(WISP_COLOR_CHAR)); if(pLine->m_Length > m_MaxChars) m_MaxChars = pLine->m_Length; LineLengthLeft = MAX_CHARS_PER_LINE - pLine->m_Length; } pThisLine = pNextLine; } } void CWispTerminalWnd::Output(WISP_CHAR ch) { if(ch) { m_OutPutStr+=ch; } if((ch==0 && m_OutPutStr.m_Length) || m_OutPutStr.m_Length >= MAX_CHARS_PER_LINE) { Output(m_OutPutStr); m_OutPutStr.Truncate(0); } } void CWispTerminalWnd::AttachConsole(CWispConsoleWnd*pConsoleWnd) { m_pConsoleWnd = pConsoleWnd; } BYTE CWispTerminalWnd::GetLineStr(IN int LineIndex,OUT WISP_COLOR_CHAR*pColorStr) { if(LineIndex>m_LineList.Count()) return 0; if(LineIndex0 ------- Black\n")); Printf(WISP_STR("%<1>1 ------- White\n")); Printf(WISP_STR("%<2>2 ------- Red\n")); Printf(WISP_STR("%<3>3 ------- Light Red\n")); Printf(WISP_STR("%<4>4 ------- Green\n")); Printf(WISP_STR("%<5>5 ------- Light Green\n")); Printf(WISP_STR("%<6>6 ------- Blue\n")); Printf(WISP_STR("%<7>7 ------- Light Blue\n")); Printf(WISP_STR("%<8>8 ------- Brown\n")); Printf(WISP_STR("%<9>9 ------- Light Brown\n")); Printf(WISP_STR("%A ------- Cyan\n")); Printf(WISP_STR("%B ------- Light Cyan\n")); Printf(WISP_STR("%C ------- Gray\n")); Printf(WISP_STR("%D ------- Light Gray\n")); Printf(WISP_STR("%E ------- Yellow\n")); Printf(WISP_STR("%F ------- Light Yellow\n")); } int CWispConsoleWnd::Color(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { CONSOLE_TERMINAL(pConWnd); BYTE Color; if(argc!=2 || USHexStrToNum(argv[1],&Color)==false) { pConWnd->Printf(WSTR("Usage : Color Color_Index[0 - FF]\n")); pConWnd->DisplayColor(); return 0; } pConWnd->SetFontColor(Color); return 0; } int CWispConsoleWnd::BKColor(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { CONSOLE_TERMINAL(pConWnd); BYTE Color; if(argc!=2 || USHexStrToNum(argv[1],&Color)==false) { pConWnd->Printf(WSTR("Usage : BKColor Color_Index[0 - FF]\n")); pConWnd->DisplayColor(); return 0; } pConWnd->SetBGColor(pConWnd->SYS_COLOR[Color]); return 0; } int CWispConsoleWnd::Cls(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { CONSOLE_TERMINAL(pConWnd); pConWnd->ClearScreen(); return 0; } int CWispConsoleWnd::HL(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { CONSOLE_TERMINAL(pConWnd); ULSIZE Line; if(argc!=2) { pConWnd->Printf(WISP_STR("Usage : hl \n")); pConWnd->Printf(WISP_STR("Current count of histroy lines = %%d (dec)\n"),pConWnd->m_LineList.Size()); return -1; } if(USDecStrToNum(argv[1],&Line)==false) { pConWnd->Printf(WISP_STR("Error : %s is Invalid !\n"),argv[1]); return -1; } if(Line<1 || Line> 10000) { pConWnd->Printf(WISP_STR("Error : please input from 1 to 1000\n")); return -1; } pConWnd->SetHistoryLines(Line); return 0; } int CWispConsoleWnd::HCC(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { ULONG Count; CONSOLE_TERMINAL(pConWnd); if(argc==1) { pConWnd->Printf(WSTR("command histroy count = %d\n"),pConWnd->m_CmdHistroy.Count()); return 0; } if(argc>2 || USDecStrToNum(argv[1],&Count)==false) { pConWnd->Printf(WSTR("Usage : hcc command_histroy_count\n")); return 1; } pConWnd->m_CmdHistroy.Resize(Count); return 0; } int CWispConsoleWnd::HC(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { if(argc==1) { pConWnd->Printf(WSTR("Usage : hc sz_command_line\n")); return 1; } pConWnd->m_CmdHistroy.Push(pConWnd->m_Prefix+&szCommandLine[argv[1]-argv[0]]); return 0; } int CWispConsoleWnd::Bat(int argc,WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine,CWispConsoleWnd*pConWnd) { bool bSilence,bBreak; WISP_PCSTR pszFileName; WCHAR szCmd[MAX_CHARS_PER_LINE+1]; char FileName[MAX_FN_LEN]; CTXTFile TextFile; int Result; if(argc<2) goto ShowUsage; bSilence = false; bBreak = false; if(argv[1][0]=='-') { bSilence = TStrIChr(argv[1],WCHAR('s'))!=NULL; bBreak = TStrIChr(argv[1],WCHAR('b'))!=NULL; if(argc<3) goto ShowUsage; pszFileName = &szCommandLine[argv[2]-argv[0]]; } else pszFileName = &szCommandLine[argv[1]-argv[0]]; UnicodeToAnsi(pszFileName,FileName,MAX_FN_LEN); if(TextFile.Open(FileName)==false) { if(bSilence==false) pConWnd->Printf(WSTR("%<3>Error : %Fail to open file %%s %<1>!\n"),argv[1]); return 1; } pConWnd->BatBeginNodify(szCommandLine); Result = 0; for(TTXTStrList::IT LineIter = TextFile.m_StrList.Begin();LineIter!=TextFile.m_StrList.End();LineIter++) { AnsiToUnicode(*LineIter,szCmd,sizeof(szCmd)/sizeof(WCHAR)); Result = 1; pConWnd->BatRunNodify(szCmd); if(pConWnd->RunCmd(szCmd,&Result)==false && bBreak) break; if(bBreak && Result!=0) break; } TextFile.Close(); pConWnd->BatEndNodify(szCommandLine); return Result; ShowUsage: pConWnd->Printf(WSTR("Usage:%bat [-s|b] %<1>bat_file_name \n")); pConWnd->Printf(WSTR("s : silence mode\n")); pConWnd->Printf(WSTR("b : break if command fail\n")); return 1; } void show_env_value(PCWSTR szName,STOptVal::TYPE Type,void*pValue,CWispConsoleWnd*pTermWnd) { switch(Type) { case STOptVal::INT_VAL: pTermWnd->Printf(WSTR("%%-12s %<1>= %<4>%d %<1>(dec)\n"),szName,*(int*)pValue); break; case STOptVal::UINT_VAL: pTermWnd->Printf(WSTR("%%-12s %<1>= %<4>%u %<1>(dec)\n"),szName,*(UINT*)pValue); break; case STOptVal::FLOAT_VAL: break; case STOptVal::STR_VAL: pTermWnd->Printf(WSTR("%%-12s %<1>= %\"%s\"%<1>\n"),szName,(PCWSTR)pValue); break; case STOptVal::NULL_VAL: pTermWnd->Printf(WSTR("Error : Invalid value name !\n")); break; } } int CWispConsoleWnd::Set(int argc,WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine,CWispConsoleWnd*pConWnd) { CWispConsoleWnd*pOrgConWnd = pConWnd; CONSOLE_TERMINAL(pConWnd); STOptVal::TYPE Type; int Length; bool Result; void*pValue; if(argc==1) { for(COptValMap::IT Iter = pOrgConWnd->m_Option.m_OptValMap.Begin();Iter!=pOrgConWnd->m_Option.m_OptValMap.End();Iter++) { show_env_value(Iter.Key(),Iter->Type,Iter->pValue,pConWnd); } return 1; } if(argc==2) { Type = pOrgConWnd->m_Option.GetValue(argv[1],&pValue,&Length); show_env_value(argv[1],Type,pValue,pConWnd); return 1; } Type = pOrgConWnd->m_Option.GetValue(argv[1],&pValue,&Length); switch(Type) { case STOptVal::INT_VAL: Result = SDecStrToNum(argv[2],(int*)pValue); break; case STOptVal::UINT_VAL: Result = USDecStrToNum(argv[2],(int*)pValue); break; case STOptVal::FLOAT_VAL: break; case STOptVal::STR_VAL: TStrCpyLimit((PWSTR)pValue,argv[2],Length); Result = true; break; case STOptVal::NULL_VAL: pConWnd->Printf(WSTR("Error : Invalid value name!\n")); return 1; } if(Result==false) { pConWnd->Printf(WSTR("Error : Invalid value!\n")); return 1; } return 0; } int CWispConsoleWnd::DoNothing(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { return 0; } int CWispConsoleWnd::Print(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { CONSOLE_TERMINAL(pConWnd); pConWnd->Printf(&szCommandLine[TStrLen(argv[0])+1]); pConWnd->Output(WISP_STR("\n")); return 0; } int CWispConsoleWnd::WispVer(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { WISP_CHAR szData[64],szTime[64]; CONSOLE_TERMINAL(pConWnd); pConWnd->Printf(WISP_STR("Wisp GUI System\n")); TStrCpy(szData,__DATE__); TStrCpy(szTime,__TIME__); pConWnd->Printf(WISP_STR("Build Time : %s %s\n"),szData,szTime); return 0; } int CWispConsoleWnd::Help(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd) { WCHAR szPatten[MAX_LONG_NAME_LEN]; *szPatten = 0; CWispConsoleWnd*pConsoleWnd = pConWnd; CONSOLE_TERMINAL(pConWnd); if(argc>1) { TStrCpy(szPatten,argv[1]); TStrLwr(szPatten); if(TStrChr(szPatten,'*')==NULL && TStrChr(szPatten,'?')==NULL) { CCmdMap::IT CmdIter = pConsoleWnd->m_CmdMap.Find(szPatten); if(CmdIter.IsExist()) { if(CmdIter->pUsage) pConWnd->Printf(CmdIter->pUsage); else if(CmdIter->pComment) pConWnd->Printf(WSTR("%s %s\n"),(WCHAR*)CmdIter.Key(),CmdIter->pComment); return 0; } else { pConWnd->Printf(WSTR("Invalid Command\n")); } return 0; } } else TStrCpy(szPatten,"*"); for(CCmdMap::IT Iter = pConsoleWnd->m_CmdMap.Begin();Iter!=pConsoleWnd->m_CmdMap.End();Iter++) { if(TMultiMatchWithPattern(szPatten,(WCHAR*)Iter.Key()) && Iter->pComment) { pConWnd->Printf(WSTR("%%-12s %%s\n"),(WCHAR*)Iter.Key(),Iter->pComment); } } return 0; } void CWispTerminalWnd::Printf(IN const WCHAR*szLine,...) { va_list Next; va_start(Next,szLine); VPrintf(szLine,Next); va_end(Next); } #define WISP_PUTONE(c) {Output(c);Length++;} int CWispTerminalWnd::VPrintf(const WISP_CHAR*format,void*ParamList) { int Length; // Limit at entry point bool bMore; // Loop control int Width; // Optional width int Precision; // Optional precision WISP_CHAR *str; // String WISP_CHAR strbuf[36]; // Constructed string int len; // Length of string int nLeadingZeros; // Number of leading zeros required int nPad; // Number of pad characters required WISP_CHAR *sPrefix; // Prefix string ULONG val; // Value of current number bool bLeftJustify; // Justification bool bPlusSign; // Show plus sign? bool bBlankSign; // Blank for positives? bool bZeroPrefix; // Want 0x for hex, 0 for octal? bool bIsShort; // TRUE if short bool bIsLong; // TRUE if long WISP_CHAR cPad; WISP_CHAR* savestr; bool bIsLonglong; // TRUE if LONGLONG ULONGLONG val64; va_list Next; Next = (va_list)ParamList; Length=0; static WISP_CHAR strPlus[]={'+',0}; static WISP_CHAR strSub[]={'-',0}; static WISP_CHAR str0x[]={'0','x',0}; static WISP_CHAR str0X[]={'0','X',0}; static WISP_CHAR strNULL[]={0}; static WISP_CHAR strSpace[]={' ',0}; static WISP_CHAR strZero[]={'0',0}; static WISP_CHAR strError[]={'<','E','r','r','o','r','>',0}; SaveFontColor(); while(*format != '\0') { // Everything but '%' is copied to buffer if (*format != '%') WISP_PUTONE(*format++) // '%' gets special handling here else { // Set default flags, etc Width = 0; Precision = -1; bLeftJustify = FALSE; bPlusSign = FALSE; bBlankSign = FALSE; bZeroPrefix = FALSE; bIsShort = FALSE; bIsLong = FALSE; bIsLonglong = FALSE; cPad = ' '; sPrefix = strNULL; format++; bMore = TRUE; while (bMore) { // optional flags switch (*format) { case '-': bLeftJustify = TRUE; format++; break; case '+': bPlusSign = TRUE; format++; break; case '0': cPad = '0'; format++; break; case ' ': bBlankSign = TRUE; format++; break; case '#': bZeroPrefix = TRUE; format++; break; default: bMore = FALSE; } } // optional width if (*format == '*') { Width = (int) va_arg(Next, int); format++; } else if (IS_DIGIT(*format)) { while (IS_DIGIT(*format)) { Width *= 10; Width += (*format++) - '0'; } } // optional precision if (*format == '.') { format++; Precision = 0; if (*format == '*') { Precision = (int) va_arg(Next, int); format++; } else while (IS_DIGIT(*format)) { Precision *= 10; Precision += (*format++) - '0'; } } // optional size'o' switch (*format) { case 'h': bIsShort = TRUE; format++; break; case 'l': bIsLong = TRUE; format++; break; case 'I': if ( (format[1]=='6') && (format[2]=='4') ) { format += 3; bIsLonglong = TRUE; } break; } // All controls are completed, dispatch on the conversion character switch (*format++) { case 'd': case 'i': if (bIsLonglong) NumToStr( (LONGLONG) va_arg (Next, LONGLONG), strbuf, 10); else if (bIsLong) // Signed long int NumToStr( (long) va_arg(Next, long), strbuf, 10); else // Signed int NumToStr( (int) va_arg(Next, int), strbuf, 10); if (strbuf[0] == '-') sPrefix = strSub; else { if (bPlusSign) sPrefix = strPlus; else if (bBlankSign) sPrefix = strSpace; } goto EmitNumber; case 'u': if (bIsLonglong) uNumToStr( (ULONGLONG) va_arg(Next, ULONGLONG), strbuf, 10); else if (bIsLong) // Unsigned long int uNumToStr( (long) va_arg(Next, long), strbuf, 10); else // Unsigned int uNumToStr( (long) (int) va_arg(Next, int), strbuf, 10); goto EmitNumber; // set sPrefix for these... case 'o': if (bIsLonglong) uNumToStr( (ULONGLONG) va_arg(Next, ULONGLONG), strbuf, 10); else { if (bZeroPrefix) sPrefix = strZero; if (bIsLong) val = (long) va_arg(Next, long); else val = (int) va_arg(Next, int); uNumToStr(val, strbuf, 8); if (val == 0) sPrefix = strNULL; } goto EmitNumber; case 'p': // pointer case 'x': if (bZeroPrefix) sPrefix = str0x; if (bIsLonglong) { val64 = (ULONGLONG) va_arg(Next, ULONGLONG); uNumToStr( val64, strbuf, 16); if (val64 == 0) sPrefix = strNULL; } else { if (bIsLong) val = (ULONG) va_arg(Next, long); else val = (unsigned int) va_arg(Next, int); uNumToStr(val, strbuf, 16); if (val == 0) sPrefix = strNULL; } goto EmitNumber; case 'X': if (bZeroPrefix) sPrefix = str0X; if (bIsLonglong) { val64 = (ULONGLONG) va_arg(Next, ULONGLONG); uNumToStr( val64, strbuf, 16); if (val64 == 0) sPrefix = strNULL; } else { if (bIsLong) val = (ULONG) va_arg(Next, long); else val = (unsigned int) va_arg(Next, int); uNumToStr(val, strbuf, 16); if (val == 0) sPrefix = strNULL; } TStrUpr(strbuf); goto EmitNumber; case 'c': strbuf[0] = (WISP_CHAR) va_arg(Next, WISP_CHAR); str = strbuf; len = 1; goto EmitString; case 's': str = (WISP_CHAR *) va_arg(Next, WISP_CHAR*); len = TStrLen(str); if (Precision != -1 && Precision < len) len = Precision; goto EmitString; case 'n': break; case '%': strbuf[0] = '%'; str = strbuf; len = 1; goto EmitString; break; case 'f': case 'e': case 'E': case 'g': case 'G': case 'U': str = strError;//""; len = TStrLen(str); goto EmitString; case '<': { int Length; WISP_CHAR ColorNum[3],*pStr; BYTE ColorIndex; pStr = TStrChr(format,(WISP_CHAR)'>'); if(pStr) { Length = (int)(pStr - format); if(Length==1 || Length==2) { TStrCpyLimit(ColorNum,format,Length+1); format+=Length+1; if(USHexStrToNum(ColorNum,&ColorIndex)) { Output((WISP_CHAR)0); SetFontColor(ColorIndex); } else pStr = NULL; } else pStr = NULL; } if(pStr == NULL) { str = strError; len = TStrLen(str); goto EmitString; } strbuf[0] = 0; str = strbuf; len = 0; Precision = 0; } break; default: str = strError;//""; len = TStrLen(str); goto EmitString; } EmitNumber: if (Precision == -1) Precision = 1; str = strbuf; if (*str == '-') str++; // if negative, already have prefix len = TStrLen(str); nLeadingZeros = Precision - len; if (nLeadingZeros < 0) nLeadingZeros = 0; nPad = Width - (len + nLeadingZeros + TStrLen(sPrefix)); if (nPad < 0) nPad = 0; // If 0-padding, emit prefix first. // if ' ' padding, emit padding first if (cPad == '0') { while (*sPrefix != '\0') WISP_PUTONE(*sPrefix++); } if (nPad && !bLeftJustify) { // Left padding required while (nPad--) { WISP_PUTONE(cPad); } nPad = 0; // Indicate padding completed } // Put prefix now if not used up earlier (i.e. if blank padding) while (*sPrefix != '\0') WISP_PUTONE(*sPrefix++); while (nLeadingZeros-- > 0) WISP_PUTONE('0'); while (len-- > 0) { WISP_PUTONE(*str++); } if (nPad) { // Right padding required while (nPad--) WISP_PUTONE(' '); } goto Done; EmitString: // Here we have the string ready to emit. Handle padding, etc. if (Width > len) nPad = Width - len; else nPad = 0; if (nPad && !bLeftJustify) { // Left padding required while (nPad--) WISP_PUTONE(cPad); } savestr = str; while (len-- > 0) WISP_PUTONE(*str++); if (nPad && bLeftJustify) { // Right padding required while (nPad--) WISP_PUTONE(' '); } Done: ; } } Output((WISP_CHAR)'\0'); RestoreFontColor(); CWispTerminalWnd*pCmdWnd; if(m_CtrlType == WISP_CTRL_CONSOLE_WND && ((CWispConsoleWnd*)this)->m_pTerminalWnd) pCmdWnd = ((CWispConsoleWnd*)this)->m_pTerminalWnd; else pCmdWnd = this; pCmdWnd->m_CaretPos.y=pCmdWnd->m_LineList.Count(); if(pCmdWnd->m_nLinesPerPage>0) { pCmdWnd->m_ScrPos.y=pCmdWnd->m_LineList.Count()-pCmdWnd->m_nLinesPerPage+1; MIN_LIMIT(pCmdWnd->m_ScrPos.y,0); pCmdWnd->SetScrollBarCurPos(WISP_SB_VERT,pCmdWnd->m_ScrPos.y); } m_bSelect=false; pCmdWnd->UpdateCaretState(); pCmdWnd->RecalcLayout(); pCmdWnd->Update(); return Length; // Don't count terminating NULL } ================================================ FILE: Project/Wisp/Source/WispConsoleWnd.h ================================================ #ifndef _WISP_CONSOLE_WND_H_ #define _WISP_CONSOLE_WND_H_ #include "WispColorStrWnd.h" #define WISP_SSTREAM_UNIX 0x00000000 #define WISP_SSTREAM_DOS 0x00000001 #define WISP_SSTREAM_DISPLAY 0x00000002 #define CONSOLE_TERMINAL(pConWnd) if(pConWnd->m_pTerminalWnd) \ pConWnd = (CWispConsoleWnd*) pConWnd->m_pTerminalWnd; struct WISP_CMD_ENTRY { WISP_CHAR* CmdStr; WISP_CHAR* CmdCmt; void* CmdProc; }; class CWispConsoleWnd; class CWispTerminalWnd : public CWispColorStrWnd { public: CWispTerminalWnd(); virtual ~CWispTerminalWnd(); public: bool SaveHistroys(PCSTR FileName); void SetHistoryLines(IN int nLine); void ClearScreen(); void Output(IN const WISP_CHAR*szLine); void Output(IN const WISP_COLOR_CHAR*szLine); void Output(WISP_CHAR ch); int VPrintf(const WISP_CHAR*format,void*ParamList); void Printf(IN const WISP_CHAR*szLine,...); void AttachConsole(CWispConsoleWnd*pConsoleWnd); void SetFontColor(BYTE ColorIndex); void SaveFontColor(); void RestoreFontColor(); void EnsureInputVisible(); void EnsureInputCaretVisible(); bool RunModulePathBat(PCSTR FileName,PCSTR szCmdArg,int*pResult=NULL); bool TermRunCmd(const CMD_CHAR*szCmd,int*pResult = NULL); virtual bool RunCmdNotify(const CMD_CHAR*szCmd){return true;} virtual void AfterRunCmdNotify(const CMD_CHAR*szCmd){}; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnChar); DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG_CMD_MAP; DECLARE_WISP_MSG_CMD(OnCmdGetCmd); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG(OnEventPaste); public: virtual BYTE GetLineStr(IN int LineIndex,OUT WISP_COLOR_CHAR*pColorStr); public: CWispConsoleWnd*m_pConsoleWnd; TQueuem_LineList; TStackm_CmdHistroy; CWispString m_CmdStr; CWispString m_InputStr; CWispString m_Prefix; CWispString m_OutPutStr; UINT m_StreamStyle; int m_CurHisIndex; BYTE m_TextColor; BYTE m_OldTextColor; bool m_bNewLine; int m_MaxCharLine; ALTFileStream*m_pStream; }; class CWispConsoleWnd : public CWispTerminalWnd,public CCmdParser { public: CWispConsoleWnd(); static int Cls(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int WispVer(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int HL(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int HCC(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int HC(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int Color(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int BKColor(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int Help(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int Bat(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int Set(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int DoNothing(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); static int Print(int argc, WISP_CHAR *argv[ ],WISP_PCSTR szCommandLine, CWispConsoleWnd*pConWnd); void DisplayColor(); public: COptionValue m_Option; CWispTerminalWnd*m_pTerminalWnd; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); virtual void BatBeginNodify(WISP_PCSTR szCmd){} virtual void BatRunNodify(WISP_PCSTR szCmd){} virtual void BatEndNodify(WISP_PCSTR szCmd){} public: virtual void PrintString(CMD_CHAR* pString){ Printf(pString);}; }; #endif ================================================ FILE: Project/Wisp/Source/WispDC.cpp ================================================ #include "StdAfx.h" #include "WispDC.h" #include "WispWnd.h" CWispDC::CWispDC() { m_pWispWnd = NULL; m_pRect = NULL; m_pClipRect = NULL; m_TabAlign = 4; m_ColorTable = NULL; } CWispDC::CWispDC(CWispDIB*pDIB) { AttachDIB(pDIB); m_pClipRect = NULL; } CWispDC::CWispDC(WISP_FRAME_BUFFER*pFrameBuffer,WISP_RECT*pRect) { AttachFrameBuffer(pFrameBuffer,pRect); m_pClipRect = NULL; } void CWispDC::InitParam() { m_pWispBase = gpCurWisp; m_TextStyle=WISP_TEXT_TRANS; m_TextColor=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BLACK]; m_TextShadowColor = m_pWispBase->m_pCurDrawObj->m_crSystem[SC_SHADOW_LIGHT]; m_TextBKColor=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_WHITE]; m_pFont=&m_pWispBase->m_FontList[m_pWispBase->m_DefaultFontType]; if(m_pWispWnd && m_pWispWnd->m_ParentWnd && m_pWispWnd->m_ParentWnd->m_CtrlType == WISP_CTRL_FORM) m_pFont=&m_pWispBase->m_FontList[WISP_FONT_6X12]; } bool CWispDC::AttachDIB(CWispDIB*pDIB) { m_pWispWnd = NULL; m_pWispBase = gpCurWisp; m_pFrameBuffer = &pDIB->m_FrameBuffer; m_pRect = &pDIB->m_Rect; InitParam(); return true; } bool CWispDC::AttachFrameBuffer(WISP_FRAME_BUFFER*pFrameBuffer,WISP_RECT*pRect) { m_pWispWnd = NULL; m_pWispBase = gpCurWisp; m_pFrameBuffer = pFrameBuffer; m_pRect = pRect; InitParam(); return true; } void CWispDC::SetTextType(UINT Type) { m_pFont=&m_pWispBase->m_FontList[Type]; } bool CWispDC::AttachWnd(IN CWispBaseWnd*pWispWnd,IN WISP_RECT*pRect) { m_pWispBase = pWispWnd->m_pWispBase; m_pWispWnd=pWispWnd; m_pRect=pRect; m_pFrameBuffer = &m_pWispBase->m_FrameBuffer; InitParam(); return true; } void CWispDC::Detach() { } int CWispDC::DrawString(IN int x,IN int y,IN const WISP_CHAR*string,IN int Len,int Index,int Flags) { WISP_RECT rc; COLORREF*pBKColor; rc.x=x+m_pRect->x; rc.y=y+m_pRect->y; rc.cx= GetTextExtent(string,Len); rc.cy = m_pFont->m_Height; if(ClipDCRect(&rc)==false) return 0; if(m_TextStyle & WISP_TEXT_OPAQUE) pBKColor=&m_TextBKColor; else pBKColor=NULL; return DrawString(m_pFont,x+m_pRect->x,y+m_pRect->y,string,m_TextColor,&rc,pBKColor,Len,Index,Flags); } int CWispDC::DrawRightString(IN int x,IN int y,IN const WISP_CHAR*string,IN int Len,int Index) { WISP_RECT rc; COLORREF*pBKColor; if(Len == -1) Len = TStrLen(string); rc.x=x+m_pRect->x; rc.y=y+m_pRect->y; rc.cx= m_pRect->cx; rc.cy = m_pFont->m_Height; if(ClipDCRect(&rc)==false) return 0; if(m_TextStyle & WISP_TEXT_OPAQUE) pBKColor=&m_TextBKColor; else pBKColor=NULL; return 0; } int CWispDC::DrawShadowString(IN int x,IN int y,IN const WISP_CHAR*string,IN int Deep,IN int Len,int Index) { COLORREF TextColor; TextColor=m_TextColor; m_TextColor=m_TextShadowColor; DrawString(x+Deep,y+Deep,string,Len); m_TextColor=TextColor; return DrawString(x,y,string,Len,Index); } int CWispDC::DrawShadowString(IN WISP_RECT*pRect,IN const WISP_CHAR*string,IN int Deep,IN int Len,int Index) { int x,y; COLORREF TextColor; WISP_RECT ClipRect; ClipRect.x=pRect->x+m_pRect->x; ClipRect.y=pRect->y+m_pRect->y; ClipRect.cx = pRect->cx; ClipRect.cy = pRect->cy; if(ClipDCRect(&ClipRect)==false) return 0; TextColor=m_TextColor; m_TextColor=m_TextShadowColor; y = CENTER_ALGN(m_pFont->m_Height,pRect->cy)+pRect->y+m_pRect->y; x = m_pRect->x + pRect->x; DrawString(m_pFont,x+Deep,y+Deep,string,m_TextColor,&ClipRect,NULL,Len,Index); m_TextColor=TextColor; return DrawString(m_pFont,x,y,string,m_TextColor,&ClipRect,NULL,Len,Index); } int CWispDC::DrawString(IN WISP_RECT*pRect,IN const WISP_CHAR*string,IN int Len,int Index) { int x,y; WISP_RECT ClipRect; ClipRect.x=pRect->x+m_pRect->x; ClipRect.y=pRect->y+m_pRect->y; ClipRect.cx = pRect->cx; ClipRect.cy = pRect->cy; if(ClipDCRect(&ClipRect)==false) return 0; y = CENTER_ALGN(m_pFont->m_Height,pRect->cy)+pRect->y+m_pRect->y; x = m_pRect->x + pRect->x;; return DrawString(m_pFont,x,y,string,m_TextColor,&ClipRect,NULL,Len,Index); } int CWispDC::DrawColorString(IN int x,IN int y,IN const WISP_COLOR_CHAR*string,IN int Len,int Index) { WISP_RECT rc; rc.x=x+m_pRect->x; rc.y=y+m_pRect->y; rc.cx= m_pRect->cx+(m_pRect->x-x); rc.cy = m_pFont->m_Height; if(ClipDCRect(&rc)==false) return 0; return DrawColorString(m_pFont,x+m_pRect->x,y+m_pRect->y,string,&rc,Len,Index); } int CWispDC::DrawColorString(IN WISP_RECT*pRect,IN const WISP_COLOR_CHAR*string,IN int Len,int Index) { int x,y; WISP_RECT ClipRect; ClipRect.x=pRect->x+m_pRect->x; ClipRect.y=pRect->y+m_pRect->y; ClipRect.cx = pRect->cx; ClipRect.cy = pRect->cy; if(ClipDCRect(&ClipRect)==false) return 0; y = CENTER_ALGN(m_pFont->m_Height,pRect->cy)+pRect->y+m_pRect->y; x = m_pRect->x + pRect->x;; return DrawColorString(m_pFont,x,y,string,&ClipRect,Len,Index); } int CWispDC::DrawColorString(IN CWispFont*pLogFont,IN int x,IN int y,IN const WISP_COLOR_CHAR*pStr,IN WISP_RECT*pClipRect,IN int Length,IN int Index) { BYTE*pFont; int Width,n,i,j,BitOffset,OrgX; WISP_CHAR szText[MAX_TAB_ALIGN]; COLORREF TXTClr,BKClr; if(m_ColorTable == NULL) m_ColorTable = m_pWispBase->m_pCurDrawObj->m_crSystem; OrgX = x; while(Length && *pStr) { switch((WISP_CHAR)*pStr) { case WISP_STR('\n'): return x - OrgX; case WISP_STR('\t'): n = m_TabAlign - Index % m_TabAlign; szText[n]=0; do { n--; szText[n]=WISP_STR(' '); }while(n>0); break; default: szText[0]=(WISP_CHAR)*pStr; szText[1]=0; break; } TXTClr = LOW_BYTE(HIGH_WORD(*pStr)); BKClr = HIGH_BYTE(HIGH_WORD(*pStr)); for(n=0;szText[n];n++) { pFont=pLogFont->GetCharPixelBuffer(szText[n]); Width=pLogFont->GetCharWidth(szText[n]); BitOffset=0; if(x+Width>=pClipRect->x && xx+pClipRect->cx) { for(j=0;jm_Height;j++) { for(i=0;i>(BitOffset%8)) & 1) { if(PtInRect(pClipRect,x+i,y+j)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x+i,y+j,m_ColorTable[TXTClr]); } else if(BKClr) { if(PtInRect(pClipRect,x+i,y+j)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x+i,y+j,m_ColorTable[BKClr]); } BitOffset++; } } } x+=Width; Index++; } pStr++; Length--; } return x - OrgX; } void CWispDC::DrawPixel(IN int x, IN int y, IN COLORREF color) { WISP_POINT pt; pt.x=x+m_pRect->x; pt.y=y+m_pRect->y; if(ClipDCPoint(&pt)==false) return; m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x,y,color); } void CWispDC::DrawCircle(IN int x,IN int y,IN int radius,IN COLORREF color) { WISP_RECT rc; int dx,dy,p; rc = *m_pRect; dx = 0; dy = radius; p = 1 - radius; x += m_pRect->x; y += m_pRect->y; ClipDCRect(&rc); CirclePlotPoints(x,y,dx,dy,color,&rc); while(dxx; y += m_pRect->y; ClipDCRect(&rc); while(dxx; y += m_pRect->y; ClipDCRect(&rc); while(dxx; y += m_pRect->y; ClipDCRect(&rc); while(dxx; y += m_pRect->y; ClipDCRect(&rc); while(dxx; x2+=m_pRect->x; y1+=m_pRect->y; y2+=m_pRect->y; if(ClipDCLine(&x1,&y1,&x2,&y2)==false) return; xDelta=ABS(x2-x1); yDelta=ABS(y2-y1); if(xDeltay2) { SWAP(y1,y2); SWAP(x1,x2); } x=x1; if(x1=yDelta) { Count-=yDelta; x+=Delta; } Count+=xDelta; m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x,y,color); } } else { if(x1>x2) { SWAP(x1,x2); SWAP(y1,y2); } y=y1; if(y1=xDelta) { Count-=xDelta; y+=Delta; } Count+=yDelta; m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x,y,color); } } } void CWispDC::DrawVLine(IN int x,IN int y1,IN int y2,IN COLORREF color) { x+=m_pRect->x; y1+=m_pRect->y; y2+=m_pRect->y; if(ClipDCLine(&x,&y1,&x,&y2)==false) return; if(y2pDrawHAL->DrawPixel(m_pFrameBuffer,x,y,color); } void CWispDC::DrawHLine(IN int x1,IN int x2,IN int y,IN COLORREF color) { x1+=m_pRect->x; x2+=m_pRect->x; y+=m_pRect->y; if(ClipDCLine(&x1,&y,&x2,&y)==false) return; if(x2pDrawHAL->SetHLinePixel(m_pFrameBuffer,x1,y,x2-x1+1,color); } void CWispDC::DrawVDashLine(IN int x,IN int y1,IN int y2,IN COLORREF color) { x+=m_pRect->x; y1+=m_pRect->y; y2+=m_pRect->y; if(ClipDCLine(&x,&y1,&x,&y2)==false) return; int n = y1; while(n<=y2) { m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x, n, color); n+=2; } } void CWispDC::DrawHDashLine(IN int x1,IN int x2,IN int y,IN COLORREF color) { x1+=m_pRect->x; x2+=m_pRect->x; y+=m_pRect->y; if(ClipDCLine(&x1,&y,&x2,&y)==false) return; int n = x1; while(n<=x2) { m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,n, y, color); n+=2; } } void CWispDC::DrawRect(IN WISP_RECT*pRc,IN COLORREF color) { DrawVLine(pRc->x, pRc->y, pRc->y+pRc->cy-1, color); DrawVLine(pRc->x+pRc->cx-1, pRc->y, pRc->y+pRc->cy-1, color); DrawHLine(pRc->x, pRc->x+pRc->cx-1, pRc->y, color); DrawHLine(pRc->x, pRc->x+pRc->cx-1, pRc->y+pRc->cy-1, color); } void CWispDC::DrawRect(IN int x,IN int y,IN int cx,IN int cy,IN COLORREF color) { DrawVLine(x, y, y+cy-1, color); DrawVLine(x+cx-1, y, y+cy-1, color); DrawHLine(x, x+cx-1, y, color); DrawHLine(x, x+cx-1, y+cy-1, color); } void CWispDC::DrawRoundRect(IN WISP_RECT*pRc,IN COLORREF color) { DrawVLine(pRc->x, pRc->y+1, pRc->y+pRc->cy-2, color); DrawVLine(pRc->x+pRc->cx-1, pRc->y+1, pRc->y+pRc->cy-2, color); DrawHLine(pRc->x+1, pRc->x+pRc->cx-2, pRc->y, color); DrawHLine(pRc->x+1, pRc->x+pRc->cx-2, pRc->y+pRc->cy-1, color); } void CWispDC::Draw3DRect(IN WISP_RECT *pRc,IN COLORREF crTopLeft, COLORREF crBottomRight) { DrawVLine(pRc->x, pRc->y, pRc->y+pRc->cy-1, crTopLeft); DrawVLine(pRc->x+pRc->cx-1, pRc->y, pRc->y+pRc->cy-1, crBottomRight); DrawHLine(pRc->x, pRc->x+pRc->cx-1, pRc->y, crTopLeft); DrawHLine(pRc->x, pRc->x+pRc->cx-1, pRc->y+pRc->cy-1, crBottomRight); } void CWispDC::Draw3DRect(IN WISP_RECT*pRc,IN bool bRaised,IN int Deep) { COLORREF ColTop,ColBottom; int Sign,Inc; if(bRaised) { ColTop=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BRIGHT]; ColBottom=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_SHADOW]; } else { ColTop=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_SHADOW]; ColBottom=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BRIGHT]; } if(Deep<0) { Deep=-Deep; Sign=-1; } else { Sign=1; } for(int n=0;nx+Inc,pRc->x+pRc->cx-1-Inc,pRc->y+Inc,ColTop); DrawVLine(pRc->x+Inc,pRc->y+Inc,pRc->y+pRc->cy-1-Inc,ColTop); DrawHLine(pRc->x+Inc,pRc->x+pRc->cx-1-Inc,pRc->y+pRc->cy-1-Inc,ColBottom); DrawVLine(pRc->x+pRc->cx-1-Inc,pRc->y+Inc,pRc->y+pRc->cy-1-Inc,ColBottom); } } void CWispDC::DrawDashRect(IN WISP_RECT*pRc,IN COLORREF color) { DrawVDashLine(pRc->x, pRc->y, pRc->y+pRc->cy-1, color); DrawVDashLine(pRc->x+pRc->cx-1, pRc->y, pRc->y+pRc->cy-1, color); DrawHDashLine(pRc->x, pRc->x+pRc->cx-1, pRc->y, color); DrawHDashLine(pRc->x, pRc->x+pRc->cx-1, pRc->y+pRc->cy-1, color); } void CWispDC::DrawFullRect(IN WISP_RECT*pRc,IN COLORREF color) { WISP_RECT rc; rc=*pRc; rc.x+=m_pRect->x; rc.y+=m_pRect->y; if(ClipDCRect(&rc)==false) return; for(int y=rc.y;ypDrawHAL->SetHLinePixel(m_pFrameBuffer,rc.x,y,rc.cx,color); } } void CWispDC::DrawFullRect(IN int x,IN int y,IN int cx,IN int cy,IN COLORREF color) { WISP_RECT rc; rc.x = x + m_pRect->x; rc.y = y + m_pRect->y; rc.cx = cx; rc.cy = cy; if(ClipDCRect(&rc)==false) return; for(int y=rc.y;ypDrawHAL->SetHLinePixel(m_pFrameBuffer,rc.x,y,rc.cx,color); } } void CWispDC::DrawMiddleXGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg) { COLORREF Clr; WISP_RECT rc = *pRc; rc.cx /= 2; Clr = DrawXGrayChgFullRect(&rc,color,nChg); rc.x+=rc.cx; rc.cx = pRc->x + pRc->cx - rc.x; DrawXGrayChgFullRect(&rc,Clr,-nChg); } void CWispDC::DrawMiddleXGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc) { WISP_RECT rc = *pRc; rc.cx /= 2; DrawXGrayChgFullRect(ColorBegin,ColorEnd,&rc); rc.x+=rc.cx; rc.cx = pRc->x + pRc->cx - rc.x; DrawXGrayChgFullRect(ColorEnd,ColorBegin,&rc); } COLORREF CWispDC::DrawXGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg) { COLORREF LastColor; WISP_RECT rc,frc; rc=*pRc; rc.x+=m_pRect->x; rc.y+=m_pRect->y; if(ClipDCRect(&rc)==false) return GRAY_CHG(color,nChg,pRc->cx); frc=*pRc; frc.x+=m_pRect->x; frc.y+=m_pRect->y; for(int x=frc.x;x=rc.x && xpDrawHAL->DrawPixel(m_pFrameBuffer,x,y,LastColor); } } } return LastColor; } void CWispDC::DrawXGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc) { COLORREF Color; WISP_RECT rc,frc; int r1,g1,b1,r,g,b,dr,dg,db; rc=*pRc; rc.x+=m_pRect->x; rc.y+=m_pRect->y; if(ClipDCRect(&rc)==false) return; r = WISP_RGB_R(ColorBegin); g = WISP_RGB_G(ColorBegin); b = WISP_RGB_B(ColorBegin); r1 = WISP_RGB_R(ColorEnd); g1 = WISP_RGB_G(ColorEnd); b1 = WISP_RGB_B(ColorEnd); dr = ((r1 - r)<<16)/pRc->cx; dg = ((g1 - g)<<16)/pRc->cx; db = ((b1 - b)<<16)/pRc->cx; r=r<<16;g=g<<16;b=b<<16; frc=*pRc; frc.x+=m_pRect->x; frc.y+=m_pRect->y; for(int x=frc.x;x>16,g>>16,b>>16); if(x>=rc.x && xpDrawHAL->DrawPixel(m_pFrameBuffer,x,y,Color); } } } } void CWispDC::DrawMiddleYGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg) { COLORREF Clr; WISP_RECT rc = *pRc; rc.cy /= 2; Clr = DrawYGrayChgFullRect(&rc,color,nChg); rc.y+=rc.cy; rc.cy = pRc->y + pRc->cy - rc.y; DrawYGrayChgFullRect(&rc,Clr,-nChg); } void CWispDC::DrawMiddleYGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc) { WISP_RECT rc = *pRc; rc.cy /= 2; DrawYGrayChgFullRect(ColorBegin,ColorEnd,&rc); rc.y+=rc.cy; rc.cy = pRc->y + pRc->cy - rc.y; DrawYGrayChgFullRect(ColorEnd,ColorBegin,&rc); } COLORREF CWispDC::DrawYGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg) { COLORREF LastColor; WISP_RECT rc,frc; rc=*pRc; rc.x+=m_pRect->x; rc.y+=m_pRect->y; if(ClipDCRect(&rc)==false) return GRAY_CHG(color,nChg,pRc->cy); frc=*pRc; frc.x+=m_pRect->x; frc.y+=m_pRect->y; for(int y=frc.y;y=rc.y && ypDrawHAL->SetHLinePixel(m_pFrameBuffer,rc.x,y,rc.cx,LastColor); } } return LastColor; } void CWispDC::DrawYGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc) { WISP_RECT rc,frc; int r1,g1,b1,r,g,b,dr,dg,db; rc=*pRc; rc.x+=m_pRect->x; rc.y+=m_pRect->y; if(ClipDCRect(&rc)==false) return; r = WISP_RGB_R(ColorBegin); g = WISP_RGB_G(ColorBegin); b = WISP_RGB_B(ColorBegin); r1 = WISP_RGB_R(ColorEnd); g1 = WISP_RGB_G(ColorEnd); b1 = WISP_RGB_B(ColorEnd); dr = ((r1 - r)<<16)/pRc->cy; dg = ((g1 - g)<<16)/pRc->cy; db = ((b1 - b)<<16)/pRc->cy; r=r<<16;g=g<<16;b=b<<16; frc=*pRc; frc.x+=m_pRect->x; frc.y+=m_pRect->y; for(int y=frc.y;y=rc.y && ypDrawHAL->SetHLinePixel(m_pFrameBuffer,rc.x,y,rc.cx,WISP_RGB(r>>16,g>>16,b>>16)); } } } void CWispDC::DrawFrameRect(IN int x,IN int y,IN int cx,IN int cy,IN bool bRaised,IN int Deep) { COLORREF ColTop,ColBottom; int Sign,Inc; if(bRaised) { ColTop=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BRIGHT]; ColBottom=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_SHADOW]; } else { ColTop=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_SHADOW]; ColBottom=m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BRIGHT]; } if(Deep<0) { Deep=-Deep; Sign=-1; } else { Sign=1; } for(int n=0;nx,pRc->y,pRc->cx,pRc->cy,bRaised,Deep); } void CWispDC::Clear(IN COLORREF color) { WISP_RECT rc; rc.x = rc.y = 0; rc.cx = m_pRect->cx; rc.cy = m_pRect->cy; DrawFullRect(&rc,color); } void CWispDC::DrawDIBTiled(IN CWispDIB*pDIB,IN WISP_RECT*pRect) { WISP_RECT DefRect; if(pRect==NULL) { DefRect.x=DefRect.y=0; DefRect.cx=m_pRect->cx; DefRect.cy=m_pRect->cy; pRect=&DefRect; } for(int x=pRect->x;xx+pRect->cx;x+=pDIB->m_FrameBuffer.Width) { for(int y=pRect->y;yy+pRect->cy;y+=pDIB->m_FrameBuffer.Height) { DrawDIB(x,y,pDIB); } } } void CWispDC::DrawDIB(IN int x,IN int y,IN CWispDIB*pDIB) { COLORREF*pPixel; WISP_RECT ClipRect; if(pDIB->m_FrameBuffer.Buffer==NULL) return; CODE_ASSERT(pDIB->m_FrameBuffer.Bpp==32); x-=pDIB->m_HotPT.x; y-=pDIB->m_HotPT.y; ClipRect.x=m_pRect->x+x; ClipRect.y=m_pRect->y+y; ClipRect.cx=pDIB->m_FrameBuffer.Width; ClipRect.cy=pDIB->m_FrameBuffer.Height; if(ClipDCRect(&ClipRect)==false) return; pPixel=(COLORREF*)RT_PBYTE(pDIB->m_FrameBuffer.Buffer,(ClipRect.y-m_pRect->y-y)*pDIB->m_FrameBuffer.LineDistance + (ClipRect.x-m_pRect->x-x)*sizeof(COLORREF) ); for(int ny=0;nym_Type) { case WISP_DIB_BITMAP: m_pFrameBuffer->pDrawHAL->Copy32BitPixelTo(RT_PBYTE(m_pFrameBuffer->Buffer,(ClipRect.y+ny)*m_pFrameBuffer->LineDistance+ClipRect.x*(m_pFrameBuffer->Bpp/8)),pPixel,ClipRect.cx); pPixel+=(pDIB->m_FrameBuffer.LineDistance/sizeof(COLORREF)); break; case WISP_DIB_TK: for(int nx=0;nxm_ColorKey) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,ClipRect.x+nx,ClipRect.y+ny,*pPixel); pPixel++; } pPixel+=(pDIB->m_FrameBuffer.LineDistance/sizeof(COLORREF))-ClipRect.cx; break; case WISP_DIB_TK_XOR: for(int nx=0;nxm_ColorKey) m_pFrameBuffer->pDrawHAL->DrawXorPixel(m_pFrameBuffer,ClipRect.x+nx,ClipRect.y+ny,*pPixel); pPixel++; } pPixel+=(pDIB->m_FrameBuffer.LineDistance/sizeof(COLORREF))-ClipRect.cx; break; } } } void CWispDC::DrawDIB(IN WISP_RECT*pRC,IN CWispDIB*pDIB) { int x,y; x = pRC->x+CENTER_ALGN(pDIB->Width(),pRC->cx); y = pRC->y+CENTER_ALGN(pDIB->Height(),pRC->cy); DrawDIB(x,y,pDIB); } void CWispDC::DrawGrayDIB(IN WISP_RECT*pRC,IN CWispDIB*pDIB) { int x,y; x = pRC->x+CENTER_ALGN(pDIB->Width(),pRC->cx); y = pRC->y+CENTER_ALGN(pDIB->Height(),pRC->cy); DrawGrayDIB(x,y,pDIB); } void CWispDC::DrawGrayDIB(IN int x,IN int y,IN CWispDIB*pDIB) { COLORREF*pPixel; WISP_RECT ClipRect; CODE_ASSERT(pDIB->m_FrameBuffer.Bpp==32); x-=pDIB->m_HotPT.x; y-=pDIB->m_HotPT.y; ClipRect.x=m_pRect->x+x; ClipRect.y=m_pRect->y+y; ClipRect.cx=pDIB->m_FrameBuffer.Width; ClipRect.cy=pDIB->m_FrameBuffer.Height; if(ClipDCRect(&ClipRect)==false) return; pPixel=(COLORREF*)RT_PBYTE(pDIB->m_FrameBuffer.Buffer,(ClipRect.y-m_pRect->y-y)*pDIB->m_FrameBuffer.LineDistance + (ClipRect.x-m_pRect->x-x)*sizeof(COLORREF) ); for(int ny=0;nym_Type) { case WISP_DIB_BITMAP: case WISP_DIB_TK: for(int nx=0;nxm_ColorKey) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,ClipRect.x+nx,ClipRect.y+ny,GRAY_DEEP(*pPixel)>GRAY_DEEP(0x00808080) ? SYS_COLOR[SC_UNNAMED_21] : SYS_COLOR[SC_CLIENT_BG] ); pPixel++; } pPixel+=(pDIB->m_FrameBuffer.LineDistance/sizeof(COLORREF))-ClipRect.cx; break; case WISP_DIB_TK_XOR: for(int nx=0;nxm_ColorKey) m_pFrameBuffer->pDrawHAL->DrawXorPixel(m_pFrameBuffer,ClipRect.x+nx,ClipRect.y+ny,*pPixel); pPixel++; } pPixel+=(pDIB->m_FrameBuffer.LineDistance/sizeof(COLORREF))-ClipRect.cx; break; } } } bool CWispDC::ClipDCRect(INOUT WISP_RECT*pRect) { CWispBaseWnd*pClipWnd,*pWnd; if(m_pClipRect && ClipRect(pRect,m_pClipRect)==false) return false; if(m_pWispWnd==NULL)//DIB DC return ClipRect(pRect,m_pRect); if(m_pWispWnd->m_pUpdateRect==NULL) return false; WISP_RECT UpdateRect = *m_pWispWnd->m_pUpdateRect; UpdateRect.x+=m_pWispWnd->m_ScrWindowRect.x; UpdateRect.y+=m_pWispWnd->m_ScrWindowRect.y; if(ClipRect(pRect,&UpdateRect)==false) return false; if(ClipRect(pRect,m_pRect)==false) return false; if(m_pWispWnd==(CWispBaseWnd*)m_pWispBase->m_pRootWnd) return true; pWnd=m_pWispWnd; pClipWnd=m_pWispWnd->m_ParentWnd; if(pClipWnd==NULL) pClipWnd = (CWispBaseWnd*)m_pWispBase->m_pRootWnd; while(pClipWnd) { if(pClipWnd->m_Style & WISP_WS_ADV_WND) { if(ClipRect(pRect,&((CWispWnd*)pClipWnd)->m_ScrClientRect)==false) return false; } else {// if(ClipRect(pRect,&pClipWnd->m_ScrWindowRect)==false) return false; } pWnd=pWnd->m_ParentWnd; if(pWnd==NULL) break; pClipWnd=pWnd->m_ParentWnd; } return true; } bool CWispDC::ClipDCLine(INOUT int*pX1,INOUT int*pY1,INOUT int*pX2,INOUT int*pY2) { CWispBaseWnd*pClipWnd,*pWnd; if(m_pClipRect && ClipLine(pX1,pY1,pX2,pY2,m_pClipRect)==false) return false; if(m_pWispWnd==NULL)//DIB DC return ClipLine(pX1,pY1,pX2,pY2,m_pRect); if(m_pWispWnd->m_pUpdateRect==NULL) return false; WISP_RECT UpdateRect = *m_pWispWnd->m_pUpdateRect; UpdateRect.x+=m_pWispWnd->m_ScrWindowRect.x; UpdateRect.y+=m_pWispWnd->m_ScrWindowRect.y; if(ClipLine(pX1,pY1,pX2,pY2,&UpdateRect)==false) return false; if(ClipLine(pX1,pY1,pX2,pY2,m_pRect)==false) return false; if(m_pWispWnd==(CWispBaseWnd*)m_pWispBase->m_pRootWnd) return true; pWnd=m_pWispWnd; pClipWnd=m_pWispWnd->m_ParentWnd; if(pClipWnd==NULL) pClipWnd = (CWispBaseWnd*)m_pWispBase->m_pRootWnd; while(pClipWnd) { if(pClipWnd->m_Style & WISP_WS_ADV_WND) { if(ClipLine(pX1,pY1,pX2,pY2,&((CWispWnd*)pClipWnd)->m_ScrClientRect)==false) return false; } else {// if(ClipLine(pX1,pY1,pX2,pY2,&pClipWnd->m_ScrWindowRect)==false) return false; } pWnd=pWnd->m_ParentWnd; if(pWnd==NULL) break; pClipWnd=pWnd->m_ParentWnd; } return true; } bool CWispDC::ClipDCPoint(IN WISP_POINT*pPT) { CWispBaseWnd*pClipWnd,*pWnd; if(m_pClipRect && PtInRect(m_pClipRect,pPT)==false) return false; if(m_pWispWnd==NULL)//DIB DC return PtInRect(m_pRect,pPT); if(m_pWispWnd->m_pUpdateRect==NULL) return false; WISP_RECT UpdateRect = *m_pWispWnd->m_pUpdateRect; UpdateRect.x+=m_pWispWnd->m_ScrWindowRect.x; UpdateRect.y+=m_pWispWnd->m_ScrWindowRect.y; if(PtInRect(&UpdateRect,pPT)==false) return false; if(PtInRect(m_pRect,pPT)==false) return false; if(m_pWispWnd==(CWispBaseWnd*)m_pWispBase->m_pRootWnd) return true; pWnd=m_pWispWnd; pClipWnd=m_pWispWnd->m_ParentWnd; if(pClipWnd==NULL) pClipWnd = (CWispBaseWnd*)m_pWispBase->m_pRootWnd; while(pClipWnd) { if(pClipWnd->m_Style & WISP_WS_ADV_WND) { if(PtInRect(&((CWispWnd*)pClipWnd)->m_ScrClientRect,pPT)==false) return false; } else {// if(PtInRect(&pClipWnd->m_ScrWindowRect,pPT)==false) return false; } pWnd=pWnd->m_ParentWnd; if(pWnd==NULL) break; pClipWnd=pWnd->m_ParentWnd; } return true; } int CWispDC::DrawSingleLineText(IN WISP_CHAR* lpString,IN int nCount,INOUT WISP_RECT* lpRect,IN UINT uFormat) { bool isClip = true; WISP_POINT beginDraw; int nRightSkipCharNum = 0; int nLeftSkipCharNum = 0; int nTopSkipLineNum = 0; int nBottomSkipLineNum = 0; int nMaxCharOfLine = 0;//ľ int nMaxLine = 0; int nRealLen; int nCenterPos = 0; int nStrBeginPos = 0; int LeftOffset = -1, RightOffset = -1; WISP_CHAR* lpTmpString = NULL; WISP_CHAR chTextOutbuf[1025]; int nRet = 0; nRealLen = (int)TStrLen(lpString); if(nCount == -1 || nCount > nRealLen) nCount = nRealLen; if(!nCount) return nCount; nCenterPos = lpRect->x + lpRect->cx / 2; if(uFormat & WISP_DT_NOCLIP)//ΪDzüĵ { isClip = false; if(uFormat & WISP_DT_RIGHT)//ǷDzüҶĻ x DC ߡ { lpRect->cx += lpRect->x; lpRect->x =0; } else { if(uFormat & WISP_DT_CENTER) { lpRect->x =0; lpRect->cx =m_pRect->cx; } else { if(lpRect->x + lpRect->cx < m_pRect->cx)////ǷDzüĻ cx DC ұߡ { lpRect->cx =m_pRect->cx - lpRect->x; } } } } if(uFormat & WISP_DT_SINGLELINE) { beginDraw.x = lpRect->x; beginDraw.y = lpRect->y; if(uFormat & WISP_DT_VCENTER)//ֱм롣 { beginDraw.y = lpRect->y + lpRect->cy / 2 - m_pFont->m_Height / 2; } else { if(uFormat & WISP_DT_BOTTOM)//ױ߶ { beginDraw.y = lpRect->y + lpRect->cy - m_pFont->m_Height; } } if(uFormat & WISP_DT_RIGHT)//Դ { beginDraw.x = lpRect->x + lpRect->cx; } else { if(uFormat & WISP_DT_CENTER)//ֳ3 һǸľĵ x DC ľεߡ // һǸľĵ x DC ľεұߡ // һǸľĵ x DC ľεķΧڡ { nStrBeginPos = (nRealLen - nCount) / 2; beginDraw.x = nCenterPos - nCount / 2 * m_pFont->m_Width; if(nCount % 2) { beginDraw.x = beginDraw.x - m_pFont->m_Width / 2; } }else { nStrBeginPos = 0; } } lpTmpString = chTextOutbuf; if(nRealLen - nStrBeginPos < nCount) { nCount = nRealLen - nStrBeginPos+1; } if(nCount >= 1025) nCount = 1023; TStrNCpy(lpTmpString, lpString+nStrBeginPos, nCount); lpTmpString[nCount] = 0; if(uFormat & WISP_DT_RIGHT) DrawRightString(beginDraw.x, beginDraw.y, lpTmpString,nCount); else DrawString(beginDraw.x, beginDraw.y, lpTmpString,nCount); } return nRet; } //չϵͳť void CWispDC::DrawSystemStandardIcon(const WISP_RECT&rcBoundary, UINT uStyle, COLORREF color) { m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(this, &rcBoundary, uStyle); } int CWispDC::PixelOffToTextOff(const WISP_CHAR* pString,int PixelOff) { int cx,Index,Count,Length,Width; if(pString == NULL) return -1; Index = 0; if(IsColorString(pString)) { const WISP_COLOR_CHAR*pStr = GetColorString(pString); Length = TStrLen(pStr); cx=0; for(int i = 0; i < Length; i++) { switch((WISP_CHAR)pStr[i]) { case WISP_STR('\n'): break; case WISP_STR('\t'): Count = m_TabAlign - Index % m_TabAlign; Width = m_pFont->GetCharWidth(WISP_STR(' '))*Count; cx += Width; Index += Count; break; default: Width = m_pFont->GetCharWidth((WISP_CHAR)pStr[i]); cx += Width; Index++; break; } if(PixelOff>=cx-Width && PixelOffGetCharWidth(WISP_STR(' '))*Count; cx += Width; Index += Count; break; default: Width = m_pFont->GetCharWidth(pString[i]); cx += Width; Index++; break; } if(PixelOff>=cx-Width && PixelOffGetCharWidth(WISP_STR(' '))*Count; Index+=Count; break; default: cx+=m_pFont->GetCharWidth((WISP_CHAR)pStr[i]); Index++; break; } } } else { if(Length == -1) Length = TStrLen(pString); cx=0; for(int i = 0; i < Length; i++) { switch(pString[i]) { case WISP_STR('\n'): break; case WISP_STR('\t'): Count = m_TabAlign - Index % m_TabAlign; cx+=m_pFont->GetCharWidth(WISP_STR(' '))*Count; Index+=Count; break; default: cx+=m_pFont->GetCharWidth(pString[i]); Index++; break; } } } return cx; } int CWispDC::GetTextHeight(const WISP_CHAR Char) { return m_pFont->m_Height; } int CWispDC::DrawString(IN WISP_CHAR* lpString,INOUT WISP_RECT* lpRect,IN UINT uFormat,IN UINT nShowLen,IN int nPreLineMaxCharNum) { struct stShowString { int coordinateX; WISP_CHAR *ShowString; int nShowLen; int nPixelWidth; }ShowString[4]; #define TABEXPENDLEN 9 int nStringRealLen = 0, nTabCharLen = 8, nRet = 0, nTabCharCounter = 0; int nEllipsesBegineOffset; WISP_CHAR EllipsesArray[2]={0,0}; int nLineNum = 0, i, j, nTmp, nMaxShowCharNum = 0; int nCurrentMaxLineCharNum = 0; int nTabExpandLen = 0,nCenterPos = 0; int nCharAverageWidth = 6; int nCharAverageHigh = GetTextHeight(WISP_CHAR("A")); int nTabPixelWidth = nCharAverageWidth; int nRightSkipCharNum = 0, nLeftSkipCharNum = 0; WISP_RECT rc; WISP_CHAR *ellipsis = WISP_STR("..."); int EllipsisStringPixelWidth; //WISP_CHAR TabExpendString[TABEXPENDLEN]; //int TabExpendStringPixelWidth; // int nFileNameCorrdinateX; int nEllipsesCoordinateX; WISP_CHAR* PathName = NULL; int nPathStrLen;//Ŀ¼ַĸ int nPathShowStrLen;//Ŀ¼Ҫʾַĸ WISP_CHAR *FileName=NULL; int nFileNameStrLen; int nShowStringCounter = 1;//ʾһеĴҪּʾ Ĵ һʾĿ¼֣ڶʡԺţļĴʡԺ bool isClip = true; int x,y; WISP_CHAR *pShowString = NULL; if(lpString != NULL) nStringRealLen = TStrLen(lpString); if(nStringRealLen == 0) return nRet; if(nShowLen != 0 && nShowLen < (UINT)nStringRealLen) nStringRealLen = nShowLen; rc = *lpRect; if(uFormat & WISP_DT_EXPANDTABS)// TAB ַչؿ { if(uFormat & WISP_DT_TABSTOP) { nTabCharLen = (0xff00 & uFormat) >> 8; uFormat = uFormat & ~(WISP_DT_CALCRECT | WISP_DT_EXTERNALLEADING | WISP_DT_INTERNAL | WISP_DT_NOCLIP | WISP_DT_NOPREFIX); } if(nTabCharLen == 0) nTabCharLen = 8; nTabPixelWidth = nTabCharLen * nCharAverageWidth; //uFormat = uFormat & ~(WISP_DT_END_ELLIPSIS | WISP_DT_PATH_ELLIPSIS | WISP_DT_EDITCONTROL | WISP_DT_WORD_ELLIPSIS); } nLineNum = CalcTextLineNum(lpString,nStringRealLen); if(uFormat & WISP_DT_CALCRECT) return CalcDrawTextRect(lpString,lpRect,nStringRealLen, uFormat, nTabPixelWidth); nCenterPos = lpRect->x + lpRect->cx / 2; if(uFormat & (WISP_DT_END_ELLIPSIS | WISP_DT_WORD_ELLIPSIS | WISP_DT_PATH_ELLIPSIS)) EllipsisStringPixelWidth = GetTextExtent(ellipsis); if(uFormat & WISP_DT_NOCLIP)//ΪDzüĵ AdjustNoClipRect(&rc,uFormat); if(uFormat & WISP_DT_SINGLELINE) { if(rc.x + rc.cx < 0 || rc.x > m_pRect->cx) //ʾ return nCharAverageHigh; x = rc.x; y = rc.y; int nStringPixelWidth; if(uFormat & WISP_DT_EXPANDTABS)//Ҫʾַس nStringPixelWidth = GetTextExtentTabExpend(lpString,nTabPixelWidth,nStringRealLen); else nStringPixelWidth = GetTextExtent(lpString,nStringRealLen); if(uFormat & WISP_DT_RIGHT) // WISP_DT_RIGHT x = rc.x + rc.cx - nStringPixelWidth; else if(uFormat & WISP_DT_CENTER) // WISP_DT_CENTER x = nCenterPos - nStringPixelWidth / 2; if(uFormat & WISP_DT_VCENTER)//ֱм롣 y = rc.y + rc.cy / 2 - nCharAverageHigh / 2; else if(uFormat & WISP_DT_BOTTOM)//ױ߶ y = rc.y + rc.cy - nCharAverageHigh; ShowString[0].coordinateX = x; ShowString[0].ShowString = lpString; ShowString[0].nShowLen = nStringRealLen; ShowString[0].nPixelWidth = nStringPixelWidth; if(nStringPixelWidth > rc.cx) { if(uFormat & WISP_DT_PATH_ELLIPSIS) { int nFileNamePixelWidth; int nPathNamePixelWidth; for(j = 1,i = nStringRealLen - 2; i >= 0; i--,j++)//Ҫһַ { if(lpString[i] == PATH_SEPARATOR_CHAR) { FileName = &lpString[i]; nPathStrLen = i; if(nPathStrLen < 3) goto local_2; if(i) PathName = lpString; else PathName = NULL; j++; break; } } nFileNameStrLen = j; if(FileName != NULL && nPathStrLen > 3) { if(uFormat & WISP_DT_EXPANDTABS) nFileNamePixelWidth = GetTextExtentTabExpend(FileName,nStringPixelWidth,j); else nFileNamePixelWidth = GetTextExtent(FileName,j); if(nFileNamePixelWidth + EllipsisStringPixelWidth < rc.cx) { nTmp = rc.cx - nFileNamePixelWidth - EllipsisStringPixelWidth;//ʾ· if(uFormat & WISP_DT_EXPANDTABS) { i = GetMaxShowCharNum(PathName,nTmp,nTabPixelWidth,nPathStrLen); nPathNamePixelWidth = GetTextExtentTabExpend(PathName,nStringPixelWidth,i); nTmp = nTmp - nPathNamePixelWidth; } else { i = GetMaxShowCharNum(PathName,nTmp,0,nPathStrLen); nPathNamePixelWidth = GetTextExtent(PathName,i); nTmp = nTmp - nPathNamePixelWidth; } nPathShowStrLen = i; if(nPathStrLen - nPathShowStrLen < 3)//жʾµַǷ񳬹 3 { goto local_2; } if(uFormat & WISP_DT_RIGHT) x += nTmp; else if(uFormat & WISP_DT_CENTER) x += nTmp / 2; ShowString[0].coordinateX = x; ShowString[0].ShowString = PathName; ShowString[0].nShowLen = nPathShowStrLen; ShowString[0].nPixelWidth = nPathNamePixelWidth; ShowString[1].coordinateX = x + nPathNamePixelWidth; ShowString[1].ShowString = ellipsis; ShowString[1].nShowLen = 3; ShowString[1].nPixelWidth = EllipsisStringPixelWidth; ShowString[2].coordinateX = ShowString[1].coordinateX + EllipsisStringPixelWidth; ShowString[2].ShowString = FileName; ShowString[2].nShowLen = nFileNameStrLen; ShowString[2].nPixelWidth = nFileNamePixelWidth; nShowStringCounter = 3; } else { if(uFormat & WISP_DT_RIGHT) { x = rc.cx + rc.x - nFileNamePixelWidth; }else if(uFormat & WISP_DT_CENTER) { x = nCenterPos + nFileNamePixelWidth / 2; } ShowString[0].coordinateX = x; ShowString[0].ShowString = ellipsis; ShowString[0].nShowLen = 3; ShowString[0].nPixelWidth = EllipsisStringPixelWidth; ShowString[1].coordinateX = x + EllipsisStringPixelWidth; ShowString[1].ShowString = FileName; ShowString[1].nShowLen = nFileNameStrLen; ShowString[1].nPixelWidth = nFileNamePixelWidth; nShowStringCounter = 2; } if(uFormat & WISP_DT_MODIFYSTRING) { PathName[nPathShowStrLen] = 0x2e; PathName[nPathShowStrLen+1] = 0x2e; PathName[nPathShowStrLen+2] = 0x2e; for(i = 0; i < nFileNameStrLen;i++) PathName[nPathShowStrLen+3+i] = FileName[i]; FileName[i] = 0; } } local_2: ; }else if(uFormat & WISP_DT_END_ELLIPSIS) { if(uFormat & (WISP_DT_RIGHT | WISP_DT_CENTER)) nTmp = rc.cx - EllipsisStringPixelWidth; else nTmp = rc.cx - EllipsisStringPixelWidth / 2 + 1; if(uFormat & WISP_DT_EXPANDTABS) { i = GetMaxShowCharNum(lpString,nTmp,nStringRealLen,nTabPixelWidth); nEllipsesCoordinateX = GetTextExtentTabExpend(lpString,nStringPixelWidth,i); nTmp = nTmp - nEllipsesCoordinateX; } else { i = GetMaxShowCharNum(lpString,nTmp,nStringRealLen); nEllipsesCoordinateX = GetTextExtent(lpString,i); nTmp = nTmp - nEllipsesCoordinateX; } if(uFormat & WISP_DT_RIGHT) x += nTmp; else if(uFormat & WISP_DT_CENTER) x = x + nTmp / 2; nEllipsesBegineOffset = i; ShowString[nShowStringCounter].coordinateX = ShowString[0].coordinateX; if(uFormat & WISP_DT_PATH_ELLIPSIS) { for(j = 0; j < nShowStringCounter;j++) { ShowString[nShowStringCounter].coordinateX += ShowString[j].nPixelWidth; } } else { ShowString[0].coordinateX = x; ShowString[nShowStringCounter].coordinateX +=nEllipsesCoordinateX; ShowString[0].nShowLen = nEllipsesBegineOffset; } ShowString[nShowStringCounter].ShowString = ellipsis; ShowString[nShowStringCounter].nShowLen = 3; ShowString[nShowStringCounter].nPixelWidth = EllipsisStringPixelWidth; nShowStringCounter++; if(uFormat & WISP_DT_MODIFYSTRING) { for(j = i; j < i + 3 && j < nStringRealLen; j++) lpString[j] = 0x2e; } }else if(uFormat & WISP_DT_WORD_ELLIPSIS) { } } if(uFormat & WISP_DT_EXPANDTABS) { for(i = 0; i < nShowStringCounter;i++) DrawTabExpendString(ShowString[i].coordinateX,y,ShowString[i].ShowString, ShowString[i].nShowLen,rc,nTabPixelWidth); } else { for(i = 0; i < nShowStringCounter;i++) DrawString(ShowString[i].coordinateX,y,ShowString[i].ShowString, ShowString[i].nShowLen); } return nCharAverageHigh; }else //if(uFormat & WISP_DT_SINGLELINE)Ƕ { int nBeginOffset = 0; int nWriteByte = nStringRealLen; int n; int nShowLineNum = 0; bool bFlags = true; if(uFormat & WISP_DT_VCENTER) { if(rc.cy >(nLineNum * nCharAverageHigh)) { rc.y = rc.y+(rc.cy - ((nLineNum)* nCharAverageHigh)) / 2; } uFormat &= ~WISP_DT_VCENTER; } uFormat &= ~WISP_DT_BOTTOM; uFormat |= WISP_DT_SINGLELINE; //nShowLen for(nTmp = 0,i = 0; i < nLineNum; i++,nShowLineNum++) { n = nTmp; for(j = 0;nTmp < nStringRealLen && lpString[nTmp] != '\r' && lpString[nTmp] != '\n';nTmp++,j++); if(j == 0) { if(nTmp < nStringRealLen) goto local_1; else break; } else { if(nWriteByte <= 0) break; if(j > nWriteByte) j = nWriteByte; nWriteByte -= j; if(uFormat & WISP_DT_EXPANDTABS) nBeginOffset = GetTextExtentLineTabExpend(&lpString[n],nTabPixelWidth,j); else nBeginOffset = GetTextExtent(&lpString[n],j); if(uFormat & WISP_DT_AUTONEWLINE) { if(nBeginOffset > lpRect->cx) { int l; for(; j > 0; ) { if(uFormat & WISP_DT_EXPANDTABS) l = GetMaxShowCharNum(&lpString[n],lpRect->cx,nTabPixelWidth,j); else l = GetMaxShowCharNum(&lpString[n],lpRect->cx,0,j); DrawString((WISP_CHAR*)&lpString[n], &rc, uFormat, l); n+=l; j -= l; nShowLineNum++; if(j !=0) { rc.y += nCharAverageHigh; rc.cy -= nCharAverageHigh; } if(rc.cy <= 0) break; } nShowLineNum--; } }else if(uFormat & WISP_DT_MAXCHAR) { for(;j >= nPreLineMaxCharNum;) { DrawString((WISP_CHAR*)&lpString[n], &rc, uFormat, nPreLineMaxCharNum); n+=nPreLineMaxCharNum; j -= nPreLineMaxCharNum; nShowLineNum++; if(j != 0) { rc.y += nCharAverageHigh; rc.cy -= nCharAverageHigh; } if(rc.cy <= 0) break; } if(j == 0) nShowLineNum--; } if(j) DrawString((WISP_CHAR*)&lpString[n], &rc, uFormat, j); } local_1: nTmp++; if(nTmp > nStringRealLen) break; nWriteByte--; if(lpString[nTmp] == '\n' || lpString[nTmp] == '\r') if(lpString[nTmp-1] != lpString[nTmp]) { nTmp++; nWriteByte--; } rc.y += nCharAverageHigh; rc.cy -= nCharAverageHigh; if(rc.cy <= 0) break; } //local_3: return nShowLineNum * nCharAverageHigh; } return 0; } int CWispDC::GetTextExtentTabExpend(const WISP_CHAR* lpString,int nTabPixelWidth,int nCount) { int i,nRetLen = 0,nTmp; CODE_ASSERT(nTabPixelWidth); if(nCount == -1) nCount = TStrLen(lpString); for (i = 0; i < nCount; i++) { if(lpString[i] >= 0x100) nRetLen += 16; else { if(lpString[i] != '\t') nRetLen+=m_pFont->m_CharLenAry[lpString[i]]; else { nTmp = nRetLen % nTabPixelWidth; nRetLen = nRetLen + nTabPixelWidth - nTmp; } } } return nRetLen; } int CWispDC::GetTextExtentLineTabExpend(const WISP_CHAR* lpString,int nTabPixelWidth,int nCount) { int i,nRetLen = 0,nTmp; CODE_ASSERT(nTabPixelWidth); if(nCount == -1) nCount = TStrLen(lpString); for (i = 0; i < nCount; i++) { if(lpString[i] == '\n' || lpString[i] == '\r') break; if(lpString[i] >= 0x100) nRetLen += 16; else { if(lpString[i] != '\t') nRetLen+=m_pFont->m_CharLenAry[lpString[i]]; else { nTmp = nRetLen % nTabPixelWidth; nRetLen = nRetLen + nTabPixelWidth - nTmp; } } } return nRetLen; } int CWispDC::CalcTextLineNum(WISP_CHAR *lpString,int nCount) { int i,j,nLineNum = 0,nTmp,nIsMutleLines=0; /* for(i = 0; i < nCount; i++) { if(lpString[i] == '\r' || lpString[i] == '\n') { nIsMutleLines=1; break; } } if(nIsMutleLines == 0) return 1; */ for(nTmp = 0,i = 0; i < nCount; i++) { for(j = 0;nTmp < nCount && lpString[nTmp] != '\r' && lpString[nTmp] != '\n';nTmp++,j++); if(j == 0) { if(nTmp < nCount) nLineNum++; else break; } else { nLineNum++; } nTmp++; if(nTmp >= nCount) break; else { if(lpString[nTmp] == '\n' || lpString[nTmp] == '\r') if(lpString[nTmp - 1] != lpString[nTmp]) nTmp++; } } // nLineNum++; return nLineNum; } int CWispDC::CalcDrawTextRect(WISP_CHAR *lpString,WISP_RECT *lpRect,int nStrLen,UINT uFormat, int nTabPixelWidth) { int nCharAverageHigh = m_pFont->m_Height,nTmp,nCurrentMaxLineCharNum = 0; int i,j,nLineNum = 0,m; if(uFormat & WISP_DT_SINGLELINE) { if(uFormat & WISP_DT_EXPANDTABS) lpRect->cx = GetTextExtentTabExpend(lpString,nTabPixelWidth,nStrLen); else lpRect->cx = GetTextExtent(lpString,nStrLen); lpRect->cy = nCharAverageHigh; } else { for(i = 0; i < nStrLen;) { m = i; for(j = 0;i < nStrLen && lpString[i] != '\r' && lpString[i] != '\n';i++,j++); if(j == 0) { if(i < nStrLen) nLineNum++; else break; } else { nLineNum++; } if(uFormat & WISP_DT_EXPANDTABS) nTmp = GetTextExtentLineTabExpend(&lpString[m],nTabPixelWidth,j); else nTmp = GetTextExtent(&lpString[m],j); if(uFormat & WISP_DT_AUTONEWLINE) { if(nTmp > lpRect->cx) { int l; for(; j > 0; j -= l) { l = GetMaxShowCharNum(&lpString[m],lpRect->cx,0,j); nLineNum++; m+=l; } nLineNum--; } } if(nCurrentMaxLineCharNum < nTmp) nCurrentMaxLineCharNum = nTmp; i++; if(i >= nStrLen) break; else { if(lpString[i] == '\n' || lpString[i] == '\r') if(lpString[i - 1] != lpString[i]) i++; } } lpRect->cy = nLineNum * nCharAverageHigh; lpRect->cx = nCurrentMaxLineCharNum; } return lpRect->cy; } void CWispDC::AdjustNoClipRect(INOUT WISP_RECT *lpRect,UINT uFormat) { if(uFormat & WISP_DT_RIGHT)//ǷDzüҶĻ x DC ߡ { if(lpRect->x > 0) { lpRect->cx += lpRect->x; lpRect->x =0; } } else { if(uFormat & WISP_DT_CENTER) { if(lpRect->x > 0) { lpRect->cx += lpRect->x; lpRect->x =0; } if(lpRect->x + lpRect->cx < m_pRect->cx) lpRect->cx =lpRect->cx + m_pRect->cx - (lpRect->x + lpRect->cx); } else//WISP_DT_LEFT if(lpRect->x + lpRect->cx < m_pRect->cx)////ǷDzüĻ cx DC ұߡ lpRect->cx =m_pRect->cx - lpRect->x; } } int CWispDC::GetMaxShowCharNum(WISP_CHAR *lpString,int nMaxWidth, int nTabPixelWidth,int nCount) { int sum = 0,i,nTmp; CODE_ASSERT(lpString); if(nCount == -1) nCount = TStrLen(lpString); if(nTabPixelWidth) { for(i = 0; i < nCount; i++) { if(lpString[i] != '\t') { nTmp = GetTextExtent(&lpString[i],1); } else { nTmp = nTabPixelWidth - sum % nTabPixelWidth; } if(sum + nTmp < nMaxWidth) sum += nTmp; else { if(lpString[i] == '\t') i++; break; } } } else { for(i = 0; i < nCount; i++) { nTmp = GetTextExtent(&lpString[i],1); if(sum + nTmp < nMaxWidth) sum += nTmp; else break; } } return i; } #define TABEXPENDLEN 9 int CWispDC::DrawTabExpendString(int x, int y, WISP_CHAR *lpString,int nStringRealLen,WISP_RECT rc,int nTabPixelWidth ) { WISP_CHAR TabExpendString[TABEXPENDLEN]; int TabExpendStringPixelWidth; int k ,i ,j ,n = 0,nStartx, nTmp; for(i = 0; i < TABEXPENDLEN; i++) TabExpendString[i] = ' '; TabExpendString[TABEXPENDLEN-1] = 0; TabExpendStringPixelWidth = GetTextExtent(TabExpendString); nStartx = x; for(i = 0; i < nStringRealLen; i++) { nTmp = i; for(j = 0; i < nStringRealLen && lpString[i] != '\t'; i++,j++); n = GetTextExtent(&lpString[nTmp],j); if(x + n >= 0 && x <= m_pRect->cx) DrawString(x,y,&lpString[nTmp],j); else break; x += n; k = nTabPixelWidth - (x - nStartx) % nTabPixelWidth; nTmp = (k + TabExpendStringPixelWidth - 1) / TabExpendStringPixelWidth; k = x + k; for(j = 0; j < nTmp; j++,x += TabExpendStringPixelWidth) { if(x + TabExpendStringPixelWidth >= 0 && x <= m_pRect->cx) DrawString(x,y,TabExpendString,-1); else break; } x = k; } return 0; } void CWispDC::CirclePlotPoints(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect) { if(PtInRect(pClipRect,xCenter+x,yCenter-y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+x,yCenter-y,color);//TRT if(PtInRect(pClipRect,xCenter+y,yCenter-x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+y,yCenter-x,color);//TRB if(PtInRect(pClipRect,xCenter+y,yCenter+x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+y,yCenter+x,color);//BRT if(PtInRect(pClipRect,xCenter+x,yCenter+y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+x,yCenter+y,color);//BRB if(PtInRect(pClipRect,xCenter-x,yCenter+y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-x,yCenter+y,color);//BLB if(PtInRect(pClipRect,xCenter-y,yCenter+x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-y,yCenter+x,color);//BLT if(PtInRect(pClipRect,xCenter-y,yCenter-x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-y,yCenter-x,color);//TLB if(PtInRect(pClipRect,xCenter-x,yCenter-y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-x,yCenter-y,color);//TLT } void CWispDC::CirclePlotPointsRightTop(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect) { if(PtInRect(pClipRect,xCenter+x,yCenter-y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+x,yCenter-y,color);//TRT if(PtInRect(pClipRect,xCenter+y,yCenter-x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+y,yCenter-x,color);//TRB } void CWispDC::CirclePlotPointsRightBottom(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect) { if(PtInRect(pClipRect,xCenter+y,yCenter+x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+y,yCenter+x,color);//BRT if(PtInRect(pClipRect,xCenter+x,yCenter+y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter+x,yCenter+y,color);//BRB } void CWispDC::CirclePlotPointsLeftTop(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect) { if(PtInRect(pClipRect,xCenter-y,yCenter-x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-y,yCenter-x,color);//TLB if(PtInRect(pClipRect,xCenter-x,yCenter-y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-x,yCenter-y,color);//TLT } void CWispDC::CirclePlotPointsLeftBottom(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect) { if(PtInRect(pClipRect,xCenter-x,yCenter+y)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-x,yCenter+y,color);//BLB if(PtInRect(pClipRect,xCenter-y,yCenter+x)) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,xCenter-y,yCenter+x,color);//BLT } int CWispDC::DrawString(IN CWispFont*pLogFont,IN int x,IN int y,IN const WISP_CHAR*pStr,IN COLORREF TextColor,IN WISP_RECT*pClipRect,IN COLORREF*pBKColor,IN int Length,IN int Index,int Flags) { BYTE*pFont; int Width,n,i,j,BitOffset,OrgX; WISP_CHAR szText[MAX_TAB_ALIGN]; OrgX = x; while(Length && *pStr) { if(Flags) { szText[0]=*pStr; szText[1]=0; } else { switch(*pStr) { case WISP_STR('\n'): return x - OrgX; case WISP_STR('\t'): n = m_TabAlign - Index % m_TabAlign; szText[n]=0; do { n--; szText[n]=WISP_STR(' '); }while(n>0); break; default: szText[0]=*pStr; szText[1]=0; break; } } for(n=0;szText[n];n++) { pFont=pLogFont->GetCharPixelBuffer(szText[n]); Width=pLogFont->GetCharWidth(szText[n]); BitOffset=0; for(j=0;jm_Height;j++) { for(i=0;i>(BitOffset%8)) & 1) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x+i,y+j,TextColor); else if(pBKColor) m_pFrameBuffer->pDrawHAL->DrawPixel(m_pFrameBuffer,x+i,y+j,*pBKColor); } BitOffset++; } } x+=Width; Index++; } pStr++; Length--; } return x - OrgX; } ================================================ FILE: Project/Wisp/Source/WispDC.h ================================================ #ifndef _WISP_DC_H_ #define _WISP_DC_H_ #include "WispBase.h" #include "WispFont.h" //DrawText() Format Flags #define WISP_DT_TOP 0x00000000 #define WISP_DT_LEFT 0x00000000 #define WISP_DT_CENTER 0x00000001 #define WISP_DT_RIGHT 0x00000002 #define WISP_DT_VCENTER 0x00000004 #define WISP_DT_BOTTOM 0x00000008 #define WISP_DT_WORDBREAK 0x00000010 #define WISP_DT_SINGLELINE 0x00000020 #define WISP_DT_EXPANDTABS 0x00000040 #define WISP_DT_TABSTOP 0x00000080 #define WISP_DT_NOCLIP 0x00000100 #define WISP_DT_EXTERNALLEADING 0x00000200 #define WISP_DT_CALCRECT 0x00000400 #define WISP_DT_NOPREFIX 0x00000800 #define WISP_DT_INTERNAL 0x00001000 #define WISP_DT_EDITCONTROL 0x00002000 #define WISP_DT_PATH_ELLIPSIS 0x00004000 #define WISP_DT_END_ELLIPSIS 0x00008000 #define WISP_DT_MODIFYSTRING 0x00010000 #define WISP_DT_RTLREADING 0x00020000 #define WISP_DT_WORD_ELLIPSIS 0x00040000 #define WISP_DT_NOFULLWIDTHCHARBREAK 0x00080000 #define WISP_DT_HIDEPREFIX 0x00100000 #define WISP_DT_PREFIXONLY 0x00200000 #define WISP_DT_AUTONEWLINE 0x00400000 #define WISP_DT_MAXCHAR 0x00800000 //DrawString() Format Flag #define WISP_TEXT_TRANS 0x00000000 #define WISP_TEXT_OPAQUE 0x00000001 //DrawSystemStandardIcon define #define WISP_SSI_EXPANDBUTTON_SIZE 9 #define WISP_SSI_CHECKBOX_SIZE 11 enum WISP_SSI_ENUM { WISP_SSI_VERT_INC_SPIN = 0, WISP_SSI_VERT_DEC_SPIN, WISP_SSI_HORZ_INC_SPIN, WISP_SSI_HORZ_DEC_SPIN, WISP_SSI_CLOSE, WISP_SSI_MINIMIZE, WISP_SSI_MAXIMIZE, WISP_SSI_RESTORE, WISP_SSI_DISABLED, WISP_SSI_EXPANDBUTTON_EXPAND, WISP_SSI_EXPANDBUTTON_COLLAPSE, WISP_SSI_CHECKBOX_UNCHECKED, WISP_SSI_CHECKBOX_CHECKED, WISP_SSI_CHECKBOX_SEMICHECKED, WISP_SSI_CHECKBOX_CHECKMARK, WISP_SSI_REDIOBOX_SELECTED, WISP_SSI_REDIOBOX_UNSELECTED, WISP_SSI_REDIOBOX_SELECTED_DRAK, WISP_SSI_REDIOBOX_UNSELECTED_DRAK, }; #define MAX_TAB_ALIGN 32 class CWispBaseWnd; class CWispBase; class CWispDC { public: CWispDC(); CWispDC(CWispDIB*pDIB); CWispDC(WISP_FRAME_BUFFER*pFrameBuffer,WISP_RECT*pRect); CWispBaseWnd* m_pWispWnd; CWispBase* m_pWispBase; WISP_FRAME_BUFFER*m_pFrameBuffer; WISP_RECT* m_pRect; COLORREF* m_ColorTable; CWispFont* m_pFont; COLORREF m_TextColor; COLORREF m_TextShadowColor; COLORREF m_TextBKColor; COLORREF m_OldTextColor; COLORREF m_OldTextShadowColor; COLORREF m_OldTextBKColor; UINT m_TextStyle; WISP_RECT* m_pClipRect; int m_TabAlign; COLORREF GetTextColor(void){return m_TextColor;} COLORREF GetTextShadowColor(void){return m_TextShadowColor;} COLORREF GetTextBKColor(void){return m_TextBKColor;} void SetColorTable(COLORREF*ColorTable){m_ColorTable = ColorTable;} void SetTextColor(COLORREF Color){m_OldTextColor=m_TextColor;m_TextColor=Color;} void SetShadowTextColor(COLORREF Color){m_OldTextShadowColor=m_TextShadowColor;m_TextShadowColor=Color;} void SetTextBKColor(COLORREF Color){m_OldTextBKColor=m_TextBKColor;m_TextBKColor=Color;} void SetTabAlign(int Length){m_TabAlign = Length;} void RestoreTextColor(){m_TextColor=m_OldTextColor;} void RestoreShadowTextColor(){m_TextShadowColor=m_OldTextShadowColor;} void RestoreTextBKColor(){m_TextBKColor=m_OldTextBKColor;} void SetTextStyle(UINT Style){m_TextStyle=Style;} void SetTextType(UINT Type); public: bool AttachDIB(CWispDIB*pDIB); bool AttachFrameBuffer(WISP_FRAME_BUFFER*pFrameBuffer,WISP_RECT*pRect); bool AttachWnd(IN CWispBaseWnd*pWispWnd,IN WISP_RECT*pRect); void InitParam(); void Detach(); bool ClipDCRect(INOUT WISP_RECT*pRect); bool ClipDCLine(INOUT int*pX1,INOUT int*pY1,INOUT int*pX2,INOUT int*pY2); bool ClipDCPoint(IN WISP_POINT*pPT); void EnableClipRect(WISP_RECT*pClipRect){ m_pClipRect = pClipRect; pClipRect->x += m_pRect->x;pClipRect->y += m_pRect->y;} void DisableClipRect(){ m_pClipRect=NULL; } ////////////////////////////////////////////////////////////////////////////////////////////////// //ͼ ////////////////////////////////////////////////////////////////////////////////////////////////// public://ü //ַ int DrawString(IN int x,IN int y,IN const WISP_CHAR*string,IN int Len = -1,int LineIndex = 0,int Flags=0); int DrawString(IN WISP_CHAR* lpString,INOUT WISP_RECT* lpRect,IN UINT uFormat,IN UINT nShowLen = 0,IN int nPreLineMaxCharNum=-1); int DrawString(IN WISP_RECT*pRect,IN const WISP_CHAR*string,IN int Length = -1,int LineIndex = 0); int DrawColorString(IN WISP_RECT*pRect,IN const WISP_COLOR_CHAR*string,IN int Length = -1,int LineIndex = 0); //ƴӰַ int DrawShadowString(IN int x,IN int y,IN const WISP_CHAR*string,IN int Deep=1,IN int Len = -1,int LineIndex = 0); int DrawShadowString(IN WISP_RECT*pRect,IN const WISP_CHAR*string,IN int Deep=1,IN int Len = -1,int LineIndex = 0); //ַ int DrawColorString(IN int x,IN int y,IN const WISP_COLOR_CHAR*string,IN int Len = -1,int LineIndex = 0); int DrawRightString(IN int x,IN int y,IN const WISP_CHAR*string,IN int Len = -1,int LineIndex = 0); //ײַ int DrawString(IN CWispFont*pFontInfo,IN int x,IN int y,IN const WISP_CHAR*string,IN COLORREF TextColor,IN WISP_RECT*pClipRect,IN COLORREF*pBKColor=NULL,IN int Len=-1,int LineIndex = 0,int Flags=0); int DrawColorString(IN CWispFont*pLogFont,IN int x,IN int y,IN const WISP_COLOR_CHAR*pStr,IN WISP_RECT*pClipRect,IN int Len = -1,int LineIndex = 0); // void DrawPixel(IN int x, IN int y, IN COLORREF color); //ֱ void DrawVLine(IN int x,IN int y1,IN int y2,IN COLORREF color); //ˮƽ void DrawHLine(IN int x1,IN int x2,IN int y,IN COLORREF color); //ֱ void DrawVDashLine(IN int x,IN int y1,IN int y2,IN COLORREF color); //ˮƽ void DrawHDashLine(IN int x1,IN int x2,IN int y,IN COLORREF color); // void DrawLine(IN int x1,IN int y1,IN int x2,IN int y2,IN COLORREF color); //Բ void DrawCircle(IN int x,IN int y,IN int radius,IN COLORREF color); //Բ void DrawCircleRightTop(IN int x,IN int y,IN int radius,IN COLORREF color); //Բ void DrawCircleRightBottom(IN int x,IN int y,IN int radius,IN COLORREF color); //Բ void DrawCircleLeftTop(IN int x,IN int y,IN int radius,IN COLORREF color); //Բ void DrawCircleLeftBottom(IN int x,IN int y,IN int radius,IN COLORREF color); //ƾ void DrawRect(IN WISP_RECT* pRc, IN COLORREF color); void DrawRect(IN int x,IN int y,IN int cx,IN int cy,IN COLORREF color); void DrawRoundRect(IN WISP_RECT* pRc, IN COLORREF color); void Draw3DRect(IN WISP_RECT*pRc,IN COLORREF crTopLeft, COLORREF crBottomRight); void Draw3DRect(IN WISP_RECT*pRc,IN bool bRaised,IN int Deep); //ƶ߾ void DrawDashRect(IN WISP_RECT*pRc,IN COLORREF color); // void DrawFullRect(IN WISP_RECT*pRc,IN COLORREF color); void DrawFullRect(IN int x,IN int y,IN int cx,IN int cy,IN COLORREF color); //XҶȱ仯 void DrawMiddleXGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg); void DrawMiddleXGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc); COLORREF DrawXGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg); void DrawXGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc); //YҶȱ仯 void DrawMiddleYGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg); void DrawMiddleYGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc); COLORREF DrawYGrayChgFullRect(IN WISP_RECT*pRc,IN COLORREF color,IN int nChg); void DrawYGrayChgFullRect(IN COLORREF ColorBegin,IN COLORREF ColorEnd,IN WISP_RECT*pRc); //3DӰĴ(bRaised = TRUE ͹ false Deep ) void DrawFrameRect(IN WISP_RECT*pRc,IN bool bRaised=true,IN int Deep=1); void DrawFrameRect(IN int x,IN int y,IN int cx,IN int cy,IN bool bRaised=true,IN int Deep=1); // void Clear(IN COLORREF color = 0); //ͼ void DrawDIBTiled(IN CWispDIB*pDIB,IN WISP_RECT*pRect=NULL); void DrawDIB(IN int x,IN int y,IN CWispDIB*pDIB); void DrawDIB(IN WISP_RECT*pRC,IN CWispDIB*pDIB); void DrawGrayDIB(IN int x,IN int y,IN CWispDIB*pDIB); void DrawGrayDIB(IN WISP_RECT*pRC,IN CWispDIB*pDIB); // int PixelOffToTextOff(const WISP_CHAR* pString,int PixelOff); int GetTextExtent(const WISP_CHAR* pString,int Length=-1,int Index = 0); int GetTextHeight(const WISP_CHAR Char = 0); int GetTextExtentTabExpend(const WISP_CHAR* lpString,int nTabPixelWidth=8*8,int nCount=-1); int GetTextExtentLineTabExpend(const WISP_CHAR* lpString,int nTabPixelWidth=8*8,int nCount=-1); //չť void DrawSystemStandardIcon(const WISP_RECT&rcBoundary, UINT uStyle, COLORREF color = WISP_RGB(33,162,33)); private: int DrawSingleLineText(IN WISP_CHAR* lpString,IN int nCount,INOUT WISP_RECT* lpRect,IN UINT uFormat); public: int CalcTextLineNum(WISP_CHAR *lpString,int nCount=-1); int CalcDrawTextRect(WISP_CHAR *lpString,WISP_RECT *lpRect,int nStrLen,UINT uFormat, int nTabPixelWidth); void AdjustNoClipRect(INOUT WISP_RECT *lpRect,IN UINT uFormat); int GetMaxShowCharNum(WISP_CHAR *lpString,int nMaxWidth, int nTabPixelWidth=0,int nCount=-1); int DrawTabExpendString(int x, int y, WISP_CHAR *lpString,int nStrLen,WISP_RECT rc,int nTabPixelWidth ); public: void CirclePlotPoints(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect); void CirclePlotPointsRightTop(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect); void CirclePlotPointsRightBottom(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect); void CirclePlotPointsLeftTop(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect); void CirclePlotPointsLeftBottom(int xCenter,int yCenter,int x,int y,COLORREF color,WISP_RECT*pClipRect); void DrawCircleRightTop(int xCenter, int yCenter,int radius,COLORREF color,WISP_RECT*pClipRect); void DrawCircleRightBottom(int xCenter, int yCenter,int radius,COLORREF color,WISP_RECT*pClipRect); void DrawCircleLeftTop(int xCenter, int yCenter,int radius,COLORREF color,WISP_RECT*pClipRect); void DrawCircleLeftBottom(int xCenter, int yCenter,int radius,COLORREF color,WISP_RECT*pClipRect); }; #endif ================================================ FILE: Project/Wisp/Source/WispDIB.cpp ================================================ #include "StdAfx.h" #include "WispDIB.h" #include "WispBase.h" CWispDIB::CWispDIB() { m_FrameBuffer.Buffer=NULL; m_Pal = NULL; m_bAutoDelete = false; m_RefCount = 0; m_FrameBuffer.Width = m_FrameBuffer.Height = 0; } CWispDIB::~CWispDIB() { if(m_bAutoDelete==false) Destroy(); } void CWispDIB::InitParam() { m_FrameBuffer.LineDistance=sizeof(COLORREF)*m_FrameBuffer.Width; m_FrameBuffer.BufferSize = sizeof(COLORREF)*m_FrameBuffer.Width*m_FrameBuffer.Height; m_FrameBuffer.Buffer = new BYTE[m_FrameBuffer.BufferSize]; m_FrameBuffer.Bpp=32; m_Rect.x = m_Rect.y = 0; m_Rect.cx = m_FrameBuffer.Width; m_Rect.cy = m_FrameBuffer.Height; switch(m_FrameBuffer.Bpp) { case 4: m_FrameBuffer.pDrawHAL = &gpCurWisp->m_DrawHAL4Bit; case 8: m_FrameBuffer.pDrawHAL = &gpCurWisp->m_DrawHAL8Bit; break; case 16: m_FrameBuffer.pDrawHAL = &gpCurWisp->m_DrawHAL16Bit; break; case 24: m_FrameBuffer.pDrawHAL = &gpCurWisp->m_DrawHAL24Bit; break; case 32: m_FrameBuffer.pDrawHAL = &gpCurWisp->m_DrawHAL32Bit; break; default: m_FrameBuffer.pDrawHAL = &gpCurWisp->m_NotSupportDrawHAL; break; } } void CWispDIB::Clear(COLORREF Color) { for(int n=m_FrameBuffer.BufferSize/(m_FrameBuffer.Bpp>>3)-1;n>=0;n--) ((COLORREF*)m_FrameBuffer.Buffer)[n] = Color; } bool CWispDIB::Create(int Width,int Height,UINT Type,WISP_POINT*pHotPT,COLORREF ColorKey) { m_FrameBuffer.Width=Width; m_FrameBuffer.Height=Height; m_ColorKey=ColorKey; m_Type=Type; if(pHotPT) m_HotPT=*pHotPT; else m_HotPT.x=m_HotPT.y=0; InitParam(); return true; } bool CWispDIB::Resize(int Width,int Height) { int AlignSize,NewBufferSize; if(Width == -1) Width = m_FrameBuffer.Width; if(Height == -1) Height = m_FrameBuffer.Height; NewBufferSize = Width*Height*sizeof(COLORREF); if(NewBufferSize==m_FrameBuffer.BufferSize) return true; AlignSize = MAX(Width,Height)*sizeof(COLORREF)*8; if(NewBufferSize>m_FrameBuffer.BufferSize) { m_FrameBuffer.BufferSize = ALIGN_SIZE(NewBufferSize,AlignSize); delete m_FrameBuffer.Buffer; m_FrameBuffer.Buffer = new BYTE[m_FrameBuffer.BufferSize]; } else if(m_FrameBuffer.BufferSize - NewBufferSize > AlignSize) { m_FrameBuffer.BufferSize = Width*Height*sizeof(COLORREF); delete m_FrameBuffer.Buffer; m_FrameBuffer.Buffer = new BYTE[m_FrameBuffer.BufferSize]; } m_FrameBuffer.Width = Width; m_FrameBuffer.Height = Height; m_FrameBuffer.LineDistance=sizeof(COLORREF)*m_FrameBuffer.Width; m_Rect.x = m_Rect.y = 0; m_Rect.cx = m_FrameBuffer.Width; m_Rect.cy = m_FrameBuffer.Height; return true; } bool CWispDIB::Load(PCSTR FileName,int Index) { int Width,Height,BytesPixel,dwDibSize,dwSize,Delta,Off; BYTE* pBits; BITMAP_FILE_HEADER bmFileHead; BITMAP_INFO_HEADER* pbmInfo; COLORREF*pColor; CImageFile DIBFile; DIBFile.ChangeFileIO(&gpCurWisp->m_PFSFileIO); if(gpCurWisp->m_PFSFileIO.GetFileAttr(FileName) & FIO_FA_COMPRESS) { int Size = (int)gpCurWisp->m_PFSFileIO.GetFileSize(FileName); if(Size<=0) return false; if(DIBFile.Create(Size)==false) return false; gpCurWisp->m_PFSFileIO.ReadFromFile(FileName,DIBFile.m_Buffer,Size); } else { if(DIBFile.Open(FileName)==false) return false; } m_Pal = NULL; DIBFile.ReadFile(0,&bmFileHead,sizeof(BITMAP_FILE_HEADER)); if(bmFileHead.bfType != 0x4D42)//"BM" { DIBFile.Close(); return LoadIcon(FileName,Index); } dwSize=MAKE_DWORD(bmFileHead.bfSizeHigh,bmFileHead.bfSizeLow); dwDibSize = dwSize - sizeof(BITMAP_FILE_HEADER); pbmInfo = (BITMAP_INFO_HEADER*)new BYTE[dwDibSize+4]; if(DIBFile.ReadFile(pbmInfo,dwDibSize)==false) { DIBFile.Close(); delete pbmInfo; return false; } if(pbmInfo->biCompression || pbmInfo->biBitCount==16) { DIBFile.Close(); delete pbmInfo; return false; } BytesPixel=(pbmInfo->biBitCount+7)/8; if(pbmInfo->biSize == sizeof(BITMAP_INFO_HEADER)) { Width =pbmInfo->biWidth; Height =ABS(pbmInfo->biHeight); } else { DIBFile.Close(); delete pbmInfo; return false; } m_FrameBuffer.Width=Width; m_FrameBuffer.Height=Height; m_ColorKey=0; m_HotPT.x=m_HotPT.y=0; m_Type=WISP_DIB_BITMAP; Delta=ALIGN_SIZE(Width*BytesPixel,4); InitParam(); if(pbmInfo->biBitCount == 8) { pColor = (COLORREF*)&pbmInfo[1]; m_Pal = new COLORREF[256]; for(int n=0;n<256;n++) { m_Pal[n]=pColor[n]; } DWORD BitOffset = MAKE_DWORD(bmFileHead.bfOffBitsHigh,bmFileHead.bfOffBitsLow); pBits = (BYTE *)&pbmInfo[1] + BitOffset - sizeof(BITMAP_FILE_HEADER) - sizeof(BITMAP_INFO_HEADER) + Delta*Height; Off=0; if(gpCurWisp->m_FrameBuffer.Bpp==8) { for(int y=0;y= m_FrameBuffer.Width || y >= m_FrameBuffer.Height) return false; *pClr = *(COLORREF*)RT_PVOID(m_FrameBuffer.Buffer,m_FrameBuffer.LineDistance*y + sizeof(COLORREF) * x); return true; } bool CWispDIB::LoadIcon(PCSTR FileName,int Index) { COLORREF*pColor; BYTE*pBits,*pIcon; int HeadOffset,Delta,Off,BytesPixel; ICON_DIR_ENTRY IconDirEntry; ICON_DIR IconDir; CImageFile DIBFile; DIBFile.ChangeFileIO(&gpCurWisp->m_PFSFileIO); if(gpCurWisp->m_PFSFileIO.GetFileAttr(FileName) & FIO_FA_COMPRESS) { int Size = (int)gpCurWisp->m_PFSFileIO.GetFileSize(FileName); if(Size<=0) return false; if(DIBFile.Create(Size)==false) return false; gpCurWisp->m_PFSFileIO.ReadFromFile(FileName,DIBFile.m_Buffer,Size); } else { if(DIBFile.Open(FileName)==false) return false; } DIBFile.ReadFile(&IconDir,sizeof(IconDir)); if(IconDir.idType!=1||IconDir.idReserved!=0) { DIBFile.Close(); return false; } HeadOffset = sizeof(IconDir); if(Index < 0) Index = IconDir.idCount - 1; for(int n=0;nbiBitCount+7 ) / 8; Delta=ALIGN_SIZE(m_FrameBuffer.Width*BytesPixel,4); if(IconDirEntry.wBitCount==8) {//256 color pColor = (COLORREF*)(pIcon+sizeof(BITMAP_INFO_HEADER)); pBits = pIcon+sizeof(BITMAP_INFO_HEADER)+sizeof(COLORREF)*256+Delta*m_FrameBuffer.Height; m_Pal = new COLORREF[256]; for(int nClr=0;nClr<256;nClr++) m_Pal[nClr]=pColor[nClr]; Off=0; if(gpCurWisp->m_FrameBuffer.Bpp==8) {//screen is 256 color for(int y=0;ym_FrameBuffer.Width; ClipRC.cy = pDesBIB->m_FrameBuffer.Height; DrawRC.x = x; DrawRC.y = y; DrawRC.cx = SrcRect.cx; DrawRC.cy = SrcRect.cy; if(ClipRect(&DrawRC,&ClipRC)==false) return; for(int dy=0;dym_FrameBuffer.Buffer)[(y+dy)*pDesBIB->m_FrameBuffer.Width+x+dx] = ((COLORREF*)m_FrameBuffer.Buffer)[(SrcRect.y+dy)*m_FrameBuffer.Width+SrcRect.x+dx]; } } } void CWispDIB::BltTiled(CWispDIB*pDesBIB) { WISP_RECT rc; if(m_FrameBuffer.Buffer==NULL) return; rc.x = rc.y = 0; rc.cx = m_FrameBuffer.Width; rc.cy = m_FrameBuffer.Height; for(int x=0;xm_FrameBuffer.Width;x+=m_FrameBuffer.Width) for(int y=0;ym_FrameBuffer.Height;y+=m_FrameBuffer.Height) Blt(rc,pDesBIB,x,y); } void CWispDIB::Destroy() { SafeDelete(m_FrameBuffer.Buffer); SafeDelete(m_Pal); if(m_bAutoDelete) delete this; } CWispDIBList::CWispDIBList() { m_DIBList = NULL; m_RefCount = 0; } CWispDIBList::~CWispDIBList() { Destroy(); } bool CWispDIBList::Load(PCSTR FileName,int TileWidth,int TileHeight,int Count) { int n; WISP_RECT Rect; CWispDIB WholeDIB; if(WholeDIB.Load(FileName)==false) return false; if(Count == 0) Count = (WholeDIB.m_FrameBuffer.Height*WholeDIB.m_FrameBuffer.Width) / (TileWidth * TileHeight); m_DIBList=new CWispDIB[Count]; n=0; for(int y=0;ym_PFSFileIO); if(gpCurWisp->m_PFSFileIO.GetFileAttr(FileName) & FIO_FA_COMPRESS) { int Size = (int)gpCurWisp->m_PFSFileIO.GetFileSize(FileName); if(Size<=0) return false; if(DIBFile.Create(Size)==false) return false; gpCurWisp->m_PFSFileIO.ReadFromFile(FileName,DIBFile.m_Buffer,Size); } else { if(DIBFile.Open(FileName)==false) return false; } DIBFile.ReadFile(&IconDir,sizeof(IconDir)); if(IconDir.idType!=1||IconDir.idReserved!=0) { DIBFile.Close(); return false; } m_Count = IconDir.idCount; m_DIBList = new CWispDIB[m_Count]; HeadOffset = sizeof(IconDir); for(int n=0;nbiBitCount+7 ) / 8; Delta=ALIGN_SIZE(m_DIBList[n].m_FrameBuffer.Width*BytesPixel,4); if(IconDirEntry.wBitCount==8) {//256 color pColor = (COLORREF*)(pIcon+sizeof(BITMAP_INFO_HEADER)); pBits = pIcon+sizeof(BITMAP_INFO_HEADER)+sizeof(COLORREF)*256+Delta*m_DIBList[n].m_FrameBuffer.Height; m_DIBList[n].m_Pal = new COLORREF[256]; for(int nClr=0;nClr<256;nClr++) m_DIBList[n].m_Pal[nClr]=pColor[nClr]; Off=0; if(gpCurWisp->m_FrameBuffer.Bpp==8) {//screen is 256 color for(int y=0;y=8bpp) BYTE bReserved; // Reserved WORD wPlanes; // Color Planes WORD wBitCount; // Bits per pixel DWORD dwBytesInRes; // how many bytes in this resource? DWORD dwImageOffset; // where in the file is this image }; class CWispFont; class CWispDIB { public: CWispDIB(); ~CWispDIB(); public: WISP_FRAME_BUFFER m_FrameBuffer; WISP_RECT m_Rect; UINT m_Type; COLORREF m_ColorKey; WISP_POINT m_HotPT; COLORREF* m_Pal; bool m_bAutoDelete; int m_RefCount; public: void InitParam(); bool Load(PCSTR FileName,int Index = -1); bool Save(PCSTR FileName); bool LoadIcon(PCSTR FileName,int Index = -1); bool Create(int Width,int Height,UINT Type=WISP_DIB_TK,WISP_POINT*pHotPT=NULL,COLORREF ColorKey=0); bool Resize(int Width,int Height); void Destroy(); void Blt(const WISP_RECT&SrcRect,CWispDIB*pDesBIB,int x,int y); void BltTiled(CWispDIB*pDesBIB); void SetType(UINT Type); void SetColorKey(COLORREF ColorKey); void SetHotPoint(int x,int y); void SetHotPoint(WISP_POINT*pHotPT); bool GetPixel(int x,int y,COLORREF*pClr); void Clear(COLORREF Color = 0); inline int Width()const { return m_Rect.cx;} inline int Height()const { return m_Rect.cy;} }; class CWispDIBList { public: CWispDIBList(); ~CWispDIBList(); public: CWispDIB*m_DIBList; int m_RefCount; int m_Count; public: bool Load(PCSTR FileName,int TileWidth,int TileHeight,int Count); bool LoadIcon(PCSTR FileName); void Destroy(); void SetType(UINT Type); void SetColorKey(COLORREF ColorKey); public: inline CWispDIB*GetDIB(int ID)const{return &m_DIBList[ID];} inline CWispDIB*operator[](int ID)const{return &m_DIBList[ID];} }; #endif ================================================ FILE: Project/Wisp/Source/WispDIBLib.cpp ================================================ #include "StdAfx.h" #include "WispDIBLib.h" #include "WispBase.h" CWispDIBLib::CWispDIBLib() { } CWispDIBLib::~CWispDIBLib() { } CWispDIB* CWispDIBLib::LoadDIB(PCSTR FileName,int Index) { CHAR szFile[MAX_FN_LEN],*pStr,*pSplit; TStrCpy(szFile,FileName); pStr = TStrRChr(szFile,'\\'); if(pStr==NULL) pStr = szFile; pSplit = TStrChr(pStr,'#'); if(pSplit) { int Width,Height; if(sscanf(pSplit,"#%d#%d:%d",&Width,&Height,&Index)!=3) return false; *pSplit=0; return LoadDIBList(szFile,Width,Height,0,WISP_TK)->GetDIB(Index); } pSplit = TStrRChr(pStr,':'); if(pSplit) { *pSplit=0; pSplit++; if(USDecStrToNum(pSplit,&Index)==false) return false; } CWispDIBMap::IT Iter=m_DIBMap.Find(FileName); if(Iter!=m_DIBMap.End()) { Iter->m_RefCount++; return &(*Iter); } Iter = m_DIBMap.InsertUnique(FileName); if(Iter->Load(szFile,Index)==false) { m_DIBMap.Remove(Iter); return NULL; } Iter->m_RefCount++; return &(*Iter); } CWispDIB* CWispDIBLib::LoadDIB(PCSTR FileName,int Index,COLORREF ColorKey) { CWispDIB*pDIB = LoadDIB(FileName,Index); if(pDIB==NULL) return NULL; pDIB->SetColorKey(ColorKey); return pDIB; } CWispDIBList*CWispDIBLib::LoadDIBList(PCSTR FileName,int TileWidth,int TileHeight,int Count) { CWispDIBListMap::IT Iter=m_DIBListMap.Find(FileName); if(Iter!=m_DIBListMap.End()) { Iter->m_RefCount++; return &(*Iter); } Iter = m_DIBListMap.InsertUnique(FileName); if(Iter->Load(FileName,TileWidth,TileHeight,Count)==false) { m_DIBListMap.Remove(Iter); return NULL; } Iter->m_RefCount++; return &(*Iter); } CWispDIBList*CWispDIBLib::LoadDIBList(PCSTR FileName,int TileWidth,int TileHeight,int Count,COLORREF ColorKey) { CWispDIBList*pDIBList = LoadDIBList(FileName,TileWidth,TileHeight,Count); if(pDIBList==NULL) return NULL; pDIBList->SetColorKey(ColorKey); return pDIBList; } CWispDIBList*CWispDIBLib::LoadIconDIBList(PCSTR FileName) { CWispDIBListMap::IT Iter=m_DIBListMap.Find(FileName); if(Iter!=m_DIBListMap.End()) { Iter->m_RefCount++; return &(*Iter); } Iter = m_DIBListMap.InsertUnique(FileName); if(Iter->LoadIcon(FileName)==false) { m_DIBListMap.Remove(Iter); return NULL; } Iter->m_RefCount++; return &(*Iter); } void CWispDIBLib::ReleaseDIB(PCSTR FileName) { CWispDIBMap::IT Iter=m_DIBMap.Find(FileName); if(Iter==m_DIBMap.End()) return; Iter->m_RefCount--; if(Iter->m_RefCount<=0) m_DIBMap.Remove(Iter); } void CWispDIBLib::DestroyDIBList(PCSTR FileName) { CWispDIBListMap::IT Iter=m_DIBListMap.Find(FileName); if(Iter==m_DIBListMap.End()) return; Iter->m_RefCount--; if(Iter->m_RefCount<=0) m_DIBListMap.Remove(Iter); } void CWispDIBLib::ReleaseAll() { m_DIBMap.Clear(); m_DIBListMap.Clear(); } ================================================ FILE: Project/Wisp/Source/WispDIBLib.h ================================================ #ifndef _WISP_DIB_LIB_H_ #define _WISP_DIB_LIB_H_ #include "WispDIB.h" typedef TMap CWispDIBMap; typedef TMap CWispDIBListMap; class CWispDIBLib { CWispDIBMap m_DIBMap; CWispDIBListMap m_DIBListMap; public: CWispDIBLib(); ~CWispDIBLib(); public: CWispDIB* LoadDIB(PCSTR FileName,int Index = -1); CWispDIB* LoadDIB(PCSTR FileName,int Index,COLORREF ColorKey); CWispDIBList* LoadDIBList(PCSTR FileName,int TileWidth,int TileHeight,int Count); CWispDIBList* LoadDIBList(PCSTR FileName,int TileWidth,int TileHeight,int Count,COLORREF ColorKey); CWispDIBList* LoadIconDIBList(PCSTR FileName); void ReleaseDIB(PCSTR FileName); void DestroyDIBList(PCSTR FileName); void ReleaseAll(); }; #endif ================================================ FILE: Project/Wisp/Source/WispDefine.h ================================================ #ifndef _WISP_DEFINE_H_ #define _WISP_DEFINE_H_ //#define WISP_TIMER_SIM_KEY_REPEAT #ifndef WISP_ANSI_CHAR #define WISP_STR(s) L##s typedef WCHAR WISP_CHAR; #else #define WISP_STR(s) s typedef CHAR WISP_CHAR; #endif typedef WISP_CHAR* WISP_PSTR; typedef const WISP_CHAR* WISP_PCSTR; typedef DWORD WISP_COLOR_CHAR; typedef TString CWispString; typedef TString CWispColorString; ///////////////////////////////////////////////////////////////////////////////// //ɫ ///////////////////////////////////////////////////////////////////////////////// #undef WISP_RGB #define WISP_RGB(r,g,b) ((COLORREF)(((BYTE)(b)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(r))<<16))) #define WISP_RGB_B(c) ((BYTE)(c)) #define WISP_RGB_G(c) ((BYTE)((c)>>8 )) #define WISP_RGB_R(c) ((BYTE)((c)>>16)) #define WIN_RGB_TO_WISP(c) WISP_RGB(WISP_RGB_B(c),WISP_RGB_G(c),WISP_RGB_R(c)) // #define GRAY_CHG_RGB(r,g,b,s,n) WISP_RGB((r)+3*(s)*(n),(g)+5*(s)*(n),(b)+(s)*(n)) #define GRAY_CHG(c,s,n) GRAY_CHG_RGB(WISP_RGB_R(c),WISP_RGB_G(c),WISP_RGB_B(c),s,n) #define GRAY_DEEP(c) (WISP_RGB_B(c)*3+WISP_RGB_G(c)*5+WISP_RGB_B(c)) //͸ #define ALPHA_CHG_RGB(sr,sg,sb,dr,dg,db,a) WISP_RGB((sr*a+(255-a)*dr)/255,(sg*a+(255-a)*dg)/255,(sb*a+(255-a)*db)/255) #define ALPHA_CHG(sc,dc,a) ALPHA_CHG_RGB(WISP_RGB_R(sc),WISP_RGB_G(sc),WISP_RGB_B(sc),WISP_RGB_R(dc),WISP_RGB_G(dc),WISP_RGB_B(dc),(a)) ////////////////////////////////////////////////// //ɫ ////////////////////////////////////////////////// /////////////////////////////////////////////////// //Lock /////////////////////////////////////////////////// #define WISP_VK_LOCK_COUNT 3 #define WISP_VK_CAPS_LOCK 0 #define WISP_VK_NUM_LOCK 1 #define WISP_VK_SCROLL_LOCK 2 /////////////////////////////////////////////////// // /////////////////////////////////////////////////// #define WISP_VK_COUNT 0x100 #define WISP_VK_NULL 0x00 #define WISP_VK_LBUTTON 0x01 #define WISP_VK_RBUTTON 0x02 #define WISP_VK_CANCEL 0x03 #define WISP_VK_MBUTTON 0x04 #define WISP_VK_XBUTTON1 0x05 #define WISP_VK_XBUTTON2 0x06 #define WISP_VK_KEYBOARD_START 0x07 #define WISP_VK_BACK 0x08 #define WISP_VK_TAB 0x09 #define WISP_VK_0X0A 0x0A #define WISP_VK_0X0B 0x0B #define WISP_VK_CLEAR 0x0C #define WISP_VK_RETURN 0x0D #define WISP_VK_0X0E 0x0E #define WISP_VK_0X0F 0x0F #define WISP_VK_SHIFT 0x10 #define WISP_VK_CONTROL 0x11 #define WISP_VK_ALT 0x12 #define WISP_VK_PAUSE 0x13 #define WISP_VK_CAPITAL 0x14 #define WISP_VK_0X15 0x15 #define WISP_VK_0X16 0x16 #define WISP_VK_0X17 0x17 #define WISP_VK_0X18 0x18 #define WISP_VK_0X19 0x19 #define WISP_VK_0X1A 0x1A #define WISP_VK_ESCAPE 0x1B #define WISP_VK_CONVERT 0x1C #define WISP_VK_NONCONVERT 0x1D #define WISP_VK_ACCEPT 0x1E #define WISP_VK_MODECHANGE 0x1F #define WISP_VK_SPACE 0x20 #define WISP_VK_PAGE_UP 0x21 #define WISP_VK_PAGE_DOWN 0x22 #define WISP_VK_END 0x23 #define WISP_VK_HOME 0x24 #define WISP_VK_LEFT 0x25 #define WISP_VK_UP 0x26 #define WISP_VK_RIGHT 0x27 #define WISP_VK_DOWN 0x28 #define WISP_VK_SELECT 0x29 #define WISP_VK_PRINT 0x2A #define WISP_VK_EXECUTE 0x2B #define WISP_VK_SNAPSHOT 0x2C #define WISP_VK_INSERT 0x2D #define WISP_VK_DELETE 0x2E #define WISP_VK_HELP 0x2F #define WISP_VK_0 0x30 #define WISP_VK_1 0x31 #define WISP_VK_2 0x32 #define WISP_VK_3 0x33 #define WISP_VK_4 0x34 #define WISP_VK_5 0x35 #define WISP_VK_6 0x36 #define WISP_VK_7 0x37 #define WISP_VK_8 0x38 #define WISP_VK_9 0x39 #define WISP_VK_0X3A 0x3A #define WISP_VK_0X3B 0x3B #define WISP_VK_0X3C 0x3C #define WISP_VK_0X3D 0x3D #define WISP_VK_0X3E 0x3E #define WISP_VK_0X3F 0x3F #define WISP_VK_0X40 0x40 #define WISP_VK_A 0x41 #define WISP_VK_B 0x42 #define WISP_VK_C 0x43 #define WISP_VK_D 0x44 #define WISP_VK_E 0x45 #define WISP_VK_F 0x46 #define WISP_VK_G 0x47 #define WISP_VK_H 0x48 #define WISP_VK_I 0x49 #define WISP_VK_J 0x4A #define WISP_VK_K 0x4B #define WISP_VK_L 0x4C #define WISP_VK_M 0x4D #define WISP_VK_N 0x4E #define WISP_VK_O 0x4F #define WISP_VK_P 0x50 #define WISP_VK_Q 0x51 #define WISP_VK_R 0x52 #define WISP_VK_S 0x53 #define WISP_VK_T 0x54 #define WISP_VK_U 0x55 #define WISP_VK_V 0x56 #define WISP_VK_W 0x57 #define WISP_VK_X 0x58 #define WISP_VK_Y 0x59 #define WISP_VK_Z 0x5A #define WISP_VK_LWIN 0x5B #define WISP_VK_RWIN 0x5C #define WISP_VK_APPS 0x5D #define WISP_VK_0X5E 0x5E #define WISP_VK_SLEEP 0x5F #define WISP_VK_NUMPAD0 0x60 #define WISP_VK_NUMPAD1 0x61 #define WISP_VK_NUMPAD2 0x62 #define WISP_VK_NUMPAD3 0x63 #define WISP_VK_NUMPAD4 0x64 #define WISP_VK_NUMPAD5 0x65 #define WISP_VK_NUMPAD6 0x66 #define WISP_VK_NUMPAD7 0x67 #define WISP_VK_NUMPAD8 0x68 #define WISP_VK_NUMPAD9 0x69 #define WISP_VK_MULTIPLY 0x6A #define WISP_VK_ADD 0x6B #define WISP_VK_SEPARATOR 0x6C #define WISP_VK_SUBTRACT 0x6D #define WISP_VK_DECIMAL 0x6E #define WISP_VK_DIVIDE 0x6F #define WISP_VK_F1 0x70 #define WISP_VK_F2 0x71 #define WISP_VK_F3 0x72 #define WISP_VK_F4 0x73 #define WISP_VK_F5 0x74 #define WISP_VK_F6 0x75 #define WISP_VK_F7 0x76 #define WISP_VK_F8 0x77 #define WISP_VK_F9 0x78 #define WISP_VK_F10 0x79 #define WISP_VK_F11 0x7A #define WISP_VK_F12 0x7B #define WISP_VK_F13 0x7C #define WISP_VK_F14 0x7D #define WISP_VK_F15 0x7E #define WISP_VK_F16 0x7F #define WISP_VK_F17 0x80 #define WISP_VK_F18 0x81 #define WISP_VK_F19 0x82 #define WISP_VK_F20 0x83 #define WISP_VK_F21 0x84 #define WISP_VK_F22 0x85 #define WISP_VK_F23 0x86 #define WISP_VK_F24 0x87 #define WISP_VK_0X88 0x88 #define WISP_VK_0X89 0x89 #define WISP_VK_0X8A 0x8A #define WISP_VK_0X8B 0x8B #define WISP_VK_0X8C 0x8C #define WISP_VK_0X8D 0x8D #define WISP_VK_0X8E 0x8E #define WISP_VK_0X8F 0x8F #define WISP_VK_NUMLOCK 0x90 #define WISP_VK_SCROLL 0x91 #define WISP_VK_0X92 0x92 #define WISP_VK_0X93 0x93 #define WISP_VK_0X94 0x94 #define WISP_VK_0X95 0x95 #define WISP_VK_0X96 0x96 #define WISP_VK_0X97 0x97 #define WISP_VK_0X98 0x98 #define WISP_VK_0X99 0x99 #define WISP_VK_0X9A 0x9A #define WISP_VK_0X9B 0x9B #define WISP_VK_0X9C 0x9C #define WISP_VK_0X9D 0x9D #define WISP_VK_0X9E 0x9E #define WISP_VK_0X9F 0x9F #define WISP_VK_LSHIFT 0xA0 #define WISP_VK_RSHIFT 0xA1 #define WISP_VK_LCONTROL 0xA2 #define WISP_VK_RCONTROL 0xA3 #define WISP_VK_LALT 0xA4 #define WISP_VK_RALT 0xA5 #define WISP_VK_BROWSER_BACK 0xA6 #define WISP_VK_BROWSER_FORWARD 0xA7 #define WISP_VK_BROWSER_REFRESH 0xA8 #define WISP_VK_BROWSER_STOP 0xA9 #define WISP_VK_BROWSER_SEARCH 0xAA #define WISP_VK_BROWSER_FAVORITES 0xAB #define WISP_VK_BROWSER_HOME 0xAC #define WISP_VK_VOLUME_MUTE 0xAD #define WISP_VK_VOLUME_DOWN 0xAE #define WISP_VK_VOLUME_UP 0xAF #define WISP_VK_MEDIA_NEXT_TRACK 0xB0 #define WISP_VK_MEDIA_PREV_TRACK 0xB1 #define WISP_VK_MEDIA_STOP 0xB2 #define WISP_VK_MEDIA_PLAY_PAUSE 0xB3 #define WISP_VK_LAUNCH_MAIL 0xB4 #define WISP_VK_LAUNCH_MEDIA_SELECT 0xB5 #define WISP_VK_LAUNCH_APP1 0xB6 #define WISP_VK_LAUNCH_APP2 0xB7 #define WISP_VK_0XB8 0xB8 #define WISP_VK_0XB9 0xB9 #define WISP_VK_SEMI 0xBA // ';:' for US #define WISP_VK_OEM_PLUS 0xBB // '+' any country #define WISP_VK_OEM_COMMA 0xBC // ',' any country #define WISP_VK_OEM_MINUS 0xBD // '-' any country #define WISP_VK_OEM_PERIOD 0xBE // '.' any country #define WISP_VK_OEM_2 0xBF // '/?' for US #define WISP_VK_OEM_3 0xC0 // '`~' for US #define WISP_VK_0XC1 0xC1 #define WISP_VK_0XC2 0xC2 #define WISP_VK_0XC3 0xC3 #define WISP_VK_0XC4 0xC4 #define WISP_VK_0XC5 0xC5 #define WISP_VK_0XC6 0xC6 #define WISP_VK_0XC7 0xC7 #define WISP_VK_0XC8 0xC8 #define WISP_VK_0XC9 0xC9 #define WISP_VK_0XCA 0xCA #define WISP_VK_0XCB 0xCB #define WISP_VK_0XCC 0xCC #define WISP_VK_0XCD 0xCD #define WISP_VK_0XCE 0xCE #define WISP_VK_0XCF 0xCF #define WISP_VK_0XD0 0xD0 #define WISP_VK_0XD1 0xD1 #define WISP_VK_0XD2 0xD2 #define WISP_VK_0XD3 0xD3 #define WISP_VK_0XD4 0xD4 #define WISP_VK_0XD5 0xD5 #define WISP_VK_0XD6 0xD6 #define WISP_VK_0XD7 0xD7 #define WISP_VK_0XD8 0xD8 #define WISP_VK_0XD9 0xD9 #define WISP_VK_0XDA 0xDA #define WISP_VK_LSQUARE_BRACKET 0xDB // '[{' for US #define WISP_VK_OEM_5 0xDC // '\|' for US #define WISP_VK_RSQUARE_BRACKET 0xDD // ']}' for US #define WISP_VK_QUOT 0xDE // ''"' for US #define WISP_VK_OEM_8 0xDF #define WISP_VK_0XE0 0xE0 #define WISP_VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd #define WISP_VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd. #define WISP_VK_ICO_HELP 0xE3 // Help key on ICO #define WISP_VK_ICO_00 0xE4 // 00 key on ICO #define WISP_VK_PROCESSKEY 0xE5 #define WISP_VK_ICO_CLEAR 0xE6 #define WISP_VK_PACKET 0xE7 #define WISP_VK_OEM_RESET 0xE9 #define WISP_VK_OEM_JUMP 0xEA #define WISP_VK_OEM_PA1 0xEB #define WISP_VK_OEM_PA2 0xEC #define WISP_VK_OEM_PA3 0xED #define WISP_VK_OEM_WSCTRL 0xEE #define WISP_VK_OEM_CUSEL 0xEF #define WISP_VK_OEM_ATTN 0xF0 #define WISP_VK_OEM_FINISH 0xF1 #define WISP_WISP_VK_OEM_COPY 0xF2 #define WISP_VK_OEM_AUTO 0xF3 #define WISP_VK_OEM_ENLW 0xF4 #define WISP_VK_OEM_BACKTAB 0xF5 #define WISP_VK_ATTN 0xF6 #define WISP_VK_CRSEL 0xF7 #define WISP_VK_EXSEL 0xF8 #define WISP_VK_EREOF 0xF9 #define WISP_VK_PLAY 0xFA #define WISP_VK_ZOOM 0xFB #define WISP_VK_NONAME 0xFC #define WISP_VK_PA1 0xFD #define WISP_VK_VK_OEM_CLEAR 0xFE #define WISP_VK_OTHER 0xFF #define WISP_VK_MAX_ID 0x100 enum WISP_SM {//ϵͳߴ WISP_SM_CAPTION_CY=0, WISP_SM_BORDER_SIZE, WISP_SM_THIN_BORDER_SIZE, WISP_SM_SCREEN_CX, WISP_SM_SCREEN_CY, WISP_SM_CAPTION_BT_SIZE, WISP_SM_SCROLL_BAR_SIZE, WISP_SM_FONT_FRAME_HEIGHT, WISP_SM_RESIZE_SPACE, WISP_SM_COUNT }; #define WISP_COLOR_WHITE 0x00FFFFFF #define WISP_COLOR_BLACK 0x00000000 enum WISP_MOUSE_EVENT { WISP_MOUSE_LEAVE=0, WISP_MOUSE_ENTER, WISP_MOUSE_MOVE, WISP_MOUSE_KEY, WISP_MOUSE_EVENT_COUNT }; enum WISP_DIBLIST_ID { WISP_DIBLIST_MIN = 0, WISP_DIBLIST_MAX, WISP_DIBLIST_NORMAL, WISP_DIBLIST_CLOSE, WISP_DIBLIST_HORZ_DEC, WISP_DIBLIST_HORZ_INC, WISP_DIBLIST_VERT_DEC, WISP_DIBLIST_VERT_INC, WISP_DIBLIST_COUNT }; enum WISP_DIB_TYPE { WISP_DI_CARET=0, WISP_DI_CURSOR, WISP_DI_RESIZE, WISP_DI_COUNT }; //ϵͳȱʡӴID //0x80000000Ϊϵͳ崰ID //0x40000000Ϊϵͳ崰ID #define WISP_ID_SELF 0xFFFFFFFF #define WISP_ID_NULL 0x00000000 #define WISP_ID_USER_START 0x00000001 #define WISP_ID_DEVELOP_START 0x40000000 #define WISP_ID_SYS_START 0x80000000 enum { WISP_ID_TOP_MOST_ROOT = WISP_ID_SYS_START, WISP_ID_STATIC_STR, WISP_ID_STATIC_DIB, WISP_ID_STATIC_GROUP, WISP_ID_MAIN_FRAME, WISP_ID_MAIN_MENU, WISP_ID_MAIN_TAB, WISP_ID_MAIN_TOOLBAR, WISP_ID_SOFT_KB, WISP_ID_HELP_TIP, WISP_ID_SUB_MENU, WISP_ID_CARET_BLINK_TIMER, WISP_ID_CLOSE = 0x80001000, WISP_ID_MAX, WISP_ID_MIN, WISP_ID_VPAGE_UP, WISP_ID_VPAGE_DOWN, WISP_ID_VSLIDE, WISP_ID_VSPIN_DEC, WISP_ID_VSPIN_INC, WISP_ID_HPAGE_UP, WISP_ID_HPAGE_DOWN, WISP_ID_HSLIDE, WISP_ID_HSPIN_DEC, WISP_ID_HSPIN_INC, WISP_ID_FORM_CLOSE_ID_START = 0x80002000, WISP_ID_OK, WISP_ID_CANCEL, WISP_ID_YES, WISP_ID_NO, WISP_ID_RETRY, WISP_ID_CONTINUE, WISP_ID_IGNORE, WISP_ID_ABORT, WISP_ID_TRY, WISP_ID_FORM_CLOSE_ID_END, WISP_ID_COPY, WISP_ID_CUT, WISP_ID_PASTE, }; /////////////////////////////////////////// //CtrlType enum WISP_CTRL_TYPE { WISP_CTRL_NULL = 0, WISP_CTRL_SYS_TYPE, WISP_CTRL_BASE_WND_BEGIN, //̴CWispBaseWnd WISP_CTRL_STATIC_STRING, WISP_CTRL_STATIC_DIB, WISP_CTRL_STATIC_GROUP, WISP_CTRL_STATIC_URL, WISP_CTRL_BUTTON, WISP_CTRL_BASE_WND, WISP_CTRL_WND_BEGIN, //̴CWispWnd WISP_CTRL_EDIT, WISP_CTRL_LIST, WISP_CTRL_CHECK_BOX, WISP_CTRL_TAB, WISP_CTRL_MENU, WISP_CTRL_RADIO_BOX, WISP_CTRL_MSG_BOX, WISP_CTRL_PROGRESS, WISP_CTRL_SPLIT_WND, WISP_CTRL_TOOL_BAR, WISP_CTRL_FORM, WISP_CTRL_HEX_WND, WISP_CTRL_COMBO_BOX, WISP_CTRL_TERMINAL_WND, WISP_CTRL_CONSOLE_WND, WISP_CTRL_TIP_WND, WISP_CTRL_DIB_DC_WND, WISP_CTRL_WND, }; //״̬ #define WISP_WST_INVAILD 0xFFFFFFFF #define WISP_WST_NORMAL 0x00000000 #define WISP_WST_MOVING 0x00000001 #define WISP_WST_SIZING 0x00000002 #define WISP_WST_MAX 0x00000004 #define WISP_WST_MIN 0x00000008 enum {//ָ WISP_CT_ARROW, WISP_CT_RESIZE_VERT, WISP_CT_RESIZE_HORZ, WISP_CT_DRAG_ARROW, WISP_CT_RESIZE_LEFT_LEAN, WISP_CT_RESIZE_RIGHT_LEAN, WISP_CT_USER_DIB_TYPE, WISP_CT_USER_DATA_TYPE }; enum WISP_SB_TYPE { WISP_SB_START=0, WISP_SB_VERT=0, WISP_SB_HORZ, WISP_SB_COUNT }; #define WISP_FB_WINDOW 0x00000000 #define WISP_FB_FULL 0x00000001 #define WISP_FB_VIDEO_VIRTUAL_BUF 0x00000002 class CWispDrawHAL; struct WISP_FRAME_BUFFER { int Width; int Height; int Bpp; int PixelFormat; UINT Flag; void* Buffer; int BufferSize; int LineDistance; CWispDrawHAL*pDrawHAL; }; enum PIXEL_FORMAT { COLORREF_PF_DEFAULT=0, COLORREF_PF_PAL, COLORREF_PF_555, COLORREF_PF_565, COLORREF_PF_888, COLORREF_PF_COUNT }; struct WISP_RECT { int x; int y; int cx; int cy; }; struct WISP_SIZE { int cx; int cy; }; struct WISP_POINT { int x; int y; }; class CWispDIB; struct WISP_WND_CARET { int x; int y; int BlinkTime; CWispDIB* pDIB; bool bEnable; }; #define WISP_SS_NORMAL 0x00000000 #define WISP_SS_AUTOHIDE 0x00000001 #define WISP_SS_DRAGED_CHANGING 0x00000002 #ifdef WISP_SCROLL_LONGLONG typedef LONGLONG WISP_SCROLL_LONG; #else typedef LONG WISP_SCROLL_LONG; #endif struct WISP_SCROLL_BAR { WISP_SCROLL_LONG MinPos; WISP_SCROLL_LONG MaxPos; WISP_SCROLL_LONG CurPos; WISP_SCROLL_LONG Page; WISP_SCROLL_LONG AdjustPage; WISP_SCROLL_LONG StartPos; UINT State; UINT Style; UINT BTSpinIncState; UINT BTSpinDecState; WISP_RECT ScrollRect; WISP_RECT SpaceRect; WISP_RECT SlideRect; WISP_RECT DecBTRect; WISP_RECT IncBTRect; int BarSize; int HotPos; bool bHide; }; class CWispBaseWnd; struct WISP_TIMER_KEY { CWispBaseWnd*hWnd; UINT ID; bool operator<(const WISP_TIMER_KEY&Key)const { if(PTR_TO_NUM(hWnd)PTR_TO_NUM(Key.hWnd)) return false; return ID=0 && y>=0 && xWidth && yHeight); Value1 = GET_BYTE(pFB->Buffer,y*pFB->LineDistance+x/2); if(x%2) Value1 |= (Value&0xf); else Value1 |= (Value<<4); PUT_BYTE(pFB->Buffer,y*pFB->LineDistance+x/2,Value1); } void CWispDraw4Bit::DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { BYTE Value1; CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); void*pPixelBuf=RT_PVOID(pFB->Buffer,y*pFB->LineDistance+x/2); BYTE Value = _GET_BYTE(pPixelBuf); Value1 = (BYTE)color; if(x%2) { Value1&=0xf; Value^=Value1; } else { Value1<<=4; Value^=Value1; } _PUT_BYTE(pPixelBuf,Value); } void CWispDraw4Bit::SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && x + Count<= pFB->Width && y < pFB->Height); BYTE*StartBuffer = RT_PBYTE(pFB->Buffer,y*pFB->LineDistance+x/2); BYTE Value; if(x%2) { Value=_GET_BYTE(StartBuffer); Value |= (BYTE)color & 0xf; _PUT_BYTE(StartBuffer,Value); Count--; StartBuffer++; } Value = (BYTE)color; Value = (Value << 4) | (Value&0xf); while(Count) { _PUT_BYTE(StartBuffer,Value); StartBuffer++; Count--; if(!Count)break; Count--; } } COLORREF CWispDraw4Bit::GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y) { CODE_ASSERT(x < pFB->Width && y < pFB->Height); BYTE Value=GET_BYTE(pFB->Buffer,y*pFB->LineDistance+x/2); Value = x%2?(Value&0xf):(Value>>4); return (COLORREF)Value; } void CWispDraw4Bit::Copy32BitPixelTo(void* pDes,void* pSrc,int Count) { BYTE Value; for(int n = 0,j=0; n < Count;n++,j++) { Value = (BYTE)GET_DWORD(pSrc,n*4); Value <<= 4; n++; if(n>4); n++; if(n=0 && y>=0 && xWidth && yHeight); PUT_BYTE(pFB->Buffer,y*pFB->LineDistance+x,(BYTE)color); } void CWispDraw8Bit::DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); void*pPixelBuf=RT_PVOID(pFB->Buffer,y*pFB->LineDistance+x); _PUT_BYTE(pPixelBuf,_GET_BYTE(pPixelBuf)^(BYTE)color); } void CWispDraw8Bit::SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && x + Count<= pFB->Width && y < pFB->Height); BYTE*StartBuffer = RT_PBYTE(pFB->Buffer,y*pFB->LineDistance+x); while(Count) { _PUT_BYTE(StartBuffer,(BYTE)color); StartBuffer++; Count--; } } COLORREF CWispDraw8Bit::GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y) { CODE_ASSERT(x < pFB->Width && y < pFB->Height); return GET_BYTE(pFB->Buffer,y*pFB->LineDistance+x); } void CWispDraw8Bit::Copy32BitPixelTo(void* pDes,void* pSrc,int Count) { for(int n = 0; n < Count;n++) PUT_BYTE(pDes,n,(BYTE)GET_DWORD(pSrc,n*4)); } void CWispDraw8Bit::CopyTo32BitPixel(void* pDes,void* pSrc,int Count) { for(int n =0;n>3); WordColor|= ((color & 0xFF00)>>10)<<5; WordColor|= ((color & 0xFF0000)>>19)<<11; PUT_WORD(pFB->Buffer,y*pFB->LineDistance+x*2,WordColor); } void CWispDraw16Bit::DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); void*pPixelBuf=RT_PVOID(pFB->Buffer,y*pFB->LineDistance+x*2); _PUT_WORD(pPixelBuf,_GET_WORD(pPixelBuf) ^ (WORD)color); } void CWispDraw16Bit::SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && x + Count<= pFB->Width && y < pFB->Height); WORD WordColor,*StartBuffer; WordColor = (WORD)((color & 0xFF)>>3); WordColor|= ((color & 0xFF00)>>10)<<5; WordColor|= ((color & 0xFF0000)>>19)<<11; StartBuffer = RT_PWORD(pFB->Buffer,y*pFB->LineDistance+(x<<1)); while(Count) { _PUT_WORD(StartBuffer,WordColor); StartBuffer++; Count--; } } COLORREF CWispDraw16Bit::GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); WORD WordColor; COLORREF color; WordColor=GET_WORD(pFB->Buffer,y*pFB->LineDistance+x*2); color = WordColor&0x1F; color|= (WordColor&0x7E)<<3; color|= (WordColor&0xF8)<<11; return color; } void CWispDraw16Bit::Copy32BitPixelTo(void* pDes,void* pSrc,int Count) { COLORREF color; WORD WordColor; COLORREF*SrcBuf=(COLORREF*)pSrc; WORD*DesBuf=(WORD*)pDes; while(Count--) { color = *SrcBuf; WordColor = (WORD)((color & 0xFF)>>3); WordColor|= ((color & 0xFF00)>>10)<<5; WordColor|= ((color & 0xFF0000)>>19)<<11; *DesBuf=WordColor; SrcBuf++; DesBuf++; } } void CWispDraw16Bit::CopyTo32BitPixel(void* pDes,void* pSrc,int Count) { WORD WordColor; WORD*SrcBuf=(WORD*)pSrc; COLORREF*DesBuf=(COLORREF*)pDes; while(Count--) { WordColor = *SrcBuf; *DesBuf=((WordColor&0x1F)<<3) | ((WordColor&0x3E0)<<6) | ((WordColor&0x7C00)<<9); SrcBuf++; DesBuf++; } } void CWispDraw24Bit::DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { CODE_ASSERT(x < pFB->Width && y < pFB->Height); PUT_3BYTES(pFB->Buffer,y*pFB->LineDistance+x*3,color); } void CWispDraw24Bit::DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); void*pPixelBuf=RT_PVOID(pFB->Buffer,y*pFB->LineDistance+x*3); _PUT_3BYTES(pPixelBuf,_GET_3BYTES(pPixelBuf) ^ color); } void CWispDraw24Bit::SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color) { CODE_ASSERT(x>=0 && y>= 0 && x + Count<= pFB->Width && y < pFB->Height); BYTE*StartBuffer = RT_PBYTE(pFB->Buffer,y*pFB->LineDistance+x*3); while(Count) { _PUT_3BYTES(StartBuffer,color); StartBuffer+=3; Count--; } } COLORREF CWispDraw24Bit::GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); return GET_3BYTES(pFB->Buffer,y*pFB->LineDistance+x*3); } void CWispDraw24Bit::Copy32BitPixelTo(void* pDes,void* pSrc,int Count) { BYTE*SrcBuf=(BYTE*)pSrc; BYTE*DesBuf=(BYTE*)pDes; while(Count--) { *_RT_PWORD(DesBuf)=*_RT_PWORD(SrcBuf); DesBuf+=2; SrcBuf+=2; *_RT_PBYTE(DesBuf)=*_RT_PBYTE(SrcBuf); DesBuf++; SrcBuf+=2; } } void CWispDraw24Bit::CopyTo32BitPixel(void* pDes,void* pSrc,int Count) { BYTE*SrcBuf=(BYTE*)pSrc; BYTE*DesBuf=(BYTE*)pDes; while(Count--) { *_RT_PWORD(DesBuf)=*_RT_PWORD(SrcBuf); DesBuf+=2; SrcBuf+=2; *_RT_PBYTE(DesBuf)=*_RT_PBYTE(SrcBuf); DesBuf+=2; SrcBuf++; } } void CWispDraw32Bit::DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { CODE_ASSERT(x < pFB->Width && y < pFB->Height); PUT_DWORD(pFB->Buffer,y*pFB->LineDistance+x*4,color); } void CWispDraw32Bit::DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); void*pPixelBuf=RT_PVOID(pFB->Buffer,y*pFB->LineDistance+x*4); _PUT_DWORD(pPixelBuf,_GET_DWORD(pPixelBuf)^color); } void CWispDraw32Bit::SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color) { CODE_ASSERT(x>=0 && y>=0 && x + Count<= pFB->Width && y < pFB->Height); DWORD*StartBuffer = RT_PDWORD(pFB->Buffer,y*pFB->LineDistance+x*4); while(Count) { *StartBuffer=color; StartBuffer++; Count--; } } COLORREF CWispDraw32Bit::GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y) { CODE_ASSERT(x>=0 && y>=0 && xWidth && yHeight); return GET_DWORD(pFB->Buffer,y*pFB->LineDistance+x*4); } void CWispDraw32Bit::Copy32BitPixelTo(void* pDes,void* pSrc,int Count) { memcpy(pDes,pSrc,4*Count); } void CWispDraw32Bit::CopyTo32BitPixel(void* pDes,void* pSrc,int Count) { memcpy(pDes,pSrc,4*Count); } ================================================ FILE: Project/Wisp/Source/WispDrawHAL.h ================================================ #ifndef _WISP_DRAW_HAL_ #define _WISP_DRAW_HAL_ class CWispDrawHAL { public: virtual void DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color){} virtual void DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color){} virtual void SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color){} virtual COLORREF GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y){return 0;} virtual void Copy32BitPixelTo(void* pDes,void* pSrc,int Count){} virtual void CopyTo32BitPixel(void* pDes,void* pSrc,int Count){} }; class CWispDraw4Bit : public CWispDrawHAL { public: virtual void DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color); virtual COLORREF GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y); virtual void Copy32BitPixelTo(void* pDes,void* pSrc,int Count); virtual void CopyTo32BitPixel(void* pDes,void* pSrc,int Count); }; class CWispDraw8Bit : public CWispDrawHAL { public: virtual void DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color); virtual COLORREF GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y); virtual void Copy32BitPixelTo(void* pDes,void* pSrc,int Count); virtual void CopyTo32BitPixel(void* pDes,void* pSrc,int Count); }; class CWispDraw16Bit : public CWispDrawHAL { public: virtual void DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color); virtual COLORREF GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y); virtual void Copy32BitPixelTo(void* pDes,void* pSrc,int Count); virtual void CopyTo32BitPixel(void* pDes,void* pSrc,int Count); }; class CWispDraw24Bit : public CWispDrawHAL { public: virtual void DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color); virtual COLORREF GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y); virtual void Copy32BitPixelTo(void* pDes,void* pSrc,int Count); virtual void CopyTo32BitPixel(void* pDes,void* pSrc,int Count); }; class CWispDraw32Bit : public CWispDrawHAL { public: virtual void DrawPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void DrawXorPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN COLORREF color); virtual void SetHLinePixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y,IN int Count,IN COLORREF color); virtual COLORREF GetPixel(IN WISP_FRAME_BUFFER*pFB,IN int x,IN int y); virtual void Copy32BitPixelTo(void* pDes,void* pSrc,int Count); virtual void CopyTo32BitPixel(void* pDes,void* pSrc,int Count); }; #endif ================================================ FILE: Project/Wisp/Source/WispDrawObj.cpp ================================================ #include "StdAfx.h" #include "WispWnd.h" #include "WispDrawObj.h" #include "DIBData.h" #include "WispMenu.h" #include "WispList.h" CWispDrawObj::CWispDrawObj() { InitSystemColor(); } CWispDrawObj::~CWispDrawObj() { } void CWispDrawObj::InitSystemColor() { m_crSystem[SC_BLACK ] = WISP_RGB(0,0,0); m_crSystem[SC_WHITE ] = WISP_RGB(255,255,255); m_crSystem[SC_RED ] = WISP_RGB(192,0,0); m_crSystem[SC_LIGHT_RED ] = WISP_RGB(255,0,0); m_crSystem[SC_GREEN ] = WISP_RGB(0,192,0); m_crSystem[SC_LIGHT_GREEN ] = WISP_RGB(0,255,128); m_crSystem[SC_BLUE ] = WISP_RGB(0,0,192); m_crSystem[SC_LIGHT_BLUE ] = WISP_RGB(0,128,255); m_crSystem[SC_BROWN ] = WISP_RGB(128,64,64); m_crSystem[SC_LIGHT_BROWN ] = WISP_RGB(200,100,100); m_crSystem[SC_CYAN ] = WISP_RGB(0,192,192); m_crSystem[SC_LIGHT_CYAN ] = WISP_RGB(0,255,255); m_crSystem[SC_GRAY ] = WISP_RGB(128,128,128); m_crSystem[SC_LIGHT_GRAY ] = WISP_RGB(200,200,200); m_crSystem[SC_YELLOW ] = WISP_RGB(192,192,0); m_crSystem[SC_LIGHT_YELLOW ] = WISP_RGB(255,255,0); m_crSystem[SC_ORANGE_RED ] = WISP_RGB(128,64,0); m_crSystem[SC_LIGHT_ORANGE_RED] = WISP_RGB(255,128,0); m_crSystem[SC_DESKTOP_BG ] = WISP_RGB(0,0,0); m_crSystem[SC_DISABLE_BG ] = WISP_RGB(200,200,200); m_crSystem[SC_CLIENT_BG ] = WISP_RGB(236,233,216); m_crSystem[SC_CLIENT_TEXT ] = WISP_RGB(0,0,0); m_crSystem[SC_CAPTION_TEXT ] = WISP_RGB(255,255,255); m_crSystem[SC_CAPTION_BG ] = WISP_RGB(35,152,200); m_crSystem[SC_CAPTION_LIGHT_BG] = WISP_RGB(80,176,255); m_crSystem[SC_SELECT_BG ] = WISP_RGB(0,128,255); m_crSystem[SC_SCROLL_SLIDE_BG] = WISP_RGB(100,200,250); m_crSystem[SC_SCROLL_SLIDE_DARK_BG] = WISP_RGB(60,140,220); m_crSystem[SC_BORDER_BG ] = WISP_RGB(0,130,230); m_crSystem[SC_BRIGHT ] = WISP_RGB(220,220,220); m_crSystem[SC_SHADOW ] = WISP_RGB(85,85,85); m_crSystem[SC_SHADOW_LIGHT ] = WISP_RGB(170,170,170); m_crSystem[SC_SCROLL_BG ] = WISP_RGB(80,230,255); m_crSystem[SC_SCROLL_BT_BG ] = WISP_RGB(50,180,230); m_crSystem[SC_CURSOR ] = WISP_RGB(0,0,255); m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT ] = WISP_RGB(127,157,185); m_crSystem[SC_CTRL_NORMAL_BORDER_BOTTOMRIGHT] = WISP_RGB(127,157,185); m_crSystem[SC_CTRL_NORMAL_DARK_BORDER ] = WISP_RGB(28,81,128); m_crSystem[SC_CTRL_NORMAL_CLIENT_BG ] = WISP_RGB(255,255,255); m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG ] = WISP_RGB(243,243,239); m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG2 ] = WISP_RGB(226,225,218); m_crSystem[SC_CTRL_SELECTED_BG ] = WISP_RGB(160,160,160); m_crSystem[SC_CTRL_SELECTED_LIGHT_BG] = WISP_RGB(192,192,192); m_crSystem[SC_CTRL_HOVER_BG ] = WISP_RGB(248,179,48); m_crSystem[SC_CTRL_HOVER_LIGHT_BG ] = WISP_RGB(255,214,100); m_crSystem[SC_CTRL_SELECTED_TEXT ] = WISP_RGB(255,255,255); m_crSystem[SC_CTRL_NORMAL_TEXT ] = WISP_RGB(0,0,0); m_crSystem[SC_CTRL_HOVER_TEXT ] = WISP_RGB(0,0,128); m_crSystem[SC_CTRL_NORMAL_FOCUS ] = WISP_RGB(0,0,255); m_crSystem[SC_CTRL_HOVER_FOCUS ] = WISP_RGB(49,106,197); m_crSystem[SC_MENU_BG ] = WISP_RGB(180,200,228); m_crSystem[SC_MENU_LIGHT_BG ] = WISP_RGB(210,230,255); m_crSystem[SC_MENU_BORDER ] = WISP_RGB(138,134,122); m_crSystem[SC_STDICON_NORMAL_BORDER ] = WISP_RGB(80,176,255); m_crSystem[SC_STDICON_HOVER_BORDER ] = WISP_RGB(0,255,255); m_crSystem[SC_STDICON_DOWN_BORDER ] = WISP_RGB(255,255,255); m_crSystem[SC_STDICON_NORMAL_CHECKMARK ] = WISP_RGB(33,161,33); m_crSystem[SC_STDICON_NORMAL_PLUS ] = WISP_RGB(0,0,0); m_crSystem[SC_SCROLL_NORMAL_BUTTON ] = WISP_RGB(118,177,229); m_crSystem[SC_SCROLL_HOVER_BUTTON ] = WISP_RGB(180,214,241); m_crSystem[SC_SCROLL_DOWN_BUTTON ] = WISP_RGB(100,146,185); m_crSystem[SC_FRAME_NORMAL_BG ] = WISP_RGB(235,234,219); m_crSystem[SC_FRAME_NORMAL_LEFT ] = WISP_RGB(255,255,255); m_crSystem[SC_FRAME_NORMAL_RIGHT ] = WISP_RGB(199,197,178); m_crSystem[SC_FRAME_NORMAL_BOTTOM1 ] = WISP_RGB(226,222,205); m_crSystem[SC_FRAME_NORMAL_BOTTOM2 ] = WISP_RGB(214,210,194); m_crSystem[SC_FRAME_NORMAL_BOTTOM3 ] = WISP_RGB(203,199,184); m_crSystem[SC_FRAME_HOVER_BG ] = WISP_RGB(243,243,243); m_crSystem[SC_FRAME_HOVER_BOTTOM1 ] = WISP_RGB(248,169,0); m_crSystem[SC_FRAME_HOVER_BOTTOM2 ] = WISP_RGB(249,198,84); m_crSystem[SC_FRAME_HOVER_BOTTOM3 ] = WISP_RGB(248,179,31); m_crSystem[SC_GRADIENT_GREEN_1 ] = WISP_RGB(171,237,172); m_crSystem[SC_GRADIENT_GREEN_2 ] = WISP_RGB(149,233,150); m_crSystem[SC_GRADIENT_GREEN_3 ] = WISP_RGB(124,228,126); m_crSystem[SC_GRADIENT_GREEN_4 ] = WISP_RGB(102,223,104); m_crSystem[SC_GRADIENT_GREEN_5 ] = WISP_RGB(78,218,80); m_crSystem[SC_GRADIENT_GREEN_6 ] = WISP_RGB(53,213,56); m_crSystem[SC_GRADIENT_GREEN_7 ] = WISP_RGB(40,210,43); m_crSystem[SC_GRADIENT_YELLOW ] = WISP_RGB(200,130,0); m_crSystem[SC_GRADIENT_YELLOW_1 ] = WISP_RGB(229,151,0); m_crSystem[SC_GRADIENT_YELLOW_2 ] = WISP_RGB(248,179,48); m_crSystem[SC_GRADIENT_YELLOW_3 ] = WISP_RGB(253,216,137); m_crSystem[SC_GRADIENT_BULE_1 ] = WISP_RGB(61,149,255); m_crSystem[SC_GRADIENT_BULE_2 ] = WISP_RGB(43,144,255); m_crSystem[SC_GRADIENT_BULE_3 ] = WISP_RGB(0,85,234); m_crSystem[SC_GRADIENT_BULE_4 ] = WISP_RGB(0,70,224); m_crSystem[SC_GRADIENT_BULE_5 ] = WISP_RGB(1,67,207); m_crSystem[SC_GRADIENT_BULE_6 ] = WISP_RGB(0,61,220); m_crSystem[SC_GRADIENT_BULE_7 ] = WISP_RGB(0,29,160); m_crSystem[SC_GRADIENT_BULE_8 ] = WISP_RGB(0,19,140); m_crSystem[SC_RAV_1 ] = WISP_RGB(123,123,123); m_crSystem[SC_RAV_2 ] = WISP_RGB(224,232,254); m_crSystem[SC_RAV_3 ] = WISP_RGB(241,241,241); m_crSystem[SC_RAV_4 ] = WISP_RGB(231,235,255); m_crSystem[SC_RAV_5 ] = WISP_RGB(107,121,189); m_crSystem[SC_UNNAMED_1 ] = WISP_RGB(172,168,153); m_crSystem[SC_UNNAMED_2 ] = WISP_RGB(241,239,226); m_crSystem[SC_UNNAMED_3 ] = WISP_RGB(113,111,100); m_crSystem[SC_UNNAMED_4 ] = WISP_RGB(222,223,216); m_crSystem[SC_UNNAMED_5 ] = WISP_RGB(165,165,151); m_crSystem[SC_UNNAMED_6 ] = WISP_RGB(193,194,184); m_crSystem[SC_UNNAMED_7 ] = WISP_RGB(208,209,201); m_crSystem[SC_UNNAMED_8 ] = WISP_RGB(180,250,212); m_crSystem[SC_UNNAMED_9 ] = WISP_RGB(100,200,255); m_crSystem[SC_UNNAMED_10 ] = WISP_RGB(255,170,170); m_crSystem[SC_UNNAMED_11 ] = WISP_RGB(0,155,255); m_crSystem[SC_UNNAMED_12 ] = WISP_RGB(180,40,40); m_crSystem[SC_UNNAMED_13 ] = WISP_RGB(112,162,243); m_crSystem[SC_UNNAMED_14 ] = WISP_RGB(197,194,184); m_crSystem[SC_UNNAMED_15 ] = WISP_RGB(0,255,0); m_crSystem[SC_UNNAMED_16 ] = WISP_RGB(255,0,255); m_crSystem[SC_UNNAMED_17 ] = WISP_RGB(250,250,204); m_crSystem[SC_UNNAMED_18 ] = WISP_RGB(33,162,33); m_crSystem[SC_UNNAMED_19 ] = WISP_RGB(123,162,231); m_crSystem[SC_UNNAMED_20 ] = WISP_RGB(99,117,214); m_crSystem[SC_UNNAMED_21 ] = WISP_RGB(180,177,163); } bool CWispDrawObj::Init() { gpCurWisp->m_MouseSize.cx = gpCurWisp->m_MouseSize.cy = 16; return true; } void CWispDrawObj::Release() { } void CWispDrawObj::DrawBorder(CWispDC*pDC,WISP_RECT*pRect,int Size) { CWispRect rc(*pRect); if(Size>=1) { pDC->DrawRoundRect(&rc, m_crSystem[SC_BORDER_BG]); rc.DeflateRect(1, 1); } if(Size>=2) { pDC->DrawRect(&rc, m_crSystem[SC_BORDER_BG]); rc.DeflateRect(1, 1); } if(Size>=3) { Size -= 3; for(int i=0; iDrawRect(&rc, m_crSystem[SC_BORDER_BG]); rc.DeflateRect(1, 1); } } if(Size>=1) pDC->DrawRect(&rc, m_crSystem[SC_BORDER_BG]); } void CWispDrawObj::DrawCaption(CWispDC*pDC,WISP_RECT*pRect) { CWispRect rc(pRect); pDC->DrawFullRect(&rc, m_crSystem[SC_CAPTION_BG]); } void CWispDrawObj::DrawToolbarBK(CWispDC*pDC,WISP_RECT*pRect) { pDC->DrawFullRect(pRect,m_crSystem[SC_CAPTION_LIGHT_BG]); } void CWispDrawObj::DrawClient(CWispDC*pDC,WISP_RECT*pRect) { pDC->DrawFullRect(pRect, m_crSystem[SC_CLIENT_BG]); } void CWispDrawObj::DrawCtrlBorder(CWispDC* pDC, WISP_RECT* pRect, int nSize) { CWispRect rc(pRect); for(int i=0; iDraw3DRect(&rc, m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT], m_crSystem[SC_CTRL_NORMAL_BORDER_BOTTOMRIGHT]); rc.DeflateRect(1, 1); } pDC->DrawRect(&rc, m_crSystem[SC_CTRL_NORMAL_CLIENT_BG]); } void CWispDrawObj::DrawCtrlClient(CWispDC* pDC, WISP_RECT* pRect) { if(pDC->m_pWispWnd->m_Style&WISP_WS_DISABLED) pDC->DrawFullRect(pRect, m_crSystem[SC_DISABLE_BG]); else pDC->DrawFullRect(pRect, m_crSystem[SC_CTRL_NORMAL_CLIENT_BG]); } void CWispDrawObj::DrawCtrlFocusRect(CWispDC* pDC, WISP_RECT* pRect) { pDC->DrawDashRect(pRect, m_crSystem[SC_CTRL_NORMAL_FOCUS]); } void CWispDrawObj::DrawCtrlStaticEdge(CWispDC* pDC, WISP_RECT* pRect) { COLORREF rcTopLef=m_crSystem[SC_UNNAMED_1]; COLORREF rcBottomRight=m_crSystem[SC_WHITE]; pDC->DrawHLine(pRect->x,pRect->x+pRect->cx-2,pRect->y,rcTopLef); pDC->DrawHLine(pRect->x,pRect->x+pRect->cx-1,pRect->y+pRect->cy-1,rcBottomRight); pDC->DrawVLine(pRect->x,pRect->y,pRect->y+pRect->cy-2,rcTopLef); pDC->DrawVLine(pRect->x+pRect->cx-1,pRect->y,pRect->y+pRect->cy-1,rcBottomRight); } void CWispDrawObj::DrawCtrlClientEdge(CWispDC* pDC, WISP_RECT* pRect) { COLORREF rcTopLeft=m_crSystem[SC_UNNAMED_1]; COLORREF rcTopLeft1=m_crSystem[SC_UNNAMED_3]; COLORREF rcBottomRight=m_crSystem[SC_WHITE]; COLORREF rcBottomRight1=m_crSystem[SC_UNNAMED_2]; pDC->DrawHLine(pRect->x,pRect->x+pRect->cx-2,pRect->y,rcTopLeft); pDC->DrawHLine(pRect->x,pRect->x+pRect->cx-1,pRect->y+pRect->cy-1,rcBottomRight); pDC->DrawVLine(pRect->x,pRect->y,pRect->y+pRect->cy-2,rcTopLeft); pDC->DrawVLine(pRect->x+pRect->cx-1,pRect->y,pRect->y+pRect->cy-1,rcBottomRight); pDC->DrawHLine(pRect->x+1,pRect->x+pRect->cx-2-1,pRect->y+1,rcTopLeft1); pDC->DrawHLine(pRect->x+1,pRect->x+pRect->cx-1-1,pRect->y+pRect->cy-1-1,rcBottomRight1); pDC->DrawVLine(pRect->x+1,pRect->y+1,pRect->y+pRect->cy-2-1,rcTopLeft1); pDC->DrawVLine(pRect->x+pRect->cx-1-1,pRect->y+1,pRect->y+pRect->cy-1-1,rcBottomRight1); } void CWispDrawObj::DrawCtrlModalFrame(CWispDC* pDC, WISP_RECT* pRect) { COLORREF rcTopLeft=m_crSystem[SC_UNNAMED_2]; COLORREF rcTopLeft1=m_crSystem[SC_WHITE]; COLORREF rcTopLeft2=m_crSystem[SC_CLIENT_BG]; COLORREF rcBottomRight2=m_crSystem[SC_CLIENT_BG]; COLORREF rcBottomRight1=m_crSystem[SC_UNNAMED_1]; COLORREF rcBottomRight=m_crSystem[SC_UNNAMED_3]; pDC->DrawHLine(pRect->x,pRect->x+pRect->cx-2,pRect->y,rcTopLeft); pDC->DrawHLine(pRect->x,pRect->x+pRect->cx-1,pRect->y+pRect->cy-1,rcBottomRight); pDC->DrawVLine(pRect->x,pRect->y,pRect->y+pRect->cy-2,rcTopLeft); pDC->DrawVLine(pRect->x+pRect->cx-1,pRect->y,pRect->y+pRect->cy-1,rcBottomRight); pDC->DrawHLine(pRect->x+1,pRect->x+pRect->cx-2-1,pRect->y+1,rcTopLeft1); pDC->DrawHLine(pRect->x+1,pRect->x+pRect->cx-1-1,pRect->y+pRect->cy-1-1,rcBottomRight1); pDC->DrawVLine(pRect->x+1,pRect->y+1,pRect->y+pRect->cy-2-1,rcTopLeft1); pDC->DrawVLine(pRect->x+pRect->cx-1-1,pRect->y+1,pRect->y+pRect->cy-1-1,rcBottomRight1); pDC->DrawHLine(pRect->x+2,pRect->x+pRect->cx-2-2,pRect->y+2,rcTopLeft2); pDC->DrawHLine(pRect->x+2,pRect->x+pRect->cx-1-2,pRect->y+pRect->cy-1-2,rcBottomRight2); pDC->DrawVLine(pRect->x+2,pRect->y+2,pRect->y+pRect->cy-2-2,rcTopLeft2); pDC->DrawVLine(pRect->x+pRect->cx-1-2,pRect->y+2,pRect->y+pRect->cy-1-2,rcBottomRight2); } void CWispDrawObj::DrawVertScrollRect(CWispDC*pDC,WISP_RECT*pRect) { pDC->DrawFullRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG]); } void CWispDrawObj::DrawVertScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect) { CWispRect rc(pRect); pDC->DrawRoundRect(&rc, m_crSystem[SC_SCROLL_NORMAL_BUTTON]); rc.DeflateRect(1, 1); pDC->DrawRect(&rc, m_crSystem[SC_WHITE]); rc.DeflateRect(1, 1); pDC->DrawFullRect(&rc,m_crSystem[SC_SCROLL_SLIDE_BG]); if(rc.cy>=10) { for(int i=0; i<8; i+=2) { pDC->DrawHLine( rc.x+2, rc.x2()-2, (rc.cy-8)/2+rc.y+i, m_crSystem[SC_LIGHT_GRAY]); pDC->DrawHLine( rc.x+2, rc.x2()-2, (rc.cy-8)/2+rc.y+i+1, m_crSystem[SC_GRAY]); } } } void CWispDrawObj::DrawHorzScrollRect(CWispDC*pDC,WISP_RECT*pRect) { pDC->DrawFullRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG]); } void CWispDrawObj::DrawHorzScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect) { CWispRect rc(pRect); pDC->DrawRoundRect(&rc, m_crSystem[SC_SCROLL_NORMAL_BUTTON]); rc.DeflateRect(1, 1); pDC->DrawRect(&rc, m_crSystem[SC_WHITE]); rc.DeflateRect(1, 1); pDC->DrawFullRect(&rc,m_crSystem[SC_SCROLL_SLIDE_BG]); if(rc.cx>=10) { for(int i=0; i<8; i+=2) { pDC->DrawVLine( (rc.cx-8)/2+rc.x+i, rc.y+2, rc.y2()-2, m_crSystem[SC_LIGHT_GRAY]); pDC->DrawVLine( (rc.cx-8)/2+rc.x+i+1, rc.y+2, rc.y2()-2, m_crSystem[SC_GRAY]); } } } void CWispDrawObj::DrawSplitRect(CWispDC*pDC,WISP_RECT*pRect,bool bHorz) { CWispWnd*pWnd=(CWispWnd*)pDC->m_pWispWnd; if(bHorz) pDC->DrawFullRect(pRect,m_crSystem[SC_BORDER_BG]); else pDC->DrawFullRect(pRect,m_crSystem[SC_BORDER_BG]); } void CWispDrawObj::DrawButtonClient(CWispDC*pDC,WISP_RECT*pRect,UINT State) { if(State==STATUS_DOWN) pDC->DrawFullRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG2]); else pDC->DrawFullRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG]); } void CWispDrawObj::DrawButtonFrameRect(CWispDC*pDC,WISP_RECT*pRect,UINT State) { if(State&WISP_WS_BACK_TRANS) { if(State == STATUS_DOWN) pDC->DrawFrameRect(pRect,false,1); if(State == STATUS_HOVER) pDC->DrawFrameRect(pRect,true,1); } else { switch(State) { case STATUS_HOVER: { CWispRect rc(*pRect); pDC->DrawRoundRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_BORDER]); rc.DeflateRect(1,1); pDC->DrawRect(&rc, m_crSystem[SC_GRADIENT_YELLOW_2]); rc.DeflateRect(1,1); pDC->DrawRect(&rc, m_crSystem[SC_GRADIENT_YELLOW_3]); } break; case STATUS_NORMAL: { CWispRect rc(*pRect); pDC->DrawRoundRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_BORDER]); } break; case STATUS_DOWN: { CWispRect rc(*pRect); rc.DeflateRect(1,1); pDC->DrawRoundRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_BORDER]); pDC->DrawRect(&rc, m_crSystem[SC_CTRL_NORMAL_CLIENT_BG]); } break; case STATE_DISABLED: break; } } } void CWispDrawObj::DrawTabBackground(CWispDC* pDC, WISP_RECT* pRect) { DrawToolbarBK(pDC,pRect); } void CWispDrawObj::DrawTabItem(CWispDC* pDC, WISP_RECT* pRect, UINT State) { switch(State) { case STATUS_HOVER: { CWispRect rc(*pRect); rc.DeflateRect(1,1); pDC->DrawRect(&rc, m_crSystem[SC_GRADIENT_YELLOW_2]); rc.DeflateRect(1,1); pDC->DrawRect(&rc, m_crSystem[SC_GRADIENT_YELLOW_3]); } case STATUS_NORMAL: case STATUS_DOWN: pDC->DrawRoundRect(pRect, m_crSystem[SC_CTRL_NORMAL_DARK_BORDER]); break; case STATE_DISABLED: break; } } void CWispDrawObj::DrawHeaderFrameRect(CWispDC* pDC, WISP_RECT* pRect, UINT State) { COLORREF crBk = m_crSystem[SC_FRAME_NORMAL_BG ]; COLORREF crLeft = m_crSystem[SC_FRAME_NORMAL_LEFT ]; COLORREF crRight = m_crSystem[SC_FRAME_NORMAL_RIGHT ]; COLORREF crBottom1 = m_crSystem[SC_FRAME_NORMAL_BOTTOM1]; COLORREF crBottom2 = m_crSystem[SC_FRAME_NORMAL_BOTTOM2]; COLORREF crBottom3 = m_crSystem[SC_FRAME_NORMAL_BOTTOM3]; switch(State) { case STATUS_NORMAL: break; case STATUS_DOWN: { crBk= m_crSystem[SC_UNNAMED_4]; COLORREF crTop1= m_crSystem[SC_UNNAMED_5]; COLORREF crTop2= m_crSystem[SC_UNNAMED_6]; COLORREF crTop3=m_crSystem[SC_UNNAMED_7]; pDC->DrawHLine(pRect->x+1, pRect->x+pRect->cx, pRect->y+pRect->cy-1, crTop1); pDC->DrawVLine(pRect->x+1,pRect->y, pRect->y+pRect->cy-1,crTop1); pDC->DrawFullRect(pRect, crBk); } return; case STATUS_HOVER: crBk = m_crSystem[SC_FRAME_HOVER_BG ]; crBottom1 = m_crSystem[SC_FRAME_HOVER_BOTTOM1 ]; crBottom2 = m_crSystem[SC_FRAME_HOVER_BOTTOM2 ]; crBottom3 = m_crSystem[SC_FRAME_HOVER_BOTTOM3 ]; break; case STATE_DISABLED: break; } // fill background pDC->DrawFullRect(pRect, crBk); // draw bottom line pDC->DrawHLine(pRect->x, pRect->x+pRect->cx-1, pRect->y+pRect->cy-3, crBottom1); pDC->DrawHLine(pRect->x, pRect->x+pRect->cx-1, pRect->y+pRect->cy-2, crBottom2); pDC->DrawHLine(pRect->x, pRect->x+pRect->cx-1, pRect->y+pRect->cy-1, crBottom3); // draw left line pDC->DrawLine(pRect->x, pRect->y+2, pRect->x, pRect->y+pRect->cy-5, crLeft); // draw rignt line pDC->DrawLine(pRect->x+pRect->cx-1, pRect->y+2, pRect->x+pRect->cx-1, pRect->y+pRect->cy-5, crRight); } void CWispDrawObj::DrawProgress(CWispDC* pDC, WISP_RECT* pRect, UINT uStyle, int nPrecent) { int i; // // Frame // pDC->Draw3DRect(pRect, m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT ], m_crSystem[SC_CTRL_NORMAL_BORDER_BOTTOMRIGHT]); //pRect->DeflateRect(2, 2); pRect->x += 2; pRect->y += 2; pRect->cx -= 4; pRect->cy -= 4; CWispRect rcLine(*pRect); rcLine.cx = pRect->cx*nPrecent/1000; if(rcLine.cx>0) { for(i=0; i<6; i++) { if(rcLine.cy<=0) break; pDC->DrawHLine(rcLine.x, rcLine.x+rcLine.cx-1, rcLine.y, m_crSystem[SC_GRADIENT_GREEN_1+i]); pDC->DrawHLine(rcLine.x, rcLine.x+rcLine.cx-1, rcLine.y+rcLine.cy-1, m_crSystem[SC_GRADIENT_GREEN_1+i]); rcLine.DeflateRect(0, 1); } pDC->DrawFullRect(&rcLine, m_crSystem[SC_GRADIENT_GREEN_7]); for(i=6; iDrawVLine(pRect->x+i, pRect->y, pRect->y+pRect->cy-1, m_crSystem[SC_CTRL_NORMAL_CLIENT_BG ]); } } void CWispDrawObj::DrawSystemStandardIcon(CWispDC* pDC,const WISP_RECT* pRect, UINT uStyle, UINT State) { int nXOffset; int nYOffset; switch(uStyle) { case WISP_SSI_EXPANDBUTTON_COLLAPSE: case WISP_SSI_EXPANDBUTTON_EXPAND: { nXOffset = (pRect->cx-WISP_SSI_EXPANDBUTTON_SIZE)/2; nYOffset = (pRect->cy-WISP_SSI_EXPANDBUTTON_SIZE)/2; // WISP_RECT rect; rect.x = pRect->x+nXOffset; rect.y = pRect->y+nYOffset; rect.cx = WISP_SSI_EXPANDBUTTON_SIZE; rect.cy = WISP_SSI_EXPANDBUTTON_SIZE; pDC->DrawRect(&rect, m_crSystem[SC_STDICON_NORMAL_BORDER ]); // Ӽ nXOffset+=2; nYOffset+=2; pDC->DrawHLine(pRect->x+nXOffset, pRect->x+nXOffset+(WISP_SSI_EXPANDBUTTON_SIZE-4-1), pRect->y+nYOffset+(WISP_SSI_EXPANDBUTTON_SIZE-4)/2, m_crSystem[SC_STDICON_NORMAL_BORDER ]); if( uStyle==WISP_SSI_EXPANDBUTTON_COLLAPSE ) { pDC->DrawVLine(pRect->x+nXOffset+(WISP_SSI_EXPANDBUTTON_SIZE-4)/2, pRect->y+nYOffset, pRect->y+nYOffset+(WISP_SSI_EXPANDBUTTON_SIZE-4-1), m_crSystem[SC_STDICON_NORMAL_BORDER ]); } } break; case WISP_SSI_REDIOBOX_UNSELECTED: case WISP_SSI_REDIOBOX_SELECTED: case WISP_SSI_REDIOBOX_SELECTED_DRAK: case WISP_SSI_REDIOBOX_UNSELECTED_DRAK: { pDC->DrawHLine(pRect->x+4,pRect->x+7,pRect->y,m_crSystem[SC_BLACK]); pDC->DrawHLine(pRect->x+4,pRect->x+7,pRect->y+11,m_crSystem[SC_BLACK]); pDC->DrawHLine(pRect->x+2,pRect->x+9,pRect->y+1,m_crSystem[SC_BLACK]); pDC->DrawHLine(pRect->x+2,pRect->x+9,pRect->y+10,m_crSystem[SC_BLACK]); pDC->DrawVLine(pRect->x,pRect->y+4,pRect->y+7,m_crSystem[SC_BLACK]); pDC->DrawVLine(pRect->x+11,pRect->y+4,pRect->y+7,m_crSystem[SC_BLACK]); pDC->DrawVLine(pRect->x+1,pRect->y+2,pRect->y+9,m_crSystem[SC_BLACK]); pDC->DrawVLine(pRect->x+10,pRect->y+2,pRect->y+9,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+3,pRect->y+2,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+8,pRect->y+2,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+3,pRect->y+9,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+8,pRect->y+9,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+2,pRect->y+3,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+2,pRect->y+8,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+9,pRect->y+3,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+9,pRect->y+8,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+2,pRect->y+2,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+9,pRect->y+2,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+2,pRect->y+9,m_crSystem[SC_BLACK]); pDC->DrawPixel(pRect->x+9,pRect->y+9,m_crSystem[SC_BLACK]); if(uStyle==WISP_SSI_REDIOBOX_SELECTED||uStyle==WISP_SSI_REDIOBOX_SELECTED_DRAK) { pDC->DrawVLine(pRect->x+5,pRect->y+4,pRect->y+7,m_crSystem[SC_BLACK]); pDC->DrawVLine(pRect->x+6,pRect->y+4,pRect->y+7,m_crSystem[SC_BLACK]); pDC->DrawHLine(pRect->x+4,pRect->x+7,pRect->y+5,m_crSystem[SC_BLACK]); pDC->DrawHLine(pRect->x+4,pRect->x+7,pRect->y+6,m_crSystem[SC_BLACK]); } }; break; case WISP_SSI_CHECKBOX_UNCHECKED: case WISP_SSI_CHECKBOX_CHECKED: case WISP_SSI_CHECKBOX_SEMICHECKED: case WISP_SSI_CHECKBOX_CHECKMARK: { nXOffset = (pRect->cx-WISP_SSI_CHECKBOX_SIZE)/2; nYOffset = (pRect->cy-WISP_SSI_CHECKBOX_SIZE)/2; if(uStyle<=WISP_SSI_CHECKBOX_SEMICHECKED) { // WISP_RECT rect; rect.x = pRect->x+nXOffset; rect.y = pRect->y+nYOffset; rect.cx = WISP_SSI_CHECKBOX_SIZE; rect.cy = WISP_SSI_CHECKBOX_SIZE; pDC->DrawRect(&rect, m_crSystem[SC_STDICON_NORMAL_BORDER ]); } // semi selected, draw a small rectangle. if(uStyle==WISP_SSI_CHECKBOX_SEMICHECKED) { WISP_RECT rect={pRect->x+nXOffset+3, pRect->y+nYOffset+3, WISP_SSI_CHECKBOX_SIZE-6, WISP_SSI_CHECKBOX_SIZE-6}; pDC->DrawFullRect(&rect, m_crSystem[SC_STDICON_NORMAL_CHECKMARK ]); } // draw a check mark. if(uStyle==WISP_SSI_CHECKBOX_CHECKED || uStyle==WISP_SSI_CHECKBOX_CHECKMARK) { nXOffset = (pRect->cx-7)/2; nYOffset = (pRect->cy-7)/2; for(int i=0; i<3; i++) { pDC->DrawLine(pRect->x+nXOffset, pRect->y+nYOffset+2+i, pRect->x+nXOffset+2, pRect->y+nYOffset+4+i, m_crSystem[SC_STDICON_NORMAL_CHECKMARK ]); pDC->DrawLine(pRect->x+nXOffset+2, pRect->y+nYOffset+4+i, pRect->x+nXOffset+6, pRect->y+nYOffset+i, m_crSystem[SC_STDICON_NORMAL_CHECKMARK ]); } } } break; case WISP_SSI_VERT_INC_SPIN: case WISP_SSI_VERT_DEC_SPIN: case WISP_SSI_HORZ_INC_SPIN: case WISP_SSI_HORZ_DEC_SPIN: { CWispRect rc(*pRect); COLORREF crBkColor; switch(State) { case STATUS_NORMAL: crBkColor = m_crSystem[SC_SCROLL_NORMAL_BUTTON]; break; case STATUS_HOVER: crBkColor = m_crSystem[SC_SCROLL_HOVER_BUTTON]; break; case STATUS_DOWN: crBkColor = m_crSystem[SC_SCROLL_DOWN_BUTTON]; break; } pDC->DrawRect(&rc, crBkColor); rc.DeflateRect(1, 1); pDC->DrawRect(&rc, m_crSystem[SC_WHITE]); rc.DeflateRect(1, 1); pDC->DrawFullRect(&rc, crBkColor); rc.DeflateRect(1, 2); int nHalf = rc.cy/2; switch(uStyle) { case WISP_SSI_HORZ_INC_SPIN: for(int i=-1; i<1; i++) { pDC->DrawLine(rc.x+rc.cx/4+i, rc.y+rc.cy/2-nHalf, rc.x+rc.cx/4+nHalf+i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x+rc.cx/4+i, rc.y+rc.cy/2+nHalf, rc.x+rc.cx/4+nHalf+i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); } for(int i=2; i<4; i++) { pDC->DrawLine(rc.x+rc.cx/4+i, rc.y+rc.cy/2-nHalf, rc.x+rc.cx/4+nHalf+i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x+rc.cx/4+i, rc.y+rc.cy/2+nHalf, rc.x+rc.cx/4+nHalf+i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); } break; case WISP_SSI_HORZ_DEC_SPIN: for(int i=-1; i<1; i++) { pDC->DrawLine(rc.x2()-rc.cx/4-i, rc.y+rc.cy/2-nHalf, rc.x2()-rc.cx/4-nHalf-i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x2()-rc.cx/4-i, rc.y+rc.cy/2+nHalf, rc.x2()-rc.cx/4-nHalf-i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); } for(int i=2; i<4; i++) { pDC->DrawLine(rc.x2()-rc.cx/4-i, rc.y+rc.cy/2-nHalf, rc.x2()-rc.cx/4-nHalf-i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x2()-rc.cx/4-i, rc.y+rc.cy/2+nHalf, rc.x2()-rc.cx/4-nHalf-i, rc.y+rc.cy/2, m_crSystem[SC_BLUE]); } break; case WISP_SSI_VERT_INC_SPIN: for(int i=-1; i<1; i++) { pDC->DrawLine(rc.x+rc.cx/2-nHalf, rc.y+rc.cy/4+i, rc.x+rc.cx/2, rc.y+rc.cy/4+nHalf+i, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x+rc.cx/2+nHalf, rc.y+rc.cy/4+i, rc.x+rc.cx/2, rc.y+rc.cy/4+nHalf+i, m_crSystem[SC_BLUE]); } for(int i=2; i<4; i++) { pDC->DrawLine(rc.x+rc.cx/2-nHalf, rc.y+rc.cy/4+i, rc.x+rc.cx/2, rc.y+rc.cy/4+nHalf+i, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x+rc.cx/2+nHalf, rc.y+rc.cy/4+i, rc.x+rc.cx/2, rc.y+rc.cy/4+nHalf+i, m_crSystem[SC_BLUE]); } break; case WISP_SSI_VERT_DEC_SPIN: for(int i=-1; i<1; i++) { pDC->DrawLine(rc.x+rc.cx/2-nHalf, rc.y2()-rc.cy/4-i, rc.x+rc.cx/2, rc.y2()-rc.cy/4-nHalf-i, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x+rc.cx/2+nHalf, rc.y2()-rc.cy/4-i, rc.x+rc.cx/2, rc.y2()-rc.cy/4-nHalf-i, m_crSystem[SC_BLUE]); } for(int i=2; i<4; i++) { pDC->DrawLine(rc.x+rc.cx/2-nHalf, rc.y2()-rc.cy/4-i, rc.x+rc.cx/2, rc.y2()-rc.cy/4-nHalf-i, m_crSystem[SC_BLUE]); pDC->DrawLine(rc.x+rc.cx/2+nHalf, rc.y2()-rc.cy/4-i, rc.x+rc.cx/2, rc.y2()-rc.cy/4-nHalf-i, m_crSystem[SC_BLUE]); } break; } } break; case WISP_SSI_CLOSE: case WISP_SSI_MAXIMIZE: case WISP_SSI_RESTORE: case WISP_SSI_MINIMIZE: { COLORREF color; switch(State) { case STATUS_NORMAL: // caption bar using dark color, so use DOWN color as NORMAL color. color = m_crSystem[SC_STDICON_DOWN_BORDER]; break; case STATUS_HOVER: color = m_crSystem[SC_STDICON_HOVER_BORDER ]; break; case STATUS_DOWN: color = m_crSystem[SC_STDICON_NORMAL_BORDER ]; break; } CWispRect rc(pRect); // Border pDC->DrawRoundRect(&rc, color); //rc.DeflateRect(1, 1); //pDC->DrawRect(&rc, color); rc.DeflateRect(4, 4); if(uStyle==WISP_SSI_CLOSE) { // cross pDC->DrawLine(rc.x+1, rc.y, rc.x2(), rc.y2()-1, color); pDC->DrawLine(rc.x+1, rc.y+1, rc.x2()-1, rc.y2()-1, color); pDC->DrawLine(rc.x, rc.y+1, rc.x2()-1, rc.y2(), color); pDC->DrawLine(rc.x, rc.y2()-1, rc.x2()-1, rc.y, color); pDC->DrawLine(rc.x+1, rc.y2()-1, rc.x2()-1, rc.y+1, color); pDC->DrawLine(rc.x+1, rc.y2(), rc.x2(), rc.y+1, color); } else if(uStyle==WISP_SSI_MINIMIZE) { // short line pDC->DrawLine(rc.x, rc.y2()-2, rc.x2(), rc.y2()-2, color); pDC->DrawLine(rc.x, rc.y2()-1, rc.x2(), rc.y2()-1, color); pDC->DrawLine(rc.x, rc.y2(), rc.x2(), rc.y2(), color); } else if(uStyle==WISP_SSI_MAXIMIZE) { // small rect pDC->DrawRect(&rc, color); pDC->DrawLine(rc.x+1, rc.y+1, rc.x2()-1, rc.y+1, color); pDC->DrawLine(rc.x+1, rc.y+2, rc.x2()-1, rc.y+2, color); } else if(uStyle==WISP_SSI_RESTORE) { rc.DeflateRect(1, 1); rc.OffsetRect(1, -1); pDC->DrawRect(&rc, color); pDC->DrawLine(rc.x+1, rc.y+1, rc.x2()-1, rc.y+1, color); // pDC->DrawLine(rc.x+1, rc.y+2, rc.x2()-1, rc.y+2, color); rc.OffsetRect(-3, 4); rc.cy --; pDC->DrawRect(&rc, color); pDC->DrawLine(rc.x+1, rc.y+1, rc.x2()-1, rc.y+1, color); // pDC->DrawLine(rc.x+1, rc.y+2, rc.x2()-1, rc.y+2, color); } } break; } } void CWispDrawObj::DrawCursor(WISP_POINT* pHotPT, CWispDC* pClipDC,UINT CursorType,CWispDIB*pDIB) { switch(CursorType) { case WISP_CT_ARROW: DrawCursorArrow(pClipDC,pHotPT); break; case WISP_CT_DRAG_ARROW: DrawCursorDrag(pClipDC,pHotPT); break; case WISP_CT_RESIZE_VERT: DrawCursorResizeVert(pClipDC,pHotPT); break; case WISP_CT_RESIZE_HORZ: DrawCursorResizeHorz(pClipDC,pHotPT); break; case WISP_CT_RESIZE_LEFT_LEAN: DrawCursorResizeLeftLean(pClipDC,pHotPT); break; case WISP_CT_RESIZE_RIGHT_LEAN: DrawCursorResizeRightLean(pClipDC,pHotPT); break; default: if(pDIB) pClipDC->DrawDIB(pHotPT->x,pHotPT->y,pDIB); else DrawCursorArrow(pClipDC,pHotPT); break; } } void CWispDrawObj::DrawCursorArrow(CWispDC* pClipDC,WISP_POINT* pHotPT) { int x1,y1,x2,y2; if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT.x = 0; gpCurWisp->m_MouseHotPT.y = 0; gpCurWisp->m_MouseSize.cx = 16; gpCurWisp->m_MouseSize.cy = 16; return; } x1 = pHotPT->x; y1 = pHotPT->y; x2 = pHotPT->x; y2 = pHotPT->y+15; for(int i=0; i<3; i++) { int a1 = x1, b1=y1, a2=x2, b2=y2; pClipDC->DrawVLine(a1, b1, b2, m_crSystem[SC_GRADIENT_GREEN_7-2*i]); x1+=1; y1+=1; x2+=1; y2-=1; } x1 = pHotPT->x; y1 = pHotPT->y; x2 = pHotPT->x+15; y2 = pHotPT->y+15; for(int i=0; i<4; i++) { int a1 = x1, b1=y1, a2=x2, b2=y2; pClipDC->DrawLine(a1, b1, a2, b2, m_crSystem[SC_GRADIENT_GREEN_7-2*i]); x1+=1; y1+=2; x2-=2; y2-=1; } x1 = pHotPT->x+15; y1 = pHotPT->y+15; x2 = pHotPT->x+2; y2 = pHotPT->y+11; for(int i=0; i<1; i++) { pClipDC->DrawLine(x1, y1, x2, y2, m_crSystem[SC_GRADIENT_GREEN_7-i]); //x1+=1; y1-=1; x2-=1; y2-=1; } } void CWispDrawObj::DrawCursorDrag(CWispDC* pClipDC,WISP_POINT* pHotPT) { return; int x1,y1,x2,y2; if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT.x = 0; gpCurWisp->m_MouseHotPT.y = 0; gpCurWisp->m_MouseSize.cx = 16; gpCurWisp->m_MouseSize.cy = 16; return; } x1 = pHotPT->x; y1 = pHotPT->y; x2 = pHotPT->x; y2 = pHotPT->y+15; for(int i=0; i<3; i++) { int a1 = x1, b1=y1, a2=x2, b2=y2; pClipDC->DrawVLine(a1, b1, b2, m_crSystem[SC_GRADIENT_GREEN_7-2*i]); x1+=1; y1+=1; x2+=1; y2-=1; } x1 = pHotPT->x; y1 = pHotPT->y; x2 = pHotPT->x+15; y2 = pHotPT->y+15; for(int i=0; i<4; i++) { int a1 = x1, b1=y1, a2=x2, b2=y2; pClipDC->DrawLine(a1, b1, a2, b2, m_crSystem[SC_GRADIENT_GREEN_7-2*i]); x1+=1; y1+=2; x2-=2; y2-=1; } x1 = pHotPT->x+15; y1 = pHotPT->y+15; x2 = pHotPT->x+2; y2 = pHotPT->y+11; for(int i=0; i<1; i++) { pClipDC->DrawLine(x1, y1, x2, y2, m_crSystem[SC_GRADIENT_GREEN_7-i]); //x1+=1; y1-=1; x2-=1; y2-=1; } } void CWispDrawObj::DrawCursorResizeVert(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT.x = 6; gpCurWisp->m_MouseHotPT.y = 7; gpCurWisp->m_MouseSize.cx = 13; gpCurWisp->m_MouseSize.cy = 15; return; } pClipDC->DrawLine(pHotPT->x-2,pHotPT->y-4, pHotPT->x, pHotPT->y-6, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-2,pHotPT->y-5, pHotPT->x, pHotPT->y-7, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+2,pHotPT->y-4, pHotPT->x, pHotPT->y-6, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+2,pHotPT->y-5, pHotPT->x, pHotPT->y-7, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawVLine(pHotPT->x-1,pHotPT->y-6, pHotPT->y+6, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawVLine(pHotPT->x, pHotPT->y-7,pHotPT->y+7,m_crSystem[SC_GRADIENT_GREEN_2]); pClipDC->DrawVLine(pHotPT->x+1,pHotPT->y-6, pHotPT->y+6, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-2,pHotPT->y+4, pHotPT->x, pHotPT->y+6, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-2,pHotPT->y+5, pHotPT->x, pHotPT->y+7, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+2,pHotPT->y+4, pHotPT->x, pHotPT->y+6, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+2,pHotPT->y+5, pHotPT->x, pHotPT->y+7, m_crSystem[SC_GRADIENT_GREEN_5]); } void CWispDrawObj::DrawCursorResizeHorz(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT.x = 7; gpCurWisp->m_MouseHotPT.y = 6; gpCurWisp->m_MouseSize.cx = 15; gpCurWisp->m_MouseSize.cy = 13; return; } pClipDC->DrawLine(pHotPT->x-4,pHotPT->y-2,pHotPT->x-6,pHotPT->y, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-5,pHotPT->y-2,pHotPT->x-7,pHotPT->y,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-4,pHotPT->y+2,pHotPT->x-6,pHotPT->y, m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-5,pHotPT->y+2,pHotPT->x-7,pHotPT->y,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawHLine(pHotPT->x-6,pHotPT->x+6,pHotPT->y-1,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawHLine(pHotPT->x-7,pHotPT->x+7,pHotPT->y ,m_crSystem[SC_GRADIENT_GREEN_2]); pClipDC->DrawHLine(pHotPT->x+6,pHotPT->x-6,pHotPT->y+1,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+4,pHotPT->y-2,pHotPT->x+6,pHotPT->y,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+5,pHotPT->y-2,pHotPT->x+7,pHotPT->y,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+4,pHotPT->y+2,pHotPT->x+6,pHotPT->y,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+5,pHotPT->y+2,pHotPT->x+7,pHotPT->y,m_crSystem[SC_GRADIENT_GREEN_5]); } void CWispDrawObj::DrawCursorResizeLeftLean(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT.x = 6; gpCurWisp->m_MouseHotPT.y = 6; gpCurWisp->m_MouseSize.cx = 11; gpCurWisp->m_MouseSize.cy = 11; return; } pClipDC->DrawLine(pHotPT->x-5,pHotPT->y-5,pHotPT->x-5,pHotPT->y ,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-5,pHotPT->y-5,pHotPT->x ,pHotPT->y-5,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-3,pHotPT->y-4,pHotPT->x+4,pHotPT->y+3,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-4,pHotPT->y-4,pHotPT->x+4,pHotPT->y+4,m_crSystem[SC_GRADIENT_GREEN_2]); pClipDC->DrawLine(pHotPT->x-4,pHotPT->y-3,pHotPT->x+3,pHotPT->y+4,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x ,pHotPT->y+5,pHotPT->x+5,pHotPT->y+5,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+5,pHotPT->y ,pHotPT->x+5,pHotPT->y+5,m_crSystem[SC_GRADIENT_GREEN_5]); } void CWispDrawObj::DrawCursorResizeRightLean(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT.x = 6; gpCurWisp->m_MouseHotPT.y = 6; gpCurWisp->m_MouseSize.cx = 11; gpCurWisp->m_MouseSize.cy = 11; return; } pClipDC->DrawLine(pHotPT->x ,pHotPT->y-5,pHotPT->x+5,pHotPT->y-5,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x+5,pHotPT->y ,pHotPT->x+5,pHotPT->y-5,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-3,pHotPT->y+4,pHotPT->x+4,pHotPT->y-3,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-4,pHotPT->y+4,pHotPT->x+4,pHotPT->y-4,m_crSystem[SC_GRADIENT_GREEN_2]); pClipDC->DrawLine(pHotPT->x-4,pHotPT->y+3,pHotPT->x+3,pHotPT->y-4,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x-5,pHotPT->y ,pHotPT->x-5,pHotPT->y+5,m_crSystem[SC_GRADIENT_GREEN_5]); pClipDC->DrawLine(pHotPT->x ,pHotPT->y+5,pHotPT->x-5,pHotPT->y+5,m_crSystem[SC_GRADIENT_GREEN_5]); } void CWispDrawObj::DrawListColumnTitleBK(CWispDC* pClipDC,WISP_RECT*pRc) { DrawToolbarBK(pClipDC,pRc); } void CWispDrawObj::DrawListSelectedItemBK(CWispDC* pClipDC,WISP_RECT*pRc) { pClipDC->DrawFullRect(pRc,m_crSystem[SC_CTRL_SELECTED_BG]); } void CWispDrawObj::DrawMenuIconSpaceBK(CWispDC* pClipDC,WISP_RECT*pRc) { pClipDC->DrawFullRect(pRc,m_crSystem[SC_MENU_BG]); } void CWispDrawObj::DrawMenuBK(CWispDC*pClipDC,WISP_RECT*pRc,UINT Status) { if(Status==STATUS_HOVER) pClipDC->DrawFullRect(pRc,m_crSystem[SC_CTRL_HOVER_BG]); else pClipDC->DrawFullRect(pRc,m_crSystem[SC_MENU_BG]); } void CWispDrawObj::DrawMenuString(CWispDC*pClipDC,WISP_RECT*pRc,WISP_PCSTR String,UINT Status) { pClipDC->DrawShadowString(pRc,String); } void CWispDrawObj::DrawMenuTopFrame(CWispDC* pClipDC,WISP_RECT*pRc) { DrawMenuIconSpaceBK(pClipDC,pRc); } void CWispDrawObj::DrawMenuBottomFrame(CWispDC* pClipDC,WISP_RECT*pRc) { DrawMenuIconSpaceBK(pClipDC,pRc); } CWispDIBDrawObj::CWispDIBDrawObj() { m_szSkinDir = "\\Skin\\Default"; } CWispDIBDrawObj::~CWispDIBDrawObj() { } bool CWispDIBDrawObj::Init() { char szBuffer[MAX_FN_LEN]; TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\VertInc.bmp"); m_DIBVertIncSpin.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\VertDec.bmp"); m_DIBVertDecSpin.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\HorzInc.bmp"); m_DIBHorzIncSpin.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\HorzDec.bmp"); m_DIBHorzDecSpin.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\Min.bmp"); m_DIBMin.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\Max.bmp"); m_DIBMax.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\Normal.bmp"); m_DIBRestore.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\Close.bmp"); m_DIBClose.Load(szBuffer,16,16,4); TStrCpy(szBuffer,m_szSkinDir); TStrCat(szBuffer,"\\RedioBox.bmp"); m_DIBRedioBoxIcon.Load(szBuffer,13,13,6); m_DIBRedioBoxIcon.SetType(WISP_DIB_TK); m_DIBArrow.Load("\\Cursor\\Arrow.bmp"); m_DIBArrow.SetType(WISP_DIB_TK); m_DIBDrag.Load("\\Cursor\\Drag.bmp"); m_DIBDrag.SetType(WISP_DIB_TK); m_DIBDrag.SetHotPoint(m_DIBDrag.m_FrameBuffer.Width/2,m_DIBDrag.m_FrameBuffer.Height/2); m_DIBHResize.Load("\\Cursor\\HResize.bmp"); m_DIBHResize.SetType(WISP_DIB_TK); m_DIBHResize.SetHotPoint(m_DIBHResize.m_FrameBuffer.Width/2,m_DIBHResize.m_FrameBuffer.Height/2); m_DIBVResize.Load("\\Cursor\\VResize.bmp"); m_DIBVResize.SetType(WISP_DIB_TK); m_DIBVResize.SetHotPoint(m_DIBVResize.m_FrameBuffer.Width/2,m_DIBVResize.m_FrameBuffer.Height/2); m_DIBLResize.Load("\\Cursor\\LResize.bmp"); m_DIBLResize.SetType(WISP_DIB_TK); m_DIBLResize.SetHotPoint(m_DIBLResize.m_FrameBuffer.Width/2,m_DIBLResize.m_FrameBuffer.Height/2); m_DIBRResize.Load("\\Cursor\\RResize.bmp"); m_DIBRResize.SetType(WISP_DIB_TK); m_DIBRResize.SetHotPoint(m_DIBRResize.m_FrameBuffer.Width/2,m_DIBRResize.m_FrameBuffer.Height/2); gpCurWisp->m_MouseHotPT = m_DIBArrow.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBArrow.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBArrow.m_FrameBuffer.Height; return true; } void CWispDIBDrawObj::Release() { m_DIBVertIncSpin.Destroy(); m_DIBVertDecSpin.Destroy(); m_DIBHorzIncSpin.Destroy(); m_DIBHorzDecSpin.Destroy(); m_DIBMin.Destroy(); m_DIBMax.Destroy(); m_DIBRestore.Destroy(); m_DIBClose.Destroy(); m_DIBArrow.Destroy(); m_DIBRedioBoxIcon.Destroy(); m_DIBHResize.Destroy(); m_DIBVResize.Destroy(); m_DIBLResize.Destroy(); m_DIBRResize.Destroy(); } void CWispDIBDrawObj::DrawBorder(CWispDC*pDC,WISP_RECT*pRect,int Size) { COLORREF Color; CWispWnd*pWnd=(CWispWnd*)pDC->m_pWispWnd; for(int l=Size-1;l>=0;l--) { Color=GRAY_CHG(m_crSystem[SC_BORDER_BG],3,Size-l+1); pDC->DrawVLine(pRect->x+l,pRect->y+l,pRect->y+pRect->cy-1-l,Color); pDC->DrawVLine(pRect->x+pRect->cx-1-l,pRect->y+l,pRect->y+pRect->cy-1-l,Color); Color=GRAY_CHG(m_crSystem[SC_BORDER_BG],3,Size-l+1); pDC->DrawHLine(pRect->x+l,pRect->x+pRect->cx-1-l,pRect->y+l,Color); pDC->DrawHLine(pRect->x+l,pRect->x+pRect->cx-1-l,pRect->y+pRect->cy-1-l,Color); } } void CWispDIBDrawObj::DrawCaption(CWispDC*pDC,WISP_RECT*pRect) { pDC->DrawMiddleYGrayChgFullRect(m_crSystem[SC_CAPTION_BG],m_crSystem[SC_CAPTION_LIGHT_BG],pRect); } void CWispDIBDrawObj::DrawToolbarBK(CWispDC*pDC,WISP_RECT*pRect) { pDC->DrawMiddleYGrayChgFullRect(WISP_RGB(172,214,255),WISP_RGB(62,158,255),pRect); } void CWispDIBDrawObj::DrawSystemStandardIcon(CWispDC* pDC,const WISP_RECT* pRect, UINT uStyle, UINT State) { switch(uStyle) { case WISP_SSI_VERT_INC_SPIN: pDC->DrawDIB(pRect->x,pRect->y,m_DIBVertIncSpin.GetDIB(State)); break; case WISP_SSI_VERT_DEC_SPIN: pDC->DrawDIB(pRect->x,pRect->y,m_DIBVertDecSpin.GetDIB(State)); break; case WISP_SSI_HORZ_INC_SPIN: pDC->DrawDIB(pRect->x,pRect->y,m_DIBHorzIncSpin.GetDIB(State)); break; case WISP_SSI_HORZ_DEC_SPIN: pDC->DrawDIB(pRect->x,pRect->y,m_DIBHorzDecSpin.GetDIB(State)); break; case WISP_SSI_MAXIMIZE: pDC->DrawDIB(pRect->x,pRect->y,m_DIBMax.GetDIB(State)); break; case WISP_SSI_MINIMIZE: pDC->DrawDIB(pRect->x,pRect->y,m_DIBMin.GetDIB(State)); break; case WISP_SSI_RESTORE: pDC->DrawDIB(pRect->x,pRect->y,m_DIBRestore.GetDIB(State)); break; case WISP_SSI_CLOSE: pDC->DrawDIB(pRect->x,pRect->y,m_DIBClose.GetDIB(State)); break; case WISP_SSI_REDIOBOX_UNSELECTED: pDC->DrawDIB(pRect->x,pRect->y,m_DIBRedioBoxIcon.GetDIB(0)); break; case WISP_SSI_REDIOBOX_UNSELECTED_DRAK: pDC->DrawDIB(pRect->x,pRect->y,m_DIBRedioBoxIcon.GetDIB(2)); break; case WISP_SSI_REDIOBOX_SELECTED: pDC->DrawDIB(pRect->x,pRect->y,m_DIBRedioBoxIcon.GetDIB(3)); break; case WISP_SSI_REDIOBOX_SELECTED_DRAK: pDC->DrawDIB(pRect->x,pRect->y,m_DIBRedioBoxIcon.GetDIB(5)); break; default: CWispDrawObj::DrawSystemStandardIcon(pDC,pRect,uStyle,State); break; } } void CWispDIBDrawObj::DrawCursorArrow(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT = m_DIBArrow.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBArrow.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBArrow.m_FrameBuffer.Height; return; } pClipDC->DrawDIB(pHotPT->x,pHotPT->y,&m_DIBArrow); } void CWispDIBDrawObj::DrawCursorDrag(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT = m_DIBDrag.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBDrag.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBDrag.m_FrameBuffer.Height; return; } pClipDC->DrawDIB(pHotPT->x,pHotPT->y,&m_DIBDrag); } void CWispDIBDrawObj::DrawCursorResizeVert(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT = m_DIBVResize.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBVResize.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBVResize.m_FrameBuffer.Height; return; } pClipDC->DrawDIB(pHotPT->x,pHotPT->y,&m_DIBVResize); } void CWispDIBDrawObj::DrawCursorResizeHorz(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT = m_DIBHResize.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBHResize.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBHResize.m_FrameBuffer.Height; return; } pClipDC->DrawDIB(pHotPT->x,pHotPT->y,&m_DIBHResize); } void CWispDIBDrawObj::DrawCursorResizeLeftLean(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT = m_DIBLResize.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBLResize.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBLResize.m_FrameBuffer.Height; return; } pClipDC->DrawDIB(pHotPT->x,pHotPT->y,&m_DIBLResize); } void CWispDIBDrawObj::DrawCursorResizeRightLean(CWispDC* pClipDC,WISP_POINT* pHotPT) { if(pClipDC==NULL) { gpCurWisp->m_MouseHotPT = m_DIBRResize.m_HotPT; gpCurWisp->m_MouseSize.cx = m_DIBRResize.m_FrameBuffer.Width; gpCurWisp->m_MouseSize.cy = m_DIBRResize.m_FrameBuffer.Height; return; } pClipDC->DrawDIB(pHotPT->x,pHotPT->y,&m_DIBRResize); } void CWispDIBDrawObj::DrawSplitRect(CWispDC*pDC,WISP_RECT*pRect,bool bHorz) { CWispWnd*pWnd=(CWispWnd*)pDC->m_pWispWnd; if(bHorz) { pDC->DrawXGrayChgFullRect(pRect,m_crSystem[SC_BORDER_BG],4); } else { pDC->DrawYGrayChgFullRect(pRect,m_crSystem[SC_BORDER_BG],4); } } void CWispDIBDrawObj::DrawVertScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect) { CWispRect rc(pRect); pDC->DrawRoundRect(&rc, m_crSystem[SC_SCROLL_NORMAL_BUTTON]); rc.DeflateRect(1, 1); pDC->DrawRect(&rc, m_crSystem[SC_WHITE]); rc.DeflateRect(1, 1); pDC->DrawMiddleXGrayChgFullRect(m_crSystem[SC_SCROLL_SLIDE_DARK_BG],m_crSystem[SC_SCROLL_SLIDE_BG],&rc); if(rc.cy>=10) { for(int i=0; i<8; i+=2) { pDC->DrawHLine( rc.x+2, rc.x2()-2, (rc.cy-8)/2+rc.y+i, m_crSystem[SC_LIGHT_GRAY]); pDC->DrawHLine( rc.x+2, rc.x2()-2, (rc.cy-8)/2+rc.y+i+1, m_crSystem[SC_GRAY]); } } } void CWispDIBDrawObj::DrawHorzScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect) { CWispRect rc(pRect); pDC->DrawRoundRect(&rc, m_crSystem[SC_SCROLL_NORMAL_BUTTON]); rc.DeflateRect(1, 1); pDC->DrawRect(&rc, m_crSystem[SC_WHITE]); rc.DeflateRect(1, 1); pDC->DrawMiddleYGrayChgFullRect(m_crSystem[SC_SCROLL_SLIDE_DARK_BG],m_crSystem[SC_SCROLL_SLIDE_BG],&rc); if(rc.cx>=10) { for(int i=0; i<8; i+=2) { pDC->DrawVLine( (rc.cx-8)/2+rc.x+i, rc.y+2, rc.y2()-2, m_crSystem[SC_LIGHT_GRAY]); pDC->DrawVLine( (rc.cx-8)/2+rc.x+i+1, rc.y+2, rc.y2()-2, m_crSystem[SC_GRAY]); } } } void CWispDIBDrawObj::DrawListColumnTitleBK(CWispDC* pClipDC,WISP_RECT*pRc) { DrawToolbarBK(pClipDC,pRc); } void CWispDIBDrawObj::DrawListSelectedItemBK(CWispDC* pClipDC,WISP_RECT*pRc) { pClipDC->DrawMiddleYGrayChgFullRect(m_crSystem[SC_CTRL_SELECTED_BG],m_crSystem[SC_CTRL_SELECTED_LIGHT_BG],pRc); } void CWispDIBDrawObj::DrawMenuIconSpaceBK(CWispDC* pClipDC,WISP_RECT*pRc) { CWispDrawObj::DrawMenuIconSpaceBK(pClipDC,pRc); } void CWispDIBDrawObj::DrawMenuBK(CWispDC* pClipDC,WISP_RECT*pRc,UINT Status) { if(Status==STATUS_HOVER) pClipDC->DrawMiddleYGrayChgFullRect(m_crSystem[SC_CTRL_HOVER_BG],m_crSystem[SC_CTRL_HOVER_LIGHT_BG],pRc); else pClipDC->DrawMiddleYGrayChgFullRect(m_crSystem[SC_MENU_BG],m_crSystem[SC_MENU_LIGHT_BG],pRc); } void CWispDIBDrawObj::DrawMenuString(CWispDC*pClipDC,WISP_RECT*pRc,WISP_PCSTR String,UINT Status) { if(Status==STATE_DISABLED) { pClipDC->SetTextColor(m_crSystem[SC_LIGHT_GRAY]); pClipDC->SetShadowTextColor(m_crSystem[SC_SHADOW_LIGHT]); pClipDC->DrawShadowString(pRc,String); pClipDC->RestoreTextColor(); pClipDC->RestoreShadowTextColor(); } else { pClipDC->DrawShadowString(pRc,String); } } ================================================ FILE: Project/Wisp/Source/WispDrawObj.h ================================================ #ifndef _WISP_DRAW_OBJ_H_ #define _WISP_DRAW_OBJ_H_ class CWispDC; enum SYSTEM_COLOR { SC_BLACK = 0, SC_WHITE , SC_RED , SC_LIGHT_RED , SC_GREEN , SC_LIGHT_GREEN , SC_BLUE , SC_LIGHT_BLUE , SC_BROWN , SC_LIGHT_BROWN , SC_CYAN , SC_LIGHT_CYAN , SC_GRAY , SC_LIGHT_GRAY , SC_YELLOW , SC_LIGHT_YELLOW ,//15 SC_ORANGE_RED , SC_LIGHT_ORANGE_RED , SC_DESKTOP_BG , // SC_DISABLE_BG , // SC_CLIENT_BG , // SC_CLIENT_TEXT , // SC_CAPTION_TEXT , // SC_CAPTION_BG , // SC_CAPTION_LIGHT_BG , // SC_SELECT_BG , // SC_SCROLL_SLIDE_BG , // SC_SCROLL_SLIDE_DARK_BG ,// SC_BORDER_BG , // SC_BRIGHT , // SC_SHADOW , // SC_SHADOW_LIGHT , // SC_SCROLL_BG , // SC_SCROLL_BT_BG , // SC_CURSOR , // all ctrls SC_CTRL_NORMAL_BORDER_TOPLEFT , SC_CTRL_NORMAL_BORDER_BOTTOMRIGHT , SC_CTRL_NORMAL_DARK_BORDER , // CheckBox߿ɫButton߿ɫ SC_CTRL_NORMAL_CLIENT_BG , SC_CTRL_NORMAL_DARK_CLIENT_BG , // ButtonδʱTabǼʱ SC_CTRL_NORMAL_DARK_CLIENT_BG2 , // Buttonʱ SC_CTRL_SELECTED_BG , SC_CTRL_SELECTED_LIGHT_BG, SC_CTRL_HOVER_BG , SC_CTRL_HOVER_LIGHT_BG , SC_CTRL_SELECTED_TEXT , SC_CTRL_NORMAL_TEXT , SC_CTRL_HOVER_TEXT , SC_CTRL_NORMAL_FOCUS , SC_CTRL_HOVER_FOCUS , SC_MENU_BG , SC_MENU_LIGHT_BG, SC_MENU_BORDER , SC_STDICON_NORMAL_BORDER , // ׼ͼ߿򣬰Listеťѡť,close,minimaize,maxmize SC_STDICON_HOVER_BORDER , SC_STDICON_DOWN_BORDER , SC_STDICON_NORMAL_CHECKMARK , // CheckBoxȿؼйɫ SC_STDICON_NORMAL_PLUS , // CheckBoxȿؼмӼŵɫ SC_SCROLL_NORMAL_BUTTON , SC_SCROLL_HOVER_BUTTON , SC_SCROLL_DOWN_BUTTON , SC_FRAME_NORMAL_BG , // Header SC_FRAME_NORMAL_LEFT , // SC_FRAME_NORMAL_RIGHT , // SC_FRAME_NORMAL_BOTTOM1 , // SC_FRAME_NORMAL_BOTTOM2 , // SC_FRAME_NORMAL_BOTTOM3 , // SC_FRAME_HOVER_BG , // SC_FRAME_HOVER_BOTTOM1 , // SC_FRAME_HOVER_BOTTOM2 , // SC_FRAME_HOVER_BOTTOM3 , // SC_GRADIENT_GREEN_1 , // Progress, Cursor SC_GRADIENT_GREEN_2 , // SC_GRADIENT_GREEN_3 , // SC_GRADIENT_GREEN_4 , // SC_GRADIENT_GREEN_5 , // SC_GRADIENT_GREEN_6 , // SC_GRADIENT_GREEN_7 , // SC_GRADIENT_YELLOW, SC_GRADIENT_YELLOW_1 , // Button, Header, Tab SC_GRADIENT_YELLOW_2 , // SC_GRADIENT_YELLOW_3 , // SC_GRADIENT_BULE_1 , // Caption SC_GRADIENT_BULE_2 , SC_GRADIENT_BULE_3 , SC_GRADIENT_BULE_4 , SC_GRADIENT_BULE_5 , SC_GRADIENT_BULE_6 , SC_GRADIENT_BULE_7 , SC_GRADIENT_BULE_8 , SC_RAV_1 , SC_RAV_2 , SC_RAV_3 , SC_RAV_4 , SC_RAV_5 , SC_UNNAMED_1 , SC_UNNAMED_2 , SC_UNNAMED_3 , SC_UNNAMED_4 , SC_UNNAMED_5 , SC_UNNAMED_6 , SC_UNNAMED_7 , SC_UNNAMED_8 , SC_UNNAMED_9 , SC_UNNAMED_10 , SC_UNNAMED_11 , SC_UNNAMED_12 , SC_UNNAMED_13 , SC_UNNAMED_14 , SC_UNNAMED_15 , SC_UNNAMED_16 , SC_UNNAMED_17 , SC_UNNAMED_18 , SC_UNNAMED_19 , SC_UNNAMED_20 , SC_UNNAMED_21 , MAX_SYSTEM_COLOR }; #define SC_GRADIENT_GREEN_BEGIN SC_GRADIENT_GREEN_1 #define SC_GRADIENT_GREEN_END SC_GRADIENT_GREEN_7 #define SC_GRADIENT_BLUE_BEGIN SC_GRADIENT_BULE_1 #define SC_GRADIENT_BLUE_END SC_GRADIENT_BULE_8 class CWispDrawObj { public: CWispDrawObj(); virtual ~CWispDrawObj(); COLORREF m_crSystem[MAX_SYSTEM_COLOR]; public: virtual bool Init(); virtual void Release(); virtual void InitSystemColor(); virtual void DrawBorder(CWispDC*pDC,WISP_RECT*pRect,int nSize); virtual void DrawCaption(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawToolbarBK(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawClient(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawCtrlBorder(CWispDC* pDC, WISP_RECT* pRect, int nSize); virtual void DrawCtrlClient(CWispDC* pDC, WISP_RECT* pRect); virtual void DrawCtrlStaticEdge(CWispDC* pDC, WISP_RECT* pRect); virtual void DrawCtrlClientEdge(CWispDC* pDC, WISP_RECT* pRect); virtual void DrawCtrlModalFrame(CWispDC* pDC, WISP_RECT* pRect); virtual void DrawCtrlFocusRect(CWispDC* pDC, WISP_RECT* pRect); virtual void DrawVertScrollRect(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawVertScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawHorzScrollRect(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawHorzScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawSplitRect(CWispDC*pDC,WISP_RECT*pRect,bool bHorz); virtual void DrawButtonClient(CWispDC*pDC,WISP_RECT*pRect,UINT State); virtual void DrawButtonFrameRect(CWispDC*pDC,WISP_RECT*pRect,UINT State); virtual void DrawTabBackground(CWispDC* pDC, WISP_RECT* pRect); virtual void DrawTabItem(CWispDC* pDC, WISP_RECT* pRect, UINT State); virtual void DrawHeaderFrameRect(CWispDC*pDC,WISP_RECT*pRect,UINT State); virtual void DrawProgress(CWispDC* pDC, WISP_RECT* pRect, UINT uStyle, int nPrecent); virtual void DrawSystemStandardIcon(CWispDC* pDC,const WISP_RECT* pRect, UINT uStyle, UINT State=STATUS_NORMAL); virtual void DrawCursorArrow(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawCursorDrag(CWispDC*pClipDC,WISP_POINT*pHotPT); virtual void DrawCursorResizeVert(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawCursorResizeHorz(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawCursorResizeLeftLean(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawCursorResizeRightLean(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawListColumnTitleBK(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawListSelectedItemBK(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawMenuIconSpaceBK(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawMenuBK(CWispDC* pClipDC,WISP_RECT*pRc,UINT Status); virtual void DrawMenuString(CWispDC* pClipDC,WISP_RECT*pRc,WISP_PCSTR String,UINT Status); virtual void DrawMenuTopFrame(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawMenuBottomFrame(CWispDC* pClipDC,WISP_RECT*pRc); public: void DrawCursor(WISP_POINT* pHotPT, CWispDC* pClipDC,UINT CursorType,CWispDIB*pDIB); }; class CWispDIBDrawObj : public CWispDrawObj { public: CWispDIBDrawObj(); virtual ~CWispDIBDrawObj(); CWispDIBList m_DIBVertIncSpin; CWispDIBList m_DIBVertDecSpin; CWispDIBList m_DIBHorzIncSpin; CWispDIBList m_DIBHorzDecSpin; CWispDIBList m_DIBClose; CWispDIBList m_DIBMin; CWispDIBList m_DIBMax; CWispDIBList m_DIBRestore; CWispDIBList m_DIBRedioBoxIcon; CWispDIB m_DIBArrow; CWispDIB m_DIBHResize; CWispDIB m_DIBVResize; CWispDIB m_DIBLResize; CWispDIB m_DIBRResize; CWispDIB m_DIBDrag; const char* m_szSkinDir; public: virtual bool Init(); virtual void Release(); virtual void DrawBorder(CWispDC*pDC,WISP_RECT*pRect,int nSize); virtual void DrawCaption(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawToolbarBK(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawSystemStandardIcon(CWispDC* pDC,const WISP_RECT* pRect, UINT uStyle, UINT State); virtual void DrawCursorArrow(CWispDC*pClipDC,WISP_POINT*pHotPT); virtual void DrawCursorDrag(CWispDC*pClipDC,WISP_POINT*pHotPT); virtual void DrawCursorResizeVert(CWispDC*pClipDC,WISP_POINT*pHotPT); virtual void DrawCursorResizeHorz(CWispDC*pClipDC,WISP_POINT*pHotPT); virtual void DrawSplitRect(CWispDC*pDC,WISP_RECT*pRect,bool bHorz); virtual void DrawCursorResizeLeftLean(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawCursorResizeRightLean(CWispDC* pClipDC,WISP_POINT* pHotPT); virtual void DrawVertScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawHorzScrollSlideRect(CWispDC*pDC,WISP_RECT*pRect); virtual void DrawListColumnTitleBK(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawListSelectedItemBK(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawMenuIconSpaceBK(CWispDC* pClipDC,WISP_RECT*pRc); virtual void DrawMenuBK(CWispDC* pClipDC,WISP_RECT*pRc,UINT Status); virtual void DrawMenuString(CWispDC* pClipDC,WISP_RECT*pRc,WISP_PCSTR String,UINT Status); }; #endif ================================================ FILE: Project/Wisp/Source/WispEdit.cpp ================================================ #include "StdAfx.h" #include "WispEdit.h" WISP_MSG_MAP_BEGIN(CWispEdit) WISP_MSG_MAP(WISP_WM_CHAR,OnChar) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_UPDATE_BORDER,OnUpdateBorder) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent); WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_LOST_FOCUS,OnLostFocus) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CWispEdit) WISP_MSG_EVENT_MAP(WISP_ID_COPY,OnEventCopy) WISP_MSG_EVENT_MAP(WISP_ID_PASTE,OnEventPaste) WISP_MSG_EVENT_MAP_END bool CWispEdit::OnCreate(IN WISP_MSG*pMsg) { m_crCaret = SYS_COLOR[SC_BLACK]; return true; } bool CWispEdit::OnGetFocus(IN WISP_MSG* pMsg) { WISP_CHAR *pData = m_WndText; SendCmdMsg(WISP_CMD_EN_SETFOCUS,0,pData); return true; } bool CWispEdit::OnLostFocus(IN WISP_MSG*pMsg) { WISP_CHAR *pData = m_WndText; SendCmdMsg(WISP_CMD_EN_KILLFOCUS,0,pData); if(m_CurrentInputStat==SELECT_STATE) { m_CurrentInputStat=EDIT_STATE; m_bSelectFlag=false; } return true; } bool CWispEdit::OnMouseLeave(IN WISP_MSG*pMsg) { if(m_CurrentInputStat==SELECT_STATE) { if(pMsg->bMsgLBTDown) { return false; } m_CurrentInputStat=EDIT_STATE; m_bSelectFlag=false; return true; } return true; } bool CWispEdit::OnMouseEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) return true; if(pMsg->KeyEvent.bKeyDown == false) return OnMouseLeftButtonUp(pMsg); else return OnMouseLeftButtonDown(pMsg); return true; } bool CWispEdit::OnMouseLeftButtonUp(IN WISP_MSG*pMsg) { int index; WISP_POINT point,CaretPosPT; if(m_bSelectFlag) { GetCaretPos(&CaretPosPT); index = GetCharIndexByPoint(pMsg->MsgMouseWndPT,point); if(index!=m_CurrentCaretHot) { SetCaretPos(point.x,CaretPosPT.y); } m_CurrentCaretHot=index; m_SelectEnd=index; Update(); } m_CurrentInputStat=EDIT_STATE; return true; } bool CWispEdit::OnMouseMove(IN WISP_MSG*pMsg) { int index; WISP_POINT point,CaretPosPT; if(pMsg->bMsgLBTDown==false) return true; GetCaretPos(&CaretPosPT); index = GetCharIndexByPoint(pMsg->MsgMouseWndPT,point); m_SelectRect.y = CaretPosPT.y; if(point.x > CaretPosPT.x) { m_SelectRect.x = CaretPosPT.x; m_SelectRect.cx = point.x-CaretPosPT.x; } else { m_SelectRect.x = point.x; m_SelectRect.cx = CaretPosPT.x-point.x; } m_SelectRect.cy = 12; m_SelectEnd=index; if(m_SelectBegin!=index) { if((m_Style&WISP_ES_READONLY)==0) m_bSelectFlag=true; } else { m_bSelectFlag=false; } Update(); return true; } bool CWispEdit::OnMouseLeftButtonDown(IN WISP_MSG*pMsg) { int index; WISP_POINT point,CaretPosPT; if(m_bSelectFlag) m_bSelectFlag=false; GetCaretPos(&CaretPosPT); index = GetCharIndexByPoint(pMsg->MsgMouseWndPT,point); if(index!=m_CurrentCaretHot) { SetCaretPos(point.x,CaretPosPT.y); } m_CurrentCaretHot=index; m_SelectBegin=index; m_SelectEnd=index; m_CurrentInputStat=SELECT_STATE; Update(); return true; } int CWispEdit::GetCharIndexByPoint(WISP_POINT point,WISP_POINT& retpoint) { int x,i; int CurCharWidth=0; x = m_CurrentShowRect.x; for(i = 0; i < m_WndText.m_Length;i++) { CurCharWidth=m_ClientDC.GetTextExtent(m_WndText+i,1); x += CurCharWidth; if(x > point.x) break; } if(x > point.x) retpoint.x = x-CurCharWidth; else retpoint.x = x; retpoint.y=point.y; return i; } bool CWispEdit::OnKeyEvent(IN WISP_MSG*pMsg) { UINT key; WISP_MSG Msg; bool Down; if(m_Style&WISP_ES_READONLY) return true; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON || pMsg->KeyEvent.KeyType == WISP_VK_RBUTTON) return OnMouseEvent(pMsg); Down = pMsg->KeyEvent.bKeyDown; if(Down) { if(SendCmdMsg(WISP_CMD_EN_INPUT_KEY_DOWN,pMsg->KeyEvent.KeyType)==false) return false; } else { if(SendCmdMsg(WISP_CMD_EN_INPUT_KEY_UP,pMsg->KeyEvent.KeyType)==false) return false; if(pMsg->KeyEvent.KeyType==WISP_VK_SHIFT) { m_CurrentInputStat=EDIT_STATE; if(m_bSelectFlag) { m_SelectEnd=m_CurrentCaretHot; } //OutputDebugString("shift Up...\n"); Update(); } return true; } key=pMsg->KeyEvent.KeyType; switch(key) { case WISP_VK_SHIFT|WISP_MOD_SHIFT: if(Down) { if(m_CurrentInputStat!=SELECT_STATE) { m_CurrentInputStat=SELECT_STATE; m_SelectBegin=m_CurrentCaretHot; m_SelectEnd=m_CurrentCaretHot; } //OutputDebugString("shift down...\n"); } Update(); return false; case WISP_VK_A|WISP_MOD_CTRL: if(m_WndText.m_Length) SelectText(0,m_WndText.m_Length); Update(); return false; case WISP_VK_V|WISP_MOD_CTRL: case WISP_MOD_CTRL|WISP_VK_INSERT: Msg.hWnd = this; Msg.Msg = WISP_WM_EVENT; Msg.Command.CmdID = WISP_ID_PASTE; POST_MSG(&Msg); return false; case WISP_MOD_SHIFT|WISP_VK_INSERT: case WISP_VK_C|WISP_MOD_CTRL: Msg.hWnd = this; Msg.Msg = WISP_WM_EVENT; Msg.Command.CmdID = WISP_ID_COPY; POST_MSG(&Msg); return false; case WISP_VK_LEFT|WISP_MOD_SHIFT: case WISP_VK_LEFT|WISP_MOD_CTRL: case WISP_VK_LEFT: if(m_pWispBase->m_KeyMap[WISP_VK_CONTROL]) OnHomeKey(pMsg); else OnLeftKey(pMsg); break; case WISP_VK_RIGHT|WISP_MOD_SHIFT: case WISP_VK_RIGHT|WISP_MOD_CTRL: case WISP_VK_RIGHT: if(m_pWispBase->m_KeyMap[WISP_VK_CONTROL]) OnEndKey(pMsg); else OnRightKey(pMsg); break; case WISP_VK_BACK: OnBackKey(pMsg); break; case WISP_VK_HOME|WISP_MOD_SHIFT: case WISP_VK_HOME: OnHomeKey(pMsg); break; case WISP_VK_END|WISP_MOD_SHIFT: case WISP_VK_END: OnEndKey(pMsg); break; case WISP_VK_DELETE: OnDeleteKey(pMsg); break; default: break; } Update(); return true; } bool CWispEdit::IsInsertChar(WISP_CHAR wch) { const WISP_CHAR *pData = m_WndText; int nCharNum,nCurrentCharWidth,nCaretLineCharNum = 0; int nSelectWidth=0; nCurrentCharWidth = m_ClientDC.GetTextExtent(&wch,1); if(m_WndText.IsEmpty()) return true; if(m_Style & (WISP_ES_AUTOHSCROLL | WISP_ES_HSCROLL)) return true; if(m_bSelectFlag&& m_SelectBegin!=m_SelectEnd) { int a = MAX(m_SelectBegin,m_SelectEnd); int b = MIN(m_SelectBegin,m_SelectEnd); nSelectWidth = m_ClientDC.GetTextExtent(pData+b,a-b); } nCharNum = m_ClientDC.GetTextExtent(pData)-nSelectWidth; return ((nCharNum + nCurrentCharWidth) <= m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width); } bool CWispEdit::OnChar(IN WISP_MSG*pMsg) { const WISP_CHAR *pData; int nCurrentCharWidth,nStringWidth,nCharWidth,nCharWidth2; int k,l; WISP_POINT point; WISP_CHAR nKeyValue; if(m_Style&WISP_ES_READONLY) return true; //if(m_CurrentInputStat==SELECT_STATE) /// return true; pData = m_WndText; nKeyValue = pMsg->Char.Char; if(nKeyValue == WISP_VK_BACK) { Update(); return false; } if(nKeyValue == WISP_VK_RETURN) { Update(); return false; } if(nKeyValue == '\n') { return false; if(IsInsertChar(nKeyValue)) { InsertChar(&nKeyValue); Update(); m_CurrentCaretHot++; } } nCurrentCharWidth = m_ClientDC.GetTextExtent(&nKeyValue,1); if(IsInsertChar(nKeyValue) == false) { Update(); return false; } InsertChar(&nKeyValue); nCharWidth = m_ClientDC.GetTextExtent(m_WndText,m_CurrentCaretHot+1); nCharWidth2 = m_ClientDC.GetTextExtent(m_WndText,m_CurrentCaretHot); nCurrentCharWidth = nCharWidth-nCharWidth2; GetCaretPos(&point); if(m_Style & WISP_ES_LEFT) { if(point.x + nCurrentCharWidth > m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { point.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; if(m_Style & WISP_ES_AUTOHSCROLL)// { if(m_CurrentCaretHot != m_WndText.m_Length) point.x = (m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) / 4 * 3; } } else { point.x += nCurrentCharWidth; } } pData=m_WndText; m_CurrentCaretHot++; l = GetCurrentLinePosition(); k = GetLineWidth(&pData[m_CurrentCaretHot-l]); nStringWidth = m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot-l],k); if(nStringWidth < m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { if(m_Style & WISP_ES_CENTER) point.x = (m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width - nStringWidth) / 2 + m_ClientDC.GetTextExtent(pData,m_CurrentCaretHot); else if(m_Style & WISP_ES_RIGHT) point.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; } SetCaretPos(point.x,point.y); UpdateClient(); return false; } bool CWispEdit::SetWindowText(const WISP_CHAR* pString) { if(pString==NULL) return false; m_WndText = pString; int x=0,y=0; if(!(m_Style & WISP_ES_MULTILINE)) y = (m_ClientRect.cy - m_Caret.pDIB->m_FrameBuffer.Height)/2; else y = 0; m_CurrentStringLen = TStrLen(pString); if(m_Style & WISP_ES_CENTER) { m_CurrentLineCharIndex=m_CurrentStringLen/2; m_CurrentCaretHot=m_CurrentLineCharIndex; if(m_CurrentStringLen%2) x=(m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width-m_ClientDC.GetTextExtent(&pString[m_CurrentLineCharIndex],1))/2; else x=(m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width)/2; } else { m_CurrentLineCharIndex=0; m_CurrentCaretHot=0; } SetCaretPos(x,y); UpdateClient(); return true; } bool CWispEdit::OnRecalcLayout(IN WISP_MSG*pMsg) { return true; } bool CWispEdit::OnUpdateClient(IN WISP_MSG*pMsg) { WISP_POINT point; int nTmp = 0,nLineCurrentPosition = 0; int ShowBegin,ShowEnd; int len=0 ; WISP_RECT tempRc; ShowBegin=0; ShowEnd=0; if((m_Style&WISP_WS_BACK_TRANS)==0) { if( !(m_ParentWnd->m_CtrlType == WISP_CTRL_FORM && (m_Style & WISP_ES_READONLY)) ) m_pWispBase->m_pCurDrawObj->DrawCtrlClient(&m_WindowDC, &m_ClientRect); } if(m_WndText.IsEmpty()) return false; GetCaretPos(&point); if(!(m_Style & WISP_ES_MULTILINE)) m_CurrentShowRect.y=0; else m_CurrentShowRect.y = point.y; m_CurrentShowRect.cy = m_ClientRect.cy; m_CurrentShowRect.x = point.x - m_ClientDC.GetTextExtent(m_WndText,m_CurrentCaretHot); m_CurrentShowRect.cx = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width-m_CurrentShowRect.x; tempRc = m_CurrentShowRect; if(m_bSelectFlag&&m_SelectBegin!=m_SelectEnd) { ShowBegin=MIN(m_SelectBegin,m_SelectEnd); ShowEnd=MAX(m_SelectBegin,m_SelectEnd); } if(ShowBegin) { m_ClientDC.SetTextStyle(WISP_TEXT_TRANS); m_ClientDC.DrawString(m_WndText,&m_CurrentShowRect,WISP_DT_SINGLELINE|WISP_DT_VCENTER,ShowBegin); len = m_ClientDC.GetTextExtent(m_WndText,ShowBegin); } if(ShowEnd-ShowBegin) { m_ClientDC.SetTextStyle(WISP_TEXT_OPAQUE); m_ClientDC.SetTextBKColor(m_BSelColor); tempRc.x += len; tempRc.cx -= len; m_ClientDC.DrawString(m_WndText+ShowBegin,&tempRc,WISP_DT_SINGLELINE|WISP_DT_VCENTER,ShowEnd-ShowBegin ); len = m_ClientDC.GetTextExtent(m_WndText+ShowBegin,ShowEnd-ShowBegin); } if(ShowEnd!=m_WndText.m_Length) { tempRc.x += len; tempRc.cx -= len; m_ClientDC.SetTextStyle(WISP_TEXT_TRANS); m_ClientDC.DrawString(m_WndText+ShowEnd,&tempRc,WISP_DT_SINGLELINE|WISP_DT_VCENTER); } return false; } bool CWispEdit::OnUpdateBorder(IN WISP_MSG*pMsg) { if(m_Style & WISP_WS_BORDER) { m_pWispBase->m_pCurDrawObj->DrawCtrlBorder(&m_WindowDC, &m_WindowRect, m_BorderSize); } return false; } CWispEdit::CWispEdit(void) { m_CurrentCaretHot = 0; m_DebugValue = 0; m_CtrlType = WISP_CTRL_EDIT; } CWispEdit::~CWispEdit(void) { } int CWispEdit::GetMaxShowCharNum(WISP_CHAR* lpszString, int nWidth,OUT int *nLength, bool isMultiLine) { int i, nCount; int nRetLength = 0; CODE_ASSERT(lpszString); nCount = TStrLen(lpszString); if(nCount == 0) { if(nLength) *nLength = 0; return 0; } if(isMultiLine) { for (i = 0; i < nCount; i++) { if(lpszString[i] == '\n' || lpszString[i] == '\r') { if(i + 1 < nCount) { if(lpszString[i+1] == '\n' || lpszString[i+1] == 'r') { if(lpszString[i] != lpszString[i+1]) i++; } } i++; break; } if(nRetLength + m_ClientDC.GetTextExtent(&lpszString[i],1) > nWidth) break; else nRetLength += m_ClientDC.GetTextExtent(&lpszString[i],1); } }else { for (i = 0; i < nCount; i++) if(nRetLength + m_ClientDC.GetTextExtent(&lpszString[i],1) > nWidth) break; else nRetLength += m_ClientDC.GetTextExtent(&lpszString[i],1); } if(nLength) *nLength = nRetLength; return i; } bool CWispEdit::Create( IN WISP_CHAR*Name,IN const CWispRect&Rect,IN CWispBaseWnd*pParentWnd,IN UINT CmdID, IN UINT Style,IN UINT ShowMode) { return Create(Name,Rect.x,Rect.y,Rect.cx,Rect.cy,pParentWnd,CmdID,Style,ShowMode); } bool CWispEdit::Create(IN WISP_RECT&RectAtWnd,IN UINT Style,IN CWispBaseWnd*pParentWnd,IN UINT CmdID) { return Create(NULL,RectAtWnd.x,RectAtWnd.y,RectAtWnd.cx,RectAtWnd.cy,pParentWnd,CmdID,Style); } bool CWispEdit::Create(IN WISP_CHAR* Name,IN INT x,IN INT y,IN INT cx,IN INT cy,IN CWispBaseWnd*pParentWnd,IN UINT CmdID,IN UINT Style,IN UINT ShowMode) { if(!(Style & WISP_ES_MULTILINE)) Style &= ~(WISP_ES_AUTOVSCROLL | WISP_ES_VSCROLL); else if(Style & (WISP_ES_RIGHT | WISP_ES_CENTER)) { Style = Style & ~(WISP_ES_AUTOHSCROLL | WISP_ES_HSCROLL); } if((Style & (WISP_ES_RIGHT | WISP_ES_CENTER))==false) Style|=WISP_ES_LEFT; if(CWispWnd::Create(Name,x, y, cx, cy,pParentWnd,CmdID,Style & (~WISP_WS_CAPTION),ShowMode) == false) return false; if(Style & (WISP_ES_AUTOHSCROLL | WISP_ES_AUTOVSCROLL | WISP_ES_VSCROLL | WISP_ES_VSCROLL)) m_StringMaxLen = WISP_EDIT_MAX_TEXT_LEN+1; else m_StringMaxLen = 0; if( Style & WISP_WS_BORDER ) m_BorderSize = 2; else m_BorderSize = 0; if(Style & WISP_ES_VSCROLL) EnableScrollBar(WISP_SB_VERT); if(Style & WISP_ES_HSCROLL) EnableScrollBar(WISP_SB_HORZ); CreateCaret(WISP_DI_CARET); if(Style & WISP_ES_MULTILINE) m_LineMaxLen = 1024; else m_LineMaxLen = 0; if(Style & WISP_ES_RIGHT) { m_Caret.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; } else if(Style & WISP_ES_CENTER) { m_Caret.x = m_ClientRect.cx / 2; } else { m_Caret.x = 0; } if(!(Style & WISP_ES_MULTILINE)) m_Caret.y = (m_ClientRect.cy - m_Caret.pDIB->m_FrameBuffer.Height)/2; else m_Caret.y = 0; if((m_Style &WISP_ES_READONLY)==0) ShowCaret(true); m_bSelectFlag=false; m_SelectBegin=0; m_SelectEnd=0; m_CurrentInputStat=EDIT_STATE; m_BSelColor=SYS_COLOR[SC_CTRL_HOVER_FOCUS]; return true; } void CWispEdit::OnLeftKey(IN WISP_MSG *pMsg) { const WISP_CHAR *pData=m_WndText; int nLeftLen; WISP_POINT point; int nPrevCharWidth; //int nCurrentLinePos; GetCaretPos(&point); if(m_CurrentCaretHot == 0) { if(m_bSelectFlag&&m_pWispBase->m_KeyMap[WISP_VK_SHIFT]==0) m_bSelectFlag=false; return; } nPrevCharWidth = m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot-1],1); if(point.x - nPrevCharWidth < 0) { nLeftLen = m_ClientDC.GetTextExtent(pData,m_CurrentCaretHot-1); if( nLeftLen < m_ClientRect.cx / 4) point.x = nLeftLen; else point.x = m_ClientRect.cx / 4; } else point.x -= m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot-1],1); SetCaretPos(point.x,point.y); if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) { if(m_bSelectFlag&&m_SelectBegin==m_CurrentCaretHot-1) m_bSelectFlag=false; else { if(m_bSelectFlag==false) m_SelectBegin=m_CurrentCaretHot; m_SelectEnd=m_CurrentCaretHot-1; m_bSelectFlag=true; } } else m_bSelectFlag=false; m_CurrentCaretHot--; } void CWispEdit::OnRightKey(IN WISP_MSG *pMsg) { const WISP_CHAR *pData=m_WndText; WISP_POINT point; int nPrevCharWidth; if(m_CurrentCaretHot == m_WndText.m_Length) { if(m_bSelectFlag&&m_pWispBase->m_KeyMap[WISP_VK_SHIFT]==0) m_bSelectFlag=false; return; } nPrevCharWidth = m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot],1); GetCaretPos(&point); if(m_CurrentCaretHot >= m_WndText.m_Length) return; if(point.x +m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot],1) > m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) point.x = m_ClientRect.cx / 4 * 3; else point.x += m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot],1); SetCaretPos(point.x,point.y); if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) { if(m_bSelectFlag&&m_SelectBegin==m_CurrentCaretHot+1) m_bSelectFlag=false; else { if(m_bSelectFlag==false) m_SelectBegin=m_CurrentCaretHot; m_SelectEnd=m_CurrentCaretHot+1; m_bSelectFlag=true; } } else m_bSelectFlag=false; m_CurrentCaretHot++; } void CWispEdit::OnReturnKey(IN WISP_MSG *pMsg) { } void CWispEdit::OnHomeKey(IN WISP_MSG *pMsg) { const WISP_CHAR *pData = m_WndText; WISP_POINT point; int nStringWidth; if(m_CurrentCaretHot == 0) { if(m_bSelectFlag&&m_pWispBase->m_KeyMap[WISP_VK_SHIFT]==0) m_bSelectFlag=false; return ; } nStringWidth = m_ClientDC.GetTextExtent(pData); GetCaretPos(&point); point.x = 0; if(nStringWidth < m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { if(m_Style & WISP_ES_CENTER) point.x = (m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width - nStringWidth) / 2; else if(m_Style & WISP_ES_RIGHT) point.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width - nStringWidth; } SetCaretPos(point.x,point.y); if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) { if(m_bSelectFlag&&m_SelectBegin==0) { m_bSelectFlag=false; } else { if(m_bSelectFlag==false) m_SelectBegin=m_CurrentCaretHot; m_SelectEnd=0; m_bSelectFlag=true; } } else { m_bSelectFlag=false; } m_CurrentCaretHot = 0; } void CWispEdit::OnEndKey(IN WISP_MSG *pMsg) { const WISP_CHAR *pData = m_WndText; WISP_POINT point; GetCaretPos(&point); int nStringWidth = 0; nStringWidth = m_ClientDC.GetTextExtent(pData); if(nStringWidth > m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { point.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; } else { if(m_Style & WISP_ES_CENTER) point.x = (m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width - nStringWidth) / 2 + m_ClientDC.GetTextExtent(pData); else if(m_Style & WISP_ES_RIGHT) point.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; else point.x = nStringWidth; } SetCaretPos(point.x, point.y); if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) { if(m_bSelectFlag&&m_SelectBegin==m_WndText.m_Length) { m_bSelectFlag=false; }else { if(m_bSelectFlag==false) m_SelectBegin=m_CurrentCaretHot; m_SelectEnd=m_WndText.m_Length; m_bSelectFlag=true; } } else m_bSelectFlag=false; m_CurrentCaretHot = m_WndText.m_Length; } void CWispEdit::OnBackKey(IN WISP_MSG *pMsg) { if(m_CurrentCaretHot == 0 || m_CurrentCaretHot > m_WndText.m_Length) return; DeleteChar(m_CurrentCaretHot,1,pMsg); } void CWispEdit::OnDeleteKey(IN WISP_MSG *pMsg) { int nStringWidth; WISP_POINT point; if(m_bSelectFlag&&m_SelectBegin!=m_SelectEnd) { WISP_POINT CaretPoint; GetCaretPos(&CaretPoint); int begin = MIN(m_SelectBegin,m_SelectEnd); int end = MAX(m_SelectBegin,m_SelectEnd); WISP_POINT point = GetPositionByIndex(begin); m_WndText.Delete(begin,end-begin); m_CurrentCaretHot=begin; if(point.x<0) point.x=0; CaretPoint.x = point.x; SetCaretPos(CaretPoint.x,CaretPoint.y); m_bSelectFlag=false; m_SelectBegin=0; m_SelectEnd=0; return; } if(m_CurrentCaretHot == m_WndText.m_Length) return; GetCaretPos(&point); nStringWidth = m_ClientDC.GetTextExtent(m_WndText+m_CurrentCaretHot+1); if(nStringWidth > m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width - point.x) { m_WndText.Delete(m_CurrentCaretHot); } else { nStringWidth = m_ClientDC.GetTextExtent(m_WndText,m_CurrentCaretHot); if(nStringWidth > point.x) { nStringWidth = m_ClientDC.GetTextExtent(m_WndText+m_CurrentCaretHot+1,1); m_WndText.Delete(m_CurrentCaretHot); point.x += nStringWidth; } else { m_WndText.Delete(m_CurrentCaretHot); } } nStringWidth = m_ClientDC.GetTextExtent(m_WndText); if(nStringWidth < m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { if(m_Style & WISP_ES_CENTER) point.x = (m_ClientRect.cx - nStringWidth - m_Caret.pDIB->m_FrameBuffer.Width) / 2 + m_ClientDC.GetTextExtent(m_WndText,m_CurrentCaretHot); else if(m_Style & WISP_ES_RIGHT) point.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; } SetCaretPos(point.x,point.y); } int CWispEdit::InsertChar(IN WISP_CHAR *pChar,IN int nPosition,IN int Counter) { int nret=0; //int nStringWidth; WISP_POINT CaretPoint; if(SendCmdMsg(WISP_CMD_EN_CHANGING)==false) return nret; if(m_bSelectFlag&&m_SelectBegin!=m_SelectEnd) { GetCaretPos(&CaretPoint); int begin = MIN(m_SelectBegin,m_SelectEnd); int end = MAX(m_SelectBegin,m_SelectEnd); WISP_POINT point = GetPositionByIndex(begin); m_WndText.Delete(begin,end-begin); m_CurrentCaretHot=begin; CaretPoint.x = point.x; SetCaretPos(CaretPoint.x,CaretPoint.y); m_bSelectFlag=false; m_SelectBegin=0; m_SelectEnd=0; } if(nPosition==-1) nPosition = m_CurrentCaretHot; if(Counter==1) nret = m_WndText.Insert(nPosition, *pChar); else m_WndText.Insert(nPosition,pChar); SendCmdMsg(WISP_CMD_EN_CHANGED); return nret; } int CWispEdit::DeleteChar(int nPosition,int nCount,WISP_MSG *pMsg) { int nret=0; if(nPosition == -1) nPosition = m_CurrentCaretHot; if(SendCmdMsg(WISP_CMD_EN_CHANGING)) { if(nPosition==m_WndText.m_Length) nPosition--; OnLeftKey(pMsg); m_WndText.Delete(nPosition, nCount); SendCmdMsg(WISP_CMD_EN_CHANGED); } else return 0; return nCount; } int CWispEdit::GetCurrentLinePosition(OUT int nIndex) { const WISP_CHAR *pData = m_WndText; WISP_POINT point; int i,j,sum,k,n; if(!(m_Style & WISP_ES_MULTILINE)) return m_CurrentCaretHot; GetCaretPos(&point); for(j = 0, i = m_CurrentCaretHot - 1; i>= 0;i--, j++) { if(pData[i] == '\n' || pData[i] == '\r') break; } if(m_Style & (WISP_ES_AUTOHSCROLL | WISP_ES_HSCROLL)) { i = j; j = j % WISP_EDIT_MAX_LINETEXT_LEN; if(j == 0 && i != 0) j = WISP_EDIT_MAX_LINETEXT_LEN; return j; } for(n = 0, i = 0, sum = 0; i < j; i++,n++) { k = m_ClientDC.GetTextExtent(&pData[m_CurrentCaretHot - j + i],1); if(sum + k < m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) sum+=k; else { sum = k; n = -1; } } return n; } int CWispEdit::GetPrevLineBeginPosition(int nEndPostion,int *nStringLen) { const WISP_CHAR *pData = m_WndText; int nRet,k,i,j,sum; int oldEnd = nEndPostion; if(pData[nEndPostion] == '\n' || pData[nEndPostion] == '\r') if(pData[nEndPostion-1] == '\n' || pData[nEndPostion-1] == '\r') { if(pData[nEndPostion-1] != pData[nEndPostion]) nEndPostion -= 2; else nEndPostion -= 1; }else nEndPostion -= 1; if(m_Style & (WISP_ES_AUTOHSCROLL | WISP_ES_HSCROLL)) { for(j = 0,i = nEndPostion;i >= 0;i--,j++) { if(pData[i] == '\n' || pData[i] == '\r') break; } j = j % WISP_EDIT_MAX_LINETEXT_LEN; } else { for(sum = 0,j = 0, i = nEndPostion;i>=0;i--,j++) { if(pData[i] != '\n' && pData[i] != '\r') { k = m_ClientDC.GetTextExtent(&pData[i],1); sum += k; if(sum > m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { sum -= k; break; } }else break; } } nRet = nEndPostion - j + 1; if(nStringLen) { for(sum = 0,i = nRet; i <= oldEnd; i++) { if(pData[i] != '\n' && pData[i] != '\r') sum += m_ClientDC.GetTextExtent(&pData[i],1); } *nStringLen = sum; } return nRet; } int CWispEdit::GetCaretLineCharWidth() { const WISP_CHAR *pData = m_WndText; if(m_Style & WISP_ES_MULTILINE) return GetCurrentLinePosition(); return m_ClientDC.GetTextExtent(pData); } int CWispEdit::GetLineWidth(const WISP_CHAR *pSrc) { int i; for(i = 0; pSrc[i];i++) { if(pSrc[i] == '\n' && pSrc[i] == '\r') { if(i + 1 < m_WndText.m_Length) { if(pSrc[i+1] == '\n' || pSrc[i+1] == '\r') i++; } i++; break; } } return i; } int CWispEdit::CalcLineNum(const WISP_CHAR *pSrc,int nCount,int nPerLineMaxCharNum) { int i,j,nLineNum,nCharNum; if(nCount == -1) nCount = TStrLen(pSrc); if(nCount == 0) return 0; nCharNum = 0; for(nLineNum = 1, j = 0, i = 0; i < nCount; i++) { if(pSrc[i] == '\r' || pSrc[i] == '\n') { if(i != nCount-1) { if(pSrc[i + 1] == '\r' || pSrc[i + 1] == '\n') i++; } nLineNum++; nLineNum = nLineNum + nCharNum / nPerLineMaxCharNum; if(((nCharNum % nPerLineMaxCharNum) == 0) && (nCharNum != 0)) nLineNum -= 1; nCharNum = 0; } else nCharNum++; } nLineNum = nLineNum + nCharNum / nPerLineMaxCharNum; if(((nCharNum % nPerLineMaxCharNum) == 0) && (nCharNum != 0)) nLineNum -= 1; return nLineNum; } int CWispEdit::CalcLineNumForWidth(const WISP_CHAR *pSrc,int nCount,int nLineWidth) { int i,j,nLineNum,nCharNum,nCharWidth; if(nCount == -1) nCount = TStrLen(pSrc); if(nCount == 0) return 0; nCharNum = 0; for(nLineNum = 1, j = 0, i = 0; i < nCount; i++) { if(pSrc[i] == '\r' || pSrc[i] == '\n') { if(i != nCount-1) { if(pSrc[i + 1] == '\r' || pSrc[i + 1] == '\n') i++; } nLineNum++; nCharNum = 0; } else { nCharWidth = m_ClientDC.GetTextExtent(&pSrc[i],1); if(nCharNum + nCharWidth > nLineWidth) { nLineNum++; nCharNum = nCharWidth; }else { nCharNum+=nCharWidth; } } } return nLineNum; } int CWispEdit::CaretLeftMove() { const WISP_CHAR *pData = m_WndText; if(m_CurrentCaretHot == 0) return 0; if(pData[m_CurrentCaretHot-1] != '\n' && pData[m_CurrentCaretHot-1] != '\r') m_CurrentCaretHot--; else { if(m_CurrentCaretHot - 2 >= 0 && (pData[m_CurrentCaretHot-2] == '\n' || pData[m_CurrentCaretHot-2] == '\r')) m_CurrentCaretHot--; m_CurrentCaretHot--; return 1; } return 0; } int CWispEdit::CaretRightMove() { const WISP_CHAR *pData = m_WndText; if(m_CurrentCaretHot >= m_WndText.m_Length) return 0; if(pData[m_CurrentCaretHot] != '\n' && pData[m_CurrentCaretHot] != '\r') { m_CurrentCaretHot++; }else { if((m_CurrentCaretHot+1 < m_WndText.m_Length) && (pData[m_CurrentCaretHot+1] == '\n' || pData[m_CurrentCaretHot+1] == '\r')) m_CurrentCaretHot++; m_CurrentCaretHot++; return 1; } return 0; } int CWispEdit::GetCurrentPosition(OUT int nIndex,OUT int *nLineLen) { const WISP_CHAR *pData = m_WndText; int i,j,k; for(j = 0, i = nIndex - 1; i>= 0;i--, j++) { if(pData[i] == '\n' || pData[i] == '\r') break; } if(nLineLen) { for(k = 0,i = nIndex; i < m_WndText.m_Length; i++,k++) if(pData[i] == '\n' || pData[i] == '\r') break; *nLineLen = j+k; } return j; } WISP_POINT CWispEdit::GetPositionByIndex(IN int index) { WISP_POINT Point; Point.x = 0; Point.y = 0; if(index <= m_WndText.m_Length) { int Width = m_ClientDC.GetTextExtent(m_WndText,index); Point.x = m_CurrentShowRect.x + Width; Point.y = m_CurrentShowRect.y; } return Point; } int CWispEdit::SelectText(int SelectBegin,int SelectEnd) { int nCaretPos = SelectEnd; if(m_WndText.Length()index) { if(x1-x2>CaretPoint.x) return false; } else { if(x2-x1 > m_ClientRect.cx-CaretPoint.x) return false; } return true; } void CWispEdit::EnableVisible(int index) { if(CharIsVisible(index)) return; } bool CWispEdit::OnEventPaste(IN WISP_MSG*pMsg) { int nStringWidth; INT Counter; WISP_POINT CaretPoint; if(m_Style&WISP_ES_READONLY) return true; if(m_pWispBase->m_ClipboardString.IsEmpty()==false) { Counter=m_pWispBase->m_ClipboardString.m_Length; InsertChar(m_pWispBase->m_ClipboardString,-1,Counter); GetCaretPos(&CaretPoint); nStringWidth = m_ClientDC.GetTextExtent(m_WndText,Counter,m_CurrentCaretHot); if(m_Style & WISP_ES_LEFT) { if(CaretPoint.x+nStringWidth > m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) { CaretPoint.x = m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width; if(m_Style & WISP_ES_AUTOHSCROLL)// { if(m_CurrentCaretHot != m_WndText.m_Length) CaretPoint.x = (m_ClientRect.cx - m_Caret.pDIB->m_FrameBuffer.Width) / 4 * 3; } } else { CaretPoint.x += nStringWidth; } m_CurrentCaretHot+=Counter; SetCaretPos(CaretPoint.x,CaretPoint.y); } Update(); } return true; } bool CWispEdit::OnEventCopy(IN WISP_MSG*pMsg) { CWispString ClipboardString; ClipboardString.Empty(); int begin,end; const WISP_CHAR *pData; pData = m_WndText; if(m_bSelectFlag==false) return false; begin = MIN(m_SelectBegin,m_SelectEnd); end=MAX(m_SelectBegin,m_SelectEnd); ClipboardString+=&pData[begin]; ClipboardString.Delete(end-begin,ClipboardString.m_Length-(end-begin)); m_pWispBase->SetClipboardString(ClipboardString); return true; } ================================================ FILE: Project/Wisp/Source/WispEdit.h ================================================ #ifndef _WISP_EDIT_H_ #define _WISP_EDIT_H_ #include "WispWnd.h" ////////////////////////////////////////////// //༭ ////////////////////////////////////////////// #define WISP_ES_EDIT_NORMAL (WISP_ES_LEFT | WISP_WS_THIN_BORDER | WISP_ES_AUTOHSCROLL) #define WISP_ES_AUTOHSCROLL 0x01000000 #define WISP_ES_AUTOVSCROLL 0x02000000 #define WISP_ES_CENTER 0x04000000 #define WISP_ES_LEFT 0x08000000 #define WISP_ES_LOWERCASE 0x10000000 #define WISP_ES_MULTILINE 0x20000000 #define WISP_ES_NOHIDESEL 0x40000000 #define WISP_ES_PASSWORD 0x80000000 #define WISP_ES_RIGHT 0x00010000 #define WISP_ES_UPPERCASE 0x00020000 #define WISP_ES_READONLY 0x00040000 #define WISP_ES_WANTRETURN 0x00080000 #define WISP_ES_HSCROLL 0x00100000 #define WISP_ES_VSCROLL 0x00200000 #define WISP_ES_EX_STATIC_EDGE 0x00000001 #define WISP_EDIT_TEXT_LEN 0x100 //#define WISP_EDIT_BORDER_COLOR RGB(127,157,185) #define WISP_EDIT_MAX_TEXT_LEN 30000 #define WISP_EDIT_MAX_LINETEXT_LEN 20 typedef struct _SELECTPOS{ int begin; int end; }SELECTPOS; class CWispEdit : public CWispWnd { typedef enum _INPUTSTAT{ EDIT_STATE=0, SELECT_STATE, }INPUTSTATE; //ÿ ASCII ַĿ INT m_CharLenArray[0x140]; //ַڵַеλá INT m_CurrentCaretHot; //ַڵС INT m_CurrentCaretLine; //ǰ༭ؼַĸ INT m_CurrentStringLen; // ༭ؼǶñΪ档 bool m_bIsMultiLine; //༭ؼַȡ Create ãCreate ûøֵʹĬֵ WISP_EDIT_MAX_TEXT_LEN // Style û WISP_ES_AUTOHSCROLL WISP_ES_AUTOVSCROLL WISP_ES_VSCROLL WISP_ES_VSCROLL ݿͻĴС㳤 INT m_StringMaxLen; //Ƕеı༭ؼʱпʾַ INT m_LineMaxLen; // ༭ؼɵı UINT m_TextRowNum; // ༭ؼÿпɵַĸ UINT m_TextColNum; // ǰеĿʼλ,ǰַָڵ INT m_CurrentLineCharIndex; // ǰк,ǰַָڵ INT m_CurrentLineNum; WISP_RECT m_CurrentShowRect; INT m_DebugValue; bool m_bSelectFlag; int m_SelectBegin; int m_SelectEnd; INPUTSTATE m_CurrentInputStat; public: CWispEdit(void); ~CWispEdit(void); public: bool Create( IN WISP_CHAR*Name,IN const CWispRect&Rect,IN CWispBaseWnd*pParentWnd = NULL,IN UINT CmdID = 0, IN UINT Style=WISP_WS_NORMAL,IN UINT ShowMode=WISP_SH_NORMAL); bool Create(IN WISP_RECT&RectAtWnd,IN UINT Style,IN CWispBaseWnd*pParentWnd,IN UINT CmdID); bool Create(IN WISP_CHAR* Name,IN INT x,IN INT y,IN INT cx,IN INT cy,IN CWispBaseWnd*pParentWnd=NULL,IN UINT CmdID=0,IN UINT Style=WISP_ES_EDIT_NORMAL,IN UINT ShowMode=WISP_SH_NORMAL); public://Ϣӳ DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG(OnLostFocus) DECLARE_WISP_MSG(OnChar) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnUpdateBorder) DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnMouseLeave) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnMouseEvent) DECLARE_WISP_MSG(OnMouseLeftButtonUp) DECLARE_WISP_MSG(OnMouseLeftButtonDown) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG(OnEventPaste); DECLARE_WISP_MSG(OnEventCopy); public: void OnKeyBack(void); void OnLeftKey(IN WISP_MSG *pMsg); void OnRightKey(IN WISP_MSG *pMsg); void OnReturnKey(IN WISP_MSG *pMsg); void OnBackKey(IN WISP_MSG *pMsg); void OnHomeKey(IN WISP_MSG *pMsg); void OnEndKey(IN WISP_MSG *pMsg); void OnDeleteKey(IN WISP_MSG *pMsg); //ڸĿɵַ // nLength ɵַij int GetMaxShowCharNum(WISP_CHAR* lpszString, INT nWidth,OUT INT *nLength = NULL, bool isMultiLine=FALSE); //жϱ༭ؼǷԲַ bool IsInsertChar(IN WISP_CHAR wch); INT InsertChar(IN WISP_CHAR *pChar,IN INT nPosition=-1,IN int Counter=1); INT DeleteChar(IN INT nPosition=-1,IN INT nCount = 1,IN WISP_MSG *pMsg=NULL); //ַڵλáڵǰеġ //int GetCurrentLinePosition(); INT GetCurrentLinePosition(INT nCharNum = -1); INT GetPrevLineBeginPosition(IN INT nEndPostion,OUT INT *nStringLen = NULL); //ַڵеijȡ INT GetCaretLineCharWidth(); INT GetLineWidth(IN const WISP_CHAR *pSrc); // nPerLineMaxCharNum һпɵַ INT CalcLineNum(IN const WISP_CHAR *pSrc,IN INT nCount = -1,IN INT nPerLineMaxCharNum = 0); // nLineWidth еؿ INT CalcLineNumForWidth(IN const WISP_CHAR *pSrc,IN INT nCount = -1,IN INT nLineWidth = -1); INT CaretLeftMove(); INT CaretRightMove(); INT GetCurrentPosition(OUT INT nIndex,INT *nLineLength=NULL); bool SetWindowText(const WISP_CHAR* pString); int GetCharIndexByPoint(WISP_POINT point,WISP_POINT&retpoint); WISP_POINT GetPositionByIndex(IN int index); WISP_RECT m_SelectRect; COLORREF m_BSelColor; int SelectText(int SelectBegin,int SelectEnd); bool CharIsVisible(int index); void EnableVisible(int index); }; #endif ================================================ FILE: Project/Wisp/Source/WispFileWnd.cpp ================================================ #include "StdAfx.h" #include ".\wispfilewnd.h" WISP_MSG_MAP_BEGIN(CWispFileWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_COMMAND,OnCommand) WISP_MSG_MAP_END(CWispSplitWnd) CWispFileWnd::CWispFileWnd(void) { } CWispFileWnd::~CWispFileWnd(void) { } bool CWispFileWnd::OnCreate(IN WISP_MSG*pMsg) { m_FolderTree.Create(NULL, 0,0,0,0, this, ID_FOLDER_TREE, WISP_WS_BORDER|LTS_NORMAL_SYTLE|LTS_SHOW_BUTTONS, WISP_SH_NORMAL);//|PLS_SHOW_CHECKBOXES|PLS_ENABLE_AUTOCHECK m_FolderList.Create(NULL, 0,0,0,0, this, ID_FOLDER_LIST, WISP_WS_BORDER|LTS_NORMAL_SYTLE|LTS_ENABLE_EDITLABLE|LTS_ENABLE_FR_HOVER, WISP_SH_NORMAL); InsertWnd(&m_FolderTree, 0, 200); InsertWnd(&m_FolderList, 0, 200); m_FolderList.InsertColumn(WSTR("File name"), 100); m_FolderList.InsertColumn(WSTR("Size"), 80); m_FolderList.InsertColumn(WSTR("Type"), 80); m_FolderList.InsertColumn(WSTR("Last write time"), 120); m_FolderTree.InsertColumn(WSTR("Folders"), 200); CLocalFileIO cFileIO; DWORD dwLogicDrivers = cFileIO.GetLogicalDrives(); WISP_CHAR wcDriver[MAX_PATH]={'A', ':', '\0'}; int nDriver=0; while(dwLogicDrivers && nDriver<=32) { if(dwLogicDrivers&1) { wcDriver[0] = 'A'+nDriver; CListStringItem* pItem = m_FolderTree.InsertItem(wcDriver); m_FolderTree.InsertItem(WSTR("..."), NULL, pItem); m_FolderTree.Expand(pItem); } nDriver++; dwLogicDrivers=dwLogicDrivers>>1; } return TRUE; } bool CWispFileWnd::OnCommand(IN WISP_MSG*pMsg) { if(pMsg->Command.CtrlType==WISP_CTRL_LIST) { // FolderTree if(pMsg->Command.CmdID==ID_FOLDER_TREE) { CListStringItem* pItem = (CListStringItem*)pMsg->Command.Param2; if(pMsg->Command.CmdMsg==WISP_CMD_PL_EXPANDED) { m_FolderTree.DeleteAllChildrenItems(pItem); FillFolderTree(pItem); } else if(pMsg->Command.CmdMsg==WISP_CMD_PL_COLLAPSED) { m_FolderTree.DeleteAllChildrenItems(pItem); m_FolderTree.InsertItem(WSTR("..."), NULL, pItem); } else if(pMsg->Command.CmdMsg==WISP_CMD_PL_SELCHANGED) { m_FolderList.DeleteAllItems(); FillFolderList(pItem); } } } return TRUE; } int CWispFileWnd::FillFolderTree(CListStringItem* pItem) { CHAR szPath[MAX_PATH]={0}; WISP_CHAR wcPath[MAX_PATH]={0}; m_FolderTree.GetItemFullName(pItem, wcPath); TStrToStr(wcPath, szPath); TStrCat(szPath, "*.*"); int nFileCount = 0; int nFolderCount = 0; FILE_FIND_DATA FindFileData; CLocalFileIO cFile; bool bContinue = cFile.FindFirstFile(szPath, &FindFileData); while(bContinue) { if(FindFileData.FileName[0]!='.') { if(FindFileData.FileAttribute&FIO_FA_DIR) { nFolderCount++; TStrToStr(FindFileData.FileName, wcPath); CListStringItem* pNewItem = m_FolderTree.InsertItem(wcPath, NULL, pItem); m_FolderTree.InsertItem(WSTR("..."), NULL, pNewItem); } else { nFileCount++; } } if (!cFile.FindNextFile(&FindFileData)) bContinue = false; } cFile.FindClose(&FindFileData); // sprintf(szPath, "ܹ%d%dļ%dĿ¼", nFileCount+nFolderCount, nFileCount, nFolderCount); // m_StatusWnd.SetWindowText(szPath); return nFileCount; } int CWispFileWnd::FillFolderList(CListStringItem* pItem) { CHAR szPath[MAX_PATH]={0}; WISP_CHAR wcPath[MAX_PATH]={0}; m_FolderTree.GetItemFullName(pItem, wcPath); TStrToStr(wcPath, szPath); TStrCat(szPath, "*.*"); int nFileCount = 0; int nFolderCount = 0; FILE_FIND_DATA FindFileData; CLocalFileIO cFile; bool bContinue = cFile.FindFirstFile(szPath, &FindFileData); while(bContinue) { if(FindFileData.FileName[0]!='.') { WISP_CHAR Buf[64]; // file name TStrToStr(FindFileData.FileName, wcPath); CListStringItem* pNewItem = m_FolderList.InsertItem(wcPath); // file size if(FindFileData.FileLength<1024) TSPrintf(Buf, WSTR("%d bytes"), FindFileData.FileLength); else if(FindFileData.FileLength<1024*1024) TSPrintf(Buf, WSTR("%d KB"), FindFileData.FileLength/1024); else TSPrintf(Buf, WSTR("%d MB"), FindFileData.FileLength/(1024*1024)); if(FindFileData.FileAttribute&FIO_FA_DIR) { nFolderCount++; // file type m_FolderList.SetItemText(pNewItem, 2, WSTR("Folder")); } else { nFileCount++; // file size m_FolderList.SetItemText(pNewItem, 1, Buf); // file type m_FolderList.SetItemText(pNewItem, 2, WSTR("File")); } // modify date //SYSTEMTIME stSysTime; //FileTimeToSystemTime(&FindFileData.ftLastWriteTime, &stSysTime); //SystemTimeToTzSpecificLocalTime(NULL, &stSysTime, &stSysTime); //sprintf(Buf, "%d-%d-%d %d:%02d", stSysTime.wYear, stSysTime.wMonth, stSysTime.wDay, stSysTime.wHour, stSysTime.wMinute); TSPrintf(Buf, WSTR("%d-%d-%d %d:%02d"), 0, 0, 0, 0, 0, 0); m_FolderList.SetItemText(pNewItem, 3, Buf); } if (!cFile.FindNextFile(&FindFileData)) bContinue = false; } cFile.FindClose(&FindFileData); // sprintf(szPath, "ܹ%d%dļ%dĿ¼", nFileCount+nFolderCount, nFileCount, nFolderCount); // m_StatusWnd.SetWindowText(szPath); return nFileCount; } ================================================ FILE: Project/Wisp/Source/WispFileWnd.h ================================================ #ifndef _WISP_FILE_WND_H_ #define _WISP_FILE_WND_H_ #include "WispSplitWnd.h" #include "WispListTree.h" enum FILE_WND_ID { ID_FOLDER_TREE, ID_FOLDER_LIST }; class CWispFileWnd : public CWispSplitWnd { public: CWispFileWnd(void); virtual ~CWispFileWnd(void); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnCommand); int FillFolderTree(CListStringItem* pItem); int FillFolderList(CListStringItem* pItem); protected: CWispListTree m_FolderTree, m_FolderList; CWispEdit m_StatusWnd; }; #endif//_WISP_FILE_WND_H_ ================================================ FILE: Project/Wisp/Source/WispFont.cpp ================================================ #include "StdAfx.h" #include "WispBase.h" #include "WispFont.h" CWispFont::CWispFont() { m_BufSize= m_Width= m_Height= m_WideBufSize= m_WideWidth= m_WideHeight=0; m_Buffer= m_WideBuffer=NULL; } bool CWispFont::LoadChar(WISP_PHYS_FONT_INFO*pFontInfo) { CImageFile ImageFile; ImageFile.ChangeFileIO(&gpCurWisp->m_PFSFileIO); m_Buffer = NULL; m_BufSize = 0; m_Width = 0; m_Height = 0; if(ImageFile.Open(pFontInfo->FontFN)==false) return false; m_BufSize=(int)ImageFile.GetFileLength(); if(m_BufSize==0) { ImageFile.Close(); return false; } m_Buffer=new BYTE[m_BufSize]; if(m_Buffer==NULL) { m_BufSize=0; ImageFile.Close(); return false; } if(ImageFile.ReadFile(0,m_Buffer,m_BufSize)==false) { m_BufSize=0; SafeDelete(m_Buffer); ImageFile.Close(); return false; } m_Width = pFontInfo->Width; m_Height = pFontInfo->Height; ImageFile.Close(); for(int i=0;i<0x100;i++) m_CharLenAry[i]=8; m_CharLenAry[0x00]= m_CharLenAry[0x0D]= m_CharLenAry[0x0A]=0; m_BytesPerChar = (m_Width * m_Height + 7)/8; return true; } bool CWispFont::LoadWideChar(WISP_PHYS_FONT_INFO*pFontInfo) { CImageFile ImageFile; ImageFile.ChangeFileIO(&gpCurWisp->m_PFSFileIO); m_WideBuffer = NULL; m_WideBufSize = 0; m_WideWidth = 0; m_WideHeight = 0; if(ImageFile.Open(pFontInfo->WideFontFN)==false) return false; m_WideBufSize=(int)ImageFile.GetFileLength(); if(m_WideBufSize==0) { ImageFile.Close(); return false; } m_WideBuffer=new BYTE[m_WideBufSize]; if(m_WideBuffer==NULL) { m_WideBufSize=0; ImageFile.Close(); return false; } if(ImageFile.ReadFile(0,m_WideBuffer,m_WideBufSize)==false) { m_WideBufSize=0; SafeDelete(m_WideBuffer); ImageFile.Close(); return false; } m_WideWidth = pFontInfo->Width*2; m_WideHeight = pFontInfo->Height; ImageFile.Close(); return true; } void CWispFont::Destroy() { SafeDelete(m_Buffer); SafeDelete(m_WideBuffer); } BYTE*CWispFont::GetCharPixelBuffer(WISP_CHAR Char) { if(Char<0x100) { return &m_Buffer[Char*m_BytesPerChar]; } else { int Offset=Char*m_BytesPerChar*2; if(m_WideBuffer && OffsetCreate(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_EDIT: pWnd = new CWispEdit; ((CWispEdit*)pWnd)->Create(ItemAry[n].rc,ItemAry[n].Style,this,ItemAry[n].CmdID); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_LIST: pWnd = new CWispList; ((CWispList*)pWnd)->Create(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_STATIC_STRING: pWnd = new CWispStaticStr; ((CWispStaticStr*)pWnd)->Create((WISP_CHAR*)ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_STATIC_URL: pWnd = new CWispStaticURL; ((CWispStaticURL*)pWnd)->Create((WISP_CHAR*)ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_STATIC_DIB: pWnd = new CWispStaticDIB; ((CWispStaticDIB*)pWnd)->Create(WispDIB((PCSTR)ItemAry[n].pData,0),ItemAry[n].rc.x,ItemAry[n].rc.y,this,ItemAry[n].CmdID); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_STATIC_GROUP: pWnd = new CWispStaticGroup; ((CWispStaticGroup*)pWnd)->Create(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_COMBO_BOX: pWnd = new CWispComboBox; ((CWispComboBox*)pWnd)->Create(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_PROGRESS: pWnd = new CWispProgress; ((CWispProgress*)pWnd)->Create(NULL,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_TAB: pWnd = new CWispTabWnd; ((CWispTabWnd*)pWnd)->Create(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_CHECK_BOX: pWnd = new CWispCheckBox; ((CWispCheckBox*)pWnd)->Create(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; case WISP_CTRL_RADIO_BOX: pWnd = new CWispRadioBox; ((CWispRadioBox*)pWnd)->Create(ItemAry[n].pName,ItemAry[n].rc,this,ItemAry[n].CmdID,ItemAry[n].Style); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(ItemAry[n].CmdID) m_FormItemMap.InsertUnique(ItemAry[n].CmdID,pWnd); break; default: //CODE_WARNING("Wisp : Unsupport control type !"); break; } if(ItemAry[n].pTipString) pWnd->EnableHelpTip(ItemAry[n].pTipString); if(pWnd->m_Style&WISP_WS_DEFAULT) pWnd->Focus(); } return true; } CWispBaseWnd* CWispForm::GetFormItem(UINT CmdID) { TMap::IT Iter = m_FormItemMap.Find(CmdID); if(Iter==m_FormItemMap.End()) return NULL; return *Iter; } bool CWispForm::Destroy() { m_FormItemMap.Clear(); return CWispWnd::Destroy(); } bool CWispForm::OnCmdClose(IN WISP_MSG*pMsg) { m_Result = WISP_ID_CANCEL; return true; } bool CWispForm::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType == WISP_VK_ESCAPE && pMsg->KeyEvent.bKeyDown) { if(m_Style&WISP_WS_BT_CLOSE) { PostCloseMsg(); } return true; } return true; } bool CWispForm::OnCmdCancel(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { m_Result = WISP_ID_CANCEL; PostCloseMsg(); } return false; } bool CWispForm::OnCmdOK(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { m_Result = WISP_ID_OK; PostCloseMsg(); } return false; } bool CWispForm::OnBTCmdDefault(IN WISP_MSG*pMsg) { if( pMsg->Command.CmdMsg == WISP_CMD_BT_UP && pMsg->Command.CmdID > WISP_ID_FORM_CLOSE_ID_START && pMsg->Command.CmdID < WISP_ID_FORM_CLOSE_ID_END ) { m_Result = pMsg->Command.CmdID; PostCloseMsg(); } return true; } ================================================ FILE: Project/Wisp/Source/WispForm.h ================================================ #ifndef _WISP_FORM_H_ #define _WISP_FORM_H_ #include "WispWnd.h" #define WISP_WFS_DIALOG (WISP_WS_CAPTION|WISP_WS_BT_CLOSE|WISP_WS_BORDER) class CWispForm : public CWispWnd { public: CWispForm(void); virtual ~CWispForm(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnBTCmdDefault) DECLARE_WISP_MSG_CMD(OnCmdClose) DECLARE_WISP_MSG_CMD(OnCmdCancel) DECLARE_WISP_MSG_CMD(OnCmdOK) public: bool CreateForm(CWispBaseWnd*pParenWnd = NULL,UINT ShowMode = WISP_SH_NORMAL); bool LoadForm(WISP_FORM_RES_ITEM*ItemAry); bool Destroy(); CWispBaseWnd*GetFormItem(UINT CmdID); TMapm_FormItemMap; UINT GetFormResult(){return m_Result;} public: UINT m_Result; WISP_FORM_RES_ITEM*m_pFormRes; }; #endif ================================================ FILE: Project/Wisp/Source/WispHeader.cpp ================================================ #include "StdAfx.h" #include "WispHeader.h" // CWispHeader WISP_MSG_MAP_BEGIN(CWispHeader) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_UPDATE_BORDER,OnUpdateBorder) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_BEGIN_DRAG,OnBeginDrag) WISP_MSG_MAP(WISP_WM_DRAG_MOVE,OnDragMove) WISP_MSG_MAP(WISP_WM_END_DRAG,OnEndDrag) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispWnd) CWispHeader::CWispHeader() { m_ColumnDrag = false; m_RestoreCursor=false; m_ColumnOrgIndex=NULL; m_ColumnIndexCounter=0; m_LButtonDownEventType = MAX_LBUTTONDOWN_TYPE; m_CtrlType = WISP_CTRL_HEADER; } CWispHeader::~CWispHeader() { } bool CWispHeader::OnUpdateBorder(IN WISP_MSG*pMsg) { return false; } bool CWispHeader::OnUpdateClient(IN WISP_MSG*pMsg) { WISP_POINT point = pMsg->MsgMouseScrPT; ScreenToClient(&point); DrawScreen(point,pMsg); return false; } bool CWispHeader::OnKeyEvent(IN WISP_MSG* pMsg) { if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) if(pMsg->KeyEvent.bKeyDown) return OnMouseLButtonDown(pMsg); else return OnMouseLButtonUp(pMsg); return true; } bool CWispHeader::OnMouseLeave(IN WISP_MSG* pMsg) { if(m_ColumnDrag) { if(pMsg->bMsgLBTDown==false) { EndDrag(); gpCurWisp->RestorCursorType(); m_RestoreCursor=false; Update(); return true; } OnDragMove(pMsg); Update(); return false; } else { if(m_RestoreCursor) { gpCurWisp->RestorCursorType(); m_RestoreCursor=false; Update(); return false; } Update(); return true; } } int CWispHeader::PointInItemIndex(IN WISP_POINT point,int *xdel,int *ydel) { int i,j,nColCount = GetItemCount(); WISP_RECT rect={0, 0, 0, m_WindowRect.cy},rcText; rcText.cy = m_WindowRect.cy; rcText.y = rect.y; for(j=0; jnWidth; if(rect.cx <=0 && i!=(nColCount-1)) continue; if( rect.cx > m_ClientRect.cx ) rect.cx = m_ClientRect.cx; rcText.x = rect.x; rcText.cx = rect.cx; if(PtInRect(&rcText,point)) { if(xdel) *xdel=point.x-rcText.x; if(ydel) *ydel=point.y-rcText.y; return i; } rect.x+=m_vColumns[i]->nWidth; } return i; } bool CWispHeader::OnMouseMove(IN WISP_MSG *pMsg) { int i,j,nColCount = GetItemCount(); WISP_RECT rect={0, 0, 0, m_WindowRect.cy},rcText; WISP_POINT point = pMsg->MsgMouseScrPT; ScreenToClient(&point); rcText.cx = HEADER_MARGIN; rcText.cy = m_WindowRect.cy; rcText.y = rect.y; for(j=0; jnWidth; if(rect.cx <=0 && j!=(nColCount-1)) continue; if( rect.cx > m_ClientRect.cx ) rect.cx = m_ClientRect.cx; rcText.x = rect.x; if(PtInRect(&rcText,point)) { if(j!=0) { gpCurWisp->ChangeCursorType(WISP_CT_RESIZE_HORZ); m_RestoreCursor=true; return false; } } rcText.x = rect.x + m_vColumns[i]->nWidth - HEADER_MARGIN; if(PtInRect(&rcText,point)) { gpCurWisp->ChangeCursorType(WISP_CT_RESIZE_HORZ); m_RestoreCursor=true; return false; } rect.x += m_vColumns[i]->nWidth; } rcText.x = rect.x; rcText.cx = HEADER_MARGIN; rcText.cy = m_WindowRect.cy; rcText.y = rect.y; if(PtInRect(&rcText,point)) { if(j!=0) { gpCurWisp->ChangeCursorType(WISP_CT_RESIZE_HORZ); m_RestoreCursor=true; return false; } } if(m_RestoreCursor) { gpCurWisp->RestorCursorType(); m_RestoreCursor=false; } Update(); return true; } bool CWispHeader::OnMouseLButtonDown(IN WISP_MSG* pMsg) { int i,j,nColCount = GetItemCount(); WISP_RECT rect={0, 0, 0, m_WindowRect.cy},rcText,rcDrag; WISP_POINT point = pMsg->MsgMouseScrPT; ScreenToClient(&point); rcText.cx = HEADER_MARGIN; rcText.cy = m_WindowRect.cy; rcText.y = rect.y; rcDrag.y = rect.y; rcDrag.cy = m_WindowRect.cy; for(j=0; jnWidth; if(rect.cx <=0) continue; if( rect.cx > m_ClientRect.cx ) rect.cx = m_ClientRect.cx; rcText.x = rect.x; if(PtInRect(&rcText,point)) { if(j!=0) { m_DragColumnIndex = GetItemIndex(j - 1); m_LButtonDownEventType=MODIFY_ITEM_WIDTH; BeginDrag(); return false; } } rcText.x = rect.x + m_vColumns[i]->nWidth - HEADER_MARGIN; if(PtInRect(&rcText,point)) { m_LButtonDownEventType=MODIFY_ITEM_WIDTH; m_DragColumnIndex = i; BeginDrag(); return false; } rcDrag.x = rect.x+HEADER_MARGIN; rcDrag.cx = rect.cx - 2 * HEADER_MARGIN; if(rcDrag.cx>0) { if(PtInRect(&rcDrag,point)) { m_LButtonDownEventType=EXCHANGE_ITEM_POSITION; m_DragColumnIndex=i; BeginDrag(); return false; } } rect.x += m_vColumns[i]->nWidth; } rcText.x = rect.x; rcText.cx = HEADER_MARGIN; rcText.cy = m_WindowRect.cy; rcText.y = rect.y; if(PtInRect(&rcText,point)) { if(j!=0) { m_DragColumnIndex = GetItemIndex(j - 1); m_LButtonDownEventType=MODIFY_ITEM_WIDTH; BeginDrag(); return false; } } return true; } bool CWispHeader::OnMouseLButtonUp(IN WISP_MSG* pMsg) { if(m_ColumnDrag) { EndDrag(); if(m_LButtonDownEventType==EXCHANGE_ITEM_POSITION) { WISP_POINT point = pMsg->MsgMouseScrPT; int x,i; ScreenToClient(&point); i = PointInItemIndex(point,&x); if( i !=m_DragColumnIndex) { if(m_DragBeginPt.x >pMsg->MsgMouseWndPT.x) { if(x > (m_vColumns[i]->nWidth/2)) return true; }else if(x < (m_vColumns[i]->nWidth/2)) return true; int n=GetItemCount(); for(int j=0;jSendMessage(&Msg); } } return false; } return true; } bool CWispHeader::OnBeginDrag(IN WISP_MSG* pMsg) { m_PrevDragPoint = pMsg->DragEvent.BeginMouseWndPT; m_DragBeginPt = pMsg->DragEvent.BeginMouseWndPT; m_ColumnDrag = true; m_PrevWidth=0; m_DragMoving=false; return false; } bool CWispHeader::OnDragMove(IN WISP_MSG* pMsg) { int Width; if(m_LButtonDownEventType==MODIFY_ITEM_WIDTH) { if(m_PrevWidth<0) Width = m_PrevWidth + (pMsg->MsgMouseWndPT.x - m_PrevDragPoint.x); else Width = m_vColumns[m_DragColumnIndex]->nWidth + (pMsg->MsgMouseWndPT.x - m_PrevDragPoint.x); if(Width<=0) SetItemWidth(0,m_DragColumnIndex); else SetItemWidth(Width,m_DragColumnIndex); m_PrevWidth=Width; m_PrevDragPoint = pMsg->MsgMouseWndPT; } if(m_LButtonDownEventType==EXCHANGE_ITEM_POSITION) { m_DragMoving=true; m_PrevDragPoint = pMsg->MsgMouseWndPT; } Update(); return true; } bool CWispHeader::OnEndDrag(IN WISP_MSG* pMsg) { m_ColumnDrag = false; return false; } bool CWispHeader::OnDestroy(IN WISP_MSG*pMsg) { m_vColumns.Clear(); SafeDelete(m_ColumnOrgIndex); m_ColumnIndexCounter=0; return true; } // CWispHeader message handlers int CWispHeader::InsertItem(const WHITEM& HeaderItem, int nCol) { int ColumnNum=(int)m_vColumns.Count(); if(ColumnNum+1>m_ColumnIndexCounter) { int *pTmpPointer; pTmpPointer=new int[m_ColumnIndexCounter+15]; if(m_ColumnOrgIndex) { memcpy(pTmpPointer,m_ColumnOrgIndex,sizeof(int)*m_ColumnIndexCounter); delete []m_ColumnOrgIndex; } m_ColumnOrgIndex=pTmpPointer; m_ColumnIndexCounter+=15; } m_ColumnOrgIndex[ColumnNum]=ColumnNum; m_ColumnOrgIndex[ColumnNum]=ColumnNum; if( nCol==-1 || nCol>=(int)m_vColumns.Count() ) m_vColumns.Append(HeaderItem); else m_vColumns.InsertBefore(m_vColumns[nCol], HeaderItem); Update(); return m_vColumns.Count(); } int CWispHeader::InsertItem(const WISP_CHAR* lpszHeading, int nWidth, int nFormat, void* pData, int nCol) { WHITEM stColumn; stColumn.strHeading = lpszHeading; stColumn.nFormat = nFormat; stColumn.nWidth = nWidth==-1?10:nWidth; stColumn.pData = pData; return InsertItem(stColumn, nCol); } void CWispHeader::SetItemText(const WISP_CHAR* pszHeading, int nCol) { m_vColumns[nCol]->strHeading = pszHeading; } void CWispHeader::SetItemWidth(const int nWidth, int nCol) { m_vColumns[nCol]->nWidth = nWidth; } void CWispHeader::DrawHeader(WISP_POINT& point,IN WISP_MSG *pMsg) { ACTIVE_STATUS eStatus; int nColCount = GetItemCount(); int i,j; WISP_RECT rect={0, 0, 0, m_WindowRect.cy},rcDrag,rcMouseIn; rcMouseIn.cx = 0;rcMouseIn.cy = 0; for(j=0; jnWidth; if(rect.cx <=0) continue; if( rect.cx > m_ClientRect.cx ) rect.cx = m_ClientRect.cx; if( PtInRect(&rect,point)) { rcMouseIn = rect; eStatus = STATUS_HOVER; } else eStatus = STATUS_NORMAL; if(m_ColumnDrag && m_LButtonDownEventType == EXCHANGE_ITEM_POSITION) { if(i == m_DragColumnIndex) { eStatus=STATUS_DOWN; rcDrag = rect; } else { eStatus = STATUS_NORMAL; } } gpCurWisp->m_pCurDrawObj->DrawHeaderFrameRect(&m_ClientDC, &rect, eStatus); WISP_RECT rcText={rect.x+HEADER_MARGIN, rect.y, rect.cx-2*HEADER_MARGIN, rect.cy}; m_ClientDC.DrawString(m_vColumns[i]->strHeading,&rcText, WISP_DT_SINGLELINE|WISP_DT_VCENTER|WISP_DT_END_ELLIPSIS); rect.x += m_vColumns[i]->nWidth; if( rect.x > m_ClientRect.cx ) return; } rect.cx = m_ClientRect.cx-rect.x; eStatus = STATUS_NORMAL; if(rect.cx) gpCurWisp->m_pCurDrawObj->DrawHeaderFrameRect(&m_ClientDC, &rect, eStatus); if(m_ColumnDrag && m_LButtonDownEventType == EXCHANGE_ITEM_POSITION) { if(m_DragMoving&&rcMouseIn.cx&&rcMouseIn.cy) { if(pMsg->MsgMouseWndPT.x < rcMouseIn.x + rcMouseIn.cx /2) { m_ClientDC.DrawVLine(rcMouseIn.x,rcMouseIn.y,rcMouseIn.cy+rcMouseIn.y-1,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_LIGHT_BLUE]); if(rcMouseIn.x>0) m_ClientDC.DrawVLine(rcMouseIn.x-1,rcMouseIn.y,rcMouseIn.cy+rcMouseIn.y-1,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_LIGHT_BLUE]); } else { m_ClientDC.DrawVLine(rcMouseIn.x+rcMouseIn.cx-1,rcMouseIn.y,rcMouseIn.cy+rcMouseIn.y-1,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_LIGHT_BLUE]); m_ClientDC.DrawVLine(rcMouseIn.x+rcMouseIn.cx,rcMouseIn.y,rcMouseIn.cy+rcMouseIn.y-1,gpCurWisp->m_pCurDrawObj->m_crSystem[SC_LIGHT_BLUE]); } } DrawDragRect(rcDrag); } } void CWispHeader::DrawScreen(IN WISP_MSG *pMsg) { WISP_POINT point = gpCurWisp->m_MousePT; ScreenToClient(&point); DrawScreen(point,pMsg); } void CWispHeader::DrawScreen(WISP_POINT &point,IN WISP_MSG *pMsg) { DrawHeader(point,pMsg); } CWispHeader::WHITEM* CWispHeader::GetItem(int nIndex) { if( nIndex <= (int)m_vColumns.Count() ) return &(*m_vColumns[m_ColumnOrgIndex[nIndex]]); return NULL; } void CWispHeader::SetItem(int nIndex, WHITEM& HeaderItem) { if( nIndex <= (int)m_vColumns.Count() ) *m_vColumns[m_ColumnOrgIndex[nIndex]] = HeaderItem; Update(); } int CWispHeader::GetItemIndex(int col)const { if(col <= (int)m_vColumns.Count()) return m_ColumnOrgIndex[col]; return 0; } int CWispHeader::DrawDragRect(WISP_RECT rc) { rc.x = rc.x + m_PrevDragPoint.x - m_DragBeginPt.x ; gpCurWisp->m_pCurDrawObj->DrawHeaderFrameRect(&m_ClientDC, &rc, STATUS_NORMAL); WISP_RECT rcText={rc.x+HEADER_MARGIN, rc.y, rc.cx-2*HEADER_MARGIN, rc.cy}; m_ClientDC.DrawString(m_vColumns[m_DragColumnIndex]->strHeading,&rcText, WISP_DT_SINGLELINE|WISP_DT_VCENTER|WISP_DT_END_ELLIPSIS); return 0; } ================================================ FILE: Project/Wisp/Source/WispHeader.h ================================================ #ifndef _WISP_POWER_HEADER_H_ #define _WISP_POWER_HEADER_H_ #include "WispWnd.h" // CWispHeader #define WHS_ALIGN_LEFT 0x00000000 #define WHS_INVISIBLE 0x00010000 #define WHS_ENABLE_EDIT 0x00020000 #define HEADER_MARGIN 4 class CWispHeader : public CWispWnd { public: typedef struct stWispHeaderItem { TWispString strHeading; INT nFormat; INT nWidth; //п void* pData; //ûԶ }WHITEM; public: CWispHeader(); virtual ~CWispHeader(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnUpdateBorder); DECLARE_WISP_MSG(OnMouseLeave); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnMouseLButtonDown); DECLARE_WISP_MSG(OnMouseLButtonUp); DECLARE_WISP_MSG(OnDragMove); DECLARE_WISP_MSG(OnBeginDrag); DECLARE_WISP_MSG(OnEndDrag); DECLARE_WISP_MSG(OnMouseMove); DECLARE_WISP_MSG(OnDestroy); virtual void DrawScreen(IN WISP_MSG *pMsg); virtual void DrawScreen(WISP_POINT &point,IN WISP_MSG *pMsg); int InsertItem(const WHITEM& HeaderItem, int nCol = -1); int InsertItem(const WISP_CHAR* pszHeading, int nWidth = -1, int nFormat = WHS_ALIGN_LEFT, void* pData = 0, int nCol = -1); void SetItemText(const WISP_CHAR* pszHeading, int nCol); void SetItemWidth(const int nWidth, int nCol); int GetItemCount() { return m_vColumns.Count(); } WHITEM* GetItem(int nIndex); void SetItem(int nIndex, WHITEM& HeaderItem); int GetItemIndex(int col)const; protected: // DWORD m_dwStyle; // WISP_RECT m_rcBoundary; //Χ߽ // CWispWnd* m_pWndParent; // UINT m_nID; //ID int m_DragColumnIndex; bool m_ColumnDrag; bool m_DragMoving; bool m_RestoreCursor; WISP_POINT m_PrevDragPoint; int m_PrevWidth; TList m_vColumns; void DrawHeader(WISP_POINT& point,IN WISP_MSG *pMsg); public: int *m_ColumnOrgIndex; int m_ColumnIndexCounter; WISP_POINT m_DragBeginPt; typedef enum{MODIFY_ITEM_WIDTH,EXCHANGE_ITEM_POSITION,MAX_LBUTTONDOWN_TYPE} HEADER_LBUTTONDOWN_TYPE; HEADER_LBUTTONDOWN_TYPE m_LButtonDownEventType; int PointInItemIndex(IN WISP_POINT point,int *xdel=NULL,int *ydel=NULL); int DrawDragRect(WISP_RECT rc); }; #endif//_WISP_POWER_HEADER_H_ ================================================ FILE: Project/Wisp/Source/WispHexWnd.cpp ================================================ #include "StdAfx.h" #include "WispHexWnd.h" WISP_MSG_MAP_BEGIN(CWispHexWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP(WISP_WM_SCROLL_EVENT,OnScrollEvent) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP(WISP_WM_CHAR,OnChar) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispWnd) WISP_MSG_CMD_MAP_BEGIN(CWispHexWnd) WISP_MSG_CMD_MAP(WISP_ID_VSLIDE,OnCmdVSlide); WISP_MSG_CMD_MAP_END bool CWispHexWnd::OnCmdVSlide(IN WISP_MSG*pMsg) { if((m_Style & WISP_HEX_WS_RELATIVE_SCROLL) && pMsg->Command.CmdMsg == WISP_CMD_BT_UP) { SetScrollBarCurPos(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,false); } return true; } bool CWispHexWnd::OnSize(IN WISP_MSG*pMsg) { if(m_Style & WISP_HEX_WS_RELATIVE_SCROLL) { if(m_bShowOffset) SetScrollBarInfo(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,m_nLinePerPage*(m_ScrollSpace+m_ScrollSpace+1),m_nLinePerPage-1,0,false); else SetScrollBarInfo(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,m_nLinePerPage*(m_ScrollSpace+m_ScrollSpace+1),m_nLinePerPage,0,false); } else { SetScrollBarRange(WISP_SB_VERT,m_ImageHighBase/m_nByte_Line,m_ImageBase/m_nByte_Line); } SetScrollBarInfo(WISP_SB_HORZ,m_CharXPos,m_CharMax,m_nChars_Line,0); return true; } bool CWispHexWnd::OnCreate(IN WISP_MSG*pMsg) { m_ItemColor[HEX_START_INDEX]=SYS_COLOR[SC_BLACK]; m_ItemColor[HEX_POS_INDEX]=SYS_COLOR[SC_LIGHT_CYAN]; m_ItemColor[HEX_HEX_INDEX]=SYS_COLOR[SC_LIGHT_GREEN] ; m_ItemColor[HEX_ASCII_INDEX]=SYS_COLOR[SC_UNNAMED_10]; m_BSelColor=SYS_COLOR[SC_UNNAMED_11]; m_TSelColor=SYS_COLOR[SC_WHITE]; m_BBPXColor=SYS_COLOR[SC_UNNAMED_12]; EnableScrollBar(WISP_SB_VERT); EnableScrollBar(WISP_SB_HORZ); CreateCaret(WISP_DI_CARET); ShowCaret(true); SetCaretPos(0,0); m_SelStart=m_SelEnd=-1; m_bSelect=m_bSelText=false; m_CurAddr=0; m_CharXPos=0; m_bBGColor = true; m_crBGColor = SYS_COLOR[SC_BLACK]; m_CaretPos.x = m_CaretPos.y = 0; m_AddrShowMode=ADDRESS_MODE_HEX; m_BaseActiveAddress=0; memset(m_PrevData,0,sizeof(m_PrevData)); m_PrevDataAddress=0; m_PrevDataLen=0; m_CurrentDataLen=0; return true; } bool CWispHexWnd::OnChar(IN WISP_MSG*pMsg) { CHAR NumBuffer[10]; DWORD Addr; int nLine; BYTE DataBuf[4]; BYTE ValueB; ULPOS Pos,OldPos; WISP_MSG Msg; int Index; int BeginLine=GetStartLine(); WISP_CHAR nChar = pMsg->Char.Char; Index = CorrectHitPoint(&m_CaretPos); if(Index==HEX_ASCII_INDEX) { if(CalcPonitPos(&m_CaretPos,&Pos)==false) return true; if(m_CaretIndex>=m_nByte_Line) return true; if(ReadData(Pos,DataBuf,1)==0) return true; DataBuf[0]=(char)nChar; if(WriteData(Pos,DataBuf,1)==0) return true; Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RIGHT; OnKeyEvent(&Msg); return true; } if((nChar >='0' && nChar <='9') || (nChar <='F' && nChar >='A') || (nChar <='f' && nChar >='a')) { //if(CorrectHitPoint(&m_CaretPos)!=HEX_POS_INDEX) // return true; switch(Index) { case HEX_POS_INDEX: { if(m_CaretIndex<8) { OldPos=m_CurAddr+(m_CaretnLine-BeginLine)*m_nByte_Line; TSPrintf(NumBuffer,"%08X",OldPos); NumBuffer[m_CaretIndex]=(CHAR)nChar; if(USHexStrToNum(NumBuffer,&Addr)==false) return true; nLine=(ULPOS)(Addr-m_ImageBase)/m_nByte_Line; if(nLine=m_ImageBase+m_ImageSize) // return true; // ShowCaret(false); // m_SelStart=Addr; // m_SelEnd=m_SelStart; // m_bSelect=TRUE; // Update(); // return true; //} break; } case HEX_HEX_INDEX: { if((m_CaretIndex % (m_ShowLength*3))<(m_ShowLength*2)) { if(CalcPonitPos(&m_CaretPos,&Pos)==false) break; Pos = Pos+ (m_ShowLength- 1 - (m_CaretIndex % (m_ShowLength*3))/2); if(ReadData(Pos,DataBuf,1)==0) break; ValueB=(char)nChar; if(ValueB>='0'&&ValueB<='9') { ValueB-='0'; } else { ValueB|=0x20; ValueB = ValueB - 'a'+10; } if(((m_CaretIndex%(m_ShowLength*3))%2)==0) { ValueB<<=4; DataBuf[0] = ValueB | (DataBuf[0]&0xf); } else { DataBuf[0] = ValueB | (DataBuf[0]&0xf0); } if(WriteData(Pos,DataBuf,1)==0) break; Msg.KeyEvent.bKeyDown=true; Msg.KeyEvent.KeyType=WISP_VK_RIGHT; OnKeyEvent(&Msg); OnDataChange(); break; } break; } } } return true; } bool CWispHexWnd::OnKeyEvent(IN WISP_MSG*pMsg) { int Index; int Height=m_bShowOffset?m_LineHeight:0; if(pMsg->KeyEvent.bKeyDown) { switch(pMsg->KeyEvent.KeyType) { case WISP_VK_LBUTTON: WISP_POINT Point; Point=pMsg->MsgMouseWndPT; Point.y-=m_ClientRect.y; ShowCaret(true); m_CurArea = CorrectHitPoint(&Point); m_CaretPos.x=Point.x-Point.x%m_CharWidth; m_CaretPos.y=Point.y-Point.y%m_LineHeight; if(m_bSelect) { m_bSelect=false; m_SelStart=m_SelEnd=-1; } SetCaretPos(m_CaretPos.x,m_CaretPos.y); UpdateClient(); break; case WISP_VK_UP: if(m_CaretPos.y>=m_LineHeight+Height) { m_CaretPos.y-=m_LineHeight; CorrectHitPoint(&m_CaretPos); SetCaretPos(m_CaretPos.x,m_CaretPos.y); UpdateClient(); } else if(m_CaretPos.y==(0+Height) && m_CurAddr>m_ImageBase) { m_CurAddr-=m_nByte_Line; if(m_CurAddr=m_CharWidth) { m_CaretPos.x-=m_CharWidth; Index = CorrectHitPoint(&m_CaretPos); if(Index==HEX_HEX_INDEX) { if((m_CaretIndex%(m_ShowLength*3)) >= m_ShowLength*2) { if(m_CaretPos.x >= m_CharWidth) { m_CaretPos.x-=m_CharWidth*m_ShowLength; m_CaretIndex-=m_ShowLength; } } } SetCaretPos(m_CaretPos.x,m_CaretPos.y); UpdateClient(); } else if(m_CaretPos.x==0&&m_CharXPos>0) { m_CharXPos--; CorrectHitPoint(&m_CaretPos); UpdateClient(); } break; case WISP_VK_RIGHT: if(m_CaretPos.x= m_ShowLength*2) { if(m_CaretPos.xm_ImageHighBase-m_nLinePerPage*m_nByte_Line) m_CurAddr=m_ImageHighBase-m_nLinePerPage*m_nByte_Line; ViewAddressMsg(m_CurAddr); UpdateClient(); break; case WISP_VK_TAB: m_ShowLength*=2; if(m_ShowLength>=8) m_ShowLength=1; UpdateClient(); break; case WISP_MOD_SHIFT|WISP_VK_TAB: { int MinX,MaxX; if(m_CurArea>=HEX_ASCII_INDEX) m_CurArea=HEX_POS_INDEX; else m_CurArea++; m_CharXPos=0; MinX=MaxX=0; for(int SpaceIndex=0;(DWORD)SpaceIndex<=m_CurArea;SpaceIndex++) { MinX=MaxX; MaxX+=m_ItemSpace[SpaceIndex]*m_CharWidth; } m_CaretPos.x=MinX; SetCaretPos(m_CaretPos.x,m_CaretPos.y); UpdateClient(); } break; } } return true; } int CWispHexWnd::GetDataWidth()const { return m_ShowLength; } bool CWispHexWnd::SetDataWidth(int width) { if(16 % width) return false; m_ShowLength = width; Update(); return true; } bool CWispHexWnd::OnMouseMove(IN WISP_MSG*pMsg) { DWORD Pos; WISP_POINT pt = pMsg->MsgMouseWndPT; PointToRect(&pt,&m_ClientRect); if(pMsg->bMsgLBTDown) { if(m_bSelect) { if(CalcPonitPos(&pt,&Pos)==false) return true; if(m_bSelText) m_SelEnd=Pos; else m_SelEnd=Pos+m_ShowLength-1; } else { if(CalcPonitPos(&pt,&Pos)==false) return true; ShowCaret(false); m_SelStart=Pos; m_bSelect=true; m_bSelText=m_CurArea==HEX_ASCII_INDEX; } Update(); } return true; } bool CWispHexWnd::OnScrollEvent(IN WISP_MSG*pMsg) { int LinePerPage=m_nLinePerPage; CWispWnd::OnScrollEvent(pMsg); if(m_bShowOffset) LinePerPage--; if(pMsg->ScrollEvent.SBType == WISP_SB_HORZ) { m_CharXPos = (int)m_ScrollBar[WISP_SB_HORZ]->CurPos; } else { if(m_Style&WISP_HEX_WS_RELATIVE_SCROLL) { switch(pMsg->ScrollEvent.Event) { case WISP_SB_PAGE_UP: ViewAddressMsg(m_CurAddr-LinePerPage*m_nByte_Line); break; case WISP_SB_PAGE_DOWN: ViewAddressMsg(m_CurAddr+LinePerPage*m_nByte_Line); break; case WISP_SB_DEC: ViewAddressMsg(m_CurAddr-m_nByte_Line); break; case WISP_SB_INC: ViewAddressMsg(m_CurAddr+m_nByte_Line); break; case WISP_SB_POS_CHANGE: ViewAddressMsg(m_CurAddr+m_nByte_Line*pMsg->ScrollEvent.Delta); return false; break; } SetScrollBarCurPos(WISP_SB_VERT,m_nLinePerPage*m_ScrollSpace,false); return false; } else ViewAddressMsg((ULPOS)(m_ScrollBar[WISP_SB_VERT]->CurPos*m_nByte_Line)); } return false; } bool CWispHexWnd::IsModifyValue(ULPOS Address,BYTE* ValueBuffer) { ULPOS Offset; if(Address>=m_PrevDataAddress && Address< m_PrevDataAddress+m_PrevDataLen) { Offset=Address-m_PrevDataAddress; for(int i=0;i0) { TSPrintf(Buffer,WSTR("$+%X"),Offset); }else if(Offset==0) { TStrCpy(Buffer,"$ ==>"); }else { TSPrintf(Buffer,WSTR("$-%X"),-Offset); } } break; } StrLen=(int)TStrLen(Buffer); m_LenArray[HEX_POS_INDEX][nLine]=StrLen; m_ClientDC.SetTextStyle(WISP_TEXT_TRANS); m_ClientDC.SetTextColor(m_ItemColor[HEX_POS_INDEX]); m_ClientDC.DrawString((AllLen-m_CharXPos)*m_CharWidth,(nLine+BeginLine)*m_LineHeight,Buffer,StrLen); AllLen+=m_ItemSpace[HEX_POS_INDEX]; //һеֽʾ nByte=m_ImageSize+m_ImageBase-m_CurAddr-nLine*m_nByte_Line; if(nByte>(DWORD)m_nByte_Line)nByte=(DWORD)m_nByte_Line; //ֽ TStrCpy(szSpace,m_Spaces); szSpace[m_ShowLength]=0; nItem=(int)nByte/m_ShowLength; if(nByte%m_ShowLength) nItem++; Turn=m_ShowLength*2+m_ShowLength; m_LenArray[HEX_HEX_INDEX][nLine]=Turn*nItem; for(ItemIndex=0;ItemIndexm_pCurDrawObj->m_crSystem[SC_CLIENT_BG]); m_ClientDC.SetTextColor(m_ItemColor[HEX_ASCII_INDEX]); break; case HEX_BYTE_SEL: m_ClientDC.SetTextStyle(WISP_TEXT_OPAQUE); m_ClientDC.SetTextBKColor(m_BSelColor); m_ClientDC.SetTextColor(m_TSelColor); break; } m_ClientDC.DrawString((AllLen-m_CharXPos+ByteIndex)*m_CharWidth,(nLine+BeginLine)*m_LineHeight,Buffer,1); } AllLen+=m_ItemSpace[HEX_ASCII_INDEX]; } m_CurrentDataAddress=m_CurAddr; if(m_PrevDataLen==0) SaveContext(); return false; } bool CWispHexWnd::OnRecalcLayout(IN WISP_MSG*pMsg) { m_nChars_Line = m_ClientRect.cx/m_ClientDC.m_pFont->m_Width; m_nLinePerPage = m_ClientRect.cy/m_ClientDC.m_pFont->m_Height; m_CharWidth = m_ClientDC.m_pFont->m_Width; m_LineHeight = m_ClientDC.m_pFont->m_Height; if(m_ClientRect.cy%m_LineHeight > m_LineHeight/2) m_nLinePerPage++; if(m_ClientRect.cx<0) m_nChars_Line = 0; if(m_ClientRect.cy<0) m_nLinePerPage = 0; if(m_CurAddr>m_ImageHighBase-m_nLinePerPage*m_nByte_Line) m_CurAddr=m_ImageHighBase-m_nLinePerPage*m_nByte_Line; if(m_CurAddrm_ImageSize/(DWORD)m_nByte_Line) m_nLinePerPage=(int)(m_ImageSize/m_nByte_Line); m_CharMax=m_ItemSpace[HEX_START_INDEX]+m_ItemSpace[HEX_POS_INDEX]+m_ItemSpace[HEX_HEX_INDEX]+m_ItemSpace[HEX_ASCII_INDEX]; MIN_LIMIT(m_CharMax,m_nChars_Line-1); return true; } ULSIZE CWispHexWnd::ReadData(ULPOS Address,BYTE*Buffer,ULSIZE Size) { return 0; } ULSIZE CWispHexWnd::WriteData(ULPOS Address,BYTE*Buffer,ULSIZE Size) { return 0; } UINT CWispHexWnd::GetHexByteAttribute(DWORD Address) { DWORD Start,End; if(m_bSelect) { if(m_SelStart < m_SelEnd) { Start = m_SelStart; End = m_SelEnd; } else { Start = m_SelEnd; End = m_SelStart; } if(Start=m_ImageBase+m_ImageSize) return HEX_BYTE_NORMAL; if(Address >= Start && Address <= End) return HEX_BYTE_SEL; } return HEX_BYTE_NORMAL; } WISP_CHAR* CWispHexWnd::m_UnReadable=WISP_STR("????????????????"); WISP_CHAR* CWispHexWnd::m_UnReadableASCII=WISP_STR("..................."); WISP_CHAR* CWispHexWnd::m_Spaces=WISP_STR(" "); CWispHexWnd::CWispHexWnd() { m_nByte_Line=0x10; m_ShowLength=1; m_CtrlType = WISP_CTRL_HEX_WND; m_ImageBase = 0; m_ImageSize = m_ImageHighBase = 0xFFFFFFFF; m_ScrollSpace = 4; m_bShowOffset=true; m_OffsetMode=0; m_FloatMode=false; m_PrevDataAddress=0; m_PrevDataLen=0; m_CurrentDataLen=0; m_CurrentDataAddress=0; m_AddrIter=m_AddrList.Begin(); } CWispHexWnd::~CWispHexWnd() { m_AddrList.Clear(); } void CWispHexWnd::SaveContext() { DWORD dwStart,dwEnd; if(m_CurrentDataLen==0) return; dwStart=m_CurrentDataAddress; dwEnd=m_CurrentDataAddress+m_CurrentDataLen; for(DWORD i=0;i= dwStart && m_PrevDataAddress+ix+m_CharXPos*m_CharWidth; nLine=pPoint->y/m_LineHeight; if(nLine>=m_nLinePerPage) { nLine=m_nLinePerPage-1; pPoint->y=m_LineHeight*nLine; } m_CaretnLine=pPoint->y/m_LineHeight; MinX=MaxX=0; //λĸ for(int SpaceIndex=0;SpaceIndex<=HEX_ASCII_INDEX;SpaceIndex++) { MinX=MaxX; MaxX+=m_ItemSpace[SpaceIndex]*m_CharWidth; if(x>=MinX&&xMidX)//ʾ { if(x-MidXx=MidX-m_CharXPos*m_CharWidth; m_CaretIndex=(MidX-MinX)/m_CharWidth; return SpaceIndex; } else//Ͽ¸ { pPoint->x=MaxX-m_CharXPos*m_CharWidth; m_CaretIndex=0; return SpaceIndex+1; } } else//ڴʾ { m_CaretIndex=(pPoint->x-MinX)/m_CharWidth; return SpaceIndex; } } } pPoint->x=MaxX; m_CaretIndex=m_ItemSpace[HEX_ASCII_INDEX]; return HEX_ASCII_INDEX; } bool CWispHexWnd::CalcPonitPos(IN WISP_POINT*pPoint,IN ULPOS*pPos,INOUT ULPOS* pOffset) { int nLine,MinX,nXCharLine,x; int BeginLine=GetStartLine(); x=pPoint->x+m_CharXPos*m_CharWidth, nLine=pPoint->y/m_LineHeight; nXCharLine=3*m_nByte_Line-m_ShowLength; nXCharLine*=m_CharWidth; MinX=(m_ItemSpace[HEX_START_INDEX]+m_ItemSpace[HEX_POS_INDEX])*m_CharWidth; if(nLine=MinX&&x=MinX&&x=m_ImageHighBase) return false; if(m_Style&WISP_HEX_WS_RELATIVE_SCROLL) { m_CurAddr = Address; if(m_CurAddr!=Address) { m_SelStart = Address; m_SelEnd = Address+m_ShowLength-1; m_bSelect = true; m_bSelText = false; } } else { if(m_nLinePerPage>0) SetScrollBarCurPos(WISP_SB_VERT,Address/m_nByte_Line,false); } if(bSave && m_CurAddr!=0) { RecordCurAddr(m_CurAddr,uPrevPos); } OnAddrChange(); SaveContext(); Update(); return true; } bool CWispHexWnd::ViewAddressMsg(IN ULPOS Address,bool bSave) { if(Address=m_ImageHighBase) return false; m_CurAddr=Address; SaveContext(); OnAddrChange(); return true; } void CWispHexWnd::ToggleShowOffset() { m_bShowOffset=!m_bShowOffset; Update(); } bool CWispHexWnd::OnMouseDBClick(IN WISP_MSG*pMsg) { int CurDataWidth; if(pMsg->KeyEvent.KeyType==WISP_VK_LBUTTON) { if(m_bShowOffset && pMsg->MsgMouseCltPT.y < m_LineHeight) { m_OffsetMode = 1 - m_OffsetMode; Update(); return true; } CurDataWidth = GetDataWidth(); CurDataWidth*=2; if(CurDataWidth>=8) CurDataWidth=1; if(m_CaretIndex>=0&&m_CaretIndex<=7&&m_CurArea==HEX_POS_INDEX) SetDataWidth(CurDataWidth); } return true; } void CWispHexWnd::SetAddressMode(int Mod,ULPOS BaseAddr) { if(Mod <= 0 || Mod >=ADDRESS_MODE_MAX) Mod=ADDRESS_MODE_HEX; m_AddrShowMode=(ENUM_ADDR_SHOW_MOD)Mod; m_BaseActiveAddress = BaseAddr; OnUpdateClient(NULL); return ; } int CWispHexWnd::GetAddressMode() { return m_AddrShowMode; } void CWispHexWnd::SetFloatCmdString(WCHAR* pCmdString) { m_FloatString=pCmdString; } bool CWispHexWnd::IsFloatMode() { return m_FloatMode; } bool CWispHexWnd::ToggleFloatMode() { m_FloatMode = !m_FloatMode; Update(); return !m_FloatMode; } void CWispHexWnd::EmptyPosList() { HISTORY_ADDRESS HistoryAddress; HistoryAddress.dwAddress=m_CurArea; m_AddrList.Clear(); m_AddrIter = m_AddrList.Append(HistoryAddress); } bool CWispHexWnd::OnNextPos(IN WISP_MSG*pMsg) { if(m_AddrIter!=m_AddrList.End() && m_AddrIter->dwAddress != m_CurAddr) {//ǰַڵǰ洢㣬ϣNextPosPrevPos ViewAddress(m_AddrIter->dwAddress,false); } else if(m_AddrIter!=m_AddrList.Last()) { m_AddrIter++; ViewAddress(m_AddrIter->dwAddress,false); } return true; } bool CWispHexWnd::OnPrevPos(IN WISP_MSG*pMsg) { if(m_AddrIter!=m_AddrList.End() && m_AddrIter->dwAddress!= m_CurAddr) {//ǰַڵǰ洢㣬ϣNextPosPrevPos ViewAddress(m_AddrIter->dwAddress,false); } else if(m_AddrIter!=m_AddrList.Begin()) { m_AddrIter--; ViewAddress(m_AddrIter->dwAddress,false); } return true; } bool CWispHexWnd::OnSavePos(IN WISP_MSG*pMsg) { HISTORY_ADDRESS HistoryAddress; HistoryAddress.dwAddress=m_CurArea; if(m_AddrIter!=m_AddrList.Last()) {//һ m_AddrIter++; m_AddrList.Remove(m_AddrIter,m_AddrList.End()); m_AddrIter=m_AddrList.End(); } if(m_AddrList.Count()>MAX_POS_LIST_COUNT) { if(m_AddrIter==m_AddrList.Begin()) m_AddrIter++; m_AddrList.Remove(m_AddrList.Begin()); } int nCount=m_AddrList.Count(); if(m_AddrList.Count()==0 || m_CurAddr!= m_AddrList.Last()->dwAddress) m_AddrIter = m_AddrList.Append(HistoryAddress); return true; } void CWispHexWnd::RecordCurAddr(ULPOS Address,ULPOS PrevAddress) { HISTORY_ADDRESS HistoryAddress; HistoryAddress.dwAddress=Address; if(m_AddrList.Count()>MAX_POS_LIST_COUNT) { if(m_AddrIter==m_AddrList.Begin()) m_AddrIter++; m_AddrList.Remove(m_AddrList.Begin()); } if(m_AddrList.Count()==0 && Address!=PrevAddress) { HistoryAddress.dwAddress=Address; m_AddrIter = m_AddrList.Append(HistoryAddress); } if( Address!= m_AddrList.Last()->dwAddress) m_AddrIter = m_AddrList.Append(HistoryAddress); } ================================================ FILE: Project/Wisp/Source/WispHexWnd.h ================================================ #ifndef _WISP_HEX_WND_H_ #define _WISP_HEX_WND_H_ #include "WispWnd.h" #define MAX_POS_LIST_COUNT 100 enum ENUM_ADDR_SHOW_MOD { ADDRESS_MODE_HEX, OFFSET_MODE_HEX, ADDRESS_MODE_MAX, }; #define MAX_LINES 0x100 #define WISP_HEX_WS_RELATIVE_SCROLL 0x00010000 enum { HEX_START_INDEX = 0, HEX_POS_INDEX, //ļλÿո HEX_HEX_INDEX, //HEXֽڿո HEX_ASCII_INDEX, //ASCIIո HEX_ITEM_COUNT }; enum { HEX_BYTE_NORMAL = 0, HEX_BYTE_SEL, HEX_BYTE_MASK }; class CWispHexWnd : public CWispWnd { typedef struct _HISTORY_ADDRESS { DWORD dwAddress; WORD wOffset; WORD wFlags; }HISTORY_ADDRESS; typedef TList ADDR_LIST; public: CWispHexWnd(); ~CWispHexWnd(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnChar) DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG(OnScrollEvent) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnMouseDBClick); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG(OnCmdVSlide) DECLARE_WISP_MSG (OnPrevPos) DECLARE_WISP_MSG(OnNextPos) DECLARE_WISP_MSG(OnSavePos) public: virtual ULSIZE WriteData(ULPOS Address,BYTE*Buffer,ULSIZE Size); virtual ULSIZE ReadData(ULPOS Address,BYTE*Buffer,ULSIZE Size); virtual UINT GetHexByteAttribute(IN DWORD Address); virtual ULPOS GetFloatAddress(CStrW& CmdStr){return m_CurAddr;}; virtual void OnAddrChange(){}; virtual void OnDataChange(){}; virtual int GetStartLine(){return m_bShowOffset?1:0;}; UINT CorrectHitPoint(IN WISP_POINT*pPoint); bool CalcPonitPos(IN WISP_POINT*pPoint,IN ULPOS*pPos,INOUT ULPOS* pOffset=NULL); bool ViewAddress(IN ULPOS Address,bool bSave=true); bool ViewAddressMsg(IN ULPOS Address,bool bSave=false); bool SetDataWidth(int width); int GetDataWidth()const; void SetAddressMode(int Mod,ULPOS BaseAddr=0); int GetAddressMode(); void ToggleShowOffset(); void SetFloatCmdString(WCHAR* pCmdString); bool ToggleFloatMode(); bool IsFloatMode(); void SaveContext();//浱ǰʾݣ´θʾı public: int m_OffsetMode;//0: +offset; 1: //ʾһеƫϢ,ƫģʽ 0 ģʽ +1 +2 +3 ƫģʽ 1 ģʽ 1 2 3 bool m_bShowOffset; //Ƿʾһеƫ ULPOS m_ImageBase; ULSIZE m_ImageSize; ULPOS m_ImageHighBase; ULPOS m_CurAddr; //ǰַ COLORREF m_BSelColor; //ѡʱɫ COLORREF m_TextColor; //ɫ COLORREF m_TSelColor; //ѡʱɫ COLORREF m_BBPXColor; //DebugʱBPXɫ //ĻϢ int m_ScrollSpace; int m_ShowLength; //ʾ int m_nLinePerPage; //ǰÿҳ int m_nChars_Line; //ÿ int m_LineHeight; //и int m_CharWidth; //ֿ int m_nByte_Line; //һֽ int m_CharXPos; //ַλ int m_CharMax; //һַ int m_CaretIndex; //ǰַ int m_CaretnLine; //ǰ WISP_POINT m_CaretPos; //λ //ڼ DWORD m_SelStart; //пʼ DWORD m_SelEnd; //н bool m_bSelect; //Ƿڼģʽ bool m_bSelText; //Ƿı DWORD m_CurArea; //ǰ //Search Next DWORD m_SrhAddr; BYTE m_SrhData[256]; DWORD m_SrhSize; DWORD m_SrhLeftSize; bool m_SrhbCase; int m_LenArray[HEX_ITEM_COUNT][MAX_LINES];//飬λ COLORREF m_ItemColor[HEX_ITEM_COUNT]; //ɫ int m_ItemSpace[HEX_ITEM_COUNT]; //ո static WISP_CHAR* m_UnReadable; static WISP_CHAR* m_UnReadableASCII; static WISP_CHAR* m_Spaces; ENUM_ADDR_SHOW_MOD m_AddrShowMode; ULPOS m_BaseActiveAddress; CStrW m_FloatString; bool m_FloatMode; //ʾıʹ BYTE m_PrevData[0x1000]; DWORD m_PrevDataAddress; DWORD m_CurrentDataAddress; DWORD m_PrevDataLen; BYTE m_CurrentData[0x1000]; DWORD m_CurrentDataLen; bool IsModifyValue(ULPOS Address,BYTE* ValueBuffer);//жǷı߹ ADDR_LIST m_AddrList; ADDR_LIST::IT m_AddrIter; void EmptyPosList(); void RecordCurAddr(ULPOS Address,ULPOS uPrevAddress); }; #endif ================================================ FILE: Project/Wisp/Source/WispInfoWnd.cpp ================================================ #include "StdAfx.h" #include "WispInfoWnd.h" WISP_MSG_MAP_BEGIN(CWispInfoWnd) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP_END(CWispBaseWnd) CWispInfoWnd::CWispInfoWnd(void) { } CWispInfoWnd::~CWispInfoWnd(void) { } bool CWispInfoWnd::OnUpdate(IN WISP_MSG*pMsg) { m_WindowDC.DrawFrameRect(&m_WindowRect); if(m_WndText.m_Length) m_WindowDC.DrawString(m_WndText,&m_WindowRect, 0); return true; } ================================================ FILE: Project/Wisp/Source/WispInfoWnd.h ================================================ #ifndef _WISP_INFO_WND_H_ #define _WISP_INFO_WND_H_ #include "WispWnd.h" class CWispInfoWnd : public CWispBaseWnd { public: CWispInfoWnd(void); virtual ~CWispInfoWnd(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); }; #endif ================================================ FILE: Project/Wisp/Source/WispList.cpp ================================================ #include "StdAfx.h" #include "WispList.h" WISP_MSG_MAP_BEGIN(CWispList) WISP_MSG_MAP(WISP_WM_PRECREATE,OnPrecreate) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_BEGIN_DRAG,OnBeginDrag) WISP_MSG_MAP(WISP_WM_DRAG_MOVE,OnDragMove) WISP_MSG_MAP(WISP_WM_END_DRAG,OnEndDrag) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_LOST_FOCUS,OnLostFocus) WISP_MSG_MAP(WISP_WM_SCROLL_EVENT,OnScrollEvent) WISP_MSG_MAP(WISP_WM_TIMER,OnTimer) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispWnd) WISP_MSG_CMD_MAP_BEGIN(CWispList) WISP_MSG_CMD_MAP(WISP_WLI_EDIT_CMD_ID,OnEditCommand) WISP_MSG_CMD_MAP_END CWispList::CWispList() { m_TextMargin = 3; m_ButtonSize.cx = 12; m_ButtonSize.cy = 16; m_RootItem.Style = WISP_WLIS_EXPANDED; m_RootItem.pParent = NULL; m_RootItem.nChecked = 0; m_OldTitleHeight = m_TitleHeight = 0; m_CtrlType = WISP_CTRL_LIST; m_TipPeriod = 700; } CWispList::~CWispList() { } int CWispListItem::GetLevel() { CWispListItem*pItemParent; int Count=0; pItemParent = pParent; while(pItemParent) { pItemParent = pItemParent->pParent; Count++; } return Count-1; } int CWispListItem::GetDispLine() { int Count=ChildItemList.Count(); for(CItemList::IT Iter = ChildItemList.Begin();Iter!=ChildItemList.End();Iter++) { if(Iter->Style & WISP_WLIS_EXPANDED) Count+=Iter->GetDispLine(); } return Count; } bool CWispListItem::IsParentOf(HANDLE hItem) { CWispListItem*pItem = (CWispListItem*)hItem; while(pItem->pParent) { pItem = pItem->pParent; if(pItem==this) return true; } return false; } bool CWispList::OnTimer(IN WISP_MSG*pMsg) { if(pMsg->Timer.ID == WISP_WLI_TIMER_ID) { if(m_LastMousePos.x == pMsg->MsgMouseCltPT.x && m_LastMousePos.y == pMsg->MsgMouseCltPT.y) { CItemList::IT ItemIter; int Pos = PointToItem(m_LastMousePos,ItemIter); if(Pos>=LI_POS_CELL_AREA_START && Pos< LI_POS_CELL_AREA_END) { if(ShowItemTip(&(*ItemIter),Pos,GetItemText(&(*ItemIter),Pos))==false) HideItemTip(); } } } return true; } bool CWispList::OnMouseDBClick(IN WISP_MSG*pMsg) { if(m_LastSelectIter==m_RootItem.ChildItemList.End()) return true; ItemDBClickNotify(&(*m_LastSelectIter),m_LastClickCol); if(pMsg->KeyEvent.KeyType==WISP_VK_LBUTTON) SendCmdMsg(WISP_CMD_ITEM_LDBCLICK,m_LastClickCol,&(*m_LastSelectIter)); else if(pMsg->KeyEvent.KeyType==WISP_VK_RBUTTON) SendCmdMsg(WISP_CMD_ITEM_RDBCLICK,m_LastClickCol,&(*m_LastSelectIter)); return true; } bool CWispList::OnScrollEvent(IN WISP_MSG*pMsg) { if(CWispWnd::OnScrollEvent(pMsg)==false) return false; if(pMsg->ScrollEvent.SBType == WISP_SB_VERT) { UpdateCurScrItem((int)pMsg->ScrollEvent.Delta); if(pMsg->ScrollEvent.Event==WISP_SB_PAGE_DOWN) { if(m_LastSelectIter!=m_RootItem.ChildItemList.End()) { CItemList::IT ItemIter = m_CurItemIter; if(pMsg->ScrollEvent.Delta==0) { for(int n=1;nScrollEvent.Event==WISP_SB_PAGE_UP) { if(m_LastSelectIter!=m_RootItem.ChildItemList.End()) { CItemList::IT ItemIter = m_CurItemIter; if(pMsg->ScrollEvent.Delta<0) { for(int n=1;n0) { Iter = m_ColumnList.Last(); Iter->Width = Iter->OrgWidth; } Iter = m_ColumnList.End(); } else Iter = m_ColumnList[Pos]; Iter = m_ColumnList.InsertBefore(Iter); Iter->szText = szText; Iter->Style = Style; Iter->pIcon = pIcon; if(Width<0) Iter->Width = m_ClientDC.GetTextExtent(szText)+m_TextMargin*2+2; else Iter->Width = Width; Iter->OrgWidth = Iter->Width; RecalcLayout(); return &(*Iter); } bool CWispList::RemoveColumn(int Pos) { if(Pos<0 || Pos>=m_ColumnList.Count()) return false; CColumnList::IT Iter = m_ColumnList[Pos]; m_ColumnList.Remove(Iter); RecalcLayout(); return true; } HANDLE CWispList::InsertItem(const WISP_CHAR*szText,HANDLE hParent,UINT Style,CWispDIB*pIcon,int Pos) { CWispListItem*pParentItem; if(hParent==NULL) pParentItem = &m_RootItem; else pParentItem = (CWispListItem*)hParent; if(pParentItem->Style&WISP_WLIS_CHECKED) Style|=WISP_WLIS_CHECKED; CItemList::IT ItemIter = pParentItem->ChildItemList.InsertBefore(pParentItem->ChildItemList[Pos]); CItemListCell::IT CellIter = ItemIter->ItemCellList.Append(); CellIter->szText = szText; CellIter->pIcon = pIcon; CellIter->FontColor = m_FontColor; ItemIter->pParent = (CWispListItem*)pParentItem; ItemIter->Style = Style&(~WISP_WLIS_CHECKED); ItemIter->nSemiChecked = ItemIter->nChecked = 0; if(Style&WISP_WLIS_CHECKED) CheckItem(&(*ItemIter)); if(pParentItem->Style & WISP_WLIS_EXPANDED) AdjustScrollBarMaxPos(WISP_SB_VERT,1); if(m_CurItemIter==m_RootItem.ChildItemList.End()) m_CurItemIter = ItemIter; return &(*ItemIter); } bool CWispList::RemoveItem(HANDLE hItem) { CWispListItem*pItem,*pParentItem; pItem = (CWispListItem*)hItem; if(pItem->Style&WISP_WLIS_CHECKED) pItem->pParent->nChecked--; if(pItem->Style&WISP_WLIS_SEMI_CHECKED) pItem->pParent->nSemiChecked--; UpdateItemTreeCheckState(pItem); if(&(*m_CurItemIter) == pItem || pItem->IsParentOf(&(*m_CurItemIter))) { CItemList :: IT CurItemIter = m_CurItemIter; if(GetPrevItem(m_CurItemIter)==false) { m_CurItemIter = CurItemIter; if(GetNextItem(m_CurItemIter)==false) m_CurItemIter = m_RootItem.ChildItemList.End(); } } if(&(*m_LastSelectIter)==m_hCurHoverItem) HideItemTip(); if(&(*m_LastSelectIter) == pItem || (m_LastSelectIter != m_RootItem.ChildItemList.End() && pItem->IsParentOf(&(*m_LastSelectIter))) ) m_LastSelectIter = m_RootItem.ChildItemList.End(); AdjustScrollBarMaxPos(WISP_SB_VERT,-pItem->GetDispLine()); pParentItem = pItem->pParent; pParentItem->ChildItemList.Remove(*pItem); if(pParentItem != &m_RootItem && pParentItem->ChildItemList.Count()==0 && (pParentItem->Style&WISP_WLIS_EXPANDED)) pParentItem->Style&=~WISP_WLIS_EXPANDED; return true; } HANDLE CWispList::InsertItemA(const char*szText,HANDLE hParent,UINT Style,CWispDIB*pIcon,int Pos) { WISP_CHAR szBuffer[512]; if(szText) TStrCpyLimit(szBuffer,szText,512); else szBuffer[0]=0; return InsertItem(szBuffer,hParent,Style,pIcon,Pos); } HANDLE CWispList::InsertItemW(const WCHAR*szText,HANDLE hParent,UINT Style,CWispDIB*pIcon,int Pos) { WISP_CHAR szBuffer[512]; TStrCpyLimit(szBuffer,szText,512); return InsertItem(szBuffer,hParent,Style,pIcon,Pos); } HANDLE CWispList::InsertItem(UINT Num,HANDLE hParent,WISP_CHAR*szFormat,UINT Style,CWispDIB*pIcon,int Pos) { CWispListItemCell*pCell; HANDLE hItem = InsertItem(NULL,hParent,Style,pIcon,Pos); pCell = GetItemCell(hItem); pCell->szText.Format(szFormat,Num); return hItem; } bool CWispList::RemoveItem(int Pos,HANDLE hParent) { CWispListItem*pParentItem; if(hParent==NULL) pParentItem = &m_RootItem; CItemList::IT Iter = pParentItem->ChildItemList[Pos]; return RemoveItem((HANDLE)&(*Iter)); } HANDLE CWispList::GetColumn(int Pos) { if(Pos < 0 || Pos > m_ColumnList.Count()) return NULL; return (HANDLE)&(*m_ColumnList[Pos]); } bool CWispList::SetColumnWidth(int Col,int Width) { HANDLE hColumn; hColumn = GetColumn(Col); if(hColumn==NULL) return false; return SetColumnWidth(hColumn,Width); } bool CWispList::SetColumnWidth(HANDLE hColumn,int Width) { CWispColumnItem*pColItem = (CWispColumnItem*)hColumn; pColItem->Width = Width; RecalcLayout(); return true; } bool CWispList::SetColumnText(HANDLE hColumn,WISP_PCSTR szText) { CWispColumnItem*pColItem = (CWispColumnItem*)hColumn; pColItem->szText = szText; return true; } bool CWispList::SetColumnIcon(HANDLE hColumn,CWispDIB*pDIB) { CWispColumnItem*pColItem = (CWispColumnItem*)hColumn; pColItem->pIcon = pDIB; return true; } bool CWispList::SetColumnData(HANDLE hColumn,NUM_PTR Data) { CWispColumnItem*pColItem = (CWispColumnItem*)hColumn; pColItem->Data = Data; return true; } bool CWispList::SetColumnInfo(HANDLE hColumn,WISP_PCSTR szText,CWispDIB*pDIB,NUM_PTR Data) { CWispColumnItem*pColItem = (CWispColumnItem*)hColumn; pColItem->szText = szText; pColItem->pIcon = pDIB; pColItem->Data = Data; return true; } bool CWispList::SetItemTextA(HANDLE hItem,int Col,const CHAR*szText) { WISP_CHAR szBuffer[512]; TStrCpyLimit(szBuffer,szText,512); return SetItemText(hItem,Col,szBuffer); } bool CWispList::SetItemText(HANDLE hItem,int Col,const WISP_CHAR*szText) { CWispListItemCell*pCell = GetItemCell(hItem,Col); CODE_ASSERT(pCell); if(pCell==NULL) return false; pCell->szText = szText; return true; } bool CWispList::SetItemColorText(HANDLE hItem,int Col,const WISP_COLOR_CHAR*szText) { WISP_CHAR*pszText; CWispListItemCell*pCell = GetItemCell(hItem,Col); CODE_ASSERT(pCell); if(pCell==NULL) return false; int Length = (TStrLen(szText)+1)*2; pCell->szText.Preallocate(Length+2); pszText = pCell->szText; memcpy(&pszText[2],szText,Length*2); pCell->szText[0] = 0xFFFF; pCell->szText[1] = 0xFFFF; pCell->szText.m_Length = Length/2-1; return true; } bool CWispList::SetItemData(HANDLE hItem,int Col,NUM_PTR Data) { CWispListItemCell*pCell = GetItemCell(hItem,Col); CODE_ASSERT(pCell); if(pCell==NULL) return false; pCell->Data = Data; return true; } bool CWispList::SetItemNum(HANDLE hItem,int Col,UINT Num,const WISP_CHAR*szFormat) { CWispListItemCell*pCell = GetItemCell(hItem,Col); CODE_ASSERT(pCell); if(pCell==NULL) return false; pCell->szText.Format(szFormat,Num); return true; } bool CWispList::SetItemIcon(HANDLE hItem,int Col,CWispDIB*pIcon) { CWispListItemCell*pCell = GetItemCell(hItem,Col); CODE_ASSERT(pCell); if(pCell==NULL) return false; pCell->pIcon = pIcon; return true; } bool CWispList::SetItemTextColor(HANDLE hItem,int Col,COLORREF Color) { if(Col>=0) { CWispListItemCell*pCell = GetItemCell(hItem,Col); CODE_ASSERT(pCell); if(pCell==NULL) return false; pCell->FontColor = Color; } else { CWispListItem*pItem = (CWispListItem*)hItem; for(CItemListCell::IT Iter = pItem->ItemCellList.Begin();Iter!=pItem->ItemCellList.End();Iter++) { Iter->FontColor = Color; } } return true; } bool CWispList::SetItemLineColor(HANDLE hItem,COLORREF Color) { ((CWispListItem*)hItem)->LineColor = Color; return true; } bool CWispList::ModifyItemStyle(HANDLE hItem,UINT AddStyle,UINT RemoveStyle) { CWispListItem*pItem = (CWispListItem*)hItem; if(AddStyle) pItem->Style|=AddStyle; if(RemoveStyle) pItem->Style&=~RemoveStyle; return true; } bool CWispList::ClearChildItem(HANDLE hItem) { if(hItem == NULL) { if(m_LastSelectIter!=m_RootItem.ChildItemList.End() && m_RootItem.IsParentOf(&(*m_LastSelectIter))) m_LastSelectIter = m_RootItem.ChildItemList.End(); m_RootItem.ChildItemList.Clear(); m_CurItemIter = m_RootItem.ChildItemList.End(); m_RootItem.nSemiChecked = m_RootItem.nChecked = 0; SetScrollBarInfo(WISP_SB_VERT,0,0,m_ScrollBar[WISP_SB_VERT]->Page); return true; } CWispListItem*pItem = (CWispListItem*)hItem; if(pItem->Style&WISP_WLIS_EXPANDED) AdjustScrollBarMaxPos(WISP_SB_VERT,-pItem->GetDispLine()); if(m_LastSelectIter!=m_RootItem.ChildItemList.End() && pItem->IsParentOf(&(*m_LastSelectIter))) m_LastSelectIter = m_RootItem.ChildItemList.End(); if(m_CurItemIter!=m_RootItem.ChildItemList.End() && pItem->IsParentOf(&(*m_CurItemIter))) m_CurItemIter = *pItem; pItem->ChildItemList.Clear(); pItem->nSemiChecked = pItem->nChecked = 0; pItem->Style&=~WISP_WLIS_EXPANDED; return true; } int CWispList::EmptyChildItemContext(HANDLE hItem) { CWispListItem*pItem = (CWispListItem*)hItem; if(pItem==NULL) pItem = &m_RootItem; for(CItemList::IT Iter=pItem->ChildItemList.Begin();Iter!=pItem->ChildItemList.End();Iter++) { EmptyItemContext(&(*Iter)); } return pItem->ChildItemList.Count(); } void CWispList::EmptyItemContext(HANDLE hItem) { CWispListItem*pItem = (CWispListItem*)hItem; for(CItemListCell::IT Iter=pItem->ItemCellList.Begin();Iter!=pItem->ItemCellList.End();Iter++) { Iter->szText.Empty(); Iter->FontColor = m_FontColor; Iter->Data = 0; } } int CWispList::SetItemChildCount(HANDLE hItem,int Count) { HANDLE hChildItem,hDelItem; int Delta; if(Count<0) return 0; if(hItem==NULL) hItem = &m_RootItem; Delta = Count - GetItemCount(hItem,false); if(Delta<0) { hChildItem = GetItem(Count,hItem); while(Delta<0) { hDelItem = hChildItem; hChildItem = GetNextItem(hChildItem); RemoveItem(hDelItem); Delta++; } } if(Delta>0) { while(Delta>0) { InsertItem((WISP_PCSTR)NULL,hItem); Delta--; } } return Delta; } bool CWispList::ShowColumnTitle(bool bShow) { if((m_Style & WISP_WLS_COLUMN_TITLE)==0) return false; if(bShow) { if(m_TitleHeight>0) return true; m_OldTitleHeight = m_TitleHeight; m_TitleHeight = 0; } else { if(m_TitleHeight<=0) return true; m_TitleHeight = m_OldTitleHeight; } RecalcLayout(); return true; } void CWispList::EnableVisible(HANDLE hItem,int nPrevLine) { int Index; CWispListItem*pItem = (CWispListItem*)hItem; while(pItem->pParent!=&m_RootItem) { if((pItem->pParent->Style & WISP_WLIS_EXPANDED)==0) ExpandItem(pItem->pParent); pItem = pItem->pParent; } pItem = (CWispListItem*)hItem; CItemList::IT ItemIter = *pItem; if(nPrevLine<0) nPrevLine = m_nLinePerPage/2; while(nPrevLine>0 && GetPrevLineItem(ItemIter)) { pItem = &(*ItemIter); nPrevLine--; } Index = 0; ItemIter = m_RootItem.ChildItemList.Begin(); while(ItemIter!=m_RootItem.ChildItemList.End()) { if(&(*ItemIter) == pItem) { SetScrollBarCurPos(WISP_SB_VERT,Index); return; } if(GetNextLineItem(ItemIter)==false) return; Index++; } } bool CWispList::IsItemVisible(HANDLE hItem) { CWispListItem*pItem = (CWispListItem*)hItem; CItemList::IT Iter = m_CurItemIter; for(int n=0;nszText)+m_TextMargin+m_TextMargin; if(Col==0) { if(m_Style&WISP_WLS_TREE) TextWidth += m_ButtonSize.cx; if(m_Style&WISP_WLS_CHECK_BOX) TextWidth += m_ButtonSize.cx; } if(pCell->pIcon) TextWidth += pCell->pIcon->Width(); return TextWidth<=m_ColumnList[Col]->ColRect.cx; } bool CWispList::OnPrecreate(WISP_MSG*pMsg) { m_ListBTIndex = 0; m_FontColor = WispColor(SC_BLACK); m_SelectFontColor = WispColor(SC_WHITE); m_LostFocusSelBKColor = m_SelectBKColor =SYS_COLOR[SC_UNNAMED_13]; m_HorzLineColor = WispColor(SC_BLACK); m_VertLineColor = WispColor(SC_LIGHT_BLUE); m_ColTitleFontColor = WispColor(SC_WHITE); m_TitleHeight = m_ClientDC.m_pFont->m_Height + 4 + 2; EnableScrollBar(WISP_SB_VERT); EnableScrollBar(WISP_SB_HORZ); return true; } bool CWispList::OnCreate(WISP_MSG*pMsg) { if((m_Style&WISP_WLS_COLUMN_TITLE)==0) STZeroMemory(m_TitleRect); m_EditCtrl.Create(NULL,0,0,0,0,this,WISP_WLI_EDIT_CMD_ID,WISP_ES_LEFT|WISP_ES_AUTOHSCROLL|WISP_WS_BORDER,WISP_SH_HIDDEN); m_TipFullItemTextWnd.Create(NULL,0,0,0,0,NULL,WISP_WLI_TIP_CMD_ID,WISP_WS_NULL,WISP_SH_HIDDEN); return true; } bool CWispList::InitWnd() { m_pDragColumn = NULL; m_ColTotalWidth = 0; m_nLinePerPage = 0; m_HorzScrollSpace = m_ClientDC.m_pFont->GetCharWidth(WISP_STR('0'))/2; m_LastSelectIter = m_CurItemIter = m_RootItem.ChildItemList.End(); m_bSaveItem = true; m_bTipTimerSet = false; m_LastMousePos.x = m_LastMousePos.y = -1; m_LastSelectIter = m_RootItem.ChildItemList.End(); m_ButtonSize.cy = m_ClientDC.GetTextHeight()+4; m_ProcEndEditItem = false; return CWispWnd::InitWnd(); } bool CWispList::Destroy() { m_TipFullItemTextWnd.Destroy(); m_LastSelectIter = m_RootItem.ChildItemList.End(); m_RootItem.ChildItemList.Clear(); m_RootItem.nChecked = 0; m_RootItem.nSemiChecked = 0; m_RootItem.Style = WISP_WLIS_EXPANDED; m_ColumnList.Clear(); return CWispWnd::Destroy(); } void CWispList::RecalcLayout() { CWispWnd::RecalcLayout(); m_TitleRect.x = m_TitleRect.y = 0; m_TitleRect.cx = m_ClientRect.cx; if(m_Style & WISP_WLS_COLUMN_TITLE) m_TitleRect.cy = m_TitleHeight; else m_TitleRect.cy = 0; m_ListRect.x = m_ListRect.y = 0; m_ListRect.y += m_TitleRect.cy; m_ListRect.cy = m_ClientRect.cy - m_TitleRect.cy; m_nLinePerPage = m_ClientRect.cy; if(m_Style&WISP_WLS_COLUMN_TITLE) m_nLinePerPage-=m_TitleRect.cy; m_nLinePerPage +=m_ButtonSize.cy/3; m_nLinePerPage /=m_ButtonSize.cy; MIN_LIMIT(m_nLinePerPage,0); if(m_ScrollBar[WISP_SB_VERT] && m_nLinePerPage!=(int)m_ScrollBar[WISP_SB_VERT]->Page) SetScrollBarPage(WISP_SB_VERT,m_nLinePerPage); m_TreeSpace = 0; if(m_Style&WISP_WLS_TREE) m_TreeSpace += m_ButtonSize.cx; if(m_Style&WISP_WLS_CHECK_BOX) m_TreeSpace += m_ButtonSize.cx; if(m_ScrollBar[WISP_SB_HORZ]) { if(m_ClientRect.cx > 0 && m_ScrollBar[WISP_SB_HORZ]->Page != m_ClientRect.cx/m_HorzScrollSpace) SetScrollBarPage(WISP_SB_HORZ,m_ClientRect.cx/m_HorzScrollSpace); } m_ColTotalWidth=0; int x=0; for(CColumnList::IT Iter = m_ColumnList.Begin();Iter!=m_ColumnList.End();Iter++) { Iter->ColRect.x = x; Iter->ColRect.y = m_TitleRect.y; if(Iter == m_ColumnList.Last()) { if(m_ColTotalWidth+Iter->WidthWidth = m_ClientRect.cx - m_ColTotalWidth; m_ColTotalWidth+=Iter->Width; if(m_ScrollBar[WISP_SB_HORZ] && m_ColTotalWidth!=m_ScrollBar[WISP_SB_HORZ]->MaxPos*m_HorzScrollSpace) { if(m_ScrollBar[WISP_SB_HORZ]->bHide && Iter->Width>=Iter->OrgWidth+m_pWispBase->m_Metrics[WISP_SM_SCROLL_BAR_SIZE]) m_ColTotalWidth-=m_pWispBase->m_Metrics[WISP_SM_SCROLL_BAR_SIZE]; SetScrollBarRange(WISP_SB_HORZ,m_ColTotalWidth/m_HorzScrollSpace); } } else m_ColTotalWidth+=Iter->Width; Iter->ColRect.cx = Iter->Width; Iter->ColRect.cy = m_TitleRect.cy; Iter->SplitRect.x = x + Iter->ColRect.cx - 2; Iter->SplitRect.y = m_TitleRect.y+2; Iter->SplitRect.cx = 2; Iter->SplitRect.cy = m_TitleRect.cy - 4; Iter->TestSplitRect.x = Iter->SplitRect.x - 2; Iter->TestSplitRect.cx = Iter->SplitRect.cx + 4; Iter->TestSplitRect.y = m_TitleRect.y; Iter->TestSplitRect.cy = m_TitleRect.cy; x+=Iter->Width; } m_ListRect.cx = m_ColTotalWidth; UpdateCurScrItem(0); } bool CWispList::OnBeginDrag(WISP_MSG*pMsg) { m_pWispBase->ChangeCursorType(WISP_CT_RESIZE_HORZ); return true; } bool CWispList::OnDragMove(WISP_MSG*pMsg) { int dx; bool bDragMove; WISP_POINT pt; CColumnList::IT Iter; pt.x = pMsg->MsgMouseCltPT.x + (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; pt.y = pMsg->MsgMouseCltPT.y; dx = pMsg->DragEvent.DeltaX; Iter = *m_pDragColumn; if(Iter==m_ColumnList.Last()) { bDragMove = true; if(dx<0) { if(pt.xColRect.x+Iter->TestSplitRect.cx) { if(Iter->Width > Iter->TestSplitRect.cx) dx = Iter->TestSplitRect.cx - Iter->Width; else bDragMove = false; } } if(bDragMove) { Iter->Width+=dx; m_ColTotalWidth+=dx; SetScrollBarRange(WISP_SB_HORZ,m_ColTotalWidth/m_HorzScrollSpace); RecalcLayout(); Update(); } return true; } Iter++; bDragMove = true; if(dx>0) { if(pt.x < m_pDragColumn->SplitRect.x+m_pDragColumn->SplitRect.cx/2) bDragMove = false; else if(pt.x >= Iter->ColRect.x + Iter->Width - Iter->TestSplitRect.cx) { if(Iter->Width > Iter->TestSplitRect.cx) dx = Iter->Width - Iter->TestSplitRect.cx; else bDragMove = false; } } else { if(pt.x >= m_pDragColumn->SplitRect.x+m_pDragColumn->SplitRect.cx/2) bDragMove = false; else if(pt.x < m_pDragColumn->ColRect.x + m_pDragColumn->TestSplitRect.cx) { if(m_pDragColumn->Width > m_pDragColumn->TestSplitRect.cx && pt.x > 0) dx = m_pDragColumn->TestSplitRect.cx - m_pDragColumn->Width; else bDragMove = false; } } if(bDragMove) { m_pDragColumn->Width+=dx; Iter->Width-=dx; RecalcLayout(); Update(); } return true; } bool CWispList::OnEndDrag(WISP_MSG*pMsg) { m_pWispBase->ChangeCursorType(WISP_CT_ARROW); m_pDragColumn = NULL; return true; } bool CWispList::OnMouseMove(WISP_MSG*pMsg) { WISP_RECT TestRC; WISP_POINT pt = pMsg->MsgMouseCltPT; if(m_pDragColumn && PtInRect(&m_ClientRect,&pMsg->MsgMouseWndPT)==false) { m_pWispBase->ChangeCursorType(WISP_CT_ARROW); m_pDragColumn = NULL; return true; } pt.x+=(int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; if(m_Style&WISP_WLS_COLUMN_TITLE) { m_pDragColumn = NULL; if(m_Style&WISP_WLS_VERT_LINE) { for(CColumnList::IT Iter = m_ColumnList.Begin();Iter!=m_ColumnList.End();Iter++) { TestRC.x = Iter->TestSplitRect.x; TestRC.cx = Iter->TestSplitRect.cx; TestRC.y = 0; TestRC.cy = m_ClientRect.cy; if(pt.x < TestRC.x) break; if(PtInRect(&TestRC,pt) && (Iter->Style&WISP_WLCS_FIXED)==0) { m_pDragColumn = &(*Iter); break; } } } else if(pt.y>=m_TitleRect.y && pt.yTestSplitRect.x) break; if(PtInRect(&Iter->TestSplitRect,pt) && (Iter->Style&WISP_WLCS_FIXED)==0) { m_pDragColumn = &(*Iter); break; } } } if(PtInRect(&m_ClientRect,&pMsg->MsgMouseWndPT)) { if(m_pDragColumn && m_pWispBase->m_CursorType != WISP_CT_RESIZE_HORZ) m_pWispBase->ChangeCursorType(WISP_CT_RESIZE_HORZ); else if(m_pDragColumn ==NULL && m_pWispBase->m_CursorType != WISP_CT_ARROW) m_pWispBase->ChangeCursorType(WISP_CT_ARROW); m_LastMousePos = pMsg->MsgMouseCltPT; if(m_TipFullItemTextWnd.IsVisible() && PtInRect(&m_TipFullItemTextWnd.m_ScrWindowRect,pMsg->MsgMouseScrPT)==false) HideItemTip(); if(m_bTipTimerSet==false) { InsertTimer(WISP_WLI_TIMER_ID,m_TipPeriod); m_bTipTimerSet=true; } } } if(m_Style & WISP_WLS_FOLLOW_SEL) { HANDLE hItem = PointToItem(pt); if(hItem) { SelectItem(hItem); } } return true; } bool CWispList::OnMouseLeave(WISP_MSG*pMsg) { if(m_pDragColumn && m_pWispBase->m_CursorType != WISP_CT_ARROW) { m_pWispBase->ChangeCursorType(WISP_CT_ARROW); m_pDragColumn = NULL; } if(pMsg->MouseEvent.hWndMouseAt == &m_TipFullItemTextWnd) return false; else HideItemTip(); return true; } bool CWispList::OnKeyEvent(WISP_MSG*pMsg) { int Index,Pos; WISP_POINT TmpPoint; WISP_POINT pt; pt = pMsg->MsgMouseCltPT; switch(pMsg->KeyEvent.KeyType) { case WISP_VK_RBUTTON: { if(pt.x>m_ClientRect.cx || pt.y>m_ClientRect.cy || pMsg->KeyEvent.bKeyDown==false) return true; CItemList::IT ItemIter; Pos = PointToItem(pMsg->MsgMouseCltPT,ItemIter); switch(Pos) { case LI_POS_COLUMN: TmpPoint=pMsg->MsgMouseCltPT; TmpPoint.y=m_TitleRect.y + m_TitleRect.cy+1; Pos = PointToItem(TmpPoint,ItemIter); Index = Pos - LI_POS_CELL_AREA_START; TitleRClickNotify(Index); PostEventMsg(WISP_CMD_TITLE_RCLICK,Index,NULL); break; case LI_POS_TREE_BT: case LI_POS_CHECK_BOX: case LI_POS_NON_AREA: break; default: Index = Pos - LI_POS_CELL_AREA_START; if(ItemIter->Style & WISP_WLIS_SELECTED) { if(Index >=0 && Index < m_ColumnList.Count() && m_EditCtrl.m_ShowMode==WISP_SH_HIDDEN) { ItemRClickNotify(&(*ItemIter),Index); PostEventMsg(WISP_CMD_CTRL_RCLICK,Index,&(*ItemIter)); } } break; } } break; case WISP_VK_LBUTTON: { if(pt.x>m_ClientRect.cx || pt.y>m_ClientRect.cy) return true; CItemList::IT ItemIter; if(m_Style&WISP_WLS_COLUMN_TITLE && m_pDragColumn) { if(pMsg->KeyEvent.bKeyDown) BeginDrag(); else EndDrag(); return true; } if(pMsg->KeyEvent.bKeyDown) { Pos = PointToItem(pMsg->MsgMouseCltPT,ItemIter); switch(Pos) { case LI_POS_TREE_BT: ToggleExpandItem(&(*ItemIter)); break; case LI_POS_CHECK_BOX: ToggleCheckItem(&(*ItemIter)); break; case LI_POS_COLUMN: TmpPoint=pMsg->MsgMouseCltPT; TmpPoint.y=m_TitleRect.y + m_TitleRect.cy+1; Pos = PointToItem(TmpPoint,ItemIter); Index = Pos - LI_POS_CELL_AREA_START; TitleClickNotify(Index); PostEventMsg(WISP_CMD_TITLE_CLICK,Index,NULL); case LI_POS_NON_AREA: if(m_LastSelectIter!=m_RootItem.ChildItemList.End() && (m_Style & WISP_WLS_SELECTED_ALWAYS)==0) UnselectItem(&(*m_LastSelectIter)); break; default: Index = Pos - LI_POS_CELL_AREA_START; if(ItemIter->Style & WISP_WLIS_SELECTED) { if(Index >=0 && Index < m_ColumnList.Count() && m_EditCtrl.m_ShowMode==WISP_SH_HIDDEN) { if(m_ColumnList[Index]->Style&WISP_WLCS_EDITABLE) { BeginEditItem(&(*ItemIter),Index); } else { ItemClickNotify(&(*ItemIter),Index); m_LastClickCol = Index; PostEventMsg(WISP_CMD_CTRL_CLICK,Index,&(*ItemIter)); } } if((m_Style & WISP_WLS_MULTI_SELECT) && m_pWispBase->m_KeyMap[WISP_VK_CONTROL]) UnselectItem(&(*ItemIter)); } else { if((m_Style & WISP_WLS_MULTI_SELECT)==0 || m_pWispBase->m_KeyMap[WISP_VK_CONTROL]==false) { if(m_LastSelectIter!=m_RootItem.ChildItemList.End()) UnselectItem(&(*m_LastSelectIter)); } SelectItem(&(*ItemIter)); } break; } } Update(); } break; case WISP_VK_UP: case WISP_VK_DOWN: if(pMsg->KeyEvent.bKeyDown && (m_Style&WISP_WLS_MULTI_SELECT)==0) { if(m_LastSelectIter!=m_RootItem.ChildItemList.End()) { bool Result; if(IsItemVisible(&(*m_LastSelectIter))==false) { EnableVisible(&(*m_LastSelectIter)); } CItemList :: IT NewSelectIter = m_LastSelectIter; if(pMsg->KeyEvent.KeyType==WISP_VK_UP) { Result = GetPrevLineItem(NewSelectIter); if(m_LastSelectIter == m_CurItemIter) SendScrollEvent(WISP_SB_VERT,WISP_SB_DEC); } else { Result = GetNextLineItem(NewSelectIter); if(GetItemScrLine(&(*m_LastSelectIter))==m_nLinePerPage-1) SendScrollEvent(WISP_SB_VERT,WISP_SB_INC); } if(Result) { SelectItem(&(*NewSelectIter)); Update(); } } else { if(m_RootItem.ChildItemList.Count()) { SelectItem(&(*m_RootItem.ChildItemList.Begin())); EnableVisible(&(*m_LastSelectIter)); Update(); } } } break; case WISP_VK_LEFT: if(pMsg->KeyEvent.bKeyDown && m_LastSelectIter!=m_RootItem.ChildItemList.End() && m_LastSelectIter->GetLevel()>0) { EnableVisible(m_LastSelectIter->pParent); SelectItem(m_LastSelectIter->pParent); } break; case WISP_VK_RIGHT: if(pMsg->KeyEvent.bKeyDown && m_LastSelectIter!=m_RootItem.ChildItemList.End()) ExpandItem(&(*m_LastSelectIter)); break; case WISP_VK_RETURN: if(pMsg->KeyEvent.bKeyDown && m_LastSelectIter!=m_RootItem.ChildItemList.End()) ToggleExpandItem(&(*m_LastSelectIter)); break; case WISP_VK_SPACE: if((m_Style & WISP_WLS_CHECK_BOX) && pMsg->KeyEvent.bKeyDown && m_LastSelectIter!=m_RootItem.ChildItemList.End()) ToggleCheckItem(&(*m_LastSelectIter)); break; } HideItemTip(); return true; } bool CWispList::OnEditCommand(WISP_MSG*pMsg) { switch(pMsg->Command.CmdMsg) { case WISP_CMD_EN_INPUT_KEY_DOWN: switch(pMsg->Command.Param1) { case WISP_VK_RETURN: EndEditItem(true); break; case WISP_VK_ESCAPE: EndEditItem(false); break; } break; case WISP_CMD_EN_KILLFOCUS: if(m_ProcEndEditItem==false) OnEndEditItem(); return false; default: break; } return true; } bool CWispList::OnUpdateClient(WISP_MSG*pMsg) { WISP_RECT rc,SplitRC,ClipRect; if( (m_Style & WISP_WS_BACK_TRANS)==0) { if(m_pBKDIB) m_ClientDC.DrawDIBTiled(m_pBKDIB); else if(m_bBGColor) m_WindowDC.DrawFullRect(&m_ClientRect, m_crBGColor); else m_pWispBase->m_pCurDrawObj->DrawCtrlClient(&m_WindowDC,&m_ClientRect); } CItemList::IT ItemIter = m_CurItemIter; if(ItemIter!=m_RootItem.ChildItemList.End()) { for(int iLine=0; iLinem_pCurDrawObj->DrawListColumnTitleBK(&m_ClientDC,&m_TitleRect); rc = m_TitleRect; rc.x = m_TextMargin - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; for(CColumnList::IT ColIter = m_ColumnList.Begin();ColIter!=m_ColumnList.End();ColIter++) { ClipRect = ColIter->ColRect; ClipRect.x -= (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; m_ClientDC.EnableClipRect(&ClipRect); rc.cx = ColIter->Width - m_TextMargin*2; if(ColIter->pIcon) { m_ClientDC.DrawDIB(rc.x,rc.y + CENTER_ALGN(ColIter->pIcon->m_Rect.cy,rc.cy),ColIter->pIcon); int Width = ColIter->pIcon->Width()+m_TextMargin; rc.x+=Width; rc.cx-=Width; } DrawColumnItemText(&(*ColIter),&rc); rc.x += rc.cx+m_TextMargin*2; SplitRC = ColIter->SplitRect; SplitRC.x -= (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; m_ClientDC.DrawFrameRect(&SplitRC,false); m_ClientDC.DisableClipRect(); if(m_Style & WISP_WLS_VERT_LINE) { SplitRC.cx = 2; SplitRC.y = m_ListRect.y+2; SplitRC.cy = m_ListRect.cy-4; m_ClientDC.DrawFrameRect(&SplitRC,false); } } } return false; } int CWispList::GetItemScrLine(HANDLE hItem) { int Index = 0; CItemList::IT ItemIter; ItemIter = m_CurItemIter; while(Index < m_nLinePerPage) { if(&(*ItemIter) == hItem) return Index; if(GetNextLineItem(ItemIter)==false) break; Index++; } if(&(*ItemIter) == hItem) return Index; return -1; } bool CWispList::GetItemCellRect(HANDLE hItem,int Col,WISP_RECT*pRECT) { int nScrLine; nScrLine = GetItemScrLine(hItem); if(nScrLine<0) return false; pRECT->y = m_ListRect.y + nScrLine*m_ButtonSize.cy; pRECT->cy = m_ButtonSize.cy; pRECT->cx = pRECT->x = 0; for(CColumnList::IT ColIter=m_ColumnList.Begin();ColIter!=m_ColumnList.End();ColIter++) { if(Col==0) { pRECT->x = ColIter->ColRect.x; pRECT->cx = ColIter->ColRect.cx; break; } Col--; } return true; } HANDLE CWispList::GetScrStartItem() { if(m_CurItemIter == m_RootItem.ChildItemList.End()) return NULL; return &(*m_CurItemIter); } void CWispList::DrawListItem(int iLine,const CItemList::IT&ItemIter) { int LimitX,Level,X,Col; WISP_RECT rc; CItemListCell::IT CellIter; CColumnList::IT ColIter; CWispListItem*pParentItem = ItemIter->pParent; CWispListItem*pItem = &(*ItemIter); Level = pItem->GetLevel(); rc.y = m_ListRect.y + m_ButtonSize.cy * iLine; rc.cy = m_ButtonSize.cy; if((m_Style&WISP_WLS_OPTION_TREE)==WISP_WLS_OPTION_TREE) { if(pItem->ChildItemList.Count()) { rc.x = m_ListRect.x + Level * m_TreeSpace - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; rc.cx = m_ListRect.cx; m_ClientDC.DrawFullRect(&rc,SYS_COLOR[SC_GRAY]); } for(int n=0;n<=Level;n++) { if(n%2==0) { rc.x = m_ListRect.x - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace+m_ButtonSize.cx*n; rc.cx = m_ButtonSize.cx; m_ClientDC.DrawFullRect(&rc,SYS_COLOR[SC_GRAY]); } } } rc.x = m_ListRect.x + Level * m_TreeSpace - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; ColIter = m_ColumnList.Begin(); CellIter = ItemIter->ItemCellList.Begin(); Col = 0; while(CellIter!=ItemIter->ItemCellList.End() && ColIter!= m_ColumnList.End()) { WISP_RECT ClipRect; ClipRect.x = ColIter->ColRect.x - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; ClipRect.y = rc.y; ClipRect.cx = ColIter->ColRect.cx; ClipRect.cy = m_ButtonSize.cy; if(Col==0) { if(ItemIter->Style&WISP_WLIS_COLOR_LINE) { WISP_RECT BKrc; BKrc.x = 0; BKrc.y = rc.y; BKrc.cx = m_ClientRect.cx; BKrc.cy = rc.cy; m_ClientDC.DrawFullRect(&BKrc,ItemIter->LineColor); } if(((m_Style&WISP_WLS_SELECTED_ALWAYS) || IsFocus() ) && (ItemIter->Style&WISP_WLIS_SELECTED) && (m_Style&WISP_WLS_HIDE_SELECTED)==0) { WISP_RECT BKrc; BKrc.x = 0; BKrc.y = rc.y; BKrc.cx = m_ClientRect.cx; BKrc.cy = rc.cy; if(m_Style&WISP_WLS_EMPTY_SEL_RECT) m_ClientDC.DrawRect(&BKrc,IsFocus() ? m_SelectBKColor : m_LostFocusSelBKColor); else m_pWispBase->m_pCurDrawObj->DrawListSelectedItemBK(&m_ClientDC,&BKrc); } m_ClientDC.EnableClipRect(&ClipRect); LimitX = ColIter->ColRect.x+ColIter->ColRect.cx-(int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; } else { m_ClientDC.EnableClipRect(&ClipRect); rc.x = ColIter->ColRect.x - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; } if(m_ListBTIndex==Col) { if(m_Style&WISP_WLS_TREE) { rc.cx = m_ButtonSize.cx; if(pItem->ChildItemList.Count()) m_ClientDC.DrawSystemStandardIcon(rc,(pItem->Style&WISP_WLIS_EXPANDED)?WISP_SSI_EXPANDBUTTON_EXPAND:WISP_SSI_EXPANDBUTTON_COLLAPSE); rc.x += m_ButtonSize.cx; } if(m_Style&WISP_WLS_CHECK_BOX) { UINT IconIndex; rc.cx = m_ButtonSize.cx; if(pItem->Style&WISP_WLIS_CHECKED) IconIndex = WISP_SSI_CHECKBOX_CHECKED; else if(pItem->Style&WISP_WLIS_SEMI_CHECKED) IconIndex = WISP_SSI_CHECKBOX_SEMICHECKED; else IconIndex = WISP_SSI_CHECKBOX_UNCHECKED; m_ClientDC.DrawSystemStandardIcon(rc,IconIndex); rc.x += m_ButtonSize.cx; } } else { } if(CellIter->pIcon) { m_ClientDC.DrawDIB(rc.x,rc.y,CellIter->pIcon); rc.x += CellIter->pIcon->Width(); } m_ClientDC.DisableClipRect(); rc.x += m_TextMargin; rc.cx = ColIter->ColRect.x+ColIter->ColRect.cx - rc.x - m_TextMargin - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; m_ClientDC.SetTextColor(CellIter->FontColor); DrawCellText(Col,&(*CellIter),&rc); ColIter++; CellIter++; Col++; } if((m_Style&WISP_WLS_HORZ_LINE)&&iLine>0) { X = m_ListRect.x - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; if((m_Style&WISP_WLS_OPTION_TREE)==WISP_WLS_OPTION_TREE) X += m_TreeSpace*(Level); m_ClientDC.DrawHLine(X,m_ListRect.cx-1,m_ListRect.y+iLine*m_ButtonSize.cy,m_HorzLineColor); } } bool CWispList::GetPrevListItem(CItemList::IT &ItemIter) { CWispListItem*pParent = ItemIter->pParent; if(pParent==NULL) return false; ItemIter--; if(ItemIter==pParent->ChildItemList.End()) { if(pParent != &m_RootItem) { ItemIter = *pParent; return true; } return false; } while(ItemIter->ChildItemList.Count()) ItemIter = ItemIter->ChildItemList.Last(); return true; } bool CWispList::GetPrevLineItem(CItemList::IT &ItemIter) { CODE_ASSERT(ItemIter->pParent && (ItemIter->pParent->Style&WISP_WLIS_EXPANDED)); CWispListItem*pParent = ItemIter->pParent; if(pParent==NULL) return false; if(ItemIter==pParent->ChildItemList.Begin()) { if(pParent != &m_RootItem) { ItemIter = *pParent; return true; } return false; } else ItemIter--; while((ItemIter->Style & WISP_WLIS_EXPANDED) && ItemIter->ChildItemList.Count()) ItemIter = ItemIter->ChildItemList.Last(); return true; } bool CWispList::GetNextLineItem(CItemList::IT &ItemIter) { if(m_RootItem.ChildItemList.Count()==0 || ItemIter == m_RootItem.ChildItemList.End()) return false; if((ItemIter->Style&WISP_WLIS_EXPANDED) && ItemIter->ChildItemList.Count()) { ItemIter = ItemIter->ChildItemList.Begin(); return true; } CWispListItem*pParent = ItemIter->pParent; if(pParent==NULL) return false; ItemIter++; if(ItemIter == pParent->ChildItemList.End()) { while(pParent!=&m_RootItem) { ItemIter = *pParent; pParent = pParent->pParent; ItemIter++; if(ItemIter != pParent->ChildItemList.End()) break; } } return ItemIter != pParent->ChildItemList.End(); } int CWispList::UpdateCurScrItem(int Offset) { int Result = 0; if(m_CurItemIter==m_RootItem.ChildItemList.End()) return 0; if(Offset>0) { while(Offset>0) { if(GetNextLineItem(m_CurItemIter)==false) return Result; Offset--; Result++; } } else if(Offset<0) { while(Offset<0) { if(GetPrevLineItem(m_CurItemIter)==false) return Result; Offset++; Result++; } } return Result; } HANDLE CWispList::PointToItem(const WISP_POINT&ClientPT,int*pPos) { CItemList::IT ItemIter; int Result = PointToItem(ClientPT,ItemIter); if(Result >= LI_POS_CELL_AREA_START) { if(pPos) *pPos=Result; return &(*ItemIter); } if(pPos) *pPos=LI_POS_NON_AREA; return NULL; } int CWispList::PointToItem(const WISP_POINT&ClientPT,CItemList::IT &ItemIter) { int iLine,x,ListX; if(ClientPT.y>=m_TitleRect.y && ClientPT.ym_ScrollBar[WISP_SB_VERT]->MaxPos) return LI_POS_NON_AREA; if(m_RootItem.ChildItemList.Count()==0) return LI_POS_NON_AREA; ItemIter = m_CurItemIter; while(iLine>0) { if(GetNextLineItem(ItemIter)==false) return LI_POS_NON_AREA; iLine--; } x = ClientPT.x+(int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; ListX = m_ListRect.x + ItemIter->GetLevel() * m_TreeSpace; if(xChildItemList.Count()?LI_POS_TREE_BT:LI_POS_SPACE_AREA; } if((m_Style&WISP_WLS_CHECK_BOX)) { ListX+=m_ButtonSize.cx; if(xColRect.x+ColIter->ColRect.cx; if(xStyle & WISP_WLIS_EXPANDED) { UnexpandItem(pItem); return true; } else { ExpandItem(pItem); return false; } } bool CWispList::ExpandItem(HANDLE hItem) { CWispListItem*pItem=(CWispListItem*)hItem; if(pItem->Style&WISP_WLIS_EXPANDED) return true; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_EXPANDING; Msg.Command.Param1 = false; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; if(ItemExpandingNotify(hItem)==false) return false; pItem->Style|=WISP_WLIS_EXPANDED; int Count = pItem->GetDispLine(); if(Count) { AdjustScrollBarMaxPos(WISP_SB_VERT,Count); RecalcLayout(); Msg.Command.CmdMsg = WISP_CMD_ITEM_EXPANDED; Msg.Command.Param1 = true; SEND_MSG(&Msg); ItemExpandedNotify(hItem); Update(); } return true; } bool CWispList::UnexpandItem(HANDLE hItem) { CWispListItem*pItem=(CWispListItem*)hItem; if(pItem==NULL) pItem = &m_RootItem; if((pItem->Style&WISP_WLIS_EXPANDED)==0) return true; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_UNEXPANDING; Msg.Command.Param1 = true; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; if(ItemUnexpandingNotify(hItem)==false) return false; pItem->Style&=~WISP_WLIS_EXPANDED; int Count = pItem->GetDispLine(); if(Count) { if(m_LastSelectIter!=m_RootItem.ChildItemList.End() && pItem->IsParentOf(&(*m_LastSelectIter))) SelectItem(hItem); AdjustScrollBarMaxPos(WISP_SB_VERT,-Count); RecalcLayout(); Msg.Command.CmdMsg = WISP_CMD_ITEM_UNEXPANDED; Msg.Command.Param1 = false; SEND_MSG(&Msg); ItemUnexpandedNotify(hItem); Update(); } return true; } bool CWispList::ToggleSelectItem(HANDLE hItem) { CWispListItem*pItem=(CWispListItem*)hItem; if(pItem->Style & WISP_WLIS_SELECTED) { UnselectItem(pItem); return true; } else { SelectItem(pItem); return false; } } bool CWispList::SelectItem(HANDLE hItem) { CWispListItem*pItem=(CWispListItem*)hItem; if(pItem->Style&WISP_WLIS_SELECTED) return true; if(((m_Style&WISP_WLS_MULTI_SELECT)==0 || m_pWispBase->m_KeyMap[WISP_VK_CONTROL]==false) && m_LastSelectIter!=m_RootItem.ChildItemList.End() && (&(*m_LastSelectIter))!=pItem) { UnselectItem(&(*m_LastSelectIter)); } WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_SELECTING; Msg.Command.Param1 = false; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; if(ItemSelectingNotify(hItem)==false) return false; pItem->Style|=WISP_WLIS_SELECTED; Msg.Command.CmdMsg = WISP_CMD_ITEM_SELECTED; Msg.Command.Param1 = true; SEND_MSG(&Msg); m_LastSelectIter = (*pItem); ItemSelectedNotify(hItem); Update(); return true; } bool CWispList::UnselectItem(HANDLE hItem) { CWispListItem*pItem=(CWispListItem*)hItem; if((pItem->Style&WISP_WLIS_SELECTED)==0) return true; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_UNSELECTING; Msg.Command.Param1 = true; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; if(ItemUnselectingNotify(hItem)==false) return false; pItem->Style&=~WISP_WLIS_SELECTED; Msg.Command.CmdMsg = WISP_CMD_ITEM_UNSELECTED; Msg.Command.Param1 = false; SEND_MSG(&Msg); if(&(*m_LastSelectIter)==pItem) m_LastSelectIter = m_RootItem.ChildItemList.End(); ItemUnselectedNotify(hItem); Update(); return true; } void CWispList::BeginEditItem(HANDLE hItem,int Col) { CWispListItem*pItem; CWispListItemCell*pCell; WISP_MSG Msg; WISP_RECT CellRect; int Index; if(Col>=m_ColumnList.Count()) return; Index = GetItemScrLine((CWispListItem*)hItem); if(Index==-1) { EnableVisible(hItem); } CellRect = m_ColumnList[Col]->ColRect; CellRect.y = m_ListRect.y + Index * m_ButtonSize.cy; CellRect.cy = m_ButtonSize.cy; CellRect.x -= (int)m_ScrollBar[WISP_SB_HORZ]->CurPos*m_HorzScrollSpace; m_EditCol = Col; m_hEditItem = hItem; pCell = GetItemCell(m_hEditItem,m_EditCol); m_EditCtrl.m_WndText.Empty(); Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_BEGIN_EDIT; Msg.Command.Param1 = m_EditCol; Msg.Command.Param2 = m_hEditItem; if(SEND_MSG(&Msg)==false) return; if(BeginEditItemNotify(m_hEditItem,m_EditCol,pCell->szText)==false) return; pItem = (CWispListItem*)hItem; if(Col==m_ListBTIndex) { if(m_Style&WISP_WLS_TREE) { CellRect.x+=m_ButtonSize.cx; CellRect.cx-=m_ButtonSize.cx; } if(m_Style&WISP_WLS_CHECK_BOX) { CellRect.x+=m_ButtonSize.cx; CellRect.cx-=m_ButtonSize.cx; } } if(pCell->pIcon) { CellRect.x+=pCell->pIcon->Width(); CellRect.cx-=pCell->pIcon->Width(); } m_EditCtrl.MoveWindowToClient(CellRect); if(m_EditCtrl.m_WndText.Length()==0) m_EditCtrl.SetWindowText(pCell->szText); m_EditCtrl.Show(WISP_SH_NORMAL); m_EditCtrl.Focus(); } void CWispList::EndEditItem(bool bSaveItem) { if(m_pWispBase->m_pFocusWnd!=&m_EditCtrl) return; m_bSaveItem = bSaveItem; Focus(); UpdateClient(); } void CWispList::OnEndEditItem() { WISP_MSG Msg; m_ProcEndEditItem = true; m_EditCtrl.Show(WISP_SH_HIDDEN); Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = m_bSaveItem?WISP_CMD_ITEM_END_EDIT:WISP_CMD_ITEM_CANCEL_EDIT; Msg.Command.Param1 = m_EditCol; Msg.Command.Param2 = m_hEditItem; if( SEND_MSG(&Msg)==false || EndEditItemNotify(m_hEditItem,m_EditCol,GetItemEditString())==false) { GetItemEditString().Empty(); } else if(m_bSaveItem) { CWispListItemCell*pCell = GetItemCell(m_hEditItem,m_EditCol); if(pCell->szText != GetItemEditString()) { pCell->szText = GetItemEditString(); Msg.Command.CmdMsg = WISP_CMD_ITEM_CHANGED; SEND_MSG(&Msg); ItemChangedNotify(m_hEditItem,m_EditCol,pCell->szText); } } m_bSaveItem = true; m_ProcEndEditItem = false; } bool CWispList::OnSize(WISP_MSG*pMsg) { if(pMsg->Resize.NewSizeDelta.cx>0 || m_ColumnList.Count()==0) return true; CWispColumnItem* pCol = &(*m_ColumnList.Last()); if(pCol->Width > pCol->OrgWidth) { pCol->Width+=pMsg->Resize.NewSizeDelta.cx; m_ColTotalWidth+=pMsg->Resize.NewSizeDelta.cx; } return true; } bool CWispList::OnLostFocus(WISP_MSG*pMsg) { HideItemTip(); return true; } bool CWispList::ToggleCheckItem(HANDLE hItem,bool bUpdateRelation) { CWispListItem*pItem=(CWispListItem*)hItem; if(pItem->Style & WISP_WLIS_CHECKED) { UncheckItem(pItem,bUpdateRelation); return true; } else { CheckItem(pItem,bUpdateRelation); return false; } } bool CWispList::CheckItem(HANDLE hItem,bool bUpdateRelation) { WISP_MSG Msg; CWispListItem*pItem=(CWispListItem*)hItem; if(pItem->Style&WISP_WLIS_CHECKED) return true; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_CHECKING; Msg.Command.Param1 = false; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; if(ItemCheckingNotify(hItem)==false) return false; if(pItem->Style&WISP_WLIS_SEMI_CHECKED) { pItem->Style&=~WISP_WLIS_SEMI_CHECKED; pItem->pParent->nSemiChecked--; } pItem->Style|=WISP_WLIS_CHECKED; pItem->pParent->nChecked++; CODE_ASSERT(pItem->pParent->nSemiChecked+pItem->pParent->nChecked<=pItem->pParent->ChildItemList.Count()); for(CItemList::IT Iter = pItem->ChildItemList.Begin();Iter!=pItem->ChildItemList.End();Iter++) CheckItem(&(*Iter),false); if(bUpdateRelation) { UpdateItemTreeCheckState(pItem); } else { pItem->nChecked = pItem->ChildItemList.Count(); pItem->nSemiChecked = 0; } Msg.Command.CmdMsg = WISP_CMD_ITEM_CHECKED; Msg.Command.Param1 = true; SEND_MSG(&Msg); ItemCheckedNotify(hItem); Update(); return true; } bool CWispList::UncheckItem(HANDLE hItem,bool bUpdateRelation) { WISP_MSG Msg; CWispListItem*pItem; pItem=(CWispListItem*)hItem; if((pItem->Style&WISP_WLIS_CHECKED_MASK)==0) return true; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_UNCHECKING; Msg.Command.Param1 = true; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; if(ItemUncheckingNotify(hItem)==false) return false; if(pItem->Style&WISP_WLIS_CHECKED) { pItem->Style&=~WISP_WLIS_CHECKED; pItem->pParent->nChecked--; } else if(pItem->Style&WISP_WLIS_SEMI_CHECKED) { pItem->Style&=~WISP_WLIS_SEMI_CHECKED; pItem->pParent->nSemiChecked--; } for(CItemList::IT Iter = pItem->ChildItemList.Begin();Iter!=pItem->ChildItemList.End();Iter++) UncheckItem(&(*Iter),false); if(bUpdateRelation) { UpdateItemTreeCheckState(pItem); } else { pItem->nChecked = pItem->nSemiChecked = 0; } Msg.Command.CmdMsg = WISP_CMD_ITEM_UNCHECKED; Msg.Command.Param1 = false; SEND_MSG(&Msg); ItemUncheckedNotify(hItem); Update(); return true; } HANDLE CWispList::GetFirstItem(HANDLE hParent,UINT Style) { CWispListItem*pParentItem; if(hParent) pParentItem = (CWispListItem*)hParent; else pParentItem = &m_RootItem; CItemList::IT ItemIter = pParentItem->ChildItemList.Begin(); while(ItemIter!=pParentItem->ChildItemList.End()) { if((ItemIter->Style&Style) == Style) return &(*ItemIter); ItemIter++; } return NULL; } HANDLE CWispList::GetNextItem(HANDLE hItem,UINT Style) { if(hItem==NULL) return GetFirstItem(NULL,Style); CItemList::IT ItemIter; ItemIter = *((CWispListItem*)hItem); while(GetNextItem(ItemIter)) { if((ItemIter->Style&Style) == Style) return &(*ItemIter); } return NULL; } bool CWispList::GetNextItem(CItemList::IT &ItemIter) { CWispListItem*pParent = ItemIter->pParent; if(pParent==NULL) return false; ItemIter++; return ItemIter!=pParent->ChildItemList.End(); } HANDLE CWispList::GetPrevItem(HANDLE hItem,UINT Style) { CItemList::IT ItemIter; ItemIter = *((CWispListItem*)hItem); while(GetPrevItem(ItemIter)) { if((ItemIter->Style&Style) == Style) return &(*ItemIter); } return NULL; } bool CWispList::GetPrevItem(CItemList::IT &ItemIter) { CWispListItem*pParent = ItemIter->pParent; if(pParent==NULL) return false; ItemIter--; return ItemIter!=pParent->ChildItemList.End(); } HANDLE CWispList::GetNextListItem(HANDLE hItem,UINT Style) { CItemList::IT ItemIter; if(hItem) ItemIter = *((CWispListItem*)hItem); else ItemIter = m_RootItem.ChildItemList.Begin(); if(ItemIter == m_RootItem.ChildItemList.End()) return NULL; if(hItem && GetNextListItem(ItemIter)==false) return NULL; do { if((ItemIter->Style&Style) == Style) return &(*ItemIter); }while(GetNextListItem(ItemIter)); return NULL; } HANDLE CWispList::GetPrevListItem(HANDLE hItem,UINT Style) { CItemList::IT ItemIter; if(hItem) ItemIter = *((CWispListItem*)hItem); else ItemIter = m_RootItem.ChildItemList.Last(); if(ItemIter == m_RootItem.ChildItemList.End()) return NULL; if(hItem && GetPrevListItem(ItemIter)==false) return NULL; do { if((ItemIter->Style&Style) == Style) return &(*ItemIter); }while(GetPrevListItem(ItemIter)); return NULL; } HANDLE CWispList::GetItem(int Index,HANDLE hParent) { CItemList*pItemList; if(hParent) pItemList = &((CWispListItem*)hParent)->ChildItemList; else pItemList = &m_RootItem.ChildItemList; if(pItemList->Count()==0) return NULL; if(Index<0 || Index >= pItemList->Count()) return &(*pItemList->Last()); return &(*(*pItemList)[Index]); } HANDLE CWispList::GetParentItem(HANDLE hItem) { CWispListItem*pItem = (CWispListItem*)hItem; return pItem->pParent; } int CWispList::GetItemIndex(HANDLE hItem) { HANDLE hFindItem,hParent; int Index=0; hParent = GetParentItem(hItem); if(hParent==NULL) return 0; hFindItem = GetFirstItem(hParent); while(hFindItem) { if(hFindItem == hItem) return Index; hFindItem = GetNextItem(hFindItem); Index++; } return -1; } int CWispList::GetListItemIndex(HANDLE hItem,HANDLE hParent) { HANDLE hFindItem; int Index=0; hFindItem = GetNextListItem(hParent); while(hFindItem) { if(hFindItem == hItem) return Index; hFindItem = GetNextListItem(hItem); Index++; } return -1; } int CWispList::GetItemCount(HANDLE hParent,bool bRecursive) { int Count; CItemList*pItemList; if(hParent) pItemList = &((CWispListItem*)hParent)->ChildItemList; else pItemList = &m_RootItem.ChildItemList; Count = pItemList->Count(); if(bRecursive) { for(CItemList::IT Iter= pItemList->Begin();Iter!=pItemList->End();Iter++) { Count+=GetItemCount((HANDLE)&(*Iter),true); } } return Count; } bool CWispList::GetNextListItem(CItemList::IT &ItemIter) { if(ItemIter->ChildItemList.Count()) { ItemIter = ItemIter->ChildItemList.Begin(); return true; } CWispListItem*pParent = ItemIter->pParent; if(pParent==NULL) return false; ItemIter++; if(ItemIter == pParent->ChildItemList.End()) { while(pParent!=&m_RootItem) { ItemIter = *pParent; pParent = pParent->pParent; ItemIter++; if(ItemIter != pParent->ChildItemList.End()) break; } } return ItemIter != pParent->ChildItemList.End(); } CWispListItemCell* CWispList::GetItemCell(HANDLE hItem,int Col) { CWispListItem*pItem = (CWispListItem*)hItem; if(Col >= m_ColumnList.Count()) return NULL; if(pItem->ItemCellList.Count()<=Col) { CItemListCell::IT Iter; for(int n=pItem->ItemCellList.Count();n<=Col;n++) { Iter = pItem->ItemCellList.Append(); Iter->Data = 0; Iter->pIcon = NULL; Iter->FontColor = m_FontColor; } } return &(*pItem->ItemCellList[Col]); } CWispString&CWispList::GetItemText(HANDLE hItem,int Col) { CWispListItemCell*pCell = GetItemCell(hItem,Col); return pCell->szText; } int CWispList::GetItemText(HANDLE hItem,int Col,WISP_PSTR szString,int MaxLength) { CWispString*pString = &GetItemText(hItem,Col); if(pString==NULL) return 0; if(pString->Length()==0) { *szString=0; return 0; } if(IsColorString(pString->m_pData)) { return TStrCpyLimit(szString,GetColorString(pString->m_pData),MaxLength); } else { return TStrCpyLimit(szString,pString->m_pData,MaxLength); } } CWispDIB*CWispList::GetItemIcon(HANDLE hItem,int Col) { CWispListItemCell*pCell = GetItemCell(hItem,Col); return pCell->pIcon; } NUM_PTR CWispList::GetItemData(HANDLE hItem,int Col) { CWispListItemCell*pCell = GetItemCell(hItem,Col); return pCell->Data; } COLORREF CWispList::GetItemTextColor(HANDLE hItem,int Col) { CWispListItemCell*pCell = GetItemCell(hItem,Col); return pCell->FontColor; } COLORREF CWispList::GetItemLineColor(HANDLE hItem) { return ((CWispListItem*)hItem)->LineColor; } UINT CWispList::GetItemStyle(HANDLE hItem) { return ((CWispListItem*)hItem)->Style; } int CWispList::GetItemLevel(HANDLE hItem) { return ((CWispListItem*)hItem)->GetLevel(); } bool CWispList::IsParentOfItem(HANDLE hItem,HANDLE hChildItem) { return ((CWispListItem*)hItem)->IsParentOf(hChildItem); } int CWispList::GetItemFullPath(HANDLE hItem,int Col,WISP_PSTR szBuffer,UINT MaxLength,WISP_PCSTR SplitStr) { UINT Length; CWispListItem*pItem; CWispListItemCell*pCell; TArray ItemStrArray; ItemStrArray.Resize(GetItemDeep(hItem)-1); pItem = (CWispListItem*)hItem; if(szBuffer) *szBuffer=0; Length = 0; while(pItem!=&m_RootItem) { pCell = GetItemCell((HANDLE)pItem,Col); ItemStrArray.Append(pCell->szText); pItem = pItem->pParent; } int Count=ItemStrArray.Count(); for(int n=Count-1;n>=0;n--) { if(Length0 && LengthpParent; Deep++; } return Deep; } bool CWispList::ShowItemTip(HANDLE hItem,int Col,WISP_PCSTR szTip) { WISP_CHAR szTipBuffer[WISP_MAX_LIST_TIP_LEN]; WISP_POINT Pt; int nLine = GetItemScrLine((CWispListItem*)hItem); if(nLine<0) return false; m_hCurHoverItem = hItem; m_CurHoverCol = Col; Pt.x = m_ColumnList[Col]->ColRect.x - (int)m_ScrollBar[WISP_SB_HORZ]->CurPos * m_HorzScrollSpace; Pt.y = m_ListRect.y + m_ButtonSize.cy * nLine; Pt.x+=m_ScrWindowRect.x; Pt.y+=m_ScrWindowRect.y; if(IsColorString(szTip)) TStrCpy((WISP_COLOR_CHAR*)szTipBuffer,(WISP_COLOR_CHAR*)szTip); else TStrCpy(szTipBuffer,szTip); if(ItemShowTipNotify(hItem,Col,&Pt.x,&Pt.y,szTipBuffer)==false) return false; if(m_bTipTimerSet) { RemoveTimer(WISP_WLI_TIMER_ID); m_bTipTimerSet = false; } if(IsColorString(szTipBuffer)) { const WISP_COLOR_CHAR *pszText = GetColorString(szTipBuffer); int Length = TStrLen(pszText); m_TipFullItemTextWnd.m_WndText.Preallocate(Length+1); m_TipFullItemTextWnd.m_WndText.m_Length = Length; TStrCpy((WISP_PSTR)m_TipFullItemTextWnd.m_WndText,pszText); } else { m_TipFullItemTextWnd.SetWindowText(szTipBuffer); } m_TipFullItemTextWnd.AutoAdjustPostion(this); if(Pt.x+m_TipFullItemTextWnd.m_WindowRect.cx>m_pWispBase->m_pRootWnd->m_WindowRect.cx) Pt.x = m_pWispBase->m_pRootWnd->m_WindowRect.cx - m_TipFullItemTextWnd.m_WindowRect.cx; MIN_LIMIT(Pt.x,0); if(Pt.y+m_TipFullItemTextWnd.m_WindowRect.cy>m_pWispBase->m_pRootWnd->m_WindowRect.cy) Pt.y = m_pWispBase->m_pRootWnd->m_WindowRect.cy - m_TipFullItemTextWnd.m_WindowRect.cy; MIN_LIMIT(Pt.y,0); m_TipFullItemTextWnd.MoveToScreen(Pt.x,Pt.y); m_TipFullItemTextWnd.Show(); Update(); return true; } bool CWispList::HideItemTip() { if(m_bTipTimerSet) { RemoveTimer(WISP_WLI_TIMER_ID); m_bTipTimerSet=false; } if(m_TipFullItemTextWnd.IsVisible()==false) return false; if(ItemHideTipNotify(m_hCurHoverItem,m_CurHoverCol,m_TipFullItemTextWnd.m_WndText)==false) return false; m_TipFullItemTextWnd.m_WndText.Empty(); m_TipFullItemTextWnd.Show(WISP_SH_HIDDEN); m_hCurHoverItem = NULL; m_CurHoverCol = 0; Update(); return true; } bool CWispList::ItemShowTipNotify(HANDLE hItem,int Col,int*pX,int*pY,WISP_PSTR szTip) { if(IsItemTextFullVisible(hItem,Col)) return false; TStrCpy(szTip,(WISP_PCSTR)GetItemText(hItem,Col)); return true; } void CWispList::DrawCellText(int Col,CWispListItemCell*pCell,WISP_RECT*pRect) { WISP_CHAR*pszText = pCell->szText; if(IsColorString(pszText)) { m_ClientDC.DrawColorString(pRect,GetColorString(pszText)); } else { m_ClientDC.DrawString(pRect,pCell->szText); } } void CWispList::DrawColumnItemText(CWispColumnItem*pColItem,WISP_RECT*pRect) { m_ClientDC.DrawShadowString(pRect,pColItem->szText); } void CWispList::UpdateItemTreeCheckState(CWispListItem*pItem) { pItem=pItem->pParent; while(pItem!=&m_RootItem) { if(((pItem->nChecked > 0 && pItem->nChecked < pItem->ChildItemList.Count()) || pItem->nSemiChecked > 0) && (pItem->Style&WISP_WLIS_SEMI_CHECKED)==0) { if(pItem->Style&WISP_WLIS_CHECKED) { pItem->Style&=~WISP_WLIS_CHECKED; pItem->pParent->nChecked--; } pItem->Style|=WISP_WLIS_SEMI_CHECKED; pItem->pParent->nSemiChecked++; } else if(pItem->nChecked == pItem->ChildItemList.Count() && (pItem->Style&WISP_WLIS_CHECKED)==0) { if(pItem->Style&WISP_WLIS_SEMI_CHECKED) { pItem->Style&=~WISP_WLIS_SEMI_CHECKED; pItem->pParent->nSemiChecked--; } pItem->Style|=WISP_WLIS_CHECKED; pItem->pParent->nChecked++; } else if(pItem->nChecked==0 && pItem->nSemiChecked==0) { if(pItem->Style&WISP_WLIS_CHECKED) { pItem->Style&=~WISP_WLIS_CHECKED; pItem->pParent->nChecked--; } else if(pItem->Style&WISP_WLIS_SEMI_CHECKED) { pItem->Style&=~WISP_WLIS_SEMI_CHECKED; pItem->pParent->nSemiChecked--; } } CODE_ASSERT(pItem->pParent->nSemiChecked<=pItem->pParent->ChildItemList.Count()); pItem=pItem->pParent; } } void CWispList::OnHide() { if(m_TipFullItemTextWnd.IsVisible()) HideItemTip(); } ================================================ FILE: Project/Wisp/Source/WispList.h ================================================ #ifndef _WISP_LIST_H_ #define _WISP_LIST_H_ #include "WispEdit.h" #include "WispTipWnd.h" //ListCtrl Attribute #define WISP_WLS_COLUMN_TITLE 0x00010000 #define WISP_WLS_TREE 0x00020000 #define WISP_WLS_OPTION_TREE 0x00060000 //ҰList #define WISP_WLS_CHECK_BOX 0x00400000 #define WISP_WLS_MULTI_SELECT 0x00800000 #define WISP_WLS_EMPTY_SEL_RECT 0x01000000 #define WISP_WLS_VERT_LINE 0x02000000 #define WISP_WLS_HORZ_LINE 0x04000000 #define WISP_WLS_TREE_LINE 0x08000000 #define WISP_WLS_FOLLOW_SEL 0x10000000 #define WISP_WLS_SELECTED_ALWAYS 0x40000000 #define WISP_WLS_HIDE_SELECTED 0x80000000 //ListItem Attribute #define WISP_WLIS_NULL 0x00000000 #define WISP_WLIS_NORMAL 0x00000000 #define WISP_WLIS_EXPANDED 0x00000001 #define WISP_WLIS_CHECKED 0x00000002 #define WISP_WLIS_SEMI_CHECKED 0x00000004 #define WISP_WLIS_CHECKED_MASK (WISP_WLIS_CHECKED|WISP_WLIS_SEMI_CHECKED) #define WISP_WLIS_SELECTED 0x00000008 #define WISP_WLIS_COLOR_LINE 0x00000010 //ListColumn Attribute #define WISP_WLCS_NORMAL 0x00000000 #define WISP_WLCS_EDITABLE 0x00000001 #define WISP_WLCS_FIXED 0x00000002 #define WISP_MAX_LIST_TIP_LEN 0x200 enum WISP_WLI_CMD_ID { WISP_WLI_EDIT_CMD_ID = WISP_WM_SYS_START, WISP_WLI_TIP_CMD_ID, WISP_WLI_TIMER_ID }; class CWispListItemCell { public: CWispString szText; CWispDIB* pIcon; NUM_PTR Data; COLORREF FontColor; }; class CWispListItem { public: typedef TList CItemList; typedef TList CItemListCell; public: CItemList ChildItemList; CItemListCell ItemCellList; CWispListItem* pParent; UINT Style; COLORREF LineColor; int nChecked; int nSemiChecked; int GetLevel(); int GetDispLine(); bool IsParentOf(HANDLE hItem); }; class CWispColumnItem { public: CWispString szText; CWispDIB* pIcon; int Width; int OrgWidth; UINT Style; WISP_RECT ColRect; WISP_RECT SplitRect; WISP_RECT TestSplitRect; NUM_PTR Data; }; enum WISP_LI_POS { LI_POS_NON_AREA = -1, LI_POS_CELL_AREA_START = 0, LI_POS_CELL_AREA_END = 0x00001000, LI_POS_TREE_BT, LI_POS_CHECK_BOX, LI_POS_COLUMN, LI_POS_SPACE_AREA, }; typedef TList CColumnList; typedef TList CItemList; typedef TList CItemListCell; class CWispList : public CWispWnd { public: CWispList(); virtual ~CWispList(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnPrecreate) DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG(OnMouseLeave) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnBeginDrag) DECLARE_WISP_MSG(OnDragMove) DECLARE_WISP_MSG(OnEndDrag) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnLostFocus) DECLARE_WISP_MSG(OnScrollEvent) DECLARE_WISP_MSG(OnTimer) DECLARE_WISP_MSG(OnMouseDBClick); DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnEditCommand) public: virtual bool InitWnd(); virtual bool Destroy(); virtual void RecalcLayout(); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Column HANDLE InsertColumn(const WISP_CHAR*szText,int Width,UINT Style = WISP_WLCS_NORMAL,CWispDIB*pIcon = NULL,int Pos = -1); bool RemoveColumn(int Pos); HANDLE GetColumn(int Pos); bool SetColumnWidth(int Col,int Width); bool SetColumnWidth(HANDLE hColumn,int Width); bool SetColumnText(HANDLE hColumn,WISP_PCSTR szText); bool SetColumnIcon(HANDLE hColumn,CWispDIB*pDIB); bool SetColumnData(HANDLE hColumn,NUM_PTR Data); bool SetColumnInfo(HANDLE hColumn,WISP_PCSTR szText,CWispDIB*pDIB,NUM_PTR Data); //Item HANDLE InsertItem(const WISP_CHAR*szText,HANDLE hParent = NULL,UINT Style = WISP_WLIS_NORMAL,CWispDIB*pIcon = NULL,int Pos = -1); HANDLE InsertItemA(const char*szText,HANDLE hParent = NULL,UINT Style = WISP_WLIS_NORMAL,CWispDIB*pIcon = NULL,int Pos = -1); HANDLE InsertItemW(const WCHAR*szText,HANDLE hParent = NULL,UINT Style = WISP_WLIS_NORMAL,CWispDIB*pIcon = NULL,int Pos = -1); HANDLE InsertItem(UINT Num,HANDLE hParent = NULL,WISP_CHAR*szFormat = WSTR("%X"),UINT Style = WISP_WLIS_NORMAL,CWispDIB*pIcon = NULL,int Pos = -1); bool RemoveItem(int Pos,HANDLE hParent = NULL); bool RemoveItem(HANDLE hItem); CWispListItemCell*GetItemCell(HANDLE hItem,int Col=0); CWispString&GetItemText(HANDLE hItem,int Col=0); int GetItemText(HANDLE hItem,int Col,WISP_PSTR szString,int MaxLength); CWispDIB* GetItemIcon(HANDLE hItem,int Col=0); NUM_PTR GetItemData(HANDLE hItem,int Col=0); COLORREF GetItemTextColor(HANDLE hItem,int Col=0); COLORREF GetItemLineColor(HANDLE hItem); UINT GetItemStyle(HANDLE hItem); int GetItemLevel(HANDLE hItem); bool IsParentOfItem(HANDLE hItem,HANDLE hChildItem); //Item Notify virtual void ItemClickNotify(HANDLE hItem,int Col){}; virtual void ItemRClickNotify(HANDLE hItem,int Col){}; virtual void TitleRClickNotify(int Col){}; virtual void TitleClickNotify(int Col){}; virtual void ItemDBClickNotify(HANDLE hItem,int Col){}; virtual bool ItemShowTipNotify(HANDLE hItem,int Col,int*pX,int*pY,WISP_PSTR szTip); virtual bool ItemHideTipNotify(HANDLE hItem,int Col,WISP_PSTR szTip){return true;} //Edit Notify virtual bool BeginEditItemNotify(HANDLE hItem,int Col,CWispString&String){return true;} virtual bool EndEditItemNotify(HANDLE hItem,int Col,CWispString&String){return true;} virtual void ItemChangedNotify(HANDLE hItem,int Col,CWispString&String){} CWispString& GetItemEditString(){ return m_EditCtrl.m_WndText;} //Expand Notify virtual bool ItemExpandingNotify(HANDLE hItem){return true;} virtual void ItemExpandedNotify(HANDLE hItem){} virtual bool ItemUnexpandingNotify(HANDLE hItem){return true;} virtual void ItemUnexpandedNotify(HANDLE hItem){} //Select Notify virtual bool ItemSelectingNotify(HANDLE hItem){return true;} virtual void ItemSelectedNotify(HANDLE hItem){} virtual bool ItemUnselectingNotify(HANDLE hItem){return true;} virtual void ItemUnselectedNotify(HANDLE hItem){} //Check Notify virtual bool ItemCheckingNotify(HANDLE hItem){return true;} virtual void ItemCheckedNotify(HANDLE hItem){} virtual bool ItemUncheckingNotify(HANDLE hItem){return true;} virtual void ItemUncheckedNotify(HANDLE hItem){} virtual void OnHide(); //Item Operation bool SetItemText(HANDLE hItem,int Col,const WISP_CHAR*szText); bool SetItemTextA(HANDLE hItem,int Col,const CHAR*szText); bool SetItemColorText(HANDLE hItem,int Col,const WISP_COLOR_CHAR*szText); bool SetItemData(HANDLE hItem,int Col,NUM_PTR Data); bool SetItemNum(HANDLE hItem,int Col,UINT Num,const WISP_CHAR*szFormat = WSTR("%X"));// bool SetItemIcon(HANDLE hItem,int Col,CWispDIB*pIcon); //ıͼ bool SetItemTextColor(HANDLE hItem,int Col,COLORREF Color); //ijıɫ bool SetDefaultTextColor(COLORREF Color){m_FontColor = Color;return true;} //Ĭıɫ bool SetItemLineColor(HANDLE hItem,COLORREF Color); //òɫ bool ModifyItemStyle(HANDLE hItem,UINT AddStyle,UINT RemoveStyle = 0); //Item bool ClearChildItem(HANDLE hItem = NULL); int EmptyChildItemContext(HANDLE hItem = NULL); void EmptyItemContext(HANDLE hItem); void EnableVisible(HANDLE hItem,int nPrevLine = -1); //ʹItemɼ bool IsItemVisible(HANDLE hItem); bool IsItemTextFullVisible(HANDLE hItem,int Col); int SetItemChildCount(HANDLE hItem,int Count); bool ShowColumnTitle(bool bShow = true); //Edit Item void BeginEditItem(HANDLE hItem,int Col); void EndEditItem(bool bSaveItem = true); //Expand Item bool ToggleExpandItem(HANDLE hItem); bool ExpandItem(HANDLE hItem); bool UnexpandItem(HANDLE hItem); INLINE bool IsItemExpanded(HANDLE hItem){ return (((CWispListItem*)hItem)->Style&WISP_WLIS_EXPANDED)!=0; } //Select Item bool ToggleSelectItem(HANDLE hItem); bool SelectItem(HANDLE hItem); bool UnselectItem(HANDLE hItem); INLINE bool IsItemSelected(HANDLE hItem){ return (((CWispListItem*)hItem)->Style&WISP_WLIS_SELECTED)!=0; } //Check Item bool ToggleCheckItem(HANDLE hItem,bool bUpdateRelation = true); bool CheckItem(HANDLE hItem,bool bUpdateRelation = true); bool UncheckItem(HANDLE hItem,bool bUpdateRelation = true); INLINE bool IsItemChecked(HANDLE hItem){ return (((CWispListItem*)hItem)->Style&WISP_WLIS_CHECKED)!=0; } INLINE bool IsItemSemiChecked(HANDLE hItem){ return (((CWispListItem*)hItem)->Style&WISP_WLIS_SEMI_CHECKED)!=0; } int GetItemCell(); //Find Item HANDLE GetRootItem(){ return &m_RootItem;} HANDLE GetFirstItem(HANDLE hParent=NULL,UINT Style=0); HANDLE GetNextItem(HANDLE hItem=NULL,UINT Style=0);//ȡͬItem HANDLE GetPrevItem(HANDLE hItem=NULL,UINT Style=0); HANDLE GetNextListItem(HANDLE hItem=NULL,UINT Style=0);//ּȡItem HANDLE GetPrevListItem(HANDLE hItem=NULL,UINT Style=0); HANDLE GetItem(int Index,HANDLE hParent= NULL); HANDLE GetParentItem(HANDLE hItem); int GetItemIndex(HANDLE hItem); int GetListItemIndex(HANDLE hItem,HANDLE hParent=NULL); int GetItemCount(HANDLE hParent=NULL,bool bRecursive=true); int GetItemDeep(HANDLE hItem); int GetItemScrLine(HANDLE hItem); bool GetItemCellRect(HANDLE hItem,int Col,WISP_RECT*pRECT); HANDLE GetScrStartItem(); HANDLE PointToItem(const WISP_POINT&ClientPT,int*pPos=NULL); //Item Tip bool ShowItemTip(HANDLE hItem,int Col,WISP_PCSTR szTip); bool HideItemTip(); //Item path virtual int GetItemFullPath(HANDLE hItem,int Col,WISP_PSTR szBuffer,UINT MaxLength = (UINT)-1,WISP_PCSTR SplitStr=PATH_SEPARATOR_WSTR); virtual void DrawCellText(int Col,CWispListItemCell*pCell,WISP_RECT*pRect); virtual void DrawColumnItemText(CWispColumnItem*pColItem,WISP_RECT*pRect); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public: CWispTipWnd m_TipFullItemTextWnd; int m_ListBTIndex; int m_HorzScrollSpace; int m_ColTotalWidth; int m_OldTitleHeight; int m_TitleHeight; int m_EditCol; HANDLE m_hEditItem; CWispEdit m_EditCtrl; CWispColumnItem*m_pDragColumn; CItemList::IT m_CurItemIter; CItemList::IT m_LastSelectIter; int m_LastClickCol; WISP_POINT m_LastMousePos; HANDLE m_hCurHoverItem; int m_CurHoverCol; int m_TextMargin; WISP_SIZE m_ButtonSize; WISP_RECT m_TitleRect; WISP_RECT m_ListRect; CColumnList m_ColumnList; CWispListItem m_RootItem; int m_nLinePerPage; int m_TreeSpace; COLORREF m_ColTitleFontColor; COLORREF m_FontColor; COLORREF m_SelectFontColor; COLORREF m_SelectBKColor; COLORREF m_LostFocusSelBKColor; COLORREF m_VertLineColor; COLORREF m_HorzLineColor; bool m_bSaveItem; bool m_ProcEndEditItem; bool m_bTipTimerSet; int m_TipPeriod; int PointToItem(const WISP_POINT&ClientPT,CItemList::IT &ItemIter); void OnEndEditItem(); protected: void DrawListItem(int iLine,const CItemList::IT &ItemIter); bool GetNextLineItem(CItemList::IT &ItemIter); bool GetPrevLineItem(CItemList::IT &ItemIter); bool GetNextListItem(CItemList::IT &ItemIter); bool GetPrevListItem(CItemList::IT &ItemIter); bool GetNextItem(CItemList::IT &ItemIter); bool GetPrevItem(CItemList::IT &ItemIter); int UpdateCurScrItem(int Offset); void UpdateItemTreeCheckState(CWispListItem*pItem); void ProcessItemTip(HANDLE hItem,int Col); }; #endif ================================================ FILE: Project/Wisp/Source/WispMenu.cpp ================================================ #include "StdAfx.h" #include "WispMenu.h" WISP_MSG_MAP_BEGIN(CWispMenu) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_PARENT_RESIZE,OnParentResize) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_UPDATE_BORDER,OnUpdateBorder) WISP_MSG_MAP(WISP_WM_LOST_FOCUS,OnLostFocus) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispWnd) CWispMenu::CWispMenu() { m_CtrlType = WISP_CTRL_MENU; m_PopupItemHeight = 18; m_WndItemHeight = 20; m_MenuStartSpace = 20; m_MenuIconSpace = 20; m_MenuEndSpace = 20; m_MenuMarge = 5; m_WndMenuHeight = 22; m_PopupMenuTopSpace = 5; m_PopupMenuBottomSpace = 5; } CWispMenu::~CWispMenu() { } bool CWispMenu::InitWnd() { if(CWispWnd::InitWnd()==false) return false; m_BorderSize = 1; m_pParentMenu = NULL; m_HoverIter = m_ItemList.End(); m_pParentMenu = NULL; m_bExpandMenu = false; m_WndMenuItemWidth = 0; return true; } bool CWispMenu::OnParentResize(WISP_MSG*pMsg) { if((m_Style&WISP_WMS_POPUP)==0) Resize(((CWispWnd*)m_ParentWnd)->m_ClientRect.cx,m_WindowRect.cy); return true; } bool CWispMenu::OnRecalcLayout(WISP_MSG*pMsg) { int x,y; if(m_Style & WISP_WMS_POPUP) { y = m_MenuMarge; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style&WISP_MIS_SEPARATOR) { Iter->ItemRC.x = 0; Iter->ItemRC.y = y; Iter->ItemRC.cx = m_ClientRect.cx; Iter->ItemRC.cy = 1; } else { Iter->ItemRC.x = 0; Iter->ItemRC.y = y; Iter->ItemRC.cx = m_ClientRect.cx; Iter->ItemRC.cy = m_PopupItemHeight; } y+=Iter->ItemRC.cy; } } else { x = 0; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style&WISP_MIS_SEPARATOR) { Iter->ItemRC.x = x; Iter->ItemRC.y = (m_WndMenuHeight-m_WndItemHeight)/2; Iter->ItemRC.cy = m_WndItemHeight; Iter->ItemRC.cx = 1+m_MenuMarge*2; } else { Iter->ItemRC.x = x; Iter->ItemRC.y = (m_WndMenuHeight-m_WndItemHeight)/2; Iter->ItemRC.cy = m_WndItemHeight; Iter->ItemRC.cx = m_ClientDC.GetTextExtent(Iter->szText)+m_MenuMarge*2; if(Iter->Style&WISP_MIS_CHECKBOX) Iter->ItemRC.cx+=WISP_SSI_CHECKBOX_SIZE+m_MenuMarge; else if(Iter->pIcon) Iter->ItemRC.cx+=Iter->pIcon->Width()+m_MenuMarge; } x+=Iter->ItemRC.cx; } m_WndMenuItemWidth = x; } return true; } bool CWispMenu::OnDestroy(WISP_MSG*pMsg) { for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style&WISP_MIS_POPUP) Iter->pSubMenu->Destroy(); } m_ItemList.Clear(); return true; } bool CWispMenu::OnUpdateClient(WISP_MSG*pMsg) { if(m_Style&WISP_WMS_POPUP) { DrawPopupMenu(); } else { DrawWndMenu(); } return false; } void CWispMenu::DrawWndMenu() { UINT Status,SysIcon; int Index,IconSpace; WISP_RECT ItemRC,*pRC,rc; CWispMenu*pPopupMenu; if((m_Style&WISP_WS_BACK_TRANS)==0) m_pWispBase->m_pCurDrawObj->DrawMenuBK(&m_ClientDC,&m_ClientRect,STATUS_NORMAL); Index=0; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style&WISP_MIS_SEPARATOR) { m_ClientDC.DrawVLine(Iter->ItemRC.x+m_MenuMarge,Iter->ItemRC.y,Iter->ItemRC.y+Iter->ItemRC.cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); Index++; continue; } ItemRC.x = Iter->ItemRC.x+m_pWispBase->m_Metrics[WISP_SM_THIN_BORDER_SIZE]; ItemRC.cx = Iter->ItemRC.cx-m_MenuMarge*2; ItemRC.y = Iter->ItemRC.y; ItemRC.cy = Iter->ItemRC.cy; if(Iter==m_HoverIter) { if(m_bExpandMenu && (Iter->Style&WISP_MIS_POPUP)) { pRC = &Iter->ItemRC; pPopupMenu = (CWispMenu*)Iter->Data; m_ClientDC.DrawHLine(pRC->x,pRC->x+pRC->cx-1,pRC->y,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); m_ClientDC.DrawVLine(pRC->x,pRC->y,pRC->y+pRC->cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); m_ClientDC.DrawVLine(pRC->x+pRC->cx-1,pRC->y,pRC->y+pRC->cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); if(pPopupMenu->m_WindowRect.cxcx) m_ClientDC.DrawHLine(pRC->x+pRC->cx-1,pRC->x+pPopupMenu->m_WindowRect.cx-1,pRC->y+pRC->cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); } else { if((Iter->Style&WISP_MIS_DISABLED)==0) { m_ClientDC.DrawFullRect(&Iter->ItemRC,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_HOVER_LIGHT_BG]); m_ClientDC.DrawRect(&Iter->ItemRC,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_HOVER_FOCUS]); } } Status = STATUS_HOVER; } else { Status = STATUS_NORMAL; } if(Iter->Style&WISP_MIS_CHECKBOX) { rc.x = ItemRC.x; rc.cx = WISP_SSI_CHECKBOX_SIZE; rc.y = ItemRC.y; rc.cy = ItemRC.cy; SysIcon = (Iter->Style&WISP_MIS_CHECKED)?WISP_SSI_CHECKBOX_CHECKED:WISP_SSI_CHECKBOX_UNCHECKED; m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_ClientDC,&rc,SysIcon,STATUS_NORMAL); IconSpace = WISP_SSI_CHECKBOX_SIZE+m_MenuMarge; ItemRC.x+=IconSpace; ItemRC.cx-=IconSpace; } else if(Iter->pIcon) { rc.x = ItemRC.x; rc.cx = Iter->pIcon->Width(); rc.y = ItemRC.y; rc.cy = ItemRC.cy; if(Iter->Style&WISP_MIS_DISABLED) m_ClientDC.DrawGrayDIB(&rc,Iter->pIcon); else m_ClientDC.DrawDIB(&rc,Iter->pIcon); IconSpace = Iter->pIcon->Width()+m_MenuMarge; ItemRC.x+=IconSpace; ItemRC.cx-=IconSpace; } else { ItemRC.x+=m_MenuMarge/2; } if(Iter->Style&WISP_MIS_DISABLED) Status = STATE_DISABLED; if(Iter->TextClr) { m_ClientDC.SetTextColor(Iter->TextClr); m_pWispBase->m_pCurDrawObj->DrawMenuString(&m_ClientDC,&ItemRC,Iter->szText,Status); m_ClientDC.RestoreTextColor(); } else { m_pWispBase->m_pCurDrawObj->DrawMenuString(&m_ClientDC,&ItemRC,Iter->szText,Status); } Index++; } m_ClientDC.DrawHLine(0,m_ClientRect.cx-1,m_ClientRect.cy-1,SYS_COLOR[SC_BORDER_BG]); } void CWispMenu::DrawPopupMenu() { UINT Status,SysIcon; int Index,StrWidth; WISP_RECT rc,ItemRc; rc.x=rc.y=0; rc.cx = m_MenuIconSpace; rc.cy = m_ClientRect.cy; m_pWispBase->m_pCurDrawObj->DrawMenuIconSpaceBK(&m_ClientDC,&rc); ItemRc.x = m_MenuStartSpace; ItemRc.y = m_PopupMenuTopSpace; ItemRc.cx = m_ClientRect.cx - m_MenuStartSpace; ItemRc.cy = m_PopupItemHeight; Index=0; StrWidth = m_ClientRect.cx-m_MenuMarge*2-m_MenuStartSpace-m_MenuEndSpace; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { ItemRc.cy = Iter->ItemRC.cy; if(Iter->Style&WISP_MIS_SEPARATOR) { m_ClientDC.DrawHLine(m_MenuIconSpace,m_ClientRect.cx-1,ItemRc.y, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); ItemRc.y+=Iter->ItemRC.cy; Index++; continue; } rc.y = ItemRc.y; rc.cy = ItemRc.cy; Status = Iter==m_HoverIter?STATUS_HOVER:STATUS_NORMAL; m_pWispBase->m_pCurDrawObj->DrawMenuBK(&m_ClientDC,&ItemRc,Status); rc.x = m_MenuStartSpace+m_MenuMarge; rc.cx = StrWidth; if(Iter->Style&WISP_MIS_DISABLED) Status = STATE_DISABLED; if(Iter->TextClr) { m_ClientDC.SetTextColor(Iter->TextClr); m_pWispBase->m_pCurDrawObj->DrawMenuString(&m_ClientDC,&rc,Iter->szText,Status); m_ClientDC.RestoreTextColor(); } else { m_pWispBase->m_pCurDrawObj->DrawMenuString(&m_ClientDC,&rc,Iter->szText,Status); } if(Iter->Style&WISP_MIS_CHECKBOX) { rc.x = 0; rc.cx = m_MenuStartSpace; SysIcon = (Iter->Style&WISP_MIS_CHECKED)?WISP_SSI_CHECKBOX_CHECKED:WISP_SSI_CHECKBOX_UNCHECKED; m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_ClientDC,&rc,SysIcon,Status); } else if(Iter->pIcon) { rc.x = 0; rc.cx = m_MenuStartSpace; if(Iter->Style&WISP_MIS_DISABLED) m_ClientDC.DrawGrayDIB(&rc,Iter->pIcon); else m_ClientDC.DrawDIB(&rc,Iter->pIcon); } if(Iter->Style&WISP_MIS_POPUP) { rc.x = m_ClientRect.cx - m_MenuEndSpace; rc.cx = m_MenuEndSpace; m_pWispBase->m_pCurDrawObj->DrawMenuString(&m_ClientDC,&rc,WISP_STR(">>"),STATUS_NORMAL); } ItemRc.y+=Iter->ItemRC.cy; Index++; } rc.x=rc.y=0; rc.cx=m_ClientRect.cx; rc.cy=m_PopupMenuTopSpace; m_pWispBase->m_pCurDrawObj->DrawMenuTopFrame(&m_ClientDC,&rc); rc.x=0; rc.cx=m_ClientRect.cx; rc.y=ItemRc.y; rc.cy=m_PopupMenuBottomSpace; m_pWispBase->m_pCurDrawObj->DrawMenuBottomFrame(&m_ClientDC,&rc); } bool CWispMenu::OnUpdateBorder(WISP_MSG*pMsg) { WISP_MENU_ITEM*pMenuItem; if(m_pParentMenu && (m_pParentMenu->m_Style&WISP_WMS_POPUP)==0) { pMenuItem = &(*m_pParentMenu->m_HoverIter); m_WindowDC.DrawHLine(pMenuItem->ItemRC.cx-1,m_WindowRect.cx-1,0,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); m_WindowDC.DrawHLine(1,pMenuItem->ItemRC.cx-2,0,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BG]); m_WindowDC.DrawHLine(0,m_WindowRect.cx-1,m_WindowRect.cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); m_WindowDC.DrawVLine(0,0,m_WindowRect.cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); m_WindowDC.DrawVLine(m_WindowRect.cx-1,0,m_WindowRect.cy-1,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); } else m_WindowDC.DrawRect(&m_WindowRect,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_MENU_BORDER]); return false; } void CWispMenu::MenuNextSelect() { CMenuItemList::IT Iter = m_HoverIter; if(Iter==m_ItemList.End()) Iter = m_ItemList.Begin(); else { Iter++; if(Iter==m_ItemList.End()) Iter = m_ItemList.Begin(); } while(Iter!=m_ItemList.End() && (Iter->Style&WISP_MIS_SEPARATOR)) Iter++; m_HoverIter=Iter; Update(); } bool CWispMenu::SetHoverItem(HANDLE hItem) { CMenuItemList::IT Iter = *(WISP_MENU_ITEM*)hItem; if(m_HoverIter != Iter) HoverItemChanged(Iter); return true; } void CWispMenu::MenuPrevSelect() { CMenuItemList::IT Iter = m_HoverIter; if(Iter==m_ItemList.End()) Iter = m_ItemList.Last(); else { Iter--; if(Iter==m_ItemList.End()) Iter = m_ItemList.Last(); } while(Iter!=m_ItemList.End() && (Iter->Style&WISP_MIS_SEPARATOR)) Iter--; m_HoverIter=Iter; Update(); } void CWispMenu::ClickItem(WISP_MENU_ITEM*pMenuItem) { WISP_MSG Msg; if(ClickItemNotify(pMenuItem,pMenuItem->CmdID)==false) return; if((pMenuItem->Style&WISP_MIS_CHECKBOX)) ToggleCheckItem((HANDLE)pMenuItem); Msg.hWnd=m_OwnerWnd; Msg.Msg=WISP_WM_COMMAND; Msg.Command.CmdMsg = WISP_CMD_CTRL_CLICK; Msg.Command.CmdID = pMenuItem->CmdID; Msg.Command.CtrlType= WISP_CTRL_MENU; Msg.Command.Param1 = 0; Msg.Command.Param2 = pMenuItem; if(SEND_MSG(&Msg)) { Msg.hWnd=m_OwnerWnd; Msg.Msg=WISP_WM_EVENT; POST_MSG(&Msg); if(m_OwnerWnd==this) GetTopMenu()->HideMenuTree(); else m_OwnerWnd->Focus(); } } bool CWispMenu::OnKeyEvent(WISP_MSG*pMsg) { WISP_MENU_ITEM*pMenuItem; if(m_ItemList.Count()==0) return true; if(pMsg->KeyEvent.bKeyDown) { switch(pMsg->KeyEvent.KeyType) { case WISP_VK_LBUTTON: { if(PtInRect(&m_WindowRect,pMsg->MsgMouseCltPT)==false) { m_bExpandMenu = false; HideMenuTree(); break; } if(m_bExpandMenu && m_HoverIter==m_ItemList.End()) { m_bExpandMenu = false; HideMenuTree(); } if(m_HoverIter!=m_ItemList.End()) { pMenuItem = &(*m_HoverIter); if( (pMenuItem->Style&WISP_MIS_DISABLED)==0 && (pMenuItem->Style&WISP_MIS_SEPARATOR)==0) { if(pMenuItem->Style&WISP_MIS_POPUP) { if(m_bExpandMenu==false) { m_bExpandMenu = true; PopupItemMenu(pMenuItem,false); Update(&pMenuItem->ItemRC); } else { m_bExpandMenu = false; CMenuItemList::IT OldIter = m_HoverIter; HideMenuTree(); m_HoverIter = OldIter; Update(); } } else { ClickItem(pMenuItem); } } } }//End WISP_VK_LBUTTON break; case WISP_VK_UP: if(IsPopupMenu()) { MenuPrevSelect(); } else { if(m_pParentMenu) { HideMenuTree(); m_pParentMenu->Focus(); } } break; case WISP_VK_DOWN: if(IsPopupMenu()) { MenuNextSelect(); } else { if(m_HoverIter!=m_ItemList.End() && (m_HoverIter->Style&WISP_MIS_POPUP)) { PopupItemMenu(&(*m_HoverIter)); } } break; case WISP_VK_LEFT: if(IsPopupMenu()) { if(m_pParentMenu) { HideMenuTree(); m_pParentMenu->Focus(); } } else { MenuPrevSelect(); } break; case WISP_VK_RIGHT: if(IsPopupMenu()) { if(m_HoverIter!=m_ItemList.End() && (m_HoverIter->Style&WISP_MIS_POPUP)) { PopupItemMenu(&(*m_HoverIter)); } } else { MenuNextSelect(); } break; case WISP_VK_RETURN: if(m_HoverIter!=m_ItemList.End()) { if(m_HoverIter->Style&WISP_MIS_POPUP) PopupItemMenu(&(*m_HoverIter)); else { ClickItem(&(*m_HoverIter)); } } break; case WISP_VK_ESCAPE: if(m_pParentMenu) { HideMenuTree(); m_pParentMenu->Focus(); } else { if(m_OwnerWnd!=this) m_OwnerWnd->Focus(); else HideMenuTree(); } break; } } return true; } void CWispMenu::HoverItemChanged(const CMenuItemList::IT&Iter) { WISP_MENU_ITEM*pMenuItem; if(m_HoverIter!=m_ItemList.End()) { pMenuItem = &(*m_HoverIter); if(pMenuItem->Style&WISP_MIS_POPUP) ((CWispMenu*)pMenuItem->Data)->HideMenuTree(); } m_HoverIter = Iter; pMenuItem = &(*m_HoverIter); if(m_HoverIter!= m_ItemList.End() && ((m_Style&WISP_WMS_POPUP) || m_bExpandMenu)) { if(pMenuItem->Style&WISP_MIS_POPUP) PopupItemMenu(pMenuItem,false); } Update(); } bool CWispMenu::IsChildMenu(CWispBaseWnd*pMenu) { if(pMenu->m_CtrlType != WISP_CTRL_MENU) return false; CWispMenu*pParentMenu = ((CWispMenu*)pMenu)->m_pParentMenu; while(pParentMenu) { if(pParentMenu==this) return true; pParentMenu = pParentMenu->m_pParentMenu; } return false; } CWispMenu* CWispMenu::GetTopMenu() { CWispMenu*pParentMenu = this; while(pParentMenu) { if(pParentMenu->m_pParentMenu==NULL) return pParentMenu; pParentMenu = pParentMenu->m_pParentMenu; } return NULL; } bool CWispMenu::OnMouseMove(WISP_MSG*pMsg) { CMenuItemList::IT Iter; for(Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(PtInRect(&Iter->ItemRC,&pMsg->MsgMouseCltPT)) { if(m_HoverIter != Iter) HoverItemChanged(Iter); break; } } if(Iter == m_ItemList.End() && (m_Style&WISP_WMS_POPUP)==0) { if(m_HoverIter != Iter) HoverItemChanged(Iter); } return true; } bool CWispMenu::OnMouseLeave(WISP_MSG*pMsg) { if((m_Style&WISP_WMS_POPUP)==0 && m_HoverIter!=m_ItemList.End() && m_bExpandMenu == false) { HoverItemChanged(m_ItemList.End()); } return true; } bool CWispMenu::OnLostFocus(WISP_MSG*pMsg) { CWispMenu*pTopMenu; pTopMenu = GetTopMenu(); if(pTopMenu->IsChildMenu(pMsg->hOtherWnd)==false) { if(pTopMenu != pMsg->hOtherWnd) pTopMenu->HideMenuTree(); m_HoverIter = m_ItemList.End(); } return true; } bool CWispMenu::CreateWndMenu(CWispWnd*pParentWnd,UINT CmdID,WISP_MENU_RES_ITEM*pResItem,CWispDIBList*pDIBList) { CWispDIB*pIcon; CWispMenu*pMenu; if(Create(NULL,0,0,pParentWnd->m_ClientRect.cx,m_WndMenuHeight,pParentWnd,CmdID,WISP_WS_NULL)==false) return false; if(pResItem==NULL) return true; while(pResItem->szText || pResItem->CmdID || pResItem->Style) { if((pResItem->Style&WISP_MIS_POPUP) && pResItem->pMenuItem) { pMenu = new CWispMenu; pMenu->CreatePopupMenu((WISP_MENU_RES_ITEM*)pResItem->pMenuItem,m_OwnerWnd,pDIBList); pMenu->m_pParentMenu = this; pMenu->m_OwnerWnd = m_OwnerWnd; pMenu->AddAdvStyle(WISP_WAS_AUTO_DELETE); } else pMenu = NULL; if(pDIBList && pResItem->DIBIndex>=0) pIcon = pDIBList->GetDIB(pResItem->DIBIndex); else pIcon = NULL; InsertItem(-1,pResItem->szText,pResItem->Style,pResItem->CmdID,pIcon,(NUM_PTR)pMenu); pResItem++; } RecalcLayout(); return true; } bool CWispMenu::CreatePopupMenu(WISP_MENU_RES_ITEM*pResItem,CWispBaseWnd*pOwnerWnd,CWispDIBList*pDIBList) { CWispDIB*pIcon; CWispMenu*pMenu; int Width,Height,ItemWidth; if(Create(NULL,0,0,0,0,NULL,0,WISP_WS_THIN_BORDER|WISP_WMS_POPUP,WISP_SH_HIDDEN)==false) return false; if(pResItem==NULL) return true; CWispBaseWnd::SetOwner(pOwnerWnd); Height = Width = 0; while(pResItem->szText || pResItem->CmdID || pResItem->Style) { if((pResItem->Style&WISP_MIS_POPUP) && pResItem->pMenuItem) { pMenu = new CWispMenu; pMenu->CreatePopupMenu((WISP_MENU_RES_ITEM*)pResItem->pMenuItem,pOwnerWnd,pDIBList); pMenu->m_pParentMenu = this; pMenu->CWispBaseWnd::SetOwner(pOwnerWnd); pMenu->AddAdvStyle(WISP_WAS_AUTO_DELETE); } else pMenu=NULL; if(pDIBList && pResItem->DIBIndex>=0) pIcon = pDIBList->GetDIB(pResItem->DIBIndex); else pIcon = NULL; InsertItem(-1,pResItem->szText,pResItem->Style,pResItem->CmdID,pIcon,(NUM_PTR)pMenu); ItemWidth = m_ClientDC.GetTextExtent(pResItem->szText); if(ItemWidth > Width) Width = ItemWidth; if(pResItem->Style&WISP_MIS_SEPARATOR) Height+=1; else Height+=m_PopupItemHeight; pResItem++; } Width += m_MenuStartSpace+m_MenuEndSpace+m_BorderSize*2+m_MenuMarge*2; Height += m_BorderSize*2+m_MenuMarge*2; Resize(Width,Height); return true; } void CWispMenu::AdjustPopupMenuSize() { int Width,Height,ItemWidth; Width = 0; Height = 0; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { ItemWidth = m_ClientDC.GetTextExtent(Iter->szText); if(ItemWidth > Width) Width = ItemWidth; if(Iter->Style&WISP_MIS_SEPARATOR) Height+=1; else Height+=m_PopupItemHeight; } Width += m_MenuStartSpace+m_MenuEndSpace+m_BorderSize*2+m_MenuMarge*2; Height += m_BorderSize*2+m_MenuMarge*2; Resize(Width,Height); RecalcLayout(); } void CWispMenu::SetOwner(CWispBaseWnd*pOwnerWnd) { CWispWnd::SetOwner(pOwnerWnd); for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style&WISP_MIS_POPUP) Iter->pSubMenu->SetOwner(pOwnerWnd); } } HANDLE CWispMenu::InsertItem(int Pos,WISP_PCSTR szText,UINT Style,UINT CmdID,CWispDIB*pIcon,NUM_PTR MenuData) { CMenuItemList::IT Iter; if(Pos<0) { Iter = m_ItemList.Append(); } else { if(Pos>=m_ItemList.Count()) return NULL; Iter = m_ItemList[Pos]; Iter = m_ItemList.InsertBefore(Iter); } Iter->szText = szText; Iter->pIcon = pIcon; Iter->Style = Style; Iter->CmdID = CmdID; Iter->TextClr = 0; Iter->Data = MenuData; Iter->ItemRC.x = Iter->ItemRC.y = Iter->ItemRC.cx = Iter->ItemRC.cy; return Iter.pNode; } bool CWispMenu::InsertSubMenu(int Pos,WISP_PCSTR szText,CWispMenu*pMenu,CWispDIB*pIcon) { CMenuItemList::IT Iter; if(Pos<0) { Iter = m_ItemList.Append(); } else { if(Pos>=m_ItemList.Count()) return NULL; Iter = m_ItemList[Pos]; Iter = m_ItemList.InsertBefore(Iter); } Iter->szText = szText; Iter->pIcon = pIcon; Iter->Style = WISP_MIS_POPUP; Iter->CmdID = 0; Iter->TextClr = 0; Iter->pSubMenu = pMenu; Iter->ItemRC.x = Iter->ItemRC.y = Iter->ItemRC.cx = Iter->ItemRC.cy; return true; } bool CWispMenu::SetItemColor(UINT CmdID,COLORREF TextColor) { for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->CmdID && Iter->CmdID==CmdID) { Iter->TextClr = TextColor; return true; } } return false; } bool CWispMenu::RemoveItemByPos(int Pos) { CMenuItemList::IT Iter; if(Pos<0 || Pos>=m_ItemList.Count()) return false; Iter = m_ItemList[Pos]; m_ItemList.Remove(Iter); return true; } bool CWispMenu::RemoveItem(UINT CmdID) { for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style!=WISP_MIS_POPUP && Iter->CmdID==CmdID) { m_ItemList.Remove(Iter); return true; } } return false; } bool CWispMenu::RemoveItem(HANDLE hItem) { CMenuItemList::IT Iter = (CMenuItemList::NODE*)hItem; m_ItemList.Remove(Iter); return true; } int CWispMenu::RemoveAllItem() { int Count = m_ItemList.Count(); m_ItemList.Clear(); return Count; } HANDLE CWispMenu::GetItemByName(WISP_PCSTR Name) { HANDLE hItem; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->szText && TStrCmp(Name,(WISP_PCSTR)Iter->szText)==0) { return (HANDLE)&(*Iter);; } else if(Iter->Style&WISP_MIS_POPUP) { hItem = Iter->pSubMenu->GetItemByName(Name); if(hItem) return hItem; } } return NULL; } HANDLE CWispMenu::GetItemByPos(int Pos) { if(Pos<0 || Pos>=m_ItemList.Count()) return NULL; return (HANDLE)&(*m_ItemList[Pos]); } HANDLE CWispMenu::GetItem(UINT CmdID) { HANDLE hItem; for(CMenuItemList::IT Iter=m_ItemList.Begin();Iter!=m_ItemList.End();Iter++) { if(Iter->Style&WISP_MIS_POPUP) { hItem = Iter->pSubMenu->GetItem(CmdID); if(hItem) return hItem; } else if(Iter->CmdID==CmdID) return (HANDLE)&(*Iter); } return NULL; } HANDLE CWispMenu::GetNextItem(HANDLE hItem,UINT Style) { CMenuItemList::IT Iter; if(hItem) { Iter = *(WISP_MENU_ITEM*)hItem; Iter++; } else { Iter = m_ItemList.Begin(); } while(Iter!=m_ItemList.End()) { if((Iter->Style & Style)==Style) return &(*Iter); Iter++; } return NULL; } HANDLE CWispMenu::GetPrevItem(HANDLE hItem,UINT Style) { CMenuItemList::IT Iter; if(hItem) { Iter = *(WISP_MENU_ITEM*)hItem; Iter--; } else { Iter = m_ItemList.Last(); } while(Iter!=m_ItemList.End()) { if((Iter->Style & Style)==Style) return &(*Iter); Iter--; } return &(*Iter); } CWispString& CWispMenu::GetItemText(HANDLE hItem) { return ((WISP_MENU_ITEM*)hItem)->szText; } CWispDIB* CWispMenu::GetItemIcon(HANDLE hItem) { return ((WISP_MENU_ITEM*)hItem)->pIcon; } UINT CWispMenu::GetItemStyle(HANDLE hItem) { return ((WISP_MENU_ITEM*)hItem)->Style; } NUM_PTR CWispMenu::GetItemData(HANDLE hItem) { return ((WISP_MENU_ITEM*)hItem)->Data; } bool CWispMenu::SetItemInfo(HANDLE hItem,UINT Style,WISP_PCSTR szText,CWispDIB*pIcon,NUM_PTR Data) { WISP_MENU_ITEM*pItem = (WISP_MENU_ITEM*)hItem; pItem->Style = Style; pItem->szText = szText; pItem->pIcon = pIcon; pItem->Data = Data; int Width = m_ClientDC.GetTextExtent(szText)+m_MenuStartSpace+m_MenuEndSpace+m_BorderSize*2+m_MenuMarge*2; if(Width>m_WindowRect.cx) Resize(Width,m_WindowRect.cy); return true; } bool CWispMenu::SetItemText(HANDLE hItem,WISP_PCSTR szText) { int Width = m_ClientDC.GetTextExtent(szText)+m_MenuStartSpace+m_MenuEndSpace+m_BorderSize*2+m_MenuMarge*2; if(Width>m_WindowRect.cx) Resize(Width,m_WindowRect.cy); ((WISP_MENU_ITEM*)hItem)->szText = szText; return true; } bool CWispMenu::SetItemIcon(HANDLE hItem,CWispDIB*pIcon) { ((WISP_MENU_ITEM*)hItem)->pIcon = pIcon; return true; } bool CWispMenu::SetItemStyle(HANDLE hItem,UINT Style) { ((WISP_MENU_ITEM*)hItem)->Style = Style; return true; } bool CWispMenu::SetItemData(HANDLE hItem,NUM_PTR Data) { ((WISP_MENU_ITEM*)hItem)->Data = Data; return true; } bool CWispMenu::ToggleCheckItem(HANDLE hItem) { if(IsItemChecked(hItem)) { UncheckItem(hItem); return true; } else { CheckItem(hItem); return false; } } bool CWispMenu::CheckItem(HANDLE hItem) { WISP_MENU_ITEM*pItem=(WISP_MENU_ITEM*)hItem; if(pItem->Style&WISP_MIS_CHECKED) return true; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_CHECKING; Msg.Command.Param1 = false; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; pItem->Style|=WISP_MIS_CHECKED; Msg.Command.CmdMsg = WISP_CMD_ITEM_CHECKED; Msg.Command.Param1 = true; SEND_MSG(&Msg); Update(); return true; } bool CWispMenu::UncheckItem(HANDLE hItem) { WISP_MENU_ITEM*pItem=(WISP_MENU_ITEM*)hItem; if((pItem->Style&WISP_MIS_CHECKED)==0) return true; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_UNCHECKING; Msg.Command.Param1 = true; Msg.Command.Param2 = hItem; if(SEND_MSG(&Msg)==false) return false; pItem->Style&=~WISP_MIS_CHECKED; Msg.Command.CmdMsg = WISP_CMD_ITEM_UNCHECKED; Msg.Command.Param1 = false; SEND_MSG(&Msg); Update(); return true; } bool CWispMenu::IsItemChecked(HANDLE hItem) { return (((WISP_MENU_ITEM*)hItem)->Style & WISP_MIS_CHECKED)!=0; } bool CWispMenu::ToggleDisableItem(HANDLE hItem) { if(IsItemDisabled(hItem)) { EnableItem(hItem); return false; } else { DisableItem(hItem); return true; } } bool CWispMenu::EnableItem(HANDLE hItem) { WISP_MENU_ITEM*pItem=(WISP_MENU_ITEM*)hItem; if((pItem->Style&WISP_MIS_DISABLED)==0) return true; pItem->Style&=~WISP_MIS_DISABLED; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_ENABLED; Msg.Command.Param1 = false; Msg.Command.Param2 = hItem; SEND_MSG(&Msg); Update(); return true; } bool CWispMenu::DisableItem(HANDLE hItem) { WISP_MENU_ITEM*pItem=(WISP_MENU_ITEM*)hItem; if(pItem->Style&WISP_MIS_DISABLED) return true; pItem->Style|=WISP_MIS_DISABLED; WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_ITEM_DISABLED; Msg.Command.Param1 = true; Msg.Command.Param2 = hItem; SEND_MSG(&Msg); Update(); return true; } bool CWispMenu::IsItemDisabled(HANDLE hItem) { return (((WISP_MENU_ITEM*)hItem)->Style & WISP_MIS_DISABLED)!=0; } bool CWispMenu::IsItemChecked(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; return IsItemChecked(hItem); } bool CWispMenu::ToggleCheckItem(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; ToggleCheckItem(hItem); return true; } bool CWispMenu::CheckItem(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; CheckItem(hItem); return true; } bool CWispMenu::UncheckItem(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; UncheckItem(hItem); return true; } bool CWispMenu::IsItemDisabled(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; return IsItemDisabled(hItem); } bool CWispMenu::ToggleDisableItem(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; ToggleDisableItem(hItem); return true; } bool CWispMenu::EnableItem(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; EnableItem(hItem); return true; } bool CWispMenu::DisableItem(UINT CmdID) { HANDLE hItem = GetItem(CmdID); if(hItem==NULL) return false; DisableItem(hItem); return true; } bool CWispMenu::Popup(WISP_POINT*pPT,bool bSelectItem) { if(pPT==NULL) pPT = &m_pWispBase->m_MousePT; int X,Y; X = pPT->x; Y = pPT->y; if(X>m_ParentWnd->m_WindowRect.cx - m_WindowRect.cx) X = pPT->x - m_WindowRect.cx; if(Y>m_ParentWnd->m_WindowRect.cy - m_WindowRect.cy) Y = pPT->y - m_WindowRect.cy; if(bSelectItem) m_HoverIter = m_ItemList.Begin(); MoveToScreen(X,Y); Show(); Focus(); Top(); return true; } void CWispMenu::PopupItemMenu(WISP_MENU_ITEM*pMenuItem,bool bSelectItem) { int Width; WISP_POINT pt; CWispMenu*pMenu = (CWispMenu*)pMenuItem->Data; pMenu->m_HoverIter = pMenu->m_ItemList.End(); if(m_Style&WISP_WMS_POPUP) { pt.x = pMenuItem->ItemRC.x + pMenuItem->ItemRC.cx+ m_ScrClientRect.x; pt.y = pMenuItem->ItemRC.y + m_ScrClientRect.y; } else { pt.x = pMenuItem->ItemRC.x + m_ScrClientRect.x; pt.y = pMenuItem->ItemRC.y + pMenuItem->ItemRC.cy + m_ScrClientRect.y; Width = m_ClientDC.GetTextExtent(pMenuItem->szText)+m_MenuMarge*2; if(pMenuItem->pIcon) Width+=pMenuItem->pIcon->Width(); if(Width>pMenu->m_WindowRect.cx) pMenu->Resize(Width,pMenu->m_WindowRect.cy); } if(pt.x>m_ParentWnd->m_WindowRect.cx - pMenu->m_WindowRect.cx) pt.x -= m_WindowRect.cx+pMenu->m_ClientRect.cx; if(pt.y>m_ParentWnd->m_WindowRect.cy - pMenu->m_WindowRect.cy) { pt.y -= pMenu->m_WindowRect.cy-pMenuItem->ItemRC.cy; } if(bSelectItem) pMenu->m_HoverIter = pMenu->m_ItemList.Begin(); pMenu->MoveToScreen(pt.x,pt.y); pMenu->Show(); pMenu->Focus(); } void CWispMenu::HideMenuTree() { WISP_MENU_ITEM*pMenuItem; CWispMenu*pMenu=this; if(m_Style&WISP_WMS_POPUP) { Show(WISP_SH_HIDDEN); while(pMenu) { if(pMenu->m_HoverIter == pMenu->m_ItemList.End()) break; pMenuItem = &(*pMenu->m_HoverIter); if((pMenuItem->Style&WISP_MIS_POPUP) == 0) break; pMenu->m_HoverIter=pMenu->m_ItemList.End(); pMenu = (CWispMenu*)pMenuItem->Data; pMenu->Show(WISP_SH_HIDDEN); m_pWispBase->m_pRootWnd->Update(&pMenu->m_ScrWindowRect); } Update(); } else { m_bExpandMenu = false; if(m_HoverIter != m_ItemList.End()) { pMenuItem = &(*m_HoverIter); m_HoverIter = m_ItemList.End(); if(pMenuItem->Style&WISP_MIS_POPUP) ((CWispMenu*)pMenuItem->Data)->HideMenuTree(); } } } ================================================ FILE: Project/Wisp/Source/WispMenu.h ================================================ #ifndef WISP_MENU_H_ #define WISP_MENU_H_ #include "WispWnd.h" #define WISP_WMS_POPUP 0x00010000 #define WISP_MIS_NORMAL 0x00000000 #define WISP_MIS_POPUP 0x00000001 #define WISP_MIS_CHECKBOX 0x00000002 #define WISP_MIS_SEPARATOR 0x00000004 #define WISP_MIS_CHECKED 0x00080000 #define WISP_MIS_DISABLED 0x00100000 #define WISP_MENU_RES_SEPARATOR {NULL,0,NULL,WISP_MIS_SEPARATOR} #define WISP_MENU_RES_END {NULL,0,0,NULL,NULL} class CWispMenu; struct WISP_MENU_RES_ITEM { WISP_PCSTR szText; UINT CmdID; int DIBIndex; UINT Style; void* pMenuItem; }; struct WISP_MENU_ITEM { CWispString szText; CWispDIB* pIcon; UINT CmdID; UINT Style; WISP_RECT ItemRC; COLORREF TextClr; union { NUM_PTR Data; CWispMenu*pSubMenu; }; }; typedef TList CMenuItemList; class CWispMenu : public CWispWnd { protected: CMenuItemList m_ItemList; int m_PopupItemHeight; int m_WndItemHeight; CMenuItemList::IT m_HoverIter; int m_MenuStartSpace; int m_MenuIconSpace; int m_MenuEndSpace; int m_MenuMarge; int m_PopupMenuTopSpace; int m_PopupMenuBottomSpace; int m_WndMenuHeight; int m_WndMenuItemWidth; bool m_bExpandMenu; public: CWispMenu(); ~CWispMenu(); public: bool InitWnd(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG(OnMouseLeave) DECLARE_WISP_MSG(OnParentResize) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnUpdateBorder) DECLARE_WISP_MSG(OnLostFocus) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG(OnDestroy) //Notify virtual bool ClickItemNotify(HANDLE hMenuItem,UINT CmdID){return true;} bool CreateWndMenu(CWispWnd*pParentWnd,UINT CmdID,WISP_MENU_RES_ITEM*pResItem,CWispDIBList*pDIBList = NULL); bool CreatePopupMenu(WISP_MENU_RES_ITEM*pResItem,CWispBaseWnd*pOwnerWnd,CWispDIBList*pDIBList = NULL); void SetOwner(CWispBaseWnd*pOwnerWnd); bool Popup(WISP_POINT*pPT = NULL,bool bSelectItem = true); bool IsPopupMenu(){ return (m_Style&WISP_WMS_POPUP)!=0;} HANDLE InsertItem(int Pos,WISP_PCSTR szText,UINT Style,UINT CmdID,CWispDIB*pIcon=NULL,NUM_PTR MenuData = 0); bool InsertSubMenu(int Pos,WISP_PCSTR szText,CWispMenu*pMenu,CWispDIB*pIcon = NULL); bool SetItemColor(UINT CmdID,COLORREF TextColor); void AdjustPopupMenuSize(); bool RemoveItemByPos(int Pos); bool RemoveItem(UINT CmdID); bool RemoveItem(HANDLE hItem); int RemoveAllItem(); HANDLE GetItemByName(WISP_PCSTR Name); HANDLE GetItemByPos(int Pos); HANDLE GetItem(UINT CmdID); HANDLE GetNextItem(HANDLE hItem,UINT Style=0); HANDLE GetPrevItem(HANDLE hItem,UINT Style=0); bool SetHoverItem(HANDLE hItem); CWispString&GetItemText(HANDLE hItem); CWispDIB*GetItemIcon(HANDLE hItem); UINT GetItemStyle(HANDLE hItem); NUM_PTR GetItemData(HANDLE hItem); bool SetItemInfo(HANDLE hItem,UINT Style,WISP_PCSTR szText,CWispDIB*pIcon,NUM_PTR Data); bool SetItemText(HANDLE hItem,WISP_PCSTR szText); bool SetItemIcon(HANDLE hItem,CWispDIB*pIcon); bool SetItemStyle(HANDLE hItem,UINT Style); bool SetItemData(HANDLE hItem,NUM_PTR Data); //HANDLE bool IsItemChecked(HANDLE hItem); bool ToggleCheckItem(HANDLE hItem); bool CheckItem(HANDLE hItem); bool UncheckItem(HANDLE hItem); bool IsItemDisabled(HANDLE hItem); bool ToggleDisableItem(HANDLE hItem); bool EnableItem(HANDLE hItem); bool DisableItem(HANDLE hItem); bool INLINE CheckItem(HANDLE hItem,bool bCheck){ return bCheck?CheckItem(hItem):UncheckItem(hItem);} bool INLINE EnableItem(HANDLE hItem,bool bEnable){ return bEnable?EnableItem(hItem):DisableItem(hItem);} //CmdID bool IsItemChecked(UINT CmdID); bool ToggleCheckItem(UINT CmdID); bool CheckItem(UINT CmdID); bool UncheckItem(UINT CmdID); bool IsItemDisabled(UINT CmdID); bool ToggleDisableItem(UINT CmdID); bool EnableItem(UINT CmdID); bool DisableItem(UINT CmdID); bool INLINE CheckItem(UINT CmdID,bool bCheck){ return bCheck?CheckItem(CmdID):UncheckItem(CmdID);} bool INLINE EnableItem(UINT CmdID,bool bEnable){ return bEnable?EnableItem(CmdID):DisableItem(CmdID);} private: void DrawWndMenu(); void DrawPopupMenu(); void HoverItemChanged(const CMenuItemList::IT&Iter); void PopupItemMenu(WISP_MENU_ITEM*pMenuItem,bool bSelectItem = true); bool IsChildMenu(CWispBaseWnd*pMenu); CWispMenu*GetTopMenu(); void HideMenuTree(); void MenuNextSelect(); void MenuPrevSelect(); void ClickItem(WISP_MENU_ITEM*pMenuItem); public: CWispMenu*m_pParentMenu; }; #endif ================================================ FILE: Project/Wisp/Source/WispMisc.cpp ================================================ #include "StdAfx.h" #include "WispMenu.h" #include "WispMisc.h" #include "WispButton.h" #include "WispRGBSelect.h" class CWispSelectMenu : public CWispMenu { public: CWispSelectMenu(); int m_Result; static WISP_PCSTR m_szYesNoList[]; bool Create(WISP_PCSTR*szTextList); bool ClickItemNotify(HANDLE hMenuItem,UINT CmdID); }; CWispSelectMenu::CWispSelectMenu() { m_Result = -1; } bool CWispSelectMenu::ClickItemNotify(HANDLE hMenuItem,UINT CmdID) { m_Result = (int)(CmdID - WISP_ID_USER_START); PostCloseMsg(); return true; } bool CWispSelectMenu::Create(WISP_PCSTR*szTextList) { UINT Style; int Width,Height,ItemWidth,Start; if(CWispMenu::Create(NULL,0,0,0,0,NULL,0,WISP_WS_THIN_BORDER|WISP_WMS_POPUP,WISP_SH_HIDDEN)==false) return false; CWispBaseWnd::SetOwner(this); Height = Width = 0; int n = 0; while(szTextList[n]) { Style = 0; Start = 0; if(szTextList[n][0]=='%') { if(szTextList[n][1]=='d') { Style = WISP_MIS_DISABLED; Start = 2; } } InsertItem(-1,&szTextList[n][Start],Style,WISP_ID_USER_START+n); ItemWidth = m_ClientDC.GetTextExtent(szTextList[n]); if(ItemWidth > Width) Width = ItemWidth; Height+=m_PopupItemHeight; n++; } Width += m_MenuStartSpace+m_MenuEndSpace+m_BorderSize*2+m_MenuMarge*2; Height += m_BorderSize*2+m_MenuMarge*2; Resize(Width,Height); return true; } bool GetResultFromList(int x,int y,WISP_PCSTR*szTextList,int*pResult,int Default) { HANDLE hItem; WISP_POINT pt; CWispBaseWnd*pOldFocusWnd; CWispSelectMenu Menu; Menu.Create(szTextList); pt.x = x; pt.y = y; pOldFocusWnd = Menu.m_pWispBase->m_pFocusWnd; Menu.Popup(&pt,false); if(Default>=0) { hItem = Menu.GetItemByPos(Default); if(hItem) Menu.SetHoverItem(hItem); } Menu.Show(WISP_SH_MODAL_BLOCK); Menu.Destroy(); pOldFocusWnd->Focus(); if(Menu.m_Result<0) return false; *pResult= Menu.m_Result; return true; } class CStrInputWnd : public CWispForm { public: CStrInputWnd(); ~CStrInputWnd(); CWispString* m_pStrText; WISP_PCSTR m_pszTitle; WISP_PCSTR m_pszStaticText; enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG_CMD(OnOK) }; enum CStrInputWnd::WISP_FORM_ID { CMD_ID_EDIT_TEXT = WISP_ID_USER_START, CMD_ID_STATIC_TEXT }; WISP_FORM_RES_ITEM CStrInputWnd::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,300,100}, WISP_ID_NULL, WISP_WFS_DIALOG, WSTR("Please Input ...") }, { WISP_CTRL_STATIC_GROUP, {10,10,270,50}, CMD_ID_STATIC_TEXT, WISP_WS_NULL, WSTR("Text"), }, { WISP_CTRL_EDIT, {20,30,200,16}, CMD_ID_EDIT_TEXT, WISP_WS_THIN_BORDER|WISP_ES_AUTOHSCROLL, NULL, NULL, NULL }, { WISP_CTRL_BUTTON, {230,30,40,16}, WISP_ID_OK, WISP_BS_NORMAL, WSTR("OK"), NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CStrInputWnd) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CStrInputWnd) WISP_MSG_CMD_MAP(WISP_ID_OK,OnOK) WISP_MSG_CMD_MAP_END CStrInputWnd::CStrInputWnd() { m_pFormRes = m_FormRes; m_pszStaticText = m_pszTitle = 0; } CStrInputWnd::~CStrInputWnd() { } bool CStrInputWnd::OnFormCreate(IN WISP_MSG*pMsg) { if(m_pszStaticText) GetFormItem(CMD_ID_STATIC_TEXT)->SetWindowText(m_pszStaticText); if(m_pszTitle) SetWindowText(m_pszTitle); return true; } bool CStrInputWnd::OnOK(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg == WISP_CMD_BT_UP) *m_pStrText = GetFormItem(CMD_ID_EDIT_TEXT)->GetWindowText(); return true; } bool GetInputText(CWispString&szText,WISP_PSTR szStaticText,WISP_PSTR szTitle) { CStrInputWnd InputWnd; InputWnd.m_pStrText = &szText; InputWnd.m_pszStaticText = szStaticText; InputWnd.m_pszTitle = szTitle; InputWnd.CreateForm(NULL,WISP_SH_MODAL_BLOCK); return InputWnd.m_Result == WISP_ID_OK; } bool GetRGBColor(COLORREF*pResult,COLORREF *pDefault) { CWispRGBSelect RGBSelect; if(pDefault) RGBSelect.m_RGBClr = *pDefault; RGBSelect.CreateForm(NULL,WISP_SH_MODAL_BLOCK); if(RGBSelect.m_Result != WISP_ID_OK) return false; *pResult = RGBSelect.m_RGBClr; return true; } enum CWispProgressForm::WISP_FORM_ID { CMD_ID_PROGRESS = WISP_ID_USER_START, CMD_ID_TEXT }; WISP_FORM_RES_ITEM CWispProgressForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,325,60}, WISP_ID_NULL, WISP_WS_THIN_BORDER, NULL }, { WISP_CTRL_STATIC_STRING, {10,10,300,16}, CMD_ID_TEXT, WISP_WS_NULL, NULL, NULL, NULL }, { WISP_CTRL_PROGRESS, {10,30,300,16}, CMD_ID_PROGRESS, WISP_WS_NULL, NULL, NULL, NULL }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CWispProgressForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) CWispProgressForm::CWispProgressForm() { m_pFormRes = m_FormRes; m_pProgessCtrl = NULL; m_pStaticStr = NULL; } CWispProgressForm::~CWispProgressForm() { } bool CWispProgressForm::OnFormCreate(IN WISP_MSG*pMsg) { m_pProgessCtrl = (CWispProgress*) GetFormItem(CMD_ID_PROGRESS); m_pProgessCtrl->SetRange(0,99); m_pProgessCtrl->SetPos(0); m_pStaticStr = (CWispStaticStr*) GetFormItem(CMD_ID_TEXT); return true; } void CWispProgressForm::SetProgressText(WISP_PCSTR szText) { m_pStaticStr->SetWindowText(szText); } ================================================ FILE: Project/Wisp/Source/WispMisc.h ================================================ #ifndef _WISP_MISC_H_ #define _WISP_MISC_H_ #include "WispProgress.h" #include "WispForm.h" #include "WispStatic.h" bool GetResultFromList(int x,int y,WISP_PCSTR*szTextList,int*pResult,int Default = -1); bool GetInputText(CWispString&szText,WISP_PSTR szStaticText = NULL,WISP_PSTR szTitle = WISP_STR("Please Input ....")); bool GetRGBColor(COLORREF*pResult,COLORREF *pDefault=NULL); class CWispProgressForm : public CWispForm { public: CWispProgressForm(); ~CWispProgressForm(); enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) CWispProgress*m_pProgessCtrl; CWispStaticStr*m_pStaticStr; void SetProgressText(WISP_PCSTR szText); }; #endif ================================================ FILE: Project/Wisp/Source/WispMsgBox.cpp ================================================ #include "StdAfx.h" #include "WispMsgBox.h" #include "WispBase.h" WISP_MSG_MAP_BEGIN(CWispMsgBox) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP_END(CWispWnd) CWispMsgBox::CWispMsgBox(void) { m_nBtnWidth = 50; m_nReturnStatus = WISP_ID_NULL; m_CtrlType = WISP_CTRL_MSG_BOX; } CWispMsgBox::~CWispMsgBox(void) { } bool CWispMsgBox::Create(IN CWispBaseWnd*pParentWnd) { return CWispWnd::Create(NULL, 0,0,0,0, pParentWnd,0,WISP_WS_CAPTION | WISP_WS_BORDER | WISP_WS_BT_CLOSE); } int CWispMsgBox::StaticShowMsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType,CWispBaseWnd*pParentWnd) { CWispMsgBox MsgBox; if(MsgBox.Create(NULL)==false) return WISP_ID_NULL; return MsgBox.ShowMsgBox(pText, pCaption, uType); } int CWispMsgBox::ShowMsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType) { // caption and infomation m_strText = pText; m_WndText = pCaption; // button style if( !(uType&WISP_MB_CUSTOMIZE) ) { UINT uBtnType = uType&WISP_MB_BTNMASK; if(uBtnType==0) uBtnType = WISP_MB_OK; AddDefaultButton(uBtnType); } // icon if( uType&WISP_MB_ICONMASK) AddDefaultIcon(uType); // calc window width WISP_RECT rcText={0,0,0,0}; m_ClientDC.DrawString(pText,&rcText, WISP_DT_CALCRECT); int cx1 = rcText.cx+(m_dibIcon.m_FrameBuffer.Buffer?20:0); int cx2 = m_ClientDC.GetTextExtent(pCaption); int cx3 = (int)m_vButtons.Count()*(m_nBtnWidth+MSGBOX_BTN_SPACE*2); int nWndWidth = MAX(MAX(cx1,cx2),cx3) + 60; if(nWndWidth<150) nWndWidth = 150; int nWndHeight = MAX(rcText.cy+50, 120); Resize(nWndWidth, nWndHeight); Center(); // create buttons int nBeginPos = (nWndWidth - m_vButtons.Count()*(m_nBtnWidth+MSGBOX_BTN_SPACE*2))/2; for(TList::IT It=m_vButtons.Begin(); It!=m_vButtons.End(); It++) { nBeginPos += MSGBOX_BTN_SPACE; CWispButton* pButton = new CWispButton(); pButton->Create(It->pBtnText, nBeginPos, nWndHeight-50, m_nBtnWidth, m_ClientDC.m_pFont->m_Height+6, this, It->nID, WISP_BS_NORMAL, WISP_SH_NORMAL); if(It->nID==WISP_ID_OK || It->nID==WISP_ID_YES) pButton->Focus(); pButton->m_AdvStyle |= WISP_WAS_AUTO_DELETE; nBeginPos += (m_nBtnWidth+MSGBOX_BTN_SPACE); } // do modal Show(WISP_SH_MODAL_BLOCK); Destroy(); RemoveAllButtons(); return m_nReturnStatus; } bool CWispMsgBox::OnUpdateClient(IN WISP_MSG* pMsg) { CWispWnd::OnUpdateClient(pMsg); WISP_RECT rect; m_dibIcon.m_FrameBuffer.Buffer? rect.x = 50 : rect.x = 20; rect.cx = m_ClientRect.cx - rect.x; rect.y = 10; rect.cy = m_ClientRect.cy; m_ClientDC.DrawString(m_strText, &rect, WISP_DT_LEFT); if(m_dibIcon.m_FrameBuffer.Buffer) m_ClientDC.DrawDIB(10, 10, &m_dibIcon); return false; } bool CWispMsgBox::OnCommand(IN WISP_MSG* pMsg) { if(pMsg->Command.CtrlType==WISP_CTRL_BUTTON) { if(pMsg->Command.CmdMsg != WISP_CMD_BT_UP) return true; m_nReturnStatus = pMsg->Command.CmdID; Show(WISP_SH_HIDDEN); return true; } return true; } void CWispMsgBox::AddDefaultButton(UINT uType) { if(uType & WISP_MB_OK) AddButton(WISP_STR("OK"),WISP_ID_OK); if(uType & WISP_MB_YES) AddButton(WISP_STR("YES"),WISP_ID_YES); if(uType & WISP_MB_NO) AddButton(WISP_STR("NO"),WISP_ID_NO); if(uType & WISP_MB_CANCEL) AddButton(WISP_STR("CANCEL"),WISP_ID_CANCEL); if(uType & WISP_MB_TRY) AddButton(WISP_STR("TRY"),WISP_ID_TRY); if(uType & WISP_MB_CONTINUE) AddButton(WISP_STR("CONTINUE"),WISP_ID_CONTINUE); if(uType & WISP_MB_ABORT) AddButton(WISP_STR("ABORT"),WISP_ID_ABORT); if(uType & WISP_MB_RETRY) AddButton(WISP_STR("RETRY"),WISP_ID_RETRY); if(uType & WISP_MB_IGNORE) AddButton(WISP_STR("IGNORE"),WISP_ID_IGNORE); } void CWispMsgBox::AddDefaultIcon(UINT uType) { if(uType&WISP_MB_ICONINFOMATION) m_dibIcon.Load("\\WispApp\\MsgBox\\Information.bmp"); else if(uType&WISP_MB_ICONQUESTION) m_dibIcon.Load("\\WispApp\\MsgBox\\Question.bmp"); else if(uType&WISP_MB_ICONALERT) m_dibIcon.Load("\\WispApp\\MsgBox\\Alert.bmp"); else if(uType&WISP_MB_ICONERROR) m_dibIcon.Load("\\WispApp\\MsgBox\\Error.bmp"); m_dibIcon.m_Type = WISP_DIB_TK; m_dibIcon.m_ColorKey = SYS_COLOR[SC_UNNAMED_15]; } void CWispMsgBox::AddButton(WISP_CHAR* pText, int nID) { BTNPAIR stPair; stPair.pBtnText = pText; stPair.nID = nID; int nLength = m_ClientDC.GetTextExtent(pText)+4; if(nLength>m_nBtnWidth) m_nBtnWidth = nLength; m_vButtons.Append(stPair); } void CWispMsgBox::RemoveAllButtons() { m_vButtons.Clear(); } ================================================ FILE: Project/Wisp/Source/WispMsgBox.h ================================================ #ifndef _WISP_MESSAGEBOX_H_ #define _WISP_MESSAGEBOX_H_ /* ʹ˵ 1.ҪԶ尴ťť· CWispMsgBox box; box.Create(m_pWispBase, this); box.AddButton(WISP_STR("shit"), 0); box.AddButton(WISP_STR("another shit"), 1); box.ShowMsgBox(WISP_STR("What you want?"), WISP_STR("Caption"), WISP_MB_CUSTOMIZE); 2.ʹĬϷʽһCWispBaseWndļ̳УֱMsgBoxɣ MsgBox(WISP_STR("What you want?"), WISP_STR("Caption"), WISP_MB_YESNO|WISP_MB_ICONQUESTION); 3.CWispBaseWndļ̳УCWispBaseMsgBoxɣ m_pWispBase->MsgBox(WISP_STR("What you want?"), WISP_STR("Caption"), WISP_MB_YESNO|WISP_MB_ICONQUESTION); 4.κεطֱӵCWispMsgBoxľ̬23ַͨʵֵģ CWispMsgBox::StaticShowMsgBox(m_pWispBase, WISP_STR("What you want?"), WISP_STR("Caption"), WISP_MB_YESNO|WISP_MB_ICONALERT, this); */ #include "WispButton.h" #define MSGBOX_BTN_SPACE 2 #define WISP_MB_OK 0x00000001 #define WISP_MB_CANCEL 0x00000002 #define WISP_MB_ABORT 0x00000004 #define WISP_MB_RETRY 0x00000008 #define WISP_MB_IGNORE 0x00000010 #define WISP_MB_YES 0x00000020 #define WISP_MB_NO 0x00000040 #define WISP_MB_CONTINUE 0x00000080 #define WISP_MB_TRY 0x00000100 #define WISP_MB_ABORTRETRYIGNORE (WISP_MB_ABORT|WISP_MB_RETRY|WISP_MB_IGNORE) #define WISP_MB_CANCELTRYCONTINUE (WISP_MB_CANCEL|WISP_MB_TRY|WISP_MB_CONTINUE) #define WISP_MB_OKCANCEL (WISP_MB_OK|WISP_MB_CANCEL) #define WISP_MB_RETRYCANCEL (WISP_MB_RETRY|WISP_MB_CANCEL) #define WISP_MB_YESNO (WISP_MB_YES|WISP_MB_NO) #define WISP_MB_YESNOCANCEL (WISP_MB_YES|WISP_MB_NO|WISP_MB_CANCEL) #define WISP_MB_BTNMASK 0x00000FFFL #define WISP_MB_CUSTOMIZE 0x00001000L #define WISP_MB_ICONINFOMATION 0x00010000L #define WISP_MB_ICONQUESTION 0x00020000L #define WISP_MB_ICONALERT 0x00030000L #define WISP_MB_ICONERROR 0x00040000L #define WISP_MB_ICONEXCLAMATION WISP_MB_ICONALERT #define WISP_MB_ICONWARNING WISP_MB_ICONALERT #define WISP_MB_ICONASTERISK WISP_MB_ICONINFOMATION #define WISP_MB_ICONSTOP WISP_MB_ICONERROR #define WISP_MB_ICONHAND WISP_MB_ICONERROR #define WISP_MB_ICONMASK 0x000F0000L #include "WispWnd.h" #include "WispDIB.h" class CWispMsgBox : public CWispWnd { public: CWispMsgBox(void); ~CWispMsgBox(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnCommand); public: bool Create(IN CWispBaseWnd*pParentWnd); static int StaticShowMsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType ,CWispBaseWnd* pParentWnd = NULL); int ShowMsgBox(WISP_CHAR* pText, WISP_CHAR* pCaption, UINT uType); void AddButton(WISP_CHAR* pText, int nID); void AddDefaultButton(UINT uType); void AddDefaultIcon(UINT uType); void RemoveAllButtons(); struct BTNPAIR { TString pBtnText; int nID; }; TList m_vButtons; TString m_strText; int m_nBtnWidth; CWispDIB m_dibIcon; int m_nReturnStatus; }; #endif//_WISP_MESSAGEBOX_H_ ================================================ FILE: Project/Wisp/Source/WispMsgDefine.h ================================================ #ifndef _WISP_MSG_DEFINE_H_ #define _WISP_MSG_DEFINE_H_ enum WISP_SB_EVENT_TYPE { WISP_SB_INC, WISP_SB_DEC, WISP_SB_PAGE_UP, WISP_SB_PAGE_DOWN, WISP_SB_POS_CHANGE, }; #define WISP_LAST_POS -1 //Window Hit Area #define WISP_HIT_WND_NON 0x00000000 #define WISP_HIT_WND_CLIENT 0x00000001 #define WISP_HIT_WND_MOVE 0x00000002 #define WISP_HIT_WND_NON_CLIENT 0x00000003 #define WISP_HIT_WND_BT_CLOSE 0x00000004 #define WISP_HIT_WND_BT_MAX 0x00000005 #define WISP_HIT_WND_BT_MIN 0x00000006 #define WISP_HIT_WND_RESIZE_LEFT 0x00010000 #define WISP_HIT_WND_RESIZE_RIGHT 0x00020000 #define WISP_HIT_WND_RESIZE_TOP 0x00040000 #define WISP_HIT_WND_RESIZE_BOTTOM 0x00080000 #define WISP_HIT_WND_RESIZE_MASK 0x000F0000 #define WISP_HIT_WND_RESIZE_LEFT_TOP (WISP_HIT_WND_RESIZE_LEFT | WISP_HIT_WND_RESIZE_TOP) #define WISP_HIT_WND_RESIZE_RIGHT_TOP (WISP_HIT_WND_RESIZE_RIGHT | WISP_HIT_WND_RESIZE_TOP) #define WISP_HIT_WND_RESIZE_LEFT_BOTTOM (WISP_HIT_WND_RESIZE_LEFT | WISP_HIT_WND_RESIZE_BOTTOM) #define WISP_HIT_WND_RESIZE_RIGHT_BOTTOM (WISP_HIT_WND_RESIZE_RIGHT | WISP_HIT_WND_RESIZE_BOTTOM) //Window's Ctrl Hit Area #define WISP_HIT_CTRL_NON 0x00000000 #define WISP_HIT_CTRL_VERT_INC_BT 0x00000001 #define WISP_HIT_CTRL_VERT_DEC_BT 0x00000002 #define WISP_HIT_CTRL_VERT_SLIDE_RECT 0x00000003 #define WISP_HIT_CTRL_VERT_SPACE_RECT 0x00000004 #define WISP_HIT_CTRL_VERT_SCROLL_RECT 0x00000005 #define WISP_HIT_CTRL_HORZ_INC_BT 0x00000011 #define WISP_HIT_CTRL_HORZ_DEC_BT 0x00000012 #define WISP_HIT_CTRL_HORZ_SLIDE_RECT 0x00000013 #define WISP_HIT_CTRL_HORZ_SPACE_RECT 0x00000014 #define WISP_HIT_CTRL_HORZ_SCROLL_RECT 0x00000015 #define WISP_CMD_USER_START 0x00000001 #define WISP_CMD_DEVELOP_START 0x40000000 #define WISP_CMD_SYSTEM_START 0x80000000 /////////////////////////////////////////////////////////////////////////////////////// //CommandϢ /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_BT_DOWN 0x80000001 //ť #define WISP_CMD_BT_UP 0x80000002 //ţ̌ /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_GET_CMD 0x80000010 //̨ȡϢ /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_ITEM_EXPANDING 0x80000100 //item is being expanded #define WISP_CMD_ITEM_EXPANDED 0x80000101 //item has been expanded #define WISP_CMD_ITEM_UNEXPANDING 0x80000102 //item is being unexpanded #define WISP_CMD_ITEM_UNEXPANDED 0x80000103 //item has been unexpanded #define WISP_CMD_ITEM_SELECTING 0x80000104 //item is being selected #define WISP_CMD_ITEM_SELECTED 0x80000105 //item has been selected #define WISP_CMD_ITEM_UNSELECTING 0x80000106 //item is being unselected #define WISP_CMD_ITEM_UNSELECTED 0x80000107 //item has been unselected #define WISP_CMD_ITEM_CHECKING 0x80000108 //item is being checked #define WISP_CMD_ITEM_CHECKED 0x80000109 //item has been checked #define WISP_CMD_ITEM_UNCHECKING 0x8000010A //item is being unchecked #define WISP_CMD_ITEM_UNCHECKED 0x8000010B //item has been unchecked #define WISP_CMD_ITEM_CHANGED 0x8000010E //item has been edited #define WISP_CMD_ITEM_ENABLED 0x8000010F //item has been enabled #define WISP_CMD_ITEM_DISABLED 0x80000110 //item has been disabled #define WISP_CMD_ITEM_BEGIN_EDIT 0x80000111 //begin to edit a label #define WISP_CMD_ITEM_END_EDIT 0x80000112 //end to edit a label #define WISP_CMD_ITEM_CANCEL_EDIT 0x80000113 //end to edit a label #define WISP_CMD_ITEM_HOVER 0x80000114 //item hover #define WISP_CMD_ITEM_UNHOVER 0x80000115 //item lost hover #define WISP_CMD_ITEM_CLICK 0x80000116 //click an item #define WISP_CMD_ITEM_RDBCLICK 0x80000117 //right button double click an item #define WISP_CMD_ITEM_LDBCLICK 0x80000118 //left button double click an item #define WISP_CMD_ITEM_KEY_DOWN 0x80000119 //recive a key event down #define WISP_CMD_ITEM_KEY_UP 0x80000120 //recive a key event up #define WISP_CMD_TITLE_CLICK 0x80000121 // #define WISP_CMD_TITLE_RCLICK 0x80000122 // /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_CTRL_GET_FOCUS 0x80000201 //ctrl get focus #define WISP_CMD_CTRL_LOST_FOCUS 0x80000202 //ctrl lost focus #define WISP_CMD_CTRL_CLICK 0x80000203 //click an item #define WISP_CMD_CTRL_RCLICK 0x80000204 //right click an item #define WISP_CMD_CTRL_DBCLICK 0x80000205 //double click an item /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_CB_CLICK 0x80000300 //checkbox click /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_COMBOX_SELCHANGE 0x80000400 //COMBOX BOX SELECT CHANGE /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_STATIC_URL_CLICK 0x80000500 //COMBOX BOX SELECT CHANGE /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_EN_CHANGING 0x80000700 //Edit change before update screen #define WISP_CMD_EN_KILLFOCUS 0x80000701 //The edit control loses the input focus #define WISP_CMD_EN_SETFOCUS 0x80000702 //Sent when an edit control receives the input focus. #define WISP_CMD_EN_INPUT_KEY_DOWN 0x80000703 //Edit recive a key down #define WISP_CMD_EN_INPUT_KEY_UP 0x80000704 //Edit recive a key up #define WISP_CMD_EN_CHANGED 0x80000705 //Edit changed /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_TAB_ACTIVE_CHG 0x80000800 //Tab /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_LANGUAGE_CHANGE 0x80001000 //Ըı֪ͨеĴڶõ֪ͨ /////////////////////////////////////////////////////////////////////////////////////// #define WISP_CMD_HOTKEY 0x80002000 /////////////////////////////////////////////////////////////////////////////////////// //CommandϢ /////////////////////////////////////////////////////////////////////////////////////// class CWispBaseWnd; struct WISP_MSG { CWispBaseWnd*hWnd; CWispBaseWnd*hSrcWnd; UINT Msg; bool bMsgLBTDown; bool bMsgRBTDown; WISP_POINT MsgMouseScrPT; WISP_POINT MsgMouseWndPT; WISP_POINT MsgMouseCltPT; union { struct { UINT ID; UINT UserData; void* UserPtr; }Timer; struct { WISP_POINT BeginMouseWndPT; UINT UserData; void* UserPtr; int DeltaX; int DeltaY; }DragEvent; struct { UINT HitAreaType; UINT HitCtrlType; UINT KeyType; bool bKeyDown; UINT ScanCode; }KeyEvent; struct { UINT HitAreaType; UINT HitCtrlType; CWispBaseWnd*hWndMouseAt; int DeltaX; int DeltaY; int DeltaZ; }MouseEvent; struct { WISP_CTRL_TYPE CtrlType; //defined bellow UINT CmdMsg; UINT CmdID; int Param1; void* Param2; }Command; struct { int DeltaX; int DeltaY; }Move; struct { int nRepeat; WISP_CHAR Char; }Char; struct { UINT Event; WISP_SB_TYPE SBType; WISP_SCROLL_LONG CurPos; WISP_SCROLL_LONG Delta; }ScrollEvent; struct { UINT HitAreaType; UINT HitCtrlType; bool bKeyDown; }HitTest; //WISP_WM_HIT_TEST struct { WISP_SIZE NewSize; WISP_SIZE NewSizeDelta; }Resize; //WISP_WM_SIZE,WISP_WM_SIZING CWispBaseWnd* hOtherWnd; //WISP_WM_GET_FOCUS WISP_WM_LOST_FOCUS }; }; struct WISP_INPUT_MSG { UINT InputMsg; union { struct { int PosX; int PosY; }MousePosChg; struct { int DeltaX; int DeltaY; }MouseMove; struct { int DeltaZ; }MouseWheel; struct { UINT KeyType; }MouseBTDBClick; struct { int MilliSec; }Timer; struct { UINT KeyType; bool bKeyDown; UINT ScanCode; }KeyEvent; }; }; ////////////////////////////////////////////////////// //Ϣ ////////////////////////////////////////////////////// #define WISP_IGNORE_MSG 0xFFFFFFFF #define WISP_INVALID_MSG 0x00000000 #define WISP_WM_USER_START 0x00000001 #define WISP_WM_DEVELOP_START 0x40000000 //ⲿӲϢ #define WISP_INPUT_EVENT_START 0x70000000 #define WISP_INPUT_KEY_EVENT 0x70000001 #define WISP_INPUT_MOUSE_POS_CHG 0x70000002 #define WISP_INPUT_MOUSE_MOVE 0x70000003 #define WISP_INPUT_MOUSE_WHEEL 0x70000004 #define WISP_INPUT_MOUSE_BT_DB_CLICK 0x70000005 #define WISP_INPUT_TIMER 0x70000006 #define WISP_INPUT_EVENT_END 0x80000000 //ⲿӲϢ #define WISP_WM_SYS_START 0x80000000 #define WISP_APP_INIT 0x80000000 #define WISP_APP_EXIT 0x80000001 #define WISP_WM_PRECREATE 0x80000010 #define WISP_WM_CREATE 0x80000011 #define WISP_WM_FORM_CREATE 0x80000012 #define WISP_WM_DESTROY 0x80000013 #define WISP_WM_CLOSE 0x80000014 ////////////////////////////////////////////////////// #define WISP_WM_KEY_EVENT 0x80000020 #define WISP_WM_NON_CLIENT_MOUSE_KEY_EVENT 0x80000021 ////////////////////////////////////////////////////// #define WISP_WM_MOUSE_ENTER 0x80000030 #define WISP_WM_MOUSE_MOVE 0x80000031 #define WISP_WM_MOUSE_LEAVE 0x80000032 #define WISP_WM_MOUSE_WHEEL 0x80000033 #define WISP_WM_MOUSE_DBCLICK 0x80000034 ////////////////////////////////////////////////////// #define WISP_WM_COMMAND 0x80000040 #define WISP_WM_EVENT 0x80000041 ////////////////////////////////////////////////////// #define WISP_WM_UPDATE 0x80000100 #define WISP_WM_UPDATE_BORDER 0x80000101 #define WISP_WM_UPDATE_CAPTION 0x80000102 #define WISP_WM_UPDATE_CLIENT 0x80000103 #define WISP_WM_UPDATE_CARET 0x80000104 #define WISP_WM_UPDATE_HORZ_SCROLL 0x80000105 #define WISP_WM_UPDATE_VERT_SCROLL 0x80000106 ////////////////////////////////////////////////////// #define WISP_WM_BEGIN_MOVE 0x80000120 #define WISP_WM_END_MOVE 0x80000121 #define WISP_WM_MOVE 0x80000122 #define WISP_WM_MOVING 0x80000123 #define WISP_WM_SIZE 0x80000124 #define WISP_WM_SIZING 0x80000125 #define WISP_WM_RECALCLAYOUT 0x80000126 #define WISP_WM_PARENT_RESIZE 0x80000127 ////////////////////////////////////////////////////// #define WISP_WM_CHAR 0x80000140 ////////////////////////////////////////////////////// #define WISP_WM_SCROLL_EVENT 0x80000150 #define WISP_WM_VERT_SCROLL_MOVE 0x80000152 #define WISP_WM_HORZ_SCROLL_MOVE 0x80000153 ////////////////////////////////////////////////////// #define WISP_WM_TIMER 0x80000161 ////////////////////////////////////////////////////// #define WISP_WM_GET_FOCUS 0x80000170 #define WISP_WM_LOST_FOCUS 0x80000171 ////////////////////////////////////////////////////// #define WISP_WM_HIT_TEST 0x80000180 ////////////////////////////////////////////////////// #define WISP_WM_BEGIN_DRAG 0x80000190 #define WISP_WM_DRAG_MOVE 0x80000191 #define WISP_WM_END_DRAG 0x80000192 ////////////////////////////////////////////////////// //Ϣӳ ////////////////////////////////////////////////////// #define DECLARE_WISP_MSG_MAP virtual bool MsgProc(IN WISP_MSG*pMsg); #define DECLARE_WISP_MSG(FuncName) bool FuncName(IN WISP_MSG*pMsg); #define WISP_MSG_MAP_BEGIN(ClassName) bool ClassName::MsgProc(IN WISP_MSG*pMsg)\ {\ switch(pMsg->Msg)\ {\ case WISP_INVALID_MSG: \ return false; #define WISP_MSG_MAP_ON_COMMAND case WISP_WM_COMMAND:\ if(OnCommand(pMsg)==false)\ return false;\ break; #define WISP_MSG_MAP_ON_EVENT case WISP_WM_EVENT:\ if(OnEvent(pMsg)==false)\ return false;\ break; #define WISP_MSG_MAP(Msg,OnMsgProc) case Msg:\ if(OnMsgProc(pMsg)==false)\ return false;\ break; #define WISP_MSG_MAP_END(BaseClassName) default:\ break;\ }\ return BaseClassName::MsgProc(pMsg);\ } #define WISP_BASE_WND_MSG_MAP_END default:\ break;\ }\ return true;\ } #define WISP_MSG_MAP_DEFAULT_END(OnMsgProc,BaseClassName) default:\ return OnMsgProc(pMsg);\ }\ return BaseClassName::MsgProc(pMsg);\ } //////////////////////////////////////////////////////////////////////////////////////////// //Commandӳ //////////////////////////////////////////////////////////////////////////////////////////// #define DECLARE_WISP_MSG_CMD_MAP bool OnCommand(IN WISP_MSG*pMsg); #define DECLARE_WISP_MSG_CMD(FuncName) bool FuncName(IN WISP_MSG*pMsg); #define WISP_MSG_CMD_MAP_BEGIN(ClassName) bool ClassName::OnCommand(IN WISP_MSG*pMsg)\ {\ switch(pMsg->Command.CmdID)\ {\ case WISP_ID_NULL:\ return true; #define WISP_MSG_CMD_MAP(CmdID,OnMsgProc) case CmdID:\ if(OnMsgProc(pMsg)==false)\ return false;\ break; #define WISP_MSG_CMD_MAP_END default:\ break;\ }\ return true;\ } #define WISP_MSG_CMD_MAP_DEFAULT_END(OnMsgProc) default:\ return OnMsgProc(pMsg);\ }\ return true;\ } //////////////////////////////////////////////////////////////////////////////////////////// //Eventӳ //////////////////////////////////////////////////////////////////////////////////////////// #define DECLARE_WISP_MSG_EVENT_MAP bool OnEvent(IN WISP_MSG*pMsg); #define DECLARE_WISP_MSG_EVENT(FuncName) bool FuncName(IN WISP_MSG*pMsg); #define WISP_MSG_EVENT_MAP_BEGIN(ClassName) bool ClassName::OnEvent(IN WISP_MSG*pMsg)\ {\ switch(pMsg->Command.CmdID)\ {\ case WISP_ID_NULL:\ return false; #define WISP_MSG_EVENT_MAP(CmdID,OnMsgProc) case CmdID:\ if(OnMsgProc(pMsg)==false)\ return false;\ break; #define WISP_MSG_EVENT_MAP_END default:\ break;\ }\ return true;\ } #define WISP_MSG_EVENT_MAP_DEFAULT_END(OnMsgProc) default:\ return OnMsgProc(pMsg);\ }\ return true;\ } #endif ================================================ FILE: Project/Wisp/Source/WispMultiTabView.cpp ================================================ #include "StdAfx.h" #include "WispMultiTabView.h" WISP_MSG_MAP_BEGIN(CWispMultiTabView) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispTabWnd) CWispMultiTabView::CWispMultiTabView() { m_pToolbarRes = NULL; } bool CWispMultiTabView::OnCreate(IN WISP_MSG*pMsg) { if(m_pToolbarRes) m_TabToolbar.CreateEx(this,0,0,WISP_MULTI_TAB_TOOLBAR_CMD_ID,WISP_TBS_WINDOW); return true; } bool CWispMultiTabView::OnDestroy(IN WISP_MSG*pMsg) { return true; } bool CWispMultiTabView::OnSize(IN WISP_MSG*pMsg) { int x,y; if(m_Style & WISP_TWS_TOP) y = CENTER_ALGN(m_TabToolbar.m_WindowRect.cy,m_TabSpaceHeight); else y = m_ClientRect.cy - m_TabSpaceHeight + CENTER_ALGN(m_TabToolbar.m_WindowRect.cy,m_TabSpaceHeight); x = m_ClientRect.cx - m_TabToolbar.m_WindowRect.cx-2; if(m_TabToolbar.IsWindow()) m_TabToolbar.MoveToClient(x,y); return true; } ================================================ FILE: Project/Wisp/Source/WispMultiTabView.h ================================================ #ifndef _WISP_MULTI_TAB_VIEW_H_ #define _WISP_MULTI_TAB_VIEW_H_ #include "WispButton.h" #include "WispTabWnd.h" #include "WispToolbar.h" enum { WISP_MULTI_TAB_CMD_EXPAND_VIEW = WISP_ID_DEVELOP_START, WISP_MULTI_TAB_CMD_NEW_VIEW, WISP_MULTI_TAB_CMD_REMOVE_VIEW, WISP_MULTI_TAB_TOOLBAR_CMD_ID }; class CWispMultiTabView : public CWispTabWnd { public: CWispMultiTabView(); WISP_TOOLBAR_RES_ITEM* m_pToolbarRes; CWispToolbar m_TabToolbar; public://Ϣӳ DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnDestroy) }; #endif ================================================ FILE: Project/Wisp/Source/WispOptionForm.cpp ================================================ #include "StdAfx.h" #include "WispOptionForm.h" ////////////////////////////////////////////////////////////////////////////// //Form Resource WISP_FORM_RES_ITEM CWispOptionForm::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,540,330}, WISP_ID_NULL, WISP_WS_NULL, NULL }, { WISP_CTRL_BUTTON, {430,300,100,20}, CMD_ID_OPTION_APPLY, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Apply"), NULL, NULL }, { WISP_CTRL_BUTTON, {10,300,100,20}, CMD_ID_OPTION_RESTORE, WISP_BS_NORMAL|WISP_WS_DISABLED, WSTR("Restore"), NULL, NULL }, { WISP_CTRL_BUTTON, {120,300,100,20}, CMD_ID_OPTION_DEFAULT, WISP_BS_NORMAL, WSTR("Default"), NULL, NULL }, {WISP_CTRL_NULL} }; //Form Resource ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// //Option List WISP_PCSTR CWispOptionForm::m_NoYesList[]= { WISP_STR("No"), WISP_STR("Yes"), NULL }; void CWispOptionList::DrawCellText(int Col,CWispListItemCell*pCell,WISP_RECT*pRect) { COLORREF Color; WISP_OPTION_ITEM*pItem; if(Col!=1) goto DrawListCellText; pItem = (WISP_OPTION_ITEM*)NUM_TO_PTR(pCell->Data); if(pItem->Type == OPTION_RGB_COLORREF) { Color = *(COLORREF*)pItem->pNewValue; m_ClientDC.DrawFullRect(pRect->x, pRect->y + 2,20,pRect->cy - 4,Color); m_ClientDC.DrawRect(pRect->x, pRect->y + 2,20,pRect->cy - 4,SYS_COLOR[SC_BLACK]); } DrawListCellText: CWispList::DrawCellText(Col,pCell,pRect); } WISP_MSG_MAP_BEGIN(CWispOptionForm) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP(WISP_WM_SIZE,OnResize) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_END(CWispForm) WISP_MSG_CMD_MAP_BEGIN(CWispOptionForm) WISP_MSG_CMD_MAP(CMD_ID_OPTION_LIST,OnListCommand) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CWispOptionForm) WISP_MSG_EVENT_MAP(CMD_ID_OPTION_APPLY,OnEventApply) WISP_MSG_EVENT_MAP(CMD_ID_OPTION_RESTORE,OnEventRestore) WISP_MSG_EVENT_MAP(CMD_ID_OPTION_DEFAULT,OnEventDefault) WISP_MSG_EVENT_MAP_END CWispOptionForm::CWispOptionForm() { m_pFormRes = m_FormRes; } CWispOptionForm::~CWispOptionForm() { } bool CWispOptionForm::OnDestroy(IN WISP_MSG*pMsg) { RemoveOptionTree(NULL); return true; } bool CWispOptionForm::OnResize(IN WISP_MSG*pMsg) { m_OptionList.Resize(m_ClientRect.cx-20,m_ClientRect.cy-50); m_pRestoreBT->MoveToWindow(m_OptionList.m_ScrWindowRect.x-m_ScrWindowRect.x,m_OptionList.m_ScrWindowRect.y-m_ScrWindowRect.y+m_OptionList.m_WindowRect.cy+10); if(m_pDefaultBT->IsVisible()) m_pDefaultBT->MoveToWindow(m_pRestoreBT->m_ScrWindowRect.x + m_pRestoreBT->m_WindowRect.cx + 10 -m_ScrWindowRect.x,m_pRestoreBT->m_ScrWindowRect.y-m_ScrWindowRect.y); m_pApplyBT->MoveToWindow(m_OptionList.m_ScrWindowRect.x + m_OptionList.m_ScrWindowRect.cx - m_pApplyBT->m_WindowRect.cx - m_ScrWindowRect.x, m_pRestoreBT->m_ScrWindowRect.y-m_ScrWindowRect.y); return true; } bool CWispOptionForm::OnListCommand(IN WISP_MSG*pMsg) { HANDLE hItem; WISP_RECT rc; WISP_OPTION_ITEM*pItem; switch(pMsg->Command.CmdMsg) { case WISP_CMD_ITEM_BEGIN_EDIT: hItem = pMsg->Command.Param2; pItem = (WISP_OPTION_ITEM*)m_OptionList.GetItemData(hItem); if(pItem==NULL) return false; if(m_OptionList.GetItemCellRect(hItem,pMsg->Command.Param1,&rc)==false) return false; return ProcessOptionBeginModify(rc.x+m_OptionList.m_ScrClientRect.x,rc.y+rc.cy+m_OptionList.m_ScrClientRect.y,hItem,pItem); case WISP_CMD_ITEM_END_EDIT: hItem = pMsg->Command.Param2; pItem = (WISP_OPTION_ITEM*)m_OptionList.GetItemData(hItem); if(pItem==NULL) return false; return ProcessOptionEndModify(hItem,pItem); case WISP_CMD_ITEM_KEY_DOWN: if(pMsg->Command.Param1 == WISP_VK_F2) { hItem = m_OptionList.GetNextListItem(NULL,WISP_WLIS_SELECTED); if(hItem) { pItem = (WISP_OPTION_ITEM*)m_OptionList.GetItemData(hItem); if(pItem) m_OptionList.BeginEditItem(hItem,1); } } break; } return true; } bool CWispOptionForm::OnKeyEvent(IN WISP_MSG*pMsg) { return true; } bool CWispOptionForm::OnFormCreate(IN WISP_MSG*pMsg) { m_OptionList.Create(NULL,10,10,520,280,this,CMD_ID_OPTION_LIST,WISP_WS_THIN_BORDER|WISP_WLS_OPTION_TREE|WISP_WLS_COLUMN_TITLE|WISP_WLS_SELECTED_ALWAYS|WISP_WLS_VERT_LINE|WISP_WLS_HORZ_LINE); m_pApplyBT = (CWispButton*) GetFormItem(CMD_ID_OPTION_APPLY); m_pRestoreBT = (CWispButton*) GetFormItem(CMD_ID_OPTION_RESTORE); m_pDefaultBT = (CWispButton*) GetFormItem(CMD_ID_OPTION_DEFAULT); m_OptionList.InsertColumn(WSTR("Option Item"),m_OptionList.m_ClientRect.cx/2,WISP_WLCS_NORMAL,WispTKDIBListDIB("\\Toolbar.bmp",16,16,15)); m_OptionList.InsertColumn(WSTR("Value"),m_OptionList.m_ClientRect.cx/2,WISP_WLCS_EDITABLE,WispTKDIBListDIB("\\Toolbar.bmp",16,16,26)); InsertOptionTree(m_pOptionItem,NULL); m_nModifyItem = 0; if(m_Style & WISP_OFS_HIDE_DEFAULT_BT) m_pDefaultBT->Show(WISP_SH_HIDDEN); return true; } bool CWispOptionForm::OnEventApply(IN WISP_MSG*pMsg) { if(OptionBeforeApplyNotify()==false) return true; ApplyOptionTree(NULL); m_pApplyBT->EnableWindow(false); m_pRestoreBT->EnableWindow(false); m_nModifyItem = 0; SendCmdMsg(WISP_CMD_OPTION_APPLY); OptionApplyNotify(); UpdateClient(); return true; } bool CWispOptionForm::OnEventRestore(IN WISP_MSG*pMsg) { if(OptionBeforeRestoreNotify()==false) return true; RestoreOptionTree(NULL); m_pApplyBT->EnableWindow(false); m_pRestoreBT->EnableWindow(false); m_nModifyItem = 0; OptionRestoreNotify(); UpdateClient(); return true; } bool CWispOptionForm::OnEventDefault(IN WISP_MSG*pMsg) { if(OptionBeforeDefaultNotify()==false) return true; ReloadOptionTree(NULL); m_pApplyBT->EnableWindow(false); m_pRestoreBT->EnableWindow(false); m_pDefaultBT->EnableWindow(false); m_nModifyItem = 0; OptionDefaultNotify(); UpdateClient(); return true; } void CWispOptionForm::InsertOptionTree(WISP_OPTION_ITEM*pItem,HANDLE hParent) { HANDLE hItem; if(pItem==NULL) return; while(pItem->szText) { hItem = m_OptionList.InsertItem(pItem->szText,hParent); m_OptionList.SetItemData(hItem,0,(NUM_PTR)pItem); m_OptionList.SetItemData(hItem,1,(NUM_PTR)pItem); if(pItem->Type==OPTION_TITLE) { InsertOptionTree((WISP_OPTION_ITEM*)pItem->pValue,hItem); } else { pItem->pNewValue = (void*)new BYTE[pItem->Length]; memcpy(pItem->pNewValue,pItem->pValue,pItem->Length); } pItem++; } } void CWispOptionForm::RemoveOptionTree(HANDLE hParent) { WISP_OPTION_ITEM*pItem; HANDLE hItem = m_OptionList.GetItem(0,hParent); while(hItem) { pItem = (WISP_OPTION_ITEM*) m_OptionList.GetItemData(hItem); if(pItem->Type == OPTION_TITLE) RemoveOptionTree(hItem); else delete pItem->pNewValue; hItem = m_OptionList.GetNextItem(hItem); } } void CWispOptionForm::RestoreOptionTree(HANDLE hParent) { WISP_OPTION_ITEM*pItem; HANDLE hItem = m_OptionList.GetItem(0,hParent); while(hItem) { pItem = (WISP_OPTION_ITEM*) m_OptionList.GetItemData(hItem); if(pItem->Type == OPTION_TITLE) RestoreOptionTree(hItem); else { if(memcmp(pItem->pValue,pItem->pNewValue,pItem->Length)) { memcpy(pItem->pNewValue,pItem->pValue,pItem->Length); FillOptionValue(pItem,hItem); m_OptionList.SetItemTextColor(hItem,-1,m_OptionList.m_FontColor); } } hItem = m_OptionList.GetNextItem(hItem); } } void CWispOptionForm::ReloadOptionTree(HANDLE hParent) { WISP_OPTION_ITEM*pItem; HANDLE hItem = m_OptionList.GetItem(0,hParent); while(hItem) { pItem = (WISP_OPTION_ITEM*) m_OptionList.GetItemData(hItem); if(pItem->Type == OPTION_TITLE) ReloadOptionTree(hItem); else { memcpy(pItem->pNewValue,pItem->pValue,pItem->Length); FillOptionValue(pItem,hItem); m_OptionList.SetItemTextColor(hItem,-1,m_OptionList.m_FontColor); } hItem = m_OptionList.GetNextItem(hItem); } } void CWispOptionForm::ApplyOptionTree(HANDLE hParent) { WISP_OPTION_ITEM*pItem; HANDLE hItem = m_OptionList.GetItem(0,hParent); while(hItem) { pItem = (WISP_OPTION_ITEM*) m_OptionList.GetItemData(hItem); if(pItem->Type == OPTION_TITLE) ApplyOptionTree(hItem); else { if(memcmp(pItem->pValue,pItem->pNewValue,pItem->Length)) { memcpy(pItem->pValue,pItem->pNewValue,pItem->Length); if(pItem->pRef) (*pItem->pRef)++; FillOptionValue(pItem,hItem); m_OptionList.SetItemTextColor(hItem,-1,m_OptionList.m_FontColor); } } hItem = m_OptionList.GetNextItem(hItem); } } void CWispOptionForm::OnModify(HANDLE hItem) { m_OptionList.SetItemTextColor(hItem,-1,SYS_COLOR[SC_RED]); m_nModifyItem++; if(m_pApplyBT->IsDisabled()) m_pApplyBT->EnableWindow(true); if(m_pRestoreBT->IsDisabled()) m_pRestoreBT->EnableWindow(true); if(m_pDefaultBT->IsDisabled()) m_pDefaultBT->EnableWindow(true); } void CWispOptionForm::OnModifyRestore(HANDLE hItem) { m_OptionList.SetItemTextColor(hItem,-1,m_OptionList.m_FontColor); m_nModifyItem--; CODE_ASSERT(m_nModifyItem>=0) if(m_nModifyItem==0) { if(m_pApplyBT->IsDisabled()==false) m_pApplyBT->EnableWindow(false); if(m_pRestoreBT->IsDisabled()==false) m_pRestoreBT->EnableWindow(false); } } bool CWispOptionForm::ProcessOptionBeginModify(int x,int y,HANDLE hItem,WISP_OPTION_ITEM*pItem) { WCHAR szBuffer[MAX_FN_LEN]; int Result; switch(pItem->Type) { case OPTION_TITLE: return false; case OPTION_RGB_COLORREF: if(GetRGBColor((COLORREF*)pItem->pNewValue,(COLORREF*)pItem->pValue)==false) return false; if(*(COLORREF*)pItem->pNewValue!=*(COLORREF*)pItem->pValue) { OnModify(hItem); } return false; case OPTION_SELECT_INT: if(GetResultFromList(x,y,pItem->SelectData,&Result,*(int*)pItem->pValue)==false) return false; if(*(int*)pItem->pValue!=Result) { if(pItem->pfnValueTest==NULL || pItem->pfnValueTest(&Result)) { *(int*)pItem->pNewValue = Result; m_OptionList.SetItemText(hItem,1,pItem->SelectData[Result]); OnModify(hItem); } } else { if(*(int*)pItem->pNewValue!=Result) { *(int*)pItem->pNewValue = Result; m_OptionList.SetItemText(hItem,1,pItem->SelectData[Result]); OnModifyRestore(hItem); } } return false; case OPTION_DIR_NAME: if(GetResultFromList(x,y,pItem->SelectData,&Result)==false) return false; switch(Result) { case 0://Browse if(m_pWispBase->SelectDirForm(szBuffer,m_OptionList.GetItemText(hItem))==false) return false; if(TStrCmp(szBuffer,(WCHAR*)pItem->pValue)) { ZeroMemory(pItem->pNewValue,pItem->Length); TStrCpyLimit((WCHAR*)pItem->pNewValue,szBuffer,pItem->Length); m_OptionList.SetItemText(hItem,1,szBuffer); OnModify(hItem); } else { if(TStrCmp(szBuffer,(WCHAR*)pItem->pNewValue)) { ZeroMemory(pItem->pNewValue,pItem->Length); TStrCpyLimit((WCHAR*)pItem->pNewValue,szBuffer,pItem->Length); m_OptionList.SetItemText(hItem,1,szBuffer); OnModifyRestore(hItem); } } return false; case 2://Current Path & Edit { char szDir[MAX_FN_LEN]; GetModulePath(szDir,false); AnsiToUnicode(szDir,szBuffer,MAX_FN_LEN); m_OptionList.GetItemEditString()=szBuffer; } return true; } break; } return true; } bool CWispOptionForm::ProcessOptionEndModify(HANDLE hItem,WISP_OPTION_ITEM*pItem) { int Value; PCWSTR pStr; switch(pItem->Type) { case OPTION_INT: if(SDecStrToNum((PCWSTR)m_OptionList.GetItemEditString(),&Value)==false) return false; if(pItem->pfnValueTest && pItem->pfnValueTest(&Value)==false) return false; if(Value!=*(int*)pItem->pValue) { *(int*)pItem->pNewValue = Value; OnModify(hItem); } else { if(*(int*)pItem->pNewValue != Value) { *(int*)pItem->pNewValue = Value; OnModifyRestore(hItem); } } return true; case OPTION_STRING: pStr = (PCWSTR)m_OptionList.GetItemEditString(); if(TStrCmp(pStr,(PCWSTR)pItem->pValue)) { ZeroMemory(pItem->pNewValue,pItem->Length); TStrCpyLimit((PWSTR)pItem->pNewValue,pStr,pItem->Length); OnModify(hItem); } else { if(TStrCmp(pStr,(PCWSTR)pItem->pNewValue)) { ZeroMemory(pItem->pNewValue,pItem->Length); TStrCpyLimit((PWSTR)pItem->pNewValue,pStr,pItem->Length); OnModifyRestore(hItem); } } return true; case OPTION_DIR_NAME: pStr = (PCWSTR)m_OptionList.GetItemEditString(); if(TStrCmp(pStr,(PCWSTR)pItem->pValue)) { char szDir[MAX_FN_LEN]; UnicodeToAnsi(pStr,szDir,MAX_FN_LEN); if(gpFileIO->IsDir(szDir)==false) return false; ZeroMemory(pItem->pNewValue,pItem->Length); TStrCpyLimit((PWSTR)pItem->pNewValue,pStr,pItem->Length); OnModify(hItem); } else { if(TStrCmp(pStr,(PCWSTR)pItem->pNewValue)) { ZeroMemory(pItem->pNewValue,pItem->Length); TStrCpyLimit((PWSTR)pItem->pNewValue,pStr,pItem->Length); OnModifyRestore(hItem); } } return true; } return true; } void CWispOptionForm::FillOptionValue(WISP_OPTION_ITEM*pItem,HANDLE hItem) { switch(pItem->Type) { case OPTION_INT: m_OptionList.SetItemNum(hItem,1,*(int*)pItem->pValue,WSTR("%d")); break; case OPTION_SELECT_INT: { int Start = 0; WISP_PCSTR szText = pItem->SelectData[*(int*)pItem->pValue]; if(szText[0]=='%') { if(szText[1]=='d') Start = 2; } m_OptionList.SetItemText(hItem,1,&szText[Start]); } break; case OPTION_STRING: case OPTION_DIR_NAME: m_OptionList.SetItemText(hItem,1, (WCHAR*)pItem->pValue); break; } } void CWispOptionForm::FillOptionTreeValue(HANDLE hParent) { WISP_OPTION_ITEM*pItem; HANDLE hItem = m_OptionList.GetItem(0,hParent); while(hItem) { pItem = (WISP_OPTION_ITEM*) m_OptionList.GetItemData(hItem); if(pItem->Type == OPTION_TITLE) { FillOptionTreeValue(hItem); } else { FillOptionValue(pItem,hItem); memcpy(pItem->pNewValue,pItem->pValue,pItem->Length); } hItem = m_OptionList.GetNextItem(hItem); } } ================================================ FILE: Project/Wisp/Source/WispOptionForm.h ================================================ #ifndef _WISP_OPTION_FORM_H_ #define _WISP_OPTION_FORM_H_ #include "WispForm.h" #include "WispList.h" #include "WispButton.h" #include "WispEdit.h" #include "WispMisc.h" typedef bool (*FN_ValueTest)(void*pValue); enum { CMD_ID_OPTION_LIST = WISP_ID_DEVELOP_START, CMD_ID_OPTION_APPLY, CMD_ID_OPTION_RESTORE, CMD_ID_OPTION_DEFAULT, }; enum WISP_OPTION_TYPE { OPTION_TITLE, OPTION_INT, OPTION_SELECT_INT, OPTION_STRING, OPTION_DIR_NAME, OPTION_RGB_COLORREF, }; #define WISP_OFS_HIDE_DEFAULT_BT 0x00010000 #define WISP_CMD_OPTION_APPLY WISP_CMD_DEVELOP_START struct WISP_OPTION_ITEM { WISP_PCSTR szText; // WISP_OPTION_TYPE Type; // void* pValue; //ַ int Length; // WISP_PCSTR* SelectData; //ѡбַ飬 "Yes","NO",NULL FN_ValueTest pfnValueTest; //Ϸ麯ΪգҲģTValueTest int *pRef; //ı֪ͨ޸ľͻѴֵ+1 void* pNewValue; //űֵڲʹ }; template bool TValueTest(void*pValue) { return *(TYPE*)pValue>=Min && *(TYPE*)pValue<=Max; } class CWispOptionList : public CWispList { public: void DrawCellText(int Col,CWispListItemCell*pCell,WISP_RECT*pRect); }; class CWispOptionForm : public CWispForm { public: CWispOptionForm(); ~CWispOptionForm(); public: static WISP_PCSTR m_NoYesList[]; static WISP_FORM_RES_ITEM m_FormRes[]; WISP_OPTION_ITEM*m_pOptionItem; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate) DECLARE_WISP_MSG(OnResize) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG_CMD_MAP DECLARE_WISP_MSG(OnListCommand) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG(OnEventApply) DECLARE_WISP_MSG(OnEventRestore) DECLARE_WISP_MSG(OnEventDefault) virtual bool OptionBeforeApplyNotify(){return true;} virtual void OptionApplyNotify(){} virtual bool OptionBeforeRestoreNotify(){return true;} virtual void OptionRestoreNotify(){} virtual bool OptionBeforeDefaultNotify(){return true;} virtual void OptionDefaultNotify(){} virtual void OnModify(HANDLE hItem); virtual void OnModifyRestore(HANDLE hItem); void InsertOptionTree(WISP_OPTION_ITEM*pItem,HANDLE hParent); void RemoveOptionTree(HANDLE hParent); void RestoreOptionTree(HANDLE hParent); void ReloadOptionTree(HANDLE hParent); void ApplyOptionTree(HANDLE hParent); bool ProcessOptionBeginModify(int x,int y,HANDLE hItem,WISP_OPTION_ITEM*pItem); bool ProcessOptionEndModify(HANDLE hItem,WISP_OPTION_ITEM*pItem); void FillOptionValue(WISP_OPTION_ITEM*pItem,HANDLE hItem); void FillOptionTreeValue(HANDLE hParent = NULL); int m_nModifyItem; CWispOptionList m_OptionList; CWispButton*m_pApplyBT; CWispButton*m_pRestoreBT; CWispButton*m_pDefaultBT; }; #endif ================================================ FILE: Project/Wisp/Source/WispProgress.cpp ================================================ #include "StdAfx.h" #include "WispProgress.h" WISP_MSG_MAP_BEGIN(CWispProgress) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP_END(CWispBaseWnd) CWispProgress::CWispProgress(void) { m_nStep = 1; m_nPos = 0; m_nLower= 0; m_nUpper= 9; m_CtrlType = WISP_CTRL_PROGRESS; } CWispProgress::~CWispProgress(void) { } bool CWispProgress::OnUpdate(IN WISP_MSG*pMsg) { WISP_RECT Rect; Rect.x = Rect.y = 0; Rect.cx = m_WindowRect.cx; Rect.cy = m_WindowRect.cy; if( !(m_Style&WISP_WS_BACK_TRANS) ) m_pWispBase->m_pCurDrawObj->DrawCtrlClient(&m_WindowDC, &Rect); int nPrecent = m_nPos*1000/(m_nUpper-m_nLower); m_pWispBase->m_pCurDrawObj->DrawProgress(&m_WindowDC, &Rect, m_Style, nPrecent); return true; } void CWispProgress::SetRange(int nLower, int nUpper) { CODE_ASSERT(nUpper>nLower); m_nLower = nLower; m_nUpper = nUpper; Update(); } void CWispProgress::StepIt() { m_nPos += m_nStep; if(m_nPos>m_nUpper) m_nPos = m_nLower; else if(m_nPosm_nUpper) m_nPos = m_nLower; else if(m_nPosCommand.CmdMsg==WISP_CMD_EN_INPUT_KEY_UP) { UpdateColorValue(); } return true; } CWispRGBSelect::CWispRGBSelect() { m_pFormRes = m_FormRes; m_RGBClr = 0; } bool CWispRGBSelect::OnFormCreate(IN WISP_MSG*pMsg) { m_pRGBGroupCtrl = GetFormItem(CMD_ID_RGB_SELECT_GROUP); m_pRedEdit = (CWispEdit*)GetFormItem(CMD_ID_RGB_R); m_pGreenEdit = (CWispEdit*)GetFormItem(CMD_ID_RGB_G); m_pBlueEdit = (CWispEdit*)GetFormItem(CMD_ID_RGB_B); m_RGBDIB.Create(m_pRGBGroupCtrl->m_WindowRect.cx - 55,m_pRGBGroupCtrl->m_WindowRect.cy - 25,WISP_DIB_BITMAP); m_LumDIB.Create(20,m_RGBDIB.m_Rect.cy,WISP_DIB_BITMAP); FillRGBRect(&m_RGBDIB); m_RGBRect.x = m_pRGBGroupCtrl->m_WindowRect.x + 15; m_RGBRect.y = m_pRGBGroupCtrl->m_WindowRect.y + 20; m_RGBRect.cx = m_RGBDIB.m_Rect.cx; m_RGBRect.cy = m_RGBDIB.m_Rect.cy; m_RGBFrameRect.x = m_RGBRect.x - 1; m_RGBFrameRect.y = m_RGBRect.y - 1; m_RGBFrameRect.cx = m_RGBRect.cx + 2; m_RGBFrameRect.cy = m_RGBRect.cy + 2; m_LumRect.x = m_RGBRect.x + m_RGBRect.cx + 10; m_LumRect.y = m_RGBRect.y; m_LumRect.cx = m_LumDIB.m_Rect.cx; m_LumRect.cy = m_LumDIB.m_Rect.cy; m_LumDragRect = m_LumRect; m_LumDragRect.cx += 5; m_LumDragRect.cy += 10; m_LumDragRect.y -= 5; m_LumFrameRect.x = m_LumRect.x - 1; m_LumFrameRect.y = m_LumRect.y - 1; m_LumFrameRect.cx = m_LumRect.cx + 2; m_LumFrameRect.cy = m_LumRect.cy + 2; m_CurRGBRect.x = 270; m_CurRGBRect.y = 10; m_CurRGBRect.cx = 60; m_CurRGBRect.cy = 40; m_PTSelected.x = m_RGBRect.x + m_RGBRect.cx/2; m_PTSelected.y = m_RGBRect.y + m_RGBRect.cy/2; m_LumYPos = m_LumRect.y + m_LumRect.cy/2; UpdateLumColor(false); ShowColorValue(); return true; } bool CWispRGBSelect::OnDestroy(IN WISP_MSG*pMsg) { m_RGBDIB.Destroy(); m_LumDIB.Destroy(); return true; } bool CWispRGBSelect::OnUpdateClient(IN WISP_MSG*pMsg) { if(CWispForm::OnUpdateClient(pMsg)==false) return false; m_ClientDC.DrawDIB(&m_RGBRect,&m_RGBDIB); m_ClientDC.DrawFrameRect(&m_RGBFrameRect,false); m_ClientDC.DrawDIB(&m_LumRect,&m_LumDIB); m_ClientDC.DrawFrameRect(&m_LumFrameRect,false); m_ClientDC.DrawHLine(m_PTSelected.x-5,m_PTSelected.x-2,m_PTSelected.y,0); m_ClientDC.DrawHLine(m_PTSelected.x+2,m_PTSelected.x+5,m_PTSelected.y,0); m_ClientDC.DrawVLine(m_PTSelected.x,m_PTSelected.y-5,m_PTSelected.y-2,0); m_ClientDC.DrawVLine(m_PTSelected.x,m_PTSelected.y+2,m_PTSelected.y+5,0); m_ClientDC.DrawHLine(m_LumRect.x+m_LumRect.cx,m_LumRect.x+m_LumRect.cx+5,m_LumYPos,0); m_ClientDC.DrawLine(m_LumRect.x+m_LumRect.cx,m_LumYPos,m_LumRect.x+m_LumRect.cx+3,m_LumYPos-3,0); m_ClientDC.DrawLine(m_LumRect.x+m_LumRect.cx,m_LumYPos,m_LumRect.x+m_LumRect.cx+3,m_LumYPos+3,0); m_ClientDC.DrawFullRect(&m_CurRGBRect,m_RGBClr); m_ClientDC.DrawFrameRect(&m_CurRGBRect); return false; } bool CWispRGBSelect::OnMouseMove(IN WISP_MSG*pMsg) { if(pMsg->bMsgLBTDown) { if(PtInRect(&m_RGBRect,pMsg->MsgMouseCltPT)) { m_PTSelected = pMsg->MsgMouseCltPT; UpdateLumColor(); UpdateClient(); } else if(PtInRect(&m_LumDragRect,pMsg->MsgMouseCltPT)) { m_LumYPos = pMsg->MsgMouseCltPT.y; MIN_LIMIT(m_LumYPos,m_LumRect.y); MAX_LIMIT(m_LumYPos,m_LumRect.y+m_LumRect.cy-1); UpdateColor(); UpdateClient(); } } return true; } bool CWispRGBSelect::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.bKeyDown && pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { if(PtInRect(&m_RGBRect,pMsg->MsgMouseCltPT)) { m_PTSelected = pMsg->MsgMouseCltPT; UpdateLumColor(); UpdateClient(); } else if(PtInRect(&m_LumDragRect,pMsg->MsgMouseCltPT)) { m_LumYPos = pMsg->MsgMouseCltPT.y; UpdateColor(); UpdateClient(); } } return true; } void CWispRGBSelect::FillRGBRect(CWispDIB*pRGBDIB) { COLORREF color; WISP_POINT pt; CWispDC dc; dc.AttachDIB(pRGBDIB); int nStep = 1; for (int i= 0;im_Rect.cy;i += nStep) { for(int j=0;jm_Rect.cx;j += nStep) { pt.x = j; pt.y = pRGBDIB->m_Rect.cy - i - nStep; color = HLStoRGB_ONE((double)j/(double)pRGBDIB->m_Rect.cx, DEFAULT_LumINANCE, (double)i/(double)pRGBDIB->m_Rect.cy); dc.DrawPixel(pt.x,pt.y,color); } } } void CWispRGBSelect::UpdateLumColor(bool bGather) { CWispDC dc; double dblLum,dblSat,dblHue; if(bGather) m_RGBDIB.GetPixel(m_PTSelected.x - m_RGBRect.x,m_PTSelected.y - m_RGBRect.y,&m_RGBClr); RGBtoHSL(m_RGBClr,&dblHue,&dblSat,&dblLum); dc.AttachDIB(&m_LumDIB); dc.DrawHLine(0,m_LumRect.cx-1,0,WISP_RGB(255,255,255)); for (int y =1; y < m_LumRect.cy-1; y++) { dc.DrawHLine(0,m_LumRect.cx-1,y,HLStoRGB_ONE (dblHue, ((double)(m_LumRect.cy-y))/(double)m_LumRect.cy, dblSat)); } dc.DrawHLine(0,m_LumRect.cx-1,m_LumRect.cy-1,WISP_RGB(0,0,0)); ShowColorValue(); } void CWispRGBSelect::UpdateColor() { m_LumDIB.GetPixel(0,m_LumYPos - m_LumRect.y,&m_RGBClr); ShowColorValue(); } void CWispRGBSelect::UpdateColorValue() { DWORD r,g,b; if(USDecStrToNum((WISP_PCSTR)m_pRedEdit->m_WndText,&r)==false || r>255) return; if(USDecStrToNum((WISP_PCSTR)m_pGreenEdit->m_WndText,&g)==false || g>255) return; if(USDecStrToNum((WISP_PCSTR)m_pBlueEdit->m_WndText,&b)==false || b>255) return; m_RGBClr = WISP_RGB(r,g,b); UpdateClient(); } void CWispRGBSelect::ShowColorValue() { CWispString String; String.Format(WSTR("%d"),WISP_RGB_R(m_RGBClr)); m_pRedEdit->SetWindowText(String); String.Format(WSTR("%d"),WISP_RGB_G(m_RGBClr)); m_pGreenEdit->SetWindowText(String); String.Format(WSTR("%d"),WISP_RGB_B(m_RGBClr)); m_pBlueEdit->SetWindowText(String); } void RGBtoHSL( COLORREF rgb, double *H, double *S, double *L ) { double delta; double r = (double)WISP_RGB_R(rgb)/255; double g = (double)WISP_RGB_G(rgb)/255; double b = (double)WISP_RGB_B(rgb)/255; double cmax = max(r, max(g, b)); double cmin = min(r, min(g, b)); *L=(cmax+cmin)/2.0; if(cmax==cmin) { *S = 0; *H = 0; // it's really undefined } else { if(*L < 0.5) *S = (cmax-cmin)/(cmax+cmin); else *S = (cmax-cmin)/(2.0-cmax-cmin); delta = cmax - cmin; if(r==cmax) *H = (g-b)/delta; else if(g==cmax) *H = 2.0 +(b-r)/delta; else *H=4.0+(r-g)/delta; *H /= 6.0; if(*H < 0.0) *H += 1; } } COLORREF HLStoRGB_ONE( double H, double L, double S ) { double r, g, b; double m1, m2; if(S==0) { r=g=b=L; } else { if(L <=0.5) m2 = L*(1.0+S); else m2 = L+S-L*S; m1 = 2.0*L-m2; r = HueToRGB(m1, m2, H+1.0/3.0); g = HueToRGB(m1, m2, H); b = HueToRGB(m1, m2, H-1.0/3.0); } return WISP_RGB((BYTE)(r*255), (BYTE)(g*255), (BYTE)(b*255)); } double HueToRGB(double m1, double m2, double h ) { if( h < 0 ) h += 1.0; if( h > 1 ) h -= 1.0; if( 6.0*h < 1 ) return (m1+(m2-m1)*h*6.0); if( 2.0*h < 1 ) return m2; if( 3.0*h < 2.0 ) return (m1+(m2-m1)*((2.0/3.0)-h)*6.0); return m1; } ================================================ FILE: Project/Wisp/Source/WispRGBSelect.h ================================================ #ifndef _WISP_RGB_SELECT_H_ #define _WISP_RGB_SELECT_H_ #include "WispButton.h" #include "WispEdit.h" #include "WispForm.h" class CWispRGBSelect : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: CWispRGBSelect(); DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnMouseMove); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG_CMD_MAP; DECLARE_WISP_MSG_CMD(OnCmdGetCmd); void FillRGBRect(CWispDIB*pRGBDIB); void UpdateLumColor(bool bGather = true); void UpdateColor(); void UpdateColorValue(); void ShowColorValue(); WISP_RECT m_RGBFrameRect; WISP_RECT m_RGBRect; WISP_RECT m_LumFrameRect; WISP_RECT m_LumRect; WISP_RECT m_LumDragRect; WISP_RECT m_CurRGBRect; WISP_POINT m_PTSelected; int m_LumYPos; CWispDIB m_RGBDIB; CWispDIB m_LumDIB; CWispBaseWnd* m_pRGBGroupCtrl; CWispEdit* m_pRedEdit; CWispEdit* m_pGreenEdit; CWispEdit* m_pBlueEdit; COLORREF m_RGBClr; }; #define DEFAULT_LumINANCE 0.50f void RGBtoHSL( COLORREF rgb, double *H, double *S, double *L ); double HueToRGB(double m1, double m2, double h ); COLORREF HLStoRGB_ONE( double H, double L, double S ); #endif ================================================ FILE: Project/Wisp/Source/WispRadioBox.cpp ================================================ #include "StdAfx.h" #include "WispRadioBox.h" #include "WispForm.h" WISP_MSG_MAP_BEGIN(CWispRadioBox) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP_END(CWispBaseWnd) CWispRadioBox::CWispRadioBox(void) { m_bIsMultiLine = false; m_bMouseDown = false; m_bMouseIn = false; m_CtrlType = WISP_CTRL_RADIO_BOX; } bool CWispRadioBox::InitWnd() { if(CWispBaseWnd::InitWnd()==false) return false; m_Style &= ~(WISP_WS_CAPTION|WISP_WS_BT_MAX|WISP_WS_SIZABLE|WISP_WS_BT_MIN|WISP_WS_BT_CLOSE|WISP_WS_BORDER); if(m_Style & WISP_RBS_PUSHLIKE) m_Style |= WISP_WS_THIN_BORDER; m_Style|=WISP_WS_BACK_TRANS; if(m_Style & WISP_RBS_MULTILINE) m_bIsMultiLine = true; if(m_Style & WISP_RBS_PUSHLIKE) { m_TextRect.x = m_WindowRect.x; m_TextRect.y = m_WindowRect.y; m_TextRect.cx = m_WindowRect.cx; m_TextRect.cy = m_WindowRect.cy; m_CheckBoxRect.x = m_TextRect.x; m_CheckBoxRect.y = m_TextRect.y; m_CheckBoxRect.cx = m_TextRect.cx; m_CheckBoxRect.cy = m_TextRect.cy; } else { if(m_Style & WISP_RBS_RIGHT) { m_CheckBoxRect.x = m_WindowRect.x + m_WindowRect.cx - WISP_CHECKBOX_WIDTH-4; m_CheckBoxRect.cx = WISP_CHECKBOX_WIDTH; m_CheckBoxRect.cy = WISP_CHECKBOX_HEIGH; m_CheckBoxRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_RBS_TOP) m_CheckBoxRect.y = m_WindowRect.y; else if(m_Style & WISP_RBS_BOTTOM) m_CheckBoxRect.y = m_WindowRect.y + m_WindowRect.cy - WISP_CHECKBOX_HEIGH; m_TextRect.x = m_WindowRect.x; m_TextRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_RBS_TOP) m_TextRect.y = m_WindowRect.y; else if(m_Style & WISP_RBS_BOTTOM) m_TextRect.y = m_WindowRect.y + m_WindowRect.cy - m_WindowDC.m_pFont->m_Height; m_TextRect.cx = m_CheckBoxRect.x - m_TextRect.x - WISP_TEXT_CHECKBOX_DISTANCE; if(m_Style & WISP_RBS_MULTILINE) m_TextRect.cy = m_WindowRect.cy; else { m_TextRect.cy = m_WindowDC.m_pFont->m_Height; if(m_WindowDC.m_pFont->m_Height > WISP_CHECKBOX_HEIGH) { m_CheckBoxRect.y += (m_WindowDC.m_pFont->m_Height - WISP_CHECKBOX_HEIGH) / 2 ; } } } else { m_CheckBoxRect.x = m_WindowRect.x; m_CheckBoxRect.cx = WISP_CHECKBOX_WIDTH; m_CheckBoxRect.cy = WISP_CHECKBOX_HEIGH; m_CheckBoxRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_RBS_TOP) m_CheckBoxRect.y = m_WindowRect.y; else if(m_Style & WISP_RBS_BOTTOM) m_CheckBoxRect.y = m_WindowRect.y + m_WindowRect.cy - WISP_CHECKBOX_HEIGH; m_TextRect.x = m_CheckBoxRect.x + m_CheckBoxRect.cx + WISP_TEXT_CHECKBOX_DISTANCE; m_TextRect.y = m_WindowRect.y + (m_WindowRect.cy - WISP_CHECKBOX_HEIGH) / 2; if(m_Style & WISP_RBS_TOP) m_TextRect.y = m_WindowRect.y; else if(m_Style & WISP_RBS_BOTTOM) m_TextRect.y = m_WindowRect.y + m_WindowRect.cy - m_WindowDC.m_pFont->m_Height; m_TextRect.cx = m_WindowRect.cx - (m_TextRect.x - m_WindowRect.x); if(m_Style & WISP_RBS_MULTILINE) m_TextRect.cy = m_WindowRect.cy; else { m_TextRect.cy = m_WindowDC.m_pFont->m_Height; if(m_WindowDC.m_pFont->m_Height > WISP_CHECKBOX_HEIGH) { m_CheckBoxRect.y += (m_WindowDC.m_pFont->m_Height - WISP_CHECKBOX_HEIGH) / 2 ; } } } } return true; } bool CWispRadioBox::OnUpdate(IN WISP_MSG*pMsg) { if( (m_Style&WISP_WS_BACK_TRANS)==0) m_pWispBase->m_pCurDrawObj->DrawCtrlClient(&m_WindowDC, &m_WindowRect); if((m_Style & WISP_RBS_PUSHLIKE)==0) { UINT DIBIndex; if(IsChecked()) DIBIndex = (m_bMouseDown && m_bMouseIn)?WISP_SSI_REDIOBOX_SELECTED_DRAK:WISP_SSI_REDIOBOX_SELECTED; else DIBIndex = (m_bMouseDown && m_bMouseIn)?WISP_SSI_REDIOBOX_UNSELECTED_DRAK:WISP_SSI_REDIOBOX_UNSELECTED; m_WindowDC.DrawSystemStandardIcon(m_CheckBoxRect,DIBIndex); } DrawCaption(); return false; } // ʾıϢ void CWispRadioBox::DrawCaption(void) { WISP_RECT Rect; INT uFormat = WISP_DT_VCENTER; //ȱʡıʾ ,м. Rect.x = m_TextRect.x; Rect.y = m_TextRect.y; Rect.cx = m_TextRect.cx; Rect.cy = m_TextRect.cy; if(m_Style & WISP_RBS_PUSHLIKE) { uFormat |= WISP_DT_CENTER; if(m_bMouseDown && m_bMouseIn) { Rect.x = m_TextRect.x + 1; } } if(!m_bIsMultiLine) uFormat |= WISP_DT_SINGLELINE; if(m_Style & WISP_RBS_BOTTOM) uFormat |= WISP_DT_BOTTOM; if(IsDisabled()) m_WindowDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRAY]); m_WindowDC.DrawString(m_WndText,&Rect,uFormat); if(IsDisabled()) m_WindowDC.RestoreTextColor(); } bool CWispRadioBox::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON) { if(pMsg->KeyEvent.bKeyDown) OnMouseLDown(pMsg); else { if(OnMouseLUp(pMsg)) { WISP_MSG Msg; Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= m_CtrlType; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_CB_CLICK; Msg.Command.Param1 = IsChecked(); if(SEND_MSG(&Msg)) { Msg.hWnd=m_OwnerWnd; Msg.Msg=WISP_WM_EVENT; POST_MSG(&Msg); } } } Update(); } return true; } bool CWispRadioBox::OnMouseLDown(IN WISP_MSG*pMsg) { m_bMouseDown = true; return true; } bool CWispRadioBox::OnMouseLUp(IN WISP_MSG*pMsg) { if(m_bMouseIn&&m_bMouseDown) { if(IsChecked()==false) Check(true); m_bMouseDown = false; return true; } return false; } bool CWispRadioBox::OnMouseLeave(IN WISP_MSG*pMsg) { m_bMouseIn = false; if(m_bMouseDown) { if(pMsg->bMsgLBTDown==false) m_bMouseDown=false; return false; } return true; } bool CWispRadioBox::OnMouseMove(IN WISP_MSG*pMsg) { m_bMouseIn = true; return true; } void CWispRadioBox::DrawBorder() { if(m_Style & WISP_RBS_FLAT) { if(IsChecked() || (m_bMouseDown && m_bMouseIn)) m_WindowDC.DrawFrameRect(&m_WindowRect,false,2); else m_WindowDC.DrawFrameRect(&m_WindowRect,true,2); } else { m_pWispBase->m_pCurDrawObj->DrawCtrlBorder(&m_WindowDC, &m_WindowRect,2); } } void CWispRadioBox::Check(bool bCheck) { if(bCheck) { if(IsChecked()==false) { m_Style|=WISP_WS_MARKED; UpdateRelation(); Update(); } } else { if(IsChecked()) { m_Style&=~WISP_WS_MARKED; Update(); } } } void CWispRadioBox::UpdateRelation() { CWispForm*pForm; if(m_ParentWnd->m_CtrlType!=WISP_CTRL_FORM) return; pForm = (CWispForm*)m_ParentWnd; TMap::IT Iter=pForm->m_FormItemMap.Find(m_CmdID-1); while(Iter!=pForm->m_FormItemMap.End()) { if((*Iter)->m_CtrlType!=WISP_CTRL_RADIO_BOX) break; CWispRadioBox*pRadioBox = (CWispRadioBox*)*Iter; if(pRadioBox->IsChecked()) pRadioBox->Check(false); Iter=pForm->m_FormItemMap.Find(pRadioBox->m_CmdID-1); } Iter=pForm->m_FormItemMap.Find(m_CmdID+1); while(Iter!=pForm->m_FormItemMap.End()) { if((*Iter)->m_CtrlType!=WISP_CTRL_RADIO_BOX) break; CWispRadioBox*pRadioBox = (CWispRadioBox*)*Iter; if(pRadioBox->IsChecked()) pRadioBox->Check(false); Iter=pForm->m_FormItemMap.Find(pRadioBox->m_CmdID+1); } } ================================================ FILE: Project/Wisp/Source/WispRadioBox.h ================================================ #ifndef _WISP_REDIOBOX_H_ #define _WISP_REDIOBOX_H_ #include "WispWnd.h" #include "Utility.h" #define WISP_RBS_NORMAL WISP_RBS_TEXTLEFT #define WISP_RBS_MULTILINE 0x80000000 #define WISP_RBS_PUSHLIKE 0x40000000 #define WISP_RBS_TEXTLEFT 0x20000000 #define WISP_RBS_ICON 0x10000000 #define WISP_RBS_BMP 0x08000000 #define WISP_RBS_NOTIFY 0x04000000 #define WISP_RBS_RIGHT 0x02000000 #define WISP_RBS_RTLREADING 0x01000000 #define WISP_RBS_STATICEDGE 0x00800000 #define WISP_RBS_TABSTOP 0x00400000 #define WISP_RBS_BOTTOM 0x00080000 #define WISP_RBS_TOP 0x00040000 #define WISP_RBS_FLAT 0x00020000 #define WISP_RBS_CLIENTEDGE 0x00010000 #define WISP_CHECKBOX_WIDTH WISP_SSI_CHECKBOX_SIZE+2 #define WISP_CHECKBOX_HEIGH WISP_SSI_CHECKBOX_SIZE+2 #define WISP_TEXT_CHECKBOX_DISTANCE 0x6 class CWispRadioBox :public CWispBaseWnd { public: CWispRadioBox(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnMouseLDown); DECLARE_WISP_MSG(OnMouseLUp); DECLARE_WISP_MSG(OnMouseLeave); DECLARE_WISP_MSG(OnMouseMove); public: virtual bool InitWnd(); private: // ʾֵľ CWispRect m_TextRect; CWispRect m_CheckBoxRect; public: // Ƿֶ֧ı bool m_bIsMultiLine; // ȡ void DrawBorder(); void DrawCheckBox(IN WISP_MSG*pMsg); // ʾıϢ void DrawCaption(void); public: void Check(bool bCheck=true); bool IsChecked(){return (m_Style&WISP_WS_MARKED)!=0;} void UpdateRelation(); public: // Ƿ񱻰 bool m_bMouseDown; // Ƿڱ bool m_bMouseIn; }; #endif /* _WISP_REDIOBOX_H_ */ ================================================ FILE: Project/Wisp/Source/WispRichEdit.cpp ================================================ #include "StdAfx.h" #include "WispRichEdit.h" ================================================ FILE: Project/Wisp/Source/WispRichEdit.h ================================================ #ifndef _WISP_RICH_EDIT_H_ #define _WISP_RICH_EDIT_H_ class CWispRichEdit : public CWispEdit { public: CWispRichEdit(); ~CWispRichEdit(); public: }; #endif ================================================ FILE: Project/Wisp/Source/WispSoftKeyboard.cpp ================================================ #include "StdAfx.h" #include "WispSoftKeyboard.h" #include "WispButton.h" #include "WispCheckBox.h" #define WISP_SKB_BT_COUNT (sizeof(m_SoftKeyTable)/sizeof(WISP_SKB_KEY)) WISP_SKB_KEY CWispSoftKeyboard::m_SoftKeyTable[]= { {WISP_STR("ESC"), WISP_VK_ESCAPE, {2 ,2,22,20}}, {WISP_STR("F1"), WISP_VK_F1, {24*2-2 ,2,22,20}}, {WISP_STR("F2"), WISP_VK_F2, {24*3-2 ,2,22,20}}, {WISP_STR("F3"), WISP_VK_F3, {24*4-2 ,2,22,20}}, {WISP_STR("F4"), WISP_VK_F4, {24*5-2 ,2,22,20}}, {WISP_STR("F5"), WISP_VK_F5, {24*7-10,2,22,20}}, {WISP_STR("F6"), WISP_VK_F6, {24*8-10,2,22,20}}, {WISP_STR("F7"), WISP_VK_F7, {24*9-10,2,22,20}}, {WISP_STR("F8"), WISP_VK_F8, {24*10-10,2,22,20}}, {WISP_STR("F9"), WISP_VK_F9, {24*11+2,2,22,20}}, {WISP_STR("F10"), WISP_VK_F10, {24*12+2,2,22,20}}, {WISP_STR("F11"), WISP_VK_F11, {24*13+2,2,22,20}}, {WISP_STR("F12"), WISP_VK_F12, {24*14+2,2,22,20}}, {WISP_STR("`"), WISP_VK_OEM_3, {2 ,6+22,22,20}}, {WISP_STR("1"), WISP_VK_1, {2+24*1 ,6+22,22,20}}, {WISP_STR("2"), WISP_VK_2, {2+24*2 ,6+22,22,20}}, {WISP_STR("3"), WISP_VK_3, {2+24*3 ,6+22,22,20}}, {WISP_STR("4"), WISP_VK_4, {2+24*4 ,6+22,22,20}}, {WISP_STR("5"), WISP_VK_5, {2+24*5 ,6+22,22,20}}, {WISP_STR("6"), WISP_VK_6, {2+24*6 ,6+22,22,20}}, {WISP_STR("7"), WISP_VK_7, {2+24*7 ,6+22,22,20}}, {WISP_STR("8"), WISP_VK_8, {2+24*8 ,6+22,22,20}}, {WISP_STR("9"), WISP_VK_9, {2+24*9 ,6+22,22,20}}, {WISP_STR("0"), WISP_VK_0, {2+24*10,6+22,22,20}}, {WISP_STR("-"), WISP_VK_SUBTRACT, {2+24*11,6+22,22,20}}, {WISP_STR("="), WISP_VK_OEM_PLUS, {2+24*12,6+22,22,20}}, {WISP_STR("\\"), WISP_VK_SEPARATOR, {2+24*13,6+22,22,20}}, {WISP_STR("<-"), WISP_VK_BACK, {2+24*14,6+22,22,20}}, {WISP_STR("TAB"), WISP_VK_TAB, {2 ,6+22*2,32,20}}, {WISP_STR("Q"), WISP_VK_Q, {2+34 ,6+22*2,22,20}}, {WISP_STR("W"), WISP_VK_W, {2+34+24 ,6+22*2,22,20}}, {WISP_STR("E"), WISP_VK_E, {2+34+24*2 ,6+22*2,22,20}}, {WISP_STR("R"), WISP_VK_R, {2+34+24*3 ,6+22*2,22,20}}, {WISP_STR("T"), WISP_VK_T, {2+34+24*4 ,6+22*2,22,20}}, {WISP_STR("Y"), WISP_VK_Y, {2+34+24*5 ,6+22*2,22,20}}, {WISP_STR("U"), WISP_VK_U, {2+34+24*6 ,6+22*2,22,20}}, {WISP_STR("I"), WISP_VK_I, {2+34+24*7 ,6+22*2,22,20}}, {WISP_STR("O"), WISP_VK_O, {2+34+24*8 ,6+22*2,22,20}}, {WISP_STR("P"), WISP_VK_P, {2+34+24*9 ,6+22*2,22,20}}, {WISP_STR("["), WISP_VK_LSQUARE_BRACKET,{2+34+24*10 ,6+22*2,22,20}}, {WISP_STR("]"), WISP_VK_RSQUARE_BRACKET,{2+34+24*11 ,6+22*2,22,20}}, {WISP_STR("Caps"), WISP_VK_CAPS_LOCK, {2 ,6+22*3,40,20}}, {WISP_STR("A"), WISP_VK_A, {2+42 ,6+22*3,22,20}}, {WISP_STR("S"), WISP_VK_S, {2+42+24 ,6+22*3,22,20}}, {WISP_STR("D"), WISP_VK_D, {2+42+24*2 ,6+22*3,22,20}}, {WISP_STR("F"), WISP_VK_F, {2+42+24*3 ,6+22*3,22,20}}, {WISP_STR("G"), WISP_VK_G, {2+42+24*4 ,6+22*3,22,20}}, {WISP_STR("H"), WISP_VK_H, {2+42+24*5 ,6+22*3,22,20}}, {WISP_STR("J"), WISP_VK_J, {2+42+24*6 ,6+22*3,22,20}}, {WISP_STR("K"), WISP_VK_K, {2+42+24*7 ,6+22*3,22,20}}, {WISP_STR("L"), WISP_VK_L, {2+42+24*8 ,6+22*3,22,20}}, {WISP_STR(";"), WISP_VK_SEMI, {2+42+24*9 ,6+22*3,22,20}}, {WISP_STR("'"), WISP_VK_QUOT, {2+42+24*10 ,6+22*3,22,20}}, {WISP_STR("Enter"),WISP_VK_RETURN, {2+42+24*11 ,6+22*3,52,20}}, {WISP_STR("Shift"),WISP_VK_LSHIFT, {2 ,6+22*4,50,20}}, {WISP_STR("Z"), WISP_VK_Z, {2+52 ,6+22*4,22,20}}, {WISP_STR("X"), WISP_VK_X, {2+52+24 ,6+22*4,22,20}}, {WISP_STR("C"), WISP_VK_C, {2+52+24*2 ,6+22*4,22,20}}, {WISP_STR("V"), WISP_VK_V, {2+52+24*3 ,6+22*4,22,20}}, {WISP_STR("B"), WISP_VK_B, {2+52+24*4 ,6+22*4,22,20}}, {WISP_STR("N"), WISP_VK_N, {2+52+24*5 ,6+22*4,22,20}}, {WISP_STR("M"), WISP_VK_M, {2+52+24*6 ,6+22*4,22,20}}, {WISP_STR(","), WISP_VK_OEM_COMMA, {2+52+24*7 ,6+22*4,22,20}}, {WISP_STR("."), WISP_VK_OEM_PERIOD, {2+52+24*8 ,6+22*4,22,20}}, {WISP_STR("/"), WISP_VK_DIVIDE, {2+52+24*9 ,6+22*4,22,20}}, {WISP_STR("Shift"),WISP_VK_RSHIFT, {2+52+24*10 ,6+22*4,66,20}}, {WISP_STR("Ctrl"), WISP_VK_LCONTROL, {2 ,6+22*5,32,20}}, {WISP_STR("Win"), WISP_VK_LWIN, {2+34 ,6+22*5,32,20}}, {WISP_STR("Alt"), WISP_VK_LALT, {2+34*2 ,6+22*5,32,20}}, {WISP_STR("Space"),WISP_VK_SPACE, {2+34*3 ,6+22*5,34*3+18,20}}, {WISP_STR("Alt"), WISP_VK_RALT, {2+34*6+20 ,6+22*5,32,20}}, {WISP_STR("Win"), WISP_VK_RWIN, {2+34*7+20 ,6+22*5,32,20}}, {WISP_STR("Apps"), WISP_VK_APPS, {2+34*8+20 ,6+22*5,32,20}}, {WISP_STR("Ctrl"), WISP_VK_RCONTROL, {2+34*9+20 ,6+22*5,32,20}}, {WISP_STR("Ins"), WISP_VK_INSERT, {6+24*15 ,6+22*2,24,20}}, {WISP_STR("Hom"), WISP_VK_HOME, {6+24*15+26 ,6+22*2,24,20}}, {WISP_STR("PUp"), WISP_VK_PAGE_UP, {6+24*15+26*2 ,6+22*2,24,20}}, {WISP_STR("Del"), WISP_VK_DELETE, {6+24*15 ,6+22*3,24,20}}, {WISP_STR("End"), WISP_VK_END, {6+24*15+26 ,6+22*3,24,20}}, {WISP_STR("PDo"), WISP_VK_PAGE_DOWN, {6+24*15+26*2 ,6+22*3,24,20}}, {WISP_STR("Up"), WISP_VK_LEFT, {6+24*15+26 ,6+22*4,24,20}}, {WISP_STR("Le"), WISP_VK_LEFT, {6+24*15 ,6+22*5,24,20}}, {WISP_STR("Do"), WISP_VK_DOWN, {6+24*15+26 ,6+22*5,24,20}}, {WISP_STR("Ri"), WISP_VK_RIGHT, {6+24*15+26*2 ,6+22*5,24,20}}, }; WISP_MSG_MAP_BEGIN(CWispSoftKeyboard) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP_END(CWispWnd) CWispSoftKeyboard::CWispSoftKeyboard(void) { } CWispSoftKeyboard::~CWispSoftKeyboard(void) { } void CWispSoftKeyboard::Popup() { if(IsWindow()) { Show(); } else { Create(0,0,NULL,WISP_SKBS_NORMAL,WISP_SH_NORMAL); Center(); } } bool CWispSoftKeyboard::Create(int x,int y,CWispWnd*pParentWnd,UINT Style,UINT ShowMode,UINT CmdID) { return CWispWnd::Create(WISP_STR("Soft Keyboard"),CWispRect(x,y,453,166),pParentWnd,CmdID,Style,ShowMode); } bool CWispSoftKeyboard::OnCreate(IN WISP_MSG*pMsg) { LoadTitleDIB("\\WispApp\\SoftKeyboard\\SoftKeyboard.ico"); m_StaticDIB.Create(WispDIB("\\WispApp\\SoftKeyboard\\SoftKeyboard.ico",0),387,8,this); m_BTAry = new CWispBaseWnd*[WISP_SKB_BT_COUNT]; for(int n=0;nCreate(m_SoftKeyTable[n].szKeyName,&m_SoftKeyTable[n].BTRect,this,m_SoftKeyTable[n].VKCmdID,WISP_CBS_PUSHLIKE,WISP_SH_NORMAL); } else { m_BTAry[n]= new CWispButton; m_BTAry[n]->Create(m_SoftKeyTable[n].szKeyName,&m_SoftKeyTable[n].BTRect,this,m_SoftKeyTable[n].VKCmdID,WISP_BS_NORMAL,WISP_SH_NORMAL); } } return true; } bool CWispSoftKeyboard::OnDestroy(IN WISP_MSG*pMsg) { for(int n=0;nDestroy(); delete m_BTAry[n]; } delete[] m_BTAry; return true; } bool CWispSoftKeyboard::OnKeyEvent(IN WISP_MSG*pMsg) { return true; } bool CWispSoftKeyboard::OnGetFocus(IN WISP_MSG*pMsg) { Top(); return false; } bool CWispSoftKeyboard::OnCommand(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg==WISP_CMD_CTRL_GET_FOCUS) return false; if(pMsg->Command.CmdIDDispatchKeyEvent(pMsg->Command.CmdID,pMsg->Command.CmdMsg == WISP_CMD_BT_DOWN); } return true; } ================================================ FILE: Project/Wisp/Source/WispSoftKeyboard.h ================================================ #ifndef _WISP_SOFT_KEYBOARD_H_ #define _WISP_SOFT_KEYBOARD_H_ #include "WispStatic.h" #include "WispWnd.h" struct WISP_SKB_KEY { WISP_CHAR* szKeyName; UINT VKCmdID; WISP_RECT BTRect; }; #define WISP_SKBS_NORMAL (WISP_WS_CAPTION | WISP_WS_BT_MIN | WISP_WS_BT_CLOSE | WISP_WS_BORDER) class CWispSoftKeyboard : public CWispWnd { public: CWispSoftKeyboard(void); virtual ~CWispSoftKeyboard(void); public: static WISP_SKB_KEY m_SoftKeyTable[]; CWispBaseWnd** m_BTAry; CWispStaticDIB m_StaticDIB; bool Create(int x,int y,CWispWnd*pParentWnd, UINT Style = WISP_SKBS_NORMAL, UINT ShowMode = WISP_SH_NORMAL, UINT CmdID = WISP_ID_SOFT_KB); void Popup(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnGetFocus); DECLARE_WISP_MSG_CMD_MAP }; #endif ================================================ FILE: Project/Wisp/Source/WispSplitWnd.cpp ================================================ #include "StdAfx.h" #include "WispSplitWnd.h" WISP_MSG_MAP_BEGIN(CWispSplitWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_MOUSE_DBCLICK,OnMouseDBClick) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_PARENT_RESIZE,OnParentResize) WISP_MSG_MAP_END(CWispWnd) CWispSplitWnd::CWispSplitWnd() { m_SplitBorderSize = 4; m_CtrlType = WISP_CTRL_SPLIT_WND; } CWispSplitWnd::~CWispSplitWnd() { } bool CWispSplitWnd::OnCreate(IN WISP_MSG*pMsg) { m_DeltaSize.cx = m_ParentWnd->m_WindowRect.cx - m_WindowRect.cx; m_DeltaSize.cy = m_ParentWnd->m_WindowRect.cy - m_WindowRect.cy; return true; } bool CWispSplitWnd::OnDestroy(IN WISP_MSG*pMsg) { m_WndList.Clear(); return true; } bool CWispSplitWnd::OnUpdate(IN WISP_MSG*pMsg) { WISP_SPLIT_WND*pWSWnd; CWSWndList::IT Iter; Iter=m_WndList.Begin(); while(Iter!=m_WndList.End()) { pWSWnd=&(*Iter); m_pWispBase->m_pCurDrawObj->DrawSplitRect(&m_WindowDC,&pWSWnd->SplitRect,(m_Style & WISP_SWS_HORZ)!=0); Iter++; } return true; } bool CWispSplitWnd::OnUpdateClient(IN WISP_MSG*pMsg) { return false; } bool CWispSplitWnd::OnParentResize(IN WISP_MSG*pMsg) { if(m_Style & WISP_SWS_AUTO_RESIZE) { Resize(pMsg->Resize.NewSize.cx-m_DeltaSize.cx,pMsg->Resize.NewSize.cy-m_DeltaSize.cy); } return true; } bool CWispSplitWnd::OnSize(IN WISP_MSG*pMsg) { if(m_Style & WISP_SWS_AUTO_RESIZE) { m_DeltaSize.cx = m_ParentWnd->m_WindowRect.cx - m_WindowRect.cx; m_DeltaSize.cy = m_ParentWnd->m_WindowRect.cy - m_WindowRect.cy; } AdjustWndPos(); return true; } bool CWispSplitWnd::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType==WISP_VK_LBUTTON) { if(pMsg->KeyEvent.bKeyDown) { WISP_POINT MouseCltPT; MouseCltPT = pMsg->MsgMouseWndPT; PointToRect(&MouseCltPT,&m_ClientRect); CWSWndList::IT Iter; Iter=m_WndList.Begin(); while(Iter!=m_WndList.End()) { if(PtInRect(&Iter->SplitRect,&pMsg->MsgMouseWndPT)) { m_CurSplitWndIt = Iter; break; } Iter++; } } else { m_CurSplitWndIt = NULL; } } return true; } bool CWispSplitWnd::OnMouseLeave(IN WISP_MSG*pMsg) { int Delta = (m_Style & WISP_SWS_HORZ)?pMsg->MouseEvent.DeltaX:pMsg->MouseEvent.DeltaY; if(m_CurSplitWndIt!=NULL) { bool bMove; if(m_Style & WISP_SWS_HORZ) bMove = (Delta>=0 && pMsg->MsgMouseWndPT.x>=m_CurSplitWndIt->SplitRect.x) || (Delta< 0 && pMsg->MsgMouseWndPT.xSplitRect.x+m_CurSplitWndIt->SplitRect.cx); else bMove = (Delta>=0 && pMsg->MsgMouseWndPT.y>=m_CurSplitWndIt->SplitRect.y) || (Delta< 0 && pMsg->MsgMouseWndPT.ySplitRect.y+m_CurSplitWndIt->SplitRect.cy); if(bMove) { m_NextSplitWndIt = m_CurSplitWndIt+1; if( m_NextSplitWndIt!=m_WndList.End()&& m_CurSplitWndIt->SizeXorY+Delta>0 && m_NextSplitWndIt->SizeXorY-Delta>0) { m_CurSplitWndIt->SizeXorY+=Delta; if(m_NextSplitWndIt!=m_WndList.End()) (*m_NextSplitWndIt).SizeXorY-=Delta; AdjustWndPos(); } } return false; } else { m_pWispBase->ChangeCursorType(WISP_CT_ARROW); return true; } } bool CWispSplitWnd::OnMouseDBClick(IN WISP_MSG*pMsg) { //if(pMsg->KeyEvent.KeyType==WISP_VK_LBUTTON) { WISP_POINT MouseCltPT; MouseCltPT = pMsg->MsgMouseWndPT; PointToRect(&MouseCltPT,&m_ClientRect); int Index; CWSWndList::IT Iter; Iter=m_WndList.Begin(); Index = 0; while(Iter!=m_WndList.End()) { if(PtInRect(&Iter->SplitRect,&pMsg->MsgMouseWndPT)) { if(pMsg->KeyEvent.KeyType==WISP_VK_LBUTTON) SendCmdMsg(WISP_CMD_ITEM_LDBCLICK,Index,&(*Iter)); else if(pMsg->KeyEvent.KeyType==WISP_VK_RBUTTON) SendCmdMsg(WISP_CMD_ITEM_RDBCLICK,Index,&(*Iter)); break; } Iter++; Index++; } } return true; } bool CWispSplitWnd::OnMouseMove(IN WISP_MSG*pMsg) { bool bInResizeArea,bMove; WISP_POINT MouseCltPT; MouseCltPT = pMsg->MsgMouseWndPT; PointToRect(&MouseCltPT,&m_ClientRect); int Delta = (m_Style & WISP_SWS_HORZ)?pMsg->MouseEvent.DeltaX:pMsg->MouseEvent.DeltaY; if(m_CurSplitWndIt!=NULL) { if(m_Style & WISP_SWS_HORZ) bMove = (Delta>=0 && pMsg->MsgMouseWndPT.x>=m_CurSplitWndIt->SplitRect.x+m_CurSplitWndIt->SplitRect.cx/2) || (Delta< 0 && pMsg->MsgMouseWndPT.xSplitRect.x+m_CurSplitWndIt->SplitRect.cx/2); else bMove = (Delta>=0 && pMsg->MsgMouseWndPT.y>=m_CurSplitWndIt->SplitRect.y+m_CurSplitWndIt->SplitRect.cy/2) || (Delta< 0 && pMsg->MsgMouseWndPT.ySplitRect.y+m_CurSplitWndIt->SplitRect.cy/2); if(bMove) { m_NextSplitWndIt = m_CurSplitWndIt+1; if( m_NextSplitWndIt!=m_WndList.End()&& m_CurSplitWndIt->SizeXorY+Delta>0 && m_NextSplitWndIt->SizeXorY-Delta>0) { m_CurSplitWndIt->SizeXorY+=Delta; if(m_NextSplitWndIt!=m_WndList.End()) (*m_NextSplitWndIt).SizeXorY-=Delta; AdjustWndPos(); } } } else { CWSWndList::IT Iter; Iter=m_WndList.Begin(); bInResizeArea = false; while(Iter!=m_WndList.End()) { if(PtInRect(&Iter->SplitRect,&pMsg->MsgMouseWndPT)) { bInResizeArea = true; m_pWispBase->ChangeCursorType((m_Style & WISP_SWS_HORZ)?WISP_CT_RESIZE_HORZ:WISP_CT_RESIZE_VERT); break; } Iter++; } } return true; } void CWispSplitWnd::AdjustWndPos() { int SizeXorY; WISP_SPLIT_WND*pWSWnd; CWSWndList::IT Iter; Iter=m_WndList.Begin(); SizeXorY=0; for(int n=0;nSizeXorY = m_ClientRect.cx-SizeXorY; pWSWnd->pWnd->MoveToClient(SizeXorY,0); pWSWnd->pWnd->Resize(pWSWnd->SizeXorY,m_ClientRect.cy); pWSWnd->SplitRect.y=m_ClientRect.y; pWSWnd->SplitRect.cy=m_ClientRect.cy; pWSWnd->SplitRect.x=m_ClientRect.x+SizeXorY+pWSWnd->pWnd->m_WindowRect.cx; pWSWnd->SplitRect.cx=m_SplitBorderSize; SizeXorY+=pWSWnd->SizeXorY+pWSWnd->SplitRect.cx; } else { if(n==m_WndList.Count()-1) pWSWnd->SizeXorY=m_ClientRect.cy-SizeXorY; pWSWnd->pWnd->MoveToClient(0,SizeXorY); pWSWnd->pWnd->Resize(m_ClientRect.cx,pWSWnd->SizeXorY); pWSWnd->SplitRect.x=m_ClientRect.x; pWSWnd->SplitRect.cx=m_ClientRect.cx; pWSWnd->SplitRect.y=m_ClientRect.y+SizeXorY+pWSWnd->pWnd->m_WindowRect.cy; pWSWnd->SplitRect.cy=m_SplitBorderSize; SizeXorY+=pWSWnd->SizeXorY+pWSWnd->SplitRect.cy; } Iter++; } Update(); } bool CWispSplitWnd::InsertWnd(IN CWispWnd*pWnd,IN UINT Style,IN int SizeXorY,IN int InsertPos) { WISP_SPLIT_WND WSWnd; CWSWndList::IT Iter; if(InsertPos>m_WndList.Count()) return false; WSWnd.pWnd = pWnd; WSWnd.Style = Style; WSWnd.SizeXorY = SizeXorY; if(InsertPos<0) { Iter=m_WndList.Append(WSWnd); } else { if(m_WndList.Count()>0) Iter=m_WndList[InsertPos]; Iter=m_WndList.InsertBefore(Iter,WSWnd); } return true; } bool CWispSplitWnd::RemoveWnd(IN CWispWnd*pWnd) { int DelCount; CWSWndList::IT Iter; DelCount=0; Iter=m_WndList.Begin(); while(Iter!=m_WndList.End()) { if(Iter->pWnd==pWnd) { m_WndList.Remove(Iter); DelCount++; } Iter++; } return DelCount!=0; } bool CWispSplitWnd::ResizeWndSpace(int Pos,int SizeXorY) { if(Pos>=m_WndList.Count()) return false; CWSWndList::IT Iter = m_WndList[Pos]; Iter->SizeXorY = SizeXorY; return true; } bool CWispSplitWnd::GetWndSpace(int Pos,int& SizeXorY)const { if(Pos>=m_WndList.Count()) return false; CWSWndList::IT Iter = m_WndList[Pos]; SizeXorY=Iter->SizeXorY; return true; } void CWispSplitWnd::ExpandWnd(int Pos) { int Index,TotalSize; Index=0; TotalSize = (m_Style & WISP_SWS_HORZ)?m_ClientRect.cx:m_ClientRect.cy; for(CWSWndList::IT Iter = m_WndList.Begin();Iter!=m_WndList.End();Iter++) { if(Index==Pos) { Iter->SizeXorY = TotalSize - (m_WndList.Count()-1)*(m_SplitBorderSize+1); } else { Iter->SizeXorY = 1; } Index++; } AdjustWndPos(); } ================================================ FILE: Project/Wisp/Source/WispSplitWnd.h ================================================ #ifndef _WISP_SPLIT_WND_H_ #define _WISP_SPLIT_WND_H_ #include "WispWnd.h" //SplitWnd #define WISP_SWS_VERT 0x00010000 #define WISP_SWS_HORZ 0x00020000 #define WISP_SWS_AUTO_RESIZE 0x00040000 //Ӵ #define WISP_SWS_TITLE 0x10000000 struct WISP_SPLIT_WND { CWispWnd* pWnd; int SizeXorY; UINT Style; WISP_RECT SplitRect; }; typedef TList CWSWndList; class CWispSplitWnd : public CWispWnd { public: CWispSplitWnd(); ~CWispSplitWnd(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnUpdate); DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnMouseMove); DECLARE_WISP_MSG(OnMouseLeave); DECLARE_WISP_MSG(OnMouseDBClick); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnSize); DECLARE_WISP_MSG(OnParentResize); public: WISP_SIZE m_DeltaSize; int m_SplitBorderSize; CWSWndList m_WndList; CWSWndList::IT m_CurSplitWndIt; CWSWndList::IT m_NextSplitWndIt; bool InsertWnd(IN CWispWnd*pWnd,IN UINT Style,IN int SizeXorY,IN int InsertPos = -1); bool RemoveWnd(IN CWispWnd*pWnd); bool ResizeWndSpace(int Pos,int SizeXorY); bool GetWndSpace(int Pos,int& SizeXorY)const ; void AdjustWndPos(); void ExpandWnd(int Pos); }; #endif ================================================ FILE: Project/Wisp/Source/WispStatic.cpp ================================================ #include "StdAfx.h" #include "WispStatic.h" WISP_MSG_MAP_BEGIN(CWispStaticStr) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP_END(CWispBaseWnd) CWispStaticStr::CWispStaticStr() { m_CtrlType = WISP_CTRL_STATIC_STRING; } bool CWispStaticStr::OnUpdate(IN WISP_MSG*pMsg) { COLORREF OrgTextColor; if(m_WndText.m_Length) { if(IsDisabled()) { OrgTextColor = m_WindowDC.GetTextColor(); m_WindowDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRAY]); } m_WindowDC.DrawString(m_WndText,&m_WindowRect, 0); if(IsDisabled()) m_WindowDC.SetTextColor(OrgTextColor); } return true; } WISP_MSG_MAP_BEGIN(CWispStaticDIB) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP_END(CWispBaseWnd) CWispStaticDIB::CWispStaticDIB() { m_CtrlType = WISP_CTRL_STATIC_DIB; } bool CWispStaticDIB::Create(CWispDIB*pDIB,int x,int y,CWispBaseWnd* pParentWnd, UINT nID) { m_pDIB = pDIB; return CWispBaseWnd::Create(NULL, x, y,m_pDIB->m_FrameBuffer.Width,m_pDIB->m_FrameBuffer.Height,pParentWnd, nID,WISP_WS_NULL); } bool CWispStaticDIB::OnUpdate(IN WISP_MSG*pMsg) { m_WindowDC.DrawDIB(0,0,m_pDIB); return true; } WISP_MSG_MAP_BEGIN(CWispStaticGroup) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP_END(CWispBaseWnd) CWispStaticGroup::CWispStaticGroup() { m_CtrlType = WISP_CTRL_STATIC_GROUP; } bool CWispStaticGroup::OnGetFocus(IN WISP_MSG*pMsg) { return false; } bool CWispStaticGroup::OnUpdate(IN WISP_MSG*pMsg) { int nTextLen = m_WindowDC.GetTextExtent(m_WndText); COLORREF color = m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]; CWispRect rc(m_WindowRect); rc.y += m_WindowDC.m_pFont->m_Height/2; rc.cy-= m_WindowDC.m_pFont->m_Height/2; m_WindowDC.DrawCircleLeftTop(rc.x+5,rc.y+5,5,color); m_WindowDC.DrawCircleLeftBottom(rc.x+5,rc.y2()-5,5,color); m_WindowDC.DrawCircleRightTop(rc.x2()-5,rc.y+5,5,color); m_WindowDC.DrawCircleRightBottom(rc.x2()-5,rc.y2()-5,5,color); m_WindowDC.DrawVLine(rc.x, rc.y+5, rc.y2()-5, color); m_WindowDC.DrawVLine(rc.x2(), rc.y+5, rc.y2()-5, color); m_WindowDC.DrawHLine(rc.x+nTextLen?nTextLen+15:nTextLen+5, rc.x2()-5, rc.y, color); m_WindowDC.DrawHLine(rc.x+5, rc.x2()-5, rc.y2(), color); rc.SetRect(rc.x+10,rc.y-m_WindowDC.m_pFont->m_Height/2,nTextLen,m_WindowDC.m_pFont->m_Height); if(m_WndText.m_Length) m_WindowDC.DrawString(m_WndText, &rc, WISP_DT_VCENTER|WISP_DT_SINGLELINE); return false; } WISP_MSG_MAP_BEGIN(CWispStaticURL) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_ENTER,OnMouseEnter) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP_END(CWispBaseWnd) CWispStaticURL::CWispStaticURL() { m_CtrlType = WISP_CTRL_STATIC_URL; m_bHover = false; } bool CWispStaticURL::OnUpdate(IN WISP_MSG*pMsg) { if(m_WndText.m_Length) { if(IsDisabled()) { m_WindowDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRAY]); m_WindowDC.DrawString(m_WndText,&m_WindowRect, 0); m_WindowDC.RestoreTextColor(); } else { if(m_bHover) m_WindowDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_LIGHT_BLUE]); m_WindowDC.DrawString(m_WndText,&m_WindowRect, 0); if(m_bHover) { m_WindowDC.DrawHLine(0,m_WindowDC.GetTextExtent(m_WndText), m_WindowRect.y+m_WindowDC.GetTextHeight(),m_pWispBase->m_pCurDrawObj->m_crSystem[SC_LIGHT_BLUE]); m_WindowDC.RestoreTextColor(); } } } return true; } bool CWispStaticURL::OnKeyEvent(IN WISP_MSG*pMsg) { WISP_MSG Msg; if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON && pMsg->KeyEvent.bKeyDown == false) { #ifdef CODE_OS_WIN char szBuffer[MAX_FN_LEN]; UnicodeToAnsi(GetWindowText(),szBuffer,sizeof(szBuffer)); ShellExecute(NULL,"open",szBuffer,NULL,NULL,SW_SHOWMAXIMIZED); #endif Msg.hWnd = m_OwnerWnd; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CmdID = m_CmdID; Msg.Command.CmdMsg = WISP_CMD_STATIC_URL_CLICK; Msg.Command.Param1 = 0; Msg.Command.Param2 = NULL; if(SEND_MSG(&Msg)==false) return false; } return true; } bool CWispStaticURL::OnMouseEnter(IN WISP_MSG*pMsg) { m_bHover = true; Update(); return true; } bool CWispStaticURL::OnMouseLeave(IN WISP_MSG*pMsg) { m_bHover = false; Update(); return true; } ================================================ FILE: Project/Wisp/Source/WispStatic.h ================================================ #ifndef _WISP_STATIC_H_ #define _WISP_STATIC_H_ #include "WispBaseWnd.h" class CWispStaticStr : public CWispBaseWnd { public: CWispStaticStr(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); }; class CWispStaticDIB : public CWispBaseWnd { public: CWispStaticDIB(); bool Create(CWispDIB*pDIB,int x,int y,CWispBaseWnd* pParentWnd, UINT nID = WISP_ID_STATIC_DIB); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); public: CWispDIB* m_pDIB; }; class CWispStaticGroup : public CWispBaseWnd { public: CWispStaticGroup(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); DECLARE_WISP_MSG(OnGetFocus) }; class CWispStaticURL : public CWispBaseWnd { public: CWispStaticURL(); public: bool m_bHover; DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnMouseEnter); DECLARE_WISP_MSG(OnMouseLeave); }; #endif ================================================ FILE: Project/Wisp/Source/WispTabWnd.cpp ================================================ #include "StdAfx.h" #include "WispTabWnd.h" WISP_MSG_MAP_BEGIN(CWispTabWnd) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent); WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CWispTabWnd) WISP_MSG_EVENT_MAP(WISP_ID_TAB_CLOSE_BT,OnEventCloseBT) WISP_MSG_EVENT_MAP_END bool CWispTabWnd::InitWnd() { if(CWispWnd::InitWnd()==false) return false; if((m_Style & WISP_TWS_POS_MASK)==0) m_Style |= WISP_TWS_TOP; m_FixedTabWidth = 0; m_TabTailSpace = 0; m_pClsBTDIB = WispTKDIBList("\\Skin\\Default\\MiniClose.bmp",10,10); m_CloseBTSize.cx = m_CloseBTSize.cy = 10; if(m_Style&WISP_TWS_CLOSE_BT) m_TabTailSpace += m_CloseBTSize.cx; m_TabItemWidth = 0; m_FocusWndNameClr = SYS_COLOR[SC_GRADIENT_YELLOW_1]; return true; } bool CWispTabWnd::OnMouseMove(IN WISP_MSG*pMsg) { UINT Index=0; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { if(PtInRect(&WndIt->TabRC,pMsg->MsgMouseCltPT)) { m_nHoverIndex = Index; Update(&m_FullTabRect); return false; } WndIt++; Index++; } if(m_nHoverIndex!=-1) { Update(&m_FullTabRect); m_nHoverIndex = -1; } return true; } bool CWispTabWnd::OnMouseLeave(IN WISP_MSG*pMsg) { if(m_nHoverIndex!=-1) { Update(&m_FullTabRect); m_nHoverIndex = -1; } return true; } bool CWispTabWnd::OnEventCloseBT(IN WISP_MSG*pMsg) { WISP_TAB_WND_ITEM*pItem = (WISP_TAB_WND_ITEM*)pMsg->hSrcWnd->m_WndData; if(pItem==NULL) return false; RemoveTabWnd(pItem,(pItem->pWnd->m_AdvStyle&WISP_WAS_AUTO_DELETE)!=0); Update(); return true; } bool CWispTabWnd::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.bKeyDown==false) return true; switch(pMsg->KeyEvent.KeyType) { case WISP_VK_LBUTTON: { UINT Index=0; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { if(PtInRect(&WndIt->TabRC,pMsg->MsgMouseCltPT)) { if(Index!=m_ActiveWndIndex) { SetActiveWnd(Index); Update(); } return true; } WndIt++; Index++; } } break; case WISP_VK_TAB: if(m_WndList.Count()) { if(m_pWispBase->m_KeyMap[WISP_VK_SHIFT]) ActivePrevPage(); else ActiveNextPage(); Update(); } break; } return true; } void CWispTabWnd::DrawTabTop() { CWispRect TabRC; int StrLen; TabRC.x=TabRC.y=0; TabRC.cx=m_ClientRect.cx; TabRC.cy=m_TabSpaceHeight; m_pWispBase->m_pCurDrawObj->DrawTabBackground(&m_ClientDC, &TabRC); m_ClientDC.DrawHLine(TabRC.x, TabRC.x2(), TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BORDER_BG]); UINT Index=0; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { StrLen = TStrLen(WndIt->Name); TabRC = WndIt->TabRC; m_ClientDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_TEXT]); UINT uState; if(Index==m_ActiveWndIndex) uState = STATUS_DOWN; else if(Index==m_nHoverIndex) uState = STATUS_HOVER; else uState = STATUS_NORMAL; switch(uState) { case STATUS_NORMAL: m_ClientDC.DrawVLine(TabRC.x, TabRC.y+1, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawVLine(TabRC.x2(), TabRC.y+1, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); TabRC.DeflateRect(1, 1); break; case STATUS_HOVER: m_ClientDC.DrawVLine(TabRC.x, TabRC.y+3, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawVLine(TabRC.x2(), TabRC.y+3, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawHLine(TabRC.x+2, TabRC.x2()-2, TabRC.y, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_1]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y+1, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_2]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y+2, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_3]); TabRC.x += 1; TabRC.cx -= 2; TabRC.y += 3; TabRC.cy -= 4; break; case STATUS_DOWN: m_ClientDC.DrawVLine(TabRC.x, TabRC.y+3, TabRC.y2()-3, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawVLine(TabRC.x2(), TabRC.y+3, TabRC.y2()-3, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawHLine(TabRC.x+2, TabRC.x2()-2, TabRC.y, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_1]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y+1, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_2]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y+2, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_3]); TabRC.x += 1; TabRC.cx -= 2; TabRC.y += 3; TabRC.cy -= 3; break; } if(uState==STATUS_DOWN) m_ClientDC.DrawFullRect(&TabRC, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_CLIENT_BG]); else m_ClientDC.DrawFullRect(&TabRC, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG]); if(WndIt->pDIB) { m_ClientDC.DrawDIB(TabRC.x + 2 ,TabRC.y+CENTER_ALGN(WndIt->pDIB->m_FrameBuffer.Height,TabRC.cy),WndIt->pDIB); TabRC.x+=WndIt->pDIB->m_FrameBuffer.Width; TabRC.cx-=WndIt->pDIB->m_FrameBuffer.Width; } TabRC.x+=4; TabRC.cx-=4; TabRC.cx-=m_TabTailSpace; if(m_pWispBase->m_pFocusWnd && (m_pWispBase->m_pFocusWnd == WndIt->pWnd || m_pWispBase->m_pFocusWnd->IsChildWndOf(WndIt->pWnd))) { m_ClientDC.SetTextColor(m_FocusWndNameClr); m_ClientDC.DrawShadowString(&TabRC,WndIt->Name); m_ClientDC.RestoreTextColor(); } else m_ClientDC.DrawString(&TabRC,WndIt->Name); WndIt++; Index++; } } void CWispTabWnd::DrawTabButtom() { CWispRect TabRC; int StrLen; TabRC.x=0; TabRC.y=m_ClientRect.cy-m_TabSpaceHeight; TabRC.cx=m_ClientRect.cx; TabRC.cy=m_TabSpaceHeight; m_pWispBase->m_pCurDrawObj->DrawTabBackground(&m_ClientDC, &TabRC); m_ClientDC.DrawHLine(TabRC.x, TabRC.x2(), TabRC.y, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BORDER_BG]); UINT Index=0; CTabWndList::IT WndIt=m_WndList.Begin(); while(WndIt!=m_WndList.End()) { StrLen = TStrLen(WndIt->Name); TabRC = WndIt->TabRC; m_ClientDC.SetTextColor(m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_TEXT]); UINT uState; if(Index==m_ActiveWndIndex) uState = STATUS_DOWN; else if(Index==m_nHoverIndex) uState = STATUS_HOVER; else uState = STATUS_NORMAL; switch(uState) { case STATUS_NORMAL: m_ClientDC.DrawVLine(TabRC.x, TabRC.y, TabRC.y2()-1, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawVLine(TabRC.x2(), TabRC.y, TabRC.y2()-1, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); TabRC.DeflateRect(1,1); break; case STATUS_HOVER: m_ClientDC.DrawVLine(TabRC.x, TabRC.y, TabRC.y2()-3, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawVLine(TabRC.x2(), TabRC.y, TabRC.y2()-3, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawHLine(TabRC.x+2, TabRC.x2()-2, TabRC.y2() , m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_1]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y2()-1, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_2]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y2()-2, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_3]); TabRC.x+=1; TabRC.cx-=2; TabRC.y+=1; TabRC.cy-=4; break; case STATUS_DOWN: m_ClientDC.DrawVLine(TabRC.x, TabRC.y, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawVLine(TabRC.x2(), TabRC.y, TabRC.y2(), m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_BORDER_TOPLEFT]); m_ClientDC.DrawHLine(TabRC.x+2, TabRC.x2()-2, TabRC.y2() , m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_1]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y2()-1, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_2]); m_ClientDC.DrawHLine(TabRC.x+1, TabRC.x2()-1, TabRC.y2()-2, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_GRADIENT_YELLOW_3]); TabRC.x+=1; TabRC.cx-=2; TabRC.cy-=3; break; } if(uState==STATUS_DOWN) m_ClientDC.DrawFullRect(&TabRC, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_CLIENT_BG]); else m_ClientDC.DrawFullRect(&TabRC, m_pWispBase->m_pCurDrawObj->m_crSystem[SC_CTRL_NORMAL_DARK_CLIENT_BG]); if(WndIt->pDIB) { m_ClientDC.DrawDIB(TabRC.x + 2 ,TabRC.y+CENTER_ALGN(WndIt->pDIB->m_FrameBuffer.Height,TabRC.cy),WndIt->pDIB); TabRC.x+=WndIt->pDIB->m_FrameBuffer.Width; TabRC.cx-=WndIt->pDIB->m_FrameBuffer.Width; } TabRC.x+=4; TabRC.cx-=4; TabRC.cx-=m_TabTailSpace; if(m_pWispBase->m_pFocusWnd && (m_pWispBase->m_pFocusWnd == WndIt->pWnd || m_pWispBase->m_pFocusWnd->IsChildWndOf(WndIt->pWnd))) { m_ClientDC.SetTextColor(m_FocusWndNameClr); m_ClientDC.DrawShadowString(&TabRC,WndIt->Name); m_ClientDC.RestoreTextColor(); } else m_ClientDC.DrawString(&TabRC,WndIt->Name); WndIt++; Index++; } } void CWispTabWnd::DrawTabLeft() { } void CWispTabWnd::DrawTabRight() { } bool CWispTabWnd::OnUpdateClient(IN WISP_MSG*pMsg) { if(m_WndList.Count()==0) CWispWnd::OnUpdateClient(pMsg); if((m_Style&WISP_TWS_HIDE_TAB_SINGLE) && m_WndList.Count()==1) return false; switch(m_Style & WISP_TWS_POS_MASK) { case WISP_TWS_TOP: DrawTabTop(); break; case WISP_TWS_BUTTOM: DrawTabButtom(); break; case WISP_TWS_LEFT: DrawTabLeft(); break; case WISP_TWS_RIGHT: DrawTabRight(); break; } return false; } bool CWispTabWnd::OnRecalcLayout(IN WISP_MSG*pMsg) { switch(m_Style & WISP_TWS_POS_MASK) { case WISP_TWS_TOP: OnTopRecalcLayout(); break; case WISP_TWS_BUTTOM: OnButtomRecalcLayout(); break; case WISP_TWS_LEFT: OnLeftRecalcLayout(); break; case WISP_TWS_RIGHT: OnRightRecalcLayout(); break; default: break; } return true; } bool CWispTabWnd::OnGetFocus(IN WISP_MSG*pMsg) { m_pWispBase->m_pFocusWnd = m_pActiveWnd; return true; } bool CWispTabWnd::OnDestroy(IN WISP_MSG*pMsg) { m_WndList.Clear(); m_pActiveWnd=NULL; m_ActiveWndIndex=m_nHoverIndex=-1; return true; } bool CWispTabWnd::OnSize(IN WISP_MSG*pMsg) { if(m_pActiveWnd) { if( (m_Style & WISP_TWS_POS_MASK) < WISP_TWS_LEFT ) { m_pActiveWnd->Resize(m_ClientRect.cx,m_ClientRect.cy-m_TabSpaceHeight); } else { m_pActiveWnd->Resize(m_ClientRect.cx-m_TabSpaceHeight,m_ClientRect.cy); } } return true; } CWispTabWnd::CWispTabWnd() { m_TabHeight=WISP_FONT_FRAME_HEIGHT; m_TabSpaceHeight=m_TabHeight+2; m_pActiveWnd=NULL; m_ActiveWndIndex=-1; m_nHoverIndex=-1; } void CWispTabWnd::InsertTabWnd(INOUT WISP_TAB_WND_ITEM*pTabItem,IN const WISP_CHAR*Name,IN CWispWnd*pWnd,IN CWispDIB*pTabDIB) { if((m_Style&WISP_TWS_HIDE_TAB_SINGLE) && m_WndList.Count()==1) m_TabSpaceHeight = 0; else m_TabSpaceHeight = m_TabHeight+2; pTabItem->pDIB=pTabDIB; pTabItem->pWnd = pWnd; if(Name) TStrCpy(pTabItem->Name,Name); if(m_Style&WISP_TWS_CLOSE_BT) { pTabItem->pClsBT = new CWispButton; pTabItem->pClsBT->CreateEx(m_pClsBTDIB,0,0,this,WISP_ID_TAB_CLOSE_BT); pTabItem->pClsBT->AddAdvStyle(WISP_WAS_AUTO_DELETE); pTabItem->pClsBT->m_WndData = pTabItem; } else { pTabItem->pClsBT = NULL; } RecalcLayout(); if(m_WndList.Count()==1) SetActiveWnd(0); else pTabItem->pWnd->Show(WISP_SH_HIDDEN); if((m_Style&WISP_TWS_CLOSE_BT) && (m_Style&WISP_TWS_MULTI_VIEW_STYLE)) { if(m_WndList.Count()==1) GetCloseButton(0)->EnableWindow(false); if(m_WndList.Count()==2) GetCloseButton(0)->EnableWindow(true); } } void CWispTabWnd::RemoveTabWnd(WISP_TAB_WND_ITEM*pItem,bool bDestroyWnd) { if(OnCloseTabWnd(pItem->pWnd)==false) return; if(pItem->pClsBT) pItem->pClsBT->Destroy(); if(bDestroyWnd) pItem->pWnd->Destroy(); if(pItem->pWnd==m_pActiveWnd) { m_WndList.Remove(*pItem); m_ActiveWndIndex = -1; m_pActiveWnd = NULL; OnClosedTabWnd(); if(m_WndList.Count()) SetActiveWnd(m_WndList.Count()-1); } else { m_WndList.Remove(*pItem); OnClosedTabWnd(); } if((m_Style&WISP_TWS_CLOSE_BT) && (m_Style&WISP_TWS_MULTI_VIEW_STYLE)) { if(m_WndList.Count()==1) GetCloseButton(0)->EnableWindow(false); } if((m_Style&WISP_TWS_HIDE_TAB_SINGLE) && m_WndList.Count()==1) { m_TabSpaceHeight = 0; m_ActiveWndIndex = -1; SetActiveWnd(0); } RecalcLayout(); Update(&m_FullTabRect); } void CWispTabWnd::OnTopRecalcLayout() { UINT Index; WISP_RECT TabRC; TabRC.cx=m_ClientRect.cx; TabRC.cy=m_pWispBase->m_Metrics[WISP_SM_FONT_FRAME_HEIGHT]; TabRC.x=3; TabRC.y=m_TabSpaceHeight-TabRC.cy; m_FullTabRect = TabRC; TabRC.cy=m_TabHeight; m_FixedTabWidth = 0; if(m_Style & WISP_TWS_FIXED_WIDTH) { for(CTabWndList::IT WndIt=m_WndList.Begin();WndIt!=m_WndList.End();WndIt++) { TabRC.cx = m_ClientDC.GetTextExtent(WndIt->Name)+8; if(WndIt->pDIB) TabRC.cx+=WndIt->pDIB->m_FrameBuffer.Width+4; if(m_FixedTabWidthName)+8+m_TabTailSpace; if(WndIt->pDIB) TabRC.cx+=WndIt->pDIB->m_FrameBuffer.Width+4; if(TabRC.cxTabRC = TabRC; if(Index==m_ActiveWndIndex) { WndIt->TabRC.y-=2; WndIt->TabRC.cy+=2; WndIt->TabRC.x-=2; WndIt->TabRC.cx+=4; } if(m_Style&WISP_TWS_CLOSE_BT) WndIt->pClsBT->MoveToClient(WndIt->TabRC.x+WndIt->TabRC.cx-WndIt->pClsBT->m_WindowRect.cx-2,WndIt->TabRC.y+CENTER_ALGN(WndIt->pClsBT->m_WindowRect.cy,m_FullTabRect.cy)); TabRC.x += (TabRC.cx+1); Index++; } m_TabItemWidth = TabRC.x; } void CWispTabWnd::OnButtomRecalcLayout() { UINT Index; WISP_RECT TabRC; TabRC.cx=m_ClientRect.cx; TabRC.cy=m_pWispBase->m_Metrics[WISP_SM_FONT_FRAME_HEIGHT]; TabRC.x=3; TabRC.y=m_ClientRect.cy - m_TabSpaceHeight; m_FullTabRect = TabRC; TabRC.cy=m_TabHeight; m_FixedTabWidth = 0; if(m_Style&WISP_TWS_FIXED_WIDTH) { for(CTabWndList::IT WndIt=m_WndList.Begin();WndIt!=m_WndList.End();WndIt++) { TabRC.cx = m_ClientDC.GetTextExtent(WndIt->Name)+8; if(WndIt->pDIB) TabRC.cx+=WndIt->pDIB->m_FrameBuffer.Width+4; if(m_FixedTabWidthName)+8+m_TabTailSpace; if(WndIt->pDIB) TabRC.cx+=WndIt->pDIB->m_FrameBuffer.Width+4; if(TabRC.cxTabRC = TabRC; if(Index==m_ActiveWndIndex) { WndIt->TabRC.cy+=2; WndIt->TabRC.x-=2; WndIt->TabRC.cx+=4; } if(m_Style&WISP_TWS_CLOSE_BT) WndIt->pClsBT->MoveToClient(WndIt->TabRC.x+WndIt->TabRC.cx-WndIt->pClsBT->m_WindowRect.cx-2,WndIt->TabRC.y+3); TabRC.x += (TabRC.cx+1); Index++; } m_TabItemWidth = TabRC.x; } void CWispTabWnd::OnLeftRecalcLayout() { } void CWispTabWnd::OnRightRecalcLayout() { } UINT CWispTabWnd::InsertWnd(IN const WISP_CHAR*Name,IN CWispWnd*pWnd,IN CWispDIB*pTabDIB) { CTabWndList::IT Iter; Iter = m_WndList.Append(); InsertTabWnd(&(*Iter),Name,pWnd,pTabDIB); return m_WndList.Count()-1; } UINT CWispTabWnd::InsertWndAfter(IN int Index,IN WISP_CHAR*Name,IN CWispWnd*pWnd,IN CWispDIB*pTabDIB) { CTabWndList::IT Iter; if(Index>=m_WndList.Count()) return -1; Iter = m_WndList.InsertAfter(m_WndList[Index]); InsertTabWnd(&(*Iter),Name,pWnd,pTabDIB); return Index+1; } UINT CWispTabWnd::InsertWndBefore(IN int Index,IN WISP_CHAR*Name,IN CWispWnd*pWnd,IN CWispDIB*pTabDIB) { CTabWndList::IT Iter; if(Index>=m_WndList.Count()) return -1; Iter = m_WndList.InsertBefore(m_WndList[Index]); InsertTabWnd(&(*Iter),Name,pWnd,pTabDIB); return Index; } UINT CWispTabWnd::RemoveWnd(IN int Index,bool bDestroyWnd) { CTabWndList::IT WndIt; if(Index>=m_WndList.Count()) return m_WndList.Count(); WndIt=m_WndList[Index]; RemoveTabWnd(&(*WndIt),bDestroyWnd); return m_WndList.Count(); } UINT CWispTabWnd::RemoveWnd(IN CWispWnd*pWnd,bool bDestroyWnd) { for(CTabWndList::IT WndIt=m_WndList.Begin();WndIt!=m_WndList.End();WndIt++) { if(pWnd==WndIt->pWnd) { RemoveTabWnd(&(*WndIt),bDestroyWnd); break; } } return m_WndList.Count(); } CWispWnd*CWispTabWnd::GetActiveWnd() { return m_pActiveWnd; } UINT CWispTabWnd::GetActiveWndIndex() { return m_ActiveWndIndex; } CWispWnd*CWispTabWnd::SetActiveWnd(IN UINT Index) { CTabWndList::IT WndIt; if(Index==m_ActiveWndIndex) { m_pActiveWnd->Focus(); return m_pActiveWnd; } if(Index>=(UINT)m_WndList.Count()) return NULL; WndIt=m_WndList[Index]; if(WndIt==m_WndList.End()) return NULL; ChangeActiveWnd(WndIt->pWnd); return m_pActiveWnd; } void CWispTabWnd::ChangeActiveWnd(IN CWispWnd*pActiveWnd) { int ActiveWndIndex=0; for(CTabWndList::IT It=m_WndList.Begin();It!=m_WndList.End();It++) { if(It->pWnd == pActiveWnd) break; ActiveWndIndex++; } if(ActiveWndIndex>=m_WndList.Count()) return; OnTabChanged(pActiveWnd); if(SendCmdMsg(WISP_CMD_TAB_ACTIVE_CHG,ActiveWndIndex,pActiveWnd)==false) return; if(m_pActiveWnd) m_pActiveWnd->Show(WISP_SH_HIDDEN); m_pActiveWnd=pActiveWnd; switch(m_Style & WISP_TWS_POS_MASK) { case WISP_TWS_TOP: m_pActiveWnd->MoveToClient(0,m_TabSpaceHeight); m_pActiveWnd->Resize(m_ClientRect.cx,m_ClientRect.cy-m_TabSpaceHeight); break; case WISP_TWS_BUTTOM: m_pActiveWnd->MoveToClient(0,0); m_pActiveWnd->Resize(m_ClientRect.cx,m_ClientRect.cy-m_TabSpaceHeight); break; case WISP_TWS_LEFT: m_pActiveWnd->MoveToClient(m_TabSpaceHeight,0); m_pActiveWnd->Resize(m_ClientRect.cx-m_TabSpaceHeight,m_ClientRect.cy); break; case WISP_TWS_RIGHT: m_pActiveWnd->MoveToClient(0,0); m_pActiveWnd->Resize(m_ClientRect.cx-m_TabSpaceHeight,m_ClientRect.cy); break; } m_pActiveWnd->Focus(); m_pActiveWnd->Show(); m_ActiveWndIndex = ActiveWndIndex; RecalcLayout(); Update(); } CWispWnd*CWispTabWnd::GetWnd(UINT Index) { if(Index>=(UINT)m_WndList.Count()) return NULL; return m_WndList[Index]->pWnd; } bool CWispTabWnd::SetTabText(UINT Index,const WISP_CHAR*pStr) { CTabWndList::IT WndIt; WndIt=m_WndList[Index]; if(WndIt==m_WndList.End()) return false; TStrOmit(pStr,WndIt->Name,WISP_MAX_TAB_STR); Update(); return true; } void CWispTabWnd::ActiveNextPage() { int Index = m_ActiveWndIndex+1; if(Index>=m_WndList.Count()) Index=0; SetActiveWnd(Index); } void CWispTabWnd::ActivePrevPage() { int Index = m_ActiveWndIndex-1; if(Index<0) Index=m_WndList.Count()-1; SetActiveWnd(Index); } UINT CWispTabWnd::GetWndCount() { return (UINT)m_WndList.Count(); } CWispButton* CWispTabWnd::GetCloseButton(int Index) { if(Index>=m_WndList.Count()) return NULL; CTabWndList::IT Iter = m_WndList[Index]; if(Iter->pClsBT==NULL) return NULL; return Iter->pClsBT; } CWispButton* CWispTabWnd::GetCloseButton(CWispWnd*pWnd) { for(CTabWndList::IT Iter=m_WndList.Begin();Iter!=m_WndList.End();Iter++) { if(Iter->pWnd==pWnd) return Iter->pClsBT; } return NULL; } void CWispTabWnd::RemoveAllWnd(bool bDestroyWnd) { for(CTabWndList::IT It=m_WndList.Begin();It!=m_WndList.End();It++) { if(It->pClsBT) It->pClsBT->Destroy(); if(bDestroyWnd) It->pWnd->Destroy(); } m_WndList.Clear(); m_pActiveWnd = NULL; m_ActiveWndIndex=m_nHoverIndex=-1; } ================================================ FILE: Project/Wisp/Source/WispTabWnd.h ================================================ #ifndef _WISP_TAB_WND_ #define _WISP_TAB_WND_ #include "WispButton.h" #define WISP_MAX_TAB_STR 32 #define WISP_TWS_TOP 0x00010000 #define WISP_TWS_BUTTOM 0x00020000 #define WISP_TWS_LEFT 0x00040000 #define WISP_TWS_RIGHT 0x00080000 #define WISP_TWS_POS_MASK 0x000F0000 #define WISP_TWS_FIXED_WIDTH 0x00100000 #define WISP_TWS_CLOSE_BT 0x00200000 #define WISP_TWS_MULTI_VIEW_STYLE 0x00400000 #define WISP_TWS_HIDE_TAB_SINGLE 0x00800000 #define WISP_ID_TAB_CLOSE_BT WISP_ID_SYS_START struct WISP_TAB_WND_ITEM { CWispWnd*pWnd; WISP_CHAR Name[WISP_MAX_TAB_STR]; WISP_RECT TabRC; CWispDIB* pDIB; CWispButton*pClsBT; }; typedef TList CTabWndList; class CWispTabWnd : public CWispWnd { public: CWispTabWnd(); public: CTabWndList m_WndList; CWispWnd* m_pActiveWnd; int m_ActiveWndIndex; int m_nHoverIndex; int m_TabHeight; int m_TabSpaceHeight; int m_TabTailSpace; WISP_RECT m_FullTabRect; int m_FixedTabWidth; int m_TabItemWidth; public://Ϣӳ DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG(OnMouseLeave) DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnEventCloseBT) public: virtual bool InitWnd(); virtual void InsertTabWnd(INOUT WISP_TAB_WND_ITEM*pTabItem,IN const WISP_CHAR*Name,IN CWispWnd*pWnd,IN CWispDIB*pTabDIB); virtual void RemoveTabWnd(WISP_TAB_WND_ITEM*pItem,bool bDestroyWnd = true); virtual bool OnCloseTabWnd(CWispWnd*pWnd){return true;} virtual void OnClosedTabWnd(){} virtual void OnTabChanged(CWispWnd*pWnd){} void DrawTabTop(); void DrawTabButtom(); void DrawTabLeft(); void DrawTabRight(); UINT InsertWnd(IN const WISP_CHAR*Name, IN CWispWnd*pWnd,IN CWispDIB*pTabDIB = NULL); UINT InsertWndAfter(IN int Index, IN WISP_CHAR*Name, IN CWispWnd*pWnd,IN CWispDIB*pTabDIB = NULL); UINT InsertWndBefore(IN int Index, IN WISP_CHAR*Name,IN CWispWnd*pWnd,IN CWispDIB*pTabDIB = NULL); UINT RemoveWnd(IN int Index,IN bool bDestroyWnd = true); UINT RemoveWnd(IN CWispWnd*pWnd,IN bool bDestroyWnd = true); void RemoveAllWnd(IN bool bDestroyWnd = true); CWispWnd*GetActiveWnd(); UINT GetActiveWndIndex(); CWispWnd*SetActiveWnd(IN UINT Index); bool SetTabText(IN UINT Index,IN const WISP_CHAR*pStr); void ChangeActiveWnd(IN CWispWnd*pActiveWnd); CWispWnd*GetWnd(UINT Index); void ActiveNextPage(); void ActivePrevPage(); UINT GetWndCount(); CWispButton*GetCloseButton(int Index); CWispButton*GetCloseButton(CWispWnd*pWnd); WISP_SIZE m_CloseBTSize; CWispDIBList*m_pClsBTDIB; COLORREF m_FocusWndNameClr; private: void OnTopRecalcLayout(); void OnButtomRecalcLayout(); void OnLeftRecalcLayout(); void OnRightRecalcLayout(); }; #endif ================================================ FILE: Project/Wisp/Source/WispTaskPanel.cpp ================================================ #include "StdAfx.h" #include "WispTaskPanel.h" const COLORREF clrBkgndBeginLunaBlue = RGB(123, 162, 231); const COLORREF clrBkgndEndLunaBlue = RGB(99, 117, 214); WISP_MSG_MAP_BEGIN(CWispTaskPanel) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP_END(CWispWnd) CWispTaskPanel::CWispTaskPanel() { } CWispTaskPanel::~CWispTaskPanel() { } bool CWispTaskPanel::OnUpdateClient(IN WISP_MSG*pMsg) { CWispRect rc(&m_ClientRect); m_WindowDC.DrawFullRect(&rc,clrBkgndBeginLunaBlue); return false; } bool CWispTaskPanel::OnRecalcLayout(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/Wisp/Source/WispTaskPanel.h ================================================ #ifndef _WISP_TASK_PANEL_H_ #define _WISP_TASK_PANEL_H_ #include "WispWnd.h" class CWispTaskPanel : public CWispWnd { public: CWispTaskPanel(); ~CWispTaskPanel(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnRecalcLayout); public: }; #endif ================================================ FILE: Project/Wisp/Source/WispTipWnd.cpp ================================================ #include "StdAfx.h" #include "WispTipWnd.h" WISP_MSG_MAP_BEGIN(CWispTipWnd) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP_END(CWispWnd) CWispTipWnd::CWispTipWnd() { m_CtrlType = WISP_CTRL_TIP_WND; m_pTipHelpWnd = NULL; } bool CWispTipWnd::OnUpdate(IN WISP_MSG*pMsg) { CWispRect rc(m_WindowRect); m_WindowDC.DrawFrameRect(&rc); rc.DeflateRect(1,1); m_WindowDC.DrawFullRect(&rc,SYS_COLOR[SC_UNNAMED_17]); if(m_WndText.m_Length) { rc.DeflateRect(2,1); m_WindowDC.DrawString(m_WndText,&rc,0); } return false; } void CWispTipWnd::AutoAdjustPostion(CWispBaseWnd*pTipHelpWnd) { WISP_RECT rc; WISP_RECT CalcRect; m_WindowDC.DrawString(m_WndText,&CalcRect,WISP_DT_CALCRECT); CalcRect.cy+=5; CalcRect.cx+=8; m_pTipHelpWnd = pTipHelpWnd; rc.y = m_pWispBase->m_MousePT.y+20; rc.cy = m_WindowDC.m_pFont->m_Height+5; rc.cx = m_WindowDC.GetTextExtent(m_WndText)+8; rc.x = m_pWispBase->m_MousePT.x-rc.cx/2; CalcRect.x = m_pWispBase->m_MousePT.x-CalcRect.cx/2; CalcRect.y = m_pWispBase->m_MousePT.y+20; if(CalcRect.x<=0) CalcRect.x = 10; if(CalcRect.y <= 10) CalcRect.y = 10; if(rc.x <= 0) rc.x = 10; if(rc.y <= 0) rc.y = 10; if(CalcRect.x+CalcRect.cx - 1 >= m_pWispBase->m_FrameBuffer.Width) CalcRect.x = m_pWispBase->m_FrameBuffer.Width - CalcRect.cx - 10; if(rc.x+rc.cx - 1>= m_pWispBase->m_FrameBuffer.Width) rc.x = m_pWispBase->m_FrameBuffer.Width - rc.cx - 10; if(CalcRect.y+CalcRect.cy - 1>= m_pWispBase->m_FrameBuffer.Height) CalcRect.y = m_pWispBase->m_MousePT.y-30; if(rc.y+rc.cy - 1>= m_pWispBase->m_FrameBuffer.Height) rc.y = m_pWispBase->m_MousePT.y-30; MoveToScreen(CalcRect.x,CalcRect.y); Resize(CalcRect.cx,CalcRect.cy); Top(); } ================================================ FILE: Project/Wisp/Source/WispTipWnd.h ================================================ #ifndef _WISP_TIP_WND_H_ #define _WISP_TIP_WND_H_ #include "WispWnd.h" class CWispTipWnd : public CWispWnd { public: CWispTipWnd(); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdate); void AutoAdjustPostion(CWispBaseWnd*pTipHelpWnd = NULL); CWispBaseWnd*m_pTipHelpWnd; }; #endif ================================================ FILE: Project/Wisp/Source/WispToolbar.cpp ================================================ #include "StdAfx.h" #include "WispToolbar.h" #include "WispButton.h" #include "WispEdit.h" #include "WispStatic.h" WISP_MSG_MAP_BEGIN(CWispToolbar) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP(WISP_WM_PARENT_RESIZE,OnParentResize) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispWnd) CWispToolbar::CWispToolbar() { m_CtrlType = WISP_CTRL_TOOL_BAR; m_pDIBList = NULL; m_Margin = 3; m_SeparatorWitdh = 2; } CWispToolbar::~CWispToolbar() { } bool CWispToolbar::OnDestroy(IN WISP_MSG*pMsg) { m_BTList.Clear(); return true; } bool CWispToolbar::OnParentResize(IN WISP_MSG*pMsg) { if((m_Style&WISP_TBS_WINDOW)==0) Resize(((CWispWnd*)m_ParentWnd)->m_ClientRect.cx,m_WindowRect.cy); return true; } bool CWispToolbar::OnUpdateClient(IN WISP_MSG*pMsg) { int x; if((m_Style&WISP_WS_BACK_TRANS)==0) m_pWispBase->m_pCurDrawObj->DrawToolbarBK(&m_ClientDC,&m_ClientRect); x=m_Margin; for(CBTList::IT Iter=m_BTList.Begin();Iter!=m_BTList.End();Iter++) { if(Iter->pItemWnd) { x+=Iter->pItemWnd->m_WindowRect.cx+m_Margin; } else { WISP_RECT rc; rc.x = x+m_SeparatorWitdh/2; rc.y = m_Margin; rc.cx = m_SeparatorWitdh; rc.cy = m_ClientRect.cy-m_Margin*2; m_ClientDC.DrawFrameRect(&rc,false); x+=m_SeparatorWitdh+m_Margin; } } m_ClientDC.DrawHLine(0,m_ClientRect.cx-1,m_ClientRect.cy-1,SYS_COLOR[SC_BORDER_BG]); return false; } bool CWispToolbar::OnRecalcLayout(IN WISP_MSG*pMsg) { int x,y,rx; x=m_Margin; rx = m_ClientRect.cx - m_Margin; for(CBTList::IT Iter=m_BTList.Begin();Iter!=m_BTList.End();Iter++) { if(Iter->pItemWnd) { y = CENTER_ALGN(Iter->pItemWnd->m_WindowRect.cy,m_WindowRect.cy); if(Iter->ItemStyle&WISP_TBIS_RIGHT_ALIGN) { rx -= Iter->pItemWnd->m_WindowRect.cx; Iter->pItemWnd->MoveToClient(rx,y,false); Iter->pItemWnd->Show(rxpItemWnd->MoveToClient(x,y); x+=Iter->pItemWnd->m_WindowRect.cx+m_Margin; } } else { x+=m_SeparatorWitdh+m_Margin; } if(rxm_Metrics[WISP_SM_FONT_FRAME_HEIGHT]+m_Margin*2; return CWispWnd::Create(NULL,0,y,pParentWnd->m_ClientRect.cx,Height,pParentWnd,CmdID,Style); } bool CWispToolbar::LoadToolbar(CWispDIBList*pDIBList,WISP_TOOLBAR_RES_ITEM*pResItem) { m_pDIBList = pDIBList; for(int n=0;pResItem[n].CmdID || pResItem[n].ItemStyle;n++) { if(pResItem[n].ItemStyle&WISP_TBIS_SPEARATOR) { InsertSeparator(-1,pResItem[n].ItemStyle); } else if(pResItem[n].ItemStyle&WISP_TBIS_EDIT) { InsertEdit(-1,pResItem[n].ItemStyle,pResItem[n].Width,pResItem[n].CmdID,pResItem[n].CtrlStyle,pResItem[n].pTipString); } else if(pResItem[n].ItemStyle&WISP_TBIS_STATIC_DIB) { InsertStaticDIB(-1,pResItem[n].ItemStyle,pResItem[n].CmdID,pDIBList->GetDIB(pResItem[n].DIBIndex)); } else if(pResItem[n].ItemStyle&WISP_TBIS_STATIC_STR) { InsertStaticStr(-1,pResItem[n].ItemStyle,pResItem[n].CmdID,pResItem[n].pTipString); } else { InsertButton(-1,pResItem[n].ItemStyle,pResItem[n].CmdID,pResItem[n].CtrlStyle,pDIBList->GetDIB(pResItem[n].DIBIndex),pResItem[n].pTipString); } } if(m_WindowRect.cy==0) Resize(m_WindowRect.cx,pDIBList->GetDIB(0)->Height()); RecalcLayout(); return true; } bool CWispToolbar::InsertButton(int Pos,UINT ItemStyle,UINT CmdID,UINT Style,CWispDIB*pWispDIB,WISP_CHAR*HelpString) { CBTList::IT Iter; CWispButton*pWnd; pWnd = new CWispButton; pWnd->CreateEx(pWispDIB,0,0,this,CmdID,WISP_BS_TOOLBAR_BT|WISP_WS_BACK_TRANS|Style); pWnd->Resize(pWispDIB->m_FrameBuffer.Width+4,pWispDIB->m_FrameBuffer.Height+4); pWnd->SetOwner(m_OwnerWnd); pWnd->EnableHelpTip(HelpString); pWnd->AddAdvStyle(WISP_WAS_AUTO_DELETE); if(Pos>=0) { Iter = m_BTList[Pos]; m_BTList.InsertBefore(Iter); } else { Iter = m_BTList.Append(); } Iter->ItemStyle = ItemStyle; Iter->pItemWnd = pWnd; Iter->pDIB = pWispDIB; RecalcLayout(); return true; } bool CWispToolbar::InsertEdit(int Pos,UINT ItemStyle,int Width,UINT CmdID,UINT Style,WISP_CHAR*HelpString) { int Height; CBTList::IT Iter; CWispEdit*pWnd; pWnd = new CWispEdit; Height = m_ClientDC.m_pFont->m_Height+m_Margin*2; pWnd->Create(NULL,0,0,Width,Height,this,CmdID,Style); pWnd->SetOwner(m_OwnerWnd); pWnd->EnableHelpTip(HelpString); pWnd->m_AdvStyle |= WISP_WAS_AUTO_DELETE; if(Pos>=0) { Iter = m_BTList[Pos]; m_BTList.InsertBefore(Iter); } else { Iter = m_BTList.Append(); } Iter->ItemStyle = ItemStyle; Iter->pItemWnd = pWnd; Iter->pDIB = NULL; RecalcLayout(); return true; } bool CWispToolbar::InsertSeparator(int Pos,UINT ItemStyle) { CBTList::IT Iter; if(Pos>=0) { Iter = m_BTList[Pos]; m_BTList.InsertBefore(Iter); } else { Iter = m_BTList.Append(); } Iter->ItemStyle = ItemStyle; Iter->pItemWnd = NULL; Iter->pDIB = NULL; RecalcLayout(); Update(); return true; } bool CWispToolbar::InsertStaticDIB(int Pos,UINT ItemStyle,UINT CmdID,CWispDIB*pWispDIB) { CBTList::IT Iter; CWispStaticDIB*pWnd; pWnd = new CWispStaticDIB; pWnd->Create(pWispDIB,0,0,this,CmdID); pWnd->m_AdvStyle |= WISP_WAS_AUTO_DELETE; if(Pos>=0) { Iter = m_BTList[Pos]; m_BTList.InsertBefore(Iter); } else { Iter = m_BTList.Append(); } Iter->ItemStyle = ItemStyle; Iter->pItemWnd = pWnd; Iter->pDIB = pWispDIB; RecalcLayout(); return true; } bool CWispToolbar::InsertStaticStr(int Pos,UINT ItemStyle,UINT CmdID,WISP_PCSTR String) { CBTList::IT Iter; CWispStaticStr*pWnd; pWnd = new CWispStaticStr; pWnd->Create(String,0,0,0,0,this,CmdID); pWnd->m_AdvStyle |= WISP_WAS_AUTO_DELETE; if(Pos>=0) { Iter = m_BTList[Pos]; m_BTList.InsertBefore(Iter); } else { Iter = m_BTList.Append(); } Iter->ItemStyle = ItemStyle; Iter->pItemWnd = pWnd; Iter->pDIB = NULL; pWnd->Resize(pWnd->m_WindowDC.GetTextExtent(String),pWnd->m_WindowDC.m_pFont->m_Height); RecalcLayout(); return true; } bool CWispToolbar::RemoveItem(int Pos) { CBTList::IT Iter = m_BTList[Pos]; if(Iter==NULL) return false; Iter->pItemWnd->Destroy(); m_BTList.Remove(Iter); RecalcLayout(); Update(); return true; } void CWispToolbar::SetOwner(CWispBaseWnd*pOwnerWnd) { for(CBTList::IT Iter=m_BTList.Begin();Iter!=m_BTList.End();Iter++) { if(Iter->pItemWnd) Iter->pItemWnd->SetOwner(pOwnerWnd); } CWispWnd::SetOwner(pOwnerWnd); } bool CWispToolbar::EnableItemByPos(int Pos,bool State) { CWispBaseWnd*pWnd=GetToolbarItemByPos(Pos); if(pWnd==NULL) return false; pWnd->EnableWindow(State); return true; } bool CWispToolbar::EnableItem(UINT CmdID,bool State) { CWispBaseWnd*pWnd=GetToolbarItem(CmdID); if(pWnd==NULL) return false; pWnd->EnableWindow(State); return true; } CWispBaseWnd*CWispToolbar::GetToolbarItemByPos(int Pos) { if(Pos<0 || Pos>=m_BTList.Count()) return false; CBTList::IT Iter = m_BTList[Pos]; if(Iter==NULL) return NULL; return Iter->pItemWnd; } CWispBaseWnd*CWispToolbar::GetToolbarItem(UINT CmdID) { for(CBTList::IT Iter=m_BTList.Begin();Iter!=m_BTList.End();Iter++) { if(Iter->pItemWnd && Iter->pItemWnd->m_CmdID==CmdID) return Iter->pItemWnd; } return NULL; } ================================================ FILE: Project/Wisp/Source/WispToolbar.h ================================================ #ifndef _WISP_TOOLBAR_ #define _WISP_TOOLBAR_ #include "WispWnd.h" struct WISP_TOOLBAR_ITEM { CWispBaseWnd* pItemWnd; CWispDIB* pDIB; UINT ItemStyle; }; struct WISP_TOOLBAR_RES_ITEM { UINT CmdID; int DIBIndex; UINT ItemStyle; WISP_CHAR* pTipString; int Width; int CtrlStyle; }; #define WISP_TBIS_BUTTON 0x00000000 #define WISP_TBIS_EDIT 0x00000001 #define WISP_TBIS_STATIC_DIB 0x00000002 #define WISP_TBIS_STATIC_STR 0x00000004 #define WISP_TBIS_SPEARATOR 0x00010000 #define WISP_TBIS_RIGHT_ALIGN 0x00020000 #define WISP_TBS_WINDOW 0x00010000 #define WISP_TOOLBAR_RES_STATIC_DIB(nDIB) {WISP_ID_STATIC_DIB,nDIB,WISP_TBIS_STATIC_DIB|WISP_TBIS_RIGHT_ALIGN,NULL} #define WISP_TOOLBAR_RES_STATIC_STR(Str) {WISP_ID_STATIC_STR,0,WISP_TBIS_STATIC_STR|WISP_TBIS_RIGHT_ALIGN,Str} #define WISP_TOOLBAR_RES_SEPARATOR {0,0,WISP_TBIS_SPEARATOR} #define WISP_TOOLBAR_RES_END {0,0,0,NULL,0} typedef TList CBTList; class CWispToolbar : public CWispWnd { public: CWispToolbar(); ~CWispToolbar(); public: CBTList m_BTList; CWispDIBList*m_pDIBList; int m_Margin; int m_SeparatorWitdh; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnRecalcLayout); DECLARE_WISP_MSG(OnParentResize); DECLARE_WISP_MSG(OnDestroy); public: bool CreateEx(CWispWnd*pParentWnd,int y,int Height,UINT CmdID,UINT Style); bool LoadToolbar(CWispDIBList*pDIBList,WISP_TOOLBAR_RES_ITEM*pResItem); bool InsertButton(int Pos,UINT ItemStyle,UINT CmdID,UINT Style,CWispDIB*pWispDIB,WISP_CHAR*HelpString=NULL); bool InsertEdit(int Pos,UINT ItemStyle,int Width,UINT CmdID,UINT Style,WISP_CHAR*HelpString=NULL); bool InsertSeparator(int Pos,UINT ItemStyle); bool InsertStaticDIB(int Pos,UINT ItemStyle,UINT CmdID,CWispDIB*pWispDIB); bool InsertStaticStr(int Pos,UINT ItemStyle,UINT CmdID,WISP_PCSTR String); bool RemoveItem(int Pos); CWispBaseWnd*GetToolbarItemByPos(int Pos); CWispBaseWnd*GetToolbarItem(UINT CmdID); virtual void SetOwner(CWispBaseWnd*pOwnerWnd); bool EnableItemByPos(int Pos,bool State); bool EnableItem(UINT CmdID,bool State); }; #endif ================================================ FILE: Project/Wisp/Source/WispWnd.cpp ================================================ #include "StdAfx.h" #include "WispWnd.h" #include "WispButton.h" #include "WispTipWnd.h" enum { WISP_HIT_SCROLL_CTRL_INC_BT = 0, WISP_HIT_SCROLL_CTRL_DEC_BT, WISP_HIT_SCROLL_CTRL_SLIDE_RECT, WISP_HIT_SCROLL_CTRL_SPACE_RECT, WISP_HIT_SCROLL_CTRL_SCROLL_RECT, WISP_HIT_SCROLL_CTRL_COUNT }; enum { WISP_SCROLL_CTRL_ID_PAGE_UP= 0, WISP_SCROLL_CTRL_ID_PAGE_DOWN, WISP_SCROLL_CTRL_ID_SLIDE, WISP_SCROLL_CTRL_ID_DEC_BT, WISP_SCROLL_CTRL_ID_INC_BT, WISP_SCROLL_CTRL_COUNT }; UINT ScrollCtrlID[][WISP_SCROLL_CTRL_COUNT]= { { WISP_ID_VPAGE_UP, WISP_ID_VPAGE_DOWN, WISP_ID_VSLIDE, WISP_ID_VSPIN_DEC, WISP_ID_VSPIN_INC, }, { WISP_ID_HPAGE_UP, WISP_ID_HPAGE_DOWN, WISP_ID_HSLIDE, WISP_ID_HSPIN_DEC, WISP_ID_HSPIN_INC, }, }; UINT ScrollHitCtrlType[][WISP_HIT_SCROLL_CTRL_COUNT]= { { WISP_HIT_CTRL_VERT_INC_BT, WISP_HIT_CTRL_VERT_DEC_BT, WISP_HIT_CTRL_VERT_SLIDE_RECT, WISP_HIT_CTRL_VERT_SPACE_RECT, WISP_HIT_CTRL_VERT_SCROLL_RECT, }, { WISP_HIT_CTRL_HORZ_INC_BT, WISP_HIT_CTRL_HORZ_DEC_BT, WISP_HIT_CTRL_HORZ_SLIDE_RECT, WISP_HIT_CTRL_HORZ_SPACE_RECT, WISP_HIT_CTRL_HORZ_SCROLL_RECT, }, }; WISP_MSG_MAP_BEGIN(CWispWnd) WISP_MSG_MAP_ON_COMMAND WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP(WISP_WM_PRECREATE,OnPrecreate) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_MOUSE_LEAVE,OnMouseLeave) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_UPDATE,OnUpdate) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_UPDATE_CAPTION,OnUpdateCaption) WISP_MSG_MAP(WISP_WM_UPDATE_BORDER,OnUpdateBorder) WISP_MSG_MAP(WISP_WM_UPDATE_CARET,OnUpdateCaret) WISP_MSG_MAP(WISP_WM_UPDATE_HORZ_SCROLL,OnUpdateHorzScrollBar) WISP_MSG_MAP(WISP_WM_UPDATE_VERT_SCROLL,OnUpdateVertScrollBar) WISP_MSG_MAP(WISP_WM_SCROLL_EVENT,OnScrollEvent) WISP_MSG_MAP(WISP_WM_HORZ_SCROLL_MOVE,OnHorzScrollMove) WISP_MSG_MAP(WISP_WM_VERT_SCROLL_MOVE,OnVertScrollMove) WISP_MSG_MAP(WISP_WM_MOVING,OnMoving) WISP_MSG_MAP(WISP_WM_SIZING,OnSizing) WISP_MSG_MAP(WISP_WM_MOVE,OnMove) WISP_MSG_MAP(WISP_WM_SIZE,OnSize) WISP_MSG_MAP(WISP_WM_HIT_TEST,OnHitTest) WISP_MSG_MAP(WISP_WM_MOUSE_WHEEL,OnMouseWheel) WISP_MSG_MAP(WISP_WM_TIMER,OnTimer) WISP_MSG_MAP(WISP_WM_GET_FOCUS,OnGetFocus) WISP_MSG_MAP(WISP_WM_LOST_FOCUS,OnLostFocus) WISP_MSG_MAP_END(CWispBaseWnd) WISP_MSG_CMD_MAP_BEGIN(CWispWnd) WISP_MSG_CMD_MAP(WISP_ID_CLOSE,OnCmdClose) WISP_MSG_CMD_MAP(WISP_ID_MAX,OnCmdMax) WISP_MSG_CMD_MAP(WISP_ID_MIN,OnCmdMin) WISP_MSG_CMD_MAP(WISP_ID_HPAGE_UP,OnCmdScrollPageUp) WISP_MSG_CMD_MAP(WISP_ID_HPAGE_DOWN,OnCmdScrollPageDown) WISP_MSG_CMD_MAP(WISP_ID_HSPIN_INC,OnCmdScrollSpinInc) WISP_MSG_CMD_MAP(WISP_ID_HSPIN_DEC,OnCmdScrollSpinDec) WISP_MSG_CMD_MAP(WISP_ID_HSLIDE,OnCmdScrollSlide) WISP_MSG_CMD_MAP(WISP_ID_VPAGE_UP,OnCmdScrollPageUp) WISP_MSG_CMD_MAP(WISP_ID_VPAGE_DOWN,OnCmdScrollPageDown) WISP_MSG_CMD_MAP(WISP_ID_VSPIN_INC,OnCmdScrollSpinInc) WISP_MSG_CMD_MAP(WISP_ID_VSPIN_DEC,OnCmdScrollSpinDec) WISP_MSG_CMD_MAP(WISP_ID_VSLIDE,OnCmdScrollSlide) WISP_MSG_CMD_MAP_END WISP_MSG_EVENT_MAP_BEGIN(CWispWnd) WISP_MSG_EVENT_MAP_END bool CWispWnd::OnPrecreate(IN WISP_MSG*pMsg) { if(m_pWispBase->m_pRootWnd==this) { m_pWispBase->m_pTopMostRootWnd=new CWispWnd; m_pWispBase->m_pTopMostRootWnd->Create(NULL,m_WindowRect,this,WISP_ID_TOP_MOST_ROOT,WISP_WS_VIRTUAL,WISP_SH_NORMAL); m_pWispBase->m_pTopMostRootWnd->m_AdvStyle |= WISP_WAS_AUTO_DELETE; m_pWispBase->m_pHelpTipWnd = new CWispTipWnd; m_pWispBase->m_pHelpTipWnd->Create(NULL,0,0,0,0,NULL,WISP_ID_HELP_TIP,WISP_WS_THIN_BORDER,WISP_SH_HIDDEN); m_pWispBase->m_pHelpTipWnd->m_AdvStyle |= WISP_WAS_AUTO_DELETE; } return true; } bool CWispWnd::OnGetFocus(IN WISP_MSG*pMsg) { if(m_Caret.bEnable) { //InsertTimer(WISP_ID_CARET_BLINK_TIMER,m_Caret.BlinkTime); } return true; } bool CWispWnd::OnLostFocus(IN WISP_MSG*pMsg) { if(m_Caret.bEnable) { //RemoveTimer(WISP_ID_CARET_BLINK_TIMER); } return true; } bool CWispWnd::OnTimer(IN WISP_MSG*pMsg) { WISP_RECT CaretRect,*RectBak; if(pMsg->Timer.ID == WISP_ID_CARET_BLINK_TIMER) { CaretRect.x = m_Caret.x; CaretRect.y = m_Caret.y; CaretRect.cx = m_Caret.pDIB->Width(); CaretRect.cy = m_Caret.pDIB->Height(); RectBak = m_pUpdateRect; m_pUpdateRect = &CaretRect; OnUpdateCaret(pMsg); CaretRect.x+=m_ScrWindowRect.x; CaretRect.y+=m_ScrWindowRect.y; m_pWispBase->EndDraw(&CaretRect); m_pUpdateRect = RectBak; } return true; } bool CWispWnd::OnMouseWheel(IN WISP_MSG*pMsg) { if(pMsg->MouseEvent.DeltaZ<0) SendScrollEvent(WISP_SB_VERT,WISP_SB_INC); else SendScrollEvent(WISP_SB_VERT,WISP_SB_DEC); return true; } bool CWispWnd::OnCmdClose(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg==WISP_CMD_BT_UP) { WISP_MSG Msg; Msg.Msg = WISP_WM_CLOSE; Msg.hWnd = this; return !SEND_MSG(&Msg); } return true; } bool CWispWnd::OnCmdMax(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg==WISP_CMD_BT_UP && (m_State&WISP_WST_MIN)==0) { if(m_State&WISP_WST_MAX) { MoveToScreen(m_NormalRect.x,m_NormalRect.y); Resize(m_NormalRect.cx,m_NormalRect.cy); m_State&=~WISP_WST_MAX; Update(); } else { if(m_ParentWnd) { m_NormalRect=m_ScrWindowRect; MoveToWindow(0,0); Resize(((CWispWnd*)m_ParentWnd)->m_ClientRect.cx,((CWispWnd*)m_ParentWnd)->m_ClientRect.cy); m_State|=WISP_WST_MAX; Update(); } } } return true; } bool CWispWnd::OnCmdMin(IN WISP_MSG*pMsg) { if(pMsg->Command.CmdMsg==WISP_CMD_BT_UP && (m_State&WISP_WST_MAX)==0) { if(m_State&WISP_WST_MIN) { Resize(m_NormalRect.cx,m_NormalRect.cy); m_State&=~WISP_WST_MIN; Update(); } else { m_NormalRect=m_ScrWindowRect; Resize(m_MinWndSize.cx,m_MinWndSize.cy); m_State|=WISP_WST_MIN; Update(); } } return true; } bool CWispWnd::OnCmdScrollPageUp(IN WISP_MSG*pMsg) { WISP_SB_TYPE Type = (WISP_SB_TYPE)pMsg->Command.Param1; if(m_ScrollBar[Type] && pMsg->Command.CmdMsg==WISP_CMD_BT_DOWN) { SendScrollEvent(Type,WISP_SB_PAGE_UP); } return true; } bool CWispWnd::OnCmdScrollPageDown(IN WISP_MSG*pMsg) { WISP_SB_TYPE Type = (WISP_SB_TYPE)pMsg->Command.Param1; if(m_ScrollBar[Type] && pMsg->Command.CmdMsg==WISP_CMD_BT_DOWN) { SendScrollEvent(Type,WISP_SB_PAGE_DOWN); } return true; } bool CWispWnd::OnCmdScrollSpinInc(IN WISP_MSG*pMsg) { WISP_SB_TYPE Type = (WISP_SB_TYPE)pMsg->Command.Param1; if(m_ScrollBar[Type]) { if(pMsg->Command.CmdMsg==WISP_CMD_BT_DOWN) { if(m_ScrollBar[Type]->BTSpinIncState != STATUS_DOWN) { m_ScrollBar[Type]->BTSpinIncState = STATUS_DOWN; m_pWispBase->StartMouseKeyRep(WISP_VK_LBUTTON); } SendScrollEvent(Type,WISP_SB_INC); } else m_ScrollBar[Type]->BTSpinIncState = STATUS_NORMAL; } return true; } bool CWispWnd::OnCmdScrollSpinDec(IN WISP_MSG*pMsg) { WISP_SB_TYPE Type = (WISP_SB_TYPE)pMsg->Command.Param1; if(m_ScrollBar[Type]) { if(pMsg->Command.CmdMsg==WISP_CMD_BT_DOWN) { if(m_ScrollBar[Type]->BTSpinDecState != STATUS_DOWN) { m_ScrollBar[Type]->BTSpinDecState = STATUS_DOWN; m_pWispBase->StartMouseKeyRep(WISP_VK_LBUTTON); } SendScrollEvent(Type,WISP_SB_DEC); } else m_ScrollBar[Type]->BTSpinDecState = STATUS_NORMAL; } return true; } bool CWispWnd::OnCmdScrollSlide(IN WISP_MSG*pMsg) { WISP_SB_TYPE Type = (WISP_SB_TYPE)pMsg->Command.Param1; switch(pMsg->Command.CmdMsg) { case WISP_CMD_BT_DOWN: if(m_ScrollBar[Type]->Style&WISP_SS_DRAGED_CHANGING) { m_ScrollBar[Type]->StartPos = m_ScrollBar[Type]->CurPos; } m_ScrollBar[Type]->State = STATUS_DOWN; m_pWispBase->SetMouseCaptureNotify(); break; case WISP_CMD_BT_UP: if(m_ScrollBar[Type]->Style&WISP_SS_DRAGED_CHANGING) { WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_SCROLL_EVENT; Msg.ScrollEvent.Event = WISP_SB_POS_CHANGE; Msg.ScrollEvent.SBType = Type; Msg.ScrollEvent.CurPos = m_ScrollBar[Type]->CurPos; Msg.ScrollEvent.Delta = m_ScrollBar[Type]->CurPos - m_ScrollBar[Type]->StartPos; SEND_MSG(&Msg); } m_ScrollBar[Type]->State = STATUS_NORMAL; m_pWispBase->ReleaseMouseCaptureNotify(); break; } return true; } CWispWnd::CWispWnd() { m_crBGColor = 0; m_bBGColor = false; m_pBKDIB = NULL; m_CtrlType = WISP_CTRL_WND; } CWispWnd::~CWispWnd() { } UINT CWispWnd::IsPointInCaptionBT(IN const WISP_POINT&ScrMousePT) { WISP_POINT pt; if(PtInRect(&m_ScrCaptionRect,&ScrMousePT)==false) return WISP_ID_NULL; pt=ScrMousePT; if((m_Style & WISP_WS_CAPTION)==0) return WISP_ID_NULL; PointToRect(&pt,&m_ScrCaptionRect); if((m_Style & WISP_WS_BT_CLOSE) && PtInRect(&m_CloseBTRect,&pt)) return WISP_ID_CLOSE; if((m_Style & WISP_WS_BT_MAX) && PtInRect(&m_MaxBTRect,&pt)) return WISP_ID_MAX; if((m_Style & WISP_WS_BT_MIN) && PtInRect(&m_MinBTRect,&pt)) return WISP_ID_MIN; return WISP_ID_NULL; } bool CWispWnd::OnHitTest(IN WISP_MSG*pMsg) { int Space; WISP_POINT WndPT; if((m_Style & WISP_WS_SIZABLE) && m_State==WISP_WST_NORMAL) { WndPT=pMsg->MsgMouseScrPT; PointToRect(&WndPT,&m_ScrWindowRect); Space = m_BorderSize+m_pWispBase->m_Metrics[WISP_SM_RESIZE_SPACE]; if(WndPT.xHitTest.HitAreaType = WISP_HIT_WND_RESIZE_LEFT_TOP; return true; } if(WndPT.x>m_WindowRect.cx-Space && WndPT.yHitTest.HitAreaType = WISP_HIT_WND_RESIZE_RIGHT_TOP; return true; } if(WndPT.xm_WindowRect.cy-Space) { pMsg->HitTest.HitAreaType = WISP_HIT_WND_RESIZE_LEFT_BOTTOM; return true; } if(WndPT.x>m_WindowRect.cx-Space && WndPT.y>m_WindowRect.cy-Space) { pMsg->HitTest.HitAreaType = WISP_HIT_WND_RESIZE_RIGHT_BOTTOM; return true; } if(WndPT.xHitTest.HitAreaType |= WISP_HIT_WND_RESIZE_LEFT; if(WndPT.yHitTest.HitAreaType |= WISP_HIT_WND_RESIZE_TOP; if(WndPT.x>m_WindowRect.cx-m_BorderSize) pMsg->HitTest.HitAreaType |= WISP_HIT_WND_RESIZE_RIGHT; if(WndPT.y>m_WindowRect.cy-m_BorderSize) pMsg->HitTest.HitAreaType |= WISP_HIT_WND_RESIZE_BOTTOM; if(pMsg->HitTest.HitAreaType) return true; } if((m_Style & WISP_WS_CAPTION ) && PtInRect(&m_ScrCaptionRect,&pMsg->MsgMouseScrPT)) { if(pMsg->HitTest.bKeyDown) { UINT CapBTID=IsPointInCaptionBT(pMsg->MsgMouseScrPT); switch(CapBTID) { case WISP_ID_CLOSE: pMsg->HitTest.HitAreaType=WISP_HIT_WND_BT_CLOSE; m_CloseBTState = STATUS_DOWN; break; case WISP_ID_MAX: pMsg->HitTest.HitAreaType=WISP_HIT_WND_BT_MAX; m_MaxBTState = STATUS_DOWN; break; case WISP_ID_MIN: pMsg->HitTest.HitAreaType=WISP_HIT_WND_BT_MIN; m_MinBTState = STATUS_DOWN; break; default: pMsg->HitTest.HitAreaType=WISP_HIT_WND_MOVE; return true; } Update(&m_CaptionRect); WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; Msg.Command.CmdID = CapBTID; Msg.Command.CmdMsg = WISP_CMD_BT_DOWN; SEND_MSG(&Msg); } else { pMsg->HitTest.HitAreaType=WISP_HIT_WND_MOVE; } return true; } for(int Type=0;TypebHide==false && PtInRect(&m_ScrollBar[Type]->ScrollRect,&pMsg->MsgMouseWndPT)) { pMsg->HitTest.HitAreaType = WISP_HIT_WND_NON_CLIENT; if(PtInRect(&m_ScrollBar[Type]->SlideRect,&pMsg->MsgMouseWndPT)) { pMsg->HitTest.HitCtrlType= ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_SLIDE_RECT]; } else if(PtInRect(&m_ScrollBar[Type]->SpaceRect,&pMsg->MsgMouseWndPT)) { pMsg->HitTest.HitCtrlType=ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_SPACE_RECT]; } else if(PtInRect(&m_ScrollBar[Type]->DecBTRect,&pMsg->MsgMouseWndPT)) { pMsg->HitTest.HitCtrlType=ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_DEC_BT]; } else if(PtInRect(&m_ScrollBar[Type]->IncBTRect,&pMsg->MsgMouseWndPT)) { pMsg->HitTest.HitCtrlType=ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_INC_BT]; } else pMsg->HitTest.HitCtrlType=ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_SCROLL_RECT]; return true; } } if(PtInRect(&m_ScrClientRect,&pMsg->MsgMouseScrPT)) { pMsg->HitTest.HitAreaType=WISP_HIT_WND_CLIENT; } else { if( pMsg->MsgMouseScrPT.x > m_ClientRect.x+m_ClientRect.cx|| pMsg->MsgMouseScrPT.y > m_ClientRect.y+m_ClientRect.cy) pMsg->HitTest.HitAreaType=WISP_HIT_WND_NON_CLIENT; } return true; } bool CWispWnd::OnSizing(IN WISP_MSG*pMsg) { if(m_pWispBase->m_pRootWnd==this) { m_pWispBase->m_Metrics[WISP_SM_SCREEN_CX]=pMsg->Resize.NewSize.cx; m_pWispBase->m_Metrics[WISP_SM_SCREEN_CY]=pMsg->Resize.NewSize.cy; if(m_pWispBase->ResizingFrame(pMsg->Resize.NewSize.cx,pMsg->Resize.NewSize.cy)==false) return false; } return pMsg->Resize.NewSize.cx>=m_MinWndSize.cx && pMsg->Resize.NewSize.cy>=m_MinWndSize.cy; } bool CWispWnd::OnMoving(IN WISP_MSG*pMsg) { if(m_pWispBase->m_pRootWnd==this) { m_pWispBase->m_MousePT.x-=pMsg->Move.DeltaX; m_pWispBase->m_MousePT.y-=pMsg->Move.DeltaY; m_pWispBase->m_PrevMousePT.x-=pMsg->Move.DeltaX; m_pWispBase->m_PrevMousePT.y-=pMsg->Move.DeltaY; m_pWispBase->MoveFrame(pMsg->Move.DeltaX,pMsg->Move.DeltaY); return false; } return true; } bool CWispWnd::OnMove(IN WISP_MSG*pMsg) { if(m_Style & WISP_WS_CAPTION) ProcessCaptionBTMouseMove(pMsg->MsgMouseScrPT); return true; } bool CWispWnd::OnSize(IN WISP_MSG*pMsg) { if(m_pWispBase->m_pRootWnd==this) { if(m_State!=WISP_WST_SIZING && m_pWispBase->ResizeHostFrame(m_ClientRect.cx,m_ClientRect.cy)==false) return false; if(m_pWispBase->m_pTopMostRootWnd->Resize(m_ClientRect.cx,m_ClientRect.cy)==false) return false; } if(m_Style & WISP_WS_CAPTION) ProcessCaptionBTMouseMove(pMsg->MsgMouseScrPT); return true; } bool CWispWnd::OnHorzScrollMove(IN WISP_MSG*pMsg) { if(m_ScrollBar[WISP_SB_HORZ]==NULL) return false; if(m_ScrollBar[WISP_SB_HORZ]->bHide==false) ProcessScrollBTSpinKey(WISP_SB_HORZ,pMsg); ProcessHorzScrollMouseMove(pMsg); return false; } bool CWispWnd::OnVertScrollMove(IN WISP_MSG*pMsg) { if(m_ScrollBar[WISP_SB_VERT]==NULL) return false; ProcessVertScrollMouseMove(pMsg); return false; } bool CWispWnd::OnScrollEvent(IN WISP_MSG*pMsg) { WISP_SB_TYPE Type = pMsg->ScrollEvent.SBType; WISP_SCROLL_LONG CurPos = m_ScrollBar[Type]->CurPos; switch(pMsg->ScrollEvent.Event) { case WISP_SB_DEC: m_ScrollBar[Type]->CurPos--; break; case WISP_SB_INC: m_ScrollBar[Type]->CurPos++; break; case WISP_SB_PAGE_UP: m_ScrollBar[Type]->CurPos-=m_ScrollBar[Type]->AdjustPage; break; case WISP_SB_PAGE_DOWN: m_ScrollBar[Type]->CurPos+=m_ScrollBar[Type]->AdjustPage; break; default: Update(); return true; } LimitScrollInfo(Type,false); pMsg->ScrollEvent.Delta = m_ScrollBar[Type]->CurPos-CurPos; CalcScrollSlideWithPos(Type); Update(); return true; } void CWispWnd::CalcScrollSlideWithPos(WISP_SB_TYPE Type) { switch(Type) { case WISP_SB_HORZ: CalcHorzScrollSlideWithPos(); break; case WISP_SB_VERT: CalcVertScrollSlideWithPos(); break; } } void CWispWnd::CalcVertScrollSlideWithPos() { if(m_ScrollBar[WISP_SB_VERT]==NULL) return; m_ScrollBar[WISP_SB_VERT]->DecBTRect.cx = m_ScrollBar[WISP_SB_VERT]->DecBTRect.cy = m_ScrollBar[WISP_SB_VERT]->IncBTRect.cx = m_ScrollBar[WISP_SB_VERT]->IncBTRect.cy = m_ScrollBar[WISP_SB_VERT]->BarSize; m_ScrollBar[WISP_SB_VERT]->IncBTRect.x = m_ScrollBar[WISP_SB_VERT]->DecBTRect.x = m_ScrollBar[WISP_SB_VERT]->ScrollRect.x = m_ClientRect.x+m_ClientRect.cx; m_ScrollBar[WISP_SB_VERT]->DecBTRect.y = m_ScrollBar[WISP_SB_VERT]->ScrollRect.y = m_ClientRect.y; m_ScrollBar[WISP_SB_VERT]->ScrollRect.cx = m_ScrollBar[WISP_SB_VERT]->BarSize; m_ScrollBar[WISP_SB_VERT]->ScrollRect.cy = m_ClientRect.cy; m_ScrollBar[WISP_SB_VERT]->IncBTRect.y = m_ScrollBar[WISP_SB_VERT]->ScrollRect.y + m_ScrollBar[WISP_SB_VERT]->ScrollRect.cy - m_ScrollBar[WISP_SB_VERT]->IncBTRect.cy; m_ScrollBar[WISP_SB_VERT]->SpaceRect.x = m_ClientRect.x+m_ClientRect.cx; m_ScrollBar[WISP_SB_VERT]->SpaceRect.y = m_ClientRect.y+m_ScrollBar[WISP_SB_VERT]->BarSize; m_ScrollBar[WISP_SB_VERT]->SpaceRect.cx = m_ScrollBar[WISP_SB_VERT]->BarSize; m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy = m_ClientRect.cy-m_ScrollBar[WISP_SB_VERT]->BarSize*2; m_ScrollBar[WISP_SB_VERT]->SlideRect.x = m_ScrollBar[WISP_SB_VERT]->SpaceRect.x+1; m_ScrollBar[WISP_SB_VERT]->SlideRect.cx = m_ScrollBar[WISP_SB_VERT]->SpaceRect.cx-2; m_ScrollBar[WISP_SB_VERT]->SlideRect.y = m_ScrollBar[WISP_SB_VERT]->SpaceRect.y; m_ScrollBar[WISP_SB_VERT]->SlideRect.cy = m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy; if(m_ScrollBar[WISP_SB_VERT]->MaxPos - m_ScrollBar[WISP_SB_VERT]->MinPos) { m_ScrollBar[WISP_SB_VERT]->SlideRect.cy = (int)(m_ScrollBar[WISP_SB_VERT]->SlideRect.cy*m_ScrollBar[WISP_SB_VERT]->AdjustPage/(m_ScrollBar[WISP_SB_VERT]->MaxPos - m_ScrollBar[WISP_SB_VERT]->MinPos)); MIN_LIMIT(m_ScrollBar[WISP_SB_VERT]->SlideRect.cy,WISP_SCROLL_MIN_SLIDE_SIZE); MAX_LIMIT(m_ScrollBar[WISP_SB_VERT]->SlideRect.cy,m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy); if(m_ScrollBar[WISP_SB_VERT]->CurPos==m_ScrollBar[WISP_SB_VERT]->MaxPos-m_ScrollBar[WISP_SB_VERT]->AdjustPage) m_ScrollBar[WISP_SB_VERT]->SlideRect.y+=m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy-m_ScrollBar[WISP_SB_VERT]->SlideRect.cy; else m_ScrollBar[WISP_SB_VERT]->SlideRect.y+=(int)(m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy*m_ScrollBar[WISP_SB_VERT]->CurPos/(m_ScrollBar[WISP_SB_VERT]->MaxPos - m_ScrollBar[WISP_SB_VERT]->MinPos)); if(m_ScrollBar[WISP_SB_VERT]->SlideRect.y+m_ScrollBar[WISP_SB_VERT]->SlideRect.cy>m_ScrollBar[WISP_SB_VERT]->SpaceRect.y+m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy) m_ScrollBar[WISP_SB_VERT]->SlideRect.y=(int)(m_ScrollBar[WISP_SB_VERT]->SpaceRect.y+m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy-m_ScrollBar[WISP_SB_VERT]->SlideRect.cy); } else { m_ScrollBar[WISP_SB_VERT]->SlideRect.cy=m_ScrollBar[WISP_SB_VERT]->SlideRect.cx=0; } } void CWispWnd::CalcHorzScrollSlideWithPos() { if(m_ScrollBar[WISP_SB_HORZ]==NULL) return; m_ScrollBar[WISP_SB_HORZ]->IncBTRect.cx = m_ScrollBar[WISP_SB_HORZ]->IncBTRect.cy = m_ScrollBar[WISP_SB_HORZ]->DecBTRect.cx = m_ScrollBar[WISP_SB_HORZ]->DecBTRect.cy = m_ScrollBar[WISP_SB_HORZ]->BarSize; m_ScrollBar[WISP_SB_HORZ]->DecBTRect.x = m_ScrollBar[WISP_SB_HORZ]->ScrollRect.x = m_ClientRect.x; m_ScrollBar[WISP_SB_HORZ]->IncBTRect.x = m_ScrollBar[WISP_SB_HORZ]->ScrollRect.x + m_ScrollBar[WISP_SB_HORZ]->ScrollRect.cx - m_ScrollBar[WISP_SB_HORZ]->IncBTRect.cx; m_ScrollBar[WISP_SB_HORZ]->IncBTRect.y = m_ScrollBar[WISP_SB_HORZ]->DecBTRect.y = m_ScrollBar[WISP_SB_HORZ]->ScrollRect.y = m_ClientRect.y+m_ClientRect.cy; m_ScrollBar[WISP_SB_HORZ]->ScrollRect.cx = m_ClientRect.cx; m_ScrollBar[WISP_SB_HORZ]->ScrollRect.cy = m_ScrollBar[WISP_SB_HORZ]->BarSize; m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x=m_ClientRect.x+m_ScrollBar[WISP_SB_HORZ]->BarSize; m_ScrollBar[WISP_SB_HORZ]->SpaceRect.y=m_ClientRect.y+m_ClientRect.cy; m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx=m_ClientRect.cx-m_ScrollBar[WISP_SB_HORZ]->BarSize*2; m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cy=m_ScrollBar[WISP_SB_HORZ]->BarSize; m_ScrollBar[WISP_SB_HORZ]->SlideRect.x=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x; m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx; m_ScrollBar[WISP_SB_HORZ]->SlideRect.y=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.y+1; m_ScrollBar[WISP_SB_HORZ]->SlideRect.cy=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cy-2; if(m_ScrollBar[WISP_SB_HORZ]->MaxPos - m_ScrollBar[WISP_SB_HORZ]->MinPos) { m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx=(int)(m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx*m_ScrollBar[WISP_SB_HORZ]->AdjustPage/(m_ScrollBar[WISP_SB_HORZ]->MaxPos - m_ScrollBar[WISP_SB_HORZ]->MinPos)); MIN_LIMIT(m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx,WISP_SCROLL_MIN_SLIDE_SIZE); MAX_LIMIT(m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx,m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx); if(m_ScrollBar[WISP_SB_HORZ]->CurPos==m_ScrollBar[WISP_SB_HORZ]->MaxPos-m_ScrollBar[WISP_SB_HORZ]->AdjustPage) m_ScrollBar[WISP_SB_HORZ]->SlideRect.x+=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx-m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx; else m_ScrollBar[WISP_SB_HORZ]->SlideRect.x+=(int)(m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx*m_ScrollBar[WISP_SB_HORZ]->CurPos/(m_ScrollBar[WISP_SB_HORZ]->MaxPos - m_ScrollBar[WISP_SB_HORZ]->MinPos)); if(m_ScrollBar[WISP_SB_HORZ]->SlideRect.x+m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx>m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x+m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx) m_ScrollBar[WISP_SB_HORZ]->SlideRect.x=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x+m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx-m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx; } else { m_ScrollBar[WISP_SB_HORZ]->SlideRect.cy=m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx=0; } } void CWispWnd::ProcessScrollBTSpinKey(IN WISP_SB_TYPE Type,IN WISP_MSG*pMsg) { if(pMsg->MouseEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_DEC_BT]) { if(m_ScrollBar[Type]->BTSpinDecState == STATUS_NORMAL) { m_ScrollBar[Type]->BTSpinDecState = STATUS_HOVER; Update(&m_ScrollBar[Type]->ScrollRect); } } else { if(m_ScrollBar[Type]->BTSpinDecState != STATUS_NORMAL) { m_ScrollBar[Type]->BTSpinDecState = STATUS_NORMAL; if(m_pWispBase->m_RepKeyIndex==WISP_VK_LBUTTON) m_pWispBase->StopMouseKeyRep(); Update(&m_ScrollBar[Type]->ScrollRect); } } if(pMsg->MouseEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_INC_BT]) { if(m_ScrollBar[Type]->BTSpinIncState == STATUS_NORMAL) { m_ScrollBar[Type]->BTSpinIncState = STATUS_HOVER; Update(&m_ScrollBar[Type]->ScrollRect); } } else { if(m_ScrollBar[Type]->BTSpinIncState != STATUS_NORMAL) { m_ScrollBar[Type]->BTSpinIncState = STATUS_NORMAL; if(m_pWispBase->m_RepKeyIndex==WISP_VK_LBUTTON) m_pWispBase->StopMouseKeyRep(); Update(&m_ScrollBar[Type]->ScrollRect); } } if(pMsg->bMsgLBTDown==false && m_pWispBase->m_RepKeyIndex==WISP_VK_LBUTTON) m_pWispBase->m_RepKeyIndex=WISP_VK_NULL; } void CWispWnd::ProcessHorzScrollMouseMove(IN WISP_MSG*pMsg) { WISP_SCROLL_LONG CurPos; if(pMsg->MsgMouseWndPT.xSlideRect.x + m_ScrollBar[WISP_SB_HORZ]->HotPos && pMsg->MouseEvent.DeltaX>0) return; if(pMsg->MsgMouseWndPT.x>m_ScrollBar[WISP_SB_HORZ]->SlideRect.x + m_ScrollBar[WISP_SB_HORZ]->HotPos && pMsg->MouseEvent.DeltaX<0) return; WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_SCROLL_EVENT; Msg.ScrollEvent.Event = WISP_SB_POS_CHANGE; Msg.ScrollEvent.SBType = WISP_SB_HORZ; m_ScrollBar[WISP_SB_HORZ]->SlideRect.x+=pMsg->MouseEvent.DeltaX; if(m_ScrollBar[WISP_SB_HORZ]->SlideRect.x+m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx>=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x+m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx) { m_ScrollBar[WISP_SB_HORZ]->SlideRect.x=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x+m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx-m_ScrollBar[WISP_SB_HORZ]->SlideRect.cx; CurPos = m_ScrollBar[WISP_SB_HORZ]->MaxPos - m_ScrollBar[WISP_SB_HORZ]->AdjustPage; } else if(m_ScrollBar[WISP_SB_HORZ]->SlideRect.xSpaceRect.x) { m_ScrollBar[WISP_SB_HORZ]->SlideRect.x=m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x; CurPos = m_ScrollBar[WISP_SB_HORZ]->MinPos; } else { #ifdef WISP_SCROLL_LONGLONG CurPos = (m_ScrollBar[WISP_SB_HORZ]->SlideRect.x - m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x) * (m_ScrollBar[WISP_SB_HORZ]->MaxPos - m_ScrollBar[WISP_SB_HORZ]->MinPos) / m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx; #else CurPos = (LONG)((LONGLONG)(m_ScrollBar[WISP_SB_HORZ]->SlideRect.x - m_ScrollBar[WISP_SB_HORZ]->SpaceRect.x) * (LONGLONG)(m_ScrollBar[WISP_SB_HORZ]->MaxPos - m_ScrollBar[WISP_SB_HORZ]->MinPos) / (LONGLONG)m_ScrollBar[WISP_SB_HORZ]->SpaceRect.cx); #endif } if(m_ScrollBar[WISP_SB_HORZ]->Style&WISP_SS_DRAGED_CHANGING) { m_ScrollBar[WISP_SB_HORZ]->CurPos = CurPos; Update(&m_ScrollBar[WISP_SB_HORZ]->ScrollRect); } else { Msg.ScrollEvent.Delta = CurPos - m_ScrollBar[WISP_SB_HORZ]->CurPos; Msg.ScrollEvent.CurPos = m_ScrollBar[WISP_SB_HORZ]->CurPos = CurPos; SEND_MSG(&Msg); Update(); } return; } void CWispWnd::ProcessVertScrollMouseMove(IN WISP_MSG*pMsg) { WISP_SCROLL_LONG CurPos; if(pMsg->MouseEvent.DeltaY==0) return; if(pMsg->MsgMouseWndPT.ySlideRect.y + m_ScrollBar[WISP_SB_VERT]->HotPos && pMsg->MouseEvent.DeltaY>0) return; if(pMsg->MsgMouseWndPT.y>m_ScrollBar[WISP_SB_VERT]->SlideRect.y + m_ScrollBar[WISP_SB_VERT]->HotPos && pMsg->MouseEvent.DeltaY<0) return; WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_SCROLL_EVENT; Msg.ScrollEvent.Event = WISP_SB_POS_CHANGE; Msg.ScrollEvent.SBType = WISP_SB_VERT; m_ScrollBar[WISP_SB_VERT]->SlideRect.y+=pMsg->MouseEvent.DeltaY; if(m_ScrollBar[WISP_SB_VERT]->SlideRect.y+m_ScrollBar[WISP_SB_VERT]->SlideRect.cy>=m_ScrollBar[WISP_SB_VERT]->SpaceRect.y+m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy) { m_ScrollBar[WISP_SB_VERT]->SlideRect.y = m_ScrollBar[WISP_SB_VERT]->SpaceRect.y+m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy-m_ScrollBar[WISP_SB_VERT]->SlideRect.cy; CurPos = m_ScrollBar[WISP_SB_VERT]->MaxPos - m_ScrollBar[WISP_SB_VERT]->AdjustPage; } else if(m_ScrollBar[WISP_SB_VERT]->SlideRect.ySpaceRect.y) { m_ScrollBar[WISP_SB_VERT]->SlideRect.y=m_ScrollBar[WISP_SB_VERT]->SpaceRect.y; CurPos = m_ScrollBar[WISP_SB_VERT]->MinPos; } else { #ifdef WISP_SCROLL_LONGLONG CurPos =(LONG)((LONGLONG)(m_ScrollBar[WISP_SB_VERT]->SlideRect.y - m_ScrollBar[WISP_SB_VERT]->SpaceRect.y)*(LONGLONG)(m_ScrollBar[WISP_SB_VERT]->MaxPos - m_ScrollBar[WISP_SB_VERT]->MinPos) / (LONGLONG)m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy); #else CurPos = (m_ScrollBar[WISP_SB_VERT]->SlideRect.y - m_ScrollBar[WISP_SB_VERT]->SpaceRect.y)*(m_ScrollBar[WISP_SB_VERT]->MaxPos - m_ScrollBar[WISP_SB_VERT]->MinPos) / m_ScrollBar[WISP_SB_VERT]->SpaceRect.cy; #endif } if(m_ScrollBar[WISP_SB_VERT]->Style&WISP_SS_DRAGED_CHANGING) { m_ScrollBar[WISP_SB_VERT]->CurPos = CurPos; Update(&m_ScrollBar[WISP_SB_VERT]->ScrollRect); } else { Msg.ScrollEvent.Delta = CurPos - m_ScrollBar[WISP_SB_VERT]->CurPos; Msg.ScrollEvent.CurPos = m_ScrollBar[WISP_SB_VERT]->CurPos = CurPos; SEND_MSG(&Msg); Update(); } return; } void CWispWnd::ProcessCaptionBTMouseMove(IN const WISP_POINT&ScrMousePT) { WISP_POINT pt; pt=ScrMousePT; PointToRect(&pt,&m_ScrCaptionRect); if(m_Style & WISP_WS_BT_CLOSE) { if(PtInRect(&m_CloseBTRect,&pt)) { if(m_CloseBTState==STATUS_NORMAL) { m_CloseBTState = STATUS_HOVER; Update(&m_CaptionRect); } } else { if(m_CloseBTState!=STATUS_NORMAL) { m_CloseBTState = STATUS_NORMAL; Update(&m_CaptionRect); } } } if(m_Style & WISP_WS_BT_MAX) { if(PtInRect(&m_MaxBTRect,&pt)) { if(m_MaxBTState==STATUS_NORMAL) { m_MaxBTState = STATUS_HOVER; Update(&m_CaptionRect); } } else { if(m_MaxBTState!=STATUS_NORMAL) { m_MaxBTState = STATUS_NORMAL; Update(&m_CaptionRect); } } } if(m_Style & WISP_WS_BT_MIN) { if(PtInRect(&m_MinBTRect,&pt)) { if(m_MinBTState==STATUS_NORMAL) { m_MinBTState = STATUS_HOVER; Update(&m_CaptionRect); } } else { if(m_MinBTState!=STATUS_NORMAL) { m_MinBTState = STATUS_NORMAL; Update(&m_CaptionRect); } } } } bool CWispWnd::OnMouseMove(IN WISP_MSG*pMsg) { if(m_Style & WISP_WS_CAPTION) ProcessCaptionBTMouseMove(pMsg->MsgMouseScrPT); for(UINT Type = WISP_SB_START;Type < WISP_SB_COUNT ;Type++) { if(m_ScrollBar[Type] && m_ScrollBar[Type]->bHide==false) ProcessScrollBTSpinKey((WISP_SB_TYPE)Type,pMsg); } return true; } bool CWispWnd::OnMouseLeave(IN WISP_MSG*pMsg) { bool Result = true; if(m_Style & WISP_WS_CAPTION) ProcessCaptionBTMouseMove(pMsg->MsgMouseScrPT); for(UINT Type = WISP_SB_START;Type < WISP_SB_COUNT ;Type++) { if(m_ScrollBar[Type] && m_ScrollBar[Type]->bHide==false) { ProcessScrollBTSpinKey((WISP_SB_TYPE)Type,pMsg); if(m_ScrollBar[Type]->State == STATUS_DOWN) Result = false; } } return Result; } void CWispWnd::ProcessScrollMouseKey(IN WISP_SB_TYPE Type,IN WISP_MSG*pMsg) { bool bPageUp; WISP_MSG Msg; if(pMsg->KeyEvent.bKeyDown) { if(pMsg->KeyEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_DEC_BT]) { Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; Msg.Command.CmdID = ScrollCtrlID[Type][WISP_SCROLL_CTRL_ID_DEC_BT]; Msg.Command.CmdMsg = WISP_CMD_BT_DOWN; Msg.Command.Param1 = (int)Type; SEND_MSG(&Msg); } if(pMsg->KeyEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_INC_BT]) { Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; Msg.Command.CmdID = ScrollCtrlID[Type][WISP_SCROLL_CTRL_ID_INC_BT]; Msg.Command.CmdMsg = WISP_CMD_BT_DOWN; Msg.Command.Param1 = (int)Type; SEND_MSG(&Msg); } if(m_ScrollBar[Type] && pMsg->KeyEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_SPACE_RECT]) {//ֱҳ Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; bPageUp = false; switch(Type) { case WISP_SB_VERT: bPageUp = pMsg->MsgMouseWndPT.y < m_ScrollBar[WISP_SB_VERT]->SlideRect.y; break; case WISP_SB_HORZ: bPageUp = pMsg->MsgMouseWndPT.x < m_ScrollBar[WISP_SB_HORZ]->SlideRect.x; break; } Msg.Command.CmdID = bPageUp?ScrollCtrlID[Type][WISP_SCROLL_CTRL_ID_PAGE_UP]:ScrollCtrlID[Type][WISP_SCROLL_CTRL_ID_PAGE_DOWN]; Msg.Command.CmdMsg = WISP_CMD_BT_DOWN; Msg.Command.Param1 = (int)Type; SEND_MSG(&Msg); } if(m_ScrollBar[Type]->State!=STATUS_DOWN && pMsg->KeyEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_SLIDE_RECT]) {//ֱλ switch(Type) { case WISP_SB_VERT: m_ScrollBar[WISP_SB_VERT]->HotPos = pMsg->MsgMouseWndPT.y - m_ScrollBar[WISP_SB_VERT]->SlideRect.y; break; case WISP_SB_HORZ: m_ScrollBar[WISP_SB_HORZ]->HotPos = pMsg->MsgMouseWndPT.x - m_ScrollBar[WISP_SB_HORZ]->SlideRect.x; break; } Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; Msg.Command.CmdID = ScrollCtrlID[Type][WISP_SCROLL_CTRL_ID_SLIDE]; Msg.Command.CmdMsg = WISP_CMD_BT_DOWN; Msg.Command.Param1 = (int)Type; SEND_MSG(&Msg); } } else { if(pMsg->KeyEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_DEC_BT]) { m_ScrollBar[Type]->BTSpinDecState = STATUS_HOVER; Update(&m_ScrollBar[Type]->ScrollRect); } if(pMsg->KeyEvent.HitCtrlType == ScrollHitCtrlType[Type][WISP_HIT_SCROLL_CTRL_INC_BT]) { m_ScrollBar[Type]->BTSpinIncState = STATUS_HOVER; Update(&m_ScrollBar[Type]->ScrollRect); } if(m_ScrollBar[Type]->State==STATUS_DOWN) { WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; Msg.Command.CmdID = ScrollCtrlID[Type][WISP_SCROLL_CTRL_ID_SLIDE]; Msg.Command.CmdMsg = WISP_CMD_BT_UP; Msg.Command.Param1 = (int)Type; SEND_MSG(&Msg); } } } void CWispWnd::ProcessCaptionBTMouseKeyUp(IN const WISP_POINT&ScrMousePT) { bool bSendCmd; UINT CapBTID=IsPointInCaptionBT(ScrMousePT); switch(CapBTID) { case WISP_ID_CLOSE: bSendCmd = m_CloseBTState == STATUS_DOWN; m_CloseBTState = STATUS_HOVER; break; case WISP_ID_MAX: bSendCmd = m_MaxBTState == STATUS_DOWN; m_MaxBTState = STATUS_HOVER; break; case WISP_ID_MIN: bSendCmd = m_MinBTState == STATUS_DOWN; m_MinBTState = STATUS_HOVER; break; default: return; } Update(&m_CaptionRect); if(bSendCmd==false) return; WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_COMMAND; Msg.Command.CtrlType= WISP_CTRL_SYS_TYPE; Msg.Command.CmdID = CapBTID; Msg.Command.CmdMsg = WISP_CMD_BT_UP; if(SEND_MSG(&Msg)) { Msg.hWnd=this; Msg.Msg=WISP_WM_EVENT; SEND_MSG(&Msg); } } bool CWispWnd::OnKeyEvent(IN WISP_MSG*pMsg) { switch(pMsg->KeyEvent.KeyType) { case WISP_VK_LBUTTON: // for(UINT Type = WISP_SB_START;TypebHide==false) ProcessScrollMouseKey((WISP_SB_TYPE)Type,pMsg); } if(pMsg->KeyEvent.bKeyDown) { } else { ProcessCaptionBTMouseKeyUp(pMsg->MsgMouseScrPT); if(m_ScrollBar[WISP_SB_VERT] && m_ScrollBar[WISP_SB_VERT]->State==STATUS_DOWN) m_ScrollBar[WISP_SB_VERT]->State=STATUS_NORMAL; if(m_ScrollBar[WISP_SB_HORZ] && m_ScrollBar[WISP_SB_HORZ]->State==STATUS_DOWN) m_ScrollBar[WISP_SB_HORZ]->State=STATUS_NORMAL; } break; case WISP_MOD_CTRL|WISP_VK_UP: if(pMsg->KeyEvent.bKeyDown && m_ScrollBar[WISP_SB_VERT] && m_ScrollBar[WISP_SB_VERT]->bHide == false) { SendScrollEvent(WISP_SB_VERT,WISP_SB_DEC); return false; } break; case WISP_MOD_CTRL|WISP_VK_DOWN: if(pMsg->KeyEvent.bKeyDown && m_ScrollBar[WISP_SB_VERT] && m_ScrollBar[WISP_SB_VERT]->bHide == false) { SendScrollEvent(WISP_SB_VERT,WISP_SB_INC); return false; } break; case WISP_MOD_CTRL|WISP_VK_LEFT: if(pMsg->KeyEvent.bKeyDown && m_ScrollBar[WISP_SB_HORZ] && m_ScrollBar[WISP_SB_HORZ]->bHide == false) { SendScrollEvent(WISP_SB_HORZ,WISP_SB_DEC); return false; } break; case WISP_MOD_CTRL|WISP_VK_RIGHT: if(pMsg->KeyEvent.bKeyDown && m_ScrollBar[WISP_SB_HORZ] && m_ScrollBar[WISP_SB_HORZ]->bHide == false) { SendScrollEvent(WISP_SB_HORZ,WISP_SB_INC); return false; } break; case WISP_VK_PAGE_UP: if(pMsg->KeyEvent.bKeyDown) SendScrollEvent(WISP_SB_VERT,WISP_SB_PAGE_UP); break; case WISP_VK_PAGE_DOWN: if(pMsg->KeyEvent.bKeyDown) SendScrollEvent(WISP_SB_VERT,WISP_SB_PAGE_DOWN); break; default: break; } return true; } bool CWispWnd::OnUpdate(IN WISP_MSG*pMsg) { WISP_MSG Msg; CWispBaseWnd*pUpdateWnd; if(m_pUpdateRect==NULL) return true; Msg.hWnd=this; if((m_Style & WISP_WS_VIRTUAL)==0) { if(IsRectVisible(m_pUpdateRect,&m_ClientRect)) { Msg.Msg=WISP_WM_UPDATE_CLIENT; SEND_MSG(&Msg); if(m_Caret.bEnable) { Msg.Msg=WISP_WM_UPDATE_CARET; SEND_MSG(&Msg); } } if((m_Style & WISP_WS_BORDER) && m_BorderSize) { if(IsRectVisible(m_pUpdateRect,&m_WindowRect)) { Msg.Msg=WISP_WM_UPDATE_BORDER; SEND_MSG(&Msg); } } if(m_ScrollBar[WISP_SB_HORZ] && m_ScrollBar[WISP_SB_HORZ]->bHide==false) { if(IsRectVisible(m_pUpdateRect,&m_ScrollBar[WISP_SB_HORZ]->ScrollRect)) { Msg.Msg=WISP_WM_UPDATE_HORZ_SCROLL; SEND_MSG(&Msg); } } if(m_ScrollBar[WISP_SB_VERT] && m_ScrollBar[WISP_SB_VERT]->bHide==false) { if(IsRectVisible(m_pUpdateRect,&m_ScrollBar[WISP_SB_VERT]->ScrollRect)) { Msg.Msg=WISP_WM_UPDATE_VERT_SCROLL; SEND_MSG(&Msg); } } if(m_ScrollBar[WISP_SB_HORZ] && m_ScrollBar[WISP_SB_VERT]) { WISP_RECT BlankRect; BlankRect.x=m_ClientRect.x+m_ClientRect.cx; BlankRect.y=m_ClientRect.y+m_ClientRect.cy; BlankRect.cx=m_WindowRect.cx-BlankRect.x-m_BorderSize; BlankRect.cy=m_WindowRect.cy-BlankRect.y-m_BorderSize; m_WindowDC.DrawFullRect(&BlankRect,m_pWispBase->m_pCurDrawObj->m_crSystem[SC_BORDER_BG]); } if(m_Style & WISP_WS_CAPTION) { if(IsRectVisible(m_pUpdateRect,&m_CaptionRect)) { Msg.Msg=WISP_WM_UPDATE_CAPTION; SEND_MSG(&Msg); } } } pUpdateWnd=m_ChildWnd; while(pUpdateWnd) { if(pUpdateWnd->m_ShowMode!=WISP_SH_HIDDEN) { if(pUpdateWnd->m_pUpdateRect && IsRectVisible(pUpdateWnd->m_pUpdateRect,&pUpdateWnd->m_WindowRect)) { Msg.hWnd=pUpdateWnd; Msg.Msg=WISP_WM_UPDATE; SEND_MSG(&Msg); pUpdateWnd->m_pUpdateRect=NULL; } } pUpdateWnd=pUpdateWnd->m_NextWnd; } m_pUpdateRect=NULL; return true; } bool CWispWnd::OnUpdateClient(IN WISP_MSG*pMsg) { if(m_Style & WISP_WS_BACK_TRANS) return true; if(m_pBKDIB) { m_ClientDC.DrawDIBTiled(m_pBKDIB); return true; } if(m_bBGColor) m_WindowDC.DrawFullRect(&m_ClientRect, m_crBGColor); else m_pWispBase->m_pCurDrawObj->DrawClient(&m_WindowDC,&m_ClientRect); return true; } bool CWispWnd::OnUpdateCaption(IN WISP_MSG*pMsg) { int x,y; WISP_RECT rc; m_pWispBase->m_pCurDrawObj->DrawCaption(&m_WindowDC,&m_CaptionRect); x=2; if(m_pTitleDIB) { m_CaptionDC.DrawDIB(x,CENTER_ALGN(m_pTitleDIB->m_FrameBuffer.Height,m_CaptionRect.cy),m_pTitleDIB); x+=m_pTitleDIB->m_FrameBuffer.Width; } x+=m_CaptionDC.m_pFont->m_Width; y=(m_CaptionRect.cy-m_CaptionDC.m_pFont->m_Height)/2; if(m_WndText.m_Length) { rc.x = x; rc.y = y; rc.cx = m_CaptionRect.cx - 60; rc.cy = 14; m_CaptionDC.DrawString(m_WndText,&rc,WISP_DT_END_ELLIPSIS|WISP_DT_SINGLELINE); } if(m_Style & WISP_WS_BT_CLOSE) { m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_CaptionDC,&m_CloseBTRect, WISP_SSI_CLOSE, m_CloseBTState); } if(m_Style & WISP_WS_BT_MAX) { m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_CaptionDC,&m_MaxBTRect,m_State&WISP_WST_MAX?WISP_SSI_RESTORE:WISP_SSI_MAXIMIZE,m_State&WISP_WST_MIN?STATUS_DISABLED:m_MaxBTState); } if(m_Style & WISP_WS_BT_MIN) { m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_CaptionDC,&m_MinBTRect,m_State&WISP_WST_MIN?WISP_SSI_RESTORE:WISP_SSI_MINIMIZE,m_State&WISP_WST_MAX?STATUS_DISABLED:m_MinBTState); } return true; } bool CWispWnd::OnUpdateBorder(IN WISP_MSG*pMsg) { if((m_Style & WISP_WS_BORDER)==0) return false; m_pWispBase->m_pCurDrawObj->DrawBorder(&m_WindowDC,&m_WindowRect,m_BorderSize); return true; } bool CWispWnd::OnUpdateCaret(IN WISP_MSG*pMsg) { if(m_Caret.pDIB==NULL) return false; if(m_pWispBase->m_pFocusWnd!=this) return false; m_ClientDC.DrawVLine(m_Caret.x ,m_Caret.y+1,m_Caret.y+m_ClientDC.m_pFont->m_Height-2,m_crCaret); m_ClientDC.DrawVLine(m_Caret.x+1,m_Caret.y+1,m_Caret.y+m_ClientDC.m_pFont->m_Height-2,m_crCaret); return true; } bool CWispWnd::OnUpdateHorzScrollBar(IN WISP_MSG*pMsg) { m_pWispBase->m_pCurDrawObj->DrawHorzScrollRect(&m_WindowDC,&m_ScrollBar[WISP_SB_HORZ]->SpaceRect); m_pWispBase->m_pCurDrawObj->DrawHorzScrollSlideRect(&m_WindowDC,&m_ScrollBar[WISP_SB_HORZ]->SlideRect); WISP_RECT rc = {m_ClientRect.x, m_ClientRect.y+m_ClientRect.cy, m_ScrollBar[WISP_SB_HORZ]->BarSize, m_ScrollBar[WISP_SB_HORZ]->BarSize}; m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_WindowDC, &rc, WISP_SSI_HORZ_DEC_SPIN, m_ScrollBar[WISP_SB_HORZ]->BTSpinDecState); rc.x = m_ClientRect.x+m_ClientRect.cx-m_ScrollBar[WISP_SB_HORZ]->BarSize; m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_WindowDC, &rc, WISP_SSI_HORZ_INC_SPIN, m_ScrollBar[WISP_SB_HORZ]->BTSpinIncState); return true; } bool CWispWnd::OnUpdateVertScrollBar(IN WISP_MSG*pMsg) { m_pWispBase->m_pCurDrawObj->DrawVertScrollRect(&m_WindowDC,&m_ScrollBar[WISP_SB_VERT]->SpaceRect); m_pWispBase->m_pCurDrawObj->DrawVertScrollSlideRect(&m_WindowDC,&m_ScrollBar[WISP_SB_VERT]->SlideRect); WISP_RECT rc = {m_ClientRect.x+m_ClientRect.cx, m_ClientRect.y, m_ScrollBar[WISP_SB_VERT]->BarSize, m_ScrollBar[WISP_SB_VERT]->BarSize}; m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_WindowDC, &rc, WISP_SSI_VERT_DEC_SPIN, m_ScrollBar[WISP_SB_VERT]->BTSpinDecState); rc.y = m_ClientRect.y+m_ClientRect.cy-m_ScrollBar[WISP_SB_VERT]->BarSize; m_pWispBase->m_pCurDrawObj->DrawSystemStandardIcon(&m_WindowDC, &rc, WISP_SSI_VERT_INC_SPIN, m_ScrollBar[WISP_SB_VERT]->BTSpinIncState); return true; } bool CWispWnd::Create( IN WISP_CHAR*Name,IN const CWispRect&Rect,IN CWispBaseWnd*pParentWnd,IN UINT CmdID,IN UINT Style,IN UINT ShowMode) { return Create(Name,Rect.x,Rect.y,Rect.cx,Rect.cy,pParentWnd,CmdID,Style,ShowMode); } bool CWispWnd::Create(IN WISP_CHAR*Name,IN int x,IN int y,IN int cx,IN int cy,IN CWispBaseWnd*pParentWnd,IN UINT CmdID,IN UINT Style,IN UINT ShowMode) { if(CWispBaseWnd::Create(Name,x,y,cx,cy,pParentWnd,CmdID,Style|WISP_WS_ADV_WND,ShowMode)==false) return false; if(m_ClientDC.AttachWnd(this,&m_ScrClientRect)==false) return false; if(m_CaptionDC.AttachWnd(this,&m_ScrCaptionRect)==false) return false; m_CaptionDC.SetTextColor(SYS_COLOR[SC_WHITE]); if(InitWnd()==false) return false; RecalcLayout(); m_State = WISP_WST_NORMAL; WISP_MSG Msg; Msg.hWnd=this; Msg.Msg=WISP_WM_PRECREATE; if(SEND_MSG(&Msg)==false) { Destroy(); return false; } Msg.Msg = WISP_WM_CREATE; if(SEND_MSG(&Msg)==false) { Destroy(); return false; } Show(ShowMode); return true; } bool CWispWnd::Destroy() { if(CWispBaseWnd::Destroy()==false) return false; m_ClientDC.Detach(); m_CaptionDC.Detach(); SafeDelete(m_ScrollBar[WISP_SB_VERT]); SafeDelete(m_ScrollBar[WISP_SB_HORZ]); if(m_AdvStyle & WISP_WAS_AUTO_DELETE) delete this; return true; } void CWispWnd::ChangeColor(IN UINT ColorID,IN COLORREF Color) { if(ColorIDm_pCurDrawObj->m_crSystem[ColorID]=Color; } bool CWispWnd::AttachBKDIB(CWispDIB*pDIB) { m_pBKDIB = pDIB; return true; } void CWispWnd::DetachBKDIB() { m_pBKDIB = NULL; } bool CWispWnd::LoadBKDIB(PCSTR FileName) { return AttachBKDIB(WispDIB(FileName,-1)); } bool CWispWnd::AttachTitleDIB(CWispDIB*pDIB) { m_pTitleDIB = pDIB; return true; } void CWispWnd::DetachTitleDIB() { m_pTitleDIB = NULL; } bool CWispWnd::LoadTitleDIB(PCSTR FileName,int Index) { return AttachTitleDIB(WispDIB(FileName,Index)); } CWispBaseWnd* CWispWnd::GetChildWnd(UINT CmdID) { CWispBaseWnd*pWnd = m_ChildWnd; while(pWnd) { if(pWnd->m_CmdID == CmdID) return pWnd; pWnd = pWnd->m_NextWnd; } return NULL; } void CWispWnd::RecalcMinWndSize() { //СڴС m_MinWndSize.cx=m_MinWndSize.cy=0; if(m_Style & WISP_WS_CAPTION) { m_MinWndSize.cy+=m_pWispBase->m_Metrics[WISP_SM_CAPTION_CY]; if(m_pTitleDIB) { m_MinWndSize.cx+=m_pTitleDIB->Width()+m_CaptionDC.m_pFont->m_Width; } if(m_WndText.m_Length) { m_MinWndSize.cx+=MIN(m_CaptionDC.GetTextExtent(m_WndText)+20,120)+m_CaptionDC.m_pFont->m_Width; } } if(m_Style & WISP_WS_BORDER) { m_MinWndSize.cy+=m_pWispBase->m_Metrics[WISP_SM_BORDER_SIZE]*2; m_MinWndSize.cx+=m_pWispBase->m_Metrics[WISP_SM_BORDER_SIZE]*2; } if(m_Style & WISP_WS_BT_CLOSE) m_MinWndSize.cx+=m_pWispBase->m_Metrics[WISP_SM_CAPTION_BT_SIZE]; if(m_Style & WISP_WS_BT_MAX) m_MinWndSize.cx+=m_pWispBase->m_Metrics[WISP_SM_CAPTION_BT_SIZE]; if(m_Style & WISP_WS_BT_MIN) m_MinWndSize.cx+=m_pWispBase->m_Metrics[WISP_SM_CAPTION_BT_SIZE]; } void CWispWnd::RecalcLayout() { CWispBaseWnd::RecalcLayout(); RecalcMinWndSize(); m_ClientRect.x=m_ClientRect.y=0; m_ClientRect.cx=m_ScrWindowRect.cx; m_ClientRect.cy=m_ScrWindowRect.cy; if(m_Style & WISP_WS_BORDER) { m_ClientRect.x+=m_BorderSize; m_ClientRect.cx-=m_BorderSize*2; m_ClientRect.y+=m_BorderSize; m_ClientRect.cy-=m_BorderSize*2; } m_CaptionRect=m_ClientRect; m_CaptionRect.cy=0; if(m_Style & WISP_WS_CAPTION) { m_ClientRect.y+=m_pWispBase->m_Metrics[WISP_SM_CAPTION_CY]; m_ClientRect.cy-=m_pWispBase->m_Metrics[WISP_SM_CAPTION_CY]; m_CaptionRect.cy=m_pWispBase->m_Metrics[WISP_SM_CAPTION_CY]; if(m_Style & WISP_WS_BT_CLOSE) { m_CloseBTRect.x = m_CaptionRect.cx-WISP_CAPTION_BT_SIZE-1; m_CloseBTRect.y = CENTER_ALGN(WISP_CAPTION_BT_SIZE,m_CaptionRect.cy); m_CloseBTRect.cx = WISP_CAPTION_BT_SIZE; m_CloseBTRect.cy = WISP_CAPTION_BT_SIZE; } if(m_Style & WISP_WS_BT_MAX) { m_MaxBTRect.x = m_CaptionRect.cx-(WISP_CAPTION_BT_SIZE+1)*2; m_MaxBTRect.y = CENTER_ALGN(WISP_CAPTION_BT_SIZE,m_CaptionRect.cy); m_MaxBTRect.cx = WISP_CAPTION_BT_SIZE; m_MaxBTRect.cy = WISP_CAPTION_BT_SIZE; } if(m_Style & WISP_WS_BT_MIN) { m_MinBTRect.x = m_CaptionRect.cx-(WISP_CAPTION_BT_SIZE+1)*3; m_MinBTRect.y = CENTER_ALGN(WISP_CAPTION_BT_SIZE,m_CaptionRect.cy); m_MinBTRect.cx = WISP_CAPTION_BT_SIZE; m_MinBTRect.cy = WISP_CAPTION_BT_SIZE; } } if(m_ScrollBar[WISP_SB_VERT] && m_ScrollBar[WISP_SB_VERT]->bHide==false) m_ClientRect.cx-=m_ScrollBar[WISP_SB_VERT]->BarSize; if(m_ScrollBar[WISP_SB_HORZ] && m_ScrollBar[WISP_SB_HORZ]->bHide==false) m_ClientRect.cy-=m_ScrollBar[WISP_SB_HORZ]->BarSize; if(m_ScrollBar[WISP_SB_VERT]) UpdateScrollBarState(WISP_SB_VERT); if(m_ScrollBar[WISP_SB_HORZ]) UpdateScrollBarState(WISP_SB_HORZ); CalcVertScrollSlideWithPos(); CalcHorzScrollSlideWithPos(); m_ScrClientRect=m_ClientRect; m_ScrClientRect.x+=m_ScrWindowRect.x; m_ScrClientRect.y+=m_ScrWindowRect.y; m_ScrCaptionRect=m_CaptionRect; m_ScrCaptionRect.x+=m_ScrWindowRect.x; m_ScrCaptionRect.y+=m_ScrWindowRect.y; if(m_State!=WISP_WST_INVAILD) { WISP_MSG Msg; Msg.hWnd=this; Msg.Msg=WISP_WM_RECALCLAYOUT; SEND_MSG(&Msg); } } bool CWispWnd::InitWnd() { if(CWispBaseWnd::InitWnd()==false) return false; m_MaxWndSize.cx = m_MaxWndSize.cy = 0; m_bInResizeArea=false; m_ScrollBar[WISP_SB_VERT]=m_ScrollBar[WISP_SB_HORZ]=NULL; m_pTitleDIB = m_pBKDIB = NULL; m_Caret.x=m_Caret.y=0; m_Caret.bEnable=false; m_Caret.BlinkTime=300; if((m_Style & WISP_WS_THIN_BORDER)==WISP_WS_THIN_BORDER) m_BorderSize = m_pWispBase->m_Metrics[WISP_SM_THIN_BORDER_SIZE]; else m_BorderSize=(m_Style & WISP_WS_BORDER)?m_pWispBase->m_Metrics[WISP_SM_BORDER_SIZE]:0; m_CloseBTState=m_MaxBTState=m_MinBTState=STATUS_NORMAL; m_crCaret = SYS_COLOR[SC_WHITE]; return true; } bool CWispWnd::SetWindowText(const WISP_CHAR* pString) { if(m_Style&WISP_WS_BT_MIN) { if(CWispBaseWnd::SetWindowText(pString)==false) return false; RecalcMinWndSize(); return true; } return CWispBaseWnd::SetWindowText(pString); } bool CWispWnd::CreateCaret(IN UINT ID) { m_Caret.pDIB=m_pWispBase->GetDefDIB(ID); m_Caret.bEnable=false; return true; } bool CWispWnd::SetCaretPos(IN int x,IN int y) { m_Caret.x=x; m_Caret.y=y; return true; } bool CWispWnd::GetCaretPos(OUT WISP_POINT*pPT) { pPT->x=m_Caret.x; pPT->y=m_Caret.y; return true; } void CWispWnd::ShowCaret(IN bool bShow) { if(m_Caret.bEnable==bShow) return; m_Caret.bEnable=bShow; if(m_pWispBase->m_pFocusWnd==this) { /* if(m_Caret.bEnable) InsertTimer(WISP_ID_CARET_BLINK_TIMER,m_Caret.BlinkTime); else RemoveTimer(WISP_ID_CARET_BLINK_TIMER); */ } } void CWispWnd::BlinkCaret(IN ULONG BlinkTime) { m_Caret.BlinkTime=BlinkTime; } void CWispWnd::DestroyCaret() { m_Caret.bEnable=false; m_Caret.pDIB=NULL; } void CWispWnd::UpdateScrollBarState(WISP_SB_TYPE Type) { if(m_ScrollBar[Type]==NULL || (m_ScrollBar[Type]->Style & WISP_SS_AUTOHIDE)==0) return; if(m_ScrollBar[Type]->MaxPos-m_ScrollBar[Type]->MinPos <= m_ScrollBar[Type]->Page) { if(m_ScrollBar[Type]->bHide==false) { m_ScrollBar[Type]->bHide = true; RecalcLayout(); } } else { if(m_ScrollBar[Type]->bHide) { m_ScrollBar[Type]->bHide = false; RecalcLayout(); } } } bool CWispWnd::EnableScrollBar(IN WISP_SB_TYPE Type,IN bool bEnable,IN UINT Style) { if(bEnable) { if(m_ScrollBar[Type]) return false; } else { if(m_ScrollBar[Type]==NULL) return false; } if(m_ScrollBar[Type]==NULL) { m_ScrollBar[Type]=new WISP_SCROLL_BAR; ZeroMemory(m_ScrollBar[Type],sizeof(WISP_SCROLL_BAR)); m_ScrollBar[Type]->BarSize=m_pWispBase->GetMetrics(WISP_SM_SCROLL_BAR_SIZE); m_ScrollBar[Type]->bHide=false; m_ScrollBar[Type]->State=STATUS_NORMAL; m_ScrollBar[Type]->BTSpinDecState = STATUS_NORMAL; m_ScrollBar[Type]->BTSpinIncState = STATUS_NORMAL; m_ScrollBar[Type]->Style = Style; m_ScrollBar[Type]->Page=m_ScrollBar[Type]->MaxPos=m_ScrollBar[Type]->MinPos=m_ScrollBar[Type]->CurPos=0; if(m_pWispBase->m_RepKeyIndex==WISP_VK_LBUTTON) m_pWispBase->m_RepKeyIndex=WISP_VK_NULL; } else { SafeDelete(m_ScrollBar[Type]); } RecalcLayout(); return true; } void CWispWnd::LimitScrollInfo(WISP_SB_TYPE Type,bool bChgMsg) { WISP_SCROLL_LONG CurPos = m_ScrollBar[Type]->CurPos; MIN_LIMIT(m_ScrollBar[Type]->MaxPos,m_ScrollBar[Type]->MinPos); m_ScrollBar[Type]->AdjustPage=MIN(m_ScrollBar[Type]->MaxPos-m_ScrollBar[Type]->MinPos,m_ScrollBar[Type]->Page); MIN_LIMIT(m_ScrollBar[Type]->AdjustPage,0); MAX_LIMIT(m_ScrollBar[Type]->CurPos,m_ScrollBar[Type]->MaxPos); MIN_LIMIT(m_ScrollBar[Type]->CurPos,m_ScrollBar[Type]->MinPos); if(m_ScrollBar[Type]->CurPos+m_ScrollBar[Type]->AdjustPage>m_ScrollBar[Type]->MaxPos) m_ScrollBar[Type]->CurPos=m_ScrollBar[Type]->MaxPos-m_ScrollBar[Type]->AdjustPage; if(bChgMsg && CurPos!=m_ScrollBar[Type]->CurPos) { WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_SCROLL_EVENT; Msg.ScrollEvent.Event = WISP_SB_POS_CHANGE; Msg.ScrollEvent.SBType = Type; Msg.ScrollEvent.Delta = m_ScrollBar[Type]->CurPos-CurPos; Msg.ScrollEvent.CurPos = m_ScrollBar[Type]->CurPos; SEND_MSG(&Msg); } } void CWispWnd::SetScrollBarInfo(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG CurPos,IN WISP_SCROLL_LONG MaxPos,IN WISP_SCROLL_LONG Page,IN WISP_SCROLL_LONG MinPos,IN bool bChangeEvent) { if(m_ScrollBar[Type]==NULL) return; m_ScrollBar[Type]->MaxPos = MaxPos; m_ScrollBar[Type]->MinPos = MinPos; m_ScrollBar[Type]->Page = Page; SetScrollBarCurPos(Type,CurPos,bChangeEvent); } void CWispWnd::SetScrollBarCurPos(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG CurPos,IN bool bChangeEvent) { if(m_ScrollBar[Type]==NULL) return; WISP_MSG Msg; WISP_SCROLL_LONG OldCurPos; Msg.hWnd = this; Msg.Msg = WISP_WM_SCROLL_EVENT; Msg.ScrollEvent.Event = WISP_SB_POS_CHANGE; Msg.ScrollEvent.SBType = Type; OldCurPos = m_ScrollBar[Type]->CurPos; m_ScrollBar[Type]->CurPos = CurPos; LimitScrollInfo(Type,false); Msg.ScrollEvent.Delta = m_ScrollBar[Type]->CurPos - OldCurPos; if(bChangeEvent && Msg.ScrollEvent.Delta!=0) { Msg.ScrollEvent.CurPos = m_ScrollBar[Type]->CurPos; SEND_MSG(&Msg); } CalcScrollSlideWithPos(Type); UpdateScrollBarState(Type); Update(&m_ScrollBar[Type]->ScrollRect); } void CWispWnd::SetScrollBarRange(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG MaxPos,IN WISP_SCROLL_LONG MinPos) { if(m_ScrollBar[Type]==NULL) return; m_ScrollBar[Type]->MaxPos = MaxPos; m_ScrollBar[Type]->MinPos = MinPos; LimitScrollInfo(Type); CalcScrollSlideWithPos(Type); UpdateScrollBarState(Type); } void CWispWnd::SetScrollBarPage(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG Page) { if(m_ScrollBar[Type]==NULL) return; m_ScrollBar[Type]->Page = Page; LimitScrollInfo(Type); CalcScrollSlideWithPos(Type); UpdateScrollBarState(Type); } void CWispWnd::AdjustScrollBarMaxPos(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG Delta) { if(m_ScrollBar[Type]==NULL) return; m_ScrollBar[Type]->MaxPos+=Delta; LimitScrollInfo(Type); CalcScrollSlideWithPos(Type); UpdateScrollBarState(Type); } bool CWispWnd::BeginDrag() { WISP_MSG Msg; if(m_pWispBase->m_pDragWnd==this) return false; m_pWispBase->m_pDragWnd=this; m_pWispBase->m_BeginPT = m_pWispBase->m_MousePT; PointToRect(&m_pWispBase->m_BeginPT,&m_ScrWindowRect); Msg.hWnd = this; Msg.Msg=WISP_WM_BEGIN_DRAG; Msg.DragEvent.BeginMouseWndPT = m_pWispBase->m_BeginPT; SEND_MSG(&Msg); m_pWispBase->SetMouseCaptureNotify(); return true; } void CWispWnd::EndDrag() { WISP_MSG Msg; if(m_pWispBase->m_pDragWnd==NULL) return; Msg.hWnd = this; Msg.Msg=WISP_WM_END_DRAG; Msg.DragEvent.BeginMouseWndPT = m_pWispBase->m_BeginPT; PointToRect(&Msg.DragEvent.BeginMouseWndPT,&m_WindowRect); SEND_MSG(&Msg); m_pWispBase->ReleaseMouseCaptureNotify(); m_pWispBase->m_pDragWnd=NULL; } WISP_SCROLL_LONG CWispWnd::SendScrollEvent(WISP_SB_TYPE Type,WISP_SB_EVENT_TYPE EventType) { if(m_ScrollBar[Type]==NULL) return 0; WISP_MSG Msg; Msg.hWnd = this; Msg.Msg = WISP_WM_SCROLL_EVENT; Msg.ScrollEvent.Event = EventType; Msg.ScrollEvent.SBType = Type; Msg.ScrollEvent.CurPos = m_ScrollBar[Type]->CurPos; Msg.ScrollEvent.Delta = 0; SEND_MSG(&Msg); Update(); return Msg.ScrollEvent.Delta; } WISP_MSG_MAP_BEGIN(CWispDIBDCWnd) WISP_MSG_MAP(WISP_WM_PRECREATE,OnPrecreate) WISP_MSG_MAP(WISP_WM_RECALCLAYOUT,OnRecalcLayout) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispWnd) CWispDIBDCWnd::CWispDIBDCWnd() { m_CtrlType = WISP_CTRL_DIB_DC_WND; } CWispDIBDCWnd::~CWispDIBDCWnd() { } bool CWispDIBDCWnd::OnPrecreate(IN WISP_MSG*pMsg) { m_DIB.Create(m_ClientRect.cx,m_ClientRect.cy,WISP_DIB_BITMAP); ZeroMemory(m_DIB.m_FrameBuffer.Buffer,m_DIB.m_FrameBuffer.BufferSize); m_ClientDC.Detach(); m_ClientDC.AttachDIB(&m_DIB); return true; } bool CWispDIBDCWnd::OnRecalcLayout(IN WISP_MSG*pMsg) { m_DIB.Resize(m_ClientRect.cx,m_ClientRect.cy); return true; } bool CWispDIBDCWnd::OnUpdateClient(IN WISP_MSG*pMsg) { m_WindowDC.DrawDIB(m_ClientRect.x,m_ClientRect.y,&m_DIB); return false; } bool CWispDIBDCWnd::OnDestroy(IN WISP_MSG*pMsg) { m_DIB.Destroy(); return true; } ================================================ FILE: Project/Wisp/Source/WispWnd.h ================================================ #ifndef _WISP_WND_H_ #define _WISP_WND_H_ #include "WispBaseWnd.h" class CWispWnd : public CWispBaseWnd { friend class CWispBase; friend class CWispDrawObj; public: WISP_RECT m_NormalRect; //ʱ洰 WISP_RECT m_ScrCaptionRect; //Ļеλ WISP_RECT m_ScrClientRect; //ͻĻеλ WISP_RECT m_CaptionRect; //ڴеλ WISP_RECT m_ClientRect; //ͻڴеλ WISP_RECT* m_pBarRect; //Barڴеλ int m_BarCount; WISP_SIZE m_MinWndSize; WISP_SIZE m_MaxWndSize; bool m_bInResizeArea; public: int m_BorderSize; WISP_WND_CARET m_Caret; CWispDC m_ClientDC; CWispDC m_CaptionDC; CWispDIB* m_pTitleDIB; CWispDIB* m_pBKDIB; COLORREF m_crBGColor; //ɫ COLORREF m_crCaret; bool m_bBGColor; //Ƿϵͳͬıɫ private://ڴڴС仯 int m_SignResizeX; int m_SignResizeY; int m_SignResizeDX; int m_SignResizeDY; int m_CloseBTState; int m_MaxBTState; int m_MinBTState; WISP_RECT m_CloseBTRect; WISP_RECT m_MaxBTRect; WISP_RECT m_MinBTRect; public://Ϣӳ DECLARE_WISP_MSG_MAP//ͨϢ DECLARE_WISP_MSG(OnPrecreate) DECLARE_WISP_MSG(OnMouseMove) DECLARE_WISP_MSG(OnMouseLeave) DECLARE_WISP_MSG(OnKeyEvent) DECLARE_WISP_MSG(OnUpdate) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnUpdateCaption) DECLARE_WISP_MSG(OnUpdateBorder) DECLARE_WISP_MSG(OnUpdateCaret) DECLARE_WISP_MSG(OnUpdateVertScrollBar) DECLARE_WISP_MSG(OnUpdateHorzScrollBar) DECLARE_WISP_MSG(OnScrollEvent) DECLARE_WISP_MSG(OnHorzScrollMove) DECLARE_WISP_MSG(OnVertScrollMove) DECLARE_WISP_MSG(OnMoving) DECLARE_WISP_MSG(OnSizing) DECLARE_WISP_MSG(OnMove) DECLARE_WISP_MSG(OnSize) DECLARE_WISP_MSG(OnHitTest) DECLARE_WISP_MSG(OnMouseWheel) DECLARE_WISP_MSG(OnTimer) DECLARE_WISP_MSG(OnGetFocus) DECLARE_WISP_MSG(OnLostFocus) DECLARE_WISP_MSG_CMD_MAP//CommandϢ DECLARE_WISP_MSG_CMD(OnCmdClose) DECLARE_WISP_MSG_CMD(OnCmdMax) DECLARE_WISP_MSG_CMD(OnCmdMin) DECLARE_WISP_MSG_CMD(OnCmdScrollPageUp) DECLARE_WISP_MSG_CMD(OnCmdScrollPageDown) DECLARE_WISP_MSG_CMD(OnCmdScrollSpinInc) DECLARE_WISP_MSG_CMD(OnCmdScrollSpinDec) DECLARE_WISP_MSG_CMD(OnCmdScrollSlide) DECLARE_WISP_MSG_EVENT_MAP//EventϢ public: CWispWnd(); virtual ~CWispWnd(); virtual bool Create( IN WISP_CHAR*Name,IN int x,IN int y,IN int cx,IN int cy,IN CWispBaseWnd*pParentWnd = NULL, IN UINT CmdID = 0,IN UINT Style=WISP_WS_NORMAL,IN UINT ShowMode=WISP_SH_NORMAL); virtual bool Destroy(); virtual void RecalcLayout(); virtual bool InitWnd(); virtual bool SetWindowText(const WISP_CHAR* pString); bool Create( IN WISP_CHAR*Name,IN const CWispRect&Rect,IN CWispBaseWnd*pParentWnd = NULL,IN UINT CmdID = 0, IN UINT Style=WISP_WS_NORMAL,IN UINT ShowMode=WISP_SH_NORMAL); void ChangeColor(IN UINT ColorID,IN COLORREF Color); void SetBGColor(IN COLORREF crBGColor) { m_crBGColor=crBGColor; m_bBGColor = true; } void ClearBGColor() { m_bBGColor = false; } void RecalcMinWndSize(); void ScreenToClient(INOUT WISP_POINT* pPoint) { PointToRect(pPoint, &m_ScrClientRect); } void ClientToScreen(INOUT WISP_POINT* pPoint) { PointSpliceRect(pPoint, &m_ScrClientRect); } void ScreenToWindow(INOUT WISP_POINT* pPoint) { PointToRect(pPoint, &m_ScrWindowRect); } void WindowToScreen(INOUT WISP_POINT* pPoint) { PointSpliceRect(pPoint, &m_ScrWindowRect); } void UpdateClient(){Update(&m_ClientRect);} bool AttachBKDIB(CWispDIB*pDIB); void DetachBKDIB(); bool LoadBKDIB(PCSTR FileName); bool AttachTitleDIB(CWispDIB*pDIB); void DetachTitleDIB(); bool LoadTitleDIB(PCSTR FileName,int Index = 0); CWispBaseWnd*GetChildWnd(UINT CmdID); ////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////// bool CreateCaret(IN UINT ID); bool SetCaretPos(IN int x,IN int y); bool GetCaretPos(OUT WISP_POINT*pPT); void ShowCaret(IN bool bShow); void BlinkCaret(IN ULONG BlinkTime);//0 Not Blink void DestroyCaret(); ////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////// protected: void CalcVertScrollSlideWithPos(); void CalcHorzScrollSlideWithPos(); //ƹ void LimitScrollInfo(WISP_SB_TYPE Type,bool bChgMsg = true); //ݵǰλü㻮λ void CalcScrollSlideWithPos(WISP_SB_TYPE Type); public: WISP_SCROLL_BAR*m_ScrollBar[WISP_SB_COUNT]; WISP_SCROLL_LONG SendScrollEvent(WISP_SB_TYPE Type,WISP_SB_EVENT_TYPE EventType); void UpdateScrollBarState(WISP_SB_TYPE Type); bool EnableScrollBar(IN WISP_SB_TYPE Type,IN bool bEnable = true,IN UINT Style = WISP_SS_AUTOHIDE); void SetScrollBarInfo(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG CurPos,IN WISP_SCROLL_LONG MaxPos,IN WISP_SCROLL_LONG Page,IN WISP_SCROLL_LONG MinPos = 0,IN bool bChangeEvent = true); void SetScrollBarCurPos(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG CurPos,IN bool bChangeEvent = true); void SetScrollBarRange(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG MaxPos,IN WISP_SCROLL_LONG MinPos = 0); void SetScrollBarPage(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG Page); void AdjustScrollBarMaxPos(IN WISP_SB_TYPE Type,IN WISP_SCROLL_LONG Delta); void ProcessCaptionBTMouseMove(IN const WISP_POINT&ScrMousePT); void ProcessCaptionBTMouseKeyUp(IN const WISP_POINT&ScrMousePT); UINT IsPointInCaptionBT(IN const WISP_POINT&ScrMousePT); void ProcessScrollBTSpinKey(IN WISP_SB_TYPE Type,IN WISP_MSG*pMsg); void ProcessScrollMouseKey(IN WISP_SB_TYPE Type,IN WISP_MSG*pMsg); void ProcessVertScrollMouseMove(IN WISP_MSG*pMsg); void ProcessHorzScrollMouseMove(IN WISP_MSG*pMsg); public: //ק bool BeginDrag(); void EndDrag(); }; class CWispDIBDCWnd : public CWispWnd { public: CWispDIBDCWnd(); ~CWispDIBDCWnd(); public://Ϣӳ DECLARE_WISP_MSG_MAP//ͨϢ DECLARE_WISP_MSG(OnPrecreate) DECLARE_WISP_MSG(OnRecalcLayout) DECLARE_WISP_MSG(OnUpdateClient) DECLARE_WISP_MSG(OnDestroy) public: CWispDIB m_DIB; }; #endif ================================================ FILE: Project/Wisp/Source/buildchk_win7_x86.log ================================================ BUILD: Examining d:\syserdbg\project\wisp\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling d:\syserdbg\project\wisp\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>d:\syserdbg\project\wisp\source: TARGETPATH is Obj 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /Id:\syserdbg\project\wisp\source\objchk_win7_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0601 /DWINVER=0x0601 /D_WIN32_IE=0x0800 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x06010000 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlWisp /YcStdAfx.h /Fpd:\syserdbg\project\wisp\source\objchk_win7_x86\i386\StdAfx.pch /Fo"d:\syserdbg\project\wisp\source\objchk_win7_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @d:\syserdbg\project\wisp\source\objchk_win7_x86\i386\cl.rsp 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\Wisp.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @d:\syserdbg\project\wisp\source\objchk_win7_x86\i386\lib.rsp ================================================ FILE: Project/Wisp/Source/buildchk_wnet_x86.log ================================================ 0>Bad Path string: L'e:\ F ' BUILD: Computing Include file dependencies: BUILD: Examining f:\syserdbg\project\wisp\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling f:\syserdbg\project\wisp\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>f:\syserdbg\project\wisp\source: TARGETPATH is Obj 1>BUILDMSG: _NT_TARGET_VERSION SET TO WS03 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /If:\syserdbg\project\wisp\source\objchk_wnet_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0502 /DWINVER=0x0502 /D_WIN32_IE=0x0603 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x05020100 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlWisp /YcStdAfx.h /Fpf:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\wisp\source\objchk_wnet_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0502 1> /DWINVER=0x0502 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05020100 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /YlWisp /Ycstdafx.h /Fpf:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\StdAfx.obj" 1>pch_hdr.src 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\cl.rsp 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Fo"f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386/" 1> /FC 1> /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\wisp\source\objchk_wnet_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0502 1> /DWINVER=0x0502 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05020100 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /Yustdafx.h 1> /Fpf:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\StdAfx.pch 1> .\dibdata.cpp .\utility.cpp .\wispbase.cpp .\wispdrawhal.cpp .\wispbutton.cpp .\wisptoolbar.cpp .\wispdc.cpp .\wispdib.cpp .\wispdiblib.cpp .\wispedit.cpp .\wisphexwnd.cpp .\wisptabwnd.cpp .\wispwnd.cpp .\wispcolorstrwnd.cpp .\wispconsolewnd.cpp .\wispcheckbox.cpp .\wispfont.cpp .\wispmenu.cpp .\wispbasewnd.cpp .\wispmsgbox.cpp .\wispprogress.cpp .\wispdrawobj.cpp .\wispsplitwnd.cpp .\wispradiobox.cpp .\wispcombobox.cpp .\wispstatic.cpp .\wisplist.cpp .\wispinfownd.cpp .\wispsoftkeyboard.cpp .\wispmultitabview.cpp .\wispform.cpp .\wispcalcwnd.cpp .\wisptipwnd.cpp .\wispoptionform.cpp .\wispmisc.cpp .\wisprgbselect.cpp 1>dibdata.cpp 1>utility.cpp 1>wispbase.cpp 1>wispdrawhal.cpp 1>wispbutton.cpp 1>wisptoolbar.cpp 1>wispdc.cpp 1>wispdib.cpp 1>wispdiblib.cpp 1>wispedit.cpp 1>wisphexwnd.cpp 1>wisptabwnd.cpp 1>wispwnd.cpp 1>wispcolorstrwnd.cpp 1>wispconsolewnd.cpp 1>wispcheckbox.cpp 1>wispfont.cpp 1>wispmenu.cpp 1>wispbasewnd.cpp 1>wispmsgbox.cpp 1>Generating Code... 1>Compiling... 1>wispprogress.cpp 1>wispdrawobj.cpp 1>wispsplitwnd.cpp 1>wispradiobox.cpp 1>wispcombobox.cpp 1>wispstatic.cpp 1>wisplist.cpp 1>wispinfownd.cpp 1>wispsoftkeyboard.cpp 1>wispmultitabview.cpp 1>wispform.cpp 1>wispcalcwnd.cpp 1>wisptipwnd.cpp 1>wispoptionform.cpp 1>wispmisc.cpp 1>wisprgbselect.cpp 1>Generating Code... 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\Wisp.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\lib.rsp 1>Microsoft (R) Library Manager Version 9.00.30729.207 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\StdAfx.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\dibdata.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\utility.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispbase.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispdrawhal.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispbutton.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wisptoolbar.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispdc.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispdib.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispdiblib.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispedit.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wisphexwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wisptabwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispcolorstrwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispconsolewnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispcheckbox.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispfont.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispmenu.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispbasewnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispmsgbox.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispprogress.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispdrawobj.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispsplitwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispradiobox.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispcombobox.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispstatic.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wisplist.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispinfownd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispsoftkeyboard.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispmultitabview.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispform.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispcalcwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wisptipwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispoptionform.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wispmisc.obj 1>f:\syserdbg\project\wisp\source\objchk_wnet_x86\i386\wisprgbselect.obj ================================================ FILE: Project/Wisp/Source/buildchk_wxp_x86.log ================================================ 0>Bad Path string: L'e:\ F ' BUILD: Computing Include file dependencies: BUILD: Examining f:\syserdbg\project\wisp\source directory for files to compile. oacr invalidate root:x86chk /autocleanqueue 1>Compiling f:\syserdbg\project\wisp\source ************* 1>'nmake.exe /nologo BUILDMSG=Stop. -i BUILD_PASS=PASS1 NOLINK=1 NOPASS0=1 MAKEDIR_RELATIVE_TO_BASEDIR=' 1>f:\syserdbg\project\wisp\source: TARGETPATH is Obj 1>BUILDMSG: _NT_TARGET_VERSION SET TO WINXP 1>C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl /MT /U_MT /Ii386 /I. /If:\syserdbg\project\wisp\source\objchk_wxp_x86\i386 /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\api /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\ddk /IC:\WinDDK\7600.16385.0\inc\crt /D_X86_=1 /Di386=1 /DSTD_CALL /DCONDITION_HANDLING=1 /DNT_UP=1 /DNT_INST=0 /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0501 /DWINVER=0x0501 /D_WIN32_IE=0x0603 /DWIN32_LEAN_AND_MEAN=1 /DDEVL=1 /DDBG=1 /D__BUILDMACHINE__=WinDDK /DFPO=0 /DCODE_OS_NT_DRV /DCODE_ALLOC_USER_HEAP /DDEPRECATE_DDK_FUNCTIONS=1 /DMSC_NOOPT /DNTDDI_VERSION=0x05010200 /c /Zc:wchar_t- /Zl /Zp8 /Gy /Gm- -cbstring /W3 /Gz /hotpatch /EHs-c- /GR- /GF /GS /Z7 /Od /Oi /Oy- /Z7 /DKMDF_MAJOR_VERSION_STRING=01 /DKMDF_MINOR_VERSION_STRING=009 /wd4603 /wd4627 /typedil- /FIC:\WinDDK\7600.16385.0\inc\api\warning.h /YlWisp /YcStdAfx.h /Fpf:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\StdAfx.obj" /Tp 1>#include "stdafx.h" 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\wisp\source\objchk_wxp_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0501 1> /DWINVER=0x0501 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05010200 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /YlWisp /Ycstdafx.h /Fpf:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\StdAfx.pch /Fo"f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\StdAfx.obj" 1>pch_hdr.src 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrcl @f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\cl.rsp 1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.207 for 80x86 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>cl /Fo"f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386/" 1> /FC 1> /MT 1> /U_MT 1> /Ii386 1> /I. 1> /If:\syserdbg\project\wisp\source\objchk_wxp_x86\i386 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\api 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\ddk 1> /IC:\WinDDK\7600.16385.0\inc\crt 1> /D_X86_=1 1> /Di386=1 1> /DSTD_CALL 1> /DCONDITION_HANDLING=1 1> /DNT_UP=1 1> /DNT_INST=0 1> /DWIN32=100 1> /D_NT1X_=100 1> /DWINNT=1 1> /D_WIN32_WINNT=0x0501 1> /DWINVER=0x0501 1> /D_WIN32_IE=0x0603 1> /DWIN32_LEAN_AND_MEAN=1 1> /DDEVL=1 1> /DDBG=1 1> /D__BUILDMACHINE__=WinDDK 1> /DFPO=0 1> /DCODE_OS_NT_DRV 1> /DCODE_ALLOC_USER_HEAP 1> /DDEPRECATE_DDK_FUNCTIONS=1 1> /DMSC_NOOPT 1> /DNTDDI_VERSION=0x05010200 1> /c 1> /Zc:wchar_t- 1> /Zl 1> /Zp8 1> /Gy 1> /Gm- 1> -cbstring 1> /W3 1> /Gz 1> /hotpatch 1> /EHs-c- 1> /GR- 1> /GF 1> /GS 1> /Z7 1> /Od 1> /Oi 1> /Oy- 1> /Z7 1> /DKMDF_MAJOR_VERSION_STRING=01 1> /DKMDF_MINOR_VERSION_STRING=009 1> /wd4603 1> /wd4627 1> /typedil- 1> /FIC:\WinDDK\7600.16385.0\inc\api\warning.h 1> /Yustdafx.h 1> /Fpf:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\StdAfx.pch 1> .\dibdata.cpp .\utility.cpp .\wispbase.cpp .\wispdrawhal.cpp .\wispbutton.cpp .\wisptoolbar.cpp .\wispdc.cpp .\wispdib.cpp .\wispdiblib.cpp .\wispedit.cpp .\wisphexwnd.cpp .\wisptabwnd.cpp .\wispwnd.cpp .\wispcolorstrwnd.cpp .\wispconsolewnd.cpp .\wispcheckbox.cpp .\wispfont.cpp .\wispmenu.cpp .\wispbasewnd.cpp .\wispmsgbox.cpp .\wispprogress.cpp .\wispdrawobj.cpp .\wispsplitwnd.cpp .\wispradiobox.cpp .\wispcombobox.cpp .\wispstatic.cpp .\wisplist.cpp .\wispinfownd.cpp .\wispsoftkeyboard.cpp .\wispmultitabview.cpp .\wispform.cpp .\wispcalcwnd.cpp .\wisptipwnd.cpp .\wispoptionform.cpp .\wispmisc.cpp .\wisprgbselect.cpp 1>dibdata.cpp 1>utility.cpp 1>wispbase.cpp 1>wispdrawhal.cpp 1>wispbutton.cpp 1>wisptoolbar.cpp 1>wispdc.cpp 1>wispdib.cpp 1>wispdiblib.cpp 1>wispedit.cpp 1>wisphexwnd.cpp 1>wisptabwnd.cpp 1>wispwnd.cpp 1>wispcolorstrwnd.cpp 1>wispconsolewnd.cpp 1>wispcheckbox.cpp 1>wispfont.cpp 1>wispmenu.cpp 1>wispbasewnd.cpp 1>wispmsgbox.cpp 1>Generating Code... 1>Compiling... 1>wispprogress.cpp 1>wispdrawobj.cpp 1>wispsplitwnd.cpp 1>wispradiobox.cpp 1>wispcombobox.cpp 1>wispstatic.cpp 1>wisplist.cpp 1>wispinfownd.cpp 1>wispsoftkeyboard.cpp 1>wispmultitabview.cpp 1>wispform.cpp 1>wispcalcwnd.cpp 1>wisptipwnd.cpp 1>wispoptionform.cpp 1>wispmisc.cpp 1>wisprgbselect.cpp 1>Generating Code... 1> C:\WinDDK\7600.16385.0\Bin\x86\oacr\oacrlink /lib /out:Obj\i386\Wisp.lib /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221 /WX /nodefaultlib /machine:ix86 @f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\lib.rsp 1>Microsoft (R) Library Manager Version 9.00.30729.207 1>Copyright (C) Microsoft Corporation. All rights reserved. 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\StdAfx.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\dibdata.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\utility.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispbase.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispdrawhal.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispbutton.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wisptoolbar.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispdc.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispdib.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispdiblib.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispedit.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wisphexwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wisptabwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispcolorstrwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispconsolewnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispcheckbox.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispfont.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispmenu.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispbasewnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispmsgbox.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispprogress.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispdrawobj.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispsplitwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispradiobox.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispcombobox.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispstatic.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wisplist.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispinfownd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispsoftkeyboard.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispmultitabview.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispform.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispcalcwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wisptipwnd.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispoptionform.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wispmisc.obj 1>f:\syserdbg\project\wisp\source\objchk_wxp_x86\i386\wisprgbselect.obj ================================================ FILE: Project/Wisp/Win32/Wisp.sln ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "Wisp.vcproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/Wisp/Win32/Wisp.vcproj ================================================ ================================================ FILE: Project/Wisp/Win32/Wisp.vcxproj ================================================ Debug Win32 Release Win32 Trial Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} Win32Proj StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte StaticLibrary v142 MultiByte <_ProjectFileVersion>16.0.33801.447 Debug\ Debug\ Release\ Release\ $(Configuration)\ $(Configuration)\ Disabled WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug Use Level3 EditAndContinue $(OutDir)Wisp.lib false MaxSpeed WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded Use Level3 ProgramDatabase $(OutDir)Wisp.lib MaxSpeed WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) true MultiThreaded Use Level3 ProgramDatabase $(OutDir)Wisp.lib Create Create Create ================================================ FILE: Project/Wisp/WinDrv32/Wisp.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "Wisp.vcproj", "{6F57FAC8-7CEB-4034-A8C2-1761F3684BDD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6F57FAC8-7CEB-4034-A8C2-1761F3684BDD}.Debug|Win32.ActiveCfg = Debug|Win32 {6F57FAC8-7CEB-4034-A8C2-1761F3684BDD}.Debug|Win32.Build.0 = Debug|Win32 {6F57FAC8-7CEB-4034-A8C2-1761F3684BDD}.Release|Win32.ActiveCfg = Release|Win32 {6F57FAC8-7CEB-4034-A8C2-1761F3684BDD}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Wisp/WinDrv32/Wisp.vcproj ================================================ ================================================ FILE: Project/Wisp/WinXPDrv32/DDKBuild.bat ================================================ @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo off rem ///////////////////////////////////////////////////////////////////////////// rem // rem // This sofware is supplied for instructional purposes only. rem // rem // OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty rem // for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY rem // OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, rem // THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR rem // PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS rem // WITH YOU. OSR's entire liability and your exclusive remedy shall not rem // exceed the price paid for this material. In no event shall OSR or its rem // suppliers be liable for any damages whatsoever (including, without rem // limitation, damages for loss of business profit, business interruption, rem // loss of business information, or any other pecuniary loss) arising out rem // of the use or inability to use this software, even if OSR has been rem // advised of the possibility of such damages. Because some states/ rem // jurisdictions do not allow the exclusion or limitation of liability for rem // consequential or incidental damages, the above limitation may not apply rem // to you. rem // rem // OSR Open Systems Resources, Inc. rem // 105 Route 101A Suite 19 rem // Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 rem // email bugs to: bugs@osr.com rem // rem // rem // MODULE: rem // rem // ddkbuild.bat rem // rem // ABSTRACT: rem // rem // This file allows drivers to be build with visual studio and visual studio.net rem // rem // AUTHOR(S): rem // rem // OSR Open Systems Resources, Inc. rem // rem // REVISION: V6.5 rem // rem // Clean up batch procedure to make it easier to process. rem // rem // rem // REQUIREMENTS: Environment variables that must be set. rem // rem // NT4BASE - must be set up by user to point to NT4 DDK. (e.g. D:\NT4DDK ) rem // W2KBASE - must be set up by user to point to W2K DDK (e.g D:\Nt50DDK ) rem // WXPBASE - must be set up by user to point to WXP DDK (e.g D:\WINDDK\2600) rem // WNETBASE - must be set up by user to point to WNET DDK (e.g D:\WINDDK\1830) rem // rem // rem // COMMAND FORMAT: rem // rem // ddkbuild -PLATFORM BUILDTYPE DIRECTORY [FLAGS] [-WDF] [-PREFAST] rem // rem // PLATFORM is either rem // WXP, WXP64, WXP2K - builds using WXP DDK rem // W2K, W2K64, - builds using W2k DDK rem // WNET, WNET64, WNET2K, WNETXP, WNETXP64 - builds using WNET DDK rem // WNETAMD64 for an AMD64/EM64T WNET build using the WNET DDK rem // NT4 - build using NT4 DDK (NT4 is the default) rem // BUILDTYPE - free, checked, chk or fre rem // DIRECTORY is the path to the directory to be build. It can be "." rem // FLAGS - build flags e.g. -cZ etc. rem // -WDF - allows the user to perform a Windows Driver Framework build. rem // this has been tested with the 01.00.5054 version of the rem // framework. rem // -PREFAST - performs a prefast build, if prefast is available. rem // rem // BROWSE FILES: rem // rem // This procedure supports the building of BROWSE files to be used by rem // Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created rem // by bscmake for the 2 studios are not compatible. When this command procedure rem // runs, it selects the first bscmake.exe found in the path. So, make rem // sure that the correct bscmake.exe is in the path.... rem // rem // Note that if using Visual Studio.NET the .BSC must be added to the project rem // in order for the project to be browsed. rem // rem // COMPILERS: rem // rem // If you are building NT4 you should really rem // be using the VC 6 compiler. Later versions of the DDK now contain the rem // compiler and the linker. This procedure should use the correct compiler. rem // rem // GENERAL COMMENTS: rem // This procedure has been cleaned up to be modular and easy to rem // understand. rem // rem // As of the Server 2003 SP1 DDK ddkbuild now clears the rem // NO_BROWSE_FILE and NO_BINPLACE environment variables so that users rem // can use these features. rem // rem /////////////////////////////////////////////////////////////////////////////// set scriptDebug=off setlocal ENABLEEXTENSIONS @echo %scriptDebug% rem // rem // clear the error code variable rem // set error_code=0 set prefast_build=0 rem // rem // determine what type of build is to be done. rem // if /I %1 EQU -NT4 goto NT4Build if /I %1 EQU -WNET2K goto WNET2KBuild if /I %1 EQU -WNETXP goto WNETXPBuild if /I %1 EQU -WNETXP64 goto WNETXPBuild if /I %1 EQU -WNET64 goto WNET64Build if /I %1 EQU -WNETAMD64 goto WNETAMD64Build if /I %1 EQU -WNET goto WNETBuild if /I %1 EQU -WXP64 goto WXP64Build if /I %1 EQU -WXP goto WXPBuild if /I %1 EQU -WXP2K goto WXP2KBuild if /I %1 EQU -W2K64 goto W2K64Build if /I %1 EQU -W2K goto W2KBuild set error_code=1 goto ErrUnKnownBuildType rem // rem // NT 4 Build rem // :NT4Build @echo NT4 BUILD using NT4 DDK set BASEDIR=%NT4BASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% "%MSDEVDIR%" popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET Windows 2000 Build using WNET DDK rem // :WNET2KBuild @echo W2K BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% W2K %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP Build using WNET DDK rem // :WNETXPBuild @echo WXP BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 bit Build using WNET DDK rem // :WNETXP64Build @echo WXP 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WXP popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET IA64 bit Build using WNET DDK rem // :WNET64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET AMD64 bit Build using WNET DDK rem // :WNETAMD64Build @echo WNET 64 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% AMD64 WNET popd @echo %scriptDebug% goto RegularBuild rem // rem // WNET 32 BIT BUILD using WNET DDK rem // :WNETBuild @echo WNET 32 BIT BUILD using WNET DDK set BASEDIR=%WNETBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 64 BIT BUILD using WXP DDK rem // :WXP64Build @echo WXP 64 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% 64 popd @echo %scriptDebug% goto RegularBuild rem // rem // WXP 32 BIT BUILD using WXP DDK rem // :WXPBuild @echo WXP 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using WXP DDK rem // :WXP2KBuild @echo W2K 32 BIT BUILD using WXP DDK set BASEDIR=%WXPBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\w2k\set2k.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 64 BIT BUILD using W2K DDK rem // :W2K64Build @echo W2K 64 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv64.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // W2K 32 BIT BUILD using W2K DDK rem // :W2KBuild @echo W2K 32 BIT BUILD using W2K DDK set BASEDIR=%W2KBASE% shift if "%BASEDIR%"=="" goto ErrNoBASEDIR set path=%BASEDIR%\bin;%path% call :SetMode %1 if "%error_code%" NEQ "0" goto ErrBadMode call :CheckTargets %2 if "%error_code%" NEQ "0" goto ErrNoDir pushd . call %BASEDIR%\bin\setenv.bat %BASEDIR% %mode% popd @echo %scriptDebug% goto RegularBuild rem // rem // All builds go here for the rest of the procedure. Now, rem // we are getting ready to call build. The big problem rem // here is to figure our the name of the buildxxx files being rem // generated for the different platforms. rem // :RegularBuild set NO_BROWSWER_FILE= set NO_BINPLACE= set mpFlag=-M if "%BUILD_ALT_DIR%"=="" goto NT4 rem win2k sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if "%NUMBER_OF_PROCESSORS%"=="" set mpFlag= if "%NUMBER_OF_PROCESSORS%"=="1" set mpFlag= rem // rem // Determine the settings of flags, WDF and PREFAST in other words rem // what was set for %3 and beyond.... rem // @echo build in directory %2 with arguments %3 %4 %5 (basedir %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags="" set buildDirectory=%2 :ContinueParsing if "%3" == "" goto done if "%3" == "/a" goto RebuildallFound if "%3" == "-WDF" goto WDFFound if "%3" == "-wdf" goto WDFFound if "%3" == "-PREFAST" goto PrefastFound if "%3" == "-prefast" goto PrefastFound set bscFlags=/n set bflags=%3 -e shift goto ContinueParsing :WDFFound shift if "%WDF_ROOT%" == "" goto errNoWdfRoot pushd . call %WDF_ROOT%\set_wdf_env.cmd popd set scriptDebug=on goto ContinueParsing :PrefastFound shift set prefast_build=1 goto ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto ContinueParsing :done if EXIST build%W2kEXT%.err erase build%W2kEXT%.err if EXIST build%W2kEXT%.wrn erase build%W2kEXT%.wrn if EXIST build%W2kEXT%.log erase build%W2kEXT%.log if EXIST prefast%W2kEXT%.log erase prefast%W2kEXT%.log if "%prefast_build%" NEQ "0" goto RunPrefastBuild @echo run build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto BuildComplete :RunPrefastBuild @echo run prefast build %bflags% %mpFlag% for %mode% version in %buildDirectory% pushd . prefast build %bflags% %mpFlag% prefast list > prefast%W2kEXT%.log goto BuildComplete :BuildComplete if "%errorlevel%" GTR "0" set error_code=%errorlevel% popd @echo %scriptDebug% rem assume that the onscreen errors are complete! @echo =============== build warnings ====================== if exist build%W2kEXT%.wrn findstr "warning[^.][DRCLU][0-9]*" build%W2kEXT%.log if exist build%W2kEXT%.log findstr "error[^.][DRCLU][0-9]*" build%W2kEXT%.log if "%prefast_build%" == "0" goto SkipPrefastWarnings @echo =============== prefast warnings ====================== if exist prefast%W2kEXT%.log findstr "warning[^.][CLU]*" prefast%W2kEXT%.log :SkipPrefastWarnings @echo. @echo. @echo build complete @echo building browse information files if EXIST buildbrowse.cmd goto doBrowsescript set sbrlist=sbrList.txt if not EXIST sbrList%CPU%.txt goto sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not EXIST %sbrlist% goto end if %bscFlags% == "" goto noBscFlags bscmake %bscFlags% @%sbrlist% goto end :noBscFlags bscmake @%sbrlist% goto end :doBrowsescript call buildBrowse %mode% goto end rem // rem // SetMode rem // rem // Subroutine to validate the mode of the build passed in. rem // it must be free, FREE, fre, FRE or checked, CHECKED, rem // chk, CHK. Anything else is an error. rem // :SetMode set mode= for %%f in (free FREE fre FRE) do if %%f == %1 set mode=free for %%f in (checked CHECKED chk CHK) do if %%f == %1 set mode=checked if "%mode%" =="" set error_code=1 goto :EOF rem // rem // CheckTargets rem // rem // Subroutine to validate that the target directory exists rem // and that there is either a DIRS or SOURCES and MakeFile in rem // it. rem // :CheckTargets if "%1" NEQ "" goto CheckTargets1 set error_code=1 goto :EOF :CheckTargets1 if exist %1 goto CheckTargets2 set error_code=1 goto :EOF :CheckTargets2 if not exist %1\DIRS goto CheckTargets3 set error_code=0 goto :EOF :CheckTargets3 if exist %1\SOURCES goto CheckTargets4 set error_code=2 goto :EOF :CheckTargets4 if exist %1\MAKEFILE goto CheckTargets5 set error_code=2 goto :EOF :CheckTargets5 set error_code=0 goto :EOF rem // rem // Error processing code. Whenever we encounter an rem // error in the parameters, we come to one of the following rem // labels to output a decent error to help the user rem // understand what is wrong. rem // :ErrBadMode @echo - @echo ERROR: first param must be "checked", "free", "chk" or "fre" set error_code=1 goto usage :ErrNoBASEDIR @echo - @echo ERROR: NT4BASE, W2KBASE, WXPBASE, or WNETBASE environment variable not set. @echo ERROR: Environment variable must be set by user according to DDK version installed. set error_code=1 goto usage :ErrUnKnownBuildType @echo - @echo ERROR: Unknown type of build. Please recheck parameters. set error_code=1 goto usage :ErrNoDir if "%error_code%" EQU "2" goto ErrNoTarget @echo - @echo ERROR: second parameter must be a valid directory goto usage :ErrNoTarget @echo - @echo ERROR: target directory must contain a SOURCES or DIRS file goto usage :errNoWdfRoot @echo - @echo ERROR: WDF_ROOT is not defined, are you using 00.01.5054 or later? goto usage rem // rem // Usage output rem // :usage @echo - @echo - @echo usage: ddkbuild [-W2K] "checked | free | chk | fre" "directory-to-build" [flags] [-WDF] [-PREFAST] @echo -W2K indicates development system uses W2KBASE environment variable @echo to locate the win2000 ddk @echo -W2K64 indicates development sytsem uses W2KBASE environment variable @echo to locate the win2000 IA64 ddk @echo -WXP to indicate WXP Build uses WXPBASE enviornment variable. @echo -WXP64 to indicate WXP IA64 bit build, uses WXPBASE @echo -WXP2K to indicate Windows 2000 build using WXP ddk @echo -WNET to indicate Windows .Net builds using WNET ddk @echo -WNET64 to indicate Windows .Net 64 bit builds using WNET DDK @echo -WNETXP to indicate Windows XP builds suing WNET DDK @echo -WNETXP64 to indicate Windows XP 64 bit builds suing WNET DDK @echo -WNETAMD64 to indicate Windows .NET build for AMD64 using WNET DDK @echo -WNET2K to indicate Windows 2000 builds using WNET DDK @echo -NT4 to indicate NT4 build using NT4 DDK. @echo checked indicates a checked build @echo free indicates a free build @echo chk indicates a checked build @echo fre indicates a free build @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a for clean) @echo -WDF performs a WDF build @echo -PREFAST preforms a PREFAST build @echo - @echo ex: ddkbuild -NT4 checked . (for NT4 BUILD) @echo ex: ddkbuild -WXP64 chk . @echo ex: ddkbuild -WXP chk c:\projects\myproject @echo ex: ddkbuild -WNET64 chk . (IA64 bit build) @echo ex: ddkbuild -WNETAMD64 chk . (AMD64/EM64T bit build) @echo ex: ddkbuild -WNETXP chk . -cZ -WDF @echo ex: ddkbuild -WNETXP chk . -cZ -PREFAST @echo - @echo In order for this procedure to work correctly for each platform, it requires @echo an environment variable to be set up for certain platforms. The environment @echo variables are as follows: @echo - @echo NT4BASE - You must set this up to do -NT4 builds @echo W2KBASE - You must set this up to do -W2K and -W2K64 builds @echo WXPBASE - You must set this up to do -WXP, -WXP64, -WXP2K builds @echo WNETBASE - You must set this up to do -WNET, -WNET64, -WNETXP, -WNETXP64, @echo -WNETAMD64, and -WNET2K builds @echo - @echo WDF_ROOT must be set if attempting to do a WDF Build. @echo - @echo - @echo OSR DDKBUILD.BAT V6.5 - OSR, Open Systems Resources, Inc. @echo report any problems found to info@osr.com @echo - rem goto end :end exit /b %error_code% @echo ddkbuild complete ================================================ FILE: Project/Wisp/WinXPDrv32/UpgradeLog.XML ================================================ ================================================ FILE: Project/Wisp/WinXPDrv32/WinXPDrv32Clean.bat ================================================ @ECHO OFF DEL ..\Source\obj /S /Q 1>NUL 2>NUL DEL ..\Source\objfre_wxp_x86 /S /Q 1>NUL 2>NUL DEL ..\Source\objchk_wxp_x86 /S /Q 1>NUL 2>NUL ECHO ON ================================================ FILE: Project/Wisp/WinXPDrv32/Wisp.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "Wisp.vcproj", "{351A08EC-318C-460A-9B79-3ECCF444ACA1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Debug|Win32.ActiveCfg = Debug|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Debug|Win32.Build.0 = Debug|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Release|Win32.ActiveCfg = Release|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Release|Win32.Build.0 = Release|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Trial|Win32.ActiveCfg = Trial|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/Wisp/WinXPDrv32/Wisp.sln.old ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "Wisp.vcproj", "{351A08EC-318C-460A-9B79-3ECCF444ACA1}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Debug.ActiveCfg = Debug|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Debug.Build.0 = Debug|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Release.ActiveCfg = Release|Win32 {351A08EC-318C-460A-9B79-3ECCF444ACA1}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/Wisp/WinXPDrv32/Wisp.vcproj ================================================ ================================================ FILE: Project/Wisp/WinXPDrv32/_UpgradeReport_Files/UpgradeReport.css ================================================ BODY { BACKGROUND-COLOR: white; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-LEFT: 0px; MARGIN-TOP: 0px } P { FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 70%; LINE-HEIGHT: 12pt; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 10px; MARGIN-TOP: 10px } .note { BACKGROUND-COLOR: #ffffff; COLOR: #336699; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 0px; MARGIN-TOP: 0px; PADDING-RIGHT: 10px } .infotable { BACKGROUND-COLOR: #f0f0e0; BORDER-BOTTOM: #ffffff 0px solid; BORDER-COLLAPSE: collapse; BORDER-LEFT: #ffffff 0px solid; BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 70%; MARGIN-LEFT: 10px } .issuetable { BACKGROUND-COLOR: #ffffe8; BORDER-COLLAPSE: collapse; COLOR: #000000; FONT-SIZE: 100%; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 13px; MARGIN-TOP: 0px } .issuetitle { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px; COLOR: #003366; FONT-WEIGHT: normal } .header { BACKGROUND-COLOR: #cecf9c; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; COLOR: #000000; FONT-WEIGHT: bold } .issuehdr { BACKGROUND-COLOR: #E0EBF5; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; COLOR: #000000; FONT-WEIGHT: normal } .issuenone { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-RIGHT: 0px; BORDER-TOP: 0px; COLOR: #000000; FONT-WEIGHT: normal } .content { BACKGROUND-COLOR: #e7e7ce; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 3px } .issuecontent { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; PADDING-LEFT: 3px } A:link { COLOR: #cc6633; TEXT-DECORATION: underline } A:visited { COLOR: #cc6633; } A:active { COLOR: #cc6633; } A:hover { COLOR: #cc3300; TEXT-DECORATION: underline } H1 { BACKGROUND-COLOR: #003366; BORDER-BOTTOM: #336699 6px solid; COLOR: #ffffff; FONT-SIZE: 130%; FONT-WEIGHT: normal; MARGIN: 0em 0em 0em -20px; PADDING-BOTTOM: 8px; PADDING-LEFT: 30px; PADDING-TOP: 16px } H2 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 3px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px; PADDING-LEFT: 0px } H3 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: -5px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px } H4 { COLOR: #000000; FONT-SIZE: 70%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 0px; MARGIN-TOP: 15px; PADDING-BOTTOM: 0px } UL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } OL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } LI { LIST-STYLE: square; MARGIN-LEFT: 0px } .expandable { CURSOR: hand } .expanded { color: black } .collapsed { DISPLAY: none } .foot { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #cecf9c 1px solid; BORDER-TOP: #cecf9c 2px solid } .settings { MARGIN-LEFT: 25PX; } .help { TEXT-ALIGN: right; margin-right: 10px; } ================================================ FILE: Project/Wisp/WinXPDrv32/_UpgradeReport_Files/UpgradeReport.xslt ================================================ src
文件名 状态 错误 警告
javascript:document.images[''].click()src 已转换 已转换
个文件 1 个文件 已转换:
未转换:
: 转换报告 <xsl:if test="Properties/Property[@Name='LogNumber']"> <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> </xsl:if>

转换报告 -

转换时间:

转换设置

================================================ FILE: Project/Wisp/WinXPDrv32/ddkbuild.cmd ================================================ @echo off @set REVISION=V7.0 BETA5 @set REVDATE=2007-01-03 @set OSR_DEBUG=off @if "%OS%"=="Windows_NT" goto :MAIN @echo This script requires Windows NT 4.0 or later to run properly! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: :: This software is supplied for instructional purposes only. :: :: OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty :: for this software. THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY :: OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, :: THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR :: PURPOSE. THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS :: WITH YOU. OSR's entire liability and your exclusive remedy shall not :: exceed the price paid for this material. In no event shall OSR or its :: suppliers be liable for any damages whatsoever (including, without :: limitation, damages for loss of business profit, business interruption, :: loss of business information, or any other pecuniary loss) arising out :: of the use or inability to use this software, even if OSR has been :: advised of the possibility of such damages. Because some states/ :: jurisdictions do not allow the exclusion or limitation of liability for :: consequential or incidental damages, the above limitation may not apply :: to you. :: :: OSR Open Systems Resources, Inc. :: 105 Route 101A Suite 19 :: Amherst, NH 03031 (603) 595-6500 FAX: (603) 595-6503 :: email bugs to: bugs@osr.com :: :: :: MODULE: :: :: ddkbuild.cmd :: :: ABSTRACT: :: :: This file allows drivers to be build with visual studio and visual studio.net :: :: AUTHOR(S): :: :: - OSR Open Systems Resources, Inc. :: - Oliver Schneider (ddkwizard.assarbad.net) :: :: REQUIREMENTS: Environment variables that must be set. :: :: %NT4BASE% - Set this up for "-NT4" builds :: %W2KBASE% - Set this up for "-W2K*" builds :: %WXPBASE% - Set this up for "-WXP*" builds :: %WNETBASE% - Set this up for "-WNET*" builds :: %WLHBASE% - Set this up for "-WLH*" builds :: :: %WDF_ROOT% must be set if attempting to do a WDF Build. :: :: Examples: :: NT4BASE : could be "D:\NT4DDK" :: W2KBASE : could be "D:\Nt50DDK" :: WXPBASE : could be "D:\WINDDK\2600" :: WNETBASE: could be "D:\WINDDK\3790.1830" or "C:\WINDDK\3790" :: :: COMMAND FORMAT (taken from the script's output): :: :: ddkbuild [flags] [-WDF] [-PREFAST] :: :: Platform values: :: -W2K to indicate W2K build using %W2KBASE% :: -W2K64 to indicate W2K IA64 build using %W2KBASE% :: -WXP to indicate WXP build using %WXPBASE% :: -WXP64 to indicate WXP IA64 build using %WXPBASE% :: -WXP2K to indicate W2K build using %WXPBASE% :: -WNET to indicate WNET build using %WNETBASE% :: -WNET64 to indicate WNET IA64 build using %WNETBASE% (= -WNETI64) :: -WNETXP to indicate WXP build using %WNETBASE% :: -WNETXP64 to indicate WXP IA64 build using %WNETBASE% :: -WNETAMD64 to indicate WNET AMD64 build using %WNETBASE% (= -WNETX64) :: -WNET2K to indicate W2K build using %WNETBASE% :: -WLH to indicate WLH build using %WLHBASE% :: -WLH2K to indicate W2K build using %WLHBASE% :: -WLHXP to indicate WXP build using %WLHBASE% :: -WLHNET to indicate WNET build using %WLHBASE% :: -WLHNETI64 to indicate WNET IA64 build using %WLHBASE% :: -WLHNETX64 to indicate WNET AMD64 build using %WLHBASE% :: -WLHI64 to indicate WLH IA64 build using %WLHBASE% :: -WLHX64 to indicate WLH AMD64 build using %WLHBASE% :: -NT4 to indicate NT4 build using %NT4BASE% :: :: Build types: :: checked :: chk indicates a checked build :: free :: fre indicates a free build :: :: Remaining parameters: :: directory path to build directory, try . (cwd) :: flags any random flags you think should be passed to build (try /a :: for clean) :: -WDF performs a WDF build :: -PREFAST performs a PREFAST build :: :: Note: "-WDF" has been tested with the 01.00.5054 version of the framework :: :: RETURN CODES AND THEIR MEANING: :: :: 001 == Unknown build type. Check the parameter :: 002 == No WDF_ROOT given using WDF build type. :: 003 == The DDK-specific base directory variable (NT4BASE, W2KBASE, WXPBASE, :: WNETBASE) is not set at all and could not be auto-detected! :: 004 == BASEDIR variable is empty. Check to see that the DDK-specific :: variable is set correctly (i.e. NT4BASE, W2KBASE, WXPBASE, WNETBASE) :: 005 == No mode (checked/free) was given. Check the respective parameter! :: 006 == No DIR or SOURCES file found in the given target directory. :: 007 == No target directory given. :: 008 == Given target directory does not exist. :: :: Note: If %OSR_ERRCODE% and %ERRORLEVEL% are equal, the return code stems :: from one of the tools being called during the build process. :: :: BROWSE FILES: :: :: This procedure supports the building of BROWSE files to be used by :: Visual Studio 6 and by Visual Studio.Net However, the BSCfiles created :: by bscmake for the 2 studios are not compatible. When this command procedure :: runs, it selects the first bscmake.exe found in the path. So, make :: sure that the correct bscmake.exe is in the path.... :: :: Note that if using Visual Studio.NET the .BSC must be added to the project :: in order for the project to be browsed. :: Another alternative is the VS addon named "Visual Assist X" which will :: parse the header files - no more need for browse files. :: :: COMPILERS: :: :: If you are building NT4 you should really :: be using the VC 6 compiler. Later versions of the DDK now contain the :: compiler and the linker. This procedure should use the correct compiler. :: :: GENERAL COMMENTS: :: :: This procedure has been cleaned up to be modular and easy to :: understand. :: :: As of the Server 2003 SP1 DDK ddkbuild now clears the :: NO_BROWSE_FILE and NO_BINPLACE environment variables so that users :: can use these features. :: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :MAIN :: Building "stack frame" setlocal ENABLEEXTENSIONS & pushd :: Init some special variables set OSR_VERSTR=OSR DDKBUILD.CMD %REVISION% (%REVDATE%) - OSR, Open Systems Resources, Inc. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set error messages :: Possible codes: 1 set ERR_UnknownBuildType=Unknown type of build. Please recheck parameters. :: Possible codes: 2 set ERR_NoWdfRoot=WDF_ROOT is not defined, are you using 00.01.5054 or later? :: Possible codes: 3 set ERR_BaseDirNotSet=To build using type %%OSR_TARGET%% you need to set the %%%%%%BASEDIRVAR%%%%%% environment variable to point to the %%BASEDIROS%% DDK base directory! :: Possible codes: 4 set ERR_NoBASEDIR=NT4BASE, W2KBASE, WXPBASE and/or WNETBASE environment variable(s) not set. Environment variable(s) must be set by user according to DDK version(s) installed. :: Possible codes: 5 set ERR_BadMode=^ must be 'checked', 'free', 'chk' or 'fre' (case-insensitive). :: Possible codes: 6 set ERR_NoTarget=Target directory must contain a SOURCES or DIRS file. :: Possible codes: 7, 8 set ERR_NoDir=The ^ parameter must be a valid directory. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Clear the error code variable set OSR_ERRCODE=0 set prefast_build=0 :: Turn on tracing, use %OSR_TRACE% instead of ECHO if /i {%OSR_DEBUG%} == {on} (set OSR_TRACE=@echo) else (set OSR_TRACE=rem) :: Turn on echoing of current line if %OSR_DEBUG% is set to "on" @echo %OSR_DEBUG% :: Output version string @echo %OSR_VERSTR% %OSR_TRACE% ^(Current module: ^"%~f0^"^) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Set the target platform variable set OSR_TARGET=%1 :: Remove any dashes in the variable if not {%OSR_TARGET%} == {} set OSR_TARGET=%OSR_TARGET:-=% :: Show help if the target parameter is empty after removal of the dashes if {%OSR_TARGET%} == {} goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Additional error handling for better usability :: These subroutines will also attempt to locate the requested DDK!!! set OSR_ERRCODE=3 %OSR_TRACE% Checking whether the environment variable for the build type was set :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Check :: If the BASEDIROS/BASEDIRVAR variable is not defined, it means the subroutine did not exist! if not DEFINED BASEDIROS call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIROS)" & goto :USAGE if not DEFINED BASEDIRVAR call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (BASEDIRVAR)" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BaseDirNotSet%" & goto :USAGE ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: set BASEDIR=%%%BASEDIRVAR%%% call :ResolveVar BASEDIR :: Check for existing %BASEDIR% if {%BASEDIR%}=={} call :ShowErrorMsg 4 "%ERR_NoBASEDIR%" & goto :USAGE set PATH=%BASEDIR%\bin;%PATH% %OSR_TRACE% Now jump to the initialization of the commandline :: Calling as a subroutine has 2 advantages: :: 1. the script does not quit if the label was not found :: 2. we return to the line after the call and can check variables there call :%OSR_TARGET%Build ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: %OSR_TRACE% We returned from the variable initialization if not DEFINED OSR_CMDLINE call :ShowErrorMsg 1 "%ERR_UnknownBuildType% (OSR_CMDLINE)" & goto :USAGE %OSR_TRACE% Hurrah, all the variables have been initialized, continuing :: Proceed with common build steps goto :CommonBuild ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Check whether the parameter makes sense and try to :: correct it if possible ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WLHCheck :WLHX64Check :WLHI64Check :WLHNETX64Check :WLHNETI64Check :WLHXPCheck :WLH2KCheck :WLHNETCheck set BASEDIROS=Windows Vista/Longhorn Server set BASEDIRVAR=WLHBASE :: Compatibility between BUILD and VS ... prevent pipes from being used echo Clearing %%VS_UNICODE_OUTPUT%% ... set VS_UNICODE_OUTPUT= :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\6000 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WNET2KCheck :WNETXPCheck :WNETXP64Check :WNET64Check :WNETI64Check :WNETAMD64Check :WNETX64Check :WNETCheck set BASEDIROS=Windows 2003 Server set BASEDIRVAR=WNETBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%%ProgramFiles%\WINDDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%SystemDrive%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1830 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790.1218 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\3790 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :WXP64Check :WXPCheck :WXP2KCheck set BASEDIROS=Windows XP set BASEDIRVAR=WXPBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg1 :: Try all the possible "default" locations set BASEDIRTEMP=%SystemDrive%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\WINDDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn :: Try some "odd" locations set BASEDIRTEMP=%SystemDrive%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn set BASEDIRTEMP=%ProgramFiles%\DDK\2600 echo Trying %BASEDIRTEMP% ... if exist "%BASEDIRTEMP%" goto :CommonCheckSetVarWithReturn goto :CommonCheckErrorNotDetectedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :W2K64Check :W2KCheck set BASEDIROS=Windows 2000 set BASEDIRVAR=W2KBASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :NT4Check set BASEDIROS=Windows NT4 set BASEDIRVAR=NT4BASE :: Return to caller if DEFINED %BASEDIRVAR% goto :CommonCheckNoErrorWithReturn call :CommonCheckMsg2 goto :CommonCheckErrorNotSupportedWithReturn ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg1 echo. echo WARNING: %%%BASEDIRVAR%%% NOT SET! echo Attempting to auto-detect the installation folder and set %%%BASEDIRVAR%%%. echo (If this fails *you* will have to set it!) echo. goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckMsg2 echo. echo WARNING: echo Auto-detection of the folder settings is not supported for the requested DDK. echo Please set %%%BASEDIRVAR%%% yourself! goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckSetVarWithReturn echo Found! echo. set %BASEDIRVAR%=%BASEDIRTEMP% set BASEDIRTEMP= :: Tell the caller it was successful :CommonCheckNoErrorWithReturn set OSR_ERRCODE=0 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonCheckErrorNotDetectedWithReturn echo. echo None of the usual default paths works. Set %%%BASEDIRVAR%%% manually! :CommonCheckErrorNotSupportedWithReturn goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Initialize variables specific to the respective platform ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: NT 4.0 build using NT4 DDK :NT4Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% "%%MSDEVDIR%%" goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WXP DDK :WXP2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\w2k\set2k.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 64bit (Intel) using W2K DDK :W2K64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv64.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using W2K DDK :W2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit (Intel) using WXP DDK :WXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WXP DDK :WXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WNET DDK :WNET2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% W2K %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WNET DDK :WNETXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 64bit using WNET DDK :WNETXP64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WNET DDK :WNET64Build :WNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WNET DDK :WNETAMD64Build :WNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WNET DDK :WNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 32bit using WLH DDK :WLHBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (AMD) using WLH DDK :WLHX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WLH build for 64bit (Intel) using WLH DDK :WLHI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WLH goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (AMD) using WLH DDK :WLHNETX64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% AMD64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 64bit (Intel) using WLH DDK :WLHNETI64Build set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% 64 WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WXP build for 32bit using WLH DDK :WLHXPBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WXP goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: W2K build for 32bit using WLH DDK :WLH2KBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% W2K goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: WNET build for 32bit using WLH DDK :WLHNETBuild set OSR_CMDLINE=%%BASEDIR%%\bin\setenv.bat %%BASEDIR%% %%BuildMode%% WNET goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: All builds go here for the rest of the procedure. Now, :: we are getting ready to call build. The big problem :: here is to figure our the name of the buildxxx files :: being generated for the different platforms. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CommonBuild :: Remove first command line arg shift call :SetMode %1 if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_BadMode%" & goto :USAGE :: Resolve unresolved variable set OSR_BUILDNAME=%OSR_TARGET% (%BuildMode%) build using the %BASEDIROS% DDK and %%%BASEDIRVAR%%% ::call :ResolveVar OSR_BUILDNAME ::set OSR_BUILDNAME=%OSR_BUILDNAME% call :CheckTargets %2 if {%OSR_ERRCODE%} == {6} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoTarget%" & goto :USAGE if not {%OSR_ERRCODE%} == {0} call :ShowErrorMsg %OSR_ERRCODE% "%ERR_NoDir%" & goto :USAGE :: Resolve any variables in the command line string set OSR_CMDLINE=%OSR_CMDLINE% pushd . :: This external script prepares the build environment (e.g. setenv.bat) call %OSR_CMDLINE% popd :: ---------------------------------------------------------------------------- :: Setting global variables for the scope of this CMD session set NO_BROWSER_FILE= set NO_BINPLACE= set buildDirectory=%2 set mpFlag=-M if {%BUILD_ALT_DIR%}=={} goto :NT4 :: W2K sets this! set W2kEXT=%BUILD_ALT_DIR% set mpFlag=-MI :NT4 if {%NUMBER_OF_PROCESSORS%}=={} set mpFlag= if {%NUMBER_OF_PROCESSORS%}=={1} set mpFlag= :: Set additional variables at this point or do whatever you please @if exist "%buildDirectory%\ddkprebld.cmd" @( echo Performing pre-build steps ... call %buildDirectory%\ddkprebld.cmd ) ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Determine the settings of flags, WDF and PREFAST in :: other words what was set for %3 and beyond.... ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @echo Doing a %OSR_BUILDNAME% set OSR_ARGS= + argument(s): if not {%3} == {} set OSR_ARGS=%OSR_ARGS% %3 if not {%4} == {} set OSR_ARGS=%OSR_ARGS% %4 if not {%5} == {} set OSR_ARGS=%OSR_ARGS% %5 if /i "%OSR_ARGS%" == " + argument(s):" set OSR_ARGS= @echo Directory: %buildDirectory%%OSR_ARGS% (%BASEDIRVAR% == %BASEDIR%) cd /D %~s2 set bflags=-Ze set bscFlags= :ContinueParsing if {%3} == {} goto :DONE if {%3} == {/a} goto :RebuildallFound if /i {%3} == {-WDF} goto :WDFFound if /i {%3} == {-PREFAST} goto :PrefastFound set bscFlags=/n :: Old line: set bflags=%bflags% %3 -e set bflags=%bflags% %3 -e :: Remove first arg shift goto :ContinueParsing :WDFFound shift if /i {%BASEDIRVAR%} == {WLHBASE} goto :WDFOkay if {%WDF_ROOT%} == {} call :ShowErrorMsg 2 "%ERR_NoWdfRoot%" & goto :USAGE pushd . call %WDF_ROOT%\set_wdf_env.cmd popd :WDFOkay :: set OSR_DEBUG=on We don't need that here goto :ContinueParsing :PrefastFound shift set prefast_build=1 goto :ContinueParsing :RebuildallFound shift set bscFlags=/n set bflags=-cfeZ goto :ContinueParsing :DONE if exist "build%W2kEXT%.err" erase /f /q "build%W2kEXT%.err" if exist "build%W2kEXT%.wrn2" erase /f /q "build%W2kEXT%.wrn" if exist "build%W2kEXT%.log" erase /f /q "build%W2kEXT%.log" if exist "prefast%W2kEXT%.log" erase /f /q "prefast%W2kEXT%.log" if not {%prefast_build%} == {0} goto :RunPrefastBuild @echo Run build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . build %bflags% %mpFlag% goto :BuildComplete :RunPrefastBuild @echo Run prefast build %bflags% %mpFlag% for %BuildMode% version in %buildDirectory% pushd . setlocal set PREFASTLOG=PREfast_defects_%W2kEXT%.xml prefast /log=%PREFASTLOG% /reset build %bflags% %mpFlag% > NUL if "%errorlevel%" GTR "0" set OSR_ERRCODE=%errorlevel% prefast /log=%PREFASTLOG% list > prefast%W2kEXT%.log echo The PREfast logfile is ^"%prefastlog%^"! endlocal :BuildComplete if not {%errorlevel%} == {0} set OSR_ERRCODE=%errorlevel% popd @echo %OSR_DEBUG% :: Assume that the onscreen errors are complete! setlocal set WARNING_FILE_COUNT=0 set WARNING_OUTPUT=0 if exist "build%W2kEXT%.wrn" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if exist "build%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 if not {%WARNING_FILE_COUNT%} == {0} ( @echo ================ Build warnings ======================= if exist "build%W2kEXT%.wrn" findstr "warning[^.][DRCLU][0-9]*" "build%W2kEXT%.log" if exist "build%W2kEXT%.log" findstr "error[^.][DRCLU][0-9]*" "build%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) set WARNING_FILE_COUNT=0 if exist "prefast%W2kEXT%.log" set /a WARNING_FILE_COUNT=%WARNING_FILE_COUNT%+1 :: Reset if this is no PREfast build if {%prefast_build%} == {0} set WARNING_FILE_COUNT=0 if not {%WARNING_FILE_COUNT%} == {0} ( @echo =============== PREfast warnings ====================== if exist "prefast%W2kEXT%.log" findstr "warning[^.][CLU]*" "prefast%W2kEXT%.log" set /a WARNING_OUTPUT=%WARNING_OUTPUT%+1 ) if not {%WARNING_OUTPUT%} == {0} ( @echo ======================================================= ) endlocal @echo. @echo. @echo Build complete @echo Building browse information files if exist "buildbrowse.cmd" call "buildbrowse.cmd" & goto :postBuildSteps set sbrlist=sbrList.txt if not exist sbrList%CPU%.txt goto :sbrDefault set sbrlist=sbrList%CPU%.txt :sbrDefault if not exist %sbrlist% goto :postBuildSteps :: Prepend blank space if not {%bscFlags%} == {} set bscFlags= %bscFlags% :: bscmake%bscFlags% prevents a double blank space ... bscmake%bscFlags% @%sbrlist% :: Perform whatever post-build steps :postBuildSteps @if exist %buildDirectory%\ddkpostbld.cmd @( echo Performing post build steps ... call %buildDirectory%\ddkpostbld.cmd ) goto :END ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ MAIN function of the script ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / SetMode :: Subroutine to validate the mode of the build passed in. It must be free, :: FREE, fre, FRE or checked, CHECKED, chk, CHK. Anything else is an error. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :SetMode set BuildMode= if /i {%OSR_TARGET%} == {WLH2K} goto :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=free for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=checked goto :SetModeCommonEnd :SetModeWLH2K for %%f in (free fre) do if /i {%%f} == {%1} set BuildMode=f for %%f in (checked chk) do if /i {%%f} == {%1} set BuildMode=c :SetModeCommonEnd %OSR_TRACE% Mode set to ^"%BuildMode%^" if {%BuildMode%} == {} set OSR_ERRCODE=5 goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ SetMode ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / CheckTargets subroutine :: Subroutine to validate that the target directory exists and that there is :: either a DIRS or SOURCES and MakeFile in it. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :CheckTargets :: Building "stack frame" setlocal & pushd & set OSR_ERRCODE=0 if not {%1} == {} goto :CheckTargets1 set OSR_ERRCODE=7 goto :CheckTargets_ret :CheckTargets1 if exist "%1" goto :CheckTargets2 set OSR_ERRCODE=8 goto :CheckTargets_ret :CheckTargets2 if not exist "%1\DIRS" goto :CheckTargets3 set OSR_ERRCODE=0 goto :CheckTargets_ret :CheckTargets3 if exist "%1\SOURCES" goto :CheckTargets4 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets4 if exist "%1\MAKEFILE" goto :CheckTargets5 set OSR_ERRCODE=6 goto :CheckTargets_ret :CheckTargets5 set OSR_ERRCODE=0 :CheckTargets_ret :: Cleaning "stack frame" and returning error code into global scope popd & endlocal & set OSR_ERRCODE=%OSR_ERRCODE% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ CheckTargets subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine :: There is only one parameter, the name of the variable to be resolved! ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ResolveVar set OSR_TEMP=%1 set OSR_TEMPRET2=%%%OSR_TEMP%%% :ResolveVarLoop set OSR_TEMPRET1=%OSR_TEMPRET2% set OSR_TEMPRET2=%OSR_TEMPRET1% for /f "tokens=*" %%i in ('echo %OSR_TEMPRET1%') do ( set %OSR_TEMP%=%%i set OSR_TEMPRET2=%%i ) if not {%OSR_TEMPRET1%} == {%OSR_TEMPRET2%} goto :ResolveVarLoop set OSR_TEMP= set OSR_TEMPRET1= set OSR_TEMPRET2= goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ResolveVar subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: / ErrorWithUsage subroutine :: This one will take the passed in parameters and build a nice error :: message which is returned to the user along with the usage hints. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :ShowErrorMsg @set OSR_ERRCODE=%1 @set OSR_ERRMSG=%2 @set OSR_ERRMSG=%OSR_ERRMSG:"=% @set OSR_ERRMSG=%OSR_ERRMSG:'="% @set OSR_ERRMSG=ERROR #%OSR_ERRCODE%: %OSR_ERRMSG% @echo. @echo %OSR_ERRMSG% goto :EOF ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: \ ErrorWithUsage subroutine ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Usage output ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :USAGE @echo. @echo Syntax: @echo ddkbuild ^ ^ ^ [flags] [-WDF] [-PREFAST] @echo. @echo Platform values: @echo -W2K to indicate W2K build using %%W2KBASE%% @echo -W2K64 to indicate W2K IA64 build using %%W2KBASE%% @echo -WXP to indicate WXP build using %%WXPBASE%% @echo -WXP64 to indicate WXP IA64 build using %%WXPBASE%% @echo -WXP2K to indicate W2K build using %%WXPBASE%% @echo -WNET to indicate WNET build using %%WNETBASE%% @echo -WNET64 to indicate WNET IA64 build using %%WNETBASE%% (= -WNETI64) @echo -WNETXP to indicate WXP build using %%WNETBASE%% @echo -WNETXP64 to indicate WXP IA64 build using %%WNETBASE%% @echo -WNETAMD64 to indicate WNET AMD64 build using %%WNETBASE%% (= -WNETX64) @echo -WNET2K to indicate W2K build using %%WNETBASE%% @echo -WLH to indicate WLH build using %%WLHBASE%% @echo -WLH2K to indicate W2K build using %%WLHBASE%% @echo -WLHXP to indicate WXP build using %%WLHBASE%% @echo -WLHNET to indicate WNET build using %%WLHBASE%% @echo -WLHNETI64 to indicate WNET IA64 build using %%WLHBASE%% @echo -WLHNETX64 to indicate WNET AMD64 build using %%WLHBASE%% @echo -WLHI64 to indicate WLH IA64 build using %%WLHBASE%% @echo -WLHX64 to indicate WLH AMD64 build using %%WLHBASE%% @echo -NT4 to indicate NT4 build using %%NT4BASE%% @echo. @echo Build types: @echo checked @echo chk indicates a checked build @echo free @echo fre indicates a free build @echo. @echo Remaining parameters: @echo directory path to build directory, try . (cwd) @echo flags any random flags you think should be passed to build (try /a @echo for clean) @echo -WDF performs a WDF build @echo -PREFAST performs a PREFAST build @echo. @echo Examples: @echo ^"ddkbuild -NT4 checked .^" (for NT4 BUILD) @echo ^"ddkbuild -WXP64 chk .^" @echo ^"ddkbuild -WXP chk c:\projects\myproject^" @echo ^"ddkbuild -WNET64 chk .^" (IA64 bit build) @echo ^"ddkbuild -WNETAMD64 chk .^" (AMD64/EM64T bit build) @echo ^"ddkbuild -WNETXP chk . -cZ -WDF^" @echo ^"ddkbuild -WNETXP chk . -cZ -PREFAST^" @echo. @echo In order for this procedure to work correctly for each platform, it @echo requires an environment variable to be set up for certain platforms. @echo The environment variables are as follows: @echo. @echo %%NT4BASE%% - Set this up for ^"-NT4^" builds @echo %%W2KBASE%% - Set this up for ^"-W2K^" and ^"-W2K64^" builds @echo %%WXPBASE%% - Set this up for ^"-WXP^", ^"-WXP64^", ^"-WXP2K^" builds @echo %%WNETBASE%% - Set this up for ^"-WNET*^" builds @echo %%WLHBASE%% - Set this up for ^"-WLH*^" builds @echo. @echo %%WDF_ROOT%% must be set if attempting to do a WDF Build. @echo. @echo. @echo %OSR_VERSTR% @echo -^> report any problems found to info@osr.com or assarbad.net/contact @echo. :END popd & endlocal exit /b %OSR_ERRCODE% @echo ddkbuild complete ================================================ FILE: Project/Wisp/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/Wisp/incfile.txt ================================================ ================================================ FILE: Project/Wisp/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/WispDemo/Source/ControlWnd.cpp ================================================ #include "StdAfx.h" #include "ControlWnd.h" WISP_MSG_MAP_BEGIN(CControlWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_ON_EVENT WISP_MSG_MAP_END(CWispWnd) WISP_MSG_EVENT_MAP_BEGIN(CControlWnd) WISP_MSG_EVENT_MAP(CTRL_BT_OK_ID,OnOK); WISP_MSG_EVENT_MAP(CTRL_BT_MSG_BOX_ID,OnMsgBox); WISP_MSG_EVENT_MAP(CTRL_BT_STEP_IT_ID,OnStepIt); WISP_MSG_EVENT_MAP_END bool CControlWnd::OnCreate(IN WISP_MSG*pMsg) { m_Edit.Create(WISP_STR("Edit"),10,30,300,16,this,CTRL_EDIT_ID,WISP_ES_EDIT_NORMAL); m_OKDIB.Load("\\WispApp\\SoftKeyboard\\SoftKeyboard.ico",0); m_BTOK.CreateEx(&m_OKDIB,320,50,this,CTRL_BT_OK_ID,WISP_BS_TEXT_LEFT); m_BTOK.SetWindowText(WSTR("OK")); m_BTMsgBox.Create(WISP_STR("Message"),390,50,60,20,this,CTRL_BT_MSG_BOX_ID,WISP_BS_NORMAL,WISP_SH_NORMAL); m_ListCtrl.Create(NULL,CWispRect(10,60,300,200),this,CTRL_LIST_ID,WISP_WS_THIN_BORDER|WISP_WLS_COLUMN_TITLE|WISP_WLS_TREE|WISP_WLS_TREE_LINE); m_Progress.Create(0, CWispRect(10, 270, 200, 20), this); m_Progress.SetPos(2); m_BtnStepIt.Create(WISP_STR("Step It"),220,270,60,20,this,CTRL_BT_STEP_IT_ID,WISP_BS_NORMAL,WISP_SH_NORMAL); m_CheckBox.Create(WISP_STR("Text check box"), CWispRect(10, 300, 200, 20), this,0 ,WISP_WS_BORDER|WISP_WS_BACK_TRANS|WISP_CBS_FLAT, WISP_SH_NORMAL); m_ComboBox.Create(WISP_STR(""),350,180,100,380,this); m_ListCtrl.InsertColumn(WSTR("col1"),120,WISP_WLCS_NORMAL,&m_OKDIB); m_ListCtrl.InsertColumn(WSTR("col2"),80,WISP_WLCS_EDITABLE); m_ListCtrl.InsertColumn(WSTR("col3"),80,WISP_WLCS_EDITABLE); HANDLE hItem,hItem1; hItem = m_ListCtrl.InsertItem(L"Item\tţlevel",NULL,WISP_WLIS_EXPANDED,&m_OKDIB); hItem1 = m_ListCtrl.InsertItem(L"Level 1",hItem,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 1",hItem,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 2",hItem1,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 2",hItem1,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 2",hItem1,WISP_WLIS_EXPANDED,&m_OKDIB,-1); hItem = m_ListCtrl.InsertItem(L"Item1",NULL,WISP_WLIS_EXPANDED,&m_OKDIB); hItem1 = m_ListCtrl.InsertItem(L"Level 1",hItem,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 1",hItem,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 1",hItem1,WISP_WLIS_EXPANDED,&m_OKDIB,-1); m_ListCtrl.InsertItem(L"Level 2",hItem1,WISP_WLIS_EXPANDED,&m_OKDIB,-1); hItem = m_ListCtrl.InsertItem(L"Level 3",hItem1,WISP_WLIS_EXPANDED,&m_OKDIB,-1); return true; } bool CControlWnd::OnDestroy(IN WISP_MSG*pMsg) { m_OKDIB.Destroy(); return true; } bool CControlWnd::OnOK(IN WISP_MSG*pMsg) { CWispString Str; InputTextForm(100,100,Str,WSTR("")); return true; } bool CControlWnd::OnMsgBox(IN WISP_MSG*pMsg) { MsgBox(WISP_STR("hi"),WISP_STR("Message Box"), WISP_MB_ICONINFOMATION); return true; } bool CControlWnd::OnStepIt(IN WISP_MSG*pMsg) { m_Progress.StepIt(); return true; } ================================================ FILE: Project/WispDemo/Source/ControlWnd.h ================================================ #ifndef _CONTROL_WND_H_ #define _CONTROL_WND_H_ enum { CTRL_EDIT_ID, CTRL_BT_OK_ID, CTRL_BT_MSG_BOX_ID, CTRL_BT_STEP_IT_ID, CTRL_LIST_ID, CTRL_MAIN_MENU_ID, }; class CControlWnd : public CWispWnd { public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG_EVENT_MAP DECLARE_WISP_MSG_EVENT(OnOK); DECLARE_WISP_MSG_EVENT(OnMsgBox); DECLARE_WISP_MSG_EVENT(OnStepIt); public: CWispDIB m_OKDIB; CWispEdit m_Edit; CWispButton m_BTOK, m_BTMsgBox, m_BtnStepIt; CWispProgress m_Progress; CWispCheckBox m_CheckBox; CWispComboBox m_ComboBox; CWispList m_ListCtrl; HANDLE m_hItem; }; #endif ================================================ FILE: Project/WispDemo/Source/CtrlPage1.cpp ================================================ #include "StdAfx.h" #include "CtrlPage1.h" enum CCtrlPage1::WISP_FORM_ID { CMD_ID_VERSION_EDIT = WISP_ID_USER_START, CMD_ID_COMBOBOX_TYPE }; WISP_FORM_RES_ITEM CCtrlPage1::m_FormRes[]= { { WISP_CTRL_FORM, {0,0,240,150}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Ctrl Page 1") }, { WISP_CTRL_STATIC_URL, {50,18,150,20}, WISP_ID_NULL, WISP_WS_NULL, WSTR("http://www.CodeProject.com"), }, { WISP_CTRL_STATIC_GROUP, {5,50,220,40}, WISP_ID_NULL, WISP_WS_NULL, WSTR("Vesion Info"), }, { WISP_CTRL_STATIC_STRING, {15,70,200,16}, CMD_ID_VERSION_EDIT, WISP_WS_NULL, NULL, NULL, WSTR("Wisp Version") }, { WISP_CTRL_COMBO_BOX, {10,126,135,20}, CMD_ID_COMBOBOX_TYPE, WISP_ES_EDIT_NORMAL, NULL, NULL, }, {WISP_CTRL_NULL} }; WISP_MSG_MAP_BEGIN(CCtrlPage1) WISP_MSG_MAP(WISP_WM_FORM_CREATE,OnFormCreate) WISP_MSG_MAP_END(CWispForm) bool CCtrlPage1::OnFormCreate(IN WISP_MSG*pMsg) { char szBufferA[256]; WCHAR szBuffer[256]; CWispBaseWnd*pWnd; pWnd = GetFormItem(CMD_ID_VERSION_EDIT); if(pWnd) { TSPrintf(szBufferA,"Syser1.31 Build Date %s",__DATE__); TStrCpy(szBuffer,szBufferA); pWnd->SetWindowText(szBuffer); } return true; } ================================================ FILE: Project/WispDemo/Source/CtrlPage1.h ================================================ #ifndef _CTRL_PAGE1_H_ #define _CTRL_PAGE1_H_ class CCtrlPage1 : public CWispForm { public: enum WISP_FORM_ID; static WISP_FORM_RES_ITEM m_FormRes[]; public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnFormCreate); CCtrlPage1(){m_pFormRes = m_FormRes;} }; #endif ================================================ FILE: Project/WispDemo/Source/LocalApp.cpp ================================================ #include "StdAfx.h" #include "LocalApp.h" #include "resource.h" #include "MainFrame.h" CLocalApp theApp; #ifdef CODE_OS_WIN int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return theApp.WinMainStart(hInstance,lpCmdLine,nCmdShow); } #endif CLocalApp::CLocalApp(void) { } CLocalApp::~CLocalApp(void) { } bool CLocalApp::InitInstance() { if(CWispApp::InitInstance()==FALSE) return false; m_bHideMouse = true; m_hIcon = LoadIcon(m_hLocalInst,MAKEINTRESOURCE(IDI_ICON_WISP)); CreateFrame(WSTR("Wisp Demo"),GetSystemMetrics(SM_CXFULLSCREEN)*5/6,GetSystemMetrics(SM_CYFULLSCREEN)*5/6,0); CMainFrame* pFrameWnd = new CMainFrame; pFrameWnd->Create(NULL,0,0,m_FrameBuffer.Width,m_FrameBuffer.Height,NULL,WISP_ID_MAIN_FRAME,WISP_WS_NULL); //TODO: // return true; } int CLocalApp::ExitInstance() { //TODO: // CMainFrame* pFrameWnd = (CMainFrame*)m_pRootWnd; pFrameWnd->Destroy(); delete pFrameWnd; m_pRootWnd = NULL; DestroyFrame(); return CWispApp::ExitInstance(); } ================================================ FILE: Project/WispDemo/Source/LocalApp.h ================================================ #ifndef _LOCALAPP_HEADER_ #define _LOCALAPP_HEADER_ #include "MainFrame.h" class CLocalApp : public CWinWisp { public: CLocalApp(void); ~CLocalApp(void); virtual bool InitInstance(); virtual int ExitInstance(); }; extern CLocalApp theApp; #endif ================================================ FILE: Project/WispDemo/Source/M3DView.cpp ================================================ #include "StdAfx.h" #include "M3DView.h" WISP_WIN win; WISP_VIEW view; VS_3D v0,v1,v2,v3,v4; OBJ obj; OBJ obj1; double rl=0; WISP_MSG_MAP_BEGIN(CM3DView) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP_END(CWispWnd) CM3DView::CM3DView(void) { } CM3DView::~CM3DView(void) { } bool CM3DView::OnCreate(IN WISP_MSG*pMsg) { win.min_x=-m_ClientRect.cx/2; win.min_y=-m_ClientRect.cy/2; win.max_x= m_ClientRect.cx/2-1; win.max_y= m_ClientRect.cy/2-1; view.dp=200; view.ox=150; view.oy=0; view.oz=100; view.u1=1; view.u2=0; view.u3=0, view.v1=0; view.v2=0; view.v3=-1; view.w1=0; view.w2=1; view.w3=0; v0.x=0; v0.y=0; v0.z=0; v1.x=100;v1.y=0; v1.z=0; v2.x=100;v2.y=100;v2.z=0; v3.x=0; v3.y=100;v3.z=0; v4.x=50; v4.y=50; v4.z=100; obj.ep=new ES_3D[10]; obj.en=5; obj1.ep=new ES_3D[10]; obj1.en=5; obj.ep[0].vp[0]=v0; obj.ep[0].vp[1]=v1; obj.ep[0].vp[2]=v4; obj.ep[0].vn=3; obj.ep[1].vp[0]=v1; obj.ep[1].vp[1]=v2; obj.ep[1].vp[2]=v4; obj.ep[1].vn=3; obj.ep[2].vp[0]=v2; obj.ep[2].vp[1]=v3; obj.ep[2].vp[2]=v4; obj.ep[2].vn=3; obj.ep[3].vp[0]=v3; obj.ep[3].vp[1]=v0; obj.ep[3].vp[2]=v4; obj.ep[3].vn=3; obj.ep[4].vp[0]=v0; obj.ep[4].vp[1]=v1; obj.ep[4].vp[2]=v2;obj.ep[4].vp[3]=v3; obj.ep[4].vn=4; v0.x+=300; v1.x+=300; v2.x+=300; v3.x+=300; v4.x+=300; obj1.ep[0].vp[0]=v0; obj1.ep[0].vp[1]=v1; obj1.ep[0].vp[2]=v4; obj1.ep[0].vn=3; obj1.ep[1].vp[0]=v1; obj1.ep[1].vp[1]=v2; obj1.ep[1].vp[2]=v4; obj1.ep[1].vn=3; obj1.ep[2].vp[0]=v2; obj1.ep[2].vp[1]=v3; obj1.ep[2].vp[2]=v4; obj1.ep[2].vn=3; obj1.ep[3].vp[0]=v3; obj1.ep[3].vp[1]=v0; obj1.ep[3].vp[2]=v4; obj1.ep[3].vn=3; obj1.ep[4].vp[0]=v0; obj1.ep[4].vp[1]=v1; obj1.ep[4].vp[2]=v2;obj1.ep[4].vp[3]=v3; obj1.ep[4].vn=4; rl=0; return true; } bool CM3DView::OnDestroy(IN WISP_MSG*pMsg) { delete obj.ep; delete obj1.ep; return true; } bool CM3DView::OnUpdateClient(IN WISP_MSG*pMsg) { WISP_RECT rc; rc = m_ClientRect; rc.x = rc.y = 0; rc.cy/=2; m_ClientDC.DrawFullRect(&rc,RGB(180,180,255)); rc.y+=rc.cy; rc.cy = m_ClientRect.cy - rc.cy; m_ClientDC.DrawFullRect(&rc,RGB(50,50,50)); draw_obj(&win,&view,&obj,4,&m_ClientDC); draw_obj(&win,&view,&obj1,8,&m_ClientDC); return false; } bool CM3DView::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.bKeyDown==false) return true; rl=0; switch(pMsg->KeyEvent.KeyType) { case WISP_VK_LEFT: rl= 0.03; break; case WISP_VK_RIGHT: rl=-0.03; break; case WISP_VK_UP: view.oy+=10; break; case WISP_VK_DOWN: view.oy-=10; break; case WISP_VK_W: view.oz++; break; case WISP_VK_S: view.oz--; break; case WISP_VK_A: view.dp++; break; case WISP_VK_D: view.dp--; break; default: return true; } change_view(&view,(float)rl,0); Update(); return true; } bool CM3DView::OnMouseMove(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/WispDemo/Source/M3DView.h ================================================ #ifndef _M3D_VIEW_H_ #define _M3D_VIEW_H_ class CM3DView : public CWispWnd { public: CM3DView(void); ~CM3DView(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnMouseMove); }; #endif ================================================ FILE: Project/WispDemo/Source/MainFrame.cpp ================================================ #include "StdAfx.h" #include "LocalApp.h" #include "MainFrame.h" enum { MENU_EVENT_ITEM1 = WISP_ID_USER_START, MENU_EVENT_ITEM2, MENU_EVENT_ITEM3, MENU_EVENT_ITEM4, MENU_EVENT_ITEM5, MENU_EVENT_ITEM6, MENU_EVENT_ITEM7, MENU_EVENT_ITEM8, MENU_EVENT_ITEM9, MENU_EVENT_ITEM10, MENU_EVENT_ITEM11, MENU_EVENT_ITEM12, MENU_EVENT_ITEM13, MENU_EVENT_ITEM14, }; WISP_MENU_RES_ITEM PupupMenuRes2[]= { {WSTR("Item9"),MENU_EVENT_ITEM9,-1}, {WSTR("Item10"),MENU_EVENT_ITEM10,-1}, {WSTR("Item11"),MENU_EVENT_ITEM11,-1}, {WSTR("Item12"),MENU_EVENT_ITEM12,-1}, {NULL,0,0,NULL} }; WISP_MENU_RES_ITEM PupupMenuRes1[]= { {WSTR("Item5"), MENU_EVENT_ITEM5, -1,WISP_MIS_NORMAL|WISP_MIS_CHECKBOX|WISP_MIS_CHECKED}, {WSTR("Item6"), MENU_EVENT_ITEM6, -1,WISP_MIS_NORMAL|WISP_MIS_CHECKBOX}, WISP_MENU_RES_SEPARATOR, {WSTR("Item7"), MENU_EVENT_ITEM7, -1,WISP_MIS_NORMAL}, {WSTR("Item8"), MENU_EVENT_ITEM8, -1,WISP_MIS_NORMAL}, {WSTR("->"), 0, -1,WISP_MIS_POPUP,PupupMenuRes2}, {NULL,0,0,NULL} }; WISP_MENU_RES_ITEM PupupMenuRes[]= { {WSTR("Item1"), MENU_EVENT_ITEM1, -1}, {WSTR("Item2"), MENU_EVENT_ITEM2, -1}, WISP_MENU_RES_SEPARATOR, {WSTR("Item3"), MENU_EVENT_ITEM3, -1}, {WSTR("Item4"), MENU_EVENT_ITEM4, -1}, {WSTR("Popup Item->"),0,-1,WISP_MIS_POPUP,PupupMenuRes1}, {NULL,0,0,NULL} }; WISP_MSG_MAP_BEGIN(CMainFrame) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_COMMAND,OnCommand) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP_END(CWispWnd) CMainFrame::CMainFrame(void) { } CMainFrame::~CMainFrame(void) { } bool CMainFrame::OnCreate(IN WISP_MSG*pMsg) { CWispRect rc; //m_Wnd.Create(WISP_STR("Wisp 3D"),CWispRect(60,60,500,400),this); //m_Wnd.LoadBKDIB("\\DlgAbout.bmp"); m_Toolbar.CreateEx(this,20,0,0,0); m_CalcWnd.Create(100,100,this); m_SoftKB.Create(150,400,this); //m_RippleWnd.Create(WISP_STR("Ripple"),CWispRect(60,60,110+WISP_BORDER_SIZE*2,110+WISP_CAPTION_HEIGHT+WISP_BORDER_SIZE*2),this); //m_M3DView.Create(WISP_STR("Wisp 3D"),CWispRect(100,100,400,300),this,0,WISP_WS_NULL); m_MainMenu.CreateWndMenu(this,0,PupupMenuRes); m_MainTabWnd.Create(WISP_STR("All kind of windows in \"Wisp GUI System\""),CWispRect(50,50,500,400),this,0,WISP_WS_NORMAL | WISP_TWS_BUTTOM); m_MainTabWnd.SetActiveWnd(0); m_PopupMenu.CreatePopupMenu(PupupMenuRes,this); // m_DisplayWnd.Create(WSTR("CHAR"),10,10,200,200); m_ProgressForm.CreateForm(); m_ProgressForm.m_pProgessCtrl->SetStep(10); m_ProgressForm.m_pProgessCtrl->StepIt(); m_ProgressForm.m_pProgessCtrl->StepIt(); m_ProgressForm.m_pProgessCtrl->StepIt(); return true; } bool CMainFrame::OnCommand(IN WISP_MSG*pMsg) { return true; } bool CMainFrame::OnDestroy(IN WISP_MSG*pMsg) { m_PopupMenu.Destroy(); return true; } bool CMainFrame::OnKeyEvent(IN WISP_MSG*pMsg) { return true; } ================================================ FILE: Project/WispDemo/Source/MainFrame.h ================================================ #ifndef _MAIN_FRAME_H_ #define _MAIN_FRAME_H_ #include "MainTabWnd.h" #include "RippleWnd.h" #include "M3DView.h" class CMainFrame : public CWispWnd { public: CMainFrame(void); ~CMainFrame(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate) DECLARE_WISP_MSG(OnDestroy) DECLARE_WISP_MSG(OnCommand) DECLARE_WISP_MSG(OnKeyEvent) CWispToolbar m_Toolbar; CMainTabWnd m_MainTabWnd; CWispCalcWnd m_CalcWnd; CWispSoftKeyboard m_SoftKB; CRippleWnd m_RippleWnd; CM3DView m_M3DView; CWispTaskPanel m_TaskPanel; CWispMenu m_PopupMenu; CWispMenu m_MainMenu; CWispProgressForm m_ProgressForm; }; #endif ================================================ FILE: Project/WispDemo/Source/MainTabWnd.cpp ================================================ #include "StdAfx.h" #include "MainTabWnd.h" WISP_MSG_MAP_BEGIN(CMainTabWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP_END(CWispTabWnd) CMainTabWnd::CMainTabWnd(void) { } CMainTabWnd::~CMainTabWnd(void) { } bool CMainTabWnd::OnCreate(IN WISP_MSG*pMsg) { m_RGBSelect.CreateForm(); m_CtrlPage1.CreateForm(this); m_ConsoleWnd.Create(NULL,CWispRect(0,0,400,300),this,MAIN_TAB_CONSOLE,WISP_WS_NULL,WISP_SH_NORMAL); m_DataWnd.Create(NULL,CWispRect(200,200,400,300),this,MAIN_TAB_CODE_WND,WISP_WS_NULL,WISP_SH_NORMAL); //InsertWnd(WISP_STR("RGB"),&m_RGBSelect); InsertWnd(WISP_STR("Control"),&m_CtrlPage1); InsertWnd(WISP_STR("Console"),&m_ConsoleWnd); InsertWnd(WISP_STR("Code"),&m_DataWnd); m_ConsoleWnd.Printf(WSTR("%Wisp%<1>ƽ̨޹ͼϵͳ\n")); return TRUE; } bool CMainTabWnd::OnDestroy(IN WISP_MSG*pMsg) { m_TabDIB.Destroy(); return true; } ================================================ FILE: Project/WispDemo/Source/MainTabWnd.h ================================================ #ifndef _MAIN_TAB_WND_H_ #define _MAIN_TAB_WND_H_ #include "CtrlPage1.h" enum MAIN_TAB_WND_IDX { MAIN_TAB_CONTROL = 0, MAIN_TAB_CONSOLE, MAIN_TAB_CODE_WND, MAIN_TAB_FILE_WND }; class CMainTabWnd : public CWispTabWnd { public: CMainTabWnd(void); ~CMainTabWnd(void); public: CWispRGBSelect m_RGBSelect; CWispConsoleWnd m_ConsoleWnd; CCtrlPage1 m_CtrlPage1; CWispHexWnd m_DataWnd; CWispDIB m_TabDIB; public: DECLARE_WISP_MSG_MAP bool OnCreate(IN WISP_MSG*pMsg); bool OnDestroy(IN WISP_MSG*pMsg); }; #endif ================================================ FILE: Project/WispDemo/Source/RippleWnd.cpp ================================================ #include "StdAfx.h" #include "RippleWnd.h" WISP_MSG_MAP_BEGIN(CRippleWnd) WISP_MSG_MAP(WISP_WM_CREATE,OnCreate) WISP_MSG_MAP(WISP_WM_DESTROY,OnDestroy) WISP_MSG_MAP(WISP_WM_UPDATE_CLIENT,OnUpdateClient) WISP_MSG_MAP(WISP_WM_KEY_EVENT,OnKeyEvent) WISP_MSG_MAP(WISP_WM_MOUSE_MOVE,OnMouseMove) WISP_MSG_MAP(WISP_WM_TIMER,OnTimer) WISP_MSG_MAP_END(CWispWnd) CRippleWnd::CRippleWnd(void) { } CRippleWnd::~CRippleWnd(void) { } bool CRippleWnd::OnCreate(IN WISP_MSG*pMsg) { CWispDIB DIB; DIB.Load("\\Toolbar.bmp"); DIB.SetType(WISP_DIB_BITMAP); m_OrgDIB.Create(DIB.m_Rect.cx,DIB.m_Rect.cy); m_RippleDIB.Create(DIB.m_Rect.cx,DIB.m_Rect.cy); DIB.BltTiled(&m_OrgDIB); DIB.BltTiled(&m_RippleDIB); m_Ripple.InitRipple(DIB.m_Rect.cx,DIB.m_Rect.cy,32); DIB.Destroy(); Resize(DIB.m_Rect.cx,DIB.m_Rect.cy); return true; } bool CRippleWnd::OnDestroy(IN WISP_MSG*pMsg) { m_OrgDIB.Destroy(); m_RippleDIB.Destroy(); m_Ripple.CleanRippleData(); return true; } bool CRippleWnd::OnUpdateClient(IN WISP_MSG*pMsg) { m_Ripple.RenderRipple(m_OrgDIB.m_FrameBuffer.Buffer,m_RippleDIB.m_FrameBuffer.Buffer); m_ClientDC.DrawDIBTiled(&m_RippleDIB); return false; } bool CRippleWnd::OnKeyEvent(IN WISP_MSG*pMsg) { if(pMsg->KeyEvent.KeyType == WISP_VK_LBUTTON && pMsg->KeyEvent.bKeyDown==false) { m_Ripple.DropStone(pMsg->MsgMouseWndPT.x-m_ClientRect.x,pMsg->MsgMouseWndPT.y-m_ClientRect.y,3,128); InsertTimer(0,20,0,0); } return true; } bool CRippleWnd::OnMouseMove(IN WISP_MSG*pMsg) { if(pMsg->bMsgLBTDown) { m_Ripple.DropStone(pMsg->MsgMouseWndPT.x-m_ClientRect.x,pMsg->MsgMouseWndPT.y-m_ClientRect.y,3,80); } return true; } bool CRippleWnd::OnTimer(IN WISP_MSG*pMsg) { if(m_Ripple.RippleSpread()) Update(); else RemoveTimer((UINT)0); return true; } ================================================ FILE: Project/WispDemo/Source/RippleWnd.h ================================================ #ifndef _RIPPLE_WND_H_ #define _RIPPLE_WND_H_ class CRippleWnd : public CWispWnd { public: CRippleWnd(void); ~CRippleWnd(void); public: DECLARE_WISP_MSG_MAP DECLARE_WISP_MSG(OnCreate); DECLARE_WISP_MSG(OnDestroy); DECLARE_WISP_MSG(OnUpdateClient); DECLARE_WISP_MSG(OnKeyEvent); DECLARE_WISP_MSG(OnTimer); DECLARE_WISP_MSG(OnMouseMove); public: CWispDIB m_OrgDIB; CWispDIB m_RippleDIB; CRipple m_Ripple; }; #endif ================================================ FILE: Project/WispDemo/Source/SdlBase.cpp ================================================ #include "StdAfx.h" #include "SdlBase.h" #include "LocalApp.h" #include CLocalBase LocalBase; typedef void (*TimerCallBack)(int); int SetTimer(int nTime, TimerCallBack cb) { struct itimerval iValue,oValue; struct sigaction siga; siga.sa_handler=cb; siga.sa_flags=0; memset(&siga.sa_mask,0,sizeof(sigset_t)); sigaction(SIGALRM,&siga,0); iValue.it_value.tv_sec=0; iValue.it_value.tv_usec=nTime; iValue.it_interval.tv_sec=0; iValue.it_interval.tv_usec=nTime; setitimer(ITIMER_REAL,&iValue,&oValue); return 0; } void OnTimer(int i) { LocalBase.OnTimer(50); } int main(int argc,char *argv[]) { bool bExit; SDL_Event Event; pthread_t pid,scanvirus; void *retval; LocalBase.AttachApp(&theApp); if(theApp.InitInstance()==FALSE) return 0; pid = (pthread_t)CreateThread(CLocalBase::WispMsgThread); SetTimer(50000,OnTimer); bExit=FALSE; while(!bExit) { if(SDL_WaitEvent(&Event)) { switch (Event.type) { case SDL_MOUSEBUTTONDOWN: LocalBase.OnKeyEvent(WISP_VK_LBUTTON,TRUE); break; case SDL_MOUSEBUTTONUP: LocalBase.OnKeyEvent(WISP_VK_LBUTTON,FALSE); break; case SDL_MOUSEMOTION: LocalBase.OnMousePosChg(Event.motion.x, Event.motion.y); break; case SDL_KEYDOWN: { if(Event.key.keysym.sym == WISP_VK_ESCAPE) { LocalBase.OnKeyEvent(WISP_VK_ESCAPE,TRUE); bExit = TRUE; } break; } default: break; } } } return theApp.ExitInstance(); } CLocalBase::CLocalBase(void) { m_SleepStat = FALSE; } CLocalBase::~CLocalBase(void) { } bool CLocalBase::Init() { WISP_SCREEN_INFO ScrInfo; if(CWispBase::Init()==FALSE) return FALSE; SDL_Init(SDL_INIT_VIDEO); if(GetSupportMode(WISP_MODE_640X480X32,&ScrInfo)==FALSE) return FALSE; return SetScreenMode(&ScrInfo); } void CLocalBase::Release() { SDL_Quit(); return CWispBase::Release(); } ////////////////////////////////////////////////////////// //ʾģʽ ////////////////////////////////////////////////////////// bool CLocalBase::SetScreenMode(IN WISP_SCREEN_INFO*pInfo) { WISP_SCREEN_INFO Info; m_pScreen = SDL_SetVideoMode(pInfo->ScreenWidth, pInfo->ScreenHeight, pInfo->Bpp, SDL_SWSURFACE); if(m_pScreen == NULL) return FALSE; printf("SetScreenMod\n"); fflush(stdout); Info=*pInfo; SDL_ShowCursor(FALSE); Info.Bpp=m_pScreen->format->BytesPerPixel * 8; Info.LineDistance = m_pScreen->pitch; Info.ScreenWidth=m_pScreen->w; Info.ScreenHeight=m_pScreen->h; Info.VideoBuffer=m_pScreen->pixels; return CWispBase::SetScreenMode(&Info); } bool CLocalBase::BeginDraw() { if(SDL_MUSTLOCK(m_pScreen)) if(SDL_LockSurface(m_pScreen) < 0) return FALSE; return TRUE; } bool CLocalBase::EndDraw() { if(SDL_MUSTLOCK(m_pScreen)) SDL_UnlockSurface(m_pScreen); SDL_UpdateRect(m_pScreen, 0,0,m_pScreen->w,m_pScreen->h); return TRUE; } ////////////////////////////////////////////////////////// // Message thread ////////////////////////////////////////////////////////// bool CLocalBase::InitMsgThread() { pthread_mutex_init(&m_ThreadLock,NULL); pthread_cond_init(&m_MsgNull,NULL); return TRUE; } bool CLocalBase::WakeUpMsgThread() { if(m_SleepStat) pthread_cond_signal(&m_MsgNull); return TRUE; } bool CLocalBase::SleepMsgThread() { pthread_mutex_lock(&m_ThreadLock); m_SleepStat = TRUE; pthread_cond_wait(&m_MsgNull,&m_ThreadLock); m_SleepStat = FALSE; pthread_mutex_unlock(&m_ThreadLock); return TRUE; } void CLocalBase::ExitMsgThread() { } void CLocalBase::WispMsgThread() { printf("TheApp.Run()\n"); fflush(stdout); theApp.Run(); } ================================================ FILE: Project/WispDemo/Source/SdlBase.h ================================================ #ifndef _LOCAL_BASE_ #define _LOCAL_BASE_ #include class CLocalBase : public CWispBase { public: SDL_Surface*m_pScreen; pthread_mutex_t m_ThreadLock; pthread_cond_t m_MsgNull; bool m_SleepStat; public: CLocalBase(void); ~CLocalBase(void); bool Init(); void Release(); bool SetScreenMode(IN WISP_SCREEN_INFO*pInfo); bool BeginDraw(); bool EndDraw(); bool InitMsgThread(); bool WakeUpMsgThread(); bool SleepMsgThread(); void ExitMsgThread(); bool CreateLocalWindow(); static void WispMsgThread(); }; #endif /* _LOCAL_BASE_ */ ================================================ FILE: Project/WispDemo/Source/StdAfx.cpp ================================================ #include "StdAfx.h" ================================================ FILE: Project/WispDemo/Source/StdAfx.h ================================================ #ifndef _STDAFX_H_ #define _STDAFX_H_ #include "../../Code/Source/Code.h" #include "../../Wisp/Source/Wisp.h" #ifdef CODE_OS_WIN #include "../../WinWisp/Source/WinWisp.h" #endif #ifdef CODE_OS_UNIX #include "SdlBase.h" #endif #endif ================================================ FILE: Project/WispDemo/Source/WispDemo.rc ================================================ // Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Chinese (P.R.C.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) #ifdef _WIN32 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #pragma code_page(936) #endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON_WISP ICON "res\\Wisp.ico" #endif // Chinese (P.R.C.) resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// // English (U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "#include ""WispDemo.rc2""\r\n" "\0" END #endif // APSTUDIO_INVOKED #endif // English (U.S.) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #include "WispDemo.rc2" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED ================================================ FILE: Project/WispDemo/Source/WispDemo.rc2 ================================================ #ifdef APSTUDIO_INVOKED #error ļ Microsoft Visual C++ ༭ #endif //APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // ڴ˴ֶ༭Դ... ///////////////////////////////////////////////////////////////////////////// #include #include "../../../Addition/SyserDebugger/SyserVersion.h" #define VER_FILETYPE VFT_APP #define VER_FILESUBTYPE 0x8L #define VER_FILEDESCRIPTION_STR "WispDemo" #define VER_INTERNALNAME_STR "WispDemo" #define VER_ORIGINALFILENAME_STR "WispDemo.exe" #define VER_VERSION_UNICODE_LANG "040904B0" #define VER_VERSION_TRANSLATION 0x0409, 0x04B0 VS_VERSION_INFO VERSIONINFO FILEVERSION VER_FILEVERSION PRODUCTVERSION VER_PRODUCTVERSION FILEFLAGSMASK VER_FILEFLAGSMASK FILEFLAGS VER_FILEFLAGS FILEOS VER_FILEOS FILETYPE VER_FILETYPE FILESUBTYPE VER_FILESUBTYPE BEGIN BLOCK "StringFileInfo" BEGIN BLOCK VER_VERSION_UNICODE_LANG BEGIN VALUE "Comments", "" VALUE "CompanyName", VER_COMPANYNAME_STR VALUE "FileDescription", VER_FILEDESCRIPTION_STR VALUE "FileVersion", VER_FILEVERSION_STR VALUE "InternalName", VER_INTERNALNAME_STR VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR VALUE "ProductName", VER_PRODUCTNAME_STR VALUE "ProductVersion", VER_PRODUCTVERSION_STR VALUE "SpecialBuild", VER_SPECIALBUILD_INFO VALUE "PrivateBuild", "" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", VER_VERSION_TRANSLATION END END ///////////////////////////////////////////////////////////////////////////// // // Version // ================================================ FILE: Project/WispDemo/Source/resource.h ================================================ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by WispDemo.rc // #define IDI_ICON_WISP 101 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 104 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ================================================ FILE: Project/WispDemo/Win32/WispDemo.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WispDemo", "WispDemo.vcproj", "{7DC90384-F467-4EFB-AD17-492D433C8FE0}" ProjectSection(ProjectDependencies) = postProject {142E5B2E-BB1F-42A2-B357-81F97F85F86E} = {142E5B2E-BB1F-42A2-B357-81F97F85F86E} {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} = {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Code", "..\..\Code\Win32\Code.vcproj", "{E50360C3-A8D9-4582-A0B8-0F8F88467113}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinWisp", "..\..\WinWisp\Win32\WinWisp.vcproj", "{142E5B2E-BB1F-42A2-B357-81F97F85F86E}" ProjectSection(ProjectDependencies) = postProject {E50360C3-A8D9-4582-A0B8-0F8F88467113} = {E50360C3-A8D9-4582-A0B8-0F8F88467113} {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} = {D3A470E1-DBD8-4CCB-BBB4-46842D343F84} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Wisp", "..\..\Wisp\Win32\Wisp.vcproj", "{D3A470E1-DBD8-4CCB-BBB4-46842D343F84}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 Trial|Win32 = Trial|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {7DC90384-F467-4EFB-AD17-492D433C8FE0}.Debug|Win32.ActiveCfg = Debug|Win32 {7DC90384-F467-4EFB-AD17-492D433C8FE0}.Debug|Win32.Build.0 = Debug|Win32 {7DC90384-F467-4EFB-AD17-492D433C8FE0}.Release|Win32.ActiveCfg = Release|Win32 {7DC90384-F467-4EFB-AD17-492D433C8FE0}.Release|Win32.Build.0 = Release|Win32 {7DC90384-F467-4EFB-AD17-492D433C8FE0}.Trial|Win32.ActiveCfg = Release|Win32 {7DC90384-F467-4EFB-AD17-492D433C8FE0}.Trial|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.ActiveCfg = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Debug|Win32.Build.0 = Debug|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.ActiveCfg = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Release|Win32.Build.0 = Release|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.ActiveCfg = Trial|Win32 {E50360C3-A8D9-4582-A0B8-0F8F88467113}.Trial|Win32.Build.0 = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.ActiveCfg = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Debug|Win32.Build.0 = Debug|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.ActiveCfg = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Release|Win32.Build.0 = Release|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.ActiveCfg = Trial|Win32 {142E5B2E-BB1F-42A2-B357-81F97F85F86E}.Trial|Win32.Build.0 = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.ActiveCfg = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Debug|Win32.Build.0 = Debug|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.ActiveCfg = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Release|Win32.Build.0 = Release|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.ActiveCfg = Trial|Win32 {D3A470E1-DBD8-4CCB-BBB4-46842D343F84}.Trial|Win32.Build.0 = Trial|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/WispDemo/Win32/WispDemo.vcproj ================================================ ================================================ FILE: Project/WispDemo/excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: Project/WispDemo/incfile.txt ================================================ ================================================ FILE: Project/WispDemo/rarex.bat ================================================ @echo off for %%d in (.) do set CurrentFolder=%%~nd if exist excfile.txt set ExcFileSwitch=-x@excfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %ExcFileSwitch% %CurrentFolder%.rar *.* if exist incfile.txt "%ProgramFiles%\winrar\winrar.exe" a -o+ -r -ed %CurrentFolder%.rar @incfile.txt set CurrentFolder= ================================================ FILE: Project/fpu/Source/control_w.h ================================================ /*---------------------------------------------------------------------------+ | control_w.h | | $Id: control_w.h,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992,1993 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@vaxc.cc.monash.edu.au | | | +---------------------------------------------------------------------------*/ #ifndef _CONTROLW_H_ #define _CONTROLW_H_ #ifdef __ASSEMBLY__ #define _Const_(x) $##x #else #define _Const_(x) x #endif #define CW_RC _Const_(0x0C00) /* rounding control */ #define CW_PC _Const_(0x0300) /* precision control */ #define CW_Precision Const_(0x0020) /* loss of precision mask */ #define CW_Underflow Const_(0x0010) /* underflow mask */ #define CW_Overflow Const_(0x0008) /* overflow mask */ #define CW_ZeroDiv Const_(0x0004) /* divide by zero mask */ #define CW_Denormal Const_(0x0002) /* denormalized operand mask */ #define CW_Invalid Const_(0x0001) /* invalid operation mask */ #define CW_Exceptions _Const_(0x003f) /* all masks */ #define RC_RND _Const_(0x0000) #define RC_DOWN _Const_(0x0400) #define RC_UP _Const_(0x0800) #define RC_CHOP _Const_(0x0C00) /* p 15-5: Precision control bits affect only the following: ADD, SUB(R), MUL, DIV(R), and SQRT */ #define PR_24_BITS _Const_(0x000) #define PR_53_BITS _Const_(0x200) #define PR_64_BITS _Const_(0x300) #define PR_RESERVED_BITS _Const_(0x100) /* FULL_PRECISION simulates all exceptions masked */ #define FULL_PRECISION (PR_64_BITS | RC_RND | 0x3f) #endif /* _CONTROLW_H_ */ ================================================ FILE: Project/fpu/Source/div_Xsig.cpp ================================================ /*---------------------------------------------------------------------------+ | div_Xsig.S | | $Id: div_Xsig.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Division subroutine for 96 bit quantities | | | | Copyright (C) 1994,1995,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | Divide the 96 bit quantity pointed to by a, by that pointed to by b, and | | put the 96 bit result at the location d. | | | | The result may not be accurate to 96 bits. It is intended for use where | | a result better than 64 bits is required. The result should usually be | | good to at least 94 bits. | | The returned result is actually divided by one half. This is done to | | prevent overflow. | | | | .aaaaaaaaaaaaaa / .bbbbbbbbbbbbb -> .dddddddddddd | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" #include "poly.h" void div_Xsig(current_i387_definefunyuan_ const Xsig *aa, const Xsig *b, Xsig *dest) { Xsig a = *aa, xpr, result; u32 prodh, prodl, den, wd; u64 num, prod; #ifdef PARANOID if ( (b->msw & 0x80000000) == 0 ) { EXCEPTION(EX_INTERNAL|0x240); return; } #endif /* Shift a right */ a.lsw >>= 1; if ( a.midw & 1 ) a.lsw |= 0x80000000; a.midw >>= 1; if ( a.msw & 1 ) a.midw |= 0x80000000; a.msw >>= 1; num = a.msw; num <<= 32; num |= a.midw; den = b->msw + 1; if ( den ) { result.msw = (u32)(num / den); } else result.msw = a.msw; xpr = *b; mul32_Xsig(&xpr, result.msw); a.msw -= xpr.msw; wd = a.midw; a.midw -= xpr.midw; if ( a.midw > wd ) a.msw --; wd = a.lsw; a.lsw -= xpr.lsw; if ( a.lsw > wd ) { a.midw --; if ( a.midw == 0xffffffff ) a.msw --; } #ifdef PARANOID if ( a.msw > 1 ) { EXCEPTION(EX_INTERNAL|0x241); } #endif while ( (a.msw != 0) || (a.midw > b->msw) ) { wd = a.midw; a.midw -= b->msw; if ( a.midw > wd ) a.msw --; wd = a.lsw; a.lsw -= b->midw; if ( a.lsw > wd ) { a.midw --; if ( a.midw == 0xffffffff ) a.msw --; } result.msw ++; } /* Whew! result.msw is now done. */ num = a.midw; num <<= 32; num |= a.lsw; if ( den ) { result.midw = (u32)(num / den); } else result.midw = a.midw; prod = result.midw; prod *= b->msw; a.midw -= (u32)(prod >> 32); prodl = (u32)prod; wd = a.lsw; a.lsw -= prodl; if ( a.lsw > wd ) a.midw --; prod = result.midw; prod *= b->midw; prodh = (u32)(prod >> 32); wd = a.lsw; a.lsw -= prodh; if ( a.lsw > wd ) a.midw --; #ifdef PARANOID if ( a.midw > 1 ) { EXCEPTION(EX_INTERNAL|0x242); } #endif while ( (a.midw != 0) || (a.lsw > b->msw) ) { wd = a.lsw; a.lsw -= b->msw; if ( a.lsw > wd ) a.midw --; result.midw ++; } /* Now result.msw is done, the lsw is next... */ num = a.lsw; num <<= 32; if ( den ) { result.lsw = (u32)(num / den); } else result.lsw = a.lsw; prod = result.lsw; prod *= b->msw; a.lsw -= (u32)(prod >> 32); #ifdef PARANOID if ( a.lsw > 2 ) { EXCEPTION(EX_INTERNAL|0x243); } #endif result.lsw -= a.lsw; /* Hey! we're done. */ *dest = result; } ================================================ FILE: Project/fpu/Source/div_small.cpp ================================================ /*---------------------------------------------------------------------------+ | div_small.S | | $Id: div_small.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Divide a 64 bit integer by a 32 bit integer & return remainder. | | | | Copyright (C) 1992,1995,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" u32 FPU_div_small(current_i387_definefunyuan_ u64 *x, u32 y) { u32 retval; retval = (u32)(*x % y); *x /= y; return retval; } ================================================ FILE: Project/fpu/Source/errors.cpp ================================================ /*---------------------------------------------------------------------------+ | errors.c | | $Id: errors.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | The error handling functions for wm-FPU-emu | | | | Copyright (C) 1992,1993,1994,1996 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@jacobi.maths.monash.edu.au | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | Note: | | The file contains code which accesses user memory. | | Emulator static data may change when user memory is accessed, due to | | other processes using the emulator while swapping is in progress. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include #include #include #include "fpu_emu.h" #include "fpu_system.h" #include "exception.h" #include "status_w.h" #include "control_w.h" #include "reg_constant.h" #include "version.h" /* */ #undef PRINT_MESSAGES /* */ #ifndef USE_WITH_CPU_SIM void Un_impl(current_i387_definefunyuan_void) { u_char byte1, FPU_modrm; u32 address = FPU_ORIG_EIP; RE_ENTRANT_CHECK_OFF; /* No need to verify_area(), we have previously fetched these bytes. */ fpu_printk("Unimplemented FPU Opcode at eip=%p : ", (void *) address); if ( FPU_CS == __USER_CS ) { while ( 1 ) { FPU_get_user(byte1, (u_char *) address); if ( (byte1 & 0xf8) == 0xd8 ) break; fpu_printk("[%02x]", byte1); address++; } fpu_printk("%02x ", byte1); FPU_get_user(FPU_modrm, 1 + (u_char *) address); if (FPU_modrm >= 0300) fpu_printk("%02x (%02x+%d)\n", FPU_modrm, FPU_modrm & 0xf8, FPU_modrm & 7); else fpu_printk("/%d\n", (FPU_modrm >> 3) & 7); } else { fpu_printk("cs selector = %04x\n", FPU_CS); } RE_ENTRANT_CHECK_ON; EXCEPTION(EX_Invalid); } #endif /* Called for opcodes which are illegal and which are known to result in a SIGILL with a real 80486. */ void FPU_illegal(current_i387_definefunyuan_void) { math_abort(current_i387_yuan_ FPU_info,SIGILL); } #ifndef USE_WITH_CPU_SIM void FPU_printall(current_i387_definefunyuan_void) { int i; static const char *tag_desc[] = { "Valid", "Zero", "ERROR", "Empty", "DeNorm", "Inf", "NaN" }; u_char byte1, FPU_modrm; u32 address = FPU_ORIG_EIP; RE_ENTRANT_CHECK_OFF; /* No need to verify_area(), we have previously fetched these bytes. */ fpu_printk("At %p:", (void *) address); if ( FPU_CS == __USER_CS ) { #define MAX_PRINTED_BYTES 20 for ( i = 0; i < MAX_PRINTED_BYTES; i++ ) { FPU_get_user(byte1, (u_char *) address); if ( (byte1 & 0xf8) == 0xd8 ) { fpu_printk(" %02x", byte1); break; } fpu_printk(" [%02x]", byte1); address++; } if ( i == MAX_PRINTED_BYTES ) fpu_printk(" [more..]\n"); else { FPU_get_user(FPU_modrm, 1 + (u_char *) address); if (FPU_modrm >= 0300) fpu_printk(" %02x (%02x+%d)\n", FPU_modrm, FPU_modrm & 0xf8, FPU_modrm & 7); else fpu_printk(" /%d, mod=%d rm=%d\n", (FPU_modrm >> 3) & 7, (FPU_modrm >> 6) & 3, FPU_modrm & 7); } } else { fpu_printk("%04x\n", FPU_CS); } partial_status = status_word(); fpu_printk(" SW: b=%d st=%ld es=%d sf=%d cc=%d%d%d%d ef=%d%d%d%d%d%d\n", partial_status & 0x8000 ? 1 : 0, /* busy */ (partial_status & 0x3800) >> 11, /* stack top pointer */ partial_status & 0x80 ? 1 : 0, /* Error summary status */ partial_status & 0x40 ? 1 : 0, /* Stack flag */ partial_status & SW_C3?1:0, partial_status & SW_C2?1:0, /* cc */ partial_status & SW_C1?1:0, partial_status & SW_C0?1:0, /* cc */ partial_status & SW_Precision?1:0, partial_status & SW_Underflow?1:0, partial_status & SW_Overflow?1:0, partial_status & SW_Zero_Div?1:0, partial_status & SW_Denorm_Op?1:0, partial_status & SW_Invalid?1:0); fpu_printk(" CW: ic=%d rc=%ld%ld pc=%ld%ld iem=%d ef=%d%d%d%d%d%d\n", control_word & 0x1000 ? 1 : 0, (control_word & 0x800) >> 11, (control_word & 0x400) >> 10, (control_word & 0x200) >> 9, (control_word & 0x100) >> 8, control_word & 0x80 ? 1 : 0, control_word & SW_Precision?1:0, control_word & SW_Underflow?1:0, control_word & SW_Overflow?1:0, control_word & SW_Zero_Div?1:0, control_word & SW_Denorm_Op?1:0, control_word & SW_Invalid?1:0); for ( i = 0; i < 8; i++ ) { FPU_REG *r = &st(i); u_char tagi = FPU_gettagi(current_i387_yuan_ i); switch (tagi) { case TAG_Empty: continue; break; case TAG_Zero: case TAG_Special: tagi = FPU_Special(current_i387_yuan_ r); case TAG_Valid: fpu_printk("st(%d) %c .%04lx %04lx %04lx %04lx e%+-6d ", i, getsign(r) ? '-' : '+', (s32)(r->sigh >> 16), (s32)(r->sigh & 0xFFFF), (s32)(r->sigl >> 16), (s32)(r->sigl & 0xFFFF), exponent(r) - EXP_BIAS + 1); break; default: fpu_printk("Whoops! Error in errors.c: tag%d is %d ", i, tagi); continue; break; } fpu_printk("%s\n", tag_desc[(int) (unsigned) tagi]); } RE_ENTRANT_CHECK_ON; } #endif static struct { int type; const char *name; } exception_names[] = { { EX_StackOver, "stack overflow" }, { EX_StackUnder, "stack underflow" }, { EX_Precision, "loss of precision" }, { EX_Underflow, "underflow" }, { EX_Overflow, "overflow" }, { EX_ZeroDiv, "divide by zero" }, { EX_Denormal, "denormalized operand" }, { EX_Invalid, "invalid operation" }, { EX_INTERNAL, "INTERNAL BUG in "FPU_VERSION }, { 0, NULL } }; /* EX_INTERNAL is always given with a code which indicates where the error was detected. Internal error types: 0x14 in fpu_etc.c 0x1nn in a *.c file: 0x101 in reg_add_sub.c 0x102 in reg_mul.c 0x104 in poly_atan.c 0x105 in reg_mul.c 0x107 in fpu_trig.c 0x108 in reg_compare.c 0x109 in reg_compare.c 0x110 in reg_add_sub.c 0x111 in fpe_entry.c 0x112 in fpu_trig.c 0x113 in errors.c 0x115 in fpu_trig.c 0x116 in fpu_trig.c 0x117 in fpu_trig.c 0x118 in fpu_trig.c 0x119 in fpu_trig.c 0x120 in poly_atan.c 0x121 in reg_compare.c 0x122 in reg_compare.c 0x123 in reg_compare.c 0x125 in fpu_trig.c 0x126 in fpu_entry.c 0x127 in poly_2xm1.c 0x128 in fpu_entry.c 0x129 in fpu_entry.c 0x130 in get_address.c 0x131 in get_address.c 0x132 in get_address.c 0x133 in get_address.c 0x140 in load_store.c 0x141 in load_store.c 0x150 in poly_sin.c 0x151 in poly_sin.c 0x160 in reg_ld_str.c 0x161 in reg_ld_str.c 0x162 in reg_ld_str.c 0x163 in reg_ld_str.c 0x164 in reg_ld_str.c 0x170 in fpu_tags.c 0x171 in fpu_tags.c 0x172 in fpu_tags.c 0x180 in reg_convert.c 0x2nn in an *.S file: 0x201 in reg_u_add.S 0x202 in reg_u_div.S 0x203 in reg_u_div.S 0x204 in reg_u_div.S 0x205 in reg_u_mul.S 0x206 in reg_u_sub.S 0x207 in wm_sqrt.S 0x208 in reg_div.S 0x209 in reg_u_sub.S 0x210 in reg_u_sub.S 0x211 in reg_u_sub.S 0x212 in reg_u_sub.S 0x213 in wm_sqrt.S 0x214 in wm_sqrt.S 0x215 in wm_sqrt.S 0x220 in reg_norm.S 0x221 in reg_norm.S 0x230 in reg_round.S 0x231 in reg_round.S 0x232 in reg_round.S 0x233 in reg_round.S 0x234 in reg_round.S 0x235 in reg_round.S 0x236 in reg_round.S 0x240 in div_Xsig.S 0x241 in div_Xsig.S 0x242 in div_Xsig.S */ void FPU_exception(current_i387_definefunyuan_ int n) { int i, int_type; int_type = 0; /* Needed only to stop compiler warnings */ if ( n & EX_INTERNAL ) { int_type = n - EX_INTERNAL; n = EX_INTERNAL; /* Set lots of exception bits! */ partial_status |= (SW_Exc_Mask | SW_Summary | SW_Backward); } else { /* Extract only the bits which we use to set the status word */ n &= (SW_Exc_Mask); /* Set the corresponding exception bit */ partial_status |= n; /* Set summary bits iff exception isn't masked */ if ( partial_status & ~control_word & CW_Exceptions ) partial_status |= (SW_Summary | SW_Backward); if ( n & (SW_Stack_Fault | EX_Precision) ) { if ( !(n & SW_C1) ) /* This bit distinguishes over- from underflow for a stack fault, and roundup from round-down for precision loss. */ partial_status &= ~SW_C1; } } RE_ENTRANT_CHECK_OFF; if ( (~control_word & n & CW_Exceptions) || (n == EX_INTERNAL) ) { #ifdef PRINT_MESSAGES /* My message from the sponsor */ fpu_printk(FPU_VERSION" "__DATE__" (C) W. Metzenthen.\n"); #endif /* PRINT_MESSAGES */ /* Get a name string for error reporting */ for (i=0; exception_names[i].type; i++) if ( (exception_names[i].type & n) == exception_names[i].type ) break; if (exception_names[i].type) { #ifdef PRINT_MESSAGES fpu_printk("FP Exception: %s!\n", exception_names[i].name); #endif /* PRINT_MESSAGES */ } else fpu_printk("FPU emulator: Unknown Exception: 0x%04x!\n", n); if ( n == EX_INTERNAL ) { fpu_printk("FPU emulator: Internal error type 0x%04x\n", int_type); FPU_printall(current_i387_yuan_clono ); } #ifdef PRINT_MESSAGES else FPU_printall(current_i387_yuan_clono ); #endif /* PRINT_MESSAGES */ /* * The 80486 generates an interrupt on the next non-control FPU * instruction. So we need some means of flagging it. * We use the ES (Error Summary) bit for this. */ } RE_ENTRANT_CHECK_ON; } /* Real operation attempted on a NaN. */ /* Returns < 0 if the exception is unmasked */ int real_1op_NaN(current_i387_definefunyuan_ FPU_REG *a) { int signalling, isNaN; isNaN = (exponent(a) == EXP_OVER) && (a->sigh & 0x80000000); /* The default result for the case of two "equal" NaNs (signs may differ) is chosen to reproduce 80486 behaviour */ signalling = isNaN && !(a->sigh & 0x40000000); if ( !signalling ) { if ( !isNaN ) /* pseudo-NaN, or other unsupported? */ { if ( control_word & CW_Invalid ) { /* Masked response */ reg_copy(&CONST_QNaN, a); } EXCEPTION(EX_Invalid); return (!(control_word & CW_Invalid) ? FPU_Exception : 0) | TAG_Special; } return TAG_Special; } if ( control_word & CW_Invalid ) { /* The masked response */ if ( !(a->sigh & 0x80000000) ) /* pseudo-NaN ? */ { reg_copy(&CONST_QNaN, a); } /* ensure a Quiet NaN */ a->sigh |= 0x40000000; } EXCEPTION(EX_Invalid); return (!(control_word & CW_Invalid) ? FPU_Exception : 0) | TAG_Special; } /* Real operation attempted on two operands, one a NaN. */ /* Returns < 0 if the exception is unmasked */ int real_2op_NaN(current_i387_definefunyuan_ FPU_REG const *b, u_char tagb, int deststnr, FPU_REG const *defaultNaN) { FPU_REG *dest = &st(deststnr); FPU_REG const *a = dest; u_char taga = FPU_gettagi(current_i387_yuan_ deststnr); FPU_REG const *x; int signalling, unsupported; if ( taga == TAG_Special ) taga = FPU_Special(current_i387_yuan_ a); if ( tagb == TAG_Special ) tagb = FPU_Special(current_i387_yuan_ b); /* TW_NaN is also used for unsupported data types. */ unsupported = ((taga == TW_NaN) && !((exponent(a) == EXP_OVER) && (a->sigh & 0x80000000))) || ((tagb == TW_NaN) && !((exponent(b) == EXP_OVER) && (b->sigh & 0x80000000))); if ( unsupported ) { if ( control_word & CW_Invalid ) { /* Masked response */ FPU_copy_to_regi(current_i387_yuan_ &CONST_QNaN, TAG_Special, deststnr); } EXCEPTION(EX_Invalid); return (!(control_word & CW_Invalid) ? FPU_Exception : 0) | TAG_Special; } if (taga == TW_NaN) { x = a; if (tagb == TW_NaN) { signalling = !(a->sigh & b->sigh & 0x40000000); if ( significand(b) > significand(a) ) x = b; else if ( significand(b) == significand(a) ) { /* The default result for the case of two "equal" NaNs (signs may differ) is chosen to reproduce 80486 behaviour */ x = defaultNaN; } } else { /* return the quiet version of the NaN in a */ signalling = !(a->sigh & 0x40000000); } } else #ifdef PARANOID if (tagb == TW_NaN) #endif /* PARANOID */ { signalling = !(b->sigh & 0x40000000); x = b; } #ifdef PARANOID else { signalling = 0; EXCEPTION(EX_INTERNAL|0x113); x = &CONST_QNaN; } #endif /* PARANOID */ if ( (!signalling) || (control_word & CW_Invalid) ) { if ( ! x ) x = b; if ( !(x->sigh & 0x80000000) ) /* pseudo-NaN ? */ x = &CONST_QNaN; FPU_copy_to_regi(current_i387_yuan_ x, TAG_Special, deststnr); if ( !signalling ) return TAG_Special; /* ensure a Quiet NaN */ dest->sigh |= 0x40000000; } EXCEPTION(EX_Invalid); return (!(control_word & CW_Invalid) ? FPU_Exception : 0) | TAG_Special; } /* Invalid arith operation on Valid registers */ /* Returns < 0 if the exception is unmasked */ asmlinkage int arith_invalid(current_i387_definefunyuan_ int deststnr) { EXCEPTION(EX_Invalid); if ( control_word & CW_Invalid ) { /* The masked response */ FPU_copy_to_regi(current_i387_yuan_ &CONST_QNaN, TAG_Special, deststnr); } return (!(control_word & CW_Invalid) ? FPU_Exception : 0) | TAG_Valid; } /* Divide a finite number by zero */ asmlinkage int FPU_divide_by_zero(current_i387_definefunyuan_ int deststnr, u_char sign) { FPU_REG *dest = &st(deststnr); int tag = TAG_Valid; if ( control_word & CW_ZeroDiv ) { /* The masked response */ FPU_copy_to_regi(current_i387_yuan_ &CONST_INF, TAG_Special, deststnr); setsign(dest, sign); tag = TAG_Special; } EXCEPTION(EX_ZeroDiv); return (!(control_word & CW_ZeroDiv) ? FPU_Exception : 0) | tag; } /* This may be called often, so keep it lean */ int set_precision_flag(current_i387_definefunyuan_ int flags) { if ( control_word & CW_Precision ) { partial_status &= ~(SW_C1 & flags); partial_status |= flags; /* The masked response */ return 0; } else { EXCEPTION(flags); return 1; } } /* This may be called often, so keep it lean */ asmlinkage void set_precision_flag_up(current_i387_definefunyuan_void) { if ( control_word & CW_Precision ) partial_status |= (SW_Precision | SW_C1); /* The masked response */ else EXCEPTION(EX_Precision | SW_C1); } /* This may be called often, so keep it lean */ asmlinkage void set_precision_flag_down(current_i387_definefunyuan_void) { if ( control_word & CW_Precision ) { /* The masked response */ partial_status &= ~SW_C1; partial_status |= SW_Precision; } else EXCEPTION(EX_Precision); } asmlinkage int denormal_operand(current_i387_definefunyuan_void) { if ( control_word & CW_Denormal ) { /* The masked response */ partial_status |= SW_Denorm_Op; return TAG_Special; } else { EXCEPTION(EX_Denormal); return TAG_Special | FPU_Exception; } } asmlinkage int arith_overflow(current_i387_definefunyuan_ FPU_REG *dest) { int tag = TAG_Valid; if ( control_word & CW_Overflow ) { /* The masked response */ reg_copy(&CONST_INF, dest); tag = TAG_Special; } else { /* Subtract the magic number from the exponent */ addexponent(dest, (-3 * (1 << 13))); } EXCEPTION(EX_Overflow); if ( control_word & CW_Overflow ) { /* The overflow exception is masked. */ /* By definition, precision is lost. The roundup bit (C1) is also set because we have "rounded" upwards to Infinity. */ EXCEPTION(EX_Precision | SW_C1); return tag; } return tag; } asmlinkage int arith_round_overflow(current_i387_definefunyuan_ FPU_REG *dest, u8 sign) { int tag = TAG_Valid; int largest; if ( control_word & CW_Overflow ) { /* The masked response */ /* The response here depends upon the rounding mode */ switch ( control_word & CW_RC ) { case RC_CHOP: /* Truncate */ largest = 1; break; case RC_UP: /* Towards +infinity */ largest = (sign == SIGN_NEG); break; case RC_DOWN: /* Towards -infinity */ largest = (sign == SIGN_POS); break; default: largest = 0; break; } if ( ! largest ) { reg_copy(&CONST_INF, dest); tag = TAG_Special; } else { dest->exp = EXTENDED_Ebias+EXP_OVER-1; switch ( control_word & CW_PC ) { case 01: case PR_64_BITS: significand(dest) = BX_CONST64(0xffffffffffffffff); break; case PR_53_BITS: significand(dest) = BX_CONST64(0xfffffffffffff800); break; case PR_24_BITS: significand(dest) = BX_CONST64(0xffffff0000000000); break; } } } else { /* Subtract the magic number from the exponent */ addexponent(dest, (-3 * (1 << 13))); largest = 0; } EXCEPTION(EX_Overflow); if ( control_word & CW_Overflow ) { /* The overflow exception is masked. */ if ( largest ) { EXCEPTION(EX_Precision); } else { /* By definition, precision is lost. The roundup bit (C1) is also set because we have "rounded" upwards to Infinity. */ EXCEPTION(EX_Precision | SW_C1); } return tag; } return tag; } asmlinkage int arith_underflow(current_i387_definefunyuan_ FPU_REG *dest) { int tag = TAG_Valid; if ( control_word & CW_Underflow ) { /* The masked response */ if ( exponent16(dest) <= EXP_UNDER - 63 ) { reg_copy(&CONST_Z, dest); partial_status &= ~SW_C1; /* Round down. */ tag = TAG_Zero; } else { stdexp(dest); } } else { /* Add the magic number to the exponent. */ addexponent(dest, (short)((3 * (1 << 13)) + EXTENDED_Ebias)); } EXCEPTION(EX_Underflow); if ( control_word & CW_Underflow ) { /* The underflow exception is masked. */ EXCEPTION(EX_Precision); return tag; } return tag; } void FPU_stack_overflow(current_i387_definefunyuan_void) { if ( control_word & CW_Invalid ) { /* The masked response */ top--; FPU_copy_to_reg0(current_i387_yuan_ &CONST_QNaN, TAG_Special); } EXCEPTION(EX_StackOver); return; } void FPU_stack_underflow(current_i387_definefunyuan_void) { if ( control_word & CW_Invalid ) { /* The masked response */ FPU_copy_to_reg0(current_i387_yuan_ &CONST_QNaN, TAG_Special); } EXCEPTION(EX_StackUnder); return; } void FPU_stack_underflow_i(current_i387_definefunyuan_ int i) { if ( control_word & CW_Invalid ) { /* The masked response */ FPU_copy_to_regi(current_i387_yuan_ &CONST_QNaN, TAG_Special, i); } EXCEPTION(EX_StackUnder); return; } void FPU_stack_underflow_pop(current_i387_definefunyuan_ int i) { if ( control_word & CW_Invalid ) { /* The masked response */ FPU_copy_to_regi(current_i387_yuan_ &CONST_QNaN, TAG_Special, i); FPU_pop(current_i387_yuan_clono ); } EXCEPTION(EX_StackUnder); return; } ================================================ FILE: Project/fpu/Source/exception.h ================================================ /*---------------------------------------------------------------------------+ | exception.h | | $Id: exception.h,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992 W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@vaxc.cc.monash.edu.au | | | +---------------------------------------------------------------------------*/ #ifndef _EXCEPTION_H_ #define _EXCEPTION_H_ #ifdef __ASSEMBLY__ #define Const_(x) $##x #else #define Const_(x) x #endif #ifndef SW_C1 #include "fpu_emu.h" #endif /* SW_C1 */ #define FPU_BUSY Const_(0x8000) /* FPU busy bit (8087 compatibility) */ #define EX_ErrorSummary Const_(0x0080) /* Error summary status */ /* Special exceptions: */ #define EX_INTERNAL Const_(0x8000) /* Internal error in wm-FPU-emu */ #define EX_StackOver Const_(0x0041|SW_C1) /* stack overflow */ #define EX_StackUnder Const_(0x0041) /* stack underflow */ /* Exception flags: */ #define EX_Precision Const_(0x0020) /* loss of precision */ #define EX_Underflow Const_(0x0010) /* underflow */ #define EX_Overflow Const_(0x0008) /* overflow */ #define EX_ZeroDiv Const_(0x0004) /* divide by zero */ #define EX_Denormal Const_(0x0002) /* denormalized operand */ #define EX_Invalid Const_(0x0001) /* invalid operation */ #define PRECISION_LOST_UP Const_((EX_Precision | SW_C1)) #define PRECISION_LOST_DOWN Const_(EX_Precision) #ifndef __ASSEMBLY__ #define EXCEPTION(x) FPU_exception(current_i387_yuan_ x) #endif /* __ASSEMBLY__ */ #endif /* _EXCEPTION_H_ */ ================================================ FILE: Project/fpu/Source/fpu.cpp ================================================ // Copyright (C) 2001 MandrakeSoft S.A. // // MandrakeSoft S.A. // 43, rue d'Aboukir // 75002 Paris - France // http://www.linux-mandrake.com/ // http://www.mandrakesoft.com/ // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2 of the License, or (at your option) any later version. // // 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. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include "fpu_i387.h" #include "../../IntelCPU/Source/x86cpu.h" #undef LOG_THIS #define LOG_THIS genlog-> // Nomenclature used to signify argument types // // Es = single real // El = double real // Ea = 14/28 bytes 98/108b bytes (FRSTOR,FSAVE)??? // Ew = word integer (2 bytes) // Ed = dword integer (4 bytes) (short int) // Et = extended real // Eb = packed BCD // Eq = quadword integer (8 bytes) (long integer) #if BX_SUPPORT_FPU==1 void BX_CPU_C::ESC0(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC0 not implemented")); #endif } void BX_CPU_C::ESC1(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC1 not implemented")); #endif } void BX_CPU_C::ESC2(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC2 not implemented")); #endif } void BX_CPU_C::ESC3(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } //BX_DEBUG(( "CS:EIP = %04x:%08x", // BX_CPU.sregs[BX_SEG_REG_CS].selector.value, BX_CPU.prev_eip)); #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC3 not implemented")); #endif } void BX_CPU_C::ESC4(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC4 not implemented")); #endif } void BX_CPU_C::ESC5(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC5 not implemented")); #endif } void BX_CPU_C::ESC6(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC6 not implemented")); #endif } void BX_CPU_C::ESC7(BX_CPU_C *icpu,bxInstruction_c *i) { if ( BX_CPU_CLASS_PTR cr0.em || BX_CPU_CLASS_PTR cr0.ts ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("ESC7 not implemented")); #endif } void BX_CPU_C::FWAIT(BX_CPU_C *icpu,bxInstruction_c *i) { #if BX_CPU_LEVEL < 3 // WAIT doesn't generate single steps on 8086. // The same goes for prefix instructions, and instructions which // modify segment registers. (pg4-16) // single_step_event = 0; BX_PANIC(("WAIT: not implemented for < 386")); #else // BX_CPU_LEVEL >= 3 if ( BX_CPU_CLASS_PTR cr0.ts && BX_CPU_CLASS_PTR cr0.mp ) { BX_CPU_CLASS_PTR exception(BX_NM_EXCEPTION, 0, 0); // no error } #if BX_SUPPORT_FPU BX_CPU_CLASS_PTR fpu_execute(i); #else BX_INFO(("FWAIT: no FPU")); #endif #endif } #if BX_SUPPORT_FPU==0 // if supporting FPU, this function in glue logic file void BX_CPU_C::fpu_init(void) { } #endif #endif ================================================ FILE: Project/fpu/Source/fpu_arith.cpp ================================================ /*---------------------------------------------------------------------------+ | fpu_arith.c | | $Id: fpu_arith.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Code to implement the FPU register/register arithmetic instructions | | | | Copyright (C) 1992,1993,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "fpu_emu.h" #include "control_w.h" #include "status_w.h" void fadd__(current_i387_definefunyuan_void ) { /* fadd st,st(i) */ int i = FPU_rm; clear_C1(); FPU_add(current_i387_yuan_ &st(i), FPU_gettagi(current_i387_yuan_ i), 0, control_word); } void fmul__(current_i387_definefunyuan_void ) { /* fmul st,st(i) */ int i = FPU_rm; clear_C1(); FPU_mul(current_i387_yuan_ &st(i), FPU_gettagi(current_i387_yuan_ i), 0, control_word); } void fsub__(current_i387_definefunyuan_void ) { /* fsub st,st(i) */ clear_C1(); FPU_sub(current_i387_yuan_ 0, REGNO2PTR(FPU_rm), control_word); } void fsubr_(current_i387_definefunyuan_void ) { /* fsubr st,st(i) */ clear_C1(); FPU_sub(current_i387_yuan_ REV, REGNO2PTR(FPU_rm), control_word); } void fdiv__(current_i387_definefunyuan_void ) { /* fdiv st,st(i) */ clear_C1(); FPU_div(current_i387_yuan_ 0, REGNO2PTR(FPU_rm), control_word); } void fdivr_(current_i387_definefunyuan_void ) { /* fdivr st,st(i) */ clear_C1(); FPU_div(current_i387_yuan_ REV, REGNO2PTR(FPU_rm), control_word); } void fadd_i(current_i387_definefunyuan_void ) { /* fadd st(i),st */ int i = FPU_rm; clear_C1(); FPU_add(current_i387_yuan_ &st(i), FPU_gettagi(current_i387_yuan_ i), i, control_word); } void fmul_i(current_i387_definefunyuan_void ) { /* fmul st(i),st */ clear_C1(); FPU_mul(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_doc ), FPU_rm, control_word); } void fsubri(current_i387_definefunyuan_void ) { /* fsubr st(i),st */ clear_C1(); FPU_sub(current_i387_yuan_ DEST_RM, REGNO2PTR(FPU_rm), control_word); } void fsub_i(current_i387_definefunyuan_void ) { /* fsub st(i),st */ clear_C1(); FPU_sub(current_i387_yuan_ REV|DEST_RM, REGNO2PTR(FPU_rm), control_word); } void fdivri(current_i387_definefunyuan_void ) { /* fdivr st(i),st */ clear_C1(); FPU_div(current_i387_yuan_ DEST_RM, REGNO2PTR(FPU_rm), control_word); } void fdiv_i(current_i387_definefunyuan_void ) { /* fdiv st(i),st */ clear_C1(); FPU_div(current_i387_yuan_ REV|DEST_RM, REGNO2PTR(FPU_rm), control_word); } void faddp_(current_i387_definefunyuan_void ) { /* faddp st(i),st */ int i = FPU_rm; clear_C1(); if ( FPU_add(current_i387_yuan_ &st(i), FPU_gettagi(current_i387_yuan_ i), i, control_word) >= 0 ) FPU_pop(current_i387_yuan_clono ); } void fmulp_(current_i387_definefunyuan_void ) { /* fmulp st(i),st */ clear_C1(); if ( FPU_mul(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_doc ), FPU_rm, control_word) >= 0 ) FPU_pop(current_i387_yuan_clono ); } void fsubrp(current_i387_definefunyuan_void ) { /* fsubrp st(i),st */ clear_C1(); if ( FPU_sub(current_i387_yuan_ DEST_RM, REGNO2PTR(FPU_rm), control_word) >= 0 ) FPU_pop(current_i387_yuan_clono ); } void fsubp_(current_i387_definefunyuan_void ) { /* fsubp st(i),st */ clear_C1(); if ( FPU_sub(current_i387_yuan_ REV|DEST_RM, REGNO2PTR(FPU_rm), control_word) >= 0 ) FPU_pop(current_i387_yuan_clono ); } void fdivrp(current_i387_definefunyuan_void ) { /* fdivrp st(i),st */ clear_C1(); if ( FPU_div(current_i387_yuan_ DEST_RM, REGNO2PTR(FPU_rm), control_word) >= 0 ) FPU_pop(current_i387_yuan_clono ); } void fdivp_(current_i387_definefunyuan_void ) { /* fdivp st(i),st */ clear_C1(); if ( FPU_div(current_i387_yuan_ REV|DEST_RM, REGNO2PTR(FPU_rm), control_word) >= 0 ) FPU_pop(current_i387_yuan_clono ); } ================================================ FILE: Project/fpu/Source/fpu_asm.h ================================================ /*---------------------------------------------------------------------------+ | fpu_asm.h | | $Id: fpu_asm.h,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992,1995,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@suburbia.net | | | +---------------------------------------------------------------------------*/ #ifndef _FPU_ASM_H_ #define _FPU_ASM_H_ #include #define EXCEPTION SYMBOL_NAME(FPU_exception) #define PARAM1 8(%ebp) #define PARAM2 12(%ebp) #define PARAM3 16(%ebp) #define PARAM4 20(%ebp) #define PARAM5 24(%ebp) #define PARAM6 28(%ebp) #define PARAM7 32(%ebp) #define SIGL_OFFSET 0 #define EXP(x) 8(x) #define SIG(x) SIGL_OFFSET##(x) #define SIGL(x) SIGL_OFFSET##(x) #define SIGH(x) 4(x) #endif /* _FPU_ASM_H_ */ ================================================ FILE: Project/fpu/Source/fpu_aux.cpp ================================================ /*---------------------------------------------------------------------------+ | fpu_aux.c | | $Id: fpu_aux.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Code to implement some of the FPU auxiliary instructions. | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "exception.h" #include "fpu_emu.h" #include "status_w.h" #include "control_w.h" static void fnop(current_i387_definefunyuan_void) { } void fclex(current_i387_definefunyuan_void) { partial_status &= ~(SW_Backward|SW_Summary|SW_Stack_Fault|SW_Precision| SW_Underflow|SW_Overflow|SW_Zero_Div|SW_Denorm_Op| SW_Invalid); no_ip_update = 1; } /* Needs to be externally visible */ void finit(current_i387_definefunyuan_void ) { control_word = 0x037f; partial_status = 0; top = 0; /* We don't keep top in the status word internally. */ fpu_tag_word = 0xffff; /* The behaviour is different from that detailed in Section 15.1.6 of the Intel manual */ operand_address.offset = 0; operand_address.selector = 0; instruction_address.offset = 0; instruction_address.selector = 0; instruction_address.opcode = 0; no_ip_update = 1; } /* * These are nops on the i387.. */ #define feni fnop #define fdisi fnop #define fsetpm fnop static FUNC const finit_table[] = { feni, fdisi, fclex, finit, fsetpm, FPU_illegal, FPU_illegal, FPU_illegal }; void finit_(current_i387_definefunyuan_void ) { (finit_table[FPU_rm])(current_i387_yuan_void); } static void fstsw_ax(current_i387_definefunyuan_void ) { SET_AX(status_word()); // KPL no_ip_update = 1; } static FUNC const fstsw_table[] = { fstsw_ax, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal }; void fstsw_(current_i387_definefunyuan_void ) { (fstsw_table[FPU_rm])(current_i387_yuan_void); } static FUNC const fp_nop_table[] = { fnop, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal, FPU_illegal }; void fp_nop(current_i387_definefunyuan_void ) { (fp_nop_table[FPU_rm])(current_i387_yuan_void); } void fld_i_(current_i387_definefunyuan_void ) { FPU_REG *st_new_ptr; int i; u_char tag; if ( STACK_OVERFLOW ) { FPU_stack_overflow(current_i387_yuan_clono ); return; } /* fld st(i) */ i = FPU_rm; if ( NOT_EMPTY(i) ) { reg_copy(&st(i), st_new_ptr); tag = FPU_gettagi(current_i387_yuan_ i); push(); FPU_settag0(current_i387_yuan_ tag); } else { if ( control_word & CW_Invalid ) { /* The masked response */ FPU_stack_underflow(current_i387_yuan_clono ); } else EXCEPTION(EX_StackUnder); } } void fxch_i(current_i387_definefunyuan_void ) { /* fxch st(i) */ FPU_REG t; int i = FPU_rm; FPU_REG *st0_ptr = &st(0), *sti_ptr = &st(i); s32 tag_word = fpu_tag_word; int regnr = top & 7, regnri = ((regnr + i) & 7); u_char st0_tag = (tag_word >> (regnr*2)) & 3; u_char sti_tag = (tag_word >> (regnri*2)) & 3; if ( st0_tag == TAG_Empty ) { if ( sti_tag == TAG_Empty ) { FPU_stack_underflow(current_i387_yuan_clono ); FPU_stack_underflow_i(current_i387_yuan_ i); return; } if ( control_word & CW_Invalid ) { /* Masked response */ FPU_copy_to_reg0(current_i387_yuan_ sti_ptr, sti_tag); } FPU_stack_underflow_i(current_i387_yuan_ i); return; } if ( sti_tag == TAG_Empty ) { if ( control_word & CW_Invalid ) { /* Masked response */ FPU_copy_to_regi(current_i387_yuan_ st0_ptr, st0_tag, i); } FPU_stack_underflow(current_i387_yuan_clono ); return; } clear_C1(); reg_copy(st0_ptr, &t); reg_copy(sti_ptr, st0_ptr); reg_copy(&t, sti_ptr); tag_word &= ~(3 << (regnr*2)) & ~(3 << (regnri*2)); tag_word |= (sti_tag << (regnr*2)) | (st0_tag << (regnri*2)); fpu_tag_word = tag_word; } void ffree_(current_i387_definefunyuan_void ) { /* ffree st(i) */ FPU_settagi(current_i387_yuan_ FPU_rm, TAG_Empty); } void ffreep(current_i387_definefunyuan_void ) { /* ffree st(i) + pop - unofficial code */ FPU_settagi(current_i387_yuan_ FPU_rm, TAG_Empty); FPU_pop(current_i387_yuan_clono ); } void fst_i_(current_i387_definefunyuan_void ) { /* fst st(i) */ FPU_copy_to_regi(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_doc ), FPU_rm); } void fstp_i(current_i387_definefunyuan_void ) { /* fstp st(i) */ FPU_copy_to_regi(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_doc ), FPU_rm); FPU_pop(current_i387_yuan_clono ); } ================================================ FILE: Project/fpu/Source/fpu_emu.h ================================================ /*---------------------------------------------------------------------------+ | fpu_emu.h | | $Id: fpu_emu.h,v 1.8 2002/12/11 12:54:19 cbothamy Exp $ | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@suburbia.net | | | +---------------------------------------------------------------------------*/ #ifndef _FPU_EMU_H_ #define _FPU_EMU_H_ /* * Define PECULIAR_486 to get a closer approximation to 80486 behaviour, * rather than behaviour which appears to be cleaner. * This is a matter of opinion: for all I know, the 80486 may simply * be complying with the IEEE spec. Maybe one day I'll get to see the * spec... */ #define PECULIAR_486 // change a pointer to an int, with type conversions that make it legal. // On machines with 64-bit pointers, compilers complain when you typecast // a 64-bit pointer into a 32-bit integer. #define PTR2INT(x) ((bx_ptr_equiv_t)(void *)(x)) #ifdef __ASSEMBLY__ #include "fpu_asm.h" #define Const(x) $##x #else #include #define Const(x) x #endif #define EXP_BIAS Const(0) #define EXP_OVER Const(0x4000) /* smallest invalid large exponent */ #define EXP_UNDER Const(-0x3fff) /* largest invalid small exponent */ #define EXP_WAY_UNDER Const(-0x6000) /* Below the smallest denormal, but still a 16 bit nr. */ #define EXP_Infinity EXP_OVER #define EXP_NaN EXP_OVER #define EXTENDED_Ebias Const(0x3fff) #define EXTENDED_Emin (-0x3ffe) /* smallest valid exponent */ #define SIGN_POS Const(0) #define SIGN_NEG Const(0x80) #define SIGN_Positive Const(0) #define SIGN_Negative Const(0x8000) /* Keep the order TAG_Valid, TAG_Zero, TW_Denormal */ /* The following fold to 2 (Special) in the Tag Word */ #define TW_Denormal Const(4) /* De-normal */ #define TW_Infinity Const(5) /* + or - infinity */ #define TW_NaN Const(6) /* Not a Number */ #define TW_Unsupported Const(7) /* Not supported by an 80486 */ #define TAG_Valid Const(0) /* valid */ #define TAG_Zero Const(1) /* zero */ #define TAG_Special Const(2) /* De-normal, + or - infinity, or Not a Number */ #define TAG_Empty Const(3) /* empty */ #define LOADED_DATA Const(10101) /* Special st() number to identify loaded data (not on stack). */ /* A few flags (must be >= 0x10). */ #define REV 0x10 #define DEST_RM 0x20 #define LOADED 0x40 #define FPU_Exception Const(0x80000000) /* Added to tag returns. */ #ifndef __ASSEMBLY__ #include "fpu_system.h" #include /* for struct _fpstate */ #include #include /* #define RE_ENTRANT_CHECKING */ #ifdef RE_ENTRANT_CHECKING extern u_char emulating; # define RE_ENTRANT_CHECK_OFF emulating = 0 # define RE_ENTRANT_CHECK_ON emulating = 1 #else # define RE_ENTRANT_CHECK_OFF # define RE_ENTRANT_CHECK_ON #endif /* ifdef RE_ENTRANT_CHECKING */ #define FWAIT_OPCODE 0x9b #define OP_SIZE_PREFIX 0x66 #define ADDR_SIZE_PREFIX 0x67 #define PREFIX_CS 0x2e #define PREFIX_DS 0x3e #define PREFIX_ES 0x26 #define PREFIX_SS 0x36 #define PREFIX_FS 0x64 #define PREFIX_GS 0x65 #define PREFIX_REPE 0xf3 #define PREFIX_REPNE 0xf2 #define PREFIX_LOCK 0xf0 #define PREFIX_CS_ 1 #define PREFIX_DS_ 2 #define PREFIX_ES_ 3 #define PREFIX_FS_ 4 #define PREFIX_GS_ 5 #define PREFIX_SS_ 6 #define PREFIX_DEFAULT 7 struct address { u32 offset; #ifdef EMU_BIG_ENDIAN u32 empty:5; u32 opcode:11; u32 selector:16; #else u32 selector:16; u32 opcode:11; u32 empty:5; #endif } GCC_ATTRIBUTE((packed)); // Endian Host byte order Guest (x86) byte order // ====================================================== // Little FFFFFFFFEEAAAAAA FFFFFFFFEEAAAAAA // Big AAAAAAEEFFFFFFFF FFFFFFFFEEAAAAAA // // Legend: F - fraction/mmx // E - exponent // A - aligment #ifdef EMU_BIG_ENDIAN struct fpu__reg { u16 aligment1, aligment2, aligment3; s16 exp; /* Signed quantity used in internal arithmetic. */ u32 sigh; u32 sigl; } GCC_ATTRIBUTE((aligned(16), packed)); #define MAKE_REG(s,e,l,h) { 0,0,0, ((EXTENDED_Ebias+(e)) | ((SIGN_##s != 0)*0x8000)) , h, l} #define signbyte(a) (((u_char *)(a))[6]) #else struct fpu__reg { u32 sigl; u32 sigh; s16 exp; /* Signed quantity used in internal arithmetic. */ u16 aligment1, aligment2, aligment3; } GCC_ATTRIBUTE((aligned(16), packed)); #define MAKE_REG(s,e,l,h) { l, h, ((EXTENDED_Ebias+(e)) | ((SIGN_##s != 0)*0x8000)), 0,0,0 } #define signbyte(a) (((u_char *)(a))[9]) #endif typedef void (*FUNC)(current_i387_definefunyuan_void); typedef struct fpu__reg FPU_REG; typedef void (*FUNC_ST0)(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag); typedef struct { u_char address_size, operand_size, segment; } GCC_ATTRIBUTE((packed)) overrides; /* This structure is 32 bits: */ typedef struct { overrides override; u_char default_mode; } GCC_ATTRIBUTE((packed)) fpu_addr_modes; /* PROTECTED has a restricted meaning in the emulator; it is used to signal that the emulator needs to do special things to ensure that protection is respected in a segmented model. */ #define PROTECTED 4 #define SIXTEEN 1 /* We rely upon this being 1 (true) */ #define VM86 SIXTEEN #define PM16 (SIXTEEN | PROTECTED) #define SEG32 PROTECTED extern u_char const data_sizes_16[32]; #define register_base ((u_char *) registers ) #define fpu_register(x) ( * ((FPU_REG *)( register_base + sizeof(FPU_REG) * (x & 7) )) ) #define st(x) ( * ((FPU_REG *)( register_base + sizeof(FPU_REG) * ((top+x) & 7) )) ) #define STACK_OVERFLOW (FPU_stackoverflow(current_i387_yuan_ &st_new_ptr)) #define NOT_EMPTY(i) (!FPU_empty_i(current_i387_yuan_ i)) #define NOT_EMPTY_ST0 (st0_tag ^ TAG_Empty) #define poppop() { FPU_pop(current_i387_yuan_clono ); FPU_pop(current_i387_yuan_clono ); } /* push() does not affect the tags */ #define push() { top--; } #define getsign(a) (signbyte(a) & 0x80) #define setsign(a,b) { if (b) signbyte(a) |= 0x80; else signbyte(a) &= 0x7f; } #define copysign(a,b) { if (getsign(a)) signbyte(b) |= 0x80; else signbyte(b) &= 0x7f; } #define changesign(a) { signbyte(a) ^= 0x80; } #define setpositive(a) { signbyte(a) &= 0x7f; } #define setnegative(a) { signbyte(a) |= 0x80; } #define signpositive(a) ( (signbyte(a) & 0x80) == 0 ) #define signnegative(a) (signbyte(a) & 0x80) #ifdef EMU_BIG_ENDIAN #define significand(x) ( ((u64 *)&((x)->sigl))[0] ) //#define significand(x) ( ((u64)((x)->sigh))<<32) + ((u64)(x)->sigl) ) #else #define significand(x) ( ((u64 *)&((x)->sigl))[0] ) #endif BX_C_INLINE void reg_copy(FPU_REG const *x, FPU_REG *y) { y->exp = x->exp; significand(y) = significand(x); } #define exponent(x) (((x)->exp & 0x7fff) - EXTENDED_Ebias) #define setexponentpos(x,y) { (x)->exp = ((y) + EXTENDED_Ebias) & 0x7fff; } #define exponent16(x) (x)->exp #define setexponent16(x,y) { (x)->exp = (y); } #define addexponent(x,y) { (x)->exp += (y); } #define stdexp(x) { (x)->exp += EXTENDED_Ebias; } #define isdenormal(ptr) (exponent(ptr) == EXP_BIAS+EXP_UNDER) /*----- Prototypes for functions written in assembler -----*/ /* extern void reg_move(FPU_REG *a, FPU_REG *b); */ #ifndef MAKING_PROTO #include "fpu_proto.h" #endif #endif /* defined __ASSEMBLY__ */ #endif /* !defined _FPU_EMU_H_ */ ================================================ FILE: Project/fpu/Source/fpu_entry.cpp ================================================ /*---------------------------------------------------------------------------+ | fpu_entry.c | | $Id: fpu_entry.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | The entry functions for wm-FPU-emu | | | | Copyright (C) 1992,1993,1994,1996,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | See the files "README" and "COPYING" for further copyright and warranty | | information. | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | Note: | | The file contains code which accesses user memory. | | Emulator static data may change when user memory is accessed, due to | | other processes using the emulator while swapping is in progress. | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | math_emulate(current_i387_yuan_doc ), restore_i387_soft() and save_i387_soft() are the only | | entry points for wm-FPU-emu. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "fpu_emu.h" #include "exception.h" #include "control_w.h" #include "status_w.h" #include #include #include #define __BAD__ FPU_illegal /* Illegal on an 80486, causes SIGILL */ #ifndef NO_UNDOC_CODE /* Un-documented FPU op-codes supported by default. */ /* WARNING: These codes are not documented by Intel in their 80486 manual and may not work on FPU clones or later Intel FPUs. */ /* Changes to support the un-doc codes provided by Linus Torvalds. */ #define _d9_d8_ fstp_i /* unofficial code (19) */ #define _dc_d0_ fcom_st /* unofficial code (14) */ #define _dc_d8_ fcompst /* unofficial code (1c) */ #define _dd_c8_ fxch_i /* unofficial code (0d) */ #define _de_d0_ fcompst /* unofficial code (16) */ #define _df_c0_ ffreep /* unofficial code (07) ffree + pop */ #define _df_c8_ fxch_i /* unofficial code (0f) */ #define _df_d0_ fstp_i /* unofficial code (17) */ #define _df_d8_ fstp_i /* unofficial code (1f) */ static FUNC const st_instr_table[64] = { fadd__, fld_i_, __BAD__, __BAD__, fadd_i, ffree_, faddp_, _df_c0_, fmul__, fxch_i, __BAD__, __BAD__, fmul_i, _dd_c8_, fmulp_, _df_c8_, fcom_st, fp_nop, __BAD__, __BAD__, _dc_d0_, fst_i_, _de_d0_, _df_d0_, fcompst, _d9_d8_, __BAD__, __BAD__, _dc_d8_, fstp_i, fcompp, _df_d8_, fsub__, FPU_etc, __BAD__, finit_, fsubri, fucom_, fsubrp, fstsw_, fsubr_, fconst, fucompp, __BAD__, fsub_i, fucomp, fsubp_, __BAD__, fdiv__, FPU_triga, __BAD__, __BAD__, fdivri, __BAD__, fdivrp, __BAD__, fdivr_, FPU_trigb, __BAD__, __BAD__, fdiv_i, __BAD__, fdivp_, __BAD__, }; #else /* Support only documented FPU op-codes */ static FUNC const st_instr_table[64] = { fadd__, fld_i_, __BAD__, __BAD__, fadd_i, ffree_, faddp_, __BAD__, fmul__, fxch_i, __BAD__, __BAD__, fmul_i, __BAD__, fmulp_, __BAD__, fcom_st, fp_nop, __BAD__, __BAD__, __BAD__, fst_i_, __BAD__, __BAD__, fcompst, __BAD__, __BAD__, __BAD__, __BAD__, fstp_i, fcompp, __BAD__, fsub__, FPU_etc, __BAD__, finit_, fsubri, fucom_, fsubrp, fstsw_, fsubr_, fconst, fucompp, __BAD__, fsub_i, fucomp, fsubp_, __BAD__, fdiv__, FPU_triga, __BAD__, __BAD__, fdivri, __BAD__, fdivrp, __BAD__, fdivr_, FPU_trigb, __BAD__, __BAD__, fdiv_i, __BAD__, fdivp_, __BAD__, }; #endif /* NO_UNDOC_CODE */ #define _NONE_ 0 /* Take no special action */ #define _REG0_ 1 /* Need to check for not empty st(0) */ #define _REGI_ 2 /* Need to check for not empty st(0) and st(rm) */ #define _REGi_ 0 /* Uses st(rm) */ #define _PUSH_ 3 /* Need to check for space to push onto stack */ #define _null_ 4 /* Function illegal or not implemented */ #define _REGIi 5 /* Uses st(0) and st(rm), result to st(rm) */ #define _REGIp 6 /* Uses st(0) and st(rm), result to st(rm) then pop */ #define _REGIc 0 /* Compare st(0) and st(rm) */ #define _REGIn 0 /* Uses st(0) and st(rm), but handle checks later */ #ifndef NO_UNDOC_CODE /* Un-documented FPU op-codes supported by default. (see above) */ static u_char const type_table[64] = { _REGI_, _NONE_, _null_, _null_, _REGIi, _REGi_, _REGIp, _REGi_, _REGI_, _REGIn, _null_, _null_, _REGIi, _REGI_, _REGIp, _REGI_, _REGIc, _NONE_, _null_, _null_, _REGIc, _REG0_, _REGIc, _REG0_, _REGIc, _REG0_, _null_, _null_, _REGIc, _REG0_, _REGIc, _REG0_, _REGI_, _NONE_, _null_, _NONE_, _REGIi, _REGIc, _REGIp, _NONE_, _REGI_, _NONE_, _REGIc, _null_, _REGIi, _REGIc, _REGIp, _null_, _REGI_, _NONE_, _null_, _null_, _REGIi, _null_, _REGIp, _null_, _REGI_, _NONE_, _null_, _null_, _REGIi, _null_, _REGIp, _null_ }; #else /* Support only documented FPU op-codes */ static u_char const type_table[64] = { _REGI_, _NONE_, _null_, _null_, _REGIi, _REGi_, _REGIp, _null_, _REGI_, _REGIn, _null_, _null_, _REGIi, _null_, _REGIp, _null_, _REGIc, _NONE_, _null_, _null_, _null_, _REG0_, _null_, _null_, _REGIc, _null_, _null_, _null_, _null_, _REG0_, _REGIc, _null_, _REGI_, _NONE_, _null_, _NONE_, _REGIi, _REGIc, _REGIp, _NONE_, _REGI_, _NONE_, _REGIc, _null_, _REGIi, _REGIc, _REGIp, _null_, _REGI_, _NONE_, _null_, _null_, _REGIi, _null_, _REGIp, _null_, _REGI_, _NONE_, _null_, _null_, _REGIi, _null_, _REGIp, _null_ }; #endif /* NO_UNDOC_CODE */ #ifndef USE_WITH_CPU_SIM #ifdef RE_ENTRANT_CHECKING u_char emulating=0; #endif /* RE_ENTRANT_CHECKING */ static int valid_prefix(u_char *Byte, u_char **fpu_eip, overrides *override); asmlinkage void math_emulate(current_i387_definefunyuan_ long arg) { u_char FPU_modrm, byte1; unsigned short code; fpu_addr_modes addr_modes; int unmasked; FPU_REG loaded_data; FPU_REG *st0_ptr; u_char loaded_tag, st0_tag; void *data_address; struct address data_sel_off; struct address entry_sel_off; u32 code_base = 0; u32 code_limit = 0; /* Initialized to stop compiler warnings */ struct desc_struct code_descriptor; #ifdef RE_ENTRANT_CHECKING if ( emulating ) { fpu_printk("ERROR: wm-FPU-emu is not RE-ENTRANT!\n"); } RE_ENTRANT_CHECK_ON; #endif /* RE_ENTRANT_CHECKING */ if (!current->used_math) { finit(current_i387_yuan_clono ); current->used_math = 1; } SETUP_DATA_AREA(arg); FPU_ORIG_EIP = FPU_EIP; if ( (FPU_EFLAGS & 0x00020000) != 0 ) { /* Virtual 8086 mode */ addr_modes.default_mode = VM86; FPU_EIP += code_base = FPU_CS << 4; code_limit = code_base + 0xffff; /* Assumes code_base <= 0xffff0000 */ } else if ( FPU_CS == __USER_CS && FPU_DS == __USER_DS ) { addr_modes.default_mode = 0; } else if ( FPU_CS == __KERNEL_CS ) { fpu_printk("math_emulate: %04x:%08lx\n",FPU_CS,FPU_EIP); panic("Math emulation needed in kernel"); } else { if ( (FPU_CS & 4) != 4 ) /* Must be in the LDT */ { /* Can only handle segmented addressing via the LDT for now, and it must be 16 bit */ fpu_printk("FPU emulator: Unsupported addressing mode\n"); math_abort(current_i387_yuan_ FPU_info, SIGILL); } if ( SEG_D_SIZE(code_descriptor = LDT_DESCRIPTOR(FPU_CS)) ) { /* The above test may be wrong, the book is not clear */ /* Segmented 32 bit protected mode */ addr_modes.default_mode = SEG32; } else { /* 16 bit protected mode */ addr_modes.default_mode = PM16; } FPU_EIP += code_base = SEG_BASE_ADDR(code_descriptor); code_limit = code_base + (SEG_LIMIT(code_descriptor)+1) * SEG_GRANULARITY(code_descriptor) - 1; if ( code_limit < code_base ) code_limit = 0xffffffff; } FPU_lookahead = 1; if (current->flags & PF_PTRACED) FPU_lookahead = 0; if ( !valid_prefix(&byte1, (u_char **)&FPU_EIP, &addr_modes.override) ) { RE_ENTRANT_CHECK_OFF; fpu_printk("FPU emulator: Unknown prefix byte 0x%02x, probably due to\n" "FPU emulator: self-modifying code! (emulation impossible)\n", byte1); RE_ENTRANT_CHECK_ON; EXCEPTION(EX_INTERNAL|0x126); math_abort(current_i387_yuan_ FPU_info,SIGILL); } do_another_FPU_instruction: no_ip_update = 0; FPU_EIP++; /* We have fetched the prefix and first code bytes. */ if ( addr_modes.default_mode ) { /* This checks for the minimum instruction bytes. We also need to check any extra (address mode) code access. */ if ( FPU_EIP > code_limit ) math_abort(current_i387_yuan_ FPU_info,SIGSEGV); } if ( (byte1 & 0xf8) != 0xd8 ) { if ( byte1 == FWAIT_OPCODE ) { if (partial_status & SW_Summary) goto do_the_FPU_interrupt; else goto FPU_fwait_done; } #ifdef PARANOID EXCEPTION(EX_INTERNAL|0x128); math_abort(current_i387_yuan_ FPU_info,SIGILL); #endif /* PARANOID */ } RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); FPU_get_user(FPU_modrm, (u_char *) FPU_EIP); RE_ENTRANT_CHECK_ON; FPU_EIP++; if (partial_status & SW_Summary) { /* Ignore the error for now if the current instruction is a no-wait control instruction */ /* The 80486 manual contradicts itself on this topic, but a real 80486 uses the following instructions: fninit, fnstenv, fnsave, fnstsw, fnstenv, fnclex. */ code = (FPU_modrm << 8) | byte1; if ( ! ( (((code & 0xf803) == 0xe003) || /* fnclex, fninit, fnstsw */ (((code & 0x3003) == 0x3001) && /* fnsave, fnstcw, fnstenv, fnstsw */ ((code & 0xc000) != 0xc000))) ) ) { /* * We need to simulate the action of the kernel to FPU * interrupts here. */ do_the_FPU_interrupt: FPU_EIP = FPU_ORIG_EIP; /* Point to current FPU instruction. */ RE_ENTRANT_CHECK_OFF; current->tss.trap_no = 16; current->tss.error_code = 0; send_sig(SIGFPE, current, 1); return; } } entry_sel_off.offset = FPU_ORIG_EIP; entry_sel_off.selector = FPU_CS; entry_sel_off.opcode = (byte1 << 8) | FPU_modrm; FPU_rm = FPU_modrm & 7; if ( FPU_modrm < 0300 ) { /* All of these instructions use the mod/rm byte to get a data address */ if ( (addr_modes.default_mode & SIXTEEN) ^ (addr_modes.override.address_size == ADDR_SIZE_PREFIX) ) data_address = FPU_get_address_16(current_i387_yuan_ FPU_modrm, (u32 *)&FPU_EIP, &data_sel_off, addr_modes); else data_address = FPU_get_address(current_i387_yuan_ FPU_modrm, (u32 *)&FPU_EIP, &data_sel_off, addr_modes); if ( addr_modes.default_mode ) { if ( FPU_EIP-1 > code_limit ) math_abort(current_i387_yuan_ FPU_info,SIGSEGV); } if ( !(byte1 & 1) ) { unsigned short status1 = partial_status; st0_ptr = &st(0); st0_tag = FPU_gettag0(current_i387_yuan_clono ); /* Stack underflow has priority */ if ( NOT_EMPTY_ST0 ) { if ( addr_modes.default_mode & PROTECTED ) { /* This table works for 16 and 32 bit protected mode */ if ( access_limit < data_sizes_16[(byte1 >> 1) & 3] ) math_abort(current_i387_yuan_ FPU_info,SIGSEGV); } unmasked = 0; /* Do this here to stop compiler warnings. */ switch ( (byte1 >> 1) & 3 ) { case 0: unmasked = FPU_load_single(current_i387_yuan_ (float *)data_address, &loaded_data); loaded_tag = unmasked & 0xff; unmasked &= ~0xff; break; case 1: loaded_tag = FPU_load_int32(current_i387_yuan_ (s32 *)data_address, &loaded_data); // bbd: was (u32*) break; case 2: unmasked = FPU_load_double(current_i387_yuan_ (double *)data_address, &loaded_data); loaded_tag = unmasked & 0xff; unmasked &= ~0xff; break; case 3: default: /* Used here to suppress gcc warnings. */ loaded_tag = FPU_load_int16(current_i387_yuan_ (short *)data_address, &loaded_data); break; } /* No more access to user memory, it is safe to use static data now */ /* NaN operands have the next priority. */ /* We have to delay looking at st(0) until after loading the data, because that data might contain an SNaN */ if ( ((st0_tag == TAG_Special) && isNaN(current_i387_yuan_ st0_ptr)) || ((loaded_tag == TAG_Special) && isNaN(current_i387_yuan_ &loaded_data)) ) { /* Restore the status word; we might have loaded a denormal. */ partial_status = status1; if ( (FPU_modrm & 0x30) == 0x10 ) { /* fcom or fcomp */ EXCEPTION(EX_Invalid); setcc(SW_C3 | SW_C2 | SW_C0); if ( (FPU_modrm & 0x08) && (control_word & CW_Invalid) ) FPU_pop(current_i387_yuan_clono ); /* fcomp, masked, so we pop. */ } else { if ( loaded_tag == TAG_Special ) loaded_tag = FPU_Special(current_i387_yuan_ &loaded_data); #ifdef PECULIAR_486 /* This is not really needed, but gives behaviour identical to an 80486 */ if ( (FPU_modrm & 0x28) == 0x20 ) /* fdiv or fsub */ real_2op_NaN(current_i387_yuan_ &loaded_data, loaded_tag, 0, &loaded_data); else #endif /* PECULIAR_486 */ /* fadd, fdivr, fmul, or fsubr */ real_2op_NaN(current_i387_yuan_ &loaded_data, loaded_tag, 0, st0_ptr); } goto reg_mem_instr_done; } if ( unmasked && !((FPU_modrm & 0x30) == 0x10) ) { /* Is not a comparison instruction. */ if ( (FPU_modrm & 0x38) == 0x38 ) { /* fdivr */ if ( (st0_tag == TAG_Zero) && ((loaded_tag == TAG_Valid) || (loaded_tag == TAG_Special && isdenormal(&loaded_data))) ) { if ( FPU_divide_by_zero(current_i387_yuan_ 0, getsign(&loaded_data)) < 0 ) { /* We use the fact here that the unmasked exception in the loaded data was for a denormal operand */ /* Restore the state of the denormal op bit */ partial_status &= ~SW_Denorm_Op; partial_status |= status1 & SW_Denorm_Op; } else setsign(st0_ptr, getsign(&loaded_data)); } } goto reg_mem_instr_done; } switch ( (FPU_modrm >> 3) & 7 ) { case 0: /* fadd */ clear_C1(); FPU_add(current_i387_yuan_ &loaded_data, loaded_tag, 0, control_word); break; case 1: /* fmul */ clear_C1(); FPU_mul(current_i387_yuan_ &loaded_data, loaded_tag, 0, control_word); break; case 2: /* fcom */ FPU_compare_st_data(current_i387_yuan_ &loaded_data, loaded_tag); break; case 3: /* fcomp */ if ( !FPU_compare_st_data(current_i387_yuan_ &loaded_data, loaded_tag) && !unmasked ) FPU_pop(current_i387_yuan_clono ); break; case 4: /* fsub */ clear_C1(); // bbd: loaded_data used to be typecast to an int, but // this corrupted the pointer on 64-bit machines. // Now FPU_sub and similar take a FPU_REG* here instead. FPU_sub(current_i387_yuan_ LOADED|loaded_tag, &loaded_data, control_word); break; case 5: /* fsubr */ clear_C1(); FPU_sub(current_i387_yuan_ REV|LOADED|loaded_tag, &loaded_data, control_word); break; case 6: /* fdiv */ clear_C1(); FPU_div(current_i387_yuan_ LOADED|loaded_tag, &loaded_data, control_word); break; case 7: /* fdivr */ clear_C1(); if ( st0_tag == TAG_Zero ) partial_status = status1; /* Undo any denorm tag, zero-divide has priority. */ FPU_div(current_i387_yuan_ REV|LOADED|loaded_tag, &loaded_data, control_word); break; } } else { if ( (FPU_modrm & 0x30) == 0x10 ) { /* The instruction is fcom or fcomp */ EXCEPTION(EX_StackUnder); setcc(SW_C3 | SW_C2 | SW_C0); if ( (FPU_modrm & 0x08) && (control_word & CW_Invalid) ) FPU_pop(current_i387_yuan_clono ); /* fcomp */ } else FPU_stack_underflow(current_i387_yuan_clono ); } reg_mem_instr_done: operand_address = data_sel_off; } else { if ( !(no_ip_update = FPU_load_store(current_i387_yuan_ ((FPU_modrm & 0x38) | (byte1 & 6)) >> 1, addr_modes, data_address)) ) { operand_address = data_sel_off; } } } else { /* None of these instructions access user memory */ u_char instr_index = (FPU_modrm & 0x38) | (byte1 & 7); #ifdef PECULIAR_486 /* This is supposed to be undefined, but a real 80486 seems to do this: */ operand_address.offset = 0; operand_address.selector = FPU_DS; #endif /* PECULIAR_486 */ st0_ptr = &st(0); st0_tag = FPU_gettag0(current_i387_yuan_clono ); switch ( type_table[(int) instr_index] ) { case _NONE_: /* also _REGIc: _REGIn */ break; case _REG0_: if ( !NOT_EMPTY_ST0 ) { FPU_stack_underflow(current_i387_yuan_clono ); goto FPU_instruction_done; } break; case _REGIi: if ( !NOT_EMPTY_ST0 || !NOT_EMPTY(FPU_rm) ) { FPU_stack_underflow_i(current_i387_yuan_ FPU_rm); goto FPU_instruction_done; } break; case _REGIp: if ( !NOT_EMPTY_ST0 || !NOT_EMPTY(FPU_rm) ) { FPU_stack_underflow_pop(current_i387_yuan_ FPU_rm); goto FPU_instruction_done; } break; case _REGI_: if ( !NOT_EMPTY_ST0 || !NOT_EMPTY(FPU_rm) ) { FPU_stack_underflow(current_i387_yuan_clono ); goto FPU_instruction_done; } break; case _PUSH_: /* Only used by the fld st(i) instruction */ break; case _null_: FPU_illegal(current_i387_yuan_clono ); goto FPU_instruction_done; default: EXCEPTION(EX_INTERNAL|0x111); goto FPU_instruction_done; } (*st_instr_table[(int) instr_index])(); FPU_instruction_done: ; } if ( ! no_ip_update ) instruction_address = entry_sel_off; FPU_fwait_done: if (FPU_lookahead && !current->need_resched) { FPU_ORIG_EIP = FPU_EIP - code_base; if ( valid_prefix(&byte1, (u_char **)&FPU_EIP, &addr_modes.override) ) goto do_another_FPU_instruction; } if ( addr_modes.default_mode ) FPU_EIP -= code_base; RE_ENTRANT_CHECK_OFF; } /* Support for prefix bytes is not yet complete. To properly handle all prefix bytes, further changes are needed in the emulator code which accesses user address space. Access to separate segments is important for msdos emulation. */ static int valid_prefix(u_char *Byte, u_char **fpu_eip, overrides *override) { u_char byte; u_char *ip = *fpu_eip; *override = (overrides) { 0, 0, PREFIX_DEFAULT }; /* defaults */ RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); FPU_get_user(byte, ip); RE_ENTRANT_CHECK_ON; while ( 1 ) { switch ( byte ) { case ADDR_SIZE_PREFIX: override->address_size = ADDR_SIZE_PREFIX; goto do_next_byte; case OP_SIZE_PREFIX: override->operand_size = OP_SIZE_PREFIX; goto do_next_byte; case PREFIX_CS: override->segment = PREFIX_CS_; goto do_next_byte; case PREFIX_ES: override->segment = PREFIX_ES_; goto do_next_byte; case PREFIX_SS: override->segment = PREFIX_SS_; goto do_next_byte; case PREFIX_FS: override->segment = PREFIX_FS_; goto do_next_byte; case PREFIX_GS: override->segment = PREFIX_GS_; goto do_next_byte; case PREFIX_DS: override->segment = PREFIX_DS_; goto do_next_byte; /* lock is not a valid prefix for FPU instructions, let the cpu handle it to generate a SIGILL. */ /* case PREFIX_LOCK: */ /* rep.. prefixes have no meaning for FPU instructions */ case PREFIX_REPE: case PREFIX_REPNE: do_next_byte: ip++; RE_ENTRANT_CHECK_OFF; FPU_code_verify_area(1); FPU_get_user(byte, ip); RE_ENTRANT_CHECK_ON; break; case FWAIT_OPCODE: *Byte = byte; return 1; default: if ( (byte & 0xf8) == 0xd8 ) { *Byte = byte; *fpu_eip = ip; return 1; } else { /* Not a valid sequence of prefix bytes followed by an FPU instruction. */ *Byte = byte; /* Needed for error message. */ return 0; } } } } void math_abort(current_i387_definefunyuan_ struct info * info, unsigned int signal) { FPU_EIP = FPU_ORIG_EIP; current->tss.trap_no = 16; current->tss.error_code = 0; send_sig(signal,current,1); RE_ENTRANT_CHECK_OFF; __asm__("movl %0,%%esp ; ret": :"g" (((long) info)-4)); #ifdef PARANOID fpu_printk("ERROR: wm-FPU-emu math_abort failed!\n"); #endif /* PARANOID */ } #define S387 ((struct i387_soft_struct *)s387) #define sstatus_word() \ ((S387->swd & ~SW_Top & 0xffff) | ((S387->ftop << SW_Top_Shift) & SW_Top)) int restore_i387_soft(void *s387, struct _fpstate *buf) { u_char *d = (u_char *)buf; int offset, other, i, tags, regnr, tag, newtop; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, d, 7*4 + 8*10); if (__copy_from_user(&S387->cwd, d, 7*4)) return -1; RE_ENTRANT_CHECK_ON; d += 7*4; S387->ftop = (S387->swd >> SW_Top_Shift) & 7; offset = (S387->ftop & 7) * 10; other = 80 - offset; RE_ENTRANT_CHECK_OFF; /* Copy all registers in stack order. */ if (__copy_from_user(((u_char *)&S387->st_space)+offset, d, other)) return -1; if ( offset ) if (__copy_from_user((u_char *)&S387->st_space, d+other, offset)) return -1; RE_ENTRANT_CHECK_ON; /* The tags may need to be corrected now. */ tags = S387->twd; newtop = S387->ftop; for ( i = 0; i < 8; i++ ) { regnr = (i+newtop) & 7; if ( ((tags >> ((regnr & 7)*2)) & 3) != TAG_Empty ) { /* The loaded data over-rides all other cases. */ tag = FPU_tagof(current_i387_yuan_ (FPU_REG *)((u_char *)S387->st_space + 10*regnr)); tags &= ~(3 << (regnr*2)); tags |= (tag & 3) << (regnr*2); } } S387->twd = tags; return 0; } int save_i387_soft(void *s387, struct _fpstate * buf) { u_char *d = (u_char *)buf; int offset = (S387->ftop & 7) * 10, other = 80 - offset; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE, d, 7*4 + 8*10); #ifdef PECULIAR_486 S387->cwd &= ~0xe080; /* An 80486 sets nearly all of the reserved bits to 1. */ S387->cwd |= 0xffff0040; S387->swd = sstatus_word() | 0xffff0000; S387->twd |= 0xffff0000; S387->fcs &= ~0xf8000000; S387->fos |= 0xffff0000; #endif /* PECULIAR_486 */ __copy_to_user(d, &S387->cwd, 7*4); RE_ENTRANT_CHECK_ON; d += 7*4; RE_ENTRANT_CHECK_OFF; /* Copy all registers in stack order. */ if (__copy_to_user(d, ((u_char *)&S387->st_space)+offset, other)) return -1; if ( offset ) if (__copy_to_user(d+other, (u_char *)&S387->st_space, offset)) return -1 RE_ENTRANT_CHECK_ON; return 1; } #else /* #ifndef USE_WITH_CPU_SIM */ /* Note, this is a version of fpu_entry.c, modified to interface * to a CPU simulator, rather than a kernel. * * Ported by Kevin Lawton Sep 20, 1999 */ asmlinkage void math_emulate2(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char FPU_modrm, u_char byte1, void *data_address, struct address data_sel_off, struct address entry_sel_off) { u16 code; int unmasked; FPU_REG loaded_data; FPU_REG *st0_ptr; u_char loaded_tag, st0_tag; // assuming byte is 0xd8..0xdf or 0xdb==FWAIT // lock is not a valid prefix for FPU instructions, +++ // let the cpu handle it to generate a SIGILL. no_ip_update = 0; if ( byte1 == FWAIT_OPCODE ) { if (partial_status & SW_Summary) goto do_the_FPU_interrupt; else goto FPU_fwait_done; } if (partial_status & SW_Summary) { /* Ignore the error for now if the current instruction is a no-wait control instruction */ /* The 80486 manual contradicts itself on this topic, but a real 80486 uses the following instructions: fninit, fnstenv, fnsave, fnstsw, fnstenv, fnclex. */ code = (FPU_modrm << 8) | byte1; if ( ! ( (((code & 0xf803) == 0xe003) || /* fnclex, fninit, fnstsw */ (((code & 0x3003) == 0x3001) && /* fnsave, fnstcw, fnstenv, fnstsw */ ((code & 0xc000) != 0xc000))) ) ) { /* * We need to simulate the action of the kernel to FPU * interrupts here. */ do_the_FPU_interrupt: math_abort(current_i387_yuan_ FPU_info, SIGFPE); } } entry_sel_off.opcode = (byte1 << 8) | FPU_modrm; FPU_rm = FPU_modrm & 7; if ( FPU_modrm < 0300 ) { /* All of these instructions use the mod/rm byte to get a data address */ if ( !(byte1 & 1) ) { u16 status1 = partial_status; st0_ptr = &st(0); st0_tag = FPU_gettag0(current_i387_yuan_clono ); /* Stack underflow has priority */ if ( NOT_EMPTY_ST0 ) { if ( addr_modes.default_mode & PROTECTED ) { /* This table works for 16 and 32 bit protected mode */ if ( access_limit < data_sizes_16[(byte1 >> 1) & 3] ) math_abort(current_i387_yuan_ FPU_info, SIGSEGV); } unmasked = 0; /* Do this here to stop compiler warnings. */ switch ( (byte1 >> 1) & 3 ) { case 0: unmasked = FPU_load_single(current_i387_yuan_ (float *)data_address, &loaded_data); loaded_tag = unmasked & 0xff; unmasked &= ~0xff; break; case 1: loaded_tag = FPU_load_int32(current_i387_yuan_ (s32 *)data_address, &loaded_data); // bbd: was (u32 *) break; case 2: unmasked = FPU_load_double(current_i387_yuan_ (double *)data_address, &loaded_data); loaded_tag = unmasked & 0xff; unmasked &= ~0xff; break; case 3: default: /* Used here to suppress gcc warnings. */ loaded_tag = FPU_load_int16(current_i387_yuan_ (s16 *)data_address, &loaded_data); break; } /* No more access to user memory, it is safe to use static data now */ /* NaN operands have the next priority. */ /* We have to delay looking at st(0) until after loading the data, because that data might contain an SNaN */ if ( ((st0_tag == TAG_Special) && isNaN(current_i387_yuan_ st0_ptr)) || ((loaded_tag == TAG_Special) && isNaN(current_i387_yuan_ &loaded_data)) ) { /* Restore the status word; we might have loaded a denormal. */ partial_status = status1; if ( (FPU_modrm & 0x30) == 0x10 ) { /* fcom or fcomp */ EXCEPTION(EX_Invalid); setcc(SW_C3 | SW_C2 | SW_C0); if ( (FPU_modrm & 0x08) && (control_word & CW_Invalid) ) FPU_pop(current_i387_yuan_clono ); /* fcomp, masked, so we pop. */ } else { if ( loaded_tag == TAG_Special ) loaded_tag = FPU_Special(current_i387_yuan_ &loaded_data); #ifdef PECULIAR_486 /* This is not really needed, but gives behaviour identical to an 80486 */ if ( (FPU_modrm & 0x28) == 0x20 ) /* fdiv or fsub */ real_2op_NaN(current_i387_yuan_ &loaded_data, loaded_tag, 0, &loaded_data); else #endif /* PECULIAR_486 */ /* fadd, fdivr, fmul, or fsubr */ real_2op_NaN(current_i387_yuan_ &loaded_data, loaded_tag, 0, st0_ptr); } goto reg_mem_instr_done; } if ( unmasked && !((FPU_modrm & 0x30) == 0x10) ) { /* Is not a comparison instruction. */ if ( (FPU_modrm & 0x38) == 0x38 ) { /* fdivr */ if ( (st0_tag == TAG_Zero) && ((loaded_tag == TAG_Valid) || (loaded_tag == TAG_Special && isdenormal(&loaded_data))) ) { if ( FPU_divide_by_zero(current_i387_yuan_ 0, getsign(&loaded_data)) < 0 ) { /* We use the fact here that the unmasked exception in the loaded data was for a denormal operand */ /* Restore the state of the denormal op bit */ partial_status &= ~SW_Denorm_Op; partial_status |= status1 & SW_Denorm_Op; } else setsign(st0_ptr, getsign(&loaded_data)); } } goto reg_mem_instr_done; } switch ( (FPU_modrm >> 3) & 7 ) { case 0: /* fadd */ clear_C1(); FPU_add(current_i387_yuan_ &loaded_data, loaded_tag, 0, control_word); break; case 1: /* fmul */ clear_C1(); FPU_mul(current_i387_yuan_ &loaded_data, loaded_tag, 0, control_word); break; case 2: /* fcom */ FPU_compare_st_data(current_i387_yuan_ &loaded_data, loaded_tag); break; case 3: /* fcomp */ // bbd: used to typecase to int first, but this corrupted the // pointer on 64 bit machines. if ( !FPU_compare_st_data(current_i387_yuan_ &loaded_data, loaded_tag) && !unmasked ) FPU_pop(current_i387_yuan_clono ); break; case 4: /* fsub */ clear_C1(); FPU_sub(current_i387_yuan_ LOADED|loaded_tag, &loaded_data, control_word); break; case 5: /* fsubr */ clear_C1(); FPU_sub(current_i387_yuan_ REV|LOADED|loaded_tag, &loaded_data, control_word); break; case 6: /* fdiv */ clear_C1(); FPU_div(current_i387_yuan_ LOADED|loaded_tag, &loaded_data, control_word); break; case 7: /* fdivr */ clear_C1(); if ( st0_tag == TAG_Zero ) partial_status = status1; /* Undo any denorm tag, zero-divide has priority. */ FPU_div(current_i387_yuan_ REV|LOADED|loaded_tag, &loaded_data, control_word); break; } } else { if ( (FPU_modrm & 0x30) == 0x10 ) { /* The instruction is fcom or fcomp */ EXCEPTION(EX_StackUnder); setcc(SW_C3 | SW_C2 | SW_C0); if ( (FPU_modrm & 0x08) && (control_word & CW_Invalid) ) FPU_pop(current_i387_yuan_clono ); /* fcomp */ } else FPU_stack_underflow(current_i387_yuan_clono ); } reg_mem_instr_done: operand_address = data_sel_off; } else { if ( !(no_ip_update = FPU_load_store(current_i387_yuan_ ((FPU_modrm & 0x38) | (byte1 & 6)) >> 1, addr_modes, data_address)) ) { operand_address = data_sel_off; } } } else { /* None of these instructions access user memory */ u_char instr_index = (FPU_modrm & 0x38) | (byte1 & 7); #ifdef PECULIAR_486 /* This is supposed to be undefined, but a real 80486 seems to do this: */ operand_address.offset = 0; operand_address.selector = FPU_DS; #endif /* PECULIAR_486 */ st0_ptr = &st(0); st0_tag = FPU_gettag0(current_i387_yuan_clono ); switch ( type_table[(int) instr_index] ) { case _NONE_: /* also _REGIc: _REGIn */ break; case _REG0_: if ( !NOT_EMPTY_ST0 ) { FPU_stack_underflow(current_i387_yuan_clono ); goto FPU_instruction_done; } break; case _REGIi: if ( !NOT_EMPTY_ST0 || !NOT_EMPTY(FPU_rm) ) { FPU_stack_underflow_i(current_i387_yuan_ FPU_rm); goto FPU_instruction_done; } break; case _REGIp: if ( !NOT_EMPTY_ST0 || !NOT_EMPTY(FPU_rm) ) { FPU_stack_underflow_pop(current_i387_yuan_ FPU_rm); goto FPU_instruction_done; } break; case _REGI_: if ( !NOT_EMPTY_ST0 || !NOT_EMPTY(FPU_rm) ) { FPU_stack_underflow(current_i387_yuan_clono ); goto FPU_instruction_done; } break; case _PUSH_: /* Only used by the fld st(i) instruction */ break; case _null_: FPU_illegal(current_i387_yuan_clono ); goto FPU_instruction_done; default: EXCEPTION(EX_INTERNAL|0x111); goto FPU_instruction_done; } (*st_instr_table[(int) instr_index])(current_i387_yuan_void); FPU_instruction_done: ; } if ( ! no_ip_update ) instruction_address = entry_sel_off; FPU_fwait_done: #ifdef DEBUG FPU_printall(current_i387_yuan_clono ); #endif /* DEBUG */ #ifdef BX_NO_BLANK_LABELS if(0) int testiii = 0; #endif } #endif /* #ifndef USE_WITH_CPU_SIM */ ================================================ FILE: Project/fpu/Source/fpu_etc.cpp ================================================ /*---------------------------------------------------------------------------+ | fpu_etc.c | | $Id: fpu_etc.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Implement a few FPU instructions. | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "exception.h" #include "fpu_emu.h" #include "status_w.h" #include "reg_constant.h" static void fchs(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0tag) { if ( st0tag ^ TAG_Empty ) { signbyte(st0_ptr) ^= SIGN_NEG; clear_C1(); } else FPU_stack_underflow(current_i387_yuan_clono ); } static void fpu_fabs(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0tag) { if ( st0tag ^ TAG_Empty ) { setpositive(st0_ptr); clear_C1(); } else FPU_stack_underflow(current_i387_yuan_clono ); } static void ftst_(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0tag) { switch (st0tag) { case TAG_Zero: setcc(SW_C3); break; case TAG_Valid: if (getsign(st0_ptr) == SIGN_POS) setcc(0); else setcc(SW_C0); break; case TAG_Special: switch ( FPU_Special(current_i387_yuan_ st0_ptr) ) { case TW_Denormal: if (getsign(st0_ptr) == SIGN_POS) setcc(0); else setcc(SW_C0); if ( denormal_operand(current_i387_yuan_le ) < 0 ) { #ifdef PECULIAR_486 /* This is weird! */ if (getsign(st0_ptr) == SIGN_POS) setcc(SW_C3); #endif /* PECULIAR_486 */ return; } break; case TW_NaN: setcc(SW_C0|SW_C2|SW_C3); /* Operand is not comparable */ EXCEPTION(EX_Invalid); break; case TW_Infinity: if (getsign(st0_ptr) == SIGN_POS) setcc(0); else setcc(SW_C0); break; default: setcc(SW_C0|SW_C2|SW_C3); /* Operand is not comparable */ EXCEPTION(EX_INTERNAL|0x14); break; } break; case TAG_Empty: setcc(SW_C0|SW_C2|SW_C3); EXCEPTION(EX_StackUnder); break; } } static void fxam(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0tag) { int c = 0; switch (st0tag) { case TAG_Empty: c = SW_C3|SW_C0; break; case TAG_Zero: c = SW_C3; break; case TAG_Valid: c = SW_C2; break; case TAG_Special: switch ( FPU_Special(current_i387_yuan_ st0_ptr) ) { case TW_Denormal: c = SW_C2|SW_C3; /* Denormal */ break; case TW_NaN: /* We also use NaN for unsupported types. */ if ( (st0_ptr->sigh & 0x80000000) && (exponent(st0_ptr) == EXP_OVER) ) c = SW_C0; break; case TW_Infinity: c = SW_C2|SW_C0; break; } } if ( getsign(st0_ptr) == SIGN_NEG ) c |= SW_C1; setcc(c); } static FUNC_ST0 const fp_etc_table[] = { fchs, fpu_fabs, (FUNC_ST0)FPU_illegal, (FUNC_ST0)FPU_illegal, ftst_, fxam, (FUNC_ST0)FPU_illegal, (FUNC_ST0)FPU_illegal }; void FPU_etc(current_i387_definefunyuan_void ) { (fp_etc_table[FPU_rm])(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_cc )); } ================================================ FILE: Project/fpu/Source/fpu_i387.h ================================================ /*---------------------------------------------------------------------------+ | status_w.h | | $Id: status_w.h,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992,1993 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@vaxc.cc.monash.edu.au | | | +---------------------------------------------------------------------------*/ #ifndef _FPU_I387_H_ #define _FPU_I387_H_ struct BX_FCPU_I387 { class BX_CPU_C *fpu_cpu_ptr_; class bxInstruction_c *fpu_iptr_; union FpuMmxRegisters *current_i387_; }; #if 0 #define current_i387_definefunyuan_void void #define current_i387_definefunyuan_ #define current_i387_yuan_ #define current_i387_yuan_clono #define current_i387_yuan_void #define current_i387_yuan_doc #define current_i387_yuan_le #define current_i387_yuan_cc #else #define current_i387_definefunyuan_void struct BX_FCPU_I387 *bx_fcpu_i387 #define current_i387_definefunyuan_ struct BX_FCPU_I387 *bx_fcpu_i387, #define current_i387_yuan_ bx_fcpu_i387, #define current_i387_yuan_clono bx_fcpu_i387 #define current_i387_yuan_void bx_fcpu_i387 #define current_i387_yuan_doc bx_fcpu_i387 #define current_i387_yuan_le bx_fcpu_i387 #define current_i387_yuan_cc bx_fcpu_i387 #endif //WIN32,NDEBUG,_MBCS,_LIB,PARANOID,DEBUGGING,NO_ASSEMBLER,USE_WITH_CPU_SIM //WIN32,_DEBUG,_MBCS,_LIB,NDEBUG,_WINDOWS,PARANOID,DEBUGGING,NO_ASSEMBLER,USE_WITH_CPU_SIM #define PARANOID #define DEBUGGING #define NO_ASSEMBLER #define USE_WITH_CPU_SIM #include #include #endif /* _FPU_I387_H_ */ ================================================ FILE: Project/fpu/Source/fpu_proto.h ================================================ ///////////////////////////////////////////////////////////////////////// // $Id: fpu_proto.h,v 1.4 2001/10/06 04:35:13 bdenney Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. // // MandrakeSoft S.A. // 43, rue d'Aboukir // 75002 Paris - France // http://www.linux-mandrake.com/ // http://www.mandrakesoft.com/ // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2 of the License, or (at your option) any later version. // // 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. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // bochs.h is the master header file for all C++ code. It includes all // the system header files needed by bochs, and also includes all the bochs // C++ header files. Because bochs.h and the files that it includes has // structure and class definitions, it cannot be called from C code. // #ifndef _FPU_PROTO_H #define _FPU_PROTO_H #include "../../IntelCPU/Source/x86cpu.h" #include "fpu_i387.h" asmlinkage int FPU_normalize_nuo(current_i387_definefunyuan_ FPU_REG *x, int bias); asmlinkage int FPU_u_sub(current_i387_definefunyuan_ FPU_REG const *arg1, FPU_REG const *arg2, FPU_REG *answ, u16 control_w, u_char sign, s32 expa, s32 expb); asmlinkage int FPU_u_mul(current_i387_definefunyuan_ FPU_REG const *arg1, FPU_REG const *arg2, FPU_REG *answ, u16 control_w, u_char sign, s32 expon); asmlinkage int FPU_u_div(current_i387_definefunyuan_ FPU_REG const *arg1, FPU_REG const *arg2, FPU_REG *answ, u16 control_w, u_char sign); asmlinkage int FPU_u_add(current_i387_definefunyuan_ FPU_REG const *arg1, FPU_REG const *arg2, FPU_REG *answ, u16 control_w, u_char sign, s32 expa, s32 expb); asmlinkage int wm_sqrt(current_i387_definefunyuan_ FPU_REG *n, int dummy1, int dummy2, u16 control_w, u_char sign); asmlinkage u32 FPU_shrx(current_i387_definefunyuan_ void*l, u32 x); asmlinkage u32 FPU_shrxs(current_i387_definefunyuan_ void*v, u32 x); asmlinkage u32 FPU_div_small(current_i387_definefunyuan_ u64 *x, u32 y); asmlinkage int FPU_round(current_i387_definefunyuan_ FPU_REG *arg, u32 extent, int dummy, u16 control_w, u_char sign); /* errors.c */ extern void Un_impl(current_i387_definefunyuan_void); extern void FPU_illegal(current_i387_definefunyuan_void); extern void FPU_printall(current_i387_definefunyuan_void); asmlinkage void FPU_exception(current_i387_definefunyuan_ int n); extern int real_1op_NaN(current_i387_definefunyuan_ FPU_REG *a); extern int real_2op_NaN(current_i387_definefunyuan_ FPU_REG const *b, u_char tagb, int deststnr, FPU_REG const *defaultNaN); extern int arith_invalid(current_i387_definefunyuan_ int deststnr); extern int FPU_divide_by_zero(current_i387_definefunyuan_ int deststnr, u_char sign); extern int set_precision_flag(current_i387_definefunyuan_ int flags); extern void set_precision_flag_up(current_i387_definefunyuan_void); extern void set_precision_flag_down(current_i387_definefunyuan_void); extern int denormal_operand(current_i387_definefunyuan_void); extern int arith_overflow(current_i387_definefunyuan_ FPU_REG *dest); extern int arith_round_overflow(current_i387_definefunyuan_ FPU_REG *dest, u8 sign); extern int arith_underflow(current_i387_definefunyuan_ FPU_REG *dest); extern void FPU_stack_overflow(current_i387_definefunyuan_void); extern void FPU_stack_underflow(current_i387_definefunyuan_void); extern void FPU_stack_underflow_i(current_i387_definefunyuan_ int i); extern void FPU_stack_underflow_pop(current_i387_definefunyuan_ int i); /* fpu_arith.c */ extern void fadd__(current_i387_definefunyuan_void); extern void fmul__(current_i387_definefunyuan_void); extern void fsub__(current_i387_definefunyuan_void); extern void fsubr_(current_i387_definefunyuan_void); extern void fdiv__(current_i387_definefunyuan_void); extern void fdivr_(current_i387_definefunyuan_void); extern void fadd_i(current_i387_definefunyuan_void); extern void fmul_i(current_i387_definefunyuan_void); extern void fsubri(current_i387_definefunyuan_void); extern void fsub_i(current_i387_definefunyuan_void); extern void fdivri(current_i387_definefunyuan_void); extern void fdiv_i(current_i387_definefunyuan_void); extern void faddp_(current_i387_definefunyuan_void); extern void fmulp_(current_i387_definefunyuan_void); extern void fsubrp(current_i387_definefunyuan_void); extern void fsubp_(current_i387_definefunyuan_void); extern void fdivrp(current_i387_definefunyuan_void); extern void fdivp_(current_i387_definefunyuan_void); /* fpu_aux.c */ extern void fclex(current_i387_definefunyuan_void); extern void finit(current_i387_definefunyuan_void); extern void finit_(current_i387_definefunyuan_void); extern void fstsw_(current_i387_definefunyuan_void); extern void fp_nop(current_i387_definefunyuan_void); extern void fld_i_(current_i387_definefunyuan_void); extern void fxch_i(current_i387_definefunyuan_void); extern void ffree_(current_i387_definefunyuan_void); extern void ffreep(current_i387_definefunyuan_void); extern void fst_i_(current_i387_definefunyuan_void); extern void fstp_i(current_i387_definefunyuan_void); /* fpu_entry.c */ extern void math_emulate(current_i387_definefunyuan_ long arg); extern void math_abort(current_i387_definefunyuan_ struct info *info, unsigned int signal); /* fpu_etc.c */ extern void FPU_etc(current_i387_definefunyuan_void); /* fpu_tags.c */ extern int FPU_gettag0(current_i387_definefunyuan_void); extern int FPU_gettagi(current_i387_definefunyuan_ int stnr); extern int FPU_gettag(current_i387_definefunyuan_ int regnr); extern void FPU_settag0(current_i387_definefunyuan_ int tag); extern void FPU_settagi(current_i387_definefunyuan_ int stnr, int tag); extern void FPU_settag(current_i387_definefunyuan_ int regnr, int tag); extern int FPU_Special(current_i387_definefunyuan_ FPU_REG const *ptr); extern int isNaN(current_i387_definefunyuan_ FPU_REG const *ptr); extern void FPU_pop(current_i387_definefunyuan_void); extern int FPU_empty_i(current_i387_definefunyuan_ int stnr); extern int FPU_stackoverflow(current_i387_definefunyuan_ FPU_REG **st_new_ptr); extern void FPU_sync_tags(current_i387_definefunyuan_void); extern void FPU_copy_to_regi(current_i387_definefunyuan_ FPU_REG const *r, u_char tag, int stnr); extern void FPU_copy_to_reg1(current_i387_definefunyuan_ FPU_REG const *r, u_char tag); extern void FPU_copy_to_reg0(current_i387_definefunyuan_ FPU_REG const *r, u_char tag); /* fpu_trig.c */ extern void FPU_triga(current_i387_definefunyuan_void); extern void FPU_trigb(current_i387_definefunyuan_void); /* get_address.c */ extern void *FPU_get_address(current_i387_definefunyuan_ u_char FPU_modrm, u32 *fpu_eip, struct address *addr, fpu_addr_modes addr_modes); extern void *FPU_get_address_16(current_i387_definefunyuan_ u_char FPU_modrm, u32 *fpu_eip, struct address *addr, fpu_addr_modes addr_modes); /* load_store.c */ extern int FPU_load_store(current_i387_definefunyuan_ u_char type, fpu_addr_modes addr_modes, void *data_address); /* poly_2xm1.c */ extern int poly_2xm1(current_i387_definefunyuan_ u_char sign, FPU_REG *arg, FPU_REG *result); /* poly_atan.c */ extern void poly_atan(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, FPU_REG *st1_ptr, u_char st1_tag); /* poly_l2.c */ extern void poly_l2(current_i387_definefunyuan_ FPU_REG *st0_ptr, FPU_REG *st1_ptr, u_char st1_sign); extern int poly_l2p1(current_i387_definefunyuan_ u_char s0, u_char s1, FPU_REG *r0, FPU_REG *r1, FPU_REG *d); /* poly_sin.c */ extern void poly_sine(current_i387_definefunyuan_ FPU_REG *st0_ptr); extern void poly_cos(current_i387_definefunyuan_ FPU_REG *st0_ptr); /* poly_tan.c */ extern void poly_tan(current_i387_definefunyuan_ FPU_REG *st0_ptr, int flag); /* reg_add_sub.c */ extern int FPU_add(current_i387_definefunyuan_ FPU_REG const *b, u_char tagb, int destrnr, u16 control_w); extern int FPU_sub(current_i387_definefunyuan_ int flags, FPU_REG *rm, u16 control_w); // bbd: changed arg2 from int to FPU_REG* /* reg_compare.c */ extern int FPU_compare_st_data(current_i387_definefunyuan_ FPU_REG const *loaded_data, u_char loaded_tag); extern void fcom_st(current_i387_definefunyuan_void); extern void fcompst(current_i387_definefunyuan_void); extern void fcompp(current_i387_definefunyuan_void); extern void fucom_(current_i387_definefunyuan_void); extern void fucomp(current_i387_definefunyuan_void); extern void fucompp(current_i387_definefunyuan_void); /* reg_constant.c */ extern void fconst(current_i387_definefunyuan_void); /* reg_ld_str.c */ extern int FPU_load_extended(current_i387_definefunyuan_ long double *s, int stnr); extern int FPU_load_double(current_i387_definefunyuan_ double *dfloat, FPU_REG *loaded_data); extern int FPU_load_single(current_i387_definefunyuan_ float *single, FPU_REG *loaded_data); extern int FPU_load_int64(current_i387_definefunyuan_ s64 *_s); extern int FPU_load_int32(current_i387_definefunyuan_ s32 *_s, FPU_REG *loaded_data); extern int FPU_load_int16(current_i387_definefunyuan_ s16 *_s, FPU_REG *loaded_data); extern int FPU_load_bcd(current_i387_definefunyuan_ u_char *s); extern int FPU_store_extended(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, long double *d); extern int FPU_store_double(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, double *dfloat); extern int FPU_store_single(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, float *single); extern int FPU_store_int64(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, s64 *d); extern int FPU_store_int32(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, s32 *d); extern int FPU_store_int16(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, s16 *d); extern int FPU_store_bcd(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, u_char *d); extern int FPU_round_to_int(current_i387_definefunyuan_ FPU_REG *r, u_char tag); extern u_char *fldenv(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *s); extern void frstor(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *data_address); extern u_char *fstenv(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *d); extern void fsave(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *data_address); extern int FPU_tagof(current_i387_definefunyuan_ FPU_REG *ptr); /* reg_mul.c */ extern int FPU_mul(current_i387_definefunyuan_ FPU_REG const *b, u_char tagb, int deststnr, int control_w); extern int FPU_div(current_i387_definefunyuan_ int flags, FPU_REG *regrm, int control_w); // bbd: changed arg2 from int to FPU_REG* /* reg_convert.c */ extern int FPU_to_exp16(current_i387_definefunyuan_ FPU_REG const *a, FPU_REG *x); /* vex86 error LNK2019: unresolved external symbol "void __cdecl fpu_set_ax(struct BX_FCPU_I387 *,unsigned short)" (?fpu_set_ax@@YAXPAUBX_FCPU_I387@@G@Z) referenced in function "void __cdecl fstsw_ax(struct BX_FCPU_I387 *)" (?fstsw_ax@@YAXPAUBX_FCPU_I387@@@Z) vex86 error LNK2019: unresolved external symbol "void __cdecl div_Xsig(struct Xsig const *,struct Xsig const *,struct Xsig *)" (?div_Xsig@@YAXPBUXsig@@0PAU1@@Z) referenced in function "int __cdecl poly_2xm1(struct BX_FCPU_I387 *,unsigned char,struct fpu__reg *,struct fpu__reg *)" (?poly_2xm1@@YAHPAUBX_FCPU_I387@@EPAUfpu__reg@@1@Z) vex86 error LNK2019: unresolved external symbol "void __cdecl div_Xsig(struct Xsig const *,struct Xsig const *,struct Xsig *)" (?div_Xsig@@YAXPBUXsig@@0PAU1@@Z) referenced in function "void __cdecl poly_tan(struct BX_FCPU_I387 *,struct fpu__reg *,int)" (?poly_tan@@YAXPAUBX_FCPU_I387@@PAUfpu__reg@@H@Z) vex86 error LNK2001: unresolved external symbol "void __cdecl div_Xsig(struct Xsig const *,struct Xsig const *,struct Xsig *)" (?div_Xsig@@YAXPBUXsig@@0PAU1@@Z) vex86 error LNK2019: unresolved external symbol "void __cdecl div_Xsig(struct Xsig const *,struct Xsig const *,struct Xsig *)" (?div_Xsig@@YAXPBUXsig@@0PAU1@@Z) referenced in function "void __cdecl poly_atan(struct BX_FCPU_I387 *,struct fpu__reg *,unsigned char,struct fpu__reg *,unsigned char)" (?poly_atan@@YAXPAUBX_FCPU_I387@@PAUfpu__reg@@E1E@Z) */ #endif /* _FPU_PROTO_H */ ================================================ FILE: Project/fpu/Source/fpu_stubs/asm/desc.h ================================================ #ifndef __ARCH_DESC_H #define __ARCH_DESC_H struct desc_struct { unsigned long a,b; }; extern struct desc_struct gdt_table[]; extern struct desc_struct *idt, *gdt; struct Xgt_desc_struct { unsigned short size; unsigned long address GCC_ATTRIBUTE((packed)); }; #define idt_descr (*(struct Xgt_desc_struct *)((char *)&idt - 2)) #define gdt_descr (*(struct Xgt_desc_struct *)((char *)&gdt - 2)) /* * Entry into gdt where to find first TSS. GDT layout: * 0 - null * 1 - not used * 2 - kernel code segment * 3 - kernel data segment * 4 - user code segment * 5 - user data segment * 6 - not used * 7 - not used * 8 - APM BIOS support * 9 - APM BIOS support * 10 - APM BIOS support * 11 - APM BIOS support * 12 - TSS #0 * 13 - LDT #0 * 14 - TSS #1 * 15 - LDT #1 */ #define FIRST_TSS_ENTRY 12 #define FIRST_LDT_ENTRY (FIRST_TSS_ENTRY+1) #define _TSS(n) ((((unsigned long) n)<<4)+(FIRST_TSS_ENTRY<<3)) #define _LDT(n) ((((unsigned long) n)<<4)+(FIRST_LDT_ENTRY<<3)) #define load_TR(n) __asm__ __volatile__("ltr %%ax": /* no output */ :"a" (_TSS(n))) #define load_ldt(n) __asm__ __volatile__("lldt %%ax": /* no output */ :"a" (_LDT(n))) #define store_TR(n) __asm__("str %%ax\n\t" "subl %2,%%eax\n\t" "shrl $4,%%eax" :"=a" (n):"0" (0),"i" (FIRST_TSS_ENTRY<<3)) extern void set_intr_gate(unsigned int irq, void * addr); extern void set_ldt_desc(unsigned int n, void *addr, unsigned int size); extern void set_tss_desc(unsigned int n, void *addr); /* * This is the ldt that every process will get unless we need * something other than this. */ extern struct desc_struct default_ldt; #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/asm/math_emu.h ================================================ #ifndef _I386_MATH_EMU_H #define _I386_MATH_EMU_H // Don't really need anything in here. #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/asm/sigcontext.h ================================================ #ifndef _ASMi386_SIGCONTEXT_H #define _ASMi386_SIGCONTEXT_H /* * As documented in the iBCS2 standard.. * * The first part of "struct _fpstate" is just the * normal i387 hardware setup, the extra "status" * word is used to save the coprocessor status word * before entering the handler. */ struct _fpreg { unsigned short significand[4]; unsigned short exponent; }; struct _fpstate { unsigned long cw, sw, tag, ipoff, cssel, dataoff, datasel; struct _fpreg _st[8]; unsigned long status; }; #if 0 /* sigcontext is not needed by bochs, and it conflicts with some other machine types (DEC OSF1) */ struct sigcontext { unsigned short gs, __gsh; unsigned short fs, __fsh; unsigned short es, __esh; unsigned short ds, __dsh; unsigned long edi; unsigned long esi; unsigned long ebp; unsigned long esp; unsigned long ebx; unsigned long edx; unsigned long ecx; unsigned long eax; unsigned long trapno; unsigned long err; unsigned long eip; unsigned short cs, __csh; unsigned long eflags; unsigned long esp_at_signal; unsigned short ss, __ssh; struct _fpstate * fpstate; unsigned long oldmask; unsigned long cr2; }; #endif #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/asm/types.h ================================================ #ifndef _I386_TYPES_H #define _I386_TYPES_H #ifndef __ASSEMBLY__ #endif #endif /* _I386_TYPES_H */ ================================================ FILE: Project/fpu/Source/fpu_stubs/asm/uaccess.h ================================================ #ifndef _I386_UACCESS_H #define _I386_UACCESS_H #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/kernel.h ================================================ #ifndef _LINUX_KERNEL_H #define _LINUX_KERNEL_H int fpu_printk(const char * fmt, ...) GCC_ATTRIBUTE((format (printf, 1, 2))); #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/linkage.h ================================================ #ifndef _LINUX_LINKAGE_H #define _LINUX_LINKAGE_H #ifdef __cplusplus #define CPP_ASMLINKAGE extern "C++" #else #define CPP_ASMLINKAGE #endif #if defined __i386__ && (__GNUC__ > 2 || __GNUC_MINOR__ > 7) #define asmlinkage CPP_ASMLINKAGE GCC_ATTRIBUTE((regparm(0))) #else #define asmlinkage CPP_ASMLINKAGE #endif #define SYMBOL_NAME_STR(X) #X #define SYMBOL_NAME(X) X #ifdef __STDC__ #define SYMBOL_NAME_LABEL(X) X##: #else #define SYMBOL_NAME_LABEL(X) X/**/: #endif #ifdef __arm__ #define __ALIGN .align 0 #define __ALIGN_STR ".align 0" #else #ifdef __mc68000__ #define __ALIGN .align 4 #define __ALIGN_STR ".align 4" #else #if !defined(__i486__) && !defined(__i586__) #define __ALIGN .align 4,0x90 #define __ALIGN_STR ".align 4,0x90" #else /* __i486__/__i586__ */ #define __ALIGN .align 16,0x90 #define __ALIGN_STR ".align 16,0x90" #endif /* __i486__/__i586__ */ #endif /* __mc68000__ */ #endif /* __arm__ */ #ifdef __ASSEMBLY__ #define ALIGN __ALIGN #define ALIGN_STR __ALIGN_STR #define ENTRY(name) \ .globl SYMBOL_NAME(name); \ ALIGN; \ SYMBOL_NAME_LABEL(name) #endif #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/mm.h ================================================ #ifndef _LINUX_MM_H #define _LINUX_MM_H #define VERIFY_READ 0 #define VERIFY_WRITE 1 #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/sched.h ================================================ ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/signal.h ================================================ #ifndef _ASMi386_SIGNAL_H #define _ASMi386_SIGNAL_H #define SIGILL 4 #define SIGFPE 8 #define SIGSEGV 11 #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/stddef.h ================================================ #ifndef _LINUX_STDDEF_H #define _LINUX_STDDEF_H #ifndef _SIZE_T #define _SIZE_T typedef unsigned int size_t; #endif #undef NULL #define NULL ((void *)0) #undef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #endif ================================================ FILE: Project/fpu/Source/fpu_stubs/linux/types.h ================================================ #ifndef _LINUX_TYPES_H #define _LINUX_TYPES_H #ifndef __ASSEMBLY__ #define u_char bx_u_char #define u_short bx_u_short #define u_int bx_u_int #define u_long bx_u_long #define unchar bx_unchar #define ushort bx_ushort #define uint bx_uint #define ulong bx_ulong /* bsd */ typedef unsigned char u_char; typedef unsigned short u_short; typedef unsigned int u_int; typedef unsigned long u_long; /* sysv */ typedef unsigned char unchar; typedef unsigned short ushort; typedef unsigned int uint; typedef unsigned long ulong; #ifndef NULL #define NULL ((void *) 0) #endif #endif #endif /* _LINUX_TYPES_H */ ================================================ FILE: Project/fpu/Source/fpu_system.h ================================================ /*---------------------------------------------------------------------------+ | fpu_system.h | | $Id: fpu_system.h,v 1.4 2002/09/09 16:11:25 bdenney Exp $ | | | Copyright (C) 1992,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@suburbia.net | | | +---------------------------------------------------------------------------*/ #ifndef _FPU_SYSTEM_H #define _FPU_SYSTEM_H #ifndef USE_WITH_CPU_SIM /* system dependent definitions */ #include #include #include /* This sets the pointer FPU_info to point to the argument part of the stack frame of math_emulate(current_i387_definefunyuan_void ) */ #define SETUP_DATA_AREA(arg) FPU_info = (struct info *) &arg #define LDT_DESCRIPTOR(s) (((struct desc_struct *)current->mm->segments)[(s) >> 3]) #define SEG_D_SIZE(x) ((x).b & (3 << 21)) #define SEG_G_BIT(x) ((x).b & (1 << 23)) #define SEG_GRANULARITY(x) (((x).b & (1 << 23)) ? 4096 : 1) #define SEG_286_MODE(x) ((x).b & ( 0xff000000 | 0xf0000 | (1 << 23))) #define SEG_BASE_ADDR(s) (((s).b & 0xff000000) \ | (((s).b & 0xff) << 16) | ((s).a >> 16)) #define SEG_LIMIT(s) (((s).b & 0xff0000) | ((s).a & 0xffff)) #define SEG_EXECUTE_ONLY(s) (((s).b & ((1 << 11) | (1 << 9))) == (1 << 11)) #define SEG_WRITE_PERM(s) (((s).b & ((1 << 11) | (1 << 9))) == (1 << 9)) #define SEG_EXPAND_DOWN(s) (((s).b & ((1 << 11) | (1 << 10))) \ == (1 << 10)) #define I387 (current->tss.i387) #define FPU_info (I387.soft.info) #define FPU_CS (*(u16 *) &(FPU_info->___cs)) #define FPU_SS (*(u16 *) &(FPU_info->___ss)) #define FPU_DS (*(u16 *) &(FPU_info->___ds)) #define FPU_EAX (FPU_info->___eax) #define FPU_EFLAGS (FPU_info->___eflags) #define FPU_EIP (FPU_info->___eip) #define FPU_ORIG_EIP (FPU_info->___orig_eip) #define FPU_lookahead (I387.soft.lookahead) #define SET_AX(val16) *(s16 *) &FPU_EAX = val16 /* nz if ip_offset and cs_selector are not to be set for the current instruction. */ #define no_ip_update (*(u_char *)&(I387.soft.no_update)) #define FPU_rm (*(u_char *)&(I387.soft.rm)) /* Number of bytes of data which can be legally accessed by the current instruction. This only needs to hold a number <= 108, so a byte will do. */ #define access_limit (*(u_char *)&(I387.soft.alimit)) #define partial_status (I387.soft.swd) #define control_word (I387.soft.cwd) #define fpu_tag_word (I387.soft.twd) #define registers (I387.soft.st_space) #define top (I387.soft.ftop) #define instruction_address (*(struct address *)&I387.soft.fip) #define operand_address (*(struct address *)&I387.soft.foo) #define FPU_verify_area(x,y,z) if ( verify_area(x,y,z) ) \ math_abort(current_i387_yuan_ FPU_info,SIGSEGV) #undef FPU_IGNORE_CODE_SEGV #ifdef FPU_IGNORE_CODE_SEGV /* verify_area() is very expensive, and causes the emulator to run about 20% slower if applied to the code. Anyway, errors due to bad code addresses should be much rarer than errors due to bad data addresses. */ #define FPU_code_verify_area(z) #else /* A simpler test than verify_area() can probably be done for FPU_code_verify_area() because the only possible error is to step past the upper boundary of a legal code area. */ #define FPU_code_verify_area(z) FPU_verify_area(VERIFY_READ,(void *)FPU_EIP,z) #endif #define FPU_get_user(x,y) get_user((x),(y)) #define FPU_put_user(x,y) put_user((x),(y)) #else /* USE_WITH_CPU_SIM */ /* ----------------------------------------------------------- * Slimmed down version used to compile against a CPU simulator * rather than a kernel (ported by Kevin Lawton) * ------------------------------------------------------------ */ #include "../../IntelCPU/Source/i387.h" /* bbd: include ported linux headers after config.h for GCC_ATTRIBUTE macro */ #include #include #include #include #ifndef WORDS_BIGENDIAN #error "WORDS_BIGENDIAN not defined in config.h" #elif WORDS_BIGENDIAN == 1 #define EMU_BIG_ENDIAN 1 #else /* Nothing needed. Lack of defining EMU_BIG_ENDIAN means * small endian */ #endif extern unsigned fpu_get_user(current_i387_definefunyuan_ void *ptr, unsigned len); extern void fpu_put_user(current_i387_definefunyuan_ unsigned val, void *ptr, unsigned len); extern void fpu_verify_area(current_i387_definefunyuan_ unsigned what, void *ptr, unsigned n); extern void math_emulate_init(current_i387_definefunyuan_void); extern unsigned fpu_get_ds(current_i387_definefunyuan_void); extern void fpu_set_ax(current_i387_definefunyuan_ u16); #ifndef __ASSEMBLY__ struct info { #ifdef BX_NO_EMPTY_STRUCTS unsigned char donotindexme; #endif }; #define FPU_info ((struct info *) NULL) #endif #define SIGSEGV 11 //extern BX_FCPU_I387 *bx_fcpu_i387; #define i387 (*(bx_fcpu_i387->current_i387_)) #define I387 i387 #define SET_AX(val16) fpu_set_ax(current_i387_yuan_ val16); #define no_ip_update (*(u_char *)&(I387.soft.no_update)) #define FPU_rm (*(u_char *)&(I387.soft.rm)) /* Number of bytes of data which can be legally accessed by the current instruction. This only needs to hold a number <= 108, so a byte will do. */ #define access_limit (*(u_char *)&(I387.soft.alimit)) #define partial_status (I387.soft.swd) #define control_word (I387.soft.cwd) #define fpu_tag_word (I387.soft.twd) #define registers (I387.soft.st_space) #define top (I387.soft.ftop) #define instruction_address (*(struct address *)&I387.soft.fip) #define operand_address (*(struct address *)&I387.soft.foo) #define FPU_verify_area(x,y,z) fpu_verify_area(current_i387_yuan_ x,y,z) #define FPU_get_user(x,y) ((x) = fpu_get_user(current_i387_yuan_ (y), sizeof(*(y)))) #define FPU_put_user(val,ptr) fpu_put_user(current_i387_yuan_ (val),(ptr),sizeof(*(ptr))) #define FPU_DS (fpu_get_ds(current_i387_yuan_void)) #endif /* USE_WITH_CPU_SIM */ // bbd: Change a pointer to an int, with type conversions that make it legal. // First make it a void pointer, then convert to an integer of the same // size as the pointer. Otherwise, on machines with 64-bit pointers, // compilers complain when you typecast a 64-bit pointer into a 32-bit integer. #define PTR2INT(x) ((bx_ptr_equiv_t)(void *)(x)) // bbd: Change an int to a pointer, with type conversions that make it legal. // Same strategy as PTR2INT: change to bx_ptr_equiv_t which is an integer // type of the same size as FPU_REG*. Then the conversion to pointer // is legal. #define REGNO2PTR(x) ((FPU_REG*)((bx_ptr_equiv_t)(x))) #endif ================================================ FILE: Project/fpu/Source/fpu_tags.cpp ================================================ /*---------------------------------------------------------------------------+ | fpu_tags.c | | $Id: fpu_tags.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Set FPU register tags. | | | | Copyright (C) 1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@jacobi.maths.monash.edu.au | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "fpu_system.h" #include "exception.h" void FPU_pop(current_i387_definefunyuan_void) { fpu_tag_word |= 3 << ((top & 7)*2); top++; } int FPU_gettag0(current_i387_definefunyuan_void) { return (fpu_tag_word >> ((top & 7)*2)) & 3; } int FPU_gettagi(current_i387_definefunyuan_ int stnr) { return (fpu_tag_word >> (((top+stnr) & 7)*2)) & 3; } int FPU_gettag(current_i387_definefunyuan_ int regnr) { return (fpu_tag_word >> ((regnr & 7)*2)) & 3; } void FPU_settag0(current_i387_definefunyuan_ int tag) { int regnr = top; regnr &= 7; fpu_tag_word &= ~(3 << (regnr*2)); fpu_tag_word |= (tag & 3) << (regnr*2); } void FPU_settagi(current_i387_definefunyuan_ int stnr, int tag) { int regnr = stnr+top; regnr &= 7; fpu_tag_word &= ~(3 << (regnr*2)); fpu_tag_word |= (tag & 3) << (regnr*2); } void FPU_settag(current_i387_definefunyuan_ int regnr, int tag) { regnr &= 7; fpu_tag_word &= ~(3 << (regnr*2)); fpu_tag_word |= (tag & 3) << (regnr*2); } int FPU_Special(current_i387_definefunyuan_ FPU_REG const *ptr) { int exp = exponent(ptr); if ( exp == EXP_BIAS+EXP_UNDER ) return TW_Denormal; else if ( exp != EXP_BIAS+EXP_OVER ) return TW_NaN; else if ( (ptr->sigh == 0x80000000) && (ptr->sigl == 0) ) return TW_Infinity; return TW_NaN; } int isNaN(current_i387_definefunyuan_ FPU_REG const *ptr) { return ( (exponent(ptr) == EXP_BIAS+EXP_OVER) && !((ptr->sigh == 0x80000000) && (ptr->sigl == 0)) ); } int FPU_empty_i(current_i387_definefunyuan_ int stnr) { int regnr = (top+stnr) & 7; return ((fpu_tag_word >> (regnr*2)) & 3) == TAG_Empty; } int FPU_stackoverflow(current_i387_definefunyuan_ FPU_REG **st_new_ptr) { *st_new_ptr = &st(-1); return ((fpu_tag_word >> (((top - 1) & 7)*2)) & 3) != TAG_Empty; } void FPU_copy_to_regi(current_i387_definefunyuan_ FPU_REG const *r, u_char tag, int stnr) { reg_copy(r, &st(stnr)); FPU_settagi(current_i387_yuan_ stnr, tag); } void FPU_copy_to_reg1(current_i387_definefunyuan_ FPU_REG const *r, u_char tag) { reg_copy(r, &st(1)); FPU_settagi(current_i387_yuan_ 1, tag); } void FPU_copy_to_reg0(current_i387_definefunyuan_ FPU_REG const *r, u_char tag) { int regnr = top; regnr &= 7; reg_copy(r, &st(0)); fpu_tag_word &= ~(3 << (regnr*2)); fpu_tag_word |= (tag & 3) << (regnr*2); } ================================================ FILE: Project/fpu/Source/fpu_trig.cpp ================================================ /*---------------------------------------------------------------------------+ | fpu_trig.c | | $Id: fpu_trig.c,v 1.5 2002/07/03 20:13:31 vruppert Exp $ | | | Implementation of the FPU "transcendental" functions. | | | | Copyright (C) 1992,1993,1994,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "exception.h" #include "fpu_emu.h" #include "status_w.h" #include "control_w.h" #include "reg_constant.h" static void rem_kernel(u64 st0, u64 *y, u64 st1, u64 q, int n); #define BETTER_THAN_486 #define FCOS 4 #define FPTAN 8 /* Used only by fptan, fsin, fcos, and fsincos. */ /* This routine produces very accurate results, similar to using a value of pi with more than 128 bits precision. */ /* Limited measurements show no results worse than 64 bit precision except for the results for arguments close to 2^63, where the precision of the result sometimes degrades to about 63.9 bits */ static int trig_arg(current_i387_definefunyuan_ FPU_REG *st0_ptr, int flags) { FPU_REG tmp; u_char tmptag; u64 q; int old_cw = control_word, saved_status = partial_status; int tag, st0_tag = TAG_Valid; if ( exponent(st0_ptr) >= 63 ) { partial_status |= SW_C2; /* Reduction incomplete. */ return -1; } if ( flags & FPTAN ) st0_ptr->exp ++; /* Effectively base the following upon pi/4 */ control_word &= ~CW_RC; control_word |= RC_CHOP; setpositive(st0_ptr); tag = FPU_u_div(current_i387_yuan_ st0_ptr, &CONST_PI2, &tmp, PR_64_BITS | RC_CHOP | 0x3f, SIGN_POS); FPU_round_to_int(current_i387_yuan_ &tmp, tag); /* Fortunately, this can't overflow to 2^64 */ q = significand(&tmp); if ( q ) { rem_kernel(significand(st0_ptr), &significand(&tmp), significand(&CONST_PI2), q, exponent(st0_ptr) - exponent(&CONST_PI2)); setexponent16(&tmp, exponent(&CONST_PI2)); st0_tag = FPU_normalize_nuo(current_i387_yuan_ &tmp, EXTENDED_Ebias); /* No underflow or overflow is possible */ FPU_copy_to_reg0(current_i387_yuan_ &tmp, st0_tag); } if ( ((flags & FCOS) && !(q & 1)) || (!(flags & FCOS) && (q & 1)) ) { st0_tag = FPU_sub(current_i387_yuan_ REV|LOADED|TAG_Valid, &CONST_PI2, FULL_PRECISION); //bbd: arg2 used to typecast to (int) #ifdef BETTER_THAN_486 /* So far, the results are exact but based upon a 64 bit precision approximation to pi/2. The technique used now is equivalent to using an approximation to pi/2 which is accurate to about 128 bits. */ if ( (exponent(st0_ptr) <= exponent(&CONST_PI2extra) + 64) || (q > 1) ) { /* This code gives the effect of having pi/2 to better than 128 bits precision. */ significand(&tmp) = q + 1; setexponent16(&tmp, 63); FPU_normalize_nuo(current_i387_yuan_ &tmp, EXTENDED_Ebias); /* No underflow or overflow is possible */ tmptag = FPU_u_mul(current_i387_yuan_ &CONST_PI2extra, &tmp, &tmp, FULL_PRECISION, SIGN_POS, exponent(&CONST_PI2extra) + exponent(&tmp)); setsign(&tmp, getsign(&CONST_PI2extra)); st0_tag = FPU_add(current_i387_yuan_ &tmp, tmptag, 0, FULL_PRECISION); if ( signnegative(st0_ptr) && !(flags & FPTAN) ) { /* CONST_PI2extra is negative, so the result of the addition can be negative. This means that the argument is actually in a different quadrant. The correction is always < pi/2, so it can't overflow into yet another quadrant. */ /* The function is even, so we need just adjust the sign and q. */ setpositive(st0_ptr); q++; } } #endif /* BETTER_THAN_486 */ } #ifdef BETTER_THAN_486 else { /* So far, the results are exact but based upon a 64 bit precision approximation to pi/2. The technique used now is equivalent to using an approximation to pi/2 which is accurate to about 128 bits. */ if ( ((q > 0) && (exponent(st0_ptr) <= exponent(&CONST_PI2extra) + 64)) || (q > 1) ) { /* This code gives the effect of having p/2 to better than 128 bits precision. */ significand(&tmp) = q; setexponent16(&tmp, 63); FPU_normalize_nuo(current_i387_yuan_ &tmp, EXTENDED_Ebias); /* No underflow or overflow is possible. This must return TAG_Valid */ tmptag = FPU_u_mul(current_i387_yuan_ &CONST_PI2extra, &tmp, &tmp, FULL_PRECISION, SIGN_POS, exponent(&CONST_PI2extra) + exponent(&tmp)); setsign(&tmp, getsign(&CONST_PI2extra)); st0_tag = FPU_sub(current_i387_yuan_ LOADED|(tmptag & 0x0f), &tmp, FULL_PRECISION); if ( (exponent(st0_ptr) == exponent(&CONST_PI2)) && ((st0_ptr->sigh > CONST_PI2.sigh) || ((st0_ptr->sigh == CONST_PI2.sigh) && (st0_ptr->sigl > CONST_PI2.sigl))) ) { /* CONST_PI2extra is negative, so the result of the subtraction can be larger than pi/2. This means that the argument is actually in a different quadrant. The correction is always < pi/2, so it can't overflow into yet another quadrant. bbd: arg2 used to typecast to (int), corrupting 64-bit ptrs */ st0_tag = FPU_sub(current_i387_yuan_ REV|LOADED|TAG_Valid, &CONST_PI2, FULL_PRECISION); q++; } } } #endif /* BETTER_THAN_486 */ FPU_settag0(current_i387_yuan_ st0_tag); control_word = old_cw; partial_status = saved_status & ~SW_C2; /* Reduction complete. */ if ( flags & FPTAN ) { st0_ptr->exp --; return (int)(q & 7); } return (int)((q & 3) | (flags & FCOS)); } /* Convert a s32 to register */ static void convert_l2reg(current_i387_definefunyuan_ s32 const *arg, int deststnr) { int tag; s32 num = *arg; u_char sign; FPU_REG *dest = &st(deststnr); if (num == 0) { FPU_copy_to_regi(current_i387_yuan_ &CONST_Z, TAG_Zero, deststnr); return; } if (num > 0) { sign = SIGN_POS; } else { num = -num; sign = SIGN_NEG; } dest->sigh = num; dest->sigl = 0; setexponent16(dest, 31); tag = FPU_normalize_nuo(current_i387_yuan_ dest, EXTENDED_Ebias); /* No underflow or overflow is possible */ FPU_settagi(current_i387_yuan_ deststnr, tag); setsign(dest, sign); return; } static void single_arg_error(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { if ( st0_tag == TAG_Empty ) FPU_stack_underflow(current_i387_yuan_clono ); /* Puts a QNaN in st(0) */ else if ( st0_tag == TW_NaN ) real_1op_NaN(current_i387_yuan_ st0_ptr); /* return with a NaN in st(0) */ #ifdef PARANOID else EXCEPTION(EX_INTERNAL|0x0112); #endif /* PARANOID */ } static void single_arg_2_error(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { int isNaN; switch ( st0_tag ) { case TW_NaN: isNaN = (exponent(st0_ptr) == EXP_OVER) && (st0_ptr->sigh & 0x80000000); if ( isNaN && !(st0_ptr->sigh & 0x40000000) ) /* Signaling ? */ { EXCEPTION(EX_Invalid); if ( control_word & CW_Invalid ) { /* The masked response */ /* Convert to a QNaN */ st0_ptr->sigh |= 0x40000000; push(); FPU_copy_to_reg0(current_i387_yuan_ st0_ptr, TAG_Special); } } else if ( isNaN ) { /* A QNaN */ push(); FPU_copy_to_reg0(current_i387_yuan_ st0_ptr, TAG_Special); } else { /* pseudoNaN or other unsupported */ EXCEPTION(EX_Invalid); if ( control_word & CW_Invalid ) { /* The masked response */ FPU_copy_to_reg0(current_i387_yuan_ &CONST_QNaN, TAG_Special); push(); FPU_copy_to_reg0(current_i387_yuan_ &CONST_QNaN, TAG_Special); } } break; /* return with a NaN in st(0) */ #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x0112); #endif /* PARANOID */ } } /*---------------------------------------------------------------------------*/ static void f2xm1(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char tag) { FPU_REG a; clear_C1(); if ( tag == TAG_Valid ) { /* For an 80486 FPU, the result is undefined if the arg is >= 1.0 */ if ( exponent(st0_ptr) < 0 ) { denormal_arg: FPU_to_exp16(current_i387_yuan_ st0_ptr, &a); /* poly_2xm1(current_i387_yuan_ x) requires 0 < st(0) < 1. */ poly_2xm1(current_i387_yuan_ getsign(st0_ptr), &a, st0_ptr); } set_precision_flag_up(current_i387_yuan_clono ); /* 80486 appears to always do this */ return; } if ( tag == TAG_Zero ) return; if ( tag == TAG_Special ) tag = FPU_Special(current_i387_yuan_ st0_ptr); switch ( tag ) { case TW_Denormal: if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; goto denormal_arg; case TW_Infinity: if ( signnegative(st0_ptr) ) { /* -infinity gives -1 (p16-10) */ FPU_copy_to_reg0(current_i387_yuan_ &CONST_1, TAG_Valid); setnegative(st0_ptr); } return; default: single_arg_error(current_i387_yuan_ st0_ptr, tag); } } static void fptan(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { FPU_REG *st_new_ptr; u32 q; u_char arg_sign = getsign(st0_ptr); int invert[] = { 0, 1, 1, 0, 0, 1, 1, 0 }; /* Stack underflow has higher priority */ if ( st0_tag == TAG_Empty ) { FPU_stack_underflow(current_i387_yuan_clono ); /* Puts a QNaN in st(0) */ if ( control_word & CW_Invalid ) { st_new_ptr = &st(-1); push(); FPU_stack_underflow(current_i387_yuan_clono ); /* Puts a QNaN in the new st(0) */ } return; } if ( STACK_OVERFLOW ) { FPU_stack_overflow(current_i387_yuan_clono ); return; } if ( st0_tag == TAG_Valid ) { if ( exponent(st0_ptr) > -40 ) { if ( (q = trig_arg(current_i387_yuan_ st0_ptr, FPTAN)) == -1 ) { /* Operand is out of range */ return; } poly_tan(current_i387_yuan_ st0_ptr, invert[q]); setsign(st0_ptr, ((q & 2) != 0) ^ (arg_sign != 0)); set_precision_flag_up(current_i387_yuan_clono ); /* We do not really know if up or down */ } else { /* For a small arg, the result == the argument */ /* Underflow may happen */ denormal_arg: FPU_to_exp16(current_i387_yuan_ st0_ptr, st0_ptr); st0_tag = FPU_round(current_i387_yuan_ st0_ptr, 1, 0, FULL_PRECISION, arg_sign); FPU_settag0(current_i387_yuan_ st0_tag); } push(); FPU_copy_to_reg0(current_i387_yuan_ &CONST_1, TAG_Valid); return; } if ( st0_tag == TAG_Zero ) { push(); FPU_copy_to_reg0(current_i387_yuan_ &CONST_1, TAG_Valid); setcc(0); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st0_tag == TW_Denormal ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; goto denormal_arg; } if ( st0_tag == TW_Infinity ) { /* The 80486 treats infinity as an invalid operand */ if ( arith_invalid(current_i387_yuan_ 0) >= 0 ) { st_new_ptr = &st(-1); push(); arith_invalid(current_i387_yuan_ 0); } return; } single_arg_2_error(current_i387_yuan_ st0_ptr, st0_tag); } static void fxtract(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { FPU_REG *st_new_ptr; u_char sign; register FPU_REG *st1_ptr = st0_ptr; /* anticipate */ if ( STACK_OVERFLOW ) { FPU_stack_overflow(current_i387_yuan_clono ); return; } clear_C1(); if ( st0_tag == TAG_Valid ) { s32 e; push(); sign = getsign(st1_ptr); reg_copy(st1_ptr, st_new_ptr); setexponent16(st_new_ptr, exponent(st_new_ptr)); denormal_arg: e = exponent16(st_new_ptr); convert_l2reg(current_i387_yuan_ &e, 1); setexponentpos(st_new_ptr, 0); setsign(st_new_ptr, sign); FPU_settag0(current_i387_yuan_ TAG_Valid); /* Needed if arg was a denormal */ return; } else if ( st0_tag == TAG_Zero ) { sign = getsign(st0_ptr); if ( FPU_divide_by_zero(current_i387_yuan_ 0, SIGN_NEG) < 0 ) return; push(); FPU_copy_to_reg0(current_i387_yuan_ &CONST_Z, TAG_Zero); setsign(st_new_ptr, sign); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st0_tag == TW_Denormal ) { if (denormal_operand(current_i387_yuan_le ) < 0 ) return; push(); sign = getsign(st1_ptr); FPU_to_exp16(current_i387_yuan_ st1_ptr, st_new_ptr); goto denormal_arg; } else if ( st0_tag == TW_Infinity ) { sign = getsign(st0_ptr); setpositive(st0_ptr); push(); FPU_copy_to_reg0(current_i387_yuan_ &CONST_INF, TAG_Special); setsign(st_new_ptr, sign); return; } else if ( st0_tag == TW_NaN ) { if ( real_1op_NaN(current_i387_yuan_ st0_ptr) < 0 ) return; push(); FPU_copy_to_reg0(current_i387_yuan_ st0_ptr, TAG_Special); return; } else if ( st0_tag == TAG_Empty ) { /* Is this the correct behaviour? */ if ( control_word & EX_Invalid ) { FPU_stack_underflow(current_i387_yuan_clono ); push(); FPU_stack_underflow(current_i387_yuan_clono ); } else EXCEPTION(EX_StackUnder); } #ifdef PARANOID else EXCEPTION(EX_INTERNAL | 0x119); #endif /* PARANOID */ } static void fdecstp(current_i387_definefunyuan_void) { clear_C1(); top--; } static void fincstp(current_i387_definefunyuan_void) { clear_C1(); top++; } static void fsqrt_(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { int expon; clear_C1(); if ( st0_tag == TAG_Valid ) { u_char tag; if (signnegative(st0_ptr)) { arith_invalid(current_i387_yuan_ 0); /* sqrt(negative) is invalid */ return; } /* make st(0) in [1.0 .. 4.0) */ expon = exponent(st0_ptr); denormal_arg: setexponent16(st0_ptr, (expon & 1)); /* Do the computation, the sign of the result will be positive. */ tag = wm_sqrt(current_i387_yuan_ st0_ptr, 0, 0, control_word, SIGN_POS); addexponent(st0_ptr, expon >> 1); FPU_settag0(current_i387_yuan_ tag); return; } if ( st0_tag == TAG_Zero ) return; if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st0_tag == TW_Infinity ) { if ( signnegative(st0_ptr) ) arith_invalid(current_i387_yuan_ 0); /* sqrt(-Infinity) is invalid */ return; } else if ( st0_tag == TW_Denormal ) { if (signnegative(st0_ptr)) { arith_invalid(current_i387_yuan_ 0); /* sqrt(negative) is invalid */ return; } if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; FPU_to_exp16(current_i387_yuan_ st0_ptr, st0_ptr); expon = exponent16(st0_ptr); goto denormal_arg; } single_arg_error(current_i387_yuan_ st0_ptr, st0_tag); } static void frndint_(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { int flags, tag; if ( st0_tag == TAG_Valid ) { u_char sign; denormal_arg: sign = getsign(st0_ptr); if (exponent(st0_ptr) > 63) return; if ( st0_tag == TW_Denormal ) { if (denormal_operand(current_i387_yuan_le ) < 0 ) return; } /* Fortunately, this can't overflow to 2^64 */ if ( (flags = FPU_round_to_int(current_i387_yuan_ st0_ptr, st0_tag)) ) set_precision_flag(current_i387_yuan_ flags); setexponent16(st0_ptr, 63); tag = FPU_normalize_nuo(current_i387_yuan_ st0_ptr, EXTENDED_Ebias); /* No underflow or overflow is possible */ setsign(st0_ptr, sign); FPU_settag0(current_i387_yuan_ tag); return; } if ( st0_tag == TAG_Zero ) return; if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st0_tag == TW_Denormal ) goto denormal_arg; else if ( st0_tag == TW_Infinity ) return; else single_arg_error(current_i387_yuan_ st0_ptr, st0_tag); } static int fsin(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char tag) { u_char arg_sign = getsign(st0_ptr); if ( tag == TAG_Valid ) { u32 q; if ( exponent(st0_ptr) > -40 ) { if ( (q = trig_arg(current_i387_yuan_ st0_ptr, 0)) == -1 ) { /* Operand is out of range */ return 1; } poly_sine(current_i387_yuan_ st0_ptr); if (q & 2) changesign(st0_ptr); setsign(st0_ptr, getsign(st0_ptr) ^ arg_sign); /* We do not really know if up or down */ set_precision_flag_up(current_i387_yuan_clono ); return 0; } else { /* For a small arg, the result == the argument */ set_precision_flag_up(current_i387_yuan_clono ); /* Must be up. */ return 0; } } if ( tag == TAG_Zero ) { setcc(0); return 0; } if ( tag == TAG_Special ) tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( tag == TW_Denormal ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return 1; /* For a small arg, the result == the argument */ /* Underflow may happen */ FPU_to_exp16(current_i387_yuan_ st0_ptr, st0_ptr); tag = FPU_round(current_i387_yuan_ st0_ptr, 1, 0, FULL_PRECISION, arg_sign); FPU_settag0(current_i387_yuan_ tag); return 0; } else if ( tag == TW_Infinity ) { /* The 80486 treats infinity as an invalid operand */ arith_invalid(current_i387_yuan_ 0); return 1; } else { single_arg_error(current_i387_yuan_ st0_ptr, tag); return 1; } } static int f_cos(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char tag) { u_char st0_sign; st0_sign = getsign(st0_ptr); if ( tag == TAG_Valid ) { u32 q; if ( exponent(st0_ptr) > -40 ) { if ( (exponent(st0_ptr) < 0) || ((exponent(st0_ptr) == 0) && (significand(st0_ptr) <= BX_CONST64(0xc90fdaa22168c234))) ) { poly_cos(current_i387_yuan_ st0_ptr); /* We do not really know if up or down */ set_precision_flag_down(current_i387_yuan_clono ); return 0; } else if ( (q = trig_arg(current_i387_yuan_ st0_ptr, FCOS)) != -1 ) { poly_sine(current_i387_yuan_ st0_ptr); if ((q+1) & 2) changesign(st0_ptr); /* We do not really know if up or down */ set_precision_flag_down(current_i387_yuan_clono ); return 0; } else { /* Operand is out of range */ return 1; } } else { denormal_arg: setcc(0); FPU_copy_to_reg0(current_i387_yuan_ &CONST_1, TAG_Valid); #ifdef PECULIAR_486 set_precision_flag_down(current_i387_yuan_clono ); /* 80486 appears to do this. */ #else set_precision_flag_up(current_i387_yuan_clono ); /* Must be up. */ #endif /* PECULIAR_486 */ return 0; } } else if ( tag == TAG_Zero ) { FPU_copy_to_reg0(current_i387_yuan_ &CONST_1, TAG_Valid); setcc(0); return 0; } if ( tag == TAG_Special ) tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( tag == TW_Denormal ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return 1; goto denormal_arg; } else if ( tag == TW_Infinity ) { /* The 80486 treats infinity as an invalid operand */ arith_invalid(current_i387_yuan_ 0); return 1; } else { single_arg_error(current_i387_yuan_ st0_ptr, tag); /* requires st0_ptr == &st(0) */ return 1; } } static void fcos(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { f_cos(current_i387_yuan_ st0_ptr, st0_tag); } static void fsincos(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { FPU_REG *st_new_ptr; FPU_REG arg; u_char tag; /* Stack underflow has higher priority */ if ( st0_tag == TAG_Empty ) { FPU_stack_underflow(current_i387_yuan_clono ); /* Puts a QNaN in st(0) */ if ( control_word & CW_Invalid ) { st_new_ptr = &st(-1); push(); FPU_stack_underflow(current_i387_yuan_clono ); /* Puts a QNaN in the new st(0) */ } return; } if ( STACK_OVERFLOW ) { FPU_stack_overflow(current_i387_yuan_clono ); return; } if ( st0_tag == TAG_Special ) tag = FPU_Special(current_i387_yuan_ st0_ptr); else tag = st0_tag; if ( tag == TW_NaN ) { single_arg_2_error(current_i387_yuan_ st0_ptr, TW_NaN); return; } else if ( tag == TW_Infinity ) { /* The 80486 treats infinity as an invalid operand */ if ( arith_invalid(current_i387_yuan_ 0) >= 0 ) { /* Masked response */ push(); arith_invalid(current_i387_yuan_ 0); } return; } reg_copy(st0_ptr, &arg); if ( !fsin(current_i387_yuan_ st0_ptr, st0_tag) ) { push(); FPU_copy_to_reg0(current_i387_yuan_ &arg, st0_tag); f_cos(current_i387_yuan_ &st(0), st0_tag); } else { /* An error, so restore st(0) */ FPU_copy_to_reg0(current_i387_yuan_ &arg, st0_tag); } } /*---------------------------------------------------------------------------*/ /* The following all require two arguments: st(0) and st(1) */ /* A lean, mean kernel for the fprem instructions. This relies upon the division and rounding to an integer in do_fprem giving an exact result. Because of this, rem_kernel() needs to deal only with the least significant 64 bits, the more significant bits of the result must be zero. */ static void rem_kernel(u64 st0, u64 *y, u64 st1, u64 q, int n) { u64 x; #ifdef NO_ASSEMBLER u64 work; x = st0 << n; work = (u32)st1; work *= (u32)q; x -= work; work = st1 >> 32; work *= (u32)q; x -= work << 32; work = (u32)st1; work *= q >> 32; x -= work << 32; #else int dummy; x = st0 << n; /* Do the required multiplication and subtraction in the one operation */ /* lsw x -= lsw st1 * lsw q */ asm volatile ("mull %4; subl %%eax,%0; sbbl %%edx,%1" :"=m" (((u32 *)&x)[0]), "=m" (((u32 *)&x)[1]), "=a" (dummy) :"2" (((u32 *)&st1)[0]), "m" (((u32 *)&q)[0]) :"%dx"); /* msw x -= msw st1 * lsw q */ asm volatile ("mull %3; subl %%eax,%0" :"=m" (((u32 *)&x)[1]), "=a" (dummy) :"1" (((u32 *)&st1)[1]), "m" (((u32 *)&q)[0]) :"%dx"); /* msw x -= lsw st1 * msw q */ asm volatile ("mull %3; subl %%eax,%0" :"=m" (((u32 *)&x)[1]), "=a" (dummy) :"1" (((u32 *)&st1)[0]), "m" (((u32 *)&q)[1]) :"%dx"); #endif *y = x; } /* Remainder of st(0) / st(1) */ /* This routine produces exact results, i.e. there is never any rounding or truncation, etc of the result. */ static void do_fprem(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, int round) { FPU_REG *st1_ptr = &st(1); u_char st1_tag = FPU_gettagi(current_i387_yuan_ 1); if ( !((st0_tag ^ TAG_Valid) | (st1_tag ^ TAG_Valid)) ) { FPU_REG tmp, st0, st1; u_char st0_sign, st1_sign; u_char tmptag; int tag; int old_cw; int expdif; s64 q; u16 saved_status; int cc; fprem_valid: /* Convert registers for internal use. */ st0_sign = FPU_to_exp16(current_i387_yuan_ st0_ptr, &st0); st1_sign = FPU_to_exp16(current_i387_yuan_ st1_ptr, &st1); expdif = exponent16(&st0) - exponent16(&st1); old_cw = control_word; cc = 0; /* We want the status following the denorm tests, but don't want the status changed by the arithmetic operations. */ saved_status = partial_status; control_word &= ~CW_RC; control_word |= RC_CHOP; if ( expdif < 64 ) { /* This should be the most common case */ if ( expdif > -2 ) { u_char sign = st0_sign ^ st1_sign; tag = FPU_u_div(current_i387_yuan_ &st0, &st1, &tmp, PR_64_BITS | RC_CHOP | 0x3f, sign); setsign(&tmp, sign); if ( exponent(&tmp) >= 0 ) { FPU_round_to_int(current_i387_yuan_ &tmp, tag); /* Fortunately, this can't overflow to 2^64 */ q = significand(&tmp); rem_kernel(significand(&st0), &significand(&tmp), significand(&st1), q, expdif); setexponent16(&tmp, exponent16(&st1)); } else { reg_copy(&st0, &tmp); q = 0; } if ( (round == RC_RND) && (tmp.sigh & 0xc0000000) ) { /* We may need to subtract st(1) once more, to get a result <= 1/2 of st(1). */ u64 x; expdif = exponent16(&st1) - exponent16(&tmp); if ( expdif <= 1 ) { if ( expdif == 0 ) x = significand(&st1) - significand(&tmp); else /* expdif is 1 */ x = (significand(&st1) << 1) - significand(&tmp); if ( (x < significand(&tmp)) || /* or equi-distant (from 0 & st(1)) and q is odd */ ((x == significand(&tmp)) && (q & 1) ) ) { st0_sign = ! st0_sign; significand(&tmp) = x; q++; } } } if (q & 4) cc |= SW_C0; if (q & 2) cc |= SW_C3; if (q & 1) cc |= SW_C1; } else { control_word = old_cw; setcc(0); return; } } else { /* There is a large exponent difference ( >= 64 ) */ /* To make much sense, the code in this section should be done at high precision. */ int exp_1, N; u_char sign; /* prevent overflow here */ /* N is 'a number between 32 and 63' (p26-113) */ reg_copy(&st0, &tmp); tmptag = st0_tag; N = (expdif & 0x0000001f) + 32; /* This choice gives results identical to an AMD 486 */ setexponent16(&tmp, N); exp_1 = exponent16(&st1); setexponent16(&st1, 0); expdif -= N; sign = getsign(&tmp) ^ st1_sign; tag = FPU_u_div(current_i387_yuan_ &tmp, &st1, &tmp, PR_64_BITS | RC_CHOP | 0x3f, sign); setsign(&tmp, sign); FPU_round_to_int(current_i387_yuan_ &tmp, tag); /* Fortunately, this can't overflow to 2^64 */ rem_kernel(significand(&st0), &significand(&tmp), significand(&st1), significand(&tmp), exponent(&tmp) ); setexponent16(&tmp, exp_1 + expdif); /* It is possible for the operation to be complete here. What does the IEEE standard say? The Intel 80486 manual implies that the operation will never be completed at this point, and the behaviour of a real 80486 confirms this. */ if ( !(tmp.sigh | tmp.sigl) ) { /* The result is zero */ control_word = old_cw; partial_status = saved_status; FPU_copy_to_reg0(current_i387_yuan_ &CONST_Z, TAG_Zero); setsign(&st0, st0_sign); #ifdef PECULIAR_486 setcc(SW_C2); #else setcc(0); #endif /* PECULIAR_486 */ return; } cc = SW_C2; } control_word = old_cw; partial_status = saved_status; tag = FPU_normalize_nuo(current_i387_yuan_ &tmp, 0); reg_copy(&tmp, st0_ptr); /* The only condition to be looked for is underflow, and it can occur here only if underflow is unmasked. */ if ( (exponent16(&tmp) <= EXP_UNDER) && (tag != TAG_Zero) && !(control_word & CW_Underflow) ) { setcc(cc); tag = arith_underflow(current_i387_yuan_ st0_ptr); setsign(st0_ptr, st0_sign); FPU_settag0(current_i387_yuan_ tag); return; } else if ( (exponent16(&tmp) > EXP_UNDER) || (tag == TAG_Zero) ) { stdexp(st0_ptr); setsign(st0_ptr, st0_sign); } else { tag = FPU_round(current_i387_yuan_ st0_ptr, 0, 0, FULL_PRECISION, st0_sign); } FPU_settag0(current_i387_yuan_ tag); setcc(cc); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st1_tag == TAG_Special ) st1_tag = FPU_Special(current_i387_yuan_ st1_ptr); if ( ((st0_tag == TAG_Valid) && (st1_tag == TW_Denormal)) || ((st0_tag == TW_Denormal) && (st1_tag == TAG_Valid)) || ((st0_tag == TW_Denormal) && (st1_tag == TW_Denormal)) ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; goto fprem_valid; } else if ( (st0_tag == TAG_Empty) | (st1_tag == TAG_Empty) ) { FPU_stack_underflow(current_i387_yuan_clono ); return; } else if ( st0_tag == TAG_Zero ) { if ( st1_tag == TAG_Valid ) { setcc(0); return; } else if ( st1_tag == TW_Denormal ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; setcc(0); return; } else if ( st1_tag == TAG_Zero ) { arith_invalid(current_i387_yuan_ 0); return; } /* fprem(?,0) always invalid */ else if ( st1_tag == TW_Infinity ) { setcc(0); return; } } else if ( (st0_tag == TAG_Valid) || (st0_tag == TW_Denormal) ) { if ( st1_tag == TAG_Zero ) { arith_invalid(current_i387_yuan_ 0); /* fprem(Valid,Zero) is invalid */ return; } else if ( st1_tag != TW_NaN ) { if ( ((st0_tag == TW_Denormal) || (st1_tag == TW_Denormal)) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; if ( st1_tag == TW_Infinity ) { /* fprem(Valid,Infinity) is o.k. */ setcc(0); return; } } } else if ( st0_tag == TW_Infinity ) { if ( st1_tag != TW_NaN ) { arith_invalid(current_i387_yuan_ 0); /* fprem(Infinity,?) is invalid */ return; } } /* One of the registers must contain a NaN if we got here. */ #ifdef PARANOID if ( (st0_tag != TW_NaN) && (st1_tag != TW_NaN) ) EXCEPTION(EX_INTERNAL | 0x118); #endif /* PARANOID */ real_2op_NaN(current_i387_yuan_ st1_ptr, st1_tag, 0, st1_ptr); } /* ST(1) <- ST(1) * log ST; pop ST */ static void fyl2x(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { FPU_REG *st1_ptr = &st(1), exponent; u_char st1_tag = FPU_gettagi(current_i387_yuan_ 1); u_char sign; int e, tag; clear_C1(); if ( (st0_tag == TAG_Valid) && (st1_tag == TAG_Valid) ) { both_valid: /* Both regs are Valid or Denormal */ if ( signpositive(st0_ptr) ) { if ( st0_tag == TW_Denormal ) FPU_to_exp16(current_i387_yuan_ st0_ptr, st0_ptr); else /* Convert st(0) for internal use. */ setexponent16(st0_ptr, exponent(st0_ptr)); if ( (st0_ptr->sigh == 0x80000000) && (st0_ptr->sigl == 0) ) { /* Special case. The result can be precise. */ u_char esign; e = exponent16(st0_ptr); if ( e >= 0 ) { exponent.sigh = e; esign = SIGN_POS; } else { exponent.sigh = -e; esign = SIGN_NEG; } exponent.sigl = 0; setexponent16(&exponent, 31); tag = FPU_normalize_nuo(current_i387_yuan_ &exponent, 0); stdexp(&exponent); setsign(&exponent, esign); tag = FPU_mul(current_i387_yuan_ &exponent, tag, 1, FULL_PRECISION); if ( tag >= 0 ) FPU_settagi(current_i387_yuan_ 1, tag); } else { /* The usual case */ sign = getsign(st1_ptr); if ( st1_tag == TW_Denormal ) FPU_to_exp16(current_i387_yuan_ st1_ptr, st1_ptr); else /* Convert st(1) for internal use. */ setexponent16(st1_ptr, exponent(st1_ptr)); poly_l2(current_i387_yuan_ st0_ptr, st1_ptr, sign); } } else { /* negative */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; } FPU_pop(current_i387_yuan_clono ); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st1_tag == TAG_Special ) st1_tag = FPU_Special(current_i387_yuan_ st1_ptr); if ( (st0_tag == TAG_Empty) || (st1_tag == TAG_Empty) ) { FPU_stack_underflow_pop(current_i387_yuan_ 1); return; } else if ( (st0_tag <= TW_Denormal) && (st1_tag <= TW_Denormal) ) { if ( st0_tag == TAG_Zero ) { if ( st1_tag == TAG_Zero ) { /* Both args zero is invalid */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; } else { u_char sign; sign = getsign(st1_ptr)^SIGN_NEG; if ( FPU_divide_by_zero(current_i387_yuan_ 1, sign) < 0 ) return; setsign(st1_ptr, sign); } } else if ( st1_tag == TAG_Zero ) { /* st(1) contains zero, st(0) valid <> 0 */ /* Zero is the valid answer */ sign = getsign(st1_ptr); if ( signnegative(st0_ptr) ) { /* log(negative) */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; } else if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; else { if ( exponent(st0_ptr) < 0 ) sign ^= SIGN_NEG; FPU_copy_to_reg1(current_i387_yuan_ &CONST_Z, TAG_Zero); setsign(st1_ptr, sign); } } else { /* One or both operands are denormals. */ if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; goto both_valid; } } else if ( (st0_tag == TW_NaN) || (st1_tag == TW_NaN) ) { if ( real_2op_NaN(current_i387_yuan_ st0_ptr, st0_tag, 1, st0_ptr) < 0 ) return; } /* One or both arg must be an infinity */ else if ( st0_tag == TW_Infinity ) { if ( (signnegative(st0_ptr)) || (st1_tag == TAG_Zero) ) { /* log(-infinity) or 0*log(infinity) */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; } else { u_char sign = getsign(st1_ptr); if ( (st1_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; FPU_copy_to_reg1(current_i387_yuan_ &CONST_INF, TAG_Special); setsign(st1_ptr, sign); } } /* st(1) must be infinity here */ else if ( ((st0_tag == TAG_Valid) || (st0_tag == TW_Denormal)) && ( signpositive(st0_ptr) ) ) { if ( exponent(st0_ptr) >= 0 ) { if ( (exponent(st0_ptr) == 0) && (st0_ptr->sigh == 0x80000000) && (st0_ptr->sigl == 0) ) { /* st(0) holds 1.0 */ /* infinity*log(1) */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; } /* else st(0) is positive and > 1.0 */ } else { /* st(0) is positive and < 1.0 */ if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; changesign(st1_ptr); } } else { /* st(0) must be zero or negative */ if ( st0_tag == TAG_Zero ) { /* This should be invalid, but a real 80486 is happy with it. */ #ifndef PECULIAR_486 sign = getsign(st1_ptr); if ( FPU_divide_by_zero(current_i387_yuan_ 1, sign) < 0 ) return; #endif /* PECULIAR_486 */ changesign(st1_ptr); } else if ( arith_invalid(current_i387_yuan_ 1) < 0 ) /* log(negative) */ return; } FPU_pop(current_i387_yuan_clono ); } static void fpatan(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { FPU_REG *st1_ptr = &st(1); u_char st1_tag = FPU_gettagi(current_i387_yuan_ 1); int tag; clear_C1(); if ( !((st0_tag ^ TAG_Valid) | (st1_tag ^ TAG_Valid)) ) { valid_atan: poly_atan(current_i387_yuan_ st0_ptr, st0_tag, st1_ptr, st1_tag); FPU_pop(current_i387_yuan_clono ); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st1_tag == TAG_Special ) st1_tag = FPU_Special(current_i387_yuan_ st1_ptr); if ( ((st0_tag == TAG_Valid) && (st1_tag == TW_Denormal)) || ((st0_tag == TW_Denormal) && (st1_tag == TAG_Valid)) || ((st0_tag == TW_Denormal) && (st1_tag == TW_Denormal)) ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; goto valid_atan; } else if ( (st0_tag == TAG_Empty) || (st1_tag == TAG_Empty) ) { FPU_stack_underflow_pop(current_i387_yuan_ 1); return; } else if ( (st0_tag == TW_NaN) || (st1_tag == TW_NaN) ) { if ( real_2op_NaN(current_i387_yuan_ st0_ptr, st0_tag, 1, st0_ptr) >= 0 ) FPU_pop(current_i387_yuan_clono ); return; } else if ( (st0_tag == TW_Infinity) || (st1_tag == TW_Infinity) ) { u_char sign = getsign(st1_ptr); if ( st0_tag == TW_Infinity ) { if ( st1_tag == TW_Infinity ) { if ( signpositive(st0_ptr) ) { FPU_copy_to_reg1(current_i387_yuan_ &CONST_PI4, TAG_Valid); } else { setpositive(st1_ptr); tag = FPU_u_add(current_i387_yuan_ &CONST_PI4, &CONST_PI2, st1_ptr, FULL_PRECISION, SIGN_POS, exponent(&CONST_PI4), exponent(&CONST_PI2)); if ( tag >= 0 ) FPU_settagi(current_i387_yuan_ 1, tag); } } else { if ( (st1_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; if ( signpositive(st0_ptr) ) { FPU_copy_to_reg1(current_i387_yuan_ &CONST_Z, TAG_Zero); setsign(st1_ptr, sign); /* An 80486 preserves the sign */ FPU_pop(current_i387_yuan_clono ); return; } else { FPU_copy_to_reg1(current_i387_yuan_ &CONST_PI, TAG_Valid); } } } else { /* st(1) is infinity, st(0) not infinity */ if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; FPU_copy_to_reg1(current_i387_yuan_ &CONST_PI2, TAG_Valid); } setsign(st1_ptr, sign); } else if ( st1_tag == TAG_Zero ) { /* st(0) must be valid or zero */ u_char sign = getsign(st1_ptr); if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; if ( signpositive(st0_ptr) ) { /* An 80486 preserves the sign */ FPU_pop(current_i387_yuan_clono ); return; } FPU_copy_to_reg1(current_i387_yuan_ &CONST_PI, TAG_Valid); setsign(st1_ptr, sign); } else if ( st0_tag == TAG_Zero ) { /* st(1) must be TAG_Valid here */ u_char sign = getsign(st1_ptr); if ( (st1_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; FPU_copy_to_reg1(current_i387_yuan_ &CONST_PI2, TAG_Valid); setsign(st1_ptr, sign); } #ifdef PARANOID else EXCEPTION(EX_INTERNAL | 0x125); #endif /* PARANOID */ FPU_pop(current_i387_yuan_clono ); set_precision_flag_up(current_i387_yuan_clono ); /* We do not really know if up or down */ } static void fprem(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { do_fprem(current_i387_yuan_ st0_ptr, st0_tag, RC_CHOP); } static void fprem1(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { do_fprem(current_i387_yuan_ st0_ptr, st0_tag, RC_RND); } static void fyl2xp1(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { u_char sign, sign1; FPU_REG *st1_ptr = &st(1), a, b; u_char st1_tag = FPU_gettagi(current_i387_yuan_ 1); clear_C1(); if ( !((st0_tag ^ TAG_Valid) | (st1_tag ^ TAG_Valid)) ) { valid_yl2xp1: sign = getsign(st0_ptr); sign1 = getsign(st1_ptr); FPU_to_exp16(current_i387_yuan_ st0_ptr, &a); FPU_to_exp16(current_i387_yuan_ st1_ptr, &b); if ( poly_l2p1(current_i387_yuan_ sign, sign1, &a, &b, st1_ptr) ) return; FPU_pop(current_i387_yuan_clono ); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st1_tag == TAG_Special ) st1_tag = FPU_Special(current_i387_yuan_ st1_ptr); if ( ((st0_tag == TAG_Valid) && (st1_tag == TW_Denormal)) || ((st0_tag == TW_Denormal) && (st1_tag == TAG_Valid)) || ((st0_tag == TW_Denormal) && (st1_tag == TW_Denormal)) ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; goto valid_yl2xp1; } else if ( (st0_tag == TAG_Empty) | (st1_tag == TAG_Empty) ) { FPU_stack_underflow_pop(current_i387_yuan_ 1); return; } else if ( st0_tag == TAG_Zero ) { switch ( st1_tag ) { case TW_Denormal: if ( denormal_operand(current_i387_yuan_le ) < 0 ) return; case TAG_Zero: case TAG_Valid: setsign(st0_ptr, getsign(st0_ptr) ^ getsign(st1_ptr)); FPU_copy_to_reg1(current_i387_yuan_ st0_ptr, st0_tag); break; case TW_Infinity: /* Infinity*log(1) */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; break; case TW_NaN: if ( real_2op_NaN(current_i387_yuan_ st0_ptr, st0_tag, 1, st0_ptr) < 0 ) return; break; default: #ifdef PARANOID EXCEPTION(EX_INTERNAL | 0x116); return; #endif /* PARANOID */ } } else if ( (st0_tag == TAG_Valid) || (st0_tag == TW_Denormal) ) { switch ( st1_tag ) { case TAG_Zero: if ( signnegative(st0_ptr) ) { if ( exponent(st0_ptr) >= 0 ) { /* st(0) holds <= -1.0 */ #ifdef PECULIAR_486 /* Stupid 80486 doesn't worry about log(negative). */ changesign(st1_ptr); #else if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; #endif /* PECULIAR_486 */ } else if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; else changesign(st1_ptr); } else if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; break; case TW_Infinity: if ( signnegative(st0_ptr) ) { if ( (exponent(st0_ptr) >= 0) && !((st0_ptr->sigh == 0x80000000) && (st0_ptr->sigl == 0)) ) { /* st(0) holds < -1.0 */ #ifdef PECULIAR_486 /* Stupid 80486 doesn't worry about log(negative). */ changesign(st1_ptr); #else if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; #endif /* PECULIAR_486 */ } else if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; else changesign(st1_ptr); } else if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; break; case TW_NaN: if ( real_2op_NaN(current_i387_yuan_ st0_ptr, st0_tag, 1, st0_ptr) < 0 ) return; } } else if ( st0_tag == TW_NaN ) { if ( real_2op_NaN(current_i387_yuan_ st0_ptr, st0_tag, 1, st0_ptr) < 0 ) return; } else if ( st0_tag == TW_Infinity ) { if ( st1_tag == TW_NaN ) { if ( real_2op_NaN(current_i387_yuan_ st0_ptr, st0_tag, 1, st0_ptr) < 0 ) return; } else if ( signnegative(st0_ptr) ) { #ifndef PECULIAR_486 /* This should have higher priority than denormals, but... */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) /* log(-infinity) */ return; #endif /* PECULIAR_486 */ if ( (st1_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; #ifdef PECULIAR_486 /* Denormal operands actually get higher priority */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) /* log(-infinity) */ return; #endif /* PECULIAR_486 */ } else if ( st1_tag == TAG_Zero ) { /* log(infinity) */ if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return; } /* st(1) must be valid here. */ else if ( (st1_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; /* The Manual says that log(Infinity) is invalid, but a real 80486 sensibly says that it is o.k. */ else { u_char sign = getsign(st1_ptr); FPU_copy_to_reg1(current_i387_yuan_ &CONST_INF, TAG_Special); setsign(st1_ptr, sign); } } #ifdef PARANOID else { EXCEPTION(EX_INTERNAL | 0x117); return; } #endif /* PARANOID */ FPU_pop(current_i387_yuan_clono ); return; } static void fscale(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag) { FPU_REG *st1_ptr = &st(1); u_char st1_tag = FPU_gettagi(current_i387_yuan_ 1); int old_cw = control_word; u_char sign = getsign(st0_ptr); clear_C1(); if ( !((st0_tag ^ TAG_Valid) | (st1_tag ^ TAG_Valid)) ) { s32 scale; FPU_REG tmp; /* Convert register for internal use. */ setexponent16(st0_ptr, exponent(st0_ptr)); valid_scale: if ( exponent(st1_ptr) > 30 ) { /* 2^31 is far too large, would require 2^(2^30) or 2^(-2^30) */ if ( signpositive(st1_ptr) ) { EXCEPTION(EX_Overflow); FPU_copy_to_reg0(current_i387_yuan_ &CONST_INF, TAG_Special); } else { EXCEPTION(EX_Underflow); FPU_copy_to_reg0(current_i387_yuan_ &CONST_Z, TAG_Zero); } setsign(st0_ptr, sign); return; } control_word &= ~CW_RC; control_word |= RC_CHOP; reg_copy(st1_ptr, &tmp); FPU_round_to_int(current_i387_yuan_ &tmp, st1_tag); /* This can never overflow here */ control_word = old_cw; scale = signnegative(st1_ptr) ? (0-tmp.sigl) : tmp.sigl; scale += exponent16(st0_ptr); setexponent16(st0_ptr, scale); /* Use FPU_round(current_i387_definefunyuan_void ) to properly detect under/overflow etc */ FPU_round(current_i387_yuan_ st0_ptr, 0, 0, control_word, sign); return; } if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st1_tag == TAG_Special ) st1_tag = FPU_Special(current_i387_yuan_ st1_ptr); if ( (st0_tag == TAG_Valid) || (st0_tag == TW_Denormal) ) { switch ( st1_tag ) { case TAG_Valid: /* st(0) must be a denormal */ if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; FPU_to_exp16(current_i387_yuan_ st0_ptr, st0_ptr); /* Will not be left on stack */ goto valid_scale; case TAG_Zero: if ( st0_tag == TW_Denormal ) denormal_operand(current_i387_yuan_clono ); return; case TW_Denormal: denormal_operand(current_i387_yuan_clono ); return; case TW_Infinity: if ( (st0_tag == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return; if ( signpositive(st1_ptr) ) FPU_copy_to_reg0(current_i387_yuan_ &CONST_INF, TAG_Special); else FPU_copy_to_reg0(current_i387_yuan_ &CONST_Z, TAG_Zero); setsign(st0_ptr, sign); return; case TW_NaN: real_2op_NaN(current_i387_yuan_ st1_ptr, st1_tag, 0, st0_ptr); return; } } else if ( st0_tag == TAG_Zero ) { switch ( st1_tag ) { case TAG_Valid: case TAG_Zero: return; case TW_Denormal: denormal_operand(current_i387_yuan_clono ); return; case TW_Infinity: if ( signpositive(st1_ptr) ) arith_invalid(current_i387_yuan_ 0); /* Zero scaled by +Infinity */ return; case TW_NaN: real_2op_NaN(current_i387_yuan_ st1_ptr, st1_tag, 0, st0_ptr); return; } } else if ( st0_tag == TW_Infinity ) { switch ( st1_tag ) { case TAG_Valid: case TAG_Zero: return; case TW_Denormal: denormal_operand(current_i387_yuan_clono ); return; case TW_Infinity: if ( signnegative(st1_ptr) ) arith_invalid(current_i387_yuan_ 0); /* Infinity scaled by -Infinity */ return; case TW_NaN: real_2op_NaN(current_i387_yuan_ st1_ptr, st1_tag, 0, st0_ptr); return; } } else if ( st0_tag == TW_NaN ) { if ( st1_tag != TAG_Empty ) { real_2op_NaN(current_i387_yuan_ st1_ptr, st1_tag, 0, st0_ptr); return; } } #ifdef PARANOID if ( !((st0_tag == TAG_Empty) || (st1_tag == TAG_Empty)) ) { EXCEPTION(EX_INTERNAL | 0x115); return; } #endif /* At least one of st(0), st(1) must be empty */ FPU_stack_underflow(current_i387_yuan_clono ); } /*---------------------------------------------------------------------------*/ static FUNC_ST0 const trig_table_a[] = { f2xm1, fyl2x, fptan, fpatan, fxtract, fprem1, (FUNC_ST0)fdecstp, (FUNC_ST0)fincstp }; void FPU_triga(current_i387_definefunyuan_void) { (trig_table_a[FPU_rm])(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_cc )); } static FUNC_ST0 const trig_table_b[] = { fprem, fyl2xp1, fsqrt_, fsincos, frndint_, fscale, (FUNC_ST0)fsin, fcos }; void FPU_trigb(current_i387_definefunyuan_void) { (trig_table_b[FPU_rm])(current_i387_yuan_ &st(0), FPU_gettag0(current_i387_yuan_cc )); } ================================================ FILE: Project/fpu/Source/load_store.cpp ================================================ /*---------------------------------------------------------------------------+ | load_store.c | | $Id: load_store.c,v 1.4 2002/12/12 15:28:43 cbothamy Exp $ | | | This file contains most of the code to interpret the FPU instructions | | which load and store from user memory. | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | Note: | | The file contains code which accesses user memory. | | Emulator static data may change when user memory is accessed, due to | | other processes using the emulator while swapping is in progress. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include #include "fpu_system.h" #include "exception.h" #include "fpu_emu.h" #include "status_w.h" #include "control_w.h" #define _NONE_ 0 /* st0_ptr etc not needed */ #define _REG0_ 1 /* Will be storing st(0) */ #define _PUSH_ 3 /* Need to check for space to push onto stack */ #define _null_ 4 /* Function illegal or not implemented */ #define pop_0() { FPU_settag0(current_i387_yuan_ TAG_Empty); top++; } static u_char const type_table[32] = { _PUSH_, _PUSH_, _PUSH_, _PUSH_, _null_, _null_, _null_, _null_, _REG0_, _REG0_, _REG0_, _REG0_, _REG0_, _REG0_, _REG0_, _REG0_, _NONE_, _null_, _NONE_, _PUSH_, _NONE_, _PUSH_, _null_, _PUSH_, _NONE_, _null_, _NONE_, _REG0_, _NONE_, _REG0_, _NONE_, _REG0_ }; u_char const data_sizes_16[32] = { 4, 4, 8, 2, 0, 0, 0, 0, 4, 4, 8, 2, 4, 4, 8, 2, 14, 0, 94, 10, 2, 10, 0, 8, 14, 0, 94, 10, 2, 10, 2, 8 }; u_char const data_sizes_32[32] = { 4, 4, 8, 2, 0, 0, 0, 0, 4, 4, 8, 2, 4, 4, 8, 2, 28, 0,108, 10, 2, 10, 0, 8, 28, 0,108, 10, 2, 10, 2, 8 }; int FPU_load_store(current_i387_definefunyuan_ u_char type, fpu_addr_modes addr_modes, void *data_address) { FPU_REG loaded_data; FPU_REG *st0_ptr; u_char st0_tag = TAG_Empty; /* This is just to stop a gcc warning. */ u_char loaded_tag; st0_ptr = (FPU_REG*) NULL; /* Initialized just to stop compiler warnings. */ if ( addr_modes.default_mode & PROTECTED ) { if ( addr_modes.default_mode == SEG32 ) { if ( access_limit < data_sizes_32[type] ) math_abort(current_i387_yuan_ FPU_info,SIGSEGV); } else if ( addr_modes.default_mode == PM16 ) { if ( access_limit < data_sizes_16[type] ) math_abort(current_i387_yuan_ FPU_info,SIGSEGV); } #ifdef PARANOID else EXCEPTION(EX_INTERNAL|0x140); #endif /* PARANOID */ } switch ( type_table[type] ) { case _NONE_: break; case _REG0_: st0_ptr = &st(0); /* Some of these instructions pop after storing */ st0_tag = FPU_gettag0(current_i387_yuan_clono ); break; case _PUSH_: { if ( FPU_gettagi(current_i387_yuan_ -1) != TAG_Empty ) { FPU_stack_overflow(current_i387_yuan_clono ); return 0; } top--; st0_ptr = &st(0); } break; case _null_: FPU_illegal(current_i387_yuan_clono ); return 0; #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x141); return 0; #endif /* PARANOID */ } switch ( type ) { case 000: /* fld m32real */ clear_C1(); loaded_tag = FPU_load_single(current_i387_yuan_ (float *)data_address, &loaded_data); if ( (loaded_tag == TAG_Special) && isNaN(current_i387_yuan_ &loaded_data) && (real_1op_NaN(current_i387_yuan_ &loaded_data) < 0) ) { top++; break; } FPU_copy_to_reg0(current_i387_yuan_ &loaded_data, loaded_tag); break; case 001: /* fild m32int */ clear_C1(); loaded_tag = FPU_load_int32(current_i387_yuan_ (s32 *)data_address, &loaded_data); FPU_copy_to_reg0(current_i387_yuan_ &loaded_data, loaded_tag); break; case 002: /* fld m64real */ clear_C1(); loaded_tag = FPU_load_double(current_i387_yuan_ (double *)data_address, &loaded_data); if ( (loaded_tag == TAG_Special) && isNaN(current_i387_yuan_ &loaded_data) && (real_1op_NaN(current_i387_yuan_ &loaded_data) < 0) ) { top++; break; } FPU_copy_to_reg0(current_i387_yuan_ &loaded_data, loaded_tag); break; case 003: /* fild m16int */ clear_C1(); loaded_tag = FPU_load_int16(current_i387_yuan_ (s16 *)data_address, &loaded_data); FPU_copy_to_reg0(current_i387_yuan_ &loaded_data, loaded_tag); break; case 010: /* fst m32real */ clear_C1(); FPU_store_single(current_i387_yuan_ st0_ptr, st0_tag, (float *)data_address); break; case 011: /* fist m32int */ clear_C1(); FPU_store_int32(current_i387_yuan_ st0_ptr, st0_tag, (s32 *)data_address); break; case 012: /* fst m64real */ clear_C1(); FPU_store_double(current_i387_yuan_ st0_ptr, st0_tag, (double *)data_address); break; case 013: /* fist m16int */ clear_C1(); FPU_store_int16(current_i387_yuan_ st0_ptr, st0_tag, (s16 *)data_address); break; case 014: /* fstp m32real */ clear_C1(); if ( FPU_store_single(current_i387_yuan_ st0_ptr, st0_tag, (float *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 015: /* fistp m32int */ clear_C1(); if ( FPU_store_int32(current_i387_yuan_ st0_ptr, st0_tag, (s32 *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 016: /* fstp m64real */ clear_C1(); if ( FPU_store_double(current_i387_yuan_ st0_ptr, st0_tag, (double *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 017: /* fistp m16int */ clear_C1(); if ( FPU_store_int16(current_i387_yuan_ st0_ptr, st0_tag, (s16 *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 020: /* fldenv m14/28byte */ fldenv(current_i387_yuan_ addr_modes, (u_char *)data_address); /* Ensure that the values just loaded are not changed by fix-up operations. */ return 1; case 022: /* frstor m94/108byte */ frstor(current_i387_yuan_ addr_modes, (u_char *)data_address); /* Ensure that the values just loaded are not changed by fix-up operations. */ return 1; case 023: /* fbld m80dec */ clear_C1(); loaded_tag = FPU_load_bcd(current_i387_yuan_ (u_char *)data_address); FPU_settag0(current_i387_yuan_ loaded_tag); break; case 024: /* fldcw */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, data_address, 2); FPU_get_user(control_word, (u16 *) data_address); RE_ENTRANT_CHECK_ON; if ( partial_status & ~control_word & CW_Exceptions ) partial_status |= (SW_Summary | SW_Backward); else partial_status &= ~(SW_Summary | SW_Backward); #ifdef PECULIAR_486 control_word |= 0x40; /* An 80486 appears to always set this bit */ #endif /* PECULIAR_486 */ return 1; case 025: /* fld m80real */ clear_C1(); loaded_tag = FPU_load_extended(current_i387_yuan_ (long double *)data_address, 0); FPU_settag0(current_i387_yuan_ loaded_tag); break; case 027: /* fild m64int */ clear_C1(); loaded_tag = FPU_load_int64(current_i387_yuan_ (s64 *)data_address); FPU_settag0(current_i387_yuan_ loaded_tag); break; case 030: /* fstenv m14/28byte */ fstenv(current_i387_yuan_ addr_modes, (u_char *)data_address); return 1; case 032: /* fsave */ fsave(current_i387_yuan_ addr_modes, (u_char *)data_address); return 1; case 033: /* fbstp m80dec */ clear_C1(); if ( FPU_store_bcd(current_i387_yuan_ st0_ptr, st0_tag, (u_char *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 034: /* fstcw m16int */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,data_address,2); FPU_put_user(control_word, (u16 *) data_address); RE_ENTRANT_CHECK_ON; return 1; case 035: /* fstp m80real */ clear_C1(); if ( FPU_store_extended(current_i387_yuan_ st0_ptr, st0_tag, (long double *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; case 036: /* fstsw m2byte */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,data_address,2); FPU_put_user(status_word(),(u16 *) data_address); RE_ENTRANT_CHECK_ON; return 1; case 037: /* fistp m64int */ clear_C1(); if ( FPU_store_int64(current_i387_yuan_ st0_ptr, st0_tag, (s64 *)data_address) ) pop_0(); /* pop only if the number was actually stored (see the 80486 manual p16-28) */ break; } return 0; } ================================================ FILE: Project/fpu/Source/mul_Xsig.cpp ================================================ /*---------------------------------------------------------------------------+ | mul_Xsig.S | | $Id: mul_Xsig.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Multiply a 12 byte fixed point number by another fixed point number. | | | | Copyright (C) 1992,1994,1995 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@jacobi.maths.monash.edu.au | | | | | | The result is neither rounded nor normalized, and the ls bit or so may | | be wrong. | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "poly.h" void mul32_Xsig(Xsig *x, const u32 ba) { Xsig y; u32 zl; u64 b = ba, z; z = b * x->lsw; y.lsw = (u32)(z >> 32); z = b * x->midw; y.midw = (u32)(z >> 32); zl = (u32)z; y.lsw += zl; if ( zl > y.lsw ) y.midw ++; z = b * x->msw; y.msw = (u32)(z >> 32); zl = (u32)z; y.midw += zl; if ( zl > y.midw ) y.msw ++; *x = y; } void mul64_Xsig(Xsig *x, const u64 *b) { Xsig yh, yl; yh = *x; yl = *x; mul32_Xsig(&yh, (u32)((*b) >> 32)); mul32_Xsig(&yl, (u32)(*b)); x->msw = yh.msw; x->midw = yh.midw + yl.msw; if ( yh.midw > x->midw ) x->msw ++; x->lsw = yh.lsw + yl.midw; if ( yh.lsw > x->lsw ) { x->midw ++; if ( x->midw == 0 ) x->msw ++; } } void mul_Xsig_Xsig(Xsig *x, const Xsig *b) { u32 yh; u64 y, z; y = b->lsw; y *= x->msw; yh = (u32)(y >> 32); z = b->msw; z <<= 32; z += b->midw; mul64_Xsig(x, &z); x->lsw += yh; if ( yh > x->lsw ) { x->midw ++; if ( x->midw == 0 ) x->msw ++; } } ================================================ FILE: Project/fpu/Source/poly.h ================================================ /*---------------------------------------------------------------------------+ | poly.h | | $Id: poly.h,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Header file for the FPU-emu poly*.c source files. | | | | Copyright (C) 1994,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | Declarations and definitions for functions operating on Xsig (12-byte | | extended-significand) quantities. | | | +---------------------------------------------------------------------------*/ #ifndef _POLY_H #define _POLY_H /* This 12-byte structure is used to improve the accuracy of computation of transcendental functions. Intended to be used to get results better than 8-byte computation allows. 9-byte would probably be sufficient. */ typedef struct { #ifdef EMU_BIG_ENDIAN u32 msw; u32 midw; u32 lsw; #else u32 lsw; u32 midw; u32 msw; #endif } GCC_ATTRIBUTE((packed)) Xsig; asmlinkage void mul64(u64 const *a, u64 const *b, u64 *result); asmlinkage void polynomial_Xsig(Xsig *, const u64 *x, const u64 terms[], const int n); asmlinkage void mul32_Xsig(Xsig *, const u32 mult); asmlinkage void mul64_Xsig(Xsig *, const u64 *mult); asmlinkage void mul_Xsig_Xsig(Xsig *dest, const Xsig *mult); asmlinkage void shr_Xsig(Xsig *, const int n); asmlinkage int round_Xsig(Xsig *); asmlinkage int norm_Xsig(Xsig *); asmlinkage void div_Xsig(current_i387_definefunyuan_ const Xsig *x1, const Xsig *x2, Xsig *dest); /* Macro to extract the most significant 32 bits from a 64bit quantity */ #ifdef EMU_BIG_ENDIAN #define LL_MSW(x) (((u32 *)&x)[0]) #else #define LL_MSW(x) (((u32 *)&x)[1]) #endif /* Macro to initialize an Xsig struct */ #ifdef EMU_BIG_ENDIAN #define MK_XSIG(a,b,c) { a, b, c } #else #define MK_XSIG(a,b,c) { c, b, a } #endif /* Macro to access the 8 ms bytes of an Xsig as a 64bit quantity */ #ifdef EMU_BIG_ENDIAN #define XSIG_LL(x) (*(u64 *)&x.msw) #else #define XSIG_LL(x) (*(u64 *)&x.midw) #endif /* Need to run gcc with optimizations on to get these to actually be in-line. */ /* Multiply two fixed-point 32 bit numbers, producing a 32 bit result. The answer is the ms word of the product. */ BX_C_INLINE u32 mul_32_32(const u32 arg1, const u32 arg2) { #ifdef NO_ASSEMBLER return (u32)((((u64)arg1) * arg2) >> 32); #else /* Some versions of gcc make it difficult to stop eax from being clobbered. Merely specifying that it is used doesn't work... */ int retval; asm volatile ("mull %2; movl %%edx,%%eax" \ :"=a" (retval) \ :"0" (arg1), "g" (arg2) \ :"dx"); return retval; #endif } /* Add the 12 byte Xsig x2 to Xsig dest, with no checks for overflow. */ BX_C_INLINE void add_Xsig_Xsig(Xsig *dest, const Xsig *x2) { #ifdef NO_ASSEMBLER dest->lsw += x2->lsw; if ( dest->lsw < x2->lsw ) { dest->midw ++; if ( dest->midw == 0 ) dest->msw ++; } dest->midw += x2->midw; if ( dest->midw < x2->midw ) { dest->msw ++; } dest->msw += x2->msw; #else asm volatile ("movl %1,%%edi; movl %2,%%esi;" "movl (%%esi),%%eax; addl %%eax,(%%edi);" "movl 4(%%esi),%%eax; adcl %%eax,4(%%edi);" "movl 8(%%esi),%%eax; adcl %%eax,8(%%edi);" :"=g" (*dest):"g" (dest), "g" (x2) :"ax","si","di"); #endif } /* Add the 12 byte Xsig x2 to Xsig dest, adjust exp if overflow occurs. */ BX_C_INLINE void add_two_Xsig(Xsig *dest, const Xsig *x2, s32 *exp) { #ifdef NO_ASSEMBLER int ovfl = 0; dest->lsw += x2->lsw; if ( dest->lsw < x2->lsw ) { dest->midw ++; if ( dest->midw == 0 ) { dest->msw ++; if ( dest->msw == 0 ) ovfl = 1; } } dest->midw += x2->midw; if ( dest->midw < x2->midw ) { dest->msw ++; if ( dest->msw == 0 ) ovfl = 1; } dest->msw += x2->msw; if ( dest->msw < x2->msw ) ovfl = 1; if ( ovfl ) { (*exp) ++; dest->lsw >>= 1; if ( dest->midw & 1 ) dest->lsw |= 0x80000000; dest->midw >>= 1; if ( dest->msw & 1 ) dest->midw |= 0x80000000; dest->msw >>= 1; dest->msw |= 0x80000000; } #else /* Note: the constraints in the asm statement didn't always work properly with gcc 2.5.8. Changing from using edi to using ecx got around the problem, but keep fingers crossed! */ asm volatile ("movl %2,%%ecx; movl %3,%%esi;" "movl (%%esi),%%eax; addl %%eax,(%%ecx);" "movl 4(%%esi),%%eax; adcl %%eax,4(%%ecx);" "movl 8(%%esi),%%eax; adcl %%eax,8(%%ecx);" "jnc 0f;" "rcrl 8(%%ecx); rcrl 4(%%ecx); rcrl (%%ecx)" "movl %4,%%ecx; incl (%%ecx)" "movl $1,%%eax; jmp 1f;" "0: xorl %%eax,%%eax;" "1:" :"=g" (*exp), "=g" (*dest) :"g" (dest), "g" (x2), "g" (exp) :"cx","si","ax"); #endif } /* Negate the 12 byte Xsig */ BX_C_INLINE void negate_Xsig(Xsig *x) { #ifdef NO_ASSEMBLER x->lsw = ~x->lsw; x->midw = ~x->midw; x->msw = ~x->msw; x->lsw ++; if ( x->lsw == 0 ) { x->midw ++; if ( x->midw == 0 ) x->msw ++; } #else /* Negate (subtract from 1.0) the 12 byte Xsig */ /* This is faster in a loop on my 386 than using the "neg" instruction. */ asm volatile("movl %1,%%esi; " "xorl %%ecx,%%ecx; " "movl %%ecx,%%eax; subl (%%esi),%%eax; movl %%eax,(%%esi); " "movl %%ecx,%%eax; sbbl 4(%%esi),%%eax; movl %%eax,4(%%esi); " "movl %%ecx,%%eax; sbbl 8(%%esi),%%eax; movl %%eax,8(%%esi); " :"=g" (*x):"g" (x):"si","ax","cx"); #endif } #endif /* _POLY_H */ ================================================ FILE: Project/fpu/Source/poly_2xm1.cpp ================================================ /*---------------------------------------------------------------------------+ | poly_2xm1.c | | $Id: poly_2xm1.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Function to compute 2^x-1 by a polynomial approximation. | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "fpu_system.h" #include "control_w.h" #include "poly.h" #define HIPOWER 11 static const u64 lterms[HIPOWER] = { BX_CONST64(0x0000000000000000), /* This term done separately as 12 bytes */ BX_CONST64(0xf5fdeffc162c7543), BX_CONST64(0x1c6b08d704a0bfa6), BX_CONST64(0x0276556df749cc21), BX_CONST64(0x002bb0ffcf14f6b8), BX_CONST64(0x0002861225ef751c), BX_CONST64(0x00001ffcbfcd5422), BX_CONST64(0x00000162c005d5f1), BX_CONST64(0x0000000da96ccb1b), BX_CONST64(0x0000000078d1b897), BX_CONST64(0x000000000422b029) }; static const Xsig hiterm = MK_XSIG(0xb17217f7, 0xd1cf79ab, 0xc8a39194); /* Four slices: 0.0 : 0.25 : 0.50 : 0.75 : 1.0, These numbers are 2^(1/4), 2^(1/2), and 2^(3/4) */ static const Xsig shiftterm0 = MK_XSIG(0, 0, 0); static const Xsig shiftterm1 = MK_XSIG(0x9837f051, 0x8db8a96f, 0x46ad2318); static const Xsig shiftterm2 = MK_XSIG(0xb504f333, 0xf9de6484, 0x597d89b3); static const Xsig shiftterm3 = MK_XSIG(0xd744fcca, 0xd69d6af4, 0x39a68bb9); static const Xsig *shiftterm[] = { &shiftterm0, &shiftterm1, &shiftterm2, &shiftterm3 }; /*--- poly_2xm1(current_i387_definefunyuan_void ) -----------------------------------------------------------+ | Requires st(0) which is TAG_Valid and < 1. | +---------------------------------------------------------------------------*/ int poly_2xm1(current_i387_definefunyuan_ u_char sign, FPU_REG *arg, FPU_REG *result) { s32 exponent, shift; u64 Xll; Xsig accumulator, Denom, argSignif; u_char tag; exponent = exponent16(arg); #ifdef PARANOID if ( exponent >= 0 ) /* Don't want a |number| >= 1.0 */ { /* Number negative, too large, or not Valid. */ EXCEPTION(EX_INTERNAL|0x127); return 1; } #endif /* PARANOID */ argSignif.lsw = 0; XSIG_LL(argSignif) = Xll = significand(arg); if ( exponent == -1 ) { shift = (argSignif.msw & 0x40000000) ? 3 : 2; /* subtract 0.5 or 0.75 */ exponent -= 2; XSIG_LL(argSignif) <<= 2; Xll <<= 2; } else if ( exponent == -2 ) { shift = 1; /* subtract 0.25 */ exponent--; XSIG_LL(argSignif) <<= 1; Xll <<= 1; } else shift = 0; if ( exponent < -2 ) { /* Shift the argument right by the required places. */ if ( FPU_shrx(current_i387_yuan_ &Xll, -2-exponent) >= 0x80000000U ) Xll++; /* round up */ } accumulator.lsw = accumulator.midw = accumulator.msw = 0; polynomial_Xsig(&accumulator, &Xll, lterms, HIPOWER-1); mul_Xsig_Xsig(&accumulator, &argSignif); shr_Xsig(&accumulator, 3); mul_Xsig_Xsig(&argSignif, &hiterm); /* The leading term */ add_two_Xsig(&accumulator, &argSignif, &exponent); if ( shift ) { /* The argument is large, use the identity: f(x+a) = f(a) * (f(x) + 1) - 1; */ shr_Xsig(&accumulator, - exponent); accumulator.msw |= 0x80000000; /* add 1.0 */ mul_Xsig_Xsig(&accumulator, shiftterm[shift]); accumulator.msw &= 0x3fffffff; /* subtract 1.0 */ exponent = 1; } if ( sign != SIGN_POS ) { /* The argument is negative, use the identity: f(-x) = -f(x) / (1 + f(x)) */ Denom.lsw = accumulator.lsw; XSIG_LL(Denom) = XSIG_LL(accumulator); if ( exponent < 0 ) shr_Xsig(&Denom, - exponent); else if ( exponent > 0 ) { /* exponent must be 1 here */ XSIG_LL(Denom) <<= 1; if ( Denom.lsw & 0x80000000 ) XSIG_LL(Denom) |= 1; (Denom.lsw) <<= 1; } Denom.msw |= 0x80000000; /* add 1.0 */ div_Xsig(current_i387_yuan_ &accumulator, &Denom, &accumulator); } /* Convert to 64 bit signed-compatible */ exponent += round_Xsig(&accumulator); result = &st(0); significand(result) = XSIG_LL(accumulator); setexponent16(result, exponent); tag = FPU_round(current_i387_yuan_ result, 1, 0, FULL_PRECISION, sign); setsign(result, sign); FPU_settag0(current_i387_yuan_ tag); return 0; } ================================================ FILE: Project/fpu/Source/poly_atan.cpp ================================================ /*---------------------------------------------------------------------------+ | poly_atan.c | | $Id: poly_atan.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Compute the arctan of a FPU_REG, using a polynomial approximation. | | | | Copyright (C) 1992,1993,1994,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "fpu_system.h" #include "status_w.h" #include "control_w.h" #include "poly.h" #define HIPOWERon 6 /* odd poly, negative terms */ static const u64 oddnegterms[HIPOWERon] = { BX_CONST64(0x0000000000000000), /* Dummy (not for - 1.0) */ BX_CONST64(0x015328437f756467), BX_CONST64(0x0005dda27b73dec6), BX_CONST64(0x0000226bf2bfb91a), BX_CONST64(0x000000ccc439c5f7), BX_CONST64(0x0000000355438407) } ; #define HIPOWERop 6 /* odd poly, positive terms */ static const u64 oddplterms[HIPOWERop] = { /* BX_CONST64(0xaaaaaaaaaaaaaaab), transferred to fixedpterm[] */ BX_CONST64(0x0db55a71875c9ac2), BX_CONST64(0x0029fce2d67880b0), BX_CONST64(0x0000dfd3908b4596), BX_CONST64(0x00000550fd61dab4), BX_CONST64(0x0000001c9422b3f9), BX_CONST64(0x000000003e3301e1) }; static const u64 denomterm = BX_CONST64(0xebd9b842c5c53a0e); static const Xsig fixedpterm = MK_XSIG(0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa); static const Xsig pi_signif = MK_XSIG(0xc90fdaa2, 0x2168c234, 0xc4c6628b); /*--- poly_atan(current_i387_definefunyuan_void ) -----------------------------------------------------------+ | | +---------------------------------------------------------------------------*/ void poly_atan(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, FPU_REG *st1_ptr, u_char st1_tag) { u_char transformed, inverted, sign1, sign2; s32 exponent; s32 dummy_exp; Xsig accumulator, Numer, Denom, accumulatore, argSignif, argSq, argSqSq; u_char tag; sign1 = getsign(st0_ptr); sign2 = getsign(st1_ptr); if ( st0_tag == TAG_Valid ) { exponent = exponent(st0_ptr); } else { /* This gives non-compatible stack contents... */ FPU_to_exp16(current_i387_yuan_ st0_ptr, st0_ptr); exponent = exponent16(st0_ptr); } if ( st1_tag == TAG_Valid ) { exponent -= exponent(st1_ptr); } else { /* This gives non-compatible stack contents... */ FPU_to_exp16(current_i387_yuan_ st1_ptr, st1_ptr); exponent -= exponent16(st1_ptr); } if ( (exponent < 0) || ((exponent == 0) && ((st0_ptr->sigh < st1_ptr->sigh) || ((st0_ptr->sigh == st1_ptr->sigh) && (st0_ptr->sigl < st1_ptr->sigl))) ) ) { inverted = 1; Numer.lsw = Denom.lsw = 0; XSIG_LL(Numer) = significand(st0_ptr); XSIG_LL(Denom) = significand(st1_ptr); } else { inverted = 0; exponent = -exponent; Numer.lsw = Denom.lsw = 0; XSIG_LL(Numer) = significand(st1_ptr); XSIG_LL(Denom) = significand(st0_ptr); } div_Xsig(current_i387_yuan_ &Numer, &Denom, &argSignif); exponent += norm_Xsig(&argSignif); if ( (exponent >= -1) || ((exponent == -2) && (argSignif.msw > 0xd413ccd0)) ) { /* The argument is greater than sqrt(2)-1 (=0.414213562...) */ /* Convert the argument by an identity for atan */ transformed = 1; if ( exponent >= 0 ) { #ifdef PARANOID if ( !( (exponent == 0) && (argSignif.lsw == 0) && (argSignif.midw == 0) && (argSignif.msw == 0x80000000) ) ) { EXCEPTION(EX_INTERNAL|0x104); /* There must be a logic error */ return; } #endif /* PARANOID */ argSignif.msw = 0; /* Make the transformed arg -> 0.0 */ } else { Numer.lsw = Denom.lsw = argSignif.lsw; XSIG_LL(Numer) = XSIG_LL(Denom) = XSIG_LL(argSignif); if ( exponent < -1 ) shr_Xsig(&Numer, -1-exponent); negate_Xsig(&Numer); shr_Xsig(&Denom, -exponent); Denom.msw |= 0x80000000; div_Xsig(current_i387_yuan_ &Numer, &Denom, &argSignif); exponent = -1 + norm_Xsig(&argSignif); } } else { transformed = 0; } argSq.lsw = argSignif.lsw; argSq.midw = argSignif.midw; argSq.msw = argSignif.msw; mul_Xsig_Xsig(&argSq, &argSq); argSqSq.lsw = argSq.lsw; argSqSq.midw = argSq.midw; argSqSq.msw = argSq.msw; mul_Xsig_Xsig(&argSqSq, &argSqSq); accumulatore.lsw = argSq.lsw; XSIG_LL(accumulatore) = XSIG_LL(argSq); shr_Xsig(&argSq, 2*(-1-exponent-1)); shr_Xsig(&argSqSq, 4*(-1-exponent-1)); /* Now have argSq etc with binary point at the left .1xxxxxxxx */ /* Do the basic fixed point polynomial evaluation */ accumulator.msw = accumulator.midw = accumulator.lsw = 0; polynomial_Xsig(&accumulator, &XSIG_LL(argSqSq), oddplterms, HIPOWERop-1); mul64_Xsig(&accumulator, &XSIG_LL(argSq)); negate_Xsig(&accumulator); polynomial_Xsig(&accumulator, &XSIG_LL(argSqSq), oddnegterms, HIPOWERon-1); negate_Xsig(&accumulator); dummy_exp = 0; add_two_Xsig(&accumulator, &fixedpterm, &dummy_exp); mul64_Xsig(&accumulatore, &denomterm); shr_Xsig(&accumulatore, 1 + 2*(-1-exponent)); accumulatore.msw |= 0x80000000; div_Xsig(current_i387_yuan_ &accumulator, &accumulatore, &accumulator); mul_Xsig_Xsig(&accumulator, &argSignif); mul_Xsig_Xsig(&accumulator, &argSq); shr_Xsig(&accumulator, 3); negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &argSignif); if ( transformed ) { /* compute pi/4 - accumulator */ shr_Xsig(&accumulator, -1-exponent); negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &pi_signif); exponent = -1; } if ( inverted ) { /* compute pi/2 - accumulator */ shr_Xsig(&accumulator, -exponent); negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &pi_signif); exponent = 0; } if ( sign1 ) { /* compute pi - accumulator */ shr_Xsig(&accumulator, 1 - exponent); negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &pi_signif); exponent = 1; } exponent += round_Xsig(&accumulator); significand(st1_ptr) = XSIG_LL(accumulator); setexponent16(st1_ptr, exponent); tag = FPU_round(current_i387_yuan_ st1_ptr, 1, 0, FULL_PRECISION, sign2); FPU_settagi(current_i387_yuan_ 1, tag); set_precision_flag_up(current_i387_yuan_clono ); /* We do not really know if up or down, use this as the default. */ } ================================================ FILE: Project/fpu/Source/poly_l2.cpp ================================================ /*---------------------------------------------------------------------------+ | poly_l2.c | | $Id: poly_l2.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Compute the base 2 log of a FPU_REG, using a polynomial approximation. | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "fpu_system.h" #include "control_w.h" #include "poly.h" static void log2_kernel(current_i387_definefunyuan_ FPU_REG const *arg, u_char argsign, Xsig *accum_result, s32 *expon); /*--- poly_l2(current_i387_definefunyuan_void ) -------------------------------------------------------------+ | Base 2 logarithm by a polynomial approximation. | +---------------------------------------------------------------------------*/ void poly_l2(current_i387_definefunyuan_ FPU_REG *st0_ptr, FPU_REG *st1_ptr, u_char st1_sign) { s32 exponent, expon, expon_expon; Xsig accumulator, expon_accum, yaccum; u_char sign, argsign; FPU_REG x; int tag; exponent = exponent16(st0_ptr); /* From st0_ptr, make a number > sqrt(2)/2 and < sqrt(2) */ if ( st0_ptr->sigh > (unsigned)0xb504f334 ) { /* Treat as sqrt(2)/2 < st0_ptr < 1 */ significand(&x) = (0- significand(st0_ptr)); setexponent16(&x, -1); exponent++; argsign = SIGN_NEG; } else { /* Treat as 1 <= st0_ptr < sqrt(2) */ x.sigh = st0_ptr->sigh - 0x80000000; x.sigl = st0_ptr->sigl; setexponent16(&x, 0); argsign = SIGN_POS; } tag = FPU_normalize_nuo(current_i387_yuan_ &x, 0); if ( tag == TAG_Zero ) { expon = 0; accumulator.msw = accumulator.midw = accumulator.lsw = 0; } else { log2_kernel(current_i387_yuan_ &x, argsign, &accumulator, &expon); } if ( exponent < 0 ) { sign = SIGN_NEG; exponent = -exponent; } else sign = SIGN_POS; expon_accum.msw = exponent; expon_accum.midw = expon_accum.lsw = 0; if ( exponent ) { expon_expon = 31 + norm_Xsig(&expon_accum); shr_Xsig(&accumulator, expon_expon - expon); if ( sign ^ argsign ) negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &expon_accum); } else { expon_expon = expon; sign = argsign; } yaccum.lsw = 0; XSIG_LL(yaccum) = significand(st1_ptr); mul_Xsig_Xsig(&accumulator, &yaccum); expon_expon += round_Xsig(&accumulator); if ( accumulator.msw == 0 ) { FPU_copy_to_reg1(current_i387_yuan_ &CONST_Z, TAG_Zero); return; } significand(st1_ptr) = XSIG_LL(accumulator); setexponent16(st1_ptr, expon_expon + exponent16(st1_ptr) + 1); tag = FPU_round(current_i387_yuan_ st1_ptr, 1, 0, FULL_PRECISION, sign ^ st1_sign); FPU_settagi(current_i387_yuan_ 1, tag); set_precision_flag_up(current_i387_yuan_clono ); /* 80486 appears to always do this */ return; } /*--- poly_l2p1(current_i387_definefunyuan_void ) -----------------------------------------------------------+ | Base 2 logarithm by a polynomial approximation. | | log2(x+1) | +---------------------------------------------------------------------------*/ int poly_l2p1(current_i387_definefunyuan_ u_char sign0, u_char sign1, FPU_REG *st0_ptr, FPU_REG *st1_ptr, FPU_REG *dest) { u_char tag; s32 exponent; Xsig accumulator, yaccum; if ( exponent16(st0_ptr) < 0 ) { log2_kernel(current_i387_yuan_ st0_ptr, sign0, &accumulator, &exponent); yaccum.lsw = 0; XSIG_LL(yaccum) = significand(st1_ptr); mul_Xsig_Xsig(&accumulator, &yaccum); exponent += round_Xsig(&accumulator); exponent += exponent16(st1_ptr) + 1; if ( exponent < EXP_WAY_UNDER ) exponent = EXP_WAY_UNDER; significand(dest) = XSIG_LL(accumulator); setexponent16(dest, exponent); tag = FPU_round(current_i387_yuan_ dest, 1, 0, FULL_PRECISION, sign0 ^ sign1); FPU_settagi(current_i387_yuan_ 1, tag); if ( tag == TAG_Valid ) set_precision_flag_up(current_i387_yuan_clono ); /* 80486 appears to always do this */ } else { /* The magnitude of st0_ptr is far too large. */ if ( sign0 != SIGN_POS ) { /* Trying to get the log of a negative number. */ #ifdef PECULIAR_486 /* Stupid 80486 doesn't worry about log(negative). */ changesign(st1_ptr); #else if ( arith_invalid(current_i387_yuan_ 1) < 0 ) return 1; #endif /* PECULIAR_486 */ } /* 80486 appears to do this */ if ( sign0 == SIGN_NEG ) set_precision_flag_down(current_i387_yuan_clono ); else set_precision_flag_up(current_i387_yuan_clono ); } if ( exponent(dest) <= EXP_UNDER ) EXCEPTION(EX_Underflow); return 0; } #undef HIPOWER #define HIPOWER 10 static const u64 logterms[HIPOWER] = { BX_CONST64(0x2a8eca5705fc2ef0), BX_CONST64(0xf6384ee1d01febce), BX_CONST64(0x093bb62877cdf642), BX_CONST64(0x006985d8a9ec439b), BX_CONST64(0x0005212c4f55a9c8), BX_CONST64(0x00004326a16927f0), BX_CONST64(0x0000038d1d80a0e7), BX_CONST64(0x0000003141cc80c6), BX_CONST64(0x00000002b1668c9f), BX_CONST64(0x000000002c7a46aa) }; static const u32 leadterm = 0xb8000000; /*--- log2_kernel() ---------------------------------------------------------+ | Base 2 logarithm by a polynomial approximation. | | log2(x+1) | +---------------------------------------------------------------------------*/ static void log2_kernel(current_i387_definefunyuan_ FPU_REG const *arg, u_char argsign, Xsig *accum_result, s32 *expon) { s32 exponent, adj; u64 Xsq; Xsig accumulator, Numer, Denom, argSignif, arg_signif; exponent = exponent16(arg); Numer.lsw = Denom.lsw = 0; XSIG_LL(Numer) = XSIG_LL(Denom) = significand(arg); if ( argsign == SIGN_POS ) { shr_Xsig(&Denom, 2 - (1 + exponent)); Denom.msw |= 0x80000000; div_Xsig(current_i387_yuan_ &Numer, &Denom, &argSignif); } else { shr_Xsig(&Denom, 1 - (1 + exponent)); negate_Xsig(&Denom); if ( Denom.msw & 0x80000000 ) { div_Xsig(current_i387_yuan_ &Numer, &Denom, &argSignif); exponent ++; } else { /* Denom must be 1.0 */ argSignif.lsw = Numer.lsw; argSignif.midw = Numer.midw; argSignif.msw = Numer.msw; } } #ifndef PECULIAR_486 /* Should check here that |local_arg| is within the valid range */ if ( exponent >= -2 ) { if ( (exponent > -2) || (argSignif.msw > (unsigned)0xafb0ccc0) ) { /* The argument is too large */ } } #endif /* PECULIAR_486 */ arg_signif.lsw = argSignif.lsw; XSIG_LL(arg_signif) = XSIG_LL(argSignif); adj = norm_Xsig(&argSignif); accumulator.lsw = argSignif.lsw; XSIG_LL(accumulator) = XSIG_LL(argSignif); mul_Xsig_Xsig(&accumulator, &accumulator); shr_Xsig(&accumulator, 2*(-1 - (1 + exponent + adj))); Xsq = XSIG_LL(accumulator); if ( accumulator.lsw & 0x80000000 ) Xsq++; accumulator.msw = accumulator.midw = accumulator.lsw = 0; /* Do the basic fixed point polynomial evaluation */ polynomial_Xsig(&accumulator, &Xsq, logterms, HIPOWER-1); mul_Xsig_Xsig(&accumulator, &argSignif); shr_Xsig(&accumulator, 6 - adj); mul32_Xsig(&arg_signif, leadterm); add_two_Xsig(&accumulator, &arg_signif, &exponent); *expon = exponent + 1; accum_result->lsw = accumulator.lsw; accum_result->midw = accumulator.midw; accum_result->msw = accumulator.msw; } ================================================ FILE: Project/fpu/Source/poly_sin.cpp ================================================ /*---------------------------------------------------------------------------+ | poly_sin.c | | $Id: poly_sin.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Computation of an approximation of the sin function and the cosine | | function by a polynomial. | | | | Copyright (C) 1992,1993,1994,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "fpu_system.h" #include "control_w.h" #include "poly.h" #define N_COEFF_P 4 #define N_COEFF_N 4 static const u64 pos_terms_l[N_COEFF_P] = { BX_CONST64(0xaaaaaaaaaaaaaaab), BX_CONST64(0x00d00d00d00cf906), BX_CONST64(0x000006b99159a8bb), BX_CONST64(0x000000000d7392e6) }; static const u64 neg_terms_l[N_COEFF_N] = { BX_CONST64(0x2222222222222167), BX_CONST64(0x0002e3bc74aab624), BX_CONST64(0x0000000b09229062), BX_CONST64(0x00000000000c7973) }; #define N_COEFF_PH 4 #define N_COEFF_NH 4 static const u64 pos_terms_h[N_COEFF_PH] = { BX_CONST64(0x0000000000000000), BX_CONST64(0x05b05b05b05b0406), BX_CONST64(0x000049f93edd91a9), BX_CONST64(0x00000000c9c9ed62) }; static const u64 neg_terms_h[N_COEFF_NH] = { BX_CONST64(0xaaaaaaaaaaaaaa98), BX_CONST64(0x001a01a01a019064), BX_CONST64(0x0000008f76c68a77), BX_CONST64(0x0000000000d58f5e) }; /*--- poly_sine(current_i387_definefunyuan_void ) -----------------------------------------------------------+ | | +---------------------------------------------------------------------------*/ void poly_sine(current_i387_definefunyuan_ FPU_REG *st0_ptr) { int exponent, echange; Xsig accumulator, argSqrd, argTo4; s32 fix_up, adj; u64 fixed_arg; FPU_REG result; exponent = exponent(st0_ptr); accumulator.lsw = accumulator.midw = accumulator.msw = 0; /* Split into two ranges, for arguments below and above 1.0 */ /* The boundary between upper and lower is approx 0.88309101259 */ if ( (exponent < -1) || ((exponent == -1) && (st0_ptr->sigh <= 0xe21240aa)) ) { /* The argument is <= 0.88309101259 */ argSqrd.msw = st0_ptr->sigh; argSqrd.midw = st0_ptr->sigl; argSqrd.lsw = 0; mul64_Xsig(&argSqrd, &significand(st0_ptr)); shr_Xsig(&argSqrd, 2*(-1-exponent)); argTo4.msw = argSqrd.msw; argTo4.midw = argSqrd.midw; argTo4.lsw = argSqrd.lsw; mul_Xsig_Xsig(&argTo4, &argTo4); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), neg_terms_l, N_COEFF_N-1); mul_Xsig_Xsig(&accumulator, &argSqrd); negate_Xsig(&accumulator); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), pos_terms_l, N_COEFF_P-1); shr_Xsig(&accumulator, 2); /* Divide by four */ accumulator.msw |= 0x80000000; /* Add 1.0 */ mul64_Xsig(&accumulator, &significand(st0_ptr)); mul64_Xsig(&accumulator, &significand(st0_ptr)); mul64_Xsig(&accumulator, &significand(st0_ptr)); /* Divide by four, FPU_REG compatible, etc */ exponent = 3*exponent; /* The minimum exponent difference is 3 */ shr_Xsig(&accumulator, exponent(st0_ptr) - exponent); negate_Xsig(&accumulator); XSIG_LL(accumulator) += significand(st0_ptr); echange = round_Xsig(&accumulator); setexponentpos(&result, exponent(st0_ptr) + echange); } else { /* The argument is > 0.88309101259 */ /* We use sin(st(0)) = cos(pi/2-st(0)) */ fixed_arg = significand(st0_ptr); if ( exponent == 0 ) { /* The argument is >= 1.0 */ /* Put the binary point at the left. */ fixed_arg <<= 1; } /* pi/2 in hex is: 1.921fb54442d18469 898CC51701B839A2 52049C1 */ fixed_arg = BX_CONST64(0x921fb54442d18469) - fixed_arg; /* There is a special case which arises due to rounding, to fix here. */ if ( fixed_arg == BX_CONST64(0xffffffffffffffff)) fixed_arg = 0; XSIG_LL(argSqrd) = fixed_arg; argSqrd.lsw = 0; mul64_Xsig(&argSqrd, &fixed_arg); XSIG_LL(argTo4) = XSIG_LL(argSqrd); argTo4.lsw = argSqrd.lsw; mul_Xsig_Xsig(&argTo4, &argTo4); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), neg_terms_h, N_COEFF_NH-1); mul_Xsig_Xsig(&accumulator, &argSqrd); negate_Xsig(&accumulator); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), pos_terms_h, N_COEFF_PH-1); negate_Xsig(&accumulator); mul64_Xsig(&accumulator, &fixed_arg); mul64_Xsig(&accumulator, &fixed_arg); shr_Xsig(&accumulator, 3); negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &argSqrd); shr_Xsig(&accumulator, 1); accumulator.lsw |= 1; /* A zero accumulator here would cause problems */ negate_Xsig(&accumulator); /* The basic computation is complete. Now fix the answer to compensate for the error due to the approximation used for pi/2 */ /* This has an exponent of -65 */ fix_up = 0x898cc517; /* The fix-up needs to be improved for larger args */ if ( argSqrd.msw & 0xffc00000 ) { /* Get about 32 bit precision in these: */ fix_up -= mul_32_32(0x898cc517, argSqrd.msw) / 6; } fix_up = mul_32_32(fix_up, LL_MSW(fixed_arg)); adj = accumulator.lsw; /* temp save */ accumulator.lsw -= fix_up; if ( accumulator.lsw > (u32)adj ) XSIG_LL(accumulator) --; echange = round_Xsig(&accumulator); setexponentpos(&result, echange - 1); } significand(&result) = XSIG_LL(accumulator); setsign(&result, getsign(st0_ptr)); FPU_copy_to_reg0(current_i387_yuan_ &result, TAG_Valid); #ifdef PARANOID if ( (exponent(&result) >= 0) && (significand(&result) > BX_CONST64(0x8000000000000000)) ) { EXCEPTION(EX_INTERNAL|0x150); } #endif /* PARANOID */ } /*--- poly_cos(current_i387_definefunyuan_void ) ------------------------------------------------------------+ | | +---------------------------------------------------------------------------*/ void poly_cos(current_i387_definefunyuan_ FPU_REG *st0_ptr) { FPU_REG result; s32 exponent, exp2, echange; Xsig accumulator, argSqrd, fix_up, argTo4; u64 fixed_arg; #ifdef PARANOID if ( (exponent(st0_ptr) > 0) || ((exponent(st0_ptr) == 0) && (significand(st0_ptr) > BX_CONST64(0xc90fdaa22168c234))) ) { EXCEPTION(EX_Invalid); FPU_copy_to_reg0(current_i387_yuan_ &CONST_QNaN, TAG_Special); return; } #endif /* PARANOID */ exponent = exponent(st0_ptr); accumulator.lsw = accumulator.midw = accumulator.msw = 0; if ( (exponent < -1) || ((exponent == -1) && (st0_ptr->sigh <= 0xb00d6f54)) ) { /* arg is < 0.687705 */ argSqrd.msw = st0_ptr->sigh; argSqrd.midw = st0_ptr->sigl; argSqrd.lsw = 0; mul64_Xsig(&argSqrd, &significand(st0_ptr)); if ( exponent < -1 ) { /* shift the argument right by the required places */ shr_Xsig(&argSqrd, 2*(-1-exponent)); } argTo4.msw = argSqrd.msw; argTo4.midw = argSqrd.midw; argTo4.lsw = argSqrd.lsw; mul_Xsig_Xsig(&argTo4, &argTo4); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), neg_terms_h, N_COEFF_NH-1); mul_Xsig_Xsig(&accumulator, &argSqrd); negate_Xsig(&accumulator); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), pos_terms_h, N_COEFF_PH-1); negate_Xsig(&accumulator); mul64_Xsig(&accumulator, &significand(st0_ptr)); mul64_Xsig(&accumulator, &significand(st0_ptr)); shr_Xsig(&accumulator, -2*(1+exponent)); shr_Xsig(&accumulator, 3); negate_Xsig(&accumulator); add_Xsig_Xsig(&accumulator, &argSqrd); shr_Xsig(&accumulator, 1); /* It doesn't matter if accumulator is all zero here, the following code will work ok */ negate_Xsig(&accumulator); if ( accumulator.lsw & 0x80000000 ) XSIG_LL(accumulator) ++; if ( accumulator.msw == 0 ) { /* The result is 1.0 */ FPU_copy_to_reg0(current_i387_yuan_ &CONST_1, TAG_Valid); return; } else { significand(&result) = XSIG_LL(accumulator); /* will be a valid positive nr with expon = -1 */ setexponentpos(&result, -1); } } else { fixed_arg = significand(st0_ptr); if ( exponent == 0 ) { /* The argument is >= 1.0 */ /* Put the binary point at the left. */ fixed_arg <<= 1; } /* pi/2 in hex is: 1.921fb54442d18469 898CC51701B839A2 52049C1 */ fixed_arg = BX_CONST64(0x921fb54442d18469) - fixed_arg; /* There is a special case which arises due to rounding, to fix here. */ if ( fixed_arg == BX_CONST64(0xffffffffffffffff)) fixed_arg = 0; exponent = -1; exp2 = -1; /* A shift is needed here only for a narrow range of arguments, i.e. for fixed_arg approx 2^-32, but we pick up more... */ if ( !(LL_MSW(fixed_arg) & 0xffff0000) ) { fixed_arg <<= 16; exponent -= 16; exp2 -= 16; } XSIG_LL(argSqrd) = fixed_arg; argSqrd.lsw = 0; mul64_Xsig(&argSqrd, &fixed_arg); if ( exponent < -1 ) { /* shift the argument right by the required places */ shr_Xsig(&argSqrd, 2*(-1-exponent)); } argTo4.msw = argSqrd.msw; argTo4.midw = argSqrd.midw; argTo4.lsw = argSqrd.lsw; mul_Xsig_Xsig(&argTo4, &argTo4); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), neg_terms_l, N_COEFF_N-1); mul_Xsig_Xsig(&accumulator, &argSqrd); negate_Xsig(&accumulator); polynomial_Xsig(&accumulator, &XSIG_LL(argTo4), pos_terms_l, N_COEFF_P-1); shr_Xsig(&accumulator, 2); /* Divide by four */ accumulator.msw |= 0x80000000; /* Add 1.0 */ mul64_Xsig(&accumulator, &fixed_arg); mul64_Xsig(&accumulator, &fixed_arg); mul64_Xsig(&accumulator, &fixed_arg); /* Divide by four, FPU_REG compatible, etc */ exponent = 3*exponent; /* The minimum exponent difference is 3 */ shr_Xsig(&accumulator, exp2 - exponent); negate_Xsig(&accumulator); XSIG_LL(accumulator) += fixed_arg; /* The basic computation is complete. Now fix the answer to compensate for the error due to the approximation used for pi/2 */ /* This has an exponent of -65 */ XSIG_LL(fix_up) = BX_CONST64(0x898cc51701b839a2); fix_up.lsw = 0; /* The fix-up needs to be improved for larger args */ if ( argSqrd.msw & 0xffc00000 ) { /* Get about 32 bit precision in these: */ fix_up.msw -= mul_32_32(0x898cc517, argSqrd.msw) / 2; fix_up.msw += mul_32_32(0x898cc517, argTo4.msw) / 24; } exp2 += norm_Xsig(&accumulator); shr_Xsig(&accumulator, 1); /* Prevent overflow */ exp2++; shr_Xsig(&fix_up, 65 + exp2); add_Xsig_Xsig(&accumulator, &fix_up); echange = round_Xsig(&accumulator); setexponentpos(&result, exp2 + echange); significand(&result) = XSIG_LL(accumulator); } FPU_copy_to_reg0(current_i387_yuan_ &result, TAG_Valid); #ifdef PARANOID if ( (exponent(&result) >= 0) && (significand(&result) > BX_CONST64(0x8000000000000000)) ) { EXCEPTION(EX_INTERNAL|0x151); } #endif /* PARANOID */ } ================================================ FILE: Project/fpu/Source/poly_tan.cpp ================================================ /*---------------------------------------------------------------------------+ | poly_tan.c | | $Id: poly_tan.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Compute the tan of a FPU_REG, using a polynomial approximation. | | | | Copyright (C) 1992,1993,1994,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "fpu_system.h" #include "control_w.h" #include "poly.h" //#define DEBUG_POLY_TAN // *********** #define HiPOWERop 3 /* odd poly, positive terms */ static const u64 oddplterm[HiPOWERop] = { BX_CONST64(0x0000000000000000), BX_CONST64(0x0051a1cf08fca228), BX_CONST64(0x0000000071284ff7) }; #define HiPOWERon 2 /* odd poly, negative terms */ static const u64 oddnegterm[HiPOWERon] = { BX_CONST64(0x1291a9a184244e80), BX_CONST64(0x0000583245819c21) }; #define HiPOWERep 2 /* even poly, positive terms */ static const u64 evenplterm[HiPOWERep] = { BX_CONST64(0x0e848884b539e888), BX_CONST64(0x00003c7f18b887da) }; #define HiPOWERen 2 /* even poly, negative terms */ static const u64 evennegterm[HiPOWERen] = { BX_CONST64(0xf1f0200fd51569cc), BX_CONST64(0x003afb46105c4432) }; static const u64 twothirds = BX_CONST64(0xaaaaaaaaaaaaaaab); /*--- poly_tan(current_i387_definefunyuan_void ) ------------------------------------------------------------+ | | +---------------------------------------------------------------------------*/ void poly_tan(current_i387_definefunyuan_ FPU_REG *st0_ptr, int invert) { s32 exponent; Xsig argSq, argSqSq, accumulatoro, accumulatore, accum, argSignif; exponent = exponent(st0_ptr); #ifdef PARANOID if ( signnegative(st0_ptr) ) /* Can't hack a number < 0.0 */ { arith_invalid(current_i387_yuan_ 0); return; } /* Need a positive number */ #endif /* PARANOID */ if ( (exponent >= 0) || ((exponent == -1) && (st0_ptr->sigh > 0xc90fdaa2)) ) { EXCEPTION(0x250); } else { argSignif.lsw = 0; XSIG_LL(accum) = XSIG_LL(argSignif) = significand(st0_ptr); if ( exponent < -1 ) { /* shift the argument right by the required places */ if ( FPU_shrx(current_i387_yuan_ &XSIG_LL(accum), -1-exponent) >= 0x80000000U ) XSIG_LL(accum) ++; /* round up */ } } XSIG_LL(argSq) = XSIG_LL(accum); argSq.lsw = accum.lsw; mul_Xsig_Xsig(&argSq, &argSq); XSIG_LL(argSqSq) = XSIG_LL(argSq); argSqSq.lsw = argSq.lsw; mul_Xsig_Xsig(&argSqSq, &argSqSq); /* Compute the negative terms for the numerator polynomial */ accumulatoro.msw = accumulatoro.midw = accumulatoro.lsw = 0; polynomial_Xsig(&accumulatoro, &XSIG_LL(argSqSq), oddnegterm, HiPOWERon-1); mul_Xsig_Xsig(&accumulatoro, &argSq); negate_Xsig(&accumulatoro); /* Add the positive terms */ polynomial_Xsig(&accumulatoro, &XSIG_LL(argSqSq), oddplterm, HiPOWERop-1); /* Compute the positive terms for the denominator polynomial */ accumulatore.msw = accumulatore.midw = accumulatore.lsw = 0; polynomial_Xsig(&accumulatore, &XSIG_LL(argSqSq), evenplterm, HiPOWERep-1); mul_Xsig_Xsig(&accumulatore, &argSq); negate_Xsig(&accumulatore); /* Add the negative terms */ polynomial_Xsig(&accumulatore, &XSIG_LL(argSqSq), evennegterm, HiPOWERen-1); /* Multiply by arg^2 */ mul64_Xsig(&accumulatore, &XSIG_LL(argSignif)); mul64_Xsig(&accumulatore, &XSIG_LL(argSignif)); /* de-normalize and divide by 2 */ shr_Xsig(&accumulatore, -2*(1+exponent) + 1); negate_Xsig(&accumulatore); /* This does 1 - accumulator */ /* Now find the ratio. */ if ( accumulatore.msw == 0 ) { /* accumulatoro must contain 1.0 here, (actually, 0) but it really doesn't matter what value we use because it will have negligible effect in later calculations */ XSIG_LL(accum) = BX_CONST64(0x8000000000000000); accum.lsw = 0; } else { div_Xsig(current_i387_yuan_ &accumulatoro, &accumulatore, &accum); } /* Multiply by 1/3 * arg^3 */ mul64_Xsig(&accum, &XSIG_LL(argSignif)); mul64_Xsig(&accum, &XSIG_LL(argSignif)); mul64_Xsig(&accum, &XSIG_LL(argSignif)); mul64_Xsig(&accum, &twothirds); shr_Xsig(&accum, -2*(exponent+1)); /* tan(arg) = arg + accum */ add_two_Xsig(&accum, &argSignif, &exponent); if ( invert ) { /* accum now contains tan(pi/2 - arg). Use tan(arg) = 1.0 / tan(pi/2 - arg) */ accumulatoro.lsw = accumulatoro.midw = 0; accumulatoro.msw = 0x80000000; div_Xsig(current_i387_yuan_ &accumulatoro, &accum, &accum); exponent = - exponent; } /* Transfer the result */ exponent += round_Xsig(&accum); FPU_settag0(current_i387_yuan_ TAG_Valid); significand(st0_ptr) = XSIG_LL(accum); setexponent16(st0_ptr, exponent + EXTENDED_Ebias); /* Result is positive. */ } ================================================ FILE: Project/fpu/Source/polynom_Xsig.cpp ================================================ /*---------------------------------------------------------------------------+ | polynomial_Xsig.c | | $Id: polynom_Xsig.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Fixed point arithmetic polynomial evaluation. | | | | Copyright (C) 1992,1993,1994,1995,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | Computes: | | terms[0] + (terms[1] + (terms[2] + ... + (terms[n]*x)*x)*x)*x) ... )*x | | and adds the result to the 12 byte Xsig. | | The terms[] are each 8 bytes, but all computation is performed to 12 byte | | precision. | | | | This function must be used carefully: most overflow of intermediate | | results is controlled, but overflow of the result is not. | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "poly.h" void polynomial_Xsig(Xsig *accum, const u64 *x, const u64 terms[], const int n) { int i; Xsig acc, Xprod; u32 lprod; u64 xlwr, xupr, prod; char overflowed; xlwr = (u32)(*x); xupr = (u32)((*x) >> 32); acc.msw = (u32)(terms[n] >> 32); acc.midw = (u32)(terms[n]); acc.lsw = 0; overflowed = 0; for ( i = n-1; i >= 0; i-- ) { /* Split the product into five parts to get a 16 byte result */ /* first word by first word */ prod = acc.msw * xupr; Xprod.midw = (u32)prod; Xprod.msw = (u32)prod >> 32; /* first word by second word */ prod = acc.msw * xlwr; Xprod.lsw = (u32)prod; lprod = (u32)(prod >> 32); Xprod.midw += lprod; if ( lprod > Xprod.midw ) Xprod.msw ++; /* second word by first word */ prod = acc.midw * xupr; Xprod.lsw += (u32)prod; if ( (u32)prod > Xprod.lsw ) { Xprod.midw ++; if ( Xprod.midw == 0 ) Xprod.msw ++; } lprod = (u32)(prod >> 32); Xprod.midw += lprod; if ( lprod > Xprod.midw ) Xprod.msw ++; /* second word by second word */ prod = acc.midw * xlwr; lprod = (u32)(prod >> 32); Xprod.lsw += lprod; if ( lprod > Xprod.lsw ) { Xprod.midw ++; if ( Xprod.midw == 0 ) Xprod.msw ++; } /* third word by first word */ prod = acc.lsw * xupr; lprod = (u32)(prod >> 32); Xprod.lsw += lprod; if ( lprod > Xprod.lsw ) { Xprod.midw ++; if ( Xprod.midw == 0 ) Xprod.msw ++; } if ( overflowed ) { Xprod.midw += (u32)xlwr; if ( (u32)xlwr > Xprod.midw ) Xprod.msw ++; Xprod.msw += (u32)xupr; overflowed = 0; /* We don't check this addition for overflow */ } acc.lsw = Xprod.lsw; acc.midw = (u32)terms[i] + Xprod.midw; acc.msw = (u32)((terms[i] >> 32) + Xprod.msw); if ( Xprod.msw > acc.msw ) overflowed = 1; if ( (u32)terms[i] > acc.midw ) { acc.msw ++; if ( acc.msw == 0 ) overflowed = 1; } } /* We don't check the addition to accum for overflow */ accum->lsw += acc.lsw; if ( acc.lsw > accum->lsw ) { accum->midw ++; if ( accum->midw == 0 ) accum->msw ++; } accum->midw += acc.midw; if ( acc.midw > accum->midw ) { accum->msw ++; } accum->msw += acc.msw; } ================================================ FILE: Project/fpu/Source/reg_add_sub.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_add_sub.c | | $Id: reg_add_sub.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Functions to add or subtract two registers and put the result in a third. | | | | Copyright (C) 1992,1993,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | For each function, the destination may be any FPU_REG, including one of | | the source FPU_REGs. | | Each function returns 0 if the answer is o.k., otherwise a non-zero | | value is returned, indicating either an exception condition or an | | internal error. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "control_w.h" #include "fpu_system.h" static int add_sub_specials(current_i387_definefunyuan_ FPU_REG const *a, u_char taga, u_char signa, FPU_REG const *b, u_char tagb, u_char signb, FPU_REG *dest, int deststnr, u16 control_w); /* Operates on st(0) and st(n), or on st(0) and temporary data. The destination must be one of the source st(x). */ int FPU_add(current_i387_definefunyuan_ FPU_REG const *b, u_char tagb, int deststnr, u16 control_w) { FPU_REG *a = &st(0); FPU_REG *dest = &st(deststnr); u_char signb = getsign(b); u_char taga = FPU_gettag0(current_i387_yuan_clono ); u_char signa = getsign(a); u_char saved_sign = getsign(dest); int diff, tag, expa, expb; if ( !(taga | tagb) ) { expa = exponent(a); expb = exponent(b); valid_add: /* Both registers are valid */ if (!(signa ^ signb)) { /* signs are the same */ tag = FPU_u_add(current_i387_yuan_ a, b, dest, control_w, signa, expa, expb); } else { /* The signs are different, so do a subtraction */ diff = expa - expb; if (!diff) { diff = a->sigh - b->sigh; /* This works only if the ms bits are identical. */ if (!diff) { diff = a->sigl > b->sigl; if (!diff) diff = -(a->sigl < b->sigl); } } if (diff > 0) { tag = FPU_u_sub(current_i387_yuan_ a, b, dest, control_w, signa, expa, expb); } else if ( diff < 0 ) { tag = FPU_u_sub(current_i387_yuan_ b, a, dest, control_w, signb, expb, expa); } else { FPU_copy_to_regi(current_i387_yuan_ &CONST_Z, TAG_Zero, deststnr); /* sign depends upon rounding mode */ setsign(dest, ((control_w & CW_RC) != RC_DOWN) ? SIGN_POS : SIGN_NEG); return TAG_Zero; } } if ( tag < 0 ) { setsign(dest, saved_sign); return tag; } FPU_settagi(current_i387_yuan_ deststnr, tag); return tag; } if ( taga == TAG_Special ) taga = FPU_Special(current_i387_yuan_ a); if ( tagb == TAG_Special ) tagb = FPU_Special(current_i387_yuan_ b); if ( ((taga == TAG_Valid) && (tagb == TW_Denormal)) || ((taga == TW_Denormal) && (tagb == TAG_Valid)) || ((taga == TW_Denormal) && (tagb == TW_Denormal)) ) { FPU_REG x, y; if ( denormal_operand(current_i387_yuan_le ) < 0 ) return FPU_Exception; FPU_to_exp16(current_i387_yuan_ a, &x); FPU_to_exp16(current_i387_yuan_ b, &y); a = &x; b = &y; expa = exponent16(a); expb = exponent16(b); goto valid_add; } if ( (taga == TW_NaN) || (tagb == TW_NaN) ) { if ( deststnr == 0 ) return real_2op_NaN(current_i387_yuan_ b, tagb, deststnr, a); else return real_2op_NaN(current_i387_yuan_ a, taga, deststnr, a); } return add_sub_specials(current_i387_yuan_ a, taga, signa, b, tagb, signb, dest, deststnr, control_w); } /* Subtract b from a. (a-b) -> dest bbd: arg2 used to be int type, but sometimes pointers were forced in with typecasts. On Alphas pointers are 64 bits and ints are 32, so when rm was cast back to a pointer...SEGFAULT. Pass the pointers around instead, since they are always larger precision than the register numbers. */ int FPU_sub(current_i387_definefunyuan_ int flags, FPU_REG *rm, u16 control_w) { FPU_REG const *a, *b; FPU_REG *dest; u_char taga, tagb, signa, signb, saved_sign, sign; int diff, tag, expa, expb, deststnr; a = &st(0); taga = FPU_gettag0(current_i387_yuan_clono ); deststnr = 0; if ( flags & LOADED ) { b = rm; tagb = flags & 0x0f; } else { int rmint = PTR2INT(rm); b = &st(rmint); tagb = FPU_gettagi(current_i387_yuan_ rmint); if ( flags & DEST_RM ) deststnr = rmint; } signa = getsign(a); signb = getsign(b); if ( flags & REV ) { signa ^= SIGN_NEG; signb ^= SIGN_NEG; } dest = &st(deststnr); saved_sign = getsign(dest); if ( !(taga | tagb) ) { expa = exponent(a); expb = exponent(b); valid_subtract: /* Both registers are valid */ diff = expa - expb; if (!diff) { diff = a->sigh - b->sigh; /* Works only if ms bits are identical */ if (!diff) { diff = a->sigl > b->sigl; if (!diff) diff = -(a->sigl < b->sigl); } } switch ( (((int)signa)*2 + signb) / SIGN_NEG ) { case 0: /* P - P */ case 3: /* N - N */ if (diff > 0) { /* |a| > |b| */ tag = FPU_u_sub(current_i387_yuan_ a, b, dest, control_w, signa, expa, expb); } else if ( diff == 0 ) { FPU_copy_to_regi(current_i387_yuan_ &CONST_Z, TAG_Zero, deststnr); /* sign depends upon rounding mode */ setsign(dest, ((control_w & CW_RC) != RC_DOWN) ? SIGN_POS : SIGN_NEG); return TAG_Zero; } else { sign = signa ^ SIGN_NEG; tag = FPU_u_sub(current_i387_yuan_ b, a, dest, control_w, sign, expb, expa); } break; case 1: /* P - N */ tag = FPU_u_add(current_i387_yuan_ a, b, dest, control_w, SIGN_POS, expa, expb); break; case 2: /* N - P */ tag = FPU_u_add(current_i387_yuan_ a, b, dest, control_w, SIGN_NEG, expa, expb); break; #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x111); return -1; #endif } if ( tag < 0 ) { setsign(dest, saved_sign); return tag; } FPU_settagi(current_i387_yuan_ deststnr, tag); return tag; } if ( taga == TAG_Special ) taga = FPU_Special(current_i387_yuan_ a); if ( tagb == TAG_Special ) tagb = FPU_Special(current_i387_yuan_ b); if ( ((taga == TAG_Valid) && (tagb == TW_Denormal)) || ((taga == TW_Denormal) && (tagb == TAG_Valid)) || ((taga == TW_Denormal) && (tagb == TW_Denormal)) ) { FPU_REG x, y; if ( denormal_operand(current_i387_yuan_le ) < 0 ) return FPU_Exception; FPU_to_exp16(current_i387_yuan_ a, &x); FPU_to_exp16(current_i387_yuan_ b, &y); a = &x; b = &y; expa = exponent16(a); expb = exponent16(b); goto valid_subtract; } if ( (taga == TW_NaN) || (tagb == TW_NaN) ) { FPU_REG const *d1, *d2; if ( flags & REV ) { d1 = b; d2 = a; } else { d1 = a; d2 = b; } if ( flags & LOADED ) return real_2op_NaN(current_i387_yuan_ b, tagb, deststnr, d1); if ( flags & DEST_RM ) return real_2op_NaN(current_i387_yuan_ a, taga, deststnr, d2); else return real_2op_NaN(current_i387_yuan_ b, tagb, deststnr, d2); } return add_sub_specials(current_i387_yuan_ a, taga, signa, b, tagb, signb ^ SIGN_NEG, dest, deststnr, control_w); } static int add_sub_specials(current_i387_definefunyuan_ FPU_REG const *a, u_char taga, u_char signa, FPU_REG const *b, u_char tagb, u_char signb, FPU_REG *dest, int deststnr, u16 control_w) { if ( ((taga == TW_Denormal) || (tagb == TW_Denormal)) && (denormal_operand(current_i387_yuan_le ) < 0) ) return FPU_Exception; if (taga == TAG_Zero) { if (tagb == TAG_Zero) { /* Both are zero, result will be zero. */ u_char different_signs = signa ^ signb; FPU_copy_to_regi(current_i387_yuan_ a, TAG_Zero, deststnr); if ( different_signs ) { /* Signs are different. */ /* Sign of answer depends upon rounding mode. */ setsign(dest, ((control_w & CW_RC) != RC_DOWN) ? SIGN_POS : SIGN_NEG); } else setsign(dest, signa); /* signa may differ from the sign of a. */ return TAG_Zero; } else { reg_copy(b, dest); if ( (tagb == TW_Denormal) && (b->sigh & 0x80000000) ) { /* A pseudoDenormal, convert it. */ addexponent(dest, 1); tagb = TAG_Valid; } else if ( tagb > TAG_Empty ) tagb = TAG_Special; setsign(dest, signb); /* signb may differ from the sign of b. */ FPU_settagi(current_i387_yuan_ deststnr, tagb); return tagb; } } else if (tagb == TAG_Zero) { reg_copy(a, dest); if ( (taga == TW_Denormal) && (a->sigh & 0x80000000) ) { /* A pseudoDenormal */ addexponent(dest, 1); taga = TAG_Valid; } else if ( taga > TAG_Empty ) taga = TAG_Special; setsign(dest, signa); /* signa may differ from the sign of a. */ FPU_settagi(current_i387_yuan_ deststnr, taga); return taga; } else if (taga == TW_Infinity) { if ( (tagb != TW_Infinity) || (signa == signb) ) { FPU_copy_to_regi(current_i387_yuan_ a, TAG_Special, deststnr); setsign(dest, signa); /* signa may differ from the sign of a. */ return taga; } /* Infinity-Infinity is undefined. */ return arith_invalid(current_i387_yuan_ deststnr); } else if (tagb == TW_Infinity) { FPU_copy_to_regi(current_i387_yuan_ b, TAG_Special, deststnr); setsign(dest, signb); /* signb may differ from the sign of b. */ return tagb; } #ifdef PARANOID EXCEPTION(EX_INTERNAL|0x101); #endif return FPU_Exception; } ================================================ FILE: Project/fpu/Source/reg_compare.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_compare.c | | $Id: reg_compare.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Compare two floating point registers | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | compare() is the core FPU_REG comparison function | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "exception.h" #include "fpu_emu.h" #include "control_w.h" #include "status_w.h" static int compare(current_i387_definefunyuan_ FPU_REG const *b, int tagb) { int diff, exp0, expb; u_char st0_tag; FPU_REG *st0_ptr; FPU_REG x, y; u_char st0_sign, signb = getsign(b); st0_ptr = &st(0); st0_tag = FPU_gettag0(current_i387_yuan_clono ); st0_sign = getsign(st0_ptr); if ( tagb == TAG_Special ) tagb = FPU_Special(current_i387_yuan_ b); if ( st0_tag == TAG_Special ) st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( ((st0_tag != TAG_Valid) && (st0_tag != TW_Denormal)) || ((tagb != TAG_Valid) && (tagb != TW_Denormal)) ) { if ( st0_tag == TAG_Zero ) { if ( tagb == TAG_Zero ) return COMP_A_eq_B; if ( tagb == TAG_Valid ) return ((signb == SIGN_POS) ? COMP_A_lt_B : COMP_A_gt_B); if ( tagb == TW_Denormal ) return ((signb == SIGN_POS) ? COMP_A_lt_B : COMP_A_gt_B) | COMP_Denormal; } else if ( tagb == TAG_Zero ) { if ( st0_tag == TAG_Valid ) return ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B); if ( st0_tag == TW_Denormal ) return ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B) | COMP_Denormal; } if ( st0_tag == TW_Infinity ) { if ( (tagb == TAG_Valid) || (tagb == TAG_Zero) ) return ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B); else if ( tagb == TW_Denormal ) return ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B) | COMP_Denormal; else if ( tagb == TW_Infinity ) { /* The 80486 book says that infinities can be equal! */ return (st0_sign == signb) ? COMP_A_eq_B : ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B); } /* Fall through to the NaN code */ } else if ( tagb == TW_Infinity ) { if ( (st0_tag == TAG_Valid) || (st0_tag == TAG_Zero) ) return ((signb == SIGN_POS) ? COMP_A_lt_B : COMP_A_gt_B); if ( st0_tag == TW_Denormal ) return ((signb == SIGN_POS) ? COMP_A_lt_B : COMP_A_gt_B) | COMP_Denormal; /* Fall through to the NaN code */ } /* The only possibility now should be that one of the arguments is a NaN */ if ( (st0_tag == TW_NaN) || (tagb == TW_NaN) ) { int signalling = 0, unsupported = 0; if ( st0_tag == TW_NaN ) { signalling = (st0_ptr->sigh & 0xc0000000) == 0x80000000; unsupported = !((exponent(st0_ptr) == EXP_OVER) && (st0_ptr->sigh & 0x80000000)); } if ( tagb == TW_NaN ) { signalling |= (b->sigh & 0xc0000000) == 0x80000000; unsupported |= !((exponent(b) == EXP_OVER) && (b->sigh & 0x80000000)); } if ( signalling || unsupported ) return COMP_No_Comp | COMP_SNaN | COMP_NaN; else /* Neither is a signaling NaN */ return COMP_No_Comp | COMP_NaN; } EXCEPTION(EX_Invalid); } if (st0_sign != signb) { return ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B) | ( ((st0_tag == TW_Denormal) || (tagb == TW_Denormal)) ? COMP_Denormal : 0); } if ( (st0_tag == TW_Denormal) || (tagb == TW_Denormal) ) { FPU_to_exp16(current_i387_yuan_ st0_ptr, &x); FPU_to_exp16(current_i387_yuan_ b, &y); st0_ptr = &x; b = &y; exp0 = exponent16(st0_ptr); expb = exponent16(b); } else { exp0 = exponent(st0_ptr); expb = exponent(b); } #ifdef PARANOID if (!(st0_ptr->sigh & 0x80000000)) EXCEPTION(EX_Invalid); if (!(b->sigh & 0x80000000)) EXCEPTION(EX_Invalid); #endif /* PARANOID */ diff = exp0 - expb; if ( diff == 0 ) { diff = st0_ptr->sigh - b->sigh; /* Works only if ms bits are identical */ if ( diff == 0 ) { diff = st0_ptr->sigl > b->sigl; if ( diff == 0 ) diff = -(st0_ptr->sigl < b->sigl); } } if ( diff > 0 ) { return ((st0_sign == SIGN_POS) ? COMP_A_gt_B : COMP_A_lt_B) | ( ((st0_tag == TW_Denormal) || (tagb == TW_Denormal)) ? COMP_Denormal : 0); } if ( diff < 0 ) { return ((st0_sign == SIGN_POS) ? COMP_A_lt_B : COMP_A_gt_B) | ( ((st0_tag == TW_Denormal) || (tagb == TW_Denormal)) ? COMP_Denormal : 0); } return COMP_A_eq_B | ( ((st0_tag == TW_Denormal) || (tagb == TW_Denormal)) ? COMP_Denormal : 0); } /* This function requires that st(0) is not empty */ int FPU_compare_st_data(current_i387_definefunyuan_ FPU_REG const *loaded_data, u_char loaded_tag) { int f, c; c = compare(current_i387_yuan_ loaded_data, loaded_tag); if (c & COMP_NaN) { EXCEPTION(EX_Invalid); f = SW_C3 | SW_C2 | SW_C0; } else switch (c & 7) { case COMP_A_lt_B: f = SW_C0; break; case COMP_A_eq_B: f = SW_C3; break; case COMP_A_gt_B: f = 0; break; case COMP_No_Comp: f = SW_C3 | SW_C2 | SW_C0; break; #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x121); f = SW_C3 | SW_C2 | SW_C0; break; #endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) { return denormal_operand(current_i387_yuan_le ) < 0; } return 0; } static int compare_st_st(current_i387_definefunyuan_ int nr) { int f, c; FPU_REG *st_ptr; if ( !NOT_EMPTY(0) || !NOT_EMPTY(nr) ) { setcc(SW_C3 | SW_C2 | SW_C0); /* Stack fault */ EXCEPTION(EX_StackUnder); return !(control_word & CW_Invalid); } st_ptr = &st(nr); c = compare(current_i387_yuan_ st_ptr, FPU_gettagi(current_i387_yuan_ nr)); if (c & COMP_NaN) { setcc(SW_C3 | SW_C2 | SW_C0); EXCEPTION(EX_Invalid); return !(control_word & CW_Invalid); } else switch (c & 7) { case COMP_A_lt_B: f = SW_C0; break; case COMP_A_eq_B: f = SW_C3; break; case COMP_A_gt_B: f = 0; break; case COMP_No_Comp: f = SW_C3 | SW_C2 | SW_C0; break; #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x122); f = SW_C3 | SW_C2 | SW_C0; break; #endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) { return denormal_operand(current_i387_yuan_le ) < 0; } return 0; } static int compare_u_st_st(current_i387_definefunyuan_ int nr) { int f, c; FPU_REG *st_ptr; if ( !NOT_EMPTY(0) || !NOT_EMPTY(nr) ) { setcc(SW_C3 | SW_C2 | SW_C0); /* Stack fault */ EXCEPTION(EX_StackUnder); return !(control_word & CW_Invalid); } st_ptr = &st(nr); c = compare(current_i387_yuan_ st_ptr, FPU_gettagi(current_i387_yuan_ nr)); if (c & COMP_NaN) { setcc(SW_C3 | SW_C2 | SW_C0); if (c & COMP_SNaN) /* This is the only difference between un-ordered and ordinary comparisons */ { EXCEPTION(EX_Invalid); return !(control_word & CW_Invalid); } return 0; } else switch (c & 7) { case COMP_A_lt_B: f = SW_C0; break; case COMP_A_eq_B: f = SW_C3; break; case COMP_A_gt_B: f = 0; break; case COMP_No_Comp: f = SW_C3 | SW_C2 | SW_C0; break; #ifdef PARANOID default: EXCEPTION(EX_INTERNAL|0x123); f = SW_C3 | SW_C2 | SW_C0; break; #endif /* PARANOID */ } setcc(f); if (c & COMP_Denormal) { return denormal_operand(current_i387_yuan_le ) < 0; } return 0; } /*---------------------------------------------------------------------------*/ void fcom_st(current_i387_definefunyuan_void ) { /* fcom st(i) */ compare_st_st(current_i387_yuan_ FPU_rm); } void fcompst(current_i387_definefunyuan_void ) { /* fcomp st(i) */ if ( !compare_st_st(current_i387_yuan_ FPU_rm) ) FPU_pop(current_i387_yuan_clono ); } void fcompp(current_i387_definefunyuan_void ) { /* fcompp */ if (FPU_rm != 1) { FPU_illegal(current_i387_yuan_clono ); return; } if ( !compare_st_st(current_i387_yuan_ 1) ) poppop(); } void fucom_(current_i387_definefunyuan_void ) { /* fucom st(i) */ compare_u_st_st(current_i387_yuan_ FPU_rm); } void fucomp(current_i387_definefunyuan_void ) { /* fucomp st(i) */ if ( !compare_u_st_st(current_i387_yuan_ FPU_rm) ) FPU_pop(current_i387_yuan_clono ); } void fucompp(current_i387_definefunyuan_void ) { /* fucompp */ if (FPU_rm == 1) { if ( !compare_u_st_st(current_i387_yuan_ 1) ) poppop(); } else FPU_illegal(current_i387_yuan_clono ); } ================================================ FILE: Project/fpu/Source/reg_constant.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_constant.c | | $Id: reg_constant.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | All of the constant FPU_REGs | | | | Copyright (C) 1992,1993,1994,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_system.h" #include "fpu_emu.h" #include "status_w.h" #include "reg_constant.h" #include "control_w.h" FPU_REG const CONST_1 = MAKE_REG(POS, 0, 0x00000000, 0x80000000); FPU_REG const CONST_2 = MAKE_REG(POS, 1, 0x00000000, 0x80000000); FPU_REG const CONST_HALF = MAKE_REG(POS, -1, 0x00000000, 0x80000000); FPU_REG const CONST_L2T = MAKE_REG(POS, 1, 0xcd1b8afe, 0xd49a784b); FPU_REG const CONST_L2E = MAKE_REG(POS, 0, 0x5c17f0bc, 0xb8aa3b29); FPU_REG const CONST_PI = MAKE_REG(POS, 1, 0x2168c235, 0xc90fdaa2); // bbd: make CONST_PI2 non-const so that you can write "&CONST_PI2" when // calling a function. Otherwise you get const warnings. Surely there's // a better way. FPU_REG CONST_PI2 = MAKE_REG(POS, 0, 0x2168c235, 0xc90fdaa2); FPU_REG const CONST_PI4 = MAKE_REG(POS, -1, 0x2168c235, 0xc90fdaa2); FPU_REG const CONST_LG2 = MAKE_REG(POS, -2, 0xfbcff799, 0x9a209a84); FPU_REG const CONST_LN2 = MAKE_REG(POS, -1, 0xd1cf79ac, 0xb17217f7); /* Extra bits to take pi/2 to more than 128 bits precision. */ FPU_REG const CONST_PI2extra = MAKE_REG(NEG,-66,0xfc8f8cbb,0xece675d1); /* Only the sign (and tag) is used in internal zeroes */ FPU_REG const CONST_Z = MAKE_REG(POS, EXP_UNDER, 0x0, 0x0); /* Only the sign and significand (and tag) are used in internal NaNs */ /* The 80486 never generates one of these FPU_REG const CONST_SNAN = MAKE_REG(POS, EXP_OVER, 0x00000001, 0x80000000); */ /* This is the real indefinite QNaN */ FPU_REG const CONST_QNaN = MAKE_REG(NEG, EXP_OVER, 0x00000000, 0xC0000000); /* Only the sign (and tag) is used in internal infinities */ FPU_REG const CONST_INF = MAKE_REG(POS, EXP_OVER, 0x00000000, 0x80000000); static void fld_const(current_i387_definefunyuan_ FPU_REG const *c, int adj, u_char tag) { FPU_REG *st_new_ptr; if ( STACK_OVERFLOW ) { FPU_stack_overflow(current_i387_yuan_clono ); return; } push(); reg_copy(c, st_new_ptr); st_new_ptr->sigl += adj; /* For all our fldxxx constants, we don't need to borrow or carry. */ FPU_settag0(current_i387_yuan_ tag); clear_C1(); } /* A fast way to find out whether x is one of RC_DOWN or RC_CHOP (and not one of RC_RND or RC_UP). */ #define DOWN_OR_CHOP(x) (x & RC_DOWN) static void fld1(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_1, 0, TAG_Valid); } static void fldl2t(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_L2T, (rc == RC_UP) ? 1 : 0, TAG_Valid); } static void fldl2e(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_L2E, DOWN_OR_CHOP(rc) ? -1 : 0, TAG_Valid); } static void fldpi(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_PI, DOWN_OR_CHOP(rc) ? -1 : 0, TAG_Valid); } static void fldlg2(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_LG2, DOWN_OR_CHOP(rc) ? -1 : 0, TAG_Valid); } static void fldln2(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_LN2, DOWN_OR_CHOP(rc) ? -1 : 0, TAG_Valid); } static void fldz(current_i387_definefunyuan_ int rc) { fld_const(current_i387_yuan_ &CONST_Z, 0, TAG_Zero); } typedef void (*FUNC_RC)(current_i387_definefunyuan_ int); static FUNC_RC constants_table[] = { fld1, fldl2t, fldl2e, fldpi, fldlg2, fldln2, fldz, (FUNC_RC)FPU_illegal }; void fconst(current_i387_definefunyuan_void) { (constants_table[FPU_rm])(current_i387_yuan_ control_word & CW_RC); } ================================================ FILE: Project/fpu/Source/reg_constant.h ================================================ /*---------------------------------------------------------------------------+ | reg_constant.h | | $Id: reg_constant.h,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992 W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@vaxc.cc.monash.edu.au | | | +---------------------------------------------------------------------------*/ #ifndef _REG_CONSTANT_H_ #define _REG_CONSTANT_H_ #include "fpu_emu.h" extern FPU_REG const CONST_1; extern FPU_REG const CONST_2; extern FPU_REG const CONST_HALF; extern FPU_REG const CONST_L2T; extern FPU_REG const CONST_L2E; extern FPU_REG const CONST_PI; // bbd: make CONST_PI2 non-const so that you can write "&CONST_PI2" when // calling a function. Otherwise you get const warnings. Surely there's // a better way. extern FPU_REG CONST_PI2; extern FPU_REG const CONST_PI2extra; extern FPU_REG const CONST_PI4; extern FPU_REG const CONST_LG2; extern FPU_REG const CONST_LN2; extern FPU_REG const CONST_Z; extern FPU_REG const CONST_PINF; extern FPU_REG const CONST_INF; extern FPU_REG const CONST_MINF; extern FPU_REG const CONST_QNaN; #endif /* _REG_CONSTANT_H_ */ ================================================ FILE: Project/fpu/Source/reg_convert.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_convert.c | | $Id: reg_convert.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Convert register representation. | | | | Copyright (C) 1992,1993,1994,1996,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" int FPU_to_exp16(current_i387_definefunyuan_ FPU_REG const *a, FPU_REG *x) { int sign = getsign(a); #ifndef EMU_BIG_ENDIAN *(s64 *)&(x->sigl) = *(const s64 *)&(a->sigl); #else *(s64 *)&(x->sigh) = *(const s64 *)&(a->sigh); #endif /* Set up the exponent as a 16 bit quantity. */ setexponent16(x, exponent(a)); if ( exponent16(x) == EXP_UNDER ) { /* The number is a de-normal or pseudodenormal. */ /* We only deal with the significand and exponent. */ if (x->sigh & 0x80000000) { /* Is a pseudodenormal. */ /* This is non-80486 behaviour because the number loses its 'denormal' identity. */ addexponent(x, 1); } else { /* Is a denormal. */ addexponent(x, 1); FPU_normalize_nuo(current_i387_yuan_ x, 0); } } if ( !(x->sigh & 0x80000000) ) { EXCEPTION(EX_INTERNAL | 0x180); } return sign; } ================================================ FILE: Project/fpu/Source/reg_divide.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_divide.c | | $Id: reg_divide.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | Divide one FPU_REG by another and put the result in a destination FPU_REG.| | | | Copyright (C) 1996 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@jacobi.maths.monash.edu.au | | | | Return value is the tag of the answer, or-ed with FPU_Exception if | | one was raised, or -1 on internal error. | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | The destination may be any FPU_REG, including one of the source FPU_REGs. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "reg_constant.h" #include "fpu_emu.h" #include "fpu_system.h" /* Divide one register by another and put the result into a third register. bbd: arg2 used to be an int, see comments on FPU_sub. */ int FPU_div(current_i387_definefunyuan_ int flags, FPU_REG *rm, int control_w) { FPU_REG x, y; FPU_REG const *a, *b, *st0_ptr, *st_ptr; FPU_REG *dest; u_char taga, tagb, signa, signb, sign, saved_sign; int tag, deststnr; int rmint = PTR2INT(rm); if ( flags & DEST_RM ) deststnr = rmint; else deststnr = 0; if ( flags & REV ) { b = &st(0); st0_ptr = b; tagb = FPU_gettag0(current_i387_yuan_clono ); if ( flags & LOADED ) { a = rm; taga = flags & 0x0f; } else { a = &st(rmint); st_ptr = a; taga = FPU_gettagi(current_i387_yuan_ rmint); } } else { a = &st(0); st0_ptr = a; taga = FPU_gettag0(current_i387_yuan_clono ); if ( flags & LOADED ) { b = rm; tagb = flags & 0x0f; } else { b = &st(rmint); st_ptr = b; tagb = FPU_gettagi(current_i387_yuan_ rmint); } } signa = getsign(a); signb = getsign(b); sign = signa ^ signb; dest = &st(deststnr); saved_sign = getsign(dest); if ( !(taga | tagb) ) { /* Both regs Valid, this should be the most common case. */ reg_copy(a, &x); reg_copy(b, &y); setpositive(&x); setpositive(&y); tag = FPU_u_div(current_i387_yuan_ &x, &y, dest, control_w, sign); if ( tag < 0 ) return tag; FPU_settagi(current_i387_yuan_ deststnr, tag); return tag; } if ( taga == TAG_Special ) taga = FPU_Special(current_i387_yuan_ a); if ( tagb == TAG_Special ) tagb = FPU_Special(current_i387_yuan_ b); if ( ((taga == TAG_Valid) && (tagb == TW_Denormal)) || ((taga == TW_Denormal) && (tagb == TAG_Valid)) || ((taga == TW_Denormal) && (tagb == TW_Denormal)) ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return FPU_Exception; FPU_to_exp16(current_i387_yuan_ a, &x); FPU_to_exp16(current_i387_yuan_ b, &y); tag = FPU_u_div(current_i387_yuan_ &x, &y, dest, control_w, sign); if ( tag < 0 ) return tag; FPU_settagi(current_i387_yuan_ deststnr, tag); return tag; } else if ( (taga <= TW_Denormal) && (tagb <= TW_Denormal) ) { if ( tagb != TAG_Zero ) { /* Want to find Zero/Valid */ if ( tagb == TW_Denormal ) { if ( denormal_operand(current_i387_yuan_le ) < 0 ) return FPU_Exception; } /* The result is zero. */ FPU_copy_to_regi(current_i387_yuan_ &CONST_Z, TAG_Zero, deststnr); setsign(dest, sign); return TAG_Zero; } /* We have an exception condition, either 0/0 or Valid/Zero. */ if ( taga == TAG_Zero ) { /* 0/0 */ return arith_invalid(current_i387_yuan_ deststnr); } /* Valid/Zero */ return FPU_divide_by_zero(current_i387_yuan_ deststnr, sign); } /* Must have infinities, NaNs, etc */ else if ( (taga == TW_NaN) || (tagb == TW_NaN) ) { if ( flags & LOADED ) return real_2op_NaN(current_i387_yuan_ (FPU_REG *)rm, flags & 0x0f, 0, st0_ptr); if ( flags & DEST_RM ) { int tag; tag = FPU_gettag0(current_i387_yuan_clono ); if ( tag == TAG_Special ) tag = FPU_Special(current_i387_yuan_ st0_ptr); return real_2op_NaN(current_i387_yuan_ st0_ptr, tag, rmint, (flags & REV) ? st0_ptr : &st(rmint)); } else { int tag; tag = FPU_gettagi(current_i387_yuan_ rmint); if ( tag == TAG_Special ) tag = FPU_Special(current_i387_yuan_ &st(rmint)); return real_2op_NaN(current_i387_yuan_ &st(rmint), tag, 0, (flags & REV) ? st0_ptr : &st(rmint)); } } else if (taga == TW_Infinity) { if (tagb == TW_Infinity) { /* infinity/infinity */ return arith_invalid(current_i387_yuan_ deststnr); } else { /* tagb must be Valid or Zero */ if ( (tagb == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return FPU_Exception; /* Infinity divided by Zero or Valid does not raise and exception, but returns Infinity */ FPU_copy_to_regi(current_i387_yuan_ a, TAG_Special, deststnr); setsign(dest, sign); return taga; } } else if (tagb == TW_Infinity) { if ( (taga == TW_Denormal) && (denormal_operand(current_i387_yuan_le ) < 0) ) return FPU_Exception; /* The result is zero. */ FPU_copy_to_regi(current_i387_yuan_ &CONST_Z, TAG_Zero, deststnr); setsign(dest, sign); return TAG_Zero; } #ifdef PARANOID else { EXCEPTION(EX_INTERNAL|0x102); return FPU_Exception; } #endif /* PARANOID */ } ================================================ FILE: Project/fpu/Source/reg_ld_str.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_ld_str.c | | $Id: reg_ld_str.c,v 1.4 2001/10/06 03:53:46 bdenney Exp $ | | | All of the functions which transfer data between user memory and FPU_REGs.| | | | Copyright (C) 1992,1993,1994,1996,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | Note: | | The file contains code which accesses user memory. | | Emulator static data may change when user memory is accessed, due to | | other processes using the emulator while swapping is in progress. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include #include "fpu_system.h" #include "exception.h" #include "reg_constant.h" #include "control_w.h" #include "status_w.h" #define DOUBLE_Emax 1023 /* largest valid exponent */ #define DOUBLE_Ebias 1023 #define DOUBLE_Emin (-1022) /* smallest valid exponent */ #define SINGLE_Emax 127 /* largest valid exponent */ #define SINGLE_Ebias 127 #define SINGLE_Emin (-126) /* smallest valid exponent */ static u_char normalize_no_excep(current_i387_definefunyuan_ FPU_REG*r, int exp, int sign) { u_char tag; setexponent16(r, exp); tag = FPU_normalize_nuo(current_i387_yuan_ r, 0); stdexp(r); if ( sign ) setnegative(r); return tag; } int FPU_tagof(current_i387_definefunyuan_ FPU_REG *ptr) { int exp; exp = exponent16(ptr) & 0x7fff; if ( exp == 0 ) { if ( !(ptr->sigh | ptr->sigl) ) { return TAG_Zero; } /* The number is a de-normal or pseudodenormal. */ return TAG_Special; } if ( exp == 0x7fff ) { /* Is an Infinity, a NaN, or an unsupported data type. */ return TAG_Special; } if ( !(ptr->sigh & 0x80000000) ) { /* Unsupported data type. */ /* Valid numbers have the ms bit set to 1. */ /* Unnormal. */ return TAG_Special; } return TAG_Valid; } /* Get a long double from user memory */ int FPU_load_extended(current_i387_definefunyuan_ long double *s, int stnr) { FPU_REG *sti_ptr = &st(stnr); RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, s, 10); #ifndef USE_WITH_CPU_SIM __copy_from_user(sti_ptr, s, 10); #else FPU_get_user(sti_ptr->sigl, (u32*)(((u8*)s)+0)); FPU_get_user(sti_ptr->sigh, (u32*)(((u8*)s)+4)); FPU_get_user(sti_ptr->exp, (u16*)(((u8*)s)+8)); #endif RE_ENTRANT_CHECK_ON; return FPU_tagof(current_i387_yuan_ sti_ptr); } /* Get a double from user memory */ int FPU_load_double(current_i387_definefunyuan_ double *dfloat, FPU_REG *loaded_data) { int exp, tag, negative; u32 m64, l64; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, dfloat, 8); FPU_get_user(m64, 1 + (u32 *) dfloat); FPU_get_user(l64, (u32 *) dfloat); RE_ENTRANT_CHECK_ON; negative = (m64 & 0x80000000) ? SIGN_Negative : SIGN_Positive; exp = ((m64 & 0x7ff00000) >> 20) - DOUBLE_Ebias + EXTENDED_Ebias; m64 &= 0xfffff; if ( exp > DOUBLE_Emax + EXTENDED_Ebias ) { /* Infinity or NaN */ if ((m64 == 0) && (l64 == 0)) { /* +- infinity */ loaded_data->sigh = 0x80000000; loaded_data->sigl = 0x00000000; exp = EXP_Infinity + EXTENDED_Ebias; tag = TAG_Special; } else { /* Must be a signaling or quiet NaN */ exp = EXP_NaN + EXTENDED_Ebias; loaded_data->sigh = (m64 << 11) | 0x80000000; loaded_data->sigh |= l64 >> 21; loaded_data->sigl = l64 << 11; tag = TAG_Special; /* The calling function must look for NaNs */ } } else if ( exp < DOUBLE_Emin + EXTENDED_Ebias ) { /* Zero or de-normal */ if ((m64 == 0) && (l64 == 0)) { /* Zero */ reg_copy(&CONST_Z, loaded_data); exp = 0; tag = TAG_Zero; } else { /* De-normal */ loaded_data->sigh = m64 << 11; loaded_data->sigh |= l64 >> 21; loaded_data->sigl = l64 << 11; return normalize_no_excep(current_i387_yuan_ loaded_data, DOUBLE_Emin, negative) | (denormal_operand(current_i387_yuan_le ) < 0 ? FPU_Exception : 0); } } else { loaded_data->sigh = (m64 << 11) | 0x80000000; loaded_data->sigh |= l64 >> 21; loaded_data->sigl = l64 << 11; tag = TAG_Valid; } setexponent16(loaded_data, exp | negative); return tag; } /* Get a float from user memory */ int FPU_load_single(current_i387_definefunyuan_ float *single, FPU_REG *loaded_data) { u32 m32; int exp, tag, negative; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, single, 4); FPU_get_user(m32, (u32 *) single); RE_ENTRANT_CHECK_ON; negative = (m32 & 0x80000000) ? SIGN_Negative : SIGN_Positive; if (!(m32 & 0x7fffffff)) { /* Zero */ reg_copy(&CONST_Z, loaded_data); addexponent(loaded_data, negative); return TAG_Zero; } exp = ((m32 & 0x7f800000) >> 23) - SINGLE_Ebias + EXTENDED_Ebias; m32 = (m32 & 0x7fffff) << 8; if ( exp < SINGLE_Emin + EXTENDED_Ebias ) { /* De-normals */ loaded_data->sigh = m32; loaded_data->sigl = 0; return normalize_no_excep(current_i387_yuan_ loaded_data, SINGLE_Emin, negative) | (denormal_operand(current_i387_yuan_le ) < 0 ? FPU_Exception : 0); } else if ( exp > SINGLE_Emax + EXTENDED_Ebias ) { /* Infinity or NaN */ if ( m32 == 0 ) { /* +- infinity */ loaded_data->sigh = 0x80000000; loaded_data->sigl = 0x00000000; exp = EXP_Infinity + EXTENDED_Ebias; tag = TAG_Special; } else { /* Must be a signaling or quiet NaN */ exp = EXP_NaN + EXTENDED_Ebias; loaded_data->sigh = m32 | 0x80000000; loaded_data->sigl = 0; tag = TAG_Special; /* The calling function must look for NaNs */ } } else { loaded_data->sigh = m32 | 0x80000000; loaded_data->sigl = 0; tag = TAG_Valid; } setexponent16(loaded_data, exp | negative); /* Set the sign. */ return tag; } /* Get a 64bit quantity from user memory */ int FPU_load_int64(current_i387_definefunyuan_ s64 *_s) { s64 s; int sign; FPU_REG *st0_ptr = &st(0); RE_ENTRANT_CHECK_OFF; FPU_verify_area( VERIFY_READ, _s, 8); #ifndef USE_WITH_CPU_SIM copy_from_user(&s,_s,8); #else { u32 chunk0, chunk1; FPU_get_user(chunk0, (u32*)(((u8*)_s)+0)); FPU_get_user(chunk1, (u32*)(((u8*)_s)+4)); s = chunk0; s |= (((u64)chunk1) << 32); } #endif RE_ENTRANT_CHECK_ON; if (s == 0) { reg_copy(&CONST_Z, st0_ptr); return TAG_Zero; } if (s > 0) sign = SIGN_Positive; else { s = -s; sign = SIGN_Negative; } st0_ptr->sigl = (u32)s; st0_ptr->sigh = (u32)(s>>32); // significand(st0_ptr) = s; return normalize_no_excep(current_i387_yuan_ st0_ptr, 63, sign); } /* Get a long from user memory */ int FPU_load_int32(current_i387_definefunyuan_ s32 *_s, FPU_REG *loaded_data) { s32 s; int negative; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, _s, 4); FPU_get_user(s, _s); RE_ENTRANT_CHECK_ON; if (s == 0) { reg_copy(&CONST_Z, loaded_data); return TAG_Zero; } if (s > 0) negative = SIGN_Positive; else { s = -s; negative = SIGN_Negative; } loaded_data->sigh = s; loaded_data->sigl = 0; return normalize_no_excep(current_i387_yuan_ loaded_data, 31, negative); } /* Get a short from user memory */ int FPU_load_int16(current_i387_definefunyuan_ s16 *_s, FPU_REG *loaded_data) { int s, negative; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, _s, 2); /* Cast as short to get the sign extended. */ FPU_get_user(s, _s); RE_ENTRANT_CHECK_ON; if (s == 0) { reg_copy(&CONST_Z, loaded_data); return TAG_Zero; } if (s > 0) negative = SIGN_Positive; else { s = -s; negative = SIGN_Negative; } loaded_data->sigh = s << 16; loaded_data->sigl = 0; return normalize_no_excep(current_i387_yuan_ loaded_data, 15, negative); } /* Get a packed bcd array from user memory */ int FPU_load_bcd(current_i387_definefunyuan_ u_char *s) { FPU_REG *st0_ptr = &st(0); int pos; u_char bcd; s64 l=0; int sign; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, s, 10); RE_ENTRANT_CHECK_ON; for ( pos = 8; pos >= 0; pos--) { l *= 10; RE_ENTRANT_CHECK_OFF; FPU_get_user(bcd, (u_char *) s+pos); RE_ENTRANT_CHECK_ON; l += bcd >> 4; l *= 10; l += bcd & 0x0f; } RE_ENTRANT_CHECK_OFF; FPU_get_user(current_i387_yuan_ sign, (u_char *) s+9); sign = sign & 0x80 ? SIGN_Negative : SIGN_Positive; RE_ENTRANT_CHECK_ON; if ( l == 0 ) { reg_copy(&CONST_Z, st0_ptr); addexponent(st0_ptr, sign); /* Set the sign. */ return TAG_Zero; } else { //significand(st0_ptr) = l; st0_ptr->sigl = (u32)l; st0_ptr->sigh = (u32)(l>>32); return normalize_no_excep(current_i387_yuan_ st0_ptr, 63, sign); } } /*===========================================================================*/ /* Put a long double into user memory */ int FPU_store_extended(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, long double *d) { /* The only exception raised by an attempt to store to an extended format is the Invalid Stack exception, i.e. attempting to store from an empty register. */ if ( st0_tag != TAG_Empty ) { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE, d, 10); FPU_put_user(st0_ptr->sigl, (u32 *) d); FPU_put_user(st0_ptr->sigh, (u32 *) ((u_char *)d + 4)); FPU_put_user(exponent16(st0_ptr), (u16 *) ((u_char *)d + 8)); RE_ENTRANT_CHECK_ON; return 1; } /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); if ( control_word & CW_Invalid ) { /* The masked response */ /* Put out the QNaN indefinite */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,10); FPU_put_user(0, (u32 *) d); FPU_put_user(0xc0000000, 1 + (u32 *) d); FPU_put_user(0xffff, 4 + (s16 *) d); RE_ENTRANT_CHECK_ON; return 1; } else return 0; } /* Put a double into user memory */ int FPU_store_double(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, double *dfloat) { u32 l[2]; u32 increment = 0; /* avoid gcc warnings */ int precision_loss; int exp; FPU_REG tmp; if ( st0_tag == TAG_Valid ) { reg_copy(st0_ptr, &tmp); exp = exponent(&tmp); if ( exp < DOUBLE_Emin ) /* It may be a denormal */ { addexponent(&tmp, -DOUBLE_Emin + 52); /* largest exp to be 51 */ denormal_arg: if ( (precision_loss = FPU_round_to_int(current_i387_yuan_ &tmp, st0_tag)) ) { #ifdef PECULIAR_486 /* Did it round to a non-denormal ? */ /* This behaviour might be regarded as peculiar, it appears that the 80486 rounds to the dest precision, then converts to decide underflow. */ if ( !((tmp.sigh == 0x00100000) && (tmp.sigl == 0) && (st0_ptr->sigl & 0x000007ff)) ) #endif /* PECULIAR_486 */ { EXCEPTION(EX_Underflow); /* This is a special case: see sec 16.2.5.1 of the 80486 book */ if ( !(control_word & CW_Underflow) ) return 0; } EXCEPTION(precision_loss); if ( !(control_word & CW_Precision) ) return 0; } l[0] = tmp.sigl; l[1] = tmp.sigh; } else { if ( tmp.sigl & 0x000007ff ) { precision_loss = 1; switch (control_word & CW_RC) { case RC_RND: /* Rounding can get a little messy.. */ increment = ((tmp.sigl & 0x7ff) > 0x400) | /* nearest */ ((tmp.sigl & 0xc00) == 0xc00); /* odd -> even */ break; case RC_DOWN: /* towards -infinity */ increment = signpositive(&tmp) ? 0 : tmp.sigl & 0x7ff; break; case RC_UP: /* towards +infinity */ increment = signpositive(&tmp) ? tmp.sigl & 0x7ff : 0; break; case RC_CHOP: increment = 0; break; } /* Truncate the mantissa */ tmp.sigl &= 0xfffff800; if ( increment ) { if ( tmp.sigl >= 0xfffff800 ) { /* the sigl part overflows */ if ( tmp.sigh == 0xffffffff ) { /* The sigh part overflows */ tmp.sigh = 0x80000000; exp++; if (exp >= EXP_OVER) goto overflow; } else { tmp.sigh ++; } tmp.sigl = 0x00000000; } else { /* We only need to increment sigl */ tmp.sigl += 0x00000800; } } } else precision_loss = 0; l[0] = (tmp.sigl >> 11) | (tmp.sigh << 21); l[1] = ((tmp.sigh >> 11) & 0xfffff); if ( exp > DOUBLE_Emax ) { overflow: EXCEPTION(EX_Overflow); if ( !(control_word & CW_Overflow) ) return 0; set_precision_flag_up(current_i387_yuan_clono ); if ( !(control_word & CW_Precision) ) return 0; /* This is a special case: see sec 16.2.5.1 of the 80486 book */ /* Overflow to infinity */ l[0] = 0x00000000; /* Set to */ l[1] = 0x7ff00000; /* + INF */ } else { if ( precision_loss ) { if ( increment ) set_precision_flag_up(current_i387_yuan_clono ); else set_precision_flag_down(current_i387_yuan_clono ); } /* Add the exponent */ l[1] |= (((exp+DOUBLE_Ebias) & 0x7ff) << 20); } } } else if (st0_tag == TAG_Zero) { /* Number is zero */ l[0] = 0; l[1] = 0; } else if ( st0_tag == TAG_Special ) { st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( st0_tag == TW_Denormal ) { /* A denormal will always underflow. */ #ifndef PECULIAR_486 /* An 80486 is supposed to be able to generate a denormal exception here, but... */ /* Underflow has priority. */ if ( control_word & CW_Underflow ) denormal_operand(current_i387_yuan_clono ); #endif /* PECULIAR_486 */ reg_copy(st0_ptr, &tmp); goto denormal_arg; } else if (st0_tag == TW_Infinity) { l[0] = 0; l[1] = 0x7ff00000; } else if (st0_tag == TW_NaN) { /* Is it really a NaN ? */ if ( (exponent(st0_ptr) == EXP_OVER) && (st0_ptr->sigh & 0x80000000) ) { /* See if we can get a valid NaN from the FPU_REG */ l[0] = (st0_ptr->sigl >> 11) | (st0_ptr->sigh << 21); l[1] = ((st0_ptr->sigh >> 11) & 0xfffff); if ( !(st0_ptr->sigh & 0x40000000) ) { /* It is a signalling NaN */ EXCEPTION(EX_Invalid); if ( !(control_word & CW_Invalid) ) return 0; l[1] |= (0x40000000 >> 11); } l[1] |= 0x7ff00000; } else { /* It is an unsupported data type */ EXCEPTION(EX_Invalid); if ( !(control_word & CW_Invalid) ) return 0; l[0] = 0; l[1] = 0xfff80000; } } } else if ( st0_tag == TAG_Empty ) { /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); if ( control_word & CW_Invalid ) { /* The masked response */ /* Put out the QNaN indefinite */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,(void *)dfloat,8); FPU_put_user(0, (u32 *) dfloat); FPU_put_user(0xfff80000, 1 + (u32 *) dfloat); RE_ENTRANT_CHECK_ON; return 1; } else return 0; } if ( getsign(st0_ptr) ) l[1] |= 0x80000000; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,(void *)dfloat,8); FPU_put_user(l[0], (u32 *)dfloat); FPU_put_user(l[1], 1 + (u32 *)dfloat); RE_ENTRANT_CHECK_ON; return 1; } /* Put a float into user memory */ int FPU_store_single(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, float *single) { s32 templ; u32 increment = 0; /* avoid gcc warnings */ int precision_loss; int exp; FPU_REG tmp; if ( st0_tag == TAG_Valid ) { reg_copy(st0_ptr, &tmp); exp = exponent(&tmp); if ( exp < SINGLE_Emin ) { addexponent(&tmp, -SINGLE_Emin + 23); /* largest exp to be 22 */ denormal_arg: if ( (precision_loss = FPU_round_to_int(current_i387_yuan_ &tmp, st0_tag)) ) { #ifdef PECULIAR_486 /* Did it round to a non-denormal ? */ /* This behaviour might be regarded as peculiar, it appears that the 80486 rounds to the dest precision, then converts to decide underflow. */ if ( !((tmp.sigl == 0x00800000) && ((st0_ptr->sigh & 0x000000ff) || st0_ptr->sigl)) ) #endif /* PECULIAR_486 */ { EXCEPTION(EX_Underflow); /* This is a special case: see sec 16.2.5.1 of the 80486 book */ if ( !(control_word & CW_Underflow) ) return 0; } EXCEPTION(precision_loss); if ( !(control_word & CW_Precision) ) return 0; } templ = tmp.sigl; } else { if ( tmp.sigl | (tmp.sigh & 0x000000ff) ) { u32 sigh = tmp.sigh; u32 sigl = tmp.sigl; precision_loss = 1; switch (control_word & CW_RC) { case RC_RND: increment = ((sigh & 0xff) > 0x80) /* more than half */ || (((sigh & 0xff) == 0x80) && sigl) /* more than half */ || ((sigh & 0x180) == 0x180); /* round to even */ break; case RC_DOWN: /* towards -infinity */ increment = signpositive(&tmp) ? 0 : (sigl | (sigh & 0xff)); break; case RC_UP: /* towards +infinity */ increment = signpositive(&tmp) ? (sigl | (sigh & 0xff)) : 0; break; case RC_CHOP: increment = 0; break; } /* Truncate part of the mantissa */ tmp.sigl = 0; if (increment) { if ( sigh >= 0xffffff00 ) { /* The sigh part overflows */ tmp.sigh = 0x80000000; exp++; if ( exp >= EXP_OVER ) goto overflow; } else { tmp.sigh &= 0xffffff00; tmp.sigh += 0x100; } } else { tmp.sigh &= 0xffffff00; /* Finish the truncation */ } } else precision_loss = 0; templ = (tmp.sigh >> 8) & 0x007fffff; if ( exp > SINGLE_Emax ) { overflow: EXCEPTION(EX_Overflow); if ( !(control_word & CW_Overflow) ) return 0; set_precision_flag_up(current_i387_yuan_clono ); if ( !(control_word & CW_Precision) ) return 0; /* This is a special case: see sec 16.2.5.1 of the 80486 book. */ /* Masked response is overflow to infinity. */ templ = 0x7f800000; } else { if ( precision_loss ) { if ( increment ) set_precision_flag_up(current_i387_yuan_clono ); else set_precision_flag_down(current_i387_yuan_clono ); } /* Add the exponent */ templ |= ((exp+SINGLE_Ebias) & 0xff) << 23; } } } else if (st0_tag == TAG_Zero) { templ = 0; } else if ( st0_tag == TAG_Special ) { st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if (st0_tag == TW_Denormal) { reg_copy(st0_ptr, &tmp); /* A denormal will always underflow. */ #ifndef PECULIAR_486 /* An 80486 is supposed to be able to generate a denormal exception here, but... */ /* Underflow has priority. */ if ( control_word & CW_Underflow ) denormal_operand(current_i387_yuan_clono ); #endif /* PECULIAR_486 */ goto denormal_arg; } else if (st0_tag == TW_Infinity) { templ = 0x7f800000; } else if (st0_tag == TW_NaN) { /* Is it really a NaN ? */ if ( (exponent(st0_ptr) == EXP_OVER) && (st0_ptr->sigh & 0x80000000) ) { /* See if we can get a valid NaN from the FPU_REG */ templ = st0_ptr->sigh >> 8; if ( !(st0_ptr->sigh & 0x40000000) ) { /* It is a signalling NaN */ EXCEPTION(EX_Invalid); if ( !(control_word & CW_Invalid) ) return 0; templ |= (0x40000000 >> 8); } templ |= 0x7f800000; } else { /* It is an unsupported data type */ EXCEPTION(EX_Invalid); if ( !(control_word & CW_Invalid) ) return 0; templ = 0xffc00000; } } #ifdef PARANOID else { EXCEPTION(EX_INTERNAL|0x164); return 0; } #endif } else if ( st0_tag == TAG_Empty ) { /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); if ( control_word & EX_Invalid ) { /* The masked response */ /* Put out the QNaN indefinite */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,(void *)single,4); FPU_put_user(0xffc00000, (u32 *) single); RE_ENTRANT_CHECK_ON; return 1; } else return 0; } #ifdef PARANOID else { EXCEPTION(EX_INTERNAL|0x163); return 0; } #endif if ( getsign(st0_ptr) ) templ |= 0x80000000; RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,(void *)single,4); FPU_put_user(templ,(u32 *) single); RE_ENTRANT_CHECK_ON; return 1; } /* Put a 64bit quantity into user memory */ int FPU_store_int64(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, s64 *d) { FPU_REG t; s64 tll; int precision_loss; if ( st0_tag == TAG_Empty ) { /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); goto invalid_operand; } else if ( st0_tag == TAG_Special ) { st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( (st0_tag == TW_Infinity) || (st0_tag == TW_NaN) ) { EXCEPTION(EX_Invalid); goto invalid_operand; } } reg_copy(st0_ptr, &t); precision_loss = FPU_round_to_int(current_i387_yuan_ &t, st0_tag); #ifndef EMU_BIG_ENDIAN ((u32 *)&tll)[0] = t.sigl; ((u32 *)&tll)[1] = t.sigh; #else ((u32 *)&tll)[0] = t.sigh; ((u32 *)&tll)[1] = t.sigl; #endif if ( (precision_loss == 1) || ((t.sigh & 0x80000000) && !((t.sigh == 0x80000000) && (t.sigl == 0) && signnegative(&t))) ) { EXCEPTION(EX_Invalid); /* This is a special case: see sec 16.2.5.1 of the 80486 book */ invalid_operand: if ( control_word & EX_Invalid ) { /* Produce something like QNaN "indefinite" */ tll = BX_CONST64(0x8000000000000000); } else return 0; } else { if ( precision_loss ) set_precision_flag(current_i387_yuan_ precision_loss); if ( signnegative(&t) ) tll = - tll; } RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,(void *)d,8); #ifndef USE_WITH_CPU_SIM copy_to_user(d, &tll, 8); #else FPU_put_user((u32) tll, (u32*)(((u8 *)d)+0)); FPU_put_user((u32) (tll>>32), (u32*)(((u8 *)d)+4)); #endif RE_ENTRANT_CHECK_ON; return 1; } /* Put a long into user memory */ int FPU_store_int32(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, s32 *d) { FPU_REG t; int precision_loss; if ( st0_tag == TAG_Empty ) { /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); goto invalid_operand; } else if ( st0_tag == TAG_Special ) { st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( (st0_tag == TW_Infinity) || (st0_tag == TW_NaN) ) { EXCEPTION(EX_Invalid); goto invalid_operand; } } reg_copy(st0_ptr, &t); precision_loss = FPU_round_to_int(current_i387_yuan_ &t, st0_tag); if (t.sigh || ((t.sigl & 0x80000000) && !((t.sigl == 0x80000000) && signnegative(&t))) ) { EXCEPTION(EX_Invalid); /* This is a special case: see sec 16.2.5.1 of the 80486 book */ invalid_operand: if ( control_word & EX_Invalid ) { /* Produce something like QNaN "indefinite" */ t.sigl = 0x80000000; } else return 0; } else { if ( precision_loss ) set_precision_flag(current_i387_yuan_ precision_loss); if ( signnegative(&t) ) t.sigl = -(s32)t.sigl; } RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,4); FPU_put_user(t.sigl, (u32 *) d); RE_ENTRANT_CHECK_ON; return 1; } /* Put a short into user memory */ int FPU_store_int16(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, s16 *d) { FPU_REG t; int precision_loss; if ( st0_tag == TAG_Empty ) { /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); goto invalid_operand; } else if ( st0_tag == TAG_Special ) { st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( (st0_tag == TW_Infinity) || (st0_tag == TW_NaN) ) { EXCEPTION(EX_Invalid); goto invalid_operand; } } reg_copy(st0_ptr, &t); precision_loss = FPU_round_to_int(current_i387_yuan_ &t, st0_tag); if (t.sigh || ((t.sigl & 0xffff8000) && !((t.sigl == 0x8000) && signnegative(&t))) ) { EXCEPTION(EX_Invalid); /* This is a special case: see sec 16.2.5.1 of the 80486 book */ invalid_operand: if ( control_word & EX_Invalid ) { /* Produce something like QNaN "indefinite" */ t.sigl = 0x8000; } else return 0; } else { if ( precision_loss ) set_precision_flag(current_i387_yuan_ precision_loss); if ( signnegative(&t) ) t.sigl = (0-t.sigl); } RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,2); FPU_put_user((s16)t.sigl,(s16 *) d); RE_ENTRANT_CHECK_ON; return 1; } /* Put a packed bcd array into user memory */ int FPU_store_bcd(current_i387_definefunyuan_ FPU_REG *st0_ptr, u_char st0_tag, u_char *d) { FPU_REG t; u64 ll; u_char b; int i, precision_loss; u_char sign = (getsign(st0_ptr) == SIGN_NEG) ? 0x80 : 0; if ( st0_tag == TAG_Empty ) { /* Empty register (stack underflow) */ EXCEPTION(EX_StackUnder); goto invalid_operand; } else if ( st0_tag == TAG_Special ) { st0_tag = FPU_Special(current_i387_yuan_ st0_ptr); if ( (st0_tag == TW_Infinity) || (st0_tag == TW_NaN) ) { EXCEPTION(EX_Invalid); goto invalid_operand; } } reg_copy(st0_ptr, &t); precision_loss = FPU_round_to_int(current_i387_yuan_ &t, st0_tag); ll = significand(&t); /* Check for overflow, by comparing with 999999999999999999 decimal. */ if ( (t.sigh > 0x0de0b6b3) || ((t.sigh == 0x0de0b6b3) && (t.sigl > 0xa763ffff)) ) { EXCEPTION(EX_Invalid); /* This is a special case: see sec 16.2.5.1 of the 80486 book */ invalid_operand: if ( control_word & CW_Invalid ) { /* Produce the QNaN "indefinite" */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,10); for ( i = 0; i < 7; i++) FPU_put_user(0, (u_char *) d+i); /* These bytes "undefined" */ FPU_put_user(0xc0, (u_char *) d+7); /* This byte "undefined" */ FPU_put_user(0xff, (u_char *) d+8); FPU_put_user(0xff, (u_char *) d+9); RE_ENTRANT_CHECK_ON; return 1; } else return 0; } else if ( precision_loss ) { /* Precision loss doesn't stop the data transfer */ set_precision_flag(current_i387_yuan_ precision_loss); } RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,10); RE_ENTRANT_CHECK_ON; for ( i = 0; i < 9; i++) { b = FPU_div_small(current_i387_yuan_ &ll, 10); b |= (FPU_div_small(current_i387_yuan_ &ll, 10)) << 4; RE_ENTRANT_CHECK_OFF; FPU_put_user(b,(u_char *) d+i); RE_ENTRANT_CHECK_ON; } RE_ENTRANT_CHECK_OFF; FPU_put_user(sign,(u_char *) d+9); RE_ENTRANT_CHECK_ON; return 1; } /*===========================================================================*/ /* r gets mangled such that sig is int, sign: it is NOT normalized */ /* The return value (in eax) is zero if the result is exact, if bits are changed due to rounding, truncation, etc, then a non-zero value is returned */ /* Overflow is signalled by a non-zero return value (in eax). In the case of overflow, the returned significand always has the largest possible value */ int FPU_round_to_int(current_i387_definefunyuan_ FPU_REG *r, u_char tag) { u_char very_big; unsigned eax; if (tag == TAG_Zero) { /* Make sure that zero is returned */ significand(r) = 0; return 0; /* o.k. */ } if (exponent(r) > 63) { r->sigl = r->sigh = ~0; /* The largest representable number */ return 1; /* overflow */ } #ifndef EMU_BIG_ENDIAN eax = FPU_shrxs(current_i387_yuan_ &r->sigl, 63 - exponent(r)); #else eax = FPU_shrxs(current_i387_yuan_ &r->sigh, 63 - exponent(r)); #endif very_big = !(~(r->sigh) | ~(r->sigl)); /* test for 0xfff...fff */ #define half_or_more (eax & 0x80000000) #define frac_part (eax) #define more_than_half ((eax & 0x80000001) == 0x80000001) switch (control_word & CW_RC) { case RC_RND: if ( more_than_half /* nearest */ || (half_or_more && (r->sigl & 1)) ) /* odd -> even */ { if ( very_big ) return 1; /* overflow */ significand(r) ++; return PRECISION_LOST_UP; } break; case RC_DOWN: if (frac_part && getsign(r)) { if ( very_big ) return 1; /* overflow */ significand(r) ++; return PRECISION_LOST_UP; } break; case RC_UP: if (frac_part && !getsign(r)) { if ( very_big ) return 1; /* overflow */ significand(r) ++; return PRECISION_LOST_UP; } break; case RC_CHOP: break; } return eax ? PRECISION_LOST_DOWN : 0; } /*===========================================================================*/ u_char *fldenv(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *s) { u16 tag_word = 0; u_char tag; int i; if ( (addr_modes.default_mode == VM86) || ((addr_modes.default_mode == PM16) ^ (addr_modes.override.operand_size == OP_SIZE_PREFIX)) ) { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, s, 0x0e); FPU_get_user(control_word, (u16 *) s); FPU_get_user(partial_status, (u16 *) (s+2)); FPU_get_user(tag_word, (u16 *) (s+4)); FPU_get_user(instruction_address.offset, (u16 *) (s+6)); FPU_get_user(instruction_address.selector, (u16 *) (s+8)); FPU_get_user(operand_address.offset, (u16 *) (s+0x0a)); FPU_get_user(operand_address.selector, (u16 *) (s+0x0c)); RE_ENTRANT_CHECK_ON; s += 0x0e; if ( addr_modes.default_mode == VM86 ) { instruction_address.offset += (instruction_address.selector & 0xf000) << 4; operand_address.offset += (operand_address.selector & 0xf000) << 4; } } else { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ, s, 0x1c); FPU_get_user(control_word, (u16 *) s); FPU_get_user(partial_status, (u16 *) (s+4)); FPU_get_user(tag_word, (u16 *) (s+8)); FPU_get_user(instruction_address.offset, (u32 *) (s+0x0c)); FPU_get_user(instruction_address.selector, (u16 *) (s+0x10)); FPU_get_user(instruction_address.opcode, (u16 *) (s+0x12)); FPU_get_user(operand_address.offset, (u32 *) (s+0x14)); FPU_get_user(operand_address.selector, (u32 *) (s+0x18)); RE_ENTRANT_CHECK_ON; s += 0x1c; } #ifdef PECULIAR_486 control_word &= ~0xe080; #endif /* PECULIAR_486 */ top = (partial_status >> SW_Top_Shift) & 7; if ( partial_status & ~control_word & CW_Exceptions ) partial_status |= (SW_Summary | SW_Backward); else partial_status &= ~(SW_Summary | SW_Backward); for ( i = 0; i < 8; i++ ) { tag = tag_word & 3; tag_word >>= 2; if ( tag == TAG_Empty ) /* New tag is empty. Accept it */ FPU_settag(current_i387_yuan_ i, TAG_Empty); else if ( FPU_gettag(current_i387_yuan_ i) == TAG_Empty ) { /* Old tag is empty and new tag is not empty. New tag is determined by old reg contents */ if ( exponent(&fpu_register(i)) == - EXTENDED_Ebias ) { if ( !(fpu_register(i).sigl | fpu_register(i).sigh) ) FPU_settag(current_i387_yuan_ i, TAG_Zero); else FPU_settag(current_i387_yuan_ i, TAG_Special); } else if ( exponent(&fpu_register(i)) == 0x7fff - EXTENDED_Ebias ) { FPU_settag(current_i387_yuan_ i, TAG_Special); } else if ( fpu_register(i).sigh & 0x80000000 ) FPU_settag(current_i387_yuan_ i, TAG_Valid); else FPU_settag(current_i387_yuan_ i, TAG_Special); /* An Un-normal */ } /* Else old tag is not empty and new tag is not empty. Old tag remains correct */ } return s; } void frstor(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *data_address) { int i, regnr; u_char *s = fldenv(current_i387_yuan_ addr_modes, data_address); int offset = (top & 7) * sizeof(FPU_REG), other = 8*sizeof(FPU_REG) - offset; /* Copy all registers in stack order. */ RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_READ,s,80); #ifndef USE_WITH_CPU_SIM __copy_from_user(register_base+offset, s, other); if ( offset ) __copy_from_user(register_base, s+other, offset); #else { FPU_REG *fpu_reg_p; fpu_reg_p = (FPU_REG *) (register_base+offset); while (other>0) { FPU_get_user(fpu_reg_p->sigl, (u32*)(s+0)); FPU_get_user(fpu_reg_p->sigh, (u32*)(s+4)); FPU_get_user(fpu_reg_p->exp, (u16*)(s+8)); fpu_reg_p++; s += 10; other -= sizeof(FPU_REG); } fpu_reg_p = (FPU_REG *) register_base; while (offset>0) { FPU_get_user(fpu_reg_p->sigl, (u32*)(s+0)); FPU_get_user(fpu_reg_p->sigh, (u32*)(s+4)); FPU_get_user(fpu_reg_p->exp, (u16*)(s+8)); fpu_reg_p++; s += 10; offset -= sizeof(FPU_REG); } } #endif RE_ENTRANT_CHECK_ON; for ( i = 0; i < 8; i++ ) { regnr = (i+top) & 7; if ( FPU_gettag(current_i387_yuan_ regnr) != TAG_Empty ) /* The loaded data over-rides all other cases. */ FPU_settag(current_i387_yuan_ regnr, FPU_tagof(current_i387_yuan_ &st(i))); } } u_char *fstenv(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *d) { if ( (addr_modes.default_mode == VM86) || ((addr_modes.default_mode == PM16) ^ (addr_modes.override.operand_size == OP_SIZE_PREFIX)) ) { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,14); #ifdef PECULIAR_486 FPU_put_user(control_word & ~0xe080, (u32 *) d); #else FPU_put_user(control_word, (u16 *) d); #endif /* PECULIAR_486 */ FPU_put_user(status_word(), (u16 *) (d+2)); FPU_put_user(fpu_tag_word, (u16 *) (d+4)); FPU_put_user(instruction_address.offset, (u16 *) (d+6)); FPU_put_user(operand_address.offset, (u16 *) (d+0x0a)); if ( addr_modes.default_mode == VM86 ) { FPU_put_user((instruction_address.offset & 0xf0000) >> 4, (u16 *) (d+8)); FPU_put_user((operand_address.offset & 0xf0000) >> 4, (u16 *) (d+0x0c)); } else { FPU_put_user(instruction_address.selector, (u16 *) (d+8)); FPU_put_user(operand_address.selector, (u16 *) (d+0x0c)); } RE_ENTRANT_CHECK_ON; d += 0x0e; } else { RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE, d, 7*4); #ifdef PECULIAR_486 control_word &= ~0xe080; /* An 80486 sets nearly all of the reserved bits to 1. */ control_word |= 0xffff0040; partial_status = status_word() | 0xffff0000; fpu_tag_word |= 0xffff0000; I387.soft.fcs &= ~0xf8000000; I387.soft.fos |= 0xffff0000; #endif /* PECULIAR_486 */ #ifndef USE_WITH_CPU_SIM __copy_to_user(d, &control_word, 7*4); #else FPU_put_user((u32) I387.soft.cwd, (u32*)(((u8 *)d)+0)); FPU_put_user((u32) I387.soft.swd, (u32*)(((u8 *)d)+4)); FPU_put_user((u32) I387.soft.twd, (u32*)(((u8 *)d)+8)); FPU_put_user((u32) I387.soft.fip, (u32*)(((u8 *)d)+12)); FPU_put_user((u32) I387.soft.fcs, (u32*)(((u8 *)d)+16)); FPU_put_user((u32) I387.soft.foo, (u32*)(((u8 *)d)+20)); FPU_put_user((u32) I387.soft.fos, (u32*)(((u8 *)d)+24)); #endif RE_ENTRANT_CHECK_ON; d += 0x1c; } control_word |= CW_Exceptions; partial_status &= ~(SW_Summary | SW_Backward); return d; } void fsave(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char *data_address) { u_char *d; int offset = (top & 7) * sizeof(FPU_REG), other = 8*sizeof(FPU_REG) - offset; d = fstenv(current_i387_yuan_ addr_modes, data_address); RE_ENTRANT_CHECK_OFF; FPU_verify_area(VERIFY_WRITE,d,80); /* Copy all registers in stack order. */ #ifndef USE_WITH_CPU_SIM __copy_to_user(d, register_base+offset, other); if ( offset ) __copy_to_user(d+other, register_base, offset); #else { FPU_REG *fpu_reg_p; fpu_reg_p = (FPU_REG *) (register_base+offset); while (other>0) { FPU_put_user(fpu_reg_p->sigl, (u32*)(d+0)); FPU_put_user(fpu_reg_p->sigh, (u32*)(d+4)); FPU_put_user(fpu_reg_p->exp, (u16*)(d+8)); fpu_reg_p++; d += 10; other -= sizeof(FPU_REG); } fpu_reg_p = (FPU_REG *) register_base; while (offset>0) { FPU_put_user(fpu_reg_p->sigl, (u32*)(d+0)); FPU_put_user(fpu_reg_p->sigh, (u32*)(d+4)); FPU_put_user(fpu_reg_p->exp, (u16*)(d+8)); fpu_reg_p++; d += 10; offset -= sizeof(FPU_REG); } } #endif RE_ENTRANT_CHECK_ON; finit(current_i387_yuan_clono ); } /*===========================================================================*/ ================================================ FILE: Project/fpu/Source/reg_mul.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_mul.c | | $Id: reg_mul.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Multiply one FPU_REG by another, put the result in a destination FPU_REG. | | | | Copyright (C) 1992,1993,1997 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@suburbia.net | | | | Returns the tag of the result if no exceptions or errors occurred. | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | The destination may be any FPU_REG, including one of the source FPU_REGs. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "exception.h" #include "reg_constant.h" #include "fpu_system.h" /* Multiply two registers to give a register result. The sources are st(deststnr) and (b,tagb,signb). The destination is st(deststnr). */ /* This routine must be called with non-empty source registers */ int FPU_mul(current_i387_definefunyuan_ FPU_REG const *b, u_char tagb, int deststnr, int control_w) { FPU_REG *a = &st(deststnr); FPU_REG *dest = a; u_char taga = FPU_gettagi(current_i387_yuan_ deststnr); u_char saved_sign = getsign(dest); u_char sign = (getsign(a) ^ getsign(b)); int tag; if ( !(taga | tagb) ) { /* Both regs Valid, this should be the most common case. */ tag = FPU_u_mul(current_i387_yuan_ a, b, dest, control_w, sign, exponent(a) + exponent(b)); if ( tag < 0 ) { setsign(dest, saved_sign); return tag; } FPU_settagi(current_i387_yuan_ deststnr, tag); return tag; } if ( taga == TAG_Special ) taga = FPU_Special(current_i387_yuan_ a); if ( tagb == TAG_Special ) tagb = FPU_Special(current_i387_yuan_ b); if ( ((taga == TAG_Valid) && (tagb == TW_Denormal)) || ((taga == TW_Denormal) && (tagb == TAG_Valid)) || ((taga == TW_Denormal) && (tagb == TW_Denormal)) ) { FPU_REG x, y; if ( denormal_operand(current_i387_yuan_le ) < 0 ) return FPU_Exception; FPU_to_exp16(current_i387_yuan_ a, &x); FPU_to_exp16(current_i387_yuan_ b, &y); tag = FPU_u_mul(current_i387_yuan_ &x, &y, dest, control_w, sign, exponent16(&x) + exponent16(&y)); if ( tag < 0 ) { setsign(dest, saved_sign); return tag; } FPU_settagi(current_i387_yuan_ deststnr, tag); return tag; } else if ( (taga <= TW_Denormal) && (tagb <= TW_Denormal) ) { if ( ((tagb == TW_Denormal) || (taga == TW_Denormal)) && (denormal_operand(current_i387_yuan_le ) < 0) ) return FPU_Exception; /* Must have either both arguments == zero, or one valid and the other zero. The result is therefore zero. */ FPU_copy_to_regi(current_i387_yuan_ &CONST_Z, TAG_Zero, deststnr); /* The 80486 book says that the answer is +0, but a real 80486 behaves this way. IEEE-754 apparently says it should be this way. */ setsign(dest, sign); return TAG_Zero; } /* Must have infinities, NaNs, etc */ else if ( (taga == TW_NaN) || (tagb == TW_NaN) ) { return real_2op_NaN(current_i387_yuan_ b, tagb, deststnr, &st(0)); } else if ( ((taga == TW_Infinity) && (tagb == TAG_Zero)) || ((tagb == TW_Infinity) && (taga == TAG_Zero)) ) { return arith_invalid(current_i387_yuan_ deststnr); /* Zero*Infinity is invalid */ } else if ( ((taga == TW_Denormal) || (tagb == TW_Denormal)) && (denormal_operand(current_i387_yuan_le ) < 0) ) { return FPU_Exception; } else if (taga == TW_Infinity) { FPU_copy_to_regi(current_i387_yuan_ a, TAG_Special, deststnr); setsign(dest, sign); return TAG_Special; } else if (tagb == TW_Infinity) { FPU_copy_to_regi(current_i387_yuan_ b, TAG_Special, deststnr); setsign(dest, sign); return TAG_Special; } #ifdef PARANOID else { EXCEPTION(EX_INTERNAL|0x102); return FPU_Exception; } #endif /* PARANOID */ } ================================================ FILE: Project/fpu/Source/reg_norm.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_norm.c | | $Id: reg_norm.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992,1993,1994,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | Normalize the value in a FPU_REG. | | | | | | Return value is the tag of the answer. | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" int FPU_normalize_nuo(current_i387_definefunyuan_ FPU_REG *x, int bias) { if ( ! (x->sigh & 0x80000000) ) { if ( x->sigh == 0 ) { if ( x->sigl == 0 ) { x->exp = EXP_UNDER; return TAG_Zero; } x->sigh = x->sigl; x->sigl = 0; x->exp -= 32; } while ( !(x->sigh & 0x80000000) ) { x->sigh <<= 1; if ( x->sigl & 0x80000000 ) x->sigh |= 1; x->sigl <<= 1; x->exp --; } } x->exp += bias; return TAG_Valid; } ================================================ FILE: Project/fpu/Source/reg_round.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_round.c | | $Id: reg_round.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Rounding/truncation/etc for FPU basic arithmetic functions. | | | | Copyright (C) 1993,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | This code has four possible entry points. | | The following must be entered by a jmp instruction: | | fpu_reg_round, fpu_reg_round_sqrt, and fpu_Arith_exit. | | | | The FPU_round entry point is intended to be used by C code. | | | | Return value is the tag of the answer, or-ed with FPU_Exception if | | one was raised, or -1 on internal error. | | | | For correct "up" and "down" rounding, the argument must have the correct | | sign. | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | | | The significand and its extension are assumed to be exact in the | | following sense: | | If the significand by itself is the exact result then the significand | | extension (%edx) must contain 0, otherwise the significand extension | | must be non-zero. | | If the significand extension is non-zero then the significand is | | smaller than the magnitude of the correct exact result by an amount | | greater than zero and less than one ls bit of the significand. | | The significand extension is only required to have three possible | | non-zero values: | | less than 0x80000000 <=> the significand is less than 1/2 an ls | | bit smaller than the magnitude of the | | true exact result. | | exactly 0x80000000 <=> the significand is exactly 1/2 an ls bit | | smaller than the magnitude of the true | | exact result. | | greater than 0x80000000 <=> the significand is more than 1/2 an ls | | bit smaller than the magnitude of the | | true exact result. | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | The code in this module has become quite complex, but it should handle | | all of the FPU flags which are set at this stage of the basic arithmetic | | computations. | | There are a few rare cases where the results are not set identically to | | a real FPU. These require a bit more thought because at this stage the | | results of the code here appear to be more consistent... | | This may be changed in a future version. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "exception.h" #include "control_w.h" /* Flags for FPU_bits_lost */ #define LOST_DOWN 1 #define LOST_UP 2 /* Flags for FPU_denormal */ #define DENORMAL 1 #define UNMASKED_UNDERFLOW 2 int round_up_64(FPU_REG *x, u32 extent) { x->sigl ++; if ( x->sigl == 0 ) { x->sigh ++; if ( x->sigh == 0 ) { x->sigh = 0x80000000; x->exp ++; } } return LOST_UP; } int truncate_64(FPU_REG *x, u32 extent) { return LOST_DOWN; } int round_up_53(FPU_REG *x, u32 extent) { x->sigl &= 0xfffff800; x->sigl += 0x800; if ( x->sigl == 0 ) { x->sigh ++; if ( x->sigh == 0 ) { x->sigh = 0x80000000; x->exp ++; } } return LOST_UP; } int truncate_53(FPU_REG *x, u32 extent) { x->sigl &= 0xfffff800; return LOST_DOWN; } int round_up_24(FPU_REG *x, u32 extent) { x->sigl = 0; x->sigh &= 0xffffff00; x->sigh += 0x100; if ( x->sigh == 0 ) { x->sigh = 0x80000000; x->exp ++; } return LOST_UP; } int truncate_24(FPU_REG *x, u32 extent) { x->sigl = 0; x->sigh &= 0xffffff00; return LOST_DOWN; } int FPU_round(current_i387_definefunyuan_ FPU_REG *x, u32 extent, int dummy, u16 control_w, u8 sign) { u64 work; u32 leading; s16 expon = x->exp; int FPU_bits_lost = 0, FPU_denormal, shift, tag; if ( expon <= EXP_UNDER ) { /* A denormal or zero */ if ( control_w & CW_Underflow ) { /* Underflow is masked. */ FPU_denormal = DENORMAL; shift = EXP_UNDER+1 - expon; if ( shift >= 64 ) { if ( shift == 64 ) { x->exp += 64; if ( extent | x->sigl ) extent = x->sigh | 1; else extent = x->sigh; } else { x->exp = EXP_UNDER+1; extent = 1; } significand(x) = 0; } else { x->exp += shift; if ( shift >= 32 ) { shift -= 32; if ( shift ) { extent |= x->sigl; work = significand(x) >> shift; if ( extent ) extent =(u32) (work | 1); else extent = (u32)work; x->sigl = x->sigh >>= shift; } else { if ( extent ) extent = x->sigl | 1; else extent = x->sigl; x->sigl = x->sigh; } x->sigh = 0; } else { /* Shift by 1 to 32 places. */ work = x->sigl; work <<= 32; work |= extent; work >>= shift; if ( extent ) extent = 1; extent |= work; significand(x) >>= shift; } } } else { /* Unmasked underflow. */ FPU_denormal = UNMASKED_UNDERFLOW; } } else FPU_denormal = 0; switch ( control_w & CW_PC ) { case 01: #ifndef PECULIAR_486 /* With the precision control bits set to 01 "(reserved)", a real 80486 behaves as if the precision control bits were set to 11 "64 bits" */ #ifdef PARANOID EXCEPTION(EX_INTERNAL|0x236); return -1; #endif #endif /* Fall through to the 64 bit case. */ case PR_64_BITS: if ( extent ) { switch ( control_w & CW_RC ) { case RC_RND: /* Nearest or even */ /* See if there is exactly half a ulp. */ if ( extent == 0x80000000 ) { /* Round to even. */ if ( x->sigl & 0x1 ) /* Odd */ FPU_bits_lost = round_up_64(x, extent); else /* Even */ FPU_bits_lost = truncate_64(x, extent); } else if ( extent > 0x80000000 ) { /* Greater than half */ FPU_bits_lost = round_up_64(x, extent); } else { /* Less than half */ FPU_bits_lost = truncate_64(x, extent); } break; case RC_CHOP: /* Truncate */ FPU_bits_lost = truncate_64(x, extent); break; case RC_UP: /* Towards +infinity */ if ( sign == SIGN_POS) { FPU_bits_lost = round_up_64(x, extent); } else { FPU_bits_lost = truncate_64(x, extent); } break; case RC_DOWN: /* Towards -infinity */ if ( sign != SIGN_POS) { FPU_bits_lost = round_up_64(x, extent); } else { FPU_bits_lost = truncate_64(x, extent); } break; default: EXCEPTION(EX_INTERNAL|0x231); return -1; } } break; case PR_53_BITS: leading = x->sigl & 0x7ff; if ( extent || leading ) { switch ( control_w & CW_RC ) { case RC_RND: /* Nearest or even */ /* See if there is exactly half a ulp. */ if ( leading == 0x400 ) { if ( extent == 0 ) { /* Round to even. */ if ( x->sigl & 0x800 ) /* Odd */ FPU_bits_lost = round_up_53(x, extent); else /* Even */ FPU_bits_lost = truncate_53(x, extent); } else { /* Greater than half */ FPU_bits_lost = round_up_53(x, extent); } } else if ( leading > 0x400 ) { /* Greater than half */ FPU_bits_lost = round_up_53(x, extent); } else { /* Less than half */ FPU_bits_lost = truncate_53(x, extent); } break; case RC_CHOP: /* Truncate */ FPU_bits_lost = truncate_53(x, extent); break; case RC_UP: /* Towards +infinity */ if ( sign == SIGN_POS) { FPU_bits_lost = round_up_53(x, extent); } else { FPU_bits_lost = truncate_53(x, extent); } break; case RC_DOWN: /* Towards -infinity */ if ( sign != SIGN_POS) { FPU_bits_lost = round_up_53(x, extent); } else { FPU_bits_lost = truncate_53(x, extent); } break; default: EXCEPTION(EX_INTERNAL|0x231); return -1; } } break; case PR_24_BITS: leading = x->sigh & 0xff; if ( leading || x->sigl || extent ) { switch ( control_w & CW_RC ) { case RC_RND: /* Nearest or even */ /* See if there is exactly half a ulp. */ if ( leading == 0x80 ) { if ( (x->sigl == 0) && (extent == 0) ) { /* Round to even. */ if ( x->sigh & 0x100 ) /* Odd */ FPU_bits_lost = round_up_24(x, extent); else /* Even */ FPU_bits_lost = truncate_24(x, extent); } else { /* Greater than half */ FPU_bits_lost = round_up_24(x, extent); } } else if ( leading > 0x80 ) { /* Greater than half */ FPU_bits_lost = round_up_24(x, extent); } else { /* Less than half */ FPU_bits_lost = truncate_24(x, extent); } break; case RC_CHOP: /* Truncate */ FPU_bits_lost = truncate_24(x, extent); break; case RC_UP: /* Towards +infinity */ if ( sign == SIGN_POS) { FPU_bits_lost = round_up_24(x, extent); } else { FPU_bits_lost = truncate_24(x, extent); } break; case RC_DOWN: /* Towards -infinity */ if ( sign != SIGN_POS) { FPU_bits_lost = round_up_24(x, extent); } else { FPU_bits_lost = truncate_24(x, extent); } break; default: EXCEPTION(EX_INTERNAL|0x231); return -1; } } break; default: #ifdef PARANOID EXCEPTION(EX_INTERNAL|0x230); return -1; #endif break; } tag = TAG_Valid; if ( FPU_denormal ) { /* Undo the de-normalisation. */ if ( FPU_denormal == UNMASKED_UNDERFLOW ) { if ( x->exp <= EXP_UNDER ) { /* Increase the exponent by the magic number */ x->exp += 3 * (1 << 13); EXCEPTION(EX_Underflow); } } else { if ( x->exp != EXP_UNDER+1 ) { EXCEPTION(EX_INTERNAL|0x234); } if ( (x->sigh == 0) && (x->sigl == 0) ) { /* Underflow to zero */ set_precision_flag_down(current_i387_yuan_clono ); EXCEPTION(EX_Underflow); x->exp = EXP_UNDER; tag = TAG_Zero; FPU_bits_lost = 0; /* Stop another call to set_precision_flag_down(current_i387_definefunyuan_void ) */ } else { if ( x->sigh & 0x80000000 ) { #ifdef PECULIAR_486 /* * This implements a special feature of 80486 behaviour. * Underflow will be signalled even if the number is * not a denormal after rounding. * This difference occurs only for masked underflow, and not * in the unmasked case. * Actual 80486 behaviour differs from this in some circumstances. */ /* Will be masked underflow */ #else /* No longer a denormal */ #endif } else #ifndef PECULIAR_486 { #endif x->exp --; if ( FPU_bits_lost ) { /* There must be a masked underflow */ EXCEPTION(EX_Underflow); } tag = TAG_Special; #ifndef PECULIAR_486 } #endif } } } if ( FPU_bits_lost == LOST_UP ) set_precision_flag_up(current_i387_yuan_clono ); else if ( FPU_bits_lost == LOST_DOWN ) set_precision_flag_down(current_i387_yuan_clono ); if ( x->exp >= EXP_OVER ) { x->exp += EXTENDED_Ebias; tag = arith_round_overflow(current_i387_yuan_ x, sign); } else { x->exp += EXTENDED_Ebias; x->exp &= 0x7fff; } if ( sign != SIGN_POS ) x->exp |= 0x8000; return tag; } ================================================ FILE: Project/fpu/Source/reg_u_add.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_u_add.c | | $Id: reg_u_add.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Add two valid (TAG_Valid) FPU_REG numbers, of the same sign, and put the | | result in a destination FPU_REG. | | | | Copyright (C) 1992,1993,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | Return value is the tag of the answer, or-ed with FPU_Exception if | | one was raised, or -1 on internal error. | | | +---------------------------------------------------------------------------*/ /* | Kernel addition routine FPU_u_add(current_i387_yuan_ reg *arg1, reg *arg2, reg *answ). | Takes two valid reg f.p. numbers (TAG_Valid), which are | treated as unsigned numbers, | and returns their sum as a TAG_Valid or TAG_Special f.p. number. | The returned number is normalized. | Basic checks are performed if PARANOID is defined. */ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" #include "control_w.h" int FPU_u_add(current_i387_definefunyuan_ const FPU_REG *arg1, const FPU_REG *arg2, FPU_REG *answ, u16 control_w, u_char sign, s32 expa, s32 expb) { const FPU_REG *rtmp; FPU_REG shifted; u32 extent = 0; int ediff = expa - expb, ed2, eflag, ovfl, carry; if ( ediff < 0 ) { ediff = -ediff; rtmp = arg1; arg1 = arg2; arg2 = rtmp; expa = expb; } /* Now we have exponent of arg1 >= exponent of arg2 */ answ->exp = expa; #ifdef PARANOID if ( !(arg1->sigh & 0x80000000) || !(arg2->sigh & 0x80000000) ) { EXCEPTION(EX_INTERNAL|0x201); return -1; } #endif if ( ediff == 0 ) { extent = 0; shifted.sigl = arg2->sigl; shifted.sigh = arg2->sigh; } else if ( ediff < 32 ) { ed2 = 32 - ediff; extent = arg2->sigl << ed2; shifted.sigl = arg2->sigl >> ediff; shifted.sigl |= (arg2->sigh << ed2); shifted.sigh = arg2->sigh >> ediff; } else if ( ediff < 64 ) { ediff -= 32; if ( ! ediff ) { eflag = 0; extent = arg2->sigl; shifted.sigl = arg2->sigh; } else { ed2 = 32 - ediff; eflag = arg2->sigl; if ( eflag ) extent |= 1; extent = arg2->sigl >> ediff; extent |= (arg2->sigh << ed2); shifted.sigl = arg2->sigh >> ediff; } shifted.sigh = 0; } else { ediff -= 64; if ( ! ediff ) { eflag = arg2->sigl; extent = arg2->sigh; } else { ed2 = 64 - ediff; eflag = arg2->sigl | arg2->sigh; extent = arg2->sigh >> ediff; } shifted.sigl = 0; shifted.sigh = 0; if ( eflag ) extent |= 1; } answ->sigh = arg1->sigh + shifted.sigh; ovfl = shifted.sigh > answ->sigh; answ->sigl = arg1->sigl + shifted.sigl; if ( shifted.sigl > answ->sigl ) { answ->sigh ++; if ( answ->sigh == 0 ) ovfl = 1; } if ( ovfl ) { carry = extent & 1; extent >>= 1; extent |= carry; if ( answ->sigl & 1 ) extent |= 0x80000000; answ->sigl >>= 1; if ( answ->sigh & 1 ) answ->sigl |= 0x80000000; answ->sigh >>= 1; answ->sigh |= 0x80000000; answ->exp ++; } return FPU_round(current_i387_yuan_ answ, extent, 0, control_w, sign); } ================================================ FILE: Project/fpu/Source/reg_u_div.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_u_div.c | | $Id: reg_u_div.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Divide one FPU_REG by another and put the result in a destination FPU_REG.| | | | Copyright (C) 1992,1993,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | | | Does not compute the destination exponent, but does adjust it. | | | | Return value is the tag of the answer, or-ed with FPU_Exception if | | one was raised, or -1 on internal error. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" #include "control_w.h" #include int FPU_u_div(current_i387_definefunyuan_ const FPU_REG *a, const FPU_REG *b, FPU_REG *dest, u16 control_w, u8 sign) { s32 exp; u32 divr32, rem, rat1, rat2, work32, accum3, prodh; u64 work64, divr64, prod64, accum64; u8 ovfl; exp = (s32)a->exp - (s32)b->exp; if ( exp < EXP_WAY_UNDER ) exp = EXP_WAY_UNDER; dest->exp = exp; #ifdef PARANOID if ( !(b->sigh & 0x80000000) ) { EXCEPTION(EX_INTERNAL|0x202); } #endif work64 = significand(a); /* We can save a lot of time if the divisor has all its lowest 32 bits equal to zero. */ if ( b->sigl == 0 ) { divr32 = b->sigh; ovfl = a->sigh >= divr32; rat1 = (u32)(work64 / divr32); rem = (u32)(work64 % divr32); work64 = rem; work64 <<= 32; rat2 = (u32)(work64 / divr32); rem = (u32)(work64 % divr32); work64 = rem; work64 <<= 32; rem = (u32)(work64 / divr32); if ( ovfl ) { rem >>= 1; if ( rat2 & 1 ) rem |= 0x80000000; rat2 >>= 1; if ( rat1 & 1 ) rat2 |= 0x80000000; rat1 >>= 1; rat1 |= 0x80000000; dest->exp ++; } dest->sigh = rat1; dest->sigl = rat2; dest->exp --; return FPU_round(current_i387_yuan_ dest, rem, 0, control_w, sign); } /* This may take a little time... */ accum64 = work64; divr64 = significand(b); if ( (ovfl = accum64 >= divr64) ) accum64 -= divr64; divr32 = b->sigh+1; if ( divr32 != 0 ) { rat1 = (u32)(accum64 / divr32); } else rat1 = (u32)(accum64 >> 32); prod64 = rat1 * (u64)b->sigh; accum64 -= prod64; prod64 = rat1 * (u64)b->sigl; accum3 = (u32)(prod64); if ( accum3 ) { accum3 = (0-accum3); accum64 --; } prodh = (u32)(prod64 >> 32); accum64 -= prodh; work32 = (u32)(accum64 >> 32); if ( work32 ) { #ifdef PARANOID if ( work32 != 1 ) { EXCEPTION(EX_INTERNAL|0x203); } #endif /* Need to subtract the divisor once more. */ work32 = accum3; accum3 = work32 - b->sigl; if ( accum3 > work32 ) accum64 --; rat1 ++; accum64 -= b->sigh; #ifdef PARANOID if ( (accum64 >> 32) ) { EXCEPTION(EX_INTERNAL|0x203); } #endif } /* Now we essentially repeat what we have just done, but shifted 32 bits. */ accum64 <<= 32; accum64 |= accum3; if ( accum64 >= divr64 ) { accum64 -= divr64; rat1 ++; } if ( divr32 != 0 ) { rat2 = (u32)(accum64 / divr32); } else rat2 = (u32)(accum64 >> 32); prod64 = rat2 * (u64)b->sigh; accum64 -= prod64; prod64 = rat2 * (u64)b->sigl; accum3 = (u32)prod64; if ( accum3 ) { accum3 = (0-accum3); accum64 --; } prodh = (u32)(prod64 >> 32); accum64 -= prodh; work32 = (u32)(accum64 >> 32); if ( work32 ) { #ifdef PARANOID if ( work32 != 1 ) { EXCEPTION(EX_INTERNAL|0x203); } #endif /* Need to subtract the divisor once more. */ work32 = accum3; accum3 = work32 - b->sigl; if ( accum3 > work32 ) accum64 --; rat2 ++; if ( rat2 == 0 ) rat1 ++; accum64 -= b->sigh; #ifdef PARANOID if ( (accum64 >> 32) ) { EXCEPTION(EX_INTERNAL|0x203); } #endif } /* Tidy up the remainder */ accum64 <<= 32; accum64 |= accum3; if ( accum64 >= divr64 ) { accum64 -= divr64; rat2 ++; if ( rat2 == 0 ) { rat1 ++; #ifdef PARANOID /* No overflow should be possible here */ if ( rat1 == 0 ) { EXCEPTION(EX_INTERNAL|0x203); } } #endif } /* The basic division is done, now we must be careful with the remainder. */ if ( ovfl ) { if ( rat2 & 1 ) rem = 0x80000000; else rem = 0; rat2 >>= 1; if ( rat1 & 1 ) rat2 |= 0x80000000; rat1 >>= 1; rat1 |= 0x80000000; if ( accum64 ) rem |= 0xff0000; dest->exp ++; } else { /* Now we just need to know how large the remainder is relative to half the divisor. */ if ( accum64 == 0 ) rem = 0; else { accum3 = (u32)(accum64 >> 32); if ( accum3 & 0x80000000 ) { /* The remainder is definitely larger than 1/2 divisor. */ rem = 0xff000000; } else { accum64 <<= 1; if ( accum64 >= divr64 ) { accum64 -= divr64; if ( accum64 == 0 ) rem = 0x80000000; else rem = 0xff000000; } else rem = 0x7f000000; } } } dest->sigh = rat1; dest->sigl = rat2; dest->exp --; return FPU_round(current_i387_yuan_ dest, rem, 0, control_w, sign); } ================================================ FILE: Project/fpu/Source/reg_u_mul.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_u_mul.c | | $Id: reg_u_mul.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Core multiplication routine | | | | Copyright (C) 1992,1993,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | Basic multiplication routine. | | Does not check the resulting exponent for overflow/underflow | | | | Internal working is at approx 128 bits. | | Result is rounded to nearest 53 or 64 bits, using "nearest or even". | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" #include "control_w.h" int FPU_u_mul(current_i387_definefunyuan_ const FPU_REG *a, const FPU_REG *b, FPU_REG *c, u16 cw, u_char sign, int expon) { u64 mu, ml, mi; u32 lh, ll, th, tl; #ifdef PARANOID if ( ! (a->sigh & 0x80000000) || ! (b->sigh & 0x80000000) ) { EXCEPTION(EX_INTERNAL|0x205); } #endif ml = a->sigl; ml *= b->sigl; ll = (u32)ml; lh = (u32)(ml >> 32); mu = a->sigh; mu *= b->sigh; mi = a->sigh; mi *= b->sigl; tl = (u32)mi; th = (u32)(mi >> 32); lh += tl; if ( tl > lh ) mu ++; mu += th; mi = a->sigl; mi *= b->sigh; tl = (u32)mi; th = (u32)(mi >> 32); lh += tl; if ( tl > lh ) mu ++; mu += th; ml = lh; ml <<= 32; ml += ll; expon -= EXP_BIAS-1; if ( expon <= EXP_WAY_UNDER ) expon = EXP_WAY_UNDER; c->exp = expon; if ( ! (mu & BX_CONST64(0x8000000000000000)) ) { mu <<= 1; if ( ml & BX_CONST64(0x8000000000000000) ) mu |= 1; ml <<= 1; c->exp --; } ll = (u32)ml; lh = (u32)(ml >> 32); if ( ll ) lh |= 1; c->sigl = (u32)mu; c->sigh = (u32)(mu >> 32); return FPU_round(current_i387_yuan_ c, lh, 0, cw, sign); } ================================================ FILE: Project/fpu/Source/reg_u_sub.cpp ================================================ /*---------------------------------------------------------------------------+ | reg_u_sub.c | | $Id: reg_u_sub.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Core floating point subtraction routine. | | | | Copyright (C) 1992,1993,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | Return value is the tag of the answer, or-ed with FPU_Exception if | | one was raised, or -1 on internal error. | | | +---------------------------------------------------------------------------*/ /* | Kernel subtraction routine FPU_u_sub(current_i387_yuan_ reg *arg1, reg *arg2, reg *answ). | Takes two valid reg f.p. numbers (TAG_Valid), which are | treated as unsigned numbers, | and returns their difference as a TAG_Valid or TAG_Zero f.p. | number. | The first number (arg1) must be the larger. | The returned number is normalized. | Basic checks are performed if PARANOID is defined. */ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" #include "control_w.h" int FPU_u_sub(current_i387_definefunyuan_ const FPU_REG *arg1, const FPU_REG *arg2, FPU_REG *dest, u16 control_w, u_char sign, int expa, int expb) { FPU_REG shifted, answ; u32 extent; int ediff = expa - expb, ed2, borrow; #ifdef PARANOID if ( ediff < 0 ) { EXCEPTION(EX_INTERNAL|0x206); return -1; } #endif answ.exp = expa; #ifdef PARANOID if ( !(arg1->sigh & 0x80000000) || !(arg2->sigh & 0x80000000) ) { EXCEPTION(EX_INTERNAL|0x209); return -1; } #endif if ( ediff == 0 ) { shifted.sigl = arg2->sigl; shifted.sigh = arg2->sigh; extent = 0; } else if ( ediff < 32 ) { ed2 = 32 - ediff; extent = arg2->sigl << ed2; shifted.sigl = arg2->sigl >> ediff; shifted.sigl |= (arg2->sigh << ed2); shifted.sigh = arg2->sigh >> ediff; } else if ( ediff < 64 ) { ediff -= 32; if ( ! ediff ) { extent = arg2->sigl; shifted.sigl = arg2->sigh; shifted.sigh = 0; } else { ed2 = 32 - ediff; extent = arg2->sigl >> ediff; extent |= (arg2->sigh << ed2); if ( arg2->sigl << ed2 ) extent |= 1; shifted.sigl = arg2->sigh >> ediff; shifted.sigh = 0; } } else { ediff -= 64; if ( ! ediff ) { extent = arg2->sigh; if ( arg2->sigl ) extent |= 1; shifted.sigl = 0; shifted.sigh = 0; } else { if ( ediff < 32 ) { extent = arg2->sigh >> ediff; if ( arg2->sigl || (arg2->sigh << (32-ediff)) ) extent |= 1; } else extent = 1; shifted.sigl = 0; shifted.sigh = 0; } } extent = (0-extent); borrow = extent; answ.sigl = arg1->sigl - shifted.sigl; if ( answ.sigl > arg1->sigl ) { if ( borrow ) answ.sigl --; borrow = 1; } else if ( borrow ) { answ.sigl --; if ( answ.sigl != 0xffffffff ) borrow = 0; } answ.sigh = arg1->sigh - shifted.sigh; if ( answ.sigh > arg1->sigh ) { if ( borrow ) answ.sigh --; borrow = 1; } else if ( borrow ) { answ.sigh --; if ( answ.sigh != 0xffffffff ) borrow = 0; } #ifdef PARANOID if ( borrow ) { /* This can only occur if the code is bugged */ EXCEPTION(EX_INTERNAL|0x212); return -1; } #endif if ( answ.sigh & 0x80000000 ) { /* The simpler "*dest = answ" is broken in gcc */ dest->exp = answ.exp; dest->sigh = answ.sigh; dest->sigl = answ.sigl; return FPU_round(current_i387_yuan_ dest, extent, 0, control_w, sign); } if ( answ.sigh == 0 ) { if ( answ.sigl ) { answ.sigh = answ.sigl; answ.sigl = extent; extent = 0; answ.exp -= 32; } else if ( extent ) { /* * A rare case, the only one which is non-zero if we got here * is: 1000000 .... 0000 * -0111111 .... 1111 1 * -------------------- * 0000000 .... 0000 1 */ if ( extent != 0x80000000 ) { /* This can only occur if the code is bugged */ EXCEPTION(EX_INTERNAL|0x210); return -1; } dest->sigh = extent; dest->sigl = extent = 0; dest->exp -= 64; return FPU_round(current_i387_yuan_ dest, extent, 0, control_w, sign); } else { dest->exp = 0; dest->sigh = dest->sigl = 0; return TAG_Zero; } } while ( !(answ.sigh & 0x80000000) ) { answ.sigh <<= 1; if ( answ.sigl & 0x80000000 ) answ.sigh |= 1; answ.sigl <<= 1; if ( extent & 0x80000000 ) answ.sigl |= 1; extent <<= 1; answ.exp --; } dest->exp = answ.exp; dest->sigh = answ.sigh; dest->sigl = answ.sigl; return FPU_round(current_i387_yuan_ dest, extent, 0, control_w, sign); } ================================================ FILE: Project/fpu/Source/round_Xsig.cpp ================================================ /*---------------------------------------------------------------------------+ | round_Xsig.c | | $Id: round_Xsig.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992,1993,1994,1995,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | Normalize and round a 12 byte quantity. | | int round_Xsig(Xsig *n) | | | | Normalize a 12 byte quantity. | | int norm_Xsig(Xsig *n) | | | | Each function returns the size of the shift (nr of bits). | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "poly.h" int round_Xsig(Xsig *x) { int n = 0; if ( x->msw == 0 ) { x->msw = x->midw; x->midw = x->lsw; x->lsw = 0; n = 32; } while ( !(x->msw & 0x80000000) ) { x->msw <<= 1; if ( x->midw & 0x80000000 ) x->msw |= 1; x->midw <<= 1; if ( x->lsw & 0x80000000 ) x->midw |= 1; x->lsw <<= 1; n++; } if ( x->lsw & 0x80000000 ) { x->midw ++; if ( x->midw == 0 ) x->msw ++; if ( x->msw == 0 ) { x->msw = 0x80000000; n--; } } return -n; } int norm_Xsig(Xsig *x) { int n = 0; if ( x->msw == 0 ) { if ( x->midw == 0 ) { x->msw = x->lsw; x->midw = 0; x->lsw = 0; n = 64; } else { x->msw = x->midw; x->midw = x->lsw; x->lsw = 0; n = 32; } } while ( !(x->msw & 0x80000000) ) { x->msw <<= 1; if ( x->midw & 0x80000000 ) x->msw |= 1; x->midw <<= 1; if ( x->lsw & 0x80000000 ) x->midw |= 1; x->lsw <<= 1; n++; } return -n; } ================================================ FILE: Project/fpu/Source/shr_Xsig.cpp ================================================ /*---------------------------------------------------------------------------+ | shr_Xsig.S | | $Id: shr_Xsig.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | 12 byte right shift function | | | | Copyright (C) 1992,1994,1995 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@jacobi.maths.monash.edu.au | | | | | | Extended shift right function. | | Fastest for small shifts. | | Shifts the 12 byte quantity pointed to by the first arg (arg) | | right by the number of bits specified by the second arg (nr). | | | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" #include "poly.h" void shr_Xsig(Xsig *arg, const int nr) { int n = nr; while ( n >= 32 ) { arg->lsw = arg->midw; arg->midw = arg->msw; arg->msw = 0; n -= 32; } if ( n <= 0 ) return; arg->lsw = (arg->lsw >> n) | (arg->midw << (32-n)); arg->midw = (arg->midw >> n) | (arg->msw << (32-n)); arg->msw >>= n; } ================================================ FILE: Project/fpu/Source/status_w.h ================================================ /*---------------------------------------------------------------------------+ | status_w.h | | $Id: status_w.h,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Copyright (C) 1992,1993 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@vaxc.cc.monash.edu.au | | | +---------------------------------------------------------------------------*/ #ifndef _STATUS_H_ #define _STATUS_H_ #include "fpu_emu.h" /* for definition of PECULIAR_486 */ #ifdef __ASSEMBLY__ #define Const__(x) $##x #else #define Const__(x) x #endif #define SW_Backward Const__(0x8000) /* backward compatibility */ #define SW_C3 Const__(0x4000) /* condition bit 3 */ #define SW_Top Const__(0x3800) /* top of stack */ #define SW_Top_Shift Const__(11) /* shift for top of stack bits */ #define SW_C2 Const__(0x0400) /* condition bit 2 */ #define SW_C1 Const__(0x0200) /* condition bit 1 */ #define SW_C0 Const__(0x0100) /* condition bit 0 */ #define SW_Summary Const__(0x0080) /* exception summary */ #define SW_Stack_Fault Const__(0x0040) /* stack fault */ #define SW_Precision Const__(0x0020) /* loss of precision */ #define SW_Underflow Const__(0x0010) /* underflow */ #define SW_Overflow Const__(0x0008) /* overflow */ #define SW_Zero_Div Const__(0x0004) /* divide by zero */ #define SW_Denorm_Op Const__(0x0002) /* denormalized operand */ #define SW_Invalid Const__(0x0001) /* invalid operation */ #define SW_Exc_Mask Const__(0x27f) /* Status word exception bit mask */ #ifndef __ASSEMBLY__ #define COMP_A_gt_B 1 #define COMP_A_eq_B 2 #define COMP_A_lt_B 3 #define COMP_No_Comp 4 #define COMP_Denormal 0x20 #define COMP_NaN 0x40 #define COMP_SNaN 0x80 #define status_word() ((partial_status & ~SW_Top & 0xffff) | ((top << SW_Top_Shift) & SW_Top)) // bbd: use do {...} while (0) structure instead of using curly brackets // inside parens, which most compilers do not like. #define setcc(cc) do { partial_status &= ~(SW_C0|SW_C1|SW_C2|SW_C3); partial_status |= (cc) & (SW_C0|SW_C1|SW_C2|SW_C3); } while(0) #ifdef PECULIAR_486 /* Default, this conveys no information, but an 80486 does it. */ /* Clear the SW_C1 bit, "other bits undefined". */ # define clear_C1() { partial_status &= ~SW_C1; } # else # define clear_C1() #endif /* PECULIAR_486 */ #endif /* __ASSEMBLY__ */ #endif /* _STATUS_H_ */ ================================================ FILE: Project/fpu/Source/version.h ================================================ /*---------------------------------------------------------------------------+ | version.h | | $Id: version.h,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | | | Copyright (C) 1992,1993,1994,1996,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, Australia | | E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ #define FPU_VERSION "wm-FPU-emu version 2.05" ================================================ FILE: Project/fpu/Source/wmFPUemu_glue.cpp ================================================ // Copyright (C) 2001 MandrakeSoft S.A. // // MandrakeSoft S.A. // 43, rue d'Aboukir // 75002 Paris - France // http://www.linux-mandrake.com/ // http://www.mandrakesoft.com/ // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2 of the License, or (at your option) any later version. // // 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. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // This is the glue logic needed to connect the wm-FPU-emu // FPU emulator written by Bill Metzenthen to bochs. // #include "../../IntelCPU/Source/x86cpu.h" #include "fpu_i387.h" //#include #if !BX_WITH_MACOS extern "C++" { #endif #include "fpu_emu.h" #include "linux/signal.h" #if !BX_WITH_MACOS } #endif #undef LOG_THIS #define LOG_THIS genlog-> #if BX_USE_CPU_SMF //#define this (BX_CPU(0)) #define this BX_CPU_THIS #endif // Use this to hold a pointer to the instruction since // we can't pass this to the FPU emulation routines, which // will ultimately call routines here. //static bxInstruction_c *bx_fcpu_i387->fpu_iptr_ = NULL; //static BX_CPU_C *bx_fcpu_i387->fpu_cpu_ptr_ = NULL; //static i387_t *bx_fcpu_i387->current_i387_; //static BX_FCPU_I387 *bx_fcpu_i387; //bx_fcpu_i387->current_i387_ //bx_fcpu_i387->fpu_cpu_ptr_ //bx_fcpu_i387->fpu_iptr_ void math_emulate2(current_i387_definefunyuan_ fpu_addr_modes addr_modes, u_char FPU_modrm, u_char byte1, void *data_address, struct address data_sel_off, struct address entry_sel_off); void printfp(char *s, FPU_REG *r); #if BX_SUPPORT_FPU==1 // This is called by bochs upon reset void BX_CPU_C::fpu_init(void) { BX_FCPU_I387 bx_fcpu_i387_s,*bx_fcpu_i387; bx_fcpu_i387 = &bx_fcpu_i387_s; bx_fcpu_i387->current_i387_ = &(BX_CPU_THIS_PTR the_i387); finit(current_i387_yuan_clono ); } #endif void BX_CPU_C::fpu_execute(bxInstruction_c *i) { fpu_addr_modes addr_modes; void *data_address; struct address data_sel_off; struct address entry_sel_off; bx_bool is_32; BX_FCPU_I387 bx_fcpu_i387_s,*bx_fcpu_i387; bx_fcpu_i387 = &bx_fcpu_i387_s; bx_fcpu_i387->fpu_iptr_ = i; bx_fcpu_i387->fpu_cpu_ptr_ = this; bx_fcpu_i387->current_i387_ = &(BX_CPU_THIS_PTR the_i387); BX_CPU_C *icpu = this; #if 0 addr_modes.default_mode = VM86; addr_modes.default_mode = 0; // FPU_CS == __USER_CS && FPU_DS == __USER_DS addr_modes.default_mode = SEG32; addr_modes.default_mode = PM16; #endif if (protected_mode()) { addr_modes.default_mode = SEG32; } else if (v8086_mode()) { addr_modes.default_mode = VM86; } else { // real mode, use vm86 for now addr_modes.default_mode = VM86; } // Mark if instruction used opsize or addrsize prefixes // Actually, addr_modes.override.address_size is not used, // could delete that code. is_32 = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].cache.u.segment.d_b; if (i->as32B() == is_32) addr_modes.override.address_size = 0; else addr_modes.override.address_size = ADDR_SIZE_PREFIX; if (i->os32B() == is_32) addr_modes.override.operand_size = 0; else addr_modes.override.operand_size = OP_SIZE_PREFIX; // For now set access_limit to max. It seems to be // a number from 0..255 denoting how many bytes the // current instruction can access according to its // memory operand. 255 means >= 255. access_limit = 0xff; // fill in orig eip here in offset // fill in CS in selector entry_sel_off.offset = BX_CPU_THIS_PTR prev_eip; entry_sel_off.selector = BX_CPU_THIS_PTR program_visible_sregs[BX_SEG_REG_CS].selector.value; // should set these fields to 0 if mem operand not used data_address = (void *) RMAddr(i); data_sel_off.offset = RMAddr(i); data_sel_off.selector = BX_CPU_THIS_PTR program_visible_sregs[i->seg()].selector.value; math_emulate2(current_i387_yuan_ addr_modes, i->modrm(), i->b1(), data_address, data_sel_off, entry_sel_off); } static double sigh_scale_factor = 4.6566128730773926e-010; static double sigl_scale_factor = 1.0842021724855044e-019; //static double sigh_scale_factor = pow(2.0, -31.0); //static double sigl_scale_factor = pow(2.0, -63.0); //vc7 pow_p4 RavDos /* void BX_CPU_C::fpu_print_regs() { Bit32u reg; BX_FCPU_I387 bx_fcpu_i387_s,*bx_fcpu_i387; bx_fcpu_i387 = &bx_fcpu_i387_s; reg = i387.soft.cwd; fprintf(stderr, "cwd 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = i387.soft.swd; fprintf(stderr, "swd 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = i387.soft.twd; fprintf(stderr, "twd 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = i387.soft.fip; fprintf(stderr, "fip 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = i387.soft.fcs; fprintf(stderr, "fcs 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = i387.soft.foo; fprintf(stderr, "foo 0x%-8x\t%d\n", (unsigned) reg, (int) reg); reg = i387.soft.fos; fprintf(stderr, "fos 0x%-8x\t%d\n", (unsigned) reg, (int) reg); // print stack too for (int i=0; i<8; i++) { FPU_REG *fpr = &st(i); double f1 = 0;//pow(2.0, ((0x7fff&fpr->exp) - EXTENDED_Ebias)); if (fpr->exp & SIGN_Negative) f1 = -f1; double f2 = ((double)fpr->sigh * sigh_scale_factor); double f3 = ((double)fpr->sigl * sigl_scale_factor); double f = f1*(f2+f3); fprintf(stderr, "st%d %.10f (raw 0x%04x%08x%08x)\n", i, f, 0xffff&fpr->exp, fpr->sigh, fpr->sigl); } } */ unsigned fpu_get_ds(current_i387_definefunyuan_void) { return(bx_fcpu_i387->fpu_cpu_ptr_->program_visible_sregs[BX_SEG_REG_DS].selector.value); } void fpu_set_ax(current_i387_definefunyuan_ unsigned short val16) { // define to set AX in the current CPU -- not ideal. #undef AX #define AX (bx_fcpu_i387->fpu_cpu_ptr_->program_visible_gen_reg[0].word.rx) AX = val16; #undef AX //BX_DEBUG(( "fpu_set_ax(0x%04x)", (unsigned) val16)); } void fpu_verify_area(current_i387_definefunyuan_ unsigned what, void *ptr, unsigned n) { bx_segment_reg_t *seg; seg = &bx_fcpu_i387->fpu_cpu_ptr_->program_visible_sregs[bx_fcpu_i387->fpu_iptr_->seg()]; if (what == VERIFY_READ) { bx_fcpu_i387->fpu_cpu_ptr_->read_virtual_checks(seg, PTR2INT(ptr), n); } else { // VERIFY_WRITE bx_fcpu_i387->fpu_cpu_ptr_->write_virtual_checks(seg, PTR2INT(ptr), n); } //BX_DEBUG(( "verify_area: 0x%x", PTR2INT(ptr))); } void FPU_printall(current_i387_definefunyuan_void) { BX_PANIC(("FPU_printall")); } unsigned fpu_get_user(current_i387_definefunyuan_ void *ptr, unsigned len) { Bit32u val32; Bit16u val16; Bit8u val8; switch (len) { case 1: bx_fcpu_i387->fpu_cpu_ptr_->read_virtual_byte(bx_fcpu_i387->fpu_iptr_->seg(), PTR2INT(ptr), &val8); val32 = val8; break; case 2: bx_fcpu_i387->fpu_cpu_ptr_->read_virtual_word(bx_fcpu_i387->fpu_iptr_->seg(), PTR2INT(ptr), &val16); val32 = val16; break; case 4: bx_fcpu_i387->fpu_cpu_ptr_->read_virtual_dword(bx_fcpu_i387->fpu_iptr_->seg(), PTR2INT(ptr), &val32); break; default: BX_PANIC(("fpu_get_user: len=%u", len)); } return(val32); } void fpu_put_user(current_i387_definefunyuan_ unsigned val, void *ptr, unsigned len) { Bit32u val32; Bit16u val16; Bit8u val8; switch (len) { case 1: val8 = val; bx_fcpu_i387->fpu_cpu_ptr_->write_virtual_byte(bx_fcpu_i387->fpu_iptr_->seg(), PTR2INT(ptr), &val8); break; case 2: val16 = val; bx_fcpu_i387->fpu_cpu_ptr_->write_virtual_word(bx_fcpu_i387->fpu_iptr_->seg(), PTR2INT(ptr), &val16); break; case 4: val32 = val; bx_fcpu_i387->fpu_cpu_ptr_->write_virtual_dword(bx_fcpu_i387->fpu_iptr_->seg(), PTR2INT(ptr), &val32); break; default: BX_PANIC(("fpu_put_user: len=%u", len)); } } void math_abort(current_i387_definefunyuan_ struct info *info, unsigned int signal) { UNUSED(info); // info is always passed NULL #if BX_CPU_LEVEL >= 4 // values of signal: // SIGILL : opcodes which are illegal // SIGFPE : unmasked FP exception before WAIT or non-control instruction // SIGSEGV : access data beyond segment violation switch (signal) { case SIGFPE: if (bx_fcpu_i387->fpu_cpu_ptr_->cr0.ne == 0) { // MSDOS compatibility external interrupt (IRQ13) BX_PANIC (("math_abort: MSDOS compatibility not supported yet")); } bx_fcpu_i387->fpu_cpu_ptr_->exception(BX_MF_EXCEPTION, 0, 0); // execution does not reach here case SIGILL: BX_PANIC (("math_abort: SIGILL not implemented yet.")); break; case SIGSEGV: BX_PANIC (("math_abort: SIGSEGV not implemented yet.")); break; } #else UNUSED(signal); BX_INFO(("math_abort: CPU<4 not supported yet")); #endif } int fpu_printk(const char * fmt, ...) { BX_INFO(("fpu_printk not complete: %s", fmt)); return(0); // for now } ================================================ FILE: Project/fpu/Source/wm_shrx.cpp ================================================ /*---------------------------------------------------------------------------+ | wm_shrx.c | | $Id: wm_shrx.c,v 1.2 2001/10/06 03:53:46 bdenney Exp $ | | | 64 bit right shift functions | | | | Copyright (C) 1992,1995,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | unsigned FPU_shrx(current_i387_yuan_ void *arg1, unsigned arg2) | | | | Extended shift right function. | | Fastest for small shifts. | | Shifts the 64 bit quantity pointed to by the first arg (arg1) | | right by the number of bits specified by the second arg (arg2). | | Forms a 96 bit quantity from the 64 bit arg and eax: | | [ 64 bit arg ][ eax ] | | shift right ---------> | | The eax register is initialized to 0 before the shifting. | | Results returned in the 64 bit arg and eax. | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "fpu_emu.h" unsigned FPU_shrx(current_i387_definefunyuan_ void *arg1, u32 arg2) { u32 x; if ( arg2 >= 64 ) { if ( arg2 >= 96 ) { *(u64 *)arg1 = 0; return 0; } arg2 -= 64; x = (u32)((*(u64 *)arg1) >> 32); *(u64 *)arg1 = 0; if ( arg2 ) return x >> arg2; else return x; } if ( arg2 < 32 ) { if ( arg2 == 0 ) return 0; x = (u32)((*(u64 *)arg1) << (32 - arg2)); } else if ( arg2 > 32 ) { x = (u32)((*(u64 *)arg1) >> (arg2 - 32)); } else { /* arg2 == 32 */ x = (u32)(*(u64 *)arg1); } (*(u64 *)arg1) >>= arg2; return x; } /*---------------------------------------------------------------------------+ | unsigned FPU_shrxs(current_i387_yuan_ void *arg1, unsigned arg2) | | | | Extended shift right function (optimized for small floating point | | integers). | | Shifts the 64 bit quantity pointed to by the first arg (arg1) | | right by the number of bits specified by the second arg (arg2). | | Forms a 96 bit quantity from the 64 bit arg and eax: | | [ 64 bit arg ][ eax ] | | shift right ---------> | | The eax register is initialized to 0 before the shifting. | | The lower 8 bits of eax are lost and replaced by a flag which is | | set (to 0x01) if any bit, apart from the first one, is set in the | | part which has been shifted out of the arg. | | Results returned in the 64 bit arg and eax. | +---------------------------------------------------------------------------*/ unsigned FPU_shrxs(current_i387_definefunyuan_ void *arg1, u32 arg2) { u32 x, bits; u64 lost; if ( arg2 >= 64 ) { if ( arg2 >= 96 ) { bits = *(u64 *)arg1 != 0; *(u64 *)arg1 = 0; return bits ? 1 : 0; } arg2 -= 64; lost = (*(u64 *)arg1) << (32 - arg2); x = (u32)((*(u64 *)arg1) >> 32); *(u64 *)arg1 = 0; if ( arg2 ) x >>= arg2; if ( lost ) x |= 1; return x; } if ( arg2 < 32 ) { if ( arg2 == 0 ) /* No bits are lost */ return 0; /* No bits are lost */ x = (u32)((*(u64 *)arg1) << (32 - arg2)); } else if ( arg2 > 32 ) { bits = (u32)((*(u64 *)arg1)); bits <<= (64 - arg2); x = (u32)((*(u64 *)arg1) >> (arg2 - 32)); if ( bits ) x |= 1; } else { /* arg2 == 32 */ /* No bits are lost */ x = (u32)(*(u64 *)arg1); } (*(u64 *)arg1) >>= arg2; if ( x & 0x7fffffff ) x |= 1; return x; } ================================================ FILE: Project/fpu/Source/wm_sqrt.cpp ================================================ /*---------------------------------------------------------------------------+ | wm_sqrt.c | | $Id: wm_sqrt.c,v 1.3 2001/10/06 03:53:46 bdenney Exp $ | | | Fixed point arithmetic square root evaluation. | | | | Copyright (C) 1992,1993,1995,1997,1999 | | W. Metzenthen, 22 Parker St, Ormond, Vic 3163, | | Australia. E-mail billm@melbpc.org.au | | | +---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------+ | returns the square root of n in n. | | | | Use Newton's method to compute the square root of a number, which must | | be in the range [1.0 .. 4.0), to 64 bits accuracy. | | Does not check the sign or tag of the argument. | | Sets the exponent, but not the sign or tag of the result. | | | | The guess is kept in %esi:%edi | +---------------------------------------------------------------------------*/ #include "fpu_i387.h" #include "exception.h" #include "fpu_emu.h" /* The following value indicates the trailing bits (of 96 bits) which may be in error when the final Newton iteration is finished (0x20 corresponds to the last 5 bits in error, i.e. 91 bits precision). A check of the following code with more than 3 billion (3.0e9) random and selected values showed that 0x10 was always a large enough value, so 0x20 should be a conservative choice. */ #define ERR_MARGIN 0x20 int wm_sqrt(current_i387_definefunyuan_ FPU_REG *n, s32 dummy1, s32 dummy2, u16 control_w, u8 sign) { u64 nn, guess, halfn, lowr, mid, upr, diff, uwork; s64 work; u32 ne, guess32, work32, diff32, mid32; int shifted; nn = significand(n); ne = 0; if ( exponent16(n) == EXP_BIAS ) { /* Shift the argument right one position. */ if ( nn & 1 ) ne = 0x80000000; nn >>= 1; guess = n->sigh >> 2; shifted = 1; } else { guess = n->sigh >> 1; shifted = 0; } guess += 0x40000000; guess *= 0xaaaaaaaa; guess <<= 1; guess32 = (u32)(guess >> 32); if ( !(guess32 & 0x80000000) ) guess32 = 0x80000000; halfn = nn >> 1; guess32 = (u32)(halfn / guess32 + (guess32 >> 1)); guess32 = (u32)(halfn / guess32 + (guess32 >> 1)); guess32 = (u32)(halfn / guess32 + (guess32 >> 1)); /* * Now that an estimate accurate to about 30 bits has been obtained, * we improve it to 60 bits or so. * * The strategy from now on is to compute new estimates from * guess := guess + (n - guess^2) / (2 * guess) */ work = guess32; work = nn - work * guess32; work <<= 28; /* 29 - 1 */ work /= guess32; work <<= 3; /* 29 + 3 = 32 */ work += ((u64)guess32) << 32; if ( work == 0 ) /* This happens in one or two special cases */ work = BX_CONST64(0xffffffffffffffff); guess = work; /* guess is now accurate to about 60 bits */ if ( work > 0 ) { #ifdef PARANOID if ( (n->sigh != 0xffffffff) && (n->sigl != 0xffffffff) ) { EXCEPTION(EX_INTERNAL|0x213); } #endif /* We know the answer here. */ return FPU_round(current_i387_yuan_ n, 0x7fffffff, 0, control_w, sign); } /* Refine the guess to significantly more than 64 bits. */ /* First, square the current guess. */ guess32 = (u32)(guess >> 32); work32 = (u32)guess; /* lower 32 times lower 32 */ lowr = work32; lowr *= work32; /* lower 32 times upper 32 */ mid = guess32; mid *= work32; /* upper 32 times upper 32 */ upr = guess32; upr *= guess32; /* upper 32 bits of the middle product times 2 */ upr += mid >> (32-1); /* lower 32 bits of the middle product times 2 */ work32 = (u32)(mid << 1); /* upper 32 bits of the lower product */ mid32 = (u32)(lowr >> 32); mid32 += work32; if ( mid32 < work32 ) upr ++; /* We now have the first 96 bits (truncated) of the square of the guess */ diff = upr - nn; diff32 = mid32 - ne; if ( diff32 > mid32 ) diff --; if ( ((s64)diff) < 0 ) { /* The difference is negative, negate it. */ diff32 = -((s32)diff32); diff = ~diff; if ( diff32 == 0 ) diff ++; #ifdef PARANOID if ( (diff >> 32) != 0 ) { EXCEPTION(EX_INTERNAL|0x207); } #endif diff <<= 32; diff |= diff32; work32 = (u32)(diff / guess32); work = work32; work <<= 32; diff = diff % guess32; diff <<= 32; work32 = (u32)(diff / guess32); work |= work32; work >>= 1; work32 = (u32)(work >> 32); guess += work32; /* The first 64 bits */ guess32 = (u32)(work); /* The next 32 bits */ /* The guess should now be good to about 90 bits */ } else { /* The difference is positive. */ diff <<= 32; diff |= diff32; work32 = (u32)(diff / guess32); work = work32; work <<= 32; diff = diff % guess32; diff <<= 32; work32 = (u32)(diff / guess32); work |= work32; work >>= 1; work32 = (u32)(work >> 32); guess32 = (u32)(work); /* The last 32 bits (of 96) */ guess32 = (u32)(0-guess32); if ( guess32 ) guess --; guess -= work32; /* The first 64 bits */ /* The guess should now be good to about 90 bits */ } setexponent16(n, 0); if ( guess32 >= (u32) -ERR_MARGIN ) { /* Nearly exact, we round the 64 bit result upward. */ guess ++; } else if ( (guess32 > ERR_MARGIN) && ((guess32 < 0x80000000-ERR_MARGIN) || (guess32 > 0x80000000+ERR_MARGIN)) ) { /* We have enough accuracy to decide rounding */ significand(n) = guess; return FPU_round(current_i387_yuan_ n, guess32, 0, control_w, sign); } if ( (guess32 <= ERR_MARGIN) || (guess32 >= (u32) -ERR_MARGIN) ) { /* * This is an easy case because x^1/2 is monotonic. * We need just find the square of our estimate, compare it * with the argument, and deduce whether our estimate is * above, below, or exact. We use the fact that the estimate * is known to be accurate to about 90 bits. */ /* We compute the lower 64 bits of the 128 bit product */ work32 = (u32)(guess); lowr = work32; lowr *= work32; uwork = guess >> 32; work32 = (u32)(guess); uwork *= work32; uwork <<= 33; /* 33 = 32+1 (for two times the product) */ lowr += uwork; /* We now have the 64 bits */ /* We need only look at bits 65..96 of the square of guess. */ if ( shifted ) work32 = (u32)(lowr >> 31); else work32 = (u32)(lowr >> 32); #ifdef PARANOID if ( ((s32)work32 > 3*ERR_MARGIN) || ((s32)work32 < -3*ERR_MARGIN) ) { EXCEPTION(EX_INTERNAL|0x214); } #endif significand(n) = guess; if ( (s32)work32 > 0 ) { /* guess is too large */ significand(n) --; return FPU_round(current_i387_yuan_ n, 0xffffff00, 0, control_w, sign); } else if ( (s32)work32 < 0 ) { /* guess is a little too small */ return FPU_round(current_i387_yuan_ n, 0x000000ff, 0, control_w, sign); } else if ( (u32)lowr != 0 ) { /* guess is too large */ significand(n) --; return FPU_round(current_i387_yuan_ n, 0xffffff00, 0, control_w, sign); } /* Our guess is precise. */ return FPU_round(current_i387_yuan_ n, 0, 0, control_w, sign); } /* Very similar to the case above, but the last bit is near 0.5. We handle this just like the case above but we shift everything by one bit. */ uwork = guess; uwork <<= 1; uwork |= 1; /* add the half bit */ /* We compute the lower 64 bits of the 128 bit product */ work32 = (u32)(uwork); lowr = work32; lowr *= work32; work32 = (u32)(uwork >> 32); uwork &= 0xffffffff; uwork *= work32; uwork <<= 33; /* 33 = 32+1 (for two times the product) */ lowr += uwork; /* We now have the 64 bits. The lowest 32 bits of lowr are not all zero (the lsb is 1). */ /* We need only look at bits 65..96 of the square of guess. */ if ( shifted ) work32 = (u32)(lowr >> 31); else work32 = (u32)(lowr >> 32); #ifdef PARANOID if ( ((s32)work32 > 4*3*ERR_MARGIN) || ((s32)work32 < -4*3*ERR_MARGIN) ) { EXCEPTION(EX_INTERNAL|0x215); } #endif significand(n) = guess; if ( (s32)work32 < 0 ) { /* guess plus half bit is a little too small */ return FPU_round(current_i387_yuan_ n, 0x800000ff, 0, control_w, sign); } else /* Note that the lower 64 bits of the product are not all zero */ { /* guess plus half bit is too large */ return FPU_round(current_i387_yuan_ n, 0x7fffff00, 0, control_w, sign); } /* Note that the result of a square root cannot have precisely a half bit of a least significant place (it is left as an exercise for the reader to prove this! (hint: 65 bit*65 bit => n bits)). */ } ================================================ FILE: Project/fpu/Win32/UpgradeLog.XML ================================================ ================================================ FILE: Project/fpu/Win32/_UpgradeReport_Files/UpgradeReport.css ================================================ BODY { BACKGROUND-COLOR: white; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-LEFT: 0px; MARGIN-TOP: 0px } P { FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 70%; LINE-HEIGHT: 12pt; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 10px; MARGIN-TOP: 10px } .note { BACKGROUND-COLOR: #ffffff; COLOR: #336699; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 0px; MARGIN-TOP: 0px; PADDING-RIGHT: 10px } .infotable { BACKGROUND-COLOR: #f0f0e0; BORDER-BOTTOM: #ffffff 0px solid; BORDER-COLLAPSE: collapse; BORDER-LEFT: #ffffff 0px solid; BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 70%; MARGIN-LEFT: 10px } .issuetable { BACKGROUND-COLOR: #ffffe8; BORDER-COLLAPSE: collapse; COLOR: #000000; FONT-SIZE: 100%; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 13px; MARGIN-TOP: 0px } .issuetitle { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px; COLOR: #003366; FONT-WEIGHT: normal } .header { BACKGROUND-COLOR: #cecf9c; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; COLOR: #000000; FONT-WEIGHT: bold } .issuehdr { BACKGROUND-COLOR: #E0EBF5; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; COLOR: #000000; FONT-WEIGHT: normal } .issuenone { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-RIGHT: 0px; BORDER-TOP: 0px; COLOR: #000000; FONT-WEIGHT: normal } .content { BACKGROUND-COLOR: #e7e7ce; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 3px } .issuecontent { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; PADDING-LEFT: 3px } A:link { COLOR: #cc6633; TEXT-DECORATION: underline } A:visited { COLOR: #cc6633; } A:active { COLOR: #cc6633; } A:hover { COLOR: #cc3300; TEXT-DECORATION: underline } H1 { BACKGROUND-COLOR: #003366; BORDER-BOTTOM: #336699 6px solid; COLOR: #ffffff; FONT-SIZE: 130%; FONT-WEIGHT: normal; MARGIN: 0em 0em 0em -20px; PADDING-BOTTOM: 8px; PADDING-LEFT: 30px; PADDING-TOP: 16px } H2 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 3px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px; PADDING-LEFT: 0px } H3 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: -5px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px } H4 { COLOR: #000000; FONT-SIZE: 70%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 0px; MARGIN-TOP: 15px; PADDING-BOTTOM: 0px } UL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } OL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } LI { LIST-STYLE: square; MARGIN-LEFT: 0px } .expandable { CURSOR: hand } .expanded { color: black } .collapsed { DISPLAY: none } .foot { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #cecf9c 1px solid; BORDER-TOP: #cecf9c 2px solid } .settings { MARGIN-LEFT: 25PX; } .help { TEXT-ALIGN: right; margin-right: 10px; } ================================================ FILE: Project/fpu/Win32/_UpgradeReport_Files/UpgradeReport.xslt ================================================

解决方案: 项目:

src
文件名 状态 错误 警告
javascript:document.images[''].click()src 已转换 已转换
个文件 1 个文件 已转换:
未转换:
: 转换报告 <xsl:if test="Properties/Property[@Name='LogNumber']"> <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> </xsl:if>

转换报告 -

转换时间:

转换设置

================================================ FILE: Project/fpu/Win32/fpu.sln ================================================ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fpu", "fpu.vcproj", "{2375798E-AEBD-4260-9348-0D2DC69C2EF7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Debug|Win32.ActiveCfg = Debug|Win32 {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Debug|Win32.Build.0 = Debug|Win32 {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Release|Win32.ActiveCfg = Release|Win32 {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal ================================================ FILE: Project/fpu/Win32/fpu.sln.old ================================================ Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fpu", "fpu.vcproj", "{2375798E-AEBD-4260-9348-0D2DC69C2EF7}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Debug.ActiveCfg = Debug|Win32 {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Debug.Build.0 = Debug|Win32 {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Release.ActiveCfg = Release|Win32 {2375798E-AEBD-4260-9348-0D2DC69C2EF7}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal ================================================ FILE: Project/fpu/Win32/fpu.vcproj ================================================ ================================================ FILE: README.md ================================================ # SyserDebugger NG Pay respect to the original author of syser debugger: [Yanfeng Wu](ori_author.md) The open source project is as his last wish. ## Build Now, it can be compiled with Visual studio 2019. [Buidling method](Doc/build.md) ## Demonstration of SyserDebugger functionality Visit https://www.bilibili.com/video/BV1vy4y1C7PQ/ ================================================ FILE: excfile.txt ================================================ *.log *.wrn *.map *.pdb *.sbr *.ncb *.exp *.opt *.plg *.obj *.pch *.ilk *.res *.aps *.idb *BuildLog.htm *.bak *.rar *.exe *.dll *.sys *.lib *.Po *.Plo *.sds *.nms ================================================ FILE: incfile.txt ================================================ *diaguids*.lib *bootvid.lib .\Bin\i386\*.sys .\Bin\i386\*.dll .\Bin\i386\SyserApp.exe .\Bin\i386\Syser.exe ================================================ FILE: ori_author.md ================================================ Yanfeng Wu (1976.8.29 - 2023.9.23) Graduated in 1999.7 from Jilin University of China. [Linkedin Home Page](https://www.linkedin.com/in/%E5%B2%A9%E5%B3%B0-%E5%90%B4-5a7608101/)

解决方案: 项目: